From 8e45ea8d22a7c75a4f56146bc9412bd7d45762f8 Mon Sep 17 00:00:00 2001 From: sbancuz Date: Fri, 15 Mar 2024 08:40:41 +0100 Subject: [PATCH] vault backup: 2024-03-15 08:40:41 --- .../block-data/block-styles | 2 +- .../drawings/data-1135853731252.svg | 16 ++ .../drawings/data-333668061487.svg | 16 ++ .../drawings/data-671220729633.svg | 16 ++ .../excalidraw-files/data-1135853731252.json | 1 + .../excalidraw-files/data-333668061487.json | 1 + .../excalidraw-files/data-671220729633.json | 1 + .obsidian/plugins/obsidian-math-plus/main.js | 2 - .../plugins/obsidian-math-plus/manifest.json | 4 +- .obsidian/workspace.json | 52 +++---- .trash/System identification.md | 6 + ARIMA or ARIMAX models.md | 28 ++++ ARXAR model.md | 11 ++ FIR models.md | 12 ++ MIPS.md | 48 ++++++ Output error models.md | 8 + Parallelization.md | 1 + System identification.md | 68 --------- System.md | 142 +++++++++++++++++- multi pipe.png | Bin 0 -> 27051 bytes prediction form mdoel.png | Bin 0 -> 16602 bytes scoreboard arch.png | Bin 0 -> 90413 bytes scoreboard.png | Bin 0 -> 48653 bytes 23 files changed, 332 insertions(+), 103 deletions(-) create mode 100644 .obsidian/plugins/obsidian-math-plus/drawings/data-1135853731252.svg create mode 100644 .obsidian/plugins/obsidian-math-plus/drawings/data-333668061487.svg create mode 100644 .obsidian/plugins/obsidian-math-plus/drawings/data-671220729633.svg create mode 100644 .obsidian/plugins/obsidian-math-plus/excalidraw-files/data-1135853731252.json create mode 100644 .obsidian/plugins/obsidian-math-plus/excalidraw-files/data-333668061487.json create mode 100644 .obsidian/plugins/obsidian-math-plus/excalidraw-files/data-671220729633.json create mode 100644 .trash/System identification.md create mode 100644 ARIMA or ARIMAX models.md create mode 100644 ARXAR model.md create mode 100644 FIR models.md create mode 100644 Output error models.md delete mode 100644 System identification.md create mode 100644 multi pipe.png create mode 100644 prediction form mdoel.png create mode 100644 scoreboard arch.png create mode 100644 scoreboard.png diff --git a/.obsidian/plugins/obsidian-math-plus/block-data/block-styles b/.obsidian/plugins/obsidian-math-plus/block-data/block-styles index 93767bf..9cffb5a 100644 --- a/.obsidian/plugins/obsidian-math-plus/block-data/block-styles +++ b/.obsidian/plugins/obsidian-math-plus/block-data/block-styles @@ -1 +1 @@ -{".math-block-693396807389":{"height":"158px"},".math-block-1155350234247":{"height":"188px"},".math-block-1395639419565":{"height":"208px"},".math-block-845393156660":{"height":"223px"},".math-block-1593046247369":{"height":"209px"},".math-block-390119988965":{"height":"119px"},".math-block-85466731491":{"height":"fit-content"},".math-block-269946290256":{"height":"209px"},".math-block-805190336532":{"height":"141px"},".math-block-515579115614":{"height":"177px"},".math-block-1036866679603":{"height":"179px"},".math-block-718516305693":{"height":"196px"},".math-block-1162987273954":{"height":"268px"},".math-block-1580579863823":{"height":"149px"},".math-block-889902629767":{"height":"177px"},".math-block-1611805503908":{"height":"171px"},".math-block-274371783654":{"height":"120px"},".math-block-77617332589":{"height":"178px"},".math-block-997833838030":{"height":"288px"},".math-block-1310643447814":{"height":"231px"},".math-block-747507161468":{"height":"270px"},".math-block-540833062144":{"height":"322px"},".math-block-585169041992":{"height":"280px"},".math-block-1177029920265":{"height":"fit-content"},".math-block-781248353629":{"height":"199px"},".math-block-511109335375":{"height":"307px"},".math-block-1474030729501":{"height":"212px"},".math-block-1020265009132":{"height":"360px"},".math-block-996311213761":{"height":"253px"},".math-block-181311675580":{"height":"264px"},".math-block-437174172797":{"height":"269px"},".math-block-332719073946":{"height":"287px"},".math-block-1392903461886":{"height":"341px"},".math-block-1459241155298":{"height":"259px"},".math-block-1046993054894":{"height":"301px"},".math-block-1592772284463":{"height":"257px"},".math-block-1453782121083":{"height":"321px"},".math-block-1328533873995":{"height":"272px"},".math-block-908438165515":{"height":"460px"},".math-block-625773531285":{"height":"253px"},".math-block-990508951254":{"height":"235px"},".math-block-72124185182":{"height":"369px"},".math-block-1610700291382":{"height":"261px"},".math-block-951346887499":{"height":"282px"},".math-block-1032926211043":{"height":"261px"},".math-block-30656701028":{"height":"294px"},".math-block-1161515767047":{"height":"313px"},".math-block-1447893726233":{"height":"122px"},".math-block-307063718080":{"height":"130px"},".math-block-1659419938319":{"height":"313px"},".math-block-128936735199":{"height":"407px"},".math-block-419741315122":{"height":"318px"},".math-block-416703588309":{"height":"221px"},".math-block-363479437171":{"height":"212px"},".math-block-1416501210944":{"height":"259px"},".math-block-993535526145":{"height":"207px"},".math-block-307919535159":{"height":"187px"},".math-block-1127647562318":{"height":"182px"},".math-block-940315219111":{"height":"260px"},".math-block-1428314055392":{"height":"296px"},".math-block-663367833301":{"height":"168px"},".math-block-359443056874":{"height":"404px"},".math-block-416637192677":{"height":"224px"},".math-block-787998994489":{"height":"254px"},".math-block-34014253536":{"height":"848px"},".math-block-980566615006":{"height":"202px"},".math-block-658219379040":{"height":"352px"},".math-block-215538916354":{"height":"322px"},".math-block-876000203829":{"height":"242px"},".math-block-419547970101":{"height":"306px"},".math-block-1500801384444":{"height":"297px"},".math-block-644889132490":{"height":"361px"},".math-block-224164428547":{"height":"264px"},".math-block-317847168507":{"height":"313px"},".math-block-213563903273":{"height":"226px"},".math-block-1220657150552":{"height":"217px"},".math-block-458247611041":{"height":"236px"},".math-block-1267653202883":{"height":"209px"},".math-block-1098209022014":{"height":"100px"},".math-block-1675817655606":{"height":"fit-content"},".math-block-906664436889":{"height":"486px"},".math-block-305379663382":{"height":"330px"},".math-block-1107401395772":{"height":"165px"},".math-block-1238512795235":{"height":"505px"},".math-block-672843645648":{"height":"339px"},".math-block-1117737196070":{"height":"251.992px"},".math-block-1689157810622":{"height":"309px"},".math-block-264570592324":{"height":"233px"},".math-block-1680994712841":{"height":"227px"},".math-block-1245531345689":{"height":"338px"},".math-block-951490479100":{"height":"310px"},".math-block-1513490860110":{"height":"273px"},".math-block-458035240467":{"height":"295px"},".math-block-1388600853352":{"height":"258px"},".math-block-429443279350":{"height":"205px"},".math-block-1599305467337":{"height":"146px"},".math-block-754213303598":{"height":"316px"},".math-block-413576829101":{"height":"304px"},".math-block-1307075696711":{"height":"310px"},".math-block-1413641698919":{"height":"309px"},".math-block-1517372517091":{"height":"199px"},".math-block-288686619768":{"height":"221px"}} \ No newline at end of file +{".math-block-693396807389":{"height":"158px"},".math-block-1155350234247":{"height":"188px"},".math-block-1395639419565":{"height":"208px"},".math-block-845393156660":{"height":"223px"},".math-block-1593046247369":{"height":"209px"},".math-block-390119988965":{"height":"119px"},".math-block-85466731491":{"height":"fit-content"},".math-block-269946290256":{"height":"209px"},".math-block-805190336532":{"height":"141px"},".math-block-515579115614":{"height":"177px"},".math-block-1036866679603":{"height":"179px"},".math-block-718516305693":{"height":"196px"},".math-block-1162987273954":{"height":"268px"},".math-block-1580579863823":{"height":"149px"},".math-block-889902629767":{"height":"177px"},".math-block-1611805503908":{"height":"171px"},".math-block-274371783654":{"height":"120px"},".math-block-77617332589":{"height":"178px"},".math-block-997833838030":{"height":"288px"},".math-block-1310643447814":{"height":"231px"},".math-block-747507161468":{"height":"270px"},".math-block-540833062144":{"height":"322px"},".math-block-585169041992":{"height":"280px"},".math-block-1177029920265":{"height":"fit-content"},".math-block-781248353629":{"height":"199px"},".math-block-511109335375":{"height":"307px"},".math-block-1474030729501":{"height":"212px"},".math-block-1020265009132":{"height":"360px"},".math-block-996311213761":{"height":"253px"},".math-block-181311675580":{"height":"264px"},".math-block-437174172797":{"height":"269px"},".math-block-332719073946":{"height":"287px"},".math-block-1392903461886":{"height":"341px"},".math-block-1459241155298":{"height":"259px"},".math-block-1046993054894":{"height":"301px"},".math-block-1592772284463":{"height":"257px"},".math-block-1453782121083":{"height":"321px"},".math-block-1328533873995":{"height":"272px"},".math-block-908438165515":{"height":"460px"},".math-block-625773531285":{"height":"253px"},".math-block-990508951254":{"height":"235px"},".math-block-72124185182":{"height":"369px"},".math-block-1610700291382":{"height":"261px"},".math-block-951346887499":{"height":"282px"},".math-block-1032926211043":{"height":"261px"},".math-block-30656701028":{"height":"294px"},".math-block-1161515767047":{"height":"313px"},".math-block-1447893726233":{"height":"122px"},".math-block-307063718080":{"height":"130px"},".math-block-1659419938319":{"height":"313px"},".math-block-128936735199":{"height":"407px"},".math-block-419741315122":{"height":"318px"},".math-block-416703588309":{"height":"221px"},".math-block-363479437171":{"height":"212px"},".math-block-1416501210944":{"height":"259px"},".math-block-993535526145":{"height":"207px"},".math-block-307919535159":{"height":"187px"},".math-block-1127647562318":{"height":"182px"},".math-block-940315219111":{"height":"260px"},".math-block-1428314055392":{"height":"296px"},".math-block-663367833301":{"height":"168px"},".math-block-359443056874":{"height":"404px"},".math-block-416637192677":{"height":"224px"},".math-block-787998994489":{"height":"254px"},".math-block-34014253536":{"height":"848px"},".math-block-980566615006":{"height":"202px"},".math-block-658219379040":{"height":"352px"},".math-block-215538916354":{"height":"322px"},".math-block-876000203829":{"height":"242px"},".math-block-419547970101":{"height":"306px"},".math-block-1500801384444":{"height":"297px"},".math-block-644889132490":{"height":"361px"},".math-block-224164428547":{"height":"264px"},".math-block-317847168507":{"height":"313px"},".math-block-213563903273":{"height":"226px"},".math-block-1220657150552":{"height":"217px"},".math-block-458247611041":{"height":"236px"},".math-block-1267653202883":{"height":"209px"},".math-block-1098209022014":{"height":"100px"},".math-block-1675817655606":{"height":"fit-content"},".math-block-906664436889":{"height":"486px"},".math-block-305379663382":{"height":"330px"},".math-block-1107401395772":{"height":"165px"},".math-block-1238512795235":{"height":"505px"},".math-block-672843645648":{"height":"339px"},".math-block-1117737196070":{"height":"251.992px"},".math-block-1689157810622":{"height":"309px"},".math-block-264570592324":{"height":"233px"},".math-block-1680994712841":{"height":"227px"},".math-block-1245531345689":{"height":"338px"},".math-block-951490479100":{"height":"310px"},".math-block-1513490860110":{"height":"273px"},".math-block-458035240467":{"height":"295px"},".math-block-1388600853352":{"height":"258px"},".math-block-429443279350":{"height":"205px"},".math-block-1599305467337":{"height":"146px"},".math-block-754213303598":{"height":"316px"},".math-block-413576829101":{"height":"304px"},".math-block-1307075696711":{"height":"310px"},".math-block-1413641698919":{"height":"309px"},".math-block-1517372517091":{"height":"199px"},".math-block-288686619768":{"height":"221px"},".math-block-333668061487":{"height":"257px"},".math-block-1135853731252":{"height":"244px"},".math-block-671220729633":{"height":"214px"}} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-math-plus/drawings/data-1135853731252.svg b/.obsidian/plugins/obsidian-math-plus/drawings/data-1135853731252.svg new file mode 100644 index 0000000..4bfb5b8 --- /dev/null +++ b/.obsidian/plugins/obsidian-math-plus/drawings/data-1135853731252.svg @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-math-plus/drawings/data-333668061487.svg b/.obsidian/plugins/obsidian-math-plus/drawings/data-333668061487.svg new file mode 100644 index 0000000..f7f466f --- /dev/null +++ b/.obsidian/plugins/obsidian-math-plus/drawings/data-333668061487.svg @@ -0,0 +1,16 @@ + + + + + + + eta(t)u(t-k)1/D(z)B(z)+1/A(z)y(t) \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-math-plus/drawings/data-671220729633.svg b/.obsidian/plugins/obsidian-math-plus/drawings/data-671220729633.svg new file mode 100644 index 0000000..c508406 --- /dev/null +++ b/.obsidian/plugins/obsidian-math-plus/drawings/data-671220729633.svg @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-math-plus/excalidraw-files/data-1135853731252.json b/.obsidian/plugins/obsidian-math-plus/excalidraw-files/data-1135853731252.json new file mode 100644 index 0000000..e8a1e31 --- /dev/null +++ b/.obsidian/plugins/obsidian-math-plus/excalidraw-files/data-1135853731252.json @@ -0,0 +1 @@ +{"elements":[{"id":"0qMvkkxGYJ88hygWocYHZ","type":"arrow","x":171,"y":125.53125,"width":355,"height":137,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"round","seed":1525615570,"version":112,"versionNonce":1279230478,"isDeleted":false,"boundElements":null,"updated":1710325429853,"link":null,"points":[[0,0],[193,-34],[355,18],[46,32],[46,-105],[277,-88],[119,27]],"lastCommittedPoint":[119,27],"startBinding":null,"endBinding":null,"startArrowhead":null,"endArrowhead":"arrow"}],"appState":{"theme":"dark","collaborators":[],"currentChartType":"bar","currentItemBackgroundColor":"transparent","currentItemEndArrowhead":"arrow","currentItemFillStyle":"hachure","currentItemFontFamily":1,"currentItemFontSize":20,"currentItemLinearStrokeSharpness":"round","currentItemOpacity":100,"currentItemRoughness":1,"currentItemStartArrowhead":null,"currentItemStrokeColor":"#000","currentItemStrokeSharpness":"sharp","currentItemStrokeStyle":"solid","currentItemStrokeWidth":1,"currentItemTextAlign":"left","cursorButton":"up","draggingElement":null,"editingElement":null,"editingGroupId":null,"editingLinearElement":null,"elementLocked":false,"elementType":"selection","penMode":false,"penDetected":false,"errorMessage":null,"exportBackground":true,"exportScale":1,"exportEmbedScene":false,"exportWithDarkMode":false,"fileHandle":null,"gridSize":null,"isBindingEnabled":true,"isLibraryOpen":false,"isLoading":false,"isResizing":false,"isRotating":false,"lastPointerDownWith":"mouse","multiElement":null,"name":"Obsidian Math Plus Drawing","openMenu":null,"openPopup":null,"pasteDialog":{"shown":false,"data":null},"previousSelectedElementIds":{},"resizingElement":null,"scrolledOutside":true,"scrollX":0,"scrollY":0,"selectedElementIds":{"0qMvkkxGYJ88hygWocYHZ":true},"selectedGroupIds":{},"selectionElement":null,"shouldCacheIgnoreZoom":false,"showHelpDialog":false,"showStats":false,"startBoundElement":null,"suggestedBindings":[],"toastMessage":null,"viewBackgroundColor":"#fff0","zenModeEnabled":false,"zoom":{"value":1},"viewModeEnabled":false,"pendingImageElement":null,"showHyperlinkPopup":false,"offsetLeft":0,"offsetTop":0,"width":0,"height":0},"scrollToContent":false,"libraryItems":[]} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-math-plus/excalidraw-files/data-333668061487.json b/.obsidian/plugins/obsidian-math-plus/excalidraw-files/data-333668061487.json new file mode 100644 index 0000000..7d35f9f --- /dev/null +++ b/.obsidian/plugins/obsidian-math-plus/excalidraw-files/data-333668061487.json @@ -0,0 +1 @@ +{"elements":[{"id":"9Ek_6qSzmD-dzRZmScRpg","type":"rectangle","x":199,"y":182.4375,"width":118,"height":60,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"sharp","seed":1416163700,"version":42,"versionNonce":2053095156,"isDeleted":false,"boundElements":[{"id":"czKg_kxxGga0Gej_9E_ys","type":"arrow"},{"id":"upE2vSTKZbo9e4LnEy3fX","type":"arrow"},{"type":"text","id":"WkrhAUiJDG6QslynwUpzu"}],"updated":1710258993856,"link":null},{"type":"rectangle","version":65,"versionNonce":1030455156,"isDeleted":false,"id":"1T95t25hKL8QCaktGz676","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"angle":0,"x":476,"y":178.4375,"strokeColor":"#000","backgroundColor":"transparent","width":118,"height":60,"seed":218495820,"groupIds":[],"strokeSharpness":"sharp","boundElements":[{"id":"Da9lb-qblMyzU8RKoSxEv","type":"arrow"},{"id":"sTvLvod00BNxA8fY8tHkf","type":"arrow"},{"type":"text","id":"3XWtsmEHizPJ5N02Iqxsk"}],"updated":1710259006172,"link":null},{"type":"rectangle","version":110,"versionNonce":280584308,"isDeleted":false,"id":"mrcuMGKD2Z2U0qobNmkiX","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"angle":0,"x":203,"y":40.4375,"strokeColor":"#000","backgroundColor":"transparent","width":118,"height":60,"seed":245506420,"groupIds":[],"strokeSharpness":"sharp","boundElements":[{"id":"NtfqP6JVbYJ7moY4ag4XU","type":"arrow"},{"id":"HLRXXS8tiiR5kTTHOXVf6","type":"arrow"}],"updated":1710258943058,"link":null},{"id":"NtfqP6JVbYJ7moY4ag4XU","type":"arrow","x":96,"y":72.4375,"width":102,"height":2,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"round","seed":92517196,"version":29,"versionNonce":193445452,"isDeleted":false,"boundElements":null,"updated":1710258921236,"link":null,"points":[[0,0],[102,-2]],"lastCommittedPoint":null,"startBinding":null,"endBinding":{"elementId":"mrcuMGKD2Z2U0qobNmkiX","focus":0.04027690371302706,"gap":5},"startArrowhead":null,"endArrowhead":"arrow"},{"id":"czKg_kxxGga0Gej_9E_ys","type":"arrow","x":103,"y":210.4375,"width":90,"height":2,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"round","seed":991040716,"version":27,"versionNonce":1259112780,"isDeleted":false,"boundElements":null,"updated":1710258926599,"link":null,"points":[[0,0],[90,2]],"lastCommittedPoint":null,"startBinding":null,"endBinding":{"elementId":"9Ek_6qSzmD-dzRZmScRpg","focus":-0.0461320085166785,"gap":6},"startArrowhead":null,"endArrowhead":"arrow"},{"id":"upE2vSTKZbo9e4LnEy3fX","type":"arrow","x":321,"y":207.4375,"width":57,"height":0,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"round","seed":1707442124,"version":24,"versionNonce":627602292,"isDeleted":false,"boundElements":null,"updated":1710258929935,"link":null,"points":[[0,0],[57,0]],"lastCommittedPoint":null,"startBinding":{"elementId":"9Ek_6qSzmD-dzRZmScRpg","focus":-0.16666666666666666,"gap":4},"endBinding":null,"startArrowhead":null,"endArrowhead":"arrow"},{"id":"HLRXXS8tiiR5kTTHOXVf6","type":"arrow","x":325,"y":68.39916050835525,"width":54.00003859211055,"height":137.03833949164476,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"round","seed":1659594060,"version":120,"versionNonce":237576052,"isDeleted":false,"boundElements":null,"updated":1710258946841,"link":null,"points":[[0,-0.013937108816742594],[46.42108580725293,-2],[54.00003859211055,135.03833949164476]],"lastCommittedPoint":[57,136],"startBinding":{"elementId":"mrcuMGKD2Z2U0qobNmkiX","focus":0.01977271864876075,"gap":4},"endBinding":null,"startArrowhead":null,"endArrowhead":"arrow"},{"id":"zfAKLvJUJcmE7_NCIssji","type":"ellipse","x":372,"y":203.4375,"width":17,"height":15,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"sharp","seed":470925772,"version":12,"versionNonce":843167604,"isDeleted":false,"boundElements":[{"id":"Da9lb-qblMyzU8RKoSxEv","type":"arrow"}],"updated":1710258956896,"link":null},{"id":"Da9lb-qblMyzU8RKoSxEv","type":"arrow","x":399,"y":209.4375,"width":72,"height":0,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"round","seed":1806694516,"version":21,"versionNonce":1433315788,"isDeleted":false,"boundElements":null,"updated":1710258956897,"link":null,"points":[[0,0],[72,0]],"lastCommittedPoint":null,"startBinding":{"elementId":"zfAKLvJUJcmE7_NCIssji","focus":-0.2,"gap":10.067549756878705},"endBinding":{"elementId":"1T95t25hKL8QCaktGz676","focus":-0.03333333333333333,"gap":5},"startArrowhead":null,"endArrowhead":"arrow"},{"id":"sTvLvod00BNxA8fY8tHkf","type":"arrow","x":601,"y":208.4375,"width":67,"height":4,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"round","seed":269455436,"version":25,"versionNonce":1365704268,"isDeleted":false,"boundElements":null,"updated":1710258960506,"link":null,"points":[[0,0],[67,4]],"lastCommittedPoint":null,"startBinding":{"elementId":"1T95t25hKL8QCaktGz676","focus":-0.11754229741763135,"gap":7},"endBinding":null,"startArrowhead":null,"endArrowhead":"arrow"},{"id":"Mvk1odeFmcFPc4YlCR8DF","type":"text","x":99,"y":17.4375,"width":63,"height":25,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"sharp","seed":723311436,"version":8,"versionNonce":1158386676,"isDeleted":false,"boundElements":null,"updated":1710258965754,"link":null,"text":"eta(t)","fontSize":20,"fontFamily":1,"textAlign":"left","verticalAlign":"top","baseline":18,"containerId":null,"originalText":"eta(t)"},{"id":"DtoHrORB7fcsjaHiTYZW-","type":"text","x":87,"y":174.4375,"width":57,"height":25,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"sharp","seed":749620172,"version":8,"versionNonce":273747188,"isDeleted":false,"boundElements":null,"updated":1710258978177,"link":null,"text":"u(t-k)","fontSize":20,"fontFamily":1,"textAlign":"left","verticalAlign":"top","baseline":18,"containerId":null,"originalText":"u(t-k)"},{"id":"GQldQvUo_bY7a7CV3JRUd","type":"text","x":224,"y":55.4375,"width":59,"height":25,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"sharp","seed":435028684,"version":10,"versionNonce":1634190836,"isDeleted":false,"boundElements":null,"updated":1710258986233,"link":null,"text":"1/D(z)","fontSize":20,"fontFamily":1,"textAlign":"left","verticalAlign":"top","baseline":18,"containerId":null,"originalText":"1/D(z)"},{"id":"WkrhAUiJDG6QslynwUpzu","type":"text","x":204,"y":199.9375,"width":108,"height":25,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"sharp","seed":129530316,"version":8,"versionNonce":445222260,"isDeleted":false,"boundElements":null,"updated":1710258991099,"link":null,"text":"B(z)","fontSize":20,"fontFamily":1,"textAlign":"center","verticalAlign":"middle","baseline":18,"containerId":"9Ek_6qSzmD-dzRZmScRpg","originalText":"B(z)"},{"id":"-m4IehQzsy0v62JLzQQrn","type":"text","x":347,"y":165.4375,"width":14,"height":25,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"sharp","seed":863223924,"version":5,"versionNonce":665662324,"isDeleted":false,"boundElements":null,"updated":1710258995763,"link":null,"text":"+","fontSize":20,"fontFamily":1,"textAlign":"left","verticalAlign":"top","baseline":18,"containerId":null,"originalText":"+"},{"id":"3XWtsmEHizPJ5N02Iqxsk","type":"text","x":481,"y":195.9375,"width":108,"height":25,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"sharp","seed":1648448588,"version":12,"versionNonce":539188724,"isDeleted":false,"boundElements":null,"updated":1710259002172,"link":null,"text":"1/A(z)","fontSize":20,"fontFamily":1,"textAlign":"center","verticalAlign":"middle","baseline":18,"containerId":"1T95t25hKL8QCaktGz676","originalText":"1/A(z)"},{"id":"_lnnmo40VZrRVU8IprO0g","type":"text","x":632,"y":158.4375,"width":37,"height":25,"angle":0,"strokeColor":"#000","backgroundColor":"transparent","fillStyle":"hachure","strokeWidth":1,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"strokeSharpness":"sharp","seed":271806708,"version":8,"versionNonce":1576016844,"isDeleted":false,"boundElements":null,"updated":1710259009377,"link":null,"text":"y(t)","fontSize":20,"fontFamily":1,"textAlign":"left","verticalAlign":"top","baseline":18,"containerId":null,"originalText":"y(t)"}],"appState":{"theme":"dark","collaborators":[],"currentChartType":"bar","currentItemBackgroundColor":"transparent","currentItemEndArrowhead":"arrow","currentItemFillStyle":"hachure","currentItemFontFamily":1,"currentItemFontSize":20,"currentItemLinearStrokeSharpness":"round","currentItemOpacity":100,"currentItemRoughness":1,"currentItemStartArrowhead":null,"currentItemStrokeColor":"#000","currentItemStrokeSharpness":"sharp","currentItemStrokeStyle":"solid","currentItemStrokeWidth":1,"currentItemTextAlign":"left","cursorButton":"up","draggingElement":null,"editingElement":null,"editingGroupId":null,"editingLinearElement":null,"elementLocked":false,"elementType":"selection","penMode":false,"penDetected":false,"errorMessage":null,"exportBackground":true,"exportScale":1,"exportEmbedScene":false,"exportWithDarkMode":false,"fileHandle":null,"gridSize":null,"isBindingEnabled":true,"isLibraryOpen":false,"isLoading":false,"isResizing":false,"isRotating":false,"lastPointerDownWith":"mouse","multiElement":null,"name":"Obsidian Math Plus Drawing","openMenu":null,"openPopup":null,"pasteDialog":{"shown":false,"data":null},"previousSelectedElementIds":{},"resizingElement":null,"scrolledOutside":false,"scrollX":0,"scrollY":0,"selectedElementIds":{},"selectedGroupIds":{},"selectionElement":null,"shouldCacheIgnoreZoom":false,"showHelpDialog":false,"showStats":false,"startBoundElement":null,"suggestedBindings":[],"toastMessage":null,"viewBackgroundColor":"#fff0","zenModeEnabled":false,"zoom":{"value":1},"viewModeEnabled":false,"pendingImageElement":null,"showHyperlinkPopup":false,"offsetLeft":76,"offsetTop":342.5625,"width":790,"height":383},"scrollToContent":false,"libraryItems":[]} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-math-plus/excalidraw-files/data-671220729633.json b/.obsidian/plugins/obsidian-math-plus/excalidraw-files/data-671220729633.json new file mode 100644 index 0000000..3eb64d0 --- /dev/null +++ b/.obsidian/plugins/obsidian-math-plus/excalidraw-files/data-671220729633.json @@ -0,0 +1 @@ +{"elements":[],"appState":{"theme":"dark","collaborators":[],"currentChartType":"bar","currentItemBackgroundColor":"transparent","currentItemEndArrowhead":"arrow","currentItemFillStyle":"hachure","currentItemFontFamily":1,"currentItemFontSize":20,"currentItemLinearStrokeSharpness":"round","currentItemOpacity":100,"currentItemRoughness":1,"currentItemStartArrowhead":null,"currentItemStrokeColor":"#000","currentItemStrokeSharpness":"sharp","currentItemStrokeStyle":"solid","currentItemStrokeWidth":1,"currentItemTextAlign":"left","cursorButton":"up","draggingElement":null,"editingElement":null,"editingGroupId":null,"editingLinearElement":null,"elementLocked":false,"elementType":"selection","penMode":false,"penDetected":false,"errorMessage":null,"exportBackground":true,"exportScale":1,"exportEmbedScene":false,"exportWithDarkMode":false,"fileHandle":null,"gridSize":null,"isBindingEnabled":true,"isLibraryOpen":false,"isLoading":false,"isResizing":false,"isRotating":false,"lastPointerDownWith":"mouse","multiElement":null,"name":"Obsidian Math Plus Drawing","openMenu":null,"openPopup":null,"pasteDialog":{"shown":false,"data":null},"previousSelectedElementIds":{},"resizingElement":null,"scrolledOutside":false,"scrollX":0,"scrollY":0,"selectedElementIds":{},"selectedGroupIds":{},"selectionElement":null,"shouldCacheIgnoreZoom":false,"showHelpDialog":false,"showStats":false,"startBoundElement":null,"suggestedBindings":[],"toastMessage":null,"viewBackgroundColor":"#fff0","zenModeEnabled":false,"zoom":{"value":1},"viewModeEnabled":false,"pendingImageElement":null,"showHyperlinkPopup":false,"offsetLeft":0,"offsetTop":0,"width":0,"height":0},"scrollToContent":false,"libraryItems":[]} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-math-plus/main.js b/.obsidian/plugins/obsidian-math-plus/main.js index 8807f31..4e4fb91 100644 --- a/.obsidian/plugins/obsidian-math-plus/main.js +++ b/.obsidian/plugins/obsidian-math-plus/main.js @@ -39782,7 +39782,6 @@ var handleSuperSubScripts = (str) => { endex += closeGroup(str.slice(endex)); } if ("^_".includes(str[endex + 1])) { - console.log(str[endex + 1]); endex += 2; } if (str[endex] == "{") { @@ -40636,4 +40635,3 @@ var MathPlusSettingTab = class extends import_obsidian.PluginSettingTab { * @internal * @license Modernizr 3.0.0pre (Custom Build) | MIT */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzL3JlYWN0L2Nqcy9yZWFjdC5kZXZlbG9wbWVudC5qcyIsICJub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3NjaGVkdWxlci9janMvc2NoZWR1bGVyLmRldmVsb3BtZW50LmpzIiwgIm5vZGVfbW9kdWxlcy9zY2hlZHVsZXIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLmRldmVsb3BtZW50LmpzIiwgIm5vZGVfbW9kdWxlcy9yZWFjdC1kb20vaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL0BleGNhbGlkcmF3L2V4Y2FsaWRyYXcvZGlzdC9leGNhbGlkcmF3LmRldmVsb3BtZW50LmpzIiwgIm5vZGVfbW9kdWxlcy9AZXhjYWxpZHJhdy9leGNhbGlkcmF3L21haW4uanMiLCAibm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9jbGllbnQuanMiLCAibm9kZV9tb2R1bGVzL2pxdWVyeS9kaXN0L2pxdWVyeS5qcyIsICJtYWluLnRzIiwgInBhcnNlci50cyIsICJleGNhbGlkcmF3UmVuZGVyZXIudHN4IiwgIkV4Y2FsaWRyYXdDYW52YXMuanN4IiwgImNvbXBvbmVudHMvQ29sb3JTd2F0Y2guanN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAndXNlIHN0cmljdCc7XG5cbi8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbmlmIChcbiAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQgPT09XG4gICAgJ2Z1bmN0aW9uJ1xuKSB7XG4gIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQobmV3IEVycm9yKCkpO1xufVxuICAgICAgICAgIHZhciBSZWFjdFZlcnNpb24gPSAnMTguMC4wLWZjNDZkYmE2Ny0yMDIyMDMyOSc7XG5cbi8vIEFUVEVOVElPTlxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuXG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpO1xudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucG9ydGFsJyk7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN0cmljdF9tb2RlJyk7XG52YXIgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb2ZpbGVyJyk7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb3ZpZGVyJyk7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuY29udGV4dCcpO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZScpO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKTtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJyk7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QubGF6eScpO1xudmFyIFJFQUNUX09GRlNDUkVFTl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Qub2Zmc2NyZWVuJyk7XG52YXIgTUFZQkVfSVRFUkFUT1JfU1lNQk9MID0gU3ltYm9sLml0ZXJhdG9yO1xudmFyIEZBVVhfSVRFUkFUT1JfU1lNQk9MID0gJ0BAaXRlcmF0b3InO1xuZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gIGlmIChtYXliZUl0ZXJhYmxlID09PSBudWxsIHx8IHR5cGVvZiBtYXliZUl0ZXJhYmxlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIG1heWJlSXRlcmF0b3IgPSBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtNQVlCRV9JVEVSQVRPUl9TWU1CT0xdIHx8IG1heWJlSXRlcmFibGVbRkFVWF9JVEVSQVRPUl9TWU1CT0xdO1xuXG4gIGlmICh0eXBlb2YgbWF5YmVJdGVyYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBtYXliZUl0ZXJhdG9yO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogS2VlcHMgdHJhY2sgb2YgdGhlIGN1cnJlbnQgZGlzcGF0Y2hlci5cbiAqL1xudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIgPSB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQHR5cGUge1JlYWN0Q29tcG9uZW50fVxuICAgKi9cbiAgY3VycmVudDogbnVsbFxufTtcblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBiYXRjaCdzIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBob3cgbG9uZyBhbiB1cGRhdGVcbiAqIHNob3VsZCBzdXNwZW5kIGZvciBpZiBpdCBuZWVkcyB0by5cbiAqL1xudmFyIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnID0ge1xuICB0cmFuc2l0aW9uOiBudWxsXG59O1xuXG52YXIgUmVhY3RDdXJyZW50QWN0UXVldWUgPSB7XG4gIGN1cnJlbnQ6IG51bGwsXG4gIC8vIFVzZWQgdG8gcmVwcm9kdWNlIGJlaGF2aW9yIG9mIGBiYXRjaGVkVXBkYXRlc2AgaW4gbGVnYWN5IG1vZGUuXG4gIGlzQmF0Y2hpbmdMZWdhY3k6IGZhbHNlLFxuICBkaWRTY2hlZHVsZUxlZ2FjeVVwZGF0ZTogZmFsc2Vcbn07XG5cbi8qKlxuICogS2VlcHMgdHJhY2sgb2YgdGhlIGN1cnJlbnQgb3duZXIuXG4gKlxuICogVGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIGNvbXBvbmVudCB3aG8gc2hvdWxkIG93biBhbnkgY29tcG9uZW50cyB0aGF0IGFyZVxuICogY3VycmVudGx5IGJlaW5nIGNvbnN0cnVjdGVkLlxuICovXG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQHR5cGUge1JlYWN0Q29tcG9uZW50fVxuICAgKi9cbiAgY3VycmVudDogbnVsbFxufTtcblxudmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSB7fTtcbnZhciBjdXJyZW50RXh0cmFTdGFja0ZyYW1lID0gbnVsbDtcbmZ1bmN0aW9uIHNldEV4dHJhU3RhY2tGcmFtZShzdGFjaykge1xuICB7XG4gICAgY3VycmVudEV4dHJhU3RhY2tGcmFtZSA9IHN0YWNrO1xuICB9XG59XG5cbntcbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5zZXRFeHRyYVN0YWNrRnJhbWUgPSBmdW5jdGlvbiAoc3RhY2spIHtcbiAgICB7XG4gICAgICBjdXJyZW50RXh0cmFTdGFja0ZyYW1lID0gc3RhY2s7XG4gICAgfVxuICB9OyAvLyBTdGFjayBpbXBsZW1lbnRhdGlvbiBpbmplY3RlZCBieSB0aGUgY3VycmVudCByZW5kZXJlci5cblxuXG4gIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0Q3VycmVudFN0YWNrID0gbnVsbDtcblxuICBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHN0YWNrID0gJyc7IC8vIEFkZCBhbiBleHRyYSB0b3AgZnJhbWUgd2hpbGUgYW4gZWxlbWVudCBpcyBiZWluZyB2YWxpZGF0ZWRcblxuICAgIGlmIChjdXJyZW50RXh0cmFTdGFja0ZyYW1lKSB7XG4gICAgICBzdGFjayArPSBjdXJyZW50RXh0cmFTdGFja0ZyYW1lO1xuICAgIH0gLy8gRGVsZWdhdGUgdG8gdGhlIGluamVjdGVkIHJlbmRlcmVyLXNwZWNpZmljIGltcGxlbWVudGF0aW9uXG5cblxuICAgIHZhciBpbXBsID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRDdXJyZW50U3RhY2s7XG5cbiAgICBpZiAoaW1wbCkge1xuICAgICAgc3RhY2sgKz0gaW1wbCgpIHx8ICcnO1xuICAgIH1cblxuICAgIHJldHVybiBzdGFjaztcbiAgfTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxudmFyIGVuYWJsZVNjb3BlQVBJID0gZmFsc2U7IC8vIEV4cGVyaW1lbnRhbCBDcmVhdGUgRXZlbnQgSGFuZGxlIEFQSS5cbnZhciBlbmFibGVDYWNoZUVsZW1lbnQgPSBmYWxzZTtcbnZhciBlbmFibGVUcmFuc2l0aW9uVHJhY2luZyA9IGZhbHNlOyAvLyBObyBrbm93biBidWdzLCBidXQgbmVlZHMgcGVyZm9ybWFuY2UgdGVzdGluZ1xuXG52YXIgZW5hYmxlTGVnYWN5SGlkZGVuID0gZmFsc2U7IC8vIEVuYWJsZXMgdW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2sgZmVhdHVyZSBpbiBGaWJlclxuLy8gc3R1ZmYuIEludGVuZGVkIHRvIGVuYWJsZSBSZWFjdCBjb3JlIG1lbWJlcnMgdG8gbW9yZSBlYXNpbHkgZGVidWcgc2NoZWR1bGluZ1xuLy8gaXNzdWVzIGluIERFViBidWlsZHMuXG5cbnZhciBlbmFibGVEZWJ1Z1RyYWNpbmcgPSBmYWxzZTsgLy8gVHJhY2sgd2hpY2ggRmliZXIocykgc2NoZWR1bGUgcmVuZGVyIHdvcmsuXG5cbnZhciBSZWFjdFNoYXJlZEludGVybmFscyA9IHtcbiAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlcjogUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixcbiAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWc6IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLFxuICBSZWFjdEN1cnJlbnRPd25lcjogUmVhY3RDdXJyZW50T3duZXJcbn07XG5cbntcbiAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG4gIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudEFjdFF1ZXVlID0gUmVhY3RDdXJyZW50QWN0UXVldWU7XG59XG5cbi8vIGJ5IGNhbGxzIHRvIHRoZXNlIG1ldGhvZHMgYnkgYSBCYWJlbCBwbHVnaW4uXG4vL1xuLy8gSW4gUFJPRCAob3IgaW4gcGFja2FnZXMgd2l0aG91dCBhY2Nlc3MgdG8gUmVhY3QgaW50ZXJuYWxzKSxcbi8vIHRoZXkgYXJlIGxlZnQgYXMgdGhleSBhcmUgaW5zdGVhZC5cblxuZnVuY3Rpb24gd2Fybihmb3JtYXQpIHtcbiAge1xuICAgIHtcbiAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICB9XG5cbiAgICAgIHByaW50V2FybmluZygnd2FybicsIGZvcm1hdCwgYXJncyk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBlcnJvcihmb3JtYXQpIHtcbiAge1xuICAgIHtcbiAgICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICAgIGFyZ3NbX2tleTIgLSAxXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgICB9XG5cbiAgICAgIHByaW50V2FybmluZygnZXJyb3InLCBmb3JtYXQsIGFyZ3MpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwcmludFdhcm5pbmcobGV2ZWwsIGZvcm1hdCwgYXJncykge1xuICAvLyBXaGVuIGNoYW5naW5nIHRoaXMgbG9naWMsIHlvdSBtaWdodCB3YW50IHRvIGFsc29cbiAgLy8gdXBkYXRlIGNvbnNvbGVXaXRoU3RhY2tEZXYud3d3LmpzIGFzIHdlbGwuXG4gIHtcbiAgICB2YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG4gICAgdmFyIHN0YWNrID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRTdGFja0FkZGVuZHVtKCk7XG5cbiAgICBpZiAoc3RhY2sgIT09ICcnKSB7XG4gICAgICBmb3JtYXQgKz0gJyVzJztcbiAgICAgIGFyZ3MgPSBhcmdzLmNvbmNhdChbc3RhY2tdKTtcbiAgICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuXG5cbiAgICB2YXIgYXJnc1dpdGhGb3JtYXQgPSBhcmdzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIFN0cmluZyhpdGVtKTtcbiAgICB9KTsgLy8gQ2FyZWZ1bDogUk4gY3VycmVudGx5IGRlcGVuZHMgb24gdGhpcyBwcmVmaXhcblxuICAgIGFyZ3NXaXRoRm9ybWF0LnVuc2hpZnQoJ1dhcm5pbmc6ICcgKyBmb3JtYXQpOyAvLyBXZSBpbnRlbnRpb25hbGx5IGRvbid0IHVzZSBzcHJlYWQgKG9yIC5hcHBseSkgZGlyZWN0bHkgYmVjYXVzZSBpdFxuICAgIC8vIGJyZWFrcyBJRTk6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTM2MTBcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nXG5cbiAgICBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlW2xldmVsXSwgY29uc29sZSwgYXJnc1dpdGhGb3JtYXQpO1xuICB9XG59XG5cbnZhciBkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnQgPSB7fTtcblxuZnVuY3Rpb24gd2Fybk5vb3AocHVibGljSW5zdGFuY2UsIGNhbGxlck5hbWUpIHtcbiAge1xuICAgIHZhciBfY29uc3RydWN0b3IgPSBwdWJsaWNJbnN0YW5jZS5jb25zdHJ1Y3RvcjtcbiAgICB2YXIgY29tcG9uZW50TmFtZSA9IF9jb25zdHJ1Y3RvciAmJiAoX2NvbnN0cnVjdG9yLmRpc3BsYXlOYW1lIHx8IF9jb25zdHJ1Y3Rvci5uYW1lKSB8fCAnUmVhY3RDbGFzcyc7XG4gICAgdmFyIHdhcm5pbmdLZXkgPSBjb21wb25lbnROYW1lICsgXCIuXCIgKyBjYWxsZXJOYW1lO1xuXG4gICAgaWYgKGRpZFdhcm5TdGF0ZVVwZGF0ZUZvclVubW91bnRlZENvbXBvbmVudFt3YXJuaW5nS2V5XSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVycm9yKFwiQ2FuJ3QgY2FsbCAlcyBvbiBhIGNvbXBvbmVudCB0aGF0IGlzIG5vdCB5ZXQgbW91bnRlZC4gXCIgKyAnVGhpcyBpcyBhIG5vLW9wLCBidXQgaXQgbWlnaHQgaW5kaWNhdGUgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbi4gJyArICdJbnN0ZWFkLCBhc3NpZ24gdG8gYHRoaXMuc3RhdGVgIGRpcmVjdGx5IG9yIGRlZmluZSBhIGBzdGF0ZSA9IHt9O2AgJyArICdjbGFzcyBwcm9wZXJ0eSB3aXRoIHRoZSBkZXNpcmVkIHN0YXRlIGluIHRoZSAlcyBjb21wb25lbnQuJywgY2FsbGVyTmFtZSwgY29tcG9uZW50TmFtZSk7XG5cbiAgICBkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnRbd2FybmluZ0tleV0gPSB0cnVlO1xuICB9XG59XG4vKipcbiAqIFRoaXMgaXMgdGhlIGFic3RyYWN0IEFQSSBmb3IgYW4gdXBkYXRlIHF1ZXVlLlxuICovXG5cblxudmFyIFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlID0ge1xuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IHRoaXMgY29tcG9zaXRlIGNvbXBvbmVudCBpcyBtb3VudGVkLlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB3ZSB3YW50IHRvIHRlc3QuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgbW91bnRlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKiBAcHJvdGVjdGVkXG4gICAqIEBmaW5hbFxuICAgKi9cbiAgaXNNb3VudGVkOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEZvcmNlcyBhbiB1cGRhdGUuIFRoaXMgc2hvdWxkIG9ubHkgYmUgaW52b2tlZCB3aGVuIGl0IGlzIGtub3duIHdpdGhcbiAgICogY2VydGFpbnR5IHRoYXQgd2UgYXJlICoqbm90KiogaW4gYSBET00gdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIFlvdSBtYXkgd2FudCB0byBjYWxsIHRoaXMgd2hlbiB5b3Uga25vdyB0aGF0IHNvbWUgZGVlcGVyIGFzcGVjdCBvZiB0aGVcbiAgICogY29tcG9uZW50J3Mgc3RhdGUgaGFzIGNoYW5nZWQgYnV0IGBzZXRTdGF0ZWAgd2FzIG5vdCBjYWxsZWQuXG4gICAqXG4gICAqIFRoaXMgd2lsbCBub3QgaW52b2tlIGBzaG91bGRDb21wb25lbnRVcGRhdGVgLCBidXQgaXQgd2lsbCBpbnZva2VcbiAgICogYGNvbXBvbmVudFdpbGxVcGRhdGVgIGFuZCBgY29tcG9uZW50RGlkVXBkYXRlYC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2UgdGhhdCBzaG91bGQgcmVyZW5kZXIuXG4gICAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgY29tcG9uZW50IGlzIHVwZGF0ZWQuXG4gICAqIEBwYXJhbSB7P3N0cmluZ30gY2FsbGVyTmFtZSBuYW1lIG9mIHRoZSBjYWxsaW5nIGZ1bmN0aW9uIGluIHRoZSBwdWJsaWMgQVBJLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVGb3JjZVVwZGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBjYWxsYmFjaywgY2FsbGVyTmFtZSkge1xuICAgIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCAnZm9yY2VVcGRhdGUnKTtcbiAgfSxcblxuICAvKipcbiAgICogUmVwbGFjZXMgYWxsIG9mIHRoZSBzdGF0ZS4gQWx3YXlzIHVzZSB0aGlzIG9yIGBzZXRTdGF0ZWAgdG8gbXV0YXRlIHN0YXRlLlxuICAgKiBZb3Ugc2hvdWxkIHRyZWF0IGB0aGlzLnN0YXRlYCBhcyBpbW11dGFibGUuXG4gICAqXG4gICAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGB0aGlzLnN0YXRlYCB3aWxsIGJlIGltbWVkaWF0ZWx5IHVwZGF0ZWQsIHNvXG4gICAqIGFjY2Vzc2luZyBgdGhpcy5zdGF0ZWAgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuIHRoZSBvbGQgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0ge29iamVjdH0gY29tcGxldGVTdGF0ZSBOZXh0IHN0YXRlLlxuICAgKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIGNvbXBvbmVudCBpcyB1cGRhdGVkLlxuICAgKiBAcGFyYW0gez9zdHJpbmd9IGNhbGxlck5hbWUgbmFtZSBvZiB0aGUgY2FsbGluZyBmdW5jdGlvbiBpbiB0aGUgcHVibGljIEFQSS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlUmVwbGFjZVN0YXRlOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UsIGNvbXBsZXRlU3RhdGUsIGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgd2Fybk5vb3AocHVibGljSW5zdGFuY2UsICdyZXBsYWNlU3RhdGUnKTtcbiAgfSxcblxuICAvKipcbiAgICogU2V0cyBhIHN1YnNldCBvZiB0aGUgc3RhdGUuIFRoaXMgb25seSBleGlzdHMgYmVjYXVzZSBfcGVuZGluZ1N0YXRlIGlzXG4gICAqIGludGVybmFsLiBUaGlzIHByb3ZpZGVzIGEgbWVyZ2luZyBzdHJhdGVneSB0aGF0IGlzIG5vdCBhdmFpbGFibGUgdG8gZGVlcFxuICAgKiBwcm9wZXJ0aWVzIHdoaWNoIGlzIGNvbmZ1c2luZy4gVE9ETzogRXhwb3NlIHBlbmRpbmdTdGF0ZSBvciBkb24ndCB1c2UgaXRcbiAgICogZHVyaW5nIHRoZSBtZXJnZS5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2UgdGhhdCBzaG91bGQgcmVyZW5kZXIuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWFsU3RhdGUgTmV4dCBwYXJ0aWFsIHN0YXRlIHRvIGJlIG1lcmdlZCB3aXRoIHN0YXRlLlxuICAgKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIGNvbXBvbmVudCBpcyB1cGRhdGVkLlxuICAgKiBAcGFyYW0gez9zdHJpbmd9IE5hbWUgb2YgdGhlIGNhbGxpbmcgZnVuY3Rpb24gaW4gdGhlIHB1YmxpYyBBUEkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZVNldFN0YXRlOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UsIHBhcnRpYWxTdGF0ZSwgY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgJ3NldFN0YXRlJyk7XG4gIH1cbn07XG5cbnZhciBhc3NpZ24gPSBPYmplY3QuYXNzaWduO1xuXG52YXIgZW1wdHlPYmplY3QgPSB7fTtcblxue1xuICBPYmplY3QuZnJlZXplKGVtcHR5T2JqZWN0KTtcbn1cbi8qKlxuICogQmFzZSBjbGFzcyBoZWxwZXJzIGZvciB0aGUgdXBkYXRpbmcgc3RhdGUgb2YgYSBjb21wb25lbnQuXG4gKi9cblxuXG5mdW5jdGlvbiBDb21wb25lbnQocHJvcHMsIGNvbnRleHQsIHVwZGF0ZXIpIHtcbiAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OyAvLyBJZiBhIGNvbXBvbmVudCBoYXMgc3RyaW5nIHJlZnMsIHdlIHdpbGwgYXNzaWduIGEgZGlmZmVyZW50IG9iamVjdCBsYXRlci5cblxuICB0aGlzLnJlZnMgPSBlbXB0eU9iamVjdDsgLy8gV2UgaW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCB1cGRhdGVyIGJ1dCB0aGUgcmVhbCBvbmUgZ2V0cyBpbmplY3RlZCBieSB0aGVcbiAgLy8gcmVuZGVyZXIuXG5cbiAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTtcbn1cblxuQ29tcG9uZW50LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50ID0ge307XG4vKipcbiAqIFNldHMgYSBzdWJzZXQgb2YgdGhlIHN0YXRlLiBBbHdheXMgdXNlIHRoaXMgdG8gbXV0YXRlXG4gKiBzdGF0ZS4gWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICpcbiAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGB0aGlzLnN0YXRlYCB3aWxsIGJlIGltbWVkaWF0ZWx5IHVwZGF0ZWQsIHNvXG4gKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICpcbiAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGNhbGxzIHRvIGBzZXRTdGF0ZWAgd2lsbCBydW4gc3luY2hyb25vdXNseSxcbiAqIGFzIHRoZXkgbWF5IGV2ZW50dWFsbHkgYmUgYmF0Y2hlZCB0b2dldGhlci4gIFlvdSBjYW4gcHJvdmlkZSBhbiBvcHRpb25hbFxuICogY2FsbGJhY2sgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIHdoZW4gdGhlIGNhbGwgdG8gc2V0U3RhdGUgaXMgYWN0dWFsbHlcbiAqIGNvbXBsZXRlZC5cbiAqXG4gKiBXaGVuIGEgZnVuY3Rpb24gaXMgcHJvdmlkZWQgdG8gc2V0U3RhdGUsIGl0IHdpbGwgYmUgY2FsbGVkIGF0IHNvbWUgcG9pbnQgaW5cbiAqIHRoZSBmdXR1cmUgKG5vdCBzeW5jaHJvbm91c2x5KS4gSXQgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgdXAgdG8gZGF0ZVxuICogY29tcG9uZW50IGFyZ3VtZW50cyAoc3RhdGUsIHByb3BzLCBjb250ZXh0KS4gVGhlc2UgdmFsdWVzIGNhbiBiZSBkaWZmZXJlbnRcbiAqIGZyb20gdGhpcy4qIGJlY2F1c2UgeW91ciBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIGFmdGVyIHJlY2VpdmVQcm9wcyBidXQgYmVmb3JlXG4gKiBzaG91bGRDb21wb25lbnRVcGRhdGUsIGFuZCB0aGlzIG5ldyBzdGF0ZSwgcHJvcHMsIGFuZCBjb250ZXh0IHdpbGwgbm90IHlldCBiZVxuICogYXNzaWduZWQgdG8gdGhpcy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdHxmdW5jdGlvbn0gcGFydGlhbFN0YXRlIE5leHQgcGFydGlhbCBzdGF0ZSBvciBmdW5jdGlvbiB0b1xuICogICAgICAgIHByb2R1Y2UgbmV4dCBwYXJ0aWFsIHN0YXRlIHRvIGJlIG1lcmdlZCB3aXRoIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIHN0YXRlIGlzIHVwZGF0ZWQuXG4gKiBAZmluYWxcbiAqIEBwcm90ZWN0ZWRcbiAqL1xuXG5Db21wb25lbnQucHJvdG90eXBlLnNldFN0YXRlID0gZnVuY3Rpb24gKHBhcnRpYWxTdGF0ZSwgY2FsbGJhY2spIHtcbiAgaWYgKHR5cGVvZiBwYXJ0aWFsU3RhdGUgIT09ICdvYmplY3QnICYmIHR5cGVvZiBwYXJ0aWFsU3RhdGUgIT09ICdmdW5jdGlvbicgJiYgcGFydGlhbFN0YXRlICE9IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3NldFN0YXRlKC4uLik6IHRha2VzIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMgdG8gdXBkYXRlIG9yIGEgJyArICdmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuJyk7XG4gIH1cblxuICB0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsIHBhcnRpYWxTdGF0ZSwgY2FsbGJhY2ssICdzZXRTdGF0ZScpO1xufTtcbi8qKlxuICogRm9yY2VzIGFuIHVwZGF0ZS4gVGhpcyBzaG91bGQgb25seSBiZSBpbnZva2VkIHdoZW4gaXQgaXMga25vd24gd2l0aFxuICogY2VydGFpbnR5IHRoYXQgd2UgYXJlICoqbm90KiogaW4gYSBET00gdHJhbnNhY3Rpb24uXG4gKlxuICogWW91IG1heSB3YW50IHRvIGNhbGwgdGhpcyB3aGVuIHlvdSBrbm93IHRoYXQgc29tZSBkZWVwZXIgYXNwZWN0IG9mIHRoZVxuICogY29tcG9uZW50J3Mgc3RhdGUgaGFzIGNoYW5nZWQgYnV0IGBzZXRTdGF0ZWAgd2FzIG5vdCBjYWxsZWQuXG4gKlxuICogVGhpcyB3aWxsIG5vdCBpbnZva2UgYHNob3VsZENvbXBvbmVudFVwZGF0ZWAsIGJ1dCBpdCB3aWxsIGludm9rZVxuICogYGNvbXBvbmVudFdpbGxVcGRhdGVgIGFuZCBgY29tcG9uZW50RGlkVXBkYXRlYC5cbiAqXG4gKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIHVwZGF0ZSBpcyBjb21wbGV0ZS5cbiAqIEBmaW5hbFxuICogQHByb3RlY3RlZFxuICovXG5cblxuQ29tcG9uZW50LnByb3RvdHlwZS5mb3JjZVVwZGF0ZSA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICB0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsIGNhbGxiYWNrLCAnZm9yY2VVcGRhdGUnKTtcbn07XG4vKipcbiAqIERlcHJlY2F0ZWQgQVBJcy4gVGhlc2UgQVBJcyB1c2VkIHRvIGV4aXN0IG9uIGNsYXNzaWMgUmVhY3QgY2xhc3NlcyBidXQgc2luY2VcbiAqIHdlIHdvdWxkIGxpa2UgdG8gZGVwcmVjYXRlIHRoZW0sIHdlJ3JlIG5vdCBnb2luZyB0byBtb3ZlIHRoZW0gb3ZlciB0byB0aGlzXG4gKiBtb2Rlcm4gYmFzZSBjbGFzcy4gSW5zdGVhZCwgd2UgZGVmaW5lIGEgZ2V0dGVyIHRoYXQgd2FybnMgaWYgaXQncyBhY2Nlc3NlZC5cbiAqL1xuXG5cbntcbiAgdmFyIGRlcHJlY2F0ZWRBUElzID0ge1xuICAgIGlzTW91bnRlZDogWydpc01vdW50ZWQnLCAnSW5zdGVhZCwgbWFrZSBzdXJlIHRvIGNsZWFuIHVwIHN1YnNjcmlwdGlvbnMgYW5kIHBlbmRpbmcgcmVxdWVzdHMgaW4gJyArICdjb21wb25lbnRXaWxsVW5tb3VudCB0byBwcmV2ZW50IG1lbW9yeSBsZWFrcy4nXSxcbiAgICByZXBsYWNlU3RhdGU6IFsncmVwbGFjZVN0YXRlJywgJ1JlZmFjdG9yIHlvdXIgY29kZSB0byB1c2Ugc2V0U3RhdGUgaW5zdGVhZCAoc2VlICcgKyAnaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8zMjM2KS4nXVxuICB9O1xuXG4gIHZhciBkZWZpbmVEZXByZWNhdGlvbldhcm5pbmcgPSBmdW5jdGlvbiAobWV0aG9kTmFtZSwgaW5mbykge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb21wb25lbnQucHJvdG90eXBlLCBtZXRob2ROYW1lLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2FybignJXMoLi4uKSBpcyBkZXByZWNhdGVkIGluIHBsYWluIEphdmFTY3JpcHQgUmVhY3QgY2xhc3Nlcy4gJXMnLCBpbmZvWzBdLCBpbmZvWzFdKTtcblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIGZvciAodmFyIGZuTmFtZSBpbiBkZXByZWNhdGVkQVBJcykge1xuICAgIGlmIChkZXByZWNhdGVkQVBJcy5oYXNPd25Qcm9wZXJ0eShmbk5hbWUpKSB7XG4gICAgICBkZWZpbmVEZXByZWNhdGlvbldhcm5pbmcoZm5OYW1lLCBkZXByZWNhdGVkQVBJc1tmbk5hbWVdKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gQ29tcG9uZW50RHVtbXkoKSB7fVxuXG5Db21wb25lbnREdW1teS5wcm90b3R5cGUgPSBDb21wb25lbnQucHJvdG90eXBlO1xuLyoqXG4gKiBDb252ZW5pZW5jZSBjb21wb25lbnQgd2l0aCBkZWZhdWx0IHNoYWxsb3cgZXF1YWxpdHkgY2hlY2sgZm9yIHNDVS5cbiAqL1xuXG5mdW5jdGlvbiBQdXJlQ29tcG9uZW50KHByb3BzLCBjb250ZXh0LCB1cGRhdGVyKSB7XG4gIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgdGhpcy5jb250ZXh0ID0gY29udGV4dDsgLy8gSWYgYSBjb21wb25lbnQgaGFzIHN0cmluZyByZWZzLCB3ZSB3aWxsIGFzc2lnbiBhIGRpZmZlcmVudCBvYmplY3QgbGF0ZXIuXG5cbiAgdGhpcy5yZWZzID0gZW1wdHlPYmplY3Q7XG4gIHRoaXMudXBkYXRlciA9IHVwZGF0ZXIgfHwgUmVhY3ROb29wVXBkYXRlUXVldWU7XG59XG5cbnZhciBwdXJlQ29tcG9uZW50UHJvdG90eXBlID0gUHVyZUNvbXBvbmVudC5wcm90b3R5cGUgPSBuZXcgQ29tcG9uZW50RHVtbXkoKTtcbnB1cmVDb21wb25lbnRQcm90b3R5cGUuY29uc3RydWN0b3IgPSBQdXJlQ29tcG9uZW50OyAvLyBBdm9pZCBhbiBleHRyYSBwcm90b3R5cGUganVtcCBmb3IgdGhlc2UgbWV0aG9kcy5cblxuYXNzaWduKHB1cmVDb21wb25lbnRQcm90b3R5cGUsIENvbXBvbmVudC5wcm90b3R5cGUpO1xucHVyZUNvbXBvbmVudFByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudCA9IHRydWU7XG5cbi8vIGFuIGltbXV0YWJsZSBvYmplY3Qgd2l0aCBhIHNpbmdsZSBtdXRhYmxlIHZhbHVlXG5mdW5jdGlvbiBjcmVhdGVSZWYoKSB7XG4gIHZhciByZWZPYmplY3QgPSB7XG4gICAgY3VycmVudDogbnVsbFxuICB9O1xuXG4gIHtcbiAgICBPYmplY3Quc2VhbChyZWZPYmplY3QpO1xuICB9XG5cbiAgcmV0dXJuIHJlZk9iamVjdDtcbn1cblxudmFyIGlzQXJyYXlJbXBsID0gQXJyYXkuaXNBcnJheTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlZGVjbGFyZVxuXG5mdW5jdGlvbiBpc0FycmF5KGEpIHtcbiAgcmV0dXJuIGlzQXJyYXlJbXBsKGEpO1xufVxuXG4vKlxuICogVGhlIGAnJyArIHZhbHVlYCBwYXR0ZXJuICh1c2VkIGluIGluIHBlcmYtc2Vuc2l0aXZlIGNvZGUpIHRocm93cyBmb3IgU3ltYm9sXG4gKiBhbmQgVGVtcG9yYWwuKiB0eXBlcy4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzIyMDY0LlxuICpcbiAqIFRoZSBmdW5jdGlvbnMgaW4gdGhpcyBtb2R1bGUgd2lsbCB0aHJvdyBhbiBlYXNpZXItdG8tdW5kZXJzdGFuZCxcbiAqIGVhc2llci10by1kZWJ1ZyBleGNlcHRpb24gd2l0aCBhIGNsZWFyIGVycm9ycyBtZXNzYWdlIG1lc3NhZ2UgZXhwbGFpbmluZyB0aGVcbiAqIHByb2JsZW0uIChJbnN0ZWFkIG9mIGEgY29uZnVzaW5nIGV4Y2VwdGlvbiB0aHJvd24gaW5zaWRlIHRoZSBpbXBsZW1lbnRhdGlvblxuICogb2YgdGhlIGB2YWx1ZWAgb2JqZWN0KS5cbiAqL1xuLy8gJEZsb3dGaXhNZSBvbmx5IGNhbGxlZCBpbiBERVYsIHNvIHZvaWQgcmV0dXJuIGlzIG5vdCBwb3NzaWJsZS5cbmZ1bmN0aW9uIHR5cGVOYW1lKHZhbHVlKSB7XG4gIHtcbiAgICAvLyB0b1N0cmluZ1RhZyBpcyBuZWVkZWQgZm9yIG5hbWVzcGFjZWQgdHlwZXMgbGlrZSBUZW1wb3JhbC5JbnN0YW50XG4gICAgdmFyIGhhc1RvU3RyaW5nVGFnID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wudG9TdHJpbmdUYWc7XG4gICAgdmFyIHR5cGUgPSBoYXNUb1N0cmluZ1RhZyAmJiB2YWx1ZVtTeW1ib2wudG9TdHJpbmdUYWddIHx8IHZhbHVlLmNvbnN0cnVjdG9yLm5hbWUgfHwgJ09iamVjdCc7XG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cbn0gLy8gJEZsb3dGaXhNZSBvbmx5IGNhbGxlZCBpbiBERVYsIHNvIHZvaWQgcmV0dXJuIGlzIG5vdCBwb3NzaWJsZS5cblxuXG5mdW5jdGlvbiB3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkge1xuICB7XG4gICAgdHJ5IHtcbiAgICAgIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICAvLyBJZiB5b3UgZW5kZWQgdXAgaGVyZSBieSBmb2xsb3dpbmcgYW4gZXhjZXB0aW9uIGNhbGwgc3RhY2ssIGhlcmUncyB3aGF0J3NcbiAgLy8gaGFwcGVuZWQ6IHlvdSBzdXBwbGllZCBhbiBvYmplY3Qgb3Igc3ltYm9sIHZhbHVlIHRvIFJlYWN0IChhcyBhIHByb3AsIGtleSxcbiAgLy8gRE9NIGF0dHJpYnV0ZSwgQ1NTIHByb3BlcnR5LCBzdHJpbmcgcmVmLCBldGMuKSBhbmQgd2hlbiBSZWFjdCB0cmllZCB0b1xuICAvLyBjb2VyY2UgaXQgdG8gYSBzdHJpbmcgdXNpbmcgYCcnICsgdmFsdWVgLCBhbiBleGNlcHRpb24gd2FzIHRocm93bi5cbiAgLy9cbiAgLy8gVGhlIG1vc3QgY29tbW9uIHR5cGVzIHRoYXQgd2lsbCBjYXVzZSB0aGlzIGV4Y2VwdGlvbiBhcmUgYFN5bWJvbGAgaW5zdGFuY2VzXG4gIC8vIGFuZCBUZW1wb3JhbCBvYmplY3RzIGxpa2UgYFRlbXBvcmFsLkluc3RhbnRgLiBCdXQgYW55IG9iamVjdCB0aGF0IGhhcyBhXG4gIC8vIGB2YWx1ZU9mYCBvciBgW1N5bWJvbC50b1ByaW1pdGl2ZV1gIG1ldGhvZCB0aGF0IHRocm93cyB3aWxsIGFsc28gY2F1c2UgdGhpc1xuICAvLyBleGNlcHRpb24uIChMaWJyYXJ5IGF1dGhvcnMgZG8gdGhpcyB0byBwcmV2ZW50IHVzZXJzIGZyb20gdXNpbmcgYnVpbHQtaW5cbiAgLy8gbnVtZXJpYyBvcGVyYXRvcnMgbGlrZSBgK2Agb3IgY29tcGFyaXNvbiBvcGVyYXRvcnMgbGlrZSBgPj1gIGJlY2F1c2UgY3VzdG9tXG4gIC8vIG1ldGhvZHMgYXJlIG5lZWRlZCB0byBwZXJmb3JtIGFjY3VyYXRlIGFyaXRobWV0aWMgb3IgY29tcGFyaXNvbi4pXG4gIC8vXG4gIC8vIFRvIGZpeCB0aGUgcHJvYmxlbSwgY29lcmNlIHRoaXMgb2JqZWN0IG9yIHN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyBiZWZvcmVcbiAgLy8gcGFzc2luZyBpdCB0byBSZWFjdC4gVGhlIG1vc3QgcmVsaWFibGUgd2F5IGlzIHVzdWFsbHkgYFN0cmluZyh2YWx1ZSlgLlxuICAvL1xuICAvLyBUbyBmaW5kIHdoaWNoIHZhbHVlIGlzIHRocm93aW5nLCBjaGVjayB0aGUgYnJvd3NlciBvciBkZWJ1Z2dlciBjb25zb2xlLlxuICAvLyBCZWZvcmUgdGhpcyBleGNlcHRpb24gd2FzIHRocm93biwgdGhlcmUgc2hvdWxkIGJlIGBjb25zb2xlLmVycm9yYCBvdXRwdXRcbiAgLy8gdGhhdCBzaG93cyB0aGUgdHlwZSAoU3ltYm9sLCBUZW1wb3JhbC5QbGFpbkRhdGUsIGV0Yy4pIHRoYXQgY2F1c2VkIHRoZVxuICAvLyBwcm9ibGVtIGFuZCBob3cgdGhhdCB0eXBlIHdhcyB1c2VkOiBrZXksIGF0cnJpYnV0ZSwgaW5wdXQgdmFsdWUgcHJvcCwgZXRjLlxuICAvLyBJbiBtb3N0IGNhc2VzLCB0aGlzIGNvbnNvbGUgb3V0cHV0IGFsc28gc2hvd3MgdGhlIGNvbXBvbmVudCBhbmQgaXRzXG4gIC8vIGFuY2VzdG9yIGNvbXBvbmVudHMgd2hlcmUgdGhlIGV4Y2VwdGlvbiBoYXBwZW5lZC5cbiAgLy9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gIHJldHVybiAnJyArIHZhbHVlO1xufVxuZnVuY3Rpb24gY2hlY2tLZXlTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICB7XG4gICAgaWYgKHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSkge1xuICAgICAgZXJyb3IoJ1RoZSBwcm92aWRlZCBrZXkgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4nICsgJyBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgYmVmb3JlIHVzaW5nIGl0IGhlcmUuJywgdHlwZU5hbWUodmFsdWUpKTtcblxuICAgICAgcmV0dXJuIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7IC8vIHRocm93ICh0byBoZWxwIGNhbGxlcnMgZmluZCB0cm91Ymxlc2hvb3RpbmcgY29tbWVudHMpXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFdyYXBwZWROYW1lKG91dGVyVHlwZSwgaW5uZXJUeXBlLCB3cmFwcGVyTmFtZSkge1xuICB2YXIgZGlzcGxheU5hbWUgPSBvdXRlclR5cGUuZGlzcGxheU5hbWU7XG5cbiAgaWYgKGRpc3BsYXlOYW1lKSB7XG4gICAgcmV0dXJuIGRpc3BsYXlOYW1lO1xuICB9XG5cbiAgdmFyIGZ1bmN0aW9uTmFtZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCAnJztcbiAgcmV0dXJuIGZ1bmN0aW9uTmFtZSAhPT0gJycgPyB3cmFwcGVyTmFtZSArIFwiKFwiICsgZnVuY3Rpb25OYW1lICsgXCIpXCIgOiB3cmFwcGVyTmFtZTtcbn0gLy8gS2VlcCBpbiBzeW5jIHdpdGggcmVhY3QtcmVjb25jaWxlci9nZXRDb21wb25lbnROYW1lRnJvbUZpYmVyXG5cblxuZnVuY3Rpb24gZ2V0Q29udGV4dE5hbWUodHlwZSkge1xuICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCAnQ29udGV4dCc7XG59IC8vIE5vdGUgdGhhdCB0aGUgcmVjb25jaWxlciBwYWNrYWdlIHNob3VsZCBnZW5lcmFsbHkgcHJlZmVyIHRvIHVzZSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKCkgaW5zdGVhZC5cblxuXG5mdW5jdGlvbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSkge1xuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgLy8gSG9zdCByb290LCB0ZXh0IG5vZGUgb3IganVzdCBpbnZhbGlkIHR5cGUuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB7XG4gICAgaWYgKHR5cGVvZiB0eXBlLnRhZyA9PT0gJ251bWJlcicpIHtcbiAgICAgIGVycm9yKCdSZWNlaXZlZCBhbiB1bmV4cGVjdGVkIG9iamVjdCBpbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoKS4gJyArICdUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICByZXR1cm4gJ0ZyYWdtZW50JztcblxuICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICByZXR1cm4gJ1BvcnRhbCc7XG5cbiAgICBjYXNlIFJFQUNUX1BST0ZJTEVSX1RZUEU6XG4gICAgICByZXR1cm4gJ1Byb2ZpbGVyJztcblxuICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgIHJldHVybiAnU3RyaWN0TW9kZSc7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuICdTdXNwZW5zZUxpc3QnO1xuXG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgdmFyIGNvbnRleHQgPSB0eXBlO1xuICAgICAgICByZXR1cm4gZ2V0Q29udGV4dE5hbWUoY29udGV4dCkgKyAnLkNvbnN1bWVyJztcblxuICAgICAgY2FzZSBSRUFDVF9QUk9WSURFUl9UWVBFOlxuICAgICAgICB2YXIgcHJvdmlkZXIgPSB0eXBlO1xuICAgICAgICByZXR1cm4gZ2V0Q29udGV4dE5hbWUocHJvdmlkZXIuX2NvbnRleHQpICsgJy5Qcm92aWRlcic7XG5cbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgcmV0dXJuIGdldFdyYXBwZWROYW1lKHR5cGUsIHR5cGUucmVuZGVyLCAnRm9yd2FyZFJlZicpO1xuXG4gICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgdmFyIG91dGVyTmFtZSA9IHR5cGUuZGlzcGxheU5hbWUgfHwgbnVsbDtcblxuICAgICAgICBpZiAob3V0ZXJOYW1lICE9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIG91dGVyTmFtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZS50eXBlKSB8fCAnTWVtbyc7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIGxhenlDb21wb25lbnQgPSB0eXBlO1xuICAgICAgICAgIHZhciBwYXlsb2FkID0gbGF6eUNvbXBvbmVudC5fcGF5bG9hZDtcbiAgICAgICAgICB2YXIgaW5pdCA9IGxhenlDb21wb25lbnQuX2luaXQ7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShpbml0KHBheWxvYWQpKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbnZhciBSRVNFUlZFRF9QUk9QUyA9IHtcbiAga2V5OiB0cnVlLFxuICByZWY6IHRydWUsXG4gIF9fc2VsZjogdHJ1ZSxcbiAgX19zb3VyY2U6IHRydWVcbn07XG52YXIgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24sIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duLCBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzO1xuXG57XG4gIGRpZFdhcm5BYm91dFN0cmluZ1JlZnMgPSB7fTtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRSZWYoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdyZWYnKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAncmVmJykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5yZWYgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRLZXkoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdrZXknKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAna2V5JykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5rZXkgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XG4gIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkgPSBmdW5jdGlvbiAoKSB7XG4gICAge1xuICAgICAgaWYgKCFzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bikge1xuICAgICAgICBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJyVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkuaXNSZWFjdFdhcm5pbmcgPSB0cnVlO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdrZXknLCB7XG4gICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXksXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ1JlZiA9IGZ1bmN0aW9uICgpIHtcbiAgICB7XG4gICAgICBpZiAoIXNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duKSB7XG4gICAgICAgIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignJXM6IGByZWZgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgJyArICdpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lICcgKyAndmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCAnICsgJ3Byb3AuIChodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3BlY2lhbC1wcm9wcyknLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHdhcm5BYm91dEFjY2Vzc2luZ1JlZi5pc1JlYWN0V2FybmluZyA9IHRydWU7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9wcywgJ3JlZicsIHtcbiAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ1JlZixcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHdhcm5JZlN0cmluZ1JlZkNhbm5vdEJlQXV0b0NvbnZlcnRlZChjb25maWcpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgY29uZmlnLnJlZiA9PT0gJ3N0cmluZycgJiYgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCAmJiBjb25maWcuX19zZWxmICYmIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQuc3RhdGVOb2RlICE9PSBjb25maWcuX19zZWxmKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LnR5cGUpO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dFN0cmluZ1JlZnNbY29tcG9uZW50TmFtZV0pIHtcbiAgICAgICAgZXJyb3IoJ0NvbXBvbmVudCBcIiVzXCIgY29udGFpbnMgdGhlIHN0cmluZyByZWYgXCIlc1wiLiAnICsgJ1N1cHBvcnQgZm9yIHN0cmluZyByZWZzIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiAnICsgJ1RoaXMgY2FzZSBjYW5ub3QgYmUgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8gYW4gYXJyb3cgZnVuY3Rpb24uICcgKyAnV2UgYXNrIHlvdSB0byBtYW51YWxseSBmaXggdGhpcyBjYXNlIGJ5IHVzaW5nIHVzZVJlZigpIG9yIGNyZWF0ZVJlZigpIGluc3RlYWQuICcgKyAnTGVhcm4gbW9yZSBhYm91dCB1c2luZyByZWZzIHNhZmVseSBoZXJlOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zdHJpY3QtbW9kZS1zdHJpbmctcmVmJywgY29tcG9uZW50TmFtZSwgY29uZmlnLnJlZik7XG5cbiAgICAgICAgZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBhIG5ldyBSZWFjdCBlbGVtZW50LiBUaGlzIG5vIGxvbmdlciBhZGhlcmVzIHRvXG4gKiB0aGUgY2xhc3MgcGF0dGVybiwgc28gZG8gbm90IHVzZSBuZXcgdG8gY2FsbCBpdC4gQWxzbywgaW5zdGFuY2VvZiBjaGVja1xuICogd2lsbCBub3Qgd29yay4gSW5zdGVhZCB0ZXN0ICQkdHlwZW9mIGZpZWxkIGFnYWluc3QgU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpIHRvIGNoZWNrXG4gKiBpZiBzb21ldGhpbmcgaXMgYSBSZWFjdCBFbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7Kn0gdHlwZVxuICogQHBhcmFtIHsqfSBwcm9wc1xuICogQHBhcmFtIHsqfSBrZXlcbiAqIEBwYXJhbSB7c3RyaW5nfG9iamVjdH0gcmVmXG4gKiBAcGFyYW0geyp9IG93bmVyXG4gKiBAcGFyYW0geyp9IHNlbGYgQSAqdGVtcG9yYXJ5KiBoZWxwZXIgdG8gZGV0ZWN0IHBsYWNlcyB3aGVyZSBgdGhpc2AgaXNcbiAqIGRpZmZlcmVudCBmcm9tIHRoZSBgb3duZXJgIHdoZW4gUmVhY3QuY3JlYXRlRWxlbWVudCBpcyBjYWxsZWQsIHNvIHRoYXQgd2VcbiAqIGNhbiB3YXJuLiBXZSB3YW50IHRvIGdldCByaWQgb2Ygb3duZXIgYW5kIHJlcGxhY2Ugc3RyaW5nIGByZWZgcyB3aXRoIGFycm93XG4gKiBmdW5jdGlvbnMsIGFuZCBhcyBsb25nIGFzIGB0aGlzYCBhbmQgb3duZXIgYXJlIHRoZSBzYW1lLCB0aGVyZSB3aWxsIGJlIG5vXG4gKiBjaGFuZ2UgaW4gYmVoYXZpb3IuXG4gKiBAcGFyYW0geyp9IHNvdXJjZSBBbiBhbm5vdGF0aW9uIG9iamVjdCAoYWRkZWQgYnkgYSB0cmFuc3BpbGVyIG9yIG90aGVyd2lzZSlcbiAqIGluZGljYXRpbmcgZmlsZW5hbWUsIGxpbmUgbnVtYmVyLCBhbmQvb3Igb3RoZXIgaW5mb3JtYXRpb24uXG4gKiBAaW50ZXJuYWxcbiAqL1xuXG5cbnZhciBSZWFjdEVsZW1lbnQgPSBmdW5jdGlvbiAodHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgb3duZXIsIHByb3BzKSB7XG4gIHZhciBlbGVtZW50ID0ge1xuICAgIC8vIFRoaXMgdGFnIGFsbG93cyB1cyB0byB1bmlxdWVseSBpZGVudGlmeSB0aGlzIGFzIGEgUmVhY3QgRWxlbWVudFxuICAgICQkdHlwZW9mOiBSRUFDVF9FTEVNRU5UX1RZUEUsXG4gICAgLy8gQnVpbHQtaW4gcHJvcGVydGllcyB0aGF0IGJlbG9uZyBvbiB0aGUgZWxlbWVudFxuICAgIHR5cGU6IHR5cGUsXG4gICAga2V5OiBrZXksXG4gICAgcmVmOiByZWYsXG4gICAgcHJvcHM6IHByb3BzLFxuICAgIC8vIFJlY29yZCB0aGUgY29tcG9uZW50IHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGlzIGVsZW1lbnQuXG4gICAgX293bmVyOiBvd25lclxuICB9O1xuXG4gIHtcbiAgICAvLyBUaGUgdmFsaWRhdGlvbiBmbGFnIGlzIGN1cnJlbnRseSBtdXRhdGl2ZS4gV2UgcHV0IGl0IG9uXG4gICAgLy8gYW4gZXh0ZXJuYWwgYmFja2luZyBzdG9yZSBzbyB0aGF0IHdlIGNhbiBmcmVlemUgdGhlIHdob2xlIG9iamVjdC5cbiAgICAvLyBUaGlzIGNhbiBiZSByZXBsYWNlZCB3aXRoIGEgV2Vha01hcCBvbmNlIHRoZXkgYXJlIGltcGxlbWVudGVkIGluXG4gICAgLy8gY29tbW9ubHkgdXNlZCBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMuXG4gICAgZWxlbWVudC5fc3RvcmUgPSB7fTsgLy8gVG8gbWFrZSBjb21wYXJpbmcgUmVhY3RFbGVtZW50cyBlYXNpZXIgZm9yIHRlc3RpbmcgcHVycG9zZXMsIHdlIG1ha2VcbiAgICAvLyB0aGUgdmFsaWRhdGlvbiBmbGFnIG5vbi1lbnVtZXJhYmxlICh3aGVyZSBwb3NzaWJsZSwgd2hpY2ggc2hvdWxkXG4gICAgLy8gaW5jbHVkZSBldmVyeSBlbnZpcm9ubWVudCB3ZSBydW4gdGVzdHMgaW4pLCBzbyB0aGUgdGVzdCBmcmFtZXdvcmtcbiAgICAvLyBpZ25vcmVzIGl0LlxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnQuX3N0b3JlLCAndmFsaWRhdGVkJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICB2YWx1ZTogZmFsc2VcbiAgICB9KTsgLy8gc2VsZiBhbmQgc291cmNlIGFyZSBERVYgb25seSBwcm9wZXJ0aWVzLlxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnQsICdfc2VsZicsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIHZhbHVlOiBzZWxmXG4gICAgfSk7IC8vIFR3byBlbGVtZW50cyBjcmVhdGVkIGluIHR3byBkaWZmZXJlbnQgcGxhY2VzIHNob3VsZCBiZSBjb25zaWRlcmVkXG4gICAgLy8gZXF1YWwgZm9yIHRlc3RpbmcgcHVycG9zZXMgYW5kIHRoZXJlZm9yZSB3ZSBoaWRlIGl0IGZyb20gZW51bWVyYXRpb24uXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudCwgJ19zb3VyY2UnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICB2YWx1ZTogc291cmNlXG4gICAgfSk7XG5cbiAgICBpZiAoT2JqZWN0LmZyZWV6ZSkge1xuICAgICAgT2JqZWN0LmZyZWV6ZShlbGVtZW50LnByb3BzKTtcbiAgICAgIE9iamVjdC5mcmVlemUoZWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnQ7XG59O1xuLyoqXG4gKiBDcmVhdGUgYW5kIHJldHVybiBhIG5ldyBSZWFjdEVsZW1lbnQgb2YgdGhlIGdpdmVuIHR5cGUuXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI2NyZWF0ZWVsZW1lbnRcbiAqL1xuXG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50KHR5cGUsIGNvbmZpZywgY2hpbGRyZW4pIHtcbiAgdmFyIHByb3BOYW1lOyAvLyBSZXNlcnZlZCBuYW1lcyBhcmUgZXh0cmFjdGVkXG5cbiAgdmFyIHByb3BzID0ge307XG4gIHZhciBrZXkgPSBudWxsO1xuICB2YXIgcmVmID0gbnVsbDtcbiAgdmFyIHNlbGYgPSBudWxsO1xuICB2YXIgc291cmNlID0gbnVsbDtcblxuICBpZiAoY29uZmlnICE9IG51bGwpIHtcbiAgICBpZiAoaGFzVmFsaWRSZWYoY29uZmlnKSkge1xuICAgICAgcmVmID0gY29uZmlnLnJlZjtcblxuICAgICAge1xuICAgICAgICB3YXJuSWZTdHJpbmdSZWZDYW5ub3RCZUF1dG9Db252ZXJ0ZWQoY29uZmlnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaGFzVmFsaWRLZXkoY29uZmlnKSkge1xuICAgICAge1xuICAgICAgICBjaGVja0tleVN0cmluZ0NvZXJjaW9uKGNvbmZpZy5rZXkpO1xuICAgICAgfVxuXG4gICAgICBrZXkgPSAnJyArIGNvbmZpZy5rZXk7XG4gICAgfVxuXG4gICAgc2VsZiA9IGNvbmZpZy5fX3NlbGYgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBjb25maWcuX19zZWxmO1xuICAgIHNvdXJjZSA9IGNvbmZpZy5fX3NvdXJjZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbmZpZy5fX3NvdXJjZTsgLy8gUmVtYWluaW5nIHByb3BlcnRpZXMgYXJlIGFkZGVkIHRvIGEgbmV3IHByb3BzIG9iamVjdFxuXG4gICAgZm9yIChwcm9wTmFtZSBpbiBjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpICYmICFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH0gLy8gQ2hpbGRyZW4gY2FuIGJlIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQsIGFuZCB0aG9zZSBhcmUgdHJhbnNmZXJyZWQgb250b1xuICAvLyB0aGUgbmV3bHkgYWxsb2NhdGVkIHByb3BzIG9iamVjdC5cblxuXG4gIHZhciBjaGlsZHJlbkxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGggLSAyO1xuXG4gIGlmIChjaGlsZHJlbkxlbmd0aCA9PT0gMSkge1xuICAgIHByb3BzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gIH0gZWxzZSBpZiAoY2hpbGRyZW5MZW5ndGggPiAxKSB7XG4gICAgdmFyIGNoaWxkQXJyYXkgPSBBcnJheShjaGlsZHJlbkxlbmd0aCk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuTGVuZ3RoOyBpKyspIHtcbiAgICAgIGNoaWxkQXJyYXlbaV0gPSBhcmd1bWVudHNbaSArIDJdO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlmIChPYmplY3QuZnJlZXplKSB7XG4gICAgICAgIE9iamVjdC5mcmVlemUoY2hpbGRBcnJheSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZEFycmF5O1xuICB9IC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wc1xuXG5cbiAgaWYgKHR5cGUgJiYgdHlwZS5kZWZhdWx0UHJvcHMpIHtcbiAgICB2YXIgZGVmYXVsdFByb3BzID0gdHlwZS5kZWZhdWx0UHJvcHM7XG5cbiAgICBmb3IgKHByb3BOYW1lIGluIGRlZmF1bHRQcm9wcykge1xuICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGRlZmF1bHRQcm9wc1twcm9wTmFtZV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAge1xuICAgIGlmIChrZXkgfHwgcmVmKSB7XG4gICAgICB2YXIgZGlzcGxheU5hbWUgPSB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyA/IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8ICdVbmtub3duJyA6IHR5cGU7XG5cbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlZikge1xuICAgICAgICBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBSZWFjdEVsZW1lbnQodHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCwgcHJvcHMpO1xufVxuZnVuY3Rpb24gY2xvbmVBbmRSZXBsYWNlS2V5KG9sZEVsZW1lbnQsIG5ld0tleSkge1xuICB2YXIgbmV3RWxlbWVudCA9IFJlYWN0RWxlbWVudChvbGRFbGVtZW50LnR5cGUsIG5ld0tleSwgb2xkRWxlbWVudC5yZWYsIG9sZEVsZW1lbnQuX3NlbGYsIG9sZEVsZW1lbnQuX3NvdXJjZSwgb2xkRWxlbWVudC5fb3duZXIsIG9sZEVsZW1lbnQucHJvcHMpO1xuICByZXR1cm4gbmV3RWxlbWVudDtcbn1cbi8qKlxuICogQ2xvbmUgYW5kIHJldHVybiBhIG5ldyBSZWFjdEVsZW1lbnQgdXNpbmcgZWxlbWVudCBhcyB0aGUgc3RhcnRpbmcgcG9pbnQuXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI2Nsb25lZWxlbWVudFxuICovXG5cbmZ1bmN0aW9uIGNsb25lRWxlbWVudChlbGVtZW50LCBjb25maWcsIGNoaWxkcmVuKSB7XG4gIGlmIChlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlJlYWN0LmNsb25lRWxlbWVudCguLi4pOiBUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkIFwiICsgZWxlbWVudCArIFwiLlwiKTtcbiAgfVxuXG4gIHZhciBwcm9wTmFtZTsgLy8gT3JpZ2luYWwgcHJvcHMgYXJlIGNvcGllZFxuXG4gIHZhciBwcm9wcyA9IGFzc2lnbih7fSwgZWxlbWVudC5wcm9wcyk7IC8vIFJlc2VydmVkIG5hbWVzIGFyZSBleHRyYWN0ZWRcblxuICB2YXIga2V5ID0gZWxlbWVudC5rZXk7XG4gIHZhciByZWYgPSBlbGVtZW50LnJlZjsgLy8gU2VsZiBpcyBwcmVzZXJ2ZWQgc2luY2UgdGhlIG93bmVyIGlzIHByZXNlcnZlZC5cblxuICB2YXIgc2VsZiA9IGVsZW1lbnQuX3NlbGY7IC8vIFNvdXJjZSBpcyBwcmVzZXJ2ZWQgc2luY2UgY2xvbmVFbGVtZW50IGlzIHVubGlrZWx5IHRvIGJlIHRhcmdldGVkIGJ5IGFcbiAgLy8gdHJhbnNwaWxlciwgYW5kIHRoZSBvcmlnaW5hbCBzb3VyY2UgaXMgcHJvYmFibHkgYSBiZXR0ZXIgaW5kaWNhdG9yIG9mIHRoZVxuICAvLyB0cnVlIG93bmVyLlxuXG4gIHZhciBzb3VyY2UgPSBlbGVtZW50Ll9zb3VyY2U7IC8vIE93bmVyIHdpbGwgYmUgcHJlc2VydmVkLCB1bmxlc3MgcmVmIGlzIG92ZXJyaWRkZW5cblxuICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcblxuICBpZiAoY29uZmlnICE9IG51bGwpIHtcbiAgICBpZiAoaGFzVmFsaWRSZWYoY29uZmlnKSkge1xuICAgICAgLy8gU2lsZW50bHkgc3RlYWwgdGhlIHJlZiBmcm9tIHRoZSBwYXJlbnQuXG4gICAgICByZWYgPSBjb25maWcucmVmO1xuICAgICAgb3duZXIgPSBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50O1xuICAgIH1cblxuICAgIGlmIChoYXNWYWxpZEtleShjb25maWcpKSB7XG4gICAgICB7XG4gICAgICAgIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oY29uZmlnLmtleSk7XG4gICAgICB9XG5cbiAgICAgIGtleSA9ICcnICsgY29uZmlnLmtleTtcbiAgICB9IC8vIFJlbWFpbmluZyBwcm9wZXJ0aWVzIG92ZXJyaWRlIGV4aXN0aW5nIHByb3BzXG5cblxuICAgIHZhciBkZWZhdWx0UHJvcHM7XG5cbiAgICBpZiAoZWxlbWVudC50eXBlICYmIGVsZW1lbnQudHlwZS5kZWZhdWx0UHJvcHMpIHtcbiAgICAgIGRlZmF1bHRQcm9wcyA9IGVsZW1lbnQudHlwZS5kZWZhdWx0UHJvcHM7XG4gICAgfVxuXG4gICAgZm9yIChwcm9wTmFtZSBpbiBjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpICYmICFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgaWYgKGNvbmZpZ1twcm9wTmFtZV0gPT09IHVuZGVmaW5lZCAmJiBkZWZhdWx0UHJvcHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wc1xuICAgICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGRlZmF1bHRQcm9wc1twcm9wTmFtZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSAvLyBDaGlsZHJlbiBjYW4gYmUgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCwgYW5kIHRob3NlIGFyZSB0cmFuc2ZlcnJlZCBvbnRvXG4gIC8vIHRoZSBuZXdseSBhbGxvY2F0ZWQgcHJvcHMgb2JqZWN0LlxuXG5cbiAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCAtIDI7XG5cbiAgaWYgKGNoaWxkcmVuTGVuZ3RoID09PSAxKSB7XG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgfSBlbHNlIGlmIChjaGlsZHJlbkxlbmd0aCA+IDEpIHtcbiAgICB2YXIgY2hpbGRBcnJheSA9IEFycmF5KGNoaWxkcmVuTGVuZ3RoKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGRBcnJheVtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgfVxuXG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZEFycmF5O1xuICB9XG5cbiAgcmV0dXJuIFJlYWN0RWxlbWVudChlbGVtZW50LnR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIG93bmVyLCBwcm9wcyk7XG59XG4vKipcbiAqIFZlcmlmaWVzIHRoZSBvYmplY3QgaXMgYSBSZWFjdEVsZW1lbnQuXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI2lzdmFsaWRlbGVtZW50XG4gKiBAcGFyYW0gez9vYmplY3R9IG9iamVjdFxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBgb2JqZWN0YCBpcyBhIFJlYWN0RWxlbWVudC5cbiAqIEBmaW5hbFxuICovXG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xuICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsICYmIG9iamVjdC4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFO1xufVxuXG52YXIgU0VQQVJBVE9SID0gJy4nO1xudmFyIFNVQlNFUEFSQVRPUiA9ICc6Jztcbi8qKlxuICogRXNjYXBlIGFuZCB3cmFwIGtleSBzbyBpdCBpcyBzYWZlIHRvIHVzZSBhcyBhIHJlYWN0aWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IHRvIGJlIGVzY2FwZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHRoZSBlc2NhcGVkIGtleS5cbiAqL1xuXG5mdW5jdGlvbiBlc2NhcGUoa2V5KSB7XG4gIHZhciBlc2NhcGVSZWdleCA9IC9bPTpdL2c7XG4gIHZhciBlc2NhcGVyTG9va3VwID0ge1xuICAgICc9JzogJz0wJyxcbiAgICAnOic6ICc9MidcbiAgfTtcbiAgdmFyIGVzY2FwZWRTdHJpbmcgPSBrZXkucmVwbGFjZShlc2NhcGVSZWdleCwgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgcmV0dXJuIGVzY2FwZXJMb29rdXBbbWF0Y2hdO1xuICB9KTtcbiAgcmV0dXJuICckJyArIGVzY2FwZWRTdHJpbmc7XG59XG4vKipcbiAqIFRPRE86IFRlc3QgdGhhdCBhIHNpbmdsZSBjaGlsZCBhbmQgYW4gYXJyYXkgd2l0aCBvbmUgaXRlbSBoYXZlIHRoZSBzYW1lIGtleVxuICogcGF0dGVybi5cbiAqL1xuXG5cbnZhciBkaWRXYXJuQWJvdXRNYXBzID0gZmFsc2U7XG52YXIgdXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXggPSAvXFwvKy9nO1xuXG5mdW5jdGlvbiBlc2NhcGVVc2VyUHJvdmlkZWRLZXkodGV4dCkge1xuICByZXR1cm4gdGV4dC5yZXBsYWNlKHVzZXJQcm92aWRlZEtleUVzY2FwZVJlZ2V4LCAnJCYvJyk7XG59XG4vKipcbiAqIEdlbmVyYXRlIGEga2V5IHN0cmluZyB0aGF0IGlkZW50aWZpZXMgYSBlbGVtZW50IHdpdGhpbiBhIHNldC5cbiAqXG4gKiBAcGFyYW0geyp9IGVsZW1lbnQgQSBlbGVtZW50IHRoYXQgY291bGQgY29udGFpbiBhIG1hbnVhbCBrZXkuXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXggSW5kZXggdGhhdCBpcyB1c2VkIGlmIGEgbWFudWFsIGtleSBpcyBub3QgcHJvdmlkZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cblxuXG5mdW5jdGlvbiBnZXRFbGVtZW50S2V5KGVsZW1lbnQsIGluZGV4KSB7XG4gIC8vIERvIHNvbWUgdHlwZWNoZWNraW5nIGhlcmUgc2luY2Ugd2UgY2FsbCB0aGlzIGJsaW5kbHkuIFdlIHdhbnQgdG8gZW5zdXJlXG4gIC8vIHRoYXQgd2UgZG9uJ3QgYmxvY2sgcG90ZW50aWFsIGZ1dHVyZSBFUyBBUElzLlxuICBpZiAodHlwZW9mIGVsZW1lbnQgPT09ICdvYmplY3QnICYmIGVsZW1lbnQgIT09IG51bGwgJiYgZWxlbWVudC5rZXkgIT0gbnVsbCkge1xuICAgIC8vIEV4cGxpY2l0IGtleVxuICAgIHtcbiAgICAgIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oZWxlbWVudC5rZXkpO1xuICAgIH1cblxuICAgIHJldHVybiBlc2NhcGUoJycgKyBlbGVtZW50LmtleSk7XG4gIH0gLy8gSW1wbGljaXQga2V5IGRldGVybWluZWQgYnkgdGhlIGluZGV4IGluIHRoZSBzZXRcblxuXG4gIHJldHVybiBpbmRleC50b1N0cmluZygzNik7XG59XG5cbmZ1bmN0aW9uIG1hcEludG9BcnJheShjaGlsZHJlbiwgYXJyYXksIGVzY2FwZWRQcmVmaXgsIG5hbWVTb0ZhciwgY2FsbGJhY2spIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgY2hpbGRyZW47XG5cbiAgaWYgKHR5cGUgPT09ICd1bmRlZmluZWQnIHx8IHR5cGUgPT09ICdib29sZWFuJykge1xuICAgIC8vIEFsbCBvZiB0aGUgYWJvdmUgYXJlIHBlcmNlaXZlZCBhcyBudWxsLlxuICAgIGNoaWxkcmVuID0gbnVsbDtcbiAgfVxuXG4gIHZhciBpbnZva2VDYWxsYmFjayA9IGZhbHNlO1xuXG4gIGlmIChjaGlsZHJlbiA9PT0gbnVsbCkge1xuICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICBpbnZva2VDYWxsYmFjayA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICBzd2l0Y2ggKGNoaWxkcmVuLiQkdHlwZW9mKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgaWYgKGludm9rZUNhbGxiYWNrKSB7XG4gICAgdmFyIF9jaGlsZCA9IGNoaWxkcmVuO1xuICAgIHZhciBtYXBwZWRDaGlsZCA9IGNhbGxiYWNrKF9jaGlsZCk7IC8vIElmIGl0J3MgdGhlIG9ubHkgY2hpbGQsIHRyZWF0IHRoZSBuYW1lIGFzIGlmIGl0IHdhcyB3cmFwcGVkIGluIGFuIGFycmF5XG4gICAgLy8gc28gdGhhdCBpdCdzIGNvbnNpc3RlbnQgaWYgdGhlIG51bWJlciBvZiBjaGlsZHJlbiBncm93czpcblxuICAgIHZhciBjaGlsZEtleSA9IG5hbWVTb0ZhciA9PT0gJycgPyBTRVBBUkFUT1IgKyBnZXRFbGVtZW50S2V5KF9jaGlsZCwgMCkgOiBuYW1lU29GYXI7XG5cbiAgICBpZiAoaXNBcnJheShtYXBwZWRDaGlsZCkpIHtcbiAgICAgIHZhciBlc2NhcGVkQ2hpbGRLZXkgPSAnJztcblxuICAgICAgaWYgKGNoaWxkS2V5ICE9IG51bGwpIHtcbiAgICAgICAgZXNjYXBlZENoaWxkS2V5ID0gZXNjYXBlVXNlclByb3ZpZGVkS2V5KGNoaWxkS2V5KSArICcvJztcbiAgICAgIH1cblxuICAgICAgbWFwSW50b0FycmF5KG1hcHBlZENoaWxkLCBhcnJheSwgZXNjYXBlZENoaWxkS2V5LCAnJywgZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgcmV0dXJuIGM7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKG1hcHBlZENoaWxkICE9IG51bGwpIHtcbiAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChtYXBwZWRDaGlsZCkpIHtcbiAgICAgICAge1xuICAgICAgICAgIC8vIFRoZSBgaWZgIHN0YXRlbWVudCBoZXJlIHByZXZlbnRzIGF1dG8tZGlzYWJsaW5nIG9mIHRoZSBzYWZlXG4gICAgICAgICAgLy8gY29lcmNpb24gRVNMaW50IHJ1bGUsIHNvIHdlIG11c3QgbWFudWFsbHkgZGlzYWJsZSBpdCBiZWxvdy5cbiAgICAgICAgICAvLyAkRmxvd0ZpeE1lIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIFJlYWN0LlBvcnRhbCBkb2Vzbid0IGhhdmUgYSBrZXlcbiAgICAgICAgICBpZiAobWFwcGVkQ2hpbGQua2V5ICYmICghX2NoaWxkIHx8IF9jaGlsZC5rZXkgIT09IG1hcHBlZENoaWxkLmtleSkpIHtcbiAgICAgICAgICAgIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24obWFwcGVkQ2hpbGQua2V5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBtYXBwZWRDaGlsZCA9IGNsb25lQW5kUmVwbGFjZUtleShtYXBwZWRDaGlsZCwgLy8gS2VlcCBib3RoIHRoZSAobWFwcGVkKSBhbmQgb2xkIGtleXMgaWYgdGhleSBkaWZmZXIsIGp1c3QgYXNcbiAgICAgICAgLy8gdHJhdmVyc2VBbGxDaGlsZHJlbiB1c2VkIHRvIGRvIGZvciBvYmplY3RzIGFzIGNoaWxkcmVuXG4gICAgICAgIGVzY2FwZWRQcmVmaXggKyAoIC8vICRGbG93Rml4TWUgRmxvdyBpbmNvcnJlY3RseSB0aGlua3MgUmVhY3QuUG9ydGFsIGRvZXNuJ3QgaGF2ZSBhIGtleVxuICAgICAgICBtYXBwZWRDaGlsZC5rZXkgJiYgKCFfY2hpbGQgfHwgX2NoaWxkLmtleSAhPT0gbWFwcGVkQ2hpbGQua2V5KSA/IC8vICRGbG93Rml4TWUgRmxvdyBpbmNvcnJlY3RseSB0aGlua3MgZXhpc3RpbmcgZWxlbWVudCdzIGtleSBjYW4gYmUgYSBudW1iZXJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gICAgICAgIGVzY2FwZVVzZXJQcm92aWRlZEtleSgnJyArIG1hcHBlZENoaWxkLmtleSkgKyAnLycgOiAnJykgKyBjaGlsZEtleSk7XG4gICAgICB9XG5cbiAgICAgIGFycmF5LnB1c2gobWFwcGVkQ2hpbGQpO1xuICAgIH1cblxuICAgIHJldHVybiAxO1xuICB9XG5cbiAgdmFyIGNoaWxkO1xuICB2YXIgbmV4dE5hbWU7XG4gIHZhciBzdWJ0cmVlQ291bnQgPSAwOyAvLyBDb3VudCBvZiBjaGlsZHJlbiBmb3VuZCBpbiB0aGUgY3VycmVudCBzdWJ0cmVlLlxuXG4gIHZhciBuZXh0TmFtZVByZWZpeCA9IG5hbWVTb0ZhciA9PT0gJycgPyBTRVBBUkFUT1IgOiBuYW1lU29GYXIgKyBTVUJTRVBBUkFUT1I7XG5cbiAgaWYgKGlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGQgPSBjaGlsZHJlbltpXTtcbiAgICAgIG5leHROYW1lID0gbmV4dE5hbWVQcmVmaXggKyBnZXRFbGVtZW50S2V5KGNoaWxkLCBpKTtcbiAgICAgIHN1YnRyZWVDb3VudCArPSBtYXBJbnRvQXJyYXkoY2hpbGQsIGFycmF5LCBlc2NhcGVkUHJlZml4LCBuZXh0TmFtZSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4oY2hpbGRyZW4pO1xuXG4gICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgaXRlcmFibGVDaGlsZHJlbiA9IGNoaWxkcmVuO1xuXG4gICAgICB7XG4gICAgICAgIC8vIFdhcm4gYWJvdXQgdXNpbmcgTWFwcyBhcyBjaGlsZHJlblxuICAgICAgICBpZiAoaXRlcmF0b3JGbiA9PT0gaXRlcmFibGVDaGlsZHJlbi5lbnRyaWVzKSB7XG4gICAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRNYXBzKSB7XG4gICAgICAgICAgICB3YXJuKCdVc2luZyBNYXBzIGFzIGNoaWxkcmVuIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnVXNlIGFuIGFycmF5IG9mIGtleWVkIFJlYWN0RWxlbWVudHMgaW5zdGVhZC4nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkaWRXYXJuQWJvdXRNYXBzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwoaXRlcmFibGVDaGlsZHJlbik7XG4gICAgICB2YXIgc3RlcDtcbiAgICAgIHZhciBpaSA9IDA7XG5cbiAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgY2hpbGQgPSBzdGVwLnZhbHVlO1xuICAgICAgICBuZXh0TmFtZSA9IG5leHROYW1lUHJlZml4ICsgZ2V0RWxlbWVudEtleShjaGlsZCwgaWkrKyk7XG4gICAgICAgIHN1YnRyZWVDb3VudCArPSBtYXBJbnRvQXJyYXkoY2hpbGQsIGFycmF5LCBlc2NhcGVkUHJlZml4LCBuZXh0TmFtZSwgY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuICAgICAgdmFyIGNoaWxkcmVuU3RyaW5nID0gU3RyaW5nKGNoaWxkcmVuKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogXCIgKyAoY2hpbGRyZW5TdHJpbmcgPT09ICdbb2JqZWN0IE9iamVjdF0nID8gJ29iamVjdCB3aXRoIGtleXMgeycgKyBPYmplY3Qua2V5cyhjaGlsZHJlbikuam9pbignLCAnKSArICd9JyA6IGNoaWxkcmVuU3RyaW5nKSArIFwiKS4gXCIgKyAnSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSAnICsgJ2luc3RlYWQuJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN1YnRyZWVDb3VudDtcbn1cblxuLyoqXG4gKiBNYXBzIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYC5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5tYXBcbiAqXG4gKiBUaGUgcHJvdmlkZWQgbWFwRnVuY3Rpb24oY2hpbGQsIGluZGV4KSB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaFxuICogbGVhZiBjaGlsZC5cbiAqXG4gKiBAcGFyYW0gez8qfSBjaGlsZHJlbiBDaGlsZHJlbiB0cmVlIGNvbnRhaW5lci5cbiAqIEBwYXJhbSB7ZnVuY3Rpb24oKiwgaW50KX0gZnVuYyBUaGUgbWFwIGZ1bmN0aW9uLlxuICogQHBhcmFtIHsqfSBjb250ZXh0IENvbnRleHQgZm9yIG1hcEZ1bmN0aW9uLlxuICogQHJldHVybiB7b2JqZWN0fSBPYmplY3QgY29udGFpbmluZyB0aGUgb3JkZXJlZCBtYXAgb2YgcmVzdWx0cy5cbiAqL1xuZnVuY3Rpb24gbWFwQ2hpbGRyZW4oY2hpbGRyZW4sIGZ1bmMsIGNvbnRleHQpIHtcbiAgaWYgKGNoaWxkcmVuID09IG51bGwpIHtcbiAgICByZXR1cm4gY2hpbGRyZW47XG4gIH1cblxuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBjb3VudCA9IDA7XG4gIG1hcEludG9BcnJheShjaGlsZHJlbiwgcmVzdWx0LCAnJywgJycsIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHJldHVybiBmdW5jLmNhbGwoY29udGV4dCwgY2hpbGQsIGNvdW50KyspO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbi8qKlxuICogQ291bnQgdGhlIG51bWJlciBvZiBjaGlsZHJlbiB0aGF0IGFyZSB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzXG4gKiBgcHJvcHMuY2hpbGRyZW5gLlxuICpcbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjaGlsZHJlbmNvdW50XG4gKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBudW1iZXIgb2YgY2hpbGRyZW4uXG4gKi9cblxuXG5mdW5jdGlvbiBjb3VudENoaWxkcmVuKGNoaWxkcmVuKSB7XG4gIHZhciBuID0gMDtcbiAgbWFwQ2hpbGRyZW4oY2hpbGRyZW4sIGZ1bmN0aW9uICgpIHtcbiAgICBuKys7IC8vIERvbid0IHJldHVybiBhbnl0aGluZ1xuICB9KTtcbiAgcmV0dXJuIG47XG59XG5cbi8qKlxuICogSXRlcmF0ZXMgdGhyb3VnaCBjaGlsZHJlbiB0aGF0IGFyZSB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmAuXG4gKlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGNoaWxkcmVuZm9yZWFjaFxuICpcbiAqIFRoZSBwcm92aWRlZCBmb3JFYWNoRnVuYyhjaGlsZCwgaW5kZXgpIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoXG4gKiBsZWFmIGNoaWxkLlxuICpcbiAqIEBwYXJhbSB7Pyp9IGNoaWxkcmVuIENoaWxkcmVuIHRyZWUgY29udGFpbmVyLlxuICogQHBhcmFtIHtmdW5jdGlvbigqLCBpbnQpfSBmb3JFYWNoRnVuY1xuICogQHBhcmFtIHsqfSBmb3JFYWNoQ29udGV4dCBDb250ZXh0IGZvciBmb3JFYWNoQ29udGV4dC5cbiAqL1xuZnVuY3Rpb24gZm9yRWFjaENoaWxkcmVuKGNoaWxkcmVuLCBmb3JFYWNoRnVuYywgZm9yRWFjaENvbnRleHQpIHtcbiAgbWFwQ2hpbGRyZW4oY2hpbGRyZW4sIGZ1bmN0aW9uICgpIHtcbiAgICBmb3JFYWNoRnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyAvLyBEb24ndCByZXR1cm4gYW55dGhpbmcuXG4gIH0sIGZvckVhY2hDb250ZXh0KTtcbn1cbi8qKlxuICogRmxhdHRlbiBhIGNoaWxkcmVuIG9iamVjdCAodHlwaWNhbGx5IHNwZWNpZmllZCBhcyBgcHJvcHMuY2hpbGRyZW5gKSBhbmRcbiAqIHJldHVybiBhbiBhcnJheSB3aXRoIGFwcHJvcHJpYXRlbHkgcmUta2V5ZWQgY2hpbGRyZW4uXG4gKlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGNoaWxkcmVudG9hcnJheVxuICovXG5cblxuZnVuY3Rpb24gdG9BcnJheShjaGlsZHJlbikge1xuICByZXR1cm4gbWFwQ2hpbGRyZW4oY2hpbGRyZW4sIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHJldHVybiBjaGlsZDtcbiAgfSkgfHwgW107XG59XG4vKipcbiAqIFJldHVybnMgdGhlIGZpcnN0IGNoaWxkIGluIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiBhbmQgdmVyaWZpZXMgdGhhdCB0aGVyZVxuICogaXMgb25seSBvbmUgY2hpbGQgaW4gdGhlIGNvbGxlY3Rpb24uXG4gKlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGNoaWxkcmVub25seVxuICpcbiAqIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIHRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGF0IGEgc2luZ2xlIGNoaWxkIGdldHNcbiAqIHBhc3NlZCB3aXRob3V0IGEgd3JhcHBlciwgYnV0IHRoZSBwdXJwb3NlIG9mIHRoaXMgaGVscGVyIGZ1bmN0aW9uIGlzIHRvXG4gKiBhYnN0cmFjdCBhd2F5IHRoZSBwYXJ0aWN1bGFyIHN0cnVjdHVyZSBvZiBjaGlsZHJlbi5cbiAqXG4gKiBAcGFyYW0gez9vYmplY3R9IGNoaWxkcmVuIENoaWxkIGNvbGxlY3Rpb24gc3RydWN0dXJlLlxuICogQHJldHVybiB7UmVhY3RFbGVtZW50fSBUaGUgZmlyc3QgYW5kIG9ubHkgYFJlYWN0RWxlbWVudGAgY29udGFpbmVkIGluIHRoZVxuICogc3RydWN0dXJlLlxuICovXG5cblxuZnVuY3Rpb24gb25seUNoaWxkKGNoaWxkcmVuKSB7XG4gIGlmICghaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVhY3QgZWxlbWVudCBjaGlsZC4nKTtcbiAgfVxuXG4gIHJldHVybiBjaGlsZHJlbjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29udGV4dChkZWZhdWx0VmFsdWUpIHtcbiAgLy8gVE9ETzogU2Vjb25kIGFyZ3VtZW50IHVzZWQgdG8gYmUgYW4gb3B0aW9uYWwgYGNhbGN1bGF0ZUNoYW5nZWRCaXRzYFxuICAvLyBmdW5jdGlvbi4gV2FybiB0byByZXNlcnZlIGZvciBmdXR1cmUgdXNlP1xuICB2YXIgY29udGV4dCA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfQ09OVEVYVF9UWVBFLFxuICAgIC8vIEFzIGEgd29ya2Fyb3VuZCB0byBzdXBwb3J0IG11bHRpcGxlIGNvbmN1cnJlbnQgcmVuZGVyZXJzLCB3ZSBjYXRlZ29yaXplXG4gICAgLy8gc29tZSByZW5kZXJlcnMgYXMgcHJpbWFyeSBhbmQgb3RoZXJzIGFzIHNlY29uZGFyeS4gV2Ugb25seSBleHBlY3RcbiAgICAvLyB0aGVyZSB0byBiZSB0d28gY29uY3VycmVudCByZW5kZXJlcnMgYXQgbW9zdDogUmVhY3QgTmF0aXZlIChwcmltYXJ5KSBhbmRcbiAgICAvLyBGYWJyaWMgKHNlY29uZGFyeSk7IFJlYWN0IERPTSAocHJpbWFyeSkgYW5kIFJlYWN0IEFSVCAoc2Vjb25kYXJ5KS5cbiAgICAvLyBTZWNvbmRhcnkgcmVuZGVyZXJzIHN0b3JlIHRoZWlyIGNvbnRleHQgdmFsdWVzIG9uIHNlcGFyYXRlIGZpZWxkcy5cbiAgICBfY3VycmVudFZhbHVlOiBkZWZhdWx0VmFsdWUsXG4gICAgX2N1cnJlbnRWYWx1ZTI6IGRlZmF1bHRWYWx1ZSxcbiAgICAvLyBVc2VkIHRvIHRyYWNrIGhvdyBtYW55IGNvbmN1cnJlbnQgcmVuZGVyZXJzIHRoaXMgY29udGV4dCBjdXJyZW50bHlcbiAgICAvLyBzdXBwb3J0cyB3aXRoaW4gaW4gYSBzaW5nbGUgcmVuZGVyZXIuIFN1Y2ggYXMgcGFyYWxsZWwgc2VydmVyIHJlbmRlcmluZy5cbiAgICBfdGhyZWFkQ291bnQ6IDAsXG4gICAgLy8gVGhlc2UgYXJlIGNpcmN1bGFyXG4gICAgUHJvdmlkZXI6IG51bGwsXG4gICAgQ29uc3VtZXI6IG51bGwsXG4gICAgLy8gQWRkIHRoZXNlIHRvIHVzZSBzYW1lIGhpZGRlbiBjbGFzcyBpbiBWTSBhcyBTZXJ2ZXJDb250ZXh0XG4gICAgX2RlZmF1bHRWYWx1ZTogbnVsbCxcbiAgICBfZ2xvYmFsTmFtZTogbnVsbFxuICB9O1xuICBjb250ZXh0LlByb3ZpZGVyID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9QUk9WSURFUl9UWVBFLFxuICAgIF9jb250ZXh0OiBjb250ZXh0XG4gIH07XG4gIHZhciBoYXNXYXJuZWRBYm91dFVzaW5nTmVzdGVkQ29udGV4dENvbnN1bWVycyA9IGZhbHNlO1xuICB2YXIgaGFzV2FybmVkQWJvdXRVc2luZ0NvbnN1bWVyUHJvdmlkZXIgPSBmYWxzZTtcbiAgdmFyIGhhc1dhcm5lZEFib3V0RGlzcGxheU5hbWVPbkNvbnN1bWVyID0gZmFsc2U7XG5cbiAge1xuICAgIC8vIEEgc2VwYXJhdGUgb2JqZWN0LCBidXQgcHJveGllcyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBjb250ZXh0IG9iamVjdCBmb3JcbiAgICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4gSXQgaGFzIGEgZGlmZmVyZW50ICQkdHlwZW9mLCBzbyB3ZSBjYW4gcHJvcGVybHlcbiAgICAvLyB3YXJuIGZvciB0aGUgaW5jb3JyZWN0IHVzYWdlIG9mIENvbnRleHQgYXMgYSBDb25zdW1lci5cbiAgICB2YXIgQ29uc3VtZXIgPSB7XG4gICAgICAkJHR5cGVvZjogUkVBQ1RfQ09OVEVYVF9UWVBFLFxuICAgICAgX2NvbnRleHQ6IGNvbnRleHRcbiAgICB9OyAvLyAkRmxvd0ZpeE1lOiBGbG93IGNvbXBsYWlucyBhYm91dCBub3Qgc2V0dGluZyBhIHZhbHVlLCB3aGljaCBpcyBpbnRlbnRpb25hbCBoZXJlXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhDb25zdW1lciwge1xuICAgICAgUHJvdmlkZXI6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKCFoYXNXYXJuZWRBYm91dFVzaW5nQ29uc3VtZXJQcm92aWRlcikge1xuICAgICAgICAgICAgaGFzV2FybmVkQWJvdXRVc2luZ0NvbnN1bWVyUHJvdmlkZXIgPSB0cnVlO1xuXG4gICAgICAgICAgICBlcnJvcignUmVuZGVyaW5nIDxDb250ZXh0LkNvbnN1bWVyLlByb3ZpZGVyPiBpcyBub3Qgc3VwcG9ydGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gJyArICdhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiBEaWQgeW91IG1lYW4gdG8gcmVuZGVyIDxDb250ZXh0LlByb3ZpZGVyPiBpbnN0ZWFkPycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBjb250ZXh0LlByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChfUHJvdmlkZXIpIHtcbiAgICAgICAgICBjb250ZXh0LlByb3ZpZGVyID0gX1Byb3ZpZGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgX2N1cnJlbnRWYWx1ZToge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5fY3VycmVudFZhbHVlO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChfY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgY29udGV4dC5fY3VycmVudFZhbHVlID0gX2N1cnJlbnRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF9jdXJyZW50VmFsdWUyOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0Ll9jdXJyZW50VmFsdWUyO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChfY3VycmVudFZhbHVlMikge1xuICAgICAgICAgIGNvbnRleHQuX2N1cnJlbnRWYWx1ZTIgPSBfY3VycmVudFZhbHVlMjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF90aHJlYWRDb3VudDoge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5fdGhyZWFkQ291bnQ7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKF90aHJlYWRDb3VudCkge1xuICAgICAgICAgIGNvbnRleHQuX3RocmVhZENvdW50ID0gX3RocmVhZENvdW50O1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQ29uc3VtZXI6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKCFoYXNXYXJuZWRBYm91dFVzaW5nTmVzdGVkQ29udGV4dENvbnN1bWVycykge1xuICAgICAgICAgICAgaGFzV2FybmVkQWJvdXRVc2luZ05lc3RlZENvbnRleHRDb25zdW1lcnMgPSB0cnVlO1xuXG4gICAgICAgICAgICBlcnJvcignUmVuZGVyaW5nIDxDb250ZXh0LkNvbnN1bWVyLkNvbnN1bWVyPiBpcyBub3Qgc3VwcG9ydGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gJyArICdhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiBEaWQgeW91IG1lYW4gdG8gcmVuZGVyIDxDb250ZXh0LkNvbnN1bWVyPiBpbnN0ZWFkPycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBjb250ZXh0LkNvbnN1bWVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZGlzcGxheU5hbWU6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuZGlzcGxheU5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKGRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgaWYgKCFoYXNXYXJuZWRBYm91dERpc3BsYXlOYW1lT25Db25zdW1lcikge1xuICAgICAgICAgICAgd2FybignU2V0dGluZyBgZGlzcGxheU5hbWVgIG9uIENvbnRleHQuQ29uc3VtZXIgaGFzIG5vIGVmZmVjdC4gJyArIFwiWW91IHNob3VsZCBzZXQgaXQgZGlyZWN0bHkgb24gdGhlIGNvbnRleHQgd2l0aCBDb250ZXh0LmRpc3BsYXlOYW1lID0gJyVzJy5cIiwgZGlzcGxheU5hbWUpO1xuXG4gICAgICAgICAgICBoYXNXYXJuZWRBYm91dERpc3BsYXlOYW1lT25Db25zdW1lciA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7IC8vICRGbG93Rml4TWU6IEZsb3cgY29tcGxhaW5zIGFib3V0IG1pc3NpbmcgcHJvcGVydGllcyBiZWNhdXNlIGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCBkZWZpbmVQcm9wZXJ0eVxuXG4gICAgY29udGV4dC5Db25zdW1lciA9IENvbnN1bWVyO1xuICB9XG5cbiAge1xuICAgIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciA9IG51bGw7XG4gICAgY29udGV4dC5fY3VycmVudFJlbmRlcmVyMiA9IG51bGw7XG4gIH1cblxuICByZXR1cm4gY29udGV4dDtcbn1cblxudmFyIFVuaW5pdGlhbGl6ZWQgPSAtMTtcbnZhciBQZW5kaW5nID0gMDtcbnZhciBSZXNvbHZlZCA9IDE7XG52YXIgUmVqZWN0ZWQgPSAyO1xuXG5mdW5jdGlvbiBsYXp5SW5pdGlhbGl6ZXIocGF5bG9hZCkge1xuICBpZiAocGF5bG9hZC5fc3RhdHVzID09PSBVbmluaXRpYWxpemVkKSB7XG4gICAgdmFyIGN0b3IgPSBwYXlsb2FkLl9yZXN1bHQ7XG4gICAgdmFyIHRoZW5hYmxlID0gY3RvcigpOyAvLyBUcmFuc2l0aW9uIHRvIHRoZSBuZXh0IHN0YXRlLlxuICAgIC8vIFRoaXMgbWlnaHQgdGhyb3cgZWl0aGVyIGJlY2F1c2UgaXQncyBtaXNzaW5nIG9yIHRocm93cy4gSWYgc28sIHdlIHRyZWF0IGl0XG4gICAgLy8gYXMgc3RpbGwgdW5pbml0aWFsaXplZCBhbmQgdHJ5IGFnYWluIG5leHQgdGltZS4gV2hpY2ggaXMgdGhlIHNhbWUgYXMgd2hhdFxuICAgIC8vIGhhcHBlbnMgaWYgdGhlIGN0b3Igb3IgYW55IHdyYXBwZXJzIHByb2Nlc3NpbmcgdGhlIGN0b3IgdGhyb3dzLiBUaGlzIG1pZ2h0XG4gICAgLy8gZW5kIHVwIGZpeGluZyBpdCBpZiB0aGUgcmVzb2x1dGlvbiB3YXMgYSBjb25jdXJyZW5jeSBidWcuXG5cbiAgICB0aGVuYWJsZS50aGVuKGZ1bmN0aW9uIChtb2R1bGVPYmplY3QpIHtcbiAgICAgIGlmIChwYXlsb2FkLl9zdGF0dXMgPT09IFBlbmRpbmcgfHwgcGF5bG9hZC5fc3RhdHVzID09PSBVbmluaXRpYWxpemVkKSB7XG4gICAgICAgIC8vIFRyYW5zaXRpb24gdG8gdGhlIG5leHQgc3RhdGUuXG4gICAgICAgIHZhciByZXNvbHZlZCA9IHBheWxvYWQ7XG4gICAgICAgIHJlc29sdmVkLl9zdGF0dXMgPSBSZXNvbHZlZDtcbiAgICAgICAgcmVzb2x2ZWQuX3Jlc3VsdCA9IG1vZHVsZU9iamVjdDtcbiAgICAgIH1cbiAgICB9LCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgIGlmIChwYXlsb2FkLl9zdGF0dXMgPT09IFBlbmRpbmcgfHwgcGF5bG9hZC5fc3RhdHVzID09PSBVbmluaXRpYWxpemVkKSB7XG4gICAgICAgIC8vIFRyYW5zaXRpb24gdG8gdGhlIG5leHQgc3RhdGUuXG4gICAgICAgIHZhciByZWplY3RlZCA9IHBheWxvYWQ7XG4gICAgICAgIHJlamVjdGVkLl9zdGF0dXMgPSBSZWplY3RlZDtcbiAgICAgICAgcmVqZWN0ZWQuX3Jlc3VsdCA9IGVycm9yO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gVW5pbml0aWFsaXplZCkge1xuICAgICAgLy8gSW4gY2FzZSwgd2UncmUgc3RpbGwgdW5pbml0aWFsaXplZCwgdGhlbiB3ZSdyZSB3YWl0aW5nIGZvciB0aGUgdGhlbmFibGVcbiAgICAgIC8vIHRvIHJlc29sdmUuIFNldCBpdCBhcyBwZW5kaW5nIGluIHRoZSBtZWFudGltZS5cbiAgICAgIHZhciBwZW5kaW5nID0gcGF5bG9hZDtcbiAgICAgIHBlbmRpbmcuX3N0YXR1cyA9IFBlbmRpbmc7XG4gICAgICBwZW5kaW5nLl9yZXN1bHQgPSB0aGVuYWJsZTtcbiAgICB9XG4gIH1cblxuICBpZiAocGF5bG9hZC5fc3RhdHVzID09PSBSZXNvbHZlZCkge1xuICAgIHZhciBtb2R1bGVPYmplY3QgPSBwYXlsb2FkLl9yZXN1bHQ7XG5cbiAgICB7XG4gICAgICBpZiAobW9kdWxlT2JqZWN0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZXJyb3IoJ2xhenk6IEV4cGVjdGVkIHRoZSByZXN1bHQgb2YgYSBkeW5hbWljIGltcCcgKyAnb3J0KCkgY2FsbC4gJyArICdJbnN0ZWFkIHJlY2VpdmVkOiAlc1xcblxcbllvdXIgY29kZSBzaG91bGQgbG9vayBsaWtlOiBcXG4gICcgKyAvLyBCcmVhayB1cCBpbXBvcnRzIHRvIGF2b2lkIGFjY2lkZW50YWxseSBwYXJzaW5nIHRoZW0gYXMgZGVwZW5kZW5jaWVzLlxuICAgICAgICAnY29uc3QgTXlDb21wb25lbnQgPSBsYXp5KCgpID0+IGltcCcgKyBcIm9ydCgnLi9NeUNvbXBvbmVudCcpKVxcblxcblwiICsgJ0RpZCB5b3UgYWNjaWRlbnRhbGx5IHB1dCBjdXJseSBicmFjZXMgYXJvdW5kIHRoZSBpbXBvcnQ/JywgbW9kdWxlT2JqZWN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB7XG4gICAgICBpZiAoISgnZGVmYXVsdCcgaW4gbW9kdWxlT2JqZWN0KSkge1xuICAgICAgICBlcnJvcignbGF6eTogRXhwZWN0ZWQgdGhlIHJlc3VsdCBvZiBhIGR5bmFtaWMgaW1wJyArICdvcnQoKSBjYWxsLiAnICsgJ0luc3RlYWQgcmVjZWl2ZWQ6ICVzXFxuXFxuWW91ciBjb2RlIHNob3VsZCBsb29rIGxpa2U6IFxcbiAgJyArIC8vIEJyZWFrIHVwIGltcG9ydHMgdG8gYXZvaWQgYWNjaWRlbnRhbGx5IHBhcnNpbmcgdGhlbSBhcyBkZXBlbmRlbmNpZXMuXG4gICAgICAgICdjb25zdCBNeUNvbXBvbmVudCA9IGxhenkoKCkgPT4gaW1wJyArIFwib3J0KCcuL015Q29tcG9uZW50JykpXCIsIG1vZHVsZU9iamVjdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZHVsZU9iamVjdC5kZWZhdWx0O1xuICB9IGVsc2Uge1xuICAgIHRocm93IHBheWxvYWQuX3Jlc3VsdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBsYXp5KGN0b3IpIHtcbiAgdmFyIHBheWxvYWQgPSB7XG4gICAgLy8gV2UgdXNlIHRoZXNlIGZpZWxkcyB0byBzdG9yZSB0aGUgcmVzdWx0LlxuICAgIF9zdGF0dXM6IFVuaW5pdGlhbGl6ZWQsXG4gICAgX3Jlc3VsdDogY3RvclxuICB9O1xuICB2YXIgbGF6eVR5cGUgPSB7XG4gICAgJCR0eXBlb2Y6IFJFQUNUX0xBWllfVFlQRSxcbiAgICBfcGF5bG9hZDogcGF5bG9hZCxcbiAgICBfaW5pdDogbGF6eUluaXRpYWxpemVyXG4gIH07XG5cbiAge1xuICAgIC8vIEluIHByb2R1Y3Rpb24sIHRoaXMgd291bGQganVzdCBzZXQgaXQgb24gdGhlIG9iamVjdC5cbiAgICB2YXIgZGVmYXVsdFByb3BzO1xuICAgIHZhciBwcm9wVHlwZXM7IC8vICRGbG93Rml4TWVcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGxhenlUeXBlLCB7XG4gICAgICBkZWZhdWx0UHJvcHM6IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gZGVmYXVsdFByb3BzO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChuZXdEZWZhdWx0UHJvcHMpIHtcbiAgICAgICAgICBlcnJvcignUmVhY3QubGF6eSguLi4pOiBJdCBpcyBub3Qgc3VwcG9ydGVkIHRvIGFzc2lnbiBgZGVmYXVsdFByb3BzYCB0byAnICsgJ2EgbGF6eSBjb21wb25lbnQgaW1wb3J0LiBFaXRoZXIgc3BlY2lmeSB0aGVtIHdoZXJlIHRoZSBjb21wb25lbnQgJyArICdpcyBkZWZpbmVkLCBvciBjcmVhdGUgYSB3cmFwcGluZyBjb21wb25lbnQgYXJvdW5kIGl0LicpO1xuXG4gICAgICAgICAgZGVmYXVsdFByb3BzID0gbmV3RGVmYXVsdFByb3BzOyAvLyBNYXRjaCBwcm9kdWN0aW9uIGJlaGF2aW9yIG1vcmUgY2xvc2VseTpcbiAgICAgICAgICAvLyAkRmxvd0ZpeE1lXG5cbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobGF6eVR5cGUsICdkZWZhdWx0UHJvcHMnLCB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gcHJvcFR5cGVzO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChuZXdQcm9wVHlwZXMpIHtcbiAgICAgICAgICBlcnJvcignUmVhY3QubGF6eSguLi4pOiBJdCBpcyBub3Qgc3VwcG9ydGVkIHRvIGFzc2lnbiBgcHJvcFR5cGVzYCB0byAnICsgJ2EgbGF6eSBjb21wb25lbnQgaW1wb3J0LiBFaXRoZXIgc3BlY2lmeSB0aGVtIHdoZXJlIHRoZSBjb21wb25lbnQgJyArICdpcyBkZWZpbmVkLCBvciBjcmVhdGUgYSB3cmFwcGluZyBjb21wb25lbnQgYXJvdW5kIGl0LicpO1xuXG4gICAgICAgICAgcHJvcFR5cGVzID0gbmV3UHJvcFR5cGVzOyAvLyBNYXRjaCBwcm9kdWN0aW9uIGJlaGF2aW9yIG1vcmUgY2xvc2VseTpcbiAgICAgICAgICAvLyAkRmxvd0ZpeE1lXG5cbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobGF6eVR5cGUsICdwcm9wVHlwZXMnLCB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBsYXp5VHlwZTtcbn1cblxuZnVuY3Rpb24gZm9yd2FyZFJlZihyZW5kZXIpIHtcbiAge1xuICAgIGlmIChyZW5kZXIgIT0gbnVsbCAmJiByZW5kZXIuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSkge1xuICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVxdWlyZXMgYSByZW5kZXIgZnVuY3Rpb24gYnV0IHJlY2VpdmVkIGEgYG1lbW9gICcgKyAnY29tcG9uZW50LiBJbnN0ZWFkIG9mIGZvcndhcmRSZWYobWVtbyguLi4pKSwgdXNlICcgKyAnbWVtbyhmb3J3YXJkUmVmKC4uLikpLicpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlbmRlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVxdWlyZXMgYSByZW5kZXIgZnVuY3Rpb24gYnV0IHdhcyBnaXZlbiAlcy4nLCByZW5kZXIgPT09IG51bGwgPyAnbnVsbCcgOiB0eXBlb2YgcmVuZGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJlbmRlci5sZW5ndGggIT09IDAgJiYgcmVuZGVyLmxlbmd0aCAhPT0gMikge1xuICAgICAgICBlcnJvcignZm9yd2FyZFJlZiByZW5kZXIgZnVuY3Rpb25zIGFjY2VwdCBleGFjdGx5IHR3byBwYXJhbWV0ZXJzOiBwcm9wcyBhbmQgcmVmLiAlcycsIHJlbmRlci5sZW5ndGggPT09IDEgPyAnRGlkIHlvdSBmb3JnZXQgdG8gdXNlIHRoZSByZWYgcGFyYW1ldGVyPycgOiAnQW55IGFkZGl0aW9uYWwgcGFyYW1ldGVyIHdpbGwgYmUgdW5kZWZpbmVkLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyZW5kZXIgIT0gbnVsbCkge1xuICAgICAgaWYgKHJlbmRlci5kZWZhdWx0UHJvcHMgIT0gbnVsbCB8fCByZW5kZXIucHJvcFR5cGVzICE9IG51bGwpIHtcbiAgICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVuZGVyIGZ1bmN0aW9ucyBkbyBub3Qgc3VwcG9ydCBwcm9wVHlwZXMgb3IgZGVmYXVsdFByb3BzLiAnICsgJ0RpZCB5b3UgYWNjaWRlbnRhbGx5IHBhc3MgYSBSZWFjdCBjb21wb25lbnQ/Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIGVsZW1lbnRUeXBlID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFLFxuICAgIHJlbmRlcjogcmVuZGVyXG4gIH07XG5cbiAge1xuICAgIHZhciBvd25OYW1lO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50VHlwZSwgJ2Rpc3BsYXlOYW1lJywge1xuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG93bk5hbWU7XG4gICAgICB9LFxuICAgICAgc2V0OiBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICBvd25OYW1lID0gbmFtZTsgLy8gVGhlIGlubmVyIGNvbXBvbmVudCBzaG91bGRuJ3QgaW5oZXJpdCB0aGlzIGRpc3BsYXkgbmFtZSBpbiBtb3N0IGNhc2VzLFxuICAgICAgICAvLyBiZWNhdXNlIHRoZSBjb21wb25lbnQgbWF5IGJlIHVzZWQgZWxzZXdoZXJlLlxuICAgICAgICAvLyBCdXQgaXQncyBuaWNlIGZvciBhbm9ueW1vdXMgZnVuY3Rpb25zIHRvIGluaGVyaXQgdGhlIG5hbWUsXG4gICAgICAgIC8vIHNvIHRoYXQgb3VyIGNvbXBvbmVudC1zdGFjayBnZW5lcmF0aW9uIGxvZ2ljIHdpbGwgZGlzcGxheSB0aGVpciBmcmFtZXMuXG4gICAgICAgIC8vIEFuIGFub255bW91cyBmdW5jdGlvbiBnZW5lcmFsbHkgc3VnZ2VzdHMgYSBwYXR0ZXJuIGxpa2U6XG4gICAgICAgIC8vICAgUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4gey4uLn0pO1xuICAgICAgICAvLyBUaGlzIGtpbmQgb2YgaW5uZXIgZnVuY3Rpb24gaXMgbm90IHVzZWQgZWxzZXdoZXJlIHNvIHRoZSBzaWRlIGVmZmVjdCBpcyBva2F5LlxuXG4gICAgICAgIGlmICghcmVuZGVyLm5hbWUgJiYgIXJlbmRlci5kaXNwbGF5TmFtZSkge1xuICAgICAgICAgIHJlbmRlci5kaXNwbGF5TmFtZSA9IG5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50VHlwZTtcbn1cblxudmFyIFJFQUNUX01PRFVMRV9SRUZFUkVOQ0UgPSBTeW1ib2wuZm9yKCdyZWFjdC5tb2R1bGUucmVmZXJlbmNlJyk7XG5mdW5jdGlvbiBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSkge1xuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gLy8gTm90ZTogdHlwZW9mIG1pZ2h0IGJlIG90aGVyIHRoYW4gJ3N5bWJvbCcgb3IgJ251bWJlcicgKGUuZy4gaWYgaXQncyBhIHBvbHlmaWxsKS5cblxuXG4gIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEUgfHwgZW5hYmxlRGVidWdUcmFjaW5nICB8fCB0eXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFIHx8IGVuYWJsZUxlZ2FjeUhpZGRlbiAgfHwgdHlwZSA9PT0gUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgfHwgZW5hYmxlU2NvcGVBUEkgIHx8IGVuYWJsZUNhY2hlRWxlbWVudCAgfHwgZW5hYmxlVHJhbnNpdGlvblRyYWNpbmcgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IC8vIFRoaXMgbmVlZHMgdG8gaW5jbHVkZSBhbGwgcG9zc2libGUgbW9kdWxlIHJlZmVyZW5jZSBvYmplY3RcbiAgICAvLyB0eXBlcyBzdXBwb3J0ZWQgYnkgYW55IEZsaWdodCBjb25maWd1cmF0aW9uIGFueXdoZXJlIHNpbmNlXG4gICAgLy8gd2UgZG9uJ3Qga25vdyB3aGljaCBGbGlnaHQgYnVpbGQgdGhpcyB3aWxsIGVuZCB1cCBiZWluZyB1c2VkXG4gICAgLy8gd2l0aC5cbiAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NT0RVTEVfUkVGRVJFTkNFIHx8IHR5cGUuZ2V0TW9kdWxlSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBtZW1vKHR5cGUsIGNvbXBhcmUpIHtcbiAge1xuICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpKSB7XG4gICAgICBlcnJvcignbWVtbzogVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBjb21wb25lbnQuIEluc3RlYWQgJyArICdyZWNlaXZlZDogJXMnLCB0eXBlID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfTUVNT19UWVBFLFxuICAgIHR5cGU6IHR5cGUsXG4gICAgY29tcGFyZTogY29tcGFyZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbXBhcmVcbiAgfTtcblxuICB7XG4gICAgdmFyIG93bk5hbWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnRUeXBlLCAnZGlzcGxheU5hbWUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gb3duTmFtZTtcbiAgICAgIH0sXG4gICAgICBzZXQ6IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIG93bk5hbWUgPSBuYW1lOyAvLyBUaGUgaW5uZXIgY29tcG9uZW50IHNob3VsZG4ndCBpbmhlcml0IHRoaXMgZGlzcGxheSBuYW1lIGluIG1vc3QgY2FzZXMsXG4gICAgICAgIC8vIGJlY2F1c2UgdGhlIGNvbXBvbmVudCBtYXkgYmUgdXNlZCBlbHNld2hlcmUuXG4gICAgICAgIC8vIEJ1dCBpdCdzIG5pY2UgZm9yIGFub255bW91cyBmdW5jdGlvbnMgdG8gaW5oZXJpdCB0aGUgbmFtZSxcbiAgICAgICAgLy8gc28gdGhhdCBvdXIgY29tcG9uZW50LXN0YWNrIGdlbmVyYXRpb24gbG9naWMgd2lsbCBkaXNwbGF5IHRoZWlyIGZyYW1lcy5cbiAgICAgICAgLy8gQW4gYW5vbnltb3VzIGZ1bmN0aW9uIGdlbmVyYWxseSBzdWdnZXN0cyBhIHBhdHRlcm4gbGlrZTpcbiAgICAgICAgLy8gICBSZWFjdC5tZW1vKChwcm9wcykgPT4gey4uLn0pO1xuICAgICAgICAvLyBUaGlzIGtpbmQgb2YgaW5uZXIgZnVuY3Rpb24gaXMgbm90IHVzZWQgZWxzZXdoZXJlIHNvIHRoZSBzaWRlIGVmZmVjdCBpcyBva2F5LlxuXG4gICAgICAgIGlmICghdHlwZS5uYW1lICYmICF0eXBlLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgdHlwZS5kaXNwbGF5TmFtZSA9IG5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50VHlwZTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZURpc3BhdGNoZXIoKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50O1xuXG4gIHtcbiAgICBpZiAoZGlzcGF0Y2hlciA9PT0gbnVsbCkge1xuICAgICAgZXJyb3IoJ0ludmFsaWQgaG9vayBjYWxsLiBIb29rcyBjYW4gb25seSBiZSBjYWxsZWQgaW5zaWRlIG9mIHRoZSBib2R5IG9mIGEgZnVuY3Rpb24gY29tcG9uZW50LiBUaGlzIGNvdWxkIGhhcHBlbiBmb3InICsgJyBvbmUgb2YgdGhlIGZvbGxvd2luZyByZWFzb25zOlxcbicgKyAnMS4gWW91IG1pZ2h0IGhhdmUgbWlzbWF0Y2hpbmcgdmVyc2lvbnMgb2YgUmVhY3QgYW5kIHRoZSByZW5kZXJlciAoc3VjaCBhcyBSZWFjdCBET00pXFxuJyArICcyLiBZb3UgbWlnaHQgYmUgYnJlYWtpbmcgdGhlIFJ1bGVzIG9mIEhvb2tzXFxuJyArICczLiBZb3UgbWlnaHQgaGF2ZSBtb3JlIHRoYW4gb25lIGNvcHkgb2YgUmVhY3QgaW4gdGhlIHNhbWUgYXBwXFxuJyArICdTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2ludmFsaWQtaG9vay1jYWxsIGZvciB0aXBzIGFib3V0IGhvdyB0byBkZWJ1ZyBhbmQgZml4IHRoaXMgcHJvYmxlbS4nKTtcbiAgICB9XG4gIH0gLy8gV2lsbCByZXN1bHQgaW4gYSBudWxsIGFjY2VzcyBlcnJvciBpZiBhY2Nlc3NlZCBvdXRzaWRlIHJlbmRlciBwaGFzZS4gV2VcbiAgLy8gaW50ZW50aW9uYWxseSBkb24ndCB0aHJvdyBvdXIgb3duIGVycm9yIGJlY2F1c2UgdGhpcyBpcyBpbiBhIGhvdCBwYXRoLlxuICAvLyBBbHNvIGhlbHBzIGVuc3VyZSB0aGlzIGlzIGlubGluZWQuXG5cblxuICByZXR1cm4gZGlzcGF0Y2hlcjtcbn1cbmZ1bmN0aW9uIHVzZUNvbnRleHQoQ29udGV4dCkge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG5cbiAge1xuICAgIC8vIFRPRE86IGFkZCBhIG1vcmUgZ2VuZXJpYyB3YXJuaW5nIGZvciBpbnZhbGlkIHZhbHVlcy5cbiAgICBpZiAoQ29udGV4dC5fY29udGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgcmVhbENvbnRleHQgPSBDb250ZXh0Ll9jb250ZXh0OyAvLyBEb24ndCBkZWR1cGxpY2F0ZSBiZWNhdXNlIHRoaXMgbGVnaXRpbWF0ZWx5IGNhdXNlcyBidWdzXG4gICAgICAvLyBhbmQgbm9ib2R5IHNob3VsZCBiZSB1c2luZyB0aGlzIGluIGV4aXN0aW5nIGNvZGUuXG5cbiAgICAgIGlmIChyZWFsQ29udGV4dC5Db25zdW1lciA9PT0gQ29udGV4dCkge1xuICAgICAgICBlcnJvcignQ2FsbGluZyB1c2VDb250ZXh0KENvbnRleHQuQ29uc3VtZXIpIGlzIG5vdCBzdXBwb3J0ZWQsIG1heSBjYXVzZSBidWdzLCBhbmQgd2lsbCBiZSAnICsgJ3JlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gRGlkIHlvdSBtZWFuIHRvIGNhbGwgdXNlQ29udGV4dChDb250ZXh0KSBpbnN0ZWFkPycpO1xuICAgICAgfSBlbHNlIGlmIChyZWFsQ29udGV4dC5Qcm92aWRlciA9PT0gQ29udGV4dCkge1xuICAgICAgICBlcnJvcignQ2FsbGluZyB1c2VDb250ZXh0KENvbnRleHQuUHJvdmlkZXIpIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnRGlkIHlvdSBtZWFuIHRvIGNhbGwgdXNlQ29udGV4dChDb250ZXh0KSBpbnN0ZWFkPycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUNvbnRleHQoQ29udGV4dCk7XG59XG5mdW5jdGlvbiB1c2VTdGF0ZShpbml0aWFsU3RhdGUpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VTdGF0ZShpbml0aWFsU3RhdGUpO1xufVxuZnVuY3Rpb24gdXNlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbn1cbmZ1bmN0aW9uIHVzZVJlZihpbml0aWFsVmFsdWUpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VSZWYoaW5pdGlhbFZhbHVlKTtcbn1cbmZ1bmN0aW9uIHVzZUVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZUluc2VydGlvbkVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VJbnNlcnRpb25FZmZlY3QoY3JlYXRlLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZUxheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xufVxuZnVuY3Rpb24gdXNlTWVtbyhjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VNZW1vKGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VEZWJ1Z1ZhbHVlKHZhbHVlLCBmb3JtYXR0ZXJGbikge1xuICB7XG4gICAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICAgIHJldHVybiBkaXNwYXRjaGVyLnVzZURlYnVnVmFsdWUodmFsdWUsIGZvcm1hdHRlckZuKTtcbiAgfVxufVxuZnVuY3Rpb24gdXNlVHJhbnNpdGlvbigpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VUcmFuc2l0aW9uKCk7XG59XG5mdW5jdGlvbiB1c2VEZWZlcnJlZFZhbHVlKHZhbHVlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlRGVmZXJyZWRWYWx1ZSh2YWx1ZSk7XG59XG5mdW5jdGlvbiB1c2VJZCgpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VJZCgpO1xufVxuZnVuY3Rpb24gdXNlU3luY0V4dGVybmFsU3RvcmUoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VTeW5jRXh0ZXJuYWxTdG9yZShzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCk7XG59XG5cbi8vIEhlbHBlcnMgdG8gcGF0Y2ggY29uc29sZS5sb2dzIHRvIGF2b2lkIGxvZ2dpbmcgZHVyaW5nIHNpZGUtZWZmZWN0IGZyZWVcbi8vIHJlcGxheWluZyBvbiByZW5kZXIgZnVuY3Rpb24uIFRoaXMgY3VycmVudGx5IG9ubHkgcGF0Y2hlcyB0aGUgb2JqZWN0XG4vLyBsYXppbHkgd2hpY2ggd29uJ3QgY292ZXIgaWYgdGhlIGxvZyBmdW5jdGlvbiB3YXMgZXh0cmFjdGVkIGVhZ2VybHkuXG4vLyBXZSBjb3VsZCBhbHNvIGVhZ2VybHkgcGF0Y2ggdGhlIG1ldGhvZC5cbnZhciBkaXNhYmxlZERlcHRoID0gMDtcbnZhciBwcmV2TG9nO1xudmFyIHByZXZJbmZvO1xudmFyIHByZXZXYXJuO1xudmFyIHByZXZFcnJvcjtcbnZhciBwcmV2R3JvdXA7XG52YXIgcHJldkdyb3VwQ29sbGFwc2VkO1xudmFyIHByZXZHcm91cEVuZDtcblxuZnVuY3Rpb24gZGlzYWJsZWRMb2coKSB7fVxuXG5kaXNhYmxlZExvZy5fX3JlYWN0RGlzYWJsZWRMb2cgPSB0cnVlO1xuZnVuY3Rpb24gZGlzYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICBwcmV2TG9nID0gY29uc29sZS5sb2c7XG4gICAgICBwcmV2SW5mbyA9IGNvbnNvbGUuaW5mbztcbiAgICAgIHByZXZXYXJuID0gY29uc29sZS53YXJuO1xuICAgICAgcHJldkVycm9yID0gY29uc29sZS5lcnJvcjtcbiAgICAgIHByZXZHcm91cCA9IGNvbnNvbGUuZ3JvdXA7XG4gICAgICBwcmV2R3JvdXBDb2xsYXBzZWQgPSBjb25zb2xlLmdyb3VwQ29sbGFwc2VkO1xuICAgICAgcHJldkdyb3VwRW5kID0gY29uc29sZS5ncm91cEVuZDsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xOTA5OVxuXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IGRpc2FibGVkTG9nLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgfTsgLy8gJEZsb3dGaXhNZSBGbG93IHRoaW5rcyBjb25zb2xlIGlzIGltbXV0YWJsZS5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICBpbmZvOiBwcm9wcyxcbiAgICAgICAgbG9nOiBwcm9wcyxcbiAgICAgICAgd2FybjogcHJvcHMsXG4gICAgICAgIGVycm9yOiBwcm9wcyxcbiAgICAgICAgZ3JvdXA6IHByb3BzLFxuICAgICAgICBncm91cENvbGxhcHNlZDogcHJvcHMsXG4gICAgICAgIGdyb3VwRW5kOiBwcm9wc1xuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgIH1cblxuICAgIGRpc2FibGVkRGVwdGgrKztcbiAgfVxufVxuZnVuY3Rpb24gcmVlbmFibGVMb2dzKCkge1xuICB7XG4gICAgZGlzYWJsZWREZXB0aC0tO1xuXG4gICAgaWYgKGRpc2FibGVkRGVwdGggPT09IDApIHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGxvZzogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2TG9nXG4gICAgICAgIH0pLFxuICAgICAgICBpbmZvOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZJbmZvXG4gICAgICAgIH0pLFxuICAgICAgICB3YXJuOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZXYXJuXG4gICAgICAgIH0pLFxuICAgICAgICBlcnJvcjogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2RXJyb3JcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cFxuICAgICAgICB9KSxcbiAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwQ29sbGFwc2VkXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cEVuZDogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBFbmRcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICB9XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA8IDApIHtcbiAgICAgIGVycm9yKCdkaXNhYmxlZERlcHRoIGZlbGwgYmVsb3cgemVyby4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG52YXIgcHJlZml4O1xuZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICBpZiAocHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEV4dHJhY3QgdGhlIFZNIHNwZWNpZmljIHByZWZpeCB1c2VkIGJ5IGVhY2ggbGluZS5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7XG4gICAgICAgIHByZWZpeCA9IG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xuICAgICAgfVxuICAgIH0gLy8gV2UgdXNlIHRoZSBwcmVmaXggdG8gZW5zdXJlIG91ciBzdGFja3MgbGluZSB1cCB3aXRoIG5hdGl2ZSBzdGFjayBmcmFtZXMuXG5cblxuICAgIHJldHVybiAnXFxuJyArIHByZWZpeCArIG5hbWU7XG4gIH1cbn1cbnZhciByZWVudHJ5ID0gZmFsc2U7XG52YXIgY29tcG9uZW50RnJhbWVDYWNoZTtcblxue1xuICB2YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xuICBjb21wb25lbnRGcmFtZUNhY2hlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBjb25zdHJ1Y3QpIHtcbiAgLy8gSWYgc29tZXRoaW5nIGFza2VkIGZvciBhIHN0YWNrIGluc2lkZSBhIGZha2UgcmVuZGVyLCBpdCBzaG91bGQgZ2V0IGlnbm9yZWQuXG4gIGlmICggIWZuIHx8IHJlZW50cnkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB7XG4gICAgdmFyIGZyYW1lID0gY29tcG9uZW50RnJhbWVDYWNoZS5nZXQoZm4pO1xuXG4gICAgaWYgKGZyYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmcmFtZTtcbiAgICB9XG4gIH1cblxuICB2YXIgY29udHJvbDtcbiAgcmVlbnRyeSA9IHRydWU7XG4gIHZhciBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7IC8vICRGbG93Rml4TWUgSXQgZG9lcyBhY2NlcHQgdW5kZWZpbmVkLlxuXG4gIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gdW5kZWZpbmVkO1xuICB2YXIgcHJldmlvdXNEaXNwYXRjaGVyO1xuXG4gIHtcbiAgICBwcmV2aW91c0Rpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDsgLy8gU2V0IHRoZSBkaXNwYXRjaGVyIGluIERFViBiZWNhdXNlIHRoaXMgbWlnaHQgYmUgY2FsbCBpbiB0aGUgcmVuZGVyIGZ1bmN0aW9uXG4gICAgLy8gZm9yIHdhcm5pbmdzLlxuXG4gICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBudWxsO1xuICAgIGRpc2FibGVMb2dzKCk7XG4gIH1cblxuICB0cnkge1xuICAgIC8vIFRoaXMgc2hvdWxkIHRocm93LlxuICAgIGlmIChjb25zdHJ1Y3QpIHtcbiAgICAgIC8vIFNvbWV0aGluZyBzaG91bGQgYmUgc2V0dGluZyB0aGUgcHJvcHMgaW4gdGhlIGNvbnN0cnVjdG9yLlxuICAgICAgdmFyIEZha2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lXG5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZha2UucHJvdG90eXBlLCAncHJvcHMnLCB7XG4gICAgICAgIHNldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIC8vIFdlIHVzZSBhIHRocm93aW5nIHNldHRlciBpbnN0ZWFkIG9mIGZyb3plbiBvciBub24td3JpdGFibGUgcHJvcHNcbiAgICAgICAgICAvLyBiZWNhdXNlIHRoYXQgd29uJ3QgdGhyb3cgaW4gYSBub24tc3RyaWN0IG1vZGUgZnVuY3Rpb24uXG4gICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgJiYgUmVmbGVjdC5jb25zdHJ1Y3QpIHtcbiAgICAgICAgLy8gV2UgY29uc3RydWN0IGEgZGlmZmVyZW50IGNvbnRyb2wgZm9yIHRoaXMgY2FzZSB0byBpbmNsdWRlIGFueSBleHRyYVxuICAgICAgICAvLyBmcmFtZXMgYWRkZWQgYnkgdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICB0cnkge1xuICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KEZha2UsIFtdKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICB9XG5cbiAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoZm4sIFtdLCBGYWtlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgRmFrZS5jYWxsKCk7XG4gICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICBjb250cm9sID0geDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZuLmNhbGwoRmFrZS5wcm90b3R5cGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBjb250cm9sID0geDtcbiAgICAgIH1cblxuICAgICAgZm4oKTtcbiAgICB9XG4gIH0gY2F0Y2ggKHNhbXBsZSkge1xuICAgIC8vIFRoaXMgaXMgaW5saW5lZCBtYW51YWxseSBiZWNhdXNlIGNsb3N1cmUgZG9lc24ndCBkbyBpdCBmb3IgdXMuXG4gICAgaWYgKHNhbXBsZSAmJiBjb250cm9sICYmIHR5cGVvZiBzYW1wbGUuc3RhY2sgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBUaGlzIGV4dHJhY3RzIHRoZSBmaXJzdCBmcmFtZSBmcm9tIHRoZSBzYW1wbGUgdGhhdCBpc24ndCBhbHNvIGluIHRoZSBjb250cm9sLlxuICAgICAgLy8gU2tpcHBpbmcgb25lIGZyYW1lIHRoYXQgd2UgYXNzdW1lIGlzIHRoZSBmcmFtZSB0aGF0IGNhbGxzIHRoZSB0d28uXG4gICAgICB2YXIgc2FtcGxlTGluZXMgPSBzYW1wbGUuc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIGNvbnRyb2xMaW5lcyA9IGNvbnRyb2wuc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIHMgPSBzYW1wbGVMaW5lcy5sZW5ndGggLSAxO1xuICAgICAgdmFyIGMgPSBjb250cm9sTGluZXMubGVuZ3RoIC0gMTtcblxuICAgICAgd2hpbGUgKHMgPj0gMSAmJiBjID49IDAgJiYgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAvLyBXZSBleHBlY3QgYXQgbGVhc3Qgb25lIHN0YWNrIGZyYW1lIHRvIGJlIHNoYXJlZC5cbiAgICAgICAgLy8gVHlwaWNhbGx5IHRoaXMgd2lsbCBiZSB0aGUgcm9vdCBtb3N0IG9uZS4gSG93ZXZlciwgc3RhY2sgZnJhbWVzIG1heSBiZVxuICAgICAgICAvLyBjdXQgb2ZmIGR1ZSB0byBtYXhpbXVtIHN0YWNrIGxpbWl0cy4gSW4gdGhpcyBjYXNlLCBvbmUgbWF5YmUgY3V0IG9mZlxuICAgICAgICAvLyBlYXJsaWVyIHRoYW4gdGhlIG90aGVyLiBXZSBhc3N1bWUgdGhhdCB0aGUgc2FtcGxlIGlzIGxvbmdlciBvciB0aGUgc2FtZVxuICAgICAgICAvLyBhbmQgdGhlcmUgZm9yIGN1dCBvZmYgZWFybGllci4gU28gd2Ugc2hvdWxkIGZpbmQgdGhlIHJvb3QgbW9zdCBmcmFtZSBpblxuICAgICAgICAvLyB0aGUgc2FtcGxlIHNvbWV3aGVyZSBpbiB0aGUgY29udHJvbC5cbiAgICAgICAgYy0tO1xuICAgICAgfVxuXG4gICAgICBmb3IgKDsgcyA+PSAxICYmIGMgPj0gMDsgcy0tLCBjLS0pIHtcbiAgICAgICAgLy8gTmV4dCB3ZSBmaW5kIHRoZSBmaXJzdCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSB3aGljaCBzaG91bGQgYmUgdGhlXG4gICAgICAgIC8vIGZyYW1lIHRoYXQgY2FsbGVkIG91ciBzYW1wbGUgZnVuY3Rpb24gYW5kIHRoZSBjb250cm9sLlxuICAgICAgICBpZiAoc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgIC8vIEluIFY4LCB0aGUgZmlyc3QgbGluZSBpcyBkZXNjcmliaW5nIHRoZSBtZXNzYWdlIGJ1dCBvdGhlciBWTXMgZG9uJ3QuXG4gICAgICAgICAgLy8gSWYgd2UncmUgYWJvdXQgdG8gcmV0dXJuIHRoZSBmaXJzdCBsaW5lLCBhbmQgdGhlIGNvbnRyb2wgaXMgYWxzbyBvbiB0aGUgc2FtZVxuICAgICAgICAgIC8vIGxpbmUsIHRoYXQncyBhIHByZXR0eSBnb29kIGluZGljYXRvciB0aGF0IG91ciBzYW1wbGUgdGhyZXcgYXQgc2FtZSBsaW5lIGFzXG4gICAgICAgICAgLy8gdGhlIGNvbnRyb2wuIEkuZS4gYmVmb3JlIHdlIGVudGVyZWQgdGhlIHNhbXBsZSBmcmFtZS4gU28gd2UgaWdub3JlIHRoaXMgcmVzdWx0LlxuICAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB5b3UgcGFzc2VkIGEgY2xhc3MgdG8gZnVuY3Rpb24gY29tcG9uZW50LCBvciBub24tZnVuY3Rpb24uXG4gICAgICAgICAgaWYgKHMgIT09IDEgfHwgYyAhPT0gMSkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICBzLS07XG4gICAgICAgICAgICAgIGMtLTsgLy8gV2UgbWF5IHN0aWxsIGhhdmUgc2ltaWxhciBpbnRlcm1lZGlhdGUgZnJhbWVzIGZyb20gdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICAgICAgICAvLyBUaGUgbmV4dCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSBzaG91bGQgYmUgb3VyIG1hdGNoIHRob3VnaC5cblxuICAgICAgICAgICAgICBpZiAoYyA8IDAgfHwgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgICAgICAgIC8vIFY4IGFkZHMgYSBcIm5ld1wiIHByZWZpeCBmb3IgbmF0aXZlIGNsYXNzZXMuIExldCdzIHJlbW92ZSBpdCB0byBtYWtlIGl0IHByZXR0aWVyLlxuICAgICAgICAgICAgICAgIHZhciBfZnJhbWUgPSAnXFxuJyArIHNhbXBsZUxpbmVzW3NdLnJlcGxhY2UoJyBhdCBuZXcgJywgJyBhdCAnKTsgLy8gSWYgb3VyIGNvbXBvbmVudCBmcmFtZSBpcyBsYWJlbGVkIFwiPGFub255bW91cz5cIlxuICAgICAgICAgICAgICAgIC8vIGJ1dCB3ZSBoYXZlIGEgdXNlci1wcm92aWRlZCBcImRpc3BsYXlOYW1lXCJcbiAgICAgICAgICAgICAgICAvLyBzcGxpY2UgaXQgaW4gdG8gbWFrZSB0aGUgc3RhY2sgbW9yZSByZWFkYWJsZS5cblxuXG4gICAgICAgICAgICAgICAgaWYgKGZuLmRpc3BsYXlOYW1lICYmIF9mcmFtZS5pbmNsdWRlcygnPGFub255bW91cz4nKSkge1xuICAgICAgICAgICAgICAgICAgX2ZyYW1lID0gX2ZyYW1lLnJlcGxhY2UoJzxhbm9ueW1vdXM+JywgZm4uZGlzcGxheU5hbWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIF9mcmFtZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSAvLyBSZXR1cm4gdGhlIGxpbmUgd2UgZm91bmQuXG5cblxuICAgICAgICAgICAgICAgIHJldHVybiBfZnJhbWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gd2hpbGUgKHMgPj0gMSAmJiBjID49IDApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIHJlZW50cnkgPSBmYWxzZTtcblxuICAgIHtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldmlvdXNEaXNwYXRjaGVyO1xuICAgICAgcmVlbmFibGVMb2dzKCk7XG4gICAgfVxuXG4gICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlO1xuICB9IC8vIEZhbGxiYWNrIHRvIGp1c3QgdXNpbmcgdGhlIG5hbWUgaWYgd2UgY291bGRuJ3QgbWFrZSBpdCB0aHJvdy5cblxuXG4gIHZhciBuYW1lID0gZm4gPyBmbi5kaXNwbGF5TmFtZSB8fCBmbi5uYW1lIDogJyc7XG4gIHZhciBzeW50aGV0aWNGcmFtZSA9IG5hbWUgPyBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lKSA6ICcnO1xuXG4gIHtcbiAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgc3ludGhldGljRnJhbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzeW50aGV0aWNGcmFtZTtcbn1cbmZ1bmN0aW9uIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZShmbiwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgZmFsc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNob3VsZENvbnN0cnVjdChDb21wb25lbnQpIHtcbiAgdmFyIHByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4gIHJldHVybiAhIShwcm90b3R5cGUgJiYgcHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZSwgc291cmNlLCBvd25lckZuKSB7XG5cbiAgaWYgKHR5cGUgPT0gbnVsbCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHtcbiAgICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKHR5cGUsIHNob3VsZENvbnN0cnVjdCh0eXBlKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSh0eXBlKTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2UnKTtcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZUxpc3QnKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZSh0eXBlLnJlbmRlcik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAvLyBNZW1vIG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUudHlwZSwgc291cmNlLCBvd25lckZuKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBMYXp5IG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihpbml0KHBheWxvYWQpLCBzb3VyY2UsIG93bmVyRm4pO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbnZhciBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgY29tcG9uZW50TmFtZSwgZWxlbWVudCkge1xuICB7XG4gICAgLy8gJEZsb3dGaXhNZSBUaGlzIGlzIG9rYXkgYnV0IEZsb3cgZG9lc24ndCBrbm93IGl0LlxuICAgIHZhciBoYXMgPSBGdW5jdGlvbi5jYWxsLmJpbmQoaGFzT3duUHJvcGVydHkpO1xuXG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xuICAgICAgaWYgKGhhcyh0eXBlU3BlY3MsIHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yJDEgPSB2b2lkIDA7IC8vIFByb3AgdHlwZSB2YWxpZGF0aW9uIG1heSB0aHJvdy4gSW4gY2FzZSB0aGV5IGRvLCB3ZSBkb24ndCB3YW50IHRvXG4gICAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cbiAgICAgICAgLy8gQWZ0ZXIgdGhlc2UgaGF2ZSBiZWVuIGNsZWFuZWQgdXAsIHdlJ2xsIGxldCB0aGVtIHRocm93LlxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgICAgICAgICB2YXIgZXJyID0gRXJyb3IoKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICsgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJyArICdUaGlzIG9mdGVuIGhhcHBlbnMgYmVjYXVzZSBvZiB0eXBvcyBzdWNoIGFzIGBQcm9wVHlwZXMuZnVuY3Rpb25gIGluc3RlYWQgb2YgYFByb3BUeXBlcy5mdW5jYC4nKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGVycm9yJDEgPSB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSh2YWx1ZXMsIHR5cGVTcGVjTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIG51bGwsICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCcpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yJDEgPSBleDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvciQxICYmICEoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJyVzOiB0eXBlIHNwZWNpZmljYXRpb24gb2YgJXMnICsgJyBgJXNgIGlzIGludmFsaWQ7IHRoZSB0eXBlIGNoZWNrZXIgJyArICdmdW5jdGlvbiBtdXN0IHJldHVybiBgbnVsbGAgb3IgYW4gYEVycm9yYCBidXQgcmV0dXJuZWQgYSAlcy4gJyArICdZb3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIHBhc3MgYW4gYXJndW1lbnQgdG8gdGhlIHR5cGUgY2hlY2tlciAnICsgJ2NyZWF0b3IgKGFycmF5T2YsIGluc3RhbmNlT2YsIG9iamVjdE9mLCBvbmVPZiwgb25lT2ZUeXBlLCBhbmQgJyArICdzaGFwZSBhbGwgcmVxdWlyZSBhbiBhcmd1bWVudCkuJywgY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnLCBsb2NhdGlvbiwgdHlwZVNwZWNOYW1lLCB0eXBlb2YgZXJyb3IkMSk7XG5cbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvciQxIGluc3RhbmNlb2YgRXJyb3IgJiYgIShlcnJvciQxLm1lc3NhZ2UgaW4gbG9nZ2VkVHlwZUZhaWx1cmVzKSkge1xuICAgICAgICAgIC8vIE9ubHkgbW9uaXRvciB0aGlzIGZhaWx1cmUgb25jZSBiZWNhdXNlIHRoZXJlIHRlbmRzIHRvIGJlIGEgbG90IG9mIHRoZVxuICAgICAgICAgIC8vIHNhbWUgZXJyb3IuXG4gICAgICAgICAgbG9nZ2VkVHlwZUZhaWx1cmVzW2Vycm9yJDEubWVzc2FnZV0gPSB0cnVlO1xuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJ0ZhaWxlZCAlcyB0eXBlOiAlcycsIGxvY2F0aW9uLCBlcnJvciQxLm1lc3NhZ2UpO1xuXG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xuICAgICAgc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RXh0cmFTdGFja0ZyYW1lKG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd247XG5cbntcbiAgcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24gPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCkge1xuICBpZiAoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xuICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQudHlwZSk7XG5cbiAgICBpZiAobmFtZSkge1xuICAgICAgcmV0dXJuICdcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG5hbWUgKyAnYC4nO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oc291cmNlKSB7XG4gIGlmIChzb3VyY2UgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBmaWxlTmFtZSA9IHNvdXJjZS5maWxlTmFtZS5yZXBsYWNlKC9eLipbXFxcXFxcL10vLCAnJyk7XG4gICAgdmFyIGxpbmVOdW1iZXIgPSBzb3VyY2UubGluZU51bWJlcjtcbiAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHlvdXIgY29kZSBhdCAnICsgZmlsZU5hbWUgKyAnOicgKyBsaW5lTnVtYmVyICsgJy4nO1xuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bUZvclByb3BzKGVsZW1lbnRQcm9wcykge1xuICBpZiAoZWxlbWVudFByb3BzICE9PSBudWxsICYmIGVsZW1lbnRQcm9wcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtKGVsZW1lbnRQcm9wcy5fX3NvdXJjZSk7XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG4vKipcbiAqIFdhcm4gaWYgdGhlcmUncyBubyBrZXkgZXhwbGljaXRseSBzZXQgb24gZHluYW1pYyBhcnJheXMgb2YgY2hpbGRyZW4gb3JcbiAqIG9iamVjdCBrZXlzIGFyZSBub3QgdmFsaWQuIFRoaXMgYWxsb3dzIHVzIHRvIGtlZXAgdHJhY2sgb2YgY2hpbGRyZW4gYmV0d2VlblxuICogdXBkYXRlcy5cbiAqL1xuXG5cbnZhciBvd25lckhhc0tleVVzZVdhcm5pbmcgPSB7fTtcblxuZnVuY3Rpb24gZ2V0Q3VycmVudENvbXBvbmVudEVycm9ySW5mbyhwYXJlbnRUeXBlKSB7XG4gIHZhciBpbmZvID0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCk7XG5cbiAgaWYgKCFpbmZvKSB7XG4gICAgdmFyIHBhcmVudE5hbWUgPSB0eXBlb2YgcGFyZW50VHlwZSA9PT0gJ3N0cmluZycgPyBwYXJlbnRUeXBlIDogcGFyZW50VHlwZS5kaXNwbGF5TmFtZSB8fCBwYXJlbnRUeXBlLm5hbWU7XG5cbiAgICBpZiAocGFyZW50TmFtZSkge1xuICAgICAgaW5mbyA9IFwiXFxuXFxuQ2hlY2sgdGhlIHRvcC1sZXZlbCByZW5kZXIgY2FsbCB1c2luZyA8XCIgKyBwYXJlbnROYW1lICsgXCI+LlwiO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpbmZvO1xufVxuLyoqXG4gKiBXYXJuIGlmIHRoZSBlbGVtZW50IGRvZXNuJ3QgaGF2ZSBhbiBleHBsaWNpdCBrZXkgYXNzaWduZWQgdG8gaXQuXG4gKiBUaGlzIGVsZW1lbnQgaXMgaW4gYW4gYXJyYXkuIFRoZSBhcnJheSBjb3VsZCBncm93IGFuZCBzaHJpbmsgb3IgYmVcbiAqIHJlb3JkZXJlZC4gQWxsIGNoaWxkcmVuIHRoYXQgaGF2ZW4ndCBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkIGFyZSByZXF1aXJlZCB0b1xuICogaGF2ZSBhIFwia2V5XCIgcHJvcGVydHkgYXNzaWduZWQgdG8gaXQuIEVycm9yIHN0YXR1c2VzIGFyZSBjYWNoZWQgc28gYSB3YXJuaW5nXG4gKiB3aWxsIG9ubHkgYmUgc2hvd24gb25jZS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50IEVsZW1lbnQgdGhhdCByZXF1aXJlcyBhIGtleS5cbiAqIEBwYXJhbSB7Kn0gcGFyZW50VHlwZSBlbGVtZW50J3MgcGFyZW50J3MgdHlwZS5cbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRXhwbGljaXRLZXkoZWxlbWVudCwgcGFyZW50VHlwZSkge1xuICBpZiAoIWVsZW1lbnQuX3N0b3JlIHx8IGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCB8fCBlbGVtZW50LmtleSAhPSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgdmFyIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8gPSBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpO1xuXG4gIGlmIChvd25lckhhc0tleVVzZVdhcm5pbmdbY3VycmVudENvbXBvbmVudEVycm9ySW5mb10pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBvd25lckhhc0tleVVzZVdhcm5pbmdbY3VycmVudENvbXBvbmVudEVycm9ySW5mb10gPSB0cnVlOyAvLyBVc3VhbGx5IHRoZSBjdXJyZW50IG93bmVyIGlzIHRoZSBvZmZlbmRlciwgYnV0IGlmIGl0IGFjY2VwdHMgY2hpbGRyZW4gYXMgYVxuICAvLyBwcm9wZXJ0eSwgaXQgbWF5IGJlIHRoZSBjcmVhdG9yIG9mIHRoZSBjaGlsZCB0aGF0J3MgcmVzcG9uc2libGUgZm9yXG4gIC8vIGFzc2lnbmluZyBpdCBhIGtleS5cblxuICB2YXIgY2hpbGRPd25lciA9ICcnO1xuXG4gIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuX293bmVyICYmIGVsZW1lbnQuX293bmVyICE9PSBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50KSB7XG4gICAgLy8gR2l2ZSB0aGUgY29tcG9uZW50IHRoYXQgb3JpZ2luYWxseSBjcmVhdGVkIHRoaXMgY2hpbGQuXG4gICAgY2hpbGRPd25lciA9IFwiIEl0IHdhcyBwYXNzZWQgYSBjaGlsZCBmcm9tIFwiICsgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGVsZW1lbnQuX293bmVyLnR5cGUpICsgXCIuXCI7XG4gIH1cblxuICB7XG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KTtcblxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIpO1xuXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgfVxufVxuLyoqXG4gKiBFbnN1cmUgdGhhdCBldmVyeSBlbGVtZW50IGVpdGhlciBpcyBwYXNzZWQgaW4gYSBzdGF0aWMgbG9jYXRpb24sIGluIGFuXG4gKiBhcnJheSB3aXRoIGFuIGV4cGxpY2l0IGtleXMgcHJvcGVydHkgZGVmaW5lZCwgb3IgaW4gYW4gb2JqZWN0IGxpdGVyYWxcbiAqIHdpdGggdmFsaWQga2V5IHByb3BlcnR5LlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdE5vZGV9IG5vZGUgU3RhdGljYWxseSBwYXNzZWQgY2hpbGQgb2YgYW55IHR5cGUuXG4gKiBAcGFyYW0geyp9IHBhcmVudFR5cGUgbm9kZSdzIHBhcmVudCdzIHR5cGUuXG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZUNoaWxkS2V5cyhub2RlLCBwYXJlbnRUeXBlKSB7XG4gIGlmICh0eXBlb2Ygbm9kZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoaXNBcnJheShub2RlKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoaWxkID0gbm9kZVtpXTtcblxuICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KGNoaWxkLCBwYXJlbnRUeXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQobm9kZSkpIHtcbiAgICAvLyBUaGlzIGVsZW1lbnQgd2FzIHBhc3NlZCBpbiBhIHZhbGlkIGxvY2F0aW9uLlxuICAgIGlmIChub2RlLl9zdG9yZSkge1xuICAgICAgbm9kZS5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobm9kZSkge1xuICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihub2RlKTtcblxuICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gRW50cnkgaXRlcmF0b3JzIHVzZWQgdG8gcHJvdmlkZSBpbXBsaWNpdCBrZXlzLFxuICAgICAgLy8gYnV0IG5vdyB3ZSBwcmludCBhIHNlcGFyYXRlIHdhcm5pbmcgZm9yIHRoZW0gbGF0ZXIuXG4gICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gbm9kZS5lbnRyaWVzKSB7XG4gICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChub2RlKTtcbiAgICAgICAgdmFyIHN0ZXA7XG5cbiAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgdmFsaWRhdGVFeHBsaWNpdEtleShzdGVwLnZhbHVlLCBwYXJlbnRUeXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8qKlxuICogR2l2ZW4gYW4gZWxlbWVudCwgdmFsaWRhdGUgdGhhdCBpdHMgcHJvcHMgZm9sbG93IHRoZSBwcm9wVHlwZXMgZGVmaW5pdGlvbixcbiAqIHByb3ZpZGVkIGJ5IHRoZSB0eXBlLlxuICpcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50XG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BUeXBlcyhlbGVtZW50KSB7XG4gIHtcbiAgICB2YXIgdHlwZSA9IGVsZW1lbnQudHlwZTtcblxuICAgIGlmICh0eXBlID09PSBudWxsIHx8IHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgcHJvcFR5cGVzO1xuXG4gICAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcm9wVHlwZXMgPSB0eXBlLnByb3BUeXBlcztcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCAvLyBOb3RlOiBNZW1vIG9ubHkgY2hlY2tzIG91dGVyIHByb3BzIGhlcmUuXG4gICAgLy8gSW5uZXIgcHJvcHMgYXJlIGNoZWNrZWQgaW4gdGhlIHJlY29uY2lsZXIuXG4gICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFKSkge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocHJvcFR5cGVzKSB7XG4gICAgICAvLyBJbnRlbnRpb25hbGx5IGluc2lkZSB0byBhdm9pZCB0cmlnZ2VyaW5nIGxhenkgaW5pdGlhbGl6ZXJzOlxuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG4gICAgICBjaGVja1Byb3BUeXBlcyhwcm9wVHlwZXMsIGVsZW1lbnQucHJvcHMsICdwcm9wJywgbmFtZSwgZWxlbWVudCk7XG4gICAgfSBlbHNlIGlmICh0eXBlLlByb3BUeXBlcyAhPT0gdW5kZWZpbmVkICYmICFwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93bikge1xuICAgICAgcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24gPSB0cnVlOyAvLyBJbnRlbnRpb25hbGx5IGluc2lkZSB0byBhdm9pZCB0cmlnZ2VyaW5nIGxhenkgaW5pdGlhbGl6ZXJzOlxuXG4gICAgICB2YXIgX25hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG5cbiAgICAgIGVycm9yKCdDb21wb25lbnQgJXMgZGVjbGFyZWQgYFByb3BUeXBlc2AgaW5zdGVhZCBvZiBgcHJvcFR5cGVzYC4gRGlkIHlvdSBtaXNzcGVsbCB0aGUgcHJvcGVydHkgYXNzaWdubWVudD8nLCBfbmFtZSB8fCAnVW5rbm93bicpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdHlwZS5nZXREZWZhdWx0UHJvcHMgPT09ICdmdW5jdGlvbicgJiYgIXR5cGUuZ2V0RGVmYXVsdFByb3BzLmlzUmVhY3RDbGFzc0FwcHJvdmVkKSB7XG4gICAgICBlcnJvcignZ2V0RGVmYXVsdFByb3BzIGlzIG9ubHkgdXNlZCBvbiBjbGFzc2ljIFJlYWN0LmNyZWF0ZUNsYXNzICcgKyAnZGVmaW5pdGlvbnMuIFVzZSBhIHN0YXRpYyBwcm9wZXJ0eSBuYW1lZCBgZGVmYXVsdFByb3BzYCBpbnN0ZWFkLicpO1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBHaXZlbiBhIGZyYWdtZW50LCB2YWxpZGF0ZSB0aGF0IGl0IGNhbiBvbmx5IGJlIHByb3ZpZGVkIHdpdGggZnJhZ21lbnQgcHJvcHNcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBmcmFnbWVudFxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVGcmFnbWVudFByb3BzKGZyYWdtZW50KSB7XG4gIHtcbiAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGZyYWdtZW50LnByb3BzKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGtleSA9IGtleXNbaV07XG5cbiAgICAgIGlmIChrZXkgIT09ICdjaGlsZHJlbicgJiYga2V5ICE9PSAna2V5Jykge1xuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGZyYWdtZW50KTtcblxuICAgICAgICBlcnJvcignSW52YWxpZCBwcm9wIGAlc2Agc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4gJyArICdSZWFjdC5GcmFnbWVudCBjYW4gb25seSBoYXZlIGBrZXlgIGFuZCBgY2hpbGRyZW5gIHByb3BzLicsIGtleSk7XG5cbiAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZyYWdtZW50LnJlZiAhPT0gbnVsbCkge1xuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShmcmFnbWVudCk7XG5cbiAgICAgIGVycm9yKCdJbnZhbGlkIGF0dHJpYnV0ZSBgcmVmYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLicpO1xuXG4gICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKG51bGwpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudFdpdGhWYWxpZGF0aW9uKHR5cGUsIHByb3BzLCBjaGlsZHJlbikge1xuICB2YXIgdmFsaWRUeXBlID0gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpOyAvLyBXZSB3YXJuIGluIHRoaXMgY2FzZSBidXQgZG9uJ3QgdGhyb3cuIFdlIGV4cGVjdCB0aGUgZWxlbWVudCBjcmVhdGlvbiB0b1xuICAvLyBzdWNjZWVkIGFuZCB0aGVyZSB3aWxsIGxpa2VseSBiZSBlcnJvcnMgaW4gcmVuZGVyLlxuXG4gIGlmICghdmFsaWRUeXBlKSB7XG4gICAgdmFyIGluZm8gPSAnJztcblxuICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgT2JqZWN0LmtleXModHlwZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICBpbmZvICs9ICcgWW91IGxpa2VseSBmb3Jnb3QgdG8gZXhwb3J0IHlvdXIgY29tcG9uZW50IGZyb20gdGhlIGZpbGUgJyArIFwiaXQncyBkZWZpbmVkIGluLCBvciB5b3UgbWlnaHQgaGF2ZSBtaXhlZCB1cCBkZWZhdWx0IGFuZCBuYW1lZCBpbXBvcnRzLlwiO1xuICAgIH1cblxuICAgIHZhciBzb3VyY2VJbmZvID0gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW1Gb3JQcm9wcyhwcm9wcyk7XG5cbiAgICBpZiAoc291cmNlSW5mbykge1xuICAgICAgaW5mbyArPSBzb3VyY2VJbmZvO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbmZvICs9IGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpO1xuICAgIH1cblxuICAgIHZhciB0eXBlU3RyaW5nO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgIHR5cGVTdHJpbmcgPSAnbnVsbCc7XG4gICAgfSBlbHNlIGlmIChpc0FycmF5KHR5cGUpKSB7XG4gICAgICB0eXBlU3RyaW5nID0gJ2FycmF5JztcbiAgICB9IGVsc2UgaWYgKHR5cGUgIT09IHVuZGVmaW5lZCAmJiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcbiAgICAgIHR5cGVTdHJpbmcgPSBcIjxcIiArIChnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZS50eXBlKSB8fCAnVW5rbm93bicpICsgXCIgLz5cIjtcbiAgICAgIGluZm8gPSAnIERpZCB5b3UgYWNjaWRlbnRhbGx5IGV4cG9ydCBhIEpTWCBsaXRlcmFsIGluc3RlYWQgb2YgYSBjb21wb25lbnQ/JztcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZVN0cmluZyA9IHR5cGVvZiB0eXBlO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGVycm9yKCdSZWFjdC5jcmVhdGVFbGVtZW50OiB0eXBlIGlzIGludmFsaWQgLS0gZXhwZWN0ZWQgYSBzdHJpbmcgKGZvciAnICsgJ2J1aWx0LWluIGNvbXBvbmVudHMpIG9yIGEgY2xhc3MvZnVuY3Rpb24gKGZvciBjb21wb3NpdGUgJyArICdjb21wb25lbnRzKSBidXQgZ290OiAlcy4lcycsIHR5cGVTdHJpbmcsIGluZm8pO1xuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyAvLyBUaGUgcmVzdWx0IGNhbiBiZSBudWxsaXNoIGlmIGEgbW9jayBvciBhIGN1c3RvbSBmdW5jdGlvbiBpcyB1c2VkLlxuICAvLyBUT0RPOiBEcm9wIHRoaXMgd2hlbiB0aGVzZSBhcmUgbm8gbG9uZ2VyIGFsbG93ZWQgYXMgdGhlIHR5cGUgYXJndW1lbnQuXG5cbiAgaWYgKGVsZW1lbnQgPT0gbnVsbCkge1xuICAgIHJldHVybiBlbGVtZW50O1xuICB9IC8vIFNraXAga2V5IHdhcm5pbmcgaWYgdGhlIHR5cGUgaXNuJ3QgdmFsaWQgc2luY2Ugb3VyIGtleSB2YWxpZGF0aW9uIGxvZ2ljXG4gIC8vIGRvZXNuJ3QgZXhwZWN0IGEgbm9uLXN0cmluZy9mdW5jdGlvbiB0eXBlIGFuZCBjYW4gdGhyb3cgY29uZnVzaW5nIGVycm9ycy5cbiAgLy8gV2UgZG9uJ3Qgd2FudCBleGNlcHRpb24gYmVoYXZpb3IgdG8gZGlmZmVyIGJldHdlZW4gZGV2IGFuZCBwcm9kLlxuICAvLyAoUmVuZGVyaW5nIHdpbGwgdGhyb3cgd2l0aCBhIGhlbHBmdWwgbWVzc2FnZSBhbmQgYXMgc29vbiBhcyB0aGUgdHlwZSBpc1xuICAvLyBmaXhlZCwgdGhlIGtleSB3YXJuaW5ncyB3aWxsIGFwcGVhci4pXG5cblxuICBpZiAodmFsaWRUeXBlKSB7XG4gICAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGFyZ3VtZW50c1tpXSwgdHlwZSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUpIHtcbiAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCk7XG4gIH0gZWxzZSB7XG4gICAgdmFsaWRhdGVQcm9wVHlwZXMoZWxlbWVudCk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cbnZhciBkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSA9IGZhbHNlO1xuZnVuY3Rpb24gY3JlYXRlRmFjdG9yeVdpdGhWYWxpZGF0aW9uKHR5cGUpIHtcbiAgdmFyIHZhbGlkYXRlZEZhY3RvcnkgPSBjcmVhdGVFbGVtZW50V2l0aFZhbGlkYXRpb24uYmluZChudWxsLCB0eXBlKTtcbiAgdmFsaWRhdGVkRmFjdG9yeS50eXBlID0gdHlwZTtcblxuICB7XG4gICAgaWYgKCFkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSkge1xuICAgICAgZGlkV2FybkFib3V0RGVwcmVjYXRlZENyZWF0ZUZhY3RvcnkgPSB0cnVlO1xuXG4gICAgICB3YXJuKCdSZWFjdC5jcmVhdGVGYWN0b3J5KCkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gQ29uc2lkZXIgdXNpbmcgSlNYICcgKyAnb3IgdXNlIFJlYWN0LmNyZWF0ZUVsZW1lbnQoKSBkaXJlY3RseSBpbnN0ZWFkLicpO1xuICAgIH0gLy8gTGVnYWN5IGhvb2s6IHJlbW92ZSBpdFxuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsaWRhdGVkRmFjdG9yeSwgJ3R5cGUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICB3YXJuKCdGYWN0b3J5LnR5cGUgaXMgZGVwcmVjYXRlZC4gQWNjZXNzIHRoZSBjbGFzcyBkaXJlY3RseSAnICsgJ2JlZm9yZSBwYXNzaW5nIGl0IHRvIGNyZWF0ZUZhY3RvcnkuJyk7XG5cbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd0eXBlJywge1xuICAgICAgICAgIHZhbHVlOiB0eXBlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZWRGYWN0b3J5O1xufVxuZnVuY3Rpb24gY2xvbmVFbGVtZW50V2l0aFZhbGlkYXRpb24oZWxlbWVudCwgcHJvcHMsIGNoaWxkcmVuKSB7XG4gIHZhciBuZXdFbGVtZW50ID0gY2xvbmVFbGVtZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIG5ld0VsZW1lbnQudHlwZSk7XG4gIH1cblxuICB2YWxpZGF0ZVByb3BUeXBlcyhuZXdFbGVtZW50KTtcbiAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbihzY29wZSwgb3B0aW9ucykge1xuICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uO1xuICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uID0ge307XG4gIHZhciBjdXJyZW50VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb247XG5cbiAge1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMgPSBuZXcgU2V0KCk7XG4gIH1cblxuICB0cnkge1xuICAgIHNjb3BlKCk7XG4gIH0gZmluYWxseSB7XG4gICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWcudHJhbnNpdGlvbiA9IHByZXZUcmFuc2l0aW9uO1xuXG4gICAge1xuICAgICAgaWYgKHByZXZUcmFuc2l0aW9uID09PSBudWxsICYmIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzKSB7XG4gICAgICAgIHZhciB1cGRhdGVkRmliZXJzQ291bnQgPSBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5zaXplO1xuXG4gICAgICAgIGlmICh1cGRhdGVkRmliZXJzQ291bnQgPiAxMCkge1xuICAgICAgICAgIHdhcm4oJ0RldGVjdGVkIGEgbGFyZ2UgbnVtYmVyIG9mIHVwZGF0ZXMgaW5zaWRlIHN0YXJ0VHJhbnNpdGlvbi4gJyArICdJZiB0aGlzIGlzIGR1ZSB0byBhIHN1YnNjcmlwdGlvbiBwbGVhc2UgcmUtd3JpdGUgaXQgdG8gdXNlIFJlYWN0IHByb3ZpZGVkIGhvb2tzLiAnICsgJ090aGVyd2lzZSBjb25jdXJyZW50IG1vZGUgZ3VhcmFudGVlcyBhcmUgb2ZmIHRoZSB0YWJsZS4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzLmNsZWFyKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBkaWRXYXJuQWJvdXRNZXNzYWdlQ2hhbm5lbCA9IGZhbHNlO1xudmFyIGVucXVldWVUYXNrSW1wbCA9IG51bGw7XG5mdW5jdGlvbiBlbnF1ZXVlVGFzayh0YXNrKSB7XG4gIGlmIChlbnF1ZXVlVGFza0ltcGwgPT09IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgLy8gcmVhZCByZXF1aXJlIG9mZiB0aGUgbW9kdWxlIG9iamVjdCB0byBnZXQgYXJvdW5kIHRoZSBidW5kbGVycy5cbiAgICAgIC8vIHdlIGRvbid0IHdhbnQgdGhlbSB0byBkZXRlY3QgYSByZXF1aXJlIGFuZCBidW5kbGUgYSBOb2RlIHBvbHlmaWxsLlxuICAgICAgdmFyIHJlcXVpcmVTdHJpbmcgPSAoJ3JlcXVpcmUnICsgTWF0aC5yYW5kb20oKSkuc2xpY2UoMCwgNyk7XG4gICAgICB2YXIgbm9kZVJlcXVpcmUgPSBtb2R1bGUgJiYgbW9kdWxlW3JlcXVpcmVTdHJpbmddOyAvLyBhc3N1bWluZyB3ZSdyZSBpbiBub2RlLCBsZXQncyB0cnkgdG8gZ2V0IG5vZGUnc1xuICAgICAgLy8gdmVyc2lvbiBvZiBzZXRJbW1lZGlhdGUsIGJ5cGFzc2luZyBmYWtlIHRpbWVycyBpZiBhbnkuXG5cbiAgICAgIGVucXVldWVUYXNrSW1wbCA9IG5vZGVSZXF1aXJlLmNhbGwobW9kdWxlLCAndGltZXJzJykuc2V0SW1tZWRpYXRlO1xuICAgIH0gY2F0Y2ggKF9lcnIpIHtcbiAgICAgIC8vIHdlJ3JlIGluIGEgYnJvd3NlclxuICAgICAgLy8gd2UgY2FuJ3QgdXNlIHJlZ3VsYXIgdGltZXJzIGJlY2F1c2UgdGhleSBtYXkgc3RpbGwgYmUgZmFrZWRcbiAgICAgIC8vIHNvIHdlIHRyeSBNZXNzYWdlQ2hhbm5lbCtwb3N0TWVzc2FnZSBpbnN0ZWFkXG4gICAgICBlbnF1ZXVlVGFza0ltcGwgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgICAgICAge1xuICAgICAgICAgIGlmIChkaWRXYXJuQWJvdXRNZXNzYWdlQ2hhbm5lbCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGRpZFdhcm5BYm91dE1lc3NhZ2VDaGFubmVsID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBNZXNzYWdlQ2hhbm5lbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgZXJyb3IoJ1RoaXMgYnJvd3NlciBkb2VzIG5vdCBoYXZlIGEgTWVzc2FnZUNoYW5uZWwgaW1wbGVtZW50YXRpb24sICcgKyAnc28gZW5xdWV1aW5nIHRhc2tzIHZpYSBhd2FpdCBhY3QoYXN5bmMgKCkgPT4gLi4uKSB3aWxsIGZhaWwuICcgKyAnUGxlYXNlIGZpbGUgYW4gaXNzdWUgYXQgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3VlcyAnICsgJ2lmIHlvdSBlbmNvdW50ZXIgdGhpcyB3YXJuaW5nLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XG4gICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gY2FsbGJhY2s7XG4gICAgICAgIGNoYW5uZWwucG9ydDIucG9zdE1lc3NhZ2UodW5kZWZpbmVkKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVucXVldWVUYXNrSW1wbCh0YXNrKTtcbn1cblxudmFyIGFjdFNjb3BlRGVwdGggPSAwO1xudmFyIGRpZFdhcm5Ob0F3YWl0QWN0ID0gZmFsc2U7XG5mdW5jdGlvbiBhY3QoY2FsbGJhY2spIHtcbiAge1xuICAgIC8vIGBhY3RgIGNhbGxzIGNhbiBiZSBuZXN0ZWQsIHNvIHdlIHRyYWNrIHRoZSBkZXB0aC4gVGhpcyByZXByZXNlbnRzIHRoZVxuICAgIC8vIG51bWJlciBvZiBgYWN0YCBzY29wZXMgb24gdGhlIHN0YWNrLlxuICAgIHZhciBwcmV2QWN0U2NvcGVEZXB0aCA9IGFjdFNjb3BlRGVwdGg7XG4gICAgYWN0U2NvcGVEZXB0aCsrO1xuXG4gICAgaWYgKFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgaXMgdGhlIG91dGVybW9zdCBgYWN0YCBzY29wZS4gSW5pdGlhbGl6ZSB0aGUgcXVldWUuIFRoZSByZWNvbmNpbGVyXG4gICAgICAvLyB3aWxsIGRldGVjdCB0aGUgcXVldWUgYW5kIHVzZSBpdCBpbnN0ZWFkIG9mIFNjaGVkdWxlci5cbiAgICAgIFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgcHJldklzQmF0Y2hpbmdMZWdhY3kgPSBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5pc0JhdGNoaW5nTGVnYWN5O1xuICAgIHZhciByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgLy8gVXNlZCB0byByZXByb2R1Y2UgYmVoYXZpb3Igb2YgYGJhdGNoZWRVcGRhdGVzYCBpbiBsZWdhY3kgbW9kZS4gT25seVxuICAgICAgLy8gc2V0IHRvIGB0cnVlYCB3aGlsZSB0aGUgZ2l2ZW4gY2FsbGJhY2sgaXMgZXhlY3V0ZWQsIG5vdCBmb3IgdXBkYXRlc1xuICAgICAgLy8gdHJpZ2dlcmVkIGR1cmluZyBhbiBhc3luYyBldmVudCwgYmVjYXVzZSB0aGlzIGlzIGhvdyB0aGUgbGVnYWN5XG4gICAgICAvLyBpbXBsZW1lbnRhdGlvbiBvZiBgYWN0YCBiZWhhdmVkLlxuICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuaXNCYXRjaGluZ0xlZ2FjeSA9IHRydWU7XG4gICAgICByZXN1bHQgPSBjYWxsYmFjaygpOyAvLyBSZXBsaWNhdGUgYmVoYXZpb3Igb2Ygb3JpZ2luYWwgYGFjdGAgaW1wbGVtZW50YXRpb24gaW4gbGVnYWN5IG1vZGUsXG4gICAgICAvLyB3aGljaCBmbHVzaGVkIHVwZGF0ZXMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHNjb3BlIGZ1bmN0aW9uIGV4aXRzLCBldmVuXG4gICAgICAvLyBpZiBpdCdzIGFuIGFzeW5jIGZ1bmN0aW9uLlxuXG4gICAgICBpZiAoIXByZXZJc0JhdGNoaW5nTGVnYWN5ICYmIFJlYWN0Q3VycmVudEFjdFF1ZXVlLmRpZFNjaGVkdWxlTGVnYWN5VXBkYXRlKSB7XG4gICAgICAgIHZhciBxdWV1ZSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQ7XG5cbiAgICAgICAgaWYgKHF1ZXVlICE9PSBudWxsKSB7XG4gICAgICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuZGlkU2NoZWR1bGVMZWdhY3lVcGRhdGUgPSBmYWxzZTtcbiAgICAgICAgICBmbHVzaEFjdFF1ZXVlKHF1ZXVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBwb3BBY3RTY29wZShwcmV2QWN0U2NvcGVEZXB0aCk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuaXNCYXRjaGluZ0xlZ2FjeSA9IHByZXZJc0JhdGNoaW5nTGVnYWN5O1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQgIT09IG51bGwgJiYgdHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHJlc3VsdC50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgdGhlbmFibGVSZXN1bHQgPSByZXN1bHQ7IC8vIFRoZSBjYWxsYmFjayBpcyBhbiBhc3luYyBmdW5jdGlvbiAoaS5lLiByZXR1cm5lZCBhIHByb21pc2UpLiBXYWl0XG4gICAgICAvLyBmb3IgaXQgdG8gcmVzb2x2ZSBiZWZvcmUgZXhpdGluZyB0aGUgY3VycmVudCBzY29wZS5cblxuICAgICAgdmFyIHdhc0F3YWl0ZWQgPSBmYWxzZTtcbiAgICAgIHZhciB0aGVuYWJsZSA9IHtcbiAgICAgICAgdGhlbjogZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgIHdhc0F3YWl0ZWQgPSB0cnVlO1xuICAgICAgICAgIHRoZW5hYmxlUmVzdWx0LnRoZW4oZnVuY3Rpb24gKHJldHVyblZhbHVlKSB7XG4gICAgICAgICAgICBwb3BBY3RTY29wZShwcmV2QWN0U2NvcGVEZXB0aCk7XG5cbiAgICAgICAgICAgIGlmIChhY3RTY29wZURlcHRoID09PSAwKSB7XG4gICAgICAgICAgICAgIC8vIFdlJ3ZlIGV4aXRlZCB0aGUgb3V0ZXJtb3N0IGFjdCBzY29wZS4gUmVjdXJzaXZlbHkgZmx1c2ggdGhlXG4gICAgICAgICAgICAgIC8vIHF1ZXVlIHVudGlsIHRoZXJlJ3Mgbm8gcmVtYWluaW5nIHdvcmsuXG4gICAgICAgICAgICAgIHJlY3Vyc2l2ZWx5Rmx1c2hBc3luY0FjdFdvcmsocmV0dXJuVmFsdWUsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXNvbHZlKHJldHVyblZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIFRoZSBjYWxsYmFjayB0aHJldyBhbiBlcnJvci5cbiAgICAgICAgICAgIHBvcEFjdFNjb3BlKHByZXZBY3RTY29wZURlcHRoKTtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHtcbiAgICAgICAgaWYgKCFkaWRXYXJuTm9Bd2FpdEFjdCAmJiB0eXBlb2YgUHJvbWlzZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uICgpIHt9KS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICghd2FzQXdhaXRlZCkge1xuICAgICAgICAgICAgICBkaWRXYXJuTm9Bd2FpdEFjdCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgZXJyb3IoJ1lvdSBjYWxsZWQgYWN0KGFzeW5jICgpID0+IC4uLikgd2l0aG91dCBhd2FpdC4gJyArICdUaGlzIGNvdWxkIGxlYWQgdG8gdW5leHBlY3RlZCB0ZXN0aW5nIGJlaGF2aW91ciwgJyArICdpbnRlcmxlYXZpbmcgbXVsdGlwbGUgYWN0IGNhbGxzIGFuZCBtaXhpbmcgdGhlaXIgJyArICdzY29wZXMuICcgKyAnWW91IHNob3VsZCAtIGF3YWl0IGFjdChhc3luYyAoKSA9PiAuLi4pOycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGVuYWJsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHJldHVyblZhbHVlID0gcmVzdWx0OyAvLyBUaGUgY2FsbGJhY2sgaXMgbm90IGFuIGFzeW5jIGZ1bmN0aW9uLiBFeGl0IHRoZSBjdXJyZW50IHNjb3BlXG4gICAgICAvLyBpbW1lZGlhdGVseSwgd2l0aG91dCBhd2FpdGluZy5cblxuICAgICAgcG9wQWN0U2NvcGUocHJldkFjdFNjb3BlRGVwdGgpO1xuXG4gICAgICBpZiAoYWN0U2NvcGVEZXB0aCA9PT0gMCkge1xuICAgICAgICAvLyBFeGl0aW5nIHRoZSBvdXRlcm1vc3QgYWN0IHNjb3BlLiBGbHVzaCB0aGUgcXVldWUuXG4gICAgICAgIHZhciBfcXVldWUgPSBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5jdXJyZW50O1xuXG4gICAgICAgIGlmIChfcXVldWUgIT09IG51bGwpIHtcbiAgICAgICAgICBmbHVzaEFjdFF1ZXVlKF9xdWV1ZSk7XG4gICAgICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuY3VycmVudCA9IG51bGw7XG4gICAgICAgIH0gLy8gUmV0dXJuIGEgdGhlbmFibGUuIElmIHRoZSB1c2VyIGF3YWl0cyBpdCwgd2UnbGwgZmx1c2ggYWdhaW4gaW5cbiAgICAgICAgLy8gY2FzZSBhZGRpdGlvbmFsIHdvcmsgd2FzIHNjaGVkdWxlZCBieSBhIG1pY3JvdGFzay5cblxuXG4gICAgICAgIHZhciBfdGhlbmFibGUgPSB7XG4gICAgICAgICAgdGhlbjogZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgLy8gQ29uZmlybSB3ZSBoYXZlbid0IHJlLWVudGVyZWQgYW5vdGhlciBgYWN0YCBzY29wZSwgaW4gY2FzZVxuICAgICAgICAgICAgLy8gdGhlIHVzZXIgZG9lcyBzb21ldGhpbmcgd2VpcmQgbGlrZSBhd2FpdCB0aGUgdGhlbmFibGVcbiAgICAgICAgICAgIC8vIG11bHRpcGxlIHRpbWVzLlxuICAgICAgICAgICAgaWYgKFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gUmVjdXJzaXZlbHkgZmx1c2ggdGhlIHF1ZXVlIHVudGlsIHRoZXJlJ3Mgbm8gcmVtYWluaW5nIHdvcmsuXG4gICAgICAgICAgICAgIFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPSBbXTtcbiAgICAgICAgICAgICAgcmVjdXJzaXZlbHlGbHVzaEFzeW5jQWN0V29yayhyZXR1cm5WYWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlc29sdmUocmV0dXJuVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIF90aGVuYWJsZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNpbmNlIHdlJ3JlIGluc2lkZSBhIG5lc3RlZCBgYWN0YCBzY29wZSwgdGhlIHJldHVybmVkIHRoZW5hYmxlXG4gICAgICAgIC8vIGltbWVkaWF0ZWx5IHJlc29sdmVzLiBUaGUgb3V0ZXIgc2NvcGUgd2lsbCBmbHVzaCB0aGUgcXVldWUuXG4gICAgICAgIHZhciBfdGhlbmFibGUyID0ge1xuICAgICAgICAgIHRoZW46IGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHJlc29sdmUocmV0dXJuVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIF90aGVuYWJsZTI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHBvcEFjdFNjb3BlKHByZXZBY3RTY29wZURlcHRoKSB7XG4gIHtcbiAgICBpZiAocHJldkFjdFNjb3BlRGVwdGggIT09IGFjdFNjb3BlRGVwdGggLSAxKSB7XG4gICAgICBlcnJvcignWW91IHNlZW0gdG8gaGF2ZSBvdmVybGFwcGluZyBhY3QoKSBjYWxscywgdGhpcyBpcyBub3Qgc3VwcG9ydGVkLiAnICsgJ0JlIHN1cmUgdG8gYXdhaXQgcHJldmlvdXMgYWN0KCkgY2FsbHMgYmVmb3JlIG1ha2luZyBhIG5ldyBvbmUuICcpO1xuICAgIH1cblxuICAgIGFjdFNjb3BlRGVwdGggPSBwcmV2QWN0U2NvcGVEZXB0aDtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWN1cnNpdmVseUZsdXNoQXN5bmNBY3RXb3JrKHJldHVyblZhbHVlLCByZXNvbHZlLCByZWplY3QpIHtcbiAge1xuICAgIHZhciBxdWV1ZSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQ7XG5cbiAgICBpZiAocXVldWUgIT09IG51bGwpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZsdXNoQWN0UXVldWUocXVldWUpO1xuICAgICAgICBlbnF1ZXVlVGFzayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gTm8gYWRkaXRpb25hbCB3b3JrIHdhcyBzY2hlZHVsZWQuIEZpbmlzaC5cbiAgICAgICAgICAgIFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgcmVzb2x2ZShyZXR1cm5WYWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEtlZXAgZmx1c2hpbmcgd29yayB1bnRpbCB0aGVyZSdzIG5vbmUgbGVmdC5cbiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5Rmx1c2hBc3luY0FjdFdvcmsocmV0dXJuVmFsdWUsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc29sdmUocmV0dXJuVmFsdWUpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgaXNGbHVzaGluZyA9IGZhbHNlO1xuXG5mdW5jdGlvbiBmbHVzaEFjdFF1ZXVlKHF1ZXVlKSB7XG4gIHtcbiAgICBpZiAoIWlzRmx1c2hpbmcpIHtcbiAgICAgIC8vIFByZXZlbnQgcmUtZW50cmFuY2UuXG4gICAgICBpc0ZsdXNoaW5nID0gdHJ1ZTtcbiAgICAgIHZhciBpID0gMDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yICg7IGkgPCBxdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBjYWxsYmFjayA9IHF1ZXVlW2ldO1xuXG4gICAgICAgICAgZG8ge1xuICAgICAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayh0cnVlKTtcbiAgICAgICAgICB9IHdoaWxlIChjYWxsYmFjayAhPT0gbnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBxdWV1ZS5sZW5ndGggPSAwO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gSWYgc29tZXRoaW5nIHRocm93cywgbGVhdmUgdGhlIHJlbWFpbmluZyBjYWxsYmFja3Mgb24gdGhlIHF1ZXVlLlxuICAgICAgICBxdWV1ZSA9IHF1ZXVlLnNsaWNlKGkgKyAxKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpc0ZsdXNoaW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBjcmVhdGVFbGVtZW50JDEgPSAgY3JlYXRlRWxlbWVudFdpdGhWYWxpZGF0aW9uIDtcbnZhciBjbG9uZUVsZW1lbnQkMSA9ICBjbG9uZUVsZW1lbnRXaXRoVmFsaWRhdGlvbiA7XG52YXIgY3JlYXRlRmFjdG9yeSA9ICBjcmVhdGVGYWN0b3J5V2l0aFZhbGlkYXRpb24gO1xudmFyIENoaWxkcmVuID0ge1xuICBtYXA6IG1hcENoaWxkcmVuLFxuICBmb3JFYWNoOiBmb3JFYWNoQ2hpbGRyZW4sXG4gIGNvdW50OiBjb3VudENoaWxkcmVuLFxuICB0b0FycmF5OiB0b0FycmF5LFxuICBvbmx5OiBvbmx5Q2hpbGRcbn07XG5cbmV4cG9ydHMuQ2hpbGRyZW4gPSBDaGlsZHJlbjtcbmV4cG9ydHMuQ29tcG9uZW50ID0gQ29tcG9uZW50O1xuZXhwb3J0cy5GcmFnbWVudCA9IFJFQUNUX0ZSQUdNRU5UX1RZUEU7XG5leHBvcnRzLlByb2ZpbGVyID0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbmV4cG9ydHMuUHVyZUNvbXBvbmVudCA9IFB1cmVDb21wb25lbnQ7XG5leHBvcnRzLlN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xuZXhwb3J0cy5TdXNwZW5zZSA9IFJFQUNUX1NVU1BFTlNFX1RZUEU7XG5leHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEID0gUmVhY3RTaGFyZWRJbnRlcm5hbHM7XG5leHBvcnRzLmNsb25lRWxlbWVudCA9IGNsb25lRWxlbWVudCQxO1xuZXhwb3J0cy5jcmVhdGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dDtcbmV4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQkMTtcbmV4cG9ydHMuY3JlYXRlRmFjdG9yeSA9IGNyZWF0ZUZhY3Rvcnk7XG5leHBvcnRzLmNyZWF0ZVJlZiA9IGNyZWF0ZVJlZjtcbmV4cG9ydHMuZm9yd2FyZFJlZiA9IGZvcndhcmRSZWY7XG5leHBvcnRzLmlzVmFsaWRFbGVtZW50ID0gaXNWYWxpZEVsZW1lbnQ7XG5leHBvcnRzLmxhenkgPSBsYXp5O1xuZXhwb3J0cy5tZW1vID0gbWVtbztcbmV4cG9ydHMuc3RhcnRUcmFuc2l0aW9uID0gc3RhcnRUcmFuc2l0aW9uO1xuZXhwb3J0cy51bnN0YWJsZV9hY3QgPSBhY3Q7XG5leHBvcnRzLnVzZUNhbGxiYWNrID0gdXNlQ2FsbGJhY2s7XG5leHBvcnRzLnVzZUNvbnRleHQgPSB1c2VDb250ZXh0O1xuZXhwb3J0cy51c2VEZWJ1Z1ZhbHVlID0gdXNlRGVidWdWYWx1ZTtcbmV4cG9ydHMudXNlRGVmZXJyZWRWYWx1ZSA9IHVzZURlZmVycmVkVmFsdWU7XG5leHBvcnRzLnVzZUVmZmVjdCA9IHVzZUVmZmVjdDtcbmV4cG9ydHMudXNlSWQgPSB1c2VJZDtcbmV4cG9ydHMudXNlSW1wZXJhdGl2ZUhhbmRsZSA9IHVzZUltcGVyYXRpdmVIYW5kbGU7XG5leHBvcnRzLnVzZUluc2VydGlvbkVmZmVjdCA9IHVzZUluc2VydGlvbkVmZmVjdDtcbmV4cG9ydHMudXNlTGF5b3V0RWZmZWN0ID0gdXNlTGF5b3V0RWZmZWN0O1xuZXhwb3J0cy51c2VNZW1vID0gdXNlTWVtbztcbmV4cG9ydHMudXNlUmVkdWNlciA9IHVzZVJlZHVjZXI7XG5leHBvcnRzLnVzZVJlZiA9IHVzZVJlZjtcbmV4cG9ydHMudXNlU3RhdGUgPSB1c2VTdGF0ZTtcbmV4cG9ydHMudXNlU3luY0V4dGVybmFsU3RvcmUgPSB1c2VTeW5jRXh0ZXJuYWxTdG9yZTtcbmV4cG9ydHMudXNlVHJhbnNpdGlvbiA9IHVzZVRyYW5zaXRpb247XG5leHBvcnRzLnZlcnNpb24gPSBSZWFjdFZlcnNpb247XG4gICAgICAgICAgLyogZ2xvYmFsIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAqL1xuaWYgKFxuICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICE9PSAndW5kZWZpbmVkJyAmJlxuICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdG9wID09PVxuICAgICdmdW5jdGlvbidcbikge1xuICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AobmV3IEVycm9yKCkpO1xufVxuICAgICAgICBcbiAgfSkoKTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsICIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiBzY2hlZHVsZXIuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgJ3VzZSBzdHJpY3QnO1xuXG4vKiBnbG9iYWwgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICovXG5pZiAoXG4gIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gIT09ICd1bmRlZmluZWQnICYmXG4gIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0YXJ0ID09PVxuICAgICdmdW5jdGlvbidcbikge1xuICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0YXJ0KG5ldyBFcnJvcigpKTtcbn1cbiAgICAgICAgICB2YXIgZW5hYmxlU2NoZWR1bGVyRGVidWdnaW5nID0gZmFsc2U7XG52YXIgZW5hYmxlUHJvZmlsaW5nID0gZmFsc2U7XG52YXIgZnJhbWVZaWVsZE1zID0gNTtcblxuZnVuY3Rpb24gcHVzaChoZWFwLCBub2RlKSB7XG4gIHZhciBpbmRleCA9IGhlYXAubGVuZ3RoO1xuICBoZWFwLnB1c2gobm9kZSk7XG4gIHNpZnRVcChoZWFwLCBub2RlLCBpbmRleCk7XG59XG5mdW5jdGlvbiBwZWVrKGhlYXApIHtcbiAgcmV0dXJuIGhlYXAubGVuZ3RoID09PSAwID8gbnVsbCA6IGhlYXBbMF07XG59XG5mdW5jdGlvbiBwb3AoaGVhcCkge1xuICBpZiAoaGVhcC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBmaXJzdCA9IGhlYXBbMF07XG4gIHZhciBsYXN0ID0gaGVhcC5wb3AoKTtcblxuICBpZiAobGFzdCAhPT0gZmlyc3QpIHtcbiAgICBoZWFwWzBdID0gbGFzdDtcbiAgICBzaWZ0RG93bihoZWFwLCBsYXN0LCAwKTtcbiAgfVxuXG4gIHJldHVybiBmaXJzdDtcbn1cblxuZnVuY3Rpb24gc2lmdFVwKGhlYXAsIG5vZGUsIGkpIHtcbiAgdmFyIGluZGV4ID0gaTtcblxuICB3aGlsZSAoaW5kZXggPiAwKSB7XG4gICAgdmFyIHBhcmVudEluZGV4ID0gaW5kZXggLSAxID4+PiAxO1xuICAgIHZhciBwYXJlbnQgPSBoZWFwW3BhcmVudEluZGV4XTtcblxuICAgIGlmIChjb21wYXJlKHBhcmVudCwgbm9kZSkgPiAwKSB7XG4gICAgICAvLyBUaGUgcGFyZW50IGlzIGxhcmdlci4gU3dhcCBwb3NpdGlvbnMuXG4gICAgICBoZWFwW3BhcmVudEluZGV4XSA9IG5vZGU7XG4gICAgICBoZWFwW2luZGV4XSA9IHBhcmVudDtcbiAgICAgIGluZGV4ID0gcGFyZW50SW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSBwYXJlbnQgaXMgc21hbGxlci4gRXhpdC5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2lmdERvd24oaGVhcCwgbm9kZSwgaSkge1xuICB2YXIgaW5kZXggPSBpO1xuICB2YXIgbGVuZ3RoID0gaGVhcC5sZW5ndGg7XG4gIHZhciBoYWxmTGVuZ3RoID0gbGVuZ3RoID4+PiAxO1xuXG4gIHdoaWxlIChpbmRleCA8IGhhbGZMZW5ndGgpIHtcbiAgICB2YXIgbGVmdEluZGV4ID0gKGluZGV4ICsgMSkgKiAyIC0gMTtcbiAgICB2YXIgbGVmdCA9IGhlYXBbbGVmdEluZGV4XTtcbiAgICB2YXIgcmlnaHRJbmRleCA9IGxlZnRJbmRleCArIDE7XG4gICAgdmFyIHJpZ2h0ID0gaGVhcFtyaWdodEluZGV4XTsgLy8gSWYgdGhlIGxlZnQgb3IgcmlnaHQgbm9kZSBpcyBzbWFsbGVyLCBzd2FwIHdpdGggdGhlIHNtYWxsZXIgb2YgdGhvc2UuXG5cbiAgICBpZiAoY29tcGFyZShsZWZ0LCBub2RlKSA8IDApIHtcbiAgICAgIGlmIChyaWdodEluZGV4IDwgbGVuZ3RoICYmIGNvbXBhcmUocmlnaHQsIGxlZnQpIDwgMCkge1xuICAgICAgICBoZWFwW2luZGV4XSA9IHJpZ2h0O1xuICAgICAgICBoZWFwW3JpZ2h0SW5kZXhdID0gbm9kZTtcbiAgICAgICAgaW5kZXggPSByaWdodEluZGV4O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaGVhcFtpbmRleF0gPSBsZWZ0O1xuICAgICAgICBoZWFwW2xlZnRJbmRleF0gPSBub2RlO1xuICAgICAgICBpbmRleCA9IGxlZnRJbmRleDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHJpZ2h0SW5kZXggPCBsZW5ndGggJiYgY29tcGFyZShyaWdodCwgbm9kZSkgPCAwKSB7XG4gICAgICBoZWFwW2luZGV4XSA9IHJpZ2h0O1xuICAgICAgaGVhcFtyaWdodEluZGV4XSA9IG5vZGU7XG4gICAgICBpbmRleCA9IHJpZ2h0SW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5laXRoZXIgY2hpbGQgaXMgc21hbGxlci4gRXhpdC5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tcGFyZShhLCBiKSB7XG4gIC8vIENvbXBhcmUgc29ydCBpbmRleCBmaXJzdCwgdGhlbiB0YXNrIGlkLlxuICB2YXIgZGlmZiA9IGEuc29ydEluZGV4IC0gYi5zb3J0SW5kZXg7XG4gIHJldHVybiBkaWZmICE9PSAwID8gZGlmZiA6IGEuaWQgLSBiLmlkO1xufVxuXG4vLyBUT0RPOiBVc2Ugc3ltYm9scz9cbnZhciBJbW1lZGlhdGVQcmlvcml0eSA9IDE7XG52YXIgVXNlckJsb2NraW5nUHJpb3JpdHkgPSAyO1xudmFyIE5vcm1hbFByaW9yaXR5ID0gMztcbnZhciBMb3dQcmlvcml0eSA9IDQ7XG52YXIgSWRsZVByaW9yaXR5ID0gNTtcblxuZnVuY3Rpb24gbWFya1Rhc2tFcnJvcmVkKHRhc2ssIG1zKSB7XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXZhciAqL1xuXG52YXIgaGFzUGVyZm9ybWFuY2VOb3cgPSB0eXBlb2YgcGVyZm9ybWFuY2UgPT09ICdvYmplY3QnICYmIHR5cGVvZiBwZXJmb3JtYW5jZS5ub3cgPT09ICdmdW5jdGlvbic7XG5cbmlmIChoYXNQZXJmb3JtYW5jZU5vdykge1xuICB2YXIgbG9jYWxQZXJmb3JtYW5jZSA9IHBlcmZvcm1hbmNlO1xuXG4gIGV4cG9ydHMudW5zdGFibGVfbm93ID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBsb2NhbFBlcmZvcm1hbmNlLm5vdygpO1xuICB9O1xufSBlbHNlIHtcbiAgdmFyIGxvY2FsRGF0ZSA9IERhdGU7XG4gIHZhciBpbml0aWFsVGltZSA9IGxvY2FsRGF0ZS5ub3coKTtcblxuICBleHBvcnRzLnVuc3RhYmxlX25vdyA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gbG9jYWxEYXRlLm5vdygpIC0gaW5pdGlhbFRpbWU7XG4gIH07XG59IC8vIE1heCAzMSBiaXQgaW50ZWdlci4gVGhlIG1heCBpbnRlZ2VyIHNpemUgaW4gVjggZm9yIDMyLWJpdCBzeXN0ZW1zLlxuLy8gTWF0aC5wb3coMiwgMzApIC0gMVxuLy8gMGIxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTFcblxuXG52YXIgbWF4U2lnbmVkMzFCaXRJbnQgPSAxMDczNzQxODIzOyAvLyBUaW1lcyBvdXQgaW1tZWRpYXRlbHlcblxudmFyIElNTUVESUFURV9QUklPUklUWV9USU1FT1VUID0gLTE7IC8vIEV2ZW50dWFsbHkgdGltZXMgb3V0XG5cbnZhciBVU0VSX0JMT0NLSU5HX1BSSU9SSVRZX1RJTUVPVVQgPSAyNTA7XG52YXIgTk9STUFMX1BSSU9SSVRZX1RJTUVPVVQgPSA1MDAwO1xudmFyIExPV19QUklPUklUWV9USU1FT1VUID0gMTAwMDA7IC8vIE5ldmVyIHRpbWVzIG91dFxuXG52YXIgSURMRV9QUklPUklUWV9USU1FT1VUID0gbWF4U2lnbmVkMzFCaXRJbnQ7IC8vIFRhc2tzIGFyZSBzdG9yZWQgb24gYSBtaW4gaGVhcFxuXG52YXIgdGFza1F1ZXVlID0gW107XG52YXIgdGltZXJRdWV1ZSA9IFtdOyAvLyBJbmNyZW1lbnRpbmcgaWQgY291bnRlci4gVXNlZCB0byBtYWludGFpbiBpbnNlcnRpb24gb3JkZXIuXG5cbnZhciB0YXNrSWRDb3VudGVyID0gMTsgLy8gUGF1c2luZyB0aGUgc2NoZWR1bGVyIGlzIHVzZWZ1bCBmb3IgZGVidWdnaW5nLlxudmFyIGN1cnJlbnRUYXNrID0gbnVsbDtcbnZhciBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IE5vcm1hbFByaW9yaXR5OyAvLyBUaGlzIGlzIHNldCB3aGlsZSBwZXJmb3JtaW5nIHdvcmssIHRvIHByZXZlbnQgcmUtZW50cmFuY2UuXG5cbnZhciBpc1BlcmZvcm1pbmdXb3JrID0gZmFsc2U7XG52YXIgaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgPSBmYWxzZTtcbnZhciBpc0hvc3RUaW1lb3V0U2NoZWR1bGVkID0gZmFsc2U7IC8vIENhcHR1cmUgbG9jYWwgcmVmZXJlbmNlcyB0byBuYXRpdmUgQVBJcywgaW4gY2FzZSBhIHBvbHlmaWxsIG92ZXJyaWRlcyB0aGVtLlxuXG52YXIgbG9jYWxTZXRUaW1lb3V0ID0gdHlwZW9mIHNldFRpbWVvdXQgPT09ICdmdW5jdGlvbicgPyBzZXRUaW1lb3V0IDogbnVsbDtcbnZhciBsb2NhbENsZWFyVGltZW91dCA9IHR5cGVvZiBjbGVhclRpbWVvdXQgPT09ICdmdW5jdGlvbicgPyBjbGVhclRpbWVvdXQgOiBudWxsO1xudmFyIGxvY2FsU2V0SW1tZWRpYXRlID0gdHlwZW9mIHNldEltbWVkaWF0ZSAhPT0gJ3VuZGVmaW5lZCcgPyBzZXRJbW1lZGlhdGUgOiBudWxsOyAvLyBJRSBhbmQgTm9kZS5qcyArIGpzZG9tXG5cbnZhciBpc0lucHV0UGVuZGluZyA9IHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci5zY2hlZHVsaW5nICE9PSB1bmRlZmluZWQgJiYgbmF2aWdhdG9yLnNjaGVkdWxpbmcuaXNJbnB1dFBlbmRpbmcgIT09IHVuZGVmaW5lZCA/IG5hdmlnYXRvci5zY2hlZHVsaW5nLmlzSW5wdXRQZW5kaW5nLmJpbmQobmF2aWdhdG9yLnNjaGVkdWxpbmcpIDogbnVsbDtcblxuZnVuY3Rpb24gYWR2YW5jZVRpbWVycyhjdXJyZW50VGltZSkge1xuICAvLyBDaGVjayBmb3IgdGFza3MgdGhhdCBhcmUgbm8gbG9uZ2VyIGRlbGF5ZWQgYW5kIGFkZCB0aGVtIHRvIHRoZSBxdWV1ZS5cbiAgdmFyIHRpbWVyID0gcGVlayh0aW1lclF1ZXVlKTtcblxuICB3aGlsZSAodGltZXIgIT09IG51bGwpIHtcbiAgICBpZiAodGltZXIuY2FsbGJhY2sgPT09IG51bGwpIHtcbiAgICAgIC8vIFRpbWVyIHdhcyBjYW5jZWxsZWQuXG4gICAgICBwb3AodGltZXJRdWV1ZSk7XG4gICAgfSBlbHNlIGlmICh0aW1lci5zdGFydFRpbWUgPD0gY3VycmVudFRpbWUpIHtcbiAgICAgIC8vIFRpbWVyIGZpcmVkLiBUcmFuc2ZlciB0byB0aGUgdGFzayBxdWV1ZS5cbiAgICAgIHBvcCh0aW1lclF1ZXVlKTtcbiAgICAgIHRpbWVyLnNvcnRJbmRleCA9IHRpbWVyLmV4cGlyYXRpb25UaW1lO1xuICAgICAgcHVzaCh0YXNrUXVldWUsIHRpbWVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmVtYWluaW5nIHRpbWVycyBhcmUgcGVuZGluZy5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aW1lciA9IHBlZWsodGltZXJRdWV1ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlVGltZW91dChjdXJyZW50VGltZSkge1xuICBpc0hvc3RUaW1lb3V0U2NoZWR1bGVkID0gZmFsc2U7XG4gIGFkdmFuY2VUaW1lcnMoY3VycmVudFRpbWUpO1xuXG4gIGlmICghaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQpIHtcbiAgICBpZiAocGVlayh0YXNrUXVldWUpICE9PSBudWxsKSB7XG4gICAgICBpc0hvc3RDYWxsYmFja1NjaGVkdWxlZCA9IHRydWU7XG4gICAgICByZXF1ZXN0SG9zdENhbGxiYWNrKGZsdXNoV29yayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBmaXJzdFRpbWVyID0gcGVlayh0aW1lclF1ZXVlKTtcblxuICAgICAgaWYgKGZpcnN0VGltZXIgIT09IG51bGwpIHtcbiAgICAgICAgcmVxdWVzdEhvc3RUaW1lb3V0KGhhbmRsZVRpbWVvdXQsIGZpcnN0VGltZXIuc3RhcnRUaW1lIC0gY3VycmVudFRpbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmbHVzaFdvcmsoaGFzVGltZVJlbWFpbmluZywgaW5pdGlhbFRpbWUpIHtcblxuXG4gIGlzSG9zdENhbGxiYWNrU2NoZWR1bGVkID0gZmFsc2U7XG5cbiAgaWYgKGlzSG9zdFRpbWVvdXRTY2hlZHVsZWQpIHtcbiAgICAvLyBXZSBzY2hlZHVsZWQgYSB0aW1lb3V0IGJ1dCBpdCdzIG5vIGxvbmdlciBuZWVkZWQuIENhbmNlbCBpdC5cbiAgICBpc0hvc3RUaW1lb3V0U2NoZWR1bGVkID0gZmFsc2U7XG4gICAgY2FuY2VsSG9zdFRpbWVvdXQoKTtcbiAgfVxuXG4gIGlzUGVyZm9ybWluZ1dvcmsgPSB0cnVlO1xuICB2YXIgcHJldmlvdXNQcmlvcml0eUxldmVsID0gY3VycmVudFByaW9yaXR5TGV2ZWw7XG5cbiAgdHJ5IHtcbiAgICBpZiAoZW5hYmxlUHJvZmlsaW5nKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gd29ya0xvb3AoaGFzVGltZVJlbWFpbmluZywgaW5pdGlhbFRpbWUpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGN1cnJlbnRUYXNrICE9PSBudWxsKSB7XG4gICAgICAgICAgdmFyIGN1cnJlbnRUaW1lID0gZXhwb3J0cy51bnN0YWJsZV9ub3coKTtcbiAgICAgICAgICBtYXJrVGFza0Vycm9yZWQoY3VycmVudFRhc2ssIGN1cnJlbnRUaW1lKTtcbiAgICAgICAgICBjdXJyZW50VGFzay5pc1F1ZXVlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIGNhdGNoIGluIHByb2QgY29kZSBwYXRoLlxuICAgICAgcmV0dXJuIHdvcmtMb29wKGhhc1RpbWVSZW1haW5pbmcsIGluaXRpYWxUaW1lKTtcbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgY3VycmVudFRhc2sgPSBudWxsO1xuICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gcHJldmlvdXNQcmlvcml0eUxldmVsO1xuICAgIGlzUGVyZm9ybWluZ1dvcmsgPSBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB3b3JrTG9vcChoYXNUaW1lUmVtYWluaW5nLCBpbml0aWFsVGltZSkge1xuICB2YXIgY3VycmVudFRpbWUgPSBpbml0aWFsVGltZTtcbiAgYWR2YW5jZVRpbWVycyhjdXJyZW50VGltZSk7XG4gIGN1cnJlbnRUYXNrID0gcGVlayh0YXNrUXVldWUpO1xuXG4gIHdoaWxlIChjdXJyZW50VGFzayAhPT0gbnVsbCAmJiAhKGVuYWJsZVNjaGVkdWxlckRlYnVnZ2luZyApKSB7XG4gICAgaWYgKGN1cnJlbnRUYXNrLmV4cGlyYXRpb25UaW1lID4gY3VycmVudFRpbWUgJiYgKCFoYXNUaW1lUmVtYWluaW5nIHx8IHNob3VsZFlpZWxkVG9Ib3N0KCkpKSB7XG4gICAgICAvLyBUaGlzIGN1cnJlbnRUYXNrIGhhc24ndCBleHBpcmVkLCBhbmQgd2UndmUgcmVhY2hlZCB0aGUgZGVhZGxpbmUuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICB2YXIgY2FsbGJhY2sgPSBjdXJyZW50VGFzay5jYWxsYmFjaztcblxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGN1cnJlbnRUYXNrLmNhbGxiYWNrID0gbnVsbDtcbiAgICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gY3VycmVudFRhc2sucHJpb3JpdHlMZXZlbDtcbiAgICAgIHZhciBkaWRVc2VyQ2FsbGJhY2tUaW1lb3V0ID0gY3VycmVudFRhc2suZXhwaXJhdGlvblRpbWUgPD0gY3VycmVudFRpbWU7XG5cbiAgICAgIHZhciBjb250aW51YXRpb25DYWxsYmFjayA9IGNhbGxiYWNrKGRpZFVzZXJDYWxsYmFja1RpbWVvdXQpO1xuICAgICAgY3VycmVudFRpbWUgPSBleHBvcnRzLnVuc3RhYmxlX25vdygpO1xuXG4gICAgICBpZiAodHlwZW9mIGNvbnRpbnVhdGlvbkNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGN1cnJlbnRUYXNrLmNhbGxiYWNrID0gY29udGludWF0aW9uQ2FsbGJhY2s7XG4gICAgICB9IGVsc2Uge1xuXG4gICAgICAgIGlmIChjdXJyZW50VGFzayA9PT0gcGVlayh0YXNrUXVldWUpKSB7XG4gICAgICAgICAgcG9wKHRhc2tRdWV1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYWR2YW5jZVRpbWVycyhjdXJyZW50VGltZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvcCh0YXNrUXVldWUpO1xuICAgIH1cblxuICAgIGN1cnJlbnRUYXNrID0gcGVlayh0YXNrUXVldWUpO1xuICB9IC8vIFJldHVybiB3aGV0aGVyIHRoZXJlJ3MgYWRkaXRpb25hbCB3b3JrXG5cblxuICBpZiAoY3VycmVudFRhc2sgIT09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgZmlyc3RUaW1lciA9IHBlZWsodGltZXJRdWV1ZSk7XG5cbiAgICBpZiAoZmlyc3RUaW1lciAhPT0gbnVsbCkge1xuICAgICAgcmVxdWVzdEhvc3RUaW1lb3V0KGhhbmRsZVRpbWVvdXQsIGZpcnN0VGltZXIuc3RhcnRUaW1lIC0gY3VycmVudFRpbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB1bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHkocHJpb3JpdHlMZXZlbCwgZXZlbnRIYW5kbGVyKSB7XG4gIHN3aXRjaCAocHJpb3JpdHlMZXZlbCkge1xuICAgIGNhc2UgSW1tZWRpYXRlUHJpb3JpdHk6XG4gICAgY2FzZSBVc2VyQmxvY2tpbmdQcmlvcml0eTpcbiAgICBjYXNlIE5vcm1hbFByaW9yaXR5OlxuICAgIGNhc2UgTG93UHJpb3JpdHk6XG4gICAgY2FzZSBJZGxlUHJpb3JpdHk6XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICBwcmlvcml0eUxldmVsID0gTm9ybWFsUHJpb3JpdHk7XG4gIH1cblxuICB2YXIgcHJldmlvdXNQcmlvcml0eUxldmVsID0gY3VycmVudFByaW9yaXR5TGV2ZWw7XG4gIGN1cnJlbnRQcmlvcml0eUxldmVsID0gcHJpb3JpdHlMZXZlbDtcblxuICB0cnkge1xuICAgIHJldHVybiBldmVudEhhbmRsZXIoKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByZXZpb3VzUHJpb3JpdHlMZXZlbDtcbiAgfVxufVxuXG5mdW5jdGlvbiB1bnN0YWJsZV9uZXh0KGV2ZW50SGFuZGxlcikge1xuICB2YXIgcHJpb3JpdHlMZXZlbDtcblxuICBzd2l0Y2ggKGN1cnJlbnRQcmlvcml0eUxldmVsKSB7XG4gICAgY2FzZSBJbW1lZGlhdGVQcmlvcml0eTpcbiAgICBjYXNlIFVzZXJCbG9ja2luZ1ByaW9yaXR5OlxuICAgIGNhc2UgTm9ybWFsUHJpb3JpdHk6XG4gICAgICAvLyBTaGlmdCBkb3duIHRvIG5vcm1hbCBwcmlvcml0eVxuICAgICAgcHJpb3JpdHlMZXZlbCA9IE5vcm1hbFByaW9yaXR5O1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgLy8gQW55dGhpbmcgbG93ZXIgdGhhbiBub3JtYWwgcHJpb3JpdHkgc2hvdWxkIHJlbWFpbiBhdCB0aGUgY3VycmVudCBsZXZlbC5cbiAgICAgIHByaW9yaXR5TGV2ZWwgPSBjdXJyZW50UHJpb3JpdHlMZXZlbDtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgdmFyIHByZXZpb3VzUHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRQcmlvcml0eUxldmVsO1xuICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByaW9yaXR5TGV2ZWw7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gZXZlbnRIYW5kbGVyKCk7XG4gIH0gZmluYWxseSB7XG4gICAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwcmV2aW91c1ByaW9yaXR5TGV2ZWw7XG4gIH1cbn1cblxuZnVuY3Rpb24gdW5zdGFibGVfd3JhcENhbGxiYWNrKGNhbGxiYWNrKSB7XG4gIHZhciBwYXJlbnRQcmlvcml0eUxldmVsID0gY3VycmVudFByaW9yaXR5TGV2ZWw7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgLy8gVGhpcyBpcyBhIGZvcmsgb2YgcnVuV2l0aFByaW9yaXR5LCBpbmxpbmVkIGZvciBwZXJmb3JtYW5jZS5cbiAgICB2YXIgcHJldmlvdXNQcmlvcml0eUxldmVsID0gY3VycmVudFByaW9yaXR5TGV2ZWw7XG4gICAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwYXJlbnRQcmlvcml0eUxldmVsO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBjYWxsYmFjay5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByZXZpb3VzUHJpb3JpdHlMZXZlbDtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIHVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2socHJpb3JpdHlMZXZlbCwgY2FsbGJhY2ssIG9wdGlvbnMpIHtcbiAgdmFyIGN1cnJlbnRUaW1lID0gZXhwb3J0cy51bnN0YWJsZV9ub3coKTtcbiAgdmFyIHN0YXJ0VGltZTtcblxuICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdvYmplY3QnICYmIG9wdGlvbnMgIT09IG51bGwpIHtcbiAgICB2YXIgZGVsYXkgPSBvcHRpb25zLmRlbGF5O1xuXG4gICAgaWYgKHR5cGVvZiBkZWxheSA9PT0gJ251bWJlcicgJiYgZGVsYXkgPiAwKSB7XG4gICAgICBzdGFydFRpbWUgPSBjdXJyZW50VGltZSArIGRlbGF5O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGFydFRpbWUgPSBjdXJyZW50VGltZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3RhcnRUaW1lID0gY3VycmVudFRpbWU7XG4gIH1cblxuICB2YXIgdGltZW91dDtcblxuICBzd2l0Y2ggKHByaW9yaXR5TGV2ZWwpIHtcbiAgICBjYXNlIEltbWVkaWF0ZVByaW9yaXR5OlxuICAgICAgdGltZW91dCA9IElNTUVESUFURV9QUklPUklUWV9USU1FT1VUO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFVzZXJCbG9ja2luZ1ByaW9yaXR5OlxuICAgICAgdGltZW91dCA9IFVTRVJfQkxPQ0tJTkdfUFJJT1JJVFlfVElNRU9VVDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBJZGxlUHJpb3JpdHk6XG4gICAgICB0aW1lb3V0ID0gSURMRV9QUklPUklUWV9USU1FT1VUO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIExvd1ByaW9yaXR5OlxuICAgICAgdGltZW91dCA9IExPV19QUklPUklUWV9USU1FT1VUO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIE5vcm1hbFByaW9yaXR5OlxuICAgIGRlZmF1bHQ6XG4gICAgICB0aW1lb3V0ID0gTk9STUFMX1BSSU9SSVRZX1RJTUVPVVQ7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHZhciBleHBpcmF0aW9uVGltZSA9IHN0YXJ0VGltZSArIHRpbWVvdXQ7XG4gIHZhciBuZXdUYXNrID0ge1xuICAgIGlkOiB0YXNrSWRDb3VudGVyKyssXG4gICAgY2FsbGJhY2s6IGNhbGxiYWNrLFxuICAgIHByaW9yaXR5TGV2ZWw6IHByaW9yaXR5TGV2ZWwsXG4gICAgc3RhcnRUaW1lOiBzdGFydFRpbWUsXG4gICAgZXhwaXJhdGlvblRpbWU6IGV4cGlyYXRpb25UaW1lLFxuICAgIHNvcnRJbmRleDogLTFcbiAgfTtcblxuICBpZiAoc3RhcnRUaW1lID4gY3VycmVudFRpbWUpIHtcbiAgICAvLyBUaGlzIGlzIGEgZGVsYXllZCB0YXNrLlxuICAgIG5ld1Rhc2suc29ydEluZGV4ID0gc3RhcnRUaW1lO1xuICAgIHB1c2godGltZXJRdWV1ZSwgbmV3VGFzayk7XG5cbiAgICBpZiAocGVlayh0YXNrUXVldWUpID09PSBudWxsICYmIG5ld1Rhc2sgPT09IHBlZWsodGltZXJRdWV1ZSkpIHtcbiAgICAgIC8vIEFsbCB0YXNrcyBhcmUgZGVsYXllZCwgYW5kIHRoaXMgaXMgdGhlIHRhc2sgd2l0aCB0aGUgZWFybGllc3QgZGVsYXkuXG4gICAgICBpZiAoaXNIb3N0VGltZW91dFNjaGVkdWxlZCkge1xuICAgICAgICAvLyBDYW5jZWwgYW4gZXhpc3RpbmcgdGltZW91dC5cbiAgICAgICAgY2FuY2VsSG9zdFRpbWVvdXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlzSG9zdFRpbWVvdXRTY2hlZHVsZWQgPSB0cnVlO1xuICAgICAgfSAvLyBTY2hlZHVsZSBhIHRpbWVvdXQuXG5cblxuICAgICAgcmVxdWVzdEhvc3RUaW1lb3V0KGhhbmRsZVRpbWVvdXQsIHN0YXJ0VGltZSAtIGN1cnJlbnRUaW1lKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbmV3VGFzay5zb3J0SW5kZXggPSBleHBpcmF0aW9uVGltZTtcbiAgICBwdXNoKHRhc2tRdWV1ZSwgbmV3VGFzayk7XG4gICAgLy8gd2FpdCB1bnRpbCB0aGUgbmV4dCB0aW1lIHdlIHlpZWxkLlxuXG5cbiAgICBpZiAoIWlzSG9zdENhbGxiYWNrU2NoZWR1bGVkICYmICFpc1BlcmZvcm1pbmdXb3JrKSB7XG4gICAgICBpc0hvc3RDYWxsYmFja1NjaGVkdWxlZCA9IHRydWU7XG4gICAgICByZXF1ZXN0SG9zdENhbGxiYWNrKGZsdXNoV29yayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ld1Rhc2s7XG59XG5cbmZ1bmN0aW9uIHVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uKCkge1xufVxuXG5mdW5jdGlvbiB1bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbigpIHtcblxuICBpZiAoIWlzSG9zdENhbGxiYWNrU2NoZWR1bGVkICYmICFpc1BlcmZvcm1pbmdXb3JrKSB7XG4gICAgaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgPSB0cnVlO1xuICAgIHJlcXVlc3RIb3N0Q2FsbGJhY2soZmx1c2hXb3JrKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB1bnN0YWJsZV9nZXRGaXJzdENhbGxiYWNrTm9kZSgpIHtcbiAgcmV0dXJuIHBlZWsodGFza1F1ZXVlKTtcbn1cblxuZnVuY3Rpb24gdW5zdGFibGVfY2FuY2VsQ2FsbGJhY2sodGFzaykge1xuICAvLyByZW1vdmUgZnJvbSB0aGUgcXVldWUgYmVjYXVzZSB5b3UgY2FuJ3QgcmVtb3ZlIGFyYml0cmFyeSBub2RlcyBmcm9tIGFuXG4gIC8vIGFycmF5IGJhc2VkIGhlYXAsIG9ubHkgdGhlIGZpcnN0IG9uZS4pXG5cblxuICB0YXNrLmNhbGxiYWNrID0gbnVsbDtcbn1cblxuZnVuY3Rpb24gdW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwoKSB7XG4gIHJldHVybiBjdXJyZW50UHJpb3JpdHlMZXZlbDtcbn1cblxudmFyIGlzTWVzc2FnZUxvb3BSdW5uaW5nID0gZmFsc2U7XG52YXIgc2NoZWR1bGVkSG9zdENhbGxiYWNrID0gbnVsbDtcbnZhciB0YXNrVGltZW91dElEID0gLTE7IC8vIFNjaGVkdWxlciBwZXJpb2RpY2FsbHkgeWllbGRzIGluIGNhc2UgdGhlcmUgaXMgb3RoZXIgd29yayBvbiB0aGUgbWFpblxuLy8gdGhyZWFkLCBsaWtlIHVzZXIgZXZlbnRzLiBCeSBkZWZhdWx0LCBpdCB5aWVsZHMgbXVsdGlwbGUgdGltZXMgcGVyIGZyYW1lLlxuLy8gSXQgZG9lcyBub3QgYXR0ZW1wdCB0byBhbGlnbiB3aXRoIGZyYW1lIGJvdW5kYXJpZXMsIHNpbmNlIG1vc3QgdGFza3MgZG9uJ3Rcbi8vIG5lZWQgdG8gYmUgZnJhbWUgYWxpZ25lZDsgZm9yIHRob3NlIHRoYXQgZG8sIHVzZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUuXG5cbnZhciBmcmFtZUludGVydmFsID0gZnJhbWVZaWVsZE1zO1xudmFyIHN0YXJ0VGltZSA9IC0xO1xuXG5mdW5jdGlvbiBzaG91bGRZaWVsZFRvSG9zdCgpIHtcbiAgdmFyIHRpbWVFbGFwc2VkID0gZXhwb3J0cy51bnN0YWJsZV9ub3coKSAtIHN0YXJ0VGltZTtcblxuICBpZiAodGltZUVsYXBzZWQgPCBmcmFtZUludGVydmFsKSB7XG4gICAgLy8gVGhlIG1haW4gdGhyZWFkIGhhcyBvbmx5IGJlZW4gYmxvY2tlZCBmb3IgYSByZWFsbHkgc2hvcnQgYW1vdW50IG9mIHRpbWU7XG4gICAgLy8gc21hbGxlciB0aGFuIGEgc2luZ2xlIGZyYW1lLiBEb24ndCB5aWVsZCB5ZXQuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIFRoZSBtYWluIHRocmVhZCBoYXMgYmVlbiBibG9ja2VkIGZvciBhIG5vbi1uZWdsaWdpYmxlIGFtb3VudCBvZiB0aW1lLiBXZVxuXG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHJlcXVlc3RQYWludCgpIHtcblxufVxuXG5mdW5jdGlvbiBmb3JjZUZyYW1lUmF0ZShmcHMpIHtcbiAgaWYgKGZwcyA8IDAgfHwgZnBzID4gMTI1KSB7XG4gICAgLy8gVXNpbmcgY29uc29sZVsnZXJyb3InXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG4gICAgY29uc29sZVsnZXJyb3InXSgnZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsICcgKyAnZm9yY2luZyBmcmFtZSByYXRlcyBoaWdoZXIgdGhhbiAxMjUgZnBzIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoZnBzID4gMCkge1xuICAgIGZyYW1lSW50ZXJ2YWwgPSBNYXRoLmZsb29yKDEwMDAgLyBmcHMpO1xuICB9IGVsc2Uge1xuICAgIC8vIHJlc2V0IHRoZSBmcmFtZXJhdGVcbiAgICBmcmFtZUludGVydmFsID0gZnJhbWVZaWVsZE1zO1xuICB9XG59XG5cbnZhciBwZXJmb3JtV29ya1VudGlsRGVhZGxpbmUgPSBmdW5jdGlvbiAoKSB7XG4gIGlmIChzY2hlZHVsZWRIb3N0Q2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICB2YXIgY3VycmVudFRpbWUgPSBleHBvcnRzLnVuc3RhYmxlX25vdygpOyAvLyBLZWVwIHRyYWNrIG9mIHRoZSBzdGFydCB0aW1lIHNvIHdlIGNhbiBtZWFzdXJlIGhvdyBsb25nIHRoZSBtYWluIHRocmVhZFxuICAgIC8vIGhhcyBiZWVuIGJsb2NrZWQuXG5cbiAgICBzdGFydFRpbWUgPSBjdXJyZW50VGltZTtcbiAgICB2YXIgaGFzVGltZVJlbWFpbmluZyA9IHRydWU7IC8vIElmIGEgc2NoZWR1bGVyIHRhc2sgdGhyb3dzLCBleGl0IHRoZSBjdXJyZW50IGJyb3dzZXIgdGFzayBzbyB0aGVcbiAgICAvLyBlcnJvciBjYW4gYmUgb2JzZXJ2ZWQuXG4gICAgLy9cbiAgICAvLyBJbnRlbnRpb25hbGx5IG5vdCB1c2luZyBhIHRyeS1jYXRjaCwgc2luY2UgdGhhdCBtYWtlcyBzb21lIGRlYnVnZ2luZ1xuICAgIC8vIHRlY2huaXF1ZXMgaGFyZGVyLiBJbnN0ZWFkLCBpZiBgc2NoZWR1bGVkSG9zdENhbGxiYWNrYCBlcnJvcnMsIHRoZW5cbiAgICAvLyBgaGFzTW9yZVdvcmtgIHdpbGwgcmVtYWluIHRydWUsIGFuZCB3ZSdsbCBjb250aW51ZSB0aGUgd29yayBsb29wLlxuXG4gICAgdmFyIGhhc01vcmVXb3JrID0gdHJ1ZTtcblxuICAgIHRyeSB7XG4gICAgICBoYXNNb3JlV29yayA9IHNjaGVkdWxlZEhvc3RDYWxsYmFjayhoYXNUaW1lUmVtYWluaW5nLCBjdXJyZW50VGltZSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChoYXNNb3JlV29yaykge1xuICAgICAgICAvLyBJZiB0aGVyZSdzIG1vcmUgd29yaywgc2NoZWR1bGUgdGhlIG5leHQgbWVzc2FnZSBldmVudCBhdCB0aGUgZW5kXG4gICAgICAgIC8vIG9mIHRoZSBwcmVjZWRpbmcgb25lLlxuICAgICAgICBzY2hlZHVsZVBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXNNZXNzYWdlTG9vcFJ1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgc2NoZWR1bGVkSG9zdENhbGxiYWNrID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaXNNZXNzYWdlTG9vcFJ1bm5pbmcgPSBmYWxzZTtcbiAgfSAvLyBZaWVsZGluZyB0byB0aGUgYnJvd3NlciB3aWxsIGdpdmUgaXQgYSBjaGFuY2UgdG8gcGFpbnQsIHNvIHdlIGNhblxufTtcblxudmFyIHNjaGVkdWxlUGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lO1xuXG5pZiAodHlwZW9mIGxvY2FsU2V0SW1tZWRpYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gIC8vIE5vZGUuanMgYW5kIG9sZCBJRS5cbiAgLy8gVGhlcmUncyBhIGZldyByZWFzb25zIGZvciB3aHkgd2UgcHJlZmVyIHNldEltbWVkaWF0ZS5cbiAgLy9cbiAgLy8gVW5saWtlIE1lc3NhZ2VDaGFubmVsLCBpdCBkb2Vzbid0IHByZXZlbnQgYSBOb2RlLmpzIHByb2Nlc3MgZnJvbSBleGl0aW5nLlxuICAvLyAoRXZlbiB0aG91Z2ggdGhpcyBpcyBhIERPTSBmb3JrIG9mIHRoZSBTY2hlZHVsZXIsIHlvdSBjb3VsZCBnZXQgaGVyZVxuICAvLyB3aXRoIGEgbWl4IG9mIE5vZGUuanMgMTUrLCB3aGljaCBoYXMgYSBNZXNzYWdlQ2hhbm5lbCwgYW5kIGpzZG9tLilcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8yMDc1NlxuICAvL1xuICAvLyBCdXQgYWxzbywgaXQgcnVucyBlYXJsaWVyIHdoaWNoIGlzIHRoZSBzZW1hbnRpYyB3ZSB3YW50LlxuICAvLyBJZiBvdGhlciBicm93c2VycyBldmVyIGltcGxlbWVudCBpdCwgaXQncyBiZXR0ZXIgdG8gdXNlIGl0LlxuICAvLyBBbHRob3VnaCBib3RoIG9mIHRoZXNlIHdvdWxkIGJlIGluZmVyaW9yIHRvIG5hdGl2ZSBzY2hlZHVsaW5nLlxuICBzY2hlZHVsZVBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBsb2NhbFNldEltbWVkaWF0ZShwZXJmb3JtV29ya1VudGlsRGVhZGxpbmUpO1xuICB9O1xufSBlbHNlIGlmICh0eXBlb2YgTWVzc2FnZUNoYW5uZWwgIT09ICd1bmRlZmluZWQnKSB7XG4gIC8vIERPTSBhbmQgV29ya2VyIGVudmlyb25tZW50cy5cbiAgLy8gV2UgcHJlZmVyIE1lc3NhZ2VDaGFubmVsIGJlY2F1c2Ugb2YgdGhlIDRtcyBzZXRUaW1lb3V0IGNsYW1waW5nLlxuICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpO1xuICB2YXIgcG9ydCA9IGNoYW5uZWwucG9ydDI7XG4gIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gcGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lO1xuXG4gIHNjaGVkdWxlUGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lID0gZnVuY3Rpb24gKCkge1xuICAgIHBvcnQucG9zdE1lc3NhZ2UobnVsbCk7XG4gIH07XG59IGVsc2Uge1xuICAvLyBXZSBzaG91bGQgb25seSBmYWxsYmFjayBoZXJlIGluIG5vbi1icm93c2VyIGVudmlyb25tZW50cy5cbiAgc2NoZWR1bGVQZXJmb3JtV29ya1VudGlsRGVhZGxpbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgbG9jYWxTZXRUaW1lb3V0KHBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZSwgMCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHJlcXVlc3RIb3N0Q2FsbGJhY2soY2FsbGJhY2spIHtcbiAgc2NoZWR1bGVkSG9zdENhbGxiYWNrID0gY2FsbGJhY2s7XG5cbiAgaWYgKCFpc01lc3NhZ2VMb29wUnVubmluZykge1xuICAgIGlzTWVzc2FnZUxvb3BSdW5uaW5nID0gdHJ1ZTtcbiAgICBzY2hlZHVsZVBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZSgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlcXVlc3RIb3N0VGltZW91dChjYWxsYmFjaywgbXMpIHtcbiAgdGFza1RpbWVvdXRJRCA9IGxvY2FsU2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgY2FsbGJhY2soZXhwb3J0cy51bnN0YWJsZV9ub3coKSk7XG4gIH0sIG1zKTtcbn1cblxuZnVuY3Rpb24gY2FuY2VsSG9zdFRpbWVvdXQoKSB7XG4gIGxvY2FsQ2xlYXJUaW1lb3V0KHRhc2tUaW1lb3V0SUQpO1xuICB0YXNrVGltZW91dElEID0gLTE7XG59XG5cbnZhciB1bnN0YWJsZV9yZXF1ZXN0UGFpbnQgPSByZXF1ZXN0UGFpbnQ7XG52YXIgdW5zdGFibGVfUHJvZmlsaW5nID0gIG51bGw7XG5cbmV4cG9ydHMudW5zdGFibGVfSWRsZVByaW9yaXR5ID0gSWRsZVByaW9yaXR5O1xuZXhwb3J0cy51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSA9IEltbWVkaWF0ZVByaW9yaXR5O1xuZXhwb3J0cy51bnN0YWJsZV9Mb3dQcmlvcml0eSA9IExvd1ByaW9yaXR5O1xuZXhwb3J0cy51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSA9IE5vcm1hbFByaW9yaXR5O1xuZXhwb3J0cy51bnN0YWJsZV9Qcm9maWxpbmcgPSB1bnN0YWJsZV9Qcm9maWxpbmc7XG5leHBvcnRzLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5ID0gVXNlckJsb2NraW5nUHJpb3JpdHk7XG5leHBvcnRzLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrID0gdW5zdGFibGVfY2FuY2VsQ2FsbGJhY2s7XG5leHBvcnRzLnVuc3RhYmxlX2NvbnRpbnVlRXhlY3V0aW9uID0gdW5zdGFibGVfY29udGludWVFeGVjdXRpb247XG5leHBvcnRzLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlID0gZm9yY2VGcmFtZVJhdGU7XG5leHBvcnRzLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsID0gdW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWw7XG5leHBvcnRzLnVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlID0gdW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGU7XG5leHBvcnRzLnVuc3RhYmxlX25leHQgPSB1bnN0YWJsZV9uZXh0O1xuZXhwb3J0cy51bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbiA9IHVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uO1xuZXhwb3J0cy51bnN0YWJsZV9yZXF1ZXN0UGFpbnQgPSB1bnN0YWJsZV9yZXF1ZXN0UGFpbnQ7XG5leHBvcnRzLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eSA9IHVuc3RhYmxlX3J1bldpdGhQcmlvcml0eTtcbmV4cG9ydHMudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayA9IHVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s7XG5leHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkID0gc2hvdWxkWWllbGRUb0hvc3Q7XG5leHBvcnRzLnVuc3RhYmxlX3dyYXBDYWxsYmFjayA9IHVuc3RhYmxlX3dyYXBDYWxsYmFjaztcbiAgICAgICAgICAvKiBnbG9iYWwgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICovXG5pZiAoXG4gIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gIT09ICd1bmRlZmluZWQnICYmXG4gIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AgPT09XG4gICAgJ2Z1bmN0aW9uJ1xuKSB7XG4gIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RvcChuZXcgRXJyb3IoKSk7XG59XG4gICAgICAgIFxuICB9KSgpO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCAiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QtZG9tLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIChmdW5jdGlvbigpIHtcblxuICAgICAgICAgICd1c2Ugc3RyaWN0JztcblxuLyogZ2xvYmFsIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAqL1xuaWYgKFxuICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICE9PSAndW5kZWZpbmVkJyAmJlxuICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdGFydCA9PT1cbiAgICAnZnVuY3Rpb24nXG4pIHtcbiAgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdGFydChuZXcgRXJyb3IoKSk7XG59XG4gICAgICAgICAgdmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbnZhciBTY2hlZHVsZXIgPSByZXF1aXJlKCdzY2hlZHVsZXInKTtcblxudmFyIFJlYWN0U2hhcmVkSW50ZXJuYWxzID0gUmVhY3QuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ7XG5cbnZhciBzdXBwcmVzc1dhcm5pbmcgPSBmYWxzZTtcbmZ1bmN0aW9uIHNldFN1cHByZXNzV2FybmluZyhuZXdTdXBwcmVzc1dhcm5pbmcpIHtcbiAge1xuICAgIHN1cHByZXNzV2FybmluZyA9IG5ld1N1cHByZXNzV2FybmluZztcbiAgfVxufSAvLyBJbiBERVYsIGNhbGxzIHRvIGNvbnNvbGUud2FybiBhbmQgY29uc29sZS5lcnJvciBnZXQgcmVwbGFjZWRcbi8vIGJ5IGNhbGxzIHRvIHRoZXNlIG1ldGhvZHMgYnkgYSBCYWJlbCBwbHVnaW4uXG4vL1xuLy8gSW4gUFJPRCAob3IgaW4gcGFja2FnZXMgd2l0aG91dCBhY2Nlc3MgdG8gUmVhY3QgaW50ZXJuYWxzKSxcbi8vIHRoZXkgYXJlIGxlZnQgYXMgdGhleSBhcmUgaW5zdGVhZC5cblxuZnVuY3Rpb24gd2Fybihmb3JtYXQpIHtcbiAge1xuICAgIGlmICghc3VwcHJlc3NXYXJuaW5nKSB7XG4gICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgfVxuXG4gICAgICBwcmludFdhcm5pbmcoJ3dhcm4nLCBmb3JtYXQsIGFyZ3MpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZXJyb3IoZm9ybWF0KSB7XG4gIHtcbiAgICBpZiAoIXN1cHByZXNzV2FybmluZykge1xuICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nKCdlcnJvcicsIGZvcm1hdCwgYXJncyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHByaW50V2FybmluZyhsZXZlbCwgZm9ybWF0LCBhcmdzKSB7XG4gIC8vIFdoZW4gY2hhbmdpbmcgdGhpcyBsb2dpYywgeW91IG1pZ2h0IHdhbnQgdG8gYWxzb1xuICAvLyB1cGRhdGUgY29uc29sZVdpdGhTdGFja0Rldi53d3cuanMgYXMgd2VsbC5cbiAge1xuICAgIHZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbiAgICB2YXIgc3RhY2sgPSBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0oKTtcblxuICAgIGlmIChzdGFjayAhPT0gJycpIHtcbiAgICAgIGZvcm1hdCArPSAnJXMnO1xuICAgICAgYXJncyA9IGFyZ3MuY29uY2F0KFtzdGFja10pO1xuICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG5cblxuICAgIHZhciBhcmdzV2l0aEZvcm1hdCA9IGFyZ3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKGl0ZW0pO1xuICAgIH0pOyAvLyBDYXJlZnVsOiBSTiBjdXJyZW50bHkgZGVwZW5kcyBvbiB0aGlzIHByZWZpeFxuXG4gICAgYXJnc1dpdGhGb3JtYXQudW5zaGlmdCgnV2FybmluZzogJyArIGZvcm1hdCk7IC8vIFdlIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIHNwcmVhZCAob3IgLmFwcGx5KSBkaXJlY3RseSBiZWNhdXNlIGl0XG4gICAgLy8gYnJlYWtzIElFOTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzYxMFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmdcblxuICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGNvbnNvbGVbbGV2ZWxdLCBjb25zb2xlLCBhcmdzV2l0aEZvcm1hdCk7XG4gIH1cbn1cblxudmFyIEZ1bmN0aW9uQ29tcG9uZW50ID0gMDtcbnZhciBDbGFzc0NvbXBvbmVudCA9IDE7XG52YXIgSW5kZXRlcm1pbmF0ZUNvbXBvbmVudCA9IDI7IC8vIEJlZm9yZSB3ZSBrbm93IHdoZXRoZXIgaXQgaXMgZnVuY3Rpb24gb3IgY2xhc3NcblxudmFyIEhvc3RSb290ID0gMzsgLy8gUm9vdCBvZiBhIGhvc3QgdHJlZS4gQ291bGQgYmUgbmVzdGVkIGluc2lkZSBhbm90aGVyIG5vZGUuXG5cbnZhciBIb3N0UG9ydGFsID0gNDsgLy8gQSBzdWJ0cmVlLiBDb3VsZCBiZSBhbiBlbnRyeSBwb2ludCB0byBhIGRpZmZlcmVudCByZW5kZXJlci5cblxudmFyIEhvc3RDb21wb25lbnQgPSA1O1xudmFyIEhvc3RUZXh0ID0gNjtcbnZhciBGcmFnbWVudCA9IDc7XG52YXIgTW9kZSA9IDg7XG52YXIgQ29udGV4dENvbnN1bWVyID0gOTtcbnZhciBDb250ZXh0UHJvdmlkZXIgPSAxMDtcbnZhciBGb3J3YXJkUmVmID0gMTE7XG52YXIgUHJvZmlsZXIgPSAxMjtcbnZhciBTdXNwZW5zZUNvbXBvbmVudCA9IDEzO1xudmFyIE1lbW9Db21wb25lbnQgPSAxNDtcbnZhciBTaW1wbGVNZW1vQ29tcG9uZW50ID0gMTU7XG52YXIgTGF6eUNvbXBvbmVudCA9IDE2O1xudmFyIEluY29tcGxldGVDbGFzc0NvbXBvbmVudCA9IDE3O1xudmFyIERlaHlkcmF0ZWRGcmFnbWVudCA9IDE4O1xudmFyIFN1c3BlbnNlTGlzdENvbXBvbmVudCA9IDE5O1xudmFyIFNjb3BlQ29tcG9uZW50ID0gMjE7XG52YXIgT2Zmc2NyZWVuQ29tcG9uZW50ID0gMjI7XG52YXIgTGVnYWN5SGlkZGVuQ29tcG9uZW50ID0gMjM7XG52YXIgQ2FjaGVDb21wb25lbnQgPSAyNDtcbnZhciBUcmFjaW5nTWFya2VyQ29tcG9uZW50ID0gMjU7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG52YXIgZW5hYmxlQ2xpZW50UmVuZGVyRmFsbGJhY2tPblRleHRNaXNtYXRjaCA9IHRydWU7IC8vIFJlY29pbCBzdGlsbCB1c2VzIHVzZU11dGFibGVTb3VyY2UgaW4gd3d3LCBuZWVkIHRvIGRlbGV0ZVxuLy8gdGhlIHJlYWN0LXJlY29uY2lsZXIgcGFja2FnZS5cblxudmFyIGVuYWJsZU5ld1JlY29uY2lsZXIgPSBmYWxzZTsgLy8gU3VwcG9ydCBsZWdhY3kgUHJpbWVyIHN1cHBvcnQgb24gaW50ZXJuYWwgRkIgd3d3XG5cbnZhciBlbmFibGVMYXp5Q29udGV4dFByb3BhZ2F0aW9uID0gZmFsc2U7IC8vIEZCLW9ubHkgdXNhZ2UuIFRoZSBuZXcgQVBJIGhhcyBkaWZmZXJlbnQgc2VtYW50aWNzLlxuXG52YXIgZW5hYmxlTGVnYWN5SGlkZGVuID0gZmFsc2U7IC8vIEVuYWJsZXMgdW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2sgZmVhdHVyZSBpbiBGaWJlclxuXG52YXIgZW5hYmxlU3VzcGVuc2VBdm9pZFRoaXNGYWxsYmFjayA9IGZhbHNlOyAvLyBFbmFibGVzIHVuc3RhYmxlX2F2b2lkVGhpc0ZhbGxiYWNrIGZlYXR1cmUgaW4gRml6elxuLy8gUmVhY3QgRE9NIENob3BwaW5nIEJsb2NrXG4vL1xuLy8gU2ltaWxhciB0byBtYWluIENob3BwaW5nIEJsb2NrIGJ1dCBvbmx5IGZsYWdzIHJlbGF0ZWQgdG8gUmVhY3QgRE9NLiBUaGVzZSBhcmVcbi8vIGdyb3VwZWQgYmVjYXVzZSB3ZSB3aWxsIGxpa2VseSBiYXRjaCBhbGwgb2YgdGhlbSBpbnRvIGEgc2luZ2xlIG1ham9yIHJlbGVhc2UuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRGlzYWJsZSBzdXBwb3J0IGZvciBjb21tZW50IG5vZGVzIGFzIFJlYWN0IERPTSBjb250YWluZXJzLiBBbHJlYWR5IGRpc2FibGVkXG4vLyBpbiBvcGVuIHNvdXJjZSwgYnV0IHd3dyBjb2RlYmFzZSBzdGlsbCByZWxpZXMgb24gaXQuIE5lZWQgdG8gcmVtb3ZlLlxuXG52YXIgZGlzYWJsZUNvbW1lbnRzQXNET01Db250YWluZXJzID0gdHJ1ZTsgLy8gRGlzYWJsZSBqYXZhc2NyaXB0OiBVUkwgc3RyaW5ncyBpbiBocmVmIGZvciBYU1MgcHJvdGVjdGlvbi5cbi8vIGFuZCBjbGllbnQgcmVuZGVyaW5nLCBtb3N0bHkgdG8gYWxsb3cgSlNYIGF0dHJpYnV0ZXMgdG8gYXBwbHkgdG8gdGhlIGN1c3RvbVxuLy8gZWxlbWVudCdzIG9iamVjdCBwcm9wZXJ0aWVzIGluc3RlYWQgb2Ygb25seSBIVE1MIGF0dHJpYnV0ZXMuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzExMzQ3XG5cbnZhciBlbmFibGVDdXN0b21FbGVtZW50UHJvcGVydHlTdXBwb3J0ID0gZmFsc2U7IC8vIERpc2FibGVzIGNoaWxkcmVuIGZvciA8dGV4dGFyZWE+IGVsZW1lbnRzXG52YXIgd2FybkFib3V0U3RyaW5nUmVmcyA9IGZhbHNlOyAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRGVidWdnaW5nIGFuZCBEZXZUb29sc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEFkZHMgdXNlciB0aW1pbmcgbWFya3MgZm9yIGUuZy4gc3RhdGUgdXBkYXRlcywgc3VzcGVuc2UsIGFuZCB3b3JrIGxvb3Agc3R1ZmYsXG4vLyBmb3IgYW4gZXhwZXJpbWVudGFsIHRpbWVsaW5lIHRvb2wuXG5cbnZhciBlbmFibGVTY2hlZHVsaW5nUHJvZmlsZXIgPSB0cnVlOyAvLyBIZWxwcyBpZGVudGlmeSBzaWRlIGVmZmVjdHMgaW4gcmVuZGVyLXBoYXNlIGxpZmVjeWNsZSBob29rcyBhbmQgc2V0U3RhdGVcblxudmFyIGVuYWJsZVByb2ZpbGVyVGltZXIgPSB0cnVlOyAvLyBSZWNvcmQgZHVyYXRpb25zIGZvciBjb21taXQgYW5kIHBhc3NpdmUgZWZmZWN0cyBwaGFzZXMuXG5cbnZhciBlbmFibGVQcm9maWxlckNvbW1pdEhvb2tzID0gdHJ1ZTsgLy8gUGhhc2UgcGFyYW0gcGFzc2VkIHRvIG9uUmVuZGVyIGNhbGxiYWNrIGRpZmZlcmVudGlhdGVzIGJldHdlZW4gYW4gXCJ1cGRhdGVcIiBhbmQgYSBcImNhc2NhZGluZy11cGRhdGVcIi5cblxudmFyIGFsbE5hdGl2ZUV2ZW50cyA9IG5ldyBTZXQoKTtcbi8qKlxuICogTWFwcGluZyBmcm9tIHJlZ2lzdHJhdGlvbiBuYW1lIHRvIGV2ZW50IG5hbWVcbiAqL1xuXG5cbnZhciByZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzID0ge307XG4vKipcbiAqIE1hcHBpbmcgZnJvbSBsb3dlcmNhc2UgcmVnaXN0cmF0aW9uIG5hbWVzIHRvIHRoZSBwcm9wZXJseSBjYXNlZCB2ZXJzaW9uLFxuICogdXNlZCB0byB3YXJuIGluIHRoZSBjYXNlIG9mIG1pc3NpbmcgZXZlbnQgaGFuZGxlcnMuIEF2YWlsYWJsZVxuICogb25seSBpbiB0cnVlLlxuICogQHR5cGUge09iamVjdH1cbiAqL1xuXG52YXIgcG9zc2libGVSZWdpc3RyYXRpb25OYW1lcyA9ICB7fSA7IC8vIFRydXN0IHRoZSBkZXZlbG9wZXIgdG8gb25seSB1c2UgcG9zc2libGVSZWdpc3RyYXRpb25OYW1lcyBpbiB0cnVlXG5cbmZ1bmN0aW9uIHJlZ2lzdGVyVHdvUGhhc2VFdmVudChyZWdpc3RyYXRpb25OYW1lLCBkZXBlbmRlbmNpZXMpIHtcbiAgcmVnaXN0ZXJEaXJlY3RFdmVudChyZWdpc3RyYXRpb25OYW1lLCBkZXBlbmRlbmNpZXMpO1xuICByZWdpc3RlckRpcmVjdEV2ZW50KHJlZ2lzdHJhdGlvbk5hbWUgKyAnQ2FwdHVyZScsIGRlcGVuZGVuY2llcyk7XG59XG5mdW5jdGlvbiByZWdpc3RlckRpcmVjdEV2ZW50KHJlZ2lzdHJhdGlvbk5hbWUsIGRlcGVuZGVuY2llcykge1xuICB7XG4gICAgaWYgKHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXNbcmVnaXN0cmF0aW9uTmFtZV0pIHtcbiAgICAgIGVycm9yKCdFdmVudFJlZ2lzdHJ5OiBNb3JlIHRoYW4gb25lIHBsdWdpbiBhdHRlbXB0ZWQgdG8gcHVibGlzaCB0aGUgc2FtZSAnICsgJ3JlZ2lzdHJhdGlvbiBuYW1lLCBgJXNgLicsIHJlZ2lzdHJhdGlvbk5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXNbcmVnaXN0cmF0aW9uTmFtZV0gPSBkZXBlbmRlbmNpZXM7XG5cbiAge1xuICAgIHZhciBsb3dlckNhc2VkTmFtZSA9IHJlZ2lzdHJhdGlvbk5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzW2xvd2VyQ2FzZWROYW1lXSA9IHJlZ2lzdHJhdGlvbk5hbWU7XG5cbiAgICBpZiAocmVnaXN0cmF0aW9uTmFtZSA9PT0gJ29uRG91YmxlQ2xpY2snKSB7XG4gICAgICBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzLm9uZGJsY2xpY2sgPSByZWdpc3RyYXRpb25OYW1lO1xuICAgIH1cbiAgfVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZGVwZW5kZW5jaWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgYWxsTmF0aXZlRXZlbnRzLmFkZChkZXBlbmRlbmNpZXNbaV0pO1xuICB9XG59XG5cbnZhciBjYW5Vc2VET00gPSAhISh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygd2luZG93LmRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgIT09ICd1bmRlZmluZWQnKTtcblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxuLypcbiAqIFRoZSBgJycgKyB2YWx1ZWAgcGF0dGVybiAodXNlZCBpbiBpbiBwZXJmLXNlbnNpdGl2ZSBjb2RlKSB0aHJvd3MgZm9yIFN5bWJvbFxuICogYW5kIFRlbXBvcmFsLiogdHlwZXMuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8yMjA2NC5cbiAqXG4gKiBUaGUgZnVuY3Rpb25zIGluIHRoaXMgbW9kdWxlIHdpbGwgdGhyb3cgYW4gZWFzaWVyLXRvLXVuZGVyc3RhbmQsXG4gKiBlYXNpZXItdG8tZGVidWcgZXhjZXB0aW9uIHdpdGggYSBjbGVhciBlcnJvcnMgbWVzc2FnZSBtZXNzYWdlIGV4cGxhaW5pbmcgdGhlXG4gKiBwcm9ibGVtLiAoSW5zdGVhZCBvZiBhIGNvbmZ1c2luZyBleGNlcHRpb24gdGhyb3duIGluc2lkZSB0aGUgaW1wbGVtZW50YXRpb25cbiAqIG9mIHRoZSBgdmFsdWVgIG9iamVjdCkuXG4gKi9cbi8vICRGbG93Rml4TWUgb25seSBjYWxsZWQgaW4gREVWLCBzbyB2b2lkIHJldHVybiBpcyBub3QgcG9zc2libGUuXG5mdW5jdGlvbiB0eXBlTmFtZSh2YWx1ZSkge1xuICB7XG4gICAgLy8gdG9TdHJpbmdUYWcgaXMgbmVlZGVkIGZvciBuYW1lc3BhY2VkIHR5cGVzIGxpa2UgVGVtcG9yYWwuSW5zdGFudFxuICAgIHZhciBoYXNUb1N0cmluZ1RhZyA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLnRvU3RyaW5nVGFnO1xuICAgIHZhciB0eXBlID0gaGFzVG9TdHJpbmdUYWcgJiYgdmFsdWVbU3ltYm9sLnRvU3RyaW5nVGFnXSB8fCB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lIHx8ICdPYmplY3QnO1xuICAgIHJldHVybiB0eXBlO1xuICB9XG59IC8vICRGbG93Rml4TWUgb25seSBjYWxsZWQgaW4gREVWLCBzbyB2b2lkIHJldHVybiBpcyBub3QgcG9zc2libGUuXG5cblxuZnVuY3Rpb24gd2lsbENvZXJjaW9uVGhyb3codmFsdWUpIHtcbiAge1xuICAgIHRyeSB7XG4gICAgICB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpIHtcbiAgLy8gSWYgeW91IGVuZGVkIHVwIGhlcmUgYnkgZm9sbG93aW5nIGFuIGV4Y2VwdGlvbiBjYWxsIHN0YWNrLCBoZXJlJ3Mgd2hhdCdzXG4gIC8vIGhhcHBlbmVkOiB5b3Ugc3VwcGxpZWQgYW4gb2JqZWN0IG9yIHN5bWJvbCB2YWx1ZSB0byBSZWFjdCAoYXMgYSBwcm9wLCBrZXksXG4gIC8vIERPTSBhdHRyaWJ1dGUsIENTUyBwcm9wZXJ0eSwgc3RyaW5nIHJlZiwgZXRjLikgYW5kIHdoZW4gUmVhY3QgdHJpZWQgdG9cbiAgLy8gY29lcmNlIGl0IHRvIGEgc3RyaW5nIHVzaW5nIGAnJyArIHZhbHVlYCwgYW4gZXhjZXB0aW9uIHdhcyB0aHJvd24uXG4gIC8vXG4gIC8vIFRoZSBtb3N0IGNvbW1vbiB0eXBlcyB0aGF0IHdpbGwgY2F1c2UgdGhpcyBleGNlcHRpb24gYXJlIGBTeW1ib2xgIGluc3RhbmNlc1xuICAvLyBhbmQgVGVtcG9yYWwgb2JqZWN0cyBsaWtlIGBUZW1wb3JhbC5JbnN0YW50YC4gQnV0IGFueSBvYmplY3QgdGhhdCBoYXMgYVxuICAvLyBgdmFsdWVPZmAgb3IgYFtTeW1ib2wudG9QcmltaXRpdmVdYCBtZXRob2QgdGhhdCB0aHJvd3Mgd2lsbCBhbHNvIGNhdXNlIHRoaXNcbiAgLy8gZXhjZXB0aW9uLiAoTGlicmFyeSBhdXRob3JzIGRvIHRoaXMgdG8gcHJldmVudCB1c2VycyBmcm9tIHVzaW5nIGJ1aWx0LWluXG4gIC8vIG51bWVyaWMgb3BlcmF0b3JzIGxpa2UgYCtgIG9yIGNvbXBhcmlzb24gb3BlcmF0b3JzIGxpa2UgYD49YCBiZWNhdXNlIGN1c3RvbVxuICAvLyBtZXRob2RzIGFyZSBuZWVkZWQgdG8gcGVyZm9ybSBhY2N1cmF0ZSBhcml0aG1ldGljIG9yIGNvbXBhcmlzb24uKVxuICAvL1xuICAvLyBUbyBmaXggdGhlIHByb2JsZW0sIGNvZXJjZSB0aGlzIG9iamVjdCBvciBzeW1ib2wgdmFsdWUgdG8gYSBzdHJpbmcgYmVmb3JlXG4gIC8vIHBhc3NpbmcgaXQgdG8gUmVhY3QuIFRoZSBtb3N0IHJlbGlhYmxlIHdheSBpcyB1c3VhbGx5IGBTdHJpbmcodmFsdWUpYC5cbiAgLy9cbiAgLy8gVG8gZmluZCB3aGljaCB2YWx1ZSBpcyB0aHJvd2luZywgY2hlY2sgdGhlIGJyb3dzZXIgb3IgZGVidWdnZXIgY29uc29sZS5cbiAgLy8gQmVmb3JlIHRoaXMgZXhjZXB0aW9uIHdhcyB0aHJvd24sIHRoZXJlIHNob3VsZCBiZSBgY29uc29sZS5lcnJvcmAgb3V0cHV0XG4gIC8vIHRoYXQgc2hvd3MgdGhlIHR5cGUgKFN5bWJvbCwgVGVtcG9yYWwuUGxhaW5EYXRlLCBldGMuKSB0aGF0IGNhdXNlZCB0aGVcbiAgLy8gcHJvYmxlbSBhbmQgaG93IHRoYXQgdHlwZSB3YXMgdXNlZDoga2V5LCBhdHJyaWJ1dGUsIGlucHV0IHZhbHVlIHByb3AsIGV0Yy5cbiAgLy8gSW4gbW9zdCBjYXNlcywgdGhpcyBjb25zb2xlIG91dHB1dCBhbHNvIHNob3dzIHRoZSBjb21wb25lbnQgYW5kIGl0c1xuICAvLyBhbmNlc3RvciBjb21wb25lbnRzIHdoZXJlIHRoZSBleGNlcHRpb24gaGFwcGVuZWQuXG4gIC8vXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuICByZXR1cm4gJycgKyB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwgYXR0cmlidXRlTmFtZSkge1xuICB7XG4gICAgaWYgKHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSkge1xuICAgICAgZXJyb3IoJ1RoZSBwcm92aWRlZCBgJXNgIGF0dHJpYnV0ZSBpcyBhbiB1bnN1cHBvcnRlZCB0eXBlICVzLicgKyAnIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSBiZWZvcmUgdXNpbmcgaXQgaGVyZS4nLCBhdHRyaWJ1dGVOYW1lLCB0eXBlTmFtZSh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsgLy8gdGhyb3cgKHRvIGhlbHAgY2FsbGVycyBmaW5kIHRyb3VibGVzaG9vdGluZyBjb21tZW50cylcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24odmFsdWUpIHtcbiAge1xuICAgIGlmICh3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkpIHtcbiAgICAgIGVycm9yKCdUaGUgcHJvdmlkZWQga2V5IGlzIGFuIHVuc3VwcG9ydGVkIHR5cGUgJXMuJyArICcgVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIGJlZm9yZSB1c2luZyBpdCBoZXJlLicsIHR5cGVOYW1lKHZhbHVlKSk7XG5cbiAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpOyAvLyB0aHJvdyAodG8gaGVscCBjYWxsZXJzIGZpbmQgdHJvdWJsZXNob290aW5nIGNvbW1lbnRzKVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gY2hlY2tQcm9wU3RyaW5nQ29lcmNpb24odmFsdWUsIHByb3BOYW1lKSB7XG4gIHtcbiAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKSB7XG4gICAgICBlcnJvcignVGhlIHByb3ZpZGVkIGAlc2AgcHJvcCBpcyBhbiB1bnN1cHBvcnRlZCB0eXBlICVzLicgKyAnIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSBiZWZvcmUgdXNpbmcgaXQgaGVyZS4nLCBwcm9wTmFtZSwgdHlwZU5hbWUodmFsdWUpKTtcblxuICAgICAgcmV0dXJuIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7IC8vIHRocm93ICh0byBoZWxwIGNhbGxlcnMgZmluZCB0cm91Ymxlc2hvb3RpbmcgY29tbWVudHMpXG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBjaGVja0NTU1Byb3BlcnR5U3RyaW5nQ29lcmNpb24odmFsdWUsIHByb3BOYW1lKSB7XG4gIHtcbiAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKSB7XG4gICAgICBlcnJvcignVGhlIHByb3ZpZGVkIGAlc2AgQ1NTIHByb3BlcnR5IGlzIGFuIHVuc3VwcG9ydGVkIHR5cGUgJXMuJyArICcgVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIGJlZm9yZSB1c2luZyBpdCBoZXJlLicsIHByb3BOYW1lLCB0eXBlTmFtZSh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsgLy8gdGhyb3cgKHRvIGhlbHAgY2FsbGVycyBmaW5kIHRyb3VibGVzaG9vdGluZyBjb21tZW50cylcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGNoZWNrSHRtbFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIHtcbiAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKSB7XG4gICAgICBlcnJvcignVGhlIHByb3ZpZGVkIEhUTUwgbWFya3VwIHVzZXMgYSB2YWx1ZSBvZiB1bnN1cHBvcnRlZCB0eXBlICVzLicgKyAnIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSBiZWZvcmUgdXNpbmcgaXQgaGVyZS4nLCB0eXBlTmFtZSh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsgLy8gdGhyb3cgKHRvIGhlbHAgY2FsbGVycyBmaW5kIHRyb3VibGVzaG9vdGluZyBjb21tZW50cylcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGNoZWNrRm9ybUZpZWxkVmFsdWVTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICB7XG4gICAgaWYgKHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSkge1xuICAgICAgZXJyb3IoJ0Zvcm0gZmllbGQgdmFsdWVzICh2YWx1ZSwgY2hlY2tlZCwgZGVmYXVsdFZhbHVlLCBvciBkZWZhdWx0Q2hlY2tlZCBwcm9wcyknICsgJyBtdXN0IGJlIHN0cmluZ3MsIG5vdCAlcy4nICsgJyBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgYmVmb3JlIHVzaW5nIGl0IGhlcmUuJywgdHlwZU5hbWUodmFsdWUpKTtcblxuICAgICAgcmV0dXJuIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7IC8vIHRocm93ICh0byBoZWxwIGNhbGxlcnMgZmluZCB0cm91Ymxlc2hvb3RpbmcgY29tbWVudHMpXG4gICAgfVxuICB9XG59XG5cbi8vIEEgcmVzZXJ2ZWQgYXR0cmlidXRlLlxuLy8gSXQgaXMgaGFuZGxlZCBieSBSZWFjdCBzZXBhcmF0ZWx5IGFuZCBzaG91bGRuJ3QgYmUgd3JpdHRlbiB0byB0aGUgRE9NLlxudmFyIFJFU0VSVkVEID0gMDsgLy8gQSBzaW1wbGUgc3RyaW5nIGF0dHJpYnV0ZS5cbi8vIEF0dHJpYnV0ZXMgdGhhdCBhcmVuJ3QgaW4gdGhlIGZpbHRlciBhcmUgcHJlc3VtZWQgdG8gaGF2ZSB0aGlzIHR5cGUuXG5cbnZhciBTVFJJTkcgPSAxOyAvLyBBIHN0cmluZyBhdHRyaWJ1dGUgdGhhdCBhY2NlcHRzIGJvb2xlYW5zIGluIFJlYWN0LiBJbiBIVE1MLCB0aGVzZSBhcmUgY2FsbGVkXG4vLyBcImVudW1lcmF0ZWRcIiBhdHRyaWJ1dGVzIHdpdGggXCJ0cnVlXCIgYW5kIFwiZmFsc2VcIiBhcyBwb3NzaWJsZSB2YWx1ZXMuXG4vLyBXaGVuIHRydWUsIGl0IHNob3VsZCBiZSBzZXQgdG8gYSBcInRydWVcIiBzdHJpbmcuXG4vLyBXaGVuIGZhbHNlLCBpdCBzaG91bGQgYmUgc2V0IHRvIGEgXCJmYWxzZVwiIHN0cmluZy5cblxudmFyIEJPT0xFQU5JU0hfU1RSSU5HID0gMjsgLy8gQSByZWFsIGJvb2xlYW4gYXR0cmlidXRlLlxuLy8gV2hlbiB0cnVlLCBpdCBzaG91bGQgYmUgcHJlc2VudCAoc2V0IGVpdGhlciB0byBhbiBlbXB0eSBzdHJpbmcgb3IgaXRzIG5hbWUpLlxuLy8gV2hlbiBmYWxzZSwgaXQgc2hvdWxkIGJlIG9taXR0ZWQuXG5cbnZhciBCT09MRUFOID0gMzsgLy8gQW4gYXR0cmlidXRlIHRoYXQgY2FuIGJlIHVzZWQgYXMgYSBmbGFnIGFzIHdlbGwgYXMgd2l0aCBhIHZhbHVlLlxuLy8gV2hlbiB0cnVlLCBpdCBzaG91bGQgYmUgcHJlc2VudCAoc2V0IGVpdGhlciB0byBhbiBlbXB0eSBzdHJpbmcgb3IgaXRzIG5hbWUpLlxuLy8gV2hlbiBmYWxzZSwgaXQgc2hvdWxkIGJlIG9taXR0ZWQuXG4vLyBGb3IgYW55IG90aGVyIHZhbHVlLCBzaG91bGQgYmUgcHJlc2VudCB3aXRoIHRoYXQgdmFsdWUuXG5cbnZhciBPVkVSTE9BREVEX0JPT0xFQU4gPSA0OyAvLyBBbiBhdHRyaWJ1dGUgdGhhdCBtdXN0IGJlIG51bWVyaWMgb3IgcGFyc2UgYXMgYSBudW1lcmljLlxuLy8gV2hlbiBmYWxzeSwgaXQgc2hvdWxkIGJlIHJlbW92ZWQuXG5cbnZhciBOVU1FUklDID0gNTsgLy8gQW4gYXR0cmlidXRlIHRoYXQgbXVzdCBiZSBwb3NpdGl2ZSBudW1lcmljIG9yIHBhcnNlIGFzIGEgcG9zaXRpdmUgbnVtZXJpYy5cbi8vIFdoZW4gZmFsc3ksIGl0IHNob3VsZCBiZSByZW1vdmVkLlxuXG52YXIgUE9TSVRJVkVfTlVNRVJJQyA9IDY7XG5cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbnZhciBBVFRSSUJVVEVfTkFNRV9TVEFSVF9DSEFSID0gXCI6QS1aX2EtelxcXFx1MDBDMC1cXFxcdTAwRDZcXFxcdTAwRDgtXFxcXHUwMEY2XFxcXHUwMEY4LVxcXFx1MDJGRlxcXFx1MDM3MC1cXFxcdTAzN0RcXFxcdTAzN0YtXFxcXHUxRkZGXFxcXHUyMDBDLVxcXFx1MjAwRFxcXFx1MjA3MC1cXFxcdTIxOEZcXFxcdTJDMDAtXFxcXHUyRkVGXFxcXHUzMDAxLVxcXFx1RDdGRlxcXFx1RjkwMC1cXFxcdUZEQ0ZcXFxcdUZERjAtXFxcXHVGRkZEXCI7XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4gKi9cblxudmFyIEFUVFJJQlVURV9OQU1FX0NIQVIgPSBBVFRSSUJVVEVfTkFNRV9TVEFSVF9DSEFSICsgXCJcXFxcLS4wLTlcXFxcdTAwQjdcXFxcdTAzMDAtXFxcXHUwMzZGXFxcXHUyMDNGLVxcXFx1MjA0MFwiO1xudmFyIFZBTElEX0FUVFJJQlVURV9OQU1FX1JFR0VYID0gbmV3IFJlZ0V4cCgnXlsnICsgQVRUUklCVVRFX05BTUVfU1RBUlRfQ0hBUiArICddWycgKyBBVFRSSUJVVEVfTkFNRV9DSEFSICsgJ10qJCcpO1xudmFyIGlsbGVnYWxBdHRyaWJ1dGVOYW1lQ2FjaGUgPSB7fTtcbnZhciB2YWxpZGF0ZWRBdHRyaWJ1dGVOYW1lQ2FjaGUgPSB7fTtcbmZ1bmN0aW9uIGlzQXR0cmlidXRlTmFtZVNhZmUoYXR0cmlidXRlTmFtZSkge1xuICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbCh2YWxpZGF0ZWRBdHRyaWJ1dGVOYW1lQ2FjaGUsIGF0dHJpYnV0ZU5hbWUpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChpbGxlZ2FsQXR0cmlidXRlTmFtZUNhY2hlLCBhdHRyaWJ1dGVOYW1lKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChWQUxJRF9BVFRSSUJVVEVfTkFNRV9SRUdFWC50ZXN0KGF0dHJpYnV0ZU5hbWUpKSB7XG4gICAgdmFsaWRhdGVkQXR0cmlidXRlTmFtZUNhY2hlW2F0dHJpYnV0ZU5hbWVdID0gdHJ1ZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlsbGVnYWxBdHRyaWJ1dGVOYW1lQ2FjaGVbYXR0cmlidXRlTmFtZV0gPSB0cnVlO1xuXG4gIHtcbiAgICBlcnJvcignSW52YWxpZCBhdHRyaWJ1dGUgbmFtZTogYCVzYCcsIGF0dHJpYnV0ZU5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gc2hvdWxkSWdub3JlQXR0cmlidXRlKG5hbWUsIHByb3BlcnR5SW5mbywgaXNDdXN0b21Db21wb25lbnRUYWcpIHtcbiAgaWYgKHByb3BlcnR5SW5mbyAhPT0gbnVsbCkge1xuICAgIHJldHVybiBwcm9wZXJ0eUluZm8udHlwZSA9PT0gUkVTRVJWRUQ7XG4gIH1cblxuICBpZiAoaXNDdXN0b21Db21wb25lbnRUYWcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAobmFtZS5sZW5ndGggPiAyICYmIChuYW1lWzBdID09PSAnbycgfHwgbmFtZVswXSA9PT0gJ08nKSAmJiAobmFtZVsxXSA9PT0gJ24nIHx8IG5hbWVbMV0gPT09ICdOJykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIHNob3VsZFJlbW92ZUF0dHJpYnV0ZVdpdGhXYXJuaW5nKG5hbWUsIHZhbHVlLCBwcm9wZXJ0eUluZm8sIGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG4gIGlmIChwcm9wZXJ0eUluZm8gIT09IG51bGwgJiYgcHJvcGVydHlJbmZvLnR5cGUgPT09IFJFU0VSVkVEKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICBjYXNlICdmdW5jdGlvbic6IC8vICRGbG93SXNzdWUgc3ltYm9sIGlzIHBlcmZlY3RseSB2YWxpZCBoZXJlXG5cbiAgICBjYXNlICdzeW1ib2wnOlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIHtcbiAgICAgICAgaWYgKGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb3BlcnR5SW5mbyAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiAhcHJvcGVydHlJbmZvLmFjY2VwdHNCb29sZWFucztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgcHJlZml4ID0gbmFtZS50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsIDUpO1xuICAgICAgICAgIHJldHVybiBwcmVmaXggIT09ICdkYXRhLScgJiYgcHJlZml4ICE9PSAnYXJpYS0nO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5mdW5jdGlvbiBzaG91bGRSZW1vdmVBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHByb3BlcnR5SW5mbywgaXNDdXN0b21Db21wb25lbnRUYWcpIHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChzaG91bGRSZW1vdmVBdHRyaWJ1dGVXaXRoV2FybmluZyhuYW1lLCB2YWx1ZSwgcHJvcGVydHlJbmZvLCBpc0N1c3RvbUNvbXBvbmVudFRhZykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChpc0N1c3RvbUNvbXBvbmVudFRhZykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChwcm9wZXJ0eUluZm8gIT09IG51bGwpIHtcblxuICAgIHN3aXRjaCAocHJvcGVydHlJbmZvLnR5cGUpIHtcbiAgICAgIGNhc2UgQk9PTEVBTjpcbiAgICAgICAgcmV0dXJuICF2YWx1ZTtcblxuICAgICAgY2FzZSBPVkVSTE9BREVEX0JPT0xFQU46XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gZmFsc2U7XG5cbiAgICAgIGNhc2UgTlVNRVJJQzpcbiAgICAgICAgcmV0dXJuIGlzTmFOKHZhbHVlKTtcblxuICAgICAgY2FzZSBQT1NJVElWRV9OVU1FUklDOlxuICAgICAgICByZXR1cm4gaXNOYU4odmFsdWUpIHx8IHZhbHVlIDwgMTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBnZXRQcm9wZXJ0eUluZm8obmFtZSkge1xuICByZXR1cm4gcHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSA/IHByb3BlcnRpZXNbbmFtZV0gOiBudWxsO1xufVxuXG5mdW5jdGlvbiBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgdHlwZSwgbXVzdFVzZVByb3BlcnR5LCBhdHRyaWJ1dGVOYW1lLCBhdHRyaWJ1dGVOYW1lc3BhY2UsIHNhbml0aXplVVJMLCByZW1vdmVFbXB0eVN0cmluZykge1xuICB0aGlzLmFjY2VwdHNCb29sZWFucyA9IHR5cGUgPT09IEJPT0xFQU5JU0hfU1RSSU5HIHx8IHR5cGUgPT09IEJPT0xFQU4gfHwgdHlwZSA9PT0gT1ZFUkxPQURFRF9CT09MRUFOO1xuICB0aGlzLmF0dHJpYnV0ZU5hbWUgPSBhdHRyaWJ1dGVOYW1lO1xuICB0aGlzLmF0dHJpYnV0ZU5hbWVzcGFjZSA9IGF0dHJpYnV0ZU5hbWVzcGFjZTtcbiAgdGhpcy5tdXN0VXNlUHJvcGVydHkgPSBtdXN0VXNlUHJvcGVydHk7XG4gIHRoaXMucHJvcGVydHlOYW1lID0gbmFtZTtcbiAgdGhpcy50eXBlID0gdHlwZTtcbiAgdGhpcy5zYW5pdGl6ZVVSTCA9IHNhbml0aXplVVJMO1xuICB0aGlzLnJlbW92ZUVtcHR5U3RyaW5nID0gcmVtb3ZlRW1wdHlTdHJpbmc7XG59IC8vIFdoZW4gYWRkaW5nIGF0dHJpYnV0ZXMgdG8gdGhpcyBsaXN0LCBiZSBzdXJlIHRvIGFsc28gYWRkIHRoZW0gdG9cbi8vIHRoZSBgcG9zc2libGVTdGFuZGFyZE5hbWVzYCBtb2R1bGUgdG8gZW5zdXJlIGNhc2luZyBhbmQgaW5jb3JyZWN0XG4vLyBuYW1lIHdhcm5pbmdzLlxuXG5cbnZhciBwcm9wZXJ0aWVzID0ge307IC8vIFRoZXNlIHByb3BzIGFyZSByZXNlcnZlZCBieSBSZWFjdC4gVGhleSBzaG91bGRuJ3QgYmUgd3JpdHRlbiB0byB0aGUgRE9NLlxuXG52YXIgcmVzZXJ2ZWRQcm9wcyA9IFsnY2hpbGRyZW4nLCAnZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwnLCAvLyBUT0RPOiBUaGlzIHByZXZlbnRzIHRoZSBhc3NpZ25tZW50IG9mIGRlZmF1bHRWYWx1ZSB0byByZWd1bGFyXG4vLyBlbGVtZW50cyAobm90IGp1c3QgaW5wdXRzKS4gTm93IHRoYXQgUmVhY3RET01JbnB1dCBhc3NpZ25zIHRvIHRoZVxuLy8gZGVmYXVsdFZhbHVlIHByb3BlcnR5IC0tIGRvIHdlIG5lZWQgdGhpcz9cbidkZWZhdWx0VmFsdWUnLCAnZGVmYXVsdENoZWNrZWQnLCAnaW5uZXJIVE1MJywgJ3N1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZycsICdzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcnLCAnc3R5bGUnXTtcblxucmVzZXJ2ZWRQcm9wcy5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gIHByb3BlcnRpZXNbbmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIFJFU0VSVkVELCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIG5hbWUsIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gQSBmZXcgUmVhY3Qgc3RyaW5nIGF0dHJpYnV0ZXMgaGF2ZSBhIGRpZmZlcmVudCBuYW1lLlxuLy8gVGhpcyBpcyBhIG1hcHBpbmcgZnJvbSBSZWFjdCBwcm9wIG5hbWVzIHRvIHRoZSBhdHRyaWJ1dGUgbmFtZXMuXG5cbltbJ2FjY2VwdENoYXJzZXQnLCAnYWNjZXB0LWNoYXJzZXQnXSwgWydjbGFzc05hbWUnLCAnY2xhc3MnXSwgWydodG1sRm9yJywgJ2ZvciddLCBbJ2h0dHBFcXVpdicsICdodHRwLWVxdWl2J11dLmZvckVhY2goZnVuY3Rpb24gKF9yZWYpIHtcbiAgdmFyIG5hbWUgPSBfcmVmWzBdLFxuICAgICAgYXR0cmlidXRlTmFtZSA9IF9yZWZbMV07XG4gIHByb3BlcnRpZXNbbmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIFNUUklORywgZmFsc2UsIC8vIG11c3RVc2VQcm9wZXJ0eVxuICBhdHRyaWJ1dGVOYW1lLCAvLyBhdHRyaWJ1dGVOYW1lXG4gIG51bGwsIC8vIGF0dHJpYnV0ZU5hbWVzcGFjZVxuICBmYWxzZSwgLy8gc2FuaXRpemVVUkxcbiAgZmFsc2UpO1xufSk7IC8vIFRoZXNlIGFyZSBcImVudW1lcmF0ZWRcIiBIVE1MIGF0dHJpYnV0ZXMgdGhhdCBhY2NlcHQgXCJ0cnVlXCIgYW5kIFwiZmFsc2VcIi5cbi8vIEluIFJlYWN0LCB3ZSBsZXQgdXNlcnMgcGFzcyBgdHJ1ZWAgYW5kIGBmYWxzZWAgZXZlbiB0aG91Z2ggdGVjaG5pY2FsbHlcbi8vIHRoZXNlIGFyZW4ndCBib29sZWFuIGF0dHJpYnV0ZXMgKHRoZXkgYXJlIGNvZXJjZWQgdG8gc3RyaW5ncykuXG5cblsnY29udGVudEVkaXRhYmxlJywgJ2RyYWdnYWJsZScsICdzcGVsbENoZWNrJywgJ3ZhbHVlJ10uZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBCT09MRUFOSVNIX1NUUklORywgZmFsc2UsIC8vIG11c3RVc2VQcm9wZXJ0eVxuICBuYW1lLnRvTG93ZXJDYXNlKCksIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gVGhlc2UgYXJlIFwiZW51bWVyYXRlZFwiIFNWRyBhdHRyaWJ1dGVzIHRoYXQgYWNjZXB0IFwidHJ1ZVwiIGFuZCBcImZhbHNlXCIuXG4vLyBJbiBSZWFjdCwgd2UgbGV0IHVzZXJzIHBhc3MgYHRydWVgIGFuZCBgZmFsc2VgIGV2ZW4gdGhvdWdoIHRlY2huaWNhbGx5XG4vLyB0aGVzZSBhcmVuJ3QgYm9vbGVhbiBhdHRyaWJ1dGVzICh0aGV5IGFyZSBjb2VyY2VkIHRvIHN0cmluZ3MpLlxuLy8gU2luY2UgdGhlc2UgYXJlIFNWRyBhdHRyaWJ1dGVzLCB0aGVpciBhdHRyaWJ1dGUgbmFtZXMgYXJlIGNhc2Utc2Vuc2l0aXZlLlxuXG5bJ2F1dG9SZXZlcnNlJywgJ2V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQnLCAnZm9jdXNhYmxlJywgJ3ByZXNlcnZlQWxwaGEnXS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gIHByb3BlcnRpZXNbbmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIEJPT0xFQU5JU0hfU1RSSU5HLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIG5hbWUsIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gVGhlc2UgYXJlIEhUTUwgYm9vbGVhbiBhdHRyaWJ1dGVzLlxuXG5bJ2FsbG93RnVsbFNjcmVlbicsICdhc3luYycsIC8vIE5vdGU6IHRoZXJlIGlzIGEgc3BlY2lhbCBjYXNlIHRoYXQgcHJldmVudHMgaXQgZnJvbSBiZWluZyB3cml0dGVuIHRvIHRoZSBET01cbi8vIG9uIHRoZSBjbGllbnQgc2lkZSBiZWNhdXNlIHRoZSBicm93c2VycyBhcmUgaW5jb25zaXN0ZW50LiBJbnN0ZWFkIHdlIGNhbGwgZm9jdXMoKS5cbidhdXRvRm9jdXMnLCAnYXV0b1BsYXknLCAnY29udHJvbHMnLCAnZGVmYXVsdCcsICdkZWZlcicsICdkaXNhYmxlZCcsICdkaXNhYmxlUGljdHVyZUluUGljdHVyZScsICdkaXNhYmxlUmVtb3RlUGxheWJhY2snLCAnZm9ybU5vVmFsaWRhdGUnLCAnaGlkZGVuJywgJ2xvb3AnLCAnbm9Nb2R1bGUnLCAnbm9WYWxpZGF0ZScsICdvcGVuJywgJ3BsYXlzSW5saW5lJywgJ3JlYWRPbmx5JywgJ3JlcXVpcmVkJywgJ3JldmVyc2VkJywgJ3Njb3BlZCcsICdzZWFtbGVzcycsIC8vIE1pY3JvZGF0YVxuJ2l0ZW1TY29wZSddLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgQk9PTEVBTiwgZmFsc2UsIC8vIG11c3RVc2VQcm9wZXJ0eVxuICBuYW1lLnRvTG93ZXJDYXNlKCksIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gVGhlc2UgYXJlIHRoZSBmZXcgUmVhY3QgcHJvcHMgdGhhdCB3ZSBzZXQgYXMgRE9NIHByb3BlcnRpZXNcbi8vIHJhdGhlciB0aGFuIGF0dHJpYnV0ZXMuIFRoZXNlIGFyZSBhbGwgYm9vbGVhbnMuXG5cblsnY2hlY2tlZCcsIC8vIE5vdGU6IGBvcHRpb24uc2VsZWN0ZWRgIGlzIG5vdCB1cGRhdGVkIGlmIGBzZWxlY3QubXVsdGlwbGVgIGlzXG4vLyBkaXNhYmxlZCB3aXRoIGByZW1vdmVBdHRyaWJ1dGVgLiBXZSBoYXZlIHNwZWNpYWwgbG9naWMgZm9yIGhhbmRsaW5nIHRoaXMuXG4nbXVsdGlwbGUnLCAnbXV0ZWQnLCAnc2VsZWN0ZWQnIC8vIE5PVEU6IGlmIHlvdSBhZGQgYSBjYW1lbENhc2VkIHByb3AgdG8gdGhpcyBsaXN0LFxuLy8geW91J2xsIG5lZWQgdG8gc2V0IGF0dHJpYnV0ZU5hbWUgdG8gbmFtZS50b0xvd2VyQ2FzZSgpXG4vLyBpbnN0ZWFkIGluIHRoZSBhc3NpZ25tZW50IGJlbG93LlxuXS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gIHByb3BlcnRpZXNbbmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIEJPT0xFQU4sIHRydWUsIC8vIG11c3RVc2VQcm9wZXJ0eVxuICBuYW1lLCAvLyBhdHRyaWJ1dGVOYW1lXG4gIG51bGwsIC8vIGF0dHJpYnV0ZU5hbWVzcGFjZVxuICBmYWxzZSwgLy8gc2FuaXRpemVVUkxcbiAgZmFsc2UpO1xufSk7IC8vIFRoZXNlIGFyZSBIVE1MIGF0dHJpYnV0ZXMgdGhhdCBhcmUgXCJvdmVybG9hZGVkIGJvb2xlYW5zXCI6IHRoZXkgYmVoYXZlIGxpa2Vcbi8vIGJvb2xlYW5zLCBidXQgY2FuIGFsc28gYWNjZXB0IGEgc3RyaW5nIHZhbHVlLlxuXG5bJ2NhcHR1cmUnLCAnZG93bmxvYWQnIC8vIE5PVEU6IGlmIHlvdSBhZGQgYSBjYW1lbENhc2VkIHByb3AgdG8gdGhpcyBsaXN0LFxuLy8geW91J2xsIG5lZWQgdG8gc2V0IGF0dHJpYnV0ZU5hbWUgdG8gbmFtZS50b0xvd2VyQ2FzZSgpXG4vLyBpbnN0ZWFkIGluIHRoZSBhc3NpZ25tZW50IGJlbG93LlxuXS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gIHByb3BlcnRpZXNbbmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIE9WRVJMT0FERURfQk9PTEVBTiwgZmFsc2UsIC8vIG11c3RVc2VQcm9wZXJ0eVxuICBuYW1lLCAvLyBhdHRyaWJ1dGVOYW1lXG4gIG51bGwsIC8vIGF0dHJpYnV0ZU5hbWVzcGFjZVxuICBmYWxzZSwgLy8gc2FuaXRpemVVUkxcbiAgZmFsc2UpO1xufSk7IC8vIFRoZXNlIGFyZSBIVE1MIGF0dHJpYnV0ZXMgdGhhdCBtdXN0IGJlIHBvc2l0aXZlIG51bWJlcnMuXG5cblsnY29scycsICdyb3dzJywgJ3NpemUnLCAnc3BhbicgLy8gTk9URTogaWYgeW91IGFkZCBhIGNhbWVsQ2FzZWQgcHJvcCB0byB0aGlzIGxpc3QsXG4vLyB5b3UnbGwgbmVlZCB0byBzZXQgYXR0cmlidXRlTmFtZSB0byBuYW1lLnRvTG93ZXJDYXNlKClcbi8vIGluc3RlYWQgaW4gdGhlIGFzc2lnbm1lbnQgYmVsb3cuXG5dLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgUE9TSVRJVkVfTlVNRVJJQywgZmFsc2UsIC8vIG11c3RVc2VQcm9wZXJ0eVxuICBuYW1lLCAvLyBhdHRyaWJ1dGVOYW1lXG4gIG51bGwsIC8vIGF0dHJpYnV0ZU5hbWVzcGFjZVxuICBmYWxzZSwgLy8gc2FuaXRpemVVUkxcbiAgZmFsc2UpO1xufSk7IC8vIFRoZXNlIGFyZSBIVE1MIGF0dHJpYnV0ZXMgdGhhdCBtdXN0IGJlIG51bWJlcnMuXG5cblsncm93U3BhbicsICdzdGFydCddLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgTlVNRVJJQywgZmFsc2UsIC8vIG11c3RVc2VQcm9wZXJ0eVxuICBuYW1lLnRvTG93ZXJDYXNlKCksIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTtcbnZhciBDQU1FTElaRSA9IC9bXFwtXFw6XShbYS16XSkvZztcblxudmFyIGNhcGl0YWxpemUgPSBmdW5jdGlvbiAodG9rZW4pIHtcbiAgcmV0dXJuIHRva2VuWzFdLnRvVXBwZXJDYXNlKCk7XG59OyAvLyBUaGlzIGlzIGEgbGlzdCBvZiBhbGwgU1ZHIGF0dHJpYnV0ZXMgdGhhdCBuZWVkIHNwZWNpYWwgY2FzaW5nLCBuYW1lc3BhY2luZyxcbi8vIG9yIGJvb2xlYW4gdmFsdWUgYXNzaWdubWVudC4gUmVndWxhciBhdHRyaWJ1dGVzIHRoYXQganVzdCBhY2NlcHQgc3RyaW5nc1xuLy8gYW5kIGhhdmUgdGhlIHNhbWUgbmFtZXMgYXJlIG9taXR0ZWQsIGp1c3QgbGlrZSBpbiB0aGUgSFRNTCBhdHRyaWJ1dGUgZmlsdGVyLlxuLy8gU29tZSBvZiB0aGVzZSBhdHRyaWJ1dGVzIGNhbiBiZSBoYXJkIHRvIGZpbmQuIFRoaXMgbGlzdCB3YXMgY3JlYXRlZCBieVxuLy8gc2NyYXBpbmcgdGhlIE1ETiBkb2N1bWVudGF0aW9uLlxuXG5cblsnYWNjZW50LWhlaWdodCcsICdhbGlnbm1lbnQtYmFzZWxpbmUnLCAnYXJhYmljLWZvcm0nLCAnYmFzZWxpbmUtc2hpZnQnLCAnY2FwLWhlaWdodCcsICdjbGlwLXBhdGgnLCAnY2xpcC1ydWxlJywgJ2NvbG9yLWludGVycG9sYXRpb24nLCAnY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzJywgJ2NvbG9yLXByb2ZpbGUnLCAnY29sb3ItcmVuZGVyaW5nJywgJ2RvbWluYW50LWJhc2VsaW5lJywgJ2VuYWJsZS1iYWNrZ3JvdW5kJywgJ2ZpbGwtb3BhY2l0eScsICdmaWxsLXJ1bGUnLCAnZmxvb2QtY29sb3InLCAnZmxvb2Qtb3BhY2l0eScsICdmb250LWZhbWlseScsICdmb250LXNpemUnLCAnZm9udC1zaXplLWFkanVzdCcsICdmb250LXN0cmV0Y2gnLCAnZm9udC1zdHlsZScsICdmb250LXZhcmlhbnQnLCAnZm9udC13ZWlnaHQnLCAnZ2x5cGgtbmFtZScsICdnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsJywgJ2dseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsJywgJ2hvcml6LWFkdi14JywgJ2hvcml6LW9yaWdpbi14JywgJ2ltYWdlLXJlbmRlcmluZycsICdsZXR0ZXItc3BhY2luZycsICdsaWdodGluZy1jb2xvcicsICdtYXJrZXItZW5kJywgJ21hcmtlci1taWQnLCAnbWFya2VyLXN0YXJ0JywgJ292ZXJsaW5lLXBvc2l0aW9uJywgJ292ZXJsaW5lLXRoaWNrbmVzcycsICdwYWludC1vcmRlcicsICdwYW5vc2UtMScsICdwb2ludGVyLWV2ZW50cycsICdyZW5kZXJpbmctaW50ZW50JywgJ3NoYXBlLXJlbmRlcmluZycsICdzdG9wLWNvbG9yJywgJ3N0b3Atb3BhY2l0eScsICdzdHJpa2V0aHJvdWdoLXBvc2l0aW9uJywgJ3N0cmlrZXRocm91Z2gtdGhpY2tuZXNzJywgJ3N0cm9rZS1kYXNoYXJyYXknLCAnc3Ryb2tlLWRhc2hvZmZzZXQnLCAnc3Ryb2tlLWxpbmVjYXAnLCAnc3Ryb2tlLWxpbmVqb2luJywgJ3N0cm9rZS1taXRlcmxpbWl0JywgJ3N0cm9rZS1vcGFjaXR5JywgJ3N0cm9rZS13aWR0aCcsICd0ZXh0LWFuY2hvcicsICd0ZXh0LWRlY29yYXRpb24nLCAndGV4dC1yZW5kZXJpbmcnLCAndW5kZXJsaW5lLXBvc2l0aW9uJywgJ3VuZGVybGluZS10aGlja25lc3MnLCAndW5pY29kZS1iaWRpJywgJ3VuaWNvZGUtcmFuZ2UnLCAndW5pdHMtcGVyLWVtJywgJ3YtYWxwaGFiZXRpYycsICd2LWhhbmdpbmcnLCAndi1pZGVvZ3JhcGhpYycsICd2LW1hdGhlbWF0aWNhbCcsICd2ZWN0b3ItZWZmZWN0JywgJ3ZlcnQtYWR2LXknLCAndmVydC1vcmlnaW4teCcsICd2ZXJ0LW9yaWdpbi15JywgJ3dvcmQtc3BhY2luZycsICd3cml0aW5nLW1vZGUnLCAneG1sbnM6eGxpbmsnLCAneC1oZWlnaHQnIC8vIE5PVEU6IGlmIHlvdSBhZGQgYSBjYW1lbENhc2VkIHByb3AgdG8gdGhpcyBsaXN0LFxuLy8geW91J2xsIG5lZWQgdG8gc2V0IGF0dHJpYnV0ZU5hbWUgdG8gbmFtZS50b0xvd2VyQ2FzZSgpXG4vLyBpbnN0ZWFkIGluIHRoZSBhc3NpZ25tZW50IGJlbG93LlxuXS5mb3JFYWNoKGZ1bmN0aW9uIChhdHRyaWJ1dGVOYW1lKSB7XG4gIHZhciBuYW1lID0gYXR0cmlidXRlTmFtZS5yZXBsYWNlKENBTUVMSVpFLCBjYXBpdGFsaXplKTtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgU1RSSU5HLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIGF0dHJpYnV0ZU5hbWUsIG51bGwsIC8vIGF0dHJpYnV0ZU5hbWVzcGFjZVxuICBmYWxzZSwgLy8gc2FuaXRpemVVUkxcbiAgZmFsc2UpO1xufSk7IC8vIFN0cmluZyBTVkcgYXR0cmlidXRlcyB3aXRoIHRoZSB4bGluayBuYW1lc3BhY2UuXG5cblsneGxpbms6YWN0dWF0ZScsICd4bGluazphcmNyb2xlJywgJ3hsaW5rOnJvbGUnLCAneGxpbms6c2hvdycsICd4bGluazp0aXRsZScsICd4bGluazp0eXBlJyAvLyBOT1RFOiBpZiB5b3UgYWRkIGEgY2FtZWxDYXNlZCBwcm9wIHRvIHRoaXMgbGlzdCxcbi8vIHlvdSdsbCBuZWVkIHRvIHNldCBhdHRyaWJ1dGVOYW1lIHRvIG5hbWUudG9Mb3dlckNhc2UoKVxuLy8gaW5zdGVhZCBpbiB0aGUgYXNzaWdubWVudCBiZWxvdy5cbl0uZm9yRWFjaChmdW5jdGlvbiAoYXR0cmlidXRlTmFtZSkge1xuICB2YXIgbmFtZSA9IGF0dHJpYnV0ZU5hbWUucmVwbGFjZShDQU1FTElaRSwgY2FwaXRhbGl6ZSk7XG4gIHByb3BlcnRpZXNbbmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIFNUUklORywgZmFsc2UsIC8vIG11c3RVc2VQcm9wZXJ0eVxuICBhdHRyaWJ1dGVOYW1lLCAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycsIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gU3RyaW5nIFNWRyBhdHRyaWJ1dGVzIHdpdGggdGhlIHhtbCBuYW1lc3BhY2UuXG5cblsneG1sOmJhc2UnLCAneG1sOmxhbmcnLCAneG1sOnNwYWNlJyAvLyBOT1RFOiBpZiB5b3UgYWRkIGEgY2FtZWxDYXNlZCBwcm9wIHRvIHRoaXMgbGlzdCxcbi8vIHlvdSdsbCBuZWVkIHRvIHNldCBhdHRyaWJ1dGVOYW1lIHRvIG5hbWUudG9Mb3dlckNhc2UoKVxuLy8gaW5zdGVhZCBpbiB0aGUgYXNzaWdubWVudCBiZWxvdy5cbl0uZm9yRWFjaChmdW5jdGlvbiAoYXR0cmlidXRlTmFtZSkge1xuICB2YXIgbmFtZSA9IGF0dHJpYnV0ZU5hbWUucmVwbGFjZShDQU1FTElaRSwgY2FwaXRhbGl6ZSk7XG4gIHByb3BlcnRpZXNbbmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIFNUUklORywgZmFsc2UsIC8vIG11c3RVc2VQcm9wZXJ0eVxuICBhdHRyaWJ1dGVOYW1lLCAnaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlJywgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBUaGVzZSBhdHRyaWJ1dGUgZXhpc3RzIGJvdGggaW4gSFRNTCBhbmQgU1ZHLlxuLy8gVGhlIGF0dHJpYnV0ZSBuYW1lIGlzIGNhc2Utc2Vuc2l0aXZlIGluIFNWRyBzbyB3ZSBjYW4ndCBqdXN0IHVzZVxuLy8gdGhlIFJlYWN0IG5hbWUgbGlrZSB3ZSBkbyBmb3IgYXR0cmlidXRlcyB0aGF0IGV4aXN0IG9ubHkgaW4gSFRNTC5cblxuWyd0YWJJbmRleCcsICdjcm9zc09yaWdpbiddLmZvckVhY2goZnVuY3Rpb24gKGF0dHJpYnV0ZU5hbWUpIHtcbiAgcHJvcGVydGllc1thdHRyaWJ1dGVOYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQoYXR0cmlidXRlTmFtZSwgU1RSSU5HLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIGF0dHJpYnV0ZU5hbWUudG9Mb3dlckNhc2UoKSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBUaGVzZSBhdHRyaWJ1dGVzIGFjY2VwdCBVUkxzLiBUaGVzZSBtdXN0IG5vdCBhbGxvdyBqYXZhc2NyaXB0OiBVUkxTLlxuLy8gVGhlc2Ugd2lsbCBhbHNvIG5lZWQgdG8gYWNjZXB0IFRydXN0ZWQgVHlwZXMgb2JqZWN0IGluIHRoZSBmdXR1cmUuXG5cbnZhciB4bGlua0hyZWYgPSAneGxpbmtIcmVmJztcbnByb3BlcnRpZXNbeGxpbmtIcmVmXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQoJ3hsaW5rSHJlZicsIFNUUklORywgZmFsc2UsIC8vIG11c3RVc2VQcm9wZXJ0eVxuJ3hsaW5rOmhyZWYnLCAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycsIHRydWUsIC8vIHNhbml0aXplVVJMXG5mYWxzZSk7XG5bJ3NyYycsICdocmVmJywgJ2FjdGlvbicsICdmb3JtQWN0aW9uJ10uZm9yRWFjaChmdW5jdGlvbiAoYXR0cmlidXRlTmFtZSkge1xuICBwcm9wZXJ0aWVzW2F0dHJpYnV0ZU5hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChhdHRyaWJ1dGVOYW1lLCBTVFJJTkcsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgYXR0cmlidXRlTmFtZS50b0xvd2VyQ2FzZSgpLCAvLyBhdHRyaWJ1dGVOYW1lXG4gIG51bGwsIC8vIGF0dHJpYnV0ZU5hbWVzcGFjZVxuICB0cnVlLCAvLyBzYW5pdGl6ZVVSTFxuICB0cnVlKTtcbn0pO1xuXG4vLyBhbmQgYW55IG5ld2xpbmUgb3IgdGFiIGFyZSBmaWx0ZXJlZCBvdXQgYXMgaWYgdGhleSdyZSBub3QgcGFydCBvZiB0aGUgVVJMLlxuLy8gaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyN1cmwtcGFyc2luZ1xuLy8gVGFiIG9yIG5ld2xpbmUgYXJlIGRlZmluZWQgYXMgXFxyXFxuXFx0OlxuLy8gaHR0cHM6Ly9pbmZyYS5zcGVjLndoYXR3Zy5vcmcvI2FzY2lpLXRhYi1vci1uZXdsaW5lXG4vLyBBIEMwIGNvbnRyb2wgaXMgYSBjb2RlIHBvaW50IGluIHRoZSByYW5nZSBcXHUwMDAwIE5VTEwgdG8gXFx1MDAxRlxuLy8gSU5GT1JNQVRJT04gU0VQQVJBVE9SIE9ORSwgaW5jbHVzaXZlOlxuLy8gaHR0cHM6Ly9pbmZyYS5zcGVjLndoYXR3Zy5vcmcvI2MwLWNvbnRyb2wtb3Itc3BhY2VcblxuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuXG52YXIgaXNKYXZhU2NyaXB0UHJvdG9jb2wgPSAvXltcXHUwMDAwLVxcdTAwMUYgXSpqW1xcclxcblxcdF0qYVtcXHJcXG5cXHRdKnZbXFxyXFxuXFx0XSphW1xcclxcblxcdF0qc1tcXHJcXG5cXHRdKmNbXFxyXFxuXFx0XSpyW1xcclxcblxcdF0qaVtcXHJcXG5cXHRdKnBbXFxyXFxuXFx0XSp0W1xcclxcblxcdF0qXFw6L2k7XG52YXIgZGlkV2FybiA9IGZhbHNlO1xuXG5mdW5jdGlvbiBzYW5pdGl6ZVVSTCh1cmwpIHtcbiAge1xuICAgIGlmICghZGlkV2FybiAmJiBpc0phdmFTY3JpcHRQcm90b2NvbC50ZXN0KHVybCkpIHtcbiAgICAgIGRpZFdhcm4gPSB0cnVlO1xuXG4gICAgICBlcnJvcignQSBmdXR1cmUgdmVyc2lvbiBvZiBSZWFjdCB3aWxsIGJsb2NrIGphdmFzY3JpcHQ6IFVSTHMgYXMgYSBzZWN1cml0eSBwcmVjYXV0aW9uLiAnICsgJ1VzZSBldmVudCBoYW5kbGVycyBpbnN0ZWFkIGlmIHlvdSBjYW4uIElmIHlvdSBuZWVkIHRvIGdlbmVyYXRlIHVuc2FmZSBIVE1MIHRyeSAnICsgJ3VzaW5nIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIGluc3RlYWQuIFJlYWN0IHdhcyBwYXNzZWQgJXMuJywgSlNPTi5zdHJpbmdpZnkodXJsKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogR2V0IHRoZSB2YWx1ZSBmb3IgYSBwcm9wZXJ0eSBvbiBhIG5vZGUuIE9ubHkgdXNlZCBpbiBERVYgZm9yIFNTUiB2YWxpZGF0aW9uLlxuICogVGhlIFwiZXhwZWN0ZWRcIiBhcmd1bWVudCBpcyB1c2VkIGFzIGEgaGludCBvZiB3aGF0IHRoZSBleHBlY3RlZCB2YWx1ZSBpcy5cbiAqIFNvbWUgcHJvcGVydGllcyBoYXZlIG11bHRpcGxlIGVxdWl2YWxlbnQgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBnZXRWYWx1ZUZvclByb3BlcnR5KG5vZGUsIG5hbWUsIGV4cGVjdGVkLCBwcm9wZXJ0eUluZm8pIHtcbiAge1xuICAgIGlmIChwcm9wZXJ0eUluZm8ubXVzdFVzZVByb3BlcnR5KSB7XG4gICAgICB2YXIgcHJvcGVydHlOYW1lID0gcHJvcGVydHlJbmZvLnByb3BlcnR5TmFtZTtcbiAgICAgIHJldHVybiBub2RlW3Byb3BlcnR5TmFtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoaXMgY2hlY2sgcHJvdGVjdHMgbXVsdGlwbGUgdXNlcyBvZiBgZXhwZWN0ZWRgLCB3aGljaCBpcyB3aHkgdGhlXG4gICAgICAvLyByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvbiBydWxlIGlzIGRpc2FibGVkIGluIHNldmVyYWwgc3BvdHNcbiAgICAgIC8vIGJlbG93LlxuICAgICAge1xuICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKGV4cGVjdGVkLCBuYW1lKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCBwcm9wZXJ0eUluZm8uc2FuaXRpemVVUkwpIHtcbiAgICAgICAgLy8gSWYgd2UgaGF2ZW4ndCBmdWxseSBkaXNhYmxlZCBqYXZhc2NyaXB0OiBVUkxzLCBhbmQgaWZcbiAgICAgICAgLy8gdGhlIGh5ZHJhdGlvbiBpcyBzdWNjZXNzZnVsIG9mIGEgamF2YXNjcmlwdDogVVJMLCB3ZVxuICAgICAgICAvLyBzdGlsbCB3YW50IHRvIHdhcm4gb24gdGhlIGNsaWVudC5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gICAgICAgIHNhbml0aXplVVJMKCcnICsgZXhwZWN0ZWQpO1xuICAgICAgfVxuXG4gICAgICB2YXIgYXR0cmlidXRlTmFtZSA9IHByb3BlcnR5SW5mby5hdHRyaWJ1dGVOYW1lO1xuICAgICAgdmFyIHN0cmluZ1ZhbHVlID0gbnVsbDtcblxuICAgICAgaWYgKHByb3BlcnR5SW5mby50eXBlID09PSBPVkVSTE9BREVEX0JPT0xFQU4pIHtcbiAgICAgICAgaWYgKG5vZGUuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpKSB7XG4gICAgICAgICAgdmFyIHZhbHVlID0gbm9kZS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG5cbiAgICAgICAgICBpZiAodmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlQXR0cmlidXRlKG5hbWUsIGV4cGVjdGVkLCBwcm9wZXJ0eUluZm8sIGZhbHNlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG5cblxuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJycgKyBleHBlY3RlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChub2RlLmhhc0F0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSkge1xuICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlQXR0cmlidXRlKG5hbWUsIGV4cGVjdGVkLCBwcm9wZXJ0eUluZm8sIGZhbHNlKSkge1xuICAgICAgICAgIC8vIFdlIGhhZCBhbiBhdHRyaWJ1dGUgYnV0IHNob3VsZG4ndCBoYXZlIGhhZCBvbmUsIHNvIHJlYWQgaXRcbiAgICAgICAgICAvLyBmb3IgdGhlIGVycm9yIG1lc3NhZ2UuXG4gICAgICAgICAgcmV0dXJuIG5vZGUuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb3BlcnR5SW5mby50eXBlID09PSBCT09MRUFOKSB7XG4gICAgICAgICAgLy8gSWYgdGhpcyB3YXMgYSBib29sZWFuLCBpdCBkb2Vzbid0IG1hdHRlciB3aGF0IHRoZSB2YWx1ZSBpc1xuICAgICAgICAgIC8vIHRoZSBmYWN0IHRoYXQgd2UgaGF2ZSBpdCBpcyB0aGUgc2FtZSBhcyB0aGUgZXhwZWN0ZWQuXG4gICAgICAgICAgcmV0dXJuIGV4cGVjdGVkO1xuICAgICAgICB9IC8vIEV2ZW4gaWYgdGhpcyBwcm9wZXJ0eSB1c2VzIGEgbmFtZXNwYWNlIHdlIHVzZSBnZXRBdHRyaWJ1dGVcbiAgICAgICAgLy8gYmVjYXVzZSB3ZSBhc3N1bWUgaXRzIG5hbWVzcGFjZWQgbmFtZSBpcyB0aGUgc2FtZSBhcyBvdXIgY29uZmlnLlxuICAgICAgICAvLyBUbyB1c2UgZ2V0QXR0cmlidXRlTlMgd2UgbmVlZCB0aGUgbG9jYWwgbmFtZSB3aGljaCB3ZSBkb24ndCBoYXZlXG4gICAgICAgIC8vIGluIG91ciBjb25maWcgYXRtLlxuXG5cbiAgICAgICAgc3RyaW5nVmFsdWUgPSBub2RlLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNob3VsZFJlbW92ZUF0dHJpYnV0ZShuYW1lLCBleHBlY3RlZCwgcHJvcGVydHlJbmZvLCBmYWxzZSkpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZ1ZhbHVlID09PSBudWxsID8gZXhwZWN0ZWQgOiBzdHJpbmdWYWx1ZTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gICAgICB9IGVsc2UgaWYgKHN0cmluZ1ZhbHVlID09PSAnJyArIGV4cGVjdGVkKSB7XG4gICAgICAgIHJldHVybiBleHBlY3RlZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBzdHJpbmdWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8qKlxuICogR2V0IHRoZSB2YWx1ZSBmb3IgYSBhdHRyaWJ1dGUgb24gYSBub2RlLiBPbmx5IHVzZWQgaW4gREVWIGZvciBTU1IgdmFsaWRhdGlvbi5cbiAqIFRoZSB0aGlyZCBhcmd1bWVudCBpcyB1c2VkIGFzIGEgaGludCBvZiB3aGF0IHRoZSBleHBlY3RlZCB2YWx1ZSBpcy4gU29tZVxuICogYXR0cmlidXRlcyBoYXZlIG11bHRpcGxlIGVxdWl2YWxlbnQgdmFsdWVzLlxuICovXG5cbmZ1bmN0aW9uIGdldFZhbHVlRm9yQXR0cmlidXRlKG5vZGUsIG5hbWUsIGV4cGVjdGVkKSB7XG4gIHtcbiAgICBpZiAoIWlzQXR0cmlidXRlTmFtZVNhZmUobmFtZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIW5vZGUuaGFzQXR0cmlidXRlKG5hbWUpKSB7XG4gICAgICByZXR1cm4gZXhwZWN0ZWQgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IG51bGw7XG4gICAgfVxuXG4gICAgdmFyIHZhbHVlID0gbm9kZS5nZXRBdHRyaWJ1dGUobmFtZSk7XG5cbiAgICB7XG4gICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKGV4cGVjdGVkLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPT09ICcnICsgZXhwZWN0ZWQpIHtcbiAgICAgIHJldHVybiBleHBlY3RlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cbi8qKlxuICogU2V0cyB0aGUgdmFsdWUgZm9yIGEgcHJvcGVydHkgb24gYSBub2RlLlxuICpcbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gbm9kZVxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqL1xuXG5mdW5jdGlvbiBzZXRWYWx1ZUZvclByb3BlcnR5KG5vZGUsIG5hbWUsIHZhbHVlLCBpc0N1c3RvbUNvbXBvbmVudFRhZykge1xuICB2YXIgcHJvcGVydHlJbmZvID0gZ2V0UHJvcGVydHlJbmZvKG5hbWUpO1xuXG4gIGlmIChzaG91bGRJZ25vcmVBdHRyaWJ1dGUobmFtZSwgcHJvcGVydHlJbmZvLCBpc0N1c3RvbUNvbXBvbmVudFRhZykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoc2hvdWxkUmVtb3ZlQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBwcm9wZXJ0eUluZm8sIGlzQ3VzdG9tQ29tcG9uZW50VGFnKSkge1xuICAgIHZhbHVlID0gbnVsbDtcbiAgfSAvLyBJZiB0aGUgcHJvcCBpc24ndCBpbiB0aGUgc3BlY2lhbCBsaXN0LCB0cmVhdCBpdCBhcyBhIHNpbXBsZSBhdHRyaWJ1dGUuXG5cblxuICBpZiAoaXNDdXN0b21Db21wb25lbnRUYWcgfHwgcHJvcGVydHlJbmZvID09PSBudWxsKSB7XG4gICAgaWYgKGlzQXR0cmlidXRlTmFtZVNhZmUobmFtZSkpIHtcbiAgICAgIHZhciBfYXR0cmlidXRlTmFtZSA9IG5hbWU7XG5cbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShfYXR0cmlidXRlTmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB7XG4gICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwgbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShfYXR0cmlidXRlTmFtZSwgICcnICsgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBtdXN0VXNlUHJvcGVydHkgPSBwcm9wZXJ0eUluZm8ubXVzdFVzZVByb3BlcnR5O1xuXG4gIGlmIChtdXN0VXNlUHJvcGVydHkpIHtcbiAgICB2YXIgcHJvcGVydHlOYW1lID0gcHJvcGVydHlJbmZvLnByb3BlcnR5TmFtZTtcblxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgdmFyIHR5cGUgPSBwcm9wZXJ0eUluZm8udHlwZTtcbiAgICAgIG5vZGVbcHJvcGVydHlOYW1lXSA9IHR5cGUgPT09IEJPT0xFQU4gPyBmYWxzZSA6ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb250cmFyeSB0byBgc2V0QXR0cmlidXRlYCwgb2JqZWN0IHByb3BlcnRpZXMgYXJlIHByb3Blcmx5XG4gICAgICAvLyBgdG9TdHJpbmdgZWQgYnkgSUU4LzkuXG4gICAgICBub2RlW3Byb3BlcnR5TmFtZV0gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH0gLy8gVGhlIHJlc3QgYXJlIHRyZWF0ZWQgYXMgYXR0cmlidXRlcyB3aXRoIHNwZWNpYWwgY2FzZXMuXG5cblxuICB2YXIgYXR0cmlidXRlTmFtZSA9IHByb3BlcnR5SW5mby5hdHRyaWJ1dGVOYW1lLFxuICAgICAgYXR0cmlidXRlTmFtZXNwYWNlID0gcHJvcGVydHlJbmZvLmF0dHJpYnV0ZU5hbWVzcGFjZTtcblxuICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgX3R5cGUgPSBwcm9wZXJ0eUluZm8udHlwZTtcbiAgICB2YXIgYXR0cmlidXRlVmFsdWU7XG5cbiAgICBpZiAoX3R5cGUgPT09IEJPT0xFQU4gfHwgX3R5cGUgPT09IE9WRVJMT0FERURfQk9PTEVBTiAmJiB2YWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgLy8gSWYgYXR0cmlidXRlIHR5cGUgaXMgYm9vbGVhbiwgd2Uga25vdyBmb3Igc3VyZSBpdCB3b24ndCBiZSBhbiBleGVjdXRpb24gc2lua1xuICAgICAgLy8gYW5kIHdlIHdvbid0IHJlcXVpcmUgVHJ1c3RlZCBUeXBlIGhlcmUuXG4gICAgICBhdHRyaWJ1dGVWYWx1ZSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBgc2V0QXR0cmlidXRlYCB3aXRoIG9iamVjdHMgYmVjb21lcyBvbmx5IGBbb2JqZWN0XWAgaW4gSUU4LzksXG4gICAgICAvLyAoJycgKyB2YWx1ZSkgbWFrZXMgaXQgb3V0cHV0IHRoZSBjb3JyZWN0IHRvU3RyaW5nKCktdmFsdWUuXG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBhdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gJycgKyB2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BlcnR5SW5mby5zYW5pdGl6ZVVSTCkge1xuICAgICAgICBzYW5pdGl6ZVVSTChhdHRyaWJ1dGVWYWx1ZS50b1N0cmluZygpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoYXR0cmlidXRlTmFtZXNwYWNlKSB7XG4gICAgICBub2RlLnNldEF0dHJpYnV0ZU5TKGF0dHJpYnV0ZU5hbWVzcGFjZSwgYXR0cmlidXRlTmFtZSwgYXR0cmlidXRlVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBub2RlLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLCBhdHRyaWJ1dGVWYWx1ZSk7XG4gICAgfVxuICB9XG59XG5cbi8vIEFUVEVOVElPTlxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuXG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpO1xudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucG9ydGFsJyk7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN0cmljdF9tb2RlJyk7XG52YXIgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb2ZpbGVyJyk7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb3ZpZGVyJyk7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuY29udGV4dCcpO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZScpO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKTtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJyk7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QubGF6eScpO1xudmFyIFJFQUNUX1NDT1BFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zY29wZScpO1xudmFyIFJFQUNUX0RFQlVHX1RSQUNJTkdfTU9ERV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZGVidWdfdHJhY2VfbW9kZScpO1xudmFyIFJFQUNUX09GRlNDUkVFTl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Qub2Zmc2NyZWVuJyk7XG52YXIgUkVBQ1RfTEVHQUNZX0hJRERFTl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QubGVnYWN5X2hpZGRlbicpO1xudmFyIFJFQUNUX0NBQ0hFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5jYWNoZScpO1xudmFyIFJFQUNUX1RSQUNJTkdfTUFSS0VSX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC50cmFjaW5nX21hcmtlcicpO1xudmFyIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IFN5bWJvbC5pdGVyYXRvcjtcbnZhciBGQVVYX0lURVJBVE9SX1NZTUJPTCA9ICdAQGl0ZXJhdG9yJztcbmZ1bmN0aW9uIGdldEl0ZXJhdG9yRm4obWF5YmVJdGVyYWJsZSkge1xuICBpZiAobWF5YmVJdGVyYWJsZSA9PT0gbnVsbCB8fCB0eXBlb2YgbWF5YmVJdGVyYWJsZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBtYXliZUl0ZXJhdG9yID0gTUFZQkVfSVRFUkFUT1JfU1lNQk9MICYmIG1heWJlSXRlcmFibGVbTUFZQkVfSVRFUkFUT1JfU1lNQk9MXSB8fCBtYXliZUl0ZXJhYmxlW0ZBVVhfSVRFUkFUT1JfU1lNQk9MXTtcblxuICBpZiAodHlwZW9mIG1heWJlSXRlcmF0b3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gbWF5YmVJdGVyYXRvcjtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG52YXIgYXNzaWduID0gT2JqZWN0LmFzc2lnbjtcblxuLy8gSGVscGVycyB0byBwYXRjaCBjb25zb2xlLmxvZ3MgdG8gYXZvaWQgbG9nZ2luZyBkdXJpbmcgc2lkZS1lZmZlY3QgZnJlZVxuLy8gcmVwbGF5aW5nIG9uIHJlbmRlciBmdW5jdGlvbi4gVGhpcyBjdXJyZW50bHkgb25seSBwYXRjaGVzIHRoZSBvYmplY3Rcbi8vIGxhemlseSB3aGljaCB3b24ndCBjb3ZlciBpZiB0aGUgbG9nIGZ1bmN0aW9uIHdhcyBleHRyYWN0ZWQgZWFnZXJseS5cbi8vIFdlIGNvdWxkIGFsc28gZWFnZXJseSBwYXRjaCB0aGUgbWV0aG9kLlxudmFyIGRpc2FibGVkRGVwdGggPSAwO1xudmFyIHByZXZMb2c7XG52YXIgcHJldkluZm87XG52YXIgcHJldldhcm47XG52YXIgcHJldkVycm9yO1xudmFyIHByZXZHcm91cDtcbnZhciBwcmV2R3JvdXBDb2xsYXBzZWQ7XG52YXIgcHJldkdyb3VwRW5kO1xuXG5mdW5jdGlvbiBkaXNhYmxlZExvZygpIHt9XG5cbmRpc2FibGVkTG9nLl9fcmVhY3REaXNhYmxlZExvZyA9IHRydWU7XG5mdW5jdGlvbiBkaXNhYmxlTG9ncygpIHtcbiAge1xuICAgIGlmIChkaXNhYmxlZERlcHRoID09PSAwKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICAgIHByZXZMb2cgPSBjb25zb2xlLmxvZztcbiAgICAgIHByZXZJbmZvID0gY29uc29sZS5pbmZvO1xuICAgICAgcHJldldhcm4gPSBjb25zb2xlLndhcm47XG4gICAgICBwcmV2RXJyb3IgPSBjb25zb2xlLmVycm9yO1xuICAgICAgcHJldkdyb3VwID0gY29uc29sZS5ncm91cDtcbiAgICAgIHByZXZHcm91cENvbGxhcHNlZCA9IGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQ7XG4gICAgICBwcmV2R3JvdXBFbmQgPSBjb25zb2xlLmdyb3VwRW5kOyAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE5MDk5XG5cbiAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogZGlzYWJsZWRMb2csXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGluZm86IHByb3BzLFxuICAgICAgICBsb2c6IHByb3BzLFxuICAgICAgICB3YXJuOiBwcm9wcyxcbiAgICAgICAgZXJyb3I6IHByb3BzLFxuICAgICAgICBncm91cDogcHJvcHMsXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBwcm9wcyxcbiAgICAgICAgZ3JvdXBFbmQ6IHByb3BzXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgZGlzYWJsZWREZXB0aCsrO1xuICB9XG59XG5mdW5jdGlvbiByZWVuYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBkaXNhYmxlZERlcHRoLS07XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH07IC8vICRGbG93Rml4TWUgRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgbG9nOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZMb2dcbiAgICAgICAgfSksXG4gICAgICAgIGluZm86IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkluZm9cbiAgICAgICAgfSksXG4gICAgICAgIHdhcm46IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldldhcm5cbiAgICAgICAgfSksXG4gICAgICAgIGVycm9yOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZFcnJvclxuICAgICAgICB9KSxcbiAgICAgICAgZ3JvdXA6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cENvbGxhcHNlZDogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBDb2xsYXBzZWRcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwRW5kOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cEVuZFxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgIH1cblxuICAgIGlmIChkaXNhYmxlZERlcHRoIDwgMCkge1xuICAgICAgZXJyb3IoJ2Rpc2FibGVkRGVwdGggZmVsbCBiZWxvdyB6ZXJvLiAnICsgJ1RoaXMgaXMgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG52YXIgcHJlZml4O1xuZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICBpZiAocHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEV4dHJhY3QgdGhlIFZNIHNwZWNpZmljIHByZWZpeCB1c2VkIGJ5IGVhY2ggbGluZS5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7XG4gICAgICAgIHByZWZpeCA9IG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xuICAgICAgfVxuICAgIH0gLy8gV2UgdXNlIHRoZSBwcmVmaXggdG8gZW5zdXJlIG91ciBzdGFja3MgbGluZSB1cCB3aXRoIG5hdGl2ZSBzdGFjayBmcmFtZXMuXG5cblxuICAgIHJldHVybiAnXFxuJyArIHByZWZpeCArIG5hbWU7XG4gIH1cbn1cbnZhciByZWVudHJ5ID0gZmFsc2U7XG52YXIgY29tcG9uZW50RnJhbWVDYWNoZTtcblxue1xuICB2YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xuICBjb21wb25lbnRGcmFtZUNhY2hlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBjb25zdHJ1Y3QpIHtcbiAgLy8gSWYgc29tZXRoaW5nIGFza2VkIGZvciBhIHN0YWNrIGluc2lkZSBhIGZha2UgcmVuZGVyLCBpdCBzaG91bGQgZ2V0IGlnbm9yZWQuXG4gIGlmICggIWZuIHx8IHJlZW50cnkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB7XG4gICAgdmFyIGZyYW1lID0gY29tcG9uZW50RnJhbWVDYWNoZS5nZXQoZm4pO1xuXG4gICAgaWYgKGZyYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmcmFtZTtcbiAgICB9XG4gIH1cblxuICB2YXIgY29udHJvbDtcbiAgcmVlbnRyeSA9IHRydWU7XG4gIHZhciBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7IC8vICRGbG93Rml4TWUgSXQgZG9lcyBhY2NlcHQgdW5kZWZpbmVkLlxuXG4gIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gdW5kZWZpbmVkO1xuICB2YXIgcHJldmlvdXNEaXNwYXRjaGVyO1xuXG4gIHtcbiAgICBwcmV2aW91c0Rpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQ7IC8vIFNldCB0aGUgZGlzcGF0Y2hlciBpbiBERVYgYmVjYXVzZSB0aGlzIG1pZ2h0IGJlIGNhbGwgaW4gdGhlIHJlbmRlciBmdW5jdGlvblxuICAgIC8vIGZvciB3YXJuaW5ncy5cblxuICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IG51bGw7XG4gICAgZGlzYWJsZUxvZ3MoKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgLy8gVGhpcyBzaG91bGQgdGhyb3cuXG4gICAgaWYgKGNvbnN0cnVjdCkge1xuICAgICAgLy8gU29tZXRoaW5nIHNob3VsZCBiZSBzZXR0aW5nIHRoZSBwcm9wcyBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAgICB2YXIgRmFrZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgIH07IC8vICRGbG93Rml4TWVcblxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmFrZS5wcm90b3R5cGUsICdwcm9wcycsIHtcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgLy8gV2UgdXNlIGEgdGhyb3dpbmcgc2V0dGVyIGluc3RlYWQgb2YgZnJvemVuIG9yIG5vbi13cml0YWJsZSBwcm9wc1xuICAgICAgICAgIC8vIGJlY2F1c2UgdGhhdCB3b24ndCB0aHJvdyBpbiBhIG5vbi1zdHJpY3QgbW9kZSBmdW5jdGlvbi5cbiAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmNvbnN0cnVjdCkge1xuICAgICAgICAvLyBXZSBjb25zdHJ1Y3QgYSBkaWZmZXJlbnQgY29udHJvbCBmb3IgdGhpcyBjYXNlIHRvIGluY2x1ZGUgYW55IGV4dHJhXG4gICAgICAgIC8vIGZyYW1lcyBhZGRlZCBieSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoRmFrZSwgW10pO1xuICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgIH1cblxuICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChmbiwgW10sIEZha2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBGYWtlLmNhbGwoKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICB9XG5cbiAgICAgICAgZm4uY2FsbChGYWtlLnByb3RvdHlwZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgfVxuXG4gICAgICBmbigpO1xuICAgIH1cbiAgfSBjYXRjaCAoc2FtcGxlKSB7XG4gICAgLy8gVGhpcyBpcyBpbmxpbmVkIG1hbnVhbGx5IGJlY2F1c2UgY2xvc3VyZSBkb2Vzbid0IGRvIGl0IGZvciB1cy5cbiAgICBpZiAoc2FtcGxlICYmIGNvbnRyb2wgJiYgdHlwZW9mIHNhbXBsZS5zdGFjayA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFRoaXMgZXh0cmFjdHMgdGhlIGZpcnN0IGZyYW1lIGZyb20gdGhlIHNhbXBsZSB0aGF0IGlzbid0IGFsc28gaW4gdGhlIGNvbnRyb2wuXG4gICAgICAvLyBTa2lwcGluZyBvbmUgZnJhbWUgdGhhdCB3ZSBhc3N1bWUgaXMgdGhlIGZyYW1lIHRoYXQgY2FsbHMgdGhlIHR3by5cbiAgICAgIHZhciBzYW1wbGVMaW5lcyA9IHNhbXBsZS5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgY29udHJvbExpbmVzID0gY29udHJvbC5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgcyA9IHNhbXBsZUxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICB2YXIgYyA9IGNvbnRyb2xMaW5lcy5sZW5ndGggLSAxO1xuXG4gICAgICB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCAmJiBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgIC8vIFdlIGV4cGVjdCBhdCBsZWFzdCBvbmUgc3RhY2sgZnJhbWUgdG8gYmUgc2hhcmVkLlxuICAgICAgICAvLyBUeXBpY2FsbHkgdGhpcyB3aWxsIGJlIHRoZSByb290IG1vc3Qgb25lLiBIb3dldmVyLCBzdGFjayBmcmFtZXMgbWF5IGJlXG4gICAgICAgIC8vIGN1dCBvZmYgZHVlIHRvIG1heGltdW0gc3RhY2sgbGltaXRzLiBJbiB0aGlzIGNhc2UsIG9uZSBtYXliZSBjdXQgb2ZmXG4gICAgICAgIC8vIGVhcmxpZXIgdGhhbiB0aGUgb3RoZXIuIFdlIGFzc3VtZSB0aGF0IHRoZSBzYW1wbGUgaXMgbG9uZ2VyIG9yIHRoZSBzYW1lXG4gICAgICAgIC8vIGFuZCB0aGVyZSBmb3IgY3V0IG9mZiBlYXJsaWVyLiBTbyB3ZSBzaG91bGQgZmluZCB0aGUgcm9vdCBtb3N0IGZyYW1lIGluXG4gICAgICAgIC8vIHRoZSBzYW1wbGUgc29tZXdoZXJlIGluIHRoZSBjb250cm9sLlxuICAgICAgICBjLS07XG4gICAgICB9XG5cbiAgICAgIGZvciAoOyBzID49IDEgJiYgYyA+PSAwOyBzLS0sIGMtLSkge1xuICAgICAgICAvLyBOZXh0IHdlIGZpbmQgdGhlIGZpcnN0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHdoaWNoIHNob3VsZCBiZSB0aGVcbiAgICAgICAgLy8gZnJhbWUgdGhhdCBjYWxsZWQgb3VyIHNhbXBsZSBmdW5jdGlvbiBhbmQgdGhlIGNvbnRyb2wuXG4gICAgICAgIGlmIChzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgLy8gSW4gVjgsIHRoZSBmaXJzdCBsaW5lIGlzIGRlc2NyaWJpbmcgdGhlIG1lc3NhZ2UgYnV0IG90aGVyIFZNcyBkb24ndC5cbiAgICAgICAgICAvLyBJZiB3ZSdyZSBhYm91dCB0byByZXR1cm4gdGhlIGZpcnN0IGxpbmUsIGFuZCB0aGUgY29udHJvbCBpcyBhbHNvIG9uIHRoZSBzYW1lXG4gICAgICAgICAgLy8gbGluZSwgdGhhdCdzIGEgcHJldHR5IGdvb2QgaW5kaWNhdG9yIHRoYXQgb3VyIHNhbXBsZSB0aHJldyBhdCBzYW1lIGxpbmUgYXNcbiAgICAgICAgICAvLyB0aGUgY29udHJvbC4gSS5lLiBiZWZvcmUgd2UgZW50ZXJlZCB0aGUgc2FtcGxlIGZyYW1lLiBTbyB3ZSBpZ25vcmUgdGhpcyByZXN1bHQuXG4gICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHlvdSBwYXNzZWQgYSBjbGFzcyB0byBmdW5jdGlvbiBjb21wb25lbnQsIG9yIG5vbi1mdW5jdGlvbi5cbiAgICAgICAgICBpZiAocyAhPT0gMSB8fCBjICE9PSAxKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgIHMtLTtcbiAgICAgICAgICAgICAgYy0tOyAvLyBXZSBtYXkgc3RpbGwgaGF2ZSBzaW1pbGFyIGludGVybWVkaWF0ZSBmcmFtZXMgZnJvbSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgICAgICAgIC8vIFRoZSBuZXh0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHNob3VsZCBiZSBvdXIgbWF0Y2ggdGhvdWdoLlxuXG4gICAgICAgICAgICAgIGlmIChjIDwgMCB8fCBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgICAgICAgLy8gVjggYWRkcyBhIFwibmV3XCIgcHJlZml4IGZvciBuYXRpdmUgY2xhc3Nlcy4gTGV0J3MgcmVtb3ZlIGl0IHRvIG1ha2UgaXQgcHJldHRpZXIuXG4gICAgICAgICAgICAgICAgdmFyIF9mcmFtZSA9ICdcXG4nICsgc2FtcGxlTGluZXNbc10ucmVwbGFjZSgnIGF0IG5ldyAnLCAnIGF0ICcpOyAvLyBJZiBvdXIgY29tcG9uZW50IGZyYW1lIGlzIGxhYmVsZWQgXCI8YW5vbnltb3VzPlwiXG4gICAgICAgICAgICAgICAgLy8gYnV0IHdlIGhhdmUgYSB1c2VyLXByb3ZpZGVkIFwiZGlzcGxheU5hbWVcIlxuICAgICAgICAgICAgICAgIC8vIHNwbGljZSBpdCBpbiB0byBtYWtlIHRoZSBzdGFjayBtb3JlIHJlYWRhYmxlLlxuXG5cbiAgICAgICAgICAgICAgICBpZiAoZm4uZGlzcGxheU5hbWUgJiYgX2ZyYW1lLmluY2x1ZGVzKCc8YW5vbnltb3VzPicpKSB7XG4gICAgICAgICAgICAgICAgICBfZnJhbWUgPSBfZnJhbWUucmVwbGFjZSgnPGFub255bW91cz4nLCBmbi5kaXNwbGF5TmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgX2ZyYW1lKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IC8vIFJldHVybiB0aGUgbGluZSB3ZSBmb3VuZC5cblxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9mcmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgcmVlbnRyeSA9IGZhbHNlO1xuXG4gICAge1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50ID0gcHJldmlvdXNEaXNwYXRjaGVyO1xuICAgICAgcmVlbmFibGVMb2dzKCk7XG4gICAgfVxuXG4gICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlO1xuICB9IC8vIEZhbGxiYWNrIHRvIGp1c3QgdXNpbmcgdGhlIG5hbWUgaWYgd2UgY291bGRuJ3QgbWFrZSBpdCB0aHJvdy5cblxuXG4gIHZhciBuYW1lID0gZm4gPyBmbi5kaXNwbGF5TmFtZSB8fCBmbi5uYW1lIDogJyc7XG4gIHZhciBzeW50aGV0aWNGcmFtZSA9IG5hbWUgPyBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lKSA6ICcnO1xuXG4gIHtcbiAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgc3ludGhldGljRnJhbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzeW50aGV0aWNGcmFtZTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVDbGFzc0NvbXBvbmVudEZyYW1lKGN0b3IsIHNvdXJjZSwgb3duZXJGbikge1xuICB7XG4gICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoY3RvciwgdHJ1ZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZShmbiwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgZmFsc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNob3VsZENvbnN0cnVjdChDb21wb25lbnQpIHtcbiAgdmFyIHByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4gIHJldHVybiAhIShwcm90b3R5cGUgJiYgcHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZSwgc291cmNlLCBvd25lckZuKSB7XG5cbiAgaWYgKHR5cGUgPT0gbnVsbCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHtcbiAgICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKHR5cGUsIHNob3VsZENvbnN0cnVjdCh0eXBlKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSh0eXBlKTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2UnKTtcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZUxpc3QnKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZSh0eXBlLnJlbmRlcik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAvLyBNZW1vIG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUudHlwZSwgc291cmNlLCBvd25lckZuKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBMYXp5IG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihpbml0KHBheWxvYWQpLCBzb3VyY2UsIG93bmVyRm4pO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlRmliZXIoZmliZXIpIHtcbiAgdmFyIG93bmVyID0gIGZpYmVyLl9kZWJ1Z093bmVyID8gZmliZXIuX2RlYnVnT3duZXIudHlwZSA6IG51bGwgO1xuICB2YXIgc291cmNlID0gIGZpYmVyLl9kZWJ1Z1NvdXJjZSA7XG5cbiAgc3dpdGNoIChmaWJlci50YWcpIHtcbiAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoZmliZXIudHlwZSk7XG5cbiAgICBjYXNlIExhenlDb21wb25lbnQ6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ0xhenknKTtcblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlJyk7XG5cbiAgICBjYXNlIFN1c3BlbnNlTGlzdENvbXBvbmVudDpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2VMaXN0Jyk7XG5cbiAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgIGNhc2UgSW5kZXRlcm1pbmF0ZUNvbXBvbmVudDpcbiAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKGZpYmVyLnR5cGUpO1xuXG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZShmaWJlci50eXBlLnJlbmRlcik7XG5cbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQ2xhc3NDb21wb25lbnRGcmFtZShmaWJlci50eXBlKTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJyc7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0U3RhY2tCeUZpYmVySW5EZXZBbmRQcm9kKHdvcmtJblByb2dyZXNzKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSAnJztcbiAgICB2YXIgbm9kZSA9IHdvcmtJblByb2dyZXNzO1xuXG4gICAgZG8ge1xuICAgICAgaW5mbyArPSBkZXNjcmliZUZpYmVyKG5vZGUpO1xuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH0gd2hpbGUgKG5vZGUpO1xuXG4gICAgcmV0dXJuIGluZm87XG4gIH0gY2F0Y2ggKHgpIHtcbiAgICByZXR1cm4gJ1xcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6ICcgKyB4Lm1lc3NhZ2UgKyAnXFxuJyArIHguc3RhY2s7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0V3JhcHBlZE5hbWUob3V0ZXJUeXBlLCBpbm5lclR5cGUsIHdyYXBwZXJOYW1lKSB7XG4gIHZhciBkaXNwbGF5TmFtZSA9IG91dGVyVHlwZS5kaXNwbGF5TmFtZTtcblxuICBpZiAoZGlzcGxheU5hbWUpIHtcbiAgICByZXR1cm4gZGlzcGxheU5hbWU7XG4gIH1cblxuICB2YXIgZnVuY3Rpb25OYW1lID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8ICcnO1xuICByZXR1cm4gZnVuY3Rpb25OYW1lICE9PSAnJyA/IHdyYXBwZXJOYW1lICsgXCIoXCIgKyBmdW5jdGlvbk5hbWUgKyBcIilcIiA6IHdyYXBwZXJOYW1lO1xufSAvLyBLZWVwIGluIHN5bmMgd2l0aCByZWFjdC1yZWNvbmNpbGVyL2dldENvbXBvbmVudE5hbWVGcm9tRmliZXJcblxuXG5mdW5jdGlvbiBnZXRDb250ZXh0TmFtZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8ICdDb250ZXh0Jztcbn0gLy8gTm90ZSB0aGF0IHRoZSByZWNvbmNpbGVyIHBhY2thZ2Ugc2hvdWxkIGdlbmVyYWxseSBwcmVmZXIgdG8gdXNlIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoKSBpbnN0ZWFkLlxuXG5cbmZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB7XG4gIGlmICh0eXBlID09IG51bGwpIHtcbiAgICAvLyBIb3N0IHJvb3QsIHRleHQgbm9kZSBvciBqdXN0IGludmFsaWQgdHlwZS5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHtcbiAgICBpZiAodHlwZW9mIHR5cGUudGFnID09PSAnbnVtYmVyJykge1xuICAgICAgZXJyb3IoJ1JlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiAnICsgJ1RoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRTpcbiAgICAgIHJldHVybiAnRnJhZ21lbnQnO1xuXG4gICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgIHJldHVybiAnUG9ydGFsJztcblxuICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgIHJldHVybiAnUHJvZmlsZXInO1xuXG4gICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgICAgcmV0dXJuICdTdHJpY3RNb2RlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiAnU3VzcGVuc2UnO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlTGlzdCc7XG5cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOlxuICAgICAgICB2YXIgY29udGV4dCA9IHR5cGU7XG4gICAgICAgIHJldHVybiBnZXRDb250ZXh0TmFtZShjb250ZXh0KSArICcuQ29uc3VtZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgIHZhciBwcm92aWRlciA9IHR5cGU7XG4gICAgICAgIHJldHVybiBnZXRDb250ZXh0TmFtZShwcm92aWRlci5fY29udGV4dCkgKyAnLlByb3ZpZGVyJztcblxuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICByZXR1cm4gZ2V0V3JhcHBlZE5hbWUodHlwZSwgdHlwZS5yZW5kZXIsICdGb3J3YXJkUmVmJyk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICB2YXIgb3V0ZXJOYW1lID0gdHlwZS5kaXNwbGF5TmFtZSB8fCBudWxsO1xuXG4gICAgICAgIGlmIChvdXRlck5hbWUgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gb3V0ZXJOYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdNZW1vJztcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGluaXQocGF5bG9hZCkpO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gZ2V0V3JhcHBlZE5hbWUkMShvdXRlclR5cGUsIGlubmVyVHlwZSwgd3JhcHBlck5hbWUpIHtcbiAgdmFyIGZ1bmN0aW9uTmFtZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCAnJztcbiAgcmV0dXJuIG91dGVyVHlwZS5kaXNwbGF5TmFtZSB8fCAoZnVuY3Rpb25OYW1lICE9PSAnJyA/IHdyYXBwZXJOYW1lICsgXCIoXCIgKyBmdW5jdGlvbk5hbWUgKyBcIilcIiA6IHdyYXBwZXJOYW1lKTtcbn0gLy8gS2VlcCBpbiBzeW5jIHdpdGggc2hhcmVkL2dldENvbXBvbmVudE5hbWVGcm9tVHlwZVxuXG5cbmZ1bmN0aW9uIGdldENvbnRleHROYW1lJDEodHlwZSkge1xuICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCAnQ29udGV4dCc7XG59XG5cbmZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHtcbiAgdmFyIHRhZyA9IGZpYmVyLnRhZyxcbiAgICAgIHR5cGUgPSBmaWJlci50eXBlO1xuXG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSBDYWNoZUNvbXBvbmVudDpcbiAgICAgIHJldHVybiAnQ2FjaGUnO1xuXG4gICAgY2FzZSBDb250ZXh0Q29uc3VtZXI6XG4gICAgICB2YXIgY29udGV4dCA9IHR5cGU7XG4gICAgICByZXR1cm4gZ2V0Q29udGV4dE5hbWUkMShjb250ZXh0KSArICcuQ29uc3VtZXInO1xuXG4gICAgY2FzZSBDb250ZXh0UHJvdmlkZXI6XG4gICAgICB2YXIgcHJvdmlkZXIgPSB0eXBlO1xuICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lJDEocHJvdmlkZXIuX2NvbnRleHQpICsgJy5Qcm92aWRlcic7XG5cbiAgICBjYXNlIERlaHlkcmF0ZWRGcmFnbWVudDpcbiAgICAgIHJldHVybiAnRGVoeWRyYXRlZEZyYWdtZW50JztcblxuICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgIHJldHVybiBnZXRXcmFwcGVkTmFtZSQxKHR5cGUsIHR5cGUucmVuZGVyLCAnRm9yd2FyZFJlZicpO1xuXG4gICAgY2FzZSBGcmFnbWVudDpcbiAgICAgIHJldHVybiAnRnJhZ21lbnQnO1xuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgLy8gSG9zdCBjb21wb25lbnQgdHlwZSBpcyB0aGUgZGlzcGxheSBuYW1lIChlLmcuIFwiZGl2XCIsIFwiVmlld1wiKVxuICAgICAgcmV0dXJuIHR5cGU7XG5cbiAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICByZXR1cm4gJ1BvcnRhbCc7XG5cbiAgICBjYXNlIEhvc3RSb290OlxuICAgICAgcmV0dXJuICdSb290JztcblxuICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgICByZXR1cm4gJ1RleHQnO1xuXG4gICAgY2FzZSBMYXp5Q29tcG9uZW50OlxuICAgICAgLy8gTmFtZSBjb21lcyBmcm9tIHRoZSB0eXBlIGluIHRoaXMgY2FzZTsgd2UgZG9uJ3QgaGF2ZSBhIHRhZy5cbiAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG5cbiAgICBjYXNlIE1vZGU6XG4gICAgICBpZiAodHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSkge1xuICAgICAgICAvLyBEb24ndCBiZSBsZXNzIHNwZWNpZmljIHRoYW4gc2hhcmVkL2dldENvbXBvbmVudE5hbWVGcm9tVHlwZVxuICAgICAgICByZXR1cm4gJ1N0cmljdE1vZGUnO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ01vZGUnO1xuXG4gICAgY2FzZSBPZmZzY3JlZW5Db21wb25lbnQ6XG4gICAgICByZXR1cm4gJ09mZnNjcmVlbic7XG5cbiAgICBjYXNlIFByb2ZpbGVyOlxuICAgICAgcmV0dXJuICdQcm9maWxlcic7XG5cbiAgICBjYXNlIFNjb3BlQ29tcG9uZW50OlxuICAgICAgcmV0dXJuICdTY29wZSc7XG5cbiAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAgcmV0dXJuICdTdXNwZW5zZSc7XG5cbiAgICBjYXNlIFN1c3BlbnNlTGlzdENvbXBvbmVudDpcbiAgICAgIHJldHVybiAnU3VzcGVuc2VMaXN0JztcblxuICAgIGNhc2UgVHJhY2luZ01hcmtlckNvbXBvbmVudDpcbiAgICAgIHJldHVybiAnVHJhY2luZ01hcmtlcic7XG4gICAgLy8gVGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhpcyB0YWdzIGNvbWUgZnJvbSB0aGUgdXNlci1wcm92aWRlZCB0eXBlOlxuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgIGNhc2UgSW5jb21wbGV0ZUNsYXNzQ29tcG9uZW50OlxuICAgIGNhc2UgSW5kZXRlcm1pbmF0ZUNvbXBvbmVudDpcbiAgICBjYXNlIE1lbW9Db21wb25lbnQ6XG4gICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcblxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbnZhciBjdXJyZW50ID0gbnVsbDtcbnZhciBpc1JlbmRlcmluZyA9IGZhbHNlO1xuZnVuY3Rpb24gZ2V0Q3VycmVudEZpYmVyT3duZXJOYW1lSW5EZXZPck51bGwoKSB7XG4gIHtcbiAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmFyIG93bmVyID0gY3VycmVudC5fZGVidWdPd25lcjtcblxuICAgIGlmIChvd25lciAhPT0gbnVsbCAmJiB0eXBlb2Ygb3duZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihvd25lcik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRGaWJlclN0YWNrSW5EZXYoKSB7XG4gIHtcbiAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH0gLy8gU2FmZSBiZWNhdXNlIGlmIGN1cnJlbnQgZmliZXIgZXhpc3RzLCB3ZSBhcmUgcmVjb25jaWxpbmcsXG4gICAgLy8gYW5kIGl0IGlzIGd1YXJhbnRlZWQgdG8gYmUgdGhlIHdvcmstaW4tcHJvZ3Jlc3MgdmVyc2lvbi5cblxuXG4gICAgcmV0dXJuIGdldFN0YWNrQnlGaWJlckluRGV2QW5kUHJvZChjdXJyZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXNldEN1cnJlbnRGaWJlcigpIHtcbiAge1xuICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0Q3VycmVudFN0YWNrID0gbnVsbDtcbiAgICBjdXJyZW50ID0gbnVsbDtcbiAgICBpc1JlbmRlcmluZyA9IGZhbHNlO1xuICB9XG59XG5mdW5jdGlvbiBzZXRDdXJyZW50RmliZXIoZmliZXIpIHtcbiAge1xuICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0Q3VycmVudFN0YWNrID0gZ2V0Q3VycmVudEZpYmVyU3RhY2tJbkRldjtcbiAgICBjdXJyZW50ID0gZmliZXI7XG4gICAgaXNSZW5kZXJpbmcgPSBmYWxzZTtcbiAgfVxufVxuZnVuY3Rpb24gc2V0SXNSZW5kZXJpbmcocmVuZGVyaW5nKSB7XG4gIHtcbiAgICBpc1JlbmRlcmluZyA9IHJlbmRlcmluZztcbiAgfVxufVxuXG4vLyBGbG93IGRvZXMgbm90IGFsbG93IHN0cmluZyBjb25jYXRlbmF0aW9uIG9mIG1vc3Qgbm9uLXN0cmluZyB0eXBlcy4gVG8gd29ya1xuLy8gYXJvdW5kIHRoaXMgbGltaXRhdGlvbiwgd2UgdXNlIGFuIG9wYXF1ZSB0eXBlIHRoYXQgY2FuIG9ubHkgYmUgb2J0YWluZWQgYnlcbi8vIHBhc3NpbmcgdGhlIHZhbHVlIHRocm91Z2ggZ2V0VG9TdHJpbmdWYWx1ZSBmaXJzdC5cbmZ1bmN0aW9uIHRvU3RyaW5nKHZhbHVlKSB7XG4gIC8vIFRoZSBjb2VyY2lvbiBzYWZldHkgY2hlY2sgaXMgcGVyZm9ybWVkIGluIGdldFRvU3RyaW5nVmFsdWUoKS5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gIHJldHVybiAnJyArIHZhbHVlO1xufVxuZnVuY3Rpb24gZ2V0VG9TdHJpbmdWYWx1ZSh2YWx1ZSkge1xuICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgIGNhc2UgJ251bWJlcic6XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICBjYXNlICd1bmRlZmluZWQnOlxuICAgICAgcmV0dXJuIHZhbHVlO1xuXG4gICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgIHtcbiAgICAgICAgY2hlY2tGb3JtRmllbGRWYWx1ZVN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZhbHVlO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIGZ1bmN0aW9uLCBzeW1ib2wgYXJlIGFzc2lnbmVkIGFzIGVtcHR5IHN0cmluZ3NcbiAgICAgIHJldHVybiAnJztcbiAgfVxufVxuXG52YXIgaGFzUmVhZE9ubHlWYWx1ZSA9IHtcbiAgYnV0dG9uOiB0cnVlLFxuICBjaGVja2JveDogdHJ1ZSxcbiAgaW1hZ2U6IHRydWUsXG4gIGhpZGRlbjogdHJ1ZSxcbiAgcmFkaW86IHRydWUsXG4gIHJlc2V0OiB0cnVlLFxuICBzdWJtaXQ6IHRydWVcbn07XG5mdW5jdGlvbiBjaGVja0NvbnRyb2xsZWRWYWx1ZVByb3BzKHRhZ05hbWUsIHByb3BzKSB7XG4gIHtcbiAgICBpZiAoIShoYXNSZWFkT25seVZhbHVlW3Byb3BzLnR5cGVdIHx8IHByb3BzLm9uQ2hhbmdlIHx8IHByb3BzLm9uSW5wdXQgfHwgcHJvcHMucmVhZE9ubHkgfHwgcHJvcHMuZGlzYWJsZWQgfHwgcHJvcHMudmFsdWUgPT0gbnVsbCkpIHtcbiAgICAgIGVycm9yKCdZb3UgcHJvdmlkZWQgYSBgdmFsdWVgIHByb3AgdG8gYSBmb3JtIGZpZWxkIHdpdGhvdXQgYW4gJyArICdgb25DaGFuZ2VgIGhhbmRsZXIuIFRoaXMgd2lsbCByZW5kZXIgYSByZWFkLW9ubHkgZmllbGQuIElmICcgKyAndGhlIGZpZWxkIHNob3VsZCBiZSBtdXRhYmxlIHVzZSBgZGVmYXVsdFZhbHVlYC4gT3RoZXJ3aXNlLCAnICsgJ3NldCBlaXRoZXIgYG9uQ2hhbmdlYCBvciBgcmVhZE9ubHlgLicpO1xuICAgIH1cblxuICAgIGlmICghKHByb3BzLm9uQ2hhbmdlIHx8IHByb3BzLnJlYWRPbmx5IHx8IHByb3BzLmRpc2FibGVkIHx8IHByb3BzLmNoZWNrZWQgPT0gbnVsbCkpIHtcbiAgICAgIGVycm9yKCdZb3UgcHJvdmlkZWQgYSBgY2hlY2tlZGAgcHJvcCB0byBhIGZvcm0gZmllbGQgd2l0aG91dCBhbiAnICsgJ2BvbkNoYW5nZWAgaGFuZGxlci4gVGhpcyB3aWxsIHJlbmRlciBhIHJlYWQtb25seSBmaWVsZC4gSWYgJyArICd0aGUgZmllbGQgc2hvdWxkIGJlIG11dGFibGUgdXNlIGBkZWZhdWx0Q2hlY2tlZGAuIE90aGVyd2lzZSwgJyArICdzZXQgZWl0aGVyIGBvbkNoYW5nZWAgb3IgYHJlYWRPbmx5YC4nKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNDaGVja2FibGUoZWxlbSkge1xuICB2YXIgdHlwZSA9IGVsZW0udHlwZTtcbiAgdmFyIG5vZGVOYW1lID0gZWxlbS5ub2RlTmFtZTtcbiAgcmV0dXJuIG5vZGVOYW1lICYmIG5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdpbnB1dCcgJiYgKHR5cGUgPT09ICdjaGVja2JveCcgfHwgdHlwZSA9PT0gJ3JhZGlvJyk7XG59XG5cbmZ1bmN0aW9uIGdldFRyYWNrZXIobm9kZSkge1xuICByZXR1cm4gbm9kZS5fdmFsdWVUcmFja2VyO1xufVxuXG5mdW5jdGlvbiBkZXRhY2hUcmFja2VyKG5vZGUpIHtcbiAgbm9kZS5fdmFsdWVUcmFja2VyID0gbnVsbDtcbn1cblxuZnVuY3Rpb24gZ2V0VmFsdWVGcm9tTm9kZShub2RlKSB7XG4gIHZhciB2YWx1ZSA9ICcnO1xuXG4gIGlmICghbm9kZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGlmIChpc0NoZWNrYWJsZShub2RlKSkge1xuICAgIHZhbHVlID0gbm9kZS5jaGVja2VkID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgfSBlbHNlIHtcbiAgICB2YWx1ZSA9IG5vZGUudmFsdWU7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIHRyYWNrVmFsdWVPbk5vZGUobm9kZSkge1xuICB2YXIgdmFsdWVGaWVsZCA9IGlzQ2hlY2thYmxlKG5vZGUpID8gJ2NoZWNrZWQnIDogJ3ZhbHVlJztcbiAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG5vZGUuY29uc3RydWN0b3IucHJvdG90eXBlLCB2YWx1ZUZpZWxkKTtcblxuICB7XG4gICAgY2hlY2tGb3JtRmllbGRWYWx1ZVN0cmluZ0NvZXJjaW9uKG5vZGVbdmFsdWVGaWVsZF0pO1xuICB9XG5cbiAgdmFyIGN1cnJlbnRWYWx1ZSA9ICcnICsgbm9kZVt2YWx1ZUZpZWxkXTsgLy8gaWYgc29tZW9uZSBoYXMgYWxyZWFkeSBkZWZpbmVkIGEgdmFsdWUgb3IgU2FmYXJpLCB0aGVuIGJhaWxcbiAgLy8gYW5kIGRvbid0IHRyYWNrIHZhbHVlIHdpbGwgY2F1c2Ugb3ZlciByZXBvcnRpbmcgb2YgY2hhbmdlcyxcbiAgLy8gYnV0IGl0J3MgYmV0dGVyIHRoZW4gYSBoYXJkIGZhaWx1cmVcbiAgLy8gKG5lZWRlZCBmb3IgY2VydGFpbiB0ZXN0cyB0aGF0IHNweU9uIGlucHV0IHZhbHVlcyBhbmQgU2FmYXJpKVxuXG4gIGlmIChub2RlLmhhc093blByb3BlcnR5KHZhbHVlRmllbGQpIHx8IHR5cGVvZiBkZXNjcmlwdG9yID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2YgZGVzY3JpcHRvci5nZXQgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGRlc2NyaXB0b3Iuc2V0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGdldCA9IGRlc2NyaXB0b3IuZ2V0LFxuICAgICAgc2V0ID0gZGVzY3JpcHRvci5zZXQ7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShub2RlLCB2YWx1ZUZpZWxkLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGdldC5jYWxsKHRoaXMpO1xuICAgIH0sXG4gICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tGb3JtRmllbGRWYWx1ZVN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgY3VycmVudFZhbHVlID0gJycgKyB2YWx1ZTtcbiAgICAgIHNldC5jYWxsKHRoaXMsIHZhbHVlKTtcbiAgICB9XG4gIH0pOyAvLyBXZSBjb3VsZCd2ZSBwYXNzZWQgdGhpcyB0aGUgZmlyc3QgdGltZVxuICAvLyBidXQgaXQgdHJpZ2dlcnMgYSBidWcgaW4gSUUxMSBhbmQgRWRnZSAxNC8xNS5cbiAgLy8gQ2FsbGluZyBkZWZpbmVQcm9wZXJ0eSgpIGFnYWluIHNob3VsZCBiZSBlcXVpdmFsZW50LlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzExNzY4XG5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5vZGUsIHZhbHVlRmllbGQsIHtcbiAgICBlbnVtZXJhYmxlOiBkZXNjcmlwdG9yLmVudW1lcmFibGVcbiAgfSk7XG4gIHZhciB0cmFja2VyID0ge1xuICAgIGdldFZhbHVlOiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gY3VycmVudFZhbHVlO1xuICAgIH0sXG4gICAgc2V0VmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAge1xuICAgICAgICBjaGVja0Zvcm1GaWVsZFZhbHVlU3RyaW5nQ29lcmNpb24odmFsdWUpO1xuICAgICAgfVxuXG4gICAgICBjdXJyZW50VmFsdWUgPSAnJyArIHZhbHVlO1xuICAgIH0sXG4gICAgc3RvcFRyYWNraW5nOiBmdW5jdGlvbiAoKSB7XG4gICAgICBkZXRhY2hUcmFja2VyKG5vZGUpO1xuICAgICAgZGVsZXRlIG5vZGVbdmFsdWVGaWVsZF07XG4gICAgfVxuICB9O1xuICByZXR1cm4gdHJhY2tlcjtcbn1cblxuZnVuY3Rpb24gdHJhY2sobm9kZSkge1xuICBpZiAoZ2V0VHJhY2tlcihub2RlKSkge1xuICAgIHJldHVybjtcbiAgfSAvLyBUT0RPOiBPbmNlIGl0J3MganVzdCBGaWJlciB3ZSBjYW4gbW92ZSB0aGlzIHRvIG5vZGUuX3dyYXBwZXJTdGF0ZVxuXG5cbiAgbm9kZS5fdmFsdWVUcmFja2VyID0gdHJhY2tWYWx1ZU9uTm9kZShub2RlKTtcbn1cbmZ1bmN0aW9uIHVwZGF0ZVZhbHVlSWZDaGFuZ2VkKG5vZGUpIHtcbiAgaWYgKCFub2RlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIHRyYWNrZXIgPSBnZXRUcmFja2VyKG5vZGUpOyAvLyBpZiB0aGVyZSBpcyBubyB0cmFja2VyIGF0IHRoaXMgcG9pbnQgaXQncyB1bmxpa2VseVxuICAvLyB0aGF0IHRyeWluZyBhZ2FpbiB3aWxsIHN1Y2NlZWRcblxuICBpZiAoIXRyYWNrZXIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhciBsYXN0VmFsdWUgPSB0cmFja2VyLmdldFZhbHVlKCk7XG4gIHZhciBuZXh0VmFsdWUgPSBnZXRWYWx1ZUZyb21Ob2RlKG5vZGUpO1xuXG4gIGlmIChuZXh0VmFsdWUgIT09IGxhc3RWYWx1ZSkge1xuICAgIHRyYWNrZXIuc2V0VmFsdWUobmV4dFZhbHVlKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gZ2V0QWN0aXZlRWxlbWVudChkb2MpIHtcbiAgZG9jID0gZG9jIHx8ICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnID8gZG9jdW1lbnQgOiB1bmRlZmluZWQpO1xuXG4gIGlmICh0eXBlb2YgZG9jID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gZG9jLmFjdGl2ZUVsZW1lbnQgfHwgZG9jLmJvZHk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZG9jLmJvZHk7XG4gIH1cbn1cblxudmFyIGRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSA9IGZhbHNlO1xudmFyIGRpZFdhcm5DaGVja2VkRGVmYXVsdENoZWNrZWQgPSBmYWxzZTtcbnZhciBkaWRXYXJuQ29udHJvbGxlZFRvVW5jb250cm9sbGVkID0gZmFsc2U7XG52YXIgZGlkV2FyblVuY29udHJvbGxlZFRvQ29udHJvbGxlZCA9IGZhbHNlO1xuXG5mdW5jdGlvbiBpc0NvbnRyb2xsZWQocHJvcHMpIHtcbiAgdmFyIHVzZXNDaGVja2VkID0gcHJvcHMudHlwZSA9PT0gJ2NoZWNrYm94JyB8fCBwcm9wcy50eXBlID09PSAncmFkaW8nO1xuICByZXR1cm4gdXNlc0NoZWNrZWQgPyBwcm9wcy5jaGVja2VkICE9IG51bGwgOiBwcm9wcy52YWx1ZSAhPSBudWxsO1xufVxuLyoqXG4gKiBJbXBsZW1lbnRzIGFuIDxpbnB1dD4gaG9zdCBjb21wb25lbnQgdGhhdCBhbGxvd3Mgc2V0dGluZyB0aGVzZSBvcHRpb25hbFxuICogcHJvcHM6IGBjaGVja2VkYCwgYHZhbHVlYCwgYGRlZmF1bHRDaGVja2VkYCwgYW5kIGBkZWZhdWx0VmFsdWVgLlxuICpcbiAqIElmIGBjaGVja2VkYCBvciBgdmFsdWVgIGFyZSBub3Qgc3VwcGxpZWQgKG9yIG51bGwvdW5kZWZpbmVkKSwgdXNlciBhY3Rpb25zXG4gKiB0aGF0IGFmZmVjdCB0aGUgY2hlY2tlZCBzdGF0ZSBvciB2YWx1ZSB3aWxsIHRyaWdnZXIgdXBkYXRlcyB0byB0aGUgZWxlbWVudC5cbiAqXG4gKiBJZiB0aGV5IGFyZSBzdXBwbGllZCAoYW5kIG5vdCBudWxsL3VuZGVmaW5lZCksIHRoZSByZW5kZXJlZCBlbGVtZW50IHdpbGwgbm90XG4gKiB0cmlnZ2VyIHVwZGF0ZXMgdG8gdGhlIGVsZW1lbnQuIEluc3RlYWQsIHRoZSBwcm9wcyBtdXN0IGNoYW5nZSBpbiBvcmRlciBmb3JcbiAqIHRoZSByZW5kZXJlZCBlbGVtZW50IHRvIGJlIHVwZGF0ZWQuXG4gKlxuICogVGhlIHJlbmRlcmVkIGVsZW1lbnQgd2lsbCBiZSBpbml0aWFsaXplZCBhcyB1bmNoZWNrZWQgKG9yIGBkZWZhdWx0Q2hlY2tlZGApXG4gKiB3aXRoIGFuIGVtcHR5IHZhbHVlIChvciBgZGVmYXVsdFZhbHVlYCkuXG4gKlxuICogU2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTIvV0QtaHRtbDUtMjAxMjEwMjUvdGhlLWlucHV0LWVsZW1lbnQuaHRtbFxuICovXG5cblxuZnVuY3Rpb24gZ2V0SG9zdFByb3BzKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDtcbiAgdmFyIGNoZWNrZWQgPSBwcm9wcy5jaGVja2VkO1xuICB2YXIgaG9zdFByb3BzID0gYXNzaWduKHt9LCBwcm9wcywge1xuICAgIGRlZmF1bHRDaGVja2VkOiB1bmRlZmluZWQsXG4gICAgZGVmYXVsdFZhbHVlOiB1bmRlZmluZWQsXG4gICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICBjaGVja2VkOiBjaGVja2VkICE9IG51bGwgPyBjaGVja2VkIDogbm9kZS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkXG4gIH0pO1xuICByZXR1cm4gaG9zdFByb3BzO1xufVxuZnVuY3Rpb24gaW5pdFdyYXBwZXJTdGF0ZShlbGVtZW50LCBwcm9wcykge1xuICB7XG4gICAgY2hlY2tDb250cm9sbGVkVmFsdWVQcm9wcygnaW5wdXQnLCBwcm9wcyk7XG5cbiAgICBpZiAocHJvcHMuY2hlY2tlZCAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRDaGVja2VkICE9PSB1bmRlZmluZWQgJiYgIWRpZFdhcm5DaGVja2VkRGVmYXVsdENoZWNrZWQpIHtcbiAgICAgIGVycm9yKCclcyBjb250YWlucyBhbiBpbnB1dCBvZiB0eXBlICVzIHdpdGggYm90aCBjaGVja2VkIGFuZCBkZWZhdWx0Q2hlY2tlZCBwcm9wcy4gJyArICdJbnB1dCBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAnICsgJyhzcGVjaWZ5IGVpdGhlciB0aGUgY2hlY2tlZCBwcm9wLCBvciB0aGUgZGVmYXVsdENoZWNrZWQgcHJvcCwgYnV0IG5vdCAnICsgJ2JvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGlucHV0ICcgKyAnZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHMnLCBnZXRDdXJyZW50RmliZXJPd25lck5hbWVJbkRldk9yTnVsbCgpIHx8ICdBIGNvbXBvbmVudCcsIHByb3BzLnR5cGUpO1xuXG4gICAgICBkaWRXYXJuQ2hlY2tlZERlZmF1bHRDaGVja2VkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiAhZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlKSB7XG4gICAgICBlcnJvcignJXMgY29udGFpbnMgYW4gaW5wdXQgb2YgdHlwZSAlcyB3aXRoIGJvdGggdmFsdWUgYW5kIGRlZmF1bHRWYWx1ZSBwcm9wcy4gJyArICdJbnB1dCBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAnICsgJyhzcGVjaWZ5IGVpdGhlciB0aGUgdmFsdWUgcHJvcCwgb3IgdGhlIGRlZmF1bHRWYWx1ZSBwcm9wLCBidXQgbm90ICcgKyAnYm90aCkuIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgaW5wdXQgJyArICdlbGVtZW50IGFuZCByZW1vdmUgb25lIG9mIHRoZXNlIHByb3BzLiBNb3JlIGluZm86ICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2NvbnRyb2xsZWQtY29tcG9uZW50cycsIGdldEN1cnJlbnRGaWJlck93bmVyTmFtZUluRGV2T3JOdWxsKCkgfHwgJ0EgY29tcG9uZW50JywgcHJvcHMudHlwZSk7XG5cbiAgICAgIGRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuICB2YXIgZGVmYXVsdFZhbHVlID0gcHJvcHMuZGVmYXVsdFZhbHVlID09IG51bGwgPyAnJyA6IHByb3BzLmRlZmF1bHRWYWx1ZTtcbiAgbm9kZS5fd3JhcHBlclN0YXRlID0ge1xuICAgIGluaXRpYWxDaGVja2VkOiBwcm9wcy5jaGVja2VkICE9IG51bGwgPyBwcm9wcy5jaGVja2VkIDogcHJvcHMuZGVmYXVsdENoZWNrZWQsXG4gICAgaW5pdGlhbFZhbHVlOiBnZXRUb1N0cmluZ1ZhbHVlKHByb3BzLnZhbHVlICE9IG51bGwgPyBwcm9wcy52YWx1ZSA6IGRlZmF1bHRWYWx1ZSksXG4gICAgY29udHJvbGxlZDogaXNDb250cm9sbGVkKHByb3BzKVxuICB9O1xufVxuZnVuY3Rpb24gdXBkYXRlQ2hlY2tlZChlbGVtZW50LCBwcm9wcykge1xuICB2YXIgbm9kZSA9IGVsZW1lbnQ7XG4gIHZhciBjaGVja2VkID0gcHJvcHMuY2hlY2tlZDtcblxuICBpZiAoY2hlY2tlZCAhPSBudWxsKSB7XG4gICAgc2V0VmFsdWVGb3JQcm9wZXJ0eShub2RlLCAnY2hlY2tlZCcsIGNoZWNrZWQsIGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gdXBkYXRlV3JhcHBlcihlbGVtZW50LCBwcm9wcykge1xuICB2YXIgbm9kZSA9IGVsZW1lbnQ7XG5cbiAge1xuICAgIHZhciBjb250cm9sbGVkID0gaXNDb250cm9sbGVkKHByb3BzKTtcblxuICAgIGlmICghbm9kZS5fd3JhcHBlclN0YXRlLmNvbnRyb2xsZWQgJiYgY29udHJvbGxlZCAmJiAhZGlkV2FyblVuY29udHJvbGxlZFRvQ29udHJvbGxlZCkge1xuICAgICAgZXJyb3IoJ0EgY29tcG9uZW50IGlzIGNoYW5naW5nIGFuIHVuY29udHJvbGxlZCBpbnB1dCB0byBiZSBjb250cm9sbGVkLiAnICsgJ1RoaXMgaXMgbGlrZWx5IGNhdXNlZCBieSB0aGUgdmFsdWUgY2hhbmdpbmcgZnJvbSB1bmRlZmluZWQgdG8gJyArICdhIGRlZmluZWQgdmFsdWUsIHdoaWNoIHNob3VsZCBub3QgaGFwcGVuLiAnICsgJ0RlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgaW5wdXQgJyArICdlbGVtZW50IGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGNvbXBvbmVudC4gTW9yZSBpbmZvOiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvY29udHJvbGxlZC1jb21wb25lbnRzJyk7XG5cbiAgICAgIGRpZFdhcm5VbmNvbnRyb2xsZWRUb0NvbnRyb2xsZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChub2RlLl93cmFwcGVyU3RhdGUuY29udHJvbGxlZCAmJiAhY29udHJvbGxlZCAmJiAhZGlkV2FybkNvbnRyb2xsZWRUb1VuY29udHJvbGxlZCkge1xuICAgICAgZXJyb3IoJ0EgY29tcG9uZW50IGlzIGNoYW5naW5nIGEgY29udHJvbGxlZCBpbnB1dCB0byBiZSB1bmNvbnRyb2xsZWQuICcgKyAnVGhpcyBpcyBsaWtlbHkgY2F1c2VkIGJ5IHRoZSB2YWx1ZSBjaGFuZ2luZyBmcm9tIGEgZGVmaW5lZCB0byAnICsgJ3VuZGVmaW5lZCwgd2hpY2ggc2hvdWxkIG5vdCBoYXBwZW4uICcgKyAnRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCBpbnB1dCAnICsgJ2VsZW1lbnQgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgY29tcG9uZW50LiBNb3JlIGluZm86IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHMnKTtcblxuICAgICAgZGlkV2FybkNvbnRyb2xsZWRUb1VuY29udHJvbGxlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlQ2hlY2tlZChlbGVtZW50LCBwcm9wcyk7XG4gIHZhciB2YWx1ZSA9IGdldFRvU3RyaW5nVmFsdWUocHJvcHMudmFsdWUpO1xuICB2YXIgdHlwZSA9IHByb3BzLnR5cGU7XG5cbiAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICBpZiAodHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gMCAmJiBub2RlLnZhbHVlID09PSAnJyB8fCAvLyBXZSBleHBsaWNpdGx5IHdhbnQgdG8gY29lcmNlIHRvIG51bWJlciBoZXJlIGlmIHBvc3NpYmxlLlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICBub2RlLnZhbHVlICE9IHZhbHVlKSB7XG4gICAgICAgIG5vZGUudmFsdWUgPSB0b1N0cmluZyh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChub2RlLnZhbHVlICE9PSB0b1N0cmluZyh2YWx1ZSkpIHtcbiAgICAgIG5vZGUudmFsdWUgPSB0b1N0cmluZyh2YWx1ZSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdWJtaXQnIHx8IHR5cGUgPT09ICdyZXNldCcpIHtcbiAgICAvLyBTdWJtaXQvcmVzZXQgaW5wdXRzIG5lZWQgdGhlIGF0dHJpYnV0ZSByZW1vdmVkIGNvbXBsZXRlbHkgdG8gYXZvaWRcbiAgICAvLyBibGFuay10ZXh0IGJ1dHRvbnMuXG4gICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoJ3ZhbHVlJyk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAge1xuICAgIC8vIFdoZW4gc3luY2luZyB0aGUgdmFsdWUgYXR0cmlidXRlLCB0aGUgdmFsdWUgY29tZXMgZnJvbSBhIGNhc2NhZGUgb2ZcbiAgICAvLyBwcm9wZXJ0aWVzOlxuICAgIC8vICAxLiBUaGUgdmFsdWUgUmVhY3QgcHJvcGVydHlcbiAgICAvLyAgMi4gVGhlIGRlZmF1bHRWYWx1ZSBSZWFjdCBwcm9wZXJ0eVxuICAgIC8vICAzLiBPdGhlcndpc2UgdGhlcmUgc2hvdWxkIGJlIG5vIGNoYW5nZVxuICAgIGlmIChwcm9wcy5oYXNPd25Qcm9wZXJ0eSgndmFsdWUnKSkge1xuICAgICAgc2V0RGVmYXVsdFZhbHVlKG5vZGUsIHByb3BzLnR5cGUsIHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHByb3BzLmhhc093blByb3BlcnR5KCdkZWZhdWx0VmFsdWUnKSkge1xuICAgICAgc2V0RGVmYXVsdFZhbHVlKG5vZGUsIHByb3BzLnR5cGUsIGdldFRvU3RyaW5nVmFsdWUocHJvcHMuZGVmYXVsdFZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAge1xuICAgIC8vIFdoZW4gc3luY2luZyB0aGUgY2hlY2tlZCBhdHRyaWJ1dGUsIGl0IG9ubHkgY2hhbmdlcyB3aGVuIGl0IG5lZWRzXG4gICAgLy8gdG8gYmUgcmVtb3ZlZCwgc3VjaCBhcyB0cmFuc2l0aW9uaW5nIGZyb20gYSBjaGVja2JveCBpbnRvIGEgdGV4dCBpbnB1dFxuICAgIGlmIChwcm9wcy5jaGVja2VkID09IG51bGwgJiYgcHJvcHMuZGVmYXVsdENoZWNrZWQgIT0gbnVsbCkge1xuICAgICAgbm9kZS5kZWZhdWx0Q2hlY2tlZCA9ICEhcHJvcHMuZGVmYXVsdENoZWNrZWQ7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBwb3N0TW91bnRXcmFwcGVyKGVsZW1lbnQsIHByb3BzLCBpc0h5ZHJhdGluZykge1xuICB2YXIgbm9kZSA9IGVsZW1lbnQ7IC8vIERvIG5vdCBhc3NpZ24gdmFsdWUgaWYgaXQgaXMgYWxyZWFkeSBzZXQuIFRoaXMgcHJldmVudHMgdXNlciB0ZXh0IGlucHV0XG4gIC8vIGZyb20gYmVpbmcgbG9zdCBkdXJpbmcgU1NSIGh5ZHJhdGlvbi5cblxuICBpZiAocHJvcHMuaGFzT3duUHJvcGVydHkoJ3ZhbHVlJykgfHwgcHJvcHMuaGFzT3duUHJvcGVydHkoJ2RlZmF1bHRWYWx1ZScpKSB7XG4gICAgdmFyIHR5cGUgPSBwcm9wcy50eXBlO1xuICAgIHZhciBpc0J1dHRvbiA9IHR5cGUgPT09ICdzdWJtaXQnIHx8IHR5cGUgPT09ICdyZXNldCc7IC8vIEF2b2lkIHNldHRpbmcgdmFsdWUgYXR0cmlidXRlIG9uIHN1Ym1pdC9yZXNldCBpbnB1dHMgYXMgaXQgb3ZlcnJpZGVzIHRoZVxuICAgIC8vIGRlZmF1bHQgdmFsdWUgcHJvdmlkZWQgYnkgdGhlIGJyb3dzZXIuIFNlZTogIzEyODcyXG5cbiAgICBpZiAoaXNCdXR0b24gJiYgKHByb3BzLnZhbHVlID09PSB1bmRlZmluZWQgfHwgcHJvcHMudmFsdWUgPT09IG51bGwpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGluaXRpYWxWYWx1ZSA9IHRvU3RyaW5nKG5vZGUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUpOyAvLyBEbyBub3QgYXNzaWduIHZhbHVlIGlmIGl0IGlzIGFscmVhZHkgc2V0LiBUaGlzIHByZXZlbnRzIHVzZXIgdGV4dCBpbnB1dFxuICAgIC8vIGZyb20gYmVpbmcgbG9zdCBkdXJpbmcgU1NSIGh5ZHJhdGlvbi5cblxuICAgIGlmICghaXNIeWRyYXRpbmcpIHtcbiAgICAgIHtcbiAgICAgICAgLy8gV2hlbiBzeW5jaW5nIHRoZSB2YWx1ZSBhdHRyaWJ1dGUsIHRoZSB2YWx1ZSBwcm9wZXJ0eSBzaG91bGQgdXNlXG4gICAgICAgIC8vIHRoZSB3cmFwcGVyU3RhdGUuX2luaXRpYWxWYWx1ZSBwcm9wZXJ0eS4gVGhpcyB1c2VzOlxuICAgICAgICAvL1xuICAgICAgICAvLyAgIDEuIFRoZSB2YWx1ZSBSZWFjdCBwcm9wZXJ0eSB3aGVuIHByZXNlbnRcbiAgICAgICAgLy8gICAyLiBUaGUgZGVmYXVsdFZhbHVlIFJlYWN0IHByb3BlcnR5IHdoZW4gcHJlc2VudFxuICAgICAgICAvLyAgIDMuIEFuIGVtcHR5IHN0cmluZ1xuICAgICAgICBpZiAoaW5pdGlhbFZhbHVlICE9PSBub2RlLnZhbHVlKSB7XG4gICAgICAgICAgbm9kZS52YWx1ZSA9IGluaXRpYWxWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHtcbiAgICAgIC8vIE90aGVyd2lzZSwgdGhlIHZhbHVlIGF0dHJpYnV0ZSBpcyBzeW5jaHJvbml6ZWQgdG8gdGhlIHByb3BlcnR5LFxuICAgICAgLy8gc28gd2UgYXNzaWduIGRlZmF1bHRWYWx1ZSB0byB0aGUgc2FtZSB0aGluZyBhcyB0aGUgdmFsdWUgcHJvcGVydHlcbiAgICAgIC8vIGFzc2lnbm1lbnQgc3RlcCBhYm92ZS5cbiAgICAgIG5vZGUuZGVmYXVsdFZhbHVlID0gaW5pdGlhbFZhbHVlO1xuICAgIH1cbiAgfSAvLyBOb3JtYWxseSwgd2UnZCBqdXN0IGRvIGBub2RlLmNoZWNrZWQgPSBub2RlLmNoZWNrZWRgIHVwb24gaW5pdGlhbCBtb3VudCwgbGVzcyB0aGlzIGJ1Z1xuICAvLyB0aGlzIGlzIG5lZWRlZCB0byB3b3JrIGFyb3VuZCBhIGNocm9tZSBidWcgd2hlcmUgc2V0dGluZyBkZWZhdWx0Q2hlY2tlZFxuICAvLyB3aWxsIHNvbWV0aW1lcyBpbmZsdWVuY2UgdGhlIHZhbHVlIG9mIGNoZWNrZWQgKGV2ZW4gYWZ0ZXIgZGV0YWNobWVudCkuXG4gIC8vIFJlZmVyZW5jZTogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NjA4NDE2XG4gIC8vIFdlIG5lZWQgdG8gdGVtcG9yYXJpbHkgdW5zZXQgbmFtZSB0byBhdm9pZCBkaXNydXB0aW5nIHJhZGlvIGJ1dHRvbiBncm91cHMuXG5cblxuICB2YXIgbmFtZSA9IG5vZGUubmFtZTtcblxuICBpZiAobmFtZSAhPT0gJycpIHtcbiAgICBub2RlLm5hbWUgPSAnJztcbiAgfVxuXG4gIHtcbiAgICAvLyBXaGVuIHN5bmNpbmcgdGhlIGNoZWNrZWQgYXR0cmlidXRlLCBib3RoIHRoZSBjaGVja2VkIHByb3BlcnR5IGFuZFxuICAgIC8vIGF0dHJpYnV0ZSBhcmUgYXNzaWduZWQgYXQgdGhlIHNhbWUgdGltZSB1c2luZyBkZWZhdWx0Q2hlY2tlZC4gVGhpcyB1c2VzOlxuICAgIC8vXG4gICAgLy8gICAxLiBUaGUgY2hlY2tlZCBSZWFjdCBwcm9wZXJ0eSB3aGVuIHByZXNlbnRcbiAgICAvLyAgIDIuIFRoZSBkZWZhdWx0Q2hlY2tlZCBSZWFjdCBwcm9wZXJ0eSB3aGVuIHByZXNlbnRcbiAgICAvLyAgIDMuIE90aGVyd2lzZSwgZmFsc2VcbiAgICBub2RlLmRlZmF1bHRDaGVja2VkID0gIW5vZGUuZGVmYXVsdENoZWNrZWQ7XG4gICAgbm9kZS5kZWZhdWx0Q2hlY2tlZCA9ICEhbm9kZS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkO1xuICB9XG5cbiAgaWYgKG5hbWUgIT09ICcnKSB7XG4gICAgbm9kZS5uYW1lID0gbmFtZTtcbiAgfVxufVxuZnVuY3Rpb24gcmVzdG9yZUNvbnRyb2xsZWRTdGF0ZShlbGVtZW50LCBwcm9wcykge1xuICB2YXIgbm9kZSA9IGVsZW1lbnQ7XG4gIHVwZGF0ZVdyYXBwZXIobm9kZSwgcHJvcHMpO1xuICB1cGRhdGVOYW1lZENvdXNpbnMobm9kZSwgcHJvcHMpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVOYW1lZENvdXNpbnMocm9vdE5vZGUsIHByb3BzKSB7XG4gIHZhciBuYW1lID0gcHJvcHMubmFtZTtcblxuICBpZiAocHJvcHMudHlwZSA9PT0gJ3JhZGlvJyAmJiBuYW1lICE9IG51bGwpIHtcbiAgICB2YXIgcXVlcnlSb290ID0gcm9vdE5vZGU7XG5cbiAgICB3aGlsZSAocXVlcnlSb290LnBhcmVudE5vZGUpIHtcbiAgICAgIHF1ZXJ5Um9vdCA9IHF1ZXJ5Um9vdC5wYXJlbnROb2RlO1xuICAgIH0gLy8gSWYgYHJvb3ROb2RlLmZvcm1gIHdhcyBub24tbnVsbCwgdGhlbiB3ZSBjb3VsZCB0cnkgYGZvcm0uZWxlbWVudHNgLFxuICAgIC8vIGJ1dCB0aGF0IHNvbWV0aW1lcyBiZWhhdmVzIHN0cmFuZ2VseSBpbiBJRTguIFdlIGNvdWxkIGFsc28gdHJ5IHVzaW5nXG4gICAgLy8gYGZvcm0uZ2V0RWxlbWVudHNCeU5hbWVgLCBidXQgdGhhdCB3aWxsIG9ubHkgcmV0dXJuIGRpcmVjdCBjaGlsZHJlblxuICAgIC8vIGFuZCB3b24ndCBpbmNsdWRlIGlucHV0cyB0aGF0IHVzZSB0aGUgSFRNTDUgYGZvcm09YCBhdHRyaWJ1dGUuIFNpbmNlXG4gICAgLy8gdGhlIGlucHV0IG1pZ2h0IG5vdCBldmVuIGJlIGluIGEgZm9ybS4gSXQgbWlnaHQgbm90IGV2ZW4gYmUgaW4gdGhlXG4gICAgLy8gZG9jdW1lbnQuIExldCdzIGp1c3QgdXNlIHRoZSBsb2NhbCBgcXVlcnlTZWxlY3RvckFsbGAgdG8gZW5zdXJlIHdlIGRvbid0XG4gICAgLy8gbWlzcyBhbnl0aGluZy5cblxuXG4gICAge1xuICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbihuYW1lLCAnbmFtZScpO1xuICAgIH1cblxuICAgIHZhciBncm91cCA9IHF1ZXJ5Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtuYW1lPScgKyBKU09OLnN0cmluZ2lmeSgnJyArIG5hbWUpICsgJ11bdHlwZT1cInJhZGlvXCJdJyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdyb3VwLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgb3RoZXJOb2RlID0gZ3JvdXBbaV07XG5cbiAgICAgIGlmIChvdGhlck5vZGUgPT09IHJvb3ROb2RlIHx8IG90aGVyTm9kZS5mb3JtICE9PSByb290Tm9kZS5mb3JtKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfSAvLyBUaGlzIHdpbGwgdGhyb3cgaWYgcmFkaW8gYnV0dG9ucyByZW5kZXJlZCBieSBkaWZmZXJlbnQgY29waWVzIG9mIFJlYWN0XG4gICAgICAvLyBhbmQgdGhlIHNhbWUgbmFtZSBhcmUgcmVuZGVyZWQgaW50byB0aGUgc2FtZSBmb3JtIChzYW1lIGFzICMxOTM5KS5cbiAgICAgIC8vIFRoYXQncyBwcm9iYWJseSBva2F5OyB3ZSBkb24ndCBzdXBwb3J0IGl0IGp1c3QgYXMgd2UgZG9uJ3Qgc3VwcG9ydFxuICAgICAgLy8gbWl4aW5nIFJlYWN0IHJhZGlvIGJ1dHRvbnMgd2l0aCBub24tUmVhY3Qgb25lcy5cblxuXG4gICAgICB2YXIgb3RoZXJQcm9wcyA9IGdldEZpYmVyQ3VycmVudFByb3BzRnJvbU5vZGUob3RoZXJOb2RlKTtcblxuICAgICAgaWYgKCFvdGhlclByb3BzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignUmVhY3RET01JbnB1dDogTWl4aW5nIFJlYWN0IGFuZCBub24tUmVhY3QgcmFkaW8gaW5wdXRzIHdpdGggdGhlICcgKyAnc2FtZSBgbmFtZWAgaXMgbm90IHN1cHBvcnRlZC4nKTtcbiAgICAgIH0gLy8gV2UgbmVlZCB1cGRhdGUgdGhlIHRyYWNrZWQgdmFsdWUgb24gdGhlIG5hbWVkIGNvdXNpbiBzaW5jZSB0aGUgdmFsdWVcbiAgICAgIC8vIHdhcyBjaGFuZ2VkIGJ1dCB0aGUgaW5wdXQgc2F3IG5vIGV2ZW50IG9yIHZhbHVlIHNldFxuXG5cbiAgICAgIHVwZGF0ZVZhbHVlSWZDaGFuZ2VkKG90aGVyTm9kZSk7IC8vIElmIHRoaXMgaXMgYSBjb250cm9sbGVkIHJhZGlvIGJ1dHRvbiBncm91cCwgZm9yY2luZyB0aGUgaW5wdXQgdGhhdFxuICAgICAgLy8gd2FzIHByZXZpb3VzbHkgY2hlY2tlZCB0byB1cGRhdGUgd2lsbCBjYXVzZSBpdCB0byBiZSBjb21lIHJlLWNoZWNrZWRcbiAgICAgIC8vIGFzIGFwcHJvcHJpYXRlLlxuXG4gICAgICB1cGRhdGVXcmFwcGVyKG90aGVyTm9kZSwgb3RoZXJQcm9wcyk7XG4gICAgfVxuICB9XG59IC8vIEluIENocm9tZSwgYXNzaWduaW5nIGRlZmF1bHRWYWx1ZSB0byBjZXJ0YWluIGlucHV0IHR5cGVzIHRyaWdnZXJzIGlucHV0IHZhbGlkYXRpb24uXG4vLyBGb3IgbnVtYmVyIGlucHV0cywgdGhlIGRpc3BsYXkgdmFsdWUgbG9zZXMgdHJhaWxpbmcgZGVjaW1hbCBwb2ludHMuIEZvciBlbWFpbCBpbnB1dHMsXG4vLyBDaHJvbWUgcmFpc2VzIFwiVGhlIHNwZWNpZmllZCB2YWx1ZSA8eD4gaXMgbm90IGEgdmFsaWQgZW1haWwgYWRkcmVzc1wiLlxuLy9cbi8vIEhlcmUgd2UgY2hlY2sgdG8gc2VlIGlmIHRoZSBkZWZhdWx0VmFsdWUgaGFzIGFjdHVhbGx5IGNoYW5nZWQsIGF2b2lkaW5nIHRoZXNlIHByb2JsZW1zXG4vLyB3aGVuIHRoZSB1c2VyIGlzIGlucHV0dGluZyB0ZXh0XG4vL1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy83MjUzXG5cblxuZnVuY3Rpb24gc2V0RGVmYXVsdFZhbHVlKG5vZGUsIHR5cGUsIHZhbHVlKSB7XG4gIGlmICggLy8gRm9jdXNlZCBudW1iZXIgaW5wdXRzIHN5bmNocm9uaXplIG9uIGJsdXIuIFNlZSBDaGFuZ2VFdmVudFBsdWdpbi5qc1xuICB0eXBlICE9PSAnbnVtYmVyJyB8fCBnZXRBY3RpdmVFbGVtZW50KG5vZGUub3duZXJEb2N1bWVudCkgIT09IG5vZGUpIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgbm9kZS5kZWZhdWx0VmFsdWUgPSB0b1N0cmluZyhub2RlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKG5vZGUuZGVmYXVsdFZhbHVlICE9PSB0b1N0cmluZyh2YWx1ZSkpIHtcbiAgICAgIG5vZGUuZGVmYXVsdFZhbHVlID0gdG9TdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgZGlkV2FyblNlbGVjdGVkU2V0T25PcHRpb24gPSBmYWxzZTtcbnZhciBkaWRXYXJuSW52YWxpZENoaWxkID0gZmFsc2U7XG52YXIgZGlkV2FybkludmFsaWRJbm5lckhUTUwgPSBmYWxzZTtcbi8qKlxuICogSW1wbGVtZW50cyBhbiA8b3B0aW9uPiBob3N0IGNvbXBvbmVudCB0aGF0IHdhcm5zIHdoZW4gYHNlbGVjdGVkYCBpcyBzZXQuXG4gKi9cblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wcyhlbGVtZW50LCBwcm9wcykge1xuICB7XG4gICAgLy8gSWYgYSB2YWx1ZSBpcyBub3QgcHJvdmlkZWQsIHRoZW4gdGhlIGNoaWxkcmVuIG11c3QgYmUgc2ltcGxlLlxuICAgIGlmIChwcm9wcy52YWx1ZSA9PSBudWxsKSB7XG4gICAgICBpZiAodHlwZW9mIHByb3BzLmNoaWxkcmVuID09PSAnb2JqZWN0JyAmJiBwcm9wcy5jaGlsZHJlbiAhPT0gbnVsbCkge1xuICAgICAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKHByb3BzLmNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgICBpZiAoY2hpbGQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgY2hpbGQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBjaGlsZCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIWRpZFdhcm5JbnZhbGlkQ2hpbGQpIHtcbiAgICAgICAgICAgIGRpZFdhcm5JbnZhbGlkQ2hpbGQgPSB0cnVlO1xuXG4gICAgICAgICAgICBlcnJvcignQ2Fubm90IGluZmVyIHRoZSBvcHRpb24gdmFsdWUgb2YgY29tcGxleCBjaGlsZHJlbi4gJyArICdQYXNzIGEgYHZhbHVlYCBwcm9wIG9yIHVzZSBhIHBsYWluIHN0cmluZyBhcyBjaGlsZHJlbiB0byA8b3B0aW9uPi4nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCAhPSBudWxsKSB7XG4gICAgICAgIGlmICghZGlkV2FybkludmFsaWRJbm5lckhUTUwpIHtcbiAgICAgICAgICBkaWRXYXJuSW52YWxpZElubmVySFRNTCA9IHRydWU7XG5cbiAgICAgICAgICBlcnJvcignUGFzcyBhIGB2YWx1ZWAgcHJvcCBpZiB5b3Ugc2V0IGRhbmdlcm91c2x5SW5uZXJIVE1MIHNvIFJlYWN0IGtub3dzICcgKyAnd2hpY2ggdmFsdWUgc2hvdWxkIGJlIHNlbGVjdGVkLicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSAvLyBUT0RPOiBSZW1vdmUgc3VwcG9ydCBmb3IgYHNlbGVjdGVkYCBpbiA8b3B0aW9uPi5cblxuXG4gICAgaWYgKHByb3BzLnNlbGVjdGVkICE9IG51bGwgJiYgIWRpZFdhcm5TZWxlY3RlZFNldE9uT3B0aW9uKSB7XG4gICAgICBlcnJvcignVXNlIHRoZSBgZGVmYXVsdFZhbHVlYCBvciBgdmFsdWVgIHByb3BzIG9uIDxzZWxlY3Q+IGluc3RlYWQgb2YgJyArICdzZXR0aW5nIGBzZWxlY3RlZGAgb24gPG9wdGlvbj4uJyk7XG5cbiAgICAgIGRpZFdhcm5TZWxlY3RlZFNldE9uT3B0aW9uID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIHBvc3RNb3VudFdyYXBwZXIkMShlbGVtZW50LCBwcm9wcykge1xuICAvLyB2YWx1ZT1cIlwiIHNob3VsZCBtYWtlIGEgdmFsdWUgYXR0cmlidXRlICgjNjIxOSlcbiAgaWYgKHByb3BzLnZhbHVlICE9IG51bGwpIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndmFsdWUnLCB0b1N0cmluZyhnZXRUb1N0cmluZ1ZhbHVlKHByb3BzLnZhbHVlKSkpO1xuICB9XG59XG5cbnZhciBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZWRlY2xhcmVcblxuZnVuY3Rpb24gaXNBcnJheShhKSB7XG4gIHJldHVybiBpc0FycmF5SW1wbChhKTtcbn1cblxudmFyIGRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSQxO1xuXG57XG4gIGRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSQxID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpIHtcbiAgdmFyIG93bmVyTmFtZSA9IGdldEN1cnJlbnRGaWJlck93bmVyTmFtZUluRGV2T3JOdWxsKCk7XG5cbiAgaWYgKG93bmVyTmFtZSkge1xuICAgIHJldHVybiAnXFxuXFxuQ2hlY2sgdGhlIHJlbmRlciBtZXRob2Qgb2YgYCcgKyBvd25lck5hbWUgKyAnYC4nO1xuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG52YXIgdmFsdWVQcm9wTmFtZXMgPSBbJ3ZhbHVlJywgJ2RlZmF1bHRWYWx1ZSddO1xuLyoqXG4gKiBWYWxpZGF0aW9uIGZ1bmN0aW9uIGZvciBgdmFsdWVgIGFuZCBgZGVmYXVsdFZhbHVlYC5cbiAqL1xuXG5mdW5jdGlvbiBjaGVja1NlbGVjdFByb3BUeXBlcyhwcm9wcykge1xuICB7XG4gICAgY2hlY2tDb250cm9sbGVkVmFsdWVQcm9wcygnc2VsZWN0JywgcHJvcHMpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZVByb3BOYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHByb3BOYW1lID0gdmFsdWVQcm9wTmFtZXNbaV07XG5cbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIHByb3BOYW1lSXNBcnJheSA9IGlzQXJyYXkocHJvcHNbcHJvcE5hbWVdKTtcblxuICAgICAgaWYgKHByb3BzLm11bHRpcGxlICYmICFwcm9wTmFtZUlzQXJyYXkpIHtcbiAgICAgICAgZXJyb3IoJ1RoZSBgJXNgIHByb3Agc3VwcGxpZWQgdG8gPHNlbGVjdD4gbXVzdCBiZSBhbiBhcnJheSBpZiAnICsgJ2BtdWx0aXBsZWAgaXMgdHJ1ZS4lcycsIHByb3BOYW1lLCBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSk7XG4gICAgICB9IGVsc2UgaWYgKCFwcm9wcy5tdWx0aXBsZSAmJiBwcm9wTmFtZUlzQXJyYXkpIHtcbiAgICAgICAgZXJyb3IoJ1RoZSBgJXNgIHByb3Agc3VwcGxpZWQgdG8gPHNlbGVjdD4gbXVzdCBiZSBhIHNjYWxhciAnICsgJ3ZhbHVlIGlmIGBtdWx0aXBsZWAgaXMgZmFsc2UuJXMnLCBwcm9wTmFtZSwgZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVPcHRpb25zKG5vZGUsIG11bHRpcGxlLCBwcm9wVmFsdWUsIHNldERlZmF1bHRTZWxlY3RlZCkge1xuICB2YXIgb3B0aW9ucyA9IG5vZGUub3B0aW9ucztcblxuICBpZiAobXVsdGlwbGUpIHtcbiAgICB2YXIgc2VsZWN0ZWRWYWx1ZXMgPSBwcm9wVmFsdWU7XG4gICAgdmFyIHNlbGVjdGVkVmFsdWUgPSB7fTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIC8vIFByZWZpeCB0byBhdm9pZCBjaGFvcyB3aXRoIHNwZWNpYWwga2V5cy5cbiAgICAgIHNlbGVjdGVkVmFsdWVbJyQnICsgc2VsZWN0ZWRWYWx1ZXNbaV1dID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgb3B0aW9ucy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBzZWxlY3RlZCA9IHNlbGVjdGVkVmFsdWUuaGFzT3duUHJvcGVydHkoJyQnICsgb3B0aW9uc1tfaV0udmFsdWUpO1xuXG4gICAgICBpZiAob3B0aW9uc1tfaV0uc2VsZWN0ZWQgIT09IHNlbGVjdGVkKSB7XG4gICAgICAgIG9wdGlvbnNbX2ldLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChzZWxlY3RlZCAmJiBzZXREZWZhdWx0U2VsZWN0ZWQpIHtcbiAgICAgICAgb3B0aW9uc1tfaV0uZGVmYXVsdFNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gRG8gbm90IHNldCBgc2VsZWN0LnZhbHVlYCBhcyBleGFjdCBiZWhhdmlvciBpc24ndCBjb25zaXN0ZW50IGFjcm9zcyBhbGxcbiAgICAvLyBicm93c2VycyBmb3IgYWxsIGNhc2VzLlxuICAgIHZhciBfc2VsZWN0ZWRWYWx1ZSA9IHRvU3RyaW5nKGdldFRvU3RyaW5nVmFsdWUocHJvcFZhbHVlKSk7XG5cbiAgICB2YXIgZGVmYXVsdFNlbGVjdGVkID0gbnVsbDtcblxuICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IG9wdGlvbnMubGVuZ3RoOyBfaTIrKykge1xuICAgICAgaWYgKG9wdGlvbnNbX2kyXS52YWx1ZSA9PT0gX3NlbGVjdGVkVmFsdWUpIHtcbiAgICAgICAgb3B0aW9uc1tfaTJdLnNlbGVjdGVkID0gdHJ1ZTtcblxuICAgICAgICBpZiAoc2V0RGVmYXVsdFNlbGVjdGVkKSB7XG4gICAgICAgICAgb3B0aW9uc1tfaTJdLmRlZmF1bHRTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChkZWZhdWx0U2VsZWN0ZWQgPT09IG51bGwgJiYgIW9wdGlvbnNbX2kyXS5kaXNhYmxlZCkge1xuICAgICAgICBkZWZhdWx0U2VsZWN0ZWQgPSBvcHRpb25zW19pMl07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRlZmF1bHRTZWxlY3RlZCAhPT0gbnVsbCkge1xuICAgICAgZGVmYXVsdFNlbGVjdGVkLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogSW1wbGVtZW50cyBhIDxzZWxlY3Q+IGhvc3QgY29tcG9uZW50IHRoYXQgYWxsb3dzIG9wdGlvbmFsbHkgc2V0dGluZyB0aGVcbiAqIHByb3BzIGB2YWx1ZWAgYW5kIGBkZWZhdWx0VmFsdWVgLiBJZiBgbXVsdGlwbGVgIGlzIGZhbHNlLCB0aGUgcHJvcCBtdXN0IGJlIGFcbiAqIHN0cmluZ2FibGUuIElmIGBtdWx0aXBsZWAgaXMgdHJ1ZSwgdGhlIHByb3AgbXVzdCBiZSBhbiBhcnJheSBvZiBzdHJpbmdhYmxlcy5cbiAqXG4gKiBJZiBgdmFsdWVgIGlzIG5vdCBzdXBwbGllZCAob3IgbnVsbC91bmRlZmluZWQpLCB1c2VyIGFjdGlvbnMgdGhhdCBjaGFuZ2UgdGhlXG4gKiBzZWxlY3RlZCBvcHRpb24gd2lsbCB0cmlnZ2VyIHVwZGF0ZXMgdG8gdGhlIHJlbmRlcmVkIG9wdGlvbnMuXG4gKlxuICogSWYgaXQgaXMgc3VwcGxpZWQgKGFuZCBub3QgbnVsbC91bmRlZmluZWQpLCB0aGUgcmVuZGVyZWQgb3B0aW9ucyB3aWxsIG5vdFxuICogdXBkYXRlIGluIHJlc3BvbnNlIHRvIHVzZXIgYWN0aW9ucy4gSW5zdGVhZCwgdGhlIGB2YWx1ZWAgcHJvcCBtdXN0IGNoYW5nZSBpblxuICogb3JkZXIgZm9yIHRoZSByZW5kZXJlZCBvcHRpb25zIHRvIHVwZGF0ZS5cbiAqXG4gKiBJZiBgZGVmYXVsdFZhbHVlYCBpcyBwcm92aWRlZCwgYW55IG9wdGlvbnMgd2l0aCB0aGUgc3VwcGxpZWQgdmFsdWVzIHdpbGwgYmVcbiAqIHNlbGVjdGVkLlxuICovXG5cblxuZnVuY3Rpb24gZ2V0SG9zdFByb3BzJDEoZWxlbWVudCwgcHJvcHMpIHtcbiAgcmV0dXJuIGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICB2YWx1ZTogdW5kZWZpbmVkXG4gIH0pO1xufVxuZnVuY3Rpb24gaW5pdFdyYXBwZXJTdGF0ZSQxKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDtcblxuICB7XG4gICAgY2hlY2tTZWxlY3RQcm9wVHlwZXMocHJvcHMpO1xuICB9XG5cbiAgbm9kZS5fd3JhcHBlclN0YXRlID0ge1xuICAgIHdhc011bHRpcGxlOiAhIXByb3BzLm11bHRpcGxlXG4gIH07XG5cbiAge1xuICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmICFkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUkMSkge1xuICAgICAgZXJyb3IoJ1NlbGVjdCBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAnICsgJyhzcGVjaWZ5IGVpdGhlciB0aGUgdmFsdWUgcHJvcCwgb3IgdGhlIGRlZmF1bHRWYWx1ZSBwcm9wLCBidXQgbm90ICcgKyAnYm90aCkuIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgc2VsZWN0ICcgKyAnZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHMnKTtcblxuICAgICAgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlJDEgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gcG9zdE1vdW50V3JhcHBlciQyKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDtcbiAgbm9kZS5tdWx0aXBsZSA9ICEhcHJvcHMubXVsdGlwbGU7XG4gIHZhciB2YWx1ZSA9IHByb3BzLnZhbHVlO1xuXG4gIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgdXBkYXRlT3B0aW9ucyhub2RlLCAhIXByb3BzLm11bHRpcGxlLCB2YWx1ZSwgZmFsc2UpO1xuICB9IGVsc2UgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZSAhPSBudWxsKSB7XG4gICAgdXBkYXRlT3B0aW9ucyhub2RlLCAhIXByb3BzLm11bHRpcGxlLCBwcm9wcy5kZWZhdWx0VmFsdWUsIHRydWUpO1xuICB9XG59XG5mdW5jdGlvbiBwb3N0VXBkYXRlV3JhcHBlcihlbGVtZW50LCBwcm9wcykge1xuICB2YXIgbm9kZSA9IGVsZW1lbnQ7XG4gIHZhciB3YXNNdWx0aXBsZSA9IG5vZGUuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZTtcbiAgbm9kZS5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlID0gISFwcm9wcy5tdWx0aXBsZTtcbiAgdmFyIHZhbHVlID0gcHJvcHMudmFsdWU7XG5cbiAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICB1cGRhdGVPcHRpb25zKG5vZGUsICEhcHJvcHMubXVsdGlwbGUsIHZhbHVlLCBmYWxzZSk7XG4gIH0gZWxzZSBpZiAod2FzTXVsdGlwbGUgIT09ICEhcHJvcHMubXVsdGlwbGUpIHtcbiAgICAvLyBGb3Igc2ltcGxpY2l0eSwgcmVhcHBseSBgZGVmYXVsdFZhbHVlYCBpZiBgbXVsdGlwbGVgIGlzIHRvZ2dsZWQuXG4gICAgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZSAhPSBudWxsKSB7XG4gICAgICB1cGRhdGVPcHRpb25zKG5vZGUsICEhcHJvcHMubXVsdGlwbGUsIHByb3BzLmRlZmF1bHRWYWx1ZSwgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJldmVydCB0aGUgc2VsZWN0IGJhY2sgdG8gaXRzIGRlZmF1bHQgdW5zZWxlY3RlZCBzdGF0ZS5cbiAgICAgIHVwZGF0ZU9wdGlvbnMobm9kZSwgISFwcm9wcy5tdWx0aXBsZSwgcHJvcHMubXVsdGlwbGUgPyBbXSA6ICcnLCBmYWxzZSk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiByZXN0b3JlQ29udHJvbGxlZFN0YXRlJDEoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuICB2YXIgdmFsdWUgPSBwcm9wcy52YWx1ZTtcblxuICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgIHVwZGF0ZU9wdGlvbnMobm9kZSwgISFwcm9wcy5tdWx0aXBsZSwgdmFsdWUsIGZhbHNlKTtcbiAgfVxufVxuXG52YXIgZGlkV2FyblZhbERlZmF1bHRWYWwgPSBmYWxzZTtcblxuLyoqXG4gKiBJbXBsZW1lbnRzIGEgPHRleHRhcmVhPiBob3N0IGNvbXBvbmVudCB0aGF0IGFsbG93cyBzZXR0aW5nIGB2YWx1ZWAsIGFuZFxuICogYGRlZmF1bHRWYWx1ZWAuIFRoaXMgZGlmZmVycyBmcm9tIHRoZSB0cmFkaXRpb25hbCBET00gQVBJIGJlY2F1c2UgdmFsdWUgaXNcbiAqIHVzdWFsbHkgc2V0IGFzIFBDREFUQSBjaGlsZHJlbi5cbiAqXG4gKiBJZiBgdmFsdWVgIGlzIG5vdCBzdXBwbGllZCAob3IgbnVsbC91bmRlZmluZWQpLCB1c2VyIGFjdGlvbnMgdGhhdCBhZmZlY3QgdGhlXG4gKiB2YWx1ZSB3aWxsIHRyaWdnZXIgdXBkYXRlcyB0byB0aGUgZWxlbWVudC5cbiAqXG4gKiBJZiBgdmFsdWVgIGlzIHN1cHBsaWVkIChhbmQgbm90IG51bGwvdW5kZWZpbmVkKSwgdGhlIHJlbmRlcmVkIGVsZW1lbnQgd2lsbFxuICogbm90IHRyaWdnZXIgdXBkYXRlcyB0byB0aGUgZWxlbWVudC4gSW5zdGVhZCwgdGhlIGB2YWx1ZWAgcHJvcCBtdXN0IGNoYW5nZSBpblxuICogb3JkZXIgZm9yIHRoZSByZW5kZXJlZCBlbGVtZW50IHRvIGJlIHVwZGF0ZWQuXG4gKlxuICogVGhlIHJlbmRlcmVkIGVsZW1lbnQgd2lsbCBiZSBpbml0aWFsaXplZCB3aXRoIGFuIGVtcHR5IHZhbHVlLCB0aGUgcHJvcFxuICogYGRlZmF1bHRWYWx1ZWAgaWYgc3BlY2lmaWVkLCBvciB0aGUgY2hpbGRyZW4gY29udGVudCAoZGVwcmVjYXRlZCkuXG4gKi9cbmZ1bmN0aW9uIGdldEhvc3RQcm9wcyQyKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDtcblxuICBpZiAocHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgIT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYCBkb2VzIG5vdCBtYWtlIHNlbnNlIG9uIDx0ZXh0YXJlYT4uJyk7XG4gIH0gLy8gQWx3YXlzIHNldCBjaGlsZHJlbiB0byB0aGUgc2FtZSB0aGluZy4gSW4gSUU5LCB0aGUgc2VsZWN0aW9uIHJhbmdlIHdpbGxcbiAgLy8gZ2V0IHJlc2V0IGlmIGB0ZXh0Q29udGVudGAgaXMgbXV0YXRlZC4gIFdlIGNvdWxkIGFkZCBhIGNoZWNrIGluIHNldFRleHRDb250ZW50XG4gIC8vIHRvIG9ubHkgc2V0IHRoZSB2YWx1ZSBpZi93aGVuIHRoZSB2YWx1ZSBkaWZmZXJzIGZyb20gdGhlIG5vZGUgdmFsdWUgKHdoaWNoIHdvdWxkXG4gIC8vIGNvbXBsZXRlbHkgc29sdmUgdGhpcyBJRTkgYnVnKSwgYnV0IFNlYmFzdGlhbitTb3BoaWUgc2VlbWVkIHRvIGxpa2UgdGhpc1xuICAvLyBzb2x1dGlvbi4gVGhlIHZhbHVlIGNhbiBiZSBhIGJvb2xlYW4gb3Igb2JqZWN0IHNvIHRoYXQncyB3aHkgaXQncyBmb3JjZWRcbiAgLy8gdG8gYmUgYSBzdHJpbmcuXG5cblxuICB2YXIgaG9zdFByb3BzID0gYXNzaWduKHt9LCBwcm9wcywge1xuICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgZGVmYXVsdFZhbHVlOiB1bmRlZmluZWQsXG4gICAgY2hpbGRyZW46IHRvU3RyaW5nKG5vZGUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUpXG4gIH0pO1xuXG4gIHJldHVybiBob3N0UHJvcHM7XG59XG5mdW5jdGlvbiBpbml0V3JhcHBlclN0YXRlJDIoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuXG4gIHtcbiAgICBjaGVja0NvbnRyb2xsZWRWYWx1ZVByb3BzKCd0ZXh0YXJlYScsIHByb3BzKTtcblxuICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmICFkaWRXYXJuVmFsRGVmYXVsdFZhbCkge1xuICAgICAgZXJyb3IoJyVzIGNvbnRhaW5zIGEgdGV4dGFyZWEgd2l0aCBib3RoIHZhbHVlIGFuZCBkZWZhdWx0VmFsdWUgcHJvcHMuICcgKyAnVGV4dGFyZWEgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgJyArICcoc3BlY2lmeSBlaXRoZXIgdGhlIHZhbHVlIHByb3AsIG9yIHRoZSBkZWZhdWx0VmFsdWUgcHJvcCwgYnV0IG5vdCAnICsgJ2JvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIHRleHRhcmVhICcgKyAnYW5kIHJlbW92ZSBvbmUgb2YgdGhlc2UgcHJvcHMuIE1vcmUgaW5mbzogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvY29udHJvbGxlZC1jb21wb25lbnRzJywgZ2V0Q3VycmVudEZpYmVyT3duZXJOYW1lSW5EZXZPck51bGwoKSB8fCAnQSBjb21wb25lbnQnKTtcblxuICAgICAgZGlkV2FyblZhbERlZmF1bHRWYWwgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHZhciBpbml0aWFsVmFsdWUgPSBwcm9wcy52YWx1ZTsgLy8gT25seSBib3RoZXIgZmV0Y2hpbmcgZGVmYXVsdCB2YWx1ZSBpZiB3ZSdyZSBnb2luZyB0byB1c2UgaXRcblxuICBpZiAoaW5pdGlhbFZhbHVlID09IG51bGwpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gcHJvcHMuZGVmYXVsdFZhbHVlO1xuXG4gICAgaWYgKGNoaWxkcmVuICE9IG51bGwpIHtcbiAgICAgIHtcbiAgICAgICAgZXJyb3IoJ1VzZSB0aGUgYGRlZmF1bHRWYWx1ZWAgb3IgYHZhbHVlYCBwcm9wcyBpbnN0ZWFkIG9mIHNldHRpbmcgJyArICdjaGlsZHJlbiBvbiA8dGV4dGFyZWE+LicpO1xuICAgICAgfVxuXG4gICAgICB7XG4gICAgICAgIGlmIChkZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSWYgeW91IHN1cHBseSBgZGVmYXVsdFZhbHVlYCBvbiBhIDx0ZXh0YXJlYT4sIGRvIG5vdCBwYXNzIGNoaWxkcmVuLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgICAgICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignPHRleHRhcmVhPiBjYW4gb25seSBoYXZlIGF0IG1vc3Qgb25lIGNoaWxkLicpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW5bMF07XG4gICAgICAgIH1cblxuICAgICAgICBkZWZhdWx0VmFsdWUgPSBjaGlsZHJlbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGVmYXVsdFZhbHVlID09IG51bGwpIHtcbiAgICAgIGRlZmF1bHRWYWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIGluaXRpYWxWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIG5vZGUuX3dyYXBwZXJTdGF0ZSA9IHtcbiAgICBpbml0aWFsVmFsdWU6IGdldFRvU3RyaW5nVmFsdWUoaW5pdGlhbFZhbHVlKVxuICB9O1xufVxuZnVuY3Rpb24gdXBkYXRlV3JhcHBlciQxKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDtcbiAgdmFyIHZhbHVlID0gZ2V0VG9TdHJpbmdWYWx1ZShwcm9wcy52YWx1ZSk7XG4gIHZhciBkZWZhdWx0VmFsdWUgPSBnZXRUb1N0cmluZ1ZhbHVlKHByb3BzLmRlZmF1bHRWYWx1ZSk7XG5cbiAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAvLyBDYXN0IGB2YWx1ZWAgdG8gYSBzdHJpbmcgdG8gZW5zdXJlIHRoZSB2YWx1ZSBpcyBzZXQgY29ycmVjdGx5LiBXaGlsZVxuICAgIC8vIGJyb3dzZXJzIHR5cGljYWxseSBkbyB0aGlzIGFzIG5lY2Vzc2FyeSwganNkb20gZG9lc24ndC5cbiAgICB2YXIgbmV3VmFsdWUgPSB0b1N0cmluZyh2YWx1ZSk7IC8vIFRvIGF2b2lkIHNpZGUgZWZmZWN0cyAoc3VjaCBhcyBsb3NpbmcgdGV4dCBzZWxlY3Rpb24pLCBvbmx5IHNldCB2YWx1ZSBpZiBjaGFuZ2VkXG5cbiAgICBpZiAobmV3VmFsdWUgIT09IG5vZGUudmFsdWUpIHtcbiAgICAgIG5vZGUudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZGVmYXVsdFZhbHVlID09IG51bGwgJiYgbm9kZS5kZWZhdWx0VmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgICBub2RlLmRlZmF1bHRWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChkZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuICAgIG5vZGUuZGVmYXVsdFZhbHVlID0gdG9TdHJpbmcoZGVmYXVsdFZhbHVlKTtcbiAgfVxufVxuZnVuY3Rpb24gcG9zdE1vdW50V3JhcHBlciQzKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDsgLy8gVGhpcyBpcyBpbiBwb3N0TW91bnQgYmVjYXVzZSB3ZSBuZWVkIGFjY2VzcyB0byB0aGUgRE9NIG5vZGUsIHdoaWNoIGlzIG5vdFxuICAvLyBhdmFpbGFibGUgdW50aWwgYWZ0ZXIgdGhlIGNvbXBvbmVudCBoYXMgbW91bnRlZC5cblxuICB2YXIgdGV4dENvbnRlbnQgPSBub2RlLnRleHRDb250ZW50OyAvLyBPbmx5IHNldCBub2RlLnZhbHVlIGlmIHRleHRDb250ZW50IGlzIGVxdWFsIHRvIHRoZSBleHBlY3RlZFxuICAvLyBpbml0aWFsIHZhbHVlLiBJbiBJRTEwL0lFMTEgdGhlcmUgaXMgYSBidWcgd2hlcmUgdGhlIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZVxuICAvLyB3aWxsIHBvcHVsYXRlIHRleHRDb250ZW50IGFzIHdlbGwuXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vbWljcm9zb2Z0LWVkZ2UvcGxhdGZvcm0vaXNzdWVzLzEwMTUyNS9cblxuICBpZiAodGV4dENvbnRlbnQgPT09IG5vZGUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUpIHtcbiAgICBpZiAodGV4dENvbnRlbnQgIT09ICcnICYmIHRleHRDb250ZW50ICE9PSBudWxsKSB7XG4gICAgICBub2RlLnZhbHVlID0gdGV4dENvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiByZXN0b3JlQ29udHJvbGxlZFN0YXRlJDIoZWxlbWVudCwgcHJvcHMpIHtcbiAgLy8gRE9NIGNvbXBvbmVudCBpcyBzdGlsbCBtb3VudGVkOyB1cGRhdGVcbiAgdXBkYXRlV3JhcHBlciQxKGVsZW1lbnQsIHByb3BzKTtcbn1cblxudmFyIEhUTUxfTkFNRVNQQUNFID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnO1xudmFyIE1BVEhfTkFNRVNQQUNFID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwnO1xudmFyIFNWR19OQU1FU1BBQ0UgPSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnOyAvLyBBc3N1bWVzIHRoZXJlIGlzIG5vIHBhcmVudCBuYW1lc3BhY2UuXG5cbmZ1bmN0aW9uIGdldEludHJpbnNpY05hbWVzcGFjZSh0eXBlKSB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ3N2Zyc6XG4gICAgICByZXR1cm4gU1ZHX05BTUVTUEFDRTtcblxuICAgIGNhc2UgJ21hdGgnOlxuICAgICAgcmV0dXJuIE1BVEhfTkFNRVNQQUNFO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBIVE1MX05BTUVTUEFDRTtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0Q2hpbGROYW1lc3BhY2UocGFyZW50TmFtZXNwYWNlLCB0eXBlKSB7XG4gIGlmIChwYXJlbnROYW1lc3BhY2UgPT0gbnVsbCB8fCBwYXJlbnROYW1lc3BhY2UgPT09IEhUTUxfTkFNRVNQQUNFKSB7XG4gICAgLy8gTm8gKG9yIGRlZmF1bHQpIHBhcmVudCBuYW1lc3BhY2U6IHBvdGVudGlhbCBlbnRyeSBwb2ludC5cbiAgICByZXR1cm4gZ2V0SW50cmluc2ljTmFtZXNwYWNlKHR5cGUpO1xuICB9XG5cbiAgaWYgKHBhcmVudE5hbWVzcGFjZSA9PT0gU1ZHX05BTUVTUEFDRSAmJiB0eXBlID09PSAnZm9yZWlnbk9iamVjdCcpIHtcbiAgICAvLyBXZSdyZSBsZWF2aW5nIFNWRy5cbiAgICByZXR1cm4gSFRNTF9OQU1FU1BBQ0U7XG4gIH0gLy8gQnkgZGVmYXVsdCwgcGFzcyBuYW1lc3BhY2UgYmVsb3cuXG5cblxuICByZXR1cm4gcGFyZW50TmFtZXNwYWNlO1xufVxuXG4vKiBnbG9iYWxzIE1TQXBwICovXG5cbi8qKlxuICogQ3JlYXRlIGEgZnVuY3Rpb24gd2hpY2ggaGFzICd1bnNhZmUnIHByaXZpbGVnZXMgKHJlcXVpcmVkIGJ5IHdpbmRvd3M4IGFwcHMpXG4gKi9cbnZhciBjcmVhdGVNaWNyb3NvZnRVbnNhZmVMb2NhbEZ1bmN0aW9uID0gZnVuY3Rpb24gKGZ1bmMpIHtcbiAgaWYgKHR5cGVvZiBNU0FwcCAhPT0gJ3VuZGVmaW5lZCcgJiYgTVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMpIHtcbiAgICAgIE1TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmMoYXJnMCwgYXJnMSwgYXJnMiwgYXJnMyk7XG4gICAgICB9KTtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmdW5jO1xuICB9XG59O1xuXG52YXIgcmV1c2FibGVTVkdDb250YWluZXI7XG4vKipcbiAqIFNldCB0aGUgaW5uZXJIVE1MIHByb3BlcnR5IG9mIGEgbm9kZVxuICpcbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gbm9kZVxuICogQHBhcmFtIHtzdHJpbmd9IGh0bWxcbiAqIEBpbnRlcm5hbFxuICovXG5cbnZhciBzZXRJbm5lckhUTUwgPSBjcmVhdGVNaWNyb3NvZnRVbnNhZmVMb2NhbEZ1bmN0aW9uKGZ1bmN0aW9uIChub2RlLCBodG1sKSB7XG4gIGlmIChub2RlLm5hbWVzcGFjZVVSSSA9PT0gU1ZHX05BTUVTUEFDRSkge1xuXG4gICAgaWYgKCEoJ2lubmVySFRNTCcgaW4gbm9kZSkpIHtcbiAgICAgIC8vIElFIGRvZXMgbm90IGhhdmUgaW5uZXJIVE1MIGZvciBTVkcgbm9kZXMsIHNvIGluc3RlYWQgd2UgaW5qZWN0IHRoZVxuICAgICAgLy8gbmV3IG1hcmt1cCBpbiBhIHRlbXAgbm9kZSBhbmQgdGhlbiBtb3ZlIHRoZSBjaGlsZCBub2RlcyBhY3Jvc3MgaW50b1xuICAgICAgLy8gdGhlIHRhcmdldCBub2RlXG4gICAgICByZXVzYWJsZVNWR0NvbnRhaW5lciA9IHJldXNhYmxlU1ZHQ29udGFpbmVyIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgcmV1c2FibGVTVkdDb250YWluZXIuaW5uZXJIVE1MID0gJzxzdmc+JyArIGh0bWwudmFsdWVPZigpLnRvU3RyaW5nKCkgKyAnPC9zdmc+JztcbiAgICAgIHZhciBzdmdOb2RlID0gcmV1c2FibGVTVkdDb250YWluZXIuZmlyc3RDaGlsZDtcblxuICAgICAgd2hpbGUgKG5vZGUuZmlyc3RDaGlsZCkge1xuICAgICAgICBub2RlLnJlbW92ZUNoaWxkKG5vZGUuZmlyc3RDaGlsZCk7XG4gICAgICB9XG5cbiAgICAgIHdoaWxlIChzdmdOb2RlLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgbm9kZS5hcHBlbmRDaGlsZChzdmdOb2RlLmZpcnN0Q2hpbGQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgbm9kZS5pbm5lckhUTUwgPSBodG1sO1xufSk7XG5cbi8qKlxuICogSFRNTCBub2RlVHlwZSB2YWx1ZXMgdGhhdCByZXByZXNlbnQgdGhlIHR5cGUgb2YgdGhlIG5vZGVcbiAqL1xudmFyIEVMRU1FTlRfTk9ERSA9IDE7XG52YXIgVEVYVF9OT0RFID0gMztcbnZhciBDT01NRU5UX05PREUgPSA4O1xudmFyIERPQ1VNRU5UX05PREUgPSA5O1xudmFyIERPQ1VNRU5UX0ZSQUdNRU5UX05PREUgPSAxMTtcblxuLyoqXG4gKiBTZXQgdGhlIHRleHRDb250ZW50IHByb3BlcnR5IG9mIGEgbm9kZS4gRm9yIHRleHQgdXBkYXRlcywgaXQncyBmYXN0ZXJcbiAqIHRvIHNldCB0aGUgYG5vZGVWYWx1ZWAgb2YgdGhlIFRleHQgbm9kZSBkaXJlY3RseSBpbnN0ZWFkIG9mIHVzaW5nXG4gKiBgLnRleHRDb250ZW50YCB3aGljaCB3aWxsIHJlbW92ZSB0aGUgZXhpc3Rpbmcgbm9kZSBhbmQgY3JlYXRlIGEgbmV3IG9uZS5cbiAqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG5vZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XG4gKiBAaW50ZXJuYWxcbiAqL1xuXG52YXIgc2V0VGV4dENvbnRlbnQgPSBmdW5jdGlvbiAobm9kZSwgdGV4dCkge1xuICBpZiAodGV4dCkge1xuICAgIHZhciBmaXJzdENoaWxkID0gbm9kZS5maXJzdENoaWxkO1xuXG4gICAgaWYgKGZpcnN0Q2hpbGQgJiYgZmlyc3RDaGlsZCA9PT0gbm9kZS5sYXN0Q2hpbGQgJiYgZmlyc3RDaGlsZC5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFKSB7XG4gICAgICBmaXJzdENoaWxkLm5vZGVWYWx1ZSA9IHRleHQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgbm9kZS50ZXh0Q29udGVudCA9IHRleHQ7XG59O1xuXG4vLyBMaXN0IGRlcml2ZWQgZnJvbSBHZWNrbyBzb3VyY2UgY29kZTpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tvLWRldi9ibG9iLzRlNjM4ZWZjNzEvbGF5b3V0L3N0eWxlL3Rlc3QvcHJvcGVydHlfZGF0YWJhc2UuanNcbnZhciBzaG9ydGhhbmRUb0xvbmdoYW5kID0ge1xuICBhbmltYXRpb246IFsnYW5pbWF0aW9uRGVsYXknLCAnYW5pbWF0aW9uRGlyZWN0aW9uJywgJ2FuaW1hdGlvbkR1cmF0aW9uJywgJ2FuaW1hdGlvbkZpbGxNb2RlJywgJ2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50JywgJ2FuaW1hdGlvbk5hbWUnLCAnYW5pbWF0aW9uUGxheVN0YXRlJywgJ2FuaW1hdGlvblRpbWluZ0Z1bmN0aW9uJ10sXG4gIGJhY2tncm91bmQ6IFsnYmFja2dyb3VuZEF0dGFjaG1lbnQnLCAnYmFja2dyb3VuZENsaXAnLCAnYmFja2dyb3VuZENvbG9yJywgJ2JhY2tncm91bmRJbWFnZScsICdiYWNrZ3JvdW5kT3JpZ2luJywgJ2JhY2tncm91bmRQb3NpdGlvblgnLCAnYmFja2dyb3VuZFBvc2l0aW9uWScsICdiYWNrZ3JvdW5kUmVwZWF0JywgJ2JhY2tncm91bmRTaXplJ10sXG4gIGJhY2tncm91bmRQb3NpdGlvbjogWydiYWNrZ3JvdW5kUG9zaXRpb25YJywgJ2JhY2tncm91bmRQb3NpdGlvblknXSxcbiAgYm9yZGVyOiBbJ2JvcmRlckJvdHRvbUNvbG9yJywgJ2JvcmRlckJvdHRvbVN0eWxlJywgJ2JvcmRlckJvdHRvbVdpZHRoJywgJ2JvcmRlckltYWdlT3V0c2V0JywgJ2JvcmRlckltYWdlUmVwZWF0JywgJ2JvcmRlckltYWdlU2xpY2UnLCAnYm9yZGVySW1hZ2VTb3VyY2UnLCAnYm9yZGVySW1hZ2VXaWR0aCcsICdib3JkZXJMZWZ0Q29sb3InLCAnYm9yZGVyTGVmdFN0eWxlJywgJ2JvcmRlckxlZnRXaWR0aCcsICdib3JkZXJSaWdodENvbG9yJywgJ2JvcmRlclJpZ2h0U3R5bGUnLCAnYm9yZGVyUmlnaHRXaWR0aCcsICdib3JkZXJUb3BDb2xvcicsICdib3JkZXJUb3BTdHlsZScsICdib3JkZXJUb3BXaWR0aCddLFxuICBib3JkZXJCbG9ja0VuZDogWydib3JkZXJCbG9ja0VuZENvbG9yJywgJ2JvcmRlckJsb2NrRW5kU3R5bGUnLCAnYm9yZGVyQmxvY2tFbmRXaWR0aCddLFxuICBib3JkZXJCbG9ja1N0YXJ0OiBbJ2JvcmRlckJsb2NrU3RhcnRDb2xvcicsICdib3JkZXJCbG9ja1N0YXJ0U3R5bGUnLCAnYm9yZGVyQmxvY2tTdGFydFdpZHRoJ10sXG4gIGJvcmRlckJvdHRvbTogWydib3JkZXJCb3R0b21Db2xvcicsICdib3JkZXJCb3R0b21TdHlsZScsICdib3JkZXJCb3R0b21XaWR0aCddLFxuICBib3JkZXJDb2xvcjogWydib3JkZXJCb3R0b21Db2xvcicsICdib3JkZXJMZWZ0Q29sb3InLCAnYm9yZGVyUmlnaHRDb2xvcicsICdib3JkZXJUb3BDb2xvciddLFxuICBib3JkZXJJbWFnZTogWydib3JkZXJJbWFnZU91dHNldCcsICdib3JkZXJJbWFnZVJlcGVhdCcsICdib3JkZXJJbWFnZVNsaWNlJywgJ2JvcmRlckltYWdlU291cmNlJywgJ2JvcmRlckltYWdlV2lkdGgnXSxcbiAgYm9yZGVySW5saW5lRW5kOiBbJ2JvcmRlcklubGluZUVuZENvbG9yJywgJ2JvcmRlcklubGluZUVuZFN0eWxlJywgJ2JvcmRlcklubGluZUVuZFdpZHRoJ10sXG4gIGJvcmRlcklubGluZVN0YXJ0OiBbJ2JvcmRlcklubGluZVN0YXJ0Q29sb3InLCAnYm9yZGVySW5saW5lU3RhcnRTdHlsZScsICdib3JkZXJJbmxpbmVTdGFydFdpZHRoJ10sXG4gIGJvcmRlckxlZnQ6IFsnYm9yZGVyTGVmdENvbG9yJywgJ2JvcmRlckxlZnRTdHlsZScsICdib3JkZXJMZWZ0V2lkdGgnXSxcbiAgYm9yZGVyUmFkaXVzOiBbJ2JvcmRlckJvdHRvbUxlZnRSYWRpdXMnLCAnYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMnLCAnYm9yZGVyVG9wTGVmdFJhZGl1cycsICdib3JkZXJUb3BSaWdodFJhZGl1cyddLFxuICBib3JkZXJSaWdodDogWydib3JkZXJSaWdodENvbG9yJywgJ2JvcmRlclJpZ2h0U3R5bGUnLCAnYm9yZGVyUmlnaHRXaWR0aCddLFxuICBib3JkZXJTdHlsZTogWydib3JkZXJCb3R0b21TdHlsZScsICdib3JkZXJMZWZ0U3R5bGUnLCAnYm9yZGVyUmlnaHRTdHlsZScsICdib3JkZXJUb3BTdHlsZSddLFxuICBib3JkZXJUb3A6IFsnYm9yZGVyVG9wQ29sb3InLCAnYm9yZGVyVG9wU3R5bGUnLCAnYm9yZGVyVG9wV2lkdGgnXSxcbiAgYm9yZGVyV2lkdGg6IFsnYm9yZGVyQm90dG9tV2lkdGgnLCAnYm9yZGVyTGVmdFdpZHRoJywgJ2JvcmRlclJpZ2h0V2lkdGgnLCAnYm9yZGVyVG9wV2lkdGgnXSxcbiAgY29sdW1uUnVsZTogWydjb2x1bW5SdWxlQ29sb3InLCAnY29sdW1uUnVsZVN0eWxlJywgJ2NvbHVtblJ1bGVXaWR0aCddLFxuICBjb2x1bW5zOiBbJ2NvbHVtbkNvdW50JywgJ2NvbHVtbldpZHRoJ10sXG4gIGZsZXg6IFsnZmxleEJhc2lzJywgJ2ZsZXhHcm93JywgJ2ZsZXhTaHJpbmsnXSxcbiAgZmxleEZsb3c6IFsnZmxleERpcmVjdGlvbicsICdmbGV4V3JhcCddLFxuICBmb250OiBbJ2ZvbnRGYW1pbHknLCAnZm9udEZlYXR1cmVTZXR0aW5ncycsICdmb250S2VybmluZycsICdmb250TGFuZ3VhZ2VPdmVycmlkZScsICdmb250U2l6ZScsICdmb250U2l6ZUFkanVzdCcsICdmb250U3RyZXRjaCcsICdmb250U3R5bGUnLCAnZm9udFZhcmlhbnQnLCAnZm9udFZhcmlhbnRBbHRlcm5hdGVzJywgJ2ZvbnRWYXJpYW50Q2FwcycsICdmb250VmFyaWFudEVhc3RBc2lhbicsICdmb250VmFyaWFudExpZ2F0dXJlcycsICdmb250VmFyaWFudE51bWVyaWMnLCAnZm9udFZhcmlhbnRQb3NpdGlvbicsICdmb250V2VpZ2h0JywgJ2xpbmVIZWlnaHQnXSxcbiAgZm9udFZhcmlhbnQ6IFsnZm9udFZhcmlhbnRBbHRlcm5hdGVzJywgJ2ZvbnRWYXJpYW50Q2FwcycsICdmb250VmFyaWFudEVhc3RBc2lhbicsICdmb250VmFyaWFudExpZ2F0dXJlcycsICdmb250VmFyaWFudE51bWVyaWMnLCAnZm9udFZhcmlhbnRQb3NpdGlvbiddLFxuICBnYXA6IFsnY29sdW1uR2FwJywgJ3Jvd0dhcCddLFxuICBncmlkOiBbJ2dyaWRBdXRvQ29sdW1ucycsICdncmlkQXV0b0Zsb3cnLCAnZ3JpZEF1dG9Sb3dzJywgJ2dyaWRUZW1wbGF0ZUFyZWFzJywgJ2dyaWRUZW1wbGF0ZUNvbHVtbnMnLCAnZ3JpZFRlbXBsYXRlUm93cyddLFxuICBncmlkQXJlYTogWydncmlkQ29sdW1uRW5kJywgJ2dyaWRDb2x1bW5TdGFydCcsICdncmlkUm93RW5kJywgJ2dyaWRSb3dTdGFydCddLFxuICBncmlkQ29sdW1uOiBbJ2dyaWRDb2x1bW5FbmQnLCAnZ3JpZENvbHVtblN0YXJ0J10sXG4gIGdyaWRDb2x1bW5HYXA6IFsnY29sdW1uR2FwJ10sXG4gIGdyaWRHYXA6IFsnY29sdW1uR2FwJywgJ3Jvd0dhcCddLFxuICBncmlkUm93OiBbJ2dyaWRSb3dFbmQnLCAnZ3JpZFJvd1N0YXJ0J10sXG4gIGdyaWRSb3dHYXA6IFsncm93R2FwJ10sXG4gIGdyaWRUZW1wbGF0ZTogWydncmlkVGVtcGxhdGVBcmVhcycsICdncmlkVGVtcGxhdGVDb2x1bW5zJywgJ2dyaWRUZW1wbGF0ZVJvd3MnXSxcbiAgbGlzdFN0eWxlOiBbJ2xpc3RTdHlsZUltYWdlJywgJ2xpc3RTdHlsZVBvc2l0aW9uJywgJ2xpc3RTdHlsZVR5cGUnXSxcbiAgbWFyZ2luOiBbJ21hcmdpbkJvdHRvbScsICdtYXJnaW5MZWZ0JywgJ21hcmdpblJpZ2h0JywgJ21hcmdpblRvcCddLFxuICBtYXJrZXI6IFsnbWFya2VyRW5kJywgJ21hcmtlck1pZCcsICdtYXJrZXJTdGFydCddLFxuICBtYXNrOiBbJ21hc2tDbGlwJywgJ21hc2tDb21wb3NpdGUnLCAnbWFza0ltYWdlJywgJ21hc2tNb2RlJywgJ21hc2tPcmlnaW4nLCAnbWFza1Bvc2l0aW9uWCcsICdtYXNrUG9zaXRpb25ZJywgJ21hc2tSZXBlYXQnLCAnbWFza1NpemUnXSxcbiAgbWFza1Bvc2l0aW9uOiBbJ21hc2tQb3NpdGlvblgnLCAnbWFza1Bvc2l0aW9uWSddLFxuICBvdXRsaW5lOiBbJ291dGxpbmVDb2xvcicsICdvdXRsaW5lU3R5bGUnLCAnb3V0bGluZVdpZHRoJ10sXG4gIG92ZXJmbG93OiBbJ292ZXJmbG93WCcsICdvdmVyZmxvd1knXSxcbiAgcGFkZGluZzogWydwYWRkaW5nQm90dG9tJywgJ3BhZGRpbmdMZWZ0JywgJ3BhZGRpbmdSaWdodCcsICdwYWRkaW5nVG9wJ10sXG4gIHBsYWNlQ29udGVudDogWydhbGlnbkNvbnRlbnQnLCAnanVzdGlmeUNvbnRlbnQnXSxcbiAgcGxhY2VJdGVtczogWydhbGlnbkl0ZW1zJywgJ2p1c3RpZnlJdGVtcyddLFxuICBwbGFjZVNlbGY6IFsnYWxpZ25TZWxmJywgJ2p1c3RpZnlTZWxmJ10sXG4gIHRleHREZWNvcmF0aW9uOiBbJ3RleHREZWNvcmF0aW9uQ29sb3InLCAndGV4dERlY29yYXRpb25MaW5lJywgJ3RleHREZWNvcmF0aW9uU3R5bGUnXSxcbiAgdGV4dEVtcGhhc2lzOiBbJ3RleHRFbXBoYXNpc0NvbG9yJywgJ3RleHRFbXBoYXNpc1N0eWxlJ10sXG4gIHRyYW5zaXRpb246IFsndHJhbnNpdGlvbkRlbGF5JywgJ3RyYW5zaXRpb25EdXJhdGlvbicsICd0cmFuc2l0aW9uUHJvcGVydHknLCAndHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uJ10sXG4gIHdvcmRXcmFwOiBbJ292ZXJmbG93V3JhcCddXG59O1xuXG4vKipcbiAqIENTUyBwcm9wZXJ0aWVzIHdoaWNoIGFjY2VwdCBudW1iZXJzIGJ1dCBhcmUgbm90IGluIHVuaXRzIG9mIFwicHhcIi5cbiAqL1xudmFyIGlzVW5pdGxlc3NOdW1iZXIgPSB7XG4gIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiB0cnVlLFxuICBhc3BlY3RSYXRpbzogdHJ1ZSxcbiAgYm9yZGVySW1hZ2VPdXRzZXQ6IHRydWUsXG4gIGJvcmRlckltYWdlU2xpY2U6IHRydWUsXG4gIGJvcmRlckltYWdlV2lkdGg6IHRydWUsXG4gIGJveEZsZXg6IHRydWUsXG4gIGJveEZsZXhHcm91cDogdHJ1ZSxcbiAgYm94T3JkaW5hbEdyb3VwOiB0cnVlLFxuICBjb2x1bW5Db3VudDogdHJ1ZSxcbiAgY29sdW1uczogdHJ1ZSxcbiAgZmxleDogdHJ1ZSxcbiAgZmxleEdyb3c6IHRydWUsXG4gIGZsZXhQb3NpdGl2ZTogdHJ1ZSxcbiAgZmxleFNocmluazogdHJ1ZSxcbiAgZmxleE5lZ2F0aXZlOiB0cnVlLFxuICBmbGV4T3JkZXI6IHRydWUsXG4gIGdyaWRBcmVhOiB0cnVlLFxuICBncmlkUm93OiB0cnVlLFxuICBncmlkUm93RW5kOiB0cnVlLFxuICBncmlkUm93U3BhbjogdHJ1ZSxcbiAgZ3JpZFJvd1N0YXJ0OiB0cnVlLFxuICBncmlkQ29sdW1uOiB0cnVlLFxuICBncmlkQ29sdW1uRW5kOiB0cnVlLFxuICBncmlkQ29sdW1uU3BhbjogdHJ1ZSxcbiAgZ3JpZENvbHVtblN0YXJ0OiB0cnVlLFxuICBmb250V2VpZ2h0OiB0cnVlLFxuICBsaW5lQ2xhbXA6IHRydWUsXG4gIGxpbmVIZWlnaHQ6IHRydWUsXG4gIG9wYWNpdHk6IHRydWUsXG4gIG9yZGVyOiB0cnVlLFxuICBvcnBoYW5zOiB0cnVlLFxuICB0YWJTaXplOiB0cnVlLFxuICB3aWRvd3M6IHRydWUsXG4gIHpJbmRleDogdHJ1ZSxcbiAgem9vbTogdHJ1ZSxcbiAgLy8gU1ZHLXJlbGF0ZWQgcHJvcGVydGllc1xuICBmaWxsT3BhY2l0eTogdHJ1ZSxcbiAgZmxvb2RPcGFjaXR5OiB0cnVlLFxuICBzdG9wT3BhY2l0eTogdHJ1ZSxcbiAgc3Ryb2tlRGFzaGFycmF5OiB0cnVlLFxuICBzdHJva2VEYXNob2Zmc2V0OiB0cnVlLFxuICBzdHJva2VNaXRlcmxpbWl0OiB0cnVlLFxuICBzdHJva2VPcGFjaXR5OiB0cnVlLFxuICBzdHJva2VXaWR0aDogdHJ1ZVxufTtcbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHByZWZpeCB2ZW5kb3Itc3BlY2lmaWMgcHJlZml4LCBlZzogV2Via2l0XG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IHN0eWxlIG5hbWUsIGVnOiB0cmFuc2l0aW9uRHVyYXRpb25cbiAqIEByZXR1cm4ge3N0cmluZ30gc3R5bGUgbmFtZSBwcmVmaXhlZCB3aXRoIGBwcmVmaXhgLCBwcm9wZXJseSBjYW1lbENhc2VkLCBlZzpcbiAqIFdlYmtpdFRyYW5zaXRpb25EdXJhdGlvblxuICovXG5cbmZ1bmN0aW9uIHByZWZpeEtleShwcmVmaXgsIGtleSkge1xuICByZXR1cm4gcHJlZml4ICsga2V5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsga2V5LnN1YnN0cmluZygxKTtcbn1cbi8qKlxuICogU3VwcG9ydCBzdHlsZSBuYW1lcyB0aGF0IG1heSBjb21lIHBhc3NlZCBpbiBwcmVmaXhlZCBieSBhZGRpbmcgcGVybXV0YXRpb25zXG4gKiBvZiB2ZW5kb3IgcHJlZml4ZXMuXG4gKi9cblxuXG52YXIgcHJlZml4ZXMgPSBbJ1dlYmtpdCcsICdtcycsICdNb3onLCAnTyddOyAvLyBVc2luZyBPYmplY3Qua2V5cyBoZXJlLCBvciBlbHNlIHRoZSB2YW5pbGxhIGZvci1pbiBsb29wIG1ha2VzIElFOCBnbyBpbnRvIGFuXG4vLyBpbmZpbml0ZSBsb29wLCBiZWNhdXNlIGl0IGl0ZXJhdGVzIG92ZXIgdGhlIG5ld2x5IGFkZGVkIHByb3BzIHRvby5cblxuT2JqZWN0LmtleXMoaXNVbml0bGVzc051bWJlcikuZm9yRWFjaChmdW5jdGlvbiAocHJvcCkge1xuICBwcmVmaXhlcy5mb3JFYWNoKGZ1bmN0aW9uIChwcmVmaXgpIHtcbiAgICBpc1VuaXRsZXNzTnVtYmVyW3ByZWZpeEtleShwcmVmaXgsIHByb3ApXSA9IGlzVW5pdGxlc3NOdW1iZXJbcHJvcF07XG4gIH0pO1xufSk7XG5cbi8qKlxuICogQ29udmVydCBhIHZhbHVlIGludG8gdGhlIHByb3BlciBjc3Mgd3JpdGFibGUgdmFsdWUuIFRoZSBzdHlsZSBuYW1lIGBuYW1lYFxuICogc2hvdWxkIGJlIGxvZ2ljYWwgKG5vIGh5cGhlbnMpLCBhcyBzcGVjaWZpZWRcbiAqIGluIGBDU1NQcm9wZXJ0eS5pc1VuaXRsZXNzTnVtYmVyYC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBDU1MgcHJvcGVydHkgbmFtZSBzdWNoIGFzIGB0b3BNYXJnaW5gLlxuICogQHBhcmFtIHsqfSB2YWx1ZSBDU1MgcHJvcGVydHkgdmFsdWUgc3VjaCBhcyBgMTBweGAuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IE5vcm1hbGl6ZWQgc3R5bGUgdmFsdWUgd2l0aCBkaW1lbnNpb25zIGFwcGxpZWQuXG4gKi9cblxuZnVuY3Rpb24gZGFuZ2Vyb3VzU3R5bGVWYWx1ZShuYW1lLCB2YWx1ZSwgaXNDdXN0b21Qcm9wZXJ0eSkge1xuICAvLyBOb3RlIHRoYXQgd2UndmUgcmVtb3ZlZCBlc2NhcGVUZXh0Rm9yQnJvd3NlcigpIGNhbGxzIGhlcmUgc2luY2UgdGhlXG4gIC8vIHdob2xlIHN0cmluZyB3aWxsIGJlIGVzY2FwZWQgd2hlbiB0aGUgYXR0cmlidXRlIGlzIGluamVjdGVkIGludG9cbiAgLy8gdGhlIG1hcmt1cC4gSWYgeW91IHByb3ZpZGUgdW5zYWZlIHVzZXIgZGF0YSBoZXJlIHRoZXkgY2FuIGluamVjdFxuICAvLyBhcmJpdHJhcnkgQ1NTIHdoaWNoIG1heSBiZSBwcm9ibGVtYXRpYyAoSSBjb3VsZG4ndCByZXBybyB0aGlzKTpcbiAgLy8gaHR0cHM6Ly93d3cub3dhc3Aub3JnL2luZGV4LnBocC9YU1NfRmlsdGVyX0V2YXNpb25fQ2hlYXRfU2hlZXRcbiAgLy8gaHR0cDovL3d3dy50aGVzcGFubmVyLmNvLnVrLzIwMDcvMTEvMjYvdWx0aW1hdGUteHNzLWNzcy1pbmplY3Rpb24vXG4gIC8vIFRoaXMgaXMgbm90IGFuIFhTUyBob2xlIGJ1dCBpbnN0ZWFkIGEgcG90ZW50aWFsIENTUyBpbmplY3Rpb24gaXNzdWVcbiAgLy8gd2hpY2ggaGFzIGxlYWQgdG8gYSBncmVhdGVyIGRpc2N1c3Npb24gYWJvdXQgaG93IHdlJ3JlIGdvaW5nIHRvXG4gIC8vIHRydXN0IFVSTHMgbW92aW5nIGZvcndhcmQuIFNlZSAjMjExNTkwMVxuICB2YXIgaXNFbXB0eSA9IHZhbHVlID09IG51bGwgfHwgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgfHwgdmFsdWUgPT09ICcnO1xuXG4gIGlmIChpc0VtcHR5KSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaWYgKCFpc0N1c3RvbVByb3BlcnR5ICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgdmFsdWUgIT09IDAgJiYgIShpc1VuaXRsZXNzTnVtYmVyLmhhc093blByb3BlcnR5KG5hbWUpICYmIGlzVW5pdGxlc3NOdW1iZXJbbmFtZV0pKSB7XG4gICAgcmV0dXJuIHZhbHVlICsgJ3B4JzsgLy8gUHJlc3VtZXMgaW1wbGljaXQgJ3B4JyBzdWZmaXggZm9yIHVuaXRsZXNzIG51bWJlcnNcbiAgfVxuXG4gIHtcbiAgICBjaGVja0NTU1Byb3BlcnR5U3RyaW5nQ29lcmNpb24odmFsdWUsIG5hbWUpO1xuICB9XG5cbiAgcmV0dXJuICgnJyArIHZhbHVlKS50cmltKCk7XG59XG5cbnZhciB1cHBlcmNhc2VQYXR0ZXJuID0gLyhbQS1aXSkvZztcbnZhciBtc1BhdHRlcm4gPSAvXm1zLS87XG4vKipcbiAqIEh5cGhlbmF0ZXMgYSBjYW1lbGNhc2VkIENTUyBwcm9wZXJ0eSBuYW1lLCBmb3IgZXhhbXBsZTpcbiAqXG4gKiAgID4gaHlwaGVuYXRlU3R5bGVOYW1lKCdiYWNrZ3JvdW5kQ29sb3InKVxuICogICA8IFwiYmFja2dyb3VuZC1jb2xvclwiXG4gKiAgID4gaHlwaGVuYXRlU3R5bGVOYW1lKCdNb3pUcmFuc2l0aW9uJylcbiAqICAgPCBcIi1tb3otdHJhbnNpdGlvblwiXG4gKiAgID4gaHlwaGVuYXRlU3R5bGVOYW1lKCdtc1RyYW5zaXRpb24nKVxuICogICA8IFwiLW1zLXRyYW5zaXRpb25cIlxuICpcbiAqIEFzIE1vZGVybml6ciBzdWdnZXN0cyAoaHR0cDovL21vZGVybml6ci5jb20vZG9jcy8jcHJlZml4ZWQpLCBhbiBgbXNgIHByZWZpeFxuICogaXMgY29udmVydGVkIHRvIGAtbXMtYC5cbiAqL1xuXG5mdW5jdGlvbiBoeXBoZW5hdGVTdHlsZU5hbWUobmFtZSkge1xuICByZXR1cm4gbmFtZS5yZXBsYWNlKHVwcGVyY2FzZVBhdHRlcm4sICctJDEnKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UobXNQYXR0ZXJuLCAnLW1zLScpO1xufVxuXG52YXIgd2FyblZhbGlkU3R5bGUgPSBmdW5jdGlvbiAoKSB7fTtcblxue1xuICAvLyAnbXNUcmFuc2Zvcm0nIGlzIGNvcnJlY3QsIGJ1dCB0aGUgb3RoZXIgcHJlZml4ZXMgc2hvdWxkIGJlIGNhcGl0YWxpemVkXG4gIHZhciBiYWRWZW5kb3JlZFN0eWxlTmFtZVBhdHRlcm4gPSAvXig/OndlYmtpdHxtb3p8bylbQS1aXS87XG4gIHZhciBtc1BhdHRlcm4kMSA9IC9eLW1zLS87XG4gIHZhciBoeXBoZW5QYXR0ZXJuID0gLy0oLikvZzsgLy8gc3R5bGUgdmFsdWVzIHNob3VsZG4ndCBjb250YWluIGEgc2VtaWNvbG9uXG5cbiAgdmFyIGJhZFN0eWxlVmFsdWVXaXRoU2VtaWNvbG9uUGF0dGVybiA9IC87XFxzKiQvO1xuICB2YXIgd2FybmVkU3R5bGVOYW1lcyA9IHt9O1xuICB2YXIgd2FybmVkU3R5bGVWYWx1ZXMgPSB7fTtcbiAgdmFyIHdhcm5lZEZvck5hTlZhbHVlID0gZmFsc2U7XG4gIHZhciB3YXJuZWRGb3JJbmZpbml0eVZhbHVlID0gZmFsc2U7XG5cbiAgdmFyIGNhbWVsaXplID0gZnVuY3Rpb24gKHN0cmluZykge1xuICAgIHJldHVybiBzdHJpbmcucmVwbGFjZShoeXBoZW5QYXR0ZXJuLCBmdW5jdGlvbiAoXywgY2hhcmFjdGVyKSB7XG4gICAgICByZXR1cm4gY2hhcmFjdGVyLnRvVXBwZXJDYXNlKCk7XG4gICAgfSk7XG4gIH07XG5cbiAgdmFyIHdhcm5IeXBoZW5hdGVkU3R5bGVOYW1lID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICBpZiAod2FybmVkU3R5bGVOYW1lcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSAmJiB3YXJuZWRTdHlsZU5hbWVzW25hbWVdKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2FybmVkU3R5bGVOYW1lc1tuYW1lXSA9IHRydWU7XG5cbiAgICBlcnJvcignVW5zdXBwb3J0ZWQgc3R5bGUgcHJvcGVydHkgJXMuIERpZCB5b3UgbWVhbiAlcz8nLCBuYW1lLCAvLyBBcyBBbmRpIFNtaXRoIHN1Z2dlc3RzXG4gICAgLy8gKGh0dHA6Ly93d3cuYW5kaXNtaXRoLmNvbS9ibG9nLzIwMTIvMDIvbW9kZXJuaXpyLXByZWZpeGVkLyksIGFuIGAtbXNgIHByZWZpeFxuICAgIC8vIGlzIGNvbnZlcnRlZCB0byBsb3dlcmNhc2UgYG1zYC5cbiAgICBjYW1lbGl6ZShuYW1lLnJlcGxhY2UobXNQYXR0ZXJuJDEsICdtcy0nKSkpO1xuICB9O1xuXG4gIHZhciB3YXJuQmFkVmVuZG9yZWRTdHlsZU5hbWUgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIGlmICh3YXJuZWRTdHlsZU5hbWVzLmhhc093blByb3BlcnR5KG5hbWUpICYmIHdhcm5lZFN0eWxlTmFtZXNbbmFtZV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3YXJuZWRTdHlsZU5hbWVzW25hbWVdID0gdHJ1ZTtcblxuICAgIGVycm9yKCdVbnN1cHBvcnRlZCB2ZW5kb3ItcHJlZml4ZWQgc3R5bGUgcHJvcGVydHkgJXMuIERpZCB5b3UgbWVhbiAlcz8nLCBuYW1lLCBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKSk7XG4gIH07XG5cbiAgdmFyIHdhcm5TdHlsZVZhbHVlV2l0aFNlbWljb2xvbiA9IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSkge1xuICAgIGlmICh3YXJuZWRTdHlsZVZhbHVlcy5oYXNPd25Qcm9wZXJ0eSh2YWx1ZSkgJiYgd2FybmVkU3R5bGVWYWx1ZXNbdmFsdWVdKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2FybmVkU3R5bGVWYWx1ZXNbdmFsdWVdID0gdHJ1ZTtcblxuICAgIGVycm9yKFwiU3R5bGUgcHJvcGVydHkgdmFsdWVzIHNob3VsZG4ndCBjb250YWluIGEgc2VtaWNvbG9uLiBcIiArICdUcnkgXCIlczogJXNcIiBpbnN0ZWFkLicsIG5hbWUsIHZhbHVlLnJlcGxhY2UoYmFkU3R5bGVWYWx1ZVdpdGhTZW1pY29sb25QYXR0ZXJuLCAnJykpO1xuICB9O1xuXG4gIHZhciB3YXJuU3R5bGVWYWx1ZUlzTmFOID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gICAgaWYgKHdhcm5lZEZvck5hTlZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2FybmVkRm9yTmFOVmFsdWUgPSB0cnVlO1xuXG4gICAgZXJyb3IoJ2BOYU5gIGlzIGFuIGludmFsaWQgdmFsdWUgZm9yIHRoZSBgJXNgIGNzcyBzdHlsZSBwcm9wZXJ0eS4nLCBuYW1lKTtcbiAgfTtcblxuICB2YXIgd2FyblN0eWxlVmFsdWVJc0luZmluaXR5ID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gICAgaWYgKHdhcm5lZEZvckluZmluaXR5VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3YXJuZWRGb3JJbmZpbml0eVZhbHVlID0gdHJ1ZTtcblxuICAgIGVycm9yKCdgSW5maW5pdHlgIGlzIGFuIGludmFsaWQgdmFsdWUgZm9yIHRoZSBgJXNgIGNzcyBzdHlsZSBwcm9wZXJ0eS4nLCBuYW1lKTtcbiAgfTtcblxuICB3YXJuVmFsaWRTdHlsZSA9IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSkge1xuICAgIGlmIChuYW1lLmluZGV4T2YoJy0nKSA+IC0xKSB7XG4gICAgICB3YXJuSHlwaGVuYXRlZFN0eWxlTmFtZShuYW1lKTtcbiAgICB9IGVsc2UgaWYgKGJhZFZlbmRvcmVkU3R5bGVOYW1lUGF0dGVybi50ZXN0KG5hbWUpKSB7XG4gICAgICB3YXJuQmFkVmVuZG9yZWRTdHlsZU5hbWUobmFtZSk7XG4gICAgfSBlbHNlIGlmIChiYWRTdHlsZVZhbHVlV2l0aFNlbWljb2xvblBhdHRlcm4udGVzdCh2YWx1ZSkpIHtcbiAgICAgIHdhcm5TdHlsZVZhbHVlV2l0aFNlbWljb2xvbihuYW1lLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgd2FyblN0eWxlVmFsdWVJc05hTihuYW1lLCB2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKCFpc0Zpbml0ZSh2YWx1ZSkpIHtcbiAgICAgICAgd2FyblN0eWxlVmFsdWVJc0luZmluaXR5KG5hbWUsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbnZhciB3YXJuVmFsaWRTdHlsZSQxID0gd2FyblZhbGlkU3R5bGU7XG5cbi8qKlxuICogT3BlcmF0aW9ucyBmb3IgZGVhbGluZyB3aXRoIENTUyBwcm9wZXJ0aWVzLlxuICovXG5cbi8qKlxuICogVGhpcyBjcmVhdGVzIGEgc3RyaW5nIHRoYXQgaXMgZXhwZWN0ZWQgdG8gYmUgZXF1aXZhbGVudCB0byB0aGUgc3R5bGVcbiAqIGF0dHJpYnV0ZSBnZW5lcmF0ZWQgYnkgc2VydmVyLXNpZGUgcmVuZGVyaW5nLiBJdCBieS1wYXNzZXMgd2FybmluZ3MgYW5kXG4gKiBzZWN1cml0eSBjaGVja3Mgc28gaXQncyBub3Qgc2FmZSB0byB1c2UgdGhpcyB2YWx1ZSBmb3IgYW55dGhpbmcgb3RoZXIgdGhhblxuICogY29tcGFyaXNvbi4gSXQgaXMgb25seSB1c2VkIGluIERFViBmb3IgU1NSIHZhbGlkYXRpb24uXG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlRGFuZ2Vyb3VzU3RyaW5nRm9yU3R5bGVzKHN0eWxlcykge1xuICB7XG4gICAgdmFyIHNlcmlhbGl6ZWQgPSAnJztcbiAgICB2YXIgZGVsaW1pdGVyID0gJyc7XG5cbiAgICBmb3IgKHZhciBzdHlsZU5hbWUgaW4gc3R5bGVzKSB7XG4gICAgICBpZiAoIXN0eWxlcy5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgc3R5bGVWYWx1ZSA9IHN0eWxlc1tzdHlsZU5hbWVdO1xuXG4gICAgICBpZiAoc3R5bGVWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHZhciBpc0N1c3RvbVByb3BlcnR5ID0gc3R5bGVOYW1lLmluZGV4T2YoJy0tJykgPT09IDA7XG4gICAgICAgIHNlcmlhbGl6ZWQgKz0gZGVsaW1pdGVyICsgKGlzQ3VzdG9tUHJvcGVydHkgPyBzdHlsZU5hbWUgOiBoeXBoZW5hdGVTdHlsZU5hbWUoc3R5bGVOYW1lKSkgKyAnOic7XG4gICAgICAgIHNlcmlhbGl6ZWQgKz0gZGFuZ2Vyb3VzU3R5bGVWYWx1ZShzdHlsZU5hbWUsIHN0eWxlVmFsdWUsIGlzQ3VzdG9tUHJvcGVydHkpO1xuICAgICAgICBkZWxpbWl0ZXIgPSAnOyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlcmlhbGl6ZWQgfHwgbnVsbDtcbiAgfVxufVxuLyoqXG4gKiBTZXRzIHRoZSB2YWx1ZSBmb3IgbXVsdGlwbGUgc3R5bGVzIG9uIGEgbm9kZS4gIElmIGEgdmFsdWUgaXMgc3BlY2lmaWVkIGFzXG4gKiAnJyAoZW1wdHkgc3RyaW5nKSwgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGUgcHJvcGVydHkgd2lsbCBiZSB1bnNldC5cbiAqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG5vZGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBzdHlsZXNcbiAqL1xuXG5mdW5jdGlvbiBzZXRWYWx1ZUZvclN0eWxlcyhub2RlLCBzdHlsZXMpIHtcbiAgdmFyIHN0eWxlID0gbm9kZS5zdHlsZTtcblxuICBmb3IgKHZhciBzdHlsZU5hbWUgaW4gc3R5bGVzKSB7XG4gICAgaWYgKCFzdHlsZXMuaGFzT3duUHJvcGVydHkoc3R5bGVOYW1lKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgdmFyIGlzQ3VzdG9tUHJvcGVydHkgPSBzdHlsZU5hbWUuaW5kZXhPZignLS0nKSA9PT0gMDtcblxuICAgIHtcbiAgICAgIGlmICghaXNDdXN0b21Qcm9wZXJ0eSkge1xuICAgICAgICB3YXJuVmFsaWRTdHlsZSQxKHN0eWxlTmFtZSwgc3R5bGVzW3N0eWxlTmFtZV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBzdHlsZVZhbHVlID0gZGFuZ2Vyb3VzU3R5bGVWYWx1ZShzdHlsZU5hbWUsIHN0eWxlc1tzdHlsZU5hbWVdLCBpc0N1c3RvbVByb3BlcnR5KTtcblxuICAgIGlmIChzdHlsZU5hbWUgPT09ICdmbG9hdCcpIHtcbiAgICAgIHN0eWxlTmFtZSA9ICdjc3NGbG9hdCc7XG4gICAgfVxuXG4gICAgaWYgKGlzQ3VzdG9tUHJvcGVydHkpIHtcbiAgICAgIHN0eWxlLnNldFByb3BlcnR5KHN0eWxlTmFtZSwgc3R5bGVWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlW3N0eWxlTmFtZV0gPSBzdHlsZVZhbHVlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc1ZhbHVlRW1wdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09IG51bGwgfHwgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgfHwgdmFsdWUgPT09ICcnO1xufVxuLyoqXG4gKiBHaXZlbiB7Y29sb3I6ICdyZWQnLCBvdmVyZmxvdzogJ2hpZGRlbid9IHJldHVybnMge1xuICogICBjb2xvcjogJ2NvbG9yJyxcbiAqICAgb3ZlcmZsb3dYOiAnb3ZlcmZsb3cnLFxuICogICBvdmVyZmxvd1k6ICdvdmVyZmxvdycsXG4gKiB9LiBUaGlzIGNhbiBiZSByZWFkIGFzIFwidGhlIG92ZXJmbG93WSBwcm9wZXJ0eSB3YXMgc2V0IGJ5IHRoZSBvdmVyZmxvd1xuICogc2hvcnRoYW5kXCIuIFRoYXQgaXMsIHRoZSB2YWx1ZXMgYXJlIHRoZSBwcm9wZXJ0eSB0aGF0IGVhY2ggd2FzIGRlcml2ZWQgZnJvbS5cbiAqL1xuXG5cbmZ1bmN0aW9uIGV4cGFuZFNob3J0aGFuZE1hcChzdHlsZXMpIHtcbiAgdmFyIGV4cGFuZGVkID0ge307XG5cbiAgZm9yICh2YXIga2V5IGluIHN0eWxlcykge1xuICAgIHZhciBsb25naGFuZHMgPSBzaG9ydGhhbmRUb0xvbmdoYW5kW2tleV0gfHwgW2tleV07XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxvbmdoYW5kcy5sZW5ndGg7IGkrKykge1xuICAgICAgZXhwYW5kZWRbbG9uZ2hhbmRzW2ldXSA9IGtleTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXhwYW5kZWQ7XG59XG4vKipcbiAqIFdoZW4gbWl4aW5nIHNob3J0aGFuZCBhbmQgbG9uZ2hhbmQgcHJvcGVydHkgbmFtZXMsIHdlIHdhcm4gZHVyaW5nIHVwZGF0ZXMgaWZcbiAqIHdlIGV4cGVjdCBhbiBpbmNvcnJlY3QgcmVzdWx0IHRvIG9jY3VyLiBJbiBwYXJ0aWN1bGFyLCB3ZSB3YXJuIGZvcjpcbiAqXG4gKiBVcGRhdGluZyBhIHNob3J0aGFuZCBwcm9wZXJ0eSAobG9uZ2hhbmQgZ2V0cyBvdmVyd3JpdHRlbik6XG4gKiAgIHtmb250OiAnZm9vJywgZm9udFZhcmlhbnQ6ICdiYXInfSAtPiB7Zm9udDogJ2JheicsIGZvbnRWYXJpYW50OiAnYmFyJ31cbiAqICAgYmVjb21lcyAuc3R5bGUuZm9udCA9ICdiYXonXG4gKiBSZW1vdmluZyBhIHNob3J0aGFuZCBwcm9wZXJ0eSAobG9uZ2hhbmQgZ2V0cyBsb3N0IHRvbyk6XG4gKiAgIHtmb250OiAnZm9vJywgZm9udFZhcmlhbnQ6ICdiYXInfSAtPiB7Zm9udFZhcmlhbnQ6ICdiYXInfVxuICogICBiZWNvbWVzIC5zdHlsZS5mb250ID0gJydcbiAqIFJlbW92aW5nIGEgbG9uZ2hhbmQgcHJvcGVydHkgKHNob3VsZCByZXZlcnQgdG8gc2hvcnRoYW5kOyBkb2Vzbid0KTpcbiAqICAge2ZvbnQ6ICdmb28nLCBmb250VmFyaWFudDogJ2Jhcid9IC0+IHtmb250OiAnZm9vJ31cbiAqICAgYmVjb21lcyAuc3R5bGUuZm9udFZhcmlhbnQgPSAnJ1xuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVTaG9ydGhhbmRQcm9wZXJ0eUNvbGxpc2lvbkluRGV2KHN0eWxlVXBkYXRlcywgbmV4dFN0eWxlcykge1xuICB7XG4gICAgaWYgKCFuZXh0U3R5bGVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGV4cGFuZGVkVXBkYXRlcyA9IGV4cGFuZFNob3J0aGFuZE1hcChzdHlsZVVwZGF0ZXMpO1xuICAgIHZhciBleHBhbmRlZFN0eWxlcyA9IGV4cGFuZFNob3J0aGFuZE1hcChuZXh0U3R5bGVzKTtcbiAgICB2YXIgd2FybmVkQWJvdXQgPSB7fTtcblxuICAgIGZvciAodmFyIGtleSBpbiBleHBhbmRlZFVwZGF0ZXMpIHtcbiAgICAgIHZhciBvcmlnaW5hbEtleSA9IGV4cGFuZGVkVXBkYXRlc1trZXldO1xuICAgICAgdmFyIGNvcnJlY3RPcmlnaW5hbEtleSA9IGV4cGFuZGVkU3R5bGVzW2tleV07XG5cbiAgICAgIGlmIChjb3JyZWN0T3JpZ2luYWxLZXkgJiYgb3JpZ2luYWxLZXkgIT09IGNvcnJlY3RPcmlnaW5hbEtleSkge1xuICAgICAgICB2YXIgd2FybmluZ0tleSA9IG9yaWdpbmFsS2V5ICsgJywnICsgY29ycmVjdE9yaWdpbmFsS2V5O1xuXG4gICAgICAgIGlmICh3YXJuZWRBYm91dFt3YXJuaW5nS2V5XSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgd2FybmVkQWJvdXRbd2FybmluZ0tleV0gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCclcyBhIHN0eWxlIHByb3BlcnR5IGR1cmluZyByZXJlbmRlciAoJXMpIHdoZW4gYSAnICsgJ2NvbmZsaWN0aW5nIHByb3BlcnR5IGlzIHNldCAoJXMpIGNhbiBsZWFkIHRvIHN0eWxpbmcgYnVncy4gVG8gJyArIFwiYXZvaWQgdGhpcywgZG9uJ3QgbWl4IHNob3J0aGFuZCBhbmQgbm9uLXNob3J0aGFuZCBwcm9wZXJ0aWVzIFwiICsgJ2ZvciB0aGUgc2FtZSB2YWx1ZTsgaW5zdGVhZCwgcmVwbGFjZSB0aGUgc2hvcnRoYW5kIHdpdGggJyArICdzZXBhcmF0ZSB2YWx1ZXMuJywgaXNWYWx1ZUVtcHR5KHN0eWxlVXBkYXRlc1tvcmlnaW5hbEtleV0pID8gJ1JlbW92aW5nJyA6ICdVcGRhdGluZycsIG9yaWdpbmFsS2V5LCBjb3JyZWN0T3JpZ2luYWxLZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBGb3IgSFRNTCwgY2VydGFpbiB0YWdzIHNob3VsZCBvbWl0IHRoZWlyIGNsb3NlIHRhZy4gV2Uga2VlcCBhIGxpc3QgZm9yXG4vLyB0aG9zZSBzcGVjaWFsLWNhc2UgdGFncy5cbnZhciBvbWl0dGVkQ2xvc2VUYWdzID0ge1xuICBhcmVhOiB0cnVlLFxuICBiYXNlOiB0cnVlLFxuICBicjogdHJ1ZSxcbiAgY29sOiB0cnVlLFxuICBlbWJlZDogdHJ1ZSxcbiAgaHI6IHRydWUsXG4gIGltZzogdHJ1ZSxcbiAgaW5wdXQ6IHRydWUsXG4gIGtleWdlbjogdHJ1ZSxcbiAgbGluazogdHJ1ZSxcbiAgbWV0YTogdHJ1ZSxcbiAgcGFyYW06IHRydWUsXG4gIHNvdXJjZTogdHJ1ZSxcbiAgdHJhY2s6IHRydWUsXG4gIHdicjogdHJ1ZSAvLyBOT1RFOiBtZW51aXRlbSdzIGNsb3NlIHRhZyBzaG91bGQgYmUgb21pdHRlZCwgYnV0IHRoYXQgY2F1c2VzIHByb2JsZW1zLlxuXG59O1xuXG4vLyBgb21pdHRlZENsb3NlVGFnc2AgZXhjZXB0IHRoYXQgYG1lbnVpdGVtYCBzaG91bGQgc3RpbGwgaGF2ZSBpdHMgY2xvc2luZyB0YWcuXG5cbnZhciB2b2lkRWxlbWVudFRhZ3MgPSBhc3NpZ24oe1xuICBtZW51aXRlbTogdHJ1ZVxufSwgb21pdHRlZENsb3NlVGFncyk7XG5cbnZhciBIVE1MID0gJ19faHRtbCc7XG5cbmZ1bmN0aW9uIGFzc2VydFZhbGlkUHJvcHModGFnLCBwcm9wcykge1xuICBpZiAoIXByb3BzKSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIE5vdGUgdGhlIHVzZSBvZiBgPT1gIHdoaWNoIGNoZWNrcyBmb3IgbnVsbCBvciB1bmRlZmluZWQuXG5cblxuICBpZiAodm9pZEVsZW1lbnRUYWdzW3RhZ10pIHtcbiAgICBpZiAocHJvcHMuY2hpbGRyZW4gIT0gbnVsbCB8fCBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCAhPSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IodGFnICsgXCIgaXMgYSB2b2lkIGVsZW1lbnQgdGFnIGFuZCBtdXN0IG5laXRoZXIgaGF2ZSBgY2hpbGRyZW5gIG5vciBcIiArICd1c2UgYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC4nKTtcbiAgICB9XG4gIH1cblxuICBpZiAocHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgIT0gbnVsbCkge1xuICAgIGlmIChwcm9wcy5jaGlsZHJlbiAhPSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhbiBvbmx5IHNldCBvbmUgb2YgYGNoaWxkcmVuYCBvciBgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgLicpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgIT09ICdvYmplY3QnIHx8ICEoSFRNTCBpbiBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYCBtdXN0IGJlIGluIHRoZSBmb3JtIGB7X19odG1sOiAuLi59YC4gJyArICdQbGVhc2UgdmlzaXQgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2Rhbmdlcm91c2x5LXNldC1pbm5lci1odG1sICcgKyAnZm9yIG1vcmUgaW5mb3JtYXRpb24uJyk7XG4gICAgfVxuICB9XG5cbiAge1xuICAgIGlmICghcHJvcHMuc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nICYmIHByb3BzLmNvbnRlbnRFZGl0YWJsZSAmJiBwcm9wcy5jaGlsZHJlbiAhPSBudWxsKSB7XG4gICAgICBlcnJvcignQSBjb21wb25lbnQgaXMgYGNvbnRlbnRFZGl0YWJsZWAgYW5kIGNvbnRhaW5zIGBjaGlsZHJlbmAgbWFuYWdlZCBieSAnICsgJ1JlYWN0LiBJdCBpcyBub3cgeW91ciByZXNwb25zaWJpbGl0eSB0byBndWFyYW50ZWUgdGhhdCBub25lIG9mICcgKyAndGhvc2Ugbm9kZXMgYXJlIHVuZXhwZWN0ZWRseSBtb2RpZmllZCBvciBkdXBsaWNhdGVkLiBUaGlzIGlzICcgKyAncHJvYmFibHkgbm90IGludGVudGlvbmFsLicpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChwcm9wcy5zdHlsZSAhPSBudWxsICYmIHR5cGVvZiBwcm9wcy5zdHlsZSAhPT0gJ29iamVjdCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBgc3R5bGVgIHByb3AgZXhwZWN0cyBhIG1hcHBpbmcgZnJvbSBzdHlsZSBwcm9wZXJ0aWVzIHRvIHZhbHVlcywgJyArIFwibm90IGEgc3RyaW5nLiBGb3IgZXhhbXBsZSwgc3R5bGU9e3ttYXJnaW5SaWdodDogc3BhY2luZyArICdlbSd9fSB3aGVuIFwiICsgJ3VzaW5nIEpTWC4nKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0N1c3RvbUNvbXBvbmVudCh0YWdOYW1lLCBwcm9wcykge1xuICBpZiAodGFnTmFtZS5pbmRleE9mKCctJykgPT09IC0xKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBwcm9wcy5pcyA9PT0gJ3N0cmluZyc7XG4gIH1cblxuICBzd2l0Y2ggKHRhZ05hbWUpIHtcbiAgICAvLyBUaGVzZSBhcmUgcmVzZXJ2ZWQgU1ZHIGFuZCBNYXRoTUwgZWxlbWVudHMuXG4gICAgLy8gV2UgZG9uJ3QgbWluZCB0aGlzIGxpc3QgdG9vIG11Y2ggYmVjYXVzZSB3ZSBleHBlY3QgaXQgdG8gbmV2ZXIgZ3Jvdy5cbiAgICAvLyBUaGUgYWx0ZXJuYXRpdmUgaXMgdG8gdHJhY2sgdGhlIG5hbWVzcGFjZSBpbiBhIGZldyBwbGFjZXMgd2hpY2ggaXMgY29udm9sdXRlZC5cbiAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViY29tcG9uZW50cy9zcGVjL2N1c3RvbS8jY3VzdG9tLWVsZW1lbnRzLWNvcmUtY29uY2VwdHNcbiAgICBjYXNlICdhbm5vdGF0aW9uLXhtbCc6XG4gICAgY2FzZSAnY29sb3ItcHJvZmlsZSc6XG4gICAgY2FzZSAnZm9udC1mYWNlJzpcbiAgICBjYXNlICdmb250LWZhY2Utc3JjJzpcbiAgICBjYXNlICdmb250LWZhY2UtdXJpJzpcbiAgICBjYXNlICdmb250LWZhY2UtZm9ybWF0JzpcbiAgICBjYXNlICdmb250LWZhY2UtbmFtZSc6XG4gICAgY2FzZSAnbWlzc2luZy1nbHlwaCc6XG4gICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuLy8gV2hlbiBhZGRpbmcgYXR0cmlidXRlcyB0byB0aGUgSFRNTCBvciBTVkcgYWxsb3dlZCBhdHRyaWJ1dGUgbGlzdCwgYmUgc3VyZSB0b1xuLy8gYWxzbyBhZGQgdGhlbSB0byB0aGlzIG1vZHVsZSB0byBlbnN1cmUgY2FzaW5nIGFuZCBpbmNvcnJlY3QgbmFtZVxuLy8gd2FybmluZ3MuXG52YXIgcG9zc2libGVTdGFuZGFyZE5hbWVzID0ge1xuICAvLyBIVE1MXG4gIGFjY2VwdDogJ2FjY2VwdCcsXG4gIGFjY2VwdGNoYXJzZXQ6ICdhY2NlcHRDaGFyc2V0JyxcbiAgJ2FjY2VwdC1jaGFyc2V0JzogJ2FjY2VwdENoYXJzZXQnLFxuICBhY2Nlc3NrZXk6ICdhY2Nlc3NLZXknLFxuICBhY3Rpb246ICdhY3Rpb24nLFxuICBhbGxvd2Z1bGxzY3JlZW46ICdhbGxvd0Z1bGxTY3JlZW4nLFxuICBhbHQ6ICdhbHQnLFxuICBhczogJ2FzJyxcbiAgYXN5bmM6ICdhc3luYycsXG4gIGF1dG9jYXBpdGFsaXplOiAnYXV0b0NhcGl0YWxpemUnLFxuICBhdXRvY29tcGxldGU6ICdhdXRvQ29tcGxldGUnLFxuICBhdXRvY29ycmVjdDogJ2F1dG9Db3JyZWN0JyxcbiAgYXV0b2ZvY3VzOiAnYXV0b0ZvY3VzJyxcbiAgYXV0b3BsYXk6ICdhdXRvUGxheScsXG4gIGF1dG9zYXZlOiAnYXV0b1NhdmUnLFxuICBjYXB0dXJlOiAnY2FwdHVyZScsXG4gIGNlbGxwYWRkaW5nOiAnY2VsbFBhZGRpbmcnLFxuICBjZWxsc3BhY2luZzogJ2NlbGxTcGFjaW5nJyxcbiAgY2hhbGxlbmdlOiAnY2hhbGxlbmdlJyxcbiAgY2hhcnNldDogJ2NoYXJTZXQnLFxuICBjaGVja2VkOiAnY2hlY2tlZCcsXG4gIGNoaWxkcmVuOiAnY2hpbGRyZW4nLFxuICBjaXRlOiAnY2l0ZScsXG4gIGNsYXNzOiAnY2xhc3NOYW1lJyxcbiAgY2xhc3NpZDogJ2NsYXNzSUQnLFxuICBjbGFzc25hbWU6ICdjbGFzc05hbWUnLFxuICBjb2xzOiAnY29scycsXG4gIGNvbHNwYW46ICdjb2xTcGFuJyxcbiAgY29udGVudDogJ2NvbnRlbnQnLFxuICBjb250ZW50ZWRpdGFibGU6ICdjb250ZW50RWRpdGFibGUnLFxuICBjb250ZXh0bWVudTogJ2NvbnRleHRNZW51JyxcbiAgY29udHJvbHM6ICdjb250cm9scycsXG4gIGNvbnRyb2xzbGlzdDogJ2NvbnRyb2xzTGlzdCcsXG4gIGNvb3JkczogJ2Nvb3JkcycsXG4gIGNyb3Nzb3JpZ2luOiAnY3Jvc3NPcmlnaW4nLFxuICBkYW5nZXJvdXNseXNldGlubmVyaHRtbDogJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJyxcbiAgZGF0YTogJ2RhdGEnLFxuICBkYXRldGltZTogJ2RhdGVUaW1lJyxcbiAgZGVmYXVsdDogJ2RlZmF1bHQnLFxuICBkZWZhdWx0Y2hlY2tlZDogJ2RlZmF1bHRDaGVja2VkJyxcbiAgZGVmYXVsdHZhbHVlOiAnZGVmYXVsdFZhbHVlJyxcbiAgZGVmZXI6ICdkZWZlcicsXG4gIGRpcjogJ2RpcicsXG4gIGRpc2FibGVkOiAnZGlzYWJsZWQnLFxuICBkaXNhYmxlcGljdHVyZWlucGljdHVyZTogJ2Rpc2FibGVQaWN0dXJlSW5QaWN0dXJlJyxcbiAgZGlzYWJsZXJlbW90ZXBsYXliYWNrOiAnZGlzYWJsZVJlbW90ZVBsYXliYWNrJyxcbiAgZG93bmxvYWQ6ICdkb3dubG9hZCcsXG4gIGRyYWdnYWJsZTogJ2RyYWdnYWJsZScsXG4gIGVuY3R5cGU6ICdlbmNUeXBlJyxcbiAgZW50ZXJrZXloaW50OiAnZW50ZXJLZXlIaW50JyxcbiAgZm9yOiAnaHRtbEZvcicsXG4gIGZvcm06ICdmb3JtJyxcbiAgZm9ybW1ldGhvZDogJ2Zvcm1NZXRob2QnLFxuICBmb3JtYWN0aW9uOiAnZm9ybUFjdGlvbicsXG4gIGZvcm1lbmN0eXBlOiAnZm9ybUVuY1R5cGUnLFxuICBmb3Jtbm92YWxpZGF0ZTogJ2Zvcm1Ob1ZhbGlkYXRlJyxcbiAgZm9ybXRhcmdldDogJ2Zvcm1UYXJnZXQnLFxuICBmcmFtZWJvcmRlcjogJ2ZyYW1lQm9yZGVyJyxcbiAgaGVhZGVyczogJ2hlYWRlcnMnLFxuICBoZWlnaHQ6ICdoZWlnaHQnLFxuICBoaWRkZW46ICdoaWRkZW4nLFxuICBoaWdoOiAnaGlnaCcsXG4gIGhyZWY6ICdocmVmJyxcbiAgaHJlZmxhbmc6ICdocmVmTGFuZycsXG4gIGh0bWxmb3I6ICdodG1sRm9yJyxcbiAgaHR0cGVxdWl2OiAnaHR0cEVxdWl2JyxcbiAgJ2h0dHAtZXF1aXYnOiAnaHR0cEVxdWl2JyxcbiAgaWNvbjogJ2ljb24nLFxuICBpZDogJ2lkJyxcbiAgaW1hZ2VzaXplczogJ2ltYWdlU2l6ZXMnLFxuICBpbWFnZXNyY3NldDogJ2ltYWdlU3JjU2V0JyxcbiAgaW5uZXJodG1sOiAnaW5uZXJIVE1MJyxcbiAgaW5wdXRtb2RlOiAnaW5wdXRNb2RlJyxcbiAgaW50ZWdyaXR5OiAnaW50ZWdyaXR5JyxcbiAgaXM6ICdpcycsXG4gIGl0ZW1pZDogJ2l0ZW1JRCcsXG4gIGl0ZW1wcm9wOiAnaXRlbVByb3AnLFxuICBpdGVtcmVmOiAnaXRlbVJlZicsXG4gIGl0ZW1zY29wZTogJ2l0ZW1TY29wZScsXG4gIGl0ZW10eXBlOiAnaXRlbVR5cGUnLFxuICBrZXlwYXJhbXM6ICdrZXlQYXJhbXMnLFxuICBrZXl0eXBlOiAna2V5VHlwZScsXG4gIGtpbmQ6ICdraW5kJyxcbiAgbGFiZWw6ICdsYWJlbCcsXG4gIGxhbmc6ICdsYW5nJyxcbiAgbGlzdDogJ2xpc3QnLFxuICBsb29wOiAnbG9vcCcsXG4gIGxvdzogJ2xvdycsXG4gIG1hbmlmZXN0OiAnbWFuaWZlc3QnLFxuICBtYXJnaW53aWR0aDogJ21hcmdpbldpZHRoJyxcbiAgbWFyZ2luaGVpZ2h0OiAnbWFyZ2luSGVpZ2h0JyxcbiAgbWF4OiAnbWF4JyxcbiAgbWF4bGVuZ3RoOiAnbWF4TGVuZ3RoJyxcbiAgbWVkaWE6ICdtZWRpYScsXG4gIG1lZGlhZ3JvdXA6ICdtZWRpYUdyb3VwJyxcbiAgbWV0aG9kOiAnbWV0aG9kJyxcbiAgbWluOiAnbWluJyxcbiAgbWlubGVuZ3RoOiAnbWluTGVuZ3RoJyxcbiAgbXVsdGlwbGU6ICdtdWx0aXBsZScsXG4gIG11dGVkOiAnbXV0ZWQnLFxuICBuYW1lOiAnbmFtZScsXG4gIG5vbW9kdWxlOiAnbm9Nb2R1bGUnLFxuICBub25jZTogJ25vbmNlJyxcbiAgbm92YWxpZGF0ZTogJ25vVmFsaWRhdGUnLFxuICBvcGVuOiAnb3BlbicsXG4gIG9wdGltdW06ICdvcHRpbXVtJyxcbiAgcGF0dGVybjogJ3BhdHRlcm4nLFxuICBwbGFjZWhvbGRlcjogJ3BsYWNlaG9sZGVyJyxcbiAgcGxheXNpbmxpbmU6ICdwbGF5c0lubGluZScsXG4gIHBvc3RlcjogJ3Bvc3RlcicsXG4gIHByZWxvYWQ6ICdwcmVsb2FkJyxcbiAgcHJvZmlsZTogJ3Byb2ZpbGUnLFxuICByYWRpb2dyb3VwOiAncmFkaW9Hcm91cCcsXG4gIHJlYWRvbmx5OiAncmVhZE9ubHknLFxuICByZWZlcnJlcnBvbGljeTogJ3JlZmVycmVyUG9saWN5JyxcbiAgcmVsOiAncmVsJyxcbiAgcmVxdWlyZWQ6ICdyZXF1aXJlZCcsXG4gIHJldmVyc2VkOiAncmV2ZXJzZWQnLFxuICByb2xlOiAncm9sZScsXG4gIHJvd3M6ICdyb3dzJyxcbiAgcm93c3BhbjogJ3Jvd1NwYW4nLFxuICBzYW5kYm94OiAnc2FuZGJveCcsXG4gIHNjb3BlOiAnc2NvcGUnLFxuICBzY29wZWQ6ICdzY29wZWQnLFxuICBzY3JvbGxpbmc6ICdzY3JvbGxpbmcnLFxuICBzZWFtbGVzczogJ3NlYW1sZXNzJyxcbiAgc2VsZWN0ZWQ6ICdzZWxlY3RlZCcsXG4gIHNoYXBlOiAnc2hhcGUnLFxuICBzaXplOiAnc2l6ZScsXG4gIHNpemVzOiAnc2l6ZXMnLFxuICBzcGFuOiAnc3BhbicsXG4gIHNwZWxsY2hlY2s6ICdzcGVsbENoZWNrJyxcbiAgc3JjOiAnc3JjJyxcbiAgc3JjZG9jOiAnc3JjRG9jJyxcbiAgc3JjbGFuZzogJ3NyY0xhbmcnLFxuICBzcmNzZXQ6ICdzcmNTZXQnLFxuICBzdGFydDogJ3N0YXJ0JyxcbiAgc3RlcDogJ3N0ZXAnLFxuICBzdHlsZTogJ3N0eWxlJyxcbiAgc3VtbWFyeTogJ3N1bW1hcnknLFxuICB0YWJpbmRleDogJ3RhYkluZGV4JyxcbiAgdGFyZ2V0OiAndGFyZ2V0JyxcbiAgdGl0bGU6ICd0aXRsZScsXG4gIHR5cGU6ICd0eXBlJyxcbiAgdXNlbWFwOiAndXNlTWFwJyxcbiAgdmFsdWU6ICd2YWx1ZScsXG4gIHdpZHRoOiAnd2lkdGgnLFxuICB3bW9kZTogJ3dtb2RlJyxcbiAgd3JhcDogJ3dyYXAnLFxuICAvLyBTVkdcbiAgYWJvdXQ6ICdhYm91dCcsXG4gIGFjY2VudGhlaWdodDogJ2FjY2VudEhlaWdodCcsXG4gICdhY2NlbnQtaGVpZ2h0JzogJ2FjY2VudEhlaWdodCcsXG4gIGFjY3VtdWxhdGU6ICdhY2N1bXVsYXRlJyxcbiAgYWRkaXRpdmU6ICdhZGRpdGl2ZScsXG4gIGFsaWdubWVudGJhc2VsaW5lOiAnYWxpZ25tZW50QmFzZWxpbmUnLFxuICAnYWxpZ25tZW50LWJhc2VsaW5lJzogJ2FsaWdubWVudEJhc2VsaW5lJyxcbiAgYWxsb3dyZW9yZGVyOiAnYWxsb3dSZW9yZGVyJyxcbiAgYWxwaGFiZXRpYzogJ2FscGhhYmV0aWMnLFxuICBhbXBsaXR1ZGU6ICdhbXBsaXR1ZGUnLFxuICBhcmFiaWNmb3JtOiAnYXJhYmljRm9ybScsXG4gICdhcmFiaWMtZm9ybSc6ICdhcmFiaWNGb3JtJyxcbiAgYXNjZW50OiAnYXNjZW50JyxcbiAgYXR0cmlidXRlbmFtZTogJ2F0dHJpYnV0ZU5hbWUnLFxuICBhdHRyaWJ1dGV0eXBlOiAnYXR0cmlidXRlVHlwZScsXG4gIGF1dG9yZXZlcnNlOiAnYXV0b1JldmVyc2UnLFxuICBhemltdXRoOiAnYXppbXV0aCcsXG4gIGJhc2VmcmVxdWVuY3k6ICdiYXNlRnJlcXVlbmN5JyxcbiAgYmFzZWxpbmVzaGlmdDogJ2Jhc2VsaW5lU2hpZnQnLFxuICAnYmFzZWxpbmUtc2hpZnQnOiAnYmFzZWxpbmVTaGlmdCcsXG4gIGJhc2Vwcm9maWxlOiAnYmFzZVByb2ZpbGUnLFxuICBiYm94OiAnYmJveCcsXG4gIGJlZ2luOiAnYmVnaW4nLFxuICBiaWFzOiAnYmlhcycsXG4gIGJ5OiAnYnknLFxuICBjYWxjbW9kZTogJ2NhbGNNb2RlJyxcbiAgY2FwaGVpZ2h0OiAnY2FwSGVpZ2h0JyxcbiAgJ2NhcC1oZWlnaHQnOiAnY2FwSGVpZ2h0JyxcbiAgY2xpcDogJ2NsaXAnLFxuICBjbGlwcGF0aDogJ2NsaXBQYXRoJyxcbiAgJ2NsaXAtcGF0aCc6ICdjbGlwUGF0aCcsXG4gIGNsaXBwYXRodW5pdHM6ICdjbGlwUGF0aFVuaXRzJyxcbiAgY2xpcHJ1bGU6ICdjbGlwUnVsZScsXG4gICdjbGlwLXJ1bGUnOiAnY2xpcFJ1bGUnLFxuICBjb2xvcjogJ2NvbG9yJyxcbiAgY29sb3JpbnRlcnBvbGF0aW9uOiAnY29sb3JJbnRlcnBvbGF0aW9uJyxcbiAgJ2NvbG9yLWludGVycG9sYXRpb24nOiAnY29sb3JJbnRlcnBvbGF0aW9uJyxcbiAgY29sb3JpbnRlcnBvbGF0aW9uZmlsdGVyczogJ2NvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMnLFxuICAnY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzJzogJ2NvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMnLFxuICBjb2xvcnByb2ZpbGU6ICdjb2xvclByb2ZpbGUnLFxuICAnY29sb3ItcHJvZmlsZSc6ICdjb2xvclByb2ZpbGUnLFxuICBjb2xvcnJlbmRlcmluZzogJ2NvbG9yUmVuZGVyaW5nJyxcbiAgJ2NvbG9yLXJlbmRlcmluZyc6ICdjb2xvclJlbmRlcmluZycsXG4gIGNvbnRlbnRzY3JpcHR0eXBlOiAnY29udGVudFNjcmlwdFR5cGUnLFxuICBjb250ZW50c3R5bGV0eXBlOiAnY29udGVudFN0eWxlVHlwZScsXG4gIGN1cnNvcjogJ2N1cnNvcicsXG4gIGN4OiAnY3gnLFxuICBjeTogJ2N5JyxcbiAgZDogJ2QnLFxuICBkYXRhdHlwZTogJ2RhdGF0eXBlJyxcbiAgZGVjZWxlcmF0ZTogJ2RlY2VsZXJhdGUnLFxuICBkZXNjZW50OiAnZGVzY2VudCcsXG4gIGRpZmZ1c2Vjb25zdGFudDogJ2RpZmZ1c2VDb25zdGFudCcsXG4gIGRpcmVjdGlvbjogJ2RpcmVjdGlvbicsXG4gIGRpc3BsYXk6ICdkaXNwbGF5JyxcbiAgZGl2aXNvcjogJ2Rpdmlzb3InLFxuICBkb21pbmFudGJhc2VsaW5lOiAnZG9taW5hbnRCYXNlbGluZScsXG4gICdkb21pbmFudC1iYXNlbGluZSc6ICdkb21pbmFudEJhc2VsaW5lJyxcbiAgZHVyOiAnZHVyJyxcbiAgZHg6ICdkeCcsXG4gIGR5OiAnZHknLFxuICBlZGdlbW9kZTogJ2VkZ2VNb2RlJyxcbiAgZWxldmF0aW9uOiAnZWxldmF0aW9uJyxcbiAgZW5hYmxlYmFja2dyb3VuZDogJ2VuYWJsZUJhY2tncm91bmQnLFxuICAnZW5hYmxlLWJhY2tncm91bmQnOiAnZW5hYmxlQmFja2dyb3VuZCcsXG4gIGVuZDogJ2VuZCcsXG4gIGV4cG9uZW50OiAnZXhwb25lbnQnLFxuICBleHRlcm5hbHJlc291cmNlc3JlcXVpcmVkOiAnZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCcsXG4gIGZpbGw6ICdmaWxsJyxcbiAgZmlsbG9wYWNpdHk6ICdmaWxsT3BhY2l0eScsXG4gICdmaWxsLW9wYWNpdHknOiAnZmlsbE9wYWNpdHknLFxuICBmaWxscnVsZTogJ2ZpbGxSdWxlJyxcbiAgJ2ZpbGwtcnVsZSc6ICdmaWxsUnVsZScsXG4gIGZpbHRlcjogJ2ZpbHRlcicsXG4gIGZpbHRlcnJlczogJ2ZpbHRlclJlcycsXG4gIGZpbHRlcnVuaXRzOiAnZmlsdGVyVW5pdHMnLFxuICBmbG9vZG9wYWNpdHk6ICdmbG9vZE9wYWNpdHknLFxuICAnZmxvb2Qtb3BhY2l0eSc6ICdmbG9vZE9wYWNpdHknLFxuICBmbG9vZGNvbG9yOiAnZmxvb2RDb2xvcicsXG4gICdmbG9vZC1jb2xvcic6ICdmbG9vZENvbG9yJyxcbiAgZm9jdXNhYmxlOiAnZm9jdXNhYmxlJyxcbiAgZm9udGZhbWlseTogJ2ZvbnRGYW1pbHknLFxuICAnZm9udC1mYW1pbHknOiAnZm9udEZhbWlseScsXG4gIGZvbnRzaXplOiAnZm9udFNpemUnLFxuICAnZm9udC1zaXplJzogJ2ZvbnRTaXplJyxcbiAgZm9udHNpemVhZGp1c3Q6ICdmb250U2l6ZUFkanVzdCcsXG4gICdmb250LXNpemUtYWRqdXN0JzogJ2ZvbnRTaXplQWRqdXN0JyxcbiAgZm9udHN0cmV0Y2g6ICdmb250U3RyZXRjaCcsXG4gICdmb250LXN0cmV0Y2gnOiAnZm9udFN0cmV0Y2gnLFxuICBmb250c3R5bGU6ICdmb250U3R5bGUnLFxuICAnZm9udC1zdHlsZSc6ICdmb250U3R5bGUnLFxuICBmb250dmFyaWFudDogJ2ZvbnRWYXJpYW50JyxcbiAgJ2ZvbnQtdmFyaWFudCc6ICdmb250VmFyaWFudCcsXG4gIGZvbnR3ZWlnaHQ6ICdmb250V2VpZ2h0JyxcbiAgJ2ZvbnQtd2VpZ2h0JzogJ2ZvbnRXZWlnaHQnLFxuICBmb3JtYXQ6ICdmb3JtYXQnLFxuICBmcm9tOiAnZnJvbScsXG4gIGZ4OiAnZngnLFxuICBmeTogJ2Z5JyxcbiAgZzE6ICdnMScsXG4gIGcyOiAnZzInLFxuICBnbHlwaG5hbWU6ICdnbHlwaE5hbWUnLFxuICAnZ2x5cGgtbmFtZSc6ICdnbHlwaE5hbWUnLFxuICBnbHlwaG9yaWVudGF0aW9uaG9yaXpvbnRhbDogJ2dseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsJyxcbiAgJ2dseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwnOiAnZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWwnLFxuICBnbHlwaG9yaWVudGF0aW9udmVydGljYWw6ICdnbHlwaE9yaWVudGF0aW9uVmVydGljYWwnLFxuICAnZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwnOiAnZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsJyxcbiAgZ2x5cGhyZWY6ICdnbHlwaFJlZicsXG4gIGdyYWRpZW50dHJhbnNmb3JtOiAnZ3JhZGllbnRUcmFuc2Zvcm0nLFxuICBncmFkaWVudHVuaXRzOiAnZ3JhZGllbnRVbml0cycsXG4gIGhhbmdpbmc6ICdoYW5naW5nJyxcbiAgaG9yaXphZHZ4OiAnaG9yaXpBZHZYJyxcbiAgJ2hvcml6LWFkdi14JzogJ2hvcml6QWR2WCcsXG4gIGhvcml6b3JpZ2lueDogJ2hvcml6T3JpZ2luWCcsXG4gICdob3Jpei1vcmlnaW4teCc6ICdob3Jpek9yaWdpblgnLFxuICBpZGVvZ3JhcGhpYzogJ2lkZW9ncmFwaGljJyxcbiAgaW1hZ2VyZW5kZXJpbmc6ICdpbWFnZVJlbmRlcmluZycsXG4gICdpbWFnZS1yZW5kZXJpbmcnOiAnaW1hZ2VSZW5kZXJpbmcnLFxuICBpbjI6ICdpbjInLFxuICBpbjogJ2luJyxcbiAgaW5saXN0OiAnaW5saXN0JyxcbiAgaW50ZXJjZXB0OiAnaW50ZXJjZXB0JyxcbiAgazE6ICdrMScsXG4gIGsyOiAnazInLFxuICBrMzogJ2szJyxcbiAgazQ6ICdrNCcsXG4gIGs6ICdrJyxcbiAga2VybmVsbWF0cml4OiAna2VybmVsTWF0cml4JyxcbiAga2VybmVsdW5pdGxlbmd0aDogJ2tlcm5lbFVuaXRMZW5ndGgnLFxuICBrZXJuaW5nOiAna2VybmluZycsXG4gIGtleXBvaW50czogJ2tleVBvaW50cycsXG4gIGtleXNwbGluZXM6ICdrZXlTcGxpbmVzJyxcbiAga2V5dGltZXM6ICdrZXlUaW1lcycsXG4gIGxlbmd0aGFkanVzdDogJ2xlbmd0aEFkanVzdCcsXG4gIGxldHRlcnNwYWNpbmc6ICdsZXR0ZXJTcGFjaW5nJyxcbiAgJ2xldHRlci1zcGFjaW5nJzogJ2xldHRlclNwYWNpbmcnLFxuICBsaWdodGluZ2NvbG9yOiAnbGlnaHRpbmdDb2xvcicsXG4gICdsaWdodGluZy1jb2xvcic6ICdsaWdodGluZ0NvbG9yJyxcbiAgbGltaXRpbmdjb25lYW5nbGU6ICdsaW1pdGluZ0NvbmVBbmdsZScsXG4gIGxvY2FsOiAnbG9jYWwnLFxuICBtYXJrZXJlbmQ6ICdtYXJrZXJFbmQnLFxuICAnbWFya2VyLWVuZCc6ICdtYXJrZXJFbmQnLFxuICBtYXJrZXJoZWlnaHQ6ICdtYXJrZXJIZWlnaHQnLFxuICBtYXJrZXJtaWQ6ICdtYXJrZXJNaWQnLFxuICAnbWFya2VyLW1pZCc6ICdtYXJrZXJNaWQnLFxuICBtYXJrZXJzdGFydDogJ21hcmtlclN0YXJ0JyxcbiAgJ21hcmtlci1zdGFydCc6ICdtYXJrZXJTdGFydCcsXG4gIG1hcmtlcnVuaXRzOiAnbWFya2VyVW5pdHMnLFxuICBtYXJrZXJ3aWR0aDogJ21hcmtlcldpZHRoJyxcbiAgbWFzazogJ21hc2snLFxuICBtYXNrY29udGVudHVuaXRzOiAnbWFza0NvbnRlbnRVbml0cycsXG4gIG1hc2t1bml0czogJ21hc2tVbml0cycsXG4gIG1hdGhlbWF0aWNhbDogJ21hdGhlbWF0aWNhbCcsXG4gIG1vZGU6ICdtb2RlJyxcbiAgbnVtb2N0YXZlczogJ251bU9jdGF2ZXMnLFxuICBvZmZzZXQ6ICdvZmZzZXQnLFxuICBvcGFjaXR5OiAnb3BhY2l0eScsXG4gIG9wZXJhdG9yOiAnb3BlcmF0b3InLFxuICBvcmRlcjogJ29yZGVyJyxcbiAgb3JpZW50OiAnb3JpZW50JyxcbiAgb3JpZW50YXRpb246ICdvcmllbnRhdGlvbicsXG4gIG9yaWdpbjogJ29yaWdpbicsXG4gIG92ZXJmbG93OiAnb3ZlcmZsb3cnLFxuICBvdmVybGluZXBvc2l0aW9uOiAnb3ZlcmxpbmVQb3NpdGlvbicsXG4gICdvdmVybGluZS1wb3NpdGlvbic6ICdvdmVybGluZVBvc2l0aW9uJyxcbiAgb3ZlcmxpbmV0aGlja25lc3M6ICdvdmVybGluZVRoaWNrbmVzcycsXG4gICdvdmVybGluZS10aGlja25lc3MnOiAnb3ZlcmxpbmVUaGlja25lc3MnLFxuICBwYWludG9yZGVyOiAncGFpbnRPcmRlcicsXG4gICdwYWludC1vcmRlcic6ICdwYWludE9yZGVyJyxcbiAgcGFub3NlMTogJ3Bhbm9zZTEnLFxuICAncGFub3NlLTEnOiAncGFub3NlMScsXG4gIHBhdGhsZW5ndGg6ICdwYXRoTGVuZ3RoJyxcbiAgcGF0dGVybmNvbnRlbnR1bml0czogJ3BhdHRlcm5Db250ZW50VW5pdHMnLFxuICBwYXR0ZXJudHJhbnNmb3JtOiAncGF0dGVyblRyYW5zZm9ybScsXG4gIHBhdHRlcm51bml0czogJ3BhdHRlcm5Vbml0cycsXG4gIHBvaW50ZXJldmVudHM6ICdwb2ludGVyRXZlbnRzJyxcbiAgJ3BvaW50ZXItZXZlbnRzJzogJ3BvaW50ZXJFdmVudHMnLFxuICBwb2ludHM6ICdwb2ludHMnLFxuICBwb2ludHNhdHg6ICdwb2ludHNBdFgnLFxuICBwb2ludHNhdHk6ICdwb2ludHNBdFknLFxuICBwb2ludHNhdHo6ICdwb2ludHNBdFonLFxuICBwcmVmaXg6ICdwcmVmaXgnLFxuICBwcmVzZXJ2ZWFscGhhOiAncHJlc2VydmVBbHBoYScsXG4gIHByZXNlcnZlYXNwZWN0cmF0aW86ICdwcmVzZXJ2ZUFzcGVjdFJhdGlvJyxcbiAgcHJpbWl0aXZldW5pdHM6ICdwcmltaXRpdmVVbml0cycsXG4gIHByb3BlcnR5OiAncHJvcGVydHknLFxuICByOiAncicsXG4gIHJhZGl1czogJ3JhZGl1cycsXG4gIHJlZng6ICdyZWZYJyxcbiAgcmVmeTogJ3JlZlknLFxuICByZW5kZXJpbmdpbnRlbnQ6ICdyZW5kZXJpbmdJbnRlbnQnLFxuICAncmVuZGVyaW5nLWludGVudCc6ICdyZW5kZXJpbmdJbnRlbnQnLFxuICByZXBlYXRjb3VudDogJ3JlcGVhdENvdW50JyxcbiAgcmVwZWF0ZHVyOiAncmVwZWF0RHVyJyxcbiAgcmVxdWlyZWRleHRlbnNpb25zOiAncmVxdWlyZWRFeHRlbnNpb25zJyxcbiAgcmVxdWlyZWRmZWF0dXJlczogJ3JlcXVpcmVkRmVhdHVyZXMnLFxuICByZXNvdXJjZTogJ3Jlc291cmNlJyxcbiAgcmVzdGFydDogJ3Jlc3RhcnQnLFxuICByZXN1bHQ6ICdyZXN1bHQnLFxuICByZXN1bHRzOiAncmVzdWx0cycsXG4gIHJvdGF0ZTogJ3JvdGF0ZScsXG4gIHJ4OiAncngnLFxuICByeTogJ3J5JyxcbiAgc2NhbGU6ICdzY2FsZScsXG4gIHNlY3VyaXR5OiAnc2VjdXJpdHknLFxuICBzZWVkOiAnc2VlZCcsXG4gIHNoYXBlcmVuZGVyaW5nOiAnc2hhcGVSZW5kZXJpbmcnLFxuICAnc2hhcGUtcmVuZGVyaW5nJzogJ3NoYXBlUmVuZGVyaW5nJyxcbiAgc2xvcGU6ICdzbG9wZScsXG4gIHNwYWNpbmc6ICdzcGFjaW5nJyxcbiAgc3BlY3VsYXJjb25zdGFudDogJ3NwZWN1bGFyQ29uc3RhbnQnLFxuICBzcGVjdWxhcmV4cG9uZW50OiAnc3BlY3VsYXJFeHBvbmVudCcsXG4gIHNwZWVkOiAnc3BlZWQnLFxuICBzcHJlYWRtZXRob2Q6ICdzcHJlYWRNZXRob2QnLFxuICBzdGFydG9mZnNldDogJ3N0YXJ0T2Zmc2V0JyxcbiAgc3RkZGV2aWF0aW9uOiAnc3RkRGV2aWF0aW9uJyxcbiAgc3RlbWg6ICdzdGVtaCcsXG4gIHN0ZW12OiAnc3RlbXYnLFxuICBzdGl0Y2h0aWxlczogJ3N0aXRjaFRpbGVzJyxcbiAgc3RvcGNvbG9yOiAnc3RvcENvbG9yJyxcbiAgJ3N0b3AtY29sb3InOiAnc3RvcENvbG9yJyxcbiAgc3RvcG9wYWNpdHk6ICdzdG9wT3BhY2l0eScsXG4gICdzdG9wLW9wYWNpdHknOiAnc3RvcE9wYWNpdHknLFxuICBzdHJpa2V0aHJvdWdocG9zaXRpb246ICdzdHJpa2V0aHJvdWdoUG9zaXRpb24nLFxuICAnc3RyaWtldGhyb3VnaC1wb3NpdGlvbic6ICdzdHJpa2V0aHJvdWdoUG9zaXRpb24nLFxuICBzdHJpa2V0aHJvdWdodGhpY2tuZXNzOiAnc3RyaWtldGhyb3VnaFRoaWNrbmVzcycsXG4gICdzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyc6ICdzdHJpa2V0aHJvdWdoVGhpY2tuZXNzJyxcbiAgc3RyaW5nOiAnc3RyaW5nJyxcbiAgc3Ryb2tlOiAnc3Ryb2tlJyxcbiAgc3Ryb2tlZGFzaGFycmF5OiAnc3Ryb2tlRGFzaGFycmF5JyxcbiAgJ3N0cm9rZS1kYXNoYXJyYXknOiAnc3Ryb2tlRGFzaGFycmF5JyxcbiAgc3Ryb2tlZGFzaG9mZnNldDogJ3N0cm9rZURhc2hvZmZzZXQnLFxuICAnc3Ryb2tlLWRhc2hvZmZzZXQnOiAnc3Ryb2tlRGFzaG9mZnNldCcsXG4gIHN0cm9rZWxpbmVjYXA6ICdzdHJva2VMaW5lY2FwJyxcbiAgJ3N0cm9rZS1saW5lY2FwJzogJ3N0cm9rZUxpbmVjYXAnLFxuICBzdHJva2VsaW5lam9pbjogJ3N0cm9rZUxpbmVqb2luJyxcbiAgJ3N0cm9rZS1saW5lam9pbic6ICdzdHJva2VMaW5lam9pbicsXG4gIHN0cm9rZW1pdGVybGltaXQ6ICdzdHJva2VNaXRlcmxpbWl0JyxcbiAgJ3N0cm9rZS1taXRlcmxpbWl0JzogJ3N0cm9rZU1pdGVybGltaXQnLFxuICBzdHJva2V3aWR0aDogJ3N0cm9rZVdpZHRoJyxcbiAgJ3N0cm9rZS13aWR0aCc6ICdzdHJva2VXaWR0aCcsXG4gIHN0cm9rZW9wYWNpdHk6ICdzdHJva2VPcGFjaXR5JyxcbiAgJ3N0cm9rZS1vcGFjaXR5JzogJ3N0cm9rZU9wYWNpdHknLFxuICBzdXBwcmVzc2NvbnRlbnRlZGl0YWJsZXdhcm5pbmc6ICdzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcnLFxuICBzdXBwcmVzc2h5ZHJhdGlvbndhcm5pbmc6ICdzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcnLFxuICBzdXJmYWNlc2NhbGU6ICdzdXJmYWNlU2NhbGUnLFxuICBzeXN0ZW1sYW5ndWFnZTogJ3N5c3RlbUxhbmd1YWdlJyxcbiAgdGFibGV2YWx1ZXM6ICd0YWJsZVZhbHVlcycsXG4gIHRhcmdldHg6ICd0YXJnZXRYJyxcbiAgdGFyZ2V0eTogJ3RhcmdldFknLFxuICB0ZXh0YW5jaG9yOiAndGV4dEFuY2hvcicsXG4gICd0ZXh0LWFuY2hvcic6ICd0ZXh0QW5jaG9yJyxcbiAgdGV4dGRlY29yYXRpb246ICd0ZXh0RGVjb3JhdGlvbicsXG4gICd0ZXh0LWRlY29yYXRpb24nOiAndGV4dERlY29yYXRpb24nLFxuICB0ZXh0bGVuZ3RoOiAndGV4dExlbmd0aCcsXG4gIHRleHRyZW5kZXJpbmc6ICd0ZXh0UmVuZGVyaW5nJyxcbiAgJ3RleHQtcmVuZGVyaW5nJzogJ3RleHRSZW5kZXJpbmcnLFxuICB0bzogJ3RvJyxcbiAgdHJhbnNmb3JtOiAndHJhbnNmb3JtJyxcbiAgdHlwZW9mOiAndHlwZW9mJyxcbiAgdTE6ICd1MScsXG4gIHUyOiAndTInLFxuICB1bmRlcmxpbmVwb3NpdGlvbjogJ3VuZGVybGluZVBvc2l0aW9uJyxcbiAgJ3VuZGVybGluZS1wb3NpdGlvbic6ICd1bmRlcmxpbmVQb3NpdGlvbicsXG4gIHVuZGVybGluZXRoaWNrbmVzczogJ3VuZGVybGluZVRoaWNrbmVzcycsXG4gICd1bmRlcmxpbmUtdGhpY2tuZXNzJzogJ3VuZGVybGluZVRoaWNrbmVzcycsXG4gIHVuaWNvZGU6ICd1bmljb2RlJyxcbiAgdW5pY29kZWJpZGk6ICd1bmljb2RlQmlkaScsXG4gICd1bmljb2RlLWJpZGknOiAndW5pY29kZUJpZGknLFxuICB1bmljb2RlcmFuZ2U6ICd1bmljb2RlUmFuZ2UnLFxuICAndW5pY29kZS1yYW5nZSc6ICd1bmljb2RlUmFuZ2UnLFxuICB1bml0c3BlcmVtOiAndW5pdHNQZXJFbScsXG4gICd1bml0cy1wZXItZW0nOiAndW5pdHNQZXJFbScsXG4gIHVuc2VsZWN0YWJsZTogJ3Vuc2VsZWN0YWJsZScsXG4gIHZhbHBoYWJldGljOiAndkFscGhhYmV0aWMnLFxuICAndi1hbHBoYWJldGljJzogJ3ZBbHBoYWJldGljJyxcbiAgdmFsdWVzOiAndmFsdWVzJyxcbiAgdmVjdG9yZWZmZWN0OiAndmVjdG9yRWZmZWN0JyxcbiAgJ3ZlY3Rvci1lZmZlY3QnOiAndmVjdG9yRWZmZWN0JyxcbiAgdmVyc2lvbjogJ3ZlcnNpb24nLFxuICB2ZXJ0YWR2eTogJ3ZlcnRBZHZZJyxcbiAgJ3ZlcnQtYWR2LXknOiAndmVydEFkdlknLFxuICB2ZXJ0b3JpZ2lueDogJ3ZlcnRPcmlnaW5YJyxcbiAgJ3ZlcnQtb3JpZ2luLXgnOiAndmVydE9yaWdpblgnLFxuICB2ZXJ0b3JpZ2lueTogJ3ZlcnRPcmlnaW5ZJyxcbiAgJ3ZlcnQtb3JpZ2luLXknOiAndmVydE9yaWdpblknLFxuICB2aGFuZ2luZzogJ3ZIYW5naW5nJyxcbiAgJ3YtaGFuZ2luZyc6ICd2SGFuZ2luZycsXG4gIHZpZGVvZ3JhcGhpYzogJ3ZJZGVvZ3JhcGhpYycsXG4gICd2LWlkZW9ncmFwaGljJzogJ3ZJZGVvZ3JhcGhpYycsXG4gIHZpZXdib3g6ICd2aWV3Qm94JyxcbiAgdmlld3RhcmdldDogJ3ZpZXdUYXJnZXQnLFxuICB2aXNpYmlsaXR5OiAndmlzaWJpbGl0eScsXG4gIHZtYXRoZW1hdGljYWw6ICd2TWF0aGVtYXRpY2FsJyxcbiAgJ3YtbWF0aGVtYXRpY2FsJzogJ3ZNYXRoZW1hdGljYWwnLFxuICB2b2NhYjogJ3ZvY2FiJyxcbiAgd2lkdGhzOiAnd2lkdGhzJyxcbiAgd29yZHNwYWNpbmc6ICd3b3JkU3BhY2luZycsXG4gICd3b3JkLXNwYWNpbmcnOiAnd29yZFNwYWNpbmcnLFxuICB3cml0aW5nbW9kZTogJ3dyaXRpbmdNb2RlJyxcbiAgJ3dyaXRpbmctbW9kZSc6ICd3cml0aW5nTW9kZScsXG4gIHgxOiAneDEnLFxuICB4MjogJ3gyJyxcbiAgeDogJ3gnLFxuICB4Y2hhbm5lbHNlbGVjdG9yOiAneENoYW5uZWxTZWxlY3RvcicsXG4gIHhoZWlnaHQ6ICd4SGVpZ2h0JyxcbiAgJ3gtaGVpZ2h0JzogJ3hIZWlnaHQnLFxuICB4bGlua2FjdHVhdGU6ICd4bGlua0FjdHVhdGUnLFxuICAneGxpbms6YWN0dWF0ZSc6ICd4bGlua0FjdHVhdGUnLFxuICB4bGlua2FyY3JvbGU6ICd4bGlua0FyY3JvbGUnLFxuICAneGxpbms6YXJjcm9sZSc6ICd4bGlua0FyY3JvbGUnLFxuICB4bGlua2hyZWY6ICd4bGlua0hyZWYnLFxuICAneGxpbms6aHJlZic6ICd4bGlua0hyZWYnLFxuICB4bGlua3JvbGU6ICd4bGlua1JvbGUnLFxuICAneGxpbms6cm9sZSc6ICd4bGlua1JvbGUnLFxuICB4bGlua3Nob3c6ICd4bGlua1Nob3cnLFxuICAneGxpbms6c2hvdyc6ICd4bGlua1Nob3cnLFxuICB4bGlua3RpdGxlOiAneGxpbmtUaXRsZScsXG4gICd4bGluazp0aXRsZSc6ICd4bGlua1RpdGxlJyxcbiAgeGxpbmt0eXBlOiAneGxpbmtUeXBlJyxcbiAgJ3hsaW5rOnR5cGUnOiAneGxpbmtUeXBlJyxcbiAgeG1sYmFzZTogJ3htbEJhc2UnLFxuICAneG1sOmJhc2UnOiAneG1sQmFzZScsXG4gIHhtbGxhbmc6ICd4bWxMYW5nJyxcbiAgJ3htbDpsYW5nJzogJ3htbExhbmcnLFxuICB4bWxuczogJ3htbG5zJyxcbiAgJ3htbDpzcGFjZSc6ICd4bWxTcGFjZScsXG4gIHhtbG5zeGxpbms6ICd4bWxuc1hsaW5rJyxcbiAgJ3htbG5zOnhsaW5rJzogJ3htbG5zWGxpbmsnLFxuICB4bWxzcGFjZTogJ3htbFNwYWNlJyxcbiAgeTE6ICd5MScsXG4gIHkyOiAneTInLFxuICB5OiAneScsXG4gIHljaGFubmVsc2VsZWN0b3I6ICd5Q2hhbm5lbFNlbGVjdG9yJyxcbiAgejogJ3onLFxuICB6b29tYW5kcGFuOiAnem9vbUFuZFBhbidcbn07XG5cbnZhciBhcmlhUHJvcGVydGllcyA9IHtcbiAgJ2FyaWEtY3VycmVudCc6IDAsXG4gIC8vIHN0YXRlXG4gICdhcmlhLWRlc2NyaXB0aW9uJzogMCxcbiAgJ2FyaWEtZGV0YWlscyc6IDAsXG4gICdhcmlhLWRpc2FibGVkJzogMCxcbiAgLy8gc3RhdGVcbiAgJ2FyaWEtaGlkZGVuJzogMCxcbiAgLy8gc3RhdGVcbiAgJ2FyaWEtaW52YWxpZCc6IDAsXG4gIC8vIHN0YXRlXG4gICdhcmlhLWtleXNob3J0Y3V0cyc6IDAsXG4gICdhcmlhLWxhYmVsJzogMCxcbiAgJ2FyaWEtcm9sZWRlc2NyaXB0aW9uJzogMCxcbiAgLy8gV2lkZ2V0IEF0dHJpYnV0ZXNcbiAgJ2FyaWEtYXV0b2NvbXBsZXRlJzogMCxcbiAgJ2FyaWEtY2hlY2tlZCc6IDAsXG4gICdhcmlhLWV4cGFuZGVkJzogMCxcbiAgJ2FyaWEtaGFzcG9wdXAnOiAwLFxuICAnYXJpYS1sZXZlbCc6IDAsXG4gICdhcmlhLW1vZGFsJzogMCxcbiAgJ2FyaWEtbXVsdGlsaW5lJzogMCxcbiAgJ2FyaWEtbXVsdGlzZWxlY3RhYmxlJzogMCxcbiAgJ2FyaWEtb3JpZW50YXRpb24nOiAwLFxuICAnYXJpYS1wbGFjZWhvbGRlcic6IDAsXG4gICdhcmlhLXByZXNzZWQnOiAwLFxuICAnYXJpYS1yZWFkb25seSc6IDAsXG4gICdhcmlhLXJlcXVpcmVkJzogMCxcbiAgJ2FyaWEtc2VsZWN0ZWQnOiAwLFxuICAnYXJpYS1zb3J0JzogMCxcbiAgJ2FyaWEtdmFsdWVtYXgnOiAwLFxuICAnYXJpYS12YWx1ZW1pbic6IDAsXG4gICdhcmlhLXZhbHVlbm93JzogMCxcbiAgJ2FyaWEtdmFsdWV0ZXh0JzogMCxcbiAgLy8gTGl2ZSBSZWdpb24gQXR0cmlidXRlc1xuICAnYXJpYS1hdG9taWMnOiAwLFxuICAnYXJpYS1idXN5JzogMCxcbiAgJ2FyaWEtbGl2ZSc6IDAsXG4gICdhcmlhLXJlbGV2YW50JzogMCxcbiAgLy8gRHJhZy1hbmQtRHJvcCBBdHRyaWJ1dGVzXG4gICdhcmlhLWRyb3BlZmZlY3QnOiAwLFxuICAnYXJpYS1ncmFiYmVkJzogMCxcbiAgLy8gUmVsYXRpb25zaGlwIEF0dHJpYnV0ZXNcbiAgJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc6IDAsXG4gICdhcmlhLWNvbGNvdW50JzogMCxcbiAgJ2FyaWEtY29saW5kZXgnOiAwLFxuICAnYXJpYS1jb2xzcGFuJzogMCxcbiAgJ2FyaWEtY29udHJvbHMnOiAwLFxuICAnYXJpYS1kZXNjcmliZWRieSc6IDAsXG4gICdhcmlhLWVycm9ybWVzc2FnZSc6IDAsXG4gICdhcmlhLWZsb3d0byc6IDAsXG4gICdhcmlhLWxhYmVsbGVkYnknOiAwLFxuICAnYXJpYS1vd25zJzogMCxcbiAgJ2FyaWEtcG9zaW5zZXQnOiAwLFxuICAnYXJpYS1yb3djb3VudCc6IDAsXG4gICdhcmlhLXJvd2luZGV4JzogMCxcbiAgJ2FyaWEtcm93c3Bhbic6IDAsXG4gICdhcmlhLXNldHNpemUnOiAwXG59O1xuXG52YXIgd2FybmVkUHJvcGVydGllcyA9IHt9O1xudmFyIHJBUklBID0gbmV3IFJlZ0V4cCgnXihhcmlhKS1bJyArIEFUVFJJQlVURV9OQU1FX0NIQVIgKyAnXSokJyk7XG52YXIgckFSSUFDYW1lbCA9IG5ldyBSZWdFeHAoJ14oYXJpYSlbQS1aXVsnICsgQVRUUklCVVRFX05BTUVfQ0hBUiArICddKiQnKTtcblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0eSh0YWdOYW1lLCBuYW1lKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbCh3YXJuZWRQcm9wZXJ0aWVzLCBuYW1lKSAmJiB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAockFSSUFDYW1lbC50ZXN0KG5hbWUpKSB7XG4gICAgICB2YXIgYXJpYU5hbWUgPSAnYXJpYS0nICsgbmFtZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpO1xuICAgICAgdmFyIGNvcnJlY3ROYW1lID0gYXJpYVByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoYXJpYU5hbWUpID8gYXJpYU5hbWUgOiBudWxsOyAvLyBJZiB0aGlzIGlzIGFuIGFyaWEtKiBhdHRyaWJ1dGUsIGJ1dCBpcyBub3QgbGlzdGVkIGluIHRoZSBrbm93biBET01cbiAgICAgIC8vIERPTSBwcm9wZXJ0aWVzLCB0aGVuIGl0IGlzIGFuIGludmFsaWQgYXJpYS0qIGF0dHJpYnV0ZS5cblxuICAgICAgaWYgKGNvcnJlY3ROYW1lID09IG51bGwpIHtcbiAgICAgICAgZXJyb3IoJ0ludmFsaWQgQVJJQSBhdHRyaWJ1dGUgYCVzYC4gQVJJQSBhdHRyaWJ1dGVzIGZvbGxvdyB0aGUgcGF0dGVybiBhcmlhLSogYW5kIG11c3QgYmUgbG93ZXJjYXNlLicsIG5hbWUpO1xuXG4gICAgICAgIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gLy8gYXJpYS0qIGF0dHJpYnV0ZXMgc2hvdWxkIGJlIGxvd2VyY2FzZTsgc3VnZ2VzdCB0aGUgbG93ZXJjYXNlIHZlcnNpb24uXG5cblxuICAgICAgaWYgKG5hbWUgIT09IGNvcnJlY3ROYW1lKSB7XG4gICAgICAgIGVycm9yKCdJbnZhbGlkIEFSSUEgYXR0cmlidXRlIGAlc2AuIERpZCB5b3UgbWVhbiBgJXNgPycsIG5hbWUsIGNvcnJlY3ROYW1lKTtcblxuICAgICAgICB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJBUklBLnRlc3QobmFtZSkpIHtcbiAgICAgIHZhciBsb3dlckNhc2VkTmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIHZhciBzdGFuZGFyZE5hbWUgPSBhcmlhUHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShsb3dlckNhc2VkTmFtZSkgPyBsb3dlckNhc2VkTmFtZSA6IG51bGw7IC8vIElmIHRoaXMgaXMgYW4gYXJpYS0qIGF0dHJpYnV0ZSwgYnV0IGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGtub3duIERPTVxuICAgICAgLy8gRE9NIHByb3BlcnRpZXMsIHRoZW4gaXQgaXMgYW4gaW52YWxpZCBhcmlhLSogYXR0cmlidXRlLlxuXG4gICAgICBpZiAoc3RhbmRhcmROYW1lID09IG51bGwpIHtcbiAgICAgICAgd2FybmVkUHJvcGVydGllc1tuYW1lXSA9IHRydWU7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0gLy8gYXJpYS0qIGF0dHJpYnV0ZXMgc2hvdWxkIGJlIGxvd2VyY2FzZTsgc3VnZ2VzdCB0aGUgbG93ZXJjYXNlIHZlcnNpb24uXG5cblxuICAgICAgaWYgKG5hbWUgIT09IHN0YW5kYXJkTmFtZSkge1xuICAgICAgICBlcnJvcignVW5rbm93biBBUklBIGF0dHJpYnV0ZSBgJXNgLiBEaWQgeW91IG1lYW4gYCVzYD8nLCBuYW1lLCBzdGFuZGFyZE5hbWUpO1xuXG4gICAgICAgIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gd2FybkludmFsaWRBUklBUHJvcHModHlwZSwgcHJvcHMpIHtcbiAge1xuICAgIHZhciBpbnZhbGlkUHJvcHMgPSBbXTtcblxuICAgIGZvciAodmFyIGtleSBpbiBwcm9wcykge1xuICAgICAgdmFyIGlzVmFsaWQgPSB2YWxpZGF0ZVByb3BlcnR5KHR5cGUsIGtleSk7XG5cbiAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICBpbnZhbGlkUHJvcHMucHVzaChrZXkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciB1bmtub3duUHJvcFN0cmluZyA9IGludmFsaWRQcm9wcy5tYXAoZnVuY3Rpb24gKHByb3ApIHtcbiAgICAgIHJldHVybiAnYCcgKyBwcm9wICsgJ2AnO1xuICAgIH0pLmpvaW4oJywgJyk7XG5cbiAgICBpZiAoaW52YWxpZFByb3BzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgZXJyb3IoJ0ludmFsaWQgYXJpYSBwcm9wICVzIG9uIDwlcz4gdGFnLiAnICsgJ0ZvciBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2ludmFsaWQtYXJpYS1wcm9wcycsIHVua25vd25Qcm9wU3RyaW5nLCB0eXBlKTtcbiAgICB9IGVsc2UgaWYgKGludmFsaWRQcm9wcy5sZW5ndGggPiAxKSB7XG4gICAgICBlcnJvcignSW52YWxpZCBhcmlhIHByb3BzICVzIG9uIDwlcz4gdGFnLiAnICsgJ0ZvciBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2ludmFsaWQtYXJpYS1wcm9wcycsIHVua25vd25Qcm9wU3RyaW5nLCB0eXBlKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0aWVzKHR5cGUsIHByb3BzKSB7XG4gIGlmIChpc0N1c3RvbUNvbXBvbmVudCh0eXBlLCBwcm9wcykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB3YXJuSW52YWxpZEFSSUFQcm9wcyh0eXBlLCBwcm9wcyk7XG59XG5cbnZhciBkaWRXYXJuVmFsdWVOdWxsID0gZmFsc2U7XG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BlcnRpZXMkMSh0eXBlLCBwcm9wcykge1xuICB7XG4gICAgaWYgKHR5cGUgIT09ICdpbnB1dCcgJiYgdHlwZSAhPT0gJ3RleHRhcmVhJyAmJiB0eXBlICE9PSAnc2VsZWN0Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwcm9wcyAhPSBudWxsICYmIHByb3BzLnZhbHVlID09PSBudWxsICYmICFkaWRXYXJuVmFsdWVOdWxsKSB7XG4gICAgICBkaWRXYXJuVmFsdWVOdWxsID0gdHJ1ZTtcblxuICAgICAgaWYgKHR5cGUgPT09ICdzZWxlY3QnICYmIHByb3BzLm11bHRpcGxlKSB7XG4gICAgICAgIGVycm9yKCdgdmFsdWVgIHByb3Agb24gYCVzYCBzaG91bGQgbm90IGJlIG51bGwuICcgKyAnQ29uc2lkZXIgdXNpbmcgYW4gZW1wdHkgYXJyYXkgd2hlbiBgbXVsdGlwbGVgIGlzIHNldCB0byBgdHJ1ZWAgJyArICd0byBjbGVhciB0aGUgY29tcG9uZW50IG9yIGB1bmRlZmluZWRgIGZvciB1bmNvbnRyb2xsZWQgY29tcG9uZW50cy4nLCB0eXBlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yKCdgdmFsdWVgIHByb3Agb24gYCVzYCBzaG91bGQgbm90IGJlIG51bGwuICcgKyAnQ29uc2lkZXIgdXNpbmcgYW4gZW1wdHkgc3RyaW5nIHRvIGNsZWFyIHRoZSBjb21wb25lbnQgb3IgYHVuZGVmaW5lZGAgJyArICdmb3IgdW5jb250cm9sbGVkIGNvbXBvbmVudHMuJywgdHlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciB2YWxpZGF0ZVByb3BlcnR5JDEgPSBmdW5jdGlvbiAoKSB7fTtcblxue1xuICB2YXIgd2FybmVkUHJvcGVydGllcyQxID0ge307XG4gIHZhciBFVkVOVF9OQU1FX1JFR0VYID0gL15vbi4vO1xuICB2YXIgSU5WQUxJRF9FVkVOVF9OQU1FX1JFR0VYID0gL15vblteQS1aXS87XG4gIHZhciByQVJJQSQxID0gbmV3IFJlZ0V4cCgnXihhcmlhKS1bJyArIEFUVFJJQlVURV9OQU1FX0NIQVIgKyAnXSokJyk7XG4gIHZhciByQVJJQUNhbWVsJDEgPSBuZXcgUmVnRXhwKCdeKGFyaWEpW0EtWl1bJyArIEFUVFJJQlVURV9OQU1FX0NIQVIgKyAnXSokJyk7XG5cbiAgdmFsaWRhdGVQcm9wZXJ0eSQxID0gZnVuY3Rpb24gKHRhZ05hbWUsIG5hbWUsIHZhbHVlLCBldmVudFJlZ2lzdHJ5KSB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwod2FybmVkUHJvcGVydGllcyQxLCBuYW1lKSAmJiB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZhciBsb3dlckNhc2VkTmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChsb3dlckNhc2VkTmFtZSA9PT0gJ29uZm9jdXNpbicgfHwgbG93ZXJDYXNlZE5hbWUgPT09ICdvbmZvY3Vzb3V0Jykge1xuICAgICAgZXJyb3IoJ1JlYWN0IHVzZXMgb25Gb2N1cyBhbmQgb25CbHVyIGluc3RlYWQgb2Ygb25Gb2N1c0luIGFuZCBvbkZvY3VzT3V0LiAnICsgJ0FsbCBSZWFjdCBldmVudHMgYXJlIG5vcm1hbGl6ZWQgdG8gYnViYmxlLCBzbyBvbkZvY3VzSW4gYW5kIG9uRm9jdXNPdXQgJyArICdhcmUgbm90IG5lZWRlZC9zdXBwb3J0ZWQgYnkgUmVhY3QuJyk7XG5cbiAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IC8vIFdlIGNhbid0IHJlbHkgb24gdGhlIGV2ZW50IHN5c3RlbSBiZWluZyBpbmplY3RlZCBvbiB0aGUgc2VydmVyLlxuXG5cbiAgICBpZiAoZXZlbnRSZWdpc3RyeSAhPSBudWxsKSB7XG4gICAgICB2YXIgcmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcyA9IGV2ZW50UmVnaXN0cnkucmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcyxcbiAgICAgICAgICBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzID0gZXZlbnRSZWdpc3RyeS5wb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzO1xuXG4gICAgICBpZiAocmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJlZ2lzdHJhdGlvbk5hbWUgPSBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzLmhhc093blByb3BlcnR5KGxvd2VyQ2FzZWROYW1lKSA/IHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXNbbG93ZXJDYXNlZE5hbWVdIDogbnVsbDtcblxuICAgICAgaWYgKHJlZ2lzdHJhdGlvbk5hbWUgIT0gbnVsbCkge1xuICAgICAgICBlcnJvcignSW52YWxpZCBldmVudCBoYW5kbGVyIHByb3BlcnR5IGAlc2AuIERpZCB5b3UgbWVhbiBgJXNgPycsIG5hbWUsIHJlZ2lzdHJhdGlvbk5hbWUpO1xuXG4gICAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoRVZFTlRfTkFNRV9SRUdFWC50ZXN0KG5hbWUpKSB7XG4gICAgICAgIGVycm9yKCdVbmtub3duIGV2ZW50IGhhbmRsZXIgcHJvcGVydHkgYCVzYC4gSXQgd2lsbCBiZSBpZ25vcmVkLicsIG5hbWUpO1xuXG4gICAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoRVZFTlRfTkFNRV9SRUdFWC50ZXN0KG5hbWUpKSB7XG4gICAgICAvLyBJZiBubyBldmVudCBwbHVnaW5zIGhhdmUgYmVlbiBpbmplY3RlZCwgd2UgYXJlIGluIGEgc2VydmVyIGVudmlyb25tZW50LlxuICAgICAgLy8gU28gd2UgY2FuJ3QgdGVsbCBpZiB0aGUgZXZlbnQgbmFtZSBpcyBjb3JyZWN0IGZvciBzdXJlLCBidXQgd2UgY2FuIGZpbHRlclxuICAgICAgLy8gb3V0IGtub3duIGJhZCBvbmVzIGxpa2UgYG9uY2xpY2tgLiBXZSBjYW4ndCBzdWdnZXN0IGEgc3BlY2lmaWMgcmVwbGFjZW1lbnQgdGhvdWdoLlxuICAgICAgaWYgKElOVkFMSURfRVZFTlRfTkFNRV9SRUdFWC50ZXN0KG5hbWUpKSB7XG4gICAgICAgIGVycm9yKCdJbnZhbGlkIGV2ZW50IGhhbmRsZXIgcHJvcGVydHkgYCVzYC4gJyArICdSZWFjdCBldmVudHMgdXNlIHRoZSBjYW1lbENhc2UgbmFtaW5nIGNvbnZlbnRpb24sIGZvciBleGFtcGxlIGBvbkNsaWNrYC4nLCBuYW1lKTtcbiAgICAgIH1cblxuICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gLy8gTGV0IHRoZSBBUklBIGF0dHJpYnV0ZSBob29rIHZhbGlkYXRlIEFSSUEgYXR0cmlidXRlc1xuXG5cbiAgICBpZiAockFSSUEkMS50ZXN0KG5hbWUpIHx8IHJBUklBQ2FtZWwkMS50ZXN0KG5hbWUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJDYXNlZE5hbWUgPT09ICdpbm5lcmh0bWwnKSB7XG4gICAgICBlcnJvcignRGlyZWN0bHkgc2V0dGluZyBwcm9wZXJ0eSBgaW5uZXJIVE1MYCBpcyBub3QgcGVybWl0dGVkLiAnICsgJ0ZvciBtb3JlIGluZm9ybWF0aW9uLCBsb29rdXAgZG9jdW1lbnRhdGlvbiBvbiBgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgLicpO1xuXG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyQ2FzZWROYW1lID09PSAnYXJpYScpIHtcbiAgICAgIGVycm9yKCdUaGUgYGFyaWFgIGF0dHJpYnV0ZSBpcyByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBpbiBSZWFjdC4gJyArICdQYXNzIGluZGl2aWR1YWwgYGFyaWEtYCBhdHRyaWJ1dGVzIGluc3RlYWQuJyk7XG5cbiAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJDYXNlZE5hbWUgPT09ICdpcycgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICBlcnJvcignUmVjZWl2ZWQgYSBgJXNgIGZvciBhIHN0cmluZyBhdHRyaWJ1dGUgYGlzYC4gSWYgdGhpcyBpcyBleHBlY3RlZCwgY2FzdCAnICsgJ3RoZSB2YWx1ZSB0byBhIHN0cmluZy4nLCB0eXBlb2YgdmFsdWUpO1xuXG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgaXNOYU4odmFsdWUpKSB7XG4gICAgICBlcnJvcignUmVjZWl2ZWQgTmFOIGZvciB0aGUgYCVzYCBhdHRyaWJ1dGUuIElmIHRoaXMgaXMgZXhwZWN0ZWQsIGNhc3QgJyArICd0aGUgdmFsdWUgdG8gYSBzdHJpbmcuJywgbmFtZSk7XG5cbiAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB2YXIgcHJvcGVydHlJbmZvID0gZ2V0UHJvcGVydHlJbmZvKG5hbWUpO1xuICAgIHZhciBpc1Jlc2VydmVkID0gcHJvcGVydHlJbmZvICE9PSBudWxsICYmIHByb3BlcnR5SW5mby50eXBlID09PSBSRVNFUlZFRDsgLy8gS25vd24gYXR0cmlidXRlcyBzaG91bGQgbWF0Y2ggdGhlIGNhc2luZyBzcGVjaWZpZWQgaW4gdGhlIHByb3BlcnR5IGNvbmZpZy5cblxuICAgIGlmIChwb3NzaWJsZVN0YW5kYXJkTmFtZXMuaGFzT3duUHJvcGVydHkobG93ZXJDYXNlZE5hbWUpKSB7XG4gICAgICB2YXIgc3RhbmRhcmROYW1lID0gcG9zc2libGVTdGFuZGFyZE5hbWVzW2xvd2VyQ2FzZWROYW1lXTtcblxuICAgICAgaWYgKHN0YW5kYXJkTmFtZSAhPT0gbmFtZSkge1xuICAgICAgICBlcnJvcignSW52YWxpZCBET00gcHJvcGVydHkgYCVzYC4gRGlkIHlvdSBtZWFuIGAlc2A/JywgbmFtZSwgc3RhbmRhcmROYW1lKTtcblxuICAgICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCFpc1Jlc2VydmVkICYmIG5hbWUgIT09IGxvd2VyQ2FzZWROYW1lKSB7XG4gICAgICAvLyBVbmtub3duIGF0dHJpYnV0ZXMgc2hvdWxkIGhhdmUgbG93ZXJjYXNlIGNhc2luZyBzaW5jZSB0aGF0J3MgaG93IHRoZXlcbiAgICAgIC8vIHdpbGwgYmUgY2FzZWQgYW55d2F5IHdpdGggc2VydmVyIHJlbmRlcmluZy5cbiAgICAgIGVycm9yKCdSZWFjdCBkb2VzIG5vdCByZWNvZ25pemUgdGhlIGAlc2AgcHJvcCBvbiBhIERPTSBlbGVtZW50LiBJZiB5b3UgJyArICdpbnRlbnRpb25hbGx5IHdhbnQgaXQgdG8gYXBwZWFyIGluIHRoZSBET00gYXMgYSBjdXN0b20gJyArICdhdHRyaWJ1dGUsIHNwZWxsIGl0IGFzIGxvd2VyY2FzZSBgJXNgIGluc3RlYWQuICcgKyAnSWYgeW91IGFjY2lkZW50YWxseSBwYXNzZWQgaXQgZnJvbSBhIHBhcmVudCBjb21wb25lbnQsIHJlbW92ZSAnICsgJ2l0IGZyb20gdGhlIERPTSBlbGVtZW50LicsIG5hbWUsIGxvd2VyQ2FzZWROYW1lKTtcblxuICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyAmJiBzaG91bGRSZW1vdmVBdHRyaWJ1dGVXaXRoV2FybmluZyhuYW1lLCB2YWx1ZSwgcHJvcGVydHlJbmZvLCBmYWxzZSkpIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBlcnJvcignUmVjZWl2ZWQgYCVzYCBmb3IgYSBub24tYm9vbGVhbiBhdHRyaWJ1dGUgYCVzYC5cXG5cXG4nICsgJ0lmIHlvdSB3YW50IHRvIHdyaXRlIGl0IHRvIHRoZSBET00sIHBhc3MgYSBzdHJpbmcgaW5zdGVhZDogJyArICclcz1cIiVzXCIgb3IgJXM9e3ZhbHVlLnRvU3RyaW5nKCl9LicsIHZhbHVlLCBuYW1lLCBuYW1lLCB2YWx1ZSwgbmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvcignUmVjZWl2ZWQgYCVzYCBmb3IgYSBub24tYm9vbGVhbiBhdHRyaWJ1dGUgYCVzYC5cXG5cXG4nICsgJ0lmIHlvdSB3YW50IHRvIHdyaXRlIGl0IHRvIHRoZSBET00sIHBhc3MgYSBzdHJpbmcgaW5zdGVhZDogJyArICclcz1cIiVzXCIgb3IgJXM9e3ZhbHVlLnRvU3RyaW5nKCl9LlxcblxcbicgKyAnSWYgeW91IHVzZWQgdG8gY29uZGl0aW9uYWxseSBvbWl0IGl0IHdpdGggJXM9e2NvbmRpdGlvbiAmJiB2YWx1ZX0sICcgKyAncGFzcyAlcz17Y29uZGl0aW9uID8gdmFsdWUgOiB1bmRlZmluZWR9IGluc3RlYWQuJywgdmFsdWUsIG5hbWUsIG5hbWUsIHZhbHVlLCBuYW1lLCBuYW1lLCBuYW1lKTtcbiAgICAgIH1cblxuICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gLy8gTm93IHRoYXQgd2UndmUgdmFsaWRhdGVkIGNhc2luZywgZG8gbm90IHZhbGlkYXRlXG4gICAgLy8gZGF0YSB0eXBlcyBmb3IgcmVzZXJ2ZWQgcHJvcHNcblxuXG4gICAgaWYgKGlzUmVzZXJ2ZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gLy8gV2FybiB3aGVuIGEga25vd24gYXR0cmlidXRlIGlzIGEgYmFkIHR5cGVcblxuXG4gICAgaWYgKHNob3VsZFJlbW92ZUF0dHJpYnV0ZVdpdGhXYXJuaW5nKG5hbWUsIHZhbHVlLCBwcm9wZXJ0eUluZm8sIGZhbHNlKSkge1xuICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IC8vIFdhcm4gd2hlbiBwYXNzaW5nIHRoZSBzdHJpbmdzICdmYWxzZScgb3IgJ3RydWUnIGludG8gYSBib29sZWFuIHByb3BcblxuXG4gICAgaWYgKCh2YWx1ZSA9PT0gJ2ZhbHNlJyB8fCB2YWx1ZSA9PT0gJ3RydWUnKSAmJiBwcm9wZXJ0eUluZm8gIT09IG51bGwgJiYgcHJvcGVydHlJbmZvLnR5cGUgPT09IEJPT0xFQU4pIHtcbiAgICAgIGVycm9yKCdSZWNlaXZlZCB0aGUgc3RyaW5nIGAlc2AgZm9yIHRoZSBib29sZWFuIGF0dHJpYnV0ZSBgJXNgLiAnICsgJyVzICcgKyAnRGlkIHlvdSBtZWFuICVzPXslc30/JywgdmFsdWUsIG5hbWUsIHZhbHVlID09PSAnZmFsc2UnID8gJ1RoZSBicm93c2VyIHdpbGwgaW50ZXJwcmV0IGl0IGFzIGEgdHJ1dGh5IHZhbHVlLicgOiAnQWx0aG91Z2ggdGhpcyB3b3JrcywgaXQgd2lsbCBub3Qgd29yayBhcyBleHBlY3RlZCBpZiB5b3UgcGFzcyB0aGUgc3RyaW5nIFwiZmFsc2VcIi4nLCBuYW1lLCB2YWx1ZSk7XG5cbiAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcbn1cblxudmFyIHdhcm5Vbmtub3duUHJvcGVydGllcyA9IGZ1bmN0aW9uICh0eXBlLCBwcm9wcywgZXZlbnRSZWdpc3RyeSkge1xuICB7XG4gICAgdmFyIHVua25vd25Qcm9wcyA9IFtdO1xuXG4gICAgZm9yICh2YXIga2V5IGluIHByb3BzKSB7XG4gICAgICB2YXIgaXNWYWxpZCA9IHZhbGlkYXRlUHJvcGVydHkkMSh0eXBlLCBrZXksIHByb3BzW2tleV0sIGV2ZW50UmVnaXN0cnkpO1xuXG4gICAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgICAgdW5rbm93blByb3BzLnB1c2goa2V5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgdW5rbm93blByb3BTdHJpbmcgPSB1bmtub3duUHJvcHMubWFwKGZ1bmN0aW9uIChwcm9wKSB7XG4gICAgICByZXR1cm4gJ2AnICsgcHJvcCArICdgJztcbiAgICB9KS5qb2luKCcsICcpO1xuXG4gICAgaWYgKHVua25vd25Qcm9wcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGVycm9yKCdJbnZhbGlkIHZhbHVlIGZvciBwcm9wICVzIG9uIDwlcz4gdGFnLiBFaXRoZXIgcmVtb3ZlIGl0IGZyb20gdGhlIGVsZW1lbnQsICcgKyAnb3IgcGFzcyBhIHN0cmluZyBvciBudW1iZXIgdmFsdWUgdG8ga2VlcCBpdCBpbiB0aGUgRE9NLiAnICsgJ0ZvciBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2F0dHJpYnV0ZS1iZWhhdmlvciAnLCB1bmtub3duUHJvcFN0cmluZywgdHlwZSk7XG4gICAgfSBlbHNlIGlmICh1bmtub3duUHJvcHMubGVuZ3RoID4gMSkge1xuICAgICAgZXJyb3IoJ0ludmFsaWQgdmFsdWVzIGZvciBwcm9wcyAlcyBvbiA8JXM+IHRhZy4gRWl0aGVyIHJlbW92ZSB0aGVtIGZyb20gdGhlIGVsZW1lbnQsICcgKyAnb3IgcGFzcyBhIHN0cmluZyBvciBudW1iZXIgdmFsdWUgdG8ga2VlcCB0aGVtIGluIHRoZSBET00uICcgKyAnRm9yIGRldGFpbHMsIHNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvYXR0cmlidXRlLWJlaGF2aW9yICcsIHVua25vd25Qcm9wU3RyaW5nLCB0eXBlKTtcbiAgICB9XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcGVydGllcyQyKHR5cGUsIHByb3BzLCBldmVudFJlZ2lzdHJ5KSB7XG4gIGlmIChpc0N1c3RvbUNvbXBvbmVudCh0eXBlLCBwcm9wcykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB3YXJuVW5rbm93blByb3BlcnRpZXModHlwZSwgcHJvcHMsIGV2ZW50UmVnaXN0cnkpO1xufVxuXG52YXIgSVNfRVZFTlRfSEFORExFX05PTl9NQU5BR0VEX05PREUgPSAxO1xudmFyIElTX05PTl9ERUxFR0FURUQgPSAxIDw8IDE7XG52YXIgSVNfQ0FQVFVSRV9QSEFTRSA9IDEgPDwgMjtcbi8vIHNldCB0byBMRUdBQ1lfRkJfU1VQUE9SVC4gTEVHQUNZX0ZCX1NVUFBPUlQgb25seSBnZXRzIHNldCB3aGVuXG4vLyB3ZSBjYWxsIHdpbGxEZWZlckxhdGVyRm9yTGVnYWN5RkJTdXBwb3J0LCB0aHVzIG5vdCBiYWlsaW5nIG91dFxuLy8gd2lsbCByZXN1bHQgaW4gZW5kbGVzcyBjeWNsZXMgbGlrZSBhbiBpbmZpbml0ZSBsb29wLlxuLy8gV2UgYWxzbyBkb24ndCB3YW50IHRvIGRlZmVyIGR1cmluZyBldmVudCByZXBsYXlpbmcuXG5cbnZhciBTSE9VTERfTk9UX1BST0NFU1NfUE9MWUZJTExfRVZFTlRfUExVR0lOUyA9IElTX0VWRU5UX0hBTkRMRV9OT05fTUFOQUdFRF9OT0RFIHwgSVNfTk9OX0RFTEVHQVRFRCB8IElTX0NBUFRVUkVfUEhBU0U7XG5cbi8vIFRoaXMgZXhpc3RzIHRvIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY3kgYmV0d2VlbiBSZWFjdERPTUV2ZW50UmVwbGF5aW5nXG4vLyBhbmQgRE9NUGx1Z2luRXZlbnRTeXN0ZW0uXG52YXIgY3VycmVudFJlcGxheWluZ0V2ZW50ID0gbnVsbDtcbmZ1bmN0aW9uIHNldFJlcGxheWluZ0V2ZW50KGV2ZW50KSB7XG4gIHtcbiAgICBpZiAoY3VycmVudFJlcGxheWluZ0V2ZW50ICE9PSBudWxsKSB7XG4gICAgICBlcnJvcignRXhwZWN0ZWQgY3VycmVudGx5IHJlcGxheWluZyBldmVudCB0byBiZSBudWxsLiBUaGlzIGVycm9yICcgKyAnaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgfVxuICB9XG5cbiAgY3VycmVudFJlcGxheWluZ0V2ZW50ID0gZXZlbnQ7XG59XG5mdW5jdGlvbiByZXNldFJlcGxheWluZ0V2ZW50KCkge1xuICB7XG4gICAgaWYgKGN1cnJlbnRSZXBsYXlpbmdFdmVudCA9PT0gbnVsbCkge1xuICAgICAgZXJyb3IoJ0V4cGVjdGVkIGN1cnJlbnRseSByZXBsYXlpbmcgZXZlbnQgdG8gbm90IGJlIG51bGwuIFRoaXMgZXJyb3IgJyArICdpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cblxuICBjdXJyZW50UmVwbGF5aW5nRXZlbnQgPSBudWxsO1xufVxuZnVuY3Rpb24gaXNSZXBsYXlpbmdFdmVudChldmVudCkge1xuICByZXR1cm4gZXZlbnQgPT09IGN1cnJlbnRSZXBsYXlpbmdFdmVudDtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSB0YXJnZXQgbm9kZSBmcm9tIGEgbmF0aXZlIGJyb3dzZXIgZXZlbnQgYnkgYWNjb3VudGluZyBmb3JcbiAqIGluY29uc2lzdGVuY2llcyBpbiBicm93c2VyIERPTSBBUElzLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudCBOYXRpdmUgYnJvd3NlciBldmVudC5cbiAqIEByZXR1cm4ge0RPTUV2ZW50VGFyZ2V0fSBUYXJnZXQgbm9kZS5cbiAqL1xuXG5mdW5jdGlvbiBnZXRFdmVudFRhcmdldChuYXRpdmVFdmVudCkge1xuICAvLyBGYWxsYmFjayB0byBuYXRpdmVFdmVudC5zcmNFbGVtZW50IGZvciBJRTlcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMjUwNlxuICB2YXIgdGFyZ2V0ID0gbmF0aXZlRXZlbnQudGFyZ2V0IHx8IG5hdGl2ZUV2ZW50LnNyY0VsZW1lbnQgfHwgd2luZG93OyAvLyBOb3JtYWxpemUgU1ZHIDx1c2U+IGVsZW1lbnQgZXZlbnRzICM0OTYzXG5cbiAgaWYgKHRhcmdldC5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCkge1xuICAgIHRhcmdldCA9IHRhcmdldC5jb3JyZXNwb25kaW5nVXNlRWxlbWVudDtcbiAgfSAvLyBTYWZhcmkgbWF5IGZpcmUgZXZlbnRzIG9uIHRleHQgbm9kZXMgKE5vZGUuVEVYVF9OT0RFIGlzIDMpLlxuICAvLyBAc2VlIGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvanMvZXZlbnRzX3Byb3BlcnRpZXMuaHRtbFxuXG5cbiAgcmV0dXJuIHRhcmdldC5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFID8gdGFyZ2V0LnBhcmVudE5vZGUgOiB0YXJnZXQ7XG59XG5cbnZhciByZXN0b3JlSW1wbCA9IG51bGw7XG52YXIgcmVzdG9yZVRhcmdldCA9IG51bGw7XG52YXIgcmVzdG9yZVF1ZXVlID0gbnVsbDtcblxuZnVuY3Rpb24gcmVzdG9yZVN0YXRlT2ZUYXJnZXQodGFyZ2V0KSB7XG4gIC8vIFdlIHBlcmZvcm0gdGhpcyB0cmFuc2xhdGlvbiBhdCB0aGUgZW5kIG9mIHRoZSBldmVudCBsb29wIHNvIHRoYXQgd2VcbiAgLy8gYWx3YXlzIHJlY2VpdmUgdGhlIGNvcnJlY3QgZmliZXIgaGVyZVxuICB2YXIgaW50ZXJuYWxJbnN0YW5jZSA9IGdldEluc3RhbmNlRnJvbU5vZGUodGFyZ2V0KTtcblxuICBpZiAoIWludGVybmFsSW5zdGFuY2UpIHtcbiAgICAvLyBVbm1vdW50ZWRcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAodHlwZW9mIHJlc3RvcmVJbXBsICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzZXRSZXN0b3JlSW1wbGVtZW50YXRpb24oKSBuZWVkcyB0byBiZSBjYWxsZWQgdG8gaGFuZGxlIGEgdGFyZ2V0IGZvciBjb250cm9sbGVkICcgKyAnZXZlbnRzLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICB9XG5cbiAgdmFyIHN0YXRlTm9kZSA9IGludGVybmFsSW5zdGFuY2Uuc3RhdGVOb2RlOyAvLyBHdWFyZCBhZ2FpbnN0IEZpYmVyIGJlaW5nIHVubW91bnRlZC5cblxuICBpZiAoc3RhdGVOb2RlKSB7XG4gICAgdmFyIF9wcm9wcyA9IGdldEZpYmVyQ3VycmVudFByb3BzRnJvbU5vZGUoc3RhdGVOb2RlKTtcblxuICAgIHJlc3RvcmVJbXBsKGludGVybmFsSW5zdGFuY2Uuc3RhdGVOb2RlLCBpbnRlcm5hbEluc3RhbmNlLnR5cGUsIF9wcm9wcyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0UmVzdG9yZUltcGxlbWVudGF0aW9uKGltcGwpIHtcbiAgcmVzdG9yZUltcGwgPSBpbXBsO1xufVxuZnVuY3Rpb24gZW5xdWV1ZVN0YXRlUmVzdG9yZSh0YXJnZXQpIHtcbiAgaWYgKHJlc3RvcmVUYXJnZXQpIHtcbiAgICBpZiAocmVzdG9yZVF1ZXVlKSB7XG4gICAgICByZXN0b3JlUXVldWUucHVzaCh0YXJnZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN0b3JlUXVldWUgPSBbdGFyZ2V0XTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmVzdG9yZVRhcmdldCA9IHRhcmdldDtcbiAgfVxufVxuZnVuY3Rpb24gbmVlZHNTdGF0ZVJlc3RvcmUoKSB7XG4gIHJldHVybiByZXN0b3JlVGFyZ2V0ICE9PSBudWxsIHx8IHJlc3RvcmVRdWV1ZSAhPT0gbnVsbDtcbn1cbmZ1bmN0aW9uIHJlc3RvcmVTdGF0ZUlmTmVlZGVkKCkge1xuICBpZiAoIXJlc3RvcmVUYXJnZXQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgdGFyZ2V0ID0gcmVzdG9yZVRhcmdldDtcbiAgdmFyIHF1ZXVlZFRhcmdldHMgPSByZXN0b3JlUXVldWU7XG4gIHJlc3RvcmVUYXJnZXQgPSBudWxsO1xuICByZXN0b3JlUXVldWUgPSBudWxsO1xuICByZXN0b3JlU3RhdGVPZlRhcmdldCh0YXJnZXQpO1xuXG4gIGlmIChxdWV1ZWRUYXJnZXRzKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWV1ZWRUYXJnZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXN0b3JlU3RhdGVPZlRhcmdldChxdWV1ZWRUYXJnZXRzW2ldKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gdGhlIHJlbmRlcmVyLiBTdWNoIGFzIHdoZW4gd2UncmUgZGlzcGF0Y2hpbmcgZXZlbnRzIG9yIGlmIHRoaXJkIHBhcnR5XG4vLyBsaWJyYXJpZXMgbmVlZCB0byBjYWxsIGJhdGNoZWRVcGRhdGVzLiBFdmVudHVhbGx5LCB0aGlzIEFQSSB3aWxsIGdvIGF3YXkgd2hlblxuLy8gZXZlcnl0aGluZyBpcyBiYXRjaGVkIGJ5IGRlZmF1bHQuIFdlJ2xsIHRoZW4gaGF2ZSBhIHNpbWlsYXIgQVBJIHRvIG9wdC1vdXQgb2Zcbi8vIHNjaGVkdWxlZCB3b3JrIGFuZCBpbnN0ZWFkIGRvIHN5bmNocm9ub3VzIHdvcmsuXG4vLyBEZWZhdWx0c1xuXG52YXIgYmF0Y2hlZFVwZGF0ZXNJbXBsID0gZnVuY3Rpb24gKGZuLCBib29ra2VlcGluZykge1xuICByZXR1cm4gZm4oYm9va2tlZXBpbmcpO1xufTtcblxudmFyIGZsdXNoU3luY0ltcGwgPSBmdW5jdGlvbiAoKSB7fTtcblxudmFyIGlzSW5zaWRlRXZlbnRIYW5kbGVyID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGZpbmlzaEV2ZW50SGFuZGxlcigpIHtcbiAgLy8gSGVyZSB3ZSB3YWl0IHVudGlsIGFsbCB1cGRhdGVzIGhhdmUgcHJvcGFnYXRlZCwgd2hpY2ggaXMgaW1wb3J0YW50XG4gIC8vIHdoZW4gdXNpbmcgY29udHJvbGxlZCBjb21wb25lbnRzIHdpdGhpbiBsYXllcnM6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTY5OFxuICAvLyBUaGVuIHdlIHJlc3RvcmUgc3RhdGUgb2YgYW55IGNvbnRyb2xsZWQgY29tcG9uZW50LlxuICB2YXIgY29udHJvbGxlZENvbXBvbmVudHNIYXZlUGVuZGluZ1VwZGF0ZXMgPSBuZWVkc1N0YXRlUmVzdG9yZSgpO1xuXG4gIGlmIChjb250cm9sbGVkQ29tcG9uZW50c0hhdmVQZW5kaW5nVXBkYXRlcykge1xuICAgIC8vIElmIGEgY29udHJvbGxlZCBldmVudCB3YXMgZmlyZWQsIHdlIG1heSBuZWVkIHRvIHJlc3RvcmUgdGhlIHN0YXRlIG9mXG4gICAgLy8gdGhlIERPTSBub2RlIGJhY2sgdG8gdGhlIGNvbnRyb2xsZWQgdmFsdWUuIFRoaXMgaXMgbmVjZXNzYXJ5IHdoZW4gUmVhY3RcbiAgICAvLyBiYWlscyBvdXQgb2YgdGhlIHVwZGF0ZSB3aXRob3V0IHRvdWNoaW5nIHRoZSBET00uXG4gICAgLy8gVE9ETzogUmVzdG9yZSBzdGF0ZSBpbiB0aGUgbWljcm90YXNrLCBhZnRlciB0aGUgZGlzY3JldGUgdXBkYXRlcyBmbHVzaCxcbiAgICAvLyBpbnN0ZWFkIG9mIGVhcmx5IGZsdXNoaW5nIHRoZW0gaGVyZS5cbiAgICBmbHVzaFN5bmNJbXBsKCk7XG4gICAgcmVzdG9yZVN0YXRlSWZOZWVkZWQoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBiYXRjaGVkVXBkYXRlcyhmbiwgYSwgYikge1xuICBpZiAoaXNJbnNpZGVFdmVudEhhbmRsZXIpIHtcbiAgICAvLyBJZiB3ZSBhcmUgY3VycmVudGx5IGluc2lkZSBhbm90aGVyIGJhdGNoLCB3ZSBuZWVkIHRvIHdhaXQgdW50aWwgaXRcbiAgICAvLyBmdWxseSBjb21wbGV0ZXMgYmVmb3JlIHJlc3RvcmluZyBzdGF0ZS5cbiAgICByZXR1cm4gZm4oYSwgYik7XG4gIH1cblxuICBpc0luc2lkZUV2ZW50SGFuZGxlciA9IHRydWU7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gYmF0Y2hlZFVwZGF0ZXNJbXBsKGZuLCBhLCBiKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBpc0luc2lkZUV2ZW50SGFuZGxlciA9IGZhbHNlO1xuICAgIGZpbmlzaEV2ZW50SGFuZGxlcigpO1xuICB9XG59IC8vIFRPRE86IFJlcGxhY2Ugd2l0aCBmbHVzaFN5bmNcbmZ1bmN0aW9uIHNldEJhdGNoaW5nSW1wbGVtZW50YXRpb24oX2JhdGNoZWRVcGRhdGVzSW1wbCwgX2Rpc2NyZXRlVXBkYXRlc0ltcGwsIF9mbHVzaFN5bmNJbXBsKSB7XG4gIGJhdGNoZWRVcGRhdGVzSW1wbCA9IF9iYXRjaGVkVXBkYXRlc0ltcGw7XG4gIGZsdXNoU3luY0ltcGwgPSBfZmx1c2hTeW5jSW1wbDtcbn1cblxuZnVuY3Rpb24gaXNJbnRlcmFjdGl2ZSh0YWcpIHtcbiAgcmV0dXJuIHRhZyA9PT0gJ2J1dHRvbicgfHwgdGFnID09PSAnaW5wdXQnIHx8IHRhZyA9PT0gJ3NlbGVjdCcgfHwgdGFnID09PSAndGV4dGFyZWEnO1xufVxuXG5mdW5jdGlvbiBzaG91bGRQcmV2ZW50TW91c2VFdmVudChuYW1lLCB0eXBlLCBwcm9wcykge1xuICBzd2l0Y2ggKG5hbWUpIHtcbiAgICBjYXNlICdvbkNsaWNrJzpcbiAgICBjYXNlICdvbkNsaWNrQ2FwdHVyZSc6XG4gICAgY2FzZSAnb25Eb3VibGVDbGljayc6XG4gICAgY2FzZSAnb25Eb3VibGVDbGlja0NhcHR1cmUnOlxuICAgIGNhc2UgJ29uTW91c2VEb3duJzpcbiAgICBjYXNlICdvbk1vdXNlRG93bkNhcHR1cmUnOlxuICAgIGNhc2UgJ29uTW91c2VNb3ZlJzpcbiAgICBjYXNlICdvbk1vdXNlTW92ZUNhcHR1cmUnOlxuICAgIGNhc2UgJ29uTW91c2VVcCc6XG4gICAgY2FzZSAnb25Nb3VzZVVwQ2FwdHVyZSc6XG4gICAgY2FzZSAnb25Nb3VzZUVudGVyJzpcbiAgICAgIHJldHVybiAhIShwcm9wcy5kaXNhYmxlZCAmJiBpc0ludGVyYWN0aXZlKHR5cGUpKTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IGluc3QgVGhlIGluc3RhbmNlLCB3aGljaCBpcyB0aGUgc291cmNlIG9mIGV2ZW50cy5cbiAqIEBwYXJhbSB7c3RyaW5nfSByZWdpc3RyYXRpb25OYW1lIE5hbWUgb2YgbGlzdGVuZXIgKGUuZy4gYG9uQ2xpY2tgKS5cbiAqIEByZXR1cm4gez9mdW5jdGlvbn0gVGhlIHN0b3JlZCBjYWxsYmFjay5cbiAqL1xuXG5cbmZ1bmN0aW9uIGdldExpc3RlbmVyKGluc3QsIHJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgdmFyIHN0YXRlTm9kZSA9IGluc3Quc3RhdGVOb2RlO1xuXG4gIGlmIChzdGF0ZU5vZGUgPT09IG51bGwpIHtcbiAgICAvLyBXb3JrIGluIHByb2dyZXNzIChleDogb25sb2FkIGV2ZW50cyBpbiBpbmNyZW1lbnRhbCBtb2RlKS5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBwcm9wcyA9IGdldEZpYmVyQ3VycmVudFByb3BzRnJvbU5vZGUoc3RhdGVOb2RlKTtcblxuICBpZiAocHJvcHMgPT09IG51bGwpIHtcbiAgICAvLyBXb3JrIGluIHByb2dyZXNzLlxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIGxpc3RlbmVyID0gcHJvcHNbcmVnaXN0cmF0aW9uTmFtZV07XG5cbiAgaWYgKHNob3VsZFByZXZlbnRNb3VzZUV2ZW50KHJlZ2lzdHJhdGlvbk5hbWUsIGluc3QudHlwZSwgcHJvcHMpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAobGlzdGVuZXIgJiYgdHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgYFwiICsgcmVnaXN0cmF0aW9uTmFtZSArIFwiYCBsaXN0ZW5lciB0byBiZSBhIGZ1bmN0aW9uLCBpbnN0ZWFkIGdvdCBhIHZhbHVlIG9mIGBcIiArIHR5cGVvZiBsaXN0ZW5lciArIFwiYCB0eXBlLlwiKTtcbiAgfVxuXG4gIHJldHVybiBsaXN0ZW5lcjtcbn1cblxudmFyIHBhc3NpdmVCcm93c2VyRXZlbnRzU3VwcG9ydGVkID0gZmFsc2U7IC8vIENoZWNrIGlmIGJyb3dzZXIgc3VwcG9ydCBldmVudHMgd2l0aCBwYXNzaXZlIGxpc3RlbmVyc1xuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0V2ZW50VGFyZ2V0L2FkZEV2ZW50TGlzdGVuZXIjU2FmZWx5X2RldGVjdGluZ19vcHRpb25fc3VwcG9ydFxuXG5pZiAoY2FuVXNlRE9NKSB7XG4gIHRyeSB7XG4gICAgdmFyIG9wdGlvbnMgPSB7fTsgLy8gJEZsb3dGaXhNZTogSWdub3JlIEZsb3cgY29tcGxhaW5pbmcgYWJvdXQgbmVlZGluZyBhIHZhbHVlXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob3B0aW9ucywgJ3Bhc3NpdmUnLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcGFzc2l2ZUJyb3dzZXJFdmVudHNTdXBwb3J0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0ZXN0Jywgb3B0aW9ucywgb3B0aW9ucyk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBvcHRpb25zLCBvcHRpb25zKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHBhc3NpdmVCcm93c2VyRXZlbnRzU3VwcG9ydGVkID0gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW52b2tlR3VhcmRlZENhbGxiYWNrUHJvZChuYW1lLCBmdW5jLCBjb250ZXh0LCBhLCBiLCBjLCBkLCBlLCBmKSB7XG4gIHZhciBmdW5jQXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMyk7XG5cbiAgdHJ5IHtcbiAgICBmdW5jLmFwcGx5KGNvbnRleHQsIGZ1bmNBcmdzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aGlzLm9uRXJyb3IoZXJyb3IpO1xuICB9XG59XG5cbnZhciBpbnZva2VHdWFyZGVkQ2FsbGJhY2tJbXBsID0gaW52b2tlR3VhcmRlZENhbGxiYWNrUHJvZDtcblxue1xuICAvLyBJbiBERVYgbW9kZSwgd2Ugc3dhcCBvdXQgaW52b2tlR3VhcmRlZENhbGxiYWNrIGZvciBhIHNwZWNpYWwgdmVyc2lvblxuICAvLyB0aGF0IHBsYXlzIG1vcmUgbmljZWx5IHdpdGggdGhlIGJyb3dzZXIncyBEZXZUb29scy4gVGhlIGlkZWEgaXMgdG8gcHJlc2VydmVcbiAgLy8gXCJQYXVzZSBvbiBleGNlcHRpb25zXCIgYmVoYXZpb3IuIEJlY2F1c2UgUmVhY3Qgd3JhcHMgYWxsIHVzZXItcHJvdmlkZWRcbiAgLy8gZnVuY3Rpb25zIGluIGludm9rZUd1YXJkZWRDYWxsYmFjaywgYW5kIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2ZcbiAgLy8gaW52b2tlR3VhcmRlZENhbGxiYWNrIHVzZXMgYSB0cnktY2F0Y2gsIGFsbCB1c2VyIGV4Y2VwdGlvbnMgYXJlIHRyZWF0ZWRcbiAgLy8gbGlrZSBjYXVnaHQgZXhjZXB0aW9ucywgYW5kIHRoZSBEZXZUb29scyB3b24ndCBwYXVzZSB1bmxlc3MgdGhlIGRldmVsb3BlclxuICAvLyB0YWtlcyB0aGUgZXh0cmEgc3RlcCBvZiBlbmFibGluZyBwYXVzZSBvbiBjYXVnaHQgZXhjZXB0aW9ucy4gVGhpcyBpc1xuICAvLyB1bmludHVpdGl2ZSwgdGhvdWdoLCBiZWNhdXNlIGV2ZW4gdGhvdWdoIFJlYWN0IGhhcyBjYXVnaHQgdGhlIGVycm9yLCBmcm9tXG4gIC8vIHRoZSBkZXZlbG9wZXIncyBwZXJzcGVjdGl2ZSwgdGhlIGVycm9yIGlzIHVuY2F1Z2h0LlxuICAvL1xuICAvLyBUbyBwcmVzZXJ2ZSB0aGUgZXhwZWN0ZWQgXCJQYXVzZSBvbiBleGNlcHRpb25zXCIgYmVoYXZpb3IsIHdlIGRvbid0IHVzZSBhXG4gIC8vIHRyeS1jYXRjaCBpbiBERVYuIEluc3RlYWQsIHdlIHN5bmNocm9ub3VzbHkgZGlzcGF0Y2ggYSBmYWtlIGV2ZW50IHRvIGEgZmFrZVxuICAvLyBET00gbm9kZSwgYW5kIGNhbGwgdGhlIHVzZXItcHJvdmlkZWQgY2FsbGJhY2sgZnJvbSBpbnNpZGUgYW4gZXZlbnQgaGFuZGxlclxuICAvLyBmb3IgdGhhdCBmYWtlIGV2ZW50LiBJZiB0aGUgY2FsbGJhY2sgdGhyb3dzLCB0aGUgZXJyb3IgaXMgXCJjYXB0dXJlZFwiIHVzaW5nXG4gIC8vIGEgZ2xvYmFsIGV2ZW50IGhhbmRsZXIuIEJ1dCBiZWNhdXNlIHRoZSBlcnJvciBoYXBwZW5zIGluIGEgZGlmZmVyZW50XG4gIC8vIGV2ZW50IGxvb3AgY29udGV4dCwgaXQgZG9lcyBub3QgaW50ZXJydXB0IHRoZSBub3JtYWwgcHJvZ3JhbSBmbG93LlxuICAvLyBFZmZlY3RpdmVseSwgdGhpcyBnaXZlcyB1cyB0cnktY2F0Y2ggYmVoYXZpb3Igd2l0aG91dCBhY3R1YWxseSB1c2luZ1xuICAvLyB0cnktY2F0Y2guIE5lYXQhXG4gIC8vIENoZWNrIHRoYXQgdGhlIGJyb3dzZXIgc3VwcG9ydHMgdGhlIEFQSXMgd2UgbmVlZCB0byBpbXBsZW1lbnQgb3VyIHNwZWNpYWxcbiAgLy8gREVWIHZlcnNpb24gb2YgaW52b2tlR3VhcmRlZENhbGxiYWNrXG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygd2luZG93LmRpc3BhdGNoRXZlbnQgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRXZlbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgZmFrZU5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdyZWFjdCcpO1xuXG4gICAgaW52b2tlR3VhcmRlZENhbGxiYWNrSW1wbCA9IGZ1bmN0aW9uIGludm9rZUd1YXJkZWRDYWxsYmFja0RldihuYW1lLCBmdW5jLCBjb250ZXh0LCBhLCBiLCBjLCBkLCBlLCBmKSB7XG4gICAgICAvLyBJZiBkb2N1bWVudCBkb2Vzbid0IGV4aXN0IHdlIGtub3cgZm9yIHN1cmUgd2Ugd2lsbCBjcmFzaCBpbiB0aGlzIG1ldGhvZFxuICAgICAgLy8gd2hlbiB3ZSBjYWxsIGRvY3VtZW50LmNyZWF0ZUV2ZW50KCkuIEhvd2V2ZXIgdGhpcyBjYW4gY2F1c2UgY29uZnVzaW5nXG4gICAgICAvLyBlcnJvcnM6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9jcmVhdGUtcmVhY3QtYXBwL2lzc3Vlcy8zNDgyXG4gICAgICAvLyBTbyB3ZSBwcmVlbXB0aXZlbHkgdGhyb3cgd2l0aCBhIGJldHRlciBtZXNzYWdlIGluc3RlYWQuXG4gICAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJyB8fCBkb2N1bWVudCA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBgZG9jdW1lbnRgIGdsb2JhbCB3YXMgZGVmaW5lZCB3aGVuIFJlYWN0IHdhcyBpbml0aWFsaXplZCwgYnV0IGlzIG5vdCAnICsgJ2RlZmluZWQgYW55bW9yZS4gVGhpcyBjYW4gaGFwcGVuIGluIGEgdGVzdCBlbnZpcm9ubWVudCBpZiBhIGNvbXBvbmVudCAnICsgJ3NjaGVkdWxlcyBhbiB1cGRhdGUgZnJvbSBhbiBhc3luY2hyb25vdXMgY2FsbGJhY2ssIGJ1dCB0aGUgdGVzdCBoYXMgYWxyZWFkeSAnICsgJ2ZpbmlzaGVkIHJ1bm5pbmcuIFRvIHNvbHZlIHRoaXMsIHlvdSBjYW4gZWl0aGVyIHVubW91bnQgdGhlIGNvbXBvbmVudCBhdCAnICsgJ3RoZSBlbmQgb2YgeW91ciB0ZXN0IChhbmQgZW5zdXJlIHRoYXQgYW55IGFzeW5jaHJvbm91cyBvcGVyYXRpb25zIGdldCAnICsgJ2NhbmNlbGVkIGluIGBjb21wb25lbnRXaWxsVW5tb3VudGApLCBvciB5b3UgY2FuIGNoYW5nZSB0aGUgdGVzdCBpdHNlbGYgJyArICd0byBiZSBhc3luY2hyb25vdXMuJyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnRXZlbnQnKTtcbiAgICAgIHZhciBkaWRDYWxsID0gZmFsc2U7IC8vIEtlZXBzIHRyYWNrIG9mIHdoZXRoZXIgdGhlIHVzZXItcHJvdmlkZWQgY2FsbGJhY2sgdGhyZXcgYW4gZXJyb3IuIFdlXG4gICAgICAvLyBzZXQgdGhpcyB0byB0cnVlIGF0IHRoZSBiZWdpbm5pbmcsIHRoZW4gc2V0IGl0IHRvIGZhbHNlIHJpZ2h0IGFmdGVyXG4gICAgICAvLyBjYWxsaW5nIHRoZSBmdW5jdGlvbi4gSWYgdGhlIGZ1bmN0aW9uIGVycm9ycywgYGRpZEVycm9yYCB3aWxsIG5ldmVyIGJlXG4gICAgICAvLyBzZXQgdG8gZmFsc2UuIFRoaXMgc3RyYXRlZ3kgd29ya3MgZXZlbiBpZiB0aGUgYnJvd3NlciBpcyBmbGFreSBhbmRcbiAgICAgIC8vIGZhaWxzIHRvIGNhbGwgb3VyIGdsb2JhbCBlcnJvciBoYW5kbGVyLCBiZWNhdXNlIGl0IGRvZXNuJ3QgcmVseSBvblxuICAgICAgLy8gdGhlIGVycm9yIGV2ZW50IGF0IGFsbC5cblxuICAgICAgdmFyIGRpZEVycm9yID0gdHJ1ZTsgLy8gS2VlcHMgdHJhY2sgb2YgdGhlIHZhbHVlIG9mIHdpbmRvdy5ldmVudCBzbyB0aGF0IHdlIGNhbiByZXNldCBpdFxuICAgICAgLy8gZHVyaW5nIHRoZSBjYWxsYmFjayB0byBsZXQgdXNlciBjb2RlIGFjY2VzcyB3aW5kb3cuZXZlbnQgaW4gdGhlXG4gICAgICAvLyBicm93c2VycyB0aGF0IHN1cHBvcnQgaXQuXG5cbiAgICAgIHZhciB3aW5kb3dFdmVudCA9IHdpbmRvdy5ldmVudDsgLy8gS2VlcHMgdHJhY2sgb2YgdGhlIGRlc2NyaXB0b3Igb2Ygd2luZG93LmV2ZW50IHRvIHJlc3RvcmUgaXQgYWZ0ZXIgZXZlbnRcbiAgICAgIC8vIGRpc3BhdGNoaW5nOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEzNjg4XG5cbiAgICAgIHZhciB3aW5kb3dFdmVudERlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ2V2ZW50Jyk7XG5cbiAgICAgIGZ1bmN0aW9uIHJlc3RvcmVBZnRlckRpc3BhdGNoKCkge1xuICAgICAgICAvLyBXZSBpbW1lZGlhdGVseSByZW1vdmUgdGhlIGNhbGxiYWNrIGZyb20gZXZlbnQgbGlzdGVuZXJzIHNvIHRoYXRcbiAgICAgICAgLy8gbmVzdGVkIGBpbnZva2VHdWFyZGVkQ2FsbGJhY2tgIGNhbGxzIGRvIG5vdCBjbGFzaC4gT3RoZXJ3aXNlLCBhXG4gICAgICAgIC8vIG5lc3RlZCBjYWxsIHdvdWxkIHRyaWdnZXIgdGhlIGZha2UgZXZlbnQgaGFuZGxlcnMgb2YgYW55IGNhbGwgaGlnaGVyXG4gICAgICAgIC8vIGluIHRoZSBzdGFjay5cbiAgICAgICAgZmFrZU5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihldnRUeXBlLCBjYWxsQ2FsbGJhY2ssIGZhbHNlKTsgLy8gV2UgY2hlY2sgZm9yIHdpbmRvdy5oYXNPd25Qcm9wZXJ0eSgnZXZlbnQnKSB0byBwcmV2ZW50IHRoZVxuICAgICAgICAvLyB3aW5kb3cuZXZlbnQgYXNzaWdubWVudCBpbiBib3RoIElFIDw9IDEwIGFzIHRoZXkgdGhyb3cgYW4gZXJyb3JcbiAgICAgICAgLy8gXCJNZW1iZXIgbm90IGZvdW5kXCIgaW4gc3RyaWN0IG1vZGUsIGFuZCBpbiBGaXJlZm94IHdoaWNoIGRvZXMgbm90XG4gICAgICAgIC8vIHN1cHBvcnQgd2luZG93LmV2ZW50LlxuXG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93LmV2ZW50ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuaGFzT3duUHJvcGVydHkoJ2V2ZW50JykpIHtcbiAgICAgICAgICB3aW5kb3cuZXZlbnQgPSB3aW5kb3dFdmVudDtcbiAgICAgICAgfVxuICAgICAgfSAvLyBDcmVhdGUgYW4gZXZlbnQgaGFuZGxlciBmb3Igb3VyIGZha2UgZXZlbnQuIFdlIHdpbGwgc3luY2hyb25vdXNseVxuICAgICAgLy8gZGlzcGF0Y2ggb3VyIGZha2UgZXZlbnQgdXNpbmcgYGRpc3BhdGNoRXZlbnRgLiBJbnNpZGUgdGhlIGhhbmRsZXIsIHdlXG4gICAgICAvLyBjYWxsIHRoZSB1c2VyLXByb3ZpZGVkIGNhbGxiYWNrLlxuXG5cbiAgICAgIHZhciBmdW5jQXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMyk7XG5cbiAgICAgIGZ1bmN0aW9uIGNhbGxDYWxsYmFjaygpIHtcbiAgICAgICAgZGlkQ2FsbCA9IHRydWU7XG4gICAgICAgIHJlc3RvcmVBZnRlckRpc3BhdGNoKCk7XG4gICAgICAgIGZ1bmMuYXBwbHkoY29udGV4dCwgZnVuY0FyZ3MpO1xuICAgICAgICBkaWRFcnJvciA9IGZhbHNlO1xuICAgICAgfSAvLyBDcmVhdGUgYSBnbG9iYWwgZXJyb3IgZXZlbnQgaGFuZGxlci4gV2UgdXNlIHRoaXMgdG8gY2FwdHVyZSB0aGUgdmFsdWVcbiAgICAgIC8vIHRoYXQgd2FzIHRocm93bi4gSXQncyBwb3NzaWJsZSB0aGF0IHRoaXMgZXJyb3IgaGFuZGxlciB3aWxsIGZpcmUgbW9yZVxuICAgICAgLy8gdGhhbiBvbmNlOyBmb3IgZXhhbXBsZSwgaWYgbm9uLVJlYWN0IGNvZGUgYWxzbyBjYWxscyBgZGlzcGF0Y2hFdmVudGBcbiAgICAgIC8vIGFuZCBhIGhhbmRsZXIgZm9yIHRoYXQgZXZlbnQgdGhyb3dzLiBXZSBzaG91bGQgYmUgcmVzaWxpZW50IHRvIG1vc3Qgb2ZcbiAgICAgIC8vIHRob3NlIGNhc2VzLiBFdmVuIGlmIG91ciBlcnJvciBldmVudCBoYW5kbGVyIGZpcmVzIG1vcmUgdGhhbiBvbmNlLCB0aGVcbiAgICAgIC8vIGxhc3QgZXJyb3IgZXZlbnQgaXMgYWx3YXlzIHVzZWQuIElmIHRoZSBjYWxsYmFjayBhY3R1YWxseSBkb2VzIGVycm9yLFxuICAgICAgLy8gd2Uga25vdyB0aGF0IHRoZSBsYXN0IGVycm9yIGV2ZW50IGlzIHRoZSBjb3JyZWN0IG9uZSwgYmVjYXVzZSBpdCdzIG5vdFxuICAgICAgLy8gcG9zc2libGUgZm9yIGFueXRoaW5nIGVsc2UgdG8gaGF2ZSBoYXBwZW5lZCBpbiBiZXR3ZWVuIG91ciBjYWxsYmFja1xuICAgICAgLy8gZXJyb3JpbmcgYW5kIHRoZSBjb2RlIHRoYXQgZm9sbG93cyB0aGUgYGRpc3BhdGNoRXZlbnRgIGNhbGwgYmVsb3cuIElmXG4gICAgICAvLyB0aGUgY2FsbGJhY2sgZG9lc24ndCBlcnJvciwgYnV0IHRoZSBlcnJvciBldmVudCB3YXMgZmlyZWQsIHdlIGtub3cgdG9cbiAgICAgIC8vIGlnbm9yZSBpdCBiZWNhdXNlIGBkaWRFcnJvcmAgd2lsbCBiZSBmYWxzZSwgYXMgZGVzY3JpYmVkIGFib3ZlLlxuXG5cbiAgICAgIHZhciBlcnJvcjsgLy8gVXNlIHRoaXMgdG8gdHJhY2sgd2hldGhlciB0aGUgZXJyb3IgZXZlbnQgaXMgZXZlciBjYWxsZWQuXG5cbiAgICAgIHZhciBkaWRTZXRFcnJvciA9IGZhbHNlO1xuICAgICAgdmFyIGlzQ3Jvc3NPcmlnaW5FcnJvciA9IGZhbHNlO1xuXG4gICAgICBmdW5jdGlvbiBoYW5kbGVXaW5kb3dFcnJvcihldmVudCkge1xuICAgICAgICBlcnJvciA9IGV2ZW50LmVycm9yO1xuICAgICAgICBkaWRTZXRFcnJvciA9IHRydWU7XG5cbiAgICAgICAgaWYgKGVycm9yID09PSBudWxsICYmIGV2ZW50LmNvbG5vID09PSAwICYmIGV2ZW50LmxpbmVubyA9PT0gMCkge1xuICAgICAgICAgIGlzQ3Jvc3NPcmlnaW5FcnJvciA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgIC8vIFNvbWUgb3RoZXIgZXJyb3IgaGFuZGxlciBoYXMgcHJldmVudGVkIGRlZmF1bHQuXG4gICAgICAgICAgLy8gQnJvd3NlcnMgc2lsZW5jZSB0aGUgZXJyb3IgcmVwb3J0IGlmIHRoaXMgaGFwcGVucy5cbiAgICAgICAgICAvLyBXZSdsbCByZW1lbWJlciB0aGlzIHRvIGxhdGVyIGRlY2lkZSB3aGV0aGVyIHRvIGxvZyBpdCBvciBub3QuXG4gICAgICAgICAgaWYgKGVycm9yICE9IG51bGwgJiYgdHlwZW9mIGVycm9yID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgZXJyb3IuX3N1cHByZXNzTG9nZ2luZyA9IHRydWU7XG4gICAgICAgICAgICB9IGNhdGNoIChpbm5lcikgey8vIElnbm9yZS5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gLy8gQ3JlYXRlIGEgZmFrZSBldmVudCB0eXBlLlxuXG5cbiAgICAgIHZhciBldnRUeXBlID0gXCJyZWFjdC1cIiArIChuYW1lID8gbmFtZSA6ICdpbnZva2VndWFyZGVkY2FsbGJhY2snKTsgLy8gQXR0YWNoIG91ciBldmVudCBoYW5kbGVyc1xuXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBoYW5kbGVXaW5kb3dFcnJvcik7XG4gICAgICBmYWtlTm9kZS5hZGRFdmVudExpc3RlbmVyKGV2dFR5cGUsIGNhbGxDYWxsYmFjaywgZmFsc2UpOyAvLyBTeW5jaHJvbm91c2x5IGRpc3BhdGNoIG91ciBmYWtlIGV2ZW50LiBJZiB0aGUgdXNlci1wcm92aWRlZCBmdW5jdGlvblxuICAgICAgLy8gZXJyb3JzLCBpdCB3aWxsIHRyaWdnZXIgb3VyIGdsb2JhbCBlcnJvciBoYW5kbGVyLlxuXG4gICAgICBldnQuaW5pdEV2ZW50KGV2dFR5cGUsIGZhbHNlLCBmYWxzZSk7XG4gICAgICBmYWtlTm9kZS5kaXNwYXRjaEV2ZW50KGV2dCk7XG5cbiAgICAgIGlmICh3aW5kb3dFdmVudERlc2NyaXB0b3IpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ2V2ZW50Jywgd2luZG93RXZlbnREZXNjcmlwdG9yKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpZENhbGwgJiYgZGlkRXJyb3IpIHtcbiAgICAgICAgaWYgKCFkaWRTZXRFcnJvcikge1xuICAgICAgICAgIC8vIFRoZSBjYWxsYmFjayBlcnJvcmVkLCBidXQgdGhlIGVycm9yIGV2ZW50IG5ldmVyIGZpcmVkLlxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoJ0FuIGVycm9yIHdhcyB0aHJvd24gaW5zaWRlIG9uZSBvZiB5b3VyIGNvbXBvbmVudHMsIGJ1dCBSZWFjdCAnICsgXCJkb2Vzbid0IGtub3cgd2hhdCBpdCB3YXMuIFRoaXMgaXMgbGlrZWx5IGR1ZSB0byBicm93c2VyIFwiICsgJ2ZsYWtpbmVzcy4gUmVhY3QgZG9lcyBpdHMgYmVzdCB0byBwcmVzZXJ2ZSB0aGUgXCJQYXVzZSBvbiAnICsgJ2V4Y2VwdGlvbnNcIiBiZWhhdmlvciBvZiB0aGUgRGV2VG9vbHMsIHdoaWNoIHJlcXVpcmVzIHNvbWUgJyArIFwiREVWLW1vZGUgb25seSB0cmlja3MuIEl0J3MgcG9zc2libGUgdGhhdCB0aGVzZSBkb24ndCB3b3JrIGluIFwiICsgJ3lvdXIgYnJvd3Nlci4gVHJ5IHRyaWdnZXJpbmcgdGhlIGVycm9yIGluIHByb2R1Y3Rpb24gbW9kZSwgJyArICdvciBzd2l0Y2hpbmcgdG8gYSBtb2Rlcm4gYnJvd3Nlci4gSWYgeW91IHN1c3BlY3QgdGhhdCB0aGlzIGlzICcgKyAnYWN0dWFsbHkgYW4gaXNzdWUgd2l0aCBSZWFjdCwgcGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNDcm9zc09yaWdpbkVycm9yKSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3Byb2QtZXJyb3ItY29kZXNcbiAgICAgICAgICBlcnJvciA9IG5ldyBFcnJvcihcIkEgY3Jvc3Mtb3JpZ2luIGVycm9yIHdhcyB0aHJvd24uIFJlYWN0IGRvZXNuJ3QgaGF2ZSBhY2Nlc3MgdG8gXCIgKyAndGhlIGFjdHVhbCBlcnJvciBvYmplY3QgaW4gZGV2ZWxvcG1lbnQuICcgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9jcm9zc29yaWdpbi1lcnJvciBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25FcnJvcihlcnJvcik7XG4gICAgICB9IC8vIFJlbW92ZSBvdXIgZXZlbnQgbGlzdGVuZXJzXG5cblxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgaGFuZGxlV2luZG93RXJyb3IpO1xuXG4gICAgICBpZiAoIWRpZENhbGwpIHtcbiAgICAgICAgLy8gU29tZXRoaW5nIHdlbnQgcmVhbGx5IHdyb25nLCBhbmQgb3VyIGV2ZW50IHdhcyBub3QgZGlzcGF0Y2hlZC5cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNjczNFxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE2NTg1XG4gICAgICAgIC8vIEZhbGwgYmFjayB0byB0aGUgcHJvZHVjdGlvbiBpbXBsZW1lbnRhdGlvbi5cbiAgICAgICAgcmVzdG9yZUFmdGVyRGlzcGF0Y2goKTtcbiAgICAgICAgcmV0dXJuIGludm9rZUd1YXJkZWRDYWxsYmFja1Byb2QuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG5cbnZhciBpbnZva2VHdWFyZGVkQ2FsbGJhY2tJbXBsJDEgPSBpbnZva2VHdWFyZGVkQ2FsbGJhY2tJbXBsO1xuXG52YXIgaGFzRXJyb3IgPSBmYWxzZTtcbnZhciBjYXVnaHRFcnJvciA9IG51bGw7IC8vIFVzZWQgYnkgZXZlbnQgc3lzdGVtIHRvIGNhcHR1cmUvcmV0aHJvdyB0aGUgZmlyc3QgZXJyb3IuXG5cbnZhciBoYXNSZXRocm93RXJyb3IgPSBmYWxzZTtcbnZhciByZXRocm93RXJyb3IgPSBudWxsO1xudmFyIHJlcG9ydGVyID0ge1xuICBvbkVycm9yOiBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICBoYXNFcnJvciA9IHRydWU7XG4gICAgY2F1Z2h0RXJyb3IgPSBlcnJvcjtcbiAgfVxufTtcbi8qKlxuICogQ2FsbCBhIGZ1bmN0aW9uIHdoaWxlIGd1YXJkaW5nIGFnYWluc3QgZXJyb3JzIHRoYXQgaGFwcGVucyB3aXRoaW4gaXQuXG4gKiBSZXR1cm5zIGFuIGVycm9yIGlmIGl0IHRocm93cywgb3RoZXJ3aXNlIG51bGwuXG4gKlxuICogSW4gcHJvZHVjdGlvbiwgdGhpcyBpcyBpbXBsZW1lbnRlZCB1c2luZyBhIHRyeS1jYXRjaC4gVGhlIHJlYXNvbiB3ZSBkb24ndFxuICogdXNlIGEgdHJ5LWNhdGNoIGRpcmVjdGx5IGlzIHNvIHRoYXQgd2UgY2FuIHN3YXAgb3V0IGEgZGlmZmVyZW50XG4gKiBpbXBsZW1lbnRhdGlvbiBpbiBERVYgbW9kZS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZSBvZiB0aGUgZ3VhcmQgdG8gdXNlIGZvciBsb2dnaW5nIG9yIGRlYnVnZ2luZ1xuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gaW52b2tlXG4gKiBAcGFyYW0geyp9IGNvbnRleHQgVGhlIGNvbnRleHQgdG8gdXNlIHdoZW4gY2FsbGluZyB0aGUgZnVuY3Rpb25cbiAqIEBwYXJhbSB7Li4uKn0gYXJncyBBcmd1bWVudHMgZm9yIGZ1bmN0aW9uXG4gKi9cblxuZnVuY3Rpb24gaW52b2tlR3VhcmRlZENhbGxiYWNrKG5hbWUsIGZ1bmMsIGNvbnRleHQsIGEsIGIsIGMsIGQsIGUsIGYpIHtcbiAgaGFzRXJyb3IgPSBmYWxzZTtcbiAgY2F1Z2h0RXJyb3IgPSBudWxsO1xuICBpbnZva2VHdWFyZGVkQ2FsbGJhY2tJbXBsJDEuYXBwbHkocmVwb3J0ZXIsIGFyZ3VtZW50cyk7XG59XG4vKipcbiAqIFNhbWUgYXMgaW52b2tlR3VhcmRlZENhbGxiYWNrLCBidXQgaW5zdGVhZCBvZiByZXR1cm5pbmcgYW4gZXJyb3IsIGl0IHN0b3Jlc1xuICogaXQgaW4gYSBnbG9iYWwgc28gaXQgY2FuIGJlIHJldGhyb3duIGJ5IGByZXRocm93Q2F1Z2h0RXJyb3JgIGxhdGVyLlxuICogVE9ETzogU2VlIGlmIGNhdWdodEVycm9yIGFuZCByZXRocm93RXJyb3IgY2FuIGJlIHVuaWZpZWQuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgb2YgdGhlIGd1YXJkIHRvIHVzZSBmb3IgbG9nZ2luZyBvciBkZWJ1Z2dpbmdcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGludm9rZVxuICogQHBhcmFtIHsqfSBjb250ZXh0IFRoZSBjb250ZXh0IHRvIHVzZSB3aGVuIGNhbGxpbmcgdGhlIGZ1bmN0aW9uXG4gKiBAcGFyYW0gey4uLip9IGFyZ3MgQXJndW1lbnRzIGZvciBmdW5jdGlvblxuICovXG5cbmZ1bmN0aW9uIGludm9rZUd1YXJkZWRDYWxsYmFja0FuZENhdGNoRmlyc3RFcnJvcihuYW1lLCBmdW5jLCBjb250ZXh0LCBhLCBiLCBjLCBkLCBlLCBmKSB7XG4gIGludm9rZUd1YXJkZWRDYWxsYmFjay5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gIGlmIChoYXNFcnJvcikge1xuICAgIHZhciBlcnJvciA9IGNsZWFyQ2F1Z2h0RXJyb3IoKTtcblxuICAgIGlmICghaGFzUmV0aHJvd0Vycm9yKSB7XG4gICAgICBoYXNSZXRocm93RXJyb3IgPSB0cnVlO1xuICAgICAgcmV0aHJvd0Vycm9yID0gZXJyb3I7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIER1cmluZyBleGVjdXRpb24gb2YgZ3VhcmRlZCBmdW5jdGlvbnMgd2Ugd2lsbCBjYXB0dXJlIHRoZSBmaXJzdCBlcnJvciB3aGljaFxuICogd2Ugd2lsbCByZXRocm93IHRvIGJlIGhhbmRsZWQgYnkgdGhlIHRvcCBsZXZlbCBlcnJvciBoYW5kbGVyLlxuICovXG5cbmZ1bmN0aW9uIHJldGhyb3dDYXVnaHRFcnJvcigpIHtcbiAgaWYgKGhhc1JldGhyb3dFcnJvcikge1xuICAgIHZhciBlcnJvciA9IHJldGhyb3dFcnJvcjtcbiAgICBoYXNSZXRocm93RXJyb3IgPSBmYWxzZTtcbiAgICByZXRocm93RXJyb3IgPSBudWxsO1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5mdW5jdGlvbiBoYXNDYXVnaHRFcnJvcigpIHtcbiAgcmV0dXJuIGhhc0Vycm9yO1xufVxuZnVuY3Rpb24gY2xlYXJDYXVnaHRFcnJvcigpIHtcbiAgaWYgKGhhc0Vycm9yKSB7XG4gICAgdmFyIGVycm9yID0gY2F1Z2h0RXJyb3I7XG4gICAgaGFzRXJyb3IgPSBmYWxzZTtcbiAgICBjYXVnaHRFcnJvciA9IG51bGw7XG4gICAgcmV0dXJuIGVycm9yO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcignY2xlYXJDYXVnaHRFcnJvciB3YXMgY2FsbGVkIGJ1dCBubyBlcnJvciB3YXMgY2FwdHVyZWQuIFRoaXMgZXJyb3IgJyArICdpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgfVxufVxuXG4vKipcbiAqIGBSZWFjdEluc3RhbmNlTWFwYCBtYWludGFpbnMgYSBtYXBwaW5nIGZyb20gYSBwdWJsaWMgZmFjaW5nIHN0YXRlZnVsXG4gKiBpbnN0YW5jZSAoa2V5KSBhbmQgdGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uICh2YWx1ZSkuIFRoaXMgYWxsb3dzIHB1YmxpY1xuICogbWV0aG9kcyB0byBhY2NlcHQgdGhlIHVzZXIgZmFjaW5nIGluc3RhbmNlIGFzIGFuIGFyZ3VtZW50IGFuZCBtYXAgdGhlbSBiYWNrXG4gKiB0byBpbnRlcm5hbCBtZXRob2RzLlxuICpcbiAqIE5vdGUgdGhhdCB0aGlzIG1vZHVsZSBpcyBjdXJyZW50bHkgc2hhcmVkIGFuZCBhc3N1bWVkIHRvIGJlIHN0YXRlbGVzcy5cbiAqIElmIHRoaXMgYmVjb21lcyBhbiBhY3R1YWwgTWFwLCB0aGF0IHdpbGwgYnJlYWsuXG4gKi9cbmZ1bmN0aW9uIGdldChrZXkpIHtcbiAgcmV0dXJuIGtleS5fcmVhY3RJbnRlcm5hbHM7XG59XG5mdW5jdGlvbiBoYXMoa2V5KSB7XG4gIHJldHVybiBrZXkuX3JlYWN0SW50ZXJuYWxzICE9PSB1bmRlZmluZWQ7XG59XG5mdW5jdGlvbiBzZXQoa2V5LCB2YWx1ZSkge1xuICBrZXkuX3JlYWN0SW50ZXJuYWxzID0gdmFsdWU7XG59XG5cbi8vIERvbid0IGNoYW5nZSB0aGVzZSB0d28gdmFsdWVzLiBUaGV5J3JlIHVzZWQgYnkgUmVhY3QgRGV2IFRvb2xzLlxudmFyIE5vRmxhZ3MgPVxuLyogICAgICAgICAgICAgICAgICAgICAgKi9cbjA7XG52YXIgUGVyZm9ybWVkV29yayA9XG4vKiAgICAgICAgICAgICAgICAqL1xuMTsgLy8gWW91IGNhbiBjaGFuZ2UgdGhlIHJlc3QgKGFuZCBhZGQgbW9yZSkuXG5cbnZhciBQbGFjZW1lbnQgPVxuLyogICAgICAgICAgICAgICAgICAgICovXG4yO1xudmFyIFVwZGF0ZSA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgKi9cbjQ7XG52YXIgUGxhY2VtZW50QW5kVXBkYXRlID1cbi8qICAgICAgICAgICAqL1xuUGxhY2VtZW50IHwgVXBkYXRlO1xudmFyIENoaWxkRGVsZXRpb24gPVxuLyogICAgICAgICAgICAgICAgKi9cbjE2O1xudmFyIENvbnRlbnRSZXNldCA9XG4vKiAgICAgICAgICAgICAgICAgKi9cbjMyO1xudmFyIENhbGxiYWNrID1cbi8qICAgICAgICAgICAgICAgICAgICAgKi9cbjY0O1xudmFyIERpZENhcHR1cmUgPVxuLyogICAgICAgICAgICAgICAgICAgKi9cbjEyODtcbnZhciBGb3JjZUNsaWVudFJlbmRlciA9XG4vKiAgICAgICAgICAgICovXG4yNTY7XG52YXIgUmVmID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuNTEyO1xudmFyIFNuYXBzaG90ID1cbi8qICAgICAgICAgICAgICAgICAgICAgKi9cbjEwMjQ7XG52YXIgUGFzc2l2ZSA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAqL1xuMjA0ODtcbnZhciBIeWRyYXRpbmcgPVxuLyogICAgICAgICAgICAgICAgICAgICovXG40MDk2O1xudmFyIEh5ZHJhdGluZ0FuZFVwZGF0ZSA9XG4vKiAgICAgICAgICAgKi9cbkh5ZHJhdGluZyB8IFVwZGF0ZTtcbnZhciBWaXNpYmlsaXR5ID1cbi8qICAgICAgICAgICAgICAgICAgICovXG44MTkyO1xudmFyIFN0b3JlQ29uc2lzdGVuY3kgPVxuLyogICAgICAgICAgICAgKi9cbjE2Mzg0O1xudmFyIExpZmVjeWNsZUVmZmVjdE1hc2sgPSBQYXNzaXZlIHwgVXBkYXRlIHwgQ2FsbGJhY2sgfCBSZWYgfCBTbmFwc2hvdCB8IFN0b3JlQ29uc2lzdGVuY3k7IC8vIFVuaW9uIG9mIGFsbCBjb21taXQgZmxhZ3MgKGZsYWdzIHdpdGggdGhlIGxpZmV0aW1lIG9mIGEgcGFydGljdWxhciBjb21taXQpXG5cbnZhciBIb3N0RWZmZWN0TWFzayA9XG4vKiAgICAgICAgICAgICAgICovXG4zMjc2NzsgLy8gVGhlc2UgYXJlIG5vdCByZWFsbHkgc2lkZSBlZmZlY3RzLCBidXQgd2Ugc3RpbGwgcmV1c2UgdGhpcyBmaWVsZC5cblxudmFyIEluY29tcGxldGUgPVxuLyogICAgICAgICAgICAgICAgICAgKi9cbjMyNzY4O1xudmFyIFNob3VsZENhcHR1cmUgPVxuLyogICAgICAgICAgICAgICAgKi9cbjY1NTM2O1xudmFyIEZvcmNlVXBkYXRlRm9yTGVnYWN5U3VzcGVuc2UgPVxuLyogKi9cbjEzMTA3MjtcbnZhciBGb3JrZWQgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICovXG4xMDQ4NTc2OyAvLyBTdGF0aWMgdGFncyBkZXNjcmliZSBhc3BlY3RzIG9mIGEgZmliZXIgdGhhdCBhcmUgbm90IHNwZWNpZmljIHRvIGEgcmVuZGVyLFxuLy8gZS5nLiBhIGZpYmVyIHVzZXMgYSBwYXNzaXZlIGVmZmVjdCAoZXZlbiBpZiB0aGVyZSBhcmUgbm8gdXBkYXRlcyBvbiB0aGlzIHBhcnRpY3VsYXIgcmVuZGVyKS5cbi8vIFRoaXMgZW5hYmxlcyB1cyB0byBkZWZlciBtb3JlIHdvcmsgaW4gdGhlIHVubW91bnQgY2FzZSxcbi8vIHNpbmNlIHdlIGNhbiBkZWZlciB0cmF2ZXJzaW5nIHRoZSB0cmVlIGR1cmluZyBsYXlvdXQgdG8gbG9vayBmb3IgUGFzc2l2ZSBlZmZlY3RzLFxuLy8gYW5kIGluc3RlYWQgcmVseSBvbiB0aGUgc3RhdGljIGZsYWcgYXMgYSBzaWduYWwgdGhhdCB0aGVyZSBtYXkgYmUgY2xlYW51cCB3b3JrLlxuXG52YXIgUmVmU3RhdGljID1cbi8qICAgICAgICAgICAgICAgICAgICAqL1xuMjA5NzE1MjtcbnZhciBMYXlvdXRTdGF0aWMgPVxuLyogICAgICAgICAgICAgICAgICovXG40MTk0MzA0O1xudmFyIFBhc3NpdmVTdGF0aWMgPVxuLyogICAgICAgICAgICAgICAgKi9cbjgzODg2MDg7IC8vIFRoZXNlIGZsYWdzIGFsbG93IHVzIHRvIHRyYXZlcnNlIHRvIGZpYmVycyB0aGF0IGhhdmUgZWZmZWN0cyBvbiBtb3VudFxuLy8gd2l0aG91dCB0cmF2ZXJzaW5nIHRoZSBlbnRpcmUgdHJlZSBhZnRlciBldmVyeSBjb21taXQgZm9yXG4vLyBkb3VibGUgaW52b2tpbmdcblxudmFyIE1vdW50TGF5b3V0RGV2ID1cbi8qICAgICAgICAgICAgICAgKi9cbjE2Nzc3MjE2O1xudmFyIE1vdW50UGFzc2l2ZURldiA9XG4vKiAgICAgICAgICAgICAgKi9cbjMzNTU0NDMyOyAvLyBHcm91cHMgb2YgZmxhZ3MgdGhhdCBhcmUgdXNlZCBpbiB0aGUgY29tbWl0IHBoYXNlIHRvIHNraXAgb3ZlciB0cmVlcyB0aGF0XG4vLyBkb24ndCBjb250YWluIGVmZmVjdHMsIGJ5IGNoZWNraW5nIHN1YnRyZWVGbGFncy5cblxudmFyIEJlZm9yZU11dGF0aW9uTWFzayA9IC8vIFRPRE86IFJlbW92ZSBVcGRhdGUgZmxhZyBmcm9tIGJlZm9yZSBtdXRhdGlvbiBwaGFzZSBieSByZS1sYW5kaW5nIFZpc2liaWxpdHlcbi8vIGZsYWcgbG9naWMgKHNlZSAjMjAwNDMpXG5VcGRhdGUgfCBTbmFwc2hvdCB8ICggMCk7XG52YXIgTXV0YXRpb25NYXNrID0gUGxhY2VtZW50IHwgVXBkYXRlIHwgQ2hpbGREZWxldGlvbiB8IENvbnRlbnRSZXNldCB8IFJlZiB8IEh5ZHJhdGluZyB8IFZpc2liaWxpdHk7XG52YXIgTGF5b3V0TWFzayA9IFVwZGF0ZSB8IENhbGxiYWNrIHwgUmVmIHwgVmlzaWJpbGl0eTsgLy8gVE9ETzogU3BsaXQgaW50byBQYXNzaXZlTW91bnRNYXNrIGFuZCBQYXNzaXZlVW5tb3VudE1hc2tcblxudmFyIFBhc3NpdmVNYXNrID0gUGFzc2l2ZSB8IENoaWxkRGVsZXRpb247IC8vIFVuaW9uIG9mIHRhZ3MgdGhhdCBkb24ndCBnZXQgcmVzZXQgb24gY2xvbmVzLlxuLy8gVGhpcyBhbGxvd3MgY2VydGFpbiBjb25jZXB0cyB0byBwZXJzaXN0IHdpdGhvdXQgcmVjYWxjdWxhdGluZyB0aGVtLFxuLy8gZS5nLiB3aGV0aGVyIGEgc3VidHJlZSBjb250YWlucyBwYXNzaXZlIGVmZmVjdHMgb3IgcG9ydGFscy5cblxudmFyIFN0YXRpY01hc2sgPSBMYXlvdXRTdGF0aWMgfCBQYXNzaXZlU3RhdGljIHwgUmVmU3RhdGljO1xuXG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRPd25lcjtcbmZ1bmN0aW9uIGdldE5lYXJlc3RNb3VudGVkRmliZXIoZmliZXIpIHtcbiAgdmFyIG5vZGUgPSBmaWJlcjtcbiAgdmFyIG5lYXJlc3RNb3VudGVkID0gZmliZXI7XG5cbiAgaWYgKCFmaWJlci5hbHRlcm5hdGUpIHtcbiAgICAvLyBJZiB0aGVyZSBpcyBubyBhbHRlcm5hdGUsIHRoaXMgbWlnaHQgYmUgYSBuZXcgdHJlZSB0aGF0IGlzbid0IGluc2VydGVkXG4gICAgLy8geWV0LiBJZiBpdCBpcywgdGhlbiBpdCB3aWxsIGhhdmUgYSBwZW5kaW5nIGluc2VydGlvbiBlZmZlY3Qgb24gaXQuXG4gICAgdmFyIG5leHROb2RlID0gbm9kZTtcblxuICAgIGRvIHtcbiAgICAgIG5vZGUgPSBuZXh0Tm9kZTtcblxuICAgICAgaWYgKChub2RlLmZsYWdzICYgKFBsYWNlbWVudCB8IEh5ZHJhdGluZykpICE9PSBOb0ZsYWdzKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYW4gaW5zZXJ0aW9uIG9yIGluLXByb2dyZXNzIGh5ZHJhdGlvbi4gVGhlIG5lYXJlc3QgcG9zc2libGVcbiAgICAgICAgLy8gbW91bnRlZCBmaWJlciBpcyB0aGUgcGFyZW50IGJ1dCB3ZSBuZWVkIHRvIGNvbnRpbnVlIHRvIGZpZ3VyZSBvdXRcbiAgICAgICAgLy8gaWYgdGhhdCBvbmUgaXMgc3RpbGwgbW91bnRlZC5cbiAgICAgICAgbmVhcmVzdE1vdW50ZWQgPSBub2RlLnJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dE5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9IHdoaWxlIChuZXh0Tm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKG5vZGUucmV0dXJuKSB7XG4gICAgICBub2RlID0gbm9kZS5yZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaWYgKG5vZGUudGFnID09PSBIb3N0Um9vdCkge1xuICAgIC8vIFRPRE86IENoZWNrIGlmIHRoaXMgd2FzIGEgbmVzdGVkIEhvc3RSb290IHdoZW4gdXNlZCB3aXRoXG4gICAgLy8gcmVuZGVyQ29udGFpbmVySW50b1N1YnRyZWUuXG4gICAgcmV0dXJuIG5lYXJlc3RNb3VudGVkO1xuICB9IC8vIElmIHdlIGRpZG4ndCBoaXQgdGhlIHJvb3QsIHRoYXQgbWVhbnMgdGhhdCB3ZSdyZSBpbiBhbiBkaXNjb25uZWN0ZWQgdHJlZVxuICAvLyB0aGF0IGhhcyBiZWVuIHVubW91bnRlZC5cblxuXG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gZ2V0U3VzcGVuc2VJbnN0YW5jZUZyb21GaWJlcihmaWJlcikge1xuICBpZiAoZmliZXIudGFnID09PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgIHZhciBzdXNwZW5zZVN0YXRlID0gZmliZXIubWVtb2l6ZWRTdGF0ZTtcblxuICAgIGlmIChzdXNwZW5zZVN0YXRlID09PSBudWxsKSB7XG4gICAgICB2YXIgY3VycmVudCA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgc3VzcGVuc2VTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3VzcGVuc2VTdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHN1c3BlbnNlU3RhdGUuZGVoeWRyYXRlZDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbmZ1bmN0aW9uIGdldENvbnRhaW5lckZyb21GaWJlcihmaWJlcikge1xuICByZXR1cm4gZmliZXIudGFnID09PSBIb3N0Um9vdCA/IGZpYmVyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvIDogbnVsbDtcbn1cbmZ1bmN0aW9uIGlzRmliZXJNb3VudGVkKGZpYmVyKSB7XG4gIHJldHVybiBnZXROZWFyZXN0TW91bnRlZEZpYmVyKGZpYmVyKSA9PT0gZmliZXI7XG59XG5mdW5jdGlvbiBpc01vdW50ZWQoY29tcG9uZW50KSB7XG4gIHtcbiAgICB2YXIgb3duZXIgPSBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50O1xuXG4gICAgaWYgKG93bmVyICE9PSBudWxsICYmIG93bmVyLnRhZyA9PT0gQ2xhc3NDb21wb25lbnQpIHtcbiAgICAgIHZhciBvd25lckZpYmVyID0gb3duZXI7XG4gICAgICB2YXIgaW5zdGFuY2UgPSBvd25lckZpYmVyLnN0YXRlTm9kZTtcblxuICAgICAgaWYgKCFpbnN0YW5jZS5fd2FybmVkQWJvdXRSZWZzSW5SZW5kZXIpIHtcbiAgICAgICAgZXJyb3IoJyVzIGlzIGFjY2Vzc2luZyBpc01vdW50ZWQgaW5zaWRlIGl0cyByZW5kZXIoKSBmdW5jdGlvbi4gJyArICdyZW5kZXIoKSBzaG91bGQgYmUgYSBwdXJlIGZ1bmN0aW9uIG9mIHByb3BzIGFuZCBzdGF0ZS4gSXQgc2hvdWxkICcgKyAnbmV2ZXIgYWNjZXNzIHNvbWV0aGluZyB0aGF0IHJlcXVpcmVzIHN0YWxlIGRhdGEgZnJvbSB0aGUgcHJldmlvdXMgJyArICdyZW5kZXIsIHN1Y2ggYXMgcmVmcy4gTW92ZSB0aGlzIGxvZ2ljIHRvIGNvbXBvbmVudERpZE1vdW50IGFuZCAnICsgJ2NvbXBvbmVudERpZFVwZGF0ZSBpbnN0ZWFkLicsIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIob3duZXJGaWJlcikgfHwgJ0EgY29tcG9uZW50Jyk7XG4gICAgICB9XG5cbiAgICAgIGluc3RhbmNlLl93YXJuZWRBYm91dFJlZnNJblJlbmRlciA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgdmFyIGZpYmVyID0gZ2V0KGNvbXBvbmVudCk7XG5cbiAgaWYgKCFmaWJlcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBnZXROZWFyZXN0TW91bnRlZEZpYmVyKGZpYmVyKSA9PT0gZmliZXI7XG59XG5cbmZ1bmN0aW9uIGFzc2VydElzTW91bnRlZChmaWJlcikge1xuICBpZiAoZ2V0TmVhcmVzdE1vdW50ZWRGaWJlcihmaWJlcikgIT09IGZpYmVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZEN1cnJlbnRGaWJlclVzaW5nU2xvd1BhdGgoZmliZXIpIHtcbiAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICBpZiAoIWFsdGVybmF0ZSkge1xuICAgIC8vIElmIHRoZXJlIGlzIG5vIGFsdGVybmF0ZSwgdGhlbiB3ZSBvbmx5IG5lZWQgdG8gY2hlY2sgaWYgaXQgaXMgbW91bnRlZC5cbiAgICB2YXIgbmVhcmVzdE1vdW50ZWQgPSBnZXROZWFyZXN0TW91bnRlZEZpYmVyKGZpYmVyKTtcblxuICAgIGlmIChuZWFyZXN0TW91bnRlZCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuJyk7XG4gICAgfVxuXG4gICAgaWYgKG5lYXJlc3RNb3VudGVkICE9PSBmaWJlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpYmVyO1xuICB9IC8vIElmIHdlIGhhdmUgdHdvIHBvc3NpYmxlIGJyYW5jaGVzLCB3ZSdsbCB3YWxrIGJhY2t3YXJkcyB1cCB0byB0aGUgcm9vdFxuICAvLyB0byBzZWUgd2hhdCBwYXRoIHRoZSByb290IHBvaW50cyB0by4gT24gdGhlIHdheSB3ZSBtYXkgaGl0IG9uZSBvZiB0aGVcbiAgLy8gc3BlY2lhbCBjYXNlcyBhbmQgd2UnbGwgZGVhbCB3aXRoIHRoZW0uXG5cblxuICB2YXIgYSA9IGZpYmVyO1xuICB2YXIgYiA9IGFsdGVybmF0ZTtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIHZhciBwYXJlbnRBID0gYS5yZXR1cm47XG5cbiAgICBpZiAocGFyZW50QSA9PT0gbnVsbCkge1xuICAgICAgLy8gV2UncmUgYXQgdGhlIHJvb3QuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICB2YXIgcGFyZW50QiA9IHBhcmVudEEuYWx0ZXJuYXRlO1xuXG4gICAgaWYgKHBhcmVudEIgPT09IG51bGwpIHtcbiAgICAgIC8vIFRoZXJlIGlzIG5vIGFsdGVybmF0ZS4gVGhpcyBpcyBhbiB1bnVzdWFsIGNhc2UuIEN1cnJlbnRseSwgaXQgb25seVxuICAgICAgLy8gaGFwcGVucyB3aGVuIGEgU3VzcGVuc2UgY29tcG9uZW50IGlzIGhpZGRlbi4gQW4gZXh0cmEgZnJhZ21lbnQgZmliZXJcbiAgICAgIC8vIGlzIGluc2VydGVkIGluIGJldHdlZW4gdGhlIFN1c3BlbnNlIGZpYmVyIGFuZCBpdHMgY2hpbGRyZW4uIFNraXBcbiAgICAgIC8vIG92ZXIgdGhpcyBleHRyYSBmcmFnbWVudCBmaWJlciBhbmQgcHJvY2VlZCB0byB0aGUgbmV4dCBwYXJlbnQuXG4gICAgICB2YXIgbmV4dFBhcmVudCA9IHBhcmVudEEucmV0dXJuO1xuXG4gICAgICBpZiAobmV4dFBhcmVudCAhPT0gbnVsbCkge1xuICAgICAgICBhID0gYiA9IG5leHRQYXJlbnQ7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfSAvLyBJZiB0aGVyZSdzIG5vIHBhcmVudCwgd2UncmUgYXQgdGhlIHJvb3QuXG5cblxuICAgICAgYnJlYWs7XG4gICAgfSAvLyBJZiBib3RoIGNvcGllcyBvZiB0aGUgcGFyZW50IGZpYmVyIHBvaW50IHRvIHRoZSBzYW1lIGNoaWxkLCB3ZSBjYW5cbiAgICAvLyBhc3N1bWUgdGhhdCB0aGUgY2hpbGQgaXMgY3VycmVudC4gVGhpcyBoYXBwZW5zIHdoZW4gd2UgYmFpbG91dCBvbiBsb3dcbiAgICAvLyBwcmlvcml0eTogdGhlIGJhaWxlZCBvdXQgZmliZXIncyBjaGlsZCByZXVzZXMgdGhlIGN1cnJlbnQgY2hpbGQuXG5cblxuICAgIGlmIChwYXJlbnRBLmNoaWxkID09PSBwYXJlbnRCLmNoaWxkKSB7XG4gICAgICB2YXIgY2hpbGQgPSBwYXJlbnRBLmNoaWxkO1xuXG4gICAgICB3aGlsZSAoY2hpbGQpIHtcbiAgICAgICAgaWYgKGNoaWxkID09PSBhKSB7XG4gICAgICAgICAgLy8gV2UndmUgZGV0ZXJtaW5lZCB0aGF0IEEgaXMgdGhlIGN1cnJlbnQgYnJhbmNoLlxuICAgICAgICAgIGFzc2VydElzTW91bnRlZChwYXJlbnRBKTtcbiAgICAgICAgICByZXR1cm4gZmliZXI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hpbGQgPT09IGIpIHtcbiAgICAgICAgICAvLyBXZSd2ZSBkZXRlcm1pbmVkIHRoYXQgQiBpcyB0aGUgY3VycmVudCBicmFuY2guXG4gICAgICAgICAgYXNzZXJ0SXNNb3VudGVkKHBhcmVudEEpO1xuICAgICAgICAgIHJldHVybiBhbHRlcm5hdGU7XG4gICAgICAgIH1cblxuICAgICAgICBjaGlsZCA9IGNoaWxkLnNpYmxpbmc7XG4gICAgICB9IC8vIFdlIHNob3VsZCBuZXZlciBoYXZlIGFuIGFsdGVybmF0ZSBmb3IgYW55IG1vdW50aW5nIG5vZGUuIFNvIHRoZSBvbmx5XG4gICAgICAvLyB3YXkgdGhpcyBjb3VsZCBwb3NzaWJseSBoYXBwZW4gaXMgaWYgdGhpcyB3YXMgdW5tb3VudGVkLCBpZiBhdCBhbGwuXG5cblxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuJyk7XG4gICAgfVxuXG4gICAgaWYgKGEucmV0dXJuICE9PSBiLnJldHVybikge1xuICAgICAgLy8gVGhlIHJldHVybiBwb2ludGVyIG9mIEEgYW5kIHRoZSByZXR1cm4gcG9pbnRlciBvZiBCIHBvaW50IHRvIGRpZmZlcmVudFxuICAgICAgLy8gZmliZXJzLiBXZSBhc3N1bWUgdGhhdCByZXR1cm4gcG9pbnRlcnMgbmV2ZXIgY3Jpc3MtY3Jvc3MsIHNvIEEgbXVzdFxuICAgICAgLy8gYmVsb25nIHRvIHRoZSBjaGlsZCBzZXQgb2YgQS5yZXR1cm4sIGFuZCBCIG11c3QgYmVsb25nIHRvIHRoZSBjaGlsZFxuICAgICAgLy8gc2V0IG9mIEIucmV0dXJuLlxuICAgICAgYSA9IHBhcmVudEE7XG4gICAgICBiID0gcGFyZW50QjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlIHJldHVybiBwb2ludGVycyBwb2ludCB0byB0aGUgc2FtZSBmaWJlci4gV2UnbGwgaGF2ZSB0byB1c2UgdGhlXG4gICAgICAvLyBkZWZhdWx0LCBzbG93IHBhdGg6IHNjYW4gdGhlIGNoaWxkIHNldHMgb2YgZWFjaCBwYXJlbnQgYWx0ZXJuYXRlIHRvIHNlZVxuICAgICAgLy8gd2hpY2ggY2hpbGQgYmVsb25ncyB0byB3aGljaCBzZXQuXG4gICAgICAvL1xuICAgICAgLy8gU2VhcmNoIHBhcmVudCBBJ3MgY2hpbGQgc2V0XG4gICAgICB2YXIgZGlkRmluZENoaWxkID0gZmFsc2U7XG4gICAgICB2YXIgX2NoaWxkID0gcGFyZW50QS5jaGlsZDtcblxuICAgICAgd2hpbGUgKF9jaGlsZCkge1xuICAgICAgICBpZiAoX2NoaWxkID09PSBhKSB7XG4gICAgICAgICAgZGlkRmluZENoaWxkID0gdHJ1ZTtcbiAgICAgICAgICBhID0gcGFyZW50QTtcbiAgICAgICAgICBiID0gcGFyZW50QjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfY2hpbGQgPT09IGIpIHtcbiAgICAgICAgICBkaWRGaW5kQ2hpbGQgPSB0cnVlO1xuICAgICAgICAgIGIgPSBwYXJlbnRBO1xuICAgICAgICAgIGEgPSBwYXJlbnRCO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgX2NoaWxkID0gX2NoaWxkLnNpYmxpbmc7XG4gICAgICB9XG5cbiAgICAgIGlmICghZGlkRmluZENoaWxkKSB7XG4gICAgICAgIC8vIFNlYXJjaCBwYXJlbnQgQidzIGNoaWxkIHNldFxuICAgICAgICBfY2hpbGQgPSBwYXJlbnRCLmNoaWxkO1xuXG4gICAgICAgIHdoaWxlIChfY2hpbGQpIHtcbiAgICAgICAgICBpZiAoX2NoaWxkID09PSBhKSB7XG4gICAgICAgICAgICBkaWRGaW5kQ2hpbGQgPSB0cnVlO1xuICAgICAgICAgICAgYSA9IHBhcmVudEI7XG4gICAgICAgICAgICBiID0gcGFyZW50QTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChfY2hpbGQgPT09IGIpIHtcbiAgICAgICAgICAgIGRpZEZpbmRDaGlsZCA9IHRydWU7XG4gICAgICAgICAgICBiID0gcGFyZW50QjtcbiAgICAgICAgICAgIGEgPSBwYXJlbnRBO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgX2NoaWxkID0gX2NoaWxkLnNpYmxpbmc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWRpZEZpbmRDaGlsZCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2hpbGQgd2FzIG5vdCBmb3VuZCBpbiBlaXRoZXIgcGFyZW50IHNldC4gVGhpcyBpbmRpY2F0ZXMgYSBidWcgJyArICdpbiBSZWFjdCByZWxhdGVkIHRvIHRoZSByZXR1cm4gcG9pbnRlci4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoYS5hbHRlcm5hdGUgIT09IGIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlJldHVybiBmaWJlcnMgc2hvdWxkIGFsd2F5cyBiZSBlYWNoIG90aGVycycgYWx0ZXJuYXRlcy4gXCIgKyAnVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH0gLy8gSWYgdGhlIHJvb3QgaXMgbm90IGEgaG9zdCBjb250YWluZXIsIHdlJ3JlIGluIGEgZGlzY29ubmVjdGVkIHRyZWUuIEkuZS5cbiAgLy8gdW5tb3VudGVkLlxuXG5cbiAgaWYgKGEudGFnICE9PSBIb3N0Um9vdCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIGZpbmQgbm9kZSBvbiBhbiB1bm1vdW50ZWQgY29tcG9uZW50LicpO1xuICB9XG5cbiAgaWYgKGEuc3RhdGVOb2RlLmN1cnJlbnQgPT09IGEpIHtcbiAgICAvLyBXZSd2ZSBkZXRlcm1pbmVkIHRoYXQgQSBpcyB0aGUgY3VycmVudCBicmFuY2guXG4gICAgcmV0dXJuIGZpYmVyO1xuICB9IC8vIE90aGVyd2lzZSBCIGhhcyB0byBiZSBjdXJyZW50IGJyYW5jaC5cblxuXG4gIHJldHVybiBhbHRlcm5hdGU7XG59XG5mdW5jdGlvbiBmaW5kQ3VycmVudEhvc3RGaWJlcihwYXJlbnQpIHtcbiAgdmFyIGN1cnJlbnRQYXJlbnQgPSBmaW5kQ3VycmVudEZpYmVyVXNpbmdTbG93UGF0aChwYXJlbnQpO1xuICByZXR1cm4gY3VycmVudFBhcmVudCAhPT0gbnVsbCA/IGZpbmRDdXJyZW50SG9zdEZpYmVySW1wbChjdXJyZW50UGFyZW50KSA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIGZpbmRDdXJyZW50SG9zdEZpYmVySW1wbChub2RlKSB7XG4gIC8vIE5leHQgd2UnbGwgZHJpbGwgZG93biB0aGlzIGNvbXBvbmVudCB0byBmaW5kIHRoZSBmaXJzdCBIb3N0Q29tcG9uZW50L1RleHQuXG4gIGlmIChub2RlLnRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCBub2RlLnRhZyA9PT0gSG9zdFRleHQpIHtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIHZhciBjaGlsZCA9IG5vZGUuY2hpbGQ7XG5cbiAgd2hpbGUgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgdmFyIG1hdGNoID0gZmluZEN1cnJlbnRIb3N0RmliZXJJbXBsKGNoaWxkKTtcblxuICAgIGlmIChtYXRjaCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG1hdGNoO1xuICAgIH1cblxuICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBmaW5kQ3VycmVudEhvc3RGaWJlcldpdGhOb1BvcnRhbHMocGFyZW50KSB7XG4gIHZhciBjdXJyZW50UGFyZW50ID0gZmluZEN1cnJlbnRGaWJlclVzaW5nU2xvd1BhdGgocGFyZW50KTtcbiAgcmV0dXJuIGN1cnJlbnRQYXJlbnQgIT09IG51bGwgPyBmaW5kQ3VycmVudEhvc3RGaWJlcldpdGhOb1BvcnRhbHNJbXBsKGN1cnJlbnRQYXJlbnQpIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gZmluZEN1cnJlbnRIb3N0RmliZXJXaXRoTm9Qb3J0YWxzSW1wbChub2RlKSB7XG4gIC8vIE5leHQgd2UnbGwgZHJpbGwgZG93biB0aGlzIGNvbXBvbmVudCB0byBmaW5kIHRoZSBmaXJzdCBIb3N0Q29tcG9uZW50L1RleHQuXG4gIGlmIChub2RlLnRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCBub2RlLnRhZyA9PT0gSG9zdFRleHQpIHtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIHZhciBjaGlsZCA9IG5vZGUuY2hpbGQ7XG5cbiAgd2hpbGUgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgaWYgKGNoaWxkLnRhZyAhPT0gSG9zdFBvcnRhbCkge1xuICAgICAgdmFyIG1hdGNoID0gZmluZEN1cnJlbnRIb3N0RmliZXJXaXRoTm9Qb3J0YWxzSW1wbChjaGlsZCk7XG5cbiAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2hpbGQgPSBjaGlsZC5zaWJsaW5nO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8vIFRoaXMgbW9kdWxlIG9ubHkgZXhpc3RzIGFzIGFuIEVTTSB3cmFwcGVyIGFyb3VuZCB0aGUgZXh0ZXJuYWwgQ29tbW9uSlNcbnZhciBzY2hlZHVsZUNhbGxiYWNrID0gU2NoZWR1bGVyLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s7XG52YXIgY2FuY2VsQ2FsbGJhY2sgPSBTY2hlZHVsZXIudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2s7XG52YXIgc2hvdWxkWWllbGQgPSBTY2hlZHVsZXIudW5zdGFibGVfc2hvdWxkWWllbGQ7XG52YXIgcmVxdWVzdFBhaW50ID0gU2NoZWR1bGVyLnVuc3RhYmxlX3JlcXVlc3RQYWludDtcbnZhciBub3cgPSBTY2hlZHVsZXIudW5zdGFibGVfbm93O1xudmFyIGdldEN1cnJlbnRQcmlvcml0eUxldmVsID0gU2NoZWR1bGVyLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsO1xudmFyIEltbWVkaWF0ZVByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5O1xudmFyIFVzZXJCbG9ja2luZ1ByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5O1xudmFyIE5vcm1hbFByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5O1xudmFyIExvd1ByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX0xvd1ByaW9yaXR5O1xudmFyIElkbGVQcmlvcml0eSA9IFNjaGVkdWxlci51bnN0YWJsZV9JZGxlUHJpb3JpdHk7XG4vLyB0aGlzIGRvZXNuJ3QgYWN0dWFsbHkgZXhpc3Qgb24gdGhlIHNjaGVkdWxlciwgYnV0IGl0ICpkb2VzKlxuLy8gb24gc2NoZWR1bGVyL3Vuc3RhYmxlX21vY2ssIHdoaWNoIHdlJ2xsIG5lZWQgZm9yIGludGVybmFsIHRlc3RpbmdcbnZhciB1bnN0YWJsZV95aWVsZFZhbHVlID0gU2NoZWR1bGVyLnVuc3RhYmxlX3lpZWxkVmFsdWU7XG52YXIgdW5zdGFibGVfc2V0RGlzYWJsZVlpZWxkVmFsdWUgPSBTY2hlZHVsZXIudW5zdGFibGVfc2V0RGlzYWJsZVlpZWxkVmFsdWU7XG5cbnZhciByZW5kZXJlcklEID0gbnVsbDtcbnZhciBpbmplY3RlZEhvb2sgPSBudWxsO1xudmFyIGluamVjdGVkUHJvZmlsaW5nSG9va3MgPSBudWxsO1xudmFyIGhhc0xvZ2dlZEVycm9yID0gZmFsc2U7XG52YXIgaXNEZXZUb29sc1ByZXNlbnQgPSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICE9PSAndW5kZWZpbmVkJztcbmZ1bmN0aW9uIGluamVjdEludGVybmFscyhpbnRlcm5hbHMpIHtcbiAgaWYgKHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgLy8gTm8gRGV2VG9vbHNcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgaG9vayA9IF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztcblxuICBpZiAoaG9vay5pc0Rpc2FibGVkKSB7XG4gICAgLy8gVGhpcyBpc24ndCBhIHJlYWwgcHJvcGVydHkgb24gdGhlIGhvb2ssIGJ1dCBpdCBjYW4gYmUgc2V0IHRvIG9wdCBvdXRcbiAgICAvLyBvZiBEZXZUb29scyBpbnRlZ3JhdGlvbiBhbmQgYXNzb2NpYXRlZCB3YXJuaW5ncyBhbmQgbG9ncy5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzM4NzdcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICghaG9vay5zdXBwb3J0c0ZpYmVyKSB7XG4gICAge1xuICAgICAgZXJyb3IoJ1RoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiBSZWFjdCBEZXZUb29scyBpcyB0b28gb2xkIGFuZCB3aWxsIG5vdCB3b3JrICcgKyAnd2l0aCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIFJlYWN0LiBQbGVhc2UgdXBkYXRlIFJlYWN0IERldlRvb2xzLiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9yZWFjdC1kZXZ0b29scycpO1xuICAgIH0gLy8gRGV2VG9vbHMgZXhpc3RzLCBldmVuIHRob3VnaCBpdCBkb2Vzbid0IHN1cHBvcnQgRmliZXIuXG5cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBpZiAoZW5hYmxlU2NoZWR1bGluZ1Byb2ZpbGVyKSB7XG4gICAgICAvLyBDb25kaXRpb25hbGx5IGluamVjdCB0aGVzZSBob29rcyBvbmx5IGlmIFRpbWVsaW5lIHByb2ZpbGVyIGlzIHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkLlxuICAgICAgLy8gVGhpcyBnaXZlcyBEZXZUb29scyBhIHdheSB0byBmZWF0dXJlIGRldGVjdCB0aGF0IGlzbid0IHRpZWQgdG8gdmVyc2lvbiBudW1iZXJcbiAgICAgIC8vIChzaW5jZSBwcm9maWxpbmcgYW5kIHRpbWVsaW5lIGFyZSBjb250cm9sbGVkIGJ5IGRpZmZlcmVudCBmZWF0dXJlIGZsYWdzKS5cbiAgICAgIGludGVybmFscyA9IGFzc2lnbih7fSwgaW50ZXJuYWxzLCB7XG4gICAgICAgIGdldExhbmVMYWJlbE1hcDogZ2V0TGFuZUxhYmVsTWFwLFxuICAgICAgICBpbmplY3RQcm9maWxpbmdIb29rczogaW5qZWN0UHJvZmlsaW5nSG9va3NcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbmRlcmVySUQgPSBob29rLmluamVjdChpbnRlcm5hbHMpOyAvLyBXZSBoYXZlIHN1Y2Nlc3NmdWxseSBpbmplY3RlZCwgc28gbm93IGl0IGlzIHNhZmUgdG8gc2V0IHVwIGhvb2tzLlxuXG4gICAgaW5qZWN0ZWRIb29rID0gaG9vaztcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gQ2F0Y2ggYWxsIGVycm9ycyBiZWNhdXNlIGl0IGlzIHVuc2FmZSB0byB0aHJvdyBkdXJpbmcgaW5pdGlhbGl6YXRpb24uXG4gICAge1xuICAgICAgZXJyb3IoJ1JlYWN0IGluc3RydW1lbnRhdGlvbiBlbmNvdW50ZXJlZCBhbiBlcnJvcjogJXMuJywgZXJyKTtcbiAgICB9XG4gIH1cblxuICBpZiAoaG9vay5jaGVja0RDRSkge1xuICAgIC8vIFRoaXMgaXMgdGhlIHJlYWwgRGV2VG9vbHMuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhpcyBpcyBsaWtlbHkgYSBob29rIGluc3RhbGxlZCBieSBGYXN0IFJlZnJlc2ggcnVudGltZS5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbmZ1bmN0aW9uIG9uU2NoZWR1bGVSb290KHJvb3QsIGNoaWxkcmVuKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRIb29rICYmIHR5cGVvZiBpbmplY3RlZEhvb2sub25TY2hlZHVsZUZpYmVyUm9vdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaW5qZWN0ZWRIb29rLm9uU2NoZWR1bGVGaWJlclJvb3QocmVuZGVyZXJJRCwgcm9vdCwgY2hpbGRyZW4pO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmICggIWhhc0xvZ2dlZEVycm9yKSB7XG4gICAgICAgICAgaGFzTG9nZ2VkRXJyb3IgPSB0cnVlO1xuXG4gICAgICAgICAgZXJyb3IoJ1JlYWN0IGluc3RydW1lbnRhdGlvbiBlbmNvdW50ZXJlZCBhbiBlcnJvcjogJXMnLCBlcnIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBvbkNvbW1pdFJvb3Qocm9vdCwgZXZlbnRQcmlvcml0eSkge1xuICBpZiAoaW5qZWN0ZWRIb29rICYmIHR5cGVvZiBpbmplY3RlZEhvb2sub25Db21taXRGaWJlclJvb3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0cnkge1xuICAgICAgdmFyIGRpZEVycm9yID0gKHJvb3QuY3VycmVudC5mbGFncyAmIERpZENhcHR1cmUpID09PSBEaWRDYXB0dXJlO1xuXG4gICAgICBpZiAoZW5hYmxlUHJvZmlsZXJUaW1lcikge1xuICAgICAgICB2YXIgc2NoZWR1bGVyUHJpb3JpdHk7XG5cbiAgICAgICAgc3dpdGNoIChldmVudFByaW9yaXR5KSB7XG4gICAgICAgICAgY2FzZSBEaXNjcmV0ZUV2ZW50UHJpb3JpdHk6XG4gICAgICAgICAgICBzY2hlZHVsZXJQcmlvcml0eSA9IEltbWVkaWF0ZVByaW9yaXR5O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlIENvbnRpbnVvdXNFdmVudFByaW9yaXR5OlxuICAgICAgICAgICAgc2NoZWR1bGVyUHJpb3JpdHkgPSBVc2VyQmxvY2tpbmdQcmlvcml0eTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSBEZWZhdWx0RXZlbnRQcmlvcml0eTpcbiAgICAgICAgICAgIHNjaGVkdWxlclByaW9yaXR5ID0gTm9ybWFsUHJpb3JpdHk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgSWRsZUV2ZW50UHJpb3JpdHk6XG4gICAgICAgICAgICBzY2hlZHVsZXJQcmlvcml0eSA9IElkbGVQcmlvcml0eTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHNjaGVkdWxlclByaW9yaXR5ID0gTm9ybWFsUHJpb3JpdHk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGluamVjdGVkSG9vay5vbkNvbW1pdEZpYmVyUm9vdChyZW5kZXJlcklELCByb290LCBzY2hlZHVsZXJQcmlvcml0eSwgZGlkRXJyb3IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5qZWN0ZWRIb29rLm9uQ29tbWl0RmliZXJSb290KHJlbmRlcmVySUQsIHJvb3QsIHVuZGVmaW5lZCwgZGlkRXJyb3IpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAge1xuICAgICAgICBpZiAoIWhhc0xvZ2dlZEVycm9yKSB7XG4gICAgICAgICAgaGFzTG9nZ2VkRXJyb3IgPSB0cnVlO1xuXG4gICAgICAgICAgZXJyb3IoJ1JlYWN0IGluc3RydW1lbnRhdGlvbiBlbmNvdW50ZXJlZCBhbiBlcnJvcjogJXMnLCBlcnIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBvblBvc3RDb21taXRSb290KHJvb3QpIHtcbiAgaWYgKGluamVjdGVkSG9vayAmJiB0eXBlb2YgaW5qZWN0ZWRIb29rLm9uUG9zdENvbW1pdEZpYmVyUm9vdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRyeSB7XG4gICAgICBpbmplY3RlZEhvb2sub25Qb3N0Q29tbWl0RmliZXJSb290KHJlbmRlcmVySUQsIHJvb3QpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAge1xuICAgICAgICBpZiAoIWhhc0xvZ2dlZEVycm9yKSB7XG4gICAgICAgICAgaGFzTG9nZ2VkRXJyb3IgPSB0cnVlO1xuXG4gICAgICAgICAgZXJyb3IoJ1JlYWN0IGluc3RydW1lbnRhdGlvbiBlbmNvdW50ZXJlZCBhbiBlcnJvcjogJXMnLCBlcnIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBvbkNvbW1pdFVubW91bnQoZmliZXIpIHtcbiAgaWYgKGluamVjdGVkSG9vayAmJiB0eXBlb2YgaW5qZWN0ZWRIb29rLm9uQ29tbWl0RmliZXJVbm1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGluamVjdGVkSG9vay5vbkNvbW1pdEZpYmVyVW5tb3VudChyZW5kZXJlcklELCBmaWJlcik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB7XG4gICAgICAgIGlmICghaGFzTG9nZ2VkRXJyb3IpIHtcbiAgICAgICAgICBoYXNMb2dnZWRFcnJvciA9IHRydWU7XG5cbiAgICAgICAgICBlcnJvcignUmVhY3QgaW5zdHJ1bWVudGF0aW9uIGVuY291bnRlcmVkIGFuIGVycm9yOiAlcycsIGVycik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKG5ld0lzU3RyaWN0TW9kZSkge1xuICB7XG4gICAgaWYgKHR5cGVvZiB1bnN0YWJsZV95aWVsZFZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBXZSdyZSBpbiBhIHRlc3QgYmVjYXVzZSBTY2hlZHVsZXIudW5zdGFibGVfeWllbGRWYWx1ZSBvbmx5IGV4aXN0c1xuICAgICAgLy8gaW4gU2NoZWR1bGVyTW9jay4gVG8gcmVkdWNlIHRoZSBub2lzZSBpbiBzdHJpY3QgbW9kZSB0ZXN0cyxcbiAgICAgIC8vIHN1cHByZXNzIHdhcm5pbmdzIGFuZCBkaXNhYmxlIHNjaGVkdWxlciB5aWVsZGluZyBkdXJpbmcgdGhlIGRvdWJsZSByZW5kZXJcbiAgICAgIHVuc3RhYmxlX3NldERpc2FibGVZaWVsZFZhbHVlKG5ld0lzU3RyaWN0TW9kZSk7XG4gICAgICBzZXRTdXBwcmVzc1dhcm5pbmcobmV3SXNTdHJpY3RNb2RlKTtcbiAgICB9XG5cbiAgICBpZiAoaW5qZWN0ZWRIb29rICYmIHR5cGVvZiBpbmplY3RlZEhvb2suc2V0U3RyaWN0TW9kZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaW5qZWN0ZWRIb29rLnNldFN0cmljdE1vZGUocmVuZGVyZXJJRCwgbmV3SXNTdHJpY3RNb2RlKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB7XG4gICAgICAgICAgaWYgKCFoYXNMb2dnZWRFcnJvcikge1xuICAgICAgICAgICAgaGFzTG9nZ2VkRXJyb3IgPSB0cnVlO1xuXG4gICAgICAgICAgICBlcnJvcignUmVhY3QgaW5zdHJ1bWVudGF0aW9uIGVuY291bnRlcmVkIGFuIGVycm9yOiAlcycsIGVycik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IC8vIFByb2ZpbGVyIEFQSSBob29rc1xuXG5mdW5jdGlvbiBpbmplY3RQcm9maWxpbmdIb29rcyhwcm9maWxpbmdIb29rcykge1xuICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzID0gcHJvZmlsaW5nSG9va3M7XG59XG5cbmZ1bmN0aW9uIGdldExhbmVMYWJlbE1hcCgpIHtcbiAge1xuICAgIHZhciBtYXAgPSBuZXcgTWFwKCk7XG4gICAgdmFyIGxhbmUgPSAxO1xuXG4gICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IFRvdGFsTGFuZXM7IGluZGV4KyspIHtcbiAgICAgIHZhciBsYWJlbCA9IGdldExhYmVsRm9yTGFuZShsYW5lKTtcbiAgICAgIG1hcC5zZXQobGFuZSwgbGFiZWwpO1xuICAgICAgbGFuZSAqPSAyO1xuICAgIH1cblxuICAgIHJldHVybiBtYXA7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFya0NvbW1pdFN0YXJ0ZWQobGFuZXMpIHtcbiAge1xuICAgIGlmIChpbmplY3RlZFByb2ZpbGluZ0hvb2tzICE9PSBudWxsICYmIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21taXRTdGFydGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21taXRTdGFydGVkKGxhbmVzKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtDb21taXRTdG9wcGVkKCkge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbW1pdFN0b3BwZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbW1pdFN0b3BwZWQoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtDb21wb25lbnRSZW5kZXJTdGFydGVkKGZpYmVyKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UmVuZGVyU3RhcnRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UmVuZGVyU3RhcnRlZChmaWJlcik7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBtYXJrQ29tcG9uZW50UmVuZGVyU3RvcHBlZCgpIHtcbiAge1xuICAgIGlmIChpbmplY3RlZFByb2ZpbGluZ0hvb2tzICE9PSBudWxsICYmIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRSZW5kZXJTdG9wcGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRSZW5kZXJTdG9wcGVkKCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBtYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdE1vdW50U3RhcnRlZChmaWJlcikge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudFBhc3NpdmVFZmZlY3RNb3VudFN0YXJ0ZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudFBhc3NpdmVFZmZlY3RNb3VudFN0YXJ0ZWQoZmliZXIpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya0NvbXBvbmVudFBhc3NpdmVFZmZlY3RNb3VudFN0b3BwZWQoKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdE1vdW50U3RvcHBlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdE1vdW50U3RvcHBlZCgpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya0NvbXBvbmVudFBhc3NpdmVFZmZlY3RVbm1vdW50U3RhcnRlZChmaWJlcikge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudFBhc3NpdmVFZmZlY3RVbm1vdW50U3RhcnRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdFVubW91bnRTdGFydGVkKGZpYmVyKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtDb21wb25lbnRQYXNzaXZlRWZmZWN0VW5tb3VudFN0b3BwZWQoKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdFVubW91bnRTdG9wcGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRQYXNzaXZlRWZmZWN0VW5tb3VudFN0b3BwZWQoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtDb21wb25lbnRMYXlvdXRFZmZlY3RNb3VudFN0YXJ0ZWQoZmliZXIpIHtcbiAge1xuICAgIGlmIChpbmplY3RlZFByb2ZpbGluZ0hvb2tzICE9PSBudWxsICYmIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRMYXlvdXRFZmZlY3RNb3VudFN0YXJ0ZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudExheW91dEVmZmVjdE1vdW50U3RhcnRlZChmaWJlcik7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBtYXJrQ29tcG9uZW50TGF5b3V0RWZmZWN0TW91bnRTdG9wcGVkKCkge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudExheW91dEVmZmVjdE1vdW50U3RvcHBlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50TGF5b3V0RWZmZWN0TW91bnRTdG9wcGVkKCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBtYXJrQ29tcG9uZW50TGF5b3V0RWZmZWN0VW5tb3VudFN0YXJ0ZWQoZmliZXIpIHtcbiAge1xuICAgIGlmIChpbmplY3RlZFByb2ZpbGluZ0hvb2tzICE9PSBudWxsICYmIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRMYXlvdXRFZmZlY3RVbm1vdW50U3RhcnRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50TGF5b3V0RWZmZWN0VW5tb3VudFN0YXJ0ZWQoZmliZXIpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya0NvbXBvbmVudExheW91dEVmZmVjdFVubW91bnRTdG9wcGVkKCkge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudExheW91dEVmZmVjdFVubW91bnRTdG9wcGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRMYXlvdXRFZmZlY3RVbm1vdW50U3RvcHBlZCgpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya0NvbXBvbmVudEVycm9yZWQoZmliZXIsIHRocm93blZhbHVlLCBsYW5lcykge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudEVycm9yZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudEVycm9yZWQoZmliZXIsIHRocm93blZhbHVlLCBsYW5lcyk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBtYXJrQ29tcG9uZW50U3VzcGVuZGVkKGZpYmVyLCB3YWtlYWJsZSwgbGFuZXMpIHtcbiAge1xuICAgIGlmIChpbmplY3RlZFByb2ZpbGluZ0hvb2tzICE9PSBudWxsICYmIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRTdXNwZW5kZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudFN1c3BlbmRlZChmaWJlciwgd2FrZWFibGUsIGxhbmVzKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtMYXlvdXRFZmZlY3RzU3RhcnRlZChsYW5lcykge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0xheW91dEVmZmVjdHNTdGFydGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtMYXlvdXRFZmZlY3RzU3RhcnRlZChsYW5lcyk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBtYXJrTGF5b3V0RWZmZWN0c1N0b3BwZWQoKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrTGF5b3V0RWZmZWN0c1N0b3BwZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0xheW91dEVmZmVjdHNTdG9wcGVkKCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBtYXJrUGFzc2l2ZUVmZmVjdHNTdGFydGVkKGxhbmVzKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrUGFzc2l2ZUVmZmVjdHNTdGFydGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtQYXNzaXZlRWZmZWN0c1N0YXJ0ZWQobGFuZXMpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya1Bhc3NpdmVFZmZlY3RzU3RvcHBlZCgpIHtcbiAge1xuICAgIGlmIChpbmplY3RlZFByb2ZpbGluZ0hvb2tzICE9PSBudWxsICYmIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtQYXNzaXZlRWZmZWN0c1N0b3BwZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1Bhc3NpdmVFZmZlY3RzU3RvcHBlZCgpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya1JlbmRlclN0YXJ0ZWQobGFuZXMpIHtcbiAge1xuICAgIGlmIChpbmplY3RlZFByb2ZpbGluZ0hvb2tzICE9PSBudWxsICYmIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtSZW5kZXJTdGFydGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtSZW5kZXJTdGFydGVkKGxhbmVzKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtSZW5kZXJZaWVsZGVkKCkge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1JlbmRlcllpZWxkZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1JlbmRlcllpZWxkZWQoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtSZW5kZXJTdG9wcGVkKCkge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1JlbmRlclN0b3BwZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1JlbmRlclN0b3BwZWQoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtSZW5kZXJTY2hlZHVsZWQobGFuZSkge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1JlbmRlclNjaGVkdWxlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrUmVuZGVyU2NoZWR1bGVkKGxhbmUpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya0ZvcmNlVXBkYXRlU2NoZWR1bGVkKGZpYmVyLCBsYW5lKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrRm9yY2VVcGRhdGVTY2hlZHVsZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0ZvcmNlVXBkYXRlU2NoZWR1bGVkKGZpYmVyLCBsYW5lKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtTdGF0ZVVwZGF0ZVNjaGVkdWxlZChmaWJlciwgbGFuZSkge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1N0YXRlVXBkYXRlU2NoZWR1bGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtTdGF0ZVVwZGF0ZVNjaGVkdWxlZChmaWJlciwgbGFuZSk7XG4gICAgfVxuICB9XG59XG5cbnZhciBOb01vZGUgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjA7IC8vIFRPRE86IFJlbW92ZSBDb25jdXJyZW50TW9kZSBieSByZWFkaW5nIGZyb20gdGhlIHJvb3QgdGFnIGluc3RlYWRcblxudmFyIENvbmN1cnJlbnRNb2RlID1cbi8qICAgICAgICAgICAgICAgICAqL1xuMTtcbnZhciBQcm9maWxlTW9kZSA9XG4vKiAgICAgICAgICAgICAgICAgICAgKi9cbjI7XG52YXIgU3RyaWN0TGVnYWN5TW9kZSA9XG4vKiAgICAgICAgICAgICAgICovXG44O1xudmFyIFN0cmljdEVmZmVjdHNNb2RlID1cbi8qICAgICAgICAgICAgICAqL1xuMTY7XG5cbi8vIFRPRE86IFRoaXMgaXMgcHJldHR5IHdlbGwgc3VwcG9ydGVkIGJ5IGJyb3dzZXJzLiBNYXliZSB3ZSBjYW4gZHJvcCBpdC5cbnZhciBjbHozMiA9IE1hdGguY2x6MzIgPyBNYXRoLmNsejMyIDogY2x6MzJGYWxsYmFjazsgLy8gQ291bnQgbGVhZGluZyB6ZXJvcy5cbi8vIEJhc2VkIG9uOlxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvTWF0aC9jbHozMlxuXG52YXIgbG9nID0gTWF0aC5sb2c7XG52YXIgTE4yID0gTWF0aC5MTjI7XG5cbmZ1bmN0aW9uIGNsejMyRmFsbGJhY2soeCkge1xuICB2YXIgYXNVaW50ID0geCA+Pj4gMDtcblxuICBpZiAoYXNVaW50ID09PSAwKSB7XG4gICAgcmV0dXJuIDMyO1xuICB9XG5cbiAgcmV0dXJuIDMxIC0gKGxvZyhhc1VpbnQpIC8gTE4yIHwgMCkgfCAwO1xufVxuXG4vLyBJZiB0aG9zZSB2YWx1ZXMgYXJlIGNoYW5nZWQgdGhhdCBwYWNrYWdlIHNob3VsZCBiZSByZWJ1aWx0IGFuZCByZWRlcGxveWVkLlxuXG52YXIgVG90YWxMYW5lcyA9IDMxO1xudmFyIE5vTGFuZXMgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAqL1xuMDtcbnZhciBOb0xhbmUgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAgICovXG4wO1xudmFyIFN5bmNMYW5lID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjE7XG52YXIgSW5wdXRDb250aW51b3VzSHlkcmF0aW9uTGFuZSA9XG4vKiAgICAqL1xuMjtcbnZhciBJbnB1dENvbnRpbnVvdXNMYW5lID1cbi8qICAgICAgICAgICAgKi9cbjQ7XG52YXIgRGVmYXVsdEh5ZHJhdGlvbkxhbmUgPVxuLyogICAgICAgICAgICAqL1xuODtcbnZhciBEZWZhdWx0TGFuZSA9XG4vKiAgICAgICAgICAgICAgICAgICAgKi9cbjE2O1xudmFyIFRyYW5zaXRpb25IeWRyYXRpb25MYW5lID1cbi8qICAgICAgICAgICAgICAgICovXG4zMjtcbnZhciBUcmFuc2l0aW9uTGFuZXMgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICovXG40MTk0MjQwO1xudmFyIFRyYW5zaXRpb25MYW5lMSA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICovXG42NDtcbnZhciBUcmFuc2l0aW9uTGFuZTIgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAqL1xuMTI4O1xudmFyIFRyYW5zaXRpb25MYW5lMyA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICovXG4yNTY7XG52YXIgVHJhbnNpdGlvbkxhbmU0ID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjUxMjtcbnZhciBUcmFuc2l0aW9uTGFuZTUgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAqL1xuMTAyNDtcbnZhciBUcmFuc2l0aW9uTGFuZTYgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAqL1xuMjA0ODtcbnZhciBUcmFuc2l0aW9uTGFuZTcgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAqL1xuNDA5NjtcbnZhciBUcmFuc2l0aW9uTGFuZTggPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAqL1xuODE5MjtcbnZhciBUcmFuc2l0aW9uTGFuZTkgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAqL1xuMTYzODQ7XG52YXIgVHJhbnNpdGlvbkxhbmUxMCA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgKi9cbjMyNzY4O1xudmFyIFRyYW5zaXRpb25MYW5lMTEgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICovXG42NTUzNjtcbnZhciBUcmFuc2l0aW9uTGFuZTEyID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAqL1xuMTMxMDcyO1xudmFyIFRyYW5zaXRpb25MYW5lMTMgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICovXG4yNjIxNDQ7XG52YXIgVHJhbnNpdGlvbkxhbmUxNCA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgKi9cbjUyNDI4ODtcbnZhciBUcmFuc2l0aW9uTGFuZTE1ID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAqL1xuMTA0ODU3NjtcbnZhciBUcmFuc2l0aW9uTGFuZTE2ID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAqL1xuMjA5NzE1MjtcbnZhciBSZXRyeUxhbmVzID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4xMzAwMjM0MjQ7XG52YXIgUmV0cnlMYW5lMSA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjQxOTQzMDQ7XG52YXIgUmV0cnlMYW5lMiA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjgzODg2MDg7XG52YXIgUmV0cnlMYW5lMyA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjE2Nzc3MjE2O1xudmFyIFJldHJ5TGFuZTQgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4zMzU1NDQzMjtcbnZhciBSZXRyeUxhbmU1ID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuNjcxMDg4NjQ7XG52YXIgU29tZVJldHJ5TGFuZSA9IFJldHJ5TGFuZTE7XG52YXIgU2VsZWN0aXZlSHlkcmF0aW9uTGFuZSA9XG4vKiAgICAgICAgICAqL1xuMTM0MjE3NzI4O1xudmFyIE5vbklkbGVMYW5lcyA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4yNjg0MzU0NTU7XG52YXIgSWRsZUh5ZHJhdGlvbkxhbmUgPVxuLyogICAgICAgICAgICAgICAqL1xuMjY4NDM1NDU2O1xudmFyIElkbGVMYW5lID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAqL1xuNTM2ODcwOTEyO1xudmFyIE9mZnNjcmVlbkxhbmUgPVxuLyogICAgICAgICAgICAgICAgICAgKi9cbjEwNzM3NDE4MjQ7IC8vIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBmb3IgdGhlIGV4cGVyaW1lbnRhbCB0aW1lbGluZSAocmVhY3QtZGV2dG9vbHMtdGltZWxpbmUpXG4vLyBJdCBzaG91bGQgYmUga2VwdCBpbiBzeW5jIHdpdGggdGhlIExhbmVzIHZhbHVlcyBhYm92ZS5cblxuZnVuY3Rpb24gZ2V0TGFiZWxGb3JMYW5lKGxhbmUpIHtcbiAge1xuICAgIGlmIChsYW5lICYgU3luY0xhbmUpIHtcbiAgICAgIHJldHVybiAnU3luYyc7XG4gICAgfVxuXG4gICAgaWYgKGxhbmUgJiBJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25MYW5lKSB7XG4gICAgICByZXR1cm4gJ0lucHV0Q29udGludW91c0h5ZHJhdGlvbic7XG4gICAgfVxuXG4gICAgaWYgKGxhbmUgJiBJbnB1dENvbnRpbnVvdXNMYW5lKSB7XG4gICAgICByZXR1cm4gJ0lucHV0Q29udGludW91cyc7XG4gICAgfVxuXG4gICAgaWYgKGxhbmUgJiBEZWZhdWx0SHlkcmF0aW9uTGFuZSkge1xuICAgICAgcmV0dXJuICdEZWZhdWx0SHlkcmF0aW9uJztcbiAgICB9XG5cbiAgICBpZiAobGFuZSAmIERlZmF1bHRMYW5lKSB7XG4gICAgICByZXR1cm4gJ0RlZmF1bHQnO1xuICAgIH1cblxuICAgIGlmIChsYW5lICYgVHJhbnNpdGlvbkh5ZHJhdGlvbkxhbmUpIHtcbiAgICAgIHJldHVybiAnVHJhbnNpdGlvbkh5ZHJhdGlvbic7XG4gICAgfVxuXG4gICAgaWYgKGxhbmUgJiBUcmFuc2l0aW9uTGFuZXMpIHtcbiAgICAgIHJldHVybiAnVHJhbnNpdGlvbic7XG4gICAgfVxuXG4gICAgaWYgKGxhbmUgJiBSZXRyeUxhbmVzKSB7XG4gICAgICByZXR1cm4gJ1JldHJ5JztcbiAgICB9XG5cbiAgICBpZiAobGFuZSAmIFNlbGVjdGl2ZUh5ZHJhdGlvbkxhbmUpIHtcbiAgICAgIHJldHVybiAnU2VsZWN0aXZlSHlkcmF0aW9uJztcbiAgICB9XG5cbiAgICBpZiAobGFuZSAmIElkbGVIeWRyYXRpb25MYW5lKSB7XG4gICAgICByZXR1cm4gJ0lkbGVIeWRyYXRpb24nO1xuICAgIH1cblxuICAgIGlmIChsYW5lICYgSWRsZUxhbmUpIHtcbiAgICAgIHJldHVybiAnSWRsZSc7XG4gICAgfVxuXG4gICAgaWYgKGxhbmUgJiBPZmZzY3JlZW5MYW5lKSB7XG4gICAgICByZXR1cm4gJ09mZnNjcmVlbic7XG4gICAgfVxuICB9XG59XG52YXIgTm9UaW1lc3RhbXAgPSAtMTtcbnZhciBuZXh0VHJhbnNpdGlvbkxhbmUgPSBUcmFuc2l0aW9uTGFuZTE7XG52YXIgbmV4dFJldHJ5TGFuZSA9IFJldHJ5TGFuZTE7XG5cbmZ1bmN0aW9uIGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKGxhbmVzKSB7XG4gIHN3aXRjaCAoZ2V0SGlnaGVzdFByaW9yaXR5TGFuZShsYW5lcykpIHtcbiAgICBjYXNlIFN5bmNMYW5lOlxuICAgICAgcmV0dXJuIFN5bmNMYW5lO1xuXG4gICAgY2FzZSBJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25MYW5lOlxuICAgICAgcmV0dXJuIElucHV0Q29udGludW91c0h5ZHJhdGlvbkxhbmU7XG5cbiAgICBjYXNlIElucHV0Q29udGludW91c0xhbmU6XG4gICAgICByZXR1cm4gSW5wdXRDb250aW51b3VzTGFuZTtcblxuICAgIGNhc2UgRGVmYXVsdEh5ZHJhdGlvbkxhbmU6XG4gICAgICByZXR1cm4gRGVmYXVsdEh5ZHJhdGlvbkxhbmU7XG5cbiAgICBjYXNlIERlZmF1bHRMYW5lOlxuICAgICAgcmV0dXJuIERlZmF1bHRMYW5lO1xuXG4gICAgY2FzZSBUcmFuc2l0aW9uSHlkcmF0aW9uTGFuZTpcbiAgICAgIHJldHVybiBUcmFuc2l0aW9uSHlkcmF0aW9uTGFuZTtcblxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUxOlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUyOlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUzOlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmU0OlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmU1OlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmU2OlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmU3OlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmU4OlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmU5OlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUxMDpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTE6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTEyOlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUxMzpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTQ6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTE1OlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUxNjpcbiAgICAgIHJldHVybiBsYW5lcyAmIFRyYW5zaXRpb25MYW5lcztcblxuICAgIGNhc2UgUmV0cnlMYW5lMTpcbiAgICBjYXNlIFJldHJ5TGFuZTI6XG4gICAgY2FzZSBSZXRyeUxhbmUzOlxuICAgIGNhc2UgUmV0cnlMYW5lNDpcbiAgICBjYXNlIFJldHJ5TGFuZTU6XG4gICAgICByZXR1cm4gbGFuZXMgJiBSZXRyeUxhbmVzO1xuXG4gICAgY2FzZSBTZWxlY3RpdmVIeWRyYXRpb25MYW5lOlxuICAgICAgcmV0dXJuIFNlbGVjdGl2ZUh5ZHJhdGlvbkxhbmU7XG5cbiAgICBjYXNlIElkbGVIeWRyYXRpb25MYW5lOlxuICAgICAgcmV0dXJuIElkbGVIeWRyYXRpb25MYW5lO1xuXG4gICAgY2FzZSBJZGxlTGFuZTpcbiAgICAgIHJldHVybiBJZGxlTGFuZTtcblxuICAgIGNhc2UgT2Zmc2NyZWVuTGFuZTpcbiAgICAgIHJldHVybiBPZmZzY3JlZW5MYW5lO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHtcbiAgICAgICAgZXJyb3IoJ1Nob3VsZCBoYXZlIGZvdW5kIG1hdGNoaW5nIGxhbmVzLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICAgICAgfSAvLyBUaGlzIHNob3VsZG4ndCBiZSByZWFjaGFibGUsIGJ1dCBhcyBhIGZhbGxiYWNrLCByZXR1cm4gdGhlIGVudGlyZSBiaXRtYXNrLlxuXG5cbiAgICAgIHJldHVybiBsYW5lcztcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXROZXh0TGFuZXMocm9vdCwgd2lwTGFuZXMpIHtcbiAgLy8gRWFybHkgYmFpbG91dCBpZiB0aGVyZSdzIG5vIHBlbmRpbmcgd29yayBsZWZ0LlxuICB2YXIgcGVuZGluZ0xhbmVzID0gcm9vdC5wZW5kaW5nTGFuZXM7XG5cbiAgaWYgKHBlbmRpbmdMYW5lcyA9PT0gTm9MYW5lcykge1xuICAgIHJldHVybiBOb0xhbmVzO1xuICB9XG5cbiAgdmFyIG5leHRMYW5lcyA9IE5vTGFuZXM7XG4gIHZhciBzdXNwZW5kZWRMYW5lcyA9IHJvb3Quc3VzcGVuZGVkTGFuZXM7XG4gIHZhciBwaW5nZWRMYW5lcyA9IHJvb3QucGluZ2VkTGFuZXM7IC8vIERvIG5vdCB3b3JrIG9uIGFueSBpZGxlIHdvcmsgdW50aWwgYWxsIHRoZSBub24taWRsZSB3b3JrIGhhcyBmaW5pc2hlZCxcbiAgLy8gZXZlbiBpZiB0aGUgd29yayBpcyBzdXNwZW5kZWQuXG5cbiAgdmFyIG5vbklkbGVQZW5kaW5nTGFuZXMgPSBwZW5kaW5nTGFuZXMgJiBOb25JZGxlTGFuZXM7XG5cbiAgaWYgKG5vbklkbGVQZW5kaW5nTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICB2YXIgbm9uSWRsZVVuYmxvY2tlZExhbmVzID0gbm9uSWRsZVBlbmRpbmdMYW5lcyAmIH5zdXNwZW5kZWRMYW5lcztcblxuICAgIGlmIChub25JZGxlVW5ibG9ja2VkTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICAgIG5leHRMYW5lcyA9IGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKG5vbklkbGVVbmJsb2NrZWRMYW5lcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBub25JZGxlUGluZ2VkTGFuZXMgPSBub25JZGxlUGVuZGluZ0xhbmVzICYgcGluZ2VkTGFuZXM7XG5cbiAgICAgIGlmIChub25JZGxlUGluZ2VkTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICAgICAgbmV4dExhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMobm9uSWRsZVBpbmdlZExhbmVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhlIG9ubHkgcmVtYWluaW5nIHdvcmsgaXMgSWRsZS5cbiAgICB2YXIgdW5ibG9ja2VkTGFuZXMgPSBwZW5kaW5nTGFuZXMgJiB+c3VzcGVuZGVkTGFuZXM7XG5cbiAgICBpZiAodW5ibG9ja2VkTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICAgIG5leHRMYW5lcyA9IGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKHVuYmxvY2tlZExhbmVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHBpbmdlZExhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgICAgIG5leHRMYW5lcyA9IGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKHBpbmdlZExhbmVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAobmV4dExhbmVzID09PSBOb0xhbmVzKSB7XG4gICAgLy8gVGhpcyBzaG91bGQgb25seSBiZSByZWFjaGFibGUgaWYgd2UncmUgc3VzcGVuZGVkXG4gICAgLy8gVE9ETzogQ29uc2lkZXIgd2FybmluZyBpbiB0aGlzIHBhdGggaWYgYSBmYWxsYmFjayB0aW1lciBpcyBub3Qgc2NoZWR1bGVkLlxuICAgIHJldHVybiBOb0xhbmVzO1xuICB9IC8vIElmIHdlJ3JlIGFscmVhZHkgaW4gdGhlIG1pZGRsZSBvZiBhIHJlbmRlciwgc3dpdGNoaW5nIGxhbmVzIHdpbGwgaW50ZXJydXB0XG4gIC8vIGl0IGFuZCB3ZSdsbCBsb3NlIG91ciBwcm9ncmVzcy4gV2Ugc2hvdWxkIG9ubHkgZG8gdGhpcyBpZiB0aGUgbmV3IGxhbmVzIGFyZVxuICAvLyBoaWdoZXIgcHJpb3JpdHkuXG5cblxuICBpZiAod2lwTGFuZXMgIT09IE5vTGFuZXMgJiYgd2lwTGFuZXMgIT09IG5leHRMYW5lcyAmJiAvLyBJZiB3ZSBhbHJlYWR5IHN1c3BlbmRlZCB3aXRoIGEgZGVsYXksIHRoZW4gaW50ZXJydXB0aW5nIGlzIGZpbmUuIERvbid0XG4gIC8vIGJvdGhlciB3YWl0aW5nIHVudGlsIHRoZSByb290IGlzIGNvbXBsZXRlLlxuICAod2lwTGFuZXMgJiBzdXNwZW5kZWRMYW5lcykgPT09IE5vTGFuZXMpIHtcbiAgICB2YXIgbmV4dExhbmUgPSBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lKG5leHRMYW5lcyk7XG4gICAgdmFyIHdpcExhbmUgPSBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lKHdpcExhbmVzKTtcblxuICAgIGlmICggLy8gVGVzdHMgd2hldGhlciB0aGUgbmV4dCBsYW5lIGlzIGVxdWFsIG9yIGxvd2VyIHByaW9yaXR5IHRoYW4gdGhlIHdpcFxuICAgIC8vIG9uZS4gVGhpcyB3b3JrcyBiZWNhdXNlIHRoZSBiaXRzIGRlY3JlYXNlIGluIHByaW9yaXR5IGFzIHlvdSBnbyBsZWZ0LlxuICAgIG5leHRMYW5lID49IHdpcExhbmUgfHwgLy8gRGVmYXVsdCBwcmlvcml0eSB1cGRhdGVzIHNob3VsZCBub3QgaW50ZXJydXB0IHRyYW5zaXRpb24gdXBkYXRlcy4gVGhlXG4gICAgLy8gb25seSBkaWZmZXJlbmNlIGJldHdlZW4gZGVmYXVsdCB1cGRhdGVzIGFuZCB0cmFuc2l0aW9uIHVwZGF0ZXMgaXMgdGhhdFxuICAgIC8vIGRlZmF1bHQgdXBkYXRlcyBkbyBub3Qgc3VwcG9ydCByZWZyZXNoIHRyYW5zaXRpb25zLlxuICAgIG5leHRMYW5lID09PSBEZWZhdWx0TGFuZSAmJiAod2lwTGFuZSAmIFRyYW5zaXRpb25MYW5lcykgIT09IE5vTGFuZXMpIHtcbiAgICAgIC8vIEtlZXAgd29ya2luZyBvbiB0aGUgZXhpc3RpbmcgaW4tcHJvZ3Jlc3MgdHJlZS4gRG8gbm90IGludGVycnVwdC5cbiAgICAgIHJldHVybiB3aXBMYW5lcztcbiAgICB9XG4gIH1cblxuICBpZiAoKG5leHRMYW5lcyAmIElucHV0Q29udGludW91c0xhbmUpICE9PSBOb0xhbmVzKSB7XG4gICAgLy8gV2hlbiB1cGRhdGVzIGFyZSBzeW5jIGJ5IGRlZmF1bHQsIHdlIGVudGFuZ2xlIGNvbnRpbnVvdXMgcHJpb3JpdHkgdXBkYXRlc1xuICAgIC8vIGFuZCBkZWZhdWx0IHVwZGF0ZXMsIHNvIHRoZXkgcmVuZGVyIGluIHRoZSBzYW1lIGJhdGNoLiBUaGUgb25seSByZWFzb25cbiAgICAvLyB0aGV5IHVzZSBzZXBhcmF0ZSBsYW5lcyBpcyBiZWNhdXNlIGNvbnRpbnVvdXMgdXBkYXRlcyBzaG91bGQgaW50ZXJydXB0XG4gICAgLy8gdHJhbnNpdGlvbnMsIGJ1dCBkZWZhdWx0IHVwZGF0ZXMgc2hvdWxkIG5vdC5cbiAgICBuZXh0TGFuZXMgfD0gcGVuZGluZ0xhbmVzICYgRGVmYXVsdExhbmU7XG4gIH0gLy8gQ2hlY2sgZm9yIGVudGFuZ2xlZCBsYW5lcyBhbmQgYWRkIHRoZW0gdG8gdGhlIGJhdGNoLlxuICAvL1xuICAvLyBBIGxhbmUgaXMgc2FpZCB0byBiZSBlbnRhbmdsZWQgd2l0aCBhbm90aGVyIHdoZW4gaXQncyBub3QgYWxsb3dlZCB0byByZW5kZXJcbiAgLy8gaW4gYSBiYXRjaCB0aGF0IGRvZXMgbm90IGFsc28gaW5jbHVkZSB0aGUgb3RoZXIgbGFuZS4gVHlwaWNhbGx5IHdlIGRvIHRoaXNcbiAgLy8gd2hlbiBtdWx0aXBsZSB1cGRhdGVzIGhhdmUgdGhlIHNhbWUgc291cmNlLCBhbmQgd2Ugb25seSB3YW50IHRvIHJlc3BvbmQgdG9cbiAgLy8gdGhlIG1vc3QgcmVjZW50IGV2ZW50IGZyb20gdGhhdCBzb3VyY2UuXG4gIC8vXG4gIC8vIE5vdGUgdGhhdCB3ZSBhcHBseSBlbnRhbmdsZW1lbnRzICphZnRlciogY2hlY2tpbmcgZm9yIHBhcnRpYWwgd29yayBhYm92ZS5cbiAgLy8gVGhpcyBtZWFucyB0aGF0IGlmIGEgbGFuZSBpcyBlbnRhbmdsZWQgZHVyaW5nIGFuIGludGVybGVhdmVkIGV2ZW50IHdoaWxlXG4gIC8vIGl0J3MgYWxyZWFkeSByZW5kZXJpbmcsIHdlIHdvbid0IGludGVycnVwdCBpdC4gVGhpcyBpcyBpbnRlbnRpb25hbCwgc2luY2VcbiAgLy8gZW50YW5nbGVtZW50IGlzIHVzdWFsbHkgXCJiZXN0IGVmZm9ydFwiOiB3ZSdsbCB0cnkgb3VyIGJlc3QgdG8gcmVuZGVyIHRoZVxuICAvLyBsYW5lcyBpbiB0aGUgc2FtZSBiYXRjaCwgYnV0IGl0J3Mgbm90IHdvcnRoIHRocm93aW5nIG91dCBwYXJ0aWFsbHlcbiAgLy8gY29tcGxldGVkIHdvcmsgaW4gb3JkZXIgdG8gZG8gaXQuXG4gIC8vIFRPRE86IFJlY29uc2lkZXIgdGhpcy4gVGhlIGNvdW50ZXItYXJndW1lbnQgaXMgdGhhdCB0aGUgcGFydGlhbCB3b3JrXG4gIC8vIHJlcHJlc2VudHMgYW4gaW50ZXJtZWRpYXRlIHN0YXRlLCB3aGljaCB3ZSBkb24ndCB3YW50IHRvIHNob3cgdG8gdGhlIHVzZXIuXG4gIC8vIEFuZCBieSBzcGVuZGluZyBleHRyYSB0aW1lIGZpbmlzaGluZyBpdCwgd2UncmUgaW5jcmVhc2luZyB0aGUgYW1vdW50IG9mXG4gIC8vIHRpbWUgaXQgdGFrZXMgdG8gc2hvdyB0aGUgZmluYWwgc3RhdGUsIHdoaWNoIGlzIHdoYXQgdGhleSBhcmUgYWN0dWFsbHlcbiAgLy8gd2FpdGluZyBmb3IuXG4gIC8vXG4gIC8vIEZvciB0aG9zZSBleGNlcHRpb25zIHdoZXJlIGVudGFuZ2xlbWVudCBpcyBzZW1hbnRpY2FsbHkgaW1wb3J0YW50LCBsaWtlXG4gIC8vIHVzZU11dGFibGVTb3VyY2UsIHdlIHNob3VsZCBlbnN1cmUgdGhhdCB0aGVyZSBpcyBubyBwYXJ0aWFsIHdvcmsgYXQgdGhlXG4gIC8vIHRpbWUgd2UgYXBwbHkgdGhlIGVudGFuZ2xlbWVudC5cblxuXG4gIHZhciBlbnRhbmdsZWRMYW5lcyA9IHJvb3QuZW50YW5nbGVkTGFuZXM7XG5cbiAgaWYgKGVudGFuZ2xlZExhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgdmFyIGVudGFuZ2xlbWVudHMgPSByb290LmVudGFuZ2xlbWVudHM7XG4gICAgdmFyIGxhbmVzID0gbmV4dExhbmVzICYgZW50YW5nbGVkTGFuZXM7XG5cbiAgICB3aGlsZSAobGFuZXMgPiAwKSB7XG4gICAgICB2YXIgaW5kZXggPSBwaWNrQXJiaXRyYXJ5TGFuZUluZGV4KGxhbmVzKTtcbiAgICAgIHZhciBsYW5lID0gMSA8PCBpbmRleDtcbiAgICAgIG5leHRMYW5lcyB8PSBlbnRhbmdsZW1lbnRzW2luZGV4XTtcbiAgICAgIGxhbmVzICY9IH5sYW5lO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXh0TGFuZXM7XG59XG5mdW5jdGlvbiBnZXRNb3N0UmVjZW50RXZlbnRUaW1lKHJvb3QsIGxhbmVzKSB7XG4gIHZhciBldmVudFRpbWVzID0gcm9vdC5ldmVudFRpbWVzO1xuICB2YXIgbW9zdFJlY2VudEV2ZW50VGltZSA9IE5vVGltZXN0YW1wO1xuXG4gIHdoaWxlIChsYW5lcyA+IDApIHtcbiAgICB2YXIgaW5kZXggPSBwaWNrQXJiaXRyYXJ5TGFuZUluZGV4KGxhbmVzKTtcbiAgICB2YXIgbGFuZSA9IDEgPDwgaW5kZXg7XG4gICAgdmFyIGV2ZW50VGltZSA9IGV2ZW50VGltZXNbaW5kZXhdO1xuXG4gICAgaWYgKGV2ZW50VGltZSA+IG1vc3RSZWNlbnRFdmVudFRpbWUpIHtcbiAgICAgIG1vc3RSZWNlbnRFdmVudFRpbWUgPSBldmVudFRpbWU7XG4gICAgfVxuXG4gICAgbGFuZXMgJj0gfmxhbmU7XG4gIH1cblxuICByZXR1cm4gbW9zdFJlY2VudEV2ZW50VGltZTtcbn1cblxuZnVuY3Rpb24gY29tcHV0ZUV4cGlyYXRpb25UaW1lKGxhbmUsIGN1cnJlbnRUaW1lKSB7XG4gIHN3aXRjaCAobGFuZSkge1xuICAgIGNhc2UgU3luY0xhbmU6XG4gICAgY2FzZSBJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25MYW5lOlxuICAgIGNhc2UgSW5wdXRDb250aW51b3VzTGFuZTpcbiAgICAgIC8vIFVzZXIgaW50ZXJhY3Rpb25zIHNob3VsZCBleHBpcmUgc2xpZ2h0bHkgbW9yZSBxdWlja2x5LlxuICAgICAgLy9cbiAgICAgIC8vIE5PVEU6IFRoaXMgaXMgc2V0IHRvIHRoZSBjb3JyZXNwb25kaW5nIGNvbnN0YW50IGFzIGluIFNjaGVkdWxlci5qcy5cbiAgICAgIC8vIFdoZW4gd2UgbWFkZSBpdCBsYXJnZXIsIGEgcHJvZHVjdCBtZXRyaWMgaW4gd3d3IHJlZ3Jlc3NlZCwgc3VnZ2VzdGluZ1xuICAgICAgLy8gdGhlcmUncyBhIHVzZXIgaW50ZXJhY3Rpb24gdGhhdCdzIGJlaW5nIHN0YXJ2ZWQgYnkgYSBzZXJpZXMgb2ZcbiAgICAgIC8vIHN5bmNocm9ub3VzIHVwZGF0ZXMuIElmIHRoYXQgdGhlb3J5IGlzIGNvcnJlY3QsIHRoZSBwcm9wZXIgc29sdXRpb24gaXNcbiAgICAgIC8vIHRvIGZpeCB0aGUgc3RhcnZhdGlvbi4gSG93ZXZlciwgdGhpcyBzY2VuYXJpbyBzdXBwb3J0cyB0aGUgaWRlYSB0aGF0XG4gICAgICAvLyBleHBpcmF0aW9uIHRpbWVzIGFyZSBhbiBpbXBvcnRhbnQgc2FmZWd1YXJkIHdoZW4gc3RhcnZhdGlvblxuICAgICAgLy8gZG9lcyBoYXBwZW4uXG4gICAgICByZXR1cm4gY3VycmVudFRpbWUgKyAyNTA7XG5cbiAgICBjYXNlIERlZmF1bHRIeWRyYXRpb25MYW5lOlxuICAgIGNhc2UgRGVmYXVsdExhbmU6XG4gICAgY2FzZSBUcmFuc2l0aW9uSHlkcmF0aW9uTGFuZTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMjpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMzpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNDpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNjpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNzpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lODpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lOTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTA6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTExOlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUxMjpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTM6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTE0OlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUxNTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTY6XG4gICAgICByZXR1cm4gY3VycmVudFRpbWUgKyA1MDAwO1xuXG4gICAgY2FzZSBSZXRyeUxhbmUxOlxuICAgIGNhc2UgUmV0cnlMYW5lMjpcbiAgICBjYXNlIFJldHJ5TGFuZTM6XG4gICAgY2FzZSBSZXRyeUxhbmU0OlxuICAgIGNhc2UgUmV0cnlMYW5lNTpcbiAgICAgIC8vIFRPRE86IFJldHJpZXMgc2hvdWxkIGJlIGFsbG93ZWQgdG8gZXhwaXJlIGlmIHRoZXkgYXJlIENQVSBib3VuZCBmb3JcbiAgICAgIC8vIHRvbyBsb25nLCBidXQgd2hlbiBJIG1hZGUgdGhpcyBjaGFuZ2UgaXQgY2F1c2VkIGEgc3Bpa2UgaW4gYnJvd3NlclxuICAgICAgLy8gY3Jhc2hlcy4gVGhlcmUgbXVzdCBiZSBzb21lIG90aGVyIHVuZGVybHlpbmcgYnVnOyBub3Qgc3VwZXIgdXJnZW50IGJ1dFxuICAgICAgLy8gaWRlYWxseSBzaG91bGQgZmlndXJlIG91dCB3aHkgYW5kIGZpeCBpdC4gVW5mb3J0dW5hdGVseSB3ZSBkb24ndCBoYXZlXG4gICAgICAvLyBhIHJlcHJvIGZvciB0aGUgY3Jhc2hlcywgb25seSBkZXRlY3RlZCB2aWEgcHJvZHVjdGlvbiBtZXRyaWNzLlxuICAgICAgcmV0dXJuIE5vVGltZXN0YW1wO1xuXG4gICAgY2FzZSBTZWxlY3RpdmVIeWRyYXRpb25MYW5lOlxuICAgIGNhc2UgSWRsZUh5ZHJhdGlvbkxhbmU6XG4gICAgY2FzZSBJZGxlTGFuZTpcbiAgICBjYXNlIE9mZnNjcmVlbkxhbmU6XG4gICAgICAvLyBBbnl0aGluZyBpZGxlIHByaW9yaXR5IG9yIGxvd2VyIHNob3VsZCBuZXZlciBleHBpcmUuXG4gICAgICByZXR1cm4gTm9UaW1lc3RhbXA7XG5cbiAgICBkZWZhdWx0OlxuICAgICAge1xuICAgICAgICBlcnJvcignU2hvdWxkIGhhdmUgZm91bmQgbWF0Y2hpbmcgbGFuZXMuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBOb1RpbWVzdGFtcDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrU3RhcnZlZExhbmVzQXNFeHBpcmVkKHJvb3QsIGN1cnJlbnRUaW1lKSB7XG4gIC8vIFRPRE86IFRoaXMgZ2V0cyBjYWxsZWQgZXZlcnkgdGltZSB3ZSB5aWVsZC4gV2UgY2FuIG9wdGltaXplIGJ5IHN0b3JpbmdcbiAgLy8gdGhlIGVhcmxpZXN0IGV4cGlyYXRpb24gdGltZSBvbiB0aGUgcm9vdC4gVGhlbiB1c2UgdGhhdCB0byBxdWlja2x5IGJhaWwgb3V0XG4gIC8vIG9mIHRoaXMgZnVuY3Rpb24uXG4gIHZhciBwZW5kaW5nTGFuZXMgPSByb290LnBlbmRpbmdMYW5lcztcbiAgdmFyIHN1c3BlbmRlZExhbmVzID0gcm9vdC5zdXNwZW5kZWRMYW5lcztcbiAgdmFyIHBpbmdlZExhbmVzID0gcm9vdC5waW5nZWRMYW5lcztcbiAgdmFyIGV4cGlyYXRpb25UaW1lcyA9IHJvb3QuZXhwaXJhdGlvblRpbWVzOyAvLyBJdGVyYXRlIHRocm91Z2ggdGhlIHBlbmRpbmcgbGFuZXMgYW5kIGNoZWNrIGlmIHdlJ3ZlIHJlYWNoZWQgdGhlaXJcbiAgLy8gZXhwaXJhdGlvbiB0aW1lLiBJZiBzbywgd2UnbGwgYXNzdW1lIHRoZSB1cGRhdGUgaXMgYmVpbmcgc3RhcnZlZCBhbmQgbWFya1xuICAvLyBpdCBhcyBleHBpcmVkIHRvIGZvcmNlIGl0IHRvIGZpbmlzaC5cblxuICB2YXIgbGFuZXMgPSBwZW5kaW5nTGFuZXM7XG5cbiAgd2hpbGUgKGxhbmVzID4gMCkge1xuICAgIHZhciBpbmRleCA9IHBpY2tBcmJpdHJhcnlMYW5lSW5kZXgobGFuZXMpO1xuICAgIHZhciBsYW5lID0gMSA8PCBpbmRleDtcbiAgICB2YXIgZXhwaXJhdGlvblRpbWUgPSBleHBpcmF0aW9uVGltZXNbaW5kZXhdO1xuXG4gICAgaWYgKGV4cGlyYXRpb25UaW1lID09PSBOb1RpbWVzdGFtcCkge1xuICAgICAgLy8gRm91bmQgYSBwZW5kaW5nIGxhbmUgd2l0aCBubyBleHBpcmF0aW9uIHRpbWUuIElmIGl0J3Mgbm90IHN1c3BlbmRlZCwgb3JcbiAgICAgIC8vIGlmIGl0J3MgcGluZ2VkLCBhc3N1bWUgaXQncyBDUFUtYm91bmQuIENvbXB1dGUgYSBuZXcgZXhwaXJhdGlvbiB0aW1lXG4gICAgICAvLyB1c2luZyB0aGUgY3VycmVudCB0aW1lLlxuICAgICAgaWYgKChsYW5lICYgc3VzcGVuZGVkTGFuZXMpID09PSBOb0xhbmVzIHx8IChsYW5lICYgcGluZ2VkTGFuZXMpICE9PSBOb0xhbmVzKSB7XG4gICAgICAgIC8vIEFzc3VtZXMgdGltZXN0YW1wcyBhcmUgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nLlxuICAgICAgICBleHBpcmF0aW9uVGltZXNbaW5kZXhdID0gY29tcHV0ZUV4cGlyYXRpb25UaW1lKGxhbmUsIGN1cnJlbnRUaW1lKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGV4cGlyYXRpb25UaW1lIDw9IGN1cnJlbnRUaW1lKSB7XG4gICAgICAvLyBUaGlzIGxhbmUgZXhwaXJlZFxuICAgICAgcm9vdC5leHBpcmVkTGFuZXMgfD0gbGFuZTtcbiAgICB9XG5cbiAgICBsYW5lcyAmPSB+bGFuZTtcbiAgfVxufSAvLyBUaGlzIHJldHVybnMgdGhlIGhpZ2hlc3QgcHJpb3JpdHkgcGVuZGluZyBsYW5lcyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhleVxuLy8gYXJlIHN1c3BlbmRlZC5cblxuZnVuY3Rpb24gZ2V0SGlnaGVzdFByaW9yaXR5UGVuZGluZ0xhbmVzKHJvb3QpIHtcbiAgcmV0dXJuIGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKHJvb3QucGVuZGluZ0xhbmVzKTtcbn1cbmZ1bmN0aW9uIGdldExhbmVzVG9SZXRyeVN5bmNocm9ub3VzbHlPbkVycm9yKHJvb3QpIHtcbiAgdmFyIGV2ZXJ5dGhpbmdCdXRPZmZzY3JlZW4gPSByb290LnBlbmRpbmdMYW5lcyAmIH5PZmZzY3JlZW5MYW5lO1xuXG4gIGlmIChldmVyeXRoaW5nQnV0T2Zmc2NyZWVuICE9PSBOb0xhbmVzKSB7XG4gICAgcmV0dXJuIGV2ZXJ5dGhpbmdCdXRPZmZzY3JlZW47XG4gIH1cblxuICBpZiAoZXZlcnl0aGluZ0J1dE9mZnNjcmVlbiAmIE9mZnNjcmVlbkxhbmUpIHtcbiAgICByZXR1cm4gT2Zmc2NyZWVuTGFuZTtcbiAgfVxuXG4gIHJldHVybiBOb0xhbmVzO1xufVxuZnVuY3Rpb24gaW5jbHVkZXNTeW5jTGFuZShsYW5lcykge1xuICByZXR1cm4gKGxhbmVzICYgU3luY0xhbmUpICE9PSBOb0xhbmVzO1xufVxuZnVuY3Rpb24gaW5jbHVkZXNOb25JZGxlV29yayhsYW5lcykge1xuICByZXR1cm4gKGxhbmVzICYgTm9uSWRsZUxhbmVzKSAhPT0gTm9MYW5lcztcbn1cbmZ1bmN0aW9uIGluY2x1ZGVzT25seVJldHJpZXMobGFuZXMpIHtcbiAgcmV0dXJuIChsYW5lcyAmIFJldHJ5TGFuZXMpID09PSBsYW5lcztcbn1cbmZ1bmN0aW9uIGluY2x1ZGVzT25seVRyYW5zaXRpb25zKGxhbmVzKSB7XG4gIHJldHVybiAobGFuZXMgJiBUcmFuc2l0aW9uTGFuZXMpID09PSBsYW5lcztcbn1cbmZ1bmN0aW9uIGluY2x1ZGVzQmxvY2tpbmdMYW5lKHJvb3QsIGxhbmVzKSB7XG5cbiAgdmFyIFN5bmNEZWZhdWx0TGFuZXMgPSBJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25MYW5lIHwgSW5wdXRDb250aW51b3VzTGFuZSB8IERlZmF1bHRIeWRyYXRpb25MYW5lIHwgRGVmYXVsdExhbmU7XG4gIHJldHVybiAobGFuZXMgJiBTeW5jRGVmYXVsdExhbmVzKSAhPT0gTm9MYW5lcztcbn1cbmZ1bmN0aW9uIGluY2x1ZGVzRXhwaXJlZExhbmUocm9vdCwgbGFuZXMpIHtcbiAgLy8gVGhpcyBpcyBhIHNlcGFyYXRlIGNoZWNrIGZyb20gaW5jbHVkZXNCbG9ja2luZ0xhbmUgYmVjYXVzZSBhIGxhbmUgY2FuXG4gIC8vIGV4cGlyZSBhZnRlciBhIHJlbmRlciBoYXMgYWxyZWFkeSBzdGFydGVkLlxuICByZXR1cm4gKGxhbmVzICYgcm9vdC5leHBpcmVkTGFuZXMpICE9PSBOb0xhbmVzO1xufVxuZnVuY3Rpb24gaXNUcmFuc2l0aW9uTGFuZShsYW5lKSB7XG4gIHJldHVybiAobGFuZSAmIFRyYW5zaXRpb25MYW5lcykgIT09IDA7XG59XG5mdW5jdGlvbiBjbGFpbU5leHRUcmFuc2l0aW9uTGFuZSgpIHtcbiAgLy8gQ3ljbGUgdGhyb3VnaCB0aGUgbGFuZXMsIGFzc2lnbmluZyBlYWNoIG5ldyB0cmFuc2l0aW9uIHRvIHRoZSBuZXh0IGxhbmUuXG4gIC8vIEluIG1vc3QgY2FzZXMsIHRoaXMgbWVhbnMgZXZlcnkgdHJhbnNpdGlvbiBnZXRzIGl0cyBvd24gbGFuZSwgdW50aWwgd2VcbiAgLy8gcnVuIG91dCBvZiBsYW5lcyBhbmQgY3ljbGUgYmFjayB0byB0aGUgYmVnaW5uaW5nLlxuICB2YXIgbGFuZSA9IG5leHRUcmFuc2l0aW9uTGFuZTtcbiAgbmV4dFRyYW5zaXRpb25MYW5lIDw8PSAxO1xuXG4gIGlmICgobmV4dFRyYW5zaXRpb25MYW5lICYgVHJhbnNpdGlvbkxhbmVzKSA9PT0gMCkge1xuICAgIG5leHRUcmFuc2l0aW9uTGFuZSA9IFRyYW5zaXRpb25MYW5lMTtcbiAgfVxuXG4gIHJldHVybiBsYW5lO1xufVxuZnVuY3Rpb24gY2xhaW1OZXh0UmV0cnlMYW5lKCkge1xuICB2YXIgbGFuZSA9IG5leHRSZXRyeUxhbmU7XG4gIG5leHRSZXRyeUxhbmUgPDw9IDE7XG5cbiAgaWYgKChuZXh0UmV0cnlMYW5lICYgUmV0cnlMYW5lcykgPT09IDApIHtcbiAgICBuZXh0UmV0cnlMYW5lID0gUmV0cnlMYW5lMTtcbiAgfVxuXG4gIHJldHVybiBsYW5lO1xufVxuZnVuY3Rpb24gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZShsYW5lcykge1xuICByZXR1cm4gbGFuZXMgJiAtbGFuZXM7XG59XG5mdW5jdGlvbiBwaWNrQXJiaXRyYXJ5TGFuZShsYW5lcykge1xuICAvLyBUaGlzIHdyYXBwZXIgZnVuY3Rpb24gZ2V0cyBpbmxpbmVkLiBPbmx5IGV4aXN0cyBzbyB0byBjb21tdW5pY2F0ZSB0aGF0IGl0XG4gIC8vIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGJpdCBpcyBzZWxlY3RlZDsgeW91IGNhbiBwaWNrIGFueSBiaXQgd2l0aG91dFxuICAvLyBhZmZlY3RpbmcgdGhlIGFsZ29yaXRobXMgd2hlcmUgaXRzIHVzZWQuIEhlcmUgSSdtIHVzaW5nXG4gIC8vIGdldEhpZ2hlc3RQcmlvcml0eUxhbmUgYmVjYXVzZSBpdCByZXF1aXJlcyB0aGUgZmV3ZXN0IG9wZXJhdGlvbnMuXG4gIHJldHVybiBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lKGxhbmVzKTtcbn1cblxuZnVuY3Rpb24gcGlja0FyYml0cmFyeUxhbmVJbmRleChsYW5lcykge1xuICByZXR1cm4gMzEgLSBjbHozMihsYW5lcyk7XG59XG5cbmZ1bmN0aW9uIGxhbmVUb0luZGV4KGxhbmUpIHtcbiAgcmV0dXJuIHBpY2tBcmJpdHJhcnlMYW5lSW5kZXgobGFuZSk7XG59XG5cbmZ1bmN0aW9uIGluY2x1ZGVzU29tZUxhbmUoYSwgYikge1xuICByZXR1cm4gKGEgJiBiKSAhPT0gTm9MYW5lcztcbn1cbmZ1bmN0aW9uIGlzU3Vic2V0T2ZMYW5lcyhzZXQsIHN1YnNldCkge1xuICByZXR1cm4gKHNldCAmIHN1YnNldCkgPT09IHN1YnNldDtcbn1cbmZ1bmN0aW9uIG1lcmdlTGFuZXMoYSwgYikge1xuICByZXR1cm4gYSB8IGI7XG59XG5mdW5jdGlvbiByZW1vdmVMYW5lcyhzZXQsIHN1YnNldCkge1xuICByZXR1cm4gc2V0ICYgfnN1YnNldDtcbn1cbmZ1bmN0aW9uIGludGVyc2VjdExhbmVzKGEsIGIpIHtcbiAgcmV0dXJuIGEgJiBiO1xufSAvLyBTZWVtcyByZWR1bmRhbnQsIGJ1dCBpdCBjaGFuZ2VzIHRoZSB0eXBlIGZyb20gYSBzaW5nbGUgbGFuZSAodXNlZCBmb3Jcbi8vIHVwZGF0ZXMpIHRvIGEgZ3JvdXAgb2YgbGFuZXMgKHVzZWQgZm9yIGZsdXNoaW5nIHdvcmspLlxuXG5mdW5jdGlvbiBsYW5lVG9MYW5lcyhsYW5lKSB7XG4gIHJldHVybiBsYW5lO1xufVxuZnVuY3Rpb24gaGlnaGVyUHJpb3JpdHlMYW5lKGEsIGIpIHtcbiAgLy8gVGhpcyB3b3JrcyBiZWNhdXNlIHRoZSBiaXQgcmFuZ2VzIGRlY3JlYXNlIGluIHByaW9yaXR5IGFzIHlvdSBnbyBsZWZ0LlxuICByZXR1cm4gYSAhPT0gTm9MYW5lICYmIGEgPCBiID8gYSA6IGI7XG59XG5mdW5jdGlvbiBjcmVhdGVMYW5lTWFwKGluaXRpYWwpIHtcbiAgLy8gSW50ZW50aW9uYWxseSBwdXNoaW5nIG9uZSBieSBvbmUuXG4gIC8vIGh0dHBzOi8vdjguZGV2L2Jsb2cvZWxlbWVudHMta2luZHMjYXZvaWQtY3JlYXRpbmctaG9sZXNcbiAgdmFyIGxhbmVNYXAgPSBbXTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IFRvdGFsTGFuZXM7IGkrKykge1xuICAgIGxhbmVNYXAucHVzaChpbml0aWFsKTtcbiAgfVxuXG4gIHJldHVybiBsYW5lTWFwO1xufVxuZnVuY3Rpb24gbWFya1Jvb3RVcGRhdGVkKHJvb3QsIHVwZGF0ZUxhbmUsIGV2ZW50VGltZSkge1xuICByb290LnBlbmRpbmdMYW5lcyB8PSB1cGRhdGVMYW5lOyAvLyBJZiB0aGVyZSBhcmUgYW55IHN1c3BlbmRlZCB0cmFuc2l0aW9ucywgaXQncyBwb3NzaWJsZSB0aGlzIG5ldyB1cGRhdGVcbiAgLy8gY291bGQgdW5ibG9jayB0aGVtLiBDbGVhciB0aGUgc3VzcGVuZGVkIGxhbmVzIHNvIHRoYXQgd2UgY2FuIHRyeSByZW5kZXJpbmdcbiAgLy8gdGhlbSBhZ2Fpbi5cbiAgLy9cbiAgLy8gVE9ETzogV2UgcmVhbGx5IG9ubHkgbmVlZCB0byB1bnN1c3BlbmQgb25seSBsYW5lcyB0aGF0IGFyZSBpbiB0aGVcbiAgLy8gYHN1YnRyZWVMYW5lc2Agb2YgdGhlIHVwZGF0ZWQgZmliZXIsIG9yIHRoZSB1cGRhdGUgbGFuZXMgb2YgdGhlIHJldHVyblxuICAvLyBwYXRoLiBUaGlzIHdvdWxkIGV4Y2x1ZGUgc3VzcGVuZGVkIHVwZGF0ZXMgaW4gYW4gdW5yZWxhdGVkIHNpYmxpbmcgdHJlZSxcbiAgLy8gc2luY2UgdGhlcmUncyBubyB3YXkgZm9yIHRoaXMgdXBkYXRlIHRvIHVuYmxvY2sgaXQuXG4gIC8vXG4gIC8vIFdlIGRvbid0IGRvIHRoaXMgaWYgdGhlIGluY29taW5nIHVwZGF0ZSBpcyBpZGxlLCBiZWNhdXNlIHdlIG5ldmVyIHByb2Nlc3NcbiAgLy8gaWRsZSB1cGRhdGVzIHVudGlsIGFmdGVyIGFsbCB0aGUgcmVndWxhciB1cGRhdGVzIGhhdmUgZmluaXNoZWQ7IHRoZXJlJ3Mgbm9cbiAgLy8gd2F5IGl0IGNvdWxkIHVuYmxvY2sgYSB0cmFuc2l0aW9uLlxuXG4gIGlmICh1cGRhdGVMYW5lICE9PSBJZGxlTGFuZSkge1xuICAgIHJvb3Quc3VzcGVuZGVkTGFuZXMgPSBOb0xhbmVzO1xuICAgIHJvb3QucGluZ2VkTGFuZXMgPSBOb0xhbmVzO1xuICB9XG5cbiAgdmFyIGV2ZW50VGltZXMgPSByb290LmV2ZW50VGltZXM7XG4gIHZhciBpbmRleCA9IGxhbmVUb0luZGV4KHVwZGF0ZUxhbmUpOyAvLyBXZSBjYW4gYWx3YXlzIG92ZXJ3cml0ZSBhbiBleGlzdGluZyB0aW1lc3RhbXAgYmVjYXVzZSB3ZSBwcmVmZXIgdGhlIG1vc3RcbiAgLy8gcmVjZW50IGV2ZW50LCBhbmQgd2UgYXNzdW1lIHRpbWUgaXMgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nLlxuXG4gIGV2ZW50VGltZXNbaW5kZXhdID0gZXZlbnRUaW1lO1xufVxuZnVuY3Rpb24gbWFya1Jvb3RTdXNwZW5kZWQocm9vdCwgc3VzcGVuZGVkTGFuZXMpIHtcbiAgcm9vdC5zdXNwZW5kZWRMYW5lcyB8PSBzdXNwZW5kZWRMYW5lcztcbiAgcm9vdC5waW5nZWRMYW5lcyAmPSB+c3VzcGVuZGVkTGFuZXM7IC8vIFRoZSBzdXNwZW5kZWQgbGFuZXMgYXJlIG5vIGxvbmdlciBDUFUtYm91bmQuIENsZWFyIHRoZWlyIGV4cGlyYXRpb24gdGltZXMuXG5cbiAgdmFyIGV4cGlyYXRpb25UaW1lcyA9IHJvb3QuZXhwaXJhdGlvblRpbWVzO1xuICB2YXIgbGFuZXMgPSBzdXNwZW5kZWRMYW5lcztcblxuICB3aGlsZSAobGFuZXMgPiAwKSB7XG4gICAgdmFyIGluZGV4ID0gcGlja0FyYml0cmFyeUxhbmVJbmRleChsYW5lcyk7XG4gICAgdmFyIGxhbmUgPSAxIDw8IGluZGV4O1xuICAgIGV4cGlyYXRpb25UaW1lc1tpbmRleF0gPSBOb1RpbWVzdGFtcDtcbiAgICBsYW5lcyAmPSB+bGFuZTtcbiAgfVxufVxuZnVuY3Rpb24gbWFya1Jvb3RQaW5nZWQocm9vdCwgcGluZ2VkTGFuZXMsIGV2ZW50VGltZSkge1xuICByb290LnBpbmdlZExhbmVzIHw9IHJvb3Quc3VzcGVuZGVkTGFuZXMgJiBwaW5nZWRMYW5lcztcbn1cbmZ1bmN0aW9uIG1hcmtSb290RmluaXNoZWQocm9vdCwgcmVtYWluaW5nTGFuZXMpIHtcbiAgdmFyIG5vTG9uZ2VyUGVuZGluZ0xhbmVzID0gcm9vdC5wZW5kaW5nTGFuZXMgJiB+cmVtYWluaW5nTGFuZXM7XG4gIHJvb3QucGVuZGluZ0xhbmVzID0gcmVtYWluaW5nTGFuZXM7IC8vIExldCdzIHRyeSBldmVyeXRoaW5nIGFnYWluXG5cbiAgcm9vdC5zdXNwZW5kZWRMYW5lcyA9IDA7XG4gIHJvb3QucGluZ2VkTGFuZXMgPSAwO1xuICByb290LmV4cGlyZWRMYW5lcyAmPSByZW1haW5pbmdMYW5lcztcbiAgcm9vdC5tdXRhYmxlUmVhZExhbmVzICY9IHJlbWFpbmluZ0xhbmVzO1xuICByb290LmVudGFuZ2xlZExhbmVzICY9IHJlbWFpbmluZ0xhbmVzO1xuICB2YXIgZW50YW5nbGVtZW50cyA9IHJvb3QuZW50YW5nbGVtZW50cztcbiAgdmFyIGV2ZW50VGltZXMgPSByb290LmV2ZW50VGltZXM7XG4gIHZhciBleHBpcmF0aW9uVGltZXMgPSByb290LmV4cGlyYXRpb25UaW1lczsgLy8gQ2xlYXIgdGhlIGxhbmVzIHRoYXQgbm8gbG9uZ2VyIGhhdmUgcGVuZGluZyB3b3JrXG5cbiAgdmFyIGxhbmVzID0gbm9Mb25nZXJQZW5kaW5nTGFuZXM7XG5cbiAgd2hpbGUgKGxhbmVzID4gMCkge1xuICAgIHZhciBpbmRleCA9IHBpY2tBcmJpdHJhcnlMYW5lSW5kZXgobGFuZXMpO1xuICAgIHZhciBsYW5lID0gMSA8PCBpbmRleDtcbiAgICBlbnRhbmdsZW1lbnRzW2luZGV4XSA9IE5vTGFuZXM7XG4gICAgZXZlbnRUaW1lc1tpbmRleF0gPSBOb1RpbWVzdGFtcDtcbiAgICBleHBpcmF0aW9uVGltZXNbaW5kZXhdID0gTm9UaW1lc3RhbXA7XG4gICAgbGFuZXMgJj0gfmxhbmU7XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtSb290RW50YW5nbGVkKHJvb3QsIGVudGFuZ2xlZExhbmVzKSB7XG4gIC8vIEluIGFkZGl0aW9uIHRvIGVudGFuZ2xpbmcgZWFjaCBvZiB0aGUgZ2l2ZW4gbGFuZXMgd2l0aCBlYWNoIG90aGVyLCB3ZSBhbHNvXG4gIC8vIGhhdmUgdG8gY29uc2lkZXIgX3RyYW5zaXRpdmVfIGVudGFuZ2xlbWVudHMuIEZvciBlYWNoIGxhbmUgdGhhdCBpcyBhbHJlYWR5XG4gIC8vIGVudGFuZ2xlZCB3aXRoICphbnkqIG9mIHRoZSBnaXZlbiBsYW5lcywgdGhhdCBsYW5lIGlzIG5vdyB0cmFuc2l0aXZlbHlcbiAgLy8gZW50YW5nbGVkIHdpdGggKmFsbCogdGhlIGdpdmVuIGxhbmVzLlxuICAvL1xuICAvLyBUcmFuc2xhdGVkOiBJZiBDIGlzIGVudGFuZ2xlZCB3aXRoIEEsIHRoZW4gZW50YW5nbGluZyBBIHdpdGggQiBhbHNvXG4gIC8vIGVudGFuZ2xlcyBDIHdpdGggQi5cbiAgLy9cbiAgLy8gSWYgdGhpcyBpcyBoYXJkIHRvIGdyYXNwLCBpdCBtaWdodCBoZWxwIHRvIGludGVudGlvbmFsbHkgYnJlYWsgdGhpc1xuICAvLyBmdW5jdGlvbiBhbmQgbG9vayBhdCB0aGUgdGVzdHMgdGhhdCBmYWlsIGluIFJlYWN0VHJhbnNpdGlvbi10ZXN0LmpzLiBUcnlcbiAgLy8gY29tbWVudGluZyBvdXQgb25lIG9mIHRoZSBjb25kaXRpb25zIGJlbG93LlxuICB2YXIgcm9vdEVudGFuZ2xlZExhbmVzID0gcm9vdC5lbnRhbmdsZWRMYW5lcyB8PSBlbnRhbmdsZWRMYW5lcztcbiAgdmFyIGVudGFuZ2xlbWVudHMgPSByb290LmVudGFuZ2xlbWVudHM7XG4gIHZhciBsYW5lcyA9IHJvb3RFbnRhbmdsZWRMYW5lcztcblxuICB3aGlsZSAobGFuZXMpIHtcbiAgICB2YXIgaW5kZXggPSBwaWNrQXJiaXRyYXJ5TGFuZUluZGV4KGxhbmVzKTtcbiAgICB2YXIgbGFuZSA9IDEgPDwgaW5kZXg7XG5cbiAgICBpZiAoIC8vIElzIHRoaXMgb25lIG9mIHRoZSBuZXdseSBlbnRhbmdsZWQgbGFuZXM/XG4gICAgbGFuZSAmIGVudGFuZ2xlZExhbmVzIHwgLy8gSXMgdGhpcyBsYW5lIHRyYW5zaXRpdmVseSBlbnRhbmdsZWQgd2l0aCB0aGUgbmV3bHkgZW50YW5nbGVkIGxhbmVzP1xuICAgIGVudGFuZ2xlbWVudHNbaW5kZXhdICYgZW50YW5nbGVkTGFuZXMpIHtcbiAgICAgIGVudGFuZ2xlbWVudHNbaW5kZXhdIHw9IGVudGFuZ2xlZExhbmVzO1xuICAgIH1cblxuICAgIGxhbmVzICY9IH5sYW5lO1xuICB9XG59XG5mdW5jdGlvbiBnZXRCdW1wZWRMYW5lRm9ySHlkcmF0aW9uKHJvb3QsIHJlbmRlckxhbmVzKSB7XG4gIHZhciByZW5kZXJMYW5lID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZShyZW5kZXJMYW5lcyk7XG4gIHZhciBsYW5lO1xuXG4gIHN3aXRjaCAocmVuZGVyTGFuZSkge1xuICAgIGNhc2UgSW5wdXRDb250aW51b3VzTGFuZTpcbiAgICAgIGxhbmUgPSBJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25MYW5lO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIERlZmF1bHRMYW5lOlxuICAgICAgbGFuZSA9IERlZmF1bHRIeWRyYXRpb25MYW5lO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMjpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMzpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNDpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNjpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNzpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lODpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lOTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTA6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTExOlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUxMjpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTM6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTE0OlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUxNTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTY6XG4gICAgY2FzZSBSZXRyeUxhbmUxOlxuICAgIGNhc2UgUmV0cnlMYW5lMjpcbiAgICBjYXNlIFJldHJ5TGFuZTM6XG4gICAgY2FzZSBSZXRyeUxhbmU0OlxuICAgIGNhc2UgUmV0cnlMYW5lNTpcbiAgICAgIGxhbmUgPSBUcmFuc2l0aW9uSHlkcmF0aW9uTGFuZTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBJZGxlTGFuZTpcbiAgICAgIGxhbmUgPSBJZGxlSHlkcmF0aW9uTGFuZTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIEV2ZXJ5dGhpbmcgZWxzZSBpcyBhbHJlYWR5IGVpdGhlciBhIGh5ZHJhdGlvbiBsYW5lLCBvciBzaG91bGRuJ3RcbiAgICAgIC8vIGJlIHJldHJpZWQgYXQgYSBoeWRyYXRpb24gbGFuZS5cbiAgICAgIGxhbmUgPSBOb0xhbmU7XG4gICAgICBicmVhaztcbiAgfSAvLyBDaGVjayBpZiB0aGUgbGFuZSB3ZSBjaG9zZSBpcyBzdXNwZW5kZWQuIElmIHNvLCB0aGF0IGluZGljYXRlcyB0aGF0IHdlXG4gIC8vIGFscmVhZHkgYXR0ZW1wdGVkIGFuZCBmYWlsZWQgdG8gaHlkcmF0ZSBhdCB0aGF0IGxldmVsLiBBbHNvIGNoZWNrIGlmIHdlJ3JlXG4gIC8vIGFscmVhZHkgcmVuZGVyaW5nIHRoYXQgbGFuZSwgd2hpY2ggaXMgcmFyZSBidXQgY291bGQgaGFwcGVuLlxuXG5cbiAgaWYgKChsYW5lICYgKHJvb3Quc3VzcGVuZGVkTGFuZXMgfCByZW5kZXJMYW5lcykpICE9PSBOb0xhbmUpIHtcbiAgICAvLyBHaXZlIHVwIHRyeWluZyB0byBoeWRyYXRlIGFuZCBmYWxsIGJhY2sgdG8gY2xpZW50IHJlbmRlci5cbiAgICByZXR1cm4gTm9MYW5lO1xuICB9XG5cbiAgcmV0dXJuIGxhbmU7XG59XG5mdW5jdGlvbiBhZGRGaWJlclRvTGFuZXNNYXAocm9vdCwgZmliZXIsIGxhbmVzKSB7XG5cbiAgaWYgKCFpc0RldlRvb2xzUHJlc2VudCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBwZW5kaW5nVXBkYXRlcnNMYW5lTWFwID0gcm9vdC5wZW5kaW5nVXBkYXRlcnNMYW5lTWFwO1xuXG4gIHdoaWxlIChsYW5lcyA+IDApIHtcbiAgICB2YXIgaW5kZXggPSBsYW5lVG9JbmRleChsYW5lcyk7XG4gICAgdmFyIGxhbmUgPSAxIDw8IGluZGV4O1xuICAgIHZhciB1cGRhdGVycyA9IHBlbmRpbmdVcGRhdGVyc0xhbmVNYXBbaW5kZXhdO1xuICAgIHVwZGF0ZXJzLmFkZChmaWJlcik7XG4gICAgbGFuZXMgJj0gfmxhbmU7XG4gIH1cbn1cbmZ1bmN0aW9uIG1vdmVQZW5kaW5nRmliZXJzVG9NZW1vaXplZChyb290LCBsYW5lcykge1xuXG4gIGlmICghaXNEZXZUb29sc1ByZXNlbnQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgcGVuZGluZ1VwZGF0ZXJzTGFuZU1hcCA9IHJvb3QucGVuZGluZ1VwZGF0ZXJzTGFuZU1hcDtcbiAgdmFyIG1lbW9pemVkVXBkYXRlcnMgPSByb290Lm1lbW9pemVkVXBkYXRlcnM7XG5cbiAgd2hpbGUgKGxhbmVzID4gMCkge1xuICAgIHZhciBpbmRleCA9IGxhbmVUb0luZGV4KGxhbmVzKTtcbiAgICB2YXIgbGFuZSA9IDEgPDwgaW5kZXg7XG4gICAgdmFyIHVwZGF0ZXJzID0gcGVuZGluZ1VwZGF0ZXJzTGFuZU1hcFtpbmRleF07XG5cbiAgICBpZiAodXBkYXRlcnMuc2l6ZSA+IDApIHtcbiAgICAgIHVwZGF0ZXJzLmZvckVhY2goZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICAgIHZhciBhbHRlcm5hdGUgPSBmaWJlci5hbHRlcm5hdGU7XG5cbiAgICAgICAgaWYgKGFsdGVybmF0ZSA9PT0gbnVsbCB8fCAhbWVtb2l6ZWRVcGRhdGVycy5oYXMoYWx0ZXJuYXRlKSkge1xuICAgICAgICAgIG1lbW9pemVkVXBkYXRlcnMuYWRkKGZpYmVyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB1cGRhdGVycy5jbGVhcigpO1xuICAgIH1cblxuICAgIGxhbmVzICY9IH5sYW5lO1xuICB9XG59XG5cbnZhciBEaXNjcmV0ZUV2ZW50UHJpb3JpdHkgPSBTeW5jTGFuZTtcbnZhciBDb250aW51b3VzRXZlbnRQcmlvcml0eSA9IElucHV0Q29udGludW91c0xhbmU7XG52YXIgRGVmYXVsdEV2ZW50UHJpb3JpdHkgPSBEZWZhdWx0TGFuZTtcbnZhciBJZGxlRXZlbnRQcmlvcml0eSA9IElkbGVMYW5lO1xudmFyIGN1cnJlbnRVcGRhdGVQcmlvcml0eSA9IE5vTGFuZTtcbmZ1bmN0aW9uIGdldEN1cnJlbnRVcGRhdGVQcmlvcml0eSgpIHtcbiAgcmV0dXJuIGN1cnJlbnRVcGRhdGVQcmlvcml0eTtcbn1cbmZ1bmN0aW9uIHNldEN1cnJlbnRVcGRhdGVQcmlvcml0eShuZXdQcmlvcml0eSkge1xuICBjdXJyZW50VXBkYXRlUHJpb3JpdHkgPSBuZXdQcmlvcml0eTtcbn1cbmZ1bmN0aW9uIHJ1bldpdGhQcmlvcml0eShwcmlvcml0eSwgZm4pIHtcbiAgdmFyIHByZXZpb3VzUHJpb3JpdHkgPSBjdXJyZW50VXBkYXRlUHJpb3JpdHk7XG5cbiAgdHJ5IHtcbiAgICBjdXJyZW50VXBkYXRlUHJpb3JpdHkgPSBwcmlvcml0eTtcbiAgICByZXR1cm4gZm4oKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBjdXJyZW50VXBkYXRlUHJpb3JpdHkgPSBwcmV2aW91c1ByaW9yaXR5O1xuICB9XG59XG5mdW5jdGlvbiBoaWdoZXJFdmVudFByaW9yaXR5KGEsIGIpIHtcbiAgcmV0dXJuIGEgIT09IDAgJiYgYSA8IGIgPyBhIDogYjtcbn1cbmZ1bmN0aW9uIGxvd2VyRXZlbnRQcmlvcml0eShhLCBiKSB7XG4gIHJldHVybiBhID09PSAwIHx8IGEgPiBiID8gYSA6IGI7XG59XG5mdW5jdGlvbiBpc0hpZ2hlckV2ZW50UHJpb3JpdHkoYSwgYikge1xuICByZXR1cm4gYSAhPT0gMCAmJiBhIDwgYjtcbn1cbmZ1bmN0aW9uIGxhbmVzVG9FdmVudFByaW9yaXR5KGxhbmVzKSB7XG4gIHZhciBsYW5lID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZShsYW5lcyk7XG5cbiAgaWYgKCFpc0hpZ2hlckV2ZW50UHJpb3JpdHkoRGlzY3JldGVFdmVudFByaW9yaXR5LCBsYW5lKSkge1xuICAgIHJldHVybiBEaXNjcmV0ZUV2ZW50UHJpb3JpdHk7XG4gIH1cblxuICBpZiAoIWlzSGlnaGVyRXZlbnRQcmlvcml0eShDb250aW51b3VzRXZlbnRQcmlvcml0eSwgbGFuZSkpIHtcbiAgICByZXR1cm4gQ29udGludW91c0V2ZW50UHJpb3JpdHk7XG4gIH1cblxuICBpZiAoaW5jbHVkZXNOb25JZGxlV29yayhsYW5lKSkge1xuICAgIHJldHVybiBEZWZhdWx0RXZlbnRQcmlvcml0eTtcbiAgfVxuXG4gIHJldHVybiBJZGxlRXZlbnRQcmlvcml0eTtcbn1cblxuLy8gVGhpcyBpcyBpbXBvcnRlZCBieSB0aGUgZXZlbnQgcmVwbGF5aW5nIGltcGxlbWVudGF0aW9uIGluIFJlYWN0IERPTS4gSXQnc1xuLy8gaW4gYSBzZXBhcmF0ZSBmaWxlIHRvIGJyZWFrIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSBiZXR3ZWVuIHRoZSByZW5kZXJlciBhbmRcbi8vIHRoZSByZWNvbmNpbGVyLlxuZnVuY3Rpb24gaXNSb290RGVoeWRyYXRlZChyb290KSB7XG4gIHZhciBjdXJyZW50U3RhdGUgPSByb290LmN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgcmV0dXJuIGN1cnJlbnRTdGF0ZS5pc0RlaHlkcmF0ZWQ7XG59XG5cbnZhciBfYXR0ZW1wdFN5bmNocm9ub3VzSHlkcmF0aW9uO1xuXG5mdW5jdGlvbiBzZXRBdHRlbXB0U3luY2hyb25vdXNIeWRyYXRpb24oZm4pIHtcbiAgX2F0dGVtcHRTeW5jaHJvbm91c0h5ZHJhdGlvbiA9IGZuO1xufVxuZnVuY3Rpb24gYXR0ZW1wdFN5bmNocm9ub3VzSHlkcmF0aW9uKGZpYmVyKSB7XG4gIF9hdHRlbXB0U3luY2hyb25vdXNIeWRyYXRpb24oZmliZXIpO1xufVxudmFyIGF0dGVtcHRDb250aW51b3VzSHlkcmF0aW9uO1xuZnVuY3Rpb24gc2V0QXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24oZm4pIHtcbiAgYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24gPSBmbjtcbn1cbnZhciBhdHRlbXB0SHlkcmF0aW9uQXRDdXJyZW50UHJpb3JpdHk7XG5mdW5jdGlvbiBzZXRBdHRlbXB0SHlkcmF0aW9uQXRDdXJyZW50UHJpb3JpdHkoZm4pIHtcbiAgYXR0ZW1wdEh5ZHJhdGlvbkF0Q3VycmVudFByaW9yaXR5ID0gZm47XG59XG52YXIgZ2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5JDE7XG5mdW5jdGlvbiBzZXRHZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkoZm4pIHtcbiAgZ2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5JDEgPSBmbjtcbn1cbnZhciBhdHRlbXB0SHlkcmF0aW9uQXRQcmlvcml0eTtcbmZ1bmN0aW9uIHNldEF0dGVtcHRIeWRyYXRpb25BdFByaW9yaXR5KGZuKSB7XG4gIGF0dGVtcHRIeWRyYXRpb25BdFByaW9yaXR5ID0gZm47XG59IC8vIFRPRE86IFVwZ3JhZGUgdGhpcyBkZWZpbml0aW9uIG9uY2Ugd2UncmUgb24gYSBuZXdlciB2ZXJzaW9uIG9mIEZsb3cgdGhhdFxuLy8gaGFzIHRoaXMgZGVmaW5pdGlvbiBidWlsdC1pbi5cblxudmFyIGhhc1NjaGVkdWxlZFJlcGxheUF0dGVtcHQgPSBmYWxzZTsgLy8gVGhlIHF1ZXVlIG9mIGRpc2NyZXRlIGV2ZW50cyB0byBiZSByZXBsYXllZC5cblxudmFyIHF1ZXVlZERpc2NyZXRlRXZlbnRzID0gW107IC8vIEluZGljYXRlcyBpZiBhbnkgY29udGludW91cyBldmVudCB0YXJnZXRzIGFyZSBub24tbnVsbCBmb3IgZWFybHkgYmFpbG91dC5cbi8vIGlmIHRoZSBsYXN0IHRhcmdldCB3YXMgZGVoeWRyYXRlZC5cblxudmFyIHF1ZXVlZEZvY3VzID0gbnVsbDtcbnZhciBxdWV1ZWREcmFnID0gbnVsbDtcbnZhciBxdWV1ZWRNb3VzZSA9IG51bGw7IC8vIEZvciBwb2ludGVyIGV2ZW50cyB0aGVyZSBjYW4gYmUgb25lIGxhdGVzdCBldmVudCBwZXIgcG9pbnRlcklkLlxuXG52YXIgcXVldWVkUG9pbnRlcnMgPSBuZXcgTWFwKCk7XG52YXIgcXVldWVkUG9pbnRlckNhcHR1cmVzID0gbmV3IE1hcCgpOyAvLyBXZSBjb3VsZCBjb25zaWRlciByZXBsYXlpbmcgc2VsZWN0aW9uY2hhbmdlIGFuZCB0b3VjaG1vdmVzIHRvby5cblxudmFyIHF1ZXVlZEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0cyA9IFtdO1xudmFyIHN5bmNocm9ub3VzbHlIeWRyYXRlZEV2ZW50cyA9IFsnbW91c2Vkb3duJywgJ21vdXNldXAnLCAndG91Y2hjYW5jZWwnLCAndG91Y2hlbmQnLCAndG91Y2hzdGFydCcsICdhdXhjbGljaycsICdkYmxjbGljaycsICdwb2ludGVyY2FuY2VsJywgJ3BvaW50ZXJkb3duJywgJ3BvaW50ZXJ1cCcsICdkcmFnZW5kJywgJ2RyYWdzdGFydCcsICdkcm9wJywgJ2NvbXBvc2l0aW9uZW5kJywgJ2NvbXBvc2l0aW9uc3RhcnQnLCAna2V5ZG93bicsICdrZXlwcmVzcycsICdrZXl1cCcsICdpbnB1dCcsICd0ZXh0SW5wdXQnLCAvLyBJbnRlbnRpb25hbGx5IGNhbWVsQ2FzZVxuJ2NvcHknLCAnY3V0JywgJ3Bhc3RlJywgJ2NsaWNrJywgJ2NoYW5nZScsICdjb250ZXh0bWVudScsICdyZXNldCcsICdzdWJtaXQnXTtcbmZ1bmN0aW9uIGlzRGlzY3JldGVFdmVudFRoYXRSZXF1aXJlc0h5ZHJhdGlvbihldmVudFR5cGUpIHtcbiAgcmV0dXJuIHN5bmNocm9ub3VzbHlIeWRyYXRlZEV2ZW50cy5pbmRleE9mKGV2ZW50VHlwZSkgPiAtMTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlUXVldWVkUmVwbGF5YWJsZUV2ZW50KGJsb2NrZWRPbiwgZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIG5hdGl2ZUV2ZW50KSB7XG4gIHJldHVybiB7XG4gICAgYmxvY2tlZE9uOiBibG9ja2VkT24sXG4gICAgZG9tRXZlbnROYW1lOiBkb21FdmVudE5hbWUsXG4gICAgZXZlbnRTeXN0ZW1GbGFnczogZXZlbnRTeXN0ZW1GbGFncyxcbiAgICBuYXRpdmVFdmVudDogbmF0aXZlRXZlbnQsXG4gICAgdGFyZ2V0Q29udGFpbmVyczogW3RhcmdldENvbnRhaW5lcl1cbiAgfTtcbn0gLy8gUmVzZXRzIHRoZSByZXBsYXlpbmcgZm9yIHRoaXMgdHlwZSBvZiBjb250aW51b3VzIGV2ZW50IHRvIG5vIGV2ZW50LlxuXG5cbmZ1bmN0aW9uIGNsZWFySWZDb250aW51b3VzRXZlbnQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkge1xuICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgIGNhc2UgJ2ZvY3VzaW4nOlxuICAgIGNhc2UgJ2ZvY3Vzb3V0JzpcbiAgICAgIHF1ZXVlZEZvY3VzID0gbnVsbDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZHJhZ2VudGVyJzpcbiAgICBjYXNlICdkcmFnbGVhdmUnOlxuICAgICAgcXVldWVkRHJhZyA9IG51bGw7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ21vdXNlb3Zlcic6XG4gICAgY2FzZSAnbW91c2VvdXQnOlxuICAgICAgcXVldWVkTW91c2UgPSBudWxsO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdwb2ludGVyb3Zlcic6XG4gICAgY2FzZSAncG9pbnRlcm91dCc6XG4gICAgICB7XG4gICAgICAgIHZhciBwb2ludGVySWQgPSBuYXRpdmVFdmVudC5wb2ludGVySWQ7XG4gICAgICAgIHF1ZXVlZFBvaW50ZXJzLmRlbGV0ZShwb2ludGVySWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgJ2dvdHBvaW50ZXJjYXB0dXJlJzpcbiAgICBjYXNlICdsb3N0cG9pbnRlcmNhcHR1cmUnOlxuICAgICAge1xuICAgICAgICB2YXIgX3BvaW50ZXJJZCA9IG5hdGl2ZUV2ZW50LnBvaW50ZXJJZDtcbiAgICAgICAgcXVldWVkUG9pbnRlckNhcHR1cmVzLmRlbGV0ZShfcG9pbnRlcklkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudChleGlzdGluZ1F1ZXVlZEV2ZW50LCBibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICBpZiAoZXhpc3RpbmdRdWV1ZWRFdmVudCA9PT0gbnVsbCB8fCBleGlzdGluZ1F1ZXVlZEV2ZW50Lm5hdGl2ZUV2ZW50ICE9PSBuYXRpdmVFdmVudCkge1xuICAgIHZhciBxdWV1ZWRFdmVudCA9IGNyZWF0ZVF1ZXVlZFJlcGxheWFibGVFdmVudChibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCk7XG5cbiAgICBpZiAoYmxvY2tlZE9uICE9PSBudWxsKSB7XG4gICAgICB2YXIgX2ZpYmVyID0gZ2V0SW5zdGFuY2VGcm9tTm9kZShibG9ja2VkT24pO1xuXG4gICAgICBpZiAoX2ZpYmVyICE9PSBudWxsKSB7XG4gICAgICAgIC8vIEF0dGVtcHQgdG8gaW5jcmVhc2UgdGhlIHByaW9yaXR5IG9mIHRoaXMgdGFyZ2V0LlxuICAgICAgICBhdHRlbXB0Q29udGludW91c0h5ZHJhdGlvbihfZmliZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBxdWV1ZWRFdmVudDtcbiAgfSAvLyBJZiB3ZSBoYXZlIGFscmVhZHkgcXVldWVkIHRoaXMgZXhhY3QgZXZlbnQsIHRoZW4gaXQncyBiZWNhdXNlXG4gIC8vIHRoZSBkaWZmZXJlbnQgZXZlbnQgc3lzdGVtcyBoYXZlIGRpZmZlcmVudCBET00gZXZlbnQgbGlzdGVuZXJzLlxuICAvLyBXZSBjYW4gYWNjdW11bGF0ZSB0aGUgZmxhZ3MsIGFuZCB0aGUgdGFyZ2V0Q29udGFpbmVycywgYW5kXG4gIC8vIHN0b3JlIGEgc2luZ2xlIGV2ZW50IHRvIGJlIHJlcGxheWVkLlxuXG5cbiAgZXhpc3RpbmdRdWV1ZWRFdmVudC5ldmVudFN5c3RlbUZsYWdzIHw9IGV2ZW50U3lzdGVtRmxhZ3M7XG4gIHZhciB0YXJnZXRDb250YWluZXJzID0gZXhpc3RpbmdRdWV1ZWRFdmVudC50YXJnZXRDb250YWluZXJzO1xuXG4gIGlmICh0YXJnZXRDb250YWluZXIgIT09IG51bGwgJiYgdGFyZ2V0Q29udGFpbmVycy5pbmRleE9mKHRhcmdldENvbnRhaW5lcikgPT09IC0xKSB7XG4gICAgdGFyZ2V0Q29udGFpbmVycy5wdXNoKHRhcmdldENvbnRhaW5lcik7XG4gIH1cblxuICByZXR1cm4gZXhpc3RpbmdRdWV1ZWRFdmVudDtcbn1cblxuZnVuY3Rpb24gcXVldWVJZkNvbnRpbnVvdXNFdmVudChibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICAvLyBUaGVzZSBzZXQgcmVsYXRlZFRhcmdldCB0byBudWxsIGJlY2F1c2UgdGhlIHJlcGxheWVkIGV2ZW50IHdpbGwgYmUgdHJlYXRlZCBhcyBpZiB3ZVxuICAvLyBtb3ZlZCBmcm9tIG91dHNpZGUgdGhlIHdpbmRvdyAobm8gdGFyZ2V0KSBvbnRvIHRoZSB0YXJnZXQgb25jZSBpdCBoeWRyYXRlcy5cbiAgLy8gSW5zdGVhZCBvZiBtdXRhdGluZyB3ZSBjb3VsZCBjbG9uZSB0aGUgZXZlbnQuXG4gIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7XG4gICAgY2FzZSAnZm9jdXNpbic6XG4gICAgICB7XG4gICAgICAgIHZhciBmb2N1c0V2ZW50ID0gbmF0aXZlRXZlbnQ7XG4gICAgICAgIHF1ZXVlZEZvY3VzID0gYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudChxdWV1ZWRGb2N1cywgYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgZm9jdXNFdmVudCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgY2FzZSAnZHJhZ2VudGVyJzpcbiAgICAgIHtcbiAgICAgICAgdmFyIGRyYWdFdmVudCA9IG5hdGl2ZUV2ZW50O1xuICAgICAgICBxdWV1ZWREcmFnID0gYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudChxdWV1ZWREcmFnLCBibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBkcmFnRXZlbnQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgIGNhc2UgJ21vdXNlb3Zlcic6XG4gICAgICB7XG4gICAgICAgIHZhciBtb3VzZUV2ZW50ID0gbmF0aXZlRXZlbnQ7XG4gICAgICAgIHF1ZXVlZE1vdXNlID0gYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudChxdWV1ZWRNb3VzZSwgYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbW91c2VFdmVudCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgY2FzZSAncG9pbnRlcm92ZXInOlxuICAgICAge1xuICAgICAgICB2YXIgcG9pbnRlckV2ZW50ID0gbmF0aXZlRXZlbnQ7XG4gICAgICAgIHZhciBwb2ludGVySWQgPSBwb2ludGVyRXZlbnQucG9pbnRlcklkO1xuICAgICAgICBxdWV1ZWRQb2ludGVycy5zZXQocG9pbnRlcklkLCBhY2N1bXVsYXRlT3JDcmVhdGVDb250aW51b3VzUXVldWVkUmVwbGF5YWJsZUV2ZW50KHF1ZXVlZFBvaW50ZXJzLmdldChwb2ludGVySWQpIHx8IG51bGwsIGJsb2NrZWRPbiwgZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIHBvaW50ZXJFdmVudCkpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgIGNhc2UgJ2dvdHBvaW50ZXJjYXB0dXJlJzpcbiAgICAgIHtcbiAgICAgICAgdmFyIF9wb2ludGVyRXZlbnQgPSBuYXRpdmVFdmVudDtcbiAgICAgICAgdmFyIF9wb2ludGVySWQyID0gX3BvaW50ZXJFdmVudC5wb2ludGVySWQ7XG4gICAgICAgIHF1ZXVlZFBvaW50ZXJDYXB0dXJlcy5zZXQoX3BvaW50ZXJJZDIsIGFjY3VtdWxhdGVPckNyZWF0ZUNvbnRpbnVvdXNRdWV1ZWRSZXBsYXlhYmxlRXZlbnQocXVldWVkUG9pbnRlckNhcHR1cmVzLmdldChfcG9pbnRlcklkMikgfHwgbnVsbCwgYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgX3BvaW50ZXJFdmVudCkpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn0gLy8gQ2hlY2sgaWYgdGhpcyB0YXJnZXQgaXMgdW5ibG9ja2VkLiBSZXR1cm5zIHRydWUgaWYgaXQncyB1bmJsb2NrZWQuXG5cbmZ1bmN0aW9uIGF0dGVtcHRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldChxdWV1ZWRUYXJnZXQpIHtcbiAgLy8gVE9ETzogVGhpcyBmdW5jdGlvbiBzaGFyZXMgYSBsb3Qgb2YgbG9naWMgd2l0aCBmaW5kSW5zdGFuY2VCbG9ja2luZ0V2ZW50LlxuICAvLyBUcnkgdG8gdW5pZnkgdGhlbS4gSXQncyBhIGJpdCB0cmlja3kgc2luY2UgaXQgd291bGQgcmVxdWlyZSB0d28gcmV0dXJuXG4gIC8vIHZhbHVlcy5cbiAgdmFyIHRhcmdldEluc3QgPSBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZShxdWV1ZWRUYXJnZXQudGFyZ2V0KTtcblxuICBpZiAodGFyZ2V0SW5zdCAhPT0gbnVsbCkge1xuICAgIHZhciBuZWFyZXN0TW91bnRlZCA9IGdldE5lYXJlc3RNb3VudGVkRmliZXIodGFyZ2V0SW5zdCk7XG5cbiAgICBpZiAobmVhcmVzdE1vdW50ZWQgIT09IG51bGwpIHtcbiAgICAgIHZhciB0YWcgPSBuZWFyZXN0TW91bnRlZC50YWc7XG5cbiAgICAgIGlmICh0YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50KSB7XG4gICAgICAgIHZhciBpbnN0YW5jZSA9IGdldFN1c3BlbnNlSW5zdGFuY2VGcm9tRmliZXIobmVhcmVzdE1vdW50ZWQpO1xuXG4gICAgICAgIGlmIChpbnN0YW5jZSAhPT0gbnVsbCkge1xuICAgICAgICAgIC8vIFdlJ3JlIGJsb2NrZWQgb24gaHlkcmF0aW5nIHRoaXMgYm91bmRhcnkuXG4gICAgICAgICAgLy8gSW5jcmVhc2UgaXRzIHByaW9yaXR5LlxuICAgICAgICAgIHF1ZXVlZFRhcmdldC5ibG9ja2VkT24gPSBpbnN0YW5jZTtcbiAgICAgICAgICBhdHRlbXB0SHlkcmF0aW9uQXRQcmlvcml0eShxdWV1ZWRUYXJnZXQucHJpb3JpdHksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGF0dGVtcHRIeWRyYXRpb25BdEN1cnJlbnRQcmlvcml0eShuZWFyZXN0TW91bnRlZCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRhZyA9PT0gSG9zdFJvb3QpIHtcbiAgICAgICAgdmFyIHJvb3QgPSBuZWFyZXN0TW91bnRlZC5zdGF0ZU5vZGU7XG5cbiAgICAgICAgaWYgKGlzUm9vdERlaHlkcmF0ZWQocm9vdCkpIHtcbiAgICAgICAgICBxdWV1ZWRUYXJnZXQuYmxvY2tlZE9uID0gZ2V0Q29udGFpbmVyRnJvbUZpYmVyKG5lYXJlc3RNb3VudGVkKTsgLy8gV2UgZG9uJ3QgY3VycmVudGx5IGhhdmUgYSB3YXkgdG8gaW5jcmVhc2UgdGhlIHByaW9yaXR5IG9mXG4gICAgICAgICAgLy8gYSByb290IG90aGVyIHRoYW4gc3luYy5cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHF1ZXVlZFRhcmdldC5ibG9ja2VkT24gPSBudWxsO1xufVxuXG5mdW5jdGlvbiBxdWV1ZUV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0KHRhcmdldCkge1xuICB7XG4gICAgLy8gVE9ETzogVGhpcyB3aWxsIHJlYWQgdGhlIHByaW9yaXR5IGlmIGl0J3MgZGlzcGF0Y2hlZCBieSB0aGUgUmVhY3RcbiAgICAvLyBldmVudCBzeXN0ZW0gYnV0IG5vdCBuYXRpdmUgZXZlbnRzLiBTaG91bGQgcmVhZCB3aW5kb3cuZXZlbnQudHlwZSwgbGlrZVxuICAgIC8vIHdlIGRvIGZvciB1cGRhdGVzIChnZXRDdXJyZW50RXZlbnRQcmlvcml0eSkuXG4gICAgdmFyIHVwZGF0ZVByaW9yaXR5ID0gZ2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5JDEoKTtcbiAgICB2YXIgcXVldWVkVGFyZ2V0ID0ge1xuICAgICAgYmxvY2tlZE9uOiBudWxsLFxuICAgICAgdGFyZ2V0OiB0YXJnZXQsXG4gICAgICBwcmlvcml0eTogdXBkYXRlUHJpb3JpdHlcbiAgICB9O1xuICAgIHZhciBpID0gMDtcblxuICAgIGZvciAoOyBpIDwgcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAvLyBTdG9wIG9uY2Ugd2UgaGl0IHRoZSBmaXJzdCB0YXJnZXQgd2l0aCBsb3dlciBwcmlvcml0eSB0aGFuXG4gICAgICBpZiAoIWlzSGlnaGVyRXZlbnRQcmlvcml0eSh1cGRhdGVQcmlvcml0eSwgcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzW2ldLnByaW9yaXR5KSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMuc3BsaWNlKGksIDAsIHF1ZXVlZFRhcmdldCk7XG5cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgYXR0ZW1wdEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0KHF1ZXVlZFRhcmdldCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGF0dGVtcHRSZXBsYXlDb250aW51b3VzUXVldWVkRXZlbnQocXVldWVkRXZlbnQpIHtcbiAgaWYgKHF1ZXVlZEV2ZW50LmJsb2NrZWRPbiAhPT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciB0YXJnZXRDb250YWluZXJzID0gcXVldWVkRXZlbnQudGFyZ2V0Q29udGFpbmVycztcblxuICB3aGlsZSAodGFyZ2V0Q29udGFpbmVycy5sZW5ndGggPiAwKSB7XG4gICAgdmFyIHRhcmdldENvbnRhaW5lciA9IHRhcmdldENvbnRhaW5lcnNbMF07XG4gICAgdmFyIG5leHRCbG9ja2VkT24gPSBmaW5kSW5zdGFuY2VCbG9ja2luZ0V2ZW50KHF1ZXVlZEV2ZW50LmRvbUV2ZW50TmFtZSwgcXVldWVkRXZlbnQuZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBxdWV1ZWRFdmVudC5uYXRpdmVFdmVudCk7XG5cbiAgICBpZiAobmV4dEJsb2NrZWRPbiA9PT0gbnVsbCkge1xuICAgICAgdmFyIG5hdGl2ZUV2ZW50ID0gcXVldWVkRXZlbnQubmF0aXZlRXZlbnQ7XG4gICAgICB2YXIgbmF0aXZlRXZlbnRDbG9uZSA9IG5ldyBuYXRpdmVFdmVudC5jb25zdHJ1Y3RvcihuYXRpdmVFdmVudC50eXBlLCBuYXRpdmVFdmVudCk7XG4gICAgICBzZXRSZXBsYXlpbmdFdmVudChuYXRpdmVFdmVudENsb25lKTtcbiAgICAgIG5hdGl2ZUV2ZW50LnRhcmdldC5kaXNwYXRjaEV2ZW50KG5hdGl2ZUV2ZW50Q2xvbmUpO1xuICAgICAgcmVzZXRSZXBsYXlpbmdFdmVudCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSdyZSBzdGlsbCBibG9ja2VkLiBUcnkgYWdhaW4gbGF0ZXIuXG4gICAgICB2YXIgX2ZpYmVyMiA9IGdldEluc3RhbmNlRnJvbU5vZGUobmV4dEJsb2NrZWRPbik7XG5cbiAgICAgIGlmIChfZmliZXIyICE9PSBudWxsKSB7XG4gICAgICAgIGF0dGVtcHRDb250aW51b3VzSHlkcmF0aW9uKF9maWJlcjIpO1xuICAgICAgfVxuXG4gICAgICBxdWV1ZWRFdmVudC5ibG9ja2VkT24gPSBuZXh0QmxvY2tlZE9uO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gLy8gVGhpcyB0YXJnZXQgY29udGFpbmVyIHdhcyBzdWNjZXNzZnVsbHkgZGlzcGF0Y2hlZC4gVHJ5IHRoZSBuZXh0LlxuXG5cbiAgICB0YXJnZXRDb250YWluZXJzLnNoaWZ0KCk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudEluTWFwKHF1ZXVlZEV2ZW50LCBrZXksIG1hcCkge1xuICBpZiAoYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudChxdWV1ZWRFdmVudCkpIHtcbiAgICBtYXAuZGVsZXRlKGtleSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVwbGF5VW5ibG9ja2VkRXZlbnRzKCkge1xuICBoYXNTY2hlZHVsZWRSZXBsYXlBdHRlbXB0ID0gZmFsc2U7IC8vIE5leHQgcmVwbGF5IGFueSBjb250aW51b3VzIGV2ZW50cy5cblxuICBpZiAocXVldWVkRm9jdXMgIT09IG51bGwgJiYgYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudChxdWV1ZWRGb2N1cykpIHtcbiAgICBxdWV1ZWRGb2N1cyA9IG51bGw7XG4gIH1cblxuICBpZiAocXVldWVkRHJhZyAhPT0gbnVsbCAmJiBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZERyYWcpKSB7XG4gICAgcXVldWVkRHJhZyA9IG51bGw7XG4gIH1cblxuICBpZiAocXVldWVkTW91c2UgIT09IG51bGwgJiYgYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudChxdWV1ZWRNb3VzZSkpIHtcbiAgICBxdWV1ZWRNb3VzZSA9IG51bGw7XG4gIH1cblxuICBxdWV1ZWRQb2ludGVycy5mb3JFYWNoKGF0dGVtcHRSZXBsYXlDb250aW51b3VzUXVldWVkRXZlbnRJbk1hcCk7XG4gIHF1ZXVlZFBvaW50ZXJDYXB0dXJlcy5mb3JFYWNoKGF0dGVtcHRSZXBsYXlDb250aW51b3VzUXVldWVkRXZlbnRJbk1hcCk7XG59XG5cbmZ1bmN0aW9uIHNjaGVkdWxlQ2FsbGJhY2tJZlVuYmxvY2tlZChxdWV1ZWRFdmVudCwgdW5ibG9ja2VkKSB7XG4gIGlmIChxdWV1ZWRFdmVudC5ibG9ja2VkT24gPT09IHVuYmxvY2tlZCkge1xuICAgIHF1ZXVlZEV2ZW50LmJsb2NrZWRPbiA9IG51bGw7XG5cbiAgICBpZiAoIWhhc1NjaGVkdWxlZFJlcGxheUF0dGVtcHQpIHtcbiAgICAgIGhhc1NjaGVkdWxlZFJlcGxheUF0dGVtcHQgPSB0cnVlOyAvLyBTY2hlZHVsZSBhIGNhbGxiYWNrIHRvIGF0dGVtcHQgcmVwbGF5aW5nIGFzIG1hbnkgZXZlbnRzIGFzIGFyZVxuICAgICAgLy8gbm93IHVuYmxvY2tlZC4gVGhpcyBmaXJzdCBtaWdodCBub3QgYWN0dWFsbHkgYmUgdW5ibG9ja2VkIHlldC5cbiAgICAgIC8vIFdlIGNvdWxkIGNoZWNrIGl0IGVhcmx5IHRvIGF2b2lkIHNjaGVkdWxpbmcgYW4gdW5uZWNlc3NhcnkgY2FsbGJhY2suXG5cbiAgICAgIFNjaGVkdWxlci51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKFNjaGVkdWxlci51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSwgcmVwbGF5VW5ibG9ja2VkRXZlbnRzKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmV0cnlJZkJsb2NrZWRPbih1bmJsb2NrZWQpIHtcbiAgLy8gTWFyayBhbnl0aGluZyB0aGF0IHdhcyBibG9ja2VkIG9uIHRoaXMgYXMgbm8gbG9uZ2VyIGJsb2NrZWRcbiAgLy8gYW5kIGVsaWdpYmxlIGZvciBhIHJlcGxheS5cbiAgaWYgKHF1ZXVlZERpc2NyZXRlRXZlbnRzLmxlbmd0aCA+IDApIHtcbiAgICBzY2hlZHVsZUNhbGxiYWNrSWZVbmJsb2NrZWQocXVldWVkRGlzY3JldGVFdmVudHNbMF0sIHVuYmxvY2tlZCk7IC8vIFRoaXMgaXMgYSBleHBvbmVudGlhbCBzZWFyY2ggZm9yIGVhY2ggYm91bmRhcnkgdGhhdCBjb21taXRzLiBJIHRoaW5rIGl0J3NcbiAgICAvLyB3b3J0aCBpdCBiZWNhdXNlIHdlIGV4cGVjdCB2ZXJ5IGZldyBkaXNjcmV0ZSBldmVudHMgdG8gcXVldWUgdXAgYW5kIG9uY2VcbiAgICAvLyB3ZSBhcmUgYWN0dWFsbHkgZnVsbHkgdW5ibG9ja2VkIGl0IHdpbGwgYmUgZmFzdCB0byByZXBsYXkgdGhlbS5cblxuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgcXVldWVkRGlzY3JldGVFdmVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBxdWV1ZWRFdmVudCA9IHF1ZXVlZERpc2NyZXRlRXZlbnRzW2ldO1xuXG4gICAgICBpZiAocXVldWVkRXZlbnQuYmxvY2tlZE9uID09PSB1bmJsb2NrZWQpIHtcbiAgICAgICAgcXVldWVkRXZlbnQuYmxvY2tlZE9uID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAocXVldWVkRm9jdXMgIT09IG51bGwpIHtcbiAgICBzY2hlZHVsZUNhbGxiYWNrSWZVbmJsb2NrZWQocXVldWVkRm9jdXMsIHVuYmxvY2tlZCk7XG4gIH1cblxuICBpZiAocXVldWVkRHJhZyAhPT0gbnVsbCkge1xuICAgIHNjaGVkdWxlQ2FsbGJhY2tJZlVuYmxvY2tlZChxdWV1ZWREcmFnLCB1bmJsb2NrZWQpO1xuICB9XG5cbiAgaWYgKHF1ZXVlZE1vdXNlICE9PSBudWxsKSB7XG4gICAgc2NoZWR1bGVDYWxsYmFja0lmVW5ibG9ja2VkKHF1ZXVlZE1vdXNlLCB1bmJsb2NrZWQpO1xuICB9XG5cbiAgdmFyIHVuYmxvY2sgPSBmdW5jdGlvbiAocXVldWVkRXZlbnQpIHtcbiAgICByZXR1cm4gc2NoZWR1bGVDYWxsYmFja0lmVW5ibG9ja2VkKHF1ZXVlZEV2ZW50LCB1bmJsb2NrZWQpO1xuICB9O1xuXG4gIHF1ZXVlZFBvaW50ZXJzLmZvckVhY2godW5ibG9jayk7XG4gIHF1ZXVlZFBvaW50ZXJDYXB0dXJlcy5mb3JFYWNoKHVuYmxvY2spO1xuXG4gIGZvciAodmFyIF9pID0gMDsgX2kgPCBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgdmFyIHF1ZXVlZFRhcmdldCA9IHF1ZXVlZEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0c1tfaV07XG5cbiAgICBpZiAocXVldWVkVGFyZ2V0LmJsb2NrZWRPbiA9PT0gdW5ibG9ja2VkKSB7XG4gICAgICBxdWV1ZWRUYXJnZXQuYmxvY2tlZE9uID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICB3aGlsZSAocXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzLmxlbmd0aCA+IDApIHtcbiAgICB2YXIgbmV4dEV4cGxpY2l0VGFyZ2V0ID0gcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzWzBdO1xuXG4gICAgaWYgKG5leHRFeHBsaWNpdFRhcmdldC5ibG9ja2VkT24gIT09IG51bGwpIHtcbiAgICAgIC8vIFdlJ3JlIHN0aWxsIGJsb2NrZWQuXG4gICAgICBicmVhaztcbiAgICB9IGVsc2Uge1xuICAgICAgYXR0ZW1wdEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0KG5leHRFeHBsaWNpdFRhcmdldCk7XG5cbiAgICAgIGlmIChuZXh0RXhwbGljaXRUYXJnZXQuYmxvY2tlZE9uID09PSBudWxsKSB7XG4gICAgICAgIC8vIFdlJ3JlIHVuYmxvY2tlZC5cbiAgICAgICAgcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzLnNoaWZ0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnOyAvLyBUT0RPOiBjYW4gd2Ugc3RvcCBleHBvcnRpbmcgdGhlc2U/XG5mdW5jdGlvbiBjcmVhdGVFdmVudExpc3RlbmVyV3JhcHBlcldpdGhQcmlvcml0eSh0YXJnZXRDb250YWluZXIsIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncykge1xuICB2YXIgZXZlbnRQcmlvcml0eSA9IGdldEV2ZW50UHJpb3JpdHkoZG9tRXZlbnROYW1lKTtcbiAgdmFyIGxpc3RlbmVyV3JhcHBlcjtcblxuICBzd2l0Y2ggKGV2ZW50UHJpb3JpdHkpIHtcbiAgICBjYXNlIERpc2NyZXRlRXZlbnRQcmlvcml0eTpcbiAgICAgIGxpc3RlbmVyV3JhcHBlciA9IGRpc3BhdGNoRGlzY3JldGVFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBDb250aW51b3VzRXZlbnRQcmlvcml0eTpcbiAgICAgIGxpc3RlbmVyV3JhcHBlciA9IGRpc3BhdGNoQ29udGludW91c0V2ZW50O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIERlZmF1bHRFdmVudFByaW9yaXR5OlxuICAgIGRlZmF1bHQ6XG4gICAgICBsaXN0ZW5lcldyYXBwZXIgPSBkaXNwYXRjaEV2ZW50O1xuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gbGlzdGVuZXJXcmFwcGVyLmJpbmQobnVsbCwgZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIpO1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaERpc2NyZXRlRXZlbnQoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCBjb250YWluZXIsIG5hdGl2ZUV2ZW50KSB7XG4gIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gZ2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KCk7XG4gIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb247XG4gIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb24gPSBudWxsO1xuXG4gIHRyeSB7XG4gICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KERpc2NyZXRlRXZlbnRQcmlvcml0eSk7XG4gICAgZGlzcGF0Y2hFdmVudChkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIGNvbnRhaW5lciwgbmF0aXZlRXZlbnQpO1xuICB9IGZpbmFsbHkge1xuICAgIHNldEN1cnJlbnRVcGRhdGVQcmlvcml0eShwcmV2aW91c1ByaW9yaXR5KTtcbiAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uID0gcHJldlRyYW5zaXRpb247XG4gIH1cbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hDb250aW51b3VzRXZlbnQoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCBjb250YWluZXIsIG5hdGl2ZUV2ZW50KSB7XG4gIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gZ2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KCk7XG4gIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb247XG4gIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb24gPSBudWxsO1xuXG4gIHRyeSB7XG4gICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KENvbnRpbnVvdXNFdmVudFByaW9yaXR5KTtcbiAgICBkaXNwYXRjaEV2ZW50KGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgY29udGFpbmVyLCBuYXRpdmVFdmVudCk7XG4gIH0gZmluYWxseSB7XG4gICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KHByZXZpb3VzUHJpb3JpdHkpO1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb24gPSBwcmV2VHJhbnNpdGlvbjtcbiAgfVxufVxuXG5mdW5jdGlvbiBkaXNwYXRjaEV2ZW50KGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICB2YXIgYmxvY2tlZE9uID0gZmluZEluc3RhbmNlQmxvY2tpbmdFdmVudChkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbmF0aXZlRXZlbnQpO1xuXG4gIGlmIChibG9ja2VkT24gPT09IG51bGwpIHtcbiAgICBkaXNwYXRjaEV2ZW50Rm9yUGx1Z2luRXZlbnRTeXN0ZW0oZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCBuYXRpdmVFdmVudCwgcmV0dXJuX3RhcmdldEluc3QsIHRhcmdldENvbnRhaW5lcik7XG4gICAgY2xlYXJJZkNvbnRpbnVvdXNFdmVudChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAocXVldWVJZkNvbnRpbnVvdXNFdmVudChibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCkpIHtcbiAgICBuYXRpdmVFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICByZXR1cm47XG4gIH0gLy8gV2UgbmVlZCB0byBjbGVhciBvbmx5IGlmIHdlIGRpZG4ndCBxdWV1ZSBiZWNhdXNlXG4gIC8vIHF1ZXVlaW5nIGlzIGFjY3VtdWxhdGl2ZS5cblxuXG4gIGNsZWFySWZDb250aW51b3VzRXZlbnQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCk7XG5cbiAgaWYgKGV2ZW50U3lzdGVtRmxhZ3MgJiBJU19DQVBUVVJFX1BIQVNFICYmIGlzRGlzY3JldGVFdmVudFRoYXRSZXF1aXJlc0h5ZHJhdGlvbihkb21FdmVudE5hbWUpKSB7XG4gICAgd2hpbGUgKGJsb2NrZWRPbiAhPT0gbnVsbCkge1xuICAgICAgdmFyIGZpYmVyID0gZ2V0SW5zdGFuY2VGcm9tTm9kZShibG9ja2VkT24pO1xuXG4gICAgICBpZiAoZmliZXIgIT09IG51bGwpIHtcbiAgICAgICAgYXR0ZW1wdFN5bmNocm9ub3VzSHlkcmF0aW9uKGZpYmVyKTtcbiAgICAgIH1cblxuICAgICAgdmFyIG5leHRCbG9ja2VkT24gPSBmaW5kSW5zdGFuY2VCbG9ja2luZ0V2ZW50KGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCk7XG5cbiAgICAgIGlmIChuZXh0QmxvY2tlZE9uID09PSBudWxsKSB7XG4gICAgICAgIGRpc3BhdGNoRXZlbnRGb3JQbHVnaW5FdmVudFN5c3RlbShkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIG5hdGl2ZUV2ZW50LCByZXR1cm5fdGFyZ2V0SW5zdCwgdGFyZ2V0Q29udGFpbmVyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5leHRCbG9ja2VkT24gPT09IGJsb2NrZWRPbikge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgYmxvY2tlZE9uID0gbmV4dEJsb2NrZWRPbjtcbiAgICB9XG5cbiAgICBpZiAoYmxvY2tlZE9uICE9PSBudWxsKSB7XG4gICAgICBuYXRpdmVFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH0gLy8gVGhpcyBpcyBub3QgcmVwbGF5YWJsZSBzbyB3ZSdsbCBpbnZva2UgaXQgYnV0IHdpdGhvdXQgYSB0YXJnZXQsXG4gIC8vIGluIGNhc2UgdGhlIGV2ZW50IHN5c3RlbSBuZWVkcyB0byB0cmFjZSBpdC5cblxuXG4gIGRpc3BhdGNoRXZlbnRGb3JQbHVnaW5FdmVudFN5c3RlbShkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIG5hdGl2ZUV2ZW50LCBudWxsLCB0YXJnZXRDb250YWluZXIpO1xufVxuXG52YXIgcmV0dXJuX3RhcmdldEluc3QgPSBudWxsOyAvLyBSZXR1cm5zIGEgU3VzcGVuc2VJbnN0YW5jZSBvciBDb250YWluZXIgaWYgaXQncyBibG9ja2VkLlxuLy8gVGhlIHJldHVybl90YXJnZXRJbnN0IGZpZWxkIGFib3ZlIGlzIGNvbmNlcHR1YWxseSBwYXJ0IG9mIHRoZSByZXR1cm4gdmFsdWUuXG5cbmZ1bmN0aW9uIGZpbmRJbnN0YW5jZUJsb2NraW5nRXZlbnQoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIG5hdGl2ZUV2ZW50KSB7XG4gIC8vIFRPRE86IFdhcm4gaWYgX2VuYWJsZWQgaXMgZmFsc2UuXG4gIHJldHVybl90YXJnZXRJbnN0ID0gbnVsbDtcbiAgdmFyIG5hdGl2ZUV2ZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQobmF0aXZlRXZlbnQpO1xuICB2YXIgdGFyZ2V0SW5zdCA9IGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKG5hdGl2ZUV2ZW50VGFyZ2V0KTtcblxuICBpZiAodGFyZ2V0SW5zdCAhPT0gbnVsbCkge1xuICAgIHZhciBuZWFyZXN0TW91bnRlZCA9IGdldE5lYXJlc3RNb3VudGVkRmliZXIodGFyZ2V0SW5zdCk7XG5cbiAgICBpZiAobmVhcmVzdE1vdW50ZWQgPT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgdHJlZSBoYXMgYmVlbiB1bm1vdW50ZWQgYWxyZWFkeS4gRGlzcGF0Y2ggd2l0aG91dCBhIHRhcmdldC5cbiAgICAgIHRhcmdldEluc3QgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgdGFnID0gbmVhcmVzdE1vdW50ZWQudGFnO1xuXG4gICAgICBpZiAodGFnID09PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgICAgICB2YXIgaW5zdGFuY2UgPSBnZXRTdXNwZW5zZUluc3RhbmNlRnJvbUZpYmVyKG5lYXJlc3RNb3VudGVkKTtcblxuICAgICAgICBpZiAoaW5zdGFuY2UgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBRdWV1ZSB0aGUgZXZlbnQgdG8gYmUgcmVwbGF5ZWQgbGF0ZXIuIEFib3J0IGRpc3BhdGNoaW5nIHNpbmNlIHdlXG4gICAgICAgICAgLy8gZG9uJ3Qgd2FudCB0aGlzIGV2ZW50IGRpc3BhdGNoZWQgdHdpY2UgdGhyb3VnaCB0aGUgZXZlbnQgc3lzdGVtLlxuICAgICAgICAgIC8vIFRPRE86IElmIHRoaXMgaXMgdGhlIGZpcnN0IGRpc2NyZXRlIGV2ZW50IGluIHRoZSBxdWV1ZS4gU2NoZWR1bGUgYW4gaW5jcmVhc2VkXG4gICAgICAgICAgLy8gcHJpb3JpdHkgZm9yIHRoaXMgYm91bmRhcnkuXG4gICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICB9IC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiwgc29tZXRoaW5nIHdlbnQgd3JvbmcgYnV0IHRvIGF2b2lkIGJsb2NraW5nXG4gICAgICAgIC8vIHRoZSB3aG9sZSBzeXN0ZW0sIGRpc3BhdGNoIHRoZSBldmVudCB3aXRob3V0IGEgdGFyZ2V0LlxuICAgICAgICAvLyBUT0RPOiBXYXJuLlxuXG5cbiAgICAgICAgdGFyZ2V0SW5zdCA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKHRhZyA9PT0gSG9zdFJvb3QpIHtcbiAgICAgICAgdmFyIHJvb3QgPSBuZWFyZXN0TW91bnRlZC5zdGF0ZU5vZGU7XG5cbiAgICAgICAgaWYgKGlzUm9vdERlaHlkcmF0ZWQocm9vdCkpIHtcbiAgICAgICAgICAvLyBJZiB0aGlzIGhhcHBlbnMgZHVyaW5nIGEgcmVwbGF5IHNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCBpdCBtaWdodCBibG9ja1xuICAgICAgICAgIC8vIHRoZSB3aG9sZSBzeXN0ZW0uXG4gICAgICAgICAgcmV0dXJuIGdldENvbnRhaW5lckZyb21GaWJlcihuZWFyZXN0TW91bnRlZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0YXJnZXRJbnN0ID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAobmVhcmVzdE1vdW50ZWQgIT09IHRhcmdldEluc3QpIHtcbiAgICAgICAgLy8gSWYgd2UgZ2V0IGFuIGV2ZW50IChleDogaW1nIG9ubG9hZCkgYmVmb3JlIGNvbW1pdHRpbmcgdGhhdFxuICAgICAgICAvLyBjb21wb25lbnQncyBtb3VudCwgaWdub3JlIGl0IGZvciBub3cgKHRoYXQgaXMsIHRyZWF0IGl0IGFzIGlmIGl0IHdhcyBhblxuICAgICAgICAvLyBldmVudCBvbiBhIG5vbi1SZWFjdCB0cmVlKS4gV2UgbWlnaHQgYWxzbyBjb25zaWRlciBxdWV1ZWluZyBldmVudHMgYW5kXG4gICAgICAgIC8vIGRpc3BhdGNoaW5nIHRoZW0gYWZ0ZXIgdGhlIG1vdW50LlxuICAgICAgICB0YXJnZXRJbnN0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm5fdGFyZ2V0SW5zdCA9IHRhcmdldEluc3Q7IC8vIFdlJ3JlIG5vdCBibG9ja2VkIG9uIGFueXRoaW5nLlxuXG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gZ2V0RXZlbnRQcmlvcml0eShkb21FdmVudE5hbWUpIHtcbiAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICAvLyBVc2VkIGJ5IFNpbXBsZUV2ZW50UGx1Z2luOlxuICAgIGNhc2UgJ2NhbmNlbCc6XG4gICAgY2FzZSAnY2xpY2snOlxuICAgIGNhc2UgJ2Nsb3NlJzpcbiAgICBjYXNlICdjb250ZXh0bWVudSc6XG4gICAgY2FzZSAnY29weSc6XG4gICAgY2FzZSAnY3V0JzpcbiAgICBjYXNlICdhdXhjbGljayc6XG4gICAgY2FzZSAnZGJsY2xpY2snOlxuICAgIGNhc2UgJ2RyYWdlbmQnOlxuICAgIGNhc2UgJ2RyYWdzdGFydCc6XG4gICAgY2FzZSAnZHJvcCc6XG4gICAgY2FzZSAnZm9jdXNpbic6XG4gICAgY2FzZSAnZm9jdXNvdXQnOlxuICAgIGNhc2UgJ2lucHV0JzpcbiAgICBjYXNlICdpbnZhbGlkJzpcbiAgICBjYXNlICdrZXlkb3duJzpcbiAgICBjYXNlICdrZXlwcmVzcyc6XG4gICAgY2FzZSAna2V5dXAnOlxuICAgIGNhc2UgJ21vdXNlZG93bic6XG4gICAgY2FzZSAnbW91c2V1cCc6XG4gICAgY2FzZSAncGFzdGUnOlxuICAgIGNhc2UgJ3BhdXNlJzpcbiAgICBjYXNlICdwbGF5JzpcbiAgICBjYXNlICdwb2ludGVyY2FuY2VsJzpcbiAgICBjYXNlICdwb2ludGVyZG93bic6XG4gICAgY2FzZSAncG9pbnRlcnVwJzpcbiAgICBjYXNlICdyYXRlY2hhbmdlJzpcbiAgICBjYXNlICdyZXNldCc6XG4gICAgY2FzZSAncmVzaXplJzpcbiAgICBjYXNlICdzZWVrZWQnOlxuICAgIGNhc2UgJ3N1Ym1pdCc6XG4gICAgY2FzZSAndG91Y2hjYW5jZWwnOlxuICAgIGNhc2UgJ3RvdWNoZW5kJzpcbiAgICBjYXNlICd0b3VjaHN0YXJ0JzpcbiAgICBjYXNlICd2b2x1bWVjaGFuZ2UnOiAvLyBVc2VkIGJ5IHBvbHlmaWxsczpcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcblxuICAgIGNhc2UgJ2NoYW5nZSc6XG4gICAgY2FzZSAnc2VsZWN0aW9uY2hhbmdlJzpcbiAgICBjYXNlICd0ZXh0SW5wdXQnOlxuICAgIGNhc2UgJ2NvbXBvc2l0aW9uc3RhcnQnOlxuICAgIGNhc2UgJ2NvbXBvc2l0aW9uZW5kJzpcbiAgICBjYXNlICdjb21wb3NpdGlvbnVwZGF0ZSc6IC8vIE9ubHkgZW5hYmxlQ3JlYXRlRXZlbnRIYW5kbGVBUEk6XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG5cbiAgICBjYXNlICdiZWZvcmVibHVyJzpcbiAgICBjYXNlICdhZnRlcmJsdXInOiAvLyBOb3QgdXNlZCBieSBSZWFjdCBidXQgY291bGQgYmUgYnkgdXNlciBjb2RlOlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuXG4gICAgY2FzZSAnYmVmb3JlaW5wdXQnOlxuICAgIGNhc2UgJ2JsdXInOlxuICAgIGNhc2UgJ2Z1bGxzY3JlZW5jaGFuZ2UnOlxuICAgIGNhc2UgJ2ZvY3VzJzpcbiAgICBjYXNlICdoYXNoY2hhbmdlJzpcbiAgICBjYXNlICdwb3BzdGF0ZSc6XG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICBjYXNlICdzZWxlY3RzdGFydCc6XG4gICAgICByZXR1cm4gRGlzY3JldGVFdmVudFByaW9yaXR5O1xuXG4gICAgY2FzZSAnZHJhZyc6XG4gICAgY2FzZSAnZHJhZ2VudGVyJzpcbiAgICBjYXNlICdkcmFnZXhpdCc6XG4gICAgY2FzZSAnZHJhZ2xlYXZlJzpcbiAgICBjYXNlICdkcmFnb3Zlcic6XG4gICAgY2FzZSAnbW91c2Vtb3ZlJzpcbiAgICBjYXNlICdtb3VzZW91dCc6XG4gICAgY2FzZSAnbW91c2VvdmVyJzpcbiAgICBjYXNlICdwb2ludGVybW92ZSc6XG4gICAgY2FzZSAncG9pbnRlcm91dCc6XG4gICAgY2FzZSAncG9pbnRlcm92ZXInOlxuICAgIGNhc2UgJ3Njcm9sbCc6XG4gICAgY2FzZSAndG9nZ2xlJzpcbiAgICBjYXNlICd0b3VjaG1vdmUnOlxuICAgIGNhc2UgJ3doZWVsJzogLy8gTm90IHVzZWQgYnkgUmVhY3QgYnV0IGNvdWxkIGJlIGJ5IHVzZXIgY29kZTpcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcblxuICAgIGNhc2UgJ21vdXNlZW50ZXInOlxuICAgIGNhc2UgJ21vdXNlbGVhdmUnOlxuICAgIGNhc2UgJ3BvaW50ZXJlbnRlcic6XG4gICAgY2FzZSAncG9pbnRlcmxlYXZlJzpcbiAgICAgIHJldHVybiBDb250aW51b3VzRXZlbnRQcmlvcml0eTtcblxuICAgIGNhc2UgJ21lc3NhZ2UnOlxuICAgICAge1xuICAgICAgICAvLyBXZSBtaWdodCBiZSBpbiB0aGUgU2NoZWR1bGVyIGNhbGxiYWNrLlxuICAgICAgICAvLyBFdmVudHVhbGx5IHRoaXMgbWVjaGFuaXNtIHdpbGwgYmUgcmVwbGFjZWQgYnkgYSBjaGVja1xuICAgICAgICAvLyBvZiB0aGUgY3VycmVudCBwcmlvcml0eSBvbiB0aGUgbmF0aXZlIHNjaGVkdWxlci5cbiAgICAgICAgdmFyIHNjaGVkdWxlclByaW9yaXR5ID0gZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwoKTtcblxuICAgICAgICBzd2l0Y2ggKHNjaGVkdWxlclByaW9yaXR5KSB7XG4gICAgICAgICAgY2FzZSBJbW1lZGlhdGVQcmlvcml0eTpcbiAgICAgICAgICAgIHJldHVybiBEaXNjcmV0ZUV2ZW50UHJpb3JpdHk7XG5cbiAgICAgICAgICBjYXNlIFVzZXJCbG9ja2luZ1ByaW9yaXR5OlxuICAgICAgICAgICAgcmV0dXJuIENvbnRpbnVvdXNFdmVudFByaW9yaXR5O1xuXG4gICAgICAgICAgY2FzZSBOb3JtYWxQcmlvcml0eTpcbiAgICAgICAgICBjYXNlIExvd1ByaW9yaXR5OlxuICAgICAgICAgICAgLy8gVE9ETzogSGFuZGxlIExvd1NjaGVkdWxlclByaW9yaXR5LCBzb21laG93LiBNYXliZSB0aGUgc2FtZSBsYW5lIGFzIGh5ZHJhdGlvbi5cbiAgICAgICAgICAgIHJldHVybiBEZWZhdWx0RXZlbnRQcmlvcml0eTtcblxuICAgICAgICAgIGNhc2UgSWRsZVByaW9yaXR5OlxuICAgICAgICAgICAgcmV0dXJuIElkbGVFdmVudFByaW9yaXR5O1xuXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBEZWZhdWx0RXZlbnRQcmlvcml0eTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBEZWZhdWx0RXZlbnRQcmlvcml0eTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhZGRFdmVudEJ1YmJsZUxpc3RlbmVyKHRhcmdldCwgZXZlbnRUeXBlLCBsaXN0ZW5lcikge1xuICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyLCBmYWxzZSk7XG4gIHJldHVybiBsaXN0ZW5lcjtcbn1cbmZ1bmN0aW9uIGFkZEV2ZW50Q2FwdHVyZUxpc3RlbmVyKHRhcmdldCwgZXZlbnRUeXBlLCBsaXN0ZW5lcikge1xuICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgcmV0dXJuIGxpc3RlbmVyO1xufVxuZnVuY3Rpb24gYWRkRXZlbnRDYXB0dXJlTGlzdGVuZXJXaXRoUGFzc2l2ZUZsYWcodGFyZ2V0LCBldmVudFR5cGUsIGxpc3RlbmVyLCBwYXNzaXZlKSB7XG4gIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHtcbiAgICBjYXB0dXJlOiB0cnVlLFxuICAgIHBhc3NpdmU6IHBhc3NpdmVcbiAgfSk7XG4gIHJldHVybiBsaXN0ZW5lcjtcbn1cbmZ1bmN0aW9uIGFkZEV2ZW50QnViYmxlTGlzdGVuZXJXaXRoUGFzc2l2ZUZsYWcodGFyZ2V0LCBldmVudFR5cGUsIGxpc3RlbmVyLCBwYXNzaXZlKSB7XG4gIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHtcbiAgICBwYXNzaXZlOiBwYXNzaXZlXG4gIH0pO1xuICByZXR1cm4gbGlzdGVuZXI7XG59XG5cbi8qKlxuICogVGhlc2UgdmFyaWFibGVzIHN0b3JlIGluZm9ybWF0aW9uIGFib3V0IHRleHQgY29udGVudCBvZiBhIHRhcmdldCBub2RlLFxuICogYWxsb3dpbmcgY29tcGFyaXNvbiBvZiBjb250ZW50IGJlZm9yZSBhbmQgYWZ0ZXIgYSBnaXZlbiBldmVudC5cbiAqXG4gKiBJZGVudGlmeSB0aGUgbm9kZSB3aGVyZSBzZWxlY3Rpb24gY3VycmVudGx5IGJlZ2lucywgdGhlbiBvYnNlcnZlXG4gKiBib3RoIGl0cyB0ZXh0IGNvbnRlbnQgYW5kIGl0cyBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBET00uIFNpbmNlIHRoZVxuICogYnJvd3NlciBtYXkgbmF0aXZlbHkgcmVwbGFjZSB0aGUgdGFyZ2V0IG5vZGUgZHVyaW5nIGNvbXBvc2l0aW9uLCB3ZSBjYW5cbiAqIHVzZSBpdHMgcG9zaXRpb24gdG8gZmluZCBpdHMgcmVwbGFjZW1lbnQuXG4gKlxuICpcbiAqL1xudmFyIHJvb3QgPSBudWxsO1xudmFyIHN0YXJ0VGV4dCA9IG51bGw7XG52YXIgZmFsbGJhY2tUZXh0ID0gbnVsbDtcbmZ1bmN0aW9uIGluaXRpYWxpemUobmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgcm9vdCA9IG5hdGl2ZUV2ZW50VGFyZ2V0O1xuICBzdGFydFRleHQgPSBnZXRUZXh0KCk7XG4gIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gcmVzZXQoKSB7XG4gIHJvb3QgPSBudWxsO1xuICBzdGFydFRleHQgPSBudWxsO1xuICBmYWxsYmFja1RleHQgPSBudWxsO1xufVxuZnVuY3Rpb24gZ2V0RGF0YSgpIHtcbiAgaWYgKGZhbGxiYWNrVGV4dCkge1xuICAgIHJldHVybiBmYWxsYmFja1RleHQ7XG4gIH1cblxuICB2YXIgc3RhcnQ7XG4gIHZhciBzdGFydFZhbHVlID0gc3RhcnRUZXh0O1xuICB2YXIgc3RhcnRMZW5ndGggPSBzdGFydFZhbHVlLmxlbmd0aDtcbiAgdmFyIGVuZDtcbiAgdmFyIGVuZFZhbHVlID0gZ2V0VGV4dCgpO1xuICB2YXIgZW5kTGVuZ3RoID0gZW5kVmFsdWUubGVuZ3RoO1xuXG4gIGZvciAoc3RhcnQgPSAwOyBzdGFydCA8IHN0YXJ0TGVuZ3RoOyBzdGFydCsrKSB7XG4gICAgaWYgKHN0YXJ0VmFsdWVbc3RhcnRdICE9PSBlbmRWYWx1ZVtzdGFydF0pIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHZhciBtaW5FbmQgPSBzdGFydExlbmd0aCAtIHN0YXJ0O1xuXG4gIGZvciAoZW5kID0gMTsgZW5kIDw9IG1pbkVuZDsgZW5kKyspIHtcbiAgICBpZiAoc3RhcnRWYWx1ZVtzdGFydExlbmd0aCAtIGVuZF0gIT09IGVuZFZhbHVlW2VuZExlbmd0aCAtIGVuZF0pIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHZhciBzbGljZVRhaWwgPSBlbmQgPiAxID8gMSAtIGVuZCA6IHVuZGVmaW5lZDtcbiAgZmFsbGJhY2tUZXh0ID0gZW5kVmFsdWUuc2xpY2Uoc3RhcnQsIHNsaWNlVGFpbCk7XG4gIHJldHVybiBmYWxsYmFja1RleHQ7XG59XG5mdW5jdGlvbiBnZXRUZXh0KCkge1xuICBpZiAoJ3ZhbHVlJyBpbiByb290KSB7XG4gICAgcmV0dXJuIHJvb3QudmFsdWU7XG4gIH1cblxuICByZXR1cm4gcm9vdC50ZXh0Q29udGVudDtcbn1cblxuLyoqXG4gKiBgY2hhckNvZGVgIHJlcHJlc2VudHMgdGhlIGFjdHVhbCBcImNoYXJhY3RlciBjb2RlXCIgYW5kIGlzIHNhZmUgdG8gdXNlIHdpdGhcbiAqIGBTdHJpbmcuZnJvbUNoYXJDb2RlYC4gQXMgc3VjaCwgb25seSBrZXlzIHRoYXQgY29ycmVzcG9uZCB0byBwcmludGFibGVcbiAqIGNoYXJhY3RlcnMgcHJvZHVjZSBhIHZhbGlkIGBjaGFyQ29kZWAsIHRoZSBvbmx5IGV4Y2VwdGlvbiB0byB0aGlzIGlzIEVudGVyLlxuICogVGhlIFRhYi1rZXkgaXMgY29uc2lkZXJlZCBub24tcHJpbnRhYmxlIGFuZCBkb2VzIG5vdCBoYXZlIGEgYGNoYXJDb2RlYCxcbiAqIHByZXN1bWFibHkgYmVjYXVzZSBpdCBkb2VzIG5vdCBwcm9kdWNlIGEgdGFiLWNoYXJhY3RlciBpbiBicm93c2Vycy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IE5vcm1hbGl6ZWQgYGNoYXJDb2RlYCBwcm9wZXJ0eS5cbiAqL1xuZnVuY3Rpb24gZ2V0RXZlbnRDaGFyQ29kZShuYXRpdmVFdmVudCkge1xuICB2YXIgY2hhckNvZGU7XG4gIHZhciBrZXlDb2RlID0gbmF0aXZlRXZlbnQua2V5Q29kZTtcblxuICBpZiAoJ2NoYXJDb2RlJyBpbiBuYXRpdmVFdmVudCkge1xuICAgIGNoYXJDb2RlID0gbmF0aXZlRXZlbnQuY2hhckNvZGU7IC8vIEZGIGRvZXMgbm90IHNldCBgY2hhckNvZGVgIGZvciB0aGUgRW50ZXIta2V5LCBjaGVjayBhZ2FpbnN0IGBrZXlDb2RlYC5cblxuICAgIGlmIChjaGFyQ29kZSA9PT0gMCAmJiBrZXlDb2RlID09PSAxMykge1xuICAgICAgY2hhckNvZGUgPSAxMztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gSUU4IGRvZXMgbm90IGltcGxlbWVudCBgY2hhckNvZGVgLCBidXQgYGtleUNvZGVgIGhhcyB0aGUgY29ycmVjdCB2YWx1ZS5cbiAgICBjaGFyQ29kZSA9IGtleUNvZGU7XG4gIH0gLy8gSUUgYW5kIEVkZ2UgKG9uIFdpbmRvd3MpIGFuZCBDaHJvbWUgLyBTYWZhcmkgKG9uIFdpbmRvd3MgYW5kIExpbnV4KVxuICAvLyByZXBvcnQgRW50ZXIgYXMgY2hhckNvZGUgMTAgd2hlbiBjdHJsIGlzIHByZXNzZWQuXG5cblxuICBpZiAoY2hhckNvZGUgPT09IDEwKSB7XG4gICAgY2hhckNvZGUgPSAxMztcbiAgfSAvLyBTb21lIG5vbi1wcmludGFibGUga2V5cyBhcmUgcmVwb3J0ZWQgaW4gYGNoYXJDb2RlYC9ga2V5Q29kZWAsIGRpc2NhcmQgdGhlbS5cbiAgLy8gTXVzdCBub3QgZGlzY2FyZCB0aGUgKG5vbi0pcHJpbnRhYmxlIEVudGVyLWtleS5cblxuXG4gIGlmIChjaGFyQ29kZSA+PSAzMiB8fCBjaGFyQ29kZSA9PT0gMTMpIHtcbiAgICByZXR1cm4gY2hhckNvZGU7XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuZnVuY3Rpb24gZnVuY3Rpb25UaGF0UmV0dXJuc1RydWUoKSB7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBmdW5jdGlvblRoYXRSZXR1cm5zRmFsc2UoKSB7XG4gIHJldHVybiBmYWxzZTtcbn0gLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGEgZmFjdG9yeSBzbyB0aGF0IHdlIGhhdmUgZGlmZmVyZW50IHJldHVybmVkIGNvbnN0cnVjdG9ycy5cbi8vIElmIHdlIGhhZCBhIHNpbmdsZSBjb25zdHJ1Y3RvciwgaXQgd291bGQgYmUgbWVnYW1vcnBoaWMgYW5kIGVuZ2luZXMgd291bGQgZGVvcHQuXG5cblxuZnVuY3Rpb24gY3JlYXRlU3ludGhldGljRXZlbnQoSW50ZXJmYWNlKSB7XG4gIC8qKlxuICAgKiBTeW50aGV0aWMgZXZlbnRzIGFyZSBkaXNwYXRjaGVkIGJ5IGV2ZW50IHBsdWdpbnMsIHR5cGljYWxseSBpbiByZXNwb25zZSB0byBhXG4gICAqIHRvcC1sZXZlbCBldmVudCBkZWxlZ2F0aW9uIGhhbmRsZXIuXG4gICAqXG4gICAqIFRoZXNlIHN5c3RlbXMgc2hvdWxkIGdlbmVyYWxseSB1c2UgcG9vbGluZyB0byByZWR1Y2UgdGhlIGZyZXF1ZW5jeSBvZiBnYXJiYWdlXG4gICAqIGNvbGxlY3Rpb24uIFRoZSBzeXN0ZW0gc2hvdWxkIGNoZWNrIGBpc1BlcnNpc3RlbnRgIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZVxuICAgKiBldmVudCBzaG91bGQgYmUgcmVsZWFzZWQgaW50byB0aGUgcG9vbCBhZnRlciBiZWluZyBkaXNwYXRjaGVkLiBVc2VycyB0aGF0XG4gICAqIG5lZWQgYSBwZXJzaXN0ZWQgZXZlbnQgc2hvdWxkIGludm9rZSBgcGVyc2lzdGAuXG4gICAqXG4gICAqIFN5bnRoZXRpYyBldmVudHMgKGFuZCBzdWJjbGFzc2VzKSBpbXBsZW1lbnQgdGhlIERPTSBMZXZlbCAzIEV2ZW50cyBBUEkgYnlcbiAgICogbm9ybWFsaXppbmcgYnJvd3NlciBxdWlya3MuIFN1YmNsYXNzZXMgZG8gbm90IG5lY2Vzc2FyaWx5IGhhdmUgdG8gaW1wbGVtZW50IGFcbiAgICogRE9NIGludGVyZmFjZTsgY3VzdG9tIGFwcGxpY2F0aW9uLXNwZWNpZmljIGV2ZW50cyBjYW4gYWxzbyBzdWJjbGFzcyB0aGlzLlxuICAgKi9cbiAgZnVuY3Rpb24gU3ludGhldGljQmFzZUV2ZW50KHJlYWN0TmFtZSwgcmVhY3RFdmVudFR5cGUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICAgIHRoaXMuX3JlYWN0TmFtZSA9IHJlYWN0TmFtZTtcbiAgICB0aGlzLl90YXJnZXRJbnN0ID0gdGFyZ2V0SW5zdDtcbiAgICB0aGlzLnR5cGUgPSByZWFjdEV2ZW50VHlwZTtcbiAgICB0aGlzLm5hdGl2ZUV2ZW50ID0gbmF0aXZlRXZlbnQ7XG4gICAgdGhpcy50YXJnZXQgPSBuYXRpdmVFdmVudFRhcmdldDtcbiAgICB0aGlzLmN1cnJlbnRUYXJnZXQgPSBudWxsO1xuXG4gICAgZm9yICh2YXIgX3Byb3BOYW1lIGluIEludGVyZmFjZSkge1xuICAgICAgaWYgKCFJbnRlcmZhY2UuaGFzT3duUHJvcGVydHkoX3Byb3BOYW1lKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIG5vcm1hbGl6ZSA9IEludGVyZmFjZVtfcHJvcE5hbWVdO1xuXG4gICAgICBpZiAobm9ybWFsaXplKSB7XG4gICAgICAgIHRoaXNbX3Byb3BOYW1lXSA9IG5vcm1hbGl6ZShuYXRpdmVFdmVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzW19wcm9wTmFtZV0gPSBuYXRpdmVFdmVudFtfcHJvcE5hbWVdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBkZWZhdWx0UHJldmVudGVkID0gbmF0aXZlRXZlbnQuZGVmYXVsdFByZXZlbnRlZCAhPSBudWxsID8gbmF0aXZlRXZlbnQuZGVmYXVsdFByZXZlbnRlZCA6IG5hdGl2ZUV2ZW50LnJldHVyblZhbHVlID09PSBmYWxzZTtcblxuICAgIGlmIChkZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IGZ1bmN0aW9uVGhhdFJldHVybnNUcnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IGZ1bmN0aW9uVGhhdFJldHVybnNGYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gZnVuY3Rpb25UaGF0UmV0dXJuc0ZhbHNlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYXNzaWduKFN5bnRoZXRpY0Jhc2VFdmVudC5wcm90b3R5cGUsIHtcbiAgICBwcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5kZWZhdWx0UHJldmVudGVkID0gdHJ1ZTtcbiAgICAgIHZhciBldmVudCA9IHRoaXMubmF0aXZlRXZlbnQ7XG5cbiAgICAgIGlmICghZXZlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXZlbnQucHJldmVudERlZmF1bHQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gJEZsb3dGaXhNZSAtIGZsb3cgaXMgbm90IGF3YXJlIG9mIGB1bmtub3duYCBpbiBJRVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZXZlbnQucmV0dXJuVmFsdWUgIT09ICd1bmtub3duJykge1xuICAgICAgICBldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IGZ1bmN0aW9uVGhhdFJldHVybnNUcnVlO1xuICAgIH0sXG4gICAgc3RvcFByb3BhZ2F0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgZXZlbnQgPSB0aGlzLm5hdGl2ZUV2ZW50O1xuXG4gICAgICBpZiAoIWV2ZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGV2ZW50LnN0b3BQcm9wYWdhdGlvbikge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgLy8gJEZsb3dGaXhNZSAtIGZsb3cgaXMgbm90IGF3YXJlIG9mIGB1bmtub3duYCBpbiBJRVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZXZlbnQuY2FuY2VsQnViYmxlICE9PSAndW5rbm93bicpIHtcbiAgICAgICAgLy8gVGhlIENoYW5nZUV2ZW50UGx1Z2luIHJlZ2lzdGVycyBhIFwicHJvcGVydHljaGFuZ2VcIiBldmVudCBmb3JcbiAgICAgICAgLy8gSUUuIFRoaXMgZXZlbnQgZG9lcyBub3Qgc3VwcG9ydCBidWJibGluZyBvciBjYW5jZWxsaW5nLCBhbmRcbiAgICAgICAgLy8gYW55IHJlZmVyZW5jZXMgdG8gY2FuY2VsQnViYmxlIHRocm93IFwiTWVtYmVyIG5vdCBmb3VuZFwiLiAgQVxuICAgICAgICAvLyB0eXBlb2YgY2hlY2sgb2YgXCJ1bmtub3duXCIgY2lyY3VtdmVudHMgdGhpcyBpc3N1ZSAoYW5kIGlzIGFsc29cbiAgICAgICAgLy8gSUUgc3BlY2lmaWMpLlxuICAgICAgICBldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gZnVuY3Rpb25UaGF0UmV0dXJuc1RydWU7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFdlIHJlbGVhc2UgYWxsIGRpc3BhdGNoZWQgYFN5bnRoZXRpY0V2ZW50YHMgYWZ0ZXIgZWFjaCBldmVudCBsb29wLCBhZGRpbmdcbiAgICAgKiB0aGVtIGJhY2sgaW50byB0aGUgcG9vbC4gVGhpcyBhbGxvd3MgYSB3YXkgdG8gaG9sZCBvbnRvIGEgcmVmZXJlbmNlIHRoYXRcbiAgICAgKiB3b24ndCBiZSBhZGRlZCBiYWNrIGludG8gdGhlIHBvb2wuXG4gICAgICovXG4gICAgcGVyc2lzdDogZnVuY3Rpb24gKCkgey8vIE1vZGVybiBldmVudCBzeXN0ZW0gZG9lc24ndCB1c2UgcG9vbGluZy5cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoaXMgZXZlbnQgc2hvdWxkIGJlIHJlbGVhc2VkIGJhY2sgaW50byB0aGUgcG9vbC5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgdGhpcyBzaG91bGQgbm90IGJlIHJlbGVhc2VkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAgICovXG4gICAgaXNQZXJzaXN0ZW50OiBmdW5jdGlvblRoYXRSZXR1cm5zVHJ1ZVxuICB9KTtcbiAgcmV0dXJuIFN5bnRoZXRpY0Jhc2VFdmVudDtcbn1cbi8qKlxuICogQGludGVyZmFjZSBFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvXG4gKi9cblxuXG52YXIgRXZlbnRJbnRlcmZhY2UgPSB7XG4gIGV2ZW50UGhhc2U6IDAsXG4gIGJ1YmJsZXM6IDAsXG4gIGNhbmNlbGFibGU6IDAsXG4gIHRpbWVTdGFtcDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuIGV2ZW50LnRpbWVTdGFtcCB8fCBEYXRlLm5vdygpO1xuICB9LFxuICBkZWZhdWx0UHJldmVudGVkOiAwLFxuICBpc1RydXN0ZWQ6IDBcbn07XG52YXIgU3ludGhldGljRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChFdmVudEludGVyZmFjZSk7XG5cbnZhciBVSUV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBFdmVudEludGVyZmFjZSwge1xuICB2aWV3OiAwLFxuICBkZXRhaWw6IDBcbn0pO1xuXG52YXIgU3ludGhldGljVUlFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFVJRXZlbnRJbnRlcmZhY2UpO1xudmFyIGxhc3RNb3ZlbWVudFg7XG52YXIgbGFzdE1vdmVtZW50WTtcbnZhciBsYXN0TW91c2VFdmVudDtcblxuZnVuY3Rpb24gdXBkYXRlTW91c2VNb3ZlbWVudFBvbHlmaWxsU3RhdGUoZXZlbnQpIHtcbiAgaWYgKGV2ZW50ICE9PSBsYXN0TW91c2VFdmVudCkge1xuICAgIGlmIChsYXN0TW91c2VFdmVudCAmJiBldmVudC50eXBlID09PSAnbW91c2Vtb3ZlJykge1xuICAgICAgbGFzdE1vdmVtZW50WCA9IGV2ZW50LnNjcmVlblggLSBsYXN0TW91c2VFdmVudC5zY3JlZW5YO1xuICAgICAgbGFzdE1vdmVtZW50WSA9IGV2ZW50LnNjcmVlblkgLSBsYXN0TW91c2VFdmVudC5zY3JlZW5ZO1xuICAgIH0gZWxzZSB7XG4gICAgICBsYXN0TW92ZW1lbnRYID0gMDtcbiAgICAgIGxhc3RNb3ZlbWVudFkgPSAwO1xuICAgIH1cblxuICAgIGxhc3RNb3VzZUV2ZW50ID0gZXZlbnQ7XG4gIH1cbn1cbi8qKlxuICogQGludGVyZmFjZSBNb3VzZUV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xuXG5cbnZhciBNb3VzZUV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBVSUV2ZW50SW50ZXJmYWNlLCB7XG4gIHNjcmVlblg6IDAsXG4gIHNjcmVlblk6IDAsXG4gIGNsaWVudFg6IDAsXG4gIGNsaWVudFk6IDAsXG4gIHBhZ2VYOiAwLFxuICBwYWdlWTogMCxcbiAgY3RybEtleTogMCxcbiAgc2hpZnRLZXk6IDAsXG4gIGFsdEtleTogMCxcbiAgbWV0YUtleTogMCxcbiAgZ2V0TW9kaWZpZXJTdGF0ZTogZ2V0RXZlbnRNb2RpZmllclN0YXRlLFxuICBidXR0b246IDAsXG4gIGJ1dHRvbnM6IDAsXG4gIHJlbGF0ZWRUYXJnZXQ6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIGlmIChldmVudC5yZWxhdGVkVGFyZ2V0ID09PSB1bmRlZmluZWQpIHJldHVybiBldmVudC5mcm9tRWxlbWVudCA9PT0gZXZlbnQuc3JjRWxlbWVudCA/IGV2ZW50LnRvRWxlbWVudCA6IGV2ZW50LmZyb21FbGVtZW50O1xuICAgIHJldHVybiBldmVudC5yZWxhdGVkVGFyZ2V0O1xuICB9LFxuICBtb3ZlbWVudFg6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIGlmICgnbW92ZW1lbnRYJyBpbiBldmVudCkge1xuICAgICAgcmV0dXJuIGV2ZW50Lm1vdmVtZW50WDtcbiAgICB9XG5cbiAgICB1cGRhdGVNb3VzZU1vdmVtZW50UG9seWZpbGxTdGF0ZShldmVudCk7XG4gICAgcmV0dXJuIGxhc3RNb3ZlbWVudFg7XG4gIH0sXG4gIG1vdmVtZW50WTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgaWYgKCdtb3ZlbWVudFknIGluIGV2ZW50KSB7XG4gICAgICByZXR1cm4gZXZlbnQubW92ZW1lbnRZO1xuICAgIH0gLy8gRG9uJ3QgbmVlZCB0byBjYWxsIHVwZGF0ZU1vdXNlTW92ZW1lbnRQb2x5ZmlsbFN0YXRlKCkgaGVyZVxuICAgIC8vIGJlY2F1c2UgaXQncyBndWFyYW50ZWVkIHRvIGhhdmUgYWxyZWFkeSBydW4gd2hlbiBtb3ZlbWVudFhcbiAgICAvLyB3YXMgY29waWVkLlxuXG5cbiAgICByZXR1cm4gbGFzdE1vdmVtZW50WTtcbiAgfVxufSk7XG5cbnZhciBTeW50aGV0aWNNb3VzZUV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoTW91c2VFdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgRHJhZ0V2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xuXG52YXIgRHJhZ0V2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBNb3VzZUV2ZW50SW50ZXJmYWNlLCB7XG4gIGRhdGFUcmFuc2ZlcjogMFxufSk7XG5cbnZhciBTeW50aGV0aWNEcmFnRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChEcmFnRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIEZvY3VzRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzL1xuICovXG5cbnZhciBGb2N1c0V2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBVSUV2ZW50SW50ZXJmYWNlLCB7XG4gIHJlbGF0ZWRUYXJnZXQ6IDBcbn0pO1xuXG52YXIgU3ludGhldGljRm9jdXNFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KEZvY3VzRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jQW5pbWF0aW9uRXZlbnQtaW50ZXJmYWNlXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9BbmltYXRpb25FdmVudFxuICovXG5cbnZhciBBbmltYXRpb25FdmVudEludGVyZmFjZSA9IGFzc2lnbih7fSwgRXZlbnRJbnRlcmZhY2UsIHtcbiAgYW5pbWF0aW9uTmFtZTogMCxcbiAgZWxhcHNlZFRpbWU6IDAsXG4gIHBzZXVkb0VsZW1lbnQ6IDBcbn0pO1xuXG52YXIgU3ludGhldGljQW5pbWF0aW9uRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChBbmltYXRpb25FdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvY2xpcGJvYXJkLWFwaXMvXG4gKi9cblxudmFyIENsaXBib2FyZEV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBFdmVudEludGVyZmFjZSwge1xuICBjbGlwYm9hcmREYXRhOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICByZXR1cm4gJ2NsaXBib2FyZERhdGEnIGluIGV2ZW50ID8gZXZlbnQuY2xpcGJvYXJkRGF0YSA6IHdpbmRvdy5jbGlwYm9hcmREYXRhO1xuICB9XG59KTtcblxudmFyIFN5bnRoZXRpY0NsaXBib2FyZEV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoQ2xpcGJvYXJkRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLWNvbXBvc2l0aW9uZXZlbnRzXG4gKi9cblxudmFyIENvbXBvc2l0aW9uRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7XG4gIGRhdGE6IDBcbn0pO1xuXG52YXIgU3ludGhldGljQ29tcG9zaXRpb25FdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KENvbXBvc2l0aW9uRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMTMxMTA1XG4gKiAgICAgIC8jZXZlbnRzLWlucHV0ZXZlbnRzXG4gKi9cbi8vIEhhcHBlbnMgdG8gc2hhcmUgdGhlIHNhbWUgbGlzdCBmb3Igbm93LlxuXG52YXIgU3ludGhldGljSW5wdXRFdmVudCA9IFN5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnQ7XG4vKipcbiAqIE5vcm1hbGl6YXRpb24gb2YgZGVwcmVjYXRlZCBIVE1MNSBga2V5YCB2YWx1ZXNcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQjS2V5X25hbWVzXG4gKi9cblxudmFyIG5vcm1hbGl6ZUtleSA9IHtcbiAgRXNjOiAnRXNjYXBlJyxcbiAgU3BhY2ViYXI6ICcgJyxcbiAgTGVmdDogJ0Fycm93TGVmdCcsXG4gIFVwOiAnQXJyb3dVcCcsXG4gIFJpZ2h0OiAnQXJyb3dSaWdodCcsXG4gIERvd246ICdBcnJvd0Rvd24nLFxuICBEZWw6ICdEZWxldGUnLFxuICBXaW46ICdPUycsXG4gIE1lbnU6ICdDb250ZXh0TWVudScsXG4gIEFwcHM6ICdDb250ZXh0TWVudScsXG4gIFNjcm9sbDogJ1Njcm9sbExvY2snLFxuICBNb3pQcmludGFibGVLZXk6ICdVbmlkZW50aWZpZWQnXG59O1xuLyoqXG4gKiBUcmFuc2xhdGlvbiBmcm9tIGxlZ2FjeSBga2V5Q29kZWAgdG8gSFRNTDUgYGtleWBcbiAqIE9ubHkgc3BlY2lhbCBrZXlzIHN1cHBvcnRlZCwgYWxsIG90aGVycyBkZXBlbmQgb24ga2V5Ym9hcmQgbGF5b3V0IG9yIGJyb3dzZXJcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQjS2V5X25hbWVzXG4gKi9cblxudmFyIHRyYW5zbGF0ZVRvS2V5ID0ge1xuICAnOCc6ICdCYWNrc3BhY2UnLFxuICAnOSc6ICdUYWInLFxuICAnMTInOiAnQ2xlYXInLFxuICAnMTMnOiAnRW50ZXInLFxuICAnMTYnOiAnU2hpZnQnLFxuICAnMTcnOiAnQ29udHJvbCcsXG4gICcxOCc6ICdBbHQnLFxuICAnMTknOiAnUGF1c2UnLFxuICAnMjAnOiAnQ2Fwc0xvY2snLFxuICAnMjcnOiAnRXNjYXBlJyxcbiAgJzMyJzogJyAnLFxuICAnMzMnOiAnUGFnZVVwJyxcbiAgJzM0JzogJ1BhZ2VEb3duJyxcbiAgJzM1JzogJ0VuZCcsXG4gICczNic6ICdIb21lJyxcbiAgJzM3JzogJ0Fycm93TGVmdCcsXG4gICczOCc6ICdBcnJvd1VwJyxcbiAgJzM5JzogJ0Fycm93UmlnaHQnLFxuICAnNDAnOiAnQXJyb3dEb3duJyxcbiAgJzQ1JzogJ0luc2VydCcsXG4gICc0Nic6ICdEZWxldGUnLFxuICAnMTEyJzogJ0YxJyxcbiAgJzExMyc6ICdGMicsXG4gICcxMTQnOiAnRjMnLFxuICAnMTE1JzogJ0Y0JyxcbiAgJzExNic6ICdGNScsXG4gICcxMTcnOiAnRjYnLFxuICAnMTE4JzogJ0Y3JyxcbiAgJzExOSc6ICdGOCcsXG4gICcxMjAnOiAnRjknLFxuICAnMTIxJzogJ0YxMCcsXG4gICcxMjInOiAnRjExJyxcbiAgJzEyMyc6ICdGMTInLFxuICAnMTQ0JzogJ051bUxvY2snLFxuICAnMTQ1JzogJ1Njcm9sbExvY2snLFxuICAnMjI0JzogJ01ldGEnXG59O1xuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IE5vcm1hbGl6ZWQgYGtleWAgcHJvcGVydHkuXG4gKi9cblxuZnVuY3Rpb24gZ2V0RXZlbnRLZXkobmF0aXZlRXZlbnQpIHtcbiAgaWYgKG5hdGl2ZUV2ZW50LmtleSkge1xuICAgIC8vIE5vcm1hbGl6ZSBpbmNvbnNpc3RlbnQgdmFsdWVzIHJlcG9ydGVkIGJ5IGJyb3dzZXJzIGR1ZSB0b1xuICAgIC8vIGltcGxlbWVudGF0aW9ucyBvZiBhIHdvcmtpbmcgZHJhZnQgc3BlY2lmaWNhdGlvbi5cbiAgICAvLyBGaXJlRm94IGltcGxlbWVudHMgYGtleWAgYnV0IHJldHVybnMgYE1velByaW50YWJsZUtleWAgZm9yIGFsbFxuICAgIC8vIHByaW50YWJsZSBjaGFyYWN0ZXJzIChub3JtYWxpemVkIHRvIGBVbmlkZW50aWZpZWRgKSwgaWdub3JlIGl0LlxuICAgIHZhciBrZXkgPSBub3JtYWxpemVLZXlbbmF0aXZlRXZlbnQua2V5XSB8fCBuYXRpdmVFdmVudC5rZXk7XG5cbiAgICBpZiAoa2V5ICE9PSAnVW5pZGVudGlmaWVkJykge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gIH0gLy8gQnJvd3NlciBkb2VzIG5vdCBpbXBsZW1lbnQgYGtleWAsIHBvbHlmaWxsIGFzIG11Y2ggb2YgaXQgYXMgd2UgY2FuLlxuXG5cbiAgaWYgKG5hdGl2ZUV2ZW50LnR5cGUgPT09ICdrZXlwcmVzcycpIHtcbiAgICB2YXIgY2hhckNvZGUgPSBnZXRFdmVudENoYXJDb2RlKG5hdGl2ZUV2ZW50KTsgLy8gVGhlIGVudGVyLWtleSBpcyB0ZWNobmljYWxseSBib3RoIHByaW50YWJsZSBhbmQgbm9uLXByaW50YWJsZSBhbmQgY2FuXG4gICAgLy8gdGh1cyBiZSBjYXB0dXJlZCBieSBga2V5cHJlc3NgLCBubyBvdGhlciBub24tcHJpbnRhYmxlIGtleSBzaG91bGQuXG5cbiAgICByZXR1cm4gY2hhckNvZGUgPT09IDEzID8gJ0VudGVyJyA6IFN0cmluZy5mcm9tQ2hhckNvZGUoY2hhckNvZGUpO1xuICB9XG5cbiAgaWYgKG5hdGl2ZUV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyB8fCBuYXRpdmVFdmVudC50eXBlID09PSAna2V5dXAnKSB7XG4gICAgLy8gV2hpbGUgdXNlciBrZXlib2FyZCBsYXlvdXQgZGV0ZXJtaW5lcyB0aGUgYWN0dWFsIG1lYW5pbmcgb2YgZWFjaFxuICAgIC8vIGBrZXlDb2RlYCB2YWx1ZSwgYWxtb3N0IGFsbCBmdW5jdGlvbiBrZXlzIGhhdmUgYSB1bml2ZXJzYWwgdmFsdWUuXG4gICAgcmV0dXJuIHRyYW5zbGF0ZVRvS2V5W25hdGl2ZUV2ZW50LmtleUNvZGVdIHx8ICdVbmlkZW50aWZpZWQnO1xuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuLyoqXG4gKiBUcmFuc2xhdGlvbiBmcm9tIG1vZGlmaWVyIGtleSB0byB0aGUgYXNzb2NpYXRlZCBwcm9wZXJ0eSBpbiB0aGUgZXZlbnQuXG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8ja2V5cy1Nb2RpZmllcnNcbiAqL1xuXG5cbnZhciBtb2RpZmllcktleVRvUHJvcCA9IHtcbiAgQWx0OiAnYWx0S2V5JyxcbiAgQ29udHJvbDogJ2N0cmxLZXknLFxuICBNZXRhOiAnbWV0YUtleScsXG4gIFNoaWZ0OiAnc2hpZnRLZXknXG59OyAvLyBPbGRlciBicm93c2VycyAoU2FmYXJpIDw9IDEwLCBpT1MgU2FmYXJpIDw9IDEwLjIpIGRvIG5vdCBzdXBwb3J0XG4vLyBnZXRNb2RpZmllclN0YXRlLiBJZiBnZXRNb2RpZmllclN0YXRlIGlzIG5vdCBzdXBwb3J0ZWQsIHdlIG1hcCBpdCB0byBhIHNldCBvZlxuLy8gbW9kaWZpZXIga2V5cyBleHBvc2VkIGJ5IHRoZSBldmVudC4gSW4gdGhpcyBjYXNlLCBMb2NrLWtleXMgYXJlIG5vdCBzdXBwb3J0ZWQuXG5cbmZ1bmN0aW9uIG1vZGlmaWVyU3RhdGVHZXR0ZXIoa2V5QXJnKSB7XG4gIHZhciBzeW50aGV0aWNFdmVudCA9IHRoaXM7XG4gIHZhciBuYXRpdmVFdmVudCA9IHN5bnRoZXRpY0V2ZW50Lm5hdGl2ZUV2ZW50O1xuXG4gIGlmIChuYXRpdmVFdmVudC5nZXRNb2RpZmllclN0YXRlKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmdldE1vZGlmaWVyU3RhdGUoa2V5QXJnKTtcbiAgfVxuXG4gIHZhciBrZXlQcm9wID0gbW9kaWZpZXJLZXlUb1Byb3Bba2V5QXJnXTtcbiAgcmV0dXJuIGtleVByb3AgPyAhIW5hdGl2ZUV2ZW50W2tleVByb3BdIDogZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldEV2ZW50TW9kaWZpZXJTdGF0ZShuYXRpdmVFdmVudCkge1xuICByZXR1cm4gbW9kaWZpZXJTdGF0ZUdldHRlcjtcbn1cbi8qKlxuICogQGludGVyZmFjZSBLZXlib2FyZEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xuXG5cbnZhciBLZXlib2FyZEV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBVSUV2ZW50SW50ZXJmYWNlLCB7XG4gIGtleTogZ2V0RXZlbnRLZXksXG4gIGNvZGU6IDAsXG4gIGxvY2F0aW9uOiAwLFxuICBjdHJsS2V5OiAwLFxuICBzaGlmdEtleTogMCxcbiAgYWx0S2V5OiAwLFxuICBtZXRhS2V5OiAwLFxuICByZXBlYXQ6IDAsXG4gIGxvY2FsZTogMCxcbiAgZ2V0TW9kaWZpZXJTdGF0ZTogZ2V0RXZlbnRNb2RpZmllclN0YXRlLFxuICAvLyBMZWdhY3kgSW50ZXJmYWNlXG4gIGNoYXJDb2RlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAvLyBgY2hhckNvZGVgIGlzIHRoZSByZXN1bHQgb2YgYSBLZXlQcmVzcyBldmVudCBhbmQgcmVwcmVzZW50cyB0aGUgdmFsdWUgb2ZcbiAgICAvLyB0aGUgYWN0dWFsIHByaW50YWJsZSBjaGFyYWN0ZXIuXG4gICAgLy8gS2V5UHJlc3MgaXMgZGVwcmVjYXRlZCwgYnV0IGl0cyByZXBsYWNlbWVudCBpcyBub3QgeWV0IGZpbmFsIGFuZCBub3RcbiAgICAvLyBpbXBsZW1lbnRlZCBpbiBhbnkgbWFqb3IgYnJvd3Nlci4gT25seSBLZXlQcmVzcyBoYXMgY2hhckNvZGUuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdrZXlwcmVzcycpIHtcbiAgICAgIHJldHVybiBnZXRFdmVudENoYXJDb2RlKGV2ZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfSxcbiAga2V5Q29kZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgLy8gYGtleUNvZGVgIGlzIHRoZSByZXN1bHQgb2YgYSBLZXlEb3duL1VwIGV2ZW50IGFuZCByZXByZXNlbnRzIHRoZSB2YWx1ZSBvZlxuICAgIC8vIHBoeXNpY2FsIGtleWJvYXJkIGtleS5cbiAgICAvLyBUaGUgYWN0dWFsIG1lYW5pbmcgb2YgdGhlIHZhbHVlIGRlcGVuZHMgb24gdGhlIHVzZXJzJyBrZXlib2FyZCBsYXlvdXRcbiAgICAvLyB3aGljaCBjYW5ub3QgYmUgZGV0ZWN0ZWQuIEFzc3VtaW5nIHRoYXQgaXQgaXMgYSBVUyBrZXlib2FyZCBsYXlvdXRcbiAgICAvLyBwcm92aWRlcyBhIHN1cnByaXNpbmdseSBhY2N1cmF0ZSBtYXBwaW5nIGZvciBVUyBhbmQgRXVyb3BlYW4gdXNlcnMuXG4gICAgLy8gRHVlIHRvIHRoaXMsIGl0IGlzIGxlZnQgdG8gdGhlIHVzZXIgdG8gaW1wbGVtZW50IGF0IHRoaXMgdGltZS5cbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nIHx8IGV2ZW50LnR5cGUgPT09ICdrZXl1cCcpIHtcbiAgICAgIHJldHVybiBldmVudC5rZXlDb2RlO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9LFxuICB3aGljaDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgLy8gYHdoaWNoYCBpcyBhbiBhbGlhcyBmb3IgZWl0aGVyIGBrZXlDb2RlYCBvciBgY2hhckNvZGVgIGRlcGVuZGluZyBvbiB0aGVcbiAgICAvLyB0eXBlIG9mIHRoZSBldmVudC5cbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2tleXByZXNzJykge1xuICAgICAgcmV0dXJuIGdldEV2ZW50Q2hhckNvZGUoZXZlbnQpO1xuICAgIH1cblxuICAgIGlmIChldmVudC50eXBlID09PSAna2V5ZG93bicgfHwgZXZlbnQudHlwZSA9PT0gJ2tleXVwJykge1xuICAgICAgcmV0dXJuIGV2ZW50LmtleUNvZGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cbn0pO1xuXG52YXIgU3ludGhldGljS2V5Ym9hcmRFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KEtleWJvYXJkRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIFBvaW50ZXJFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9wb2ludGVyZXZlbnRzL1xuICovXG5cbnZhciBQb2ludGVyRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIE1vdXNlRXZlbnRJbnRlcmZhY2UsIHtcbiAgcG9pbnRlcklkOiAwLFxuICB3aWR0aDogMCxcbiAgaGVpZ2h0OiAwLFxuICBwcmVzc3VyZTogMCxcbiAgdGFuZ2VudGlhbFByZXNzdXJlOiAwLFxuICB0aWx0WDogMCxcbiAgdGlsdFk6IDAsXG4gIHR3aXN0OiAwLFxuICBwb2ludGVyVHlwZTogMCxcbiAgaXNQcmltYXJ5OiAwXG59KTtcblxudmFyIFN5bnRoZXRpY1BvaW50ZXJFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFBvaW50ZXJFdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgVG91Y2hFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi90b3VjaC1ldmVudHMvXG4gKi9cblxudmFyIFRvdWNoRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIFVJRXZlbnRJbnRlcmZhY2UsIHtcbiAgdG91Y2hlczogMCxcbiAgdGFyZ2V0VG91Y2hlczogMCxcbiAgY2hhbmdlZFRvdWNoZXM6IDAsXG4gIGFsdEtleTogMCxcbiAgbWV0YUtleTogMCxcbiAgY3RybEtleTogMCxcbiAgc2hpZnRLZXk6IDAsXG4gIGdldE1vZGlmaWVyU3RhdGU6IGdldEV2ZW50TW9kaWZpZXJTdGF0ZVxufSk7XG5cbnZhciBTeW50aGV0aWNUb3VjaEV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoVG91Y2hFdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOS9XRC1jc3MzLXRyYW5zaXRpb25zLTIwMDkwMzIwLyN0cmFuc2l0aW9uLWV2ZW50cy1cbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1RyYW5zaXRpb25FdmVudFxuICovXG5cbnZhciBUcmFuc2l0aW9uRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7XG4gIHByb3BlcnR5TmFtZTogMCxcbiAgZWxhcHNlZFRpbWU6IDAsXG4gIHBzZXVkb0VsZW1lbnQ6IDBcbn0pO1xuXG52YXIgU3ludGhldGljVHJhbnNpdGlvbkV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoVHJhbnNpdGlvbkV2ZW50SW50ZXJmYWNlKTtcbi8qKlxuICogQGludGVyZmFjZSBXaGVlbEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xuXG52YXIgV2hlZWxFdmVudEludGVyZmFjZSA9IGFzc2lnbih7fSwgTW91c2VFdmVudEludGVyZmFjZSwge1xuICBkZWx0YVg6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHJldHVybiAnZGVsdGFYJyBpbiBldmVudCA/IGV2ZW50LmRlbHRhWCA6IC8vIEZhbGxiYWNrIHRvIGB3aGVlbERlbHRhWGAgZm9yIFdlYmtpdCBhbmQgbm9ybWFsaXplIChyaWdodCBpcyBwb3NpdGl2ZSkuXG4gICAgJ3doZWVsRGVsdGFYJyBpbiBldmVudCA/IC1ldmVudC53aGVlbERlbHRhWCA6IDA7XG4gIH0sXG4gIGRlbHRhWTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuICdkZWx0YVknIGluIGV2ZW50ID8gZXZlbnQuZGVsdGFZIDogLy8gRmFsbGJhY2sgdG8gYHdoZWVsRGVsdGFZYCBmb3IgV2Via2l0IGFuZCBub3JtYWxpemUgKGRvd24gaXMgcG9zaXRpdmUpLlxuICAgICd3aGVlbERlbHRhWScgaW4gZXZlbnQgPyAtZXZlbnQud2hlZWxEZWx0YVkgOiAvLyBGYWxsYmFjayB0byBgd2hlZWxEZWx0YWAgZm9yIElFPDkgYW5kIG5vcm1hbGl6ZSAoZG93biBpcyBwb3NpdGl2ZSkuXG4gICAgJ3doZWVsRGVsdGEnIGluIGV2ZW50ID8gLWV2ZW50LndoZWVsRGVsdGEgOiAwO1xuICB9LFxuICBkZWx0YVo6IDAsXG4gIC8vIEJyb3dzZXJzIHdpdGhvdXQgXCJkZWx0YU1vZGVcIiBpcyByZXBvcnRpbmcgaW4gcmF3IHdoZWVsIGRlbHRhIHdoZXJlIG9uZVxuICAvLyBub3RjaCBvbiB0aGUgc2Nyb2xsIGlzIGFsd2F5cyArLy0gMTIwLCByb3VnaGx5IGVxdWl2YWxlbnQgdG8gcGl4ZWxzLlxuICAvLyBBIGdvb2QgYXBwcm94aW1hdGlvbiBvZiBET01fREVMVEFfTElORSAoMSkgaXMgNSUgb2Ygdmlld3BvcnQgc2l6ZSBvclxuICAvLyB+NDAgcGl4ZWxzLCBmb3IgRE9NX0RFTFRBX1NDUkVFTiAoMikgaXQgaXMgODcuNSUgb2Ygdmlld3BvcnQgc2l6ZS5cbiAgZGVsdGFNb2RlOiAwXG59KTtcblxudmFyIFN5bnRoZXRpY1doZWVsRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChXaGVlbEV2ZW50SW50ZXJmYWNlKTtcblxudmFyIEVORF9LRVlDT0RFUyA9IFs5LCAxMywgMjcsIDMyXTsgLy8gVGFiLCBSZXR1cm4sIEVzYywgU3BhY2VcblxudmFyIFNUQVJUX0tFWUNPREUgPSAyMjk7XG52YXIgY2FuVXNlQ29tcG9zaXRpb25FdmVudCA9IGNhblVzZURPTSAmJiAnQ29tcG9zaXRpb25FdmVudCcgaW4gd2luZG93O1xudmFyIGRvY3VtZW50TW9kZSA9IG51bGw7XG5cbmlmIChjYW5Vc2VET00gJiYgJ2RvY3VtZW50TW9kZScgaW4gZG9jdW1lbnQpIHtcbiAgZG9jdW1lbnRNb2RlID0gZG9jdW1lbnQuZG9jdW1lbnRNb2RlO1xufSAvLyBXZWJraXQgb2ZmZXJzIGEgdmVyeSB1c2VmdWwgYHRleHRJbnB1dGAgZXZlbnQgdGhhdCBjYW4gYmUgdXNlZCB0b1xuLy8gZGlyZWN0bHkgcmVwcmVzZW50IGBiZWZvcmVJbnB1dGAuIFRoZSBJRSBgdGV4dGlucHV0YCBldmVudCBpcyBub3QgYXNcbi8vIHVzZWZ1bCwgc28gd2UgZG9uJ3QgdXNlIGl0LlxuXG5cbnZhciBjYW5Vc2VUZXh0SW5wdXRFdmVudCA9IGNhblVzZURPTSAmJiAnVGV4dEV2ZW50JyBpbiB3aW5kb3cgJiYgIWRvY3VtZW50TW9kZTsgLy8gSW4gSUU5Kywgd2UgaGF2ZSBhY2Nlc3MgdG8gY29tcG9zaXRpb24gZXZlbnRzLCBidXQgdGhlIGRhdGEgc3VwcGxpZWRcbi8vIGJ5IHRoZSBuYXRpdmUgY29tcG9zaXRpb25lbmQgZXZlbnQgbWF5IGJlIGluY29ycmVjdC4gSmFwYW5lc2UgaWRlb2dyYXBoaWNcbi8vIHNwYWNlcywgZm9yIGluc3RhbmNlIChcXHUzMDAwKSBhcmUgbm90IHJlY29yZGVkIGNvcnJlY3RseS5cblxudmFyIHVzZUZhbGxiYWNrQ29tcG9zaXRpb25EYXRhID0gY2FuVXNlRE9NICYmICghY2FuVXNlQ29tcG9zaXRpb25FdmVudCB8fCBkb2N1bWVudE1vZGUgJiYgZG9jdW1lbnRNb2RlID4gOCAmJiBkb2N1bWVudE1vZGUgPD0gMTEpO1xudmFyIFNQQUNFQkFSX0NPREUgPSAzMjtcbnZhciBTUEFDRUJBUl9DSEFSID0gU3RyaW5nLmZyb21DaGFyQ29kZShTUEFDRUJBUl9DT0RFKTtcblxuZnVuY3Rpb24gcmVnaXN0ZXJFdmVudHMoKSB7XG4gIHJlZ2lzdGVyVHdvUGhhc2VFdmVudCgnb25CZWZvcmVJbnB1dCcsIFsnY29tcG9zaXRpb25lbmQnLCAna2V5cHJlc3MnLCAndGV4dElucHV0JywgJ3Bhc3RlJ10pO1xuICByZWdpc3RlclR3b1BoYXNlRXZlbnQoJ29uQ29tcG9zaXRpb25FbmQnLCBbJ2NvbXBvc2l0aW9uZW5kJywgJ2ZvY3Vzb3V0JywgJ2tleWRvd24nLCAna2V5cHJlc3MnLCAna2V5dXAnLCAnbW91c2Vkb3duJ10pO1xuICByZWdpc3RlclR3b1BoYXNlRXZlbnQoJ29uQ29tcG9zaXRpb25TdGFydCcsIFsnY29tcG9zaXRpb25zdGFydCcsICdmb2N1c291dCcsICdrZXlkb3duJywgJ2tleXByZXNzJywgJ2tleXVwJywgJ21vdXNlZG93biddKTtcbiAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KCdvbkNvbXBvc2l0aW9uVXBkYXRlJywgWydjb21wb3NpdGlvbnVwZGF0ZScsICdmb2N1c291dCcsICdrZXlkb3duJywgJ2tleXByZXNzJywgJ2tleXVwJywgJ21vdXNlZG93biddKTtcbn0gLy8gVHJhY2sgd2hldGhlciB3ZSd2ZSBldmVyIGhhbmRsZWQgYSBrZXlwcmVzcyBvbiB0aGUgc3BhY2Uga2V5LlxuXG5cbnZhciBoYXNTcGFjZUtleXByZXNzID0gZmFsc2U7XG4vKipcbiAqIFJldHVybiB3aGV0aGVyIGEgbmF0aXZlIGtleXByZXNzIGV2ZW50IGlzIGFzc3VtZWQgdG8gYmUgYSBjb21tYW5kLlxuICogVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIEZpcmVmb3ggZmlyZXMgYGtleXByZXNzYCBldmVudHMgZm9yIGtleSBjb21tYW5kc1xuICogKGN1dCwgY29weSwgc2VsZWN0LWFsbCwgZXRjLikgZXZlbiB0aG91Z2ggbm8gY2hhcmFjdGVyIGlzIGluc2VydGVkLlxuICovXG5cbmZ1bmN0aW9uIGlzS2V5cHJlc3NDb21tYW5kKG5hdGl2ZUV2ZW50KSB7XG4gIHJldHVybiAobmF0aXZlRXZlbnQuY3RybEtleSB8fCBuYXRpdmVFdmVudC5hbHRLZXkgfHwgbmF0aXZlRXZlbnQubWV0YUtleSkgJiYgLy8gY3RybEtleSAmJiBhbHRLZXkgaXMgZXF1aXZhbGVudCB0byBBbHRHciwgYW5kIGlzIG5vdCBhIGNvbW1hbmQuXG4gICEobmF0aXZlRXZlbnQuY3RybEtleSAmJiBuYXRpdmVFdmVudC5hbHRLZXkpO1xufVxuLyoqXG4gKiBUcmFuc2xhdGUgbmF0aXZlIHRvcCBsZXZlbCBldmVudHMgaW50byBldmVudCB0eXBlcy5cbiAqL1xuXG5cbmZ1bmN0aW9uIGdldENvbXBvc2l0aW9uRXZlbnRUeXBlKGRvbUV2ZW50TmFtZSkge1xuICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgIGNhc2UgJ2NvbXBvc2l0aW9uc3RhcnQnOlxuICAgICAgcmV0dXJuICdvbkNvbXBvc2l0aW9uU3RhcnQnO1xuXG4gICAgY2FzZSAnY29tcG9zaXRpb25lbmQnOlxuICAgICAgcmV0dXJuICdvbkNvbXBvc2l0aW9uRW5kJztcblxuICAgIGNhc2UgJ2NvbXBvc2l0aW9udXBkYXRlJzpcbiAgICAgIHJldHVybiAnb25Db21wb3NpdGlvblVwZGF0ZSc7XG4gIH1cbn1cbi8qKlxuICogRG9lcyBvdXIgZmFsbGJhY2sgYmVzdC1ndWVzcyBtb2RlbCB0aGluayB0aGlzIGV2ZW50IHNpZ25pZmllcyB0aGF0XG4gKiBjb21wb3NpdGlvbiBoYXMgYmVndW4/XG4gKi9cblxuXG5mdW5jdGlvbiBpc0ZhbGxiYWNrQ29tcG9zaXRpb25TdGFydChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSB7XG4gIHJldHVybiBkb21FdmVudE5hbWUgPT09ICdrZXlkb3duJyAmJiBuYXRpdmVFdmVudC5rZXlDb2RlID09PSBTVEFSVF9LRVlDT0RFO1xufVxuLyoqXG4gKiBEb2VzIG91ciBmYWxsYmFjayBtb2RlIHRoaW5rIHRoYXQgdGhpcyBldmVudCBpcyB0aGUgZW5kIG9mIGNvbXBvc2l0aW9uP1xuICovXG5cblxuZnVuY3Rpb24gaXNGYWxsYmFja0NvbXBvc2l0aW9uRW5kKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpIHtcbiAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICBjYXNlICdrZXl1cCc6XG4gICAgICAvLyBDb21tYW5kIGtleXMgaW5zZXJ0IG9yIGNsZWFyIElNRSBpbnB1dC5cbiAgICAgIHJldHVybiBFTkRfS0VZQ09ERVMuaW5kZXhPZihuYXRpdmVFdmVudC5rZXlDb2RlKSAhPT0gLTE7XG5cbiAgICBjYXNlICdrZXlkb3duJzpcbiAgICAgIC8vIEV4cGVjdCBJTUUga2V5Q29kZSBvbiBlYWNoIGtleWRvd24uIElmIHdlIGdldCBhbnkgb3RoZXJcbiAgICAgIC8vIGNvZGUgd2UgbXVzdCBoYXZlIGV4aXRlZCBlYXJsaWVyLlxuICAgICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmtleUNvZGUgIT09IFNUQVJUX0tFWUNPREU7XG5cbiAgICBjYXNlICdrZXlwcmVzcyc6XG4gICAgY2FzZSAnbW91c2Vkb3duJzpcbiAgICBjYXNlICdmb2N1c291dCc6XG4gICAgICAvLyBFdmVudHMgYXJlIG5vdCBwb3NzaWJsZSB3aXRob3V0IGNhbmNlbGxpbmcgSU1FLlxuICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4vKipcbiAqIEdvb2dsZSBJbnB1dCBUb29scyBwcm92aWRlcyBjb21wb3NpdGlvbiBkYXRhIHZpYSBhIEN1c3RvbUV2ZW50LFxuICogd2l0aCB0aGUgYGRhdGFgIHByb3BlcnR5IHBvcHVsYXRlZCBpbiB0aGUgYGRldGFpbGAgb2JqZWN0LiBJZiB0aGlzXG4gKiBpcyBhdmFpbGFibGUgb24gdGhlIGV2ZW50IG9iamVjdCwgdXNlIGl0LiBJZiBub3QsIHRoaXMgaXMgYSBwbGFpblxuICogY29tcG9zaXRpb24gZXZlbnQgYW5kIHdlIGhhdmUgbm90aGluZyBzcGVjaWFsIHRvIGV4dHJhY3QuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50XG4gKiBAcmV0dXJuIHs/c3RyaW5nfVxuICovXG5cblxuZnVuY3Rpb24gZ2V0RGF0YUZyb21DdXN0b21FdmVudChuYXRpdmVFdmVudCkge1xuICB2YXIgZGV0YWlsID0gbmF0aXZlRXZlbnQuZGV0YWlsO1xuXG4gIGlmICh0eXBlb2YgZGV0YWlsID09PSAnb2JqZWN0JyAmJiAnZGF0YScgaW4gZGV0YWlsKSB7XG4gICAgcmV0dXJuIGRldGFpbC5kYXRhO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG4vKipcbiAqIENoZWNrIGlmIGEgY29tcG9zaXRpb24gZXZlbnQgd2FzIHRyaWdnZXJlZCBieSBLb3JlYW4gSU1FLlxuICogT3VyIGZhbGxiYWNrIG1vZGUgZG9lcyBub3Qgd29yayB3ZWxsIHdpdGggSUUncyBLb3JlYW4gSU1FLFxuICogc28ganVzdCB1c2UgbmF0aXZlIGNvbXBvc2l0aW9uIGV2ZW50cyB3aGVuIEtvcmVhbiBJTUUgaXMgdXNlZC5cbiAqIEFsdGhvdWdoIENvbXBvc2l0aW9uRXZlbnQubG9jYWxlIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQsXG4gKiBpdCBpcyBhdmFpbGFibGUgaW4gSUUsIHdoZXJlIG91ciBmYWxsYmFjayBtb2RlIGlzIGVuYWJsZWQuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50XG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5cblxuZnVuY3Rpb24gaXNVc2luZ0tvcmVhbklNRShuYXRpdmVFdmVudCkge1xuICByZXR1cm4gbmF0aXZlRXZlbnQubG9jYWxlID09PSAna28nO1xufSAvLyBUcmFjayB0aGUgY3VycmVudCBJTUUgY29tcG9zaXRpb24gc3RhdHVzLCBpZiBhbnkuXG5cblxudmFyIGlzQ29tcG9zaW5nID0gZmFsc2U7XG4vKipcbiAqIEByZXR1cm4gez9vYmplY3R9IEEgU3ludGhldGljQ29tcG9zaXRpb25FdmVudC5cbiAqL1xuXG5mdW5jdGlvbiBleHRyYWN0Q29tcG9zaXRpb25FdmVudChkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICB2YXIgZXZlbnRUeXBlO1xuICB2YXIgZmFsbGJhY2tEYXRhO1xuXG4gIGlmIChjYW5Vc2VDb21wb3NpdGlvbkV2ZW50KSB7XG4gICAgZXZlbnRUeXBlID0gZ2V0Q29tcG9zaXRpb25FdmVudFR5cGUoZG9tRXZlbnROYW1lKTtcbiAgfSBlbHNlIGlmICghaXNDb21wb3NpbmcpIHtcbiAgICBpZiAoaXNGYWxsYmFja0NvbXBvc2l0aW9uU3RhcnQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkpIHtcbiAgICAgIGV2ZW50VHlwZSA9ICdvbkNvbXBvc2l0aW9uU3RhcnQnO1xuICAgIH1cbiAgfSBlbHNlIGlmIChpc0ZhbGxiYWNrQ29tcG9zaXRpb25FbmQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkpIHtcbiAgICBldmVudFR5cGUgPSAnb25Db21wb3NpdGlvbkVuZCc7XG4gIH1cblxuICBpZiAoIWV2ZW50VHlwZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHVzZUZhbGxiYWNrQ29tcG9zaXRpb25EYXRhICYmICFpc1VzaW5nS29yZWFuSU1FKG5hdGl2ZUV2ZW50KSkge1xuICAgIC8vIFRoZSBjdXJyZW50IGNvbXBvc2l0aW9uIGlzIHN0b3JlZCBzdGF0aWNhbGx5IGFuZCBtdXN0IG5vdCBiZVxuICAgIC8vIG92ZXJ3cml0dGVuIHdoaWxlIGNvbXBvc2l0aW9uIGNvbnRpbnVlcy5cbiAgICBpZiAoIWlzQ29tcG9zaW5nICYmIGV2ZW50VHlwZSA9PT0gJ29uQ29tcG9zaXRpb25TdGFydCcpIHtcbiAgICAgIGlzQ29tcG9zaW5nID0gaW5pdGlhbGl6ZShuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT09ICdvbkNvbXBvc2l0aW9uRW5kJykge1xuICAgICAgaWYgKGlzQ29tcG9zaW5nKSB7XG4gICAgICAgIGZhbGxiYWNrRGF0YSA9IGdldERhdGEoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgbGlzdGVuZXJzID0gYWNjdW11bGF0ZVR3b1BoYXNlTGlzdGVuZXJzKHRhcmdldEluc3QsIGV2ZW50VHlwZSk7XG5cbiAgaWYgKGxpc3RlbmVycy5sZW5ndGggPiAwKSB7XG4gICAgdmFyIGV2ZW50ID0gbmV3IFN5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnQoZXZlbnRUeXBlLCBkb21FdmVudE5hbWUsIG51bGwsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgZGlzcGF0Y2hRdWV1ZS5wdXNoKHtcbiAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgIGxpc3RlbmVyczogbGlzdGVuZXJzXG4gICAgfSk7XG5cbiAgICBpZiAoZmFsbGJhY2tEYXRhKSB7XG4gICAgICAvLyBJbmplY3QgZGF0YSBnZW5lcmF0ZWQgZnJvbSBmYWxsYmFjayBwYXRoIGludG8gdGhlIHN5bnRoZXRpYyBldmVudC5cbiAgICAgIC8vIFRoaXMgbWF0Y2hlcyB0aGUgcHJvcGVydHkgb2YgbmF0aXZlIENvbXBvc2l0aW9uRXZlbnRJbnRlcmZhY2UuXG4gICAgICBldmVudC5kYXRhID0gZmFsbGJhY2tEYXRhO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgY3VzdG9tRGF0YSA9IGdldERhdGFGcm9tQ3VzdG9tRXZlbnQobmF0aXZlRXZlbnQpO1xuXG4gICAgICBpZiAoY3VzdG9tRGF0YSAhPT0gbnVsbCkge1xuICAgICAgICBldmVudC5kYXRhID0gY3VzdG9tRGF0YTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0TmF0aXZlQmVmb3JlSW5wdXRDaGFycyhkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSB7XG4gIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7XG4gICAgY2FzZSAnY29tcG9zaXRpb25lbmQnOlxuICAgICAgcmV0dXJuIGdldERhdGFGcm9tQ3VzdG9tRXZlbnQobmF0aXZlRXZlbnQpO1xuXG4gICAgY2FzZSAna2V5cHJlc3MnOlxuICAgICAgLyoqXG4gICAgICAgKiBJZiBuYXRpdmUgYHRleHRJbnB1dGAgZXZlbnRzIGFyZSBhdmFpbGFibGUsIG91ciBnb2FsIGlzIHRvIG1ha2VcbiAgICAgICAqIHVzZSBvZiB0aGVtLiBIb3dldmVyLCB0aGVyZSBpcyBhIHNwZWNpYWwgY2FzZTogdGhlIHNwYWNlYmFyIGtleS5cbiAgICAgICAqIEluIFdlYmtpdCwgcHJldmVudGluZyBkZWZhdWx0IG9uIGEgc3BhY2ViYXIgYHRleHRJbnB1dGAgZXZlbnRcbiAgICAgICAqIGNhbmNlbHMgY2hhcmFjdGVyIGluc2VydGlvbiwgYnV0IGl0ICphbHNvKiBjYXVzZXMgdGhlIGJyb3dzZXJcbiAgICAgICAqIHRvIGZhbGwgYmFjayB0byBpdHMgZGVmYXVsdCBzcGFjZWJhciBiZWhhdmlvciBvZiBzY3JvbGxpbmcgdGhlXG4gICAgICAgKiBwYWdlLlxuICAgICAgICpcbiAgICAgICAqIFRyYWNraW5nIGF0OlxuICAgICAgICogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTM1NTEwM1xuICAgICAgICpcbiAgICAgICAqIFRvIGF2b2lkIHRoaXMgaXNzdWUsIHVzZSB0aGUga2V5cHJlc3MgZXZlbnQgYXMgaWYgbm8gYHRleHRJbnB1dGBcbiAgICAgICAqIGV2ZW50IGlzIGF2YWlsYWJsZS5cbiAgICAgICAqL1xuICAgICAgdmFyIHdoaWNoID0gbmF0aXZlRXZlbnQud2hpY2g7XG5cbiAgICAgIGlmICh3aGljaCAhPT0gU1BBQ0VCQVJfQ09ERSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgaGFzU3BhY2VLZXlwcmVzcyA9IHRydWU7XG4gICAgICByZXR1cm4gU1BBQ0VCQVJfQ0hBUjtcblxuICAgIGNhc2UgJ3RleHRJbnB1dCc6XG4gICAgICAvLyBSZWNvcmQgdGhlIGNoYXJhY3RlcnMgdG8gYmUgYWRkZWQgdG8gdGhlIERPTS5cbiAgICAgIHZhciBjaGFycyA9IG5hdGl2ZUV2ZW50LmRhdGE7IC8vIElmIGl0J3MgYSBzcGFjZWJhciBjaGFyYWN0ZXIsIGFzc3VtZSB0aGF0IHdlIGhhdmUgYWxyZWFkeSBoYW5kbGVkXG4gICAgICAvLyBpdCBhdCB0aGUga2V5cHJlc3MgbGV2ZWwgYW5kIGJhaWwgaW1tZWRpYXRlbHkuIEFuZHJvaWQgQ2hyb21lXG4gICAgICAvLyBkb2Vzbid0IGdpdmUgdXMga2V5Y29kZXMsIHNvIHdlIG5lZWQgdG8gaWdub3JlIGl0LlxuXG4gICAgICBpZiAoY2hhcnMgPT09IFNQQUNFQkFSX0NIQVIgJiYgaGFzU3BhY2VLZXlwcmVzcykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNoYXJzO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIEZvciBvdGhlciBuYXRpdmUgZXZlbnQgdHlwZXMsIGRvIG5vdGhpbmcuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuLyoqXG4gKiBGb3IgYnJvd3NlcnMgdGhhdCBkbyBub3QgcHJvdmlkZSB0aGUgYHRleHRJbnB1dGAgZXZlbnQsIGV4dHJhY3QgdGhlXG4gKiBhcHByb3ByaWF0ZSBzdHJpbmcgdG8gdXNlIGZvciBTeW50aGV0aWNJbnB1dEV2ZW50LlxuICovXG5cblxuZnVuY3Rpb24gZ2V0RmFsbGJhY2tCZWZvcmVJbnB1dENoYXJzKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpIHtcbiAgLy8gSWYgd2UgYXJlIGN1cnJlbnRseSBjb21wb3NpbmcgKElNRSkgYW5kIHVzaW5nIGEgZmFsbGJhY2sgdG8gZG8gc28sXG4gIC8vIHRyeSB0byBleHRyYWN0IHRoZSBjb21wb3NlZCBjaGFyYWN0ZXJzIGZyb20gdGhlIGZhbGxiYWNrIG9iamVjdC5cbiAgLy8gSWYgY29tcG9zaXRpb24gZXZlbnQgaXMgYXZhaWxhYmxlLCB3ZSBleHRyYWN0IGEgc3RyaW5nIG9ubHkgYXRcbiAgLy8gY29tcG9zaXRpb25ldmVudCwgb3RoZXJ3aXNlIGV4dHJhY3QgaXQgYXQgZmFsbGJhY2sgZXZlbnRzLlxuICBpZiAoaXNDb21wb3NpbmcpIHtcbiAgICBpZiAoZG9tRXZlbnROYW1lID09PSAnY29tcG9zaXRpb25lbmQnIHx8ICFjYW5Vc2VDb21wb3NpdGlvbkV2ZW50ICYmIGlzRmFsbGJhY2tDb21wb3NpdGlvbkVuZChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSkge1xuICAgICAgdmFyIGNoYXJzID0gZ2V0RGF0YSgpO1xuICAgICAgcmVzZXQoKTtcbiAgICAgIGlzQ29tcG9zaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm4gY2hhcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgIGNhc2UgJ3Bhc3RlJzpcbiAgICAgIC8vIElmIGEgcGFzdGUgZXZlbnQgb2NjdXJzIGFmdGVyIGEga2V5cHJlc3MsIHRocm93IG91dCB0aGUgaW5wdXRcbiAgICAgIC8vIGNoYXJzLiBQYXN0ZSBldmVudHMgc2hvdWxkIG5vdCBsZWFkIHRvIEJlZm9yZUlucHV0IGV2ZW50cy5cbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgY2FzZSAna2V5cHJlc3MnOlxuICAgICAgLyoqXG4gICAgICAgKiBBcyBvZiB2MjcsIEZpcmVmb3ggbWF5IGZpcmUga2V5cHJlc3MgZXZlbnRzIGV2ZW4gd2hlbiBubyBjaGFyYWN0ZXJcbiAgICAgICAqIHdpbGwgYmUgaW5zZXJ0ZWQuIEEgZmV3IHBvc3NpYmlsaXRpZXM6XG4gICAgICAgKlxuICAgICAgICogLSBgd2hpY2hgIGlzIGAwYC4gQXJyb3cga2V5cywgRXNjIGtleSwgZXRjLlxuICAgICAgICpcbiAgICAgICAqIC0gYHdoaWNoYCBpcyB0aGUgcHJlc3NlZCBrZXkgY29kZSwgYnV0IG5vIGNoYXIgaXMgYXZhaWxhYmxlLlxuICAgICAgICogICBFeDogJ0FsdEdyICsgZGAgaW4gUG9saXNoLiBUaGVyZSBpcyBubyBtb2RpZmllZCBjaGFyYWN0ZXIgZm9yXG4gICAgICAgKiAgIHRoaXMga2V5IGNvbWJpbmF0aW9uIGFuZCBubyBjaGFyYWN0ZXIgaXMgaW5zZXJ0ZWQgaW50byB0aGVcbiAgICAgICAqICAgZG9jdW1lbnQsIGJ1dCBGRiBmaXJlcyB0aGUga2V5cHJlc3MgZm9yIGNoYXIgY29kZSBgMTAwYCBhbnl3YXkuXG4gICAgICAgKiAgIE5vIGBpbnB1dGAgZXZlbnQgd2lsbCBvY2N1ci5cbiAgICAgICAqXG4gICAgICAgKiAtIGB3aGljaGAgaXMgdGhlIHByZXNzZWQga2V5IGNvZGUsIGJ1dCBhIGNvbW1hbmQgY29tYmluYXRpb24gaXNcbiAgICAgICAqICAgYmVpbmcgdXNlZC4gRXg6IGBDbWQrQ2AuIE5vIGNoYXJhY3RlciBpcyBpbnNlcnRlZCwgYW5kIG5vXG4gICAgICAgKiAgIGBpbnB1dGAgZXZlbnQgd2lsbCBvY2N1ci5cbiAgICAgICAqL1xuICAgICAgaWYgKCFpc0tleXByZXNzQ29tbWFuZChuYXRpdmVFdmVudCkpIHtcbiAgICAgICAgLy8gSUUgZmlyZXMgdGhlIGBrZXlwcmVzc2AgZXZlbnQgd2hlbiBhIHVzZXIgdHlwZXMgYW4gZW1vamkgdmlhXG4gICAgICAgIC8vIFRvdWNoIGtleWJvYXJkIG9mIFdpbmRvd3MuICBJbiBzdWNoIGEgY2FzZSwgdGhlIGBjaGFyYCBwcm9wZXJ0eVxuICAgICAgICAvLyBob2xkcyBhbiBlbW9qaSBjaGFyYWN0ZXIgbGlrZSBgXFx1RDgzRFxcdURFMEFgLiAgQmVjYXVzZSBpdHMgbGVuZ3RoXG4gICAgICAgIC8vIGlzIDIsIHRoZSBwcm9wZXJ0eSBgd2hpY2hgIGRvZXMgbm90IHJlcHJlc2VudCBhbiBlbW9qaSBjb3JyZWN0bHkuXG4gICAgICAgIC8vIEluIHN1Y2ggYSBjYXNlLCB3ZSBkaXJlY3RseSByZXR1cm4gdGhlIGBjaGFyYCBwcm9wZXJ0eSBpbnN0ZWFkIG9mXG4gICAgICAgIC8vIHVzaW5nIGB3aGljaGAuXG4gICAgICAgIGlmIChuYXRpdmVFdmVudC5jaGFyICYmIG5hdGl2ZUV2ZW50LmNoYXIubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHJldHVybiBuYXRpdmVFdmVudC5jaGFyO1xuICAgICAgICB9IGVsc2UgaWYgKG5hdGl2ZUV2ZW50LndoaWNoKSB7XG4gICAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUobmF0aXZlRXZlbnQud2hpY2gpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgY2FzZSAnY29tcG9zaXRpb25lbmQnOlxuICAgICAgcmV0dXJuIHVzZUZhbGxiYWNrQ29tcG9zaXRpb25EYXRhICYmICFpc1VzaW5nS29yZWFuSU1FKG5hdGl2ZUV2ZW50KSA/IG51bGwgOiBuYXRpdmVFdmVudC5kYXRhO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG4vKipcbiAqIEV4dHJhY3QgYSBTeW50aGV0aWNJbnB1dEV2ZW50IGZvciBgYmVmb3JlSW5wdXRgLCBiYXNlZCBvbiBlaXRoZXIgbmF0aXZlXG4gKiBgdGV4dElucHV0YCBvciBmYWxsYmFjayBiZWhhdmlvci5cbiAqXG4gKiBAcmV0dXJuIHs/b2JqZWN0fSBBIFN5bnRoZXRpY0lucHV0RXZlbnQuXG4gKi9cblxuXG5mdW5jdGlvbiBleHRyYWN0QmVmb3JlSW5wdXRFdmVudChkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICB2YXIgY2hhcnM7XG5cbiAgaWYgKGNhblVzZVRleHRJbnB1dEV2ZW50KSB7XG4gICAgY2hhcnMgPSBnZXROYXRpdmVCZWZvcmVJbnB1dENoYXJzKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpO1xuICB9IGVsc2Uge1xuICAgIGNoYXJzID0gZ2V0RmFsbGJhY2tCZWZvcmVJbnB1dENoYXJzKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpO1xuICB9IC8vIElmIG5vIGNoYXJhY3RlcnMgYXJlIGJlaW5nIGluc2VydGVkLCBubyBCZWZvcmVJbnB1dCBldmVudCBzaG91bGRcbiAgLy8gYmUgZmlyZWQuXG5cblxuICBpZiAoIWNoYXJzKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgbGlzdGVuZXJzID0gYWNjdW11bGF0ZVR3b1BoYXNlTGlzdGVuZXJzKHRhcmdldEluc3QsICdvbkJlZm9yZUlucHV0Jyk7XG5cbiAgaWYgKGxpc3RlbmVycy5sZW5ndGggPiAwKSB7XG4gICAgdmFyIGV2ZW50ID0gbmV3IFN5bnRoZXRpY0lucHV0RXZlbnQoJ29uQmVmb3JlSW5wdXQnLCAnYmVmb3JlaW5wdXQnLCBudWxsLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICAgIGRpc3BhdGNoUXVldWUucHVzaCh7XG4gICAgICBldmVudDogZXZlbnQsXG4gICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1xuICAgIH0pO1xuICAgIGV2ZW50LmRhdGEgPSBjaGFycztcbiAgfVxufVxuLyoqXG4gKiBDcmVhdGUgYW4gYG9uQmVmb3JlSW5wdXRgIGV2ZW50IHRvIG1hdGNoXG4gKiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEzL1dELURPTS1MZXZlbC0zLUV2ZW50cy0yMDEzMTEwNS8jZXZlbnRzLWlucHV0ZXZlbnRzLlxuICpcbiAqIFRoaXMgZXZlbnQgcGx1Z2luIGlzIGJhc2VkIG9uIHRoZSBuYXRpdmUgYHRleHRJbnB1dGAgZXZlbnRcbiAqIGF2YWlsYWJsZSBpbiBDaHJvbWUsIFNhZmFyaSwgT3BlcmEsIGFuZCBJRS4gVGhpcyBldmVudCBmaXJlcyBhZnRlclxuICogYG9uS2V5UHJlc3NgIGFuZCBgb25Db21wb3NpdGlvbkVuZGAsIGJ1dCBiZWZvcmUgYG9uSW5wdXRgLlxuICpcbiAqIGBiZWZvcmVJbnB1dGAgaXMgc3BlYydkIGJ1dCBub3QgaW1wbGVtZW50ZWQgaW4gYW55IGJyb3dzZXJzLCBhbmRcbiAqIHRoZSBgaW5wdXRgIGV2ZW50IGRvZXMgbm90IHByb3ZpZGUgYW55IHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IGhhc1xuICogYWN0dWFsbHkgYmVlbiBhZGRlZCwgY29udHJhcnkgdG8gdGhlIHNwZWMuIFRodXMsIGB0ZXh0SW5wdXRgIGlzIHRoZSBiZXN0XG4gKiBhdmFpbGFibGUgZXZlbnQgdG8gaWRlbnRpZnkgdGhlIGNoYXJhY3RlcnMgdGhhdCBoYXZlIGFjdHVhbGx5IGJlZW4gaW5zZXJ0ZWRcbiAqIGludG8gdGhlIHRhcmdldCBub2RlLlxuICpcbiAqIFRoaXMgcGx1Z2luIGlzIGFsc28gcmVzcG9uc2libGUgZm9yIGVtaXR0aW5nIGBjb21wb3NpdGlvbmAgZXZlbnRzLCB0aHVzXG4gKiBhbGxvd2luZyB1cyB0byBzaGFyZSBjb21wb3NpdGlvbiBmYWxsYmFjayBjb2RlIGZvciBib3RoIGBiZWZvcmVJbnB1dGAgYW5kXG4gKiBgY29tcG9zaXRpb25gIGV2ZW50IHR5cGVzLlxuICovXG5cblxuZnVuY3Rpb24gZXh0cmFjdEV2ZW50cyhkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyKSB7XG4gIGV4dHJhY3RDb21wb3NpdGlvbkV2ZW50KGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgZXh0cmFjdEJlZm9yZUlucHV0RXZlbnQoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xufVxuXG4vKipcbiAqIEBzZWUgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLWlucHV0LWVsZW1lbnQuaHRtbCNpbnB1dC10eXBlLWF0dHItc3VtbWFyeVxuICovXG52YXIgc3VwcG9ydGVkSW5wdXRUeXBlcyA9IHtcbiAgY29sb3I6IHRydWUsXG4gIGRhdGU6IHRydWUsXG4gIGRhdGV0aW1lOiB0cnVlLFxuICAnZGF0ZXRpbWUtbG9jYWwnOiB0cnVlLFxuICBlbWFpbDogdHJ1ZSxcbiAgbW9udGg6IHRydWUsXG4gIG51bWJlcjogdHJ1ZSxcbiAgcGFzc3dvcmQ6IHRydWUsXG4gIHJhbmdlOiB0cnVlLFxuICBzZWFyY2g6IHRydWUsXG4gIHRlbDogdHJ1ZSxcbiAgdGV4dDogdHJ1ZSxcbiAgdGltZTogdHJ1ZSxcbiAgdXJsOiB0cnVlLFxuICB3ZWVrOiB0cnVlXG59O1xuXG5mdW5jdGlvbiBpc1RleHRJbnB1dEVsZW1lbnQoZWxlbSkge1xuICB2YXIgbm9kZU5hbWUgPSBlbGVtICYmIGVsZW0ubm9kZU5hbWUgJiYgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gIGlmIChub2RlTmFtZSA9PT0gJ2lucHV0Jykge1xuICAgIHJldHVybiAhIXN1cHBvcnRlZElucHV0VHlwZXNbZWxlbS50eXBlXTtcbiAgfVxuXG4gIGlmIChub2RlTmFtZSA9PT0gJ3RleHRhcmVhJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhbiBldmVudCBpcyBzdXBwb3J0ZWQgaW4gdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGVudmlyb25tZW50LlxuICpcbiAqIE5PVEU6IFRoaXMgd2lsbCBub3Qgd29yayBjb3JyZWN0bHkgZm9yIG5vbi1nZW5lcmljIGV2ZW50cyBzdWNoIGFzIGBjaGFuZ2VgLFxuICogYHJlc2V0YCwgYGxvYWRgLCBgZXJyb3JgLCBhbmQgYHNlbGVjdGAuXG4gKlxuICogQm9ycm93cyBmcm9tIE1vZGVybml6ci5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lU3VmZml4IEV2ZW50IG5hbWUsIGUuZy4gXCJjbGlja1wiLlxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgZXZlbnQgaXMgc3VwcG9ydGVkLlxuICogQGludGVybmFsXG4gKiBAbGljZW5zZSBNb2Rlcm5penIgMy4wLjBwcmUgKEN1c3RvbSBCdWlsZCkgfCBNSVRcbiAqL1xuXG5mdW5jdGlvbiBpc0V2ZW50U3VwcG9ydGVkKGV2ZW50TmFtZVN1ZmZpeCkge1xuICBpZiAoIWNhblVzZURPTSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBldmVudE5hbWUgPSAnb24nICsgZXZlbnROYW1lU3VmZml4O1xuICB2YXIgaXNTdXBwb3J0ZWQgPSAoZXZlbnROYW1lIGluIGRvY3VtZW50KTtcblxuICBpZiAoIWlzU3VwcG9ydGVkKSB7XG4gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShldmVudE5hbWUsICdyZXR1cm47Jyk7XG4gICAgaXNTdXBwb3J0ZWQgPSB0eXBlb2YgZWxlbWVudFtldmVudE5hbWVdID09PSAnZnVuY3Rpb24nO1xuICB9XG5cbiAgcmV0dXJuIGlzU3VwcG9ydGVkO1xufVxuXG5mdW5jdGlvbiByZWdpc3RlckV2ZW50cyQxKCkge1xuICByZWdpc3RlclR3b1BoYXNlRXZlbnQoJ29uQ2hhbmdlJywgWydjaGFuZ2UnLCAnY2xpY2snLCAnZm9jdXNpbicsICdmb2N1c291dCcsICdpbnB1dCcsICdrZXlkb3duJywgJ2tleXVwJywgJ3NlbGVjdGlvbmNoYW5nZSddKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQW5kQWNjdW11bGF0ZUNoYW5nZUV2ZW50KGRpc3BhdGNoUXVldWUsIGluc3QsIG5hdGl2ZUV2ZW50LCB0YXJnZXQpIHtcbiAgLy8gRmxhZyB0aGlzIGV2ZW50IGxvb3AgYXMgbmVlZGluZyBzdGF0ZSByZXN0b3JlLlxuICBlbnF1ZXVlU3RhdGVSZXN0b3JlKHRhcmdldCk7XG4gIHZhciBsaXN0ZW5lcnMgPSBhY2N1bXVsYXRlVHdvUGhhc2VMaXN0ZW5lcnMoaW5zdCwgJ29uQ2hhbmdlJyk7XG5cbiAgaWYgKGxpc3RlbmVycy5sZW5ndGggPiAwKSB7XG4gICAgdmFyIGV2ZW50ID0gbmV3IFN5bnRoZXRpY0V2ZW50KCdvbkNoYW5nZScsICdjaGFuZ2UnLCBudWxsLCBuYXRpdmVFdmVudCwgdGFyZ2V0KTtcbiAgICBkaXNwYXRjaFF1ZXVlLnB1c2goe1xuICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNcbiAgICB9KTtcbiAgfVxufVxuLyoqXG4gKiBGb3IgSUUgc2hpbXNcbiAqL1xuXG5cbnZhciBhY3RpdmVFbGVtZW50ID0gbnVsbDtcbnZhciBhY3RpdmVFbGVtZW50SW5zdCA9IG51bGw7XG4vKipcbiAqIFNFQ1RJT046IGhhbmRsZSBgY2hhbmdlYCBldmVudFxuICovXG5cbmZ1bmN0aW9uIHNob3VsZFVzZUNoYW5nZUV2ZW50KGVsZW0pIHtcbiAgdmFyIG5vZGVOYW1lID0gZWxlbS5ub2RlTmFtZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBub2RlTmFtZSA9PT0gJ3NlbGVjdCcgfHwgbm9kZU5hbWUgPT09ICdpbnB1dCcgJiYgZWxlbS50eXBlID09PSAnZmlsZSc7XG59XG5cbmZ1bmN0aW9uIG1hbnVhbERpc3BhdGNoQ2hhbmdlRXZlbnQobmF0aXZlRXZlbnQpIHtcbiAgdmFyIGRpc3BhdGNoUXVldWUgPSBbXTtcbiAgY3JlYXRlQW5kQWNjdW11bGF0ZUNoYW5nZUV2ZW50KGRpc3BhdGNoUXVldWUsIGFjdGl2ZUVsZW1lbnRJbnN0LCBuYXRpdmVFdmVudCwgZ2V0RXZlbnRUYXJnZXQobmF0aXZlRXZlbnQpKTsgLy8gSWYgY2hhbmdlIGFuZCBwcm9wZXJ0eWNoYW5nZSBidWJibGVkLCB3ZSdkIGp1c3QgYmluZCB0byBpdCBsaWtlIGFsbCB0aGVcbiAgLy8gb3RoZXIgZXZlbnRzIGFuZCBoYXZlIGl0IGdvIHRocm91Z2ggUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLiBTaW5jZSBpdFxuICAvLyBkb2Vzbid0LCB3ZSBtYW51YWxseSBsaXN0ZW4gZm9yIHRoZSBldmVudHMgYW5kIHNvIHdlIGhhdmUgdG8gZW5xdWV1ZSBhbmRcbiAgLy8gcHJvY2VzcyB0aGUgYWJzdHJhY3QgZXZlbnQgbWFudWFsbHkuXG4gIC8vXG4gIC8vIEJhdGNoaW5nIGlzIG5lY2Vzc2FyeSBoZXJlIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IGFsbCBldmVudCBoYW5kbGVycyBydW5cbiAgLy8gYmVmb3JlIHRoZSBuZXh0IHJlcmVuZGVyIChpbmNsdWRpbmcgZXZlbnQgaGFuZGxlcnMgYXR0YWNoZWQgdG8gYW5jZXN0b3JcbiAgLy8gZWxlbWVudHMgaW5zdGVhZCBvZiBkaXJlY3RseSBvbiB0aGUgaW5wdXQpLiBXaXRob3V0IHRoaXMsIGNvbnRyb2xsZWRcbiAgLy8gY29tcG9uZW50cyBkb24ndCB3b3JrIHByb3Blcmx5IGluIGNvbmp1bmN0aW9uIHdpdGggZXZlbnQgYnViYmxpbmcgYmVjYXVzZVxuICAvLyB0aGUgY29tcG9uZW50IGlzIHJlcmVuZGVyZWQgYW5kIHRoZSB2YWx1ZSByZXZlcnRlZCBiZWZvcmUgYWxsIHRoZSBldmVudFxuICAvLyBoYW5kbGVycyBjYW4gcnVuLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy83MDguXG5cbiAgYmF0Y2hlZFVwZGF0ZXMocnVuRXZlbnRJbkJhdGNoLCBkaXNwYXRjaFF1ZXVlKTtcbn1cblxuZnVuY3Rpb24gcnVuRXZlbnRJbkJhdGNoKGRpc3BhdGNoUXVldWUpIHtcbiAgcHJvY2Vzc0Rpc3BhdGNoUXVldWUoZGlzcGF0Y2hRdWV1ZSwgMCk7XG59XG5cbmZ1bmN0aW9uIGdldEluc3RJZlZhbHVlQ2hhbmdlZCh0YXJnZXRJbnN0KSB7XG4gIHZhciB0YXJnZXROb2RlID0gZ2V0Tm9kZUZyb21JbnN0YW5jZSh0YXJnZXRJbnN0KTtcblxuICBpZiAodXBkYXRlVmFsdWVJZkNoYW5nZWQodGFyZ2V0Tm9kZSkpIHtcbiAgICByZXR1cm4gdGFyZ2V0SW5zdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRUYXJnZXRJbnN0Rm9yQ2hhbmdlRXZlbnQoZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0KSB7XG4gIGlmIChkb21FdmVudE5hbWUgPT09ICdjaGFuZ2UnKSB7XG4gICAgcmV0dXJuIHRhcmdldEluc3Q7XG4gIH1cbn1cbi8qKlxuICogU0VDVElPTjogaGFuZGxlIGBpbnB1dGAgZXZlbnRcbiAqL1xuXG5cbnZhciBpc0lucHV0RXZlbnRTdXBwb3J0ZWQgPSBmYWxzZTtcblxuaWYgKGNhblVzZURPTSkge1xuICAvLyBJRTkgY2xhaW1zIHRvIHN1cHBvcnQgdGhlIGlucHV0IGV2ZW50IGJ1dCBmYWlscyB0byB0cmlnZ2VyIGl0IHdoZW5cbiAgLy8gZGVsZXRpbmcgdGV4dCwgc28gd2UgaWdub3JlIGl0cyBpbnB1dCBldmVudHMuXG4gIGlzSW5wdXRFdmVudFN1cHBvcnRlZCA9IGlzRXZlbnRTdXBwb3J0ZWQoJ2lucHV0JykgJiYgKCFkb2N1bWVudC5kb2N1bWVudE1vZGUgfHwgZG9jdW1lbnQuZG9jdW1lbnRNb2RlID4gOSk7XG59XG4vKipcbiAqIChGb3IgSUUgPD05KSBTdGFydHMgdHJhY2tpbmcgcHJvcGVydHljaGFuZ2UgZXZlbnRzIG9uIHRoZSBwYXNzZWQtaW4gZWxlbWVudFxuICogYW5kIG92ZXJyaWRlIHRoZSB2YWx1ZSBwcm9wZXJ0eSBzbyB0aGF0IHdlIGNhbiBkaXN0aW5ndWlzaCB1c2VyIGV2ZW50cyBmcm9tXG4gKiB2YWx1ZSBjaGFuZ2VzIGluIEpTLlxuICovXG5cblxuZnVuY3Rpb24gc3RhcnRXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKHRhcmdldCwgdGFyZ2V0SW5zdCkge1xuICBhY3RpdmVFbGVtZW50ID0gdGFyZ2V0O1xuICBhY3RpdmVFbGVtZW50SW5zdCA9IHRhcmdldEluc3Q7XG4gIGFjdGl2ZUVsZW1lbnQuYXR0YWNoRXZlbnQoJ29ucHJvcGVydHljaGFuZ2UnLCBoYW5kbGVQcm9wZXJ0eUNoYW5nZSk7XG59XG4vKipcbiAqIChGb3IgSUUgPD05KSBSZW1vdmVzIHRoZSBldmVudCBsaXN0ZW5lcnMgZnJvbSB0aGUgY3VycmVudGx5LXRyYWNrZWQgZWxlbWVudCxcbiAqIGlmIGFueSBleGlzdHMuXG4gKi9cblxuXG5mdW5jdGlvbiBzdG9wV2F0Y2hpbmdGb3JWYWx1ZUNoYW5nZSgpIHtcbiAgaWYgKCFhY3RpdmVFbGVtZW50KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgYWN0aXZlRWxlbWVudC5kZXRhY2hFdmVudCgnb25wcm9wZXJ0eWNoYW5nZScsIGhhbmRsZVByb3BlcnR5Q2hhbmdlKTtcbiAgYWN0aXZlRWxlbWVudCA9IG51bGw7XG4gIGFjdGl2ZUVsZW1lbnRJbnN0ID0gbnVsbDtcbn1cbi8qKlxuICogKEZvciBJRSA8PTkpIEhhbmRsZXMgYSBwcm9wZXJ0eWNoYW5nZSBldmVudCwgc2VuZGluZyBhIGBjaGFuZ2VgIGV2ZW50IGlmXG4gKiB0aGUgdmFsdWUgb2YgdGhlIGFjdGl2ZSBlbGVtZW50IGhhcyBjaGFuZ2VkLlxuICovXG5cblxuZnVuY3Rpb24gaGFuZGxlUHJvcGVydHlDaGFuZ2UobmF0aXZlRXZlbnQpIHtcbiAgaWYgKG5hdGl2ZUV2ZW50LnByb3BlcnR5TmFtZSAhPT0gJ3ZhbHVlJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChnZXRJbnN0SWZWYWx1ZUNoYW5nZWQoYWN0aXZlRWxlbWVudEluc3QpKSB7XG4gICAgbWFudWFsRGlzcGF0Y2hDaGFuZ2VFdmVudChuYXRpdmVFdmVudCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlRXZlbnRzRm9ySW5wdXRFdmVudFBvbHlmaWxsKGRvbUV2ZW50TmFtZSwgdGFyZ2V0LCB0YXJnZXRJbnN0KSB7XG4gIGlmIChkb21FdmVudE5hbWUgPT09ICdmb2N1c2luJykge1xuICAgIC8vIEluIElFOSwgcHJvcGVydHljaGFuZ2UgZmlyZXMgZm9yIG1vc3QgaW5wdXQgZXZlbnRzIGJ1dCBpcyBidWdneSBhbmRcbiAgICAvLyBkb2Vzbid0IGZpcmUgd2hlbiB0ZXh0IGlzIGRlbGV0ZWQsIGJ1dCBjb252ZW5pZW50bHksIHNlbGVjdGlvbmNoYW5nZVxuICAgIC8vIGFwcGVhcnMgdG8gZmlyZSBpbiBhbGwgb2YgdGhlIHJlbWFpbmluZyBjYXNlcyBzbyB3ZSBjYXRjaCB0aG9zZSBhbmRcbiAgICAvLyBmb3J3YXJkIHRoZSBldmVudCBpZiB0aGUgdmFsdWUgaGFzIGNoYW5nZWRcbiAgICAvLyBJbiBlaXRoZXIgY2FzZSwgd2UgZG9uJ3Qgd2FudCB0byBjYWxsIHRoZSBldmVudCBoYW5kbGVyIGlmIHRoZSB2YWx1ZVxuICAgIC8vIGlzIGNoYW5nZWQgZnJvbSBKUyBzbyB3ZSByZWRlZmluZSBhIHNldHRlciBmb3IgYC52YWx1ZWAgdGhhdCB1cGRhdGVzXG4gICAgLy8gb3VyIGFjdGl2ZUVsZW1lbnRWYWx1ZSB2YXJpYWJsZSwgYWxsb3dpbmcgdXMgdG8gaWdub3JlIHRob3NlIGNoYW5nZXNcbiAgICAvL1xuICAgIC8vIHN0b3BXYXRjaGluZygpIHNob3VsZCBiZSBhIG5vb3AgaGVyZSBidXQgd2UgY2FsbCBpdCBqdXN0IGluIGNhc2Ugd2VcbiAgICAvLyBtaXNzZWQgYSBibHVyIGV2ZW50IHNvbWVob3cuXG4gICAgc3RvcFdhdGNoaW5nRm9yVmFsdWVDaGFuZ2UoKTtcbiAgICBzdGFydFdhdGNoaW5nRm9yVmFsdWVDaGFuZ2UodGFyZ2V0LCB0YXJnZXRJbnN0KTtcbiAgfSBlbHNlIGlmIChkb21FdmVudE5hbWUgPT09ICdmb2N1c291dCcpIHtcbiAgICBzdG9wV2F0Y2hpbmdGb3JWYWx1ZUNoYW5nZSgpO1xuICB9XG59IC8vIEZvciBJRTggYW5kIElFOS5cblxuXG5mdW5jdGlvbiBnZXRUYXJnZXRJbnN0Rm9ySW5wdXRFdmVudFBvbHlmaWxsKGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCkge1xuICBpZiAoZG9tRXZlbnROYW1lID09PSAnc2VsZWN0aW9uY2hhbmdlJyB8fCBkb21FdmVudE5hbWUgPT09ICdrZXl1cCcgfHwgZG9tRXZlbnROYW1lID09PSAna2V5ZG93bicpIHtcbiAgICAvLyBPbiB0aGUgc2VsZWN0aW9uY2hhbmdlIGV2ZW50LCB0aGUgdGFyZ2V0IGlzIGp1c3QgZG9jdW1lbnQgd2hpY2ggaXNuJ3RcbiAgICAvLyBoZWxwZnVsIGZvciB1cyBzbyBqdXN0IGNoZWNrIGFjdGl2ZUVsZW1lbnQgaW5zdGVhZC5cbiAgICAvL1xuICAgIC8vIDk5JSBvZiB0aGUgdGltZSwga2V5ZG93biBhbmQga2V5dXAgYXJlbid0IG5lY2Vzc2FyeS4gSUU4IGZhaWxzIHRvIGZpcmVcbiAgICAvLyBwcm9wZXJ0eWNoYW5nZSBvbiB0aGUgZmlyc3QgaW5wdXQgZXZlbnQgYWZ0ZXIgc2V0dGluZyBgdmFsdWVgIGZyb20gYVxuICAgIC8vIHNjcmlwdCBhbmQgZmlyZXMgb25seSBrZXlkb3duLCBrZXlwcmVzcywga2V5dXAuIENhdGNoaW5nIGtleXVwIHVzdWFsbHlcbiAgICAvLyBnZXRzIGl0IGFuZCBjYXRjaGluZyBrZXlkb3duIGxldHMgdXMgZmlyZSBhbiBldmVudCBmb3IgdGhlIGZpcnN0XG4gICAgLy8ga2V5c3Ryb2tlIGlmIHVzZXIgZG9lcyBhIGtleSByZXBlYXQgKGl0J2xsIGJlIGEgbGl0dGxlIGRlbGF5ZWQ6IHJpZ2h0XG4gICAgLy8gYmVmb3JlIHRoZSBzZWNvbmQga2V5c3Ryb2tlKS4gT3RoZXIgaW5wdXQgbWV0aG9kcyAoZS5nLiwgcGFzdGUpIHNlZW0gdG9cbiAgICAvLyBmaXJlIHNlbGVjdGlvbmNoYW5nZSBub3JtYWxseS5cbiAgICByZXR1cm4gZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKGFjdGl2ZUVsZW1lbnRJbnN0KTtcbiAgfVxufVxuLyoqXG4gKiBTRUNUSU9OOiBoYW5kbGUgYGNsaWNrYCBldmVudFxuICovXG5cblxuZnVuY3Rpb24gc2hvdWxkVXNlQ2xpY2tFdmVudChlbGVtKSB7XG4gIC8vIFVzZSB0aGUgYGNsaWNrYCBldmVudCB0byBkZXRlY3QgY2hhbmdlcyB0byBjaGVja2JveCBhbmQgcmFkaW8gaW5wdXRzLlxuICAvLyBUaGlzIGFwcHJvYWNoIHdvcmtzIGFjcm9zcyBhbGwgYnJvd3NlcnMsIHdoZXJlYXMgYGNoYW5nZWAgZG9lcyBub3QgZmlyZVxuICAvLyB1bnRpbCBgYmx1cmAgaW4gSUU4LlxuICB2YXIgbm9kZU5hbWUgPSBlbGVtLm5vZGVOYW1lO1xuICByZXR1cm4gbm9kZU5hbWUgJiYgbm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2lucHV0JyAmJiAoZWxlbS50eXBlID09PSAnY2hlY2tib3gnIHx8IGVsZW0udHlwZSA9PT0gJ3JhZGlvJyk7XG59XG5cbmZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JDbGlja0V2ZW50KGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCkge1xuICBpZiAoZG9tRXZlbnROYW1lID09PSAnY2xpY2snKSB7XG4gICAgcmV0dXJuIGdldEluc3RJZlZhbHVlQ2hhbmdlZCh0YXJnZXRJbnN0KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRUYXJnZXRJbnN0Rm9ySW5wdXRPckNoYW5nZUV2ZW50KGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCkge1xuICBpZiAoZG9tRXZlbnROYW1lID09PSAnaW5wdXQnIHx8IGRvbUV2ZW50TmFtZSA9PT0gJ2NoYW5nZScpIHtcbiAgICByZXR1cm4gZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKHRhcmdldEluc3QpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUNvbnRyb2xsZWRJbnB1dEJsdXIobm9kZSkge1xuICB2YXIgc3RhdGUgPSBub2RlLl93cmFwcGVyU3RhdGU7XG5cbiAgaWYgKCFzdGF0ZSB8fCAhc3RhdGUuY29udHJvbGxlZCB8fCBub2RlLnR5cGUgIT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAge1xuICAgIC8vIElmIGNvbnRyb2xsZWQsIGFzc2lnbiB0aGUgdmFsdWUgYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IHZhbHVlIG9uIGJsdXJcbiAgICBzZXREZWZhdWx0VmFsdWUobm9kZSwgJ251bWJlcicsIG5vZGUudmFsdWUpO1xuICB9XG59XG4vKipcbiAqIFRoaXMgcGx1Z2luIGNyZWF0ZXMgYW4gYG9uQ2hhbmdlYCBldmVudCB0aGF0IG5vcm1hbGl6ZXMgY2hhbmdlIGV2ZW50c1xuICogYWNyb3NzIGZvcm0gZWxlbWVudHMuIFRoaXMgZXZlbnQgZmlyZXMgYXQgYSB0aW1lIHdoZW4gaXQncyBwb3NzaWJsZSB0b1xuICogY2hhbmdlIHRoZSBlbGVtZW50J3MgdmFsdWUgd2l0aG91dCBzZWVpbmcgYSBmbGlja2VyLlxuICpcbiAqIFN1cHBvcnRlZCBlbGVtZW50cyBhcmU6XG4gKiAtIGlucHV0IChzZWUgYGlzVGV4dElucHV0RWxlbWVudGApXG4gKiAtIHRleHRhcmVhXG4gKiAtIHNlbGVjdFxuICovXG5cblxuZnVuY3Rpb24gZXh0cmFjdEV2ZW50cyQxKGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0LCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIpIHtcbiAgdmFyIHRhcmdldE5vZGUgPSB0YXJnZXRJbnN0ID8gZ2V0Tm9kZUZyb21JbnN0YW5jZSh0YXJnZXRJbnN0KSA6IHdpbmRvdztcbiAgdmFyIGdldFRhcmdldEluc3RGdW5jLCBoYW5kbGVFdmVudEZ1bmM7XG5cbiAgaWYgKHNob3VsZFVzZUNoYW5nZUV2ZW50KHRhcmdldE5vZGUpKSB7XG4gICAgZ2V0VGFyZ2V0SW5zdEZ1bmMgPSBnZXRUYXJnZXRJbnN0Rm9yQ2hhbmdlRXZlbnQ7XG4gIH0gZWxzZSBpZiAoaXNUZXh0SW5wdXRFbGVtZW50KHRhcmdldE5vZGUpKSB7XG4gICAgaWYgKGlzSW5wdXRFdmVudFN1cHBvcnRlZCkge1xuICAgICAgZ2V0VGFyZ2V0SW5zdEZ1bmMgPSBnZXRUYXJnZXRJbnN0Rm9ySW5wdXRPckNoYW5nZUV2ZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JJbnB1dEV2ZW50UG9seWZpbGw7XG4gICAgICBoYW5kbGVFdmVudEZ1bmMgPSBoYW5kbGVFdmVudHNGb3JJbnB1dEV2ZW50UG9seWZpbGw7XG4gICAgfVxuICB9IGVsc2UgaWYgKHNob3VsZFVzZUNsaWNrRXZlbnQodGFyZ2V0Tm9kZSkpIHtcbiAgICBnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JDbGlja0V2ZW50O1xuICB9XG5cbiAgaWYgKGdldFRhcmdldEluc3RGdW5jKSB7XG4gICAgdmFyIGluc3QgPSBnZXRUYXJnZXRJbnN0RnVuYyhkb21FdmVudE5hbWUsIHRhcmdldEluc3QpO1xuXG4gICAgaWYgKGluc3QpIHtcbiAgICAgIGNyZWF0ZUFuZEFjY3VtdWxhdGVDaGFuZ2VFdmVudChkaXNwYXRjaFF1ZXVlLCBpbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGlmIChoYW5kbGVFdmVudEZ1bmMpIHtcbiAgICBoYW5kbGVFdmVudEZ1bmMoZG9tRXZlbnROYW1lLCB0YXJnZXROb2RlLCB0YXJnZXRJbnN0KTtcbiAgfSAvLyBXaGVuIGJsdXJyaW5nLCBzZXQgdGhlIHZhbHVlIGF0dHJpYnV0ZSBmb3IgbnVtYmVyIGlucHV0c1xuXG5cbiAgaWYgKGRvbUV2ZW50TmFtZSA9PT0gJ2ZvY3Vzb3V0Jykge1xuICAgIGhhbmRsZUNvbnRyb2xsZWRJbnB1dEJsdXIodGFyZ2V0Tm9kZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVnaXN0ZXJFdmVudHMkMigpIHtcbiAgcmVnaXN0ZXJEaXJlY3RFdmVudCgnb25Nb3VzZUVudGVyJywgWydtb3VzZW91dCcsICdtb3VzZW92ZXInXSk7XG4gIHJlZ2lzdGVyRGlyZWN0RXZlbnQoJ29uTW91c2VMZWF2ZScsIFsnbW91c2VvdXQnLCAnbW91c2VvdmVyJ10pO1xuICByZWdpc3RlckRpcmVjdEV2ZW50KCdvblBvaW50ZXJFbnRlcicsIFsncG9pbnRlcm91dCcsICdwb2ludGVyb3ZlciddKTtcbiAgcmVnaXN0ZXJEaXJlY3RFdmVudCgnb25Qb2ludGVyTGVhdmUnLCBbJ3BvaW50ZXJvdXQnLCAncG9pbnRlcm92ZXInXSk7XG59XG4vKipcbiAqIEZvciBhbG1vc3QgZXZlcnkgaW50ZXJhY3Rpb24gd2UgY2FyZSBhYm91dCwgdGhlcmUgd2lsbCBiZSBib3RoIGEgdG9wLWxldmVsXG4gKiBgbW91c2VvdmVyYCBhbmQgYG1vdXNlb3V0YCBldmVudCB0aGF0IG9jY3Vycy4gT25seSB1c2UgYG1vdXNlb3V0YCBzbyB0aGF0XG4gKiB3ZSBkbyBub3QgZXh0cmFjdCBkdXBsaWNhdGUgZXZlbnRzLiBIb3dldmVyLCBtb3ZpbmcgdGhlIG1vdXNlIGludG8gdGhlXG4gKiBicm93c2VyIGZyb20gb3V0c2lkZSB3aWxsIG5vdCBmaXJlIGEgYG1vdXNlb3V0YCBldmVudC4gSW4gdGhpcyBjYXNlLCB3ZSB1c2VcbiAqIHRoZSBgbW91c2VvdmVyYCB0b3AtbGV2ZWwgZXZlbnQuXG4gKi9cblxuXG5mdW5jdGlvbiBleHRyYWN0RXZlbnRzJDIoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lcikge1xuICB2YXIgaXNPdmVyRXZlbnQgPSBkb21FdmVudE5hbWUgPT09ICdtb3VzZW92ZXInIHx8IGRvbUV2ZW50TmFtZSA9PT0gJ3BvaW50ZXJvdmVyJztcbiAgdmFyIGlzT3V0RXZlbnQgPSBkb21FdmVudE5hbWUgPT09ICdtb3VzZW91dCcgfHwgZG9tRXZlbnROYW1lID09PSAncG9pbnRlcm91dCc7XG5cbiAgaWYgKGlzT3ZlckV2ZW50ICYmICFpc1JlcGxheWluZ0V2ZW50KG5hdGl2ZUV2ZW50KSkge1xuICAgIC8vIElmIHRoaXMgaXMgYW4gb3ZlciBldmVudCB3aXRoIGEgdGFyZ2V0LCB3ZSBtaWdodCBoYXZlIGFscmVhZHkgZGlzcGF0Y2hlZFxuICAgIC8vIHRoZSBldmVudCBpbiB0aGUgb3V0IGV2ZW50IG9mIHRoZSBvdGhlciB0YXJnZXQuIElmIHRoaXMgaXMgcmVwbGF5ZWQsXG4gICAgLy8gdGhlbiBpdCdzIGJlY2F1c2Ugd2UgY291bGRuJ3QgZGlzcGF0Y2ggYWdhaW5zdCB0aGlzIHRhcmdldCBwcmV2aW91c2x5XG4gICAgLy8gc28gd2UgaGF2ZSB0byBkbyBpdCBub3cgaW5zdGVhZC5cbiAgICB2YXIgcmVsYXRlZCA9IG5hdGl2ZUV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgbmF0aXZlRXZlbnQuZnJvbUVsZW1lbnQ7XG5cbiAgICBpZiAocmVsYXRlZCkge1xuICAgICAgLy8gSWYgdGhlIHJlbGF0ZWQgbm9kZSBpcyBtYW5hZ2VkIGJ5IFJlYWN0LCB3ZSBjYW4gYXNzdW1lIHRoYXQgd2UgaGF2ZVxuICAgICAgLy8gYWxyZWFkeSBkaXNwYXRjaGVkIHRoZSBjb3JyZXNwb25kaW5nIGV2ZW50cyBkdXJpbmcgaXRzIG1vdXNlb3V0LlxuICAgICAgaWYgKGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKHJlbGF0ZWQpIHx8IGlzQ29udGFpbmVyTWFya2VkQXNSb290KHJlbGF0ZWQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoIWlzT3V0RXZlbnQgJiYgIWlzT3ZlckV2ZW50KSB7XG4gICAgLy8gTXVzdCBub3QgYmUgYSBtb3VzZSBvciBwb2ludGVyIGluIG9yIG91dCAtIGlnbm9yaW5nLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciB3aW47IC8vIFRPRE86IHdoeSBpcyB0aGlzIG51bGxhYmxlIGluIHRoZSB0eXBlcyBidXQgd2UgcmVhZCBmcm9tIGl0P1xuXG4gIGlmIChuYXRpdmVFdmVudFRhcmdldC53aW5kb3cgPT09IG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gICAgLy8gYG5hdGl2ZUV2ZW50VGFyZ2V0YCBpcyBwcm9iYWJseSBhIHdpbmRvdyBvYmplY3QuXG4gICAgd2luID0gbmF0aXZlRXZlbnRUYXJnZXQ7XG4gIH0gZWxzZSB7XG4gICAgLy8gVE9ETzogRmlndXJlIG91dCB3aHkgYG93bmVyRG9jdW1lbnRgIGlzIHNvbWV0aW1lcyB1bmRlZmluZWQgaW4gSUU4LlxuICAgIHZhciBkb2MgPSBuYXRpdmVFdmVudFRhcmdldC5vd25lckRvY3VtZW50O1xuXG4gICAgaWYgKGRvYykge1xuICAgICAgd2luID0gZG9jLmRlZmF1bHRWaWV3IHx8IGRvYy5wYXJlbnRXaW5kb3c7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdpbiA9IHdpbmRvdztcbiAgICB9XG4gIH1cblxuICB2YXIgZnJvbTtcbiAgdmFyIHRvO1xuXG4gIGlmIChpc091dEV2ZW50KSB7XG4gICAgdmFyIF9yZWxhdGVkID0gbmF0aXZlRXZlbnQucmVsYXRlZFRhcmdldCB8fCBuYXRpdmVFdmVudC50b0VsZW1lbnQ7XG5cbiAgICBmcm9tID0gdGFyZ2V0SW5zdDtcbiAgICB0byA9IF9yZWxhdGVkID8gZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUoX3JlbGF0ZWQpIDogbnVsbDtcblxuICAgIGlmICh0byAhPT0gbnVsbCkge1xuICAgICAgdmFyIG5lYXJlc3RNb3VudGVkID0gZ2V0TmVhcmVzdE1vdW50ZWRGaWJlcih0byk7XG5cbiAgICAgIGlmICh0byAhPT0gbmVhcmVzdE1vdW50ZWQgfHwgdG8udGFnICE9PSBIb3N0Q29tcG9uZW50ICYmIHRvLnRhZyAhPT0gSG9zdFRleHQpIHtcbiAgICAgICAgdG8gPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBNb3ZpbmcgdG8gYSBub2RlIGZyb20gb3V0c2lkZSB0aGUgd2luZG93LlxuICAgIGZyb20gPSBudWxsO1xuICAgIHRvID0gdGFyZ2V0SW5zdDtcbiAgfVxuXG4gIGlmIChmcm9tID09PSB0bykge1xuICAgIC8vIE5vdGhpbmcgcGVydGFpbnMgdG8gb3VyIG1hbmFnZWQgY29tcG9uZW50cy5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljTW91c2VFdmVudDtcbiAgdmFyIGxlYXZlRXZlbnRUeXBlID0gJ29uTW91c2VMZWF2ZSc7XG4gIHZhciBlbnRlckV2ZW50VHlwZSA9ICdvbk1vdXNlRW50ZXInO1xuICB2YXIgZXZlbnRUeXBlUHJlZml4ID0gJ21vdXNlJztcblxuICBpZiAoZG9tRXZlbnROYW1lID09PSAncG9pbnRlcm91dCcgfHwgZG9tRXZlbnROYW1lID09PSAncG9pbnRlcm92ZXInKSB7XG4gICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljUG9pbnRlckV2ZW50O1xuICAgIGxlYXZlRXZlbnRUeXBlID0gJ29uUG9pbnRlckxlYXZlJztcbiAgICBlbnRlckV2ZW50VHlwZSA9ICdvblBvaW50ZXJFbnRlcic7XG4gICAgZXZlbnRUeXBlUHJlZml4ID0gJ3BvaW50ZXInO1xuICB9XG5cbiAgdmFyIGZyb21Ob2RlID0gZnJvbSA9PSBudWxsID8gd2luIDogZ2V0Tm9kZUZyb21JbnN0YW5jZShmcm9tKTtcbiAgdmFyIHRvTm9kZSA9IHRvID09IG51bGwgPyB3aW4gOiBnZXROb2RlRnJvbUluc3RhbmNlKHRvKTtcbiAgdmFyIGxlYXZlID0gbmV3IFN5bnRoZXRpY0V2ZW50Q3RvcihsZWF2ZUV2ZW50VHlwZSwgZXZlbnRUeXBlUHJlZml4ICsgJ2xlYXZlJywgZnJvbSwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgbGVhdmUudGFyZ2V0ID0gZnJvbU5vZGU7XG4gIGxlYXZlLnJlbGF0ZWRUYXJnZXQgPSB0b05vZGU7XG4gIHZhciBlbnRlciA9IG51bGw7IC8vIFdlIHNob3VsZCBvbmx5IHByb2Nlc3MgdGhpcyBuYXRpdmVFdmVudCBpZiB3ZSBhcmUgcHJvY2Vzc2luZ1xuICAvLyB0aGUgZmlyc3QgYW5jZXN0b3IuIE5leHQgdGltZSwgd2Ugd2lsbCBpZ25vcmUgdGhlIGV2ZW50LlxuXG4gIHZhciBuYXRpdmVUYXJnZXRJbnN0ID0gZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUobmF0aXZlRXZlbnRUYXJnZXQpO1xuXG4gIGlmIChuYXRpdmVUYXJnZXRJbnN0ID09PSB0YXJnZXRJbnN0KSB7XG4gICAgdmFyIGVudGVyRXZlbnQgPSBuZXcgU3ludGhldGljRXZlbnRDdG9yKGVudGVyRXZlbnRUeXBlLCBldmVudFR5cGVQcmVmaXggKyAnZW50ZXInLCB0bywgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICBlbnRlckV2ZW50LnRhcmdldCA9IHRvTm9kZTtcbiAgICBlbnRlckV2ZW50LnJlbGF0ZWRUYXJnZXQgPSBmcm9tTm9kZTtcbiAgICBlbnRlciA9IGVudGVyRXZlbnQ7XG4gIH1cblxuICBhY2N1bXVsYXRlRW50ZXJMZWF2ZVR3b1BoYXNlTGlzdGVuZXJzKGRpc3BhdGNoUXVldWUsIGxlYXZlLCBlbnRlciwgZnJvbSwgdG8pO1xufVxuXG4vKipcbiAqIGlubGluZWQgT2JqZWN0LmlzIHBvbHlmaWxsIHRvIGF2b2lkIHJlcXVpcmluZyBjb25zdW1lcnMgc2hpcCB0aGVpciBvd25cbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9pc1xuICovXG5mdW5jdGlvbiBpcyh4LCB5KSB7XG4gIHJldHVybiB4ID09PSB5ICYmICh4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geSkgfHwgeCAhPT0geCAmJiB5ICE9PSB5IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gIDtcbn1cblxudmFyIG9iamVjdElzID0gdHlwZW9mIE9iamVjdC5pcyA9PT0gJ2Z1bmN0aW9uJyA/IE9iamVjdC5pcyA6IGlzO1xuXG4vKipcbiAqIFBlcmZvcm1zIGVxdWFsaXR5IGJ5IGl0ZXJhdGluZyB0aHJvdWdoIGtleXMgb24gYW4gb2JqZWN0IGFuZCByZXR1cm5pbmcgZmFsc2VcbiAqIHdoZW4gYW55IGtleSBoYXMgdmFsdWVzIHdoaWNoIGFyZSBub3Qgc3RyaWN0bHkgZXF1YWwgYmV0d2VlbiB0aGUgYXJndW1lbnRzLlxuICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIHZhbHVlcyBvZiBhbGwga2V5cyBhcmUgc3RyaWN0bHkgZXF1YWwuXG4gKi9cblxuZnVuY3Rpb24gc2hhbGxvd0VxdWFsKG9iakEsIG9iakIpIHtcbiAgaWYgKG9iamVjdElzKG9iakEsIG9iakIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIG9iakEgIT09ICdvYmplY3QnIHx8IG9iakEgPT09IG51bGwgfHwgdHlwZW9mIG9iakIgIT09ICdvYmplY3QnIHx8IG9iakIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIga2V5c0EgPSBPYmplY3Qua2V5cyhvYmpBKTtcbiAgdmFyIGtleXNCID0gT2JqZWN0LmtleXMob2JqQik7XG5cbiAgaWYgKGtleXNBLmxlbmd0aCAhPT0ga2V5c0IubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIFRlc3QgZm9yIEEncyBrZXlzIGRpZmZlcmVudCBmcm9tIEIuXG5cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXNBLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGN1cnJlbnRLZXkgPSBrZXlzQVtpXTtcblxuICAgIGlmICghaGFzT3duUHJvcGVydHkuY2FsbChvYmpCLCBjdXJyZW50S2V5KSB8fCAhb2JqZWN0SXMob2JqQVtjdXJyZW50S2V5XSwgb2JqQltjdXJyZW50S2V5XSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBHaXZlbiBhbnkgbm9kZSByZXR1cm4gdGhlIGZpcnN0IGxlYWYgbm9kZSB3aXRob3V0IGNoaWxkcmVuLlxuICpcbiAqIEBwYXJhbSB7RE9NRWxlbWVudHxET01UZXh0Tm9kZX0gbm9kZVxuICogQHJldHVybiB7RE9NRWxlbWVudHxET01UZXh0Tm9kZX1cbiAqL1xuXG5mdW5jdGlvbiBnZXRMZWFmTm9kZShub2RlKSB7XG4gIHdoaWxlIChub2RlICYmIG5vZGUuZmlyc3RDaGlsZCkge1xuICAgIG5vZGUgPSBub2RlLmZpcnN0Q2hpbGQ7XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn1cbi8qKlxuICogR2V0IHRoZSBuZXh0IHNpYmxpbmcgd2l0aGluIGEgY29udGFpbmVyLiBUaGlzIHdpbGwgd2FsayB1cCB0aGVcbiAqIERPTSBpZiBhIG5vZGUncyBzaWJsaW5ncyBoYXZlIGJlZW4gZXhoYXVzdGVkLlxuICpcbiAqIEBwYXJhbSB7RE9NRWxlbWVudHxET01UZXh0Tm9kZX0gbm9kZVxuICogQHJldHVybiB7P0RPTUVsZW1lbnR8RE9NVGV4dE5vZGV9XG4gKi9cblxuXG5mdW5jdGlvbiBnZXRTaWJsaW5nTm9kZShub2RlKSB7XG4gIHdoaWxlIChub2RlKSB7XG4gICAgaWYgKG5vZGUubmV4dFNpYmxpbmcpIHtcbiAgICAgIHJldHVybiBub2RlLm5leHRTaWJsaW5nO1xuICAgIH1cblxuICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGU7XG4gIH1cbn1cbi8qKlxuICogR2V0IG9iamVjdCBkZXNjcmliaW5nIHRoZSBub2RlcyB3aGljaCBjb250YWluIGNoYXJhY3RlcnMgYXQgb2Zmc2V0LlxuICpcbiAqIEBwYXJhbSB7RE9NRWxlbWVudHxET01UZXh0Tm9kZX0gcm9vdFxuICogQHBhcmFtIHtudW1iZXJ9IG9mZnNldFxuICogQHJldHVybiB7P29iamVjdH1cbiAqL1xuXG5cbmZ1bmN0aW9uIGdldE5vZGVGb3JDaGFyYWN0ZXJPZmZzZXQocm9vdCwgb2Zmc2V0KSB7XG4gIHZhciBub2RlID0gZ2V0TGVhZk5vZGUocm9vdCk7XG4gIHZhciBub2RlU3RhcnQgPSAwO1xuICB2YXIgbm9kZUVuZCA9IDA7XG5cbiAgd2hpbGUgKG5vZGUpIHtcbiAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFKSB7XG4gICAgICBub2RlRW5kID0gbm9kZVN0YXJ0ICsgbm9kZS50ZXh0Q29udGVudC5sZW5ndGg7XG5cbiAgICAgIGlmIChub2RlU3RhcnQgPD0gb2Zmc2V0ICYmIG5vZGVFbmQgPj0gb2Zmc2V0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbm9kZTogbm9kZSxcbiAgICAgICAgICBvZmZzZXQ6IG9mZnNldCAtIG5vZGVTdGFydFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBub2RlU3RhcnQgPSBub2RlRW5kO1xuICAgIH1cblxuICAgIG5vZGUgPSBnZXRMZWFmTm9kZShnZXRTaWJsaW5nTm9kZShub2RlKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG91dGVyTm9kZVxuICogQHJldHVybiB7P29iamVjdH1cbiAqL1xuXG5mdW5jdGlvbiBnZXRPZmZzZXRzKG91dGVyTm9kZSkge1xuICB2YXIgb3duZXJEb2N1bWVudCA9IG91dGVyTm9kZS5vd25lckRvY3VtZW50O1xuICB2YXIgd2luID0gb3duZXJEb2N1bWVudCAmJiBvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3IHx8IHdpbmRvdztcbiAgdmFyIHNlbGVjdGlvbiA9IHdpbi5nZXRTZWxlY3Rpb24gJiYgd2luLmdldFNlbGVjdGlvbigpO1xuXG4gIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgYW5jaG9yTm9kZSA9IHNlbGVjdGlvbi5hbmNob3JOb2RlLFxuICAgICAgYW5jaG9yT2Zmc2V0ID0gc2VsZWN0aW9uLmFuY2hvck9mZnNldCxcbiAgICAgIGZvY3VzTm9kZSA9IHNlbGVjdGlvbi5mb2N1c05vZGUsXG4gICAgICBmb2N1c09mZnNldCA9IHNlbGVjdGlvbi5mb2N1c09mZnNldDsgLy8gSW4gRmlyZWZveCwgYW5jaG9yTm9kZSBhbmQgZm9jdXNOb2RlIGNhbiBiZSBcImFub255bW91cyBkaXZzXCIsIGUuZy4gdGhlXG4gIC8vIHVwL2Rvd24gYnV0dG9ucyBvbiBhbiA8aW5wdXQgdHlwZT1cIm51bWJlclwiPi4gQW5vbnltb3VzIGRpdnMgZG8gbm90IHNlZW0gdG9cbiAgLy8gZXhwb3NlIHByb3BlcnRpZXMsIHRyaWdnZXJpbmcgYSBcIlBlcm1pc3Npb24gZGVuaWVkIGVycm9yXCIgaWYgYW55IG9mIGl0c1xuICAvLyBwcm9wZXJ0aWVzIGFyZSBhY2Nlc3NlZC4gVGhlIG9ubHkgc2VlbWluZ2x5IHBvc3NpYmxlIHdheSB0byBhdm9pZCBlcnJvcmluZ1xuICAvLyBpcyB0byBhY2Nlc3MgYSBwcm9wZXJ0eSB0aGF0IHR5cGljYWxseSB3b3JrcyBmb3Igbm9uLWFub255bW91cyBkaXZzIGFuZFxuICAvLyBjYXRjaCBhbnkgZXJyb3IgdGhhdCBtYXkgb3RoZXJ3aXNlIGFyaXNlLiBTZWVcbiAgLy8gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NDI3XG5cbiAgdHJ5IHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cbiAgICBhbmNob3JOb2RlLm5vZGVUeXBlO1xuICAgIGZvY3VzTm9kZS5ub2RlVHlwZTtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gZ2V0TW9kZXJuT2Zmc2V0c0Zyb21Qb2ludHMob3V0ZXJOb2RlLCBhbmNob3JOb2RlLCBhbmNob3JPZmZzZXQsIGZvY3VzTm9kZSwgZm9jdXNPZmZzZXQpO1xufVxuLyoqXG4gKiBSZXR1cm5zIHtzdGFydCwgZW5kfSB3aGVyZSBgc3RhcnRgIGlzIHRoZSBjaGFyYWN0ZXIvY29kZXBvaW50IGluZGV4IG9mXG4gKiAoYW5jaG9yTm9kZSwgYW5jaG9yT2Zmc2V0KSB3aXRoaW4gdGhlIHRleHRDb250ZW50IG9mIGBvdXRlck5vZGVgLCBhbmRcbiAqIGBlbmRgIGlzIHRoZSBpbmRleCBvZiAoZm9jdXNOb2RlLCBmb2N1c09mZnNldCkuXG4gKlxuICogUmV0dXJucyBudWxsIGlmIHlvdSBwYXNzIGluIGdhcmJhZ2UgaW5wdXQgYnV0IHdlIHNob3VsZCBwcm9iYWJseSBqdXN0IGNyYXNoLlxuICpcbiAqIEV4cG9ydGVkIG9ubHkgZm9yIHRlc3RpbmcuXG4gKi9cblxuZnVuY3Rpb24gZ2V0TW9kZXJuT2Zmc2V0c0Zyb21Qb2ludHMob3V0ZXJOb2RlLCBhbmNob3JOb2RlLCBhbmNob3JPZmZzZXQsIGZvY3VzTm9kZSwgZm9jdXNPZmZzZXQpIHtcbiAgdmFyIGxlbmd0aCA9IDA7XG4gIHZhciBzdGFydCA9IC0xO1xuICB2YXIgZW5kID0gLTE7XG4gIHZhciBpbmRleFdpdGhpbkFuY2hvciA9IDA7XG4gIHZhciBpbmRleFdpdGhpbkZvY3VzID0gMDtcbiAgdmFyIG5vZGUgPSBvdXRlck5vZGU7XG4gIHZhciBwYXJlbnROb2RlID0gbnVsbDtcblxuICBvdXRlcjogd2hpbGUgKHRydWUpIHtcbiAgICB2YXIgbmV4dCA9IG51bGw7XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKG5vZGUgPT09IGFuY2hvck5vZGUgJiYgKGFuY2hvck9mZnNldCA9PT0gMCB8fCBub2RlLm5vZGVUeXBlID09PSBURVhUX05PREUpKSB7XG4gICAgICAgIHN0YXJ0ID0gbGVuZ3RoICsgYW5jaG9yT2Zmc2V0O1xuICAgICAgfVxuXG4gICAgICBpZiAobm9kZSA9PT0gZm9jdXNOb2RlICYmIChmb2N1c09mZnNldCA9PT0gMCB8fCBub2RlLm5vZGVUeXBlID09PSBURVhUX05PREUpKSB7XG4gICAgICAgIGVuZCA9IGxlbmd0aCArIGZvY3VzT2Zmc2V0O1xuICAgICAgfVxuXG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFKSB7XG4gICAgICAgIGxlbmd0aCArPSBub2RlLm5vZGVWYWx1ZS5sZW5ndGg7XG4gICAgICB9XG5cbiAgICAgIGlmICgobmV4dCA9IG5vZGUuZmlyc3RDaGlsZCkgPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IC8vIE1vdmluZyBmcm9tIGBub2RlYCB0byBpdHMgZmlyc3QgY2hpbGQgYG5leHRgLlxuXG5cbiAgICAgIHBhcmVudE5vZGUgPSBub2RlO1xuICAgICAgbm9kZSA9IG5leHQ7XG4gICAgfVxuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmIChub2RlID09PSBvdXRlck5vZGUpIHtcbiAgICAgICAgLy8gSWYgYG91dGVyTm9kZWAgaGFzIGNoaWxkcmVuLCB0aGlzIGlzIGFsd2F5cyB0aGUgc2Vjb25kIHRpbWUgdmlzaXRpbmdcbiAgICAgICAgLy8gaXQuIElmIGl0IGhhcyBubyBjaGlsZHJlbiwgdGhpcyBpcyBzdGlsbCB0aGUgZmlyc3QgbG9vcCwgYW5kIHRoZSBvbmx5XG4gICAgICAgIC8vIHZhbGlkIHNlbGVjdGlvbiBpcyBhbmNob3JOb2RlIGFuZCBmb2N1c05vZGUgYm90aCBlcXVhbCB0byB0aGlzIG5vZGVcbiAgICAgICAgLy8gYW5kIGJvdGggb2Zmc2V0cyAwLCBpbiB3aGljaCBjYXNlIHdlIHdpbGwgaGF2ZSBoYW5kbGVkIGFib3ZlLlxuICAgICAgICBicmVhayBvdXRlcjtcbiAgICAgIH1cblxuICAgICAgaWYgKHBhcmVudE5vZGUgPT09IGFuY2hvck5vZGUgJiYgKytpbmRleFdpdGhpbkFuY2hvciA9PT0gYW5jaG9yT2Zmc2V0KSB7XG4gICAgICAgIHN0YXJ0ID0gbGVuZ3RoO1xuICAgICAgfVxuXG4gICAgICBpZiAocGFyZW50Tm9kZSA9PT0gZm9jdXNOb2RlICYmICsraW5kZXhXaXRoaW5Gb2N1cyA9PT0gZm9jdXNPZmZzZXQpIHtcbiAgICAgICAgZW5kID0gbGVuZ3RoO1xuICAgICAgfVxuXG4gICAgICBpZiAoKG5leHQgPSBub2RlLm5leHRTaWJsaW5nKSAhPT0gbnVsbCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IHBhcmVudE5vZGU7XG4gICAgICBwYXJlbnROb2RlID0gbm9kZS5wYXJlbnROb2RlO1xuICAgIH0gLy8gTW92aW5nIGZyb20gYG5vZGVgIHRvIGl0cyBuZXh0IHNpYmxpbmcgYG5leHRgLlxuXG5cbiAgICBub2RlID0gbmV4dDtcbiAgfVxuXG4gIGlmIChzdGFydCA9PT0gLTEgfHwgZW5kID09PSAtMSkge1xuICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4gKFdvdWxkIGhhcHBlbiBpZiB0aGUgYW5jaG9yL2ZvY3VzIG5vZGVzIGFyZW4ndFxuICAgIC8vIGFjdHVhbGx5IGluc2lkZSB0aGUgcGFzc2VkLWluIG5vZGUuKVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydDogc3RhcnQsXG4gICAgZW5kOiBlbmRcbiAgfTtcbn1cbi8qKlxuICogSW4gbW9kZXJuIG5vbi1JRSBicm93c2Vycywgd2UgY2FuIHN1cHBvcnQgYm90aCBmb3J3YXJkIGFuZCBiYWNrd2FyZFxuICogc2VsZWN0aW9ucy5cbiAqXG4gKiBOb3RlOiBJRTEwKyBzdXBwb3J0cyB0aGUgU2VsZWN0aW9uIG9iamVjdCwgYnV0IGl0IGRvZXMgbm90IHN1cHBvcnRcbiAqIHRoZSBgZXh0ZW5kYCBtZXRob2QsIHdoaWNoIG1lYW5zIHRoYXQgZXZlbiBpbiBtb2Rlcm4gSUUsIGl0J3Mgbm90IHBvc3NpYmxlXG4gKiB0byBwcm9ncmFtbWF0aWNhbGx5IGNyZWF0ZSBhIGJhY2t3YXJkIHNlbGVjdGlvbi4gVGh1cywgZm9yIGFsbCBJRVxuICogdmVyc2lvbnMsIHdlIHVzZSB0aGUgb2xkIElFIEFQSSB0byBjcmVhdGUgb3VyIHNlbGVjdGlvbnMuXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fERPTVRleHROb2RlfSBub2RlXG4gKiBAcGFyYW0ge29iamVjdH0gb2Zmc2V0c1xuICovXG5cbmZ1bmN0aW9uIHNldE9mZnNldHMobm9kZSwgb2Zmc2V0cykge1xuICB2YXIgZG9jID0gbm9kZS5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50O1xuICB2YXIgd2luID0gZG9jICYmIGRvYy5kZWZhdWx0VmlldyB8fCB3aW5kb3c7IC8vIEVkZ2UgZmFpbHMgd2l0aCBcIk9iamVjdCBleHBlY3RlZFwiIGluIHNvbWUgc2NlbmFyaW9zLlxuICAvLyAoRm9yIGluc3RhbmNlOiBUaW55TUNFIGVkaXRvciB1c2VkIGluIGEgbGlzdCBjb21wb25lbnQgdGhhdCBzdXBwb3J0cyBwYXN0aW5nIHRvIGFkZCBtb3JlLFxuICAvLyBmYWlscyB3aGVuIHBhc3RpbmcgMTAwKyBpdGVtcylcblxuICBpZiAoIXdpbi5nZXRTZWxlY3Rpb24pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgc2VsZWN0aW9uID0gd2luLmdldFNlbGVjdGlvbigpO1xuICB2YXIgbGVuZ3RoID0gbm9kZS50ZXh0Q29udGVudC5sZW5ndGg7XG4gIHZhciBzdGFydCA9IE1hdGgubWluKG9mZnNldHMuc3RhcnQsIGxlbmd0aCk7XG4gIHZhciBlbmQgPSBvZmZzZXRzLmVuZCA9PT0gdW5kZWZpbmVkID8gc3RhcnQgOiBNYXRoLm1pbihvZmZzZXRzLmVuZCwgbGVuZ3RoKTsgLy8gSUUgMTEgdXNlcyBtb2Rlcm4gc2VsZWN0aW9uLCBidXQgZG9lc24ndCBzdXBwb3J0IHRoZSBleHRlbmQgbWV0aG9kLlxuICAvLyBGbGlwIGJhY2t3YXJkIHNlbGVjdGlvbnMsIHNvIHdlIGNhbiBzZXQgd2l0aCBhIHNpbmdsZSByYW5nZS5cblxuICBpZiAoIXNlbGVjdGlvbi5leHRlbmQgJiYgc3RhcnQgPiBlbmQpIHtcbiAgICB2YXIgdGVtcCA9IGVuZDtcbiAgICBlbmQgPSBzdGFydDtcbiAgICBzdGFydCA9IHRlbXA7XG4gIH1cblxuICB2YXIgc3RhcnRNYXJrZXIgPSBnZXROb2RlRm9yQ2hhcmFjdGVyT2Zmc2V0KG5vZGUsIHN0YXJ0KTtcbiAgdmFyIGVuZE1hcmtlciA9IGdldE5vZGVGb3JDaGFyYWN0ZXJPZmZzZXQobm9kZSwgZW5kKTtcblxuICBpZiAoc3RhcnRNYXJrZXIgJiYgZW5kTWFya2VyKSB7XG4gICAgaWYgKHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAxICYmIHNlbGVjdGlvbi5hbmNob3JOb2RlID09PSBzdGFydE1hcmtlci5ub2RlICYmIHNlbGVjdGlvbi5hbmNob3JPZmZzZXQgPT09IHN0YXJ0TWFya2VyLm9mZnNldCAmJiBzZWxlY3Rpb24uZm9jdXNOb2RlID09PSBlbmRNYXJrZXIubm9kZSAmJiBzZWxlY3Rpb24uZm9jdXNPZmZzZXQgPT09IGVuZE1hcmtlci5vZmZzZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgcmFuZ2UgPSBkb2MuY3JlYXRlUmFuZ2UoKTtcbiAgICByYW5nZS5zZXRTdGFydChzdGFydE1hcmtlci5ub2RlLCBzdGFydE1hcmtlci5vZmZzZXQpO1xuICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcblxuICAgIGlmIChzdGFydCA+IGVuZCkge1xuICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICAgIHNlbGVjdGlvbi5leHRlbmQoZW5kTWFya2VyLm5vZGUsIGVuZE1hcmtlci5vZmZzZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByYW5nZS5zZXRFbmQoZW5kTWFya2VyLm5vZGUsIGVuZE1hcmtlci5vZmZzZXQpO1xuICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNUZXh0Tm9kZShub2RlKSB7XG4gIHJldHVybiBub2RlICYmIG5vZGUubm9kZVR5cGUgPT09IFRFWFRfTk9ERTtcbn1cblxuZnVuY3Rpb24gY29udGFpbnNOb2RlKG91dGVyTm9kZSwgaW5uZXJOb2RlKSB7XG4gIGlmICghb3V0ZXJOb2RlIHx8ICFpbm5lck5vZGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSBpZiAob3V0ZXJOb2RlID09PSBpbm5lck5vZGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIGlmIChpc1RleHROb2RlKG91dGVyTm9kZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSBpZiAoaXNUZXh0Tm9kZShpbm5lck5vZGUpKSB7XG4gICAgcmV0dXJuIGNvbnRhaW5zTm9kZShvdXRlck5vZGUsIGlubmVyTm9kZS5wYXJlbnROb2RlKTtcbiAgfSBlbHNlIGlmICgnY29udGFpbnMnIGluIG91dGVyTm9kZSkge1xuICAgIHJldHVybiBvdXRlck5vZGUuY29udGFpbnMoaW5uZXJOb2RlKTtcbiAgfSBlbHNlIGlmIChvdXRlck5vZGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24pIHtcbiAgICByZXR1cm4gISEob3V0ZXJOb2RlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGlubmVyTm9kZSkgJiAxNik7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzSW5Eb2N1bWVudChub2RlKSB7XG4gIHJldHVybiBub2RlICYmIG5vZGUub3duZXJEb2N1bWVudCAmJiBjb250YWluc05vZGUobm9kZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgbm9kZSk7XG59XG5cbmZ1bmN0aW9uIGlzU2FtZU9yaWdpbkZyYW1lKGlmcmFtZSkge1xuICB0cnkge1xuICAgIC8vIEFjY2Vzc2luZyB0aGUgY29udGVudERvY3VtZW50IG9mIGEgSFRNTElmcmFtZUVsZW1lbnQgY2FuIGNhdXNlIHRoZSBicm93c2VyXG4gICAgLy8gdG8gdGhyb3csIGUuZy4gaWYgaXQgaGFzIGEgY3Jvc3Mtb3JpZ2luIHNyYyBhdHRyaWJ1dGUuXG4gICAgLy8gU2FmYXJpIHdpbGwgc2hvdyBhbiBlcnJvciBpbiB0aGUgY29uc29sZSB3aGVuIHRoZSBhY2Nlc3MgcmVzdWx0cyBpbiBcIkJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpblwiLiBlLmc6XG4gICAgLy8gaWZyYW1lLmNvbnRlbnREb2N1bWVudC5kZWZhdWx0VmlldztcbiAgICAvLyBBIHNhZmV0eSB3YXkgaXMgdG8gYWNjZXNzIG9uZSBvZiB0aGUgY3Jvc3Mgb3JpZ2luIHByb3BlcnRpZXM6IFdpbmRvdyBvciBMb2NhdGlvblxuICAgIC8vIFdoaWNoIG1pZ2h0IHJlc3VsdCBpbiBcIlNlY3VyaXR5RXJyb3JcIiBET00gRXhjZXB0aW9uIGFuZCBpdCBpcyBjb21wYXRpYmxlIHRvIFNhZmFyaS5cbiAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9icm93c2Vycy5odG1sI2ludGVncmF0aW9uLXdpdGgtaWRsXG4gICAgcmV0dXJuIHR5cGVvZiBpZnJhbWUuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmID09PSAnc3RyaW5nJztcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEFjdGl2ZUVsZW1lbnREZWVwKCkge1xuICB2YXIgd2luID0gd2luZG93O1xuICB2YXIgZWxlbWVudCA9IGdldEFjdGl2ZUVsZW1lbnQoKTtcblxuICB3aGlsZSAoZWxlbWVudCBpbnN0YW5jZW9mIHdpbi5IVE1MSUZyYW1lRWxlbWVudCkge1xuICAgIGlmIChpc1NhbWVPcmlnaW5GcmFtZShlbGVtZW50KSkge1xuICAgICAgd2luID0gZWxlbWVudC5jb250ZW50V2luZG93O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG5cbiAgICBlbGVtZW50ID0gZ2V0QWN0aXZlRWxlbWVudCh3aW4uZG9jdW1lbnQpO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG4vKipcbiAqIEBSZWFjdElucHV0U2VsZWN0aW9uOiBSZWFjdCBpbnB1dCBzZWxlY3Rpb24gbW9kdWxlLiBCYXNlZCBvbiBTZWxlY3Rpb24uanMsXG4gKiBidXQgbW9kaWZpZWQgdG8gYmUgc3VpdGFibGUgZm9yIHJlYWN0IGFuZCBoYXMgYSBjb3VwbGUgb2YgYnVnIGZpeGVzIChkb2Vzbid0XG4gKiBhc3N1bWUgYnV0dG9ucyBoYXZlIHJhbmdlIHNlbGVjdGlvbnMgYWxsb3dlZCkuXG4gKiBJbnB1dCBzZWxlY3Rpb24gbW9kdWxlIGZvciBSZWFjdC5cbiAqL1xuXG4vKipcbiAqIEBoYXNTZWxlY3Rpb25DYXBhYmlsaXRpZXM6IHdlIGdldCB0aGUgZWxlbWVudCB0eXBlcyB0aGF0IHN1cHBvcnQgc2VsZWN0aW9uXG4gKiBmcm9tIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2RvLW5vdC1hcHBseSwgbG9va2luZyBhdCBgc2VsZWN0aW9uU3RhcnRgXG4gKiBhbmQgYHNlbGVjdGlvbkVuZGAgcm93cy5cbiAqL1xuXG5cbmZ1bmN0aW9uIGhhc1NlbGVjdGlvbkNhcGFiaWxpdGllcyhlbGVtKSB7XG4gIHZhciBub2RlTmFtZSA9IGVsZW0gJiYgZWxlbS5ub2RlTmFtZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBub2RlTmFtZSAmJiAobm9kZU5hbWUgPT09ICdpbnB1dCcgJiYgKGVsZW0udHlwZSA9PT0gJ3RleHQnIHx8IGVsZW0udHlwZSA9PT0gJ3NlYXJjaCcgfHwgZWxlbS50eXBlID09PSAndGVsJyB8fCBlbGVtLnR5cGUgPT09ICd1cmwnIHx8IGVsZW0udHlwZSA9PT0gJ3Bhc3N3b3JkJykgfHwgbm9kZU5hbWUgPT09ICd0ZXh0YXJlYScgfHwgZWxlbS5jb250ZW50RWRpdGFibGUgPT09ICd0cnVlJyk7XG59XG5mdW5jdGlvbiBnZXRTZWxlY3Rpb25JbmZvcm1hdGlvbigpIHtcbiAgdmFyIGZvY3VzZWRFbGVtID0gZ2V0QWN0aXZlRWxlbWVudERlZXAoKTtcbiAgcmV0dXJuIHtcbiAgICBmb2N1c2VkRWxlbTogZm9jdXNlZEVsZW0sXG4gICAgc2VsZWN0aW9uUmFuZ2U6IGhhc1NlbGVjdGlvbkNhcGFiaWxpdGllcyhmb2N1c2VkRWxlbSkgPyBnZXRTZWxlY3Rpb24oZm9jdXNlZEVsZW0pIDogbnVsbFxuICB9O1xufVxuLyoqXG4gKiBAcmVzdG9yZVNlbGVjdGlvbjogSWYgYW55IHNlbGVjdGlvbiBpbmZvcm1hdGlvbiB3YXMgcG90ZW50aWFsbHkgbG9zdCxcbiAqIHJlc3RvcmUgaXQuIFRoaXMgaXMgdXNlZnVsIHdoZW4gcGVyZm9ybWluZyBvcGVyYXRpb25zIHRoYXQgY291bGQgcmVtb3ZlIGRvbVxuICogbm9kZXMgYW5kIHBsYWNlIHRoZW0gYmFjayBpbiwgcmVzdWx0aW5nIGluIGZvY3VzIGJlaW5nIGxvc3QuXG4gKi9cblxuZnVuY3Rpb24gcmVzdG9yZVNlbGVjdGlvbihwcmlvclNlbGVjdGlvbkluZm9ybWF0aW9uKSB7XG4gIHZhciBjdXJGb2N1c2VkRWxlbSA9IGdldEFjdGl2ZUVsZW1lbnREZWVwKCk7XG4gIHZhciBwcmlvckZvY3VzZWRFbGVtID0gcHJpb3JTZWxlY3Rpb25JbmZvcm1hdGlvbi5mb2N1c2VkRWxlbTtcbiAgdmFyIHByaW9yU2VsZWN0aW9uUmFuZ2UgPSBwcmlvclNlbGVjdGlvbkluZm9ybWF0aW9uLnNlbGVjdGlvblJhbmdlO1xuXG4gIGlmIChjdXJGb2N1c2VkRWxlbSAhPT0gcHJpb3JGb2N1c2VkRWxlbSAmJiBpc0luRG9jdW1lbnQocHJpb3JGb2N1c2VkRWxlbSkpIHtcbiAgICBpZiAocHJpb3JTZWxlY3Rpb25SYW5nZSAhPT0gbnVsbCAmJiBoYXNTZWxlY3Rpb25DYXBhYmlsaXRpZXMocHJpb3JGb2N1c2VkRWxlbSkpIHtcbiAgICAgIHNldFNlbGVjdGlvbihwcmlvckZvY3VzZWRFbGVtLCBwcmlvclNlbGVjdGlvblJhbmdlKTtcbiAgICB9IC8vIEZvY3VzaW5nIGEgbm9kZSBjYW4gY2hhbmdlIHRoZSBzY3JvbGwgcG9zaXRpb24sIHdoaWNoIGlzIHVuZGVzaXJhYmxlXG5cblxuICAgIHZhciBhbmNlc3RvcnMgPSBbXTtcbiAgICB2YXIgYW5jZXN0b3IgPSBwcmlvckZvY3VzZWRFbGVtO1xuXG4gICAgd2hpbGUgKGFuY2VzdG9yID0gYW5jZXN0b3IucGFyZW50Tm9kZSkge1xuICAgICAgaWYgKGFuY2VzdG9yLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREUpIHtcbiAgICAgICAgYW5jZXN0b3JzLnB1c2goe1xuICAgICAgICAgIGVsZW1lbnQ6IGFuY2VzdG9yLFxuICAgICAgICAgIGxlZnQ6IGFuY2VzdG9yLnNjcm9sbExlZnQsXG4gICAgICAgICAgdG9wOiBhbmNlc3Rvci5zY3JvbGxUb3BcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBwcmlvckZvY3VzZWRFbGVtLmZvY3VzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcmlvckZvY3VzZWRFbGVtLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbmNlc3RvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpbmZvID0gYW5jZXN0b3JzW2ldO1xuICAgICAgaW5mby5lbGVtZW50LnNjcm9sbExlZnQgPSBpbmZvLmxlZnQ7XG4gICAgICBpbmZvLmVsZW1lbnQuc2Nyb2xsVG9wID0gaW5mby50b3A7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEBnZXRTZWxlY3Rpb246IEdldHMgdGhlIHNlbGVjdGlvbiBib3VuZHMgb2YgYSBmb2N1c2VkIHRleHRhcmVhLCBpbnB1dCBvclxuICogY29udGVudEVkaXRhYmxlIG5vZGUuXG4gKiAtQGlucHV0OiBMb29rIHVwIHNlbGVjdGlvbiBib3VuZHMgb2YgdGhpcyBpbnB1dFxuICogLUByZXR1cm4ge3N0YXJ0OiBzZWxlY3Rpb25TdGFydCwgZW5kOiBzZWxlY3Rpb25FbmR9XG4gKi9cblxuZnVuY3Rpb24gZ2V0U2VsZWN0aW9uKGlucHV0KSB7XG4gIHZhciBzZWxlY3Rpb247XG5cbiAgaWYgKCdzZWxlY3Rpb25TdGFydCcgaW4gaW5wdXQpIHtcbiAgICAvLyBNb2Rlcm4gYnJvd3NlciB3aXRoIGlucHV0IG9yIHRleHRhcmVhLlxuICAgIHNlbGVjdGlvbiA9IHtcbiAgICAgIHN0YXJ0OiBpbnB1dC5zZWxlY3Rpb25TdGFydCxcbiAgICAgIGVuZDogaW5wdXQuc2VsZWN0aW9uRW5kXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICAvLyBDb250ZW50IGVkaXRhYmxlIG9yIG9sZCBJRSB0ZXh0YXJlYS5cbiAgICBzZWxlY3Rpb24gPSBnZXRPZmZzZXRzKGlucHV0KTtcbiAgfVxuXG4gIHJldHVybiBzZWxlY3Rpb24gfHwge1xuICAgIHN0YXJ0OiAwLFxuICAgIGVuZDogMFxuICB9O1xufVxuLyoqXG4gKiBAc2V0U2VsZWN0aW9uOiBTZXRzIHRoZSBzZWxlY3Rpb24gYm91bmRzIG9mIGEgdGV4dGFyZWEgb3IgaW5wdXQgYW5kIGZvY3VzZXNcbiAqIHRoZSBpbnB1dC5cbiAqIC1AaW5wdXQgICAgIFNldCBzZWxlY3Rpb24gYm91bmRzIG9mIHRoaXMgaW5wdXQgb3IgdGV4dGFyZWFcbiAqIC1Ab2Zmc2V0cyAgIE9iamVjdCBvZiBzYW1lIGZvcm0gdGhhdCBpcyByZXR1cm5lZCBmcm9tIGdldCpcbiAqL1xuXG5mdW5jdGlvbiBzZXRTZWxlY3Rpb24oaW5wdXQsIG9mZnNldHMpIHtcbiAgdmFyIHN0YXJ0ID0gb2Zmc2V0cy5zdGFydDtcbiAgdmFyIGVuZCA9IG9mZnNldHMuZW5kO1xuXG4gIGlmIChlbmQgPT09IHVuZGVmaW5lZCkge1xuICAgIGVuZCA9IHN0YXJ0O1xuICB9XG5cbiAgaWYgKCdzZWxlY3Rpb25TdGFydCcgaW4gaW5wdXQpIHtcbiAgICBpbnB1dC5zZWxlY3Rpb25TdGFydCA9IHN0YXJ0O1xuICAgIGlucHV0LnNlbGVjdGlvbkVuZCA9IE1hdGgubWluKGVuZCwgaW5wdXQudmFsdWUubGVuZ3RoKTtcbiAgfSBlbHNlIHtcbiAgICBzZXRPZmZzZXRzKGlucHV0LCBvZmZzZXRzKTtcbiAgfVxufVxuXG52YXIgc2tpcFNlbGVjdGlvbkNoYW5nZUV2ZW50ID0gY2FuVXNlRE9NICYmICdkb2N1bWVudE1vZGUnIGluIGRvY3VtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50TW9kZSA8PSAxMTtcblxuZnVuY3Rpb24gcmVnaXN0ZXJFdmVudHMkMygpIHtcbiAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KCdvblNlbGVjdCcsIFsnZm9jdXNvdXQnLCAnY29udGV4dG1lbnUnLCAnZHJhZ2VuZCcsICdmb2N1c2luJywgJ2tleWRvd24nLCAna2V5dXAnLCAnbW91c2Vkb3duJywgJ21vdXNldXAnLCAnc2VsZWN0aW9uY2hhbmdlJ10pO1xufVxuXG52YXIgYWN0aXZlRWxlbWVudCQxID0gbnVsbDtcbnZhciBhY3RpdmVFbGVtZW50SW5zdCQxID0gbnVsbDtcbnZhciBsYXN0U2VsZWN0aW9uID0gbnVsbDtcbnZhciBtb3VzZURvd24gPSBmYWxzZTtcbi8qKlxuICogR2V0IGFuIG9iamVjdCB3aGljaCBpcyBhIHVuaXF1ZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgY3VycmVudCBzZWxlY3Rpb24uXG4gKlxuICogVGhlIHJldHVybiB2YWx1ZSB3aWxsIG5vdCBiZSBjb25zaXN0ZW50IGFjcm9zcyBub2RlcyBvciBicm93c2VycywgYnV0XG4gKiB0d28gaWRlbnRpY2FsIHNlbGVjdGlvbnMgb24gdGhlIHNhbWUgbm9kZSB3aWxsIHJldHVybiBpZGVudGljYWwgb2JqZWN0cy5cbiAqL1xuXG5mdW5jdGlvbiBnZXRTZWxlY3Rpb24kMShub2RlKSB7XG4gIGlmICgnc2VsZWN0aW9uU3RhcnQnIGluIG5vZGUgJiYgaGFzU2VsZWN0aW9uQ2FwYWJpbGl0aWVzKG5vZGUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiBub2RlLnNlbGVjdGlvblN0YXJ0LFxuICAgICAgZW5kOiBub2RlLnNlbGVjdGlvbkVuZFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgdmFyIHdpbiA9IG5vZGUub3duZXJEb2N1bWVudCAmJiBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgfHwgd2luZG93O1xuICAgIHZhciBzZWxlY3Rpb24gPSB3aW4uZ2V0U2VsZWN0aW9uKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFuY2hvck5vZGU6IHNlbGVjdGlvbi5hbmNob3JOb2RlLFxuICAgICAgYW5jaG9yT2Zmc2V0OiBzZWxlY3Rpb24uYW5jaG9yT2Zmc2V0LFxuICAgICAgZm9jdXNOb2RlOiBzZWxlY3Rpb24uZm9jdXNOb2RlLFxuICAgICAgZm9jdXNPZmZzZXQ6IHNlbGVjdGlvbi5mb2N1c09mZnNldFxuICAgIH07XG4gIH1cbn1cbi8qKlxuICogR2V0IGRvY3VtZW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgZXZlbnQgdGFyZ2V0LlxuICovXG5cblxuZnVuY3Rpb24gZ2V0RXZlbnRUYXJnZXREb2N1bWVudChldmVudFRhcmdldCkge1xuICByZXR1cm4gZXZlbnRUYXJnZXQud2luZG93ID09PSBldmVudFRhcmdldCA/IGV2ZW50VGFyZ2V0LmRvY3VtZW50IDogZXZlbnRUYXJnZXQubm9kZVR5cGUgPT09IERPQ1VNRU5UX05PREUgPyBldmVudFRhcmdldCA6IGV2ZW50VGFyZ2V0Lm93bmVyRG9jdW1lbnQ7XG59XG4vKipcbiAqIFBvbGwgc2VsZWN0aW9uIHRvIHNlZSB3aGV0aGVyIGl0J3MgY2hhbmdlZC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnRcbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudFRhcmdldFxuICogQHJldHVybiB7P1N5bnRoZXRpY0V2ZW50fVxuICovXG5cblxuZnVuY3Rpb24gY29uc3RydWN0U2VsZWN0RXZlbnQoZGlzcGF0Y2hRdWV1ZSwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gIC8vIEVuc3VyZSB3ZSBoYXZlIHRoZSByaWdodCBlbGVtZW50LCBhbmQgdGhhdCB0aGUgdXNlciBpcyBub3QgZHJhZ2dpbmcgYVxuICAvLyBzZWxlY3Rpb24gKHRoaXMgbWF0Y2hlcyBuYXRpdmUgYHNlbGVjdGAgZXZlbnQgYmVoYXZpb3IpLiBJbiBIVE1MNSwgc2VsZWN0XG4gIC8vIGZpcmVzIG9ubHkgb24gaW5wdXQgYW5kIHRleHRhcmVhIHRodXMgaWYgdGhlcmUncyBubyBmb2N1c2VkIGVsZW1lbnQgd2VcbiAgLy8gd29uJ3QgZGlzcGF0Y2guXG4gIHZhciBkb2MgPSBnZXRFdmVudFRhcmdldERvY3VtZW50KG5hdGl2ZUV2ZW50VGFyZ2V0KTtcblxuICBpZiAobW91c2VEb3duIHx8IGFjdGl2ZUVsZW1lbnQkMSA9PSBudWxsIHx8IGFjdGl2ZUVsZW1lbnQkMSAhPT0gZ2V0QWN0aXZlRWxlbWVudChkb2MpKSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIE9ubHkgZmlyZSB3aGVuIHNlbGVjdGlvbiBoYXMgYWN0dWFsbHkgY2hhbmdlZC5cblxuXG4gIHZhciBjdXJyZW50U2VsZWN0aW9uID0gZ2V0U2VsZWN0aW9uJDEoYWN0aXZlRWxlbWVudCQxKTtcblxuICBpZiAoIWxhc3RTZWxlY3Rpb24gfHwgIXNoYWxsb3dFcXVhbChsYXN0U2VsZWN0aW9uLCBjdXJyZW50U2VsZWN0aW9uKSkge1xuICAgIGxhc3RTZWxlY3Rpb24gPSBjdXJyZW50U2VsZWN0aW9uO1xuICAgIHZhciBsaXN0ZW5lcnMgPSBhY2N1bXVsYXRlVHdvUGhhc2VMaXN0ZW5lcnMoYWN0aXZlRWxlbWVudEluc3QkMSwgJ29uU2VsZWN0Jyk7XG5cbiAgICBpZiAobGlzdGVuZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhciBldmVudCA9IG5ldyBTeW50aGV0aWNFdmVudCgnb25TZWxlY3QnLCAnc2VsZWN0JywgbnVsbCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICAgIGRpc3BhdGNoUXVldWUucHVzaCh7XG4gICAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNcbiAgICAgIH0pO1xuICAgICAgZXZlbnQudGFyZ2V0ID0gYWN0aXZlRWxlbWVudCQxO1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBUaGlzIHBsdWdpbiBjcmVhdGVzIGFuIGBvblNlbGVjdGAgZXZlbnQgdGhhdCBub3JtYWxpemVzIHNlbGVjdCBldmVudHNcbiAqIGFjcm9zcyBmb3JtIGVsZW1lbnRzLlxuICpcbiAqIFN1cHBvcnRlZCBlbGVtZW50cyBhcmU6XG4gKiAtIGlucHV0IChzZWUgYGlzVGV4dElucHV0RWxlbWVudGApXG4gKiAtIHRleHRhcmVhXG4gKiAtIGNvbnRlbnRFZGl0YWJsZVxuICpcbiAqIFRoaXMgZGlmZmVycyBmcm9tIG5hdGl2ZSBicm93c2VyIGltcGxlbWVudGF0aW9ucyBpbiB0aGUgZm9sbG93aW5nIHdheXM6XG4gKiAtIEZpcmVzIG9uIGNvbnRlbnRFZGl0YWJsZSBmaWVsZHMgYXMgd2VsbCBhcyBpbnB1dHMuXG4gKiAtIEZpcmVzIGZvciBjb2xsYXBzZWQgc2VsZWN0aW9uLlxuICogLSBGaXJlcyBhZnRlciB1c2VyIGlucHV0LlxuICovXG5cblxuZnVuY3Rpb24gZXh0cmFjdEV2ZW50cyQzKGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0LCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIpIHtcbiAgdmFyIHRhcmdldE5vZGUgPSB0YXJnZXRJbnN0ID8gZ2V0Tm9kZUZyb21JbnN0YW5jZSh0YXJnZXRJbnN0KSA6IHdpbmRvdztcblxuICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgIC8vIFRyYWNrIHRoZSBpbnB1dCBub2RlIHRoYXQgaGFzIGZvY3VzLlxuICAgIGNhc2UgJ2ZvY3VzaW4nOlxuICAgICAgaWYgKGlzVGV4dElucHV0RWxlbWVudCh0YXJnZXROb2RlKSB8fCB0YXJnZXROb2RlLmNvbnRlbnRFZGl0YWJsZSA9PT0gJ3RydWUnKSB7XG4gICAgICAgIGFjdGl2ZUVsZW1lbnQkMSA9IHRhcmdldE5vZGU7XG4gICAgICAgIGFjdGl2ZUVsZW1lbnRJbnN0JDEgPSB0YXJnZXRJbnN0O1xuICAgICAgICBsYXN0U2VsZWN0aW9uID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdmb2N1c291dCc6XG4gICAgICBhY3RpdmVFbGVtZW50JDEgPSBudWxsO1xuICAgICAgYWN0aXZlRWxlbWVudEluc3QkMSA9IG51bGw7XG4gICAgICBsYXN0U2VsZWN0aW9uID0gbnVsbDtcbiAgICAgIGJyZWFrO1xuICAgIC8vIERvbid0IGZpcmUgdGhlIGV2ZW50IHdoaWxlIHRoZSB1c2VyIGlzIGRyYWdnaW5nLiBUaGlzIG1hdGNoZXMgdGhlXG4gICAgLy8gc2VtYW50aWNzIG9mIHRoZSBuYXRpdmUgc2VsZWN0IGV2ZW50LlxuXG4gICAgY2FzZSAnbW91c2Vkb3duJzpcbiAgICAgIG1vdXNlRG93biA9IHRydWU7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2NvbnRleHRtZW51JzpcbiAgICBjYXNlICdtb3VzZXVwJzpcbiAgICBjYXNlICdkcmFnZW5kJzpcbiAgICAgIG1vdXNlRG93biA9IGZhbHNlO1xuICAgICAgY29uc3RydWN0U2VsZWN0RXZlbnQoZGlzcGF0Y2hRdWV1ZSwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICAgIGJyZWFrO1xuICAgIC8vIENocm9tZSBhbmQgSUUgZmlyZSBub24tc3RhbmRhcmQgZXZlbnQgd2hlbiBzZWxlY3Rpb24gaXMgY2hhbmdlZCAoYW5kXG4gICAgLy8gc29tZXRpbWVzIHdoZW4gaXQgaGFzbid0KS4gSUUncyBldmVudCBmaXJlcyBvdXQgb2Ygb3JkZXIgd2l0aCByZXNwZWN0XG4gICAgLy8gdG8ga2V5IGFuZCBpbnB1dCBldmVudHMgb24gZGVsZXRpb24sIHNvIHdlIGRpc2NhcmQgaXQuXG4gICAgLy9cbiAgICAvLyBGaXJlZm94IGRvZXNuJ3Qgc3VwcG9ydCBzZWxlY3Rpb25jaGFuZ2UsIHNvIGNoZWNrIHNlbGVjdGlvbiBzdGF0dXNcbiAgICAvLyBhZnRlciBlYWNoIGtleSBlbnRyeS4gVGhlIHNlbGVjdGlvbiBjaGFuZ2VzIGFmdGVyIGtleWRvd24gYW5kIGJlZm9yZVxuICAgIC8vIGtleXVwLCBidXQgd2UgY2hlY2sgb24ga2V5ZG93biBhcyB3ZWxsIGluIHRoZSBjYXNlIG9mIGhvbGRpbmcgZG93biBhXG4gICAgLy8ga2V5LCB3aGVuIG11bHRpcGxlIGtleWRvd24gZXZlbnRzIGFyZSBmaXJlZCBidXQgb25seSBvbmUga2V5dXAgaXMuXG4gICAgLy8gVGhpcyBpcyBhbHNvIG91ciBhcHByb2FjaCBmb3IgSUUgaGFuZGxpbmcsIGZvciB0aGUgcmVhc29uIGFib3ZlLlxuXG4gICAgY2FzZSAnc2VsZWN0aW9uY2hhbmdlJzpcbiAgICAgIGlmIChza2lwU2VsZWN0aW9uQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAvLyBmYWxscyB0aHJvdWdoXG5cbiAgICBjYXNlICdrZXlkb3duJzpcbiAgICBjYXNlICdrZXl1cCc6XG4gICAgICBjb25zdHJ1Y3RTZWxlY3RFdmVudChkaXNwYXRjaFF1ZXVlLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICB9XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSBtYXBwaW5nIG9mIHN0YW5kYXJkIHZlbmRvciBwcmVmaXhlcyB1c2luZyB0aGUgZGVmaW5lZCBzdHlsZSBwcm9wZXJ0eSBhbmQgZXZlbnQgbmFtZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3R5bGVQcm9wXG4gKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lXG4gKiBAcmV0dXJucyB7b2JqZWN0fVxuICovXG5cbmZ1bmN0aW9uIG1ha2VQcmVmaXhNYXAoc3R5bGVQcm9wLCBldmVudE5hbWUpIHtcbiAgdmFyIHByZWZpeGVzID0ge307XG4gIHByZWZpeGVzW3N0eWxlUHJvcC50b0xvd2VyQ2FzZSgpXSA9IGV2ZW50TmFtZS50b0xvd2VyQ2FzZSgpO1xuICBwcmVmaXhlc1snV2Via2l0JyArIHN0eWxlUHJvcF0gPSAnd2Via2l0JyArIGV2ZW50TmFtZTtcbiAgcHJlZml4ZXNbJ01veicgKyBzdHlsZVByb3BdID0gJ21veicgKyBldmVudE5hbWU7XG4gIHJldHVybiBwcmVmaXhlcztcbn1cbi8qKlxuICogQSBsaXN0IG9mIGV2ZW50IG5hbWVzIHRvIGEgY29uZmlndXJhYmxlIGxpc3Qgb2YgdmVuZG9yIHByZWZpeGVzLlxuICovXG5cblxudmFyIHZlbmRvclByZWZpeGVzID0ge1xuICBhbmltYXRpb25lbmQ6IG1ha2VQcmVmaXhNYXAoJ0FuaW1hdGlvbicsICdBbmltYXRpb25FbmQnKSxcbiAgYW5pbWF0aW9uaXRlcmF0aW9uOiBtYWtlUHJlZml4TWFwKCdBbmltYXRpb24nLCAnQW5pbWF0aW9uSXRlcmF0aW9uJyksXG4gIGFuaW1hdGlvbnN0YXJ0OiBtYWtlUHJlZml4TWFwKCdBbmltYXRpb24nLCAnQW5pbWF0aW9uU3RhcnQnKSxcbiAgdHJhbnNpdGlvbmVuZDogbWFrZVByZWZpeE1hcCgnVHJhbnNpdGlvbicsICdUcmFuc2l0aW9uRW5kJylcbn07XG4vKipcbiAqIEV2ZW50IG5hbWVzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gZGV0ZWN0ZWQgYW5kIHByZWZpeGVkIChpZiBhcHBsaWNhYmxlKS5cbiAqL1xuXG52YXIgcHJlZml4ZWRFdmVudE5hbWVzID0ge307XG4vKipcbiAqIEVsZW1lbnQgdG8gY2hlY2sgZm9yIHByZWZpeGVzIG9uLlxuICovXG5cbnZhciBzdHlsZSA9IHt9O1xuLyoqXG4gKiBCb290c3RyYXAgaWYgYSBET00gZXhpc3RzLlxuICovXG5cbmlmIChjYW5Vc2VET00pIHtcbiAgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKS5zdHlsZTsgLy8gT24gc29tZSBwbGF0Zm9ybXMsIGluIHBhcnRpY3VsYXIgc29tZSByZWxlYXNlcyBvZiBBbmRyb2lkIDQueCxcbiAgLy8gdGhlIHVuLXByZWZpeGVkIFwiYW5pbWF0aW9uXCIgYW5kIFwidHJhbnNpdGlvblwiIHByb3BlcnRpZXMgYXJlIGRlZmluZWQgb24gdGhlXG4gIC8vIHN0eWxlIG9iamVjdCBidXQgdGhlIGV2ZW50cyB0aGF0IGZpcmUgd2lsbCBzdGlsbCBiZSBwcmVmaXhlZCwgc28gd2UgbmVlZFxuICAvLyB0byBjaGVjayBpZiB0aGUgdW4tcHJlZml4ZWQgZXZlbnRzIGFyZSB1c2FibGUsIGFuZCBpZiBub3QgcmVtb3ZlIHRoZW0gZnJvbSB0aGUgbWFwLlxuXG4gIGlmICghKCdBbmltYXRpb25FdmVudCcgaW4gd2luZG93KSkge1xuICAgIGRlbGV0ZSB2ZW5kb3JQcmVmaXhlcy5hbmltYXRpb25lbmQuYW5pbWF0aW9uO1xuICAgIGRlbGV0ZSB2ZW5kb3JQcmVmaXhlcy5hbmltYXRpb25pdGVyYXRpb24uYW5pbWF0aW9uO1xuICAgIGRlbGV0ZSB2ZW5kb3JQcmVmaXhlcy5hbmltYXRpb25zdGFydC5hbmltYXRpb247XG4gIH0gLy8gU2FtZSBhcyBhYm92ZVxuXG5cbiAgaWYgKCEoJ1RyYW5zaXRpb25FdmVudCcgaW4gd2luZG93KSkge1xuICAgIGRlbGV0ZSB2ZW5kb3JQcmVmaXhlcy50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb247XG4gIH1cbn1cbi8qKlxuICogQXR0ZW1wdHMgdG8gZGV0ZXJtaW5lIHRoZSBjb3JyZWN0IHZlbmRvciBwcmVmaXhlZCBldmVudCBuYW1lLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBldmVudE5hbWVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cblxuXG5mdW5jdGlvbiBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZShldmVudE5hbWUpIHtcbiAgaWYgKHByZWZpeGVkRXZlbnROYW1lc1tldmVudE5hbWVdKSB7XG4gICAgcmV0dXJuIHByZWZpeGVkRXZlbnROYW1lc1tldmVudE5hbWVdO1xuICB9IGVsc2UgaWYgKCF2ZW5kb3JQcmVmaXhlc1tldmVudE5hbWVdKSB7XG4gICAgcmV0dXJuIGV2ZW50TmFtZTtcbiAgfVxuXG4gIHZhciBwcmVmaXhNYXAgPSB2ZW5kb3JQcmVmaXhlc1tldmVudE5hbWVdO1xuXG4gIGZvciAodmFyIHN0eWxlUHJvcCBpbiBwcmVmaXhNYXApIHtcbiAgICBpZiAocHJlZml4TWFwLmhhc093blByb3BlcnR5KHN0eWxlUHJvcCkgJiYgc3R5bGVQcm9wIGluIHN0eWxlKSB7XG4gICAgICByZXR1cm4gcHJlZml4ZWRFdmVudE5hbWVzW2V2ZW50TmFtZV0gPSBwcmVmaXhNYXBbc3R5bGVQcm9wXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXZlbnROYW1lO1xufVxuXG52YXIgQU5JTUFUSU9OX0VORCA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKCdhbmltYXRpb25lbmQnKTtcbnZhciBBTklNQVRJT05fSVRFUkFUSU9OID0gZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoJ2FuaW1hdGlvbml0ZXJhdGlvbicpO1xudmFyIEFOSU1BVElPTl9TVEFSVCA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKCdhbmltYXRpb25zdGFydCcpO1xudmFyIFRSQU5TSVRJT05fRU5EID0gZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoJ3RyYW5zaXRpb25lbmQnKTtcblxudmFyIHRvcExldmVsRXZlbnRzVG9SZWFjdE5hbWVzID0gbmV3IE1hcCgpOyAvLyBOT1RFOiBDYXBpdGFsaXphdGlvbiBpcyBpbXBvcnRhbnQgaW4gdGhpcyBsaXN0IVxuLy9cbi8vIEUuZy4gaXQgbmVlZHMgXCJwb2ludGVyRG93blwiLCBub3QgXCJwb2ludGVyZG93blwiLlxuLy8gVGhpcyBpcyBiZWNhdXNlIHdlIGRlcml2ZSBib3RoIFJlYWN0IG5hbWUgKFwib25Qb2ludGVyRG93blwiKVxuLy8gYW5kIERPTSBuYW1lIChcInBvaW50ZXJkb3duXCIpIGZyb20gdGhlIHNhbWUgbGlzdC5cbi8vXG4vLyBFeGNlcHRpb25zIHRoYXQgZG9uJ3QgbWF0Y2ggdGhpcyBjb252ZW50aW9uIGFyZSBsaXN0ZWQgc2VwYXJhdGVseS5cbi8vXG4vLyBwcmV0dGllci1pZ25vcmVcblxudmFyIHNpbXBsZUV2ZW50UGx1Z2luRXZlbnRzID0gWydhYm9ydCcsICdhdXhDbGljaycsICdjYW5jZWwnLCAnY2FuUGxheScsICdjYW5QbGF5VGhyb3VnaCcsICdjbGljaycsICdjbG9zZScsICdjb250ZXh0TWVudScsICdjb3B5JywgJ2N1dCcsICdkcmFnJywgJ2RyYWdFbmQnLCAnZHJhZ0VudGVyJywgJ2RyYWdFeGl0JywgJ2RyYWdMZWF2ZScsICdkcmFnT3ZlcicsICdkcmFnU3RhcnQnLCAnZHJvcCcsICdkdXJhdGlvbkNoYW5nZScsICdlbXB0aWVkJywgJ2VuY3J5cHRlZCcsICdlbmRlZCcsICdlcnJvcicsICdnb3RQb2ludGVyQ2FwdHVyZScsICdpbnB1dCcsICdpbnZhbGlkJywgJ2tleURvd24nLCAna2V5UHJlc3MnLCAna2V5VXAnLCAnbG9hZCcsICdsb2FkZWREYXRhJywgJ2xvYWRlZE1ldGFkYXRhJywgJ2xvYWRTdGFydCcsICdsb3N0UG9pbnRlckNhcHR1cmUnLCAnbW91c2VEb3duJywgJ21vdXNlTW92ZScsICdtb3VzZU91dCcsICdtb3VzZU92ZXInLCAnbW91c2VVcCcsICdwYXN0ZScsICdwYXVzZScsICdwbGF5JywgJ3BsYXlpbmcnLCAncG9pbnRlckNhbmNlbCcsICdwb2ludGVyRG93bicsICdwb2ludGVyTW92ZScsICdwb2ludGVyT3V0JywgJ3BvaW50ZXJPdmVyJywgJ3BvaW50ZXJVcCcsICdwcm9ncmVzcycsICdyYXRlQ2hhbmdlJywgJ3Jlc2V0JywgJ3Jlc2l6ZScsICdzZWVrZWQnLCAnc2Vla2luZycsICdzdGFsbGVkJywgJ3N1Ym1pdCcsICdzdXNwZW5kJywgJ3RpbWVVcGRhdGUnLCAndG91Y2hDYW5jZWwnLCAndG91Y2hFbmQnLCAndG91Y2hTdGFydCcsICd2b2x1bWVDaGFuZ2UnLCAnc2Nyb2xsJywgJ3RvZ2dsZScsICd0b3VjaE1vdmUnLCAnd2FpdGluZycsICd3aGVlbCddO1xuXG5mdW5jdGlvbiByZWdpc3RlclNpbXBsZUV2ZW50KGRvbUV2ZW50TmFtZSwgcmVhY3ROYW1lKSB7XG4gIHRvcExldmVsRXZlbnRzVG9SZWFjdE5hbWVzLnNldChkb21FdmVudE5hbWUsIHJlYWN0TmFtZSk7XG4gIHJlZ2lzdGVyVHdvUGhhc2VFdmVudChyZWFjdE5hbWUsIFtkb21FdmVudE5hbWVdKTtcbn1cblxuZnVuY3Rpb24gcmVnaXN0ZXJTaW1wbGVFdmVudHMoKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc2ltcGxlRXZlbnRQbHVnaW5FdmVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZXZlbnROYW1lID0gc2ltcGxlRXZlbnRQbHVnaW5FdmVudHNbaV07XG4gICAgdmFyIGRvbUV2ZW50TmFtZSA9IGV2ZW50TmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhciBjYXBpdGFsaXplZEV2ZW50ID0gZXZlbnROYW1lWzBdLnRvVXBwZXJDYXNlKCkgKyBldmVudE5hbWUuc2xpY2UoMSk7XG4gICAgcmVnaXN0ZXJTaW1wbGVFdmVudChkb21FdmVudE5hbWUsICdvbicgKyBjYXBpdGFsaXplZEV2ZW50KTtcbiAgfSAvLyBTcGVjaWFsIGNhc2VzIHdoZXJlIGV2ZW50IG5hbWVzIGRvbid0IG1hdGNoLlxuXG5cbiAgcmVnaXN0ZXJTaW1wbGVFdmVudChBTklNQVRJT05fRU5ELCAnb25BbmltYXRpb25FbmQnKTtcbiAgcmVnaXN0ZXJTaW1wbGVFdmVudChBTklNQVRJT05fSVRFUkFUSU9OLCAnb25BbmltYXRpb25JdGVyYXRpb24nKTtcbiAgcmVnaXN0ZXJTaW1wbGVFdmVudChBTklNQVRJT05fU1RBUlQsICdvbkFuaW1hdGlvblN0YXJ0Jyk7XG4gIHJlZ2lzdGVyU2ltcGxlRXZlbnQoJ2RibGNsaWNrJywgJ29uRG91YmxlQ2xpY2snKTtcbiAgcmVnaXN0ZXJTaW1wbGVFdmVudCgnZm9jdXNpbicsICdvbkZvY3VzJyk7XG4gIHJlZ2lzdGVyU2ltcGxlRXZlbnQoJ2ZvY3Vzb3V0JywgJ29uQmx1cicpO1xuICByZWdpc3RlclNpbXBsZUV2ZW50KFRSQU5TSVRJT05fRU5ELCAnb25UcmFuc2l0aW9uRW5kJyk7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RFdmVudHMkNChkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyKSB7XG4gIHZhciByZWFjdE5hbWUgPSB0b3BMZXZlbEV2ZW50c1RvUmVhY3ROYW1lcy5nZXQoZG9tRXZlbnROYW1lKTtcblxuICBpZiAocmVhY3ROYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljRXZlbnQ7XG4gIHZhciByZWFjdEV2ZW50VHlwZSA9IGRvbUV2ZW50TmFtZTtcblxuICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgIGNhc2UgJ2tleXByZXNzJzpcbiAgICAgIC8vIEZpcmVmb3ggY3JlYXRlcyBhIGtleXByZXNzIGV2ZW50IGZvciBmdW5jdGlvbiBrZXlzIHRvby4gVGhpcyByZW1vdmVzXG4gICAgICAvLyB0aGUgdW53YW50ZWQga2V5cHJlc3MgZXZlbnRzLiBFbnRlciBpcyBob3dldmVyIGJvdGggcHJpbnRhYmxlIGFuZFxuICAgICAgLy8gbm9uLXByaW50YWJsZS4gT25lIHdvdWxkIGV4cGVjdCBUYWIgdG8gYmUgYXMgd2VsbCAoYnV0IGl0IGlzbid0KS5cbiAgICAgIGlmIChnZXRFdmVudENoYXJDb2RlKG5hdGl2ZUV2ZW50KSA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAvKiBmYWxscyB0aHJvdWdoICovXG5cbiAgICBjYXNlICdrZXlkb3duJzpcbiAgICBjYXNlICdrZXl1cCc6XG4gICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNLZXlib2FyZEV2ZW50O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdmb2N1c2luJzpcbiAgICAgIHJlYWN0RXZlbnRUeXBlID0gJ2ZvY3VzJztcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0ZvY3VzRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2ZvY3Vzb3V0JzpcbiAgICAgIHJlYWN0RXZlbnRUeXBlID0gJ2JsdXInO1xuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljRm9jdXNFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnYmVmb3JlYmx1cic6XG4gICAgY2FzZSAnYWZ0ZXJibHVyJzpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0ZvY3VzRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2NsaWNrJzpcbiAgICAgIC8vIEZpcmVmb3ggY3JlYXRlcyBhIGNsaWNrIGV2ZW50IG9uIHJpZ2h0IG1vdXNlIGNsaWNrcy4gVGhpcyByZW1vdmVzIHRoZVxuICAgICAgLy8gdW53YW50ZWQgY2xpY2sgZXZlbnRzLlxuICAgICAgaWYgKG5hdGl2ZUV2ZW50LmJ1dHRvbiA9PT0gMikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAvKiBmYWxscyB0aHJvdWdoICovXG5cbiAgICBjYXNlICdhdXhjbGljayc6XG4gICAgY2FzZSAnZGJsY2xpY2snOlxuICAgIGNhc2UgJ21vdXNlZG93bic6XG4gICAgY2FzZSAnbW91c2Vtb3ZlJzpcbiAgICBjYXNlICdtb3VzZXVwJzogLy8gVE9ETzogRGlzYWJsZWQgZWxlbWVudHMgc2hvdWxkIG5vdCByZXNwb25kIHRvIG1vdXNlIGV2ZW50c1xuXG4gICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuXG4gICAgY2FzZSAnbW91c2VvdXQnOlxuICAgIGNhc2UgJ21vdXNlb3Zlcic6XG4gICAgY2FzZSAnY29udGV4dG1lbnUnOlxuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljTW91c2VFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZHJhZyc6XG4gICAgY2FzZSAnZHJhZ2VuZCc6XG4gICAgY2FzZSAnZHJhZ2VudGVyJzpcbiAgICBjYXNlICdkcmFnZXhpdCc6XG4gICAgY2FzZSAnZHJhZ2xlYXZlJzpcbiAgICBjYXNlICdkcmFnb3Zlcic6XG4gICAgY2FzZSAnZHJhZ3N0YXJ0JzpcbiAgICBjYXNlICdkcm9wJzpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0RyYWdFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAndG91Y2hjYW5jZWwnOlxuICAgIGNhc2UgJ3RvdWNoZW5kJzpcbiAgICBjYXNlICd0b3VjaG1vdmUnOlxuICAgIGNhc2UgJ3RvdWNoc3RhcnQnOlxuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljVG91Y2hFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBBTklNQVRJT05fRU5EOlxuICAgIGNhc2UgQU5JTUFUSU9OX0lURVJBVElPTjpcbiAgICBjYXNlIEFOSU1BVElPTl9TVEFSVDpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0FuaW1hdGlvbkV2ZW50O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFRSQU5TSVRJT05fRU5EOlxuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljVHJhbnNpdGlvbkV2ZW50O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdzY3JvbGwnOlxuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljVUlFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnd2hlZWwnOlxuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljV2hlZWxFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnY29weSc6XG4gICAgY2FzZSAnY3V0JzpcbiAgICBjYXNlICdwYXN0ZSc6XG4gICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNDbGlwYm9hcmRFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZ290cG9pbnRlcmNhcHR1cmUnOlxuICAgIGNhc2UgJ2xvc3Rwb2ludGVyY2FwdHVyZSc6XG4gICAgY2FzZSAncG9pbnRlcmNhbmNlbCc6XG4gICAgY2FzZSAncG9pbnRlcmRvd24nOlxuICAgIGNhc2UgJ3BvaW50ZXJtb3ZlJzpcbiAgICBjYXNlICdwb2ludGVyb3V0JzpcbiAgICBjYXNlICdwb2ludGVyb3Zlcic6XG4gICAgY2FzZSAncG9pbnRlcnVwJzpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1BvaW50ZXJFdmVudDtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgdmFyIGluQ2FwdHVyZVBoYXNlID0gKGV2ZW50U3lzdGVtRmxhZ3MgJiBJU19DQVBUVVJFX1BIQVNFKSAhPT0gMDtcblxuICB7XG4gICAgLy8gU29tZSBldmVudHMgZG9uJ3QgYnViYmxlIGluIHRoZSBicm93c2VyLlxuICAgIC8vIEluIHRoZSBwYXN0LCBSZWFjdCBoYXMgYWx3YXlzIGJ1YmJsZWQgdGhlbSwgYnV0IHRoaXMgY2FuIGJlIHN1cnByaXNpbmcuXG4gICAgLy8gV2UncmUgZ29pbmcgdG8gdHJ5IGFsaWduaW5nIGNsb3NlciB0byB0aGUgYnJvd3NlciBiZWhhdmlvciBieSBub3QgYnViYmxpbmdcbiAgICAvLyB0aGVtIGluIFJlYWN0IGVpdGhlci4gV2UnbGwgc3RhcnQgYnkgbm90IGJ1YmJsaW5nIG9uU2Nyb2xsLCBhbmQgdGhlbiBleHBhbmQuXG4gICAgdmFyIGFjY3VtdWxhdGVUYXJnZXRPbmx5ID0gIWluQ2FwdHVyZVBoYXNlICYmIC8vIFRPRE86IGlkZWFsbHksIHdlJ2QgZXZlbnR1YWxseSBhZGQgYWxsIGV2ZW50cyBmcm9tXG4gICAgLy8gbm9uRGVsZWdhdGVkRXZlbnRzIGxpc3QgaW4gRE9NUGx1Z2luRXZlbnRTeXN0ZW0uXG4gICAgLy8gVGhlbiB3ZSBjYW4gcmVtb3ZlIHRoaXMgc3BlY2lhbCBsaXN0LlxuICAgIC8vIFRoaXMgaXMgYSBicmVha2luZyBjaGFuZ2UgdGhhdCBjYW4gd2FpdCB1bnRpbCBSZWFjdCAxOC5cbiAgICBkb21FdmVudE5hbWUgPT09ICdzY3JvbGwnO1xuXG4gICAgdmFyIF9saXN0ZW5lcnMgPSBhY2N1bXVsYXRlU2luZ2xlUGhhc2VMaXN0ZW5lcnModGFyZ2V0SW5zdCwgcmVhY3ROYW1lLCBuYXRpdmVFdmVudC50eXBlLCBpbkNhcHR1cmVQaGFzZSwgYWNjdW11bGF0ZVRhcmdldE9ubHkpO1xuXG4gICAgaWYgKF9saXN0ZW5lcnMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gSW50ZW50aW9uYWxseSBjcmVhdGUgZXZlbnQgbGF6aWx5LlxuICAgICAgdmFyIF9ldmVudCA9IG5ldyBTeW50aGV0aWNFdmVudEN0b3IocmVhY3ROYW1lLCByZWFjdEV2ZW50VHlwZSwgbnVsbCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcblxuICAgICAgZGlzcGF0Y2hRdWV1ZS5wdXNoKHtcbiAgICAgICAgZXZlbnQ6IF9ldmVudCxcbiAgICAgICAgbGlzdGVuZXJzOiBfbGlzdGVuZXJzXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVE9ETzogcmVtb3ZlIHRvcC1sZXZlbCBzaWRlIGVmZmVjdC5cbnJlZ2lzdGVyU2ltcGxlRXZlbnRzKCk7XG5yZWdpc3RlckV2ZW50cyQyKCk7XG5yZWdpc3RlckV2ZW50cyQxKCk7XG5yZWdpc3RlckV2ZW50cyQzKCk7XG5yZWdpc3RlckV2ZW50cygpO1xuXG5mdW5jdGlvbiBleHRyYWN0RXZlbnRzJDUoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lcikge1xuICAvLyBUT0RPOiB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBjb25jZXB0IG9mIGEgXCJTaW1wbGVFdmVudFBsdWdpblwiLlxuICAvLyBUaGlzIGlzIHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IG9mIHRoZSBldmVudCBzeXN0ZW0uIEFsbFxuICAvLyB0aGUgb3RoZXIgcGx1Z2lucyBhcmUgZXNzZW50aWFsbHkgcG9seWZpbGxzLiBTbyB0aGUgcGx1Z2luXG4gIC8vIHNob3VsZCBwcm9iYWJseSBiZSBpbmxpbmVkIHNvbWV3aGVyZSBhbmQgaGF2ZSBpdHMgbG9naWNcbiAgLy8gYmUgY29yZSB0aGUgdG8gZXZlbnQgc3lzdGVtLiBUaGlzIHdvdWxkIHBvdGVudGlhbGx5IGFsbG93XG4gIC8vIHVzIHRvIHNoaXAgYnVpbGRzIG9mIFJlYWN0IHdpdGhvdXQgdGhlIHBvbHlmaWxsZWQgcGx1Z2lucyBiZWxvdy5cbiAgZXh0cmFjdEV2ZW50cyQ0KGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0LCBldmVudFN5c3RlbUZsYWdzKTtcbiAgdmFyIHNob3VsZFByb2Nlc3NQb2x5ZmlsbFBsdWdpbnMgPSAoZXZlbnRTeXN0ZW1GbGFncyAmIFNIT1VMRF9OT1RfUFJPQ0VTU19QT0xZRklMTF9FVkVOVF9QTFVHSU5TKSA9PT0gMDsgLy8gV2UgZG9uJ3QgcHJvY2VzcyB0aGVzZSBldmVudHMgdW5sZXNzIHdlIGFyZSBpbiB0aGVcbiAgLy8gZXZlbnQncyBuYXRpdmUgXCJidWJibGVcIiBwaGFzZSwgd2hpY2ggbWVhbnMgdGhhdCB3ZSdyZVxuICAvLyBub3QgaW4gdGhlIGNhcHR1cmUgcGhhc2UuIFRoYXQncyBiZWNhdXNlIHdlIGVtdWxhdGVcbiAgLy8gdGhlIGNhcHR1cmUgcGhhc2UgaGVyZSBzdGlsbC4gVGhpcyBpcyBhIHRyYWRlLW9mZixcbiAgLy8gYmVjYXVzZSBpbiBhbiBpZGVhbCB3b3JsZCB3ZSB3b3VsZCBub3QgZW11bGF0ZSBhbmQgdXNlXG4gIC8vIHRoZSBwaGFzZXMgcHJvcGVybHksIGxpa2Ugd2UgZG8gd2l0aCB0aGUgU2ltcGxlRXZlbnRcbiAgLy8gcGx1Z2luLiBIb3dldmVyLCB0aGUgcGx1Z2lucyBiZWxvdyBlaXRoZXIgZXhwZWN0XG4gIC8vIGVtdWxhdGlvbiAoRW50ZXJMZWF2ZSkgb3IgdXNlIHN0YXRlIGxvY2FsaXplZCB0byB0aGF0XG4gIC8vIHBsdWdpbiAoQmVmb3JlSW5wdXQsIENoYW5nZSwgU2VsZWN0KS4gVGhlIHN0YXRlIGluXG4gIC8vIHRoZXNlIG1vZHVsZXMgY29tcGxpY2F0ZXMgdGhpbmdzLCBhcyB5b3UnbGwgZXNzZW50aWFsbHlcbiAgLy8gZ2V0IHRoZSBjYXNlIHdoZXJlIHRoZSBjYXB0dXJlIHBoYXNlIGV2ZW50IG1pZ2h0IGNoYW5nZVxuICAvLyBzdGF0ZSwgb25seSBmb3IgdGhlIGZvbGxvd2luZyBidWJibGUgZXZlbnQgdG8gY29tZSBpblxuICAvLyBsYXRlciBhbmQgbm90IHRyaWdnZXIgYW55dGhpbmcgYXMgdGhlIHN0YXRlIG5vd1xuICAvLyBpbnZhbGlkYXRlcyB0aGUgaGV1cmlzdGljcyBvZiB0aGUgZXZlbnQgcGx1Z2luLiBXZVxuICAvLyBjb3VsZCBhbHRlciBhbGwgdGhlc2UgcGx1Z2lucyB0byB3b3JrIGluIHN1Y2ggd2F5cywgYnV0XG4gIC8vIHRoYXQgbWlnaHQgY2F1c2Ugb3RoZXIgdW5rbm93biBzaWRlLWVmZmVjdHMgdGhhdCB3ZVxuICAvLyBjYW4ndCBmb3Jlc2VlIHJpZ2h0IG5vdy5cblxuICBpZiAoc2hvdWxkUHJvY2Vzc1BvbHlmaWxsUGx1Z2lucykge1xuICAgIGV4dHJhY3RFdmVudHMkMihkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgZXh0cmFjdEV2ZW50cyQxKGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICBleHRyYWN0RXZlbnRzJDMoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICAgIGV4dHJhY3RFdmVudHMoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICB9XG59IC8vIExpc3Qgb2YgZXZlbnRzIHRoYXQgbmVlZCB0byBiZSBpbmRpdmlkdWFsbHkgYXR0YWNoZWQgdG8gbWVkaWEgZWxlbWVudHMuXG5cblxudmFyIG1lZGlhRXZlbnRUeXBlcyA9IFsnYWJvcnQnLCAnY2FucGxheScsICdjYW5wbGF5dGhyb3VnaCcsICdkdXJhdGlvbmNoYW5nZScsICdlbXB0aWVkJywgJ2VuY3J5cHRlZCcsICdlbmRlZCcsICdlcnJvcicsICdsb2FkZWRkYXRhJywgJ2xvYWRlZG1ldGFkYXRhJywgJ2xvYWRzdGFydCcsICdwYXVzZScsICdwbGF5JywgJ3BsYXlpbmcnLCAncHJvZ3Jlc3MnLCAncmF0ZWNoYW5nZScsICdyZXNpemUnLCAnc2Vla2VkJywgJ3NlZWtpbmcnLCAnc3RhbGxlZCcsICdzdXNwZW5kJywgJ3RpbWV1cGRhdGUnLCAndm9sdW1lY2hhbmdlJywgJ3dhaXRpbmcnXTsgLy8gV2Ugc2hvdWxkIG5vdCBkZWxlZ2F0ZSB0aGVzZSBldmVudHMgdG8gdGhlIGNvbnRhaW5lciwgYnV0IHJhdGhlclxuLy8gc2V0IHRoZW0gb24gdGhlIGFjdHVhbCB0YXJnZXQgZWxlbWVudCBpdHNlbGYuIFRoaXMgaXMgcHJpbWFyaWx5XG4vLyBiZWNhdXNlIHRoZXNlIGV2ZW50cyBkbyBub3QgY29uc2lzdGVudGx5IGJ1YmJsZSBpbiB0aGUgRE9NLlxuXG52YXIgbm9uRGVsZWdhdGVkRXZlbnRzID0gbmV3IFNldChbJ2NhbmNlbCcsICdjbG9zZScsICdpbnZhbGlkJywgJ2xvYWQnLCAnc2Nyb2xsJywgJ3RvZ2dsZSddLmNvbmNhdChtZWRpYUV2ZW50VHlwZXMpKTtcblxuZnVuY3Rpb24gZXhlY3V0ZURpc3BhdGNoKGV2ZW50LCBsaXN0ZW5lciwgY3VycmVudFRhcmdldCkge1xuICB2YXIgdHlwZSA9IGV2ZW50LnR5cGUgfHwgJ3Vua25vd24tZXZlbnQnO1xuICBldmVudC5jdXJyZW50VGFyZ2V0ID0gY3VycmVudFRhcmdldDtcbiAgaW52b2tlR3VhcmRlZENhbGxiYWNrQW5kQ2F0Y2hGaXJzdEVycm9yKHR5cGUsIGxpc3RlbmVyLCB1bmRlZmluZWQsIGV2ZW50KTtcbiAgZXZlbnQuY3VycmVudFRhcmdldCA9IG51bGw7XG59XG5cbmZ1bmN0aW9uIHByb2Nlc3NEaXNwYXRjaFF1ZXVlSXRlbXNJbk9yZGVyKGV2ZW50LCBkaXNwYXRjaExpc3RlbmVycywgaW5DYXB0dXJlUGhhc2UpIHtcbiAgdmFyIHByZXZpb3VzSW5zdGFuY2U7XG5cbiAgaWYgKGluQ2FwdHVyZVBoYXNlKSB7XG4gICAgZm9yICh2YXIgaSA9IGRpc3BhdGNoTGlzdGVuZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgX2Rpc3BhdGNoTGlzdGVuZXJzJGkgPSBkaXNwYXRjaExpc3RlbmVyc1tpXSxcbiAgICAgICAgICBpbnN0YW5jZSA9IF9kaXNwYXRjaExpc3RlbmVycyRpLmluc3RhbmNlLFxuICAgICAgICAgIGN1cnJlbnRUYXJnZXQgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkaS5jdXJyZW50VGFyZ2V0LFxuICAgICAgICAgIGxpc3RlbmVyID0gX2Rpc3BhdGNoTGlzdGVuZXJzJGkubGlzdGVuZXI7XG5cbiAgICAgIGlmIChpbnN0YW5jZSAhPT0gcHJldmlvdXNJbnN0YW5jZSAmJiBldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZXhlY3V0ZURpc3BhdGNoKGV2ZW50LCBsaXN0ZW5lciwgY3VycmVudFRhcmdldCk7XG4gICAgICBwcmV2aW91c0luc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBkaXNwYXRjaExpc3RlbmVycy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfZGlzcGF0Y2hMaXN0ZW5lcnMkX2kgPSBkaXNwYXRjaExpc3RlbmVyc1tfaV0sXG4gICAgICAgICAgX2luc3RhbmNlID0gX2Rpc3BhdGNoTGlzdGVuZXJzJF9pLmluc3RhbmNlLFxuICAgICAgICAgIF9jdXJyZW50VGFyZ2V0ID0gX2Rpc3BhdGNoTGlzdGVuZXJzJF9pLmN1cnJlbnRUYXJnZXQsXG4gICAgICAgICAgX2xpc3RlbmVyID0gX2Rpc3BhdGNoTGlzdGVuZXJzJF9pLmxpc3RlbmVyO1xuXG4gICAgICBpZiAoX2luc3RhbmNlICE9PSBwcmV2aW91c0luc3RhbmNlICYmIGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBleGVjdXRlRGlzcGF0Y2goZXZlbnQsIF9saXN0ZW5lciwgX2N1cnJlbnRUYXJnZXQpO1xuICAgICAgcHJldmlvdXNJbnN0YW5jZSA9IF9pbnN0YW5jZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJvY2Vzc0Rpc3BhdGNoUXVldWUoZGlzcGF0Y2hRdWV1ZSwgZXZlbnRTeXN0ZW1GbGFncykge1xuICB2YXIgaW5DYXB0dXJlUGhhc2UgPSAoZXZlbnRTeXN0ZW1GbGFncyAmIElTX0NBUFRVUkVfUEhBU0UpICE9PSAwO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZGlzcGF0Y2hRdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBfZGlzcGF0Y2hRdWV1ZSRpID0gZGlzcGF0Y2hRdWV1ZVtpXSxcbiAgICAgICAgZXZlbnQgPSBfZGlzcGF0Y2hRdWV1ZSRpLmV2ZW50LFxuICAgICAgICBsaXN0ZW5lcnMgPSBfZGlzcGF0Y2hRdWV1ZSRpLmxpc3RlbmVycztcbiAgICBwcm9jZXNzRGlzcGF0Y2hRdWV1ZUl0ZW1zSW5PcmRlcihldmVudCwgbGlzdGVuZXJzLCBpbkNhcHR1cmVQaGFzZSk7IC8vICBldmVudCBzeXN0ZW0gZG9lc24ndCB1c2UgcG9vbGluZy5cbiAgfSAvLyBUaGlzIHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJldGhyb3cgaWYgYW55IG9mIHRoZSBldmVudCBoYW5kbGVycyB0aHJldy5cblxuXG4gIHJldGhyb3dDYXVnaHRFcnJvcigpO1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaEV2ZW50c0ZvclBsdWdpbnMoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCBuYXRpdmVFdmVudCwgdGFyZ2V0SW5zdCwgdGFyZ2V0Q29udGFpbmVyKSB7XG4gIHZhciBuYXRpdmVFdmVudFRhcmdldCA9IGdldEV2ZW50VGFyZ2V0KG5hdGl2ZUV2ZW50KTtcbiAgdmFyIGRpc3BhdGNoUXVldWUgPSBbXTtcbiAgZXh0cmFjdEV2ZW50cyQ1KGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0LCBldmVudFN5c3RlbUZsYWdzKTtcbiAgcHJvY2Vzc0Rpc3BhdGNoUXVldWUoZGlzcGF0Y2hRdWV1ZSwgZXZlbnRTeXN0ZW1GbGFncyk7XG59XG5cbmZ1bmN0aW9uIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoZG9tRXZlbnROYW1lLCB0YXJnZXRFbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoIW5vbkRlbGVnYXRlZEV2ZW50cy5oYXMoZG9tRXZlbnROYW1lKSkge1xuICAgICAgZXJyb3IoJ0RpZCBub3QgZXhwZWN0IGEgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgpIGNhbGwgZm9yIFwiJXNcIi4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBkb21FdmVudE5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBpc0NhcHR1cmVQaGFzZUxpc3RlbmVyID0gZmFsc2U7XG4gIHZhciBsaXN0ZW5lclNldCA9IGdldEV2ZW50TGlzdGVuZXJTZXQodGFyZ2V0RWxlbWVudCk7XG4gIHZhciBsaXN0ZW5lclNldEtleSA9IGdldExpc3RlbmVyU2V0S2V5KGRvbUV2ZW50TmFtZSwgaXNDYXB0dXJlUGhhc2VMaXN0ZW5lcik7XG5cbiAgaWYgKCFsaXN0ZW5lclNldC5oYXMobGlzdGVuZXJTZXRLZXkpKSB7XG4gICAgYWRkVHJhcHBlZEV2ZW50TGlzdGVuZXIodGFyZ2V0RWxlbWVudCwgZG9tRXZlbnROYW1lLCBJU19OT05fREVMRUdBVEVELCBpc0NhcHR1cmVQaGFzZUxpc3RlbmVyKTtcbiAgICBsaXN0ZW5lclNldC5hZGQobGlzdGVuZXJTZXRLZXkpO1xuICB9XG59XG5mdW5jdGlvbiBsaXN0ZW5Ub05hdGl2ZUV2ZW50KGRvbUV2ZW50TmFtZSwgaXNDYXB0dXJlUGhhc2VMaXN0ZW5lciwgdGFyZ2V0KSB7XG4gIHtcbiAgICBpZiAobm9uRGVsZWdhdGVkRXZlbnRzLmhhcyhkb21FdmVudE5hbWUpICYmICFpc0NhcHR1cmVQaGFzZUxpc3RlbmVyKSB7XG4gICAgICBlcnJvcignRGlkIG5vdCBleHBlY3QgYSBsaXN0ZW5Ub05hdGl2ZUV2ZW50KCkgY2FsbCBmb3IgXCIlc1wiIGluIHRoZSBidWJibGUgcGhhc2UuICcgKyAnVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJywgZG9tRXZlbnROYW1lKTtcbiAgICB9XG4gIH1cblxuICB2YXIgZXZlbnRTeXN0ZW1GbGFncyA9IDA7XG5cbiAgaWYgKGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIpIHtcbiAgICBldmVudFN5c3RlbUZsYWdzIHw9IElTX0NBUFRVUkVfUEhBU0U7XG4gIH1cblxuICBhZGRUcmFwcGVkRXZlbnRMaXN0ZW5lcih0YXJnZXQsIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgaXNDYXB0dXJlUGhhc2VMaXN0ZW5lcik7XG59IC8vIFRoaXMgaXMgb25seSB1c2VkIGJ5IGNyZWF0ZUV2ZW50SGFuZGxlIHdoZW4gdGhlXG52YXIgbGlzdGVuaW5nTWFya2VyID0gJ19yZWFjdExpc3RlbmluZycgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtcbmZ1bmN0aW9uIGxpc3RlblRvQWxsU3VwcG9ydGVkRXZlbnRzKHJvb3RDb250YWluZXJFbGVtZW50KSB7XG4gIGlmICghcm9vdENvbnRhaW5lckVsZW1lbnRbbGlzdGVuaW5nTWFya2VyXSkge1xuICAgIHJvb3RDb250YWluZXJFbGVtZW50W2xpc3RlbmluZ01hcmtlcl0gPSB0cnVlO1xuICAgIGFsbE5hdGl2ZUV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChkb21FdmVudE5hbWUpIHtcbiAgICAgIC8vIFdlIGhhbmRsZSBzZWxlY3Rpb25jaGFuZ2Ugc2VwYXJhdGVseSBiZWNhdXNlIGl0XG4gICAgICAvLyBkb2Vzbid0IGJ1YmJsZSBhbmQgbmVlZHMgdG8gYmUgb24gdGhlIGRvY3VtZW50LlxuICAgICAgaWYgKGRvbUV2ZW50TmFtZSAhPT0gJ3NlbGVjdGlvbmNoYW5nZScpIHtcbiAgICAgICAgaWYgKCFub25EZWxlZ2F0ZWRFdmVudHMuaGFzKGRvbUV2ZW50TmFtZSkpIHtcbiAgICAgICAgICBsaXN0ZW5Ub05hdGl2ZUV2ZW50KGRvbUV2ZW50TmFtZSwgZmFsc2UsIHJvb3RDb250YWluZXJFbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpc3RlblRvTmF0aXZlRXZlbnQoZG9tRXZlbnROYW1lLCB0cnVlLCByb290Q29udGFpbmVyRWxlbWVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIG93bmVyRG9jdW1lbnQgPSByb290Q29udGFpbmVyRWxlbWVudC5ub2RlVHlwZSA9PT0gRE9DVU1FTlRfTk9ERSA/IHJvb3RDb250YWluZXJFbGVtZW50IDogcm9vdENvbnRhaW5lckVsZW1lbnQub3duZXJEb2N1bWVudDtcblxuICAgIGlmIChvd25lckRvY3VtZW50ICE9PSBudWxsKSB7XG4gICAgICAvLyBUaGUgc2VsZWN0aW9uY2hhbmdlIGV2ZW50IGFsc28gbmVlZHMgZGVkdXBsaWNhdGlvblxuICAgICAgLy8gYnV0IGl0IGlzIGF0dGFjaGVkIHRvIHRoZSBkb2N1bWVudC5cbiAgICAgIGlmICghb3duZXJEb2N1bWVudFtsaXN0ZW5pbmdNYXJrZXJdKSB7XG4gICAgICAgIG93bmVyRG9jdW1lbnRbbGlzdGVuaW5nTWFya2VyXSA9IHRydWU7XG4gICAgICAgIGxpc3RlblRvTmF0aXZlRXZlbnQoJ3NlbGVjdGlvbmNoYW5nZScsIGZhbHNlLCBvd25lckRvY3VtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkVHJhcHBlZEV2ZW50TGlzdGVuZXIodGFyZ2V0Q29udGFpbmVyLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIsIGlzRGVmZXJyZWRMaXN0ZW5lckZvckxlZ2FjeUZCU3VwcG9ydCkge1xuICB2YXIgbGlzdGVuZXIgPSBjcmVhdGVFdmVudExpc3RlbmVyV3JhcHBlcldpdGhQcmlvcml0eSh0YXJnZXRDb250YWluZXIsIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncyk7IC8vIElmIHBhc3NpdmUgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQsIHRoZW4gdGhlIGV2ZW50IHdpbGwgYmVcbiAgLy8gYWN0aXZlIGFuZCBub3QgcGFzc2l2ZS5cblxuICB2YXIgaXNQYXNzaXZlTGlzdGVuZXIgPSB1bmRlZmluZWQ7XG5cbiAgaWYgKHBhc3NpdmVCcm93c2VyRXZlbnRzU3VwcG9ydGVkKSB7XG4gICAgLy8gQnJvd3NlcnMgaW50cm9kdWNlZCBhbiBpbnRlcnZlbnRpb24sIG1ha2luZyB0aGVzZSBldmVudHNcbiAgICAvLyBwYXNzaXZlIGJ5IGRlZmF1bHQgb24gZG9jdW1lbnQuIFJlYWN0IGRvZXNuJ3QgYmluZCB0aGVtXG4gICAgLy8gdG8gZG9jdW1lbnQgYW55bW9yZSwgYnV0IGNoYW5naW5nIHRoaXMgbm93IHdvdWxkIHVuZG9cbiAgICAvLyB0aGUgcGVyZm9ybWFuY2Ugd2lucyBmcm9tIHRoZSBjaGFuZ2UuIFNvIHdlIGVtdWxhdGVcbiAgICAvLyB0aGUgZXhpc3RpbmcgYmVoYXZpb3IgbWFudWFsbHkgb24gdGhlIHJvb3RzIG5vdy5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE5NjUxXG4gICAgaWYgKGRvbUV2ZW50TmFtZSA9PT0gJ3RvdWNoc3RhcnQnIHx8IGRvbUV2ZW50TmFtZSA9PT0gJ3RvdWNobW92ZScgfHwgZG9tRXZlbnROYW1lID09PSAnd2hlZWwnKSB7XG4gICAgICBpc1Bhc3NpdmVMaXN0ZW5lciA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgdGFyZ2V0Q29udGFpbmVyID0gIHRhcmdldENvbnRhaW5lcjtcbiAgdmFyIHVuc3Vic2NyaWJlTGlzdGVuZXI7IC8vIFdoZW4gbGVnYWN5RkJTdXBwb3J0IGlzIGVuYWJsZWQsIGl0J3MgZm9yIHdoZW4gd2VcblxuXG4gIGlmIChpc0NhcHR1cmVQaGFzZUxpc3RlbmVyKSB7XG4gICAgaWYgKGlzUGFzc2l2ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHVuc3Vic2NyaWJlTGlzdGVuZXIgPSBhZGRFdmVudENhcHR1cmVMaXN0ZW5lcldpdGhQYXNzaXZlRmxhZyh0YXJnZXRDb250YWluZXIsIGRvbUV2ZW50TmFtZSwgbGlzdGVuZXIsIGlzUGFzc2l2ZUxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5zdWJzY3JpYmVMaXN0ZW5lciA9IGFkZEV2ZW50Q2FwdHVyZUxpc3RlbmVyKHRhcmdldENvbnRhaW5lciwgZG9tRXZlbnROYW1lLCBsaXN0ZW5lcik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChpc1Bhc3NpdmVMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB1bnN1YnNjcmliZUxpc3RlbmVyID0gYWRkRXZlbnRCdWJibGVMaXN0ZW5lcldpdGhQYXNzaXZlRmxhZyh0YXJnZXRDb250YWluZXIsIGRvbUV2ZW50TmFtZSwgbGlzdGVuZXIsIGlzUGFzc2l2ZUxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5zdWJzY3JpYmVMaXN0ZW5lciA9IGFkZEV2ZW50QnViYmxlTGlzdGVuZXIodGFyZ2V0Q29udGFpbmVyLCBkb21FdmVudE5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNNYXRjaGluZ1Jvb3RDb250YWluZXIoZ3JhbmRDb250YWluZXIsIHRhcmdldENvbnRhaW5lcikge1xuICByZXR1cm4gZ3JhbmRDb250YWluZXIgPT09IHRhcmdldENvbnRhaW5lciB8fCBncmFuZENvbnRhaW5lci5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFICYmIGdyYW5kQ29udGFpbmVyLnBhcmVudE5vZGUgPT09IHRhcmdldENvbnRhaW5lcjtcbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hFdmVudEZvclBsdWdpbkV2ZW50U3lzdGVtKGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgbmF0aXZlRXZlbnQsIHRhcmdldEluc3QsIHRhcmdldENvbnRhaW5lcikge1xuICB2YXIgYW5jZXN0b3JJbnN0ID0gdGFyZ2V0SW5zdDtcblxuICBpZiAoKGV2ZW50U3lzdGVtRmxhZ3MgJiBJU19FVkVOVF9IQU5ETEVfTk9OX01BTkFHRURfTk9ERSkgPT09IDAgJiYgKGV2ZW50U3lzdGVtRmxhZ3MgJiBJU19OT05fREVMRUdBVEVEKSA9PT0gMCkge1xuICAgIHZhciB0YXJnZXRDb250YWluZXJOb2RlID0gdGFyZ2V0Q29udGFpbmVyOyAvLyBJZiB3ZSBhcmUgdXNpbmcgdGhlIGxlZ2FjeSBGQiBzdXBwb3J0IGZsYWcsIHdlXG5cbiAgICBpZiAodGFyZ2V0SW5zdCAhPT0gbnVsbCkge1xuICAgICAgLy8gVGhlIGJlbG93IGxvZ2ljIGF0dGVtcHRzIHRvIHdvcmsgb3V0IGlmIHdlIG5lZWQgdG8gY2hhbmdlXG4gICAgICAvLyB0aGUgdGFyZ2V0IGZpYmVyIHRvIGEgZGlmZmVyZW50IGFuY2VzdG9yLiBXZSBoYWQgc2ltaWxhciBsb2dpY1xuICAgICAgLy8gaW4gdGhlIGxlZ2FjeSBldmVudCBzeXN0ZW0sIGV4Y2VwdCB0aGUgYmlnIGRpZmZlcmVuY2UgYmV0d2VlblxuICAgICAgLy8gc3lzdGVtcyBpcyB0aGF0IHRoZSBtb2Rlcm4gZXZlbnQgc3lzdGVtIG5vdyBoYXMgYW4gZXZlbnQgbGlzdGVuZXJcbiAgICAgIC8vIGF0dGFjaGVkIHRvIGVhY2ggUmVhY3QgUm9vdCBhbmQgUmVhY3QgUG9ydGFsIFJvb3QuIFRvZ2V0aGVyLFxuICAgICAgLy8gdGhlIERPTSBub2RlcyByZXByZXNlbnRpbmcgdGhlc2Ugcm9vdHMgYXJlIHRoZSBcInJvb3RDb250YWluZXJcIi5cbiAgICAgIC8vIFRvIGZpZ3VyZSBvdXQgd2hpY2ggYW5jZXN0b3IgaW5zdGFuY2Ugd2Ugc2hvdWxkIHVzZSwgd2UgdHJhdmVyc2VcbiAgICAgIC8vIHVwIHRoZSBmaWJlciB0cmVlIGZyb20gdGhlIHRhcmdldCBpbnN0YW5jZSBhbmQgYXR0ZW1wdCB0byBmaW5kXG4gICAgICAvLyByb290IGJvdW5kYXJpZXMgdGhhdCBtYXRjaCB0aGF0IG9mIG91ciBjdXJyZW50IFwicm9vdENvbnRhaW5lclwiLlxuICAgICAgLy8gSWYgd2UgZmluZCB0aGF0IFwicm9vdENvbnRhaW5lclwiLCB3ZSBmaW5kIHRoZSBwYXJlbnQgZmliZXJcbiAgICAgIC8vIHN1Yi10cmVlIGZvciB0aGF0IHJvb3QgYW5kIG1ha2UgdGhhdCBvdXIgYW5jZXN0b3IgaW5zdGFuY2UuXG4gICAgICB2YXIgbm9kZSA9IHRhcmdldEluc3Q7XG5cbiAgICAgIG1haW5Mb29wOiB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBpZiAobm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBub2RlVGFnID0gbm9kZS50YWc7XG5cbiAgICAgICAgaWYgKG5vZGVUYWcgPT09IEhvc3RSb290IHx8IG5vZGVUYWcgPT09IEhvc3RQb3J0YWwpIHtcbiAgICAgICAgICB2YXIgY29udGFpbmVyID0gbm9kZS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztcblxuICAgICAgICAgIGlmIChpc01hdGNoaW5nUm9vdENvbnRhaW5lcihjb250YWluZXIsIHRhcmdldENvbnRhaW5lck5vZGUpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAobm9kZVRhZyA9PT0gSG9zdFBvcnRhbCkge1xuICAgICAgICAgICAgLy8gVGhlIHRhcmdldCBpcyBhIHBvcnRhbCwgYnV0IGl0J3Mgbm90IHRoZSByb290Q29udGFpbmVyIHdlJ3JlIGxvb2tpbmcgZm9yLlxuICAgICAgICAgICAgLy8gTm9ybWFsbHkgcG9ydGFscyBoYW5kbGUgdGhlaXIgb3duIGV2ZW50cyBhbGwgdGhlIHdheSBkb3duIHRvIHRoZSByb290LlxuICAgICAgICAgICAgLy8gU28gd2Ugc2hvdWxkIGJlIGFibGUgdG8gc3RvcCBub3cuIEhvd2V2ZXIsIHdlIGRvbid0IGtub3cgaWYgdGhpcyBwb3J0YWxcbiAgICAgICAgICAgIC8vIHdhcyBwYXJ0IG9mICpvdXIqIHJvb3QuXG4gICAgICAgICAgICB2YXIgZ3JhbmROb2RlID0gbm9kZS5yZXR1cm47XG5cbiAgICAgICAgICAgIHdoaWxlIChncmFuZE5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgdmFyIGdyYW5kVGFnID0gZ3JhbmROb2RlLnRhZztcblxuICAgICAgICAgICAgICBpZiAoZ3JhbmRUYWcgPT09IEhvc3RSb290IHx8IGdyYW5kVGFnID09PSBIb3N0UG9ydGFsKSB7XG4gICAgICAgICAgICAgICAgdmFyIGdyYW5kQ29udGFpbmVyID0gZ3JhbmROb2RlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzTWF0Y2hpbmdSb290Q29udGFpbmVyKGdyYW5kQ29udGFpbmVyLCB0YXJnZXRDb250YWluZXJOb2RlKSkge1xuICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgcm9vdENvbnRhaW5lciB3ZSdyZSBsb29raW5nIGZvciBhbmQgd2UgZm91bmQgaXQgYXNcbiAgICAgICAgICAgICAgICAgIC8vIGEgcGFyZW50IG9mIHRoZSBQb3J0YWwuIFRoYXQgbWVhbnMgd2UgY2FuIGlnbm9yZSBpdCBiZWNhdXNlIHRoZVxuICAgICAgICAgICAgICAgICAgLy8gUG9ydGFsIHdpbGwgYnViYmxlIHRocm91Z2ggdG8gdXMuXG4gICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZ3JhbmROb2RlID0gZ3JhbmROb2RlLnJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IC8vIE5vdyB3ZSBuZWVkIHRvIGZpbmQgaXQncyBjb3JyZXNwb25kaW5nIGhvc3QgZmliZXIgaW4gdGhlIG90aGVyXG4gICAgICAgICAgLy8gdHJlZS4gVG8gZG8gdGhpcyB3ZSBjYW4gdXNlIGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlLCBidXQgd2VcbiAgICAgICAgICAvLyBuZWVkIHRvIHZhbGlkYXRlIHRoYXQgdGhlIGZpYmVyIGlzIGEgaG9zdCBpbnN0YW5jZSwgb3RoZXJ3aXNlXG4gICAgICAgICAgLy8gd2UgbmVlZCB0byB0cmF2ZXJzZSB1cCB0aHJvdWdoIHRoZSBET00gdGlsbCB3ZSBmaW5kIHRoZSBjb3JyZWN0XG4gICAgICAgICAgLy8gbm9kZSB0aGF0IGlzIGZyb20gdGhlIG90aGVyIHRyZWUuXG5cblxuICAgICAgICAgIHdoaWxlIChjb250YWluZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBwYXJlbnROb2RlID0gZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUoY29udGFpbmVyKTtcblxuICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgcGFyZW50VGFnID0gcGFyZW50Tm9kZS50YWc7XG5cbiAgICAgICAgICAgIGlmIChwYXJlbnRUYWcgPT09IEhvc3RDb21wb25lbnQgfHwgcGFyZW50VGFnID09PSBIb3N0VGV4dCkge1xuICAgICAgICAgICAgICBub2RlID0gYW5jZXN0b3JJbnN0ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgY29udGludWUgbWFpbkxvb3A7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lci5wYXJlbnROb2RlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBiYXRjaGVkVXBkYXRlcyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGRpc3BhdGNoRXZlbnRzRm9yUGx1Z2lucyhkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIG5hdGl2ZUV2ZW50LCBhbmNlc3Rvckluc3QpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGlzcGF0Y2hMaXN0ZW5lcihpbnN0YW5jZSwgbGlzdGVuZXIsIGN1cnJlbnRUYXJnZXQpIHtcbiAgcmV0dXJuIHtcbiAgICBpbnN0YW5jZTogaW5zdGFuY2UsXG4gICAgbGlzdGVuZXI6IGxpc3RlbmVyLFxuICAgIGN1cnJlbnRUYXJnZXQ6IGN1cnJlbnRUYXJnZXRcbiAgfTtcbn1cblxuZnVuY3Rpb24gYWNjdW11bGF0ZVNpbmdsZVBoYXNlTGlzdGVuZXJzKHRhcmdldEZpYmVyLCByZWFjdE5hbWUsIG5hdGl2ZUV2ZW50VHlwZSwgaW5DYXB0dXJlUGhhc2UsIGFjY3VtdWxhdGVUYXJnZXRPbmx5LCBuYXRpdmVFdmVudCkge1xuICB2YXIgY2FwdHVyZU5hbWUgPSByZWFjdE5hbWUgIT09IG51bGwgPyByZWFjdE5hbWUgKyAnQ2FwdHVyZScgOiBudWxsO1xuICB2YXIgcmVhY3RFdmVudE5hbWUgPSBpbkNhcHR1cmVQaGFzZSA/IGNhcHR1cmVOYW1lIDogcmVhY3ROYW1lO1xuICB2YXIgbGlzdGVuZXJzID0gW107XG4gIHZhciBpbnN0YW5jZSA9IHRhcmdldEZpYmVyO1xuICB2YXIgbGFzdEhvc3RDb21wb25lbnQgPSBudWxsOyAvLyBBY2N1bXVsYXRlIGFsbCBpbnN0YW5jZXMgYW5kIGxpc3RlbmVycyB2aWEgdGhlIHRhcmdldCAtPiByb290IHBhdGguXG5cbiAgd2hpbGUgKGluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgdmFyIF9pbnN0YW5jZTIgPSBpbnN0YW5jZSxcbiAgICAgICAgc3RhdGVOb2RlID0gX2luc3RhbmNlMi5zdGF0ZU5vZGUsXG4gICAgICAgIHRhZyA9IF9pbnN0YW5jZTIudGFnOyAvLyBIYW5kbGUgbGlzdGVuZXJzIHRoYXQgYXJlIG9uIEhvc3RDb21wb25lbnRzIChpLmUuIDxkaXY+KVxuXG4gICAgaWYgKHRhZyA9PT0gSG9zdENvbXBvbmVudCAmJiBzdGF0ZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGxhc3RIb3N0Q29tcG9uZW50ID0gc3RhdGVOb2RlOyAvLyBjcmVhdGVFdmVudEhhbmRsZSBsaXN0ZW5lcnNcblxuXG4gICAgICBpZiAocmVhY3RFdmVudE5hbWUgIT09IG51bGwpIHtcbiAgICAgICAgdmFyIGxpc3RlbmVyID0gZ2V0TGlzdGVuZXIoaW5zdGFuY2UsIHJlYWN0RXZlbnROYW1lKTtcblxuICAgICAgICBpZiAobGlzdGVuZXIgIT0gbnVsbCkge1xuICAgICAgICAgIGxpc3RlbmVycy5wdXNoKGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIoaW5zdGFuY2UsIGxpc3RlbmVyLCBsYXN0SG9zdENvbXBvbmVudCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSAvLyBJZiB3ZSBhcmUgb25seSBhY2N1bXVsYXRpbmcgZXZlbnRzIGZvciB0aGUgdGFyZ2V0LCB0aGVuIHdlIGRvbid0XG4gICAgLy8gY29udGludWUgdG8gcHJvcGFnYXRlIHRocm91Z2ggdGhlIFJlYWN0IGZpYmVyIHRyZWUgdG8gZmluZCBvdGhlclxuICAgIC8vIGxpc3RlbmVycy5cblxuXG4gICAgaWYgKGFjY3VtdWxhdGVUYXJnZXRPbmx5KSB7XG4gICAgICBicmVhaztcbiAgICB9IC8vIElmIHdlIGFyZSBwcm9jZXNzaW5nIHRoZSBvbkJlZm9yZUJsdXIgZXZlbnQsIHRoZW4gd2UgbmVlZCB0byB0YWtlXG5cbiAgICBpbnN0YW5jZSA9IGluc3RhbmNlLnJldHVybjtcbiAgfVxuXG4gIHJldHVybiBsaXN0ZW5lcnM7XG59IC8vIFdlIHNob3VsZCBvbmx5IHVzZSB0aGlzIGZ1bmN0aW9uIGZvcjpcbi8vIC0gQmVmb3JlSW5wdXRFdmVudFBsdWdpblxuLy8gLSBDaGFuZ2VFdmVudFBsdWdpblxuLy8gLSBTZWxlY3RFdmVudFBsdWdpblxuLy8gVGhpcyBpcyBiZWNhdXNlIHdlIG9ubHkgcHJvY2VzcyB0aGVzZSBwbHVnaW5zXG4vLyBpbiB0aGUgYnViYmxlIHBoYXNlLCBzbyB3ZSBuZWVkIHRvIGFjY3VtdWxhdGUgdHdvXG4vLyBwaGFzZSBldmVudCBsaXN0ZW5lcnMgKHZpYSBlbXVsYXRpb24pLlxuXG5mdW5jdGlvbiBhY2N1bXVsYXRlVHdvUGhhc2VMaXN0ZW5lcnModGFyZ2V0RmliZXIsIHJlYWN0TmFtZSkge1xuICB2YXIgY2FwdHVyZU5hbWUgPSByZWFjdE5hbWUgKyAnQ2FwdHVyZSc7XG4gIHZhciBsaXN0ZW5lcnMgPSBbXTtcbiAgdmFyIGluc3RhbmNlID0gdGFyZ2V0RmliZXI7IC8vIEFjY3VtdWxhdGUgYWxsIGluc3RhbmNlcyBhbmQgbGlzdGVuZXJzIHZpYSB0aGUgdGFyZ2V0IC0+IHJvb3QgcGF0aC5cblxuICB3aGlsZSAoaW5zdGFuY2UgIT09IG51bGwpIHtcbiAgICB2YXIgX2luc3RhbmNlMyA9IGluc3RhbmNlLFxuICAgICAgICBzdGF0ZU5vZGUgPSBfaW5zdGFuY2UzLnN0YXRlTm9kZSxcbiAgICAgICAgdGFnID0gX2luc3RhbmNlMy50YWc7IC8vIEhhbmRsZSBsaXN0ZW5lcnMgdGhhdCBhcmUgb24gSG9zdENvbXBvbmVudHMgKGkuZS4gPGRpdj4pXG5cbiAgICBpZiAodGFnID09PSBIb3N0Q29tcG9uZW50ICYmIHN0YXRlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgdmFyIGN1cnJlbnRUYXJnZXQgPSBzdGF0ZU5vZGU7XG4gICAgICB2YXIgY2FwdHVyZUxpc3RlbmVyID0gZ2V0TGlzdGVuZXIoaW5zdGFuY2UsIGNhcHR1cmVOYW1lKTtcblxuICAgICAgaWYgKGNhcHR1cmVMaXN0ZW5lciAhPSBudWxsKSB7XG4gICAgICAgIGxpc3RlbmVycy51bnNoaWZ0KGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIoaW5zdGFuY2UsIGNhcHR1cmVMaXN0ZW5lciwgY3VycmVudFRhcmdldCkpO1xuICAgICAgfVxuXG4gICAgICB2YXIgYnViYmxlTGlzdGVuZXIgPSBnZXRMaXN0ZW5lcihpbnN0YW5jZSwgcmVhY3ROYW1lKTtcblxuICAgICAgaWYgKGJ1YmJsZUxpc3RlbmVyICE9IG51bGwpIHtcbiAgICAgICAgbGlzdGVuZXJzLnB1c2goY3JlYXRlRGlzcGF0Y2hMaXN0ZW5lcihpbnN0YW5jZSwgYnViYmxlTGlzdGVuZXIsIGN1cnJlbnRUYXJnZXQpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnN0YW5jZSA9IGluc3RhbmNlLnJldHVybjtcbiAgfVxuXG4gIHJldHVybiBsaXN0ZW5lcnM7XG59XG5cbmZ1bmN0aW9uIGdldFBhcmVudChpbnN0KSB7XG4gIGlmIChpbnN0ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBkbyB7XG4gICAgaW5zdCA9IGluc3QucmV0dXJuOyAvLyBUT0RPOiBJZiB0aGlzIGlzIGEgSG9zdFJvb3Qgd2UgbWlnaHQgd2FudCB0byBiYWlsIG91dC5cbiAgICAvLyBUaGF0IGlzIGRlcGVuZGluZyBvbiBpZiB3ZSB3YW50IG5lc3RlZCBzdWJ0cmVlcyAobGF5ZXJzKSB0byBidWJibGVcbiAgICAvLyBldmVudHMgdG8gdGhlaXIgcGFyZW50LiBXZSBjb3VsZCBhbHNvIGdvIHRocm91Z2ggcGFyZW50Tm9kZSBvbiB0aGVcbiAgICAvLyBob3N0IG5vZGUgYnV0IHRoYXQgd291bGRuJ3Qgd29yayBmb3IgUmVhY3QgTmF0aXZlIGFuZCBkb2Vzbid0IGxldCB1c1xuICAgIC8vIGRvIHRoZSBwb3J0YWwgZmVhdHVyZS5cbiAgfSB3aGlsZSAoaW5zdCAmJiBpbnN0LnRhZyAhPT0gSG9zdENvbXBvbmVudCk7XG5cbiAgaWYgKGluc3QpIHtcbiAgICByZXR1cm4gaW5zdDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuLyoqXG4gKiBSZXR1cm4gdGhlIGxvd2VzdCBjb21tb24gYW5jZXN0b3Igb2YgQSBhbmQgQiwgb3IgbnVsbCBpZiB0aGV5IGFyZSBpblxuICogZGlmZmVyZW50IHRyZWVzLlxuICovXG5cblxuZnVuY3Rpb24gZ2V0TG93ZXN0Q29tbW9uQW5jZXN0b3IoaW5zdEEsIGluc3RCKSB7XG4gIHZhciBub2RlQSA9IGluc3RBO1xuICB2YXIgbm9kZUIgPSBpbnN0QjtcbiAgdmFyIGRlcHRoQSA9IDA7XG5cbiAgZm9yICh2YXIgdGVtcEEgPSBub2RlQTsgdGVtcEE7IHRlbXBBID0gZ2V0UGFyZW50KHRlbXBBKSkge1xuICAgIGRlcHRoQSsrO1xuICB9XG5cbiAgdmFyIGRlcHRoQiA9IDA7XG5cbiAgZm9yICh2YXIgdGVtcEIgPSBub2RlQjsgdGVtcEI7IHRlbXBCID0gZ2V0UGFyZW50KHRlbXBCKSkge1xuICAgIGRlcHRoQisrO1xuICB9IC8vIElmIEEgaXMgZGVlcGVyLCBjcmF3bCB1cC5cblxuXG4gIHdoaWxlIChkZXB0aEEgLSBkZXB0aEIgPiAwKSB7XG4gICAgbm9kZUEgPSBnZXRQYXJlbnQobm9kZUEpO1xuICAgIGRlcHRoQS0tO1xuICB9IC8vIElmIEIgaXMgZGVlcGVyLCBjcmF3bCB1cC5cblxuXG4gIHdoaWxlIChkZXB0aEIgLSBkZXB0aEEgPiAwKSB7XG4gICAgbm9kZUIgPSBnZXRQYXJlbnQobm9kZUIpO1xuICAgIGRlcHRoQi0tO1xuICB9IC8vIFdhbGsgaW4gbG9ja3N0ZXAgdW50aWwgd2UgZmluZCBhIG1hdGNoLlxuXG5cbiAgdmFyIGRlcHRoID0gZGVwdGhBO1xuXG4gIHdoaWxlIChkZXB0aC0tKSB7XG4gICAgaWYgKG5vZGVBID09PSBub2RlQiB8fCBub2RlQiAhPT0gbnVsbCAmJiBub2RlQSA9PT0gbm9kZUIuYWx0ZXJuYXRlKSB7XG4gICAgICByZXR1cm4gbm9kZUE7XG4gICAgfVxuXG4gICAgbm9kZUEgPSBnZXRQYXJlbnQobm9kZUEpO1xuICAgIG5vZGVCID0gZ2V0UGFyZW50KG5vZGVCKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBhY2N1bXVsYXRlRW50ZXJMZWF2ZUxpc3RlbmVyc0ZvckV2ZW50KGRpc3BhdGNoUXVldWUsIGV2ZW50LCB0YXJnZXQsIGNvbW1vbiwgaW5DYXB0dXJlUGhhc2UpIHtcbiAgdmFyIHJlZ2lzdHJhdGlvbk5hbWUgPSBldmVudC5fcmVhY3ROYW1lO1xuICB2YXIgbGlzdGVuZXJzID0gW107XG4gIHZhciBpbnN0YW5jZSA9IHRhcmdldDtcblxuICB3aGlsZSAoaW5zdGFuY2UgIT09IG51bGwpIHtcbiAgICBpZiAoaW5zdGFuY2UgPT09IGNvbW1vbikge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdmFyIF9pbnN0YW5jZTQgPSBpbnN0YW5jZSxcbiAgICAgICAgYWx0ZXJuYXRlID0gX2luc3RhbmNlNC5hbHRlcm5hdGUsXG4gICAgICAgIHN0YXRlTm9kZSA9IF9pbnN0YW5jZTQuc3RhdGVOb2RlLFxuICAgICAgICB0YWcgPSBfaW5zdGFuY2U0LnRhZztcblxuICAgIGlmIChhbHRlcm5hdGUgIT09IG51bGwgJiYgYWx0ZXJuYXRlID09PSBjb21tb24pIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmICh0YWcgPT09IEhvc3RDb21wb25lbnQgJiYgc3RhdGVOb2RlICE9PSBudWxsKSB7XG4gICAgICB2YXIgY3VycmVudFRhcmdldCA9IHN0YXRlTm9kZTtcblxuICAgICAgaWYgKGluQ2FwdHVyZVBoYXNlKSB7XG4gICAgICAgIHZhciBjYXB0dXJlTGlzdGVuZXIgPSBnZXRMaXN0ZW5lcihpbnN0YW5jZSwgcmVnaXN0cmF0aW9uTmFtZSk7XG5cbiAgICAgICAgaWYgKGNhcHR1cmVMaXN0ZW5lciAhPSBudWxsKSB7XG4gICAgICAgICAgbGlzdGVuZXJzLnVuc2hpZnQoY3JlYXRlRGlzcGF0Y2hMaXN0ZW5lcihpbnN0YW5jZSwgY2FwdHVyZUxpc3RlbmVyLCBjdXJyZW50VGFyZ2V0KSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoIWluQ2FwdHVyZVBoYXNlKSB7XG4gICAgICAgIHZhciBidWJibGVMaXN0ZW5lciA9IGdldExpc3RlbmVyKGluc3RhbmNlLCByZWdpc3RyYXRpb25OYW1lKTtcblxuICAgICAgICBpZiAoYnViYmxlTGlzdGVuZXIgIT0gbnVsbCkge1xuICAgICAgICAgIGxpc3RlbmVycy5wdXNoKGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIoaW5zdGFuY2UsIGJ1YmJsZUxpc3RlbmVyLCBjdXJyZW50VGFyZ2V0KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnN0YW5jZSA9IGluc3RhbmNlLnJldHVybjtcbiAgfVxuXG4gIGlmIChsaXN0ZW5lcnMubGVuZ3RoICE9PSAwKSB7XG4gICAgZGlzcGF0Y2hRdWV1ZS5wdXNoKHtcbiAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgIGxpc3RlbmVyczogbGlzdGVuZXJzXG4gICAgfSk7XG4gIH1cbn0gLy8gV2Ugc2hvdWxkIG9ubHkgdXNlIHRoaXMgZnVuY3Rpb24gZm9yOlxuLy8gLSBFbnRlckxlYXZlRXZlbnRQbHVnaW5cbi8vIFRoaXMgaXMgYmVjYXVzZSB3ZSBvbmx5IHByb2Nlc3MgdGhpcyBwbHVnaW5cbi8vIGluIHRoZSBidWJibGUgcGhhc2UsIHNvIHdlIG5lZWQgdG8gYWNjdW11bGF0ZSB0d29cbi8vIHBoYXNlIGV2ZW50IGxpc3RlbmVycy5cblxuXG5mdW5jdGlvbiBhY2N1bXVsYXRlRW50ZXJMZWF2ZVR3b1BoYXNlTGlzdGVuZXJzKGRpc3BhdGNoUXVldWUsIGxlYXZlRXZlbnQsIGVudGVyRXZlbnQsIGZyb20sIHRvKSB7XG4gIHZhciBjb21tb24gPSBmcm9tICYmIHRvID8gZ2V0TG93ZXN0Q29tbW9uQW5jZXN0b3IoZnJvbSwgdG8pIDogbnVsbDtcblxuICBpZiAoZnJvbSAhPT0gbnVsbCkge1xuICAgIGFjY3VtdWxhdGVFbnRlckxlYXZlTGlzdGVuZXJzRm9yRXZlbnQoZGlzcGF0Y2hRdWV1ZSwgbGVhdmVFdmVudCwgZnJvbSwgY29tbW9uLCBmYWxzZSk7XG4gIH1cblxuICBpZiAodG8gIT09IG51bGwgJiYgZW50ZXJFdmVudCAhPT0gbnVsbCkge1xuICAgIGFjY3VtdWxhdGVFbnRlckxlYXZlTGlzdGVuZXJzRm9yRXZlbnQoZGlzcGF0Y2hRdWV1ZSwgZW50ZXJFdmVudCwgdG8sIGNvbW1vbiwgdHJ1ZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGdldExpc3RlbmVyU2V0S2V5KGRvbUV2ZW50TmFtZSwgY2FwdHVyZSkge1xuICByZXR1cm4gZG9tRXZlbnROYW1lICsgXCJfX1wiICsgKGNhcHR1cmUgPyAnY2FwdHVyZScgOiAnYnViYmxlJyk7XG59XG5cbnZhciBkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbiA9IGZhbHNlO1xudmFyIERBTkdFUk9VU0xZX1NFVF9JTk5FUl9IVE1MID0gJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJztcbnZhciBTVVBQUkVTU19DT05URU5UX0VESVRBQkxFX1dBUk5JTkcgPSAnc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nJztcbnZhciBTVVBQUkVTU19IWURSQVRJT05fV0FSTklORyA9ICdzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcnO1xudmFyIEFVVE9GT0NVUyA9ICdhdXRvRm9jdXMnO1xudmFyIENISUxEUkVOID0gJ2NoaWxkcmVuJztcbnZhciBTVFlMRSA9ICdzdHlsZSc7XG52YXIgSFRNTCQxID0gJ19faHRtbCc7XG52YXIgd2FybmVkVW5rbm93blRhZ3M7XG52YXIgc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nO1xudmFyIHZhbGlkYXRlUHJvcGVydGllc0luRGV2ZWxvcG1lbnQ7XG52YXIgd2FybkZvclByb3BEaWZmZXJlbmNlO1xudmFyIHdhcm5Gb3JFeHRyYUF0dHJpYnV0ZXM7XG52YXIgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyO1xudmFyIGNhbkRpZmZTdHlsZUZvckh5ZHJhdGlvbldhcm5pbmc7XG52YXIgbm9ybWFsaXplSFRNTDtcblxue1xuICB3YXJuZWRVbmtub3duVGFncyA9IHtcbiAgICAvLyBUaGVyZSBhcmUgd29ya2luZyBwb2x5ZmlsbHMgZm9yIDxkaWFsb2c+LiBMZXQgcGVvcGxlIHVzZSBpdC5cbiAgICBkaWFsb2c6IHRydWUsXG4gICAgLy8gRWxlY3Ryb24gc2hpcHMgYSBjdXN0b20gPHdlYnZpZXc+IHRhZyB0byBkaXNwbGF5IGV4dGVybmFsIHdlYiBjb250ZW50IGluXG4gICAgLy8gYW4gaXNvbGF0ZWQgZnJhbWUgYW5kIHByb2Nlc3MuXG4gICAgLy8gVGhpcyB0YWcgaXMgbm90IHByZXNlbnQgaW4gbm9uIEVsZWN0cm9uIGVudmlyb25tZW50cyBzdWNoIGFzIEpTRG9tIHdoaWNoXG4gICAgLy8gaXMgb2Z0ZW4gdXNlZCBmb3IgdGVzdGluZyBwdXJwb3Nlcy5cbiAgICAvLyBAc2VlIGh0dHBzOi8vZWxlY3Ryb25qcy5vcmcvZG9jcy9hcGkvd2Vidmlldy10YWdcbiAgICB3ZWJ2aWV3OiB0cnVlXG4gIH07XG5cbiAgdmFsaWRhdGVQcm9wZXJ0aWVzSW5EZXZlbG9wbWVudCA9IGZ1bmN0aW9uICh0eXBlLCBwcm9wcykge1xuICAgIHZhbGlkYXRlUHJvcGVydGllcyh0eXBlLCBwcm9wcyk7XG4gICAgdmFsaWRhdGVQcm9wZXJ0aWVzJDEodHlwZSwgcHJvcHMpO1xuICAgIHZhbGlkYXRlUHJvcGVydGllcyQyKHR5cGUsIHByb3BzLCB7XG4gICAgICByZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzOiByZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLFxuICAgICAgcG9zc2libGVSZWdpc3RyYXRpb25OYW1lczogcG9zc2libGVSZWdpc3RyYXRpb25OYW1lc1xuICAgIH0pO1xuICB9OyAvLyBJRSAxMSBwYXJzZXMgJiBub3JtYWxpemVzIHRoZSBzdHlsZSBhdHRyaWJ1dGUgYXMgb3Bwb3NlZCB0byBvdGhlclxuICAvLyBicm93c2Vycy4gSXQgYWRkcyBzcGFjZXMgYW5kIHNvcnRzIHRoZSBwcm9wZXJ0aWVzIGluIHNvbWVcbiAgLy8gbm9uLWFscGhhYmV0aWNhbCBvcmRlci4gSGFuZGxpbmcgdGhhdCB3b3VsZCByZXF1aXJlIHNvcnRpbmcgQ1NTXG4gIC8vIHByb3BlcnRpZXMgaW4gdGhlIGNsaWVudCAmIHNlcnZlciB2ZXJzaW9ucyBvciBhcHBseWluZ1xuICAvLyBgZXhwZWN0ZWRTdHlsZWAgdG8gYSB0ZW1wb3JhcnkgRE9NIG5vZGUgdG8gcmVhZCBpdHMgYHN0eWxlYCBhdHRyaWJ1dGVcbiAgLy8gbm9ybWFsaXplZC4gU2luY2UgaXQgb25seSBhZmZlY3RzIElFLCB3ZSdyZSBza2lwcGluZyBzdHlsZSB3YXJuaW5nc1xuICAvLyBpbiB0aGF0IGJyb3dzZXIgY29tcGxldGVseSBpbiBmYXZvciBvZiBkb2luZyBhbGwgdGhhdCB3b3JrLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMTgwN1xuXG5cbiAgY2FuRGlmZlN0eWxlRm9ySHlkcmF0aW9uV2FybmluZyA9IGNhblVzZURPTSAmJiAhZG9jdW1lbnQuZG9jdW1lbnRNb2RlO1xuXG4gIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZSA9IGZ1bmN0aW9uIChwcm9wTmFtZSwgc2VydmVyVmFsdWUsIGNsaWVudFZhbHVlKSB7XG4gICAgaWYgKGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIG5vcm1hbGl6ZWRDbGllbnRWYWx1ZSA9IG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZShjbGllbnRWYWx1ZSk7XG4gICAgdmFyIG5vcm1hbGl6ZWRTZXJ2ZXJWYWx1ZSA9IG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZShzZXJ2ZXJWYWx1ZSk7XG5cbiAgICBpZiAobm9ybWFsaXplZFNlcnZlclZhbHVlID09PSBub3JtYWxpemVkQ2xpZW50VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbiA9IHRydWU7XG5cbiAgICBlcnJvcignUHJvcCBgJXNgIGRpZCBub3QgbWF0Y2guIFNlcnZlcjogJXMgQ2xpZW50OiAlcycsIHByb3BOYW1lLCBKU09OLnN0cmluZ2lmeShub3JtYWxpemVkU2VydmVyVmFsdWUpLCBKU09OLnN0cmluZ2lmeShub3JtYWxpemVkQ2xpZW50VmFsdWUpKTtcbiAgfTtcblxuICB3YXJuRm9yRXh0cmFBdHRyaWJ1dGVzID0gZnVuY3Rpb24gKGF0dHJpYnV0ZU5hbWVzKSB7XG4gICAgaWYgKGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZGlkV2FybkludmFsaWRIeWRyYXRpb24gPSB0cnVlO1xuICAgIHZhciBuYW1lcyA9IFtdO1xuICAgIGF0dHJpYnV0ZU5hbWVzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIG5hbWVzLnB1c2gobmFtZSk7XG4gICAgfSk7XG5cbiAgICBlcnJvcignRXh0cmEgYXR0cmlidXRlcyBmcm9tIHRoZSBzZXJ2ZXI6ICVzJywgbmFtZXMpO1xuICB9O1xuXG4gIHdhcm5Gb3JJbnZhbGlkRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uIChyZWdpc3RyYXRpb25OYW1lLCBsaXN0ZW5lcikge1xuICAgIGlmIChsaXN0ZW5lciA9PT0gZmFsc2UpIHtcbiAgICAgIGVycm9yKCdFeHBlY3RlZCBgJXNgIGxpc3RlbmVyIHRvIGJlIGEgZnVuY3Rpb24sIGluc3RlYWQgZ290IGBmYWxzZWAuXFxuXFxuJyArICdJZiB5b3UgdXNlZCB0byBjb25kaXRpb25hbGx5IG9taXQgaXQgd2l0aCAlcz17Y29uZGl0aW9uICYmIHZhbHVlfSwgJyArICdwYXNzICVzPXtjb25kaXRpb24gPyB2YWx1ZSA6IHVuZGVmaW5lZH0gaW5zdGVhZC4nLCByZWdpc3RyYXRpb25OYW1lLCByZWdpc3RyYXRpb25OYW1lLCByZWdpc3RyYXRpb25OYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3IoJ0V4cGVjdGVkIGAlc2AgbGlzdGVuZXIgdG8gYmUgYSBmdW5jdGlvbiwgaW5zdGVhZCBnb3QgYSB2YWx1ZSBvZiBgJXNgIHR5cGUuJywgcmVnaXN0cmF0aW9uTmFtZSwgdHlwZW9mIGxpc3RlbmVyKTtcbiAgICB9XG4gIH07IC8vIFBhcnNlIHRoZSBIVE1MIGFuZCByZWFkIGl0IGJhY2sgdG8gbm9ybWFsaXplIHRoZSBIVE1MIHN0cmluZyBzbyB0aGF0IGl0XG4gIC8vIGNhbiBiZSB1c2VkIGZvciBjb21wYXJpc29uLlxuXG5cbiAgbm9ybWFsaXplSFRNTCA9IGZ1bmN0aW9uIChwYXJlbnQsIGh0bWwpIHtcbiAgICAvLyBXZSBjb3VsZCBoYXZlIGNyZWF0ZWQgYSBzZXBhcmF0ZSBkb2N1bWVudCBoZXJlIHRvIGF2b2lkXG4gICAgLy8gcmUtaW5pdGlhbGl6aW5nIGN1c3RvbSBlbGVtZW50cyBpZiB0aGV5IGV4aXN0LiBCdXQgdGhpcyBicmVha3NcbiAgICAvLyBob3cgPG5vc2NyaXB0PiBpcyBiZWluZyBoYW5kbGVkLiBTbyB3ZSB1c2UgdGhlIHNhbWUgZG9jdW1lbnQuXG4gICAgLy8gU2VlIHRoZSBkaXNjdXNzaW9uIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzExMTU3LlxuICAgIHZhciB0ZXN0RWxlbWVudCA9IHBhcmVudC5uYW1lc3BhY2VVUkkgPT09IEhUTUxfTkFNRVNQQUNFID8gcGFyZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudChwYXJlbnQudGFnTmFtZSkgOiBwYXJlbnQub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMocGFyZW50Lm5hbWVzcGFjZVVSSSwgcGFyZW50LnRhZ05hbWUpO1xuICAgIHRlc3RFbGVtZW50LmlubmVySFRNTCA9IGh0bWw7XG4gICAgcmV0dXJuIHRlc3RFbGVtZW50LmlubmVySFRNTDtcbiAgfTtcbn0gLy8gSFRNTCBwYXJzaW5nIG5vcm1hbGl6ZXMgQ1IgYW5kIENSTEYgdG8gTEYuXG4vLyBJdCBhbHNvIGNhbiB0dXJuIFxcdTAwMDAgaW50byBcXHVGRkZEIGluc2lkZSBhdHRyaWJ1dGVzLlxuLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L3NpbmdsZS1wYWdlLmh0bWwjcHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtXG4vLyBJZiB3ZSBoYXZlIGEgbWlzbWF0Y2gsIGl0IG1pZ2h0IGJlIGNhdXNlZCBieSB0aGF0LlxuLy8gV2Ugd2lsbCBzdGlsbCBwYXRjaCB1cCBpbiB0aGlzIGNhc2UgYnV0IG5vdCBmaXJlIHRoZSB3YXJuaW5nLlxuXG5cbnZhciBOT1JNQUxJWkVfTkVXTElORVNfUkVHRVggPSAvXFxyXFxuPy9nO1xudmFyIE5PUk1BTElaRV9OVUxMX0FORF9SRVBMQUNFTUVOVF9SRUdFWCA9IC9cXHUwMDAwfFxcdUZGRkQvZztcblxuZnVuY3Rpb24gbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKG1hcmt1cCkge1xuICB7XG4gICAgY2hlY2tIdG1sU3RyaW5nQ29lcmNpb24obWFya3VwKTtcbiAgfVxuXG4gIHZhciBtYXJrdXBTdHJpbmcgPSB0eXBlb2YgbWFya3VwID09PSAnc3RyaW5nJyA/IG1hcmt1cCA6ICcnICsgbWFya3VwO1xuICByZXR1cm4gbWFya3VwU3RyaW5nLnJlcGxhY2UoTk9STUFMSVpFX05FV0xJTkVTX1JFR0VYLCAnXFxuJykucmVwbGFjZShOT1JNQUxJWkVfTlVMTF9BTkRfUkVQTEFDRU1FTlRfUkVHRVgsICcnKTtcbn1cblxuZnVuY3Rpb24gY2hlY2tGb3JVbm1hdGNoZWRUZXh0KHNlcnZlclRleHQsIGNsaWVudFRleHQsIGlzQ29uY3VycmVudE1vZGUsIHNob3VsZFdhcm5EZXYpIHtcbiAgdmFyIG5vcm1hbGl6ZWRDbGllbnRUZXh0ID0gbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKGNsaWVudFRleHQpO1xuICB2YXIgbm9ybWFsaXplZFNlcnZlclRleHQgPSBub3JtYWxpemVNYXJrdXBGb3JUZXh0T3JBdHRyaWJ1dGUoc2VydmVyVGV4dCk7XG5cbiAgaWYgKG5vcm1hbGl6ZWRTZXJ2ZXJUZXh0ID09PSBub3JtYWxpemVkQ2xpZW50VGV4dCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChzaG91bGRXYXJuRGV2KSB7XG4gICAge1xuICAgICAgaWYgKCFkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbikge1xuICAgICAgICBkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbiA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJ1RleHQgY29udGVudCBkaWQgbm90IG1hdGNoLiBTZXJ2ZXI6IFwiJXNcIiBDbGllbnQ6IFwiJXNcIicsIG5vcm1hbGl6ZWRTZXJ2ZXJUZXh0LCBub3JtYWxpemVkQ2xpZW50VGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGlzQ29uY3VycmVudE1vZGUgJiYgZW5hYmxlQ2xpZW50UmVuZGVyRmFsbGJhY2tPblRleHRNaXNtYXRjaCkge1xuICAgIC8vIEluIGNvbmN1cnJlbnQgcm9vdHMsIHdlIHRocm93IHdoZW4gdGhlcmUncyBhIHRleHQgbWlzbWF0Y2ggYW5kIHJldmVydCB0b1xuICAgIC8vIGNsaWVudCByZW5kZXJpbmcsIHVwIHRvIHRoZSBuZWFyZXN0IFN1c3BlbnNlIGJvdW5kYXJ5LlxuICAgIHRocm93IG5ldyBFcnJvcignVGV4dCBjb250ZW50IGRvZXMgbm90IG1hdGNoIHNlcnZlci1yZW5kZXJlZCBIVE1MLicpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldE93bmVyRG9jdW1lbnRGcm9tUm9vdENvbnRhaW5lcihyb290Q29udGFpbmVyRWxlbWVudCkge1xuICByZXR1cm4gcm9vdENvbnRhaW5lckVsZW1lbnQubm9kZVR5cGUgPT09IERPQ1VNRU5UX05PREUgPyByb290Q29udGFpbmVyRWxlbWVudCA6IHJvb3RDb250YWluZXJFbGVtZW50Lm93bmVyRG9jdW1lbnQ7XG59XG5cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5mdW5jdGlvbiB0cmFwQ2xpY2tPbk5vbkludGVyYWN0aXZlRWxlbWVudChub2RlKSB7XG4gIC8vIE1vYmlsZSBTYWZhcmkgZG9lcyBub3QgZmlyZSBwcm9wZXJseSBidWJibGUgY2xpY2sgZXZlbnRzIG9uXG4gIC8vIG5vbi1pbnRlcmFjdGl2ZSBlbGVtZW50cywgd2hpY2ggbWVhbnMgZGVsZWdhdGVkIGNsaWNrIGxpc3RlbmVycyBkbyBub3RcbiAgLy8gZmlyZS4gVGhlIHdvcmthcm91bmQgZm9yIHRoaXMgYnVnIGludm9sdmVzIGF0dGFjaGluZyBhbiBlbXB0eSBjbGlja1xuICAvLyBsaXN0ZW5lciBvbiB0aGUgdGFyZ2V0IG5vZGUuXG4gIC8vIGh0dHBzOi8vd3d3LnF1aXJrc21vZGUub3JnL2Jsb2cvYXJjaGl2ZXMvMjAxMC8wOS9jbGlja19ldmVudF9kZWwuaHRtbFxuICAvLyBKdXN0IHNldCBpdCB1c2luZyB0aGUgb25jbGljayBwcm9wZXJ0eSBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gbWFuYWdlIGFueVxuICAvLyBib29ra2VlcGluZyBmb3IgaXQuIE5vdCBzdXJlIGlmIHdlIG5lZWQgdG8gY2xlYXIgaXQgd2hlbiB0aGUgbGlzdGVuZXIgaXNcbiAgLy8gcmVtb3ZlZC5cbiAgLy8gVE9ETzogT25seSBkbyB0aGlzIGZvciB0aGUgcmVsZXZhbnQgU2FmYXJpcyBtYXliZT9cbiAgbm9kZS5vbmNsaWNrID0gbm9vcDtcbn1cblxuZnVuY3Rpb24gc2V0SW5pdGlhbERPTVByb3BlcnRpZXModGFnLCBkb21FbGVtZW50LCByb290Q29udGFpbmVyRWxlbWVudCwgbmV4dFByb3BzLCBpc0N1c3RvbUNvbXBvbmVudFRhZykge1xuICBmb3IgKHZhciBwcm9wS2V5IGluIG5leHRQcm9wcykge1xuICAgIGlmICghbmV4dFByb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB2YXIgbmV4dFByb3AgPSBuZXh0UHJvcHNbcHJvcEtleV07XG5cbiAgICBpZiAocHJvcEtleSA9PT0gU1RZTEUpIHtcbiAgICAgIHtcbiAgICAgICAgaWYgKG5leHRQcm9wKSB7XG4gICAgICAgICAgLy8gRnJlZXplIHRoZSBuZXh0IHN0eWxlIG9iamVjdCBzbyB0aGF0IHdlIGNhbiBhc3N1bWUgaXQgd29uJ3QgYmVcbiAgICAgICAgICAvLyBtdXRhdGVkLiBXZSBoYXZlIGFscmVhZHkgd2FybmVkIGZvciB0aGlzIGluIHRoZSBwYXN0LlxuICAgICAgICAgIE9iamVjdC5mcmVlemUobmV4dFByb3ApO1xuICAgICAgICB9XG4gICAgICB9IC8vIFJlbGllcyBvbiBgdXBkYXRlU3R5bGVzQnlJRGAgbm90IG11dGF0aW5nIGBzdHlsZVVwZGF0ZXNgLlxuXG5cbiAgICAgIHNldFZhbHVlRm9yU3R5bGVzKGRvbUVsZW1lbnQsIG5leHRQcm9wKTtcbiAgICB9IGVsc2UgaWYgKHByb3BLZXkgPT09IERBTkdFUk9VU0xZX1NFVF9JTk5FUl9IVE1MKSB7XG4gICAgICB2YXIgbmV4dEh0bWwgPSBuZXh0UHJvcCA/IG5leHRQcm9wW0hUTUwkMV0gOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChuZXh0SHRtbCAhPSBudWxsKSB7XG4gICAgICAgIHNldElubmVySFRNTChkb21FbGVtZW50LCBuZXh0SHRtbCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBDSElMRFJFTikge1xuICAgICAgaWYgKHR5cGVvZiBuZXh0UHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gQXZvaWQgc2V0dGluZyBpbml0aWFsIHRleHRDb250ZW50IHdoZW4gdGhlIHRleHQgaXMgZW1wdHkuIEluIElFMTEgc2V0dGluZ1xuICAgICAgICAvLyB0ZXh0Q29udGVudCBvbiBhIDx0ZXh0YXJlYT4gd2lsbCBjYXVzZSB0aGUgcGxhY2Vob2xkZXIgdG8gbm90XG4gICAgICAgIC8vIHNob3cgd2l0aGluIHRoZSA8dGV4dGFyZWE+IHVudGlsIGl0IGhhcyBiZWVuIGZvY3VzZWQgYW5kIGJsdXJyZWQgYWdhaW4uXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNjczMSNpc3N1ZWNvbW1lbnQtMjU0ODc0NTUzXG4gICAgICAgIHZhciBjYW5TZXRUZXh0Q29udGVudCA9IHRhZyAhPT0gJ3RleHRhcmVhJyB8fCBuZXh0UHJvcCAhPT0gJyc7XG5cbiAgICAgICAgaWYgKGNhblNldFRleHRDb250ZW50KSB7XG4gICAgICAgICAgc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCwgbmV4dFByb3ApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBuZXh0UHJvcCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCwgJycgKyBuZXh0UHJvcCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBTVVBQUkVTU19DT05URU5UX0VESVRBQkxFX1dBUk5JTkcgfHwgcHJvcEtleSA9PT0gU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkcpIDsgZWxzZSBpZiAocHJvcEtleSA9PT0gQVVUT0ZPQ1VTKSA7IGVsc2UgaWYgKHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgIGlmIChuZXh0UHJvcCAhPSBudWxsKSB7XG4gICAgICAgIGlmICggdHlwZW9mIG5leHRQcm9wICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKHByb3BLZXksIG5leHRQcm9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wS2V5ID09PSAnb25TY3JvbGwnKSB7XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnc2Nyb2xsJywgZG9tRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5leHRQcm9wICE9IG51bGwpIHtcbiAgICAgIHNldFZhbHVlRm9yUHJvcGVydHkoZG9tRWxlbWVudCwgcHJvcEtleSwgbmV4dFByb3AsIGlzQ3VzdG9tQ29tcG9uZW50VGFnKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlRE9NUHJvcGVydGllcyhkb21FbGVtZW50LCB1cGRhdGVQYXlsb2FkLCB3YXNDdXN0b21Db21wb25lbnRUYWcsIGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG4gIC8vIFRPRE86IEhhbmRsZSB3YXNDdXN0b21Db21wb25lbnRUYWdcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB1cGRhdGVQYXlsb2FkLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgdmFyIHByb3BLZXkgPSB1cGRhdGVQYXlsb2FkW2ldO1xuICAgIHZhciBwcm9wVmFsdWUgPSB1cGRhdGVQYXlsb2FkW2kgKyAxXTtcblxuICAgIGlmIChwcm9wS2V5ID09PSBTVFlMRSkge1xuICAgICAgc2V0VmFsdWVGb3JTdHlsZXMoZG9tRWxlbWVudCwgcHJvcFZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHByb3BLZXkgPT09IERBTkdFUk9VU0xZX1NFVF9JTk5FUl9IVE1MKSB7XG4gICAgICBzZXRJbm5lckhUTUwoZG9tRWxlbWVudCwgcHJvcFZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHByb3BLZXkgPT09IENISUxEUkVOKSB7XG4gICAgICBzZXRUZXh0Q29udGVudChkb21FbGVtZW50LCBwcm9wVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRWYWx1ZUZvclByb3BlcnR5KGRvbUVsZW1lbnQsIHByb3BLZXksIHByb3BWYWx1ZSwgaXNDdXN0b21Db21wb25lbnRUYWcpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50KHR5cGUsIHByb3BzLCByb290Q29udGFpbmVyRWxlbWVudCwgcGFyZW50TmFtZXNwYWNlKSB7XG4gIHZhciBpc0N1c3RvbUNvbXBvbmVudFRhZzsgLy8gV2UgY3JlYXRlIHRhZ3MgaW4gdGhlIG5hbWVzcGFjZSBvZiB0aGVpciBwYXJlbnQgY29udGFpbmVyLCBleGNlcHQgSFRNTFxuICAvLyB0YWdzIGdldCBubyBuYW1lc3BhY2UuXG5cbiAgdmFyIG93bmVyRG9jdW1lbnQgPSBnZXRPd25lckRvY3VtZW50RnJvbVJvb3RDb250YWluZXIocm9vdENvbnRhaW5lckVsZW1lbnQpO1xuICB2YXIgZG9tRWxlbWVudDtcbiAgdmFyIG5hbWVzcGFjZVVSSSA9IHBhcmVudE5hbWVzcGFjZTtcblxuICBpZiAobmFtZXNwYWNlVVJJID09PSBIVE1MX05BTUVTUEFDRSkge1xuICAgIG5hbWVzcGFjZVVSSSA9IGdldEludHJpbnNpY05hbWVzcGFjZSh0eXBlKTtcbiAgfVxuXG4gIGlmIChuYW1lc3BhY2VVUkkgPT09IEhUTUxfTkFNRVNQQUNFKSB7XG4gICAge1xuICAgICAgaXNDdXN0b21Db21wb25lbnRUYWcgPSBpc0N1c3RvbUNvbXBvbmVudCh0eXBlLCBwcm9wcyk7IC8vIFNob3VsZCB0aGlzIGNoZWNrIGJlIGdhdGVkIGJ5IHBhcmVudCBuYW1lc3BhY2U/IE5vdCBzdXJlIHdlIHdhbnQgdG9cbiAgICAgIC8vIGFsbG93IDxTVkc+IG9yIDxtQVRIPi5cblxuICAgICAgaWYgKCFpc0N1c3RvbUNvbXBvbmVudFRhZyAmJiB0eXBlICE9PSB0eXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgZXJyb3IoJzwlcyAvPiBpcyB1c2luZyBpbmNvcnJlY3QgY2FzaW5nLiAnICsgJ1VzZSBQYXNjYWxDYXNlIGZvciBSZWFjdCBjb21wb25lbnRzLCAnICsgJ29yIGxvd2VyY2FzZSBmb3IgSFRNTCBlbGVtZW50cy4nLCB0eXBlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ3NjcmlwdCcpIHtcbiAgICAgIC8vIENyZWF0ZSB0aGUgc2NyaXB0IHZpYSAuaW5uZXJIVE1MIHNvIGl0cyBcInBhcnNlci1pbnNlcnRlZFwiIGZsYWcgaXNcbiAgICAgIC8vIHNldCB0byB0cnVlIGFuZCBpdCBkb2VzIG5vdCBleGVjdXRlXG4gICAgICB2YXIgZGl2ID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgICAgZGl2LmlubmVySFRNTCA9ICc8c2NyaXB0PjwnICsgJy9zY3JpcHQ+JzsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgICAgLy8gVGhpcyBpcyBndWFyYW50ZWVkIHRvIHlpZWxkIGEgc2NyaXB0IGVsZW1lbnQuXG5cbiAgICAgIHZhciBmaXJzdENoaWxkID0gZGl2LmZpcnN0Q2hpbGQ7XG4gICAgICBkb21FbGVtZW50ID0gZGl2LnJlbW92ZUNoaWxkKGZpcnN0Q2hpbGQpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHByb3BzLmlzID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gJEZsb3dJc3N1ZSBgY3JlYXRlRWxlbWVudGAgc2hvdWxkIGJlIHVwZGF0ZWQgZm9yIFdlYiBDb21wb25lbnRzXG4gICAgICBkb21FbGVtZW50ID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUsIHtcbiAgICAgICAgaXM6IHByb3BzLmlzXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2VwYXJhdGUgZWxzZSBicmFuY2ggaW5zdGVhZCBvZiB1c2luZyBgcHJvcHMuaXMgfHwgdW5kZWZpbmVkYCBhYm92ZSBiZWNhdXNlIG9mIGEgRmlyZWZveCBidWcuXG4gICAgICAvLyBTZWUgZGlzY3Vzc2lvbiBpbiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC82ODk2XG4gICAgICAvLyBhbmQgZGlzY3Vzc2lvbiBpbiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2MjQwXG4gICAgICBkb21FbGVtZW50ID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpOyAvLyBOb3JtYWxseSBhdHRyaWJ1dGVzIGFyZSBhc3NpZ25lZCBpbiBgc2V0SW5pdGlhbERPTVByb3BlcnRpZXNgLCBob3dldmVyIHRoZSBgbXVsdGlwbGVgIGFuZCBgc2l6ZWBcbiAgICAgIC8vIGF0dHJpYnV0ZXMgb24gYHNlbGVjdGBzIG5lZWRzIHRvIGJlIGFkZGVkIGJlZm9yZSBgb3B0aW9uYHMgYXJlIGluc2VydGVkLlxuICAgICAgLy8gVGhpcyBwcmV2ZW50czpcbiAgICAgIC8vIC0gYSBidWcgd2hlcmUgdGhlIGBzZWxlY3RgIGRvZXMgbm90IHNjcm9sbCB0byB0aGUgY29ycmVjdCBvcHRpb24gYmVjYXVzZSBzaW5ndWxhclxuICAgICAgLy8gIGBzZWxlY3RgIGVsZW1lbnRzIGF1dG9tYXRpY2FsbHkgcGljayB0aGUgZmlyc3QgaXRlbSAjMTMyMjJcbiAgICAgIC8vIC0gYSBidWcgd2hlcmUgdGhlIGBzZWxlY3RgIHNldCB0aGUgZmlyc3QgaXRlbSBhcyBzZWxlY3RlZCBkZXNwaXRlIHRoZSBgc2l6ZWAgYXR0cmlidXRlICMxNDIzOVxuICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTMyMjJcbiAgICAgIC8vIGFuZCBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE0MjM5XG5cbiAgICAgIGlmICh0eXBlID09PSAnc2VsZWN0Jykge1xuICAgICAgICB2YXIgbm9kZSA9IGRvbUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKHByb3BzLm11bHRpcGxlKSB7XG4gICAgICAgICAgbm9kZS5tdWx0aXBsZSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvcHMuc2l6ZSkge1xuICAgICAgICAgIC8vIFNldHRpbmcgYSBzaXplIGdyZWF0ZXIgdGhhbiAxIGNhdXNlcyBhIHNlbGVjdCB0byBiZWhhdmUgbGlrZSBgbXVsdGlwbGU9dHJ1ZWAsIHdoZXJlXG4gICAgICAgICAgLy8gaXQgaXMgcG9zc2libGUgdGhhdCBubyBvcHRpb24gaXMgc2VsZWN0ZWQuXG4gICAgICAgICAgLy9cbiAgICAgICAgICAvLyBUaGlzIGlzIG9ubHkgbmVjZXNzYXJ5IHdoZW4gYSBzZWxlY3QgaW4gXCJzaW5nbGUgc2VsZWN0aW9uIG1vZGVcIi5cbiAgICAgICAgICBub2RlLnNpemUgPSBwcm9wcy5zaXplO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGRvbUVsZW1lbnQgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhuYW1lc3BhY2VVUkksIHR5cGUpO1xuICB9XG5cbiAge1xuICAgIGlmIChuYW1lc3BhY2VVUkkgPT09IEhUTUxfTkFNRVNQQUNFKSB7XG4gICAgICBpZiAoIWlzQ3VzdG9tQ29tcG9uZW50VGFnICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkb21FbGVtZW50KSA9PT0gJ1tvYmplY3QgSFRNTFVua25vd25FbGVtZW50XScgJiYgIWhhc093blByb3BlcnR5LmNhbGwod2FybmVkVW5rbm93blRhZ3MsIHR5cGUpKSB7XG4gICAgICAgIHdhcm5lZFVua25vd25UYWdzW3R5cGVdID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignVGhlIHRhZyA8JXM+IGlzIHVucmVjb2duaXplZCBpbiB0aGlzIGJyb3dzZXIuICcgKyAnSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIFJlYWN0IGNvbXBvbmVudCwgc3RhcnQgaXRzIG5hbWUgd2l0aCAnICsgJ2FuIHVwcGVyY2FzZSBsZXR0ZXIuJywgdHlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRvbUVsZW1lbnQ7XG59XG5mdW5jdGlvbiBjcmVhdGVUZXh0Tm9kZSh0ZXh0LCByb290Q29udGFpbmVyRWxlbWVudCkge1xuICByZXR1cm4gZ2V0T3duZXJEb2N1bWVudEZyb21Sb290Q29udGFpbmVyKHJvb3RDb250YWluZXJFbGVtZW50KS5jcmVhdGVUZXh0Tm9kZSh0ZXh0KTtcbn1cbmZ1bmN0aW9uIHNldEluaXRpYWxQcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHRhZywgcmF3UHJvcHMsIHJvb3RDb250YWluZXJFbGVtZW50KSB7XG4gIHZhciBpc0N1c3RvbUNvbXBvbmVudFRhZyA9IGlzQ3VzdG9tQ29tcG9uZW50KHRhZywgcmF3UHJvcHMpO1xuXG4gIHtcbiAgICB2YWxpZGF0ZVByb3BlcnRpZXNJbkRldmVsb3BtZW50KHRhZywgcmF3UHJvcHMpO1xuICB9IC8vIFRPRE86IE1ha2Ugc3VyZSB0aGF0IHdlIGNoZWNrIGlzTW91bnRlZCBiZWZvcmUgZmlyaW5nIGFueSBvZiB0aGVzZSBldmVudHMuXG5cblxuICB2YXIgcHJvcHM7XG5cbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlICdkaWFsb2cnOlxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnY2FuY2VsJywgZG9tRWxlbWVudCk7XG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdjbG9zZScsIGRvbUVsZW1lbnQpO1xuICAgICAgcHJvcHMgPSByYXdQcm9wcztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnaWZyYW1lJzpcbiAgICBjYXNlICdvYmplY3QnOlxuICAgIGNhc2UgJ2VtYmVkJzpcbiAgICAgIC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBsb2FkIGV2ZW50LlxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnbG9hZCcsIGRvbUVsZW1lbnQpO1xuICAgICAgcHJvcHMgPSByYXdQcm9wcztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAndmlkZW8nOlxuICAgIGNhc2UgJ2F1ZGlvJzpcbiAgICAgIC8vIFdlIGxpc3RlbiB0byB0aGVzZSBldmVudHMgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgYWxsIHRoZSBtZWRpYSBldmVudHMuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lZGlhRXZlbnRUeXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KG1lZGlhRXZlbnRUeXBlc1tpXSwgZG9tRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIHByb3BzID0gcmF3UHJvcHM7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3NvdXJjZSc6XG4gICAgICAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgZXJyb3IgZXZlbnQuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdlcnJvcicsIGRvbUVsZW1lbnQpO1xuICAgICAgcHJvcHMgPSByYXdQcm9wcztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnaW1nJzpcbiAgICBjYXNlICdpbWFnZSc6XG4gICAgY2FzZSAnbGluayc6XG4gICAgICAvLyBXZSBsaXN0ZW4gdG8gdGhlc2UgZXZlbnRzIGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIGVycm9yIGFuZCBsb2FkIGV2ZW50cy5cbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2Vycm9yJywgZG9tRWxlbWVudCk7XG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdsb2FkJywgZG9tRWxlbWVudCk7XG4gICAgICBwcm9wcyA9IHJhd1Byb3BzO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdkZXRhaWxzJzpcbiAgICAgIC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSB0b2dnbGUgZXZlbnQuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCd0b2dnbGUnLCBkb21FbGVtZW50KTtcbiAgICAgIHByb3BzID0gcmF3UHJvcHM7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgIGluaXRXcmFwcGVyU3RhdGUoZG9tRWxlbWVudCwgcmF3UHJvcHMpO1xuICAgICAgcHJvcHMgPSBnZXRIb3N0UHJvcHMoZG9tRWxlbWVudCwgcmF3UHJvcHMpOyAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgaW52YWxpZCBldmVudC5cblxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnaW52YWxpZCcsIGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdvcHRpb24nOlxuICAgICAgdmFsaWRhdGVQcm9wcyhkb21FbGVtZW50LCByYXdQcm9wcyk7XG4gICAgICBwcm9wcyA9IHJhd1Byb3BzO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgaW5pdFdyYXBwZXJTdGF0ZSQxKGRvbUVsZW1lbnQsIHJhd1Byb3BzKTtcbiAgICAgIHByb3BzID0gZ2V0SG9zdFByb3BzJDEoZG9tRWxlbWVudCwgcmF3UHJvcHMpOyAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgaW52YWxpZCBldmVudC5cblxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnaW52YWxpZCcsIGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICBpbml0V3JhcHBlclN0YXRlJDIoZG9tRWxlbWVudCwgcmF3UHJvcHMpO1xuICAgICAgcHJvcHMgPSBnZXRIb3N0UHJvcHMkMihkb21FbGVtZW50LCByYXdQcm9wcyk7IC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBpbnZhbGlkIGV2ZW50LlxuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdpbnZhbGlkJywgZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICBwcm9wcyA9IHJhd1Byb3BzO1xuICB9XG5cbiAgYXNzZXJ0VmFsaWRQcm9wcyh0YWcsIHByb3BzKTtcbiAgc2V0SW5pdGlhbERPTVByb3BlcnRpZXModGFnLCBkb21FbGVtZW50LCByb290Q29udGFpbmVyRWxlbWVudCwgcHJvcHMsIGlzQ3VzdG9tQ29tcG9uZW50VGFnKTtcblxuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgIC8vIFRPRE86IE1ha2Ugc3VyZSB3ZSBjaGVjayBpZiB0aGlzIGlzIHN0aWxsIHVubW91bnRlZCBvciBkbyBhbnkgY2xlYW5cbiAgICAgIC8vIHVwIG5lY2Vzc2FyeSBzaW5jZSB3ZSBuZXZlciBzdG9wIHRyYWNraW5nIGFueW1vcmUuXG4gICAgICB0cmFjayhkb21FbGVtZW50KTtcbiAgICAgIHBvc3RNb3VudFdyYXBwZXIoZG9tRWxlbWVudCwgcmF3UHJvcHMsIGZhbHNlKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgLy8gVE9ETzogTWFrZSBzdXJlIHdlIGNoZWNrIGlmIHRoaXMgaXMgc3RpbGwgdW5tb3VudGVkIG9yIGRvIGFueSBjbGVhblxuICAgICAgLy8gdXAgbmVjZXNzYXJ5IHNpbmNlIHdlIG5ldmVyIHN0b3AgdHJhY2tpbmcgYW55bW9yZS5cbiAgICAgIHRyYWNrKGRvbUVsZW1lbnQpO1xuICAgICAgcG9zdE1vdW50V3JhcHBlciQzKGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdvcHRpb24nOlxuICAgICAgcG9zdE1vdW50V3JhcHBlciQxKGRvbUVsZW1lbnQsIHJhd1Byb3BzKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgIHBvc3RNb3VudFdyYXBwZXIkMihkb21FbGVtZW50LCByYXdQcm9wcyk7XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICBpZiAodHlwZW9mIHByb3BzLm9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBjYXN0IG1heSBub3QgYmUgc291bmQgZm9yIFNWRywgTWF0aE1MIG9yIGN1c3RvbSBlbGVtZW50cy5cbiAgICAgICAgdHJhcENsaWNrT25Ob25JbnRlcmFjdGl2ZUVsZW1lbnQoZG9tRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICB9XG59IC8vIENhbGN1bGF0ZSB0aGUgZGlmZiBiZXR3ZWVuIHRoZSB0d28gb2JqZWN0cy5cblxuZnVuY3Rpb24gZGlmZlByb3BlcnRpZXMoZG9tRWxlbWVudCwgdGFnLCBsYXN0UmF3UHJvcHMsIG5leHRSYXdQcm9wcywgcm9vdENvbnRhaW5lckVsZW1lbnQpIHtcbiAge1xuICAgIHZhbGlkYXRlUHJvcGVydGllc0luRGV2ZWxvcG1lbnQodGFnLCBuZXh0UmF3UHJvcHMpO1xuICB9XG5cbiAgdmFyIHVwZGF0ZVBheWxvYWQgPSBudWxsO1xuICB2YXIgbGFzdFByb3BzO1xuICB2YXIgbmV4dFByb3BzO1xuXG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSAnaW5wdXQnOlxuICAgICAgbGFzdFByb3BzID0gZ2V0SG9zdFByb3BzKGRvbUVsZW1lbnQsIGxhc3RSYXdQcm9wcyk7XG4gICAgICBuZXh0UHJvcHMgPSBnZXRIb3N0UHJvcHMoZG9tRWxlbWVudCwgbmV4dFJhd1Byb3BzKTtcbiAgICAgIHVwZGF0ZVBheWxvYWQgPSBbXTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgIGxhc3RQcm9wcyA9IGdldEhvc3RQcm9wcyQxKGRvbUVsZW1lbnQsIGxhc3RSYXdQcm9wcyk7XG4gICAgICBuZXh0UHJvcHMgPSBnZXRIb3N0UHJvcHMkMShkb21FbGVtZW50LCBuZXh0UmF3UHJvcHMpO1xuICAgICAgdXBkYXRlUGF5bG9hZCA9IFtdO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICBsYXN0UHJvcHMgPSBnZXRIb3N0UHJvcHMkMihkb21FbGVtZW50LCBsYXN0UmF3UHJvcHMpO1xuICAgICAgbmV4dFByb3BzID0gZ2V0SG9zdFByb3BzJDIoZG9tRWxlbWVudCwgbmV4dFJhd1Byb3BzKTtcbiAgICAgIHVwZGF0ZVBheWxvYWQgPSBbXTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGxhc3RQcm9wcyA9IGxhc3RSYXdQcm9wcztcbiAgICAgIG5leHRQcm9wcyA9IG5leHRSYXdQcm9wcztcblxuICAgICAgaWYgKHR5cGVvZiBsYXN0UHJvcHMub25DbGljayAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgbmV4dFByb3BzLm9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBjYXN0IG1heSBub3QgYmUgc291bmQgZm9yIFNWRywgTWF0aE1MIG9yIGN1c3RvbSBlbGVtZW50cy5cbiAgICAgICAgdHJhcENsaWNrT25Ob25JbnRlcmFjdGl2ZUVsZW1lbnQoZG9tRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgYXNzZXJ0VmFsaWRQcm9wcyh0YWcsIG5leHRQcm9wcyk7XG4gIHZhciBwcm9wS2V5O1xuICB2YXIgc3R5bGVOYW1lO1xuICB2YXIgc3R5bGVVcGRhdGVzID0gbnVsbDtcblxuICBmb3IgKHByb3BLZXkgaW4gbGFzdFByb3BzKSB7XG4gICAgaWYgKG5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSB8fCAhbGFzdFByb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpIHx8IGxhc3RQcm9wc1twcm9wS2V5XSA9PSBudWxsKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAocHJvcEtleSA9PT0gU1RZTEUpIHtcbiAgICAgIHZhciBsYXN0U3R5bGUgPSBsYXN0UHJvcHNbcHJvcEtleV07XG5cbiAgICAgIGZvciAoc3R5bGVOYW1lIGluIGxhc3RTdHlsZSkge1xuICAgICAgICBpZiAobGFzdFN0eWxlLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkpIHtcbiAgICAgICAgICBpZiAoIXN0eWxlVXBkYXRlcykge1xuICAgICAgICAgICAgc3R5bGVVcGRhdGVzID0ge307XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3R5bGVVcGRhdGVzW3N0eWxlTmFtZV0gPSAnJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvcEtleSA9PT0gREFOR0VST1VTTFlfU0VUX0lOTkVSX0hUTUwgfHwgcHJvcEtleSA9PT0gQ0hJTERSRU4pIDsgZWxzZSBpZiAocHJvcEtleSA9PT0gU1VQUFJFU1NfQ09OVEVOVF9FRElUQUJMRV9XQVJOSU5HIHx8IHByb3BLZXkgPT09IFNVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HKSA7IGVsc2UgaWYgKHByb3BLZXkgPT09IEFVVE9GT0NVUykgOyBlbHNlIGlmIChyZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICAvLyBUaGlzIGlzIGEgc3BlY2lhbCBjYXNlLiBJZiBhbnkgbGlzdGVuZXIgdXBkYXRlcyB3ZSBuZWVkIHRvIGVuc3VyZVxuICAgICAgLy8gdGhhdCB0aGUgXCJjdXJyZW50XCIgZmliZXIgcG9pbnRlciBnZXRzIHVwZGF0ZWQgc28gd2UgbmVlZCBhIGNvbW1pdFxuICAgICAgLy8gdG8gdXBkYXRlIHRoaXMgZWxlbWVudC5cbiAgICAgIGlmICghdXBkYXRlUGF5bG9hZCkge1xuICAgICAgICB1cGRhdGVQYXlsb2FkID0gW107XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZvciBhbGwgb3RoZXIgZGVsZXRlZCBwcm9wZXJ0aWVzIHdlIGFkZCBpdCB0byB0aGUgcXVldWUuIFdlIHVzZVxuICAgICAgLy8gdGhlIGFsbG93ZWQgcHJvcGVydHkgbGlzdCBpbiB0aGUgY29tbWl0IHBoYXNlIGluc3RlYWQuXG4gICAgICAodXBkYXRlUGF5bG9hZCA9IHVwZGF0ZVBheWxvYWQgfHwgW10pLnB1c2gocHJvcEtleSwgbnVsbCk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChwcm9wS2V5IGluIG5leHRQcm9wcykge1xuICAgIHZhciBuZXh0UHJvcCA9IG5leHRQcm9wc1twcm9wS2V5XTtcbiAgICB2YXIgbGFzdFByb3AgPSBsYXN0UHJvcHMgIT0gbnVsbCA/IGxhc3RQcm9wc1twcm9wS2V5XSA6IHVuZGVmaW5lZDtcblxuICAgIGlmICghbmV4dFByb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpIHx8IG5leHRQcm9wID09PSBsYXN0UHJvcCB8fCBuZXh0UHJvcCA9PSBudWxsICYmIGxhc3RQcm9wID09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChwcm9wS2V5ID09PSBTVFlMRSkge1xuICAgICAge1xuICAgICAgICBpZiAobmV4dFByb3ApIHtcbiAgICAgICAgICAvLyBGcmVlemUgdGhlIG5leHQgc3R5bGUgb2JqZWN0IHNvIHRoYXQgd2UgY2FuIGFzc3VtZSBpdCB3b24ndCBiZVxuICAgICAgICAgIC8vIG11dGF0ZWQuIFdlIGhhdmUgYWxyZWFkeSB3YXJuZWQgZm9yIHRoaXMgaW4gdGhlIHBhc3QuXG4gICAgICAgICAgT2JqZWN0LmZyZWV6ZShuZXh0UHJvcCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGxhc3RQcm9wKSB7XG4gICAgICAgIC8vIFVuc2V0IHN0eWxlcyBvbiBgbGFzdFByb3BgIGJ1dCBub3Qgb24gYG5leHRQcm9wYC5cbiAgICAgICAgZm9yIChzdHlsZU5hbWUgaW4gbGFzdFByb3ApIHtcbiAgICAgICAgICBpZiAobGFzdFByb3AuaGFzT3duUHJvcGVydHkoc3R5bGVOYW1lKSAmJiAoIW5leHRQcm9wIHx8ICFuZXh0UHJvcC5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpKSkge1xuICAgICAgICAgICAgaWYgKCFzdHlsZVVwZGF0ZXMpIHtcbiAgICAgICAgICAgICAgc3R5bGVVcGRhdGVzID0ge307XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0eWxlVXBkYXRlc1tzdHlsZU5hbWVdID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICB9IC8vIFVwZGF0ZSBzdHlsZXMgdGhhdCBjaGFuZ2VkIHNpbmNlIGBsYXN0UHJvcGAuXG5cblxuICAgICAgICBmb3IgKHN0eWxlTmFtZSBpbiBuZXh0UHJvcCkge1xuICAgICAgICAgIGlmIChuZXh0UHJvcC5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpICYmIGxhc3RQcm9wW3N0eWxlTmFtZV0gIT09IG5leHRQcm9wW3N0eWxlTmFtZV0pIHtcbiAgICAgICAgICAgIGlmICghc3R5bGVVcGRhdGVzKSB7XG4gICAgICAgICAgICAgIHN0eWxlVXBkYXRlcyA9IHt9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdHlsZVVwZGF0ZXNbc3R5bGVOYW1lXSA9IG5leHRQcm9wW3N0eWxlTmFtZV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBSZWxpZXMgb24gYHVwZGF0ZVN0eWxlc0J5SURgIG5vdCBtdXRhdGluZyBgc3R5bGVVcGRhdGVzYC5cbiAgICAgICAgaWYgKCFzdHlsZVVwZGF0ZXMpIHtcbiAgICAgICAgICBpZiAoIXVwZGF0ZVBheWxvYWQpIHtcbiAgICAgICAgICAgIHVwZGF0ZVBheWxvYWQgPSBbXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB1cGRhdGVQYXlsb2FkLnB1c2gocHJvcEtleSwgc3R5bGVVcGRhdGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0eWxlVXBkYXRlcyA9IG5leHRQcm9wO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvcEtleSA9PT0gREFOR0VST1VTTFlfU0VUX0lOTkVSX0hUTUwpIHtcbiAgICAgIHZhciBuZXh0SHRtbCA9IG5leHRQcm9wID8gbmV4dFByb3BbSFRNTCQxXSA6IHVuZGVmaW5lZDtcbiAgICAgIHZhciBsYXN0SHRtbCA9IGxhc3RQcm9wID8gbGFzdFByb3BbSFRNTCQxXSA6IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKG5leHRIdG1sICE9IG51bGwpIHtcbiAgICAgICAgaWYgKGxhc3RIdG1sICE9PSBuZXh0SHRtbCkge1xuICAgICAgICAgICh1cGRhdGVQYXlsb2FkID0gdXBkYXRlUGF5bG9hZCB8fCBbXSkucHVzaChwcm9wS2V5LCBuZXh0SHRtbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BLZXkgPT09IENISUxEUkVOKSB7XG4gICAgICBpZiAodHlwZW9mIG5leHRQcm9wID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgbmV4dFByb3AgPT09ICdudW1iZXInKSB7XG4gICAgICAgICh1cGRhdGVQYXlsb2FkID0gdXBkYXRlUGF5bG9hZCB8fCBbXSkucHVzaChwcm9wS2V5LCAnJyArIG5leHRQcm9wKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BLZXkgPT09IFNVUFBSRVNTX0NPTlRFTlRfRURJVEFCTEVfV0FSTklORyB8fCBwcm9wS2V5ID09PSBTVVBQUkVTU19IWURSQVRJT05fV0FSTklORykgOyBlbHNlIGlmIChyZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICBpZiAobmV4dFByb3AgIT0gbnVsbCkge1xuICAgICAgICAvLyBXZSBlYWdlcmx5IGxpc3RlbiB0byB0aGlzIGV2ZW4gdGhvdWdoIHdlIGhhdmVuJ3QgY29tbWl0dGVkIHlldC5cbiAgICAgICAgaWYgKCB0eXBlb2YgbmV4dFByb3AgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXIocHJvcEtleSwgbmV4dFByb3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb3BLZXkgPT09ICdvblNjcm9sbCcpIHtcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdzY3JvbGwnLCBkb21FbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXVwZGF0ZVBheWxvYWQgJiYgbGFzdFByb3AgIT09IG5leHRQcm9wKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYSBzcGVjaWFsIGNhc2UuIElmIGFueSBsaXN0ZW5lciB1cGRhdGVzIHdlIG5lZWQgdG8gZW5zdXJlXG4gICAgICAgIC8vIHRoYXQgdGhlIFwiY3VycmVudFwiIHByb3BzIHBvaW50ZXIgZ2V0cyB1cGRhdGVkIHNvIHdlIG5lZWQgYSBjb21taXRcbiAgICAgICAgLy8gdG8gdXBkYXRlIHRoaXMgZWxlbWVudC5cbiAgICAgICAgdXBkYXRlUGF5bG9hZCA9IFtdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGb3IgYW55IG90aGVyIHByb3BlcnR5IHdlIGFsd2F5cyBhZGQgaXQgdG8gdGhlIHF1ZXVlIGFuZCB0aGVuIHdlXG4gICAgICAvLyBmaWx0ZXIgaXQgb3V0IHVzaW5nIHRoZSBhbGxvd2VkIHByb3BlcnR5IGxpc3QgZHVyaW5nIHRoZSBjb21taXQuXG4gICAgICAodXBkYXRlUGF5bG9hZCA9IHVwZGF0ZVBheWxvYWQgfHwgW10pLnB1c2gocHJvcEtleSwgbmV4dFByb3ApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChzdHlsZVVwZGF0ZXMpIHtcbiAgICB7XG4gICAgICB2YWxpZGF0ZVNob3J0aGFuZFByb3BlcnR5Q29sbGlzaW9uSW5EZXYoc3R5bGVVcGRhdGVzLCBuZXh0UHJvcHNbU1RZTEVdKTtcbiAgICB9XG5cbiAgICAodXBkYXRlUGF5bG9hZCA9IHVwZGF0ZVBheWxvYWQgfHwgW10pLnB1c2goU1RZTEUsIHN0eWxlVXBkYXRlcyk7XG4gIH1cblxuICByZXR1cm4gdXBkYXRlUGF5bG9hZDtcbn0gLy8gQXBwbHkgdGhlIGRpZmYuXG5cbmZ1bmN0aW9uIHVwZGF0ZVByb3BlcnRpZXMoZG9tRWxlbWVudCwgdXBkYXRlUGF5bG9hZCwgdGFnLCBsYXN0UmF3UHJvcHMsIG5leHRSYXdQcm9wcykge1xuICAvLyBVcGRhdGUgY2hlY2tlZCAqYmVmb3JlKiBuYW1lLlxuICAvLyBJbiB0aGUgbWlkZGxlIG9mIGFuIHVwZGF0ZSwgaXQgaXMgcG9zc2libGUgdG8gaGF2ZSBtdWx0aXBsZSBjaGVja2VkLlxuICAvLyBXaGVuIGEgY2hlY2tlZCByYWRpbyB0cmllcyB0byBjaGFuZ2UgbmFtZSwgYnJvd3NlciBtYWtlcyBhbm90aGVyIHJhZGlvJ3MgY2hlY2tlZCBmYWxzZS5cbiAgaWYgKHRhZyA9PT0gJ2lucHV0JyAmJiBuZXh0UmF3UHJvcHMudHlwZSA9PT0gJ3JhZGlvJyAmJiBuZXh0UmF3UHJvcHMubmFtZSAhPSBudWxsKSB7XG4gICAgdXBkYXRlQ2hlY2tlZChkb21FbGVtZW50LCBuZXh0UmF3UHJvcHMpO1xuICB9XG5cbiAgdmFyIHdhc0N1c3RvbUNvbXBvbmVudFRhZyA9IGlzQ3VzdG9tQ29tcG9uZW50KHRhZywgbGFzdFJhd1Byb3BzKTtcbiAgdmFyIGlzQ3VzdG9tQ29tcG9uZW50VGFnID0gaXNDdXN0b21Db21wb25lbnQodGFnLCBuZXh0UmF3UHJvcHMpOyAvLyBBcHBseSB0aGUgZGlmZi5cblxuICB1cGRhdGVET01Qcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHVwZGF0ZVBheWxvYWQsIHdhc0N1c3RvbUNvbXBvbmVudFRhZywgaXNDdXN0b21Db21wb25lbnRUYWcpOyAvLyBUT0RPOiBFbnN1cmUgdGhhdCBhbiB1cGRhdGUgZ2V0cyBzY2hlZHVsZWQgaWYgYW55IG9mIHRoZSBzcGVjaWFsIHByb3BzXG4gIC8vIGNoYW5nZWQuXG5cbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlICdpbnB1dCc6XG4gICAgICAvLyBVcGRhdGUgdGhlIHdyYXBwZXIgYXJvdW5kIGlucHV0cyAqYWZ0ZXIqIHVwZGF0aW5nIHByb3BzLiBUaGlzIGhhcyB0b1xuICAgICAgLy8gaGFwcGVuIGFmdGVyIGB1cGRhdGVET01Qcm9wZXJ0aWVzYC4gT3RoZXJ3aXNlIEhUTUw1IGlucHV0IHZhbGlkYXRpb25zXG4gICAgICAvLyByYWlzZSB3YXJuaW5ncyBhbmQgcHJldmVudCB0aGUgbmV3IHZhbHVlIGZyb20gYmVpbmcgYXNzaWduZWQuXG4gICAgICB1cGRhdGVXcmFwcGVyKGRvbUVsZW1lbnQsIG5leHRSYXdQcm9wcyk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgIHVwZGF0ZVdyYXBwZXIkMShkb21FbGVtZW50LCBuZXh0UmF3UHJvcHMpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgLy8gPHNlbGVjdD4gdmFsdWUgdXBkYXRlIG5lZWRzIHRvIG9jY3VyIGFmdGVyIDxvcHRpb24+IGNoaWxkcmVuXG4gICAgICAvLyByZWNvbmNpbGlhdGlvblxuICAgICAgcG9zdFVwZGF0ZVdyYXBwZXIoZG9tRWxlbWVudCwgbmV4dFJhd1Byb3BzKTtcbiAgICAgIGJyZWFrO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlU3RhbmRhcmROYW1lKHByb3BOYW1lKSB7XG4gIHtcbiAgICB2YXIgbG93ZXJDYXNlZE5hbWUgPSBwcm9wTmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKCFwb3NzaWJsZVN0YW5kYXJkTmFtZXMuaGFzT3duUHJvcGVydHkobG93ZXJDYXNlZE5hbWUpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gcG9zc2libGVTdGFuZGFyZE5hbWVzW2xvd2VyQ2FzZWROYW1lXSB8fCBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRpZmZIeWRyYXRlZFByb3BlcnRpZXMoZG9tRWxlbWVudCwgdGFnLCByYXdQcm9wcywgcGFyZW50TmFtZXNwYWNlLCByb290Q29udGFpbmVyRWxlbWVudCwgaXNDb25jdXJyZW50TW9kZSwgc2hvdWxkV2FybkRldikge1xuICB2YXIgaXNDdXN0b21Db21wb25lbnRUYWc7XG4gIHZhciBleHRyYUF0dHJpYnV0ZU5hbWVzO1xuXG4gIHtcbiAgICBzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcgPSByYXdQcm9wc1tTVVBQUkVTU19IWURSQVRJT05fV0FSTklOR10gPT09IHRydWU7XG4gICAgaXNDdXN0b21Db21wb25lbnRUYWcgPSBpc0N1c3RvbUNvbXBvbmVudCh0YWcsIHJhd1Byb3BzKTtcbiAgICB2YWxpZGF0ZVByb3BlcnRpZXNJbkRldmVsb3BtZW50KHRhZywgcmF3UHJvcHMpO1xuICB9IC8vIFRPRE86IE1ha2Ugc3VyZSB0aGF0IHdlIGNoZWNrIGlzTW91bnRlZCBiZWZvcmUgZmlyaW5nIGFueSBvZiB0aGVzZSBldmVudHMuXG5cblxuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgJ2RpYWxvZyc6XG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdjYW5jZWwnLCBkb21FbGVtZW50KTtcbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2Nsb3NlJywgZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2lmcmFtZSc6XG4gICAgY2FzZSAnb2JqZWN0JzpcbiAgICBjYXNlICdlbWJlZCc6XG4gICAgICAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgbG9hZCBldmVudC5cbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2xvYWQnLCBkb21FbGVtZW50KTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAndmlkZW8nOlxuICAgIGNhc2UgJ2F1ZGlvJzpcbiAgICAgIC8vIFdlIGxpc3RlbiB0byB0aGVzZSBldmVudHMgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgYWxsIHRoZSBtZWRpYSBldmVudHMuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lZGlhRXZlbnRUeXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KG1lZGlhRXZlbnRUeXBlc1tpXSwgZG9tRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnc291cmNlJzpcbiAgICAgIC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBlcnJvciBldmVudC5cbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2Vycm9yJywgZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2ltZyc6XG4gICAgY2FzZSAnaW1hZ2UnOlxuICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgLy8gV2UgbGlzdGVuIHRvIHRoZXNlIGV2ZW50cyBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciBlcnJvciBhbmQgbG9hZCBldmVudHMuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdlcnJvcicsIGRvbUVsZW1lbnQpO1xuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnbG9hZCcsIGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdkZXRhaWxzJzpcbiAgICAgIC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSB0b2dnbGUgZXZlbnQuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCd0b2dnbGUnLCBkb21FbGVtZW50KTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnaW5wdXQnOlxuICAgICAgaW5pdFdyYXBwZXJTdGF0ZShkb21FbGVtZW50LCByYXdQcm9wcyk7IC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBpbnZhbGlkIGV2ZW50LlxuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdpbnZhbGlkJywgZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ29wdGlvbic6XG4gICAgICB2YWxpZGF0ZVByb3BzKGRvbUVsZW1lbnQsIHJhd1Byb3BzKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgIGluaXRXcmFwcGVyU3RhdGUkMShkb21FbGVtZW50LCByYXdQcm9wcyk7IC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBpbnZhbGlkIGV2ZW50LlxuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdpbnZhbGlkJywgZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgIGluaXRXcmFwcGVyU3RhdGUkMihkb21FbGVtZW50LCByYXdQcm9wcyk7IC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBpbnZhbGlkIGV2ZW50LlxuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdpbnZhbGlkJywgZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIGFzc2VydFZhbGlkUHJvcHModGFnLCByYXdQcm9wcyk7XG5cbiAge1xuICAgIGV4dHJhQXR0cmlidXRlTmFtZXMgPSBuZXcgU2V0KCk7XG4gICAgdmFyIGF0dHJpYnV0ZXMgPSBkb21FbGVtZW50LmF0dHJpYnV0ZXM7XG5cbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXR0cmlidXRlcy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBuYW1lID0gYXR0cmlidXRlc1tfaV0ubmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgICAgLy8gQ29udHJvbGxlZCBhdHRyaWJ1dGVzIGFyZSBub3QgdmFsaWRhdGVkXG4gICAgICAgIC8vIFRPRE86IE9ubHkgaWdub3JlIHRoZW0gb24gY29udHJvbGxlZCB0YWdzLlxuICAgICAgICBjYXNlICd2YWx1ZSc6XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnY2hlY2tlZCc6XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnc2VsZWN0ZWQnOlxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgLy8gSW50ZW50aW9uYWxseSB1c2UgdGhlIG9yaWdpbmFsIG5hbWUuXG4gICAgICAgICAgLy8gU2VlIGRpc2N1c3Npb24gaW4gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMTA2NzYuXG4gICAgICAgICAgZXh0cmFBdHRyaWJ1dGVOYW1lcy5hZGQoYXR0cmlidXRlc1tfaV0ubmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIHVwZGF0ZVBheWxvYWQgPSBudWxsO1xuXG4gIGZvciAodmFyIHByb3BLZXkgaW4gcmF3UHJvcHMpIHtcbiAgICBpZiAoIXJhd1Byb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB2YXIgbmV4dFByb3AgPSByYXdQcm9wc1twcm9wS2V5XTtcblxuICAgIGlmIChwcm9wS2V5ID09PSBDSElMRFJFTikge1xuICAgICAgLy8gRm9yIHRleHQgY29udGVudCBjaGlsZHJlbiB3ZSBjb21wYXJlIGFnYWluc3QgdGV4dENvbnRlbnQuIFRoaXNcbiAgICAgIC8vIG1pZ2h0IG1hdGNoIGFkZGl0aW9uYWwgSFRNTCB0aGF0IGlzIGhpZGRlbiB3aGVuIHdlIHJlYWQgaXQgdXNpbmdcbiAgICAgIC8vIHRleHRDb250ZW50LiBFLmcuIFwiZm9vXCIgd2lsbCBtYXRjaCBcImY8c3Bhbj5vbzwvc3Bhbj5cIiBidXQgdGhhdCBzdGlsbFxuICAgICAgLy8gc2F0aXNmaWVzIG91ciByZXF1aXJlbWVudC4gT3VyIHJlcXVpcmVtZW50IGlzIG5vdCB0byBwcm9kdWNlIHBlcmZlY3RcbiAgICAgIC8vIEhUTUwgYW5kIGF0dHJpYnV0ZXMuIElkZWFsbHkgd2Ugc2hvdWxkIHByZXNlcnZlIHN0cnVjdHVyZSBidXQgaXQnc1xuICAgICAgLy8gb2sgbm90IHRvIGlmIHRoZSB2aXNpYmxlIGNvbnRlbnQgaXMgc3RpbGwgZW5vdWdoIHRvIGluZGljYXRlIHdoYXRcbiAgICAgIC8vIGV2ZW4gbGlzdGVuZXJzIHRoZXNlIG5vZGVzIG1pZ2h0IGJlIHdpcmVkIHVwIHRvLlxuICAgICAgLy8gVE9ETzogV2FybiBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gYSBzaW5nbGUgdGV4dE5vZGUgYXMgYSBjaGlsZC5cbiAgICAgIC8vIFRPRE86IFNob3VsZCB3ZSB1c2UgZG9tRWxlbWVudC5maXJzdENoaWxkLm5vZGVWYWx1ZSB0byBjb21wYXJlP1xuICAgICAgaWYgKHR5cGVvZiBuZXh0UHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKGRvbUVsZW1lbnQudGV4dENvbnRlbnQgIT09IG5leHRQcm9wKSB7XG4gICAgICAgICAgaWYgKCFzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcpIHtcbiAgICAgICAgICAgIGNoZWNrRm9yVW5tYXRjaGVkVGV4dChkb21FbGVtZW50LnRleHRDb250ZW50LCBuZXh0UHJvcCwgaXNDb25jdXJyZW50TW9kZSwgc2hvdWxkV2FybkRldik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdXBkYXRlUGF5bG9hZCA9IFtDSElMRFJFTiwgbmV4dFByb3BdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBuZXh0UHJvcCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgaWYgKGRvbUVsZW1lbnQudGV4dENvbnRlbnQgIT09ICcnICsgbmV4dFByb3ApIHtcbiAgICAgICAgICBpZiAoIXN1cHByZXNzSHlkcmF0aW9uV2FybmluZykge1xuICAgICAgICAgICAgY2hlY2tGb3JVbm1hdGNoZWRUZXh0KGRvbUVsZW1lbnQudGV4dENvbnRlbnQsIG5leHRQcm9wLCBpc0NvbmN1cnJlbnRNb2RlLCBzaG91bGRXYXJuRGV2KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB1cGRhdGVQYXlsb2FkID0gW0NISUxEUkVOLCAnJyArIG5leHRQcm9wXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSkge1xuICAgICAgaWYgKG5leHRQcm9wICE9IG51bGwpIHtcbiAgICAgICAgaWYgKCB0eXBlb2YgbmV4dFByb3AgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXIocHJvcEtleSwgbmV4dFByb3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb3BLZXkgPT09ICdvblNjcm9sbCcpIHtcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdzY3JvbGwnLCBkb21FbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc2hvdWxkV2FybkRldiAmJiB0cnVlICYmIC8vIENvbnZpbmNlIEZsb3cgd2UndmUgY2FsY3VsYXRlZCBpdCAoaXQncyBERVYtb25seSBpbiB0aGlzIG1ldGhvZC4pXG4gICAgdHlwZW9mIGlzQ3VzdG9tQ29tcG9uZW50VGFnID09PSAnYm9vbGVhbicpIHtcbiAgICAgIC8vIFZhbGlkYXRlIHRoYXQgdGhlIHByb3BlcnRpZXMgY29ycmVzcG9uZCB0byB0aGVpciBleHBlY3RlZCB2YWx1ZXMuXG4gICAgICB2YXIgc2VydmVyVmFsdWUgPSB2b2lkIDA7XG4gICAgICB2YXIgcHJvcGVydHlJbmZvID0gaXNDdXN0b21Db21wb25lbnRUYWcgJiYgZW5hYmxlQ3VzdG9tRWxlbWVudFByb3BlcnR5U3VwcG9ydCA/IG51bGwgOiBnZXRQcm9wZXJ0eUluZm8ocHJvcEtleSk7XG5cbiAgICAgIGlmIChzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcpIDsgZWxzZSBpZiAocHJvcEtleSA9PT0gU1VQUFJFU1NfQ09OVEVOVF9FRElUQUJMRV9XQVJOSU5HIHx8IHByb3BLZXkgPT09IFNVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HIHx8IC8vIENvbnRyb2xsZWQgYXR0cmlidXRlcyBhcmUgbm90IHZhbGlkYXRlZFxuICAgICAgLy8gVE9ETzogT25seSBpZ25vcmUgdGhlbSBvbiBjb250cm9sbGVkIHRhZ3MuXG4gICAgICBwcm9wS2V5ID09PSAndmFsdWUnIHx8IHByb3BLZXkgPT09ICdjaGVja2VkJyB8fCBwcm9wS2V5ID09PSAnc2VsZWN0ZWQnKSA7IGVsc2UgaWYgKHByb3BLZXkgPT09IERBTkdFUk9VU0xZX1NFVF9JTk5FUl9IVE1MKSB7XG4gICAgICAgIHZhciBzZXJ2ZXJIVE1MID0gZG9tRWxlbWVudC5pbm5lckhUTUw7XG4gICAgICAgIHZhciBuZXh0SHRtbCA9IG5leHRQcm9wID8gbmV4dFByb3BbSFRNTCQxXSA6IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAobmV4dEh0bWwgIT0gbnVsbCkge1xuICAgICAgICAgIHZhciBleHBlY3RlZEhUTUwgPSBub3JtYWxpemVIVE1MKGRvbUVsZW1lbnQsIG5leHRIdG1sKTtcblxuICAgICAgICAgIGlmIChleHBlY3RlZEhUTUwgIT09IHNlcnZlckhUTUwpIHtcbiAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBzZXJ2ZXJIVE1MLCBleHBlY3RlZEhUTUwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBTVFlMRSkge1xuICAgICAgICAvLyAkRmxvd0ZpeE1lIC0gU2hvdWxkIGJlIGluZmVycmVkIGFzIG5vdCB1bmRlZmluZWQuXG4gICAgICAgIGV4dHJhQXR0cmlidXRlTmFtZXMuZGVsZXRlKHByb3BLZXkpO1xuXG4gICAgICAgIGlmIChjYW5EaWZmU3R5bGVGb3JIeWRyYXRpb25XYXJuaW5nKSB7XG4gICAgICAgICAgdmFyIGV4cGVjdGVkU3R5bGUgPSBjcmVhdGVEYW5nZXJvdXNTdHJpbmdGb3JTdHlsZXMobmV4dFByb3ApO1xuICAgICAgICAgIHNlcnZlclZhbHVlID0gZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3N0eWxlJyk7XG5cbiAgICAgICAgICBpZiAoZXhwZWN0ZWRTdHlsZSAhPT0gc2VydmVyVmFsdWUpIHtcbiAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBzZXJ2ZXJWYWx1ZSwgZXhwZWN0ZWRTdHlsZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzQ3VzdG9tQ29tcG9uZW50VGFnICYmICFlbmFibGVDdXN0b21FbGVtZW50UHJvcGVydHlTdXBwb3J0KSB7XG4gICAgICAgIC8vICRGbG93Rml4TWUgLSBTaG91bGQgYmUgaW5mZXJyZWQgYXMgbm90IHVuZGVmaW5lZC5cbiAgICAgICAgZXh0cmFBdHRyaWJ1dGVOYW1lcy5kZWxldGUocHJvcEtleS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgc2VydmVyVmFsdWUgPSBnZXRWYWx1ZUZvckF0dHJpYnV0ZShkb21FbGVtZW50LCBwcm9wS2V5LCBuZXh0UHJvcCk7XG5cbiAgICAgICAgaWYgKG5leHRQcm9wICE9PSBzZXJ2ZXJWYWx1ZSkge1xuICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBzZXJ2ZXJWYWx1ZSwgbmV4dFByb3ApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKCFzaG91bGRJZ25vcmVBdHRyaWJ1dGUocHJvcEtleSwgcHJvcGVydHlJbmZvLCBpc0N1c3RvbUNvbXBvbmVudFRhZykgJiYgIXNob3VsZFJlbW92ZUF0dHJpYnV0ZShwcm9wS2V5LCBuZXh0UHJvcCwgcHJvcGVydHlJbmZvLCBpc0N1c3RvbUNvbXBvbmVudFRhZykpIHtcbiAgICAgICAgdmFyIGlzTWlzbWF0Y2hEdWVUb0JhZENhc2luZyA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChwcm9wZXJ0eUluZm8gIT09IG51bGwpIHtcbiAgICAgICAgICAvLyAkRmxvd0ZpeE1lIC0gU2hvdWxkIGJlIGluZmVycmVkIGFzIG5vdCB1bmRlZmluZWQuXG4gICAgICAgICAgZXh0cmFBdHRyaWJ1dGVOYW1lcy5kZWxldGUocHJvcGVydHlJbmZvLmF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICAgIHNlcnZlclZhbHVlID0gZ2V0VmFsdWVGb3JQcm9wZXJ0eShkb21FbGVtZW50LCBwcm9wS2V5LCBuZXh0UHJvcCwgcHJvcGVydHlJbmZvKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgb3duTmFtZXNwYWNlID0gcGFyZW50TmFtZXNwYWNlO1xuXG4gICAgICAgICAgaWYgKG93bk5hbWVzcGFjZSA9PT0gSFRNTF9OQU1FU1BBQ0UpIHtcbiAgICAgICAgICAgIG93bk5hbWVzcGFjZSA9IGdldEludHJpbnNpY05hbWVzcGFjZSh0YWcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChvd25OYW1lc3BhY2UgPT09IEhUTUxfTkFNRVNQQUNFKSB7XG4gICAgICAgICAgICAvLyAkRmxvd0ZpeE1lIC0gU2hvdWxkIGJlIGluZmVycmVkIGFzIG5vdCB1bmRlZmluZWQuXG4gICAgICAgICAgICBleHRyYUF0dHJpYnV0ZU5hbWVzLmRlbGV0ZShwcm9wS2V5LnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgc3RhbmRhcmROYW1lID0gZ2V0UG9zc2libGVTdGFuZGFyZE5hbWUocHJvcEtleSk7XG5cbiAgICAgICAgICAgIGlmIChzdGFuZGFyZE5hbWUgIT09IG51bGwgJiYgc3RhbmRhcmROYW1lICE9PSBwcm9wS2V5KSB7XG4gICAgICAgICAgICAgIC8vIElmIGFuIFNWRyBwcm9wIGlzIHN1cHBsaWVkIHdpdGggYmFkIGNhc2luZywgaXQgd2lsbFxuICAgICAgICAgICAgICAvLyBiZSBzdWNjZXNzZnVsbHkgcGFyc2VkIGZyb20gSFRNTCwgYnV0IHdpbGwgcHJvZHVjZSBhIG1pc21hdGNoXG4gICAgICAgICAgICAgIC8vIChhbmQgd291bGQgYmUgaW5jb3JyZWN0bHkgcmVuZGVyZWQgb24gdGhlIGNsaWVudCkuXG4gICAgICAgICAgICAgIC8vIEhvd2V2ZXIsIHdlIGFscmVhZHkgd2FybiBhYm91dCBiYWQgY2FzaW5nIGVsc2V3aGVyZS5cbiAgICAgICAgICAgICAgLy8gU28gd2UnbGwgc2tpcCB0aGUgbWlzbGVhZGluZyBleHRyYSBtaXNtYXRjaCB3YXJuaW5nIGluIHRoaXMgY2FzZS5cbiAgICAgICAgICAgICAgaXNNaXNtYXRjaER1ZVRvQmFkQ2FzaW5nID0gdHJ1ZTsgLy8gJEZsb3dGaXhNZSAtIFNob3VsZCBiZSBpbmZlcnJlZCBhcyBub3QgdW5kZWZpbmVkLlxuXG4gICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlTmFtZXMuZGVsZXRlKHN0YW5kYXJkTmFtZSk7XG4gICAgICAgICAgICB9IC8vICRGbG93Rml4TWUgLSBTaG91bGQgYmUgaW5mZXJyZWQgYXMgbm90IHVuZGVmaW5lZC5cblxuXG4gICAgICAgICAgICBleHRyYUF0dHJpYnV0ZU5hbWVzLmRlbGV0ZShwcm9wS2V5KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzZXJ2ZXJWYWx1ZSA9IGdldFZhbHVlRm9yQXR0cmlidXRlKGRvbUVsZW1lbnQsIHByb3BLZXksIG5leHRQcm9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBkb250V2FybkN1c3RvbUVsZW1lbnQgPSBlbmFibGVDdXN0b21FbGVtZW50UHJvcGVydHlTdXBwb3J0ICA7XG5cbiAgICAgICAgaWYgKCFkb250V2FybkN1c3RvbUVsZW1lbnQgJiYgbmV4dFByb3AgIT09IHNlcnZlclZhbHVlICYmICFpc01pc21hdGNoRHVlVG9CYWRDYXNpbmcpIHtcbiAgICAgICAgICB3YXJuRm9yUHJvcERpZmZlcmVuY2UocHJvcEtleSwgc2VydmVyVmFsdWUsIG5leHRQcm9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHtcbiAgICBpZiAoc2hvdWxkV2FybkRldikge1xuICAgICAgLy8gJEZsb3dGaXhNZSAtIFNob3VsZCBiZSBpbmZlcnJlZCBhcyBub3QgdW5kZWZpbmVkLlxuICAgICAgaWYgKGV4dHJhQXR0cmlidXRlTmFtZXMuc2l6ZSA+IDAgJiYgIXN1cHByZXNzSHlkcmF0aW9uV2FybmluZykge1xuICAgICAgICAvLyAkRmxvd0ZpeE1lIC0gU2hvdWxkIGJlIGluZmVycmVkIGFzIG5vdCB1bmRlZmluZWQuXG4gICAgICAgIHdhcm5Gb3JFeHRyYUF0dHJpYnV0ZXMoZXh0cmFBdHRyaWJ1dGVOYW1lcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlICdpbnB1dCc6XG4gICAgICAvLyBUT0RPOiBNYWtlIHN1cmUgd2UgY2hlY2sgaWYgdGhpcyBpcyBzdGlsbCB1bm1vdW50ZWQgb3IgZG8gYW55IGNsZWFuXG4gICAgICAvLyB1cCBuZWNlc3Nhcnkgc2luY2Ugd2UgbmV2ZXIgc3RvcCB0cmFja2luZyBhbnltb3JlLlxuICAgICAgdHJhY2soZG9tRWxlbWVudCk7XG4gICAgICBwb3N0TW91bnRXcmFwcGVyKGRvbUVsZW1lbnQsIHJhd1Byb3BzLCB0cnVlKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgLy8gVE9ETzogTWFrZSBzdXJlIHdlIGNoZWNrIGlmIHRoaXMgaXMgc3RpbGwgdW5tb3VudGVkIG9yIGRvIGFueSBjbGVhblxuICAgICAgLy8gdXAgbmVjZXNzYXJ5IHNpbmNlIHdlIG5ldmVyIHN0b3AgdHJhY2tpbmcgYW55bW9yZS5cbiAgICAgIHRyYWNrKGRvbUVsZW1lbnQpO1xuICAgICAgcG9zdE1vdW50V3JhcHBlciQzKGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdzZWxlY3QnOlxuICAgIGNhc2UgJ29wdGlvbic6XG4gICAgICAvLyBGb3IgaW5wdXQgYW5kIHRleHRhcmVhIHdlIGN1cnJlbnQgYWx3YXlzIHNldCB0aGUgdmFsdWUgcHJvcGVydHkgYXRcbiAgICAgIC8vIHBvc3QgbW91bnQgdG8gZm9yY2UgaXQgdG8gZGl2ZXJnZSBmcm9tIGF0dHJpYnV0ZXMuIEhvd2V2ZXIsIGZvclxuICAgICAgLy8gb3B0aW9uIGFuZCBzZWxlY3Qgd2UgZG9uJ3QgcXVpdGUgZG8gdGhlIHNhbWUgdGhpbmcgYW5kIHNlbGVjdFxuICAgICAgLy8gaXMgbm90IHJlc2lsaWVudCB0byB0aGUgRE9NIHN0YXRlIGNoYW5naW5nIHNvIHdlIGRvbid0IGRvIHRoYXQgaGVyZS5cbiAgICAgIC8vIFRPRE86IENvbnNpZGVyIG5vdCBkb2luZyB0aGlzIGZvciBpbnB1dCBhbmQgdGV4dGFyZWEuXG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICBpZiAodHlwZW9mIHJhd1Byb3BzLm9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBjYXN0IG1heSBub3QgYmUgc291bmQgZm9yIFNWRywgTWF0aE1MIG9yIGN1c3RvbSBlbGVtZW50cy5cbiAgICAgICAgdHJhcENsaWNrT25Ob25JbnRlcmFjdGl2ZUVsZW1lbnQoZG9tRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIHVwZGF0ZVBheWxvYWQ7XG59XG5mdW5jdGlvbiBkaWZmSHlkcmF0ZWRUZXh0KHRleHROb2RlLCB0ZXh0LCBpc0NvbmN1cnJlbnRNb2RlKSB7XG4gIHZhciBpc0RpZmZlcmVudCA9IHRleHROb2RlLm5vZGVWYWx1ZSAhPT0gdGV4dDtcbiAgcmV0dXJuIGlzRGlmZmVyZW50O1xufVxuZnVuY3Rpb24gd2FybkZvckRlbGV0ZWRIeWRyYXRhYmxlRWxlbWVudChwYXJlbnROb2RlLCBjaGlsZCkge1xuICB7XG4gICAgaWYgKGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZGlkV2FybkludmFsaWRIeWRyYXRpb24gPSB0cnVlO1xuXG4gICAgZXJyb3IoJ0RpZCBub3QgZXhwZWN0IHNlcnZlciBIVE1MIHRvIGNvbnRhaW4gYSA8JXM+IGluIDwlcz4uJywgY2hpbGQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSwgcGFyZW50Tm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxufVxuZnVuY3Rpb24gd2FybkZvckRlbGV0ZWRIeWRyYXRhYmxlVGV4dChwYXJlbnROb2RlLCBjaGlsZCkge1xuICB7XG4gICAgaWYgKGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZGlkV2FybkludmFsaWRIeWRyYXRpb24gPSB0cnVlO1xuXG4gICAgZXJyb3IoJ0RpZCBub3QgZXhwZWN0IHNlcnZlciBIVE1MIHRvIGNvbnRhaW4gdGhlIHRleHQgbm9kZSBcIiVzXCIgaW4gPCVzPi4nLCBjaGlsZC5ub2RlVmFsdWUsIHBhcmVudE5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSk7XG4gIH1cbn1cbmZ1bmN0aW9uIHdhcm5Gb3JJbnNlcnRlZEh5ZHJhdGVkRWxlbWVudChwYXJlbnROb2RlLCB0YWcsIHByb3BzKSB7XG4gIHtcbiAgICBpZiAoZGlkV2FybkludmFsaWRIeWRyYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbiA9IHRydWU7XG5cbiAgICBlcnJvcignRXhwZWN0ZWQgc2VydmVyIEhUTUwgdG8gY29udGFpbiBhIG1hdGNoaW5nIDwlcz4gaW4gPCVzPi4nLCB0YWcsIHBhcmVudE5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSk7XG4gIH1cbn1cbmZ1bmN0aW9uIHdhcm5Gb3JJbnNlcnRlZEh5ZHJhdGVkVGV4dChwYXJlbnROb2RlLCB0ZXh0KSB7XG4gIHtcbiAgICBpZiAodGV4dCA9PT0gJycpIHtcbiAgICAgIC8vIFdlIGV4cGVjdCB0byBpbnNlcnQgZW1wdHkgdGV4dCBub2RlcyBzaW5jZSB0aGV5J3JlIG5vdCByZXByZXNlbnRlZCBpblxuICAgICAgLy8gdGhlIEhUTUwuXG4gICAgICAvLyBUT0RPOiBSZW1vdmUgdGhpcyBzcGVjaWFsIGNhc2UgaWYgd2UgY2FuIGp1c3QgYXZvaWQgaW5zZXJ0aW5nIGVtcHR5XG4gICAgICAvLyB0ZXh0IG5vZGVzLlxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uID0gdHJ1ZTtcblxuICAgIGVycm9yKCdFeHBlY3RlZCBzZXJ2ZXIgSFRNTCB0byBjb250YWluIGEgbWF0Y2hpbmcgdGV4dCBub2RlIGZvciBcIiVzXCIgaW4gPCVzPi4nLCB0ZXh0LCBwYXJlbnROb2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpO1xuICB9XG59XG5mdW5jdGlvbiByZXN0b3JlQ29udHJvbGxlZFN0YXRlJDMoZG9tRWxlbWVudCwgdGFnLCBwcm9wcykge1xuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgIHJlc3RvcmVDb250cm9sbGVkU3RhdGUoZG9tRWxlbWVudCwgcHJvcHMpO1xuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgcmVzdG9yZUNvbnRyb2xsZWRTdGF0ZSQyKGRvbUVsZW1lbnQsIHByb3BzKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICByZXN0b3JlQ29udHJvbGxlZFN0YXRlJDEoZG9tRWxlbWVudCwgcHJvcHMpO1xuICAgICAgcmV0dXJuO1xuICB9XG59XG5cbnZhciB2YWxpZGF0ZURPTU5lc3RpbmcgPSBmdW5jdGlvbiAoKSB7fTtcblxudmFyIHVwZGF0ZWRBbmNlc3RvckluZm8gPSBmdW5jdGlvbiAoKSB7fTtcblxue1xuICAvLyBUaGlzIHZhbGlkYXRpb24gY29kZSB3YXMgd3JpdHRlbiBiYXNlZCBvbiB0aGUgSFRNTDUgcGFyc2luZyBzcGVjOlxuICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNoYXMtYW4tZWxlbWVudC1pbi1zY29wZVxuICAvL1xuICAvLyBOb3RlOiB0aGlzIGRvZXMgbm90IGNhdGNoIGFsbCBpbnZhbGlkIG5lc3RpbmcsIG5vciBkb2VzIGl0IHRyeSB0byAoYXMgaXQnc1xuICAvLyBub3QgY2xlYXIgd2hhdCBwcmFjdGljYWwgYmVuZWZpdCBkb2luZyBzbyBwcm92aWRlcyk7IGluc3RlYWQsIHdlIHdhcm4gb25seVxuICAvLyBmb3IgY2FzZXMgd2hlcmUgdGhlIHBhcnNlciB3aWxsIGdpdmUgYSBwYXJzZSB0cmVlIGRpZmZlcmluZyBmcm9tIHdoYXQgUmVhY3RcbiAgLy8gaW50ZW5kZWQuIEZvciBleGFtcGxlLCA8Yj48ZGl2PjwvZGl2PjwvYj4gaXMgaW52YWxpZCBidXQgd2UgZG9uJ3Qgd2FyblxuICAvLyBiZWNhdXNlIGl0IHN0aWxsIHBhcnNlcyBjb3JyZWN0bHk7IHdlIGRvIHdhcm4gZm9yIG90aGVyIGNhc2VzIGxpa2UgbmVzdGVkXG4gIC8vIDxwPiB0YWdzIHdoZXJlIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlY29uZCBlbGVtZW50IGltcGxpY2l0bHkgY2xvc2VzIHRoZVxuICAvLyBmaXJzdCwgY2F1c2luZyBhIGNvbmZ1c2luZyBtZXNzLlxuICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNzcGVjaWFsXG4gIHZhciBzcGVjaWFsVGFncyA9IFsnYWRkcmVzcycsICdhcHBsZXQnLCAnYXJlYScsICdhcnRpY2xlJywgJ2FzaWRlJywgJ2Jhc2UnLCAnYmFzZWZvbnQnLCAnYmdzb3VuZCcsICdibG9ja3F1b3RlJywgJ2JvZHknLCAnYnInLCAnYnV0dG9uJywgJ2NhcHRpb24nLCAnY2VudGVyJywgJ2NvbCcsICdjb2xncm91cCcsICdkZCcsICdkZXRhaWxzJywgJ2RpcicsICdkaXYnLCAnZGwnLCAnZHQnLCAnZW1iZWQnLCAnZmllbGRzZXQnLCAnZmlnY2FwdGlvbicsICdmaWd1cmUnLCAnZm9vdGVyJywgJ2Zvcm0nLCAnZnJhbWUnLCAnZnJhbWVzZXQnLCAnaDEnLCAnaDInLCAnaDMnLCAnaDQnLCAnaDUnLCAnaDYnLCAnaGVhZCcsICdoZWFkZXInLCAnaGdyb3VwJywgJ2hyJywgJ2h0bWwnLCAnaWZyYW1lJywgJ2ltZycsICdpbnB1dCcsICdpc2luZGV4JywgJ2xpJywgJ2xpbmsnLCAnbGlzdGluZycsICdtYWluJywgJ21hcnF1ZWUnLCAnbWVudScsICdtZW51aXRlbScsICdtZXRhJywgJ25hdicsICdub2VtYmVkJywgJ25vZnJhbWVzJywgJ25vc2NyaXB0JywgJ29iamVjdCcsICdvbCcsICdwJywgJ3BhcmFtJywgJ3BsYWludGV4dCcsICdwcmUnLCAnc2NyaXB0JywgJ3NlY3Rpb24nLCAnc2VsZWN0JywgJ3NvdXJjZScsICdzdHlsZScsICdzdW1tYXJ5JywgJ3RhYmxlJywgJ3Rib2R5JywgJ3RkJywgJ3RlbXBsYXRlJywgJ3RleHRhcmVhJywgJ3Rmb290JywgJ3RoJywgJ3RoZWFkJywgJ3RpdGxlJywgJ3RyJywgJ3RyYWNrJywgJ3VsJywgJ3dicicsICd4bXAnXTsgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjaGFzLWFuLWVsZW1lbnQtaW4tc2NvcGVcblxuICB2YXIgaW5TY29wZVRhZ3MgPSBbJ2FwcGxldCcsICdjYXB0aW9uJywgJ2h0bWwnLCAndGFibGUnLCAndGQnLCAndGgnLCAnbWFycXVlZScsICdvYmplY3QnLCAndGVtcGxhdGUnLCAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNodG1sLWludGVncmF0aW9uLXBvaW50XG4gIC8vIFRPRE86IERpc3Rpbmd1aXNoIGJ5IG5hbWVzcGFjZSBoZXJlIC0tIGZvciA8dGl0bGU+LCBpbmNsdWRpbmcgaXQgaGVyZVxuICAvLyBlcnJzIG9uIHRoZSBzaWRlIG9mIGZld2VyIHdhcm5pbmdzXG4gICdmb3JlaWduT2JqZWN0JywgJ2Rlc2MnLCAndGl0bGUnXTsgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjaGFzLWFuLWVsZW1lbnQtaW4tYnV0dG9uLXNjb3BlXG5cbiAgdmFyIGJ1dHRvblNjb3BlVGFncyA9IGluU2NvcGVUYWdzLmNvbmNhdChbJ2J1dHRvbiddKTsgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjZ2VuZXJhdGUtaW1wbGllZC1lbmQtdGFnc1xuXG4gIHZhciBpbXBsaWVkRW5kVGFncyA9IFsnZGQnLCAnZHQnLCAnbGknLCAnb3B0aW9uJywgJ29wdGdyb3VwJywgJ3AnLCAncnAnLCAncnQnXTtcbiAgdmFyIGVtcHR5QW5jZXN0b3JJbmZvID0ge1xuICAgIGN1cnJlbnQ6IG51bGwsXG4gICAgZm9ybVRhZzogbnVsbCxcbiAgICBhVGFnSW5TY29wZTogbnVsbCxcbiAgICBidXR0b25UYWdJblNjb3BlOiBudWxsLFxuICAgIG5vYnJUYWdJblNjb3BlOiBudWxsLFxuICAgIHBUYWdJbkJ1dHRvblNjb3BlOiBudWxsLFxuICAgIGxpc3RJdGVtVGFnQXV0b2Nsb3Npbmc6IG51bGwsXG4gICAgZGxJdGVtVGFnQXV0b2Nsb3Npbmc6IG51bGxcbiAgfTtcblxuICB1cGRhdGVkQW5jZXN0b3JJbmZvID0gZnVuY3Rpb24gKG9sZEluZm8sIHRhZykge1xuICAgIHZhciBhbmNlc3RvckluZm8gPSBhc3NpZ24oe30sIG9sZEluZm8gfHwgZW1wdHlBbmNlc3RvckluZm8pO1xuXG4gICAgdmFyIGluZm8gPSB7XG4gICAgICB0YWc6IHRhZ1xuICAgIH07XG5cbiAgICBpZiAoaW5TY29wZVRhZ3MuaW5kZXhPZih0YWcpICE9PSAtMSkge1xuICAgICAgYW5jZXN0b3JJbmZvLmFUYWdJblNjb3BlID0gbnVsbDtcbiAgICAgIGFuY2VzdG9ySW5mby5idXR0b25UYWdJblNjb3BlID0gbnVsbDtcbiAgICAgIGFuY2VzdG9ySW5mby5ub2JyVGFnSW5TY29wZSA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGJ1dHRvblNjb3BlVGFncy5pbmRleE9mKHRhZykgIT09IC0xKSB7XG4gICAgICBhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGUgPSBudWxsO1xuICAgIH0gLy8gU2VlIHJ1bGVzIGZvciAnbGknLCAnZGQnLCAnZHQnIHN0YXJ0IHRhZ3MgaW5cbiAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW5ib2R5XG5cblxuICAgIGlmIChzcGVjaWFsVGFncy5pbmRleE9mKHRhZykgIT09IC0xICYmIHRhZyAhPT0gJ2FkZHJlc3MnICYmIHRhZyAhPT0gJ2RpdicgJiYgdGFnICE9PSAncCcpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5saXN0SXRlbVRhZ0F1dG9jbG9zaW5nID0gbnVsbDtcbiAgICAgIGFuY2VzdG9ySW5mby5kbEl0ZW1UYWdBdXRvY2xvc2luZyA9IG51bGw7XG4gICAgfVxuXG4gICAgYW5jZXN0b3JJbmZvLmN1cnJlbnQgPSBpbmZvO1xuXG4gICAgaWYgKHRhZyA9PT0gJ2Zvcm0nKSB7XG4gICAgICBhbmNlc3RvckluZm8uZm9ybVRhZyA9IGluZm87XG4gICAgfVxuXG4gICAgaWYgKHRhZyA9PT0gJ2EnKSB7XG4gICAgICBhbmNlc3RvckluZm8uYVRhZ0luU2NvcGUgPSBpbmZvO1xuICAgIH1cblxuICAgIGlmICh0YWcgPT09ICdidXR0b24nKSB7XG4gICAgICBhbmNlc3RvckluZm8uYnV0dG9uVGFnSW5TY29wZSA9IGluZm87XG4gICAgfVxuXG4gICAgaWYgKHRhZyA9PT0gJ25vYnInKSB7XG4gICAgICBhbmNlc3RvckluZm8ubm9iclRhZ0luU2NvcGUgPSBpbmZvO1xuICAgIH1cblxuICAgIGlmICh0YWcgPT09ICdwJykge1xuICAgICAgYW5jZXN0b3JJbmZvLnBUYWdJbkJ1dHRvblNjb3BlID0gaW5mbztcbiAgICB9XG5cbiAgICBpZiAodGFnID09PSAnbGknKSB7XG4gICAgICBhbmNlc3RvckluZm8ubGlzdEl0ZW1UYWdBdXRvY2xvc2luZyA9IGluZm87XG4gICAgfVxuXG4gICAgaWYgKHRhZyA9PT0gJ2RkJyB8fCB0YWcgPT09ICdkdCcpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5kbEl0ZW1UYWdBdXRvY2xvc2luZyA9IGluZm87XG4gICAgfVxuXG4gICAgcmV0dXJuIGFuY2VzdG9ySW5mbztcbiAgfTtcbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlclxuICAgKi9cblxuXG4gIHZhciBpc1RhZ1ZhbGlkV2l0aFBhcmVudCA9IGZ1bmN0aW9uICh0YWcsIHBhcmVudFRhZykge1xuICAgIC8vIEZpcnN0LCBsZXQncyBjaGVjayBpZiB3ZSdyZSBpbiBhbiB1bnVzdWFsIHBhcnNpbmcgbW9kZS4uLlxuICAgIHN3aXRjaCAocGFyZW50VGFnKSB7XG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW5zZWxlY3RcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdvcHRpb24nIHx8IHRhZyA9PT0gJ29wdGdyb3VwJyB8fCB0YWcgPT09ICcjdGV4dCc7XG5cbiAgICAgIGNhc2UgJ29wdGdyb3VwJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ29wdGlvbicgfHwgdGFnID09PSAnI3RleHQnO1xuICAgICAgLy8gU3RyaWN0bHkgc3BlYWtpbmcsIHNlZWluZyBhbiA8b3B0aW9uPiBkb2Vzbid0IG1lYW4gd2UncmUgaW4gYSA8c2VsZWN0PlxuICAgICAgLy8gYnV0XG5cbiAgICAgIGNhc2UgJ29wdGlvbic6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICcjdGV4dCc7XG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW50ZFxuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluY2FwdGlvblxuICAgICAgLy8gTm8gc3BlY2lhbCBiZWhhdmlvciBzaW5jZSB0aGVzZSBydWxlcyBmYWxsIGJhY2sgdG8gXCJpbiBib2R5XCIgbW9kZSBmb3JcbiAgICAgIC8vIGFsbCBleGNlcHQgc3BlY2lhbCB0YWJsZSBub2RlcyB3aGljaCBjYXVzZSBiYWQgcGFyc2luZyBiZWhhdmlvciBhbnl3YXkuXG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW50clxuXG4gICAgICBjYXNlICd0cic6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICd0aCcgfHwgdGFnID09PSAndGQnIHx8IHRhZyA9PT0gJ3N0eWxlJyB8fCB0YWcgPT09ICdzY3JpcHQnIHx8IHRhZyA9PT0gJ3RlbXBsYXRlJztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnRib2R5XG5cbiAgICAgIGNhc2UgJ3Rib2R5JzpcbiAgICAgIGNhc2UgJ3RoZWFkJzpcbiAgICAgIGNhc2UgJ3Rmb290JzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ3RyJyB8fCB0YWcgPT09ICdzdHlsZScgfHwgdGFnID09PSAnc2NyaXB0JyB8fCB0YWcgPT09ICd0ZW1wbGF0ZSc7XG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW5jb2xncm91cFxuXG4gICAgICBjYXNlICdjb2xncm91cCc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdjb2wnIHx8IHRhZyA9PT0gJ3RlbXBsYXRlJztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnRhYmxlXG5cbiAgICAgIGNhc2UgJ3RhYmxlJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ2NhcHRpb24nIHx8IHRhZyA9PT0gJ2NvbGdyb3VwJyB8fCB0YWcgPT09ICd0Ym9keScgfHwgdGFnID09PSAndGZvb3QnIHx8IHRhZyA9PT0gJ3RoZWFkJyB8fCB0YWcgPT09ICdzdHlsZScgfHwgdGFnID09PSAnc2NyaXB0JyB8fCB0YWcgPT09ICd0ZW1wbGF0ZSc7XG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW5oZWFkXG5cbiAgICAgIGNhc2UgJ2hlYWQnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnYmFzZScgfHwgdGFnID09PSAnYmFzZWZvbnQnIHx8IHRhZyA9PT0gJ2Jnc291bmQnIHx8IHRhZyA9PT0gJ2xpbmsnIHx8IHRhZyA9PT0gJ21ldGEnIHx8IHRhZyA9PT0gJ3RpdGxlJyB8fCB0YWcgPT09ICdub3NjcmlwdCcgfHwgdGFnID09PSAnbm9mcmFtZXMnIHx8IHRhZyA9PT0gJ3N0eWxlJyB8fCB0YWcgPT09ICdzY3JpcHQnIHx8IHRhZyA9PT0gJ3RlbXBsYXRlJztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3NlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnRcblxuICAgICAgY2FzZSAnaHRtbCc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdoZWFkJyB8fCB0YWcgPT09ICdib2R5JyB8fCB0YWcgPT09ICdmcmFtZXNldCc7XG5cbiAgICAgIGNhc2UgJ2ZyYW1lc2V0JzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ2ZyYW1lJztcblxuICAgICAgY2FzZSAnI2RvY3VtZW50JzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ2h0bWwnO1xuICAgIH0gLy8gUHJvYmFibHkgaW4gdGhlIFwiaW4gYm9keVwiIHBhcnNpbmcgbW9kZSwgc28gd2Ugb3V0bGF3IG9ubHkgdGFnIGNvbWJvc1xuICAgIC8vIHdoZXJlIHRoZSBwYXJzaW5nIHJ1bGVzIGNhdXNlIGltcGxpY2l0IG9wZW5zIG9yIGNsb3NlcyB0byBiZSBhZGRlZC5cbiAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW5ib2R5XG5cblxuICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICBjYXNlICdoMSc6XG4gICAgICBjYXNlICdoMic6XG4gICAgICBjYXNlICdoMyc6XG4gICAgICBjYXNlICdoNCc6XG4gICAgICBjYXNlICdoNSc6XG4gICAgICBjYXNlICdoNic6XG4gICAgICAgIHJldHVybiBwYXJlbnRUYWcgIT09ICdoMScgJiYgcGFyZW50VGFnICE9PSAnaDInICYmIHBhcmVudFRhZyAhPT0gJ2gzJyAmJiBwYXJlbnRUYWcgIT09ICdoNCcgJiYgcGFyZW50VGFnICE9PSAnaDUnICYmIHBhcmVudFRhZyAhPT0gJ2g2JztcblxuICAgICAgY2FzZSAncnAnOlxuICAgICAgY2FzZSAncnQnOlxuICAgICAgICByZXR1cm4gaW1wbGllZEVuZFRhZ3MuaW5kZXhPZihwYXJlbnRUYWcpID09PSAtMTtcblxuICAgICAgY2FzZSAnYm9keSc6XG4gICAgICBjYXNlICdjYXB0aW9uJzpcbiAgICAgIGNhc2UgJ2NvbCc6XG4gICAgICBjYXNlICdjb2xncm91cCc6XG4gICAgICBjYXNlICdmcmFtZXNldCc6XG4gICAgICBjYXNlICdmcmFtZSc6XG4gICAgICBjYXNlICdoZWFkJzpcbiAgICAgIGNhc2UgJ2h0bWwnOlxuICAgICAgY2FzZSAndGJvZHknOlxuICAgICAgY2FzZSAndGQnOlxuICAgICAgY2FzZSAndGZvb3QnOlxuICAgICAgY2FzZSAndGgnOlxuICAgICAgY2FzZSAndGhlYWQnOlxuICAgICAgY2FzZSAndHInOlxuICAgICAgICAvLyBUaGVzZSB0YWdzIGFyZSBvbmx5IHZhbGlkIHdpdGggYSBmZXcgcGFyZW50cyB0aGF0IGhhdmUgc3BlY2lhbCBjaGlsZFxuICAgICAgICAvLyBwYXJzaW5nIHJ1bGVzIC0tIGlmIHdlJ3JlIGRvd24gaGVyZSwgdGhlbiBub25lIG9mIHRob3NlIG1hdGNoZWQgYW5kXG4gICAgICAgIC8vIHNvIHdlIGFsbG93IGl0IG9ubHkgaWYgd2UgZG9uJ3Qga25vdyB3aGF0IHRoZSBwYXJlbnQgaXMsIGFzIGFsbCBvdGhlclxuICAgICAgICAvLyBjYXNlcyBhcmUgaW52YWxpZC5cbiAgICAgICAgcmV0dXJuIHBhcmVudFRhZyA9PSBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyXG4gICAqL1xuXG5cbiAgdmFyIGZpbmRJbnZhbGlkQW5jZXN0b3JGb3JUYWcgPSBmdW5jdGlvbiAodGFnLCBhbmNlc3RvckluZm8pIHtcbiAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgY2FzZSAnYWRkcmVzcyc6XG4gICAgICBjYXNlICdhcnRpY2xlJzpcbiAgICAgIGNhc2UgJ2FzaWRlJzpcbiAgICAgIGNhc2UgJ2Jsb2NrcXVvdGUnOlxuICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgIGNhc2UgJ2RldGFpbHMnOlxuICAgICAgY2FzZSAnZGlhbG9nJzpcbiAgICAgIGNhc2UgJ2Rpcic6XG4gICAgICBjYXNlICdkaXYnOlxuICAgICAgY2FzZSAnZGwnOlxuICAgICAgY2FzZSAnZmllbGRzZXQnOlxuICAgICAgY2FzZSAnZmlnY2FwdGlvbic6XG4gICAgICBjYXNlICdmaWd1cmUnOlxuICAgICAgY2FzZSAnZm9vdGVyJzpcbiAgICAgIGNhc2UgJ2hlYWRlcic6XG4gICAgICBjYXNlICdoZ3JvdXAnOlxuICAgICAgY2FzZSAnbWFpbic6XG4gICAgICBjYXNlICdtZW51JzpcbiAgICAgIGNhc2UgJ25hdic6XG4gICAgICBjYXNlICdvbCc6XG4gICAgICBjYXNlICdwJzpcbiAgICAgIGNhc2UgJ3NlY3Rpb24nOlxuICAgICAgY2FzZSAnc3VtbWFyeSc6XG4gICAgICBjYXNlICd1bCc6XG4gICAgICBjYXNlICdwcmUnOlxuICAgICAgY2FzZSAnbGlzdGluZyc6XG4gICAgICBjYXNlICd0YWJsZSc6XG4gICAgICBjYXNlICdocic6XG4gICAgICBjYXNlICd4bXAnOlxuICAgICAgY2FzZSAnaDEnOlxuICAgICAgY2FzZSAnaDInOlxuICAgICAgY2FzZSAnaDMnOlxuICAgICAgY2FzZSAnaDQnOlxuICAgICAgY2FzZSAnaDUnOlxuICAgICAgY2FzZSAnaDYnOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLnBUYWdJbkJ1dHRvblNjb3BlO1xuXG4gICAgICBjYXNlICdmb3JtJzpcbiAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5mb3JtVGFnIHx8IGFuY2VzdG9ySW5mby5wVGFnSW5CdXR0b25TY29wZTtcblxuICAgICAgY2FzZSAnbGknOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmxpc3RJdGVtVGFnQXV0b2Nsb3Npbmc7XG5cbiAgICAgIGNhc2UgJ2RkJzpcbiAgICAgIGNhc2UgJ2R0JzpcbiAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5kbEl0ZW1UYWdBdXRvY2xvc2luZztcblxuICAgICAgY2FzZSAnYnV0dG9uJzpcbiAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5idXR0b25UYWdJblNjb3BlO1xuXG4gICAgICBjYXNlICdhJzpcbiAgICAgICAgLy8gU3BlYyBzYXlzIHNvbWV0aGluZyBhYm91dCBzdG9yaW5nIGEgbGlzdCBvZiBtYXJrZXJzLCBidXQgaXQgc291bmRzXG4gICAgICAgIC8vIGVxdWl2YWxlbnQgdG8gdGhpcyBjaGVjay5cbiAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5hVGFnSW5TY29wZTtcblxuICAgICAgY2FzZSAnbm9icic6XG4gICAgICAgIHJldHVybiBhbmNlc3RvckluZm8ubm9iclRhZ0luU2NvcGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgdmFyIGRpZFdhcm4kMSA9IHt9O1xuXG4gIHZhbGlkYXRlRE9NTmVzdGluZyA9IGZ1bmN0aW9uIChjaGlsZFRhZywgY2hpbGRUZXh0LCBhbmNlc3RvckluZm8pIHtcbiAgICBhbmNlc3RvckluZm8gPSBhbmNlc3RvckluZm8gfHwgZW1wdHlBbmNlc3RvckluZm87XG4gICAgdmFyIHBhcmVudEluZm8gPSBhbmNlc3RvckluZm8uY3VycmVudDtcbiAgICB2YXIgcGFyZW50VGFnID0gcGFyZW50SW5mbyAmJiBwYXJlbnRJbmZvLnRhZztcblxuICAgIGlmIChjaGlsZFRleHQgIT0gbnVsbCkge1xuICAgICAgaWYgKGNoaWxkVGFnICE9IG51bGwpIHtcbiAgICAgICAgZXJyb3IoJ3ZhbGlkYXRlRE9NTmVzdGluZzogd2hlbiBjaGlsZFRleHQgaXMgcGFzc2VkLCBjaGlsZFRhZyBzaG91bGQgYmUgbnVsbCcpO1xuICAgICAgfVxuXG4gICAgICBjaGlsZFRhZyA9ICcjdGV4dCc7XG4gICAgfVxuXG4gICAgdmFyIGludmFsaWRQYXJlbnQgPSBpc1RhZ1ZhbGlkV2l0aFBhcmVudChjaGlsZFRhZywgcGFyZW50VGFnKSA/IG51bGwgOiBwYXJlbnRJbmZvO1xuICAgIHZhciBpbnZhbGlkQW5jZXN0b3IgPSBpbnZhbGlkUGFyZW50ID8gbnVsbCA6IGZpbmRJbnZhbGlkQW5jZXN0b3JGb3JUYWcoY2hpbGRUYWcsIGFuY2VzdG9ySW5mbyk7XG4gICAgdmFyIGludmFsaWRQYXJlbnRPckFuY2VzdG9yID0gaW52YWxpZFBhcmVudCB8fCBpbnZhbGlkQW5jZXN0b3I7XG5cbiAgICBpZiAoIWludmFsaWRQYXJlbnRPckFuY2VzdG9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGFuY2VzdG9yVGFnID0gaW52YWxpZFBhcmVudE9yQW5jZXN0b3IudGFnO1xuICAgIHZhciB3YXJuS2V5ID0gISFpbnZhbGlkUGFyZW50ICsgJ3wnICsgY2hpbGRUYWcgKyAnfCcgKyBhbmNlc3RvclRhZztcblxuICAgIGlmIChkaWRXYXJuJDFbd2FybktleV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBkaWRXYXJuJDFbd2FybktleV0gPSB0cnVlO1xuICAgIHZhciB0YWdEaXNwbGF5TmFtZSA9IGNoaWxkVGFnO1xuICAgIHZhciB3aGl0ZXNwYWNlSW5mbyA9ICcnO1xuXG4gICAgaWYgKGNoaWxkVGFnID09PSAnI3RleHQnKSB7XG4gICAgICBpZiAoL1xcUy8udGVzdChjaGlsZFRleHQpKSB7XG4gICAgICAgIHRhZ0Rpc3BsYXlOYW1lID0gJ1RleHQgbm9kZXMnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFnRGlzcGxheU5hbWUgPSAnV2hpdGVzcGFjZSB0ZXh0IG5vZGVzJztcbiAgICAgICAgd2hpdGVzcGFjZUluZm8gPSBcIiBNYWtlIHN1cmUgeW91IGRvbid0IGhhdmUgYW55IGV4dHJhIHdoaXRlc3BhY2UgYmV0d2VlbiB0YWdzIG9uIFwiICsgJ2VhY2ggbGluZSBvZiB5b3VyIHNvdXJjZSBjb2RlLic7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhZ0Rpc3BsYXlOYW1lID0gJzwnICsgY2hpbGRUYWcgKyAnPic7XG4gICAgfVxuXG4gICAgaWYgKGludmFsaWRQYXJlbnQpIHtcbiAgICAgIHZhciBpbmZvID0gJyc7XG5cbiAgICAgIGlmIChhbmNlc3RvclRhZyA9PT0gJ3RhYmxlJyAmJiBjaGlsZFRhZyA9PT0gJ3RyJykge1xuICAgICAgICBpbmZvICs9ICcgQWRkIGEgPHRib2R5PiwgPHRoZWFkPiBvciA8dGZvb3Q+IHRvIHlvdXIgY29kZSB0byBtYXRjaCB0aGUgRE9NIHRyZWUgZ2VuZXJhdGVkIGJ5ICcgKyAndGhlIGJyb3dzZXIuJztcbiAgICAgIH1cblxuICAgICAgZXJyb3IoJ3ZhbGlkYXRlRE9NTmVzdGluZyguLi4pOiAlcyBjYW5ub3QgYXBwZWFyIGFzIGEgY2hpbGQgb2YgPCVzPi4lcyVzJywgdGFnRGlzcGxheU5hbWUsIGFuY2VzdG9yVGFnLCB3aGl0ZXNwYWNlSW5mbywgaW5mbyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVycm9yKCd2YWxpZGF0ZURPTU5lc3RpbmcoLi4uKTogJXMgY2Fubm90IGFwcGVhciBhcyBhIGRlc2NlbmRhbnQgb2YgJyArICc8JXM+LicsIHRhZ0Rpc3BsYXlOYW1lLCBhbmNlc3RvclRhZyk7XG4gICAgfVxuICB9O1xufVxuXG52YXIgU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkckMTtcblxue1xuICBTVVBQUkVTU19IWURSQVRJT05fV0FSTklORyQxID0gJ3N1cHByZXNzSHlkcmF0aW9uV2FybmluZyc7XG59XG5cbnZhciBTVVNQRU5TRV9TVEFSVF9EQVRBID0gJyQnO1xudmFyIFNVU1BFTlNFX0VORF9EQVRBID0gJy8kJztcbnZhciBTVVNQRU5TRV9QRU5ESU5HX1NUQVJUX0RBVEEgPSAnJD8nO1xudmFyIFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEEgPSAnJCEnO1xudmFyIFNUWUxFJDEgPSAnc3R5bGUnO1xudmFyIHNlbGVjdGlvbkluZm9ybWF0aW9uID0gbnVsbDtcbmZ1bmN0aW9uIGdldFJvb3RIb3N0Q29udGV4dChyb290Q29udGFpbmVySW5zdGFuY2UpIHtcbiAgdmFyIHR5cGU7XG4gIHZhciBuYW1lc3BhY2U7XG4gIHZhciBub2RlVHlwZSA9IHJvb3RDb250YWluZXJJbnN0YW5jZS5ub2RlVHlwZTtcblxuICBzd2l0Y2ggKG5vZGVUeXBlKSB7XG4gICAgY2FzZSBET0NVTUVOVF9OT0RFOlxuICAgIGNhc2UgRE9DVU1FTlRfRlJBR01FTlRfTk9ERTpcbiAgICAgIHtcbiAgICAgICAgdHlwZSA9IG5vZGVUeXBlID09PSBET0NVTUVOVF9OT0RFID8gJyNkb2N1bWVudCcgOiAnI2ZyYWdtZW50JztcbiAgICAgICAgdmFyIHJvb3QgPSByb290Q29udGFpbmVySW5zdGFuY2UuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgICBuYW1lc3BhY2UgPSByb290ID8gcm9vdC5uYW1lc3BhY2VVUkkgOiBnZXRDaGlsZE5hbWVzcGFjZShudWxsLCAnJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHtcbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IG5vZGVUeXBlID09PSBDT01NRU5UX05PREUgPyByb290Q29udGFpbmVySW5zdGFuY2UucGFyZW50Tm9kZSA6IHJvb3RDb250YWluZXJJbnN0YW5jZTtcbiAgICAgICAgdmFyIG93bk5hbWVzcGFjZSA9IGNvbnRhaW5lci5uYW1lc3BhY2VVUkkgfHwgbnVsbDtcbiAgICAgICAgdHlwZSA9IGNvbnRhaW5lci50YWdOYW1lO1xuICAgICAgICBuYW1lc3BhY2UgPSBnZXRDaGlsZE5hbWVzcGFjZShvd25OYW1lc3BhY2UsIHR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgfVxuXG4gIHtcbiAgICB2YXIgdmFsaWRhdGVkVGFnID0gdHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhciBhbmNlc3RvckluZm8gPSB1cGRhdGVkQW5jZXN0b3JJbmZvKG51bGwsIHZhbGlkYXRlZFRhZyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWVzcGFjZTogbmFtZXNwYWNlLFxuICAgICAgYW5jZXN0b3JJbmZvOiBhbmNlc3RvckluZm9cbiAgICB9O1xuICB9XG59XG5mdW5jdGlvbiBnZXRDaGlsZEhvc3RDb250ZXh0KHBhcmVudEhvc3RDb250ZXh0LCB0eXBlLCByb290Q29udGFpbmVySW5zdGFuY2UpIHtcbiAge1xuICAgIHZhciBwYXJlbnRIb3N0Q29udGV4dERldiA9IHBhcmVudEhvc3RDb250ZXh0O1xuICAgIHZhciBuYW1lc3BhY2UgPSBnZXRDaGlsZE5hbWVzcGFjZShwYXJlbnRIb3N0Q29udGV4dERldi5uYW1lc3BhY2UsIHR5cGUpO1xuICAgIHZhciBhbmNlc3RvckluZm8gPSB1cGRhdGVkQW5jZXN0b3JJbmZvKHBhcmVudEhvc3RDb250ZXh0RGV2LmFuY2VzdG9ySW5mbywgdHlwZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWVzcGFjZTogbmFtZXNwYWNlLFxuICAgICAgYW5jZXN0b3JJbmZvOiBhbmNlc3RvckluZm9cbiAgICB9O1xuICB9XG59XG5mdW5jdGlvbiBnZXRQdWJsaWNJbnN0YW5jZShpbnN0YW5jZSkge1xuICByZXR1cm4gaW5zdGFuY2U7XG59XG5mdW5jdGlvbiBwcmVwYXJlRm9yQ29tbWl0KGNvbnRhaW5lckluZm8pIHtcbiAgc2VsZWN0aW9uSW5mb3JtYXRpb24gPSBnZXRTZWxlY3Rpb25JbmZvcm1hdGlvbigpO1xuICB2YXIgYWN0aXZlSW5zdGFuY2UgPSBudWxsO1xuICByZXR1cm4gYWN0aXZlSW5zdGFuY2U7XG59XG5mdW5jdGlvbiByZXNldEFmdGVyQ29tbWl0KGNvbnRhaW5lckluZm8pIHtcbiAgcmVzdG9yZVNlbGVjdGlvbihzZWxlY3Rpb25JbmZvcm1hdGlvbik7XG4gIHNlbGVjdGlvbkluZm9ybWF0aW9uID0gbnVsbDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUluc3RhbmNlKHR5cGUsIHByb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UsIGhvc3RDb250ZXh0LCBpbnRlcm5hbEluc3RhbmNlSGFuZGxlKSB7XG4gIHZhciBwYXJlbnROYW1lc3BhY2U7XG5cbiAge1xuICAgIC8vIFRPRE86IHRha2UgbmFtZXNwYWNlIGludG8gYWNjb3VudCB3aGVuIHZhbGlkYXRpbmcuXG4gICAgdmFyIGhvc3RDb250ZXh0RGV2ID0gaG9zdENvbnRleHQ7XG4gICAgdmFsaWRhdGVET01OZXN0aW5nKHR5cGUsIG51bGwsIGhvc3RDb250ZXh0RGV2LmFuY2VzdG9ySW5mbyk7XG5cbiAgICBpZiAodHlwZW9mIHByb3BzLmNoaWxkcmVuID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgcHJvcHMuY2hpbGRyZW4gPT09ICdudW1iZXInKSB7XG4gICAgICB2YXIgc3RyaW5nID0gJycgKyBwcm9wcy5jaGlsZHJlbjtcbiAgICAgIHZhciBvd25BbmNlc3RvckluZm8gPSB1cGRhdGVkQW5jZXN0b3JJbmZvKGhvc3RDb250ZXh0RGV2LmFuY2VzdG9ySW5mbywgdHlwZSk7XG4gICAgICB2YWxpZGF0ZURPTU5lc3RpbmcobnVsbCwgc3RyaW5nLCBvd25BbmNlc3RvckluZm8pO1xuICAgIH1cblxuICAgIHBhcmVudE5hbWVzcGFjZSA9IGhvc3RDb250ZXh0RGV2Lm5hbWVzcGFjZTtcbiAgfVxuXG4gIHZhciBkb21FbGVtZW50ID0gY3JlYXRlRWxlbWVudCh0eXBlLCBwcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlLCBwYXJlbnROYW1lc3BhY2UpO1xuICBwcmVjYWNoZUZpYmVyTm9kZShpbnRlcm5hbEluc3RhbmNlSGFuZGxlLCBkb21FbGVtZW50KTtcbiAgdXBkYXRlRmliZXJQcm9wcyhkb21FbGVtZW50LCBwcm9wcyk7XG4gIHJldHVybiBkb21FbGVtZW50O1xufVxuZnVuY3Rpb24gYXBwZW5kSW5pdGlhbENoaWxkKHBhcmVudEluc3RhbmNlLCBjaGlsZCkge1xuICBwYXJlbnRJbnN0YW5jZS5hcHBlbmRDaGlsZChjaGlsZCk7XG59XG5mdW5jdGlvbiBmaW5hbGl6ZUluaXRpYWxDaGlsZHJlbihkb21FbGVtZW50LCB0eXBlLCBwcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlLCBob3N0Q29udGV4dCkge1xuICBzZXRJbml0aWFsUHJvcGVydGllcyhkb21FbGVtZW50LCB0eXBlLCBwcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlKTtcblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdidXR0b24nOlxuICAgIGNhc2UgJ2lucHV0JzpcbiAgICBjYXNlICdzZWxlY3QnOlxuICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgIHJldHVybiAhIXByb3BzLmF1dG9Gb2N1cztcblxuICAgIGNhc2UgJ2ltZyc6XG4gICAgICByZXR1cm4gdHJ1ZTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbmZ1bmN0aW9uIHByZXBhcmVVcGRhdGUoZG9tRWxlbWVudCwgdHlwZSwgb2xkUHJvcHMsIG5ld1Byb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UsIGhvc3RDb250ZXh0KSB7XG4gIHtcbiAgICB2YXIgaG9zdENvbnRleHREZXYgPSBob3N0Q29udGV4dDtcblxuICAgIGlmICh0eXBlb2YgbmV3UHJvcHMuY2hpbGRyZW4gIT09IHR5cGVvZiBvbGRQcm9wcy5jaGlsZHJlbiAmJiAodHlwZW9mIG5ld1Byb3BzLmNoaWxkcmVuID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgbmV3UHJvcHMuY2hpbGRyZW4gPT09ICdudW1iZXInKSkge1xuICAgICAgdmFyIHN0cmluZyA9ICcnICsgbmV3UHJvcHMuY2hpbGRyZW47XG4gICAgICB2YXIgb3duQW5jZXN0b3JJbmZvID0gdXBkYXRlZEFuY2VzdG9ySW5mbyhob3N0Q29udGV4dERldi5hbmNlc3RvckluZm8sIHR5cGUpO1xuICAgICAgdmFsaWRhdGVET01OZXN0aW5nKG51bGwsIHN0cmluZywgb3duQW5jZXN0b3JJbmZvKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGlmZlByb3BlcnRpZXMoZG9tRWxlbWVudCwgdHlwZSwgb2xkUHJvcHMsIG5ld1Byb3BzKTtcbn1cbmZ1bmN0aW9uIHNob3VsZFNldFRleHRDb250ZW50KHR5cGUsIHByb3BzKSB7XG4gIHJldHVybiB0eXBlID09PSAndGV4dGFyZWEnIHx8IHR5cGUgPT09ICdub3NjcmlwdCcgfHwgdHlwZW9mIHByb3BzLmNoaWxkcmVuID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgcHJvcHMuY2hpbGRyZW4gPT09ICdudW1iZXInIHx8IHR5cGVvZiBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCA9PT0gJ29iamVjdCcgJiYgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgIT09IG51bGwgJiYgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sICE9IG51bGw7XG59XG5mdW5jdGlvbiBjcmVhdGVUZXh0SW5zdGFuY2UodGV4dCwgcm9vdENvbnRhaW5lckluc3RhbmNlLCBob3N0Q29udGV4dCwgaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSkge1xuICB7XG4gICAgdmFyIGhvc3RDb250ZXh0RGV2ID0gaG9zdENvbnRleHQ7XG4gICAgdmFsaWRhdGVET01OZXN0aW5nKG51bGwsIHRleHQsIGhvc3RDb250ZXh0RGV2LmFuY2VzdG9ySW5mbyk7XG4gIH1cblxuICB2YXIgdGV4dE5vZGUgPSBjcmVhdGVUZXh0Tm9kZSh0ZXh0LCByb290Q29udGFpbmVySW5zdGFuY2UpO1xuICBwcmVjYWNoZUZpYmVyTm9kZShpbnRlcm5hbEluc3RhbmNlSGFuZGxlLCB0ZXh0Tm9kZSk7XG4gIHJldHVybiB0ZXh0Tm9kZTtcbn1cbmZ1bmN0aW9uIGdldEN1cnJlbnRFdmVudFByaW9yaXR5KCkge1xuICB2YXIgY3VycmVudEV2ZW50ID0gd2luZG93LmV2ZW50O1xuXG4gIGlmIChjdXJyZW50RXZlbnQgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBEZWZhdWx0RXZlbnRQcmlvcml0eTtcbiAgfVxuXG4gIHJldHVybiBnZXRFdmVudFByaW9yaXR5KGN1cnJlbnRFdmVudC50eXBlKTtcbn1cbi8vIGlmIGEgY29tcG9uZW50IGp1c3QgaW1wb3J0cyBSZWFjdERPTSAoZS5nLiBmb3IgZmluZERPTU5vZGUpLlxuLy8gU29tZSBlbnZpcm9ubWVudHMgbWlnaHQgbm90IGhhdmUgc2V0VGltZW91dCBvciBjbGVhclRpbWVvdXQuXG5cbnZhciBzY2hlZHVsZVRpbWVvdXQgPSB0eXBlb2Ygc2V0VGltZW91dCA9PT0gJ2Z1bmN0aW9uJyA/IHNldFRpbWVvdXQgOiB1bmRlZmluZWQ7XG52YXIgY2FuY2VsVGltZW91dCA9IHR5cGVvZiBjbGVhclRpbWVvdXQgPT09ICdmdW5jdGlvbicgPyBjbGVhclRpbWVvdXQgOiB1bmRlZmluZWQ7XG52YXIgbm9UaW1lb3V0ID0gLTE7XG52YXIgbG9jYWxQcm9taXNlID0gdHlwZW9mIFByb21pc2UgPT09ICdmdW5jdGlvbicgPyBQcm9taXNlIDogdW5kZWZpbmVkOyAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG52YXIgc2NoZWR1bGVNaWNyb3Rhc2sgPSB0eXBlb2YgcXVldWVNaWNyb3Rhc2sgPT09ICdmdW5jdGlvbicgPyBxdWV1ZU1pY3JvdGFzayA6IHR5cGVvZiBsb2NhbFByb21pc2UgIT09ICd1bmRlZmluZWQnID8gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gIHJldHVybiBsb2NhbFByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKGNhbGxiYWNrKS5jYXRjaChoYW5kbGVFcnJvckluTmV4dFRpY2spO1xufSA6IHNjaGVkdWxlVGltZW91dDsgLy8gVE9ETzogRGV0ZXJtaW5lIHRoZSBiZXN0IGZhbGxiYWNrIGhlcmUuXG5cbmZ1bmN0aW9uIGhhbmRsZUVycm9ySW5OZXh0VGljayhlcnJvcikge1xuICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfSk7XG59IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGNvbW1pdE1vdW50KGRvbUVsZW1lbnQsIHR5cGUsIG5ld1Byb3BzLCBpbnRlcm5hbEluc3RhbmNlSGFuZGxlKSB7XG4gIC8vIERlc3BpdGUgdGhlIG5hbWluZyB0aGF0IG1pZ2h0IGltcGx5IG90aGVyd2lzZSwgdGhpcyBtZXRob2Qgb25seVxuICAvLyBmaXJlcyBpZiB0aGVyZSBpcyBhbiBgVXBkYXRlYCBlZmZlY3Qgc2NoZWR1bGVkIGR1cmluZyBtb3VudGluZy5cbiAgLy8gVGhpcyBoYXBwZW5zIGlmIGBmaW5hbGl6ZUluaXRpYWxDaGlsZHJlbmAgcmV0dXJucyBgdHJ1ZWAgKHdoaWNoIGl0XG4gIC8vIGRvZXMgdG8gaW1wbGVtZW50IHRoZSBgYXV0b0ZvY3VzYCBhdHRyaWJ1dGUgb24gdGhlIGNsaWVudCkuIEJ1dFxuICAvLyB0aGVyZSBhcmUgYWxzbyBvdGhlciBjYXNlcyB3aGVuIHRoaXMgbWlnaHQgaGFwcGVuIChzdWNoIGFzIHBhdGNoaW5nXG4gIC8vIHVwIHRleHQgY29udGVudCBkdXJpbmcgaHlkcmF0aW9uIG1pc21hdGNoKS4gU28gd2UnbGwgY2hlY2sgdGhpcyBhZ2Fpbi5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnYnV0dG9uJzpcbiAgICBjYXNlICdpbnB1dCc6XG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICBpZiAobmV3UHJvcHMuYXV0b0ZvY3VzKSB7XG4gICAgICAgIGRvbUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSAnaW1nJzpcbiAgICAgIHtcbiAgICAgICAgaWYgKG5ld1Byb3BzLnNyYykge1xuICAgICAgICAgIGRvbUVsZW1lbnQuc3JjID0gbmV3UHJvcHMuc3JjO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICB9XG59XG5mdW5jdGlvbiBjb21taXRVcGRhdGUoZG9tRWxlbWVudCwgdXBkYXRlUGF5bG9hZCwgdHlwZSwgb2xkUHJvcHMsIG5ld1Byb3BzLCBpbnRlcm5hbEluc3RhbmNlSGFuZGxlKSB7XG4gIC8vIEFwcGx5IHRoZSBkaWZmIHRvIHRoZSBET00gbm9kZS5cbiAgdXBkYXRlUHJvcGVydGllcyhkb21FbGVtZW50LCB1cGRhdGVQYXlsb2FkLCB0eXBlLCBvbGRQcm9wcywgbmV3UHJvcHMpOyAvLyBVcGRhdGUgdGhlIHByb3BzIGhhbmRsZSBzbyB0aGF0IHdlIGtub3cgd2hpY2ggcHJvcHMgYXJlIHRoZSBvbmVzIHdpdGhcbiAgLy8gd2l0aCBjdXJyZW50IGV2ZW50IGhhbmRsZXJzLlxuXG4gIHVwZGF0ZUZpYmVyUHJvcHMoZG9tRWxlbWVudCwgbmV3UHJvcHMpO1xufVxuZnVuY3Rpb24gcmVzZXRUZXh0Q29udGVudChkb21FbGVtZW50KSB7XG4gIHNldFRleHRDb250ZW50KGRvbUVsZW1lbnQsICcnKTtcbn1cbmZ1bmN0aW9uIGNvbW1pdFRleHRVcGRhdGUodGV4dEluc3RhbmNlLCBvbGRUZXh0LCBuZXdUZXh0KSB7XG4gIHRleHRJbnN0YW5jZS5ub2RlVmFsdWUgPSBuZXdUZXh0O1xufVxuZnVuY3Rpb24gYXBwZW5kQ2hpbGQocGFyZW50SW5zdGFuY2UsIGNoaWxkKSB7XG4gIHBhcmVudEluc3RhbmNlLmFwcGVuZENoaWxkKGNoaWxkKTtcbn1cbmZ1bmN0aW9uIGFwcGVuZENoaWxkVG9Db250YWluZXIoY29udGFpbmVyLCBjaGlsZCkge1xuICB2YXIgcGFyZW50Tm9kZTtcblxuICBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBDT01NRU5UX05PREUpIHtcbiAgICBwYXJlbnROb2RlID0gY29udGFpbmVyLnBhcmVudE5vZGU7XG4gICAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoY2hpbGQsIGNvbnRhaW5lcik7XG4gIH0gZWxzZSB7XG4gICAgcGFyZW50Tm9kZSA9IGNvbnRhaW5lcjtcbiAgICBwYXJlbnROb2RlLmFwcGVuZENoaWxkKGNoaWxkKTtcbiAgfSAvLyBUaGlzIGNvbnRhaW5lciBtaWdodCBiZSB1c2VkIGZvciBhIHBvcnRhbC5cbiAgLy8gSWYgc29tZXRoaW5nIGluc2lkZSBhIHBvcnRhbCBpcyBjbGlja2VkLCB0aGF0IGNsaWNrIHNob3VsZCBidWJibGVcbiAgLy8gdGhyb3VnaCB0aGUgUmVhY3QgdHJlZS4gSG93ZXZlciwgb24gTW9iaWxlIFNhZmFyaSB0aGUgY2xpY2sgd291bGRcbiAgLy8gbmV2ZXIgYnViYmxlIHRocm91Z2ggdGhlICpET00qIHRyZWUgdW5sZXNzIGFuIGFuY2VzdG9yIHdpdGggb25jbGlja1xuICAvLyBldmVudCBleGlzdHMuIFNvIHdlIHdvdWxkbid0IHNlZSBpdCBhbmQgZGlzcGF0Y2ggaXQuXG4gIC8vIFRoaXMgaXMgd2h5IHdlIGVuc3VyZSB0aGF0IG5vbiBSZWFjdCByb290IGNvbnRhaW5lcnMgaGF2ZSBpbmxpbmUgb25jbGlja1xuICAvLyBkZWZpbmVkLlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzExOTE4XG5cblxuICB2YXIgcmVhY3RSb290Q29udGFpbmVyID0gY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXI7XG5cbiAgaWYgKChyZWFjdFJvb3RDb250YWluZXIgPT09IG51bGwgfHwgcmVhY3RSb290Q29udGFpbmVyID09PSB1bmRlZmluZWQpICYmIHBhcmVudE5vZGUub25jbGljayA9PT0gbnVsbCkge1xuICAgIC8vIFRPRE86IFRoaXMgY2FzdCBtYXkgbm90IGJlIHNvdW5kIGZvciBTVkcsIE1hdGhNTCBvciBjdXN0b20gZWxlbWVudHMuXG4gICAgdHJhcENsaWNrT25Ob25JbnRlcmFjdGl2ZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGluc2VydEJlZm9yZShwYXJlbnRJbnN0YW5jZSwgY2hpbGQsIGJlZm9yZUNoaWxkKSB7XG4gIHBhcmVudEluc3RhbmNlLmluc2VydEJlZm9yZShjaGlsZCwgYmVmb3JlQ2hpbGQpO1xufVxuZnVuY3Rpb24gaW5zZXJ0SW5Db250YWluZXJCZWZvcmUoY29udGFpbmVyLCBjaGlsZCwgYmVmb3JlQ2hpbGQpIHtcbiAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgY29udGFpbmVyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNoaWxkLCBiZWZvcmVDaGlsZCk7XG4gIH0gZWxzZSB7XG4gICAgY29udGFpbmVyLmluc2VydEJlZm9yZShjaGlsZCwgYmVmb3JlQ2hpbGQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUNoaWxkKHBhcmVudEluc3RhbmNlLCBjaGlsZCkge1xuICBwYXJlbnRJbnN0YW5jZS5yZW1vdmVDaGlsZChjaGlsZCk7XG59XG5mdW5jdGlvbiByZW1vdmVDaGlsZEZyb21Db250YWluZXIoY29udGFpbmVyLCBjaGlsZCkge1xuICBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBDT01NRU5UX05PREUpIHtcbiAgICBjb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjaGlsZCk7XG4gIH0gZWxzZSB7XG4gICAgY29udGFpbmVyLnJlbW92ZUNoaWxkKGNoaWxkKTtcbiAgfVxufVxuZnVuY3Rpb24gY2xlYXJTdXNwZW5zZUJvdW5kYXJ5KHBhcmVudEluc3RhbmNlLCBzdXNwZW5zZUluc3RhbmNlKSB7XG4gIHZhciBub2RlID0gc3VzcGVuc2VJbnN0YW5jZTsgLy8gRGVsZXRlIGFsbCBub2RlcyB3aXRoaW4gdGhpcyBzdXNwZW5zZSBib3VuZGFyeS5cbiAgLy8gVGhlcmUgbWlnaHQgYmUgbmVzdGVkIG5vZGVzIHNvIHdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiBob3dcbiAgLy8gZGVlcCB3ZSBhcmUgYW5kIG9ubHkgYnJlYWsgb3V0IHdoZW4gd2UncmUgYmFjayBvbiB0b3AuXG5cbiAgdmFyIGRlcHRoID0gMDtcblxuICBkbyB7XG4gICAgdmFyIG5leHROb2RlID0gbm9kZS5uZXh0U2libGluZztcbiAgICBwYXJlbnRJbnN0YW5jZS5yZW1vdmVDaGlsZChub2RlKTtcblxuICAgIGlmIChuZXh0Tm9kZSAmJiBuZXh0Tm9kZS5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgICB2YXIgZGF0YSA9IG5leHROb2RlLmRhdGE7XG5cbiAgICAgIGlmIChkYXRhID09PSBTVVNQRU5TRV9FTkRfREFUQSkge1xuICAgICAgICBpZiAoZGVwdGggPT09IDApIHtcbiAgICAgICAgICBwYXJlbnRJbnN0YW5jZS5yZW1vdmVDaGlsZChuZXh0Tm9kZSk7IC8vIFJldHJ5IGlmIGFueSBldmVudCByZXBsYXlpbmcgd2FzIGJsb2NrZWQgb24gdGhpcy5cblxuICAgICAgICAgIHJldHJ5SWZCbG9ja2VkT24oc3VzcGVuc2VJbnN0YW5jZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlcHRoLS07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZGF0YSA9PT0gU1VTUEVOU0VfU1RBUlRfREFUQSB8fCBkYXRhID09PSBTVVNQRU5TRV9QRU5ESU5HX1NUQVJUX0RBVEEgfHwgZGF0YSA9PT0gU1VTUEVOU0VfRkFMTEJBQ0tfU1RBUlRfREFUQSkge1xuICAgICAgICBkZXB0aCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5vZGUgPSBuZXh0Tm9kZTtcbiAgfSB3aGlsZSAobm9kZSk7IC8vIFRPRE86IFdhcm4sIHdlIGRpZG4ndCBmaW5kIHRoZSBlbmQgY29tbWVudCBib3VuZGFyeS5cbiAgLy8gUmV0cnkgaWYgYW55IGV2ZW50IHJlcGxheWluZyB3YXMgYmxvY2tlZCBvbiB0aGlzLlxuXG5cbiAgcmV0cnlJZkJsb2NrZWRPbihzdXNwZW5zZUluc3RhbmNlKTtcbn1cbmZ1bmN0aW9uIGNsZWFyU3VzcGVuc2VCb3VuZGFyeUZyb21Db250YWluZXIoY29udGFpbmVyLCBzdXNwZW5zZUluc3RhbmNlKSB7XG4gIGlmIChjb250YWluZXIubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSkge1xuICAgIGNsZWFyU3VzcGVuc2VCb3VuZGFyeShjb250YWluZXIucGFyZW50Tm9kZSwgc3VzcGVuc2VJbnN0YW5jZSk7XG4gIH0gZWxzZSBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREUpIHtcbiAgICBjbGVhclN1c3BlbnNlQm91bmRhcnkoY29udGFpbmVyLCBzdXNwZW5zZUluc3RhbmNlKTtcbiAgfSAvLyBSZXRyeSBpZiBhbnkgZXZlbnQgcmVwbGF5aW5nIHdhcyBibG9ja2VkIG9uIHRoaXMuXG5cblxuICByZXRyeUlmQmxvY2tlZE9uKGNvbnRhaW5lcik7XG59XG5mdW5jdGlvbiBoaWRlSW5zdGFuY2UoaW5zdGFuY2UpIHtcbiAgLy8gVE9ETzogRG9lcyB0aGlzIHdvcmsgZm9yIGFsbCBlbGVtZW50IHR5cGVzPyBXaGF0IGFib3V0IE1hdGhNTD8gU2hvdWxkIHdlXG4gIC8vIHBhc3MgaG9zdCBjb250ZXh0IHRvIHRoaXMgbWV0aG9kP1xuICBpbnN0YW5jZSA9IGluc3RhbmNlO1xuICB2YXIgc3R5bGUgPSBpbnN0YW5jZS5zdHlsZTtcblxuICBpZiAodHlwZW9mIHN0eWxlLnNldFByb3BlcnR5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgc3R5bGUuc2V0UHJvcGVydHkoJ2Rpc3BsYXknLCAnbm9uZScsICdpbXBvcnRhbnQnKTtcbiAgfSBlbHNlIHtcbiAgICBzdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICB9XG59XG5mdW5jdGlvbiBoaWRlVGV4dEluc3RhbmNlKHRleHRJbnN0YW5jZSkge1xuICB0ZXh0SW5zdGFuY2Uubm9kZVZhbHVlID0gJyc7XG59XG5mdW5jdGlvbiB1bmhpZGVJbnN0YW5jZShpbnN0YW5jZSwgcHJvcHMpIHtcbiAgaW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgdmFyIHN0eWxlUHJvcCA9IHByb3BzW1NUWUxFJDFdO1xuICB2YXIgZGlzcGxheSA9IHN0eWxlUHJvcCAhPT0gdW5kZWZpbmVkICYmIHN0eWxlUHJvcCAhPT0gbnVsbCAmJiBzdHlsZVByb3AuaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXknKSA/IHN0eWxlUHJvcC5kaXNwbGF5IDogbnVsbDtcbiAgaW5zdGFuY2Uuc3R5bGUuZGlzcGxheSA9IGRhbmdlcm91c1N0eWxlVmFsdWUoJ2Rpc3BsYXknLCBkaXNwbGF5KTtcbn1cbmZ1bmN0aW9uIHVuaGlkZVRleHRJbnN0YW5jZSh0ZXh0SW5zdGFuY2UsIHRleHQpIHtcbiAgdGV4dEluc3RhbmNlLm5vZGVWYWx1ZSA9IHRleHQ7XG59XG5mdW5jdGlvbiBjbGVhckNvbnRhaW5lcihjb250YWluZXIpIHtcbiAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFKSB7XG4gICAgY29udGFpbmVyLnRleHRDb250ZW50ID0gJyc7XG4gIH0gZWxzZSBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBET0NVTUVOVF9OT0RFKSB7XG4gICAgdmFyIGJvZHkgPSBjb250YWluZXIuYm9keTtcblxuICAgIGlmIChib2R5ICE9IG51bGwpIHtcbiAgICAgIGJvZHkudGV4dENvbnRlbnQgPSAnJztcbiAgICB9XG4gIH1cbn0gLy8gLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gY2FuSHlkcmF0ZUluc3RhbmNlKGluc3RhbmNlLCB0eXBlLCBwcm9wcykge1xuICBpZiAoaW5zdGFuY2Uubm9kZVR5cGUgIT09IEVMRU1FTlRfTk9ERSB8fCB0eXBlLnRvTG93ZXJDYXNlKCkgIT09IGluc3RhbmNlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSAvLyBUaGlzIGhhcyBub3cgYmVlbiByZWZpbmVkIHRvIGFuIGVsZW1lbnQgbm9kZS5cblxuXG4gIHJldHVybiBpbnN0YW5jZTtcbn1cbmZ1bmN0aW9uIGNhbkh5ZHJhdGVUZXh0SW5zdGFuY2UoaW5zdGFuY2UsIHRleHQpIHtcbiAgaWYgKHRleHQgPT09ICcnIHx8IGluc3RhbmNlLm5vZGVUeXBlICE9PSBURVhUX05PREUpIHtcbiAgICAvLyBFbXB0eSBzdHJpbmdzIGFyZSBub3QgcGFyc2VkIGJ5IEhUTUwgc28gdGhlcmUgd29uJ3QgYmUgYSBjb3JyZWN0IG1hdGNoIGhlcmUuXG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gVGhpcyBoYXMgbm93IGJlZW4gcmVmaW5lZCB0byBhIHRleHQgbm9kZS5cblxuXG4gIHJldHVybiBpbnN0YW5jZTtcbn1cbmZ1bmN0aW9uIGNhbkh5ZHJhdGVTdXNwZW5zZUluc3RhbmNlKGluc3RhbmNlKSB7XG4gIGlmIChpbnN0YW5jZS5ub2RlVHlwZSAhPT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgLy8gRW1wdHkgc3RyaW5ncyBhcmUgbm90IHBhcnNlZCBieSBIVE1MIHNvIHRoZXJlIHdvbid0IGJlIGEgY29ycmVjdCBtYXRjaCBoZXJlLlxuICAgIHJldHVybiBudWxsO1xuICB9IC8vIFRoaXMgaGFzIG5vdyBiZWVuIHJlZmluZWQgdG8gYSBzdXNwZW5zZSBub2RlLlxuXG5cbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuZnVuY3Rpb24gaXNTdXNwZW5zZUluc3RhbmNlUGVuZGluZyhpbnN0YW5jZSkge1xuICByZXR1cm4gaW5zdGFuY2UuZGF0YSA9PT0gU1VTUEVOU0VfUEVORElOR19TVEFSVF9EQVRBO1xufVxuZnVuY3Rpb24gaXNTdXNwZW5zZUluc3RhbmNlRmFsbGJhY2soaW5zdGFuY2UpIHtcbiAgcmV0dXJuIGluc3RhbmNlLmRhdGEgPT09IFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEE7XG59XG5mdW5jdGlvbiByZWdpc3RlclN1c3BlbnNlSW5zdGFuY2VSZXRyeShpbnN0YW5jZSwgY2FsbGJhY2spIHtcbiAgaW5zdGFuY2UuX3JlYWN0UmV0cnkgPSBjYWxsYmFjaztcbn1cblxuZnVuY3Rpb24gZ2V0TmV4dEh5ZHJhdGFibGUobm9kZSkge1xuICAvLyBTa2lwIG5vbi1oeWRyYXRhYmxlIG5vZGVzLlxuICBmb3IgKDsgbm9kZSAhPSBudWxsOyBub2RlID0gbm9kZS5uZXh0U2libGluZykge1xuICAgIHZhciBub2RlVHlwZSA9IG5vZGUubm9kZVR5cGU7XG5cbiAgICBpZiAobm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERSB8fCBub2RlVHlwZSA9PT0gVEVYVF9OT0RFKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICB7XG4gICAgICBpZiAobm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSkge1xuICAgICAgICB2YXIgbm9kZURhdGEgPSBub2RlLmRhdGE7XG5cbiAgICAgICAgaWYgKG5vZGVEYXRhID09PSBTVVNQRU5TRV9TVEFSVF9EQVRBIHx8IG5vZGVEYXRhID09PSBTVVNQRU5TRV9GQUxMQkFDS19TVEFSVF9EQVRBIHx8IG5vZGVEYXRhID09PSBTVVNQRU5TRV9QRU5ESU5HX1NUQVJUX0RBVEEpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub2RlRGF0YSA9PT0gU1VTUEVOU0VfRU5EX0RBVEEpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBub2RlO1xufVxuXG5mdW5jdGlvbiBnZXROZXh0SHlkcmF0YWJsZVNpYmxpbmcoaW5zdGFuY2UpIHtcbiAgcmV0dXJuIGdldE5leHRIeWRyYXRhYmxlKGluc3RhbmNlLm5leHRTaWJsaW5nKTtcbn1cbmZ1bmN0aW9uIGdldEZpcnN0SHlkcmF0YWJsZUNoaWxkKHBhcmVudEluc3RhbmNlKSB7XG4gIHJldHVybiBnZXROZXh0SHlkcmF0YWJsZShwYXJlbnRJbnN0YW5jZS5maXJzdENoaWxkKTtcbn1cbmZ1bmN0aW9uIGdldEZpcnN0SHlkcmF0YWJsZUNoaWxkV2l0aGluQ29udGFpbmVyKHBhcmVudENvbnRhaW5lcikge1xuICByZXR1cm4gZ2V0TmV4dEh5ZHJhdGFibGUocGFyZW50Q29udGFpbmVyLmZpcnN0Q2hpbGQpO1xufVxuZnVuY3Rpb24gZ2V0Rmlyc3RIeWRyYXRhYmxlQ2hpbGRXaXRoaW5TdXNwZW5zZUluc3RhbmNlKHBhcmVudEluc3RhbmNlKSB7XG4gIHJldHVybiBnZXROZXh0SHlkcmF0YWJsZShwYXJlbnRJbnN0YW5jZS5uZXh0U2libGluZyk7XG59XG5mdW5jdGlvbiBoeWRyYXRlSW5zdGFuY2UoaW5zdGFuY2UsIHR5cGUsIHByb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UsIGhvc3RDb250ZXh0LCBpbnRlcm5hbEluc3RhbmNlSGFuZGxlLCBzaG91bGRXYXJuRGV2KSB7XG4gIHByZWNhY2hlRmliZXJOb2RlKGludGVybmFsSW5zdGFuY2VIYW5kbGUsIGluc3RhbmNlKTsgLy8gVE9ETzogUG9zc2libHkgZGVmZXIgdGhpcyB1bnRpbCB0aGUgY29tbWl0IHBoYXNlIHdoZXJlIGFsbCB0aGUgZXZlbnRzXG4gIC8vIGdldCBhdHRhY2hlZC5cblxuICB1cGRhdGVGaWJlclByb3BzKGluc3RhbmNlLCBwcm9wcyk7XG4gIHZhciBwYXJlbnROYW1lc3BhY2U7XG5cbiAge1xuICAgIHZhciBob3N0Q29udGV4dERldiA9IGhvc3RDb250ZXh0O1xuICAgIHBhcmVudE5hbWVzcGFjZSA9IGhvc3RDb250ZXh0RGV2Lm5hbWVzcGFjZTtcbiAgfSAvLyBUT0RPOiBUZW1wb3JhcnkgaGFjayB0byBjaGVjayBpZiB3ZSdyZSBpbiBhIGNvbmN1cnJlbnQgcm9vdC4gV2UgY2FuIGRlbGV0ZVxuICAvLyB3aGVuIHRoZSBsZWdhY3kgcm9vdCBBUEkgaXMgcmVtb3ZlZC5cblxuXG4gIHZhciBpc0NvbmN1cnJlbnRNb2RlID0gKGludGVybmFsSW5zdGFuY2VIYW5kbGUubW9kZSAmIENvbmN1cnJlbnRNb2RlKSAhPT0gTm9Nb2RlO1xuICByZXR1cm4gZGlmZkh5ZHJhdGVkUHJvcGVydGllcyhpbnN0YW5jZSwgdHlwZSwgcHJvcHMsIHBhcmVudE5hbWVzcGFjZSwgcm9vdENvbnRhaW5lckluc3RhbmNlLCBpc0NvbmN1cnJlbnRNb2RlLCBzaG91bGRXYXJuRGV2KTtcbn1cbmZ1bmN0aW9uIGh5ZHJhdGVUZXh0SW5zdGFuY2UodGV4dEluc3RhbmNlLCB0ZXh0LCBpbnRlcm5hbEluc3RhbmNlSGFuZGxlLCBzaG91bGRXYXJuRGV2KSB7XG4gIHByZWNhY2hlRmliZXJOb2RlKGludGVybmFsSW5zdGFuY2VIYW5kbGUsIHRleHRJbnN0YW5jZSk7IC8vIFRPRE86IFRlbXBvcmFyeSBoYWNrIHRvIGNoZWNrIGlmIHdlJ3JlIGluIGEgY29uY3VycmVudCByb290LiBXZSBjYW4gZGVsZXRlXG4gIC8vIHdoZW4gdGhlIGxlZ2FjeSByb290IEFQSSBpcyByZW1vdmVkLlxuXG4gIHZhciBpc0NvbmN1cnJlbnRNb2RlID0gKGludGVybmFsSW5zdGFuY2VIYW5kbGUubW9kZSAmIENvbmN1cnJlbnRNb2RlKSAhPT0gTm9Nb2RlO1xuICByZXR1cm4gZGlmZkh5ZHJhdGVkVGV4dCh0ZXh0SW5zdGFuY2UsIHRleHQpO1xufVxuZnVuY3Rpb24gaHlkcmF0ZVN1c3BlbnNlSW5zdGFuY2Uoc3VzcGVuc2VJbnN0YW5jZSwgaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSkge1xuICBwcmVjYWNoZUZpYmVyTm9kZShpbnRlcm5hbEluc3RhbmNlSGFuZGxlLCBzdXNwZW5zZUluc3RhbmNlKTtcbn1cbmZ1bmN0aW9uIGdldE5leHRIeWRyYXRhYmxlSW5zdGFuY2VBZnRlclN1c3BlbnNlSW5zdGFuY2Uoc3VzcGVuc2VJbnN0YW5jZSkge1xuICB2YXIgbm9kZSA9IHN1c3BlbnNlSW5zdGFuY2UubmV4dFNpYmxpbmc7IC8vIFNraXAgcGFzdCBhbGwgbm9kZXMgd2l0aGluIHRoaXMgc3VzcGVuc2UgYm91bmRhcnkuXG4gIC8vIFRoZXJlIG1pZ2h0IGJlIG5lc3RlZCBub2RlcyBzbyB3ZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgaG93XG4gIC8vIGRlZXAgd2UgYXJlIGFuZCBvbmx5IGJyZWFrIG91dCB3aGVuIHdlJ3JlIGJhY2sgb24gdG9wLlxuXG4gIHZhciBkZXB0aCA9IDA7XG5cbiAgd2hpbGUgKG5vZGUpIHtcbiAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgICB2YXIgZGF0YSA9IG5vZGUuZGF0YTtcblxuICAgICAgaWYgKGRhdGEgPT09IFNVU1BFTlNFX0VORF9EQVRBKSB7XG4gICAgICAgIGlmIChkZXB0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBnZXROZXh0SHlkcmF0YWJsZVNpYmxpbmcobm9kZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVwdGgtLTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChkYXRhID09PSBTVVNQRU5TRV9TVEFSVF9EQVRBIHx8IGRhdGEgPT09IFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEEgfHwgZGF0YSA9PT0gU1VTUEVOU0VfUEVORElOR19TVEFSVF9EQVRBKSB7XG4gICAgICAgIGRlcHRoKys7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7XG4gIH0gLy8gVE9ETzogV2Fybiwgd2UgZGlkbid0IGZpbmQgdGhlIGVuZCBjb21tZW50IGJvdW5kYXJ5LlxuXG5cbiAgcmV0dXJuIG51bGw7XG59IC8vIFJldHVybnMgdGhlIFN1c3BlbnNlSW5zdGFuY2UgaWYgdGhpcyBub2RlIGlzIGEgZGlyZWN0IGNoaWxkIG9mIGFcbi8vIFN1c3BlbnNlSW5zdGFuY2UuIEkuZS4gaWYgaXRzIHByZXZpb3VzIHNpYmxpbmcgaXMgYSBDb21tZW50IHdpdGhcbi8vIFNVU1BFTlNFX3hfU1RBUlRfREFUQS4gT3RoZXJ3aXNlLCBudWxsLlxuXG5mdW5jdGlvbiBnZXRQYXJlbnRTdXNwZW5zZUluc3RhbmNlKHRhcmdldEluc3RhbmNlKSB7XG4gIHZhciBub2RlID0gdGFyZ2V0SW5zdGFuY2UucHJldmlvdXNTaWJsaW5nOyAvLyBTa2lwIHBhc3QgYWxsIG5vZGVzIHdpdGhpbiB0aGlzIHN1c3BlbnNlIGJvdW5kYXJ5LlxuICAvLyBUaGVyZSBtaWdodCBiZSBuZXN0ZWQgbm9kZXMgc28gd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIGhvd1xuICAvLyBkZWVwIHdlIGFyZSBhbmQgb25seSBicmVhayBvdXQgd2hlbiB3ZSdyZSBiYWNrIG9uIHRvcC5cblxuICB2YXIgZGVwdGggPSAwO1xuXG4gIHdoaWxlIChub2RlKSB7XG4gICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSkge1xuICAgICAgdmFyIGRhdGEgPSBub2RlLmRhdGE7XG5cbiAgICAgIGlmIChkYXRhID09PSBTVVNQRU5TRV9TVEFSVF9EQVRBIHx8IGRhdGEgPT09IFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEEgfHwgZGF0YSA9PT0gU1VTUEVOU0VfUEVORElOR19TVEFSVF9EQVRBKSB7XG4gICAgICAgIGlmIChkZXB0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlcHRoLS07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZGF0YSA9PT0gU1VTUEVOU0VfRU5EX0RBVEEpIHtcbiAgICAgICAgZGVwdGgrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBub2RlID0gbm9kZS5wcmV2aW91c1NpYmxpbmc7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbmZ1bmN0aW9uIGNvbW1pdEh5ZHJhdGVkQ29udGFpbmVyKGNvbnRhaW5lcikge1xuICAvLyBSZXRyeSBpZiBhbnkgZXZlbnQgcmVwbGF5aW5nIHdhcyBibG9ja2VkIG9uIHRoaXMuXG4gIHJldHJ5SWZCbG9ja2VkT24oY29udGFpbmVyKTtcbn1cbmZ1bmN0aW9uIGNvbW1pdEh5ZHJhdGVkU3VzcGVuc2VJbnN0YW5jZShzdXNwZW5zZUluc3RhbmNlKSB7XG4gIC8vIFJldHJ5IGlmIGFueSBldmVudCByZXBsYXlpbmcgd2FzIGJsb2NrZWQgb24gdGhpcy5cbiAgcmV0cnlJZkJsb2NrZWRPbihzdXNwZW5zZUluc3RhbmNlKTtcbn1cbmZ1bmN0aW9uIHNob3VsZERlbGV0ZVVuaHlkcmF0ZWRUYWlsSW5zdGFuY2VzKHBhcmVudFR5cGUpIHtcbiAgcmV0dXJuIHBhcmVudFR5cGUgIT09ICdoZWFkJyAmJiBwYXJlbnRUeXBlICE9PSAnYm9keSc7XG59XG5mdW5jdGlvbiBkaWROb3RNYXRjaEh5ZHJhdGVkQ29udGFpbmVyVGV4dEluc3RhbmNlKHBhcmVudENvbnRhaW5lciwgdGV4dEluc3RhbmNlLCB0ZXh0LCBpc0NvbmN1cnJlbnRNb2RlKSB7XG4gIHZhciBzaG91bGRXYXJuRGV2ID0gdHJ1ZTtcbiAgY2hlY2tGb3JVbm1hdGNoZWRUZXh0KHRleHRJbnN0YW5jZS5ub2RlVmFsdWUsIHRleHQsIGlzQ29uY3VycmVudE1vZGUsIHNob3VsZFdhcm5EZXYpO1xufVxuZnVuY3Rpb24gZGlkTm90TWF0Y2hIeWRyYXRlZFRleHRJbnN0YW5jZShwYXJlbnRUeXBlLCBwYXJlbnRQcm9wcywgcGFyZW50SW5zdGFuY2UsIHRleHRJbnN0YW5jZSwgdGV4dCwgaXNDb25jdXJyZW50TW9kZSkge1xuICBpZiAocGFyZW50UHJvcHNbU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkckMV0gIT09IHRydWUpIHtcbiAgICB2YXIgc2hvdWxkV2FybkRldiA9IHRydWU7XG4gICAgY2hlY2tGb3JVbm1hdGNoZWRUZXh0KHRleHRJbnN0YW5jZS5ub2RlVmFsdWUsIHRleHQsIGlzQ29uY3VycmVudE1vZGUsIHNob3VsZFdhcm5EZXYpO1xuICB9XG59XG5mdW5jdGlvbiBkaWROb3RIeWRyYXRlSW5zdGFuY2VXaXRoaW5Db250YWluZXIocGFyZW50Q29udGFpbmVyLCBpbnN0YW5jZSkge1xuICB7XG4gICAgaWYgKGluc3RhbmNlLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREUpIHtcbiAgICAgIHdhcm5Gb3JEZWxldGVkSHlkcmF0YWJsZUVsZW1lbnQocGFyZW50Q29udGFpbmVyLCBpbnN0YW5jZSk7XG4gICAgfSBlbHNlIGlmIChpbnN0YW5jZS5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSA7IGVsc2Uge1xuICAgICAgd2FybkZvckRlbGV0ZWRIeWRyYXRhYmxlVGV4dChwYXJlbnRDb250YWluZXIsIGluc3RhbmNlKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGRpZE5vdEh5ZHJhdGVJbnN0YW5jZVdpdGhpblN1c3BlbnNlSW5zdGFuY2UocGFyZW50SW5zdGFuY2UsIGluc3RhbmNlKSB7XG4gIHtcbiAgICAvLyAkRmxvd0ZpeE1lOiBPbmx5IEVsZW1lbnQgb3IgRG9jdW1lbnQgY2FuIGJlIHBhcmVudCBub2Rlcy5cbiAgICB2YXIgcGFyZW50Tm9kZSA9IHBhcmVudEluc3RhbmNlLnBhcmVudE5vZGU7XG5cbiAgICBpZiAocGFyZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgaWYgKGluc3RhbmNlLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREUpIHtcbiAgICAgICAgd2FybkZvckRlbGV0ZWRIeWRyYXRhYmxlRWxlbWVudChwYXJlbnROb2RlLCBpbnN0YW5jZSk7XG4gICAgICB9IGVsc2UgaWYgKGluc3RhbmNlLm5vZGVUeXBlID09PSBDT01NRU5UX05PREUpIDsgZWxzZSB7XG4gICAgICAgIHdhcm5Gb3JEZWxldGVkSHlkcmF0YWJsZVRleHQocGFyZW50Tm9kZSwgaW5zdGFuY2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZGlkTm90SHlkcmF0ZUluc3RhbmNlKHBhcmVudFR5cGUsIHBhcmVudFByb3BzLCBwYXJlbnRJbnN0YW5jZSwgaW5zdGFuY2UpIHtcbiAgaWYgKCBwYXJlbnRQcm9wc1tTVVBQUkVTU19IWURSQVRJT05fV0FSTklORyQxXSAhPT0gdHJ1ZSkge1xuICAgIGlmIChpbnN0YW5jZS5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFKSB7XG4gICAgICB3YXJuRm9yRGVsZXRlZEh5ZHJhdGFibGVFbGVtZW50KHBhcmVudEluc3RhbmNlLCBpbnN0YW5jZSk7XG4gICAgfSBlbHNlIGlmIChpbnN0YW5jZS5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSA7IGVsc2Uge1xuICAgICAgd2FybkZvckRlbGV0ZWRIeWRyYXRhYmxlVGV4dChwYXJlbnRJbnN0YW5jZSwgaW5zdGFuY2UpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZGlkTm90RmluZEh5ZHJhdGFibGVJbnN0YW5jZVdpdGhpbkNvbnRhaW5lcihwYXJlbnRDb250YWluZXIsIHR5cGUsIHByb3BzKSB7XG4gIHtcbiAgICB3YXJuRm9ySW5zZXJ0ZWRIeWRyYXRlZEVsZW1lbnQocGFyZW50Q29udGFpbmVyLCB0eXBlKTtcbiAgfVxufVxuZnVuY3Rpb24gZGlkTm90RmluZEh5ZHJhdGFibGVUZXh0SW5zdGFuY2VXaXRoaW5Db250YWluZXIocGFyZW50Q29udGFpbmVyLCB0ZXh0KSB7XG4gIHtcbiAgICB3YXJuRm9ySW5zZXJ0ZWRIeWRyYXRlZFRleHQocGFyZW50Q29udGFpbmVyLCB0ZXh0KTtcbiAgfVxufVxuZnVuY3Rpb24gZGlkTm90RmluZEh5ZHJhdGFibGVJbnN0YW5jZVdpdGhpblN1c3BlbnNlSW5zdGFuY2UocGFyZW50SW5zdGFuY2UsIHR5cGUsIHByb3BzKSB7XG4gIHtcbiAgICAvLyAkRmxvd0ZpeE1lOiBPbmx5IEVsZW1lbnQgb3IgRG9jdW1lbnQgY2FuIGJlIHBhcmVudCBub2Rlcy5cbiAgICB2YXIgcGFyZW50Tm9kZSA9IHBhcmVudEluc3RhbmNlLnBhcmVudE5vZGU7XG4gICAgaWYgKHBhcmVudE5vZGUgIT09IG51bGwpIHdhcm5Gb3JJbnNlcnRlZEh5ZHJhdGVkRWxlbWVudChwYXJlbnROb2RlLCB0eXBlKTtcbiAgfVxufVxuZnVuY3Rpb24gZGlkTm90RmluZEh5ZHJhdGFibGVUZXh0SW5zdGFuY2VXaXRoaW5TdXNwZW5zZUluc3RhbmNlKHBhcmVudEluc3RhbmNlLCB0ZXh0KSB7XG4gIHtcbiAgICAvLyAkRmxvd0ZpeE1lOiBPbmx5IEVsZW1lbnQgb3IgRG9jdW1lbnQgY2FuIGJlIHBhcmVudCBub2Rlcy5cbiAgICB2YXIgcGFyZW50Tm9kZSA9IHBhcmVudEluc3RhbmNlLnBhcmVudE5vZGU7XG4gICAgaWYgKHBhcmVudE5vZGUgIT09IG51bGwpIHdhcm5Gb3JJbnNlcnRlZEh5ZHJhdGVkVGV4dChwYXJlbnROb2RlLCB0ZXh0KTtcbiAgfVxufVxuZnVuY3Rpb24gZGlkTm90RmluZEh5ZHJhdGFibGVJbnN0YW5jZShwYXJlbnRUeXBlLCBwYXJlbnRQcm9wcywgcGFyZW50SW5zdGFuY2UsIHR5cGUsIHByb3BzKSB7XG4gIGlmICggcGFyZW50UHJvcHNbU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkckMV0gIT09IHRydWUpIHtcbiAgICB3YXJuRm9ySW5zZXJ0ZWRIeWRyYXRlZEVsZW1lbnQocGFyZW50SW5zdGFuY2UsIHR5cGUpO1xuICB9XG59XG5mdW5jdGlvbiBkaWROb3RGaW5kSHlkcmF0YWJsZVRleHRJbnN0YW5jZShwYXJlbnRUeXBlLCBwYXJlbnRQcm9wcywgcGFyZW50SW5zdGFuY2UsIHRleHQpIHtcbiAgaWYgKCBwYXJlbnRQcm9wc1tTVVBQUkVTU19IWURSQVRJT05fV0FSTklORyQxXSAhPT0gdHJ1ZSkge1xuICAgIHdhcm5Gb3JJbnNlcnRlZEh5ZHJhdGVkVGV4dChwYXJlbnRJbnN0YW5jZSwgdGV4dCk7XG4gIH1cbn1cbmZ1bmN0aW9uIGRpZE5vdEZpbmRIeWRyYXRhYmxlU3VzcGVuc2VJbnN0YW5jZShwYXJlbnRUeXBlLCBwYXJlbnRQcm9wcywgcGFyZW50SW5zdGFuY2UpIHtcbiAgaWYgKCBwYXJlbnRQcm9wc1tTVVBQUkVTU19IWURSQVRJT05fV0FSTklORyQxXSAhPT0gdHJ1ZSkgO1xufVxuZnVuY3Rpb24gZXJyb3JIeWRyYXRpbmdDb250YWluZXIocGFyZW50Q29udGFpbmVyKSB7XG4gIHtcbiAgICAvLyBUT0RPOiBUaGlzIGdldHMgbG9nZ2VkIGJ5IG9uUmVjb3ZlcmFibGVFcnJvciwgdG9vLCBzbyB3ZSBzaG91bGQgYmVcbiAgICAvLyBhYmxlIHRvIHJlbW92ZSBpdC5cbiAgICBlcnJvcignQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIGh5ZHJhdGlvbi4gVGhlIHNlcnZlciBIVE1MIHdhcyByZXBsYWNlZCB3aXRoIGNsaWVudCBjb250ZW50IGluIDwlcz4uJywgcGFyZW50Q29udGFpbmVyLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpO1xuICB9XG59XG5mdW5jdGlvbiBwcmVwYXJlUG9ydGFsTW91bnQocG9ydGFsSW5zdGFuY2UpIHtcbiAgbGlzdGVuVG9BbGxTdXBwb3J0ZWRFdmVudHMocG9ydGFsSW5zdGFuY2UpO1xufVxuXG52YXIgcmFuZG9tS2V5ID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMik7XG52YXIgaW50ZXJuYWxJbnN0YW5jZUtleSA9ICdfX3JlYWN0RmliZXIkJyArIHJhbmRvbUtleTtcbnZhciBpbnRlcm5hbFByb3BzS2V5ID0gJ19fcmVhY3RQcm9wcyQnICsgcmFuZG9tS2V5O1xudmFyIGludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXkgPSAnX19yZWFjdENvbnRhaW5lciQnICsgcmFuZG9tS2V5O1xudmFyIGludGVybmFsRXZlbnRIYW5kbGVyc0tleSA9ICdfX3JlYWN0RXZlbnRzJCcgKyByYW5kb21LZXk7XG52YXIgaW50ZXJuYWxFdmVudEhhbmRsZXJMaXN0ZW5lcnNLZXkgPSAnX19yZWFjdExpc3RlbmVycyQnICsgcmFuZG9tS2V5O1xudmFyIGludGVybmFsRXZlbnRIYW5kbGVzU2V0S2V5ID0gJ19fcmVhY3RIYW5kbGVzJCcgKyByYW5kb21LZXk7XG5mdW5jdGlvbiBkZXRhY2hEZWxldGVkSW5zdGFuY2Uobm9kZSkge1xuICAvLyBUT0RPOiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uIGhvc3QgY29tcG9uZW50cy4gSSBkb24ndCB0aGluayBhbGwgb2ZcbiAgLy8gdGhlc2UgZmllbGRzIGFyZSByZWxldmFudC5cbiAgZGVsZXRlIG5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV07XG4gIGRlbGV0ZSBub2RlW2ludGVybmFsUHJvcHNLZXldO1xuICBkZWxldGUgbm9kZVtpbnRlcm5hbEV2ZW50SGFuZGxlcnNLZXldO1xuICBkZWxldGUgbm9kZVtpbnRlcm5hbEV2ZW50SGFuZGxlckxpc3RlbmVyc0tleV07XG4gIGRlbGV0ZSBub2RlW2ludGVybmFsRXZlbnRIYW5kbGVzU2V0S2V5XTtcbn1cbmZ1bmN0aW9uIHByZWNhY2hlRmliZXJOb2RlKGhvc3RJbnN0LCBub2RlKSB7XG4gIG5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV0gPSBob3N0SW5zdDtcbn1cbmZ1bmN0aW9uIG1hcmtDb250YWluZXJBc1Jvb3QoaG9zdFJvb3QsIG5vZGUpIHtcbiAgbm9kZVtpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5XSA9IGhvc3RSb290O1xufVxuZnVuY3Rpb24gdW5tYXJrQ29udGFpbmVyQXNSb290KG5vZGUpIHtcbiAgbm9kZVtpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5XSA9IG51bGw7XG59XG5mdW5jdGlvbiBpc0NvbnRhaW5lck1hcmtlZEFzUm9vdChub2RlKSB7XG4gIHJldHVybiAhIW5vZGVbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV07XG59IC8vIEdpdmVuIGEgRE9NIG5vZGUsIHJldHVybiB0aGUgY2xvc2VzdCBIb3N0Q29tcG9uZW50IG9yIEhvc3RUZXh0IGZpYmVyIGFuY2VzdG9yLlxuLy8gSWYgdGhlIHRhcmdldCBub2RlIGlzIHBhcnQgb2YgYSBoeWRyYXRlZCBvciBub3QgeWV0IHJlbmRlcmVkIHN1YnRyZWUsIHRoZW5cbi8vIHRoaXMgbWF5IGFsc28gcmV0dXJuIGEgU3VzcGVuc2VDb21wb25lbnQgb3IgSG9zdFJvb3QgdG8gaW5kaWNhdGUgdGhhdC5cbi8vIENvbmNlcHR1YWxseSB0aGUgSG9zdFJvb3QgZmliZXIgaXMgYSBjaGlsZCBvZiB0aGUgQ29udGFpbmVyIG5vZGUuIFNvIGlmIHlvdVxuLy8gcGFzcyB0aGUgQ29udGFpbmVyIG5vZGUgYXMgdGhlIHRhcmdldE5vZGUsIHlvdSB3aWxsIG5vdCBhY3R1YWxseSBnZXQgdGhlXG4vLyBIb3N0Um9vdCBiYWNrLiBUbyBnZXQgdG8gdGhlIEhvc3RSb290LCB5b3UgbmVlZCB0byBwYXNzIGEgY2hpbGQgb2YgaXQuXG4vLyBUaGUgc2FtZSB0aGluZyBhcHBsaWVzIHRvIFN1c3BlbnNlIGJvdW5kYXJpZXMuXG5cbmZ1bmN0aW9uIGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKHRhcmdldE5vZGUpIHtcbiAgdmFyIHRhcmdldEluc3QgPSB0YXJnZXROb2RlW2ludGVybmFsSW5zdGFuY2VLZXldO1xuXG4gIGlmICh0YXJnZXRJbnN0KSB7XG4gICAgLy8gRG9uJ3QgcmV0dXJuIEhvc3RSb290IG9yIFN1c3BlbnNlQ29tcG9uZW50IGhlcmUuXG4gICAgcmV0dXJuIHRhcmdldEluc3Q7XG4gIH0gLy8gSWYgdGhlIGRpcmVjdCBldmVudCB0YXJnZXQgaXNuJ3QgYSBSZWFjdCBvd25lZCBET00gbm9kZSwgd2UgbmVlZCB0byBsb29rXG4gIC8vIHRvIHNlZSBpZiBvbmUgb2YgaXRzIHBhcmVudHMgaXMgYSBSZWFjdCBvd25lZCBET00gbm9kZS5cblxuXG4gIHZhciBwYXJlbnROb2RlID0gdGFyZ2V0Tm9kZS5wYXJlbnROb2RlO1xuXG4gIHdoaWxlIChwYXJlbnROb2RlKSB7XG4gICAgLy8gV2UnbGwgY2hlY2sgaWYgdGhpcyBpcyBhIGNvbnRhaW5lciByb290IHRoYXQgY291bGQgaW5jbHVkZVxuICAgIC8vIFJlYWN0IG5vZGVzIGluIHRoZSBmdXR1cmUuIFdlIG5lZWQgdG8gY2hlY2sgdGhpcyBmaXJzdCBiZWNhdXNlXG4gICAgLy8gaWYgd2UncmUgYSBjaGlsZCBvZiBhIGRlaHlkcmF0ZWQgY29udGFpbmVyLCB3ZSBuZWVkIHRvIGZpcnN0XG4gICAgLy8gZmluZCB0aGF0IGlubmVyIGNvbnRhaW5lciBiZWZvcmUgbW92aW5nIG9uIHRvIGZpbmRpbmcgdGhlIHBhcmVudFxuICAgIC8vIGluc3RhbmNlLiBOb3RlIHRoYXQgd2UgZG9uJ3QgY2hlY2sgdGhpcyBmaWVsZCBvbiAgdGhlIHRhcmdldE5vZGVcbiAgICAvLyBpdHNlbGYgYmVjYXVzZSB0aGUgZmliZXJzIGFyZSBjb25jZXB0dWFsbHkgYmV0d2VlbiB0aGUgY29udGFpbmVyXG4gICAgLy8gbm9kZSBhbmQgdGhlIGZpcnN0IGNoaWxkLiBJdCBpc24ndCBzdXJyb3VuZGluZyB0aGUgY29udGFpbmVyIG5vZGUuXG4gICAgLy8gSWYgaXQncyBub3QgYSBjb250YWluZXIsIHdlIGNoZWNrIGlmIGl0J3MgYW4gaW5zdGFuY2UuXG4gICAgdGFyZ2V0SW5zdCA9IHBhcmVudE5vZGVbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV0gfHwgcGFyZW50Tm9kZVtpbnRlcm5hbEluc3RhbmNlS2V5XTtcblxuICAgIGlmICh0YXJnZXRJbnN0KSB7XG4gICAgICAvLyBTaW5jZSB0aGlzIHdhc24ndCB0aGUgZGlyZWN0IHRhcmdldCBvZiB0aGUgZXZlbnQsIHdlIG1pZ2h0IGhhdmVcbiAgICAgIC8vIHN0ZXBwZWQgcGFzdCBkZWh5ZHJhdGVkIERPTSBub2RlcyB0byBnZXQgaGVyZS4gSG93ZXZlciB0aGV5IGNvdWxkXG4gICAgICAvLyBhbHNvIGhhdmUgYmVlbiBub24tUmVhY3Qgbm9kZXMuIFdlIG5lZWQgdG8gYW5zd2VyIHdoaWNoIG9uZS5cbiAgICAgIC8vIElmIHdlIHRoZSBpbnN0YW5jZSBkb2Vzbid0IGhhdmUgYW55IGNoaWxkcmVuLCB0aGVuIHRoZXJlIGNhbid0IGJlXG4gICAgICAvLyBhIG5lc3RlZCBzdXNwZW5zZSBib3VuZGFyeSB3aXRoaW4gaXQuIFNvIHdlIGNhbiB1c2UgdGhpcyBhcyBhIGZhc3RcbiAgICAgIC8vIGJhaWxvdXQuIE1vc3Qgb2YgdGhlIHRpbWUsIHdoZW4gcGVvcGxlIGFkZCBub24tUmVhY3QgY2hpbGRyZW4gdG9cbiAgICAgIC8vIHRoZSB0cmVlLCBpdCBpcyB1c2luZyBhIHJlZiB0byBhIGNoaWxkLWxlc3MgRE9NIG5vZGUuXG4gICAgICAvLyBOb3JtYWxseSB3ZSdkIG9ubHkgbmVlZCB0byBjaGVjayBvbmUgb2YgdGhlIGZpYmVycyBiZWNhdXNlIGlmIGl0XG4gICAgICAvLyBoYXMgZXZlciBnb25lIGZyb20gaGF2aW5nIGNoaWxkcmVuIHRvIGRlbGV0aW5nIHRoZW0gb3IgdmljZSB2ZXJzYVxuICAgICAgLy8gaXQgd291bGQgaGF2ZSBkZWxldGVkIHRoZSBkZWh5ZHJhdGVkIGJvdW5kYXJ5IG5lc3RlZCBpbnNpZGUgYWxyZWFkeS5cbiAgICAgIC8vIEhvd2V2ZXIsIHNpbmNlIHRoZSBIb3N0Um9vdCBzdGFydHMgb3V0IHdpdGggYW4gYWx0ZXJuYXRlIGl0IG1pZ2h0XG4gICAgICAvLyBoYXZlIG9uZSBvbiB0aGUgYWx0ZXJuYXRlIHNvIHdlIG5lZWQgdG8gY2hlY2sgaW4gY2FzZSB0aGlzIHdhcyBhXG4gICAgICAvLyByb290LlxuICAgICAgdmFyIGFsdGVybmF0ZSA9IHRhcmdldEluc3QuYWx0ZXJuYXRlO1xuXG4gICAgICBpZiAodGFyZ2V0SW5zdC5jaGlsZCAhPT0gbnVsbCB8fCBhbHRlcm5hdGUgIT09IG51bGwgJiYgYWx0ZXJuYXRlLmNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgIC8vIE5leHQgd2UgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZSBub2RlIHRoYXQgc2tpcHBlZCBwYXN0IGlzXG4gICAgICAgIC8vIG5lc3RlZCB3aXRoaW4gYSBkZWh5ZHJhdGVkIGJvdW5kYXJ5IGFuZCBpZiBzbywgd2hpY2ggb25lLlxuICAgICAgICB2YXIgc3VzcGVuc2VJbnN0YW5jZSA9IGdldFBhcmVudFN1c3BlbnNlSW5zdGFuY2UodGFyZ2V0Tm9kZSk7XG5cbiAgICAgICAgd2hpbGUgKHN1c3BlbnNlSW5zdGFuY2UgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBXZSBmb3VuZCBhIHN1c3BlbnNlIGluc3RhbmNlLiBUaGF0IG1lYW5zIHRoYXQgd2UgaGF2ZW4ndFxuICAgICAgICAgIC8vIGh5ZHJhdGVkIGl0IHlldC4gRXZlbiB0aG91Z2ggd2UgbGVhdmUgdGhlIGNvbW1lbnRzIGluIHRoZVxuICAgICAgICAgIC8vIERPTSBhZnRlciBoeWRyYXRpbmcsIGFuZCB0aGVyZSBhcmUgYm91bmRhcmllcyBpbiB0aGUgRE9NXG4gICAgICAgICAgLy8gdGhhdCBjb3VsZCBhbHJlYWR5IGJlIGh5ZHJhdGVkLCB3ZSB3b3VsZG4ndCBoYXZlIGZvdW5kIHRoZW1cbiAgICAgICAgICAvLyB0aHJvdWdoIHRoaXMgcGFzcyBzaW5jZSBpZiB0aGUgdGFyZ2V0IGlzIGh5ZHJhdGVkIGl0IHdvdWxkXG4gICAgICAgICAgLy8gaGF2ZSBoYWQgYW4gaW50ZXJuYWxJbnN0YW5jZUtleSBvbiBpdC5cbiAgICAgICAgICAvLyBMZXQncyBnZXQgdGhlIGZpYmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgU3VzcGVuc2VDb21wb25lbnRcbiAgICAgICAgICAvLyBhcyB0aGUgZGVlcGVzdCBpbnN0YW5jZS5cbiAgICAgICAgICB2YXIgdGFyZ2V0U3VzcGVuc2VJbnN0ID0gc3VzcGVuc2VJbnN0YW5jZVtpbnRlcm5hbEluc3RhbmNlS2V5XTtcblxuICAgICAgICAgIGlmICh0YXJnZXRTdXNwZW5zZUluc3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXRTdXNwZW5zZUluc3Q7XG4gICAgICAgICAgfSAvLyBJZiB3ZSBkb24ndCBmaW5kIGEgRmliZXIgb24gdGhlIGNvbW1lbnQsIGl0IG1pZ2h0IGJlIGJlY2F1c2VcbiAgICAgICAgICAvLyB3ZSBoYXZlbid0IGdvdHRlbiB0byBoeWRyYXRlIGl0IHlldC4gVGhlcmUgbWlnaHQgc3RpbGwgYmUgYVxuICAgICAgICAgIC8vIHBhcmVudCBib3VuZGFyeSB0aGF0IGhhc24ndCBhYm92ZSB0aGlzIG9uZSBzbyB3ZSBuZWVkIHRvIGZpbmRcbiAgICAgICAgICAvLyB0aGUgb3V0ZXIgbW9zdCB0aGF0IGlzIGtub3duLlxuXG5cbiAgICAgICAgICBzdXNwZW5zZUluc3RhbmNlID0gZ2V0UGFyZW50U3VzcGVuc2VJbnN0YW5jZShzdXNwZW5zZUluc3RhbmNlKTsgLy8gSWYgd2UgZG9uJ3QgZmluZCBvbmUsIHRoZW4gdGhhdCBzaG91bGQgbWVhbiB0aGF0IHRoZSBwYXJlbnRcbiAgICAgICAgICAvLyBob3N0IGNvbXBvbmVudCBhbHNvIGhhc24ndCBoeWRyYXRlZCB5ZXQuIFdlIGNhbiByZXR1cm4gaXRcbiAgICAgICAgICAvLyBiZWxvdyBzaW5jZSBpdCB3aWxsIGJhaWwgb3V0IG9uIHRoZSBpc01vdW50ZWQgY2hlY2sgbGF0ZXIuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRhcmdldEluc3Q7XG4gICAgfVxuXG4gICAgdGFyZ2V0Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgcGFyZW50Tm9kZSA9IHRhcmdldE5vZGUucGFyZW50Tm9kZTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuLyoqXG4gKiBHaXZlbiBhIERPTSBub2RlLCByZXR1cm4gdGhlIFJlYWN0RE9NQ29tcG9uZW50IG9yIFJlYWN0RE9NVGV4dENvbXBvbmVudFxuICogaW5zdGFuY2UsIG9yIG51bGwgaWYgdGhlIG5vZGUgd2FzIG5vdCByZW5kZXJlZCBieSB0aGlzIFJlYWN0LlxuICovXG5cbmZ1bmN0aW9uIGdldEluc3RhbmNlRnJvbU5vZGUobm9kZSkge1xuICB2YXIgaW5zdCA9IG5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV0gfHwgbm9kZVtpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5XTtcblxuICBpZiAoaW5zdCkge1xuICAgIGlmIChpbnN0LnRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCBpbnN0LnRhZyA9PT0gSG9zdFRleHQgfHwgaW5zdC50YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50IHx8IGluc3QudGFnID09PSBIb3N0Um9vdCkge1xuICAgICAgcmV0dXJuIGluc3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuLyoqXG4gKiBHaXZlbiBhIFJlYWN0RE9NQ29tcG9uZW50IG9yIFJlYWN0RE9NVGV4dENvbXBvbmVudCwgcmV0dXJuIHRoZSBjb3JyZXNwb25kaW5nXG4gKiBET00gbm9kZS5cbiAqL1xuXG5mdW5jdGlvbiBnZXROb2RlRnJvbUluc3RhbmNlKGluc3QpIHtcbiAgaWYgKGluc3QudGFnID09PSBIb3N0Q29tcG9uZW50IHx8IGluc3QudGFnID09PSBIb3N0VGV4dCkge1xuICAgIC8vIEluIEZpYmVyIHRoaXMsIGlzIGp1c3QgdGhlIHN0YXRlIG5vZGUgcmlnaHQgbm93LiBXZSBhc3N1bWUgaXQgd2lsbCBiZVxuICAgIC8vIGEgaG9zdCBjb21wb25lbnQgb3IgaG9zdCB0ZXh0LlxuICAgIHJldHVybiBpbnN0LnN0YXRlTm9kZTtcbiAgfSAvLyBXaXRob3V0IHRoaXMgZmlyc3QgaW52YXJpYW50LCBwYXNzaW5nIGEgbm9uLURPTS1jb21wb25lbnQgdHJpZ2dlcnMgdGhlIG5leHRcbiAgLy8gaW52YXJpYW50IGZvciBhIG1pc3NpbmcgcGFyZW50LCB3aGljaCBpcyBzdXBlciBjb25mdXNpbmcuXG5cblxuICB0aHJvdyBuZXcgRXJyb3IoJ2dldE5vZGVGcm9tSW5zdGFuY2U6IEludmFsaWQgYXJndW1lbnQuJyk7XG59XG5mdW5jdGlvbiBnZXRGaWJlckN1cnJlbnRQcm9wc0Zyb21Ob2RlKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGVbaW50ZXJuYWxQcm9wc0tleV0gfHwgbnVsbDtcbn1cbmZ1bmN0aW9uIHVwZGF0ZUZpYmVyUHJvcHMobm9kZSwgcHJvcHMpIHtcbiAgbm9kZVtpbnRlcm5hbFByb3BzS2V5XSA9IHByb3BzO1xufVxuZnVuY3Rpb24gZ2V0RXZlbnRMaXN0ZW5lclNldChub2RlKSB7XG4gIHZhciBlbGVtZW50TGlzdGVuZXJTZXQgPSBub2RlW2ludGVybmFsRXZlbnRIYW5kbGVyc0tleV07XG5cbiAgaWYgKGVsZW1lbnRMaXN0ZW5lclNldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZWxlbWVudExpc3RlbmVyU2V0ID0gbm9kZVtpbnRlcm5hbEV2ZW50SGFuZGxlcnNLZXldID0gbmV3IFNldCgpO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRMaXN0ZW5lclNldDtcbn1cblxudmFyIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xudmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG5cbmZ1bmN0aW9uIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgICAgIHZhciBzdGFjayA9IGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihlbGVtZW50LnR5cGUsIGVsZW1lbnQuX3NvdXJjZSwgb3duZXIgPyBvd25lci50eXBlIDogbnVsbCk7XG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEuc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShudWxsKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY2hlY2tQcm9wVHlwZXModHlwZVNwZWNzLCB2YWx1ZXMsIGxvY2F0aW9uLCBjb21wb25lbnROYW1lLCBlbGVtZW50KSB7XG4gIHtcbiAgICAvLyAkRmxvd0ZpeE1lIFRoaXMgaXMgb2theSBidXQgRmxvdyBkb2Vzbid0IGtub3cgaXQuXG4gICAgdmFyIGhhcyA9IEZ1bmN0aW9uLmNhbGwuYmluZChoYXNPd25Qcm9wZXJ0eSk7XG5cbiAgICBmb3IgKHZhciB0eXBlU3BlY05hbWUgaW4gdHlwZVNwZWNzKSB7XG4gICAgICBpZiAoaGFzKHR5cGVTcGVjcywgdHlwZVNwZWNOYW1lKSkge1xuICAgICAgICB2YXIgZXJyb3IkMSA9IHZvaWQgMDsgLy8gUHJvcCB0eXBlIHZhbGlkYXRpb24gbWF5IHRocm93LiBJbiBjYXNlIHRoZXkgZG8sIHdlIGRvbid0IHdhbnQgdG9cbiAgICAgICAgLy8gZmFpbCB0aGUgcmVuZGVyIHBoYXNlIHdoZXJlIGl0IGRpZG4ndCBmYWlsIGJlZm9yZS4gU28gd2UgbG9nIGl0LlxuICAgICAgICAvLyBBZnRlciB0aGVzZSBoYXZlIGJlZW4gY2xlYW5lZCB1cCwgd2UnbGwgbGV0IHRoZW0gdGhyb3cuXG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgYW4gaW52YXJpYW50IHRoYXQgZ2V0cyBjYXVnaHQuIEl0J3MgdGhlIHNhbWVcbiAgICAgICAgICAvLyBiZWhhdmlvciBhcyB3aXRob3V0IHRoaXMgc3RhdGVtZW50IGV4Y2VwdCB3aXRoIGEgYmV0dGVyIG1lc3NhZ2UuXG4gICAgICAgICAgaWYgKHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3Byb2QtZXJyb3ItY29kZXNcbiAgICAgICAgICAgIHZhciBlcnIgPSBFcnJvcigoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6ICcgKyBsb2NhdGlvbiArICcgdHlwZSBgJyArIHR5cGVTcGVjTmFtZSArICdgIGlzIGludmFsaWQ7ICcgKyAnaXQgbXVzdCBiZSBhIGZ1bmN0aW9uLCB1c3VhbGx5IGZyb20gdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLCBidXQgcmVjZWl2ZWQgYCcgKyB0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gKyAnYC4nICsgJ1RoaXMgb2Z0ZW4gaGFwcGVucyBiZWNhdXNlIG9mIHR5cG9zIHN1Y2ggYXMgYFByb3BUeXBlcy5mdW5jdGlvbmAgaW5zdGVhZCBvZiBgUHJvcFR5cGVzLmZ1bmNgLicpO1xuICAgICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXJyb3IkMSA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgJ1NFQ1JFVF9ET19OT1RfUEFTU19USElTX09SX1lPVV9XSUxMX0JFX0ZJUkVEJyk7XG4gICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgZXJyb3IkMSA9IGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVycm9yJDEgJiYgIShlcnJvciQxIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCk7XG5cbiAgICAgICAgICBlcnJvcignJXM6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAlcycgKyAnIGAlc2AgaXMgaW52YWxpZDsgdGhlIHR5cGUgY2hlY2tlciAnICsgJ2Z1bmN0aW9uIG11c3QgcmV0dXJuIGBudWxsYCBvciBhbiBgRXJyb3JgIGJ1dCByZXR1cm5lZCBhICVzLiAnICsgJ1lvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0byB0aGUgdHlwZSBjaGVja2VyICcgKyAnY3JlYXRvciAoYXJyYXlPZiwgaW5zdGFuY2VPZiwgb2JqZWN0T2YsIG9uZU9mLCBvbmVPZlR5cGUsIGFuZCAnICsgJ3NoYXBlIGFsbCByZXF1aXJlIGFuIGFyZ3VtZW50KS4nLCBjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycsIGxvY2F0aW9uLCB0eXBlU3BlY05hbWUsIHR5cGVvZiBlcnJvciQxKTtcblxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvciAmJiAhKGVycm9yJDEubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XG4gICAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cbiAgICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IkMS5tZXNzYWdlXSA9IHRydWU7XG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCk7XG5cbiAgICAgICAgICBlcnJvcignRmFpbGVkICVzIHR5cGU6ICVzJywgbG9jYXRpb24sIGVycm9yJDEubWVzc2FnZSk7XG5cbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgdmFsdWVTdGFjayA9IFtdO1xudmFyIGZpYmVyU3RhY2s7XG5cbntcbiAgZmliZXJTdGFjayA9IFtdO1xufVxuXG52YXIgaW5kZXggPSAtMTtcblxuZnVuY3Rpb24gY3JlYXRlQ3Vyc29yKGRlZmF1bHRWYWx1ZSkge1xuICByZXR1cm4ge1xuICAgIGN1cnJlbnQ6IGRlZmF1bHRWYWx1ZVxuICB9O1xufVxuXG5mdW5jdGlvbiBwb3AoY3Vyc29yLCBmaWJlcikge1xuICBpZiAoaW5kZXggPCAwKSB7XG4gICAge1xuICAgICAgZXJyb3IoJ1VuZXhwZWN0ZWQgcG9wLicpO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHtcbiAgICBpZiAoZmliZXIgIT09IGZpYmVyU3RhY2tbaW5kZXhdKSB7XG4gICAgICBlcnJvcignVW5leHBlY3RlZCBGaWJlciBwb3BwZWQuJyk7XG4gICAgfVxuICB9XG5cbiAgY3Vyc29yLmN1cnJlbnQgPSB2YWx1ZVN0YWNrW2luZGV4XTtcbiAgdmFsdWVTdGFja1tpbmRleF0gPSBudWxsO1xuXG4gIHtcbiAgICBmaWJlclN0YWNrW2luZGV4XSA9IG51bGw7XG4gIH1cblxuICBpbmRleC0tO1xufVxuXG5mdW5jdGlvbiBwdXNoKGN1cnNvciwgdmFsdWUsIGZpYmVyKSB7XG4gIGluZGV4Kys7XG4gIHZhbHVlU3RhY2tbaW5kZXhdID0gY3Vyc29yLmN1cnJlbnQ7XG5cbiAge1xuICAgIGZpYmVyU3RhY2tbaW5kZXhdID0gZmliZXI7XG4gIH1cblxuICBjdXJzb3IuY3VycmVudCA9IHZhbHVlO1xufVxuXG52YXIgd2FybmVkQWJvdXRNaXNzaW5nR2V0Q2hpbGRDb250ZXh0O1xuXG57XG4gIHdhcm5lZEFib3V0TWlzc2luZ0dldENoaWxkQ29udGV4dCA9IHt9O1xufVxuXG52YXIgZW1wdHlDb250ZXh0T2JqZWN0ID0ge307XG5cbntcbiAgT2JqZWN0LmZyZWV6ZShlbXB0eUNvbnRleHRPYmplY3QpO1xufSAvLyBBIGN1cnNvciB0byB0aGUgY3VycmVudCBtZXJnZWQgY29udGV4dCBvYmplY3Qgb24gdGhlIHN0YWNrLlxuXG5cbnZhciBjb250ZXh0U3RhY2tDdXJzb3IgPSBjcmVhdGVDdXJzb3IoZW1wdHlDb250ZXh0T2JqZWN0KTsgLy8gQSBjdXJzb3IgdG8gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgY29udGV4dCBoYXMgY2hhbmdlZC5cblxudmFyIGRpZFBlcmZvcm1Xb3JrU3RhY2tDdXJzb3IgPSBjcmVhdGVDdXJzb3IoZmFsc2UpOyAvLyBLZWVwIHRyYWNrIG9mIHRoZSBwcmV2aW91cyBjb250ZXh0IG9iamVjdCB0aGF0IHdhcyBvbiB0aGUgc3RhY2suXG4vLyBXZSB1c2UgdGhpcyB0byBnZXQgYWNjZXNzIHRvIHRoZSBwYXJlbnQgY29udGV4dCBhZnRlciB3ZSBoYXZlIGFscmVhZHlcbi8vIHB1c2hlZCB0aGUgbmV4dCBjb250ZXh0IHByb3ZpZGVyLCBhbmQgbm93IG5lZWQgdG8gbWVyZ2UgdGhlaXIgY29udGV4dHMuXG5cbnZhciBwcmV2aW91c0NvbnRleHQgPSBlbXB0eUNvbnRleHRPYmplY3Q7XG5cbmZ1bmN0aW9uIGdldFVubWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBkaWRQdXNoT3duQ29udGV4dElmUHJvdmlkZXIpIHtcbiAge1xuICAgIGlmIChkaWRQdXNoT3duQ29udGV4dElmUHJvdmlkZXIgJiYgaXNDb250ZXh0UHJvdmlkZXIoQ29tcG9uZW50KSkge1xuICAgICAgLy8gSWYgdGhlIGZpYmVyIGlzIGEgY29udGV4dCBwcm92aWRlciBpdHNlbGYsIHdoZW4gd2UgcmVhZCBpdHMgY29udGV4dFxuICAgICAgLy8gd2UgbWF5IGhhdmUgYWxyZWFkeSBwdXNoZWQgaXRzIG93biBjaGlsZCBjb250ZXh0IG9uIHRoZSBzdGFjay4gQSBjb250ZXh0XG4gICAgICAvLyBwcm92aWRlciBzaG91bGQgbm90IFwic2VlXCIgaXRzIG93biBjaGlsZCBjb250ZXh0LiBUaGVyZWZvcmUgd2UgcmVhZCB0aGVcbiAgICAgIC8vIHByZXZpb3VzIChwYXJlbnQpIGNvbnRleHQgaW5zdGVhZCBmb3IgYSBjb250ZXh0IHByb3ZpZGVyLlxuICAgICAgcmV0dXJuIHByZXZpb3VzQ29udGV4dDtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGV4dFN0YWNrQ3Vyc29yLmN1cnJlbnQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FjaGVDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQsIG1hc2tlZENvbnRleHQpIHtcbiAge1xuICAgIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgICBpbnN0YW5jZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0ID0gdW5tYXNrZWRDb250ZXh0O1xuICAgIGluc3RhbmNlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0ID0gbWFza2VkQ29udGV4dDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRNYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQpIHtcbiAge1xuICAgIHZhciB0eXBlID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcbiAgICB2YXIgY29udGV4dFR5cGVzID0gdHlwZS5jb250ZXh0VHlwZXM7XG5cbiAgICBpZiAoIWNvbnRleHRUeXBlcykge1xuICAgICAgcmV0dXJuIGVtcHR5Q29udGV4dE9iamVjdDtcbiAgICB9IC8vIEF2b2lkIHJlY3JlYXRpbmcgbWFza2VkIGNvbnRleHQgdW5sZXNzIHVubWFza2VkIGNvbnRleHQgaGFzIGNoYW5nZWQuXG4gICAgLy8gRmFpbGluZyB0byBkbyB0aGlzIHdpbGwgcmVzdWx0IGluIHVubmVjZXNzYXJ5IGNhbGxzIHRvIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMuXG4gICAgLy8gVGhpcyBtYXkgdHJpZ2dlciBpbmZpbml0ZSBsb29wcyBpZiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIGNhbGxzIHNldFN0YXRlLlxuXG5cbiAgICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgICBpZiAoaW5zdGFuY2UgJiYgaW5zdGFuY2UuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dCA9PT0gdW5tYXNrZWRDb250ZXh0KSB7XG4gICAgICByZXR1cm4gaW5zdGFuY2UuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ7XG4gICAgfVxuXG4gICAgdmFyIGNvbnRleHQgPSB7fTtcblxuICAgIGZvciAodmFyIGtleSBpbiBjb250ZXh0VHlwZXMpIHtcbiAgICAgIGNvbnRleHRba2V5XSA9IHVubWFza2VkQ29udGV4dFtrZXldO1xuICAgIH1cblxuICAgIHtcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcih3b3JrSW5Qcm9ncmVzcykgfHwgJ1Vua25vd24nO1xuICAgICAgY2hlY2tQcm9wVHlwZXMoY29udGV4dFR5cGVzLCBjb250ZXh0LCAnY29udGV4dCcsIG5hbWUpO1xuICAgIH0gLy8gQ2FjaGUgdW5tYXNrZWQgY29udGV4dCBzbyB3ZSBjYW4gYXZvaWQgcmVjcmVhdGluZyBtYXNrZWQgY29udGV4dCB1bmxlc3MgbmVjZXNzYXJ5LlxuICAgIC8vIENvbnRleHQgaXMgY3JlYXRlZCBiZWZvcmUgdGhlIGNsYXNzIGNvbXBvbmVudCBpcyBpbnN0YW50aWF0ZWQgc28gY2hlY2sgZm9yIGluc3RhbmNlLlxuXG5cbiAgICBpZiAoaW5zdGFuY2UpIHtcbiAgICAgIGNhY2hlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgdW5tYXNrZWRDb250ZXh0LCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGV4dDtcbiAgfVxufVxuXG5mdW5jdGlvbiBoYXNDb250ZXh0Q2hhbmdlZCgpIHtcbiAge1xuICAgIHJldHVybiBkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLmN1cnJlbnQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNDb250ZXh0UHJvdmlkZXIodHlwZSkge1xuICB7XG4gICAgdmFyIGNoaWxkQ29udGV4dFR5cGVzID0gdHlwZS5jaGlsZENvbnRleHRUeXBlcztcbiAgICByZXR1cm4gY2hpbGRDb250ZXh0VHlwZXMgIT09IG51bGwgJiYgY2hpbGRDb250ZXh0VHlwZXMgIT09IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBwb3BDb250ZXh0KGZpYmVyKSB7XG4gIHtcbiAgICBwb3AoZGlkUGVyZm9ybVdvcmtTdGFja0N1cnNvciwgZmliZXIpO1xuICAgIHBvcChjb250ZXh0U3RhY2tDdXJzb3IsIGZpYmVyKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwb3BUb3BMZXZlbENvbnRleHRPYmplY3QoZmliZXIpIHtcbiAge1xuICAgIHBvcChkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLCBmaWJlcik7XG4gICAgcG9wKGNvbnRleHRTdGFja0N1cnNvciwgZmliZXIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHB1c2hUb3BMZXZlbENvbnRleHRPYmplY3QoZmliZXIsIGNvbnRleHQsIGRpZENoYW5nZSkge1xuICB7XG4gICAgaWYgKGNvbnRleHRTdGFja0N1cnNvci5jdXJyZW50ICE9PSBlbXB0eUNvbnRleHRPYmplY3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBjb250ZXh0IGZvdW5kIG9uIHN0YWNrLiAnICsgJ1RoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgfVxuXG4gICAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IsIGNvbnRleHQsIGZpYmVyKTtcbiAgICBwdXNoKGRpZFBlcmZvcm1Xb3JrU3RhY2tDdXJzb3IsIGRpZENoYW5nZSwgZmliZXIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHByb2Nlc3NDaGlsZENvbnRleHQoZmliZXIsIHR5cGUsIHBhcmVudENvbnRleHQpIHtcbiAge1xuICAgIHZhciBpbnN0YW5jZSA9IGZpYmVyLnN0YXRlTm9kZTtcbiAgICB2YXIgY2hpbGRDb250ZXh0VHlwZXMgPSB0eXBlLmNoaWxkQ29udGV4dFR5cGVzOyAvLyBUT0RPIChidmF1Z2huKSBSZXBsYWNlIHRoaXMgYmVoYXZpb3Igd2l0aCBhbiBpbnZhcmlhbnQoKSBpbiB0aGUgZnV0dXJlLlxuICAgIC8vIEl0IGhhcyBvbmx5IGJlZW4gYWRkZWQgaW4gRmliZXIgdG8gbWF0Y2ggdGhlICh1bmludGVudGlvbmFsKSBiZWhhdmlvciBpbiBTdGFjay5cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuZ2V0Q2hpbGRDb250ZXh0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB7XG4gICAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgfHwgJ1Vua25vd24nO1xuXG4gICAgICAgIGlmICghd2FybmVkQWJvdXRNaXNzaW5nR2V0Q2hpbGRDb250ZXh0W2NvbXBvbmVudE5hbWVdKSB7XG4gICAgICAgICAgd2FybmVkQWJvdXRNaXNzaW5nR2V0Q2hpbGRDb250ZXh0W2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcblxuICAgICAgICAgIGVycm9yKCclcy5jaGlsZENvbnRleHRUeXBlcyBpcyBzcGVjaWZpZWQgYnV0IHRoZXJlIGlzIG5vIGdldENoaWxkQ29udGV4dCgpIG1ldGhvZCAnICsgJ29uIHRoZSBpbnN0YW5jZS4gWW91IGNhbiBlaXRoZXIgZGVmaW5lIGdldENoaWxkQ29udGV4dCgpIG9uICVzIG9yIHJlbW92ZSAnICsgJ2NoaWxkQ29udGV4dFR5cGVzIGZyb20gaXQuJywgY29tcG9uZW50TmFtZSwgY29tcG9uZW50TmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHBhcmVudENvbnRleHQ7XG4gICAgfVxuXG4gICAgdmFyIGNoaWxkQ29udGV4dCA9IGluc3RhbmNlLmdldENoaWxkQ29udGV4dCgpO1xuXG4gICAgZm9yICh2YXIgY29udGV4dEtleSBpbiBjaGlsZENvbnRleHQpIHtcbiAgICAgIGlmICghKGNvbnRleHRLZXkgaW4gY2hpbGRDb250ZXh0VHlwZXMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigoZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgfHwgJ1Vua25vd24nKSArIFwiLmdldENoaWxkQ29udGV4dCgpOiBrZXkgXFxcIlwiICsgY29udGV4dEtleSArIFwiXFxcIiBpcyBub3QgZGVmaW5lZCBpbiBjaGlsZENvbnRleHRUeXBlcy5cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAge1xuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCAnVW5rbm93bic7XG4gICAgICBjaGVja1Byb3BUeXBlcyhjaGlsZENvbnRleHRUeXBlcywgY2hpbGRDb250ZXh0LCAnY2hpbGQgY29udGV4dCcsIG5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBhc3NpZ24oe30sIHBhcmVudENvbnRleHQsIGNoaWxkQ29udGV4dCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHVzaENvbnRleHRQcm92aWRlcih3b3JrSW5Qcm9ncmVzcykge1xuICB7XG4gICAgdmFyIGluc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlOyAvLyBXZSBwdXNoIHRoZSBjb250ZXh0IGFzIGVhcmx5IGFzIHBvc3NpYmxlIHRvIGVuc3VyZSBzdGFjayBpbnRlZ3JpdHkuXG4gICAgLy8gSWYgdGhlIGluc3RhbmNlIGRvZXMgbm90IGV4aXN0IHlldCwgd2Ugd2lsbCBwdXNoIG51bGwgYXQgZmlyc3QsXG4gICAgLy8gYW5kIHJlcGxhY2UgaXQgb24gdGhlIHN0YWNrIGxhdGVyIHdoZW4gaW52YWxpZGF0aW5nIHRoZSBjb250ZXh0LlxuXG4gICAgdmFyIG1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0ID0gaW5zdGFuY2UgJiYgaW5zdGFuY2UuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQgfHwgZW1wdHlDb250ZXh0T2JqZWN0OyAvLyBSZW1lbWJlciB0aGUgcGFyZW50IGNvbnRleHQgc28gd2UgY2FuIG1lcmdlIHdpdGggaXQgbGF0ZXIuXG4gICAgLy8gSW5oZXJpdCB0aGUgcGFyZW50J3MgZGlkLXBlcmZvcm0td29yayB2YWx1ZSB0byBhdm9pZCBpbmFkdmVydGVudGx5IGJsb2NraW5nIHVwZGF0ZXMuXG5cbiAgICBwcmV2aW91c0NvbnRleHQgPSBjb250ZXh0U3RhY2tDdXJzb3IuY3VycmVudDtcbiAgICBwdXNoKGNvbnRleHRTdGFja0N1cnNvciwgbWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQsIHdvcmtJblByb2dyZXNzKTtcbiAgICBwdXNoKGRpZFBlcmZvcm1Xb3JrU3RhY2tDdXJzb3IsIGRpZFBlcmZvcm1Xb3JrU3RhY2tDdXJzb3IuY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGludmFsaWRhdGVDb250ZXh0UHJvdmlkZXIod29ya0luUHJvZ3Jlc3MsIHR5cGUsIGRpZENoYW5nZSkge1xuICB7XG4gICAgdmFyIGluc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuXG4gICAgaWYgKCFpbnN0YW5jZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCB0byBoYXZlIGFuIGluc3RhbmNlIGJ5IHRoaXMgcG9pbnQuICcgKyAnVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoZGlkQ2hhbmdlKSB7XG4gICAgICAvLyBNZXJnZSBwYXJlbnQgYW5kIG93biBjb250ZXh0LlxuICAgICAgLy8gU2tpcCB0aGlzIGlmIHdlJ3JlIG5vdCB1cGRhdGluZyBkdWUgdG8gc0NVLlxuICAgICAgLy8gVGhpcyBhdm9pZHMgdW5uZWNlc3NhcmlseSByZWNvbXB1dGluZyBtZW1vaXplZCB2YWx1ZXMuXG4gICAgICB2YXIgbWVyZ2VkQ29udGV4dCA9IHByb2Nlc3NDaGlsZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIHR5cGUsIHByZXZpb3VzQ29udGV4dCk7XG4gICAgICBpbnN0YW5jZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dCA9IG1lcmdlZENvbnRleHQ7IC8vIFJlcGxhY2UgdGhlIG9sZCAob3IgZW1wdHkpIGNvbnRleHQgd2l0aCB0aGUgbmV3IG9uZS5cbiAgICAgIC8vIEl0IGlzIGltcG9ydGFudCB0byB1bndpbmQgdGhlIGNvbnRleHQgaW4gdGhlIHJldmVyc2Ugb3JkZXIuXG5cbiAgICAgIHBvcChkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBwb3AoY29udGV4dFN0YWNrQ3Vyc29yLCB3b3JrSW5Qcm9ncmVzcyk7IC8vIE5vdyBwdXNoIHRoZSBuZXcgY29udGV4dCBhbmQgbWFyayB0aGF0IGl0IGhhcyBjaGFuZ2VkLlxuXG4gICAgICBwdXNoKGNvbnRleHRTdGFja0N1cnNvciwgbWVyZ2VkQ29udGV4dCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgcHVzaChkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLCBkaWRDaGFuZ2UsIHdvcmtJblByb2dyZXNzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcG9wKGRpZFBlcmZvcm1Xb3JrU3RhY2tDdXJzb3IsIHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHB1c2goZGlkUGVyZm9ybVdvcmtTdGFja0N1cnNvciwgZGlkQ2hhbmdlLCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmRDdXJyZW50VW5tYXNrZWRDb250ZXh0KGZpYmVyKSB7XG4gIHtcbiAgICAvLyBDdXJyZW50bHkgdGhpcyBpcyBvbmx5IHVzZWQgd2l0aCByZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcjsgbm90IHN1cmUgaWYgaXRcbiAgICAvLyBtYWtlcyBzZW5zZSBlbHNld2hlcmVcbiAgICBpZiAoIWlzRmliZXJNb3VudGVkKGZpYmVyKSB8fCBmaWJlci50YWcgIT09IENsYXNzQ29tcG9uZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHN1YnRyZWUgcGFyZW50IHRvIGJlIGEgbW91bnRlZCBjbGFzcyBjb21wb25lbnQuICcgKyAnVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG5cbiAgICB2YXIgbm9kZSA9IGZpYmVyO1xuXG4gICAgZG8ge1xuICAgICAgc3dpdGNoIChub2RlLnRhZykge1xuICAgICAgICBjYXNlIEhvc3RSb290OlxuICAgICAgICAgIHJldHVybiBub2RlLnN0YXRlTm9kZS5jb250ZXh0O1xuXG4gICAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIENvbXBvbmVudCA9IG5vZGUudHlwZTtcblxuICAgICAgICAgICAgaWYgKGlzQ29udGV4dFByb3ZpZGVyKENvbXBvbmVudCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5vZGUuc3RhdGVOb2RlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9IHdoaWxlIChub2RlICE9PSBudWxsKTtcblxuICAgIHRocm93IG5ldyBFcnJvcignRm91bmQgdW5leHBlY3RlZCBkZXRhY2hlZCBzdWJ0cmVlIHBhcmVudC4gJyArICdUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICB9XG59XG5cbnZhciBMZWdhY3lSb290ID0gMDtcbnZhciBDb25jdXJyZW50Um9vdCA9IDE7XG5cbnZhciBzeW5jUXVldWUgPSBudWxsO1xudmFyIGluY2x1ZGVzTGVnYWN5U3luY0NhbGxiYWNrcyA9IGZhbHNlO1xudmFyIGlzRmx1c2hpbmdTeW5jUXVldWUgPSBmYWxzZTtcbmZ1bmN0aW9uIHNjaGVkdWxlU3luY0NhbGxiYWNrKGNhbGxiYWNrKSB7XG4gIC8vIFB1c2ggdGhpcyBjYWxsYmFjayBpbnRvIGFuIGludGVybmFsIHF1ZXVlLiBXZSdsbCBmbHVzaCB0aGVzZSBlaXRoZXIgaW5cbiAgLy8gdGhlIG5leHQgdGljaywgb3IgZWFybGllciBpZiBzb21ldGhpbmcgY2FsbHMgYGZsdXNoU3luY0NhbGxiYWNrUXVldWVgLlxuICBpZiAoc3luY1F1ZXVlID09PSBudWxsKSB7XG4gICAgc3luY1F1ZXVlID0gW2NhbGxiYWNrXTtcbiAgfSBlbHNlIHtcbiAgICAvLyBQdXNoIG9udG8gZXhpc3RpbmcgcXVldWUuIERvbid0IG5lZWQgdG8gc2NoZWR1bGUgYSBjYWxsYmFjayBiZWNhdXNlXG4gICAgLy8gd2UgYWxyZWFkeSBzY2hlZHVsZWQgb25lIHdoZW4gd2UgY3JlYXRlZCB0aGUgcXVldWUuXG4gICAgc3luY1F1ZXVlLnB1c2goY2FsbGJhY2spO1xuICB9XG59XG5mdW5jdGlvbiBzY2hlZHVsZUxlZ2FjeVN5bmNDYWxsYmFjayhjYWxsYmFjaykge1xuICBpbmNsdWRlc0xlZ2FjeVN5bmNDYWxsYmFja3MgPSB0cnVlO1xuICBzY2hlZHVsZVN5bmNDYWxsYmFjayhjYWxsYmFjayk7XG59XG5mdW5jdGlvbiBmbHVzaFN5bmNDYWxsYmFja3NPbmx5SW5MZWdhY3lNb2RlKCkge1xuICAvLyBPbmx5IGZsdXNoZXMgdGhlIHF1ZXVlIGlmIHRoZXJlJ3MgYSBsZWdhY3kgc3luYyBjYWxsYmFjayBzY2hlZHVsZWQuXG4gIC8vIFRPRE86IFRoZXJlJ3Mgb25seSBhIHNpbmdsZSB0eXBlIG9mIGNhbGxiYWNrOiBwZXJmb3JtU3luY09uV29ya09uUm9vdC4gU29cbiAgLy8gaXQgbWlnaHQgbWFrZSBtb3JlIHNlbnNlIGZvciB0aGUgcXVldWUgdG8gYmUgYSBsaXN0IG9mIHJvb3RzIGluc3RlYWQgb2YgYVxuICAvLyBsaXN0IG9mIGdlbmVyaWMgY2FsbGJhY2tzLiBUaGVuIHdlIGNhbiBoYXZlIHR3bzogb25lIGZvciBsZWdhY3kgcm9vdHMsIG9uZVxuICAvLyBmb3IgY29uY3VycmVudCByb290cy4gQW5kIHRoaXMgbWV0aG9kIHdvdWxkIG9ubHkgZmx1c2ggdGhlIGxlZ2FjeSBvbmVzLlxuICBpZiAoaW5jbHVkZXNMZWdhY3lTeW5jQ2FsbGJhY2tzKSB7XG4gICAgZmx1c2hTeW5jQ2FsbGJhY2tzKCk7XG4gIH1cbn1cbmZ1bmN0aW9uIGZsdXNoU3luY0NhbGxiYWNrcygpIHtcbiAgaWYgKCFpc0ZsdXNoaW5nU3luY1F1ZXVlICYmIHN5bmNRdWV1ZSAhPT0gbnVsbCkge1xuICAgIC8vIFByZXZlbnQgcmUtZW50cmFuY2UuXG4gICAgaXNGbHVzaGluZ1N5bmNRdWV1ZSA9IHRydWU7XG4gICAgdmFyIGkgPSAwO1xuICAgIHZhciBwcmV2aW91c1VwZGF0ZVByaW9yaXR5ID0gZ2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KCk7XG5cbiAgICB0cnkge1xuICAgICAgdmFyIGlzU3luYyA9IHRydWU7XG4gICAgICB2YXIgcXVldWUgPSBzeW5jUXVldWU7IC8vIFRPRE86IElzIHRoaXMgbmVjZXNzYXJ5IGFueW1vcmU/IFRoZSBvbmx5IHVzZXIgY29kZSB0aGF0IHJ1bnMgaW4gdGhpc1xuICAgICAgLy8gcXVldWUgaXMgaW4gdGhlIHJlbmRlciBvciBjb21taXQgcGhhc2VzLlxuXG4gICAgICBzZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkoRGlzY3JldGVFdmVudFByaW9yaXR5KTtcblxuICAgICAgZm9yICg7IGkgPCBxdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2FsbGJhY2sgPSBxdWV1ZVtpXTtcblxuICAgICAgICBkbyB7XG4gICAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayhpc1N5bmMpO1xuICAgICAgICB9IHdoaWxlIChjYWxsYmFjayAhPT0gbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIHN5bmNRdWV1ZSA9IG51bGw7XG4gICAgICBpbmNsdWRlc0xlZ2FjeVN5bmNDYWxsYmFja3MgPSBmYWxzZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gSWYgc29tZXRoaW5nIHRocm93cywgbGVhdmUgdGhlIHJlbWFpbmluZyBjYWxsYmFja3Mgb24gdGhlIHF1ZXVlLlxuICAgICAgaWYgKHN5bmNRdWV1ZSAhPT0gbnVsbCkge1xuICAgICAgICBzeW5jUXVldWUgPSBzeW5jUXVldWUuc2xpY2UoaSArIDEpO1xuICAgICAgfSAvLyBSZXN1bWUgZmx1c2hpbmcgaW4gdGhlIG5leHQgdGlja1xuXG5cbiAgICAgIHNjaGVkdWxlQ2FsbGJhY2soSW1tZWRpYXRlUHJpb3JpdHksIGZsdXNoU3luY0NhbGxiYWNrcyk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KHByZXZpb3VzVXBkYXRlUHJpb3JpdHkpO1xuICAgICAgaXNGbHVzaGluZ1N5bmNRdWV1ZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG52YXIgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnO1xudmFyIE5vVHJhbnNpdGlvbiA9IG51bGw7XG5mdW5jdGlvbiByZXF1ZXN0Q3VycmVudFRyYW5zaXRpb24oKSB7XG4gIHJldHVybiBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQxLnRyYW5zaXRpb247XG59XG5cbnZhciBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncyA9IHtcbiAgcmVjb3JkVW5zYWZlTGlmZWN5Y2xlV2FybmluZ3M6IGZ1bmN0aW9uIChmaWJlciwgaW5zdGFuY2UpIHt9LFxuICBmbHVzaFBlbmRpbmdVbnNhZmVMaWZlY3ljbGVXYXJuaW5nczogZnVuY3Rpb24gKCkge30sXG4gIHJlY29yZExlZ2FjeUNvbnRleHRXYXJuaW5nOiBmdW5jdGlvbiAoZmliZXIsIGluc3RhbmNlKSB7fSxcbiAgZmx1c2hMZWdhY3lDb250ZXh0V2FybmluZzogZnVuY3Rpb24gKCkge30sXG4gIGRpc2NhcmRQZW5kaW5nV2FybmluZ3M6IGZ1bmN0aW9uICgpIHt9XG59O1xuXG57XG4gIHZhciBmaW5kU3RyaWN0Um9vdCA9IGZ1bmN0aW9uIChmaWJlcikge1xuICAgIHZhciBtYXliZVN0cmljdFJvb3QgPSBudWxsO1xuICAgIHZhciBub2RlID0gZmliZXI7XG5cbiAgICB3aGlsZSAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgaWYgKG5vZGUubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpIHtcbiAgICAgICAgbWF5YmVTdHJpY3RSb290ID0gbm9kZTtcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBtYXliZVN0cmljdFJvb3Q7XG4gIH07XG5cbiAgdmFyIHNldFRvU29ydGVkU3RyaW5nID0gZnVuY3Rpb24gKHNldCkge1xuICAgIHZhciBhcnJheSA9IFtdO1xuICAgIHNldC5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgYXJyYXkucHVzaCh2YWx1ZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFycmF5LnNvcnQoKS5qb2luKCcsICcpO1xuICB9O1xuXG4gIHZhciBwZW5kaW5nQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgdmFyIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgdmFyIHBlbmRpbmdDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MgPSBbXTtcbiAgdmFyIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW107XG4gIHZhciBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW107XG4gIHZhciBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncyA9IFtdOyAvLyBUcmFja3MgY29tcG9uZW50cyB3ZSBoYXZlIGFscmVhZHkgd2FybmVkIGFib3V0LlxuXG4gIHZhciBkaWRXYXJuQWJvdXRVbnNhZmVMaWZlY3ljbGVzID0gbmV3IFNldCgpO1xuXG4gIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLnJlY29yZFVuc2FmZUxpZmVjeWNsZVdhcm5pbmdzID0gZnVuY3Rpb24gKGZpYmVyLCBpbnN0YW5jZSkge1xuICAgIC8vIERlZHVwZSBzdHJhdGVneTogV2FybiBvbmNlIHBlciBjb21wb25lbnQuXG4gICAgaWYgKGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuaGFzKGZpYmVyLnR5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicgJiYgLy8gRG9uJ3Qgd2FybiBhYm91dCByZWFjdC1saWZlY3ljbGVzLWNvbXBhdCBwb2x5ZmlsbGVkIGNvbXBvbmVudHMuXG4gICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50Ll9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmcgIT09IHRydWUpIHtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncy5wdXNoKGZpYmVyKTtcbiAgICB9XG5cbiAgICBpZiAoZmliZXIubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUgJiYgdHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MucHVzaChmaWJlcik7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nICYmIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyAhPT0gdHJ1ZSkge1xuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5wdXNoKGZpYmVyKTtcbiAgICB9XG5cbiAgICBpZiAoZmliZXIubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUgJiYgdHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5wdXNoKGZpYmVyKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicgJiYgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVwZGF0ZS5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nICE9PSB0cnVlKSB7XG4gICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLnB1c2goZmliZXIpO1xuICAgIH1cblxuICAgIGlmIChmaWJlci5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSAmJiB0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLnB1c2goZmliZXIpO1xuICAgIH1cbiAgfTtcblxuICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5mbHVzaFBlbmRpbmdVbnNhZmVMaWZlY3ljbGVXYXJuaW5ncyA9IGZ1bmN0aW9uICgpIHtcbiAgICAvLyBXZSBkbyBhbiBpbml0aWFsIHBhc3MgdG8gZ2F0aGVyIGNvbXBvbmVudCBuYW1lc1xuICAgIHZhciBjb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcblxuICAgIGlmIChwZW5kaW5nQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzLmZvckVhY2goZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICAgIGNvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCAnQ29tcG9uZW50Jyk7XG4gICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgfSk7XG4gICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuXG4gICAgaWYgKHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsTW91bnRXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50VW5pcXVlTmFtZXMuYWRkKGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuXG4gICAgaWYgKHBlbmRpbmdDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzVW5pcXVlTmFtZXMuYWRkKGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MgPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcblxuICAgIGlmIChwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCAnQ29tcG9uZW50Jyk7XG4gICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgfSk7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncyA9IFtdO1xuICAgIH1cblxuICAgIHZhciBjb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMgPSBuZXcgU2V0KCk7XG5cbiAgICBpZiAocGVuZGluZ0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLmZvckVhY2goZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICAgIGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcy5hZGQoZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgfHwgJ0NvbXBvbmVudCcpO1xuICAgICAgICBkaWRXYXJuQWJvdXRVbnNhZmVMaWZlY3ljbGVzLmFkZChmaWJlci50eXBlKTtcbiAgICAgIH0pO1xuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncyA9IFtdO1xuICAgIH1cblxuICAgIHZhciBVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuXG4gICAgaWYgKHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLmZvckVhY2goZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICAgIFVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMuYWRkKGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW107XG4gICAgfSAvLyBGaW5hbGx5LCB3ZSBmbHVzaCBhbGwgdGhlIHdhcm5pbmdzXG4gICAgLy8gVU5TQUZFXyBvbmVzIGJlZm9yZSB0aGUgZGVwcmVjYXRlZCBvbmVzLCBzaW5jZSB0aGV5J2xsIGJlICdsb3VkZXInXG5cblxuICAgIGlmIChVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50VW5pcXVlTmFtZXMuc2l6ZSA+IDApIHtcbiAgICAgIHZhciBzb3J0ZWROYW1lcyA9IHNldFRvU29ydGVkU3RyaW5nKFVOU0FGRV9jb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcyk7XG5cbiAgICAgIGVycm9yKCdVc2luZyBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IGluIHN0cmljdCBtb2RlIGlzIG5vdCByZWNvbW1lbmRlZCBhbmQgbWF5IGluZGljYXRlIGJ1Z3MgaW4geW91ciBjb2RlLiAnICsgJ1NlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzIGZvciBkZXRhaWxzLlxcblxcbicgKyAnKiBNb3ZlIGNvZGUgd2l0aCBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkTW91bnQsIGFuZCBzZXQgaW5pdGlhbCBzdGF0ZSBpbiB0aGUgY29uc3RydWN0b3IuXFxuJyArICdcXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXMnLCBzb3J0ZWROYW1lcyk7XG4gICAgfVxuXG4gICAgaWYgKFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzVW5pcXVlTmFtZXMuc2l6ZSA+IDApIHtcbiAgICAgIHZhciBfc29ydGVkTmFtZXMgPSBzZXRUb1NvcnRlZFN0cmluZyhVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzKTtcblxuICAgICAgZXJyb3IoJ1VzaW5nIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIGluIHN0cmljdCBtb2RlIGlzIG5vdCByZWNvbW1lbmRlZCAnICsgJ2FuZCBtYXkgaW5kaWNhdGUgYnVncyBpbiB5b3VyIGNvZGUuICcgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXFxuXFxuJyArICcqIE1vdmUgZGF0YSBmZXRjaGluZyBjb2RlIG9yIHNpZGUgZWZmZWN0cyB0byBjb21wb25lbnREaWRVcGRhdGUuXFxuJyArIFwiKiBJZiB5b3UncmUgdXBkYXRpbmcgc3RhdGUgd2hlbmV2ZXIgcHJvcHMgY2hhbmdlLCBcIiArICdyZWZhY3RvciB5b3VyIGNvZGUgdG8gdXNlIG1lbW9pemF0aW9uIHRlY2huaXF1ZXMgb3IgbW92ZSBpdCB0byAnICsgJ3N0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuIExlYXJuIG1vcmUgYXQ6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9kZXJpdmVkLXN0YXRlXFxuJyArICdcXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXMnLCBfc29ydGVkTmFtZXMpO1xuICAgIH1cblxuICAgIGlmIChVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzLnNpemUgPiAwKSB7XG4gICAgICB2YXIgX3NvcnRlZE5hbWVzMiA9IHNldFRvU29ydGVkU3RyaW5nKFVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMpO1xuXG4gICAgICBlcnJvcignVXNpbmcgVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgaW4gc3RyaWN0IG1vZGUgaXMgbm90IHJlY29tbWVuZGVkICcgKyAnYW5kIG1heSBpbmRpY2F0ZSBidWdzIGluIHlvdXIgY29kZS4gJyArICdTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3Vuc2FmZS1jb21wb25lbnQtbGlmZWN5Y2xlcyBmb3IgZGV0YWlscy5cXG5cXG4nICsgJyogTW92ZSBkYXRhIGZldGNoaW5nIGNvZGUgb3Igc2lkZSBlZmZlY3RzIHRvIGNvbXBvbmVudERpZFVwZGF0ZS5cXG4nICsgJ1xcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlcycsIF9zb3J0ZWROYW1lczIpO1xuICAgIH1cblxuICAgIGlmIChjb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcy5zaXplID4gMCkge1xuICAgICAgdmFyIF9zb3J0ZWROYW1lczMgPSBzZXRUb1NvcnRlZFN0cmluZyhjb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcyk7XG5cbiAgICAgIHdhcm4oJ2NvbXBvbmVudFdpbGxNb3VudCBoYXMgYmVlbiByZW5hbWVkLCBhbmQgaXMgbm90IHJlY29tbWVuZGVkIGZvciB1c2UuICcgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXFxuXFxuJyArICcqIE1vdmUgY29kZSB3aXRoIHNpZGUgZWZmZWN0cyB0byBjb21wb25lbnREaWRNb3VudCwgYW5kIHNldCBpbml0aWFsIHN0YXRlIGluIHRoZSBjb25zdHJ1Y3Rvci5cXG4nICsgJyogUmVuYW1lIGNvbXBvbmVudFdpbGxNb3VudCB0byBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IHRvIHN1cHByZXNzICcgKyAndGhpcyB3YXJuaW5nIGluIG5vbi1zdHJpY3QgbW9kZS4gSW4gUmVhY3QgMTgueCwgb25seSB0aGUgVU5TQUZFXyBuYW1lIHdpbGwgd29yay4gJyArICdUbyByZW5hbWUgYWxsIGRlcHJlY2F0ZWQgbGlmZWN5Y2xlcyB0byB0aGVpciBuZXcgbmFtZXMsIHlvdSBjYW4gcnVuICcgKyAnYG5weCByZWFjdC1jb2RlbW9kIHJlbmFtZS11bnNhZmUtbGlmZWN5Y2xlc2AgaW4geW91ciBwcm9qZWN0IHNvdXJjZSBmb2xkZXIuXFxuJyArICdcXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXMnLCBfc29ydGVkTmFtZXMzKTtcbiAgICB9XG5cbiAgICBpZiAoY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzLnNpemUgPiAwKSB7XG4gICAgICB2YXIgX3NvcnRlZE5hbWVzNCA9IHNldFRvU29ydGVkU3RyaW5nKGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcyk7XG5cbiAgICAgIHdhcm4oJ2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgaGFzIGJlZW4gcmVuYW1lZCwgYW5kIGlzIG5vdCByZWNvbW1lbmRlZCBmb3IgdXNlLiAnICsgJ1NlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzIGZvciBkZXRhaWxzLlxcblxcbicgKyAnKiBNb3ZlIGRhdGEgZmV0Y2hpbmcgY29kZSBvciBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkVXBkYXRlLlxcbicgKyBcIiogSWYgeW91J3JlIHVwZGF0aW5nIHN0YXRlIHdoZW5ldmVyIHByb3BzIGNoYW5nZSwgcmVmYWN0b3IgeW91ciBcIiArICdjb2RlIHRvIHVzZSBtZW1vaXphdGlvbiB0ZWNobmlxdWVzIG9yIG1vdmUgaXQgdG8gJyArICdzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLiBMZWFybiBtb3JlIGF0OiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvZGVyaXZlZC1zdGF0ZVxcbicgKyAnKiBSZW5hbWUgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyB0byBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyB0byBzdXBwcmVzcyAnICsgJ3RoaXMgd2FybmluZyBpbiBub24tc3RyaWN0IG1vZGUuIEluIFJlYWN0IDE4LngsIG9ubHkgdGhlIFVOU0FGRV8gbmFtZSB3aWxsIHdvcmsuICcgKyAnVG8gcmVuYW1lIGFsbCBkZXByZWNhdGVkIGxpZmVjeWNsZXMgdG8gdGhlaXIgbmV3IG5hbWVzLCB5b3UgY2FuIHJ1biAnICsgJ2BucHggcmVhY3QtY29kZW1vZCByZW5hbWUtdW5zYWZlLWxpZmVjeWNsZXNgIGluIHlvdXIgcHJvamVjdCBzb3VyY2UgZm9sZGVyLlxcbicgKyAnXFxuUGxlYXNlIHVwZGF0ZSB0aGUgZm9sbG93aW5nIGNvbXBvbmVudHM6ICVzJywgX3NvcnRlZE5hbWVzNCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcy5zaXplID4gMCkge1xuICAgICAgdmFyIF9zb3J0ZWROYW1lczUgPSBzZXRUb1NvcnRlZFN0cmluZyhjb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMpO1xuXG4gICAgICB3YXJuKCdjb21wb25lbnRXaWxsVXBkYXRlIGhhcyBiZWVuIHJlbmFtZWQsIGFuZCBpcyBub3QgcmVjb21tZW5kZWQgZm9yIHVzZS4gJyArICdTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3Vuc2FmZS1jb21wb25lbnQtbGlmZWN5Y2xlcyBmb3IgZGV0YWlscy5cXG5cXG4nICsgJyogTW92ZSBkYXRhIGZldGNoaW5nIGNvZGUgb3Igc2lkZSBlZmZlY3RzIHRvIGNvbXBvbmVudERpZFVwZGF0ZS5cXG4nICsgJyogUmVuYW1lIGNvbXBvbmVudFdpbGxVcGRhdGUgdG8gVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgdG8gc3VwcHJlc3MgJyArICd0aGlzIHdhcm5pbmcgaW4gbm9uLXN0cmljdCBtb2RlLiBJbiBSZWFjdCAxOC54LCBvbmx5IHRoZSBVTlNBRkVfIG5hbWUgd2lsbCB3b3JrLiAnICsgJ1RvIHJlbmFtZSBhbGwgZGVwcmVjYXRlZCBsaWZlY3ljbGVzIHRvIHRoZWlyIG5ldyBuYW1lcywgeW91IGNhbiBydW4gJyArICdgbnB4IHJlYWN0LWNvZGVtb2QgcmVuYW1lLXVuc2FmZS1saWZlY3ljbGVzYCBpbiB5b3VyIHByb2plY3Qgc291cmNlIGZvbGRlci5cXG4nICsgJ1xcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlcycsIF9zb3J0ZWROYW1lczUpO1xuICAgIH1cbiAgfTtcblxuICB2YXIgcGVuZGluZ0xlZ2FjeUNvbnRleHRXYXJuaW5nID0gbmV3IE1hcCgpOyAvLyBUcmFja3MgY29tcG9uZW50cyB3ZSBoYXZlIGFscmVhZHkgd2FybmVkIGFib3V0LlxuXG4gIHZhciBkaWRXYXJuQWJvdXRMZWdhY3lDb250ZXh0ID0gbmV3IFNldCgpO1xuXG4gIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLnJlY29yZExlZ2FjeUNvbnRleHRXYXJuaW5nID0gZnVuY3Rpb24gKGZpYmVyLCBpbnN0YW5jZSkge1xuICAgIHZhciBzdHJpY3RSb290ID0gZmluZFN0cmljdFJvb3QoZmliZXIpO1xuXG4gICAgaWYgKHN0cmljdFJvb3QgPT09IG51bGwpIHtcbiAgICAgIGVycm9yKCdFeHBlY3RlZCB0byBmaW5kIGEgU3RyaWN0TW9kZSBjb21wb25lbnQgaW4gYSBzdHJpY3QgbW9kZSB0cmVlLiAnICsgJ1RoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9IC8vIERlZHVwIHN0cmF0ZWd5OiBXYXJuIG9uY2UgcGVyIGNvbXBvbmVudC5cblxuXG4gICAgaWYgKGRpZFdhcm5BYm91dExlZ2FjeUNvbnRleHQuaGFzKGZpYmVyLnR5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHdhcm5pbmdzRm9yUm9vdCA9IHBlbmRpbmdMZWdhY3lDb250ZXh0V2FybmluZy5nZXQoc3RyaWN0Um9vdCk7XG5cbiAgICBpZiAoZmliZXIudHlwZS5jb250ZXh0VHlwZXMgIT0gbnVsbCB8fCBmaWJlci50eXBlLmNoaWxkQ29udGV4dFR5cGVzICE9IG51bGwgfHwgaW5zdGFuY2UgIT09IG51bGwgJiYgdHlwZW9mIGluc3RhbmNlLmdldENoaWxkQ29udGV4dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKHdhcm5pbmdzRm9yUm9vdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHdhcm5pbmdzRm9yUm9vdCA9IFtdO1xuICAgICAgICBwZW5kaW5nTGVnYWN5Q29udGV4dFdhcm5pbmcuc2V0KHN0cmljdFJvb3QsIHdhcm5pbmdzRm9yUm9vdCk7XG4gICAgICB9XG5cbiAgICAgIHdhcm5pbmdzRm9yUm9vdC5wdXNoKGZpYmVyKTtcbiAgICB9XG4gIH07XG5cbiAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MuZmx1c2hMZWdhY3lDb250ZXh0V2FybmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICBwZW5kaW5nTGVnYWN5Q29udGV4dFdhcm5pbmcuZm9yRWFjaChmdW5jdGlvbiAoZmliZXJBcnJheSwgc3RyaWN0Um9vdCkge1xuICAgICAgaWYgKGZpYmVyQXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIGZpcnN0RmliZXIgPSBmaWJlckFycmF5WzBdO1xuICAgICAgdmFyIHVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgICAgZmliZXJBcnJheS5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICB1bmlxdWVOYW1lcy5hZGQoZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgfHwgJ0NvbXBvbmVudCcpO1xuICAgICAgICBkaWRXYXJuQWJvdXRMZWdhY3lDb250ZXh0LmFkZChmaWJlci50eXBlKTtcbiAgICAgIH0pO1xuICAgICAgdmFyIHNvcnRlZE5hbWVzID0gc2V0VG9Tb3J0ZWRTdHJpbmcodW5pcXVlTmFtZXMpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBzZXRDdXJyZW50RmliZXIoZmlyc3RGaWJlcik7XG5cbiAgICAgICAgZXJyb3IoJ0xlZ2FjeSBjb250ZXh0IEFQSSBoYXMgYmVlbiBkZXRlY3RlZCB3aXRoaW4gYSBzdHJpY3QtbW9kZSB0cmVlLicgKyAnXFxuXFxuVGhlIG9sZCBBUEkgd2lsbCBiZSBzdXBwb3J0ZWQgaW4gYWxsIDE2LnggcmVsZWFzZXMsIGJ1dCBhcHBsaWNhdGlvbnMgJyArICd1c2luZyBpdCBzaG91bGQgbWlncmF0ZSB0byB0aGUgbmV3IHZlcnNpb24uJyArICdcXG5cXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXMnICsgJ1xcblxcbkxlYXJuIG1vcmUgYWJvdXQgdGhpcyB3YXJuaW5nIGhlcmU6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9sZWdhY3ktY29udGV4dCcsIHNvcnRlZE5hbWVzKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MuZGlzY2FyZFBlbmRpbmdXYXJuaW5ncyA9IGZ1bmN0aW9uICgpIHtcbiAgICBwZW5kaW5nQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzID0gW107XG4gICAgcGVuZGluZ0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncyA9IFtdO1xuICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW107XG4gICAgcGVuZGluZ0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncyA9IFtdO1xuICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW107XG4gICAgcGVuZGluZ0xlZ2FjeUNvbnRleHRXYXJuaW5nID0gbmV3IE1hcCgpO1xuICB9O1xufVxuXG5mdW5jdGlvbiByZXNvbHZlRGVmYXVsdFByb3BzKENvbXBvbmVudCwgYmFzZVByb3BzKSB7XG4gIGlmIChDb21wb25lbnQgJiYgQ29tcG9uZW50LmRlZmF1bHRQcm9wcykge1xuICAgIC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wcy4gVGFrZW4gZnJvbSBSZWFjdEVsZW1lbnRcbiAgICB2YXIgcHJvcHMgPSBhc3NpZ24oe30sIGJhc2VQcm9wcyk7XG4gICAgdmFyIGRlZmF1bHRQcm9wcyA9IENvbXBvbmVudC5kZWZhdWx0UHJvcHM7XG5cbiAgICBmb3IgKHZhciBwcm9wTmFtZSBpbiBkZWZhdWx0UHJvcHMpIHtcbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBkZWZhdWx0UHJvcHNbcHJvcE5hbWVdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwcm9wcztcbiAgfVxuXG4gIHJldHVybiBiYXNlUHJvcHM7XG59XG5cbnZhciB2YWx1ZUN1cnNvciA9IGNyZWF0ZUN1cnNvcihudWxsKTtcbnZhciByZW5kZXJlclNpZ2lsO1xuXG57XG4gIC8vIFVzZSB0aGlzIHRvIGRldGVjdCBtdWx0aXBsZSByZW5kZXJlcnMgdXNpbmcgdGhlIHNhbWUgY29udGV4dFxuICByZW5kZXJlclNpZ2lsID0ge307XG59XG5cbnZhciBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciA9IG51bGw7XG52YXIgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gbnVsbDtcbnZhciBsYXN0RnVsbHlPYnNlcnZlZENvbnRleHQgPSBudWxsO1xudmFyIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSBmYWxzZTtcbmZ1bmN0aW9uIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpIHtcbiAgLy8gVGhpcyBpcyBjYWxsZWQgcmlnaHQgYmVmb3JlIFJlYWN0IHlpZWxkcyBleGVjdXRpb24sIHRvIGVuc3VyZSBgcmVhZENvbnRleHRgXG4gIC8vIGNhbm5vdCBiZSBjYWxsZWQgb3V0c2lkZSB0aGUgcmVuZGVyIHBoYXNlLlxuICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciA9IG51bGw7XG4gIGxhc3RDb250ZXh0RGVwZW5kZW5jeSA9IG51bGw7XG4gIGxhc3RGdWxseU9ic2VydmVkQ29udGV4dCA9IG51bGw7XG5cbiAge1xuICAgIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSBmYWxzZTtcbiAgfVxufVxuZnVuY3Rpb24gZW50ZXJEaXNhbGxvd2VkQ29udGV4dFJlYWRJbkRFVigpIHtcbiAge1xuICAgIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSB0cnVlO1xuICB9XG59XG5mdW5jdGlvbiBleGl0RGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYoKSB7XG4gIHtcbiAgICBpc0Rpc2FsbG93ZWRDb250ZXh0UmVhZEluREVWID0gZmFsc2U7XG4gIH1cbn1cbmZ1bmN0aW9uIHB1c2hQcm92aWRlcihwcm92aWRlckZpYmVyLCBjb250ZXh0LCBuZXh0VmFsdWUpIHtcbiAge1xuICAgIHB1c2godmFsdWVDdXJzb3IsIGNvbnRleHQuX2N1cnJlbnRWYWx1ZSwgcHJvdmlkZXJGaWJlcik7XG4gICAgY29udGV4dC5fY3VycmVudFZhbHVlID0gbmV4dFZhbHVlO1xuXG4gICAge1xuICAgICAgaWYgKGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciAhPT0gdW5kZWZpbmVkICYmIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciAhPT0gbnVsbCAmJiBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgIT09IHJlbmRlcmVyU2lnaWwpIHtcbiAgICAgICAgZXJyb3IoJ0RldGVjdGVkIG11bHRpcGxlIHJlbmRlcmVycyBjb25jdXJyZW50bHkgcmVuZGVyaW5nIHRoZSAnICsgJ3NhbWUgY29udGV4dCBwcm92aWRlci4gVGhpcyBpcyBjdXJyZW50bHkgdW5zdXBwb3J0ZWQuJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciA9IHJlbmRlcmVyU2lnaWw7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBwb3BQcm92aWRlcihjb250ZXh0LCBwcm92aWRlckZpYmVyKSB7XG4gIHZhciBjdXJyZW50VmFsdWUgPSB2YWx1ZUN1cnNvci5jdXJyZW50O1xuICBwb3AodmFsdWVDdXJzb3IsIHByb3ZpZGVyRmliZXIpO1xuXG4gIHtcbiAgICB7XG4gICAgICBjb250ZXh0Ll9jdXJyZW50VmFsdWUgPSBjdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBzY2hlZHVsZUNvbnRleHRXb3JrT25QYXJlbnRQYXRoKHBhcmVudCwgcmVuZGVyTGFuZXMsIHByb3BhZ2F0aW9uUm9vdCkge1xuICAvLyBVcGRhdGUgdGhlIGNoaWxkIGxhbmVzIG9mIGFsbCB0aGUgYW5jZXN0b3JzLCBpbmNsdWRpbmcgdGhlIGFsdGVybmF0ZXMuXG4gIHZhciBub2RlID0gcGFyZW50O1xuXG4gIHdoaWxlIChub2RlICE9PSBudWxsKSB7XG4gICAgdmFyIGFsdGVybmF0ZSA9IG5vZGUuYWx0ZXJuYXRlO1xuXG4gICAgaWYgKCFpc1N1YnNldE9mTGFuZXMobm9kZS5jaGlsZExhbmVzLCByZW5kZXJMYW5lcykpIHtcbiAgICAgIG5vZGUuY2hpbGRMYW5lcyA9IG1lcmdlTGFuZXMobm9kZS5jaGlsZExhbmVzLCByZW5kZXJMYW5lcyk7XG5cbiAgICAgIGlmIChhbHRlcm5hdGUgIT09IG51bGwpIHtcbiAgICAgICAgYWx0ZXJuYXRlLmNoaWxkTGFuZXMgPSBtZXJnZUxhbmVzKGFsdGVybmF0ZS5jaGlsZExhbmVzLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChhbHRlcm5hdGUgIT09IG51bGwgJiYgIWlzU3Vic2V0T2ZMYW5lcyhhbHRlcm5hdGUuY2hpbGRMYW5lcywgcmVuZGVyTGFuZXMpKSB7XG4gICAgICBhbHRlcm5hdGUuY2hpbGRMYW5lcyA9IG1lcmdlTGFuZXMoYWx0ZXJuYXRlLmNoaWxkTGFuZXMsIHJlbmRlckxhbmVzKTtcbiAgICB9XG5cbiAgICBpZiAobm9kZSA9PT0gcHJvcGFnYXRpb25Sb290KSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBub2RlID0gbm9kZS5yZXR1cm47XG4gIH1cblxuICB7XG4gICAgaWYgKG5vZGUgIT09IHByb3BhZ2F0aW9uUm9vdCkge1xuICAgICAgZXJyb3IoJ0V4cGVjdGVkIHRvIGZpbmQgdGhlIHByb3BhZ2F0aW9uIHJvb3Qgd2hlbiBzY2hlZHVsaW5nIGNvbnRleHQgd29yay4gJyArICdUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gcHJvcGFnYXRlQ29udGV4dENoYW5nZSh3b3JrSW5Qcm9ncmVzcywgY29udGV4dCwgcmVuZGVyTGFuZXMpIHtcbiAge1xuICAgIHByb3BhZ2F0ZUNvbnRleHRDaGFuZ2VfZWFnZXIod29ya0luUHJvZ3Jlc3MsIGNvbnRleHQsIHJlbmRlckxhbmVzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwcm9wYWdhdGVDb250ZXh0Q2hhbmdlX2VhZ2VyKHdvcmtJblByb2dyZXNzLCBjb250ZXh0LCByZW5kZXJMYW5lcykge1xuXG4gIHZhciBmaWJlciA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuXG4gIGlmIChmaWJlciAhPT0gbnVsbCkge1xuICAgIC8vIFNldCB0aGUgcmV0dXJuIHBvaW50ZXIgb2YgdGhlIGNoaWxkIHRvIHRoZSB3b3JrLWluLXByb2dyZXNzIGZpYmVyLlxuICAgIGZpYmVyLnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICB9XG5cbiAgd2hpbGUgKGZpYmVyICE9PSBudWxsKSB7XG4gICAgdmFyIG5leHRGaWJlciA9IHZvaWQgMDsgLy8gVmlzaXQgdGhpcyBmaWJlci5cblxuICAgIHZhciBsaXN0ID0gZmliZXIuZGVwZW5kZW5jaWVzO1xuXG4gICAgaWYgKGxpc3QgIT09IG51bGwpIHtcbiAgICAgIG5leHRGaWJlciA9IGZpYmVyLmNoaWxkO1xuICAgICAgdmFyIGRlcGVuZGVuY3kgPSBsaXN0LmZpcnN0Q29udGV4dDtcblxuICAgICAgd2hpbGUgKGRlcGVuZGVuY3kgIT09IG51bGwpIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGNvbnRleHQgbWF0Y2hlcy5cbiAgICAgICAgaWYgKGRlcGVuZGVuY3kuY29udGV4dCA9PT0gY29udGV4dCkge1xuICAgICAgICAgIC8vIE1hdGNoISBTY2hlZHVsZSBhbiB1cGRhdGUgb24gdGhpcyBmaWJlci5cbiAgICAgICAgICBpZiAoZmliZXIudGFnID09PSBDbGFzc0NvbXBvbmVudCkge1xuICAgICAgICAgICAgLy8gU2NoZWR1bGUgYSBmb3JjZSB1cGRhdGUgb24gdGhlIHdvcmstaW4tcHJvZ3Jlc3MuXG4gICAgICAgICAgICB2YXIgbGFuZSA9IHBpY2tBcmJpdHJhcnlMYW5lKHJlbmRlckxhbmVzKTtcbiAgICAgICAgICAgIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoTm9UaW1lc3RhbXAsIGxhbmUpO1xuICAgICAgICAgICAgdXBkYXRlLnRhZyA9IEZvcmNlVXBkYXRlOyAvLyBUT0RPOiBCZWNhdXNlIHdlIGRvbid0IGhhdmUgYSB3b3JrLWluLXByb2dyZXNzLCB0aGlzIHdpbGwgYWRkIHRoZVxuICAgICAgICAgICAgLy8gdXBkYXRlIHRvIHRoZSBjdXJyZW50IGZpYmVyLCB0b28sIHdoaWNoIG1lYW5zIGl0IHdpbGwgcGVyc2lzdCBldmVuIGlmXG4gICAgICAgICAgICAvLyB0aGlzIHJlbmRlciBpcyB0aHJvd24gYXdheS4gU2luY2UgaXQncyBhIHJhY2UgY29uZGl0aW9uLCBub3Qgc3VyZSBpdCdzXG4gICAgICAgICAgICAvLyB3b3J0aCBmaXhpbmcuXG4gICAgICAgICAgICAvLyBJbmxpbmVkIGBlbnF1ZXVlVXBkYXRlYCB0byByZW1vdmUgaW50ZXJsZWF2ZWQgdXBkYXRlIGNoZWNrXG5cbiAgICAgICAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IGZpYmVyLnVwZGF0ZVF1ZXVlO1xuXG4gICAgICAgICAgICBpZiAodXBkYXRlUXVldWUgPT09IG51bGwpIDsgZWxzZSB7XG4gICAgICAgICAgICAgIHZhciBzaGFyZWRRdWV1ZSA9IHVwZGF0ZVF1ZXVlLnNoYXJlZDtcbiAgICAgICAgICAgICAgdmFyIHBlbmRpbmcgPSBzaGFyZWRRdWV1ZS5wZW5kaW5nO1xuXG4gICAgICAgICAgICAgIGlmIChwZW5kaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgdXBkYXRlLiBDcmVhdGUgYSBjaXJjdWxhciBsaXN0LlxuICAgICAgICAgICAgICAgIHVwZGF0ZS5uZXh0ID0gdXBkYXRlO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHVwZGF0ZS5uZXh0ID0gcGVuZGluZy5uZXh0O1xuICAgICAgICAgICAgICAgIHBlbmRpbmcubmV4dCA9IHVwZGF0ZTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHNoYXJlZFF1ZXVlLnBlbmRpbmcgPSB1cGRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZmliZXIubGFuZXMgPSBtZXJnZUxhbmVzKGZpYmVyLmxhbmVzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICAgICAgICAgIGlmIChhbHRlcm5hdGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGFsdGVybmF0ZS5sYW5lcyA9IG1lcmdlTGFuZXMoYWx0ZXJuYXRlLmxhbmVzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2NoZWR1bGVDb250ZXh0V29ya09uUGFyZW50UGF0aChmaWJlci5yZXR1cm4sIHJlbmRlckxhbmVzLCB3b3JrSW5Qcm9ncmVzcyk7IC8vIE1hcmsgdGhlIHVwZGF0ZWQgbGFuZXMgb24gdGhlIGxpc3QsIHRvby5cblxuICAgICAgICAgIGxpc3QubGFuZXMgPSBtZXJnZUxhbmVzKGxpc3QubGFuZXMsIHJlbmRlckxhbmVzKTsgLy8gU2luY2Ugd2UgYWxyZWFkeSBmb3VuZCBhIG1hdGNoLCB3ZSBjYW4gc3RvcCB0cmF2ZXJzaW5nIHRoZVxuICAgICAgICAgIC8vIGRlcGVuZGVuY3kgbGlzdC5cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVwZW5kZW5jeSA9IGRlcGVuZGVuY3kubmV4dDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGZpYmVyLnRhZyA9PT0gQ29udGV4dFByb3ZpZGVyKSB7XG4gICAgICAvLyBEb24ndCBzY2FuIGRlZXBlciBpZiB0aGlzIGlzIGEgbWF0Y2hpbmcgcHJvdmlkZXJcbiAgICAgIG5leHRGaWJlciA9IGZpYmVyLnR5cGUgPT09IHdvcmtJblByb2dyZXNzLnR5cGUgPyBudWxsIDogZmliZXIuY2hpbGQ7XG4gICAgfSBlbHNlIGlmICggZmliZXIudGFnID09PSBEZWh5ZHJhdGVkRnJhZ21lbnQpIHtcbiAgICAgIC8vIElmIGEgZGVoeWRyYXRlZCBzdXNwZW5zZSBib3VuZGFyeSBpcyBpbiB0aGlzIHN1YnRyZWUsIHdlIGRvbid0IGtub3dcbiAgICAgIC8vIGlmIGl0IHdpbGwgaGF2ZSBhbnkgY29udGV4dCBjb25zdW1lcnMgaW4gaXQuIFRoZSBiZXN0IHdlIGNhbiBkbyBpc1xuICAgICAgLy8gbWFyayBpdCBhcyBoYXZpbmcgdXBkYXRlcy5cbiAgICAgIHZhciBwYXJlbnRTdXNwZW5zZSA9IGZpYmVyLnJldHVybjtcblxuICAgICAgaWYgKHBhcmVudFN1c3BlbnNlID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignV2UganVzdCBjYW1lIGZyb20gYSBwYXJlbnQgc28gd2UgbXVzdCBoYXZlIGhhZCBhIHBhcmVudC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgICAgIH1cblxuICAgICAgcGFyZW50U3VzcGVuc2UubGFuZXMgPSBtZXJnZUxhbmVzKHBhcmVudFN1c3BlbnNlLmxhbmVzLCByZW5kZXJMYW5lcyk7XG4gICAgICB2YXIgX2FsdGVybmF0ZSA9IHBhcmVudFN1c3BlbnNlLmFsdGVybmF0ZTtcblxuICAgICAgaWYgKF9hbHRlcm5hdGUgIT09IG51bGwpIHtcbiAgICAgICAgX2FsdGVybmF0ZS5sYW5lcyA9IG1lcmdlTGFuZXMoX2FsdGVybmF0ZS5sYW5lcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfSAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgcGFzc2luZyB0aGlzIGZpYmVyIGFzIHRoZSBwYXJlbnRcbiAgICAgIC8vIGJlY2F1c2Ugd2Ugd2FudCB0byBzY2hlZHVsZSB0aGlzIGZpYmVyIGFzIGhhdmluZyB3b3JrXG4gICAgICAvLyBvbiBpdHMgY2hpbGRyZW4uIFdlJ2xsIHVzZSB0aGUgY2hpbGRMYW5lcyBvblxuICAgICAgLy8gdGhpcyBmaWJlciB0byBpbmRpY2F0ZSB0aGF0IGEgY29udGV4dCBoYXMgY2hhbmdlZC5cblxuXG4gICAgICBzY2hlZHVsZUNvbnRleHRXb3JrT25QYXJlbnRQYXRoKHBhcmVudFN1c3BlbnNlLCByZW5kZXJMYW5lcywgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgbmV4dEZpYmVyID0gZmliZXIuc2libGluZztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVHJhdmVyc2UgZG93bi5cbiAgICAgIG5leHRGaWJlciA9IGZpYmVyLmNoaWxkO1xuICAgIH1cblxuICAgIGlmIChuZXh0RmliZXIgIT09IG51bGwpIHtcbiAgICAgIC8vIFNldCB0aGUgcmV0dXJuIHBvaW50ZXIgb2YgdGhlIGNoaWxkIHRvIHRoZSB3b3JrLWluLXByb2dyZXNzIGZpYmVyLlxuICAgICAgbmV4dEZpYmVyLnJldHVybiA9IGZpYmVyO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBObyBjaGlsZC4gVHJhdmVyc2UgdG8gbmV4dCBzaWJsaW5nLlxuICAgICAgbmV4dEZpYmVyID0gZmliZXI7XG5cbiAgICAgIHdoaWxlIChuZXh0RmliZXIgIT09IG51bGwpIHtcbiAgICAgICAgaWYgKG5leHRGaWJlciA9PT0gd29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAvLyBXZSdyZSBiYWNrIHRvIHRoZSByb290IG9mIHRoaXMgc3VidHJlZS4gRXhpdC5cbiAgICAgICAgICBuZXh0RmliZXIgPSBudWxsO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHNpYmxpbmcgPSBuZXh0RmliZXIuc2libGluZztcblxuICAgICAgICBpZiAoc2libGluZyAhPT0gbnVsbCkge1xuICAgICAgICAgIC8vIFNldCB0aGUgcmV0dXJuIHBvaW50ZXIgb2YgdGhlIHNpYmxpbmcgdG8gdGhlIHdvcmstaW4tcHJvZ3Jlc3MgZmliZXIuXG4gICAgICAgICAgc2libGluZy5yZXR1cm4gPSBuZXh0RmliZXIucmV0dXJuO1xuICAgICAgICAgIG5leHRGaWJlciA9IHNpYmxpbmc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gLy8gTm8gbW9yZSBzaWJsaW5ncy4gVHJhdmVyc2UgdXAuXG5cblxuICAgICAgICBuZXh0RmliZXIgPSBuZXh0RmliZXIucmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZpYmVyID0gbmV4dEZpYmVyO1xuICB9XG59XG5mdW5jdGlvbiBwcmVwYXJlVG9SZWFkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIgPSB3b3JrSW5Qcm9ncmVzcztcbiAgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gbnVsbDtcbiAgbGFzdEZ1bGx5T2JzZXJ2ZWRDb250ZXh0ID0gbnVsbDtcbiAgdmFyIGRlcGVuZGVuY2llcyA9IHdvcmtJblByb2dyZXNzLmRlcGVuZGVuY2llcztcblxuICBpZiAoZGVwZW5kZW5jaWVzICE9PSBudWxsKSB7XG4gICAge1xuICAgICAgdmFyIGZpcnN0Q29udGV4dCA9IGRlcGVuZGVuY2llcy5maXJzdENvbnRleHQ7XG5cbiAgICAgIGlmIChmaXJzdENvbnRleHQgIT09IG51bGwpIHtcbiAgICAgICAgaWYgKGluY2x1ZGVzU29tZUxhbmUoZGVwZW5kZW5jaWVzLmxhbmVzLCByZW5kZXJMYW5lcykpIHtcbiAgICAgICAgICAvLyBDb250ZXh0IGxpc3QgaGFzIGEgcGVuZGluZyB1cGRhdGUuIE1hcmsgdGhhdCB0aGlzIGZpYmVyIHBlcmZvcm1lZCB3b3JrLlxuICAgICAgICAgIG1hcmtXb3JrSW5Qcm9ncmVzc1JlY2VpdmVkVXBkYXRlKCk7XG4gICAgICAgIH0gLy8gUmVzZXQgdGhlIHdvcmstaW4tcHJvZ3Jlc3MgbGlzdFxuXG5cbiAgICAgICAgZGVwZW5kZW5jaWVzLmZpcnN0Q29udGV4dCA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiByZWFkQ29udGV4dChjb250ZXh0KSB7XG4gIHtcbiAgICAvLyBUaGlzIHdhcm5pbmcgd291bGQgZmlyZSBpZiB5b3UgcmVhZCBjb250ZXh0IGluc2lkZSBhIEhvb2sgbGlrZSB1c2VNZW1vLlxuICAgIC8vIFVubGlrZSB0aGUgY2xhc3MgY2hlY2sgYmVsb3csIGl0J3Mgbm90IGVuZm9yY2VkIGluIHByb2R1Y3Rpb24gZm9yIHBlcmYuXG4gICAgaWYgKGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYpIHtcbiAgICAgIGVycm9yKCdDb250ZXh0IGNhbiBvbmx5IGJlIHJlYWQgd2hpbGUgUmVhY3QgaXMgcmVuZGVyaW5nLiAnICsgJ0luIGNsYXNzZXMsIHlvdSBjYW4gcmVhZCBpdCBpbiB0aGUgcmVuZGVyIG1ldGhvZCBvciBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuICcgKyAnSW4gZnVuY3Rpb24gY29tcG9uZW50cywgeW91IGNhbiByZWFkIGl0IGRpcmVjdGx5IGluIHRoZSBmdW5jdGlvbiBib2R5LCBidXQgbm90ICcgKyAnaW5zaWRlIEhvb2tzIGxpa2UgdXNlUmVkdWNlcigpIG9yIHVzZU1lbW8oKS4nKTtcbiAgICB9XG4gIH1cblxuICB2YXIgdmFsdWUgPSAgY29udGV4dC5fY3VycmVudFZhbHVlIDtcblxuICBpZiAobGFzdEZ1bGx5T2JzZXJ2ZWRDb250ZXh0ID09PSBjb250ZXh0KSA7IGVsc2Uge1xuICAgIHZhciBjb250ZXh0SXRlbSA9IHtcbiAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICBtZW1vaXplZFZhbHVlOiB2YWx1ZSxcbiAgICAgIG5leHQ6IG51bGxcbiAgICB9O1xuXG4gICAgaWYgKGxhc3RDb250ZXh0RGVwZW5kZW5jeSA9PT0gbnVsbCkge1xuICAgICAgaWYgKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ29udGV4dCBjYW4gb25seSBiZSByZWFkIHdoaWxlIFJlYWN0IGlzIHJlbmRlcmluZy4gJyArICdJbiBjbGFzc2VzLCB5b3UgY2FuIHJlYWQgaXQgaW4gdGhlIHJlbmRlciBtZXRob2Qgb3IgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLiAnICsgJ0luIGZ1bmN0aW9uIGNvbXBvbmVudHMsIHlvdSBjYW4gcmVhZCBpdCBkaXJlY3RseSBpbiB0aGUgZnVuY3Rpb24gYm9keSwgYnV0IG5vdCAnICsgJ2luc2lkZSBIb29rcyBsaWtlIHVzZVJlZHVjZXIoKSBvciB1c2VNZW1vKCkuJyk7XG4gICAgICB9IC8vIFRoaXMgaXMgdGhlIGZpcnN0IGRlcGVuZGVuY3kgZm9yIHRoaXMgY29tcG9uZW50LiBDcmVhdGUgYSBuZXcgbGlzdC5cblxuXG4gICAgICBsYXN0Q29udGV4dERlcGVuZGVuY3kgPSBjb250ZXh0SXRlbTtcbiAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLmRlcGVuZGVuY2llcyA9IHtcbiAgICAgICAgbGFuZXM6IE5vTGFuZXMsXG4gICAgICAgIGZpcnN0Q29udGV4dDogY29udGV4dEl0ZW1cbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEFwcGVuZCBhIG5ldyBjb250ZXh0IGl0ZW0uXG4gICAgICBsYXN0Q29udGV4dERlcGVuZGVuY3kgPSBsYXN0Q29udGV4dERlcGVuZGVuY3kubmV4dCA9IGNvbnRleHRJdGVtO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLy8gQW4gYXJyYXkgb2YgYWxsIHVwZGF0ZSBxdWV1ZXMgdGhhdCByZWNlaXZlZCB1cGRhdGVzIGR1cmluZyB0aGUgY3VycmVudFxuLy8gcmVuZGVyLiBXaGVuIHRoaXMgcmVuZGVyIGV4aXRzLCBlaXRoZXIgYmVjYXVzZSBpdCBmaW5pc2hlcyBvciBiZWNhdXNlIGl0IGlzXG4vLyBpbnRlcnJ1cHRlZCwgdGhlIGludGVybGVhdmVkIHVwZGF0ZXMgd2lsbCBiZSB0cmFuc2ZlcnJlZCBvbnRvIHRoZSBtYWluIHBhcnRcbi8vIG9mIHRoZSBxdWV1ZS5cbnZhciBpbnRlcmxlYXZlZFF1ZXVlcyA9IG51bGw7XG5mdW5jdGlvbiBwdXNoSW50ZXJsZWF2ZWRRdWV1ZShxdWV1ZSkge1xuICBpZiAoaW50ZXJsZWF2ZWRRdWV1ZXMgPT09IG51bGwpIHtcbiAgICBpbnRlcmxlYXZlZFF1ZXVlcyA9IFtxdWV1ZV07XG4gIH0gZWxzZSB7XG4gICAgaW50ZXJsZWF2ZWRRdWV1ZXMucHVzaChxdWV1ZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGVucXVldWVJbnRlcmxlYXZlZFVwZGF0ZXMoKSB7XG4gIC8vIFRyYW5zZmVyIHRoZSBpbnRlcmxlYXZlZCB1cGRhdGVzIG9udG8gdGhlIG1haW4gcXVldWUuIEVhY2ggcXVldWUgaGFzIGFcbiAgLy8gYHBlbmRpbmdgIGZpZWxkIGFuZCBhbiBgaW50ZXJsZWF2ZWRgIGZpZWxkLiBXaGVuIHRoZXkgYXJlIG5vdCBudWxsLCB0aGV5XG4gIC8vIHBvaW50IHRvIHRoZSBsYXN0IG5vZGUgaW4gYSBjaXJjdWxhciBsaW5rZWQgbGlzdC4gV2UgbmVlZCB0byBhcHBlbmQgdGhlXG4gIC8vIGludGVybGVhdmVkIGxpc3QgdG8gdGhlIGVuZCBvZiB0aGUgcGVuZGluZyBsaXN0IGJ5IGpvaW5pbmcgdGhlbSBpbnRvIGFcbiAgLy8gc2luZ2xlLCBjaXJjdWxhciBsaXN0LlxuICBpZiAoaW50ZXJsZWF2ZWRRdWV1ZXMgIT09IG51bGwpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGludGVybGVhdmVkUXVldWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcXVldWUgPSBpbnRlcmxlYXZlZFF1ZXVlc1tpXTtcbiAgICAgIHZhciBsYXN0SW50ZXJsZWF2ZWRVcGRhdGUgPSBxdWV1ZS5pbnRlcmxlYXZlZDtcblxuICAgICAgaWYgKGxhc3RJbnRlcmxlYXZlZFVwZGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICBxdWV1ZS5pbnRlcmxlYXZlZCA9IG51bGw7XG4gICAgICAgIHZhciBmaXJzdEludGVybGVhdmVkVXBkYXRlID0gbGFzdEludGVybGVhdmVkVXBkYXRlLm5leHQ7XG4gICAgICAgIHZhciBsYXN0UGVuZGluZ1VwZGF0ZSA9IHF1ZXVlLnBlbmRpbmc7XG5cbiAgICAgICAgaWYgKGxhc3RQZW5kaW5nVXBkYXRlICE9PSBudWxsKSB7XG4gICAgICAgICAgdmFyIGZpcnN0UGVuZGluZ1VwZGF0ZSA9IGxhc3RQZW5kaW5nVXBkYXRlLm5leHQ7XG4gICAgICAgICAgbGFzdFBlbmRpbmdVcGRhdGUubmV4dCA9IGZpcnN0SW50ZXJsZWF2ZWRVcGRhdGU7XG4gICAgICAgICAgbGFzdEludGVybGVhdmVkVXBkYXRlLm5leHQgPSBmaXJzdFBlbmRpbmdVcGRhdGU7XG4gICAgICAgIH1cblxuICAgICAgICBxdWV1ZS5wZW5kaW5nID0gbGFzdEludGVybGVhdmVkVXBkYXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGludGVybGVhdmVkUXVldWVzID0gbnVsbDtcbiAgfVxufVxuXG52YXIgVXBkYXRlU3RhdGUgPSAwO1xudmFyIFJlcGxhY2VTdGF0ZSA9IDE7XG52YXIgRm9yY2VVcGRhdGUgPSAyO1xudmFyIENhcHR1cmVVcGRhdGUgPSAzOyAvLyBHbG9iYWwgc3RhdGUgdGhhdCBpcyByZXNldCBhdCB0aGUgYmVnaW5uaW5nIG9mIGNhbGxpbmcgYHByb2Nlc3NVcGRhdGVRdWV1ZWAuXG4vLyBJdCBzaG91bGQgb25seSBiZSByZWFkIHJpZ2h0IGFmdGVyIGNhbGxpbmcgYHByb2Nlc3NVcGRhdGVRdWV1ZWAsIHZpYVxuLy8gYGNoZWNrSGFzRm9yY2VVcGRhdGVBZnRlclByb2Nlc3NpbmdgLlxuXG52YXIgaGFzRm9yY2VVcGRhdGUgPSBmYWxzZTtcbnZhciBkaWRXYXJuVXBkYXRlSW5zaWRlVXBkYXRlO1xudmFyIGN1cnJlbnRseVByb2Nlc3NpbmdRdWV1ZTtcblxue1xuICBkaWRXYXJuVXBkYXRlSW5zaWRlVXBkYXRlID0gZmFsc2U7XG4gIGN1cnJlbnRseVByb2Nlc3NpbmdRdWV1ZSA9IG51bGw7XG59XG5cbmZ1bmN0aW9uIGluaXRpYWxpemVVcGRhdGVRdWV1ZShmaWJlcikge1xuICB2YXIgcXVldWUgPSB7XG4gICAgYmFzZVN0YXRlOiBmaWJlci5tZW1vaXplZFN0YXRlLFxuICAgIGZpcnN0QmFzZVVwZGF0ZTogbnVsbCxcbiAgICBsYXN0QmFzZVVwZGF0ZTogbnVsbCxcbiAgICBzaGFyZWQ6IHtcbiAgICAgIHBlbmRpbmc6IG51bGwsXG4gICAgICBpbnRlcmxlYXZlZDogbnVsbCxcbiAgICAgIGxhbmVzOiBOb0xhbmVzXG4gICAgfSxcbiAgICBlZmZlY3RzOiBudWxsXG4gIH07XG4gIGZpYmVyLnVwZGF0ZVF1ZXVlID0gcXVldWU7XG59XG5mdW5jdGlvbiBjbG9uZVVwZGF0ZVF1ZXVlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKSB7XG4gIC8vIENsb25lIHRoZSB1cGRhdGUgcXVldWUgZnJvbSBjdXJyZW50LiBVbmxlc3MgaXQncyBhbHJlYWR5IGEgY2xvbmUuXG4gIHZhciBxdWV1ZSA9IHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlO1xuICB2YXIgY3VycmVudFF1ZXVlID0gY3VycmVudC51cGRhdGVRdWV1ZTtcblxuICBpZiAocXVldWUgPT09IGN1cnJlbnRRdWV1ZSkge1xuICAgIHZhciBjbG9uZSA9IHtcbiAgICAgIGJhc2VTdGF0ZTogY3VycmVudFF1ZXVlLmJhc2VTdGF0ZSxcbiAgICAgIGZpcnN0QmFzZVVwZGF0ZTogY3VycmVudFF1ZXVlLmZpcnN0QmFzZVVwZGF0ZSxcbiAgICAgIGxhc3RCYXNlVXBkYXRlOiBjdXJyZW50UXVldWUubGFzdEJhc2VVcGRhdGUsXG4gICAgICBzaGFyZWQ6IGN1cnJlbnRRdWV1ZS5zaGFyZWQsXG4gICAgICBlZmZlY3RzOiBjdXJyZW50UXVldWUuZWZmZWN0c1xuICAgIH07XG4gICAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBjbG9uZTtcbiAgfVxufVxuZnVuY3Rpb24gY3JlYXRlVXBkYXRlKGV2ZW50VGltZSwgbGFuZSkge1xuICB2YXIgdXBkYXRlID0ge1xuICAgIGV2ZW50VGltZTogZXZlbnRUaW1lLFxuICAgIGxhbmU6IGxhbmUsXG4gICAgdGFnOiBVcGRhdGVTdGF0ZSxcbiAgICBwYXlsb2FkOiBudWxsLFxuICAgIGNhbGxiYWNrOiBudWxsLFxuICAgIG5leHQ6IG51bGxcbiAgfTtcbiAgcmV0dXJuIHVwZGF0ZTtcbn1cbmZ1bmN0aW9uIGVucXVldWVVcGRhdGUoZmliZXIsIHVwZGF0ZSwgbGFuZSkge1xuICB2YXIgdXBkYXRlUXVldWUgPSBmaWJlci51cGRhdGVRdWV1ZTtcblxuICBpZiAodXBkYXRlUXVldWUgPT09IG51bGwpIHtcbiAgICAvLyBPbmx5IG9jY3VycyBpZiB0aGUgZmliZXIgaGFzIGJlZW4gdW5tb3VudGVkLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBzaGFyZWRRdWV1ZSA9IHVwZGF0ZVF1ZXVlLnNoYXJlZDtcblxuICBpZiAoaXNJbnRlcmxlYXZlZFVwZGF0ZShmaWJlcikpIHtcbiAgICB2YXIgaW50ZXJsZWF2ZWQgPSBzaGFyZWRRdWV1ZS5pbnRlcmxlYXZlZDtcblxuICAgIGlmIChpbnRlcmxlYXZlZCA9PT0gbnVsbCkge1xuICAgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgdXBkYXRlLiBDcmVhdGUgYSBjaXJjdWxhciBsaXN0LlxuICAgICAgdXBkYXRlLm5leHQgPSB1cGRhdGU7IC8vIEF0IHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgcmVuZGVyLCB0aGlzIHF1ZXVlJ3MgaW50ZXJsZWF2ZWQgdXBkYXRlcyB3aWxsXG4gICAgICAvLyBiZSB0cmFuc2ZlcnJlZCB0byB0aGUgcGVuZGluZyBxdWV1ZS5cblxuICAgICAgcHVzaEludGVybGVhdmVkUXVldWUoc2hhcmVkUXVldWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB1cGRhdGUubmV4dCA9IGludGVybGVhdmVkLm5leHQ7XG4gICAgICBpbnRlcmxlYXZlZC5uZXh0ID0gdXBkYXRlO1xuICAgIH1cblxuICAgIHNoYXJlZFF1ZXVlLmludGVybGVhdmVkID0gdXBkYXRlO1xuICB9IGVsc2Uge1xuICAgIHZhciBwZW5kaW5nID0gc2hhcmVkUXVldWUucGVuZGluZztcblxuICAgIGlmIChwZW5kaW5nID09PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCB1cGRhdGUuIENyZWF0ZSBhIGNpcmN1bGFyIGxpc3QuXG4gICAgICB1cGRhdGUubmV4dCA9IHVwZGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdXBkYXRlLm5leHQgPSBwZW5kaW5nLm5leHQ7XG4gICAgICBwZW5kaW5nLm5leHQgPSB1cGRhdGU7XG4gICAgfVxuXG4gICAgc2hhcmVkUXVldWUucGVuZGluZyA9IHVwZGF0ZTtcbiAgfVxuXG4gIHtcbiAgICBpZiAoY3VycmVudGx5UHJvY2Vzc2luZ1F1ZXVlID09PSBzaGFyZWRRdWV1ZSAmJiAhZGlkV2FyblVwZGF0ZUluc2lkZVVwZGF0ZSkge1xuICAgICAgZXJyb3IoJ0FuIHVwZGF0ZSAoc2V0U3RhdGUsIHJlcGxhY2VTdGF0ZSwgb3IgZm9yY2VVcGRhdGUpIHdhcyBzY2hlZHVsZWQgJyArICdmcm9tIGluc2lkZSBhbiB1cGRhdGUgZnVuY3Rpb24uIFVwZGF0ZSBmdW5jdGlvbnMgc2hvdWxkIGJlIHB1cmUsICcgKyAnd2l0aCB6ZXJvIHNpZGUtZWZmZWN0cy4gQ29uc2lkZXIgdXNpbmcgY29tcG9uZW50RGlkVXBkYXRlIG9yIGEgJyArICdjYWxsYmFjay4nKTtcblxuICAgICAgZGlkV2FyblVwZGF0ZUluc2lkZVVwZGF0ZSA9IHRydWU7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBlbnRhbmdsZVRyYW5zaXRpb25zKHJvb3QsIGZpYmVyLCBsYW5lKSB7XG4gIHZhciB1cGRhdGVRdWV1ZSA9IGZpYmVyLnVwZGF0ZVF1ZXVlO1xuXG4gIGlmICh1cGRhdGVRdWV1ZSA9PT0gbnVsbCkge1xuICAgIC8vIE9ubHkgb2NjdXJzIGlmIHRoZSBmaWJlciBoYXMgYmVlbiB1bm1vdW50ZWQuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIHNoYXJlZFF1ZXVlID0gdXBkYXRlUXVldWUuc2hhcmVkO1xuXG4gIGlmIChpc1RyYW5zaXRpb25MYW5lKGxhbmUpKSB7XG4gICAgdmFyIHF1ZXVlTGFuZXMgPSBzaGFyZWRRdWV1ZS5sYW5lczsgLy8gSWYgYW55IGVudGFuZ2xlZCBsYW5lcyBhcmUgbm8gbG9uZ2VyIHBlbmRpbmcgb24gdGhlIHJvb3QsIHRoZW4gdGhleSBtdXN0XG4gICAgLy8gaGF2ZSBmaW5pc2hlZC4gV2UgY2FuIHJlbW92ZSB0aGVtIGZyb20gdGhlIHNoYXJlZCBxdWV1ZSwgd2hpY2ggcmVwcmVzZW50c1xuICAgIC8vIGEgc3VwZXJzZXQgb2YgdGhlIGFjdHVhbGx5IHBlbmRpbmcgbGFuZXMuIEluIHNvbWUgY2FzZXMgd2UgbWF5IGVudGFuZ2xlXG4gICAgLy8gbW9yZSB0aGFuIHdlIG5lZWQgdG8sIGJ1dCB0aGF0J3MgT0suIEluIGZhY3QgaXQncyB3b3JzZSBpZiB3ZSAqZG9uJ3QqXG4gICAgLy8gZW50YW5nbGUgd2hlbiB3ZSBzaG91bGQuXG5cbiAgICBxdWV1ZUxhbmVzID0gaW50ZXJzZWN0TGFuZXMocXVldWVMYW5lcywgcm9vdC5wZW5kaW5nTGFuZXMpOyAvLyBFbnRhbmdsZSB0aGUgbmV3IHRyYW5zaXRpb24gbGFuZSB3aXRoIHRoZSBvdGhlciB0cmFuc2l0aW9uIGxhbmVzLlxuXG4gICAgdmFyIG5ld1F1ZXVlTGFuZXMgPSBtZXJnZUxhbmVzKHF1ZXVlTGFuZXMsIGxhbmUpO1xuICAgIHNoYXJlZFF1ZXVlLmxhbmVzID0gbmV3UXVldWVMYW5lczsgLy8gRXZlbiBpZiBxdWV1ZS5sYW5lcyBhbHJlYWR5IGluY2x1ZGUgbGFuZSwgd2UgZG9uJ3Qga25vdyBmb3IgY2VydGFpbiBpZlxuICAgIC8vIHRoZSBsYW5lIGZpbmlzaGVkIHNpbmNlIHRoZSBsYXN0IHRpbWUgd2UgZW50YW5nbGVkIGl0LiBTbyB3ZSBuZWVkIHRvXG4gICAgLy8gZW50YW5nbGUgaXQgYWdhaW4sIGp1c3QgdG8gYmUgc3VyZS5cblxuICAgIG1hcmtSb290RW50YW5nbGVkKHJvb3QsIG5ld1F1ZXVlTGFuZXMpO1xuICB9XG59XG5mdW5jdGlvbiBlbnF1ZXVlQ2FwdHVyZWRVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGNhcHR1cmVkVXBkYXRlKSB7XG4gIC8vIENhcHR1cmVkIHVwZGF0ZXMgYXJlIHVwZGF0ZXMgdGhhdCBhcmUgdGhyb3duIGJ5IGEgY2hpbGQgZHVyaW5nIHRoZSByZW5kZXJcbiAgLy8gcGhhc2UuIFRoZXkgc2hvdWxkIGJlIGRpc2NhcmRlZCBpZiB0aGUgcmVuZGVyIGlzIGFib3J0ZWQuIFRoZXJlZm9yZSxcbiAgLy8gd2Ugc2hvdWxkIG9ubHkgcHV0IHRoZW0gb24gdGhlIHdvcmstaW4tcHJvZ3Jlc3MgcXVldWUsIG5vdCB0aGUgY3VycmVudCBvbmUuXG4gIHZhciBxdWV1ZSA9IHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlOyAvLyBDaGVjayBpZiB0aGUgd29yay1pbi1wcm9ncmVzcyBxdWV1ZSBpcyBhIGNsb25lLlxuXG4gIHZhciBjdXJyZW50ID0gd29ya0luUHJvZ3Jlc3MuYWx0ZXJuYXRlO1xuXG4gIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgdmFyIGN1cnJlbnRRdWV1ZSA9IGN1cnJlbnQudXBkYXRlUXVldWU7XG5cbiAgICBpZiAocXVldWUgPT09IGN1cnJlbnRRdWV1ZSkge1xuICAgICAgLy8gVGhlIHdvcmstaW4tcHJvZ3Jlc3MgcXVldWUgaXMgdGhlIHNhbWUgYXMgY3VycmVudC4gVGhpcyBoYXBwZW5zIHdoZW5cbiAgICAgIC8vIHdlIGJhaWwgb3V0IG9uIGEgcGFyZW50IGZpYmVyIHRoYXQgdGhlbiBjYXB0dXJlcyBhbiBlcnJvciB0aHJvd24gYnlcbiAgICAgIC8vIGEgY2hpbGQuIFNpbmNlIHdlIHdhbnQgdG8gYXBwZW5kIHRoZSB1cGRhdGUgb25seSB0byB0aGUgd29yay1pblxuICAgICAgLy8gLXByb2dyZXNzIHF1ZXVlLCB3ZSBuZWVkIHRvIGNsb25lIHRoZSB1cGRhdGVzLiBXZSB1c3VhbGx5IGNsb25lIGR1cmluZ1xuICAgICAgLy8gcHJvY2Vzc1VwZGF0ZVF1ZXVlLCBidXQgdGhhdCBkaWRuJ3QgaGFwcGVuIGluIHRoaXMgY2FzZSBiZWNhdXNlIHdlXG4gICAgICAvLyBza2lwcGVkIG92ZXIgdGhlIHBhcmVudCB3aGVuIHdlIGJhaWxlZCBvdXQuXG4gICAgICB2YXIgbmV3Rmlyc3QgPSBudWxsO1xuICAgICAgdmFyIG5ld0xhc3QgPSBudWxsO1xuICAgICAgdmFyIGZpcnN0QmFzZVVwZGF0ZSA9IHF1ZXVlLmZpcnN0QmFzZVVwZGF0ZTtcblxuICAgICAgaWYgKGZpcnN0QmFzZVVwZGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAvLyBMb29wIHRocm91Z2ggdGhlIHVwZGF0ZXMgYW5kIGNsb25lIHRoZW0uXG4gICAgICAgIHZhciB1cGRhdGUgPSBmaXJzdEJhc2VVcGRhdGU7XG5cbiAgICAgICAgZG8ge1xuICAgICAgICAgIHZhciBjbG9uZSA9IHtcbiAgICAgICAgICAgIGV2ZW50VGltZTogdXBkYXRlLmV2ZW50VGltZSxcbiAgICAgICAgICAgIGxhbmU6IHVwZGF0ZS5sYW5lLFxuICAgICAgICAgICAgdGFnOiB1cGRhdGUudGFnLFxuICAgICAgICAgICAgcGF5bG9hZDogdXBkYXRlLnBheWxvYWQsXG4gICAgICAgICAgICBjYWxsYmFjazogdXBkYXRlLmNhbGxiYWNrLFxuICAgICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAobmV3TGFzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgbmV3Rmlyc3QgPSBuZXdMYXN0ID0gY2xvbmU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0xhc3QubmV4dCA9IGNsb25lO1xuICAgICAgICAgICAgbmV3TGFzdCA9IGNsb25lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHVwZGF0ZSA9IHVwZGF0ZS5uZXh0O1xuICAgICAgICB9IHdoaWxlICh1cGRhdGUgIT09IG51bGwpOyAvLyBBcHBlbmQgdGhlIGNhcHR1cmVkIHVwZGF0ZSB0aGUgZW5kIG9mIHRoZSBjbG9uZWQgbGlzdC5cblxuXG4gICAgICAgIGlmIChuZXdMYXN0ID09PSBudWxsKSB7XG4gICAgICAgICAgbmV3Rmlyc3QgPSBuZXdMYXN0ID0gY2FwdHVyZWRVcGRhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3TGFzdC5uZXh0ID0gY2FwdHVyZWRVcGRhdGU7XG4gICAgICAgICAgbmV3TGFzdCA9IGNhcHR1cmVkVXBkYXRlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGVyZSBhcmUgbm8gYmFzZSB1cGRhdGVzLlxuICAgICAgICBuZXdGaXJzdCA9IG5ld0xhc3QgPSBjYXB0dXJlZFVwZGF0ZTtcbiAgICAgIH1cblxuICAgICAgcXVldWUgPSB7XG4gICAgICAgIGJhc2VTdGF0ZTogY3VycmVudFF1ZXVlLmJhc2VTdGF0ZSxcbiAgICAgICAgZmlyc3RCYXNlVXBkYXRlOiBuZXdGaXJzdCxcbiAgICAgICAgbGFzdEJhc2VVcGRhdGU6IG5ld0xhc3QsXG4gICAgICAgIHNoYXJlZDogY3VycmVudFF1ZXVlLnNoYXJlZCxcbiAgICAgICAgZWZmZWN0czogY3VycmVudFF1ZXVlLmVmZmVjdHNcbiAgICAgIH07XG4gICAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IHF1ZXVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfSAvLyBBcHBlbmQgdGhlIHVwZGF0ZSB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LlxuXG5cbiAgdmFyIGxhc3RCYXNlVXBkYXRlID0gcXVldWUubGFzdEJhc2VVcGRhdGU7XG5cbiAgaWYgKGxhc3RCYXNlVXBkYXRlID09PSBudWxsKSB7XG4gICAgcXVldWUuZmlyc3RCYXNlVXBkYXRlID0gY2FwdHVyZWRVcGRhdGU7XG4gIH0gZWxzZSB7XG4gICAgbGFzdEJhc2VVcGRhdGUubmV4dCA9IGNhcHR1cmVkVXBkYXRlO1xuICB9XG5cbiAgcXVldWUubGFzdEJhc2VVcGRhdGUgPSBjYXB0dXJlZFVwZGF0ZTtcbn1cblxuZnVuY3Rpb24gZ2V0U3RhdGVGcm9tVXBkYXRlKHdvcmtJblByb2dyZXNzLCBxdWV1ZSwgdXBkYXRlLCBwcmV2U3RhdGUsIG5leHRQcm9wcywgaW5zdGFuY2UpIHtcbiAgc3dpdGNoICh1cGRhdGUudGFnKSB7XG4gICAgY2FzZSBSZXBsYWNlU3RhdGU6XG4gICAgICB7XG4gICAgICAgIHZhciBwYXlsb2FkID0gdXBkYXRlLnBheWxvYWQ7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBwYXlsb2FkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgLy8gVXBkYXRlciBmdW5jdGlvblxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGVudGVyRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgbmV4dFN0YXRlID0gcGF5bG9hZC5jYWxsKGluc3RhbmNlLCBwcmV2U3RhdGUsIG5leHRQcm9wcyk7XG5cbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpO1xuXG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcGF5bG9hZC5jYWxsKGluc3RhbmNlLCBwcmV2U3RhdGUsIG5leHRQcm9wcyk7XG4gICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoZmFsc2UpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGV4aXREaXNhbGxvd2VkQ29udGV4dFJlYWRJbkRFVigpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXh0U3RhdGU7XG4gICAgICAgIH0gLy8gU3RhdGUgb2JqZWN0XG5cblxuICAgICAgICByZXR1cm4gcGF5bG9hZDtcbiAgICAgIH1cblxuICAgIGNhc2UgQ2FwdHVyZVVwZGF0ZTpcbiAgICAgIHtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgPSB3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIH5TaG91bGRDYXB0dXJlIHwgRGlkQ2FwdHVyZTtcbiAgICAgIH1cbiAgICAvLyBJbnRlbnRpb25hbCBmYWxsdGhyb3VnaFxuXG4gICAgY2FzZSBVcGRhdGVTdGF0ZTpcbiAgICAgIHtcbiAgICAgICAgdmFyIF9wYXlsb2FkID0gdXBkYXRlLnBheWxvYWQ7XG4gICAgICAgIHZhciBwYXJ0aWFsU3RhdGU7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBfcGF5bG9hZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIC8vIFVwZGF0ZXIgZnVuY3Rpb25cbiAgICAgICAgICB7XG4gICAgICAgICAgICBlbnRlckRpc2FsbG93ZWRDb250ZXh0UmVhZEluREVWKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcGFydGlhbFN0YXRlID0gX3BheWxvYWQuY2FsbChpbnN0YW5jZSwgcHJldlN0YXRlLCBuZXh0UHJvcHMpO1xuXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKCB3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSkge1xuICAgICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyh0cnVlKTtcblxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIF9wYXlsb2FkLmNhbGwoaW5zdGFuY2UsIHByZXZTdGF0ZSwgbmV4dFByb3BzKTtcbiAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyhmYWxzZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXhpdERpc2FsbG93ZWRDb250ZXh0UmVhZEluREVWKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFBhcnRpYWwgc3RhdGUgb2JqZWN0XG4gICAgICAgICAgcGFydGlhbFN0YXRlID0gX3BheWxvYWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFydGlhbFN0YXRlID09PSBudWxsIHx8IHBhcnRpYWxTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gTnVsbCBhbmQgdW5kZWZpbmVkIGFyZSB0cmVhdGVkIGFzIG5vLW9wcy5cbiAgICAgICAgICByZXR1cm4gcHJldlN0YXRlO1xuICAgICAgICB9IC8vIE1lcmdlIHRoZSBwYXJ0aWFsIHN0YXRlIGFuZCB0aGUgcHJldmlvdXMgc3RhdGUuXG5cblxuICAgICAgICByZXR1cm4gYXNzaWduKHt9LCBwcmV2U3RhdGUsIHBhcnRpYWxTdGF0ZSk7XG4gICAgICB9XG5cbiAgICBjYXNlIEZvcmNlVXBkYXRlOlxuICAgICAge1xuICAgICAgICBoYXNGb3JjZVVwZGF0ZSA9IHRydWU7XG4gICAgICAgIHJldHVybiBwcmV2U3RhdGU7XG4gICAgICB9XG4gIH1cblxuICByZXR1cm4gcHJldlN0YXRlO1xufVxuXG5mdW5jdGlvbiBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIHByb3BzLCBpbnN0YW5jZSwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gVGhpcyBpcyBhbHdheXMgbm9uLW51bGwgb24gYSBDbGFzc0NvbXBvbmVudCBvciBIb3N0Um9vdFxuICB2YXIgcXVldWUgPSB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZTtcbiAgaGFzRm9yY2VVcGRhdGUgPSBmYWxzZTtcblxuICB7XG4gICAgY3VycmVudGx5UHJvY2Vzc2luZ1F1ZXVlID0gcXVldWUuc2hhcmVkO1xuICB9XG5cbiAgdmFyIGZpcnN0QmFzZVVwZGF0ZSA9IHF1ZXVlLmZpcnN0QmFzZVVwZGF0ZTtcbiAgdmFyIGxhc3RCYXNlVXBkYXRlID0gcXVldWUubGFzdEJhc2VVcGRhdGU7IC8vIENoZWNrIGlmIHRoZXJlIGFyZSBwZW5kaW5nIHVwZGF0ZXMuIElmIHNvLCB0cmFuc2ZlciB0aGVtIHRvIHRoZSBiYXNlIHF1ZXVlLlxuXG4gIHZhciBwZW5kaW5nUXVldWUgPSBxdWV1ZS5zaGFyZWQucGVuZGluZztcblxuICBpZiAocGVuZGluZ1F1ZXVlICE9PSBudWxsKSB7XG4gICAgcXVldWUuc2hhcmVkLnBlbmRpbmcgPSBudWxsOyAvLyBUaGUgcGVuZGluZyBxdWV1ZSBpcyBjaXJjdWxhci4gRGlzY29ubmVjdCB0aGUgcG9pbnRlciBiZXR3ZWVuIGZpcnN0XG4gICAgLy8gYW5kIGxhc3Qgc28gdGhhdCBpdCdzIG5vbi1jaXJjdWxhci5cblxuICAgIHZhciBsYXN0UGVuZGluZ1VwZGF0ZSA9IHBlbmRpbmdRdWV1ZTtcbiAgICB2YXIgZmlyc3RQZW5kaW5nVXBkYXRlID0gbGFzdFBlbmRpbmdVcGRhdGUubmV4dDtcbiAgICBsYXN0UGVuZGluZ1VwZGF0ZS5uZXh0ID0gbnVsbDsgLy8gQXBwZW5kIHBlbmRpbmcgdXBkYXRlcyB0byBiYXNlIHF1ZXVlXG5cbiAgICBpZiAobGFzdEJhc2VVcGRhdGUgPT09IG51bGwpIHtcbiAgICAgIGZpcnN0QmFzZVVwZGF0ZSA9IGZpcnN0UGVuZGluZ1VwZGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGFzdEJhc2VVcGRhdGUubmV4dCA9IGZpcnN0UGVuZGluZ1VwZGF0ZTtcbiAgICB9XG5cbiAgICBsYXN0QmFzZVVwZGF0ZSA9IGxhc3RQZW5kaW5nVXBkYXRlOyAvLyBJZiB0aGVyZSdzIGEgY3VycmVudCBxdWV1ZSwgYW5kIGl0J3MgZGlmZmVyZW50IGZyb20gdGhlIGJhc2UgcXVldWUsIHRoZW5cbiAgICAvLyB3ZSBuZWVkIHRvIHRyYW5zZmVyIHRoZSB1cGRhdGVzIHRvIHRoYXQgcXVldWUsIHRvby4gQmVjYXVzZSB0aGUgYmFzZVxuICAgIC8vIHF1ZXVlIGlzIGEgc2luZ2x5LWxpbmtlZCBsaXN0IHdpdGggbm8gY3ljbGVzLCB3ZSBjYW4gYXBwZW5kIHRvIGJvdGhcbiAgICAvLyBsaXN0cyBhbmQgdGFrZSBhZHZhbnRhZ2Ugb2Ygc3RydWN0dXJhbCBzaGFyaW5nLlxuICAgIC8vIFRPRE86IFBhc3MgYGN1cnJlbnRgIGFzIGFyZ3VtZW50XG5cbiAgICB2YXIgY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZTtcblxuICAgIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIGlzIGFsd2F5cyBub24tbnVsbCBvbiBhIENsYXNzQ29tcG9uZW50IG9yIEhvc3RSb290XG4gICAgICB2YXIgY3VycmVudFF1ZXVlID0gY3VycmVudC51cGRhdGVRdWV1ZTtcbiAgICAgIHZhciBjdXJyZW50TGFzdEJhc2VVcGRhdGUgPSBjdXJyZW50UXVldWUubGFzdEJhc2VVcGRhdGU7XG5cbiAgICAgIGlmIChjdXJyZW50TGFzdEJhc2VVcGRhdGUgIT09IGxhc3RCYXNlVXBkYXRlKSB7XG4gICAgICAgIGlmIChjdXJyZW50TGFzdEJhc2VVcGRhdGUgPT09IG51bGwpIHtcbiAgICAgICAgICBjdXJyZW50UXVldWUuZmlyc3RCYXNlVXBkYXRlID0gZmlyc3RQZW5kaW5nVXBkYXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN1cnJlbnRMYXN0QmFzZVVwZGF0ZS5uZXh0ID0gZmlyc3RQZW5kaW5nVXBkYXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudFF1ZXVlLmxhc3RCYXNlVXBkYXRlID0gbGFzdFBlbmRpbmdVcGRhdGU7XG4gICAgICB9XG4gICAgfVxuICB9IC8vIFRoZXNlIHZhbHVlcyBtYXkgY2hhbmdlIGFzIHdlIHByb2Nlc3MgdGhlIHF1ZXVlLlxuXG5cbiAgaWYgKGZpcnN0QmFzZVVwZGF0ZSAhPT0gbnVsbCkge1xuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgbGlzdCBvZiB1cGRhdGVzIHRvIGNvbXB1dGUgdGhlIHJlc3VsdC5cbiAgICB2YXIgbmV3U3RhdGUgPSBxdWV1ZS5iYXNlU3RhdGU7IC8vIFRPRE86IERvbid0IG5lZWQgdG8gYWNjdW11bGF0ZSB0aGlzLiBJbnN0ZWFkLCB3ZSBjYW4gcmVtb3ZlIHJlbmRlckxhbmVzXG4gICAgLy8gZnJvbSB0aGUgb3JpZ2luYWwgbGFuZXMuXG5cbiAgICB2YXIgbmV3TGFuZXMgPSBOb0xhbmVzO1xuICAgIHZhciBuZXdCYXNlU3RhdGUgPSBudWxsO1xuICAgIHZhciBuZXdGaXJzdEJhc2VVcGRhdGUgPSBudWxsO1xuICAgIHZhciBuZXdMYXN0QmFzZVVwZGF0ZSA9IG51bGw7XG4gICAgdmFyIHVwZGF0ZSA9IGZpcnN0QmFzZVVwZGF0ZTtcblxuICAgIGRvIHtcbiAgICAgIHZhciB1cGRhdGVMYW5lID0gdXBkYXRlLmxhbmU7XG4gICAgICB2YXIgdXBkYXRlRXZlbnRUaW1lID0gdXBkYXRlLmV2ZW50VGltZTtcblxuICAgICAgaWYgKCFpc1N1YnNldE9mTGFuZXMocmVuZGVyTGFuZXMsIHVwZGF0ZUxhbmUpKSB7XG4gICAgICAgIC8vIFByaW9yaXR5IGlzIGluc3VmZmljaWVudC4gU2tpcCB0aGlzIHVwZGF0ZS4gSWYgdGhpcyBpcyB0aGUgZmlyc3RcbiAgICAgICAgLy8gc2tpcHBlZCB1cGRhdGUsIHRoZSBwcmV2aW91cyB1cGRhdGUvc3RhdGUgaXMgdGhlIG5ldyBiYXNlXG4gICAgICAgIC8vIHVwZGF0ZS9zdGF0ZS5cbiAgICAgICAgdmFyIGNsb25lID0ge1xuICAgICAgICAgIGV2ZW50VGltZTogdXBkYXRlRXZlbnRUaW1lLFxuICAgICAgICAgIGxhbmU6IHVwZGF0ZUxhbmUsXG4gICAgICAgICAgdGFnOiB1cGRhdGUudGFnLFxuICAgICAgICAgIHBheWxvYWQ6IHVwZGF0ZS5wYXlsb2FkLFxuICAgICAgICAgIGNhbGxiYWNrOiB1cGRhdGUuY2FsbGJhY2ssXG4gICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChuZXdMYXN0QmFzZVVwZGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIG5ld0ZpcnN0QmFzZVVwZGF0ZSA9IG5ld0xhc3RCYXNlVXBkYXRlID0gY2xvbmU7XG4gICAgICAgICAgbmV3QmFzZVN0YXRlID0gbmV3U3RhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3TGFzdEJhc2VVcGRhdGUgPSBuZXdMYXN0QmFzZVVwZGF0ZS5uZXh0ID0gY2xvbmU7XG4gICAgICAgIH0gLy8gVXBkYXRlIHRoZSByZW1haW5pbmcgcHJpb3JpdHkgaW4gdGhlIHF1ZXVlLlxuXG5cbiAgICAgICAgbmV3TGFuZXMgPSBtZXJnZUxhbmVzKG5ld0xhbmVzLCB1cGRhdGVMYW5lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgdXBkYXRlIGRvZXMgaGF2ZSBzdWZmaWNpZW50IHByaW9yaXR5LlxuICAgICAgICBpZiAobmV3TGFzdEJhc2VVcGRhdGUgIT09IG51bGwpIHtcbiAgICAgICAgICB2YXIgX2Nsb25lID0ge1xuICAgICAgICAgICAgZXZlbnRUaW1lOiB1cGRhdGVFdmVudFRpbWUsXG4gICAgICAgICAgICAvLyBUaGlzIHVwZGF0ZSBpcyBnb2luZyB0byBiZSBjb21taXR0ZWQgc28gd2UgbmV2ZXIgd2FudCB1bmNvbW1pdFxuICAgICAgICAgICAgLy8gaXQuIFVzaW5nIE5vTGFuZSB3b3JrcyBiZWNhdXNlIDAgaXMgYSBzdWJzZXQgb2YgYWxsIGJpdG1hc2tzLCBzb1xuICAgICAgICAgICAgLy8gdGhpcyB3aWxsIG5ldmVyIGJlIHNraXBwZWQgYnkgdGhlIGNoZWNrIGFib3ZlLlxuICAgICAgICAgICAgbGFuZTogTm9MYW5lLFxuICAgICAgICAgICAgdGFnOiB1cGRhdGUudGFnLFxuICAgICAgICAgICAgcGF5bG9hZDogdXBkYXRlLnBheWxvYWQsXG4gICAgICAgICAgICBjYWxsYmFjazogdXBkYXRlLmNhbGxiYWNrLFxuICAgICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICAgIH07XG4gICAgICAgICAgbmV3TGFzdEJhc2VVcGRhdGUgPSBuZXdMYXN0QmFzZVVwZGF0ZS5uZXh0ID0gX2Nsb25lO1xuICAgICAgICB9IC8vIFByb2Nlc3MgdGhpcyB1cGRhdGUuXG5cblxuICAgICAgICBuZXdTdGF0ZSA9IGdldFN0YXRlRnJvbVVwZGF0ZSh3b3JrSW5Qcm9ncmVzcywgcXVldWUsIHVwZGF0ZSwgbmV3U3RhdGUsIHByb3BzLCBpbnN0YW5jZSk7XG4gICAgICAgIHZhciBjYWxsYmFjayA9IHVwZGF0ZS5jYWxsYmFjaztcblxuICAgICAgICBpZiAoY2FsbGJhY2sgIT09IG51bGwgJiYgLy8gSWYgdGhlIHVwZGF0ZSB3YXMgYWxyZWFkeSBjb21taXR0ZWQsIHdlIHNob3VsZCBub3QgcXVldWUgaXRzXG4gICAgICAgIC8vIGNhbGxiYWNrIGFnYWluLlxuICAgICAgICB1cGRhdGUubGFuZSAhPT0gTm9MYW5lKSB7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gQ2FsbGJhY2s7XG4gICAgICAgICAgdmFyIGVmZmVjdHMgPSBxdWV1ZS5lZmZlY3RzO1xuXG4gICAgICAgICAgaWYgKGVmZmVjdHMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHF1ZXVlLmVmZmVjdHMgPSBbdXBkYXRlXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWZmZWN0cy5wdXNoKHVwZGF0ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZSA9IHVwZGF0ZS5uZXh0O1xuXG4gICAgICBpZiAodXBkYXRlID09PSBudWxsKSB7XG4gICAgICAgIHBlbmRpbmdRdWV1ZSA9IHF1ZXVlLnNoYXJlZC5wZW5kaW5nO1xuXG4gICAgICAgIGlmIChwZW5kaW5nUXVldWUgPT09IG51bGwpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBBbiB1cGRhdGUgd2FzIHNjaGVkdWxlZCBmcm9tIGluc2lkZSBhIHJlZHVjZXIuIEFkZCB0aGUgbmV3XG4gICAgICAgICAgLy8gcGVuZGluZyB1cGRhdGVzIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QgYW5kIGtlZXAgcHJvY2Vzc2luZy5cbiAgICAgICAgICB2YXIgX2xhc3RQZW5kaW5nVXBkYXRlID0gcGVuZGluZ1F1ZXVlOyAvLyBJbnRlbnRpb25hbGx5IHVuc291bmQuIFBlbmRpbmcgdXBkYXRlcyBmb3JtIGEgY2lyY3VsYXIgbGlzdCwgYnV0IHdlXG4gICAgICAgICAgLy8gdW5yYXZlbCB0aGVtIHdoZW4gdHJhbnNmZXJyaW5nIHRoZW0gdG8gdGhlIGJhc2UgcXVldWUuXG5cbiAgICAgICAgICB2YXIgX2ZpcnN0UGVuZGluZ1VwZGF0ZSA9IF9sYXN0UGVuZGluZ1VwZGF0ZS5uZXh0O1xuICAgICAgICAgIF9sYXN0UGVuZGluZ1VwZGF0ZS5uZXh0ID0gbnVsbDtcbiAgICAgICAgICB1cGRhdGUgPSBfZmlyc3RQZW5kaW5nVXBkYXRlO1xuICAgICAgICAgIHF1ZXVlLmxhc3RCYXNlVXBkYXRlID0gX2xhc3RQZW5kaW5nVXBkYXRlO1xuICAgICAgICAgIHF1ZXVlLnNoYXJlZC5wZW5kaW5nID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gd2hpbGUgKHRydWUpO1xuXG4gICAgaWYgKG5ld0xhc3RCYXNlVXBkYXRlID09PSBudWxsKSB7XG4gICAgICBuZXdCYXNlU3RhdGUgPSBuZXdTdGF0ZTtcbiAgICB9XG5cbiAgICBxdWV1ZS5iYXNlU3RhdGUgPSBuZXdCYXNlU3RhdGU7XG4gICAgcXVldWUuZmlyc3RCYXNlVXBkYXRlID0gbmV3Rmlyc3RCYXNlVXBkYXRlO1xuICAgIHF1ZXVlLmxhc3RCYXNlVXBkYXRlID0gbmV3TGFzdEJhc2VVcGRhdGU7IC8vIEludGVybGVhdmVkIHVwZGF0ZXMgYXJlIHN0b3JlZCBvbiBhIHNlcGFyYXRlIHF1ZXVlLiBXZSBhcmVuJ3QgZ29pbmcgdG9cbiAgICAvLyBwcm9jZXNzIHRoZW0gZHVyaW5nIHRoaXMgcmVuZGVyLCBidXQgd2UgZG8gbmVlZCB0byB0cmFjayB3aGljaCBsYW5lc1xuICAgIC8vIGFyZSByZW1haW5pbmcuXG5cbiAgICB2YXIgbGFzdEludGVybGVhdmVkID0gcXVldWUuc2hhcmVkLmludGVybGVhdmVkO1xuXG4gICAgaWYgKGxhc3RJbnRlcmxlYXZlZCAhPT0gbnVsbCkge1xuICAgICAgdmFyIGludGVybGVhdmVkID0gbGFzdEludGVybGVhdmVkO1xuXG4gICAgICBkbyB7XG4gICAgICAgIG5ld0xhbmVzID0gbWVyZ2VMYW5lcyhuZXdMYW5lcywgaW50ZXJsZWF2ZWQubGFuZSk7XG4gICAgICAgIGludGVybGVhdmVkID0gaW50ZXJsZWF2ZWQubmV4dDtcbiAgICAgIH0gd2hpbGUgKGludGVybGVhdmVkICE9PSBsYXN0SW50ZXJsZWF2ZWQpO1xuICAgIH0gZWxzZSBpZiAoZmlyc3RCYXNlVXBkYXRlID09PSBudWxsKSB7XG4gICAgICAvLyBgcXVldWUubGFuZXNgIGlzIHVzZWQgZm9yIGVudGFuZ2xpbmcgdHJhbnNpdGlvbnMuIFdlIGNhbiBzZXQgaXQgYmFjayB0b1xuICAgICAgLy8gemVybyBvbmNlIHRoZSBxdWV1ZSBpcyBlbXB0eS5cbiAgICAgIHF1ZXVlLnNoYXJlZC5sYW5lcyA9IE5vTGFuZXM7XG4gICAgfSAvLyBTZXQgdGhlIHJlbWFpbmluZyBleHBpcmF0aW9uIHRpbWUgdG8gYmUgd2hhdGV2ZXIgaXMgcmVtYWluaW5nIGluIHRoZSBxdWV1ZS5cbiAgICAvLyBUaGlzIHNob3VsZCBiZSBmaW5lIGJlY2F1c2UgdGhlIG9ubHkgdHdvIG90aGVyIHRoaW5ncyB0aGF0IGNvbnRyaWJ1dGUgdG9cbiAgICAvLyBleHBpcmF0aW9uIHRpbWUgYXJlIHByb3BzIGFuZCBjb250ZXh0LiBXZSdyZSBhbHJlYWR5IGluIHRoZSBtaWRkbGUgb2YgdGhlXG4gICAgLy8gYmVnaW4gcGhhc2UgYnkgdGhlIHRpbWUgd2Ugc3RhcnQgcHJvY2Vzc2luZyB0aGUgcXVldWUsIHNvIHdlJ3ZlIGFscmVhZHlcbiAgICAvLyBkZWFsdCB3aXRoIHRoZSBwcm9wcy4gQ29udGV4dCBpbiBjb21wb25lbnRzIHRoYXQgc3BlY2lmeVxuICAgIC8vIHNob3VsZENvbXBvbmVudFVwZGF0ZSBpcyB0cmlja3k7IGJ1dCB3ZSdsbCBoYXZlIHRvIGFjY291bnQgZm9yXG4gICAgLy8gdGhhdCByZWdhcmRsZXNzLlxuXG5cbiAgICBtYXJrU2tpcHBlZFVwZGF0ZUxhbmVzKG5ld0xhbmVzKTtcbiAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IG5ld0xhbmVzO1xuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBuZXdTdGF0ZTtcbiAgfVxuXG4gIHtcbiAgICBjdXJyZW50bHlQcm9jZXNzaW5nUXVldWUgPSBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbGxDYWxsYmFjayhjYWxsYmFjaywgY29udGV4dCkge1xuICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCBhcyBjYWxsYmFjay4gRXhwZWN0ZWQgYSBmdW5jdGlvbi4gSW5zdGVhZCAnICsgKFwicmVjZWl2ZWQ6IFwiICsgY2FsbGJhY2spKTtcbiAgfVxuXG4gIGNhbGxiYWNrLmNhbGwoY29udGV4dCk7XG59XG5cbmZ1bmN0aW9uIHJlc2V0SGFzRm9yY2VVcGRhdGVCZWZvcmVQcm9jZXNzaW5nKCkge1xuICBoYXNGb3JjZVVwZGF0ZSA9IGZhbHNlO1xufVxuZnVuY3Rpb24gY2hlY2tIYXNGb3JjZVVwZGF0ZUFmdGVyUHJvY2Vzc2luZygpIHtcbiAgcmV0dXJuIGhhc0ZvcmNlVXBkYXRlO1xufVxuZnVuY3Rpb24gY29tbWl0VXBkYXRlUXVldWUoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFF1ZXVlLCBpbnN0YW5jZSkge1xuICAvLyBDb21taXQgdGhlIGVmZmVjdHNcbiAgdmFyIGVmZmVjdHMgPSBmaW5pc2hlZFF1ZXVlLmVmZmVjdHM7XG4gIGZpbmlzaGVkUXVldWUuZWZmZWN0cyA9IG51bGw7XG5cbiAgaWYgKGVmZmVjdHMgIT09IG51bGwpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVmZmVjdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlZmZlY3QgPSBlZmZlY3RzW2ldO1xuICAgICAgdmFyIGNhbGxiYWNrID0gZWZmZWN0LmNhbGxiYWNrO1xuXG4gICAgICBpZiAoY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgICAgZWZmZWN0LmNhbGxiYWNrID0gbnVsbDtcbiAgICAgICAgY2FsbENhbGxiYWNrKGNhbGxiYWNrLCBpbnN0YW5jZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBmYWtlSW50ZXJuYWxJbnN0YW5jZSA9IHt9OyAvLyBSZWFjdC5Db21wb25lbnQgdXNlcyBhIHNoYXJlZCBmcm96ZW4gb2JqZWN0IGJ5IGRlZmF1bHQuXG4vLyBXZSdsbCB1c2UgaXQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UgbmVlZCB0byBpbml0aWFsaXplIGxlZ2FjeSByZWZzLlxuXG52YXIgZW1wdHlSZWZzT2JqZWN0ID0gbmV3IFJlYWN0LkNvbXBvbmVudCgpLnJlZnM7XG52YXIgZGlkV2FybkFib3V0U3RhdGVBc3NpZ25tZW50Rm9yQ29tcG9uZW50O1xudmFyIGRpZFdhcm5BYm91dFVuaW5pdGlhbGl6ZWRTdGF0ZTtcbnZhciBkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGU7XG52YXIgZGlkV2FybkFib3V0TGVnYWN5TGlmZWN5Y2xlc0FuZERlcml2ZWRTdGF0ZTtcbnZhciBkaWRXYXJuQWJvdXRVbmRlZmluZWREZXJpdmVkU3RhdGU7XG52YXIgd2Fybk9uVW5kZWZpbmVkRGVyaXZlZFN0YXRlO1xudmFyIHdhcm5PbkludmFsaWRDYWxsYmFjaztcbnZhciBkaWRXYXJuQWJvdXREaXJlY3RseUFzc2lnbmluZ1Byb3BzVG9TdGF0ZTtcbnZhciBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZUFuZENvbnRleHRUeXBlcztcbnZhciBkaWRXYXJuQWJvdXRJbnZhbGlkYXRlQ29udGV4dFR5cGU7XG5cbntcbiAgZGlkV2FybkFib3V0U3RhdGVBc3NpZ25tZW50Rm9yQ29tcG9uZW50ID0gbmV3IFNldCgpO1xuICBkaWRXYXJuQWJvdXRVbmluaXRpYWxpemVkU3RhdGUgPSBuZXcgU2V0KCk7XG4gIGRpZFdhcm5BYm91dEdldFNuYXBzaG90QmVmb3JlVXBkYXRlV2l0aG91dERpZFVwZGF0ZSA9IG5ldyBTZXQoKTtcbiAgZGlkV2FybkFib3V0TGVnYWN5TGlmZWN5Y2xlc0FuZERlcml2ZWRTdGF0ZSA9IG5ldyBTZXQoKTtcbiAgZGlkV2FybkFib3V0RGlyZWN0bHlBc3NpZ25pbmdQcm9wc1RvU3RhdGUgPSBuZXcgU2V0KCk7XG4gIGRpZFdhcm5BYm91dFVuZGVmaW5lZERlcml2ZWRTdGF0ZSA9IG5ldyBTZXQoKTtcbiAgZGlkV2FybkFib3V0Q29udGV4dFR5cGVBbmRDb250ZXh0VHlwZXMgPSBuZXcgU2V0KCk7XG4gIGRpZFdhcm5BYm91dEludmFsaWRhdGVDb250ZXh0VHlwZSA9IG5ldyBTZXQoKTtcbiAgdmFyIGRpZFdhcm5PbkludmFsaWRDYWxsYmFjayA9IG5ldyBTZXQoKTtcblxuICB3YXJuT25JbnZhbGlkQ2FsbGJhY2sgPSBmdW5jdGlvbiAoY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAgICBpZiAoY2FsbGJhY2sgPT09IG51bGwgfHwgdHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGtleSA9IGNhbGxlck5hbWUgKyAnXycgKyBjYWxsYmFjaztcblxuICAgIGlmICghZGlkV2Fybk9uSW52YWxpZENhbGxiYWNrLmhhcyhrZXkpKSB7XG4gICAgICBkaWRXYXJuT25JbnZhbGlkQ2FsbGJhY2suYWRkKGtleSk7XG5cbiAgICAgIGVycm9yKCclcyguLi4pOiBFeHBlY3RlZCB0aGUgbGFzdCBvcHRpb25hbCBgY2FsbGJhY2tgIGFyZ3VtZW50IHRvIGJlIGEgJyArICdmdW5jdGlvbi4gSW5zdGVhZCByZWNlaXZlZDogJXMuJywgY2FsbGVyTmFtZSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfTtcblxuICB3YXJuT25VbmRlZmluZWREZXJpdmVkU3RhdGUgPSBmdW5jdGlvbiAodHlwZSwgcGFydGlhbFN0YXRlKSB7XG4gICAgaWYgKHBhcnRpYWxTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB8fCAnQ29tcG9uZW50JztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRVbmRlZmluZWREZXJpdmVkU3RhdGUuaGFzKGNvbXBvbmVudE5hbWUpKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dFVuZGVmaW5lZERlcml2ZWRTdGF0ZS5hZGQoY29tcG9uZW50TmFtZSk7XG5cbiAgICAgICAgZXJyb3IoJyVzLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcygpOiBBIHZhbGlkIHN0YXRlIG9iamVjdCAob3IgbnVsbCkgbXVzdCBiZSByZXR1cm5lZC4gJyArICdZb3UgaGF2ZSByZXR1cm5lZCB1bmRlZmluZWQuJywgY29tcG9uZW50TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9OyAvLyBUaGlzIGlzIHNvIGdyb3NzIGJ1dCBpdCdzIGF0IGxlYXN0IG5vbi1jcml0aWNhbCBhbmQgY2FuIGJlIHJlbW92ZWQgaWZcbiAgLy8gaXQgY2F1c2VzIHByb2JsZW1zLiBUaGlzIGlzIG1lYW50IHRvIGdpdmUgYSBuaWNlciBlcnJvciBtZXNzYWdlIGZvclxuICAvLyBSZWFjdERPTTE1LnVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyKHJlYWN0RE9NMTZDb21wb25lbnQsXG4gIC8vIC4uLikpIHdoaWNoIG90aGVyd2lzZSB0aHJvd3MgYSBcIl9wcm9jZXNzQ2hpbGRDb250ZXh0IGlzIG5vdCBhIGZ1bmN0aW9uXCJcbiAgLy8gZXhjZXB0aW9uLlxuXG5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGZha2VJbnRlcm5hbEluc3RhbmNlLCAnX3Byb2Nlc3NDaGlsZENvbnRleHQnLCB7XG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgdmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignX3Byb2Nlc3NDaGlsZENvbnRleHQgaXMgbm90IGF2YWlsYWJsZSBpbiBSZWFjdCAxNisuIFRoaXMgbGlrZWx5ICcgKyAnbWVhbnMgeW91IGhhdmUgbXVsdGlwbGUgY29waWVzIG9mIFJlYWN0IGFuZCBhcmUgYXR0ZW1wdGluZyB0byBuZXN0ICcgKyAnYSBSZWFjdCAxNSB0cmVlIGluc2lkZSBhIFJlYWN0IDE2IHRyZWUgdXNpbmcgJyArIFwidW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIsIHdoaWNoIGlzbid0IHN1cHBvcnRlZC4gVHJ5IFwiICsgJ3RvIG1ha2Ugc3VyZSB5b3UgaGF2ZSBvbmx5IG9uZSBjb3B5IG9mIFJlYWN0IChhbmQgaWRlYWxseSwgc3dpdGNoICcgKyAndG8gUmVhY3RET00uY3JlYXRlUG9ydGFsKS4nKTtcbiAgICB9XG4gIH0pO1xuICBPYmplY3QuZnJlZXplKGZha2VJbnRlcm5hbEluc3RhbmNlKTtcbn1cblxuZnVuY3Rpb24gYXBwbHlEZXJpdmVkU3RhdGVGcm9tUHJvcHMod29ya0luUHJvZ3Jlc3MsIGN0b3IsIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcywgbmV4dFByb3BzKSB7XG4gIHZhciBwcmV2U3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICB2YXIgcGFydGlhbFN0YXRlID0gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlKTtcblxuICB7XG4gICAgaWYgKCB3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSkge1xuICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHModHJ1ZSk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIEludm9rZSB0aGUgZnVuY3Rpb24gYW4gZXh0cmEgdGltZSB0byBoZWxwIGRldGVjdCBzaWRlLWVmZmVjdHMuXG4gICAgICAgIHBhcnRpYWxTdGF0ZSA9IGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhuZXh0UHJvcHMsIHByZXZTdGF0ZSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyhmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgd2Fybk9uVW5kZWZpbmVkRGVyaXZlZFN0YXRlKGN0b3IsIHBhcnRpYWxTdGF0ZSk7XG4gIH0gLy8gTWVyZ2UgdGhlIHBhcnRpYWwgc3RhdGUgYW5kIHRoZSBwcmV2aW91cyBzdGF0ZS5cblxuXG4gIHZhciBtZW1vaXplZFN0YXRlID0gcGFydGlhbFN0YXRlID09PSBudWxsIHx8IHBhcnRpYWxTdGF0ZSA9PT0gdW5kZWZpbmVkID8gcHJldlN0YXRlIDogYXNzaWduKHt9LCBwcmV2U3RhdGUsIHBhcnRpYWxTdGF0ZSk7XG4gIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBtZW1vaXplZFN0YXRlOyAvLyBPbmNlIHRoZSB1cGRhdGUgcXVldWUgaXMgZW1wdHksIHBlcnNpc3QgdGhlIGRlcml2ZWQgc3RhdGUgb250byB0aGVcbiAgLy8gYmFzZSBzdGF0ZS5cblxuICBpZiAod29ya0luUHJvZ3Jlc3MubGFuZXMgPT09IE5vTGFuZXMpIHtcbiAgICAvLyBRdWV1ZSBpcyBhbHdheXMgbm9uLW51bGwgZm9yIGNsYXNzZXNcbiAgICB2YXIgdXBkYXRlUXVldWUgPSB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZTtcbiAgICB1cGRhdGVRdWV1ZS5iYXNlU3RhdGUgPSBtZW1vaXplZFN0YXRlO1xuICB9XG59XG5cbnZhciBjbGFzc0NvbXBvbmVudFVwZGF0ZXIgPSB7XG4gIGlzTW91bnRlZDogaXNNb3VudGVkLFxuICBlbnF1ZXVlU2V0U3RhdGU6IGZ1bmN0aW9uIChpbnN0LCBwYXlsb2FkLCBjYWxsYmFjaykge1xuICAgIHZhciBmaWJlciA9IGdldChpbnN0KTtcbiAgICB2YXIgZXZlbnRUaW1lID0gcmVxdWVzdEV2ZW50VGltZSgpO1xuICAgIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpO1xuICAgIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoZXZlbnRUaW1lLCBsYW5lKTtcbiAgICB1cGRhdGUucGF5bG9hZCA9IHBheWxvYWQ7XG5cbiAgICBpZiAoY2FsbGJhY2sgIT09IHVuZGVmaW5lZCAmJiBjYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAge1xuICAgICAgICB3YXJuT25JbnZhbGlkQ2FsbGJhY2soY2FsbGJhY2ssICdzZXRTdGF0ZScpO1xuICAgICAgfVxuXG4gICAgICB1cGRhdGUuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB9XG5cbiAgICBlbnF1ZXVlVXBkYXRlKGZpYmVyLCB1cGRhdGUpO1xuICAgIHZhciByb290ID0gc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBsYW5lLCBldmVudFRpbWUpO1xuXG4gICAgaWYgKHJvb3QgIT09IG51bGwpIHtcbiAgICAgIGVudGFuZ2xlVHJhbnNpdGlvbnMocm9vdCwgZmliZXIsIGxhbmUpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIG1hcmtTdGF0ZVVwZGF0ZVNjaGVkdWxlZChmaWJlciwgbGFuZSk7XG4gICAgfVxuICB9LFxuICBlbnF1ZXVlUmVwbGFjZVN0YXRlOiBmdW5jdGlvbiAoaW5zdCwgcGF5bG9hZCwgY2FsbGJhY2spIHtcbiAgICB2YXIgZmliZXIgPSBnZXQoaW5zdCk7XG4gICAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgICB2YXIgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKTtcbiAgICB2YXIgdXBkYXRlID0gY3JlYXRlVXBkYXRlKGV2ZW50VGltZSwgbGFuZSk7XG4gICAgdXBkYXRlLnRhZyA9IFJlcGxhY2VTdGF0ZTtcbiAgICB1cGRhdGUucGF5bG9hZCA9IHBheWxvYWQ7XG5cbiAgICBpZiAoY2FsbGJhY2sgIT09IHVuZGVmaW5lZCAmJiBjYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAge1xuICAgICAgICB3YXJuT25JbnZhbGlkQ2FsbGJhY2soY2FsbGJhY2ssICdyZXBsYWNlU3RhdGUnKTtcbiAgICAgIH1cblxuICAgICAgdXBkYXRlLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgfVxuXG4gICAgZW5xdWV1ZVVwZGF0ZShmaWJlciwgdXBkYXRlKTtcbiAgICB2YXIgcm9vdCA9IHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgbGFuZSwgZXZlbnRUaW1lKTtcblxuICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICBlbnRhbmdsZVRyYW5zaXRpb25zKHJvb3QsIGZpYmVyLCBsYW5lKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBtYXJrU3RhdGVVcGRhdGVTY2hlZHVsZWQoZmliZXIsIGxhbmUpO1xuICAgIH1cbiAgfSxcbiAgZW5xdWV1ZUZvcmNlVXBkYXRlOiBmdW5jdGlvbiAoaW5zdCwgY2FsbGJhY2spIHtcbiAgICB2YXIgZmliZXIgPSBnZXQoaW5zdCk7XG4gICAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgICB2YXIgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKTtcbiAgICB2YXIgdXBkYXRlID0gY3JlYXRlVXBkYXRlKGV2ZW50VGltZSwgbGFuZSk7XG4gICAgdXBkYXRlLnRhZyA9IEZvcmNlVXBkYXRlO1xuXG4gICAgaWYgKGNhbGxiYWNrICE9PSB1bmRlZmluZWQgJiYgY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgIHtcbiAgICAgICAgd2Fybk9uSW52YWxpZENhbGxiYWNrKGNhbGxiYWNrLCAnZm9yY2VVcGRhdGUnKTtcbiAgICAgIH1cblxuICAgICAgdXBkYXRlLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgfVxuXG4gICAgZW5xdWV1ZVVwZGF0ZShmaWJlciwgdXBkYXRlKTtcbiAgICB2YXIgcm9vdCA9IHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgbGFuZSwgZXZlbnRUaW1lKTtcblxuICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICBlbnRhbmdsZVRyYW5zaXRpb25zKHJvb3QsIGZpYmVyLCBsYW5lKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBtYXJrRm9yY2VVcGRhdGVTY2hlZHVsZWQoZmliZXIsIGxhbmUpO1xuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gY2hlY2tTaG91bGRDb21wb25lbnRVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGN0b3IsIG9sZFByb3BzLCBuZXdQcm9wcywgb2xkU3RhdGUsIG5ld1N0YXRlLCBuZXh0Q29udGV4dCkge1xuICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgaWYgKHR5cGVvZiBpbnN0YW5jZS5zaG91bGRDb21wb25lbnRVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgc2hvdWxkVXBkYXRlID0gaW5zdGFuY2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5ld1Byb3BzLCBuZXdTdGF0ZSwgbmV4dENvbnRleHQpO1xuXG4gICAge1xuICAgICAgaWYgKCB3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSkge1xuICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyh0cnVlKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIEludm9rZSB0aGUgZnVuY3Rpb24gYW4gZXh0cmEgdGltZSB0byBoZWxwIGRldGVjdCBzaWRlLWVmZmVjdHMuXG4gICAgICAgICAgc2hvdWxkVXBkYXRlID0gaW5zdGFuY2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5ld1Byb3BzLCBuZXdTdGF0ZSwgbmV4dENvbnRleHQpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc2hvdWxkVXBkYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZXJyb3IoJyVzLnNob3VsZENvbXBvbmVudFVwZGF0ZSgpOiBSZXR1cm5lZCB1bmRlZmluZWQgaW5zdGVhZCBvZiBhICcgKyAnYm9vbGVhbiB2YWx1ZS4gTWFrZSBzdXJlIHRvIHJldHVybiB0cnVlIG9yIGZhbHNlLicsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSB8fCAnQ29tcG9uZW50Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNob3VsZFVwZGF0ZTtcbiAgfVxuXG4gIGlmIChjdG9yLnByb3RvdHlwZSAmJiBjdG9yLnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudCkge1xuICAgIHJldHVybiAhc2hhbGxvd0VxdWFsKG9sZFByb3BzLCBuZXdQcm9wcykgfHwgIXNoYWxsb3dFcXVhbChvbGRTdGF0ZSwgbmV3U3RhdGUpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNoZWNrQ2xhc3NJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgY3RvciwgbmV3UHJvcHMpIHtcbiAgdmFyIGluc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuXG4gIHtcbiAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSB8fCAnQ29tcG9uZW50JztcbiAgICB2YXIgcmVuZGVyUHJlc2VudCA9IGluc3RhbmNlLnJlbmRlcjtcblxuICAgIGlmICghcmVuZGVyUHJlc2VudCkge1xuICAgICAgaWYgKGN0b3IucHJvdG90eXBlICYmIHR5cGVvZiBjdG9yLnByb3RvdHlwZS5yZW5kZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZXJyb3IoJyVzKC4uLik6IE5vIGByZW5kZXJgIG1ldGhvZCBmb3VuZCBvbiB0aGUgcmV0dXJuZWQgY29tcG9uZW50ICcgKyAnaW5zdGFuY2U6IGRpZCB5b3UgYWNjaWRlbnRhbGx5IHJldHVybiBhbiBvYmplY3QgZnJvbSB0aGUgY29uc3RydWN0b3I/JywgbmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvcignJXMoLi4uKTogTm8gYHJlbmRlcmAgbWV0aG9kIGZvdW5kIG9uIHRoZSByZXR1cm5lZCBjb21wb25lbnQgJyArICdpbnN0YW5jZTogeW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBkZWZpbmUgYHJlbmRlcmAuJywgbmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGluc3RhbmNlLmdldEluaXRpYWxTdGF0ZSAmJiAhaW5zdGFuY2UuZ2V0SW5pdGlhbFN0YXRlLmlzUmVhY3RDbGFzc0FwcHJvdmVkICYmICFpbnN0YW5jZS5zdGF0ZSkge1xuICAgICAgZXJyb3IoJ2dldEluaXRpYWxTdGF0ZSB3YXMgZGVmaW5lZCBvbiAlcywgYSBwbGFpbiBKYXZhU2NyaXB0IGNsYXNzLiAnICsgJ1RoaXMgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNsYXNzZXMgY3JlYXRlZCB1c2luZyBSZWFjdC5jcmVhdGVDbGFzcy4gJyArICdEaWQgeW91IG1lYW4gdG8gZGVmaW5lIGEgc3RhdGUgcHJvcGVydHkgaW5zdGVhZD8nLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoaW5zdGFuY2UuZ2V0RGVmYXVsdFByb3BzICYmICFpbnN0YW5jZS5nZXREZWZhdWx0UHJvcHMuaXNSZWFjdENsYXNzQXBwcm92ZWQpIHtcbiAgICAgIGVycm9yKCdnZXREZWZhdWx0UHJvcHMgd2FzIGRlZmluZWQgb24gJXMsIGEgcGxhaW4gSmF2YVNjcmlwdCBjbGFzcy4gJyArICdUaGlzIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBjbGFzc2VzIGNyZWF0ZWQgdXNpbmcgUmVhY3QuY3JlYXRlQ2xhc3MuICcgKyAnVXNlIGEgc3RhdGljIHByb3BlcnR5IHRvIGRlZmluZSBkZWZhdWx0UHJvcHMgaW5zdGVhZC4nLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoaW5zdGFuY2UucHJvcFR5cGVzKSB7XG4gICAgICBlcnJvcigncHJvcFR5cGVzIHdhcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIHByb3BlcnR5IG9uICVzLiBVc2UgYSBzdGF0aWMgJyArICdwcm9wZXJ0eSB0byBkZWZpbmUgcHJvcFR5cGVzIGluc3RlYWQuJywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKGluc3RhbmNlLmNvbnRleHRUeXBlKSB7XG4gICAgICBlcnJvcignY29udGV4dFR5cGUgd2FzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMuIFVzZSBhIHN0YXRpYyAnICsgJ3Byb3BlcnR5IHRvIGRlZmluZSBjb250ZXh0VHlwZSBpbnN0ZWFkLicsIG5hbWUpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlmIChpbnN0YW5jZS5jb250ZXh0VHlwZXMpIHtcbiAgICAgICAgZXJyb3IoJ2NvbnRleHRUeXBlcyB3YXMgZGVmaW5lZCBhcyBhbiBpbnN0YW5jZSBwcm9wZXJ0eSBvbiAlcy4gVXNlIGEgc3RhdGljICcgKyAncHJvcGVydHkgdG8gZGVmaW5lIGNvbnRleHRUeXBlcyBpbnN0ZWFkLicsIG5hbWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAoY3Rvci5jb250ZXh0VHlwZSAmJiBjdG9yLmNvbnRleHRUeXBlcyAmJiAhZGlkV2FybkFib3V0Q29udGV4dFR5cGVBbmRDb250ZXh0VHlwZXMuaGFzKGN0b3IpKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dENvbnRleHRUeXBlQW5kQ29udGV4dFR5cGVzLmFkZChjdG9yKTtcblxuICAgICAgICBlcnJvcignJXMgZGVjbGFyZXMgYm90aCBjb250ZXh0VHlwZXMgYW5kIGNvbnRleHRUeXBlIHN0YXRpYyBwcm9wZXJ0aWVzLiAnICsgJ1RoZSBsZWdhY3kgY29udGV4dFR5cGVzIHByb3BlcnR5IHdpbGwgYmUgaWdub3JlZC4nLCBuYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFNob3VsZFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgJyArICdjb21wb25lbnRTaG91bGRVcGRhdGUoKS4gRGlkIHlvdSBtZWFuIHNob3VsZENvbXBvbmVudFVwZGF0ZSgpPyAnICsgJ1RoZSBuYW1lIGlzIHBocmFzZWQgYXMgYSBxdWVzdGlvbiBiZWNhdXNlIHRoZSBmdW5jdGlvbiBpcyAnICsgJ2V4cGVjdGVkIHRvIHJldHVybiBhIHZhbHVlLicsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChjdG9yLnByb3RvdHlwZSAmJiBjdG9yLnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudCAmJiB0eXBlb2YgaW5zdGFuY2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZXJyb3IoJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgc2hvdWxkQ29tcG9uZW50VXBkYXRlKCkuICcgKyAnc2hvdWxkQ29tcG9uZW50VXBkYXRlIHNob3VsZCBub3QgYmUgdXNlZCB3aGVuIGV4dGVuZGluZyBSZWFjdC5QdXJlQ29tcG9uZW50LiAnICsgJ1BsZWFzZSBleHRlbmQgUmVhY3QuQ29tcG9uZW50IGlmIHNob3VsZENvbXBvbmVudFVwZGF0ZSBpcyB1c2VkLicsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSB8fCAnQSBwdXJlIGNvbXBvbmVudCcpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkVW5tb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgJyArICdjb21wb25lbnREaWRVbm1vdW50KCkuIEJ1dCB0aGVyZSBpcyBubyBzdWNoIGxpZmVjeWNsZSBtZXRob2QuICcgKyAnRGlkIHlvdSBtZWFuIGNvbXBvbmVudFdpbGxVbm1vdW50KCk/JywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclcyBoYXMgYSBtZXRob2QgY2FsbGVkICcgKyAnY29tcG9uZW50RGlkUmVjZWl2ZVByb3BzKCkuIEJ1dCB0aGVyZSBpcyBubyBzdWNoIGxpZmVjeWNsZSBtZXRob2QuICcgKyAnSWYgeW91IG1lYW50IHRvIHVwZGF0ZSB0aGUgc3RhdGUgaW4gcmVzcG9uc2UgdG8gY2hhbmdpbmcgcHJvcHMsICcgKyAndXNlIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKS4gSWYgeW91IG1lYW50IHRvIGZldGNoIGRhdGEgb3IgJyArICdydW4gc2lkZS1lZmZlY3RzIG9yIG11dGF0aW9ucyBhZnRlciBSZWFjdCBoYXMgdXBkYXRlZCB0aGUgVUksIHVzZSBjb21wb25lbnREaWRVcGRhdGUoKS4nLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclcyBoYXMgYSBtZXRob2QgY2FsbGVkICcgKyAnY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcygpLiBEaWQgeW91IG1lYW4gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcygpPycsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclcyBoYXMgYSBtZXRob2QgY2FsbGVkICcgKyAnVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMoKS4gRGlkIHlvdSBtZWFuIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKCk/JywgbmFtZSk7XG4gICAgfVxuXG4gICAgdmFyIGhhc011dGF0ZWRQcm9wcyA9IGluc3RhbmNlLnByb3BzICE9PSBuZXdQcm9wcztcblxuICAgIGlmIChpbnN0YW5jZS5wcm9wcyAhPT0gdW5kZWZpbmVkICYmIGhhc011dGF0ZWRQcm9wcykge1xuICAgICAgZXJyb3IoJyVzKC4uLik6IFdoZW4gY2FsbGluZyBzdXBlcigpIGluIGAlc2AsIG1ha2Ugc3VyZSB0byBwYXNzICcgKyBcInVwIHRoZSBzYW1lIHByb3BzIHRoYXQgeW91ciBjb21wb25lbnQncyBjb25zdHJ1Y3RvciB3YXMgcGFzc2VkLlwiLCBuYW1lLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoaW5zdGFuY2UuZGVmYXVsdFByb3BzKSB7XG4gICAgICBlcnJvcignU2V0dGluZyBkZWZhdWx0UHJvcHMgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMgaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSBpZ25vcmVkLicgKyAnIEluc3RlYWQsIGRlZmluZSBkZWZhdWx0UHJvcHMgYXMgYSBzdGF0aWMgcHJvcGVydHkgb24gJXMuJywgbmFtZSwgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkVXBkYXRlICE9PSAnZnVuY3Rpb24nICYmICFkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGUuaGFzKGN0b3IpKSB7XG4gICAgICBkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGUuYWRkKGN0b3IpO1xuXG4gICAgICBlcnJvcignJXM6IGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgc2hvdWxkIGJlIHVzZWQgd2l0aCBjb21wb25lbnREaWRVcGRhdGUoKS4gJyArICdUaGlzIGNvbXBvbmVudCBkZWZpbmVzIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgb25seS4nLCBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoY3RvcikpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcignJXM6IGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcygpIGlzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgbWV0aG9kICcgKyAnYW5kIHdpbGwgYmUgaWdub3JlZC4gSW5zdGVhZCwgZGVjbGFyZSBpdCBhcyBhIHN0YXRpYyBtZXRob2QuJywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclczogZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKCkgaXMgZGVmaW5lZCBhcyBhbiBpbnN0YW5jZSBtZXRob2QgJyArICdhbmQgd2lsbCBiZSBpZ25vcmVkLiBJbnN0ZWFkLCBkZWNsYXJlIGl0IGFzIGEgc3RhdGljIG1ldGhvZC4nLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGN0b3IuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclczogZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSBpcyBkZWZpbmVkIGFzIGEgc3RhdGljIG1ldGhvZCAnICsgJ2FuZCB3aWxsIGJlIGlnbm9yZWQuIEluc3RlYWQsIGRlY2xhcmUgaXQgYXMgYW4gaW5zdGFuY2UgbWV0aG9kLicsIG5hbWUpO1xuICAgIH1cblxuICAgIHZhciBfc3RhdGUgPSBpbnN0YW5jZS5zdGF0ZTtcblxuICAgIGlmIChfc3RhdGUgJiYgKHR5cGVvZiBfc3RhdGUgIT09ICdvYmplY3QnIHx8IGlzQXJyYXkoX3N0YXRlKSkpIHtcbiAgICAgIGVycm9yKCclcy5zdGF0ZTogbXVzdCBiZSBzZXQgdG8gYW4gb2JqZWN0IG9yIG51bGwnLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmdldENoaWxkQ29udGV4dCA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgY3Rvci5jaGlsZENvbnRleHRUeXBlcyAhPT0gJ29iamVjdCcpIHtcbiAgICAgIGVycm9yKCclcy5nZXRDaGlsZENvbnRleHQoKTogY2hpbGRDb250ZXh0VHlwZXMgbXVzdCBiZSBkZWZpbmVkIGluIG9yZGVyIHRvICcgKyAndXNlIGdldENoaWxkQ29udGV4dCgpLicsIG5hbWUpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBhZG9wdENsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnVwZGF0ZXIgPSBjbGFzc0NvbXBvbmVudFVwZGF0ZXI7XG4gIHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSA9IGluc3RhbmNlOyAvLyBUaGUgaW5zdGFuY2UgbmVlZHMgYWNjZXNzIHRvIHRoZSBmaWJlciBzbyB0aGF0IGl0IGNhbiBzY2hlZHVsZSB1cGRhdGVzXG5cbiAgc2V0KGluc3RhbmNlLCB3b3JrSW5Qcm9ncmVzcyk7XG5cbiAge1xuICAgIGluc3RhbmNlLl9yZWFjdEludGVybmFsSW5zdGFuY2UgPSBmYWtlSW50ZXJuYWxJbnN0YW5jZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBjdG9yLCBwcm9wcykge1xuICB2YXIgaXNMZWdhY3lDb250ZXh0Q29uc3VtZXIgPSBmYWxzZTtcbiAgdmFyIHVubWFza2VkQ29udGV4dCA9IGVtcHR5Q29udGV4dE9iamVjdDtcbiAgdmFyIGNvbnRleHQgPSBlbXB0eUNvbnRleHRPYmplY3Q7XG4gIHZhciBjb250ZXh0VHlwZSA9IGN0b3IuY29udGV4dFR5cGU7XG5cbiAge1xuICAgIGlmICgnY29udGV4dFR5cGUnIGluIGN0b3IpIHtcbiAgICAgIHZhciBpc1ZhbGlkID0gLy8gQWxsb3cgbnVsbCBmb3IgY29uZGl0aW9uYWwgZGVjbGFyYXRpb25cbiAgICAgIGNvbnRleHRUeXBlID09PSBudWxsIHx8IGNvbnRleHRUeXBlICE9PSB1bmRlZmluZWQgJiYgY29udGV4dFR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSAmJiBjb250ZXh0VHlwZS5fY29udGV4dCA9PT0gdW5kZWZpbmVkOyAvLyBOb3QgYSA8Q29udGV4dC5Db25zdW1lcj5cblxuICAgICAgaWYgKCFpc1ZhbGlkICYmICFkaWRXYXJuQWJvdXRJbnZhbGlkYXRlQ29udGV4dFR5cGUuaGFzKGN0b3IpKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dEludmFsaWRhdGVDb250ZXh0VHlwZS5hZGQoY3Rvcik7XG4gICAgICAgIHZhciBhZGRlbmR1bSA9ICcnO1xuXG4gICAgICAgIGlmIChjb250ZXh0VHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgYWRkZW5kdW0gPSAnIEhvd2V2ZXIsIGl0IGlzIHNldCB0byB1bmRlZmluZWQuICcgKyAnVGhpcyBjYW4gYmUgY2F1c2VkIGJ5IGEgdHlwbyBvciBieSBtaXhpbmcgdXAgbmFtZWQgYW5kIGRlZmF1bHQgaW1wb3J0cy4gJyArICdUaGlzIGNhbiBhbHNvIGhhcHBlbiBkdWUgdG8gYSBjaXJjdWxhciBkZXBlbmRlbmN5LCBzbyAnICsgJ3RyeSBtb3ZpbmcgdGhlIGNyZWF0ZUNvbnRleHQoKSBjYWxsIHRvIGEgc2VwYXJhdGUgZmlsZS4nO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb250ZXh0VHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBhZGRlbmR1bSA9ICcgSG93ZXZlciwgaXQgaXMgc2V0IHRvIGEgJyArIHR5cGVvZiBjb250ZXh0VHlwZSArICcuJztcbiAgICAgICAgfSBlbHNlIGlmIChjb250ZXh0VHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRSkge1xuICAgICAgICAgIGFkZGVuZHVtID0gJyBEaWQgeW91IGFjY2lkZW50YWxseSBwYXNzIHRoZSBDb250ZXh0LlByb3ZpZGVyIGluc3RlYWQ/JztcbiAgICAgICAgfSBlbHNlIGlmIChjb250ZXh0VHlwZS5fY29udGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gPENvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgICAgYWRkZW5kdW0gPSAnIERpZCB5b3UgYWNjaWRlbnRhbGx5IHBhc3MgdGhlIENvbnRleHQuQ29uc3VtZXIgaW5zdGVhZD8nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFkZGVuZHVtID0gJyBIb3dldmVyLCBpdCBpcyBzZXQgdG8gYW4gb2JqZWN0IHdpdGgga2V5cyB7JyArIE9iamVjdC5rZXlzKGNvbnRleHRUeXBlKS5qb2luKCcsICcpICsgJ30uJztcbiAgICAgICAgfVxuXG4gICAgICAgIGVycm9yKCclcyBkZWZpbmVzIGFuIGludmFsaWQgY29udGV4dFR5cGUuICcgKyAnY29udGV4dFR5cGUgc2hvdWxkIHBvaW50IHRvIHRoZSBDb250ZXh0IG9iamVjdCByZXR1cm5lZCBieSBSZWFjdC5jcmVhdGVDb250ZXh0KCkuJXMnLCBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoY3RvcikgfHwgJ0NvbXBvbmVudCcsIGFkZGVuZHVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIGNvbnRleHRUeXBlID09PSAnb2JqZWN0JyAmJiBjb250ZXh0VHlwZSAhPT0gbnVsbCkge1xuICAgIGNvbnRleHQgPSByZWFkQ29udGV4dChjb250ZXh0VHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgdW5tYXNrZWRDb250ZXh0ID0gZ2V0VW5tYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCBjdG9yLCB0cnVlKTtcbiAgICB2YXIgY29udGV4dFR5cGVzID0gY3Rvci5jb250ZXh0VHlwZXM7XG4gICAgaXNMZWdhY3lDb250ZXh0Q29uc3VtZXIgPSBjb250ZXh0VHlwZXMgIT09IG51bGwgJiYgY29udGV4dFR5cGVzICE9PSB1bmRlZmluZWQ7XG4gICAgY29udGV4dCA9IGlzTGVnYWN5Q29udGV4dENvbnN1bWVyID8gZ2V0TWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgdW5tYXNrZWRDb250ZXh0KSA6IGVtcHR5Q29udGV4dE9iamVjdDtcbiAgfVxuXG4gIHZhciBpbnN0YW5jZSA9IG5ldyBjdG9yKHByb3BzLCBjb250ZXh0KTsgLy8gSW5zdGFudGlhdGUgdHdpY2UgdG8gaGVscCBkZXRlY3Qgc2lkZS1lZmZlY3RzLlxuXG4gIHtcbiAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyh0cnVlKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgaW5zdGFuY2UgPSBuZXcgY3Rvcihwcm9wcywgY29udGV4dCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyhmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIHN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IGluc3RhbmNlLnN0YXRlICE9PSBudWxsICYmIGluc3RhbmNlLnN0YXRlICE9PSB1bmRlZmluZWQgPyBpbnN0YW5jZS5zdGF0ZSA6IG51bGw7XG4gIGFkb3B0Q2xhc3NJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgaW5zdGFuY2UpO1xuXG4gIHtcbiAgICBpZiAodHlwZW9mIGN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nICYmIHN0YXRlID09PSBudWxsKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSB8fCAnQ29tcG9uZW50JztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRVbmluaXRpYWxpemVkU3RhdGUuaGFzKGNvbXBvbmVudE5hbWUpKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dFVuaW5pdGlhbGl6ZWRTdGF0ZS5hZGQoY29tcG9uZW50TmFtZSk7XG5cbiAgICAgICAgZXJyb3IoJ2Alc2AgdXNlcyBgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzYCBidXQgaXRzIGluaXRpYWwgc3RhdGUgaXMgJyArICclcy4gVGhpcyBpcyBub3QgcmVjb21tZW5kZWQuIEluc3RlYWQsIGRlZmluZSB0aGUgaW5pdGlhbCBzdGF0ZSBieSAnICsgJ2Fzc2lnbmluZyBhbiBvYmplY3QgdG8gYHRoaXMuc3RhdGVgIGluIHRoZSBjb25zdHJ1Y3RvciBvZiBgJXNgLiAnICsgJ1RoaXMgZW5zdXJlcyB0aGF0IGBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNgIGFyZ3VtZW50cyBoYXZlIGEgY29uc2lzdGVudCBzaGFwZS4nLCBjb21wb25lbnROYW1lLCBpbnN0YW5jZS5zdGF0ZSA9PT0gbnVsbCA/ICdudWxsJyA6ICd1bmRlZmluZWQnLCBjb21wb25lbnROYW1lKTtcbiAgICAgIH1cbiAgICB9IC8vIElmIG5ldyBjb21wb25lbnQgQVBJcyBhcmUgZGVmaW5lZCwgXCJ1bnNhZmVcIiBsaWZlY3ljbGVzIHdvbid0IGJlIGNhbGxlZC5cbiAgICAvLyBXYXJuIGFib3V0IHRoZXNlIGxpZmVjeWNsZXMgaWYgdGhleSBhcmUgcHJlc2VudC5cbiAgICAvLyBEb24ndCB3YXJuIGFib3V0IHJlYWN0LWxpZmVjeWNsZXMtY29tcGF0IHBvbHlmaWxsZWQgbWV0aG9kcyB0aG91Z2guXG5cblxuICAgIGlmICh0eXBlb2YgY3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGluc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgZm91bmRXaWxsTW91bnROYW1lID0gbnVsbDtcbiAgICAgIHZhciBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lID0gbnVsbDtcbiAgICAgIHZhciBmb3VuZFdpbGxVcGRhdGVOYW1lID0gbnVsbDtcblxuICAgICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicgJiYgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50Ll9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmcgIT09IHRydWUpIHtcbiAgICAgICAgZm91bmRXaWxsTW91bnROYW1lID0gJ2NvbXBvbmVudFdpbGxNb3VudCc7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGZvdW5kV2lsbE1vdW50TmFtZSA9ICdVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JztcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nICYmIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyAhPT0gdHJ1ZSkge1xuICAgICAgICBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lID0gJ2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMnO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSA9ICdVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyc7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJyAmJiBpbnN0YW5jZS5jb21wb25lbnRXaWxsVXBkYXRlLl9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmcgIT09IHRydWUpIHtcbiAgICAgICAgZm91bmRXaWxsVXBkYXRlTmFtZSA9ICdjb21wb25lbnRXaWxsVXBkYXRlJztcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGZvdW5kV2lsbFVwZGF0ZU5hbWUgPSAnVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUnO1xuICAgICAgfVxuXG4gICAgICBpZiAoZm91bmRXaWxsTW91bnROYW1lICE9PSBudWxsIHx8IGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgIT09IG51bGwgfHwgZm91bmRXaWxsVXBkYXRlTmFtZSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgX2NvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoY3RvcikgfHwgJ0NvbXBvbmVudCc7XG5cbiAgICAgICAgdmFyIG5ld0FwaU5hbWUgPSB0eXBlb2YgY3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicgPyAnZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKCknIDogJ2dldFNuYXBzaG90QmVmb3JlVXBkYXRlKCknO1xuXG4gICAgICAgIGlmICghZGlkV2FybkFib3V0TGVnYWN5TGlmZWN5Y2xlc0FuZERlcml2ZWRTdGF0ZS5oYXMoX2NvbXBvbmVudE5hbWUpKSB7XG4gICAgICAgICAgZGlkV2FybkFib3V0TGVnYWN5TGlmZWN5Y2xlc0FuZERlcml2ZWRTdGF0ZS5hZGQoX2NvbXBvbmVudE5hbWUpO1xuXG4gICAgICAgICAgZXJyb3IoJ1Vuc2FmZSBsZWdhY3kgbGlmZWN5Y2xlcyB3aWxsIG5vdCBiZSBjYWxsZWQgZm9yIGNvbXBvbmVudHMgdXNpbmcgbmV3IGNvbXBvbmVudCBBUElzLlxcblxcbicgKyAnJXMgdXNlcyAlcyBidXQgYWxzbyBjb250YWlucyB0aGUgZm9sbG93aW5nIGxlZ2FjeSBsaWZlY3ljbGVzOiVzJXMlc1xcblxcbicgKyAnVGhlIGFib3ZlIGxpZmVjeWNsZXMgc2hvdWxkIGJlIHJlbW92ZWQuIExlYXJuIG1vcmUgYWJvdXQgdGhpcyB3YXJuaW5nIGhlcmU6XFxuJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzJywgX2NvbXBvbmVudE5hbWUsIG5ld0FwaU5hbWUsIGZvdW5kV2lsbE1vdW50TmFtZSAhPT0gbnVsbCA/IFwiXFxuICBcIiArIGZvdW5kV2lsbE1vdW50TmFtZSA6ICcnLCBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lICE9PSBudWxsID8gXCJcXG4gIFwiICsgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSA6ICcnLCBmb3VuZFdpbGxVcGRhdGVOYW1lICE9PSBudWxsID8gXCJcXG4gIFwiICsgZm91bmRXaWxsVXBkYXRlTmFtZSA6ICcnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSAvLyBDYWNoZSB1bm1hc2tlZCBjb250ZXh0IHNvIHdlIGNhbiBhdm9pZCByZWNyZWF0aW5nIG1hc2tlZCBjb250ZXh0IHVubGVzcyBuZWNlc3NhcnkuXG4gIC8vIFJlYWN0RmliZXJDb250ZXh0IHVzdWFsbHkgdXBkYXRlcyB0aGlzIGNhY2hlIGJ1dCBjYW4ndCBmb3IgbmV3bHktY3JlYXRlZCBpbnN0YW5jZXMuXG5cblxuICBpZiAoaXNMZWdhY3lDb250ZXh0Q29uc3VtZXIpIHtcbiAgICBjYWNoZUNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHVubWFza2VkQ29udGV4dCwgY29udGV4dCk7XG4gIH1cblxuICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbmZ1bmN0aW9uIGNhbGxDb21wb25lbnRXaWxsTW91bnQod29ya0luUHJvZ3Jlc3MsIGluc3RhbmNlKSB7XG4gIHZhciBvbGRTdGF0ZSA9IGluc3RhbmNlLnN0YXRlO1xuXG4gIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50KCk7XG4gIH1cblxuICBpZiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCk7XG4gIH1cblxuICBpZiAob2xkU3RhdGUgIT09IGluc3RhbmNlLnN0YXRlKSB7XG4gICAge1xuICAgICAgZXJyb3IoJyVzLmNvbXBvbmVudFdpbGxNb3VudCgpOiBBc3NpZ25pbmcgZGlyZWN0bHkgdG8gdGhpcy5zdGF0ZSBpcyAnICsgXCJkZXByZWNhdGVkIChleGNlcHQgaW5zaWRlIGEgY29tcG9uZW50J3MgXCIgKyAnY29uc3RydWN0b3IpLiBVc2Ugc2V0U3RhdGUgaW5zdGVhZC4nLCBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKHdvcmtJblByb2dyZXNzKSB8fCAnQ29tcG9uZW50Jyk7XG4gICAgfVxuXG4gICAgY2xhc3NDb21wb25lbnRVcGRhdGVyLmVucXVldWVSZXBsYWNlU3RhdGUoaW5zdGFuY2UsIGluc3RhbmNlLnN0YXRlLCBudWxsKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjYWxsQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyh3b3JrSW5Qcm9ncmVzcywgaW5zdGFuY2UsIG5ld1Byb3BzLCBuZXh0Q29udGV4dCkge1xuICB2YXIgb2xkU3RhdGUgPSBpbnN0YW5jZS5zdGF0ZTtcblxuICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5ld1Byb3BzLCBuZXh0Q29udGV4dCk7XG4gIH1cblxuICBpZiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV3UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgfVxuXG4gIGlmIChpbnN0YW5jZS5zdGF0ZSAhPT0gb2xkU3RhdGUpIHtcbiAgICB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIod29ya0luUHJvZ3Jlc3MpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dFN0YXRlQXNzaWdubWVudEZvckNvbXBvbmVudC5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgZGlkV2FybkFib3V0U3RhdGVBc3NpZ25tZW50Rm9yQ29tcG9uZW50LmFkZChjb21wb25lbnROYW1lKTtcblxuICAgICAgICBlcnJvcignJXMuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcygpOiBBc3NpZ25pbmcgZGlyZWN0bHkgdG8gJyArIFwidGhpcy5zdGF0ZSBpcyBkZXByZWNhdGVkIChleGNlcHQgaW5zaWRlIGEgY29tcG9uZW50J3MgXCIgKyAnY29uc3RydWN0b3IpLiBVc2Ugc2V0U3RhdGUgaW5zdGVhZC4nLCBjb21wb25lbnROYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjbGFzc0NvbXBvbmVudFVwZGF0ZXIuZW5xdWV1ZVJlcGxhY2VTdGF0ZShpbnN0YW5jZSwgaW5zdGFuY2Uuc3RhdGUsIG51bGwpO1xuICB9XG59IC8vIEludm9rZXMgdGhlIG1vdW50IGxpZmUtY3ljbGVzIG9uIGEgcHJldmlvdXNseSBuZXZlciByZW5kZXJlZCBpbnN0YW5jZS5cblxuXG5mdW5jdGlvbiBtb3VudENsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIGN0b3IsIG5ld1Byb3BzLCByZW5kZXJMYW5lcykge1xuICB7XG4gICAgY2hlY2tDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBjdG9yLCBuZXdQcm9wcyk7XG4gIH1cblxuICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gIGluc3RhbmNlLnByb3BzID0gbmV3UHJvcHM7XG4gIGluc3RhbmNlLnN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgaW5zdGFuY2UucmVmcyA9IGVtcHR5UmVmc09iamVjdDtcbiAgaW5pdGlhbGl6ZVVwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzKTtcbiAgdmFyIGNvbnRleHRUeXBlID0gY3Rvci5jb250ZXh0VHlwZTtcblxuICBpZiAodHlwZW9mIGNvbnRleHRUeXBlID09PSAnb2JqZWN0JyAmJiBjb250ZXh0VHlwZSAhPT0gbnVsbCkge1xuICAgIGluc3RhbmNlLmNvbnRleHQgPSByZWFkQ29udGV4dChjb250ZXh0VHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIHVubWFza2VkQ29udGV4dCA9IGdldFVubWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgY3RvciwgdHJ1ZSk7XG4gICAgaW5zdGFuY2UuY29udGV4dCA9IGdldE1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIHVubWFza2VkQ29udGV4dCk7XG4gIH1cblxuICB7XG4gICAgaWYgKGluc3RhbmNlLnN0YXRlID09PSBuZXdQcm9wcykge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoY3RvcikgfHwgJ0NvbXBvbmVudCc7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0RGlyZWN0bHlBc3NpZ25pbmdQcm9wc1RvU3RhdGUuaGFzKGNvbXBvbmVudE5hbWUpKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dERpcmVjdGx5QXNzaWduaW5nUHJvcHNUb1N0YXRlLmFkZChjb21wb25lbnROYW1lKTtcblxuICAgICAgICBlcnJvcignJXM6IEl0IGlzIG5vdCByZWNvbW1lbmRlZCB0byBhc3NpZ24gcHJvcHMgZGlyZWN0bHkgdG8gc3RhdGUgJyArIFwiYmVjYXVzZSB1cGRhdGVzIHRvIHByb3BzIHdvbid0IGJlIHJlZmxlY3RlZCBpbiBzdGF0ZS4gXCIgKyAnSW4gbW9zdCBjYXNlcywgaXQgaXMgYmV0dGVyIHRvIHVzZSBwcm9wcyBkaXJlY3RseS4nLCBjb21wb25lbnROYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAod29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpIHtcbiAgICAgIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLnJlY29yZExlZ2FjeUNvbnRleHRXYXJuaW5nKHdvcmtJblByb2dyZXNzLCBpbnN0YW5jZSk7XG4gICAgfVxuXG4gICAge1xuICAgICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MucmVjb3JkVW5zYWZlTGlmZWN5Y2xlV2FybmluZ3Mod29ya0luUHJvZ3Jlc3MsIGluc3RhbmNlKTtcbiAgICB9XG4gIH1cblxuICBpbnN0YW5jZS5zdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gIHZhciBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPSBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztcblxuICBpZiAodHlwZW9mIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGFwcGx5RGVyaXZlZFN0YXRlRnJvbVByb3BzKHdvcmtJblByb2dyZXNzLCBjdG9yLCBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsIG5ld1Byb3BzKTtcbiAgICBpbnN0YW5jZS5zdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gIH0gLy8gSW4gb3JkZXIgdG8gc3VwcG9ydCByZWFjdC1saWZlY3ljbGVzLWNvbXBhdCBwb2x5ZmlsbGVkIGNvbXBvbmVudHMsXG4gIC8vIFVuc2FmZSBsaWZlY3ljbGVzIHNob3VsZCBub3QgYmUgaW52b2tlZCBmb3IgY29tcG9uZW50cyB1c2luZyB0aGUgbmV3IEFQSXMuXG5cblxuICBpZiAodHlwZW9mIGN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzICE9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBpbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSAhPT0gJ2Z1bmN0aW9uJyAmJiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJykpIHtcbiAgICBjYWxsQ29tcG9uZW50V2lsbE1vdW50KHdvcmtJblByb2dyZXNzLCBpbnN0YW5jZSk7IC8vIElmIHdlIGhhZCBhZGRpdGlvbmFsIHN0YXRlIHVwZGF0ZXMgZHVyaW5nIHRoaXMgbGlmZS1jeWNsZSwgbGV0J3NcbiAgICAvLyBwcm9jZXNzIHRoZW0gbm93LlxuXG4gICAgcHJvY2Vzc1VwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzLCBuZXdQcm9wcywgaW5zdGFuY2UsIHJlbmRlckxhbmVzKTtcbiAgICBpbnN0YW5jZS5zdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gIH1cblxuICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZE1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdmFyIGZpYmVyRmxhZ3MgPSBVcGRhdGU7XG5cbiAgICB7XG4gICAgICBmaWJlckZsYWdzIHw9IExheW91dFN0YXRpYztcbiAgICB9XG5cbiAgICBpZiAoICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgIGZpYmVyRmxhZ3MgfD0gTW91bnRMYXlvdXREZXY7XG4gICAgfVxuXG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gZmliZXJGbGFncztcbiAgfVxufVxuXG5mdW5jdGlvbiByZXN1bWVNb3VudENsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIGN0b3IsIG5ld1Byb3BzLCByZW5kZXJMYW5lcykge1xuICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gIHZhciBvbGRQcm9wcyA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHM7XG4gIGluc3RhbmNlLnByb3BzID0gb2xkUHJvcHM7XG4gIHZhciBvbGRDb250ZXh0ID0gaW5zdGFuY2UuY29udGV4dDtcbiAgdmFyIGNvbnRleHRUeXBlID0gY3Rvci5jb250ZXh0VHlwZTtcbiAgdmFyIG5leHRDb250ZXh0ID0gZW1wdHlDb250ZXh0T2JqZWN0O1xuXG4gIGlmICh0eXBlb2YgY29udGV4dFR5cGUgPT09ICdvYmplY3QnICYmIGNvbnRleHRUeXBlICE9PSBudWxsKSB7XG4gICAgbmV4dENvbnRleHQgPSByZWFkQ29udGV4dChjb250ZXh0VHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIG5leHRMZWdhY3lVbm1hc2tlZENvbnRleHQgPSBnZXRVbm1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIGN0b3IsIHRydWUpO1xuICAgIG5leHRDb250ZXh0ID0gZ2V0TWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgbmV4dExlZ2FjeVVubWFza2VkQ29udGV4dCk7XG4gIH1cblxuICB2YXIgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID0gY3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7XG4gIHZhciBoYXNOZXdMaWZlY3ljbGVzID0gdHlwZW9mIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgPT09ICdmdW5jdGlvbic7IC8vIE5vdGU6IER1cmluZyB0aGVzZSBsaWZlLWN5Y2xlcywgaW5zdGFuY2UucHJvcHMvaW5zdGFuY2Uuc3RhdGUgYXJlIHdoYXRcbiAgLy8gZXZlciB0aGUgcHJldmlvdXNseSBhdHRlbXB0ZWQgdG8gcmVuZGVyIC0gbm90IHRoZSBcImN1cnJlbnRcIi4gSG93ZXZlcixcbiAgLy8gZHVyaW5nIGNvbXBvbmVudERpZFVwZGF0ZSB3ZSBwYXNzIHRoZSBcImN1cnJlbnRcIiBwcm9wcy5cbiAgLy8gSW4gb3JkZXIgdG8gc3VwcG9ydCByZWFjdC1saWZlY3ljbGVzLWNvbXBhdCBwb2x5ZmlsbGVkIGNvbXBvbmVudHMsXG4gIC8vIFVuc2FmZSBsaWZlY3ljbGVzIHNob3VsZCBub3QgYmUgaW52b2tlZCBmb3IgY29tcG9uZW50cyB1c2luZyB0aGUgbmV3IEFQSXMuXG5cbiAgaWYgKCFoYXNOZXdMaWZlY3ljbGVzICYmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicpKSB7XG4gICAgaWYgKG9sZFByb3BzICE9PSBuZXdQcm9wcyB8fCBvbGRDb250ZXh0ICE9PSBuZXh0Q29udGV4dCkge1xuICAgICAgY2FsbENvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMod29ya0luUHJvZ3Jlc3MsIGluc3RhbmNlLCBuZXdQcm9wcywgbmV4dENvbnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0SGFzRm9yY2VVcGRhdGVCZWZvcmVQcm9jZXNzaW5nKCk7XG4gIHZhciBvbGRTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gIHZhciBuZXdTdGF0ZSA9IGluc3RhbmNlLnN0YXRlID0gb2xkU3RhdGU7XG4gIHByb2Nlc3NVcGRhdGVRdWV1ZSh3b3JrSW5Qcm9ncmVzcywgbmV3UHJvcHMsIGluc3RhbmNlLCByZW5kZXJMYW5lcyk7XG4gIG5ld1N0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcblxuICBpZiAob2xkUHJvcHMgPT09IG5ld1Byb3BzICYmIG9sZFN0YXRlID09PSBuZXdTdGF0ZSAmJiAhaGFzQ29udGV4dENoYW5nZWQoKSAmJiAhY2hlY2tIYXNGb3JjZVVwZGF0ZUFmdGVyUHJvY2Vzc2luZygpKSB7XG4gICAgLy8gSWYgYW4gdXBkYXRlIHdhcyBhbHJlYWR5IGluIHByb2dyZXNzLCB3ZSBzaG91bGQgc2NoZWR1bGUgYW4gVXBkYXRlXG4gICAgLy8gZWZmZWN0IGV2ZW4gdGhvdWdoIHdlJ3JlIGJhaWxpbmcgb3V0LCBzbyB0aGF0IGNXVS9jRFUgYXJlIGNhbGxlZC5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZE1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgZmliZXJGbGFncyA9IFVwZGF0ZTtcblxuICAgICAge1xuICAgICAgICBmaWJlckZsYWdzIHw9IExheW91dFN0YXRpYztcbiAgICAgIH1cblxuICAgICAgaWYgKCAod29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdEVmZmVjdHNNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAgIGZpYmVyRmxhZ3MgfD0gTW91bnRMYXlvdXREZXY7XG4gICAgICB9XG5cbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IGZpYmVyRmxhZ3M7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBhcHBseURlcml2ZWRTdGF0ZUZyb21Qcm9wcyh3b3JrSW5Qcm9ncmVzcywgY3RvciwgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLCBuZXdQcm9wcyk7XG4gICAgbmV3U3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICB9XG5cbiAgdmFyIHNob3VsZFVwZGF0ZSA9IGNoZWNrSGFzRm9yY2VVcGRhdGVBZnRlclByb2Nlc3NpbmcoKSB8fCBjaGVja1Nob3VsZENvbXBvbmVudFVwZGF0ZSh3b3JrSW5Qcm9ncmVzcywgY3Rvciwgb2xkUHJvcHMsIG5ld1Byb3BzLCBvbGRTdGF0ZSwgbmV3U3RhdGUsIG5leHRDb250ZXh0KTtcblxuICBpZiAoc2hvdWxkVXBkYXRlKSB7XG4gICAgLy8gSW4gb3JkZXIgdG8gc3VwcG9ydCByZWFjdC1saWZlY3ljbGVzLWNvbXBhdCBwb2x5ZmlsbGVkIGNvbXBvbmVudHMsXG4gICAgLy8gVW5zYWZlIGxpZmVjeWNsZXMgc2hvdWxkIG5vdCBiZSBpbnZva2VkIGZvciBjb21wb25lbnRzIHVzaW5nIHRoZSBuZXcgQVBJcy5cbiAgICBpZiAoIWhhc05ld0xpZmVjeWNsZXMgJiYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpKSB7XG4gICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZE1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgX2ZpYmVyRmxhZ3MgPSBVcGRhdGU7XG5cbiAgICAgIHtcbiAgICAgICAgX2ZpYmVyRmxhZ3MgfD0gTGF5b3V0U3RhdGljO1xuICAgICAgfVxuXG4gICAgICBpZiAoICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgX2ZpYmVyRmxhZ3MgfD0gTW91bnRMYXlvdXREZXY7XG4gICAgICB9XG5cbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IF9maWJlckZsYWdzO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJZiBhbiB1cGRhdGUgd2FzIGFscmVhZHkgaW4gcHJvZ3Jlc3MsIHdlIHNob3VsZCBzY2hlZHVsZSBhbiBVcGRhdGVcbiAgICAvLyBlZmZlY3QgZXZlbiB0aG91Z2ggd2UncmUgYmFpbGluZyBvdXQsIHNvIHRoYXQgY1dVL2NEVSBhcmUgY2FsbGVkLlxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBfZmliZXJGbGFnczIgPSBVcGRhdGU7XG5cbiAgICAgIHtcbiAgICAgICAgX2ZpYmVyRmxhZ3MyIHw9IExheW91dFN0YXRpYztcbiAgICAgIH1cblxuICAgICAgaWYgKCAod29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdEVmZmVjdHNNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAgIF9maWJlckZsYWdzMiB8PSBNb3VudExheW91dERldjtcbiAgICAgIH1cblxuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gX2ZpYmVyRmxhZ3MyO1xuICAgIH0gLy8gSWYgc2hvdWxkQ29tcG9uZW50VXBkYXRlIHJldHVybmVkIGZhbHNlLCB3ZSBzaG91bGQgc3RpbGwgdXBkYXRlIHRoZVxuICAgIC8vIG1lbW9pemVkIHN0YXRlIHRvIGluZGljYXRlIHRoYXQgdGhpcyB3b3JrIGNhbiBiZSByZXVzZWQuXG5cblxuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHMgPSBuZXdQcm9wcztcbiAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbmV3U3RhdGU7XG4gIH0gLy8gVXBkYXRlIHRoZSBleGlzdGluZyBpbnN0YW5jZSdzIHN0YXRlLCBwcm9wcywgYW5kIGNvbnRleHQgcG9pbnRlcnMgZXZlblxuICAvLyBpZiBzaG91bGRDb21wb25lbnRVcGRhdGUgcmV0dXJucyBmYWxzZS5cblxuXG4gIGluc3RhbmNlLnByb3BzID0gbmV3UHJvcHM7XG4gIGluc3RhbmNlLnN0YXRlID0gbmV3U3RhdGU7XG4gIGluc3RhbmNlLmNvbnRleHQgPSBuZXh0Q29udGV4dDtcbiAgcmV0dXJuIHNob3VsZFVwZGF0ZTtcbn0gLy8gSW52b2tlcyB0aGUgdXBkYXRlIGxpZmUtY3ljbGVzIGFuZCByZXR1cm5zIGZhbHNlIGlmIGl0IHNob3VsZG4ndCByZXJlbmRlci5cblxuXG5mdW5jdGlvbiB1cGRhdGVDbGFzc0luc3RhbmNlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBjdG9yLCBuZXdQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIGluc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuICBjbG9uZVVwZGF0ZVF1ZXVlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgdmFyIHVucmVzb2x2ZWRPbGRQcm9wcyA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHM7XG4gIHZhciBvbGRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnR5cGUgPT09IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlID8gdW5yZXNvbHZlZE9sZFByb3BzIDogcmVzb2x2ZURlZmF1bHRQcm9wcyh3b3JrSW5Qcm9ncmVzcy50eXBlLCB1bnJlc29sdmVkT2xkUHJvcHMpO1xuICBpbnN0YW5jZS5wcm9wcyA9IG9sZFByb3BzO1xuICB2YXIgdW5yZXNvbHZlZE5ld1Byb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuICB2YXIgb2xkQ29udGV4dCA9IGluc3RhbmNlLmNvbnRleHQ7XG4gIHZhciBjb250ZXh0VHlwZSA9IGN0b3IuY29udGV4dFR5cGU7XG4gIHZhciBuZXh0Q29udGV4dCA9IGVtcHR5Q29udGV4dE9iamVjdDtcblxuICBpZiAodHlwZW9mIGNvbnRleHRUeXBlID09PSAnb2JqZWN0JyAmJiBjb250ZXh0VHlwZSAhPT0gbnVsbCkge1xuICAgIG5leHRDb250ZXh0ID0gcmVhZENvbnRleHQoY29udGV4dFR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHZhciBuZXh0VW5tYXNrZWRDb250ZXh0ID0gZ2V0VW5tYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCBjdG9yLCB0cnVlKTtcbiAgICBuZXh0Q29udGV4dCA9IGdldE1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIG5leHRVbm1hc2tlZENvbnRleHQpO1xuICB9XG5cbiAgdmFyIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9IGN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1xuICB2YXIgaGFzTmV3TGlmZWN5Y2xlcyA9IHR5cGVvZiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGluc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlID09PSAnZnVuY3Rpb24nOyAvLyBOb3RlOiBEdXJpbmcgdGhlc2UgbGlmZS1jeWNsZXMsIGluc3RhbmNlLnByb3BzL2luc3RhbmNlLnN0YXRlIGFyZSB3aGF0XG4gIC8vIGV2ZXIgdGhlIHByZXZpb3VzbHkgYXR0ZW1wdGVkIHRvIHJlbmRlciAtIG5vdCB0aGUgXCJjdXJyZW50XCIuIEhvd2V2ZXIsXG4gIC8vIGR1cmluZyBjb21wb25lbnREaWRVcGRhdGUgd2UgcGFzcyB0aGUgXCJjdXJyZW50XCIgcHJvcHMuXG4gIC8vIEluIG9yZGVyIHRvIHN1cHBvcnQgcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQgcG9seWZpbGxlZCBjb21wb25lbnRzLFxuICAvLyBVbnNhZmUgbGlmZWN5Y2xlcyBzaG91bGQgbm90IGJlIGludm9rZWQgZm9yIGNvbXBvbmVudHMgdXNpbmcgdGhlIG5ldyBBUElzLlxuXG4gIGlmICghaGFzTmV3TGlmZWN5Y2xlcyAmJiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nKSkge1xuICAgIGlmICh1bnJlc29sdmVkT2xkUHJvcHMgIT09IHVucmVzb2x2ZWROZXdQcm9wcyB8fCBvbGRDb250ZXh0ICE9PSBuZXh0Q29udGV4dCkge1xuICAgICAgY2FsbENvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMod29ya0luUHJvZ3Jlc3MsIGluc3RhbmNlLCBuZXdQcm9wcywgbmV4dENvbnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0SGFzRm9yY2VVcGRhdGVCZWZvcmVQcm9jZXNzaW5nKCk7XG4gIHZhciBvbGRTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gIHZhciBuZXdTdGF0ZSA9IGluc3RhbmNlLnN0YXRlID0gb2xkU3RhdGU7XG4gIHByb2Nlc3NVcGRhdGVRdWV1ZSh3b3JrSW5Qcm9ncmVzcywgbmV3UHJvcHMsIGluc3RhbmNlLCByZW5kZXJMYW5lcyk7XG4gIG5ld1N0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcblxuICBpZiAodW5yZXNvbHZlZE9sZFByb3BzID09PSB1bnJlc29sdmVkTmV3UHJvcHMgJiYgb2xkU3RhdGUgPT09IG5ld1N0YXRlICYmICFoYXNDb250ZXh0Q2hhbmdlZCgpICYmICFjaGVja0hhc0ZvcmNlVXBkYXRlQWZ0ZXJQcm9jZXNzaW5nKCkgJiYgIShlbmFibGVMYXp5Q29udGV4dFByb3BhZ2F0aW9uICAgKSkge1xuICAgIC8vIElmIGFuIHVwZGF0ZSB3YXMgYWxyZWFkeSBpbiBwcm9ncmVzcywgd2Ugc2hvdWxkIHNjaGVkdWxlIGFuIFVwZGF0ZVxuICAgIC8vIGVmZmVjdCBldmVuIHRob3VnaCB3ZSdyZSBiYWlsaW5nIG91dCwgc28gdGhhdCBjV1UvY0RVIGFyZSBjYWxsZWQuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmICh1bnJlc29sdmVkT2xkUHJvcHMgIT09IGN1cnJlbnQubWVtb2l6ZWRQcm9wcyB8fCBvbGRTdGF0ZSAhPT0gY3VycmVudC5tZW1vaXplZFN0YXRlKSB7XG4gICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAodW5yZXNvbHZlZE9sZFByb3BzICE9PSBjdXJyZW50Lm1lbW9pemVkUHJvcHMgfHwgb2xkU3RhdGUgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSkge1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBTbmFwc2hvdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAodHlwZW9mIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGFwcGx5RGVyaXZlZFN0YXRlRnJvbVByb3BzKHdvcmtJblByb2dyZXNzLCBjdG9yLCBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsIG5ld1Byb3BzKTtcbiAgICBuZXdTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gIH1cblxuICB2YXIgc2hvdWxkVXBkYXRlID0gY2hlY2tIYXNGb3JjZVVwZGF0ZUFmdGVyUHJvY2Vzc2luZygpIHx8IGNoZWNrU2hvdWxkQ29tcG9uZW50VXBkYXRlKHdvcmtJblByb2dyZXNzLCBjdG9yLCBvbGRQcm9wcywgbmV3UHJvcHMsIG9sZFN0YXRlLCBuZXdTdGF0ZSwgbmV4dENvbnRleHQpIHx8IC8vIFRPRE86IEluIHNvbWUgY2FzZXMsIHdlJ2xsIGVuZCB1cCBjaGVja2luZyBpZiBjb250ZXh0IGhhcyBjaGFuZ2VkIHR3aWNlLFxuICAvLyBib3RoIGJlZm9yZSBhbmQgYWZ0ZXIgYHNob3VsZENvbXBvbmVudFVwZGF0ZWAgaGFzIGJlZW4gY2FsbGVkLiBOb3QgaWRlYWwsXG4gIC8vIGJ1dCBJJ20gbG9hdGggdG8gcmVmYWN0b3IgdGhpcyBmdW5jdGlvbi4gVGhpcyBvbmx5IGhhcHBlbnMgZm9yIG1lbW9pemVkXG4gIC8vIGNvbXBvbmVudHMgc28gaXQncyBub3QgdGhhdCBjb21tb24uXG4gIGVuYWJsZUxhenlDb250ZXh0UHJvcGFnYXRpb24gICA7XG5cbiAgaWYgKHNob3VsZFVwZGF0ZSkge1xuICAgIC8vIEluIG9yZGVyIHRvIHN1cHBvcnQgcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQgcG9seWZpbGxlZCBjb21wb25lbnRzLFxuICAgIC8vIFVuc2FmZSBsaWZlY3ljbGVzIHNob3VsZCBub3QgYmUgaW52b2tlZCBmb3IgY29tcG9uZW50cyB1c2luZyB0aGUgbmV3IEFQSXMuXG4gICAgaWYgKCFoYXNOZXdMaWZlY3ljbGVzICYmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpKSB7XG4gICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVwZGF0ZShuZXdQcm9wcywgbmV3U3RhdGUsIG5leHRDb250ZXh0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZShuZXdQcm9wcywgbmV3U3RhdGUsIG5leHRDb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFNuYXBzaG90O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJZiBhbiB1cGRhdGUgd2FzIGFscmVhZHkgaW4gcHJvZ3Jlc3MsIHdlIHNob3VsZCBzY2hlZHVsZSBhbiBVcGRhdGVcbiAgICAvLyBlZmZlY3QgZXZlbiB0aG91Z2ggd2UncmUgYmFpbGluZyBvdXQsIHNvIHRoYXQgY1dVL2NEVSBhcmUgY2FsbGVkLlxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAodW5yZXNvbHZlZE9sZFByb3BzICE9PSBjdXJyZW50Lm1lbW9pemVkUHJvcHMgfHwgb2xkU3RhdGUgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSkge1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBVcGRhdGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKHVucmVzb2x2ZWRPbGRQcm9wcyAhPT0gY3VycmVudC5tZW1vaXplZFByb3BzIHx8IG9sZFN0YXRlICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUpIHtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gU25hcHNob3Q7XG4gICAgICB9XG4gICAgfSAvLyBJZiBzaG91bGRDb21wb25lbnRVcGRhdGUgcmV0dXJuZWQgZmFsc2UsIHdlIHNob3VsZCBzdGlsbCB1cGRhdGUgdGhlXG4gICAgLy8gbWVtb2l6ZWQgcHJvcHMvc3RhdGUgdG8gaW5kaWNhdGUgdGhhdCB0aGlzIHdvcmsgY2FuIGJlIHJldXNlZC5cblxuXG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcyA9IG5ld1Byb3BzO1xuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBuZXdTdGF0ZTtcbiAgfSAvLyBVcGRhdGUgdGhlIGV4aXN0aW5nIGluc3RhbmNlJ3Mgc3RhdGUsIHByb3BzLCBhbmQgY29udGV4dCBwb2ludGVycyBldmVuXG4gIC8vIGlmIHNob3VsZENvbXBvbmVudFVwZGF0ZSByZXR1cm5zIGZhbHNlLlxuXG5cbiAgaW5zdGFuY2UucHJvcHMgPSBuZXdQcm9wcztcbiAgaW5zdGFuY2Uuc3RhdGUgPSBuZXdTdGF0ZTtcbiAgaW5zdGFuY2UuY29udGV4dCA9IG5leHRDb250ZXh0O1xuICByZXR1cm4gc2hvdWxkVXBkYXRlO1xufVxuXG4vLyBUT0RPOiBVc2UgdGhlIHVuaWZpZWQgZmliZXIgc3RhY2sgbW9kdWxlIGluc3RlYWQgb2YgdGhpcyBsb2NhbCBvbmU/XG4vLyBJbnRlbnRpb25hbGx5IG5vdCB1c2luZyBpdCB5ZXQgdG8gZGVyaXNrIHRoZSBpbml0aWFsIGltcGxlbWVudGF0aW9uLCBiZWNhdXNlXG4vLyB0aGUgd2F5IHdlIHB1c2gvcG9wIHRoZXNlIHZhbHVlcyBpcyBhIGJpdCB1bnVzdWFsLiBJZiB0aGVyZSdzIGEgbWlzdGFrZSwgSSdkXG4vLyByYXRoZXIgdGhlIGlkcyBiZSB3cm9uZyB0aGFuIGNyYXNoIHRoZSB3aG9sZSByZWNvbmNpbGVyLlxudmFyIGZvcmtTdGFjayA9IFtdO1xudmFyIGZvcmtTdGFja0luZGV4ID0gMDtcbnZhciB0cmVlRm9ya1Byb3ZpZGVyID0gbnVsbDtcbnZhciB0cmVlRm9ya0NvdW50ID0gMDtcbnZhciBpZFN0YWNrID0gW107XG52YXIgaWRTdGFja0luZGV4ID0gMDtcbnZhciB0cmVlQ29udGV4dFByb3ZpZGVyID0gbnVsbDtcbnZhciB0cmVlQ29udGV4dElkID0gMTtcbnZhciB0cmVlQ29udGV4dE92ZXJmbG93ID0gJyc7XG5mdW5jdGlvbiBpc0ZvcmtlZENoaWxkKHdvcmtJblByb2dyZXNzKSB7XG4gIHdhcm5JZk5vdEh5ZHJhdGluZygpO1xuICByZXR1cm4gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgRm9ya2VkKSAhPT0gTm9GbGFncztcbn1cbmZ1bmN0aW9uIGdldEZvcmtzQXRMZXZlbCh3b3JrSW5Qcm9ncmVzcykge1xuICB3YXJuSWZOb3RIeWRyYXRpbmcoKTtcbiAgcmV0dXJuIHRyZWVGb3JrQ291bnQ7XG59XG5mdW5jdGlvbiBnZXRUcmVlSWQoKSB7XG4gIHZhciBvdmVyZmxvdyA9IHRyZWVDb250ZXh0T3ZlcmZsb3c7XG4gIHZhciBpZFdpdGhMZWFkaW5nQml0ID0gdHJlZUNvbnRleHRJZDtcbiAgdmFyIGlkID0gaWRXaXRoTGVhZGluZ0JpdCAmIH5nZXRMZWFkaW5nQml0KGlkV2l0aExlYWRpbmdCaXQpO1xuICByZXR1cm4gaWQudG9TdHJpbmcoMzIpICsgb3ZlcmZsb3c7XG59XG5mdW5jdGlvbiBwdXNoVHJlZUZvcmsod29ya0luUHJvZ3Jlc3MsIHRvdGFsQ2hpbGRyZW4pIHtcbiAgLy8gVGhpcyBpcyBjYWxsZWQgcmlnaHQgYWZ0ZXIgd2UgcmVjb25jaWxlIGFuIGFycmF5IChvciBpdGVyYXRvcikgb2YgY2hpbGRcbiAgLy8gZmliZXJzLCBiZWNhdXNlIHRoYXQncyB0aGUgb25seSBwbGFjZSB3aGVyZSB3ZSBrbm93IGhvdyBtYW55IGNoaWxkcmVuIGluXG4gIC8vIHRoZSB3aG9sZSBzZXQgd2l0aG91dCBkb2luZyBleHRyYSB3b3JrIGxhdGVyLCBvciBzdG9yaW5nIGFkZHRpb25hbFxuICAvLyBpbmZvcm1hdGlvbiBvbiB0aGUgZmliZXIuXG4gIC8vXG4gIC8vIFRoYXQncyB3aHkgdGhpcyBmdW5jdGlvbiBpcyBzZXBhcmF0ZSBmcm9tIHB1c2hUcmVlSWQgXHUyMDE0IGl0J3MgY2FsbGVkIGR1cmluZ1xuICAvLyB0aGUgcmVuZGVyIHBoYXNlIG9mIHRoZSBmb3JrIHBhcmVudCwgbm90IHRoZSBjaGlsZCwgd2hpY2ggaXMgd2hlcmUgd2UgcHVzaFxuICAvLyB0aGUgb3RoZXIgY29udGV4dCB2YWx1ZXMuXG4gIC8vXG4gIC8vIEluIHRoZSBGaXp6IGltcGxlbWVudGF0aW9uIHRoaXMgaXMgbXVjaCBzaW1wbGVyIGJlY2F1c2UgdGhlIGNoaWxkIGlzXG4gIC8vIHJlbmRlcmVkIGluIHRoZSBzYW1lIGNhbGxzdGFjayBhcyB0aGUgcGFyZW50LlxuICAvL1xuICAvLyBJdCBtaWdodCBiZSBiZXR0ZXIgdG8ganVzdCBhZGQgYSBgZm9ya3NgIGZpZWxkIHRvIHRoZSBGaWJlciB0eXBlLiBJdCB3b3VsZFxuICAvLyBtYWtlIHRoaXMgbW9kdWxlIHNpbXBsZXIuXG4gIHdhcm5JZk5vdEh5ZHJhdGluZygpO1xuICBmb3JrU3RhY2tbZm9ya1N0YWNrSW5kZXgrK10gPSB0cmVlRm9ya0NvdW50O1xuICBmb3JrU3RhY2tbZm9ya1N0YWNrSW5kZXgrK10gPSB0cmVlRm9ya1Byb3ZpZGVyO1xuICB0cmVlRm9ya1Byb3ZpZGVyID0gd29ya0luUHJvZ3Jlc3M7XG4gIHRyZWVGb3JrQ291bnQgPSB0b3RhbENoaWxkcmVuO1xufVxuZnVuY3Rpb24gcHVzaFRyZWVJZCh3b3JrSW5Qcm9ncmVzcywgdG90YWxDaGlsZHJlbiwgaW5kZXgpIHtcbiAgd2FybklmTm90SHlkcmF0aW5nKCk7XG4gIGlkU3RhY2tbaWRTdGFja0luZGV4KytdID0gdHJlZUNvbnRleHRJZDtcbiAgaWRTdGFja1tpZFN0YWNrSW5kZXgrK10gPSB0cmVlQ29udGV4dE92ZXJmbG93O1xuICBpZFN0YWNrW2lkU3RhY2tJbmRleCsrXSA9IHRyZWVDb250ZXh0UHJvdmlkZXI7XG4gIHRyZWVDb250ZXh0UHJvdmlkZXIgPSB3b3JrSW5Qcm9ncmVzcztcbiAgdmFyIGJhc2VJZFdpdGhMZWFkaW5nQml0ID0gdHJlZUNvbnRleHRJZDtcbiAgdmFyIGJhc2VPdmVyZmxvdyA9IHRyZWVDb250ZXh0T3ZlcmZsb3c7IC8vIFRoZSBsZWZ0bW9zdCAxIG1hcmtzIHRoZSBlbmQgb2YgdGhlIHNlcXVlbmNlLCBub24taW5jbHVzaXZlLiBJdCdzIG5vdCBwYXJ0XG4gIC8vIG9mIHRoZSBpZDsgd2UgdXNlIGl0IHRvIGFjY291bnQgZm9yIGxlYWRpbmcgMHMuXG5cbiAgdmFyIGJhc2VMZW5ndGggPSBnZXRCaXRMZW5ndGgoYmFzZUlkV2l0aExlYWRpbmdCaXQpIC0gMTtcbiAgdmFyIGJhc2VJZCA9IGJhc2VJZFdpdGhMZWFkaW5nQml0ICYgfigxIDw8IGJhc2VMZW5ndGgpO1xuICB2YXIgc2xvdCA9IGluZGV4ICsgMTtcbiAgdmFyIGxlbmd0aCA9IGdldEJpdExlbmd0aCh0b3RhbENoaWxkcmVuKSArIGJhc2VMZW5ndGg7IC8vIDMwIGlzIHRoZSBtYXggbGVuZ3RoIHdlIGNhbiBzdG9yZSB3aXRob3V0IG92ZXJmbG93aW5nLCB0YWtpbmcgaW50b1xuICAvLyBjb25zaWRlcmF0aW9uIHRoZSBsZWFkaW5nIDEgd2UgdXNlIHRvIG1hcmsgdGhlIGVuZCBvZiB0aGUgc2VxdWVuY2UuXG5cbiAgaWYgKGxlbmd0aCA+IDMwKSB7XG4gICAgLy8gV2Ugb3ZlcmZsb3dlZCB0aGUgYml0d2lzZS1zYWZlIHJhbmdlLiBGYWxsIGJhY2sgdG8gc2xvd2VyIGFsZ29yaXRobS5cbiAgICAvLyBUaGlzIGJyYW5jaCBhc3N1bWVzIHRoZSBsZW5ndGggb2YgdGhlIGJhc2UgaWQgaXMgZ3JlYXRlciB0aGFuIDU7IGl0IHdvbid0XG4gICAgLy8gd29yayBmb3Igc21hbGxlciBpZHMsIGJlY2F1c2UgeW91IG5lZWQgNSBiaXRzIHBlciBjaGFyYWN0ZXIuXG4gICAgLy9cbiAgICAvLyBXZSBlbmNvZGUgdGhlIGlkIGluIG11bHRpcGxlIHN0ZXBzOiBmaXJzdCB0aGUgYmFzZSBpZCwgdGhlbiB0aGVcbiAgICAvLyByZW1haW5pbmcgZGlnaXRzLlxuICAgIC8vXG4gICAgLy8gRWFjaCA1IGJpdCBzZXF1ZW5jZSBjb3JyZXNwb25kcyB0byBhIHNpbmdsZSBiYXNlIDMyIGNoYXJhY3Rlci4gU28gZm9yXG4gICAgLy8gZXhhbXBsZSwgaWYgdGhlIGN1cnJlbnQgaWQgaXMgMjMgYml0cyBsb25nLCB3ZSBjYW4gY29udmVydCAyMCBvZiB0aG9zZVxuICAgIC8vIGJpdHMgaW50byBhIHN0cmluZyBvZiA0IGNoYXJhY3RlcnMsIHdpdGggMyBiaXRzIGxlZnQgb3Zlci5cbiAgICAvL1xuICAgIC8vIEZpcnN0IGNhbGN1bGF0ZSBob3cgbWFueSBiaXRzIGluIHRoZSBiYXNlIGlkIHJlcHJlc2VudCBhIGNvbXBsZXRlXG4gICAgLy8gc2VxdWVuY2Ugb2YgY2hhcmFjdGVycy5cbiAgICB2YXIgbnVtYmVyT2ZPdmVyZmxvd0JpdHMgPSBiYXNlTGVuZ3RoIC0gYmFzZUxlbmd0aCAlIDU7IC8vIFRoZW4gY3JlYXRlIGEgYml0bWFzayB0aGF0IHNlbGVjdHMgb25seSB0aG9zZSBiaXRzLlxuXG4gICAgdmFyIG5ld092ZXJmbG93Qml0cyA9ICgxIDw8IG51bWJlck9mT3ZlcmZsb3dCaXRzKSAtIDE7IC8vIFNlbGVjdCB0aGUgYml0cywgYW5kIGNvbnZlcnQgdGhlbSB0byBhIGJhc2UgMzIgc3RyaW5nLlxuXG4gICAgdmFyIG5ld092ZXJmbG93ID0gKGJhc2VJZCAmIG5ld092ZXJmbG93Qml0cykudG9TdHJpbmcoMzIpOyAvLyBOb3cgd2UgY2FuIHJlbW92ZSB0aG9zZSBiaXRzIGZyb20gdGhlIGJhc2UgaWQuXG5cbiAgICB2YXIgcmVzdE9mQmFzZUlkID0gYmFzZUlkID4+IG51bWJlck9mT3ZlcmZsb3dCaXRzO1xuICAgIHZhciByZXN0T2ZCYXNlTGVuZ3RoID0gYmFzZUxlbmd0aCAtIG51bWJlck9mT3ZlcmZsb3dCaXRzOyAvLyBGaW5hbGx5LCBlbmNvZGUgdGhlIHJlc3Qgb2YgdGhlIGJpdHMgdXNpbmcgdGhlIG5vcm1hbCBhbGdvcml0aG0uIEJlY2F1c2VcbiAgICAvLyB3ZSBtYWRlIG1vcmUgcm9vbSwgdGhpcyB0aW1lIGl0IHdvbid0IG92ZXJmbG93LlxuXG4gICAgdmFyIHJlc3RPZkxlbmd0aCA9IGdldEJpdExlbmd0aCh0b3RhbENoaWxkcmVuKSArIHJlc3RPZkJhc2VMZW5ndGg7XG4gICAgdmFyIHJlc3RPZk5ld0JpdHMgPSBzbG90IDw8IHJlc3RPZkJhc2VMZW5ndGg7XG4gICAgdmFyIGlkID0gcmVzdE9mTmV3Qml0cyB8IHJlc3RPZkJhc2VJZDtcbiAgICB2YXIgb3ZlcmZsb3cgPSBuZXdPdmVyZmxvdyArIGJhc2VPdmVyZmxvdztcbiAgICB0cmVlQ29udGV4dElkID0gMSA8PCByZXN0T2ZMZW5ndGggfCBpZDtcbiAgICB0cmVlQ29udGV4dE92ZXJmbG93ID0gb3ZlcmZsb3c7XG4gIH0gZWxzZSB7XG4gICAgLy8gTm9ybWFsIHBhdGhcbiAgICB2YXIgbmV3Qml0cyA9IHNsb3QgPDwgYmFzZUxlbmd0aDtcblxuICAgIHZhciBfaWQgPSBuZXdCaXRzIHwgYmFzZUlkO1xuXG4gICAgdmFyIF9vdmVyZmxvdyA9IGJhc2VPdmVyZmxvdztcbiAgICB0cmVlQ29udGV4dElkID0gMSA8PCBsZW5ndGggfCBfaWQ7XG4gICAgdHJlZUNvbnRleHRPdmVyZmxvdyA9IF9vdmVyZmxvdztcbiAgfVxufVxuZnVuY3Rpb24gcHVzaE1hdGVyaWFsaXplZFRyZWVJZCh3b3JrSW5Qcm9ncmVzcykge1xuICB3YXJuSWZOb3RIeWRyYXRpbmcoKTsgLy8gVGhpcyBjb21wb25lbnQgbWF0ZXJpYWxpemVkIGFuIGlkLiBUaGlzIHdpbGwgYWZmZWN0IGFueSBpZHMgdGhhdCBhcHBlYXJcbiAgLy8gaW4gaXRzIGNoaWxkcmVuLlxuXG4gIHZhciByZXR1cm5GaWJlciA9IHdvcmtJblByb2dyZXNzLnJldHVybjtcblxuICBpZiAocmV0dXJuRmliZXIgIT09IG51bGwpIHtcbiAgICB2YXIgbnVtYmVyT2ZGb3JrcyA9IDE7XG4gICAgdmFyIHNsb3RJbmRleCA9IDA7XG4gICAgcHVzaFRyZWVGb3JrKHdvcmtJblByb2dyZXNzLCBudW1iZXJPZkZvcmtzKTtcbiAgICBwdXNoVHJlZUlkKHdvcmtJblByb2dyZXNzLCBudW1iZXJPZkZvcmtzLCBzbG90SW5kZXgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEJpdExlbmd0aChudW1iZXIpIHtcbiAgcmV0dXJuIDMyIC0gY2x6MzIobnVtYmVyKTtcbn1cblxuZnVuY3Rpb24gZ2V0TGVhZGluZ0JpdChpZCkge1xuICByZXR1cm4gMSA8PCBnZXRCaXRMZW5ndGgoaWQpIC0gMTtcbn1cblxuZnVuY3Rpb24gcG9wVHJlZUNvbnRleHQod29ya0luUHJvZ3Jlc3MpIHtcbiAgLy8gUmVzdG9yZSB0aGUgcHJldmlvdXMgdmFsdWVzLlxuICAvLyBUaGlzIGlzIGEgYml0IG1vcmUgY29tcGxpY2F0ZWQgdGhhbiBvdGhlciBjb250ZXh0LWxpa2UgbW9kdWxlcyBpbiBGaWJlclxuICAvLyBiZWNhdXNlIHRoZSBzYW1lIEZpYmVyIG1heSBhcHBlYXIgb24gdGhlIHN0YWNrIG11bHRpcGxlIHRpbWVzIGFuZCBmb3JcbiAgLy8gZGlmZmVyZW50IHJlYXNvbnMuIFdlIGhhdmUgdG8ga2VlcCBwb3BwaW5nIHVudGlsIHRoZSB3b3JrLWluLXByb2dyZXNzIGlzXG4gIC8vIG5vIGxvbmdlciBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgd2hpbGUgKHdvcmtJblByb2dyZXNzID09PSB0cmVlRm9ya1Byb3ZpZGVyKSB7XG4gICAgdHJlZUZvcmtQcm92aWRlciA9IGZvcmtTdGFja1stLWZvcmtTdGFja0luZGV4XTtcbiAgICBmb3JrU3RhY2tbZm9ya1N0YWNrSW5kZXhdID0gbnVsbDtcbiAgICB0cmVlRm9ya0NvdW50ID0gZm9ya1N0YWNrWy0tZm9ya1N0YWNrSW5kZXhdO1xuICAgIGZvcmtTdGFja1tmb3JrU3RhY2tJbmRleF0gPSBudWxsO1xuICB9XG5cbiAgd2hpbGUgKHdvcmtJblByb2dyZXNzID09PSB0cmVlQ29udGV4dFByb3ZpZGVyKSB7XG4gICAgdHJlZUNvbnRleHRQcm92aWRlciA9IGlkU3RhY2tbLS1pZFN0YWNrSW5kZXhdO1xuICAgIGlkU3RhY2tbaWRTdGFja0luZGV4XSA9IG51bGw7XG4gICAgdHJlZUNvbnRleHRPdmVyZmxvdyA9IGlkU3RhY2tbLS1pZFN0YWNrSW5kZXhdO1xuICAgIGlkU3RhY2tbaWRTdGFja0luZGV4XSA9IG51bGw7XG4gICAgdHJlZUNvbnRleHRJZCA9IGlkU3RhY2tbLS1pZFN0YWNrSW5kZXhdO1xuICAgIGlkU3RhY2tbaWRTdGFja0luZGV4XSA9IG51bGw7XG4gIH1cbn1cbmZ1bmN0aW9uIGdldFN1c3BlbmRlZFRyZWVDb250ZXh0KCkge1xuICB3YXJuSWZOb3RIeWRyYXRpbmcoKTtcblxuICBpZiAodHJlZUNvbnRleHRQcm92aWRlciAhPT0gbnVsbCkge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdHJlZUNvbnRleHRJZCxcbiAgICAgIG92ZXJmbG93OiB0cmVlQ29udGV4dE92ZXJmbG93XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuZnVuY3Rpb24gcmVzdG9yZVN1c3BlbmRlZFRyZWVDb250ZXh0KHdvcmtJblByb2dyZXNzLCBzdXNwZW5kZWRDb250ZXh0KSB7XG4gIHdhcm5JZk5vdEh5ZHJhdGluZygpO1xuICBpZFN0YWNrW2lkU3RhY2tJbmRleCsrXSA9IHRyZWVDb250ZXh0SWQ7XG4gIGlkU3RhY2tbaWRTdGFja0luZGV4KytdID0gdHJlZUNvbnRleHRPdmVyZmxvdztcbiAgaWRTdGFja1tpZFN0YWNrSW5kZXgrK10gPSB0cmVlQ29udGV4dFByb3ZpZGVyO1xuICB0cmVlQ29udGV4dElkID0gc3VzcGVuZGVkQ29udGV4dC5pZDtcbiAgdHJlZUNvbnRleHRPdmVyZmxvdyA9IHN1c3BlbmRlZENvbnRleHQub3ZlcmZsb3c7XG4gIHRyZWVDb250ZXh0UHJvdmlkZXIgPSB3b3JrSW5Qcm9ncmVzcztcbn1cblxuZnVuY3Rpb24gd2FybklmTm90SHlkcmF0aW5nKCkge1xuICB7XG4gICAgaWYgKCFnZXRJc0h5ZHJhdGluZygpKSB7XG4gICAgICBlcnJvcignRXhwZWN0ZWQgdG8gYmUgaHlkcmF0aW5nLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSAnICsgJ2FuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUaGlzIG1heSBoYXZlIGJlZW4gYW4gaW5zZXJ0aW9uIG9yIGEgaHlkcmF0aW9uLlxuXG52YXIgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBudWxsO1xudmFyIG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBudWxsO1xudmFyIGlzSHlkcmF0aW5nID0gZmFsc2U7XG52YXIgZGlkU3VzcGVuZCA9IGZhbHNlOyAvLyBIeWRyYXRpb24gZXJyb3JzIHRoYXQgd2VyZSB0aHJvd24gaW5zaWRlIHRoaXMgYm91bmRhcnlcblxudmFyIGh5ZHJhdGlvbkVycm9ycyA9IG51bGw7XG5cbmZ1bmN0aW9uIHdhcm5JZkh5ZHJhdGluZygpIHtcbiAge1xuICAgIGlmIChpc0h5ZHJhdGluZykge1xuICAgICAgZXJyb3IoJ1dlIHNob3VsZCBub3QgYmUgaHlkcmF0aW5nIGhlcmUuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGEgYnVnLicpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrRGlkU3VzcGVuZFdoaWxlSHlkcmF0aW5nREVWKCkge1xuICB7XG4gICAgZGlkU3VzcGVuZCA9IHRydWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gZW50ZXJIeWRyYXRpb25TdGF0ZShmaWJlcikge1xuXG4gIHZhciBwYXJlbnRJbnN0YW5jZSA9IGZpYmVyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZ2V0Rmlyc3RIeWRyYXRhYmxlQ2hpbGRXaXRoaW5Db250YWluZXIocGFyZW50SW5zdGFuY2UpO1xuICBoeWRyYXRpb25QYXJlbnRGaWJlciA9IGZpYmVyO1xuICBpc0h5ZHJhdGluZyA9IHRydWU7XG4gIGh5ZHJhdGlvbkVycm9ycyA9IG51bGw7XG4gIGRpZFN1c3BlbmQgPSBmYWxzZTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHJlZW50ZXJIeWRyYXRpb25TdGF0ZUZyb21EZWh5ZHJhdGVkU3VzcGVuc2VJbnN0YW5jZShmaWJlciwgc3VzcGVuc2VJbnN0YW5jZSwgdHJlZUNvbnRleHQpIHtcblxuICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZ2V0Rmlyc3RIeWRyYXRhYmxlQ2hpbGRXaXRoaW5TdXNwZW5zZUluc3RhbmNlKHN1c3BlbnNlSW5zdGFuY2UpO1xuICBoeWRyYXRpb25QYXJlbnRGaWJlciA9IGZpYmVyO1xuICBpc0h5ZHJhdGluZyA9IHRydWU7XG4gIGh5ZHJhdGlvbkVycm9ycyA9IG51bGw7XG4gIGRpZFN1c3BlbmQgPSBmYWxzZTtcblxuICBpZiAodHJlZUNvbnRleHQgIT09IG51bGwpIHtcbiAgICByZXN0b3JlU3VzcGVuZGVkVHJlZUNvbnRleHQoZmliZXIsIHRyZWVDb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiB3YXJuVW5oeWRyYXRlZEluc3RhbmNlKHJldHVybkZpYmVyLCBpbnN0YW5jZSkge1xuICB7XG4gICAgc3dpdGNoIChyZXR1cm5GaWJlci50YWcpIHtcbiAgICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICAgIGRpZE5vdEh5ZHJhdGVJbnN0YW5jZVdpdGhpbkNvbnRhaW5lcihyZXR1cm5GaWJlci5zdGF0ZU5vZGUuY29udGFpbmVySW5mbywgaW5zdGFuY2UpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICBkaWROb3RIeWRyYXRlSW5zdGFuY2UocmV0dXJuRmliZXIudHlwZSwgcmV0dXJuRmliZXIubWVtb2l6ZWRQcm9wcywgcmV0dXJuRmliZXIuc3RhdGVOb2RlLCBpbnN0YW5jZSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAgICB2YXIgc3VzcGVuc2VTdGF0ZSA9IHJldHVybkZpYmVyLm1lbW9pemVkU3RhdGU7XG4gICAgICAgIGlmIChzdXNwZW5zZVN0YXRlLmRlaHlkcmF0ZWQgIT09IG51bGwpIGRpZE5vdEh5ZHJhdGVJbnN0YW5jZVdpdGhpblN1c3BlbnNlSW5zdGFuY2Uoc3VzcGVuc2VTdGF0ZS5kZWh5ZHJhdGVkLCBpbnN0YW5jZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBkZWxldGVIeWRyYXRhYmxlSW5zdGFuY2UocmV0dXJuRmliZXIsIGluc3RhbmNlKSB7XG4gIHdhcm5Vbmh5ZHJhdGVkSW5zdGFuY2UocmV0dXJuRmliZXIsIGluc3RhbmNlKTtcbiAgdmFyIGNoaWxkVG9EZWxldGUgPSBjcmVhdGVGaWJlckZyb21Ib3N0SW5zdGFuY2VGb3JEZWxldGlvbigpO1xuICBjaGlsZFRvRGVsZXRlLnN0YXRlTm9kZSA9IGluc3RhbmNlO1xuICBjaGlsZFRvRGVsZXRlLnJldHVybiA9IHJldHVybkZpYmVyO1xuICB2YXIgZGVsZXRpb25zID0gcmV0dXJuRmliZXIuZGVsZXRpb25zO1xuXG4gIGlmIChkZWxldGlvbnMgPT09IG51bGwpIHtcbiAgICByZXR1cm5GaWJlci5kZWxldGlvbnMgPSBbY2hpbGRUb0RlbGV0ZV07XG4gICAgcmV0dXJuRmliZXIuZmxhZ3MgfD0gQ2hpbGREZWxldGlvbjtcbiAgfSBlbHNlIHtcbiAgICBkZWxldGlvbnMucHVzaChjaGlsZFRvRGVsZXRlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB3YXJuTm9uaHlkcmF0ZWRJbnN0YW5jZShyZXR1cm5GaWJlciwgZmliZXIpIHtcbiAge1xuICAgIGlmIChkaWRTdXNwZW5kKSB7XG4gICAgICAvLyBJbnNpZGUgYSBib3VuZGFyeSB0aGF0IGFscmVhZHkgc3VzcGVuZGVkLiBXZSdyZSBjdXJyZW50bHkgcmVuZGVyaW5nIHRoZVxuICAgICAgLy8gc2libGluZ3Mgb2YgYSBzdXNwZW5kZWQgbm9kZS4gVGhlIG1pc21hdGNoIG1heSBiZSBkdWUgdG8gdGhlIG1pc3NpbmdcbiAgICAgIC8vIGRhdGEsIHNvIGl0J3MgcHJvYmFibHkgYSBmYWxzZSBwb3NpdGl2ZS5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHJldHVybkZpYmVyLnRhZykge1xuICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBwYXJlbnRDb250YWluZXIgPSByZXR1cm5GaWJlci5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztcblxuICAgICAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICAgICAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICAgICAgICAgIHZhciB0eXBlID0gZmliZXIudHlwZTtcbiAgICAgICAgICAgICAgdmFyIHByb3BzID0gZmliZXIucGVuZGluZ1Byb3BzO1xuICAgICAgICAgICAgICBkaWROb3RGaW5kSHlkcmF0YWJsZUluc3RhbmNlV2l0aGluQ29udGFpbmVyKHBhcmVudENvbnRhaW5lciwgdHlwZSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIEhvc3RUZXh0OlxuICAgICAgICAgICAgICB2YXIgdGV4dCA9IGZpYmVyLnBlbmRpbmdQcm9wcztcbiAgICAgICAgICAgICAgZGlkTm90RmluZEh5ZHJhdGFibGVUZXh0SW5zdGFuY2VXaXRoaW5Db250YWluZXIocGFyZW50Q29udGFpbmVyLCB0ZXh0KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIHBhcmVudFR5cGUgPSByZXR1cm5GaWJlci50eXBlO1xuICAgICAgICAgIHZhciBwYXJlbnRQcm9wcyA9IHJldHVybkZpYmVyLm1lbW9pemVkUHJvcHM7XG4gICAgICAgICAgdmFyIHBhcmVudEluc3RhbmNlID0gcmV0dXJuRmliZXIuc3RhdGVOb2RlO1xuXG4gICAgICAgICAgc3dpdGNoIChmaWJlci50YWcpIHtcbiAgICAgICAgICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgICAgICAgICAgdmFyIF90eXBlID0gZmliZXIudHlwZTtcbiAgICAgICAgICAgICAgdmFyIF9wcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcztcbiAgICAgICAgICAgICAgZGlkTm90RmluZEh5ZHJhdGFibGVJbnN0YW5jZShwYXJlbnRUeXBlLCBwYXJlbnRQcm9wcywgcGFyZW50SW5zdGFuY2UsIF90eXBlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgICAgICAgICAgIHZhciBfdGV4dCA9IGZpYmVyLnBlbmRpbmdQcm9wcztcbiAgICAgICAgICAgICAgZGlkTm90RmluZEh5ZHJhdGFibGVUZXh0SW5zdGFuY2UocGFyZW50VHlwZSwgcGFyZW50UHJvcHMsIHBhcmVudEluc3RhbmNlLCBfdGV4dCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAgICAgICAgICBkaWROb3RGaW5kSHlkcmF0YWJsZVN1c3BlbnNlSW5zdGFuY2UocGFyZW50VHlwZSwgcGFyZW50UHJvcHMpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIHN1c3BlbnNlU3RhdGUgPSByZXR1cm5GaWJlci5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgIHZhciBfcGFyZW50SW5zdGFuY2UgPSBzdXNwZW5zZVN0YXRlLmRlaHlkcmF0ZWQ7XG4gICAgICAgICAgaWYgKF9wYXJlbnRJbnN0YW5jZSAhPT0gbnVsbCkgc3dpdGNoIChmaWJlci50YWcpIHtcbiAgICAgICAgICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgICAgICAgICAgdmFyIF90eXBlMiA9IGZpYmVyLnR5cGU7XG4gICAgICAgICAgICAgIHZhciBfcHJvcHMyID0gZmliZXIucGVuZGluZ1Byb3BzO1xuICAgICAgICAgICAgICBkaWROb3RGaW5kSHlkcmF0YWJsZUluc3RhbmNlV2l0aGluU3VzcGVuc2VJbnN0YW5jZShfcGFyZW50SW5zdGFuY2UsIF90eXBlMik7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIEhvc3RUZXh0OlxuICAgICAgICAgICAgICB2YXIgX3RleHQyID0gZmliZXIucGVuZGluZ1Byb3BzO1xuICAgICAgICAgICAgICBkaWROb3RGaW5kSHlkcmF0YWJsZVRleHRJbnN0YW5jZVdpdGhpblN1c3BlbnNlSW5zdGFuY2UoX3BhcmVudEluc3RhbmNlLCBfdGV4dDIpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpbnNlcnROb25IeWRyYXRlZEluc3RhbmNlKHJldHVybkZpYmVyLCBmaWJlcikge1xuICBmaWJlci5mbGFncyA9IGZpYmVyLmZsYWdzICYgfkh5ZHJhdGluZyB8IFBsYWNlbWVudDtcbiAgd2Fybk5vbmh5ZHJhdGVkSW5zdGFuY2UocmV0dXJuRmliZXIsIGZpYmVyKTtcbn1cblxuZnVuY3Rpb24gdHJ5SHlkcmF0ZShmaWJlciwgbmV4dEluc3RhbmNlKSB7XG4gIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB2YXIgdHlwZSA9IGZpYmVyLnR5cGU7XG4gICAgICAgIHZhciBwcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcztcbiAgICAgICAgdmFyIGluc3RhbmNlID0gY2FuSHlkcmF0ZUluc3RhbmNlKG5leHRJbnN0YW5jZSwgdHlwZSk7XG5cbiAgICAgICAgaWYgKGluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgICAgICAgZmliZXIuc3RhdGVOb2RlID0gaW5zdGFuY2U7XG4gICAgICAgICAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBmaWJlcjtcbiAgICAgICAgICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZ2V0Rmlyc3RIeWRyYXRhYmxlQ2hpbGQoaW5zdGFuY2UpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0VGV4dDpcbiAgICAgIHtcbiAgICAgICAgdmFyIHRleHQgPSBmaWJlci5wZW5kaW5nUHJvcHM7XG4gICAgICAgIHZhciB0ZXh0SW5zdGFuY2UgPSBjYW5IeWRyYXRlVGV4dEluc3RhbmNlKG5leHRJbnN0YW5jZSwgdGV4dCk7XG5cbiAgICAgICAgaWYgKHRleHRJbnN0YW5jZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGZpYmVyLnN0YXRlTm9kZSA9IHRleHRJbnN0YW5jZTtcbiAgICAgICAgICBoeWRyYXRpb25QYXJlbnRGaWJlciA9IGZpYmVyOyAvLyBUZXh0IEluc3RhbmNlcyBkb24ndCBoYXZlIGNoaWxkcmVuIHNvIHRoZXJlJ3Mgbm90aGluZyB0byBoeWRyYXRlLlxuXG4gICAgICAgICAgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IG51bGw7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB7XG4gICAgICAgICAgdmFyIHN1c3BlbnNlSW5zdGFuY2UgPSBjYW5IeWRyYXRlU3VzcGVuc2VJbnN0YW5jZShuZXh0SW5zdGFuY2UpO1xuXG4gICAgICAgICAgaWYgKHN1c3BlbnNlSW5zdGFuY2UgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBzdXNwZW5zZVN0YXRlID0ge1xuICAgICAgICAgICAgICBkZWh5ZHJhdGVkOiBzdXNwZW5zZUluc3RhbmNlLFxuICAgICAgICAgICAgICB0cmVlQ29udGV4dDogZ2V0U3VzcGVuZGVkVHJlZUNvbnRleHQoKSxcbiAgICAgICAgICAgICAgcmV0cnlMYW5lOiBPZmZzY3JlZW5MYW5lXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZmliZXIubWVtb2l6ZWRTdGF0ZSA9IHN1c3BlbnNlU3RhdGU7IC8vIFN0b3JlIHRoZSBkZWh5ZHJhdGVkIGZyYWdtZW50IGFzIGEgY2hpbGQgZmliZXIuXG4gICAgICAgICAgICAvLyBUaGlzIHNpbXBsaWZpZXMgdGhlIGNvZGUgZm9yIGdldEhvc3RTaWJsaW5nIGFuZCBkZWxldGluZyBub2RlcyxcbiAgICAgICAgICAgIC8vIHNpbmNlIGl0IGRvZXNuJ3QgaGF2ZSB0byBjb25zaWRlciBhbGwgU3VzcGVuc2UgYm91bmRhcmllcyBhbmRcbiAgICAgICAgICAgIC8vIGNoZWNrIGlmIHRoZXkncmUgZGVoeWRyYXRlZCBvbmVzIG9yIG5vdC5cblxuICAgICAgICAgICAgdmFyIGRlaHlkcmF0ZWRGcmFnbWVudCA9IGNyZWF0ZUZpYmVyRnJvbURlaHlkcmF0ZWRGcmFnbWVudChzdXNwZW5zZUluc3RhbmNlKTtcbiAgICAgICAgICAgIGRlaHlkcmF0ZWRGcmFnbWVudC5yZXR1cm4gPSBmaWJlcjtcbiAgICAgICAgICAgIGZpYmVyLmNoaWxkID0gZGVoeWRyYXRlZEZyYWdtZW50O1xuICAgICAgICAgICAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBmaWJlcjsgLy8gV2hpbGUgYSBTdXNwZW5zZSBJbnN0YW5jZSBkb2VzIGhhdmUgY2hpbGRyZW4sIHdlIHdvbid0IHN0ZXAgaW50b1xuICAgICAgICAgICAgLy8gaXQgZHVyaW5nIHRoZSBmaXJzdCBwYXNzLiBJbnN0ZWFkLCB3ZSdsbCByZWVudGVyIGl0IGxhdGVyLlxuXG4gICAgICAgICAgICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gbnVsbDtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2hvdWxkQ2xpZW50UmVuZGVyT25NaXNtYXRjaChmaWJlcikge1xuICByZXR1cm4gIChmaWJlci5tb2RlICYgQ29uY3VycmVudE1vZGUpICE9PSBOb01vZGUgJiYgKGZpYmVyLmZsYWdzICYgRGlkQ2FwdHVyZSkgPT09IE5vRmxhZ3M7XG59XG5cbmZ1bmN0aW9uIHRocm93T25IeWRyYXRpb25NaXNtYXRjaChmaWJlcikge1xuICB0aHJvdyBuZXcgRXJyb3IoJ0h5ZHJhdGlvbiBmYWlsZWQgYmVjYXVzZSB0aGUgaW5pdGlhbCBVSSBkb2VzIG5vdCBtYXRjaCB3aGF0IHdhcyAnICsgJ3JlbmRlcmVkIG9uIHRoZSBzZXJ2ZXIuJyk7XG59XG5cbmZ1bmN0aW9uIHRyeVRvQ2xhaW1OZXh0SHlkcmF0YWJsZUluc3RhbmNlKGZpYmVyKSB7XG4gIGlmICghaXNIeWRyYXRpbmcpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgbmV4dEluc3RhbmNlID0gbmV4dEh5ZHJhdGFibGVJbnN0YW5jZTtcblxuICBpZiAoIW5leHRJbnN0YW5jZSkge1xuICAgIGlmIChzaG91bGRDbGllbnRSZW5kZXJPbk1pc21hdGNoKGZpYmVyKSkge1xuICAgICAgd2Fybk5vbmh5ZHJhdGVkSW5zdGFuY2UoaHlkcmF0aW9uUGFyZW50RmliZXIsIGZpYmVyKTtcbiAgICAgIHRocm93T25IeWRyYXRpb25NaXNtYXRjaCgpO1xuICAgIH0gLy8gTm90aGluZyB0byBoeWRyYXRlLiBNYWtlIGl0IGFuIGluc2VydGlvbi5cblxuXG4gICAgaW5zZXJ0Tm9uSHlkcmF0ZWRJbnN0YW5jZShoeWRyYXRpb25QYXJlbnRGaWJlciwgZmliZXIpO1xuICAgIGlzSHlkcmF0aW5nID0gZmFsc2U7XG4gICAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBmaWJlcjtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgZmlyc3RBdHRlbXB0ZWRJbnN0YW5jZSA9IG5leHRJbnN0YW5jZTtcblxuICBpZiAoIXRyeUh5ZHJhdGUoZmliZXIsIG5leHRJbnN0YW5jZSkpIHtcbiAgICBpZiAoc2hvdWxkQ2xpZW50UmVuZGVyT25NaXNtYXRjaChmaWJlcikpIHtcbiAgICAgIHdhcm5Ob25oeWRyYXRlZEluc3RhbmNlKGh5ZHJhdGlvblBhcmVudEZpYmVyLCBmaWJlcik7XG4gICAgICB0aHJvd09uSHlkcmF0aW9uTWlzbWF0Y2goKTtcbiAgICB9IC8vIElmIHdlIGNhbid0IGh5ZHJhdGUgdGhpcyBpbnN0YW5jZSBsZXQncyB0cnkgdGhlIG5leHQgb25lLlxuICAgIC8vIFdlIHVzZSB0aGlzIGFzIGEgaGV1cmlzdGljLiBJdCdzIGJhc2VkIG9uIGludHVpdGlvbiBhbmQgbm90IGRhdGEgc28gaXRcbiAgICAvLyBtaWdodCBiZSBmbGF3ZWQgb3IgdW5uZWNlc3NhcnkuXG5cblxuICAgIG5leHRJbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlU2libGluZyhmaXJzdEF0dGVtcHRlZEluc3RhbmNlKTtcbiAgICB2YXIgcHJldkh5ZHJhdGlvblBhcmVudEZpYmVyID0gaHlkcmF0aW9uUGFyZW50RmliZXI7XG5cbiAgICBpZiAoIW5leHRJbnN0YW5jZSB8fCAhdHJ5SHlkcmF0ZShmaWJlciwgbmV4dEluc3RhbmNlKSkge1xuICAgICAgLy8gTm90aGluZyB0byBoeWRyYXRlLiBNYWtlIGl0IGFuIGluc2VydGlvbi5cbiAgICAgIGluc2VydE5vbkh5ZHJhdGVkSW5zdGFuY2UoaHlkcmF0aW9uUGFyZW50RmliZXIsIGZpYmVyKTtcbiAgICAgIGlzSHlkcmF0aW5nID0gZmFsc2U7XG4gICAgICBoeWRyYXRpb25QYXJlbnRGaWJlciA9IGZpYmVyO1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gV2UgbWF0Y2hlZCB0aGUgbmV4dCBvbmUsIHdlJ2xsIG5vdyBhc3N1bWUgdGhhdCB0aGUgZmlyc3Qgb25lIHdhc1xuICAgIC8vIHN1cGVyZmx1b3VzIGFuZCB3ZSdsbCBkZWxldGUgaXQuIFNpbmNlIHdlIGNhbid0IGVhZ2VybHkgZGVsZXRlIGl0XG4gICAgLy8gd2UnbGwgaGF2ZSB0byBzY2hlZHVsZSBhIGRlbGV0aW9uLiBUbyBkbyB0aGF0LCB0aGlzIG5vZGUgbmVlZHMgYSBkdW1teVxuICAgIC8vIGZpYmVyIGFzc29jaWF0ZWQgd2l0aCBpdC5cblxuXG4gICAgZGVsZXRlSHlkcmF0YWJsZUluc3RhbmNlKHByZXZIeWRyYXRpb25QYXJlbnRGaWJlciwgZmlyc3RBdHRlbXB0ZWRJbnN0YW5jZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJlcGFyZVRvSHlkcmF0ZUhvc3RJbnN0YW5jZShmaWJlciwgcm9vdENvbnRhaW5lckluc3RhbmNlLCBob3N0Q29udGV4dCkge1xuXG4gIHZhciBpbnN0YW5jZSA9IGZpYmVyLnN0YXRlTm9kZTtcbiAgdmFyIHNob3VsZFdhcm5JZk1pc21hdGNoRGV2ID0gIWRpZFN1c3BlbmQ7XG4gIHZhciB1cGRhdGVQYXlsb2FkID0gaHlkcmF0ZUluc3RhbmNlKGluc3RhbmNlLCBmaWJlci50eXBlLCBmaWJlci5tZW1vaXplZFByb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UsIGhvc3RDb250ZXh0LCBmaWJlciwgc2hvdWxkV2FybklmTWlzbWF0Y2hEZXYpOyAvLyBUT0RPOiBUeXBlIHRoaXMgc3BlY2lmaWMgdG8gdGhpcyB0eXBlIG9mIGNvbXBvbmVudC5cblxuICBmaWJlci51cGRhdGVRdWV1ZSA9IHVwZGF0ZVBheWxvYWQ7IC8vIElmIHRoZSB1cGRhdGUgcGF5bG9hZCBpbmRpY2F0ZXMgdGhhdCB0aGVyZSBpcyBhIGNoYW5nZSBvciBpZiB0aGVyZVxuICAvLyBpcyBhIG5ldyByZWYgd2UgbWFyayB0aGlzIGFzIGFuIHVwZGF0ZS5cblxuICBpZiAodXBkYXRlUGF5bG9hZCAhPT0gbnVsbCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlVG9IeWRyYXRlSG9zdFRleHRJbnN0YW5jZShmaWJlcikge1xuXG4gIHZhciB0ZXh0SW5zdGFuY2UgPSBmaWJlci5zdGF0ZU5vZGU7XG4gIHZhciB0ZXh0Q29udGVudCA9IGZpYmVyLm1lbW9pemVkUHJvcHM7XG4gIHZhciBzaG91bGRVcGRhdGUgPSBoeWRyYXRlVGV4dEluc3RhbmNlKHRleHRJbnN0YW5jZSwgdGV4dENvbnRlbnQsIGZpYmVyKTtcblxuICBpZiAoc2hvdWxkVXBkYXRlKSB7XG4gICAgLy8gV2UgYXNzdW1lIHRoYXQgcHJlcGFyZVRvSHlkcmF0ZUhvc3RUZXh0SW5zdGFuY2UgaXMgY2FsbGVkIGluIGEgY29udGV4dCB3aGVyZSB0aGVcbiAgICAvLyBoeWRyYXRpb24gcGFyZW50IGlzIHRoZSBwYXJlbnQgaG9zdCBjb21wb25lbnQgb2YgdGhpcyBob3N0IHRleHQuXG4gICAgdmFyIHJldHVybkZpYmVyID0gaHlkcmF0aW9uUGFyZW50RmliZXI7XG5cbiAgICBpZiAocmV0dXJuRmliZXIgIT09IG51bGwpIHtcbiAgICAgIHZhciBpc0NvbmN1cnJlbnRNb2RlID0gKHJldHVybkZpYmVyLm1vZGUgJiBDb25jdXJyZW50TW9kZSkgIT09IE5vTW9kZTtcblxuICAgICAgc3dpdGNoIChyZXR1cm5GaWJlci50YWcpIHtcbiAgICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgcGFyZW50Q29udGFpbmVyID0gcmV0dXJuRmliZXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87XG4gICAgICAgICAgICBkaWROb3RNYXRjaEh5ZHJhdGVkQ29udGFpbmVyVGV4dEluc3RhbmNlKHBhcmVudENvbnRhaW5lciwgdGV4dEluc3RhbmNlLCB0ZXh0Q29udGVudCwgLy8gVE9ETzogRGVsZXRlIHRoaXMgYXJndW1lbnQgd2hlbiB3ZSByZW1vdmUgdGhlIGxlZ2FjeSByb290IEFQSS5cbiAgICAgICAgICAgIGlzQ29uY3VycmVudE1vZGUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgcGFyZW50VHlwZSA9IHJldHVybkZpYmVyLnR5cGU7XG4gICAgICAgICAgICB2YXIgcGFyZW50UHJvcHMgPSByZXR1cm5GaWJlci5tZW1vaXplZFByb3BzO1xuICAgICAgICAgICAgdmFyIHBhcmVudEluc3RhbmNlID0gcmV0dXJuRmliZXIuc3RhdGVOb2RlO1xuICAgICAgICAgICAgZGlkTm90TWF0Y2hIeWRyYXRlZFRleHRJbnN0YW5jZShwYXJlbnRUeXBlLCBwYXJlbnRQcm9wcywgcGFyZW50SW5zdGFuY2UsIHRleHRJbnN0YW5jZSwgdGV4dENvbnRlbnQsIC8vIFRPRE86IERlbGV0ZSB0aGlzIGFyZ3VtZW50IHdoZW4gd2UgcmVtb3ZlIHRoZSBsZWdhY3kgcm9vdCBBUEkuXG4gICAgICAgICAgICBpc0NvbmN1cnJlbnRNb2RlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc2hvdWxkVXBkYXRlO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlVG9IeWRyYXRlSG9zdFN1c3BlbnNlSW5zdGFuY2UoZmliZXIpIHtcblxuICB2YXIgc3VzcGVuc2VTdGF0ZSA9IGZpYmVyLm1lbW9pemVkU3RhdGU7XG4gIHZhciBzdXNwZW5zZUluc3RhbmNlID0gc3VzcGVuc2VTdGF0ZSAhPT0gbnVsbCA/IHN1c3BlbnNlU3RhdGUuZGVoeWRyYXRlZCA6IG51bGw7XG5cbiAgaWYgKCFzdXNwZW5zZUluc3RhbmNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCB0byBoYXZlIGEgaHlkcmF0ZWQgc3VzcGVuc2UgaW5zdGFuY2UuICcgKyAnVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgfVxuXG4gIGh5ZHJhdGVTdXNwZW5zZUluc3RhbmNlKHN1c3BlbnNlSW5zdGFuY2UsIGZpYmVyKTtcbn1cblxuZnVuY3Rpb24gc2tpcFBhc3REZWh5ZHJhdGVkU3VzcGVuc2VJbnN0YW5jZShmaWJlcikge1xuXG4gIHZhciBzdXNwZW5zZVN0YXRlID0gZmliZXIubWVtb2l6ZWRTdGF0ZTtcbiAgdmFyIHN1c3BlbnNlSW5zdGFuY2UgPSBzdXNwZW5zZVN0YXRlICE9PSBudWxsID8gc3VzcGVuc2VTdGF0ZS5kZWh5ZHJhdGVkIDogbnVsbDtcblxuICBpZiAoIXN1c3BlbnNlSW5zdGFuY2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHRvIGhhdmUgYSBoeWRyYXRlZCBzdXNwZW5zZSBpbnN0YW5jZS4gJyArICdUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICB9XG5cbiAgcmV0dXJuIGdldE5leHRIeWRyYXRhYmxlSW5zdGFuY2VBZnRlclN1c3BlbnNlSW5zdGFuY2Uoc3VzcGVuc2VJbnN0YW5jZSk7XG59XG5cbmZ1bmN0aW9uIHBvcFRvTmV4dEhvc3RQYXJlbnQoZmliZXIpIHtcbiAgdmFyIHBhcmVudCA9IGZpYmVyLnJldHVybjtcblxuICB3aGlsZSAocGFyZW50ICE9PSBudWxsICYmIHBhcmVudC50YWcgIT09IEhvc3RDb21wb25lbnQgJiYgcGFyZW50LnRhZyAhPT0gSG9zdFJvb3QgJiYgcGFyZW50LnRhZyAhPT0gU3VzcGVuc2VDb21wb25lbnQpIHtcbiAgICBwYXJlbnQgPSBwYXJlbnQucmV0dXJuO1xuICB9XG5cbiAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBwYXJlbnQ7XG59XG5cbmZ1bmN0aW9uIHBvcEh5ZHJhdGlvblN0YXRlKGZpYmVyKSB7XG5cbiAgaWYgKGZpYmVyICE9PSBoeWRyYXRpb25QYXJlbnRGaWJlcikge1xuICAgIC8vIFdlJ3JlIGRlZXBlciB0aGFuIHRoZSBjdXJyZW50IGh5ZHJhdGlvbiBjb250ZXh0LCBpbnNpZGUgYW4gaW5zZXJ0ZWRcbiAgICAvLyB0cmVlLlxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaXNIeWRyYXRpbmcpIHtcbiAgICAvLyBJZiB3ZSdyZSBub3QgY3VycmVudGx5IGh5ZHJhdGluZyBidXQgd2UncmUgaW4gYSBoeWRyYXRpb24gY29udGV4dCwgdGhlblxuICAgIC8vIHdlIHdlcmUgYW4gaW5zZXJ0aW9uIGFuZCBub3cgbmVlZCB0byBwb3AgdXAgcmVlbnRlciBoeWRyYXRpb24gb2Ygb3VyXG4gICAgLy8gc2libGluZ3MuXG4gICAgcG9wVG9OZXh0SG9zdFBhcmVudChmaWJlcik7XG4gICAgaXNIeWRyYXRpbmcgPSB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSAvLyBJZiB3ZSBoYXZlIGFueSByZW1haW5pbmcgaHlkcmF0YWJsZSBub2Rlcywgd2UgbmVlZCB0byBkZWxldGUgdGhlbSBub3cuXG4gIC8vIFdlIG9ubHkgZG8gdGhpcyBkZWVwZXIgdGhhbiBoZWFkIGFuZCBib2R5IHNpbmNlIHRoZXkgdGVuZCB0byBoYXZlIHJhbmRvbVxuICAvLyBvdGhlciBub2RlcyBpbiB0aGVtLiBXZSBhbHNvIGlnbm9yZSBjb21wb25lbnRzIHdpdGggcHVyZSB0ZXh0IGNvbnRlbnQgaW5cbiAgLy8gc2lkZSBvZiB0aGVtLiBXZSBhbHNvIGRvbid0IGRlbGV0ZSBhbnl0aGluZyBpbnNpZGUgdGhlIHJvb3QgY29udGFpbmVyLlxuXG5cbiAgaWYgKGZpYmVyLnRhZyAhPT0gSG9zdFJvb3QgJiYgKGZpYmVyLnRhZyAhPT0gSG9zdENvbXBvbmVudCB8fCBzaG91bGREZWxldGVVbmh5ZHJhdGVkVGFpbEluc3RhbmNlcyhmaWJlci50eXBlKSAmJiAhc2hvdWxkU2V0VGV4dENvbnRlbnQoZmliZXIudHlwZSwgZmliZXIubWVtb2l6ZWRQcm9wcykpKSB7XG4gICAgdmFyIG5leHRJbnN0YW5jZSA9IG5leHRIeWRyYXRhYmxlSW5zdGFuY2U7XG5cbiAgICBpZiAobmV4dEluc3RhbmNlKSB7XG4gICAgICBpZiAoc2hvdWxkQ2xpZW50UmVuZGVyT25NaXNtYXRjaChmaWJlcikpIHtcbiAgICAgICAgd2FybklmVW5oeWRyYXRlZFRhaWxOb2RlcyhmaWJlcik7XG4gICAgICAgIHRocm93T25IeWRyYXRpb25NaXNtYXRjaCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2hpbGUgKG5leHRJbnN0YW5jZSkge1xuICAgICAgICAgIGRlbGV0ZUh5ZHJhdGFibGVJbnN0YW5jZShmaWJlciwgbmV4dEluc3RhbmNlKTtcbiAgICAgICAgICBuZXh0SW5zdGFuY2UgPSBnZXROZXh0SHlkcmF0YWJsZVNpYmxpbmcobmV4dEluc3RhbmNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHBvcFRvTmV4dEhvc3RQYXJlbnQoZmliZXIpO1xuXG4gIGlmIChmaWJlci50YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50KSB7XG4gICAgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IHNraXBQYXN0RGVoeWRyYXRlZFN1c3BlbnNlSW5zdGFuY2UoZmliZXIpO1xuICB9IGVsc2Uge1xuICAgIG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBoeWRyYXRpb25QYXJlbnRGaWJlciA/IGdldE5leHRIeWRyYXRhYmxlU2libGluZyhmaWJlci5zdGF0ZU5vZGUpIDogbnVsbDtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBoYXNVbmh5ZHJhdGVkVGFpbE5vZGVzKCkge1xuICByZXR1cm4gaXNIeWRyYXRpbmcgJiYgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSAhPT0gbnVsbDtcbn1cblxuZnVuY3Rpb24gd2FybklmVW5oeWRyYXRlZFRhaWxOb2RlcyhmaWJlcikge1xuICB2YXIgbmV4dEluc3RhbmNlID0gbmV4dEh5ZHJhdGFibGVJbnN0YW5jZTtcblxuICB3aGlsZSAobmV4dEluc3RhbmNlKSB7XG4gICAgd2FyblVuaHlkcmF0ZWRJbnN0YW5jZShmaWJlciwgbmV4dEluc3RhbmNlKTtcbiAgICBuZXh0SW5zdGFuY2UgPSBnZXROZXh0SHlkcmF0YWJsZVNpYmxpbmcobmV4dEluc3RhbmNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXNldEh5ZHJhdGlvblN0YXRlKCkge1xuXG4gIGh5ZHJhdGlvblBhcmVudEZpYmVyID0gbnVsbDtcbiAgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IG51bGw7XG4gIGlzSHlkcmF0aW5nID0gZmFsc2U7XG4gIGRpZFN1c3BlbmQgPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gdXBncmFkZUh5ZHJhdGlvbkVycm9yc1RvUmVjb3ZlcmFibGUoKSB7XG4gIGlmIChoeWRyYXRpb25FcnJvcnMgIT09IG51bGwpIHtcbiAgICAvLyBTdWNjZXNzZnVsbHkgY29tcGxldGVkIGEgZm9yY2VkIGNsaWVudCByZW5kZXIuIFRoZSBlcnJvcnMgdGhhdCBvY2N1cnJlZFxuICAgIC8vIGR1cmluZyB0aGUgaHlkcmF0aW9uIGF0dGVtcHQgYXJlIG5vdyByZWNvdmVyZWQuIFdlIHdpbGwgbG9nIHRoZW0gaW5cbiAgICAvLyBjb21taXQgcGhhc2UsIG9uY2UgdGhlIGVudGlyZSB0cmVlIGhhcyBmaW5pc2hlZC5cbiAgICBxdWV1ZVJlY292ZXJhYmxlRXJyb3JzKGh5ZHJhdGlvbkVycm9ycyk7XG4gICAgaHlkcmF0aW9uRXJyb3JzID0gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRJc0h5ZHJhdGluZygpIHtcbiAgcmV0dXJuIGlzSHlkcmF0aW5nO1xufVxuXG5mdW5jdGlvbiBxdWV1ZUh5ZHJhdGlvbkVycm9yKGVycm9yKSB7XG4gIGlmIChoeWRyYXRpb25FcnJvcnMgPT09IG51bGwpIHtcbiAgICBoeWRyYXRpb25FcnJvcnMgPSBbZXJyb3JdO1xuICB9IGVsc2Uge1xuICAgIGh5ZHJhdGlvbkVycm9ycy5wdXNoKGVycm9yKTtcbiAgfVxufVxuXG52YXIgZGlkV2FybkFib3V0TWFwcztcbnZhciBkaWRXYXJuQWJvdXRHZW5lcmF0b3JzO1xudmFyIGRpZFdhcm5BYm91dFN0cmluZ1JlZnM7XG52YXIgb3duZXJIYXNLZXlVc2VXYXJuaW5nO1xudmFyIG93bmVySGFzRnVuY3Rpb25UeXBlV2FybmluZztcblxudmFyIHdhcm5Gb3JNaXNzaW5nS2V5ID0gZnVuY3Rpb24gKGNoaWxkLCByZXR1cm5GaWJlcikge307XG5cbntcbiAgZGlkV2FybkFib3V0TWFwcyA9IGZhbHNlO1xuICBkaWRXYXJuQWJvdXRHZW5lcmF0b3JzID0gZmFsc2U7XG4gIGRpZFdhcm5BYm91dFN0cmluZ1JlZnMgPSB7fTtcbiAgLyoqXG4gICAqIFdhcm4gaWYgdGhlcmUncyBubyBrZXkgZXhwbGljaXRseSBzZXQgb24gZHluYW1pYyBhcnJheXMgb2YgY2hpbGRyZW4gb3JcbiAgICogb2JqZWN0IGtleXMgYXJlIG5vdCB2YWxpZC4gVGhpcyBhbGxvd3MgdXMgdG8ga2VlcCB0cmFjayBvZiBjaGlsZHJlbiBiZXR3ZWVuXG4gICAqIHVwZGF0ZXMuXG4gICAqL1xuXG4gIG93bmVySGFzS2V5VXNlV2FybmluZyA9IHt9O1xuICBvd25lckhhc0Z1bmN0aW9uVHlwZVdhcm5pbmcgPSB7fTtcblxuICB3YXJuRm9yTWlzc2luZ0tleSA9IGZ1bmN0aW9uIChjaGlsZCwgcmV0dXJuRmliZXIpIHtcbiAgICBpZiAoY2hpbGQgPT09IG51bGwgfHwgdHlwZW9mIGNoaWxkICE9PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghY2hpbGQuX3N0b3JlIHx8IGNoaWxkLl9zdG9yZS52YWxpZGF0ZWQgfHwgY2hpbGQua2V5ICE9IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNoaWxkLl9zdG9yZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVhY3QgQ29tcG9uZW50IGluIHdhcm5Gb3JNaXNzaW5nS2V5IHNob3VsZCBoYXZlIGEgX3N0b3JlLiAnICsgJ1RoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgfVxuXG4gICAgY2hpbGQuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XG4gICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKHJldHVybkZpYmVyKSB8fCAnQ29tcG9uZW50JztcblxuICAgIGlmIChvd25lckhhc0tleVVzZVdhcm5pbmdbY29tcG9uZW50TmFtZV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvd25lckhhc0tleVVzZVdhcm5pbmdbY29tcG9uZW50TmFtZV0gPSB0cnVlO1xuXG4gICAgZXJyb3IoJ0VhY2ggY2hpbGQgaW4gYSBsaXN0IHNob3VsZCBoYXZlIGEgdW5pcXVlICcgKyAnXCJrZXlcIiBwcm9wLiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3dhcm5pbmcta2V5cyBmb3IgJyArICdtb3JlIGluZm9ybWF0aW9uLicpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBjb2VyY2VSZWYocmV0dXJuRmliZXIsIGN1cnJlbnQsIGVsZW1lbnQpIHtcbiAgdmFyIG1peGVkUmVmID0gZWxlbWVudC5yZWY7XG5cbiAgaWYgKG1peGVkUmVmICE9PSBudWxsICYmIHR5cGVvZiBtaXhlZFJlZiAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgbWl4ZWRSZWYgIT09ICdvYmplY3QnKSB7XG4gICAge1xuICAgICAgLy8gVE9ETzogQ2xlYW4gdGhpcyB1cCBvbmNlIHdlIHR1cm4gb24gdGhlIHN0cmluZyByZWYgd2FybmluZyBmb3JcbiAgICAgIC8vIGV2ZXJ5b25lLCBiZWNhdXNlIHRoZSBzdHJpY3QgbW9kZSBjYXNlIHdpbGwgbm8gbG9uZ2VyIGJlIHJlbGV2YW50XG4gICAgICBpZiAoKHJldHVybkZpYmVyLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlIHx8IHdhcm5BYm91dFN0cmluZ1JlZnMpICYmIC8vIFdlIHdhcm4gaW4gUmVhY3RFbGVtZW50LmpzIGlmIG93bmVyIGFuZCBzZWxmIGFyZSBlcXVhbCBmb3Igc3RyaW5nIHJlZnNcbiAgICAgIC8vIGJlY2F1c2UgdGhlc2UgY2Fubm90IGJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGFuIGFycm93IGZ1bmN0aW9uXG4gICAgICAvLyB1c2luZyBhIGNvZGVtb2QuIFRoZXJlZm9yZSwgd2UgZG9uJ3QgaGF2ZSB0byB3YXJuIGFib3V0IHN0cmluZyByZWZzIGFnYWluLlxuICAgICAgIShlbGVtZW50Ll9vd25lciAmJiBlbGVtZW50Ll9zZWxmICYmIGVsZW1lbnQuX293bmVyLnN0YXRlTm9kZSAhPT0gZWxlbWVudC5fc2VsZikpIHtcbiAgICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKHJldHVybkZpYmVyKSB8fCAnQ29tcG9uZW50JztcblxuICAgICAgICBpZiAoIWRpZFdhcm5BYm91dFN0cmluZ1JlZnNbY29tcG9uZW50TmFtZV0pIHtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBlcnJvcignQSBzdHJpbmcgcmVmLCBcIiVzXCIsIGhhcyBiZWVuIGZvdW5kIHdpdGhpbiBhIHN0cmljdCBtb2RlIHRyZWUuICcgKyAnU3RyaW5nIHJlZnMgYXJlIGEgc291cmNlIG9mIHBvdGVudGlhbCBidWdzIGFuZCBzaG91bGQgYmUgYXZvaWRlZC4gJyArICdXZSByZWNvbW1lbmQgdXNpbmcgdXNlUmVmKCkgb3IgY3JlYXRlUmVmKCkgaW5zdGVhZC4gJyArICdMZWFybiBtb3JlIGFib3V0IHVzaW5nIHJlZnMgc2FmZWx5IGhlcmU6ICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3N0cmljdC1tb2RlLXN0cmluZy1yZWYnLCBtaXhlZFJlZik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZWxlbWVudC5fb3duZXIpIHtcbiAgICAgIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgdmFyIGluc3Q7XG5cbiAgICAgIGlmIChvd25lcikge1xuICAgICAgICB2YXIgb3duZXJGaWJlciA9IG93bmVyO1xuXG4gICAgICAgIGlmIChvd25lckZpYmVyLnRhZyAhPT0gQ2xhc3NDb21wb25lbnQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Z1bmN0aW9uIGNvbXBvbmVudHMgY2Fubm90IGhhdmUgc3RyaW5nIHJlZnMuICcgKyAnV2UgcmVjb21tZW5kIHVzaW5nIHVzZVJlZigpIGluc3RlYWQuICcgKyAnTGVhcm4gbW9yZSBhYm91dCB1c2luZyByZWZzIHNhZmVseSBoZXJlOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zdHJpY3QtbW9kZS1zdHJpbmctcmVmJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpbnN0ID0gb3duZXJGaWJlci5zdGF0ZU5vZGU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaW5zdCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIG93bmVyIGZvciBzdHJpbmcgcmVmIFwiICsgbWl4ZWRSZWYgKyBcIi4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgXCIgKyAnYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICAgIH0gLy8gQXNzaWduaW5nIHRoaXMgdG8gYSBjb25zdCBzbyBGbG93IGtub3dzIGl0IHdvbid0IGNoYW5nZSBpbiB0aGUgY2xvc3VyZVxuXG5cbiAgICAgIHZhciByZXNvbHZlZEluc3QgPSBpbnN0O1xuXG4gICAgICB7XG4gICAgICAgIGNoZWNrUHJvcFN0cmluZ0NvZXJjaW9uKG1peGVkUmVmLCAncmVmJyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBzdHJpbmdSZWYgPSAnJyArIG1peGVkUmVmOyAvLyBDaGVjayBpZiBwcmV2aW91cyBzdHJpbmcgcmVmIG1hdGNoZXMgbmV3IHN0cmluZyByZWZcblxuICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwgJiYgY3VycmVudC5yZWYgIT09IG51bGwgJiYgdHlwZW9mIGN1cnJlbnQucmVmID09PSAnZnVuY3Rpb24nICYmIGN1cnJlbnQucmVmLl9zdHJpbmdSZWYgPT09IHN0cmluZ1JlZikge1xuICAgICAgICByZXR1cm4gY3VycmVudC5yZWY7XG4gICAgICB9XG5cbiAgICAgIHZhciByZWYgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgdmFyIHJlZnMgPSByZXNvbHZlZEluc3QucmVmcztcblxuICAgICAgICBpZiAocmVmcyA9PT0gZW1wdHlSZWZzT2JqZWN0KSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBhIGxhenkgcG9vbGVkIGZyb3plbiBvYmplY3QsIHNvIHdlIG5lZWQgdG8gaW5pdGlhbGl6ZS5cbiAgICAgICAgICByZWZzID0gcmVzb2x2ZWRJbnN0LnJlZnMgPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGRlbGV0ZSByZWZzW3N0cmluZ1JlZl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVmc1tzdHJpbmdSZWZdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHJlZi5fc3RyaW5nUmVmID0gc3RyaW5nUmVmO1xuICAgICAgcmV0dXJuIHJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHR5cGVvZiBtaXhlZFJlZiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCByZWYgdG8gYmUgYSBmdW5jdGlvbiwgYSBzdHJpbmcsIGFuIG9iamVjdCByZXR1cm5lZCBieSBSZWFjdC5jcmVhdGVSZWYoKSwgb3IgbnVsbC4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFlbGVtZW50Ll9vd25lcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbGVtZW50IHJlZiB3YXMgc3BlY2lmaWVkIGFzIGEgc3RyaW5nIChcIiArIG1peGVkUmVmICsgXCIpIGJ1dCBubyBvd25lciB3YXMgc2V0LiBUaGlzIGNvdWxkIGhhcHBlbiBmb3Igb25lIG9mXCIgKyAnIHRoZSBmb2xsb3dpbmcgcmVhc29uczpcXG4nICsgJzEuIFlvdSBtYXkgYmUgYWRkaW5nIGEgcmVmIHRvIGEgZnVuY3Rpb24gY29tcG9uZW50XFxuJyArIFwiMi4gWW91IG1heSBiZSBhZGRpbmcgYSByZWYgdG8gYSBjb21wb25lbnQgdGhhdCB3YXMgbm90IGNyZWF0ZWQgaW5zaWRlIGEgY29tcG9uZW50J3MgcmVuZGVyIG1ldGhvZFxcblwiICsgJzMuIFlvdSBoYXZlIG11bHRpcGxlIGNvcGllcyBvZiBSZWFjdCBsb2FkZWRcXG4nICsgJ1NlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVmcy1tdXN0LWhhdmUtb3duZXIgZm9yIG1vcmUgaW5mb3JtYXRpb24uJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1peGVkUmVmO1xufVxuXG5mdW5jdGlvbiB0aHJvd09uSW52YWxpZE9iamVjdFR5cGUocmV0dXJuRmliZXIsIG5ld0NoaWxkKSB7XG4gIHZhciBjaGlsZFN0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXdDaGlsZCk7XG4gIHRocm93IG5ldyBFcnJvcihcIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogXCIgKyAoY2hpbGRTdHJpbmcgPT09ICdbb2JqZWN0IE9iamVjdF0nID8gJ29iamVjdCB3aXRoIGtleXMgeycgKyBPYmplY3Qua2V5cyhuZXdDaGlsZCkuam9pbignLCAnKSArICd9JyA6IGNoaWxkU3RyaW5nKSArIFwiKS4gXCIgKyAnSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSAnICsgJ2luc3RlYWQuJyk7XG59XG5cbmZ1bmN0aW9uIHdhcm5PbkZ1bmN0aW9uVHlwZShyZXR1cm5GaWJlcikge1xuICB7XG4gICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKHJldHVybkZpYmVyKSB8fCAnQ29tcG9uZW50JztcblxuICAgIGlmIChvd25lckhhc0Z1bmN0aW9uVHlwZVdhcm5pbmdbY29tcG9uZW50TmFtZV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvd25lckhhc0Z1bmN0aW9uVHlwZVdhcm5pbmdbY29tcG9uZW50TmFtZV0gPSB0cnVlO1xuXG4gICAgZXJyb3IoJ0Z1bmN0aW9ucyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQuIFRoaXMgbWF5IGhhcHBlbiBpZiAnICsgJ3lvdSByZXR1cm4gYSBDb21wb25lbnQgaW5zdGVhZCBvZiA8Q29tcG9uZW50IC8+IGZyb20gcmVuZGVyLiAnICsgJ09yIG1heWJlIHlvdSBtZWFudCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gcmF0aGVyIHRoYW4gcmV0dXJuIGl0LicpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVMYXp5KGxhenlUeXBlKSB7XG4gIHZhciBwYXlsb2FkID0gbGF6eVR5cGUuX3BheWxvYWQ7XG4gIHZhciBpbml0ID0gbGF6eVR5cGUuX2luaXQ7XG4gIHJldHVybiBpbml0KHBheWxvYWQpO1xufSAvLyBUaGlzIHdyYXBwZXIgZnVuY3Rpb24gZXhpc3RzIGJlY2F1c2UgSSBleHBlY3QgdG8gY2xvbmUgdGhlIGNvZGUgaW4gZWFjaCBwYXRoXG4vLyB0byBiZSBhYmxlIHRvIG9wdGltaXplIGVhY2ggcGF0aCBpbmRpdmlkdWFsbHkgYnkgYnJhbmNoaW5nIGVhcmx5LiBUaGlzIG5lZWRzXG4vLyBhIGNvbXBpbGVyIG9yIHdlIGNhbiBkbyBpdCBtYW51YWxseS4gSGVscGVycyB0aGF0IGRvbid0IG5lZWQgdGhpcyBicmFuY2hpbmdcbi8vIGxpdmUgb3V0c2lkZSBvZiB0aGlzIGZ1bmN0aW9uLlxuXG5cbmZ1bmN0aW9uIENoaWxkUmVjb25jaWxlcihzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gIGZ1bmN0aW9uIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBjaGlsZFRvRGVsZXRlKSB7XG4gICAgaWYgKCFzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICAvLyBOb29wLlxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBkZWxldGlvbnMgPSByZXR1cm5GaWJlci5kZWxldGlvbnM7XG5cbiAgICBpZiAoZGVsZXRpb25zID09PSBudWxsKSB7XG4gICAgICByZXR1cm5GaWJlci5kZWxldGlvbnMgPSBbY2hpbGRUb0RlbGV0ZV07XG4gICAgICByZXR1cm5GaWJlci5mbGFncyB8PSBDaGlsZERlbGV0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGlvbnMucHVzaChjaGlsZFRvRGVsZXRlKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQpIHtcbiAgICBpZiAoIXNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgICAgIC8vIE5vb3AuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IC8vIFRPRE86IEZvciB0aGUgc2hvdWxkQ2xvbmUgY2FzZSwgdGhpcyBjb3VsZCBiZSBtaWNyby1vcHRpbWl6ZWQgYSBiaXQgYnlcbiAgICAvLyBhc3N1bWluZyB0aGF0IGFmdGVyIHRoZSBmaXJzdCBjaGlsZCB3ZSd2ZSBhbHJlYWR5IGFkZGVkIGV2ZXJ5dGhpbmcuXG5cblxuICAgIHZhciBjaGlsZFRvRGVsZXRlID0gY3VycmVudEZpcnN0Q2hpbGQ7XG5cbiAgICB3aGlsZSAoY2hpbGRUb0RlbGV0ZSAhPT0gbnVsbCkge1xuICAgICAgZGVsZXRlQ2hpbGQocmV0dXJuRmliZXIsIGNoaWxkVG9EZWxldGUpO1xuICAgICAgY2hpbGRUb0RlbGV0ZSA9IGNoaWxkVG9EZWxldGUuc2libGluZztcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGZ1bmN0aW9uIG1hcFJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCkge1xuICAgIC8vIEFkZCB0aGUgcmVtYWluaW5nIGNoaWxkcmVuIHRvIGEgdGVtcG9yYXJ5IG1hcCBzbyB0aGF0IHdlIGNhbiBmaW5kIHRoZW0gYnlcbiAgICAvLyBrZXlzIHF1aWNrbHkuIEltcGxpY2l0IChudWxsKSBrZXlzIGdldCBhZGRlZCB0byB0aGlzIHNldCB3aXRoIHRoZWlyIGluZGV4XG4gICAgLy8gaW5zdGVhZC5cbiAgICB2YXIgZXhpc3RpbmdDaGlsZHJlbiA9IG5ldyBNYXAoKTtcbiAgICB2YXIgZXhpc3RpbmdDaGlsZCA9IGN1cnJlbnRGaXJzdENoaWxkO1xuXG4gICAgd2hpbGUgKGV4aXN0aW5nQ2hpbGQgIT09IG51bGwpIHtcbiAgICAgIGlmIChleGlzdGluZ0NoaWxkLmtleSAhPT0gbnVsbCkge1xuICAgICAgICBleGlzdGluZ0NoaWxkcmVuLnNldChleGlzdGluZ0NoaWxkLmtleSwgZXhpc3RpbmdDaGlsZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleGlzdGluZ0NoaWxkcmVuLnNldChleGlzdGluZ0NoaWxkLmluZGV4LCBleGlzdGluZ0NoaWxkKTtcbiAgICAgIH1cblxuICAgICAgZXhpc3RpbmdDaGlsZCA9IGV4aXN0aW5nQ2hpbGQuc2libGluZztcbiAgICB9XG5cbiAgICByZXR1cm4gZXhpc3RpbmdDaGlsZHJlbjtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVzZUZpYmVyKGZpYmVyLCBwZW5kaW5nUHJvcHMpIHtcbiAgICAvLyBXZSBjdXJyZW50bHkgc2V0IHNpYmxpbmcgdG8gbnVsbCBhbmQgaW5kZXggdG8gMCBoZXJlIGJlY2F1c2UgaXQgaXMgZWFzeVxuICAgIC8vIHRvIGZvcmdldCB0byBkbyBiZWZvcmUgcmV0dXJuaW5nIGl0LiBFLmcuIGZvciB0aGUgc2luZ2xlIGNoaWxkIGNhc2UuXG4gICAgdmFyIGNsb25lID0gY3JlYXRlV29ya0luUHJvZ3Jlc3MoZmliZXIsIHBlbmRpbmdQcm9wcyk7XG4gICAgY2xvbmUuaW5kZXggPSAwO1xuICAgIGNsb25lLnNpYmxpbmcgPSBudWxsO1xuICAgIHJldHVybiBjbG9uZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBsYWNlQ2hpbGQobmV3RmliZXIsIGxhc3RQbGFjZWRJbmRleCwgbmV3SW5kZXgpIHtcbiAgICBuZXdGaWJlci5pbmRleCA9IG5ld0luZGV4O1xuXG4gICAgaWYgKCFzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICAvLyBEdXJpbmcgaHlkcmF0aW9uLCB0aGUgdXNlSWQgYWxnb3JpdGhtIG5lZWRzIHRvIGtub3cgd2hpY2ggZmliZXJzIGFyZVxuICAgICAgLy8gcGFydCBvZiBhIGxpc3Qgb2YgY2hpbGRyZW4gKGFycmF5cywgaXRlcmF0b3JzKS5cbiAgICAgIG5ld0ZpYmVyLmZsYWdzIHw9IEZvcmtlZDtcbiAgICAgIHJldHVybiBsYXN0UGxhY2VkSW5kZXg7XG4gICAgfVxuXG4gICAgdmFyIGN1cnJlbnQgPSBuZXdGaWJlci5hbHRlcm5hdGU7XG5cbiAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgdmFyIG9sZEluZGV4ID0gY3VycmVudC5pbmRleDtcblxuICAgICAgaWYgKG9sZEluZGV4IDwgbGFzdFBsYWNlZEluZGV4KSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYSBtb3ZlLlxuICAgICAgICBuZXdGaWJlci5mbGFncyB8PSBQbGFjZW1lbnQ7XG4gICAgICAgIHJldHVybiBsYXN0UGxhY2VkSW5kZXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGlzIGl0ZW0gY2FuIHN0YXkgaW4gcGxhY2UuXG4gICAgICAgIHJldHVybiBvbGRJbmRleDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhpcyBpcyBhbiBpbnNlcnRpb24uXG4gICAgICBuZXdGaWJlci5mbGFncyB8PSBQbGFjZW1lbnQ7XG4gICAgICByZXR1cm4gbGFzdFBsYWNlZEluZGV4O1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHBsYWNlU2luZ2xlQ2hpbGQobmV3RmliZXIpIHtcbiAgICAvLyBUaGlzIGlzIHNpbXBsZXIgZm9yIHRoZSBzaW5nbGUgY2hpbGQgY2FzZS4gV2Ugb25seSBuZWVkIHRvIGRvIGFcbiAgICAvLyBwbGFjZW1lbnQgZm9yIGluc2VydGluZyBuZXcgY2hpbGRyZW4uXG4gICAgaWYgKHNob3VsZFRyYWNrU2lkZUVmZmVjdHMgJiYgbmV3RmliZXIuYWx0ZXJuYXRlID09PSBudWxsKSB7XG4gICAgICBuZXdGaWJlci5mbGFncyB8PSBQbGFjZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0ZpYmVyO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlVGV4dE5vZGUocmV0dXJuRmliZXIsIGN1cnJlbnQsIHRleHRDb250ZW50LCBsYW5lcykge1xuICAgIGlmIChjdXJyZW50ID09PSBudWxsIHx8IGN1cnJlbnQudGFnICE9PSBIb3N0VGV4dCkge1xuICAgICAgLy8gSW5zZXJ0XG4gICAgICB2YXIgY3JlYXRlZCA9IGNyZWF0ZUZpYmVyRnJvbVRleHQodGV4dENvbnRlbnQsIHJldHVybkZpYmVyLm1vZGUsIGxhbmVzKTtcbiAgICAgIGNyZWF0ZWQucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICByZXR1cm4gY3JlYXRlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVXBkYXRlXG4gICAgICB2YXIgZXhpc3RpbmcgPSB1c2VGaWJlcihjdXJyZW50LCB0ZXh0Q29udGVudCk7XG4gICAgICBleGlzdGluZy5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBleGlzdGluZztcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVFbGVtZW50KHJldHVybkZpYmVyLCBjdXJyZW50LCBlbGVtZW50LCBsYW5lcykge1xuICAgIHZhciBlbGVtZW50VHlwZSA9IGVsZW1lbnQudHlwZTtcblxuICAgIGlmIChlbGVtZW50VHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkge1xuICAgICAgcmV0dXJuIHVwZGF0ZUZyYWdtZW50KHJldHVybkZpYmVyLCBjdXJyZW50LCBlbGVtZW50LnByb3BzLmNoaWxkcmVuLCBsYW5lcywgZWxlbWVudC5rZXkpO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICBpZiAoY3VycmVudC5lbGVtZW50VHlwZSA9PT0gZWxlbWVudFR5cGUgfHwgKCAvLyBLZWVwIHRoaXMgY2hlY2sgaW5saW5lIHNvIGl0IG9ubHkgcnVucyBvbiB0aGUgZmFsc2UgcGF0aDpcbiAgICAgICBpc0NvbXBhdGlibGVGYW1pbHlGb3JIb3RSZWxvYWRpbmcoY3VycmVudCwgZWxlbWVudCkgKSB8fCAvLyBMYXp5IHR5cGVzIHNob3VsZCByZWNvbmNpbGUgdGhlaXIgcmVzb2x2ZWQgdHlwZS5cbiAgICAgIC8vIFdlIG5lZWQgdG8gZG8gdGhpcyBhZnRlciB0aGUgSG90IFJlbG9hZGluZyBjaGVjayBhYm92ZSxcbiAgICAgIC8vIGJlY2F1c2UgaG90IHJlbG9hZGluZyBoYXMgZGlmZmVyZW50IHNlbWFudGljcyB0aGFuIHByb2QgYmVjYXVzZVxuICAgICAgLy8gaXQgZG9lc24ndCByZXN1c3BlbmQuIFNvIHdlIGNhbid0IGxldCB0aGUgY2FsbCBiZWxvdyBzdXNwZW5kLlxuICAgICAgIHR5cGVvZiBlbGVtZW50VHlwZSA9PT0gJ29iamVjdCcgJiYgZWxlbWVudFR5cGUgIT09IG51bGwgJiYgZWxlbWVudFR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSAmJiByZXNvbHZlTGF6eShlbGVtZW50VHlwZSkgPT09IGN1cnJlbnQudHlwZSkge1xuICAgICAgICAvLyBNb3ZlIGJhc2VkIG9uIGluZGV4XG4gICAgICAgIHZhciBleGlzdGluZyA9IHVzZUZpYmVyKGN1cnJlbnQsIGVsZW1lbnQucHJvcHMpO1xuICAgICAgICBleGlzdGluZy5yZWYgPSBjb2VyY2VSZWYocmV0dXJuRmliZXIsIGN1cnJlbnQsIGVsZW1lbnQpO1xuICAgICAgICBleGlzdGluZy5yZXR1cm4gPSByZXR1cm5GaWJlcjtcblxuICAgICAgICB7XG4gICAgICAgICAgZXhpc3RpbmcuX2RlYnVnU291cmNlID0gZWxlbWVudC5fc291cmNlO1xuICAgICAgICAgIGV4aXN0aW5nLl9kZWJ1Z093bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgICB9XG4gICAgfSAvLyBJbnNlcnRcblxuXG4gICAgdmFyIGNyZWF0ZWQgPSBjcmVhdGVGaWJlckZyb21FbGVtZW50KGVsZW1lbnQsIHJldHVybkZpYmVyLm1vZGUsIGxhbmVzKTtcbiAgICBjcmVhdGVkLnJlZiA9IGNvZXJjZVJlZihyZXR1cm5GaWJlciwgY3VycmVudCwgZWxlbWVudCk7XG4gICAgY3JlYXRlZC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICByZXR1cm4gY3JlYXRlZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZVBvcnRhbChyZXR1cm5GaWJlciwgY3VycmVudCwgcG9ydGFsLCBsYW5lcykge1xuICAgIGlmIChjdXJyZW50ID09PSBudWxsIHx8IGN1cnJlbnQudGFnICE9PSBIb3N0UG9ydGFsIHx8IGN1cnJlbnQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8gIT09IHBvcnRhbC5jb250YWluZXJJbmZvIHx8IGN1cnJlbnQuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uICE9PSBwb3J0YWwuaW1wbGVtZW50YXRpb24pIHtcbiAgICAgIC8vIEluc2VydFxuICAgICAgdmFyIGNyZWF0ZWQgPSBjcmVhdGVGaWJlckZyb21Qb3J0YWwocG9ydGFsLCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG4gICAgICBjcmVhdGVkLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVwZGF0ZVxuICAgICAgdmFyIGV4aXN0aW5nID0gdXNlRmliZXIoY3VycmVudCwgcG9ydGFsLmNoaWxkcmVuIHx8IFtdKTtcbiAgICAgIGV4aXN0aW5nLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZUZyYWdtZW50KHJldHVybkZpYmVyLCBjdXJyZW50LCBmcmFnbWVudCwgbGFuZXMsIGtleSkge1xuICAgIGlmIChjdXJyZW50ID09PSBudWxsIHx8IGN1cnJlbnQudGFnICE9PSBGcmFnbWVudCkge1xuICAgICAgLy8gSW5zZXJ0XG4gICAgICB2YXIgY3JlYXRlZCA9IGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KGZyYWdtZW50LCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcywga2V5KTtcbiAgICAgIGNyZWF0ZWQucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICByZXR1cm4gY3JlYXRlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVXBkYXRlXG4gICAgICB2YXIgZXhpc3RpbmcgPSB1c2VGaWJlcihjdXJyZW50LCBmcmFnbWVudCk7XG4gICAgICBleGlzdGluZy5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBleGlzdGluZztcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVDaGlsZChyZXR1cm5GaWJlciwgbmV3Q2hpbGQsIGxhbmVzKSB7XG4gICAgaWYgKHR5cGVvZiBuZXdDaGlsZCA9PT0gJ3N0cmluZycgJiYgbmV3Q2hpbGQgIT09ICcnIHx8IHR5cGVvZiBuZXdDaGlsZCA9PT0gJ251bWJlcicpIHtcbiAgICAgIC8vIFRleHQgbm9kZXMgZG9uJ3QgaGF2ZSBrZXlzLiBJZiB0aGUgcHJldmlvdXMgbm9kZSBpcyBpbXBsaWNpdGx5IGtleWVkXG4gICAgICAvLyB3ZSBjYW4gY29udGludWUgdG8gcmVwbGFjZSBpdCB3aXRob3V0IGFib3J0aW5nIGV2ZW4gaWYgaXQgaXMgbm90IGEgdGV4dFxuICAgICAgLy8gbm9kZS5cbiAgICAgIHZhciBjcmVhdGVkID0gY3JlYXRlRmliZXJGcm9tVGV4dCgnJyArIG5ld0NoaWxkLCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG4gICAgICBjcmVhdGVkLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBuZXdDaGlsZCA9PT0gJ29iamVjdCcgJiYgbmV3Q2hpbGQgIT09IG51bGwpIHtcbiAgICAgIHN3aXRjaCAobmV3Q2hpbGQuJCR0eXBlb2YpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIF9jcmVhdGVkID0gY3JlYXRlRmliZXJGcm9tRWxlbWVudChuZXdDaGlsZCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMpO1xuXG4gICAgICAgICAgICBfY3JlYXRlZC5yZWYgPSBjb2VyY2VSZWYocmV0dXJuRmliZXIsIG51bGwsIG5ld0NoaWxkKTtcbiAgICAgICAgICAgIF9jcmVhdGVkLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVhdGVkO1xuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBfY3JlYXRlZDIgPSBjcmVhdGVGaWJlckZyb21Qb3J0YWwobmV3Q2hpbGQsIHJldHVybkZpYmVyLm1vZGUsIGxhbmVzKTtcblxuICAgICAgICAgICAgX2NyZWF0ZWQyLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVhdGVkMjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAge1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YXIgcGF5bG9hZCA9IG5ld0NoaWxkLl9wYXlsb2FkO1xuICAgICAgICAgICAgICB2YXIgaW5pdCA9IG5ld0NoaWxkLl9pbml0O1xuICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ2hpbGQocmV0dXJuRmliZXIsIGluaXQocGF5bG9hZCksIGxhbmVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0FycmF5KG5ld0NoaWxkKSB8fCBnZXRJdGVyYXRvckZuKG5ld0NoaWxkKSkge1xuICAgICAgICB2YXIgX2NyZWF0ZWQzID0gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQobmV3Q2hpbGQsIHJldHVybkZpYmVyLm1vZGUsIGxhbmVzLCBudWxsKTtcblxuICAgICAgICBfY3JlYXRlZDMucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICAgIHJldHVybiBfY3JlYXRlZDM7XG4gICAgICB9XG5cbiAgICAgIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgd2Fybk9uRnVuY3Rpb25UeXBlKHJldHVybkZpYmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZVNsb3QocmV0dXJuRmliZXIsIG9sZEZpYmVyLCBuZXdDaGlsZCwgbGFuZXMpIHtcbiAgICAvLyBVcGRhdGUgdGhlIGZpYmVyIGlmIHRoZSBrZXlzIG1hdGNoLCBvdGhlcndpc2UgcmV0dXJuIG51bGwuXG4gICAgdmFyIGtleSA9IG9sZEZpYmVyICE9PSBudWxsID8gb2xkRmliZXIua2V5IDogbnVsbDtcblxuICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdzdHJpbmcnICYmIG5ld0NoaWxkICE9PSAnJyB8fCB0eXBlb2YgbmV3Q2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAvLyBUZXh0IG5vZGVzIGRvbid0IGhhdmUga2V5cy4gSWYgdGhlIHByZXZpb3VzIG5vZGUgaXMgaW1wbGljaXRseSBrZXllZFxuICAgICAgLy8gd2UgY2FuIGNvbnRpbnVlIHRvIHJlcGxhY2UgaXQgd2l0aG91dCBhYm9ydGluZyBldmVuIGlmIGl0IGlzIG5vdCBhIHRleHRcbiAgICAgIC8vIG5vZGUuXG4gICAgICBpZiAoa2V5ICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdXBkYXRlVGV4dE5vZGUocmV0dXJuRmliZXIsIG9sZEZpYmVyLCAnJyArIG5ld0NoaWxkLCBsYW5lcyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBuZXdDaGlsZCA9PT0gJ29iamVjdCcgJiYgbmV3Q2hpbGQgIT09IG51bGwpIHtcbiAgICAgIHN3aXRjaCAobmV3Q2hpbGQuJCR0eXBlb2YpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKG5ld0NoaWxkLmtleSA9PT0ga2V5KSB7XG4gICAgICAgICAgICAgIHJldHVybiB1cGRhdGVFbGVtZW50KHJldHVybkZpYmVyLCBvbGRGaWJlciwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmIChuZXdDaGlsZC5rZXkgPT09IGtleSkge1xuICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlUG9ydGFsKHJldHVybkZpYmVyLCBvbGRGaWJlciwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICB7XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhciBwYXlsb2FkID0gbmV3Q2hpbGQuX3BheWxvYWQ7XG4gICAgICAgICAgICAgIHZhciBpbml0ID0gbmV3Q2hpbGQuX2luaXQ7XG4gICAgICAgICAgICAgIHJldHVybiB1cGRhdGVTbG90KHJldHVybkZpYmVyLCBvbGRGaWJlciwgaW5pdChwYXlsb2FkKSwgbGFuZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGlzQXJyYXkobmV3Q2hpbGQpIHx8IGdldEl0ZXJhdG9yRm4obmV3Q2hpbGQpKSB7XG4gICAgICAgIGlmIChrZXkgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cGRhdGVGcmFnbWVudChyZXR1cm5GaWJlciwgb2xkRmliZXIsIG5ld0NoaWxkLCBsYW5lcywgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgd2Fybk9uRnVuY3Rpb25UeXBlKHJldHVybkZpYmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZUZyb21NYXAoZXhpc3RpbmdDaGlsZHJlbiwgcmV0dXJuRmliZXIsIG5ld0lkeCwgbmV3Q2hpbGQsIGxhbmVzKSB7XG4gICAgaWYgKHR5cGVvZiBuZXdDaGlsZCA9PT0gJ3N0cmluZycgJiYgbmV3Q2hpbGQgIT09ICcnIHx8IHR5cGVvZiBuZXdDaGlsZCA9PT0gJ251bWJlcicpIHtcbiAgICAgIC8vIFRleHQgbm9kZXMgZG9uJ3QgaGF2ZSBrZXlzLCBzbyB3ZSBuZWl0aGVyIGhhdmUgdG8gY2hlY2sgdGhlIG9sZCBub3JcbiAgICAgIC8vIG5ldyBub2RlIGZvciB0aGUga2V5LiBJZiBib3RoIGFyZSB0ZXh0IG5vZGVzLCB0aGV5IG1hdGNoLlxuICAgICAgdmFyIG1hdGNoZWRGaWJlciA9IGV4aXN0aW5nQ2hpbGRyZW4uZ2V0KG5ld0lkeCkgfHwgbnVsbDtcbiAgICAgIHJldHVybiB1cGRhdGVUZXh0Tm9kZShyZXR1cm5GaWJlciwgbWF0Y2hlZEZpYmVyLCAnJyArIG5ld0NoaWxkLCBsYW5lcyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBuZXdDaGlsZCA9PT0gJ29iamVjdCcgJiYgbmV3Q2hpbGQgIT09IG51bGwpIHtcbiAgICAgIHN3aXRjaCAobmV3Q2hpbGQuJCR0eXBlb2YpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIF9tYXRjaGVkRmliZXIgPSBleGlzdGluZ0NoaWxkcmVuLmdldChuZXdDaGlsZC5rZXkgPT09IG51bGwgPyBuZXdJZHggOiBuZXdDaGlsZC5rZXkpIHx8IG51bGw7XG5cbiAgICAgICAgICAgIHJldHVybiB1cGRhdGVFbGVtZW50KHJldHVybkZpYmVyLCBfbWF0Y2hlZEZpYmVyLCBuZXdDaGlsZCwgbGFuZXMpO1xuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBfbWF0Y2hlZEZpYmVyMiA9IGV4aXN0aW5nQ2hpbGRyZW4uZ2V0KG5ld0NoaWxkLmtleSA9PT0gbnVsbCA/IG5ld0lkeCA6IG5ld0NoaWxkLmtleSkgfHwgbnVsbDtcblxuICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVBvcnRhbChyZXR1cm5GaWJlciwgX21hdGNoZWRGaWJlcjIsIG5ld0NoaWxkLCBsYW5lcyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBwYXlsb2FkID0gbmV3Q2hpbGQuX3BheWxvYWQ7XG4gICAgICAgICAgICB2YXIgaW5pdCA9IG5ld0NoaWxkLl9pbml0O1xuICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZUZyb21NYXAoZXhpc3RpbmdDaGlsZHJlbiwgcmV0dXJuRmliZXIsIG5ld0lkeCwgaW5pdChwYXlsb2FkKSwgbGFuZXMpO1xuICAgICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgICBpZiAoaXNBcnJheShuZXdDaGlsZCkgfHwgZ2V0SXRlcmF0b3JGbihuZXdDaGlsZCkpIHtcbiAgICAgICAgdmFyIF9tYXRjaGVkRmliZXIzID0gZXhpc3RpbmdDaGlsZHJlbi5nZXQobmV3SWR4KSB8fCBudWxsO1xuXG4gICAgICAgIHJldHVybiB1cGRhdGVGcmFnbWVudChyZXR1cm5GaWJlciwgX21hdGNoZWRGaWJlcjMsIG5ld0NoaWxkLCBsYW5lcywgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgd2Fybk9uRnVuY3Rpb25UeXBlKHJldHVybkZpYmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvKipcbiAgICogV2FybnMgaWYgdGhlcmUgaXMgYSBkdXBsaWNhdGUgb3IgbWlzc2luZyBrZXlcbiAgICovXG5cblxuICBmdW5jdGlvbiB3YXJuT25JbnZhbGlkS2V5KGNoaWxkLCBrbm93bktleXMsIHJldHVybkZpYmVyKSB7XG4gICAge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZCAhPT0gJ29iamVjdCcgfHwgY2hpbGQgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGtub3duS2V5cztcbiAgICAgIH1cblxuICAgICAgc3dpdGNoIChjaGlsZC4kJHR5cGVvZikge1xuICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICB3YXJuRm9yTWlzc2luZ0tleShjaGlsZCwgcmV0dXJuRmliZXIpO1xuICAgICAgICAgIHZhciBrZXkgPSBjaGlsZC5rZXk7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGtleSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChrbm93bktleXMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGtub3duS2V5cyA9IG5ldyBTZXQoKTtcbiAgICAgICAgICAgIGtub3duS2V5cy5hZGQoa2V5KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICgha25vd25LZXlzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICBrbm93bktleXMuYWRkKGtleSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlcnJvcignRW5jb3VudGVyZWQgdHdvIGNoaWxkcmVuIHdpdGggdGhlIHNhbWUga2V5LCBgJXNgLiAnICsgJ0tleXMgc2hvdWxkIGJlIHVuaXF1ZSBzbyB0aGF0IGNvbXBvbmVudHMgbWFpbnRhaW4gdGhlaXIgaWRlbnRpdHkgJyArICdhY3Jvc3MgdXBkYXRlcy4gTm9uLXVuaXF1ZSBrZXlzIG1heSBjYXVzZSBjaGlsZHJlbiB0byBiZSAnICsgJ2R1cGxpY2F0ZWQgYW5kL29yIG9taXR0ZWQgXHUyMDE0IHRoZSBiZWhhdmlvciBpcyB1bnN1cHBvcnRlZCBhbmQgJyArICdjb3VsZCBjaGFuZ2UgaW4gYSBmdXR1cmUgdmVyc2lvbi4nLCBrZXkpO1xuXG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIHBheWxvYWQgPSBjaGlsZC5fcGF5bG9hZDtcbiAgICAgICAgICAgIHZhciBpbml0ID0gY2hpbGQuX2luaXQ7XG4gICAgICAgICAgICB3YXJuT25JbnZhbGlkS2V5KGluaXQocGF5bG9hZCksIGtub3duS2V5cywgcmV0dXJuRmliZXIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBrbm93bktleXM7XG4gIH1cblxuICBmdW5jdGlvbiByZWNvbmNpbGVDaGlsZHJlbkFycmF5KHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGRyZW4sIGxhbmVzKSB7XG4gICAgLy8gVGhpcyBhbGdvcml0aG0gY2FuJ3Qgb3B0aW1pemUgYnkgc2VhcmNoaW5nIGZyb20gYm90aCBlbmRzIHNpbmNlIHdlXG4gICAgLy8gZG9uJ3QgaGF2ZSBiYWNrcG9pbnRlcnMgb24gZmliZXJzLiBJJ20gdHJ5aW5nIHRvIHNlZSBob3cgZmFyIHdlIGNhbiBnZXRcbiAgICAvLyB3aXRoIHRoYXQgbW9kZWwuIElmIGl0IGVuZHMgdXAgbm90IGJlaW5nIHdvcnRoIHRoZSB0cmFkZW9mZnMsIHdlIGNhblxuICAgIC8vIGFkZCBpdCBsYXRlci5cbiAgICAvLyBFdmVuIHdpdGggYSB0d28gZW5kZWQgb3B0aW1pemF0aW9uLCB3ZSdkIHdhbnQgdG8gb3B0aW1pemUgZm9yIHRoZSBjYXNlXG4gICAgLy8gd2hlcmUgdGhlcmUgYXJlIGZldyBjaGFuZ2VzIGFuZCBicnV0ZSBmb3JjZSB0aGUgY29tcGFyaXNvbiBpbnN0ZWFkIG9mXG4gICAgLy8gZ29pbmcgZm9yIHRoZSBNYXAuIEl0J2QgbGlrZSB0byBleHBsb3JlIGhpdHRpbmcgdGhhdCBwYXRoIGZpcnN0IGluXG4gICAgLy8gZm9yd2FyZC1vbmx5IG1vZGUgYW5kIG9ubHkgZ28gZm9yIHRoZSBNYXAgb25jZSB3ZSBub3RpY2UgdGhhdCB3ZSBuZWVkXG4gICAgLy8gbG90cyBvZiBsb29rIGFoZWFkLiBUaGlzIGRvZXNuJ3QgaGFuZGxlIHJldmVyc2FsIGFzIHdlbGwgYXMgdHdvIGVuZGVkXG4gICAgLy8gc2VhcmNoIGJ1dCB0aGF0J3MgdW51c3VhbC4gQmVzaWRlcywgZm9yIHRoZSB0d28gZW5kZWQgb3B0aW1pemF0aW9uIHRvXG4gICAgLy8gd29yayBvbiBJdGVyYWJsZXMsIHdlJ2QgbmVlZCB0byBjb3B5IHRoZSB3aG9sZSBzZXQuXG4gICAgLy8gSW4gdGhpcyBmaXJzdCBpdGVyYXRpb24sIHdlJ2xsIGp1c3QgbGl2ZSB3aXRoIGhpdHRpbmcgdGhlIGJhZCBjYXNlXG4gICAgLy8gKGFkZGluZyBldmVyeXRoaW5nIHRvIGEgTWFwKSBpbiBmb3IgZXZlcnkgaW5zZXJ0L21vdmUuXG4gICAgLy8gSWYgeW91IGNoYW5nZSB0aGlzIGNvZGUsIGFsc28gdXBkYXRlIHJlY29uY2lsZUNoaWxkcmVuSXRlcmF0b3IoKSB3aGljaFxuICAgIC8vIHVzZXMgdGhlIHNhbWUgYWxnb3JpdGhtLlxuICAgIHtcbiAgICAgIC8vIEZpcnN0LCB2YWxpZGF0ZSBrZXlzLlxuICAgICAgdmFyIGtub3duS2V5cyA9IG51bGw7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmV3Q2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNoaWxkID0gbmV3Q2hpbGRyZW5baV07XG4gICAgICAgIGtub3duS2V5cyA9IHdhcm5PbkludmFsaWRLZXkoY2hpbGQsIGtub3duS2V5cywgcmV0dXJuRmliZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciByZXN1bHRpbmdGaXJzdENoaWxkID0gbnVsbDtcbiAgICB2YXIgcHJldmlvdXNOZXdGaWJlciA9IG51bGw7XG4gICAgdmFyIG9sZEZpYmVyID0gY3VycmVudEZpcnN0Q2hpbGQ7XG4gICAgdmFyIGxhc3RQbGFjZWRJbmRleCA9IDA7XG4gICAgdmFyIG5ld0lkeCA9IDA7XG4gICAgdmFyIG5leHRPbGRGaWJlciA9IG51bGw7XG5cbiAgICBmb3IgKDsgb2xkRmliZXIgIT09IG51bGwgJiYgbmV3SWR4IDwgbmV3Q2hpbGRyZW4ubGVuZ3RoOyBuZXdJZHgrKykge1xuICAgICAgaWYgKG9sZEZpYmVyLmluZGV4ID4gbmV3SWR4KSB7XG4gICAgICAgIG5leHRPbGRGaWJlciA9IG9sZEZpYmVyO1xuICAgICAgICBvbGRGaWJlciA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0T2xkRmliZXIgPSBvbGRGaWJlci5zaWJsaW5nO1xuICAgICAgfVxuXG4gICAgICB2YXIgbmV3RmliZXIgPSB1cGRhdGVTbG90KHJldHVybkZpYmVyLCBvbGRGaWJlciwgbmV3Q2hpbGRyZW5bbmV3SWR4XSwgbGFuZXMpO1xuXG4gICAgICBpZiAobmV3RmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBicmVha3Mgb24gZW1wdHkgc2xvdHMgbGlrZSBudWxsIGNoaWxkcmVuLiBUaGF0J3NcbiAgICAgICAgLy8gdW5mb3J0dW5hdGUgYmVjYXVzZSBpdCB0cmlnZ2VycyB0aGUgc2xvdyBwYXRoIGFsbCB0aGUgdGltZS4gV2UgbmVlZFxuICAgICAgICAvLyBhIGJldHRlciB3YXkgdG8gY29tbXVuaWNhdGUgd2hldGhlciB0aGlzIHdhcyBhIG1pc3Mgb3IgbnVsbCxcbiAgICAgICAgLy8gYm9vbGVhbiwgdW5kZWZpbmVkLCBldGMuXG4gICAgICAgIGlmIChvbGRGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAgIG9sZEZpYmVyID0gbmV4dE9sZEZpYmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmIChzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICAgIGlmIChvbGRGaWJlciAmJiBuZXdGaWJlci5hbHRlcm5hdGUgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBXZSBtYXRjaGVkIHRoZSBzbG90LCBidXQgd2UgZGlkbid0IHJldXNlIHRoZSBleGlzdGluZyBmaWJlciwgc28gd2VcbiAgICAgICAgICAvLyBuZWVkIHRvIGRlbGV0ZSB0aGUgZXhpc3RpbmcgY2hpbGQuXG4gICAgICAgICAgZGVsZXRlQ2hpbGQocmV0dXJuRmliZXIsIG9sZEZpYmVyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsYXN0UGxhY2VkSW5kZXggPSBwbGFjZUNoaWxkKG5ld0ZpYmVyLCBsYXN0UGxhY2VkSW5kZXgsIG5ld0lkeCk7XG5cbiAgICAgIGlmIChwcmV2aW91c05ld0ZpYmVyID09PSBudWxsKSB7XG4gICAgICAgIC8vIFRPRE86IE1vdmUgb3V0IG9mIHRoZSBsb29wLiBUaGlzIG9ubHkgaGFwcGVucyBmb3IgdGhlIGZpcnN0IHJ1bi5cbiAgICAgICAgcmVzdWx0aW5nRmlyc3RDaGlsZCA9IG5ld0ZpYmVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVE9ETzogRGVmZXIgc2libGluZ3MgaWYgd2UncmUgbm90IGF0IHRoZSByaWdodCBpbmRleCBmb3IgdGhpcyBzbG90LlxuICAgICAgICAvLyBJLmUuIGlmIHdlIGhhZCBudWxsIHZhbHVlcyBiZWZvcmUsIHRoZW4gd2Ugd2FudCB0byBkZWZlciB0aGlzXG4gICAgICAgIC8vIGZvciBlYWNoIG51bGwgdmFsdWUuIEhvd2V2ZXIsIHdlIGFsc28gZG9uJ3Qgd2FudCB0byBjYWxsIHVwZGF0ZVNsb3RcbiAgICAgICAgLy8gd2l0aCB0aGUgcHJldmlvdXMgb25lLlxuICAgICAgICBwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBuZXdGaWJlcjtcbiAgICAgIH1cblxuICAgICAgcHJldmlvdXNOZXdGaWJlciA9IG5ld0ZpYmVyO1xuICAgICAgb2xkRmliZXIgPSBuZXh0T2xkRmliZXI7XG4gICAgfVxuXG4gICAgaWYgKG5ld0lkeCA9PT0gbmV3Q2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAvLyBXZSd2ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIG5ldyBjaGlsZHJlbi4gV2UgY2FuIGRlbGV0ZSB0aGUgcmVzdC5cbiAgICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBvbGRGaWJlcik7XG5cbiAgICAgIGlmIChnZXRJc0h5ZHJhdGluZygpKSB7XG4gICAgICAgIHZhciBudW1iZXJPZkZvcmtzID0gbmV3SWR4O1xuICAgICAgICBwdXNoVHJlZUZvcmsocmV0dXJuRmliZXIsIG51bWJlck9mRm9ya3MpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0aW5nRmlyc3RDaGlsZDtcbiAgICB9XG5cbiAgICBpZiAob2xkRmliZXIgPT09IG51bGwpIHtcbiAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYW55IG1vcmUgZXhpc3RpbmcgY2hpbGRyZW4gd2UgY2FuIGNob29zZSBhIGZhc3QgcGF0aFxuICAgICAgLy8gc2luY2UgdGhlIHJlc3Qgd2lsbCBhbGwgYmUgaW5zZXJ0aW9ucy5cbiAgICAgIGZvciAoOyBuZXdJZHggPCBuZXdDaGlsZHJlbi5sZW5ndGg7IG5ld0lkeCsrKSB7XG4gICAgICAgIHZhciBfbmV3RmliZXIgPSBjcmVhdGVDaGlsZChyZXR1cm5GaWJlciwgbmV3Q2hpbGRyZW5bbmV3SWR4XSwgbGFuZXMpO1xuXG4gICAgICAgIGlmIChfbmV3RmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhc3RQbGFjZWRJbmRleCA9IHBsYWNlQ2hpbGQoX25ld0ZpYmVyLCBsYXN0UGxhY2VkSW5kZXgsIG5ld0lkeCk7XG5cbiAgICAgICAgaWYgKHByZXZpb3VzTmV3RmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBUT0RPOiBNb3ZlIG91dCBvZiB0aGUgbG9vcC4gVGhpcyBvbmx5IGhhcHBlbnMgZm9yIHRoZSBmaXJzdCBydW4uXG4gICAgICAgICAgcmVzdWx0aW5nRmlyc3RDaGlsZCA9IF9uZXdGaWJlcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBfbmV3RmliZXI7XG4gICAgICAgIH1cblxuICAgICAgICBwcmV2aW91c05ld0ZpYmVyID0gX25ld0ZpYmVyO1xuICAgICAgfVxuXG4gICAgICBpZiAoZ2V0SXNIeWRyYXRpbmcoKSkge1xuICAgICAgICB2YXIgX251bWJlck9mRm9ya3MgPSBuZXdJZHg7XG4gICAgICAgIHB1c2hUcmVlRm9yayhyZXR1cm5GaWJlciwgX251bWJlck9mRm9ya3MpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0aW5nRmlyc3RDaGlsZDtcbiAgICB9IC8vIEFkZCBhbGwgY2hpbGRyZW4gdG8gYSBrZXkgbWFwIGZvciBxdWljayBsb29rdXBzLlxuXG5cbiAgICB2YXIgZXhpc3RpbmdDaGlsZHJlbiA9IG1hcFJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBvbGRGaWJlcik7IC8vIEtlZXAgc2Nhbm5pbmcgYW5kIHVzZSB0aGUgbWFwIHRvIHJlc3RvcmUgZGVsZXRlZCBpdGVtcyBhcyBtb3Zlcy5cblxuICAgIGZvciAoOyBuZXdJZHggPCBuZXdDaGlsZHJlbi5sZW5ndGg7IG5ld0lkeCsrKSB7XG4gICAgICB2YXIgX25ld0ZpYmVyMiA9IHVwZGF0ZUZyb21NYXAoZXhpc3RpbmdDaGlsZHJlbiwgcmV0dXJuRmliZXIsIG5ld0lkeCwgbmV3Q2hpbGRyZW5bbmV3SWR4XSwgbGFuZXMpO1xuXG4gICAgICBpZiAoX25ld0ZpYmVyMiAhPT0gbnVsbCkge1xuICAgICAgICBpZiAoc2hvdWxkVHJhY2tTaWRlRWZmZWN0cykge1xuICAgICAgICAgIGlmIChfbmV3RmliZXIyLmFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gVGhlIG5ldyBmaWJlciBpcyBhIHdvcmsgaW4gcHJvZ3Jlc3MsIGJ1dCBpZiB0aGVyZSBleGlzdHMgYVxuICAgICAgICAgICAgLy8gY3VycmVudCwgdGhhdCBtZWFucyB0aGF0IHdlIHJldXNlZCB0aGUgZmliZXIuIFdlIG5lZWQgdG8gZGVsZXRlXG4gICAgICAgICAgICAvLyBpdCBmcm9tIHRoZSBjaGlsZCBsaXN0IHNvIHRoYXQgd2UgZG9uJ3QgYWRkIGl0IHRvIHRoZSBkZWxldGlvblxuICAgICAgICAgICAgLy8gbGlzdC5cbiAgICAgICAgICAgIGV4aXN0aW5nQ2hpbGRyZW4uZGVsZXRlKF9uZXdGaWJlcjIua2V5ID09PSBudWxsID8gbmV3SWR4IDogX25ld0ZpYmVyMi5rZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxhc3RQbGFjZWRJbmRleCA9IHBsYWNlQ2hpbGQoX25ld0ZpYmVyMiwgbGFzdFBsYWNlZEluZGV4LCBuZXdJZHgpO1xuXG4gICAgICAgIGlmIChwcmV2aW91c05ld0ZpYmVyID09PSBudWxsKSB7XG4gICAgICAgICAgcmVzdWx0aW5nRmlyc3RDaGlsZCA9IF9uZXdGaWJlcjI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJldmlvdXNOZXdGaWJlci5zaWJsaW5nID0gX25ld0ZpYmVyMjtcbiAgICAgICAgfVxuXG4gICAgICAgIHByZXZpb3VzTmV3RmliZXIgPSBfbmV3RmliZXIyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICAvLyBBbnkgZXhpc3RpbmcgY2hpbGRyZW4gdGhhdCB3ZXJlbid0IGNvbnN1bWVkIGFib3ZlIHdlcmUgZGVsZXRlZC4gV2UgbmVlZFxuICAgICAgLy8gdG8gYWRkIHRoZW0gdG8gdGhlIGRlbGV0aW9uIGxpc3QuXG4gICAgICBleGlzdGluZ0NoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgIHJldHVybiBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY2hpbGQpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGdldElzSHlkcmF0aW5nKCkpIHtcbiAgICAgIHZhciBfbnVtYmVyT2ZGb3JrczIgPSBuZXdJZHg7XG4gICAgICBwdXNoVHJlZUZvcmsocmV0dXJuRmliZXIsIF9udW1iZXJPZkZvcmtzMik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdGluZ0ZpcnN0Q2hpbGQ7XG4gIH1cblxuICBmdW5jdGlvbiByZWNvbmNpbGVDaGlsZHJlbkl0ZXJhdG9yKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGRyZW5JdGVyYWJsZSwgbGFuZXMpIHtcbiAgICAvLyBUaGlzIGlzIHRoZSBzYW1lIGltcGxlbWVudGF0aW9uIGFzIHJlY29uY2lsZUNoaWxkcmVuQXJyYXkoKSxcbiAgICAvLyBidXQgdXNpbmcgdGhlIGl0ZXJhdG9yIGluc3RlYWQuXG4gICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKG5ld0NoaWxkcmVuSXRlcmFibGUpO1xuXG4gICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FuIG9iamVjdCBpcyBub3QgYW4gaXRlcmFibGUuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiAnICsgJ1JlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICAvLyBXZSBkb24ndCBzdXBwb3J0IHJlbmRlcmluZyBHZW5lcmF0b3JzIGJlY2F1c2UgaXQncyBhIG11dGF0aW9uLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTI5OTVcbiAgICAgIGlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIC8vICRGbG93Rml4TWUgRmxvdyBkb2Vzbid0IGtub3cgYWJvdXQgdG9TdHJpbmdUYWdcbiAgICAgIG5ld0NoaWxkcmVuSXRlcmFibGVbU3ltYm9sLnRvU3RyaW5nVGFnXSA9PT0gJ0dlbmVyYXRvcicpIHtcbiAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRHZW5lcmF0b3JzKSB7XG4gICAgICAgICAgZXJyb3IoJ1VzaW5nIEdlbmVyYXRvcnMgYXMgY2hpbGRyZW4gaXMgdW5zdXBwb3J0ZWQgYW5kIHdpbGwgbGlrZWx5IHlpZWxkICcgKyAndW5leHBlY3RlZCByZXN1bHRzIGJlY2F1c2UgZW51bWVyYXRpbmcgYSBnZW5lcmF0b3IgbXV0YXRlcyBpdC4gJyArICdZb3UgbWF5IGNvbnZlcnQgaXQgdG8gYW4gYXJyYXkgd2l0aCBgQXJyYXkuZnJvbSgpYCBvciB0aGUgJyArICdgWy4uLnNwcmVhZF1gIG9wZXJhdG9yIGJlZm9yZSByZW5kZXJpbmcuIEtlZXAgaW4gbWluZCAnICsgJ3lvdSBtaWdodCBuZWVkIHRvIHBvbHlmaWxsIHRoZXNlIGZlYXR1cmVzIGZvciBvbGRlciBicm93c2Vycy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpZFdhcm5BYm91dEdlbmVyYXRvcnMgPSB0cnVlO1xuICAgICAgfSAvLyBXYXJuIGFib3V0IHVzaW5nIE1hcHMgYXMgY2hpbGRyZW5cblxuXG4gICAgICBpZiAobmV3Q2hpbGRyZW5JdGVyYWJsZS5lbnRyaWVzID09PSBpdGVyYXRvckZuKSB7XG4gICAgICAgIGlmICghZGlkV2FybkFib3V0TWFwcykge1xuICAgICAgICAgIGVycm9yKCdVc2luZyBNYXBzIGFzIGNoaWxkcmVuIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnVXNlIGFuIGFycmF5IG9mIGtleWVkIFJlYWN0RWxlbWVudHMgaW5zdGVhZC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpZFdhcm5BYm91dE1hcHMgPSB0cnVlO1xuICAgICAgfSAvLyBGaXJzdCwgdmFsaWRhdGUga2V5cy5cbiAgICAgIC8vIFdlJ2xsIGdldCBhIGRpZmZlcmVudCBpdGVyYXRvciBsYXRlciBmb3IgdGhlIG1haW4gcGFzcy5cblxuXG4gICAgICB2YXIgX25ld0NoaWxkcmVuID0gaXRlcmF0b3JGbi5jYWxsKG5ld0NoaWxkcmVuSXRlcmFibGUpO1xuXG4gICAgICBpZiAoX25ld0NoaWxkcmVuKSB7XG4gICAgICAgIHZhciBrbm93bktleXMgPSBudWxsO1xuXG4gICAgICAgIHZhciBfc3RlcCA9IF9uZXdDaGlsZHJlbi5uZXh0KCk7XG5cbiAgICAgICAgZm9yICg7ICFfc3RlcC5kb25lOyBfc3RlcCA9IF9uZXdDaGlsZHJlbi5uZXh0KCkpIHtcbiAgICAgICAgICB2YXIgY2hpbGQgPSBfc3RlcC52YWx1ZTtcbiAgICAgICAgICBrbm93bktleXMgPSB3YXJuT25JbnZhbGlkS2V5KGNoaWxkLCBrbm93bktleXMsIHJldHVybkZpYmVyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBuZXdDaGlsZHJlbiA9IGl0ZXJhdG9yRm4uY2FsbChuZXdDaGlsZHJlbkl0ZXJhYmxlKTtcblxuICAgIGlmIChuZXdDaGlsZHJlbiA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FuIGl0ZXJhYmxlIG9iamVjdCBwcm92aWRlZCBubyBpdGVyYXRvci4nKTtcbiAgICB9XG5cbiAgICB2YXIgcmVzdWx0aW5nRmlyc3RDaGlsZCA9IG51bGw7XG4gICAgdmFyIHByZXZpb3VzTmV3RmliZXIgPSBudWxsO1xuICAgIHZhciBvbGRGaWJlciA9IGN1cnJlbnRGaXJzdENoaWxkO1xuICAgIHZhciBsYXN0UGxhY2VkSW5kZXggPSAwO1xuICAgIHZhciBuZXdJZHggPSAwO1xuICAgIHZhciBuZXh0T2xkRmliZXIgPSBudWxsO1xuICAgIHZhciBzdGVwID0gbmV3Q2hpbGRyZW4ubmV4dCgpO1xuXG4gICAgZm9yICg7IG9sZEZpYmVyICE9PSBudWxsICYmICFzdGVwLmRvbmU7IG5ld0lkeCsrLCBzdGVwID0gbmV3Q2hpbGRyZW4ubmV4dCgpKSB7XG4gICAgICBpZiAob2xkRmliZXIuaW5kZXggPiBuZXdJZHgpIHtcbiAgICAgICAgbmV4dE9sZEZpYmVyID0gb2xkRmliZXI7XG4gICAgICAgIG9sZEZpYmVyID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRPbGRGaWJlciA9IG9sZEZpYmVyLnNpYmxpbmc7XG4gICAgICB9XG5cbiAgICAgIHZhciBuZXdGaWJlciA9IHVwZGF0ZVNsb3QocmV0dXJuRmliZXIsIG9sZEZpYmVyLCBzdGVwLnZhbHVlLCBsYW5lcyk7XG5cbiAgICAgIGlmIChuZXdGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGJyZWFrcyBvbiBlbXB0eSBzbG90cyBsaWtlIG51bGwgY2hpbGRyZW4uIFRoYXQnc1xuICAgICAgICAvLyB1bmZvcnR1bmF0ZSBiZWNhdXNlIGl0IHRyaWdnZXJzIHRoZSBzbG93IHBhdGggYWxsIHRoZSB0aW1lLiBXZSBuZWVkXG4gICAgICAgIC8vIGEgYmV0dGVyIHdheSB0byBjb21tdW5pY2F0ZSB3aGV0aGVyIHRoaXMgd2FzIGEgbWlzcyBvciBudWxsLFxuICAgICAgICAvLyBib29sZWFuLCB1bmRlZmluZWQsIGV0Yy5cbiAgICAgICAgaWYgKG9sZEZpYmVyID09PSBudWxsKSB7XG4gICAgICAgICAgb2xkRmliZXIgPSBuZXh0T2xkRmliZXI7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKHNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgICAgICAgaWYgKG9sZEZpYmVyICYmIG5ld0ZpYmVyLmFsdGVybmF0ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFdlIG1hdGNoZWQgdGhlIHNsb3QsIGJ1dCB3ZSBkaWRuJ3QgcmV1c2UgdGhlIGV4aXN0aW5nIGZpYmVyLCBzbyB3ZVxuICAgICAgICAgIC8vIG5lZWQgdG8gZGVsZXRlIHRoZSBleGlzdGluZyBjaGlsZC5cbiAgICAgICAgICBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgb2xkRmliZXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxhc3RQbGFjZWRJbmRleCA9IHBsYWNlQ2hpbGQobmV3RmliZXIsIGxhc3RQbGFjZWRJbmRleCwgbmV3SWR4KTtcblxuICAgICAgaWYgKHByZXZpb3VzTmV3RmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgLy8gVE9ETzogTW92ZSBvdXQgb2YgdGhlIGxvb3AuIFRoaXMgb25seSBoYXBwZW5zIGZvciB0aGUgZmlyc3QgcnVuLlxuICAgICAgICByZXN1bHRpbmdGaXJzdENoaWxkID0gbmV3RmliZXI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUT0RPOiBEZWZlciBzaWJsaW5ncyBpZiB3ZSdyZSBub3QgYXQgdGhlIHJpZ2h0IGluZGV4IGZvciB0aGlzIHNsb3QuXG4gICAgICAgIC8vIEkuZS4gaWYgd2UgaGFkIG51bGwgdmFsdWVzIGJlZm9yZSwgdGhlbiB3ZSB3YW50IHRvIGRlZmVyIHRoaXNcbiAgICAgICAgLy8gZm9yIGVhY2ggbnVsbCB2YWx1ZS4gSG93ZXZlciwgd2UgYWxzbyBkb24ndCB3YW50IHRvIGNhbGwgdXBkYXRlU2xvdFxuICAgICAgICAvLyB3aXRoIHRoZSBwcmV2aW91cyBvbmUuXG4gICAgICAgIHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IG5ld0ZpYmVyO1xuICAgICAgfVxuXG4gICAgICBwcmV2aW91c05ld0ZpYmVyID0gbmV3RmliZXI7XG4gICAgICBvbGRGaWJlciA9IG5leHRPbGRGaWJlcjtcbiAgICB9XG5cbiAgICBpZiAoc3RlcC5kb25lKSB7XG4gICAgICAvLyBXZSd2ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIG5ldyBjaGlsZHJlbi4gV2UgY2FuIGRlbGV0ZSB0aGUgcmVzdC5cbiAgICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBvbGRGaWJlcik7XG5cbiAgICAgIGlmIChnZXRJc0h5ZHJhdGluZygpKSB7XG4gICAgICAgIHZhciBudW1iZXJPZkZvcmtzID0gbmV3SWR4O1xuICAgICAgICBwdXNoVHJlZUZvcmsocmV0dXJuRmliZXIsIG51bWJlck9mRm9ya3MpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0aW5nRmlyc3RDaGlsZDtcbiAgICB9XG5cbiAgICBpZiAob2xkRmliZXIgPT09IG51bGwpIHtcbiAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYW55IG1vcmUgZXhpc3RpbmcgY2hpbGRyZW4gd2UgY2FuIGNob29zZSBhIGZhc3QgcGF0aFxuICAgICAgLy8gc2luY2UgdGhlIHJlc3Qgd2lsbCBhbGwgYmUgaW5zZXJ0aW9ucy5cbiAgICAgIGZvciAoOyAhc3RlcC5kb25lOyBuZXdJZHgrKywgc3RlcCA9IG5ld0NoaWxkcmVuLm5leHQoKSkge1xuICAgICAgICB2YXIgX25ld0ZpYmVyMyA9IGNyZWF0ZUNoaWxkKHJldHVybkZpYmVyLCBzdGVwLnZhbHVlLCBsYW5lcyk7XG5cbiAgICAgICAgaWYgKF9uZXdGaWJlcjMgPT09IG51bGwpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhc3RQbGFjZWRJbmRleCA9IHBsYWNlQ2hpbGQoX25ld0ZpYmVyMywgbGFzdFBsYWNlZEluZGV4LCBuZXdJZHgpO1xuXG4gICAgICAgIGlmIChwcmV2aW91c05ld0ZpYmVyID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gVE9ETzogTW92ZSBvdXQgb2YgdGhlIGxvb3AuIFRoaXMgb25seSBoYXBwZW5zIGZvciB0aGUgZmlyc3QgcnVuLlxuICAgICAgICAgIHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBfbmV3RmliZXIzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IF9uZXdGaWJlcjM7XG4gICAgICAgIH1cblxuICAgICAgICBwcmV2aW91c05ld0ZpYmVyID0gX25ld0ZpYmVyMztcbiAgICAgIH1cblxuICAgICAgaWYgKGdldElzSHlkcmF0aW5nKCkpIHtcbiAgICAgICAgdmFyIF9udW1iZXJPZkZvcmtzMyA9IG5ld0lkeDtcbiAgICAgICAgcHVzaFRyZWVGb3JrKHJldHVybkZpYmVyLCBfbnVtYmVyT2ZGb3JrczMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0aW5nRmlyc3RDaGlsZDtcbiAgICB9IC8vIEFkZCBhbGwgY2hpbGRyZW4gdG8gYSBrZXkgbWFwIGZvciBxdWljayBsb29rdXBzLlxuXG5cbiAgICB2YXIgZXhpc3RpbmdDaGlsZHJlbiA9IG1hcFJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBvbGRGaWJlcik7IC8vIEtlZXAgc2Nhbm5pbmcgYW5kIHVzZSB0aGUgbWFwIHRvIHJlc3RvcmUgZGVsZXRlZCBpdGVtcyBhcyBtb3Zlcy5cblxuICAgIGZvciAoOyAhc3RlcC5kb25lOyBuZXdJZHgrKywgc3RlcCA9IG5ld0NoaWxkcmVuLm5leHQoKSkge1xuICAgICAgdmFyIF9uZXdGaWJlcjQgPSB1cGRhdGVGcm9tTWFwKGV4aXN0aW5nQ2hpbGRyZW4sIHJldHVybkZpYmVyLCBuZXdJZHgsIHN0ZXAudmFsdWUsIGxhbmVzKTtcblxuICAgICAgaWYgKF9uZXdGaWJlcjQgIT09IG51bGwpIHtcbiAgICAgICAgaWYgKHNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgICAgICAgICBpZiAoX25ld0ZpYmVyNC5hbHRlcm5hdGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIFRoZSBuZXcgZmliZXIgaXMgYSB3b3JrIGluIHByb2dyZXNzLCBidXQgaWYgdGhlcmUgZXhpc3RzIGFcbiAgICAgICAgICAgIC8vIGN1cnJlbnQsIHRoYXQgbWVhbnMgdGhhdCB3ZSByZXVzZWQgdGhlIGZpYmVyLiBXZSBuZWVkIHRvIGRlbGV0ZVxuICAgICAgICAgICAgLy8gaXQgZnJvbSB0aGUgY2hpbGQgbGlzdCBzbyB0aGF0IHdlIGRvbid0IGFkZCBpdCB0byB0aGUgZGVsZXRpb25cbiAgICAgICAgICAgIC8vIGxpc3QuXG4gICAgICAgICAgICBleGlzdGluZ0NoaWxkcmVuLmRlbGV0ZShfbmV3RmliZXI0LmtleSA9PT0gbnVsbCA/IG5ld0lkeCA6IF9uZXdGaWJlcjQua2V5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsYXN0UGxhY2VkSW5kZXggPSBwbGFjZUNoaWxkKF9uZXdGaWJlcjQsIGxhc3RQbGFjZWRJbmRleCwgbmV3SWR4KTtcblxuICAgICAgICBpZiAocHJldmlvdXNOZXdGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAgIHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBfbmV3RmliZXI0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IF9uZXdGaWJlcjQ7XG4gICAgICAgIH1cblxuICAgICAgICBwcmV2aW91c05ld0ZpYmVyID0gX25ld0ZpYmVyNDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2hvdWxkVHJhY2tTaWRlRWZmZWN0cykge1xuICAgICAgLy8gQW55IGV4aXN0aW5nIGNoaWxkcmVuIHRoYXQgd2VyZW4ndCBjb25zdW1lZCBhYm92ZSB3ZXJlIGRlbGV0ZWQuIFdlIG5lZWRcbiAgICAgIC8vIHRvIGFkZCB0aGVtIHRvIHRoZSBkZWxldGlvbiBsaXN0LlxuICAgICAgZXhpc3RpbmdDaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICByZXR1cm4gZGVsZXRlQ2hpbGQocmV0dXJuRmliZXIsIGNoaWxkKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChnZXRJc0h5ZHJhdGluZygpKSB7XG4gICAgICB2YXIgX251bWJlck9mRm9ya3M0ID0gbmV3SWR4O1xuICAgICAgcHVzaFRyZWVGb3JrKHJldHVybkZpYmVyLCBfbnVtYmVyT2ZGb3JrczQpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVjb25jaWxlU2luZ2xlVGV4dE5vZGUocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCB0ZXh0Q29udGVudCwgbGFuZXMpIHtcbiAgICAvLyBUaGVyZSdzIG5vIG5lZWQgdG8gY2hlY2sgZm9yIGtleXMgb24gdGV4dCBub2RlcyBzaW5jZSB3ZSBkb24ndCBoYXZlIGFcbiAgICAvLyB3YXkgdG8gZGVmaW5lIHRoZW0uXG4gICAgaWYgKGN1cnJlbnRGaXJzdENoaWxkICE9PSBudWxsICYmIGN1cnJlbnRGaXJzdENoaWxkLnRhZyA9PT0gSG9zdFRleHQpIHtcbiAgICAgIC8vIFdlIGFscmVhZHkgaGF2ZSBhbiBleGlzdGluZyBub2RlIHNvIGxldCdzIGp1c3QgdXBkYXRlIGl0IGFuZCBkZWxldGVcbiAgICAgIC8vIHRoZSByZXN0LlxuICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLnNpYmxpbmcpO1xuICAgICAgdmFyIGV4aXN0aW5nID0gdXNlRmliZXIoY3VycmVudEZpcnN0Q2hpbGQsIHRleHRDb250ZW50KTtcbiAgICAgIGV4aXN0aW5nLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgIH0gLy8gVGhlIGV4aXN0aW5nIGZpcnN0IGNoaWxkIGlzIG5vdCBhIHRleHQgbm9kZSBzbyB3ZSBuZWVkIHRvIGNyZWF0ZSBvbmVcbiAgICAvLyBhbmQgZGVsZXRlIHRoZSBleGlzdGluZyBvbmVzLlxuXG5cbiAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQpO1xuICAgIHZhciBjcmVhdGVkID0gY3JlYXRlRmliZXJGcm9tVGV4dCh0ZXh0Q29udGVudCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMpO1xuICAgIGNyZWF0ZWQucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgcmV0dXJuIGNyZWF0ZWQ7XG4gIH1cblxuICBmdW5jdGlvbiByZWNvbmNpbGVTaW5nbGVFbGVtZW50KHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgZWxlbWVudCwgbGFuZXMpIHtcbiAgICB2YXIga2V5ID0gZWxlbWVudC5rZXk7XG4gICAgdmFyIGNoaWxkID0gY3VycmVudEZpcnN0Q2hpbGQ7XG5cbiAgICB3aGlsZSAoY2hpbGQgIT09IG51bGwpIHtcbiAgICAgIC8vIFRPRE86IElmIGtleSA9PT0gbnVsbCBhbmQgY2hpbGQua2V5ID09PSBudWxsLCB0aGVuIHRoaXMgb25seSBhcHBsaWVzIHRvXG4gICAgICAvLyB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdC5cbiAgICAgIGlmIChjaGlsZC5rZXkgPT09IGtleSkge1xuICAgICAgICB2YXIgZWxlbWVudFR5cGUgPSBlbGVtZW50LnR5cGU7XG5cbiAgICAgICAgaWYgKGVsZW1lbnRUeXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSB7XG4gICAgICAgICAgaWYgKGNoaWxkLnRhZyA9PT0gRnJhZ21lbnQpIHtcbiAgICAgICAgICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjaGlsZC5zaWJsaW5nKTtcbiAgICAgICAgICAgIHZhciBleGlzdGluZyA9IHVzZUZpYmVyKGNoaWxkLCBlbGVtZW50LnByb3BzLmNoaWxkcmVuKTtcbiAgICAgICAgICAgIGV4aXN0aW5nLnJldHVybiA9IHJldHVybkZpYmVyO1xuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGV4aXN0aW5nLl9kZWJ1Z1NvdXJjZSA9IGVsZW1lbnQuX3NvdXJjZTtcbiAgICAgICAgICAgICAgZXhpc3RpbmcuX2RlYnVnT3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoY2hpbGQuZWxlbWVudFR5cGUgPT09IGVsZW1lbnRUeXBlIHx8ICggLy8gS2VlcCB0aGlzIGNoZWNrIGlubGluZSBzbyBpdCBvbmx5IHJ1bnMgb24gdGhlIGZhbHNlIHBhdGg6XG4gICAgICAgICAgIGlzQ29tcGF0aWJsZUZhbWlseUZvckhvdFJlbG9hZGluZyhjaGlsZCwgZWxlbWVudCkgKSB8fCAvLyBMYXp5IHR5cGVzIHNob3VsZCByZWNvbmNpbGUgdGhlaXIgcmVzb2x2ZWQgdHlwZS5cbiAgICAgICAgICAvLyBXZSBuZWVkIHRvIGRvIHRoaXMgYWZ0ZXIgdGhlIEhvdCBSZWxvYWRpbmcgY2hlY2sgYWJvdmUsXG4gICAgICAgICAgLy8gYmVjYXVzZSBob3QgcmVsb2FkaW5nIGhhcyBkaWZmZXJlbnQgc2VtYW50aWNzIHRoYW4gcHJvZCBiZWNhdXNlXG4gICAgICAgICAgLy8gaXQgZG9lc24ndCByZXN1c3BlbmQuIFNvIHdlIGNhbid0IGxldCB0aGUgY2FsbCBiZWxvdyBzdXNwZW5kLlxuICAgICAgICAgICB0eXBlb2YgZWxlbWVudFR5cGUgPT09ICdvYmplY3QnICYmIGVsZW1lbnRUeXBlICE9PSBudWxsICYmIGVsZW1lbnRUeXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUgJiYgcmVzb2x2ZUxhenkoZWxlbWVudFR5cGUpID09PSBjaGlsZC50eXBlKSB7XG4gICAgICAgICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY2hpbGQuc2libGluZyk7XG5cbiAgICAgICAgICAgIHZhciBfZXhpc3RpbmcgPSB1c2VGaWJlcihjaGlsZCwgZWxlbWVudC5wcm9wcyk7XG5cbiAgICAgICAgICAgIF9leGlzdGluZy5yZWYgPSBjb2VyY2VSZWYocmV0dXJuRmliZXIsIGNoaWxkLCBlbGVtZW50KTtcbiAgICAgICAgICAgIF9leGlzdGluZy5yZXR1cm4gPSByZXR1cm5GaWJlcjtcblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBfZXhpc3RpbmcuX2RlYnVnU291cmNlID0gZWxlbWVudC5fc291cmNlO1xuICAgICAgICAgICAgICBfZXhpc3RpbmcuX2RlYnVnT3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIF9leGlzdGluZztcbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gRGlkbid0IG1hdGNoLlxuXG5cbiAgICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGNoaWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY2hpbGQpO1xuICAgICAgfVxuXG4gICAgICBjaGlsZCA9IGNoaWxkLnNpYmxpbmc7XG4gICAgfVxuXG4gICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkge1xuICAgICAgdmFyIGNyZWF0ZWQgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudChlbGVtZW50LnByb3BzLmNoaWxkcmVuLCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcywgZWxlbWVudC5rZXkpO1xuICAgICAgY3JlYXRlZC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBjcmVhdGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgX2NyZWF0ZWQ0ID0gY3JlYXRlRmliZXJGcm9tRWxlbWVudChlbGVtZW50LCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG5cbiAgICAgIF9jcmVhdGVkNC5yZWYgPSBjb2VyY2VSZWYocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBlbGVtZW50KTtcbiAgICAgIF9jcmVhdGVkNC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBfY3JlYXRlZDQ7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVjb25jaWxlU2luZ2xlUG9ydGFsKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgcG9ydGFsLCBsYW5lcykge1xuICAgIHZhciBrZXkgPSBwb3J0YWwua2V5O1xuICAgIHZhciBjaGlsZCA9IGN1cnJlbnRGaXJzdENoaWxkO1xuXG4gICAgd2hpbGUgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICAvLyBUT0RPOiBJZiBrZXkgPT09IG51bGwgYW5kIGNoaWxkLmtleSA9PT0gbnVsbCwgdGhlbiB0aGlzIG9ubHkgYXBwbGllcyB0b1xuICAgICAgLy8gdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGxpc3QuXG4gICAgICBpZiAoY2hpbGQua2V5ID09PSBrZXkpIHtcbiAgICAgICAgaWYgKGNoaWxkLnRhZyA9PT0gSG9zdFBvcnRhbCAmJiBjaGlsZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyA9PT0gcG9ydGFsLmNvbnRhaW5lckluZm8gJiYgY2hpbGQuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uID09PSBwb3J0YWwuaW1wbGVtZW50YXRpb24pIHtcbiAgICAgICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY2hpbGQuc2libGluZyk7XG4gICAgICAgICAgdmFyIGV4aXN0aW5nID0gdXNlRmliZXIoY2hpbGQsIHBvcnRhbC5jaGlsZHJlbiB8fCBbXSk7XG4gICAgICAgICAgZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjaGlsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBjaGlsZCk7XG4gICAgICB9XG5cbiAgICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgICB9XG5cbiAgICB2YXIgY3JlYXRlZCA9IGNyZWF0ZUZpYmVyRnJvbVBvcnRhbChwb3J0YWwsIHJldHVybkZpYmVyLm1vZGUsIGxhbmVzKTtcbiAgICBjcmVhdGVkLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgIHJldHVybiBjcmVhdGVkO1xuICB9IC8vIFRoaXMgQVBJIHdpbGwgdGFnIHRoZSBjaGlsZHJlbiB3aXRoIHRoZSBzaWRlLWVmZmVjdCBvZiB0aGUgcmVjb25jaWxpYXRpb25cbiAgLy8gaXRzZWxmLiBUaGV5IHdpbGwgYmUgYWRkZWQgdG8gdGhlIHNpZGUtZWZmZWN0IGxpc3QgYXMgd2UgcGFzcyB0aHJvdWdoIHRoZVxuICAvLyBjaGlsZHJlbiBhbmQgdGhlIHBhcmVudC5cblxuXG4gIGZ1bmN0aW9uIHJlY29uY2lsZUNoaWxkRmliZXJzKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKSB7XG4gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBub3QgcmVjdXJzaXZlLlxuICAgIC8vIElmIHRoZSB0b3AgbGV2ZWwgaXRlbSBpcyBhbiBhcnJheSwgd2UgdHJlYXQgaXQgYXMgYSBzZXQgb2YgY2hpbGRyZW4sXG4gICAgLy8gbm90IGFzIGEgZnJhZ21lbnQuIE5lc3RlZCBhcnJheXMgb24gdGhlIG90aGVyIGhhbmQgd2lsbCBiZSB0cmVhdGVkIGFzXG4gICAgLy8gZnJhZ21lbnQgbm9kZXMuIFJlY3Vyc2lvbiBoYXBwZW5zIGF0IHRoZSBub3JtYWwgZmxvdy5cbiAgICAvLyBIYW5kbGUgdG9wIGxldmVsIHVua2V5ZWQgZnJhZ21lbnRzIGFzIGlmIHRoZXkgd2VyZSBhcnJheXMuXG4gICAgLy8gVGhpcyBsZWFkcyB0byBhbiBhbWJpZ3VpdHkgYmV0d2VlbiA8PntbLi4uXX08Lz4gYW5kIDw+Li4uPC8+LlxuICAgIC8vIFdlIHRyZWF0IHRoZSBhbWJpZ3VvdXMgY2FzZXMgYWJvdmUgdGhlIHNhbWUuXG4gICAgdmFyIGlzVW5rZXllZFRvcExldmVsRnJhZ21lbnQgPSB0eXBlb2YgbmV3Q2hpbGQgPT09ICdvYmplY3QnICYmIG5ld0NoaWxkICE9PSBudWxsICYmIG5ld0NoaWxkLnR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUgJiYgbmV3Q2hpbGQua2V5ID09PSBudWxsO1xuXG4gICAgaWYgKGlzVW5rZXllZFRvcExldmVsRnJhZ21lbnQpIHtcbiAgICAgIG5ld0NoaWxkID0gbmV3Q2hpbGQucHJvcHMuY2hpbGRyZW47XG4gICAgfSAvLyBIYW5kbGUgb2JqZWN0IHR5cGVzXG5cblxuICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdvYmplY3QnICYmIG5ld0NoaWxkICE9PSBudWxsKSB7XG4gICAgICBzd2l0Y2ggKG5ld0NoaWxkLiQkdHlwZW9mKSB7XG4gICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgIHJldHVybiBwbGFjZVNpbmdsZUNoaWxkKHJlY29uY2lsZVNpbmdsZUVsZW1lbnQocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBuZXdDaGlsZCwgbGFuZXMpKTtcblxuICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgIHJldHVybiBwbGFjZVNpbmdsZUNoaWxkKHJlY29uY2lsZVNpbmdsZVBvcnRhbChyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsIG5ld0NoaWxkLCBsYW5lcykpO1xuXG4gICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBwYXlsb2FkID0gbmV3Q2hpbGQuX3BheWxvYWQ7XG4gICAgICAgICAgICB2YXIgaW5pdCA9IG5ld0NoaWxkLl9pbml0OyAvLyBUT0RPOiBUaGlzIGZ1bmN0aW9uIGlzIHN1cHBvc2VkIHRvIGJlIG5vbi1yZWN1cnNpdmUuXG5cbiAgICAgICAgICAgIHJldHVybiByZWNvbmNpbGVDaGlsZEZpYmVycyhyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsIGluaXQocGF5bG9hZCksIGxhbmVzKTtcbiAgICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgaWYgKGlzQXJyYXkobmV3Q2hpbGQpKSB7XG4gICAgICAgIHJldHVybiByZWNvbmNpbGVDaGlsZHJlbkFycmF5KHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGdldEl0ZXJhdG9yRm4obmV3Q2hpbGQpKSB7XG4gICAgICAgIHJldHVybiByZWNvbmNpbGVDaGlsZHJlbkl0ZXJhdG9yKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICAgIH1cblxuICAgICAgdGhyb3dPbkludmFsaWRPYmplY3RUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBuZXdDaGlsZCA9PT0gJ3N0cmluZycgJiYgbmV3Q2hpbGQgIT09ICcnIHx8IHR5cGVvZiBuZXdDaGlsZCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBwbGFjZVNpbmdsZUNoaWxkKHJlY29uY2lsZVNpbmdsZVRleHROb2RlKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgJycgKyBuZXdDaGlsZCwgbGFuZXMpKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBpZiAodHlwZW9mIG5ld0NoaWxkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHdhcm5PbkZ1bmN0aW9uVHlwZShyZXR1cm5GaWJlcik7XG4gICAgICB9XG4gICAgfSAvLyBSZW1haW5pbmcgY2FzZXMgYXJlIGFsbCB0cmVhdGVkIGFzIGVtcHR5LlxuXG5cbiAgICByZXR1cm4gZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkKTtcbiAgfVxuXG4gIHJldHVybiByZWNvbmNpbGVDaGlsZEZpYmVycztcbn1cblxudmFyIHJlY29uY2lsZUNoaWxkRmliZXJzID0gQ2hpbGRSZWNvbmNpbGVyKHRydWUpO1xudmFyIG1vdW50Q2hpbGRGaWJlcnMgPSBDaGlsZFJlY29uY2lsZXIoZmFsc2UpO1xuZnVuY3Rpb24gY2xvbmVDaGlsZEZpYmVycyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcykge1xuICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiB3b3JrSW5Qcm9ncmVzcy5jaGlsZCAhPT0gY3VycmVudC5jaGlsZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUmVzdW1pbmcgd29yayBub3QgeWV0IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgaWYgKHdvcmtJblByb2dyZXNzLmNoaWxkID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGN1cnJlbnRDaGlsZCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICB2YXIgbmV3Q2hpbGQgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50Q2hpbGQsIGN1cnJlbnRDaGlsZC5wZW5kaW5nUHJvcHMpO1xuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG5ld0NoaWxkO1xuICBuZXdDaGlsZC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcblxuICB3aGlsZSAoY3VycmVudENoaWxkLnNpYmxpbmcgIT09IG51bGwpIHtcbiAgICBjdXJyZW50Q2hpbGQgPSBjdXJyZW50Q2hpbGQuc2libGluZztcbiAgICBuZXdDaGlsZCA9IG5ld0NoaWxkLnNpYmxpbmcgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50Q2hpbGQsIGN1cnJlbnRDaGlsZC5wZW5kaW5nUHJvcHMpO1xuICAgIG5ld0NoaWxkLnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICB9XG5cbiAgbmV3Q2hpbGQuc2libGluZyA9IG51bGw7XG59IC8vIFJlc2V0IGEgd29ya0luUHJvZ3Jlc3MgY2hpbGQgc2V0IHRvIHByZXBhcmUgaXQgZm9yIGEgc2Vjb25kIHBhc3MuXG5cbmZ1bmN0aW9uIHJlc2V0Q2hpbGRGaWJlcnMod29ya0luUHJvZ3Jlc3MsIGxhbmVzKSB7XG4gIHZhciBjaGlsZCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuXG4gIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkge1xuICAgIHJlc2V0V29ya0luUHJvZ3Jlc3MoY2hpbGQsIGxhbmVzKTtcbiAgICBjaGlsZCA9IGNoaWxkLnNpYmxpbmc7XG4gIH1cbn1cblxudmFyIE5PX0NPTlRFWFQgPSB7fTtcbnZhciBjb250ZXh0U3RhY2tDdXJzb3IkMSA9IGNyZWF0ZUN1cnNvcihOT19DT05URVhUKTtcbnZhciBjb250ZXh0RmliZXJTdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcihOT19DT05URVhUKTtcbnZhciByb290SW5zdGFuY2VTdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcihOT19DT05URVhUKTtcblxuZnVuY3Rpb24gcmVxdWlyZWRDb250ZXh0KGMpIHtcbiAgaWYgKGMgPT09IE5PX0NPTlRFWFQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGhvc3QgY29udGV4dCB0byBleGlzdC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnICcgKyAnaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICB9XG5cbiAgcmV0dXJuIGM7XG59XG5cbmZ1bmN0aW9uIGdldFJvb3RIb3N0Q29udGFpbmVyKCkge1xuICB2YXIgcm9vdEluc3RhbmNlID0gcmVxdWlyZWRDb250ZXh0KHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLmN1cnJlbnQpO1xuICByZXR1cm4gcm9vdEluc3RhbmNlO1xufVxuXG5mdW5jdGlvbiBwdXNoSG9zdENvbnRhaW5lcihmaWJlciwgbmV4dFJvb3RJbnN0YW5jZSkge1xuICAvLyBQdXNoIGN1cnJlbnQgcm9vdCBpbnN0YW5jZSBvbnRvIHRoZSBzdGFjaztcbiAgLy8gVGhpcyBhbGxvd3MgdXMgdG8gcmVzZXQgcm9vdCB3aGVuIHBvcnRhbHMgYXJlIHBvcHBlZC5cbiAgcHVzaChyb290SW5zdGFuY2VTdGFja0N1cnNvciwgbmV4dFJvb3RJbnN0YW5jZSwgZmliZXIpOyAvLyBUcmFjayB0aGUgY29udGV4dCBhbmQgdGhlIEZpYmVyIHRoYXQgcHJvdmlkZWQgaXQuXG4gIC8vIFRoaXMgZW5hYmxlcyB1cyB0byBwb3Agb25seSBGaWJlcnMgdGhhdCBwcm92aWRlIHVuaXF1ZSBjb250ZXh0cy5cblxuICBwdXNoKGNvbnRleHRGaWJlclN0YWNrQ3Vyc29yLCBmaWJlciwgZmliZXIpOyAvLyBGaW5hbGx5LCB3ZSBuZWVkIHRvIHB1c2ggdGhlIGhvc3QgY29udGV4dCB0byB0aGUgc3RhY2suXG4gIC8vIEhvd2V2ZXIsIHdlIGNhbid0IGp1c3QgY2FsbCBnZXRSb290SG9zdENvbnRleHQoKSBhbmQgcHVzaCBpdCBiZWNhdXNlXG4gIC8vIHdlJ2QgaGF2ZSBhIGRpZmZlcmVudCBudW1iZXIgb2YgZW50cmllcyBvbiB0aGUgc3RhY2sgZGVwZW5kaW5nIG9uXG4gIC8vIHdoZXRoZXIgZ2V0Um9vdEhvc3RDb250ZXh0KCkgdGhyb3dzIHNvbWV3aGVyZSBpbiByZW5kZXJlciBjb2RlIG9yIG5vdC5cbiAgLy8gU28gd2UgcHVzaCBhbiBlbXB0eSB2YWx1ZSBmaXJzdC4gVGhpcyBsZXRzIHVzIHNhZmVseSB1bndpbmQgb24gZXJyb3JzLlxuXG4gIHB1c2goY29udGV4dFN0YWNrQ3Vyc29yJDEsIE5PX0NPTlRFWFQsIGZpYmVyKTtcbiAgdmFyIG5leHRSb290Q29udGV4dCA9IGdldFJvb3RIb3N0Q29udGV4dChuZXh0Um9vdEluc3RhbmNlKTsgLy8gTm93IHRoYXQgd2Uga25vdyB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3QgdGhyb3csIHJlcGxhY2UgaXQuXG5cbiAgcG9wKGNvbnRleHRTdGFja0N1cnNvciQxLCBmaWJlcik7XG4gIHB1c2goY29udGV4dFN0YWNrQ3Vyc29yJDEsIG5leHRSb290Q29udGV4dCwgZmliZXIpO1xufVxuXG5mdW5jdGlvbiBwb3BIb3N0Q29udGFpbmVyKGZpYmVyKSB7XG4gIHBvcChjb250ZXh0U3RhY2tDdXJzb3IkMSwgZmliZXIpO1xuICBwb3AoY29udGV4dEZpYmVyU3RhY2tDdXJzb3IsIGZpYmVyKTtcbiAgcG9wKHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLCBmaWJlcik7XG59XG5cbmZ1bmN0aW9uIGdldEhvc3RDb250ZXh0KCkge1xuICB2YXIgY29udGV4dCA9IHJlcXVpcmVkQ29udGV4dChjb250ZXh0U3RhY2tDdXJzb3IkMS5jdXJyZW50KTtcbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmZ1bmN0aW9uIHB1c2hIb3N0Q29udGV4dChmaWJlcikge1xuICB2YXIgcm9vdEluc3RhbmNlID0gcmVxdWlyZWRDb250ZXh0KHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLmN1cnJlbnQpO1xuICB2YXIgY29udGV4dCA9IHJlcXVpcmVkQ29udGV4dChjb250ZXh0U3RhY2tDdXJzb3IkMS5jdXJyZW50KTtcbiAgdmFyIG5leHRDb250ZXh0ID0gZ2V0Q2hpbGRIb3N0Q29udGV4dChjb250ZXh0LCBmaWJlci50eXBlKTsgLy8gRG9uJ3QgcHVzaCB0aGlzIEZpYmVyJ3MgY29udGV4dCB1bmxlc3MgaXQncyB1bmlxdWUuXG5cbiAgaWYgKGNvbnRleHQgPT09IG5leHRDb250ZXh0KSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIFRyYWNrIHRoZSBjb250ZXh0IGFuZCB0aGUgRmliZXIgdGhhdCBwcm92aWRlZCBpdC5cbiAgLy8gVGhpcyBlbmFibGVzIHVzIHRvIHBvcCBvbmx5IEZpYmVycyB0aGF0IHByb3ZpZGUgdW5pcXVlIGNvbnRleHRzLlxuXG5cbiAgcHVzaChjb250ZXh0RmliZXJTdGFja0N1cnNvciwgZmliZXIsIGZpYmVyKTtcbiAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IkMSwgbmV4dENvbnRleHQsIGZpYmVyKTtcbn1cblxuZnVuY3Rpb24gcG9wSG9zdENvbnRleHQoZmliZXIpIHtcbiAgLy8gRG8gbm90IHBvcCB1bmxlc3MgdGhpcyBGaWJlciBwcm92aWRlZCB0aGUgY3VycmVudCBjb250ZXh0LlxuICAvLyBwdXNoSG9zdENvbnRleHQoKSBvbmx5IHB1c2hlcyBGaWJlcnMgdGhhdCBwcm92aWRlIHVuaXF1ZSBjb250ZXh0cy5cbiAgaWYgKGNvbnRleHRGaWJlclN0YWNrQ3Vyc29yLmN1cnJlbnQgIT09IGZpYmVyKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcG9wKGNvbnRleHRTdGFja0N1cnNvciQxLCBmaWJlcik7XG4gIHBvcChjb250ZXh0RmliZXJTdGFja0N1cnNvciwgZmliZXIpO1xufVxuXG52YXIgRGVmYXVsdFN1c3BlbnNlQ29udGV4dCA9IDA7IC8vIFRoZSBTdXNwZW5zZSBDb250ZXh0IGlzIHNwbGl0IGludG8gdHdvIHBhcnRzLiBUaGUgbG93ZXIgYml0cyBpc1xuLy8gaW5oZXJpdGVkIGRlZXBseSBkb3duIHRoZSBzdWJ0cmVlLiBUaGUgdXBwZXIgYml0cyBvbmx5IGFmZmVjdFxuLy8gdGhpcyBpbW1lZGlhdGUgc3VzcGVuc2UgYm91bmRhcnkgYW5kIGdldHMgcmVzZXQgZWFjaCBuZXdcbi8vIGJvdW5kYXJ5IG9yIHN1c3BlbnNlIGxpc3QuXG5cbnZhciBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzayA9IDE7IC8vIFN1YnRyZWUgRmxhZ3M6XG4vLyBJbnZpc2libGVQYXJlbnRTdXNwZW5zZUNvbnRleHQgaW5kaWNhdGVzIHRoYXQgb25lIG9mIG91ciBwYXJlbnQgU3VzcGVuc2Vcbi8vIGJvdW5kYXJpZXMgaXMgbm90IGN1cnJlbnRseSBzaG93aW5nIHZpc2libGUgbWFpbiBjb250ZW50LlxuLy8gRWl0aGVyIGJlY2F1c2UgaXQgaXMgYWxyZWFkeSBzaG93aW5nIGEgZmFsbGJhY2sgb3IgaXMgbm90IG1vdW50ZWQgYXQgYWxsLlxuLy8gV2UgY2FuIHVzZSB0aGlzIHRvIGRldGVybWluZSBpZiBpdCBpcyBkZXNpcmFibGUgdG8gdHJpZ2dlciBhIGZhbGxiYWNrIGF0XG4vLyB0aGUgcGFyZW50LiBJZiBub3QsIHRoZW4gd2UgbWlnaHQgbmVlZCB0byB0cmlnZ2VyIHVuZGVzaXJhYmxlIGJvdW5kYXJpZXNcbi8vIGFuZC9vciBzdXNwZW5kIHRoZSBjb21taXQgdG8gYXZvaWQgaGlkaW5nIHRoZSBwYXJlbnQgY29udGVudC5cblxudmFyIEludmlzaWJsZVBhcmVudFN1c3BlbnNlQ29udGV4dCA9IDE7IC8vIFNoYWxsb3cgRmxhZ3M6XG4vLyBGb3JjZVN1c3BlbnNlRmFsbGJhY2sgY2FuIGJlIHVzZWQgYnkgU3VzcGVuc2VMaXN0IHRvIGZvcmNlIG5ld2x5IGFkZGVkXG4vLyBpdGVtcyBpbnRvIHRoZWlyIGZhbGxiYWNrIHN0YXRlIGR1cmluZyBvbmUgb2YgdGhlIHJlbmRlciBwYXNzZXMuXG5cbnZhciBGb3JjZVN1c3BlbnNlRmFsbGJhY2sgPSAyO1xudmFyIHN1c3BlbnNlU3RhY2tDdXJzb3IgPSBjcmVhdGVDdXJzb3IoRGVmYXVsdFN1c3BlbnNlQ29udGV4dCk7XG5mdW5jdGlvbiBoYXNTdXNwZW5zZUNvbnRleHQocGFyZW50Q29udGV4dCwgZmxhZykge1xuICByZXR1cm4gKHBhcmVudENvbnRleHQgJiBmbGFnKSAhPT0gMDtcbn1cbmZ1bmN0aW9uIHNldERlZmF1bHRTaGFsbG93U3VzcGVuc2VDb250ZXh0KHBhcmVudENvbnRleHQpIHtcbiAgcmV0dXJuIHBhcmVudENvbnRleHQgJiBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzaztcbn1cbmZ1bmN0aW9uIHNldFNoYWxsb3dTdXNwZW5zZUNvbnRleHQocGFyZW50Q29udGV4dCwgc2hhbGxvd0NvbnRleHQpIHtcbiAgcmV0dXJuIHBhcmVudENvbnRleHQgJiBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzayB8IHNoYWxsb3dDb250ZXh0O1xufVxuZnVuY3Rpb24gYWRkU3VidHJlZVN1c3BlbnNlQ29udGV4dChwYXJlbnRDb250ZXh0LCBzdWJ0cmVlQ29udGV4dCkge1xuICByZXR1cm4gcGFyZW50Q29udGV4dCB8IHN1YnRyZWVDb250ZXh0O1xufVxuZnVuY3Rpb24gcHVzaFN1c3BlbnNlQ29udGV4dChmaWJlciwgbmV3Q29udGV4dCkge1xuICBwdXNoKHN1c3BlbnNlU3RhY2tDdXJzb3IsIG5ld0NvbnRleHQsIGZpYmVyKTtcbn1cbmZ1bmN0aW9uIHBvcFN1c3BlbnNlQ29udGV4dChmaWJlcikge1xuICBwb3Aoc3VzcGVuc2VTdGFja0N1cnNvciwgZmliZXIpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRDYXB0dXJlU3VzcGVuc2Uod29ya0luUHJvZ3Jlc3MsIGhhc0ludmlzaWJsZVBhcmVudCkge1xuICAvLyBJZiBpdCB3YXMgdGhlIHByaW1hcnkgY2hpbGRyZW4gdGhhdCBqdXN0IHN1c3BlbmRlZCwgY2FwdHVyZSBhbmQgcmVuZGVyIHRoZVxuICAvLyBmYWxsYmFjay4gT3RoZXJ3aXNlLCBkb24ndCBjYXB0dXJlIGFuZCBidWJibGUgdG8gdGhlIG5leHQgYm91bmRhcnkuXG4gIHZhciBuZXh0U3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuXG4gIGlmIChuZXh0U3RhdGUgIT09IG51bGwpIHtcbiAgICBpZiAobmV4dFN0YXRlLmRlaHlkcmF0ZWQgIT09IG51bGwpIHtcbiAgICAgIC8vIEEgZGVoeWRyYXRlZCBib3VuZGFyeSBhbHdheXMgY2FwdHVyZXMuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgcHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzOyAvLyBSZWd1bGFyIGJvdW5kYXJpZXMgYWx3YXlzIGNhcHR1cmUuXG5cbiAge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIElmIGl0J3MgYSBib3VuZGFyeSB3ZSBzaG91bGQgYXZvaWQsIHRoZW4gd2UgcHJlZmVyIHRvIGJ1YmJsZSB1cCB0byB0aGVcbn1cbmZ1bmN0aW9uIGZpbmRGaXJzdFN1c3BlbmRlZChyb3cpIHtcbiAgdmFyIG5vZGUgPSByb3c7XG5cbiAgd2hpbGUgKG5vZGUgIT09IG51bGwpIHtcbiAgICBpZiAobm9kZS50YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50KSB7XG4gICAgICB2YXIgc3RhdGUgPSBub2RlLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgIGlmIChzdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgZGVoeWRyYXRlZCA9IHN0YXRlLmRlaHlkcmF0ZWQ7XG5cbiAgICAgICAgaWYgKGRlaHlkcmF0ZWQgPT09IG51bGwgfHwgaXNTdXNwZW5zZUluc3RhbmNlUGVuZGluZyhkZWh5ZHJhdGVkKSB8fCBpc1N1c3BlbnNlSW5zdGFuY2VGYWxsYmFjayhkZWh5ZHJhdGVkKSkge1xuICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChub2RlLnRhZyA9PT0gU3VzcGVuc2VMaXN0Q29tcG9uZW50ICYmIC8vIHJldmVhbE9yZGVyIHVuZGVmaW5lZCBjYW4ndCBiZSB0cnVzdGVkIGJlY2F1c2UgaXQgZG9uJ3RcbiAgICAvLyBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgaXQgc3VzcGVuZGVkIG9yIG5vdC5cbiAgICBub2RlLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIGRpZFN1c3BlbmQgPSAobm9kZS5mbGFncyAmIERpZENhcHR1cmUpICE9PSBOb0ZsYWdzO1xuXG4gICAgICBpZiAoZGlkU3VzcGVuZCkge1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgIG5vZGUuY2hpbGQucmV0dXJuID0gbm9kZTtcbiAgICAgIG5vZGUgPSBub2RlLmNoaWxkO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUgPT09IHJvdykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgd2hpbGUgKG5vZGUuc2libGluZyA9PT0gbnVsbCkge1xuICAgICAgaWYgKG5vZGUucmV0dXJuID09PSBudWxsIHx8IG5vZGUucmV0dXJuID09PSByb3cpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9XG5cbiAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG52YXIgTm9GbGFncyQxID1cbi8qICAgKi9cbjA7IC8vIFJlcHJlc2VudHMgd2hldGhlciBlZmZlY3Qgc2hvdWxkIGZpcmUuXG5cbnZhciBIYXNFZmZlY3QgPVxuLyogKi9cbjE7IC8vIFJlcHJlc2VudHMgdGhlIHBoYXNlIGluIHdoaWNoIHRoZSBlZmZlY3QgKG5vdCB0aGUgY2xlYW4tdXApIGZpcmVzLlxuXG52YXIgSW5zZXJ0aW9uID1cbi8qICAqL1xuMjtcbnZhciBMYXlvdXQgPVxuLyogICAgKi9cbjQ7XG52YXIgUGFzc2l2ZSQxID1cbi8qICAgKi9cbjg7XG5cbi8vIGFuZCBzaG91bGQgYmUgcmVzZXQgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IHJlbmRlci5cbi8vIFRoaXMgdHJhY2tzIHdoaWNoIG11dGFibGUgc291cmNlcyBuZWVkIHRvIGJlIHJlc2V0IGFmdGVyIGEgcmVuZGVyLlxuXG52YXIgd29ya0luUHJvZ3Jlc3NTb3VyY2VzID0gW107XG5mdW5jdGlvbiByZXNldFdvcmtJblByb2dyZXNzVmVyc2lvbnMoKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgd29ya0luUHJvZ3Jlc3NTb3VyY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIG11dGFibGVTb3VyY2UgPSB3b3JrSW5Qcm9ncmVzc1NvdXJjZXNbaV07XG5cbiAgICB7XG4gICAgICBtdXRhYmxlU291cmNlLl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICB3b3JrSW5Qcm9ncmVzc1NvdXJjZXMubGVuZ3RoID0gMDtcbn1cbi8vIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSB2ZXJzaW9uIHVzZWQgZm9yIHNlcnZlciByZW5kZXJpbmcgbWF0Y2hlcyB0aGUgb25lXG4vLyB0aGF0IGlzIGV2ZW50dWFsbHkgcmVhZCBkdXJpbmcgaHlkcmF0aW9uLlxuLy8gSWYgdGhleSBkb24ndCBtYXRjaCB0aGVyZSdzIGEgcG90ZW50aWFsIHRlYXIgYW5kIGEgZnVsbCBkZW9wdCByZW5kZXIgaXMgcmVxdWlyZWQuXG5cbmZ1bmN0aW9uIHJlZ2lzdGVyTXV0YWJsZVNvdXJjZUZvckh5ZHJhdGlvbihyb290LCBtdXRhYmxlU291cmNlKSB7XG4gIHZhciBnZXRWZXJzaW9uID0gbXV0YWJsZVNvdXJjZS5fZ2V0VmVyc2lvbjtcbiAgdmFyIHZlcnNpb24gPSBnZXRWZXJzaW9uKG11dGFibGVTb3VyY2UuX3NvdXJjZSk7IC8vIFRPRE8gQ2xlYXIgdGhpcyBkYXRhIG9uY2UgYWxsIHBlbmRpbmcgaHlkcmF0aW9uIHdvcmsgaXMgZmluaXNoZWQuXG4gIC8vIFJldGFpbmluZyBpdCBmb3JldmVyIG1heSBpbnRlcmZlcmUgd2l0aCBHQy5cblxuICBpZiAocm9vdC5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhID09IG51bGwpIHtcbiAgICByb290Lm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEgPSBbbXV0YWJsZVNvdXJjZSwgdmVyc2lvbl07XG4gIH0gZWxzZSB7XG4gICAgcm9vdC5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhLnB1c2gobXV0YWJsZVNvdXJjZSwgdmVyc2lvbik7XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsXG4gICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnO1xudmFyIGRpZFdhcm5BYm91dE1pc21hdGNoZWRIb29rc0ZvckNvbXBvbmVudDtcbnZhciBkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdDtcblxue1xuICBkaWRXYXJuQWJvdXRNaXNtYXRjaGVkSG9va3NGb3JDb21wb25lbnQgPSBuZXcgU2V0KCk7XG59XG5cbi8vIFRoZXNlIGFyZSBzZXQgcmlnaHQgYmVmb3JlIGNhbGxpbmcgdGhlIGNvbXBvbmVudC5cbnZhciByZW5kZXJMYW5lcyA9IE5vTGFuZXM7IC8vIFRoZSB3b3JrLWluLXByb2dyZXNzIGZpYmVyLiBJJ3ZlIG5hbWVkIGl0IGRpZmZlcmVudGx5IHRvIGRpc3Rpbmd1aXNoIGl0IGZyb21cbi8vIHRoZSB3b3JrLWluLXByb2dyZXNzIGhvb2suXG5cbnZhciBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxID0gbnVsbDsgLy8gSG9va3MgYXJlIHN0b3JlZCBhcyBhIGxpbmtlZCBsaXN0IG9uIHRoZSBmaWJlcidzIG1lbW9pemVkU3RhdGUgZmllbGQuIFRoZVxuLy8gY3VycmVudCBob29rIGxpc3QgaXMgdGhlIGxpc3QgdGhhdCBiZWxvbmdzIHRvIHRoZSBjdXJyZW50IGZpYmVyLiBUaGVcbi8vIHdvcmstaW4tcHJvZ3Jlc3MgaG9vayBsaXN0IGlzIGEgbmV3IGxpc3QgdGhhdCB3aWxsIGJlIGFkZGVkIHRvIHRoZVxuLy8gd29yay1pbi1wcm9ncmVzcyBmaWJlci5cblxudmFyIGN1cnJlbnRIb29rID0gbnVsbDtcbnZhciB3b3JrSW5Qcm9ncmVzc0hvb2sgPSBudWxsOyAvLyBXaGV0aGVyIGFuIHVwZGF0ZSB3YXMgc2NoZWR1bGVkIGF0IGFueSBwb2ludCBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZS4gVGhpc1xuLy8gZG9lcyBub3QgZ2V0IHJlc2V0IGlmIHdlIGRvIGFub3RoZXIgcmVuZGVyIHBhc3M7IG9ubHkgd2hlbiB3ZSdyZSBjb21wbGV0ZWx5XG4vLyBmaW5pc2hlZCBldmFsdWF0aW5nIHRoaXMgY29tcG9uZW50LiBUaGlzIGlzIGFuIG9wdGltaXphdGlvbiBzbyB3ZSBrbm93XG4vLyB3aGV0aGVyIHdlIG5lZWQgdG8gY2xlYXIgcmVuZGVyIHBoYXNlIHVwZGF0ZXMgYWZ0ZXIgYSB0aHJvdy5cblxudmFyIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGUgPSBmYWxzZTsgLy8gV2hlcmUgYW4gdXBkYXRlIHdhcyBzY2hlZHVsZWQgb25seSBkdXJpbmcgdGhlIGN1cnJlbnQgcmVuZGVyIHBhc3MuIFRoaXNcbi8vIGdldHMgcmVzZXQgYWZ0ZXIgZWFjaCBhdHRlbXB0LlxuLy8gVE9ETzogTWF5YmUgdGhlcmUncyBzb21lIHdheSB0byBjb25zb2xpZGF0ZSB0aGlzIHdpdGhcbi8vIGBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlYC4gT3Igd2l0aCBgbnVtYmVyT2ZSZVJlbmRlcnNgLlxuXG52YXIgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZUR1cmluZ1RoaXNQYXNzID0gZmFsc2U7IC8vIENvdW50cyB0aGUgbnVtYmVyIG9mIHVzZUlkIGhvb2tzIGluIHRoaXMgY29tcG9uZW50LlxuXG52YXIgbG9jYWxJZENvdW50ZXIgPSAwOyAvLyBVc2VkIGZvciBpZHMgdGhhdCBhcmUgZ2VuZXJhdGVkIGNvbXBsZXRlbHkgY2xpZW50LXNpZGUgKGkuZS4gbm90IGR1cmluZ1xuLy8gaHlkcmF0aW9uKS4gVGhpcyBjb3VudGVyIGlzIGdsb2JhbCwgc28gY2xpZW50IGlkcyBhcmUgbm90IHN0YWJsZSBhY3Jvc3Ncbi8vIHJlbmRlciBhdHRlbXB0cy5cblxudmFyIGdsb2JhbENsaWVudElkQ291bnRlciA9IDA7XG52YXIgUkVfUkVOREVSX0xJTUlUID0gMjU7IC8vIEluIERFViwgdGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBwcmltaXRpdmUgaG9va1xuXG52YXIgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBudWxsOyAvLyBJbiBERVYsIHRoaXMgbGlzdCBlbnN1cmVzIHRoYXQgaG9va3MgYXJlIGNhbGxlZCBpbiB0aGUgc2FtZSBvcmRlciBiZXR3ZWVuIHJlbmRlcnMuXG4vLyBUaGUgbGlzdCBzdG9yZXMgdGhlIG9yZGVyIG9mIGhvb2tzIHVzZWQgZHVyaW5nIHRoZSBpbml0aWFsIHJlbmRlciAobW91bnQpLlxuLy8gU3Vic2VxdWVudCByZW5kZXJzICh1cGRhdGVzKSByZWZlcmVuY2UgdGhpcyBsaXN0LlxuXG52YXIgaG9va1R5cGVzRGV2ID0gbnVsbDtcbnZhciBob29rVHlwZXNVcGRhdGVJbmRleERldiA9IC0xOyAvLyBJbiBERVYsIHRoaXMgdHJhY2tzIHdoZXRoZXIgY3VycmVudGx5IHJlbmRlcmluZyBjb21wb25lbnQgbmVlZHMgdG8gaWdub3JlXG4vLyB0aGUgZGVwZW5kZW5jaWVzIGZvciBIb29rcyB0aGF0IG5lZWQgdGhlbSAoZS5nLiB1c2VFZmZlY3Qgb3IgdXNlTWVtbykuXG4vLyBXaGVuIHRydWUsIHN1Y2ggSG9va3Mgd2lsbCBhbHdheXMgYmUgXCJyZW1vdW50ZWRcIi4gT25seSB1c2VkIGR1cmluZyBob3QgcmVsb2FkLlxuXG52YXIgaWdub3JlUHJldmlvdXNEZXBlbmRlbmNpZXMgPSBmYWxzZTtcblxuZnVuY3Rpb24gbW91bnRIb29rVHlwZXNEZXYoKSB7XG4gIHtcbiAgICB2YXIgaG9va05hbWUgPSBjdXJyZW50SG9va05hbWVJbkRldjtcblxuICAgIGlmIChob29rVHlwZXNEZXYgPT09IG51bGwpIHtcbiAgICAgIGhvb2tUeXBlc0RldiA9IFtob29rTmFtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGhvb2tUeXBlc0Rldi5wdXNoKGhvb2tOYW1lKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlSG9va1R5cGVzRGV2KCkge1xuICB7XG4gICAgdmFyIGhvb2tOYW1lID0gY3VycmVudEhvb2tOYW1lSW5EZXY7XG5cbiAgICBpZiAoaG9va1R5cGVzRGV2ICE9PSBudWxsKSB7XG4gICAgICBob29rVHlwZXNVcGRhdGVJbmRleERldisrO1xuXG4gICAgICBpZiAoaG9va1R5cGVzRGV2W2hvb2tUeXBlc1VwZGF0ZUluZGV4RGV2XSAhPT0gaG9va05hbWUpIHtcbiAgICAgICAgd2Fybk9uSG9va01pc21hdGNoSW5EZXYoaG9va05hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKSB7XG4gIHtcbiAgICBpZiAoZGVwcyAhPT0gdW5kZWZpbmVkICYmIGRlcHMgIT09IG51bGwgJiYgIWlzQXJyYXkoZGVwcykpIHtcbiAgICAgIC8vIFZlcmlmeSBkZXBzLCBidXQgb25seSBvbiBtb3VudCB0byBhdm9pZCBleHRyYSBjaGVja3MuXG4gICAgICAvLyBJdCdzIHVubGlrZWx5IHRoZWlyIHR5cGUgd291bGQgY2hhbmdlIGFzIHVzdWFsbHkgeW91IGRlZmluZSB0aGVtIGlubGluZS5cbiAgICAgIGVycm9yKCclcyByZWNlaXZlZCBhIGZpbmFsIGFyZ3VtZW50IHRoYXQgaXMgbm90IGFuIGFycmF5IChpbnN0ZWFkLCByZWNlaXZlZCBgJXNgKS4gV2hlbiAnICsgJ3NwZWNpZmllZCwgdGhlIGZpbmFsIGFyZ3VtZW50IG11c3QgYmUgYW4gYXJyYXkuJywgY3VycmVudEhvb2tOYW1lSW5EZXYsIHR5cGVvZiBkZXBzKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gd2Fybk9uSG9va01pc21hdGNoSW5EZXYoY3VycmVudEhvb2tOYW1lKSB7XG4gIHtcbiAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSk7XG5cbiAgICBpZiAoIWRpZFdhcm5BYm91dE1pc21hdGNoZWRIb29rc0ZvckNvbXBvbmVudC5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgIGRpZFdhcm5BYm91dE1pc21hdGNoZWRIb29rc0ZvckNvbXBvbmVudC5hZGQoY29tcG9uZW50TmFtZSk7XG5cbiAgICAgIGlmIChob29rVHlwZXNEZXYgIT09IG51bGwpIHtcbiAgICAgICAgdmFyIHRhYmxlID0gJyc7XG4gICAgICAgIHZhciBzZWNvbmRDb2x1bW5TdGFydCA9IDMwO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDw9IGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2OyBpKyspIHtcbiAgICAgICAgICB2YXIgb2xkSG9va05hbWUgPSBob29rVHlwZXNEZXZbaV07XG4gICAgICAgICAgdmFyIG5ld0hvb2tOYW1lID0gaSA9PT0gaG9va1R5cGVzVXBkYXRlSW5kZXhEZXYgPyBjdXJyZW50SG9va05hbWUgOiBvbGRIb29rTmFtZTtcbiAgICAgICAgICB2YXIgcm93ID0gaSArIDEgKyBcIi4gXCIgKyBvbGRIb29rTmFtZTsgLy8gRXh0cmEgc3BhY2Ugc28gc2Vjb25kIGNvbHVtbiBsaW5lcyB1cFxuICAgICAgICAgIC8vIGxvbCBAIElFIG5vdCBzdXBwb3J0aW5nIFN0cmluZyNyZXBlYXRcblxuICAgICAgICAgIHdoaWxlIChyb3cubGVuZ3RoIDwgc2Vjb25kQ29sdW1uU3RhcnQpIHtcbiAgICAgICAgICAgIHJvdyArPSAnICc7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcm93ICs9IG5ld0hvb2tOYW1lICsgJ1xcbic7XG4gICAgICAgICAgdGFibGUgKz0gcm93O1xuICAgICAgICB9XG5cbiAgICAgICAgZXJyb3IoJ1JlYWN0IGhhcyBkZXRlY3RlZCBhIGNoYW5nZSBpbiB0aGUgb3JkZXIgb2YgSG9va3MgY2FsbGVkIGJ5ICVzLiAnICsgJ1RoaXMgd2lsbCBsZWFkIHRvIGJ1Z3MgYW5kIGVycm9ycyBpZiBub3QgZml4ZWQuICcgKyAnRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWQgdGhlIFJ1bGVzIG9mIEhvb2tzOiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcnVsZXMtb2YtaG9va3NcXG5cXG4nICsgJyAgIFByZXZpb3VzIHJlbmRlciAgICAgICAgICAgIE5leHQgcmVuZGVyXFxuJyArICcgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4nICsgJyVzJyArICcgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cXG4nLCBjb21wb25lbnROYW1lLCB0YWJsZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRocm93SW52YWxpZEhvb2tFcnJvcigpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yJyArICcgb25lIG9mIHRoZSBmb2xsb3dpbmcgcmVhc29uczpcXG4nICsgJzEuIFlvdSBtaWdodCBoYXZlIG1pc21hdGNoaW5nIHZlcnNpb25zIG9mIFJlYWN0IGFuZCB0aGUgcmVuZGVyZXIgKHN1Y2ggYXMgUmVhY3QgRE9NKVxcbicgKyAnMi4gWW91IG1pZ2h0IGJlIGJyZWFraW5nIHRoZSBSdWxlcyBvZiBIb29rc1xcbicgKyAnMy4gWW91IG1pZ2h0IGhhdmUgbW9yZSB0aGFuIG9uZSBjb3B5IG9mIFJlYWN0IGluIHRoZSBzYW1lIGFwcFxcbicgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9pbnZhbGlkLWhvb2stY2FsbCBmb3IgdGlwcyBhYm91dCBob3cgdG8gZGVidWcgYW5kIGZpeCB0aGlzIHByb2JsZW0uJyk7XG59XG5cbmZ1bmN0aW9uIGFyZUhvb2tJbnB1dHNFcXVhbChuZXh0RGVwcywgcHJldkRlcHMpIHtcbiAge1xuICAgIGlmIChpZ25vcmVQcmV2aW91c0RlcGVuZGVuY2llcykge1xuICAgICAgLy8gT25seSB0cnVlIHdoZW4gdGhpcyBjb21wb25lbnQgaXMgYmVpbmcgaG90IHJlbG9hZGVkLlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChwcmV2RGVwcyA9PT0gbnVsbCkge1xuICAgIHtcbiAgICAgIGVycm9yKCclcyByZWNlaXZlZCBhIGZpbmFsIGFyZ3VtZW50IGR1cmluZyB0aGlzIHJlbmRlciwgYnV0IG5vdCBkdXJpbmcgJyArICd0aGUgcHJldmlvdXMgcmVuZGVyLiBFdmVuIHRob3VnaCB0aGUgZmluYWwgYXJndW1lbnQgaXMgb3B0aW9uYWwsICcgKyAnaXRzIHR5cGUgY2Fubm90IGNoYW5nZSBiZXR3ZWVuIHJlbmRlcnMuJywgY3VycmVudEhvb2tOYW1lSW5EZXYpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHtcbiAgICAvLyBEb24ndCBib3RoZXIgY29tcGFyaW5nIGxlbmd0aHMgaW4gcHJvZCBiZWNhdXNlIHRoZXNlIGFycmF5cyBzaG91bGQgYmVcbiAgICAvLyBwYXNzZWQgaW5saW5lLlxuICAgIGlmIChuZXh0RGVwcy5sZW5ndGggIT09IHByZXZEZXBzLmxlbmd0aCkge1xuICAgICAgZXJyb3IoJ1RoZSBmaW5hbCBhcmd1bWVudCBwYXNzZWQgdG8gJXMgY2hhbmdlZCBzaXplIGJldHdlZW4gcmVuZGVycy4gVGhlICcgKyAnb3JkZXIgYW5kIHNpemUgb2YgdGhpcyBhcnJheSBtdXN0IHJlbWFpbiBjb25zdGFudC5cXG5cXG4nICsgJ1ByZXZpb3VzOiAlc1xcbicgKyAnSW5jb21pbmc6ICVzJywgY3VycmVudEhvb2tOYW1lSW5EZXYsIFwiW1wiICsgcHJldkRlcHMuam9pbignLCAnKSArIFwiXVwiLCBcIltcIiArIG5leHREZXBzLmpvaW4oJywgJykgKyBcIl1cIik7XG4gICAgfVxuICB9XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcmV2RGVwcy5sZW5ndGggJiYgaSA8IG5leHREZXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKG9iamVjdElzKG5leHREZXBzW2ldLCBwcmV2RGVwc1tpXSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiByZW5kZXJXaXRoSG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcHJvcHMsIHNlY29uZEFyZywgbmV4dFJlbmRlckxhbmVzKSB7XG4gIHJlbmRlckxhbmVzID0gbmV4dFJlbmRlckxhbmVzO1xuICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxID0gd29ya0luUHJvZ3Jlc3M7XG5cbiAge1xuICAgIGhvb2tUeXBlc0RldiA9IGN1cnJlbnQgIT09IG51bGwgPyBjdXJyZW50Ll9kZWJ1Z0hvb2tUeXBlcyA6IG51bGw7XG4gICAgaG9va1R5cGVzVXBkYXRlSW5kZXhEZXYgPSAtMTsgLy8gVXNlZCBmb3IgaG90IHJlbG9hZGluZzpcblxuICAgIGlnbm9yZVByZXZpb3VzRGVwZW5kZW5jaWVzID0gY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50LnR5cGUgIT09IHdvcmtJblByb2dyZXNzLnR5cGU7XG4gIH1cblxuICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBudWxsO1xuICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IE5vTGFuZXM7IC8vIFRoZSBmb2xsb3dpbmcgc2hvdWxkIGhhdmUgYWxyZWFkeSBiZWVuIHJlc2V0XG4gIC8vIGN1cnJlbnRIb29rID0gbnVsbDtcbiAgLy8gd29ya0luUHJvZ3Jlc3NIb29rID0gbnVsbDtcbiAgLy8gZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSA9IGZhbHNlO1xuICAvLyBsb2NhbElkQ291bnRlciA9IDA7XG4gIC8vIFRPRE8gV2FybiBpZiBubyBob29rcyBhcmUgdXNlZCBhdCBhbGwgZHVyaW5nIG1vdW50LCB0aGVuIHNvbWUgYXJlIHVzZWQgZHVyaW5nIHVwZGF0ZS5cbiAgLy8gQ3VycmVudGx5IHdlIHdpbGwgaWRlbnRpZnkgdGhlIHVwZGF0ZSByZW5kZXIgYXMgYSBtb3VudCBiZWNhdXNlIG1lbW9pemVkU3RhdGUgPT09IG51bGwuXG4gIC8vIFRoaXMgaXMgdHJpY2t5IGJlY2F1c2UgaXQncyB2YWxpZCBmb3IgY2VydGFpbiB0eXBlcyBvZiBjb21wb25lbnRzIChlLmcuIFJlYWN0LmxhenkpXG4gIC8vIFVzaW5nIG1lbW9pemVkU3RhdGUgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIG1vdW50L3VwZGF0ZSBvbmx5IHdvcmtzIGlmIGF0IGxlYXN0IG9uZSBzdGF0ZWZ1bCBob29rIGlzIHVzZWQuXG4gIC8vIE5vbi1zdGF0ZWZ1bCBob29rcyAoZS5nLiBjb250ZXh0KSBkb24ndCBnZXQgYWRkZWQgdG8gbWVtb2l6ZWRTdGF0ZSxcbiAgLy8gc28gbWVtb2l6ZWRTdGF0ZSB3b3VsZCBiZSBudWxsIGR1cmluZyB1cGRhdGVzIGFuZCBtb3VudHMuXG5cbiAge1xuICAgIGlmIChjdXJyZW50ICE9PSBudWxsICYmIGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuICAgIH0gZWxzZSBpZiAoaG9va1R5cGVzRGV2ICE9PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIGRpc3BhdGNoZXIgaGFuZGxlcyBhbiBlZGdlIGNhc2Ugd2hlcmUgYSBjb21wb25lbnQgaXMgdXBkYXRpbmcsXG4gICAgICAvLyBidXQgbm8gc3RhdGVmdWwgaG9va3MgaGF2ZSBiZWVuIHVzZWQuXG4gICAgICAvLyBXZSB3YW50IHRvIG1hdGNoIHRoZSBwcm9kdWN0aW9uIGNvZGUgYmVoYXZpb3IgKHdoaWNoIHdpbGwgdXNlIEhvb2tzRGlzcGF0Y2hlck9uTW91bnQpLFxuICAgICAgLy8gYnV0IHdpdGggdGhlIGV4dHJhIERFViB2YWxpZGF0aW9uIHRvIGVuc3VyZSBob29rcyBvcmRlcmluZyBoYXNuJ3QgY2hhbmdlZC5cbiAgICAgIC8vIFRoaXMgZGlzcGF0Y2hlciBkb2VzIHRoYXQuXG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEhvb2tzRGlzcGF0Y2hlck9uTW91bnRXaXRoSG9va1R5cGVzSW5ERVY7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuICAgIH1cbiAgfVxuXG4gIHZhciBjaGlsZHJlbiA9IENvbXBvbmVudChwcm9wcywgc2Vjb25kQXJnKTsgLy8gQ2hlY2sgaWYgdGhlcmUgd2FzIGEgcmVuZGVyIHBoYXNlIHVwZGF0ZVxuXG4gIGlmIChkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MpIHtcbiAgICAvLyBLZWVwIHJlbmRlcmluZyBpbiBhIGxvb3AgZm9yIGFzIGxvbmcgYXMgcmVuZGVyIHBoYXNlIHVwZGF0ZXMgY29udGludWUgdG9cbiAgICAvLyBiZSBzY2hlZHVsZWQuIFVzZSBhIGNvdW50ZXIgdG8gcHJldmVudCBpbmZpbml0ZSBsb29wcy5cbiAgICB2YXIgbnVtYmVyT2ZSZVJlbmRlcnMgPSAwO1xuXG4gICAgZG8ge1xuICAgICAgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZUR1cmluZ1RoaXNQYXNzID0gZmFsc2U7XG4gICAgICBsb2NhbElkQ291bnRlciA9IDA7XG5cbiAgICAgIGlmIChudW1iZXJPZlJlUmVuZGVycyA+PSBSRV9SRU5ERVJfTElNSVQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUb28gbWFueSByZS1yZW5kZXJzLiBSZWFjdCBsaW1pdHMgdGhlIG51bWJlciBvZiByZW5kZXJzIHRvIHByZXZlbnQgJyArICdhbiBpbmZpbml0ZSBsb29wLicpO1xuICAgICAgfVxuXG4gICAgICBudW1iZXJPZlJlUmVuZGVycyArPSAxO1xuXG4gICAgICB7XG4gICAgICAgIC8vIEV2ZW4gd2hlbiBob3QgcmVsb2FkaW5nLCBhbGxvdyBkZXBlbmRlbmNpZXMgdG8gc3RhYmlsaXplXG4gICAgICAgIC8vIGFmdGVyIGZpcnN0IHJlbmRlciB0byBwcmV2ZW50IGluZmluaXRlIHJlbmRlciBwaGFzZSB1cGRhdGVzLlxuICAgICAgICBpZ25vcmVQcmV2aW91c0RlcGVuZGVuY2llcyA9IGZhbHNlO1xuICAgICAgfSAvLyBTdGFydCBvdmVyIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdFxuXG5cbiAgICAgIGN1cnJlbnRIb29rID0gbnVsbDtcbiAgICAgIHdvcmtJblByb2dyZXNzSG9vayA9IG51bGw7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IG51bGw7XG5cbiAgICAgIHtcbiAgICAgICAgLy8gQWxzbyB2YWxpZGF0ZSBob29rIG9yZGVyIGZvciBjYXNjYWRpbmcgdXBkYXRlcy5cbiAgICAgICAgaG9va1R5cGVzVXBkYXRlSW5kZXhEZXYgPSAtMTtcbiAgICAgIH1cblxuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSAgSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWIDtcbiAgICAgIGNoaWxkcmVuID0gQ29tcG9uZW50KHByb3BzLCBzZWNvbmRBcmcpO1xuICAgIH0gd2hpbGUgKGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcyk7XG4gIH0gLy8gV2UgY2FuIGFzc3VtZSB0aGUgcHJldmlvdXMgZGlzcGF0Y2hlciBpcyBhbHdheXMgdGhpcyBvbmUsIHNpbmNlIHdlIHNldCBpdFxuICAvLyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByZW5kZXIgcGhhc2UgYW5kIHRoZXJlJ3Mgbm8gcmUtZW50cmFuY2UuXG5cblxuICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IENvbnRleHRPbmx5RGlzcGF0Y2hlcjtcblxuICB7XG4gICAgd29ya0luUHJvZ3Jlc3MuX2RlYnVnSG9va1R5cGVzID0gaG9va1R5cGVzRGV2O1xuICB9IC8vIFRoaXMgY2hlY2sgdXNlcyBjdXJyZW50SG9vayBzbyB0aGF0IGl0IHdvcmtzIHRoZSBzYW1lIGluIERFViBhbmQgcHJvZCBidW5kbGVzLlxuICAvLyBob29rVHlwZXNEZXYgY291bGQgY2F0Y2ggbW9yZSBjYXNlcyAoZS5nLiBjb250ZXh0KSBidXQgb25seSBpbiBERVYgYnVuZGxlcy5cblxuXG4gIHZhciBkaWRSZW5kZXJUb29GZXdIb29rcyA9IGN1cnJlbnRIb29rICE9PSBudWxsICYmIGN1cnJlbnRIb29rLm5leHQgIT09IG51bGw7XG4gIHJlbmRlckxhbmVzID0gTm9MYW5lcztcbiAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSA9IG51bGw7XG4gIGN1cnJlbnRIb29rID0gbnVsbDtcbiAgd29ya0luUHJvZ3Jlc3NIb29rID0gbnVsbDtcblxuICB7XG4gICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBudWxsO1xuICAgIGhvb2tUeXBlc0RldiA9IG51bGw7XG4gICAgaG9va1R5cGVzVXBkYXRlSW5kZXhEZXYgPSAtMTsgLy8gQ29uZmlybSB0aGF0IGEgc3RhdGljIGZsYWcgd2FzIG5vdCBhZGRlZCBvciByZW1vdmVkIHNpbmNlIHRoZSBsYXN0XG4gICAgLy8gcmVuZGVyLiBJZiB0aGlzIGZpcmVzLCBpdCBzdWdnZXN0cyB0aGF0IHdlIGluY29ycmVjdGx5IHJlc2V0IHRoZSBzdGF0aWNcbiAgICAvLyBmbGFncyBpbiBzb21lIG90aGVyIHBhcnQgb2YgdGhlIGNvZGViYXNlLiBUaGlzIGhhcyBoYXBwZW5lZCBiZWZvcmUsIGZvclxuICAgIC8vIGV4YW1wbGUsIGluIHRoZSBTdXNwZW5zZUxpc3QgaW1wbGVtZW50YXRpb24uXG5cbiAgICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiAoY3VycmVudC5mbGFncyAmIFN0YXRpY01hc2spICE9PSAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiBTdGF0aWNNYXNrKSAmJiAvLyBEaXNhYmxlIHRoaXMgd2FybmluZyBpbiBsZWdhY3kgbW9kZSwgYmVjYXVzZSBsZWdhY3kgU3VzcGVuc2UgaXMgd2VpcmRcbiAgICAvLyBhbmQgY3JlYXRlcyBmYWxzZSBwb3NpdGl2ZXMuIFRvIG1ha2UgdGhpcyB3b3JrIGluIGxlZ2FjeSBtb2RlLCB3ZSdkXG4gICAgLy8gbmVlZCB0byBtYXJrIGZpYmVycyB0aGF0IGNvbW1pdCBpbiBhbiBpbmNvbXBsZXRlIHN0YXRlLCBzb21laG93LiBGb3JcbiAgICAvLyBub3cgSSdsbCBkaXNhYmxlIHRoZSB3YXJuaW5nIHRoYXQgbW9zdCBvZiB0aGUgYnVncyB0aGF0IHdvdWxkIHRyaWdnZXJcbiAgICAvLyBpdCBhcmUgZWl0aGVyIGV4Y2x1c2l2ZSB0byBjb25jdXJyZW50IG1vZGUgb3IgZXhpc3QgaW4gYm90aC5cbiAgICAoY3VycmVudC5tb2RlICYgQ29uY3VycmVudE1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgIGVycm9yKCdJbnRlcm5hbCBSZWFjdCBlcnJvcjogRXhwZWN0ZWQgc3RhdGljIGZsYWcgd2FzIG1pc3NpbmcuIFBsZWFzZSAnICsgJ25vdGlmeSB0aGUgUmVhY3QgdGVhbS4nKTtcbiAgICB9XG4gIH1cblxuICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlID0gZmFsc2U7IC8vIFRoaXMgaXMgcmVzZXQgYnkgY2hlY2tEaWRSZW5kZXJJZEhvb2tcbiAgLy8gbG9jYWxJZENvdW50ZXIgPSAwO1xuXG4gIGlmIChkaWRSZW5kZXJUb29GZXdIb29rcykge1xuICAgIHRocm93IG5ldyBFcnJvcignUmVuZGVyZWQgZmV3ZXIgaG9va3MgdGhhbiBleHBlY3RlZC4gVGhpcyBtYXkgYmUgY2F1c2VkIGJ5IGFuIGFjY2lkZW50YWwgJyArICdlYXJseSByZXR1cm4gc3RhdGVtZW50LicpO1xuICB9XG5cbiAgcmV0dXJuIGNoaWxkcmVuO1xufVxuZnVuY3Rpb24gY2hlY2tEaWRSZW5kZXJJZEhvb2soKSB7XG4gIC8vIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBpbW1lZGlhdGVseSBhZnRlciBldmVyeSByZW5kZXJXaXRoSG9va3MgY2FsbC5cbiAgLy8gQ29uY2VwdHVhbGx5LCBpdCdzIHBhcnQgb2YgdGhlIHJldHVybiB2YWx1ZSBvZiByZW5kZXJXaXRoSG9va3M7IGl0J3Mgb25seSBhXG4gIC8vIHNlcGFyYXRlIGZ1bmN0aW9uIHRvIGF2b2lkIHVzaW5nIGFuIGFycmF5IHR1cGxlLlxuICB2YXIgZGlkUmVuZGVySWRIb29rID0gbG9jYWxJZENvdW50ZXIgIT09IDA7XG4gIGxvY2FsSWRDb3VudGVyID0gMDtcbiAgcmV0dXJuIGRpZFJlbmRlcklkSG9vaztcbn1cbmZ1bmN0aW9uIGJhaWxvdXRIb29rcyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbGFuZXMpIHtcbiAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlOyAvLyBUT0RPOiBEb24ndCBuZWVkIHRvIHJlc2V0IHRoZSBmbGFncyBoZXJlLCBiZWNhdXNlIHRoZXkncmUgcmVzZXQgaW4gdGhlXG4gIC8vIGNvbXBsZXRlIHBoYXNlIChidWJibGVQcm9wZXJ0aWVzKS5cblxuICBpZiAoICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUpIHtcbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyAmPSB+KE1vdW50UGFzc2l2ZURldiB8IE1vdW50TGF5b3V0RGV2IHwgUGFzc2l2ZSB8IFVwZGF0ZSk7XG4gIH0gZWxzZSB7XG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gfihQYXNzaXZlIHwgVXBkYXRlKTtcbiAgfVxuXG4gIGN1cnJlbnQubGFuZXMgPSByZW1vdmVMYW5lcyhjdXJyZW50LmxhbmVzLCBsYW5lcyk7XG59XG5mdW5jdGlvbiByZXNldEhvb2tzQWZ0ZXJUaHJvdygpIHtcbiAgLy8gV2UgY2FuIGFzc3VtZSB0aGUgcHJldmlvdXMgZGlzcGF0Y2hlciBpcyBhbHdheXMgdGhpcyBvbmUsIHNpbmNlIHdlIHNldCBpdFxuICAvLyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByZW5kZXIgcGhhc2UgYW5kIHRoZXJlJ3Mgbm8gcmUtZW50cmFuY2UuXG4gIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gQ29udGV4dE9ubHlEaXNwYXRjaGVyO1xuXG4gIGlmIChkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlKSB7XG4gICAgLy8gVGhlcmUgd2VyZSByZW5kZXIgcGhhc2UgdXBkYXRlcy4gVGhlc2UgYXJlIG9ubHkgdmFsaWQgZm9yIHRoaXMgcmVuZGVyXG4gICAgLy8gcGhhc2UsIHdoaWNoIHdlIGFyZSBub3cgYWJvcnRpbmcuIFJlbW92ZSB0aGUgdXBkYXRlcyBmcm9tIHRoZSBxdWV1ZXMgc29cbiAgICAvLyB0aGV5IGRvIG5vdCBwZXJzaXN0IHRvIHRoZSBuZXh0IHJlbmRlci4gRG8gbm90IHJlbW92ZSB1cGRhdGVzIGZyb20gaG9va3NcbiAgICAvLyB0aGF0IHdlcmVuJ3QgcHJvY2Vzc2VkLlxuICAgIC8vXG4gICAgLy8gT25seSByZXNldCB0aGUgdXBkYXRlcyBmcm9tIHRoZSBxdWV1ZSBpZiBpdCBoYXMgYSBjbG9uZS4gSWYgaXQgZG9lc1xuICAgIC8vIG5vdCBoYXZlIGEgY2xvbmUsIHRoYXQgbWVhbnMgaXQgd2Fzbid0IHByb2Nlc3NlZCwgYW5kIHRoZSB1cGRhdGVzIHdlcmVcbiAgICAvLyBzY2hlZHVsZWQgYmVmb3JlIHdlIGVudGVyZWQgdGhlIHJlbmRlciBwaGFzZS5cbiAgICB2YXIgaG9vayA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEubWVtb2l6ZWRTdGF0ZTtcblxuICAgIHdoaWxlIChob29rICE9PSBudWxsKSB7XG4gICAgICB2YXIgcXVldWUgPSBob29rLnF1ZXVlO1xuXG4gICAgICBpZiAocXVldWUgIT09IG51bGwpIHtcbiAgICAgICAgcXVldWUucGVuZGluZyA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIGhvb2sgPSBob29rLm5leHQ7XG4gICAgfVxuXG4gICAgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSA9IGZhbHNlO1xuICB9XG5cbiAgcmVuZGVyTGFuZXMgPSBOb0xhbmVzO1xuICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxID0gbnVsbDtcbiAgY3VycmVudEhvb2sgPSBudWxsO1xuICB3b3JrSW5Qcm9ncmVzc0hvb2sgPSBudWxsO1xuXG4gIHtcbiAgICBob29rVHlwZXNEZXYgPSBudWxsO1xuICAgIGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID0gLTE7XG4gICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBudWxsO1xuICAgIGlzVXBkYXRpbmdPcGFxdWVWYWx1ZUluUmVuZGVyUGhhc2UgPSBmYWxzZTtcbiAgfVxuXG4gIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcyA9IGZhbHNlO1xuICBsb2NhbElkQ291bnRlciA9IDA7XG59XG5cbmZ1bmN0aW9uIG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCkge1xuICB2YXIgaG9vayA9IHtcbiAgICBtZW1vaXplZFN0YXRlOiBudWxsLFxuICAgIGJhc2VTdGF0ZTogbnVsbCxcbiAgICBiYXNlUXVldWU6IG51bGwsXG4gICAgcXVldWU6IG51bGwsXG4gICAgbmV4dDogbnVsbFxuICB9O1xuXG4gIGlmICh3b3JrSW5Qcm9ncmVzc0hvb2sgPT09IG51bGwpIHtcbiAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCBob29rIGluIHRoZSBsaXN0XG4gICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5tZW1vaXplZFN0YXRlID0gd29ya0luUHJvZ3Jlc3NIb29rID0gaG9vaztcbiAgfSBlbHNlIHtcbiAgICAvLyBBcHBlbmQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdFxuICAgIHdvcmtJblByb2dyZXNzSG9vayA9IHdvcmtJblByb2dyZXNzSG9vay5uZXh0ID0gaG9vaztcbiAgfVxuXG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzc0hvb2s7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpIHtcbiAgLy8gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGJvdGggZm9yIHVwZGF0ZXMgYW5kIGZvciByZS1yZW5kZXJzIHRyaWdnZXJlZCBieSBhXG4gIC8vIHJlbmRlciBwaGFzZSB1cGRhdGUuIEl0IGFzc3VtZXMgdGhlcmUgaXMgZWl0aGVyIGEgY3VycmVudCBob29rIHdlIGNhblxuICAvLyBjbG9uZSwgb3IgYSB3b3JrLWluLXByb2dyZXNzIGhvb2sgZnJvbSBhIHByZXZpb3VzIHJlbmRlciBwYXNzIHRoYXQgd2UgY2FuXG4gIC8vIHVzZSBhcyBhIGJhc2UuIFdoZW4gd2UgcmVhY2ggdGhlIGVuZCBvZiB0aGUgYmFzZSBsaXN0LCB3ZSBtdXN0IHN3aXRjaCB0b1xuICAvLyB0aGUgZGlzcGF0Y2hlciB1c2VkIGZvciBtb3VudHMuXG4gIHZhciBuZXh0Q3VycmVudEhvb2s7XG5cbiAgaWYgKGN1cnJlbnRIb29rID09PSBudWxsKSB7XG4gICAgdmFyIGN1cnJlbnQgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmFsdGVybmF0ZTtcblxuICAgIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICBuZXh0Q3VycmVudEhvb2sgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRDdXJyZW50SG9vayA9IG51bGw7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG5leHRDdXJyZW50SG9vayA9IGN1cnJlbnRIb29rLm5leHQ7XG4gIH1cblxuICB2YXIgbmV4dFdvcmtJblByb2dyZXNzSG9vaztcblxuICBpZiAod29ya0luUHJvZ3Jlc3NIb29rID09PSBudWxsKSB7XG4gICAgbmV4dFdvcmtJblByb2dyZXNzSG9vayA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEubWVtb2l6ZWRTdGF0ZTtcbiAgfSBlbHNlIHtcbiAgICBuZXh0V29ya0luUHJvZ3Jlc3NIb29rID0gd29ya0luUHJvZ3Jlc3NIb29rLm5leHQ7XG4gIH1cblxuICBpZiAobmV4dFdvcmtJblByb2dyZXNzSG9vayAhPT0gbnVsbCkge1xuICAgIC8vIFRoZXJlJ3MgYWxyZWFkeSBhIHdvcmstaW4tcHJvZ3Jlc3MuIFJldXNlIGl0LlxuICAgIHdvcmtJblByb2dyZXNzSG9vayA9IG5leHRXb3JrSW5Qcm9ncmVzc0hvb2s7XG4gICAgbmV4dFdvcmtJblByb2dyZXNzSG9vayA9IHdvcmtJblByb2dyZXNzSG9vay5uZXh0O1xuICAgIGN1cnJlbnRIb29rID0gbmV4dEN1cnJlbnRIb29rO1xuICB9IGVsc2Uge1xuICAgIC8vIENsb25lIGZyb20gdGhlIGN1cnJlbnQgaG9vay5cbiAgICBpZiAobmV4dEN1cnJlbnRIb29rID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlbmRlcmVkIG1vcmUgaG9va3MgdGhhbiBkdXJpbmcgdGhlIHByZXZpb3VzIHJlbmRlci4nKTtcbiAgICB9XG5cbiAgICBjdXJyZW50SG9vayA9IG5leHRDdXJyZW50SG9vaztcbiAgICB2YXIgbmV3SG9vayA9IHtcbiAgICAgIG1lbW9pemVkU3RhdGU6IGN1cnJlbnRIb29rLm1lbW9pemVkU3RhdGUsXG4gICAgICBiYXNlU3RhdGU6IGN1cnJlbnRIb29rLmJhc2VTdGF0ZSxcbiAgICAgIGJhc2VRdWV1ZTogY3VycmVudEhvb2suYmFzZVF1ZXVlLFxuICAgICAgcXVldWU6IGN1cnJlbnRIb29rLnF1ZXVlLFxuICAgICAgbmV4dDogbnVsbFxuICAgIH07XG5cbiAgICBpZiAod29ya0luUHJvZ3Jlc3NIb29rID09PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCBob29rIGluIHRoZSBsaXN0LlxuICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5tZW1vaXplZFN0YXRlID0gd29ya0luUHJvZ3Jlc3NIb29rID0gbmV3SG9vaztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQXBwZW5kIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuXG4gICAgICB3b3JrSW5Qcm9ncmVzc0hvb2sgPSB3b3JrSW5Qcm9ncmVzc0hvb2submV4dCA9IG5ld0hvb2s7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzSG9vaztcbn1cblxuZnVuY3Rpb24gY3JlYXRlRnVuY3Rpb25Db21wb25lbnRVcGRhdGVRdWV1ZSgpIHtcbiAgcmV0dXJuIHtcbiAgICBsYXN0RWZmZWN0OiBudWxsLFxuICAgIHN0b3JlczogbnVsbFxuICB9O1xufVxuXG5mdW5jdGlvbiBiYXNpY1N0YXRlUmVkdWNlcihzdGF0ZSwgYWN0aW9uKSB7XG4gIC8vICRGbG93Rml4TWU6IEZsb3cgZG9lc24ndCBsaWtlIG1peGVkIHR5cGVzXG4gIHJldHVybiB0eXBlb2YgYWN0aW9uID09PSAnZnVuY3Rpb24nID8gYWN0aW9uKHN0YXRlKSA6IGFjdGlvbjtcbn1cblxuZnVuY3Rpb24gbW91bnRSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgaW5pdGlhbFN0YXRlO1xuXG4gIGlmIChpbml0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBpbml0aWFsU3RhdGUgPSBpbml0KGluaXRpYWxBcmcpO1xuICB9IGVsc2Uge1xuICAgIGluaXRpYWxTdGF0ZSA9IGluaXRpYWxBcmc7XG4gIH1cblxuICBob29rLm1lbW9pemVkU3RhdGUgPSBob29rLmJhc2VTdGF0ZSA9IGluaXRpYWxTdGF0ZTtcbiAgdmFyIHF1ZXVlID0ge1xuICAgIHBlbmRpbmc6IG51bGwsXG4gICAgaW50ZXJsZWF2ZWQ6IG51bGwsXG4gICAgbGFuZXM6IE5vTGFuZXMsXG4gICAgZGlzcGF0Y2g6IG51bGwsXG4gICAgbGFzdFJlbmRlcmVkUmVkdWNlcjogcmVkdWNlcixcbiAgICBsYXN0UmVuZGVyZWRTdGF0ZTogaW5pdGlhbFN0YXRlXG4gIH07XG4gIGhvb2sucXVldWUgPSBxdWV1ZTtcbiAgdmFyIGRpc3BhdGNoID0gcXVldWUuZGlzcGF0Y2ggPSBkaXNwYXRjaFJlZHVjZXJBY3Rpb24uYmluZChudWxsLCBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLCBxdWV1ZSk7XG4gIHJldHVybiBbaG9vay5tZW1vaXplZFN0YXRlLCBkaXNwYXRjaF07XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgcXVldWUgPSBob29rLnF1ZXVlO1xuXG4gIGlmIChxdWV1ZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIGhhdmUgYSBxdWV1ZS4gVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICB9XG5cbiAgcXVldWUubGFzdFJlbmRlcmVkUmVkdWNlciA9IHJlZHVjZXI7XG4gIHZhciBjdXJyZW50ID0gY3VycmVudEhvb2s7IC8vIFRoZSBsYXN0IHJlYmFzZSB1cGRhdGUgdGhhdCBpcyBOT1QgcGFydCBvZiB0aGUgYmFzZSBzdGF0ZS5cblxuICB2YXIgYmFzZVF1ZXVlID0gY3VycmVudC5iYXNlUXVldWU7IC8vIFRoZSBsYXN0IHBlbmRpbmcgdXBkYXRlIHRoYXQgaGFzbid0IGJlZW4gcHJvY2Vzc2VkIHlldC5cblxuICB2YXIgcGVuZGluZ1F1ZXVlID0gcXVldWUucGVuZGluZztcblxuICBpZiAocGVuZGluZ1F1ZXVlICE9PSBudWxsKSB7XG4gICAgLy8gV2UgaGF2ZSBuZXcgdXBkYXRlcyB0aGF0IGhhdmVuJ3QgYmVlbiBwcm9jZXNzZWQgeWV0LlxuICAgIC8vIFdlJ2xsIGFkZCB0aGVtIHRvIHRoZSBiYXNlIHF1ZXVlLlxuICAgIGlmIChiYXNlUXVldWUgIT09IG51bGwpIHtcbiAgICAgIC8vIE1lcmdlIHRoZSBwZW5kaW5nIHF1ZXVlIGFuZCB0aGUgYmFzZSBxdWV1ZS5cbiAgICAgIHZhciBiYXNlRmlyc3QgPSBiYXNlUXVldWUubmV4dDtcbiAgICAgIHZhciBwZW5kaW5nRmlyc3QgPSBwZW5kaW5nUXVldWUubmV4dDtcbiAgICAgIGJhc2VRdWV1ZS5uZXh0ID0gcGVuZGluZ0ZpcnN0O1xuICAgICAgcGVuZGluZ1F1ZXVlLm5leHQgPSBiYXNlRmlyc3Q7XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKGN1cnJlbnQuYmFzZVF1ZXVlICE9PSBiYXNlUXVldWUpIHtcbiAgICAgICAgLy8gSW50ZXJuYWwgaW52YXJpYW50IHRoYXQgc2hvdWxkIG5ldmVyIGhhcHBlbiwgYnV0IGZlYXNpYmx5IGNvdWxkIGluXG4gICAgICAgIC8vIHRoZSBmdXR1cmUgaWYgd2UgaW1wbGVtZW50IHJlc3VtaW5nLCBvciBzb21lIGZvcm0gb2YgdGhhdC5cbiAgICAgICAgZXJyb3IoJ0ludGVybmFsIGVycm9yOiBFeHBlY3RlZCB3b3JrLWluLXByb2dyZXNzIHF1ZXVlIHRvIGJlIGEgY2xvbmUuICcgKyAnVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjdXJyZW50LmJhc2VRdWV1ZSA9IGJhc2VRdWV1ZSA9IHBlbmRpbmdRdWV1ZTtcbiAgICBxdWV1ZS5wZW5kaW5nID0gbnVsbDtcbiAgfVxuXG4gIGlmIChiYXNlUXVldWUgIT09IG51bGwpIHtcbiAgICAvLyBXZSBoYXZlIGEgcXVldWUgdG8gcHJvY2Vzcy5cbiAgICB2YXIgZmlyc3QgPSBiYXNlUXVldWUubmV4dDtcbiAgICB2YXIgbmV3U3RhdGUgPSBjdXJyZW50LmJhc2VTdGF0ZTtcbiAgICB2YXIgbmV3QmFzZVN0YXRlID0gbnVsbDtcbiAgICB2YXIgbmV3QmFzZVF1ZXVlRmlyc3QgPSBudWxsO1xuICAgIHZhciBuZXdCYXNlUXVldWVMYXN0ID0gbnVsbDtcbiAgICB2YXIgdXBkYXRlID0gZmlyc3Q7XG5cbiAgICBkbyB7XG4gICAgICB2YXIgdXBkYXRlTGFuZSA9IHVwZGF0ZS5sYW5lO1xuXG4gICAgICBpZiAoIWlzU3Vic2V0T2ZMYW5lcyhyZW5kZXJMYW5lcywgdXBkYXRlTGFuZSkpIHtcbiAgICAgICAgLy8gUHJpb3JpdHkgaXMgaW5zdWZmaWNpZW50LiBTa2lwIHRoaXMgdXBkYXRlLiBJZiB0aGlzIGlzIHRoZSBmaXJzdFxuICAgICAgICAvLyBza2lwcGVkIHVwZGF0ZSwgdGhlIHByZXZpb3VzIHVwZGF0ZS9zdGF0ZSBpcyB0aGUgbmV3IGJhc2VcbiAgICAgICAgLy8gdXBkYXRlL3N0YXRlLlxuICAgICAgICB2YXIgY2xvbmUgPSB7XG4gICAgICAgICAgbGFuZTogdXBkYXRlTGFuZSxcbiAgICAgICAgICBhY3Rpb246IHVwZGF0ZS5hY3Rpb24sXG4gICAgICAgICAgaGFzRWFnZXJTdGF0ZTogdXBkYXRlLmhhc0VhZ2VyU3RhdGUsXG4gICAgICAgICAgZWFnZXJTdGF0ZTogdXBkYXRlLmVhZ2VyU3RhdGUsXG4gICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChuZXdCYXNlUXVldWVMYXN0ID09PSBudWxsKSB7XG4gICAgICAgICAgbmV3QmFzZVF1ZXVlRmlyc3QgPSBuZXdCYXNlUXVldWVMYXN0ID0gY2xvbmU7XG4gICAgICAgICAgbmV3QmFzZVN0YXRlID0gbmV3U3RhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3QmFzZVF1ZXVlTGFzdCA9IG5ld0Jhc2VRdWV1ZUxhc3QubmV4dCA9IGNsb25lO1xuICAgICAgICB9IC8vIFVwZGF0ZSB0aGUgcmVtYWluaW5nIHByaW9yaXR5IGluIHRoZSBxdWV1ZS5cbiAgICAgICAgLy8gVE9ETzogRG9uJ3QgbmVlZCB0byBhY2N1bXVsYXRlIHRoaXMuIEluc3RlYWQsIHdlIGNhbiByZW1vdmVcbiAgICAgICAgLy8gcmVuZGVyTGFuZXMgZnJvbSB0aGUgb3JpZ2luYWwgbGFuZXMuXG5cblxuICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmxhbmVzID0gbWVyZ2VMYW5lcyhjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmxhbmVzLCB1cGRhdGVMYW5lKTtcbiAgICAgICAgbWFya1NraXBwZWRVcGRhdGVMYW5lcyh1cGRhdGVMYW5lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgdXBkYXRlIGRvZXMgaGF2ZSBzdWZmaWNpZW50IHByaW9yaXR5LlxuICAgICAgICBpZiAobmV3QmFzZVF1ZXVlTGFzdCAhPT0gbnVsbCkge1xuICAgICAgICAgIHZhciBfY2xvbmUgPSB7XG4gICAgICAgICAgICAvLyBUaGlzIHVwZGF0ZSBpcyBnb2luZyB0byBiZSBjb21taXR0ZWQgc28gd2UgbmV2ZXIgd2FudCB1bmNvbW1pdFxuICAgICAgICAgICAgLy8gaXQuIFVzaW5nIE5vTGFuZSB3b3JrcyBiZWNhdXNlIDAgaXMgYSBzdWJzZXQgb2YgYWxsIGJpdG1hc2tzLCBzb1xuICAgICAgICAgICAgLy8gdGhpcyB3aWxsIG5ldmVyIGJlIHNraXBwZWQgYnkgdGhlIGNoZWNrIGFib3ZlLlxuICAgICAgICAgICAgbGFuZTogTm9MYW5lLFxuICAgICAgICAgICAgYWN0aW9uOiB1cGRhdGUuYWN0aW9uLFxuICAgICAgICAgICAgaGFzRWFnZXJTdGF0ZTogdXBkYXRlLmhhc0VhZ2VyU3RhdGUsXG4gICAgICAgICAgICBlYWdlclN0YXRlOiB1cGRhdGUuZWFnZXJTdGF0ZSxcbiAgICAgICAgICAgIG5leHQ6IG51bGxcbiAgICAgICAgICB9O1xuICAgICAgICAgIG5ld0Jhc2VRdWV1ZUxhc3QgPSBuZXdCYXNlUXVldWVMYXN0Lm5leHQgPSBfY2xvbmU7XG4gICAgICAgIH0gLy8gUHJvY2VzcyB0aGlzIHVwZGF0ZS5cblxuXG4gICAgICAgIGlmICh1cGRhdGUuaGFzRWFnZXJTdGF0ZSkge1xuICAgICAgICAgIC8vIElmIHRoaXMgdXBkYXRlIGlzIGEgc3RhdGUgdXBkYXRlIChub3QgYSByZWR1Y2VyKSBhbmQgd2FzIHByb2Nlc3NlZCBlYWdlcmx5LFxuICAgICAgICAgIC8vIHdlIGNhbiB1c2UgdGhlIGVhZ2VybHkgY29tcHV0ZWQgc3RhdGVcbiAgICAgICAgICBuZXdTdGF0ZSA9IHVwZGF0ZS5lYWdlclN0YXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBhY3Rpb24gPSB1cGRhdGUuYWN0aW9uO1xuICAgICAgICAgIG5ld1N0YXRlID0gcmVkdWNlcihuZXdTdGF0ZSwgYWN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB1cGRhdGUgPSB1cGRhdGUubmV4dDtcbiAgICB9IHdoaWxlICh1cGRhdGUgIT09IG51bGwgJiYgdXBkYXRlICE9PSBmaXJzdCk7XG5cbiAgICBpZiAobmV3QmFzZVF1ZXVlTGFzdCA9PT0gbnVsbCkge1xuICAgICAgbmV3QmFzZVN0YXRlID0gbmV3U3RhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0Jhc2VRdWV1ZUxhc3QubmV4dCA9IG5ld0Jhc2VRdWV1ZUZpcnN0O1xuICAgIH0gLy8gTWFyayB0aGF0IHRoZSBmaWJlciBwZXJmb3JtZWQgd29yaywgYnV0IG9ubHkgaWYgdGhlIG5ldyBzdGF0ZSBpc1xuICAgIC8vIGRpZmZlcmVudCBmcm9tIHRoZSBjdXJyZW50IHN0YXRlLlxuXG5cbiAgICBpZiAoIW9iamVjdElzKG5ld1N0YXRlLCBob29rLm1lbW9pemVkU3RhdGUpKSB7XG4gICAgICBtYXJrV29ya0luUHJvZ3Jlc3NSZWNlaXZlZFVwZGF0ZSgpO1xuICAgIH1cblxuICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlO1xuICAgIGhvb2suYmFzZVN0YXRlID0gbmV3QmFzZVN0YXRlO1xuICAgIGhvb2suYmFzZVF1ZXVlID0gbmV3QmFzZVF1ZXVlTGFzdDtcbiAgICBxdWV1ZS5sYXN0UmVuZGVyZWRTdGF0ZSA9IG5ld1N0YXRlO1xuICB9IC8vIEludGVybGVhdmVkIHVwZGF0ZXMgYXJlIHN0b3JlZCBvbiBhIHNlcGFyYXRlIHF1ZXVlLiBXZSBhcmVuJ3QgZ29pbmcgdG9cbiAgLy8gcHJvY2VzcyB0aGVtIGR1cmluZyB0aGlzIHJlbmRlciwgYnV0IHdlIGRvIG5lZWQgdG8gdHJhY2sgd2hpY2ggbGFuZXNcbiAgLy8gYXJlIHJlbWFpbmluZy5cblxuXG4gIHZhciBsYXN0SW50ZXJsZWF2ZWQgPSBxdWV1ZS5pbnRlcmxlYXZlZDtcblxuICBpZiAobGFzdEludGVybGVhdmVkICE9PSBudWxsKSB7XG4gICAgdmFyIGludGVybGVhdmVkID0gbGFzdEludGVybGVhdmVkO1xuXG4gICAgZG8ge1xuICAgICAgdmFyIGludGVybGVhdmVkTGFuZSA9IGludGVybGVhdmVkLmxhbmU7XG4gICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmxhbmVzID0gbWVyZ2VMYW5lcyhjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmxhbmVzLCBpbnRlcmxlYXZlZExhbmUpO1xuICAgICAgbWFya1NraXBwZWRVcGRhdGVMYW5lcyhpbnRlcmxlYXZlZExhbmUpO1xuICAgICAgaW50ZXJsZWF2ZWQgPSBpbnRlcmxlYXZlZC5uZXh0O1xuICAgIH0gd2hpbGUgKGludGVybGVhdmVkICE9PSBsYXN0SW50ZXJsZWF2ZWQpO1xuICB9IGVsc2UgaWYgKGJhc2VRdWV1ZSA9PT0gbnVsbCkge1xuICAgIC8vIGBxdWV1ZS5sYW5lc2AgaXMgdXNlZCBmb3IgZW50YW5nbGluZyB0cmFuc2l0aW9ucy4gV2UgY2FuIHNldCBpdCBiYWNrIHRvXG4gICAgLy8gemVybyBvbmNlIHRoZSBxdWV1ZSBpcyBlbXB0eS5cbiAgICBxdWV1ZS5sYW5lcyA9IE5vTGFuZXM7XG4gIH1cblxuICB2YXIgZGlzcGF0Y2ggPSBxdWV1ZS5kaXNwYXRjaDtcbiAgcmV0dXJuIFtob29rLm1lbW9pemVkU3RhdGUsIGRpc3BhdGNoXTtcbn1cblxuZnVuY3Rpb24gcmVyZW5kZXJSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIHF1ZXVlID0gaG9vay5xdWV1ZTtcblxuICBpZiAocXVldWUgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBoYXZlIGEgcXVldWUuIFRoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgfVxuXG4gIHF1ZXVlLmxhc3RSZW5kZXJlZFJlZHVjZXIgPSByZWR1Y2VyOyAvLyBUaGlzIGlzIGEgcmUtcmVuZGVyLiBBcHBseSB0aGUgbmV3IHJlbmRlciBwaGFzZSB1cGRhdGVzIHRvIHRoZSBwcmV2aW91c1xuICAvLyB3b3JrLWluLXByb2dyZXNzIGhvb2suXG5cbiAgdmFyIGRpc3BhdGNoID0gcXVldWUuZGlzcGF0Y2g7XG4gIHZhciBsYXN0UmVuZGVyUGhhc2VVcGRhdGUgPSBxdWV1ZS5wZW5kaW5nO1xuICB2YXIgbmV3U3RhdGUgPSBob29rLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKGxhc3RSZW5kZXJQaGFzZVVwZGF0ZSAhPT0gbnVsbCkge1xuICAgIC8vIFRoZSBxdWV1ZSBkb2Vzbid0IHBlcnNpc3QgcGFzdCB0aGlzIHJlbmRlciBwYXNzLlxuICAgIHF1ZXVlLnBlbmRpbmcgPSBudWxsO1xuICAgIHZhciBmaXJzdFJlbmRlclBoYXNlVXBkYXRlID0gbGFzdFJlbmRlclBoYXNlVXBkYXRlLm5leHQ7XG4gICAgdmFyIHVwZGF0ZSA9IGZpcnN0UmVuZGVyUGhhc2VVcGRhdGU7XG5cbiAgICBkbyB7XG4gICAgICAvLyBQcm9jZXNzIHRoaXMgcmVuZGVyIHBoYXNlIHVwZGF0ZS4gV2UgZG9uJ3QgaGF2ZSB0byBjaGVjayB0aGVcbiAgICAgIC8vIHByaW9yaXR5IGJlY2F1c2UgaXQgd2lsbCBhbHdheXMgYmUgdGhlIHNhbWUgYXMgdGhlIGN1cnJlbnRcbiAgICAgIC8vIHJlbmRlcidzLlxuICAgICAgdmFyIGFjdGlvbiA9IHVwZGF0ZS5hY3Rpb247XG4gICAgICBuZXdTdGF0ZSA9IHJlZHVjZXIobmV3U3RhdGUsIGFjdGlvbik7XG4gICAgICB1cGRhdGUgPSB1cGRhdGUubmV4dDtcbiAgICB9IHdoaWxlICh1cGRhdGUgIT09IGZpcnN0UmVuZGVyUGhhc2VVcGRhdGUpOyAvLyBNYXJrIHRoYXQgdGhlIGZpYmVyIHBlcmZvcm1lZCB3b3JrLCBidXQgb25seSBpZiB0aGUgbmV3IHN0YXRlIGlzXG4gICAgLy8gZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQgc3RhdGUuXG5cblxuICAgIGlmICghb2JqZWN0SXMobmV3U3RhdGUsIGhvb2subWVtb2l6ZWRTdGF0ZSkpIHtcbiAgICAgIG1hcmtXb3JrSW5Qcm9ncmVzc1JlY2VpdmVkVXBkYXRlKCk7XG4gICAgfVxuXG4gICAgaG9vay5tZW1vaXplZFN0YXRlID0gbmV3U3RhdGU7IC8vIERvbid0IHBlcnNpc3QgdGhlIHN0YXRlIGFjY3VtdWxhdGVkIGZyb20gdGhlIHJlbmRlciBwaGFzZSB1cGRhdGVzIHRvXG4gICAgLy8gdGhlIGJhc2Ugc3RhdGUgdW5sZXNzIHRoZSBxdWV1ZSBpcyBlbXB0eS5cbiAgICAvLyBUT0RPOiBOb3Qgc3VyZSBpZiB0aGlzIGlzIHRoZSBkZXNpcmVkIHNlbWFudGljcywgYnV0IGl0J3Mgd2hhdCB3ZVxuICAgIC8vIGRvIGZvciBnRFNGUC4gSSBjYW4ndCByZW1lbWJlciB3aHkuXG5cbiAgICBpZiAoaG9vay5iYXNlUXVldWUgPT09IG51bGwpIHtcbiAgICAgIGhvb2suYmFzZVN0YXRlID0gbmV3U3RhdGU7XG4gICAgfVxuXG4gICAgcXVldWUubGFzdFJlbmRlcmVkU3RhdGUgPSBuZXdTdGF0ZTtcbiAgfVxuXG4gIHJldHVybiBbbmV3U3RhdGUsIGRpc3BhdGNoXTtcbn1cblxuZnVuY3Rpb24gbW91bnRNdXRhYmxlU291cmNlKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVNdXRhYmxlU291cmNlKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtb3VudFN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgZ2V0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KSB7XG4gIHZhciBmaWJlciA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDE7XG4gIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIG5leHRTbmFwc2hvdDtcbiAgdmFyIGlzSHlkcmF0aW5nID0gZ2V0SXNIeWRyYXRpbmcoKTtcblxuICBpZiAoaXNIeWRyYXRpbmcpIHtcbiAgICBpZiAoZ2V0U2VydmVyU25hcHNob3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGdldFNlcnZlclNuYXBzaG90LCB3aGljaCBpcyByZXF1aXJlZCBmb3IgJyArICdzZXJ2ZXItcmVuZGVyZWQgY29udGVudC4gV2lsbCByZXZlcnQgdG8gY2xpZW50IHJlbmRlcmluZy4nKTtcbiAgICB9XG5cbiAgICBuZXh0U25hcHNob3QgPSBnZXRTZXJ2ZXJTbmFwc2hvdCgpO1xuXG4gICAge1xuICAgICAgaWYgKCFkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCkge1xuICAgICAgICBpZiAobmV4dFNuYXBzaG90ICE9PSBnZXRTZXJ2ZXJTbmFwc2hvdCgpKSB7XG4gICAgICAgICAgZXJyb3IoJ1RoZSByZXN1bHQgb2YgZ2V0U2VydmVyU25hcHNob3Qgc2hvdWxkIGJlIGNhY2hlZCB0byBhdm9pZCBhbiBpbmZpbml0ZSBsb29wJyk7XG5cbiAgICAgICAgICBkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbmV4dFNuYXBzaG90ID0gZ2V0U25hcHNob3QoKTtcblxuICAgIHtcbiAgICAgIGlmICghZGlkV2FyblVuY2FjaGVkR2V0U25hcHNob3QpIHtcbiAgICAgICAgdmFyIGNhY2hlZFNuYXBzaG90ID0gZ2V0U25hcHNob3QoKTtcblxuICAgICAgICBpZiAoIW9iamVjdElzKG5leHRTbmFwc2hvdCwgY2FjaGVkU25hcHNob3QpKSB7XG4gICAgICAgICAgZXJyb3IoJ1RoZSByZXN1bHQgb2YgZ2V0U25hcHNob3Qgc2hvdWxkIGJlIGNhY2hlZCB0byBhdm9pZCBhbiBpbmZpbml0ZSBsb29wJyk7XG5cbiAgICAgICAgICBkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IC8vIFVubGVzcyB3ZSdyZSByZW5kZXJpbmcgYSBibG9ja2luZyBsYW5lLCBzY2hlZHVsZSBhIGNvbnNpc3RlbmN5IGNoZWNrLlxuICAgIC8vIFJpZ2h0IGJlZm9yZSBjb21taXR0aW5nLCB3ZSB3aWxsIHdhbGsgdGhlIHRyZWUgYW5kIGNoZWNrIGlmIGFueSBvZiB0aGVcbiAgICAvLyBzdG9yZXMgd2VyZSBtdXRhdGVkLlxuICAgIC8vXG4gICAgLy8gV2Ugd29uJ3QgZG8gdGhpcyBpZiB3ZSdyZSBoeWRyYXRpbmcgc2VydmVyLXJlbmRlcmVkIGNvbnRlbnQsIGJlY2F1c2UgaWZcbiAgICAvLyB0aGUgY29udGVudCBpcyBzdGFsZSwgaXQncyBhbHJlYWR5IHZpc2libGUgYW55d2F5LiBJbnN0ZWFkIHdlJ2xsIHBhdGNoXG4gICAgLy8gaXQgdXAgaW4gYSBwYXNzaXZlIGVmZmVjdC5cblxuXG4gICAgdmFyIHJvb3QgPSBnZXRXb3JrSW5Qcm9ncmVzc1Jvb3QoKTtcblxuICAgIGlmIChyb290ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGEgd29yay1pbi1wcm9ncmVzcyByb290LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoIWluY2x1ZGVzQmxvY2tpbmdMYW5lKHJvb3QsIHJlbmRlckxhbmVzKSkge1xuICAgICAgcHVzaFN0b3JlQ29uc2lzdGVuY3lDaGVjayhmaWJlciwgZ2V0U25hcHNob3QsIG5leHRTbmFwc2hvdCk7XG4gICAgfVxuICB9IC8vIFJlYWQgdGhlIGN1cnJlbnQgc25hcHNob3QgZnJvbSB0aGUgc3RvcmUgb24gZXZlcnkgcmVuZGVyLiBUaGlzIGJyZWFrcyB0aGVcbiAgLy8gbm9ybWFsIHJ1bGVzIG9mIFJlYWN0LCBhbmQgb25seSB3b3JrcyBiZWNhdXNlIHN0b3JlIHVwZGF0ZXMgYXJlXG4gIC8vIGFsd2F5cyBzeW5jaHJvbm91cy5cblxuXG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IG5leHRTbmFwc2hvdDtcbiAgdmFyIGluc3QgPSB7XG4gICAgdmFsdWU6IG5leHRTbmFwc2hvdCxcbiAgICBnZXRTbmFwc2hvdDogZ2V0U25hcHNob3RcbiAgfTtcbiAgaG9vay5xdWV1ZSA9IGluc3Q7IC8vIFNjaGVkdWxlIGFuIGVmZmVjdCB0byBzdWJzY3JpYmUgdG8gdGhlIHN0b3JlLlxuXG4gIG1vdW50RWZmZWN0KHN1YnNjcmliZVRvU3RvcmUuYmluZChudWxsLCBmaWJlciwgaW5zdCwgc3Vic2NyaWJlKSwgW3N1YnNjcmliZV0pOyAvLyBTY2hlZHVsZSBhbiBlZmZlY3QgdG8gdXBkYXRlIHRoZSBtdXRhYmxlIGluc3RhbmNlIGZpZWxkcy4gV2Ugd2lsbCB1cGRhdGVcbiAgLy8gdGhpcyB3aGVuZXZlciBzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBvciB2YWx1ZSBjaGFuZ2VzLiBCZWNhdXNlIHRoZXJlJ3Mgbm9cbiAgLy8gY2xlYW4tdXAgZnVuY3Rpb24sIGFuZCB3ZSB0cmFjayB0aGUgZGVwcyBjb3JyZWN0bHksIHdlIGNhbiBjYWxsIHB1c2hFZmZlY3RcbiAgLy8gZGlyZWN0bHksIHdpdGhvdXQgc3RvcmluZyBhbnkgYWRkaXRpb25hbCBzdGF0ZS4gRm9yIHRoZSBzYW1lIHJlYXNvbiwgd2VcbiAgLy8gZG9uJ3QgbmVlZCB0byBzZXQgYSBzdGF0aWMgZmxhZywgZWl0aGVyLlxuICAvLyBUT0RPOiBXZSBjYW4gbW92ZSB0aGlzIHRvIHRoZSBwYXNzaXZlIHBoYXNlIG9uY2Ugd2UgYWRkIGEgcHJlLWNvbW1pdFxuICAvLyBjb25zaXN0ZW5jeSBjaGVjay4gU2VlIHRoZSBuZXh0IGNvbW1lbnQuXG5cbiAgZmliZXIuZmxhZ3MgfD0gUGFzc2l2ZTtcbiAgcHVzaEVmZmVjdChIYXNFZmZlY3QgfCBQYXNzaXZlJDEsIHVwZGF0ZVN0b3JlSW5zdGFuY2UuYmluZChudWxsLCBmaWJlciwgaW5zdCwgbmV4dFNuYXBzaG90LCBnZXRTbmFwc2hvdCksIHVuZGVmaW5lZCwgbnVsbCk7XG4gIHJldHVybiBuZXh0U25hcHNob3Q7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgZ2V0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KSB7XG4gIHZhciBmaWJlciA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDE7XG4gIHZhciBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7IC8vIFJlYWQgdGhlIGN1cnJlbnQgc25hcHNob3QgZnJvbSB0aGUgc3RvcmUgb24gZXZlcnkgcmVuZGVyLiBUaGlzIGJyZWFrcyB0aGVcbiAgLy8gbm9ybWFsIHJ1bGVzIG9mIFJlYWN0LCBhbmQgb25seSB3b3JrcyBiZWNhdXNlIHN0b3JlIHVwZGF0ZXMgYXJlXG4gIC8vIGFsd2F5cyBzeW5jaHJvbm91cy5cblxuICB2YXIgbmV4dFNuYXBzaG90ID0gZ2V0U25hcHNob3QoKTtcblxuICB7XG4gICAgaWYgKCFkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCkge1xuICAgICAgdmFyIGNhY2hlZFNuYXBzaG90ID0gZ2V0U25hcHNob3QoKTtcblxuICAgICAgaWYgKCFvYmplY3RJcyhuZXh0U25hcHNob3QsIGNhY2hlZFNuYXBzaG90KSkge1xuICAgICAgICBlcnJvcignVGhlIHJlc3VsdCBvZiBnZXRTbmFwc2hvdCBzaG91bGQgYmUgY2FjaGVkIHRvIGF2b2lkIGFuIGluZmluaXRlIGxvb3AnKTtcblxuICAgICAgICBkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIHByZXZTbmFwc2hvdCA9IGhvb2subWVtb2l6ZWRTdGF0ZTtcbiAgdmFyIHNuYXBzaG90Q2hhbmdlZCA9ICFvYmplY3RJcyhwcmV2U25hcHNob3QsIG5leHRTbmFwc2hvdCk7XG5cbiAgaWYgKHNuYXBzaG90Q2hhbmdlZCkge1xuICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IG5leHRTbmFwc2hvdDtcbiAgICBtYXJrV29ya0luUHJvZ3Jlc3NSZWNlaXZlZFVwZGF0ZSgpO1xuICB9XG5cbiAgdmFyIGluc3QgPSBob29rLnF1ZXVlO1xuICB1cGRhdGVFZmZlY3Qoc3Vic2NyaWJlVG9TdG9yZS5iaW5kKG51bGwsIGZpYmVyLCBpbnN0LCBzdWJzY3JpYmUpLCBbc3Vic2NyaWJlXSk7IC8vIFdoZW5ldmVyIGdldFNuYXBzaG90IG9yIHN1YnNjcmliZSBjaGFuZ2VzLCB3ZSBuZWVkIHRvIGNoZWNrIGluIHRoZVxuICAvLyBjb21taXQgcGhhc2UgaWYgdGhlcmUgd2FzIGFuIGludGVybGVhdmVkIG11dGF0aW9uLiBJbiBjb25jdXJyZW50IG1vZGVcbiAgLy8gdGhpcyBjYW4gaGFwcGVuIGFsbCB0aGUgdGltZSwgYnV0IGV2ZW4gaW4gc3luY2hyb25vdXMgbW9kZSwgYW4gZWFybGllclxuICAvLyBlZmZlY3QgbWF5IGhhdmUgbXV0YXRlZCB0aGUgc3RvcmUuXG5cbiAgaWYgKGluc3QuZ2V0U25hcHNob3QgIT09IGdldFNuYXBzaG90IHx8IHNuYXBzaG90Q2hhbmdlZCB8fCAvLyBDaGVjayBpZiB0aGUgc3VzYmNyaWJlIGZ1bmN0aW9uIGNoYW5nZWQuIFdlIGNhbiBzYXZlIHNvbWUgbWVtb3J5IGJ5XG4gIC8vIGNoZWNraW5nIHdoZXRoZXIgd2Ugc2NoZWR1bGVkIGEgc3Vic2NyaXB0aW9uIGVmZmVjdCBhYm92ZS5cbiAgd29ya0luUHJvZ3Jlc3NIb29rICE9PSBudWxsICYmIHdvcmtJblByb2dyZXNzSG9vay5tZW1vaXplZFN0YXRlLnRhZyAmIEhhc0VmZmVjdCkge1xuICAgIGZpYmVyLmZsYWdzIHw9IFBhc3NpdmU7XG4gICAgcHVzaEVmZmVjdChIYXNFZmZlY3QgfCBQYXNzaXZlJDEsIHVwZGF0ZVN0b3JlSW5zdGFuY2UuYmluZChudWxsLCBmaWJlciwgaW5zdCwgbmV4dFNuYXBzaG90LCBnZXRTbmFwc2hvdCksIHVuZGVmaW5lZCwgbnVsbCk7IC8vIFVubGVzcyB3ZSdyZSByZW5kZXJpbmcgYSBibG9ja2luZyBsYW5lLCBzY2hlZHVsZSBhIGNvbnNpc3RlbmN5IGNoZWNrLlxuICAgIC8vIFJpZ2h0IGJlZm9yZSBjb21taXR0aW5nLCB3ZSB3aWxsIHdhbGsgdGhlIHRyZWUgYW5kIGNoZWNrIGlmIGFueSBvZiB0aGVcbiAgICAvLyBzdG9yZXMgd2VyZSBtdXRhdGVkLlxuXG4gICAgdmFyIHJvb3QgPSBnZXRXb3JrSW5Qcm9ncmVzc1Jvb3QoKTtcblxuICAgIGlmIChyb290ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGEgd29yay1pbi1wcm9ncmVzcyByb290LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoIWluY2x1ZGVzQmxvY2tpbmdMYW5lKHJvb3QsIHJlbmRlckxhbmVzKSkge1xuICAgICAgcHVzaFN0b3JlQ29uc2lzdGVuY3lDaGVjayhmaWJlciwgZ2V0U25hcHNob3QsIG5leHRTbmFwc2hvdCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5leHRTbmFwc2hvdDtcbn1cblxuZnVuY3Rpb24gcHVzaFN0b3JlQ29uc2lzdGVuY3lDaGVjayhmaWJlciwgZ2V0U25hcHNob3QsIHJlbmRlcmVkU25hcHNob3QpIHtcbiAgZmliZXIuZmxhZ3MgfD0gU3RvcmVDb25zaXN0ZW5jeTtcbiAgdmFyIGNoZWNrID0ge1xuICAgIGdldFNuYXBzaG90OiBnZXRTbmFwc2hvdCxcbiAgICB2YWx1ZTogcmVuZGVyZWRTbmFwc2hvdFxuICB9O1xuICB2YXIgY29tcG9uZW50VXBkYXRlUXVldWUgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLnVwZGF0ZVF1ZXVlO1xuXG4gIGlmIChjb21wb25lbnRVcGRhdGVRdWV1ZSA9PT0gbnVsbCkge1xuICAgIGNvbXBvbmVudFVwZGF0ZVF1ZXVlID0gY3JlYXRlRnVuY3Rpb25Db21wb25lbnRVcGRhdGVRdWV1ZSgpO1xuICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEudXBkYXRlUXVldWUgPSBjb21wb25lbnRVcGRhdGVRdWV1ZTtcbiAgICBjb21wb25lbnRVcGRhdGVRdWV1ZS5zdG9yZXMgPSBbY2hlY2tdO1xuICB9IGVsc2Uge1xuICAgIHZhciBzdG9yZXMgPSBjb21wb25lbnRVcGRhdGVRdWV1ZS5zdG9yZXM7XG5cbiAgICBpZiAoc3RvcmVzID09PSBudWxsKSB7XG4gICAgICBjb21wb25lbnRVcGRhdGVRdWV1ZS5zdG9yZXMgPSBbY2hlY2tdO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9yZXMucHVzaChjaGVjayk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVN0b3JlSW5zdGFuY2UoZmliZXIsIGluc3QsIG5leHRTbmFwc2hvdCwgZ2V0U25hcHNob3QpIHtcbiAgLy8gVGhlc2UgYXJlIHVwZGF0ZWQgaW4gdGhlIHBhc3NpdmUgcGhhc2VcbiAgaW5zdC52YWx1ZSA9IG5leHRTbmFwc2hvdDtcbiAgaW5zdC5nZXRTbmFwc2hvdCA9IGdldFNuYXBzaG90OyAvLyBTb21ldGhpbmcgbWF5IGhhdmUgYmVlbiBtdXRhdGVkIGluIGJldHdlZW4gcmVuZGVyIGFuZCBjb21taXQuIFRoaXMgY291bGRcbiAgLy8gaGF2ZSBiZWVuIGluIGFuIGV2ZW50IHRoYXQgZmlyZWQgYmVmb3JlIHRoZSBwYXNzaXZlIGVmZmVjdHMsIG9yIGl0IGNvdWxkXG4gIC8vIGhhdmUgYmVlbiBpbiBhIGxheW91dCBlZmZlY3QuIEluIHRoYXQgY2FzZSwgd2Ugd291bGQgaGF2ZSB1c2VkIHRoZSBvbGRcbiAgLy8gc25hcHNobyBhbmQgZ2V0U25hcHNob3QgdmFsdWVzIHRvIGJhaWwgb3V0LiBXZSBuZWVkIHRvIGNoZWNrIG9uZSBtb3JlIHRpbWUuXG5cbiAgaWYgKGNoZWNrSWZTbmFwc2hvdENoYW5nZWQoaW5zdCkpIHtcbiAgICAvLyBGb3JjZSBhIHJlLXJlbmRlci5cbiAgICBmb3JjZVN0b3JlUmVyZW5kZXIoZmliZXIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN1YnNjcmliZVRvU3RvcmUoZmliZXIsIGluc3QsIHN1YnNjcmliZSkge1xuICB2YXIgaGFuZGxlU3RvcmVDaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgLy8gVGhlIHN0b3JlIGNoYW5nZWQuIENoZWNrIGlmIHRoZSBzbmFwc2hvdCBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0IHRpbWUgd2VcbiAgICAvLyByZWFkIGZyb20gdGhlIHN0b3JlLlxuICAgIGlmIChjaGVja0lmU25hcHNob3RDaGFuZ2VkKGluc3QpKSB7XG4gICAgICAvLyBGb3JjZSBhIHJlLXJlbmRlci5cbiAgICAgIGZvcmNlU3RvcmVSZXJlbmRlcihmaWJlcik7XG4gICAgfVxuICB9OyAvLyBTdWJzY3JpYmUgdG8gdGhlIHN0b3JlIGFuZCByZXR1cm4gYSBjbGVhbi11cCBmdW5jdGlvbi5cblxuXG4gIHJldHVybiBzdWJzY3JpYmUoaGFuZGxlU3RvcmVDaGFuZ2UpO1xufVxuXG5mdW5jdGlvbiBjaGVja0lmU25hcHNob3RDaGFuZ2VkKGluc3QpIHtcbiAgdmFyIGxhdGVzdEdldFNuYXBzaG90ID0gaW5zdC5nZXRTbmFwc2hvdDtcbiAgdmFyIHByZXZWYWx1ZSA9IGluc3QudmFsdWU7XG5cbiAgdHJ5IHtcbiAgICB2YXIgbmV4dFZhbHVlID0gbGF0ZXN0R2V0U25hcHNob3QoKTtcbiAgICByZXR1cm4gIW9iamVjdElzKHByZXZWYWx1ZSwgbmV4dFZhbHVlKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmb3JjZVN0b3JlUmVyZW5kZXIoZmliZXIpIHtcbiAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBTeW5jTGFuZSwgTm9UaW1lc3RhbXApO1xufVxuXG5mdW5jdGlvbiBtb3VudFN0YXRlKGluaXRpYWxTdGF0ZSkge1xuICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG5cbiAgaWYgKHR5cGVvZiBpbml0aWFsU3RhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyAkRmxvd0ZpeE1lOiBGbG93IGRvZXNuJ3QgbGlrZSBtaXhlZCB0eXBlc1xuICAgIGluaXRpYWxTdGF0ZSA9IGluaXRpYWxTdGF0ZSgpO1xuICB9XG5cbiAgaG9vay5tZW1vaXplZFN0YXRlID0gaG9vay5iYXNlU3RhdGUgPSBpbml0aWFsU3RhdGU7XG4gIHZhciBxdWV1ZSA9IHtcbiAgICBwZW5kaW5nOiBudWxsLFxuICAgIGludGVybGVhdmVkOiBudWxsLFxuICAgIGxhbmVzOiBOb0xhbmVzLFxuICAgIGRpc3BhdGNoOiBudWxsLFxuICAgIGxhc3RSZW5kZXJlZFJlZHVjZXI6IGJhc2ljU3RhdGVSZWR1Y2VyLFxuICAgIGxhc3RSZW5kZXJlZFN0YXRlOiBpbml0aWFsU3RhdGVcbiAgfTtcbiAgaG9vay5xdWV1ZSA9IHF1ZXVlO1xuICB2YXIgZGlzcGF0Y2ggPSBxdWV1ZS5kaXNwYXRjaCA9IGRpc3BhdGNoU2V0U3RhdGUuYmluZChudWxsLCBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLCBxdWV1ZSk7XG4gIHJldHVybiBbaG9vay5tZW1vaXplZFN0YXRlLCBkaXNwYXRjaF07XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVN0YXRlKGluaXRpYWxTdGF0ZSkge1xuICByZXR1cm4gdXBkYXRlUmVkdWNlcihiYXNpY1N0YXRlUmVkdWNlcik7XG59XG5cbmZ1bmN0aW9uIHJlcmVuZGVyU3RhdGUoaW5pdGlhbFN0YXRlKSB7XG4gIHJldHVybiByZXJlbmRlclJlZHVjZXIoYmFzaWNTdGF0ZVJlZHVjZXIpO1xufVxuXG5mdW5jdGlvbiBwdXNoRWZmZWN0KHRhZywgY3JlYXRlLCBkZXN0cm95LCBkZXBzKSB7XG4gIHZhciBlZmZlY3QgPSB7XG4gICAgdGFnOiB0YWcsXG4gICAgY3JlYXRlOiBjcmVhdGUsXG4gICAgZGVzdHJveTogZGVzdHJveSxcbiAgICBkZXBzOiBkZXBzLFxuICAgIC8vIENpcmN1bGFyXG4gICAgbmV4dDogbnVsbFxuICB9O1xuICB2YXIgY29tcG9uZW50VXBkYXRlUXVldWUgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLnVwZGF0ZVF1ZXVlO1xuXG4gIGlmIChjb21wb25lbnRVcGRhdGVRdWV1ZSA9PT0gbnVsbCkge1xuICAgIGNvbXBvbmVudFVwZGF0ZVF1ZXVlID0gY3JlYXRlRnVuY3Rpb25Db21wb25lbnRVcGRhdGVRdWV1ZSgpO1xuICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEudXBkYXRlUXVldWUgPSBjb21wb25lbnRVcGRhdGVRdWV1ZTtcbiAgICBjb21wb25lbnRVcGRhdGVRdWV1ZS5sYXN0RWZmZWN0ID0gZWZmZWN0Lm5leHQgPSBlZmZlY3Q7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGxhc3RFZmZlY3QgPSBjb21wb25lbnRVcGRhdGVRdWV1ZS5sYXN0RWZmZWN0O1xuXG4gICAgaWYgKGxhc3RFZmZlY3QgPT09IG51bGwpIHtcbiAgICAgIGNvbXBvbmVudFVwZGF0ZVF1ZXVlLmxhc3RFZmZlY3QgPSBlZmZlY3QubmV4dCA9IGVmZmVjdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGZpcnN0RWZmZWN0ID0gbGFzdEVmZmVjdC5uZXh0O1xuICAgICAgbGFzdEVmZmVjdC5uZXh0ID0gZWZmZWN0O1xuICAgICAgZWZmZWN0Lm5leHQgPSBmaXJzdEVmZmVjdDtcbiAgICAgIGNvbXBvbmVudFVwZGF0ZVF1ZXVlLmxhc3RFZmZlY3QgPSBlZmZlY3Q7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVmZmVjdDtcbn1cblxuZnVuY3Rpb24gbW91bnRSZWYoaW5pdGlhbFZhbHVlKSB7XG4gIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcblxuICB7XG4gICAgdmFyIF9yZWYyID0ge1xuICAgICAgY3VycmVudDogaW5pdGlhbFZhbHVlXG4gICAgfTtcbiAgICBob29rLm1lbW9pemVkU3RhdGUgPSBfcmVmMjtcbiAgICByZXR1cm4gX3JlZjI7XG4gIH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlUmVmKGluaXRpYWxWYWx1ZSkge1xuICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICByZXR1cm4gaG9vay5tZW1vaXplZFN0YXRlO1xufVxuXG5mdW5jdGlvbiBtb3VudEVmZmVjdEltcGwoZmliZXJGbGFncywgaG9va0ZsYWdzLCBjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgbmV4dERlcHMgPSBkZXBzID09PSB1bmRlZmluZWQgPyBudWxsIDogZGVwcztcbiAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5mbGFncyB8PSBmaWJlckZsYWdzO1xuICBob29rLm1lbW9pemVkU3RhdGUgPSBwdXNoRWZmZWN0KEhhc0VmZmVjdCB8IGhvb2tGbGFncywgY3JlYXRlLCB1bmRlZmluZWQsIG5leHREZXBzKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlRWZmZWN0SW1wbChmaWJlckZsYWdzLCBob29rRmxhZ3MsIGNyZWF0ZSwgZGVwcykge1xuICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgbmV4dERlcHMgPSBkZXBzID09PSB1bmRlZmluZWQgPyBudWxsIDogZGVwcztcbiAgdmFyIGRlc3Ryb3kgPSB1bmRlZmluZWQ7XG5cbiAgaWYgKGN1cnJlbnRIb29rICE9PSBudWxsKSB7XG4gICAgdmFyIHByZXZFZmZlY3QgPSBjdXJyZW50SG9vay5tZW1vaXplZFN0YXRlO1xuICAgIGRlc3Ryb3kgPSBwcmV2RWZmZWN0LmRlc3Ryb3k7XG5cbiAgICBpZiAobmV4dERlcHMgIT09IG51bGwpIHtcbiAgICAgIHZhciBwcmV2RGVwcyA9IHByZXZFZmZlY3QuZGVwcztcblxuICAgICAgaWYgKGFyZUhvb2tJbnB1dHNFcXVhbChuZXh0RGVwcywgcHJldkRlcHMpKSB7XG4gICAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IHB1c2hFZmZlY3QoaG9va0ZsYWdzLCBjcmVhdGUsIGRlc3Ryb3ksIG5leHREZXBzKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEuZmxhZ3MgfD0gZmliZXJGbGFncztcbiAgaG9vay5tZW1vaXplZFN0YXRlID0gcHVzaEVmZmVjdChIYXNFZmZlY3QgfCBob29rRmxhZ3MsIGNyZWF0ZSwgZGVzdHJveSwgbmV4dERlcHMpO1xufVxuXG5mdW5jdGlvbiBtb3VudEVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgaWYgKCAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUpIHtcbiAgICByZXR1cm4gbW91bnRFZmZlY3RJbXBsKE1vdW50UGFzc2l2ZURldiB8IFBhc3NpdmUgfCBQYXNzaXZlU3RhdGljLCBQYXNzaXZlJDEsIGNyZWF0ZSwgZGVwcyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG1vdW50RWZmZWN0SW1wbChQYXNzaXZlIHwgUGFzc2l2ZVN0YXRpYywgUGFzc2l2ZSQxLCBjcmVhdGUsIGRlcHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoUGFzc2l2ZSwgUGFzc2l2ZSQxLCBjcmVhdGUsIGRlcHMpO1xufVxuXG5mdW5jdGlvbiBtb3VudEluc2VydGlvbkVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgcmV0dXJuIG1vdW50RWZmZWN0SW1wbChVcGRhdGUsIEluc2VydGlvbiwgY3JlYXRlLCBkZXBzKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlSW5zZXJ0aW9uRWZmZWN0KGNyZWF0ZSwgZGVwcykge1xuICByZXR1cm4gdXBkYXRlRWZmZWN0SW1wbChVcGRhdGUsIEluc2VydGlvbiwgY3JlYXRlLCBkZXBzKTtcbn1cblxuZnVuY3Rpb24gbW91bnRMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBmaWJlckZsYWdzID0gVXBkYXRlO1xuXG4gIHtcbiAgICBmaWJlckZsYWdzIHw9IExheW91dFN0YXRpYztcbiAgfVxuXG4gIGlmICggKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEubW9kZSAmIFN0cmljdEVmZmVjdHNNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgZmliZXJGbGFncyB8PSBNb3VudExheW91dERldjtcbiAgfVxuXG4gIHJldHVybiBtb3VudEVmZmVjdEltcGwoZmliZXJGbGFncywgTGF5b3V0LCBjcmVhdGUsIGRlcHMpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHJldHVybiB1cGRhdGVFZmZlY3RJbXBsKFVwZGF0ZSwgTGF5b3V0LCBjcmVhdGUsIGRlcHMpO1xufVxuXG5mdW5jdGlvbiBpbXBlcmF0aXZlSGFuZGxlRWZmZWN0KGNyZWF0ZSwgcmVmKSB7XG4gIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdmFyIHJlZkNhbGxiYWNrID0gcmVmO1xuXG4gICAgdmFyIF9pbnN0ID0gY3JlYXRlKCk7XG5cbiAgICByZWZDYWxsYmFjayhfaW5zdCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlZkNhbGxiYWNrKG51bGwpO1xuICAgIH07XG4gIH0gZWxzZSBpZiAocmVmICE9PSBudWxsICYmIHJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIHJlZk9iamVjdCA9IHJlZjtcblxuICAgIHtcbiAgICAgIGlmICghcmVmT2JqZWN0Lmhhc093blByb3BlcnR5KCdjdXJyZW50JykpIHtcbiAgICAgICAgZXJyb3IoJ0V4cGVjdGVkIHVzZUltcGVyYXRpdmVIYW5kbGUoKSBmaXJzdCBhcmd1bWVudCB0byBlaXRoZXIgYmUgYSAnICsgJ3JlZiBjYWxsYmFjayBvciBSZWFjdC5jcmVhdGVSZWYoKSBvYmplY3QuIEluc3RlYWQgcmVjZWl2ZWQ6ICVzLicsICdhbiBvYmplY3Qgd2l0aCBrZXlzIHsnICsgT2JqZWN0LmtleXMocmVmT2JqZWN0KS5qb2luKCcsICcpICsgJ30nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgX2luc3QyID0gY3JlYXRlKCk7XG5cbiAgICByZWZPYmplY3QuY3VycmVudCA9IF9pbnN0MjtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgcmVmT2JqZWN0LmN1cnJlbnQgPSBudWxsO1xuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91bnRJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGNyZWF0ZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJ0V4cGVjdGVkIHVzZUltcGVyYXRpdmVIYW5kbGUoKSBzZWNvbmQgYXJndW1lbnQgdG8gYmUgYSBmdW5jdGlvbiAnICsgJ3RoYXQgY3JlYXRlcyBhIGhhbmRsZS4gSW5zdGVhZCByZWNlaXZlZDogJXMuJywgY3JlYXRlICE9PSBudWxsID8gdHlwZW9mIGNyZWF0ZSA6ICdudWxsJyk7XG4gICAgfVxuICB9IC8vIFRPRE86IElmIGRlcHMgYXJlIHByb3ZpZGVkLCBzaG91bGQgd2Ugc2tpcCBjb21wYXJpbmcgdGhlIHJlZiBpdHNlbGY/XG5cblxuICB2YXIgZWZmZWN0RGVwcyA9IGRlcHMgIT09IG51bGwgJiYgZGVwcyAhPT0gdW5kZWZpbmVkID8gZGVwcy5jb25jYXQoW3JlZl0pIDogbnVsbDtcbiAgdmFyIGZpYmVyRmxhZ3MgPSBVcGRhdGU7XG5cbiAge1xuICAgIGZpYmVyRmxhZ3MgfD0gTGF5b3V0U3RhdGljO1xuICB9XG5cbiAgaWYgKCAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUpIHtcbiAgICBmaWJlckZsYWdzIHw9IE1vdW50TGF5b3V0RGV2O1xuICB9XG5cbiAgcmV0dXJuIG1vdW50RWZmZWN0SW1wbChmaWJlckZsYWdzLCBMYXlvdXQsIGltcGVyYXRpdmVIYW5kbGVFZmZlY3QuYmluZChudWxsLCBjcmVhdGUsIHJlZiksIGVmZmVjdERlcHMpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGNyZWF0ZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJ0V4cGVjdGVkIHVzZUltcGVyYXRpdmVIYW5kbGUoKSBzZWNvbmQgYXJndW1lbnQgdG8gYmUgYSBmdW5jdGlvbiAnICsgJ3RoYXQgY3JlYXRlcyBhIGhhbmRsZS4gSW5zdGVhZCByZWNlaXZlZDogJXMuJywgY3JlYXRlICE9PSBudWxsID8gdHlwZW9mIGNyZWF0ZSA6ICdudWxsJyk7XG4gICAgfVxuICB9IC8vIFRPRE86IElmIGRlcHMgYXJlIHByb3ZpZGVkLCBzaG91bGQgd2Ugc2tpcCBjb21wYXJpbmcgdGhlIHJlZiBpdHNlbGY/XG5cblxuICB2YXIgZWZmZWN0RGVwcyA9IGRlcHMgIT09IG51bGwgJiYgZGVwcyAhPT0gdW5kZWZpbmVkID8gZGVwcy5jb25jYXQoW3JlZl0pIDogbnVsbDtcbiAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoVXBkYXRlLCBMYXlvdXQsIGltcGVyYXRpdmVIYW5kbGVFZmZlY3QuYmluZChudWxsLCBjcmVhdGUsIHJlZiksIGVmZmVjdERlcHMpO1xufVxuXG5mdW5jdGlvbiBtb3VudERlYnVnVmFsdWUodmFsdWUsIGZvcm1hdHRlckZuKSB7Ly8gVGhpcyBob29rIGlzIG5vcm1hbGx5IGEgbm8tb3AuXG4gIC8vIFRoZSByZWFjdC1kZWJ1Zy1ob29rcyBwYWNrYWdlIGluamVjdHMgaXRzIG93biBpbXBsZW1lbnRhdGlvblxuICAvLyBzbyB0aGF0IGUuZy4gRGV2VG9vbHMgY2FuIGRpc3BsYXkgY3VzdG9tIGhvb2sgdmFsdWVzLlxufVxuXG52YXIgdXBkYXRlRGVidWdWYWx1ZSA9IG1vdW50RGVidWdWYWx1ZTtcblxuZnVuY3Rpb24gbW91bnRDYWxsYmFjayhjYWxsYmFjaywgZGVwcykge1xuICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gIHZhciBuZXh0RGVwcyA9IGRlcHMgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBkZXBzO1xuICBob29rLm1lbW9pemVkU3RhdGUgPSBbY2FsbGJhY2ssIG5leHREZXBzXTtcbiAgcmV0dXJuIGNhbGxiYWNrO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVDYWxsYmFjayhjYWxsYmFjaywgZGVwcykge1xuICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgbmV4dERlcHMgPSBkZXBzID09PSB1bmRlZmluZWQgPyBudWxsIDogZGVwcztcbiAgdmFyIHByZXZTdGF0ZSA9IGhvb2subWVtb2l6ZWRTdGF0ZTtcblxuICBpZiAocHJldlN0YXRlICE9PSBudWxsKSB7XG4gICAgaWYgKG5leHREZXBzICE9PSBudWxsKSB7XG4gICAgICB2YXIgcHJldkRlcHMgPSBwcmV2U3RhdGVbMV07XG5cbiAgICAgIGlmIChhcmVIb29rSW5wdXRzRXF1YWwobmV4dERlcHMsIHByZXZEZXBzKSkge1xuICAgICAgICByZXR1cm4gcHJldlN0YXRlWzBdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IFtjYWxsYmFjaywgbmV4dERlcHNdO1xuICByZXR1cm4gY2FsbGJhY2s7XG59XG5cbmZ1bmN0aW9uIG1vdW50TWVtbyhuZXh0Q3JlYXRlLCBkZXBzKSB7XG4gIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIG5leHREZXBzID0gZGVwcyA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGRlcHM7XG4gIHZhciBuZXh0VmFsdWUgPSBuZXh0Q3JlYXRlKCk7XG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IFtuZXh0VmFsdWUsIG5leHREZXBzXTtcbiAgcmV0dXJuIG5leHRWYWx1ZTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlTWVtbyhuZXh0Q3JlYXRlLCBkZXBzKSB7XG4gIHZhciBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gIHZhciBuZXh0RGVwcyA9IGRlcHMgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBkZXBzO1xuICB2YXIgcHJldlN0YXRlID0gaG9vay5tZW1vaXplZFN0YXRlO1xuXG4gIGlmIChwcmV2U3RhdGUgIT09IG51bGwpIHtcbiAgICAvLyBBc3N1bWUgdGhlc2UgYXJlIGRlZmluZWQuIElmIHRoZXkncmUgbm90LCBhcmVIb29rSW5wdXRzRXF1YWwgd2lsbCB3YXJuLlxuICAgIGlmIChuZXh0RGVwcyAhPT0gbnVsbCkge1xuICAgICAgdmFyIHByZXZEZXBzID0gcHJldlN0YXRlWzFdO1xuXG4gICAgICBpZiAoYXJlSG9va0lucHV0c0VxdWFsKG5leHREZXBzLCBwcmV2RGVwcykpIHtcbiAgICAgICAgcmV0dXJuIHByZXZTdGF0ZVswXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgbmV4dFZhbHVlID0gbmV4dENyZWF0ZSgpO1xuICBob29rLm1lbW9pemVkU3RhdGUgPSBbbmV4dFZhbHVlLCBuZXh0RGVwc107XG4gIHJldHVybiBuZXh0VmFsdWU7XG59XG5cbmZ1bmN0aW9uIG1vdW50RGVmZXJyZWRWYWx1ZSh2YWx1ZSkge1xuICB2YXIgX21vdW50U3RhdGUgPSBtb3VudFN0YXRlKHZhbHVlKSxcbiAgICAgIHByZXZWYWx1ZSA9IF9tb3VudFN0YXRlWzBdLFxuICAgICAgc2V0VmFsdWUgPSBfbW91bnRTdGF0ZVsxXTtcblxuICBtb3VudEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHByZXZUcmFuc2l0aW9uID0gUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMi50cmFuc2l0aW9uO1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDIudHJhbnNpdGlvbiA9IHt9O1xuXG4gICAgdHJ5IHtcbiAgICAgIHNldFZhbHVlKHZhbHVlKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMi50cmFuc2l0aW9uID0gcHJldlRyYW5zaXRpb247XG4gICAgfVxuICB9LCBbdmFsdWVdKTtcbiAgcmV0dXJuIHByZXZWYWx1ZTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlRGVmZXJyZWRWYWx1ZSh2YWx1ZSkge1xuICB2YXIgX3VwZGF0ZVN0YXRlID0gdXBkYXRlU3RhdGUoKSxcbiAgICAgIHByZXZWYWx1ZSA9IF91cGRhdGVTdGF0ZVswXSxcbiAgICAgIHNldFZhbHVlID0gX3VwZGF0ZVN0YXRlWzFdO1xuXG4gIHVwZGF0ZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHByZXZUcmFuc2l0aW9uID0gUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMi50cmFuc2l0aW9uO1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDIudHJhbnNpdGlvbiA9IHt9O1xuXG4gICAgdHJ5IHtcbiAgICAgIHNldFZhbHVlKHZhbHVlKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMi50cmFuc2l0aW9uID0gcHJldlRyYW5zaXRpb247XG4gICAgfVxuICB9LCBbdmFsdWVdKTtcbiAgcmV0dXJuIHByZXZWYWx1ZTtcbn1cblxuZnVuY3Rpb24gcmVyZW5kZXJEZWZlcnJlZFZhbHVlKHZhbHVlKSB7XG4gIHZhciBfcmVyZW5kZXJTdGF0ZSA9IHJlcmVuZGVyU3RhdGUoKSxcbiAgICAgIHByZXZWYWx1ZSA9IF9yZXJlbmRlclN0YXRlWzBdLFxuICAgICAgc2V0VmFsdWUgPSBfcmVyZW5kZXJTdGF0ZVsxXTtcblxuICB1cGRhdGVFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDIudHJhbnNpdGlvbjtcbiAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQyLnRyYW5zaXRpb24gPSB7fTtcblxuICAgIHRyeSB7XG4gICAgICBzZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDIudHJhbnNpdGlvbiA9IHByZXZUcmFuc2l0aW9uO1xuICAgIH1cbiAgfSwgW3ZhbHVlXSk7XG4gIHJldHVybiBwcmV2VmFsdWU7XG59XG5cbmZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbihzZXRQZW5kaW5nLCBjYWxsYmFjaywgb3B0aW9ucykge1xuICB2YXIgcHJldmlvdXNQcmlvcml0eSA9IGdldEN1cnJlbnRVcGRhdGVQcmlvcml0eSgpO1xuICBzZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkoaGlnaGVyRXZlbnRQcmlvcml0eShwcmV2aW91c1ByaW9yaXR5LCBDb250aW51b3VzRXZlbnRQcmlvcml0eSkpO1xuICBzZXRQZW5kaW5nKHRydWUpO1xuICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQyLnRyYW5zaXRpb247XG4gIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDIudHJhbnNpdGlvbiA9IHt9O1xuICB2YXIgY3VycmVudFRyYW5zaXRpb24gPSBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQyLnRyYW5zaXRpb247XG5cbiAge1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDIudHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycyA9IG5ldyBTZXQoKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgc2V0UGVuZGluZyhmYWxzZSk7XG4gICAgY2FsbGJhY2soKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBzZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkocHJldmlvdXNQcmlvcml0eSk7XG4gICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMi50cmFuc2l0aW9uID0gcHJldlRyYW5zaXRpb247XG5cbiAgICB7XG4gICAgICBpZiAocHJldlRyYW5zaXRpb24gPT09IG51bGwgJiYgY3VycmVudFRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMpIHtcbiAgICAgICAgdmFyIHVwZGF0ZWRGaWJlcnNDb3VudCA9IGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzLnNpemU7XG5cbiAgICAgICAgaWYgKHVwZGF0ZWRGaWJlcnNDb3VudCA+IDEwKSB7XG4gICAgICAgICAgd2FybignRGV0ZWN0ZWQgYSBsYXJnZSBudW1iZXIgb2YgdXBkYXRlcyBpbnNpZGUgc3RhcnRUcmFuc2l0aW9uLiAnICsgJ0lmIHRoaXMgaXMgZHVlIHRvIGEgc3Vic2NyaXB0aW9uIHBsZWFzZSByZS13cml0ZSBpdCB0byB1c2UgUmVhY3QgcHJvdmlkZWQgaG9va3MuICcgKyAnT3RoZXJ3aXNlIGNvbmN1cnJlbnQgbW9kZSBndWFyYW50ZWVzIGFyZSBvZmYgdGhlIHRhYmxlLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudFRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMuY2xlYXIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91bnRUcmFuc2l0aW9uKCkge1xuICB2YXIgX21vdW50U3RhdGUyID0gbW91bnRTdGF0ZShmYWxzZSksXG4gICAgICBpc1BlbmRpbmcgPSBfbW91bnRTdGF0ZTJbMF0sXG4gICAgICBzZXRQZW5kaW5nID0gX21vdW50U3RhdGUyWzFdOyAvLyBUaGUgYHN0YXJ0YCBtZXRob2QgbmV2ZXIgY2hhbmdlcy5cblxuXG4gIHZhciBzdGFydCA9IHN0YXJ0VHJhbnNpdGlvbi5iaW5kKG51bGwsIHNldFBlbmRpbmcpO1xuICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IHN0YXJ0O1xuICByZXR1cm4gW2lzUGVuZGluZywgc3RhcnRdO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVUcmFuc2l0aW9uKCkge1xuICB2YXIgX3VwZGF0ZVN0YXRlMiA9IHVwZGF0ZVN0YXRlKCksXG4gICAgICBpc1BlbmRpbmcgPSBfdXBkYXRlU3RhdGUyWzBdO1xuXG4gIHZhciBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gIHZhciBzdGFydCA9IGhvb2subWVtb2l6ZWRTdGF0ZTtcbiAgcmV0dXJuIFtpc1BlbmRpbmcsIHN0YXJ0XTtcbn1cblxuZnVuY3Rpb24gcmVyZW5kZXJUcmFuc2l0aW9uKCkge1xuICB2YXIgX3JlcmVuZGVyU3RhdGUyID0gcmVyZW5kZXJTdGF0ZSgpLFxuICAgICAgaXNQZW5kaW5nID0gX3JlcmVuZGVyU3RhdGUyWzBdO1xuXG4gIHZhciBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gIHZhciBzdGFydCA9IGhvb2subWVtb2l6ZWRTdGF0ZTtcbiAgcmV0dXJuIFtpc1BlbmRpbmcsIHN0YXJ0XTtcbn1cblxudmFyIGlzVXBkYXRpbmdPcGFxdWVWYWx1ZUluUmVuZGVyUGhhc2UgPSBmYWxzZTtcbmZ1bmN0aW9uIGdldElzVXBkYXRpbmdPcGFxdWVWYWx1ZUluUmVuZGVyUGhhc2VJbkRFVigpIHtcbiAge1xuICAgIHJldHVybiBpc1VwZGF0aW5nT3BhcXVlVmFsdWVJblJlbmRlclBoYXNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1vdW50SWQoKSB7XG4gIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIHJvb3QgPSBnZXRXb3JrSW5Qcm9ncmVzc1Jvb3QoKTsgLy8gVE9ETzogSW4gRml6eiwgaWQgZ2VuZXJhdGlvbiBpcyBzcGVjaWZpYyB0byBlYWNoIHNlcnZlciBjb25maWcuIE1heWJlIHdlXG4gIC8vIHNob3VsZCBkbyB0aGlzIGluIEZpYmVyLCB0b28/IERlZmVycmluZyB0aGlzIGRlY2lzaW9uIGZvciBub3cgYmVjYXVzZVxuICAvLyB0aGVyZSdzIG5vIG90aGVyIHBsYWNlIHRvIHN0b3JlIHRoZSBwcmVmaXggZXhjZXB0IGZvciBhbiBpbnRlcm5hbCBmaWVsZCBvblxuICAvLyB0aGUgcHVibGljIGNyZWF0ZVJvb3Qgb2JqZWN0LCB3aGljaCB0aGUgZmliZXIgdHJlZSBkb2VzIG5vdCBjdXJyZW50bHkgaGF2ZVxuICAvLyBhIHJlZmVyZW5jZSB0by5cblxuICB2YXIgaWRlbnRpZmllclByZWZpeCA9IHJvb3QuaWRlbnRpZmllclByZWZpeDtcbiAgdmFyIGlkO1xuXG4gIGlmIChnZXRJc0h5ZHJhdGluZygpKSB7XG4gICAgdmFyIHRyZWVJZCA9IGdldFRyZWVJZCgpOyAvLyBVc2UgYSBjYXB0aWFsIFIgcHJlZml4IGZvciBzZXJ2ZXItZ2VuZXJhdGVkIGlkcy5cblxuICAgIGlkID0gJzonICsgaWRlbnRpZmllclByZWZpeCArICdSJyArIHRyZWVJZDsgLy8gVW5sZXNzIHRoaXMgaXMgdGhlIGZpcnN0IGlkIGF0IHRoaXMgbGV2ZWwsIGFwcGVuZCBhIG51bWJlciBhdCB0aGUgZW5kXG4gICAgLy8gdGhhdCByZXByZXNlbnRzIHRoZSBwb3NpdGlvbiBvZiB0aGlzIHVzZUlkIGhvb2sgYW1vbmcgYWxsIHRoZSB1c2VJZFxuICAgIC8vIGhvb2tzIGZvciB0aGlzIGZpYmVyLlxuXG4gICAgdmFyIGxvY2FsSWQgPSBsb2NhbElkQ291bnRlcisrO1xuXG4gICAgaWYgKGxvY2FsSWQgPiAwKSB7XG4gICAgICBpZCArPSAnSCcgKyBsb2NhbElkLnRvU3RyaW5nKDMyKTtcbiAgICB9XG5cbiAgICBpZCArPSAnOic7XG4gIH0gZWxzZSB7XG4gICAgLy8gVXNlIGEgbG93ZXJjYXNlIHIgcHJlZml4IGZvciBjbGllbnQtZ2VuZXJhdGVkIGlkcy5cbiAgICB2YXIgZ2xvYmFsQ2xpZW50SWQgPSBnbG9iYWxDbGllbnRJZENvdW50ZXIrKztcbiAgICBpZCA9ICc6JyArIGlkZW50aWZpZXJQcmVmaXggKyAncicgKyBnbG9iYWxDbGllbnRJZC50b1N0cmluZygzMikgKyAnOic7XG4gIH1cblxuICBob29rLm1lbW9pemVkU3RhdGUgPSBpZDtcbiAgcmV0dXJuIGlkO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVJZCgpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIGlkID0gaG9vay5tZW1vaXplZFN0YXRlO1xuICByZXR1cm4gaWQ7XG59XG5cbmZ1bmN0aW9uIGRpc3BhdGNoUmVkdWNlckFjdGlvbihmaWJlciwgcXVldWUsIGFjdGlvbikge1xuICB7XG4gICAgaWYgKHR5cGVvZiBhcmd1bWVudHNbM10gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKFwiU3RhdGUgdXBkYXRlcyBmcm9tIHRoZSB1c2VTdGF0ZSgpIGFuZCB1c2VSZWR1Y2VyKCkgSG9va3MgZG9uJ3Qgc3VwcG9ydCB0aGUgXCIgKyAnc2Vjb25kIGNhbGxiYWNrIGFyZ3VtZW50LiBUbyBleGVjdXRlIGEgc2lkZSBlZmZlY3QgYWZ0ZXIgJyArICdyZW5kZXJpbmcsIGRlY2xhcmUgaXQgaW4gdGhlIGNvbXBvbmVudCBib2R5IHdpdGggdXNlRWZmZWN0KCkuJyk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcik7XG4gIHZhciB1cGRhdGUgPSB7XG4gICAgbGFuZTogbGFuZSxcbiAgICBhY3Rpb246IGFjdGlvbixcbiAgICBoYXNFYWdlclN0YXRlOiBmYWxzZSxcbiAgICBlYWdlclN0YXRlOiBudWxsLFxuICAgIG5leHQ6IG51bGxcbiAgfTtcblxuICBpZiAoaXNSZW5kZXJQaGFzZVVwZGF0ZShmaWJlcikpIHtcbiAgICBlbnF1ZXVlUmVuZGVyUGhhc2VVcGRhdGUocXVldWUsIHVwZGF0ZSk7XG4gIH0gZWxzZSB7XG4gICAgZW5xdWV1ZVVwZGF0ZSQxKGZpYmVyLCBxdWV1ZSwgdXBkYXRlKTtcbiAgICB2YXIgZXZlbnRUaW1lID0gcmVxdWVzdEV2ZW50VGltZSgpO1xuICAgIHZhciByb290ID0gc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBsYW5lLCBldmVudFRpbWUpO1xuXG4gICAgaWYgKHJvb3QgIT09IG51bGwpIHtcbiAgICAgIGVudGFuZ2xlVHJhbnNpdGlvblVwZGF0ZShyb290LCBxdWV1ZSwgbGFuZSk7XG4gICAgfVxuICB9XG5cbiAgbWFya1VwZGF0ZUluRGV2VG9vbHMoZmliZXIsIGxhbmUpO1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaFNldFN0YXRlKGZpYmVyLCBxdWV1ZSwgYWN0aW9uKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1szXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoXCJTdGF0ZSB1cGRhdGVzIGZyb20gdGhlIHVzZVN0YXRlKCkgYW5kIHVzZVJlZHVjZXIoKSBIb29rcyBkb24ndCBzdXBwb3J0IHRoZSBcIiArICdzZWNvbmQgY2FsbGJhY2sgYXJndW1lbnQuIFRvIGV4ZWN1dGUgYSBzaWRlIGVmZmVjdCBhZnRlciAnICsgJ3JlbmRlcmluZywgZGVjbGFyZSBpdCBpbiB0aGUgY29tcG9uZW50IGJvZHkgd2l0aCB1c2VFZmZlY3QoKS4nKTtcbiAgICB9XG4gIH1cblxuICB2YXIgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKTtcbiAgdmFyIHVwZGF0ZSA9IHtcbiAgICBsYW5lOiBsYW5lLFxuICAgIGFjdGlvbjogYWN0aW9uLFxuICAgIGhhc0VhZ2VyU3RhdGU6IGZhbHNlLFxuICAgIGVhZ2VyU3RhdGU6IG51bGwsXG4gICAgbmV4dDogbnVsbFxuICB9O1xuXG4gIGlmIChpc1JlbmRlclBoYXNlVXBkYXRlKGZpYmVyKSkge1xuICAgIGVucXVldWVSZW5kZXJQaGFzZVVwZGF0ZShxdWV1ZSwgdXBkYXRlKTtcbiAgfSBlbHNlIHtcbiAgICBlbnF1ZXVlVXBkYXRlJDEoZmliZXIsIHF1ZXVlLCB1cGRhdGUpO1xuICAgIHZhciBhbHRlcm5hdGUgPSBmaWJlci5hbHRlcm5hdGU7XG5cbiAgICBpZiAoZmliZXIubGFuZXMgPT09IE5vTGFuZXMgJiYgKGFsdGVybmF0ZSA9PT0gbnVsbCB8fCBhbHRlcm5hdGUubGFuZXMgPT09IE5vTGFuZXMpKSB7XG4gICAgICAvLyBUaGUgcXVldWUgaXMgY3VycmVudGx5IGVtcHR5LCB3aGljaCBtZWFucyB3ZSBjYW4gZWFnZXJseSBjb21wdXRlIHRoZVxuICAgICAgLy8gbmV4dCBzdGF0ZSBiZWZvcmUgZW50ZXJpbmcgdGhlIHJlbmRlciBwaGFzZS4gSWYgdGhlIG5ldyBzdGF0ZSBpcyB0aGVcbiAgICAgIC8vIHNhbWUgYXMgdGhlIGN1cnJlbnQgc3RhdGUsIHdlIG1heSBiZSBhYmxlIHRvIGJhaWwgb3V0IGVudGlyZWx5LlxuICAgICAgdmFyIGxhc3RSZW5kZXJlZFJlZHVjZXIgPSBxdWV1ZS5sYXN0UmVuZGVyZWRSZWR1Y2VyO1xuXG4gICAgICBpZiAobGFzdFJlbmRlcmVkUmVkdWNlciAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXI7XG5cbiAgICAgICAge1xuICAgICAgICAgIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIGN1cnJlbnRTdGF0ZSA9IHF1ZXVlLmxhc3RSZW5kZXJlZFN0YXRlO1xuICAgICAgICAgIHZhciBlYWdlclN0YXRlID0gbGFzdFJlbmRlcmVkUmVkdWNlcihjdXJyZW50U3RhdGUsIGFjdGlvbik7IC8vIFN0YXNoIHRoZSBlYWdlcmx5IGNvbXB1dGVkIHN0YXRlLCBhbmQgdGhlIHJlZHVjZXIgdXNlZCB0byBjb21wdXRlXG4gICAgICAgICAgLy8gaXQsIG9uIHRoZSB1cGRhdGUgb2JqZWN0LiBJZiB0aGUgcmVkdWNlciBoYXNuJ3QgY2hhbmdlZCBieSB0aGVcbiAgICAgICAgICAvLyB0aW1lIHdlIGVudGVyIHRoZSByZW5kZXIgcGhhc2UsIHRoZW4gdGhlIGVhZ2VyIHN0YXRlIGNhbiBiZSB1c2VkXG4gICAgICAgICAgLy8gd2l0aG91dCBjYWxsaW5nIHRoZSByZWR1Y2VyIGFnYWluLlxuXG4gICAgICAgICAgdXBkYXRlLmhhc0VhZ2VyU3RhdGUgPSB0cnVlO1xuICAgICAgICAgIHVwZGF0ZS5lYWdlclN0YXRlID0gZWFnZXJTdGF0ZTtcblxuICAgICAgICAgIGlmIChvYmplY3RJcyhlYWdlclN0YXRlLCBjdXJyZW50U3RhdGUpKSB7XG4gICAgICAgICAgICAvLyBGYXN0IHBhdGguIFdlIGNhbiBiYWlsIG91dCB3aXRob3V0IHNjaGVkdWxpbmcgUmVhY3QgdG8gcmUtcmVuZGVyLlxuICAgICAgICAgICAgLy8gSXQncyBzdGlsbCBwb3NzaWJsZSB0aGF0IHdlJ2xsIG5lZWQgdG8gcmViYXNlIHRoaXMgdXBkYXRlIGxhdGVyLFxuICAgICAgICAgICAgLy8gaWYgdGhlIGNvbXBvbmVudCByZS1yZW5kZXJzIGZvciBhIGRpZmZlcmVudCByZWFzb24gYW5kIGJ5IHRoYXRcbiAgICAgICAgICAgIC8vIHRpbWUgdGhlIHJlZHVjZXIgaGFzIGNoYW5nZWQuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikgey8vIFN1cHByZXNzIHRoZSBlcnJvci4gSXQgd2lsbCB0aHJvdyBhZ2FpbiBpbiB0aGUgcmVuZGVyIHBoYXNlLlxuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgICB2YXIgcm9vdCA9IHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgbGFuZSwgZXZlbnRUaW1lKTtcblxuICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICBlbnRhbmdsZVRyYW5zaXRpb25VcGRhdGUocm9vdCwgcXVldWUsIGxhbmUpO1xuICAgIH1cbiAgfVxuXG4gIG1hcmtVcGRhdGVJbkRldlRvb2xzKGZpYmVyLCBsYW5lKTtcbn1cblxuZnVuY3Rpb24gaXNSZW5kZXJQaGFzZVVwZGF0ZShmaWJlcikge1xuICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuICByZXR1cm4gZmliZXIgPT09IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEgfHwgYWx0ZXJuYXRlICE9PSBudWxsICYmIGFsdGVybmF0ZSA9PT0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMTtcbn1cblxuZnVuY3Rpb24gZW5xdWV1ZVJlbmRlclBoYXNlVXBkYXRlKHF1ZXVlLCB1cGRhdGUpIHtcbiAgLy8gVGhpcyBpcyBhIHJlbmRlciBwaGFzZSB1cGRhdGUuIFN0YXNoIGl0IGluIGEgbGF6aWx5LWNyZWF0ZWQgbWFwIG9mXG4gIC8vIHF1ZXVlIC0+IGxpbmtlZCBsaXN0IG9mIHVwZGF0ZXMuIEFmdGVyIHRoaXMgcmVuZGVyIHBhc3MsIHdlJ2xsIHJlc3RhcnRcbiAgLy8gYW5kIGFwcGx5IHRoZSBzdGFzaGVkIHVwZGF0ZXMgb24gdG9wIG9mIHRoZSB3b3JrLWluLXByb2dyZXNzIGhvb2suXG4gIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcyA9IGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGUgPSB0cnVlO1xuICB2YXIgcGVuZGluZyA9IHF1ZXVlLnBlbmRpbmc7XG5cbiAgaWYgKHBlbmRpbmcgPT09IG51bGwpIHtcbiAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCB1cGRhdGUuIENyZWF0ZSBhIGNpcmN1bGFyIGxpc3QuXG4gICAgdXBkYXRlLm5leHQgPSB1cGRhdGU7XG4gIH0gZWxzZSB7XG4gICAgdXBkYXRlLm5leHQgPSBwZW5kaW5nLm5leHQ7XG4gICAgcGVuZGluZy5uZXh0ID0gdXBkYXRlO1xuICB9XG5cbiAgcXVldWUucGVuZGluZyA9IHVwZGF0ZTtcbn1cblxuZnVuY3Rpb24gZW5xdWV1ZVVwZGF0ZSQxKGZpYmVyLCBxdWV1ZSwgdXBkYXRlLCBsYW5lKSB7XG4gIGlmIChpc0ludGVybGVhdmVkVXBkYXRlKGZpYmVyKSkge1xuICAgIHZhciBpbnRlcmxlYXZlZCA9IHF1ZXVlLmludGVybGVhdmVkO1xuXG4gICAgaWYgKGludGVybGVhdmVkID09PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCB1cGRhdGUuIENyZWF0ZSBhIGNpcmN1bGFyIGxpc3QuXG4gICAgICB1cGRhdGUubmV4dCA9IHVwZGF0ZTsgLy8gQXQgdGhlIGVuZCBvZiB0aGUgY3VycmVudCByZW5kZXIsIHRoaXMgcXVldWUncyBpbnRlcmxlYXZlZCB1cGRhdGVzIHdpbGxcbiAgICAgIC8vIGJlIHRyYW5zZmVycmVkIHRvIHRoZSBwZW5kaW5nIHF1ZXVlLlxuXG4gICAgICBwdXNoSW50ZXJsZWF2ZWRRdWV1ZShxdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVwZGF0ZS5uZXh0ID0gaW50ZXJsZWF2ZWQubmV4dDtcbiAgICAgIGludGVybGVhdmVkLm5leHQgPSB1cGRhdGU7XG4gICAgfVxuXG4gICAgcXVldWUuaW50ZXJsZWF2ZWQgPSB1cGRhdGU7XG4gIH0gZWxzZSB7XG4gICAgdmFyIHBlbmRpbmcgPSBxdWV1ZS5wZW5kaW5nO1xuXG4gICAgaWYgKHBlbmRpbmcgPT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0IHVwZGF0ZS4gQ3JlYXRlIGEgY2lyY3VsYXIgbGlzdC5cbiAgICAgIHVwZGF0ZS5uZXh0ID0gdXBkYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICB1cGRhdGUubmV4dCA9IHBlbmRpbmcubmV4dDtcbiAgICAgIHBlbmRpbmcubmV4dCA9IHVwZGF0ZTtcbiAgICB9XG5cbiAgICBxdWV1ZS5wZW5kaW5nID0gdXBkYXRlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGVudGFuZ2xlVHJhbnNpdGlvblVwZGF0ZShyb290LCBxdWV1ZSwgbGFuZSkge1xuICBpZiAoaXNUcmFuc2l0aW9uTGFuZShsYW5lKSkge1xuICAgIHZhciBxdWV1ZUxhbmVzID0gcXVldWUubGFuZXM7IC8vIElmIGFueSBlbnRhbmdsZWQgbGFuZXMgYXJlIG5vIGxvbmdlciBwZW5kaW5nIG9uIHRoZSByb290LCB0aGVuIHRoZXlcbiAgICAvLyBtdXN0IGhhdmUgZmluaXNoZWQuIFdlIGNhbiByZW1vdmUgdGhlbSBmcm9tIHRoZSBzaGFyZWQgcXVldWUsIHdoaWNoXG4gICAgLy8gcmVwcmVzZW50cyBhIHN1cGVyc2V0IG9mIHRoZSBhY3R1YWxseSBwZW5kaW5nIGxhbmVzLiBJbiBzb21lIGNhc2VzIHdlXG4gICAgLy8gbWF5IGVudGFuZ2xlIG1vcmUgdGhhbiB3ZSBuZWVkIHRvLCBidXQgdGhhdCdzIE9LLiBJbiBmYWN0IGl0J3Mgd29yc2UgaWZcbiAgICAvLyB3ZSAqZG9uJ3QqIGVudGFuZ2xlIHdoZW4gd2Ugc2hvdWxkLlxuXG4gICAgcXVldWVMYW5lcyA9IGludGVyc2VjdExhbmVzKHF1ZXVlTGFuZXMsIHJvb3QucGVuZGluZ0xhbmVzKTsgLy8gRW50YW5nbGUgdGhlIG5ldyB0cmFuc2l0aW9uIGxhbmUgd2l0aCB0aGUgb3RoZXIgdHJhbnNpdGlvbiBsYW5lcy5cblxuICAgIHZhciBuZXdRdWV1ZUxhbmVzID0gbWVyZ2VMYW5lcyhxdWV1ZUxhbmVzLCBsYW5lKTtcbiAgICBxdWV1ZS5sYW5lcyA9IG5ld1F1ZXVlTGFuZXM7IC8vIEV2ZW4gaWYgcXVldWUubGFuZXMgYWxyZWFkeSBpbmNsdWRlIGxhbmUsIHdlIGRvbid0IGtub3cgZm9yIGNlcnRhaW4gaWZcbiAgICAvLyB0aGUgbGFuZSBmaW5pc2hlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIHdlIGVudGFuZ2xlZCBpdC4gU28gd2UgbmVlZCB0b1xuICAgIC8vIGVudGFuZ2xlIGl0IGFnYWluLCBqdXN0IHRvIGJlIHN1cmUuXG5cbiAgICBtYXJrUm9vdEVudGFuZ2xlZChyb290LCBuZXdRdWV1ZUxhbmVzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrVXBkYXRlSW5EZXZUb29scyhmaWJlciwgbGFuZSwgYWN0aW9uKSB7XG5cbiAge1xuICAgIG1hcmtTdGF0ZVVwZGF0ZVNjaGVkdWxlZChmaWJlciwgbGFuZSk7XG4gIH1cbn1cblxudmFyIENvbnRleHRPbmx5RGlzcGF0Y2hlciA9IHtcbiAgcmVhZENvbnRleHQ6IHJlYWRDb250ZXh0LFxuICB1c2VDYWxsYmFjazogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICB1c2VDb250ZXh0OiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZUVmZmVjdDogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICB1c2VJbXBlcmF0aXZlSGFuZGxlOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZUluc2VydGlvbkVmZmVjdDogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICB1c2VMYXlvdXRFZmZlY3Q6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlTWVtbzogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICB1c2VSZWR1Y2VyOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZVJlZjogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICB1c2VTdGF0ZTogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICB1c2VEZWJ1Z1ZhbHVlOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZURlZmVycmVkVmFsdWU6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlVHJhbnNpdGlvbjogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICB1c2VNdXRhYmxlU291cmNlOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZUlkOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjogZW5hYmxlTmV3UmVjb25jaWxlclxufTtcblxudmFyIEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFViA9IG51bGw7XG52YXIgSG9va3NEaXNwYXRjaGVyT25Nb3VudFdpdGhIb29rVHlwZXNJbkRFViA9IG51bGw7XG52YXIgSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFViA9IG51bGw7XG52YXIgSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWID0gbnVsbDtcbnZhciBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWID0gbnVsbDtcbnZhciBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFViA9IG51bGw7XG52YXIgSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uUmVyZW5kZXJJbkRFViA9IG51bGw7XG5cbntcbiAgdmFyIHdhcm5JbnZhbGlkQ29udGV4dEFjY2VzcyA9IGZ1bmN0aW9uICgpIHtcbiAgICBlcnJvcignQ29udGV4dCBjYW4gb25seSBiZSByZWFkIHdoaWxlIFJlYWN0IGlzIHJlbmRlcmluZy4gJyArICdJbiBjbGFzc2VzLCB5b3UgY2FuIHJlYWQgaXQgaW4gdGhlIHJlbmRlciBtZXRob2Qgb3IgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLiAnICsgJ0luIGZ1bmN0aW9uIGNvbXBvbmVudHMsIHlvdSBjYW4gcmVhZCBpdCBkaXJlY3RseSBpbiB0aGUgZnVuY3Rpb24gYm9keSwgYnV0IG5vdCAnICsgJ2luc2lkZSBIb29rcyBsaWtlIHVzZVJlZHVjZXIoKSBvciB1c2VNZW1vKCkuJyk7XG4gIH07XG5cbiAgdmFyIHdhcm5JbnZhbGlkSG9va0FjY2VzcyA9IGZ1bmN0aW9uICgpIHtcbiAgICBlcnJvcignRG8gbm90IGNhbGwgSG9va3MgaW5zaWRlIHVzZUVmZmVjdCguLi4pLCB1c2VNZW1vKC4uLiksIG9yIG90aGVyIGJ1aWx0LWluIEhvb2tzLiAnICsgJ1lvdSBjYW4gb25seSBjYWxsIEhvb2tzIGF0IHRoZSB0b3AgbGV2ZWwgb2YgeW91ciBSZWFjdCBmdW5jdGlvbi4gJyArICdGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3J1bGVzLW9mLWhvb2tzJyk7XG4gIH07XG5cbiAgSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWID0ge1xuICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgIH0sXG4gICAgdXNlQ2FsbGJhY2s6IGZ1bmN0aW9uIChjYWxsYmFjaywgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ2FsbGJhY2snO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIGNoZWNrRGVwc0FyZUFycmF5RGV2KGRlcHMpO1xuICAgICAgcmV0dXJuIG1vdW50Q2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNvbnRleHQnO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICB9LFxuICAgIHVzZUVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRWZmZWN0JztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKTtcbiAgICAgIHJldHVybiBtb3VudEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbXBlcmF0aXZlSGFuZGxlJztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKTtcbiAgICAgIHJldHVybiBtb3VudEltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW5zZXJ0aW9uRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbnNlcnRpb25FZmZlY3QnO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIGNoZWNrRGVwc0FyZUFycmF5RGV2KGRlcHMpO1xuICAgICAgcmV0dXJuIG1vdW50SW5zZXJ0aW9uRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUxheW91dEVmZmVjdCc7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgY2hlY2tEZXBzQXJlQXJyYXlEZXYoZGVwcyk7XG4gICAgICByZXR1cm4gbW91bnRMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU1lbW8nO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIGNoZWNrRGVwc0FyZUFycmF5RGV2KGRlcHMpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBtb3VudE1lbW8oY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbiAocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVkdWNlcic7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBtb3VudFJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVmOiBmdW5jdGlvbiAoaW5pdGlhbFZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWYnO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudFJlZihpbml0aWFsVmFsdWUpO1xuICAgIH0sXG4gICAgdXNlU3RhdGU6IGZ1bmN0aW9uIChpbml0aWFsU3RhdGUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVN0YXRlJztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG1vdW50U3RhdGUoaW5pdGlhbFN0YXRlKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VEZWJ1Z1ZhbHVlOiBmdW5jdGlvbiAodmFsdWUsIGZvcm1hdHRlckZuKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWJ1Z1ZhbHVlJztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnREZWJ1Z1ZhbHVlKCk7XG4gICAgfSxcbiAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlZmVycmVkVmFsdWUnO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudERlZmVycmVkVmFsdWUodmFsdWUpO1xuICAgIH0sXG4gICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlVHJhbnNpdGlvbic7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50VHJhbnNpdGlvbigpO1xuICAgIH0sXG4gICAgdXNlTXV0YWJsZVNvdXJjZTogZnVuY3Rpb24gKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTXV0YWJsZVNvdXJjZSc7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50TXV0YWJsZVNvdXJjZSgpO1xuICAgIH0sXG4gICAgdXNlU3luY0V4dGVybmFsU3RvcmU6IGZ1bmN0aW9uIChzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlU3luY0V4dGVybmFsU3RvcmUnO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudFN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgZ2V0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KTtcbiAgICB9LFxuICAgIHVzZUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJZCc7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50SWQoKTtcbiAgICB9LFxuICAgIHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjogZW5hYmxlTmV3UmVjb25jaWxlclxuICB9O1xuXG4gIEhvb2tzRGlzcGF0Y2hlck9uTW91bnRXaXRoSG9va1R5cGVzSW5ERVYgPSB7XG4gICAgcmVhZENvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgfSxcbiAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDYWxsYmFjayc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudENhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUNvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDb250ZXh0JztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgIH0sXG4gICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VFZmZlY3QnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSW1wZXJhdGl2ZUhhbmRsZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudEltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW5zZXJ0aW9uRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbnNlcnRpb25FZmZlY3QnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRJbnNlcnRpb25FZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUxheW91dEVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTGF5b3V0RWZmZWN0JztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50TGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VNZW1vOiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNZW1vJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBtb3VudE1lbW8oY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbiAocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVkdWNlcic7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbW91bnRSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZjogZnVuY3Rpb24gKGluaXRpYWxWYWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVmJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50UmVmKGluaXRpYWxWYWx1ZSk7XG4gICAgfSxcbiAgICB1c2VTdGF0ZTogZnVuY3Rpb24gKGluaXRpYWxTdGF0ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlU3RhdGUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG1vdW50U3RhdGUoaW5pdGlhbFN0YXRlKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VEZWJ1Z1ZhbHVlOiBmdW5jdGlvbiAodmFsdWUsIGZvcm1hdHRlckZuKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWJ1Z1ZhbHVlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50RGVidWdWYWx1ZSgpO1xuICAgIH0sXG4gICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWZlcnJlZFZhbHVlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50RGVmZXJyZWRWYWx1ZSh2YWx1ZSk7XG4gICAgfSxcbiAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VUcmFuc2l0aW9uJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50VHJhbnNpdGlvbigpO1xuICAgIH0sXG4gICAgdXNlTXV0YWJsZVNvdXJjZTogZnVuY3Rpb24gKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTXV0YWJsZVNvdXJjZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudE11dGFibGVTb3VyY2UoKTtcbiAgICB9LFxuICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbiAoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVN5bmNFeHRlcm5hbFN0b3JlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50U3luY0V4dGVybmFsU3RvcmUoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpO1xuICAgIH0sXG4gICAgdXNlSWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUlkJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50SWQoKTtcbiAgICB9LFxuICAgIHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjogZW5hYmxlTmV3UmVjb25jaWxlclxuICB9O1xuXG4gIEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVYgPSB7XG4gICAgcmVhZENvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgfSxcbiAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDYWxsYmFjayc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ29udGV4dCc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICB9LFxuICAgIHVzZUVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRWZmZWN0JztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbXBlcmF0aXZlSGFuZGxlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW5zZXJ0aW9uRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbnNlcnRpb25FZmZlY3QnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlSW5zZXJ0aW9uRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUxheW91dEVmZmVjdCc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU1lbW8nO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB1cGRhdGVNZW1vKGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVkdWNlcjogZnVuY3Rpb24gKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZHVjZXInO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB1cGRhdGVSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZjogZnVuY3Rpb24gKGluaXRpYWxWYWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVmJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZVJlZigpO1xuICAgIH0sXG4gICAgdXNlU3RhdGU6IGZ1bmN0aW9uIChpbml0aWFsU3RhdGUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVN0YXRlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdXBkYXRlU3RhdGUoaW5pdGlhbFN0YXRlKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VEZWJ1Z1ZhbHVlOiBmdW5jdGlvbiAodmFsdWUsIGZvcm1hdHRlckZuKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWJ1Z1ZhbHVlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZURlYnVnVmFsdWUoKTtcbiAgICB9LFxuICAgIHVzZURlZmVycmVkVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVmZXJyZWRWYWx1ZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVEZWZlcnJlZFZhbHVlKHZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVRyYW5zaXRpb24nO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlVHJhbnNpdGlvbigpO1xuICAgIH0sXG4gICAgdXNlTXV0YWJsZVNvdXJjZTogZnVuY3Rpb24gKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTXV0YWJsZVNvdXJjZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVNdXRhYmxlU291cmNlKCk7XG4gICAgfSxcbiAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogZnVuY3Rpb24gKHN1YnNjcmliZSwgZ2V0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTeW5jRXh0ZXJuYWxTdG9yZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVTeW5jRXh0ZXJuYWxTdG9yZShzdWJzY3JpYmUsIGdldFNuYXBzaG90KTtcbiAgICB9LFxuICAgIHVzZUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJZCc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVJZCgpO1xuICAgIH0sXG4gICAgdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiBlbmFibGVOZXdSZWNvbmNpbGVyXG4gIH07XG5cbiAgSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWID0ge1xuICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgIH0sXG4gICAgdXNlQ2FsbGJhY2s6IGZ1bmN0aW9uIChjYWxsYmFjaywgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ2FsbGJhY2snO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNvbnRleHQnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgfSxcbiAgICB1c2VFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUVmZmVjdCc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSW1wZXJhdGl2ZUhhbmRsZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUluc2VydGlvbkVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSW5zZXJ0aW9uRWZmZWN0JztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUluc2VydGlvbkVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VMYXlvdXRFZmZlY3QnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlTGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VNZW1vOiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNZW1vJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB1cGRhdGVNZW1vKGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVkdWNlcjogZnVuY3Rpb24gKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZHVjZXInO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uUmVyZW5kZXJJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHJlcmVuZGVyUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWY6IGZ1bmN0aW9uIChpbml0aWFsVmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZic7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVSZWYoKTtcbiAgICB9LFxuICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTdGF0ZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gcmVyZW5kZXJTdGF0ZShpbml0aWFsU3RhdGUpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZURlYnVnVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlYnVnVmFsdWUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlRGVidWdWYWx1ZSgpO1xuICAgIH0sXG4gICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWZlcnJlZFZhbHVlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlcmVuZGVyRGVmZXJyZWRWYWx1ZSh2YWx1ZSk7XG4gICAgfSxcbiAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VUcmFuc2l0aW9uJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlcmVuZGVyVHJhbnNpdGlvbigpO1xuICAgIH0sXG4gICAgdXNlTXV0YWJsZVNvdXJjZTogZnVuY3Rpb24gKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTXV0YWJsZVNvdXJjZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVNdXRhYmxlU291cmNlKCk7XG4gICAgfSxcbiAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogZnVuY3Rpb24gKHN1YnNjcmliZSwgZ2V0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTeW5jRXh0ZXJuYWxTdG9yZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVTeW5jRXh0ZXJuYWxTdG9yZShzdWJzY3JpYmUsIGdldFNuYXBzaG90KTtcbiAgICB9LFxuICAgIHVzZUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJZCc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVJZCgpO1xuICAgIH0sXG4gICAgdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiBlbmFibGVOZXdSZWNvbmNpbGVyXG4gIH07XG5cbiAgSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFViA9IHtcbiAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIHdhcm5JbnZhbGlkQ29udGV4dEFjY2VzcygpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgIH0sXG4gICAgdXNlQ2FsbGJhY2s6IGZ1bmN0aW9uIChjYWxsYmFjaywgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ2FsbGJhY2snO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50Q2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNvbnRleHQnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgIH0sXG4gICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VFZmZlY3QnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlOiBmdW5jdGlvbiAocmVmLCBjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUltcGVyYXRpdmVIYW5kbGUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50SW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VJbnNlcnRpb25FZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUluc2VydGlvbkVmZmVjdCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRJbnNlcnRpb25FZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUxheW91dEVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTGF5b3V0RWZmZWN0JztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudExheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTWVtbzogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTWVtbyc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG1vdW50TWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWR1Y2VyJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbW91bnRSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZjogZnVuY3Rpb24gKGluaXRpYWxWYWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVmJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudFJlZihpbml0aWFsVmFsdWUpO1xuICAgIH0sXG4gICAgdXNlU3RhdGU6IGZ1bmN0aW9uIChpbml0aWFsU3RhdGUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVN0YXRlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbW91bnRTdGF0ZShpbml0aWFsU3RhdGUpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZURlYnVnVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlYnVnVmFsdWUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50RGVidWdWYWx1ZSgpO1xuICAgIH0sXG4gICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWZlcnJlZFZhbHVlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudERlZmVycmVkVmFsdWUodmFsdWUpO1xuICAgIH0sXG4gICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlVHJhbnNpdGlvbic7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRUcmFuc2l0aW9uKCk7XG4gICAgfSxcbiAgICB1c2VNdXRhYmxlU291cmNlOiBmdW5jdGlvbiAoc291cmNlLCBnZXRTbmFwc2hvdCwgc3Vic2NyaWJlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNdXRhYmxlU291cmNlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudE11dGFibGVTb3VyY2UoKTtcbiAgICB9LFxuICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbiAoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVN5bmNFeHRlcm5hbFN0b3JlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudFN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgZ2V0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KTtcbiAgICB9LFxuICAgIHVzZUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJZCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRJZCgpO1xuICAgIH0sXG4gICAgdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiBlbmFibGVOZXdSZWNvbmNpbGVyXG4gIH07XG5cbiAgSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVYgPSB7XG4gICAgcmVhZENvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICB3YXJuSW52YWxpZENvbnRleHRBY2Nlc3MoKTtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICB9LFxuICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbiAoY2FsbGJhY2ssIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNhbGxiYWNrJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNvbnRleHQnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICB9LFxuICAgIHVzZUVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRWZmZWN0JztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlOiBmdW5jdGlvbiAocmVmLCBjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUltcGVyYXRpdmVIYW5kbGUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUluc2VydGlvbkVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSW5zZXJ0aW9uRWZmZWN0JztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlSW5zZXJ0aW9uRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUxheW91dEVmZmVjdCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUxheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTWVtbzogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTWVtbyc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdXBkYXRlTWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWR1Y2VyJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB1cGRhdGVSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZjogZnVuY3Rpb24gKGluaXRpYWxWYWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVmJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlUmVmKCk7XG4gICAgfSxcbiAgICB1c2VTdGF0ZTogZnVuY3Rpb24gKGluaXRpYWxTdGF0ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlU3RhdGUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVN0YXRlKGluaXRpYWxTdGF0ZSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKHZhbHVlLCBmb3JtYXR0ZXJGbikge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVidWdWYWx1ZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZURlYnVnVmFsdWUoKTtcbiAgICB9LFxuICAgIHVzZURlZmVycmVkVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVmZXJyZWRWYWx1ZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZURlZmVycmVkVmFsdWUodmFsdWUpO1xuICAgIH0sXG4gICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlVHJhbnNpdGlvbic7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZVRyYW5zaXRpb24oKTtcbiAgICB9LFxuICAgIHVzZU11dGFibGVTb3VyY2U6IGZ1bmN0aW9uIChzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU11dGFibGVTb3VyY2UnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVNdXRhYmxlU291cmNlKCk7XG4gICAgfSxcbiAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogZnVuY3Rpb24gKHN1YnNjcmliZSwgZ2V0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTeW5jRXh0ZXJuYWxTdG9yZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZVN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgZ2V0U25hcHNob3QpO1xuICAgIH0sXG4gICAgdXNlSWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUlkJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlSWQoKTtcbiAgICB9LFxuICAgIHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjogZW5hYmxlTmV3UmVjb25jaWxlclxuICB9O1xuXG4gIEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVYgPSB7XG4gICAgcmVhZENvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICB3YXJuSW52YWxpZENvbnRleHRBY2Nlc3MoKTtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICB9LFxuICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbiAoY2FsbGJhY2ssIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNhbGxiYWNrJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNvbnRleHQnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICB9LFxuICAgIHVzZUVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRWZmZWN0JztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlOiBmdW5jdGlvbiAocmVmLCBjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUltcGVyYXRpdmVIYW5kbGUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUluc2VydGlvbkVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSW5zZXJ0aW9uRWZmZWN0JztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlSW5zZXJ0aW9uRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUxheW91dEVmZmVjdCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUxheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTWVtbzogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTWVtbyc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdXBkYXRlTWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWR1Y2VyJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiByZXJlbmRlclJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVmOiBmdW5jdGlvbiAoaW5pdGlhbFZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWYnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVSZWYoKTtcbiAgICB9LFxuICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTdGF0ZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gcmVyZW5kZXJTdGF0ZShpbml0aWFsU3RhdGUpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZURlYnVnVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlYnVnVmFsdWUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVEZWJ1Z1ZhbHVlKCk7XG4gICAgfSxcbiAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlZmVycmVkVmFsdWUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiByZXJlbmRlckRlZmVycmVkVmFsdWUodmFsdWUpO1xuICAgIH0sXG4gICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlVHJhbnNpdGlvbic7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlcmVuZGVyVHJhbnNpdGlvbigpO1xuICAgIH0sXG4gICAgdXNlTXV0YWJsZVNvdXJjZTogZnVuY3Rpb24gKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTXV0YWJsZVNvdXJjZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZU11dGFibGVTb3VyY2UoKTtcbiAgICB9LFxuICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbiAoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVN5bmNFeHRlcm5hbFN0b3JlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlU3luY0V4dGVybmFsU3RvcmUoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCk7XG4gICAgfSxcbiAgICB1c2VJZDogZnVuY3Rpb24gKCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSWQnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVJZCgpO1xuICAgIH0sXG4gICAgdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiBlbmFibGVOZXdSZWNvbmNpbGVyXG4gIH07XG59XG5cbnZhciBub3ckMSA9IFNjaGVkdWxlci51bnN0YWJsZV9ub3c7XG52YXIgY29tbWl0VGltZSA9IDA7XG52YXIgbGF5b3V0RWZmZWN0U3RhcnRUaW1lID0gLTE7XG52YXIgcHJvZmlsZXJTdGFydFRpbWUgPSAtMTtcbnZhciBwYXNzaXZlRWZmZWN0U3RhcnRUaW1lID0gLTE7XG4vKipcbiAqIFRyYWNrcyB3aGV0aGVyIHRoZSBjdXJyZW50IHVwZGF0ZSB3YXMgYSBuZXN0ZWQvY2FzY2FkaW5nIHVwZGF0ZSAoc2NoZWR1bGVkIGZyb20gYSBsYXlvdXQgZWZmZWN0KS5cbiAqXG4gKiBUaGUgb3ZlcmFsbCBzZXF1ZW5jZSBpczpcbiAqICAgMS4gcmVuZGVyXG4gKiAgIDIuIGNvbW1pdCAoYW5kIGNhbGwgYG9uUmVuZGVyYCwgYG9uQ29tbWl0YClcbiAqICAgMy4gY2hlY2sgZm9yIG5lc3RlZCB1cGRhdGVzXG4gKiAgIDQuIGZsdXNoIHBhc3NpdmUgZWZmZWN0cyAoYW5kIGNhbGwgYG9uUG9zdENvbW1pdGApXG4gKlxuICogTmVzdGVkIHVwZGF0ZXMgYXJlIGlkZW50aWZpZWQgaW4gc3RlcCAzIGFib3ZlLFxuICogYnV0IHN0ZXAgNCBzdGlsbCBhcHBsaWVzIHRvIHRoZSB3b3JrIHRoYXQgd2FzIGp1c3QgY29tbWl0dGVkLlxuICogV2UgdXNlIHR3byBmbGFncyB0byB0cmFjayBuZXN0ZWQgdXBkYXRlcyB0aGVuOlxuICogb25lIHRyYWNrcyB3aGV0aGVyIHRoZSB1cGNvbWluZyB1cGRhdGUgaXMgYSBuZXN0ZWQgdXBkYXRlLFxuICogYW5kIHRoZSBvdGhlciB0cmFja3Mgd2hldGhlciB0aGUgY3VycmVudCB1cGRhdGUgd2FzIGEgbmVzdGVkIHVwZGF0ZS5cbiAqIFRoZSBmaXJzdCB2YWx1ZSBnZXRzIHN5bmNlZCB0byB0aGUgc2Vjb25kIGF0IHRoZSBzdGFydCBvZiB0aGUgcmVuZGVyIHBoYXNlLlxuICovXG5cbnZhciBjdXJyZW50VXBkYXRlSXNOZXN0ZWQgPSBmYWxzZTtcbnZhciBuZXN0ZWRVcGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcblxuZnVuY3Rpb24gaXNDdXJyZW50VXBkYXRlTmVzdGVkKCkge1xuICByZXR1cm4gY3VycmVudFVwZGF0ZUlzTmVzdGVkO1xufVxuXG5mdW5jdGlvbiBtYXJrTmVzdGVkVXBkYXRlU2NoZWR1bGVkKCkge1xuICB7XG4gICAgbmVzdGVkVXBkYXRlU2NoZWR1bGVkID0gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXNldE5lc3RlZFVwZGF0ZUZsYWcoKSB7XG4gIHtcbiAgICBjdXJyZW50VXBkYXRlSXNOZXN0ZWQgPSBmYWxzZTtcbiAgICBuZXN0ZWRVcGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzeW5jTmVzdGVkVXBkYXRlRmxhZygpIHtcbiAge1xuICAgIGN1cnJlbnRVcGRhdGVJc05lc3RlZCA9IG5lc3RlZFVwZGF0ZVNjaGVkdWxlZDtcbiAgICBuZXN0ZWRVcGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRDb21taXRUaW1lKCkge1xuICByZXR1cm4gY29tbWl0VGltZTtcbn1cblxuZnVuY3Rpb24gcmVjb3JkQ29tbWl0VGltZSgpIHtcblxuICBjb21taXRUaW1lID0gbm93JDEoKTtcbn1cblxuZnVuY3Rpb24gc3RhcnRQcm9maWxlclRpbWVyKGZpYmVyKSB7XG5cbiAgcHJvZmlsZXJTdGFydFRpbWUgPSBub3ckMSgpO1xuXG4gIGlmIChmaWJlci5hY3R1YWxTdGFydFRpbWUgPCAwKSB7XG4gICAgZmliZXIuYWN0dWFsU3RhcnRUaW1lID0gbm93JDEoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzdG9wUHJvZmlsZXJUaW1lcklmUnVubmluZyhmaWJlcikge1xuXG4gIHByb2ZpbGVyU3RhcnRUaW1lID0gLTE7XG59XG5cbmZ1bmN0aW9uIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkRGVsdGEoZmliZXIsIG92ZXJyaWRlQmFzZVRpbWUpIHtcblxuICBpZiAocHJvZmlsZXJTdGFydFRpbWUgPj0gMCkge1xuICAgIHZhciBlbGFwc2VkVGltZSA9IG5vdyQxKCkgLSBwcm9maWxlclN0YXJ0VGltZTtcbiAgICBmaWJlci5hY3R1YWxEdXJhdGlvbiArPSBlbGFwc2VkVGltZTtcblxuICAgIGlmIChvdmVycmlkZUJhc2VUaW1lKSB7XG4gICAgICBmaWJlci5zZWxmQmFzZUR1cmF0aW9uID0gZWxhcHNlZFRpbWU7XG4gICAgfVxuXG4gICAgcHJvZmlsZXJTdGFydFRpbWUgPSAtMTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWNvcmRMYXlvdXRFZmZlY3REdXJhdGlvbihmaWJlcikge1xuXG4gIGlmIChsYXlvdXRFZmZlY3RTdGFydFRpbWUgPj0gMCkge1xuICAgIHZhciBlbGFwc2VkVGltZSA9IG5vdyQxKCkgLSBsYXlvdXRFZmZlY3RTdGFydFRpbWU7XG4gICAgbGF5b3V0RWZmZWN0U3RhcnRUaW1lID0gLTE7IC8vIFN0b3JlIGR1cmF0aW9uIG9uIHRoZSBuZXh0IG5lYXJlc3QgUHJvZmlsZXIgYW5jZXN0b3JcbiAgICAvLyBPciB0aGUgcm9vdCAoZm9yIHRoZSBEZXZUb29scyBQcm9maWxlciB0byByZWFkKVxuXG4gICAgdmFyIHBhcmVudEZpYmVyID0gZmliZXIucmV0dXJuO1xuXG4gICAgd2hpbGUgKHBhcmVudEZpYmVyICE9PSBudWxsKSB7XG4gICAgICBzd2l0Y2ggKHBhcmVudEZpYmVyLnRhZykge1xuICAgICAgICBjYXNlIEhvc3RSb290OlxuICAgICAgICAgIHZhciByb290ID0gcGFyZW50RmliZXIuc3RhdGVOb2RlO1xuICAgICAgICAgIHJvb3QuZWZmZWN0RHVyYXRpb24gKz0gZWxhcHNlZFRpbWU7XG4gICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNhc2UgUHJvZmlsZXI6XG4gICAgICAgICAgdmFyIHBhcmVudFN0YXRlTm9kZSA9IHBhcmVudEZpYmVyLnN0YXRlTm9kZTtcbiAgICAgICAgICBwYXJlbnRTdGF0ZU5vZGUuZWZmZWN0RHVyYXRpb24gKz0gZWxhcHNlZFRpbWU7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLnJldHVybjtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVjb3JkUGFzc2l2ZUVmZmVjdER1cmF0aW9uKGZpYmVyKSB7XG5cbiAgaWYgKHBhc3NpdmVFZmZlY3RTdGFydFRpbWUgPj0gMCkge1xuICAgIHZhciBlbGFwc2VkVGltZSA9IG5vdyQxKCkgLSBwYXNzaXZlRWZmZWN0U3RhcnRUaW1lO1xuICAgIHBhc3NpdmVFZmZlY3RTdGFydFRpbWUgPSAtMTsgLy8gU3RvcmUgZHVyYXRpb24gb24gdGhlIG5leHQgbmVhcmVzdCBQcm9maWxlciBhbmNlc3RvclxuICAgIC8vIE9yIHRoZSByb290IChmb3IgdGhlIERldlRvb2xzIFByb2ZpbGVyIHRvIHJlYWQpXG5cbiAgICB2YXIgcGFyZW50RmliZXIgPSBmaWJlci5yZXR1cm47XG5cbiAgICB3aGlsZSAocGFyZW50RmliZXIgIT09IG51bGwpIHtcbiAgICAgIHN3aXRjaCAocGFyZW50RmliZXIudGFnKSB7XG4gICAgICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICAgICAgdmFyIHJvb3QgPSBwYXJlbnRGaWJlci5zdGF0ZU5vZGU7XG5cbiAgICAgICAgICBpZiAocm9vdCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcm9vdC5wYXNzaXZlRWZmZWN0RHVyYXRpb24gKz0gZWxhcHNlZFRpbWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNhc2UgUHJvZmlsZXI6XG4gICAgICAgICAgdmFyIHBhcmVudFN0YXRlTm9kZSA9IHBhcmVudEZpYmVyLnN0YXRlTm9kZTtcblxuICAgICAgICAgIGlmIChwYXJlbnRTdGF0ZU5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIERldGFjaGVkIGZpYmVycyBoYXZlIHRoZWlyIHN0YXRlIG5vZGUgY2xlYXJlZCBvdXQuXG4gICAgICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHRoZSByZXR1cm4gcG9pbnRlciBpcyBhbHNvIGNsZWFyZWQgb3V0LFxuICAgICAgICAgICAgLy8gc28gd2Ugd29uJ3QgYmUgYWJsZSB0byByZXBvcnQgdGhlIHRpbWUgc3BlbnQgaW4gdGhpcyBQcm9maWxlcidzIHN1YnRyZWUuXG4gICAgICAgICAgICBwYXJlbnRTdGF0ZU5vZGUucGFzc2l2ZUVmZmVjdER1cmF0aW9uICs9IGVsYXBzZWRUaW1lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgcGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5yZXR1cm47XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHN0YXJ0TGF5b3V0RWZmZWN0VGltZXIoKSB7XG5cbiAgbGF5b3V0RWZmZWN0U3RhcnRUaW1lID0gbm93JDEoKTtcbn1cblxuZnVuY3Rpb24gc3RhcnRQYXNzaXZlRWZmZWN0VGltZXIoKSB7XG5cbiAgcGFzc2l2ZUVmZmVjdFN0YXJ0VGltZSA9IG5vdyQxKCk7XG59XG5cbmZ1bmN0aW9uIHRyYW5zZmVyQWN0dWFsRHVyYXRpb24oZmliZXIpIHtcbiAgLy8gVHJhbnNmZXIgdGltZSBzcGVudCByZW5kZXJpbmcgdGhlc2UgY2hpbGRyZW4gc28gd2UgZG9uJ3QgbG9zZSBpdFxuICAvLyBhZnRlciB3ZSByZXJlbmRlci4gVGhpcyBpcyB1c2VkIGFzIGEgaGVscGVyIGluIHNwZWNpYWwgY2FzZXNcbiAgLy8gd2hlcmUgd2Ugc2hvdWxkIGNvdW50IHRoZSB3b3JrIG9mIG11bHRpcGxlIHBhc3Nlcy5cbiAgdmFyIGNoaWxkID0gZmliZXIuY2hpbGQ7XG5cbiAgd2hpbGUgKGNoaWxkKSB7XG4gICAgZmliZXIuYWN0dWFsRHVyYXRpb24gKz0gY2hpbGQuYWN0dWFsRHVyYXRpb247XG4gICAgY2hpbGQgPSBjaGlsZC5zaWJsaW5nO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNhcHR1cmVkVmFsdWUodmFsdWUsIHNvdXJjZSkge1xuICAvLyBJZiB0aGUgdmFsdWUgaXMgYW4gZXJyb3IsIGNhbGwgdGhpcyBmdW5jdGlvbiBpbW1lZGlhdGVseSBhZnRlciBpdCBpcyB0aHJvd25cbiAgLy8gc28gdGhlIHN0YWNrIGlzIGFjY3VyYXRlLlxuICByZXR1cm4ge1xuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBzb3VyY2U6IHNvdXJjZSxcbiAgICBzdGFjazogZ2V0U3RhY2tCeUZpYmVySW5EZXZBbmRQcm9kKHNvdXJjZSlcbiAgfTtcbn1cblxuLy8gVGhpcyBtb2R1bGUgaXMgZm9ya2VkIGluIGRpZmZlcmVudCBlbnZpcm9ubWVudHMuXG4vLyBCeSBkZWZhdWx0LCByZXR1cm4gYHRydWVgIHRvIGxvZyBlcnJvcnMgdG8gdGhlIGNvbnNvbGUuXG4vLyBGb3JrcyBjYW4gcmV0dXJuIGBmYWxzZWAgaWYgdGhpcyBpc24ndCBkZXNpcmFibGUuXG5mdW5jdGlvbiBzaG93RXJyb3JEaWFsb2coYm91bmRhcnksIGVycm9ySW5mbykge1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gbG9nQ2FwdHVyZWRFcnJvcihib3VuZGFyeSwgZXJyb3JJbmZvKSB7XG4gIHRyeSB7XG4gICAgdmFyIGxvZ0Vycm9yID0gc2hvd0Vycm9yRGlhbG9nKGJvdW5kYXJ5LCBlcnJvckluZm8pOyAvLyBBbGxvdyBpbmplY3RlZCBzaG93RXJyb3JEaWFsb2coKSB0byBwcmV2ZW50IGRlZmF1bHQgY29uc29sZS5lcnJvciBsb2dnaW5nLlxuICAgIC8vIFRoaXMgZW5hYmxlcyByZW5kZXJlcnMgbGlrZSBSZWFjdE5hdGl2ZSB0byBiZXR0ZXIgbWFuYWdlIHJlZGJveCBiZWhhdmlvci5cblxuICAgIGlmIChsb2dFcnJvciA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgZXJyb3IgPSBlcnJvckluZm8udmFsdWU7XG5cbiAgICBpZiAodHJ1ZSkge1xuICAgICAgdmFyIHNvdXJjZSA9IGVycm9ySW5mby5zb3VyY2U7XG4gICAgICB2YXIgc3RhY2sgPSBlcnJvckluZm8uc3RhY2s7XG4gICAgICB2YXIgY29tcG9uZW50U3RhY2sgPSBzdGFjayAhPT0gbnVsbCA/IHN0YWNrIDogJyc7IC8vIEJyb3dzZXJzIHN1cHBvcnQgc2lsZW5jaW5nIHVuY2F1Z2h0IGVycm9ycyBieSBjYWxsaW5nXG4gICAgICAvLyBgcHJldmVudERlZmF1bHQoKWAgaW4gd2luZG93IGBlcnJvcmAgaGFuZGxlci5cbiAgICAgIC8vIFdlIHJlY29yZCB0aGlzIGluZm9ybWF0aW9uIGFzIGFuIGV4cGFuZG8gb24gdGhlIGVycm9yLlxuXG4gICAgICBpZiAoZXJyb3IgIT0gbnVsbCAmJiBlcnJvci5fc3VwcHJlc3NMb2dnaW5nKSB7XG4gICAgICAgIGlmIChib3VuZGFyeS50YWcgPT09IENsYXNzQ29tcG9uZW50KSB7XG4gICAgICAgICAgLy8gVGhlIGVycm9yIGlzIHJlY292ZXJhYmxlIGFuZCB3YXMgc2lsZW5jZWQuXG4gICAgICAgICAgLy8gSWdub3JlIGl0IGFuZCBkb24ndCBwcmludCB0aGUgc3RhY2sgYWRkZW5kdW0uXG4gICAgICAgICAgLy8gVGhpcyBpcyBoYW5keSBmb3IgdGVzdGluZyBlcnJvciBib3VuZGFyaWVzIHdpdGhvdXQgbm9pc2UuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IC8vIFRoZSBlcnJvciBpcyBmYXRhbC4gU2luY2UgdGhlIHNpbGVuY2luZyBtaWdodCBoYXZlXG4gICAgICAgIC8vIGJlZW4gYWNjaWRlbnRhbCwgd2UnbGwgc3VyZmFjZSBpdCBhbnl3YXkuXG4gICAgICAgIC8vIEhvd2V2ZXIsIHRoZSBicm93c2VyIHdvdWxkIGhhdmUgc2lsZW5jZWQgdGhlIG9yaWdpbmFsIGVycm9yXG4gICAgICAgIC8vIHNvIHdlJ2xsIHByaW50IGl0IGZpcnN0LCBhbmQgdGhlbiBwcmludCB0aGUgc3RhY2sgYWRkZW5kdW0uXG5cblxuICAgICAgICBjb25zb2xlWydlcnJvciddKGVycm9yKTsgLy8gRG9uJ3QgdHJhbnNmb3JtIHRvIG91ciB3cmFwcGVyXG4gICAgICAgIC8vIEZvciBhIG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgdGhpcyBibG9jaywgc2VlOlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8xMzM4NFxuICAgICAgfVxuXG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IHNvdXJjZSA/IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoc291cmNlKSA6IG51bGw7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZU1lc3NhZ2UgPSBjb21wb25lbnROYW1lID8gXCJUaGUgYWJvdmUgZXJyb3Igb2NjdXJyZWQgaW4gdGhlIDxcIiArIGNvbXBvbmVudE5hbWUgKyBcIj4gY29tcG9uZW50OlwiIDogJ1RoZSBhYm92ZSBlcnJvciBvY2N1cnJlZCBpbiBvbmUgb2YgeW91ciBSZWFjdCBjb21wb25lbnRzOic7XG4gICAgICB2YXIgZXJyb3JCb3VuZGFyeU1lc3NhZ2U7XG5cbiAgICAgIGlmIChib3VuZGFyeS50YWcgPT09IEhvc3RSb290KSB7XG4gICAgICAgIGVycm9yQm91bmRhcnlNZXNzYWdlID0gJ0NvbnNpZGVyIGFkZGluZyBhbiBlcnJvciBib3VuZGFyeSB0byB5b3VyIHRyZWUgdG8gY3VzdG9taXplIGVycm9yIGhhbmRsaW5nIGJlaGF2aW9yLlxcbicgKyAnVmlzaXQgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2Vycm9yLWJvdW5kYXJpZXMgdG8gbGVhcm4gbW9yZSBhYm91dCBlcnJvciBib3VuZGFyaWVzLic7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgZXJyb3JCb3VuZGFyeU5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGJvdW5kYXJ5KSB8fCAnQW5vbnltb3VzJztcbiAgICAgICAgZXJyb3JCb3VuZGFyeU1lc3NhZ2UgPSBcIlJlYWN0IHdpbGwgdHJ5IHRvIHJlY3JlYXRlIHRoaXMgY29tcG9uZW50IHRyZWUgZnJvbSBzY3JhdGNoIFwiICsgKFwidXNpbmcgdGhlIGVycm9yIGJvdW5kYXJ5IHlvdSBwcm92aWRlZCwgXCIgKyBlcnJvckJvdW5kYXJ5TmFtZSArIFwiLlwiKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGNvbWJpbmVkTWVzc2FnZSA9IGNvbXBvbmVudE5hbWVNZXNzYWdlICsgXCJcXG5cIiArIGNvbXBvbmVudFN0YWNrICsgXCJcXG5cXG5cIiArIChcIlwiICsgZXJyb3JCb3VuZGFyeU1lc3NhZ2UpOyAvLyBJbiBkZXZlbG9wbWVudCwgd2UgcHJvdmlkZSBvdXIgb3duIG1lc3NhZ2Ugd2l0aCBqdXN0IHRoZSBjb21wb25lbnQgc3RhY2suXG4gICAgICAvLyBXZSBkb24ndCBpbmNsdWRlIHRoZSBvcmlnaW5hbCBlcnJvciBtZXNzYWdlIGFuZCBKUyBzdGFjayBiZWNhdXNlIHRoZSBicm93c2VyXG4gICAgICAvLyBoYXMgYWxyZWFkeSBwcmludGVkIGl0LiBFdmVuIGlmIHRoZSBhcHBsaWNhdGlvbiBzd2FsbG93cyB0aGUgZXJyb3IsIGl0IGlzIHN0aWxsXG4gICAgICAvLyBkaXNwbGF5ZWQgYnkgdGhlIGJyb3dzZXIgdGhhbmtzIHRvIHRoZSBERVYtb25seSBmYWtlIGV2ZW50IHRyaWNrIGluIFJlYWN0RXJyb3JVdGlscy5cblxuICAgICAgY29uc29sZVsnZXJyb3InXShjb21iaW5lZE1lc3NhZ2UpOyAvLyBEb24ndCB0cmFuc2Zvcm0gdG8gb3VyIHdyYXBwZXJcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSW4gcHJvZHVjdGlvbiwgd2UgcHJpbnQgdGhlIGVycm9yIGRpcmVjdGx5LlxuICAgICAgLy8gVGhpcyB3aWxsIGluY2x1ZGUgdGhlIG1lc3NhZ2UsIHRoZSBKUyBzdGFjaywgYW5kIGFueXRoaW5nIHRoZSBicm93c2VyIHdhbnRzIHRvIHNob3cuXG4gICAgICAvLyBXZSBwYXNzIHRoZSBlcnJvciBvYmplY3QgaW5zdGVhZCBvZiBjdXN0b20gbWVzc2FnZSBzbyB0aGF0IHRoZSBicm93c2VyIGRpc3BsYXlzIHRoZSBlcnJvciBuYXRpdmVseS5cbiAgICAgIGNvbnNvbGVbJ2Vycm9yJ10oZXJyb3IpOyAvLyBEb24ndCB0cmFuc2Zvcm0gdG8gb3VyIHdyYXBwZXJcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBUaGlzIG1ldGhvZCBtdXN0IG5vdCB0aHJvdywgb3IgUmVhY3QgaW50ZXJuYWwgc3RhdGUgd2lsbCBnZXQgbWVzc2VkIHVwLlxuICAgIC8vIElmIGNvbnNvbGUuZXJyb3IgaXMgb3ZlcnJpZGRlbiwgb3IgbG9nQ2FwdHVyZWRFcnJvcigpIHNob3dzIGEgZGlhbG9nIHRoYXQgdGhyb3dzLFxuICAgIC8vIHdlIHdhbnQgdG8gcmVwb3J0IHRoaXMgZXJyb3Igb3V0c2lkZSBvZiB0aGUgbm9ybWFsIHN0YWNrIGFzIGEgbGFzdCByZXNvcnQuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzE4OFxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgdGhyb3cgZTtcbiAgICB9KTtcbiAgfVxufVxuXG52YXIgUG9zc2libHlXZWFrTWFwJDEgPSB0eXBlb2YgV2Vha01hcCA9PT0gJ2Z1bmN0aW9uJyA/IFdlYWtNYXAgOiBNYXA7XG5cbmZ1bmN0aW9uIGNyZWF0ZVJvb3RFcnJvclVwZGF0ZShmaWJlciwgZXJyb3JJbmZvLCBsYW5lKSB7XG4gIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoTm9UaW1lc3RhbXAsIGxhbmUpOyAvLyBVbm1vdW50IHRoZSByb290IGJ5IHJlbmRlcmluZyBudWxsLlxuXG4gIHVwZGF0ZS50YWcgPSBDYXB0dXJlVXBkYXRlOyAvLyBDYXV0aW9uOiBSZWFjdCBEZXZUb29scyBjdXJyZW50bHkgZGVwZW5kcyBvbiB0aGlzIHByb3BlcnR5XG4gIC8vIGJlaW5nIGNhbGxlZCBcImVsZW1lbnRcIi5cblxuICB1cGRhdGUucGF5bG9hZCA9IHtcbiAgICBlbGVtZW50OiBudWxsXG4gIH07XG4gIHZhciBlcnJvciA9IGVycm9ySW5mby52YWx1ZTtcblxuICB1cGRhdGUuY2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgb25VbmNhdWdodEVycm9yKGVycm9yKTtcbiAgICBsb2dDYXB0dXJlZEVycm9yKGZpYmVyLCBlcnJvckluZm8pO1xuICB9O1xuXG4gIHJldHVybiB1cGRhdGU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNsYXNzRXJyb3JVcGRhdGUoZmliZXIsIGVycm9ySW5mbywgbGFuZSkge1xuICB2YXIgdXBkYXRlID0gY3JlYXRlVXBkYXRlKE5vVGltZXN0YW1wLCBsYW5lKTtcbiAgdXBkYXRlLnRhZyA9IENhcHR1cmVVcGRhdGU7XG4gIHZhciBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgPSBmaWJlci50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjtcblxuICBpZiAodHlwZW9mIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHZhciBlcnJvciQxID0gZXJyb3JJbmZvLnZhbHVlO1xuXG4gICAgdXBkYXRlLnBheWxvYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yJDEpO1xuICAgIH07XG5cbiAgICB1cGRhdGUuY2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB7XG4gICAgICAgIG1hcmtGYWlsZWRFcnJvckJvdW5kYXJ5Rm9ySG90UmVsb2FkaW5nKGZpYmVyKTtcbiAgICAgIH1cblxuICAgICAgbG9nQ2FwdHVyZWRFcnJvcihmaWJlciwgZXJyb3JJbmZvKTtcbiAgICB9O1xuICB9XG5cbiAgdmFyIGluc3QgPSBmaWJlci5zdGF0ZU5vZGU7XG5cbiAgaWYgKGluc3QgIT09IG51bGwgJiYgdHlwZW9mIGluc3QuY29tcG9uZW50RGlkQ2F0Y2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICB1cGRhdGUuY2FsbGJhY2sgPSBmdW5jdGlvbiBjYWxsYmFjaygpIHtcbiAgICAgIHtcbiAgICAgICAgbWFya0ZhaWxlZEVycm9yQm91bmRhcnlGb3JIb3RSZWxvYWRpbmcoZmliZXIpO1xuICAgICAgfVxuXG4gICAgICBsb2dDYXB0dXJlZEVycm9yKGZpYmVyLCBlcnJvckluZm8pO1xuXG4gICAgICBpZiAodHlwZW9mIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBUbyBwcmVzZXJ2ZSB0aGUgcHJlZXhpc3RpbmcgcmV0cnkgYmVoYXZpb3Igb2YgZXJyb3IgYm91bmRhcmllcyxcbiAgICAgICAgLy8gd2Uga2VlcCB0cmFjayBvZiB3aGljaCBvbmVzIGFscmVhZHkgZmFpbGVkIGR1cmluZyB0aGlzIGJhdGNoLlxuICAgICAgICAvLyBUaGlzIGdldHMgcmVzZXQgYmVmb3JlIHdlIHlpZWxkIGJhY2sgdG8gdGhlIGJyb3dzZXIuXG4gICAgICAgIC8vIFRPRE86IFdhcm4gaW4gc3RyaWN0IG1vZGUgaWYgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIGlzXG4gICAgICAgIC8vIG5vdCBkZWZpbmVkLlxuICAgICAgICBtYXJrTGVnYWN5RXJyb3JCb3VuZGFyeUFzRmFpbGVkKHRoaXMpO1xuICAgICAgfVxuXG4gICAgICB2YXIgZXJyb3IkMSA9IGVycm9ySW5mby52YWx1ZTtcbiAgICAgIHZhciBzdGFjayA9IGVycm9ySW5mby5zdGFjaztcbiAgICAgIHRoaXMuY29tcG9uZW50RGlkQ2F0Y2goZXJyb3IkMSwge1xuICAgICAgICBjb21wb25lbnRTdGFjazogc3RhY2sgIT09IG51bGwgPyBzdGFjayA6ICcnXG4gICAgICB9KTtcblxuICAgICAge1xuICAgICAgICBpZiAodHlwZW9mIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIC8vIElmIGNvbXBvbmVudERpZENhdGNoIGlzIHRoZSBvbmx5IGVycm9yIGJvdW5kYXJ5IG1ldGhvZCBkZWZpbmVkLFxuICAgICAgICAgIC8vIHRoZW4gaXQgbmVlZHMgdG8gY2FsbCBzZXRTdGF0ZSB0byByZWNvdmVyIGZyb20gZXJyb3JzLlxuICAgICAgICAgIC8vIElmIG5vIHN0YXRlIHVwZGF0ZSBpcyBzY2hlZHVsZWQgdGhlbiB0aGUgYm91bmRhcnkgd2lsbCBzd2FsbG93IHRoZSBlcnJvci5cbiAgICAgICAgICBpZiAoIWluY2x1ZGVzU29tZUxhbmUoZmliZXIubGFuZXMsIFN5bmNMYW5lKSkge1xuICAgICAgICAgICAgZXJyb3IoJyVzOiBFcnJvciBib3VuZGFyaWVzIHNob3VsZCBpbXBsZW1lbnQgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKCkuICcgKyAnSW4gdGhhdCBtZXRob2QsIHJldHVybiBhIHN0YXRlIHVwZGF0ZSB0byBkaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2Ugb3IgZmFsbGJhY2sgVUkuJywgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgfHwgJ1Vua25vd24nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHVwZGF0ZTtcbn1cblxuZnVuY3Rpb24gYXR0YWNoUGluZ0xpc3RlbmVyKHJvb3QsIHdha2VhYmxlLCBsYW5lcykge1xuICAvLyBBdHRhY2ggYSBwaW5nIGxpc3RlbmVyXG4gIC8vXG4gIC8vIFRoZSBkYXRhIG1pZ2h0IHJlc29sdmUgYmVmb3JlIHdlIGhhdmUgYSBjaGFuY2UgdG8gY29tbWl0IHRoZSBmYWxsYmFjay4gT3IsXG4gIC8vIGluIHRoZSBjYXNlIG9mIGEgcmVmcmVzaCwgd2UnbGwgbmV2ZXIgY29tbWl0IGEgZmFsbGJhY2suIFNvIHdlIG5lZWQgdG9cbiAgLy8gYXR0YWNoIGEgbGlzdGVuZXIgbm93LiBXaGVuIGl0IHJlc29sdmVzIChcInBpbmdzXCIpLCB3ZSBjYW4gZGVjaWRlIHdoZXRoZXIgdG9cbiAgLy8gdHJ5IHJlbmRlcmluZyB0aGUgdHJlZSBhZ2Fpbi5cbiAgLy9cbiAgLy8gT25seSBhdHRhY2ggYSBsaXN0ZW5lciBpZiBvbmUgZG9lcyBub3QgYWxyZWFkeSBleGlzdCBmb3IgdGhlIGxhbmVzXG4gIC8vIHdlJ3JlIGN1cnJlbnRseSByZW5kZXJpbmcgKHdoaWNoIGFjdHMgbGlrZSBhIFwidGhyZWFkIElEXCIgaGVyZSkuXG4gIC8vXG4gIC8vIFdlIG9ubHkgbmVlZCB0byBkbyB0aGlzIGluIGNvbmN1cnJlbnQgbW9kZS4gTGVnYWN5IFN1c3BlbnNlIGFsd2F5c1xuICAvLyBjb21taXRzIGZhbGxiYWNrcyBzeW5jaHJvbm91c2x5LCBzbyB0aGVyZSBhcmUgbm8gcGluZ3MuXG4gIHZhciBwaW5nQ2FjaGUgPSByb290LnBpbmdDYWNoZTtcbiAgdmFyIHRocmVhZElEcztcblxuICBpZiAocGluZ0NhY2hlID09PSBudWxsKSB7XG4gICAgcGluZ0NhY2hlID0gcm9vdC5waW5nQ2FjaGUgPSBuZXcgUG9zc2libHlXZWFrTWFwJDEoKTtcbiAgICB0aHJlYWRJRHMgPSBuZXcgU2V0KCk7XG4gICAgcGluZ0NhY2hlLnNldCh3YWtlYWJsZSwgdGhyZWFkSURzKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJlYWRJRHMgPSBwaW5nQ2FjaGUuZ2V0KHdha2VhYmxlKTtcblxuICAgIGlmICh0aHJlYWRJRHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyZWFkSURzID0gbmV3IFNldCgpO1xuICAgICAgcGluZ0NhY2hlLnNldCh3YWtlYWJsZSwgdGhyZWFkSURzKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIXRocmVhZElEcy5oYXMobGFuZXMpKSB7XG4gICAgLy8gTWVtb2l6ZSB1c2luZyB0aGUgdGhyZWFkIElEIHRvIHByZXZlbnQgcmVkdW5kYW50IGxpc3RlbmVycy5cbiAgICB0aHJlYWRJRHMuYWRkKGxhbmVzKTtcbiAgICB2YXIgcGluZyA9IHBpbmdTdXNwZW5kZWRSb290LmJpbmQobnVsbCwgcm9vdCwgd2FrZWFibGUsIGxhbmVzKTtcblxuICAgIHtcbiAgICAgIGlmIChpc0RldlRvb2xzUHJlc2VudCkge1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIHBlbmRpbmcgd29yayBzdGlsbCwgcmVzdG9yZSB0aGUgb3JpZ2luYWwgdXBkYXRlcnNcbiAgICAgICAgcmVzdG9yZVBlbmRpbmdVcGRhdGVycyhyb290LCBsYW5lcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgd2FrZWFibGUudGhlbihwaW5nLCBwaW5nKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhdHRhY2hSZXRyeUxpc3RlbmVyKHN1c3BlbnNlQm91bmRhcnksIHJvb3QsIHdha2VhYmxlLCBsYW5lcykge1xuICAvLyBSZXRyeSBsaXN0ZW5lclxuICAvL1xuICAvLyBJZiB0aGUgZmFsbGJhY2sgZG9lcyBjb21taXQsIHdlIG5lZWQgdG8gYXR0YWNoIGEgZGlmZmVyZW50IHR5cGUgb2ZcbiAgLy8gbGlzdGVuZXIuIFRoaXMgb25lIHNjaGVkdWxlcyBhbiB1cGRhdGUgb24gdGhlIFN1c3BlbnNlIGJvdW5kYXJ5IHRvIHR1cm5cbiAgLy8gdGhlIGZhbGxiYWNrIHN0YXRlIG9mZi5cbiAgLy9cbiAgLy8gU3Rhc2ggdGhlIHdha2VhYmxlIG9uIHRoZSBib3VuZGFyeSBmaWJlciBzbyB3ZSBjYW4gYWNjZXNzIGl0IGluIHRoZVxuICAvLyBjb21taXQgcGhhc2UuXG4gIC8vXG4gIC8vIFdoZW4gdGhlIHdha2VhYmxlIHJlc29sdmVzLCB3ZSdsbCBhdHRlbXB0IHRvIHJlbmRlciB0aGUgYm91bmRhcnlcbiAgLy8gYWdhaW4gKFwicmV0cnlcIikuXG4gIHZhciB3YWtlYWJsZXMgPSBzdXNwZW5zZUJvdW5kYXJ5LnVwZGF0ZVF1ZXVlO1xuXG4gIGlmICh3YWtlYWJsZXMgPT09IG51bGwpIHtcbiAgICB2YXIgdXBkYXRlUXVldWUgPSBuZXcgU2V0KCk7XG4gICAgdXBkYXRlUXVldWUuYWRkKHdha2VhYmxlKTtcbiAgICBzdXNwZW5zZUJvdW5kYXJ5LnVwZGF0ZVF1ZXVlID0gdXBkYXRlUXVldWU7XG4gIH0gZWxzZSB7XG4gICAgd2FrZWFibGVzLmFkZCh3YWtlYWJsZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzZXRTdXNwZW5kZWRDb21wb25lbnQoc291cmNlRmliZXIsIHJvb3RSZW5kZXJMYW5lcykge1xuICAvLyBBIGxlZ2FjeSBtb2RlIFN1c3BlbnNlIHF1aXJrLCBvbmx5IHJlbGV2YW50IHRvIGhvb2sgY29tcG9uZW50cy5cblxuXG4gIHZhciB0YWcgPSBzb3VyY2VGaWJlci50YWc7XG5cbiAgaWYgKChzb3VyY2VGaWJlci5tb2RlICYgQ29uY3VycmVudE1vZGUpID09PSBOb01vZGUgJiYgKHRhZyA9PT0gRnVuY3Rpb25Db21wb25lbnQgfHwgdGFnID09PSBGb3J3YXJkUmVmIHx8IHRhZyA9PT0gU2ltcGxlTWVtb0NvbXBvbmVudCkpIHtcbiAgICB2YXIgY3VycmVudFNvdXJjZSA9IHNvdXJjZUZpYmVyLmFsdGVybmF0ZTtcblxuICAgIGlmIChjdXJyZW50U291cmNlKSB7XG4gICAgICBzb3VyY2VGaWJlci51cGRhdGVRdWV1ZSA9IGN1cnJlbnRTb3VyY2UudXBkYXRlUXVldWU7XG4gICAgICBzb3VyY2VGaWJlci5tZW1vaXplZFN0YXRlID0gY3VycmVudFNvdXJjZS5tZW1vaXplZFN0YXRlO1xuICAgICAgc291cmNlRmliZXIubGFuZXMgPSBjdXJyZW50U291cmNlLmxhbmVzO1xuICAgIH0gZWxzZSB7XG4gICAgICBzb3VyY2VGaWJlci51cGRhdGVRdWV1ZSA9IG51bGw7XG4gICAgICBzb3VyY2VGaWJlci5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0TmVhcmVzdFN1c3BlbnNlQm91bmRhcnlUb0NhcHR1cmUocmV0dXJuRmliZXIpIHtcbiAgdmFyIG5vZGUgPSByZXR1cm5GaWJlcjtcblxuICBkbyB7XG4gICAgaWYgKG5vZGUudGFnID09PSBTdXNwZW5zZUNvbXBvbmVudCAmJiBzaG91bGRDYXB0dXJlU3VzcGVuc2Uobm9kZSkpIHtcbiAgICAgIHJldHVybiBub2RlO1xuICAgIH0gLy8gVGhpcyBib3VuZGFyeSBhbHJlYWR5IGNhcHR1cmVkIGR1cmluZyB0aGlzIHJlbmRlci4gQ29udGludWUgdG8gdGhlIG5leHRcbiAgICAvLyBib3VuZGFyeS5cblxuXG4gICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICB9IHdoaWxlIChub2RlICE9PSBudWxsKTtcblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gbWFya1N1c3BlbnNlQm91bmRhcnlTaG91bGRDYXB0dXJlKHN1c3BlbnNlQm91bmRhcnksIHJldHVybkZpYmVyLCBzb3VyY2VGaWJlciwgcm9vdCwgcm9vdFJlbmRlckxhbmVzKSB7XG4gIC8vIFRoaXMgbWFya3MgYSBTdXNwZW5zZSBib3VuZGFyeSBzbyB0aGF0IHdoZW4gd2UncmUgdW53aW5kaW5nIHRoZSBzdGFjayxcbiAgLy8gaXQgY2FwdHVyZXMgdGhlIHN1c3BlbmRlZCBcImV4Y2VwdGlvblwiIGFuZCBkb2VzIGEgc2Vjb25kIChmYWxsYmFjaykgcGFzcy5cbiAgaWYgKChzdXNwZW5zZUJvdW5kYXJ5Lm1vZGUgJiBDb25jdXJyZW50TW9kZSkgPT09IE5vTW9kZSkge1xuICAgIC8vIExlZ2FjeSBNb2RlIFN1c3BlbnNlXG4gICAgLy9cbiAgICAvLyBJZiB0aGUgYm91bmRhcnkgaXMgaW4gbGVnYWN5IG1vZGUsIHdlIHNob3VsZCAqbm90KlxuICAgIC8vIHN1c3BlbmQgdGhlIGNvbW1pdC4gUHJldGVuZCBhcyBpZiB0aGUgc3VzcGVuZGVkIGNvbXBvbmVudCByZW5kZXJlZFxuICAgIC8vIG51bGwgYW5kIGtlZXAgcmVuZGVyaW5nLiBXaGVuIHRoZSBTdXNwZW5zZSBib3VuZGFyeSBjb21wbGV0ZXMsXG4gICAgLy8gd2UnbGwgZG8gYSBzZWNvbmQgcGFzcyB0byByZW5kZXIgdGhlIGZhbGxiYWNrLlxuICAgIGlmIChzdXNwZW5zZUJvdW5kYXJ5ID09PSByZXR1cm5GaWJlcikge1xuICAgICAgLy8gU3BlY2lhbCBjYXNlIHdoZXJlIHdlIHN1c3BlbmRlZCB3aGlsZSByZWNvbmNpbGluZyB0aGUgY2hpbGRyZW4gb2ZcbiAgICAgIC8vIGEgU3VzcGVuc2UgYm91bmRhcnkncyBpbm5lciBPZmZzY3JlZW4gd3JhcHBlciBmaWJlci4gVGhpcyBoYXBwZW5zXG4gICAgICAvLyB3aGVuIGEgUmVhY3QubGF6eSBjb21wb25lbnQgaXMgYSBkaXJlY3QgY2hpbGQgb2YgYVxuICAgICAgLy8gU3VzcGVuc2UgYm91bmRhcnkuXG4gICAgICAvL1xuICAgICAgLy8gU3VzcGVuc2UgYm91bmRhcmllcyBhcmUgaW1wbGVtZW50ZWQgYXMgbXVsdGlwbGUgZmliZXJzLCBidXQgdGhleVxuICAgICAgLy8gYXJlIGEgc2luZ2xlIGNvbmNlcHR1YWwgdW5pdC4gVGhlIGxlZ2FjeSBtb2RlIGJlaGF2aW9yIHdoZXJlIHdlXG4gICAgICAvLyBwcmV0ZW5kIHRoZSBzdXNwZW5kZWQgZmliZXIgY29tbWl0dGVkIGFzIGBudWxsYCB3b24ndCB3b3JrLFxuICAgICAgLy8gYmVjYXVzZSBpbiB0aGlzIGNhc2UgdGhlIFwic3VzcGVuZGVkXCIgZmliZXIgaXMgdGhlIGlubmVyXG4gICAgICAvLyBPZmZzY3JlZW4gd3JhcHBlci5cbiAgICAgIC8vXG4gICAgICAvLyBCZWNhdXNlIHRoZSBjb250ZW50cyBvZiB0aGUgYm91bmRhcnkgaGF2ZW4ndCBzdGFydGVkIHJlbmRlcmluZ1xuICAgICAgLy8geWV0IChpLmUuIG5vdGhpbmcgaW4gdGhlIHRyZWUgaGFzIHBhcnRpYWxseSByZW5kZXJlZCkgd2UgY2FuXG4gICAgICAvLyBzd2l0Y2ggdG8gdGhlIHJlZ3VsYXIsIGNvbmN1cnJlbnQgbW9kZSBiZWhhdmlvcjogbWFyayB0aGVcbiAgICAgIC8vIGJvdW5kYXJ5IHdpdGggU2hvdWxkQ2FwdHVyZSBhbmQgZW50ZXIgdGhlIHVud2luZCBwaGFzZS5cbiAgICAgIHN1c3BlbnNlQm91bmRhcnkuZmxhZ3MgfD0gU2hvdWxkQ2FwdHVyZTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VzcGVuc2VCb3VuZGFyeS5mbGFncyB8PSBEaWRDYXB0dXJlO1xuICAgICAgc291cmNlRmliZXIuZmxhZ3MgfD0gRm9yY2VVcGRhdGVGb3JMZWdhY3lTdXNwZW5zZTsgLy8gV2UncmUgZ29pbmcgdG8gY29tbWl0IHRoaXMgZmliZXIgZXZlbiB0aG91Z2ggaXQgZGlkbid0IGNvbXBsZXRlLlxuICAgICAgLy8gQnV0IHdlIHNob3VsZG4ndCBjYWxsIGFueSBsaWZlY3ljbGUgbWV0aG9kcyBvciBjYWxsYmFja3MuIFJlbW92ZVxuICAgICAgLy8gYWxsIGxpZmVjeWNsZSBlZmZlY3QgdGFncy5cblxuICAgICAgc291cmNlRmliZXIuZmxhZ3MgJj0gfihMaWZlY3ljbGVFZmZlY3RNYXNrIHwgSW5jb21wbGV0ZSk7XG5cbiAgICAgIGlmIChzb3VyY2VGaWJlci50YWcgPT09IENsYXNzQ29tcG9uZW50KSB7XG4gICAgICAgIHZhciBjdXJyZW50U291cmNlRmliZXIgPSBzb3VyY2VGaWJlci5hbHRlcm5hdGU7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRTb3VyY2VGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFRoaXMgaXMgYSBuZXcgbW91bnQuIENoYW5nZSB0aGUgdGFnIHNvIGl0J3Mgbm90IG1pc3Rha2VuIGZvciBhXG4gICAgICAgICAgLy8gY29tcGxldGVkIGNsYXNzIGNvbXBvbmVudC4gRm9yIGV4YW1wbGUsIHdlIHNob3VsZCBub3QgY2FsbFxuICAgICAgICAgIC8vIGNvbXBvbmVudFdpbGxVbm1vdW50IGlmIGl0IGlzIGRlbGV0ZWQuXG4gICAgICAgICAgc291cmNlRmliZXIudGFnID0gSW5jb21wbGV0ZUNsYXNzQ29tcG9uZW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFdoZW4gd2UgdHJ5IHJlbmRlcmluZyBhZ2Fpbiwgd2Ugc2hvdWxkIG5vdCByZXVzZSB0aGUgY3VycmVudCBmaWJlcixcbiAgICAgICAgICAvLyBzaW5jZSBpdCdzIGtub3duIHRvIGJlIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS4gVXNlIGEgZm9yY2UgdXBkYXRlIHRvXG4gICAgICAgICAgLy8gcHJldmVudCBhIGJhaWwgb3V0LlxuICAgICAgICAgIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoTm9UaW1lc3RhbXAsIFN5bmNMYW5lKTtcbiAgICAgICAgICB1cGRhdGUudGFnID0gRm9yY2VVcGRhdGU7XG4gICAgICAgICAgZW5xdWV1ZVVwZGF0ZShzb3VyY2VGaWJlciwgdXBkYXRlKTtcbiAgICAgICAgfVxuICAgICAgfSAvLyBUaGUgc291cmNlIGZpYmVyIGRpZCBub3QgY29tcGxldGUuIE1hcmsgaXQgd2l0aCBTeW5jIHByaW9yaXR5IHRvXG4gICAgICAvLyBpbmRpY2F0ZSB0aGF0IGl0IHN0aWxsIGhhcyBwZW5kaW5nIHdvcmsuXG5cblxuICAgICAgc291cmNlRmliZXIubGFuZXMgPSBtZXJnZUxhbmVzKHNvdXJjZUZpYmVyLmxhbmVzLCBTeW5jTGFuZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1c3BlbnNlQm91bmRhcnk7XG4gIH0gLy8gQ29uZmlybWVkIHRoYXQgdGhlIGJvdW5kYXJ5IGlzIGluIGEgY29uY3VycmVudCBtb2RlIHRyZWUuIENvbnRpbnVlXG4gIC8vIHdpdGggdGhlIG5vcm1hbCBzdXNwZW5kIHBhdGguXG4gIC8vXG4gIC8vIEFmdGVyIHRoaXMgd2UnbGwgdXNlIGEgc2V0IG9mIGhldXJpc3RpY3MgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhpc1xuICAvLyByZW5kZXIgcGFzcyB3aWxsIHJ1biB0byBjb21wbGV0aW9uIG9yIHJlc3RhcnQgb3IgXCJzdXNwZW5kXCIgdGhlIGNvbW1pdC5cbiAgLy8gVGhlIGFjdHVhbCBsb2dpYyBmb3IgdGhpcyBpcyBzcHJlYWQgb3V0IGluIGRpZmZlcmVudCBwbGFjZXMuXG4gIC8vXG4gIC8vIFRoaXMgZmlyc3QgcHJpbmNpcGxlIGlzIHRoYXQgaWYgd2UncmUgZ29pbmcgdG8gc3VzcGVuZCB3aGVuIHdlIGNvbXBsZXRlXG4gIC8vIGEgcm9vdCwgdGhlbiB3ZSBzaG91bGQgYWxzbyByZXN0YXJ0IGlmIHdlIGdldCBhbiB1cGRhdGUgb3IgcGluZyB0aGF0XG4gIC8vIG1pZ2h0IHVuc3VzcGVuZCBpdCwgYW5kIHZpY2UgdmVyc2EuIFRoZSBvbmx5IHJlYXNvbiB0byBzdXNwZW5kIGlzXG4gIC8vIGJlY2F1c2UgeW91IHRoaW5rIHlvdSBtaWdodCB3YW50IHRvIHJlc3RhcnQgYmVmb3JlIGNvbW1pdHRpbmcuIEhvd2V2ZXIsXG4gIC8vIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byByZXN0YXJ0IG9ubHkgd2hpbGUgaW4gdGhlIHBlcmlvZCB3ZSdyZSBzdXNwZW5kZWQuXG4gIC8vXG4gIC8vIFJlc3RhcnRpbmcgdG9vIGFnZ3Jlc3NpdmVseSBpcyBhbHNvIG5vdCBnb29kIGJlY2F1c2UgaXQgc3RhcnZlcyBvdXQgYW55XG4gIC8vIGludGVybWVkaWF0ZSBsb2FkaW5nIHN0YXRlLiBTbyB3ZSB1c2UgaGV1cmlzdGljcyB0byBkZXRlcm1pbmUgd2hlbi5cbiAgLy8gU3VzcGVuc2UgSGV1cmlzdGljc1xuICAvL1xuICAvLyBJZiBub3RoaW5nIHRocmV3IGEgUHJvbWlzZSBvciBhbGwgdGhlIHNhbWUgZmFsbGJhY2tzIGFyZSBhbHJlYWR5IHNob3dpbmcsXG4gIC8vIHRoZW4gZG9uJ3Qgc3VzcGVuZC9yZXN0YXJ0LlxuICAvL1xuICAvLyBJZiB0aGlzIGlzIGFuIGluaXRpYWwgcmVuZGVyIG9mIGEgbmV3IHRyZWUgb2YgU3VzcGVuc2UgYm91bmRhcmllcyBhbmRcbiAgLy8gdGhvc2UgdHJpZ2dlciBhIGZhbGxiYWNrLCB0aGVuIGRvbid0IHN1c3BlbmQvcmVzdGFydC4gV2Ugd2FudCB0byBlbnN1cmVcbiAgLy8gdGhhdCB3ZSBjYW4gc2hvdyB0aGUgaW5pdGlhbCBsb2FkaW5nIHN0YXRlIGFzIHF1aWNrbHkgYXMgcG9zc2libGUuXG4gIC8vXG4gIC8vIElmIHdlIGhpdCBhIFwiRGVsYXllZFwiIGNhc2UsIHN1Y2ggYXMgd2hlbiB3ZSdkIHN3aXRjaCBmcm9tIGNvbnRlbnQgYmFjayBpbnRvXG4gIC8vIGEgZmFsbGJhY2ssIHRoZW4gd2Ugc2hvdWxkIGFsd2F5cyBzdXNwZW5kL3Jlc3RhcnQuIFRyYW5zaXRpb25zIGFwcGx5XG4gIC8vIHRvIHRoaXMgY2FzZS4gSWYgbm9uZSBpcyBkZWZpbmVkLCBKTkQgaXMgdXNlZCBpbnN0ZWFkLlxuICAvL1xuICAvLyBJZiB3ZSdyZSBhbHJlYWR5IHNob3dpbmcgYSBmYWxsYmFjayBhbmQgaXQgZ2V0cyBcInJldHJpZWRcIiwgYWxsb3dpbmcgdXMgdG8gc2hvd1xuICAvLyBhbm90aGVyIGxldmVsLCBidXQgdGhlcmUncyBzdGlsbCBhbiBpbm5lciBib3VuZGFyeSB0aGF0IHdvdWxkIHNob3cgYSBmYWxsYmFjayxcbiAgLy8gdGhlbiB3ZSBzdXNwZW5kL3Jlc3RhcnQgZm9yIDUwMG1zIHNpbmNlIHRoZSBsYXN0IHRpbWUgd2Ugc2hvd2VkIGEgZmFsbGJhY2tcbiAgLy8gYW55d2hlcmUgaW4gdGhlIHRyZWUuIFRoaXMgZWZmZWN0aXZlbHkgdGhyb3R0bGVzIHByb2dyZXNzaXZlIGxvYWRpbmcgaW50byBhXG4gIC8vIGNvbnNpc3RlbnQgdHJhaW4gb2YgY29tbWl0cy4gVGhpcyBhbHNvIGdpdmVzIHVzIGFuIG9wcG9ydHVuaXR5IHRvIHJlc3RhcnQgdG9cbiAgLy8gZ2V0IHRvIHRoZSBjb21wbGV0ZWQgc3RhdGUgc2xpZ2h0bHkgZWFybGllci5cbiAgLy9cbiAgLy8gSWYgdGhlcmUncyBhbWJpZ3VpdHkgZHVlIHRvIGJhdGNoaW5nIGl0J3MgcmVzb2x2ZWQgaW4gcHJlZmVyZW5jZSBvZjpcbiAgLy8gMSkgXCJkZWxheWVkXCIsIDIpIFwiaW5pdGlhbCByZW5kZXJcIiwgMykgXCJyZXRyeVwiLlxuICAvL1xuICAvLyBXZSB3YW50IHRvIGVuc3VyZSB0aGF0IGEgXCJidXN5XCIgc3RhdGUgZG9lc24ndCBnZXQgZm9yY2UgY29tbWl0dGVkLiBXZSB3YW50IHRvXG4gIC8vIGVuc3VyZSB0aGF0IG5ldyBpbml0aWFsIGxvYWRpbmcgc3RhdGVzIGNhbiBjb21taXQgYXMgc29vbiBhcyBwb3NzaWJsZS5cblxuXG4gIHN1c3BlbnNlQm91bmRhcnkuZmxhZ3MgfD0gU2hvdWxkQ2FwdHVyZTsgLy8gVE9ETzogSSB0aGluayB3ZSBjYW4gcmVtb3ZlIHRoaXMsIHNpbmNlIHdlIG5vdyB1c2UgYERpZENhcHR1cmVgIGluXG4gIC8vIHRoZSBiZWdpbiBwaGFzZSB0byBwcmV2ZW50IGFuIGVhcmx5IGJhaWxvdXQuXG5cbiAgc3VzcGVuc2VCb3VuZGFyeS5sYW5lcyA9IHJvb3RSZW5kZXJMYW5lcztcbiAgcmV0dXJuIHN1c3BlbnNlQm91bmRhcnk7XG59XG5cbmZ1bmN0aW9uIHRocm93RXhjZXB0aW9uKHJvb3QsIHJldHVybkZpYmVyLCBzb3VyY2VGaWJlciwgdmFsdWUsIHJvb3RSZW5kZXJMYW5lcykge1xuICAvLyBUaGUgc291cmNlIGZpYmVyIGRpZCBub3QgY29tcGxldGUuXG4gIHNvdXJjZUZpYmVyLmZsYWdzIHw9IEluY29tcGxldGU7XG5cbiAge1xuICAgIGlmIChpc0RldlRvb2xzUHJlc2VudCkge1xuICAgICAgLy8gSWYgd2UgaGF2ZSBwZW5kaW5nIHdvcmsgc3RpbGwsIHJlc3RvcmUgdGhlIG9yaWdpbmFsIHVwZGF0ZXJzXG4gICAgICByZXN0b3JlUGVuZGluZ1VwZGF0ZXJzKHJvb3QsIHJvb3RSZW5kZXJMYW5lcyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHZhbHVlLnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBUaGlzIGlzIGEgd2FrZWFibGUuIFRoZSBjb21wb25lbnQgc3VzcGVuZGVkLlxuICAgIHZhciB3YWtlYWJsZSA9IHZhbHVlO1xuICAgIHJlc2V0U3VzcGVuZGVkQ29tcG9uZW50KHNvdXJjZUZpYmVyKTtcblxuXG4gICAgdmFyIHN1c3BlbnNlQm91bmRhcnkgPSBnZXROZWFyZXN0U3VzcGVuc2VCb3VuZGFyeVRvQ2FwdHVyZShyZXR1cm5GaWJlcik7XG5cbiAgICBpZiAoc3VzcGVuc2VCb3VuZGFyeSAhPT0gbnVsbCkge1xuICAgICAgc3VzcGVuc2VCb3VuZGFyeS5mbGFncyAmPSB+Rm9yY2VDbGllbnRSZW5kZXI7XG4gICAgICBtYXJrU3VzcGVuc2VCb3VuZGFyeVNob3VsZENhcHR1cmUoc3VzcGVuc2VCb3VuZGFyeSwgcmV0dXJuRmliZXIsIHNvdXJjZUZpYmVyLCByb290LCByb290UmVuZGVyTGFuZXMpOyAvLyBXZSBvbmx5IGF0dGFjaCBwaW5nIGxpc3RlbmVycyBpbiBjb25jdXJyZW50IG1vZGUuIExlZ2FjeSBTdXNwZW5zZSBhbHdheXNcbiAgICAgIC8vIGNvbW1pdHMgZmFsbGJhY2tzIHN5bmNocm9ub3VzbHksIHNvIHRoZXJlIGFyZSBubyBwaW5ncy5cblxuICAgICAgaWYgKHN1c3BlbnNlQm91bmRhcnkubW9kZSAmIENvbmN1cnJlbnRNb2RlKSB7XG4gICAgICAgIGF0dGFjaFBpbmdMaXN0ZW5lcihyb290LCB3YWtlYWJsZSwgcm9vdFJlbmRlckxhbmVzKTtcbiAgICAgIH1cblxuICAgICAgYXR0YWNoUmV0cnlMaXN0ZW5lcihzdXNwZW5zZUJvdW5kYXJ5LCByb290LCB3YWtlYWJsZSk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIGJvdW5kYXJ5IHdhcyBmb3VuZC4gVW5sZXNzIHRoaXMgaXMgYSBzeW5jIHVwZGF0ZSwgdGhpcyBpcyBPSy5cbiAgICAgIC8vIFdlIGNhbiBzdXNwZW5kIGFuZCB3YWl0IGZvciBtb3JlIGRhdGEgdG8gYXJyaXZlLlxuICAgICAgaWYgKCFpbmNsdWRlc1N5bmNMYW5lKHJvb3RSZW5kZXJMYW5lcykpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBub3QgYSBzeW5jIHVwZGF0ZS4gU3VzcGVuZC4gU2luY2Ugd2UncmUgbm90IGFjdGl2YXRpbmcgYVxuICAgICAgICAvLyBTdXNwZW5zZSBib3VuZGFyeSwgdGhpcyB3aWxsIHVud2luZCBhbGwgdGhlIHdheSB0byB0aGUgcm9vdCB3aXRob3V0XG4gICAgICAgIC8vIHBlcmZvcm1pbmcgYSBzZWNvbmQgcGFzcyB0byByZW5kZXIgYSBmYWxsYmFjay4gKFRoaXMgaXMgYXJndWFibHkgaG93XG4gICAgICAgIC8vIHJlZnJlc2ggdHJhbnNpdGlvbnMgc2hvdWxkIHdvcmssIHRvbywgc2luY2Ugd2UncmUgbm90IGdvaW5nIHRvIGNvbW1pdFxuICAgICAgICAvLyB0aGUgZmFsbGJhY2tzIGFueXdheS4pXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRoaXMgY2FzZSBhbHNvIGFwcGxpZXMgdG8gaW5pdGlhbCBoeWRyYXRpb24uXG4gICAgICAgIGF0dGFjaFBpbmdMaXN0ZW5lcihyb290LCB3YWtlYWJsZSwgcm9vdFJlbmRlckxhbmVzKTtcbiAgICAgICAgcmVuZGVyRGlkU3VzcGVuZERlbGF5SWZQb3NzaWJsZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IC8vIFRoaXMgaXMgYSBzeW5jL2Rpc2NyZXRlIHVwZGF0ZS4gV2UgdHJlYXQgdGhpcyBjYXNlIGxpa2UgYW4gZXJyb3JcbiAgICAgIC8vIGJlY2F1c2UgZGlzY3JldGUgcmVuZGVycyBhcmUgZXhwZWN0ZWQgdG8gcHJvZHVjZSBhIGNvbXBsZXRlIHRyZWVcbiAgICAgIC8vIHN5bmNocm9ub3VzbHkgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgd2l0aCBleHRlcm5hbCBzdGF0ZS5cblxuXG4gICAgICB2YXIgdW5jYXVnaHRTdXNwZW5zZUVycm9yID0gbmV3IEVycm9yKCdBIGNvbXBvbmVudCBzdXNwZW5kZWQgd2hpbGUgcmVzcG9uZGluZyB0byBzeW5jaHJvbm91cyBpbnB1dC4gVGhpcyAnICsgJ3dpbGwgY2F1c2UgdGhlIFVJIHRvIGJlIHJlcGxhY2VkIHdpdGggYSBsb2FkaW5nIGluZGljYXRvci4gVG8gJyArICdmaXgsIHVwZGF0ZXMgdGhhdCBzdXNwZW5kIHNob3VsZCBiZSB3cmFwcGVkICcgKyAnd2l0aCBzdGFydFRyYW5zaXRpb24uJyk7IC8vIElmIHdlJ3JlIG91dHNpZGUgYSB0cmFuc2l0aW9uLCBmYWxsIHRocm91Z2ggdG8gdGhlIHJlZ3VsYXIgZXJyb3IgcGF0aC5cbiAgICAgIC8vIFRoZSBlcnJvciB3aWxsIGJlIGNhdWdodCBieSB0aGUgbmVhcmVzdCBzdXNwZW5zZSBib3VuZGFyeS5cblxuICAgICAgdmFsdWUgPSB1bmNhdWdodFN1c3BlbnNlRXJyb3I7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgaXMgYSByZWd1bGFyIGVycm9yLCBub3QgYSBTdXNwZW5zZSB3YWtlYWJsZS5cbiAgICBpZiAoZ2V0SXNIeWRyYXRpbmcoKSAmJiBzb3VyY2VGaWJlci5tb2RlICYgQ29uY3VycmVudE1vZGUpIHtcbiAgICAgIG1hcmtEaWRTdXNwZW5kV2hpbGVIeWRyYXRpbmdERVYoKTtcblxuICAgICAgdmFyIF9zdXNwZW5zZUJvdW5kYXJ5ID0gZ2V0TmVhcmVzdFN1c3BlbnNlQm91bmRhcnlUb0NhcHR1cmUocmV0dXJuRmliZXIpOyAvLyBJZiB0aGUgZXJyb3Igd2FzIHRocm93biBkdXJpbmcgaHlkcmF0aW9uLCB3ZSBtYXkgYmUgYWJsZSB0byByZWNvdmVyIGJ5XG4gICAgICAvLyBkaXNjYXJkaW5nIHRoZSBkZWh5ZHJhdGVkIGNvbnRlbnQgYW5kIHN3aXRjaGluZyB0byBhIGNsaWVudCByZW5kZXIuXG4gICAgICAvLyBJbnN0ZWFkIG9mIHN1cmZhY2luZyB0aGUgZXJyb3IsIGZpbmQgdGhlIG5lYXJlc3QgU3VzcGVuc2UgYm91bmRhcnlcbiAgICAgIC8vIGFuZCByZW5kZXIgaXQgYWdhaW4gd2l0aG91dCBoeWRyYXRpb24uXG5cblxuICAgICAgaWYgKF9zdXNwZW5zZUJvdW5kYXJ5ICE9PSBudWxsKSB7XG4gICAgICAgIGlmICgoX3N1c3BlbnNlQm91bmRhcnkuZmxhZ3MgJiBTaG91bGRDYXB0dXJlKSA9PT0gTm9GbGFncykge1xuICAgICAgICAgIC8vIFNldCBhIGZsYWcgdG8gaW5kaWNhdGUgdGhhdCB3ZSBzaG91bGQgdHJ5IHJlbmRlcmluZyB0aGUgbm9ybWFsXG4gICAgICAgICAgLy8gY2hpbGRyZW4gYWdhaW4sIG5vdCB0aGUgZmFsbGJhY2suXG4gICAgICAgICAgX3N1c3BlbnNlQm91bmRhcnkuZmxhZ3MgfD0gRm9yY2VDbGllbnRSZW5kZXI7XG4gICAgICAgIH1cblxuICAgICAgICBtYXJrU3VzcGVuc2VCb3VuZGFyeVNob3VsZENhcHR1cmUoX3N1c3BlbnNlQm91bmRhcnksIHJldHVybkZpYmVyLCBzb3VyY2VGaWJlciwgcm9vdCwgcm9vdFJlbmRlckxhbmVzKTsgLy8gRXZlbiB0aG91Z2ggdGhlIHVzZXIgbWF5IG5vdCBiZSBhZmZlY3RlZCBieSB0aGlzIGVycm9yLCB3ZSBzaG91bGRcbiAgICAgICAgLy8gc3RpbGwgbG9nIGl0IHNvIGl0IGNhbiBiZSBmaXhlZC5cblxuICAgICAgICBxdWV1ZUh5ZHJhdGlvbkVycm9yKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyBXZSBkaWRuJ3QgZmluZCBhIGJvdW5kYXJ5IHRoYXQgY291bGQgaGFuZGxlIHRoaXMgdHlwZSBvZiBleGNlcHRpb24uIFN0YXJ0XG4gIC8vIG92ZXIgYW5kIHRyYXZlcnNlIHBhcmVudCBwYXRoIGFnYWluLCB0aGlzIHRpbWUgdHJlYXRpbmcgdGhlIGV4Y2VwdGlvblxuICAvLyBhcyBhbiBlcnJvci5cblxuXG4gIHJlbmRlckRpZEVycm9yKHZhbHVlKTtcbiAgdmFsdWUgPSBjcmVhdGVDYXB0dXJlZFZhbHVlKHZhbHVlLCBzb3VyY2VGaWJlcik7XG4gIHZhciB3b3JrSW5Qcm9ncmVzcyA9IHJldHVybkZpYmVyO1xuXG4gIGRvIHtcbiAgICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfZXJyb3JJbmZvID0gdmFsdWU7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gU2hvdWxkQ2FwdHVyZTtcbiAgICAgICAgICB2YXIgbGFuZSA9IHBpY2tBcmJpdHJhcnlMYW5lKHJvb3RSZW5kZXJMYW5lcyk7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBtZXJnZUxhbmVzKHdvcmtJblByb2dyZXNzLmxhbmVzLCBsYW5lKTtcbiAgICAgICAgICB2YXIgdXBkYXRlID0gY3JlYXRlUm9vdEVycm9yVXBkYXRlKHdvcmtJblByb2dyZXNzLCBfZXJyb3JJbmZvLCBsYW5lKTtcbiAgICAgICAgICBlbnF1ZXVlQ2FwdHVyZWRVcGRhdGUod29ya0luUHJvZ3Jlc3MsIHVwZGF0ZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgIC8vIENhcHR1cmUgYW5kIHJldHJ5XG4gICAgICAgIHZhciBlcnJvckluZm8gPSB2YWx1ZTtcbiAgICAgICAgdmFyIGN0b3IgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICAgICAgICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgICAgICAgaWYgKCh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIERpZENhcHR1cmUpID09PSBOb0ZsYWdzICYmICh0eXBlb2YgY3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgPT09ICdmdW5jdGlvbicgfHwgaW5zdGFuY2UgIT09IG51bGwgJiYgdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZENhdGNoID09PSAnZnVuY3Rpb24nICYmICFpc0FscmVhZHlGYWlsZWRMZWdhY3lFcnJvckJvdW5kYXJ5KGluc3RhbmNlKSkpIHtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBTaG91bGRDYXB0dXJlO1xuXG4gICAgICAgICAgdmFyIF9sYW5lID0gcGlja0FyYml0cmFyeUxhbmUocm9vdFJlbmRlckxhbmVzKTtcblxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gbWVyZ2VMYW5lcyh3b3JrSW5Qcm9ncmVzcy5sYW5lcywgX2xhbmUpOyAvLyBTY2hlZHVsZSB0aGUgZXJyb3IgYm91bmRhcnkgdG8gcmUtcmVuZGVyIHVzaW5nIHVwZGF0ZWQgc3RhdGVcblxuICAgICAgICAgIHZhciBfdXBkYXRlID0gY3JlYXRlQ2xhc3NFcnJvclVwZGF0ZSh3b3JrSW5Qcm9ncmVzcywgZXJyb3JJbmZvLCBfbGFuZSk7XG5cbiAgICAgICAgICBlbnF1ZXVlQ2FwdHVyZWRVcGRhdGUod29ya0luUHJvZ3Jlc3MsIF91cGRhdGUpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHdvcmtJblByb2dyZXNzID0gd29ya0luUHJvZ3Jlc3MucmV0dXJuO1xuICB9IHdoaWxlICh3b3JrSW5Qcm9ncmVzcyAhPT0gbnVsbCk7XG59XG5cbmZ1bmN0aW9uIGdldFN1c3BlbmRlZENhY2hlKCkge1xuICB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBhIFN1c3BlbnNlIGJvdW5kYXJ5IHN1c3BlbmRzLiBJdCByZXR1cm5zIHRoZVxufVxuXG5mdW5jdGlvbiBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKSB7XG4gIC8vIFRhZyB0aGUgZmliZXIgd2l0aCBhbiB1cGRhdGUgZWZmZWN0LiBUaGlzIHR1cm5zIGEgUGxhY2VtZW50IGludG9cbiAgLy8gYSBQbGFjZW1lbnRBbmRVcGRhdGUuXG4gIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbn1cblxuZnVuY3Rpb24gbWFya1JlZih3b3JrSW5Qcm9ncmVzcykge1xuICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBSZWY7XG5cbiAge1xuICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFJlZlN0YXRpYztcbiAgfVxufVxuXG52YXIgYXBwZW5kQWxsQ2hpbGRyZW47XG52YXIgdXBkYXRlSG9zdENvbnRhaW5lcjtcbnZhciB1cGRhdGVIb3N0Q29tcG9uZW50O1xudmFyIHVwZGF0ZUhvc3RUZXh0O1xuXG57XG4gIC8vIE11dGF0aW9uIG1vZGVcbiAgYXBwZW5kQWxsQ2hpbGRyZW4gPSBmdW5jdGlvbiAocGFyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmVlZHNWaXNpYmlsaXR5VG9nZ2xlLCBpc0hpZGRlbikge1xuICAgIC8vIFdlIG9ubHkgaGF2ZSB0aGUgdG9wIEZpYmVyIHRoYXQgd2FzIGNyZWF0ZWQgYnV0IHdlIG5lZWQgcmVjdXJzZSBkb3duIGl0c1xuICAgIC8vIGNoaWxkcmVuIHRvIGZpbmQgYWxsIHRoZSB0ZXJtaW5hbCBub2Rlcy5cbiAgICB2YXIgbm9kZSA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuXG4gICAgd2hpbGUgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgIGlmIChub2RlLnRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCBub2RlLnRhZyA9PT0gSG9zdFRleHQpIHtcbiAgICAgICAgYXBwZW5kSW5pdGlhbENoaWxkKHBhcmVudCwgbm9kZS5zdGF0ZU5vZGUpO1xuICAgICAgfSBlbHNlIGlmIChub2RlLnRhZyA9PT0gSG9zdFBvcnRhbCkgOyBlbHNlIGlmIChub2RlLmNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgIG5vZGUuY2hpbGQucmV0dXJuID0gbm9kZTtcbiAgICAgICAgbm9kZSA9IG5vZGUuY2hpbGQ7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAobm9kZSA9PT0gd29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAobm9kZS5zaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgIGlmIChub2RlLnJldHVybiA9PT0gbnVsbCB8fCBub2RlLnJldHVybiA9PT0gd29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBub2RlID0gbm9kZS5yZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5vZGUuc2libGluZy5yZXR1cm4gPSBub2RlLnJldHVybjtcbiAgICAgIG5vZGUgPSBub2RlLnNpYmxpbmc7XG4gICAgfVxuICB9O1xuXG4gIHVwZGF0ZUhvc3RDb250YWluZXIgPSBmdW5jdGlvbiAoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpIHsvLyBOb29wXG4gIH07XG5cbiAgdXBkYXRlSG9zdENvbXBvbmVudCA9IGZ1bmN0aW9uIChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgdHlwZSwgbmV3UHJvcHMsIHJvb3RDb250YWluZXJJbnN0YW5jZSkge1xuICAgIC8vIElmIHdlIGhhdmUgYW4gYWx0ZXJuYXRlLCB0aGF0IG1lYW5zIHRoaXMgaXMgYW4gdXBkYXRlIGFuZCB3ZSBuZWVkIHRvXG4gICAgLy8gc2NoZWR1bGUgYSBzaWRlLWVmZmVjdCB0byBkbyB0aGUgdXBkYXRlcy5cbiAgICB2YXIgb2xkUHJvcHMgPSBjdXJyZW50Lm1lbW9pemVkUHJvcHM7XG5cbiAgICBpZiAob2xkUHJvcHMgPT09IG5ld1Byb3BzKSB7XG4gICAgICAvLyBJbiBtdXRhdGlvbiBtb2RlLCB0aGlzIGlzIHN1ZmZpY2llbnQgZm9yIGEgYmFpbG91dCBiZWNhdXNlXG4gICAgICAvLyB3ZSB3b24ndCB0b3VjaCB0aGlzIG5vZGUgZXZlbiBpZiBjaGlsZHJlbiBjaGFuZ2VkLlxuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gSWYgd2UgZ2V0IHVwZGF0ZWQgYmVjYXVzZSBvbmUgb2Ygb3VyIGNoaWxkcmVuIHVwZGF0ZWQsIHdlIGRvbid0XG4gICAgLy8gaGF2ZSBuZXdQcm9wcyBzbyB3ZSdsbCBoYXZlIHRvIHJldXNlIHRoZW0uXG4gICAgLy8gVE9ETzogU3BsaXQgdGhlIHVwZGF0ZSBBUEkgYXMgc2VwYXJhdGUgZm9yIHRoZSBwcm9wcyB2cy4gY2hpbGRyZW4uXG4gICAgLy8gRXZlbiBiZXR0ZXIgd291bGQgYmUgaWYgY2hpbGRyZW4gd2VyZW4ndCBzcGVjaWFsIGNhc2VkIGF0IGFsbCB0aG8uXG5cblxuICAgIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgICB2YXIgY3VycmVudEhvc3RDb250ZXh0ID0gZ2V0SG9zdENvbnRleHQoKTsgLy8gVE9ETzogRXhwZXJpZW5jaW5nIGFuIGVycm9yIHdoZXJlIG9sZFByb3BzIGlzIG51bGwuIFN1Z2dlc3RzIGEgaG9zdFxuICAgIC8vIGNvbXBvbmVudCBpcyBoaXR0aW5nIHRoZSByZXN1bWUgcGF0aC4gRmlndXJlIG91dCB3aHkuIFBvc3NpYmx5XG4gICAgLy8gcmVsYXRlZCB0byBgaGlkZGVuYC5cblxuICAgIHZhciB1cGRhdGVQYXlsb2FkID0gcHJlcGFyZVVwZGF0ZShpbnN0YW5jZSwgdHlwZSwgb2xkUHJvcHMsIG5ld1Byb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UsIGN1cnJlbnRIb3N0Q29udGV4dCk7IC8vIFRPRE86IFR5cGUgdGhpcyBzcGVjaWZpYyB0byB0aGlzIHR5cGUgb2YgY29tcG9uZW50LlxuXG4gICAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSB1cGRhdGVQYXlsb2FkOyAvLyBJZiB0aGUgdXBkYXRlIHBheWxvYWQgaW5kaWNhdGVzIHRoYXQgdGhlcmUgaXMgYSBjaGFuZ2Ugb3IgaWYgdGhlcmVcbiAgICAvLyBpcyBhIG5ldyByZWYgd2UgbWFyayB0aGlzIGFzIGFuIHVwZGF0ZS4gQWxsIHRoZSB3b3JrIGlzIGRvbmUgaW4gY29tbWl0V29yay5cblxuICAgIGlmICh1cGRhdGVQYXlsb2FkKSB7XG4gICAgICBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKTtcbiAgICB9XG4gIH07XG5cbiAgdXBkYXRlSG9zdFRleHQgPSBmdW5jdGlvbiAoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG9sZFRleHQsIG5ld1RleHQpIHtcbiAgICAvLyBJZiB0aGUgdGV4dCBkaWZmZXJzLCBtYXJrIGl0IGFzIGFuIHVwZGF0ZS4gQWxsIHRoZSB3b3JrIGluIGRvbmUgaW4gY29tbWl0V29yay5cbiAgICBpZiAob2xkVGV4dCAhPT0gbmV3VGV4dCkge1xuICAgICAgbWFya1VwZGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBjdXRPZmZUYWlsSWZOZWVkZWQocmVuZGVyU3RhdGUsIGhhc1JlbmRlcmVkQVRhaWxGYWxsYmFjaykge1xuICBpZiAoZ2V0SXNIeWRyYXRpbmcoKSkge1xuICAgIC8vIElmIHdlJ3JlIGh5ZHJhdGluZywgd2Ugc2hvdWxkIGNvbnN1bWUgYXMgbWFueSBpdGVtcyBhcyB3ZSBjYW5cbiAgICAvLyBzbyB3ZSBkb24ndCBsZWF2ZSBhbnkgYmVoaW5kLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHN3aXRjaCAocmVuZGVyU3RhdGUudGFpbE1vZGUpIHtcbiAgICBjYXNlICdoaWRkZW4nOlxuICAgICAge1xuICAgICAgICAvLyBBbnkgaW5zZXJ0aW9ucyBhdCB0aGUgZW5kIG9mIHRoZSB0YWlsIGxpc3QgYWZ0ZXIgdGhpcyBwb2ludFxuICAgICAgICAvLyBzaG91bGQgYmUgaW52aXNpYmxlLiBJZiB0aGVyZSBhcmUgYWxyZWFkeSBtb3VudGVkIGJvdW5kYXJpZXNcbiAgICAgICAgLy8gYW55dGhpbmcgYmVmb3JlIHRoZW0gYXJlIG5vdCBjb25zaWRlcmVkIGZvciBjb2xsYXBzaW5nLlxuICAgICAgICAvLyBUaGVyZWZvcmUgd2UgbmVlZCB0byBnbyB0aHJvdWdoIHRoZSB3aG9sZSB0YWlsIHRvIGZpbmQgaWZcbiAgICAgICAgLy8gdGhlcmUgYXJlIGFueS5cbiAgICAgICAgdmFyIHRhaWxOb2RlID0gcmVuZGVyU3RhdGUudGFpbDtcbiAgICAgICAgdmFyIGxhc3RUYWlsTm9kZSA9IG51bGw7XG5cbiAgICAgICAgd2hpbGUgKHRhaWxOb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgaWYgKHRhaWxOb2RlLmFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGFzdFRhaWxOb2RlID0gdGFpbE5vZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGFpbE5vZGUgPSB0YWlsTm9kZS5zaWJsaW5nO1xuICAgICAgICB9IC8vIE5leHQgd2UncmUgc2ltcGx5IGdvaW5nIHRvIGRlbGV0ZSBhbGwgaW5zZXJ0aW9ucyBhZnRlciB0aGVcbiAgICAgICAgLy8gbGFzdCByZW5kZXJlZCBpdGVtLlxuXG5cbiAgICAgICAgaWYgKGxhc3RUYWlsTm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIEFsbCByZW1haW5pbmcgaXRlbXMgaW4gdGhlIHRhaWwgYXJlIGluc2VydGlvbnMuXG4gICAgICAgICAgcmVuZGVyU3RhdGUudGFpbCA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRGV0YWNoIHRoZSBpbnNlcnRpb24gYWZ0ZXIgdGhlIGxhc3Qgbm9kZSB0aGF0IHdhcyBhbHJlYWR5XG4gICAgICAgICAgLy8gaW5zZXJ0ZWQuXG4gICAgICAgICAgbGFzdFRhaWxOb2RlLnNpYmxpbmcgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlICdjb2xsYXBzZWQnOlxuICAgICAge1xuICAgICAgICAvLyBBbnkgaW5zZXJ0aW9ucyBhdCB0aGUgZW5kIG9mIHRoZSB0YWlsIGxpc3QgYWZ0ZXIgdGhpcyBwb2ludFxuICAgICAgICAvLyBzaG91bGQgYmUgaW52aXNpYmxlLiBJZiB0aGVyZSBhcmUgYWxyZWFkeSBtb3VudGVkIGJvdW5kYXJpZXNcbiAgICAgICAgLy8gYW55dGhpbmcgYmVmb3JlIHRoZW0gYXJlIG5vdCBjb25zaWRlcmVkIGZvciBjb2xsYXBzaW5nLlxuICAgICAgICAvLyBUaGVyZWZvcmUgd2UgbmVlZCB0byBnbyB0aHJvdWdoIHRoZSB3aG9sZSB0YWlsIHRvIGZpbmQgaWZcbiAgICAgICAgLy8gdGhlcmUgYXJlIGFueS5cbiAgICAgICAgdmFyIF90YWlsTm9kZSA9IHJlbmRlclN0YXRlLnRhaWw7XG4gICAgICAgIHZhciBfbGFzdFRhaWxOb2RlID0gbnVsbDtcblxuICAgICAgICB3aGlsZSAoX3RhaWxOb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgaWYgKF90YWlsTm9kZS5hbHRlcm5hdGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIF9sYXN0VGFpbE5vZGUgPSBfdGFpbE5vZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgX3RhaWxOb2RlID0gX3RhaWxOb2RlLnNpYmxpbmc7XG4gICAgICAgIH0gLy8gTmV4dCB3ZSdyZSBzaW1wbHkgZ29pbmcgdG8gZGVsZXRlIGFsbCBpbnNlcnRpb25zIGFmdGVyIHRoZVxuICAgICAgICAvLyBsYXN0IHJlbmRlcmVkIGl0ZW0uXG5cblxuICAgICAgICBpZiAoX2xhc3RUYWlsTm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIEFsbCByZW1haW5pbmcgaXRlbXMgaW4gdGhlIHRhaWwgYXJlIGluc2VydGlvbnMuXG4gICAgICAgICAgaWYgKCFoYXNSZW5kZXJlZEFUYWlsRmFsbGJhY2sgJiYgcmVuZGVyU3RhdGUudGFpbCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gV2Ugc3VzcGVuZGVkIGR1cmluZyB0aGUgaGVhZC4gV2Ugd2FudCB0byBzaG93IGF0IGxlYXN0IG9uZVxuICAgICAgICAgICAgLy8gcm93IGF0IHRoZSB0YWlsLiBTbyB3ZSdsbCBrZWVwIG9uIGFuZCBjdXQgb2ZmIHRoZSByZXN0LlxuICAgICAgICAgICAgcmVuZGVyU3RhdGUudGFpbC5zaWJsaW5nID0gbnVsbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVuZGVyU3RhdGUudGFpbCA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIERldGFjaCB0aGUgaW5zZXJ0aW9uIGFmdGVyIHRoZSBsYXN0IG5vZGUgdGhhdCB3YXMgYWxyZWFkeVxuICAgICAgICAgIC8vIGluc2VydGVkLlxuICAgICAgICAgIF9sYXN0VGFpbE5vZGUuc2libGluZyA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBidWJibGVQcm9wZXJ0aWVzKGNvbXBsZXRlZFdvcmspIHtcbiAgdmFyIGRpZEJhaWxvdXQgPSBjb21wbGV0ZWRXb3JrLmFsdGVybmF0ZSAhPT0gbnVsbCAmJiBjb21wbGV0ZWRXb3JrLmFsdGVybmF0ZS5jaGlsZCA9PT0gY29tcGxldGVkV29yay5jaGlsZDtcbiAgdmFyIG5ld0NoaWxkTGFuZXMgPSBOb0xhbmVzO1xuICB2YXIgc3VidHJlZUZsYWdzID0gTm9GbGFncztcblxuICBpZiAoIWRpZEJhaWxvdXQpIHtcbiAgICAvLyBCdWJibGUgdXAgdGhlIGVhcmxpZXN0IGV4cGlyYXRpb24gdGltZS5cbiAgICBpZiAoIChjb21wbGV0ZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSkge1xuICAgICAgLy8gSW4gcHJvZmlsaW5nIG1vZGUsIHJlc2V0Q2hpbGRFeHBpcmF0aW9uVGltZSBpcyBhbHNvIHVzZWQgdG8gcmVzZXRcbiAgICAgIC8vIHByb2ZpbGVyIGR1cmF0aW9ucy5cbiAgICAgIHZhciBhY3R1YWxEdXJhdGlvbiA9IGNvbXBsZXRlZFdvcmsuYWN0dWFsRHVyYXRpb247XG4gICAgICB2YXIgdHJlZUJhc2VEdXJhdGlvbiA9IGNvbXBsZXRlZFdvcmsuc2VsZkJhc2VEdXJhdGlvbjtcbiAgICAgIHZhciBjaGlsZCA9IGNvbXBsZXRlZFdvcmsuY2hpbGQ7XG5cbiAgICAgIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICBuZXdDaGlsZExhbmVzID0gbWVyZ2VMYW5lcyhuZXdDaGlsZExhbmVzLCBtZXJnZUxhbmVzKGNoaWxkLmxhbmVzLCBjaGlsZC5jaGlsZExhbmVzKSk7XG4gICAgICAgIHN1YnRyZWVGbGFncyB8PSBjaGlsZC5zdWJ0cmVlRmxhZ3M7XG4gICAgICAgIHN1YnRyZWVGbGFncyB8PSBjaGlsZC5mbGFnczsgLy8gV2hlbiBhIGZpYmVyIGlzIGNsb25lZCwgaXRzIGFjdHVhbER1cmF0aW9uIGlzIHJlc2V0IHRvIDAuIFRoaXMgdmFsdWUgd2lsbFxuICAgICAgICAvLyBvbmx5IGJlIHVwZGF0ZWQgaWYgd29yayBpcyBkb25lIG9uIHRoZSBmaWJlciAoaS5lLiBpdCBkb2Vzbid0IGJhaWxvdXQpLlxuICAgICAgICAvLyBXaGVuIHdvcmsgaXMgZG9uZSwgaXQgc2hvdWxkIGJ1YmJsZSB0byB0aGUgcGFyZW50J3MgYWN0dWFsRHVyYXRpb24uIElmXG4gICAgICAgIC8vIHRoZSBmaWJlciBoYXMgbm90IGJlZW4gY2xvbmVkIHRob3VnaCwgKG1lYW5pbmcgbm8gd29yayB3YXMgZG9uZSksIHRoZW5cbiAgICAgICAgLy8gdGhpcyB2YWx1ZSB3aWxsIHJlZmxlY3QgdGhlIGFtb3VudCBvZiB0aW1lIHNwZW50IHdvcmtpbmcgb24gYSBwcmV2aW91c1xuICAgICAgICAvLyByZW5kZXIuIEluIHRoYXQgY2FzZSBpdCBzaG91bGQgbm90IGJ1YmJsZS4gV2UgZGV0ZXJtaW5lIHdoZXRoZXIgaXQgd2FzXG4gICAgICAgIC8vIGNsb25lZCBieSBjb21wYXJpbmcgdGhlIGNoaWxkIHBvaW50ZXIuXG5cbiAgICAgICAgYWN0dWFsRHVyYXRpb24gKz0gY2hpbGQuYWN0dWFsRHVyYXRpb247XG4gICAgICAgIHRyZWVCYXNlRHVyYXRpb24gKz0gY2hpbGQudHJlZUJhc2VEdXJhdGlvbjtcbiAgICAgICAgY2hpbGQgPSBjaGlsZC5zaWJsaW5nO1xuICAgICAgfVxuXG4gICAgICBjb21wbGV0ZWRXb3JrLmFjdHVhbER1cmF0aW9uID0gYWN0dWFsRHVyYXRpb247XG4gICAgICBjb21wbGV0ZWRXb3JrLnRyZWVCYXNlRHVyYXRpb24gPSB0cmVlQmFzZUR1cmF0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgX2NoaWxkID0gY29tcGxldGVkV29yay5jaGlsZDtcblxuICAgICAgd2hpbGUgKF9jaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICBuZXdDaGlsZExhbmVzID0gbWVyZ2VMYW5lcyhuZXdDaGlsZExhbmVzLCBtZXJnZUxhbmVzKF9jaGlsZC5sYW5lcywgX2NoaWxkLmNoaWxkTGFuZXMpKTtcbiAgICAgICAgc3VidHJlZUZsYWdzIHw9IF9jaGlsZC5zdWJ0cmVlRmxhZ3M7XG4gICAgICAgIHN1YnRyZWVGbGFncyB8PSBfY2hpbGQuZmxhZ3M7IC8vIFVwZGF0ZSB0aGUgcmV0dXJuIHBvaW50ZXIgc28gdGhlIHRyZWUgaXMgY29uc2lzdGVudC4gVGhpcyBpcyBhIGNvZGVcbiAgICAgICAgLy8gc21lbGwgYmVjYXVzZSBpdCBhc3N1bWVzIHRoZSBjb21taXQgcGhhc2UgaXMgbmV2ZXIgY29uY3VycmVudCB3aXRoXG4gICAgICAgIC8vIHRoZSByZW5kZXIgcGhhc2UuIFdpbGwgYWRkcmVzcyBkdXJpbmcgcmVmYWN0b3IgdG8gYWx0ZXJuYXRlIG1vZGVsLlxuXG4gICAgICAgIF9jaGlsZC5yZXR1cm4gPSBjb21wbGV0ZWRXb3JrO1xuICAgICAgICBfY2hpbGQgPSBfY2hpbGQuc2libGluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wbGV0ZWRXb3JrLnN1YnRyZWVGbGFncyB8PSBzdWJ0cmVlRmxhZ3M7XG4gIH0gZWxzZSB7XG4gICAgLy8gQnViYmxlIHVwIHRoZSBlYXJsaWVzdCBleHBpcmF0aW9uIHRpbWUuXG4gICAgaWYgKCAoY29tcGxldGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgIC8vIEluIHByb2ZpbGluZyBtb2RlLCByZXNldENoaWxkRXhwaXJhdGlvblRpbWUgaXMgYWxzbyB1c2VkIHRvIHJlc2V0XG4gICAgICAvLyBwcm9maWxlciBkdXJhdGlvbnMuXG4gICAgICB2YXIgX3RyZWVCYXNlRHVyYXRpb24gPSBjb21wbGV0ZWRXb3JrLnNlbGZCYXNlRHVyYXRpb247XG4gICAgICB2YXIgX2NoaWxkMiA9IGNvbXBsZXRlZFdvcmsuY2hpbGQ7XG5cbiAgICAgIHdoaWxlIChfY2hpbGQyICE9PSBudWxsKSB7XG4gICAgICAgIG5ld0NoaWxkTGFuZXMgPSBtZXJnZUxhbmVzKG5ld0NoaWxkTGFuZXMsIG1lcmdlTGFuZXMoX2NoaWxkMi5sYW5lcywgX2NoaWxkMi5jaGlsZExhbmVzKSk7IC8vIFwiU3RhdGljXCIgZmxhZ3Mgc2hhcmUgdGhlIGxpZmV0aW1lIG9mIHRoZSBmaWJlci9ob29rIHRoZXkgYmVsb25nIHRvLFxuICAgICAgICAvLyBzbyB3ZSBzaG91bGQgYnViYmxlIHRob3NlIHVwIGV2ZW4gZHVyaW5nIGEgYmFpbG91dC4gQWxsIHRoZSBvdGhlclxuICAgICAgICAvLyBmbGFncyBoYXZlIGEgbGlmZXRpbWUgb25seSBvZiBhIHNpbmdsZSByZW5kZXIgKyBjb21taXQsIHNvIHdlIHNob3VsZFxuICAgICAgICAvLyBpZ25vcmUgdGhlbS5cblxuICAgICAgICBzdWJ0cmVlRmxhZ3MgfD0gX2NoaWxkMi5zdWJ0cmVlRmxhZ3MgJiBTdGF0aWNNYXNrO1xuICAgICAgICBzdWJ0cmVlRmxhZ3MgfD0gX2NoaWxkMi5mbGFncyAmIFN0YXRpY01hc2s7XG4gICAgICAgIF90cmVlQmFzZUR1cmF0aW9uICs9IF9jaGlsZDIudHJlZUJhc2VEdXJhdGlvbjtcbiAgICAgICAgX2NoaWxkMiA9IF9jaGlsZDIuc2libGluZztcbiAgICAgIH1cblxuICAgICAgY29tcGxldGVkV29yay50cmVlQmFzZUR1cmF0aW9uID0gX3RyZWVCYXNlRHVyYXRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBfY2hpbGQzID0gY29tcGxldGVkV29yay5jaGlsZDtcblxuICAgICAgd2hpbGUgKF9jaGlsZDMgIT09IG51bGwpIHtcbiAgICAgICAgbmV3Q2hpbGRMYW5lcyA9IG1lcmdlTGFuZXMobmV3Q2hpbGRMYW5lcywgbWVyZ2VMYW5lcyhfY2hpbGQzLmxhbmVzLCBfY2hpbGQzLmNoaWxkTGFuZXMpKTsgLy8gXCJTdGF0aWNcIiBmbGFncyBzaGFyZSB0aGUgbGlmZXRpbWUgb2YgdGhlIGZpYmVyL2hvb2sgdGhleSBiZWxvbmcgdG8sXG4gICAgICAgIC8vIHNvIHdlIHNob3VsZCBidWJibGUgdGhvc2UgdXAgZXZlbiBkdXJpbmcgYSBiYWlsb3V0LiBBbGwgdGhlIG90aGVyXG4gICAgICAgIC8vIGZsYWdzIGhhdmUgYSBsaWZldGltZSBvbmx5IG9mIGEgc2luZ2xlIHJlbmRlciArIGNvbW1pdCwgc28gd2Ugc2hvdWxkXG4gICAgICAgIC8vIGlnbm9yZSB0aGVtLlxuXG4gICAgICAgIHN1YnRyZWVGbGFncyB8PSBfY2hpbGQzLnN1YnRyZWVGbGFncyAmIFN0YXRpY01hc2s7XG4gICAgICAgIHN1YnRyZWVGbGFncyB8PSBfY2hpbGQzLmZsYWdzICYgU3RhdGljTWFzazsgLy8gVXBkYXRlIHRoZSByZXR1cm4gcG9pbnRlciBzbyB0aGUgdHJlZSBpcyBjb25zaXN0ZW50LiBUaGlzIGlzIGEgY29kZVxuICAgICAgICAvLyBzbWVsbCBiZWNhdXNlIGl0IGFzc3VtZXMgdGhlIGNvbW1pdCBwaGFzZSBpcyBuZXZlciBjb25jdXJyZW50IHdpdGhcbiAgICAgICAgLy8gdGhlIHJlbmRlciBwaGFzZS4gV2lsbCBhZGRyZXNzIGR1cmluZyByZWZhY3RvciB0byBhbHRlcm5hdGUgbW9kZWwuXG5cbiAgICAgICAgX2NoaWxkMy5yZXR1cm4gPSBjb21wbGV0ZWRXb3JrO1xuICAgICAgICBfY2hpbGQzID0gX2NoaWxkMy5zaWJsaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBsZXRlZFdvcmsuc3VidHJlZUZsYWdzIHw9IHN1YnRyZWVGbGFncztcbiAgfVxuXG4gIGNvbXBsZXRlZFdvcmsuY2hpbGRMYW5lcyA9IG5ld0NoaWxkTGFuZXM7XG4gIHJldHVybiBkaWRCYWlsb3V0O1xufVxuXG5mdW5jdGlvbiBjb21wbGV0ZVdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBuZXdQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wczsgLy8gTm90ZTogVGhpcyBpbnRlbnRpb25hbGx5IGRvZXNuJ3QgY2hlY2sgaWYgd2UncmUgaHlkcmF0aW5nIGJlY2F1c2UgY29tcGFyaW5nXG4gIC8vIHRvIHRoZSBjdXJyZW50IHRyZWUgcHJvdmlkZXIgZmliZXIgaXMganVzdCBhcyBmYXN0IGFuZCBsZXNzIGVycm9yLXByb25lLlxuICAvLyBJZGVhbGx5IHdlIHdvdWxkIGhhdmUgYSBzcGVjaWFsIHZlcnNpb24gb2YgdGhlIHdvcmsgbG9vcCBvbmx5XG4gIC8vIGZvciBoeWRyYXRpb24uXG5cbiAgcG9wVHJlZUNvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuXG4gIHN3aXRjaCAod29ya0luUHJvZ3Jlc3MudGFnKSB7XG4gICAgY2FzZSBJbmRldGVybWluYXRlQ29tcG9uZW50OlxuICAgIGNhc2UgTGF6eUNvbXBvbmVudDpcbiAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgY2FzZSBGcmFnbWVudDpcbiAgICBjYXNlIE1vZGU6XG4gICAgY2FzZSBQcm9maWxlcjpcbiAgICBjYXNlIENvbnRleHRDb25zdW1lcjpcbiAgICBjYXNlIE1lbW9Db21wb25lbnQ6XG4gICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIENvbXBvbmVudCA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG5cbiAgICAgICAgaWYgKGlzQ29udGV4dFByb3ZpZGVyKENvbXBvbmVudCkpIHtcbiAgICAgICAgICBwb3BDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICB7XG4gICAgICAgIHZhciBmaWJlclJvb3QgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgICAgICAgcG9wSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHBvcFRvcExldmVsQ29udGV4dE9iamVjdCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHJlc2V0V29ya0luUHJvZ3Jlc3NWZXJzaW9ucygpO1xuXG4gICAgICAgIGlmIChmaWJlclJvb3QucGVuZGluZ0NvbnRleHQpIHtcbiAgICAgICAgICBmaWJlclJvb3QuY29udGV4dCA9IGZpYmVyUm9vdC5wZW5kaW5nQ29udGV4dDtcbiAgICAgICAgICBmaWJlclJvb3QucGVuZGluZ0NvbnRleHQgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwgfHwgY3VycmVudC5jaGlsZCA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIElmIHdlIGh5ZHJhdGVkLCBwb3Agc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGFueSByZW1haW5pbmcgY2hpbGRyZW5cbiAgICAgICAgICAvLyB0aGF0IHdlcmVuJ3QgaHlkcmF0ZWQuXG4gICAgICAgICAgdmFyIHdhc0h5ZHJhdGVkID0gcG9wSHlkcmF0aW9uU3RhdGUod29ya0luUHJvZ3Jlc3MpO1xuXG4gICAgICAgICAgaWYgKHdhc0h5ZHJhdGVkKSB7XG4gICAgICAgICAgICAvLyBJZiB3ZSBoeWRyYXRlZCwgdGhlbiB3ZSdsbCBuZWVkIHRvIHNjaGVkdWxlIGFuIHVwZGF0ZSBmb3JcbiAgICAgICAgICAgIC8vIHRoZSBjb21taXQgc2lkZS1lZmZlY3RzIG9uIHRoZSByb290LlxuICAgICAgICAgICAgbWFya1VwZGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHZhciBwcmV2U3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG5cbiAgICAgICAgICAgICAgaWYgKCAvLyBDaGVjayBpZiB0aGlzIGlzIGEgY2xpZW50IHJvb3RcbiAgICAgICAgICAgICAgIXByZXZTdGF0ZS5pc0RlaHlkcmF0ZWQgfHwgLy8gQ2hlY2sgaWYgd2UgcmV2ZXJ0ZWQgdG8gY2xpZW50IHJlbmRlcmluZyAoZS5nLiBkdWUgdG8gYW4gZXJyb3IpXG4gICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIEZvcmNlQ2xpZW50UmVuZGVyKSAhPT0gTm9GbGFncykge1xuICAgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIGFuIGVmZmVjdCB0byBjbGVhciB0aGlzIGNvbnRhaW5lciBhdCB0aGUgc3RhcnQgb2YgdGhlXG4gICAgICAgICAgICAgICAgLy8gbmV4dCBjb21taXQuIFRoaXMgaGFuZGxlcyB0aGUgY2FzZSBvZiBSZWFjdCByZW5kZXJpbmcgaW50byBhXG4gICAgICAgICAgICAgICAgLy8gY29udGFpbmVyIHdpdGggcHJldmlvdXMgY2hpbGRyZW4uIEl0J3MgYWxzbyBzYWZlIHRvIGRvIGZvclxuICAgICAgICAgICAgICAgIC8vIHVwZGF0ZXMgdG9vLCBiZWNhdXNlIGN1cnJlbnQuY2hpbGQgd291bGQgb25seSBiZSBudWxsIGlmIHRoZVxuICAgICAgICAgICAgICAgIC8vIHByZXZpb3VzIHJlbmRlciB3YXMgbnVsbCAoc28gdGhlIGNvbnRhaW5lciB3b3VsZCBhbHJlYWR5XG4gICAgICAgICAgICAgICAgLy8gYmUgZW1wdHkpLlxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFNuYXBzaG90OyAvLyBJZiB0aGlzIHdhcyBhIGZvcmNlZCBjbGllbnQgcmVuZGVyLCB0aGVyZSBtYXkgaGF2ZSBiZWVuXG4gICAgICAgICAgICAgICAgLy8gcmVjb3ZlcmFibGUgZXJyb3JzIGR1cmluZyBmaXJzdCBoeWRyYXRpb24gYXR0ZW1wdC4gSWYgc28sIGFkZFxuICAgICAgICAgICAgICAgIC8vIHRoZW0gdG8gYSBxdWV1ZSBzbyB3ZSBjYW4gbG9nIHRoZW0gaW4gdGhlIGNvbW1pdCBwaGFzZS5cblxuICAgICAgICAgICAgICAgIHVwZ3JhZGVIeWRyYXRpb25FcnJvcnNUb1JlY292ZXJhYmxlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB1cGRhdGVIb3N0Q29udGFpbmVyKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBwb3BIb3N0Q29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHZhciByb290Q29udGFpbmVySW5zdGFuY2UgPSBnZXRSb290SG9zdENvbnRhaW5lcigpO1xuICAgICAgICB2YXIgdHlwZSA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG5cbiAgICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwgJiYgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlICE9IG51bGwpIHtcbiAgICAgICAgICB1cGRhdGVIb3N0Q29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCB0eXBlLCBuZXdQcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlKTtcblxuICAgICAgICAgIGlmIChjdXJyZW50LnJlZiAhPT0gd29ya0luUHJvZ3Jlc3MucmVmKSB7XG4gICAgICAgICAgICBtYXJrUmVmKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCFuZXdQcm9wcykge1xuICAgICAgICAgICAgaWYgKHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1dlIG11c3QgaGF2ZSBuZXcgcHJvcHMgZm9yIG5ldyBtb3VudHMuIFRoaXMgZXJyb3IgaXMgbGlrZWx5ICcgKyAnY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICAgICAgICAgIH0gLy8gVGhpcyBjYW4gaGFwcGVuIHdoZW4gd2UgYWJvcnQgd29yay5cblxuXG4gICAgICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBjdXJyZW50SG9zdENvbnRleHQgPSBnZXRIb3N0Q29udGV4dCgpOyAvLyBUT0RPOiBNb3ZlIGNyZWF0ZUluc3RhbmNlIHRvIGJlZ2luV29yayBhbmQga2VlcCBpdCBvbiBhIGNvbnRleHRcbiAgICAgICAgICAvLyBcInN0YWNrXCIgYXMgdGhlIHBhcmVudC4gVGhlbiBhcHBlbmQgY2hpbGRyZW4gYXMgd2UgZ28gaW4gYmVnaW5Xb3JrXG4gICAgICAgICAgLy8gb3IgY29tcGxldGVXb3JrIGRlcGVuZGluZyBvbiB3aGV0aGVyIHdlIHdhbnQgdG8gYWRkIHRoZW0gdG9wLT5kb3duIG9yXG4gICAgICAgICAgLy8gYm90dG9tLT51cC4gVG9wLT5kb3duIGlzIGZhc3RlciBpbiBJRTExLlxuXG4gICAgICAgICAgdmFyIF93YXNIeWRyYXRlZCA9IHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzKTtcblxuICAgICAgICAgIGlmIChfd2FzSHlkcmF0ZWQpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IE1vdmUgdGhpcyBhbmQgY3JlYXRlSW5zdGFuY2Ugc3RlcCBpbnRvIHRoZSBiZWdpblBoYXNlXG4gICAgICAgICAgICAvLyB0byBjb25zb2xpZGF0ZS5cbiAgICAgICAgICAgIGlmIChwcmVwYXJlVG9IeWRyYXRlSG9zdEluc3RhbmNlKHdvcmtJblByb2dyZXNzLCByb290Q29udGFpbmVySW5zdGFuY2UsIGN1cnJlbnRIb3N0Q29udGV4dCkpIHtcbiAgICAgICAgICAgICAgLy8gSWYgY2hhbmdlcyB0byB0aGUgaHlkcmF0ZWQgbm9kZSBuZWVkIHRvIGJlIGFwcGxpZWQgYXQgdGhlXG4gICAgICAgICAgICAgIC8vIGNvbW1pdC1waGFzZSB3ZSBtYXJrIHRoaXMgYXMgc3VjaC5cbiAgICAgICAgICAgICAgbWFya1VwZGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKHR5cGUsIG5ld1Byb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UsIGN1cnJlbnRIb3N0Q29udGV4dCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgICAgYXBwZW5kQWxsQ2hpbGRyZW4oaW5zdGFuY2UsIHdvcmtJblByb2dyZXNzLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID0gaW5zdGFuY2U7IC8vIENlcnRhaW4gcmVuZGVyZXJzIHJlcXVpcmUgY29tbWl0LXRpbWUgZWZmZWN0cyBmb3IgaW5pdGlhbCBtb3VudC5cbiAgICAgICAgICAgIC8vIChlZyBET00gcmVuZGVyZXIgc3VwcG9ydHMgYXV0by1mb2N1cyBmb3IgY2VydGFpbiBlbGVtZW50cykuXG4gICAgICAgICAgICAvLyBNYWtlIHN1cmUgc3VjaCByZW5kZXJlcnMgZ2V0IHNjaGVkdWxlZCBmb3IgbGF0ZXIgd29yay5cblxuICAgICAgICAgICAgaWYgKGZpbmFsaXplSW5pdGlhbENoaWxkcmVuKGluc3RhbmNlLCB0eXBlLCBuZXdQcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlKSkge1xuICAgICAgICAgICAgICBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MucmVmICE9PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHJlZiBvbiBhIGhvc3Qgbm9kZSB3ZSBuZWVkIHRvIHNjaGVkdWxlIGEgY2FsbGJhY2tcbiAgICAgICAgICAgIG1hcmtSZWYod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgICB7XG4gICAgICAgIHZhciBuZXdUZXh0ID0gbmV3UHJvcHM7XG5cbiAgICAgICAgaWYgKGN1cnJlbnQgJiYgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlICE9IG51bGwpIHtcbiAgICAgICAgICB2YXIgb2xkVGV4dCA9IGN1cnJlbnQubWVtb2l6ZWRQcm9wczsgLy8gSWYgd2UgaGF2ZSBhbiBhbHRlcm5hdGUsIHRoYXQgbWVhbnMgdGhpcyBpcyBhbiB1cGRhdGUgYW5kIHdlIG5lZWRcbiAgICAgICAgICAvLyB0byBzY2hlZHVsZSBhIHNpZGUtZWZmZWN0IHRvIGRvIHRoZSB1cGRhdGVzLlxuXG4gICAgICAgICAgdXBkYXRlSG9zdFRleHQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG9sZFRleHQsIG5ld1RleHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0eXBlb2YgbmV3VGV4dCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdXZSBtdXN0IGhhdmUgbmV3IHByb3BzIGZvciBuZXcgbW91bnRzLiBUaGlzIGVycm9yIGlzIGxpa2VseSAnICsgJ2NhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgICAgICAgICB9IC8vIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHdlIGFib3J0IHdvcmsuXG5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgX3Jvb3RDb250YWluZXJJbnN0YW5jZSA9IGdldFJvb3RIb3N0Q29udGFpbmVyKCk7XG5cbiAgICAgICAgICB2YXIgX2N1cnJlbnRIb3N0Q29udGV4dCA9IGdldEhvc3RDb250ZXh0KCk7XG5cbiAgICAgICAgICB2YXIgX3dhc0h5ZHJhdGVkMiA9IHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzKTtcblxuICAgICAgICAgIGlmIChfd2FzSHlkcmF0ZWQyKSB7XG4gICAgICAgICAgICBpZiAocHJlcGFyZVRvSHlkcmF0ZUhvc3RUZXh0SW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MpKSB7XG4gICAgICAgICAgICAgIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBjcmVhdGVUZXh0SW5zdGFuY2UobmV3VGV4dCwgX3Jvb3RDb250YWluZXJJbnN0YW5jZSwgX2N1cnJlbnRIb3N0Q29udGV4dCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHBvcFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHZhciBuZXh0U3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuXG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoIGhhc1VuaHlkcmF0ZWRUYWlsTm9kZXMoKSAmJiAod29ya0luUHJvZ3Jlc3MubW9kZSAmIENvbmN1cnJlbnRNb2RlKSAhPT0gTm9Nb2RlICYmICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIERpZENhcHR1cmUpID09PSBOb0ZsYWdzKSB7XG4gICAgICAgICAgICB3YXJuSWZVbmh5ZHJhdGVkVGFpbE5vZGVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTtcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IEZvcmNlQ2xpZW50UmVuZGVyIHwgSW5jb21wbGV0ZSB8IFNob3VsZENhcHR1cmU7XG4gICAgICAgICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3M7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG5leHRTdGF0ZSAhPT0gbnVsbCAmJiBuZXh0U3RhdGUuZGVoeWRyYXRlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gV2UgbWlnaHQgYmUgaW5zaWRlIGEgaHlkcmF0aW9uIHN0YXRlIHRoZSBmaXJzdCB0aW1lIHdlJ3JlIHBpY2tpbmcgdXAgdGhpc1xuICAgICAgICAgICAgLy8gU3VzcGVuc2UgYm91bmRhcnksIGFuZCBhbHNvIGFmdGVyIHdlJ3ZlIHJlZW50ZXJlZCBpdCBmb3IgZnVydGhlciBoeWRyYXRpb24uXG4gICAgICAgICAgICB2YXIgX3dhc0h5ZHJhdGVkMyA9IHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzKTtcblxuICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgaWYgKCFfd2FzSHlkcmF0ZWQzKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIGRlaHlkcmF0ZWQgc3VzcGVuc2UgY29tcG9uZW50IHdhcyBjb21wbGV0ZWQgd2l0aG91dCBhIGh5ZHJhdGVkIG5vZGUuICcgKyAnVGhpcyBpcyBwcm9iYWJseSBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHByZXBhcmVUb0h5ZHJhdGVIb3N0U3VzcGVuc2VJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZiAoKHdvcmtJblByb2dyZXNzLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSkge1xuICAgICAgICAgICAgICAgICAgdmFyIGlzVGltZWRPdXRTdXNwZW5zZSA9IG5leHRTdGF0ZSAhPT0gbnVsbDtcblxuICAgICAgICAgICAgICAgICAgaWYgKGlzVGltZWRPdXRTdXNwZW5zZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBjb3VudCB0aW1lIHNwZW50IGluIGEgdGltZWQgb3V0IFN1c3BlbnNlIHN1YnRyZWUgYXMgcGFydCBvZiB0aGUgYmFzZSBkdXJhdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHByaW1hcnlDaGlsZEZyYWdtZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgLy8gJEZsb3dGaXhNZSBGbG93IGRvZXNuJ3Qgc3VwcG9ydCB0eXBlIGNhc3RpbmcgaW4gY29tYmluYXRpb24gd2l0aCB0aGUgLT0gb3BlcmF0b3JcbiAgICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50cmVlQmFzZUR1cmF0aW9uIC09IHByaW1hcnlDaGlsZEZyYWdtZW50LnRyZWVCYXNlRHVyYXRpb247XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFdlIG1pZ2h0IGhhdmUgcmVlbnRlcmVkIHRoaXMgYm91bmRhcnkgdG8gaHlkcmF0ZSBpdC4gSWYgc28sIHdlIG5lZWQgdG8gcmVzZXQgdGhlIGh5ZHJhdGlvblxuICAgICAgICAgICAgICAvLyBzdGF0ZSBzaW5jZSB3ZSdyZSBub3cgZXhpdGluZyBvdXQgb2YgaXQuIHBvcEh5ZHJhdGlvblN0YXRlIGRvZXNuJ3QgZG8gdGhhdCBmb3IgdXMuXG4gICAgICAgICAgICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTtcblxuICAgICAgICAgICAgICBpZiAoKHdvcmtJblByb2dyZXNzLmZsYWdzICYgRGlkQ2FwdHVyZSkgPT09IE5vRmxhZ3MpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGJvdW5kYXJ5IGRpZCBub3Qgc3VzcGVuZCBzbyBpdCdzIG5vdyBoeWRyYXRlZCBhbmQgdW5zdXNwZW5kZWQuXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG51bGw7XG4gICAgICAgICAgICAgIH0gLy8gSWYgbm90aGluZyBzdXNwZW5kZWQsIHdlIG5lZWQgdG8gc2NoZWR1bGUgYW4gZWZmZWN0IHRvIG1hcmsgdGhpcyBib3VuZGFyeVxuICAgICAgICAgICAgICAvLyBhcyBoYXZpbmcgaHlkcmF0ZWQgc28gZXZlbnRzIGtub3cgdGhhdCB0aGV5J3JlIGZyZWUgdG8gYmUgaW52b2tlZC5cbiAgICAgICAgICAgICAgLy8gSXQncyBhbHNvIGEgc2lnbmFsIHRvIHJlcGxheSBldmVudHMgYW5kIHRoZSBzdXNwZW5zZSBjYWxsYmFjay5cbiAgICAgICAgICAgICAgLy8gSWYgc29tZXRoaW5nIHN1c3BlbmRlZCwgc2NoZWR1bGUgYW4gZWZmZWN0IHRvIGF0dGFjaCByZXRyeSBsaXN0ZW5lcnMuXG4gICAgICAgICAgICAgIC8vIFNvIHdlIG1pZ2h0IGFzIHdlbGwgYWx3YXlzIG1hcmsgdGhpcy5cblxuXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbiAgICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG5cbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlmICgod29ya0luUHJvZ3Jlc3MubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAgICAgICAgICAgICB2YXIgX2lzVGltZWRPdXRTdXNwZW5zZSA9IG5leHRTdGF0ZSAhPT0gbnVsbDtcblxuICAgICAgICAgICAgICAgICAgaWYgKF9pc1RpbWVkT3V0U3VzcGVuc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3QgY291bnQgdGltZSBzcGVudCBpbiBhIHRpbWVkIG91dCBTdXNwZW5zZSBzdWJ0cmVlIGFzIHBhcnQgb2YgdGhlIGJhc2UgZHVyYXRpb24uXG4gICAgICAgICAgICAgICAgICAgIHZhciBfcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoX3ByaW1hcnlDaGlsZEZyYWdtZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgLy8gJEZsb3dGaXhNZSBGbG93IGRvZXNuJ3Qgc3VwcG9ydCB0eXBlIGNhc3RpbmcgaW4gY29tYmluYXRpb24gd2l0aCB0aGUgLT0gb3BlcmF0b3JcbiAgICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50cmVlQmFzZUR1cmF0aW9uIC09IF9wcmltYXJ5Q2hpbGRGcmFnbWVudC50cmVlQmFzZUR1cmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSAvLyBTdWNjZXNzZnVsbHkgY29tcGxldGVkIHRoaXMgdHJlZS4gSWYgdGhpcyB3YXMgYSBmb3JjZWQgY2xpZW50IHJlbmRlcixcbiAgICAgICAgICAvLyB0aGVyZSBtYXkgaGF2ZSBiZWVuIHJlY292ZXJhYmxlIGVycm9ycyBkdXJpbmcgZmlyc3QgaHlkcmF0aW9uXG4gICAgICAgICAgLy8gYXR0ZW1wdC4gSWYgc28sIGFkZCB0aGVtIHRvIGEgcXVldWUgc28gd2UgY2FuIGxvZyB0aGVtIGluIHRoZVxuICAgICAgICAgIC8vIGNvbW1pdCBwaGFzZS5cblxuXG4gICAgICAgICAgdXBncmFkZUh5ZHJhdGlvbkVycm9yc1RvUmVjb3ZlcmFibGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiBEaWRDYXB0dXJlKSAhPT0gTm9GbGFncykge1xuICAgICAgICAgIC8vIFNvbWV0aGluZyBzdXNwZW5kZWQuIFJlLXJlbmRlciB3aXRoIHRoZSBmYWxsYmFjayBjaGlsZHJlbi5cbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IHJlbmRlckxhbmVzOyAvLyBEbyBub3QgcmVzZXQgdGhlIGVmZmVjdCBsaXN0LlxuXG4gICAgICAgICAgaWYgKCAod29ya0luUHJvZ3Jlc3MubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAgICAgICB0cmFuc2ZlckFjdHVhbER1cmF0aW9uKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICB9IC8vIERvbid0IGJ1YmJsZSBwcm9wZXJ0aWVzIGluIHRoaXMgY2FzZS5cblxuXG4gICAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG5leHREaWRUaW1lb3V0ID0gbmV4dFN0YXRlICE9PSBudWxsO1xuICAgICAgICB2YXIgcHJldkRpZFRpbWVvdXQgPSBmYWxzZTtcblxuICAgICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICAgIHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgX3ByZXZTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICBwcmV2RGlkVGltZW91dCA9IF9wcmV2U3RhdGUgIT09IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgLy8gYW4gZWZmZWN0IHRvIHRvZ2dsZSB0aGUgc3VidHJlZSdzIHZpc2liaWxpdHkuIFdoZW4gd2Ugc3dpdGNoIGZyb21cbiAgICAgICAgLy8gZmFsbGJhY2sgLT4gcHJpbWFyeSwgdGhlIGlubmVyIE9mZnNjcmVlbiBmaWJlciBzY2hlZHVsZXMgdGhpcyBlZmZlY3RcbiAgICAgICAgLy8gYXMgcGFydCBvZiBpdHMgbm9ybWFsIGNvbXBsZXRlIHBoYXNlLiBCdXQgd2hlbiB3ZSBzd2l0Y2ggZnJvbVxuICAgICAgICAvLyBwcmltYXJ5IC0+IGZhbGxiYWNrLCB0aGUgaW5uZXIgT2Zmc2NyZWVuIGZpYmVyIGRvZXMgbm90IGhhdmUgYSBjb21wbGV0ZVxuICAgICAgICAvLyBwaGFzZS4gU28gd2UgbmVlZCB0byBzY2hlZHVsZSBpdHMgZWZmZWN0IGhlcmUuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFdlIGFsc28gdXNlIHRoaXMgZmxhZyB0byBjb25uZWN0L2Rpc2Nvbm5lY3QgdGhlIGVmZmVjdHMsIGJ1dCB0aGUgc2FtZVxuICAgICAgICAvLyBsb2dpYyBhcHBsaWVzOiB3aGVuIHJlLWNvbm5lY3RpbmcsIHRoZSBPZmZzY3JlZW4gZmliZXIncyBjb21wbGV0ZVxuICAgICAgICAvLyBwaGFzZSB3aWxsIGhhbmRsZSBzY2hlZHVsaW5nIHRoZSBlZmZlY3QuIEl0J3Mgb25seSB3aGVuIHRoZSBmYWxsYmFja1xuICAgICAgICAvLyBpcyBhY3RpdmUgdGhhdCB3ZSBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuXG5cblxuICAgICAgICBpZiAobmV4dERpZFRpbWVvdXQgJiYgIXByZXZEaWRUaW1lb3V0KSB7XG4gICAgICAgICAgdmFyIF9vZmZzY3JlZW5GaWJlciA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICAgIF9vZmZzY3JlZW5GaWJlci5mbGFncyB8PSBWaXNpYmlsaXR5OyAvLyBUT0RPOiBUaGlzIHdpbGwgc3RpbGwgc3VzcGVuZCBhIHN5bmNocm9ub3VzIHRyZWUgaWYgYW55dGhpbmdcbiAgICAgICAgICAvLyBpbiB0aGUgY29uY3VycmVudCB0cmVlIGFscmVhZHkgc3VzcGVuZGVkIGR1cmluZyB0aGlzIHJlbmRlci5cbiAgICAgICAgICAvLyBUaGlzIGlzIGEga25vd24gYnVnLlxuXG4gICAgICAgICAgaWYgKCh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgQ29uY3VycmVudE1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IE1vdmUgdGhpcyBiYWNrIHRvIHRocm93RXhjZXB0aW9uIGJlY2F1c2UgdGhpcyBpcyB0b28gbGF0ZVxuICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBhIGxhcmdlIHRyZWUgd2hpY2ggaXMgY29tbW9uIGZvciBpbml0aWFsIGxvYWRzLiBXZVxuICAgICAgICAgICAgLy8gZG9uJ3Qga25vdyBpZiB3ZSBzaG91bGQgcmVzdGFydCBhIHJlbmRlciBvciBub3QgdW50aWwgd2UgZ2V0XG4gICAgICAgICAgICAvLyB0aGlzIG1hcmtlciwgYW5kIHRoaXMgaXMgdG9vIGxhdGUuXG4gICAgICAgICAgICAvLyBJZiB0aGlzIHJlbmRlciBhbHJlYWR5IGhhZCBhIHBpbmcgb3IgbG93ZXIgcHJpIHVwZGF0ZXMsXG4gICAgICAgICAgICAvLyBhbmQgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB3ZSBrbm93IHdlJ3JlIGdvaW5nIHRvIHN1c3BlbmQgd2VcbiAgICAgICAgICAgIC8vIHNob3VsZCBiZSBhYmxlIHRvIGltbWVkaWF0ZWx5IHJlc3RhcnQgZnJvbSB3aXRoaW4gdGhyb3dFeGNlcHRpb24uXG4gICAgICAgICAgICB2YXIgaGFzSW52aXNpYmxlQ2hpbGRDb250ZXh0ID0gY3VycmVudCA9PT0gbnVsbCAmJiAod29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcy51bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFjayAhPT0gdHJ1ZSB8fCAhZW5hYmxlU3VzcGVuc2VBdm9pZFRoaXNGYWxsYmFjayk7XG5cbiAgICAgICAgICAgIGlmIChoYXNJbnZpc2libGVDaGlsZENvbnRleHQgfHwgaGFzU3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudCwgSW52aXNpYmxlUGFyZW50U3VzcGVuc2VDb250ZXh0KSkge1xuICAgICAgICAgICAgICAvLyBJZiB0aGlzIHdhcyBpbiBhbiBpbnZpc2libGUgdHJlZSBvciBhIG5ldyByZW5kZXIsIHRoZW4gc2hvd2luZ1xuICAgICAgICAgICAgICAvLyB0aGlzIGJvdW5kYXJ5IGlzIG9rLlxuICAgICAgICAgICAgICByZW5kZXJEaWRTdXNwZW5kKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIHdlJ3JlIGdvaW5nIHRvIGhhdmUgdG8gaGlkZSBjb250ZW50IHNvIHdlIHNob3VsZFxuICAgICAgICAgICAgICAvLyBzdXNwZW5kIGZvciBsb25nZXIgaWYgcG9zc2libGUuXG4gICAgICAgICAgICAgIHJlbmRlckRpZFN1c3BlbmREZWxheUlmUG9zc2libGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgd2FrZWFibGVzID0gd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWU7XG5cbiAgICAgICAgaWYgKHdha2VhYmxlcyAhPT0gbnVsbCkge1xuICAgICAgICAgIC8vIFNjaGVkdWxlIGFuIGVmZmVjdCB0byBhdHRhY2ggYSByZXRyeSBsaXN0ZW5lciB0byB0aGUgcHJvbWlzZS5cbiAgICAgICAgICAvLyBUT0RPOiBNb3ZlIHRvIHBhc3NpdmUgcGhhc2VcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBVcGRhdGU7XG4gICAgICAgIH1cblxuICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcblxuICAgICAgICB7XG4gICAgICAgICAgaWYgKCh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICAgIGlmIChuZXh0RGlkVGltZW91dCkge1xuICAgICAgICAgICAgICAvLyBEb24ndCBjb3VudCB0aW1lIHNwZW50IGluIGEgdGltZWQgb3V0IFN1c3BlbnNlIHN1YnRyZWUgYXMgcGFydCBvZiB0aGUgYmFzZSBkdXJhdGlvbi5cbiAgICAgICAgICAgICAgdmFyIF9wcmltYXJ5Q2hpbGRGcmFnbWVudDIgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcblxuICAgICAgICAgICAgICBpZiAoX3ByaW1hcnlDaGlsZEZyYWdtZW50MiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vICRGbG93Rml4TWUgRmxvdyBkb2Vzbid0IHN1cHBvcnQgdHlwZSBjYXN0aW5nIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIC09IG9wZXJhdG9yXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHJlZUJhc2VEdXJhdGlvbiAtPSBfcHJpbWFyeUNoaWxkRnJhZ21lbnQyLnRyZWVCYXNlRHVyYXRpb247XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgIHBvcEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgdXBkYXRlSG9zdENvbnRhaW5lcihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcyk7XG5cbiAgICAgIGlmIChjdXJyZW50ID09PSBudWxsKSB7XG4gICAgICAgIHByZXBhcmVQb3J0YWxNb3VudCh3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7XG4gICAgICB9XG5cbiAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjYXNlIENvbnRleHRQcm92aWRlcjpcbiAgICAgIC8vIFBvcCBwcm92aWRlciBmaWJlclxuICAgICAgdmFyIGNvbnRleHQgPSB3b3JrSW5Qcm9ncmVzcy50eXBlLl9jb250ZXh0O1xuICAgICAgcG9wUHJvdmlkZXIoY29udGV4dCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICByZXR1cm4gbnVsbDtcblxuICAgIGNhc2UgSW5jb21wbGV0ZUNsYXNzQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICAvLyBTYW1lIGFzIGNsYXNzIGNvbXBvbmVudCBjYXNlLiBJIHB1dCBpdCBkb3duIGhlcmUgc28gdGhhdCB0aGUgdGFncyBhcmVcbiAgICAgICAgLy8gc2VxdWVudGlhbCB0byBlbnN1cmUgdGhpcyBzd2l0Y2ggaXMgY29tcGlsZWQgdG8gYSBqdW1wIHRhYmxlLlxuICAgICAgICB2YXIgX0NvbXBvbmVudCA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG5cbiAgICAgICAgaWYgKGlzQ29udGV4dFByb3ZpZGVyKF9Db21wb25lbnQpKSB7XG4gICAgICAgICAgcG9wQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIH1cblxuICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICBjYXNlIFN1c3BlbnNlTGlzdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcG9wU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgdmFyIHJlbmRlclN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcblxuICAgICAgICBpZiAocmVuZGVyU3RhdGUgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBXZSdyZSBydW5uaW5nIGluIHRoZSBkZWZhdWx0LCBcImluZGVwZW5kZW50XCIgbW9kZS5cbiAgICAgICAgICAvLyBXZSBkb24ndCBkbyBhbnl0aGluZyBpbiB0aGlzIG1vZGUuXG4gICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZGlkU3VzcGVuZEFscmVhZHkgPSAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiBEaWRDYXB0dXJlKSAhPT0gTm9GbGFncztcbiAgICAgICAgdmFyIHJlbmRlcmVkVGFpbCA9IHJlbmRlclN0YXRlLnJlbmRlcmluZztcblxuICAgICAgICBpZiAocmVuZGVyZWRUYWlsID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gV2UganVzdCByZW5kZXJlZCB0aGUgaGVhZC5cbiAgICAgICAgICBpZiAoIWRpZFN1c3BlbmRBbHJlYWR5KSB7XG4gICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCBwYXNzLiBXZSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgYW55dGhpbmcgaXMgc3RpbGxcbiAgICAgICAgICAgIC8vIHN1c3BlbmRlZCBpbiB0aGUgcmVuZGVyZWQgc2V0LlxuICAgICAgICAgICAgLy8gSWYgbmV3IGNvbnRlbnQgdW5zdXNwZW5kZWQsIGJ1dCB0aGVyZSdzIHN0aWxsIHNvbWUgY29udGVudCB0aGF0XG4gICAgICAgICAgICAvLyBkaWRuJ3QuIFRoZW4gd2UgbmVlZCB0byBkbyBhIHNlY29uZCBwYXNzIHRoYXQgZm9yY2VzIGV2ZXJ5dGhpbmdcbiAgICAgICAgICAgIC8vIHRvIGtlZXAgc2hvd2luZyB0aGVpciBmYWxsYmFja3MuXG4gICAgICAgICAgICAvLyBXZSBtaWdodCBiZSBzdXNwZW5kZWQgaWYgc29tZXRoaW5nIGluIHRoaXMgcmVuZGVyIHBhc3Mgc3VzcGVuZGVkLCBvclxuICAgICAgICAgICAgLy8gc29tZXRoaW5nIGluIHRoZSBwcmV2aW91cyBjb21taXR0ZWQgcGFzcyBzdXNwZW5kZWQuIE90aGVyd2lzZSxcbiAgICAgICAgICAgIC8vIHRoZXJlJ3Mgbm8gY2hhbmNlIHNvIHdlIGNhbiBza2lwIHRoZSBleHBlbnNpdmUgY2FsbCB0b1xuICAgICAgICAgICAgLy8gZmluZEZpcnN0U3VzcGVuZGVkLlxuICAgICAgICAgICAgdmFyIGNhbm5vdEJlU3VzcGVuZGVkID0gcmVuZGVySGFzTm90U3VzcGVuZGVkWWV0KCkgJiYgKGN1cnJlbnQgPT09IG51bGwgfHwgKGN1cnJlbnQuZmxhZ3MgJiBEaWRDYXB0dXJlKSA9PT0gTm9GbGFncyk7XG5cbiAgICAgICAgICAgIGlmICghY2Fubm90QmVTdXNwZW5kZWQpIHtcbiAgICAgICAgICAgICAgdmFyIHJvdyA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuXG4gICAgICAgICAgICAgIHdoaWxlIChyb3cgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB2YXIgc3VzcGVuZGVkID0gZmluZEZpcnN0U3VzcGVuZGVkKHJvdyk7XG5cbiAgICAgICAgICAgICAgICBpZiAoc3VzcGVuZGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICBkaWRTdXNwZW5kQWxyZWFkeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBEaWRDYXB0dXJlO1xuICAgICAgICAgICAgICAgICAgY3V0T2ZmVGFpbElmTmVlZGVkKHJlbmRlclN0YXRlLCBmYWxzZSk7IC8vIElmIHRoaXMgaXMgYSBuZXdseSBzdXNwZW5kZWQgdHJlZSwgaXQgbWlnaHQgbm90IGdldCBjb21taXR0ZWQgYXNcbiAgICAgICAgICAgICAgICAgIC8vIHBhcnQgb2YgdGhlIHNlY29uZCBwYXNzLiBJbiB0aGF0IGNhc2Ugbm90aGluZyB3aWxsIHN1YnNjcmliZSB0b1xuICAgICAgICAgICAgICAgICAgLy8gaXRzIHRoZW5hYmxlcy4gSW5zdGVhZCwgd2UnbGwgdHJhbnNmZXIgaXRzIHRoZW5hYmxlcyB0byB0aGVcbiAgICAgICAgICAgICAgICAgIC8vIFN1c3BlbnNlTGlzdCBzbyB0aGF0IGl0IGNhbiByZXRyeSBpZiB0aGV5IHJlc29sdmUuXG4gICAgICAgICAgICAgICAgICAvLyBUaGVyZSBtaWdodCBiZSBtdWx0aXBsZSBvZiB0aGVzZSBpbiB0aGUgbGlzdCBidXQgc2luY2Ugd2UncmVcbiAgICAgICAgICAgICAgICAgIC8vIGdvaW5nIHRvIHdhaXQgZm9yIGFsbCBvZiB0aGVtIGFueXdheSwgaXQgZG9lc24ndCByZWFsbHkgbWF0dGVyXG4gICAgICAgICAgICAgICAgICAvLyB3aGljaCBvbmVzIGdldHMgdG8gcGluZy4gSW4gdGhlb3J5IHdlIGNvdWxkIGdldCBjbGV2ZXIgYW5kIGtlZXBcbiAgICAgICAgICAgICAgICAgIC8vIHRyYWNrIG9mIGhvdyBtYW55IGRlcGVuZGVuY2llcyByZW1haW4gYnV0IGl0IGdldHMgdHJpY2t5IGJlY2F1c2VcbiAgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBtZWFudGltZSwgd2UgY2FuIGFkZC9yZW1vdmUvY2hhbmdlIGl0ZW1zIGFuZCBkZXBlbmRlbmNpZXMuXG4gICAgICAgICAgICAgICAgICAvLyBXZSBtaWdodCBiYWlsIG91dCBvZiB0aGUgbG9vcCBiZWZvcmUgZmluZGluZyBhbnkgYnV0IHRoYXRcbiAgICAgICAgICAgICAgICAgIC8vIGRvZXNuJ3QgbWF0dGVyIHNpbmNlIHRoYXQgbWVhbnMgdGhhdCB0aGUgb3RoZXIgYm91bmRhcmllcyB0aGF0XG4gICAgICAgICAgICAgICAgICAvLyB3ZSBkaWQgZmluZCBhbHJlYWR5IGhhcyB0aGVpciBsaXN0ZW5lcnMgYXR0YWNoZWQuXG5cbiAgICAgICAgICAgICAgICAgIHZhciBuZXdUaGVuYWJsZXMgPSBzdXNwZW5kZWQudXBkYXRlUXVldWU7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChuZXdUaGVuYWJsZXMgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBuZXdUaGVuYWJsZXM7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbiAgICAgICAgICAgICAgICAgIH0gLy8gUmVyZW5kZXIgdGhlIHdob2xlIGxpc3QsIGJ1dCB0aGlzIHRpbWUsIHdlJ2xsIGZvcmNlIGZhbGxiYWNrc1xuICAgICAgICAgICAgICAgICAgLy8gdG8gc3RheSBpbiBwbGFjZS5cbiAgICAgICAgICAgICAgICAgIC8vIFJlc2V0IHRoZSBlZmZlY3QgZmxhZ3MgYmVmb3JlIGRvaW5nIHRoZSBzZWNvbmQgcGFzcyBzaW5jZSB0aGF0J3Mgbm93IGludmFsaWQuXG4gICAgICAgICAgICAgICAgICAvLyBSZXNldCB0aGUgY2hpbGQgZmliZXJzIHRvIHRoZWlyIG9yaWdpbmFsIHN0YXRlLlxuXG5cbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnN1YnRyZWVGbGFncyA9IE5vRmxhZ3M7XG4gICAgICAgICAgICAgICAgICByZXNldENoaWxkRmliZXJzKHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7IC8vIFNldCB1cCB0aGUgU3VzcGVuc2UgQ29udGV4dCB0byBmb3JjZSBzdXNwZW5zZSBhbmQgaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgICAgIC8vIHJlcmVuZGVyIHRoZSBjaGlsZHJlbi5cblxuICAgICAgICAgICAgICAgICAgcHVzaFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgc2V0U2hhbGxvd1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQsIEZvcmNlU3VzcGVuc2VGYWxsYmFjaykpOyAvLyBEb24ndCBidWJibGUgcHJvcGVydGllcyBpbiB0aGlzIGNhc2UuXG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByb3cgPSByb3cuc2libGluZztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVuZGVyU3RhdGUudGFpbCAhPT0gbnVsbCAmJiBub3coKSA+IGdldFJlbmRlclRhcmdldFRpbWUoKSkge1xuICAgICAgICAgICAgICAvLyBXZSBoYXZlIGFscmVhZHkgcGFzc2VkIG91ciBDUFUgZGVhZGxpbmUgYnV0IHdlIHN0aWxsIGhhdmUgcm93c1xuICAgICAgICAgICAgICAvLyBsZWZ0IGluIHRoZSB0YWlsLiBXZSdsbCBqdXN0IGdpdmUgdXAgZnVydGhlciBhdHRlbXB0cyB0byByZW5kZXJcbiAgICAgICAgICAgICAgLy8gdGhlIG1haW4gY29udGVudCBhbmQgb25seSByZW5kZXIgZmFsbGJhY2tzLlxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBEaWRDYXB0dXJlO1xuICAgICAgICAgICAgICBkaWRTdXNwZW5kQWxyZWFkeSA9IHRydWU7XG4gICAgICAgICAgICAgIGN1dE9mZlRhaWxJZk5lZWRlZChyZW5kZXJTdGF0ZSwgZmFsc2UpOyAvLyBTaW5jZSBub3RoaW5nIGFjdHVhbGx5IHN1c3BlbmRlZCwgdGhlcmUgd2lsbCBub3RoaW5nIHRvIHBpbmcgdGhpc1xuICAgICAgICAgICAgICAvLyB0byBnZXQgaXQgc3RhcnRlZCBiYWNrIHVwIHRvIGF0dGVtcHQgdGhlIG5leHQgaXRlbS4gV2hpbGUgaW4gdGVybXNcbiAgICAgICAgICAgICAgLy8gb2YgcHJpb3JpdHkgdGhpcyB3b3JrIGhhcyB0aGUgc2FtZSBwcmlvcml0eSBhcyB0aGlzIGN1cnJlbnQgcmVuZGVyLFxuICAgICAgICAgICAgICAvLyBpdCdzIG5vdCBwYXJ0IG9mIHRoZSBzYW1lIHRyYW5zaXRpb24gb25jZSB0aGUgdHJhbnNpdGlvbiBoYXNcbiAgICAgICAgICAgICAgLy8gY29tbWl0dGVkLiBJZiBpdCdzIHN5bmMsIHdlIHN0aWxsIHdhbnQgdG8geWllbGQgc28gdGhhdCBpdCBjYW4gYmVcbiAgICAgICAgICAgICAgLy8gcGFpbnRlZC4gQ29uY2VwdHVhbGx5LCB0aGlzIGlzIHJlYWxseSB0aGUgc2FtZSBhcyBwaW5naW5nLlxuICAgICAgICAgICAgICAvLyBXZSBjYW4gdXNlIGFueSBSZXRyeUxhbmUgZXZlbiBpZiBpdCdzIHRoZSBvbmUgY3VycmVudGx5IHJlbmRlcmluZ1xuICAgICAgICAgICAgICAvLyBzaW5jZSB3ZSdyZSBsZWF2aW5nIGl0IGJlaGluZCBvbiB0aGlzIG5vZGUuXG5cbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBTb21lUmV0cnlMYW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXRPZmZUYWlsSWZOZWVkZWQocmVuZGVyU3RhdGUsIGZhbHNlKTtcbiAgICAgICAgICB9IC8vIE5leHQgd2UncmUgZ29pbmcgdG8gcmVuZGVyIHRoZSB0YWlsLlxuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQXBwZW5kIHRoZSByZW5kZXJlZCByb3cgdG8gdGhlIGNoaWxkIGxpc3QuXG4gICAgICAgICAgaWYgKCFkaWRTdXNwZW5kQWxyZWFkeSkge1xuICAgICAgICAgICAgdmFyIF9zdXNwZW5kZWQgPSBmaW5kRmlyc3RTdXNwZW5kZWQocmVuZGVyZWRUYWlsKTtcblxuICAgICAgICAgICAgaWYgKF9zdXNwZW5kZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICAgICAgICAgICAgZGlkU3VzcGVuZEFscmVhZHkgPSB0cnVlOyAvLyBFbnN1cmUgd2UgdHJhbnNmZXIgdGhlIHVwZGF0ZSBxdWV1ZSB0byB0aGUgcGFyZW50IHNvIHRoYXQgaXQgZG9lc24ndFxuICAgICAgICAgICAgICAvLyBnZXQgbG9zdCBpZiB0aGlzIHJvdyBlbmRzIHVwIGRyb3BwZWQgZHVyaW5nIGEgc2Vjb25kIHBhc3MuXG5cbiAgICAgICAgICAgICAgdmFyIF9uZXdUaGVuYWJsZXMgPSBfc3VzcGVuZGVkLnVwZGF0ZVF1ZXVlO1xuXG4gICAgICAgICAgICAgIGlmIChfbmV3VGhlbmFibGVzICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBfbmV3VGhlbmFibGVzO1xuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGN1dE9mZlRhaWxJZk5lZWRlZChyZW5kZXJTdGF0ZSwgdHJ1ZSk7IC8vIFRoaXMgbWlnaHQgaGF2ZSBiZWVuIG1vZGlmaWVkLlxuXG4gICAgICAgICAgICAgIGlmIChyZW5kZXJTdGF0ZS50YWlsID09PSBudWxsICYmIHJlbmRlclN0YXRlLnRhaWxNb2RlID09PSAnaGlkZGVuJyAmJiAhcmVuZGVyZWRUYWlsLmFsdGVybmF0ZSAmJiAhZ2V0SXNIeWRyYXRpbmcoKSAvLyBXZSBkb24ndCBjdXQgaXQgaWYgd2UncmUgaHlkcmF0aW5nLlxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIC8vIFdlJ3JlIGRvbmUuXG4gICAgICAgICAgICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIC8vIFRoZSB0aW1lIGl0IHRvb2sgdG8gcmVuZGVyIGxhc3Qgcm93IGlzIGdyZWF0ZXIgdGhhbiB0aGUgcmVtYWluaW5nXG4gICAgICAgICAgICAvLyB0aW1lIHdlIGhhdmUgdG8gcmVuZGVyLiBTbyByZW5kZXJpbmcgb25lIG1vcmUgcm93IHdvdWxkIGxpa2VseVxuICAgICAgICAgICAgLy8gZXhjZWVkIGl0LlxuICAgICAgICAgICAgbm93KCkgKiAyIC0gcmVuZGVyU3RhdGUucmVuZGVyaW5nU3RhcnRUaW1lID4gZ2V0UmVuZGVyVGFyZ2V0VGltZSgpICYmIHJlbmRlckxhbmVzICE9PSBPZmZzY3JlZW5MYW5lKSB7XG4gICAgICAgICAgICAgIC8vIFdlIGhhdmUgbm93IHBhc3NlZCBvdXIgQ1BVIGRlYWRsaW5lIGFuZCB3ZSdsbCBqdXN0IGdpdmUgdXAgZnVydGhlclxuICAgICAgICAgICAgICAvLyBhdHRlbXB0cyB0byByZW5kZXIgdGhlIG1haW4gY29udGVudCBhbmQgb25seSByZW5kZXIgZmFsbGJhY2tzLlxuICAgICAgICAgICAgICAvLyBUaGUgYXNzdW1wdGlvbiBpcyB0aGF0IHRoaXMgaXMgdXN1YWxseSBmYXN0ZXIuXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IERpZENhcHR1cmU7XG4gICAgICAgICAgICAgIGRpZFN1c3BlbmRBbHJlYWR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgY3V0T2ZmVGFpbElmTmVlZGVkKHJlbmRlclN0YXRlLCBmYWxzZSk7IC8vIFNpbmNlIG5vdGhpbmcgYWN0dWFsbHkgc3VzcGVuZGVkLCB0aGVyZSB3aWxsIG5vdGhpbmcgdG8gcGluZyB0aGlzXG4gICAgICAgICAgICAgIC8vIHRvIGdldCBpdCBzdGFydGVkIGJhY2sgdXAgdG8gYXR0ZW1wdCB0aGUgbmV4dCBpdGVtLiBXaGlsZSBpbiB0ZXJtc1xuICAgICAgICAgICAgICAvLyBvZiBwcmlvcml0eSB0aGlzIHdvcmsgaGFzIHRoZSBzYW1lIHByaW9yaXR5IGFzIHRoaXMgY3VycmVudCByZW5kZXIsXG4gICAgICAgICAgICAgIC8vIGl0J3Mgbm90IHBhcnQgb2YgdGhlIHNhbWUgdHJhbnNpdGlvbiBvbmNlIHRoZSB0cmFuc2l0aW9uIGhhc1xuICAgICAgICAgICAgICAvLyBjb21taXR0ZWQuIElmIGl0J3Mgc3luYywgd2Ugc3RpbGwgd2FudCB0byB5aWVsZCBzbyB0aGF0IGl0IGNhbiBiZVxuICAgICAgICAgICAgICAvLyBwYWludGVkLiBDb25jZXB0dWFsbHksIHRoaXMgaXMgcmVhbGx5IHRoZSBzYW1lIGFzIHBpbmdpbmcuXG4gICAgICAgICAgICAgIC8vIFdlIGNhbiB1c2UgYW55IFJldHJ5TGFuZSBldmVuIGlmIGl0J3MgdGhlIG9uZSBjdXJyZW50bHkgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIC8vIHNpbmNlIHdlJ3JlIGxlYXZpbmcgaXQgYmVoaW5kIG9uIHRoaXMgbm9kZS5cblxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IFNvbWVSZXRyeUxhbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHJlbmRlclN0YXRlLmlzQmFja3dhcmRzKSB7XG4gICAgICAgICAgICAvLyBUaGUgZWZmZWN0IGxpc3Qgb2YgdGhlIGJhY2t3YXJkcyB0YWlsIHdpbGwgaGF2ZSBiZWVuIGFkZGVkXG4gICAgICAgICAgICAvLyB0byB0aGUgZW5kLiBUaGlzIGJyZWFrcyB0aGUgZ3VhcmFudGVlIHRoYXQgbGlmZS1jeWNsZXMgZmlyZSBpblxuICAgICAgICAgICAgLy8gc2libGluZyBvcmRlciBidXQgdGhhdCBpc24ndCBhIHN0cm9uZyBndWFyYW50ZWUgcHJvbWlzZWQgYnkgUmVhY3QuXG4gICAgICAgICAgICAvLyBFc3BlY2lhbGx5IHNpbmNlIHRoZXNlIG1pZ2h0IGFsc28ganVzdCBwb3AgaW4gZHVyaW5nIGZ1dHVyZSBjb21taXRzLlxuICAgICAgICAgICAgLy8gQXBwZW5kIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3QuXG4gICAgICAgICAgICByZW5kZXJlZFRhaWwuc2libGluZyA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByZW5kZXJlZFRhaWw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBwcmV2aW91c1NpYmxpbmcgPSByZW5kZXJTdGF0ZS5sYXN0O1xuXG4gICAgICAgICAgICBpZiAocHJldmlvdXNTaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHByZXZpb3VzU2libGluZy5zaWJsaW5nID0gcmVuZGVyZWRUYWlsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByZW5kZXJlZFRhaWw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlbmRlclN0YXRlLmxhc3QgPSByZW5kZXJlZFRhaWw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlbmRlclN0YXRlLnRhaWwgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBXZSBzdGlsbCBoYXZlIHRhaWwgcm93cyB0byByZW5kZXIuXG4gICAgICAgICAgLy8gUG9wIGEgcm93LlxuICAgICAgICAgIHZhciBuZXh0ID0gcmVuZGVyU3RhdGUudGFpbDtcbiAgICAgICAgICByZW5kZXJTdGF0ZS5yZW5kZXJpbmcgPSBuZXh0O1xuICAgICAgICAgIHJlbmRlclN0YXRlLnRhaWwgPSBuZXh0LnNpYmxpbmc7XG4gICAgICAgICAgcmVuZGVyU3RhdGUucmVuZGVyaW5nU3RhcnRUaW1lID0gbm93KCk7XG4gICAgICAgICAgbmV4dC5zaWJsaW5nID0gbnVsbDsgLy8gUmVzdG9yZSB0aGUgY29udGV4dC5cbiAgICAgICAgICAvLyBUT0RPOiBXZSBjYW4gcHJvYmFibHkganVzdCBhdm9pZCBwb3BwaW5nIGl0IGluc3RlYWQgYW5kIG9ubHlcbiAgICAgICAgICAvLyBzZXR0aW5nIGl0IHRoZSBmaXJzdCB0aW1lIHdlIGdvIGZyb20gbm90IHN1c3BlbmRlZCB0byBzdXNwZW5kZWQuXG5cbiAgICAgICAgICB2YXIgc3VzcGVuc2VDb250ZXh0ID0gc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50O1xuXG4gICAgICAgICAgaWYgKGRpZFN1c3BlbmRBbHJlYWR5KSB7XG4gICAgICAgICAgICBzdXNwZW5zZUNvbnRleHQgPSBzZXRTaGFsbG93U3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlQ29udGV4dCwgRm9yY2VTdXNwZW5zZUZhbGxiYWNrKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VzcGVuc2VDb250ZXh0ID0gc2V0RGVmYXVsdFNoYWxsb3dTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VDb250ZXh0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBwdXNoU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzLCBzdXNwZW5zZUNvbnRleHQpOyAvLyBEbyBhIHBhc3Mgb3ZlciB0aGUgbmV4dCByb3cuXG4gICAgICAgICAgLy8gRG9uJ3QgYnViYmxlIHByb3BlcnRpZXMgaW4gdGhpcyBjYXNlLlxuXG4gICAgICAgICAgcmV0dXJuIG5leHQ7XG4gICAgICAgIH1cblxuICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICBjYXNlIFNjb3BlQ29tcG9uZW50OlxuICAgICAge1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBPZmZzY3JlZW5Db21wb25lbnQ6XG4gICAgY2FzZSBMZWdhY3lIaWRkZW5Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHBvcFJlbmRlckxhbmVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgdmFyIF9uZXh0U3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICAgICAgICB2YXIgbmV4dElzSGlkZGVuID0gX25leHRTdGF0ZSAhPT0gbnVsbDtcblxuICAgICAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIHZhciBfcHJldlN0YXRlMiA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICB2YXIgcHJldklzSGlkZGVuID0gX3ByZXZTdGF0ZTIgIT09IG51bGw7XG5cbiAgICAgICAgICBpZiAocHJldklzSGlkZGVuICE9PSBuZXh0SXNIaWRkZW4gJiYgKCAvLyBMZWdhY3lIaWRkZW4gZG9lc24ndCBkbyBhbnkgaGlkaW5nIFx1MjAxNCBpdCBvbmx5IHByZS1yZW5kZXJzLlxuICAgICAgICAgICFlbmFibGVMZWdhY3lIaWRkZW4gKSkge1xuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVmlzaWJpbGl0eTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW5leHRJc0hpZGRlbiB8fCAod29ya0luUHJvZ3Jlc3MubW9kZSAmIENvbmN1cnJlbnRNb2RlKSA9PT0gTm9Nb2RlKSB7XG4gICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRG9uJ3QgYnViYmxlIHByb3BlcnRpZXMgZm9yIGhpZGRlbiBjaGlsZHJlbiB1bmxlc3Mgd2UncmUgcmVuZGVyaW5nXG4gICAgICAgICAgLy8gYXQgb2Zmc2NyZWVuIHByaW9yaXR5LlxuICAgICAgICAgIGlmIChpbmNsdWRlc1NvbWVMYW5lKHN1YnRyZWVSZW5kZXJMYW5lcywgT2Zmc2NyZWVuTGFuZSkpIHtcbiAgICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZXJlIHdhcyBhbiBpbnNlcnRpb24gb3IgdXBkYXRlIGluIHRoZSBoaWRkZW4gc3VidHJlZS5cbiAgICAgICAgICAgICAgLy8gSWYgc28sIHdlIG5lZWQgdG8gaGlkZSB0aG9zZSBub2RlcyBpbiB0aGUgY29tbWl0IHBoYXNlLCBzb1xuICAgICAgICAgICAgICAvLyBzY2hlZHVsZSBhIHZpc2liaWxpdHkgZWZmZWN0LlxuICAgICAgICAgICAgICBpZiAoIHdvcmtJblByb2dyZXNzLnN1YnRyZWVGbGFncyAmIChQbGFjZW1lbnQgfCBVcGRhdGUpKSB7XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVmlzaWJpbGl0eTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBDYWNoZUNvbXBvbmVudDpcbiAgICAgIHtcblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgIGNhc2UgVHJhY2luZ01hcmtlckNvbXBvbmVudDpcbiAgICAgIHtcblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gdW5pdCBvZiB3b3JrIHRhZyAoXCIgKyB3b3JrSW5Qcm9ncmVzcy50YWcgKyBcIikuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBcIiArICdSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG59XG5cbnZhciBSZWFjdEN1cnJlbnRPd25lciQxID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50T3duZXI7XG52YXIgZGlkUmVjZWl2ZVVwZGF0ZSA9IGZhbHNlO1xudmFyIGRpZFdhcm5BYm91dEJhZENsYXNzO1xudmFyIGRpZFdhcm5BYm91dE1vZHVsZVBhdHRlcm5Db21wb25lbnQ7XG52YXIgZGlkV2FybkFib3V0Q29udGV4dFR5cGVPbkZ1bmN0aW9uQ29tcG9uZW50O1xudmFyIGRpZFdhcm5BYm91dEdldERlcml2ZWRTdGF0ZU9uRnVuY3Rpb25Db21wb25lbnQ7XG52YXIgZGlkV2FybkFib3V0RnVuY3Rpb25SZWZzO1xudmFyIGRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHM7XG52YXIgZGlkV2FybkFib3V0UmV2ZWFsT3JkZXI7XG52YXIgZGlkV2FybkFib3V0VGFpbE9wdGlvbnM7XG5cbntcbiAgZGlkV2FybkFib3V0QmFkQ2xhc3MgPSB7fTtcbiAgZGlkV2FybkFib3V0TW9kdWxlUGF0dGVybkNvbXBvbmVudCA9IHt9O1xuICBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZU9uRnVuY3Rpb25Db21wb25lbnQgPSB7fTtcbiAgZGlkV2FybkFib3V0R2V0RGVyaXZlZFN0YXRlT25GdW5jdGlvbkNvbXBvbmVudCA9IHt9O1xuICBkaWRXYXJuQWJvdXRGdW5jdGlvblJlZnMgPSB7fTtcbiAgZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcyA9IGZhbHNlO1xuICBkaWRXYXJuQWJvdXRSZXZlYWxPcmRlciA9IHt9O1xuICBkaWRXYXJuQWJvdXRUYWlsT3B0aW9ucyA9IHt9O1xufVxuXG5mdW5jdGlvbiByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcykge1xuICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgIC8vIElmIHRoaXMgaXMgYSBmcmVzaCBuZXcgY29tcG9uZW50IHRoYXQgaGFzbid0IGJlZW4gcmVuZGVyZWQgeWV0LCB3ZVxuICAgIC8vIHdvbid0IHVwZGF0ZSBpdHMgY2hpbGQgc2V0IGJ5IGFwcGx5aW5nIG1pbmltYWwgc2lkZS1lZmZlY3RzLiBJbnN0ZWFkLFxuICAgIC8vIHdlIHdpbGwgYWRkIHRoZW0gYWxsIHRvIHRoZSBjaGlsZCBiZWZvcmUgaXQgZ2V0cyByZW5kZXJlZC4gVGhhdCBtZWFuc1xuICAgIC8vIHdlIGNhbiBvcHRpbWl6ZSB0aGlzIHJlY29uY2lsaWF0aW9uIHBhc3MgYnkgbm90IHRyYWNraW5nIHNpZGUtZWZmZWN0cy5cbiAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG1vdW50Q2hpbGRGaWJlcnMod29ya0luUHJvZ3Jlc3MsIG51bGwsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICB9IGVsc2Uge1xuICAgIC8vIElmIHRoZSBjdXJyZW50IGNoaWxkIGlzIHRoZSBzYW1lIGFzIHRoZSB3b3JrIGluIHByb2dyZXNzLCBpdCBtZWFucyB0aGF0XG4gICAgLy8gd2UgaGF2ZW4ndCB5ZXQgc3RhcnRlZCBhbnkgd29yayBvbiB0aGVzZSBjaGlsZHJlbi4gVGhlcmVmb3JlLCB3ZSB1c2VcbiAgICAvLyB0aGUgY2xvbmUgYWxnb3JpdGhtIHRvIGNyZWF0ZSBhIGNvcHkgb2YgYWxsIHRoZSBjdXJyZW50IGNoaWxkcmVuLlxuICAgIC8vIElmIHdlIGhhZCBhbnkgcHJvZ3Jlc3NlZCB3b3JrIGFscmVhZHksIHRoYXQgaXMgaW52YWxpZCBhdCB0aGlzIHBvaW50IHNvXG4gICAgLy8gbGV0J3MgdGhyb3cgaXQgb3V0LlxuICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcmVjb25jaWxlQ2hpbGRGaWJlcnMod29ya0luUHJvZ3Jlc3MsIGN1cnJlbnQuY2hpbGQsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZvcmNlVW5tb3VudEN1cnJlbnRBbmRSZWNvbmNpbGUoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gVGhpcyBmdW5jdGlvbiBpcyBmb3JrIG9mIHJlY29uY2lsZUNoaWxkcmVuLiBJdCdzIHVzZWQgaW4gY2FzZXMgd2hlcmUgd2VcbiAgLy8gd2FudCB0byByZWNvbmNpbGUgd2l0aG91dCBtYXRjaGluZyBhZ2FpbnN0IHRoZSBleGlzdGluZyBzZXQuIFRoaXMgaGFzIHRoZVxuICAvLyBlZmZlY3Qgb2YgYWxsIGN1cnJlbnQgY2hpbGRyZW4gYmVpbmcgdW5tb3VudGVkOyBldmVuIGlmIHRoZSB0eXBlIGFuZCBrZXlcbiAgLy8gYXJlIHRoZSBzYW1lLCB0aGUgb2xkIGNoaWxkIGlzIHVubW91bnRlZCBhbmQgYSBuZXcgY2hpbGQgaXMgY3JlYXRlZC5cbiAgLy9cbiAgLy8gVG8gZG8gdGhpcywgd2UncmUgZ29pbmcgdG8gZ28gdGhyb3VnaCB0aGUgcmVjb25jaWxlIGFsZ29yaXRobSB0d2ljZS4gSW5cbiAgLy8gdGhlIGZpcnN0IHBhc3MsIHdlIHNjaGVkdWxlIGEgZGVsZXRpb24gZm9yIGFsbCB0aGUgY3VycmVudCBjaGlsZHJlbiBieVxuICAvLyBwYXNzaW5nIG51bGwuXG4gIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcmVjb25jaWxlQ2hpbGRGaWJlcnMod29ya0luUHJvZ3Jlc3MsIGN1cnJlbnQuY2hpbGQsIG51bGwsIHJlbmRlckxhbmVzKTsgLy8gSW4gdGhlIHNlY29uZCBwYXNzLCB3ZSBtb3VudCB0aGUgbmV3IGNoaWxkcmVuLiBUaGUgdHJpY2sgaGVyZSBpcyB0aGF0IHdlXG4gIC8vIHBhc3MgbnVsbCBpbiBwbGFjZSBvZiB3aGVyZSB3ZSB1c3VhbGx5IHBhc3MgdGhlIGN1cnJlbnQgY2hpbGQgc2V0LiBUaGlzIGhhc1xuICAvLyB0aGUgZWZmZWN0IG9mIHJlbW91bnRpbmcgYWxsIGNoaWxkcmVuIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGVpclxuICAvLyBpZGVudGl0aWVzIG1hdGNoLlxuXG4gIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcmVjb25jaWxlQ2hpbGRGaWJlcnMod29ya0luUHJvZ3Jlc3MsIG51bGwsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVGb3J3YXJkUmVmKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAgLy8gVE9ETzogY3VycmVudCBjYW4gYmUgbm9uLW51bGwgaGVyZSBldmVuIGlmIHRoZSBjb21wb25lbnRcbiAgLy8gaGFzbid0IHlldCBtb3VudGVkLiBUaGlzIGhhcHBlbnMgYWZ0ZXIgdGhlIGZpcnN0IHJlbmRlciBzdXNwZW5kcy5cbiAgLy8gV2UnbGwgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoaXMgaXMgZmluZSBvciBjYW4gY2F1c2UgaXNzdWVzLlxuICB7XG4gICAgaWYgKHdvcmtJblByb2dyZXNzLnR5cGUgIT09IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlKSB7XG4gICAgICAvLyBMYXp5IGNvbXBvbmVudCBwcm9wcyBjYW4ndCBiZSB2YWxpZGF0ZWQgaW4gY3JlYXRlRWxlbWVudFxuICAgICAgLy8gYmVjYXVzZSB0aGV5J3JlIG9ubHkgZ3VhcmFudGVlZCB0byBiZSByZXNvbHZlZCBoZXJlLlxuICAgICAgdmFyIGlubmVyUHJvcFR5cGVzID0gQ29tcG9uZW50LnByb3BUeXBlcztcblxuICAgICAgaWYgKGlubmVyUHJvcFR5cGVzKSB7XG4gICAgICAgIGNoZWNrUHJvcFR5cGVzKGlubmVyUHJvcFR5cGVzLCBuZXh0UHJvcHMsIC8vIFJlc29sdmVkIHByb3BzXG4gICAgICAgICdwcm9wJywgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKENvbXBvbmVudCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciByZW5kZXIgPSBDb21wb25lbnQucmVuZGVyO1xuICB2YXIgcmVmID0gd29ya0luUHJvZ3Jlc3MucmVmOyAvLyBUaGUgcmVzdCBpcyBhIGZvcmsgb2YgdXBkYXRlRnVuY3Rpb25Db21wb25lbnRcblxuICB2YXIgbmV4dENoaWxkcmVuO1xuICB2YXIgaGFzSWQ7XG4gIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG5cbiAge1xuICAgIG1hcmtDb21wb25lbnRSZW5kZXJTdGFydGVkKHdvcmtJblByb2dyZXNzKTtcbiAgfVxuXG4gIHtcbiAgICBSZWFjdEN1cnJlbnRPd25lciQxLmN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcztcbiAgICBzZXRJc1JlbmRlcmluZyh0cnVlKTtcbiAgICBuZXh0Q2hpbGRyZW4gPSByZW5kZXJXaXRoSG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlciwgbmV4dFByb3BzLCByZWYsIHJlbmRlckxhbmVzKTtcbiAgICBoYXNJZCA9IGNoZWNrRGlkUmVuZGVySWRIb29rKCk7XG5cbiAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyh0cnVlKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbmV4dENoaWxkcmVuID0gcmVuZGVyV2l0aEhvb2tzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXIsIG5leHRQcm9wcywgcmVmLCByZW5kZXJMYW5lcyk7XG4gICAgICAgIGhhc0lkID0gY2hlY2tEaWRSZW5kZXJJZEhvb2soKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRJc1JlbmRlcmluZyhmYWxzZSk7XG4gIH1cblxuICB7XG4gICAgbWFya0NvbXBvbmVudFJlbmRlclN0b3BwZWQoKTtcbiAgfVxuXG4gIGlmIChjdXJyZW50ICE9PSBudWxsICYmICFkaWRSZWNlaXZlVXBkYXRlKSB7XG4gICAgYmFpbG91dEhvb2tzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgcmV0dXJuIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIGlmIChnZXRJc0h5ZHJhdGluZygpICYmIGhhc0lkKSB7XG4gICAgcHVzaE1hdGVyaWFsaXplZFRyZWVJZCh3b3JrSW5Qcm9ncmVzcyk7XG4gIH0gLy8gUmVhY3QgRGV2VG9vbHMgcmVhZHMgdGhpcyBmbGFnLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGVyZm9ybWVkV29yaztcbiAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZU1lbW9Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCByZW5kZXJMYW5lcykge1xuICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgIHZhciB0eXBlID0gQ29tcG9uZW50LnR5cGU7XG5cbiAgICBpZiAoaXNTaW1wbGVGdW5jdGlvbkNvbXBvbmVudCh0eXBlKSAmJiBDb21wb25lbnQuY29tcGFyZSA9PT0gbnVsbCAmJiAvLyBTaW1wbGVNZW1vQ29tcG9uZW50IGNvZGVwYXRoIGRvZXNuJ3QgcmVzb2x2ZSBvdXRlciBwcm9wcyBlaXRoZXIuXG4gICAgQ29tcG9uZW50LmRlZmF1bHRQcm9wcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgcmVzb2x2ZWRUeXBlID0gdHlwZTtcblxuICAgICAge1xuICAgICAgICByZXNvbHZlZFR5cGUgPSByZXNvbHZlRnVuY3Rpb25Gb3JIb3RSZWxvYWRpbmcodHlwZSk7XG4gICAgICB9IC8vIElmIHRoaXMgaXMgYSBwbGFpbiBmdW5jdGlvbiBjb21wb25lbnQgd2l0aG91dCBkZWZhdWx0IHByb3BzLFxuICAgICAgLy8gYW5kIHdpdGggb25seSB0aGUgZGVmYXVsdCBzaGFsbG93IGNvbXBhcmlzb24sIHdlIHVwZ3JhZGUgaXRcbiAgICAgIC8vIHRvIGEgU2ltcGxlTWVtb0NvbXBvbmVudCB0byBhbGxvdyBmYXN0IHBhdGggdXBkYXRlcy5cblxuXG4gICAgICB3b3JrSW5Qcm9ncmVzcy50YWcgPSBTaW1wbGVNZW1vQ29tcG9uZW50O1xuICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IHJlc29sdmVkVHlwZTtcblxuICAgICAge1xuICAgICAgICB2YWxpZGF0ZUZ1bmN0aW9uQ29tcG9uZW50SW5EZXYod29ya0luUHJvZ3Jlc3MsIHR5cGUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdXBkYXRlU2ltcGxlTWVtb0NvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVzb2x2ZWRUeXBlLCBuZXh0UHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICB2YXIgaW5uZXJQcm9wVHlwZXMgPSB0eXBlLnByb3BUeXBlcztcblxuICAgICAgaWYgKGlubmVyUHJvcFR5cGVzKSB7XG4gICAgICAgIC8vIElubmVyIG1lbW8gY29tcG9uZW50IHByb3BzIGFyZW4ndCBjdXJyZW50bHkgdmFsaWRhdGVkIGluIGNyZWF0ZUVsZW1lbnQuXG4gICAgICAgIC8vIFdlIGNvdWxkIG1vdmUgaXQgdGhlcmUsIGJ1dCB3ZSdkIHN0aWxsIG5lZWQgdGhpcyBmb3IgbGF6eSBjb2RlIHBhdGguXG4gICAgICAgIGNoZWNrUHJvcFR5cGVzKGlubmVyUHJvcFR5cGVzLCBuZXh0UHJvcHMsIC8vIFJlc29sdmVkIHByb3BzXG4gICAgICAgICdwcm9wJywgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgY2hpbGQgPSBjcmVhdGVGaWJlckZyb21UeXBlQW5kUHJvcHMoQ29tcG9uZW50LnR5cGUsIG51bGwsIG5leHRQcm9wcywgd29ya0luUHJvZ3Jlc3MsIHdvcmtJblByb2dyZXNzLm1vZGUsIHJlbmRlckxhbmVzKTtcbiAgICBjaGlsZC5yZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWY7XG4gICAgY2hpbGQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBjaGlsZDtcbiAgICByZXR1cm4gY2hpbGQ7XG4gIH1cblxuICB7XG4gICAgdmFyIF90eXBlID0gQ29tcG9uZW50LnR5cGU7XG4gICAgdmFyIF9pbm5lclByb3BUeXBlcyA9IF90eXBlLnByb3BUeXBlcztcblxuICAgIGlmIChfaW5uZXJQcm9wVHlwZXMpIHtcbiAgICAgIC8vIElubmVyIG1lbW8gY29tcG9uZW50IHByb3BzIGFyZW4ndCBjdXJyZW50bHkgdmFsaWRhdGVkIGluIGNyZWF0ZUVsZW1lbnQuXG4gICAgICAvLyBXZSBjb3VsZCBtb3ZlIGl0IHRoZXJlLCBidXQgd2UnZCBzdGlsbCBuZWVkIHRoaXMgZm9yIGxhenkgY29kZSBwYXRoLlxuICAgICAgY2hlY2tQcm9wVHlwZXMoX2lubmVyUHJvcFR5cGVzLCBuZXh0UHJvcHMsIC8vIFJlc29sdmVkIHByb3BzXG4gICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShfdHlwZSkpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBjdXJyZW50Q2hpbGQgPSBjdXJyZW50LmNoaWxkOyAvLyBUaGlzIGlzIGFsd2F5cyBleGFjdGx5IG9uZSBjaGlsZFxuXG4gIHZhciBoYXNTY2hlZHVsZWRVcGRhdGVPckNvbnRleHQgPSBjaGVja1NjaGVkdWxlZFVwZGF0ZU9yQ29udGV4dChjdXJyZW50LCByZW5kZXJMYW5lcyk7XG5cbiAgaWYgKCFoYXNTY2hlZHVsZWRVcGRhdGVPckNvbnRleHQpIHtcbiAgICAvLyBUaGlzIHdpbGwgYmUgdGhlIHByb3BzIHdpdGggcmVzb2x2ZWQgZGVmYXVsdFByb3BzLFxuICAgIC8vIHVubGlrZSBjdXJyZW50Lm1lbW9pemVkUHJvcHMgd2hpY2ggd2lsbCBiZSB0aGUgdW5yZXNvbHZlZCBvbmVzLlxuICAgIHZhciBwcmV2UHJvcHMgPSBjdXJyZW50Q2hpbGQubWVtb2l6ZWRQcm9wczsgLy8gRGVmYXVsdCB0byBzaGFsbG93IGNvbXBhcmlzb25cblxuICAgIHZhciBjb21wYXJlID0gQ29tcG9uZW50LmNvbXBhcmU7XG4gICAgY29tcGFyZSA9IGNvbXBhcmUgIT09IG51bGwgPyBjb21wYXJlIDogc2hhbGxvd0VxdWFsO1xuXG4gICAgaWYgKGNvbXBhcmUocHJldlByb3BzLCBuZXh0UHJvcHMpICYmIGN1cnJlbnQucmVmID09PSB3b3JrSW5Qcm9ncmVzcy5yZWYpIHtcbiAgICAgIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgfVxuICB9IC8vIFJlYWN0IERldlRvb2xzIHJlYWRzIHRoaXMgZmxhZy5cblxuXG4gIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFBlcmZvcm1lZFdvcms7XG4gIHZhciBuZXdDaGlsZCA9IGNyZWF0ZVdvcmtJblByb2dyZXNzKGN1cnJlbnRDaGlsZCwgbmV4dFByb3BzKTtcbiAgbmV3Q2hpbGQucmVmID0gd29ya0luUHJvZ3Jlc3MucmVmO1xuICBuZXdDaGlsZC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBuZXdDaGlsZDtcbiAgcmV0dXJuIG5ld0NoaWxkO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVTaW1wbGVNZW1vQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAgLy8gVE9ETzogY3VycmVudCBjYW4gYmUgbm9uLW51bGwgaGVyZSBldmVuIGlmIHRoZSBjb21wb25lbnRcbiAgLy8gaGFzbid0IHlldCBtb3VudGVkLiBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgaW5uZXIgcmVuZGVyIHN1c3BlbmRzLlxuICAvLyBXZSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBpcyBmaW5lIG9yIGNhbiBjYXVzZSBpc3N1ZXMuXG4gIHtcbiAgICBpZiAod29ya0luUHJvZ3Jlc3MudHlwZSAhPT0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUpIHtcbiAgICAgIC8vIExhenkgY29tcG9uZW50IHByb3BzIGNhbid0IGJlIHZhbGlkYXRlZCBpbiBjcmVhdGVFbGVtZW50XG4gICAgICAvLyBiZWNhdXNlIHRoZXkncmUgb25seSBndWFyYW50ZWVkIHRvIGJlIHJlc29sdmVkIGhlcmUuXG4gICAgICB2YXIgb3V0ZXJNZW1vVHlwZSA9IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlO1xuXG4gICAgICBpZiAob3V0ZXJNZW1vVHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFKSB7XG4gICAgICAgIC8vIFdlIHdhcm4gd2hlbiB5b3UgZGVmaW5lIHByb3BUeXBlcyBvbiBsYXp5KClcbiAgICAgICAgLy8gc28gbGV0J3MganVzdCBza2lwIG92ZXIgaXQgdG8gZmluZCBtZW1vKCkgb3V0ZXIgd3JhcHBlci5cbiAgICAgICAgLy8gSW5uZXIgcHJvcHMgZm9yIG1lbW8gYXJlIHZhbGlkYXRlZCBsYXRlci5cbiAgICAgICAgdmFyIGxhenlDb21wb25lbnQgPSBvdXRlck1lbW9UeXBlO1xuICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XG4gICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIG91dGVyTWVtb1R5cGUgPSBpbml0KHBheWxvYWQpO1xuICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgb3V0ZXJNZW1vVHlwZSA9IG51bGw7XG4gICAgICAgIH0gLy8gSW5uZXIgcHJvcFR5cGVzIHdpbGwgYmUgdmFsaWRhdGVkIGluIHRoZSBmdW5jdGlvbiBjb21wb25lbnQgcGF0aC5cblxuXG4gICAgICAgIHZhciBvdXRlclByb3BUeXBlcyA9IG91dGVyTWVtb1R5cGUgJiYgb3V0ZXJNZW1vVHlwZS5wcm9wVHlwZXM7XG5cbiAgICAgICAgaWYgKG91dGVyUHJvcFR5cGVzKSB7XG4gICAgICAgICAgY2hlY2tQcm9wVHlwZXMob3V0ZXJQcm9wVHlwZXMsIG5leHRQcm9wcywgLy8gUmVzb2x2ZWQgKFNpbXBsZU1lbW9Db21wb25lbnQgaGFzIG5vIGRlZmF1bHRQcm9wcylcbiAgICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShvdXRlck1lbW9UeXBlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgIHZhciBwcmV2UHJvcHMgPSBjdXJyZW50Lm1lbW9pemVkUHJvcHM7XG5cbiAgICBpZiAoc2hhbGxvd0VxdWFsKHByZXZQcm9wcywgbmV4dFByb3BzKSAmJiBjdXJyZW50LnJlZiA9PT0gd29ya0luUHJvZ3Jlc3MucmVmICYmICggLy8gUHJldmVudCBiYWlsb3V0IGlmIHRoZSBpbXBsZW1lbnRhdGlvbiBjaGFuZ2VkIGR1ZSB0byBob3QgcmVsb2FkLlxuICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlID09PSBjdXJyZW50LnR5cGUgKSkge1xuICAgICAgZGlkUmVjZWl2ZVVwZGF0ZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoIWNoZWNrU2NoZWR1bGVkVXBkYXRlT3JDb250ZXh0KGN1cnJlbnQsIHJlbmRlckxhbmVzKSkge1xuICAgICAgICAvLyBUaGUgcGVuZGluZyBsYW5lcyB3ZXJlIGNsZWFyZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBiZWdpbldvcmsuIFdlJ3JlXG4gICAgICAgIC8vIGFib3V0IHRvIGJhaWwgb3V0LCBidXQgdGhlcmUgbWlnaHQgYmUgb3RoZXIgbGFuZXMgdGhhdCB3ZXJlbid0XG4gICAgICAgIC8vIGluY2x1ZGVkIGluIHRoZSBjdXJyZW50IHJlbmRlci4gVXN1YWxseSwgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoZVxuICAgICAgICAvLyByZW1haW5pbmcgdXBkYXRlcyBpcyBhY2N1bXVsYXRlZCBkdXJpbmcgdGhlIGV2YWx1YXRpb24gb2YgdGhlXG4gICAgICAgIC8vIGNvbXBvbmVudCAoaS5lLiB3aGVuIHByb2Nlc3NpbmcgdGhlIHVwZGF0ZSBxdWV1ZSkuIEJ1dCBzaW5jZSBzaW5jZVxuICAgICAgICAvLyB3ZSdyZSBiYWlsaW5nIG91dCBlYXJseSAqd2l0aG91dCogZXZhbHVhdGluZyB0aGUgY29tcG9uZW50LCB3ZSBuZWVkXG4gICAgICAgIC8vIHRvIGFjY291bnQgZm9yIGl0IGhlcmUsIHRvby4gUmVzZXQgdG8gdGhlIHZhbHVlIG9mIHRoZSBjdXJyZW50IGZpYmVyLlxuICAgICAgICAvLyBOT1RFOiBUaGlzIG9ubHkgYXBwbGllcyB0byBTaW1wbGVNZW1vQ29tcG9uZW50LCBub3QgTWVtb0NvbXBvbmVudCxcbiAgICAgICAgLy8gYmVjYXVzZSBhIE1lbW9Db21wb25lbnQgZmliZXIgZG9lcyBub3QgaGF2ZSBob29rcyBvciBhbiB1cGRhdGUgcXVldWU7XG4gICAgICAgIC8vIHJhdGhlciwgaXQgd3JhcHMgYXJvdW5kIGFuIGlubmVyIGNvbXBvbmVudCwgd2hpY2ggbWF5IG9yIG1heSBub3RcbiAgICAgICAgLy8gY29udGFpbnMgaG9va3MuXG4gICAgICAgIC8vIFRPRE86IE1vdmUgdGhlIHJlc2V0IGF0IGluIGJlZ2luV29yayBvdXQgb2YgdGhlIGNvbW1vbiBwYXRoIHNvIHRoYXRcbiAgICAgICAgLy8gdGhpcyBpcyBubyBsb25nZXIgbmVjZXNzYXJ5LlxuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IGN1cnJlbnQubGFuZXM7XG4gICAgICAgIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICB9IGVsc2UgaWYgKChjdXJyZW50LmZsYWdzICYgRm9yY2VVcGRhdGVGb3JMZWdhY3lTdXNwZW5zZSkgIT09IE5vRmxhZ3MpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhIHNwZWNpYWwgY2FzZSB0aGF0IG9ubHkgZXhpc3RzIGZvciBsZWdhY3kgbW9kZS5cbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzE5MjE2LlxuICAgICAgICBkaWRSZWNlaXZlVXBkYXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdXBkYXRlRnVuY3Rpb25Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCByZW5kZXJMYW5lcyk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZU9mZnNjcmVlbkNvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIG5leHRDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcbiAgdmFyIHByZXZTdGF0ZSA9IGN1cnJlbnQgIT09IG51bGwgPyBjdXJyZW50Lm1lbW9pemVkU3RhdGUgOiBudWxsO1xuXG4gIGlmIChuZXh0UHJvcHMubW9kZSA9PT0gJ2hpZGRlbicgfHwgZW5hYmxlTGVnYWN5SGlkZGVuICkge1xuICAgIC8vIFJlbmRlcmluZyBhIGhpZGRlbiB0cmVlLlxuICAgIGlmICgod29ya0luUHJvZ3Jlc3MubW9kZSAmIENvbmN1cnJlbnRNb2RlKSA9PT0gTm9Nb2RlKSB7XG4gICAgICAvLyBJbiBsZWdhY3kgc3luYyBtb2RlLCBkb24ndCBkZWZlciB0aGUgc3VidHJlZS4gUmVuZGVyIGl0IG5vdy5cbiAgICAgIHZhciBuZXh0U3RhdGUgPSB7XG4gICAgICAgIGJhc2VMYW5lczogTm9MYW5lcyxcbiAgICAgICAgY2FjaGVQb29sOiBudWxsXG4gICAgICB9O1xuICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG5leHRTdGF0ZTtcblxuICAgICAgcHVzaFJlbmRlckxhbmVzKHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgfSBlbHNlIGlmICghaW5jbHVkZXNTb21lTGFuZShyZW5kZXJMYW5lcywgT2Zmc2NyZWVuTGFuZSkpIHtcbiAgICAgIHZhciBzcGF3bmVkQ2FjaGVQb29sID0gbnVsbDsgLy8gV2UncmUgaGlkZGVuLCBhbmQgd2UncmUgbm90IHJlbmRlcmluZyBhdCBPZmZzY3JlZW4uIFdlIHdpbGwgYmFpbCBvdXRcbiAgICAgIC8vIGFuZCByZXN1bWUgdGhpcyB0cmVlIGxhdGVyLlxuXG4gICAgICB2YXIgbmV4dEJhc2VMYW5lcztcblxuICAgICAgaWYgKHByZXZTdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgcHJldkJhc2VMYW5lcyA9IHByZXZTdGF0ZS5iYXNlTGFuZXM7XG4gICAgICAgIG5leHRCYXNlTGFuZXMgPSBtZXJnZUxhbmVzKHByZXZCYXNlTGFuZXMsIHJlbmRlckxhbmVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRCYXNlTGFuZXMgPSByZW5kZXJMYW5lcztcbiAgICAgIH0gLy8gU2NoZWR1bGUgdGhpcyBmaWJlciB0byByZS1yZW5kZXIgYXQgb2Zmc2NyZWVuIHByaW9yaXR5LiBUaGVuIGJhaWxvdXQuXG5cblxuICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZExhbmVzID0gbGFuZVRvTGFuZXMoT2Zmc2NyZWVuTGFuZSk7XG4gICAgICB2YXIgX25leHRTdGF0ZSA9IHtcbiAgICAgICAgYmFzZUxhbmVzOiBuZXh0QmFzZUxhbmVzLFxuICAgICAgICBjYWNoZVBvb2w6IHNwYXduZWRDYWNoZVBvb2xcbiAgICAgIH07XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gX25leHRTdGF0ZTtcbiAgICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gbnVsbDtcbiAgICAgIC8vIHRvIGF2b2lkIGEgcHVzaC9wb3AgbWlzYWxpZ25tZW50LlxuXG5cbiAgICAgIHB1c2hSZW5kZXJMYW5lcyh3b3JrSW5Qcm9ncmVzcywgbmV4dEJhc2VMYW5lcyk7XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIGlzIHRoZSBzZWNvbmQgcmVuZGVyLiBUaGUgc3Vycm91bmRpbmcgdmlzaWJsZSBjb250ZW50IGhhcyBhbHJlYWR5XG4gICAgICAvLyBjb21taXR0ZWQuIE5vdyB3ZSByZXN1bWUgcmVuZGVyaW5nIHRoZSBoaWRkZW4gdHJlZS5cbiAgICAgIC8vIFJlbmRlcmluZyBhdCBvZmZzY3JlZW4sIHNvIHdlIGNhbiBjbGVhciB0aGUgYmFzZSBsYW5lcy5cbiAgICAgIHZhciBfbmV4dFN0YXRlMiA9IHtcbiAgICAgICAgYmFzZUxhbmVzOiBOb0xhbmVzLFxuICAgICAgICBjYWNoZVBvb2w6IG51bGxcbiAgICAgIH07XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gX25leHRTdGF0ZTI7IC8vIFB1c2ggdGhlIGxhbmVzIHRoYXQgd2VyZSBza2lwcGVkIHdoZW4gd2UgYmFpbGVkIG91dC5cblxuICAgICAgdmFyIHN1YnRyZWVSZW5kZXJMYW5lcyA9IHByZXZTdGF0ZSAhPT0gbnVsbCA/IHByZXZTdGF0ZS5iYXNlTGFuZXMgOiByZW5kZXJMYW5lcztcblxuICAgICAgcHVzaFJlbmRlckxhbmVzKHdvcmtJblByb2dyZXNzLCBzdWJ0cmVlUmVuZGVyTGFuZXMpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBSZW5kZXJpbmcgYSB2aXNpYmxlIHRyZWUuXG4gICAgdmFyIF9zdWJ0cmVlUmVuZGVyTGFuZXM7XG5cbiAgICBpZiAocHJldlN0YXRlICE9PSBudWxsKSB7XG4gICAgICAvLyBXZSdyZSBnb2luZyBmcm9tIGhpZGRlbiAtPiB2aXNpYmxlLlxuICAgICAgX3N1YnRyZWVSZW5kZXJMYW5lcyA9IG1lcmdlTGFuZXMocHJldlN0YXRlLmJhc2VMYW5lcywgcmVuZGVyTGFuZXMpO1xuXG5cbiAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSB3ZXJlbid0IHByZXZpb3VzbHkgaGlkZGVuLCBhbmQgd2Ugc3RpbGwgYXJlbid0LCBzbyB0aGVyZSdzIG5vdGhpbmdcbiAgICAgIC8vIHNwZWNpYWwgdG8gZG8uIE5lZWQgdG8gcHVzaCB0byB0aGUgc3RhY2sgcmVnYXJkbGVzcywgdGhvdWdoLCB0byBhdm9pZFxuICAgICAgLy8gYSBwdXNoL3BvcCBtaXNhbGlnbm1lbnQuXG4gICAgICBfc3VidHJlZVJlbmRlckxhbmVzID0gcmVuZGVyTGFuZXM7XG4gICAgfVxuXG4gICAgcHVzaFJlbmRlckxhbmVzKHdvcmtJblByb2dyZXNzLCBfc3VidHJlZVJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIHtcbiAgICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gICAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUZyYWdtZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICB2YXIgbmV4dENoaWxkcmVuID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbn1cblxuZnVuY3Rpb24gdXBkYXRlTW9kZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIG5leHRDaGlsZHJlbiA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcy5jaGlsZHJlbjtcbiAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVByb2ZpbGVyKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICB7XG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuXG4gICAge1xuICAgICAgLy8gUmVzZXQgZWZmZWN0IGR1cmF0aW9ucyBmb3IgdGhlIG5leHQgZXZlbnR1YWwgZWZmZWN0IHBoYXNlLlxuICAgICAgLy8gVGhlc2UgYXJlIHJlc2V0IGR1cmluZyByZW5kZXIgdG8gYWxsb3cgdGhlIERldlRvb2xzIGNvbW1pdCBob29rIGEgY2hhbmNlIHRvIHJlYWQgdGhlbSxcbiAgICAgIHZhciBzdGF0ZU5vZGUgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICBzdGF0ZU5vZGUuZWZmZWN0RHVyYXRpb24gPSAwO1xuICAgICAgc3RhdGVOb2RlLnBhc3NpdmVFZmZlY3REdXJhdGlvbiA9IDA7XG4gICAgfVxuICB9XG5cbiAgdmFyIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIG5leHRDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcbiAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIG1hcmtSZWYkMShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcykge1xuICB2YXIgcmVmID0gd29ya0luUHJvZ3Jlc3MucmVmO1xuXG4gIGlmIChjdXJyZW50ID09PSBudWxsICYmIHJlZiAhPT0gbnVsbCB8fCBjdXJyZW50ICE9PSBudWxsICYmIGN1cnJlbnQucmVmICE9PSByZWYpIHtcbiAgICAvLyBTY2hlZHVsZSBhIFJlZiBlZmZlY3RcbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBSZWY7XG5cbiAgICB7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBSZWZTdGF0aWM7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUZ1bmN0aW9uQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAge1xuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy50eXBlICE9PSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSkge1xuICAgICAgLy8gTGF6eSBjb21wb25lbnQgcHJvcHMgY2FuJ3QgYmUgdmFsaWRhdGVkIGluIGNyZWF0ZUVsZW1lbnRcbiAgICAgIC8vIGJlY2F1c2UgdGhleSdyZSBvbmx5IGd1YXJhbnRlZWQgdG8gYmUgcmVzb2x2ZWQgaGVyZS5cbiAgICAgIHZhciBpbm5lclByb3BUeXBlcyA9IENvbXBvbmVudC5wcm9wVHlwZXM7XG5cbiAgICAgIGlmIChpbm5lclByb3BUeXBlcykge1xuICAgICAgICBjaGVja1Byb3BUeXBlcyhpbm5lclByb3BUeXBlcywgbmV4dFByb3BzLCAvLyBSZXNvbHZlZCBwcm9wc1xuICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgY29udGV4dDtcblxuICB7XG4gICAgdmFyIHVubWFza2VkQ29udGV4dCA9IGdldFVubWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCB0cnVlKTtcbiAgICBjb250ZXh0ID0gZ2V0TWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgdW5tYXNrZWRDb250ZXh0KTtcbiAgfVxuXG4gIHZhciBuZXh0Q2hpbGRyZW47XG4gIHZhciBoYXNJZDtcbiAgcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICB7XG4gICAgbWFya0NvbXBvbmVudFJlbmRlclN0YXJ0ZWQod29ya0luUHJvZ3Jlc3MpO1xuICB9XG5cbiAge1xuICAgIFJlYWN0Q3VycmVudE93bmVyJDEuY3VycmVudCA9IHdvcmtJblByb2dyZXNzO1xuICAgIHNldElzUmVuZGVyaW5nKHRydWUpO1xuICAgIG5leHRDaGlsZHJlbiA9IHJlbmRlcldpdGhIb29rcyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBuZXh0UHJvcHMsIGNvbnRleHQsIHJlbmRlckxhbmVzKTtcbiAgICBoYXNJZCA9IGNoZWNrRGlkUmVuZGVySWRIb29rKCk7XG5cbiAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyh0cnVlKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbmV4dENoaWxkcmVuID0gcmVuZGVyV2l0aEhvb2tzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgY29udGV4dCwgcmVuZGVyTGFuZXMpO1xuICAgICAgICBoYXNJZCA9IGNoZWNrRGlkUmVuZGVySWRIb29rKCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyhmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2V0SXNSZW5kZXJpbmcoZmFsc2UpO1xuICB9XG5cbiAge1xuICAgIG1hcmtDb21wb25lbnRSZW5kZXJTdG9wcGVkKCk7XG4gIH1cblxuICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiAhZGlkUmVjZWl2ZVVwZGF0ZSkge1xuICAgIGJhaWxvdXRIb29rcyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIH1cblxuICBpZiAoZ2V0SXNIeWRyYXRpbmcoKSAmJiBoYXNJZCkge1xuICAgIHB1c2hNYXRlcmlhbGl6ZWRUcmVlSWQod29ya0luUHJvZ3Jlc3MpO1xuICB9IC8vIFJlYWN0IERldlRvb2xzIHJlYWRzIHRoaXMgZmxhZy5cblxuXG4gIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFBlcmZvcm1lZFdvcms7XG4gIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVDbGFzc0NvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBuZXh0UHJvcHMsIHJlbmRlckxhbmVzKSB7XG4gIHtcbiAgICAvLyBUaGlzIGlzIHVzZWQgYnkgRGV2VG9vbHMgdG8gZm9yY2UgYSBib3VuZGFyeSB0byBlcnJvci5cbiAgICBzd2l0Y2ggKHNob3VsZEVycm9yKHdvcmtJblByb2dyZXNzKSkge1xuICAgICAgY2FzZSBmYWxzZTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICAgICAgdmFyIGN0b3IgPSB3b3JrSW5Qcm9ncmVzcy50eXBlOyAvLyBUT0RPIFRoaXMgd2F5IG9mIHJlc2V0dGluZyB0aGUgZXJyb3IgYm91bmRhcnkgc3RhdGUgaXMgYSBoYWNrLlxuICAgICAgICAgIC8vIElzIHRoZXJlIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzP1xuXG4gICAgICAgICAgdmFyIHRlbXBJbnN0YW5jZSA9IG5ldyBjdG9yKHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHMsIF9pbnN0YW5jZS5jb250ZXh0KTtcbiAgICAgICAgICB2YXIgc3RhdGUgPSB0ZW1wSW5zdGFuY2Uuc3RhdGU7XG5cbiAgICAgICAgICBfaW5zdGFuY2UudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUoX2luc3RhbmNlLCBzdGF0ZSwgbnVsbCk7XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIHRydWU6XG4gICAgICAgIHtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBEaWRDYXB0dXJlO1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFNob3VsZENhcHR1cmU7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG5cbiAgICAgICAgICB2YXIgZXJyb3IkMSA9IG5ldyBFcnJvcignU2ltdWxhdGVkIGVycm9yIGNvbWluZyBmcm9tIERldlRvb2xzJyk7XG4gICAgICAgICAgdmFyIGxhbmUgPSBwaWNrQXJiaXRyYXJ5TGFuZShyZW5kZXJMYW5lcyk7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBtZXJnZUxhbmVzKHdvcmtJblByb2dyZXNzLmxhbmVzLCBsYW5lKTsgLy8gU2NoZWR1bGUgdGhlIGVycm9yIGJvdW5kYXJ5IHRvIHJlLXJlbmRlciB1c2luZyB1cGRhdGVkIHN0YXRlXG5cbiAgICAgICAgICB2YXIgdXBkYXRlID0gY3JlYXRlQ2xhc3NFcnJvclVwZGF0ZSh3b3JrSW5Qcm9ncmVzcywgY3JlYXRlQ2FwdHVyZWRWYWx1ZShlcnJvciQxLCB3b3JrSW5Qcm9ncmVzcyksIGxhbmUpO1xuICAgICAgICAgIGVucXVldWVDYXB0dXJlZFVwZGF0ZSh3b3JrSW5Qcm9ncmVzcywgdXBkYXRlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy50eXBlICE9PSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSkge1xuICAgICAgLy8gTGF6eSBjb21wb25lbnQgcHJvcHMgY2FuJ3QgYmUgdmFsaWRhdGVkIGluIGNyZWF0ZUVsZW1lbnRcbiAgICAgIC8vIGJlY2F1c2UgdGhleSdyZSBvbmx5IGd1YXJhbnRlZWQgdG8gYmUgcmVzb2x2ZWQgaGVyZS5cbiAgICAgIHZhciBpbm5lclByb3BUeXBlcyA9IENvbXBvbmVudC5wcm9wVHlwZXM7XG5cbiAgICAgIGlmIChpbm5lclByb3BUeXBlcykge1xuICAgICAgICBjaGVja1Byb3BUeXBlcyhpbm5lclByb3BUeXBlcywgbmV4dFByb3BzLCAvLyBSZXNvbHZlZCBwcm9wc1xuICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gLy8gUHVzaCBjb250ZXh0IHByb3ZpZGVycyBlYXJseSB0byBwcmV2ZW50IGNvbnRleHQgc3RhY2sgbWlzbWF0Y2hlcy5cbiAgLy8gRHVyaW5nIG1vdW50aW5nIHdlIGRvbid0IGtub3cgdGhlIGNoaWxkIGNvbnRleHQgeWV0IGFzIHRoZSBpbnN0YW5jZSBkb2Vzbid0IGV4aXN0LlxuICAvLyBXZSB3aWxsIGludmFsaWRhdGUgdGhlIGNoaWxkIGNvbnRleHQgaW4gZmluaXNoQ2xhc3NDb21wb25lbnQoKSByaWdodCBhZnRlciByZW5kZXJpbmcuXG5cblxuICB2YXIgaGFzQ29udGV4dDtcblxuICBpZiAoaXNDb250ZXh0UHJvdmlkZXIoQ29tcG9uZW50KSkge1xuICAgIGhhc0NvbnRleHQgPSB0cnVlO1xuICAgIHB1c2hDb250ZXh0UHJvdmlkZXIod29ya0luUHJvZ3Jlc3MpO1xuICB9IGVsc2Uge1xuICAgIGhhc0NvbnRleHQgPSBmYWxzZTtcbiAgfVxuXG4gIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgdmFyIHNob3VsZFVwZGF0ZTtcblxuICBpZiAoaW5zdGFuY2UgPT09IG51bGwpIHtcbiAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgLy8gQSBjbGFzcyBjb21wb25lbnQgd2l0aG91dCBhbiBpbnN0YW5jZSBvbmx5IG1vdW50cyBpZiBpdCBzdXNwZW5kZWRcbiAgICAgIC8vIGluc2lkZSBhIG5vbi1jb25jdXJyZW50IHRyZWUsIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS4gV2Ugd2FudCB0b1xuICAgICAgLy8gdHJlYXQgaXQgbGlrZSBhIG5ldyBtb3VudCwgZXZlbiB0aG91Z2ggYW4gZW1wdHkgdmVyc2lvbiBvZiBpdCBhbHJlYWR5XG4gICAgICAvLyBjb21taXR0ZWQuIERpc2Nvbm5lY3QgdGhlIGFsdGVybmF0ZSBwb2ludGVycy5cbiAgICAgIGN1cnJlbnQuYWx0ZXJuYXRlID0gbnVsbDtcbiAgICAgIHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZSA9IG51bGw7IC8vIFNpbmNlIHRoaXMgaXMgY29uY2VwdHVhbGx5IGEgbmV3IGZpYmVyLCBzY2hlZHVsZSBhIFBsYWNlbWVudCBlZmZlY3RcblxuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGxhY2VtZW50O1xuICAgIH0gLy8gSW4gdGhlIGluaXRpYWwgcGFzcyB3ZSBtaWdodCBuZWVkIHRvIGNvbnN0cnVjdCB0aGUgaW5zdGFuY2UuXG5cblxuICAgIGNvbnN0cnVjdENsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzKTtcbiAgICBtb3VudENsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCByZW5kZXJMYW5lcyk7XG4gICAgc2hvdWxkVXBkYXRlID0gdHJ1ZTtcbiAgfSBlbHNlIGlmIChjdXJyZW50ID09PSBudWxsKSB7XG4gICAgLy8gSW4gYSByZXN1bWUsIHdlJ2xsIGFscmVhZHkgaGF2ZSBhbiBpbnN0YW5jZSB3ZSBjYW4gcmV1c2UuXG4gICAgc2hvdWxkVXBkYXRlID0gcmVzdW1lTW91bnRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICB9IGVsc2Uge1xuICAgIHNob3VsZFVwZGF0ZSA9IHVwZGF0ZUNsYXNzSW5zdGFuY2UoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCByZW5kZXJMYW5lcyk7XG4gIH1cblxuICB2YXIgbmV4dFVuaXRPZldvcmsgPSBmaW5pc2hDbGFzc0NvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBzaG91bGRVcGRhdGUsIGhhc0NvbnRleHQsIHJlbmRlckxhbmVzKTtcblxuICB7XG4gICAgdmFyIGluc3QgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgICBpZiAoc2hvdWxkVXBkYXRlICYmIGluc3QucHJvcHMgIT09IG5leHRQcm9wcykge1xuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRSZWFzc2lnbmluZ1Byb3BzKSB7XG4gICAgICAgIGVycm9yKCdJdCBsb29rcyBsaWtlICVzIGlzIHJlYXNzaWduaW5nIGl0cyBvd24gYHRoaXMucHJvcHNgIHdoaWxlIHJlbmRlcmluZy4gJyArICdUaGlzIGlzIG5vdCBzdXBwb3J0ZWQgYW5kIGNhbiBsZWFkIHRvIGNvbmZ1c2luZyBidWdzLicsIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIod29ya0luUHJvZ3Jlc3MpIHx8ICdhIGNvbXBvbmVudCcpO1xuICAgICAgfVxuXG4gICAgICBkaWRXYXJuQWJvdXRSZWFzc2lnbmluZ1Byb3BzID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV4dFVuaXRPZldvcms7XG59XG5cbmZ1bmN0aW9uIGZpbmlzaENsYXNzQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHNob3VsZFVwZGF0ZSwgaGFzQ29udGV4dCwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gUmVmcyBzaG91bGQgdXBkYXRlIGV2ZW4gaWYgc2hvdWxkQ29tcG9uZW50VXBkYXRlIHJldHVybnMgZmFsc2VcbiAgbWFya1JlZiQxKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgdmFyIGRpZENhcHR1cmVFcnJvciA9ICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIERpZENhcHR1cmUpICE9PSBOb0ZsYWdzO1xuXG4gIGlmICghc2hvdWxkVXBkYXRlICYmICFkaWRDYXB0dXJlRXJyb3IpIHtcbiAgICAvLyBDb250ZXh0IHByb3ZpZGVycyBzaG91bGQgZGVmZXIgdG8gc0NVIGZvciByZW5kZXJpbmdcbiAgICBpZiAoaGFzQ29udGV4dCkge1xuICAgICAgaW52YWxpZGF0ZUNvbnRleHRQcm92aWRlcih3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBmYWxzZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTsgLy8gUmVyZW5kZXJcblxuICBSZWFjdEN1cnJlbnRPd25lciQxLmN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcztcbiAgdmFyIG5leHRDaGlsZHJlbjtcblxuICBpZiAoZGlkQ2FwdHVyZUVycm9yICYmIHR5cGVvZiBDb21wb25lbnQuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gSWYgd2UgY2FwdHVyZWQgYW4gZXJyb3IsIGJ1dCBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgaXMgbm90IGRlZmluZWQsXG4gICAgLy8gdW5tb3VudCBhbGwgdGhlIGNoaWxkcmVuLiBjb21wb25lbnREaWRDYXRjaCB3aWxsIHNjaGVkdWxlIGFuIHVwZGF0ZSB0b1xuICAgIC8vIHJlLXJlbmRlciBhIGZhbGxiYWNrLiBUaGlzIGlzIHRlbXBvcmFyeSB1bnRpbCB3ZSBtaWdyYXRlIGV2ZXJ5b25lIHRvXG4gICAgLy8gdGhlIG5ldyBBUEkuXG4gICAgLy8gVE9ETzogV2FybiBpbiBhIGZ1dHVyZSByZWxlYXNlLlxuICAgIG5leHRDaGlsZHJlbiA9IG51bGw7XG5cbiAgICB7XG4gICAgICBzdG9wUHJvZmlsZXJUaW1lcklmUnVubmluZygpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB7XG4gICAgICBtYXJrQ29tcG9uZW50UmVuZGVyU3RhcnRlZCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgfVxuXG4gICAge1xuICAgICAgc2V0SXNSZW5kZXJpbmcodHJ1ZSk7XG4gICAgICBuZXh0Q2hpbGRyZW4gPSBpbnN0YW5jZS5yZW5kZXIoKTtcblxuICAgICAgaWYgKCB3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSkge1xuICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyh0cnVlKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGluc3RhbmNlLnJlbmRlcigpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzZXRJc1JlbmRlcmluZyhmYWxzZSk7XG4gICAgfVxuXG4gICAge1xuICAgICAgbWFya0NvbXBvbmVudFJlbmRlclN0b3BwZWQoKTtcbiAgICB9XG4gIH0gLy8gUmVhY3QgRGV2VG9vbHMgcmVhZHMgdGhpcyBmbGFnLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGVyZm9ybWVkV29yaztcblxuICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiBkaWRDYXB0dXJlRXJyb3IpIHtcbiAgICAvLyBJZiB3ZSdyZSByZWNvdmVyaW5nIGZyb20gYW4gZXJyb3IsIHJlY29uY2lsZSB3aXRob3V0IHJldXNpbmcgYW55IG9mXG4gICAgLy8gdGhlIGV4aXN0aW5nIGNoaWxkcmVuLiBDb25jZXB0dWFsbHksIHRoZSBub3JtYWwgY2hpbGRyZW4gYW5kIHRoZSBjaGlsZHJlblxuICAgIC8vIHRoYXQgYXJlIHNob3duIG9uIGVycm9yIGFyZSB0d28gZGlmZmVyZW50IHNldHMsIHNvIHdlIHNob3VsZG4ndCByZXVzZVxuICAgIC8vIG5vcm1hbCBjaGlsZHJlbiBldmVuIGlmIHRoZWlyIGlkZW50aXRpZXMgbWF0Y2guXG4gICAgZm9yY2VVbm1vdW50Q3VycmVudEFuZFJlY29uY2lsZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIH0gZWxzZSB7XG4gICAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICB9IC8vIE1lbW9pemUgc3RhdGUgdXNpbmcgdGhlIHZhbHVlcyB3ZSBqdXN0IHVzZWQgdG8gcmVuZGVyLlxuICAvLyBUT0RPOiBSZXN0cnVjdHVyZSBzbyB3ZSBuZXZlciByZWFkIHZhbHVlcyBmcm9tIHRoZSBpbnN0YW5jZS5cblxuXG4gIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBpbnN0YW5jZS5zdGF0ZTsgLy8gVGhlIGNvbnRleHQgbWlnaHQgaGF2ZSBjaGFuZ2VkIHNvIHdlIG5lZWQgdG8gcmVjYWxjdWxhdGUgaXQuXG5cbiAgaWYgKGhhc0NvbnRleHQpIHtcbiAgICBpbnZhbGlkYXRlQ29udGV4dFByb3ZpZGVyKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHRydWUpO1xuICB9XG5cbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG5mdW5jdGlvbiBwdXNoSG9zdFJvb3RDb250ZXh0KHdvcmtJblByb2dyZXNzKSB7XG4gIHZhciByb290ID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuXG4gIGlmIChyb290LnBlbmRpbmdDb250ZXh0KSB7XG4gICAgcHVzaFRvcExldmVsQ29udGV4dE9iamVjdCh3b3JrSW5Qcm9ncmVzcywgcm9vdC5wZW5kaW5nQ29udGV4dCwgcm9vdC5wZW5kaW5nQ29udGV4dCAhPT0gcm9vdC5jb250ZXh0KTtcbiAgfSBlbHNlIGlmIChyb290LmNvbnRleHQpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGJlIHNldFxuICAgIHB1c2hUb3BMZXZlbENvbnRleHRPYmplY3Qod29ya0luUHJvZ3Jlc3MsIHJvb3QuY29udGV4dCwgZmFsc2UpO1xuICB9XG5cbiAgcHVzaEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MsIHJvb3QuY29udGFpbmVySW5mbyk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUhvc3RSb290KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICBwdXNoSG9zdFJvb3RDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcblxuICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIGhhdmUgYSBjdXJyZW50IGZpYmVyLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICB9XG5cbiAgdmFyIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIHByZXZTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gIHZhciBwcmV2Q2hpbGRyZW4gPSBwcmV2U3RhdGUuZWxlbWVudDtcbiAgY2xvbmVVcGRhdGVRdWV1ZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcyk7XG4gIHByb2Nlc3NVcGRhdGVRdWV1ZSh3b3JrSW5Qcm9ncmVzcywgbmV4dFByb3BzLCBudWxsLCByZW5kZXJMYW5lcyk7XG4gIHZhciBuZXh0U3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICB2YXIgcm9vdCA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgLy8gYmVpbmcgY2FsbGVkIFwiZWxlbWVudFwiLlxuXG5cbiAgdmFyIG5leHRDaGlsZHJlbiA9IG5leHRTdGF0ZS5lbGVtZW50O1xuXG4gIGlmICggcHJldlN0YXRlLmlzRGVoeWRyYXRlZCkge1xuICAgIC8vIFRoaXMgaXMgYSBoeWRyYXRpb24gcm9vdCB3aG9zZSBzaGVsbCBoYXMgbm90IHlldCBoeWRyYXRlZC4gV2Ugc2hvdWxkXG4gICAgLy8gYXR0ZW1wdCB0byBoeWRyYXRlLlxuICAgIC8vIEZsaXAgaXNEZWh5ZHJhdGVkIHRvIGZhbHNlIHRvIGluZGljYXRlIHRoYXQgd2hlbiB0aGlzIHJlbmRlclxuICAgIC8vIGZpbmlzaGVzLCB0aGUgcm9vdCB3aWxsIG5vIGxvbmdlciBiZSBkZWh5ZHJhdGVkLlxuICAgIHZhciBvdmVycmlkZVN0YXRlID0ge1xuICAgICAgZWxlbWVudDogbmV4dENoaWxkcmVuLFxuICAgICAgaXNEZWh5ZHJhdGVkOiBmYWxzZSxcbiAgICAgIGNhY2hlOiBuZXh0U3RhdGUuY2FjaGUsXG4gICAgICB0cmFuc2l0aW9uczogbmV4dFN0YXRlLnRyYW5zaXRpb25zXG4gICAgfTtcbiAgICB2YXIgdXBkYXRlUXVldWUgPSB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZTsgLy8gYGJhc2VTdGF0ZWAgY2FuIGFsd2F5cyBiZSB0aGUgbGFzdCBzdGF0ZSBiZWNhdXNlIHRoZSByb290IGRvZXNuJ3RcbiAgICAvLyBoYXZlIHJlZHVjZXIgZnVuY3Rpb25zIHNvIGl0IGRvZXNuJ3QgbmVlZCByZWJhc2luZy5cblxuICAgIHVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZSA9IG92ZXJyaWRlU3RhdGU7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG92ZXJyaWRlU3RhdGU7XG5cbiAgICBpZiAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiBGb3JjZUNsaWVudFJlbmRlcikge1xuICAgICAgLy8gU29tZXRoaW5nIGVycm9yZWQgZHVyaW5nIGEgcHJldmlvdXMgYXR0ZW1wdCB0byBoeWRyYXRlIHRoZSBzaGVsbCwgc28gd2VcbiAgICAgIC8vIGZvcmNlZCBhIGNsaWVudCByZW5kZXIuXG4gICAgICB2YXIgcmVjb3ZlcmFibGVFcnJvciA9IG5ldyBFcnJvcignVGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIGh5ZHJhdGluZy4gQmVjYXVzZSB0aGUgZXJyb3IgaGFwcGVuZWQgb3V0c2lkZSAnICsgJ29mIGEgU3VzcGVuc2UgYm91bmRhcnksIHRoZSBlbnRpcmUgcm9vdCB3aWxsIHN3aXRjaCB0byAnICsgJ2NsaWVudCByZW5kZXJpbmcuJyk7XG4gICAgICByZXR1cm4gbW91bnRIb3N0Um9vdFdpdGhvdXRIeWRyYXRpbmcoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMsIHJlY292ZXJhYmxlRXJyb3IpO1xuICAgIH0gZWxzZSBpZiAobmV4dENoaWxkcmVuICE9PSBwcmV2Q2hpbGRyZW4pIHtcbiAgICAgIHZhciBfcmVjb3ZlcmFibGVFcnJvciA9IG5ldyBFcnJvcignVGhpcyByb290IHJlY2VpdmVkIGFuIGVhcmx5IHVwZGF0ZSwgYmVmb3JlIGFueXRoaW5nIHdhcyBhYmxlICcgKyAnaHlkcmF0ZS4gU3dpdGNoZWQgdGhlIGVudGlyZSByb290IHRvIGNsaWVudCByZW5kZXJpbmcuJyk7XG5cbiAgICAgIHJldHVybiBtb3VudEhvc3RSb290V2l0aG91dEh5ZHJhdGluZyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcywgX3JlY292ZXJhYmxlRXJyb3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGUgb3V0ZXJtb3N0IHNoZWxsIGhhcyBub3QgaHlkcmF0ZWQgeWV0LiBTdGFydCBoeWRyYXRpbmcuXG4gICAgICBlbnRlckh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzKTtcblxuICAgICAgdmFyIGNoaWxkID0gbW91bnRDaGlsZEZpYmVycyh3b3JrSW5Qcm9ncmVzcywgbnVsbCwgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGNoaWxkO1xuICAgICAgdmFyIG5vZGUgPSBjaGlsZDtcblxuICAgICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgICAgLy8gTWFyayBlYWNoIGNoaWxkIGFzIGh5ZHJhdGluZy4gVGhpcyBpcyBhIGZhc3QgcGF0aCB0byBrbm93IHdoZXRoZXIgdGhpc1xuICAgICAgICAvLyB0cmVlIGlzIHBhcnQgb2YgYSBoeWRyYXRpbmcgdHJlZS4gVGhpcyBpcyB1c2VkIHRvIGRldGVybWluZSBpZiBhIGNoaWxkXG4gICAgICAgIC8vIG5vZGUgaGFzIGZ1bGx5IG1vdW50ZWQgeWV0LCBhbmQgZm9yIHNjaGVkdWxpbmcgZXZlbnQgcmVwbGF5aW5nLlxuICAgICAgICAvLyBDb25jZXB0dWFsbHkgdGhpcyBpcyBzaW1pbGFyIHRvIFBsYWNlbWVudCBpbiB0aGF0IGEgbmV3IHN1YnRyZWUgaXNcbiAgICAgICAgLy8gaW5zZXJ0ZWQgaW50byB0aGUgUmVhY3QgdHJlZSBoZXJlLiBJdCBqdXN0IGhhcHBlbnMgdG8gbm90IG5lZWQgRE9NXG4gICAgICAgIC8vIG11dGF0aW9ucyBiZWNhdXNlIGl0IGFscmVhZHkgZXhpc3RzLlxuICAgICAgICBub2RlLmZsYWdzID0gbm9kZS5mbGFncyAmIH5QbGFjZW1lbnQgfCBIeWRyYXRpbmc7XG4gICAgICAgIG5vZGUgPSBub2RlLnNpYmxpbmc7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIFJvb3QgaXMgbm90IGRlaHlkcmF0ZWQuIEVpdGhlciB0aGlzIGlzIGEgY2xpZW50LW9ubHkgcm9vdCwgb3IgaXRcbiAgICAvLyBhbHJlYWR5IGh5ZHJhdGVkLlxuICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTtcblxuICAgIGlmIChuZXh0Q2hpbGRyZW4gPT09IHByZXZDaGlsZHJlbikge1xuICAgICAgcmV0dXJuIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgICB9XG5cbiAgICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIH1cblxuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIG1vdW50SG9zdFJvb3RXaXRob3V0SHlkcmF0aW5nKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzLCByZWNvdmVyYWJsZUVycm9yKSB7XG4gIC8vIFJldmVydCB0byBjbGllbnQgcmVuZGVyaW5nLlxuICByZXNldEh5ZHJhdGlvblN0YXRlKCk7XG4gIHF1ZXVlSHlkcmF0aW9uRXJyb3IocmVjb3ZlcmFibGVFcnJvcik7XG4gIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IEZvcmNlQ2xpZW50UmVuZGVyO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbn1cblxuZnVuY3Rpb24gdXBkYXRlSG9zdENvbXBvbmVudCQxKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICBwdXNoSG9zdENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuXG4gIGlmIChjdXJyZW50ID09PSBudWxsKSB7XG4gICAgdHJ5VG9DbGFpbU5leHRIeWRyYXRhYmxlSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MpO1xuICB9XG5cbiAgdmFyIHR5cGUgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICB2YXIgbmV4dFByb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuICB2YXIgcHJldlByb3BzID0gY3VycmVudCAhPT0gbnVsbCA/IGN1cnJlbnQubWVtb2l6ZWRQcm9wcyA6IG51bGw7XG4gIHZhciBuZXh0Q2hpbGRyZW4gPSBuZXh0UHJvcHMuY2hpbGRyZW47XG4gIHZhciBpc0RpcmVjdFRleHRDaGlsZCA9IHNob3VsZFNldFRleHRDb250ZW50KHR5cGUsIG5leHRQcm9wcyk7XG5cbiAgaWYgKGlzRGlyZWN0VGV4dENoaWxkKSB7XG4gICAgLy8gV2Ugc3BlY2lhbCBjYXNlIGEgZGlyZWN0IHRleHQgY2hpbGQgb2YgYSBob3N0IG5vZGUuIFRoaXMgaXMgYSBjb21tb25cbiAgICAvLyBjYXNlLiBXZSB3b24ndCBoYW5kbGUgaXQgYXMgYSByZWlmaWVkIGNoaWxkLiBXZSB3aWxsIGluc3RlYWQgaGFuZGxlXG4gICAgLy8gdGhpcyBpbiB0aGUgaG9zdCBlbnZpcm9ubWVudCB0aGF0IGFsc28gaGFzIGFjY2VzcyB0byB0aGlzIHByb3AuIFRoYXRcbiAgICAvLyBhdm9pZHMgYWxsb2NhdGluZyBhbm90aGVyIEhvc3RUZXh0IGZpYmVyIGFuZCB0cmF2ZXJzaW5nIGl0LlxuICAgIG5leHRDaGlsZHJlbiA9IG51bGw7XG4gIH0gZWxzZSBpZiAocHJldlByb3BzICE9PSBudWxsICYmIHNob3VsZFNldFRleHRDb250ZW50KHR5cGUsIHByZXZQcm9wcykpIHtcbiAgICAvLyBJZiB3ZSdyZSBzd2l0Y2hpbmcgZnJvbSBhIGRpcmVjdCB0ZXh0IGNoaWxkIHRvIGEgbm9ybWFsIGNoaWxkLCBvciB0b1xuICAgIC8vIGVtcHR5LCB3ZSBuZWVkIHRvIHNjaGVkdWxlIHRoZSB0ZXh0IGNvbnRlbnQgdG8gYmUgcmVzZXQuXG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gQ29udGVudFJlc2V0O1xuICB9XG5cbiAgbWFya1JlZiQxKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUhvc3RUZXh0JDEoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpIHtcbiAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICB0cnlUb0NsYWltTmV4dEh5ZHJhdGFibGVJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcyk7XG4gIH0gLy8gTm90aGluZyB0byBkbyBoZXJlLiBUaGlzIGlzIHRlcm1pbmFsLiBXZSdsbCBkbyB0aGUgY29tcGxldGlvbiBzdGVwXG4gIC8vIGltbWVkaWF0ZWx5IGFmdGVyLlxuXG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIG1vdW50TGF6eUNvbXBvbmVudChfY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIGVsZW1lbnRUeXBlLCByZW5kZXJMYW5lcykge1xuICBpZiAoX2N1cnJlbnQgIT09IG51bGwpIHtcbiAgICAvLyBBIGxhenkgY29tcG9uZW50IG9ubHkgbW91bnRzIGlmIGl0IHN1c3BlbmRlZCBpbnNpZGUgYSBub24tXG4gICAgLy8gY29uY3VycmVudCB0cmVlLCBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUuIFdlIHdhbnQgdG8gdHJlYXQgaXQgbGlrZVxuICAgIC8vIGEgbmV3IG1vdW50LCBldmVuIHRob3VnaCBhbiBlbXB0eSB2ZXJzaW9uIG9mIGl0IGFscmVhZHkgY29tbWl0dGVkLlxuICAgIC8vIERpc2Nvbm5lY3QgdGhlIGFsdGVybmF0ZSBwb2ludGVycy5cbiAgICBfY3VycmVudC5hbHRlcm5hdGUgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZSA9IG51bGw7IC8vIFNpbmNlIHRoaXMgaXMgY29uY2VwdHVhbGx5IGEgbmV3IGZpYmVyLCBzY2hlZHVsZSBhIFBsYWNlbWVudCBlZmZlY3RcblxuICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFBsYWNlbWVudDtcbiAgfVxuXG4gIHZhciBwcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIGxhenlDb21wb25lbnQgPSBlbGVtZW50VHlwZTtcbiAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICB2YXIgaW5pdCA9IGxhenlDb21wb25lbnQuX2luaXQ7XG4gIHZhciBDb21wb25lbnQgPSBpbml0KHBheWxvYWQpOyAvLyBTdG9yZSB0aGUgdW53cmFwcGVkIGNvbXBvbmVudCBpbiB0aGUgdHlwZS5cblxuICB3b3JrSW5Qcm9ncmVzcy50eXBlID0gQ29tcG9uZW50O1xuICB2YXIgcmVzb2x2ZWRUYWcgPSB3b3JrSW5Qcm9ncmVzcy50YWcgPSByZXNvbHZlTGF6eUNvbXBvbmVudFRhZyhDb21wb25lbnQpO1xuICB2YXIgcmVzb2x2ZWRQcm9wcyA9IHJlc29sdmVEZWZhdWx0UHJvcHMoQ29tcG9uZW50LCBwcm9wcyk7XG4gIHZhciBjaGlsZDtcblxuICBzd2l0Y2ggKHJlc29sdmVkVGFnKSB7XG4gICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIHZhbGlkYXRlRnVuY3Rpb25Db21wb25lbnRJbkRldih3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50KTtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlID0gQ29tcG9uZW50ID0gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKENvbXBvbmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBjaGlsZCA9IHVwZGF0ZUZ1bmN0aW9uQ29tcG9uZW50KG51bGwsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHJlc29sdmVkUHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgfVxuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSBDb21wb25lbnQgPSByZXNvbHZlQ2xhc3NGb3JIb3RSZWxvYWRpbmcoQ29tcG9uZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNoaWxkID0gdXBkYXRlQ2xhc3NDb21wb25lbnQobnVsbCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcmVzb2x2ZWRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICB9XG5cbiAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlID0gQ29tcG9uZW50ID0gcmVzb2x2ZUZvcndhcmRSZWZGb3JIb3RSZWxvYWRpbmcoQ29tcG9uZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNoaWxkID0gdXBkYXRlRm9yd2FyZFJlZihudWxsLCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCByZXNvbHZlZFByb3BzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH1cblxuICAgIGNhc2UgTWVtb0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcy50eXBlICE9PSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSkge1xuICAgICAgICAgICAgdmFyIG91dGVyUHJvcFR5cGVzID0gQ29tcG9uZW50LnByb3BUeXBlcztcblxuICAgICAgICAgICAgaWYgKG91dGVyUHJvcFR5cGVzKSB7XG4gICAgICAgICAgICAgIGNoZWNrUHJvcFR5cGVzKG91dGVyUHJvcFR5cGVzLCByZXNvbHZlZFByb3BzLCAvLyBSZXNvbHZlZCBmb3Igb3V0ZXIgb25seVxuICAgICAgICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjaGlsZCA9IHVwZGF0ZU1lbW9Db21wb25lbnQobnVsbCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcmVzb2x2ZURlZmF1bHRQcm9wcyhDb21wb25lbnQudHlwZSwgcmVzb2x2ZWRQcm9wcyksIC8vIFRoZSBpbm5lciB0eXBlIGNhbiBoYXZlIGRlZmF1bHRzIHRvb1xuICAgICAgICByZW5kZXJMYW5lcyk7XG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH1cbiAgfVxuXG4gIHZhciBoaW50ID0gJyc7XG5cbiAge1xuICAgIGlmIChDb21wb25lbnQgIT09IG51bGwgJiYgdHlwZW9mIENvbXBvbmVudCA9PT0gJ29iamVjdCcgJiYgQ29tcG9uZW50LiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUpIHtcbiAgICAgIGhpbnQgPSAnIERpZCB5b3Ugd3JhcCBhIGNvbXBvbmVudCBpbiBSZWFjdC5sYXp5KCkgbW9yZSB0aGFuIG9uY2U/JztcbiAgICB9XG4gIH0gLy8gVGhpcyBtZXNzYWdlIGludGVudGlvbmFsbHkgZG9lc24ndCBtZW50aW9uIEZvcndhcmRSZWYgb3IgTWVtb0NvbXBvbmVudFxuICAvLyBiZWNhdXNlIHRoZSBmYWN0IHRoYXQgaXQncyBhIHNlcGFyYXRlIHR5cGUgb2Ygd29yayBpcyBhblxuICAvLyBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuXG5cblxuICB0aHJvdyBuZXcgRXJyb3IoXCJFbGVtZW50IHR5cGUgaXMgaW52YWxpZC4gUmVjZWl2ZWQgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG86IFwiICsgQ29tcG9uZW50ICsgXCIuIFwiICsgKFwiTGF6eSBlbGVtZW50IHR5cGUgbXVzdCByZXNvbHZlIHRvIGEgY2xhc3Mgb3IgZnVuY3Rpb24uXCIgKyBoaW50KSk7XG59XG5cbmZ1bmN0aW9uIG1vdW50SW5jb21wbGV0ZUNsYXNzQ29tcG9uZW50KF9jdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBuZXh0UHJvcHMsIHJlbmRlckxhbmVzKSB7XG4gIGlmIChfY3VycmVudCAhPT0gbnVsbCkge1xuICAgIC8vIEFuIGluY29tcGxldGUgY29tcG9uZW50IG9ubHkgbW91bnRzIGlmIGl0IHN1c3BlbmRlZCBpbnNpZGUgYSBub24tXG4gICAgLy8gY29uY3VycmVudCB0cmVlLCBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUuIFdlIHdhbnQgdG8gdHJlYXQgaXQgbGlrZVxuICAgIC8vIGEgbmV3IG1vdW50LCBldmVuIHRob3VnaCBhbiBlbXB0eSB2ZXJzaW9uIG9mIGl0IGFscmVhZHkgY29tbWl0dGVkLlxuICAgIC8vIERpc2Nvbm5lY3QgdGhlIGFsdGVybmF0ZSBwb2ludGVycy5cbiAgICBfY3VycmVudC5hbHRlcm5hdGUgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZSA9IG51bGw7IC8vIFNpbmNlIHRoaXMgaXMgY29uY2VwdHVhbGx5IGEgbmV3IGZpYmVyLCBzY2hlZHVsZSBhIFBsYWNlbWVudCBlZmZlY3RcblxuICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFBsYWNlbWVudDtcbiAgfSAvLyBQcm9tb3RlIHRoZSBmaWJlciB0byBhIGNsYXNzIGFuZCB0cnkgcmVuZGVyaW5nIGFnYWluLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MudGFnID0gQ2xhc3NDb21wb25lbnQ7IC8vIFRoZSByZXN0IG9mIHRoaXMgZnVuY3Rpb24gaXMgYSBmb3JrIG9mIGB1cGRhdGVDbGFzc0NvbXBvbmVudGBcbiAgLy8gUHVzaCBjb250ZXh0IHByb3ZpZGVycyBlYXJseSB0byBwcmV2ZW50IGNvbnRleHQgc3RhY2sgbWlzbWF0Y2hlcy5cbiAgLy8gRHVyaW5nIG1vdW50aW5nIHdlIGRvbid0IGtub3cgdGhlIGNoaWxkIGNvbnRleHQgeWV0IGFzIHRoZSBpbnN0YW5jZSBkb2Vzbid0IGV4aXN0LlxuICAvLyBXZSB3aWxsIGludmFsaWRhdGUgdGhlIGNoaWxkIGNvbnRleHQgaW4gZmluaXNoQ2xhc3NDb21wb25lbnQoKSByaWdodCBhZnRlciByZW5kZXJpbmcuXG5cbiAgdmFyIGhhc0NvbnRleHQ7XG5cbiAgaWYgKGlzQ29udGV4dFByb3ZpZGVyKENvbXBvbmVudCkpIHtcbiAgICBoYXNDb250ZXh0ID0gdHJ1ZTtcbiAgICBwdXNoQ29udGV4dFByb3ZpZGVyKHdvcmtJblByb2dyZXNzKTtcbiAgfSBlbHNlIHtcbiAgICBoYXNDb250ZXh0ID0gZmFsc2U7XG4gIH1cblxuICBwcmVwYXJlVG9SZWFkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICBjb25zdHJ1Y3RDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcyk7XG4gIG1vdW50Q2xhc3NJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBuZXh0UHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIGZpbmlzaENsYXNzQ29tcG9uZW50KG51bGwsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHRydWUsIGhhc0NvbnRleHQsIHJlbmRlckxhbmVzKTtcbn1cblxuZnVuY3Rpb24gbW91bnRJbmRldGVybWluYXRlQ29tcG9uZW50KF9jdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCByZW5kZXJMYW5lcykge1xuICBpZiAoX2N1cnJlbnQgIT09IG51bGwpIHtcbiAgICAvLyBBbiBpbmRldGVybWluYXRlIGNvbXBvbmVudCBvbmx5IG1vdW50cyBpZiBpdCBzdXNwZW5kZWQgaW5zaWRlIGEgbm9uLVxuICAgIC8vIGNvbmN1cnJlbnQgdHJlZSwgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlLiBXZSB3YW50IHRvIHRyZWF0IGl0IGxpa2VcbiAgICAvLyBhIG5ldyBtb3VudCwgZXZlbiB0aG91Z2ggYW4gZW1wdHkgdmVyc2lvbiBvZiBpdCBhbHJlYWR5IGNvbW1pdHRlZC5cbiAgICAvLyBEaXNjb25uZWN0IHRoZSBhbHRlcm5hdGUgcG9pbnRlcnMuXG4gICAgX2N1cnJlbnQuYWx0ZXJuYXRlID0gbnVsbDtcbiAgICB3b3JrSW5Qcm9ncmVzcy5hbHRlcm5hdGUgPSBudWxsOyAvLyBTaW5jZSB0aGlzIGlzIGNvbmNlcHR1YWxseSBhIG5ldyBmaWJlciwgc2NoZWR1bGUgYSBQbGFjZW1lbnQgZWZmZWN0XG5cbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBQbGFjZW1lbnQ7XG4gIH1cblxuICB2YXIgcHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciBjb250ZXh0O1xuXG4gIHtcbiAgICB2YXIgdW5tYXNrZWRDb250ZXh0ID0gZ2V0VW5tYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIGZhbHNlKTtcbiAgICBjb250ZXh0ID0gZ2V0TWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgdW5tYXNrZWRDb250ZXh0KTtcbiAgfVxuXG4gIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIHZhciB2YWx1ZTtcbiAgdmFyIGhhc0lkO1xuXG4gIHtcbiAgICBtYXJrQ29tcG9uZW50UmVuZGVyU3RhcnRlZCh3b3JrSW5Qcm9ncmVzcyk7XG4gIH1cblxuICB7XG4gICAgaWYgKENvbXBvbmVudC5wcm90b3R5cGUgJiYgdHlwZW9mIENvbXBvbmVudC5wcm90b3R5cGUucmVuZGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8ICdVbmtub3duJztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRCYWRDbGFzc1tjb21wb25lbnROYW1lXSkge1xuICAgICAgICBlcnJvcihcIlRoZSA8JXMgLz4gY29tcG9uZW50IGFwcGVhcnMgdG8gaGF2ZSBhIHJlbmRlciBtZXRob2QsIGJ1dCBkb2Vzbid0IGV4dGVuZCBSZWFjdC5Db21wb25lbnQuIFwiICsgJ1RoaXMgaXMgbGlrZWx5IHRvIGNhdXNlIGVycm9ycy4gQ2hhbmdlICVzIHRvIGV4dGVuZCBSZWFjdC5Db21wb25lbnQgaW5zdGVhZC4nLCBjb21wb25lbnROYW1lLCBjb21wb25lbnROYW1lKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRCYWRDbGFzc1tjb21wb25lbnROYW1lXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5yZWNvcmRMZWdhY3lDb250ZXh0V2FybmluZyh3b3JrSW5Qcm9ncmVzcywgbnVsbCk7XG4gICAgfVxuXG4gICAgc2V0SXNSZW5kZXJpbmcodHJ1ZSk7XG4gICAgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50ID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgdmFsdWUgPSByZW5kZXJXaXRoSG9va3MobnVsbCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcHJvcHMsIGNvbnRleHQsIHJlbmRlckxhbmVzKTtcbiAgICBoYXNJZCA9IGNoZWNrRGlkUmVuZGVySWRIb29rKCk7XG4gICAgc2V0SXNSZW5kZXJpbmcoZmFsc2UpO1xuICB9XG5cbiAge1xuICAgIG1hcmtDb21wb25lbnRSZW5kZXJTdG9wcGVkKCk7XG4gIH0gLy8gUmVhY3QgRGV2VG9vbHMgcmVhZHMgdGhpcyBmbGFnLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGVyZm9ybWVkV29yaztcblxuICB7XG4gICAgLy8gU3VwcG9ydCBmb3IgbW9kdWxlIGNvbXBvbmVudHMgaXMgZGVwcmVjYXRlZCBhbmQgaXMgcmVtb3ZlZCBiZWhpbmQgYSBmbGFnLlxuICAgIC8vIFdoZXRoZXIgb3Igbm90IGl0IHdvdWxkIGNyYXNoIGxhdGVyLCB3ZSB3YW50IHRvIHNob3cgYSBnb29kIG1lc3NhZ2UgaW4gREVWIGZpcnN0LlxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZS5yZW5kZXIgPT09ICdmdW5jdGlvbicgJiYgdmFsdWUuJCR0eXBlb2YgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIF9jb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKENvbXBvbmVudCkgfHwgJ1Vua25vd24nO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dE1vZHVsZVBhdHRlcm5Db21wb25lbnRbX2NvbXBvbmVudE5hbWVdKSB7XG4gICAgICAgIGVycm9yKCdUaGUgPCVzIC8+IGNvbXBvbmVudCBhcHBlYXJzIHRvIGJlIGEgZnVuY3Rpb24gY29tcG9uZW50IHRoYXQgcmV0dXJucyBhIGNsYXNzIGluc3RhbmNlLiAnICsgJ0NoYW5nZSAlcyB0byBhIGNsYXNzIHRoYXQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgaW5zdGVhZC4gJyArIFwiSWYgeW91IGNhbid0IHVzZSBhIGNsYXNzIHRyeSBhc3NpZ25pbmcgdGhlIHByb3RvdHlwZSBvbiB0aGUgZnVuY3Rpb24gYXMgYSB3b3JrYXJvdW5kLiBcIiArIFwiYCVzLnByb3RvdHlwZSA9IFJlYWN0LkNvbXBvbmVudC5wcm90b3R5cGVgLiBEb24ndCB1c2UgYW4gYXJyb3cgZnVuY3Rpb24gc2luY2UgaXQgXCIgKyAnY2Fubm90IGJlIGNhbGxlZCB3aXRoIGBuZXdgIGJ5IFJlYWN0LicsIF9jb21wb25lbnROYW1lLCBfY29tcG9uZW50TmFtZSwgX2NvbXBvbmVudE5hbWUpO1xuXG4gICAgICAgIGRpZFdhcm5BYm91dE1vZHVsZVBhdHRlcm5Db21wb25lbnRbX2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoIC8vIFJ1biB0aGVzZSBjaGVja3MgaW4gcHJvZHVjdGlvbiBvbmx5IGlmIHRoZSBmbGFnIGlzIG9mZi5cbiAgLy8gRXZlbnR1YWxseSB3ZSdsbCBkZWxldGUgdGhpcyBicmFuY2ggYWx0b2dldGhlci5cbiAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlLnJlbmRlciA9PT0gJ2Z1bmN0aW9uJyAmJiB2YWx1ZS4kJHR5cGVvZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAge1xuICAgICAgdmFyIF9jb21wb25lbnROYW1lMiA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8ICdVbmtub3duJztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRNb2R1bGVQYXR0ZXJuQ29tcG9uZW50W19jb21wb25lbnROYW1lMl0pIHtcbiAgICAgICAgZXJyb3IoJ1RoZSA8JXMgLz4gY29tcG9uZW50IGFwcGVhcnMgdG8gYmUgYSBmdW5jdGlvbiBjb21wb25lbnQgdGhhdCByZXR1cm5zIGEgY2xhc3MgaW5zdGFuY2UuICcgKyAnQ2hhbmdlICVzIHRvIGEgY2xhc3MgdGhhdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCBpbnN0ZWFkLiAnICsgXCJJZiB5b3UgY2FuJ3QgdXNlIGEgY2xhc3MgdHJ5IGFzc2lnbmluZyB0aGUgcHJvdG90eXBlIG9uIHRoZSBmdW5jdGlvbiBhcyBhIHdvcmthcm91bmQuIFwiICsgXCJgJXMucHJvdG90eXBlID0gUmVhY3QuQ29tcG9uZW50LnByb3RvdHlwZWAuIERvbid0IHVzZSBhbiBhcnJvdyBmdW5jdGlvbiBzaW5jZSBpdCBcIiArICdjYW5ub3QgYmUgY2FsbGVkIHdpdGggYG5ld2AgYnkgUmVhY3QuJywgX2NvbXBvbmVudE5hbWUyLCBfY29tcG9uZW50TmFtZTIsIF9jb21wb25lbnROYW1lMik7XG5cbiAgICAgICAgZGlkV2FybkFib3V0TW9kdWxlUGF0dGVybkNvbXBvbmVudFtfY29tcG9uZW50TmFtZTJdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IC8vIFByb2NlZWQgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGlzIGlzIGEgY2xhc3MgaW5zdGFuY2VcblxuXG4gICAgd29ya0luUHJvZ3Jlc3MudGFnID0gQ2xhc3NDb21wb25lbnQ7IC8vIFRocm93IG91dCBhbnkgaG9va3MgdGhhdCB3ZXJlIHVzZWQuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IG51bGw7IC8vIFB1c2ggY29udGV4dCBwcm92aWRlcnMgZWFybHkgdG8gcHJldmVudCBjb250ZXh0IHN0YWNrIG1pc21hdGNoZXMuXG4gICAgLy8gRHVyaW5nIG1vdW50aW5nIHdlIGRvbid0IGtub3cgdGhlIGNoaWxkIGNvbnRleHQgeWV0IGFzIHRoZSBpbnN0YW5jZSBkb2Vzbid0IGV4aXN0LlxuICAgIC8vIFdlIHdpbGwgaW52YWxpZGF0ZSB0aGUgY2hpbGQgY29udGV4dCBpbiBmaW5pc2hDbGFzc0NvbXBvbmVudCgpIHJpZ2h0IGFmdGVyIHJlbmRlcmluZy5cblxuICAgIHZhciBoYXNDb250ZXh0ID0gZmFsc2U7XG5cbiAgICBpZiAoaXNDb250ZXh0UHJvdmlkZXIoQ29tcG9uZW50KSkge1xuICAgICAgaGFzQ29udGV4dCA9IHRydWU7XG4gICAgICBwdXNoQ29udGV4dFByb3ZpZGVyKHdvcmtJblByb2dyZXNzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGFzQ29udGV4dCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSB2YWx1ZS5zdGF0ZSAhPT0gbnVsbCAmJiB2YWx1ZS5zdGF0ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUuc3RhdGUgOiBudWxsO1xuICAgIGluaXRpYWxpemVVcGRhdGVRdWV1ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgYWRvcHRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCB2YWx1ZSk7XG4gICAgbW91bnRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHByb3BzLCByZW5kZXJMYW5lcyk7XG4gICAgcmV0dXJuIGZpbmlzaENsYXNzQ29tcG9uZW50KG51bGwsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHRydWUsIGhhc0NvbnRleHQsIHJlbmRlckxhbmVzKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBQcm9jZWVkIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhpcyBpcyBhIGZ1bmN0aW9uIGNvbXBvbmVudFxuICAgIHdvcmtJblByb2dyZXNzLnRhZyA9IEZ1bmN0aW9uQ29tcG9uZW50O1xuXG4gICAge1xuXG4gICAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFsdWUgPSByZW5kZXJXaXRoSG9va3MobnVsbCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcHJvcHMsIGNvbnRleHQsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgICBoYXNJZCA9IGNoZWNrRGlkUmVuZGVySWRIb29rKCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGdldElzSHlkcmF0aW5nKCkgJiYgaGFzSWQpIHtcbiAgICAgIHB1c2hNYXRlcmlhbGl6ZWRUcmVlSWQod29ya0luUHJvZ3Jlc3MpO1xuICAgIH1cblxuICAgIHJlY29uY2lsZUNoaWxkcmVuKG51bGwsIHdvcmtJblByb2dyZXNzLCB2YWx1ZSwgcmVuZGVyTGFuZXMpO1xuXG4gICAge1xuICAgICAgdmFsaWRhdGVGdW5jdGlvbkNvbXBvbmVudEluRGV2KHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUZ1bmN0aW9uQ29tcG9uZW50SW5EZXYod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCkge1xuICB7XG4gICAgaWYgKENvbXBvbmVudCkge1xuICAgICAgaWYgKENvbXBvbmVudC5jaGlsZENvbnRleHRUeXBlcykge1xuICAgICAgICBlcnJvcignJXMoLi4uKTogY2hpbGRDb250ZXh0VHlwZXMgY2Fubm90IGJlIGRlZmluZWQgb24gYSBmdW5jdGlvbiBjb21wb25lbnQuJywgQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lIHx8ICdDb21wb25lbnQnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAod29ya0luUHJvZ3Jlc3MucmVmICE9PSBudWxsKSB7XG4gICAgICB2YXIgaW5mbyA9ICcnO1xuICAgICAgdmFyIG93bmVyTmFtZSA9IGdldEN1cnJlbnRGaWJlck93bmVyTmFtZUluRGV2T3JOdWxsKCk7XG5cbiAgICAgIGlmIChvd25lck5hbWUpIHtcbiAgICAgICAgaW5mbyArPSAnXFxuXFxuQ2hlY2sgdGhlIHJlbmRlciBtZXRob2Qgb2YgYCcgKyBvd25lck5hbWUgKyAnYC4nO1xuICAgICAgfVxuXG4gICAgICB2YXIgd2FybmluZ0tleSA9IG93bmVyTmFtZSB8fCAnJztcbiAgICAgIHZhciBkZWJ1Z1NvdXJjZSA9IHdvcmtJblByb2dyZXNzLl9kZWJ1Z1NvdXJjZTtcblxuICAgICAgaWYgKGRlYnVnU291cmNlKSB7XG4gICAgICAgIHdhcm5pbmdLZXkgPSBkZWJ1Z1NvdXJjZS5maWxlTmFtZSArICc6JyArIGRlYnVnU291cmNlLmxpbmVOdW1iZXI7XG4gICAgICB9XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0RnVuY3Rpb25SZWZzW3dhcm5pbmdLZXldKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dEZ1bmN0aW9uUmVmc1t3YXJuaW5nS2V5XSA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJ0Z1bmN0aW9uIGNvbXBvbmVudHMgY2Fubm90IGJlIGdpdmVuIHJlZnMuICcgKyAnQXR0ZW1wdHMgdG8gYWNjZXNzIHRoaXMgcmVmIHdpbGwgZmFpbC4gJyArICdEaWQgeW91IG1lYW4gdG8gdXNlIFJlYWN0LmZvcndhcmRSZWYoKT8lcycsIGluZm8pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdmFyIF9jb21wb25lbnROYW1lMyA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8ICdVbmtub3duJztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRHZXREZXJpdmVkU3RhdGVPbkZ1bmN0aW9uQ29tcG9uZW50W19jb21wb25lbnROYW1lM10pIHtcbiAgICAgICAgZXJyb3IoJyVzOiBGdW5jdGlvbiBjb21wb25lbnRzIGRvIG5vdCBzdXBwb3J0IGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy4nLCBfY29tcG9uZW50TmFtZTMpO1xuXG4gICAgICAgIGRpZFdhcm5BYm91dEdldERlcml2ZWRTdGF0ZU9uRnVuY3Rpb25Db21wb25lbnRbX2NvbXBvbmVudE5hbWUzXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBDb21wb25lbnQuY29udGV4dFR5cGUgPT09ICdvYmplY3QnICYmIENvbXBvbmVudC5jb250ZXh0VHlwZSAhPT0gbnVsbCkge1xuICAgICAgdmFyIF9jb21wb25lbnROYW1lNCA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8ICdVbmtub3duJztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRDb250ZXh0VHlwZU9uRnVuY3Rpb25Db21wb25lbnRbX2NvbXBvbmVudE5hbWU0XSkge1xuICAgICAgICBlcnJvcignJXM6IEZ1bmN0aW9uIGNvbXBvbmVudHMgZG8gbm90IHN1cHBvcnQgY29udGV4dFR5cGUuJywgX2NvbXBvbmVudE5hbWU0KTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZU9uRnVuY3Rpb25Db21wb25lbnRbX2NvbXBvbmVudE5hbWU0XSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBTVVNQRU5ERURfTUFSS0VSID0ge1xuICBkZWh5ZHJhdGVkOiBudWxsLFxuICB0cmVlQ29udGV4dDogbnVsbCxcbiAgcmV0cnlMYW5lOiBOb0xhbmVcbn07XG5cbmZ1bmN0aW9uIG1vdW50U3VzcGVuc2VPZmZzY3JlZW5TdGF0ZShyZW5kZXJMYW5lcykge1xuICByZXR1cm4ge1xuICAgIGJhc2VMYW5lczogcmVuZGVyTGFuZXMsXG4gICAgY2FjaGVQb29sOiBnZXRTdXNwZW5kZWRDYWNoZSgpXG4gIH07XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVN1c3BlbnNlT2Zmc2NyZWVuU3RhdGUocHJldk9mZnNjcmVlblN0YXRlLCByZW5kZXJMYW5lcykge1xuICB2YXIgY2FjaGVQb29sID0gbnVsbDtcblxuICByZXR1cm4ge1xuICAgIGJhc2VMYW5lczogbWVyZ2VMYW5lcyhwcmV2T2Zmc2NyZWVuU3RhdGUuYmFzZUxhbmVzLCByZW5kZXJMYW5lcyksXG4gICAgY2FjaGVQb29sOiBjYWNoZVBvb2xcbiAgfTtcbn0gLy8gVE9ETzogUHJvYmFibHkgc2hvdWxkIGlubGluZSB0aGlzIGJhY2tcblxuXG5mdW5jdGlvbiBzaG91bGRSZW1haW5PbkZhbGxiYWNrKHN1c3BlbnNlQ29udGV4dCwgY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIC8vIElmIHdlJ3JlIGFscmVhZHkgc2hvd2luZyBhIGZhbGxiYWNrLCB0aGVyZSBhcmUgY2FzZXMgd2hlcmUgd2UgbmVlZCB0b1xuICAvLyByZW1haW4gb24gdGhhdCBmYWxsYmFjayByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIGNvbnRlbnQgaGFzIHJlc29sdmVkLlxuICAvLyBGb3IgZXhhbXBsZSwgU3VzcGVuc2VMaXN0IGNvb3JkaW5hdGVzIHdoZW4gbmVzdGVkIGNvbnRlbnQgYXBwZWFycy5cbiAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICB2YXIgc3VzcGVuc2VTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcblxuICAgIGlmIChzdXNwZW5zZVN0YXRlID09PSBudWxsKSB7XG4gICAgICAvLyBDdXJyZW50bHkgc2hvd2luZyBjb250ZW50LiBEb24ndCBoaWRlIGl0LCBldmVuIGlmIEZvcmNlU3VzcGVuc2VGYWxsYmFja1xuICAgICAgLy8gaXMgdHJ1ZS4gTW9yZSBwcmVjaXNlIG5hbWUgbWlnaHQgYmUgXCJGb3JjZVJlbWFpblN1c3BlbnNlRmFsbGJhY2tcIi5cbiAgICAgIC8vIE5vdGU6IFRoaXMgaXMgYSBmYWN0b3Jpbmcgc21lbGwuIENhbid0IHJlbWFpbiBvbiBhIGZhbGxiYWNrIGlmIHRoZXJlJ3NcbiAgICAgIC8vIG5vIGZhbGxiYWNrIHRvIHJlbWFpbiBvbi5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0gLy8gTm90IGN1cnJlbnRseSBzaG93aW5nIGNvbnRlbnQuIENvbnN1bHQgdGhlIFN1c3BlbnNlIGNvbnRleHQuXG5cblxuICByZXR1cm4gaGFzU3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlQ29udGV4dCwgRm9yY2VTdXNwZW5zZUZhbGxiYWNrKTtcbn1cblxuZnVuY3Rpb24gZ2V0UmVtYWluaW5nV29ya0luUHJpbWFyeVRyZWUoY3VycmVudCwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gVE9ETzogU2hvdWxkIG5vdCByZW1vdmUgcmVuZGVyIGxhbmVzIHRoYXQgd2VyZSBwaW5nZWQgZHVyaW5nIHRoaXMgcmVuZGVyXG4gIHJldHVybiByZW1vdmVMYW5lcyhjdXJyZW50LmNoaWxkTGFuZXMsIHJlbmRlckxhbmVzKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlU3VzcGVuc2VDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBuZXh0UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7IC8vIFRoaXMgaXMgdXNlZCBieSBEZXZUb29scyB0byBmb3JjZSBhIGJvdW5kYXJ5IHRvIHN1c3BlbmQuXG5cbiAge1xuICAgIGlmIChzaG91bGRTdXNwZW5kKHdvcmtJblByb2dyZXNzKSkge1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICB9XG4gIH1cblxuICB2YXIgc3VzcGVuc2VDb250ZXh0ID0gc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50O1xuICB2YXIgc2hvd0ZhbGxiYWNrID0gZmFsc2U7XG4gIHZhciBkaWRTdXNwZW5kID0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgRGlkQ2FwdHVyZSkgIT09IE5vRmxhZ3M7XG5cbiAgaWYgKGRpZFN1c3BlbmQgfHwgc2hvdWxkUmVtYWluT25GYWxsYmFjayhzdXNwZW5zZUNvbnRleHQsIGN1cnJlbnQpKSB7XG4gICAgLy8gU29tZXRoaW5nIGluIHRoaXMgYm91bmRhcnkncyBzdWJ0cmVlIGFscmVhZHkgc3VzcGVuZGVkLiBTd2l0Y2ggdG9cbiAgICAvLyByZW5kZXJpbmcgdGhlIGZhbGxiYWNrIGNoaWxkcmVuLlxuICAgIHNob3dGYWxsYmFjayA9IHRydWU7XG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gfkRpZENhcHR1cmU7XG4gIH0gZWxzZSB7XG4gICAgLy8gQXR0ZW1wdGluZyB0aGUgbWFpbiBjb250ZW50XG4gICAgaWYgKGN1cnJlbnQgPT09IG51bGwgfHwgY3VycmVudC5tZW1vaXplZFN0YXRlICE9PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIGlzIGEgbmV3IG1vdW50IG9yIHRoaXMgYm91bmRhcnkgaXMgYWxyZWFkeSBzaG93aW5nIGEgZmFsbGJhY2sgc3RhdGUuXG4gICAgICAvLyBNYXJrIHRoaXMgc3VidHJlZSBjb250ZXh0IGFzIGhhdmluZyBhdCBsZWFzdCBvbmUgaW52aXNpYmxlIHBhcmVudCB0aGF0IGNvdWxkXG4gICAgICAvLyBoYW5kbGUgdGhlIGZhbGxiYWNrIHN0YXRlLlxuICAgICAgLy8gQXZvaWRlZCBib3VuZGFyaWVzIGFyZSBub3QgY29uc2lkZXJlZCBzaW5jZSB0aGV5IGNhbm5vdCBoYW5kbGUgcHJlZmVycmVkIGZhbGxiYWNrIHN0YXRlcy5cbiAgICAgIHtcbiAgICAgICAgc3VzcGVuc2VDb250ZXh0ID0gYWRkU3VidHJlZVN1c3BlbnNlQ29udGV4dChzdXNwZW5zZUNvbnRleHQsIEludmlzaWJsZVBhcmVudFN1c3BlbnNlQ29udGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3VzcGVuc2VDb250ZXh0ID0gc2V0RGVmYXVsdFNoYWxsb3dTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VDb250ZXh0KTtcbiAgcHVzaFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgc3VzcGVuc2VDb250ZXh0KTsgLy8gT0ssIHRoZSBuZXh0IHBhcnQgaXMgY29uZnVzaW5nLiBXZSdyZSBhYm91dCB0byByZWNvbmNpbGUgdGhlIFN1c3BlbnNlXG4gIC8vIGJvdW5kYXJ5J3MgY2hpbGRyZW4uIFRoaXMgaW52b2x2ZXMgc29tZSBjdXN0b20gcmVjb25jaWxpYXRpb24gbG9naWMuIFR3b1xuICAvLyBtYWluIHJlYXNvbnMgdGhpcyBpcyBzbyBjb21wbGljYXRlZC5cbiAgLy9cbiAgLy8gRmlyc3QsIExlZ2FjeSBNb2RlIGhhcyBkaWZmZXJlbnQgc2VtYW50aWNzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4gVGhlXG4gIC8vIHByaW1hcnkgdHJlZSB3aWxsIGNvbW1pdCBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUsIHNvIHdoZW4gd2UgZG8gdGhlXG4gIC8vIHNlY29uZCBwYXNzIHRvIHJlbmRlciB0aGUgZmFsbGJhY2ssIHdlIGRvIHNvbWUgZXhjZWVkaW5nbHksIHVoLCBjbGV2ZXJcbiAgLy8gaGFja3MgdG8gbWFrZSB0aGF0IG5vdCB0b3RhbGx5IGJyZWFrLiBMaWtlIHRyYW5zZmVycmluZyBlZmZlY3RzIGFuZFxuICAvLyBkZWxldGlvbnMgZnJvbSBoaWRkZW4gdHJlZS4gSW4gQ29uY3VycmVudCBNb2RlLCBpdCdzIG11Y2ggc2ltcGxlcixcbiAgLy8gYmVjYXVzZSB3ZSBiYWlsb3V0IG9uIHRoZSBwcmltYXJ5IHRyZWUgY29tcGxldGVseSBhbmQgbGVhdmUgaXQgaW4gaXRzIG9sZFxuICAvLyBzdGF0ZSwgbm8gZWZmZWN0cy4gU2FtZSBhcyB3aGF0IHdlIGRvIGZvciBPZmZzY3JlZW4gKGV4Y2VwdCB0aGF0XG4gIC8vIE9mZnNjcmVlbiBkb2Vzbid0IGhhdmUgdGhlIGZpcnN0IHJlbmRlciBwYXNzKS5cbiAgLy9cbiAgLy8gU2Vjb25kIGlzIGh5ZHJhdGlvbi4gRHVyaW5nIGh5ZHJhdGlvbiwgdGhlIFN1c3BlbnNlIGZpYmVyIGhhcyBhIHNsaWdodGx5XG4gIC8vIGRpZmZlcmVudCBsYXlvdXQsIHdoZXJlIHRoZSBjaGlsZCBwb2ludHMgdG8gYSBkZWh5ZHJhdGVkIGZyYWdtZW50LCB3aGljaFxuICAvLyBjb250YWlucyB0aGUgRE9NIHJlbmRlcmVkIGJ5IHRoZSBzZXJ2ZXIuXG4gIC8vXG4gIC8vIFRoaXJkLCBldmVuIGlmIHlvdSBzZXQgYWxsIHRoYXQgYXNpZGUsIFN1c3BlbnNlIGlzIGxpa2UgZXJyb3IgYm91bmRhcmllcyBpblxuICAvLyB0aGF0IHdlIGZpcnN0IHdlIHRyeSB0byByZW5kZXIgb25lIHRyZWUsIGFuZCBpZiB0aGF0IGZhaWxzLCB3ZSByZW5kZXIgYWdhaW5cbiAgLy8gYW5kIHN3aXRjaCB0byBhIGRpZmZlcmVudCB0cmVlLiBMaWtlIGEgdHJ5L2NhdGNoIGJsb2NrLiBTbyB3ZSBoYXZlIHRvIHRyYWNrXG4gIC8vIHdoaWNoIGJyYW5jaCB3ZSdyZSBjdXJyZW50bHkgcmVuZGVyaW5nLiBJZGVhbGx5IHdlIHdvdWxkIG1vZGVsIHRoaXMgdXNpbmdcbiAgLy8gYSBzdGFjay5cblxuICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgIC8vIEluaXRpYWwgbW91bnRcbiAgICAvLyBJZiB3ZSdyZSBjdXJyZW50bHkgaHlkcmF0aW5nLCB0cnkgdG8gaHlkcmF0ZSB0aGlzIGJvdW5kYXJ5LlxuICAgIHRyeVRvQ2xhaW1OZXh0SHlkcmF0YWJsZUluc3RhbmNlKHdvcmtJblByb2dyZXNzKTsgLy8gVGhpcyBjb3VsZCd2ZSBiZWVuIGEgZGVoeWRyYXRlZCBzdXNwZW5zZSBjb21wb25lbnQuXG5cbiAgICB7XG4gICAgICB2YXIgc3VzcGVuc2VTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgIGlmIChzdXNwZW5zZVN0YXRlICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBkZWh5ZHJhdGVkID0gc3VzcGVuc2VTdGF0ZS5kZWh5ZHJhdGVkO1xuXG4gICAgICAgIGlmIChkZWh5ZHJhdGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIG1vdW50RGVoeWRyYXRlZFN1c3BlbnNlQ29tcG9uZW50KHdvcmtJblByb2dyZXNzLCBkZWh5ZHJhdGVkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBuZXh0UHJpbWFyeUNoaWxkcmVuID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuICAgIHZhciBuZXh0RmFsbGJhY2tDaGlsZHJlbiA9IG5leHRQcm9wcy5mYWxsYmFjaztcblxuICAgIGlmIChzaG93RmFsbGJhY2spIHtcbiAgICAgIHZhciBmYWxsYmFja0ZyYWdtZW50ID0gbW91bnRTdXNwZW5zZUZhbGxiYWNrQ2hpbGRyZW4od29ya0luUHJvZ3Jlc3MsIG5leHRQcmltYXJ5Q2hpbGRyZW4sIG5leHRGYWxsYmFja0NoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gICAgICB2YXIgcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50Lm1lbW9pemVkU3RhdGUgPSBtb3VudFN1c3BlbnNlT2Zmc2NyZWVuU3RhdGUocmVuZGVyTGFuZXMpO1xuICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IFNVU1BFTkRFRF9NQVJLRVI7XG4gICAgICByZXR1cm4gZmFsbGJhY2tGcmFnbWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1vdW50U3VzcGVuc2VQcmltYXJ5Q2hpbGRyZW4od29ya0luUHJvZ3Jlc3MsIG5leHRQcmltYXJ5Q2hpbGRyZW4pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBUaGlzIGlzIGFuIHVwZGF0ZS5cbiAgICAvLyBJZiB0aGUgY3VycmVudCBmaWJlciBoYXMgYSBTdXNwZW5zZVN0YXRlLCB0aGF0IG1lYW5zIGl0J3MgYWxyZWFkeSBzaG93aW5nXG4gICAgLy8gYSBmYWxsYmFjay5cbiAgICB2YXIgcHJldlN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuXG4gICAgaWYgKHByZXZTdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgLy8gVGhlIGN1cnJlbnQgdHJlZSBpcyBhbHJlYWR5IHNob3dpbmcgYSBmYWxsYmFja1xuICAgICAgLy8gU3BlY2lhbCBwYXRoIGZvciBoeWRyYXRpb25cbiAgICAgIHtcbiAgICAgICAgdmFyIF9kZWh5ZHJhdGVkID0gcHJldlN0YXRlLmRlaHlkcmF0ZWQ7XG5cbiAgICAgICAgaWYgKF9kZWh5ZHJhdGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgaWYgKCFkaWRTdXNwZW5kKSB7XG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlRGVoeWRyYXRlZFN1c3BlbnNlQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBfZGVoeWRyYXRlZCwgcHJldlN0YXRlLCByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgfSBlbHNlIGlmICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIEZvcmNlQ2xpZW50UmVuZGVyKSB7XG4gICAgICAgICAgICAvLyBTb21ldGhpbmcgZXJyb3JlZCBkdXJpbmcgaHlkcmF0aW9uLiBUcnkgYWdhaW4gd2l0aG91dCBoeWRyYXRpbmcuXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyAmPSB+Rm9yY2VDbGllbnRSZW5kZXI7XG4gICAgICAgICAgICByZXR1cm4gcmV0cnlTdXNwZW5zZUNvbXBvbmVudFdpdGhvdXRIeWRyYXRpbmcoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzLCBuZXcgRXJyb3IoJ1RoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBoeWRyYXRpbmcgdGhpcyBTdXNwZW5zZSBib3VuZGFyeS4gJyArICdTd2l0Y2hlZCB0byBjbGllbnQgcmVuZGVyaW5nLicpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIFNvbWV0aGluZyBzdXNwZW5kZWQgYW5kIHdlIHNob3VsZCBzdGlsbCBiZSBpbiBkZWh5ZHJhdGVkIG1vZGUuXG4gICAgICAgICAgICAvLyBMZWF2ZSB0aGUgZXhpc3RpbmcgY2hpbGQgaW4gcGxhY2UuXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGN1cnJlbnQuY2hpbGQ7IC8vIFRoZSBkZWh5ZHJhdGVkIGNvbXBsZXRpb24gcGFzcyBleHBlY3RzIHRoaXMgZmxhZyB0byBiZSB0aGVyZVxuICAgICAgICAgICAgLy8gYnV0IHRoZSBub3JtYWwgc3VzcGVuc2UgcGFzcyBkb2Vzbid0LlxuXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBEaWRDYXB0dXJlO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFN1c3BlbmRlZCBidXQgd2Ugc2hvdWxkIG5vIGxvbmdlciBiZSBpbiBkZWh5ZHJhdGVkIG1vZGUuXG4gICAgICAgICAgICAvLyBUaGVyZWZvcmUgd2Ugbm93IGhhdmUgdG8gcmVuZGVyIHRoZSBmYWxsYmFjay5cbiAgICAgICAgICAgIHZhciBfbmV4dFByaW1hcnlDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcbiAgICAgICAgICAgIHZhciBfbmV4dEZhbGxiYWNrQ2hpbGRyZW4gPSBuZXh0UHJvcHMuZmFsbGJhY2s7XG4gICAgICAgICAgICB2YXIgZmFsbGJhY2tDaGlsZEZyYWdtZW50ID0gbW91bnRTdXNwZW5zZUZhbGxiYWNrQWZ0ZXJSZXRyeVdpdGhvdXRIeWRyYXRpbmcoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIF9uZXh0UHJpbWFyeUNoaWxkcmVuLCBfbmV4dEZhbGxiYWNrQ2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgICAgICAgICAgIHZhciBfcHJpbWFyeUNoaWxkRnJhZ21lbnQyID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICAgICAgICBfcHJpbWFyeUNoaWxkRnJhZ21lbnQyLm1lbW9pemVkU3RhdGUgPSBtb3VudFN1c3BlbnNlT2Zmc2NyZWVuU3RhdGUocmVuZGVyTGFuZXMpO1xuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IFNVU1BFTkRFRF9NQVJLRVI7XG4gICAgICAgICAgICByZXR1cm4gZmFsbGJhY2tDaGlsZEZyYWdtZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc2hvd0ZhbGxiYWNrKSB7XG4gICAgICAgIHZhciBfbmV4dEZhbGxiYWNrQ2hpbGRyZW4yID0gbmV4dFByb3BzLmZhbGxiYWNrO1xuICAgICAgICB2YXIgX25leHRQcmltYXJ5Q2hpbGRyZW4yID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuXG4gICAgICAgIHZhciBfZmFsbGJhY2tDaGlsZEZyYWdtZW50ID0gdXBkYXRlU3VzcGVuc2VGYWxsYmFja0NoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBfbmV4dFByaW1hcnlDaGlsZHJlbjIsIF9uZXh0RmFsbGJhY2tDaGlsZHJlbjIsIHJlbmRlckxhbmVzKTtcblxuICAgICAgICB2YXIgX3ByaW1hcnlDaGlsZEZyYWdtZW50MyA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICB2YXIgcHJldk9mZnNjcmVlblN0YXRlID0gY3VycmVudC5jaGlsZC5tZW1vaXplZFN0YXRlO1xuICAgICAgICBfcHJpbWFyeUNoaWxkRnJhZ21lbnQzLm1lbW9pemVkU3RhdGUgPSBwcmV2T2Zmc2NyZWVuU3RhdGUgPT09IG51bGwgPyBtb3VudFN1c3BlbnNlT2Zmc2NyZWVuU3RhdGUocmVuZGVyTGFuZXMpIDogdXBkYXRlU3VzcGVuc2VPZmZzY3JlZW5TdGF0ZShwcmV2T2Zmc2NyZWVuU3RhdGUsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgX3ByaW1hcnlDaGlsZEZyYWdtZW50My5jaGlsZExhbmVzID0gZ2V0UmVtYWluaW5nV29ya0luUHJpbWFyeVRyZWUoY3VycmVudCwgcmVuZGVyTGFuZXMpO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gU1VTUEVOREVEX01BUktFUjtcbiAgICAgICAgcmV0dXJuIF9mYWxsYmFja0NoaWxkRnJhZ21lbnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgX25leHRQcmltYXJ5Q2hpbGRyZW4zID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuXG4gICAgICAgIHZhciBfcHJpbWFyeUNoaWxkRnJhZ21lbnQ0ID0gdXBkYXRlU3VzcGVuc2VQcmltYXJ5Q2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIF9uZXh0UHJpbWFyeUNoaWxkcmVuMywgcmVuZGVyTGFuZXMpO1xuXG4gICAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgICAgICByZXR1cm4gX3ByaW1hcnlDaGlsZEZyYWdtZW50NDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlIGN1cnJlbnQgdHJlZSBpcyBub3QgYWxyZWFkeSBzaG93aW5nIGEgZmFsbGJhY2suXG4gICAgICBpZiAoc2hvd0ZhbGxiYWNrKSB7XG4gICAgICAgIC8vIFRpbWVkIG91dC5cbiAgICAgICAgdmFyIF9uZXh0RmFsbGJhY2tDaGlsZHJlbjMgPSBuZXh0UHJvcHMuZmFsbGJhY2s7XG4gICAgICAgIHZhciBfbmV4dFByaW1hcnlDaGlsZHJlbjQgPSBuZXh0UHJvcHMuY2hpbGRyZW47XG5cbiAgICAgICAgdmFyIF9mYWxsYmFja0NoaWxkRnJhZ21lbnQyID0gdXBkYXRlU3VzcGVuc2VGYWxsYmFja0NoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBfbmV4dFByaW1hcnlDaGlsZHJlbjQsIF9uZXh0RmFsbGJhY2tDaGlsZHJlbjMsIHJlbmRlckxhbmVzKTtcblxuICAgICAgICB2YXIgX3ByaW1hcnlDaGlsZEZyYWdtZW50NSA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICB2YXIgX3ByZXZPZmZzY3JlZW5TdGF0ZSA9IGN1cnJlbnQuY2hpbGQubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgX3ByaW1hcnlDaGlsZEZyYWdtZW50NS5tZW1vaXplZFN0YXRlID0gX3ByZXZPZmZzY3JlZW5TdGF0ZSA9PT0gbnVsbCA/IG1vdW50U3VzcGVuc2VPZmZzY3JlZW5TdGF0ZShyZW5kZXJMYW5lcykgOiB1cGRhdGVTdXNwZW5zZU9mZnNjcmVlblN0YXRlKF9wcmV2T2Zmc2NyZWVuU3RhdGUsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgX3ByaW1hcnlDaGlsZEZyYWdtZW50NS5jaGlsZExhbmVzID0gZ2V0UmVtYWluaW5nV29ya0luUHJpbWFyeVRyZWUoY3VycmVudCwgcmVuZGVyTGFuZXMpOyAvLyBTa2lwIHRoZSBwcmltYXJ5IGNoaWxkcmVuLCBhbmQgY29udGludWUgd29ya2luZyBvbiB0aGVcbiAgICAgICAgLy8gZmFsbGJhY2sgY2hpbGRyZW4uXG5cbiAgICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IFNVU1BFTkRFRF9NQVJLRVI7XG4gICAgICAgIHJldHVybiBfZmFsbGJhY2tDaGlsZEZyYWdtZW50MjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFN0aWxsIGhhdmVuJ3QgdGltZWQgb3V0LiBDb250aW51ZSByZW5kZXJpbmcgdGhlIGNoaWxkcmVuLCBsaWtlIHdlXG4gICAgICAgIC8vIG5vcm1hbGx5IGRvLlxuICAgICAgICB2YXIgX25leHRQcmltYXJ5Q2hpbGRyZW41ID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuXG4gICAgICAgIHZhciBfcHJpbWFyeUNoaWxkRnJhZ21lbnQ2ID0gdXBkYXRlU3VzcGVuc2VQcmltYXJ5Q2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIF9uZXh0UHJpbWFyeUNoaWxkcmVuNSwgcmVuZGVyTGFuZXMpO1xuXG4gICAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgICAgICByZXR1cm4gX3ByaW1hcnlDaGlsZEZyYWdtZW50NjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91bnRTdXNwZW5zZVByaW1hcnlDaGlsZHJlbih3b3JrSW5Qcm9ncmVzcywgcHJpbWFyeUNoaWxkcmVuLCByZW5kZXJMYW5lcykge1xuICB2YXIgbW9kZSA9IHdvcmtJblByb2dyZXNzLm1vZGU7XG4gIHZhciBwcmltYXJ5Q2hpbGRQcm9wcyA9IHtcbiAgICBtb2RlOiAndmlzaWJsZScsXG4gICAgY2hpbGRyZW46IHByaW1hcnlDaGlsZHJlblxuICB9O1xuICB2YXIgcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSBtb3VudFdvcmtJblByb2dyZXNzT2Zmc2NyZWVuRmliZXIocHJpbWFyeUNoaWxkUHJvcHMsIG1vZGUpO1xuICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcbiAgcmV0dXJuIHByaW1hcnlDaGlsZEZyYWdtZW50O1xufVxuXG5mdW5jdGlvbiBtb3VudFN1c3BlbnNlRmFsbGJhY2tDaGlsZHJlbih3b3JrSW5Qcm9ncmVzcywgcHJpbWFyeUNoaWxkcmVuLCBmYWxsYmFja0NoaWxkcmVuLCByZW5kZXJMYW5lcykge1xuICB2YXIgbW9kZSA9IHdvcmtJblByb2dyZXNzLm1vZGU7XG4gIHZhciBwcm9ncmVzc2VkUHJpbWFyeUZyYWdtZW50ID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gIHZhciBwcmltYXJ5Q2hpbGRQcm9wcyA9IHtcbiAgICBtb2RlOiAnaGlkZGVuJyxcbiAgICBjaGlsZHJlbjogcHJpbWFyeUNoaWxkcmVuXG4gIH07XG4gIHZhciBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcbiAgdmFyIGZhbGxiYWNrQ2hpbGRGcmFnbWVudDtcblxuICBpZiAoKG1vZGUgJiBDb25jdXJyZW50TW9kZSkgPT09IE5vTW9kZSAmJiBwcm9ncmVzc2VkUHJpbWFyeUZyYWdtZW50ICE9PSBudWxsKSB7XG4gICAgLy8gSW4gbGVnYWN5IG1vZGUsIHdlIGNvbW1pdCB0aGUgcHJpbWFyeSB0cmVlIGFzIGlmIGl0IHN1Y2Nlc3NmdWxseVxuICAgIC8vIGNvbXBsZXRlZCwgZXZlbiB0aG91Z2ggaXQncyBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUuXG4gICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSBwcm9ncmVzc2VkUHJpbWFyeUZyYWdtZW50O1xuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LmNoaWxkTGFuZXMgPSBOb0xhbmVzO1xuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LnBlbmRpbmdQcm9wcyA9IHByaW1hcnlDaGlsZFByb3BzO1xuXG4gICAgaWYgKCB3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpIHtcbiAgICAgIC8vIFJlc2V0IHRoZSBkdXJhdGlvbnMgZnJvbSB0aGUgZmlyc3QgcGFzcyBzbyB0aGV5IGFyZW4ndCBpbmNsdWRlZCBpbiB0aGVcbiAgICAgIC8vIGZpbmFsIGFtb3VudHMuIFRoaXMgc2VlbXMgY291bnRlcmludHVpdGl2ZSwgc2luY2Ugd2UncmUgaW50ZW50aW9uYWxseVxuICAgICAgLy8gbm90IG1lYXN1cmluZyBwYXJ0IG9mIHRoZSByZW5kZXIgcGhhc2UsIGJ1dCB0aGlzIG1ha2VzIGl0IG1hdGNoIHdoYXQgd2VcbiAgICAgIC8vIGRvIGluIENvbmN1cnJlbnQgTW9kZS5cbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LmFjdHVhbER1cmF0aW9uID0gMDtcbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LmFjdHVhbFN0YXJ0VGltZSA9IC0xO1xuICAgICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuc2VsZkJhc2VEdXJhdGlvbiA9IDA7XG4gICAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC50cmVlQmFzZUR1cmF0aW9uID0gMDtcbiAgICB9XG5cbiAgICBmYWxsYmFja0NoaWxkRnJhZ21lbnQgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudChmYWxsYmFja0NoaWxkcmVuLCBtb2RlLCByZW5kZXJMYW5lcywgbnVsbCk7XG4gIH0gZWxzZSB7XG4gICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSBtb3VudFdvcmtJblByb2dyZXNzT2Zmc2NyZWVuRmliZXIocHJpbWFyeUNoaWxkUHJvcHMsIG1vZGUpO1xuICAgIGZhbGxiYWNrQ2hpbGRGcmFnbWVudCA9IGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KGZhbGxiYWNrQ2hpbGRyZW4sIG1vZGUsIHJlbmRlckxhbmVzLCBudWxsKTtcbiAgfVxuXG4gIHByaW1hcnlDaGlsZEZyYWdtZW50LnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICBmYWxsYmFja0NoaWxkRnJhZ21lbnQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7XG4gIHByaW1hcnlDaGlsZEZyYWdtZW50LnNpYmxpbmcgPSBmYWxsYmFja0NoaWxkRnJhZ21lbnQ7XG4gIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG4gIHJldHVybiBmYWxsYmFja0NoaWxkRnJhZ21lbnQ7XG59XG5cbmZ1bmN0aW9uIG1vdW50V29ya0luUHJvZ3Jlc3NPZmZzY3JlZW5GaWJlcihvZmZzY3JlZW5Qcm9wcywgbW9kZSwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gVGhlIHByb3BzIGFyZ3VtZW50IHRvIGBjcmVhdGVGaWJlckZyb21PZmZzY3JlZW5gIGlzIGBhbnlgIHR5cGVkLCBzbyB3ZSB1c2VcbiAgLy8gdGhpcyB3cmFwcGVyIGZ1bmN0aW9uIHRvIGNvbnN0cmFpbiBpdC5cbiAgcmV0dXJuIGNyZWF0ZUZpYmVyRnJvbU9mZnNjcmVlbihvZmZzY3JlZW5Qcm9wcywgbW9kZSwgTm9MYW5lcywgbnVsbCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVdvcmtJblByb2dyZXNzT2Zmc2NyZWVuRmliZXIoY3VycmVudCwgb2Zmc2NyZWVuUHJvcHMpIHtcbiAgLy8gVGhlIHByb3BzIGFyZ3VtZW50IHRvIGBjcmVhdGVXb3JrSW5Qcm9ncmVzc2AgaXMgYGFueWAgdHlwZWQsIHNvIHdlIHVzZSB0aGlzXG4gIC8vIHdyYXBwZXIgZnVuY3Rpb24gdG8gY29uc3RyYWluIGl0LlxuICByZXR1cm4gY3JlYXRlV29ya0luUHJvZ3Jlc3MoY3VycmVudCwgb2Zmc2NyZWVuUHJvcHMpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVTdXNwZW5zZVByaW1hcnlDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcHJpbWFyeUNoaWxkcmVuLCByZW5kZXJMYW5lcykge1xuICB2YXIgY3VycmVudFByaW1hcnlDaGlsZEZyYWdtZW50ID0gY3VycmVudC5jaGlsZDtcbiAgdmFyIGN1cnJlbnRGYWxsYmFja0NoaWxkRnJhZ21lbnQgPSBjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQuc2libGluZztcbiAgdmFyIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NPZmZzY3JlZW5GaWJlcihjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQsIHtcbiAgICBtb2RlOiAndmlzaWJsZScsXG4gICAgY2hpbGRyZW46IHByaW1hcnlDaGlsZHJlblxuICB9KTtcblxuICBpZiAoKHdvcmtJblByb2dyZXNzLm1vZGUgJiBDb25jdXJyZW50TW9kZSkgPT09IE5vTW9kZSkge1xuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LmxhbmVzID0gcmVuZGVyTGFuZXM7XG4gIH1cblxuICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuc2libGluZyA9IG51bGw7XG5cbiAgaWYgKGN1cnJlbnRGYWxsYmFja0NoaWxkRnJhZ21lbnQgIT09IG51bGwpIHtcbiAgICAvLyBEZWxldGUgdGhlIGZhbGxiYWNrIGNoaWxkIGZyYWdtZW50XG4gICAgdmFyIGRlbGV0aW9ucyA9IHdvcmtJblByb2dyZXNzLmRlbGV0aW9ucztcblxuICAgIGlmIChkZWxldGlvbnMgPT09IG51bGwpIHtcbiAgICAgIHdvcmtJblByb2dyZXNzLmRlbGV0aW9ucyA9IFtjdXJyZW50RmFsbGJhY2tDaGlsZEZyYWdtZW50XTtcbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IENoaWxkRGVsZXRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0aW9ucy5wdXNoKGN1cnJlbnRGYWxsYmFja0NoaWxkRnJhZ21lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG4gIHJldHVybiBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcbn1cblxuZnVuY3Rpb24gdXBkYXRlU3VzcGVuc2VGYWxsYmFja0NoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBwcmltYXJ5Q2hpbGRyZW4sIGZhbGxiYWNrQ2hpbGRyZW4sIHJlbmRlckxhbmVzKSB7XG4gIHZhciBtb2RlID0gd29ya0luUHJvZ3Jlc3MubW9kZTtcbiAgdmFyIGN1cnJlbnRQcmltYXJ5Q2hpbGRGcmFnbWVudCA9IGN1cnJlbnQuY2hpbGQ7XG4gIHZhciBjdXJyZW50RmFsbGJhY2tDaGlsZEZyYWdtZW50ID0gY3VycmVudFByaW1hcnlDaGlsZEZyYWdtZW50LnNpYmxpbmc7XG4gIHZhciBwcmltYXJ5Q2hpbGRQcm9wcyA9IHtcbiAgICBtb2RlOiAnaGlkZGVuJyxcbiAgICBjaGlsZHJlbjogcHJpbWFyeUNoaWxkcmVuXG4gIH07XG4gIHZhciBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcblxuICBpZiAoIC8vIEluIGxlZ2FjeSBtb2RlLCB3ZSBjb21taXQgdGhlIHByaW1hcnkgdHJlZSBhcyBpZiBpdCBzdWNjZXNzZnVsbHlcbiAgLy8gY29tcGxldGVkLCBldmVuIHRob3VnaCBpdCdzIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS5cbiAgKG1vZGUgJiBDb25jdXJyZW50TW9kZSkgPT09IE5vTW9kZSAmJiAvLyBNYWtlIHN1cmUgd2UncmUgb24gdGhlIHNlY29uZCBwYXNzLCBpLmUuIHRoZSBwcmltYXJ5IGNoaWxkIGZyYWdtZW50IHdhc1xuICAvLyBhbHJlYWR5IGNsb25lZC4gSW4gbGVnYWN5IG1vZGUsIHRoZSBvbmx5IGNhc2Ugd2hlcmUgdGhpcyBpc24ndCB0cnVlIGlzXG4gIC8vIHdoZW4gRGV2VG9vbHMgZm9yY2VzIHVzIHRvIGRpc3BsYXkgYSBmYWxsYmFjazsgd2Ugc2tpcCB0aGUgZmlyc3QgcmVuZGVyXG4gIC8vIHBhc3MgZW50aXJlbHkgYW5kIGdvIHN0cmFpZ2h0IHRvIHJlbmRlcmluZyB0aGUgZmFsbGJhY2suIChJbiBDb25jdXJyZW50XG4gIC8vIE1vZGUsIFN1c3BlbnNlTGlzdCBjYW4gYWxzbyB0cmlnZ2VyIHRoaXMgc2NlbmFyaW8sIGJ1dCB0aGlzIGlzIGEgbGVnYWN5LVxuICAvLyBvbmx5IGNvZGVwYXRoLilcbiAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgIT09IGN1cnJlbnRQcmltYXJ5Q2hpbGRGcmFnbWVudCkge1xuICAgIHZhciBwcm9ncmVzc2VkUHJpbWFyeUZyYWdtZW50ID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSBwcm9ncmVzc2VkUHJpbWFyeUZyYWdtZW50O1xuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LmNoaWxkTGFuZXMgPSBOb0xhbmVzO1xuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LnBlbmRpbmdQcm9wcyA9IHByaW1hcnlDaGlsZFByb3BzO1xuXG4gICAgaWYgKCB3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpIHtcbiAgICAgIC8vIFJlc2V0IHRoZSBkdXJhdGlvbnMgZnJvbSB0aGUgZmlyc3QgcGFzcyBzbyB0aGV5IGFyZW4ndCBpbmNsdWRlZCBpbiB0aGVcbiAgICAgIC8vIGZpbmFsIGFtb3VudHMuIFRoaXMgc2VlbXMgY291bnRlcmludHVpdGl2ZSwgc2luY2Ugd2UncmUgaW50ZW50aW9uYWxseVxuICAgICAgLy8gbm90IG1lYXN1cmluZyBwYXJ0IG9mIHRoZSByZW5kZXIgcGhhc2UsIGJ1dCB0aGlzIG1ha2VzIGl0IG1hdGNoIHdoYXQgd2VcbiAgICAgIC8vIGRvIGluIENvbmN1cnJlbnQgTW9kZS5cbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LmFjdHVhbER1cmF0aW9uID0gMDtcbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LmFjdHVhbFN0YXJ0VGltZSA9IC0xO1xuICAgICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuc2VsZkJhc2VEdXJhdGlvbiA9IGN1cnJlbnRQcmltYXJ5Q2hpbGRGcmFnbWVudC5zZWxmQmFzZUR1cmF0aW9uO1xuICAgICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQudHJlZUJhc2VEdXJhdGlvbiA9IGN1cnJlbnRQcmltYXJ5Q2hpbGRGcmFnbWVudC50cmVlQmFzZUR1cmF0aW9uO1xuICAgIH1cbiAgICAvLyBIb3dldmVyLCBzaW5jZSB3ZSdyZSBnb2luZyB0byByZW1haW4gb24gdGhlIGZhbGxiYWNrLCB3ZSBubyBsb25nZXIgd2FudFxuICAgIC8vIHRvIGRlbGV0ZSBpdC5cblxuXG4gICAgd29ya0luUHJvZ3Jlc3MuZGVsZXRpb25zID0gbnVsbDtcbiAgfSBlbHNlIHtcbiAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudCA9IHVwZGF0ZVdvcmtJblByb2dyZXNzT2Zmc2NyZWVuRmliZXIoY3VycmVudFByaW1hcnlDaGlsZEZyYWdtZW50LCBwcmltYXJ5Q2hpbGRQcm9wcyk7XG4gICAgLy8gKFdlIGRvbid0IGRvIHRoaXMgaW4gbGVnYWN5IG1vZGUsIGJlY2F1c2UgaW4gbGVnYWN5IG1vZGUgd2UgZG9uJ3QgcmUtdXNlXG4gICAgLy8gdGhlIGN1cnJlbnQgdHJlZTsgc2VlIHByZXZpb3VzIGJyYW5jaC4pXG5cblxuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LnN1YnRyZWVGbGFncyA9IGN1cnJlbnRQcmltYXJ5Q2hpbGRGcmFnbWVudC5zdWJ0cmVlRmxhZ3MgJiBTdGF0aWNNYXNrO1xuICB9XG5cbiAgdmFyIGZhbGxiYWNrQ2hpbGRGcmFnbWVudDtcblxuICBpZiAoY3VycmVudEZhbGxiYWNrQ2hpbGRGcmFnbWVudCAhPT0gbnVsbCkge1xuICAgIGZhbGxiYWNrQ2hpbGRGcmFnbWVudCA9IGNyZWF0ZVdvcmtJblByb2dyZXNzKGN1cnJlbnRGYWxsYmFja0NoaWxkRnJhZ21lbnQsIGZhbGxiYWNrQ2hpbGRyZW4pO1xuICB9IGVsc2Uge1xuICAgIGZhbGxiYWNrQ2hpbGRGcmFnbWVudCA9IGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KGZhbGxiYWNrQ2hpbGRyZW4sIG1vZGUsIHJlbmRlckxhbmVzLCBudWxsKTsgLy8gTmVlZHMgYSBwbGFjZW1lbnQgZWZmZWN0IGJlY2F1c2UgdGhlIHBhcmVudCAodGhlIFN1c3BlbnNlIGJvdW5kYXJ5KSBhbHJlYWR5XG4gICAgLy8gbW91bnRlZCBidXQgdGhpcyBpcyBhIG5ldyBmaWJlci5cblxuICAgIGZhbGxiYWNrQ2hpbGRGcmFnbWVudC5mbGFncyB8PSBQbGFjZW1lbnQ7XG4gIH1cblxuICBmYWxsYmFja0NoaWxkRnJhZ21lbnQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7XG4gIHByaW1hcnlDaGlsZEZyYWdtZW50LnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5zaWJsaW5nID0gZmFsbGJhY2tDaGlsZEZyYWdtZW50O1xuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHByaW1hcnlDaGlsZEZyYWdtZW50O1xuICByZXR1cm4gZmFsbGJhY2tDaGlsZEZyYWdtZW50O1xufVxuXG5mdW5jdGlvbiByZXRyeVN1c3BlbnNlQ29tcG9uZW50V2l0aG91dEh5ZHJhdGluZyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMsIHJlY292ZXJhYmxlRXJyb3IpIHtcbiAgLy8gRmFsbGluZyBiYWNrIHRvIGNsaWVudCByZW5kZXJpbmcuIEJlY2F1c2UgdGhpcyBoYXMgcGVyZm9ybWFuY2VcbiAgLy8gaW1wbGljYXRpb25zLCBpdCdzIGNvbnNpZGVyZWQgYSByZWNvdmVyYWJsZSBlcnJvciwgZXZlbiB0aG91Z2ggdGhlIHVzZXJcbiAgLy8gbGlrZWx5IHdvbid0IG9ic2VydmUgYW55dGhpbmcgd3Jvbmcgd2l0aCB0aGUgVUkuXG4gIC8vXG4gIC8vIFRoZSBlcnJvciBpcyBwYXNzZWQgaW4gYXMgYW4gYXJndW1lbnQgdG8gZW5mb3JjZSB0aGF0IGV2ZXJ5IGNhbGxlciBwcm92aWRlXG4gIC8vIGEgY3VzdG9tIG1lc3NhZ2UsIG9yIGV4cGxpY2l0bHkgb3B0IG91dCAoY3VycmVudGx5IHRoZSBvbmx5IHBhdGggdGhhdCBvcHRzXG4gIC8vIG91dCBpcyBsZWdhY3kgbW9kZTsgZXZlcnkgY29uY3VycmVudCBwYXRoIHByb3ZpZGVzIGFuIGVycm9yKS5cbiAgaWYgKHJlY292ZXJhYmxlRXJyb3IgIT09IG51bGwpIHtcbiAgICBxdWV1ZUh5ZHJhdGlvbkVycm9yKHJlY292ZXJhYmxlRXJyb3IpO1xuICB9IC8vIFRoaXMgd2lsbCBhZGQgdGhlIG9sZCBmaWJlciB0byB0aGUgZGVsZXRpb24gbGlzdFxuXG5cbiAgcmVjb25jaWxlQ2hpbGRGaWJlcnMod29ya0luUHJvZ3Jlc3MsIGN1cnJlbnQuY2hpbGQsIG51bGwsIHJlbmRlckxhbmVzKTsgLy8gV2UncmUgbm93IG5vdCBzdXNwZW5kZWQgbm9yIGRlaHlkcmF0ZWQuXG5cbiAgdmFyIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIHByaW1hcnlDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcbiAgdmFyIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gbW91bnRTdXNwZW5zZVByaW1hcnlDaGlsZHJlbih3b3JrSW5Qcm9ncmVzcywgcHJpbWFyeUNoaWxkcmVuKTsgLy8gTmVlZHMgYSBwbGFjZW1lbnQgZWZmZWN0IGJlY2F1c2UgdGhlIHBhcmVudCAodGhlIFN1c3BlbnNlIGJvdW5kYXJ5KSBhbHJlYWR5XG4gIC8vIG1vdW50ZWQgYnV0IHRoaXMgaXMgYSBuZXcgZmliZXIuXG5cbiAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuZmxhZ3MgfD0gUGxhY2VtZW50O1xuICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgcmV0dXJuIHByaW1hcnlDaGlsZEZyYWdtZW50O1xufVxuXG5mdW5jdGlvbiBtb3VudFN1c3BlbnNlRmFsbGJhY2tBZnRlclJldHJ5V2l0aG91dEh5ZHJhdGluZyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcHJpbWFyeUNoaWxkcmVuLCBmYWxsYmFja0NoaWxkcmVuLCByZW5kZXJMYW5lcykge1xuICB2YXIgZmliZXJNb2RlID0gd29ya0luUHJvZ3Jlc3MubW9kZTtcbiAgdmFyIHByaW1hcnlDaGlsZFByb3BzID0ge1xuICAgIG1vZGU6ICd2aXNpYmxlJyxcbiAgICBjaGlsZHJlbjogcHJpbWFyeUNoaWxkcmVuXG4gIH07XG4gIHZhciBwcmltYXJ5Q2hpbGRGcmFnbWVudCA9IG1vdW50V29ya0luUHJvZ3Jlc3NPZmZzY3JlZW5GaWJlcihwcmltYXJ5Q2hpbGRQcm9wcywgZmliZXJNb2RlKTtcbiAgdmFyIGZhbGxiYWNrQ2hpbGRGcmFnbWVudCA9IGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KGZhbGxiYWNrQ2hpbGRyZW4sIGZpYmVyTW9kZSwgcmVuZGVyTGFuZXMsIG51bGwpOyAvLyBOZWVkcyBhIHBsYWNlbWVudCBlZmZlY3QgYmVjYXVzZSB0aGUgcGFyZW50ICh0aGUgU3VzcGVuc2VcbiAgLy8gYm91bmRhcnkpIGFscmVhZHkgbW91bnRlZCBidXQgdGhpcyBpcyBhIG5ldyBmaWJlci5cblxuICBmYWxsYmFja0NoaWxkRnJhZ21lbnQuZmxhZ3MgfD0gUGxhY2VtZW50O1xuICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgZmFsbGJhY2tDaGlsZEZyYWdtZW50LnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5zaWJsaW5nID0gZmFsbGJhY2tDaGlsZEZyYWdtZW50O1xuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHByaW1hcnlDaGlsZEZyYWdtZW50O1xuXG4gIGlmICgod29ya0luUHJvZ3Jlc3MubW9kZSAmIENvbmN1cnJlbnRNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgLy8gV2Ugd2lsbCBoYXZlIGRyb3BwZWQgdGhlIGVmZmVjdCBsaXN0IHdoaWNoIGNvbnRhaW5zIHRoZVxuICAgIC8vIGRlbGV0aW9uLiBXZSBuZWVkIHRvIHJlY29uY2lsZSB0byBkZWxldGUgdGhlIGN1cnJlbnQgY2hpbGQuXG4gICAgcmVjb25jaWxlQ2hpbGRGaWJlcnMod29ya0luUHJvZ3Jlc3MsIGN1cnJlbnQuY2hpbGQsIG51bGwsIHJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIHJldHVybiBmYWxsYmFja0NoaWxkRnJhZ21lbnQ7XG59XG5cbmZ1bmN0aW9uIG1vdW50RGVoeWRyYXRlZFN1c3BlbnNlQ29tcG9uZW50KHdvcmtJblByb2dyZXNzLCBzdXNwZW5zZUluc3RhbmNlLCByZW5kZXJMYW5lcykge1xuICAvLyBEdXJpbmcgdGhlIGZpcnN0IHBhc3MsIHdlJ2xsIGJhaWwgb3V0IGFuZCBub3QgZHJpbGwgaW50byB0aGUgY2hpbGRyZW4uXG4gIC8vIEluc3RlYWQsIHdlJ2xsIGxlYXZlIHRoZSBjb250ZW50IGluIHBsYWNlIGFuZCB0cnkgdG8gaHlkcmF0ZSBpdCBsYXRlci5cbiAgaWYgKCh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgQ29uY3VycmVudE1vZGUpID09PSBOb01vZGUpIHtcbiAgICB7XG4gICAgICBlcnJvcignQ2Fubm90IGh5ZHJhdGUgU3VzcGVuc2UgaW4gbGVnYWN5IG1vZGUuIFN3aXRjaCBmcm9tICcgKyAnUmVhY3RET00uaHlkcmF0ZShlbGVtZW50LCBjb250YWluZXIpIHRvICcgKyAnUmVhY3RET01DbGllbnQuaHlkcmF0ZVJvb3QoY29udGFpbmVyLCA8QXBwIC8+KScgKyAnLnJlbmRlcihlbGVtZW50KSBvciByZW1vdmUgdGhlIFN1c3BlbnNlIGNvbXBvbmVudHMgZnJvbSAnICsgJ3RoZSBzZXJ2ZXIgcmVuZGVyZWQgY29tcG9uZW50cy4nKTtcbiAgICB9XG5cbiAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IGxhbmVUb0xhbmVzKFN5bmNMYW5lKTtcbiAgfSBlbHNlIGlmIChpc1N1c3BlbnNlSW5zdGFuY2VGYWxsYmFjayhzdXNwZW5zZUluc3RhbmNlKSkge1xuICAgIC8vIFRoaXMgaXMgYSBjbGllbnQtb25seSBib3VuZGFyeS4gU2luY2Ugd2Ugd29uJ3QgZ2V0IGFueSBjb250ZW50IGZyb20gdGhlIHNlcnZlclxuICAgIC8vIGZvciB0aGlzLCB3ZSBuZWVkIHRvIHNjaGVkdWxlIHRoYXQgYXQgYSBoaWdoZXIgcHJpb3JpdHkgYmFzZWQgb24gd2hlbiBpdCB3b3VsZFxuICAgIC8vIGhhdmUgdGltZWQgb3V0LiBJbiB0aGVvcnkgd2UgY291bGQgcmVuZGVyIGl0IGluIHRoaXMgcGFzcyBidXQgaXQgd291bGQgaGF2ZSB0aGVcbiAgICAvLyB3cm9uZyBwcmlvcml0eSBhc3NvY2lhdGVkIHdpdGggaXQgYW5kIHdpbGwgcHJldmVudCBoeWRyYXRpb24gb2YgcGFyZW50IHBhdGguXG4gICAgLy8gSW5zdGVhZCwgd2UnbGwgbGVhdmUgd29yayBsZWZ0IG9uIGl0IHRvIHJlbmRlciBpdCBpbiBhIHNlcGFyYXRlIGNvbW1pdC5cbiAgICAvLyBUT0RPIFRoaXMgdGltZSBzaG91bGQgYmUgdGhlIHRpbWUgYXQgd2hpY2ggdGhlIHNlcnZlciByZW5kZXJlZCByZXNwb25zZSB0aGF0IGlzXG4gICAgLy8gYSBwYXJlbnQgdG8gdGhpcyBib3VuZGFyeSB3YXMgZGlzcGxheWVkLiBIb3dldmVyLCBzaW5jZSB3ZSBjdXJyZW50bHkgZG9uJ3QgaGF2ZVxuICAgIC8vIGEgcHJvdG9jb2wgdG8gdHJhbnNmZXIgdGhhdCB0aW1lLCB3ZSdsbCBqdXN0IGVzdGltYXRlIGl0IGJ5IHVzaW5nIHRoZSBjdXJyZW50XG4gICAgLy8gdGltZS4gVGhpcyB3aWxsIG1lYW4gdGhhdCBTdXNwZW5zZSB0aW1lb3V0cyBhcmUgc2xpZ2h0bHkgc2hpZnRlZCB0byBsYXRlciB0aGFuXG4gICAgLy8gdGhleSBzaG91bGQgYmUuXG4gICAgLy8gU2NoZWR1bGUgYSBub3JtYWwgcHJpIHVwZGF0ZSB0byByZW5kZXIgdGhpcyBjb250ZW50LlxuICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gbGFuZVRvTGFuZXMoRGVmYXVsdEh5ZHJhdGlvbkxhbmUpO1xuICB9IGVsc2Uge1xuICAgIC8vIFdlJ2xsIGNvbnRpbnVlIGh5ZHJhdGluZyB0aGUgcmVzdCBhdCBvZmZzY3JlZW4gcHJpb3JpdHkgc2luY2Ugd2UnbGwgYWxyZWFkeVxuICAgIC8vIGJlIHNob3dpbmcgdGhlIHJpZ2h0IGNvbnRlbnQgY29taW5nIGZyb20gdGhlIHNlcnZlciwgaXQgaXMgbm8gcnVzaC5cbiAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IGxhbmVUb0xhbmVzKE9mZnNjcmVlbkxhbmUpO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZURlaHlkcmF0ZWRTdXNwZW5zZUNvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgc3VzcGVuc2VJbnN0YW5jZSwgc3VzcGVuc2VTdGF0ZSwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gV2Ugc2hvdWxkIG5ldmVyIGJlIGh5ZHJhdGluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgaXMgdGhlIGZpcnN0IHBhc3MsXG4gIC8vIGJ1dCBhZnRlciB3ZSd2ZSBhbHJlYWR5IGNvbW1pdHRlZCBvbmNlLlxuICB3YXJuSWZIeWRyYXRpbmcoKTtcblxuICBpZiAoKHdvcmtJblByb2dyZXNzLm1vZGUgJiBDb25jdXJyZW50TW9kZSkgPT09IE5vTW9kZSkge1xuICAgIHJldHVybiByZXRyeVN1c3BlbnNlQ29tcG9uZW50V2l0aG91dEh5ZHJhdGluZyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMsIC8vIFRPRE86IFdoZW4gd2UgZGVsZXRlIGxlZ2FjeSBtb2RlLCB3ZSBzaG91bGQgbWFrZSB0aGlzIGVycm9yIGFyZ3VtZW50XG4gICAgLy8gcmVxdWlyZWQgXHUyMDE0IGV2ZXJ5IGNvbmN1cnJlbnQgbW9kZSBwYXRoIHRoYXQgY2F1c2VzIGh5ZHJhdGlvbiB0b1xuICAgIC8vIGRlLW9wdCB0byBjbGllbnQgcmVuZGVyaW5nIHNob3VsZCBoYXZlIGFuIGVycm9yIG1lc3NhZ2UuXG4gICAgbnVsbCk7XG4gIH1cblxuICBpZiAoaXNTdXNwZW5zZUluc3RhbmNlRmFsbGJhY2soc3VzcGVuc2VJbnN0YW5jZSkpIHtcbiAgICAvLyBUaGlzIGJvdW5kYXJ5IGlzIGluIGEgcGVybWFuZW50IGZhbGxiYWNrIHN0YXRlLiBJbiB0aGlzIGNhc2UsIHdlJ2xsIG5ldmVyXG4gICAgLy8gZ2V0IGFuIHVwZGF0ZSBhbmQgd2UnbGwgbmV2ZXIgYmUgYWJsZSB0byBoeWRyYXRlIHRoZSBmaW5hbCBjb250ZW50LiBMZXQncyBqdXN0IHRyeSB0aGVcbiAgICAvLyBjbGllbnQgc2lkZSByZW5kZXIgaW5zdGVhZC5cbiAgICByZXR1cm4gcmV0cnlTdXNwZW5zZUNvbXBvbmVudFdpdGhvdXRIeWRyYXRpbmcoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzLCAvLyBUT0RPOiBUaGUgc2VydmVyIHNob3VsZCBzZXJpYWxpemUgdGhlIGVycm9yIG1lc3NhZ2Ugc28gd2UgY2FuIGxvZyBpdFxuICAgIC8vIGhlcmUgb24gdGhlIGNsaWVudC4gT3IsIGluIHByb2R1Y3Rpb24sIGEgaGFzaC9pZCB0aGF0IGNvcnJlc3BvbmRzIHRvXG4gICAgLy8gdGhlIGVycm9yLlxuICAgIG5ldyBFcnJvcignVGhlIHNlcnZlciBjb3VsZCBub3QgZmluaXNoIHRoaXMgU3VzcGVuc2UgYm91bmRhcnksIGxpa2VseSAnICsgJ2R1ZSB0byBhbiBlcnJvciBkdXJpbmcgc2VydmVyIHJlbmRlcmluZy4gU3dpdGNoZWQgdG8gJyArICdjbGllbnQgcmVuZGVyaW5nLicpKTtcbiAgfVxuICAvLyBhbnkgY29udGV4dCBoYXMgY2hhbmdlZCwgd2UgbmVlZCB0byB0cmVhdCBpcyBhcyBpZiB0aGUgaW5wdXQgbWlnaHQgaGF2ZSBjaGFuZ2VkLlxuXG5cbiAgdmFyIGhhc0NvbnRleHRDaGFuZ2VkID0gaW5jbHVkZXNTb21lTGFuZShyZW5kZXJMYW5lcywgY3VycmVudC5jaGlsZExhbmVzKTtcblxuICBpZiAoZGlkUmVjZWl2ZVVwZGF0ZSB8fCBoYXNDb250ZXh0Q2hhbmdlZCkge1xuICAgIC8vIFRoaXMgYm91bmRhcnkgaGFzIGNoYW5nZWQgc2luY2UgdGhlIGZpcnN0IHJlbmRlci4gVGhpcyBtZWFucyB0aGF0IHdlIGFyZSBub3cgdW5hYmxlIHRvXG4gICAgLy8gaHlkcmF0ZSBpdC4gV2UgbWlnaHQgc3RpbGwgYmUgYWJsZSB0byBoeWRyYXRlIGl0IHVzaW5nIGEgaGlnaGVyIHByaW9yaXR5IGxhbmUuXG4gICAgdmFyIHJvb3QgPSBnZXRXb3JrSW5Qcm9ncmVzc1Jvb3QoKTtcblxuICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICB2YXIgYXR0ZW1wdEh5ZHJhdGlvbkF0TGFuZSA9IGdldEJ1bXBlZExhbmVGb3JIeWRyYXRpb24ocm9vdCwgcmVuZGVyTGFuZXMpO1xuXG4gICAgICBpZiAoYXR0ZW1wdEh5ZHJhdGlvbkF0TGFuZSAhPT0gTm9MYW5lICYmIGF0dGVtcHRIeWRyYXRpb25BdExhbmUgIT09IHN1c3BlbnNlU3RhdGUucmV0cnlMYW5lKSB7XG4gICAgICAgIC8vIEludGVudGlvbmFsbHkgbXV0YXRpbmcgc2luY2UgdGhpcyByZW5kZXIgd2lsbCBnZXQgaW50ZXJydXB0ZWQuIFRoaXNcbiAgICAgICAgLy8gaXMgb25lIG9mIHRoZSB2ZXJ5IHJhcmUgdGltZXMgd2hlcmUgd2UgbXV0YXRlIHRoZSBjdXJyZW50IHRyZWVcbiAgICAgICAgLy8gZHVyaW5nIHRoZSByZW5kZXIgcGhhc2UuXG4gICAgICAgIHN1c3BlbnNlU3RhdGUucmV0cnlMYW5lID0gYXR0ZW1wdEh5ZHJhdGlvbkF0TGFuZTsgLy8gVE9ETzogSWRlYWxseSB0aGlzIHdvdWxkIGluaGVyaXQgdGhlIGV2ZW50IHRpbWUgb2YgdGhlIGN1cnJlbnQgcmVuZGVyXG5cbiAgICAgICAgdmFyIGV2ZW50VGltZSA9IE5vVGltZXN0YW1wO1xuICAgICAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoY3VycmVudCwgYXR0ZW1wdEh5ZHJhdGlvbkF0TGFuZSwgZXZlbnRUaW1lKTtcbiAgICAgIH1cbiAgICB9IC8vIElmIHdlIGhhdmUgc2NoZWR1bGVkIGhpZ2hlciBwcmkgd29yayBhYm92ZSwgdGhpcyB3aWxsIHByb2JhYmx5IGp1c3QgYWJvcnQgdGhlIHJlbmRlclxuICAgIC8vIHNpbmNlIHdlIG5vdyBoYXZlIGhpZ2hlciBwcmlvcml0eSB3b3JrLCBidXQgaW4gY2FzZSBpdCBkb2Vzbid0LCB3ZSBuZWVkIHRvIHByZXBhcmUgdG9cbiAgICAvLyByZW5kZXIgc29tZXRoaW5nLCBpZiB3ZSB0aW1lIG91dC4gRXZlbiBpZiB0aGF0IHJlcXVpcmVzIHVzIHRvIGRlbGV0ZSBldmVyeXRoaW5nIGFuZFxuICAgIC8vIHNraXAgaHlkcmF0aW9uLlxuICAgIC8vIERlbGF5IGhhdmluZyB0byBkbyB0aGlzIGFzIGxvbmcgYXMgdGhlIHN1c3BlbnNlIHRpbWVvdXQgYWxsb3dzIHVzLlxuXG5cbiAgICByZW5kZXJEaWRTdXNwZW5kRGVsYXlJZlBvc3NpYmxlKCk7XG4gICAgcmV0dXJuIHJldHJ5U3VzcGVuc2VDb21wb25lbnRXaXRob3V0SHlkcmF0aW5nKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcywgbmV3IEVycm9yKCdUaGlzIFN1c3BlbnNlIGJvdW5kYXJ5IHJlY2VpdmVkIGFuIHVwZGF0ZSBiZWZvcmUgaXQgZmluaXNoZWQgJyArICdoeWRyYXRpbmcuIFRoaXMgY2F1c2VkIHRoZSBib3VuZGFyeSB0byBzd2l0Y2ggdG8gY2xpZW50IHJlbmRlcmluZy4gJyArICdUaGUgdXN1YWwgd2F5IHRvIGZpeCB0aGlzIGlzIHRvIHdyYXAgdGhlIG9yaWdpbmFsIHVwZGF0ZSAnICsgJ2luIHN0YXJ0VHJhbnNpdGlvbi4nKSk7XG4gIH0gZWxzZSBpZiAoaXNTdXNwZW5zZUluc3RhbmNlUGVuZGluZyhzdXNwZW5zZUluc3RhbmNlKSkge1xuICAgIC8vIFRoaXMgY29tcG9uZW50IGlzIHN0aWxsIHBlbmRpbmcgbW9yZSBkYXRhIGZyb20gdGhlIHNlcnZlciwgc28gd2UgY2FuJ3QgaHlkcmF0ZSBpdHNcbiAgICAvLyBjb250ZW50LiBXZSB0cmVhdCBpdCBhcyBpZiB0aGlzIGNvbXBvbmVudCBzdXNwZW5kZWQgaXRzZWxmLiBJdCBtaWdodCBzZWVtIGFzIGlmXG4gICAgLy8gd2UgY291bGQganVzdCB0cnkgdG8gcmVuZGVyIGl0IGNsaWVudC1zaWRlIGluc3RlYWQuIEhvd2V2ZXIsIHRoaXMgd2lsbCBwZXJmb3JtIGFcbiAgICAvLyBsb3Qgb2YgdW5uZWNlc3Nhcnkgd29yayBhbmQgaXMgdW5saWtlbHkgdG8gY29tcGxldGUgc2luY2UgaXQgb2Z0ZW4gd2lsbCBzdXNwZW5kXG4gICAgLy8gb24gbWlzc2luZyBkYXRhIGFueXdheS4gQWRkaXRpb25hbGx5LCB0aGUgc2VydmVyIG1pZ2h0IGJlIGFibGUgdG8gcmVuZGVyIG1vcmVcbiAgICAvLyB0aGFuIHdlIGNhbiBvbiB0aGUgY2xpZW50IHlldC4gSW4gdGhhdCBjYXNlIHdlJ2QgZW5kIHVwIHdpdGggbW9yZSBmYWxsYmFjayBzdGF0ZXNcbiAgICAvLyBvbiB0aGUgY2xpZW50IHRoYW4gaWYgd2UganVzdCBsZWF2ZSBpdCBhbG9uZS4gSWYgdGhlIHNlcnZlciB0aW1lcyBvdXQgb3IgZXJyb3JzXG4gICAgLy8gdGhlc2Ugc2hvdWxkIHVwZGF0ZSB0aGlzIGJvdW5kYXJ5IHRvIHRoZSBwZXJtYW5lbnQgRmFsbGJhY2sgc3RhdGUgaW5zdGVhZC5cbiAgICAvLyBNYXJrIGl0IGFzIGhhdmluZyBjYXB0dXJlZCAoaS5lLiBzdXNwZW5kZWQpLlxuICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IERpZENhcHR1cmU7IC8vIExlYXZlIHRoZSBjaGlsZCBpbiBwbGFjZS4gSS5lLiB0aGUgZGVoeWRyYXRlZCBmcmFnbWVudC5cblxuICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gY3VycmVudC5jaGlsZDsgLy8gUmVnaXN0ZXIgYSBjYWxsYmFjayB0byByZXRyeSB0aGlzIGJvdW5kYXJ5IG9uY2UgdGhlIHNlcnZlciBoYXMgc2VudCB0aGUgcmVzdWx0LlxuXG4gICAgdmFyIHJldHJ5ID0gcmV0cnlEZWh5ZHJhdGVkU3VzcGVuc2VCb3VuZGFyeS5iaW5kKG51bGwsIGN1cnJlbnQpO1xuICAgIHJlZ2lzdGVyU3VzcGVuc2VJbnN0YW5jZVJldHJ5KHN1c3BlbnNlSW5zdGFuY2UsIHJldHJ5KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIHtcbiAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCBhdHRlbXB0LlxuICAgIHJlZW50ZXJIeWRyYXRpb25TdGF0ZUZyb21EZWh5ZHJhdGVkU3VzcGVuc2VJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgc3VzcGVuc2VJbnN0YW5jZSwgc3VzcGVuc2VTdGF0ZS50cmVlQ29udGV4dCk7XG4gICAgdmFyIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgICB2YXIgcHJpbWFyeUNoaWxkcmVuID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuICAgIHZhciBwcmltYXJ5Q2hpbGRGcmFnbWVudCA9IG1vdW50U3VzcGVuc2VQcmltYXJ5Q2hpbGRyZW4od29ya0luUHJvZ3Jlc3MsIHByaW1hcnlDaGlsZHJlbik7IC8vIE1hcmsgdGhlIGNoaWxkcmVuIGFzIGh5ZHJhdGluZy4gVGhpcyBpcyBhIGZhc3QgcGF0aCB0byBrbm93IHdoZXRoZXIgdGhpc1xuICAgIC8vIHRyZWUgaXMgcGFydCBvZiBhIGh5ZHJhdGluZyB0cmVlLiBUaGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGEgY2hpbGRcbiAgICAvLyBub2RlIGhhcyBmdWxseSBtb3VudGVkIHlldCwgYW5kIGZvciBzY2hlZHVsaW5nIGV2ZW50IHJlcGxheWluZy5cbiAgICAvLyBDb25jZXB0dWFsbHkgdGhpcyBpcyBzaW1pbGFyIHRvIFBsYWNlbWVudCBpbiB0aGF0IGEgbmV3IHN1YnRyZWUgaXNcbiAgICAvLyBpbnNlcnRlZCBpbnRvIHRoZSBSZWFjdCB0cmVlIGhlcmUuIEl0IGp1c3QgaGFwcGVucyB0byBub3QgbmVlZCBET01cbiAgICAvLyBtdXRhdGlvbnMgYmVjYXVzZSBpdCBhbHJlYWR5IGV4aXN0cy5cblxuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LmZsYWdzIHw9IEh5ZHJhdGluZztcbiAgICByZXR1cm4gcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2NoZWR1bGVTdXNwZW5zZVdvcmtPbkZpYmVyKGZpYmVyLCByZW5kZXJMYW5lcywgcHJvcGFnYXRpb25Sb290KSB7XG4gIGZpYmVyLmxhbmVzID0gbWVyZ2VMYW5lcyhmaWJlci5sYW5lcywgcmVuZGVyTGFuZXMpO1xuICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuXG4gIGlmIChhbHRlcm5hdGUgIT09IG51bGwpIHtcbiAgICBhbHRlcm5hdGUubGFuZXMgPSBtZXJnZUxhbmVzKGFsdGVybmF0ZS5sYW5lcywgcmVuZGVyTGFuZXMpO1xuICB9XG5cbiAgc2NoZWR1bGVDb250ZXh0V29ya09uUGFyZW50UGF0aChmaWJlci5yZXR1cm4sIHJlbmRlckxhbmVzLCBwcm9wYWdhdGlvblJvb3QpO1xufVxuXG5mdW5jdGlvbiBwcm9wYWdhdGVTdXNwZW5zZUNvbnRleHRDaGFuZ2Uod29ya0luUHJvZ3Jlc3MsIGZpcnN0Q2hpbGQsIHJlbmRlckxhbmVzKSB7XG4gIC8vIE1hcmsgYW55IFN1c3BlbnNlIGJvdW5kYXJpZXMgd2l0aCBmYWxsYmFja3MgYXMgaGF2aW5nIHdvcmsgdG8gZG8uXG4gIC8vIElmIHRoZXkgd2VyZSBwcmV2aW91c2x5IGZvcmNlZCBpbnRvIGZhbGxiYWNrcywgdGhleSBtYXkgbm93IGJlIGFibGVcbiAgLy8gdG8gdW5ibG9jay5cbiAgdmFyIG5vZGUgPSBmaXJzdENoaWxkO1xuXG4gIHdoaWxlIChub2RlICE9PSBudWxsKSB7XG4gICAgaWYgKG5vZGUudGFnID09PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgICAgdmFyIHN0YXRlID0gbm9kZS5tZW1vaXplZFN0YXRlO1xuXG4gICAgICBpZiAoc3RhdGUgIT09IG51bGwpIHtcbiAgICAgICAgc2NoZWR1bGVTdXNwZW5zZVdvcmtPbkZpYmVyKG5vZGUsIHJlbmRlckxhbmVzLCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChub2RlLnRhZyA9PT0gU3VzcGVuc2VMaXN0Q29tcG9uZW50KSB7XG4gICAgICAvLyBJZiB0aGUgdGFpbCBpcyBoaWRkZW4gdGhlcmUgbWlnaHQgbm90IGJlIGFuIFN1c3BlbnNlIGJvdW5kYXJpZXNcbiAgICAgIC8vIHRvIHNjaGVkdWxlIHdvcmsgb24uIEluIHRoaXMgY2FzZSB3ZSBoYXZlIHRvIHNjaGVkdWxlIGl0IG9uIHRoZVxuICAgICAgLy8gbGlzdCBpdHNlbGYuXG4gICAgICAvLyBXZSBkb24ndCBoYXZlIHRvIHRyYXZlcnNlIHRvIHRoZSBjaGlsZHJlbiBvZiB0aGUgbGlzdCBzaW5jZVxuICAgICAgLy8gdGhlIGxpc3Qgd2lsbCBwcm9wYWdhdGUgdGhlIGNoYW5nZSB3aGVuIGl0IHJlcmVuZGVycy5cbiAgICAgIHNjaGVkdWxlU3VzcGVuc2VXb3JrT25GaWJlcihub2RlLCByZW5kZXJMYW5lcywgd29ya0luUHJvZ3Jlc3MpO1xuICAgIH0gZWxzZSBpZiAobm9kZS5jaGlsZCAhPT0gbnVsbCkge1xuICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgbm9kZSA9IG5vZGUuY2hpbGQ7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAobm9kZSA9PT0gd29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3aGlsZSAobm9kZS5zaWJsaW5nID09PSBudWxsKSB7XG4gICAgICBpZiAobm9kZS5yZXR1cm4gPT09IG51bGwgfHwgbm9kZS5yZXR1cm4gPT09IHdvcmtJblByb2dyZXNzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH1cblxuICAgIG5vZGUuc2libGluZy5yZXR1cm4gPSBub2RlLnJldHVybjtcbiAgICBub2RlID0gbm9kZS5zaWJsaW5nO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmRMYXN0Q29udGVudFJvdyhmaXJzdENoaWxkKSB7XG4gIC8vIFRoaXMgaXMgZ29pbmcgdG8gZmluZCB0aGUgbGFzdCByb3cgYW1vbmcgdGhlc2UgY2hpbGRyZW4gdGhhdCBpcyBhbHJlYWR5XG4gIC8vIHNob3dpbmcgY29udGVudCBvbiB0aGUgc2NyZWVuLCBhcyBvcHBvc2VkIHRvIGJlaW5nIGluIGZhbGxiYWNrIHN0YXRlIG9yXG4gIC8vIG5ldy4gSWYgYSByb3cgaGFzIG11bHRpcGxlIFN1c3BlbnNlIGJvdW5kYXJpZXMsIGFueSBvZiB0aGVtIGJlaW5nIGluIHRoZVxuICAvLyBmYWxsYmFjayBzdGF0ZSwgY291bnRzIGFzIHRoZSB3aG9sZSByb3cgYmVpbmcgaW4gYSBmYWxsYmFjayBzdGF0ZS5cbiAgLy8gTm90ZSB0aGF0IHRoZSBcInJvd3NcIiB3aWxsIGJlIHdvcmtJblByb2dyZXNzLCBidXQgYW55IG5lc3RlZCBjaGlsZHJlblxuICAvLyB3aWxsIHN0aWxsIGJlIGN1cnJlbnQgc2luY2Ugd2UgaGF2ZW4ndCByZW5kZXJlZCB0aGVtIHlldC4gVGhlIG1vdW50ZWRcbiAgLy8gb3JkZXIgbWF5IG5vdCBiZSB0aGUgc2FtZSBhcyB0aGUgbmV3IG9yZGVyLiBXZSB1c2UgdGhlIG5ldyBvcmRlci5cbiAgdmFyIHJvdyA9IGZpcnN0Q2hpbGQ7XG4gIHZhciBsYXN0Q29udGVudFJvdyA9IG51bGw7XG5cbiAgd2hpbGUgKHJvdyAhPT0gbnVsbCkge1xuICAgIHZhciBjdXJyZW50Um93ID0gcm93LmFsdGVybmF0ZTsgLy8gTmV3IHJvd3MgY2FuJ3QgYmUgY29udGVudCByb3dzLlxuXG4gICAgaWYgKGN1cnJlbnRSb3cgIT09IG51bGwgJiYgZmluZEZpcnN0U3VzcGVuZGVkKGN1cnJlbnRSb3cpID09PSBudWxsKSB7XG4gICAgICBsYXN0Q29udGVudFJvdyA9IHJvdztcbiAgICB9XG5cbiAgICByb3cgPSByb3cuc2libGluZztcbiAgfVxuXG4gIHJldHVybiBsYXN0Q29udGVudFJvdztcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVSZXZlYWxPcmRlcihyZXZlYWxPcmRlcikge1xuICB7XG4gICAgaWYgKHJldmVhbE9yZGVyICE9PSB1bmRlZmluZWQgJiYgcmV2ZWFsT3JkZXIgIT09ICdmb3J3YXJkcycgJiYgcmV2ZWFsT3JkZXIgIT09ICdiYWNrd2FyZHMnICYmIHJldmVhbE9yZGVyICE9PSAndG9nZXRoZXInICYmICFkaWRXYXJuQWJvdXRSZXZlYWxPcmRlcltyZXZlYWxPcmRlcl0pIHtcbiAgICAgIGRpZFdhcm5BYm91dFJldmVhbE9yZGVyW3JldmVhbE9yZGVyXSA9IHRydWU7XG5cbiAgICAgIGlmICh0eXBlb2YgcmV2ZWFsT3JkZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHN3aXRjaCAocmV2ZWFsT3JkZXIudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgIGNhc2UgJ3RvZ2V0aGVyJzpcbiAgICAgICAgICBjYXNlICdmb3J3YXJkcyc6XG4gICAgICAgICAgY2FzZSAnYmFja3dhcmRzJzpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZXJyb3IoJ1wiJXNcIiBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgcmV2ZWFsT3JkZXIgb24gPFN1c3BlbnNlTGlzdCAvPi4gJyArICdVc2UgbG93ZXJjYXNlIFwiJXNcIiBpbnN0ZWFkLicsIHJldmVhbE9yZGVyLCByZXZlYWxPcmRlci50b0xvd2VyQ2FzZSgpKTtcblxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ2ZvcndhcmQnOlxuICAgICAgICAgIGNhc2UgJ2JhY2t3YXJkJzpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZXJyb3IoJ1wiJXNcIiBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgcmV2ZWFsT3JkZXIgb24gPFN1c3BlbnNlTGlzdCAvPi4gJyArICdSZWFjdCB1c2VzIHRoZSAtcyBzdWZmaXggaW4gdGhlIHNwZWxsaW5nLiBVc2UgXCIlc3NcIiBpbnN0ZWFkLicsIHJldmVhbE9yZGVyLCByZXZlYWxPcmRlci50b0xvd2VyQ2FzZSgpKTtcblxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBlcnJvcignXCIlc1wiIGlzIG5vdCBhIHN1cHBvcnRlZCByZXZlYWxPcmRlciBvbiA8U3VzcGVuc2VMaXN0IC8+LiAnICsgJ0RpZCB5b3UgbWVhbiBcInRvZ2V0aGVyXCIsIFwiZm9yd2FyZHNcIiBvciBcImJhY2t3YXJkc1wiPycsIHJldmVhbE9yZGVyKTtcblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yKCclcyBpcyBub3QgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIHJldmVhbE9yZGVyIG9uIDxTdXNwZW5zZUxpc3QgLz4uICcgKyAnRGlkIHlvdSBtZWFuIFwidG9nZXRoZXJcIiwgXCJmb3J3YXJkc1wiIG9yIFwiYmFja3dhcmRzXCI/JywgcmV2ZWFsT3JkZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVRhaWxPcHRpb25zKHRhaWxNb2RlLCByZXZlYWxPcmRlcikge1xuICB7XG4gICAgaWYgKHRhaWxNb2RlICE9PSB1bmRlZmluZWQgJiYgIWRpZFdhcm5BYm91dFRhaWxPcHRpb25zW3RhaWxNb2RlXSkge1xuICAgICAgaWYgKHRhaWxNb2RlICE9PSAnY29sbGFwc2VkJyAmJiB0YWlsTW9kZSAhPT0gJ2hpZGRlbicpIHtcbiAgICAgICAgZGlkV2FybkFib3V0VGFpbE9wdGlvbnNbdGFpbE1vZGVdID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignXCIlc1wiIGlzIG5vdCBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgdGFpbCBvbiA8U3VzcGVuc2VMaXN0IC8+LiAnICsgJ0RpZCB5b3UgbWVhbiBcImNvbGxhcHNlZFwiIG9yIFwiaGlkZGVuXCI/JywgdGFpbE1vZGUpO1xuICAgICAgfSBlbHNlIGlmIChyZXZlYWxPcmRlciAhPT0gJ2ZvcndhcmRzJyAmJiByZXZlYWxPcmRlciAhPT0gJ2JhY2t3YXJkcycpIHtcbiAgICAgICAgZGlkV2FybkFib3V0VGFpbE9wdGlvbnNbdGFpbE1vZGVdID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignPFN1c3BlbnNlTGlzdCB0YWlsPVwiJXNcIiAvPiBpcyBvbmx5IHZhbGlkIGlmIHJldmVhbE9yZGVyIGlzICcgKyAnXCJmb3J3YXJkc1wiIG9yIFwiYmFja3dhcmRzXCIuICcgKyAnRGlkIHlvdSBtZWFuIHRvIHNwZWNpZnkgcmV2ZWFsT3JkZXI9XCJmb3J3YXJkc1wiPycsIHRhaWxNb2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdXNwZW5zZUxpc3ROZXN0ZWRDaGlsZChjaGlsZFNsb3QsIGluZGV4KSB7XG4gIHtcbiAgICB2YXIgaXNBbkFycmF5ID0gaXNBcnJheShjaGlsZFNsb3QpO1xuICAgIHZhciBpc0l0ZXJhYmxlID0gIWlzQW5BcnJheSAmJiB0eXBlb2YgZ2V0SXRlcmF0b3JGbihjaGlsZFNsb3QpID09PSAnZnVuY3Rpb24nO1xuXG4gICAgaWYgKGlzQW5BcnJheSB8fCBpc0l0ZXJhYmxlKSB7XG4gICAgICB2YXIgdHlwZSA9IGlzQW5BcnJheSA/ICdhcnJheScgOiAnaXRlcmFibGUnO1xuXG4gICAgICBlcnJvcignQSBuZXN0ZWQgJXMgd2FzIHBhc3NlZCB0byByb3cgIyVzIGluIDxTdXNwZW5zZUxpc3QgLz4uIFdyYXAgaXQgaW4gJyArICdhbiBhZGRpdGlvbmFsIFN1c3BlbnNlTGlzdCB0byBjb25maWd1cmUgaXRzIHJldmVhbE9yZGVyOiAnICsgJzxTdXNwZW5zZUxpc3QgcmV2ZWFsT3JkZXI9Li4uPiAuLi4gJyArICc8U3VzcGVuc2VMaXN0IHJldmVhbE9yZGVyPS4uLj57JXN9PC9TdXNwZW5zZUxpc3Q+IC4uLiAnICsgJzwvU3VzcGVuc2VMaXN0PicsIHR5cGUsIGluZGV4LCB0eXBlKTtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN1c3BlbnNlTGlzdENoaWxkcmVuKGNoaWxkcmVuLCByZXZlYWxPcmRlcikge1xuICB7XG4gICAgaWYgKChyZXZlYWxPcmRlciA9PT0gJ2ZvcndhcmRzJyB8fCByZXZlYWxPcmRlciA9PT0gJ2JhY2t3YXJkcycpICYmIGNoaWxkcmVuICE9PSB1bmRlZmluZWQgJiYgY2hpbGRyZW4gIT09IG51bGwgJiYgY2hpbGRyZW4gIT09IGZhbHNlKSB7XG4gICAgICBpZiAoaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmICghdmFsaWRhdGVTdXNwZW5zZUxpc3ROZXN0ZWRDaGlsZChjaGlsZHJlbltpXSwgaSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihjaGlsZHJlbik7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdmFyIGNoaWxkcmVuSXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwoY2hpbGRyZW4pO1xuXG4gICAgICAgICAgaWYgKGNoaWxkcmVuSXRlcmF0b3IpIHtcbiAgICAgICAgICAgIHZhciBzdGVwID0gY2hpbGRyZW5JdGVyYXRvci5uZXh0KCk7XG4gICAgICAgICAgICB2YXIgX2kgPSAwO1xuXG4gICAgICAgICAgICBmb3IgKDsgIXN0ZXAuZG9uZTsgc3RlcCA9IGNoaWxkcmVuSXRlcmF0b3IubmV4dCgpKSB7XG4gICAgICAgICAgICAgIGlmICghdmFsaWRhdGVTdXNwZW5zZUxpc3ROZXN0ZWRDaGlsZChzdGVwLnZhbHVlLCBfaSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBfaSsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlcnJvcignQSBzaW5nbGUgcm93IHdhcyBwYXNzZWQgdG8gYSA8U3VzcGVuc2VMaXN0IHJldmVhbE9yZGVyPVwiJXNcIiAvPi4gJyArICdUaGlzIGlzIG5vdCB1c2VmdWwgc2luY2UgaXQgbmVlZHMgbXVsdGlwbGUgcm93cy4gJyArICdEaWQgeW91IG1lYW4gdG8gcGFzcyBtdWx0aXBsZSBjaGlsZHJlbiBvciBhbiBhcnJheT8nLCByZXZlYWxPcmRlcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdFN1c3BlbnNlTGlzdFJlbmRlclN0YXRlKHdvcmtJblByb2dyZXNzLCBpc0JhY2t3YXJkcywgdGFpbCwgbGFzdENvbnRlbnRSb3csIHRhaWxNb2RlKSB7XG4gIHZhciByZW5kZXJTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKHJlbmRlclN0YXRlID09PSBudWxsKSB7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IHtcbiAgICAgIGlzQmFja3dhcmRzOiBpc0JhY2t3YXJkcyxcbiAgICAgIHJlbmRlcmluZzogbnVsbCxcbiAgICAgIHJlbmRlcmluZ1N0YXJ0VGltZTogMCxcbiAgICAgIGxhc3Q6IGxhc3RDb250ZW50Um93LFxuICAgICAgdGFpbDogdGFpbCxcbiAgICAgIHRhaWxNb2RlOiB0YWlsTW9kZVxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgLy8gV2UgY2FuIHJldXNlIHRoZSBleGlzdGluZyBvYmplY3QgZnJvbSBwcmV2aW91cyByZW5kZXJzLlxuICAgIHJlbmRlclN0YXRlLmlzQmFja3dhcmRzID0gaXNCYWNrd2FyZHM7XG4gICAgcmVuZGVyU3RhdGUucmVuZGVyaW5nID0gbnVsbDtcbiAgICByZW5kZXJTdGF0ZS5yZW5kZXJpbmdTdGFydFRpbWUgPSAwO1xuICAgIHJlbmRlclN0YXRlLmxhc3QgPSBsYXN0Q29udGVudFJvdztcbiAgICByZW5kZXJTdGF0ZS50YWlsID0gdGFpbDtcbiAgICByZW5kZXJTdGF0ZS50YWlsTW9kZSA9IHRhaWxNb2RlO1xuICB9XG59IC8vIFRoaXMgY2FuIGVuZCB1cCByZW5kZXJpbmcgdGhpcyBjb21wb25lbnQgbXVsdGlwbGUgcGFzc2VzLlxuLy8gVGhlIGZpcnN0IHBhc3Mgc3BsaXRzIHRoZSBjaGlsZHJlbiBmaWJlcnMgaW50byB0d28gc2V0cy4gQSBoZWFkIGFuZCB0YWlsLlxuLy8gV2UgZmlyc3QgcmVuZGVyIHRoZSBoZWFkLiBJZiBhbnl0aGluZyBpcyBpbiBmYWxsYmFjayBzdGF0ZSwgd2UgZG8gYW5vdGhlclxuLy8gcGFzcyB0aHJvdWdoIGJlZ2luV29yayB0byByZXJlbmRlciBhbGwgY2hpbGRyZW4gKGluY2x1ZGluZyB0aGUgdGFpbCkgd2l0aFxuLy8gdGhlIGZvcmNlIHN1c3BlbmQgY29udGV4dC4gSWYgdGhlIGZpcnN0IHJlbmRlciBkaWRuJ3QgaGF2ZSBhbnl0aGluZyBpblxuLy8gaW4gZmFsbGJhY2sgc3RhdGUuIFRoZW4gd2UgcmVuZGVyIGVhY2ggcm93IGluIHRoZSB0YWlsIG9uZS1ieS1vbmUuXG4vLyBUaGF0IGhhcHBlbnMgaW4gdGhlIGNvbXBsZXRlV29yayBwaGFzZSB3aXRob3V0IGdvaW5nIGJhY2sgdG8gYmVnaW5Xb3JrLlxuXG5cbmZ1bmN0aW9uIHVwZGF0ZVN1c3BlbnNlTGlzdENvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIHJldmVhbE9yZGVyID0gbmV4dFByb3BzLnJldmVhbE9yZGVyO1xuICB2YXIgdGFpbE1vZGUgPSBuZXh0UHJvcHMudGFpbDtcbiAgdmFyIG5ld0NoaWxkcmVuID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuICB2YWxpZGF0ZVJldmVhbE9yZGVyKHJldmVhbE9yZGVyKTtcbiAgdmFsaWRhdGVUYWlsT3B0aW9ucyh0YWlsTW9kZSwgcmV2ZWFsT3JkZXIpO1xuICB2YWxpZGF0ZVN1c3BlbnNlTGlzdENoaWxkcmVuKG5ld0NoaWxkcmVuLCByZXZlYWxPcmRlcik7XG4gIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXdDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICB2YXIgc3VzcGVuc2VDb250ZXh0ID0gc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50O1xuICB2YXIgc2hvdWxkRm9yY2VGYWxsYmFjayA9IGhhc1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZUNvbnRleHQsIEZvcmNlU3VzcGVuc2VGYWxsYmFjayk7XG5cbiAgaWYgKHNob3VsZEZvcmNlRmFsbGJhY2spIHtcbiAgICBzdXNwZW5zZUNvbnRleHQgPSBzZXRTaGFsbG93U3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlQ29udGV4dCwgRm9yY2VTdXNwZW5zZUZhbGxiYWNrKTtcbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBEaWRDYXB0dXJlO1xuICB9IGVsc2Uge1xuICAgIHZhciBkaWRTdXNwZW5kQmVmb3JlID0gY3VycmVudCAhPT0gbnVsbCAmJiAoY3VycmVudC5mbGFncyAmIERpZENhcHR1cmUpICE9PSBOb0ZsYWdzO1xuXG4gICAgaWYgKGRpZFN1c3BlbmRCZWZvcmUpIHtcbiAgICAgIC8vIElmIHdlIHByZXZpb3VzbHkgZm9yY2VkIGEgZmFsbGJhY2ssIHdlIG5lZWQgdG8gc2NoZWR1bGUgd29ya1xuICAgICAgLy8gb24gYW55IG5lc3RlZCBib3VuZGFyaWVzIHRvIGxldCB0aGVtIGtub3cgdG8gdHJ5IHRvIHJlbmRlclxuICAgICAgLy8gYWdhaW4uIFRoaXMgaXMgdGhlIHNhbWUgYXMgY29udGV4dCB1cGRhdGluZy5cbiAgICAgIHByb3BhZ2F0ZVN1c3BlbnNlQ29udGV4dENoYW5nZSh3b3JrSW5Qcm9ncmVzcywgd29ya0luUHJvZ3Jlc3MuY2hpbGQsIHJlbmRlckxhbmVzKTtcbiAgICB9XG5cbiAgICBzdXNwZW5zZUNvbnRleHQgPSBzZXREZWZhdWx0U2hhbGxvd1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZUNvbnRleHQpO1xuICB9XG5cbiAgcHVzaFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgc3VzcGVuc2VDb250ZXh0KTtcblxuICBpZiAoKHdvcmtJblByb2dyZXNzLm1vZGUgJiBDb25jdXJyZW50TW9kZSkgPT09IE5vTW9kZSkge1xuICAgIC8vIEluIGxlZ2FjeSBtb2RlLCBTdXNwZW5zZUxpc3QgZG9lc24ndCB3b3JrIHNvIHdlIGp1c3RcbiAgICAvLyB1c2UgbWFrZSBpdCBhIG5vb3AgYnkgdHJlYXRpbmcgaXQgYXMgdGhlIGRlZmF1bHQgcmV2ZWFsT3JkZXIuXG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG51bGw7XG4gIH0gZWxzZSB7XG4gICAgc3dpdGNoIChyZXZlYWxPcmRlcikge1xuICAgICAgY2FzZSAnZm9yd2FyZHMnOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIGxhc3RDb250ZW50Um93ID0gZmluZExhc3RDb250ZW50Um93KHdvcmtJblByb2dyZXNzLmNoaWxkKTtcbiAgICAgICAgICB2YXIgdGFpbDtcblxuICAgICAgICAgIGlmIChsYXN0Q29udGVudFJvdyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gVGhlIHdob2xlIGxpc3QgaXMgcGFydCBvZiB0aGUgdGFpbC5cbiAgICAgICAgICAgIC8vIFRPRE86IFdlIGNvdWxkIGZhc3QgcGF0aCBieSBqdXN0IHJlbmRlcmluZyB0aGUgdGFpbCBub3cuXG4gICAgICAgICAgICB0YWlsID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG51bGw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIERpc2Nvbm5lY3QgdGhlIHRhaWwgcm93cyBhZnRlciB0aGUgY29udGVudCByb3cuXG4gICAgICAgICAgICAvLyBXZSdyZSBnb2luZyB0byByZW5kZXIgdGhlbSBzZXBhcmF0ZWx5IGxhdGVyLlxuICAgICAgICAgICAgdGFpbCA9IGxhc3RDb250ZW50Um93LnNpYmxpbmc7XG4gICAgICAgICAgICBsYXN0Q29udGVudFJvdy5zaWJsaW5nID0gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpbml0U3VzcGVuc2VMaXN0UmVuZGVyU3RhdGUod29ya0luUHJvZ3Jlc3MsIGZhbHNlLCAvLyBpc0JhY2t3YXJkc1xuICAgICAgICAgIHRhaWwsIGxhc3RDb250ZW50Um93LCB0YWlsTW9kZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSAnYmFja3dhcmRzJzpcbiAgICAgICAge1xuICAgICAgICAgIC8vIFdlJ3JlIGdvaW5nIHRvIGZpbmQgdGhlIGZpcnN0IHJvdyB0aGF0IGhhcyBleGlzdGluZyBjb250ZW50LlxuICAgICAgICAgIC8vIEF0IHRoZSBzYW1lIHRpbWUgd2UncmUgZ29pbmcgdG8gcmV2ZXJzZSB0aGUgbGlzdCBvZiBldmVyeXRoaW5nXG4gICAgICAgICAgLy8gd2UgcGFzcyBpbiB0aGUgbWVhbnRpbWUuIFRoYXQncyBnb2luZyB0byBiZSBvdXIgdGFpbCBpbiByZXZlcnNlXG4gICAgICAgICAgLy8gb3JkZXIuXG4gICAgICAgICAgdmFyIF90YWlsID0gbnVsbDtcbiAgICAgICAgICB2YXIgcm93ID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBudWxsO1xuXG4gICAgICAgICAgd2hpbGUgKHJvdyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIGN1cnJlbnRSb3cgPSByb3cuYWx0ZXJuYXRlOyAvLyBOZXcgcm93cyBjYW4ndCBiZSBjb250ZW50IHJvd3MuXG5cbiAgICAgICAgICAgIGlmIChjdXJyZW50Um93ICE9PSBudWxsICYmIGZpbmRGaXJzdFN1c3BlbmRlZChjdXJyZW50Um93KSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG1haW4gY29udGVudC5cbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByb3c7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgbmV4dFJvdyA9IHJvdy5zaWJsaW5nO1xuICAgICAgICAgICAgcm93LnNpYmxpbmcgPSBfdGFpbDtcbiAgICAgICAgICAgIF90YWlsID0gcm93O1xuICAgICAgICAgICAgcm93ID0gbmV4dFJvdztcbiAgICAgICAgICB9IC8vIFRPRE86IElmIHdvcmtJblByb2dyZXNzLmNoaWxkIGlzIG51bGwsIHdlIGNhbiBjb250aW51ZSBvbiB0aGUgdGFpbCBpbW1lZGlhdGVseS5cblxuXG4gICAgICAgICAgaW5pdFN1c3BlbnNlTGlzdFJlbmRlclN0YXRlKHdvcmtJblByb2dyZXNzLCB0cnVlLCAvLyBpc0JhY2t3YXJkc1xuICAgICAgICAgIF90YWlsLCBudWxsLCAvLyBsYXN0XG4gICAgICAgICAgdGFpbE1vZGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgJ3RvZ2V0aGVyJzpcbiAgICAgICAge1xuICAgICAgICAgIGluaXRTdXNwZW5zZUxpc3RSZW5kZXJTdGF0ZSh3b3JrSW5Qcm9ncmVzcywgZmFsc2UsIC8vIGlzQmFja3dhcmRzXG4gICAgICAgICAgbnVsbCwgLy8gdGFpbFxuICAgICAgICAgIG51bGwsIC8vIGxhc3RcbiAgICAgICAgICB1bmRlZmluZWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHtcbiAgICAgICAgICAvLyBUaGUgZGVmYXVsdCByZXZlYWwgb3JkZXIgaXMgdGhlIHNhbWUgYXMgbm90IGhhdmluZ1xuICAgICAgICAgIC8vIGEgYm91bmRhcnkuXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVBvcnRhbENvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgcHVzaEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MsIHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTtcbiAgdmFyIG5leHRDaGlsZHJlbiA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcblxuICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgIC8vIFBvcnRhbHMgYXJlIHNwZWNpYWwgYmVjYXVzZSB3ZSBkb24ndCBhcHBlbmQgdGhlIGNoaWxkcmVuIGR1cmluZyBtb3VudFxuICAgIC8vIGJ1dCBhdCBjb21taXQuIFRoZXJlZm9yZSB3ZSBuZWVkIHRvIHRyYWNrIGluc2VydGlvbnMgd2hpY2ggdGhlIG5vcm1hbFxuICAgIC8vIGZsb3cgZG9lc24ndCBkbyBkdXJpbmcgbW91bnQuIFRoaXMgZG9lc24ndCBoYXBwZW4gYXQgdGhlIHJvb3QgYmVjYXVzZVxuICAgIC8vIHRoZSByb290IGFsd2F5cyBzdGFydHMgd2l0aCBhIFwiY3VycmVudFwiIHdpdGggYSBudWxsIGNoaWxkLlxuICAgIC8vIFRPRE86IENvbnNpZGVyIHVuaWZ5aW5nIHRoaXMgd2l0aCBob3cgdGhlIHJvb3Qgd29ya3MuXG4gICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByZWNvbmNpbGVDaGlsZEZpYmVycyh3b3JrSW5Qcm9ncmVzcywgbnVsbCwgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIH0gZWxzZSB7XG4gICAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICB9XG5cbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG52YXIgaGFzV2FybmVkQWJvdXRVc2luZ05vVmFsdWVQcm9wT25Db250ZXh0UHJvdmlkZXIgPSBmYWxzZTtcblxuZnVuY3Rpb24gdXBkYXRlQ29udGV4dFByb3ZpZGVyKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICB2YXIgcHJvdmlkZXJUeXBlID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcbiAgdmFyIGNvbnRleHQgPSBwcm92aWRlclR5cGUuX2NvbnRleHQ7XG4gIHZhciBuZXdQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIG9sZFByb3BzID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcztcbiAgdmFyIG5ld1ZhbHVlID0gbmV3UHJvcHMudmFsdWU7XG5cbiAge1xuICAgIGlmICghKCd2YWx1ZScgaW4gbmV3UHJvcHMpKSB7XG4gICAgICBpZiAoIWhhc1dhcm5lZEFib3V0VXNpbmdOb1ZhbHVlUHJvcE9uQ29udGV4dFByb3ZpZGVyKSB7XG4gICAgICAgIGhhc1dhcm5lZEFib3V0VXNpbmdOb1ZhbHVlUHJvcE9uQ29udGV4dFByb3ZpZGVyID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignVGhlIGB2YWx1ZWAgcHJvcCBpcyByZXF1aXJlZCBmb3IgdGhlIGA8Q29udGV4dC5Qcm92aWRlcj5gLiBEaWQgeW91IG1pc3NwZWxsIGl0IG9yIGZvcmdldCB0byBwYXNzIGl0PycpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBwcm92aWRlclByb3BUeXBlcyA9IHdvcmtJblByb2dyZXNzLnR5cGUucHJvcFR5cGVzO1xuXG4gICAgaWYgKHByb3ZpZGVyUHJvcFR5cGVzKSB7XG4gICAgICBjaGVja1Byb3BUeXBlcyhwcm92aWRlclByb3BUeXBlcywgbmV3UHJvcHMsICdwcm9wJywgJ0NvbnRleHQuUHJvdmlkZXInKTtcbiAgICB9XG4gIH1cblxuICBwdXNoUHJvdmlkZXIod29ya0luUHJvZ3Jlc3MsIGNvbnRleHQsIG5ld1ZhbHVlKTtcblxuICB7XG4gICAgaWYgKG9sZFByb3BzICE9PSBudWxsKSB7XG4gICAgICB2YXIgb2xkVmFsdWUgPSBvbGRQcm9wcy52YWx1ZTtcblxuICAgICAgaWYgKG9iamVjdElzKG9sZFZhbHVlLCBuZXdWYWx1ZSkpIHtcbiAgICAgICAgLy8gTm8gY2hhbmdlLiBCYWlsb3V0IGVhcmx5IGlmIGNoaWxkcmVuIGFyZSB0aGUgc2FtZS5cbiAgICAgICAgaWYgKG9sZFByb3BzLmNoaWxkcmVuID09PSBuZXdQcm9wcy5jaGlsZHJlbiAmJiAhaGFzQ29udGV4dENoYW5nZWQoKSkge1xuICAgICAgICAgIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoZSBjb250ZXh0IHZhbHVlIGNoYW5nZWQuIFNlYXJjaCBmb3IgbWF0Y2hpbmcgY29uc3VtZXJzIGFuZCBzY2hlZHVsZVxuICAgICAgICAvLyB0aGVtIHRvIHVwZGF0ZS5cbiAgICAgICAgcHJvcGFnYXRlQ29udGV4dENoYW5nZSh3b3JrSW5Qcm9ncmVzcywgY29udGV4dCwgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBuZXdDaGlsZHJlbiA9IG5ld1Byb3BzLmNoaWxkcmVuO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV3Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG52YXIgaGFzV2FybmVkQWJvdXRVc2luZ0NvbnRleHRBc0NvbnN1bWVyID0gZmFsc2U7XG5cbmZ1bmN0aW9uIHVwZGF0ZUNvbnRleHRDb25zdW1lcihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIGNvbnRleHQgPSB3b3JrSW5Qcm9ncmVzcy50eXBlOyAvLyBUaGUgbG9naWMgYmVsb3cgZm9yIENvbnRleHQgZGlmZmVycyBkZXBlbmRpbmcgb24gUFJPRCBvciBERVYgbW9kZS4gSW5cbiAgLy8gREVWIG1vZGUsIHdlIGNyZWF0ZSBhIHNlcGFyYXRlIG9iamVjdCBmb3IgQ29udGV4dC5Db25zdW1lciB0aGF0IGFjdHNcbiAgLy8gbGlrZSBhIHByb3h5IHRvIENvbnRleHQuIFRoaXMgcHJveHkgb2JqZWN0IGFkZHMgdW5uZWNlc3NhcnkgY29kZSBpbiBQUk9EXG4gIC8vIHNvIHdlIHVzZSB0aGUgb2xkIGJlaGF2aW91ciAoQ29udGV4dC5Db25zdW1lciByZWZlcmVuY2VzIENvbnRleHQpIHRvXG4gIC8vIHJlZHVjZSBzaXplIGFuZCBvdmVyaGVhZC4gVGhlIHNlcGFyYXRlIG9iamVjdCByZWZlcmVuY2VzIGNvbnRleHQgdmlhXG4gIC8vIGEgcHJvcGVydHkgY2FsbGVkIFwiX2NvbnRleHRcIiwgd2hpY2ggYWxzbyBnaXZlcyB1cyB0aGUgYWJpbGl0eSB0byBjaGVja1xuICAvLyBpbiBERVYgbW9kZSBpZiB0aGlzIHByb3BlcnR5IGV4aXN0cyBvciBub3QgYW5kIHdhcm4gaWYgaXQgZG9lcyBub3QuXG5cbiAge1xuICAgIGlmIChjb250ZXh0Ll9jb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIFRoaXMgbWF5IGJlIGJlY2F1c2UgaXQncyBhIENvbnRleHQgKHJhdGhlciB0aGFuIGEgQ29uc3VtZXIpLlxuICAgICAgLy8gT3IgaXQgbWF5IGJlIGJlY2F1c2UgaXQncyBvbGRlciBSZWFjdCB3aGVyZSB0aGV5J3JlIHRoZSBzYW1lIHRoaW5nLlxuICAgICAgLy8gV2Ugb25seSB3YW50IHRvIHdhcm4gaWYgd2UncmUgc3VyZSBpdCdzIGEgbmV3IFJlYWN0LlxuICAgICAgaWYgKGNvbnRleHQgIT09IGNvbnRleHQuQ29uc3VtZXIpIHtcbiAgICAgICAgaWYgKCFoYXNXYXJuZWRBYm91dFVzaW5nQ29udGV4dEFzQ29uc3VtZXIpIHtcbiAgICAgICAgICBoYXNXYXJuZWRBYm91dFVzaW5nQ29udGV4dEFzQ29uc3VtZXIgPSB0cnVlO1xuXG4gICAgICAgICAgZXJyb3IoJ1JlbmRlcmluZyA8Q29udGV4dD4gZGlyZWN0bHkgaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gRGlkIHlvdSBtZWFuIHRvIHJlbmRlciA8Q29udGV4dC5Db25zdW1lcj4gaW5zdGVhZD8nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dC5fY29udGV4dDtcbiAgICB9XG4gIH1cblxuICB2YXIgbmV3UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciByZW5kZXIgPSBuZXdQcm9wcy5jaGlsZHJlbjtcblxuICB7XG4gICAgaWYgKHR5cGVvZiByZW5kZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCdBIGNvbnRleHQgY29uc3VtZXIgd2FzIHJlbmRlcmVkIHdpdGggbXVsdGlwbGUgY2hpbGRyZW4sIG9yIGEgY2hpbGQgJyArIFwidGhhdCBpc24ndCBhIGZ1bmN0aW9uLiBBIGNvbnRleHQgY29uc3VtZXIgZXhwZWN0cyBhIHNpbmdsZSBjaGlsZCBcIiArICd0aGF0IGlzIGEgZnVuY3Rpb24uIElmIHlvdSBkaWQgcGFzcyBhIGZ1bmN0aW9uLCBtYWtlIHN1cmUgdGhlcmUgJyArICdpcyBubyB0cmFpbGluZyBvciBsZWFkaW5nIHdoaXRlc3BhY2UgYXJvdW5kIGl0LicpO1xuICAgIH1cbiAgfVxuXG4gIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIHZhciBuZXdWYWx1ZSA9IHJlYWRDb250ZXh0KGNvbnRleHQpO1xuXG4gIHtcbiAgICBtYXJrQ29tcG9uZW50UmVuZGVyU3RhcnRlZCh3b3JrSW5Qcm9ncmVzcyk7XG4gIH1cblxuICB2YXIgbmV3Q2hpbGRyZW47XG5cbiAge1xuICAgIFJlYWN0Q3VycmVudE93bmVyJDEuY3VycmVudCA9IHdvcmtJblByb2dyZXNzO1xuICAgIHNldElzUmVuZGVyaW5nKHRydWUpO1xuICAgIG5ld0NoaWxkcmVuID0gcmVuZGVyKG5ld1ZhbHVlKTtcbiAgICBzZXRJc1JlbmRlcmluZyhmYWxzZSk7XG4gIH1cblxuICB7XG4gICAgbWFya0NvbXBvbmVudFJlbmRlclN0b3BwZWQoKTtcbiAgfSAvLyBSZWFjdCBEZXZUb29scyByZWFkcyB0aGlzIGZsYWcuXG5cblxuICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBQZXJmb3JtZWRXb3JrO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV3Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG5mdW5jdGlvbiBtYXJrV29ya0luUHJvZ3Jlc3NSZWNlaXZlZFVwZGF0ZSgpIHtcbiAgZGlkUmVjZWl2ZVVwZGF0ZSA9IHRydWU7XG59XG5cbmZ1bmN0aW9uIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgLy8gUmV1c2UgcHJldmlvdXMgZGVwZW5kZW5jaWVzXG4gICAgd29ya0luUHJvZ3Jlc3MuZGVwZW5kZW5jaWVzID0gY3VycmVudC5kZXBlbmRlbmNpZXM7XG4gIH1cblxuICB7XG4gICAgLy8gRG9uJ3QgdXBkYXRlIFwiYmFzZVwiIHJlbmRlciB0aW1lcyBmb3IgYmFpbG91dHMuXG4gICAgc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmcoKTtcbiAgfVxuXG4gIG1hcmtTa2lwcGVkVXBkYXRlTGFuZXMod29ya0luUHJvZ3Jlc3MubGFuZXMpOyAvLyBDaGVjayBpZiB0aGUgY2hpbGRyZW4gaGF2ZSBhbnkgcGVuZGluZyB3b3JrLlxuXG4gIGlmICghaW5jbHVkZXNTb21lTGFuZShyZW5kZXJMYW5lcywgd29ya0luUHJvZ3Jlc3MuY2hpbGRMYW5lcykpIHtcbiAgICAvLyBUaGUgY2hpbGRyZW4gZG9uJ3QgaGF2ZSBhbnkgd29yayBlaXRoZXIuIFdlIGNhbiBza2lwIHRoZW0uXG4gICAgLy8gVE9ETzogT25jZSB3ZSBhZGQgYmFjayByZXN1bWluZywgd2Ugc2hvdWxkIGNoZWNrIGlmIHRoZSBjaGlsZHJlbiBhcmVcbiAgICAvLyBhIHdvcmstaW4tcHJvZ3Jlc3Mgc2V0LiBJZiBzbywgd2UgbmVlZCB0byB0cmFuc2ZlciB0aGVpciBlZmZlY3RzLlxuICAgIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSAvLyBUaGlzIGZpYmVyIGRvZXNuJ3QgaGF2ZSB3b3JrLCBidXQgaXRzIHN1YnRyZWUgZG9lcy4gQ2xvbmUgdGhlIGNoaWxkXG4gIC8vIGZpYmVycyBhbmQgY29udGludWUuXG5cblxuICBjbG9uZUNoaWxkRmliZXJzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG5mdW5jdGlvbiByZW1vdW50RmliZXIoY3VycmVudCwgb2xkV29ya0luUHJvZ3Jlc3MsIG5ld1dvcmtJblByb2dyZXNzKSB7XG4gIHtcbiAgICB2YXIgcmV0dXJuRmliZXIgPSBvbGRXb3JrSW5Qcm9ncmVzcy5yZXR1cm47XG5cbiAgICBpZiAocmV0dXJuRmliZXIgPT09IG51bGwpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzd2FwIHRoZSByb290IGZpYmVyLicpO1xuICAgIH0gLy8gRGlzY29ubmVjdCBmcm9tIHRoZSBvbGQgY3VycmVudC5cbiAgICAvLyBJdCB3aWxsIGdldCBkZWxldGVkLlxuXG5cbiAgICBjdXJyZW50LmFsdGVybmF0ZSA9IG51bGw7XG4gICAgb2xkV29ya0luUHJvZ3Jlc3MuYWx0ZXJuYXRlID0gbnVsbDsgLy8gQ29ubmVjdCB0byB0aGUgbmV3IHRyZWUuXG5cbiAgICBuZXdXb3JrSW5Qcm9ncmVzcy5pbmRleCA9IG9sZFdvcmtJblByb2dyZXNzLmluZGV4O1xuICAgIG5ld1dvcmtJblByb2dyZXNzLnNpYmxpbmcgPSBvbGRXb3JrSW5Qcm9ncmVzcy5zaWJsaW5nO1xuICAgIG5ld1dvcmtJblByb2dyZXNzLnJldHVybiA9IG9sZFdvcmtJblByb2dyZXNzLnJldHVybjtcbiAgICBuZXdXb3JrSW5Qcm9ncmVzcy5yZWYgPSBvbGRXb3JrSW5Qcm9ncmVzcy5yZWY7IC8vIFJlcGxhY2UgdGhlIGNoaWxkL3NpYmxpbmcgcG9pbnRlcnMgYWJvdmUgaXQuXG5cbiAgICBpZiAob2xkV29ya0luUHJvZ3Jlc3MgPT09IHJldHVybkZpYmVyLmNoaWxkKSB7XG4gICAgICByZXR1cm5GaWJlci5jaGlsZCA9IG5ld1dvcmtJblByb2dyZXNzO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcHJldlNpYmxpbmcgPSByZXR1cm5GaWJlci5jaGlsZDtcblxuICAgICAgaWYgKHByZXZTaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgcGFyZW50IHRvIGhhdmUgYSBjaGlsZC4nKTtcbiAgICAgIH1cblxuICAgICAgd2hpbGUgKHByZXZTaWJsaW5nLnNpYmxpbmcgIT09IG9sZFdvcmtJblByb2dyZXNzKSB7XG4gICAgICAgIHByZXZTaWJsaW5nID0gcHJldlNpYmxpbmcuc2libGluZztcblxuICAgICAgICBpZiAocHJldlNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvcHJvZC1lcnJvci1jb2Rlc1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdG8gZmluZCB0aGUgcHJldmlvdXMgc2libGluZy4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwcmV2U2libGluZy5zaWJsaW5nID0gbmV3V29ya0luUHJvZ3Jlc3M7XG4gICAgfSAvLyBEZWxldGUgdGhlIG9sZCBmaWJlciBhbmQgcGxhY2UgdGhlIG5ldyBvbmUuXG4gICAgLy8gU2luY2UgdGhlIG9sZCBmaWJlciBpcyBkaXNjb25uZWN0ZWQsIHdlIGhhdmUgdG8gc2NoZWR1bGUgaXQgbWFudWFsbHkuXG5cblxuICAgIHZhciBkZWxldGlvbnMgPSByZXR1cm5GaWJlci5kZWxldGlvbnM7XG5cbiAgICBpZiAoZGVsZXRpb25zID09PSBudWxsKSB7XG4gICAgICByZXR1cm5GaWJlci5kZWxldGlvbnMgPSBbY3VycmVudF07XG4gICAgICByZXR1cm5GaWJlci5mbGFncyB8PSBDaGlsZERlbGV0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGlvbnMucHVzaChjdXJyZW50KTtcbiAgICB9XG5cbiAgICBuZXdXb3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBQbGFjZW1lbnQ7IC8vIFJlc3RhcnQgd29yayBmcm9tIHRoZSBuZXcgZmliZXIuXG5cbiAgICByZXR1cm4gbmV3V29ya0luUHJvZ3Jlc3M7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2hlY2tTY2hlZHVsZWRVcGRhdGVPckNvbnRleHQoY3VycmVudCwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gQmVmb3JlIHBlcmZvcm1pbmcgYW4gZWFybHkgYmFpbG91dCwgd2UgbXVzdCBjaGVjayBpZiB0aGVyZSBhcmUgcGVuZGluZ1xuICAvLyB1cGRhdGVzIG9yIGNvbnRleHQuXG4gIHZhciB1cGRhdGVMYW5lcyA9IGN1cnJlbnQubGFuZXM7XG5cbiAgaWYgKGluY2x1ZGVzU29tZUxhbmUodXBkYXRlTGFuZXMsIHJlbmRlckxhbmVzKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIE5vIHBlbmRpbmcgdXBkYXRlLCBidXQgYmVjYXVzZSBjb250ZXh0IGlzIHByb3BhZ2F0ZWQgbGF6aWx5LCB3ZSBuZWVkXG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBhdHRlbXB0RWFybHlCYWlsb3V0SWZOb1NjaGVkdWxlZFVwZGF0ZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgLy8gVGhpcyBmaWJlciBkb2VzIG5vdCBoYXZlIGFueSBwZW5kaW5nIHdvcmsuIEJhaWxvdXQgd2l0aG91dCBlbnRlcmluZ1xuICAvLyB0aGUgYmVnaW4gcGhhc2UuIFRoZXJlJ3Mgc3RpbGwgc29tZSBib29ra2VlcGluZyB3ZSB0aGF0IG5lZWRzIHRvIGJlIGRvbmVcbiAgLy8gaW4gdGhpcyBvcHRpbWl6ZWQgcGF0aCwgbW9zdGx5IHB1c2hpbmcgc3R1ZmYgb250byB0aGUgc3RhY2suXG4gIHN3aXRjaCAod29ya0luUHJvZ3Jlc3MudGFnKSB7XG4gICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgIHB1c2hIb3N0Um9vdENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgdmFyIHJvb3QgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgcHVzaEhvc3RDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIENvbXBvbmVudCA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG5cbiAgICAgICAgaWYgKGlzQ29udGV4dFByb3ZpZGVyKENvbXBvbmVudCkpIHtcbiAgICAgICAgICBwdXNoQ29udGV4dFByb3ZpZGVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0UG9ydGFsOlxuICAgICAgcHVzaEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MsIHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBDb250ZXh0UHJvdmlkZXI6XG4gICAgICB7XG4gICAgICAgIHZhciBuZXdWYWx1ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHMudmFsdWU7XG4gICAgICAgIHZhciBjb250ZXh0ID0gd29ya0luUHJvZ3Jlc3MudHlwZS5fY29udGV4dDtcbiAgICAgICAgcHVzaFByb3ZpZGVyKHdvcmtJblByb2dyZXNzLCBjb250ZXh0LCBuZXdWYWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBQcm9maWxlcjpcbiAgICAgIHtcbiAgICAgICAgLy8gUHJvZmlsZXIgc2hvdWxkIG9ubHkgY2FsbCBvblJlbmRlciB3aGVuIG9uZSBvZiBpdHMgZGVzY2VuZGFudHMgYWN0dWFsbHkgcmVuZGVyZWQuXG4gICAgICAgIHZhciBoYXNDaGlsZFdvcmsgPSBpbmNsdWRlc1NvbWVMYW5lKHJlbmRlckxhbmVzLCB3b3JrSW5Qcm9ncmVzcy5jaGlsZExhbmVzKTtcblxuICAgICAgICBpZiAoaGFzQ2hpbGRXb3JrKSB7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgICAgICB9XG5cbiAgICAgICAge1xuICAgICAgICAgIC8vIFJlc2V0IGVmZmVjdCBkdXJhdGlvbnMgZm9yIHRoZSBuZXh0IGV2ZW50dWFsIGVmZmVjdCBwaGFzZS5cbiAgICAgICAgICAvLyBUaGVzZSBhcmUgcmVzZXQgZHVyaW5nIHJlbmRlciB0byBhbGxvdyB0aGUgRGV2VG9vbHMgY29tbWl0IGhvb2sgYSBjaGFuY2UgdG8gcmVhZCB0aGVtLFxuICAgICAgICAgIHZhciBzdGF0ZU5vZGUgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICAgICAgc3RhdGVOb2RlLmVmZmVjdER1cmF0aW9uID0gMDtcbiAgICAgICAgICBzdGF0ZU5vZGUucGFzc2l2ZUVmZmVjdER1cmF0aW9uID0gMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBzdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgICAgaWYgKHN0YXRlICE9PSBudWxsKSB7XG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKHN0YXRlLmRlaHlkcmF0ZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcHVzaFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgc2V0RGVmYXVsdFNoYWxsb3dTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50KSk7IC8vIFdlIGtub3cgdGhhdCB0aGlzIGNvbXBvbmVudCB3aWxsIHN1c3BlbmQgYWdhaW4gYmVjYXVzZSBpZiBpdCBoYXNcbiAgICAgICAgICAgICAgLy8gYmVlbiB1bnN1c3BlbmRlZCBpdCBoYXMgY29tbWl0dGVkIGFzIGEgcmVzb2x2ZWQgU3VzcGVuc2UgY29tcG9uZW50LlxuICAgICAgICAgICAgICAvLyBJZiBpdCBuZWVkcyB0byBiZSByZXRyaWVkLCBpdCBzaG91bGQgaGF2ZSB3b3JrIHNjaGVkdWxlZCBvbiBpdC5cblxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBEaWRDYXB0dXJlOyAvLyBXZSBzaG91bGQgbmV2ZXIgcmVuZGVyIHRoZSBjaGlsZHJlbiBvZiBhIGRlaHlkcmF0ZWQgYm91bmRhcnkgdW50aWwgd2VcbiAgICAgICAgICAgICAgLy8gdXBncmFkZSBpdC4gV2UgcmV0dXJuIG51bGwgaW5zdGVhZCBvZiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrLlxuXG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gLy8gSWYgdGhpcyBib3VuZGFyeSBpcyBjdXJyZW50bHkgdGltZWQgb3V0LCB3ZSBuZWVkIHRvIGRlY2lkZVxuICAgICAgICAgIC8vIHdoZXRoZXIgdG8gcmV0cnkgdGhlIHByaW1hcnkgY2hpbGRyZW4sIG9yIHRvIHNraXAgb3ZlciBpdCBhbmRcbiAgICAgICAgICAvLyBnbyBzdHJhaWdodCB0byB0aGUgZmFsbGJhY2suIENoZWNrIHRoZSBwcmlvcml0eSBvZiB0aGUgcHJpbWFyeVxuICAgICAgICAgIC8vIGNoaWxkIGZyYWdtZW50LlxuXG5cbiAgICAgICAgICB2YXIgcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgICAgICB2YXIgcHJpbWFyeUNoaWxkTGFuZXMgPSBwcmltYXJ5Q2hpbGRGcmFnbWVudC5jaGlsZExhbmVzO1xuXG4gICAgICAgICAgaWYgKGluY2x1ZGVzU29tZUxhbmUocmVuZGVyTGFuZXMsIHByaW1hcnlDaGlsZExhbmVzKSkge1xuICAgICAgICAgICAgLy8gVGhlIHByaW1hcnkgY2hpbGRyZW4gaGF2ZSBwZW5kaW5nIHdvcmsuIFVzZSB0aGUgbm9ybWFsIHBhdGhcbiAgICAgICAgICAgIC8vIHRvIGF0dGVtcHQgdG8gcmVuZGVyIHRoZSBwcmltYXJ5IGNoaWxkcmVuIGFnYWluLlxuICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVN1c3BlbnNlQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRoZSBwcmltYXJ5IGNoaWxkIGZyYWdtZW50IGRvZXMgbm90IGhhdmUgcGVuZGluZyB3b3JrIG1hcmtlZFxuICAgICAgICAgICAgLy8gb24gaXRcbiAgICAgICAgICAgIHB1c2hTdXNwZW5zZUNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHNldERlZmF1bHRTaGFsbG93U3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudCkpOyAvLyBUaGUgcHJpbWFyeSBjaGlsZHJlbiBkbyBub3QgaGF2ZSBwZW5kaW5nIHdvcmsgd2l0aCBzdWZmaWNpZW50XG4gICAgICAgICAgICAvLyBwcmlvcml0eS4gQmFpbG91dC5cblxuICAgICAgICAgICAgdmFyIGNoaWxkID0gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuXG4gICAgICAgICAgICBpZiAoY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gVGhlIGZhbGxiYWNrIGNoaWxkcmVuIGhhdmUgcGVuZGluZyB3b3JrLiBTa2lwIG92ZXIgdGhlXG4gICAgICAgICAgICAgIC8vIHByaW1hcnkgY2hpbGRyZW4gYW5kIHdvcmsgb24gdGhlIGZhbGxiYWNrLlxuICAgICAgICAgICAgICByZXR1cm4gY2hpbGQuc2libGluZztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIE5vdGU6IFdlIGNhbiByZXR1cm4gYG51bGxgIGhlcmUgYmVjYXVzZSB3ZSBhbHJlYWR5IGNoZWNrZWRcbiAgICAgICAgICAgICAgLy8gd2hldGhlciB0aGVyZSB3ZXJlIG5lc3RlZCBjb250ZXh0IGNvbnN1bWVycywgdmlhIHRoZSBjYWxsIHRvXG4gICAgICAgICAgICAgIC8vIGBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrYCBhYm92ZS5cbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHB1c2hTdXNwZW5zZUNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHNldERlZmF1bHRTaGFsbG93U3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIFN1c3BlbnNlTGlzdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIGRpZFN1c3BlbmRCZWZvcmUgPSAoY3VycmVudC5mbGFncyAmIERpZENhcHR1cmUpICE9PSBOb0ZsYWdzO1xuXG4gICAgICAgIHZhciBfaGFzQ2hpbGRXb3JrID0gaW5jbHVkZXNTb21lTGFuZShyZW5kZXJMYW5lcywgd29ya0luUHJvZ3Jlc3MuY2hpbGRMYW5lcyk7XG5cbiAgICAgICAgaWYgKGRpZFN1c3BlbmRCZWZvcmUpIHtcbiAgICAgICAgICBpZiAoX2hhc0NoaWxkV29yaykge1xuICAgICAgICAgICAgLy8gSWYgc29tZXRoaW5nIHdhcyBpbiBmYWxsYmFjayBzdGF0ZSBsYXN0IHRpbWUsIGFuZCB3ZSBoYXZlIGFsbCB0aGVcbiAgICAgICAgICAgIC8vIHNhbWUgY2hpbGRyZW4gdGhlbiB3ZSdyZSBzdGlsbCBpbiBwcm9ncmVzc2l2ZSBsb2FkaW5nIHN0YXRlLlxuICAgICAgICAgICAgLy8gU29tZXRoaW5nIG1pZ2h0IGdldCB1bmJsb2NrZWQgYnkgc3RhdGUgdXBkYXRlcyBvciByZXRyaWVzIGluIHRoZVxuICAgICAgICAgICAgLy8gdHJlZSB3aGljaCB3aWxsIGFmZmVjdCB0aGUgdGFpbC4gU28gd2UgbmVlZCB0byB1c2UgdGhlIG5vcm1hbFxuICAgICAgICAgICAgLy8gcGF0aCB0byBjb21wdXRlIHRoZSBjb3JyZWN0IHRhaWwuXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlU3VzcGVuc2VMaXN0Q29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgfSAvLyBJZiBub25lIG9mIHRoZSBjaGlsZHJlbiBoYWQgYW55IHdvcmssIHRoYXQgbWVhbnMgdGhhdCBub25lIG9mXG4gICAgICAgICAgLy8gdGhlbSBnb3QgcmV0cmllZCBzbyB0aGV5J2xsIHN0aWxsIGJlIGJsb2NrZWQgaW4gdGhlIHNhbWUgd2F5XG4gICAgICAgICAgLy8gYXMgYmVmb3JlLiBXZSBjYW4gZmFzdCBiYWlsIG91dC5cblxuXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICAgICAgfSAvLyBJZiBub3RoaW5nIHN1c3BlbmRlZCBiZWZvcmUgYW5kIHdlJ3JlIHJlbmRlcmluZyB0aGUgc2FtZSBjaGlsZHJlbixcbiAgICAgICAgLy8gdGhlbiB0aGUgdGFpbCBkb2Vzbid0IG1hdHRlci4gQW55dGhpbmcgbmV3IHRoYXQgc3VzcGVuZHMgd2lsbCB3b3JrXG4gICAgICAgIC8vIGluIHRoZSBcInRvZ2V0aGVyXCIgbW9kZSwgc28gd2UgY2FuIGNvbnRpbnVlIGZyb20gdGhlIHN0YXRlIHdlIGhhZC5cblxuXG4gICAgICAgIHZhciByZW5kZXJTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgICAgaWYgKHJlbmRlclN0YXRlICE9PSBudWxsKSB7XG4gICAgICAgICAgLy8gUmVzZXQgdG8gdGhlIFwidG9nZXRoZXJcIiBtb2RlIGluIGNhc2Ugd2UndmUgc3RhcnRlZCBhIGRpZmZlcmVudFxuICAgICAgICAgIC8vIHVwZGF0ZSBpbiB0aGUgcGFzdCBidXQgZGlkbid0IGNvbXBsZXRlIGl0LlxuICAgICAgICAgIHJlbmRlclN0YXRlLnJlbmRlcmluZyA9IG51bGw7XG4gICAgICAgICAgcmVuZGVyU3RhdGUudGFpbCA9IG51bGw7XG4gICAgICAgICAgcmVuZGVyU3RhdGUubGFzdEVmZmVjdCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBwdXNoU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzLCBzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQpO1xuXG4gICAgICAgIGlmIChfaGFzQ2hpbGRXb3JrKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgY2hpbGRyZW4gaGFkIGFueSB3b3JrLCB0aGF0IG1lYW5zIHRoYXQgbm9uZSBvZlxuICAgICAgICAgIC8vIHRoZW0gZ290IHJldHJpZWQgc28gdGhleSdsbCBzdGlsbCBiZSBibG9ja2VkIGluIHRoZSBzYW1lIHdheVxuICAgICAgICAgIC8vIGFzIGJlZm9yZS4gV2UgY2FuIGZhc3QgYmFpbCBvdXQuXG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIGNhc2UgT2Zmc2NyZWVuQ29tcG9uZW50OlxuICAgIGNhc2UgTGVnYWN5SGlkZGVuQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICAvLyBOZWVkIHRvIGNoZWNrIGlmIHRoZSB0cmVlIHN0aWxsIG5lZWRzIHRvIGJlIGRlZmVycmVkLiBUaGlzIGlzXG4gICAgICAgIC8vIGFsbW9zdCBpZGVudGljYWwgdG8gdGhlIGxvZ2ljIHVzZWQgaW4gdGhlIG5vcm1hbCB1cGRhdGUgcGF0aCxcbiAgICAgICAgLy8gc28gd2UnbGwganVzdCBlbnRlciB0aGF0LiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHdlJ2xsIGJhaWwgb3V0XG4gICAgICAgIC8vIGF0IHRoZSBuZXh0IGxldmVsIGluc3RlYWQgb2YgdGhpcyBvbmUsIGJlY2F1c2UgdGhlIGNoaWxkIHByb3BzXG4gICAgICAgIC8vIGhhdmUgbm90IGNoYW5nZWQuIFdoaWNoIGlzIGZpbmUuXG4gICAgICAgIC8vIFRPRE86IFByb2JhYmx5IHNob3VsZCByZWZhY3RvciBgYmVnaW5Xb3JrYCB0byBzcGxpdCB0aGUgYmFpbG91dFxuICAgICAgICAvLyBwYXRoIGZyb20gdGhlIG5vcm1hbCBwYXRoLiBJJ20gdGVtcHRlZCB0byBkbyBhIGxhYmVsZWQgYnJlYWsgaGVyZVxuICAgICAgICAvLyBidXQgSSB3b24ndCA6KVxuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IE5vTGFuZXM7XG4gICAgICAgIHJldHVybiB1cGRhdGVPZmZzY3JlZW5Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cbiAgfVxuXG4gIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG59XG5cbmZ1bmN0aW9uIGJlZ2luV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAge1xuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5fZGVidWdOZWVkc1JlbW91bnQgJiYgY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgLy8gVGhpcyB3aWxsIHJlc3RhcnQgdGhlIGJlZ2luIHBoYXNlIHdpdGggYSBuZXcgZmliZXIuXG4gICAgICByZXR1cm4gcmVtb3VudEZpYmVyKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBjcmVhdGVGaWJlckZyb21UeXBlQW5kUHJvcHMod29ya0luUHJvZ3Jlc3MudHlwZSwgd29ya0luUHJvZ3Jlc3Mua2V5LCB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMsIHdvcmtJblByb2dyZXNzLl9kZWJ1Z093bmVyIHx8IG51bGwsIHdvcmtJblByb2dyZXNzLm1vZGUsIHdvcmtJblByb2dyZXNzLmxhbmVzKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICB2YXIgb2xkUHJvcHMgPSBjdXJyZW50Lm1lbW9pemVkUHJvcHM7XG4gICAgdmFyIG5ld1Byb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuXG4gICAgaWYgKG9sZFByb3BzICE9PSBuZXdQcm9wcyB8fCBoYXNDb250ZXh0Q2hhbmdlZCgpIHx8ICggLy8gRm9yY2UgYSByZS1yZW5kZXIgaWYgdGhlIGltcGxlbWVudGF0aW9uIGNoYW5nZWQgZHVlIHRvIGhvdCByZWxvYWQ6XG4gICAgIHdvcmtJblByb2dyZXNzLnR5cGUgIT09IGN1cnJlbnQudHlwZSApKSB7XG4gICAgICAvLyBJZiBwcm9wcyBvciBjb250ZXh0IGNoYW5nZWQsIG1hcmsgdGhlIGZpYmVyIGFzIGhhdmluZyBwZXJmb3JtZWQgd29yay5cbiAgICAgIC8vIFRoaXMgbWF5IGJlIHVuc2V0IGlmIHRoZSBwcm9wcyBhcmUgZGV0ZXJtaW5lZCB0byBiZSBlcXVhbCBsYXRlciAobWVtbykuXG4gICAgICBkaWRSZWNlaXZlVXBkYXRlID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTmVpdGhlciBwcm9wcyBub3IgbGVnYWN5IGNvbnRleHQgY2hhbmdlcy4gQ2hlY2sgaWYgdGhlcmUncyBhIHBlbmRpbmdcbiAgICAgIC8vIHVwZGF0ZSBvciBjb250ZXh0IGNoYW5nZS5cbiAgICAgIHZhciBoYXNTY2hlZHVsZWRVcGRhdGVPckNvbnRleHQgPSBjaGVja1NjaGVkdWxlZFVwZGF0ZU9yQ29udGV4dChjdXJyZW50LCByZW5kZXJMYW5lcyk7XG5cbiAgICAgIGlmICghaGFzU2NoZWR1bGVkVXBkYXRlT3JDb250ZXh0ICYmIC8vIElmIHRoaXMgaXMgdGhlIHNlY29uZCBwYXNzIG9mIGFuIGVycm9yIG9yIHN1c3BlbnNlIGJvdW5kYXJ5LCB0aGVyZVxuICAgICAgLy8gbWF5IG5vdCBiZSB3b3JrIHNjaGVkdWxlZCBvbiBgY3VycmVudGAsIHNvIHdlIGNoZWNrIGZvciB0aGlzIGZsYWcuXG4gICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiBEaWRDYXB0dXJlKSA9PT0gTm9GbGFncykge1xuICAgICAgICAvLyBObyBwZW5kaW5nIHVwZGF0ZXMgb3IgY29udGV4dC4gQmFpbCBvdXQgbm93LlxuICAgICAgICBkaWRSZWNlaXZlVXBkYXRlID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBhdHRlbXB0RWFybHlCYWlsb3V0SWZOb1NjaGVkdWxlZFVwZGF0ZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgICBpZiAoKGN1cnJlbnQuZmxhZ3MgJiBGb3JjZVVwZGF0ZUZvckxlZ2FjeVN1c3BlbnNlKSAhPT0gTm9GbGFncykge1xuICAgICAgICAvLyBUaGlzIGlzIGEgc3BlY2lhbCBjYXNlIHRoYXQgb25seSBleGlzdHMgZm9yIGxlZ2FjeSBtb2RlLlxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMTkyMTYuXG4gICAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQW4gdXBkYXRlIHdhcyBzY2hlZHVsZWQgb24gdGhpcyBmaWJlciwgYnV0IHRoZXJlIGFyZSBubyBuZXcgcHJvcHNcbiAgICAgICAgLy8gbm9yIGxlZ2FjeSBjb250ZXh0LiBTZXQgdGhpcyB0byBmYWxzZS4gSWYgYW4gdXBkYXRlIHF1ZXVlIG9yIGNvbnRleHRcbiAgICAgICAgLy8gY29uc3VtZXIgcHJvZHVjZXMgYSBjaGFuZ2VkIHZhbHVlLCBpdCB3aWxsIHNldCB0aGlzIHRvIHRydWUuIE90aGVyd2lzZSxcbiAgICAgICAgLy8gdGhlIGNvbXBvbmVudCB3aWxsIGFzc3VtZSB0aGUgY2hpbGRyZW4gaGF2ZSBub3QgY2hhbmdlZCBhbmQgYmFpbCBvdXQuXG4gICAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZGlkUmVjZWl2ZVVwZGF0ZSA9IGZhbHNlO1xuXG4gICAgaWYgKGdldElzSHlkcmF0aW5nKCkgJiYgaXNGb3JrZWRDaGlsZCh3b3JrSW5Qcm9ncmVzcykpIHtcbiAgICAgIC8vIENoZWNrIGlmIHRoaXMgY2hpbGQgYmVsb25ncyB0byBhIGxpc3Qgb2YgbXVsaXBsZSBjaGlsZHJlbiBpblxuICAgICAgLy8gaXRzIHBhcmVudC5cbiAgICAgIC8vXG4gICAgICAvLyBJbiBhIHRydWUgbXVsdGktdGhyZWFkZWQgaW1wbGVtZW50YXRpb24sIHdlIHdvdWxkIHJlbmRlciBjaGlsZHJlbiBvblxuICAgICAgLy8gcGFyYWxsZWwgdGhyZWFkcy4gVGhpcyB3b3VsZCByZXByZXNlbnQgdGhlIGJlZ2lubmluZyBvZiBhIG5ldyByZW5kZXJcbiAgICAgIC8vIHRocmVhZCBmb3IgdGhpcyBzdWJ0cmVlLlxuICAgICAgLy9cbiAgICAgIC8vIFdlIG9ubHkgdXNlIHRoaXMgZm9yIGlkIGdlbmVyYXRpb24gZHVyaW5nIGh5ZHJhdGlvbiwgd2hpY2ggaXMgd2h5IHRoZVxuICAgICAgLy8gbG9naWMgaXMgbG9jYXRlZCBpbiB0aGlzIHNwZWNpYWwgYnJhbmNoLlxuICAgICAgdmFyIHNsb3RJbmRleCA9IHdvcmtJblByb2dyZXNzLmluZGV4O1xuICAgICAgdmFyIG51bWJlck9mRm9ya3MgPSBnZXRGb3Jrc0F0TGV2ZWwoKTtcbiAgICAgIHB1c2hUcmVlSWQod29ya0luUHJvZ3Jlc3MsIG51bWJlck9mRm9ya3MsIHNsb3RJbmRleCk7XG4gICAgfVxuICB9IC8vIEJlZm9yZSBlbnRlcmluZyB0aGUgYmVnaW4gcGhhc2UsIGNsZWFyIHBlbmRpbmcgdXBkYXRlIHByaW9yaXR5LlxuICAvLyBUT0RPOiBUaGlzIGFzc3VtZXMgdGhhdCB3ZSdyZSBhYm91dCB0byBldmFsdWF0ZSB0aGUgY29tcG9uZW50IGFuZCBwcm9jZXNzXG4gIC8vIHRoZSB1cGRhdGUgcXVldWUuIEhvd2V2ZXIsIHRoZXJlJ3MgYW4gZXhjZXB0aW9uOiBTaW1wbGVNZW1vQ29tcG9uZW50XG4gIC8vIHNvbWV0aW1lcyBiYWlscyBvdXQgbGF0ZXIgaW4gdGhlIGJlZ2luIHBoYXNlLiBUaGlzIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZFxuICAvLyBtb3ZlIHRoaXMgYXNzaWdubWVudCBvdXQgb2YgdGhlIGNvbW1vbiBwYXRoIGFuZCBpbnRvIGVhY2ggYnJhbmNoLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBOb0xhbmVzO1xuXG4gIHN3aXRjaCAod29ya0luUHJvZ3Jlc3MudGFnKSB7XG4gICAgY2FzZSBJbmRldGVybWluYXRlQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICByZXR1cm4gbW91bnRJbmRldGVybWluYXRlQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCB3b3JrSW5Qcm9ncmVzcy50eXBlLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG5cbiAgICBjYXNlIExhenlDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBlbGVtZW50VHlwZSA9IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlO1xuICAgICAgICByZXR1cm4gbW91bnRMYXp5Q29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBlbGVtZW50VHlwZSwgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIENvbXBvbmVudCA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG4gICAgICAgIHZhciB1bnJlc29sdmVkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gICAgICAgIHZhciByZXNvbHZlZFByb3BzID0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUgPT09IENvbXBvbmVudCA/IHVucmVzb2x2ZWRQcm9wcyA6IHJlc29sdmVEZWZhdWx0UHJvcHMoQ29tcG9uZW50LCB1bnJlc29sdmVkUHJvcHMpO1xuICAgICAgICByZXR1cm4gdXBkYXRlRnVuY3Rpb25Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcmVzb2x2ZWRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIF9Db21wb25lbnQgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICAgICAgICB2YXIgX3VucmVzb2x2ZWRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcblxuICAgICAgICB2YXIgX3Jlc29sdmVkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSA9PT0gX0NvbXBvbmVudCA/IF91bnJlc29sdmVkUHJvcHMgOiByZXNvbHZlRGVmYXVsdFByb3BzKF9Db21wb25lbnQsIF91bnJlc29sdmVkUHJvcHMpO1xuXG4gICAgICAgIHJldHVybiB1cGRhdGVDbGFzc0NvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgX0NvbXBvbmVudCwgX3Jlc29sdmVkUHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICByZXR1cm4gdXBkYXRlSG9zdFJvb3QoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHJldHVybiB1cGRhdGVIb3N0Q29tcG9uZW50JDEoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgICByZXR1cm4gdXBkYXRlSG9zdFRleHQkMShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcyk7XG5cbiAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAgcmV0dXJuIHVwZGF0ZVN1c3BlbnNlQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG5cbiAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICByZXR1cm4gdXBkYXRlUG9ydGFsQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG5cbiAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgICB7XG4gICAgICAgIHZhciB0eXBlID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcbiAgICAgICAgdmFyIF91bnJlc29sdmVkUHJvcHMyID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuXG4gICAgICAgIHZhciBfcmVzb2x2ZWRQcm9wczIgPSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSA9PT0gdHlwZSA/IF91bnJlc29sdmVkUHJvcHMyIDogcmVzb2x2ZURlZmF1bHRQcm9wcyh0eXBlLCBfdW5yZXNvbHZlZFByb3BzMik7XG5cbiAgICAgICAgcmV0dXJuIHVwZGF0ZUZvcndhcmRSZWYoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHR5cGUsIF9yZXNvbHZlZFByb3BzMiwgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgY2FzZSBGcmFnbWVudDpcbiAgICAgIHJldHVybiB1cGRhdGVGcmFnbWVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuXG4gICAgY2FzZSBNb2RlOlxuICAgICAgcmV0dXJuIHVwZGF0ZU1vZGUoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgUHJvZmlsZXI6XG4gICAgICByZXR1cm4gdXBkYXRlUHJvZmlsZXIoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgQ29udGV4dFByb3ZpZGVyOlxuICAgICAgcmV0dXJuIHVwZGF0ZUNvbnRleHRQcm92aWRlcihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuXG4gICAgY2FzZSBDb250ZXh0Q29uc3VtZXI6XG4gICAgICByZXR1cm4gdXBkYXRlQ29udGV4dENvbnN1bWVyKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG5cbiAgICBjYXNlIE1lbW9Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBfdHlwZTIgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICAgICAgICB2YXIgX3VucmVzb2x2ZWRQcm9wczMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7IC8vIFJlc29sdmUgb3V0ZXIgcHJvcHMgZmlyc3QsIHRoZW4gcmVzb2x2ZSBpbm5lciBwcm9wcy5cblxuICAgICAgICB2YXIgX3Jlc29sdmVkUHJvcHMzID0gcmVzb2x2ZURlZmF1bHRQcm9wcyhfdHlwZTIsIF91bnJlc29sdmVkUHJvcHMzKTtcblxuICAgICAgICB7XG4gICAgICAgICAgaWYgKHdvcmtJblByb2dyZXNzLnR5cGUgIT09IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlKSB7XG4gICAgICAgICAgICB2YXIgb3V0ZXJQcm9wVHlwZXMgPSBfdHlwZTIucHJvcFR5cGVzO1xuXG4gICAgICAgICAgICBpZiAob3V0ZXJQcm9wVHlwZXMpIHtcbiAgICAgICAgICAgICAgY2hlY2tQcm9wVHlwZXMob3V0ZXJQcm9wVHlwZXMsIF9yZXNvbHZlZFByb3BzMywgLy8gUmVzb2x2ZWQgZm9yIG91dGVyIG9ubHlcbiAgICAgICAgICAgICAgJ3Byb3AnLCBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoX3R5cGUyKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgX3Jlc29sdmVkUHJvcHMzID0gcmVzb2x2ZURlZmF1bHRQcm9wcyhfdHlwZTIudHlwZSwgX3Jlc29sdmVkUHJvcHMzKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU1lbW9Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIF90eXBlMiwgX3Jlc29sdmVkUHJvcHMzLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG5cbiAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHJldHVybiB1cGRhdGVTaW1wbGVNZW1vQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCB3b3JrSW5Qcm9ncmVzcy50eXBlLCB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cblxuICAgIGNhc2UgSW5jb21wbGV0ZUNsYXNzQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB2YXIgX0NvbXBvbmVudDIgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICAgICAgICB2YXIgX3VucmVzb2x2ZWRQcm9wczQgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG5cbiAgICAgICAgdmFyIF9yZXNvbHZlZFByb3BzNCA9IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlID09PSBfQ29tcG9uZW50MiA/IF91bnJlc29sdmVkUHJvcHM0IDogcmVzb2x2ZURlZmF1bHRQcm9wcyhfQ29tcG9uZW50MiwgX3VucmVzb2x2ZWRQcm9wczQpO1xuXG4gICAgICAgIHJldHVybiBtb3VudEluY29tcGxldGVDbGFzc0NvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgX0NvbXBvbmVudDIsIF9yZXNvbHZlZFByb3BzNCwgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHJldHVybiB1cGRhdGVTdXNwZW5zZUxpc3RDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cblxuICAgIGNhc2UgU2NvcGVDb21wb25lbnQ6XG4gICAgICB7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIE9mZnNjcmVlbkNvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU9mZnNjcmVlbkNvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biB1bml0IG9mIHdvcmsgdGFnIChcIiArIHdvcmtJblByb2dyZXNzLnRhZyArIFwiKS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFwiICsgJ1JlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbn1cblxuZnVuY3Rpb24gdW53aW5kV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgLy8gTm90ZTogVGhpcyBpbnRlbnRpb25hbGx5IGRvZXNuJ3QgY2hlY2sgaWYgd2UncmUgaHlkcmF0aW5nIGJlY2F1c2UgY29tcGFyaW5nXG4gIC8vIHRvIHRoZSBjdXJyZW50IHRyZWUgcHJvdmlkZXIgZmliZXIgaXMganVzdCBhcyBmYXN0IGFuZCBsZXNzIGVycm9yLXByb25lLlxuICAvLyBJZGVhbGx5IHdlIHdvdWxkIGhhdmUgYSBzcGVjaWFsIHZlcnNpb24gb2YgdGhlIHdvcmsgbG9vcCBvbmx5XG4gIC8vIGZvciBoeWRyYXRpb24uXG4gIHBvcFRyZWVDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcblxuICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBDb21wb25lbnQgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuXG4gICAgICAgIGlmIChpc0NvbnRleHRQcm92aWRlcihDb21wb25lbnQpKSB7XG4gICAgICAgICAgcG9wQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZmxhZ3MgPSB3b3JrSW5Qcm9ncmVzcy5mbGFncztcblxuICAgICAgICBpZiAoZmxhZ3MgJiBTaG91bGRDYXB0dXJlKSB7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgPSBmbGFncyAmIH5TaG91bGRDYXB0dXJlIHwgRGlkQ2FwdHVyZTtcblxuICAgICAgICAgIGlmICggKHdvcmtJblByb2dyZXNzLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSkge1xuICAgICAgICAgICAgdHJhbnNmZXJBY3R1YWxEdXJhdGlvbih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RSb290OlxuICAgICAge1xuXG4gICAgICAgIHBvcEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICBwb3BUb3BMZXZlbENvbnRleHRPYmplY3Qod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICByZXNldFdvcmtJblByb2dyZXNzVmVyc2lvbnMoKTtcbiAgICAgICAgdmFyIF9mbGFncyA9IHdvcmtJblByb2dyZXNzLmZsYWdzO1xuXG4gICAgICAgIGlmICgoX2ZsYWdzICYgU2hvdWxkQ2FwdHVyZSkgIT09IE5vRmxhZ3MgJiYgKF9mbGFncyAmIERpZENhcHR1cmUpID09PSBOb0ZsYWdzKSB7XG4gICAgICAgICAgLy8gVGhlcmUgd2FzIGFuIGVycm9yIGR1cmluZyByZW5kZXIgdGhhdCB3YXNuJ3QgY2FwdHVyZWQgYnkgYSBzdXNwZW5zZVxuICAgICAgICAgIC8vIGJvdW5kYXJ5LiBEbyBhIHNlY29uZCBwYXNzIG9uIHRoZSByb290IHRvIHVubW91bnQgdGhlIGNoaWxkcmVuLlxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzID0gX2ZsYWdzICYgflNob3VsZENhcHR1cmUgfCBEaWRDYXB0dXJlO1xuICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgfSAvLyBXZSB1bndvdW5kIHRvIHRoZSByb290IHdpdGhvdXQgY29tcGxldGluZyBpdC4gRXhpdC5cblxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAge1xuICAgICAgICAvLyBUT0RPOiBwb3BIeWRyYXRpb25TdGF0ZVxuICAgICAgICBwb3BIb3N0Q29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUNvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcG9wU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcblxuICAgICAgICB7XG4gICAgICAgICAgdmFyIHN1c3BlbnNlU3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuXG4gICAgICAgICAgaWYgKHN1c3BlbnNlU3RhdGUgIT09IG51bGwgJiYgc3VzcGVuc2VTdGF0ZS5kZWh5ZHJhdGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MuYWx0ZXJuYXRlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGhyZXcgaW4gbmV3bHkgbW91bnRlZCBkZWh5ZHJhdGVkIGNvbXBvbmVudC4gVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gJyArICdSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgX2ZsYWdzMiA9IHdvcmtJblByb2dyZXNzLmZsYWdzO1xuXG4gICAgICAgIGlmIChfZmxhZ3MyICYgU2hvdWxkQ2FwdHVyZSkge1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzID0gX2ZsYWdzMiAmIH5TaG91bGRDYXB0dXJlIHwgRGlkQ2FwdHVyZTsgLy8gQ2FwdHVyZWQgYSBzdXNwZW5zZSBlZmZlY3QuIFJlLXJlbmRlciB0aGUgYm91bmRhcnkuXG5cbiAgICAgICAgICBpZiAoICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICAgIHRyYW5zZmVyQWN0dWFsRHVyYXRpb24od29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHBvcFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7IC8vIFN1c3BlbnNlTGlzdCBkb2Vzbid0IGFjdHVhbGx5IGNhdGNoIGFueXRoaW5nLiBJdCBzaG91bGQndmUgYmVlblxuICAgICAgICAvLyBjYXVnaHQgYnkgYSBuZXN0ZWQgYm91bmRhcnkuIElmIG5vdCwgaXQgc2hvdWxkIGJ1YmJsZSB0aHJvdWdoLlxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0UG9ydGFsOlxuICAgICAgcG9wSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICByZXR1cm4gbnVsbDtcblxuICAgIGNhc2UgQ29udGV4dFByb3ZpZGVyOlxuICAgICAgdmFyIGNvbnRleHQgPSB3b3JrSW5Qcm9ncmVzcy50eXBlLl9jb250ZXh0O1xuICAgICAgcG9wUHJvdmlkZXIoY29udGV4dCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjYXNlIE9mZnNjcmVlbkNvbXBvbmVudDpcbiAgICBjYXNlIExlZ2FjeUhpZGRlbkNvbXBvbmVudDpcbiAgICAgIHBvcFJlbmRlckxhbmVzKHdvcmtJblByb2dyZXNzKTtcblxuICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjYXNlIENhY2hlQ29tcG9uZW50OlxuXG4gICAgICByZXR1cm4gbnVsbDtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiB1bndpbmRJbnRlcnJ1cHRlZFdvcmsoY3VycmVudCwgaW50ZXJydXB0ZWRXb3JrLCByZW5kZXJMYW5lcykge1xuICAvLyBOb3RlOiBUaGlzIGludGVudGlvbmFsbHkgZG9lc24ndCBjaGVjayBpZiB3ZSdyZSBoeWRyYXRpbmcgYmVjYXVzZSBjb21wYXJpbmdcbiAgLy8gdG8gdGhlIGN1cnJlbnQgdHJlZSBwcm92aWRlciBmaWJlciBpcyBqdXN0IGFzIGZhc3QgYW5kIGxlc3MgZXJyb3ItcHJvbmUuXG4gIC8vIElkZWFsbHkgd2Ugd291bGQgaGF2ZSBhIHNwZWNpYWwgdmVyc2lvbiBvZiB0aGUgd29yayBsb29wIG9ubHlcbiAgLy8gZm9yIGh5ZHJhdGlvbi5cbiAgcG9wVHJlZUNvbnRleHQoaW50ZXJydXB0ZWRXb3JrKTtcblxuICBzd2l0Y2ggKGludGVycnVwdGVkV29yay50YWcpIHtcbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB2YXIgY2hpbGRDb250ZXh0VHlwZXMgPSBpbnRlcnJ1cHRlZFdvcmsudHlwZS5jaGlsZENvbnRleHRUeXBlcztcblxuICAgICAgICBpZiAoY2hpbGRDb250ZXh0VHlwZXMgIT09IG51bGwgJiYgY2hpbGRDb250ZXh0VHlwZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHBvcENvbnRleHQoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgIHtcblxuICAgICAgICBwb3BIb3N0Q29udGFpbmVyKGludGVycnVwdGVkV29yayk7XG4gICAgICAgIHBvcFRvcExldmVsQ29udGV4dE9iamVjdChpbnRlcnJ1cHRlZFdvcmspO1xuICAgICAgICByZXNldFdvcmtJblByb2dyZXNzVmVyc2lvbnMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHBvcEhvc3RDb250ZXh0KGludGVycnVwdGVkV29yayk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0UG9ydGFsOlxuICAgICAgcG9wSG9zdENvbnRhaW5lcihpbnRlcnJ1cHRlZFdvcmspO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAgcG9wU3VzcGVuc2VDb250ZXh0KGludGVycnVwdGVkV29yayk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgU3VzcGVuc2VMaXN0Q29tcG9uZW50OlxuICAgICAgcG9wU3VzcGVuc2VDb250ZXh0KGludGVycnVwdGVkV29yayk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgQ29udGV4dFByb3ZpZGVyOlxuICAgICAgdmFyIGNvbnRleHQgPSBpbnRlcnJ1cHRlZFdvcmsudHlwZS5fY29udGV4dDtcbiAgICAgIHBvcFByb3ZpZGVyKGNvbnRleHQsIGludGVycnVwdGVkV29yayk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgT2Zmc2NyZWVuQ29tcG9uZW50OlxuICAgIGNhc2UgTGVnYWN5SGlkZGVuQ29tcG9uZW50OlxuICAgICAgcG9wUmVuZGVyTGFuZXMoaW50ZXJydXB0ZWRXb3JrKTtcblxuICAgICAgYnJlYWs7XG4gIH1cbn1cblxudmFyIGRpZFdhcm5BYm91dFVuZGVmaW5lZFNuYXBzaG90QmVmb3JlVXBkYXRlID0gbnVsbDtcblxue1xuICBkaWRXYXJuQWJvdXRVbmRlZmluZWRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9IG5ldyBTZXQoKTtcbn0gLy8gVXNlZCBkdXJpbmcgdGhlIGNvbW1pdCBwaGFzZSB0byB0cmFjayB0aGUgc3RhdGUgb2YgdGhlIE9mZnNjcmVlbiBjb21wb25lbnQgc3RhY2suXG4vLyBBbGxvd3MgdXMgdG8gYXZvaWQgdHJhdmVyc2luZyB0aGUgcmV0dXJuIHBhdGggdG8gZmluZCB0aGUgbmVhcmVzdCBPZmZzY3JlZW4gYW5jZXN0b3IuXG4vLyBPbmx5IHVzZWQgd2hlbiBlbmFibGVTdXNwZW5zZUxheW91dEVmZmVjdFNlbWFudGljcyBpcyBlbmFibGVkLlxuXG5cbnZhciBvZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW4gPSBmYWxzZTtcbnZhciBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuID0gZmFsc2U7XG52YXIgUG9zc2libHlXZWFrU2V0ID0gdHlwZW9mIFdlYWtTZXQgPT09ICdmdW5jdGlvbicgPyBXZWFrU2V0IDogU2V0O1xudmFyIG5leHRFZmZlY3QgPSBudWxsOyAvLyBVc2VkIGZvciBQcm9maWxpbmcgYnVpbGRzIHRvIHRyYWNrIHVwZGF0ZXJzLlxuXG52YXIgaW5Qcm9ncmVzc0xhbmVzID0gbnVsbDtcbnZhciBpblByb2dyZXNzUm9vdCA9IG51bGw7XG5cbmZ1bmN0aW9uIHJlcG9ydFVuY2F1Z2h0RXJyb3JJbkRFVihlcnJvcikge1xuICAvLyBXcmFwcGluZyBlYWNoIHNtYWxsIHBhcnQgb2YgdGhlIGNvbW1pdCBwaGFzZSBpbnRvIGEgZ3VhcmRlZFxuICAvLyBjYWxsYmFjayBpcyBhIGJpdCB0b28gc2xvdyAoaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMjE2NjYpLlxuICAvLyBCdXQgd2UgcmVseSBvbiBpdCB0byBzdXJmYWNlIGVycm9ycyB0byBERVYgdG9vbHMgbGlrZSBvdmVybGF5c1xuICAvLyAoaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8yMTcxMikuXG4gIC8vIEFzIGEgY29tcHJvbWlzZSwgcmV0aHJvdyBvbmx5IGNhdWdodCBlcnJvcnMgaW4gYSBndWFyZC5cbiAge1xuICAgIGludm9rZUd1YXJkZWRDYWxsYmFjayhudWxsLCBmdW5jdGlvbiAoKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbiAgICBjbGVhckNhdWdodEVycm9yKCk7XG4gIH1cbn1cblxudmFyIGNhbGxDb21wb25lbnRXaWxsVW5tb3VudFdpdGhUaW1lciA9IGZ1bmN0aW9uIChjdXJyZW50LCBpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5wcm9wcyA9IGN1cnJlbnQubWVtb2l6ZWRQcm9wcztcbiAgaW5zdGFuY2Uuc3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKCBjdXJyZW50Lm1vZGUgJiBQcm9maWxlTW9kZSkge1xuICAgIHRyeSB7XG4gICAgICBzdGFydExheW91dEVmZmVjdFRpbWVyKCk7XG4gICAgICBpbnN0YW5jZS5jb21wb25lbnRXaWxsVW5tb3VudCgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICByZWNvcmRMYXlvdXRFZmZlY3REdXJhdGlvbihjdXJyZW50KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVubW91bnQoKTtcbiAgfVxufTsgLy8gQ2FwdHVyZSBlcnJvcnMgc28gdGhleSBkb24ndCBpbnRlcnJ1cHQgbW91bnRpbmcuXG5cblxuZnVuY3Rpb24gc2FmZWx5Q2FsbENvbW1pdEhvb2tMYXlvdXRFZmZlY3RMaXN0TW91bnQoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcikge1xuICB0cnkge1xuICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0TW91bnQoTGF5b3V0LCBjdXJyZW50KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXBvcnRVbmNhdWdodEVycm9ySW5ERVYoZXJyb3IpO1xuICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGVycm9yKTtcbiAgfVxufSAvLyBDYXB0dXJlIGVycm9ycyBzbyB0aGV5IGRvbid0IGludGVycnVwdCB1bm1vdW50aW5nLlxuXG5cbmZ1bmN0aW9uIHNhZmVseUNhbGxDb21wb25lbnRXaWxsVW5tb3VudChjdXJyZW50LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBpbnN0YW5jZSkge1xuICB0cnkge1xuICAgIGNhbGxDb21wb25lbnRXaWxsVW5tb3VudFdpdGhUaW1lcihjdXJyZW50LCBpbnN0YW5jZSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVwb3J0VW5jYXVnaHRFcnJvckluREVWKGVycm9yKTtcbiAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihjdXJyZW50LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBlcnJvcik7XG4gIH1cbn0gLy8gQ2FwdHVyZSBlcnJvcnMgc28gdGhleSBkb24ndCBpbnRlcnJ1cHQgbW91bnRpbmcuXG5cblxuZnVuY3Rpb24gc2FmZWx5Q2FsbENvbXBvbmVudERpZE1vdW50KGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGluc3RhbmNlKSB7XG4gIHRyeSB7XG4gICAgaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXBvcnRVbmNhdWdodEVycm9ySW5ERVYoZXJyb3IpO1xuICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGVycm9yKTtcbiAgfVxufSAvLyBDYXB0dXJlIGVycm9ycyBzbyB0aGV5IGRvbid0IGludGVycnVwdCBtb3VudGluZy5cblxuXG5mdW5jdGlvbiBzYWZlbHlBdHRhY2hSZWYoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcikge1xuICB0cnkge1xuICAgIGNvbW1pdEF0dGFjaFJlZihjdXJyZW50KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXBvcnRVbmNhdWdodEVycm9ySW5ERVYoZXJyb3IpO1xuICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGVycm9yKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzYWZlbHlEZXRhY2hSZWYoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcikge1xuICB2YXIgcmVmID0gY3VycmVudC5yZWY7XG5cbiAgaWYgKHJlZiAhPT0gbnVsbCkge1xuICAgIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgcmV0VmFsO1xuXG4gICAgICB0cnkge1xuICAgICAgICBpZiAoZW5hYmxlUHJvZmlsZXJUaW1lciAmJiBlbmFibGVQcm9maWxlckNvbW1pdEhvb2tzICYmIGN1cnJlbnQubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN0YXJ0TGF5b3V0RWZmZWN0VGltZXIoKTtcbiAgICAgICAgICAgIHJldFZhbCA9IHJlZihudWxsKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgcmVjb3JkTGF5b3V0RWZmZWN0RHVyYXRpb24oY3VycmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldFZhbCA9IHJlZihudWxsKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmVwb3J0VW5jYXVnaHRFcnJvckluREVWKGVycm9yKTtcbiAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICB7XG4gICAgICAgIGlmICh0eXBlb2YgcmV0VmFsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgZXJyb3IoJ1VuZXhwZWN0ZWQgcmV0dXJuIHZhbHVlIGZyb20gYSBjYWxsYmFjayByZWYgaW4gJXMuICcgKyAnQSBjYWxsYmFjayByZWYgc2hvdWxkIG5vdCByZXR1cm4gYSBmdW5jdGlvbi4nLCBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGN1cnJlbnQpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZWYuY3VycmVudCA9IG51bGw7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNhZmVseUNhbGxEZXN0cm95KGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGRlc3Ryb3kpIHtcbiAgdHJ5IHtcbiAgICBkZXN0cm95KCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVwb3J0VW5jYXVnaHRFcnJvckluREVWKGVycm9yKTtcbiAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihjdXJyZW50LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBlcnJvcik7XG4gIH1cbn1cblxudmFyIGZvY3VzZWRJbnN0YW5jZUhhbmRsZSA9IG51bGw7XG52YXIgc2hvdWxkRmlyZUFmdGVyQWN0aXZlSW5zdGFuY2VCbHVyID0gZmFsc2U7XG5mdW5jdGlvbiBjb21taXRCZWZvcmVNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmlyc3RDaGlsZCkge1xuICBmb2N1c2VkSW5zdGFuY2VIYW5kbGUgPSBwcmVwYXJlRm9yQ29tbWl0KHJvb3QuY29udGFpbmVySW5mbyk7XG4gIG5leHRFZmZlY3QgPSBmaXJzdENoaWxkO1xuICBjb21taXRCZWZvcmVNdXRhdGlvbkVmZmVjdHNfYmVnaW4oKTsgLy8gV2Ugbm8gbG9uZ2VyIG5lZWQgdG8gdHJhY2sgdGhlIGFjdGl2ZSBpbnN0YW5jZSBmaWJlclxuXG4gIHZhciBzaG91bGRGaXJlID0gc2hvdWxkRmlyZUFmdGVyQWN0aXZlSW5zdGFuY2VCbHVyO1xuICBzaG91bGRGaXJlQWZ0ZXJBY3RpdmVJbnN0YW5jZUJsdXIgPSBmYWxzZTtcbiAgZm9jdXNlZEluc3RhbmNlSGFuZGxlID0gbnVsbDtcbiAgcmV0dXJuIHNob3VsZEZpcmU7XG59XG5cbmZ1bmN0aW9uIGNvbW1pdEJlZm9yZU11dGF0aW9uRWZmZWN0c19iZWdpbigpIHtcbiAgd2hpbGUgKG5leHRFZmZlY3QgIT09IG51bGwpIHtcbiAgICB2YXIgZmliZXIgPSBuZXh0RWZmZWN0OyAvLyBUaGlzIHBoYXNlIGlzIG9ubHkgdXNlZCBmb3IgYmVmb3JlQWN0aXZlSW5zdGFuY2VCbHVyLlxuXG4gICAgdmFyIGNoaWxkID0gZmliZXIuY2hpbGQ7XG5cbiAgICBpZiAoKGZpYmVyLnN1YnRyZWVGbGFncyAmIEJlZm9yZU11dGF0aW9uTWFzaykgIT09IE5vRmxhZ3MgJiYgY2hpbGQgIT09IG51bGwpIHtcbiAgICAgIGVuc3VyZUNvcnJlY3RSZXR1cm5Qb2ludGVyKGNoaWxkLCBmaWJlcik7XG4gICAgICBuZXh0RWZmZWN0ID0gY2hpbGQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbW1pdEJlZm9yZU11dGF0aW9uRWZmZWN0c19jb21wbGV0ZSgpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRCZWZvcmVNdXRhdGlvbkVmZmVjdHNfY29tcGxldGUoKSB7XG4gIHdoaWxlIChuZXh0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpYmVyID0gbmV4dEVmZmVjdDtcbiAgICBzZXRDdXJyZW50RmliZXIoZmliZXIpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbW1pdEJlZm9yZU11dGF0aW9uRWZmZWN0c09uRmliZXIoZmliZXIpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXBvcnRVbmNhdWdodEVycm9ySW5ERVYoZXJyb3IpO1xuICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmliZXIsIGZpYmVyLnJldHVybiwgZXJyb3IpO1xuICAgIH1cblxuICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgdmFyIHNpYmxpbmcgPSBmaWJlci5zaWJsaW5nO1xuXG4gICAgaWYgKHNpYmxpbmcgIT09IG51bGwpIHtcbiAgICAgIGVuc3VyZUNvcnJlY3RSZXR1cm5Qb2ludGVyKHNpYmxpbmcsIGZpYmVyLnJldHVybik7XG4gICAgICBuZXh0RWZmZWN0ID0gc2libGluZztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBuZXh0RWZmZWN0ID0gZmliZXIucmV0dXJuO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdEJlZm9yZU11dGF0aW9uRWZmZWN0c09uRmliZXIoZmluaXNoZWRXb3JrKSB7XG4gIHZhciBjdXJyZW50ID0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZTtcbiAgdmFyIGZsYWdzID0gZmluaXNoZWRXb3JrLmZsYWdzO1xuXG4gIGlmICgoZmxhZ3MgJiBTbmFwc2hvdCkgIT09IE5vRmxhZ3MpIHtcbiAgICBzZXRDdXJyZW50RmliZXIoZmluaXNoZWRXb3JrKTtcblxuICAgIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIHByZXZQcm9wcyA9IGN1cnJlbnQubWVtb2l6ZWRQcm9wcztcbiAgICAgICAgICAgIHZhciBwcmV2U3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlOyAvLyBXZSBjb3VsZCB1cGRhdGUgaW5zdGFuY2UgcHJvcHMgYW5kIHN0YXRlIGhlcmUsXG4gICAgICAgICAgICAvLyBidXQgaW5zdGVhZCB3ZSByZWx5IG9uIHRoZW0gYmVpbmcgc2V0IGR1cmluZyBsYXN0IHJlbmRlci5cbiAgICAgICAgICAgIC8vIFRPRE86IHJldmlzaXQgdGhpcyB3aGVuIHdlIGltcGxlbWVudCByZXN1bWluZy5cblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZiAoZmluaXNoZWRXb3JrLnR5cGUgPT09IGZpbmlzaGVkV29yay5lbGVtZW50VHlwZSAmJiAhZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcykge1xuICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZS5wcm9wcyAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHMpIHtcbiAgICAgICAgICAgICAgICAgIGVycm9yKCdFeHBlY3RlZCAlcyBwcm9wcyB0byBtYXRjaCBtZW1vaXplZCBwcm9wcyBiZWZvcmUgJyArICdnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZS4gJyArICdUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlICcgKyAnYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMucHJvcHNgLiAnICsgJ1BsZWFzZSBmaWxlIGFuIGlzc3VlLicsIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCAnaW5zdGFuY2UnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2Uuc3RhdGUgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICBlcnJvcignRXhwZWN0ZWQgJXMgc3RhdGUgdG8gbWF0Y2ggbWVtb2l6ZWQgc3RhdGUgYmVmb3JlICcgKyAnZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykgfHwgJ2luc3RhbmNlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBzbmFwc2hvdCA9IGluc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKGZpbmlzaGVkV29yay5lbGVtZW50VHlwZSA9PT0gZmluaXNoZWRXb3JrLnR5cGUgPyBwcmV2UHJvcHMgOiByZXNvbHZlRGVmYXVsdFByb3BzKGZpbmlzaGVkV29yay50eXBlLCBwcmV2UHJvcHMpLCBwcmV2U3RhdGUpO1xuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhciBkaWRXYXJuU2V0ID0gZGlkV2FybkFib3V0VW5kZWZpbmVkU25hcHNob3RCZWZvcmVVcGRhdGU7XG5cbiAgICAgICAgICAgICAgaWYgKHNuYXBzaG90ID09PSB1bmRlZmluZWQgJiYgIWRpZFdhcm5TZXQuaGFzKGZpbmlzaGVkV29yay50eXBlKSkge1xuICAgICAgICAgICAgICAgIGRpZFdhcm5TZXQuYWRkKGZpbmlzaGVkV29yay50eXBlKTtcblxuICAgICAgICAgICAgICAgIGVycm9yKCclcy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSgpOiBBIHNuYXBzaG90IHZhbHVlIChvciBudWxsKSAnICsgJ211c3QgYmUgcmV0dXJuZWQuIFlvdSBoYXZlIHJldHVybmVkIHVuZGVmaW5lZC4nLCBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGluc3RhbmNlLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlID0gc25hcHNob3Q7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciByb290ID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgICAgIGNsZWFyQ29udGFpbmVyKHJvb3QuY29udGFpbmVySW5mbyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgY2FzZSBIb3N0VGV4dDpcbiAgICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgIGNhc2UgSW5jb21wbGV0ZUNsYXNzQ29tcG9uZW50OlxuICAgICAgICAvLyBOb3RoaW5nIHRvIGRvIGZvciB0aGVzZSBjb21wb25lbnQgdHlwZXNcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgdW5pdCBvZiB3b3JrIHRhZyBzaG91bGQgbm90IGhhdmUgc2lkZS1lZmZlY3RzLiBUaGlzIGVycm9yIGlzICcgKyAnbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChmbGFncywgZmluaXNoZWRXb3JrLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yKSB7XG4gIHZhciB1cGRhdGVRdWV1ZSA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZTtcbiAgdmFyIGxhc3RFZmZlY3QgPSB1cGRhdGVRdWV1ZSAhPT0gbnVsbCA/IHVwZGF0ZVF1ZXVlLmxhc3RFZmZlY3QgOiBudWxsO1xuXG4gIGlmIChsYXN0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpcnN0RWZmZWN0ID0gbGFzdEVmZmVjdC5uZXh0O1xuICAgIHZhciBlZmZlY3QgPSBmaXJzdEVmZmVjdDtcblxuICAgIGRvIHtcbiAgICAgIGlmICgoZWZmZWN0LnRhZyAmIGZsYWdzKSA9PT0gZmxhZ3MpIHtcbiAgICAgICAgLy8gVW5tb3VudFxuICAgICAgICB2YXIgZGVzdHJveSA9IGVmZmVjdC5kZXN0cm95O1xuICAgICAgICBlZmZlY3QuZGVzdHJveSA9IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAoZGVzdHJveSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKChmbGFncyAmIFBhc3NpdmUkMSkgIT09IE5vRmxhZ3MkMSkge1xuICAgICAgICAgICAgICBtYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdFVubW91bnRTdGFydGVkKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKChmbGFncyAmIExheW91dCkgIT09IE5vRmxhZ3MkMSkge1xuICAgICAgICAgICAgICBtYXJrQ29tcG9uZW50TGF5b3V0RWZmZWN0VW5tb3VudFN0YXJ0ZWQoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzYWZlbHlDYWxsRGVzdHJveShmaW5pc2hlZFdvcmssIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGRlc3Ryb3kpO1xuXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKChmbGFncyAmIFBhc3NpdmUkMSkgIT09IE5vRmxhZ3MkMSkge1xuICAgICAgICAgICAgICBtYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdFVubW91bnRTdG9wcGVkKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKChmbGFncyAmIExheW91dCkgIT09IE5vRmxhZ3MkMSkge1xuICAgICAgICAgICAgICBtYXJrQ29tcG9uZW50TGF5b3V0RWZmZWN0VW5tb3VudFN0b3BwZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZWZmZWN0ID0gZWZmZWN0Lm5leHQ7XG4gICAgfSB3aGlsZSAoZWZmZWN0ICE9PSBmaXJzdEVmZmVjdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0SG9va0VmZmVjdExpc3RNb3VudChmbGFncywgZmluaXNoZWRXb3JrKSB7XG4gIHZhciB1cGRhdGVRdWV1ZSA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZTtcbiAgdmFyIGxhc3RFZmZlY3QgPSB1cGRhdGVRdWV1ZSAhPT0gbnVsbCA/IHVwZGF0ZVF1ZXVlLmxhc3RFZmZlY3QgOiBudWxsO1xuXG4gIGlmIChsYXN0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpcnN0RWZmZWN0ID0gbGFzdEVmZmVjdC5uZXh0O1xuICAgIHZhciBlZmZlY3QgPSBmaXJzdEVmZmVjdDtcblxuICAgIGRvIHtcbiAgICAgIGlmICgoZWZmZWN0LnRhZyAmIGZsYWdzKSA9PT0gZmxhZ3MpIHtcbiAgICAgICAge1xuICAgICAgICAgIGlmICgoZmxhZ3MgJiBQYXNzaXZlJDEpICE9PSBOb0ZsYWdzJDEpIHtcbiAgICAgICAgICAgIG1hcmtDb21wb25lbnRQYXNzaXZlRWZmZWN0TW91bnRTdGFydGVkKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgfSBlbHNlIGlmICgoZmxhZ3MgJiBMYXlvdXQpICE9PSBOb0ZsYWdzJDEpIHtcbiAgICAgICAgICAgIG1hcmtDb21wb25lbnRMYXlvdXRFZmZlY3RNb3VudFN0YXJ0ZWQoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gTW91bnRcblxuXG4gICAgICAgIHZhciBjcmVhdGUgPSBlZmZlY3QuY3JlYXRlO1xuICAgICAgICBlZmZlY3QuZGVzdHJveSA9IGNyZWF0ZSgpO1xuXG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoKGZsYWdzICYgUGFzc2l2ZSQxKSAhPT0gTm9GbGFncyQxKSB7XG4gICAgICAgICAgICBtYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdE1vdW50U3RvcHBlZCgpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoKGZsYWdzICYgTGF5b3V0KSAhPT0gTm9GbGFncyQxKSB7XG4gICAgICAgICAgICBtYXJrQ29tcG9uZW50TGF5b3V0RWZmZWN0TW91bnRTdG9wcGVkKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAge1xuICAgICAgICAgIHZhciBkZXN0cm95ID0gZWZmZWN0LmRlc3Ryb3k7XG5cbiAgICAgICAgICBpZiAoZGVzdHJveSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBkZXN0cm95ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB2YXIgaG9va05hbWUgPSB2b2lkIDA7XG5cbiAgICAgICAgICAgIGlmICgoZWZmZWN0LnRhZyAmIExheW91dCkgIT09IE5vRmxhZ3MpIHtcbiAgICAgICAgICAgICAgaG9va05hbWUgPSAndXNlTGF5b3V0RWZmZWN0JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoKGVmZmVjdC50YWcgJiBJbnNlcnRpb24pICE9PSBOb0ZsYWdzKSB7XG4gICAgICAgICAgICAgIGhvb2tOYW1lID0gJ3VzZUluc2VydGlvbkVmZmVjdCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBob29rTmFtZSA9ICd1c2VFZmZlY3QnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgYWRkZW5kdW0gPSB2b2lkIDA7XG5cbiAgICAgICAgICAgIGlmIChkZXN0cm95ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGFkZGVuZHVtID0gJyBZb3UgcmV0dXJuZWQgbnVsbC4gSWYgeW91ciBlZmZlY3QgZG9lcyBub3QgcmVxdWlyZSBjbGVhbiAnICsgJ3VwLCByZXR1cm4gdW5kZWZpbmVkIChvciBub3RoaW5nKS4nO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVzdHJveS50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIGFkZGVuZHVtID0gJ1xcblxcbkl0IGxvb2tzIGxpa2UgeW91IHdyb3RlICcgKyBob29rTmFtZSArICcoYXN5bmMgKCkgPT4gLi4uKSBvciByZXR1cm5lZCBhIFByb21pc2UuICcgKyAnSW5zdGVhZCwgd3JpdGUgdGhlIGFzeW5jIGZ1bmN0aW9uIGluc2lkZSB5b3VyIGVmZmVjdCAnICsgJ2FuZCBjYWxsIGl0IGltbWVkaWF0ZWx5OlxcblxcbicgKyBob29rTmFtZSArICcoKCkgPT4ge1xcbicgKyAnICBhc3luYyBmdW5jdGlvbiBmZXRjaERhdGEoKSB7XFxuJyArICcgICAgLy8gWW91IGNhbiBhd2FpdCBoZXJlXFxuJyArICcgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBNeUFQSS5nZXREYXRhKHNvbWVJZCk7XFxuJyArICcgICAgLy8gLi4uXFxuJyArICcgIH1cXG4nICsgJyAgZmV0Y2hEYXRhKCk7XFxuJyArIFwifSwgW3NvbWVJZF0pOyAvLyBPciBbXSBpZiBlZmZlY3QgZG9lc24ndCBuZWVkIHByb3BzIG9yIHN0YXRlXFxuXFxuXCIgKyAnTGVhcm4gbW9yZSBhYm91dCBkYXRhIGZldGNoaW5nIHdpdGggSG9va3M6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9ob29rcy1kYXRhLWZldGNoaW5nJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGFkZGVuZHVtID0gJyBZb3UgcmV0dXJuZWQ6ICcgKyBkZXN0cm95O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlcnJvcignJXMgbXVzdCBub3QgcmV0dXJuIGFueXRoaW5nIGJlc2lkZXMgYSBmdW5jdGlvbiwgJyArICd3aGljaCBpcyB1c2VkIGZvciBjbGVhbi11cC4lcycsIGhvb2tOYW1lLCBhZGRlbmR1bSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGVmZmVjdCA9IGVmZmVjdC5uZXh0O1xuICAgIH0gd2hpbGUgKGVmZmVjdCAhPT0gZmlyc3RFZmZlY3QpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFBhc3NpdmVFZmZlY3REdXJhdGlvbnMoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmspIHtcbiAge1xuICAgIC8vIE9ubHkgUHJvZmlsZXJzIHdpdGggd29yayBpbiB0aGVpciBzdWJ0cmVlIHdpbGwgaGF2ZSBhbiBVcGRhdGUgZWZmZWN0IHNjaGVkdWxlZC5cbiAgICBpZiAoKGZpbmlzaGVkV29yay5mbGFncyAmIFVwZGF0ZSkgIT09IE5vRmxhZ3MpIHtcbiAgICAgIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgICAgICBjYXNlIFByb2ZpbGVyOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBwYXNzaXZlRWZmZWN0RHVyYXRpb24gPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlLnBhc3NpdmVFZmZlY3REdXJhdGlvbjtcbiAgICAgICAgICAgIHZhciBfZmluaXNoZWRXb3JrJG1lbW9pemUgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyxcbiAgICAgICAgICAgICAgICBpZCA9IF9maW5pc2hlZFdvcmskbWVtb2l6ZS5pZCxcbiAgICAgICAgICAgICAgICBvblBvc3RDb21taXQgPSBfZmluaXNoZWRXb3JrJG1lbW9pemUub25Qb3N0Q29tbWl0OyAvLyBUaGlzIHZhbHVlIHdpbGwgc3RpbGwgcmVmbGVjdCB0aGUgcHJldmlvdXMgY29tbWl0IHBoYXNlLlxuICAgICAgICAgICAgLy8gSXQgZG9lcyBub3QgZ2V0IHJlc2V0IHVudGlsIHRoZSBzdGFydCBvZiB0aGUgbmV4dCBjb21taXQgcGhhc2UuXG5cbiAgICAgICAgICAgIHZhciBjb21taXRUaW1lID0gZ2V0Q29tbWl0VGltZSgpO1xuICAgICAgICAgICAgdmFyIHBoYXNlID0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZSA9PT0gbnVsbCA/ICdtb3VudCcgOiAndXBkYXRlJztcblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZiAoaXNDdXJyZW50VXBkYXRlTmVzdGVkKCkpIHtcbiAgICAgICAgICAgICAgICBwaGFzZSA9ICduZXN0ZWQtdXBkYXRlJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIG9uUG9zdENvbW1pdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICBvblBvc3RDb21taXQoaWQsIHBoYXNlLCBwYXNzaXZlRWZmZWN0RHVyYXRpb24sIGNvbW1pdFRpbWUpO1xuICAgICAgICAgICAgfSAvLyBCdWJibGUgdGltZXMgdG8gdGhlIG5leHQgbmVhcmVzdCBhbmNlc3RvciBQcm9maWxlci5cbiAgICAgICAgICAgIC8vIEFmdGVyIHdlIHByb2Nlc3MgdGhhdCBQcm9maWxlciwgd2UnbGwgYnViYmxlIGZ1cnRoZXIgdXAuXG5cblxuICAgICAgICAgICAgdmFyIHBhcmVudEZpYmVyID0gZmluaXNoZWRXb3JrLnJldHVybjtcblxuICAgICAgICAgICAgb3V0ZXI6IHdoaWxlIChwYXJlbnRGaWJlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBzd2l0Y2ggKHBhcmVudEZpYmVyLnRhZykge1xuICAgICAgICAgICAgICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICAgICAgICAgICAgICB2YXIgcm9vdCA9IHBhcmVudEZpYmVyLnN0YXRlTm9kZTtcbiAgICAgICAgICAgICAgICAgIHJvb3QucGFzc2l2ZUVmZmVjdER1cmF0aW9uICs9IHBhc3NpdmVFZmZlY3REdXJhdGlvbjtcbiAgICAgICAgICAgICAgICAgIGJyZWFrIG91dGVyO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBQcm9maWxlcjpcbiAgICAgICAgICAgICAgICAgIHZhciBwYXJlbnRTdGF0ZU5vZGUgPSBwYXJlbnRGaWJlci5zdGF0ZU5vZGU7XG4gICAgICAgICAgICAgICAgICBwYXJlbnRTdGF0ZU5vZGUucGFzc2l2ZUVmZmVjdER1cmF0aW9uICs9IHBhc3NpdmVFZmZlY3REdXJhdGlvbjtcbiAgICAgICAgICAgICAgICAgIGJyZWFrIG91dGVyO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5yZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0TGF5b3V0RWZmZWN0T25GaWJlcihmaW5pc2hlZFJvb3QsIGN1cnJlbnQsIGZpbmlzaGVkV29yaywgY29tbWl0dGVkTGFuZXMpIHtcbiAgaWYgKChmaW5pc2hlZFdvcmsuZmxhZ3MgJiBMYXlvdXRNYXNrKSAhPT0gTm9GbGFncykge1xuICAgIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIGlmICggIW9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4pIHtcbiAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgbGF5b3V0IGVmZmVjdHMgaGF2ZSBhbHJlYWR5IGJlZW4gZGVzdHJveWVkIChkdXJpbmcgbXV0YXRpb24gcGhhc2UpLlxuICAgICAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRvIHByZXZlbnQgc2libGluZyBjb21wb25lbnQgZWZmZWN0cyBmcm9tIGludGVyZmVyaW5nIHdpdGggZWFjaCBvdGhlcixcbiAgICAgICAgICAgIC8vIGUuZy4gYSBkZXN0cm95IGZ1bmN0aW9uIGluIG9uZSBjb21wb25lbnQgc2hvdWxkIG5ldmVyIG92ZXJyaWRlIGEgcmVmIHNldFxuICAgICAgICAgICAgLy8gYnkgYSBjcmVhdGUgZnVuY3Rpb24gaW4gYW5vdGhlciBjb21wb25lbnQgZHVyaW5nIHRoZSBzYW1lIGNvbW1pdC5cbiAgICAgICAgICAgIGlmICggZmluaXNoZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHN0YXJ0TGF5b3V0RWZmZWN0VGltZXIoKTtcbiAgICAgICAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KExheW91dCB8IEhhc0VmZmVjdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICByZWNvcmRMYXlvdXRFZmZlY3REdXJhdGlvbihmaW5pc2hlZFdvcmspO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KExheW91dCB8IEhhc0VmZmVjdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIGluc3RhbmNlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcblxuICAgICAgICAgIGlmIChmaW5pc2hlZFdvcmsuZmxhZ3MgJiBVcGRhdGUpIHtcbiAgICAgICAgICAgIGlmICghb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbikge1xuICAgICAgICAgICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIFdlIGNvdWxkIHVwZGF0ZSBpbnN0YW5jZSBwcm9wcyBhbmQgc3RhdGUgaGVyZSxcbiAgICAgICAgICAgICAgICAvLyBidXQgaW5zdGVhZCB3ZSByZWx5IG9uIHRoZW0gYmVpbmcgc2V0IGR1cmluZyBsYXN0IHJlbmRlci5cbiAgICAgICAgICAgICAgICAvLyBUT0RPOiByZXZpc2l0IHRoaXMgd2hlbiB3ZSBpbXBsZW1lbnQgcmVzdW1pbmcuXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkV29yay50eXBlID09PSBmaW5pc2hlZFdvcmsuZWxlbWVudFR5cGUgJiYgIWRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc3RhbmNlLnByb3BzICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcykge1xuICAgICAgICAgICAgICAgICAgICAgIGVycm9yKCdFeHBlY3RlZCAlcyBwcm9wcyB0byBtYXRjaCBtZW1vaXplZCBwcm9wcyBiZWZvcmUgJyArICdjb21wb25lbnREaWRNb3VudC4gJyArICdUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlICcgKyAnYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMucHJvcHNgLiAnICsgJ1BsZWFzZSBmaWxlIGFuIGlzc3VlLicsIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCAnaW5zdGFuY2UnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZS5zdGF0ZSAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBlcnJvcignRXhwZWN0ZWQgJXMgc3RhdGUgdG8gbWF0Y2ggbWVtb2l6ZWQgc3RhdGUgYmVmb3JlICcgKyAnY29tcG9uZW50RGlkTW91bnQuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykgfHwgJ2luc3RhbmNlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIGZpbmlzaGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpIHtcbiAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0TGF5b3V0RWZmZWN0VGltZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQoKTtcbiAgICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZExheW91dEVmZmVjdER1cmF0aW9uKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmNvbXBvbmVudERpZE1vdW50KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhciBwcmV2UHJvcHMgPSBmaW5pc2hlZFdvcmsuZWxlbWVudFR5cGUgPT09IGZpbmlzaGVkV29yay50eXBlID8gY3VycmVudC5tZW1vaXplZFByb3BzIDogcmVzb2x2ZURlZmF1bHRQcm9wcyhmaW5pc2hlZFdvcmsudHlwZSwgY3VycmVudC5tZW1vaXplZFByb3BzKTtcbiAgICAgICAgICAgICAgICB2YXIgcHJldlN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlOyAvLyBXZSBjb3VsZCB1cGRhdGUgaW5zdGFuY2UgcHJvcHMgYW5kIHN0YXRlIGhlcmUsXG4gICAgICAgICAgICAgICAgLy8gYnV0IGluc3RlYWQgd2UgcmVseSBvbiB0aGVtIGJlaW5nIHNldCBkdXJpbmcgbGFzdCByZW5kZXIuXG4gICAgICAgICAgICAgICAgLy8gVE9ETzogcmV2aXNpdCB0aGlzIHdoZW4gd2UgaW1wbGVtZW50IHJlc3VtaW5nLlxuXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkV29yay50eXBlID09PSBmaW5pc2hlZFdvcmsuZWxlbWVudFR5cGUgJiYgIWRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc3RhbmNlLnByb3BzICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcykge1xuICAgICAgICAgICAgICAgICAgICAgIGVycm9yKCdFeHBlY3RlZCAlcyBwcm9wcyB0byBtYXRjaCBtZW1vaXplZCBwcm9wcyBiZWZvcmUgJyArICdjb21wb25lbnREaWRVcGRhdGUuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnByb3BzYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykgfHwgJ2luc3RhbmNlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2Uuc3RhdGUgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgZXJyb3IoJ0V4cGVjdGVkICVzIHN0YXRlIHRvIG1hdGNoIG1lbW9pemVkIHN0YXRlIGJlZm9yZSAnICsgJ2NvbXBvbmVudERpZFVwZGF0ZS4gJyArICdUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlICcgKyAnYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMuc3RhdGVgLiAnICsgJ1BsZWFzZSBmaWxlIGFuIGlzc3VlLicsIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCAnaW5zdGFuY2UnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICggZmluaXNoZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkge1xuICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRMYXlvdXRFZmZlY3RUaW1lcigpO1xuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5jb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUsIGluc3RhbmNlLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKTtcbiAgICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZExheW91dEVmZmVjdER1cmF0aW9uKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMsIHByZXZTdGF0ZSwgaW5zdGFuY2UuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gLy8gVE9ETzogSSB0aGluayB0aGlzIGlzIG5vdyBhbHdheXMgbm9uLW51bGwgYnkgdGhlIHRpbWUgaXQgcmVhY2hlcyB0aGVcbiAgICAgICAgICAvLyBjb21taXQgcGhhc2UuIENvbnNpZGVyIHJlbW92aW5nIHRoZSB0eXBlIGNoZWNrLlxuXG5cbiAgICAgICAgICB2YXIgdXBkYXRlUXVldWUgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWU7XG5cbiAgICAgICAgICBpZiAodXBkYXRlUXVldWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkV29yay50eXBlID09PSBmaW5pc2hlZFdvcmsuZWxlbWVudFR5cGUgJiYgIWRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UucHJvcHMgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzKSB7XG4gICAgICAgICAgICAgICAgICBlcnJvcignRXhwZWN0ZWQgJXMgcHJvcHMgdG8gbWF0Y2ggbWVtb2l6ZWQgcHJvcHMgYmVmb3JlICcgKyAncHJvY2Vzc2luZyB0aGUgdXBkYXRlIHF1ZXVlLiAnICsgJ1RoaXMgbWlnaHQgZWl0aGVyIGJlIGJlY2F1c2Ugb2YgYSBidWcgaW4gUmVhY3QsIG9yIGJlY2F1c2UgJyArICdhIGNvbXBvbmVudCByZWFzc2lnbnMgaXRzIG93biBgdGhpcy5wcm9wc2AuICcgKyAnUGxlYXNlIGZpbGUgYW4gaXNzdWUuJywgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaW5pc2hlZFdvcmspIHx8ICdpbnN0YW5jZScpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZS5zdGF0ZSAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgIGVycm9yKCdFeHBlY3RlZCAlcyBzdGF0ZSB0byBtYXRjaCBtZW1vaXplZCBzdGF0ZSBiZWZvcmUgJyArICdwcm9jZXNzaW5nIHRoZSB1cGRhdGUgcXVldWUuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykgfHwgJ2luc3RhbmNlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IC8vIFdlIGNvdWxkIHVwZGF0ZSBpbnN0YW5jZSBwcm9wcyBhbmQgc3RhdGUgaGVyZSxcbiAgICAgICAgICAgIC8vIGJ1dCBpbnN0ZWFkIHdlIHJlbHkgb24gdGhlbSBiZWluZyBzZXQgZHVyaW5nIGxhc3QgcmVuZGVyLlxuICAgICAgICAgICAgLy8gVE9ETzogcmV2aXNpdCB0aGlzIHdoZW4gd2UgaW1wbGVtZW50IHJlc3VtaW5nLlxuXG5cbiAgICAgICAgICAgIGNvbW1pdFVwZGF0ZVF1ZXVlKGZpbmlzaGVkV29yaywgdXBkYXRlUXVldWUsIGluc3RhbmNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIEhvc3RSb290OlxuICAgICAgICB7XG4gICAgICAgICAgLy8gVE9ETzogSSB0aGluayB0aGlzIGlzIG5vdyBhbHdheXMgbm9uLW51bGwgYnkgdGhlIHRpbWUgaXQgcmVhY2hlcyB0aGVcbiAgICAgICAgICAvLyBjb21taXQgcGhhc2UuIENvbnNpZGVyIHJlbW92aW5nIHRoZSB0eXBlIGNoZWNrLlxuICAgICAgICAgIHZhciBfdXBkYXRlUXVldWUgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWU7XG5cbiAgICAgICAgICBpZiAoX3VwZGF0ZVF1ZXVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgX2luc3RhbmNlID0gbnVsbDtcblxuICAgICAgICAgICAgaWYgKGZpbmlzaGVkV29yay5jaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay5jaGlsZC50YWcpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICAgICAgICAgICAgICBfaW5zdGFuY2UgPSBnZXRQdWJsaWNJbnN0YW5jZShmaW5pc2hlZFdvcmsuY2hpbGQuc3RhdGVOb2RlKTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgICAgICAgICAgICAgIF9pbnN0YW5jZSA9IGZpbmlzaGVkV29yay5jaGlsZC5zdGF0ZU5vZGU7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb21taXRVcGRhdGVRdWV1ZShmaW5pc2hlZFdvcmssIF91cGRhdGVRdWV1ZSwgX2luc3RhbmNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgX2luc3RhbmNlMiA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7IC8vIFJlbmRlcmVycyBtYXkgc2NoZWR1bGUgd29yayB0byBiZSBkb25lIGFmdGVyIGhvc3QgY29tcG9uZW50cyBhcmUgbW91bnRlZFxuICAgICAgICAgIC8vIChlZyBET00gcmVuZGVyZXIgbWF5IHNjaGVkdWxlIGF1dG8tZm9jdXMgZm9yIGlucHV0cyBhbmQgZm9ybSBjb250cm9scykuXG4gICAgICAgICAgLy8gVGhlc2UgZWZmZWN0cyBzaG91bGQgb25seSBiZSBjb21taXR0ZWQgd2hlbiBjb21wb25lbnRzIGFyZSBmaXJzdCBtb3VudGVkLFxuICAgICAgICAgIC8vIGFrYSB3aGVuIHRoZXJlIGlzIG5vIGN1cnJlbnQvYWx0ZXJuYXRlLlxuXG4gICAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwgJiYgZmluaXNoZWRXb3JrLmZsYWdzICYgVXBkYXRlKSB7XG4gICAgICAgICAgICB2YXIgdHlwZSA9IGZpbmlzaGVkV29yay50eXBlO1xuICAgICAgICAgICAgdmFyIHByb3BzID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHM7XG4gICAgICAgICAgICBjb21taXRNb3VudChfaW5zdGFuY2UyLCB0eXBlLCBwcm9wcyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBIb3N0VGV4dDpcbiAgICAgICAge1xuICAgICAgICAgIC8vIFdlIGhhdmUgbm8gbGlmZS1jeWNsZXMgYXNzb2NpYXRlZCB3aXRoIHRleHQuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBIb3N0UG9ydGFsOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gV2UgaGF2ZSBubyBsaWZlLWN5Y2xlcyBhc3NvY2lhdGVkIHdpdGggcG9ydGFscy5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIFByb2ZpbGVyOlxuICAgICAgICB7XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIF9maW5pc2hlZFdvcmskbWVtb2l6ZTIgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyxcbiAgICAgICAgICAgICAgICBvbkNvbW1pdCA9IF9maW5pc2hlZFdvcmskbWVtb2l6ZTIub25Db21taXQsXG4gICAgICAgICAgICAgICAgb25SZW5kZXIgPSBfZmluaXNoZWRXb3JrJG1lbW9pemUyLm9uUmVuZGVyO1xuICAgICAgICAgICAgdmFyIGVmZmVjdER1cmF0aW9uID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZS5lZmZlY3REdXJhdGlvbjtcbiAgICAgICAgICAgIHZhciBjb21taXRUaW1lID0gZ2V0Q29tbWl0VGltZSgpO1xuICAgICAgICAgICAgdmFyIHBoYXNlID0gY3VycmVudCA9PT0gbnVsbCA/ICdtb3VudCcgOiAndXBkYXRlJztcblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZiAoaXNDdXJyZW50VXBkYXRlTmVzdGVkKCkpIHtcbiAgICAgICAgICAgICAgICBwaGFzZSA9ICduZXN0ZWQtdXBkYXRlJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIG9uUmVuZGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIG9uUmVuZGVyKGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzLmlkLCBwaGFzZSwgZmluaXNoZWRXb3JrLmFjdHVhbER1cmF0aW9uLCBmaW5pc2hlZFdvcmsudHJlZUJhc2VEdXJhdGlvbiwgZmluaXNoZWRXb3JrLmFjdHVhbFN0YXJ0VGltZSwgY29tbWl0VGltZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvbkNvbW1pdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIG9uQ29tbWl0KGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzLmlkLCBwaGFzZSwgZWZmZWN0RHVyYXRpb24sIGNvbW1pdFRpbWUpO1xuICAgICAgICAgICAgICB9IC8vIFNjaGVkdWxlIGEgcGFzc2l2ZSBlZmZlY3QgZm9yIHRoaXMgUHJvZmlsZXIgdG8gY2FsbCBvblBvc3RDb21taXQgaG9va3MuXG4gICAgICAgICAgICAgIC8vIFRoaXMgZWZmZWN0IHNob3VsZCBiZSBzY2hlZHVsZWQgZXZlbiBpZiB0aGVyZSBpcyBubyBvblBvc3RDb21taXQgY2FsbGJhY2sgZm9yIHRoaXMgUHJvZmlsZXIsXG4gICAgICAgICAgICAgIC8vIGJlY2F1c2UgdGhlIGVmZmVjdCBpcyBhbHNvIHdoZXJlIHRpbWVzIGJ1YmJsZSB0byBwYXJlbnQgUHJvZmlsZXJzLlxuXG5cbiAgICAgICAgICAgICAgZW5xdWV1ZVBlbmRpbmdQYXNzaXZlUHJvZmlsZXJFZmZlY3QoZmluaXNoZWRXb3JrKTsgLy8gUHJvcGFnYXRlIGxheW91dCBlZmZlY3QgZHVyYXRpb25zIHRvIHRoZSBuZXh0IG5lYXJlc3QgUHJvZmlsZXIgYW5jZXN0b3IuXG4gICAgICAgICAgICAgIC8vIERvIG5vdCByZXNldCB0aGVzZSB2YWx1ZXMgdW50aWwgdGhlIG5leHQgcmVuZGVyIHNvIERldlRvb2xzIGhhcyBhIGNoYW5jZSB0byByZWFkIHRoZW0gZmlyc3QuXG5cbiAgICAgICAgICAgICAgdmFyIHBhcmVudEZpYmVyID0gZmluaXNoZWRXb3JrLnJldHVybjtcblxuICAgICAgICAgICAgICBvdXRlcjogd2hpbGUgKHBhcmVudEZpYmVyICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChwYXJlbnRGaWJlci50YWcpIHtcbiAgICAgICAgICAgICAgICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICAgICAgICAgICAgICAgIHZhciByb290ID0gcGFyZW50RmliZXIuc3RhdGVOb2RlO1xuICAgICAgICAgICAgICAgICAgICByb290LmVmZmVjdER1cmF0aW9uICs9IGVmZmVjdER1cmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICBicmVhayBvdXRlcjtcblxuICAgICAgICAgICAgICAgICAgY2FzZSBQcm9maWxlcjpcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBhcmVudFN0YXRlTm9kZSA9IHBhcmVudEZpYmVyLnN0YXRlTm9kZTtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50U3RhdGVOb2RlLmVmZmVjdER1cmF0aW9uICs9IGVmZmVjdER1cmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICBicmVhayBvdXRlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLnJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICBjb21taXRTdXNwZW5zZUh5ZHJhdGlvbkNhbGxiYWNrcyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgICBjYXNlIEluY29tcGxldGVDbGFzc0NvbXBvbmVudDpcbiAgICAgIGNhc2UgU2NvcGVDb21wb25lbnQ6XG4gICAgICBjYXNlIE9mZnNjcmVlbkNvbXBvbmVudDpcbiAgICAgIGNhc2UgTGVnYWN5SGlkZGVuQ29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGlzIHVuaXQgb2Ygd29yayB0YWcgc2hvdWxkIG5vdCBoYXZlIHNpZGUtZWZmZWN0cy4gVGhpcyBlcnJvciBpcyAnICsgJ2xpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxuXG4gIGlmICggIW9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4pIHtcbiAgICB7XG4gICAgICBpZiAoZmluaXNoZWRXb3JrLmZsYWdzICYgUmVmKSB7XG4gICAgICAgIGNvbW1pdEF0dGFjaFJlZihmaW5pc2hlZFdvcmspO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZWFwcGVhckxheW91dEVmZmVjdHNPbkZpYmVyKG5vZGUpIHtcbiAgLy8gVHVybiBvbiBsYXlvdXQgZWZmZWN0cyBpbiBhIHRyZWUgdGhhdCBwcmV2aW91c2x5IGRpc2FwcGVhcmVkLlxuICAvLyBUT0RPIChPZmZzY3JlZW4pIENoZWNrOiBmbGFncyAmIExheW91dFN0YXRpY1xuICBzd2l0Y2ggKG5vZGUudGFnKSB7XG4gICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBpZiAoIG5vZGUubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN0YXJ0TGF5b3V0RWZmZWN0VGltZXIoKTtcbiAgICAgICAgICAgIHNhZmVseUNhbGxDb21taXRIb29rTGF5b3V0RWZmZWN0TGlzdE1vdW50KG5vZGUsIG5vZGUucmV0dXJuKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgcmVjb3JkTGF5b3V0RWZmZWN0RHVyYXRpb24obm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNhZmVseUNhbGxDb21taXRIb29rTGF5b3V0RWZmZWN0TGlzdE1vdW50KG5vZGUsIG5vZGUucmV0dXJuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIGluc3RhbmNlID0gbm9kZS5zdGF0ZU5vZGU7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRNb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHNhZmVseUNhbGxDb21wb25lbnREaWRNb3VudChub2RlLCBub2RlLnJldHVybiwgaW5zdGFuY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2FmZWx5QXR0YWNoUmVmKG5vZGUsIG5vZGUucmV0dXJuKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHNhZmVseUF0dGFjaFJlZihub2RlLCBub2RlLnJldHVybik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGhpZGVPclVuaGlkZUFsbENoaWxkcmVuKGZpbmlzaGVkV29yaywgaXNIaWRkZW4pIHtcbiAgLy8gT25seSBoaWRlIG9yIHVuaGlkZSB0aGUgdG9wLW1vc3QgaG9zdCBub2Rlcy5cbiAgdmFyIGhvc3RTdWJ0cmVlUm9vdCA9IG51bGw7XG5cbiAge1xuICAgIC8vIFdlIG9ubHkgaGF2ZSB0aGUgdG9wIEZpYmVyIHRoYXQgd2FzIGluc2VydGVkIGJ1dCB3ZSBuZWVkIHRvIHJlY3Vyc2UgZG93biBpdHNcbiAgICAvLyBjaGlsZHJlbiB0byBmaW5kIGFsbCB0aGUgdGVybWluYWwgbm9kZXMuXG4gICAgdmFyIG5vZGUgPSBmaW5pc2hlZFdvcms7XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKG5vZGUudGFnID09PSBIb3N0Q29tcG9uZW50KSB7XG4gICAgICAgIGlmIChob3N0U3VidHJlZVJvb3QgPT09IG51bGwpIHtcbiAgICAgICAgICBob3N0U3VidHJlZVJvb3QgPSBub2RlO1xuICAgICAgICAgIHZhciBpbnN0YW5jZSA9IG5vZGUuc3RhdGVOb2RlO1xuXG4gICAgICAgICAgaWYgKGlzSGlkZGVuKSB7XG4gICAgICAgICAgICBoaWRlSW5zdGFuY2UoaW5zdGFuY2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1bmhpZGVJbnN0YW5jZShub2RlLnN0YXRlTm9kZSwgbm9kZS5tZW1vaXplZFByb3BzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobm9kZS50YWcgPT09IEhvc3RUZXh0KSB7XG4gICAgICAgIGlmIChob3N0U3VidHJlZVJvb3QgPT09IG51bGwpIHtcbiAgICAgICAgICB2YXIgX2luc3RhbmNlMyA9IG5vZGUuc3RhdGVOb2RlO1xuXG4gICAgICAgICAgaWYgKGlzSGlkZGVuKSB7XG4gICAgICAgICAgICBoaWRlVGV4dEluc3RhbmNlKF9pbnN0YW5jZTMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1bmhpZGVUZXh0SW5zdGFuY2UoX2luc3RhbmNlMywgbm9kZS5tZW1vaXplZFByb3BzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoKG5vZGUudGFnID09PSBPZmZzY3JlZW5Db21wb25lbnQgfHwgbm9kZS50YWcgPT09IExlZ2FjeUhpZGRlbkNvbXBvbmVudCkgJiYgbm9kZS5tZW1vaXplZFN0YXRlICE9PSBudWxsICYmIG5vZGUgIT09IGZpbmlzaGVkV29yaykgOyBlbHNlIGlmIChub2RlLmNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgIG5vZGUuY2hpbGQucmV0dXJuID0gbm9kZTtcbiAgICAgICAgbm9kZSA9IG5vZGUuY2hpbGQ7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAobm9kZSA9PT0gZmluaXNoZWRXb3JrKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2hpbGUgKG5vZGUuc2libGluZyA9PT0gbnVsbCkge1xuICAgICAgICBpZiAobm9kZS5yZXR1cm4gPT09IG51bGwgfHwgbm9kZS5yZXR1cm4gPT09IGZpbmlzaGVkV29yaykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChob3N0U3VidHJlZVJvb3QgPT09IG5vZGUpIHtcbiAgICAgICAgICBob3N0U3VidHJlZVJvb3QgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoaG9zdFN1YnRyZWVSb290ID09PSBub2RlKSB7XG4gICAgICAgIGhvc3RTdWJ0cmVlUm9vdCA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIG5vZGUuc2libGluZy5yZXR1cm4gPSBub2RlLnJldHVybjtcbiAgICAgIG5vZGUgPSBub2RlLnNpYmxpbmc7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdEF0dGFjaFJlZihmaW5pc2hlZFdvcmspIHtcbiAgdmFyIHJlZiA9IGZpbmlzaGVkV29yay5yZWY7XG5cbiAgaWYgKHJlZiAhPT0gbnVsbCkge1xuICAgIHZhciBpbnN0YW5jZSA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgdmFyIGluc3RhbmNlVG9Vc2U7XG5cbiAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHtcbiAgICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgICAgaW5zdGFuY2VUb1VzZSA9IGdldFB1YmxpY0luc3RhbmNlKGluc3RhbmNlKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGluc3RhbmNlVG9Vc2UgPSBpbnN0YW5jZTtcbiAgICB9IC8vIE1vdmVkIG91dHNpZGUgdG8gZW5zdXJlIERDRSB3b3JrcyB3aXRoIHRoaXMgZmxhZ1xuXG4gICAgaWYgKHR5cGVvZiByZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciByZXRWYWw7XG5cbiAgICAgIGlmICggZmluaXNoZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHN0YXJ0TGF5b3V0RWZmZWN0VGltZXIoKTtcbiAgICAgICAgICByZXRWYWwgPSByZWYoaW5zdGFuY2VUb1VzZSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgcmVjb3JkTGF5b3V0RWZmZWN0RHVyYXRpb24oZmluaXNoZWRXb3JrKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0VmFsID0gcmVmKGluc3RhbmNlVG9Vc2UpO1xuICAgICAgfVxuXG4gICAgICB7XG4gICAgICAgIGlmICh0eXBlb2YgcmV0VmFsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgZXJyb3IoJ1VuZXhwZWN0ZWQgcmV0dXJuIHZhbHVlIGZyb20gYSBjYWxsYmFjayByZWYgaW4gJXMuICcgKyAnQSBjYWxsYmFjayByZWYgc2hvdWxkIG5vdCByZXR1cm4gYSBmdW5jdGlvbi4nLCBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHtcbiAgICAgICAgaWYgKCFyZWYuaGFzT3duUHJvcGVydHkoJ2N1cnJlbnQnKSkge1xuICAgICAgICAgIGVycm9yKCdVbmV4cGVjdGVkIHJlZiBvYmplY3QgcHJvdmlkZWQgZm9yICVzLiAnICsgJ1VzZSBlaXRoZXIgYSByZWYtc2V0dGVyIGZ1bmN0aW9uIG9yIFJlYWN0LmNyZWF0ZVJlZigpLicsIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmVmLmN1cnJlbnQgPSBpbnN0YW5jZVRvVXNlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXREZXRhY2hSZWYoY3VycmVudCkge1xuICB2YXIgY3VycmVudFJlZiA9IGN1cnJlbnQucmVmO1xuXG4gIGlmIChjdXJyZW50UmVmICE9PSBudWxsKSB7XG4gICAgaWYgKHR5cGVvZiBjdXJyZW50UmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAoIGN1cnJlbnQubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgc3RhcnRMYXlvdXRFZmZlY3RUaW1lcigpO1xuICAgICAgICAgIGN1cnJlbnRSZWYobnVsbCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgcmVjb3JkTGF5b3V0RWZmZWN0RHVyYXRpb24oY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN1cnJlbnRSZWYobnVsbCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnRSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfVxuICB9XG59IC8vIFVzZXItb3JpZ2luYXRpbmcgZXJyb3JzIChsaWZlY3ljbGVzIGFuZCByZWZzKSBzaG91bGQgbm90IGludGVycnVwdFxuLy8gZGVsZXRpb24sIHNvIGRvbid0IGxldCB0aGVtIHRocm93LiBIb3N0LW9yaWdpbmF0aW5nIGVycm9ycyBzaG91bGRcbi8vIGludGVycnVwdCBkZWxldGlvbiwgc28gaXQncyBva2F5XG5cblxuZnVuY3Rpb24gY29tbWl0VW5tb3VudChmaW5pc2hlZFJvb3QsIGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IpIHtcbiAgb25Db21taXRVbm1vdW50KGN1cnJlbnQpO1xuXG4gIHN3aXRjaCAoY3VycmVudC50YWcpIHtcbiAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICBjYXNlIE1lbW9Db21wb25lbnQ6XG4gICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB2YXIgdXBkYXRlUXVldWUgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlO1xuXG4gICAgICAgIGlmICh1cGRhdGVRdWV1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHZhciBsYXN0RWZmZWN0ID0gdXBkYXRlUXVldWUubGFzdEVmZmVjdDtcblxuICAgICAgICAgIGlmIChsYXN0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgZmlyc3RFZmZlY3QgPSBsYXN0RWZmZWN0Lm5leHQ7XG4gICAgICAgICAgICB2YXIgZWZmZWN0ID0gZmlyc3RFZmZlY3Q7XG5cbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgdmFyIF9lZmZlY3QgPSBlZmZlY3QsXG4gICAgICAgICAgICAgICAgICBkZXN0cm95ID0gX2VmZmVjdC5kZXN0cm95LFxuICAgICAgICAgICAgICAgICAgdGFnID0gX2VmZmVjdC50YWc7XG5cbiAgICAgICAgICAgICAgaWYgKGRlc3Ryb3kgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmICgodGFnICYgSW5zZXJ0aW9uKSAhPT0gTm9GbGFncyQxKSB7XG4gICAgICAgICAgICAgICAgICBzYWZlbHlDYWxsRGVzdHJveShjdXJyZW50LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBkZXN0cm95KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCh0YWcgJiBMYXlvdXQpICE9PSBOb0ZsYWdzJDEpIHtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbWFya0NvbXBvbmVudExheW91dEVmZmVjdFVubW91bnRTdGFydGVkKGN1cnJlbnQpO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBpZiAoIGN1cnJlbnQubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0TGF5b3V0RWZmZWN0VGltZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgc2FmZWx5Q2FsbERlc3Ryb3koY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZGVzdHJveSk7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZExheW91dEVmZmVjdER1cmF0aW9uKGN1cnJlbnQpO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2FmZWx5Q2FsbERlc3Ryb3koY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZGVzdHJveSk7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbWFya0NvbXBvbmVudExheW91dEVmZmVjdFVubW91bnRTdG9wcGVkKCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZWZmZWN0ID0gZWZmZWN0Lm5leHQ7XG4gICAgICAgICAgICB9IHdoaWxlIChlZmZlY3QgIT09IGZpcnN0RWZmZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBzYWZlbHlEZXRhY2hSZWYoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcik7XG4gICAgICAgIHZhciBpbnN0YW5jZSA9IGN1cnJlbnQuc3RhdGVOb2RlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVubW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBzYWZlbHlDYWxsQ29tcG9uZW50V2lsbFVubW91bnQoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgaW5zdGFuY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBzYWZlbHlEZXRhY2hSZWYoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgIHtcbiAgICAgICAgLy8gVE9ETzogdGhpcyBpcyByZWN1cnNpdmUuXG4gICAgICAgIC8vIFdlIGFyZSBhbHNvIG5vdCB1c2luZyB0aGlzIHBhcmVudCBiZWNhdXNlXG4gICAgICAgIC8vIHRoZSBwb3J0YWwgd2lsbCBnZXQgcHVzaGVkIGltbWVkaWF0ZWx5LlxuICAgICAgICB7XG4gICAgICAgICAgdW5tb3VudEhvc3RDb21wb25lbnRzKGZpbmlzaGVkUm9vdCwgY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIERlaHlkcmF0ZWRGcmFnbWVudDpcbiAgICAgIHtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIFNjb3BlQ29tcG9uZW50OlxuICAgICAge1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXROZXN0ZWRVbm1vdW50cyhmaW5pc2hlZFJvb3QsIHJvb3QsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IpIHtcbiAgLy8gV2hpbGUgd2UncmUgaW5zaWRlIGEgcmVtb3ZlZCBob3N0IG5vZGUgd2UgZG9uJ3Qgd2FudCB0byBjYWxsXG4gIC8vIHJlbW92ZUNoaWxkIG9uIHRoZSBpbm5lciBub2RlcyBiZWNhdXNlIHRoZXkncmUgcmVtb3ZlZCBieSB0aGUgdG9wXG4gIC8vIGNhbGwgYW55d2F5LiBXZSBhbHNvIHdhbnQgdG8gY2FsbCBjb21wb25lbnRXaWxsVW5tb3VudCBvbiBhbGxcbiAgLy8gY29tcG9zaXRlcyBiZWZvcmUgdGhpcyBob3N0IG5vZGUgaXMgcmVtb3ZlZCBmcm9tIHRoZSB0cmVlLiBUaGVyZWZvcmVcbiAgLy8gd2UgZG8gYW4gaW5uZXIgbG9vcCB3aGlsZSB3ZSdyZSBzdGlsbCBpbnNpZGUgdGhlIGhvc3Qgbm9kZS5cbiAgdmFyIG5vZGUgPSByb290O1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgY29tbWl0VW5tb3VudChmaW5pc2hlZFJvb3QsIG5vZGUsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IpOyAvLyBWaXNpdCBjaGlsZHJlbiBiZWNhdXNlIHRoZXkgbWF5IGNvbnRhaW4gbW9yZSBjb21wb3NpdGUgb3IgaG9zdCBub2Rlcy5cbiAgICAvLyBTa2lwIHBvcnRhbHMgYmVjYXVzZSBjb21taXRVbm1vdW50KCkgY3VycmVudGx5IHZpc2l0cyB0aGVtIHJlY3Vyc2l2ZWx5LlxuXG4gICAgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwgJiYgKCAvLyBJZiB3ZSB1c2UgbXV0YXRpb24gd2UgZHJpbGwgZG93biBpbnRvIHBvcnRhbHMgdXNpbmcgY29tbWl0VW5tb3VudCBhYm92ZS5cbiAgICAvLyBJZiB3ZSBkb24ndCB1c2UgbXV0YXRpb24gd2UgZHJpbGwgZG93biBpbnRvIHBvcnRhbHMgaGVyZSBpbnN0ZWFkLlxuICAgICBub2RlLnRhZyAhPT0gSG9zdFBvcnRhbCkpIHtcbiAgICAgIG5vZGUuY2hpbGQucmV0dXJuID0gbm9kZTtcbiAgICAgIG5vZGUgPSBub2RlLmNoaWxkO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUgPT09IHJvb3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3aGlsZSAobm9kZS5zaWJsaW5nID09PSBudWxsKSB7XG4gICAgICBpZiAobm9kZS5yZXR1cm4gPT09IG51bGwgfHwgbm9kZS5yZXR1cm4gPT09IHJvb3QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBub2RlID0gbm9kZS5yZXR1cm47XG4gICAgfVxuXG4gICAgbm9kZS5zaWJsaW5nLnJldHVybiA9IG5vZGUucmV0dXJuO1xuICAgIG5vZGUgPSBub2RlLnNpYmxpbmc7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGV0YWNoRmliZXJNdXRhdGlvbihmaWJlcikge1xuICAvLyBDdXQgb2ZmIHRoZSByZXR1cm4gcG9pbnRlciB0byBkaXNjb25uZWN0IGl0IGZyb20gdGhlIHRyZWUuXG4gIC8vIFRoaXMgZW5hYmxlcyB1cyB0byBkZXRlY3QgYW5kIHdhcm4gYWdhaW5zdCBzdGF0ZSB1cGRhdGVzIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXG4gIC8vIEl0IGFsc28gcHJldmVudHMgZXZlbnRzIGZyb20gYnViYmxpbmcgZnJvbSB3aXRoaW4gZGlzY29ubmVjdGVkIGNvbXBvbmVudHMuXG4gIC8vXG4gIC8vIElkZWFsbHksIHdlIHNob3VsZCBhbHNvIGNsZWFyIHRoZSBjaGlsZCBwb2ludGVyIG9mIHRoZSBwYXJlbnQgYWx0ZXJuYXRlIHRvIGxldCB0aGlzXG4gIC8vIGdldCBHQzplZCBidXQgd2UgZG9uJ3Qga25vdyB3aGljaCBmb3Igc3VyZSB3aGljaCBwYXJlbnQgaXMgdGhlIGN1cnJlbnRcbiAgLy8gb25lIHNvIHdlJ2xsIHNldHRsZSBmb3IgR0M6aW5nIHRoZSBzdWJ0cmVlIG9mIHRoaXMgY2hpbGQuXG4gIC8vIFRoaXMgY2hpbGQgaXRzZWxmIHdpbGwgYmUgR0M6ZWQgd2hlbiB0aGUgcGFyZW50IHVwZGF0ZXMgdGhlIG5leHQgdGltZS5cbiAgLy9cbiAgLy8gTm90ZSB0aGF0IHdlIGNhbid0IGNsZWFyIGNoaWxkIG9yIHNpYmxpbmcgcG9pbnRlcnMgeWV0LlxuICAvLyBUaGV5J3JlIG5lZWRlZCBmb3IgcGFzc2l2ZSBlZmZlY3RzIGFuZCBmb3IgZmluZERPTU5vZGUuXG4gIC8vIFdlIGRlZmVyIHRob3NlIGZpZWxkcywgYW5kIGFsbCBvdGhlciBjbGVhbnVwLCB0byB0aGUgcGFzc2l2ZSBwaGFzZSAoc2VlIGRldGFjaEZpYmVyQWZ0ZXJFZmZlY3RzKS5cbiAgLy9cbiAgLy8gRG9uJ3QgcmVzZXQgdGhlIGFsdGVybmF0ZSB5ZXQsIGVpdGhlci4gV2UgbmVlZCB0aGF0IHNvIHdlIGNhbiBkZXRhY2ggdGhlXG4gIC8vIGFsdGVybmF0ZSdzIGZpZWxkcyBpbiB0aGUgcGFzc2l2ZSBwaGFzZS4gQ2xlYXJpbmcgdGhlIHJldHVybiBwb2ludGVyIGlzXG4gIC8vIHN1ZmZpY2llbnQgZm9yIGZpbmRET01Ob2RlIHNlbWFudGljcy5cbiAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICBpZiAoYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgYWx0ZXJuYXRlLnJldHVybiA9IG51bGw7XG4gIH1cblxuICBmaWJlci5yZXR1cm4gPSBudWxsO1xufVxuXG5mdW5jdGlvbiBkZXRhY2hGaWJlckFmdGVyRWZmZWN0cyhmaWJlcikge1xuICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuXG4gIGlmIChhbHRlcm5hdGUgIT09IG51bGwpIHtcbiAgICBmaWJlci5hbHRlcm5hdGUgPSBudWxsO1xuICAgIGRldGFjaEZpYmVyQWZ0ZXJFZmZlY3RzKGFsdGVybmF0ZSk7XG4gIH0gLy8gTm90ZTogRGVmZW5zaXZlbHkgdXNpbmcgbmVnYXRpb24gaW5zdGVhZCBvZiA8IGluIGNhc2VcbiAgLy8gYGRlbGV0ZWRUcmVlQ2xlYW5VcExldmVsYCBpcyB1bmRlZmluZWQuXG5cblxuICB7XG4gICAgLy8gQ2xlYXIgY3ljbGljYWwgRmliZXIgZmllbGRzLiBUaGlzIGxldmVsIGFsb25lIGlzIGRlc2lnbmVkIHRvIHJvdWdobHlcbiAgICAvLyBhcHByb3hpbWF0ZSB0aGUgcGxhbm5lZCBGaWJlciByZWZhY3Rvci4gSW4gdGhhdCB3b3JsZCwgYHNldFN0YXRlYCB3aWxsIGJlXG4gICAgLy8gYm91bmQgdG8gYSBzcGVjaWFsIFwiaW5zdGFuY2VcIiBvYmplY3QgaW5zdGVhZCBvZiBhIEZpYmVyLiBUaGUgSW5zdGFuY2VcbiAgICAvLyBvYmplY3Qgd2lsbCBub3QgaGF2ZSBhbnkgb2YgdGhlc2UgZmllbGRzLiBJdCB3aWxsIG9ubHkgYmUgY29ubmVjdGVkIHRvXG4gICAgLy8gdGhlIGZpYmVyIHRyZWUgdmlhIGEgc2luZ2xlIGxpbmsgYXQgdGhlIHJvb3QuIFNvIGlmIHRoaXMgbGV2ZWwgYWxvbmUgaXNcbiAgICAvLyBzdWZmaWNpZW50IHRvIGZpeCBtZW1vcnkgaXNzdWVzLCB0aGF0IGJvZGVzIHdlbGwgZm9yIG91ciBwbGFucy5cbiAgICBmaWJlci5jaGlsZCA9IG51bGw7XG4gICAgZmliZXIuZGVsZXRpb25zID0gbnVsbDtcbiAgICBmaWJlci5zaWJsaW5nID0gbnVsbDsgLy8gVGhlIGBzdGF0ZU5vZGVgIGlzIGN5Y2xpY2FsIGJlY2F1c2Ugb24gaG9zdCBub2RlcyBpdCBwb2ludHMgdG8gdGhlIGhvc3RcbiAgICAvLyB0cmVlLCB3aGljaCBoYXMgaXRzIG93biBwb2ludGVycyB0byBjaGlsZHJlbiwgcGFyZW50cywgYW5kIHNpYmxpbmdzLlxuICAgIC8vIFRoZSBvdGhlciBob3N0IG5vZGVzIGFsc28gcG9pbnQgYmFjayB0byBmaWJlcnMsIHNvIHdlIHNob3VsZCBkZXRhY2ggdGhhdFxuICAgIC8vIG9uZSwgdG9vLlxuXG4gICAgaWYgKGZpYmVyLnRhZyA9PT0gSG9zdENvbXBvbmVudCkge1xuICAgICAgdmFyIGhvc3RJbnN0YW5jZSA9IGZpYmVyLnN0YXRlTm9kZTtcblxuICAgICAgaWYgKGhvc3RJbnN0YW5jZSAhPT0gbnVsbCkge1xuICAgICAgICBkZXRhY2hEZWxldGVkSW5zdGFuY2UoaG9zdEluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmaWJlci5zdGF0ZU5vZGUgPSBudWxsOyAvLyBJJ20gaW50ZW50aW9uYWxseSBub3QgY2xlYXJpbmcgdGhlIGByZXR1cm5gIGZpZWxkIGluIHRoaXMgbGV2ZWwuIFdlXG4gICAgLy8gYWxyZWFkeSBkaXNjb25uZWN0IHRoZSBgcmV0dXJuYCBwb2ludGVyIGF0IHRoZSByb290IG9mIHRoZSBkZWxldGVkXG4gICAgLy8gc3VidHJlZSAoaW4gYGRldGFjaEZpYmVyTXV0YXRpb25gKS4gQmVzaWRlcywgYHJldHVybmAgYnkgaXRzZWxmIGlzIG5vdFxuICAgIC8vIGN5Y2xpY2FsIFx1MjAxNCBpdCdzIG9ubHkgY3ljbGljYWwgd2hlbiBjb21iaW5lZCB3aXRoIGBjaGlsZGAsIGBzaWJsaW5nYCwgYW5kXG4gICAgLy8gYGFsdGVybmF0ZWAuIEJ1dCB3ZSdsbCBjbGVhciBpdCBpbiB0aGUgbmV4dCBsZXZlbCBhbnl3YXksIGp1c3QgaW4gY2FzZS5cblxuICAgIHtcbiAgICAgIGZpYmVyLl9kZWJ1Z093bmVyID0gbnVsbDtcbiAgICB9XG5cbiAgICB7XG4gICAgICAvLyBUaGVvcmV0aWNhbGx5LCBub3RoaW5nIGluIGhlcmUgc2hvdWxkIGJlIG5lY2Vzc2FyeSwgYmVjYXVzZSB3ZSBhbHJlYWR5XG4gICAgICAvLyBkaXNjb25uZWN0ZWQgdGhlIGZpYmVyIGZyb20gdGhlIHRyZWUuIFNvIGV2ZW4gaWYgc29tZXRoaW5nIGxlYWtzIHRoaXNcbiAgICAgIC8vIHBhcnRpY3VsYXIgZmliZXIsIGl0IHdvbid0IGxlYWsgYW55dGhpbmcgZWxzZVxuICAgICAgLy9cbiAgICAgIC8vIFRoZSBwdXJwb3NlIG9mIHRoaXMgYnJhbmNoIGlzIHRvIGJlIHN1cGVyIGFnZ3Jlc3NpdmUgc28gd2UgY2FuIG1lYXN1cmVcbiAgICAgIC8vIGlmIHRoZXJlJ3MgYW55IGRpZmZlcmVuY2UgaW4gbWVtb3J5IGltcGFjdC4gSWYgdGhlcmUgaXMsIHRoYXQgY291bGRcbiAgICAgIC8vIGluZGljYXRlIGEgUmVhY3QgbGVhayB3ZSBkb24ndCBrbm93IGFib3V0LlxuICAgICAgZmliZXIucmV0dXJuID0gbnVsbDtcbiAgICAgIGZpYmVyLmRlcGVuZGVuY2llcyA9IG51bGw7XG4gICAgICBmaWJlci5tZW1vaXplZFByb3BzID0gbnVsbDtcbiAgICAgIGZpYmVyLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgICAgZmliZXIucGVuZGluZ1Byb3BzID0gbnVsbDtcbiAgICAgIGZpYmVyLnN0YXRlTm9kZSA9IG51bGw7IC8vIFRPRE86IE1vdmUgdG8gYGNvbW1pdFBhc3NpdmVVbm1vdW50SW5zaWRlRGVsZXRlZFRyZWVPbkZpYmVyYCBpbnN0ZWFkLlxuXG4gICAgICBmaWJlci51cGRhdGVRdWV1ZSA9IG51bGw7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldEhvc3RQYXJlbnRGaWJlcihmaWJlcikge1xuICB2YXIgcGFyZW50ID0gZmliZXIucmV0dXJuO1xuXG4gIHdoaWxlIChwYXJlbnQgIT09IG51bGwpIHtcbiAgICBpZiAoaXNIb3N0UGFyZW50KHBhcmVudCkpIHtcbiAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgfVxuXG4gICAgcGFyZW50ID0gcGFyZW50LnJldHVybjtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdG8gZmluZCBhIGhvc3QgcGFyZW50LiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgJyArICdpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG59XG5cbmZ1bmN0aW9uIGlzSG9zdFBhcmVudChmaWJlcikge1xuICByZXR1cm4gZmliZXIudGFnID09PSBIb3N0Q29tcG9uZW50IHx8IGZpYmVyLnRhZyA9PT0gSG9zdFJvb3QgfHwgZmliZXIudGFnID09PSBIb3N0UG9ydGFsO1xufVxuXG5mdW5jdGlvbiBnZXRIb3N0U2libGluZyhmaWJlcikge1xuICAvLyBXZSdyZSBnb2luZyB0byBzZWFyY2ggZm9yd2FyZCBpbnRvIHRoZSB0cmVlIHVudGlsIHdlIGZpbmQgYSBzaWJsaW5nIGhvc3RcbiAgLy8gbm9kZS4gVW5mb3J0dW5hdGVseSwgaWYgbXVsdGlwbGUgaW5zZXJ0aW9ucyBhcmUgZG9uZSBpbiBhIHJvdyB3ZSBoYXZlIHRvXG4gIC8vIHNlYXJjaCBwYXN0IHRoZW0uIFRoaXMgbGVhZHMgdG8gZXhwb25lbnRpYWwgc2VhcmNoIGZvciB0aGUgbmV4dCBzaWJsaW5nLlxuICAvLyBUT0RPOiBGaW5kIGEgbW9yZSBlZmZpY2llbnQgd2F5IHRvIGRvIHRoaXMuXG4gIHZhciBub2RlID0gZmliZXI7XG5cbiAgc2libGluZ3M6IHdoaWxlICh0cnVlKSB7XG4gICAgLy8gSWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcsIGxldCdzIHRyeSB0aGUgbmV4dCBzaWJsaW5nLlxuICAgIHdoaWxlIChub2RlLnNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgIGlmIChub2RlLnJldHVybiA9PT0gbnVsbCB8fCBpc0hvc3RQYXJlbnQobm9kZS5yZXR1cm4pKSB7XG4gICAgICAgIC8vIElmIHdlIHBvcCBvdXQgb2YgdGhlIHJvb3Qgb3IgaGl0IHRoZSBwYXJlbnQgdGhlIGZpYmVyIHdlIGFyZSB0aGVcbiAgICAgICAgLy8gbGFzdCBzaWJsaW5nLlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH1cblxuICAgIG5vZGUuc2libGluZy5yZXR1cm4gPSBub2RlLnJldHVybjtcbiAgICBub2RlID0gbm9kZS5zaWJsaW5nO1xuXG4gICAgd2hpbGUgKG5vZGUudGFnICE9PSBIb3N0Q29tcG9uZW50ICYmIG5vZGUudGFnICE9PSBIb3N0VGV4dCAmJiBub2RlLnRhZyAhPT0gRGVoeWRyYXRlZEZyYWdtZW50KSB7XG4gICAgICAvLyBJZiBpdCBpcyBub3QgaG9zdCBub2RlIGFuZCwgd2UgbWlnaHQgaGF2ZSBhIGhvc3Qgbm9kZSBpbnNpZGUgaXQuXG4gICAgICAvLyBUcnkgdG8gc2VhcmNoIGRvd24gdW50aWwgd2UgZmluZCBvbmUuXG4gICAgICBpZiAobm9kZS5mbGFncyAmIFBsYWNlbWVudCkge1xuICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgY2hpbGQsIHRyeSB0aGUgc2libGluZ3MgaW5zdGVhZC5cbiAgICAgICAgY29udGludWUgc2libGluZ3M7XG4gICAgICB9IC8vIElmIHdlIGRvbid0IGhhdmUgYSBjaGlsZCwgdHJ5IHRoZSBzaWJsaW5ncyBpbnN0ZWFkLlxuICAgICAgLy8gV2UgYWxzbyBza2lwIHBvcnRhbHMgYmVjYXVzZSB0aGV5IGFyZSBub3QgcGFydCBvZiB0aGlzIGhvc3QgdHJlZS5cblxuXG4gICAgICBpZiAobm9kZS5jaGlsZCA9PT0gbnVsbCB8fCBub2RlLnRhZyA9PT0gSG9zdFBvcnRhbCkge1xuICAgICAgICBjb250aW51ZSBzaWJsaW5ncztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGUuY2hpbGQucmV0dXJuID0gbm9kZTtcbiAgICAgICAgbm9kZSA9IG5vZGUuY2hpbGQ7XG4gICAgICB9XG4gICAgfSAvLyBDaGVjayBpZiB0aGlzIGhvc3Qgbm9kZSBpcyBzdGFibGUgb3IgYWJvdXQgdG8gYmUgcGxhY2VkLlxuXG5cbiAgICBpZiAoIShub2RlLmZsYWdzICYgUGxhY2VtZW50KSkge1xuICAgICAgLy8gRm91bmQgaXQhXG4gICAgICByZXR1cm4gbm9kZS5zdGF0ZU5vZGU7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFBsYWNlbWVudChmaW5pc2hlZFdvcmspIHtcblxuXG4gIHZhciBwYXJlbnRGaWJlciA9IGdldEhvc3RQYXJlbnRGaWJlcihmaW5pc2hlZFdvcmspOyAvLyBOb3RlOiB0aGVzZSB0d28gdmFyaWFibGVzICptdXN0KiBhbHdheXMgYmUgdXBkYXRlZCB0b2dldGhlci5cblxuICBzd2l0Y2ggKHBhcmVudEZpYmVyLnRhZykge1xuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIHBhcmVudCA9IHBhcmVudEZpYmVyLnN0YXRlTm9kZTtcblxuICAgICAgICBpZiAocGFyZW50RmliZXIuZmxhZ3MgJiBDb250ZW50UmVzZXQpIHtcbiAgICAgICAgICAvLyBSZXNldCB0aGUgdGV4dCBjb250ZW50IG9mIHRoZSBwYXJlbnQgYmVmb3JlIGRvaW5nIGFueSBpbnNlcnRpb25zXG4gICAgICAgICAgcmVzZXRUZXh0Q29udGVudChwYXJlbnQpOyAvLyBDbGVhciBDb250ZW50UmVzZXQgZnJvbSB0aGUgZWZmZWN0IHRhZ1xuXG4gICAgICAgICAgcGFyZW50RmliZXIuZmxhZ3MgJj0gfkNvbnRlbnRSZXNldDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBiZWZvcmUgPSBnZXRIb3N0U2libGluZyhmaW5pc2hlZFdvcmspOyAvLyBXZSBvbmx5IGhhdmUgdGhlIHRvcCBGaWJlciB0aGF0IHdhcyBpbnNlcnRlZCBidXQgd2UgbmVlZCB0byByZWN1cnNlIGRvd24gaXRzXG4gICAgICAgIC8vIGNoaWxkcmVuIHRvIGZpbmQgYWxsIHRoZSB0ZXJtaW5hbCBub2Rlcy5cblxuICAgICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGUoZmluaXNoZWRXb3JrLCBiZWZvcmUsIHBhcmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Um9vdDpcbiAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICB7XG4gICAgICAgIHZhciBfcGFyZW50ID0gcGFyZW50RmliZXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87XG5cbiAgICAgICAgdmFyIF9iZWZvcmUgPSBnZXRIb3N0U2libGluZyhmaW5pc2hlZFdvcmspO1xuXG4gICAgICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZUludG9Db250YWluZXIoZmluaXNoZWRXb3JrLCBfYmVmb3JlLCBfcGFyZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lLW5vLWZhbGx0aHJvdWdoXG5cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGhvc3QgcGFyZW50IGZpYmVyLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgJyArICdpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlSW50b0NvbnRhaW5lcihub2RlLCBiZWZvcmUsIHBhcmVudCkge1xuICB2YXIgdGFnID0gbm9kZS50YWc7XG4gIHZhciBpc0hvc3QgPSB0YWcgPT09IEhvc3RDb21wb25lbnQgfHwgdGFnID09PSBIb3N0VGV4dDtcblxuICBpZiAoaXNIb3N0KSB7XG4gICAgdmFyIHN0YXRlTm9kZSA9IG5vZGUuc3RhdGVOb2RlO1xuXG4gICAgaWYgKGJlZm9yZSkge1xuICAgICAgaW5zZXJ0SW5Db250YWluZXJCZWZvcmUocGFyZW50LCBzdGF0ZU5vZGUsIGJlZm9yZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFwcGVuZENoaWxkVG9Db250YWluZXIocGFyZW50LCBzdGF0ZU5vZGUpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0YWcgPT09IEhvc3RQb3J0YWwpIDsgZWxzZSB7XG4gICAgdmFyIGNoaWxkID0gbm9kZS5jaGlsZDtcblxuICAgIGlmIChjaGlsZCAhPT0gbnVsbCkge1xuICAgICAgaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlSW50b0NvbnRhaW5lcihjaGlsZCwgYmVmb3JlLCBwYXJlbnQpO1xuICAgICAgdmFyIHNpYmxpbmcgPSBjaGlsZC5zaWJsaW5nO1xuXG4gICAgICB3aGlsZSAoc2libGluZyAhPT0gbnVsbCkge1xuICAgICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGVJbnRvQ29udGFpbmVyKHNpYmxpbmcsIGJlZm9yZSwgcGFyZW50KTtcbiAgICAgICAgc2libGluZyA9IHNpYmxpbmcuc2libGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlKG5vZGUsIGJlZm9yZSwgcGFyZW50KSB7XG4gIHZhciB0YWcgPSBub2RlLnRhZztcbiAgdmFyIGlzSG9zdCA9IHRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCB0YWcgPT09IEhvc3RUZXh0O1xuXG4gIGlmIChpc0hvc3QpIHtcbiAgICB2YXIgc3RhdGVOb2RlID0gbm9kZS5zdGF0ZU5vZGU7XG5cbiAgICBpZiAoYmVmb3JlKSB7XG4gICAgICBpbnNlcnRCZWZvcmUocGFyZW50LCBzdGF0ZU5vZGUsIGJlZm9yZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFwcGVuZENoaWxkKHBhcmVudCwgc3RhdGVOb2RlKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodGFnID09PSBIb3N0UG9ydGFsKSA7IGVsc2Uge1xuICAgIHZhciBjaGlsZCA9IG5vZGUuY2hpbGQ7XG5cbiAgICBpZiAoY2hpbGQgIT09IG51bGwpIHtcbiAgICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZShjaGlsZCwgYmVmb3JlLCBwYXJlbnQpO1xuICAgICAgdmFyIHNpYmxpbmcgPSBjaGlsZC5zaWJsaW5nO1xuXG4gICAgICB3aGlsZSAoc2libGluZyAhPT0gbnVsbCkge1xuICAgICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGUoc2libGluZywgYmVmb3JlLCBwYXJlbnQpO1xuICAgICAgICBzaWJsaW5nID0gc2libGluZy5zaWJsaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB1bm1vdW50SG9zdENvbXBvbmVudHMoZmluaXNoZWRSb290LCBjdXJyZW50LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yKSB7XG4gIC8vIFdlIG9ubHkgaGF2ZSB0aGUgdG9wIEZpYmVyIHRoYXQgd2FzIGRlbGV0ZWQgYnV0IHdlIG5lZWQgdG8gcmVjdXJzZSBkb3duIGl0c1xuICAvLyBjaGlsZHJlbiB0byBmaW5kIGFsbCB0aGUgdGVybWluYWwgbm9kZXMuXG4gIHZhciBub2RlID0gY3VycmVudDsgLy8gRWFjaCBpdGVyYXRpb24sIGN1cnJlbnRQYXJlbnQgaXMgcG9wdWxhdGVkIHdpdGggbm9kZSdzIGhvc3QgcGFyZW50IGlmIG5vdFxuICAvLyBjdXJyZW50UGFyZW50SXNWYWxpZC5cblxuICB2YXIgY3VycmVudFBhcmVudElzVmFsaWQgPSBmYWxzZTsgLy8gTm90ZTogdGhlc2UgdHdvIHZhcmlhYmxlcyAqbXVzdCogYWx3YXlzIGJlIHVwZGF0ZWQgdG9nZXRoZXIuXG5cbiAgdmFyIGN1cnJlbnRQYXJlbnQ7XG4gIHZhciBjdXJyZW50UGFyZW50SXNDb250YWluZXI7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBpZiAoIWN1cnJlbnRQYXJlbnRJc1ZhbGlkKSB7XG4gICAgICB2YXIgcGFyZW50ID0gbm9kZS5yZXR1cm47XG5cbiAgICAgIGZpbmRQYXJlbnQ6IHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHRvIGZpbmQgYSBob3N0IHBhcmVudC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5ICcgKyAnYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHBhcmVudFN0YXRlTm9kZSA9IHBhcmVudC5zdGF0ZU5vZGU7XG5cbiAgICAgICAgc3dpdGNoIChwYXJlbnQudGFnKSB7XG4gICAgICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IHBhcmVudFN0YXRlTm9kZTtcbiAgICAgICAgICAgIGN1cnJlbnRQYXJlbnRJc0NvbnRhaW5lciA9IGZhbHNlO1xuICAgICAgICAgICAgYnJlYWsgZmluZFBhcmVudDtcblxuICAgICAgICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gcGFyZW50U3RhdGVOb2RlLmNvbnRhaW5lckluZm87XG4gICAgICAgICAgICBjdXJyZW50UGFyZW50SXNDb250YWluZXIgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWsgZmluZFBhcmVudDtcblxuICAgICAgICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgICAgICAgIGN1cnJlbnRQYXJlbnQgPSBwYXJlbnRTdGF0ZU5vZGUuY29udGFpbmVySW5mbztcbiAgICAgICAgICAgIGN1cnJlbnRQYXJlbnRJc0NvbnRhaW5lciA9IHRydWU7XG4gICAgICAgICAgICBicmVhayBmaW5kUGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcGFyZW50ID0gcGFyZW50LnJldHVybjtcbiAgICAgIH1cblxuICAgICAgY3VycmVudFBhcmVudElzVmFsaWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChub2RlLnRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCBub2RlLnRhZyA9PT0gSG9zdFRleHQpIHtcbiAgICAgIGNvbW1pdE5lc3RlZFVubW91bnRzKGZpbmlzaGVkUm9vdCwgbm9kZSwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcik7IC8vIEFmdGVyIGFsbCB0aGUgY2hpbGRyZW4gaGF2ZSB1bm1vdW50ZWQsIGl0IGlzIG5vdyBzYWZlIHRvIHJlbW92ZSB0aGVcbiAgICAgIC8vIG5vZGUgZnJvbSB0aGUgdHJlZS5cblxuICAgICAgaWYgKGN1cnJlbnRQYXJlbnRJc0NvbnRhaW5lcikge1xuICAgICAgICByZW1vdmVDaGlsZEZyb21Db250YWluZXIoY3VycmVudFBhcmVudCwgbm9kZS5zdGF0ZU5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVtb3ZlQ2hpbGQoY3VycmVudFBhcmVudCwgbm9kZS5zdGF0ZU5vZGUpO1xuICAgICAgfSAvLyBEb24ndCB2aXNpdCBjaGlsZHJlbiBiZWNhdXNlIHdlIGFscmVhZHkgdmlzaXRlZCB0aGVtLlxuXG4gICAgfSBlbHNlIGlmICggbm9kZS50YWcgPT09IERlaHlkcmF0ZWRGcmFnbWVudCkge1xuXG5cbiAgICAgIGlmIChjdXJyZW50UGFyZW50SXNDb250YWluZXIpIHtcbiAgICAgICAgY2xlYXJTdXNwZW5zZUJvdW5kYXJ5RnJvbUNvbnRhaW5lcihjdXJyZW50UGFyZW50LCBub2RlLnN0YXRlTm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbGVhclN1c3BlbnNlQm91bmRhcnkoY3VycmVudFBhcmVudCwgbm9kZS5zdGF0ZU5vZGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobm9kZS50YWcgPT09IEhvc3RQb3J0YWwpIHtcbiAgICAgIGlmIChub2RlLmNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgIC8vIFdoZW4gd2UgZ28gaW50byBhIHBvcnRhbCwgaXQgYmVjb21lcyB0aGUgcGFyZW50IHRvIHJlbW92ZSBmcm9tLlxuICAgICAgICAvLyBXZSB3aWxsIHJlYXNzaWduIGl0IGJhY2sgd2hlbiB3ZSBwb3AgdGhlIHBvcnRhbCBvbiB0aGUgd2F5IHVwLlxuICAgICAgICBjdXJyZW50UGFyZW50ID0gbm9kZS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztcbiAgICAgICAgY3VycmVudFBhcmVudElzQ29udGFpbmVyID0gdHJ1ZTsgLy8gVmlzaXQgY2hpbGRyZW4gYmVjYXVzZSBwb3J0YWxzIG1pZ2h0IGNvbnRhaW4gaG9zdCBjb21wb25lbnRzLlxuXG4gICAgICAgIG5vZGUuY2hpbGQucmV0dXJuID0gbm9kZTtcbiAgICAgICAgbm9kZSA9IG5vZGUuY2hpbGQ7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb21taXRVbm1vdW50KGZpbmlzaGVkUm9vdCwgbm9kZSwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcik7IC8vIFZpc2l0IGNoaWxkcmVuIGJlY2F1c2Ugd2UgbWF5IGZpbmQgbW9yZSBob3N0IGNvbXBvbmVudHMgYmVsb3cuXG5cbiAgICAgIGlmIChub2RlLmNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgIG5vZGUuY2hpbGQucmV0dXJuID0gbm9kZTtcbiAgICAgICAgbm9kZSA9IG5vZGUuY2hpbGQ7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChub2RlID09PSBjdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2hpbGUgKG5vZGUuc2libGluZyA9PT0gbnVsbCkge1xuICAgICAgaWYgKG5vZGUucmV0dXJuID09PSBudWxsIHx8IG5vZGUucmV0dXJuID09PSBjdXJyZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuXG4gICAgICBpZiAobm9kZS50YWcgPT09IEhvc3RQb3J0YWwpIHtcbiAgICAgICAgLy8gV2hlbiB3ZSBnbyBvdXQgb2YgdGhlIHBvcnRhbCwgd2UgbmVlZCB0byByZXN0b3JlIHRoZSBwYXJlbnQuXG4gICAgICAgIC8vIFNpbmNlIHdlIGRvbid0IGtlZXAgYSBzdGFjayBvZiB0aGVtLCB3ZSB3aWxsIHNlYXJjaCBmb3IgaXQuXG4gICAgICAgIGN1cnJlbnRQYXJlbnRJc1ZhbGlkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbm9kZS5zaWJsaW5nLnJldHVybiA9IG5vZGUucmV0dXJuO1xuICAgIG5vZGUgPSBub2RlLnNpYmxpbmc7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0RGVsZXRpb24oZmluaXNoZWRSb290LCBjdXJyZW50LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yKSB7XG4gIHtcbiAgICAvLyBSZWN1cnNpdmVseSBkZWxldGUgYWxsIGhvc3Qgbm9kZXMgZnJvbSB0aGUgcGFyZW50LlxuICAgIC8vIERldGFjaCByZWZzIGFuZCBjYWxsIGNvbXBvbmVudFdpbGxVbm1vdW50KCkgb24gdGhlIHdob2xlIHN1YnRyZWUuXG4gICAgdW5tb3VudEhvc3RDb21wb25lbnRzKGZpbmlzaGVkUm9vdCwgY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcik7XG4gIH1cblxuICBkZXRhY2hGaWJlck11dGF0aW9uKGN1cnJlbnQpO1xufVxuXG5mdW5jdGlvbiBjb21taXRXb3JrKGN1cnJlbnQsIGZpbmlzaGVkV29yaykge1xuXG4gIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgIGNhc2UgTWVtb0NvbXBvbmVudDpcbiAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChJbnNlcnRpb24gfCBIYXNFZmZlY3QsIGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7XG4gICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0TW91bnQoSW5zZXJ0aW9uIHwgSGFzRWZmZWN0LCBmaW5pc2hlZFdvcmspOyAvLyBMYXlvdXQgZWZmZWN0cyBhcmUgZGVzdHJveWVkIGR1cmluZyB0aGUgbXV0YXRpb24gcGhhc2Ugc28gdGhhdCBhbGxcbiAgICAgICAgLy8gZGVzdHJveSBmdW5jdGlvbnMgZm9yIGFsbCBmaWJlcnMgYXJlIGNhbGxlZCBiZWZvcmUgYW55IGNyZWF0ZSBmdW5jdGlvbnMuXG4gICAgICAgIC8vIFRoaXMgcHJldmVudHMgc2libGluZyBjb21wb25lbnQgZWZmZWN0cyBmcm9tIGludGVyZmVyaW5nIHdpdGggZWFjaCBvdGhlcixcbiAgICAgICAgLy8gZS5nLiBhIGRlc3Ryb3kgZnVuY3Rpb24gaW4gb25lIGNvbXBvbmVudCBzaG91bGQgbmV2ZXIgb3ZlcnJpZGUgYSByZWYgc2V0XG4gICAgICAgIC8vIGJ5IGEgY3JlYXRlIGZ1bmN0aW9uIGluIGFub3RoZXIgY29tcG9uZW50IGR1cmluZyB0aGUgc2FtZSBjb21taXQuXG5cbiAgICAgICAgaWYgKCBmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN0YXJ0TGF5b3V0RWZmZWN0VGltZXIoKTtcbiAgICAgICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChMYXlvdXQgfCBIYXNFZmZlY3QsIGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHJlY29yZExheW91dEVmZmVjdER1cmF0aW9uKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChMYXlvdXQgfCBIYXNFZmZlY3QsIGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBpbnN0YW5jZSA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG5cbiAgICAgICAgaWYgKGluc3RhbmNlICE9IG51bGwpIHtcbiAgICAgICAgICAvLyBDb21taXQgdGhlIHdvcmsgcHJlcGFyZWQgZWFybGllci5cbiAgICAgICAgICB2YXIgbmV3UHJvcHMgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wczsgLy8gRm9yIGh5ZHJhdGlvbiB3ZSByZXVzZSB0aGUgdXBkYXRlIHBhdGggYnV0IHdlIHRyZWF0IHRoZSBvbGRQcm9wc1xuICAgICAgICAgIC8vIGFzIHRoZSBuZXdQcm9wcy4gVGhlIHVwZGF0ZVBheWxvYWQgd2lsbCBjb250YWluIHRoZSByZWFsIGNoYW5nZSBpblxuICAgICAgICAgIC8vIHRoaXMgY2FzZS5cblxuICAgICAgICAgIHZhciBvbGRQcm9wcyA9IGN1cnJlbnQgIT09IG51bGwgPyBjdXJyZW50Lm1lbW9pemVkUHJvcHMgOiBuZXdQcm9wcztcbiAgICAgICAgICB2YXIgdHlwZSA9IGZpbmlzaGVkV29yay50eXBlOyAvLyBUT0RPOiBUeXBlIHRoZSB1cGRhdGVRdWV1ZSB0byBiZSBzcGVjaWZpYyB0byBob3N0IGNvbXBvbmVudHMuXG5cbiAgICAgICAgICB2YXIgdXBkYXRlUGF5bG9hZCA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZTtcbiAgICAgICAgICBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUgPSBudWxsO1xuXG4gICAgICAgICAgaWYgKHVwZGF0ZVBheWxvYWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbW1pdFVwZGF0ZShpbnN0YW5jZSwgdXBkYXRlUGF5bG9hZCwgdHlwZSwgb2xkUHJvcHMsIG5ld1Byb3BzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RUZXh0OlxuICAgICAge1xuICAgICAgICBpZiAoZmluaXNoZWRXb3JrLnN0YXRlTm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBzaG91bGQgaGF2ZSBhIHRleHQgbm9kZSBpbml0aWFsaXplZC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgJyArICdjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHRleHRJbnN0YW5jZSA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgIHZhciBuZXdUZXh0ID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHM7IC8vIEZvciBoeWRyYXRpb24gd2UgcmV1c2UgdGhlIHVwZGF0ZSBwYXRoIGJ1dCB3ZSB0cmVhdCB0aGUgb2xkUHJvcHNcbiAgICAgICAgLy8gYXMgdGhlIG5ld1Byb3BzLiBUaGUgdXBkYXRlUGF5bG9hZCB3aWxsIGNvbnRhaW4gdGhlIHJlYWwgY2hhbmdlIGluXG4gICAgICAgIC8vIHRoaXMgY2FzZS5cblxuICAgICAgICB2YXIgb2xkVGV4dCA9IGN1cnJlbnQgIT09IG51bGwgPyBjdXJyZW50Lm1lbW9pemVkUHJvcHMgOiBuZXdUZXh0O1xuICAgICAgICBjb21taXRUZXh0VXBkYXRlKHRleHRJbnN0YW5jZSwgb2xkVGV4dCwgbmV3VGV4dCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIF9wcmV2Um9vdFN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuXG4gICAgICAgICAgICBpZiAoX3ByZXZSb290U3RhdGUuaXNEZWh5ZHJhdGVkKSB7XG4gICAgICAgICAgICAgIHZhciBfcm9vdCA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgICAgICAgIGNvbW1pdEh5ZHJhdGVkQ29udGFpbmVyKF9yb290LmNvbnRhaW5lckluZm8pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgUHJvZmlsZXI6XG4gICAgICB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIGNvbW1pdFN1c3BlbnNlQ2FsbGJhY2soZmluaXNoZWRXb3JrKTtcbiAgICAgICAgYXR0YWNoU3VzcGVuc2VSZXRyeUxpc3RlbmVycyhmaW5pc2hlZFdvcmspO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIFN1c3BlbnNlTGlzdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgYXR0YWNoU3VzcGVuc2VSZXRyeUxpc3RlbmVycyhmaW5pc2hlZFdvcmspO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIEluY29tcGxldGVDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKCdUaGlzIHVuaXQgb2Ygd29yayB0YWcgc2hvdWxkIG5vdCBoYXZlIHNpZGUtZWZmZWN0cy4gVGhpcyBlcnJvciBpcyAnICsgJ2xpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xufVxuXG5mdW5jdGlvbiBjb21taXRTdXNwZW5zZUNhbGxiYWNrKGZpbmlzaGVkV29yaykge1xuICAvLyBUT0RPOiBNb3ZlIHRoaXMgdG8gcGFzc2l2ZSBwaGFzZVxuICB2YXIgbmV3U3RhdGUgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZTtcbn1cblxuZnVuY3Rpb24gY29tbWl0U3VzcGVuc2VIeWRyYXRpb25DYWxsYmFja3MoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmspIHtcblxuICB2YXIgbmV3U3RhdGUgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZTtcblxuICBpZiAobmV3U3RhdGUgPT09IG51bGwpIHtcbiAgICB2YXIgY3VycmVudCA9IGZpbmlzaGVkV29yay5hbHRlcm5hdGU7XG5cbiAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgdmFyIHByZXZTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcblxuICAgICAgaWYgKHByZXZTdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgc3VzcGVuc2VJbnN0YW5jZSA9IHByZXZTdGF0ZS5kZWh5ZHJhdGVkO1xuXG4gICAgICAgIGlmIChzdXNwZW5zZUluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgICAgICAgY29tbWl0SHlkcmF0ZWRTdXNwZW5zZUluc3RhbmNlKHN1c3BlbnNlSW5zdGFuY2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGF0dGFjaFN1c3BlbnNlUmV0cnlMaXN0ZW5lcnMoZmluaXNoZWRXb3JrKSB7XG4gIC8vIElmIHRoaXMgYm91bmRhcnkganVzdCB0aW1lZCBvdXQsIHRoZW4gaXQgd2lsbCBoYXZlIGEgc2V0IG9mIHdha2VhYmxlcy5cbiAgLy8gRm9yIGVhY2ggd2FrZWFibGUsIGF0dGFjaCBhIGxpc3RlbmVyIHNvIHRoYXQgd2hlbiBpdCByZXNvbHZlcywgUmVhY3RcbiAgLy8gYXR0ZW1wdHMgdG8gcmUtcmVuZGVyIHRoZSBib3VuZGFyeSBpbiB0aGUgcHJpbWFyeSAocHJlLXRpbWVvdXQpIHN0YXRlLlxuICB2YXIgd2FrZWFibGVzID0gZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlO1xuXG4gIGlmICh3YWtlYWJsZXMgIT09IG51bGwpIHtcbiAgICBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUgPSBudWxsO1xuICAgIHZhciByZXRyeUNhY2hlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcblxuICAgIGlmIChyZXRyeUNhY2hlID09PSBudWxsKSB7XG4gICAgICByZXRyeUNhY2hlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZSA9IG5ldyBQb3NzaWJseVdlYWtTZXQoKTtcbiAgICB9XG5cbiAgICB3YWtlYWJsZXMuZm9yRWFjaChmdW5jdGlvbiAod2FrZWFibGUpIHtcbiAgICAgIC8vIE1lbW9pemUgdXNpbmcgdGhlIGJvdW5kYXJ5IGZpYmVyIHRvIHByZXZlbnQgcmVkdW5kYW50IGxpc3RlbmVycy5cbiAgICAgIHZhciByZXRyeSA9IHJlc29sdmVSZXRyeVdha2VhYmxlLmJpbmQobnVsbCwgZmluaXNoZWRXb3JrLCB3YWtlYWJsZSk7XG5cbiAgICAgIGlmICghcmV0cnlDYWNoZS5oYXMod2FrZWFibGUpKSB7XG4gICAgICAgIHJldHJ5Q2FjaGUuYWRkKHdha2VhYmxlKTtcblxuICAgICAgICB7XG4gICAgICAgICAgaWYgKGlzRGV2VG9vbHNQcmVzZW50KSB7XG4gICAgICAgICAgICBpZiAoaW5Qcm9ncmVzc0xhbmVzICE9PSBudWxsICYmIGluUHJvZ3Jlc3NSb290ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgcGVuZGluZyB3b3JrIHN0aWxsLCBhc3NvY2lhdGUgdGhlIG9yaWdpbmFsIHVwZGF0ZXJzIHdpdGggaXQuXG4gICAgICAgICAgICAgIHJlc3RvcmVQZW5kaW5nVXBkYXRlcnMoaW5Qcm9ncmVzc1Jvb3QsIGluUHJvZ3Jlc3NMYW5lcyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aHJvdyBFcnJvcignRXhwZWN0ZWQgZmluaXNoZWQgcm9vdCBhbmQgbGFuZXMgdG8gYmUgc2V0LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHdha2VhYmxlLnRoZW4ocmV0cnksIHJldHJ5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufSAvLyBUaGlzIGZ1bmN0aW9uIGRldGVjdHMgd2hlbiBhIFN1c3BlbnNlIGJvdW5kYXJ5IGdvZXMgZnJvbSB2aXNpYmxlIHRvIGhpZGRlbi5cblxuZnVuY3Rpb24gY29tbWl0UmVzZXRUZXh0Q29udGVudChjdXJyZW50KSB7XG5cbiAgcmVzZXRUZXh0Q29udGVudChjdXJyZW50LnN0YXRlTm9kZSk7XG59XG5cbmZ1bmN0aW9uIGNvbW1pdE11dGF0aW9uRWZmZWN0cyhyb290LCBmaXJzdENoaWxkLCBjb21taXR0ZWRMYW5lcykge1xuICBpblByb2dyZXNzTGFuZXMgPSBjb21taXR0ZWRMYW5lcztcbiAgaW5Qcm9ncmVzc1Jvb3QgPSByb290O1xuICBuZXh0RWZmZWN0ID0gZmlyc3RDaGlsZDtcbiAgY29tbWl0TXV0YXRpb25FZmZlY3RzX2JlZ2luKHJvb3QsIGNvbW1pdHRlZExhbmVzKTtcbiAgaW5Qcm9ncmVzc0xhbmVzID0gbnVsbDtcbiAgaW5Qcm9ncmVzc1Jvb3QgPSBudWxsO1xufVxuXG5mdW5jdGlvbiBjb21taXRNdXRhdGlvbkVmZmVjdHNfYmVnaW4ocm9vdCwgbGFuZXMpIHtcbiAgd2hpbGUgKG5leHRFZmZlY3QgIT09IG51bGwpIHtcbiAgICB2YXIgZmliZXIgPSBuZXh0RWZmZWN0OyAvLyBUT0RPOiBTaG91bGQgd3JhcCB0aGlzIGluIGZsYWdzIGNoZWNrLCB0b28sIGFzIG9wdGltaXphdGlvblxuXG4gICAgdmFyIGRlbGV0aW9ucyA9IGZpYmVyLmRlbGV0aW9ucztcblxuICAgIGlmIChkZWxldGlvbnMgIT09IG51bGwpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVsZXRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjaGlsZFRvRGVsZXRlID0gZGVsZXRpb25zW2ldO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29tbWl0RGVsZXRpb24ocm9vdCwgY2hpbGRUb0RlbGV0ZSwgZmliZXIpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHJlcG9ydFVuY2F1Z2h0RXJyb3JJbkRFVihlcnJvcik7XG4gICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoY2hpbGRUb0RlbGV0ZSwgZmliZXIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBjaGlsZCA9IGZpYmVyLmNoaWxkO1xuXG4gICAgaWYgKChmaWJlci5zdWJ0cmVlRmxhZ3MgJiBNdXRhdGlvbk1hc2spICE9PSBOb0ZsYWdzICYmIGNoaWxkICE9PSBudWxsKSB7XG4gICAgICBlbnN1cmVDb3JyZWN0UmV0dXJuUG9pbnRlcihjaGlsZCwgZmliZXIpO1xuICAgICAgbmV4dEVmZmVjdCA9IGNoaWxkO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb21taXRNdXRhdGlvbkVmZmVjdHNfY29tcGxldGUocm9vdCwgbGFuZXMpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRNdXRhdGlvbkVmZmVjdHNfY29tcGxldGUocm9vdCwgbGFuZXMpIHtcbiAgd2hpbGUgKG5leHRFZmZlY3QgIT09IG51bGwpIHtcbiAgICB2YXIgZmliZXIgPSBuZXh0RWZmZWN0O1xuICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG5cbiAgICB0cnkge1xuICAgICAgY29tbWl0TXV0YXRpb25FZmZlY3RzT25GaWJlcihmaWJlciwgcm9vdCwgbGFuZXMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXBvcnRVbmNhdWdodEVycm9ySW5ERVYoZXJyb3IpO1xuICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmliZXIsIGZpYmVyLnJldHVybiwgZXJyb3IpO1xuICAgIH1cblxuICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgdmFyIHNpYmxpbmcgPSBmaWJlci5zaWJsaW5nO1xuXG4gICAgaWYgKHNpYmxpbmcgIT09IG51bGwpIHtcbiAgICAgIGVuc3VyZUNvcnJlY3RSZXR1cm5Qb2ludGVyKHNpYmxpbmcsIGZpYmVyLnJldHVybik7XG4gICAgICBuZXh0RWZmZWN0ID0gc2libGluZztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBuZXh0RWZmZWN0ID0gZmliZXIucmV0dXJuO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdE11dGF0aW9uRWZmZWN0c09uRmliZXIoZmluaXNoZWRXb3JrLCByb290LCBsYW5lcykge1xuICAvLyBUT0RPOiBUaGUgZmFjdG9yaW5nIG9mIHRoaXMgcGhhc2UgY291bGQgcHJvYmFibHkgYmUgaW1wcm92ZWQuIENvbnNpZGVyXG4gIC8vIHN3aXRjaGluZyBvbiB0aGUgdHlwZSBvZiB3b3JrIGJlZm9yZSBjaGVja2luZyB0aGUgZmxhZ3MuIFRoYXQncyB3aGF0XG4gIC8vIHdlIGRvIGluIGFsbCB0aGUgb3RoZXIgcGhhc2VzLiBJIHRoaW5rIHRoaXMgb25lIGlzIG9ubHkgZGlmZmVyZW50XG4gIC8vIGJlY2F1c2Ugb2YgdGhlIHNoYXJlZCByZWNvbmNpbGlhdGlvbiBsb2dpYyBiZWxvdy5cbiAgdmFyIGZsYWdzID0gZmluaXNoZWRXb3JrLmZsYWdzO1xuXG4gIGlmIChmbGFncyAmIENvbnRlbnRSZXNldCkge1xuICAgIGNvbW1pdFJlc2V0VGV4dENvbnRlbnQoZmluaXNoZWRXb3JrKTtcbiAgfVxuXG4gIGlmIChmbGFncyAmIFJlZikge1xuICAgIHZhciBjdXJyZW50ID0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZTtcblxuICAgIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICBjb21taXREZXRhY2hSZWYoY3VycmVudCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGZsYWdzICYgVmlzaWJpbGl0eSkge1xuICAgIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgICAgY2FzZSBTdXNwZW5zZUNvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBuZXdTdGF0ZSA9IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgIHZhciBpc0hpZGRlbiA9IG5ld1N0YXRlICE9PSBudWxsO1xuXG4gICAgICAgICAgaWYgKGlzSGlkZGVuKSB7XG4gICAgICAgICAgICB2YXIgX2N1cnJlbnQgPSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlO1xuICAgICAgICAgICAgdmFyIHdhc0hpZGRlbiA9IF9jdXJyZW50ICE9PSBudWxsICYmIF9jdXJyZW50Lm1lbW9pemVkU3RhdGUgIT09IG51bGw7XG5cbiAgICAgICAgICAgIGlmICghd2FzSGlkZGVuKSB7XG4gICAgICAgICAgICAgIC8vIFRPRE86IE1vdmUgdG8gcGFzc2l2ZSBwaGFzZVxuICAgICAgICAgICAgICBtYXJrQ29tbWl0VGltZU9mRmFsbGJhY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIE9mZnNjcmVlbkNvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfbmV3U3RhdGUgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZTtcblxuICAgICAgICAgIHZhciBfaXNIaWRkZW4gPSBfbmV3U3RhdGUgIT09IG51bGw7XG5cbiAgICAgICAgICB2YXIgX2N1cnJlbnQyID0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZTtcblxuICAgICAgICAgIHZhciBfd2FzSGlkZGVuID0gX2N1cnJlbnQyICE9PSBudWxsICYmIF9jdXJyZW50Mi5tZW1vaXplZFN0YXRlICE9PSBudWxsO1xuXG4gICAgICAgICAgdmFyIG9mZnNjcmVlbkJvdW5kYXJ5ID0gZmluaXNoZWRXb3JrO1xuXG4gICAgICAgICAge1xuICAgICAgICAgICAgLy8gVE9ETzogVGhpcyBuZWVkcyB0byBydW4gd2hlbmV2ZXIgdGhlcmUncyBhbiBpbnNlcnRpb24gb3IgdXBkYXRlXG4gICAgICAgICAgICAvLyBpbnNpZGUgYSBoaWRkZW4gT2Zmc2NyZWVuIHRyZWUuXG4gICAgICAgICAgICBoaWRlT3JVbmhpZGVBbGxDaGlsZHJlbihvZmZzY3JlZW5Cb3VuZGFyeSwgX2lzSGlkZGVuKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAoX2lzSGlkZGVuKSB7XG4gICAgICAgICAgICAgIGlmICghX3dhc0hpZGRlbikge1xuICAgICAgICAgICAgICAgIGlmICgob2Zmc2NyZWVuQm91bmRhcnkubW9kZSAmIENvbmN1cnJlbnRNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAgICAgICAgICAgICBuZXh0RWZmZWN0ID0gb2Zmc2NyZWVuQm91bmRhcnk7XG4gICAgICAgICAgICAgICAgICB2YXIgb2Zmc2NyZWVuQ2hpbGQgPSBvZmZzY3JlZW5Cb3VuZGFyeS5jaGlsZDtcblxuICAgICAgICAgICAgICAgICAgd2hpbGUgKG9mZnNjcmVlbkNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHRFZmZlY3QgPSBvZmZzY3JlZW5DaGlsZDtcbiAgICAgICAgICAgICAgICAgICAgZGlzYXBwZWFyTGF5b3V0RWZmZWN0c19iZWdpbihvZmZzY3JlZW5DaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgIG9mZnNjcmVlbkNoaWxkID0gb2Zmc2NyZWVuQ2hpbGQuc2libGluZztcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICB9IC8vIFRoZSBmb2xsb3dpbmcgc3dpdGNoIHN0YXRlbWVudCBpcyBvbmx5IGNvbmNlcm5lZCBhYm91dCBwbGFjZW1lbnQsXG4gIC8vIHVwZGF0ZXMsIGFuZCBkZWxldGlvbnMuIFRvIGF2b2lkIG5lZWRpbmcgdG8gYWRkIGEgY2FzZSBmb3IgZXZlcnkgcG9zc2libGVcbiAgLy8gYml0bWFwIHZhbHVlLCB3ZSByZW1vdmUgdGhlIHNlY29uZGFyeSBlZmZlY3RzIGZyb20gdGhlIGVmZmVjdCB0YWcgYW5kXG4gIC8vIHN3aXRjaCBvbiB0aGF0IHZhbHVlLlxuXG5cbiAgdmFyIHByaW1hcnlGbGFncyA9IGZsYWdzICYgKFBsYWNlbWVudCB8IFVwZGF0ZSB8IEh5ZHJhdGluZyk7XG5cbiAgIHN3aXRjaCAocHJpbWFyeUZsYWdzKSB7XG4gICAgY2FzZSBQbGFjZW1lbnQ6XG4gICAgICB7XG4gICAgICAgIGNvbW1pdFBsYWNlbWVudChmaW5pc2hlZFdvcmspOyAvLyBDbGVhciB0aGUgXCJwbGFjZW1lbnRcIiBmcm9tIGVmZmVjdCB0YWcgc28gdGhhdCB3ZSBrbm93IHRoYXQgdGhpcyBpc1xuICAgICAgICAvLyBpbnNlcnRlZCwgYmVmb3JlIGFueSBsaWZlLWN5Y2xlcyBsaWtlIGNvbXBvbmVudERpZE1vdW50IGdldHMgY2FsbGVkLlxuICAgICAgICAvLyBUT0RPOiBmaW5kRE9NTm9kZSBkb2Vzbid0IHJlbHkgb24gdGhpcyBhbnkgbW9yZSBidXQgaXNNb3VudGVkIGRvZXNcbiAgICAgICAgLy8gYW5kIGlzTW91bnRlZCBpcyBkZXByZWNhdGVkIGFueXdheSBzbyB3ZSBzaG91bGQgYmUgYWJsZSB0byBraWxsIHRoaXMuXG5cbiAgICAgICAgZmluaXNoZWRXb3JrLmZsYWdzICY9IH5QbGFjZW1lbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBQbGFjZW1lbnRBbmRVcGRhdGU6XG4gICAgICB7XG4gICAgICAgIC8vIFBsYWNlbWVudFxuICAgICAgICBjb21taXRQbGFjZW1lbnQoZmluaXNoZWRXb3JrKTsgLy8gQ2xlYXIgdGhlIFwicGxhY2VtZW50XCIgZnJvbSBlZmZlY3QgdGFnIHNvIHRoYXQgd2Uga25vdyB0aGF0IHRoaXMgaXNcbiAgICAgICAgLy8gaW5zZXJ0ZWQsIGJlZm9yZSBhbnkgbGlmZS1jeWNsZXMgbGlrZSBjb21wb25lbnREaWRNb3VudCBnZXRzIGNhbGxlZC5cblxuICAgICAgICBmaW5pc2hlZFdvcmsuZmxhZ3MgJj0gflBsYWNlbWVudDsgLy8gVXBkYXRlXG5cbiAgICAgICAgdmFyIF9jdXJyZW50MyA9IGZpbmlzaGVkV29yay5hbHRlcm5hdGU7XG4gICAgICAgIGNvbW1pdFdvcmsoX2N1cnJlbnQzLCBmaW5pc2hlZFdvcmspO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgSHlkcmF0aW5nOlxuICAgICAge1xuICAgICAgICBmaW5pc2hlZFdvcmsuZmxhZ3MgJj0gfkh5ZHJhdGluZztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIEh5ZHJhdGluZ0FuZFVwZGF0ZTpcbiAgICAgIHtcbiAgICAgICAgZmluaXNoZWRXb3JrLmZsYWdzICY9IH5IeWRyYXRpbmc7IC8vIFVwZGF0ZVxuXG4gICAgICAgIHZhciBfY3VycmVudDQgPSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlO1xuICAgICAgICBjb21taXRXb3JrKF9jdXJyZW50NCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIFVwZGF0ZTpcbiAgICAgIHtcbiAgICAgICAgdmFyIF9jdXJyZW50NSA9IGZpbmlzaGVkV29yay5hbHRlcm5hdGU7XG4gICAgICAgIGNvbW1pdFdvcmsoX2N1cnJlbnQ1LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRMYXlvdXRFZmZlY3RzKGZpbmlzaGVkV29yaywgcm9vdCwgY29tbWl0dGVkTGFuZXMpIHtcbiAgaW5Qcm9ncmVzc0xhbmVzID0gY29tbWl0dGVkTGFuZXM7XG4gIGluUHJvZ3Jlc3NSb290ID0gcm9vdDtcbiAgbmV4dEVmZmVjdCA9IGZpbmlzaGVkV29yaztcbiAgY29tbWl0TGF5b3V0RWZmZWN0c19iZWdpbihmaW5pc2hlZFdvcmssIHJvb3QsIGNvbW1pdHRlZExhbmVzKTtcbiAgaW5Qcm9ncmVzc0xhbmVzID0gbnVsbDtcbiAgaW5Qcm9ncmVzc1Jvb3QgPSBudWxsO1xufVxuXG5mdW5jdGlvbiBjb21taXRMYXlvdXRFZmZlY3RzX2JlZ2luKHN1YnRyZWVSb290LCByb290LCBjb21taXR0ZWRMYW5lcykge1xuICAvLyBTdXNwZW5zZSBsYXlvdXQgZWZmZWN0cyBzZW1hbnRpY3MgZG9uJ3QgY2hhbmdlIGZvciBsZWdhY3kgcm9vdHMuXG4gIHZhciBpc01vZGVyblJvb3QgPSAoc3VidHJlZVJvb3QubW9kZSAmIENvbmN1cnJlbnRNb2RlKSAhPT0gTm9Nb2RlO1xuXG4gIHdoaWxlIChuZXh0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpYmVyID0gbmV4dEVmZmVjdDtcbiAgICB2YXIgZmlyc3RDaGlsZCA9IGZpYmVyLmNoaWxkO1xuXG4gICAgaWYgKCBmaWJlci50YWcgPT09IE9mZnNjcmVlbkNvbXBvbmVudCAmJiBpc01vZGVyblJvb3QpIHtcbiAgICAgIC8vIEtlZXAgdHJhY2sgb2YgdGhlIGN1cnJlbnQgT2Zmc2NyZWVuIHN0YWNrJ3Mgc3RhdGUuXG4gICAgICB2YXIgaXNIaWRkZW4gPSBmaWJlci5tZW1vaXplZFN0YXRlICE9PSBudWxsO1xuICAgICAgdmFyIG5ld09mZnNjcmVlblN1YnRyZWVJc0hpZGRlbiA9IGlzSGlkZGVuIHx8IG9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbjtcblxuICAgICAgaWYgKG5ld09mZnNjcmVlblN1YnRyZWVJc0hpZGRlbikge1xuICAgICAgICAvLyBUaGUgT2Zmc2NyZWVuIHRyZWUgaXMgaGlkZGVuLiBTa2lwIG92ZXIgaXRzIGxheW91dCBlZmZlY3RzLlxuICAgICAgICBjb21taXRMYXlvdXRNb3VudEVmZmVjdHNfY29tcGxldGUoc3VidHJlZVJvb3QsIHJvb3QsIGNvbW1pdHRlZExhbmVzKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUT0RPIChPZmZzY3JlZW4pIEFsc28gY2hlY2s6IHN1YnRyZWVGbGFncyAmIExheW91dE1hc2tcbiAgICAgICAgdmFyIGN1cnJlbnQgPSBmaWJlci5hbHRlcm5hdGU7XG4gICAgICAgIHZhciB3YXNIaWRkZW4gPSBjdXJyZW50ICE9PSBudWxsICYmIGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSAhPT0gbnVsbDtcbiAgICAgICAgdmFyIG5ld09mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSB3YXNIaWRkZW4gfHwgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbjtcbiAgICAgICAgdmFyIHByZXZPZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW4gPSBvZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW47XG4gICAgICAgIHZhciBwcmV2T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiA9IG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW47IC8vIFRyYXZlcnNlIHRoZSBPZmZzY3JlZW4gc3VidHJlZSB3aXRoIHRoZSBjdXJyZW50IE9mZnNjcmVlbiBhcyB0aGUgcm9vdC5cblxuICAgICAgICBvZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW4gPSBuZXdPZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW47XG4gICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSBuZXdPZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuO1xuXG4gICAgICAgIGlmIChvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuICYmICFwcmV2T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbikge1xuICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIHJvb3Qgb2YgYSByZWFwcGVhcmluZyBib3VuZGFyeS4gVHVybiBpdHMgbGF5b3V0IGVmZmVjdHNcbiAgICAgICAgICAvLyBiYWNrIG9uLlxuICAgICAgICAgIG5leHRFZmZlY3QgPSBmaWJlcjtcbiAgICAgICAgICByZWFwcGVhckxheW91dEVmZmVjdHNfYmVnaW4oZmliZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGNoaWxkID0gZmlyc3RDaGlsZDtcblxuICAgICAgICB3aGlsZSAoY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgICBuZXh0RWZmZWN0ID0gY2hpbGQ7XG4gICAgICAgICAgY29tbWl0TGF5b3V0RWZmZWN0c19iZWdpbihjaGlsZCwgLy8gTmV3IHJvb3Q7IGJ1YmJsZSBiYWNrIHVwIHRvIGhlcmUgYW5kIHN0b3AuXG4gICAgICAgICAgcm9vdCwgY29tbWl0dGVkTGFuZXMpO1xuICAgICAgICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgICAgICAgfSAvLyBSZXN0b3JlIE9mZnNjcmVlbiBzdGF0ZSBhbmQgcmVzdW1lIGluIG91ci1wcm9ncmVzcyB0cmF2ZXJzYWwuXG5cblxuICAgICAgICBuZXh0RWZmZWN0ID0gZmliZXI7XG4gICAgICAgIG9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbiA9IHByZXZPZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW47XG4gICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSBwcmV2T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbjtcbiAgICAgICAgY29tbWl0TGF5b3V0TW91bnRFZmZlY3RzX2NvbXBsZXRlKHN1YnRyZWVSb290LCByb290LCBjb21taXR0ZWRMYW5lcyk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICgoZmliZXIuc3VidHJlZUZsYWdzICYgTGF5b3V0TWFzaykgIT09IE5vRmxhZ3MgJiYgZmlyc3RDaGlsZCAhPT0gbnVsbCkge1xuICAgICAgZW5zdXJlQ29ycmVjdFJldHVyblBvaW50ZXIoZmlyc3RDaGlsZCwgZmliZXIpO1xuICAgICAgbmV4dEVmZmVjdCA9IGZpcnN0Q2hpbGQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbW1pdExheW91dE1vdW50RWZmZWN0c19jb21wbGV0ZShzdWJ0cmVlUm9vdCwgcm9vdCwgY29tbWl0dGVkTGFuZXMpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRMYXlvdXRNb3VudEVmZmVjdHNfY29tcGxldGUoc3VidHJlZVJvb3QsIHJvb3QsIGNvbW1pdHRlZExhbmVzKSB7XG4gIHdoaWxlIChuZXh0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpYmVyID0gbmV4dEVmZmVjdDtcblxuICAgIGlmICgoZmliZXIuZmxhZ3MgJiBMYXlvdXRNYXNrKSAhPT0gTm9GbGFncykge1xuICAgICAgdmFyIGN1cnJlbnQgPSBmaWJlci5hbHRlcm5hdGU7XG4gICAgICBzZXRDdXJyZW50RmliZXIoZmliZXIpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb21taXRMYXlvdXRFZmZlY3RPbkZpYmVyKHJvb3QsIGN1cnJlbnQsIGZpYmVyLCBjb21taXR0ZWRMYW5lcyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXBvcnRVbmNhdWdodEVycm9ySW5ERVYoZXJyb3IpO1xuICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaWJlciwgZmliZXIucmV0dXJuLCBlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgfVxuXG4gICAgaWYgKGZpYmVyID09PSBzdWJ0cmVlUm9vdCkge1xuICAgICAgbmV4dEVmZmVjdCA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHNpYmxpbmcgPSBmaWJlci5zaWJsaW5nO1xuXG4gICAgaWYgKHNpYmxpbmcgIT09IG51bGwpIHtcbiAgICAgIGVuc3VyZUNvcnJlY3RSZXR1cm5Qb2ludGVyKHNpYmxpbmcsIGZpYmVyLnJldHVybik7XG4gICAgICBuZXh0RWZmZWN0ID0gc2libGluZztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBuZXh0RWZmZWN0ID0gZmliZXIucmV0dXJuO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRpc2FwcGVhckxheW91dEVmZmVjdHNfYmVnaW4oc3VidHJlZVJvb3QpIHtcbiAgd2hpbGUgKG5leHRFZmZlY3QgIT09IG51bGwpIHtcbiAgICB2YXIgZmliZXIgPSBuZXh0RWZmZWN0O1xuICAgIHZhciBmaXJzdENoaWxkID0gZmliZXIuY2hpbGQ7IC8vIFRPRE8gKE9mZnNjcmVlbikgQ2hlY2s6IGZsYWdzICYgKFJlZlN0YXRpYyB8IExheW91dFN0YXRpYylcblxuICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgICAgY2FzZSBNZW1vQ29tcG9uZW50OlxuICAgICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKCBmaWJlci5tb2RlICYgUHJvZmlsZU1vZGUpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHN0YXJ0TGF5b3V0RWZmZWN0VGltZXIoKTtcbiAgICAgICAgICAgICAgY29tbWl0SG9va0VmZmVjdExpc3RVbm1vdW50KExheW91dCwgZmliZXIsIGZpYmVyLnJldHVybik7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICByZWNvcmRMYXlvdXRFZmZlY3REdXJhdGlvbihmaWJlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChMYXlvdXQsIGZpYmVyLCBmaWJlci5yZXR1cm4pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICAvLyBUT0RPIChPZmZzY3JlZW4pIENoZWNrOiBmbGFncyAmIFJlZlN0YXRpY1xuICAgICAgICAgIHNhZmVseURldGFjaFJlZihmaWJlciwgZmliZXIucmV0dXJuKTtcbiAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBmaWJlci5zdGF0ZU5vZGU7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVbm1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBzYWZlbHlDYWxsQ29tcG9uZW50V2lsbFVubW91bnQoZmliZXIsIGZpYmVyLnJldHVybiwgaW5zdGFuY2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIHNhZmVseURldGFjaFJlZihmaWJlciwgZmliZXIucmV0dXJuKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIE9mZnNjcmVlbkNvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIC8vIENoZWNrIGlmIHRoaXMgaXMgYVxuICAgICAgICAgIHZhciBpc0hpZGRlbiA9IGZpYmVyLm1lbW9pemVkU3RhdGUgIT09IG51bGw7XG5cbiAgICAgICAgICBpZiAoaXNIaWRkZW4pIHtcbiAgICAgICAgICAgIC8vIE5lc3RlZCBPZmZzY3JlZW4gdHJlZSBpcyBhbHJlYWR5IGhpZGRlbi4gRG9uJ3QgZGlzYXBwZWFyXG4gICAgICAgICAgICAvLyBpdHMgZWZmZWN0cy5cbiAgICAgICAgICAgIGRpc2FwcGVhckxheW91dEVmZmVjdHNfY29tcGxldGUoc3VidHJlZVJvb3QpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9IC8vIFRPRE8gKE9mZnNjcmVlbikgQ2hlY2s6IHN1YnRyZWVGbGFncyAmIExheW91dFN0YXRpY1xuXG5cbiAgICBpZiAoZmlyc3RDaGlsZCAhPT0gbnVsbCkge1xuICAgICAgZmlyc3RDaGlsZC5yZXR1cm4gPSBmaWJlcjtcbiAgICAgIG5leHRFZmZlY3QgPSBmaXJzdENoaWxkO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNhcHBlYXJMYXlvdXRFZmZlY3RzX2NvbXBsZXRlKHN1YnRyZWVSb290KTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZGlzYXBwZWFyTGF5b3V0RWZmZWN0c19jb21wbGV0ZShzdWJ0cmVlUm9vdCkge1xuICB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCkge1xuICAgIHZhciBmaWJlciA9IG5leHRFZmZlY3Q7XG5cbiAgICBpZiAoZmliZXIgPT09IHN1YnRyZWVSb290KSB7XG4gICAgICBuZXh0RWZmZWN0ID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgc2libGluZyA9IGZpYmVyLnNpYmxpbmc7XG5cbiAgICBpZiAoc2libGluZyAhPT0gbnVsbCkge1xuICAgICAgc2libGluZy5yZXR1cm4gPSBmaWJlci5yZXR1cm47XG4gICAgICBuZXh0RWZmZWN0ID0gc2libGluZztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBuZXh0RWZmZWN0ID0gZmliZXIucmV0dXJuO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlYXBwZWFyTGF5b3V0RWZmZWN0c19iZWdpbihzdWJ0cmVlUm9vdCkge1xuICB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCkge1xuICAgIHZhciBmaWJlciA9IG5leHRFZmZlY3Q7XG4gICAgdmFyIGZpcnN0Q2hpbGQgPSBmaWJlci5jaGlsZDtcblxuICAgIGlmIChmaWJlci50YWcgPT09IE9mZnNjcmVlbkNvbXBvbmVudCkge1xuICAgICAgdmFyIGlzSGlkZGVuID0gZmliZXIubWVtb2l6ZWRTdGF0ZSAhPT0gbnVsbDtcblxuICAgICAgaWYgKGlzSGlkZGVuKSB7XG4gICAgICAgIC8vIE5lc3RlZCBPZmZzY3JlZW4gdHJlZSBpcyBzdGlsbCBoaWRkZW4uIERvbid0IHJlLWFwcGVhciBpdHMgZWZmZWN0cy5cbiAgICAgICAgcmVhcHBlYXJMYXlvdXRFZmZlY3RzX2NvbXBsZXRlKHN1YnRyZWVSb290KTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfSAvLyBUT0RPIChPZmZzY3JlZW4pIENoZWNrOiBzdWJ0cmVlRmxhZ3MgJiBMYXlvdXRTdGF0aWNcblxuXG4gICAgaWYgKGZpcnN0Q2hpbGQgIT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgbm9kZSBtYXkgaGF2ZSBiZWVuIHJldXNlZCBmcm9tIGEgcHJldmlvdXMgcmVuZGVyLCBzbyB3ZSBjYW4ndFxuICAgICAgLy8gYXNzdW1lIGl0cyByZXR1cm4gcG9pbnRlciBpcyBjb3JyZWN0LlxuICAgICAgZmlyc3RDaGlsZC5yZXR1cm4gPSBmaWJlcjtcbiAgICAgIG5leHRFZmZlY3QgPSBmaXJzdENoaWxkO1xuICAgIH0gZWxzZSB7XG4gICAgICByZWFwcGVhckxheW91dEVmZmVjdHNfY29tcGxldGUoc3VidHJlZVJvb3QpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZWFwcGVhckxheW91dEVmZmVjdHNfY29tcGxldGUoc3VidHJlZVJvb3QpIHtcbiAgd2hpbGUgKG5leHRFZmZlY3QgIT09IG51bGwpIHtcbiAgICB2YXIgZmliZXIgPSBuZXh0RWZmZWN0OyAvLyBUT0RPIChPZmZzY3JlZW4pIENoZWNrOiBmbGFncyAmIExheW91dFN0YXRpY1xuXG4gICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTtcblxuICAgIHRyeSB7XG4gICAgICByZWFwcGVhckxheW91dEVmZmVjdHNPbkZpYmVyKGZpYmVyKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmVwb3J0VW5jYXVnaHRFcnJvckluREVWKGVycm9yKTtcbiAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpYmVyLCBmaWJlci5yZXR1cm4sIGVycm9yKTtcbiAgICB9XG5cbiAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuXG4gICAgaWYgKGZpYmVyID09PSBzdWJ0cmVlUm9vdCkge1xuICAgICAgbmV4dEVmZmVjdCA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHNpYmxpbmcgPSBmaWJlci5zaWJsaW5nO1xuXG4gICAgaWYgKHNpYmxpbmcgIT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgbm9kZSBtYXkgaGF2ZSBiZWVuIHJldXNlZCBmcm9tIGEgcHJldmlvdXMgcmVuZGVyLCBzbyB3ZSBjYW4ndFxuICAgICAgLy8gYXNzdW1lIGl0cyByZXR1cm4gcG9pbnRlciBpcyBjb3JyZWN0LlxuICAgICAgc2libGluZy5yZXR1cm4gPSBmaWJlci5yZXR1cm47XG4gICAgICBuZXh0RWZmZWN0ID0gc2libGluZztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBuZXh0RWZmZWN0ID0gZmliZXIucmV0dXJuO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFBhc3NpdmVNb3VudEVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKSB7XG4gIG5leHRFZmZlY3QgPSBmaW5pc2hlZFdvcms7XG4gIGNvbW1pdFBhc3NpdmVNb3VudEVmZmVjdHNfYmVnaW4oZmluaXNoZWRXb3JrLCByb290KTtcbn1cblxuZnVuY3Rpb24gY29tbWl0UGFzc2l2ZU1vdW50RWZmZWN0c19iZWdpbihzdWJ0cmVlUm9vdCwgcm9vdCkge1xuICB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCkge1xuICAgIHZhciBmaWJlciA9IG5leHRFZmZlY3Q7XG4gICAgdmFyIGZpcnN0Q2hpbGQgPSBmaWJlci5jaGlsZDtcblxuICAgIGlmICgoZmliZXIuc3VidHJlZUZsYWdzICYgUGFzc2l2ZU1hc2spICE9PSBOb0ZsYWdzICYmIGZpcnN0Q2hpbGQgIT09IG51bGwpIHtcbiAgICAgIGVuc3VyZUNvcnJlY3RSZXR1cm5Qb2ludGVyKGZpcnN0Q2hpbGQsIGZpYmVyKTtcbiAgICAgIG5leHRFZmZlY3QgPSBmaXJzdENoaWxkO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb21taXRQYXNzaXZlTW91bnRFZmZlY3RzX2NvbXBsZXRlKHN1YnRyZWVSb290LCByb290KTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0UGFzc2l2ZU1vdW50RWZmZWN0c19jb21wbGV0ZShzdWJ0cmVlUm9vdCwgcm9vdCkge1xuICB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCkge1xuICAgIHZhciBmaWJlciA9IG5leHRFZmZlY3Q7XG5cbiAgICBpZiAoKGZpYmVyLmZsYWdzICYgUGFzc2l2ZSkgIT09IE5vRmxhZ3MpIHtcbiAgICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbW1pdFBhc3NpdmVNb3VudE9uRmliZXIocm9vdCwgZmliZXIpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmVwb3J0VW5jYXVnaHRFcnJvckluREVWKGVycm9yKTtcbiAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmliZXIsIGZpYmVyLnJldHVybiwgZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuICAgIH1cblxuICAgIGlmIChmaWJlciA9PT0gc3VidHJlZVJvb3QpIHtcbiAgICAgIG5leHRFZmZlY3QgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBzaWJsaW5nID0gZmliZXIuc2libGluZztcblxuICAgIGlmIChzaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICBlbnN1cmVDb3JyZWN0UmV0dXJuUG9pbnRlcihzaWJsaW5nLCBmaWJlci5yZXR1cm4pO1xuICAgICAgbmV4dEVmZmVjdCA9IHNpYmxpbmc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbmV4dEVmZmVjdCA9IGZpYmVyLnJldHVybjtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRQYXNzaXZlTW91bnRPbkZpYmVyKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKSB7XG4gIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgaWYgKCBmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAgICAgc3RhcnRQYXNzaXZlRWZmZWN0VGltZXIoKTtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KFBhc3NpdmUkMSB8IEhhc0VmZmVjdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgcmVjb3JkUGFzc2l2ZUVmZmVjdER1cmF0aW9uKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0TW91bnQoUGFzc2l2ZSQxIHwgSGFzRWZmZWN0LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0UGFzc2l2ZVVubW91bnRFZmZlY3RzKGZpcnN0Q2hpbGQpIHtcbiAgbmV4dEVmZmVjdCA9IGZpcnN0Q2hpbGQ7XG4gIGNvbW1pdFBhc3NpdmVVbm1vdW50RWZmZWN0c19iZWdpbigpO1xufVxuXG5mdW5jdGlvbiBjb21taXRQYXNzaXZlVW5tb3VudEVmZmVjdHNfYmVnaW4oKSB7XG4gIHdoaWxlIChuZXh0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpYmVyID0gbmV4dEVmZmVjdDtcbiAgICB2YXIgY2hpbGQgPSBmaWJlci5jaGlsZDtcblxuICAgIGlmICgobmV4dEVmZmVjdC5mbGFncyAmIENoaWxkRGVsZXRpb24pICE9PSBOb0ZsYWdzKSB7XG4gICAgICB2YXIgZGVsZXRpb25zID0gZmliZXIuZGVsZXRpb25zO1xuXG4gICAgICBpZiAoZGVsZXRpb25zICE9PSBudWxsKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVsZXRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdmFyIGZpYmVyVG9EZWxldGUgPSBkZWxldGlvbnNbaV07XG4gICAgICAgICAgbmV4dEVmZmVjdCA9IGZpYmVyVG9EZWxldGU7XG4gICAgICAgICAgY29tbWl0UGFzc2l2ZVVubW91bnRFZmZlY3RzSW5zaWRlT2ZEZWxldGVkVHJlZV9iZWdpbihmaWJlclRvRGVsZXRlLCBmaWJlcik7XG4gICAgICAgIH1cblxuICAgICAgICB7XG4gICAgICAgICAgLy8gQSBmaWJlciB3YXMgZGVsZXRlZCBmcm9tIHRoaXMgcGFyZW50IGZpYmVyLCBidXQgaXQncyBzdGlsbCBwYXJ0IG9mXG4gICAgICAgICAgLy8gdGhlIHByZXZpb3VzIChhbHRlcm5hdGUpIHBhcmVudCBmaWJlcidzIGxpc3Qgb2YgY2hpbGRyZW4uIEJlY2F1c2VcbiAgICAgICAgICAvLyBjaGlsZHJlbiBhcmUgYSBsaW5rZWQgbGlzdCwgYW4gZWFybGllciBzaWJsaW5nIHRoYXQncyBzdGlsbCBhbGl2ZVxuICAgICAgICAgIC8vIHdpbGwgYmUgY29ubmVjdGVkIHRvIHRoZSBkZWxldGVkIGZpYmVyIHZpYSBpdHMgYGFsdGVybmF0ZWA6XG4gICAgICAgICAgLy9cbiAgICAgICAgICAvLyAgIGxpdmUgZmliZXJcbiAgICAgICAgICAvLyAgIC0tYWx0ZXJuYXRlLS0+IHByZXZpb3VzIGxpdmUgZmliZXJcbiAgICAgICAgICAvLyAgIC0tc2libGluZy0tPiBkZWxldGVkIGZpYmVyXG4gICAgICAgICAgLy9cbiAgICAgICAgICAvLyBXZSBjYW4ndCBkaXNjb25uZWN0IGBhbHRlcm5hdGVgIG9uIG5vZGVzIHRoYXQgaGF2ZW4ndCBiZWVuIGRlbGV0ZWRcbiAgICAgICAgICAvLyB5ZXQsIGJ1dCB3ZSBjYW4gZGlzY29ubmVjdCB0aGUgYHNpYmxpbmdgIGFuZCBgY2hpbGRgIHBvaW50ZXJzLlxuICAgICAgICAgIHZhciBwcmV2aW91c0ZpYmVyID0gZmliZXIuYWx0ZXJuYXRlO1xuXG4gICAgICAgICAgaWYgKHByZXZpb3VzRmliZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBkZXRhY2hlZENoaWxkID0gcHJldmlvdXNGaWJlci5jaGlsZDtcblxuICAgICAgICAgICAgaWYgKGRldGFjaGVkQ2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcHJldmlvdXNGaWJlci5jaGlsZCA9IG51bGw7XG5cbiAgICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIHZhciBkZXRhY2hlZFNpYmxpbmcgPSBkZXRhY2hlZENoaWxkLnNpYmxpbmc7XG4gICAgICAgICAgICAgICAgZGV0YWNoZWRDaGlsZC5zaWJsaW5nID0gbnVsbDtcbiAgICAgICAgICAgICAgICBkZXRhY2hlZENoaWxkID0gZGV0YWNoZWRTaWJsaW5nO1xuICAgICAgICAgICAgICB9IHdoaWxlIChkZXRhY2hlZENoaWxkICE9PSBudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBuZXh0RWZmZWN0ID0gZmliZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKChmaWJlci5zdWJ0cmVlRmxhZ3MgJiBQYXNzaXZlTWFzaykgIT09IE5vRmxhZ3MgJiYgY2hpbGQgIT09IG51bGwpIHtcbiAgICAgIGVuc3VyZUNvcnJlY3RSZXR1cm5Qb2ludGVyKGNoaWxkLCBmaWJlcik7XG4gICAgICBuZXh0RWZmZWN0ID0gY2hpbGQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbW1pdFBhc3NpdmVVbm1vdW50RWZmZWN0c19jb21wbGV0ZSgpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRQYXNzaXZlVW5tb3VudEVmZmVjdHNfY29tcGxldGUoKSB7XG4gIHdoaWxlIChuZXh0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpYmVyID0gbmV4dEVmZmVjdDtcblxuICAgIGlmICgoZmliZXIuZmxhZ3MgJiBQYXNzaXZlKSAhPT0gTm9GbGFncykge1xuICAgICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTtcbiAgICAgIGNvbW1pdFBhc3NpdmVVbm1vdW50T25GaWJlcihmaWJlcik7XG4gICAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuICAgIH1cblxuICAgIHZhciBzaWJsaW5nID0gZmliZXIuc2libGluZztcblxuICAgIGlmIChzaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICBlbnN1cmVDb3JyZWN0UmV0dXJuUG9pbnRlcihzaWJsaW5nLCBmaWJlci5yZXR1cm4pO1xuICAgICAgbmV4dEVmZmVjdCA9IHNpYmxpbmc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbmV4dEVmZmVjdCA9IGZpYmVyLnJldHVybjtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRQYXNzaXZlVW5tb3VudE9uRmliZXIoZmluaXNoZWRXb3JrKSB7XG4gIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgaWYgKCBmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAgICAgc3RhcnRQYXNzaXZlRWZmZWN0VGltZXIoKTtcbiAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoUGFzc2l2ZSQxIHwgSGFzRWZmZWN0LCBmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4pO1xuICAgICAgICAgIHJlY29yZFBhc3NpdmVFZmZlY3REdXJhdGlvbihmaW5pc2hlZFdvcmspO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChQYXNzaXZlJDEgfCBIYXNFZmZlY3QsIGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRQYXNzaXZlVW5tb3VudEVmZmVjdHNJbnNpZGVPZkRlbGV0ZWRUcmVlX2JlZ2luKGRlbGV0ZWRTdWJ0cmVlUm9vdCwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcikge1xuICB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCkge1xuICAgIHZhciBmaWJlciA9IG5leHRFZmZlY3Q7IC8vIERlbGV0aW9uIGVmZmVjdHMgZmlyZSBpbiBwYXJlbnQgLT4gY2hpbGQgb3JkZXJcbiAgICAvLyBUT0RPOiBDaGVjayBpZiBmaWJlciBoYXMgYSBQYXNzaXZlU3RhdGljIGZsYWdcblxuICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG4gICAgY29tbWl0UGFzc2l2ZVVubW91bnRJbnNpZGVEZWxldGVkVHJlZU9uRmliZXIoZmliZXIsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IpO1xuICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgdmFyIGNoaWxkID0gZmliZXIuY2hpbGQ7IC8vIFRPRE86IE9ubHkgdHJhdmVyc2Ugc3VidHJlZSBpZiBpdCBoYXMgYSBQYXNzaXZlU3RhdGljIGZsYWcuIChCdXQsIGlmIHdlXG4gICAgLy8gZG8gdGhpcywgc3RpbGwgbmVlZCB0byBoYW5kbGUgYGRlbGV0ZWRUcmVlQ2xlYW5VcExldmVsYCBjb3JyZWN0bHkuKVxuXG4gICAgaWYgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICBlbnN1cmVDb3JyZWN0UmV0dXJuUG9pbnRlcihjaGlsZCwgZmliZXIpO1xuICAgICAgbmV4dEVmZmVjdCA9IGNoaWxkO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb21taXRQYXNzaXZlVW5tb3VudEVmZmVjdHNJbnNpZGVPZkRlbGV0ZWRUcmVlX2NvbXBsZXRlKGRlbGV0ZWRTdWJ0cmVlUm9vdCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFBhc3NpdmVVbm1vdW50RWZmZWN0c0luc2lkZU9mRGVsZXRlZFRyZWVfY29tcGxldGUoZGVsZXRlZFN1YnRyZWVSb290KSB7XG4gIHdoaWxlIChuZXh0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpYmVyID0gbmV4dEVmZmVjdDtcbiAgICB2YXIgc2libGluZyA9IGZpYmVyLnNpYmxpbmc7XG4gICAgdmFyIHJldHVybkZpYmVyID0gZmliZXIucmV0dXJuO1xuXG4gICAge1xuICAgICAgLy8gUmVjdXJzaXZlbHkgdHJhdmVyc2UgdGhlIGVudGlyZSBkZWxldGVkIHRyZWUgYW5kIGNsZWFuIHVwIGZpYmVyIGZpZWxkcy5cbiAgICAgIC8vIFRoaXMgaXMgbW9yZSBhZ2dyZXNzaXZlIHRoYW4gaWRlYWwsIGFuZCB0aGUgbG9uZyB0ZXJtIGdvYWwgaXMgdG8gb25seVxuICAgICAgLy8gaGF2ZSB0byBkZXRhY2ggdGhlIGRlbGV0ZWQgdHJlZSBhdCB0aGUgcm9vdC5cbiAgICAgIGRldGFjaEZpYmVyQWZ0ZXJFZmZlY3RzKGZpYmVyKTtcblxuICAgICAgaWYgKGZpYmVyID09PSBkZWxldGVkU3VidHJlZVJvb3QpIHtcbiAgICAgICAgbmV4dEVmZmVjdCA9IG51bGw7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2libGluZyAhPT0gbnVsbCkge1xuICAgICAgZW5zdXJlQ29ycmVjdFJldHVyblBvaW50ZXIoc2libGluZywgcmV0dXJuRmliZXIpO1xuICAgICAgbmV4dEVmZmVjdCA9IHNpYmxpbmc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbmV4dEVmZmVjdCA9IHJldHVybkZpYmVyO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFBhc3NpdmVVbm1vdW50SW5zaWRlRGVsZXRlZFRyZWVPbkZpYmVyKGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IpIHtcbiAgc3dpdGNoIChjdXJyZW50LnRhZykge1xuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgaWYgKCBjdXJyZW50Lm1vZGUgJiBQcm9maWxlTW9kZSkge1xuICAgICAgICAgIHN0YXJ0UGFzc2l2ZUVmZmVjdFRpbWVyKCk7XG4gICAgICAgICAgY29tbWl0SG9va0VmZmVjdExpc3RVbm1vdW50KFBhc3NpdmUkMSwgY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcik7XG4gICAgICAgICAgcmVjb3JkUGFzc2l2ZUVmZmVjdER1cmF0aW9uKGN1cnJlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChQYXNzaXZlJDEsIGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gIH1cbn1cblxudmFyIGRpZFdhcm5Xcm9uZ1JldHVyblBvaW50ZXIgPSBmYWxzZTtcblxuZnVuY3Rpb24gZW5zdXJlQ29ycmVjdFJldHVyblBvaW50ZXIoZmliZXIsIGV4cGVjdGVkUmV0dXJuRmliZXIpIHtcbiAge1xuICAgIGlmICghZGlkV2Fybldyb25nUmV0dXJuUG9pbnRlciAmJiBmaWJlci5yZXR1cm4gIT09IGV4cGVjdGVkUmV0dXJuRmliZXIpIHtcbiAgICAgIGRpZFdhcm5Xcm9uZ1JldHVyblBvaW50ZXIgPSB0cnVlO1xuXG4gICAgICBlcnJvcignSW50ZXJuYWwgUmVhY3QgZXJyb3I6IFJldHVybiBwb2ludGVyIGlzIGluY29uc2lzdGVudCAnICsgJ3dpdGggcGFyZW50LicpO1xuICAgIH1cbiAgfSAvLyBUT0RPOiBSZW1vdmUgdGhpcyBhc3NpZ25tZW50IG9uY2Ugd2UncmUgY29uZmlkZW50IHRoYXQgaXQgd29uJ3QgYnJlYWtcbiAgLy8gYW55dGhpbmcsIGJ5IGNoZWNraW5nIHRoZSB3YXJuaW5nIGxvZ3MgZm9yIHRoZSBhYm92ZSBpbnZhcmlhbnRcblxuXG4gIGZpYmVyLnJldHVybiA9IGV4cGVjdGVkUmV0dXJuRmliZXI7XG59IC8vIFRPRE86IFJldXNlIHJlYXBwZWFyTGF5b3V0RWZmZWN0cyB0cmF2ZXJzYWwgaGVyZT9cblxuXG5mdW5jdGlvbiBpbnZva2VMYXlvdXRFZmZlY3RNb3VudEluREVWKGZpYmVyKSB7XG4gIHtcbiAgICAvLyBXZSBkb24ndCBuZWVkIHRvIHJlLWNoZWNrIFN0cmljdEVmZmVjdHNNb2RlIGhlcmUuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBpZiB0aGF0IGNoZWNrIGhhcyBhbHJlYWR5IHBhc3NlZC5cbiAgICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KExheW91dCB8IEhhc0VmZmVjdCwgZmliZXIpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICByZXBvcnRVbmNhdWdodEVycm9ySW5ERVYoZXJyb3IpO1xuICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmliZXIsIGZpYmVyLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBmaWJlci5zdGF0ZU5vZGU7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQoKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmVwb3J0VW5jYXVnaHRFcnJvckluREVWKGVycm9yKTtcbiAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpYmVyLCBmaWJlci5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpbnZva2VQYXNzaXZlRWZmZWN0TW91bnRJbkRFVihmaWJlcikge1xuICB7XG4gICAgLy8gV2UgZG9uJ3QgbmVlZCB0byByZS1jaGVjayBTdHJpY3RFZmZlY3RzTW9kZSBoZXJlLlxuICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgaWYgdGhhdCBjaGVjayBoYXMgYWxyZWFkeSBwYXNzZWQuXG4gICAgc3dpdGNoIChmaWJlci50YWcpIHtcbiAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29tbWl0SG9va0VmZmVjdExpc3RNb3VudChQYXNzaXZlJDEgfCBIYXNFZmZlY3QsIGZpYmVyKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmVwb3J0VW5jYXVnaHRFcnJvckluREVWKGVycm9yKTtcbiAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpYmVyLCBmaWJlci5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpbnZva2VMYXlvdXRFZmZlY3RVbm1vdW50SW5ERVYoZmliZXIpIHtcbiAge1xuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gcmUtY2hlY2sgU3RyaWN0RWZmZWN0c01vZGUgaGVyZS5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIGlmIHRoYXQgY2hlY2sgaGFzIGFscmVhZHkgcGFzc2VkLlxuICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChMYXlvdXQgfCBIYXNFZmZlY3QsIGZpYmVyLCBmaWJlci5yZXR1cm4pO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICByZXBvcnRVbmNhdWdodEVycm9ySW5ERVYoZXJyb3IpO1xuICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmliZXIsIGZpYmVyLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBmaWJlci5zdGF0ZU5vZGU7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVbm1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBzYWZlbHlDYWxsQ29tcG9uZW50V2lsbFVubW91bnQoZmliZXIsIGZpYmVyLnJldHVybiwgaW5zdGFuY2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGludm9rZVBhc3NpdmVFZmZlY3RVbm1vdW50SW5ERVYoZmliZXIpIHtcbiAge1xuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gcmUtY2hlY2sgU3RyaWN0RWZmZWN0c01vZGUgaGVyZS5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIGlmIHRoYXQgY2hlY2sgaGFzIGFscmVhZHkgcGFzc2VkLlxuICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChQYXNzaXZlJDEgfCBIYXNFZmZlY3QsIGZpYmVyLCBmaWJlci5yZXR1cm4pO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICByZXBvcnRVbmNhdWdodEVycm9ySW5ERVYoZXJyb3IpO1xuICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmliZXIsIGZpYmVyLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgQ09NUE9ORU5UX1RZUEUgPSAwO1xudmFyIEhBU19QU0VVRE9fQ0xBU1NfVFlQRSA9IDE7XG52YXIgUk9MRV9UWVBFID0gMjtcbnZhciBURVNUX05BTUVfVFlQRSA9IDM7XG52YXIgVEVYVF9UWVBFID0gNDtcblxuaWYgKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLmZvcikge1xuICB2YXIgc3ltYm9sRm9yID0gU3ltYm9sLmZvcjtcbiAgQ09NUE9ORU5UX1RZUEUgPSBzeW1ib2xGb3IoJ3NlbGVjdG9yLmNvbXBvbmVudCcpO1xuICBIQVNfUFNFVURPX0NMQVNTX1RZUEUgPSBzeW1ib2xGb3IoJ3NlbGVjdG9yLmhhc19wc2V1ZG9fY2xhc3MnKTtcbiAgUk9MRV9UWVBFID0gc3ltYm9sRm9yKCdzZWxlY3Rvci5yb2xlJyk7XG4gIFRFU1RfTkFNRV9UWVBFID0gc3ltYm9sRm9yKCdzZWxlY3Rvci50ZXN0X2lkJyk7XG4gIFRFWFRfVFlQRSA9IHN5bWJvbEZvcignc2VsZWN0b3IudGV4dCcpO1xufVxudmFyIGNvbW1pdEhvb2tzID0gW107XG5mdW5jdGlvbiBvbkNvbW1pdFJvb3QkMSgpIHtcbiAge1xuICAgIGNvbW1pdEhvb2tzLmZvckVhY2goZnVuY3Rpb24gKGNvbW1pdEhvb2spIHtcbiAgICAgIHJldHVybiBjb21taXRIb29rKCk7XG4gICAgfSk7XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudEFjdFF1ZXVlID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50QWN0UXVldWU7XG5mdW5jdGlvbiBpc0xlZ2FjeUFjdEVudmlyb25tZW50KGZpYmVyKSB7XG4gIHtcbiAgICAvLyBMZWdhY3kgbW9kZS4gV2UgcHJlc2VydmUgdGhlIGJlaGF2aW9yIG9mIFJlYWN0IDE3J3MgYWN0LiBJdCBhc3N1bWVzIGFuXG4gICAgLy8gYWN0IGVudmlyb25tZW50IHdoZW5ldmVyIGBqZXN0YCBpcyBkZWZpbmVkLCBidXQgeW91IGNhbiBzdGlsbCB0dXJuIG9mZlxuICAgIC8vIHNwdXJpb3VzIHdhcm5pbmdzIGJ5IHNldHRpbmcgSVNfUkVBQ1RfQUNUX0VOVklST05NRU5UIGV4cGxpY2l0bHlcbiAgICAvLyB0byBmYWxzZS5cbiAgICB2YXIgaXNSZWFjdEFjdEVudmlyb25tZW50R2xvYmFsID0gLy8gJEZsb3dFeHBlY3RlZEVycm9yIFx1MjAxMyBGbG93IGRvZXNuJ3Qga25vdyBhYm91dCBJU19SRUFDVF9BQ1RfRU5WSVJPTk1FTlQgZ2xvYmFsXG4gICAgdHlwZW9mIElTX1JFQUNUX0FDVF9FTlZJUk9OTUVOVCAhPT0gJ3VuZGVmaW5lZCcgPyBJU19SRUFDVF9BQ1RfRU5WSVJPTk1FTlQgOiB1bmRlZmluZWQ7IC8vICRGbG93RXhwZWN0ZWRFcnJvciAtIEZsb3cgZG9lc24ndCBrbm93IGFib3V0IGplc3RcblxuICAgIHZhciBqZXN0SXNEZWZpbmVkID0gdHlwZW9mIGplc3QgIT09ICd1bmRlZmluZWQnO1xuICAgIHJldHVybiAgamVzdElzRGVmaW5lZCAmJiBpc1JlYWN0QWN0RW52aXJvbm1lbnRHbG9iYWwgIT09IGZhbHNlO1xuICB9XG59XG5mdW5jdGlvbiBpc0NvbmN1cnJlbnRBY3RFbnZpcm9ubWVudCgpIHtcbiAge1xuICAgIHZhciBpc1JlYWN0QWN0RW52aXJvbm1lbnRHbG9iYWwgPSAvLyAkRmxvd0V4cGVjdGVkRXJyb3IgXHUyMDEzIEZsb3cgZG9lc24ndCBrbm93IGFib3V0IElTX1JFQUNUX0FDVF9FTlZJUk9OTUVOVCBnbG9iYWxcbiAgICB0eXBlb2YgSVNfUkVBQ1RfQUNUX0VOVklST05NRU5UICE9PSAndW5kZWZpbmVkJyA/IElTX1JFQUNUX0FDVF9FTlZJUk9OTUVOVCA6IHVuZGVmaW5lZDtcblxuICAgIGlmICghaXNSZWFjdEFjdEVudmlyb25tZW50R2xvYmFsICYmIFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIC8vIFRPRE86IEluY2x1ZGUgbGluayB0byByZWxldmFudCBkb2N1bWVudGF0aW9uIHBhZ2UuXG4gICAgICBlcnJvcignVGhlIGN1cnJlbnQgdGVzdGluZyBlbnZpcm9ubWVudCBpcyBub3QgY29uZmlndXJlZCB0byBzdXBwb3J0ICcgKyAnYWN0KC4uLiknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNSZWFjdEFjdEVudmlyb25tZW50R2xvYmFsO1xuICB9XG59XG5cbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsXG4gICAgUmVhY3RDdXJyZW50T3duZXIkMiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudE93bmVyLFxuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDMgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxcbiAgICBSZWFjdEN1cnJlbnRBY3RRdWV1ZSQxID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50QWN0UXVldWU7XG52YXIgTm9Db250ZXh0ID1cbi8qICAgICAgICAgICAgICovXG4wO1xudmFyIEJhdGNoZWRDb250ZXh0ID1cbi8qICAgICAgICAgICAgICAgKi9cbjE7XG52YXIgUmVuZGVyQ29udGV4dCA9XG4vKiAgICAgICAgICAgICAgICAqL1xuMjtcbnZhciBDb21taXRDb250ZXh0ID1cbi8qICAgICAgICAgICAgICAgICovXG40O1xudmFyIFJvb3RJblByb2dyZXNzID0gMDtcbnZhciBSb290RmF0YWxFcnJvcmVkID0gMTtcbnZhciBSb290RXJyb3JlZCA9IDI7XG52YXIgUm9vdFN1c3BlbmRlZCA9IDM7XG52YXIgUm9vdFN1c3BlbmRlZFdpdGhEZWxheSA9IDQ7XG52YXIgUm9vdENvbXBsZXRlZCA9IDU7XG52YXIgUm9vdERpZE5vdENvbXBsZXRlID0gNjsgLy8gRGVzY3JpYmVzIHdoZXJlIHdlIGFyZSBpbiB0aGUgUmVhY3QgZXhlY3V0aW9uIHN0YWNrXG5cbnZhciBleGVjdXRpb25Db250ZXh0ID0gTm9Db250ZXh0OyAvLyBUaGUgcm9vdCB3ZSdyZSB3b3JraW5nIG9uXG5cbnZhciB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSBudWxsOyAvLyBUaGUgZmliZXIgd2UncmUgd29ya2luZyBvblxuXG52YXIgd29ya0luUHJvZ3Jlc3MgPSBudWxsOyAvLyBUaGUgbGFuZXMgd2UncmUgcmVuZGVyaW5nXG5cbnZhciB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyA9IE5vTGFuZXM7IC8vIFN0YWNrIHRoYXQgYWxsb3dzIGNvbXBvbmVudHMgdG8gY2hhbmdlIHRoZSByZW5kZXIgbGFuZXMgZm9yIGl0cyBzdWJ0cmVlXG4vLyBUaGlzIGlzIGEgc3VwZXJzZXQgb2YgdGhlIGxhbmVzIHdlIHN0YXJ0ZWQgd29ya2luZyBvbiBhdCB0aGUgcm9vdC4gVGhlIG9ubHlcbi8vIGNhc2Ugd2hlcmUgaXQncyBkaWZmZXJlbnQgZnJvbSBgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXNgIGlzIHdoZW4gd2Vcbi8vIGVudGVyIGEgc3VidHJlZSB0aGF0IGlzIGhpZGRlbiBhbmQgbmVlZHMgdG8gYmUgdW5oaWRkZW46IFN1c3BlbnNlIGFuZFxuLy8gT2Zmc2NyZWVuIGNvbXBvbmVudC5cbi8vXG4vLyBNb3N0IHRoaW5ncyBpbiB0aGUgd29yayBsb29wIHNob3VsZCBkZWFsIHdpdGggd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMuXG4vLyBNb3N0IHRoaW5ncyBpbiBiZWdpbi9jb21wbGV0ZSBwaGFzZXMgc2hvdWxkIGRlYWwgd2l0aCBzdWJ0cmVlUmVuZGVyTGFuZXMuXG5cbnZhciBzdWJ0cmVlUmVuZGVyTGFuZXMgPSBOb0xhbmVzO1xudmFyIHN1YnRyZWVSZW5kZXJMYW5lc0N1cnNvciA9IGNyZWF0ZUN1cnNvcihOb0xhbmVzKTsgLy8gV2hldGhlciB0byByb290IGNvbXBsZXRlZCwgZXJyb3JlZCwgc3VzcGVuZGVkLCBldGMuXG5cbnZhciB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEluUHJvZ3Jlc3M7IC8vIEEgZmF0YWwgZXJyb3IsIGlmIG9uZSBpcyB0aHJvd25cblxudmFyIHdvcmtJblByb2dyZXNzUm9vdEZhdGFsRXJyb3IgPSBudWxsOyAvLyBcIkluY2x1ZGVkXCIgbGFuZXMgcmVmZXIgdG8gbGFuZXMgdGhhdCB3ZXJlIHdvcmtlZCBvbiBkdXJpbmcgdGhpcyByZW5kZXIuIEl0J3Ncbi8vIHNsaWdodGx5IGRpZmZlcmVudCB0aGFuIGByZW5kZXJMYW5lc2AgYmVjYXVzZSBgcmVuZGVyTGFuZXNgIGNhbiBjaGFuZ2UgYXMgeW91XG4vLyBlbnRlciBhbmQgZXhpdCBhbiBPZmZzY3JlZW4gdHJlZS4gVGhpcyB2YWx1ZSBpcyB0aGUgY29tYmluYXRpb24gb2YgYWxsIHJlbmRlclxuLy8gbGFuZXMgZm9yIHRoZSBlbnRpcmUgcmVuZGVyIHBoYXNlLlxuXG52YXIgd29ya0luUHJvZ3Jlc3NSb290SW5jbHVkZWRMYW5lcyA9IE5vTGFuZXM7IC8vIFRoZSB3b3JrIGxlZnQgb3ZlciBieSBjb21wb25lbnRzIHRoYXQgd2VyZSB2aXNpdGVkIGR1cmluZyB0aGlzIHJlbmRlci4gT25seVxuLy8gaW5jbHVkZXMgdW5wcm9jZXNzZWQgdXBkYXRlcywgbm90IHdvcmsgaW4gYmFpbGVkIG91dCBjaGlsZHJlbi5cblxudmFyIHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcyA9IE5vTGFuZXM7IC8vIExhbmVzIHRoYXQgd2VyZSB1cGRhdGVkIChpbiBhbiBpbnRlcmxlYXZlZCBldmVudCkgZHVyaW5nIHRoaXMgcmVuZGVyLlxuXG52YXIgd29ya0luUHJvZ3Jlc3NSb290SW50ZXJsZWF2ZWRVcGRhdGVkTGFuZXMgPSBOb0xhbmVzOyAvLyBMYW5lcyB0aGF0IHdlcmUgdXBkYXRlZCBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZSAoKm5vdCogYW4gaW50ZXJsZWF2ZWQgZXZlbnQpLlxuXG52YXIgd29ya0luUHJvZ3Jlc3NSb290UGluZ2VkTGFuZXMgPSBOb0xhbmVzOyAvLyBFcnJvcnMgdGhhdCBhcmUgdGhyb3duIGR1cmluZyB0aGUgcmVuZGVyIHBoYXNlLlxuXG52YXIgd29ya0luUHJvZ3Jlc3NSb290Q29uY3VycmVudEVycm9ycyA9IG51bGw7IC8vIFRoZXNlIGFyZSBlcnJvcnMgdGhhdCB3ZSByZWNvdmVyZWQgZnJvbSB3aXRob3V0IHN1cmZhY2luZyB0aGVtIHRvIHRoZSBVSS5cbi8vIFdlIHdpbGwgbG9nIHRoZW0gb25jZSB0aGUgdHJlZSBjb21taXRzLlxuXG52YXIgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMgPSBudWxsOyAvLyBUaGUgbW9zdCByZWNlbnQgdGltZSB3ZSBjb21taXR0ZWQgYSBmYWxsYmFjay4gVGhpcyBsZXRzIHVzIGVuc3VyZSBhIHRyYWluXG4vLyBtb2RlbCB3aGVyZSB3ZSBkb24ndCBjb21taXQgbmV3IGxvYWRpbmcgc3RhdGVzIGluIHRvbyBxdWljayBzdWNjZXNzaW9uLlxuXG52YXIgZ2xvYmFsTW9zdFJlY2VudEZhbGxiYWNrVGltZSA9IDA7XG52YXIgRkFMTEJBQ0tfVEhST1RUTEVfTVMgPSA1MDA7IC8vIFRoZSBhYnNvbHV0ZSB0aW1lIGZvciB3aGVuIHdlIHNob3VsZCBzdGFydCBnaXZpbmcgdXAgb24gcmVuZGVyaW5nXG4vLyBtb3JlIGFuZCBwcmVmZXIgQ1BVIHN1c3BlbnNlIGhldXJpc3RpY3MgaW5zdGVhZC5cblxudmFyIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlclRhcmdldFRpbWUgPSBJbmZpbml0eTsgLy8gSG93IGxvbmcgYSByZW5kZXIgaXMgc3VwcG9zZWQgdG8gdGFrZSBiZWZvcmUgd2Ugc3RhcnQgZm9sbG93aW5nIENQVVxuLy8gc3VzcGVuc2UgaGV1cmlzdGljcyBhbmQgb3B0IG91dCBvZiByZW5kZXJpbmcgbW9yZSBjb250ZW50LlxuXG52YXIgUkVOREVSX1RJTUVPVVRfTVMgPSA1MDA7XG5cbmZ1bmN0aW9uIHJlc2V0UmVuZGVyVGltZXIoKSB7XG4gIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlclRhcmdldFRpbWUgPSBub3coKSArIFJFTkRFUl9USU1FT1VUX01TO1xufVxuXG5mdW5jdGlvbiBnZXRSZW5kZXJUYXJnZXRUaW1lKCkge1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyVGFyZ2V0VGltZTtcbn1cbnZhciBoYXNVbmNhdWdodEVycm9yID0gZmFsc2U7XG52YXIgZmlyc3RVbmNhdWdodEVycm9yID0gbnVsbDtcbnZhciBsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZCA9IG51bGw7IC8vIE9ubHkgdXNlZCB3aGVuIGVuYWJsZVByb2ZpbGVyTmVzdGVkVXBkYXRlU2NoZWR1bGVkSG9vayBpcyB0cnVlO1xudmFyIHJvb3REb2VzSGF2ZVBhc3NpdmVFZmZlY3RzID0gZmFsc2U7XG52YXIgcm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMgPSBudWxsO1xudmFyIHBlbmRpbmdQYXNzaXZlRWZmZWN0c0xhbmVzID0gTm9MYW5lcztcbnZhciBwZW5kaW5nUGFzc2l2ZVByb2ZpbGVyRWZmZWN0cyA9IFtdO1xuXG52YXIgTkVTVEVEX1VQREFURV9MSU1JVCA9IDUwO1xudmFyIG5lc3RlZFVwZGF0ZUNvdW50ID0gMDtcbnZhciByb290V2l0aE5lc3RlZFVwZGF0ZXMgPSBudWxsO1xudmFyIE5FU1RFRF9QQVNTSVZFX1VQREFURV9MSU1JVCA9IDUwO1xudmFyIG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA9IDA7IC8vIElmIHR3byB1cGRhdGVzIGFyZSBzY2hlZHVsZWQgd2l0aGluIHRoZSBzYW1lIGV2ZW50LCB3ZSBzaG91bGQgdHJlYXQgdGhlaXJcbi8vIGV2ZW50IHRpbWVzIGFzIHNpbXVsdGFuZW91cywgZXZlbiBpZiB0aGUgYWN0dWFsIGNsb2NrIHRpbWUgaGFzIGFkdmFuY2VkXG4vLyBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgc2Vjb25kIGNhbGwuXG5cbnZhciBjdXJyZW50RXZlbnRUaW1lID0gTm9UaW1lc3RhbXA7XG52YXIgY3VycmVudEV2ZW50VHJhbnNpdGlvbkxhbmUgPSBOb0xhbmVzO1xuZnVuY3Rpb24gZ2V0V29ya0luUHJvZ3Jlc3NSb290KCkge1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3NSb290O1xufVxuZnVuY3Rpb24gcmVxdWVzdEV2ZW50VGltZSgpIHtcbiAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgIT09IE5vQ29udGV4dCkge1xuICAgIC8vIFdlJ3JlIGluc2lkZSBSZWFjdCwgc28gaXQncyBmaW5lIHRvIHJlYWQgdGhlIGFjdHVhbCB0aW1lLlxuICAgIHJldHVybiBub3coKTtcbiAgfSAvLyBXZSdyZSBub3QgaW5zaWRlIFJlYWN0LCBzbyB3ZSBtYXkgYmUgaW4gdGhlIG1pZGRsZSBvZiBhIGJyb3dzZXIgZXZlbnQuXG5cblxuICBpZiAoY3VycmVudEV2ZW50VGltZSAhPT0gTm9UaW1lc3RhbXApIHtcbiAgICAvLyBVc2UgdGhlIHNhbWUgc3RhcnQgdGltZSBmb3IgYWxsIHVwZGF0ZXMgdW50aWwgd2UgZW50ZXIgUmVhY3QgYWdhaW4uXG4gICAgcmV0dXJuIGN1cnJlbnRFdmVudFRpbWU7XG4gIH0gLy8gVGhpcyBpcyB0aGUgZmlyc3QgdXBkYXRlIHNpbmNlIFJlYWN0IHlpZWxkZWQuIENvbXB1dGUgYSBuZXcgc3RhcnQgdGltZS5cblxuXG4gIGN1cnJlbnRFdmVudFRpbWUgPSBub3coKTtcbiAgcmV0dXJuIGN1cnJlbnRFdmVudFRpbWU7XG59XG5mdW5jdGlvbiByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcikge1xuICAvLyBTcGVjaWFsIGNhc2VzXG4gIHZhciBtb2RlID0gZmliZXIubW9kZTtcblxuICBpZiAoKG1vZGUgJiBDb25jdXJyZW50TW9kZSkgPT09IE5vTW9kZSkge1xuICAgIHJldHVybiBTeW5jTGFuZTtcbiAgfSBlbHNlIGlmICggKGV4ZWN1dGlvbkNvbnRleHQgJiBSZW5kZXJDb250ZXh0KSAhPT0gTm9Db250ZXh0ICYmIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgLy8gVGhpcyBpcyBhIHJlbmRlciBwaGFzZSB1cGRhdGUuIFRoZXNlIGFyZSBub3Qgb2ZmaWNpYWxseSBzdXBwb3J0ZWQuIFRoZVxuICAgIC8vIG9sZCBiZWhhdmlvciBpcyB0byBnaXZlIHRoaXMgdGhlIHNhbWUgXCJ0aHJlYWRcIiAobGFuZXMpIGFzXG4gICAgLy8gd2hhdGV2ZXIgaXMgY3VycmVudGx5IHJlbmRlcmluZy4gU28gaWYgeW91IGNhbGwgYHNldFN0YXRlYCBvbiBhIGNvbXBvbmVudFxuICAgIC8vIHRoYXQgaGFwcGVucyBsYXRlciBpbiB0aGUgc2FtZSByZW5kZXIsIGl0IHdpbGwgZmx1c2guIElkZWFsbHksIHdlIHdhbnQgdG9cbiAgICAvLyByZW1vdmUgdGhlIHNwZWNpYWwgY2FzZSBhbmQgdHJlYXQgdGhlbSBhcyBpZiB0aGV5IGNhbWUgZnJvbSBhblxuICAgIC8vIGludGVybGVhdmVkIGV2ZW50LiBSZWdhcmRsZXNzLCB0aGlzIHBhdHRlcm4gaXMgbm90IG9mZmljaWFsbHkgc3VwcG9ydGVkLlxuICAgIC8vIFRoaXMgYmVoYXZpb3IgaXMgb25seSBhIGZhbGxiYWNrLiBUaGUgZmxhZyBvbmx5IGV4aXN0cyB1bnRpbCB3ZSBjYW4gcm9sbFxuICAgIC8vIG91dCB0aGUgc2V0U3RhdGUgd2FybmluZywgc2luY2UgZXhpc3RpbmcgY29kZSBtaWdodCBhY2NpZGVudGFsbHkgcmVseSBvblxuICAgIC8vIHRoZSBjdXJyZW50IGJlaGF2aW9yLlxuICAgIHJldHVybiBwaWNrQXJiaXRyYXJ5TGFuZSh3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyk7XG4gIH1cblxuICB2YXIgaXNUcmFuc2l0aW9uID0gcmVxdWVzdEN1cnJlbnRUcmFuc2l0aW9uKCkgIT09IE5vVHJhbnNpdGlvbjtcblxuICBpZiAoaXNUcmFuc2l0aW9uKSB7XG4gICAgaWYgKCBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQzLnRyYW5zaXRpb24gIT09IG51bGwpIHtcbiAgICAgIHZhciB0cmFuc2l0aW9uID0gUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMy50cmFuc2l0aW9uO1xuXG4gICAgICBpZiAoIXRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMpIHtcbiAgICAgICAgdHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycyA9IG5ldyBTZXQoKTtcbiAgICAgIH1cblxuICAgICAgdHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5hZGQoZmliZXIpO1xuICAgIH0gLy8gVGhlIGFsZ29yaXRobSBmb3IgYXNzaWduaW5nIGFuIHVwZGF0ZSB0byBhIGxhbmUgc2hvdWxkIGJlIHN0YWJsZSBmb3IgYWxsXG4gICAgLy8gdXBkYXRlcyBhdCB0aGUgc2FtZSBwcmlvcml0eSB3aXRoaW4gdGhlIHNhbWUgZXZlbnQuIFRvIGRvIHRoaXMsIHRoZVxuICAgIC8vIGlucHV0cyB0byB0aGUgYWxnb3JpdGhtIG11c3QgYmUgdGhlIHNhbWUuXG4gICAgLy9cbiAgICAvLyBUaGUgdHJpY2sgd2UgdXNlIGlzIHRvIGNhY2hlIHRoZSBmaXJzdCBvZiBlYWNoIG9mIHRoZXNlIGlucHV0cyB3aXRoaW4gYW5cbiAgICAvLyBldmVudC4gVGhlbiByZXNldCB0aGUgY2FjaGVkIHZhbHVlcyBvbmNlIHdlIGNhbiBiZSBzdXJlIHRoZSBldmVudCBpc1xuICAgIC8vIG92ZXIuIE91ciBoZXVyaXN0aWMgZm9yIHRoYXQgaXMgd2hlbmV2ZXIgd2UgZW50ZXIgYSBjb25jdXJyZW50IHdvcmsgbG9vcC5cblxuXG4gICAgaWYgKGN1cnJlbnRFdmVudFRyYW5zaXRpb25MYW5lID09PSBOb0xhbmUpIHtcbiAgICAgIC8vIEFsbCB0cmFuc2l0aW9ucyB3aXRoaW4gdGhlIHNhbWUgZXZlbnQgYXJlIGFzc2lnbmVkIHRoZSBzYW1lIGxhbmUuXG4gICAgICBjdXJyZW50RXZlbnRUcmFuc2l0aW9uTGFuZSA9IGNsYWltTmV4dFRyYW5zaXRpb25MYW5lKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRFdmVudFRyYW5zaXRpb25MYW5lO1xuICB9IC8vIFVwZGF0ZXMgb3JpZ2luYXRpbmcgaW5zaWRlIGNlcnRhaW4gUmVhY3QgbWV0aG9kcywgbGlrZSBmbHVzaFN5bmMsIGhhdmVcbiAgLy8gdGhlaXIgcHJpb3JpdHkgc2V0IGJ5IHRyYWNraW5nIGl0IHdpdGggYSBjb250ZXh0IHZhcmlhYmxlLlxuICAvL1xuICAvLyBUaGUgb3BhcXVlIHR5cGUgcmV0dXJuZWQgYnkgdGhlIGhvc3QgY29uZmlnIGlzIGludGVybmFsbHkgYSBsYW5lLCBzbyB3ZSBjYW5cbiAgLy8gdXNlIHRoYXQgZGlyZWN0bHkuXG4gIC8vIFRPRE86IE1vdmUgdGhpcyB0eXBlIGNvbnZlcnNpb24gdG8gdGhlIGV2ZW50IHByaW9yaXR5IG1vZHVsZS5cblxuXG4gIHZhciB1cGRhdGVMYW5lID0gZ2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KCk7XG5cbiAgaWYgKHVwZGF0ZUxhbmUgIT09IE5vTGFuZSkge1xuICAgIHJldHVybiB1cGRhdGVMYW5lO1xuICB9IC8vIFRoaXMgdXBkYXRlIG9yaWdpbmF0ZWQgb3V0c2lkZSBSZWFjdC4gQXNrIHRoZSBob3N0IGVudmlyb25tZW50IGZvciBhblxuICAvLyBhcHByb3ByaWF0ZSBwcmlvcml0eSwgYmFzZWQgb24gdGhlIHR5cGUgb2YgZXZlbnQuXG4gIC8vXG4gIC8vIFRoZSBvcGFxdWUgdHlwZSByZXR1cm5lZCBieSB0aGUgaG9zdCBjb25maWcgaXMgaW50ZXJuYWxseSBhIGxhbmUsIHNvIHdlIGNhblxuICAvLyB1c2UgdGhhdCBkaXJlY3RseS5cbiAgLy8gVE9ETzogTW92ZSB0aGlzIHR5cGUgY29udmVyc2lvbiB0byB0aGUgZXZlbnQgcHJpb3JpdHkgbW9kdWxlLlxuXG5cbiAgdmFyIGV2ZW50TGFuZSA9IGdldEN1cnJlbnRFdmVudFByaW9yaXR5KCk7XG4gIHJldHVybiBldmVudExhbmU7XG59XG5cbmZ1bmN0aW9uIHJlcXVlc3RSZXRyeUxhbmUoZmliZXIpIHtcbiAgLy8gVGhpcyBpcyBhIGZvcmsgb2YgYHJlcXVlc3RVcGRhdGVMYW5lYCBkZXNpZ25lZCBzcGVjaWZpY2FsbHkgZm9yIFN1c3BlbnNlXG4gIC8vIFwicmV0cmllc1wiIFx1MjAxNCBhIHNwZWNpYWwgdXBkYXRlIHRoYXQgYXR0ZW1wdHMgdG8gZmxpcCBhIFN1c3BlbnNlIGJvdW5kYXJ5XG4gIC8vIGZyb20gaXRzIHBsYWNlaG9sZGVyIHN0YXRlIHRvIGl0cyBwcmltYXJ5L3Jlc29sdmVkIHN0YXRlLlxuICAvLyBTcGVjaWFsIGNhc2VzXG4gIHZhciBtb2RlID0gZmliZXIubW9kZTtcblxuICBpZiAoKG1vZGUgJiBDb25jdXJyZW50TW9kZSkgPT09IE5vTW9kZSkge1xuICAgIHJldHVybiBTeW5jTGFuZTtcbiAgfVxuXG4gIHJldHVybiBjbGFpbU5leHRSZXRyeUxhbmUoKTtcbn1cblxuZnVuY3Rpb24gc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBsYW5lLCBldmVudFRpbWUpIHtcbiAgY2hlY2tGb3JOZXN0ZWRVcGRhdGVzKCk7XG4gIHZhciByb290ID0gbWFya1VwZGF0ZUxhbmVGcm9tRmliZXJUb1Jvb3QoZmliZXIsIGxhbmUpO1xuXG4gIGlmIChyb290ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gTWFyayB0aGF0IHRoZSByb290IGhhcyBhIHBlbmRpbmcgdXBkYXRlLlxuXG5cbiAgbWFya1Jvb3RVcGRhdGVkKHJvb3QsIGxhbmUsIGV2ZW50VGltZSk7XG5cbiAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgIT09IE5vTGFuZXMgJiYgcm9vdCA9PT0gd29ya0luUHJvZ3Jlc3NSb290KSB7XG4gICAgLy8gVGhpcyB1cGRhdGUgd2FzIGRpc3BhdGNoZWQgZHVyaW5nIHRoZSByZW5kZXIgcGhhc2UuIFRoaXMgaXMgYSBtaXN0YWtlXG4gICAgLy8gaWYgdGhlIHVwZGF0ZSBvcmlnaW5hdGVzIGZyb20gdXNlciBzcGFjZSAod2l0aCB0aGUgZXhjZXB0aW9uIG9mIGxvY2FsXG4gICAgLy8gaG9vayB1cGRhdGVzLCB3aGljaCBhcmUgaGFuZGxlZCBkaWZmZXJlbnRseSBhbmQgZG9uJ3QgcmVhY2ggdGhpc1xuICAgIC8vIGZ1bmN0aW9uKSwgYnV0IHRoZXJlIGFyZSBzb21lIGludGVybmFsIFJlYWN0IGZlYXR1cmVzIHRoYXQgdXNlIHRoaXMgYXNcbiAgICAvLyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIGxpa2Ugc2VsZWN0aXZlIGh5ZHJhdGlvbi5cbiAgICB3YXJuQWJvdXRSZW5kZXJQaGFzZVVwZGF0ZXNJbkRFVihmaWJlcik7IC8vIFRyYWNrIGxhbmVzIHRoYXQgd2VyZSB1cGRhdGVkIGR1cmluZyB0aGUgcmVuZGVyIHBoYXNlXG4gIH0gZWxzZSB7XG4gICAgLy8gVGhpcyBpcyBhIG5vcm1hbCB1cGRhdGUsIHNjaGVkdWxlZCBmcm9tIG91dHNpZGUgdGhlIHJlbmRlciBwaGFzZS4gRm9yXG4gICAgLy8gZXhhbXBsZSwgZHVyaW5nIGFuIGlucHV0IGV2ZW50LlxuICAgIHtcbiAgICAgIGlmIChpc0RldlRvb2xzUHJlc2VudCkge1xuICAgICAgICBhZGRGaWJlclRvTGFuZXNNYXAocm9vdCwgZmliZXIsIGxhbmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHdhcm5JZlVwZGF0ZXNOb3RXcmFwcGVkV2l0aEFjdERFVihmaWJlcik7XG5cbiAgICBpZiAocm9vdCA9PT0gd29ya0luUHJvZ3Jlc3NSb290KSB7XG4gICAgICAvLyBUT0RPOiBDb25zb2xpZGF0ZSB3aXRoIGBpc0ludGVybGVhdmVkVXBkYXRlYCBjaGVja1xuICAgICAgLy8gUmVjZWl2ZWQgYW4gdXBkYXRlIHRvIGEgdHJlZSB0aGF0J3MgaW4gdGhlIG1pZGRsZSBvZiByZW5kZXJpbmcuIE1hcmtcbiAgICAgIC8vIHRoYXQgdGhlcmUgd2FzIGFuIGludGVybGVhdmVkIHVwZGF0ZSB3b3JrIG9uIHRoaXMgcm9vdC4gVW5sZXNzIHRoZVxuICAgICAgLy8gYGRlZmVyUmVuZGVyUGhhc2VVcGRhdGVUb05leHRCYXRjaGAgZmxhZyBpcyBvZmYgYW5kIHRoaXMgaXMgYSByZW5kZXJcbiAgICAgIC8vIHBoYXNlIHVwZGF0ZS4gSW4gdGhhdCBjYXNlLCB3ZSBkb24ndCB0cmVhdCByZW5kZXIgcGhhc2UgdXBkYXRlcyBhcyBpZlxuICAgICAgLy8gdGhleSB3ZXJlIGludGVybGVhdmVkLCBmb3IgYmFja3dhcmRzIGNvbXBhdCByZWFzb25zLlxuICAgICAgaWYgKCAoZXhlY3V0aW9uQ29udGV4dCAmIFJlbmRlckNvbnRleHQpID09PSBOb0NvbnRleHQpIHtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290SW50ZXJsZWF2ZWRVcGRhdGVkTGFuZXMgPSBtZXJnZUxhbmVzKHdvcmtJblByb2dyZXNzUm9vdEludGVybGVhdmVkVXBkYXRlZExhbmVzLCBsYW5lKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RTdXNwZW5kZWRXaXRoRGVsYXkpIHtcbiAgICAgICAgLy8gVGhlIHJvb3QgYWxyZWFkeSBzdXNwZW5kZWQgd2l0aCBhIGRlbGF5LCB3aGljaCBtZWFucyB0aGlzIHJlbmRlclxuICAgICAgICAvLyBkZWZpbml0ZWx5IHdvbid0IGZpbmlzaC4gU2luY2Ugd2UgaGF2ZSBhIG5ldyB1cGRhdGUsIGxldCdzIG1hcmsgaXQgYXNcbiAgICAgICAgLy8gc3VzcGVuZGVkIG5vdywgcmlnaHQgYmVmb3JlIG1hcmtpbmcgdGhlIGluY29taW5nIHVwZGF0ZS4gVGhpcyBoYXMgdGhlXG4gICAgICAgIC8vIGVmZmVjdCBvZiBpbnRlcnJ1cHRpbmcgdGhlIGN1cnJlbnQgcmVuZGVyIGFuZCBzd2l0Y2hpbmcgdG8gdGhlIHVwZGF0ZS5cbiAgICAgICAgLy8gVE9ETzogTWFrZSBzdXJlIHRoaXMgZG9lc24ndCBvdmVycmlkZSBwaW5ncyB0aGF0IGhhcHBlbiB3aGlsZSB3ZSd2ZVxuICAgICAgICAvLyBhbHJlYWR5IHN0YXJ0ZWQgcmVuZGVyaW5nLlxuICAgICAgICBtYXJrUm9vdFN1c3BlbmRlZCQxKHJvb3QsIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgZXZlbnRUaW1lKTtcblxuICAgIGlmIChsYW5lID09PSBTeW5jTGFuZSAmJiBleGVjdXRpb25Db250ZXh0ID09PSBOb0NvbnRleHQgJiYgKGZpYmVyLm1vZGUgJiBDb25jdXJyZW50TW9kZSkgPT09IE5vTW9kZSAmJiAvLyBUcmVhdCBgYWN0YCBhcyBpZiBpdCdzIGluc2lkZSBgYmF0Y2hlZFVwZGF0ZXNgLCBldmVuIGluIGxlZ2FjeSBtb2RlLlxuICAgICEoIFJlYWN0Q3VycmVudEFjdFF1ZXVlJDEuaXNCYXRjaGluZ0xlZ2FjeSkpIHtcbiAgICAgIC8vIEZsdXNoIHRoZSBzeW5jaHJvbm91cyB3b3JrIG5vdywgdW5sZXNzIHdlJ3JlIGFscmVhZHkgd29ya2luZyBvciBpbnNpZGVcbiAgICAgIC8vIGEgYmF0Y2guIFRoaXMgaXMgaW50ZW50aW9uYWxseSBpbnNpZGUgc2NoZWR1bGVVcGRhdGVPbkZpYmVyIGluc3RlYWQgb2ZcbiAgICAgIC8vIHNjaGVkdWxlQ2FsbGJhY2tGb3JGaWJlciB0byBwcmVzZXJ2ZSB0aGUgYWJpbGl0eSB0byBzY2hlZHVsZSBhIGNhbGxiYWNrXG4gICAgICAvLyB3aXRob3V0IGltbWVkaWF0ZWx5IGZsdXNoaW5nIGl0LiBXZSBvbmx5IGRvIHRoaXMgZm9yIHVzZXItaW5pdGlhdGVkXG4gICAgICAvLyB1cGRhdGVzLCB0byBwcmVzZXJ2ZSBoaXN0b3JpY2FsIGJlaGF2aW9yIG9mIGxlZ2FjeSBtb2RlLlxuICAgICAgcmVzZXRSZW5kZXJUaW1lcigpO1xuICAgICAgZmx1c2hTeW5jQ2FsbGJhY2tzT25seUluTGVnYWN5TW9kZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByb290O1xufVxuZnVuY3Rpb24gc2NoZWR1bGVJbml0aWFsSHlkcmF0aW9uT25Sb290KHJvb3QsIGxhbmUsIGV2ZW50VGltZSkge1xuICAvLyBUaGlzIGlzIGEgc3BlY2lhbCBmb3JrIG9mIHNjaGVkdWxlVXBkYXRlT25GaWJlciB0aGF0IGlzIG9ubHkgdXNlZCB0b1xuICAvLyBzY2hlZHVsZSB0aGUgaW5pdGlhbCBoeWRyYXRpb24gb2YgYSByb290IHRoYXQgaGFzIGp1c3QgYmVlbiBjcmVhdGVkLiBNb3N0XG4gIC8vIG9mIHRoZSBzdHVmZiBpbiBzY2hlZHVsZVVwZGF0ZU9uRmliZXIgY2FuIGJlIHNraXBwZWQuXG4gIC8vXG4gIC8vIFRoZSBtYWluIHJlYXNvbiBmb3IgdGhpcyBzZXBhcmF0ZSBwYXRoLCB0aG91Z2gsIGlzIHRvIGRpc3Rpbmd1aXNoIHRoZVxuICAvLyBpbml0aWFsIGNoaWxkcmVuIGZyb20gc3Vic2VxdWVudCB1cGRhdGVzLiBJbiBmdWxseSBjbGllbnQtcmVuZGVyZWQgcm9vdHNcbiAgLy8gKGNyZWF0ZVJvb3QgaW5zdGVhZCBvZiBoeWRyYXRlUm9vdCksIGFsbCB0b3AtbGV2ZWwgcmVuZGVycyBhcmUgbW9kZWxlZCBhc1xuICAvLyB1cGRhdGVzLCBidXQgaHlkcmF0aW9uIHJvb3RzIGFyZSBzcGVjaWFsIGJlY2F1c2UgdGhlIGluaXRpYWwgcmVuZGVyIG11c3RcbiAgLy8gbWF0Y2ggd2hhdCB3YXMgcmVuZGVyZWQgb24gdGhlIHNlcnZlci5cbiAgdmFyIGN1cnJlbnQgPSByb290LmN1cnJlbnQ7XG4gIGN1cnJlbnQubGFuZXMgPSBsYW5lO1xuICBtYXJrUm9vdFVwZGF0ZWQocm9vdCwgbGFuZSwgZXZlbnRUaW1lKTtcbiAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIGV2ZW50VGltZSk7XG59IC8vIFRoaXMgaXMgc3BsaXQgaW50byBhIHNlcGFyYXRlIGZ1bmN0aW9uIHNvIHdlIGNhbiBtYXJrIGEgZmliZXIgd2l0aCBwZW5kaW5nXG4vLyB3b3JrIHdpdGhvdXQgdHJlYXRpbmcgaXQgYXMgYSB0eXBpY2FsIHVwZGF0ZSB0aGF0IG9yaWdpbmF0ZXMgZnJvbSBhbiBldmVudDtcbi8vIGUuZy4gcmV0cnlpbmcgYSBTdXNwZW5zZSBib3VuZGFyeSBpc24ndCBhbiB1cGRhdGUsIGJ1dCBpdCBkb2VzIHNjaGVkdWxlIHdvcmtcbi8vIG9uIGEgZmliZXIuXG5cbmZ1bmN0aW9uIG1hcmtVcGRhdGVMYW5lRnJvbUZpYmVyVG9Sb290KHNvdXJjZUZpYmVyLCBsYW5lKSB7XG4gIC8vIFVwZGF0ZSB0aGUgc291cmNlIGZpYmVyJ3MgbGFuZXNcbiAgc291cmNlRmliZXIubGFuZXMgPSBtZXJnZUxhbmVzKHNvdXJjZUZpYmVyLmxhbmVzLCBsYW5lKTtcbiAgdmFyIGFsdGVybmF0ZSA9IHNvdXJjZUZpYmVyLmFsdGVybmF0ZTtcblxuICBpZiAoYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgYWx0ZXJuYXRlLmxhbmVzID0gbWVyZ2VMYW5lcyhhbHRlcm5hdGUubGFuZXMsIGxhbmUpO1xuICB9XG5cbiAge1xuICAgIGlmIChhbHRlcm5hdGUgPT09IG51bGwgJiYgKHNvdXJjZUZpYmVyLmZsYWdzICYgKFBsYWNlbWVudCB8IEh5ZHJhdGluZykpICE9PSBOb0ZsYWdzKSB7XG4gICAgICB3YXJuQWJvdXRVcGRhdGVPbk5vdFlldE1vdW50ZWRGaWJlckluREVWKHNvdXJjZUZpYmVyKTtcbiAgICB9XG4gIH0gLy8gV2FsayB0aGUgcGFyZW50IHBhdGggdG8gdGhlIHJvb3QgYW5kIHVwZGF0ZSB0aGUgY2hpbGQgbGFuZXMuXG5cblxuICB2YXIgbm9kZSA9IHNvdXJjZUZpYmVyO1xuICB2YXIgcGFyZW50ID0gc291cmNlRmliZXIucmV0dXJuO1xuXG4gIHdoaWxlIChwYXJlbnQgIT09IG51bGwpIHtcbiAgICBwYXJlbnQuY2hpbGRMYW5lcyA9IG1lcmdlTGFuZXMocGFyZW50LmNoaWxkTGFuZXMsIGxhbmUpO1xuICAgIGFsdGVybmF0ZSA9IHBhcmVudC5hbHRlcm5hdGU7XG5cbiAgICBpZiAoYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgICBhbHRlcm5hdGUuY2hpbGRMYW5lcyA9IG1lcmdlTGFuZXMoYWx0ZXJuYXRlLmNoaWxkTGFuZXMsIGxhbmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB7XG4gICAgICAgIGlmICgocGFyZW50LmZsYWdzICYgKFBsYWNlbWVudCB8IEh5ZHJhdGluZykpICE9PSBOb0ZsYWdzKSB7XG4gICAgICAgICAgd2FybkFib3V0VXBkYXRlT25Ob3RZZXRNb3VudGVkRmliZXJJbkRFVihzb3VyY2VGaWJlcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBub2RlID0gcGFyZW50O1xuICAgIHBhcmVudCA9IHBhcmVudC5yZXR1cm47XG4gIH1cblxuICBpZiAobm9kZS50YWcgPT09IEhvc3RSb290KSB7XG4gICAgdmFyIHJvb3QgPSBub2RlLnN0YXRlTm9kZTtcbiAgICByZXR1cm4gcm9vdDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0ludGVybGVhdmVkVXBkYXRlKGZpYmVyLCBsYW5lKSB7XG4gIHJldHVybiAoLy8gVE9ETzogT3B0aW1pemUgc2xpZ2h0bHkgYnkgY29tcGFyaW5nIHRvIHJvb3QgdGhhdCBmaWJlciBiZWxvbmdzIHRvLlxuICAgIC8vIFJlcXVpcmVzIHNvbWUgcmVmYWN0b3JpbmcuIE5vdCBhIGJpZyBkZWFsIHRob3VnaCBzaW5jZSBpdCdzIHJhcmUgZm9yXG4gICAgLy8gY29uY3VycmVudCBhcHBzIHRvIGhhdmUgbW9yZSB0aGFuIGEgc2luZ2xlIHJvb3QuXG4gICAgd29ya0luUHJvZ3Jlc3NSb290ICE9PSBudWxsICYmIChmaWJlci5tb2RlICYgQ29uY3VycmVudE1vZGUpICE9PSBOb01vZGUgJiYgKCAvLyBJZiB0aGlzIGlzIGEgcmVuZGVyIHBoYXNlIHVwZGF0ZSAoaS5lLiBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyksXG4gICAgLy8gdGhlbiBkb24ndCB0cmVhdCB0aGlzIGFzIGFuIGludGVybGVhdmVkIHVwZGF0ZS4gVGhpcyBwYXR0ZXJuIGlzXG4gICAgLy8gYWNjb21wYW5pZWQgYnkgYSB3YXJuaW5nIGJ1dCB3ZSBoYXZlbid0IGZ1bGx5IGRlcHJlY2F0ZWQgaXQgeWV0LiBXZSBjYW5cbiAgICAvLyByZW1vdmUgb25jZSB0aGUgZGVmZXJSZW5kZXJQaGFzZVVwZGF0ZVRvTmV4dEJhdGNoIGZsYWcgaXMgZW5hYmxlZC5cbiAgICAgKGV4ZWN1dGlvbkNvbnRleHQgJiBSZW5kZXJDb250ZXh0KSA9PT0gTm9Db250ZXh0KVxuICApO1xufSAvLyBVc2UgdGhpcyBmdW5jdGlvbiB0byBzY2hlZHVsZSBhIHRhc2sgZm9yIGEgcm9vdC4gVGhlcmUncyBvbmx5IG9uZSB0YXNrIHBlclxuLy8gcm9vdDsgaWYgYSB0YXNrIHdhcyBhbHJlYWR5IHNjaGVkdWxlZCwgd2UnbGwgY2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBwcmlvcml0eVxuLy8gb2YgdGhlIGV4aXN0aW5nIHRhc2sgaXMgdGhlIHNhbWUgYXMgdGhlIHByaW9yaXR5IG9mIHRoZSBuZXh0IGxldmVsIHRoYXQgdGhlXG4vLyByb290IGhhcyB3b3JrIG9uLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBldmVyeSB1cGRhdGUsIGFuZCByaWdodCBiZWZvcmVcbi8vIGV4aXRpbmcgYSB0YXNrLlxuXG5mdW5jdGlvbiBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgY3VycmVudFRpbWUpIHtcbiAgdmFyIGV4aXN0aW5nQ2FsbGJhY2tOb2RlID0gcm9vdC5jYWxsYmFja05vZGU7IC8vIENoZWNrIGlmIGFueSBsYW5lcyBhcmUgYmVpbmcgc3RhcnZlZCBieSBvdGhlciB3b3JrLiBJZiBzbywgbWFyayB0aGVtIGFzXG4gIC8vIGV4cGlyZWQgc28gd2Uga25vdyB0byB3b3JrIG9uIHRob3NlIG5leHQuXG5cbiAgbWFya1N0YXJ2ZWRMYW5lc0FzRXhwaXJlZChyb290LCBjdXJyZW50VGltZSk7IC8vIERldGVybWluZSB0aGUgbmV4dCBsYW5lcyB0byB3b3JrIG9uLCBhbmQgdGhlaXIgcHJpb3JpdHkuXG5cbiAgdmFyIG5leHRMYW5lcyA9IGdldE5leHRMYW5lcyhyb290LCByb290ID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QgPyB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyA6IE5vTGFuZXMpO1xuXG4gIGlmIChuZXh0TGFuZXMgPT09IE5vTGFuZXMpIHtcbiAgICAvLyBTcGVjaWFsIGNhc2U6IFRoZXJlJ3Mgbm90aGluZyB0byB3b3JrIG9uLlxuICAgIGlmIChleGlzdGluZ0NhbGxiYWNrTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY2FuY2VsQ2FsbGJhY2skMShleGlzdGluZ0NhbGxiYWNrTm9kZSk7XG4gICAgfVxuXG4gICAgcm9vdC5jYWxsYmFja05vZGUgPSBudWxsO1xuICAgIHJvb3QuY2FsbGJhY2tQcmlvcml0eSA9IE5vTGFuZTtcbiAgICByZXR1cm47XG4gIH0gLy8gV2UgdXNlIHRoZSBoaWdoZXN0IHByaW9yaXR5IGxhbmUgdG8gcmVwcmVzZW50IHRoZSBwcmlvcml0eSBvZiB0aGUgY2FsbGJhY2suXG5cblxuICB2YXIgbmV3Q2FsbGJhY2tQcmlvcml0eSA9IGdldEhpZ2hlc3RQcmlvcml0eUxhbmUobmV4dExhbmVzKTsgLy8gQ2hlY2sgaWYgdGhlcmUncyBhbiBleGlzdGluZyB0YXNrLiBXZSBtYXkgYmUgYWJsZSB0byByZXVzZSBpdC5cblxuICB2YXIgZXhpc3RpbmdDYWxsYmFja1ByaW9yaXR5ID0gcm9vdC5jYWxsYmFja1ByaW9yaXR5O1xuXG4gIGlmIChleGlzdGluZ0NhbGxiYWNrUHJpb3JpdHkgPT09IG5ld0NhbGxiYWNrUHJpb3JpdHkgJiYgLy8gU3BlY2lhbCBjYXNlIHJlbGF0ZWQgdG8gYGFjdGAuIElmIHRoZSBjdXJyZW50bHkgc2NoZWR1bGVkIHRhc2sgaXMgYVxuICAvLyBTY2hlZHVsZXIgdGFzaywgcmF0aGVyIHRoYW4gYW4gYGFjdGAgdGFzaywgY2FuY2VsIGl0IGFuZCByZS1zY2hlZHVsZWRcbiAgLy8gb24gdGhlIGBhY3RgIHF1ZXVlLlxuICAhKCBSZWFjdEN1cnJlbnRBY3RRdWV1ZSQxLmN1cnJlbnQgIT09IG51bGwgJiYgZXhpc3RpbmdDYWxsYmFja05vZGUgIT09IGZha2VBY3RDYWxsYmFja05vZGUpKSB7XG4gICAge1xuICAgICAgLy8gSWYgd2UncmUgZ29pbmcgdG8gcmUtdXNlIGFuIGV4aXN0aW5nIHRhc2ssIGl0IG5lZWRzIHRvIGV4aXN0LlxuICAgICAgLy8gQXNzdW1lIHRoYXQgZGlzY3JldGUgdXBkYXRlIG1pY3JvdGFza3MgYXJlIG5vbi1jYW5jZWxsYWJsZSBhbmQgbnVsbC5cbiAgICAgIC8vIFRPRE86IFRlbXBvcmFyeSB1bnRpbCB3ZSBjb25maXJtIHRoaXMgd2FybmluZyBpcyBub3QgZmlyZWQuXG4gICAgICBpZiAoZXhpc3RpbmdDYWxsYmFja05vZGUgPT0gbnVsbCAmJiBleGlzdGluZ0NhbGxiYWNrUHJpb3JpdHkgIT09IFN5bmNMYW5lKSB7XG4gICAgICAgIGVycm9yKCdFeHBlY3RlZCBzY2hlZHVsZWQgY2FsbGJhY2sgdG8gZXhpc3QuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgICB9XG4gICAgfSAvLyBUaGUgcHJpb3JpdHkgaGFzbid0IGNoYW5nZWQuIFdlIGNhbiByZXVzZSB0aGUgZXhpc3RpbmcgdGFzay4gRXhpdC5cblxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGV4aXN0aW5nQ2FsbGJhY2tOb2RlICE9IG51bGwpIHtcbiAgICAvLyBDYW5jZWwgdGhlIGV4aXN0aW5nIGNhbGxiYWNrLiBXZSdsbCBzY2hlZHVsZSBhIG5ldyBvbmUgYmVsb3cuXG4gICAgY2FuY2VsQ2FsbGJhY2skMShleGlzdGluZ0NhbGxiYWNrTm9kZSk7XG4gIH0gLy8gU2NoZWR1bGUgYSBuZXcgY2FsbGJhY2suXG5cblxuICB2YXIgbmV3Q2FsbGJhY2tOb2RlO1xuXG4gIGlmIChuZXdDYWxsYmFja1ByaW9yaXR5ID09PSBTeW5jTGFuZSkge1xuICAgIC8vIFNwZWNpYWwgY2FzZTogU3luYyBSZWFjdCBjYWxsYmFja3MgYXJlIHNjaGVkdWxlZCBvbiBhIHNwZWNpYWxcbiAgICAvLyBpbnRlcm5hbCBxdWV1ZVxuICAgIGlmIChyb290LnRhZyA9PT0gTGVnYWN5Um9vdCkge1xuICAgICAgaWYgKCBSZWFjdEN1cnJlbnRBY3RRdWV1ZSQxLmlzQmF0Y2hpbmdMZWdhY3kgIT09IG51bGwpIHtcbiAgICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUkMS5kaWRTY2hlZHVsZUxlZ2FjeVVwZGF0ZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHNjaGVkdWxlTGVnYWN5U3luY0NhbGxiYWNrKHBlcmZvcm1TeW5jV29ya09uUm9vdC5iaW5kKG51bGwsIHJvb3QpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2NoZWR1bGVTeW5jQ2FsbGJhY2socGVyZm9ybVN5bmNXb3JrT25Sb290LmJpbmQobnVsbCwgcm9vdCkpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIC8vIEZsdXNoIHRoZSBxdWV1ZSBpbiBhIG1pY3JvdGFzay5cbiAgICAgIGlmICggUmVhY3RDdXJyZW50QWN0UXVldWUkMS5jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICAgIC8vIEluc2lkZSBgYWN0YCwgdXNlIG91ciBpbnRlcm5hbCBgYWN0YCBxdWV1ZSBzbyB0aGF0IHRoZXNlIGdldCBmbHVzaGVkXG4gICAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgc2NvcGUgZXZlbiB3aGVuIHVzaW5nIHRoZSBzeW5jIHZlcnNpb25cbiAgICAgICAgLy8gb2YgYGFjdGAuXG4gICAgICAgIFJlYWN0Q3VycmVudEFjdFF1ZXVlJDEuY3VycmVudC5wdXNoKGZsdXNoU3luY0NhbGxiYWNrcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzY2hlZHVsZU1pY3JvdGFzayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgLy8gSW4gU2FmYXJpLCBhcHBlbmRpbmcgYW4gaWZyYW1lIGZvcmNlcyBtaWNyb3Rhc2tzIHRvIHJ1bi5cbiAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzIyNDU5XG4gICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBydW5uaW5nIGNhbGxiYWNrcyBpbiB0aGUgbWlkZGxlIG9mIHJlbmRlclxuICAgICAgICAgIC8vIG9yIGNvbW1pdCBzbyB3ZSBuZWVkIHRvIGNoZWNrIGFnYWluc3QgdGhhdC5cbiAgICAgICAgICBpZiAoZXhlY3V0aW9uQ29udGV4dCA9PT0gTm9Db250ZXh0KSB7XG4gICAgICAgICAgICAvLyBJdCdzIG9ubHkgc2FmZSB0byBkbyB0aGlzIGNvbmRpdGlvbmFsbHkgYmVjYXVzZSB3ZSBhbHdheXNcbiAgICAgICAgICAgIC8vIGNoZWNrIGZvciBwZW5kaW5nIHdvcmsgYmVmb3JlIHdlIGV4aXQgdGhlIHRhc2suXG4gICAgICAgICAgICBmbHVzaFN5bmNDYWxsYmFja3MoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5ld0NhbGxiYWNrTm9kZSA9IG51bGw7XG4gIH0gZWxzZSB7XG4gICAgdmFyIHNjaGVkdWxlclByaW9yaXR5TGV2ZWw7XG5cbiAgICBzd2l0Y2ggKGxhbmVzVG9FdmVudFByaW9yaXR5KG5leHRMYW5lcykpIHtcbiAgICAgIGNhc2UgRGlzY3JldGVFdmVudFByaW9yaXR5OlxuICAgICAgICBzY2hlZHVsZXJQcmlvcml0eUxldmVsID0gSW1tZWRpYXRlUHJpb3JpdHk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIENvbnRpbnVvdXNFdmVudFByaW9yaXR5OlxuICAgICAgICBzY2hlZHVsZXJQcmlvcml0eUxldmVsID0gVXNlckJsb2NraW5nUHJpb3JpdHk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIERlZmF1bHRFdmVudFByaW9yaXR5OlxuICAgICAgICBzY2hlZHVsZXJQcmlvcml0eUxldmVsID0gTm9ybWFsUHJpb3JpdHk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIElkbGVFdmVudFByaW9yaXR5OlxuICAgICAgICBzY2hlZHVsZXJQcmlvcml0eUxldmVsID0gSWRsZVByaW9yaXR5O1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgc2NoZWR1bGVyUHJpb3JpdHlMZXZlbCA9IE5vcm1hbFByaW9yaXR5O1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBuZXdDYWxsYmFja05vZGUgPSBzY2hlZHVsZUNhbGxiYWNrJDEoc2NoZWR1bGVyUHJpb3JpdHlMZXZlbCwgcGVyZm9ybUNvbmN1cnJlbnRXb3JrT25Sb290LmJpbmQobnVsbCwgcm9vdCkpO1xuICB9XG5cbiAgcm9vdC5jYWxsYmFja1ByaW9yaXR5ID0gbmV3Q2FsbGJhY2tQcmlvcml0eTtcbiAgcm9vdC5jYWxsYmFja05vZGUgPSBuZXdDYWxsYmFja05vZGU7XG59IC8vIFRoaXMgaXMgdGhlIGVudHJ5IHBvaW50IGZvciBldmVyeSBjb25jdXJyZW50IHRhc2ssIGkuZS4gYW55dGhpbmcgdGhhdFxuLy8gZ29lcyB0aHJvdWdoIFNjaGVkdWxlci5cblxuXG5mdW5jdGlvbiBwZXJmb3JtQ29uY3VycmVudFdvcmtPblJvb3Qocm9vdCwgZGlkVGltZW91dCkge1xuICB7XG4gICAgcmVzZXROZXN0ZWRVcGRhdGVGbGFnKCk7XG4gIH0gLy8gU2luY2Ugd2Uga25vdyB3ZSdyZSBpbiBhIFJlYWN0IGV2ZW50LCB3ZSBjYW4gY2xlYXIgdGhlIGN1cnJlbnRcbiAgLy8gZXZlbnQgdGltZS4gVGhlIG5leHQgdXBkYXRlIHdpbGwgY29tcHV0ZSBhIG5ldyBldmVudCB0aW1lLlxuXG5cbiAgY3VycmVudEV2ZW50VGltZSA9IE5vVGltZXN0YW1wO1xuICBjdXJyZW50RXZlbnRUcmFuc2l0aW9uTGFuZSA9IE5vTGFuZXM7XG5cbiAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgIT09IE5vQ29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBhbHJlYWR5IGJlIHdvcmtpbmcuJyk7XG4gIH0gLy8gRmx1c2ggYW55IHBlbmRpbmcgcGFzc2l2ZSBlZmZlY3RzIGJlZm9yZSBkZWNpZGluZyB3aGljaCBsYW5lcyB0byB3b3JrIG9uLFxuICAvLyBpbiBjYXNlIHRoZXkgc2NoZWR1bGUgYWRkaXRpb25hbCB3b3JrLlxuXG5cbiAgdmFyIG9yaWdpbmFsQ2FsbGJhY2tOb2RlID0gcm9vdC5jYWxsYmFja05vZGU7XG4gIHZhciBkaWRGbHVzaFBhc3NpdmVFZmZlY3RzID0gZmx1c2hQYXNzaXZlRWZmZWN0cygpO1xuXG4gIGlmIChkaWRGbHVzaFBhc3NpdmVFZmZlY3RzKSB7XG4gICAgLy8gU29tZXRoaW5nIGluIHRoZSBwYXNzaXZlIGVmZmVjdCBwaGFzZSBtYXkgaGF2ZSBjYW5jZWxlZCB0aGUgY3VycmVudCB0YXNrLlxuICAgIC8vIENoZWNrIGlmIHRoZSB0YXNrIG5vZGUgZm9yIHRoaXMgcm9vdCB3YXMgY2hhbmdlZC5cbiAgICBpZiAocm9vdC5jYWxsYmFja05vZGUgIT09IG9yaWdpbmFsQ2FsbGJhY2tOb2RlKSB7XG4gICAgICAvLyBUaGUgY3VycmVudCB0YXNrIHdhcyBjYW5jZWxlZC4gRXhpdC4gV2UgZG9uJ3QgbmVlZCB0byBjYWxsXG4gICAgICAvLyBgZW5zdXJlUm9vdElzU2NoZWR1bGVkYCBiZWNhdXNlIHRoZSBjaGVjayBhYm92ZSBpbXBsaWVzIGVpdGhlciB0aGF0XG4gICAgICAvLyB0aGVyZSdzIGEgbmV3IHRhc2ssIG9yIHRoYXQgdGhlcmUncyBubyByZW1haW5pbmcgd29yayBvbiB0aGlzIHJvb3QuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH0gLy8gRGV0ZXJtaW5lIHRoZSBuZXh0IGxhbmVzIHRvIHdvcmsgb24sIHVzaW5nIHRoZSBmaWVsZHMgc3RvcmVkXG4gIC8vIG9uIHRoZSByb290LlxuXG5cbiAgdmFyIGxhbmVzID0gZ2V0TmV4dExhbmVzKHJvb3QsIHJvb3QgPT09IHdvcmtJblByb2dyZXNzUm9vdCA/IHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzIDogTm9MYW5lcyk7XG5cbiAgaWYgKGxhbmVzID09PSBOb0xhbmVzKSB7XG4gICAgLy8gRGVmZW5zaXZlIGNvZGluZy4gVGhpcyBpcyBuZXZlciBleHBlY3RlZCB0byBoYXBwZW4uXG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gV2UgZGlzYWJsZSB0aW1lLXNsaWNpbmcgaW4gc29tZSBjYXNlczogaWYgdGhlIHdvcmsgaGFzIGJlZW4gQ1BVLWJvdW5kXG4gIC8vIGZvciB0b28gbG9uZyAoXCJleHBpcmVkXCIgd29yaywgdG8gcHJldmVudCBzdGFydmF0aW9uKSwgb3Igd2UncmUgaW5cbiAgLy8gc3luYy11cGRhdGVzLWJ5LWRlZmF1bHQgbW9kZS5cbiAgLy8gVE9ETzogV2Ugb25seSBjaGVjayBgZGlkVGltZW91dGAgZGVmZW5zaXZlbHksIHRvIGFjY291bnQgZm9yIGEgU2NoZWR1bGVyXG4gIC8vIGJ1ZyB3ZSdyZSBzdGlsbCBpbnZlc3RpZ2F0aW5nLiBPbmNlIHRoZSBidWcgaW4gU2NoZWR1bGVyIGlzIGZpeGVkLFxuICAvLyB3ZSBjYW4gcmVtb3ZlIHRoaXMsIHNpbmNlIHdlIHRyYWNrIGV4cGlyYXRpb24gb3Vyc2VsdmVzLlxuXG5cbiAgdmFyIHNob3VsZFRpbWVTbGljZSA9ICFpbmNsdWRlc0Jsb2NraW5nTGFuZShyb290LCBsYW5lcykgJiYgIWluY2x1ZGVzRXhwaXJlZExhbmUocm9vdCwgbGFuZXMpICYmICggIWRpZFRpbWVvdXQpO1xuICB2YXIgZXhpdFN0YXR1cyA9IHNob3VsZFRpbWVTbGljZSA/IHJlbmRlclJvb3RDb25jdXJyZW50KHJvb3QsIGxhbmVzKSA6IHJlbmRlclJvb3RTeW5jKHJvb3QsIGxhbmVzKTtcblxuICBpZiAoZXhpdFN0YXR1cyAhPT0gUm9vdEluUHJvZ3Jlc3MpIHtcbiAgICBpZiAoZXhpdFN0YXR1cyA9PT0gUm9vdEVycm9yZWQpIHtcbiAgICAgIC8vIElmIHNvbWV0aGluZyB0aHJldyBhbiBlcnJvciwgdHJ5IHJlbmRlcmluZyBvbmUgbW9yZSB0aW1lLiBXZSdsbFxuICAgICAgLy8gcmVuZGVyIHN5bmNocm9ub3VzbHkgdG8gYmxvY2sgY29uY3VycmVudCBkYXRhIG11dGF0aW9ucywgYW5kIHdlJ2xsXG4gICAgICAvLyBpbmNsdWRlcyBhbGwgcGVuZGluZyB1cGRhdGVzIGFyZSBpbmNsdWRlZC4gSWYgaXQgc3RpbGwgZmFpbHMgYWZ0ZXJcbiAgICAgIC8vIHRoZSBzZWNvbmQgYXR0ZW1wdCwgd2UnbGwgZ2l2ZSB1cCBhbmQgY29tbWl0IHRoZSByZXN1bHRpbmcgdHJlZS5cbiAgICAgIHZhciBlcnJvclJldHJ5TGFuZXMgPSBnZXRMYW5lc1RvUmV0cnlTeW5jaHJvbm91c2x5T25FcnJvcihyb290KTtcblxuICAgICAgaWYgKGVycm9yUmV0cnlMYW5lcyAhPT0gTm9MYW5lcykge1xuICAgICAgICBsYW5lcyA9IGVycm9yUmV0cnlMYW5lcztcbiAgICAgICAgZXhpdFN0YXR1cyA9IHJlY292ZXJGcm9tQ29uY3VycmVudEVycm9yKHJvb3QsIGVycm9yUmV0cnlMYW5lcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV4aXRTdGF0dXMgPT09IFJvb3RGYXRhbEVycm9yZWQpIHtcbiAgICAgIHZhciBmYXRhbEVycm9yID0gd29ya0luUHJvZ3Jlc3NSb290RmF0YWxFcnJvcjtcbiAgICAgIHByZXBhcmVGcmVzaFN0YWNrKHJvb3QsIE5vTGFuZXMpO1xuICAgICAgbWFya1Jvb3RTdXNwZW5kZWQkMShyb290LCBsYW5lcyk7XG4gICAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgbm93KCkpO1xuICAgICAgdGhyb3cgZmF0YWxFcnJvcjtcbiAgICB9XG5cbiAgICBpZiAoZXhpdFN0YXR1cyA9PT0gUm9vdERpZE5vdENvbXBsZXRlKSB7XG4gICAgICAvLyBUaGUgcmVuZGVyIHVud291bmQgd2l0aG91dCBjb21wbGV0aW5nIHRoZSB0cmVlLiBUaGlzIGhhcHBlbnMgaW4gc3BlY2lhbFxuICAgICAgLy8gY2FzZXMgd2hlcmUgbmVlZCB0byBleGl0IHRoZSBjdXJyZW50IHJlbmRlciB3aXRob3V0IHByb2R1Y2luZyBhXG4gICAgICAvLyBjb25zaXN0ZW50IHRyZWUgb3IgY29tbWl0dGluZy5cbiAgICAgIC8vXG4gICAgICAvLyBUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBkdXJpbmcgYSBjb25jdXJyZW50IHJlbmRlciwgbm90IGEgZGlzY3JldGUgb3JcbiAgICAgIC8vIHN5bmNocm9ub3VzIHVwZGF0ZS4gV2Ugc2hvdWxkIGhhdmUgYWxyZWFkeSBjaGVja2VkIGZvciB0aGlzIHdoZW4gd2VcbiAgICAgIC8vIHVud291bmQgdGhlIHN0YWNrLlxuICAgICAgbWFya1Jvb3RTdXNwZW5kZWQkMShyb290LCBsYW5lcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSByZW5kZXIgY29tcGxldGVkLlxuICAgICAgLy8gQ2hlY2sgaWYgdGhpcyByZW5kZXIgbWF5IGhhdmUgeWllbGRlZCB0byBhIGNvbmN1cnJlbnQgZXZlbnQsIGFuZCBpZiBzbyxcbiAgICAgIC8vIGNvbmZpcm0gdGhhdCBhbnkgbmV3bHkgcmVuZGVyZWQgc3RvcmVzIGFyZSBjb25zaXN0ZW50LlxuICAgICAgLy8gVE9ETzogSXQncyBwb3NzaWJsZSB0aGF0IGV2ZW4gYSBjb25jdXJyZW50IHJlbmRlciBtYXkgbmV2ZXIgaGF2ZSB5aWVsZGVkXG4gICAgICAvLyB0byB0aGUgbWFpbiB0aHJlYWQsIGlmIGl0IHdhcyBmYXN0IGVub3VnaCwgb3IgaWYgaXQgZXhwaXJlZC4gV2UgY291bGRcbiAgICAgIC8vIHNraXAgdGhlIGNvbnNpc3RlbmN5IGNoZWNrIGluIHRoYXQgY2FzZSwgdG9vLlxuICAgICAgdmFyIHJlbmRlcldhc0NvbmN1cnJlbnQgPSAhaW5jbHVkZXNCbG9ja2luZ0xhbmUocm9vdCwgbGFuZXMpO1xuICAgICAgdmFyIGZpbmlzaGVkV29yayA9IHJvb3QuY3VycmVudC5hbHRlcm5hdGU7XG5cbiAgICAgIGlmIChyZW5kZXJXYXNDb25jdXJyZW50ICYmICFpc1JlbmRlckNvbnNpc3RlbnRXaXRoRXh0ZXJuYWxTdG9yZXMoZmluaXNoZWRXb3JrKSkge1xuICAgICAgICAvLyBBIHN0b3JlIHdhcyBtdXRhdGVkIGluIGFuIGludGVybGVhdmVkIGV2ZW50LiBSZW5kZXIgYWdhaW4sXG4gICAgICAgIC8vIHN5bmNocm9ub3VzbHksIHRvIGJsb2NrIGZ1cnRoZXIgbXV0YXRpb25zLlxuICAgICAgICBleGl0U3RhdHVzID0gcmVuZGVyUm9vdFN5bmMocm9vdCwgbGFuZXMpOyAvLyBXZSBuZWVkIHRvIGNoZWNrIGFnYWluIGlmIHNvbWV0aGluZyB0aHJld1xuXG4gICAgICAgIGlmIChleGl0U3RhdHVzID09PSBSb290RXJyb3JlZCkge1xuICAgICAgICAgIHZhciBfZXJyb3JSZXRyeUxhbmVzID0gZ2V0TGFuZXNUb1JldHJ5U3luY2hyb25vdXNseU9uRXJyb3Iocm9vdCk7XG5cbiAgICAgICAgICBpZiAoX2Vycm9yUmV0cnlMYW5lcyAhPT0gTm9MYW5lcykge1xuICAgICAgICAgICAgbGFuZXMgPSBfZXJyb3JSZXRyeUxhbmVzO1xuICAgICAgICAgICAgZXhpdFN0YXR1cyA9IHJlY292ZXJGcm9tQ29uY3VycmVudEVycm9yKHJvb3QsIF9lcnJvclJldHJ5TGFuZXMpOyAvLyBXZSBhc3N1bWUgdGhlIHRyZWUgaXMgbm93IGNvbnNpc3RlbnQgYmVjYXVzZSB3ZSBkaWRuJ3QgeWllbGQgdG8gYW55XG4gICAgICAgICAgICAvLyBjb25jdXJyZW50IGV2ZW50cy5cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXhpdFN0YXR1cyA9PT0gUm9vdEZhdGFsRXJyb3JlZCkge1xuICAgICAgICAgIHZhciBfZmF0YWxFcnJvciA9IHdvcmtJblByb2dyZXNzUm9vdEZhdGFsRXJyb3I7XG4gICAgICAgICAgcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgTm9MYW5lcyk7XG4gICAgICAgICAgbWFya1Jvb3RTdXNwZW5kZWQkMShyb290LCBsYW5lcyk7XG4gICAgICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIG5vdygpKTtcbiAgICAgICAgICB0aHJvdyBfZmF0YWxFcnJvcjtcbiAgICAgICAgfVxuICAgICAgfSAvLyBXZSBub3cgaGF2ZSBhIGNvbnNpc3RlbnQgdHJlZS4gVGhlIG5leHQgc3RlcCBpcyBlaXRoZXIgdG8gY29tbWl0IGl0LFxuICAgICAgLy8gb3IsIGlmIHNvbWV0aGluZyBzdXNwZW5kZWQsIHdhaXQgdG8gY29tbWl0IGl0IGFmdGVyIGEgdGltZW91dC5cblxuXG4gICAgICByb290LmZpbmlzaGVkV29yayA9IGZpbmlzaGVkV29yaztcbiAgICAgIHJvb3QuZmluaXNoZWRMYW5lcyA9IGxhbmVzO1xuICAgICAgZmluaXNoQ29uY3VycmVudFJlbmRlcihyb290LCBleGl0U3RhdHVzLCBsYW5lcyk7XG4gICAgfVxuICB9XG5cbiAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIG5vdygpKTtcblxuICBpZiAocm9vdC5jYWxsYmFja05vZGUgPT09IG9yaWdpbmFsQ2FsbGJhY2tOb2RlKSB7XG4gICAgLy8gVGhlIHRhc2sgbm9kZSBzY2hlZHVsZWQgZm9yIHRoaXMgcm9vdCBpcyB0aGUgc2FtZSBvbmUgdGhhdCdzXG4gICAgLy8gY3VycmVudGx5IGV4ZWN1dGVkLiBOZWVkIHRvIHJldHVybiBhIGNvbnRpbnVhdGlvbi5cbiAgICByZXR1cm4gcGVyZm9ybUNvbmN1cnJlbnRXb3JrT25Sb290LmJpbmQobnVsbCwgcm9vdCk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gcmVjb3ZlckZyb21Db25jdXJyZW50RXJyb3Iocm9vdCwgZXJyb3JSZXRyeUxhbmVzKSB7XG4gIC8vIElmIGFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBoeWRyYXRpb24sIGRpc2NhcmQgc2VydmVyIHJlc3BvbnNlIGFuZCBmYWxsXG4gIC8vIGJhY2sgdG8gY2xpZW50IHNpZGUgcmVuZGVyLlxuICAvLyBCZWZvcmUgcmVuZGVyaW5nIGFnYWluLCBzYXZlIHRoZSBlcnJvcnMgZnJvbSB0aGUgcHJldmlvdXMgYXR0ZW1wdC5cbiAgdmFyIGVycm9yc0Zyb21GaXJzdEF0dGVtcHQgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RDb25jdXJyZW50RXJyb3JzO1xuXG4gIGlmIChpc1Jvb3REZWh5ZHJhdGVkKHJvb3QpKSB7XG4gICAgLy8gVGhlIHNoZWxsIGZhaWxlZCB0byBoeWRyYXRlLiBTZXQgYSBmbGFnIHRvIGZvcmNlIGEgY2xpZW50IHJlbmRlcmluZ1xuICAgIC8vIGR1cmluZyB0aGUgbmV4dCBhdHRlbXB0LiBUbyBkbyB0aGlzLCB3ZSBjYWxsIHByZXBhcmVGcmVzaFN0YWNrIG5vd1xuICAgIC8vIHRvIGNyZWF0ZSB0aGUgcm9vdCB3b3JrLWluLXByb2dyZXNzIGZpYmVyLiBUaGlzIGlzIGEgYml0IHdlaXJkIGluIHRlcm1zXG4gICAgLy8gb2YgZmFjdG9yaW5nLCBiZWNhdXNlIGl0IHJlbGllcyBvbiByZW5kZXJSb290U3luYyBub3QgY2FsbGluZ1xuICAgIC8vIHByZXBhcmVGcmVzaFN0YWNrIGFnYWluIGluIHRoZSBjYWxsIGJlbG93LCB3aGljaCBoYXBwZW5zIGJlY2F1c2UgdGhlXG4gICAgLy8gcm9vdCBhbmQgbGFuZXMgaGF2ZW4ndCBjaGFuZ2VkLlxuICAgIC8vXG4gICAgLy8gVE9ETzogSSB0aGluayB3aGF0IHdlIHNob3VsZCBkbyBpcyBzZXQgRm9yY2VDbGllbnRSZW5kZXIgaW5zaWRlXG4gICAgLy8gdGhyb3dFeGNlcHRpb24sIGxpa2Ugd2UgZG8gZm9yIG5lc3RlZCBTdXNwZW5zZSBib3VuZGFyaWVzLiBUaGUgcmVhc29uXG4gICAgLy8gaXQncyBoZXJlIGluc3RlYWQgaXMgc28gd2UgY2FuIHN3aXRjaCB0byB0aGUgc3luY2hyb25vdXMgd29yayBsb29wLCB0b28uXG4gICAgLy8gU29tZXRoaW5nIHRvIGNvbnNpZGVyIGZvciBhIGZ1dHVyZSByZWZhY3Rvci5cbiAgICB2YXIgcm9vdFdvcmtJblByb2dyZXNzID0gcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgZXJyb3JSZXRyeUxhbmVzKTtcbiAgICByb290V29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRm9yY2VDbGllbnRSZW5kZXI7XG5cbiAgICB7XG4gICAgICBlcnJvckh5ZHJhdGluZ0NvbnRhaW5lcihyb290LmNvbnRhaW5lckluZm8pO1xuICAgIH1cbiAgfVxuXG4gIHZhciBleGl0U3RhdHVzID0gcmVuZGVyUm9vdFN5bmMocm9vdCwgZXJyb3JSZXRyeUxhbmVzKTtcblxuICBpZiAoZXhpdFN0YXR1cyAhPT0gUm9vdEVycm9yZWQpIHtcbiAgICAvLyBTdWNjZXNzZnVsbHkgZmluaXNoZWQgcmVuZGVyaW5nIG9uIHJldHJ5XG4gICAgLy8gVGhlIGVycm9ycyBmcm9tIHRoZSBmYWlsZWQgZmlyc3QgYXR0ZW1wdCBoYXZlIGJlZW4gcmVjb3ZlcmVkLiBBZGRcbiAgICAvLyB0aGVtIHRvIHRoZSBjb2xsZWN0aW9uIG9mIHJlY292ZXJhYmxlIGVycm9ycy4gV2UnbGwgbG9nIHRoZW0gaW4gdGhlXG4gICAgLy8gY29tbWl0IHBoYXNlLlxuICAgIHZhciBlcnJvcnNGcm9tU2Vjb25kQXR0ZW1wdCA9IHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzO1xuICAgIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzID0gZXJyb3JzRnJvbUZpcnN0QXR0ZW1wdDsgLy8gVGhlIGVycm9ycyBmcm9tIHRoZSBzZWNvbmQgYXR0ZW1wdCBzaG91bGQgYmUgcXVldWVkIGFmdGVyIHRoZSBlcnJvcnNcbiAgICAvLyBmcm9tIHRoZSBmaXJzdCBhdHRlbXB0LCB0byBwcmVzZXJ2ZSB0aGUgY2F1c2FsIHNlcXVlbmNlLlxuXG4gICAgaWYgKGVycm9yc0Zyb21TZWNvbmRBdHRlbXB0ICE9PSBudWxsKSB7XG4gICAgICBxdWV1ZVJlY292ZXJhYmxlRXJyb3JzKGVycm9yc0Zyb21TZWNvbmRBdHRlbXB0KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXhpdFN0YXR1cztcbn1cblxuZnVuY3Rpb24gcXVldWVSZWNvdmVyYWJsZUVycm9ycyhlcnJvcnMpIHtcbiAgaWYgKHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzID09PSBudWxsKSB7XG4gICAgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMgPSBlcnJvcnM7XG4gIH0gZWxzZSB7XG4gICAgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMucHVzaC5hcHBseSh3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycywgZXJyb3JzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5pc2hDb25jdXJyZW50UmVuZGVyKHJvb3QsIGV4aXRTdGF0dXMsIGxhbmVzKSB7XG4gIHN3aXRjaCAoZXhpdFN0YXR1cykge1xuICAgIGNhc2UgUm9vdEluUHJvZ3Jlc3M6XG4gICAgY2FzZSBSb290RmF0YWxFcnJvcmVkOlxuICAgICAge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Jvb3QgZGlkIG5vdCBjb21wbGV0ZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgICAgIH1cbiAgICAvLyBGbG93IGtub3dzIGFib3V0IGludmFyaWFudCwgc28gaXQgY29tcGxhaW5zIGlmIEkgYWRkIGEgYnJlYWtcbiAgICAvLyBzdGF0ZW1lbnQsIGJ1dCBlc2xpbnQgZG9lc24ndCBrbm93IGFib3V0IGludmFyaWFudCwgc28gaXQgY29tcGxhaW5zXG4gICAgLy8gaWYgSSBkby4gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG5cbiAgICBjYXNlIFJvb3RFcnJvcmVkOlxuICAgICAge1xuICAgICAgICAvLyBXZSBzaG91bGQgaGF2ZSBhbHJlYWR5IGF0dGVtcHRlZCB0byByZXRyeSB0aGlzIHRyZWUuIElmIHdlIHJlYWNoZWRcbiAgICAgICAgLy8gdGhpcyBwb2ludCwgaXQgZXJyb3JlZCBhZ2Fpbi4gQ29tbWl0IGl0LlxuICAgICAgICBjb21taXRSb290KHJvb3QsIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIFJvb3RTdXNwZW5kZWQ6XG4gICAgICB7XG4gICAgICAgIG1hcmtSb290U3VzcGVuZGVkJDEocm9vdCwgbGFuZXMpOyAvLyBXZSBoYXZlIGFuIGFjY2VwdGFibGUgbG9hZGluZyBzdGF0ZS4gV2UgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHdlXG4gICAgICAgIC8vIHNob3VsZCBpbW1lZGlhdGVseSBjb21taXQgaXQgb3Igd2FpdCBhIGJpdC5cblxuICAgICAgICBpZiAoaW5jbHVkZXNPbmx5UmV0cmllcyhsYW5lcykgJiYgLy8gZG8gbm90IGRlbGF5IGlmIHdlJ3JlIGluc2lkZSBhbiBhY3QoKSBzY29wZVxuICAgICAgICAhc2hvdWxkRm9yY2VGbHVzaEZhbGxiYWNrc0luREVWKCkpIHtcbiAgICAgICAgICAvLyBUaGlzIHJlbmRlciBvbmx5IGluY2x1ZGVkIHJldHJpZXMsIG5vIHVwZGF0ZXMuIFRocm90dGxlIGNvbW1pdHRpbmdcbiAgICAgICAgICAvLyByZXRyaWVzIHNvIHRoYXQgd2UgZG9uJ3Qgc2hvdyB0b28gbWFueSBsb2FkaW5nIHN0YXRlcyB0b28gcXVpY2tseS5cbiAgICAgICAgICB2YXIgbXNVbnRpbFRpbWVvdXQgPSBnbG9iYWxNb3N0UmVjZW50RmFsbGJhY2tUaW1lICsgRkFMTEJBQ0tfVEhST1RUTEVfTVMgLSBub3coKTsgLy8gRG9uJ3QgYm90aGVyIHdpdGggYSB2ZXJ5IHNob3J0IHN1c3BlbnNlIHRpbWUuXG5cbiAgICAgICAgICBpZiAobXNVbnRpbFRpbWVvdXQgPiAxMCkge1xuICAgICAgICAgICAgdmFyIG5leHRMYW5lcyA9IGdldE5leHRMYW5lcyhyb290LCBOb0xhbmVzKTtcblxuICAgICAgICAgICAgaWYgKG5leHRMYW5lcyAhPT0gTm9MYW5lcykge1xuICAgICAgICAgICAgICAvLyBUaGVyZSdzIGFkZGl0aW9uYWwgd29yayBvbiB0aGlzIHJvb3QuXG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgc3VzcGVuZGVkTGFuZXMgPSByb290LnN1c3BlbmRlZExhbmVzO1xuXG4gICAgICAgICAgICBpZiAoIWlzU3Vic2V0T2ZMYW5lcyhzdXNwZW5kZWRMYW5lcywgbGFuZXMpKSB7XG4gICAgICAgICAgICAgIC8vIFdlIHNob3VsZCBwcmVmZXIgdG8gcmVuZGVyIHRoZSBmYWxsYmFjayBvZiBhdCB0aGUgbGFzdFxuICAgICAgICAgICAgICAvLyBzdXNwZW5kZWQgbGV2ZWwuIFBpbmcgdGhlIGxhc3Qgc3VzcGVuZGVkIGxldmVsIHRvIHRyeVxuICAgICAgICAgICAgICAvLyByZW5kZXJpbmcgaXQgYWdhaW4uXG4gICAgICAgICAgICAgIC8vIEZJWE1FOiBXaGF0IGlmIHRoZSBzdXNwZW5kZWQgbGFuZXMgYXJlIElkbGU/IFNob3VsZCBub3QgcmVzdGFydC5cbiAgICAgICAgICAgICAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgICAgICAgICAgICAgbWFya1Jvb3RQaW5nZWQocm9vdCwgc3VzcGVuZGVkTGFuZXMpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gLy8gVGhlIHJlbmRlciBpcyBzdXNwZW5kZWQsIGl0IGhhc24ndCB0aW1lZCBvdXQsIGFuZCB0aGVyZSdzIG5vXG4gICAgICAgICAgICAvLyBsb3dlciBwcmlvcml0eSB3b3JrIHRvIGRvLiBJbnN0ZWFkIG9mIGNvbW1pdHRpbmcgdGhlIGZhbGxiYWNrXG4gICAgICAgICAgICAvLyBpbW1lZGlhdGVseSwgd2FpdCBmb3IgbW9yZSBkYXRhIHRvIGFycml2ZS5cblxuXG4gICAgICAgICAgICByb290LnRpbWVvdXRIYW5kbGUgPSBzY2hlZHVsZVRpbWVvdXQoY29tbWl0Um9vdC5iaW5kKG51bGwsIHJvb3QsIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzKSwgbXNVbnRpbFRpbWVvdXQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9IC8vIFRoZSB3b3JrIGV4cGlyZWQuIENvbW1pdCBpbW1lZGlhdGVseS5cblxuXG4gICAgICAgIGNvbW1pdFJvb3Qocm9vdCwgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgUm9vdFN1c3BlbmRlZFdpdGhEZWxheTpcbiAgICAgIHtcbiAgICAgICAgbWFya1Jvb3RTdXNwZW5kZWQkMShyb290LCBsYW5lcyk7XG5cbiAgICAgICAgaWYgKGluY2x1ZGVzT25seVRyYW5zaXRpb25zKGxhbmVzKSkge1xuICAgICAgICAgIC8vIFRoaXMgaXMgYSB0cmFuc2l0aW9uLCBzbyB3ZSBzaG91bGQgZXhpdCB3aXRob3V0IGNvbW1pdHRpbmcgYVxuICAgICAgICAgIC8vIHBsYWNlaG9sZGVyIGFuZCB3aXRob3V0IHNjaGVkdWxpbmcgYSB0aW1lb3V0LiBEZWxheSBpbmRlZmluaXRlbHlcbiAgICAgICAgICAvLyB1bnRpbCB3ZSByZWNlaXZlIG1vcmUgZGF0YS5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghc2hvdWxkRm9yY2VGbHVzaEZhbGxiYWNrc0luREVWKCkpIHtcbiAgICAgICAgICAvLyBUaGlzIGlzIG5vdCBhIHRyYW5zaXRpb24sIGJ1dCB3ZSBkaWQgdHJpZ2dlciBhbiBhdm9pZGVkIHN0YXRlLlxuICAgICAgICAgIC8vIFNjaGVkdWxlIGEgcGxhY2Vob2xkZXIgdG8gZGlzcGxheSBhZnRlciBhIHNob3J0IGRlbGF5LCB1c2luZyB0aGUgSnVzdFxuICAgICAgICAgIC8vIE5vdGljZWFibGUgRGlmZmVyZW5jZS5cbiAgICAgICAgICAvLyBUT0RPOiBJcyB0aGUgSk5EIG9wdGltaXphdGlvbiB3b3J0aCB0aGUgYWRkZWQgY29tcGxleGl0eT8gSWYgdGhpcyBpc1xuICAgICAgICAgIC8vIHRoZSBvbmx5IHJlYXNvbiB3ZSB0cmFjayB0aGUgZXZlbnQgdGltZSwgdGhlbiBwcm9iYWJseSBub3QuXG4gICAgICAgICAgLy8gQ29uc2lkZXIgcmVtb3ZpbmcuXG4gICAgICAgICAgdmFyIG1vc3RSZWNlbnRFdmVudFRpbWUgPSBnZXRNb3N0UmVjZW50RXZlbnRUaW1lKHJvb3QsIGxhbmVzKTtcbiAgICAgICAgICB2YXIgZXZlbnRUaW1lTXMgPSBtb3N0UmVjZW50RXZlbnRUaW1lO1xuICAgICAgICAgIHZhciB0aW1lRWxhcHNlZE1zID0gbm93KCkgLSBldmVudFRpbWVNcztcblxuICAgICAgICAgIHZhciBfbXNVbnRpbFRpbWVvdXQgPSBqbmQodGltZUVsYXBzZWRNcykgLSB0aW1lRWxhcHNlZE1zOyAvLyBEb24ndCBib3RoZXIgd2l0aCBhIHZlcnkgc2hvcnQgc3VzcGVuc2UgdGltZS5cblxuXG4gICAgICAgICAgaWYgKF9tc1VudGlsVGltZW91dCA+IDEwKSB7XG4gICAgICAgICAgICAvLyBJbnN0ZWFkIG9mIGNvbW1pdHRpbmcgdGhlIGZhbGxiYWNrIGltbWVkaWF0ZWx5LCB3YWl0IGZvciBtb3JlIGRhdGFcbiAgICAgICAgICAgIC8vIHRvIGFycml2ZS5cbiAgICAgICAgICAgIHJvb3QudGltZW91dEhhbmRsZSA9IHNjaGVkdWxlVGltZW91dChjb21taXRSb290LmJpbmQobnVsbCwgcm9vdCwgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMpLCBfbXNVbnRpbFRpbWVvdXQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9IC8vIENvbW1pdCB0aGUgcGxhY2Vob2xkZXIuXG5cblxuICAgICAgICBjb21taXRSb290KHJvb3QsIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIFJvb3RDb21wbGV0ZWQ6XG4gICAgICB7XG4gICAgICAgIC8vIFRoZSB3b3JrIGNvbXBsZXRlZC4gUmVhZHkgdG8gY29tbWl0LlxuICAgICAgICBjb21taXRSb290KHJvb3QsIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBkZWZhdWx0OlxuICAgICAge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gcm9vdCBleGl0IHN0YXR1cy4nKTtcbiAgICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc1JlbmRlckNvbnNpc3RlbnRXaXRoRXh0ZXJuYWxTdG9yZXMoZmluaXNoZWRXb3JrKSB7XG4gIC8vIFNlYXJjaCB0aGUgcmVuZGVyZWQgdHJlZSBmb3IgZXh0ZXJuYWwgc3RvcmUgcmVhZHMsIGFuZCBjaGVjayB3aGV0aGVyIHRoZVxuICAvLyBzdG9yZXMgd2VyZSBtdXRhdGVkIGluIGEgY29uY3VycmVudCBldmVudC4gSW50ZW50aW9uYWxseSB1c2luZyBhbiBpdGVyYXRpdmVcbiAgLy8gbG9vcCBpbnN0ZWFkIG9mIHJlY3Vyc2lvbiBzbyB3ZSBjYW4gZXhpdCBlYXJseS5cbiAgdmFyIG5vZGUgPSBmaW5pc2hlZFdvcms7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBpZiAobm9kZS5mbGFncyAmIFN0b3JlQ29uc2lzdGVuY3kpIHtcbiAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IG5vZGUudXBkYXRlUXVldWU7XG5cbiAgICAgIGlmICh1cGRhdGVRdWV1ZSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgY2hlY2tzID0gdXBkYXRlUXVldWUuc3RvcmVzO1xuXG4gICAgICAgIGlmIChjaGVja3MgIT09IG51bGwpIHtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoZWNrcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGNoZWNrID0gY2hlY2tzW2ldO1xuICAgICAgICAgICAgdmFyIGdldFNuYXBzaG90ID0gY2hlY2suZ2V0U25hcHNob3Q7XG4gICAgICAgICAgICB2YXIgcmVuZGVyZWRWYWx1ZSA9IGNoZWNrLnZhbHVlO1xuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAoIW9iamVjdElzKGdldFNuYXBzaG90KCksIHJlbmRlcmVkVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgLy8gRm91bmQgYW4gaW5jb25zaXN0ZW50IHN0b3JlLlxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gSWYgYGdldFNuYXBzaG90YCB0aHJvd3MsIHJldHVybiBgZmFsc2VgLiBUaGlzIHdpbGwgc2NoZWR1bGVcbiAgICAgICAgICAgICAgLy8gYSByZS1yZW5kZXIsIGFuZCB0aGUgZXJyb3Igd2lsbCBiZSByZXRocm93biBkdXJpbmcgcmVuZGVyLlxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGNoaWxkID0gbm9kZS5jaGlsZDtcblxuICAgIGlmIChub2RlLnN1YnRyZWVGbGFncyAmIFN0b3JlQ29uc2lzdGVuY3kgJiYgY2hpbGQgIT09IG51bGwpIHtcbiAgICAgIGNoaWxkLnJldHVybiA9IG5vZGU7XG4gICAgICBub2RlID0gY2hpbGQ7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAobm9kZSA9PT0gZmluaXNoZWRXb3JrKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB3aGlsZSAobm9kZS5zaWJsaW5nID09PSBudWxsKSB7XG4gICAgICBpZiAobm9kZS5yZXR1cm4gPT09IG51bGwgfHwgbm9kZS5yZXR1cm4gPT09IGZpbmlzaGVkV29yaykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH1cblxuICAgIG5vZGUuc2libGluZy5yZXR1cm4gPSBub2RlLnJldHVybjtcbiAgICBub2RlID0gbm9kZS5zaWJsaW5nO1xuICB9IC8vIEZsb3cgZG9lc24ndCBrbm93IHRoaXMgaXMgdW5yZWFjaGFibGUsIGJ1dCBlc2xpbnQgZG9lc1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5yZWFjaGFibGVcblxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBtYXJrUm9vdFN1c3BlbmRlZCQxKHJvb3QsIHN1c3BlbmRlZExhbmVzKSB7XG4gIC8vIFdoZW4gc3VzcGVuZGluZywgd2Ugc2hvdWxkIGFsd2F5cyBleGNsdWRlIGxhbmVzIHRoYXQgd2VyZSBwaW5nZWQgb3IgKG1vcmVcbiAgLy8gcmFyZWx5LCBzaW5jZSB3ZSB0cnkgdG8gYXZvaWQgaXQpIHVwZGF0ZWQgZHVyaW5nIHRoZSByZW5kZXIgcGhhc2UuXG4gIC8vIFRPRE86IExvbCBtYXliZSB0aGVyZSdzIGEgYmV0dGVyIHdheSB0byBmYWN0b3IgdGhpcyBiZXNpZGVzIHRoaXNcbiAgLy8gb2Jub3hpb3VzbHkgbmFtZWQgZnVuY3Rpb24gOilcbiAgc3VzcGVuZGVkTGFuZXMgPSByZW1vdmVMYW5lcyhzdXNwZW5kZWRMYW5lcywgd29ya0luUHJvZ3Jlc3NSb290UGluZ2VkTGFuZXMpO1xuICBzdXNwZW5kZWRMYW5lcyA9IHJlbW92ZUxhbmVzKHN1c3BlbmRlZExhbmVzLCB3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcyk7XG4gIG1hcmtSb290U3VzcGVuZGVkKHJvb3QsIHN1c3BlbmRlZExhbmVzKTtcbn0gLy8gVGhpcyBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIHN5bmNocm9ub3VzIHRhc2tzIHRoYXQgZG9uJ3QgZ29cbi8vIHRocm91Z2ggU2NoZWR1bGVyXG5cblxuZnVuY3Rpb24gcGVyZm9ybVN5bmNXb3JrT25Sb290KHJvb3QpIHtcbiAge1xuICAgIHN5bmNOZXN0ZWRVcGRhdGVGbGFnKCk7XG4gIH1cblxuICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGFscmVhZHkgYmUgd29ya2luZy4nKTtcbiAgfVxuXG4gIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbiAgdmFyIGxhbmVzID0gZ2V0TmV4dExhbmVzKHJvb3QsIE5vTGFuZXMpO1xuXG4gIGlmICghaW5jbHVkZXNTb21lTGFuZShsYW5lcywgU3luY0xhbmUpKSB7XG4gICAgLy8gVGhlcmUncyBubyByZW1haW5pbmcgc3luYyB3b3JrIGxlZnQuXG4gICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIG5vdygpKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBleGl0U3RhdHVzID0gcmVuZGVyUm9vdFN5bmMocm9vdCwgbGFuZXMpO1xuXG4gIGlmIChyb290LnRhZyAhPT0gTGVnYWN5Um9vdCAmJiBleGl0U3RhdHVzID09PSBSb290RXJyb3JlZCkge1xuICAgIC8vIElmIHNvbWV0aGluZyB0aHJldyBhbiBlcnJvciwgdHJ5IHJlbmRlcmluZyBvbmUgbW9yZSB0aW1lLiBXZSdsbCByZW5kZXJcbiAgICAvLyBzeW5jaHJvbm91c2x5IHRvIGJsb2NrIGNvbmN1cnJlbnQgZGF0YSBtdXRhdGlvbnMsIGFuZCB3ZSdsbCBpbmNsdWRlc1xuICAgIC8vIGFsbCBwZW5kaW5nIHVwZGF0ZXMgYXJlIGluY2x1ZGVkLiBJZiBpdCBzdGlsbCBmYWlscyBhZnRlciB0aGUgc2Vjb25kXG4gICAgLy8gYXR0ZW1wdCwgd2UnbGwgZ2l2ZSB1cCBhbmQgY29tbWl0IHRoZSByZXN1bHRpbmcgdHJlZS5cbiAgICB2YXIgZXJyb3JSZXRyeUxhbmVzID0gZ2V0TGFuZXNUb1JldHJ5U3luY2hyb25vdXNseU9uRXJyb3Iocm9vdCk7XG5cbiAgICBpZiAoZXJyb3JSZXRyeUxhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgICBsYW5lcyA9IGVycm9yUmV0cnlMYW5lcztcbiAgICAgIGV4aXRTdGF0dXMgPSByZWNvdmVyRnJvbUNvbmN1cnJlbnRFcnJvcihyb290LCBlcnJvclJldHJ5TGFuZXMpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChleGl0U3RhdHVzID09PSBSb290RmF0YWxFcnJvcmVkKSB7XG4gICAgdmFyIGZhdGFsRXJyb3IgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RGYXRhbEVycm9yO1xuICAgIHByZXBhcmVGcmVzaFN0YWNrKHJvb3QsIE5vTGFuZXMpO1xuICAgIG1hcmtSb290U3VzcGVuZGVkJDEocm9vdCwgbGFuZXMpO1xuICAgIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290LCBub3coKSk7XG4gICAgdGhyb3cgZmF0YWxFcnJvcjtcbiAgfVxuXG4gIGlmIChleGl0U3RhdHVzID09PSBSb290RGlkTm90Q29tcGxldGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Jvb3QgZGlkIG5vdCBjb21wbGV0ZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgfSAvLyBXZSBub3cgaGF2ZSBhIGNvbnNpc3RlbnQgdHJlZS4gQmVjYXVzZSB0aGlzIGlzIGEgc3luYyByZW5kZXIsIHdlXG4gIC8vIHdpbGwgY29tbWl0IGl0IGV2ZW4gaWYgc29tZXRoaW5nIHN1c3BlbmRlZC5cblxuXG4gIHZhciBmaW5pc2hlZFdvcmsgPSByb290LmN1cnJlbnQuYWx0ZXJuYXRlO1xuICByb290LmZpbmlzaGVkV29yayA9IGZpbmlzaGVkV29yaztcbiAgcm9vdC5maW5pc2hlZExhbmVzID0gbGFuZXM7XG4gIGNvbW1pdFJvb3Qocm9vdCwgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMpOyAvLyBCZWZvcmUgZXhpdGluZywgbWFrZSBzdXJlIHRoZXJlJ3MgYSBjYWxsYmFjayBzY2hlZHVsZWQgZm9yIHRoZSBuZXh0XG4gIC8vIHBlbmRpbmcgbGV2ZWwuXG5cbiAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIG5vdygpKTtcbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGZsdXNoUm9vdChyb290LCBsYW5lcykge1xuICBpZiAobGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICBtYXJrUm9vdEVudGFuZ2xlZChyb290LCBtZXJnZUxhbmVzKGxhbmVzLCBTeW5jTGFuZSkpO1xuICAgIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290LCBub3coKSk7XG5cbiAgICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSA9PT0gTm9Db250ZXh0KSB7XG4gICAgICByZXNldFJlbmRlclRpbWVyKCk7XG4gICAgICBmbHVzaFN5bmNDYWxsYmFja3MoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGJhdGNoZWRVcGRhdGVzJDEoZm4sIGEpIHtcbiAgdmFyIHByZXZFeGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDtcbiAgZXhlY3V0aW9uQ29udGV4dCB8PSBCYXRjaGVkQ29udGV4dDtcblxuICB0cnkge1xuICAgIHJldHVybiBmbihhKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBleGVjdXRpb25Db250ZXh0ID0gcHJldkV4ZWN1dGlvbkNvbnRleHQ7IC8vIElmIHRoZXJlIHdlcmUgbGVnYWN5IHN5bmMgdXBkYXRlcywgZmx1c2ggdGhlbSBhdCB0aGUgZW5kIG9mIHRoZSBvdXRlclxuICAgIC8vIG1vc3QgYmF0Y2hlZFVwZGF0ZXMtbGlrZSBtZXRob2QuXG5cbiAgICBpZiAoZXhlY3V0aW9uQ29udGV4dCA9PT0gTm9Db250ZXh0ICYmIC8vIFRyZWF0IGBhY3RgIGFzIGlmIGl0J3MgaW5zaWRlIGBiYXRjaGVkVXBkYXRlc2AsIGV2ZW4gaW4gbGVnYWN5IG1vZGUuXG4gICAgISggUmVhY3RDdXJyZW50QWN0UXVldWUkMS5pc0JhdGNoaW5nTGVnYWN5KSkge1xuICAgICAgcmVzZXRSZW5kZXJUaW1lcigpO1xuICAgICAgZmx1c2hTeW5jQ2FsbGJhY2tzT25seUluTGVnYWN5TW9kZSgpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZGlzY3JldGVVcGRhdGVzKGZuLCBhLCBiLCBjLCBkKSB7XG4gIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gZ2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KCk7XG4gIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDMudHJhbnNpdGlvbjtcblxuICB0cnkge1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDMudHJhbnNpdGlvbiA9IG51bGw7XG4gICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KERpc2NyZXRlRXZlbnRQcmlvcml0eSk7XG4gICAgcmV0dXJuIGZuKGEsIGIsIGMsIGQpO1xuICB9IGZpbmFsbHkge1xuICAgIHNldEN1cnJlbnRVcGRhdGVQcmlvcml0eShwcmV2aW91c1ByaW9yaXR5KTtcbiAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQzLnRyYW5zaXRpb24gPSBwcmV2VHJhbnNpdGlvbjtcblxuICAgIGlmIChleGVjdXRpb25Db250ZXh0ID09PSBOb0NvbnRleHQpIHtcbiAgICAgIHJlc2V0UmVuZGVyVGltZXIoKTtcbiAgICB9XG4gIH1cbn0gLy8gT3ZlcmxvYWQgdGhlIGRlZmluaXRpb24gdG8gdGhlIHR3byB2YWxpZCBzaWduYXR1cmVzLlxuLy8gV2FybmluZywgdGhpcyBvcHRzLW91dCBvZiBjaGVja2luZyB0aGUgZnVuY3Rpb24gYm9keS5cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlZGVjbGFyZVxuZnVuY3Rpb24gZmx1c2hTeW5jKGZuKSB7XG4gIC8vIEluIGxlZ2FjeSBtb2RlLCB3ZSBmbHVzaCBwZW5kaW5nIHBhc3NpdmUgZWZmZWN0cyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZVxuICAvLyBuZXh0IGV2ZW50LCBub3QgYXQgdGhlIGVuZCBvZiB0aGUgcHJldmlvdXMgb25lLlxuICBpZiAocm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMgIT09IG51bGwgJiYgcm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMudGFnID09PSBMZWdhY3lSb290ICYmIChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgPT09IE5vQ29udGV4dCkge1xuICAgIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbiAgfVxuXG4gIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gIGV4ZWN1dGlvbkNvbnRleHQgfD0gQmF0Y2hlZENvbnRleHQ7XG4gIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDMudHJhbnNpdGlvbjtcbiAgdmFyIHByZXZpb3VzUHJpb3JpdHkgPSBnZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkoKTtcblxuICB0cnkge1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDMudHJhbnNpdGlvbiA9IG51bGw7XG4gICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KERpc2NyZXRlRXZlbnRQcmlvcml0eSk7XG5cbiAgICBpZiAoZm4pIHtcbiAgICAgIHJldHVybiBmbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBzZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkocHJldmlvdXNQcmlvcml0eSk7XG4gICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMy50cmFuc2l0aW9uID0gcHJldlRyYW5zaXRpb247XG4gICAgZXhlY3V0aW9uQ29udGV4dCA9IHByZXZFeGVjdXRpb25Db250ZXh0OyAvLyBGbHVzaCB0aGUgaW1tZWRpYXRlIGNhbGxiYWNrcyB0aGF0IHdlcmUgc2NoZWR1bGVkIGR1cmluZyB0aGlzIGJhdGNoLlxuICAgIC8vIE5vdGUgdGhhdCB0aGlzIHdpbGwgaGFwcGVuIGV2ZW4gaWYgYmF0Y2hlZFVwZGF0ZXMgaXMgaGlnaGVyIHVwXG4gICAgLy8gdGhlIHN0YWNrLlxuXG4gICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgPT09IE5vQ29udGV4dCkge1xuICAgICAgZmx1c2hTeW5jQ2FsbGJhY2tzKCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBpc0FscmVhZHlSZW5kZXJpbmcoKSB7XG4gIC8vIFVzZWQgYnkgdGhlIHJlbmRlcmVyIHRvIHByaW50IGEgd2FybmluZyBpZiBjZXJ0YWluIEFQSXMgYXJlIGNhbGxlZCBmcm9tXG4gIC8vIHRoZSB3cm9uZyBjb250ZXh0LlxuICByZXR1cm4gIChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgIT09IE5vQ29udGV4dDtcbn1cbmZ1bmN0aW9uIHB1c2hSZW5kZXJMYW5lcyhmaWJlciwgbGFuZXMpIHtcbiAgcHVzaChzdWJ0cmVlUmVuZGVyTGFuZXNDdXJzb3IsIHN1YnRyZWVSZW5kZXJMYW5lcywgZmliZXIpO1xuICBzdWJ0cmVlUmVuZGVyTGFuZXMgPSBtZXJnZUxhbmVzKHN1YnRyZWVSZW5kZXJMYW5lcywgbGFuZXMpO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RJbmNsdWRlZExhbmVzID0gbWVyZ2VMYW5lcyh3b3JrSW5Qcm9ncmVzc1Jvb3RJbmNsdWRlZExhbmVzLCBsYW5lcyk7XG59XG5mdW5jdGlvbiBwb3BSZW5kZXJMYW5lcyhmaWJlcikge1xuICBzdWJ0cmVlUmVuZGVyTGFuZXMgPSBzdWJ0cmVlUmVuZGVyTGFuZXNDdXJzb3IuY3VycmVudDtcbiAgcG9wKHN1YnRyZWVSZW5kZXJMYW5lc0N1cnNvciwgZmliZXIpO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlRnJlc2hTdGFjayhyb290LCBsYW5lcykge1xuICByb290LmZpbmlzaGVkV29yayA9IG51bGw7XG4gIHJvb3QuZmluaXNoZWRMYW5lcyA9IE5vTGFuZXM7XG4gIHZhciB0aW1lb3V0SGFuZGxlID0gcm9vdC50aW1lb3V0SGFuZGxlO1xuXG4gIGlmICh0aW1lb3V0SGFuZGxlICE9PSBub1RpbWVvdXQpIHtcbiAgICAvLyBUaGUgcm9vdCBwcmV2aW91cyBzdXNwZW5kZWQgYW5kIHNjaGVkdWxlZCBhIHRpbWVvdXQgdG8gY29tbWl0IGEgZmFsbGJhY2tcbiAgICAvLyBzdGF0ZS4gTm93IHRoYXQgd2UgaGF2ZSBhZGRpdGlvbmFsIHdvcmssIGNhbmNlbCB0aGUgdGltZW91dC5cbiAgICByb290LnRpbWVvdXRIYW5kbGUgPSBub1RpbWVvdXQ7IC8vICRGbG93Rml4TWUgQ29tcGxhaW5zIG5vVGltZW91dCBpcyBub3QgYSBUaW1lb3V0SUQsIGRlc3BpdGUgdGhlIGNoZWNrIGFib3ZlXG5cbiAgICBjYW5jZWxUaW1lb3V0KHRpbWVvdXRIYW5kbGUpO1xuICB9XG5cbiAgaWYgKHdvcmtJblByb2dyZXNzICE9PSBudWxsKSB7XG4gICAgdmFyIGludGVycnVwdGVkV29yayA9IHdvcmtJblByb2dyZXNzLnJldHVybjtcblxuICAgIHdoaWxlIChpbnRlcnJ1cHRlZFdvcmsgIT09IG51bGwpIHtcbiAgICAgIHZhciBjdXJyZW50ID0gaW50ZXJydXB0ZWRXb3JrLmFsdGVybmF0ZTtcbiAgICAgIHVud2luZEludGVycnVwdGVkV29yayhjdXJyZW50LCBpbnRlcnJ1cHRlZFdvcmspO1xuICAgICAgaW50ZXJydXB0ZWRXb3JrID0gaW50ZXJydXB0ZWRXb3JrLnJldHVybjtcbiAgICB9XG4gIH1cblxuICB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSByb290O1xuICB2YXIgcm9vdFdvcmtJblByb2dyZXNzID0gY3JlYXRlV29ya0luUHJvZ3Jlc3Mocm9vdC5jdXJyZW50LCBudWxsKTtcbiAgd29ya0luUHJvZ3Jlc3MgPSByb290V29ya0luUHJvZ3Jlc3M7XG4gIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gc3VidHJlZVJlbmRlckxhbmVzID0gd29ya0luUHJvZ3Jlc3NSb290SW5jbHVkZWRMYW5lcyA9IGxhbmVzO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEluUHJvZ3Jlc3M7XG4gIHdvcmtJblByb2dyZXNzUm9vdEZhdGFsRXJyb3IgPSBudWxsO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RTa2lwcGVkTGFuZXMgPSBOb0xhbmVzO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcyA9IE5vTGFuZXM7XG4gIHdvcmtJblByb2dyZXNzUm9vdFBpbmdlZExhbmVzID0gTm9MYW5lcztcbiAgd29ya0luUHJvZ3Jlc3NSb290Q29uY3VycmVudEVycm9ycyA9IG51bGw7XG4gIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzID0gbnVsbDtcbiAgZW5xdWV1ZUludGVybGVhdmVkVXBkYXRlcygpO1xuXG4gIHtcbiAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5kaXNjYXJkUGVuZGluZ1dhcm5pbmdzKCk7XG4gIH1cblxuICByZXR1cm4gcm9vdFdvcmtJblByb2dyZXNzO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVFcnJvcihyb290LCB0aHJvd25WYWx1ZSkge1xuICBkbyB7XG4gICAgdmFyIGVycm9yZWRXb3JrID0gd29ya0luUHJvZ3Jlc3M7XG5cbiAgICB0cnkge1xuICAgICAgLy8gUmVzZXQgbW9kdWxlLWxldmVsIHN0YXRlIHRoYXQgd2FzIHNldCBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZS5cbiAgICAgIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpO1xuICAgICAgcmVzZXRIb29rc0FmdGVyVGhyb3coKTtcbiAgICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7IC8vIFRPRE86IEkgZm91bmQgYW5kIGFkZGVkIHRoaXMgbWlzc2luZyBsaW5lIHdoaWxlIGludmVzdGlnYXRpbmcgYVxuICAgICAgLy8gc2VwYXJhdGUgaXNzdWUuIFdyaXRlIGEgcmVncmVzc2lvbiB0ZXN0IHVzaW5nIHN0cmluZyByZWZzLlxuXG4gICAgICBSZWFjdEN1cnJlbnRPd25lciQyLmN1cnJlbnQgPSBudWxsO1xuXG4gICAgICBpZiAoZXJyb3JlZFdvcmsgPT09IG51bGwgfHwgZXJyb3JlZFdvcmsucmV0dXJuID09PSBudWxsKSB7XG4gICAgICAgIC8vIEV4cGVjdGVkIHRvIGJlIHdvcmtpbmcgb24gYSBub24tcm9vdCBmaWJlci4gVGhpcyBpcyBhIGZhdGFsIGVycm9yXG4gICAgICAgIC8vIGJlY2F1c2UgdGhlcmUncyBubyBhbmNlc3RvciB0aGF0IGNhbiBoYW5kbGUgaXQ7IHRoZSByb290IGlzXG4gICAgICAgIC8vIHN1cHBvc2VkIHRvIGNhcHR1cmUgYWxsIGVycm9ycyB0aGF0IHdlcmVuJ3QgY2F1Z2h0IGJ5IGFuIGVycm9yXG4gICAgICAgIC8vIGJvdW5kYXJ5LlxuICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEZhdGFsRXJyb3JlZDtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RmF0YWxFcnJvciA9IHRocm93blZhbHVlOyAvLyBTZXQgYHdvcmtJblByb2dyZXNzYCB0byBudWxsLiBUaGlzIHJlcHJlc2VudHMgYWR2YW5jaW5nIHRvIHRoZSBuZXh0XG4gICAgICAgIC8vIHNpYmxpbmcsIG9yIHRoZSBwYXJlbnQgaWYgdGhlcmUgYXJlIG5vIHNpYmxpbmdzLiBCdXQgc2luY2UgdGhlIHJvb3RcbiAgICAgICAgLy8gaGFzIG5vIHNpYmxpbmdzIG5vciBhIHBhcmVudCwgd2Ugc2V0IGl0IHRvIG51bGwuIFVzdWFsbHkgdGhpcyBpc1xuICAgICAgICAvLyBoYW5kbGVkIGJ5IGBjb21wbGV0ZVVuaXRPZldvcmtgIG9yIGB1bndpbmRXb3JrYCwgYnV0IHNpbmNlIHdlJ3JlXG4gICAgICAgIC8vIGludGVudGlvbmFsbHkgbm90IGNhbGxpbmcgdGhvc2UsIHdlIG5lZWQgc2V0IGl0IGhlcmUuXG4gICAgICAgIC8vIFRPRE86IENvbnNpZGVyIGNhbGxpbmcgYHVud2luZFdvcmtgIHRvIHBvcCB0aGUgY29udGV4dHMuXG5cbiAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChlbmFibGVQcm9maWxlclRpbWVyICYmIGVycm9yZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkge1xuICAgICAgICAvLyBSZWNvcmQgdGhlIHRpbWUgc3BlbnQgcmVuZGVyaW5nIGJlZm9yZSBhbiBlcnJvciB3YXMgdGhyb3duLiBUaGlzXG4gICAgICAgIC8vIGF2b2lkcyBpbmFjY3VyYXRlIFByb2ZpbGVyIGR1cmF0aW9ucyBpbiB0aGUgY2FzZSBvZiBhXG4gICAgICAgIC8vIHN1c3BlbmRlZCByZW5kZXIuXG4gICAgICAgIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkRGVsdGEoZXJyb3JlZFdvcmssIHRydWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZW5hYmxlU2NoZWR1bGluZ1Byb2ZpbGVyKSB7XG4gICAgICAgIG1hcmtDb21wb25lbnRSZW5kZXJTdG9wcGVkKCk7XG5cbiAgICAgICAgaWYgKHRocm93blZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB0aHJvd25WYWx1ZSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHRocm93blZhbHVlLnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB2YXIgd2FrZWFibGUgPSB0aHJvd25WYWx1ZTtcbiAgICAgICAgICBtYXJrQ29tcG9uZW50U3VzcGVuZGVkKGVycm9yZWRXb3JrLCB3YWtlYWJsZSwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1hcmtDb21wb25lbnRFcnJvcmVkKGVycm9yZWRXb3JrLCB0aHJvd25WYWx1ZSwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRocm93RXhjZXB0aW9uKHJvb3QsIGVycm9yZWRXb3JrLnJldHVybiwgZXJyb3JlZFdvcmssIHRocm93blZhbHVlLCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyk7XG4gICAgICBjb21wbGV0ZVVuaXRPZldvcmsoZXJyb3JlZFdvcmspO1xuICAgIH0gY2F0Y2ggKHlldEFub3RoZXJUaHJvd25WYWx1ZSkge1xuICAgICAgLy8gU29tZXRoaW5nIGluIHRoZSByZXR1cm4gcGF0aCBhbHNvIHRocmV3LlxuICAgICAgdGhyb3duVmFsdWUgPSB5ZXRBbm90aGVyVGhyb3duVmFsdWU7XG5cbiAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcyA9PT0gZXJyb3JlZFdvcmsgJiYgZXJyb3JlZFdvcmsgIT09IG51bGwpIHtcbiAgICAgICAgLy8gSWYgdGhpcyBib3VuZGFyeSBoYXMgYWxyZWFkeSBlcnJvcmVkLCB0aGVuIHdlIGhhZCB0cm91YmxlIHByb2Nlc3NpbmdcbiAgICAgICAgLy8gdGhlIGVycm9yLiBCdWJibGUgaXQgdG8gdGhlIG5leHQgYm91bmRhcnkuXG4gICAgICAgIGVycm9yZWRXb3JrID0gZXJyb3JlZFdvcmsucmV0dXJuO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IGVycm9yZWRXb3JrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3JlZFdvcmsgPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgIH1cblxuICAgICAgY29udGludWU7XG4gICAgfSAvLyBSZXR1cm4gdG8gdGhlIG5vcm1hbCB3b3JrIGxvb3AuXG5cblxuICAgIHJldHVybjtcbiAgfSB3aGlsZSAodHJ1ZSk7XG59XG5cbmZ1bmN0aW9uIHB1c2hEaXNwYXRjaGVyKCkge1xuICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDIuY3VycmVudDtcbiAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQyLmN1cnJlbnQgPSBDb250ZXh0T25seURpc3BhdGNoZXI7XG5cbiAgaWYgKHByZXZEaXNwYXRjaGVyID09PSBudWxsKSB7XG4gICAgLy8gVGhlIFJlYWN0IGlzb21vcnBoaWMgcGFja2FnZSBkb2VzIG5vdCBpbmNsdWRlIGEgZGVmYXVsdCBkaXNwYXRjaGVyLlxuICAgIC8vIEluc3RlYWQgdGhlIGZpcnN0IHJlbmRlcmVyIHdpbGwgbGF6aWx5IGF0dGFjaCBvbmUsIGluIG9yZGVyIHRvIGdpdmVcbiAgICAvLyBuaWNlciBlcnJvciBtZXNzYWdlcy5cbiAgICByZXR1cm4gQ29udGV4dE9ubHlEaXNwYXRjaGVyO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBwcmV2RGlzcGF0Y2hlcjtcbiAgfVxufVxuXG5mdW5jdGlvbiBwb3BEaXNwYXRjaGVyKHByZXZEaXNwYXRjaGVyKSB7XG4gIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMi5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG59XG5cbmZ1bmN0aW9uIG1hcmtDb21taXRUaW1lT2ZGYWxsYmFjaygpIHtcbiAgZ2xvYmFsTW9zdFJlY2VudEZhbGxiYWNrVGltZSA9IG5vdygpO1xufVxuZnVuY3Rpb24gbWFya1NraXBwZWRVcGRhdGVMYW5lcyhsYW5lKSB7XG4gIHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcyA9IG1lcmdlTGFuZXMobGFuZSwgd29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzKTtcbn1cbmZ1bmN0aW9uIHJlbmRlckRpZFN1c3BlbmQoKSB7XG4gIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID09PSBSb290SW5Qcm9ncmVzcykge1xuICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290U3VzcGVuZGVkO1xuICB9XG59XG5mdW5jdGlvbiByZW5kZXJEaWRTdXNwZW5kRGVsYXlJZlBvc3NpYmxlKCkge1xuICBpZiAod29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdEluUHJvZ3Jlc3MgfHwgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdFN1c3BlbmRlZCB8fCB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID09PSBSb290RXJyb3JlZCkge1xuICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290U3VzcGVuZGVkV2l0aERlbGF5O1xuICB9IC8vIENoZWNrIGlmIHRoZXJlIGFyZSB1cGRhdGVzIHRoYXQgd2Ugc2tpcHBlZCB0cmVlIHRoYXQgbWlnaHQgaGF2ZSB1bmJsb2NrZWRcbiAgLy8gdGhpcyByZW5kZXIuXG5cblxuICBpZiAod29ya0luUHJvZ3Jlc3NSb290ICE9PSBudWxsICYmIChpbmNsdWRlc05vbklkbGVXb3JrKHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcykgfHwgaW5jbHVkZXNOb25JZGxlV29yayh3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcykpKSB7XG4gICAgLy8gTWFyayB0aGUgY3VycmVudCByZW5kZXIgYXMgc3VzcGVuZGVkIHNvIHRoYXQgd2Ugc3dpdGNoIHRvIHdvcmtpbmcgb25cbiAgICAvLyB0aGUgdXBkYXRlcyB0aGF0IHdlcmUgc2tpcHBlZC4gVXN1YWxseSB3ZSBvbmx5IHN1c3BlbmQgYXQgdGhlIGVuZCBvZlxuICAgIC8vIHRoZSByZW5kZXIgcGhhc2UuXG4gICAgLy8gVE9ETzogV2Ugc2hvdWxkIHByb2JhYmx5IGFsd2F5cyBtYXJrIHRoZSByb290IGFzIHN1c3BlbmRlZCBpbW1lZGlhdGVseVxuICAgIC8vIChpbnNpZGUgdGhpcyBmdW5jdGlvbiksIHNpbmNlIGJ5IHN1c3BlbmRpbmcgYXQgdGhlIGVuZCBvZiB0aGUgcmVuZGVyXG4gICAgLy8gcGhhc2UgaW50cm9kdWNlcyBhIHBvdGVudGlhbCBtaXN0YWtlIHdoZXJlIHdlIHN1c3BlbmQgbGFuZXMgdGhhdCB3ZXJlXG4gICAgLy8gcGluZ2VkIG9yIHVwZGF0ZWQgd2hpbGUgd2Ugd2VyZSByZW5kZXJpbmcuXG4gICAgbWFya1Jvb3RTdXNwZW5kZWQkMSh3b3JrSW5Qcm9ncmVzc1Jvb3QsIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzKTtcbiAgfVxufVxuZnVuY3Rpb24gcmVuZGVyRGlkRXJyb3IoZXJyb3IpIHtcbiAgaWYgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgIT09IFJvb3RTdXNwZW5kZWRXaXRoRGVsYXkpIHtcbiAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEVycm9yZWQ7XG4gIH1cblxuICBpZiAod29ya0luUHJvZ3Jlc3NSb290Q29uY3VycmVudEVycm9ycyA9PT0gbnVsbCkge1xuICAgIHdvcmtJblByb2dyZXNzUm9vdENvbmN1cnJlbnRFcnJvcnMgPSBbZXJyb3JdO1xuICB9IGVsc2Uge1xuICAgIHdvcmtJblByb2dyZXNzUm9vdENvbmN1cnJlbnRFcnJvcnMucHVzaChlcnJvcik7XG4gIH1cbn0gLy8gQ2FsbGVkIGR1cmluZyByZW5kZXIgdG8gZGV0ZXJtaW5lIGlmIGFueXRoaW5nIGhhcyBzdXNwZW5kZWQuXG4vLyBSZXR1cm5zIGZhbHNlIGlmIHdlJ3JlIG5vdCBzdXJlLlxuXG5mdW5jdGlvbiByZW5kZXJIYXNOb3RTdXNwZW5kZWRZZXQoKSB7XG4gIC8vIElmIHNvbWV0aGluZyBlcnJvcmVkIG9yIGNvbXBsZXRlZCwgd2UgY2FuJ3QgcmVhbGx5IGJlIHN1cmUsXG4gIC8vIHNvIHRob3NlIGFyZSBmYWxzZS5cbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RJblByb2dyZXNzO1xufVxuXG5mdW5jdGlvbiByZW5kZXJSb290U3luYyhyb290LCBsYW5lcykge1xuICB2YXIgcHJldkV4ZWN1dGlvbkNvbnRleHQgPSBleGVjdXRpb25Db250ZXh0O1xuICBleGVjdXRpb25Db250ZXh0IHw9IFJlbmRlckNvbnRleHQ7XG4gIHZhciBwcmV2RGlzcGF0Y2hlciA9IHB1c2hEaXNwYXRjaGVyKCk7IC8vIElmIHRoZSByb290IG9yIGxhbmVzIGhhdmUgY2hhbmdlZCwgdGhyb3cgb3V0IHRoZSBleGlzdGluZyBzdGFja1xuICAvLyBhbmQgcHJlcGFyZSBhIGZyZXNoIG9uZS4gT3RoZXJ3aXNlIHdlJ2xsIGNvbnRpbnVlIHdoZXJlIHdlIGxlZnQgb2ZmLlxuXG4gIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3QgIT09IHJvb3QgfHwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgIT09IGxhbmVzKSB7XG4gICAge1xuICAgICAgaWYgKGlzRGV2VG9vbHNQcmVzZW50KSB7XG4gICAgICAgIHZhciBtZW1vaXplZFVwZGF0ZXJzID0gcm9vdC5tZW1vaXplZFVwZGF0ZXJzO1xuXG4gICAgICAgIGlmIChtZW1vaXplZFVwZGF0ZXJzLnNpemUgPiAwKSB7XG4gICAgICAgICAgcmVzdG9yZVBlbmRpbmdVcGRhdGVycyhyb290LCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyk7XG4gICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycy5jbGVhcigpO1xuICAgICAgICB9IC8vIEF0IHRoaXMgcG9pbnQsIG1vdmUgRmliZXJzIHRoYXQgc2NoZWR1bGVkIHRoZSB1cGNvbWluZyB3b3JrIGZyb20gdGhlIE1hcCB0byB0aGUgU2V0LlxuICAgICAgICAvLyBJZiB3ZSBiYWlsb3V0IG9uIHRoaXMgd29yaywgd2UnbGwgbW92ZSB0aGVtIGJhY2sgKGxpa2UgYWJvdmUpLlxuICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBtb3ZlIHRoZW0gbm93IGluIGNhc2UgdGhlIHdvcmsgc3Bhd25zIG1vcmUgd29yayBhdCB0aGUgc2FtZSBwcmlvcml0eSB3aXRoIGRpZmZlcmVudCB1cGRhdGVycy5cbiAgICAgICAgLy8gVGhhdCB3YXkgd2UgY2FuIGtlZXAgdGhlIGN1cnJlbnQgdXBkYXRlIGFuZCBmdXR1cmUgdXBkYXRlcyBzZXBhcmF0ZS5cblxuXG4gICAgICAgIG1vdmVQZW5kaW5nRmliZXJzVG9NZW1vaXplZChyb290LCBsYW5lcyk7XG4gICAgICB9XG4gICAgfVxuICAgIHByZXBhcmVGcmVzaFN0YWNrKHJvb3QsIGxhbmVzKTtcbiAgfVxuXG4gIHtcbiAgICBtYXJrUmVuZGVyU3RhcnRlZChsYW5lcyk7XG4gIH1cblxuICBkbyB7XG4gICAgdHJ5IHtcbiAgICAgIHdvcmtMb29wU3luYygpO1xuICAgICAgYnJlYWs7XG4gICAgfSBjYXRjaCAodGhyb3duVmFsdWUpIHtcbiAgICAgIGhhbmRsZUVycm9yKHJvb3QsIHRocm93blZhbHVlKTtcbiAgICB9XG4gIH0gd2hpbGUgKHRydWUpO1xuXG4gIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpO1xuICBleGVjdXRpb25Db250ZXh0ID0gcHJldkV4ZWN1dGlvbkNvbnRleHQ7XG4gIHBvcERpc3BhdGNoZXIocHJldkRpc3BhdGNoZXIpO1xuXG4gIGlmICh3b3JrSW5Qcm9ncmVzcyAhPT0gbnVsbCkge1xuICAgIC8vIFRoaXMgaXMgYSBzeW5jIHJlbmRlciwgc28gd2Ugc2hvdWxkIGhhdmUgZmluaXNoZWQgdGhlIHdob2xlIHRyZWUuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY29tbWl0IGFuIGluY29tcGxldGUgcm9vdC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgJyArICdidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICB9XG5cbiAge1xuICAgIG1hcmtSZW5kZXJTdG9wcGVkKCk7XG4gIH0gLy8gU2V0IHRoaXMgdG8gbnVsbCB0byBpbmRpY2F0ZSB0aGVyZSdzIG5vIGluLXByb2dyZXNzIHJlbmRlci5cblxuXG4gIHdvcmtJblByb2dyZXNzUm9vdCA9IG51bGw7XG4gIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gTm9MYW5lcztcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXM7XG59IC8vIFRoZSB3b3JrIGxvb3AgaXMgYW4gZXh0cmVtZWx5IGhvdCBwYXRoLiBUZWxsIENsb3N1cmUgbm90IHRvIGlubGluZSBpdC5cblxuLyoqIEBub2lubGluZSAqL1xuXG5cbmZ1bmN0aW9uIHdvcmtMb29wU3luYygpIHtcbiAgLy8gQWxyZWFkeSB0aW1lZCBvdXQsIHNvIHBlcmZvcm0gd29yayB3aXRob3V0IGNoZWNraW5nIGlmIHdlIG5lZWQgdG8geWllbGQuXG4gIHdoaWxlICh3b3JrSW5Qcm9ncmVzcyAhPT0gbnVsbCkge1xuICAgIHBlcmZvcm1Vbml0T2ZXb3JrKHdvcmtJblByb2dyZXNzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZW5kZXJSb290Q29uY3VycmVudChyb290LCBsYW5lcykge1xuICB2YXIgcHJldkV4ZWN1dGlvbkNvbnRleHQgPSBleGVjdXRpb25Db250ZXh0O1xuICBleGVjdXRpb25Db250ZXh0IHw9IFJlbmRlckNvbnRleHQ7XG4gIHZhciBwcmV2RGlzcGF0Y2hlciA9IHB1c2hEaXNwYXRjaGVyKCk7IC8vIElmIHRoZSByb290IG9yIGxhbmVzIGhhdmUgY2hhbmdlZCwgdGhyb3cgb3V0IHRoZSBleGlzdGluZyBzdGFja1xuICAvLyBhbmQgcHJlcGFyZSBhIGZyZXNoIG9uZS4gT3RoZXJ3aXNlIHdlJ2xsIGNvbnRpbnVlIHdoZXJlIHdlIGxlZnQgb2ZmLlxuXG4gIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3QgIT09IHJvb3QgfHwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgIT09IGxhbmVzKSB7XG4gICAge1xuICAgICAgaWYgKGlzRGV2VG9vbHNQcmVzZW50KSB7XG4gICAgICAgIHZhciBtZW1vaXplZFVwZGF0ZXJzID0gcm9vdC5tZW1vaXplZFVwZGF0ZXJzO1xuXG4gICAgICAgIGlmIChtZW1vaXplZFVwZGF0ZXJzLnNpemUgPiAwKSB7XG4gICAgICAgICAgcmVzdG9yZVBlbmRpbmdVcGRhdGVycyhyb290LCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyk7XG4gICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycy5jbGVhcigpO1xuICAgICAgICB9IC8vIEF0IHRoaXMgcG9pbnQsIG1vdmUgRmliZXJzIHRoYXQgc2NoZWR1bGVkIHRoZSB1cGNvbWluZyB3b3JrIGZyb20gdGhlIE1hcCB0byB0aGUgU2V0LlxuICAgICAgICAvLyBJZiB3ZSBiYWlsb3V0IG9uIHRoaXMgd29yaywgd2UnbGwgbW92ZSB0aGVtIGJhY2sgKGxpa2UgYWJvdmUpLlxuICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBtb3ZlIHRoZW0gbm93IGluIGNhc2UgdGhlIHdvcmsgc3Bhd25zIG1vcmUgd29yayBhdCB0aGUgc2FtZSBwcmlvcml0eSB3aXRoIGRpZmZlcmVudCB1cGRhdGVycy5cbiAgICAgICAgLy8gVGhhdCB3YXkgd2UgY2FuIGtlZXAgdGhlIGN1cnJlbnQgdXBkYXRlIGFuZCBmdXR1cmUgdXBkYXRlcyBzZXBhcmF0ZS5cblxuXG4gICAgICAgIG1vdmVQZW5kaW5nRmliZXJzVG9NZW1vaXplZChyb290LCBsYW5lcyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJlc2V0UmVuZGVyVGltZXIoKTtcbiAgICBwcmVwYXJlRnJlc2hTdGFjayhyb290LCBsYW5lcyk7XG4gIH1cblxuICB7XG4gICAgbWFya1JlbmRlclN0YXJ0ZWQobGFuZXMpO1xuICB9XG5cbiAgZG8ge1xuICAgIHRyeSB7XG4gICAgICB3b3JrTG9vcENvbmN1cnJlbnQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH0gY2F0Y2ggKHRocm93blZhbHVlKSB7XG4gICAgICBoYW5kbGVFcnJvcihyb290LCB0aHJvd25WYWx1ZSk7XG4gICAgfVxuICB9IHdoaWxlICh0cnVlKTtcblxuICByZXNldENvbnRleHREZXBlbmRlbmNpZXMoKTtcbiAgcG9wRGlzcGF0Y2hlcihwcmV2RGlzcGF0Y2hlcik7XG4gIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDtcblxuXG4gIGlmICh3b3JrSW5Qcm9ncmVzcyAhPT0gbnVsbCkge1xuICAgIC8vIFN0aWxsIHdvcmsgcmVtYWluaW5nLlxuICAgIHtcbiAgICAgIG1hcmtSZW5kZXJZaWVsZGVkKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFJvb3RJblByb2dyZXNzO1xuICB9IGVsc2Uge1xuICAgIC8vIENvbXBsZXRlZCB0aGUgdHJlZS5cbiAgICB7XG4gICAgICBtYXJrUmVuZGVyU3RvcHBlZCgpO1xuICAgIH0gLy8gU2V0IHRoaXMgdG8gbnVsbCB0byBpbmRpY2F0ZSB0aGVyZSdzIG5vIGluLXByb2dyZXNzIHJlbmRlci5cblxuXG4gICAgd29ya0luUHJvZ3Jlc3NSb290ID0gbnVsbDtcbiAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyA9IE5vTGFuZXM7IC8vIFJldHVybiB0aGUgZmluYWwgZXhpdCBzdGF0dXMuXG5cbiAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cztcbiAgfVxufVxuLyoqIEBub2lubGluZSAqL1xuXG5cbmZ1bmN0aW9uIHdvcmtMb29wQ29uY3VycmVudCgpIHtcbiAgLy8gUGVyZm9ybSB3b3JrIHVudGlsIFNjaGVkdWxlciBhc2tzIHVzIHRvIHlpZWxkXG4gIHdoaWxlICh3b3JrSW5Qcm9ncmVzcyAhPT0gbnVsbCAmJiAhc2hvdWxkWWllbGQoKSkge1xuICAgIHBlcmZvcm1Vbml0T2ZXb3JrKHdvcmtJblByb2dyZXNzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwZXJmb3JtVW5pdE9mV29yayh1bml0T2ZXb3JrKSB7XG4gIC8vIFRoZSBjdXJyZW50LCBmbHVzaGVkLCBzdGF0ZSBvZiB0aGlzIGZpYmVyIGlzIHRoZSBhbHRlcm5hdGUuIElkZWFsbHlcbiAgLy8gbm90aGluZyBzaG91bGQgcmVseSBvbiB0aGlzLCBidXQgcmVseWluZyBvbiBpdCBoZXJlIG1lYW5zIHRoYXQgd2UgZG9uJ3RcbiAgLy8gbmVlZCBhbiBhZGRpdGlvbmFsIGZpZWxkIG9uIHRoZSB3b3JrIGluIHByb2dyZXNzLlxuICB2YXIgY3VycmVudCA9IHVuaXRPZldvcmsuYWx0ZXJuYXRlO1xuICBzZXRDdXJyZW50RmliZXIodW5pdE9mV29yayk7XG4gIHZhciBuZXh0O1xuXG4gIGlmICggKHVuaXRPZldvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgc3RhcnRQcm9maWxlclRpbWVyKHVuaXRPZldvcmspO1xuICAgIG5leHQgPSBiZWdpbldvcmskMShjdXJyZW50LCB1bml0T2ZXb3JrLCBzdWJ0cmVlUmVuZGVyTGFuZXMpO1xuICAgIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkRGVsdGEodW5pdE9mV29yaywgdHJ1ZSk7XG4gIH0gZWxzZSB7XG4gICAgbmV4dCA9IGJlZ2luV29yayQxKGN1cnJlbnQsIHVuaXRPZldvcmssIHN1YnRyZWVSZW5kZXJMYW5lcyk7XG4gIH1cblxuICByZXNldEN1cnJlbnRGaWJlcigpO1xuICB1bml0T2ZXb3JrLm1lbW9pemVkUHJvcHMgPSB1bml0T2ZXb3JrLnBlbmRpbmdQcm9wcztcblxuICBpZiAobmV4dCA9PT0gbnVsbCkge1xuICAgIC8vIElmIHRoaXMgZG9lc24ndCBzcGF3biBuZXcgd29yaywgY29tcGxldGUgdGhlIGN1cnJlbnQgd29yay5cbiAgICBjb21wbGV0ZVVuaXRPZldvcmsodW5pdE9mV29yayk7XG4gIH0gZWxzZSB7XG4gICAgd29ya0luUHJvZ3Jlc3MgPSBuZXh0O1xuICB9XG5cbiAgUmVhY3RDdXJyZW50T3duZXIkMi5jdXJyZW50ID0gbnVsbDtcbn1cblxuZnVuY3Rpb24gY29tcGxldGVVbml0T2ZXb3JrKHVuaXRPZldvcmspIHtcbiAgLy8gQXR0ZW1wdCB0byBjb21wbGV0ZSB0aGUgY3VycmVudCB1bml0IG9mIHdvcmssIHRoZW4gbW92ZSB0byB0aGUgbmV4dFxuICAvLyBzaWJsaW5nLiBJZiB0aGVyZSBhcmUgbm8gbW9yZSBzaWJsaW5ncywgcmV0dXJuIHRvIHRoZSBwYXJlbnQgZmliZXIuXG4gIHZhciBjb21wbGV0ZWRXb3JrID0gdW5pdE9mV29yaztcblxuICBkbyB7XG4gICAgLy8gVGhlIGN1cnJlbnQsIGZsdXNoZWQsIHN0YXRlIG9mIHRoaXMgZmliZXIgaXMgdGhlIGFsdGVybmF0ZS4gSWRlYWxseVxuICAgIC8vIG5vdGhpbmcgc2hvdWxkIHJlbHkgb24gdGhpcywgYnV0IHJlbHlpbmcgb24gaXQgaGVyZSBtZWFucyB0aGF0IHdlIGRvbid0XG4gICAgLy8gbmVlZCBhbiBhZGRpdGlvbmFsIGZpZWxkIG9uIHRoZSB3b3JrIGluIHByb2dyZXNzLlxuICAgIHZhciBjdXJyZW50ID0gY29tcGxldGVkV29yay5hbHRlcm5hdGU7XG4gICAgdmFyIHJldHVybkZpYmVyID0gY29tcGxldGVkV29yay5yZXR1cm47IC8vIENoZWNrIGlmIHRoZSB3b3JrIGNvbXBsZXRlZCBvciBpZiBzb21ldGhpbmcgdGhyZXcuXG5cbiAgICBpZiAoKGNvbXBsZXRlZFdvcmsuZmxhZ3MgJiBJbmNvbXBsZXRlKSA9PT0gTm9GbGFncykge1xuICAgICAgc2V0Q3VycmVudEZpYmVyKGNvbXBsZXRlZFdvcmspO1xuICAgICAgdmFyIG5leHQgPSB2b2lkIDA7XG5cbiAgICAgIGlmICggKGNvbXBsZXRlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSA9PT0gTm9Nb2RlKSB7XG4gICAgICAgIG5leHQgPSBjb21wbGV0ZVdvcmsoY3VycmVudCwgY29tcGxldGVkV29yaywgc3VidHJlZVJlbmRlckxhbmVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXJ0UHJvZmlsZXJUaW1lcihjb21wbGV0ZWRXb3JrKTtcbiAgICAgICAgbmV4dCA9IGNvbXBsZXRlV29yayhjdXJyZW50LCBjb21wbGV0ZWRXb3JrLCBzdWJ0cmVlUmVuZGVyTGFuZXMpOyAvLyBVcGRhdGUgcmVuZGVyIGR1cmF0aW9uIGFzc3VtaW5nIHdlIGRpZG4ndCBlcnJvci5cblxuICAgICAgICBzdG9wUHJvZmlsZXJUaW1lcklmUnVubmluZ0FuZFJlY29yZERlbHRhKGNvbXBsZXRlZFdvcmssIGZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgcmVzZXRDdXJyZW50RmliZXIoKTtcblxuICAgICAgaWYgKG5leHQgIT09IG51bGwpIHtcbiAgICAgICAgLy8gQ29tcGxldGluZyB0aGlzIGZpYmVyIHNwYXduZWQgbmV3IHdvcmsuIFdvcmsgb24gdGhhdCBuZXh0LlxuICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IG5leHQ7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhpcyBmaWJlciBkaWQgbm90IGNvbXBsZXRlIGJlY2F1c2Ugc29tZXRoaW5nIHRocmV3LiBQb3AgdmFsdWVzIG9mZlxuICAgICAgLy8gdGhlIHN0YWNrIHdpdGhvdXQgZW50ZXJpbmcgdGhlIGNvbXBsZXRlIHBoYXNlLiBJZiB0aGlzIGlzIGEgYm91bmRhcnksXG4gICAgICAvLyBjYXB0dXJlIHZhbHVlcyBpZiBwb3NzaWJsZS5cbiAgICAgIHZhciBfbmV4dCA9IHVud2luZFdvcmsoY3VycmVudCwgY29tcGxldGVkV29yayk7IC8vIEJlY2F1c2UgdGhpcyBmaWJlciBkaWQgbm90IGNvbXBsZXRlLCBkb24ndCByZXNldCBpdHMgbGFuZXMuXG5cblxuICAgICAgaWYgKF9uZXh0ICE9PSBudWxsKSB7XG4gICAgICAgIC8vIElmIGNvbXBsZXRpbmcgdGhpcyB3b3JrIHNwYXduZWQgbmV3IHdvcmssIGRvIHRoYXQgbmV4dC4gV2UnbGwgY29tZVxuICAgICAgICAvLyBiYWNrIGhlcmUgYWdhaW4uXG4gICAgICAgIC8vIFNpbmNlIHdlJ3JlIHJlc3RhcnRpbmcsIHJlbW92ZSBhbnl0aGluZyB0aGF0IGlzIG5vdCBhIGhvc3QgZWZmZWN0XG4gICAgICAgIC8vIGZyb20gdGhlIGVmZmVjdCB0YWcuXG4gICAgICAgIF9uZXh0LmZsYWdzICY9IEhvc3RFZmZlY3RNYXNrO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IF9uZXh0O1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICggKGNvbXBsZXRlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAgIC8vIFJlY29yZCB0aGUgcmVuZGVyIGR1cmF0aW9uIGZvciB0aGUgZmliZXIgdGhhdCBlcnJvcmVkLlxuICAgICAgICBzdG9wUHJvZmlsZXJUaW1lcklmUnVubmluZ0FuZFJlY29yZERlbHRhKGNvbXBsZXRlZFdvcmssIGZhbHNlKTsgLy8gSW5jbHVkZSB0aGUgdGltZSBzcGVudCB3b3JraW5nIG9uIGZhaWxlZCBjaGlsZHJlbiBiZWZvcmUgY29udGludWluZy5cblxuICAgICAgICB2YXIgYWN0dWFsRHVyYXRpb24gPSBjb21wbGV0ZWRXb3JrLmFjdHVhbER1cmF0aW9uO1xuICAgICAgICB2YXIgY2hpbGQgPSBjb21wbGV0ZWRXb3JrLmNoaWxkO1xuXG4gICAgICAgIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICAgIGFjdHVhbER1cmF0aW9uICs9IGNoaWxkLmFjdHVhbER1cmF0aW9uO1xuICAgICAgICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbXBsZXRlZFdvcmsuYWN0dWFsRHVyYXRpb24gPSBhY3R1YWxEdXJhdGlvbjtcbiAgICAgIH1cblxuICAgICAgaWYgKHJldHVybkZpYmVyICE9PSBudWxsKSB7XG4gICAgICAgIC8vIE1hcmsgdGhlIHBhcmVudCBmaWJlciBhcyBpbmNvbXBsZXRlIGFuZCBjbGVhciBpdHMgc3VidHJlZSBmbGFncy5cbiAgICAgICAgcmV0dXJuRmliZXIuZmxhZ3MgfD0gSW5jb21wbGV0ZTtcbiAgICAgICAgcmV0dXJuRmliZXIuc3VidHJlZUZsYWdzID0gTm9GbGFncztcbiAgICAgICAgcmV0dXJuRmliZXIuZGVsZXRpb25zID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdlJ3ZlIHVud291bmQgYWxsIHRoZSB3YXkgdG8gdGhlIHJvb3QuXG4gICAgICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290RGlkTm90Q29tcGxldGU7XG4gICAgICAgIHdvcmtJblByb2dyZXNzID0gbnVsbDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBzaWJsaW5nRmliZXIgPSBjb21wbGV0ZWRXb3JrLnNpYmxpbmc7XG5cbiAgICBpZiAoc2libGluZ0ZpYmVyICE9PSBudWxsKSB7XG4gICAgICAvLyBJZiB0aGVyZSBpcyBtb3JlIHdvcmsgdG8gZG8gaW4gdGhpcyByZXR1cm5GaWJlciwgZG8gdGhhdCBuZXh0LlxuICAgICAgd29ya0luUHJvZ3Jlc3MgPSBzaWJsaW5nRmliZXI7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBPdGhlcndpc2UsIHJldHVybiB0byB0aGUgcGFyZW50XG5cblxuICAgIGNvbXBsZXRlZFdvcmsgPSByZXR1cm5GaWJlcjsgLy8gVXBkYXRlIHRoZSBuZXh0IHRoaW5nIHdlJ3JlIHdvcmtpbmcgb24gaW4gY2FzZSBzb21ldGhpbmcgdGhyb3dzLlxuXG4gICAgd29ya0luUHJvZ3Jlc3MgPSBjb21wbGV0ZWRXb3JrO1xuICB9IHdoaWxlIChjb21wbGV0ZWRXb3JrICE9PSBudWxsKTsgLy8gV2UndmUgcmVhY2hlZCB0aGUgcm9vdC5cblxuXG4gIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID09PSBSb290SW5Qcm9ncmVzcykge1xuICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290Q29tcGxldGVkO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFJvb3Qocm9vdCwgcmVjb3ZlcmFibGVFcnJvcnMpIHtcbiAgLy8gVE9ETzogVGhpcyBubyBsb25nZXIgbWFrZXMgYW55IHNlbnNlLiBXZSBhbHJlYWR5IHdyYXAgdGhlIG11dGF0aW9uIGFuZFxuICAvLyBsYXlvdXQgcGhhc2VzLiBTaG91bGQgYmUgYWJsZSB0byByZW1vdmUuXG4gIHZhciBwcmV2aW91c1VwZGF0ZUxhbmVQcmlvcml0eSA9IGdldEN1cnJlbnRVcGRhdGVQcmlvcml0eSgpO1xuICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQzLnRyYW5zaXRpb247XG5cbiAgdHJ5IHtcbiAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQzLnRyYW5zaXRpb24gPSBudWxsO1xuICAgIHNldEN1cnJlbnRVcGRhdGVQcmlvcml0eShEaXNjcmV0ZUV2ZW50UHJpb3JpdHkpO1xuICAgIGNvbW1pdFJvb3RJbXBsKHJvb3QsIHJlY292ZXJhYmxlRXJyb3JzLCBwcmV2aW91c1VwZGF0ZUxhbmVQcmlvcml0eSk7XG4gIH0gZmluYWxseSB7XG4gICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMy50cmFuc2l0aW9uID0gcHJldlRyYW5zaXRpb247XG4gICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KHByZXZpb3VzVXBkYXRlTGFuZVByaW9yaXR5KTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBjb21taXRSb290SW1wbChyb290LCByZWNvdmVyYWJsZUVycm9ycywgcmVuZGVyUHJpb3JpdHlMZXZlbCkge1xuICBkbyB7XG4gICAgLy8gYGZsdXNoUGFzc2l2ZUVmZmVjdHNgIHdpbGwgY2FsbCBgZmx1c2hTeW5jVXBkYXRlUXVldWVgIGF0IHRoZSBlbmQsIHdoaWNoXG4gICAgLy8gbWVhbnMgYGZsdXNoUGFzc2l2ZUVmZmVjdHNgIHdpbGwgc29tZXRpbWVzIHJlc3VsdCBpbiBhZGRpdGlvbmFsXG4gICAgLy8gcGFzc2l2ZSBlZmZlY3RzLiBTbyB3ZSBuZWVkIHRvIGtlZXAgZmx1c2hpbmcgaW4gYSBsb29wIHVudGlsIHRoZXJlIGFyZVxuICAgIC8vIG5vIG1vcmUgcGVuZGluZyBlZmZlY3RzLlxuICAgIC8vIFRPRE86IE1pZ2h0IGJlIGJldHRlciBpZiBgZmx1c2hQYXNzaXZlRWZmZWN0c2AgZGlkIG5vdCBhdXRvbWF0aWNhbGx5XG4gICAgLy8gZmx1c2ggc3luY2hyb25vdXMgd29yayBhdCB0aGUgZW5kLCB0byBhdm9pZCBmYWN0b3JpbmcgaGF6YXJkcyBsaWtlIHRoaXMuXG4gICAgZmx1c2hQYXNzaXZlRWZmZWN0cygpO1xuICB9IHdoaWxlIChyb290V2l0aFBlbmRpbmdQYXNzaXZlRWZmZWN0cyAhPT0gbnVsbCk7XG5cbiAgZmx1c2hSZW5kZXJQaGFzZVN0cmljdE1vZGVXYXJuaW5nc0luREVWKCk7XG5cbiAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgIT09IE5vQ29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBhbHJlYWR5IGJlIHdvcmtpbmcuJyk7XG4gIH1cblxuICB2YXIgZmluaXNoZWRXb3JrID0gcm9vdC5maW5pc2hlZFdvcms7XG4gIHZhciBsYW5lcyA9IHJvb3QuZmluaXNoZWRMYW5lcztcblxuICB7XG4gICAgbWFya0NvbW1pdFN0YXJ0ZWQobGFuZXMpO1xuICB9XG5cbiAgaWYgKGZpbmlzaGVkV29yayA9PT0gbnVsbCkge1xuXG4gICAge1xuICAgICAgbWFya0NvbW1pdFN0b3BwZWQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIHtcbiAgICB7XG4gICAgICBpZiAobGFuZXMgPT09IE5vTGFuZXMpIHtcbiAgICAgICAgZXJyb3IoJ3Jvb3QuZmluaXNoZWRMYW5lcyBzaG91bGQgbm90IGJlIGVtcHR5IGR1cmluZyBhIGNvbW1pdC4gVGhpcyBpcyBhICcgKyAnYnVnIGluIFJlYWN0LicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJvb3QuZmluaXNoZWRXb3JrID0gbnVsbDtcbiAgcm9vdC5maW5pc2hlZExhbmVzID0gTm9MYW5lcztcblxuICBpZiAoZmluaXNoZWRXb3JrID09PSByb290LmN1cnJlbnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjb21taXQgdGhlIHNhbWUgdHJlZSBhcyBiZWZvcmUuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSAnICsgJ2EgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgfSAvLyBjb21taXRSb290IG5ldmVyIHJldHVybnMgYSBjb250aW51YXRpb247IGl0IGFsd2F5cyBmaW5pc2hlcyBzeW5jaHJvbm91c2x5LlxuICAvLyBTbyB3ZSBjYW4gY2xlYXIgdGhlc2Ugbm93IHRvIGFsbG93IGEgbmV3IGNhbGxiYWNrIHRvIGJlIHNjaGVkdWxlZC5cblxuXG4gIHJvb3QuY2FsbGJhY2tOb2RlID0gbnVsbDtcbiAgcm9vdC5jYWxsYmFja1ByaW9yaXR5ID0gTm9MYW5lOyAvLyBVcGRhdGUgdGhlIGZpcnN0IGFuZCBsYXN0IHBlbmRpbmcgdGltZXMgb24gdGhpcyByb290LiBUaGUgbmV3IGZpcnN0XG4gIC8vIHBlbmRpbmcgdGltZSBpcyB3aGF0ZXZlciBpcyBsZWZ0IG9uIHRoZSByb290IGZpYmVyLlxuXG4gIHZhciByZW1haW5pbmdMYW5lcyA9IG1lcmdlTGFuZXMoZmluaXNoZWRXb3JrLmxhbmVzLCBmaW5pc2hlZFdvcmsuY2hpbGRMYW5lcyk7XG4gIG1hcmtSb290RmluaXNoZWQocm9vdCwgcmVtYWluaW5nTGFuZXMpO1xuXG4gIGlmIChyb290ID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QpIHtcbiAgICAvLyBXZSBjYW4gcmVzZXQgdGhlc2Ugbm93IHRoYXQgdGhleSBhcmUgZmluaXNoZWQuXG4gICAgd29ya0luUHJvZ3Jlc3NSb290ID0gbnVsbDtcbiAgICB3b3JrSW5Qcm9ncmVzcyA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgPSBOb0xhbmVzO1xuICB9IC8vIElmIHRoZXJlIGFyZSBwZW5kaW5nIHBhc3NpdmUgZWZmZWN0cywgc2NoZWR1bGUgYSBjYWxsYmFjayB0byBwcm9jZXNzIHRoZW0uXG4gIC8vIERvIHRoaXMgYXMgZWFybHkgYXMgcG9zc2libGUsIHNvIGl0IGlzIHF1ZXVlZCBiZWZvcmUgYW55dGhpbmcgZWxzZSB0aGF0XG4gIC8vIG1pZ2h0IGdldCBzY2hlZHVsZWQgaW4gdGhlIGNvbW1pdCBwaGFzZS4gKFNlZSAjMTY3MTQuKVxuICAvLyBUT0RPOiBEZWxldGUgYWxsIG90aGVyIHBsYWNlcyB0aGF0IHNjaGVkdWxlIHRoZSBwYXNzaXZlIGVmZmVjdCBjYWxsYmFja1xuICAvLyBUaGV5J3JlIHJlZHVuZGFudC5cblxuXG4gIGlmICgoZmluaXNoZWRXb3JrLnN1YnRyZWVGbGFncyAmIFBhc3NpdmVNYXNrKSAhPT0gTm9GbGFncyB8fCAoZmluaXNoZWRXb3JrLmZsYWdzICYgUGFzc2l2ZU1hc2spICE9PSBOb0ZsYWdzKSB7XG4gICAgaWYgKCFyb290RG9lc0hhdmVQYXNzaXZlRWZmZWN0cykge1xuICAgICAgcm9vdERvZXNIYXZlUGFzc2l2ZUVmZmVjdHMgPSB0cnVlO1xuICAgICAgc2NoZWR1bGVDYWxsYmFjayQxKE5vcm1hbFByaW9yaXR5LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTsgLy8gVGhpcyByZW5kZXIgdHJpZ2dlcmVkIHBhc3NpdmUgZWZmZWN0czogcmVsZWFzZSB0aGUgcm9vdCBjYWNoZSBwb29sXG4gICAgICAgIC8vICphZnRlciogcGFzc2l2ZSBlZmZlY3RzIGZpcmUgdG8gYXZvaWQgZnJlZWluZyBhIGNhY2hlIHBvb2wgdGhhdCBtYXlcbiAgICAgICAgLy8gYmUgcmVmZXJlbmNlZCBieSBhIG5vZGUgaW4gdGhlIHRyZWUgKEhvc3RSb290LCBDYWNoZSBib3VuZGFyeSBldGMpXG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9KTtcbiAgICB9XG4gIH0gLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIGFueSBlZmZlY3RzIGluIHRoZSB3aG9sZSB0cmVlLlxuICAvLyBUT0RPOiBUaGlzIGlzIGxlZnQgb3ZlciBmcm9tIHRoZSBlZmZlY3QgbGlzdCBpbXBsZW1lbnRhdGlvbiwgd2hlcmUgd2UgaGFkXG4gIC8vIHRvIGNoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIGBmaXJzdEVmZmVjdGAgdG8gc2F0aXNmeSBGbG93LiBJIHRoaW5rIHRoZVxuICAvLyBvbmx5IG90aGVyIHJlYXNvbiB0aGlzIG9wdGltaXphdGlvbiBleGlzdHMgaXMgYmVjYXVzZSBpdCBhZmZlY3RzIHByb2ZpbGluZy5cbiAgLy8gUmVjb25zaWRlciB3aGV0aGVyIHRoaXMgaXMgbmVjZXNzYXJ5LlxuXG5cbiAgdmFyIHN1YnRyZWVIYXNFZmZlY3RzID0gKGZpbmlzaGVkV29yay5zdWJ0cmVlRmxhZ3MgJiAoQmVmb3JlTXV0YXRpb25NYXNrIHwgTXV0YXRpb25NYXNrIHwgTGF5b3V0TWFzayB8IFBhc3NpdmVNYXNrKSkgIT09IE5vRmxhZ3M7XG4gIHZhciByb290SGFzRWZmZWN0ID0gKGZpbmlzaGVkV29yay5mbGFncyAmIChCZWZvcmVNdXRhdGlvbk1hc2sgfCBNdXRhdGlvbk1hc2sgfCBMYXlvdXRNYXNrIHwgUGFzc2l2ZU1hc2spKSAhPT0gTm9GbGFncztcblxuICBpZiAoc3VidHJlZUhhc0VmZmVjdHMgfHwgcm9vdEhhc0VmZmVjdCkge1xuICAgIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDMudHJhbnNpdGlvbjtcbiAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQzLnRyYW5zaXRpb24gPSBudWxsO1xuICAgIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gZ2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KCk7XG4gICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KERpc2NyZXRlRXZlbnRQcmlvcml0eSk7XG4gICAgdmFyIHByZXZFeGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDtcbiAgICBleGVjdXRpb25Db250ZXh0IHw9IENvbW1pdENvbnRleHQ7IC8vIFJlc2V0IHRoaXMgdG8gbnVsbCBiZWZvcmUgY2FsbGluZyBsaWZlY3ljbGVzXG5cbiAgICBSZWFjdEN1cnJlbnRPd25lciQyLmN1cnJlbnQgPSBudWxsOyAvLyBUaGUgY29tbWl0IHBoYXNlIGlzIGJyb2tlbiBpbnRvIHNldmVyYWwgc3ViLXBoYXNlcy4gV2UgZG8gYSBzZXBhcmF0ZSBwYXNzXG4gICAgLy8gb2YgdGhlIGVmZmVjdCBsaXN0IGZvciBlYWNoIHBoYXNlOiBhbGwgbXV0YXRpb24gZWZmZWN0cyBjb21lIGJlZm9yZSBhbGxcbiAgICAvLyBsYXlvdXQgZWZmZWN0cywgYW5kIHNvIG9uLlxuICAgIC8vIFRoZSBmaXJzdCBwaGFzZSBhIFwiYmVmb3JlIG11dGF0aW9uXCIgcGhhc2UuIFdlIHVzZSB0aGlzIHBoYXNlIHRvIHJlYWQgdGhlXG4gICAgLy8gc3RhdGUgb2YgdGhlIGhvc3QgdHJlZSByaWdodCBiZWZvcmUgd2UgbXV0YXRlIGl0LiBUaGlzIGlzIHdoZXJlXG4gICAgLy8gZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgaXMgY2FsbGVkLlxuXG4gICAgdmFyIHNob3VsZEZpcmVBZnRlckFjdGl2ZUluc3RhbmNlQmx1ciA9IGNvbW1pdEJlZm9yZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmspO1xuXG4gICAge1xuICAgICAgLy8gTWFyayB0aGUgY3VycmVudCBjb21taXQgdGltZSB0byBiZSBzaGFyZWQgYnkgYWxsIFByb2ZpbGVycyBpbiB0aGlzXG4gICAgICAvLyBiYXRjaC4gVGhpcyBlbmFibGVzIHRoZW0gdG8gYmUgZ3JvdXBlZCBsYXRlci5cbiAgICAgIHJlY29yZENvbW1pdFRpbWUoKTtcbiAgICB9XG5cblxuICAgIGNvbW1pdE11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmssIGxhbmVzKTtcblxuICAgIHJlc2V0QWZ0ZXJDb21taXQocm9vdC5jb250YWluZXJJbmZvKTsgLy8gVGhlIHdvcmstaW4tcHJvZ3Jlc3MgdHJlZSBpcyBub3cgdGhlIGN1cnJlbnQgdHJlZS4gVGhpcyBtdXN0IGNvbWUgYWZ0ZXJcbiAgICAvLyB0aGUgbXV0YXRpb24gcGhhc2UsIHNvIHRoYXQgdGhlIHByZXZpb3VzIHRyZWUgaXMgc3RpbGwgY3VycmVudCBkdXJpbmdcbiAgICAvLyBjb21wb25lbnRXaWxsVW5tb3VudCwgYnV0IGJlZm9yZSB0aGUgbGF5b3V0IHBoYXNlLCBzbyB0aGF0IHRoZSBmaW5pc2hlZFxuICAgIC8vIHdvcmsgaXMgY3VycmVudCBkdXJpbmcgY29tcG9uZW50RGlkTW91bnQvVXBkYXRlLlxuXG4gICAgcm9vdC5jdXJyZW50ID0gZmluaXNoZWRXb3JrOyAvLyBUaGUgbmV4dCBwaGFzZSBpcyB0aGUgbGF5b3V0IHBoYXNlLCB3aGVyZSB3ZSBjYWxsIGVmZmVjdHMgdGhhdCByZWFkXG5cbiAgICB7XG4gICAgICBtYXJrTGF5b3V0RWZmZWN0c1N0YXJ0ZWQobGFuZXMpO1xuICAgIH1cblxuICAgIGNvbW1pdExheW91dEVmZmVjdHMoZmluaXNoZWRXb3JrLCByb290LCBsYW5lcyk7XG5cbiAgICB7XG4gICAgICBtYXJrTGF5b3V0RWZmZWN0c1N0b3BwZWQoKTtcbiAgICB9XG4gICAgLy8gb3Bwb3J0dW5pdHkgdG8gcGFpbnQuXG5cblxuICAgIHJlcXVlc3RQYWludCgpO1xuICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDsgLy8gUmVzZXQgdGhlIHByaW9yaXR5IHRvIHRoZSBwcmV2aW91cyBub24tc3luYyB2YWx1ZS5cblxuICAgIHNldEN1cnJlbnRVcGRhdGVQcmlvcml0eShwcmV2aW91c1ByaW9yaXR5KTtcbiAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQzLnRyYW5zaXRpb24gPSBwcmV2VHJhbnNpdGlvbjtcbiAgfSBlbHNlIHtcbiAgICAvLyBObyBlZmZlY3RzLlxuICAgIHJvb3QuY3VycmVudCA9IGZpbmlzaGVkV29yazsgLy8gTWVhc3VyZSB0aGVzZSBhbnl3YXkgc28gdGhlIGZsYW1lZ3JhcGggZXhwbGljaXRseSBzaG93cyB0aGF0IHRoZXJlIHdlcmVcbiAgICAvLyBubyBlZmZlY3RzLlxuICAgIC8vIFRPRE86IE1heWJlIHRoZXJlJ3MgYSBiZXR0ZXIgd2F5IHRvIHJlcG9ydCB0aGlzLlxuXG4gICAge1xuICAgICAgcmVjb3JkQ29tbWl0VGltZSgpO1xuICAgIH1cbiAgfVxuXG4gIHZhciByb290RGlkSGF2ZVBhc3NpdmVFZmZlY3RzID0gcm9vdERvZXNIYXZlUGFzc2l2ZUVmZmVjdHM7XG5cbiAgaWYgKHJvb3REb2VzSGF2ZVBhc3NpdmVFZmZlY3RzKSB7XG4gICAgLy8gVGhpcyBjb21taXQgaGFzIHBhc3NpdmUgZWZmZWN0cy4gU3Rhc2ggYSByZWZlcmVuY2UgdG8gdGhlbS4gQnV0IGRvbid0XG4gICAgLy8gc2NoZWR1bGUgYSBjYWxsYmFjayB1bnRpbCBhZnRlciBmbHVzaGluZyBsYXlvdXQgd29yay5cbiAgICByb290RG9lc0hhdmVQYXNzaXZlRWZmZWN0cyA9IGZhbHNlO1xuICAgIHJvb3RXaXRoUGVuZGluZ1Bhc3NpdmVFZmZlY3RzID0gcm9vdDtcbiAgICBwZW5kaW5nUGFzc2l2ZUVmZmVjdHNMYW5lcyA9IGxhbmVzO1xuICB9IC8vIFJlYWQgdGhpcyBhZ2Fpbiwgc2luY2UgYW4gZWZmZWN0IG1pZ2h0IGhhdmUgdXBkYXRlZCBpdFxuXG5cbiAgcmVtYWluaW5nTGFuZXMgPSByb290LnBlbmRpbmdMYW5lczsgLy8gQ2hlY2sgaWYgdGhlcmUncyByZW1haW5pbmcgd29yayBvbiB0aGlzIHJvb3RcbiAgLy8gVE9ETzogVGhpcyBpcyBwYXJ0IG9mIHRoZSBgY29tcG9uZW50RGlkQ2F0Y2hgIGltcGxlbWVudGF0aW9uLiBJdHMgcHVycG9zZVxuICAvLyBpcyB0byBkZXRlY3Qgd2hldGhlciBzb21ldGhpbmcgbWlnaHQgaGF2ZSBjYWxsZWQgc2V0U3RhdGUgaW5zaWRlXG4gIC8vIGBjb21wb25lbnREaWRDYXRjaGAuIFRoZSBtZWNoYW5pc20gaXMga25vd24gdG8gYmUgZmxhd2VkIGJlY2F1c2UgYHNldFN0YXRlYFxuICAvLyBpbnNpZGUgYGNvbXBvbmVudERpZENhdGNoYCBpcyBpdHNlbGYgZmxhd2VkIFx1MjAxNCB0aGF0J3Mgd2h5IHdlIHJlY29tbWVuZFxuICAvLyBgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yYCBpbnN0ZWFkLiBIb3dldmVyLCBpdCBjb3VsZCBiZSBpbXByb3ZlZCBieVxuICAvLyBjaGVja2luZyBpZiByZW1haW5pbmdMYW5lcyBpbmNsdWRlcyBTeW5jIHdvcmssIGluc3RlYWQgb2Ygd2hldGhlciB0aGVyZSdzXG4gIC8vIGFueSB3b3JrIHJlbWFpbmluZyBhdCBhbGwgKHdoaWNoIHdvdWxkIGFsc28gaW5jbHVkZSBzdHVmZiBsaWtlIFN1c3BlbnNlXG4gIC8vIHJldHJpZXMgb3IgdHJhbnNpdGlvbnMpLiBJdCdzIGJlZW4gbGlrZSB0aGlzIGZvciBhIHdoaWxlLCB0aG91Z2gsIHNvIGZpeGluZ1xuICAvLyBpdCBwcm9iYWJseSBpc24ndCB0aGF0IHVyZ2VudC5cblxuICBpZiAocmVtYWluaW5nTGFuZXMgPT09IE5vTGFuZXMpIHtcbiAgICAvLyBJZiB0aGVyZSdzIG5vIHJlbWFpbmluZyB3b3JrLCB3ZSBjYW4gY2xlYXIgdGhlIHNldCBvZiBhbHJlYWR5IGZhaWxlZFxuICAgIC8vIGVycm9yIGJvdW5kYXJpZXMuXG4gICAgbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQgPSBudWxsO1xuICB9XG5cbiAge1xuICAgIGlmICghcm9vdERpZEhhdmVQYXNzaXZlRWZmZWN0cykge1xuICAgICAgY29tbWl0RG91YmxlSW52b2tlRWZmZWN0c0luREVWKHJvb3QuY3VycmVudCwgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ29tbWl0Um9vdChmaW5pc2hlZFdvcmsuc3RhdGVOb2RlLCByZW5kZXJQcmlvcml0eUxldmVsKTtcblxuICB7XG4gICAgaWYgKGlzRGV2VG9vbHNQcmVzZW50KSB7XG4gICAgICByb290Lm1lbW9pemVkVXBkYXRlcnMuY2xlYXIoKTtcbiAgICB9XG4gIH1cblxuICB7XG4gICAgb25Db21taXRSb290JDEoKTtcbiAgfSAvLyBBbHdheXMgY2FsbCB0aGlzIGJlZm9yZSBleGl0aW5nIGBjb21taXRSb290YCwgdG8gZW5zdXJlIHRoYXQgYW55XG4gIC8vIGFkZGl0aW9uYWwgd29yayBvbiB0aGlzIHJvb3QgaXMgc2NoZWR1bGVkLlxuXG5cbiAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIG5vdygpKTtcblxuICBpZiAocmVjb3ZlcmFibGVFcnJvcnMgIT09IG51bGwpIHtcbiAgICAvLyBUaGVyZSB3ZXJlIGVycm9ycyBkdXJpbmcgdGhpcyByZW5kZXIsIGJ1dCByZWNvdmVyZWQgZnJvbSB0aGVtIHdpdGhvdXRcbiAgICAvLyBuZWVkaW5nIHRvIHN1cmZhY2UgaXQgdG8gdGhlIFVJLiBXZSBsb2cgdGhlbSBoZXJlLlxuICAgIHZhciBvblJlY292ZXJhYmxlRXJyb3IgPSByb290Lm9uUmVjb3ZlcmFibGVFcnJvcjtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3ZlcmFibGVFcnJvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciByZWNvdmVyYWJsZUVycm9yID0gcmVjb3ZlcmFibGVFcnJvcnNbaV07XG4gICAgICBvblJlY292ZXJhYmxlRXJyb3IocmVjb3ZlcmFibGVFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgaWYgKGhhc1VuY2F1Z2h0RXJyb3IpIHtcbiAgICBoYXNVbmNhdWdodEVycm9yID0gZmFsc2U7XG4gICAgdmFyIGVycm9yJDEgPSBmaXJzdFVuY2F1Z2h0RXJyb3I7XG4gICAgZmlyc3RVbmNhdWdodEVycm9yID0gbnVsbDtcbiAgICB0aHJvdyBlcnJvciQxO1xuICB9IC8vIElmIHRoZSBwYXNzaXZlIGVmZmVjdHMgYXJlIHRoZSByZXN1bHQgb2YgYSBkaXNjcmV0ZSByZW5kZXIsIGZsdXNoIHRoZW1cbiAgLy8gc3luY2hyb25vdXNseSBhdCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHRhc2sgc28gdGhhdCB0aGUgcmVzdWx0IGlzXG4gIC8vIGltbWVkaWF0ZWx5IG9ic2VydmFibGUuIE90aGVyd2lzZSwgd2UgYXNzdW1lIHRoYXQgdGhleSBhcmUgbm90XG4gIC8vIG9yZGVyLWRlcGVuZGVudCBhbmQgZG8gbm90IG5lZWQgdG8gYmUgb2JzZXJ2ZWQgYnkgZXh0ZXJuYWwgc3lzdGVtcywgc28gd2VcbiAgLy8gY2FuIHdhaXQgdW50aWwgYWZ0ZXIgcGFpbnQuXG4gIC8vIFRPRE86IFdlIGNhbiBvcHRpbWl6ZSB0aGlzIGJ5IG5vdCBzY2hlZHVsaW5nIHRoZSBjYWxsYmFjayBlYXJsaWVyLiBTaW5jZSB3ZVxuICAvLyBjdXJyZW50bHkgc2NoZWR1bGUgdGhlIGNhbGxiYWNrIGluIG11bHRpcGxlIHBsYWNlcywgd2lsbCB3YWl0IHVudGlsIHRob3NlXG4gIC8vIGFyZSBjb25zb2xpZGF0ZWQuXG5cblxuICBpZiAoaW5jbHVkZXNTb21lTGFuZShwZW5kaW5nUGFzc2l2ZUVmZmVjdHNMYW5lcywgU3luY0xhbmUpICYmIHJvb3QudGFnICE9PSBMZWdhY3lSb290KSB7XG4gICAgZmx1c2hQYXNzaXZlRWZmZWN0cygpO1xuICB9IC8vIFJlYWQgdGhpcyBhZ2Fpbiwgc2luY2UgYSBwYXNzaXZlIGVmZmVjdCBtaWdodCBoYXZlIHVwZGF0ZWQgaXRcblxuXG4gIHJlbWFpbmluZ0xhbmVzID0gcm9vdC5wZW5kaW5nTGFuZXM7XG5cbiAgaWYgKGluY2x1ZGVzU29tZUxhbmUocmVtYWluaW5nTGFuZXMsIFN5bmNMYW5lKSkge1xuICAgIHtcbiAgICAgIG1hcmtOZXN0ZWRVcGRhdGVTY2hlZHVsZWQoKTtcbiAgICB9IC8vIENvdW50IHRoZSBudW1iZXIgb2YgdGltZXMgdGhlIHJvb3Qgc3luY2hyb25vdXNseSByZS1yZW5kZXJzIHdpdGhvdXRcbiAgICAvLyBmaW5pc2hpbmcuIElmIHRoZXJlIGFyZSB0b28gbWFueSwgaXQgaW5kaWNhdGVzIGFuIGluZmluaXRlIHVwZGF0ZSBsb29wLlxuXG5cbiAgICBpZiAocm9vdCA9PT0gcm9vdFdpdGhOZXN0ZWRVcGRhdGVzKSB7XG4gICAgICBuZXN0ZWRVcGRhdGVDb3VudCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXN0ZWRVcGRhdGVDb3VudCA9IDA7XG4gICAgICByb290V2l0aE5lc3RlZFVwZGF0ZXMgPSByb290O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBuZXN0ZWRVcGRhdGVDb3VudCA9IDA7XG4gIH0gLy8gSWYgbGF5b3V0IHdvcmsgd2FzIHNjaGVkdWxlZCwgZmx1c2ggaXQgbm93LlxuXG5cbiAgZmx1c2hTeW5jQ2FsbGJhY2tzKCk7XG5cbiAge1xuICAgIG1hcmtDb21taXRTdG9wcGVkKCk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gZmx1c2hQYXNzaXZlRWZmZWN0cygpIHtcbiAgLy8gUmV0dXJucyB3aGV0aGVyIHBhc3NpdmUgZWZmZWN0cyB3ZXJlIGZsdXNoZWQuXG4gIC8vIFRPRE86IENvbWJpbmUgdGhpcyBjaGVjayB3aXRoIHRoZSBvbmUgaW4gZmx1c2hQYXNzaXZlRUZmZWN0c0ltcGwuIFdlIHNob3VsZFxuICAvLyBwcm9iYWJseSBqdXN0IGNvbWJpbmUgdGhlIHR3byBmdW5jdGlvbnMuIEkgYmVsaWV2ZSB0aGV5IHdlcmUgb25seSBzZXBhcmF0ZVxuICAvLyBpbiB0aGUgZmlyc3QgcGxhY2UgYmVjYXVzZSB3ZSB1c2VkIHRvIHdyYXAgaXQgd2l0aFxuICAvLyBgU2NoZWR1bGVyLnJ1bldpdGhQcmlvcml0eWAsIHdoaWNoIGFjY2VwdHMgYSBmdW5jdGlvbi4gQnV0IG5vdyB3ZSB0cmFjayB0aGVcbiAgLy8gcHJpb3JpdHkgd2l0aGluIFJlYWN0IGl0c2VsZiwgc28gd2UgY2FuIG11dGF0ZSB0aGUgdmFyaWFibGUgZGlyZWN0bHkuXG4gIGlmIChyb290V2l0aFBlbmRpbmdQYXNzaXZlRWZmZWN0cyAhPT0gbnVsbCkge1xuICAgIHZhciByZW5kZXJQcmlvcml0eSA9IGxhbmVzVG9FdmVudFByaW9yaXR5KHBlbmRpbmdQYXNzaXZlRWZmZWN0c0xhbmVzKTtcbiAgICB2YXIgcHJpb3JpdHkgPSBsb3dlckV2ZW50UHJpb3JpdHkoRGVmYXVsdEV2ZW50UHJpb3JpdHksIHJlbmRlclByaW9yaXR5KTtcbiAgICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQzLnRyYW5zaXRpb247XG4gICAgdmFyIHByZXZpb3VzUHJpb3JpdHkgPSBnZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkoKTtcblxuICAgIHRyeSB7XG4gICAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQzLnRyYW5zaXRpb24gPSBudWxsO1xuICAgICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KHByaW9yaXR5KTtcbiAgICAgIHJldHVybiBmbHVzaFBhc3NpdmVFZmZlY3RzSW1wbCgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkocHJldmlvdXNQcmlvcml0eSk7XG4gICAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQzLnRyYW5zaXRpb24gPSBwcmV2VHJhbnNpdGlvbjsgLy8gT25jZSBwYXNzaXZlIGVmZmVjdHMgaGF2ZSBydW4gZm9yIHRoZSB0cmVlIC0gZ2l2aW5nIGNvbXBvbmVudHMgYVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGVucXVldWVQZW5kaW5nUGFzc2l2ZVByb2ZpbGVyRWZmZWN0KGZpYmVyKSB7XG4gIHtcbiAgICBwZW5kaW5nUGFzc2l2ZVByb2ZpbGVyRWZmZWN0cy5wdXNoKGZpYmVyKTtcblxuICAgIGlmICghcm9vdERvZXNIYXZlUGFzc2l2ZUVmZmVjdHMpIHtcbiAgICAgIHJvb3REb2VzSGF2ZVBhc3NpdmVFZmZlY3RzID0gdHJ1ZTtcbiAgICAgIHNjaGVkdWxlQ2FsbGJhY2skMShOb3JtYWxQcmlvcml0eSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBmbHVzaFBhc3NpdmVFZmZlY3RzKCk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGZsdXNoUGFzc2l2ZUVmZmVjdHNJbXBsKCkge1xuICBpZiAocm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgcm9vdCA9IHJvb3RXaXRoUGVuZGluZ1Bhc3NpdmVFZmZlY3RzO1xuICB2YXIgbGFuZXMgPSBwZW5kaW5nUGFzc2l2ZUVmZmVjdHNMYW5lcztcbiAgcm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMgPSBudWxsOyAvLyBUT0RPOiBUaGlzIGlzIHNvbWV0aW1lcyBvdXQgb2Ygc3luYyB3aXRoIHJvb3RXaXRoUGVuZGluZ1Bhc3NpdmVFZmZlY3RzLlxuICAvLyBGaWd1cmUgb3V0IHdoeSBhbmQgZml4IGl0LiBJdCdzIG5vdCBjYXVzaW5nIGFueSBrbm93biBpc3N1ZXMgKHByb2JhYmx5XG4gIC8vIGJlY2F1c2UgaXQncyBvbmx5IHVzZWQgZm9yIHByb2ZpbGluZyksIGJ1dCBpdCdzIGEgcmVmYWN0b3IgaGF6YXJkLlxuXG4gIHBlbmRpbmdQYXNzaXZlRWZmZWN0c0xhbmVzID0gTm9MYW5lcztcblxuICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZmx1c2ggcGFzc2l2ZSBlZmZlY3RzIHdoaWxlIGFscmVhZHkgcmVuZGVyaW5nLicpO1xuICB9XG5cbiAge1xuICAgIG1hcmtQYXNzaXZlRWZmZWN0c1N0YXJ0ZWQobGFuZXMpO1xuICB9XG5cbiAgdmFyIHByZXZFeGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDtcbiAgZXhlY3V0aW9uQ29udGV4dCB8PSBDb21taXRDb250ZXh0O1xuICBjb21taXRQYXNzaXZlVW5tb3VudEVmZmVjdHMocm9vdC5jdXJyZW50KTtcbiAgY29tbWl0UGFzc2l2ZU1vdW50RWZmZWN0cyhyb290LCByb290LmN1cnJlbnQpOyAvLyBUT0RPOiBNb3ZlIHRvIGNvbW1pdFBhc3NpdmVNb3VudEVmZmVjdHNcblxuICB7XG4gICAgdmFyIHByb2ZpbGVyRWZmZWN0cyA9IHBlbmRpbmdQYXNzaXZlUHJvZmlsZXJFZmZlY3RzO1xuICAgIHBlbmRpbmdQYXNzaXZlUHJvZmlsZXJFZmZlY3RzID0gW107XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2ZpbGVyRWZmZWN0cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIF9maWJlciA9IHByb2ZpbGVyRWZmZWN0c1tpXTtcbiAgICAgIGNvbW1pdFBhc3NpdmVFZmZlY3REdXJhdGlvbnMocm9vdCwgX2ZpYmVyKTtcbiAgICB9XG4gIH1cblxuICB7XG4gICAgbWFya1Bhc3NpdmVFZmZlY3RzU3RvcHBlZCgpO1xuICB9XG5cbiAge1xuICAgIGNvbW1pdERvdWJsZUludm9rZUVmZmVjdHNJbkRFVihyb290LmN1cnJlbnQsIHRydWUpO1xuICB9XG5cbiAgZXhlY3V0aW9uQ29udGV4dCA9IHByZXZFeGVjdXRpb25Db250ZXh0O1xuICBmbHVzaFN5bmNDYWxsYmFja3MoKTsgLy8gSWYgYWRkaXRpb25hbCBwYXNzaXZlIGVmZmVjdHMgd2VyZSBzY2hlZHVsZWQsIGluY3JlbWVudCBhIGNvdW50ZXIuIElmIHRoaXNcbiAgLy8gZXhjZWVkcyB0aGUgbGltaXQsIHdlJ2xsIGZpcmUgYSB3YXJuaW5nLlxuXG4gIG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA9IHJvb3RXaXRoUGVuZGluZ1Bhc3NpdmVFZmZlY3RzID09PSBudWxsID8gMCA6IG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCArIDE7IC8vIFRPRE86IE1vdmUgdG8gY29tbWl0UGFzc2l2ZU1vdW50RWZmZWN0c1xuXG4gIG9uUG9zdENvbW1pdFJvb3Qocm9vdCk7XG5cbiAge1xuICAgIHZhciBzdGF0ZU5vZGUgPSByb290LmN1cnJlbnQuc3RhdGVOb2RlO1xuICAgIHN0YXRlTm9kZS5lZmZlY3REdXJhdGlvbiA9IDA7XG4gICAgc3RhdGVOb2RlLnBhc3NpdmVFZmZlY3REdXJhdGlvbiA9IDA7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gaXNBbHJlYWR5RmFpbGVkTGVnYWN5RXJyb3JCb3VuZGFyeShpbnN0YW5jZSkge1xuICByZXR1cm4gbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQgIT09IG51bGwgJiYgbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQuaGFzKGluc3RhbmNlKTtcbn1cbmZ1bmN0aW9uIG1hcmtMZWdhY3lFcnJvckJvdW5kYXJ5QXNGYWlsZWQoaW5zdGFuY2UpIHtcbiAgaWYgKGxlZ2FjeUVycm9yQm91bmRhcmllc1RoYXRBbHJlYWR5RmFpbGVkID09PSBudWxsKSB7XG4gICAgbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQgPSBuZXcgU2V0KFtpbnN0YW5jZV0pO1xuICB9IGVsc2Uge1xuICAgIGxlZ2FjeUVycm9yQm91bmRhcmllc1RoYXRBbHJlYWR5RmFpbGVkLmFkZChpbnN0YW5jZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJlcGFyZVRvVGhyb3dVbmNhdWdodEVycm9yKGVycm9yKSB7XG4gIGlmICghaGFzVW5jYXVnaHRFcnJvcikge1xuICAgIGhhc1VuY2F1Z2h0RXJyb3IgPSB0cnVlO1xuICAgIGZpcnN0VW5jYXVnaHRFcnJvciA9IGVycm9yO1xuICB9XG59XG5cbnZhciBvblVuY2F1Z2h0RXJyb3IgPSBwcmVwYXJlVG9UaHJvd1VuY2F1Z2h0RXJyb3I7XG5cbmZ1bmN0aW9uIGNhcHR1cmVDb21taXRQaGFzZUVycm9yT25Sb290KHJvb3RGaWJlciwgc291cmNlRmliZXIsIGVycm9yKSB7XG4gIHZhciBlcnJvckluZm8gPSBjcmVhdGVDYXB0dXJlZFZhbHVlKGVycm9yLCBzb3VyY2VGaWJlcik7XG4gIHZhciB1cGRhdGUgPSBjcmVhdGVSb290RXJyb3JVcGRhdGUocm9vdEZpYmVyLCBlcnJvckluZm8sIFN5bmNMYW5lKTtcbiAgZW5xdWV1ZVVwZGF0ZShyb290RmliZXIsIHVwZGF0ZSk7XG4gIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gIHZhciByb290ID0gbWFya1VwZGF0ZUxhbmVGcm9tRmliZXJUb1Jvb3Qocm9vdEZpYmVyLCBTeW5jTGFuZSk7XG5cbiAgaWYgKHJvb3QgIT09IG51bGwpIHtcbiAgICBtYXJrUm9vdFVwZGF0ZWQocm9vdCwgU3luY0xhbmUsIGV2ZW50VGltZSk7XG4gICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIGV2ZW50VGltZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3Ioc291cmNlRmliZXIsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGVycm9yJDEpIHtcbiAgaWYgKHNvdXJjZUZpYmVyLnRhZyA9PT0gSG9zdFJvb3QpIHtcbiAgICAvLyBFcnJvciB3YXMgdGhyb3duIGF0IHRoZSByb290LiBUaGVyZSBpcyBubyBwYXJlbnQsIHNvIHRoZSByb290XG4gICAgLy8gaXRzZWxmIHNob3VsZCBjYXB0dXJlIGl0LlxuICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yT25Sb290KHNvdXJjZUZpYmVyLCBzb3VyY2VGaWJlciwgZXJyb3IkMSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGZpYmVyID0gbnVsbDtcblxuICB7XG4gICAgZmliZXIgPSBuZWFyZXN0TW91bnRlZEFuY2VzdG9yO1xuICB9XG5cbiAgd2hpbGUgKGZpYmVyICE9PSBudWxsKSB7XG4gICAgaWYgKGZpYmVyLnRhZyA9PT0gSG9zdFJvb3QpIHtcbiAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yT25Sb290KGZpYmVyLCBzb3VyY2VGaWJlciwgZXJyb3IkMSk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChmaWJlci50YWcgPT09IENsYXNzQ29tcG9uZW50KSB7XG4gICAgICB2YXIgY3RvciA9IGZpYmVyLnR5cGU7XG4gICAgICB2YXIgaW5zdGFuY2UgPSBmaWJlci5zdGF0ZU5vZGU7XG5cbiAgICAgIGlmICh0eXBlb2YgY3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZENhdGNoID09PSAnZnVuY3Rpb24nICYmICFpc0FscmVhZHlGYWlsZWRMZWdhY3lFcnJvckJvdW5kYXJ5KGluc3RhbmNlKSkge1xuICAgICAgICB2YXIgZXJyb3JJbmZvID0gY3JlYXRlQ2FwdHVyZWRWYWx1ZShlcnJvciQxLCBzb3VyY2VGaWJlcik7XG4gICAgICAgIHZhciB1cGRhdGUgPSBjcmVhdGVDbGFzc0Vycm9yVXBkYXRlKGZpYmVyLCBlcnJvckluZm8sIFN5bmNMYW5lKTtcbiAgICAgICAgZW5xdWV1ZVVwZGF0ZShmaWJlciwgdXBkYXRlKTtcbiAgICAgICAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgICAgICAgdmFyIHJvb3QgPSBtYXJrVXBkYXRlTGFuZUZyb21GaWJlclRvUm9vdChmaWJlciwgU3luY0xhbmUpO1xuXG4gICAgICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICAgICAgbWFya1Jvb3RVcGRhdGVkKHJvb3QsIFN5bmNMYW5lLCBldmVudFRpbWUpO1xuICAgICAgICAgIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290LCBldmVudFRpbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZpYmVyID0gZmliZXIucmV0dXJuO1xuICB9XG5cbiAge1xuICAgIC8vIFRPRE86IFVudGlsIHdlIHJlLWxhbmQgc2tpcFVubW91bnRlZEJvdW5kYXJpZXMgKHNlZSAjMjAxNDcpLCB0aGlzIHdhcm5pbmdcbiAgICAvLyB3aWxsIGZpcmUgZm9yIGVycm9ycyB0aGF0IGFyZSB0aHJvd24gYnkgZGVzdHJveSBmdW5jdGlvbnMgaW5zaWRlIGRlbGV0ZWRcbiAgICAvLyB0cmVlcy4gV2hhdCBpdCBzaG91bGQgaW5zdGVhZCBkbyBpcyBwcm9wYWdhdGUgdGhlIGVycm9yIHRvIHRoZSBwYXJlbnQgb2ZcbiAgICAvLyB0aGUgZGVsZXRlZCB0cmVlLiBJbiB0aGUgbWVhbnRpbWUsIGRvIG5vdCBhZGQgdGhpcyB3YXJuaW5nIHRvIHRoZVxuICAgIC8vIGFsbG93bGlzdDsgdGhpcyBpcyBvbmx5IGZvciBvdXIgaW50ZXJuYWwgdXNlLlxuICAgIGVycm9yKCdJbnRlcm5hbCBSZWFjdCBlcnJvcjogQXR0ZW1wdGVkIHRvIGNhcHR1cmUgYSBjb21taXQgcGhhc2UgZXJyb3IgJyArICdpbnNpZGUgYSBkZXRhY2hlZCB0cmVlLiBUaGlzIGluZGljYXRlcyBhIGJ1ZyBpbiBSZWFjdC4gTGlrZWx5ICcgKyAnY2F1c2VzIGluY2x1ZGUgZGVsZXRpbmcgdGhlIHNhbWUgZmliZXIgbW9yZSB0aGFuIG9uY2UsIGNvbW1pdHRpbmcgYW4gJyArICdhbHJlYWR5LWZpbmlzaGVkIHRyZWUsIG9yIGFuIGluY29uc2lzdGVudCByZXR1cm4gcG9pbnRlci5cXG5cXG4nICsgJ0Vycm9yIG1lc3NhZ2U6XFxuXFxuJXMnLCBlcnJvciQxKTtcbiAgfVxufVxuZnVuY3Rpb24gcGluZ1N1c3BlbmRlZFJvb3Qocm9vdCwgd2FrZWFibGUsIHBpbmdlZExhbmVzKSB7XG4gIHZhciBwaW5nQ2FjaGUgPSByb290LnBpbmdDYWNoZTtcblxuICBpZiAocGluZ0NhY2hlICE9PSBudWxsKSB7XG4gICAgLy8gVGhlIHdha2VhYmxlIHJlc29sdmVkLCBzbyB3ZSBubyBsb25nZXIgbmVlZCB0byBtZW1vaXplLCBiZWNhdXNlIGl0IHdpbGxcbiAgICAvLyBuZXZlciBiZSB0aHJvd24gYWdhaW4uXG4gICAgcGluZ0NhY2hlLmRlbGV0ZSh3YWtlYWJsZSk7XG4gIH1cblxuICB2YXIgZXZlbnRUaW1lID0gcmVxdWVzdEV2ZW50VGltZSgpO1xuICBtYXJrUm9vdFBpbmdlZChyb290LCBwaW5nZWRMYW5lcyk7XG4gIHdhcm5JZlN1c3BlbnNlUmVzb2x1dGlvbk5vdFdyYXBwZWRXaXRoQWN0REVWKHJvb3QpO1xuXG4gIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3QgPT09IHJvb3QgJiYgaXNTdWJzZXRPZkxhbmVzKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzLCBwaW5nZWRMYW5lcykpIHtcbiAgICAvLyBSZWNlaXZlZCBhIHBpbmcgYXQgdGhlIHNhbWUgcHJpb3JpdHkgbGV2ZWwgYXQgd2hpY2ggd2UncmUgY3VycmVudGx5XG4gICAgLy8gcmVuZGVyaW5nLiBXZSBtaWdodCB3YW50IHRvIHJlc3RhcnQgdGhpcyByZW5kZXIuIFRoaXMgc2hvdWxkIG1pcnJvclxuICAgIC8vIHRoZSBsb2dpYyBvZiB3aGV0aGVyIG9yIG5vdCBhIHJvb3Qgc3VzcGVuZHMgb25jZSBpdCBjb21wbGV0ZXMuXG4gICAgLy8gVE9ETzogSWYgd2UncmUgcmVuZGVyaW5nIHN5bmMgZWl0aGVyIGR1ZSB0byBTeW5jLCBCYXRjaGVkIG9yIGV4cGlyZWQsXG4gICAgLy8gd2Ugc2hvdWxkIHByb2JhYmx5IG5ldmVyIHJlc3RhcnQuXG4gICAgLy8gSWYgd2UncmUgc3VzcGVuZGVkIHdpdGggZGVsYXksIG9yIGlmIGl0J3MgYSByZXRyeSwgd2UnbGwgYWx3YXlzIHN1c3BlbmRcbiAgICAvLyBzbyB3ZSBjYW4gYWx3YXlzIHJlc3RhcnQuXG4gICAgaWYgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RTdXNwZW5kZWRXaXRoRGVsYXkgfHwgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdFN1c3BlbmRlZCAmJiBpbmNsdWRlc09ubHlSZXRyaWVzKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzKSAmJiBub3coKSAtIGdsb2JhbE1vc3RSZWNlbnRGYWxsYmFja1RpbWUgPCBGQUxMQkFDS19USFJPVFRMRV9NUykge1xuICAgICAgLy8gUmVzdGFydCBmcm9tIHRoZSByb290LlxuICAgICAgcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgTm9MYW5lcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEV2ZW4gdGhvdWdoIHdlIGNhbid0IHJlc3RhcnQgcmlnaHQgbm93LCB3ZSBtaWdodCBnZXQgYW5cbiAgICAgIC8vIG9wcG9ydHVuaXR5IGxhdGVyLiBTbyB3ZSBtYXJrIHRoaXMgcmVuZGVyIGFzIGhhdmluZyBhIHBpbmcuXG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RQaW5nZWRMYW5lcyA9IG1lcmdlTGFuZXMod29ya0luUHJvZ3Jlc3NSb290UGluZ2VkTGFuZXMsIHBpbmdlZExhbmVzKTtcbiAgICB9XG4gIH1cblxuICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgZXZlbnRUaW1lKTtcbn1cblxuZnVuY3Rpb24gcmV0cnlUaW1lZE91dEJvdW5kYXJ5KGJvdW5kYXJ5RmliZXIsIHJldHJ5TGFuZSkge1xuICAvLyBUaGUgYm91bmRhcnkgZmliZXIgKGEgU3VzcGVuc2UgY29tcG9uZW50IG9yIFN1c3BlbnNlTGlzdCBjb21wb25lbnQpXG4gIC8vIHByZXZpb3VzbHkgd2FzIHJlbmRlcmVkIGluIGl0cyBmYWxsYmFjayBzdGF0ZS4gT25lIG9mIHRoZSBwcm9taXNlcyB0aGF0XG4gIC8vIHN1c3BlbmRlZCBpdCBoYXMgcmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGF0IGxlYXN0IHBhcnQgb2YgdGhlIHRyZWUgd2FzXG4gIC8vIGxpa2VseSB1bmJsb2NrZWQuIFRyeSByZW5kZXJpbmcgYWdhaW4sIGF0IGEgbmV3IGxhbmVzLlxuICBpZiAocmV0cnlMYW5lID09PSBOb0xhbmUpIHtcbiAgICAvLyBUT0RPOiBBc3NpZ24gdGhpcyB0byBgc3VzcGVuc2VTdGF0ZS5yZXRyeUxhbmVgPyB0byBhdm9pZFxuICAgIC8vIHVubmVjZXNzYXJ5IGVudGFuZ2xlbWVudD9cbiAgICByZXRyeUxhbmUgPSByZXF1ZXN0UmV0cnlMYW5lKGJvdW5kYXJ5RmliZXIpO1xuICB9IC8vIFRPRE86IFNwZWNpYWwgY2FzZSBpZGxlIHByaW9yaXR5P1xuXG5cbiAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgdmFyIHJvb3QgPSBtYXJrVXBkYXRlTGFuZUZyb21GaWJlclRvUm9vdChib3VuZGFyeUZpYmVyLCByZXRyeUxhbmUpO1xuXG4gIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgbWFya1Jvb3RVcGRhdGVkKHJvb3QsIHJldHJ5TGFuZSwgZXZlbnRUaW1lKTtcbiAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgZXZlbnRUaW1lKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXRyeURlaHlkcmF0ZWRTdXNwZW5zZUJvdW5kYXJ5KGJvdW5kYXJ5RmliZXIpIHtcbiAgdmFyIHN1c3BlbnNlU3RhdGUgPSBib3VuZGFyeUZpYmVyLm1lbW9pemVkU3RhdGU7XG4gIHZhciByZXRyeUxhbmUgPSBOb0xhbmU7XG5cbiAgaWYgKHN1c3BlbnNlU3RhdGUgIT09IG51bGwpIHtcbiAgICByZXRyeUxhbmUgPSBzdXNwZW5zZVN0YXRlLnJldHJ5TGFuZTtcbiAgfVxuXG4gIHJldHJ5VGltZWRPdXRCb3VuZGFyeShib3VuZGFyeUZpYmVyLCByZXRyeUxhbmUpO1xufVxuZnVuY3Rpb24gcmVzb2x2ZVJldHJ5V2FrZWFibGUoYm91bmRhcnlGaWJlciwgd2FrZWFibGUpIHtcbiAgdmFyIHJldHJ5TGFuZSA9IE5vTGFuZTsgLy8gRGVmYXVsdFxuXG4gIHZhciByZXRyeUNhY2hlO1xuXG4gIHtcbiAgICBzd2l0Y2ggKGJvdW5kYXJ5RmliZXIudGFnKSB7XG4gICAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAgICByZXRyeUNhY2hlID0gYm91bmRhcnlGaWJlci5zdGF0ZU5vZGU7XG4gICAgICAgIHZhciBzdXNwZW5zZVN0YXRlID0gYm91bmRhcnlGaWJlci5tZW1vaXplZFN0YXRlO1xuXG4gICAgICAgIGlmIChzdXNwZW5zZVN0YXRlICE9PSBudWxsKSB7XG4gICAgICAgICAgcmV0cnlMYW5lID0gc3VzcGVuc2VTdGF0ZS5yZXRyeUxhbmU7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgICAgIHJldHJ5Q2FjaGUgPSBib3VuZGFyeUZpYmVyLnN0YXRlTm9kZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignUGluZ2VkIHVua25vd24gc3VzcGVuc2UgYm91bmRhcnkgdHlwZS4gJyArICdUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGluIFJlYWN0LicpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChyZXRyeUNhY2hlICE9PSBudWxsKSB7XG4gICAgLy8gVGhlIHdha2VhYmxlIHJlc29sdmVkLCBzbyB3ZSBubyBsb25nZXIgbmVlZCB0byBtZW1vaXplLCBiZWNhdXNlIGl0IHdpbGxcbiAgICAvLyBuZXZlciBiZSB0aHJvd24gYWdhaW4uXG4gICAgcmV0cnlDYWNoZS5kZWxldGUod2FrZWFibGUpO1xuICB9XG5cbiAgcmV0cnlUaW1lZE91dEJvdW5kYXJ5KGJvdW5kYXJ5RmliZXIsIHJldHJ5TGFuZSk7XG59IC8vIENvbXB1dGVzIHRoZSBuZXh0IEp1c3QgTm90aWNlYWJsZSBEaWZmZXJlbmNlIChKTkQpIGJvdW5kYXJ5LlxuLy8gVGhlIHRoZW9yeSBpcyB0aGF0IGEgcGVyc29uIGNhbid0IHRlbGwgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBzbWFsbCBkaWZmZXJlbmNlcyBpbiB0aW1lLlxuLy8gVGhlcmVmb3JlLCBpZiB3ZSB3YWl0IGEgYml0IGxvbmdlciB0aGFuIG5lY2Vzc2FyeSB0aGF0IHdvbid0IHRyYW5zbGF0ZSB0byBhIG5vdGljZWFibGVcbi8vIGRpZmZlcmVuY2UgaW4gdGhlIGV4cGVyaWVuY2UuIEhvd2V2ZXIsIHdhaXRpbmcgZm9yIGxvbmdlciBtaWdodCBtZWFuIHRoYXQgd2UgY2FuIGF2b2lkXG4vLyBzaG93aW5nIGFuIGludGVybWVkaWF0ZSBsb2FkaW5nIHN0YXRlLiBUaGUgbG9uZ2VyIHdlIGhhdmUgYWxyZWFkeSB3YWl0ZWQsIHRoZSBoYXJkZXIgaXRcbi8vIGlzIHRvIHRlbGwgc21hbGwgZGlmZmVyZW5jZXMgaW4gdGltZS4gVGhlcmVmb3JlLCB0aGUgbG9uZ2VyIHdlJ3ZlIGFscmVhZHkgd2FpdGVkLFxuLy8gdGhlIGxvbmdlciB3ZSBjYW4gd2FpdCBhZGRpdGlvbmFsbHkuIEF0IHNvbWUgcG9pbnQgd2UgaGF2ZSB0byBnaXZlIHVwIHRob3VnaC5cbi8vIFdlIHBpY2sgYSB0cmFpbiBtb2RlbCB3aGVyZSB0aGUgbmV4dCBib3VuZGFyeSBjb21taXRzIGF0IGEgY29uc2lzdGVudCBzY2hlZHVsZS5cbi8vIFRoZXNlIHBhcnRpY3VsYXIgbnVtYmVycyBhcmUgdmFndWUgZXN0aW1hdGVzLiBXZSBleHBlY3QgdG8gYWRqdXN0IHRoZW0gYmFzZWQgb24gcmVzZWFyY2guXG5cbmZ1bmN0aW9uIGpuZCh0aW1lRWxhcHNlZCkge1xuICByZXR1cm4gdGltZUVsYXBzZWQgPCAxMjAgPyAxMjAgOiB0aW1lRWxhcHNlZCA8IDQ4MCA/IDQ4MCA6IHRpbWVFbGFwc2VkIDwgMTA4MCA/IDEwODAgOiB0aW1lRWxhcHNlZCA8IDE5MjAgPyAxOTIwIDogdGltZUVsYXBzZWQgPCAzMDAwID8gMzAwMCA6IHRpbWVFbGFwc2VkIDwgNDMyMCA/IDQzMjAgOiBjZWlsKHRpbWVFbGFwc2VkIC8gMTk2MCkgKiAxOTYwO1xufVxuXG5mdW5jdGlvbiBjaGVja0Zvck5lc3RlZFVwZGF0ZXMoKSB7XG4gIGlmIChuZXN0ZWRVcGRhdGVDb3VudCA+IE5FU1RFRF9VUERBVEVfTElNSVQpIHtcbiAgICBuZXN0ZWRVcGRhdGVDb3VudCA9IDA7XG4gICAgcm9vdFdpdGhOZXN0ZWRVcGRhdGVzID0gbnVsbDtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01heGltdW0gdXBkYXRlIGRlcHRoIGV4Y2VlZGVkLiBUaGlzIGNhbiBoYXBwZW4gd2hlbiBhIGNvbXBvbmVudCAnICsgJ3JlcGVhdGVkbHkgY2FsbHMgc2V0U3RhdGUgaW5zaWRlIGNvbXBvbmVudFdpbGxVcGRhdGUgb3IgJyArICdjb21wb25lbnREaWRVcGRhdGUuIFJlYWN0IGxpbWl0cyB0aGUgbnVtYmVyIG9mIG5lc3RlZCB1cGRhdGVzIHRvICcgKyAncHJldmVudCBpbmZpbml0ZSBsb29wcy4nKTtcbiAgfVxuXG4gIHtcbiAgICBpZiAobmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID4gTkVTVEVEX1BBU1NJVkVfVVBEQVRFX0xJTUlUKSB7XG4gICAgICBuZXN0ZWRQYXNzaXZlVXBkYXRlQ291bnQgPSAwO1xuXG4gICAgICBlcnJvcignTWF4aW11bSB1cGRhdGUgZGVwdGggZXhjZWVkZWQuIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGEgY29tcG9uZW50ICcgKyBcImNhbGxzIHNldFN0YXRlIGluc2lkZSB1c2VFZmZlY3QsIGJ1dCB1c2VFZmZlY3QgZWl0aGVyIGRvZXNuJ3QgXCIgKyAnaGF2ZSBhIGRlcGVuZGVuY3kgYXJyYXksIG9yIG9uZSBvZiB0aGUgZGVwZW5kZW5jaWVzIGNoYW5nZXMgb24gJyArICdldmVyeSByZW5kZXIuJyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGZsdXNoUmVuZGVyUGhhc2VTdHJpY3RNb2RlV2FybmluZ3NJbkRFVigpIHtcbiAge1xuICAgIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLmZsdXNoTGVnYWN5Q29udGV4dFdhcm5pbmcoKTtcblxuICAgIHtcbiAgICAgIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLmZsdXNoUGVuZGluZ1Vuc2FmZUxpZmVjeWNsZVdhcm5pbmdzKCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdERvdWJsZUludm9rZUVmZmVjdHNJbkRFVihmaWJlciwgaGFzUGFzc2l2ZUVmZmVjdHMpIHtcbiAge1xuICAgIC8vIFRPRE8gKFN0cmljdEVmZmVjdHMpIFNob3VsZCB3ZSBzZXQgYSBtYXJrZXIgb24gdGhlIHJvb3QgaWYgaXQgY29udGFpbnMgc3RyaWN0IGVmZmVjdHNcbiAgICAvLyBzbyB3ZSBkb24ndCB0cmF2ZXJzZSB1bm5lY2Vzc2FyaWx5PyBzaW1pbGFyIHRvIHN1YnRyZWVGbGFncyBidXQganVzdCBhdCB0aGUgcm9vdCBsZXZlbC5cbiAgICAvLyBNYXliZSBub3QgYSBiaWcgZGVhbCBzaW5jZSB0aGlzIGlzIERFViBvbmx5IGJlaGF2aW9yLlxuICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG4gICAgaW52b2tlRWZmZWN0c0luRGV2KGZpYmVyLCBNb3VudExheW91dERldiwgaW52b2tlTGF5b3V0RWZmZWN0VW5tb3VudEluREVWKTtcblxuICAgIGlmIChoYXNQYXNzaXZlRWZmZWN0cykge1xuICAgICAgaW52b2tlRWZmZWN0c0luRGV2KGZpYmVyLCBNb3VudFBhc3NpdmVEZXYsIGludm9rZVBhc3NpdmVFZmZlY3RVbm1vdW50SW5ERVYpO1xuICAgIH1cblxuICAgIGludm9rZUVmZmVjdHNJbkRldihmaWJlciwgTW91bnRMYXlvdXREZXYsIGludm9rZUxheW91dEVmZmVjdE1vdW50SW5ERVYpO1xuXG4gICAgaWYgKGhhc1Bhc3NpdmVFZmZlY3RzKSB7XG4gICAgICBpbnZva2VFZmZlY3RzSW5EZXYoZmliZXIsIE1vdW50UGFzc2l2ZURldiwgaW52b2tlUGFzc2l2ZUVmZmVjdE1vdW50SW5ERVYpO1xuICAgIH1cblxuICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW52b2tlRWZmZWN0c0luRGV2KGZpcnN0Q2hpbGQsIGZpYmVyRmxhZ3MsIGludm9rZUVmZmVjdEZuKSB7XG4gIHtcbiAgICAvLyBXZSBkb24ndCBuZWVkIHRvIHJlLWNoZWNrIFN0cmljdEVmZmVjdHNNb2RlIGhlcmUuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBpZiB0aGF0IGNoZWNrIGhhcyBhbHJlYWR5IHBhc3NlZC5cbiAgICB2YXIgY3VycmVudCA9IGZpcnN0Q2hpbGQ7XG4gICAgdmFyIHN1YnRyZWVSb290ID0gbnVsbDtcblxuICAgIHdoaWxlIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICB2YXIgcHJpbWFyeVN1YnRyZWVGbGFnID0gY3VycmVudC5zdWJ0cmVlRmxhZ3MgJiBmaWJlckZsYWdzO1xuXG4gICAgICBpZiAoY3VycmVudCAhPT0gc3VidHJlZVJvb3QgJiYgY3VycmVudC5jaGlsZCAhPT0gbnVsbCAmJiBwcmltYXJ5U3VidHJlZUZsYWcgIT09IE5vRmxhZ3MpIHtcbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuY2hpbGQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoKGN1cnJlbnQuZmxhZ3MgJiBmaWJlckZsYWdzKSAhPT0gTm9GbGFncykge1xuICAgICAgICAgIGludm9rZUVmZmVjdEZuKGN1cnJlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGN1cnJlbnQuc2libGluZyAhPT0gbnVsbCkge1xuICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnNpYmxpbmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3VycmVudCA9IHN1YnRyZWVSb290ID0gY3VycmVudC5yZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIGRpZFdhcm5TdGF0ZVVwZGF0ZUZvck5vdFlldE1vdW50ZWRDb21wb25lbnQgPSBudWxsO1xuXG5mdW5jdGlvbiB3YXJuQWJvdXRVcGRhdGVPbk5vdFlldE1vdW50ZWRGaWJlckluREVWKGZpYmVyKSB7XG4gIHtcbiAgICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiBSZW5kZXJDb250ZXh0KSAhPT0gTm9Db250ZXh0KSB7XG4gICAgICAvLyBXZSBsZXQgdGhlIG90aGVyIHdhcm5pbmcgYWJvdXQgcmVuZGVyIHBoYXNlIHVwZGF0ZXMgZGVhbCB3aXRoIHRoaXMgb25lLlxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghKGZpYmVyLm1vZGUgJiBDb25jdXJyZW50TW9kZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgdGFnID0gZmliZXIudGFnO1xuXG4gICAgaWYgKHRhZyAhPT0gSW5kZXRlcm1pbmF0ZUNvbXBvbmVudCAmJiB0YWcgIT09IEhvc3RSb290ICYmIHRhZyAhPT0gQ2xhc3NDb21wb25lbnQgJiYgdGFnICE9PSBGdW5jdGlvbkNvbXBvbmVudCAmJiB0YWcgIT09IEZvcndhcmRSZWYgJiYgdGFnICE9PSBNZW1vQ29tcG9uZW50ICYmIHRhZyAhPT0gU2ltcGxlTWVtb0NvbXBvbmVudCkge1xuICAgICAgLy8gT25seSB3YXJuIGZvciB1c2VyLWRlZmluZWQgY29tcG9uZW50cywgbm90IGludGVybmFsIG9uZXMgbGlrZSBTdXNwZW5zZS5cbiAgICAgIHJldHVybjtcbiAgICB9IC8vIFdlIHNob3cgdGhlIHdob2xlIHN0YWNrIGJ1dCBkZWR1cGUgb24gdGhlIHRvcCBjb21wb25lbnQncyBuYW1lIGJlY2F1c2VcbiAgICAvLyB0aGUgcHJvYmxlbWF0aWMgY29kZSBhbG1vc3QgYWx3YXlzIGxpZXMgaW5zaWRlIHRoYXQgY29tcG9uZW50LlxuXG5cbiAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8ICdSZWFjdENvbXBvbmVudCc7XG5cbiAgICBpZiAoZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWYgKGRpZFdhcm5TdGF0ZVVwZGF0ZUZvck5vdFlldE1vdW50ZWRDb21wb25lbnQuaGFzKGNvbXBvbmVudE5hbWUpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudC5hZGQoY29tcG9uZW50TmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpZFdhcm5TdGF0ZVVwZGF0ZUZvck5vdFlldE1vdW50ZWRDb21wb25lbnQgPSBuZXcgU2V0KFtjb21wb25lbnROYW1lXSk7XG4gICAgfVxuXG4gICAgdmFyIHByZXZpb3VzRmliZXIgPSBjdXJyZW50O1xuXG4gICAgdHJ5IHtcbiAgICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG5cbiAgICAgIGVycm9yKFwiQ2FuJ3QgcGVyZm9ybSBhIFJlYWN0IHN0YXRlIHVwZGF0ZSBvbiBhIGNvbXBvbmVudCB0aGF0IGhhc24ndCBtb3VudGVkIHlldC4gXCIgKyAnVGhpcyBpbmRpY2F0ZXMgdGhhdCB5b3UgaGF2ZSBhIHNpZGUtZWZmZWN0IGluIHlvdXIgcmVuZGVyIGZ1bmN0aW9uIHRoYXQgJyArICdhc3luY2hyb25vdXNseSBsYXRlciBjYWxscyB0cmllcyB0byB1cGRhdGUgdGhlIGNvbXBvbmVudC4gTW92ZSB0aGlzIHdvcmsgdG8gJyArICd1c2VFZmZlY3QgaW5zdGVhZC4nKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKHByZXZpb3VzRmliZXIpIHtcbiAgICAgICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBiZWdpbldvcmskMTtcblxue1xuICB2YXIgZHVtbXlGaWJlciA9IG51bGw7XG5cbiAgYmVnaW5Xb3JrJDEgPSBmdW5jdGlvbiAoY3VycmVudCwgdW5pdE9mV29yaywgbGFuZXMpIHtcbiAgICAvLyBJZiBhIGNvbXBvbmVudCB0aHJvd3MgYW4gZXJyb3IsIHdlIHJlcGxheSBpdCBhZ2FpbiBpbiBhIHN5bmNocm9ub3VzbHlcbiAgICAvLyBkaXNwYXRjaGVkIGV2ZW50LCBzbyB0aGF0IHRoZSBkZWJ1Z2dlciB3aWxsIHRyZWF0IGl0IGFzIGFuIHVuY2F1Z2h0XG4gICAgLy8gZXJyb3IgU2VlIFJlYWN0RXJyb3JVdGlscyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICAvLyBCZWZvcmUgZW50ZXJpbmcgdGhlIGJlZ2luIHBoYXNlLCBjb3B5IHRoZSB3b3JrLWluLXByb2dyZXNzIG9udG8gYSBkdW1teVxuICAgIC8vIGZpYmVyLiBJZiBiZWdpbldvcmsgdGhyb3dzLCB3ZSdsbCB1c2UgdGhpcyB0byByZXNldCB0aGUgc3RhdGUuXG4gICAgdmFyIG9yaWdpbmFsV29ya0luUHJvZ3Jlc3NDb3B5ID0gYXNzaWduRmliZXJQcm9wZXJ0aWVzSW5ERVYoZHVtbXlGaWJlciwgdW5pdE9mV29yayk7XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGJlZ2luV29yayhjdXJyZW50LCB1bml0T2ZXb3JrLCBsYW5lcyk7XG4gICAgfSBjYXRjaCAob3JpZ2luYWxFcnJvcikge1xuICAgICAgaWYgKG9yaWdpbmFsRXJyb3IgIT09IG51bGwgJiYgdHlwZW9mIG9yaWdpbmFsRXJyb3IgPT09ICdvYmplY3QnICYmIHR5cGVvZiBvcmlnaW5hbEVycm9yLnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gRG9uJ3QgcmVwbGF5IHByb21pc2VzLiBUcmVhdCBldmVyeXRoaW5nIGVsc2UgbGlrZSBhbiBlcnJvci5cbiAgICAgICAgdGhyb3cgb3JpZ2luYWxFcnJvcjtcbiAgICAgIH0gLy8gS2VlcCB0aGlzIGNvZGUgaW4gc3luYyB3aXRoIGhhbmRsZUVycm9yOyBhbnkgY2hhbmdlcyBoZXJlIG11c3QgaGF2ZVxuICAgICAgLy8gY29ycmVzcG9uZGluZyBjaGFuZ2VzIHRoZXJlLlxuXG5cbiAgICAgIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpO1xuICAgICAgcmVzZXRIb29rc0FmdGVyVGhyb3coKTsgLy8gRG9uJ3QgcmVzZXQgY3VycmVudCBkZWJ1ZyBmaWJlciwgc2luY2Ugd2UncmUgYWJvdXQgdG8gd29yayBvbiB0aGVcbiAgICAgIC8vIHNhbWUgZmliZXIgYWdhaW4uXG4gICAgICAvLyBVbndpbmQgdGhlIGZhaWxlZCBzdGFjayBmcmFtZVxuXG4gICAgICB1bndpbmRJbnRlcnJ1cHRlZFdvcmsoY3VycmVudCwgdW5pdE9mV29yayk7IC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsIHByb3BlcnRpZXMgb2YgdGhlIGZpYmVyLlxuXG4gICAgICBhc3NpZ25GaWJlclByb3BlcnRpZXNJbkRFVih1bml0T2ZXb3JrLCBvcmlnaW5hbFdvcmtJblByb2dyZXNzQ29weSk7XG5cbiAgICAgIGlmICggdW5pdE9mV29yay5tb2RlICYgUHJvZmlsZU1vZGUpIHtcbiAgICAgICAgLy8gUmVzZXQgdGhlIHByb2ZpbGVyIHRpbWVyLlxuICAgICAgICBzdGFydFByb2ZpbGVyVGltZXIodW5pdE9mV29yayk7XG4gICAgICB9IC8vIFJ1biBiZWdpbldvcmsgYWdhaW4uXG5cblxuICAgICAgaW52b2tlR3VhcmRlZENhbGxiYWNrKG51bGwsIGJlZ2luV29yaywgbnVsbCwgY3VycmVudCwgdW5pdE9mV29yaywgbGFuZXMpO1xuXG4gICAgICBpZiAoaGFzQ2F1Z2h0RXJyb3IoKSkge1xuICAgICAgICB2YXIgcmVwbGF5RXJyb3IgPSBjbGVhckNhdWdodEVycm9yKCk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiByZXBsYXlFcnJvciA9PT0gJ29iamVjdCcgJiYgcmVwbGF5RXJyb3IgIT09IG51bGwgJiYgcmVwbGF5RXJyb3IuX3N1cHByZXNzTG9nZ2luZyAmJiB0eXBlb2Ygb3JpZ2luYWxFcnJvciA9PT0gJ29iamVjdCcgJiYgb3JpZ2luYWxFcnJvciAhPT0gbnVsbCAmJiAhb3JpZ2luYWxFcnJvci5fc3VwcHJlc3NMb2dnaW5nKSB7XG4gICAgICAgICAgLy8gSWYgc3VwcHJlc3NlZCwgbGV0IHRoZSBmbGFnIGNhcnJ5IG92ZXIgdG8gdGhlIG9yaWdpbmFsIGVycm9yIHdoaWNoIGlzIHRoZSBvbmUgd2UnbGwgcmV0aHJvdy5cbiAgICAgICAgICBvcmlnaW5hbEVycm9yLl9zdXBwcmVzc0xvZ2dpbmcgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IC8vIFdlIGFsd2F5cyB0aHJvdyB0aGUgb3JpZ2luYWwgZXJyb3IgaW4gY2FzZSB0aGUgc2Vjb25kIHJlbmRlciBwYXNzIGlzIG5vdCBpZGVtcG90ZW50LlxuICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIGEgbWVtb2l6ZWQgZnVuY3Rpb24gb3IgQ29tbW9uSlMgbW9kdWxlIGRvZXNuJ3QgdGhyb3cgYWZ0ZXIgZmlyc3QgaW52b2NhdGlvbi5cblxuXG4gICAgICB0aHJvdyBvcmlnaW5hbEVycm9yO1xuICAgIH1cbiAgfTtcbn1cblxudmFyIGRpZFdhcm5BYm91dFVwZGF0ZUluUmVuZGVyID0gZmFsc2U7XG52YXIgZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXJGb3JBbm90aGVyQ29tcG9uZW50O1xuXG57XG4gIGRpZFdhcm5BYm91dFVwZGF0ZUluUmVuZGVyRm9yQW5vdGhlckNvbXBvbmVudCA9IG5ldyBTZXQoKTtcbn1cblxuZnVuY3Rpb24gd2FybkFib3V0UmVuZGVyUGhhc2VVcGRhdGVzSW5ERVYoZmliZXIpIHtcbiAge1xuICAgIGlmIChpc1JlbmRlcmluZyAmJiAhZ2V0SXNVcGRhdGluZ09wYXF1ZVZhbHVlSW5SZW5kZXJQaGFzZUluREVWKCkpIHtcbiAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciByZW5kZXJpbmdDb21wb25lbnROYW1lID0gd29ya0luUHJvZ3Jlc3MgJiYgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcih3b3JrSW5Qcm9ncmVzcykgfHwgJ1Vua25vd24nOyAvLyBEZWR1cGUgYnkgdGhlIHJlbmRlcmluZyBjb21wb25lbnQgYmVjYXVzZSBpdCdzIHRoZSBvbmUgdGhhdCBuZWVkcyB0byBiZSBmaXhlZC5cblxuICAgICAgICAgICAgdmFyIGRlZHVwZUtleSA9IHJlbmRlcmluZ0NvbXBvbmVudE5hbWU7XG5cbiAgICAgICAgICAgIGlmICghZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXJGb3JBbm90aGVyQ29tcG9uZW50LmhhcyhkZWR1cGVLZXkpKSB7XG4gICAgICAgICAgICAgIGRpZFdhcm5BYm91dFVwZGF0ZUluUmVuZGVyRm9yQW5vdGhlckNvbXBvbmVudC5hZGQoZGVkdXBlS2V5KTtcbiAgICAgICAgICAgICAgdmFyIHNldFN0YXRlQ29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8ICdVbmtub3duJztcblxuICAgICAgICAgICAgICBlcnJvcignQ2Fubm90IHVwZGF0ZSBhIGNvbXBvbmVudCAoYCVzYCkgd2hpbGUgcmVuZGVyaW5nIGEgJyArICdkaWZmZXJlbnQgY29tcG9uZW50IChgJXNgKS4gVG8gbG9jYXRlIHRoZSBiYWQgc2V0U3RhdGUoKSBjYWxsIGluc2lkZSBgJXNgLCAnICsgJ2ZvbGxvdyB0aGUgc3RhY2sgdHJhY2UgYXMgZGVzY3JpYmVkIGluIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zZXRzdGF0ZS1pbi1yZW5kZXInLCBzZXRTdGF0ZUNvbXBvbmVudE5hbWUsIHJlbmRlcmluZ0NvbXBvbmVudE5hbWUsIHJlbmRlcmluZ0NvbXBvbmVudE5hbWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAoIWRpZFdhcm5BYm91dFVwZGF0ZUluUmVuZGVyKSB7XG4gICAgICAgICAgICAgIGVycm9yKCdDYW5ub3QgdXBkYXRlIGR1cmluZyBhbiBleGlzdGluZyBzdGF0ZSB0cmFuc2l0aW9uIChzdWNoIGFzICcgKyAnd2l0aGluIGByZW5kZXJgKS4gUmVuZGVyIG1ldGhvZHMgc2hvdWxkIGJlIGEgcHVyZSAnICsgJ2Z1bmN0aW9uIG9mIHByb3BzIGFuZCBzdGF0ZS4nKTtcblxuICAgICAgICAgICAgICBkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlciA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzdG9yZVBlbmRpbmdVcGRhdGVycyhyb290LCBsYW5lcykge1xuICB7XG4gICAgaWYgKGlzRGV2VG9vbHNQcmVzZW50KSB7XG4gICAgICB2YXIgbWVtb2l6ZWRVcGRhdGVycyA9IHJvb3QubWVtb2l6ZWRVcGRhdGVycztcbiAgICAgIG1lbW9pemVkVXBkYXRlcnMuZm9yRWFjaChmdW5jdGlvbiAoc2NoZWR1bGluZ0ZpYmVyKSB7XG4gICAgICAgIGFkZEZpYmVyVG9MYW5lc01hcChyb290LCBzY2hlZHVsaW5nRmliZXIsIGxhbmVzKTtcbiAgICAgIH0pOyAvLyBUaGlzIGZ1bmN0aW9uIGludGVudGlvbmFsbHkgZG9lcyBub3QgY2xlYXIgbWVtb2l6ZWQgdXBkYXRlcnMuXG4gICAgICAvLyBUaG9zZSBtYXkgc3RpbGwgYmUgcmVsZXZhbnQgdG8gdGhlIGN1cnJlbnQgY29tbWl0XG4gICAgICAvLyBhbmQgYSBmdXR1cmUgb25lIChlLmcuIFN1c3BlbnNlKS5cbiAgICB9XG4gIH1cbn1cbnZhciBmYWtlQWN0Q2FsbGJhY2tOb2RlID0ge307XG5cbmZ1bmN0aW9uIHNjaGVkdWxlQ2FsbGJhY2skMShwcmlvcml0eUxldmVsLCBjYWxsYmFjaykge1xuICB7XG4gICAgLy8gSWYgd2UncmUgY3VycmVudGx5IGluc2lkZSBhbiBgYWN0YCBzY29wZSwgYnlwYXNzIFNjaGVkdWxlciBhbmQgcHVzaCB0b1xuICAgIC8vIHRoZSBgYWN0YCBxdWV1ZSBpbnN0ZWFkLlxuICAgIHZhciBhY3RRdWV1ZSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlJDEuY3VycmVudDtcblxuICAgIGlmIChhY3RRdWV1ZSAhPT0gbnVsbCkge1xuICAgICAgYWN0UXVldWUucHVzaChjYWxsYmFjayk7XG4gICAgICByZXR1cm4gZmFrZUFjdENhbGxiYWNrTm9kZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHNjaGVkdWxlQ2FsbGJhY2socHJpb3JpdHlMZXZlbCwgY2FsbGJhY2spO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjYW5jZWxDYWxsYmFjayQxKGNhbGxiYWNrTm9kZSkge1xuICBpZiAoIGNhbGxiYWNrTm9kZSA9PT0gZmFrZUFjdENhbGxiYWNrTm9kZSkge1xuICAgIHJldHVybjtcbiAgfSAvLyBJbiBwcm9kdWN0aW9uLCBhbHdheXMgY2FsbCBTY2hlZHVsZXIuIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBzdHJpcHBlZCBvdXQuXG5cblxuICByZXR1cm4gY2FuY2VsQ2FsbGJhY2soY2FsbGJhY2tOb2RlKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkRm9yY2VGbHVzaEZhbGxiYWNrc0luREVWKCkge1xuICAvLyBOZXZlciBmb3JjZSBmbHVzaCBpbiBwcm9kdWN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBnZXQgc3RyaXBwZWQgb3V0LlxuICByZXR1cm4gIFJlYWN0Q3VycmVudEFjdFF1ZXVlJDEuY3VycmVudCAhPT0gbnVsbDtcbn1cblxuZnVuY3Rpb24gd2FybklmVXBkYXRlc05vdFdyYXBwZWRXaXRoQWN0REVWKGZpYmVyKSB7XG4gIHtcbiAgICBpZiAoZmliZXIubW9kZSAmIENvbmN1cnJlbnRNb2RlKSB7XG4gICAgICBpZiAoIWlzQ29uY3VycmVudEFjdEVudmlyb25tZW50KCkpIHtcbiAgICAgICAgLy8gTm90IGluIGFuIGFjdCBlbnZpcm9ubWVudC4gTm8gbmVlZCB0byB3YXJuLlxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIExlZ2FjeSBtb2RlIGhhcyBhZGRpdGlvbmFsIGNhc2VzIHdoZXJlIHdlIHN1cHByZXNzIGEgd2FybmluZy5cbiAgICAgIGlmICghaXNMZWdhY3lBY3RFbnZpcm9ubWVudCgpKSB7XG4gICAgICAgIC8vIE5vdCBpbiBhbiBhY3QgZW52aXJvbm1lbnQuIE5vIG5lZWQgdG8gd2Fybi5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXhlY3V0aW9uQ29udGV4dCAhPT0gTm9Db250ZXh0KSB7XG4gICAgICAgIC8vIExlZ2FjeSBtb2RlIGRvZXNuJ3Qgd2FybiBpZiB0aGUgdXBkYXRlIGlzIGJhdGNoZWQsIGkuZS5cbiAgICAgICAgLy8gYmF0Y2hlZFVwZGF0ZXMgb3IgZmx1c2hTeW5jLlxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChmaWJlci50YWcgIT09IEZ1bmN0aW9uQ29tcG9uZW50ICYmIGZpYmVyLnRhZyAhPT0gRm9yd2FyZFJlZiAmJiBmaWJlci50YWcgIT09IFNpbXBsZU1lbW9Db21wb25lbnQpIHtcbiAgICAgICAgLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggcHJlLWhvb2tzIGNvZGUsIGxlZ2FjeSBtb2RlIG9ubHlcbiAgICAgICAgLy8gd2FybnMgZm9yIHVwZGF0ZXMgdGhhdCBvcmlnaW5hdGUgZnJvbSBhIGhvb2suXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoUmVhY3RDdXJyZW50QWN0UXVldWUkMS5jdXJyZW50ID09PSBudWxsKSB7XG4gICAgICB2YXIgcHJldmlvdXNGaWJlciA9IGN1cnJlbnQ7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG5cbiAgICAgICAgZXJyb3IoJ0FuIHVwZGF0ZSB0byAlcyBpbnNpZGUgYSB0ZXN0IHdhcyBub3Qgd3JhcHBlZCBpbiBhY3QoLi4uKS5cXG5cXG4nICsgJ1doZW4gdGVzdGluZywgY29kZSB0aGF0IGNhdXNlcyBSZWFjdCBzdGF0ZSB1cGRhdGVzIHNob3VsZCBiZSAnICsgJ3dyYXBwZWQgaW50byBhY3QoLi4uKTpcXG5cXG4nICsgJ2FjdCgoKSA9PiB7XFxuJyArICcgIC8qIGZpcmUgZXZlbnRzIHRoYXQgdXBkYXRlIHN0YXRlICovXFxuJyArICd9KTtcXG4nICsgJy8qIGFzc2VydCBvbiB0aGUgb3V0cHV0ICovXFxuXFxuJyArIFwiVGhpcyBlbnN1cmVzIHRoYXQgeW91J3JlIHRlc3RpbmcgdGhlIGJlaGF2aW9yIHRoZSB1c2VyIHdvdWxkIHNlZSBcIiArICdpbiB0aGUgYnJvd3Nlci4nICsgJyBMZWFybiBtb3JlIGF0IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay93cmFwLXRlc3RzLXdpdGgtYWN0JywgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKHByZXZpb3VzRmliZXIpIHtcbiAgICAgICAgICBzZXRDdXJyZW50RmliZXIoZmliZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gd2FybklmU3VzcGVuc2VSZXNvbHV0aW9uTm90V3JhcHBlZFdpdGhBY3RERVYocm9vdCkge1xuICB7XG4gICAgaWYgKHJvb3QudGFnICE9PSBMZWdhY3lSb290ICYmIGlzQ29uY3VycmVudEFjdEVudmlyb25tZW50KCkgJiYgUmVhY3RDdXJyZW50QWN0UXVldWUkMS5jdXJyZW50ID09PSBudWxsKSB7XG4gICAgICBlcnJvcignQSBzdXNwZW5kZWQgcmVzb3VyY2UgZmluaXNoZWQgbG9hZGluZyBpbnNpZGUgYSB0ZXN0LCBidXQgdGhlIGV2ZW50ICcgKyAnd2FzIG5vdCB3cmFwcGVkIGluIGFjdCguLi4pLlxcblxcbicgKyAnV2hlbiB0ZXN0aW5nLCBjb2RlIHRoYXQgcmVzb2x2ZXMgc3VzcGVuZGVkIGRhdGEgc2hvdWxkIGJlIHdyYXBwZWQgJyArICdpbnRvIGFjdCguLi4pOlxcblxcbicgKyAnYWN0KCgpID0+IHtcXG4nICsgJyAgLyogZmluaXNoIGxvYWRpbmcgc3VzcGVuZGVkIGRhdGEgKi9cXG4nICsgJ30pO1xcbicgKyAnLyogYXNzZXJ0IG9uIHRoZSBvdXRwdXQgKi9cXG5cXG4nICsgXCJUaGlzIGVuc3VyZXMgdGhhdCB5b3UncmUgdGVzdGluZyB0aGUgYmVoYXZpb3IgdGhlIHVzZXIgd291bGQgc2VlIFwiICsgJ2luIHRoZSBicm93c2VyLicgKyAnIExlYXJuIG1vcmUgYXQgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3dyYXAtdGVzdHMtd2l0aC1hY3QnKTtcbiAgICB9XG4gIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvcHJvZC1lcnJvci1jb2RlcyAqL1xudmFyIHJlc29sdmVGYW1pbHkgPSBudWxsOyAvLyAkRmxvd0ZpeE1lIEZsb3cgZ2V0cyBjb25mdXNlZCBieSBhIFdlYWtTZXQgZmVhdHVyZSBjaGVjayBiZWxvdy5cblxudmFyIGZhaWxlZEJvdW5kYXJpZXMgPSBudWxsO1xudmFyIHNldFJlZnJlc2hIYW5kbGVyID0gZnVuY3Rpb24gKGhhbmRsZXIpIHtcbiAge1xuICAgIHJlc29sdmVGYW1pbHkgPSBoYW5kbGVyO1xuICB9XG59O1xuZnVuY3Rpb24gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKHR5cGUpIHtcbiAge1xuICAgIGlmIChyZXNvbHZlRmFtaWx5ID09PSBudWxsKSB7XG4gICAgICAvLyBIb3QgcmVsb2FkaW5nIGlzIGRpc2FibGVkLlxuICAgICAgcmV0dXJuIHR5cGU7XG4gICAgfVxuXG4gICAgdmFyIGZhbWlseSA9IHJlc29sdmVGYW1pbHkodHlwZSk7XG5cbiAgICBpZiAoZmFtaWx5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH0gLy8gVXNlIHRoZSBsYXRlc3Qga25vd24gaW1wbGVtZW50YXRpb24uXG5cblxuICAgIHJldHVybiBmYW1pbHkuY3VycmVudDtcbiAgfVxufVxuZnVuY3Rpb24gcmVzb2x2ZUNsYXNzRm9ySG90UmVsb2FkaW5nKHR5cGUpIHtcbiAgLy8gTm8gaW1wbGVtZW50YXRpb24gZGlmZmVyZW5jZXMuXG4gIHJldHVybiByZXNvbHZlRnVuY3Rpb25Gb3JIb3RSZWxvYWRpbmcodHlwZSk7XG59XG5mdW5jdGlvbiByZXNvbHZlRm9yd2FyZFJlZkZvckhvdFJlbG9hZGluZyh0eXBlKSB7XG4gIHtcbiAgICBpZiAocmVzb2x2ZUZhbWlseSA9PT0gbnVsbCkge1xuICAgICAgLy8gSG90IHJlbG9hZGluZyBpcyBkaXNhYmxlZC5cbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cblxuICAgIHZhciBmYW1pbHkgPSByZXNvbHZlRmFtaWx5KHR5cGUpO1xuXG4gICAgaWYgKGZhbWlseSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBDaGVjayBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSByZWFsIGZvcndhcmRSZWYuIERvbid0IHdhbnQgdG8gY3Jhc2ggZWFybHkuXG4gICAgICBpZiAodHlwZSAhPT0gbnVsbCAmJiB0eXBlICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIHR5cGUucmVuZGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIC8vIEZvcndhcmRSZWYgaXMgc3BlY2lhbCBiZWNhdXNlIGl0cyByZXNvbHZlZCAudHlwZSBpcyBhbiBvYmplY3QsXG4gICAgICAgIC8vIGJ1dCBpdCdzIHBvc3NpYmxlIHRoYXQgd2Ugb25seSBoYXZlIGl0cyBpbm5lciByZW5kZXIgZnVuY3Rpb24gaW4gdGhlIG1hcC5cbiAgICAgICAgLy8gSWYgdGhhdCBpbm5lciByZW5kZXIgZnVuY3Rpb24gaXMgZGlmZmVyZW50LCB3ZSdsbCBidWlsZCBhIG5ldyBmb3J3YXJkUmVmIHR5cGUuXG4gICAgICAgIHZhciBjdXJyZW50UmVuZGVyID0gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKHR5cGUucmVuZGVyKTtcblxuICAgICAgICBpZiAodHlwZS5yZW5kZXIgIT09IGN1cnJlbnRSZW5kZXIpIHtcbiAgICAgICAgICB2YXIgc3ludGhldGljVHlwZSA9IHtcbiAgICAgICAgICAgICQkdHlwZW9mOiBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFLFxuICAgICAgICAgICAgcmVuZGVyOiBjdXJyZW50UmVuZGVyXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGlmICh0eXBlLmRpc3BsYXlOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHN5bnRoZXRpY1R5cGUuZGlzcGxheU5hbWUgPSB0eXBlLmRpc3BsYXlOYW1lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBzeW50aGV0aWNUeXBlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH0gLy8gVXNlIHRoZSBsYXRlc3Qga25vd24gaW1wbGVtZW50YXRpb24uXG5cblxuICAgIHJldHVybiBmYW1pbHkuY3VycmVudDtcbiAgfVxufVxuZnVuY3Rpb24gaXNDb21wYXRpYmxlRmFtaWx5Rm9ySG90UmVsb2FkaW5nKGZpYmVyLCBlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAocmVzb2x2ZUZhbWlseSA9PT0gbnVsbCkge1xuICAgICAgLy8gSG90IHJlbG9hZGluZyBpcyBkaXNhYmxlZC5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB2YXIgcHJldlR5cGUgPSBmaWJlci5lbGVtZW50VHlwZTtcbiAgICB2YXIgbmV4dFR5cGUgPSBlbGVtZW50LnR5cGU7IC8vIElmIHdlIGdvdCBoZXJlLCB3ZSBrbm93IHR5cGVzIGFyZW4ndCA9PT0gZXF1YWwuXG5cbiAgICB2YXIgbmVlZHNDb21wYXJlRmFtaWxpZXMgPSBmYWxzZTtcbiAgICB2YXIgJCR0eXBlb2ZOZXh0VHlwZSA9IHR5cGVvZiBuZXh0VHlwZSA9PT0gJ29iamVjdCcgJiYgbmV4dFR5cGUgIT09IG51bGwgPyBuZXh0VHlwZS4kJHR5cGVvZiA6IG51bGw7XG5cbiAgICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIGlmICh0eXBlb2YgbmV4dFR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBuZXh0VHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbmVlZHNDb21wYXJlRmFtaWxpZXMgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAoJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfTEFaWV9UWVBFKSB7XG4gICAgICAgICAgICAvLyBXZSBkb24ndCBrbm93IHRoZSBpbm5lciB0eXBlIHlldC5cbiAgICAgICAgICAgIC8vIFdlJ3JlIGdvaW5nIHRvIGFzc3VtZSB0aGF0IHRoZSBsYXp5IGlubmVyIHR5cGUgaXMgc3RhYmxlLFxuICAgICAgICAgICAgLy8gYW5kIHNvIGl0IGlzIHN1ZmZpY2llbnQgdG8gYXZvaWQgcmVjb25jaWxpbmcgaXQgYXdheS5cbiAgICAgICAgICAgIC8vIFdlJ3JlIG5vdCBnb2luZyB0byB1bndyYXAgb3IgYWN0dWFsbHkgdXNlIHRoZSBuZXcgbGF6eSB0eXBlLlxuICAgICAgICAgICAgbmVlZHNDb21wYXJlRmFtaWxpZXMgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAge1xuICAgICAgICAgIGlmICgkJHR5cGVvZk5leHRUeXBlID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFKSB7XG4gICAgICAgICAgICBuZWVkc0NvbXBhcmVGYW1pbGllcyA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIGlmICgkJHR5cGVvZk5leHRUeXBlID09PSBSRUFDVF9MQVpZX1RZUEUpIHtcbiAgICAgICAgICAgIG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIE1lbW9Db21wb25lbnQ6XG4gICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfTUVNT19UWVBFKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBpZiBpdCB3YXMgYnV0IGNhbiBubyBsb25nZXIgYmUgc2ltcGxlLFxuICAgICAgICAgICAgLy8gd2Ugc2hvdWxkbid0IHNldCB0aGlzLlxuICAgICAgICAgICAgbmVlZHNDb21wYXJlRmFtaWxpZXMgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAoJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfTEFaWV9UWVBFKSB7XG4gICAgICAgICAgICBuZWVkc0NvbXBhcmVGYW1pbGllcyA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gLy8gQ2hlY2sgaWYgYm90aCB0eXBlcyBoYXZlIGEgZmFtaWx5IGFuZCBpdCdzIHRoZSBzYW1lIG9uZS5cblxuXG4gICAgaWYgKG5lZWRzQ29tcGFyZUZhbWlsaWVzKSB7XG4gICAgICAvLyBOb3RlOiBtZW1vKCkgYW5kIGZvcndhcmRSZWYoKSB3ZSdsbCBjb21wYXJlIG91dGVyIHJhdGhlciB0aGFuIGlubmVyIHR5cGUuXG4gICAgICAvLyBUaGlzIG1lYW5zIGJvdGggb2YgdGhlbSBuZWVkIHRvIGJlIHJlZ2lzdGVyZWQgdG8gcHJlc2VydmUgc3RhdGUuXG4gICAgICAvLyBJZiB3ZSB1bndyYXBwZWQgYW5kIGNvbXBhcmVkIHRoZSBpbm5lciB0eXBlcyBmb3Igd3JhcHBlcnMgaW5zdGVhZCxcbiAgICAgIC8vIHRoZW4gd2Ugd291bGQgcmlzayBmYWxzZWx5IHNheWluZyB0d28gc2VwYXJhdGUgbWVtbyhGb28pXG4gICAgICAvLyBjYWxscyBhcmUgZXF1aXZhbGVudCBiZWNhdXNlIHRoZXkgd3JhcCB0aGUgc2FtZSBGb28gZnVuY3Rpb24uXG4gICAgICB2YXIgcHJldkZhbWlseSA9IHJlc29sdmVGYW1pbHkocHJldlR5cGUpO1xuXG4gICAgICBpZiAocHJldkZhbWlseSAhPT0gdW5kZWZpbmVkICYmIHByZXZGYW1pbHkgPT09IHJlc29sdmVGYW1pbHkobmV4dFR5cGUpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuZnVuY3Rpb24gbWFya0ZhaWxlZEVycm9yQm91bmRhcnlGb3JIb3RSZWxvYWRpbmcoZmliZXIpIHtcbiAge1xuICAgIGlmIChyZXNvbHZlRmFtaWx5ID09PSBudWxsKSB7XG4gICAgICAvLyBIb3QgcmVsb2FkaW5nIGlzIGRpc2FibGVkLlxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgV2Vha1NldCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChmYWlsZWRCb3VuZGFyaWVzID09PSBudWxsKSB7XG4gICAgICBmYWlsZWRCb3VuZGFyaWVzID0gbmV3IFdlYWtTZXQoKTtcbiAgICB9XG5cbiAgICBmYWlsZWRCb3VuZGFyaWVzLmFkZChmaWJlcik7XG4gIH1cbn1cbnZhciBzY2hlZHVsZVJlZnJlc2ggPSBmdW5jdGlvbiAocm9vdCwgdXBkYXRlKSB7XG4gIHtcbiAgICBpZiAocmVzb2x2ZUZhbWlseSA9PT0gbnVsbCkge1xuICAgICAgLy8gSG90IHJlbG9hZGluZyBpcyBkaXNhYmxlZC5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgc3RhbGVGYW1pbGllcyA9IHVwZGF0ZS5zdGFsZUZhbWlsaWVzLFxuICAgICAgICB1cGRhdGVkRmFtaWxpZXMgPSB1cGRhdGUudXBkYXRlZEZhbWlsaWVzO1xuICAgIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbiAgICBmbHVzaFN5bmMoZnVuY3Rpb24gKCkge1xuICAgICAgc2NoZWR1bGVGaWJlcnNXaXRoRmFtaWxpZXNSZWN1cnNpdmVseShyb290LmN1cnJlbnQsIHVwZGF0ZWRGYW1pbGllcywgc3RhbGVGYW1pbGllcyk7XG4gICAgfSk7XG4gIH1cbn07XG52YXIgc2NoZWR1bGVSb290ID0gZnVuY3Rpb24gKHJvb3QsIGVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChyb290LmNvbnRleHQgIT09IGVtcHR5Q29udGV4dE9iamVjdCkge1xuICAgICAgLy8gU3VwZXIgZWRnZSBjYXNlOiByb290IGhhcyBhIGxlZ2FjeSBfcmVuZGVyU3VidHJlZSBjb250ZXh0XG4gICAgICAvLyBidXQgd2UgZG9uJ3Qga25vdyB0aGUgcGFyZW50Q29tcG9uZW50IHNvIHdlIGNhbid0IHBhc3MgaXQuXG4gICAgICAvLyBKdXN0IGlnbm9yZS4gV2UnbGwgZGVsZXRlIHRoaXMgd2l0aCBfcmVuZGVyU3VidHJlZSBjb2RlIHBhdGggbGF0ZXIuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZmx1c2hQYXNzaXZlRWZmZWN0cygpO1xuICAgIGZsdXNoU3luYyhmdW5jdGlvbiAoKSB7XG4gICAgICB1cGRhdGVDb250YWluZXIoZWxlbWVudCwgcm9vdCwgbnVsbCwgbnVsbCk7XG4gICAgfSk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHNjaGVkdWxlRmliZXJzV2l0aEZhbWlsaWVzUmVjdXJzaXZlbHkoZmliZXIsIHVwZGF0ZWRGYW1pbGllcywgc3RhbGVGYW1pbGllcykge1xuICB7XG4gICAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZSxcbiAgICAgICAgY2hpbGQgPSBmaWJlci5jaGlsZCxcbiAgICAgICAgc2libGluZyA9IGZpYmVyLnNpYmxpbmcsXG4gICAgICAgIHRhZyA9IGZpYmVyLnRhZyxcbiAgICAgICAgdHlwZSA9IGZpYmVyLnR5cGU7XG4gICAgdmFyIGNhbmRpZGF0ZVR5cGUgPSBudWxsO1xuXG4gICAgc3dpdGNoICh0YWcpIHtcbiAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgICBjYW5kaWRhdGVUeXBlID0gdHlwZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAgY2FuZGlkYXRlVHlwZSA9IHR5cGUucmVuZGVyO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAocmVzb2x2ZUZhbWlseSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCByZXNvbHZlRmFtaWx5IHRvIGJlIHNldCBkdXJpbmcgaG90IHJlbG9hZC4nKTtcbiAgICB9XG5cbiAgICB2YXIgbmVlZHNSZW5kZXIgPSBmYWxzZTtcbiAgICB2YXIgbmVlZHNSZW1vdW50ID0gZmFsc2U7XG5cbiAgICBpZiAoY2FuZGlkYXRlVHlwZSAhPT0gbnVsbCkge1xuICAgICAgdmFyIGZhbWlseSA9IHJlc29sdmVGYW1pbHkoY2FuZGlkYXRlVHlwZSk7XG5cbiAgICAgIGlmIChmYW1pbHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoc3RhbGVGYW1pbGllcy5oYXMoZmFtaWx5KSkge1xuICAgICAgICAgIG5lZWRzUmVtb3VudCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodXBkYXRlZEZhbWlsaWVzLmhhcyhmYW1pbHkpKSB7XG4gICAgICAgICAgaWYgKHRhZyA9PT0gQ2xhc3NDb21wb25lbnQpIHtcbiAgICAgICAgICAgIG5lZWRzUmVtb3VudCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5lZWRzUmVuZGVyID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmFpbGVkQm91bmRhcmllcyAhPT0gbnVsbCkge1xuICAgICAgaWYgKGZhaWxlZEJvdW5kYXJpZXMuaGFzKGZpYmVyKSB8fCBhbHRlcm5hdGUgIT09IG51bGwgJiYgZmFpbGVkQm91bmRhcmllcy5oYXMoYWx0ZXJuYXRlKSkge1xuICAgICAgICBuZWVkc1JlbW91bnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuZWVkc1JlbW91bnQpIHtcbiAgICAgIGZpYmVyLl9kZWJ1Z05lZWRzUmVtb3VudCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG5lZWRzUmVtb3VudCB8fCBuZWVkc1JlbmRlcikge1xuICAgICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBTeW5jTGFuZSwgTm9UaW1lc3RhbXApO1xuICAgIH1cblxuICAgIGlmIChjaGlsZCAhPT0gbnVsbCAmJiAhbmVlZHNSZW1vdW50KSB7XG4gICAgICBzY2hlZHVsZUZpYmVyc1dpdGhGYW1pbGllc1JlY3Vyc2l2ZWx5KGNoaWxkLCB1cGRhdGVkRmFtaWxpZXMsIHN0YWxlRmFtaWxpZXMpO1xuICAgIH1cblxuICAgIGlmIChzaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICBzY2hlZHVsZUZpYmVyc1dpdGhGYW1pbGllc1JlY3Vyc2l2ZWx5KHNpYmxpbmcsIHVwZGF0ZWRGYW1pbGllcywgc3RhbGVGYW1pbGllcyk7XG4gICAgfVxuICB9XG59XG5cbnZhciBmaW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2ggPSBmdW5jdGlvbiAocm9vdCwgZmFtaWxpZXMpIHtcbiAge1xuICAgIHZhciBob3N0SW5zdGFuY2VzID0gbmV3IFNldCgpO1xuICAgIHZhciB0eXBlcyA9IG5ldyBTZXQoZmFtaWxpZXMubWFwKGZ1bmN0aW9uIChmYW1pbHkpIHtcbiAgICAgIHJldHVybiBmYW1pbHkuY3VycmVudDtcbiAgICB9KSk7XG4gICAgZmluZEhvc3RJbnN0YW5jZXNGb3JNYXRjaGluZ0ZpYmVyc1JlY3Vyc2l2ZWx5KHJvb3QuY3VycmVudCwgdHlwZXMsIGhvc3RJbnN0YW5jZXMpO1xuICAgIHJldHVybiBob3N0SW5zdGFuY2VzO1xuICB9XG59O1xuXG5mdW5jdGlvbiBmaW5kSG9zdEluc3RhbmNlc0Zvck1hdGNoaW5nRmliZXJzUmVjdXJzaXZlbHkoZmliZXIsIHR5cGVzLCBob3N0SW5zdGFuY2VzKSB7XG4gIHtcbiAgICB2YXIgY2hpbGQgPSBmaWJlci5jaGlsZCxcbiAgICAgICAgc2libGluZyA9IGZpYmVyLnNpYmxpbmcsXG4gICAgICAgIHRhZyA9IGZpYmVyLnRhZyxcbiAgICAgICAgdHlwZSA9IGZpYmVyLnR5cGU7XG4gICAgdmFyIGNhbmRpZGF0ZVR5cGUgPSBudWxsO1xuXG4gICAgc3dpdGNoICh0YWcpIHtcbiAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgICBjYW5kaWRhdGVUeXBlID0gdHlwZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAgY2FuZGlkYXRlVHlwZSA9IHR5cGUucmVuZGVyO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB2YXIgZGlkTWF0Y2ggPSBmYWxzZTtcblxuICAgIGlmIChjYW5kaWRhdGVUeXBlICE9PSBudWxsKSB7XG4gICAgICBpZiAodHlwZXMuaGFzKGNhbmRpZGF0ZVR5cGUpKSB7XG4gICAgICAgIGRpZE1hdGNoID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGlkTWF0Y2gpIHtcbiAgICAgIC8vIFdlIGhhdmUgYSBtYXRjaC4gVGhpcyBvbmx5IGRyaWxscyBkb3duIHRvIHRoZSBjbG9zZXN0IGhvc3QgY29tcG9uZW50cy5cbiAgICAgIC8vIFRoZXJlJ3Mgbm8gbmVlZCB0byBzZWFyY2ggZGVlcGVyIGJlY2F1c2UgZm9yIHRoZSBwdXJwb3NlIG9mIGdpdmluZ1xuICAgICAgLy8gdmlzdWFsIGZlZWRiYWNrLCBcImZsYXNoaW5nXCIgb3V0ZXJtb3N0IHBhcmVudCByZWN0YW5nbGVzIGlzIHN1ZmZpY2llbnQuXG4gICAgICBmaW5kSG9zdEluc3RhbmNlc0ZvckZpYmVyU2hhbGxvd2x5KGZpYmVyLCBob3N0SW5zdGFuY2VzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgdGhlcmUncyBubyBtYXRjaCwgbWF5YmUgdGhlcmUgd2lsbCBiZSBvbmUgZnVydGhlciBkb3duIGluIHRoZSBjaGlsZCB0cmVlLlxuICAgICAgaWYgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgIGZpbmRIb3N0SW5zdGFuY2VzRm9yTWF0Y2hpbmdGaWJlcnNSZWN1cnNpdmVseShjaGlsZCwgdHlwZXMsIGhvc3RJbnN0YW5jZXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICBmaW5kSG9zdEluc3RhbmNlc0Zvck1hdGNoaW5nRmliZXJzUmVjdXJzaXZlbHkoc2libGluZywgdHlwZXMsIGhvc3RJbnN0YW5jZXMpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kSG9zdEluc3RhbmNlc0ZvckZpYmVyU2hhbGxvd2x5KGZpYmVyLCBob3N0SW5zdGFuY2VzKSB7XG4gIHtcbiAgICB2YXIgZm91bmRIb3N0SW5zdGFuY2VzID0gZmluZENoaWxkSG9zdEluc3RhbmNlc0ZvckZpYmVyU2hhbGxvd2x5KGZpYmVyLCBob3N0SW5zdGFuY2VzKTtcblxuICAgIGlmIChmb3VuZEhvc3RJbnN0YW5jZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIElmIHdlIGRpZG4ndCBmaW5kIGFueSBob3N0IGNoaWxkcmVuLCBmYWxsYmFjayB0byBjbG9zZXN0IGhvc3QgcGFyZW50LlxuXG5cbiAgICB2YXIgbm9kZSA9IGZpYmVyO1xuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIHN3aXRjaCAobm9kZS50YWcpIHtcbiAgICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICAgIGhvc3RJbnN0YW5jZXMuYWRkKG5vZGUuc3RhdGVOb2RlKTtcbiAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY2FzZSBIb3N0UG9ydGFsOlxuICAgICAgICAgIGhvc3RJbnN0YW5jZXMuYWRkKG5vZGUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO1xuICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBjYXNlIEhvc3RSb290OlxuICAgICAgICAgIGhvc3RJbnN0YW5jZXMuYWRkKG5vZGUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGUucmV0dXJuID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdG8gcmVhY2ggcm9vdCBmaXJzdC4nKTtcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kQ2hpbGRIb3N0SW5zdGFuY2VzRm9yRmliZXJTaGFsbG93bHkoZmliZXIsIGhvc3RJbnN0YW5jZXMpIHtcbiAge1xuICAgIHZhciBub2RlID0gZmliZXI7XG4gICAgdmFyIGZvdW5kSG9zdEluc3RhbmNlcyA9IGZhbHNlO1xuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmIChub2RlLnRhZyA9PT0gSG9zdENvbXBvbmVudCkge1xuICAgICAgICAvLyBXZSBnb3QgYSBtYXRjaC5cbiAgICAgICAgZm91bmRIb3N0SW5zdGFuY2VzID0gdHJ1ZTtcbiAgICAgICAgaG9zdEluc3RhbmNlcy5hZGQobm9kZS5zdGF0ZU5vZGUpOyAvLyBUaGVyZSBtYXkgc3RpbGwgYmUgbW9yZSwgc28ga2VlcCBzZWFyY2hpbmcuXG4gICAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlID09PSBmaWJlcikge1xuICAgICAgICByZXR1cm4gZm91bmRIb3N0SW5zdGFuY2VzO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAobm9kZS5zaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgIGlmIChub2RlLnJldHVybiA9PT0gbnVsbCB8fCBub2RlLnJldHVybiA9PT0gZmliZXIpIHtcbiAgICAgICAgICByZXR1cm4gZm91bmRIb3N0SW5zdGFuY2VzO1xuICAgICAgICB9XG5cbiAgICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgICBub2RlID0gbm9kZS5zaWJsaW5nO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxudmFyIGhhc0JhZE1hcFBvbHlmaWxsO1xuXG57XG4gIGhhc0JhZE1hcFBvbHlmaWxsID0gZmFsc2U7XG5cbiAgdHJ5IHtcbiAgICB2YXIgbm9uRXh0ZW5zaWJsZU9iamVjdCA9IE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSk7XG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tbmV3ICovXG5cbiAgICBuZXcgTWFwKFtbbm9uRXh0ZW5zaWJsZU9iamVjdCwgbnVsbF1dKTtcbiAgICBuZXcgU2V0KFtub25FeHRlbnNpYmxlT2JqZWN0XSk7XG4gICAgLyogZXNsaW50LWVuYWJsZSBuby1uZXcgKi9cbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIFRPRE86IENvbnNpZGVyIHdhcm5pbmcgYWJvdXQgYmFkIHBvbHlmaWxsc1xuICAgIGhhc0JhZE1hcFBvbHlmaWxsID0gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBGaWJlck5vZGUodGFnLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSkge1xuICAvLyBJbnN0YW5jZVxuICB0aGlzLnRhZyA9IHRhZztcbiAgdGhpcy5rZXkgPSBrZXk7XG4gIHRoaXMuZWxlbWVudFR5cGUgPSBudWxsO1xuICB0aGlzLnR5cGUgPSBudWxsO1xuICB0aGlzLnN0YXRlTm9kZSA9IG51bGw7IC8vIEZpYmVyXG5cbiAgdGhpcy5yZXR1cm4gPSBudWxsO1xuICB0aGlzLmNoaWxkID0gbnVsbDtcbiAgdGhpcy5zaWJsaW5nID0gbnVsbDtcbiAgdGhpcy5pbmRleCA9IDA7XG4gIHRoaXMucmVmID0gbnVsbDtcbiAgdGhpcy5wZW5kaW5nUHJvcHMgPSBwZW5kaW5nUHJvcHM7XG4gIHRoaXMubWVtb2l6ZWRQcm9wcyA9IG51bGw7XG4gIHRoaXMudXBkYXRlUXVldWUgPSBudWxsO1xuICB0aGlzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICB0aGlzLmRlcGVuZGVuY2llcyA9IG51bGw7XG4gIHRoaXMubW9kZSA9IG1vZGU7IC8vIEVmZmVjdHNcblxuICB0aGlzLmZsYWdzID0gTm9GbGFncztcbiAgdGhpcy5zdWJ0cmVlRmxhZ3MgPSBOb0ZsYWdzO1xuICB0aGlzLmRlbGV0aW9ucyA9IG51bGw7XG4gIHRoaXMubGFuZXMgPSBOb0xhbmVzO1xuICB0aGlzLmNoaWxkTGFuZXMgPSBOb0xhbmVzO1xuICB0aGlzLmFsdGVybmF0ZSA9IG51bGw7XG5cbiAge1xuICAgIC8vIE5vdGU6IFRoZSBmb2xsb3dpbmcgaXMgZG9uZSB0byBhdm9pZCBhIHY4IHBlcmZvcm1hbmNlIGNsaWZmLlxuICAgIC8vXG4gICAgLy8gSW5pdGlhbGl6aW5nIHRoZSBmaWVsZHMgYmVsb3cgdG8gc21pcyBhbmQgbGF0ZXIgdXBkYXRpbmcgdGhlbSB3aXRoXG4gICAgLy8gZG91YmxlIHZhbHVlcyB3aWxsIGNhdXNlIEZpYmVycyB0byBlbmQgdXAgaGF2aW5nIHNlcGFyYXRlIHNoYXBlcy5cbiAgICAvLyBUaGlzIGJlaGF2aW9yL2J1ZyBoYXMgc29tZXRoaW5nIHRvIGRvIHdpdGggT2JqZWN0LnByZXZlbnRFeHRlbnNpb24oKS5cbiAgICAvLyBGb3J0dW5hdGVseSB0aGlzIG9ubHkgaW1wYWN0cyBERVYgYnVpbGRzLlxuICAgIC8vIFVuZm9ydHVuYXRlbHkgaXQgbWFrZXMgUmVhY3QgdW51c2FibHkgc2xvdyBmb3Igc29tZSBhcHBsaWNhdGlvbnMuXG4gICAgLy8gVG8gd29yayBhcm91bmQgdGhpcywgaW5pdGlhbGl6ZSB0aGUgZmllbGRzIGJlbG93IHdpdGggZG91Ymxlcy5cbiAgICAvL1xuICAgIC8vIExlYXJuIG1vcmUgYWJvdXQgdGhpcyBoZXJlOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTQzNjVcbiAgICAvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD04NTM4XG4gICAgdGhpcy5hY3R1YWxEdXJhdGlvbiA9IE51bWJlci5OYU47XG4gICAgdGhpcy5hY3R1YWxTdGFydFRpbWUgPSBOdW1iZXIuTmFOO1xuICAgIHRoaXMuc2VsZkJhc2VEdXJhdGlvbiA9IE51bWJlci5OYU47XG4gICAgdGhpcy50cmVlQmFzZUR1cmF0aW9uID0gTnVtYmVyLk5hTjsgLy8gSXQncyBva2F5IHRvIHJlcGxhY2UgdGhlIGluaXRpYWwgZG91YmxlcyB3aXRoIHNtaXMgYWZ0ZXIgaW5pdGlhbGl6YXRpb24uXG4gICAgLy8gVGhpcyB3b24ndCB0cmlnZ2VyIHRoZSBwZXJmb3JtYW5jZSBjbGlmZiBtZW50aW9uZWQgYWJvdmUsXG4gICAgLy8gYW5kIGl0IHNpbXBsaWZpZXMgb3RoZXIgcHJvZmlsZXIgY29kZSAoaW5jbHVkaW5nIERldlRvb2xzKS5cblxuICAgIHRoaXMuYWN0dWFsRHVyYXRpb24gPSAwO1xuICAgIHRoaXMuYWN0dWFsU3RhcnRUaW1lID0gLTE7XG4gICAgdGhpcy5zZWxmQmFzZUR1cmF0aW9uID0gMDtcbiAgICB0aGlzLnRyZWVCYXNlRHVyYXRpb24gPSAwO1xuICB9XG5cbiAge1xuICAgIC8vIFRoaXMgaXNuJ3QgZGlyZWN0bHkgdXNlZCBidXQgaXMgaGFuZHkgZm9yIGRlYnVnZ2luZyBpbnRlcm5hbHM6XG4gICAgdGhpcy5fZGVidWdTb3VyY2UgPSBudWxsO1xuICAgIHRoaXMuX2RlYnVnT3duZXIgPSBudWxsO1xuICAgIHRoaXMuX2RlYnVnTmVlZHNSZW1vdW50ID0gZmFsc2U7XG4gICAgdGhpcy5fZGVidWdIb29rVHlwZXMgPSBudWxsO1xuXG4gICAgaWYgKCFoYXNCYWRNYXBQb2x5ZmlsbCAmJiB0eXBlb2YgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnModGhpcyk7XG4gICAgfVxuICB9XG59IC8vIFRoaXMgaXMgYSBjb25zdHJ1Y3RvciBmdW5jdGlvbiwgcmF0aGVyIHRoYW4gYSBQT0pPIGNvbnN0cnVjdG9yLCBzdGlsbFxuLy8gcGxlYXNlIGVuc3VyZSB3ZSBkbyB0aGUgZm9sbG93aW5nOlxuLy8gMSkgTm9ib2R5IHNob3VsZCBhZGQgYW55IGluc3RhbmNlIG1ldGhvZHMgb24gdGhpcy4gSW5zdGFuY2UgbWV0aG9kcyBjYW4gYmVcbi8vICAgIG1vcmUgZGlmZmljdWx0IHRvIHByZWRpY3Qgd2hlbiB0aGV5IGdldCBvcHRpbWl6ZWQgYW5kIHRoZXkgYXJlIGFsbW9zdFxuLy8gICAgbmV2ZXIgaW5saW5lZCBwcm9wZXJseSBpbiBzdGF0aWMgY29tcGlsZXJzLlxuLy8gMikgTm9ib2R5IHNob3VsZCByZWx5IG9uIGBpbnN0YW5jZW9mIEZpYmVyYCBmb3IgdHlwZSB0ZXN0aW5nLiBXZSBzaG91bGRcbi8vICAgIGFsd2F5cyBrbm93IHdoZW4gaXQgaXMgYSBmaWJlci5cbi8vIDMpIFdlIG1pZ2h0IHdhbnQgdG8gZXhwZXJpbWVudCB3aXRoIHVzaW5nIG51bWVyaWMga2V5cyBzaW5jZSB0aGV5IGFyZSBlYXNpZXJcbi8vICAgIHRvIG9wdGltaXplIGluIGEgbm9uLUpJVCBlbnZpcm9ubWVudC5cbi8vIDQpIFdlIGNhbiBlYXNpbHkgZ28gZnJvbSBhIGNvbnN0cnVjdG9yIHRvIGEgY3JlYXRlRmliZXIgb2JqZWN0IGxpdGVyYWwgaWYgdGhhdFxuLy8gICAgaXMgZmFzdGVyLlxuLy8gNSkgSXQgc2hvdWxkIGJlIGVhc3kgdG8gcG9ydCB0aGlzIHRvIGEgQyBzdHJ1Y3QgYW5kIGtlZXAgYSBDIGltcGxlbWVudGF0aW9uXG4vLyAgICBjb21wYXRpYmxlLlxuXG5cbnZhciBjcmVhdGVGaWJlciA9IGZ1bmN0aW9uICh0YWcsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlKSB7XG4gIC8vICRGbG93Rml4TWU6IHRoZSBzaGFwZXMgYXJlIGV4YWN0IGhlcmUgYnV0IEZsb3cgZG9lc24ndCBsaWtlIGNvbnN0cnVjdG9yc1xuICByZXR1cm4gbmV3IEZpYmVyTm9kZSh0YWcsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlKTtcbn07XG5cbmZ1bmN0aW9uIHNob3VsZENvbnN0cnVjdCQxKENvbXBvbmVudCkge1xuICB2YXIgcHJvdG90eXBlID0gQ29tcG9uZW50LnByb3RvdHlwZTtcbiAgcmV0dXJuICEhKHByb3RvdHlwZSAmJiBwcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCk7XG59XG5cbmZ1bmN0aW9uIGlzU2ltcGxlRnVuY3Rpb25Db21wb25lbnQodHlwZSkge1xuICByZXR1cm4gdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicgJiYgIXNob3VsZENvbnN0cnVjdCQxKHR5cGUpICYmIHR5cGUuZGVmYXVsdFByb3BzID09PSB1bmRlZmluZWQ7XG59XG5mdW5jdGlvbiByZXNvbHZlTGF6eUNvbXBvbmVudFRhZyhDb21wb25lbnQpIHtcbiAgaWYgKHR5cGVvZiBDb21wb25lbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gc2hvdWxkQ29uc3RydWN0JDEoQ29tcG9uZW50KSA/IENsYXNzQ29tcG9uZW50IDogRnVuY3Rpb25Db21wb25lbnQ7XG4gIH0gZWxzZSBpZiAoQ29tcG9uZW50ICE9PSB1bmRlZmluZWQgJiYgQ29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgdmFyICQkdHlwZW9mID0gQ29tcG9uZW50LiQkdHlwZW9mO1xuXG4gICAgaWYgKCQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFKSB7XG4gICAgICByZXR1cm4gRm9yd2FyZFJlZjtcbiAgICB9XG5cbiAgICBpZiAoJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSkge1xuICAgICAgcmV0dXJuIE1lbW9Db21wb25lbnQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIEluZGV0ZXJtaW5hdGVDb21wb25lbnQ7XG59IC8vIFRoaXMgaXMgdXNlZCB0byBjcmVhdGUgYW4gYWx0ZXJuYXRlIGZpYmVyIHRvIGRvIHdvcmsgb24uXG5cbmZ1bmN0aW9uIGNyZWF0ZVdvcmtJblByb2dyZXNzKGN1cnJlbnQsIHBlbmRpbmdQcm9wcykge1xuICB2YXIgd29ya0luUHJvZ3Jlc3MgPSBjdXJyZW50LmFsdGVybmF0ZTtcblxuICBpZiAod29ya0luUHJvZ3Jlc3MgPT09IG51bGwpIHtcbiAgICAvLyBXZSB1c2UgYSBkb3VibGUgYnVmZmVyaW5nIHBvb2xpbmcgdGVjaG5pcXVlIGJlY2F1c2Ugd2Uga25vdyB0aGF0IHdlJ2xsXG4gICAgLy8gb25seSBldmVyIG5lZWQgYXQgbW9zdCB0d28gdmVyc2lvbnMgb2YgYSB0cmVlLiBXZSBwb29sIHRoZSBcIm90aGVyXCIgdW51c2VkXG4gICAgLy8gbm9kZSB0aGF0IHdlJ3JlIGZyZWUgdG8gcmV1c2UuIFRoaXMgaXMgbGF6aWx5IGNyZWF0ZWQgdG8gYXZvaWQgYWxsb2NhdGluZ1xuICAgIC8vIGV4dHJhIG9iamVjdHMgZm9yIHRoaW5ncyB0aGF0IGFyZSBuZXZlciB1cGRhdGVkLiBJdCBhbHNvIGFsbG93IHVzIHRvXG4gICAgLy8gcmVjbGFpbSB0aGUgZXh0cmEgbWVtb3J5IGlmIG5lZWRlZC5cbiAgICB3b3JrSW5Qcm9ncmVzcyA9IGNyZWF0ZUZpYmVyKGN1cnJlbnQudGFnLCBwZW5kaW5nUHJvcHMsIGN1cnJlbnQua2V5LCBjdXJyZW50Lm1vZGUpO1xuICAgIHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlID0gY3VycmVudC5lbGVtZW50VHlwZTtcbiAgICB3b3JrSW5Qcm9ncmVzcy50eXBlID0gY3VycmVudC50eXBlO1xuICAgIHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSA9IGN1cnJlbnQuc3RhdGVOb2RlO1xuXG4gICAge1xuICAgICAgLy8gREVWLW9ubHkgZmllbGRzXG4gICAgICB3b3JrSW5Qcm9ncmVzcy5fZGVidWdTb3VyY2UgPSBjdXJyZW50Ll9kZWJ1Z1NvdXJjZTtcbiAgICAgIHdvcmtJblByb2dyZXNzLl9kZWJ1Z093bmVyID0gY3VycmVudC5fZGVidWdPd25lcjtcbiAgICAgIHdvcmtJblByb2dyZXNzLl9kZWJ1Z0hvb2tUeXBlcyA9IGN1cnJlbnQuX2RlYnVnSG9va1R5cGVzO1xuICAgIH1cblxuICAgIHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZSA9IGN1cnJlbnQ7XG4gICAgY3VycmVudC5hbHRlcm5hdGUgPSB3b3JrSW5Qcm9ncmVzcztcbiAgfSBlbHNlIHtcbiAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMgPSBwZW5kaW5nUHJvcHM7IC8vIE5lZWRlZCBiZWNhdXNlIEJsb2NrcyBzdG9yZSBkYXRhIG9uIHR5cGUuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcy50eXBlID0gY3VycmVudC50eXBlOyAvLyBXZSBhbHJlYWR5IGhhdmUgYW4gYWx0ZXJuYXRlLlxuICAgIC8vIFJlc2V0IHRoZSBlZmZlY3QgdGFnLlxuXG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgPSBOb0ZsYWdzOyAvLyBUaGUgZWZmZWN0cyBhcmUgbm8gbG9uZ2VyIHZhbGlkLlxuXG4gICAgd29ya0luUHJvZ3Jlc3Muc3VidHJlZUZsYWdzID0gTm9GbGFncztcbiAgICB3b3JrSW5Qcm9ncmVzcy5kZWxldGlvbnMgPSBudWxsO1xuXG4gICAge1xuICAgICAgLy8gV2UgaW50ZW50aW9uYWxseSByZXNldCwgcmF0aGVyIHRoYW4gY29weSwgYWN0dWFsRHVyYXRpb24gJiBhY3R1YWxTdGFydFRpbWUuXG4gICAgICAvLyBUaGlzIHByZXZlbnRzIHRpbWUgZnJvbSBlbmRsZXNzbHkgYWNjdW11bGF0aW5nIGluIG5ldyBjb21taXRzLlxuICAgICAgLy8gVGhpcyBoYXMgdGhlIGRvd25zaWRlIG9mIHJlc2V0dGluZyB2YWx1ZXMgZm9yIGRpZmZlcmVudCBwcmlvcml0eSByZW5kZXJzLFxuICAgICAgLy8gQnV0IHdvcmtzIGZvciB5aWVsZGluZyAodGhlIGNvbW1vbiBjYXNlKSBhbmQgc2hvdWxkIHN1cHBvcnQgcmVzdW1pbmcuXG4gICAgICB3b3JrSW5Qcm9ncmVzcy5hY3R1YWxEdXJhdGlvbiA9IDA7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5hY3R1YWxTdGFydFRpbWUgPSAtMTtcbiAgICB9XG4gIH0gLy8gUmVzZXQgYWxsIGVmZmVjdHMgZXhjZXB0IHN0YXRpYyBvbmVzLlxuICAvLyBTdGF0aWMgZWZmZWN0cyBhcmUgbm90IHNwZWNpZmljIHRvIGEgcmVuZGVyLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgPSBjdXJyZW50LmZsYWdzICYgU3RhdGljTWFzaztcbiAgd29ya0luUHJvZ3Jlc3MuY2hpbGRMYW5lcyA9IGN1cnJlbnQuY2hpbGRMYW5lcztcbiAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBjdXJyZW50LmxhbmVzO1xuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGN1cnJlbnQuY2hpbGQ7XG4gIHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHMgPSBjdXJyZW50Lm1lbW9pemVkUHJvcHM7XG4gIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG4gIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gY3VycmVudC51cGRhdGVRdWV1ZTsgLy8gQ2xvbmUgdGhlIGRlcGVuZGVuY2llcyBvYmplY3QuIFRoaXMgaXMgbXV0YXRlZCBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZSwgc29cbiAgLy8gaXQgY2Fubm90IGJlIHNoYXJlZCB3aXRoIHRoZSBjdXJyZW50IGZpYmVyLlxuXG4gIHZhciBjdXJyZW50RGVwZW5kZW5jaWVzID0gY3VycmVudC5kZXBlbmRlbmNpZXM7XG4gIHdvcmtJblByb2dyZXNzLmRlcGVuZGVuY2llcyA9IGN1cnJlbnREZXBlbmRlbmNpZXMgPT09IG51bGwgPyBudWxsIDoge1xuICAgIGxhbmVzOiBjdXJyZW50RGVwZW5kZW5jaWVzLmxhbmVzLFxuICAgIGZpcnN0Q29udGV4dDogY3VycmVudERlcGVuZGVuY2llcy5maXJzdENvbnRleHRcbiAgfTsgLy8gVGhlc2Ugd2lsbCBiZSBvdmVycmlkZGVuIGR1cmluZyB0aGUgcGFyZW50J3MgcmVjb25jaWxpYXRpb25cblxuICB3b3JrSW5Qcm9ncmVzcy5zaWJsaW5nID0gY3VycmVudC5zaWJsaW5nO1xuICB3b3JrSW5Qcm9ncmVzcy5pbmRleCA9IGN1cnJlbnQuaW5kZXg7XG4gIHdvcmtJblByb2dyZXNzLnJlZiA9IGN1cnJlbnQucmVmO1xuXG4gIHtcbiAgICB3b3JrSW5Qcm9ncmVzcy5zZWxmQmFzZUR1cmF0aW9uID0gY3VycmVudC5zZWxmQmFzZUR1cmF0aW9uO1xuICAgIHdvcmtJblByb2dyZXNzLnRyZWVCYXNlRHVyYXRpb24gPSBjdXJyZW50LnRyZWVCYXNlRHVyYXRpb247XG4gIH1cblxuICB7XG4gICAgd29ya0luUHJvZ3Jlc3MuX2RlYnVnTmVlZHNSZW1vdW50ID0gY3VycmVudC5fZGVidWdOZWVkc1JlbW91bnQ7XG5cbiAgICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgICAgY2FzZSBJbmRldGVybWluYXRlQ29tcG9uZW50OlxuICAgICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyhjdXJyZW50LnR5cGUpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IHJlc29sdmVDbGFzc0ZvckhvdFJlbG9hZGluZyhjdXJyZW50LnR5cGUpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlID0gcmVzb2x2ZUZvcndhcmRSZWZGb3JIb3RSZWxvYWRpbmcoY3VycmVudC50eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzO1xufSAvLyBVc2VkIHRvIHJldXNlIGEgRmliZXIgZm9yIGEgc2Vjb25kIHBhc3MuXG5cbmZ1bmN0aW9uIHJlc2V0V29ya0luUHJvZ3Jlc3Mod29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIC8vIFRoaXMgcmVzZXRzIHRoZSBGaWJlciB0byB3aGF0IGNyZWF0ZUZpYmVyIG9yIGNyZWF0ZVdvcmtJblByb2dyZXNzIHdvdWxkXG4gIC8vIGhhdmUgc2V0IHRoZSB2YWx1ZXMgdG8gYmVmb3JlIGR1cmluZyB0aGUgZmlyc3QgcGFzcy4gSWRlYWxseSB0aGlzIHdvdWxkbid0XG4gIC8vIGJlIG5lY2Vzc2FyeSBidXQgdW5mb3J0dW5hdGVseSBtYW55IGNvZGUgcGF0aHMgcmVhZHMgZnJvbSB0aGUgd29ya0luUHJvZ3Jlc3NcbiAgLy8gd2hlbiB0aGV5IHNob3VsZCBiZSByZWFkaW5nIGZyb20gY3VycmVudCBhbmQgd3JpdGluZyB0byB3b3JrSW5Qcm9ncmVzcy5cbiAgLy8gV2UgYXNzdW1lIHBlbmRpbmdQcm9wcywgaW5kZXgsIGtleSwgcmVmLCByZXR1cm4gYXJlIHN0aWxsIHVudG91Y2hlZCB0b1xuICAvLyBhdm9pZCBkb2luZyBhbm90aGVyIHJlY29uY2lsaWF0aW9uLlxuICAvLyBSZXNldCB0aGUgZWZmZWN0IGZsYWdzIGJ1dCBrZWVwIGFueSBQbGFjZW1lbnQgdGFncywgc2luY2UgdGhhdCdzIHNvbWV0aGluZ1xuICAvLyB0aGF0IGNoaWxkIGZpYmVyIGlzIHNldHRpbmcsIG5vdCB0aGUgcmVjb25jaWxpYXRpb24uXG4gIHdvcmtJblByb2dyZXNzLmZsYWdzICY9IFN0YXRpY01hc2sgfCBQbGFjZW1lbnQ7IC8vIFRoZSBlZmZlY3RzIGFyZSBubyBsb25nZXIgdmFsaWQuXG5cbiAgdmFyIGN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcy5hbHRlcm5hdGU7XG5cbiAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAvLyBSZXNldCB0byBjcmVhdGVGaWJlcidzIGluaXRpYWwgdmFsdWVzLlxuICAgIHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMgPSBOb0xhbmVzO1xuICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gcmVuZGVyTGFuZXM7XG4gICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzLnN1YnRyZWVGbGFncyA9IE5vRmxhZ3M7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcyA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzLmRlcGVuZGVuY2llcyA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID0gbnVsbDtcblxuICAgIHtcbiAgICAgIC8vIE5vdGU6IFdlIGRvbid0IHJlc2V0IHRoZSBhY3R1YWxUaW1lIGNvdW50cy4gSXQncyB1c2VmdWwgdG8gYWNjdW11bGF0ZVxuICAgICAgLy8gYWN0dWFsIHRpbWUgYWNyb3NzIG11bHRpcGxlIHJlbmRlciBwYXNzZXMuXG4gICAgICB3b3JrSW5Qcm9ncmVzcy5zZWxmQmFzZUR1cmF0aW9uID0gMDtcbiAgICAgIHdvcmtJblByb2dyZXNzLnRyZWVCYXNlRHVyYXRpb24gPSAwO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBSZXNldCB0byB0aGUgY2xvbmVkIHZhbHVlcyB0aGF0IGNyZWF0ZVdvcmtJblByb2dyZXNzIHdvdWxkJ3ZlLlxuICAgIHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMgPSBjdXJyZW50LmNoaWxkTGFuZXM7XG4gICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBjdXJyZW50LmxhbmVzO1xuICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gY3VycmVudC5jaGlsZDtcbiAgICB3b3JrSW5Qcm9ncmVzcy5zdWJ0cmVlRmxhZ3MgPSBOb0ZsYWdzO1xuICAgIHdvcmtJblByb2dyZXNzLmRlbGV0aW9ucyA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcyA9IGN1cnJlbnQubWVtb2l6ZWRQcm9wcztcbiAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gY3VycmVudC51cGRhdGVRdWV1ZTsgLy8gTmVlZGVkIGJlY2F1c2UgQmxvY2tzIHN0b3JlIGRhdGEgb24gdHlwZS5cblxuICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSBjdXJyZW50LnR5cGU7IC8vIENsb25lIHRoZSBkZXBlbmRlbmNpZXMgb2JqZWN0LiBUaGlzIGlzIG11dGF0ZWQgZHVyaW5nIHRoZSByZW5kZXIgcGhhc2UsIHNvXG4gICAgLy8gaXQgY2Fubm90IGJlIHNoYXJlZCB3aXRoIHRoZSBjdXJyZW50IGZpYmVyLlxuXG4gICAgdmFyIGN1cnJlbnREZXBlbmRlbmNpZXMgPSBjdXJyZW50LmRlcGVuZGVuY2llcztcbiAgICB3b3JrSW5Qcm9ncmVzcy5kZXBlbmRlbmNpZXMgPSBjdXJyZW50RGVwZW5kZW5jaWVzID09PSBudWxsID8gbnVsbCA6IHtcbiAgICAgIGxhbmVzOiBjdXJyZW50RGVwZW5kZW5jaWVzLmxhbmVzLFxuICAgICAgZmlyc3RDb250ZXh0OiBjdXJyZW50RGVwZW5kZW5jaWVzLmZpcnN0Q29udGV4dFxuICAgIH07XG5cbiAgICB7XG4gICAgICAvLyBOb3RlOiBXZSBkb24ndCByZXNldCB0aGUgYWN0dWFsVGltZSBjb3VudHMuIEl0J3MgdXNlZnVsIHRvIGFjY3VtdWxhdGVcbiAgICAgIC8vIGFjdHVhbCB0aW1lIGFjcm9zcyBtdWx0aXBsZSByZW5kZXIgcGFzc2VzLlxuICAgICAgd29ya0luUHJvZ3Jlc3Muc2VsZkJhc2VEdXJhdGlvbiA9IGN1cnJlbnQuc2VsZkJhc2VEdXJhdGlvbjtcbiAgICAgIHdvcmtJblByb2dyZXNzLnRyZWVCYXNlRHVyYXRpb24gPSBjdXJyZW50LnRyZWVCYXNlRHVyYXRpb247XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzO1xufVxuZnVuY3Rpb24gY3JlYXRlSG9zdFJvb3RGaWJlcih0YWcsIGlzU3RyaWN0TW9kZSwgY29uY3VycmVudFVwZGF0ZXNCeURlZmF1bHRPdmVycmlkZSkge1xuICB2YXIgbW9kZTtcblxuICBpZiAodGFnID09PSBDb25jdXJyZW50Um9vdCkge1xuICAgIG1vZGUgPSBDb25jdXJyZW50TW9kZTtcblxuICAgIGlmIChpc1N0cmljdE1vZGUgPT09IHRydWUpIHtcbiAgICAgIG1vZGUgfD0gU3RyaWN0TGVnYWN5TW9kZTtcblxuICAgICAge1xuICAgICAgICBtb2RlIHw9IFN0cmljdEVmZmVjdHNNb2RlO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBtb2RlID0gTm9Nb2RlO1xuICB9XG5cbiAgaWYgKCBpc0RldlRvb2xzUHJlc2VudCkge1xuICAgIC8vIEFsd2F5cyBjb2xsZWN0IHByb2ZpbGUgdGltaW5ncyB3aGVuIERldlRvb2xzIGFyZSBwcmVzZW50LlxuICAgIC8vIFRoaXMgZW5hYmxlcyBEZXZUb29scyB0byBzdGFydCBjYXB0dXJpbmcgdGltaW5nIGF0IGFueSBwb2ludFx1MjAxM1xuICAgIC8vIFdpdGhvdXQgc29tZSBub2RlcyBpbiB0aGUgdHJlZSBoYXZpbmcgZW1wdHkgYmFzZSB0aW1lcy5cbiAgICBtb2RlIHw9IFByb2ZpbGVNb2RlO1xuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUZpYmVyKEhvc3RSb290LCBudWxsLCBudWxsLCBtb2RlKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVR5cGVBbmRQcm9wcyh0eXBlLCAvLyBSZWFjdCRFbGVtZW50VHlwZVxua2V5LCBwZW5kaW5nUHJvcHMsIG93bmVyLCBtb2RlLCBsYW5lcykge1xuICB2YXIgZmliZXJUYWcgPSBJbmRldGVybWluYXRlQ29tcG9uZW50OyAvLyBUaGUgcmVzb2x2ZWQgdHlwZSBpcyBzZXQgaWYgd2Uga25vdyB3aGF0IHRoZSBmaW5hbCB0eXBlIHdpbGwgYmUuIEkuZS4gaXQncyBub3QgbGF6eS5cblxuICB2YXIgcmVzb2x2ZWRUeXBlID0gdHlwZTtcblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoc2hvdWxkQ29uc3RydWN0JDEodHlwZSkpIHtcbiAgICAgIGZpYmVyVGFnID0gQ2xhc3NDb21wb25lbnQ7XG5cbiAgICAgIHtcbiAgICAgICAgcmVzb2x2ZWRUeXBlID0gcmVzb2x2ZUNsYXNzRm9ySG90UmVsb2FkaW5nKHJlc29sdmVkVHlwZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHtcbiAgICAgICAgcmVzb2x2ZWRUeXBlID0gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKHJlc29sdmVkVHlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIGZpYmVyVGFnID0gSG9zdENvbXBvbmVudDtcbiAgfSBlbHNlIHtcbiAgICBnZXRUYWc6IHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICByZXR1cm4gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQocGVuZGluZ1Byb3BzLmNoaWxkcmVuLCBtb2RlLCBsYW5lcywga2V5KTtcblxuICAgICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgICAgICBmaWJlclRhZyA9IE1vZGU7XG4gICAgICAgIG1vZGUgfD0gU3RyaWN0TGVnYWN5TW9kZTtcblxuICAgICAgICBpZiAoIChtb2RlICYgQ29uY3VycmVudE1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICAvLyBTdHJpY3QgZWZmZWN0cyBzaG91bGQgbmV2ZXIgcnVuIG9uIGxlZ2FjeSByb290c1xuICAgICAgICAgIG1vZGUgfD0gU3RyaWN0RWZmZWN0c01vZGU7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICByZXR1cm4gY3JlYXRlRmliZXJGcm9tUHJvZmlsZXIocGVuZGluZ1Byb3BzLCBtb2RlLCBsYW5lcywga2V5KTtcblxuICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICByZXR1cm4gY3JlYXRlRmliZXJGcm9tU3VzcGVuc2UocGVuZGluZ1Byb3BzLCBtb2RlLCBsYW5lcywga2V5KTtcblxuICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICAgIHJldHVybiBjcmVhdGVGaWJlckZyb21TdXNwZW5zZUxpc3QocGVuZGluZ1Byb3BzLCBtb2RlLCBsYW5lcywga2V5KTtcblxuICAgICAgY2FzZSBSRUFDVF9PRkZTQ1JFRU5fVFlQRTpcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUZpYmVyRnJvbU9mZnNjcmVlbihwZW5kaW5nUHJvcHMsIG1vZGUsIGxhbmVzLCBrZXkpO1xuXG4gICAgICBjYXNlIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRTpcblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG5cbiAgICAgIGNhc2UgUkVBQ1RfU0NPUEVfVFlQRTpcblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG5cbiAgICAgIGNhc2UgUkVBQ1RfQ0FDSEVfVFlQRTpcblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG5cbiAgICAgIGNhc2UgUkVBQ1RfVFJBQ0lOR19NQVJLRVJfVFlQRTpcblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG5cbiAgICAgIGNhc2UgUkVBQ1RfREVCVUdfVFJBQ0lOR19NT0RFX1RZUEU6XG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiB0eXBlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9QUk9WSURFUl9UWVBFOlxuICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gQ29udGV4dFByb3ZpZGVyO1xuICAgICAgICAgICAgICAgIGJyZWFrIGdldFRhZztcblxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgY29uc3VtZXJcbiAgICAgICAgICAgICAgICBmaWJlclRhZyA9IENvbnRleHRDb25zdW1lcjtcbiAgICAgICAgICAgICAgICBicmVhayBnZXRUYWc7XG5cbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gRm9yd2FyZFJlZjtcblxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHJlc29sdmVkVHlwZSA9IHJlc29sdmVGb3J3YXJkUmVmRm9ySG90UmVsb2FkaW5nKHJlc29sdmVkVHlwZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWsgZ2V0VGFnO1xuXG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gTWVtb0NvbXBvbmVudDtcbiAgICAgICAgICAgICAgICBicmVhayBnZXRUYWc7XG5cbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgICAgZmliZXJUYWcgPSBMYXp5Q29tcG9uZW50O1xuICAgICAgICAgICAgICAgIHJlc29sdmVkVHlwZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWsgZ2V0VGFnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBpbmZvID0gJyc7XG5cbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiB0eXBlICE9PSBudWxsICYmIE9iamVjdC5rZXlzKHR5cGUpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICBpbmZvICs9ICcgWW91IGxpa2VseSBmb3Jnb3QgdG8gZXhwb3J0IHlvdXIgY29tcG9uZW50IGZyb20gdGhlIGZpbGUgJyArIFwiaXQncyBkZWZpbmVkIGluLCBvciB5b3UgbWlnaHQgaGF2ZSBtaXhlZCB1cCBkZWZhdWx0IGFuZCBcIiArICduYW1lZCBpbXBvcnRzLic7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBvd25lck5hbWUgPSBvd25lciA/IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIob3duZXIpIDogbnVsbDtcblxuICAgICAgICAgICAgaWYgKG93bmVyTmFtZSkge1xuICAgICAgICAgICAgICBpbmZvICs9ICdcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG93bmVyTmFtZSArICdgLic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbGVtZW50IHR5cGUgaXMgaW52YWxpZDogZXhwZWN0ZWQgYSBzdHJpbmcgKGZvciBidWlsdC1pbiAnICsgJ2NvbXBvbmVudHMpIG9yIGEgY2xhc3MvZnVuY3Rpb24gKGZvciBjb21wb3NpdGUgY29tcG9uZW50cykgJyArIChcImJ1dCBnb3Q6IFwiICsgKHR5cGUgPT0gbnVsbCA/IHR5cGUgOiB0eXBlb2YgdHlwZSkgKyBcIi5cIiArIGluZm8pKTtcbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBmaWJlciA9IGNyZWF0ZUZpYmVyKGZpYmVyVGFnLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSk7XG4gIGZpYmVyLmVsZW1lbnRUeXBlID0gdHlwZTtcbiAgZmliZXIudHlwZSA9IHJlc29sdmVkVHlwZTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcblxuICB7XG4gICAgZmliZXIuX2RlYnVnT3duZXIgPSBvd25lcjtcbiAgfVxuXG4gIHJldHVybiBmaWJlcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbUVsZW1lbnQoZWxlbWVudCwgbW9kZSwgbGFuZXMpIHtcbiAgdmFyIG93bmVyID0gbnVsbDtcblxuICB7XG4gICAgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgfVxuXG4gIHZhciB0eXBlID0gZWxlbWVudC50eXBlO1xuICB2YXIga2V5ID0gZWxlbWVudC5rZXk7XG4gIHZhciBwZW5kaW5nUHJvcHMgPSBlbGVtZW50LnByb3BzO1xuICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlckZyb21UeXBlQW5kUHJvcHModHlwZSwga2V5LCBwZW5kaW5nUHJvcHMsIG93bmVyLCBtb2RlLCBsYW5lcyk7XG5cbiAge1xuICAgIGZpYmVyLl9kZWJ1Z1NvdXJjZSA9IGVsZW1lbnQuX3NvdXJjZTtcbiAgICBmaWJlci5fZGVidWdPd25lciA9IGVsZW1lbnQuX293bmVyO1xuICB9XG5cbiAgcmV0dXJuIGZpYmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoZWxlbWVudHMsIG1vZGUsIGxhbmVzLCBrZXkpIHtcbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXIoRnJhZ21lbnQsIGVsZW1lbnRzLCBrZXksIG1vZGUpO1xuICBmaWJlci5sYW5lcyA9IGxhbmVzO1xuICByZXR1cm4gZmliZXI7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVByb2ZpbGVyKHBlbmRpbmdQcm9wcywgbW9kZSwgbGFuZXMsIGtleSkge1xuICB7XG4gICAgaWYgKHR5cGVvZiBwZW5kaW5nUHJvcHMuaWQgIT09ICdzdHJpbmcnKSB7XG4gICAgICBlcnJvcignUHJvZmlsZXIgbXVzdCBzcGVjaWZ5IGFuIFwiaWRcIiBvZiB0eXBlIGBzdHJpbmdgIGFzIGEgcHJvcC4gUmVjZWl2ZWQgdGhlIHR5cGUgYCVzYCBpbnN0ZWFkLicsIHR5cGVvZiBwZW5kaW5nUHJvcHMuaWQpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBmaWJlciA9IGNyZWF0ZUZpYmVyKFByb2ZpbGVyLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSB8IFByb2ZpbGVNb2RlKTtcbiAgZmliZXIuZWxlbWVudFR5cGUgPSBSRUFDVF9QUk9GSUxFUl9UWVBFO1xuICBmaWJlci5sYW5lcyA9IGxhbmVzO1xuXG4gIHtcbiAgICBmaWJlci5zdGF0ZU5vZGUgPSB7XG4gICAgICBlZmZlY3REdXJhdGlvbjogMCxcbiAgICAgIHBhc3NpdmVFZmZlY3REdXJhdGlvbjogMFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gZmliZXI7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVN1c3BlbnNlKHBlbmRpbmdQcm9wcywgbW9kZSwgbGFuZXMsIGtleSkge1xuICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlcihTdXNwZW5zZUNvbXBvbmVudCwgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpO1xuICBmaWJlci5lbGVtZW50VHlwZSA9IFJFQUNUX1NVU1BFTlNFX1RZUEU7XG4gIGZpYmVyLmxhbmVzID0gbGFuZXM7XG4gIHJldHVybiBmaWJlcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVN1c3BlbnNlTGlzdChwZW5kaW5nUHJvcHMsIG1vZGUsIGxhbmVzLCBrZXkpIHtcbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXIoU3VzcGVuc2VMaXN0Q29tcG9uZW50LCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSk7XG4gIGZpYmVyLmVsZW1lbnRUeXBlID0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFO1xuICBmaWJlci5sYW5lcyA9IGxhbmVzO1xuICByZXR1cm4gZmliZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21PZmZzY3JlZW4ocGVuZGluZ1Byb3BzLCBtb2RlLCBsYW5lcywga2V5KSB7XG4gIHZhciBmaWJlciA9IGNyZWF0ZUZpYmVyKE9mZnNjcmVlbkNvbXBvbmVudCwgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpO1xuICBmaWJlci5lbGVtZW50VHlwZSA9IFJFQUNUX09GRlNDUkVFTl9UWVBFO1xuICBmaWJlci5sYW5lcyA9IGxhbmVzO1xuICB2YXIgcHJpbWFyeUNoaWxkSW5zdGFuY2UgPSB7fTtcbiAgZmliZXIuc3RhdGVOb2RlID0gcHJpbWFyeUNoaWxkSW5zdGFuY2U7XG4gIHJldHVybiBmaWJlcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVRleHQoY29udGVudCwgbW9kZSwgbGFuZXMpIHtcbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXIoSG9zdFRleHQsIGNvbnRlbnQsIG51bGwsIG1vZGUpO1xuICBmaWJlci5sYW5lcyA9IGxhbmVzO1xuICByZXR1cm4gZmliZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21Ib3N0SW5zdGFuY2VGb3JEZWxldGlvbigpIHtcbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXIoSG9zdENvbXBvbmVudCwgbnVsbCwgbnVsbCwgTm9Nb2RlKTtcbiAgZmliZXIuZWxlbWVudFR5cGUgPSAnREVMRVRFRCc7XG4gIHJldHVybiBmaWJlcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbURlaHlkcmF0ZWRGcmFnbWVudChkZWh5ZHJhdGVkTm9kZSkge1xuICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlcihEZWh5ZHJhdGVkRnJhZ21lbnQsIG51bGwsIG51bGwsIE5vTW9kZSk7XG4gIGZpYmVyLnN0YXRlTm9kZSA9IGRlaHlkcmF0ZWROb2RlO1xuICByZXR1cm4gZmliZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21Qb3J0YWwocG9ydGFsLCBtb2RlLCBsYW5lcykge1xuICB2YXIgcGVuZGluZ1Byb3BzID0gcG9ydGFsLmNoaWxkcmVuICE9PSBudWxsID8gcG9ydGFsLmNoaWxkcmVuIDogW107XG4gIHZhciBmaWJlciA9IGNyZWF0ZUZpYmVyKEhvc3RQb3J0YWwsIHBlbmRpbmdQcm9wcywgcG9ydGFsLmtleSwgbW9kZSk7XG4gIGZpYmVyLmxhbmVzID0gbGFuZXM7XG4gIGZpYmVyLnN0YXRlTm9kZSA9IHtcbiAgICBjb250YWluZXJJbmZvOiBwb3J0YWwuY29udGFpbmVySW5mbyxcbiAgICBwZW5kaW5nQ2hpbGRyZW46IG51bGwsXG4gICAgLy8gVXNlZCBieSBwZXJzaXN0ZW50IHVwZGF0ZXNcbiAgICBpbXBsZW1lbnRhdGlvbjogcG9ydGFsLmltcGxlbWVudGF0aW9uXG4gIH07XG4gIHJldHVybiBmaWJlcjtcbn0gLy8gVXNlZCBmb3Igc3Rhc2hpbmcgV0lQIHByb3BlcnRpZXMgdG8gcmVwbGF5IGZhaWxlZCB3b3JrIGluIERFVi5cblxuZnVuY3Rpb24gYXNzaWduRmliZXJQcm9wZXJ0aWVzSW5ERVYodGFyZ2V0LCBzb3VyY2UpIHtcbiAgaWYgKHRhcmdldCA9PT0gbnVsbCkge1xuICAgIC8vIFRoaXMgRmliZXIncyBpbml0aWFsIHByb3BlcnRpZXMgd2lsbCBhbHdheXMgYmUgb3ZlcndyaXR0ZW4uXG4gICAgLy8gV2Ugb25seSB1c2UgYSBGaWJlciB0byBlbnN1cmUgdGhlIHNhbWUgaGlkZGVuIGNsYXNzIHNvIERFViBpc24ndCBzbG93LlxuICAgIHRhcmdldCA9IGNyZWF0ZUZpYmVyKEluZGV0ZXJtaW5hdGVDb21wb25lbnQsIG51bGwsIG51bGwsIE5vTW9kZSk7XG4gIH0gLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IHdyaXR0ZW4gYXMgYSBsaXN0IG9mIGFsbCBwcm9wZXJ0aWVzLlxuICAvLyBXZSB0cmllZCB0byB1c2UgT2JqZWN0LmFzc2lnbigpIGluc3RlYWQgYnV0IHRoaXMgaXMgY2FsbGVkIGluXG4gIC8vIHRoZSBob3R0ZXN0IHBhdGgsIGFuZCBPYmplY3QuYXNzaWduKCkgd2FzIHRvbyBzbG93OlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEyNTAyXG4gIC8vIFRoaXMgY29kZSBpcyBERVYtb25seSBzbyBzaXplIGlzIG5vdCBhIGNvbmNlcm4uXG5cblxuICB0YXJnZXQudGFnID0gc291cmNlLnRhZztcbiAgdGFyZ2V0LmtleSA9IHNvdXJjZS5rZXk7XG4gIHRhcmdldC5lbGVtZW50VHlwZSA9IHNvdXJjZS5lbGVtZW50VHlwZTtcbiAgdGFyZ2V0LnR5cGUgPSBzb3VyY2UudHlwZTtcbiAgdGFyZ2V0LnN0YXRlTm9kZSA9IHNvdXJjZS5zdGF0ZU5vZGU7XG4gIHRhcmdldC5yZXR1cm4gPSBzb3VyY2UucmV0dXJuO1xuICB0YXJnZXQuY2hpbGQgPSBzb3VyY2UuY2hpbGQ7XG4gIHRhcmdldC5zaWJsaW5nID0gc291cmNlLnNpYmxpbmc7XG4gIHRhcmdldC5pbmRleCA9IHNvdXJjZS5pbmRleDtcbiAgdGFyZ2V0LnJlZiA9IHNvdXJjZS5yZWY7XG4gIHRhcmdldC5wZW5kaW5nUHJvcHMgPSBzb3VyY2UucGVuZGluZ1Byb3BzO1xuICB0YXJnZXQubWVtb2l6ZWRQcm9wcyA9IHNvdXJjZS5tZW1vaXplZFByb3BzO1xuICB0YXJnZXQudXBkYXRlUXVldWUgPSBzb3VyY2UudXBkYXRlUXVldWU7XG4gIHRhcmdldC5tZW1vaXplZFN0YXRlID0gc291cmNlLm1lbW9pemVkU3RhdGU7XG4gIHRhcmdldC5kZXBlbmRlbmNpZXMgPSBzb3VyY2UuZGVwZW5kZW5jaWVzO1xuICB0YXJnZXQubW9kZSA9IHNvdXJjZS5tb2RlO1xuICB0YXJnZXQuZmxhZ3MgPSBzb3VyY2UuZmxhZ3M7XG4gIHRhcmdldC5zdWJ0cmVlRmxhZ3MgPSBzb3VyY2Uuc3VidHJlZUZsYWdzO1xuICB0YXJnZXQuZGVsZXRpb25zID0gc291cmNlLmRlbGV0aW9ucztcbiAgdGFyZ2V0LmxhbmVzID0gc291cmNlLmxhbmVzO1xuICB0YXJnZXQuY2hpbGRMYW5lcyA9IHNvdXJjZS5jaGlsZExhbmVzO1xuICB0YXJnZXQuYWx0ZXJuYXRlID0gc291cmNlLmFsdGVybmF0ZTtcblxuICB7XG4gICAgdGFyZ2V0LmFjdHVhbER1cmF0aW9uID0gc291cmNlLmFjdHVhbER1cmF0aW9uO1xuICAgIHRhcmdldC5hY3R1YWxTdGFydFRpbWUgPSBzb3VyY2UuYWN0dWFsU3RhcnRUaW1lO1xuICAgIHRhcmdldC5zZWxmQmFzZUR1cmF0aW9uID0gc291cmNlLnNlbGZCYXNlRHVyYXRpb247XG4gICAgdGFyZ2V0LnRyZWVCYXNlRHVyYXRpb24gPSBzb3VyY2UudHJlZUJhc2VEdXJhdGlvbjtcbiAgfVxuXG4gIHRhcmdldC5fZGVidWdTb3VyY2UgPSBzb3VyY2UuX2RlYnVnU291cmNlO1xuICB0YXJnZXQuX2RlYnVnT3duZXIgPSBzb3VyY2UuX2RlYnVnT3duZXI7XG4gIHRhcmdldC5fZGVidWdOZWVkc1JlbW91bnQgPSBzb3VyY2UuX2RlYnVnTmVlZHNSZW1vdW50O1xuICB0YXJnZXQuX2RlYnVnSG9va1R5cGVzID0gc291cmNlLl9kZWJ1Z0hvb2tUeXBlcztcbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuZnVuY3Rpb24gRmliZXJSb290Tm9kZShjb250YWluZXJJbmZvLCB0YWcsIGh5ZHJhdGUsIGlkZW50aWZpZXJQcmVmaXgsIG9uUmVjb3ZlcmFibGVFcnJvcikge1xuICB0aGlzLnRhZyA9IHRhZztcbiAgdGhpcy5jb250YWluZXJJbmZvID0gY29udGFpbmVySW5mbztcbiAgdGhpcy5wZW5kaW5nQ2hpbGRyZW4gPSBudWxsO1xuICB0aGlzLmN1cnJlbnQgPSBudWxsO1xuICB0aGlzLnBpbmdDYWNoZSA9IG51bGw7XG4gIHRoaXMuZmluaXNoZWRXb3JrID0gbnVsbDtcbiAgdGhpcy50aW1lb3V0SGFuZGxlID0gbm9UaW1lb3V0O1xuICB0aGlzLmNvbnRleHQgPSBudWxsO1xuICB0aGlzLnBlbmRpbmdDb250ZXh0ID0gbnVsbDtcbiAgdGhpcy5jYWxsYmFja05vZGUgPSBudWxsO1xuICB0aGlzLmNhbGxiYWNrUHJpb3JpdHkgPSBOb0xhbmU7XG4gIHRoaXMuZXZlbnRUaW1lcyA9IGNyZWF0ZUxhbmVNYXAoTm9MYW5lcyk7XG4gIHRoaXMuZXhwaXJhdGlvblRpbWVzID0gY3JlYXRlTGFuZU1hcChOb1RpbWVzdGFtcCk7XG4gIHRoaXMucGVuZGluZ0xhbmVzID0gTm9MYW5lcztcbiAgdGhpcy5zdXNwZW5kZWRMYW5lcyA9IE5vTGFuZXM7XG4gIHRoaXMucGluZ2VkTGFuZXMgPSBOb0xhbmVzO1xuICB0aGlzLmV4cGlyZWRMYW5lcyA9IE5vTGFuZXM7XG4gIHRoaXMubXV0YWJsZVJlYWRMYW5lcyA9IE5vTGFuZXM7XG4gIHRoaXMuZmluaXNoZWRMYW5lcyA9IE5vTGFuZXM7XG4gIHRoaXMuZW50YW5nbGVkTGFuZXMgPSBOb0xhbmVzO1xuICB0aGlzLmVudGFuZ2xlbWVudHMgPSBjcmVhdGVMYW5lTWFwKE5vTGFuZXMpO1xuICB0aGlzLmlkZW50aWZpZXJQcmVmaXggPSBpZGVudGlmaWVyUHJlZml4O1xuICB0aGlzLm9uUmVjb3ZlcmFibGVFcnJvciA9IG9uUmVjb3ZlcmFibGVFcnJvcjtcblxuICB7XG4gICAgdGhpcy5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhID0gbnVsbDtcbiAgfVxuXG4gIHtcbiAgICB0aGlzLmVmZmVjdER1cmF0aW9uID0gMDtcbiAgICB0aGlzLnBhc3NpdmVFZmZlY3REdXJhdGlvbiA9IDA7XG4gIH1cblxuICB7XG4gICAgdGhpcy5tZW1vaXplZFVwZGF0ZXJzID0gbmV3IFNldCgpO1xuICAgIHZhciBwZW5kaW5nVXBkYXRlcnNMYW5lTWFwID0gdGhpcy5wZW5kaW5nVXBkYXRlcnNMYW5lTWFwID0gW107XG5cbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgVG90YWxMYW5lczsgX2krKykge1xuICAgICAgcGVuZGluZ1VwZGF0ZXJzTGFuZU1hcC5wdXNoKG5ldyBTZXQoKSk7XG4gICAgfVxuICB9XG5cbiAge1xuICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICBjYXNlIENvbmN1cnJlbnRSb290OlxuICAgICAgICB0aGlzLl9kZWJ1Z1Jvb3RUeXBlID0gaHlkcmF0ZSA/ICdoeWRyYXRlUm9vdCgpJyA6ICdjcmVhdGVSb290KCknO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBMZWdhY3lSb290OlxuICAgICAgICB0aGlzLl9kZWJ1Z1Jvb3RUeXBlID0gaHlkcmF0ZSA/ICdoeWRyYXRlKCknIDogJ3JlbmRlcigpJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyUm9vdChjb250YWluZXJJbmZvLCB0YWcsIGh5ZHJhdGUsIGluaXRpYWxDaGlsZHJlbiwgaHlkcmF0aW9uQ2FsbGJhY2tzLCBpc1N0cmljdE1vZGUsIGNvbmN1cnJlbnRVcGRhdGVzQnlEZWZhdWx0T3ZlcnJpZGUsIC8vIFRPRE86IFdlIGhhdmUgc2V2ZXJhbCBvZiB0aGVzZSBhcmd1bWVudHMgdGhhdCBhcmUgY29uY2VwdHVhbGx5IHBhcnQgb2YgdGhlXG4vLyBob3N0IGNvbmZpZywgYnV0IGJlY2F1c2UgdGhleSBhcmUgcGFzc2VkIGluIGF0IHJ1bnRpbWUsIHdlIGhhdmUgdG8gdGhyZWFkXG4vLyB0aGVtIHRocm91Z2ggdGhlIHJvb3QgY29uc3RydWN0b3IuIFBlcmhhcHMgd2Ugc2hvdWxkIHB1dCB0aGVtIGFsbCBpbnRvIGFcbi8vIHNpbmdsZSB0eXBlLCBsaWtlIGEgRHluYW1pY0hvc3RDb25maWcgdGhhdCBpcyBkZWZpbmVkIGJ5IHRoZSByZW5kZXJlci5cbmlkZW50aWZpZXJQcmVmaXgsIG9uUmVjb3ZlcmFibGVFcnJvciwgdHJhbnNpdGlvbkNhbGxiYWNrcykge1xuICB2YXIgcm9vdCA9IG5ldyBGaWJlclJvb3ROb2RlKGNvbnRhaW5lckluZm8sIHRhZywgaHlkcmF0ZSwgaWRlbnRpZmllclByZWZpeCwgb25SZWNvdmVyYWJsZUVycm9yKTtcbiAgLy8gc3RhdGVOb2RlIGlzIGFueS5cblxuXG4gIHZhciB1bmluaXRpYWxpemVkRmliZXIgPSBjcmVhdGVIb3N0Um9vdEZpYmVyKHRhZywgaXNTdHJpY3RNb2RlKTtcbiAgcm9vdC5jdXJyZW50ID0gdW5pbml0aWFsaXplZEZpYmVyO1xuICB1bmluaXRpYWxpemVkRmliZXIuc3RhdGVOb2RlID0gcm9vdDtcblxuICB7XG4gICAgdmFyIF9pbml0aWFsU3RhdGUgPSB7XG4gICAgICBlbGVtZW50OiBpbml0aWFsQ2hpbGRyZW4sXG4gICAgICBpc0RlaHlkcmF0ZWQ6IGh5ZHJhdGUsXG4gICAgICBjYWNoZTogbnVsbCxcbiAgICAgIC8vIG5vdCBlbmFibGVkIHlldFxuICAgICAgdHJhbnNpdGlvbnM6IG51bGxcbiAgICB9O1xuICAgIHVuaW5pdGlhbGl6ZWRGaWJlci5tZW1vaXplZFN0YXRlID0gX2luaXRpYWxTdGF0ZTtcbiAgfVxuXG4gIGluaXRpYWxpemVVcGRhdGVRdWV1ZSh1bmluaXRpYWxpemVkRmliZXIpO1xuICByZXR1cm4gcm9vdDtcbn1cblxudmFyIFJlYWN0VmVyc2lvbiA9ICcxOC4wLjAtZmM0NmRiYTY3LTIwMjIwMzI5JztcblxuZnVuY3Rpb24gY3JlYXRlUG9ydGFsKGNoaWxkcmVuLCBjb250YWluZXJJbmZvLCAvLyBUT0RPOiBmaWd1cmUgb3V0IHRoZSBBUEkgZm9yIGNyb3NzLXJlbmRlcmVyIGltcGxlbWVudGF0aW9uLlxuaW1wbGVtZW50YXRpb24pIHtcbiAgdmFyIGtleSA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDogbnVsbDtcblxuICB7XG4gICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihrZXkpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBUaGlzIHRhZyBhbGxvdyB1cyB0byB1bmlxdWVseSBpZGVudGlmeSB0aGlzIGFzIGEgUmVhY3QgUG9ydGFsXG4gICAgJCR0eXBlb2Y6IFJFQUNUX1BPUlRBTF9UWVBFLFxuICAgIGtleToga2V5ID09IG51bGwgPyBudWxsIDogJycgKyBrZXksXG4gICAgY2hpbGRyZW46IGNoaWxkcmVuLFxuICAgIGNvbnRhaW5lckluZm86IGNvbnRhaW5lckluZm8sXG4gICAgaW1wbGVtZW50YXRpb246IGltcGxlbWVudGF0aW9uXG4gIH07XG59XG5cbnZhciBkaWRXYXJuQWJvdXROZXN0ZWRVcGRhdGVzO1xudmFyIGRpZFdhcm5BYm91dEZpbmROb2RlSW5TdHJpY3RNb2RlO1xuXG57XG4gIGRpZFdhcm5BYm91dE5lc3RlZFVwZGF0ZXMgPSBmYWxzZTtcbiAgZGlkV2FybkFib3V0RmluZE5vZGVJblN0cmljdE1vZGUgPSB7fTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29udGV4dEZvclN1YnRyZWUocGFyZW50Q29tcG9uZW50KSB7XG4gIGlmICghcGFyZW50Q29tcG9uZW50KSB7XG4gICAgcmV0dXJuIGVtcHR5Q29udGV4dE9iamVjdDtcbiAgfVxuXG4gIHZhciBmaWJlciA9IGdldChwYXJlbnRDb21wb25lbnQpO1xuICB2YXIgcGFyZW50Q29udGV4dCA9IGZpbmRDdXJyZW50VW5tYXNrZWRDb250ZXh0KGZpYmVyKTtcblxuICBpZiAoZmliZXIudGFnID09PSBDbGFzc0NvbXBvbmVudCkge1xuICAgIHZhciBDb21wb25lbnQgPSBmaWJlci50eXBlO1xuXG4gICAgaWYgKGlzQ29udGV4dFByb3ZpZGVyKENvbXBvbmVudCkpIHtcbiAgICAgIHJldHVybiBwcm9jZXNzQ2hpbGRDb250ZXh0KGZpYmVyLCBDb21wb25lbnQsIHBhcmVudENvbnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJlbnRDb250ZXh0O1xufVxuXG5mdW5jdGlvbiBmaW5kSG9zdEluc3RhbmNlV2l0aFdhcm5pbmcoY29tcG9uZW50LCBtZXRob2ROYW1lKSB7XG4gIHtcbiAgICB2YXIgZmliZXIgPSBnZXQoY29tcG9uZW50KTtcblxuICAgIGlmIChmaWJlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodHlwZW9mIGNvbXBvbmVudC5yZW5kZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGNvbXBvbmVudCkuam9pbignLCcpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcmd1bWVudCBhcHBlYXJzIHRvIG5vdCBiZSBhIFJlYWN0Q29tcG9uZW50LiBLZXlzOiBcIiArIGtleXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBob3N0RmliZXIgPSBmaW5kQ3VycmVudEhvc3RGaWJlcihmaWJlcik7XG5cbiAgICBpZiAoaG9zdEZpYmVyID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoaG9zdEZpYmVyLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dEZpbmROb2RlSW5TdHJpY3RNb2RlW2NvbXBvbmVudE5hbWVdKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dEZpbmROb2RlSW5TdHJpY3RNb2RlW2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcbiAgICAgICAgdmFyIHByZXZpb3VzRmliZXIgPSBjdXJyZW50O1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgc2V0Q3VycmVudEZpYmVyKGhvc3RGaWJlcik7XG5cbiAgICAgICAgICBpZiAoZmliZXIubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpIHtcbiAgICAgICAgICAgIGVycm9yKCclcyBpcyBkZXByZWNhdGVkIGluIFN0cmljdE1vZGUuICcgKyAnJXMgd2FzIHBhc3NlZCBhbiBpbnN0YW5jZSBvZiAlcyB3aGljaCBpcyBpbnNpZGUgU3RyaWN0TW9kZS4gJyArICdJbnN0ZWFkLCBhZGQgYSByZWYgZGlyZWN0bHkgdG8gdGhlIGVsZW1lbnQgeW91IHdhbnQgdG8gcmVmZXJlbmNlLiAnICsgJ0xlYXJuIG1vcmUgYWJvdXQgdXNpbmcgcmVmcyBzYWZlbHkgaGVyZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3RyaWN0LW1vZGUtZmluZC1ub2RlJywgbWV0aG9kTmFtZSwgbWV0aG9kTmFtZSwgY29tcG9uZW50TmFtZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVycm9yKCclcyBpcyBkZXByZWNhdGVkIGluIFN0cmljdE1vZGUuICcgKyAnJXMgd2FzIHBhc3NlZCBhbiBpbnN0YW5jZSBvZiAlcyB3aGljaCByZW5kZXJzIFN0cmljdE1vZGUgY2hpbGRyZW4uICcgKyAnSW5zdGVhZCwgYWRkIGEgcmVmIGRpcmVjdGx5IHRvIHRoZSBlbGVtZW50IHlvdSB3YW50IHRvIHJlZmVyZW5jZS4gJyArICdMZWFybiBtb3JlIGFib3V0IHVzaW5nIHJlZnMgc2FmZWx5IGhlcmU6ICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3N0cmljdC1tb2RlLWZpbmQtbm9kZScsIG1ldGhvZE5hbWUsIG1ldGhvZE5hbWUsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAvLyBJZGVhbGx5IHRoaXMgc2hvdWxkIHJlc2V0IHRvIHByZXZpb3VzIGJ1dCB0aGlzIHNob3VsZG4ndCBiZSBjYWxsZWQgaW5cbiAgICAgICAgICAvLyByZW5kZXIgYW5kIHRoZXJlJ3MgYW5vdGhlciB3YXJuaW5nIGZvciB0aGF0IGFueXdheS5cbiAgICAgICAgICBpZiAocHJldmlvdXNGaWJlcikge1xuICAgICAgICAgICAgc2V0Q3VycmVudEZpYmVyKHByZXZpb3VzRmliZXIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBob3N0RmliZXIuc3RhdGVOb2RlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnRhaW5lcihjb250YWluZXJJbmZvLCB0YWcsIGh5ZHJhdGlvbkNhbGxiYWNrcywgaXNTdHJpY3RNb2RlLCBjb25jdXJyZW50VXBkYXRlc0J5RGVmYXVsdE92ZXJyaWRlLCBpZGVudGlmaWVyUHJlZml4LCBvblJlY292ZXJhYmxlRXJyb3IsIHRyYW5zaXRpb25DYWxsYmFja3MpIHtcbiAgdmFyIGh5ZHJhdGUgPSBmYWxzZTtcbiAgdmFyIGluaXRpYWxDaGlsZHJlbiA9IG51bGw7XG4gIHJldHVybiBjcmVhdGVGaWJlclJvb3QoY29udGFpbmVySW5mbywgdGFnLCBoeWRyYXRlLCBpbml0aWFsQ2hpbGRyZW4sIGh5ZHJhdGlvbkNhbGxiYWNrcywgaXNTdHJpY3RNb2RlLCBjb25jdXJyZW50VXBkYXRlc0J5RGVmYXVsdE92ZXJyaWRlLCBpZGVudGlmaWVyUHJlZml4LCBvblJlY292ZXJhYmxlRXJyb3IpO1xufVxuZnVuY3Rpb24gY3JlYXRlSHlkcmF0aW9uQ29udGFpbmVyKGluaXRpYWxDaGlsZHJlbiwgLy8gVE9ETzogUmVtb3ZlIGBjYWxsYmFja2Agd2hlbiB3ZSBkZWxldGUgbGVnYWN5IG1vZGUuXG5jYWxsYmFjaywgY29udGFpbmVySW5mbywgdGFnLCBoeWRyYXRpb25DYWxsYmFja3MsIGlzU3RyaWN0TW9kZSwgY29uY3VycmVudFVwZGF0ZXNCeURlZmF1bHRPdmVycmlkZSwgaWRlbnRpZmllclByZWZpeCwgb25SZWNvdmVyYWJsZUVycm9yLCB0cmFuc2l0aW9uQ2FsbGJhY2tzKSB7XG4gIHZhciBoeWRyYXRlID0gdHJ1ZTtcbiAgdmFyIHJvb3QgPSBjcmVhdGVGaWJlclJvb3QoY29udGFpbmVySW5mbywgdGFnLCBoeWRyYXRlLCBpbml0aWFsQ2hpbGRyZW4sIGh5ZHJhdGlvbkNhbGxiYWNrcywgaXNTdHJpY3RNb2RlLCBjb25jdXJyZW50VXBkYXRlc0J5RGVmYXVsdE92ZXJyaWRlLCBpZGVudGlmaWVyUHJlZml4LCBvblJlY292ZXJhYmxlRXJyb3IpOyAvLyBUT0RPOiBNb3ZlIHRoaXMgdG8gRmliZXJSb290IGNvbnN0cnVjdG9yXG5cbiAgcm9vdC5jb250ZXh0ID0gZ2V0Q29udGV4dEZvclN1YnRyZWUobnVsbCk7IC8vIFNjaGVkdWxlIHRoZSBpbml0aWFsIHJlbmRlci4gSW4gYSBoeWRyYXRpb24gcm9vdCwgdGhpcyBpcyBkaWZmZXJlbnQgZnJvbVxuICAvLyBhIHJlZ3VsYXIgdXBkYXRlIGJlY2F1c2UgdGhlIGluaXRpYWwgcmVuZGVyIG11c3QgbWF0Y2ggd2FzIHdhcyByZW5kZXJlZFxuICAvLyBvbiB0aGUgc2VydmVyLlxuICAvLyBOT1RFOiBUaGlzIHVwZGF0ZSBpbnRlbnRpb25hbGx5IGRvZXNuJ3QgaGF2ZSBhIHBheWxvYWQuIFdlJ3JlIG9ubHkgdXNpbmdcbiAgLy8gdGhlIHVwZGF0ZSB0byBzY2hlZHVsZSB3b3JrIG9uIHRoZSByb290IGZpYmVyIChhbmQsIGZvciBsZWdhY3kgcm9vdHMsIHRvXG4gIC8vIGVucXVldWUgdGhlIGNhbGxiYWNrIGlmIG9uZSBpcyBwcm92aWRlZCkuXG5cbiAgdmFyIGN1cnJlbnQgPSByb290LmN1cnJlbnQ7XG4gIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUoY3VycmVudCk7XG4gIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoZXZlbnRUaW1lLCBsYW5lKTtcbiAgdXBkYXRlLmNhbGxiYWNrID0gY2FsbGJhY2sgIT09IHVuZGVmaW5lZCAmJiBjYWxsYmFjayAhPT0gbnVsbCA/IGNhbGxiYWNrIDogbnVsbDtcbiAgZW5xdWV1ZVVwZGF0ZShjdXJyZW50LCB1cGRhdGUpO1xuICBzY2hlZHVsZUluaXRpYWxIeWRyYXRpb25PblJvb3Qocm9vdCwgbGFuZSwgZXZlbnRUaW1lKTtcbiAgcmV0dXJuIHJvb3Q7XG59XG5mdW5jdGlvbiB1cGRhdGVDb250YWluZXIoZWxlbWVudCwgY29udGFpbmVyLCBwYXJlbnRDb21wb25lbnQsIGNhbGxiYWNrKSB7XG4gIHtcbiAgICBvblNjaGVkdWxlUm9vdChjb250YWluZXIsIGVsZW1lbnQpO1xuICB9XG5cbiAgdmFyIGN1cnJlbnQkMSA9IGNvbnRhaW5lci5jdXJyZW50O1xuICB2YXIgZXZlbnRUaW1lID0gcmVxdWVzdEV2ZW50VGltZSgpO1xuICB2YXIgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGN1cnJlbnQkMSk7XG5cbiAge1xuICAgIG1hcmtSZW5kZXJTY2hlZHVsZWQobGFuZSk7XG4gIH1cblxuICB2YXIgY29udGV4dCA9IGdldENvbnRleHRGb3JTdWJ0cmVlKHBhcmVudENvbXBvbmVudCk7XG5cbiAgaWYgKGNvbnRhaW5lci5jb250ZXh0ID09PSBudWxsKSB7XG4gICAgY29udGFpbmVyLmNvbnRleHQgPSBjb250ZXh0O1xuICB9IGVsc2Uge1xuICAgIGNvbnRhaW5lci5wZW5kaW5nQ29udGV4dCA9IGNvbnRleHQ7XG4gIH1cblxuICB7XG4gICAgaWYgKGlzUmVuZGVyaW5nICYmIGN1cnJlbnQgIT09IG51bGwgJiYgIWRpZFdhcm5BYm91dE5lc3RlZFVwZGF0ZXMpIHtcbiAgICAgIGRpZFdhcm5BYm91dE5lc3RlZFVwZGF0ZXMgPSB0cnVlO1xuXG4gICAgICBlcnJvcignUmVuZGVyIG1ldGhvZHMgc2hvdWxkIGJlIGEgcHVyZSBmdW5jdGlvbiBvZiBwcm9wcyBhbmQgc3RhdGU7ICcgKyAndHJpZ2dlcmluZyBuZXN0ZWQgY29tcG9uZW50IHVwZGF0ZXMgZnJvbSByZW5kZXIgaXMgbm90IGFsbG93ZWQuICcgKyAnSWYgbmVjZXNzYXJ5LCB0cmlnZ2VyIG5lc3RlZCB1cGRhdGVzIGluIGNvbXBvbmVudERpZFVwZGF0ZS5cXG5cXG4nICsgJ0NoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mICVzLicsIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoY3VycmVudCkgfHwgJ1Vua25vd24nKTtcbiAgICB9XG4gIH1cblxuICB2YXIgdXBkYXRlID0gY3JlYXRlVXBkYXRlKGV2ZW50VGltZSwgbGFuZSk7IC8vIENhdXRpb246IFJlYWN0IERldlRvb2xzIGN1cnJlbnRseSBkZXBlbmRzIG9uIHRoaXMgcHJvcGVydHlcbiAgLy8gYmVpbmcgY2FsbGVkIFwiZWxlbWVudFwiLlxuXG4gIHVwZGF0ZS5wYXlsb2FkID0ge1xuICAgIGVsZW1lbnQ6IGVsZW1lbnRcbiAgfTtcbiAgY2FsbGJhY2sgPSBjYWxsYmFjayA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNhbGxiYWNrO1xuXG4gIGlmIChjYWxsYmFjayAhPT0gbnVsbCkge1xuICAgIHtcbiAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZXJyb3IoJ3JlbmRlciguLi4pOiBFeHBlY3RlZCB0aGUgbGFzdCBvcHRpb25hbCBgY2FsbGJhY2tgIGFyZ3VtZW50IHRvIGJlIGEgJyArICdmdW5jdGlvbi4gSW5zdGVhZCByZWNlaXZlZDogJXMuJywgY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZS5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICB9XG5cbiAgZW5xdWV1ZVVwZGF0ZShjdXJyZW50JDEsIHVwZGF0ZSk7XG4gIHZhciByb290ID0gc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGN1cnJlbnQkMSwgbGFuZSwgZXZlbnRUaW1lKTtcblxuICBpZiAocm9vdCAhPT0gbnVsbCkge1xuICAgIGVudGFuZ2xlVHJhbnNpdGlvbnMocm9vdCwgY3VycmVudCQxLCBsYW5lKTtcbiAgfVxuXG4gIHJldHVybiBsYW5lO1xufVxuZnVuY3Rpb24gZ2V0UHVibGljUm9vdEluc3RhbmNlKGNvbnRhaW5lcikge1xuICB2YXIgY29udGFpbmVyRmliZXIgPSBjb250YWluZXIuY3VycmVudDtcblxuICBpZiAoIWNvbnRhaW5lckZpYmVyLmNoaWxkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzd2l0Y2ggKGNvbnRhaW5lckZpYmVyLmNoaWxkLnRhZykge1xuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHJldHVybiBnZXRQdWJsaWNJbnN0YW5jZShjb250YWluZXJGaWJlci5jaGlsZC5zdGF0ZU5vZGUpO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBjb250YWluZXJGaWJlci5jaGlsZC5zdGF0ZU5vZGU7XG4gIH1cbn1cbmZ1bmN0aW9uIGF0dGVtcHRTeW5jaHJvbm91c0h5ZHJhdGlvbiQxKGZpYmVyKSB7XG4gIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgIHZhciByb290ID0gZmliZXIuc3RhdGVOb2RlO1xuXG4gICAgICBpZiAoaXNSb290RGVoeWRyYXRlZChyb290KSkge1xuICAgICAgICAvLyBGbHVzaCB0aGUgZmlyc3Qgc2NoZWR1bGVkIFwidXBkYXRlXCIuXG4gICAgICAgIHZhciBsYW5lcyA9IGdldEhpZ2hlc3RQcmlvcml0eVBlbmRpbmdMYW5lcyhyb290KTtcbiAgICAgICAgZmx1c2hSb290KHJvb3QsIGxhbmVzKTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgICAgIGZsdXNoU3luYyhmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoZmliZXIsIFN5bmNMYW5lLCBldmVudFRpbWUpO1xuICAgICAgfSk7IC8vIElmIHdlJ3JlIHN0aWxsIGJsb2NrZWQgYWZ0ZXIgdGhpcywgd2UgbmVlZCB0byBpbmNyZWFzZVxuICAgICAgLy8gdGhlIHByaW9yaXR5IG9mIGFueSBwcm9taXNlcyByZXNvbHZpbmcgd2l0aGluIHRoaXNcbiAgICAgIC8vIGJvdW5kYXJ5IHNvIHRoYXQgdGhleSBuZXh0IGF0dGVtcHQgYWxzbyBoYXMgaGlnaGVyIHByaS5cblxuICAgICAgdmFyIHJldHJ5TGFuZSA9IFN5bmNMYW5lO1xuICAgICAgbWFya1JldHJ5TGFuZUlmTm90SHlkcmF0ZWQoZmliZXIsIHJldHJ5TGFuZSk7XG4gICAgICBicmVhaztcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrUmV0cnlMYW5lSW1wbChmaWJlciwgcmV0cnlMYW5lKSB7XG4gIHZhciBzdXNwZW5zZVN0YXRlID0gZmliZXIubWVtb2l6ZWRTdGF0ZTtcblxuICBpZiAoc3VzcGVuc2VTdGF0ZSAhPT0gbnVsbCAmJiBzdXNwZW5zZVN0YXRlLmRlaHlkcmF0ZWQgIT09IG51bGwpIHtcbiAgICBzdXNwZW5zZVN0YXRlLnJldHJ5TGFuZSA9IGhpZ2hlclByaW9yaXR5TGFuZShzdXNwZW5zZVN0YXRlLnJldHJ5TGFuZSwgcmV0cnlMYW5lKTtcbiAgfVxufSAvLyBJbmNyZWFzZXMgdGhlIHByaW9yaXR5IG9mIHRoZW5hYmxlcyB3aGVuIHRoZXkgcmVzb2x2ZSB3aXRoaW4gdGhpcyBib3VuZGFyeS5cblxuXG5mdW5jdGlvbiBtYXJrUmV0cnlMYW5lSWZOb3RIeWRyYXRlZChmaWJlciwgcmV0cnlMYW5lKSB7XG4gIG1hcmtSZXRyeUxhbmVJbXBsKGZpYmVyLCByZXRyeUxhbmUpO1xuICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuXG4gIGlmIChhbHRlcm5hdGUpIHtcbiAgICBtYXJrUmV0cnlMYW5lSW1wbChhbHRlcm5hdGUsIHJldHJ5TGFuZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24kMShmaWJlcikge1xuICBpZiAoZmliZXIudGFnICE9PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgIC8vIFdlIGlnbm9yZSBIb3N0Um9vdHMgaGVyZSBiZWNhdXNlIHdlIGNhbid0IGluY3JlYXNlXG4gICAgLy8gdGhlaXIgcHJpb3JpdHkgYW5kIHRoZXkgc2hvdWxkIG5vdCBzdXNwZW5kIG9uIEkvTyxcbiAgICAvLyBzaW5jZSB5b3UgaGF2ZSB0byB3cmFwIGFueXRoaW5nIHRoYXQgbWlnaHQgc3VzcGVuZCBpblxuICAgIC8vIFN1c3BlbnNlLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gIHZhciBsYW5lID0gU2VsZWN0aXZlSHlkcmF0aW9uTGFuZTtcbiAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBsYW5lLCBldmVudFRpbWUpO1xuICBtYXJrUmV0cnlMYW5lSWZOb3RIeWRyYXRlZChmaWJlciwgbGFuZSk7XG59XG5mdW5jdGlvbiBhdHRlbXB0SHlkcmF0aW9uQXRDdXJyZW50UHJpb3JpdHkkMShmaWJlcikge1xuICBpZiAoZmliZXIudGFnICE9PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgIC8vIFdlIGlnbm9yZSBIb3N0Um9vdHMgaGVyZSBiZWNhdXNlIHdlIGNhbid0IGluY3JlYXNlXG4gICAgLy8gdGhlaXIgcHJpb3JpdHkgb3RoZXIgdGhhbiBzeW5jaHJvbm91c2x5IGZsdXNoIGl0LlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpO1xuICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoZmliZXIsIGxhbmUsIGV2ZW50VGltZSk7XG4gIG1hcmtSZXRyeUxhbmVJZk5vdEh5ZHJhdGVkKGZpYmVyLCBsYW5lKTtcbn1cbmZ1bmN0aW9uIGZpbmRIb3N0SW5zdGFuY2VXaXRoTm9Qb3J0YWxzKGZpYmVyKSB7XG4gIHZhciBob3N0RmliZXIgPSBmaW5kQ3VycmVudEhvc3RGaWJlcldpdGhOb1BvcnRhbHMoZmliZXIpO1xuXG4gIGlmIChob3N0RmliZXIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBob3N0RmliZXIuc3RhdGVOb2RlO1xufVxuXG52YXIgc2hvdWxkRXJyb3JJbXBsID0gZnVuY3Rpb24gKGZpYmVyKSB7XG4gIHJldHVybiBudWxsO1xufTtcblxuZnVuY3Rpb24gc2hvdWxkRXJyb3IoZmliZXIpIHtcbiAgcmV0dXJuIHNob3VsZEVycm9ySW1wbChmaWJlcik7XG59XG5cbnZhciBzaG91bGRTdXNwZW5kSW1wbCA9IGZ1bmN0aW9uIChmaWJlcikge1xuICByZXR1cm4gZmFsc2U7XG59O1xuXG5mdW5jdGlvbiBzaG91bGRTdXNwZW5kKGZpYmVyKSB7XG4gIHJldHVybiBzaG91bGRTdXNwZW5kSW1wbChmaWJlcik7XG59XG52YXIgb3ZlcnJpZGVIb29rU3RhdGUgPSBudWxsO1xudmFyIG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aCA9IG51bGw7XG52YXIgb3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoID0gbnVsbDtcbnZhciBvdmVycmlkZVByb3BzID0gbnVsbDtcbnZhciBvdmVycmlkZVByb3BzRGVsZXRlUGF0aCA9IG51bGw7XG52YXIgb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGggPSBudWxsO1xudmFyIHNjaGVkdWxlVXBkYXRlID0gbnVsbDtcbnZhciBzZXRFcnJvckhhbmRsZXIgPSBudWxsO1xudmFyIHNldFN1c3BlbnNlSGFuZGxlciA9IG51bGw7XG5cbntcbiAgdmFyIGNvcHlXaXRoRGVsZXRlSW1wbCA9IGZ1bmN0aW9uIChvYmosIHBhdGgsIGluZGV4KSB7XG4gICAgdmFyIGtleSA9IHBhdGhbaW5kZXhdO1xuICAgIHZhciB1cGRhdGVkID0gaXNBcnJheShvYmopID8gb2JqLnNsaWNlKCkgOiBhc3NpZ24oe30sIG9iaik7XG5cbiAgICBpZiAoaW5kZXggKyAxID09PSBwYXRoLmxlbmd0aCkge1xuICAgICAgaWYgKGlzQXJyYXkodXBkYXRlZCkpIHtcbiAgICAgICAgdXBkYXRlZC5zcGxpY2Uoa2V5LCAxKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlbGV0ZSB1cGRhdGVkW2tleV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB1cGRhdGVkO1xuICAgIH0gLy8gJEZsb3dGaXhNZSBudW1iZXIgb3Igc3RyaW5nIGlzIGZpbmUgaGVyZVxuXG5cbiAgICB1cGRhdGVkW2tleV0gPSBjb3B5V2l0aERlbGV0ZUltcGwob2JqW2tleV0sIHBhdGgsIGluZGV4ICsgMSk7XG4gICAgcmV0dXJuIHVwZGF0ZWQ7XG4gIH07XG5cbiAgdmFyIGNvcHlXaXRoRGVsZXRlID0gZnVuY3Rpb24gKG9iaiwgcGF0aCkge1xuICAgIHJldHVybiBjb3B5V2l0aERlbGV0ZUltcGwob2JqLCBwYXRoLCAwKTtcbiAgfTtcblxuICB2YXIgY29weVdpdGhSZW5hbWVJbXBsID0gZnVuY3Rpb24gKG9iaiwgb2xkUGF0aCwgbmV3UGF0aCwgaW5kZXgpIHtcbiAgICB2YXIgb2xkS2V5ID0gb2xkUGF0aFtpbmRleF07XG4gICAgdmFyIHVwZGF0ZWQgPSBpc0FycmF5KG9iaikgPyBvYmouc2xpY2UoKSA6IGFzc2lnbih7fSwgb2JqKTtcblxuICAgIGlmIChpbmRleCArIDEgPT09IG9sZFBhdGgubGVuZ3RoKSB7XG4gICAgICB2YXIgbmV3S2V5ID0gbmV3UGF0aFtpbmRleF07IC8vICRGbG93Rml4TWUgbnVtYmVyIG9yIHN0cmluZyBpcyBmaW5lIGhlcmVcblxuICAgICAgdXBkYXRlZFtuZXdLZXldID0gdXBkYXRlZFtvbGRLZXldO1xuXG4gICAgICBpZiAoaXNBcnJheSh1cGRhdGVkKSkge1xuICAgICAgICB1cGRhdGVkLnNwbGljZShvbGRLZXksIDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHVwZGF0ZWRbb2xkS2V5XTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gJEZsb3dGaXhNZSBudW1iZXIgb3Igc3RyaW5nIGlzIGZpbmUgaGVyZVxuICAgICAgdXBkYXRlZFtvbGRLZXldID0gY29weVdpdGhSZW5hbWVJbXBsKCAvLyAkRmxvd0ZpeE1lIG51bWJlciBvciBzdHJpbmcgaXMgZmluZSBoZXJlXG4gICAgICBvYmpbb2xkS2V5XSwgb2xkUGF0aCwgbmV3UGF0aCwgaW5kZXggKyAxKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdXBkYXRlZDtcbiAgfTtcblxuICB2YXIgY29weVdpdGhSZW5hbWUgPSBmdW5jdGlvbiAob2JqLCBvbGRQYXRoLCBuZXdQYXRoKSB7XG4gICAgaWYgKG9sZFBhdGgubGVuZ3RoICE9PSBuZXdQYXRoLmxlbmd0aCkge1xuICAgICAgd2FybignY29weVdpdGhSZW5hbWUoKSBleHBlY3RzIHBhdGhzIG9mIHRoZSBzYW1lIGxlbmd0aCcpO1xuXG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmV3UGF0aC5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgaWYgKG9sZFBhdGhbaV0gIT09IG5ld1BhdGhbaV0pIHtcbiAgICAgICAgICB3YXJuKCdjb3B5V2l0aFJlbmFtZSgpIGV4cGVjdHMgcGF0aHMgdG8gYmUgdGhlIHNhbWUgZXhjZXB0IGZvciB0aGUgZGVlcGVzdCBrZXknKTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb3B5V2l0aFJlbmFtZUltcGwob2JqLCBvbGRQYXRoLCBuZXdQYXRoLCAwKTtcbiAgfTtcblxuICB2YXIgY29weVdpdGhTZXRJbXBsID0gZnVuY3Rpb24gKG9iaiwgcGF0aCwgaW5kZXgsIHZhbHVlKSB7XG4gICAgaWYgKGluZGV4ID49IHBhdGgubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgdmFyIGtleSA9IHBhdGhbaW5kZXhdO1xuICAgIHZhciB1cGRhdGVkID0gaXNBcnJheShvYmopID8gb2JqLnNsaWNlKCkgOiBhc3NpZ24oe30sIG9iaik7IC8vICRGbG93Rml4TWUgbnVtYmVyIG9yIHN0cmluZyBpcyBmaW5lIGhlcmVcblxuICAgIHVwZGF0ZWRba2V5XSA9IGNvcHlXaXRoU2V0SW1wbChvYmpba2V5XSwgcGF0aCwgaW5kZXggKyAxLCB2YWx1ZSk7XG4gICAgcmV0dXJuIHVwZGF0ZWQ7XG4gIH07XG5cbiAgdmFyIGNvcHlXaXRoU2V0ID0gZnVuY3Rpb24gKG9iaiwgcGF0aCwgdmFsdWUpIHtcbiAgICByZXR1cm4gY29weVdpdGhTZXRJbXBsKG9iaiwgcGF0aCwgMCwgdmFsdWUpO1xuICB9O1xuXG4gIHZhciBmaW5kSG9vayA9IGZ1bmN0aW9uIChmaWJlciwgaWQpIHtcbiAgICAvLyBGb3Igbm93LCB0aGUgXCJpZFwiIG9mIHN0YXRlZnVsIGhvb2tzIGlzIGp1c3QgdGhlIHN0YXRlZnVsIGhvb2sgaW5kZXguXG4gICAgLy8gVGhpcyBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgd2l0aCBlLmcuIG5lc3RlZCBob29rcy5cbiAgICB2YXIgY3VycmVudEhvb2sgPSBmaWJlci5tZW1vaXplZFN0YXRlO1xuXG4gICAgd2hpbGUgKGN1cnJlbnRIb29rICE9PSBudWxsICYmIGlkID4gMCkge1xuICAgICAgY3VycmVudEhvb2sgPSBjdXJyZW50SG9vay5uZXh0O1xuICAgICAgaWQtLTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudEhvb2s7XG4gIH07IC8vIFN1cHBvcnQgRGV2VG9vbHMgZWRpdGFibGUgdmFsdWVzIGZvciB1c2VTdGF0ZSBhbmQgdXNlUmVkdWNlci5cblxuXG4gIG92ZXJyaWRlSG9va1N0YXRlID0gZnVuY3Rpb24gKGZpYmVyLCBpZCwgcGF0aCwgdmFsdWUpIHtcbiAgICB2YXIgaG9vayA9IGZpbmRIb29rKGZpYmVyLCBpZCk7XG5cbiAgICBpZiAoaG9vayAhPT0gbnVsbCkge1xuICAgICAgdmFyIG5ld1N0YXRlID0gY29weVdpdGhTZXQoaG9vay5tZW1vaXplZFN0YXRlLCBwYXRoLCB2YWx1ZSk7XG4gICAgICBob29rLm1lbW9pemVkU3RhdGUgPSBuZXdTdGF0ZTtcbiAgICAgIGhvb2suYmFzZVN0YXRlID0gbmV3U3RhdGU7IC8vIFdlIGFyZW4ndCBhY3R1YWxseSBhZGRpbmcgYW4gdXBkYXRlIHRvIHRoZSBxdWV1ZSxcbiAgICAgIC8vIGJlY2F1c2UgdGhlcmUgaXMgbm8gdXBkYXRlIHdlIGNhbiBhZGQgZm9yIHVzZVJlZHVjZXIgaG9va3MgdGhhdCB3b24ndCB0cmlnZ2VyIGFuIGVycm9yLlxuICAgICAgLy8gKFRoZXJlJ3Mgbm8gYXBwcm9wcmlhdGUgYWN0aW9uIHR5cGUgZm9yIERldlRvb2xzIG92ZXJyaWRlcy4pXG4gICAgICAvLyBBcyBhIHJlc3VsdCB0aG91Z2gsIFJlYWN0IHdpbGwgc2VlIHRoZSBzY2hlZHVsZWQgdXBkYXRlIGFzIGEgbm9vcCBhbmQgYmFpbG91dC5cbiAgICAgIC8vIFNoYWxsb3cgY2xvbmluZyBwcm9wcyB3b3JrcyBhcyBhIHdvcmthcm91bmQgZm9yIG5vdyB0byBieXBhc3MgdGhlIGJhaWxvdXQgY2hlY2suXG5cbiAgICAgIGZpYmVyLm1lbW9pemVkUHJvcHMgPSBhc3NpZ24oe30sIGZpYmVyLm1lbW9pemVkUHJvcHMpO1xuICAgICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBTeW5jTGFuZSwgTm9UaW1lc3RhbXApO1xuICAgIH1cbiAgfTtcblxuICBvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGggPSBmdW5jdGlvbiAoZmliZXIsIGlkLCBwYXRoKSB7XG4gICAgdmFyIGhvb2sgPSBmaW5kSG9vayhmaWJlciwgaWQpO1xuXG4gICAgaWYgKGhvb2sgIT09IG51bGwpIHtcbiAgICAgIHZhciBuZXdTdGF0ZSA9IGNvcHlXaXRoRGVsZXRlKGhvb2subWVtb2l6ZWRTdGF0ZSwgcGF0aCk7XG4gICAgICBob29rLm1lbW9pemVkU3RhdGUgPSBuZXdTdGF0ZTtcbiAgICAgIGhvb2suYmFzZVN0YXRlID0gbmV3U3RhdGU7IC8vIFdlIGFyZW4ndCBhY3R1YWxseSBhZGRpbmcgYW4gdXBkYXRlIHRvIHRoZSBxdWV1ZSxcbiAgICAgIC8vIGJlY2F1c2UgdGhlcmUgaXMgbm8gdXBkYXRlIHdlIGNhbiBhZGQgZm9yIHVzZVJlZHVjZXIgaG9va3MgdGhhdCB3b24ndCB0cmlnZ2VyIGFuIGVycm9yLlxuICAgICAgLy8gKFRoZXJlJ3Mgbm8gYXBwcm9wcmlhdGUgYWN0aW9uIHR5cGUgZm9yIERldlRvb2xzIG92ZXJyaWRlcy4pXG4gICAgICAvLyBBcyBhIHJlc3VsdCB0aG91Z2gsIFJlYWN0IHdpbGwgc2VlIHRoZSBzY2hlZHVsZWQgdXBkYXRlIGFzIGEgbm9vcCBhbmQgYmFpbG91dC5cbiAgICAgIC8vIFNoYWxsb3cgY2xvbmluZyBwcm9wcyB3b3JrcyBhcyBhIHdvcmthcm91bmQgZm9yIG5vdyB0byBieXBhc3MgdGhlIGJhaWxvdXQgY2hlY2suXG5cbiAgICAgIGZpYmVyLm1lbW9pemVkUHJvcHMgPSBhc3NpZ24oe30sIGZpYmVyLm1lbW9pemVkUHJvcHMpO1xuICAgICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBTeW5jTGFuZSwgTm9UaW1lc3RhbXApO1xuICAgIH1cbiAgfTtcblxuICBvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGggPSBmdW5jdGlvbiAoZmliZXIsIGlkLCBvbGRQYXRoLCBuZXdQYXRoKSB7XG4gICAgdmFyIGhvb2sgPSBmaW5kSG9vayhmaWJlciwgaWQpO1xuXG4gICAgaWYgKGhvb2sgIT09IG51bGwpIHtcbiAgICAgIHZhciBuZXdTdGF0ZSA9IGNvcHlXaXRoUmVuYW1lKGhvb2subWVtb2l6ZWRTdGF0ZSwgb2xkUGF0aCwgbmV3UGF0aCk7XG4gICAgICBob29rLm1lbW9pemVkU3RhdGUgPSBuZXdTdGF0ZTtcbiAgICAgIGhvb2suYmFzZVN0YXRlID0gbmV3U3RhdGU7IC8vIFdlIGFyZW4ndCBhY3R1YWxseSBhZGRpbmcgYW4gdXBkYXRlIHRvIHRoZSBxdWV1ZSxcbiAgICAgIC8vIGJlY2F1c2UgdGhlcmUgaXMgbm8gdXBkYXRlIHdlIGNhbiBhZGQgZm9yIHVzZVJlZHVjZXIgaG9va3MgdGhhdCB3b24ndCB0cmlnZ2VyIGFuIGVycm9yLlxuICAgICAgLy8gKFRoZXJlJ3Mgbm8gYXBwcm9wcmlhdGUgYWN0aW9uIHR5cGUgZm9yIERldlRvb2xzIG92ZXJyaWRlcy4pXG4gICAgICAvLyBBcyBhIHJlc3VsdCB0aG91Z2gsIFJlYWN0IHdpbGwgc2VlIHRoZSBzY2hlZHVsZWQgdXBkYXRlIGFzIGEgbm9vcCBhbmQgYmFpbG91dC5cbiAgICAgIC8vIFNoYWxsb3cgY2xvbmluZyBwcm9wcyB3b3JrcyBhcyBhIHdvcmthcm91bmQgZm9yIG5vdyB0byBieXBhc3MgdGhlIGJhaWxvdXQgY2hlY2suXG5cbiAgICAgIGZpYmVyLm1lbW9pemVkUHJvcHMgPSBhc3NpZ24oe30sIGZpYmVyLm1lbW9pemVkUHJvcHMpO1xuICAgICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBTeW5jTGFuZSwgTm9UaW1lc3RhbXApO1xuICAgIH1cbiAgfTsgLy8gU3VwcG9ydCBEZXZUb29scyBwcm9wcyBmb3IgZnVuY3Rpb24gY29tcG9uZW50cywgZm9yd2FyZFJlZiwgbWVtbywgaG9zdCBjb21wb25lbnRzLCBldGMuXG5cblxuICBvdmVycmlkZVByb3BzID0gZnVuY3Rpb24gKGZpYmVyLCBwYXRoLCB2YWx1ZSkge1xuICAgIGZpYmVyLnBlbmRpbmdQcm9wcyA9IGNvcHlXaXRoU2V0KGZpYmVyLm1lbW9pemVkUHJvcHMsIHBhdGgsIHZhbHVlKTtcblxuICAgIGlmIChmaWJlci5hbHRlcm5hdGUpIHtcbiAgICAgIGZpYmVyLmFsdGVybmF0ZS5wZW5kaW5nUHJvcHMgPSBmaWJlci5wZW5kaW5nUHJvcHM7XG4gICAgfVxuXG4gICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBTeW5jTGFuZSwgTm9UaW1lc3RhbXApO1xuICB9O1xuXG4gIG92ZXJyaWRlUHJvcHNEZWxldGVQYXRoID0gZnVuY3Rpb24gKGZpYmVyLCBwYXRoKSB7XG4gICAgZmliZXIucGVuZGluZ1Byb3BzID0gY29weVdpdGhEZWxldGUoZmliZXIubWVtb2l6ZWRQcm9wcywgcGF0aCk7XG5cbiAgICBpZiAoZmliZXIuYWx0ZXJuYXRlKSB7XG4gICAgICBmaWJlci5hbHRlcm5hdGUucGVuZGluZ1Byb3BzID0gZmliZXIucGVuZGluZ1Byb3BzO1xuICAgIH1cblxuICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgU3luY0xhbmUsIE5vVGltZXN0YW1wKTtcbiAgfTtcblxuICBvdmVycmlkZVByb3BzUmVuYW1lUGF0aCA9IGZ1bmN0aW9uIChmaWJlciwgb2xkUGF0aCwgbmV3UGF0aCkge1xuICAgIGZpYmVyLnBlbmRpbmdQcm9wcyA9IGNvcHlXaXRoUmVuYW1lKGZpYmVyLm1lbW9pemVkUHJvcHMsIG9sZFBhdGgsIG5ld1BhdGgpO1xuXG4gICAgaWYgKGZpYmVyLmFsdGVybmF0ZSkge1xuICAgICAgZmliZXIuYWx0ZXJuYXRlLnBlbmRpbmdQcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcztcbiAgICB9XG5cbiAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoZmliZXIsIFN5bmNMYW5lLCBOb1RpbWVzdGFtcCk7XG4gIH07XG5cbiAgc2NoZWR1bGVVcGRhdGUgPSBmdW5jdGlvbiAoZmliZXIpIHtcbiAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoZmliZXIsIFN5bmNMYW5lLCBOb1RpbWVzdGFtcCk7XG4gIH07XG5cbiAgc2V0RXJyb3JIYW5kbGVyID0gZnVuY3Rpb24gKG5ld1Nob3VsZEVycm9ySW1wbCkge1xuICAgIHNob3VsZEVycm9ySW1wbCA9IG5ld1Nob3VsZEVycm9ySW1wbDtcbiAgfTtcblxuICBzZXRTdXNwZW5zZUhhbmRsZXIgPSBmdW5jdGlvbiAobmV3U2hvdWxkU3VzcGVuZEltcGwpIHtcbiAgICBzaG91bGRTdXNwZW5kSW1wbCA9IG5ld1Nob3VsZFN1c3BlbmRJbXBsO1xuICB9O1xufVxuXG5mdW5jdGlvbiBmaW5kSG9zdEluc3RhbmNlQnlGaWJlcihmaWJlcikge1xuICB2YXIgaG9zdEZpYmVyID0gZmluZEN1cnJlbnRIb3N0RmliZXIoZmliZXIpO1xuXG4gIGlmIChob3N0RmliZXIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBob3N0RmliZXIuc3RhdGVOb2RlO1xufVxuXG5mdW5jdGlvbiBlbXB0eUZpbmRGaWJlckJ5SG9zdEluc3RhbmNlKGluc3RhbmNlKSB7XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50RmliZXJGb3JEZXZUb29scygpIHtcbiAgcmV0dXJuIGN1cnJlbnQ7XG59XG5cbmZ1bmN0aW9uIGluamVjdEludG9EZXZUb29scyhkZXZUb29sc0NvbmZpZykge1xuICB2YXIgZmluZEZpYmVyQnlIb3N0SW5zdGFuY2UgPSBkZXZUb29sc0NvbmZpZy5maW5kRmliZXJCeUhvc3RJbnN0YW5jZTtcbiAgdmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnREaXNwYXRjaGVyO1xuICByZXR1cm4gaW5qZWN0SW50ZXJuYWxzKHtcbiAgICBidW5kbGVUeXBlOiBkZXZUb29sc0NvbmZpZy5idW5kbGVUeXBlLFxuICAgIHZlcnNpb246IGRldlRvb2xzQ29uZmlnLnZlcnNpb24sXG4gICAgcmVuZGVyZXJQYWNrYWdlTmFtZTogZGV2VG9vbHNDb25maWcucmVuZGVyZXJQYWNrYWdlTmFtZSxcbiAgICByZW5kZXJlckNvbmZpZzogZGV2VG9vbHNDb25maWcucmVuZGVyZXJDb25maWcsXG4gICAgb3ZlcnJpZGVIb29rU3RhdGU6IG92ZXJyaWRlSG9va1N0YXRlLFxuICAgIG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aDogb3ZlcnJpZGVIb29rU3RhdGVEZWxldGVQYXRoLFxuICAgIG92ZXJyaWRlSG9va1N0YXRlUmVuYW1lUGF0aDogb3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoLFxuICAgIG92ZXJyaWRlUHJvcHM6IG92ZXJyaWRlUHJvcHMsXG4gICAgb3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGg6IG92ZXJyaWRlUHJvcHNEZWxldGVQYXRoLFxuICAgIG92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoOiBvdmVycmlkZVByb3BzUmVuYW1lUGF0aCxcbiAgICBzZXRFcnJvckhhbmRsZXI6IHNldEVycm9ySGFuZGxlcixcbiAgICBzZXRTdXNwZW5zZUhhbmRsZXI6IHNldFN1c3BlbnNlSGFuZGxlcixcbiAgICBzY2hlZHVsZVVwZGF0ZTogc2NoZWR1bGVVcGRhdGUsXG4gICAgY3VycmVudERpc3BhdGNoZXJSZWY6IFJlYWN0Q3VycmVudERpc3BhdGNoZXIsXG4gICAgZmluZEhvc3RJbnN0YW5jZUJ5RmliZXI6IGZpbmRIb3N0SW5zdGFuY2VCeUZpYmVyLFxuICAgIGZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOiBmaW5kRmliZXJCeUhvc3RJbnN0YW5jZSB8fCBlbXB0eUZpbmRGaWJlckJ5SG9zdEluc3RhbmNlLFxuICAgIC8vIFJlYWN0IFJlZnJlc2hcbiAgICBmaW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2g6ICBmaW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2ggLFxuICAgIHNjaGVkdWxlUmVmcmVzaDogIHNjaGVkdWxlUmVmcmVzaCAsXG4gICAgc2NoZWR1bGVSb290OiAgc2NoZWR1bGVSb290ICxcbiAgICBzZXRSZWZyZXNoSGFuZGxlcjogIHNldFJlZnJlc2hIYW5kbGVyICxcbiAgICAvLyBFbmFibGVzIERldlRvb2xzIHRvIGFwcGVuZCBvd25lciBzdGFja3MgdG8gZXJyb3IgbWVzc2FnZXMgaW4gREVWIG1vZGUuXG4gICAgZ2V0Q3VycmVudEZpYmVyOiAgZ2V0Q3VycmVudEZpYmVyRm9yRGV2VG9vbHMgLFxuICAgIC8vIEVuYWJsZXMgRGV2VG9vbHMgdG8gZGV0ZWN0IHJlY29uY2lsZXIgdmVyc2lvbiByYXRoZXIgdGhhbiByZW5kZXJlciB2ZXJzaW9uXG4gICAgLy8gd2hpY2ggbWF5IG5vdCBtYXRjaCBmb3IgdGhpcmQgcGFydHkgcmVuZGVyZXJzLlxuICAgIHJlY29uY2lsZXJWZXJzaW9uOiBSZWFjdFZlcnNpb25cbiAgfSk7XG59XG5cbi8qIGdsb2JhbCByZXBvcnRFcnJvciAqL1xuXG52YXIgZGVmYXVsdE9uUmVjb3ZlcmFibGVFcnJvciA9IHR5cGVvZiByZXBvcnRFcnJvciA9PT0gJ2Z1bmN0aW9uJyA/IC8vIEluIG1vZGVybiBicm93c2VycywgcmVwb3J0RXJyb3Igd2lsbCBkaXNwYXRjaCBhbiBlcnJvciBldmVudCxcbi8vIGVtdWxhdGluZyBhbiB1bmNhdWdodCBKYXZhU2NyaXB0IGVycm9yLlxucmVwb3J0RXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgLy8gSW4gb2xkZXIgYnJvd3NlcnMgYW5kIHRlc3QgZW52aXJvbm1lbnRzLCBmYWxsYmFjayB0byBjb25zb2xlLmVycm9yLlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nXG4gIGNvbnNvbGVbJ2Vycm9yJ10oZXJyb3IpO1xufTtcblxuZnVuY3Rpb24gUmVhY3RET01Sb290KGludGVybmFsUm9vdCkge1xuICB0aGlzLl9pbnRlcm5hbFJvb3QgPSBpbnRlcm5hbFJvb3Q7XG59XG5cblJlYWN0RE9NSHlkcmF0aW9uUm9vdC5wcm90b3R5cGUucmVuZGVyID0gUmVhY3RET01Sb290LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgdmFyIHJvb3QgPSB0aGlzLl9pbnRlcm5hbFJvb3Q7XG5cbiAgaWYgKHJvb3QgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1cGRhdGUgYW4gdW5tb3VudGVkIHJvb3QuJyk7XG4gIH1cblxuICB7XG4gICAgaWYgKHR5cGVvZiBhcmd1bWVudHNbMV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCdyZW5kZXIoLi4uKTogZG9lcyBub3Qgc3VwcG9ydCB0aGUgc2Vjb25kIGNhbGxiYWNrIGFyZ3VtZW50LiAnICsgJ1RvIGV4ZWN1dGUgYSBzaWRlIGVmZmVjdCBhZnRlciByZW5kZXJpbmcsIGRlY2xhcmUgaXQgaW4gYSBjb21wb25lbnQgYm9keSB3aXRoIHVzZUVmZmVjdCgpLicpO1xuICAgIH0gZWxzZSBpZiAoaXNWYWxpZENvbnRhaW5lcihhcmd1bWVudHNbMV0pKSB7XG4gICAgICBlcnJvcignWW91IHBhc3NlZCBhIGNvbnRhaW5lciB0byB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIHJvb3QucmVuZGVyKC4uLikuICcgKyBcIllvdSBkb24ndCBuZWVkIHRvIHBhc3MgaXQgYWdhaW4gc2luY2UgeW91IGFscmVhZHkgcGFzc2VkIGl0IHRvIGNyZWF0ZSB0aGUgcm9vdC5cIik7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYXJndW1lbnRzWzFdICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZXJyb3IoJ1lvdSBwYXNzZWQgYSBzZWNvbmQgYXJndW1lbnQgdG8gcm9vdC5yZW5kZXIoLi4uKSBidXQgaXQgb25seSBhY2NlcHRzICcgKyAnb25lIGFyZ3VtZW50LicpO1xuICAgIH1cblxuICAgIHZhciBjb250YWluZXIgPSByb290LmNvbnRhaW5lckluZm87XG5cbiAgICBpZiAoY29udGFpbmVyLm5vZGVUeXBlICE9PSBDT01NRU5UX05PREUpIHtcbiAgICAgIHZhciBob3N0SW5zdGFuY2UgPSBmaW5kSG9zdEluc3RhbmNlV2l0aE5vUG9ydGFscyhyb290LmN1cnJlbnQpO1xuXG4gICAgICBpZiAoaG9zdEluc3RhbmNlKSB7XG4gICAgICAgIGlmIChob3N0SW5zdGFuY2UucGFyZW50Tm9kZSAhPT0gY29udGFpbmVyKSB7XG4gICAgICAgICAgZXJyb3IoJ3JlbmRlciguLi4pOiBJdCBsb29rcyBsaWtlIHRoZSBSZWFjdC1yZW5kZXJlZCBjb250ZW50IG9mIHRoZSAnICsgJ3Jvb3QgY29udGFpbmVyIHdhcyByZW1vdmVkIHdpdGhvdXQgdXNpbmcgUmVhY3QuIFRoaXMgaXMgbm90ICcgKyAnc3VwcG9ydGVkIGFuZCB3aWxsIGNhdXNlIGVycm9ycy4gSW5zdGVhZCwgY2FsbCAnICsgXCJyb290LnVubW91bnQoKSB0byBlbXB0eSBhIHJvb3QncyBjb250YWluZXIuXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlQ29udGFpbmVyKGNoaWxkcmVuLCByb290LCBudWxsLCBudWxsKTtcbn07XG5cblJlYWN0RE9NSHlkcmF0aW9uUm9vdC5wcm90b3R5cGUudW5tb3VudCA9IFJlYWN0RE9NUm9vdC5wcm90b3R5cGUudW5tb3VudCA9IGZ1bmN0aW9uICgpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgYXJndW1lbnRzWzBdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcigndW5tb3VudCguLi4pOiBkb2VzIG5vdCBzdXBwb3J0IGEgY2FsbGJhY2sgYXJndW1lbnQuICcgKyAnVG8gZXhlY3V0ZSBhIHNpZGUgZWZmZWN0IGFmdGVyIHJlbmRlcmluZywgZGVjbGFyZSBpdCBpbiBhIGNvbXBvbmVudCBib2R5IHdpdGggdXNlRWZmZWN0KCkuJyk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHJvb3QgPSB0aGlzLl9pbnRlcm5hbFJvb3Q7XG5cbiAgaWYgKHJvb3QgIT09IG51bGwpIHtcbiAgICB0aGlzLl9pbnRlcm5hbFJvb3QgPSBudWxsO1xuICAgIHZhciBjb250YWluZXIgPSByb290LmNvbnRhaW5lckluZm87XG5cbiAgICB7XG4gICAgICBpZiAoaXNBbHJlYWR5UmVuZGVyaW5nKCkpIHtcbiAgICAgICAgZXJyb3IoJ0F0dGVtcHRlZCB0byBzeW5jaHJvbm91c2x5IHVubW91bnQgYSByb290IHdoaWxlIFJlYWN0IHdhcyBhbHJlYWR5ICcgKyAncmVuZGVyaW5nLiBSZWFjdCBjYW5ub3QgZmluaXNoIHVubW91bnRpbmcgdGhlIHJvb3QgdW50aWwgdGhlICcgKyAnY3VycmVudCByZW5kZXIgaGFzIGNvbXBsZXRlZCwgd2hpY2ggbWF5IGxlYWQgdG8gYSByYWNlIGNvbmRpdGlvbi4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmbHVzaFN5bmMoZnVuY3Rpb24gKCkge1xuICAgICAgdXBkYXRlQ29udGFpbmVyKG51bGwsIHJvb3QsIG51bGwsIG51bGwpO1xuICAgIH0pO1xuICAgIHVubWFya0NvbnRhaW5lckFzUm9vdChjb250YWluZXIpO1xuICB9XG59O1xuXG5mdW5jdGlvbiBjcmVhdGVSb290KGNvbnRhaW5lciwgb3B0aW9ucykge1xuICBpZiAoIWlzVmFsaWRDb250YWluZXIoY29udGFpbmVyKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignY3JlYXRlUm9vdCguLi4pOiBUYXJnZXQgY29udGFpbmVyIGlzIG5vdCBhIERPTSBlbGVtZW50LicpO1xuICB9XG5cbiAgd2FybklmUmVhY3RET01Db250YWluZXJJbkRFVihjb250YWluZXIpO1xuICB2YXIgaXNTdHJpY3RNb2RlID0gZmFsc2U7XG4gIHZhciBjb25jdXJyZW50VXBkYXRlc0J5RGVmYXVsdE92ZXJyaWRlID0gZmFsc2U7XG4gIHZhciBpZGVudGlmaWVyUHJlZml4ID0gJyc7XG4gIHZhciBvblJlY292ZXJhYmxlRXJyb3IgPSBkZWZhdWx0T25SZWNvdmVyYWJsZUVycm9yO1xuICB2YXIgdHJhbnNpdGlvbkNhbGxiYWNrcyA9IG51bGw7XG5cbiAgaWYgKG9wdGlvbnMgIT09IG51bGwgJiYgb3B0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAge1xuICAgICAgaWYgKG9wdGlvbnMuaHlkcmF0ZSkge1xuICAgICAgICB3YXJuKCdoeWRyYXRlIHRocm91Z2ggY3JlYXRlUm9vdCBpcyBkZXByZWNhdGVkLiBVc2UgUmVhY3RET01DbGllbnQuaHlkcmF0ZVJvb3QoY29udGFpbmVyLCA8QXBwIC8+KSBpbnN0ZWFkLicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnb2JqZWN0JyAmJiBvcHRpb25zICE9PSBudWxsICYmIG9wdGlvbnMuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSkge1xuICAgICAgICAgIGVycm9yKCdZb3UgcGFzc2VkIGEgSlNYIGVsZW1lbnQgdG8gY3JlYXRlUm9vdC4gWW91IHByb2JhYmx5IG1lYW50IHRvICcgKyAnY2FsbCByb290LnJlbmRlciBpbnN0ZWFkLiAnICsgJ0V4YW1wbGUgdXNhZ2U6XFxuXFxuJyArICcgIGxldCByb290ID0gY3JlYXRlUm9vdChkb21Db250YWluZXIpO1xcbicgKyAnICByb290LnJlbmRlcig8QXBwIC8+KTsnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnVuc3RhYmxlX3N0cmljdE1vZGUgPT09IHRydWUpIHtcbiAgICAgIGlzU3RyaWN0TW9kZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaWRlbnRpZmllclByZWZpeCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZGVudGlmaWVyUHJlZml4ID0gb3B0aW9ucy5pZGVudGlmaWVyUHJlZml4O1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLm9uUmVjb3ZlcmFibGVFcnJvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvblJlY292ZXJhYmxlRXJyb3IgPSBvcHRpb25zLm9uUmVjb3ZlcmFibGVFcnJvcjtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy50cmFuc2l0aW9uQ2FsbGJhY2tzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRyYW5zaXRpb25DYWxsYmFja3MgPSBvcHRpb25zLnRyYW5zaXRpb25DYWxsYmFja3M7XG4gICAgfVxuICB9XG5cbiAgdmFyIHJvb3QgPSBjcmVhdGVDb250YWluZXIoY29udGFpbmVyLCBDb25jdXJyZW50Um9vdCwgbnVsbCwgaXNTdHJpY3RNb2RlLCBjb25jdXJyZW50VXBkYXRlc0J5RGVmYXVsdE92ZXJyaWRlLCBpZGVudGlmaWVyUHJlZml4LCBvblJlY292ZXJhYmxlRXJyb3IpO1xuICBtYXJrQ29udGFpbmVyQXNSb290KHJvb3QuY3VycmVudCwgY29udGFpbmVyKTtcbiAgdmFyIHJvb3RDb250YWluZXJFbGVtZW50ID0gY29udGFpbmVyLm5vZGVUeXBlID09PSBDT01NRU5UX05PREUgPyBjb250YWluZXIucGFyZW50Tm9kZSA6IGNvbnRhaW5lcjtcbiAgbGlzdGVuVG9BbGxTdXBwb3J0ZWRFdmVudHMocm9vdENvbnRhaW5lckVsZW1lbnQpO1xuICByZXR1cm4gbmV3IFJlYWN0RE9NUm9vdChyb290KTtcbn1cblxuZnVuY3Rpb24gUmVhY3RET01IeWRyYXRpb25Sb290KGludGVybmFsUm9vdCkge1xuICB0aGlzLl9pbnRlcm5hbFJvb3QgPSBpbnRlcm5hbFJvb3Q7XG59XG5cbmZ1bmN0aW9uIHNjaGVkdWxlSHlkcmF0aW9uKHRhcmdldCkge1xuICBpZiAodGFyZ2V0KSB7XG4gICAgcXVldWVFeHBsaWNpdEh5ZHJhdGlvblRhcmdldCh0YXJnZXQpO1xuICB9XG59XG5cblJlYWN0RE9NSHlkcmF0aW9uUm9vdC5wcm90b3R5cGUudW5zdGFibGVfc2NoZWR1bGVIeWRyYXRpb24gPSBzY2hlZHVsZUh5ZHJhdGlvbjtcbmZ1bmN0aW9uIGh5ZHJhdGVSb290KGNvbnRhaW5lciwgaW5pdGlhbENoaWxkcmVuLCBvcHRpb25zKSB7XG4gIGlmICghaXNWYWxpZENvbnRhaW5lcihjb250YWluZXIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdoeWRyYXRlUm9vdCguLi4pOiBUYXJnZXQgY29udGFpbmVyIGlzIG5vdCBhIERPTSBlbGVtZW50LicpO1xuICB9XG5cbiAgd2FybklmUmVhY3RET01Db250YWluZXJJbkRFVihjb250YWluZXIpO1xuXG4gIHtcbiAgICBpZiAoaW5pdGlhbENoaWxkcmVuID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGVycm9yKCdNdXN0IHByb3ZpZGUgaW5pdGlhbCBjaGlsZHJlbiBhcyBzZWNvbmQgYXJndW1lbnQgdG8gaHlkcmF0ZVJvb3QuICcgKyAnRXhhbXBsZSB1c2FnZTogaHlkcmF0ZVJvb3QoZG9tQ29udGFpbmVyLCA8QXBwIC8+KScpO1xuICAgIH1cbiAgfSAvLyBGb3Igbm93IHdlIHJldXNlIHRoZSB3aG9sZSBiYWcgb2Ygb3B0aW9ucyBzaW5jZSB0aGV5IGNvbnRhaW5cbiAgLy8gdGhlIGh5ZHJhdGlvbiBjYWxsYmFja3MuXG5cblxuICB2YXIgaHlkcmF0aW9uQ2FsbGJhY2tzID0gb3B0aW9ucyAhPSBudWxsID8gb3B0aW9ucyA6IG51bGw7IC8vIFRPRE86IERlbGV0ZSB0aGlzIG9wdGlvblxuXG4gIHZhciBtdXRhYmxlU291cmNlcyA9IG9wdGlvbnMgIT0gbnVsbCAmJiBvcHRpb25zLmh5ZHJhdGVkU291cmNlcyB8fCBudWxsO1xuICB2YXIgaXNTdHJpY3RNb2RlID0gZmFsc2U7XG4gIHZhciBjb25jdXJyZW50VXBkYXRlc0J5RGVmYXVsdE92ZXJyaWRlID0gZmFsc2U7XG4gIHZhciBpZGVudGlmaWVyUHJlZml4ID0gJyc7XG4gIHZhciBvblJlY292ZXJhYmxlRXJyb3IgPSBkZWZhdWx0T25SZWNvdmVyYWJsZUVycm9yO1xuXG4gIGlmIChvcHRpb25zICE9PSBudWxsICYmIG9wdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmIChvcHRpb25zLnVuc3RhYmxlX3N0cmljdE1vZGUgPT09IHRydWUpIHtcbiAgICAgIGlzU3RyaWN0TW9kZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaWRlbnRpZmllclByZWZpeCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZGVudGlmaWVyUHJlZml4ID0gb3B0aW9ucy5pZGVudGlmaWVyUHJlZml4O1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLm9uUmVjb3ZlcmFibGVFcnJvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvblJlY292ZXJhYmxlRXJyb3IgPSBvcHRpb25zLm9uUmVjb3ZlcmFibGVFcnJvcjtcbiAgICB9XG4gIH1cblxuICB2YXIgcm9vdCA9IGNyZWF0ZUh5ZHJhdGlvbkNvbnRhaW5lcihpbml0aWFsQ2hpbGRyZW4sIG51bGwsIGNvbnRhaW5lciwgQ29uY3VycmVudFJvb3QsIGh5ZHJhdGlvbkNhbGxiYWNrcywgaXNTdHJpY3RNb2RlLCBjb25jdXJyZW50VXBkYXRlc0J5RGVmYXVsdE92ZXJyaWRlLCBpZGVudGlmaWVyUHJlZml4LCBvblJlY292ZXJhYmxlRXJyb3IpO1xuICBtYXJrQ29udGFpbmVyQXNSb290KHJvb3QuY3VycmVudCwgY29udGFpbmVyKTsgLy8gVGhpcyBjYW4ndCBiZSBhIGNvbW1lbnQgbm9kZSBzaW5jZSBoeWRyYXRpb24gZG9lc24ndCB3b3JrIG9uIGNvbW1lbnQgbm9kZXMgYW55d2F5LlxuXG4gIGxpc3RlblRvQWxsU3VwcG9ydGVkRXZlbnRzKGNvbnRhaW5lcik7XG5cbiAgaWYgKG11dGFibGVTb3VyY2VzKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtdXRhYmxlU291cmNlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIG11dGFibGVTb3VyY2UgPSBtdXRhYmxlU291cmNlc1tpXTtcbiAgICAgIHJlZ2lzdGVyTXV0YWJsZVNvdXJjZUZvckh5ZHJhdGlvbihyb290LCBtdXRhYmxlU291cmNlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFJlYWN0RE9NSHlkcmF0aW9uUm9vdChyb290KTtcbn1cbmZ1bmN0aW9uIGlzVmFsaWRDb250YWluZXIobm9kZSkge1xuICByZXR1cm4gISEobm9kZSAmJiAobm9kZS5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFIHx8IG5vZGUubm9kZVR5cGUgPT09IERPQ1VNRU5UX05PREUgfHwgbm9kZS5ub2RlVHlwZSA9PT0gRE9DVU1FTlRfRlJBR01FTlRfTk9ERSB8fCAhZGlzYWJsZUNvbW1lbnRzQXNET01Db250YWluZXJzICApKTtcbn0gLy8gVE9ETzogUmVtb3ZlIHRoaXMgZnVuY3Rpb24gd2hpY2ggYWxzbyBpbmNsdWRlcyBjb21tZW50IG5vZGVzLlxuLy8gV2Ugb25seSB1c2UgaXQgaW4gcGxhY2VzIHRoYXQgYXJlIGN1cnJlbnRseSBtb3JlIHJlbGF4ZWQuXG5cbmZ1bmN0aW9uIGlzVmFsaWRDb250YWluZXJMZWdhY3kobm9kZSkge1xuICByZXR1cm4gISEobm9kZSAmJiAobm9kZS5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFIHx8IG5vZGUubm9kZVR5cGUgPT09IERPQ1VNRU5UX05PREUgfHwgbm9kZS5ub2RlVHlwZSA9PT0gRE9DVU1FTlRfRlJBR01FTlRfTk9ERSB8fCBub2RlLm5vZGVUeXBlID09PSBDT01NRU5UX05PREUgJiYgbm9kZS5ub2RlVmFsdWUgPT09ICcgcmVhY3QtbW91bnQtcG9pbnQtdW5zdGFibGUgJykpO1xufVxuXG5mdW5jdGlvbiB3YXJuSWZSZWFjdERPTUNvbnRhaW5lckluREVWKGNvbnRhaW5lcikge1xuICB7XG4gICAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFICYmIGNvbnRhaW5lci50YWdOYW1lICYmIGNvbnRhaW5lci50YWdOYW1lLnRvVXBwZXJDYXNlKCkgPT09ICdCT0RZJykge1xuICAgICAgZXJyb3IoJ2NyZWF0ZVJvb3QoKTogQ3JlYXRpbmcgcm9vdHMgZGlyZWN0bHkgd2l0aCBkb2N1bWVudC5ib2R5IGlzICcgKyAnZGlzY291cmFnZWQsIHNpbmNlIGl0cyBjaGlsZHJlbiBhcmUgb2Z0ZW4gbWFuaXB1bGF0ZWQgYnkgdGhpcmQtcGFydHkgJyArICdzY3JpcHRzIGFuZCBicm93c2VyIGV4dGVuc2lvbnMuIFRoaXMgbWF5IGxlYWQgdG8gc3VidGxlICcgKyAncmVjb25jaWxpYXRpb24gaXNzdWVzLiBUcnkgdXNpbmcgYSBjb250YWluZXIgZWxlbWVudCBjcmVhdGVkICcgKyAnZm9yIHlvdXIgYXBwLicpO1xuICAgIH1cblxuICAgIGlmIChpc0NvbnRhaW5lck1hcmtlZEFzUm9vdChjb250YWluZXIpKSB7XG4gICAgICBpZiAoY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXIpIHtcbiAgICAgICAgZXJyb3IoJ1lvdSBhcmUgY2FsbGluZyBSZWFjdERPTUNsaWVudC5jcmVhdGVSb290KCkgb24gYSBjb250YWluZXIgdGhhdCB3YXMgcHJldmlvdXNseSAnICsgJ3Bhc3NlZCB0byBSZWFjdERPTS5yZW5kZXIoKS4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkLicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3IoJ1lvdSBhcmUgY2FsbGluZyBSZWFjdERPTUNsaWVudC5jcmVhdGVSb290KCkgb24gYSBjb250YWluZXIgdGhhdCAnICsgJ2hhcyBhbHJlYWR5IGJlZW4gcGFzc2VkIHRvIGNyZWF0ZVJvb3QoKSBiZWZvcmUuIEluc3RlYWQsIGNhbGwgJyArICdyb290LnJlbmRlcigpIG9uIHRoZSBleGlzdGluZyByb290IGluc3RlYWQgaWYgeW91IHdhbnQgdG8gdXBkYXRlIGl0LicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgUmVhY3RDdXJyZW50T3duZXIkMyA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudE93bmVyO1xudmFyIHRvcExldmVsVXBkYXRlV2FybmluZ3M7XG5cbntcbiAgdG9wTGV2ZWxVcGRhdGVXYXJuaW5ncyA9IGZ1bmN0aW9uIChjb250YWluZXIpIHtcbiAgICBpZiAoY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXIgJiYgY29udGFpbmVyLm5vZGVUeXBlICE9PSBDT01NRU5UX05PREUpIHtcbiAgICAgIHZhciBob3N0SW5zdGFuY2UgPSBmaW5kSG9zdEluc3RhbmNlV2l0aE5vUG9ydGFscyhjb250YWluZXIuX3JlYWN0Um9vdENvbnRhaW5lci5jdXJyZW50KTtcblxuICAgICAgaWYgKGhvc3RJbnN0YW5jZSkge1xuICAgICAgICBpZiAoaG9zdEluc3RhbmNlLnBhcmVudE5vZGUgIT09IGNvbnRhaW5lcikge1xuICAgICAgICAgIGVycm9yKCdyZW5kZXIoLi4uKTogSXQgbG9va3MgbGlrZSB0aGUgUmVhY3QtcmVuZGVyZWQgY29udGVudCBvZiB0aGlzICcgKyAnY29udGFpbmVyIHdhcyByZW1vdmVkIHdpdGhvdXQgdXNpbmcgUmVhY3QuIFRoaXMgaXMgbm90ICcgKyAnc3VwcG9ydGVkIGFuZCB3aWxsIGNhdXNlIGVycm9ycy4gSW5zdGVhZCwgY2FsbCAnICsgJ1JlYWN0RE9NLnVubW91bnRDb21wb25lbnRBdE5vZGUgdG8gZW1wdHkgYSBjb250YWluZXIuJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgaXNSb290UmVuZGVyZWRCeVNvbWVSZWFjdCA9ICEhY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXI7XG4gICAgdmFyIHJvb3RFbCA9IGdldFJlYWN0Um9vdEVsZW1lbnRJbkNvbnRhaW5lcihjb250YWluZXIpO1xuICAgIHZhciBoYXNOb25Sb290UmVhY3RDaGlsZCA9ICEhKHJvb3RFbCAmJiBnZXRJbnN0YW5jZUZyb21Ob2RlKHJvb3RFbCkpO1xuXG4gICAgaWYgKGhhc05vblJvb3RSZWFjdENoaWxkICYmICFpc1Jvb3RSZW5kZXJlZEJ5U29tZVJlYWN0KSB7XG4gICAgICBlcnJvcigncmVuZGVyKC4uLik6IFJlcGxhY2luZyBSZWFjdC1yZW5kZXJlZCBjaGlsZHJlbiB3aXRoIGEgbmV3IHJvb3QgJyArICdjb21wb25lbnQuIElmIHlvdSBpbnRlbmRlZCB0byB1cGRhdGUgdGhlIGNoaWxkcmVuIG9mIHRoaXMgbm9kZSwgJyArICd5b3Ugc2hvdWxkIGluc3RlYWQgaGF2ZSB0aGUgZXhpc3RpbmcgY2hpbGRyZW4gdXBkYXRlIHRoZWlyIHN0YXRlICcgKyAnYW5kIHJlbmRlciB0aGUgbmV3IGNvbXBvbmVudHMgaW5zdGVhZCBvZiBjYWxsaW5nIFJlYWN0RE9NLnJlbmRlci4nKTtcbiAgICB9XG5cbiAgICBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREUgJiYgY29udGFpbmVyLnRhZ05hbWUgJiYgY29udGFpbmVyLnRhZ05hbWUudG9VcHBlckNhc2UoKSA9PT0gJ0JPRFknKSB7XG4gICAgICBlcnJvcigncmVuZGVyKCk6IFJlbmRlcmluZyBjb21wb25lbnRzIGRpcmVjdGx5IGludG8gZG9jdW1lbnQuYm9keSBpcyAnICsgJ2Rpc2NvdXJhZ2VkLCBzaW5jZSBpdHMgY2hpbGRyZW4gYXJlIG9mdGVuIG1hbmlwdWxhdGVkIGJ5IHRoaXJkLXBhcnR5ICcgKyAnc2NyaXB0cyBhbmQgYnJvd3NlciBleHRlbnNpb25zLiBUaGlzIG1heSBsZWFkIHRvIHN1YnRsZSAnICsgJ3JlY29uY2lsaWF0aW9uIGlzc3Vlcy4gVHJ5IHJlbmRlcmluZyBpbnRvIGEgY29udGFpbmVyIGVsZW1lbnQgY3JlYXRlZCAnICsgJ2ZvciB5b3VyIGFwcC4nKTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFJlYWN0Um9vdEVsZW1lbnRJbkNvbnRhaW5lcihjb250YWluZXIpIHtcbiAgaWYgKCFjb250YWluZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChjb250YWluZXIubm9kZVR5cGUgPT09IERPQ1VNRU5UX05PREUpIHtcbiAgICByZXR1cm4gY29udGFpbmVyLmRvY3VtZW50RWxlbWVudDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY29udGFpbmVyLmZpcnN0Q2hpbGQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gbm9vcE9uUmVjb3ZlcmFibGVFcnJvcigpIHsvLyBUaGlzIGlzbid0IHJlYWNoYWJsZSBiZWNhdXNlIG9uUmVjb3ZlcmFibGVFcnJvciBpc24ndCBjYWxsZWQgaW4gdGhlXG4gIC8vIGxlZ2FjeSBBUEkuXG59XG5cbmZ1bmN0aW9uIGxlZ2FjeUNyZWF0ZVJvb3RGcm9tRE9NQ29udGFpbmVyKGNvbnRhaW5lciwgaW5pdGlhbENoaWxkcmVuLCBwYXJlbnRDb21wb25lbnQsIGNhbGxiYWNrLCBpc0h5ZHJhdGlvbkNvbnRhaW5lcikge1xuICBpZiAoaXNIeWRyYXRpb25Db250YWluZXIpIHtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgb3JpZ2luYWxDYWxsYmFjayA9IGNhbGxiYWNrO1xuXG4gICAgICBjYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGluc3RhbmNlID0gZ2V0UHVibGljUm9vdEluc3RhbmNlKHJvb3QpO1xuICAgICAgICBvcmlnaW5hbENhbGxiYWNrLmNhbGwoaW5zdGFuY2UpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgcm9vdCA9IGNyZWF0ZUh5ZHJhdGlvbkNvbnRhaW5lcihpbml0aWFsQ2hpbGRyZW4sIGNhbGxiYWNrLCBjb250YWluZXIsIExlZ2FjeVJvb3QsIG51bGwsIC8vIGh5ZHJhdGlvbkNhbGxiYWNrc1xuICAgIGZhbHNlLCAvLyBpc1N0cmljdE1vZGVcbiAgICBmYWxzZSwgLy8gY29uY3VycmVudFVwZGF0ZXNCeURlZmF1bHRPdmVycmlkZSxcbiAgICAnJywgLy8gaWRlbnRpZmllclByZWZpeFxuICAgIG5vb3BPblJlY292ZXJhYmxlRXJyb3IpO1xuICAgIGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyID0gcm9vdDtcbiAgICBtYXJrQ29udGFpbmVyQXNSb290KHJvb3QuY3VycmVudCwgY29udGFpbmVyKTtcbiAgICB2YXIgcm9vdENvbnRhaW5lckVsZW1lbnQgPSBjb250YWluZXIubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSA/IGNvbnRhaW5lci5wYXJlbnROb2RlIDogY29udGFpbmVyO1xuICAgIGxpc3RlblRvQWxsU3VwcG9ydGVkRXZlbnRzKHJvb3RDb250YWluZXJFbGVtZW50KTtcbiAgICBmbHVzaFN5bmMoKTtcbiAgICByZXR1cm4gcm9vdDtcbiAgfSBlbHNlIHtcbiAgICAvLyBGaXJzdCBjbGVhciBhbnkgZXhpc3RpbmcgY29udGVudC5cbiAgICB2YXIgcm9vdFNpYmxpbmc7XG5cbiAgICB3aGlsZSAocm9vdFNpYmxpbmcgPSBjb250YWluZXIubGFzdENoaWxkKSB7XG4gICAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQocm9vdFNpYmxpbmcpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBfb3JpZ2luYWxDYWxsYmFjayA9IGNhbGxiYWNrO1xuXG4gICAgICBjYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGluc3RhbmNlID0gZ2V0UHVibGljUm9vdEluc3RhbmNlKF9yb290KTtcblxuICAgICAgICBfb3JpZ2luYWxDYWxsYmFjay5jYWxsKGluc3RhbmNlKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIF9yb290ID0gY3JlYXRlQ29udGFpbmVyKGNvbnRhaW5lciwgTGVnYWN5Um9vdCwgbnVsbCwgLy8gaHlkcmF0aW9uQ2FsbGJhY2tzXG4gICAgZmFsc2UsIC8vIGlzU3RyaWN0TW9kZVxuICAgIGZhbHNlLCAvLyBjb25jdXJyZW50VXBkYXRlc0J5RGVmYXVsdE92ZXJyaWRlLFxuICAgICcnLCAvLyBpZGVudGlmaWVyUHJlZml4XG4gICAgbm9vcE9uUmVjb3ZlcmFibGVFcnJvcik7XG5cbiAgICBjb250YWluZXIuX3JlYWN0Um9vdENvbnRhaW5lciA9IF9yb290O1xuICAgIG1hcmtDb250YWluZXJBc1Jvb3QoX3Jvb3QuY3VycmVudCwgY29udGFpbmVyKTtcblxuICAgIHZhciBfcm9vdENvbnRhaW5lckVsZW1lbnQgPSBjb250YWluZXIubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSA/IGNvbnRhaW5lci5wYXJlbnROb2RlIDogY29udGFpbmVyO1xuXG4gICAgbGlzdGVuVG9BbGxTdXBwb3J0ZWRFdmVudHMoX3Jvb3RDb250YWluZXJFbGVtZW50KTsgLy8gSW5pdGlhbCBtb3VudCBzaG91bGQgbm90IGJlIGJhdGNoZWQuXG5cbiAgICBmbHVzaFN5bmMoZnVuY3Rpb24gKCkge1xuICAgICAgdXBkYXRlQ29udGFpbmVyKGluaXRpYWxDaGlsZHJlbiwgX3Jvb3QsIHBhcmVudENvbXBvbmVudCwgY2FsbGJhY2spO1xuICAgIH0pO1xuICAgIHJldHVybiBfcm9vdDtcbiAgfVxufVxuXG5mdW5jdGlvbiB3YXJuT25JbnZhbGlkQ2FsbGJhY2skMShjYWxsYmFjaywgY2FsbGVyTmFtZSkge1xuICB7XG4gICAgaWYgKGNhbGxiYWNrICE9PSBudWxsICYmIHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJyVzKC4uLik6IEV4cGVjdGVkIHRoZSBsYXN0IG9wdGlvbmFsIGBjYWxsYmFja2AgYXJndW1lbnQgdG8gYmUgYSAnICsgJ2Z1bmN0aW9uLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy4nLCBjYWxsZXJOYW1lLCBjYWxsYmFjayk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGxlZ2FjeVJlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyKHBhcmVudENvbXBvbmVudCwgY2hpbGRyZW4sIGNvbnRhaW5lciwgZm9yY2VIeWRyYXRlLCBjYWxsYmFjaykge1xuICB7XG4gICAgdG9wTGV2ZWxVcGRhdGVXYXJuaW5ncyhjb250YWluZXIpO1xuICAgIHdhcm5PbkludmFsaWRDYWxsYmFjayQxKGNhbGxiYWNrID09PSB1bmRlZmluZWQgPyBudWxsIDogY2FsbGJhY2ssICdyZW5kZXInKTtcbiAgfVxuXG4gIHZhciBtYXliZVJvb3QgPSBjb250YWluZXIuX3JlYWN0Um9vdENvbnRhaW5lcjtcbiAgdmFyIHJvb3Q7XG5cbiAgaWYgKCFtYXliZVJvb3QpIHtcbiAgICAvLyBJbml0aWFsIG1vdW50XG4gICAgcm9vdCA9IGxlZ2FjeUNyZWF0ZVJvb3RGcm9tRE9NQ29udGFpbmVyKGNvbnRhaW5lciwgY2hpbGRyZW4sIHBhcmVudENvbXBvbmVudCwgY2FsbGJhY2ssIGZvcmNlSHlkcmF0ZSk7XG4gIH0gZWxzZSB7XG4gICAgcm9vdCA9IG1heWJlUm9vdDtcblxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBvcmlnaW5hbENhbGxiYWNrID0gY2FsbGJhY2s7XG5cbiAgICAgIGNhbGxiYWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgaW5zdGFuY2UgPSBnZXRQdWJsaWNSb290SW5zdGFuY2Uocm9vdCk7XG4gICAgICAgIG9yaWdpbmFsQ2FsbGJhY2suY2FsbChpbnN0YW5jZSk7XG4gICAgICB9O1xuICAgIH0gLy8gVXBkYXRlXG5cblxuICAgIHVwZGF0ZUNvbnRhaW5lcihjaGlsZHJlbiwgcm9vdCwgcGFyZW50Q29tcG9uZW50LCBjYWxsYmFjayk7XG4gIH1cblxuICByZXR1cm4gZ2V0UHVibGljUm9vdEluc3RhbmNlKHJvb3QpO1xufVxuXG5mdW5jdGlvbiBmaW5kRE9NTm9kZShjb21wb25lbnRPckVsZW1lbnQpIHtcbiAge1xuICAgIHZhciBvd25lciA9IFJlYWN0Q3VycmVudE93bmVyJDMuY3VycmVudDtcblxuICAgIGlmIChvd25lciAhPT0gbnVsbCAmJiBvd25lci5zdGF0ZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIHZhciB3YXJuZWRBYm91dFJlZnNJblJlbmRlciA9IG93bmVyLnN0YXRlTm9kZS5fd2FybmVkQWJvdXRSZWZzSW5SZW5kZXI7XG5cbiAgICAgIGlmICghd2FybmVkQWJvdXRSZWZzSW5SZW5kZXIpIHtcbiAgICAgICAgZXJyb3IoJyVzIGlzIGFjY2Vzc2luZyBmaW5kRE9NTm9kZSBpbnNpZGUgaXRzIHJlbmRlcigpLiAnICsgJ3JlbmRlcigpIHNob3VsZCBiZSBhIHB1cmUgZnVuY3Rpb24gb2YgcHJvcHMgYW5kIHN0YXRlLiBJdCBzaG91bGQgJyArICduZXZlciBhY2Nlc3Mgc29tZXRoaW5nIHRoYXQgcmVxdWlyZXMgc3RhbGUgZGF0YSBmcm9tIHRoZSBwcmV2aW91cyAnICsgJ3JlbmRlciwgc3VjaCBhcyByZWZzLiBNb3ZlIHRoaXMgbG9naWMgdG8gY29tcG9uZW50RGlkTW91bnQgYW5kICcgKyAnY29tcG9uZW50RGlkVXBkYXRlIGluc3RlYWQuJywgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKG93bmVyLnR5cGUpIHx8ICdBIGNvbXBvbmVudCcpO1xuICAgICAgfVxuXG4gICAgICBvd25lci5zdGF0ZU5vZGUuX3dhcm5lZEFib3V0UmVmc0luUmVuZGVyID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAoY29tcG9uZW50T3JFbGVtZW50ID09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChjb21wb25lbnRPckVsZW1lbnQubm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERSkge1xuICAgIHJldHVybiBjb21wb25lbnRPckVsZW1lbnQ7XG4gIH1cblxuICB7XG4gICAgcmV0dXJuIGZpbmRIb3N0SW5zdGFuY2VXaXRoV2FybmluZyhjb21wb25lbnRPckVsZW1lbnQsICdmaW5kRE9NTm9kZScpO1xuICB9XG59XG5mdW5jdGlvbiBoeWRyYXRlKGVsZW1lbnQsIGNvbnRhaW5lciwgY2FsbGJhY2spIHtcbiAge1xuICAgIGVycm9yKCdSZWFjdERPTS5oeWRyYXRlIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQgaW4gUmVhY3QgMTguIFVzZSBoeWRyYXRlUm9vdCAnICsgJ2luc3RlYWQuIFVudGlsIHlvdSBzd2l0Y2ggdG8gdGhlIG5ldyBBUEksIHlvdXIgYXBwIHdpbGwgYmVoYXZlIGFzICcgKyBcImlmIGl0J3MgcnVubmluZyBSZWFjdCAxNy4gTGVhcm4gXCIgKyAnbW9yZTogaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3N3aXRjaC10by1jcmVhdGVyb290Jyk7XG4gIH1cblxuICBpZiAoIWlzVmFsaWRDb250YWluZXJMZWdhY3koY29udGFpbmVyKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVGFyZ2V0IGNvbnRhaW5lciBpcyBub3QgYSBET00gZWxlbWVudC4nKTtcbiAgfVxuXG4gIHtcbiAgICB2YXIgaXNNb2Rlcm5Sb290ID0gaXNDb250YWluZXJNYXJrZWRBc1Jvb3QoY29udGFpbmVyKSAmJiBjb250YWluZXIuX3JlYWN0Um9vdENvbnRhaW5lciA9PT0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKGlzTW9kZXJuUm9vdCkge1xuICAgICAgZXJyb3IoJ1lvdSBhcmUgY2FsbGluZyBSZWFjdERPTS5oeWRyYXRlKCkgb24gYSBjb250YWluZXIgdGhhdCB3YXMgcHJldmlvdXNseSAnICsgJ3Bhc3NlZCB0byBSZWFjdERPTUNsaWVudC5jcmVhdGVSb290KCkuIFRoaXMgaXMgbm90IHN1cHBvcnRlZC4gJyArICdEaWQgeW91IG1lYW4gdG8gY2FsbCBoeWRyYXRlUm9vdChjb250YWluZXIsIGVsZW1lbnQpPycpO1xuICAgIH1cbiAgfSAvLyBUT0RPOiB0aHJvdyBvciB3YXJuIGlmIHdlIGNvdWxkbid0IGh5ZHJhdGU/XG5cblxuICByZXR1cm4gbGVnYWN5UmVuZGVyU3VidHJlZUludG9Db250YWluZXIobnVsbCwgZWxlbWVudCwgY29udGFpbmVyLCB0cnVlLCBjYWxsYmFjayk7XG59XG5mdW5jdGlvbiByZW5kZXIoZWxlbWVudCwgY29udGFpbmVyLCBjYWxsYmFjaykge1xuICB7XG4gICAgZXJyb3IoJ1JlYWN0RE9NLnJlbmRlciBpcyBubyBsb25nZXIgc3VwcG9ydGVkIGluIFJlYWN0IDE4LiBVc2UgY3JlYXRlUm9vdCAnICsgJ2luc3RlYWQuIFVudGlsIHlvdSBzd2l0Y2ggdG8gdGhlIG5ldyBBUEksIHlvdXIgYXBwIHdpbGwgYmVoYXZlIGFzICcgKyBcImlmIGl0J3MgcnVubmluZyBSZWFjdCAxNy4gTGVhcm4gXCIgKyAnbW9yZTogaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3N3aXRjaC10by1jcmVhdGVyb290Jyk7XG4gIH1cblxuICBpZiAoIWlzVmFsaWRDb250YWluZXJMZWdhY3koY29udGFpbmVyKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVGFyZ2V0IGNvbnRhaW5lciBpcyBub3QgYSBET00gZWxlbWVudC4nKTtcbiAgfVxuXG4gIHtcbiAgICB2YXIgaXNNb2Rlcm5Sb290ID0gaXNDb250YWluZXJNYXJrZWRBc1Jvb3QoY29udGFpbmVyKSAmJiBjb250YWluZXIuX3JlYWN0Um9vdENvbnRhaW5lciA9PT0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKGlzTW9kZXJuUm9vdCkge1xuICAgICAgZXJyb3IoJ1lvdSBhcmUgY2FsbGluZyBSZWFjdERPTS5yZW5kZXIoKSBvbiBhIGNvbnRhaW5lciB0aGF0IHdhcyBwcmV2aW91c2x5ICcgKyAncGFzc2VkIHRvIFJlYWN0RE9NQ2xpZW50LmNyZWF0ZVJvb3QoKS4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkLiAnICsgJ0RpZCB5b3UgbWVhbiB0byBjYWxsIHJvb3QucmVuZGVyKGVsZW1lbnQpPycpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsZWdhY3lSZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihudWxsLCBlbGVtZW50LCBjb250YWluZXIsIGZhbHNlLCBjYWxsYmFjayk7XG59XG5mdW5jdGlvbiB1bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihwYXJlbnRDb21wb25lbnQsIGVsZW1lbnQsIGNvbnRhaW5lck5vZGUsIGNhbGxiYWNrKSB7XG4gIHtcbiAgICBlcnJvcignUmVhY3RET00udW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIoKSBpcyBubyBsb25nZXIgc3VwcG9ydGVkICcgKyAnaW4gUmVhY3QgMTguIENvbnNpZGVyIHVzaW5nIGEgcG9ydGFsIGluc3RlYWQuIFVudGlsIHlvdSBzd2l0Y2ggdG8gJyArIFwidGhlIGNyZWF0ZVJvb3QgQVBJLCB5b3VyIGFwcCB3aWxsIGJlaGF2ZSBhcyBpZiBpdCdzIHJ1bm5pbmcgUmVhY3QgXCIgKyAnMTcuIExlYXJuIG1vcmU6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zd2l0Y2gtdG8tY3JlYXRlcm9vdCcpO1xuICB9XG5cbiAgaWYgKCFpc1ZhbGlkQ29udGFpbmVyTGVnYWN5KGNvbnRhaW5lck5vZGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUYXJnZXQgY29udGFpbmVyIGlzIG5vdCBhIERPTSBlbGVtZW50LicpO1xuICB9XG5cbiAgaWYgKHBhcmVudENvbXBvbmVudCA9PSBudWxsIHx8ICFoYXMocGFyZW50Q29tcG9uZW50KSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncGFyZW50Q29tcG9uZW50IG11c3QgYmUgYSB2YWxpZCBSZWFjdCBDb21wb25lbnQnKTtcbiAgfVxuXG4gIHJldHVybiBsZWdhY3lSZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihwYXJlbnRDb21wb25lbnQsIGVsZW1lbnQsIGNvbnRhaW5lck5vZGUsIGZhbHNlLCBjYWxsYmFjayk7XG59XG5mdW5jdGlvbiB1bm1vdW50Q29tcG9uZW50QXROb2RlKGNvbnRhaW5lcikge1xuICBpZiAoIWlzVmFsaWRDb250YWluZXJMZWdhY3koY29udGFpbmVyKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigndW5tb3VudENvbXBvbmVudEF0Tm9kZSguLi4pOiBUYXJnZXQgY29udGFpbmVyIGlzIG5vdCBhIERPTSBlbGVtZW50LicpO1xuICB9XG5cbiAge1xuICAgIHZhciBpc01vZGVyblJvb3QgPSBpc0NvbnRhaW5lck1hcmtlZEFzUm9vdChjb250YWluZXIpICYmIGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyID09PSB1bmRlZmluZWQ7XG5cbiAgICBpZiAoaXNNb2Rlcm5Sb290KSB7XG4gICAgICBlcnJvcignWW91IGFyZSBjYWxsaW5nIFJlYWN0RE9NLnVubW91bnRDb21wb25lbnRBdE5vZGUoKSBvbiBhIGNvbnRhaW5lciB0aGF0IHdhcyBwcmV2aW91c2x5ICcgKyAncGFzc2VkIHRvIFJlYWN0RE9NQ2xpZW50LmNyZWF0ZVJvb3QoKS4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkLiBEaWQgeW91IG1lYW4gdG8gY2FsbCByb290LnVubW91bnQoKT8nKTtcbiAgICB9XG4gIH1cblxuICBpZiAoY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXIpIHtcbiAgICB7XG4gICAgICB2YXIgcm9vdEVsID0gZ2V0UmVhY3RSb290RWxlbWVudEluQ29udGFpbmVyKGNvbnRhaW5lcik7XG4gICAgICB2YXIgcmVuZGVyZWRCeURpZmZlcmVudFJlYWN0ID0gcm9vdEVsICYmICFnZXRJbnN0YW5jZUZyb21Ob2RlKHJvb3RFbCk7XG5cbiAgICAgIGlmIChyZW5kZXJlZEJ5RGlmZmVyZW50UmVhY3QpIHtcbiAgICAgICAgZXJyb3IoXCJ1bm1vdW50Q29tcG9uZW50QXROb2RlKCk6IFRoZSBub2RlIHlvdSdyZSBhdHRlbXB0aW5nIHRvIHVubW91bnQgXCIgKyAnd2FzIHJlbmRlcmVkIGJ5IGFub3RoZXIgY29weSBvZiBSZWFjdC4nKTtcbiAgICAgIH1cbiAgICB9IC8vIFVubW91bnQgc2hvdWxkIG5vdCBiZSBiYXRjaGVkLlxuXG5cbiAgICBmbHVzaFN5bmMoZnVuY3Rpb24gKCkge1xuICAgICAgbGVnYWN5UmVuZGVyU3VidHJlZUludG9Db250YWluZXIobnVsbCwgbnVsbCwgY29udGFpbmVyLCBmYWxzZSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyAkRmxvd0ZpeE1lIFRoaXMgc2hvdWxkIHByb2JhYmx5IHVzZSBgZGVsZXRlIGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyYFxuICAgICAgICBjb250YWluZXIuX3JlYWN0Um9vdENvbnRhaW5lciA9IG51bGw7XG4gICAgICAgIHVubWFya0NvbnRhaW5lckFzUm9vdChjb250YWluZXIpO1xuICAgICAgfSk7XG4gICAgfSk7IC8vIElmIHlvdSBjYWxsIHVubW91bnRDb21wb25lbnRBdE5vZGUgdHdpY2UgaW4gcXVpY2sgc3VjY2Vzc2lvbiwgeW91J2xsXG4gICAgLy8gZ2V0IGB0cnVlYCB0d2ljZS4gVGhhdCdzIHByb2JhYmx5IGZpbmU/XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICB7XG4gICAgICB2YXIgX3Jvb3RFbCA9IGdldFJlYWN0Um9vdEVsZW1lbnRJbkNvbnRhaW5lcihjb250YWluZXIpO1xuXG4gICAgICB2YXIgaGFzTm9uUm9vdFJlYWN0Q2hpbGQgPSAhIShfcm9vdEVsICYmIGdldEluc3RhbmNlRnJvbU5vZGUoX3Jvb3RFbCkpOyAvLyBDaGVjayBpZiB0aGUgY29udGFpbmVyIGl0c2VsZiBpcyBhIFJlYWN0IHJvb3Qgbm9kZS5cblxuICAgICAgdmFyIGlzQ29udGFpbmVyUmVhY3RSb290ID0gY29udGFpbmVyLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREUgJiYgaXNWYWxpZENvbnRhaW5lckxlZ2FjeShjb250YWluZXIucGFyZW50Tm9kZSkgJiYgISFjb250YWluZXIucGFyZW50Tm9kZS5fcmVhY3RSb290Q29udGFpbmVyO1xuXG4gICAgICBpZiAoaGFzTm9uUm9vdFJlYWN0Q2hpbGQpIHtcbiAgICAgICAgZXJyb3IoXCJ1bm1vdW50Q29tcG9uZW50QXROb2RlKCk6IFRoZSBub2RlIHlvdSdyZSBhdHRlbXB0aW5nIHRvIHVubW91bnQgXCIgKyAnd2FzIHJlbmRlcmVkIGJ5IFJlYWN0IGFuZCBpcyBub3QgYSB0b3AtbGV2ZWwgY29udGFpbmVyLiAlcycsIGlzQ29udGFpbmVyUmVhY3RSb290ID8gJ1lvdSBtYXkgaGF2ZSBhY2NpZGVudGFsbHkgcGFzc2VkIGluIGEgUmVhY3Qgcm9vdCBub2RlIGluc3RlYWQgJyArICdvZiBpdHMgY29udGFpbmVyLicgOiAnSW5zdGVhZCwgaGF2ZSB0aGUgcGFyZW50IGNvbXBvbmVudCB1cGRhdGUgaXRzIHN0YXRlIGFuZCAnICsgJ3JlcmVuZGVyIGluIG9yZGVyIHRvIHJlbW92ZSB0aGlzIGNvbXBvbmVudC4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuc2V0QXR0ZW1wdFN5bmNocm9ub3VzSHlkcmF0aW9uKGF0dGVtcHRTeW5jaHJvbm91c0h5ZHJhdGlvbiQxKTtcbnNldEF0dGVtcHRDb250aW51b3VzSHlkcmF0aW9uKGF0dGVtcHRDb250aW51b3VzSHlkcmF0aW9uJDEpO1xuc2V0QXR0ZW1wdEh5ZHJhdGlvbkF0Q3VycmVudFByaW9yaXR5KGF0dGVtcHRIeWRyYXRpb25BdEN1cnJlbnRQcmlvcml0eSQxKTtcbnNldEdldEN1cnJlbnRVcGRhdGVQcmlvcml0eShnZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkpO1xuc2V0QXR0ZW1wdEh5ZHJhdGlvbkF0UHJpb3JpdHkocnVuV2l0aFByaW9yaXR5KTtcblxue1xuICBpZiAodHlwZW9mIE1hcCAhPT0gJ2Z1bmN0aW9uJyB8fCAvLyAkRmxvd0lzc3VlIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIE1hcCBoYXMgbm8gcHJvdG90eXBlXG4gIE1hcC5wcm90b3R5cGUgPT0gbnVsbCB8fCB0eXBlb2YgTWFwLnByb3RvdHlwZS5mb3JFYWNoICE9PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBTZXQgIT09ICdmdW5jdGlvbicgfHwgLy8gJEZsb3dJc3N1ZSBGbG93IGluY29ycmVjdGx5IHRoaW5rcyBTZXQgaGFzIG5vIHByb3RvdHlwZVxuICBTZXQucHJvdG90eXBlID09IG51bGwgfHwgdHlwZW9mIFNldC5wcm90b3R5cGUuY2xlYXIgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIFNldC5wcm90b3R5cGUuZm9yRWFjaCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIGVycm9yKCdSZWFjdCBkZXBlbmRzIG9uIE1hcCBhbmQgU2V0IGJ1aWx0LWluIHR5cGVzLiBNYWtlIHN1cmUgdGhhdCB5b3UgbG9hZCBhICcgKyAncG9seWZpbGwgaW4gb2xkZXIgYnJvd3NlcnMuIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9yZWFjdC1wb2x5ZmlsbHMnKTtcbiAgfVxufVxuXG5zZXRSZXN0b3JlSW1wbGVtZW50YXRpb24ocmVzdG9yZUNvbnRyb2xsZWRTdGF0ZSQzKTtcbnNldEJhdGNoaW5nSW1wbGVtZW50YXRpb24oYmF0Y2hlZFVwZGF0ZXMkMSwgZGlzY3JldGVVcGRhdGVzLCBmbHVzaFN5bmMpO1xuXG5mdW5jdGlvbiBjcmVhdGVQb3J0YWwkMShjaGlsZHJlbiwgY29udGFpbmVyKSB7XG4gIHZhciBrZXkgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IG51bGw7XG5cbiAgaWYgKCFpc1ZhbGlkQ29udGFpbmVyKGNvbnRhaW5lcikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RhcmdldCBjb250YWluZXIgaXMgbm90IGEgRE9NIGVsZW1lbnQuJyk7XG4gIH0gLy8gVE9ETzogcGFzcyBSZWFjdERPTSBwb3J0YWwgaW1wbGVtZW50YXRpb24gYXMgdGhpcmQgYXJndW1lbnRcbiAgLy8gJEZsb3dGaXhNZSBUaGUgRmxvdyB0eXBlIGlzIG9wYXF1ZSBidXQgdGhlcmUncyBubyB3YXkgdG8gYWN0dWFsbHkgY3JlYXRlIGl0LlxuXG5cbiAgcmV0dXJuIGNyZWF0ZVBvcnRhbChjaGlsZHJlbiwgY29udGFpbmVyLCBudWxsLCBrZXkpO1xufVxuXG5mdW5jdGlvbiByZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihwYXJlbnRDb21wb25lbnQsIGVsZW1lbnQsIGNvbnRhaW5lck5vZGUsIGNhbGxiYWNrKSB7XG4gIHJldHVybiB1bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihwYXJlbnRDb21wb25lbnQsIGVsZW1lbnQsIGNvbnRhaW5lck5vZGUsIGNhbGxiYWNrKTtcbn1cblxudmFyIEludGVybmFscyA9IHtcbiAgdXNpbmdDbGllbnRFbnRyeVBvaW50OiBmYWxzZSxcbiAgLy8gS2VlcCBpbiBzeW5jIHdpdGggUmVhY3RUZXN0VXRpbHMuanMuXG4gIC8vIFRoaXMgaXMgYW4gYXJyYXkgZm9yIGJldHRlciBtaW5pZmljYXRpb24uXG4gIEV2ZW50czogW2dldEluc3RhbmNlRnJvbU5vZGUsIGdldE5vZGVGcm9tSW5zdGFuY2UsIGdldEZpYmVyQ3VycmVudFByb3BzRnJvbU5vZGUsIGVucXVldWVTdGF0ZVJlc3RvcmUsIHJlc3RvcmVTdGF0ZUlmTmVlZGVkLCBiYXRjaGVkVXBkYXRlcyQxXVxufTtcblxuZnVuY3Rpb24gY3JlYXRlUm9vdCQxKGNvbnRhaW5lciwgb3B0aW9ucykge1xuICB7XG4gICAgaWYgKCFJbnRlcm5hbHMudXNpbmdDbGllbnRFbnRyeVBvaW50KSB7XG4gICAgICBlcnJvcignWW91IGFyZSBpbXBvcnRpbmcgY3JlYXRlUm9vdCBmcm9tIFwicmVhY3QtZG9tXCIgd2hpY2ggaXMgbm90IHN1cHBvcnRlZC4gJyArICdZb3Ugc2hvdWxkIGluc3RlYWQgaW1wb3J0IGl0IGZyb20gXCJyZWFjdC1kb20vY2xpZW50XCIuJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZVJvb3QoY29udGFpbmVyLCBvcHRpb25zKTtcbn1cblxuZnVuY3Rpb24gaHlkcmF0ZVJvb3QkMShjb250YWluZXIsIGluaXRpYWxDaGlsZHJlbiwgb3B0aW9ucykge1xuICB7XG4gICAgaWYgKCFJbnRlcm5hbHMudXNpbmdDbGllbnRFbnRyeVBvaW50KSB7XG4gICAgICBlcnJvcignWW91IGFyZSBpbXBvcnRpbmcgaHlkcmF0ZVJvb3QgZnJvbSBcInJlYWN0LWRvbVwiIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnWW91IHNob3VsZCBpbnN0ZWFkIGltcG9ydCBpdCBmcm9tIFwicmVhY3QtZG9tL2NsaWVudFwiLicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBoeWRyYXRlUm9vdChjb250YWluZXIsIGluaXRpYWxDaGlsZHJlbiwgb3B0aW9ucyk7XG59IC8vIE92ZXJsb2FkIHRoZSBkZWZpbml0aW9uIHRvIHRoZSB0d28gdmFsaWQgc2lnbmF0dXJlcy5cbi8vIFdhcm5pbmcsIHRoaXMgb3B0cy1vdXQgb2YgY2hlY2tpbmcgdGhlIGZ1bmN0aW9uIGJvZHkuXG5cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlZGVjbGFyZVxuZnVuY3Rpb24gZmx1c2hTeW5jJDEoZm4pIHtcbiAge1xuICAgIGlmIChpc0FscmVhZHlSZW5kZXJpbmcoKSkge1xuICAgICAgZXJyb3IoJ2ZsdXNoU3luYyB3YXMgY2FsbGVkIGZyb20gaW5zaWRlIGEgbGlmZWN5Y2xlIG1ldGhvZC4gUmVhY3QgY2Fubm90ICcgKyAnZmx1c2ggd2hlbiBSZWFjdCBpcyBhbHJlYWR5IHJlbmRlcmluZy4gQ29uc2lkZXIgbW92aW5nIHRoaXMgY2FsbCB0byAnICsgJ2Egc2NoZWR1bGVyIHRhc2sgb3IgbWljcm8gdGFzay4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmx1c2hTeW5jKGZuKTtcbn1cbnZhciBmb3VuZERldlRvb2xzID0gaW5qZWN0SW50b0RldlRvb2xzKHtcbiAgZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6IGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlLFxuICBidW5kbGVUeXBlOiAgMSAsXG4gIHZlcnNpb246IFJlYWN0VmVyc2lvbixcbiAgcmVuZGVyZXJQYWNrYWdlTmFtZTogJ3JlYWN0LWRvbSdcbn0pO1xuXG57XG4gIGlmICghZm91bmREZXZUb29scyAmJiBjYW5Vc2VET00gJiYgd2luZG93LnRvcCA9PT0gd2luZG93LnNlbGYpIHtcbiAgICAvLyBJZiB3ZSdyZSBpbiBDaHJvbWUgb3IgRmlyZWZveCwgcHJvdmlkZSBhIGRvd25sb2FkIGxpbmsgaWYgbm90IGluc3RhbGxlZC5cbiAgICBpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdDaHJvbWUnKSA+IC0xICYmIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignRWRnZScpID09PSAtMSB8fCBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0ZpcmVmb3gnKSA+IC0xKSB7XG4gICAgICB2YXIgcHJvdG9jb2wgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2w7IC8vIERvbid0IHdhcm4gaW4gZXhvdGljIGNhc2VzIGxpa2UgY2hyb21lLWV4dGVuc2lvbjovLy5cblxuICAgICAgaWYgKC9eKGh0dHBzP3xmaWxlKTokLy50ZXN0KHByb3RvY29sKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nXG4gICAgICAgIGNvbnNvbGUuaW5mbygnJWNEb3dubG9hZCB0aGUgUmVhY3QgRGV2VG9vbHMgJyArICdmb3IgYSBiZXR0ZXIgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVhY3QtZGV2dG9vbHMnICsgKHByb3RvY29sID09PSAnZmlsZTonID8gJ1xcbllvdSBtaWdodCBuZWVkIHRvIHVzZSBhIGxvY2FsIEhUVFAgc2VydmVyIChpbnN0ZWFkIG9mIGZpbGU6Ly8pOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9yZWFjdC1kZXZ0b29scy1mYXEnIDogJycpLCAnZm9udC13ZWlnaHQ6Ym9sZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEID0gSW50ZXJuYWxzO1xuZXhwb3J0cy5jcmVhdGVQb3J0YWwgPSBjcmVhdGVQb3J0YWwkMTtcbmV4cG9ydHMuY3JlYXRlUm9vdCA9IGNyZWF0ZVJvb3QkMTtcbmV4cG9ydHMuZmluZERPTU5vZGUgPSBmaW5kRE9NTm9kZTtcbmV4cG9ydHMuZmx1c2hTeW5jID0gZmx1c2hTeW5jJDE7XG5leHBvcnRzLmh5ZHJhdGUgPSBoeWRyYXRlO1xuZXhwb3J0cy5oeWRyYXRlUm9vdCA9IGh5ZHJhdGVSb290JDE7XG5leHBvcnRzLnJlbmRlciA9IHJlbmRlcjtcbmV4cG9ydHMudW5tb3VudENvbXBvbmVudEF0Tm9kZSA9IHVubW91bnRDb21wb25lbnRBdE5vZGU7XG5leHBvcnRzLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzID0gYmF0Y2hlZFVwZGF0ZXMkMTtcbmV4cG9ydHMudW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIgPSByZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcjtcbmV4cG9ydHMudmVyc2lvbiA9IFJlYWN0VmVyc2lvbjtcbiAgICAgICAgICAvKiBnbG9iYWwgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICovXG5pZiAoXG4gIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gIT09ICd1bmRlZmluZWQnICYmXG4gIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AgPT09XG4gICAgJ2Z1bmN0aW9uJ1xuKSB7XG4gIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RvcChuZXcgRXJyb3IoKSk7XG59XG4gICAgICAgIFxuICB9KSgpO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gY2hlY2tEQ0UoKSB7XG4gIC8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbiAgaWYgKFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPT09ICd1bmRlZmluZWQnIHx8XG4gICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSAhPT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBUaGlzIGJyYW5jaCBpcyB1bnJlYWNoYWJsZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWRcbiAgICAvLyBpbiBwcm9kdWN0aW9uLCBidXQgdGhlIGNvbmRpdGlvbiBpcyB0cnVlIG9ubHkgaW4gZGV2ZWxvcG1lbnQuXG4gICAgLy8gVGhlcmVmb3JlIGlmIHRoZSBicmFuY2ggaXMgc3RpbGwgaGVyZSwgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdhc24ndFxuICAgIC8vIHByb3Blcmx5IGFwcGxpZWQuXG4gICAgLy8gRG9uJ3QgY2hhbmdlIHRoZSBtZXNzYWdlLiBSZWFjdCBEZXZUb29scyByZWxpZXMgb24gaXQuIEFsc28gbWFrZSBzdXJlXG4gICAgLy8gdGhpcyBtZXNzYWdlIGRvZXNuJ3Qgb2NjdXIgZWxzZXdoZXJlIGluIHRoaXMgZnVuY3Rpb24sIG9yIGl0IHdpbGwgY2F1c2VcbiAgICAvLyBhIGZhbHNlIHBvc2l0aXZlLlxuICAgIHRocm93IG5ldyBFcnJvcignXl9eJyk7XG4gIH1cbiAgdHJ5IHtcbiAgICAvLyBWZXJpZnkgdGhhdCB0aGUgY29kZSBhYm92ZSBoYXMgYmVlbiBkZWFkIGNvZGUgZWxpbWluYXRlZCAoRENFJ2QpLlxuICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShjaGVja0RDRSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIERldlRvb2xzIHNob3VsZG4ndCBjcmFzaCBSZWFjdCwgbm8gbWF0dGVyIHdoYXQuXG4gICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlcG9ydCBpbiBjYXNlIHdlIGJyZWFrIHRoaXMgY29kZS5cbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gIH1cbn1cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgLy8gRENFIGNoZWNrIHNob3VsZCBoYXBwZW4gYmVmb3JlIFJlYWN0RE9NIGJ1bmRsZSBleGVjdXRlcyBzbyB0aGF0XG4gIC8vIERldlRvb2xzIGNhbiByZXBvcnQgYmFkIG1pbmlmaWNhdGlvbiBkdXJpbmcgaW5qZWN0aW9uLlxuICBjaGVja0RDRSgpO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1kb20uZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsICIvKlxuICogQVRURU5USU9OOiBBbiBcImV2YWwtc291cmNlLW1hcFwiIGRldnRvb2wgaGFzIGJlZW4gdXNlZC5cbiAqIFRoaXMgZGV2dG9vbCBpcyBuZWl0aGVyIG1hZGUgZm9yIHByb2R1Y3Rpb24gbm9yIGZvciByZWFkYWJsZSBvdXRwdXQgZmlsZXMuXG4gKiBJdCB1c2VzIFwiZXZhbCgpXCIgY2FsbHMgdG8gY3JlYXRlIGEgc2VwYXJhdGUgc291cmNlIGZpbGUgd2l0aCBhdHRhY2hlZCBTb3VyY2VNYXBzIGluIHRoZSBicm93c2VyIGRldnRvb2xzLlxuICogSWYgeW91IGFyZSB0cnlpbmcgdG8gcmVhZCB0aGUgb3V0cHV0IGZpbGUsIHNlbGVjdCBhIGRpZmZlcmVudCBkZXZ0b29sIChodHRwczovL3dlYnBhY2suanMub3JnL2NvbmZpZ3VyYXRpb24vZGV2dG9vbC8pXG4gKiBvciBkaXNhYmxlIHRoZSBkZWZhdWx0IGRldnRvb2wgd2l0aCBcImRldnRvb2w6IGZhbHNlXCIuXG4gKiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIHByb2R1Y3Rpb24tcmVhZHkgb3V0cHV0IGZpbGVzLCBzZWUgbW9kZTogXCJwcm9kdWN0aW9uXCIgKGh0dHBzOi8vd2VicGFjay5qcy5vcmcvY29uZmlndXJhdGlvbi9tb2RlLykuXG4gKi9cbihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcInJlYWN0XCIpLCByZXF1aXJlKFwicmVhY3QtZG9tXCIpKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtcInJlYWN0XCIsIFwicmVhY3QtZG9tXCJdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkV4Y2FsaWRyYXdcIl0gPSBmYWN0b3J5KHJlcXVpcmUoXCJyZWFjdFwiKSwgcmVxdWlyZShcInJlYWN0LWRvbVwiKSk7XG5cdGVsc2Vcblx0XHRyb290W1wiRXhjYWxpZHJhd1wiXSA9IGZhY3Rvcnkocm9vdFtcIlJlYWN0XCJdLCByb290W1wiUmVhY3RET01cIl0pO1xufSkoZ2xvYmFsVGhpcywgZnVuY3Rpb24oX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9fLCBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X2RvbV9fKSB7XG5yZXR1cm4gLyoqKioqKi8gKCgpID0+IHsgLy8gd2VicGFja0Jvb3RzdHJhcFxuLyoqKioqKi8gXHR2YXIgX193ZWJwYWNrX21vZHVsZXNfXyA9ICh7XG5cbi8qKiovIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nsc3gvZGlzdC9jbHN4Lm0uanNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nsc3gvZGlzdC9jbHN4Lm0uanMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoLyogZXhwb3J0IGRlZmF1bHQgYmluZGluZyAqLyBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG5mdW5jdGlvbiB0b1ZhbChtaXgpIHtcXG5cXHR2YXIgaywgeSwgc3RyPScnO1xcblxcblxcdGlmICh0eXBlb2YgbWl4ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgbWl4ID09PSAnbnVtYmVyJykge1xcblxcdFxcdHN0ciArPSBtaXg7XFxuXFx0fSBlbHNlIGlmICh0eXBlb2YgbWl4ID09PSAnb2JqZWN0Jykge1xcblxcdFxcdGlmIChBcnJheS5pc0FycmF5KG1peCkpIHtcXG5cXHRcXHRcXHRmb3IgKGs9MDsgayA8IG1peC5sZW5ndGg7IGsrKykge1xcblxcdFxcdFxcdFxcdGlmIChtaXhba10pIHtcXG5cXHRcXHRcXHRcXHRcXHRpZiAoeSA9IHRvVmFsKG1peFtrXSkpIHtcXG5cXHRcXHRcXHRcXHRcXHRcXHRzdHIgJiYgKHN0ciArPSAnICcpO1xcblxcdFxcdFxcdFxcdFxcdFxcdHN0ciArPSB5O1xcblxcdFxcdFxcdFxcdFxcdH1cXG5cXHRcXHRcXHRcXHR9XFxuXFx0XFx0XFx0fVxcblxcdFxcdH0gZWxzZSB7XFxuXFx0XFx0XFx0Zm9yIChrIGluIG1peCkge1xcblxcdFxcdFxcdFxcdGlmIChtaXhba10pIHtcXG5cXHRcXHRcXHRcXHRcXHRzdHIgJiYgKHN0ciArPSAnICcpO1xcblxcdFxcdFxcdFxcdFxcdHN0ciArPSBrO1xcblxcdFxcdFxcdFxcdH1cXG5cXHRcXHRcXHR9XFxuXFx0XFx0fVxcblxcdH1cXG5cXG5cXHRyZXR1cm4gc3RyO1xcbn1cXG5cXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGZ1bmN0aW9uIF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKCkge1xcblxcdHZhciBpPTAsIHRtcCwgeCwgc3RyPScnO1xcblxcdHdoaWxlIChpIDwgYXJndW1lbnRzLmxlbmd0aCkge1xcblxcdFxcdGlmICh0bXAgPSBhcmd1bWVudHNbaSsrXSkge1xcblxcdFxcdFxcdGlmICh4ID0gdG9WYWwodG1wKSkge1xcblxcdFxcdFxcdFxcdHN0ciAmJiAoc3RyICs9ICcgJyk7XFxuXFx0XFx0XFx0XFx0c3RyICs9IHhcXG5cXHRcXHRcXHR9XFxuXFx0XFx0fVxcblxcdH1cXG5cXHRyZXR1cm4gc3RyO1xcbn1cXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDJOc2MzZ3ZaR2x6ZEM5amJITjRMbTB1YW5NdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096dEJRVUZCTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQkxFZEJRVWM3UVVGRFNEdEJRVU5CTEdGQlFXRXNaMEpCUVdkQ08wRkJRemRDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzU1VGQlNUdEJRVU5LTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVRzN1FVRkZRU3cyUWtGQlpTeHpRMEZCV1R0QlFVTXpRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQklpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OWpiSE40TDJScGMzUXZZMnh6ZUM1dExtcHpQek13WmpZaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lablZ1WTNScGIyNGdkRzlXWVd3b2JXbDRLU0I3WEc1Y2RIWmhjaUJyTENCNUxDQnpkSEk5SnljN1hHNWNibHgwYVdZZ0tIUjVjR1Z2WmlCdGFYZ2dQVDA5SUNkemRISnBibWNuSUh4OElIUjVjR1Z2WmlCdGFYZ2dQVDA5SUNkdWRXMWlaWEluS1NCN1hHNWNkRngwYzNSeUlDczlJRzFwZUR0Y2JseDBmU0JsYkhObElHbG1JQ2gwZVhCbGIyWWdiV2w0SUQwOVBTQW5iMkpxWldOMEp5a2dlMXh1WEhSY2RHbG1JQ2hCY25KaGVTNXBjMEZ5Y21GNUtHMXBlQ2twSUh0Y2JseDBYSFJjZEdadmNpQW9hejB3T3lCcklEd2diV2w0TG14bGJtZDBhRHNnYXlzcktTQjdYRzVjZEZ4MFhIUmNkR2xtSUNodGFYaGJhMTBwSUh0Y2JseDBYSFJjZEZ4MFhIUnBaaUFvZVNBOUlIUnZWbUZzS0cxcGVGdHJYU2twSUh0Y2JseDBYSFJjZEZ4MFhIUmNkSE4wY2lBbUppQW9jM1J5SUNzOUlDY2dKeWs3WEc1Y2RGeDBYSFJjZEZ4MFhIUnpkSElnS3owZ2VUdGNibHgwWEhSY2RGeDBYSFI5WEc1Y2RGeDBYSFJjZEgxY2JseDBYSFJjZEgxY2JseDBYSFI5SUdWc2MyVWdlMXh1WEhSY2RGeDBabTl5SUNocklHbHVJRzFwZUNrZ2UxeHVYSFJjZEZ4MFhIUnBaaUFvYldsNFcydGRLU0I3WEc1Y2RGeDBYSFJjZEZ4MGMzUnlJQ1ltSUNoemRISWdLejBnSnlBbktUdGNibHgwWEhSY2RGeDBYSFJ6ZEhJZ0t6MGdhenRjYmx4MFhIUmNkRngwZlZ4dVhIUmNkRngwZlZ4dVhIUmNkSDFjYmx4MGZWeHVYRzVjZEhKbGRIVnliaUJ6ZEhJN1hHNTlYRzVjYm1WNGNHOXlkQ0JrWldaaGRXeDBJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JseDBkbUZ5SUdrOU1Dd2dkRzF3TENCNExDQnpkSEk5SnljN1hHNWNkSGRvYVd4bElDaHBJRHdnWVhKbmRXMWxiblJ6TG14bGJtZDBhQ2tnZTF4dVhIUmNkR2xtSUNoMGJYQWdQU0JoY21kMWJXVnVkSE5iYVNzclhTa2dlMXh1WEhSY2RGeDBhV1lnS0hnZ1BTQjBiMVpoYkNoMGJYQXBLU0I3WEc1Y2RGeDBYSFJjZEhOMGNpQW1KaUFvYzNSeUlDczlJQ2NnSnlrN1hHNWNkRngwWEhSY2RITjBjaUFyUFNCNFhHNWNkRngwWEhSOVhHNWNkRngwZlZ4dVhIUjlYRzVjZEhKbGRIVnliaUJ6ZEhJN1hHNTlYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2xzeC9kaXN0L2Nsc3gubS5qc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2xvZGFzaC50aHJvdHRsZS9pbmRleC5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uLy4uL25vZGVfbW9kdWxlcy9sb2Rhc2gudGhyb3R0bGUvaW5kZXguanMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuZXZhbChcIi8qKlxcbiAqIGxvZGFzaCAoQ3VzdG9tIEJ1aWxkKSA8aHR0cHM6Ly9sb2Rhc2guY29tLz5cXG4gKiBCdWlsZDogYGxvZGFzaCBtb2R1bGFyaXplIGV4cG9ydHM9XFxcIm5wbVxcXCIgLW8gLi9gXFxuICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMgPGh0dHBzOi8vanF1ZXJ5Lm9yZy8+XFxuICogUmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UgPGh0dHBzOi8vbG9kYXNoLmNvbS9saWNlbnNlPlxcbiAqIEJhc2VkIG9uIFVuZGVyc2NvcmUuanMgMS44LjMgPGh0dHA6Ly91bmRlcnNjb3JlanMub3JnL0xJQ0VOU0U+XFxuICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzXFxuICovXFxuXFxuLyoqIFVzZWQgYXMgdGhlIGBUeXBlRXJyb3JgIG1lc3NhZ2UgZm9yIFxcXCJGdW5jdGlvbnNcXFwiIG1ldGhvZHMuICovXFxudmFyIEZVTkNfRVJST1JfVEVYVCA9ICdFeHBlY3RlZCBhIGZ1bmN0aW9uJztcXG5cXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cXG52YXIgTkFOID0gMCAvIDA7XFxuXFxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xcbnZhciBzeW1ib2xUYWcgPSAnW29iamVjdCBTeW1ib2xdJztcXG5cXG4vKiogVXNlZCB0byBtYXRjaCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlLiAqL1xcbnZhciByZVRyaW0gPSAvXlxcXFxzK3xcXFxccyskL2c7XFxuXFxuLyoqIFVzZWQgdG8gZGV0ZWN0IGJhZCBzaWduZWQgaGV4YWRlY2ltYWwgc3RyaW5nIHZhbHVlcy4gKi9cXG52YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xcblxcbi8qKiBVc2VkIHRvIGRldGVjdCBiaW5hcnkgc3RyaW5nIHZhbHVlcy4gKi9cXG52YXIgcmVJc0JpbmFyeSA9IC9eMGJbMDFdKyQvaTtcXG5cXG4vKiogVXNlZCB0byBkZXRlY3Qgb2N0YWwgc3RyaW5nIHZhbHVlcy4gKi9cXG52YXIgcmVJc09jdGFsID0gL14wb1swLTddKyQvaTtcXG5cXG4vKiogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgd2l0aG91dCBhIGRlcGVuZGVuY3kgb24gYHJvb3RgLiAqL1xcbnZhciBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcXG5cXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGdsb2JhbGAgZnJvbSBOb2RlLmpzLiAqL1xcbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIF9fd2VicGFja19yZXF1aXJlX18uZyA9PSAnb2JqZWN0JyAmJiBfX3dlYnBhY2tfcmVxdWlyZV9fLmcgJiYgX193ZWJwYWNrX3JlcXVpcmVfXy5nLk9iamVjdCA9PT0gT2JqZWN0ICYmIF9fd2VicGFja19yZXF1aXJlX18uZztcXG5cXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYHNlbGZgLiAqL1xcbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xcblxcbi8qKiBVc2VkIGFzIGEgcmVmZXJlbmNlIHRvIHRoZSBnbG9iYWwgb2JqZWN0LiAqL1xcbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xcblxcbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xcblxcbi8qKlxcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcXG4gKiBvZiB2YWx1ZXMuXFxuICovXFxudmFyIG9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XFxuXFxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xcbnZhciBuYXRpdmVNYXggPSBNYXRoLm1heCxcXG4gICAgbmF0aXZlTWluID0gTWF0aC5taW47XFxuXFxuLyoqXFxuICogR2V0cyB0aGUgdGltZXN0YW1wIG9mIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRoYXQgaGF2ZSBlbGFwc2VkIHNpbmNlXFxuICogdGhlIFVuaXggZXBvY2ggKDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuXFxuICpcXG4gKiBAc3RhdGljXFxuICogQG1lbWJlck9mIF9cXG4gKiBAc2luY2UgMi40LjBcXG4gKiBAY2F0ZWdvcnkgRGF0ZVxcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVzdGFtcC5cXG4gKiBAZXhhbXBsZVxcbiAqXFxuICogXy5kZWZlcihmdW5jdGlvbihzdGFtcCkge1xcbiAqICAgY29uc29sZS5sb2coXy5ub3coKSAtIHN0YW1wKTtcXG4gKiB9LCBfLm5vdygpKTtcXG4gKiAvLyA9PiBMb2dzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGl0IHRvb2sgZm9yIHRoZSBkZWZlcnJlZCBpbnZvY2F0aW9uLlxcbiAqL1xcbnZhciBub3cgPSBmdW5jdGlvbigpIHtcXG4gIHJldHVybiByb290LkRhdGUubm93KCk7XFxufTtcXG5cXG4vKipcXG4gKiBDcmVhdGVzIGEgZGVib3VuY2VkIGZ1bmN0aW9uIHRoYXQgZGVsYXlzIGludm9raW5nIGBmdW5jYCB1bnRpbCBhZnRlciBgd2FpdGBcXG4gKiBtaWxsaXNlY29uZHMgaGF2ZSBlbGFwc2VkIHNpbmNlIHRoZSBsYXN0IHRpbWUgdGhlIGRlYm91bmNlZCBmdW5jdGlvbiB3YXNcXG4gKiBpbnZva2VkLiBUaGUgZGVib3VuY2VkIGZ1bmN0aW9uIGNvbWVzIHdpdGggYSBgY2FuY2VsYCBtZXRob2QgdG8gY2FuY2VsXFxuICogZGVsYXllZCBgZnVuY2AgaW52b2NhdGlvbnMgYW5kIGEgYGZsdXNoYCBtZXRob2QgdG8gaW1tZWRpYXRlbHkgaW52b2tlIHRoZW0uXFxuICogUHJvdmlkZSBgb3B0aW9uc2AgdG8gaW5kaWNhdGUgd2hldGhlciBgZnVuY2Agc2hvdWxkIGJlIGludm9rZWQgb24gdGhlXFxuICogbGVhZGluZyBhbmQvb3IgdHJhaWxpbmcgZWRnZSBvZiB0aGUgYHdhaXRgIHRpbWVvdXQuIFRoZSBgZnVuY2AgaXMgaW52b2tlZFxcbiAqIHdpdGggdGhlIGxhc3QgYXJndW1lbnRzIHByb3ZpZGVkIHRvIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24uIFN1YnNlcXVlbnRcXG4gKiBjYWxscyB0byB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uIHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBsYXN0IGBmdW5jYFxcbiAqIGludm9jYXRpb24uXFxuICpcXG4gKiAqKk5vdGU6KiogSWYgYGxlYWRpbmdgIGFuZCBgdHJhaWxpbmdgIG9wdGlvbnMgYXJlIGB0cnVlYCwgYGZ1bmNgIGlzXFxuICogaW52b2tlZCBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb25cXG4gKiBpcyBpbnZva2VkIG1vcmUgdGhhbiBvbmNlIGR1cmluZyB0aGUgYHdhaXRgIHRpbWVvdXQuXFxuICpcXG4gKiBJZiBgd2FpdGAgaXMgYDBgIGFuZCBgbGVhZGluZ2AgaXMgYGZhbHNlYCwgYGZ1bmNgIGludm9jYXRpb24gaXMgZGVmZXJyZWRcXG4gKiB1bnRpbCB0byB0aGUgbmV4dCB0aWNrLCBzaW1pbGFyIHRvIGBzZXRUaW1lb3V0YCB3aXRoIGEgdGltZW91dCBvZiBgMGAuXFxuICpcXG4gKiBTZWUgW0RhdmlkIENvcmJhY2hvJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9kZWJvdW5jaW5nLXRocm90dGxpbmctZXhwbGFpbmVkLWV4YW1wbGVzLylcXG4gKiBmb3IgZGV0YWlscyBvdmVyIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGBfLmRlYm91bmNlYCBhbmQgYF8udGhyb3R0bGVgLlxcbiAqXFxuICogQHN0YXRpY1xcbiAqIEBtZW1iZXJPZiBfXFxuICogQHNpbmNlIDAuMS4wXFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXFxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZGVib3VuY2UuXFxuICogQHBhcmFtIHtudW1iZXJ9IFt3YWl0PTBdIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5LlxcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVhZGluZz1mYWxzZV1cXG4gKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgbGVhZGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhXYWl0XVxcbiAqICBUaGUgbWF4aW11bSB0aW1lIGBmdW5jYCBpcyBhbGxvd2VkIHRvIGJlIGRlbGF5ZWQgYmVmb3JlIGl0J3MgaW52b2tlZC5cXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnRyYWlsaW5nPXRydWVdXFxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXFxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZGVib3VuY2VkIGZ1bmN0aW9uLlxcbiAqIEBleGFtcGxlXFxuICpcXG4gKiAvLyBBdm9pZCBjb3N0bHkgY2FsY3VsYXRpb25zIHdoaWxlIHRoZSB3aW5kb3cgc2l6ZSBpcyBpbiBmbHV4LlxcbiAqIGpRdWVyeSh3aW5kb3cpLm9uKCdyZXNpemUnLCBfLmRlYm91bmNlKGNhbGN1bGF0ZUxheW91dCwgMTUwKSk7XFxuICpcXG4gKiAvLyBJbnZva2UgYHNlbmRNYWlsYCB3aGVuIGNsaWNrZWQsIGRlYm91bmNpbmcgc3Vic2VxdWVudCBjYWxscy5cXG4gKiBqUXVlcnkoZWxlbWVudCkub24oJ2NsaWNrJywgXy5kZWJvdW5jZShzZW5kTWFpbCwgMzAwLCB7XFxuICogICAnbGVhZGluZyc6IHRydWUsXFxuICogICAndHJhaWxpbmcnOiBmYWxzZVxcbiAqIH0pKTtcXG4gKlxcbiAqIC8vIEVuc3VyZSBgYmF0Y2hMb2dgIGlzIGludm9rZWQgb25jZSBhZnRlciAxIHNlY29uZCBvZiBkZWJvdW5jZWQgY2FsbHMuXFxuICogdmFyIGRlYm91bmNlZCA9IF8uZGVib3VuY2UoYmF0Y2hMb2csIDI1MCwgeyAnbWF4V2FpdCc6IDEwMDAgfSk7XFxuICogdmFyIHNvdXJjZSA9IG5ldyBFdmVudFNvdXJjZSgnL3N0cmVhbScpO1xcbiAqIGpRdWVyeShzb3VyY2UpLm9uKCdtZXNzYWdlJywgZGVib3VuY2VkKTtcXG4gKlxcbiAqIC8vIENhbmNlbCB0aGUgdHJhaWxpbmcgZGVib3VuY2VkIGludm9jYXRpb24uXFxuICogalF1ZXJ5KHdpbmRvdykub24oJ3BvcHN0YXRlJywgZGVib3VuY2VkLmNhbmNlbCk7XFxuICovXFxuZnVuY3Rpb24gZGVib3VuY2UoZnVuYywgd2FpdCwgb3B0aW9ucykge1xcbiAgdmFyIGxhc3RBcmdzLFxcbiAgICAgIGxhc3RUaGlzLFxcbiAgICAgIG1heFdhaXQsXFxuICAgICAgcmVzdWx0LFxcbiAgICAgIHRpbWVySWQsXFxuICAgICAgbGFzdENhbGxUaW1lLFxcbiAgICAgIGxhc3RJbnZva2VUaW1lID0gMCxcXG4gICAgICBsZWFkaW5nID0gZmFsc2UsXFxuICAgICAgbWF4aW5nID0gZmFsc2UsXFxuICAgICAgdHJhaWxpbmcgPSB0cnVlO1xcblxcbiAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xcbiAgfVxcbiAgd2FpdCA9IHRvTnVtYmVyKHdhaXQpIHx8IDA7XFxuICBpZiAoaXNPYmplY3Qob3B0aW9ucykpIHtcXG4gICAgbGVhZGluZyA9ICEhb3B0aW9ucy5sZWFkaW5nO1xcbiAgICBtYXhpbmcgPSAnbWF4V2FpdCcgaW4gb3B0aW9ucztcXG4gICAgbWF4V2FpdCA9IG1heGluZyA/IG5hdGl2ZU1heCh0b051bWJlcihvcHRpb25zLm1heFdhaXQpIHx8IDAsIHdhaXQpIDogbWF4V2FpdDtcXG4gICAgdHJhaWxpbmcgPSAndHJhaWxpbmcnIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMudHJhaWxpbmcgOiB0cmFpbGluZztcXG4gIH1cXG5cXG4gIGZ1bmN0aW9uIGludm9rZUZ1bmModGltZSkge1xcbiAgICB2YXIgYXJncyA9IGxhc3RBcmdzLFxcbiAgICAgICAgdGhpc0FyZyA9IGxhc3RUaGlzO1xcblxcbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xcbiAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XFxuICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkodGhpc0FyZywgYXJncyk7XFxuICAgIHJldHVybiByZXN1bHQ7XFxuICB9XFxuXFxuICBmdW5jdGlvbiBsZWFkaW5nRWRnZSh0aW1lKSB7XFxuICAgIC8vIFJlc2V0IGFueSBgbWF4V2FpdGAgdGltZXIuXFxuICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcXG4gICAgLy8gU3RhcnQgdGhlIHRpbWVyIGZvciB0aGUgdHJhaWxpbmcgZWRnZS5cXG4gICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcXG4gICAgLy8gSW52b2tlIHRoZSBsZWFkaW5nIGVkZ2UuXFxuICAgIHJldHVybiBsZWFkaW5nID8gaW52b2tlRnVuYyh0aW1lKSA6IHJlc3VsdDtcXG4gIH1cXG5cXG4gIGZ1bmN0aW9uIHJlbWFpbmluZ1dhaXQodGltZSkge1xcbiAgICB2YXIgdGltZVNpbmNlTGFzdENhbGwgPSB0aW1lIC0gbGFzdENhbGxUaW1lLFxcbiAgICAgICAgdGltZVNpbmNlTGFzdEludm9rZSA9IHRpbWUgLSBsYXN0SW52b2tlVGltZSxcXG4gICAgICAgIHJlc3VsdCA9IHdhaXQgLSB0aW1lU2luY2VMYXN0Q2FsbDtcXG5cXG4gICAgcmV0dXJuIG1heGluZyA/IG5hdGl2ZU1pbihyZXN1bHQsIG1heFdhaXQgLSB0aW1lU2luY2VMYXN0SW52b2tlKSA6IHJlc3VsdDtcXG4gIH1cXG5cXG4gIGZ1bmN0aW9uIHNob3VsZEludm9rZSh0aW1lKSB7XFxuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXFxuICAgICAgICB0aW1lU2luY2VMYXN0SW52b2tlID0gdGltZSAtIGxhc3RJbnZva2VUaW1lO1xcblxcbiAgICAvLyBFaXRoZXIgdGhpcyBpcyB0aGUgZmlyc3QgY2FsbCwgYWN0aXZpdHkgaGFzIHN0b3BwZWQgYW5kIHdlJ3JlIGF0IHRoZVxcbiAgICAvLyB0cmFpbGluZyBlZGdlLCB0aGUgc3lzdGVtIHRpbWUgaGFzIGdvbmUgYmFja3dhcmRzIGFuZCB3ZSdyZSB0cmVhdGluZ1xcbiAgICAvLyBpdCBhcyB0aGUgdHJhaWxpbmcgZWRnZSwgb3Igd2UndmUgaGl0IHRoZSBgbWF4V2FpdGAgbGltaXQuXFxuICAgIHJldHVybiAobGFzdENhbGxUaW1lID09PSB1bmRlZmluZWQgfHwgKHRpbWVTaW5jZUxhc3RDYWxsID49IHdhaXQpIHx8XFxuICAgICAgKHRpbWVTaW5jZUxhc3RDYWxsIDwgMCkgfHwgKG1heGluZyAmJiB0aW1lU2luY2VMYXN0SW52b2tlID49IG1heFdhaXQpKTtcXG4gIH1cXG5cXG4gIGZ1bmN0aW9uIHRpbWVyRXhwaXJlZCgpIHtcXG4gICAgdmFyIHRpbWUgPSBub3coKTtcXG4gICAgaWYgKHNob3VsZEludm9rZSh0aW1lKSkge1xcbiAgICAgIHJldHVybiB0cmFpbGluZ0VkZ2UodGltZSk7XFxuICAgIH1cXG4gICAgLy8gUmVzdGFydCB0aGUgdGltZXIuXFxuICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgcmVtYWluaW5nV2FpdCh0aW1lKSk7XFxuICB9XFxuXFxuICBmdW5jdGlvbiB0cmFpbGluZ0VkZ2UodGltZSkge1xcbiAgICB0aW1lcklkID0gdW5kZWZpbmVkO1xcblxcbiAgICAvLyBPbmx5IGludm9rZSBpZiB3ZSBoYXZlIGBsYXN0QXJnc2Agd2hpY2ggbWVhbnMgYGZ1bmNgIGhhcyBiZWVuXFxuICAgIC8vIGRlYm91bmNlZCBhdCBsZWFzdCBvbmNlLlxcbiAgICBpZiAodHJhaWxpbmcgJiYgbGFzdEFyZ3MpIHtcXG4gICAgICByZXR1cm4gaW52b2tlRnVuYyh0aW1lKTtcXG4gICAgfVxcbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xcbiAgICByZXR1cm4gcmVzdWx0O1xcbiAgfVxcblxcbiAgZnVuY3Rpb24gY2FuY2VsKCkge1xcbiAgICBpZiAodGltZXJJZCAhPT0gdW5kZWZpbmVkKSB7XFxuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xcbiAgICB9XFxuICAgIGxhc3RJbnZva2VUaW1lID0gMDtcXG4gICAgbGFzdEFyZ3MgPSBsYXN0Q2FsbFRpbWUgPSBsYXN0VGhpcyA9IHRpbWVySWQgPSB1bmRlZmluZWQ7XFxuICB9XFxuXFxuICBmdW5jdGlvbiBmbHVzaCgpIHtcXG4gICAgcmV0dXJuIHRpbWVySWQgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IHRyYWlsaW5nRWRnZShub3coKSk7XFxuICB9XFxuXFxuICBmdW5jdGlvbiBkZWJvdW5jZWQoKSB7XFxuICAgIHZhciB0aW1lID0gbm93KCksXFxuICAgICAgICBpc0ludm9raW5nID0gc2hvdWxkSW52b2tlKHRpbWUpO1xcblxcbiAgICBsYXN0QXJncyA9IGFyZ3VtZW50cztcXG4gICAgbGFzdFRoaXMgPSB0aGlzO1xcbiAgICBsYXN0Q2FsbFRpbWUgPSB0aW1lO1xcblxcbiAgICBpZiAoaXNJbnZva2luZykge1xcbiAgICAgIGlmICh0aW1lcklkID09PSB1bmRlZmluZWQpIHtcXG4gICAgICAgIHJldHVybiBsZWFkaW5nRWRnZShsYXN0Q2FsbFRpbWUpO1xcbiAgICAgIH1cXG4gICAgICBpZiAobWF4aW5nKSB7XFxuICAgICAgICAvLyBIYW5kbGUgaW52b2NhdGlvbnMgaW4gYSB0aWdodCBsb29wLlxcbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcXG4gICAgICAgIHJldHVybiBpbnZva2VGdW5jKGxhc3RDYWxsVGltZSk7XFxuICAgICAgfVxcbiAgICB9XFxuICAgIGlmICh0aW1lcklkID09PSB1bmRlZmluZWQpIHtcXG4gICAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xcbiAgICB9XFxuICAgIHJldHVybiByZXN1bHQ7XFxuICB9XFxuICBkZWJvdW5jZWQuY2FuY2VsID0gY2FuY2VsO1xcbiAgZGVib3VuY2VkLmZsdXNoID0gZmx1c2g7XFxuICByZXR1cm4gZGVib3VuY2VkO1xcbn1cXG5cXG4vKipcXG4gKiBDcmVhdGVzIGEgdGhyb3R0bGVkIGZ1bmN0aW9uIHRoYXQgb25seSBpbnZva2VzIGBmdW5jYCBhdCBtb3N0IG9uY2UgcGVyXFxuICogZXZlcnkgYHdhaXRgIG1pbGxpc2Vjb25kcy4gVGhlIHRocm90dGxlZCBmdW5jdGlvbiBjb21lcyB3aXRoIGEgYGNhbmNlbGBcXG4gKiBtZXRob2QgdG8gY2FuY2VsIGRlbGF5ZWQgYGZ1bmNgIGludm9jYXRpb25zIGFuZCBhIGBmbHVzaGAgbWV0aG9kIHRvXFxuICogaW1tZWRpYXRlbHkgaW52b2tlIHRoZW0uIFByb3ZpZGUgYG9wdGlvbnNgIHRvIGluZGljYXRlIHdoZXRoZXIgYGZ1bmNgXFxuICogc2hvdWxkIGJlIGludm9rZWQgb24gdGhlIGxlYWRpbmcgYW5kL29yIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIGB3YWl0YFxcbiAqIHRpbWVvdXQuIFRoZSBgZnVuY2AgaXMgaW52b2tlZCB3aXRoIHRoZSBsYXN0IGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGVcXG4gKiB0aHJvdHRsZWQgZnVuY3Rpb24uIFN1YnNlcXVlbnQgY2FsbHMgdG8gdGhlIHRocm90dGxlZCBmdW5jdGlvbiByZXR1cm4gdGhlXFxuICogcmVzdWx0IG9mIHRoZSBsYXN0IGBmdW5jYCBpbnZvY2F0aW9uLlxcbiAqXFxuICogKipOb3RlOioqIElmIGBsZWFkaW5nYCBhbmQgYHRyYWlsaW5nYCBvcHRpb25zIGFyZSBgdHJ1ZWAsIGBmdW5jYCBpc1xcbiAqIGludm9rZWQgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQgb25seSBpZiB0aGUgdGhyb3R0bGVkIGZ1bmN0aW9uXFxuICogaXMgaW52b2tlZCBtb3JlIHRoYW4gb25jZSBkdXJpbmcgdGhlIGB3YWl0YCB0aW1lb3V0LlxcbiAqXFxuICogSWYgYHdhaXRgIGlzIGAwYCBhbmQgYGxlYWRpbmdgIGlzIGBmYWxzZWAsIGBmdW5jYCBpbnZvY2F0aW9uIGlzIGRlZmVycmVkXFxuICogdW50aWwgdG8gdGhlIG5leHQgdGljaywgc2ltaWxhciB0byBgc2V0VGltZW91dGAgd2l0aCBhIHRpbWVvdXQgb2YgYDBgLlxcbiAqXFxuICogU2VlIFtEYXZpZCBDb3JiYWNobydzIGFydGljbGVdKGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vZGVib3VuY2luZy10aHJvdHRsaW5nLWV4cGxhaW5lZC1leGFtcGxlcy8pXFxuICogZm9yIGRldGFpbHMgb3ZlciB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBgXy50aHJvdHRsZWAgYW5kIGBfLmRlYm91bmNlYC5cXG4gKlxcbiAqIEBzdGF0aWNcXG4gKiBAbWVtYmVyT2YgX1xcbiAqIEBzaW5jZSAwLjEuMFxcbiAqIEBjYXRlZ29yeSBGdW5jdGlvblxcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHRocm90dGxlLlxcbiAqIEBwYXJhbSB7bnVtYmVyfSBbd2FpdD0wXSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB0aHJvdHRsZSBpbnZvY2F0aW9ucyB0by5cXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlYWRpbmc9dHJ1ZV1cXG4gKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgbGVhZGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudHJhaWxpbmc9dHJ1ZV1cXG4gKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB0aHJvdHRsZWQgZnVuY3Rpb24uXFxuICogQGV4YW1wbGVcXG4gKlxcbiAqIC8vIEF2b2lkIGV4Y2Vzc2l2ZWx5IHVwZGF0aW5nIHRoZSBwb3NpdGlvbiB3aGlsZSBzY3JvbGxpbmcuXFxuICogalF1ZXJ5KHdpbmRvdykub24oJ3Njcm9sbCcsIF8udGhyb3R0bGUodXBkYXRlUG9zaXRpb24sIDEwMCkpO1xcbiAqXFxuICogLy8gSW52b2tlIGByZW5ld1Rva2VuYCB3aGVuIHRoZSBjbGljayBldmVudCBpcyBmaXJlZCwgYnV0IG5vdCBtb3JlIHRoYW4gb25jZSBldmVyeSA1IG1pbnV0ZXMuXFxuICogdmFyIHRocm90dGxlZCA9IF8udGhyb3R0bGUocmVuZXdUb2tlbiwgMzAwMDAwLCB7ICd0cmFpbGluZyc6IGZhbHNlIH0pO1xcbiAqIGpRdWVyeShlbGVtZW50KS5vbignY2xpY2snLCB0aHJvdHRsZWQpO1xcbiAqXFxuICogLy8gQ2FuY2VsIHRoZSB0cmFpbGluZyB0aHJvdHRsZWQgaW52b2NhdGlvbi5cXG4gKiBqUXVlcnkod2luZG93KS5vbigncG9wc3RhdGUnLCB0aHJvdHRsZWQuY2FuY2VsKTtcXG4gKi9cXG5mdW5jdGlvbiB0aHJvdHRsZShmdW5jLCB3YWl0LCBvcHRpb25zKSB7XFxuICB2YXIgbGVhZGluZyA9IHRydWUsXFxuICAgICAgdHJhaWxpbmcgPSB0cnVlO1xcblxcbiAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xcbiAgfVxcbiAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XFxuICAgIGxlYWRpbmcgPSAnbGVhZGluZycgaW4gb3B0aW9ucyA/ICEhb3B0aW9ucy5sZWFkaW5nIDogbGVhZGluZztcXG4gICAgdHJhaWxpbmcgPSAndHJhaWxpbmcnIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMudHJhaWxpbmcgOiB0cmFpbGluZztcXG4gIH1cXG4gIHJldHVybiBkZWJvdW5jZShmdW5jLCB3YWl0LCB7XFxuICAgICdsZWFkaW5nJzogbGVhZGluZyxcXG4gICAgJ21heFdhaXQnOiB3YWl0LFxcbiAgICAndHJhaWxpbmcnOiB0cmFpbGluZ1xcbiAgfSk7XFxufVxcblxcbi8qKlxcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZVxcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcXG4gKiBvZiBgT2JqZWN0YC4gKGUuZy4gYXJyYXlzLCBmdW5jdGlvbnMsIG9iamVjdHMsIHJlZ2V4ZXMsIGBuZXcgTnVtYmVyKDApYCwgYW5kIGBuZXcgU3RyaW5nKCcnKWApXFxuICpcXG4gKiBAc3RhdGljXFxuICogQG1lbWJlck9mIF9cXG4gKiBAc2luY2UgMC4xLjBcXG4gKiBAY2F0ZWdvcnkgTGFuZ1xcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxcbiAqIEBleGFtcGxlXFxuICpcXG4gKiBfLmlzT2JqZWN0KHt9KTtcXG4gKiAvLyA9PiB0cnVlXFxuICpcXG4gKiBfLmlzT2JqZWN0KFsxLCAyLCAzXSk7XFxuICogLy8gPT4gdHJ1ZVxcbiAqXFxuICogXy5pc09iamVjdChfLm5vb3ApO1xcbiAqIC8vID0+IHRydWVcXG4gKlxcbiAqIF8uaXNPYmplY3QobnVsbCk7XFxuICogLy8gPT4gZmFsc2VcXG4gKi9cXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XFxuICByZXR1cm4gISF2YWx1ZSAmJiAodHlwZSA9PSAnb2JqZWN0JyB8fCB0eXBlID09ICdmdW5jdGlvbicpO1xcbn1cXG5cXG4vKipcXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcXG4gKiBhbmQgaGFzIGEgYHR5cGVvZmAgcmVzdWx0IG9mIFxcXCJvYmplY3RcXFwiLlxcbiAqXFxuICogQHN0YXRpY1xcbiAqIEBtZW1iZXJPZiBfXFxuICogQHNpbmNlIDQuMC4wXFxuICogQGNhdGVnb3J5IExhbmdcXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxcbiAqIEBleGFtcGxlXFxuICpcXG4gKiBfLmlzT2JqZWN0TGlrZSh7fSk7XFxuICogLy8gPT4gdHJ1ZVxcbiAqXFxuICogXy5pc09iamVjdExpa2UoWzEsIDIsIDNdKTtcXG4gKiAvLyA9PiB0cnVlXFxuICpcXG4gKiBfLmlzT2JqZWN0TGlrZShfLm5vb3ApO1xcbiAqIC8vID0+IGZhbHNlXFxuICpcXG4gKiBfLmlzT2JqZWN0TGlrZShudWxsKTtcXG4gKiAvLyA9PiBmYWxzZVxcbiAqL1xcbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xcbiAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnO1xcbn1cXG5cXG4vKipcXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFN5bWJvbGAgcHJpbWl0aXZlIG9yIG9iamVjdC5cXG4gKlxcbiAqIEBzdGF0aWNcXG4gKiBAbWVtYmVyT2YgX1xcbiAqIEBzaW5jZSA0LjAuMFxcbiAqIEBjYXRlZ29yeSBMYW5nXFxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzeW1ib2wsIGVsc2UgYGZhbHNlYC5cXG4gKiBAZXhhbXBsZVxcbiAqXFxuICogXy5pc1N5bWJvbChTeW1ib2wuaXRlcmF0b3IpO1xcbiAqIC8vID0+IHRydWVcXG4gKlxcbiAqIF8uaXNTeW1ib2woJ2FiYycpO1xcbiAqIC8vID0+IGZhbHNlXFxuICovXFxuZnVuY3Rpb24gaXNTeW1ib2wodmFsdWUpIHtcXG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N5bWJvbCcgfHxcXG4gICAgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgb2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gc3ltYm9sVGFnKTtcXG59XFxuXFxuLyoqXFxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIG51bWJlci5cXG4gKlxcbiAqIEBzdGF0aWNcXG4gKiBAbWVtYmVyT2YgX1xcbiAqIEBzaW5jZSA0LjAuMFxcbiAqIEBjYXRlZ29yeSBMYW5nXFxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIuXFxuICogQGV4YW1wbGVcXG4gKlxcbiAqIF8udG9OdW1iZXIoMy4yKTtcXG4gKiAvLyA9PiAzLjJcXG4gKlxcbiAqIF8udG9OdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSk7XFxuICogLy8gPT4gNWUtMzI0XFxuICpcXG4gKiBfLnRvTnVtYmVyKEluZmluaXR5KTtcXG4gKiAvLyA9PiBJbmZpbml0eVxcbiAqXFxuICogXy50b051bWJlcignMy4yJyk7XFxuICogLy8gPT4gMy4yXFxuICovXFxuZnVuY3Rpb24gdG9OdW1iZXIodmFsdWUpIHtcXG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicpIHtcXG4gICAgcmV0dXJuIHZhbHVlO1xcbiAgfVxcbiAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xcbiAgICByZXR1cm4gTkFOO1xcbiAgfVxcbiAgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xcbiAgICB2YXIgb3RoZXIgPSB0eXBlb2YgdmFsdWUudmFsdWVPZiA9PSAnZnVuY3Rpb24nID8gdmFsdWUudmFsdWVPZigpIDogdmFsdWU7XFxuICAgIHZhbHVlID0gaXNPYmplY3Qob3RoZXIpID8gKG90aGVyICsgJycpIDogb3RoZXI7XFxuICB9XFxuICBpZiAodHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSB7XFxuICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogK3ZhbHVlO1xcbiAgfVxcbiAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHJlVHJpbSwgJycpO1xcbiAgdmFyIGlzQmluYXJ5ID0gcmVJc0JpbmFyeS50ZXN0KHZhbHVlKTtcXG4gIHJldHVybiAoaXNCaW5hcnkgfHwgcmVJc09jdGFsLnRlc3QodmFsdWUpKVxcbiAgICA/IGZyZWVQYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgaXNCaW5hcnkgPyAyIDogOClcXG4gICAgOiAocmVJc0JhZEhleC50ZXN0KHZhbHVlKSA/IE5BTiA6ICt2YWx1ZSk7XFxufVxcblxcbm1vZHVsZS5leHBvcnRzID0gdGhyb3R0bGU7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwyeHZaR0Z6YUM1MGFISnZkSFJzWlM5cGJtUmxlQzVxY3k1cWN5SXNJbTFoY0hCcGJtZHpJam9pUVVGQlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUczdRVUZGUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHRCUVVOQkxIZENRVUYzUWl4eFFrRkJUU3huUWtGQlowSXNjVUpCUVUwc1NVRkJTU3h4UWtGQlRTeHpRa0ZCYzBJc2NVSkJRVTA3TzBGQlJURkdPMEZCUTBFN08wRkJSVUU3UVVGRFFUczdRVUZGUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdGQlFXRXNVVUZCVVR0QlFVTnlRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEVsQlFVazdRVUZEU2p0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVjBGQlZ5eFZRVUZWTzBGQlEzSkNMRmRCUVZjc1VVRkJVVHRCUVVOdVFpeFhRVUZYTEZGQlFWRXNWMEZCVnp0QlFVTTVRaXhYUVVGWExGTkJRVk03UVVGRGNFSTdRVUZEUVN4WFFVRlhMRkZCUVZFN1FVRkRia0k3UVVGRFFTeFhRVUZYTEZOQlFWTTdRVUZEY0VJN1FVRkRRU3hoUVVGaExGVkJRVlU3UVVGRGRrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNTVUZCU1R0QlFVTktPMEZCUTBFN1FVRkRRU3dyUTBGQkswTXNhVUpCUVdsQ08wRkJRMmhGTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVjBGQlZ5eFZRVUZWTzBGQlEzSkNMRmRCUVZjc1VVRkJVVHRCUVVOdVFpeFhRVUZYTEZGQlFWRXNWMEZCVnp0QlFVTTVRaXhYUVVGWExGTkJRVk03UVVGRGNFSTdRVUZEUVN4WFFVRlhMRk5CUVZNN1FVRkRjRUk3UVVGRFFTeGhRVUZoTEZWQlFWVTdRVUZEZGtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNiMFJCUVc5RUxHMUNRVUZ0UWp0QlFVTjJSVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeEhRVUZITzBGQlEwZzdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1YwRkJWeXhIUVVGSE8wRkJRMlFzWVVGQllTeFRRVUZUTzBGQlEzUkNPMEZCUTBFN1FVRkRRU3huUWtGQlowSTdRVUZEYUVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4WFFVRlhMRWRCUVVjN1FVRkRaQ3hoUVVGaExGTkJRVk03UVVGRGRFSTdRVUZEUVR0QlFVTkJMRzlDUVVGdlFqdEJRVU53UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVjBGQlZ5eEhRVUZITzBGQlEyUXNZVUZCWVN4VFFVRlRPMEZCUTNSQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEZkQlFWY3NSMEZCUnp0QlFVTmtMR0ZCUVdFc1VVRkJVVHRCUVVOeVFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFTSXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTh1TGk5dWIyUmxYMjF2WkhWc1pYTXZiRzlrWVhOb0xuUm9jbTkwZEd4bEwybHVaR1Y0TG1welB6a3pOMklpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUx5b3FYRzRnS2lCc2IyUmhjMmdnS0VOMWMzUnZiU0JDZFdsc1pDa2dQR2gwZEhCek9pOHZiRzlrWVhOb0xtTnZiUzgrWEc0Z0tpQkNkV2xzWkRvZ1lHeHZaR0Z6YUNCdGIyUjFiR0Z5YVhwbElHVjRjRzl5ZEhNOVhDSnVjRzFjSWlBdGJ5QXVMMkJjYmlBcUlFTnZjSGx5YVdkb2RDQnFVWFZsY25rZ1JtOTFibVJoZEdsdmJpQmhibVFnYjNSb1pYSWdZMjl1ZEhKcFluVjBiM0p6SUR4b2RIUndjem92TDJweGRXVnllUzV2Y21jdlBseHVJQ29nVW1Wc1pXRnpaV1FnZFc1a1pYSWdUVWxVSUd4cFkyVnVjMlVnUEdoMGRIQnpPaTh2Ykc5a1lYTm9MbU52YlM5c2FXTmxibk5sUGx4dUlDb2dRbUZ6WldRZ2IyNGdWVzVrWlhKelkyOXlaUzVxY3lBeExqZ3VNeUE4YUhSMGNEb3ZMM1Z1WkdWeWMyTnZjbVZxY3k1dmNtY3ZURWxEUlU1VFJUNWNiaUFxSUVOdmNIbHlhV2RvZENCS1pYSmxiWGtnUVhOb2EyVnVZWE1zSUVSdlkzVnRaVzUwUTJ4dmRXUWdZVzVrSUVsdWRtVnpkR2xuWVhScGRtVWdVbVZ3YjNKMFpYSnpJQ1lnUldScGRHOXljMXh1SUNvdlhHNWNiaThxS2lCVmMyVmtJR0Z6SUhSb1pTQmdWSGx3WlVWeWNtOXlZQ0J0WlhOellXZGxJR1p2Y2lCY0lrWjFibU4wYVc5dWMxd2lJRzFsZEdodlpITXVJQ292WEc1MllYSWdSbFZPUTE5RlVsSlBVbDlVUlZoVUlEMGdKMFY0Y0dWamRHVmtJR0VnWm5WdVkzUnBiMjRuTzF4dVhHNHZLaW9nVlhObFpDQmhjeUJ5WldabGNtVnVZMlZ6SUdadmNpQjJZWEpwYjNWeklHQk9kVzFpWlhKZ0lHTnZibk4wWVc1MGN5NGdLaTljYm5aaGNpQk9RVTRnUFNBd0lDOGdNRHRjYmx4dUx5b3FJR0JQWW1wbFkzUWpkRzlUZEhKcGJtZGdJSEpsYzNWc2RDQnlaV1psY21WdVkyVnpMaUFxTDF4dWRtRnlJSE41YldKdmJGUmhaeUE5SUNkYmIySnFaV04wSUZONWJXSnZiRjBuTzF4dVhHNHZLaW9nVlhObFpDQjBieUJ0WVhSamFDQnNaV0ZrYVc1bklHRnVaQ0IwY21GcGJHbHVaeUIzYUdsMFpYTndZV05sTGlBcUwxeHVkbUZ5SUhKbFZISnBiU0E5SUM5ZVhGeHpLM3hjWEhNckpDOW5PMXh1WEc0dktpb2dWWE5sWkNCMGJ5QmtaWFJsWTNRZ1ltRmtJSE5wWjI1bFpDQm9aWGhoWkdWamFXMWhiQ0J6ZEhKcGJtY2dkbUZzZFdWekxpQXFMMXh1ZG1GeUlISmxTWE5DWVdSSVpYZ2dQU0F2WGxzdEsxMHdlRnN3TFRsaExXWmRLeVF2YVR0Y2JseHVMeW9xSUZWelpXUWdkRzhnWkdWMFpXTjBJR0pwYm1GeWVTQnpkSEpwYm1jZ2RtRnNkV1Z6TGlBcUwxeHVkbUZ5SUhKbFNYTkNhVzVoY25rZ1BTQXZYakJpV3pBeFhTc2tMMms3WEc1Y2JpOHFLaUJWYzJWa0lIUnZJR1JsZEdWamRDQnZZM1JoYkNCemRISnBibWNnZG1Gc2RXVnpMaUFxTDF4dWRtRnlJSEpsU1hOUFkzUmhiQ0E5SUM5ZU1HOWJNQzAzWFNza0wyazdYRzVjYmk4cUtpQkNkV2xzZEMxcGJpQnRaWFJvYjJRZ2NtVm1aWEpsYm1ObGN5QjNhWFJvYjNWMElHRWdaR1Z3Wlc1a1pXNWplU0J2YmlCZ2NtOXZkR0F1SUNvdlhHNTJZWElnWm5KbFpWQmhjbk5sU1c1MElEMGdjR0Z5YzJWSmJuUTdYRzVjYmk4cUtpQkVaWFJsWTNRZ1puSmxaU0IyWVhKcFlXSnNaU0JnWjJ4dlltRnNZQ0JtY205dElFNXZaR1V1YW5NdUlDb3ZYRzUyWVhJZ1puSmxaVWRzYjJKaGJDQTlJSFI1Y0dWdlppQm5iRzlpWVd3Z1BUMGdKMjlpYW1WamRDY2dKaVlnWjJ4dlltRnNJQ1ltSUdkc2IySmhiQzVQWW1wbFkzUWdQVDA5SUU5aWFtVmpkQ0FtSmlCbmJHOWlZV3c3WEc1Y2JpOHFLaUJFWlhSbFkzUWdabkpsWlNCMllYSnBZV0pzWlNCZ2MyVnNabUF1SUNvdlhHNTJZWElnWm5KbFpWTmxiR1lnUFNCMGVYQmxiMllnYzJWc1ppQTlQU0FuYjJKcVpXTjBKeUFtSmlCelpXeG1JQ1ltSUhObGJHWXVUMkpxWldOMElEMDlQU0JQWW1wbFkzUWdKaVlnYzJWc1pqdGNibHh1THlvcUlGVnpaV1FnWVhNZ1lTQnlaV1psY21WdVkyVWdkRzhnZEdobElHZHNiMkpoYkNCdlltcGxZM1F1SUNvdlhHNTJZWElnY205dmRDQTlJR1p5WldWSGJHOWlZV3dnZkh3Z1puSmxaVk5sYkdZZ2ZId2dSblZ1WTNScGIyNG9KM0psZEhWeWJpQjBhR2x6Snlrb0tUdGNibHh1THlvcUlGVnpaV1FnWm05eUlHSjFhV3gwTFdsdUlHMWxkR2h2WkNCeVpXWmxjbVZ1WTJWekxpQXFMMXh1ZG1GeUlHOWlhbVZqZEZCeWIzUnZJRDBnVDJKcVpXTjBMbkJ5YjNSdmRIbHdaVHRjYmx4dUx5b3FYRzRnS2lCVmMyVmtJSFJ2SUhKbGMyOXNkbVVnZEdobFhHNGdLaUJiWUhSdlUzUnlhVzVuVkdGbllGMG9hSFIwY0RvdkwyVmpiV0V0YVc1MFpYSnVZWFJwYjI1aGJDNXZjbWN2WldOdFlTMHlOakl2Tnk0d0x5TnpaV010YjJKcVpXTjBMbkJ5YjNSdmRIbHdaUzUwYjNOMGNtbHVaeWxjYmlBcUlHOW1JSFpoYkhWbGN5NWNiaUFxTDF4dWRtRnlJRzlpYW1WamRGUnZVM1J5YVc1bklEMGdiMkpxWldOMFVISnZkRzh1ZEc5VGRISnBibWM3WEc1Y2JpOHFJRUoxYVd4MExXbHVJRzFsZEdodlpDQnlaV1psY21WdVkyVnpJR1p2Y2lCMGFHOXpaU0IzYVhSb0lIUm9aU0J6WVcxbElHNWhiV1VnWVhNZ2IzUm9aWElnWUd4dlpHRnphR0FnYldWMGFHOWtjeTRnS2k5Y2JuWmhjaUJ1WVhScGRtVk5ZWGdnUFNCTllYUm9MbTFoZUN4Y2JpQWdJQ0J1WVhScGRtVk5hVzRnUFNCTllYUm9MbTFwYmp0Y2JseHVMeW9xWEc0Z0tpQkhaWFJ6SUhSb1pTQjBhVzFsYzNSaGJYQWdiMllnZEdobElHNTFiV0psY2lCdlppQnRhV3hzYVhObFkyOXVaSE1nZEdoaGRDQm9ZWFpsSUdWc1lYQnpaV1FnYzJsdVkyVmNiaUFxSUhSb1pTQlZibWw0SUdWd2IyTm9JQ2d4SUVwaGJuVmhjbmtnTVRrM01DQXdNRG93TURvd01DQlZWRU1wTGx4dUlDcGNiaUFxSUVCemRHRjBhV05jYmlBcUlFQnRaVzFpWlhKUFppQmZYRzRnS2lCQWMybHVZMlVnTWk0MExqQmNiaUFxSUVCallYUmxaMjl5ZVNCRVlYUmxYRzRnS2lCQWNtVjBkWEp1Y3lCN2JuVnRZbVZ5ZlNCU1pYUjFjbTV6SUhSb1pTQjBhVzFsYzNSaGJYQXVYRzRnS2lCQVpYaGhiWEJzWlZ4dUlDcGNiaUFxSUY4dVpHVm1aWElvWm5WdVkzUnBiMjRvYzNSaGJYQXBJSHRjYmlBcUlDQWdZMjl1YzI5c1pTNXNiMmNvWHk1dWIzY29LU0F0SUhOMFlXMXdLVHRjYmlBcUlIMHNJRjh1Ym05M0tDa3BPMXh1SUNvZ0x5OGdQVDRnVEc5bmN5QjBhR1VnYm5WdFltVnlJRzltSUcxcGJHeHBjMlZqYjI1a2N5QnBkQ0IwYjI5cklHWnZjaUIwYUdVZ1pHVm1aWEp5WldRZ2FXNTJiMk5oZEdsdmJpNWNiaUFxTDF4dWRtRnlJRzV2ZHlBOUlHWjFibU4wYVc5dUtDa2dlMXh1SUNCeVpYUjFjbTRnY205dmRDNUVZWFJsTG01dmR5Z3BPMXh1ZlR0Y2JseHVMeW9xWEc0Z0tpQkRjbVZoZEdWeklHRWdaR1ZpYjNWdVkyVmtJR1oxYm1OMGFXOXVJSFJvWVhRZ1pHVnNZWGx6SUdsdWRtOXJhVzVuSUdCbWRXNWpZQ0IxYm5ScGJDQmhablJsY2lCZ2QyRnBkR0JjYmlBcUlHMXBiR3hwYzJWamIyNWtjeUJvWVhabElHVnNZWEJ6WldRZ2MybHVZMlVnZEdobElHeGhjM1FnZEdsdFpTQjBhR1VnWkdWaWIzVnVZMlZrSUdaMWJtTjBhVzl1SUhkaGMxeHVJQ29nYVc1MmIydGxaQzRnVkdobElHUmxZbTkxYm1ObFpDQm1kVzVqZEdsdmJpQmpiMjFsY3lCM2FYUm9JR0VnWUdOaGJtTmxiR0FnYldWMGFHOWtJSFJ2SUdOaGJtTmxiRnh1SUNvZ1pHVnNZWGxsWkNCZ1puVnVZMkFnYVc1MmIyTmhkR2x2Ym5NZ1lXNWtJR0VnWUdac2RYTm9ZQ0J0WlhSb2IyUWdkRzhnYVcxdFpXUnBZWFJsYkhrZ2FXNTJiMnRsSUhSb1pXMHVYRzRnS2lCUWNtOTJhV1JsSUdCdmNIUnBiMjV6WUNCMGJ5QnBibVJwWTJGMFpTQjNhR1YwYUdWeUlHQm1kVzVqWUNCemFHOTFiR1FnWW1VZ2FXNTJiMnRsWkNCdmJpQjBhR1ZjYmlBcUlHeGxZV1JwYm1jZ1lXNWtMMjl5SUhSeVlXbHNhVzVuSUdWa1oyVWdiMllnZEdobElHQjNZV2wwWUNCMGFXMWxiM1YwTGlCVWFHVWdZR1oxYm1OZ0lHbHpJR2x1ZG05clpXUmNiaUFxSUhkcGRHZ2dkR2hsSUd4aGMzUWdZWEpuZFcxbGJuUnpJSEJ5YjNacFpHVmtJSFJ2SUhSb1pTQmtaV0p2ZFc1alpXUWdablZ1WTNScGIyNHVJRk4xWW5ObGNYVmxiblJjYmlBcUlHTmhiR3h6SUhSdklIUm9aU0JrWldKdmRXNWpaV1FnWm5WdVkzUnBiMjRnY21WMGRYSnVJSFJvWlNCeVpYTjFiSFFnYjJZZ2RHaGxJR3hoYzNRZ1lHWjFibU5nWEc0Z0tpQnBiblp2WTJGMGFXOXVMbHh1SUNwY2JpQXFJQ29xVG05MFpUb3FLaUJKWmlCZ2JHVmhaR2x1WjJBZ1lXNWtJR0IwY21GcGJHbHVaMkFnYjNCMGFXOXVjeUJoY21VZ1lIUnlkV1ZnTENCZ1puVnVZMkFnYVhOY2JpQXFJR2x1ZG05clpXUWdiMjRnZEdobElIUnlZV2xzYVc1bklHVmtaMlVnYjJZZ2RHaGxJSFJwYldWdmRYUWdiMjVzZVNCcFppQjBhR1VnWkdWaWIzVnVZMlZrSUdaMWJtTjBhVzl1WEc0Z0tpQnBjeUJwYm5admEyVmtJRzF2Y21VZ2RHaGhiaUJ2Ym1ObElHUjFjbWx1WnlCMGFHVWdZSGRoYVhSZ0lIUnBiV1Z2ZFhRdVhHNGdLbHh1SUNvZ1NXWWdZSGRoYVhSZ0lHbHpJR0F3WUNCaGJtUWdZR3hsWVdScGJtZGdJR2x6SUdCbVlXeHpaV0FzSUdCbWRXNWpZQ0JwYm5adlkyRjBhVzl1SUdseklHUmxabVZ5Y21Wa1hHNGdLaUIxYm5ScGJDQjBieUIwYUdVZ2JtVjRkQ0IwYVdOckxDQnphVzFwYkdGeUlIUnZJR0J6WlhSVWFXMWxiM1YwWUNCM2FYUm9JR0VnZEdsdFpXOTFkQ0J2WmlCZ01HQXVYRzRnS2x4dUlDb2dVMlZsSUZ0RVlYWnBaQ0JEYjNKaVlXTm9ieWR6SUdGeWRHbGpiR1ZkS0doMGRIQnpPaTh2WTNOekxYUnlhV05yY3k1amIyMHZaR1ZpYjNWdVkybHVaeTEwYUhKdmRIUnNhVzVuTFdWNGNHeGhhVzVsWkMxbGVHRnRjR3hsY3k4cFhHNGdLaUJtYjNJZ1pHVjBZV2xzY3lCdmRtVnlJSFJvWlNCa2FXWm1aWEpsYm1ObGN5QmlaWFIzWldWdUlHQmZMbVJsWW05MWJtTmxZQ0JoYm1RZ1lGOHVkR2h5YjNSMGJHVmdMbHh1SUNwY2JpQXFJRUJ6ZEdGMGFXTmNiaUFxSUVCdFpXMWlaWEpQWmlCZlhHNGdLaUJBYzJsdVkyVWdNQzR4TGpCY2JpQXFJRUJqWVhSbFoyOXllU0JHZFc1amRHbHZibHh1SUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1puVnVZeUJVYUdVZ1puVnVZM1JwYjI0Z2RHOGdaR1ZpYjNWdVkyVXVYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzNkaGFYUTlNRjBnVkdobElHNTFiV0psY2lCdlppQnRhV3hzYVhObFkyOXVaSE1nZEc4Z1pHVnNZWGt1WEc0Z0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ1cyOXdkR2x2Ym5NOWUzMWRJRlJvWlNCdmNIUnBiMjV6SUc5aWFtVmpkQzVjYmlBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyOXdkR2x2Ym5NdWJHVmhaR2x1WnoxbVlXeHpaVjFjYmlBcUlDQlRjR1ZqYVdaNUlHbHVkbTlyYVc1bklHOXVJSFJvWlNCc1pXRmthVzVuSUdWa1oyVWdiMllnZEdobElIUnBiV1Z2ZFhRdVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXMjl3ZEdsdmJuTXViV0Y0VjJGcGRGMWNiaUFxSUNCVWFHVWdiV0Y0YVcxMWJTQjBhVzFsSUdCbWRXNWpZQ0JwY3lCaGJHeHZkMlZrSUhSdklHSmxJR1JsYkdGNVpXUWdZbVZtYjNKbElHbDBKM01nYVc1MmIydGxaQzVjYmlBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyOXdkR2x2Ym5NdWRISmhhV3hwYm1jOWRISjFaVjFjYmlBcUlDQlRjR1ZqYVdaNUlHbHVkbTlyYVc1bklHOXVJSFJvWlNCMGNtRnBiR2x1WnlCbFpHZGxJRzltSUhSb1pTQjBhVzFsYjNWMExseHVJQ29nUUhKbGRIVnlibk1nZTBaMWJtTjBhVzl1ZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnWkdWaWIzVnVZMlZrSUdaMWJtTjBhVzl1TGx4dUlDb2dRR1Y0WVcxd2JHVmNiaUFxWEc0Z0tpQXZMeUJCZG05cFpDQmpiM04wYkhrZ1kyRnNZM1ZzWVhScGIyNXpJSGRvYVd4bElIUm9aU0IzYVc1a2IzY2djMmw2WlNCcGN5QnBiaUJtYkhWNExseHVJQ29nYWxGMVpYSjVLSGRwYm1SdmR5a3ViMjRvSjNKbGMybDZaU2NzSUY4dVpHVmliM1Z1WTJVb1kyRnNZM1ZzWVhSbFRHRjViM1YwTENBeE5UQXBLVHRjYmlBcVhHNGdLaUF2THlCSmJuWnZhMlVnWUhObGJtUk5ZV2xzWUNCM2FHVnVJR05zYVdOclpXUXNJR1JsWW05MWJtTnBibWNnYzNWaWMyVnhkV1Z1ZENCallXeHNjeTVjYmlBcUlHcFJkV1Z5ZVNobGJHVnRaVzUwS1M1dmJpZ25ZMnhwWTJzbkxDQmZMbVJsWW05MWJtTmxLSE5sYm1STllXbHNMQ0F6TURBc0lIdGNiaUFxSUNBZ0oyeGxZV1JwYm1jbk9pQjBjblZsTEZ4dUlDb2dJQ0FuZEhKaGFXeHBibWNuT2lCbVlXeHpaVnh1SUNvZ2ZTa3BPMXh1SUNwY2JpQXFJQzh2SUVWdWMzVnlaU0JnWW1GMFkyaE1iMmRnSUdseklHbHVkbTlyWldRZ2IyNWpaU0JoWm5SbGNpQXhJSE5sWTI5dVpDQnZaaUJrWldKdmRXNWpaV1FnWTJGc2JITXVYRzRnS2lCMllYSWdaR1ZpYjNWdVkyVmtJRDBnWHk1a1pXSnZkVzVqWlNoaVlYUmphRXh2Wnl3Z01qVXdMQ0I3SUNkdFlYaFhZV2wwSnpvZ01UQXdNQ0I5S1R0Y2JpQXFJSFpoY2lCemIzVnlZMlVnUFNCdVpYY2dSWFpsYm5SVGIzVnlZMlVvSnk5emRISmxZVzBuS1R0Y2JpQXFJR3BSZFdWeWVTaHpiM1Z5WTJVcExtOXVLQ2R0WlhOellXZGxKeXdnWkdWaWIzVnVZMlZrS1R0Y2JpQXFYRzRnS2lBdkx5QkRZVzVqWld3Z2RHaGxJSFJ5WVdsc2FXNW5JR1JsWW05MWJtTmxaQ0JwYm5adlkyRjBhVzl1TGx4dUlDb2dhbEYxWlhKNUtIZHBibVJ2ZHlrdWIyNG9KM0J2Y0hOMFlYUmxKeXdnWkdWaWIzVnVZMlZrTG1OaGJtTmxiQ2s3WEc0Z0tpOWNibVoxYm1OMGFXOXVJR1JsWW05MWJtTmxLR1oxYm1Nc0lIZGhhWFFzSUc5d2RHbHZibk1wSUh0Y2JpQWdkbUZ5SUd4aGMzUkJjbWR6TEZ4dUlDQWdJQ0FnYkdGemRGUm9hWE1zWEc0Z0lDQWdJQ0J0WVhoWFlXbDBMRnh1SUNBZ0lDQWdjbVZ6ZFd4MExGeHVJQ0FnSUNBZ2RHbHRaWEpKWkN4Y2JpQWdJQ0FnSUd4aGMzUkRZV3hzVkdsdFpTeGNiaUFnSUNBZ0lHeGhjM1JKYm5admEyVlVhVzFsSUQwZ01DeGNiaUFnSUNBZ0lHeGxZV1JwYm1jZ1BTQm1ZV3h6WlN4Y2JpQWdJQ0FnSUcxaGVHbHVaeUE5SUdaaGJITmxMRnh1SUNBZ0lDQWdkSEpoYVd4cGJtY2dQU0IwY25WbE8xeHVYRzRnSUdsbUlDaDBlWEJsYjJZZ1puVnVZeUFoUFNBblpuVnVZM1JwYjI0bktTQjdYRzRnSUNBZ2RHaHliM2NnYm1WM0lGUjVjR1ZGY25KdmNpaEdWVTVEWDBWU1VrOVNYMVJGV0ZRcE8xeHVJQ0I5WEc0Z0lIZGhhWFFnUFNCMGIwNTFiV0psY2loM1lXbDBLU0I4ZkNBd08xeHVJQ0JwWmlBb2FYTlBZbXBsWTNRb2IzQjBhVzl1Y3lrcElIdGNiaUFnSUNCc1pXRmthVzVuSUQwZ0lTRnZjSFJwYjI1ekxteGxZV1JwYm1jN1hHNGdJQ0FnYldGNGFXNW5JRDBnSjIxaGVGZGhhWFFuSUdsdUlHOXdkR2x2Ym5NN1hHNGdJQ0FnYldGNFYyRnBkQ0E5SUcxaGVHbHVaeUEvSUc1aGRHbDJaVTFoZUNoMGIwNTFiV0psY2lodmNIUnBiMjV6TG0xaGVGZGhhWFFwSUh4OElEQXNJSGRoYVhRcElEb2diV0Y0VjJGcGREdGNiaUFnSUNCMGNtRnBiR2x1WnlBOUlDZDBjbUZwYkdsdVp5Y2dhVzRnYjNCMGFXOXVjeUEvSUNFaGIzQjBhVzl1Y3k1MGNtRnBiR2x1WnlBNklIUnlZV2xzYVc1bk8xeHVJQ0I5WEc1Y2JpQWdablZ1WTNScGIyNGdhVzUyYjJ0bFJuVnVZeWgwYVcxbEtTQjdYRzRnSUNBZ2RtRnlJR0Z5WjNNZ1BTQnNZWE4wUVhKbmN5eGNiaUFnSUNBZ0lDQWdkR2hwYzBGeVp5QTlJR3hoYzNSVWFHbHpPMXh1WEc0Z0lDQWdiR0Z6ZEVGeVozTWdQU0JzWVhOMFZHaHBjeUE5SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JzWVhOMFNXNTJiMnRsVkdsdFpTQTlJSFJwYldVN1hHNGdJQ0FnY21WemRXeDBJRDBnWm5WdVl5NWhjSEJzZVNoMGFHbHpRWEpuTENCaGNtZHpLVHRjYmlBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQjlYRzVjYmlBZ1puVnVZM1JwYjI0Z2JHVmhaR2x1WjBWa1oyVW9kR2x0WlNrZ2UxeHVJQ0FnSUM4dklGSmxjMlYwSUdGdWVTQmdiV0Y0VjJGcGRHQWdkR2x0WlhJdVhHNGdJQ0FnYkdGemRFbHVkbTlyWlZScGJXVWdQU0IwYVcxbE8xeHVJQ0FnSUM4dklGTjBZWEowSUhSb1pTQjBhVzFsY2lCbWIzSWdkR2hsSUhSeVlXbHNhVzVuSUdWa1oyVXVYRzRnSUNBZ2RHbHRaWEpKWkNBOUlITmxkRlJwYldWdmRYUW9kR2x0WlhKRmVIQnBjbVZrTENCM1lXbDBLVHRjYmlBZ0lDQXZMeUJKYm5admEyVWdkR2hsSUd4bFlXUnBibWNnWldSblpTNWNiaUFnSUNCeVpYUjFjbTRnYkdWaFpHbHVaeUEvSUdsdWRtOXJaVVoxYm1Nb2RHbHRaU2tnT2lCeVpYTjFiSFE3WEc0Z0lIMWNibHh1SUNCbWRXNWpkR2x2YmlCeVpXMWhhVzVwYm1kWFlXbDBLSFJwYldVcElIdGNiaUFnSUNCMllYSWdkR2x0WlZOcGJtTmxUR0Z6ZEVOaGJHd2dQU0IwYVcxbElDMGdiR0Z6ZEVOaGJHeFVhVzFsTEZ4dUlDQWdJQ0FnSUNCMGFXMWxVMmx1WTJWTVlYTjBTVzUyYjJ0bElEMGdkR2x0WlNBdElHeGhjM1JKYm5admEyVlVhVzFsTEZ4dUlDQWdJQ0FnSUNCeVpYTjFiSFFnUFNCM1lXbDBJQzBnZEdsdFpWTnBibU5sVEdGemRFTmhiR3c3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdiV0Y0YVc1bklEOGdibUYwYVhabFRXbHVLSEpsYzNWc2RDd2diV0Y0VjJGcGRDQXRJSFJwYldWVGFXNWpaVXhoYzNSSmJuWnZhMlVwSURvZ2NtVnpkV3gwTzF4dUlDQjlYRzVjYmlBZ1puVnVZM1JwYjI0Z2MyaHZkV3hrU1c1MmIydGxLSFJwYldVcElIdGNiaUFnSUNCMllYSWdkR2x0WlZOcGJtTmxUR0Z6ZEVOaGJHd2dQU0IwYVcxbElDMGdiR0Z6ZEVOaGJHeFVhVzFsTEZ4dUlDQWdJQ0FnSUNCMGFXMWxVMmx1WTJWTVlYTjBTVzUyYjJ0bElEMGdkR2x0WlNBdElHeGhjM1JKYm5admEyVlVhVzFsTzF4dVhHNGdJQ0FnTHk4Z1JXbDBhR1Z5SUhSb2FYTWdhWE1nZEdobElHWnBjbk4wSUdOaGJHd3NJR0ZqZEdsMmFYUjVJR2hoY3lCemRHOXdjR1ZrSUdGdVpDQjNaU2R5WlNCaGRDQjBhR1ZjYmlBZ0lDQXZMeUIwY21GcGJHbHVaeUJsWkdkbExDQjBhR1VnYzNsemRHVnRJSFJwYldVZ2FHRnpJR2R2Ym1VZ1ltRmphM2RoY21SeklHRnVaQ0IzWlNkeVpTQjBjbVZoZEdsdVoxeHVJQ0FnSUM4dklHbDBJR0Z6SUhSb1pTQjBjbUZwYkdsdVp5QmxaR2RsTENCdmNpQjNaU2QyWlNCb2FYUWdkR2hsSUdCdFlYaFhZV2wwWUNCc2FXMXBkQzVjYmlBZ0lDQnlaWFIxY200Z0tHeGhjM1JEWVd4c1ZHbHRaU0E5UFQwZ2RXNWtaV1pwYm1Wa0lIeDhJQ2gwYVcxbFUybHVZMlZNWVhOMFEyRnNiQ0ErUFNCM1lXbDBLU0I4ZkZ4dUlDQWdJQ0FnS0hScGJXVlRhVzVqWlV4aGMzUkRZV3hzSUR3Z01Da2dmSHdnS0cxaGVHbHVaeUFtSmlCMGFXMWxVMmx1WTJWTVlYTjBTVzUyYjJ0bElENDlJRzFoZUZkaGFYUXBLVHRjYmlBZ2ZWeHVYRzRnSUdaMWJtTjBhVzl1SUhScGJXVnlSWGh3YVhKbFpDZ3BJSHRjYmlBZ0lDQjJZWElnZEdsdFpTQTlJRzV2ZHlncE8xeHVJQ0FnSUdsbUlDaHphRzkxYkdSSmJuWnZhMlVvZEdsdFpTa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBjbUZwYkdsdVowVmtaMlVvZEdsdFpTazdYRzRnSUNBZ2ZWeHVJQ0FnSUM4dklGSmxjM1JoY25RZ2RHaGxJSFJwYldWeUxseHVJQ0FnSUhScGJXVnlTV1FnUFNCelpYUlVhVzFsYjNWMEtIUnBiV1Z5Ulhod2FYSmxaQ3dnY21WdFlXbHVhVzVuVjJGcGRDaDBhVzFsS1NrN1hHNGdJSDFjYmx4dUlDQm1kVzVqZEdsdmJpQjBjbUZwYkdsdVowVmtaMlVvZEdsdFpTa2dlMXh1SUNBZ0lIUnBiV1Z5U1dRZ1BTQjFibVJsWm1sdVpXUTdYRzVjYmlBZ0lDQXZMeUJQYm14NUlHbHVkbTlyWlNCcFppQjNaU0JvWVhabElHQnNZWE4wUVhKbmMyQWdkMmhwWTJnZ2JXVmhibk1nWUdaMWJtTmdJR2hoY3lCaVpXVnVYRzRnSUNBZ0x5OGdaR1ZpYjNWdVkyVmtJR0YwSUd4bFlYTjBJRzl1WTJVdVhHNGdJQ0FnYVdZZ0tIUnlZV2xzYVc1bklDWW1JR3hoYzNSQmNtZHpLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdhVzUyYjJ0bFJuVnVZeWgwYVcxbEtUdGNiaUFnSUNCOVhHNGdJQ0FnYkdGemRFRnlaM01nUFNCc1lYTjBWR2hwY3lBOUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNCOVhHNWNiaUFnWm5WdVkzUnBiMjRnWTJGdVkyVnNLQ2tnZTF4dUlDQWdJR2xtSUNoMGFXMWxja2xrSUNFOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJR05zWldGeVZHbHRaVzkxZENoMGFXMWxja2xrS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdiR0Z6ZEVsdWRtOXJaVlJwYldVZ1BTQXdPMXh1SUNBZ0lHeGhjM1JCY21keklEMGdiR0Z6ZEVOaGJHeFVhVzFsSUQwZ2JHRnpkRlJvYVhNZ1BTQjBhVzFsY2tsa0lEMGdkVzVrWldacGJtVmtPMXh1SUNCOVhHNWNiaUFnWm5WdVkzUnBiMjRnWm14MWMyZ29LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUnBiV1Z5U1dRZ1BUMDlJSFZ1WkdWbWFXNWxaQ0EvSUhKbGMzVnNkQ0E2SUhSeVlXbHNhVzVuUldSblpTaHViM2NvS1NrN1hHNGdJSDFjYmx4dUlDQm1kVzVqZEdsdmJpQmtaV0p2ZFc1alpXUW9LU0I3WEc0Z0lDQWdkbUZ5SUhScGJXVWdQU0J1YjNjb0tTeGNiaUFnSUNBZ0lDQWdhWE5KYm5admEybHVaeUE5SUhOb2IzVnNaRWx1ZG05clpTaDBhVzFsS1R0Y2JseHVJQ0FnSUd4aGMzUkJjbWR6SUQwZ1lYSm5kVzFsYm5Sek8xeHVJQ0FnSUd4aGMzUlVhR2x6SUQwZ2RHaHBjenRjYmlBZ0lDQnNZWE4wUTJGc2JGUnBiV1VnUFNCMGFXMWxPMXh1WEc0Z0lDQWdhV1lnS0dselNXNTJiMnRwYm1jcElIdGNiaUFnSUNBZ0lHbG1JQ2gwYVcxbGNrbGtJRDA5UFNCMWJtUmxabWx1WldRcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHeGxZV1JwYm1kRlpHZGxLR3hoYzNSRFlXeHNWR2x0WlNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9iV0Y0YVc1bktTQjdYRzRnSUNBZ0lDQWdJQzh2SUVoaGJtUnNaU0JwYm5adlkyRjBhVzl1Y3lCcGJpQmhJSFJwWjJoMElHeHZiM0F1WEc0Z0lDQWdJQ0FnSUhScGJXVnlTV1FnUFNCelpYUlVhVzFsYjNWMEtIUnBiV1Z5Ulhod2FYSmxaQ3dnZDJGcGRDazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnBiblp2YTJWR2RXNWpLR3hoYzNSRFlXeHNWR2x0WlNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoMGFXMWxja2xrSUQwOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJSFJwYldWeVNXUWdQU0J6WlhSVWFXMWxiM1YwS0hScGJXVnlSWGh3YVhKbFpDd2dkMkZwZENrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJSDFjYmlBZ1pHVmliM1Z1WTJWa0xtTmhibU5sYkNBOUlHTmhibU5sYkR0Y2JpQWdaR1ZpYjNWdVkyVmtMbVpzZFhOb0lEMGdabXgxYzJnN1hHNGdJSEpsZEhWeWJpQmtaV0p2ZFc1alpXUTdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1EzSmxZWFJsY3lCaElIUm9jbTkwZEd4bFpDQm1kVzVqZEdsdmJpQjBhR0YwSUc5dWJIa2dhVzUyYjJ0bGN5QmdablZ1WTJBZ1lYUWdiVzl6ZENCdmJtTmxJSEJsY2x4dUlDb2daWFpsY25rZ1lIZGhhWFJnSUcxcGJHeHBjMlZqYjI1a2N5NGdWR2hsSUhSb2NtOTBkR3hsWkNCbWRXNWpkR2x2YmlCamIyMWxjeUIzYVhSb0lHRWdZR05oYm1ObGJHQmNiaUFxSUcxbGRHaHZaQ0IwYnlCallXNWpaV3dnWkdWc1lYbGxaQ0JnWm5WdVkyQWdhVzUyYjJOaGRHbHZibk1nWVc1a0lHRWdZR1pzZFhOb1lDQnRaWFJvYjJRZ2RHOWNiaUFxSUdsdGJXVmthV0YwWld4NUlHbHVkbTlyWlNCMGFHVnRMaUJRY205MmFXUmxJR0J2Y0hScGIyNXpZQ0IwYnlCcGJtUnBZMkYwWlNCM2FHVjBhR1Z5SUdCbWRXNWpZRnh1SUNvZ2MyaHZkV3hrSUdKbElHbHVkbTlyWldRZ2IyNGdkR2hsSUd4bFlXUnBibWNnWVc1a0wyOXlJSFJ5WVdsc2FXNW5JR1ZrWjJVZ2IyWWdkR2hsSUdCM1lXbDBZRnh1SUNvZ2RHbHRaVzkxZEM0Z1ZHaGxJR0JtZFc1allDQnBjeUJwYm5admEyVmtJSGRwZEdnZ2RHaGxJR3hoYzNRZ1lYSm5kVzFsYm5SeklIQnliM1pwWkdWa0lIUnZJSFJvWlZ4dUlDb2dkR2h5YjNSMGJHVmtJR1oxYm1OMGFXOXVMaUJUZFdKelpYRjFaVzUwSUdOaGJHeHpJSFJ2SUhSb1pTQjBhSEp2ZEhSc1pXUWdablZ1WTNScGIyNGdjbVYwZFhKdUlIUm9aVnh1SUNvZ2NtVnpkV3gwSUc5bUlIUm9aU0JzWVhOMElHQm1kVzVqWUNCcGJuWnZZMkYwYVc5dUxseHVJQ3BjYmlBcUlDb3FUbTkwWlRvcUtpQkpaaUJnYkdWaFpHbHVaMkFnWVc1a0lHQjBjbUZwYkdsdVoyQWdiM0IwYVc5dWN5QmhjbVVnWUhSeWRXVmdMQ0JnWm5WdVkyQWdhWE5jYmlBcUlHbHVkbTlyWldRZ2IyNGdkR2hsSUhSeVlXbHNhVzVuSUdWa1oyVWdiMllnZEdobElIUnBiV1Z2ZFhRZ2IyNXNlU0JwWmlCMGFHVWdkR2h5YjNSMGJHVmtJR1oxYm1OMGFXOXVYRzRnS2lCcGN5QnBiblp2YTJWa0lHMXZjbVVnZEdoaGJpQnZibU5sSUdSMWNtbHVaeUIwYUdVZ1lIZGhhWFJnSUhScGJXVnZkWFF1WEc0Z0tseHVJQ29nU1dZZ1lIZGhhWFJnSUdseklHQXdZQ0JoYm1RZ1lHeGxZV1JwYm1kZ0lHbHpJR0JtWVd4elpXQXNJR0JtZFc1allDQnBiblp2WTJGMGFXOXVJR2x6SUdSbFptVnljbVZrWEc0Z0tpQjFiblJwYkNCMGJ5QjBhR1VnYm1WNGRDQjBhV05yTENCemFXMXBiR0Z5SUhSdklHQnpaWFJVYVcxbGIzVjBZQ0IzYVhSb0lHRWdkR2x0Wlc5MWRDQnZaaUJnTUdBdVhHNGdLbHh1SUNvZ1UyVmxJRnRFWVhacFpDQkRiM0ppWVdOb2J5ZHpJR0Z5ZEdsamJHVmRLR2gwZEhCek9pOHZZM056TFhSeWFXTnJjeTVqYjIwdlpHVmliM1Z1WTJsdVp5MTBhSEp2ZEhSc2FXNW5MV1Y0Y0d4aGFXNWxaQzFsZUdGdGNHeGxjeThwWEc0Z0tpQm1iM0lnWkdWMFlXbHNjeUJ2ZG1WeUlIUm9aU0JrYVdabVpYSmxibU5sY3lCaVpYUjNaV1Z1SUdCZkxuUm9jbTkwZEd4bFlDQmhibVFnWUY4dVpHVmliM1Z1WTJWZ0xseHVJQ3BjYmlBcUlFQnpkR0YwYVdOY2JpQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0tpQkFjMmx1WTJVZ01DNHhMakJjYmlBcUlFQmpZWFJsWjI5eWVTQkdkVzVqZEdsdmJseHVJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnWm5WdVl5QlVhR1VnWm5WdVkzUnBiMjRnZEc4Z2RHaHliM1IwYkdVdVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXM2RoYVhROU1GMGdWR2hsSUc1MWJXSmxjaUJ2WmlCdGFXeHNhWE5sWTI5dVpITWdkRzhnZEdoeWIzUjBiR1VnYVc1MmIyTmhkR2x2Ym5NZ2RHOHVYRzRnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnVzI5d2RHbHZibk05ZTMxZElGUm9aU0J2Y0hScGIyNXpJRzlpYW1WamRDNWNiaUFxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnVzI5d2RHbHZibk11YkdWaFpHbHVaejEwY25WbFhWeHVJQ29nSUZOd1pXTnBabmtnYVc1MmIydHBibWNnYjI0Z2RHaGxJR3hsWVdScGJtY2daV1JuWlNCdlppQjBhR1VnZEdsdFpXOTFkQzVjYmlBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyOXdkR2x2Ym5NdWRISmhhV3hwYm1jOWRISjFaVjFjYmlBcUlDQlRjR1ZqYVdaNUlHbHVkbTlyYVc1bklHOXVJSFJvWlNCMGNtRnBiR2x1WnlCbFpHZGxJRzltSUhSb1pTQjBhVzFsYjNWMExseHVJQ29nUUhKbGRIVnlibk1nZTBaMWJtTjBhVzl1ZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnZEdoeWIzUjBiR1ZrSUdaMWJtTjBhVzl1TGx4dUlDb2dRR1Y0WVcxd2JHVmNiaUFxWEc0Z0tpQXZMeUJCZG05cFpDQmxlR05sYzNOcGRtVnNlU0IxY0dSaGRHbHVaeUIwYUdVZ2NHOXphWFJwYjI0Z2QyaHBiR1VnYzJOeWIyeHNhVzVuTGx4dUlDb2dhbEYxWlhKNUtIZHBibVJ2ZHlrdWIyNG9KM05qY205c2JDY3NJRjh1ZEdoeWIzUjBiR1VvZFhCa1lYUmxVRzl6YVhScGIyNHNJREV3TUNrcE8xeHVJQ3BjYmlBcUlDOHZJRWx1ZG05clpTQmdjbVZ1WlhkVWIydGxibUFnZDJobGJpQjBhR1VnWTJ4cFkyc2daWFpsYm5RZ2FYTWdabWx5WldRc0lHSjFkQ0J1YjNRZ2JXOXlaU0IwYUdGdUlHOXVZMlVnWlhabGNua2dOU0J0YVc1MWRHVnpMbHh1SUNvZ2RtRnlJSFJvY205MGRHeGxaQ0E5SUY4dWRHaHliM1IwYkdVb2NtVnVaWGRVYjJ0bGJpd2dNekF3TURBd0xDQjdJQ2QwY21GcGJHbHVaeWM2SUdaaGJITmxJSDBwTzF4dUlDb2dhbEYxWlhKNUtHVnNaVzFsYm5RcExtOXVLQ2RqYkdsamF5Y3NJSFJvY205MGRHeGxaQ2s3WEc0Z0tseHVJQ29nTHk4Z1EyRnVZMlZzSUhSb1pTQjBjbUZwYkdsdVp5QjBhSEp2ZEhSc1pXUWdhVzUyYjJOaGRHbHZiaTVjYmlBcUlHcFJkV1Z5ZVNoM2FXNWtiM2NwTG05dUtDZHdiM0J6ZEdGMFpTY3NJSFJvY205MGRHeGxaQzVqWVc1alpXd3BPMXh1SUNvdlhHNW1kVzVqZEdsdmJpQjBhSEp2ZEhSc1pTaG1kVzVqTENCM1lXbDBMQ0J2Y0hScGIyNXpLU0I3WEc0Z0lIWmhjaUJzWldGa2FXNW5JRDBnZEhKMVpTeGNiaUFnSUNBZ0lIUnlZV2xzYVc1bklEMGdkSEoxWlR0Y2JseHVJQ0JwWmlBb2RIbHdaVzltSUdaMWJtTWdJVDBnSjJaMWJtTjBhVzl1SnlrZ2UxeHVJQ0FnSUhSb2NtOTNJRzVsZHlCVWVYQmxSWEp5YjNJb1JsVk9RMTlGVWxKUFVsOVVSVmhVS1R0Y2JpQWdmVnh1SUNCcFppQW9hWE5QWW1wbFkzUW9iM0IwYVc5dWN5a3BJSHRjYmlBZ0lDQnNaV0ZrYVc1bklEMGdKMnhsWVdScGJtY25JR2x1SUc5d2RHbHZibk1nUHlBaElXOXdkR2x2Ym5NdWJHVmhaR2x1WnlBNklHeGxZV1JwYm1jN1hHNGdJQ0FnZEhKaGFXeHBibWNnUFNBbmRISmhhV3hwYm1jbklHbHVJRzl3ZEdsdmJuTWdQeUFoSVc5d2RHbHZibk11ZEhKaGFXeHBibWNnT2lCMGNtRnBiR2x1Wnp0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnWkdWaWIzVnVZMlVvWm5WdVl5d2dkMkZwZEN3Z2UxeHVJQ0FnSUNkc1pXRmthVzVuSnpvZ2JHVmhaR2x1Wnl4Y2JpQWdJQ0FuYldGNFYyRnBkQ2M2SUhkaGFYUXNYRzRnSUNBZ0ozUnlZV2xzYVc1bkp6b2dkSEpoYVd4cGJtZGNiaUFnZlNrN1hHNTlYRzVjYmk4cUtseHVJQ29nUTJobFkydHpJR2xtSUdCMllXeDFaV0FnYVhNZ2RHaGxYRzRnS2lCYmJHRnVaM1ZoWjJVZ2RIbHdaVjBvYUhSMGNEb3ZMM2QzZHk1bFkyMWhMV2x1ZEdWeWJtRjBhVzl1WVd3dWIzSm5MMlZqYldFdE1qWXlMemN1TUM4amMyVmpMV1ZqYldGelkzSnBjSFF0YkdGdVozVmhaMlV0ZEhsd1pYTXBYRzRnS2lCdlppQmdUMkpxWldOMFlDNGdLR1V1Wnk0Z1lYSnlZWGx6TENCbWRXNWpkR2x2Ym5Nc0lHOWlhbVZqZEhNc0lISmxaMlY0WlhNc0lHQnVaWGNnVG5WdFltVnlLREFwWUN3Z1lXNWtJR0J1WlhjZ1UzUnlhVzVuS0NjbktXQXBYRzRnS2x4dUlDb2dRSE4wWVhScFkxeHVJQ29nUUcxbGJXSmxjazltSUY5Y2JpQXFJRUJ6YVc1alpTQXdMakV1TUZ4dUlDb2dRR05oZEdWbmIzSjVJRXhoYm1kY2JpQXFJRUJ3WVhKaGJTQjdLbjBnZG1Gc2RXVWdWR2hsSUhaaGJIVmxJSFJ2SUdOb1pXTnJMbHh1SUNvZ1FISmxkSFZ5Ym5NZ2UySnZiMnhsWVc1OUlGSmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdsbUlHQjJZV3gxWldBZ2FYTWdZVzRnYjJKcVpXTjBMQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdLaUJBWlhoaGJYQnNaVnh1SUNwY2JpQXFJRjh1YVhOUFltcGxZM1FvZTMwcE8xeHVJQ29nTHk4Z1BUNGdkSEoxWlZ4dUlDcGNiaUFxSUY4dWFYTlBZbXBsWTNRb1d6RXNJRElzSUROZEtUdGNiaUFxSUM4dklEMCtJSFJ5ZFdWY2JpQXFYRzRnS2lCZkxtbHpUMkpxWldOMEtGOHVibTl2Y0NrN1hHNGdLaUF2THlBOVBpQjBjblZsWEc0Z0tseHVJQ29nWHk1cGMwOWlhbVZqZENodWRXeHNLVHRjYmlBcUlDOHZJRDArSUdaaGJITmxYRzRnS2k5Y2JtWjFibU4wYVc5dUlHbHpUMkpxWldOMEtIWmhiSFZsS1NCN1hHNGdJSFpoY2lCMGVYQmxJRDBnZEhsd1pXOW1JSFpoYkhWbE8xeHVJQ0J5WlhSMWNtNGdJU0YyWVd4MVpTQW1KaUFvZEhsd1pTQTlQU0FuYjJKcVpXTjBKeUI4ZkNCMGVYQmxJRDA5SUNkbWRXNWpkR2x2YmljcE8xeHVmVnh1WEc0dktpcGNiaUFxSUVOb1pXTnJjeUJwWmlCZ2RtRnNkV1ZnSUdseklHOWlhbVZqZEMxc2FXdGxMaUJCSUhaaGJIVmxJR2x6SUc5aWFtVmpkQzFzYVd0bElHbG1JR2wwSjNNZ2JtOTBJR0J1ZFd4c1lGeHVJQ29nWVc1a0lHaGhjeUJoSUdCMGVYQmxiMlpnSUhKbGMzVnNkQ0J2WmlCY0ltOWlhbVZqZEZ3aUxseHVJQ3BjYmlBcUlFQnpkR0YwYVdOY2JpQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0tpQkFjMmx1WTJVZ05DNHdMakJjYmlBcUlFQmpZWFJsWjI5eWVTQk1ZVzVuWEc0Z0tpQkFjR0Z5WVcwZ2V5cDlJSFpoYkhWbElGUm9aU0IyWVd4MVpTQjBieUJqYUdWamF5NWNiaUFxSUVCeVpYUjFjbTV6SUh0aWIyOXNaV0Z1ZlNCU1pYUjFjbTV6SUdCMGNuVmxZQ0JwWmlCZ2RtRnNkV1ZnSUdseklHOWlhbVZqZEMxc2FXdGxMQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdLaUJBWlhoaGJYQnNaVnh1SUNwY2JpQXFJRjh1YVhOUFltcGxZM1JNYVd0bEtIdDlLVHRjYmlBcUlDOHZJRDArSUhSeWRXVmNiaUFxWEc0Z0tpQmZMbWx6VDJKcVpXTjBUR2xyWlNoYk1Td2dNaXdnTTEwcE8xeHVJQ29nTHk4Z1BUNGdkSEoxWlZ4dUlDcGNiaUFxSUY4dWFYTlBZbXBsWTNSTWFXdGxLRjh1Ym05dmNDazdYRzRnS2lBdkx5QTlQaUJtWVd4elpWeHVJQ3BjYmlBcUlGOHVhWE5QWW1wbFkzUk1hV3RsS0c1MWJHd3BPMXh1SUNvZ0x5OGdQVDRnWm1Gc2MyVmNiaUFxTDF4dVpuVnVZM1JwYjI0Z2FYTlBZbXBsWTNSTWFXdGxLSFpoYkhWbEtTQjdYRzRnSUhKbGRIVnliaUFoSVhaaGJIVmxJQ1ltSUhSNWNHVnZaaUIyWVd4MVpTQTlQU0FuYjJKcVpXTjBKenRjYm4xY2JseHVMeW9xWEc0Z0tpQkRhR1ZqYTNNZ2FXWWdZSFpoYkhWbFlDQnBjeUJqYkdGemMybG1hV1ZrSUdGeklHRWdZRk41YldKdmJHQWdjSEpwYldsMGFYWmxJRzl5SUc5aWFtVmpkQzVjYmlBcVhHNGdLaUJBYzNSaGRHbGpYRzRnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ29nUUhOcGJtTmxJRFF1TUM0d1hHNGdLaUJBWTJGMFpXZHZjbmtnVEdGdVoxeHVJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z1kyaGxZMnN1WEc0Z0tpQkFjbVYwZFhKdWN5QjdZbTl2YkdWaGJuMGdVbVYwZFhKdWN5QmdkSEoxWldBZ2FXWWdZSFpoYkhWbFlDQnBjeUJoSUhONWJXSnZiQ3dnWld4elpTQmdabUZzYzJWZ0xseHVJQ29nUUdWNFlXMXdiR1ZjYmlBcVhHNGdLaUJmTG1selUzbHRZbTlzS0ZONWJXSnZiQzVwZEdWeVlYUnZjaWs3WEc0Z0tpQXZMeUE5UGlCMGNuVmxYRzRnS2x4dUlDb2dYeTVwYzFONWJXSnZiQ2duWVdKakp5azdYRzRnS2lBdkx5QTlQaUJtWVd4elpWeHVJQ292WEc1bWRXNWpkR2x2YmlCcGMxTjViV0p2YkNoMllXeDFaU2tnZTF4dUlDQnlaWFIxY200Z2RIbHdaVzltSUhaaGJIVmxJRDA5SUNkemVXMWliMnduSUh4OFhHNGdJQ0FnS0dselQySnFaV04wVEdsclpTaDJZV3gxWlNrZ0ppWWdiMkpxWldOMFZHOVRkSEpwYm1jdVkyRnNiQ2gyWVd4MVpTa2dQVDBnYzNsdFltOXNWR0ZuS1R0Y2JuMWNibHh1THlvcVhHNGdLaUJEYjI1MlpYSjBjeUJnZG1Gc2RXVmdJSFJ2SUdFZ2JuVnRZbVZ5TGx4dUlDcGNiaUFxSUVCemRHRjBhV05jYmlBcUlFQnRaVzFpWlhKUFppQmZYRzRnS2lCQWMybHVZMlVnTkM0d0xqQmNiaUFxSUVCallYUmxaMjl5ZVNCTVlXNW5YRzRnS2lCQWNHRnlZVzBnZXlwOUlIWmhiSFZsSUZSb1pTQjJZV3gxWlNCMGJ5QndjbTlqWlhOekxseHVJQ29nUUhKbGRIVnlibk1nZTI1MWJXSmxjbjBnVW1WMGRYSnVjeUIwYUdVZ2JuVnRZbVZ5TGx4dUlDb2dRR1Y0WVcxd2JHVmNiaUFxWEc0Z0tpQmZMblJ2VG5WdFltVnlLRE11TWlrN1hHNGdLaUF2THlBOVBpQXpMakpjYmlBcVhHNGdLaUJmTG5SdlRuVnRZbVZ5S0U1MWJXSmxjaTVOU1U1ZlZrRk1WVVVwTzF4dUlDb2dMeThnUFQ0Z05XVXRNekkwWEc0Z0tseHVJQ29nWHk1MGIwNTFiV0psY2loSmJtWnBibWwwZVNrN1hHNGdLaUF2THlBOVBpQkpibVpwYm1sMGVWeHVJQ3BjYmlBcUlGOHVkRzlPZFcxaVpYSW9Kek11TWljcE8xeHVJQ29nTHk4Z1BUNGdNeTR5WEc0Z0tpOWNibVoxYm1OMGFXOXVJSFJ2VG5WdFltVnlLSFpoYkhWbEtTQjdYRzRnSUdsbUlDaDBlWEJsYjJZZ2RtRnNkV1VnUFQwZ0oyNTFiV0psY2ljcElIdGNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVTdYRzRnSUgxY2JpQWdhV1lnS0dselUzbHRZbTlzS0haaGJIVmxLU2tnZTF4dUlDQWdJSEpsZEhWeWJpQk9RVTQ3WEc0Z0lIMWNiaUFnYVdZZ0tHbHpUMkpxWldOMEtIWmhiSFZsS1NrZ2UxeHVJQ0FnSUhaaGNpQnZkR2hsY2lBOUlIUjVjR1Z2WmlCMllXeDFaUzUyWVd4MVpVOW1JRDA5SUNkbWRXNWpkR2x2YmljZ1B5QjJZV3gxWlM1MllXeDFaVTltS0NrZ09pQjJZV3gxWlR0Y2JpQWdJQ0IyWVd4MVpTQTlJR2x6VDJKcVpXTjBLRzkwYUdWeUtTQS9JQ2h2ZEdobGNpQXJJQ2NuS1NBNklHOTBhR1Z5TzF4dUlDQjlYRzRnSUdsbUlDaDBlWEJsYjJZZ2RtRnNkV1VnSVQwZ0ozTjBjbWx1WnljcElIdGNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVWdQVDA5SURBZ1B5QjJZV3gxWlNBNklDdDJZV3gxWlR0Y2JpQWdmVnh1SUNCMllXeDFaU0E5SUhaaGJIVmxMbkpsY0d4aFkyVW9jbVZVY21sdExDQW5KeWs3WEc0Z0lIWmhjaUJwYzBKcGJtRnllU0E5SUhKbFNYTkNhVzVoY25rdWRHVnpkQ2gyWVd4MVpTazdYRzRnSUhKbGRIVnliaUFvYVhOQ2FXNWhjbmtnZkh3Z2NtVkpjMDlqZEdGc0xuUmxjM1FvZG1Gc2RXVXBLVnh1SUNBZ0lEOGdabkpsWlZCaGNuTmxTVzUwS0haaGJIVmxMbk5zYVdObEtESXBMQ0JwYzBKcGJtRnllU0EvSURJZ09pQTRLVnh1SUNBZ0lEb2dLSEpsU1hOQ1lXUklaWGd1ZEdWemRDaDJZV3gxWlNrZ1B5Qk9RVTRnT2lBcmRtRnNkV1VwTzF4dWZWeHVYRzV0YjJSMWJHVXVaWGh3YjNKMGN5QTlJSFJvY205MGRHeGxPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi8uLi9ub2RlX21vZHVsZXMvbG9kYXNoLnRocm90dGxlL2luZGV4LmpzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbG9kYXNoL2xvZGFzaC5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi8uLi9ub2RlX21vZHVsZXMvbG9kYXNoL2xvZGFzaC5qcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuZXZhbChcIi8qIG1vZHVsZSBkZWNvcmF0b3IgKi8gbW9kdWxlID0gX193ZWJwYWNrX3JlcXVpcmVfXy5ubWQobW9kdWxlKTtcXG52YXIgX19XRUJQQUNLX0FNRF9ERUZJTkVfUkVTVUxUX187LyoqXFxuICogQGxpY2Vuc2VcXG4gKiBMb2Rhc2ggPGh0dHBzOi8vbG9kYXNoLmNvbS8+XFxuICogQ29weXJpZ2h0IE9wZW5KUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMgPGh0dHBzOi8vb3BlbmpzZi5vcmcvPlxcbiAqIFJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlIDxodHRwczovL2xvZGFzaC5jb20vbGljZW5zZT5cXG4gKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPlxcbiAqIENvcHlyaWdodCBKZXJlbXkgQXNoa2VuYXMsIERvY3VtZW50Q2xvdWQgYW5kIEludmVzdGlnYXRpdmUgUmVwb3J0ZXJzICYgRWRpdG9yc1xcbiAqL1xcbjsoZnVuY3Rpb24oKSB7XFxuXFxuICAvKiogVXNlZCBhcyBhIHNhZmUgcmVmZXJlbmNlIGZvciBgdW5kZWZpbmVkYCBpbiBwcmUtRVM1IGVudmlyb25tZW50cy4gKi9cXG4gIHZhciB1bmRlZmluZWQ7XFxuXFxuICAvKiogVXNlZCBhcyB0aGUgc2VtYW50aWMgdmVyc2lvbiBudW1iZXIuICovXFxuICB2YXIgVkVSU0lPTiA9ICc0LjE3LjIxJztcXG5cXG4gIC8qKiBVc2VkIGFzIHRoZSBzaXplIHRvIGVuYWJsZSBsYXJnZSBhcnJheSBvcHRpbWl6YXRpb25zLiAqL1xcbiAgdmFyIExBUkdFX0FSUkFZX1NJWkUgPSAyMDA7XFxuXFxuICAvKiogRXJyb3IgbWVzc2FnZSBjb25zdGFudHMuICovXFxuICB2YXIgQ09SRV9FUlJPUl9URVhUID0gJ1Vuc3VwcG9ydGVkIGNvcmUtanMgdXNlLiBUcnkgaHR0cHM6Ly9ucG1zLmlvL3NlYXJjaD9xPXBvbnlmaWxsLicsXFxuICAgICAgRlVOQ19FUlJPUl9URVhUID0gJ0V4cGVjdGVkIGEgZnVuY3Rpb24nLFxcbiAgICAgIElOVkFMSURfVEVNUExfVkFSX0VSUk9SX1RFWFQgPSAnSW52YWxpZCBgdmFyaWFibGVgIG9wdGlvbiBwYXNzZWQgaW50byBgXy50ZW1wbGF0ZWAnO1xcblxcbiAgLyoqIFVzZWQgdG8gc3RhbmQtaW4gZm9yIGB1bmRlZmluZWRgIGhhc2ggdmFsdWVzLiAqL1xcbiAgdmFyIEhBU0hfVU5ERUZJTkVEID0gJ19fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18nO1xcblxcbiAgLyoqIFVzZWQgYXMgdGhlIG1heGltdW0gbWVtb2l6ZSBjYWNoZSBzaXplLiAqL1xcbiAgdmFyIE1BWF9NRU1PSVpFX1NJWkUgPSA1MDA7XFxuXFxuICAvKiogVXNlZCBhcyB0aGUgaW50ZXJuYWwgYXJndW1lbnQgcGxhY2Vob2xkZXIuICovXFxuICB2YXIgUExBQ0VIT0xERVIgPSAnX19sb2Rhc2hfcGxhY2Vob2xkZXJfXyc7XFxuXFxuICAvKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciBjbG9uaW5nLiAqL1xcbiAgdmFyIENMT05FX0RFRVBfRkxBRyA9IDEsXFxuICAgICAgQ0xPTkVfRkxBVF9GTEFHID0gMixcXG4gICAgICBDTE9ORV9TWU1CT0xTX0ZMQUcgPSA0O1xcblxcbiAgLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgdmFsdWUgY29tcGFyaXNvbnMuICovXFxuICB2YXIgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgPSAxLFxcbiAgICAgIENPTVBBUkVfVU5PUkRFUkVEX0ZMQUcgPSAyO1xcblxcbiAgLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgZnVuY3Rpb24gbWV0YWRhdGEuICovXFxuICB2YXIgV1JBUF9CSU5EX0ZMQUcgPSAxLFxcbiAgICAgIFdSQVBfQklORF9LRVlfRkxBRyA9IDIsXFxuICAgICAgV1JBUF9DVVJSWV9CT1VORF9GTEFHID0gNCxcXG4gICAgICBXUkFQX0NVUlJZX0ZMQUcgPSA4LFxcbiAgICAgIFdSQVBfQ1VSUllfUklHSFRfRkxBRyA9IDE2LFxcbiAgICAgIFdSQVBfUEFSVElBTF9GTEFHID0gMzIsXFxuICAgICAgV1JBUF9QQVJUSUFMX1JJR0hUX0ZMQUcgPSA2NCxcXG4gICAgICBXUkFQX0FSWV9GTEFHID0gMTI4LFxcbiAgICAgIFdSQVBfUkVBUkdfRkxBRyA9IDI1NixcXG4gICAgICBXUkFQX0ZMSVBfRkxBRyA9IDUxMjtcXG5cXG4gIC8qKiBVc2VkIGFzIGRlZmF1bHQgb3B0aW9ucyBmb3IgYF8udHJ1bmNhdGVgLiAqL1xcbiAgdmFyIERFRkFVTFRfVFJVTkNfTEVOR1RIID0gMzAsXFxuICAgICAgREVGQVVMVF9UUlVOQ19PTUlTU0lPTiA9ICcuLi4nO1xcblxcbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IGhvdCBmdW5jdGlvbnMgYnkgbnVtYmVyIG9mIGNhbGxzIHdpdGhpbiBhIHNwYW4gb2YgbWlsbGlzZWNvbmRzLiAqL1xcbiAgdmFyIEhPVF9DT1VOVCA9IDgwMCxcXG4gICAgICBIT1RfU1BBTiA9IDE2O1xcblxcbiAgLyoqIFVzZWQgdG8gaW5kaWNhdGUgdGhlIHR5cGUgb2YgbGF6eSBpdGVyYXRlZXMuICovXFxuICB2YXIgTEFaWV9GSUxURVJfRkxBRyA9IDEsXFxuICAgICAgTEFaWV9NQVBfRkxBRyA9IDIsXFxuICAgICAgTEFaWV9XSElMRV9GTEFHID0gMztcXG5cXG4gIC8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xcbiAgdmFyIElORklOSVRZID0gMSAvIDAsXFxuICAgICAgTUFYX1NBRkVfSU5URUdFUiA9IDkwMDcxOTkyNTQ3NDA5OTEsXFxuICAgICAgTUFYX0lOVEVHRVIgPSAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOCxcXG4gICAgICBOQU4gPSAwIC8gMDtcXG5cXG4gIC8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHRoZSBtYXhpbXVtIGxlbmd0aCBhbmQgaW5kZXggb2YgYW4gYXJyYXkuICovXFxuICB2YXIgTUFYX0FSUkFZX0xFTkdUSCA9IDQyOTQ5NjcyOTUsXFxuICAgICAgTUFYX0FSUkFZX0lOREVYID0gTUFYX0FSUkFZX0xFTkdUSCAtIDEsXFxuICAgICAgSEFMRl9NQVhfQVJSQVlfTEVOR1RIID0gTUFYX0FSUkFZX0xFTkdUSCA+Pj4gMTtcXG5cXG4gIC8qKiBVc2VkIHRvIGFzc29jaWF0ZSB3cmFwIG1ldGhvZHMgd2l0aCB0aGVpciBiaXQgZmxhZ3MuICovXFxuICB2YXIgd3JhcEZsYWdzID0gW1xcbiAgICBbJ2FyeScsIFdSQVBfQVJZX0ZMQUddLFxcbiAgICBbJ2JpbmQnLCBXUkFQX0JJTkRfRkxBR10sXFxuICAgIFsnYmluZEtleScsIFdSQVBfQklORF9LRVlfRkxBR10sXFxuICAgIFsnY3VycnknLCBXUkFQX0NVUlJZX0ZMQUddLFxcbiAgICBbJ2N1cnJ5UmlnaHQnLCBXUkFQX0NVUlJZX1JJR0hUX0ZMQUddLFxcbiAgICBbJ2ZsaXAnLCBXUkFQX0ZMSVBfRkxBR10sXFxuICAgIFsncGFydGlhbCcsIFdSQVBfUEFSVElBTF9GTEFHXSxcXG4gICAgWydwYXJ0aWFsUmlnaHQnLCBXUkFQX1BBUlRJQUxfUklHSFRfRkxBR10sXFxuICAgIFsncmVhcmcnLCBXUkFQX1JFQVJHX0ZMQUddXFxuICBdO1xcblxcbiAgLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xcbiAgdmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJyxcXG4gICAgICBhcnJheVRhZyA9ICdbb2JqZWN0IEFycmF5XScsXFxuICAgICAgYXN5bmNUYWcgPSAnW29iamVjdCBBc3luY0Z1bmN0aW9uXScsXFxuICAgICAgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcXG4gICAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxcbiAgICAgIGRvbUV4Y1RhZyA9ICdbb2JqZWN0IERPTUV4Y2VwdGlvbl0nLFxcbiAgICAgIGVycm9yVGFnID0gJ1tvYmplY3QgRXJyb3JdJyxcXG4gICAgICBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJyxcXG4gICAgICBnZW5UYWcgPSAnW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0nLFxcbiAgICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxcbiAgICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxcbiAgICAgIG51bGxUYWcgPSAnW29iamVjdCBOdWxsXScsXFxuICAgICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXFxuICAgICAgcHJvbWlzZVRhZyA9ICdbb2JqZWN0IFByb21pc2VdJyxcXG4gICAgICBwcm94eVRhZyA9ICdbb2JqZWN0IFByb3h5XScsXFxuICAgICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXFxuICAgICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXFxuICAgICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXScsXFxuICAgICAgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXScsXFxuICAgICAgdW5kZWZpbmVkVGFnID0gJ1tvYmplY3QgVW5kZWZpbmVkXScsXFxuICAgICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJyxcXG4gICAgICB3ZWFrU2V0VGFnID0gJ1tvYmplY3QgV2Vha1NldF0nO1xcblxcbiAgdmFyIGFycmF5QnVmZmVyVGFnID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyxcXG4gICAgICBkYXRhVmlld1RhZyA9ICdbb2JqZWN0IERhdGFWaWV3XScsXFxuICAgICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxcbiAgICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcXG4gICAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXFxuICAgICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXFxuICAgICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXFxuICAgICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXFxuICAgICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcXG4gICAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxcbiAgICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XFxuXFxuICAvKiogVXNlZCB0byBtYXRjaCBlbXB0eSBzdHJpbmcgbGl0ZXJhbHMgaW4gY29tcGlsZWQgdGVtcGxhdGUgc291cmNlLiAqL1xcbiAgdmFyIHJlRW1wdHlTdHJpbmdMZWFkaW5nID0gL1xcXFxiX19wIFxcXFwrPSAnJzsvZyxcXG4gICAgICByZUVtcHR5U3RyaW5nTWlkZGxlID0gL1xcXFxiKF9fcCBcXFxcKz0pICcnIFxcXFwrL2csXFxuICAgICAgcmVFbXB0eVN0cmluZ1RyYWlsaW5nID0gLyhfX2VcXFxcKC4qP1xcXFwpfFxcXFxiX190XFxcXCkpIFxcXFwrXFxcXG4nJzsvZztcXG5cXG4gIC8qKiBVc2VkIHRvIG1hdGNoIEhUTUwgZW50aXRpZXMgYW5kIEhUTUwgY2hhcmFjdGVycy4gKi9cXG4gIHZhciByZUVzY2FwZWRIdG1sID0gLyYoPzphbXB8bHR8Z3R8cXVvdHwjMzkpOy9nLFxcbiAgICAgIHJlVW5lc2NhcGVkSHRtbCA9IC9bJjw+XFxcIiddL2csXFxuICAgICAgcmVIYXNFc2NhcGVkSHRtbCA9IFJlZ0V4cChyZUVzY2FwZWRIdG1sLnNvdXJjZSksXFxuICAgICAgcmVIYXNVbmVzY2FwZWRIdG1sID0gUmVnRXhwKHJlVW5lc2NhcGVkSHRtbC5zb3VyY2UpO1xcblxcbiAgLyoqIFVzZWQgdG8gbWF0Y2ggdGVtcGxhdGUgZGVsaW1pdGVycy4gKi9cXG4gIHZhciByZUVzY2FwZSA9IC88JS0oW1xcXFxzXFxcXFNdKz8pJT4vZyxcXG4gICAgICByZUV2YWx1YXRlID0gLzwlKFtcXFxcc1xcXFxTXSs/KSU+L2csXFxuICAgICAgcmVJbnRlcnBvbGF0ZSA9IC88JT0oW1xcXFxzXFxcXFNdKz8pJT4vZztcXG5cXG4gIC8qKiBVc2VkIHRvIG1hdGNoIHByb3BlcnR5IG5hbWVzIHdpdGhpbiBwcm9wZXJ0eSBwYXRocy4gKi9cXG4gIHZhciByZUlzRGVlcFByb3AgPSAvXFxcXC58XFxcXFsoPzpbXltcXFxcXV0qfChbXFxcIiddKSg/Oig/IVxcXFwxKVteXFxcXFxcXFxdfFxcXFxcXFxcLikqP1xcXFwxKVxcXFxdLyxcXG4gICAgICByZUlzUGxhaW5Qcm9wID0gL15cXFxcdyokLyxcXG4gICAgICByZVByb3BOYW1lID0gL1teLltcXFxcXV0rfFxcXFxbKD86KC0/XFxcXGQrKD86XFxcXC5cXFxcZCspPyl8KFtcXFwiJ10pKCg/Oig/IVxcXFwyKVteXFxcXFxcXFxdfFxcXFxcXFxcLikqPylcXFxcMilcXFxcXXwoPz0oPzpcXFxcLnxcXFxcW1xcXFxdKSg/OlxcXFwufFxcXFxbXFxcXF18JCkpL2c7XFxuXFxuICAvKipcXG4gICAqIFVzZWQgdG8gbWF0Y2ggYFJlZ0V4cGBcXG4gICAqIFtzeW50YXggY2hhcmFjdGVyc10oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtcGF0dGVybnMpLlxcbiAgICovXFxuICB2YXIgcmVSZWdFeHBDaGFyID0gL1tcXFxcXFxcXF4kLiorPygpW1xcXFxde318XS9nLFxcbiAgICAgIHJlSGFzUmVnRXhwQ2hhciA9IFJlZ0V4cChyZVJlZ0V4cENoYXIuc291cmNlKTtcXG5cXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGxlYWRpbmcgd2hpdGVzcGFjZS4gKi9cXG4gIHZhciByZVRyaW1TdGFydCA9IC9eXFxcXHMrLztcXG5cXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGEgc2luZ2xlIHdoaXRlc3BhY2UgY2hhcmFjdGVyLiAqL1xcbiAgdmFyIHJlV2hpdGVzcGFjZSA9IC9cXFxccy87XFxuXFxuICAvKiogVXNlZCB0byBtYXRjaCB3cmFwIGRldGFpbCBjb21tZW50cy4gKi9cXG4gIHZhciByZVdyYXBDb21tZW50ID0gL1xcXFx7KD86XFxcXG5cXFxcL1xcXFwqIFxcXFxbd3JhcHBlZCB3aXRoIC4rXFxcXF0gXFxcXCpcXFxcLyk/XFxcXG4/LyxcXG4gICAgICByZVdyYXBEZXRhaWxzID0gL1xcXFx7XFxcXG5cXFxcL1xcXFwqIFxcXFxbd3JhcHBlZCB3aXRoICguKylcXFxcXSBcXFxcKi8sXFxuICAgICAgcmVTcGxpdERldGFpbHMgPSAvLD8gJiAvO1xcblxcbiAgLyoqIFVzZWQgdG8gbWF0Y2ggd29yZHMgY29tcG9zZWQgb2YgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuICovXFxuICB2YXIgcmVBc2NpaVdvcmQgPSAvW15cXFxceDAwLVxcXFx4MmZcXFxceDNhLVxcXFx4NDBcXFxceDViLVxcXFx4NjBcXFxceDdiLVxcXFx4N2ZdKy9nO1xcblxcbiAgLyoqXFxuICAgKiBVc2VkIHRvIHZhbGlkYXRlIHRoZSBgdmFsaWRhdGVgIG9wdGlvbiBpbiBgXy50ZW1wbGF0ZWAgdmFyaWFibGUuXFxuICAgKlxcbiAgICogRm9yYmlkcyBjaGFyYWN0ZXJzIHdoaWNoIGNvdWxkIHBvdGVudGlhbGx5IGNoYW5nZSB0aGUgbWVhbmluZyBvZiB0aGUgZnVuY3Rpb24gYXJndW1lbnQgZGVmaW5pdGlvbjpcXG4gICAqIC0gXFxcIigpLFxcXCIgKG1vZGlmaWNhdGlvbiBvZiBmdW5jdGlvbiBwYXJhbWV0ZXJzKVxcbiAgICogLSBcXFwiPVxcXCIgKGRlZmF1bHQgdmFsdWUpXFxuICAgKiAtIFxcXCJbXXt9XFxcIiAoZGVzdHJ1Y3R1cmluZyBvZiBmdW5jdGlvbiBwYXJhbWV0ZXJzKVxcbiAgICogLSBcXFwiL1xcXCIgKGJlZ2lubmluZyBvZiBhIGNvbW1lbnQpXFxuICAgKiAtIHdoaXRlc3BhY2VcXG4gICAqL1xcbiAgdmFyIHJlRm9yYmlkZGVuSWRlbnRpZmllckNoYXJzID0gL1soKT0se31cXFxcW1xcXFxdXFxcXC9cXFxcc10vO1xcblxcbiAgLyoqIFVzZWQgdG8gbWF0Y2ggYmFja3NsYXNoZXMgaW4gcHJvcGVydHkgcGF0aHMuICovXFxuICB2YXIgcmVFc2NhcGVDaGFyID0gL1xcXFxcXFxcKFxcXFxcXFxcKT8vZztcXG5cXG4gIC8qKlxcbiAgICogVXNlZCB0byBtYXRjaFxcbiAgICogW0VTIHRlbXBsYXRlIGRlbGltaXRlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRlbXBsYXRlLWxpdGVyYWwtbGV4aWNhbC1jb21wb25lbnRzKS5cXG4gICAqL1xcbiAgdmFyIHJlRXNUZW1wbGF0ZSA9IC9cXFxcJFxcXFx7KFteXFxcXFxcXFx9XSooPzpcXFxcXFxcXC5bXlxcXFxcXFxcfV0qKSopXFxcXH0vZztcXG5cXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgIGZsYWdzIGZyb20gdGhlaXIgY29lcmNlZCBzdHJpbmcgdmFsdWVzLiAqL1xcbiAgdmFyIHJlRmxhZ3MgPSAvXFxcXHcqJC87XFxuXFxuICAvKiogVXNlZCB0byBkZXRlY3QgYmFkIHNpZ25lZCBoZXhhZGVjaW1hbCBzdHJpbmcgdmFsdWVzLiAqL1xcbiAgdmFyIHJlSXNCYWRIZXggPSAvXlstK10weFswLTlhLWZdKyQvaTtcXG5cXG4gIC8qKiBVc2VkIHRvIGRldGVjdCBiaW5hcnkgc3RyaW5nIHZhbHVlcy4gKi9cXG4gIHZhciByZUlzQmluYXJ5ID0gL14wYlswMV0rJC9pO1xcblxcbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkpLiAqL1xcbiAgdmFyIHJlSXNIb3N0Q3RvciA9IC9eXFxcXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXFxcXSQvO1xcblxcbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IG9jdGFsIHN0cmluZyB2YWx1ZXMuICovXFxuICB2YXIgcmVJc09jdGFsID0gL14wb1swLTddKyQvaTtcXG5cXG4gIC8qKiBVc2VkIHRvIGRldGVjdCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlcy4gKi9cXG4gIHZhciByZUlzVWludCA9IC9eKD86MHxbMS05XVxcXFxkKikkLztcXG5cXG4gIC8qKiBVc2VkIHRvIG1hdGNoIExhdGluIFVuaWNvZGUgbGV0dGVycyAoZXhjbHVkaW5nIG1hdGhlbWF0aWNhbCBvcGVyYXRvcnMpLiAqL1xcbiAgdmFyIHJlTGF0aW4gPSAvW1xcXFx4YzAtXFxcXHhkNlxcXFx4ZDgtXFxcXHhmNlxcXFx4ZjgtXFxcXHhmZlxcXFx1MDEwMC1cXFxcdTAxN2ZdL2c7XFxuXFxuICAvKiogVXNlZCB0byBlbnN1cmUgY2FwdHVyaW5nIG9yZGVyIG9mIHRlbXBsYXRlIGRlbGltaXRlcnMuICovXFxuICB2YXIgcmVOb01hdGNoID0gLygkXikvO1xcblxcbiAgLyoqIFVzZWQgdG8gbWF0Y2ggdW5lc2NhcGVkIGNoYXJhY3RlcnMgaW4gY29tcGlsZWQgc3RyaW5nIGxpdGVyYWxzLiAqL1xcbiAgdmFyIHJlVW5lc2NhcGVkU3RyaW5nID0gL1snXFxcXG5cXFxcclxcXFx1MjAyOFxcXFx1MjAyOVxcXFxcXFxcXS9nO1xcblxcbiAgLyoqIFVzZWQgdG8gY29tcG9zZSB1bmljb2RlIGNoYXJhY3RlciBjbGFzc2VzLiAqL1xcbiAgdmFyIHJzQXN0cmFsUmFuZ2UgPSAnXFxcXFxcXFx1ZDgwMC1cXFxcXFxcXHVkZmZmJyxcXG4gICAgICByc0NvbWJvTWFya3NSYW5nZSA9ICdcXFxcXFxcXHUwMzAwLVxcXFxcXFxcdTAzNmYnLFxcbiAgICAgIHJlQ29tYm9IYWxmTWFya3NSYW5nZSA9ICdcXFxcXFxcXHVmZTIwLVxcXFxcXFxcdWZlMmYnLFxcbiAgICAgIHJzQ29tYm9TeW1ib2xzUmFuZ2UgPSAnXFxcXFxcXFx1MjBkMC1cXFxcXFxcXHUyMGZmJyxcXG4gICAgICByc0NvbWJvUmFuZ2UgPSByc0NvbWJvTWFya3NSYW5nZSArIHJlQ29tYm9IYWxmTWFya3NSYW5nZSArIHJzQ29tYm9TeW1ib2xzUmFuZ2UsXFxuICAgICAgcnNEaW5nYmF0UmFuZ2UgPSAnXFxcXFxcXFx1MjcwMC1cXFxcXFxcXHUyN2JmJyxcXG4gICAgICByc0xvd2VyUmFuZ2UgPSAnYS16XFxcXFxcXFx4ZGYtXFxcXFxcXFx4ZjZcXFxcXFxcXHhmOC1cXFxcXFxcXHhmZicsXFxuICAgICAgcnNNYXRoT3BSYW5nZSA9ICdcXFxcXFxcXHhhY1xcXFxcXFxceGIxXFxcXFxcXFx4ZDdcXFxcXFxcXHhmNycsXFxuICAgICAgcnNOb25DaGFyUmFuZ2UgPSAnXFxcXFxcXFx4MDAtXFxcXFxcXFx4MmZcXFxcXFxcXHgzYS1cXFxcXFxcXHg0MFxcXFxcXFxceDViLVxcXFxcXFxceDYwXFxcXFxcXFx4N2ItXFxcXFxcXFx4YmYnLFxcbiAgICAgIHJzUHVuY3R1YXRpb25SYW5nZSA9ICdcXFxcXFxcXHUyMDAwLVxcXFxcXFxcdTIwNmYnLFxcbiAgICAgIHJzU3BhY2VSYW5nZSA9ICcgXFxcXFxcXFx0XFxcXFxcXFx4MGJcXFxcXFxcXGZcXFxcXFxcXHhhMFxcXFxcXFxcdWZlZmZcXFxcXFxcXG5cXFxcXFxcXHJcXFxcXFxcXHUyMDI4XFxcXFxcXFx1MjAyOVxcXFxcXFxcdTE2ODBcXFxcXFxcXHUxODBlXFxcXFxcXFx1MjAwMFxcXFxcXFxcdTIwMDFcXFxcXFxcXHUyMDAyXFxcXFxcXFx1MjAwM1xcXFxcXFxcdTIwMDRcXFxcXFxcXHUyMDA1XFxcXFxcXFx1MjAwNlxcXFxcXFxcdTIwMDdcXFxcXFxcXHUyMDA4XFxcXFxcXFx1MjAwOVxcXFxcXFxcdTIwMGFcXFxcXFxcXHUyMDJmXFxcXFxcXFx1MjA1ZlxcXFxcXFxcdTMwMDAnLFxcbiAgICAgIHJzVXBwZXJSYW5nZSA9ICdBLVpcXFxcXFxcXHhjMC1cXFxcXFxcXHhkNlxcXFxcXFxceGQ4LVxcXFxcXFxceGRlJyxcXG4gICAgICByc1ZhclJhbmdlID0gJ1xcXFxcXFxcdWZlMGVcXFxcXFxcXHVmZTBmJyxcXG4gICAgICByc0JyZWFrUmFuZ2UgPSByc01hdGhPcFJhbmdlICsgcnNOb25DaGFyUmFuZ2UgKyByc1B1bmN0dWF0aW9uUmFuZ2UgKyByc1NwYWNlUmFuZ2U7XFxuXFxuICAvKiogVXNlZCB0byBjb21wb3NlIHVuaWNvZGUgY2FwdHVyZSBncm91cHMuICovXFxuICB2YXIgcnNBcG9zID0gXFxcIlsnXFxcXHUyMDE5XVxcXCIsXFxuICAgICAgcnNBc3RyYWwgPSAnWycgKyByc0FzdHJhbFJhbmdlICsgJ10nLFxcbiAgICAgIHJzQnJlYWsgPSAnWycgKyByc0JyZWFrUmFuZ2UgKyAnXScsXFxuICAgICAgcnNDb21ibyA9ICdbJyArIHJzQ29tYm9SYW5nZSArICddJyxcXG4gICAgICByc0RpZ2l0cyA9ICdcXFxcXFxcXGQrJyxcXG4gICAgICByc0RpbmdiYXQgPSAnWycgKyByc0RpbmdiYXRSYW5nZSArICddJyxcXG4gICAgICByc0xvd2VyID0gJ1snICsgcnNMb3dlclJhbmdlICsgJ10nLFxcbiAgICAgIHJzTWlzYyA9ICdbXicgKyByc0FzdHJhbFJhbmdlICsgcnNCcmVha1JhbmdlICsgcnNEaWdpdHMgKyByc0RpbmdiYXRSYW5nZSArIHJzTG93ZXJSYW5nZSArIHJzVXBwZXJSYW5nZSArICddJyxcXG4gICAgICByc0ZpdHogPSAnXFxcXFxcXFx1ZDgzY1tcXFxcXFxcXHVkZmZiLVxcXFxcXFxcdWRmZmZdJyxcXG4gICAgICByc01vZGlmaWVyID0gJyg/OicgKyByc0NvbWJvICsgJ3wnICsgcnNGaXR6ICsgJyknLFxcbiAgICAgIHJzTm9uQXN0cmFsID0gJ1teJyArIHJzQXN0cmFsUmFuZ2UgKyAnXScsXFxuICAgICAgcnNSZWdpb25hbCA9ICcoPzpcXFxcXFxcXHVkODNjW1xcXFxcXFxcdWRkZTYtXFxcXFxcXFx1ZGRmZl0pezJ9JyxcXG4gICAgICByc1N1cnJQYWlyID0gJ1tcXFxcXFxcXHVkODAwLVxcXFxcXFxcdWRiZmZdW1xcXFxcXFxcdWRjMDAtXFxcXFxcXFx1ZGZmZl0nLFxcbiAgICAgIHJzVXBwZXIgPSAnWycgKyByc1VwcGVyUmFuZ2UgKyAnXScsXFxuICAgICAgcnNaV0ogPSAnXFxcXFxcXFx1MjAwZCc7XFxuXFxuICAvKiogVXNlZCB0byBjb21wb3NlIHVuaWNvZGUgcmVnZXhlcy4gKi9cXG4gIHZhciByc01pc2NMb3dlciA9ICcoPzonICsgcnNMb3dlciArICd8JyArIHJzTWlzYyArICcpJyxcXG4gICAgICByc01pc2NVcHBlciA9ICcoPzonICsgcnNVcHBlciArICd8JyArIHJzTWlzYyArICcpJyxcXG4gICAgICByc09wdENvbnRyTG93ZXIgPSAnKD86JyArIHJzQXBvcyArICcoPzpkfGxsfG18cmV8c3x0fHZlKSk/JyxcXG4gICAgICByc09wdENvbnRyVXBwZXIgPSAnKD86JyArIHJzQXBvcyArICcoPzpEfExMfE18UkV8U3xUfFZFKSk/JyxcXG4gICAgICByZU9wdE1vZCA9IHJzTW9kaWZpZXIgKyAnPycsXFxuICAgICAgcnNPcHRWYXIgPSAnWycgKyByc1ZhclJhbmdlICsgJ10/JyxcXG4gICAgICByc09wdEpvaW4gPSAnKD86JyArIHJzWldKICsgJyg/OicgKyBbcnNOb25Bc3RyYWwsIHJzUmVnaW9uYWwsIHJzU3VyclBhaXJdLmpvaW4oJ3wnKSArICcpJyArIHJzT3B0VmFyICsgcmVPcHRNb2QgKyAnKSonLFxcbiAgICAgIHJzT3JkTG93ZXIgPSAnXFxcXFxcXFxkKig/OjFzdHwybmR8M3JkfCg/IVsxMjNdKVxcXFxcXFxcZHRoKSg/PVxcXFxcXFxcYnxbQS1aX10pJyxcXG4gICAgICByc09yZFVwcGVyID0gJ1xcXFxcXFxcZCooPzoxU1R8Mk5EfDNSRHwoPyFbMTIzXSlcXFxcXFxcXGRUSCkoPz1cXFxcXFxcXGJ8W2Etel9dKScsXFxuICAgICAgcnNTZXEgPSByc09wdFZhciArIHJlT3B0TW9kICsgcnNPcHRKb2luLFxcbiAgICAgIHJzRW1vamkgPSAnKD86JyArIFtyc0RpbmdiYXQsIHJzUmVnaW9uYWwsIHJzU3VyclBhaXJdLmpvaW4oJ3wnKSArICcpJyArIHJzU2VxLFxcbiAgICAgIHJzU3ltYm9sID0gJyg/OicgKyBbcnNOb25Bc3RyYWwgKyByc0NvbWJvICsgJz8nLCByc0NvbWJvLCByc1JlZ2lvbmFsLCByc1N1cnJQYWlyLCByc0FzdHJhbF0uam9pbignfCcpICsgJyknO1xcblxcbiAgLyoqIFVzZWQgdG8gbWF0Y2ggYXBvc3Ryb3BoZXMuICovXFxuICB2YXIgcmVBcG9zID0gUmVnRXhwKHJzQXBvcywgJ2cnKTtcXG5cXG4gIC8qKlxcbiAgICogVXNlZCB0byBtYXRjaCBbY29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21iaW5pbmdfRGlhY3JpdGljYWxfTWFya3MpIGFuZFxcbiAgICogW2NvbWJpbmluZyBkaWFjcml0aWNhbCBtYXJrcyBmb3Igc3ltYm9sc10oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ29tYmluaW5nX0RpYWNyaXRpY2FsX01hcmtzX2Zvcl9TeW1ib2xzKS5cXG4gICAqL1xcbiAgdmFyIHJlQ29tYm9NYXJrID0gUmVnRXhwKHJzQ29tYm8sICdnJyk7XFxuXFxuICAvKiogVXNlZCB0byBtYXRjaCBbc3RyaW5nIHN5bWJvbHNdKGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9qYXZhc2NyaXB0LXVuaWNvZGUpLiAqL1xcbiAgdmFyIHJlVW5pY29kZSA9IFJlZ0V4cChyc0ZpdHogKyAnKD89JyArIHJzRml0eiArICcpfCcgKyByc1N5bWJvbCArIHJzU2VxLCAnZycpO1xcblxcbiAgLyoqIFVzZWQgdG8gbWF0Y2ggY29tcGxleCBvciBjb21wb3VuZCB3b3Jkcy4gKi9cXG4gIHZhciByZVVuaWNvZGVXb3JkID0gUmVnRXhwKFtcXG4gICAgcnNVcHBlciArICc/JyArIHJzTG93ZXIgKyAnKycgKyByc09wdENvbnRyTG93ZXIgKyAnKD89JyArIFtyc0JyZWFrLCByc1VwcGVyLCAnJCddLmpvaW4oJ3wnKSArICcpJyxcXG4gICAgcnNNaXNjVXBwZXIgKyAnKycgKyByc09wdENvbnRyVXBwZXIgKyAnKD89JyArIFtyc0JyZWFrLCByc1VwcGVyICsgcnNNaXNjTG93ZXIsICckJ10uam9pbignfCcpICsgJyknLFxcbiAgICByc1VwcGVyICsgJz8nICsgcnNNaXNjTG93ZXIgKyAnKycgKyByc09wdENvbnRyTG93ZXIsXFxuICAgIHJzVXBwZXIgKyAnKycgKyByc09wdENvbnRyVXBwZXIsXFxuICAgIHJzT3JkVXBwZXIsXFxuICAgIHJzT3JkTG93ZXIsXFxuICAgIHJzRGlnaXRzLFxcbiAgICByc0Vtb2ppXFxuICBdLmpvaW4oJ3wnKSwgJ2cnKTtcXG5cXG4gIC8qKiBVc2VkIHRvIGRldGVjdCBzdHJpbmdzIHdpdGggW3plcm8td2lkdGggam9pbmVycyBvciBjb2RlIHBvaW50cyBmcm9tIHRoZSBhc3RyYWwgcGxhbmVzXShodHRwOi8vZWV2LmVlL2Jsb2cvMjAxNS8wOS8xMi9kYXJrLWNvcm5lcnMtb2YtdW5pY29kZS8pLiAqL1xcbiAgdmFyIHJlSGFzVW5pY29kZSA9IFJlZ0V4cCgnWycgKyByc1pXSiArIHJzQXN0cmFsUmFuZ2UgICsgcnNDb21ib1JhbmdlICsgcnNWYXJSYW5nZSArICddJyk7XFxuXFxuICAvKiogVXNlZCB0byBkZXRlY3Qgc3RyaW5ncyB0aGF0IG5lZWQgYSBtb3JlIHJvYnVzdCByZWdleHAgdG8gbWF0Y2ggd29yZHMuICovXFxuICB2YXIgcmVIYXNVbmljb2RlV29yZCA9IC9bYS16XVtBLVpdfFtBLVpdezJ9W2Etel18WzAtOV1bYS16QS1aXXxbYS16QS1aXVswLTldfFteYS16QS1aMC05IF0vO1xcblxcbiAgLyoqIFVzZWQgdG8gYXNzaWduIGRlZmF1bHQgYGNvbnRleHRgIG9iamVjdCBwcm9wZXJ0aWVzLiAqL1xcbiAgdmFyIGNvbnRleHRQcm9wcyA9IFtcXG4gICAgJ0FycmF5JywgJ0J1ZmZlcicsICdEYXRhVmlldycsICdEYXRlJywgJ0Vycm9yJywgJ0Zsb2F0MzJBcnJheScsICdGbG9hdDY0QXJyYXknLFxcbiAgICAnRnVuY3Rpb24nLCAnSW50OEFycmF5JywgJ0ludDE2QXJyYXknLCAnSW50MzJBcnJheScsICdNYXAnLCAnTWF0aCcsICdPYmplY3QnLFxcbiAgICAnUHJvbWlzZScsICdSZWdFeHAnLCAnU2V0JywgJ1N0cmluZycsICdTeW1ib2wnLCAnVHlwZUVycm9yJywgJ1VpbnQ4QXJyYXknLFxcbiAgICAnVWludDhDbGFtcGVkQXJyYXknLCAnVWludDE2QXJyYXknLCAnVWludDMyQXJyYXknLCAnV2Vha01hcCcsXFxuICAgICdfJywgJ2NsZWFyVGltZW91dCcsICdpc0Zpbml0ZScsICdwYXJzZUludCcsICdzZXRUaW1lb3V0J1xcbiAgXTtcXG5cXG4gIC8qKiBVc2VkIHRvIG1ha2UgdGVtcGxhdGUgc291cmNlVVJMcyBlYXNpZXIgdG8gaWRlbnRpZnkuICovXFxuICB2YXIgdGVtcGxhdGVDb3VudGVyID0gLTE7XFxuXFxuICAvKiogVXNlZCB0byBpZGVudGlmeSBgdG9TdHJpbmdUYWdgIHZhbHVlcyBvZiB0eXBlZCBhcnJheXMuICovXFxuICB2YXIgdHlwZWRBcnJheVRhZ3MgPSB7fTtcXG4gIHR5cGVkQXJyYXlUYWdzW2Zsb2F0MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbZmxvYXQ2NFRhZ10gPVxcbiAgdHlwZWRBcnJheVRhZ3NbaW50OFRhZ10gPSB0eXBlZEFycmF5VGFnc1tpbnQxNlRhZ10gPVxcbiAgdHlwZWRBcnJheVRhZ3NbaW50MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhUYWddID1cXG4gIHR5cGVkQXJyYXlUYWdzW3VpbnQ4Q2xhbXBlZFRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50MTZUYWddID1cXG4gIHR5cGVkQXJyYXlUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xcbiAgdHlwZWRBcnJheVRhZ3NbYXJnc1RhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheVRhZ10gPVxcbiAgdHlwZWRBcnJheVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gdHlwZWRBcnJheVRhZ3NbYm9vbFRhZ10gPVxcbiAgdHlwZWRBcnJheVRhZ3NbZGF0YVZpZXdUYWddID0gdHlwZWRBcnJheVRhZ3NbZGF0ZVRhZ10gPVxcbiAgdHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID0gdHlwZWRBcnJheVRhZ3NbZnVuY1RhZ10gPVxcbiAgdHlwZWRBcnJheVRhZ3NbbWFwVGFnXSA9IHR5cGVkQXJyYXlUYWdzW251bWJlclRhZ10gPVxcbiAgdHlwZWRBcnJheVRhZ3Nbb2JqZWN0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3JlZ2V4cFRhZ10gPVxcbiAgdHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3N0cmluZ1RhZ10gPVxcbiAgdHlwZWRBcnJheVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcXG5cXG4gIC8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIHN1cHBvcnRlZCBieSBgXy5jbG9uZWAuICovXFxuICB2YXIgY2xvbmVhYmxlVGFncyA9IHt9O1xcbiAgY2xvbmVhYmxlVGFnc1thcmdzVGFnXSA9IGNsb25lYWJsZVRhZ3NbYXJyYXlUYWddID1cXG4gIGNsb25lYWJsZVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRhVmlld1RhZ10gPVxcbiAgY2xvbmVhYmxlVGFnc1tib29sVGFnXSA9IGNsb25lYWJsZVRhZ3NbZGF0ZVRhZ10gPVxcbiAgY2xvbmVhYmxlVGFnc1tmbG9hdDMyVGFnXSA9IGNsb25lYWJsZVRhZ3NbZmxvYXQ2NFRhZ10gPVxcbiAgY2xvbmVhYmxlVGFnc1tpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50MTZUYWddID1cXG4gIGNsb25lYWJsZVRhZ3NbaW50MzJUYWddID0gY2xvbmVhYmxlVGFnc1ttYXBUYWddID1cXG4gIGNsb25lYWJsZVRhZ3NbbnVtYmVyVGFnXSA9IGNsb25lYWJsZVRhZ3Nbb2JqZWN0VGFnXSA9XFxuICBjbG9uZWFibGVUYWdzW3JlZ2V4cFRhZ10gPSBjbG9uZWFibGVUYWdzW3NldFRhZ10gPVxcbiAgY2xvbmVhYmxlVGFnc1tzdHJpbmdUYWddID0gY2xvbmVhYmxlVGFnc1tzeW1ib2xUYWddID1cXG4gIGNsb25lYWJsZVRhZ3NbdWludDhUYWddID0gY2xvbmVhYmxlVGFnc1t1aW50OENsYW1wZWRUYWddID1cXG4gIGNsb25lYWJsZVRhZ3NbdWludDE2VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XFxuICBjbG9uZWFibGVUYWdzW2Vycm9yVGFnXSA9IGNsb25lYWJsZVRhZ3NbZnVuY1RhZ10gPVxcbiAgY2xvbmVhYmxlVGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xcblxcbiAgLyoqIFVzZWQgdG8gbWFwIExhdGluIFVuaWNvZGUgbGV0dGVycyB0byBiYXNpYyBMYXRpbiBsZXR0ZXJzLiAqL1xcbiAgdmFyIGRlYnVycmVkTGV0dGVycyA9IHtcXG4gICAgLy8gTGF0aW4tMSBTdXBwbGVtZW50IGJsb2NrLlxcbiAgICAnXFxcXHhjMCc6ICdBJywgICdcXFxceGMxJzogJ0EnLCAnXFxcXHhjMic6ICdBJywgJ1xcXFx4YzMnOiAnQScsICdcXFxceGM0JzogJ0EnLCAnXFxcXHhjNSc6ICdBJyxcXG4gICAgJ1xcXFx4ZTAnOiAnYScsICAnXFxcXHhlMSc6ICdhJywgJ1xcXFx4ZTInOiAnYScsICdcXFxceGUzJzogJ2EnLCAnXFxcXHhlNCc6ICdhJywgJ1xcXFx4ZTUnOiAnYScsXFxuICAgICdcXFxceGM3JzogJ0MnLCAgJ1xcXFx4ZTcnOiAnYycsXFxuICAgICdcXFxceGQwJzogJ0QnLCAgJ1xcXFx4ZjAnOiAnZCcsXFxuICAgICdcXFxceGM4JzogJ0UnLCAgJ1xcXFx4YzknOiAnRScsICdcXFxceGNhJzogJ0UnLCAnXFxcXHhjYic6ICdFJyxcXG4gICAgJ1xcXFx4ZTgnOiAnZScsICAnXFxcXHhlOSc6ICdlJywgJ1xcXFx4ZWEnOiAnZScsICdcXFxceGViJzogJ2UnLFxcbiAgICAnXFxcXHhjYyc6ICdJJywgICdcXFxceGNkJzogJ0knLCAnXFxcXHhjZSc6ICdJJywgJ1xcXFx4Y2YnOiAnSScsXFxuICAgICdcXFxceGVjJzogJ2knLCAgJ1xcXFx4ZWQnOiAnaScsICdcXFxceGVlJzogJ2knLCAnXFxcXHhlZic6ICdpJyxcXG4gICAgJ1xcXFx4ZDEnOiAnTicsICAnXFxcXHhmMSc6ICduJyxcXG4gICAgJ1xcXFx4ZDInOiAnTycsICAnXFxcXHhkMyc6ICdPJywgJ1xcXFx4ZDQnOiAnTycsICdcXFxceGQ1JzogJ08nLCAnXFxcXHhkNic6ICdPJywgJ1xcXFx4ZDgnOiAnTycsXFxuICAgICdcXFxceGYyJzogJ28nLCAgJ1xcXFx4ZjMnOiAnbycsICdcXFxceGY0JzogJ28nLCAnXFxcXHhmNSc6ICdvJywgJ1xcXFx4ZjYnOiAnbycsICdcXFxceGY4JzogJ28nLFxcbiAgICAnXFxcXHhkOSc6ICdVJywgICdcXFxceGRhJzogJ1UnLCAnXFxcXHhkYic6ICdVJywgJ1xcXFx4ZGMnOiAnVScsXFxuICAgICdcXFxceGY5JzogJ3UnLCAgJ1xcXFx4ZmEnOiAndScsICdcXFxceGZiJzogJ3UnLCAnXFxcXHhmYyc6ICd1JyxcXG4gICAgJ1xcXFx4ZGQnOiAnWScsICAnXFxcXHhmZCc6ICd5JywgJ1xcXFx4ZmYnOiAneScsXFxuICAgICdcXFxceGM2JzogJ0FlJywgJ1xcXFx4ZTYnOiAnYWUnLFxcbiAgICAnXFxcXHhkZSc6ICdUaCcsICdcXFxceGZlJzogJ3RoJyxcXG4gICAgJ1xcXFx4ZGYnOiAnc3MnLFxcbiAgICAvLyBMYXRpbiBFeHRlbmRlZC1BIGJsb2NrLlxcbiAgICAnXFxcXHUwMTAwJzogJ0EnLCAgJ1xcXFx1MDEwMic6ICdBJywgJ1xcXFx1MDEwNCc6ICdBJyxcXG4gICAgJ1xcXFx1MDEwMSc6ICdhJywgICdcXFxcdTAxMDMnOiAnYScsICdcXFxcdTAxMDUnOiAnYScsXFxuICAgICdcXFxcdTAxMDYnOiAnQycsICAnXFxcXHUwMTA4JzogJ0MnLCAnXFxcXHUwMTBhJzogJ0MnLCAnXFxcXHUwMTBjJzogJ0MnLFxcbiAgICAnXFxcXHUwMTA3JzogJ2MnLCAgJ1xcXFx1MDEwOSc6ICdjJywgJ1xcXFx1MDEwYic6ICdjJywgJ1xcXFx1MDEwZCc6ICdjJyxcXG4gICAgJ1xcXFx1MDEwZSc6ICdEJywgICdcXFxcdTAxMTAnOiAnRCcsICdcXFxcdTAxMGYnOiAnZCcsICdcXFxcdTAxMTEnOiAnZCcsXFxuICAgICdcXFxcdTAxMTInOiAnRScsICAnXFxcXHUwMTE0JzogJ0UnLCAnXFxcXHUwMTE2JzogJ0UnLCAnXFxcXHUwMTE4JzogJ0UnLCAnXFxcXHUwMTFhJzogJ0UnLFxcbiAgICAnXFxcXHUwMTEzJzogJ2UnLCAgJ1xcXFx1MDExNSc6ICdlJywgJ1xcXFx1MDExNyc6ICdlJywgJ1xcXFx1MDExOSc6ICdlJywgJ1xcXFx1MDExYic6ICdlJyxcXG4gICAgJ1xcXFx1MDExYyc6ICdHJywgICdcXFxcdTAxMWUnOiAnRycsICdcXFxcdTAxMjAnOiAnRycsICdcXFxcdTAxMjInOiAnRycsXFxuICAgICdcXFxcdTAxMWQnOiAnZycsICAnXFxcXHUwMTFmJzogJ2cnLCAnXFxcXHUwMTIxJzogJ2cnLCAnXFxcXHUwMTIzJzogJ2cnLFxcbiAgICAnXFxcXHUwMTI0JzogJ0gnLCAgJ1xcXFx1MDEyNic6ICdIJywgJ1xcXFx1MDEyNSc6ICdoJywgJ1xcXFx1MDEyNyc6ICdoJyxcXG4gICAgJ1xcXFx1MDEyOCc6ICdJJywgICdcXFxcdTAxMmEnOiAnSScsICdcXFxcdTAxMmMnOiAnSScsICdcXFxcdTAxMmUnOiAnSScsICdcXFxcdTAxMzAnOiAnSScsXFxuICAgICdcXFxcdTAxMjknOiAnaScsICAnXFxcXHUwMTJiJzogJ2knLCAnXFxcXHUwMTJkJzogJ2knLCAnXFxcXHUwMTJmJzogJ2knLCAnXFxcXHUwMTMxJzogJ2knLFxcbiAgICAnXFxcXHUwMTM0JzogJ0onLCAgJ1xcXFx1MDEzNSc6ICdqJyxcXG4gICAgJ1xcXFx1MDEzNic6ICdLJywgICdcXFxcdTAxMzcnOiAnaycsICdcXFxcdTAxMzgnOiAnaycsXFxuICAgICdcXFxcdTAxMzknOiAnTCcsICAnXFxcXHUwMTNiJzogJ0wnLCAnXFxcXHUwMTNkJzogJ0wnLCAnXFxcXHUwMTNmJzogJ0wnLCAnXFxcXHUwMTQxJzogJ0wnLFxcbiAgICAnXFxcXHUwMTNhJzogJ2wnLCAgJ1xcXFx1MDEzYyc6ICdsJywgJ1xcXFx1MDEzZSc6ICdsJywgJ1xcXFx1MDE0MCc6ICdsJywgJ1xcXFx1MDE0Mic6ICdsJyxcXG4gICAgJ1xcXFx1MDE0Myc6ICdOJywgICdcXFxcdTAxNDUnOiAnTicsICdcXFxcdTAxNDcnOiAnTicsICdcXFxcdTAxNGEnOiAnTicsXFxuICAgICdcXFxcdTAxNDQnOiAnbicsICAnXFxcXHUwMTQ2JzogJ24nLCAnXFxcXHUwMTQ4JzogJ24nLCAnXFxcXHUwMTRiJzogJ24nLFxcbiAgICAnXFxcXHUwMTRjJzogJ08nLCAgJ1xcXFx1MDE0ZSc6ICdPJywgJ1xcXFx1MDE1MCc6ICdPJyxcXG4gICAgJ1xcXFx1MDE0ZCc6ICdvJywgICdcXFxcdTAxNGYnOiAnbycsICdcXFxcdTAxNTEnOiAnbycsXFxuICAgICdcXFxcdTAxNTQnOiAnUicsICAnXFxcXHUwMTU2JzogJ1InLCAnXFxcXHUwMTU4JzogJ1InLFxcbiAgICAnXFxcXHUwMTU1JzogJ3InLCAgJ1xcXFx1MDE1Nyc6ICdyJywgJ1xcXFx1MDE1OSc6ICdyJyxcXG4gICAgJ1xcXFx1MDE1YSc6ICdTJywgICdcXFxcdTAxNWMnOiAnUycsICdcXFxcdTAxNWUnOiAnUycsICdcXFxcdTAxNjAnOiAnUycsXFxuICAgICdcXFxcdTAxNWInOiAncycsICAnXFxcXHUwMTVkJzogJ3MnLCAnXFxcXHUwMTVmJzogJ3MnLCAnXFxcXHUwMTYxJzogJ3MnLFxcbiAgICAnXFxcXHUwMTYyJzogJ1QnLCAgJ1xcXFx1MDE2NCc6ICdUJywgJ1xcXFx1MDE2Nic6ICdUJyxcXG4gICAgJ1xcXFx1MDE2Myc6ICd0JywgICdcXFxcdTAxNjUnOiAndCcsICdcXFxcdTAxNjcnOiAndCcsXFxuICAgICdcXFxcdTAxNjgnOiAnVScsICAnXFxcXHUwMTZhJzogJ1UnLCAnXFxcXHUwMTZjJzogJ1UnLCAnXFxcXHUwMTZlJzogJ1UnLCAnXFxcXHUwMTcwJzogJ1UnLCAnXFxcXHUwMTcyJzogJ1UnLFxcbiAgICAnXFxcXHUwMTY5JzogJ3UnLCAgJ1xcXFx1MDE2Yic6ICd1JywgJ1xcXFx1MDE2ZCc6ICd1JywgJ1xcXFx1MDE2Zic6ICd1JywgJ1xcXFx1MDE3MSc6ICd1JywgJ1xcXFx1MDE3Myc6ICd1JyxcXG4gICAgJ1xcXFx1MDE3NCc6ICdXJywgICdcXFxcdTAxNzUnOiAndycsXFxuICAgICdcXFxcdTAxNzYnOiAnWScsICAnXFxcXHUwMTc3JzogJ3knLCAnXFxcXHUwMTc4JzogJ1knLFxcbiAgICAnXFxcXHUwMTc5JzogJ1onLCAgJ1xcXFx1MDE3Yic6ICdaJywgJ1xcXFx1MDE3ZCc6ICdaJyxcXG4gICAgJ1xcXFx1MDE3YSc6ICd6JywgICdcXFxcdTAxN2MnOiAneicsICdcXFxcdTAxN2UnOiAneicsXFxuICAgICdcXFxcdTAxMzInOiAnSUonLCAnXFxcXHUwMTMzJzogJ2lqJyxcXG4gICAgJ1xcXFx1MDE1Mic6ICdPZScsICdcXFxcdTAxNTMnOiAnb2UnLFxcbiAgICAnXFxcXHUwMTQ5JzogXFxcIiduXFxcIiwgJ1xcXFx1MDE3Zic6ICdzJ1xcbiAgfTtcXG5cXG4gIC8qKiBVc2VkIHRvIG1hcCBjaGFyYWN0ZXJzIHRvIEhUTUwgZW50aXRpZXMuICovXFxuICB2YXIgaHRtbEVzY2FwZXMgPSB7XFxuICAgICcmJzogJyZhbXA7JyxcXG4gICAgJzwnOiAnJmx0OycsXFxuICAgICc+JzogJyZndDsnLFxcbiAgICAnXFxcIic6ICcmcXVvdDsnLFxcbiAgICBcXFwiJ1xcXCI6ICcmIzM5OydcXG4gIH07XFxuXFxuICAvKiogVXNlZCB0byBtYXAgSFRNTCBlbnRpdGllcyB0byBjaGFyYWN0ZXJzLiAqL1xcbiAgdmFyIGh0bWxVbmVzY2FwZXMgPSB7XFxuICAgICcmYW1wOyc6ICcmJyxcXG4gICAgJyZsdDsnOiAnPCcsXFxuICAgICcmZ3Q7JzogJz4nLFxcbiAgICAnJnF1b3Q7JzogJ1xcXCInLFxcbiAgICAnJiMzOTsnOiBcXFwiJ1xcXCJcXG4gIH07XFxuXFxuICAvKiogVXNlZCB0byBlc2NhcGUgY2hhcmFjdGVycyBmb3IgaW5jbHVzaW9uIGluIGNvbXBpbGVkIHN0cmluZyBsaXRlcmFscy4gKi9cXG4gIHZhciBzdHJpbmdFc2NhcGVzID0ge1xcbiAgICAnXFxcXFxcXFwnOiAnXFxcXFxcXFwnLFxcbiAgICBcXFwiJ1xcXCI6IFxcXCInXFxcIixcXG4gICAgJ1xcXFxuJzogJ24nLFxcbiAgICAnXFxcXHInOiAncicsXFxuICAgICdcXFxcdTIwMjgnOiAndTIwMjgnLFxcbiAgICAnXFxcXHUyMDI5JzogJ3UyMDI5J1xcbiAgfTtcXG5cXG4gIC8qKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB3aXRob3V0IGEgZGVwZW5kZW5jeSBvbiBgcm9vdGAuICovXFxuICB2YXIgZnJlZVBhcnNlRmxvYXQgPSBwYXJzZUZsb2F0LFxcbiAgICAgIGZyZWVQYXJzZUludCA9IHBhcnNlSW50O1xcblxcbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cXG4gIHZhciBmcmVlR2xvYmFsID0gdHlwZW9mIF9fd2VicGFja19yZXF1aXJlX18uZyA9PSAnb2JqZWN0JyAmJiBfX3dlYnBhY2tfcmVxdWlyZV9fLmcgJiYgX193ZWJwYWNrX3JlcXVpcmVfXy5nLk9iamVjdCA9PT0gT2JqZWN0ICYmIF9fd2VicGFja19yZXF1aXJlX18uZztcXG5cXG4gIC8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgc2VsZmAuICovXFxuICB2YXIgZnJlZVNlbGYgPSB0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmICYmIHNlbGYuT2JqZWN0ID09PSBPYmplY3QgJiYgc2VsZjtcXG5cXG4gIC8qKiBVc2VkIGFzIGEgcmVmZXJlbmNlIHRvIHRoZSBnbG9iYWwgb2JqZWN0LiAqL1xcbiAgdmFyIHJvb3QgPSBmcmVlR2xvYmFsIHx8IGZyZWVTZWxmIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XFxuXFxuICAvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGV4cG9ydHNgLiAqL1xcbiAgdmFyIGZyZWVFeHBvcnRzID0gIHRydWUgJiYgZXhwb3J0cyAmJiAhZXhwb3J0cy5ub2RlVHlwZSAmJiBleHBvcnRzO1xcblxcbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBtb2R1bGVgLiAqL1xcbiAgdmFyIGZyZWVNb2R1bGUgPSBmcmVlRXhwb3J0cyAmJiBcXFwib2JqZWN0XFxcIiA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XFxuXFxuICAvKiogRGV0ZWN0IHRoZSBwb3B1bGFyIENvbW1vbkpTIGV4dGVuc2lvbiBgbW9kdWxlLmV4cG9ydHNgLiAqL1xcbiAgdmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XFxuXFxuICAvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYHByb2Nlc3NgIGZyb20gTm9kZS5qcy4gKi9cXG4gIHZhciBmcmVlUHJvY2VzcyA9IG1vZHVsZUV4cG9ydHMgJiYgZnJlZUdsb2JhbC5wcm9jZXNzO1xcblxcbiAgLyoqIFVzZWQgdG8gYWNjZXNzIGZhc3RlciBOb2RlLmpzIGhlbHBlcnMuICovXFxuICB2YXIgbm9kZVV0aWwgPSAoZnVuY3Rpb24oKSB7XFxuICAgIHRyeSB7XFxuICAgICAgLy8gVXNlIGB1dGlsLnR5cGVzYCBmb3IgTm9kZS5qcyAxMCsuXFxuICAgICAgdmFyIHR5cGVzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLnJlcXVpcmUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlKCd1dGlsJykudHlwZXM7XFxuXFxuICAgICAgaWYgKHR5cGVzKSB7XFxuICAgICAgICByZXR1cm4gdHlwZXM7XFxuICAgICAgfVxcblxcbiAgICAgIC8vIExlZ2FjeSBgcHJvY2Vzcy5iaW5kaW5nKCd1dGlsJylgIGZvciBOb2RlLmpzIDwgMTAuXFxuICAgICAgcmV0dXJuIGZyZWVQcm9jZXNzICYmIGZyZWVQcm9jZXNzLmJpbmRpbmcgJiYgZnJlZVByb2Nlc3MuYmluZGluZygndXRpbCcpO1xcbiAgICB9IGNhdGNoIChlKSB7fVxcbiAgfSgpKTtcXG5cXG4gIC8qIE5vZGUuanMgaGVscGVyIHJlZmVyZW5jZXMuICovXFxuICB2YXIgbm9kZUlzQXJyYXlCdWZmZXIgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc0FycmF5QnVmZmVyLFxcbiAgICAgIG5vZGVJc0RhdGUgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc0RhdGUsXFxuICAgICAgbm9kZUlzTWFwID0gbm9kZVV0aWwgJiYgbm9kZVV0aWwuaXNNYXAsXFxuICAgICAgbm9kZUlzUmVnRXhwID0gbm9kZVV0aWwgJiYgbm9kZVV0aWwuaXNSZWdFeHAsXFxuICAgICAgbm9kZUlzU2V0ID0gbm9kZVV0aWwgJiYgbm9kZVV0aWwuaXNTZXQsXFxuICAgICAgbm9kZUlzVHlwZWRBcnJheSA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzVHlwZWRBcnJheTtcXG5cXG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xcblxcbiAgLyoqXFxuICAgKiBBIGZhc3RlciBhbHRlcm5hdGl2ZSB0byBgRnVuY3Rpb24jYXBwbHlgLCB0aGlzIGZ1bmN0aW9uIGludm9rZXMgYGZ1bmNgXFxuICAgKiB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiBgdGhpc0FyZ2AgYW5kIHRoZSBhcmd1bWVudHMgb2YgYGFyZ3NgLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBpbnZva2UuXFxuICAgKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFyZ3MgVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgYGZ1bmNgIHdpdGguXFxuICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzdWx0IG9mIGBmdW5jYC5cXG4gICAqL1xcbiAgZnVuY3Rpb24gYXBwbHkoZnVuYywgdGhpc0FyZywgYXJncykge1xcbiAgICBzd2l0Y2ggKGFyZ3MubGVuZ3RoKSB7XFxuICAgICAgY2FzZSAwOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcpO1xcbiAgICAgIGNhc2UgMTogcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCBhcmdzWzBdKTtcXG4gICAgICBjYXNlIDI6IHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgYXJnc1swXSwgYXJnc1sxXSk7XFxuICAgICAgY2FzZSAzOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0pO1xcbiAgICB9XFxuICAgIHJldHVybiBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VBZ2dyZWdhdG9yYCBmb3IgYXJyYXlzLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzZXR0ZXIgVGhlIGZ1bmN0aW9uIHRvIHNldCBgYWNjdW11bGF0b3JgIHZhbHVlcy5cXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBpdGVyYXRlZSB0byB0cmFuc2Zvcm0ga2V5cy5cXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBhY2N1bXVsYXRvciBUaGUgaW5pdGlhbCBhZ2dyZWdhdGVkIG9iamVjdC5cXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgYWNjdW11bGF0b3JgLlxcbiAgICovXFxuICBmdW5jdGlvbiBhcnJheUFnZ3JlZ2F0b3IoYXJyYXksIHNldHRlciwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yKSB7XFxuICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XFxuXFxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xcbiAgICAgIHNldHRlcihhY2N1bXVsYXRvciwgdmFsdWUsIGl0ZXJhdGVlKHZhbHVlKSwgYXJyYXkpO1xcbiAgICB9XFxuICAgIHJldHVybiBhY2N1bXVsYXRvcjtcXG4gIH1cXG5cXG4gIC8qKlxcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZvckVhY2hgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxcbiAgICovXFxuICBmdW5jdGlvbiBhcnJheUVhY2goYXJyYXksIGl0ZXJhdGVlKSB7XFxuICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XFxuXFxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgaWYgKGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSA9PT0gZmFsc2UpIHtcXG4gICAgICAgIGJyZWFrO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgICByZXR1cm4gYXJyYXk7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5mb3JFYWNoUmlnaHRgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxcbiAgICovXFxuICBmdW5jdGlvbiBhcnJheUVhY2hSaWdodChhcnJheSwgaXRlcmF0ZWUpIHtcXG4gICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xcblxcbiAgICB3aGlsZSAobGVuZ3RoLS0pIHtcXG4gICAgICBpZiAoaXRlcmF0ZWUoYXJyYXlbbGVuZ3RoXSwgbGVuZ3RoLCBhcnJheSkgPT09IGZhbHNlKSB7XFxuICAgICAgICBicmVhaztcXG4gICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIGFycmF5O1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uZXZlcnlgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYWxsIGVsZW1lbnRzIHBhc3MgdGhlIHByZWRpY2F0ZSBjaGVjayxcXG4gICAqICBlbHNlIGBmYWxzZWAuXFxuICAgKi9cXG4gIGZ1bmN0aW9uIGFycmF5RXZlcnkoYXJyYXksIHByZWRpY2F0ZSkge1xcbiAgICB2YXIgaW5kZXggPSAtMSxcXG4gICAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xcblxcbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xcbiAgICAgIGlmICghcHJlZGljYXRlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSkge1xcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgICByZXR1cm4gdHJ1ZTtcXG4gIH1cXG5cXG4gIC8qKlxcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZpbHRlcmAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXFxuICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZpbHRlcmVkIGFycmF5LlxcbiAgICovXFxuICBmdW5jdGlvbiBhcnJheUZpbHRlcihhcnJheSwgcHJlZGljYXRlKSB7XFxuICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXFxuICAgICAgICByZXNJbmRleCA9IDAsXFxuICAgICAgICByZXN1bHQgPSBbXTtcXG5cXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XFxuICAgICAgaWYgKHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgsIGFycmF5KSkge1xcbiAgICAgICAgcmVzdWx0W3Jlc0luZGV4KytdID0gdmFsdWU7XFxuICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiByZXN1bHQ7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5pbmNsdWRlc2AgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXFxuICAgKiBzcGVjaWZ5aW5nIGFuIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpbnNwZWN0LlxcbiAgICogQHBhcmFtIHsqfSB0YXJnZXQgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHRhcmdldGAgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cXG4gICAqL1xcbiAgZnVuY3Rpb24gYXJyYXlJbmNsdWRlcyhhcnJheSwgdmFsdWUpIHtcXG4gICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xcbiAgICByZXR1cm4gISFsZW5ndGggJiYgYmFzZUluZGV4T2YoYXJyYXksIHZhbHVlLCAwKSA+IC0xO1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGFycmF5SW5jbHVkZXNgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYSBjb21wYXJhdG9yLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpbnNwZWN0LlxcbiAgICogQHBhcmFtIHsqfSB0YXJnZXQgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjb21wYXJhdG9yIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHRhcmdldGAgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cXG4gICAqL1xcbiAgZnVuY3Rpb24gYXJyYXlJbmNsdWRlc1dpdGgoYXJyYXksIHZhbHVlLCBjb21wYXJhdG9yKSB7XFxuICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XFxuXFxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgaWYgKGNvbXBhcmF0b3IodmFsdWUsIGFycmF5W2luZGV4XSkpIHtcXG4gICAgICAgIHJldHVybiB0cnVlO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgICByZXR1cm4gZmFsc2U7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tYXBgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZVxcbiAgICogc2hvcnRoYW5kcy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cXG4gICAqL1xcbiAgZnVuY3Rpb24gYXJyYXlNYXAoYXJyYXksIGl0ZXJhdGVlKSB7XFxuICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXFxuICAgICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xcblxcbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xcbiAgICAgIHJlc3VsdFtpbmRleF0gPSBpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSk7XFxuICAgIH1cXG4gICAgcmV0dXJuIHJlc3VsdDtcXG4gIH1cXG5cXG4gIC8qKlxcbiAgICogQXBwZW5kcyB0aGUgZWxlbWVudHMgb2YgYHZhbHVlc2AgdG8gYGFycmF5YC5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cXG4gICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIGFwcGVuZC5cXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxcbiAgICovXFxuICBmdW5jdGlvbiBhcnJheVB1c2goYXJyYXksIHZhbHVlcykge1xcbiAgICB2YXIgaW5kZXggPSAtMSxcXG4gICAgICAgIGxlbmd0aCA9IHZhbHVlcy5sZW5ndGgsXFxuICAgICAgICBvZmZzZXQgPSBhcnJheS5sZW5ndGg7XFxuXFxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgYXJyYXlbb2Zmc2V0ICsgaW5kZXhdID0gdmFsdWVzW2luZGV4XTtcXG4gICAgfVxcbiAgICByZXR1cm4gYXJyYXk7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5yZWR1Y2VgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luaXRBY2N1bV0gU3BlY2lmeSB1c2luZyB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgIGFzXFxuICAgKiAgdGhlIGluaXRpYWwgdmFsdWUuXFxuICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgYWNjdW11bGF0ZWQgdmFsdWUuXFxuICAgKi9cXG4gIGZ1bmN0aW9uIGFycmF5UmVkdWNlKGFycmF5LCBpdGVyYXRlZSwgYWNjdW11bGF0b3IsIGluaXRBY2N1bSkge1xcbiAgICB2YXIgaW5kZXggPSAtMSxcXG4gICAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xcblxcbiAgICBpZiAoaW5pdEFjY3VtICYmIGxlbmd0aCkge1xcbiAgICAgIGFjY3VtdWxhdG9yID0gYXJyYXlbKytpbmRleF07XFxuICAgIH1cXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICBhY2N1bXVsYXRvciA9IGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCBhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSk7XFxuICAgIH1cXG4gICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ucmVkdWNlUmlnaHRgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luaXRBY2N1bV0gU3BlY2lmeSB1c2luZyB0aGUgbGFzdCBlbGVtZW50IG9mIGBhcnJheWAgYXNcXG4gICAqICB0aGUgaW5pdGlhbCB2YWx1ZS5cXG4gICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cXG4gICAqL1xcbiAgZnVuY3Rpb24gYXJyYXlSZWR1Y2VSaWdodChhcnJheSwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0pIHtcXG4gICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xcbiAgICBpZiAoaW5pdEFjY3VtICYmIGxlbmd0aCkge1xcbiAgICAgIGFjY3VtdWxhdG9yID0gYXJyYXlbLS1sZW5ndGhdO1xcbiAgICB9XFxuICAgIHdoaWxlIChsZW5ndGgtLSkge1xcbiAgICAgIGFjY3VtdWxhdG9yID0gaXRlcmF0ZWUoYWNjdW11bGF0b3IsIGFycmF5W2xlbmd0aF0sIGxlbmd0aCwgYXJyYXkpO1xcbiAgICB9XFxuICAgIHJldHVybiBhY2N1bXVsYXRvcjtcXG4gIH1cXG5cXG4gIC8qKlxcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLnNvbWVgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZVxcbiAgICogc2hvcnRoYW5kcy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW55IGVsZW1lbnQgcGFzc2VzIHRoZSBwcmVkaWNhdGUgY2hlY2ssXFxuICAgKiAgZWxzZSBgZmFsc2VgLlxcbiAgICovXFxuICBmdW5jdGlvbiBhcnJheVNvbWUoYXJyYXksIHByZWRpY2F0ZSkge1xcbiAgICB2YXIgaW5kZXggPSAtMSxcXG4gICAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xcblxcbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xcbiAgICAgIGlmIChwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XFxuICAgICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIGZhbHNlO1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBHZXRzIHRoZSBzaXplIG9mIGFuIEFTQ0lJIGBzdHJpbmdgLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgaW5zcGVjdC5cXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHN0cmluZyBzaXplLlxcbiAgICovXFxuICB2YXIgYXNjaWlTaXplID0gYmFzZVByb3BlcnR5KCdsZW5ndGgnKTtcXG5cXG4gIC8qKlxcbiAgICogQ29udmVydHMgYW4gQVNDSUkgYHN0cmluZ2AgdG8gYW4gYXJyYXkuXFxuICAgKlxcbiAgICogQHByaXZhdGVcXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxcbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgYXJyYXkuXFxuICAgKi9cXG4gIGZ1bmN0aW9uIGFzY2lpVG9BcnJheShzdHJpbmcpIHtcXG4gICAgcmV0dXJuIHN0cmluZy5zcGxpdCgnJyk7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIFNwbGl0cyBhbiBBU0NJSSBgc3RyaW5nYCBpbnRvIGFuIGFycmF5IG9mIGl0cyB3b3Jkcy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtzdHJpbmd9IFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgd29yZHMgb2YgYHN0cmluZ2AuXFxuICAgKi9cXG4gIGZ1bmN0aW9uIGFzY2lpV29yZHMoc3RyaW5nKSB7XFxuICAgIHJldHVybiBzdHJpbmcubWF0Y2gocmVBc2NpaVdvcmQpIHx8IFtdO1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2RzIGxpa2UgYF8uZmluZEtleWAgYW5kIGBfLmZpbmRMYXN0S2V5YCxcXG4gICAqIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcywgd2hpY2ggaXRlcmF0ZXMgb3ZlciBgY29sbGVjdGlvbmBcXG4gICAqIHVzaW5nIGBlYWNoRnVuY2AuXFxuICAgKlxcbiAgICogQHByaXZhdGVcXG4gICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGluc3BlY3QuXFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGVhY2hGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYGNvbGxlY3Rpb25gLlxcbiAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGZvdW5kIGVsZW1lbnQgb3IgaXRzIGtleSwgZWxzZSBgdW5kZWZpbmVkYC5cXG4gICAqL1xcbiAgZnVuY3Rpb24gYmFzZUZpbmRLZXkoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBlYWNoRnVuYykge1xcbiAgICB2YXIgcmVzdWx0O1xcbiAgICBlYWNoRnVuYyhjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSB7XFxuICAgICAgaWYgKHByZWRpY2F0ZSh2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSkge1xcbiAgICAgICAgcmVzdWx0ID0ga2V5O1xcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgIH1cXG4gICAgfSk7XFxuICAgIHJldHVybiByZXN1bHQ7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZpbmRJbmRleGAgYW5kIGBfLmZpbmRMYXN0SW5kZXhgIHdpdGhvdXRcXG4gICAqIHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXFxuICAgKlxcbiAgICogQHByaXZhdGVcXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXFxuICAgKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxcbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cXG4gICAqL1xcbiAgZnVuY3Rpb24gYmFzZUZpbmRJbmRleChhcnJheSwgcHJlZGljYXRlLCBmcm9tSW5kZXgsIGZyb21SaWdodCkge1xcbiAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxcbiAgICAgICAgaW5kZXggPSBmcm9tSW5kZXggKyAoZnJvbVJpZ2h0ID8gMSA6IC0xKTtcXG5cXG4gICAgd2hpbGUgKChmcm9tUmlnaHQgPyBpbmRleC0tIDogKytpbmRleCA8IGxlbmd0aCkpIHtcXG4gICAgICBpZiAocHJlZGljYXRlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSkge1xcbiAgICAgICAgcmV0dXJuIGluZGV4O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgICByZXR1cm4gLTE7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmluZGV4T2ZgIHdpdGhvdXQgYGZyb21JbmRleGAgYm91bmRzIGNoZWNrcy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXFxuICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxcbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXFxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxcbiAgICovXFxuICBmdW5jdGlvbiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xcbiAgICByZXR1cm4gdmFsdWUgPT09IHZhbHVlXFxuICAgICAgPyBzdHJpY3RJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KVxcbiAgICAgIDogYmFzZUZpbmRJbmRleChhcnJheSwgYmFzZUlzTmFOLCBmcm9tSW5kZXgpO1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGJhc2VJbmRleE9mYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGEgY29tcGFyYXRvci5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXFxuICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxcbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjb21wYXJhdG9yIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxcbiAgICovXFxuICBmdW5jdGlvbiBiYXNlSW5kZXhPZldpdGgoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgsIGNvbXBhcmF0b3IpIHtcXG4gICAgdmFyIGluZGV4ID0gZnJvbUluZGV4IC0gMSxcXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcXG5cXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICBpZiAoY29tcGFyYXRvcihhcnJheVtpbmRleF0sIHZhbHVlKSkge1xcbiAgICAgICAgcmV0dXJuIGluZGV4O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgICByZXR1cm4gLTE7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTmFOYCB3aXRob3V0IHN1cHBvcnQgZm9yIG51bWJlciBvYmplY3RzLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGBOYU5gLCBlbHNlIGBmYWxzZWAuXFxuICAgKi9cXG4gIGZ1bmN0aW9uIGJhc2VJc05hTih2YWx1ZSkge1xcbiAgICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5tZWFuYCBhbmQgYF8ubWVhbkJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yXFxuICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIG1lYW4uXFxuICAgKi9cXG4gIGZ1bmN0aW9uIGJhc2VNZWFuKGFycmF5LCBpdGVyYXRlZSkge1xcbiAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XFxuICAgIHJldHVybiBsZW5ndGggPyAoYmFzZVN1bShhcnJheSwgaXRlcmF0ZWUpIC8gbGVuZ3RoKSA6IE5BTjtcXG4gIH1cXG5cXG4gIC8qKlxcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXFxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhY2Nlc3NvciBmdW5jdGlvbi5cXG4gICAqL1xcbiAgZnVuY3Rpb24gYmFzZVByb3BlcnR5KGtleSkge1xcbiAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XFxuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XFxuICAgIH07XFxuICB9XFxuXFxuICAvKipcXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnByb3BlcnR5T2ZgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxcbiAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYWNjZXNzb3IgZnVuY3Rpb24uXFxuICAgKi9cXG4gIGZ1bmN0aW9uIGJhc2VQcm9wZXJ0eU9mKG9iamVjdCkge1xcbiAgICByZXR1cm4gZnVuY3Rpb24oa2V5KSB7XFxuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XFxuICAgIH07XFxuICB9XFxuXFxuICAvKipcXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnJlZHVjZWAgYW5kIGBfLnJlZHVjZVJpZ2h0YCwgd2l0aG91dCBzdXBwb3J0XFxuICAgKiBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcywgd2hpY2ggaXRlcmF0ZXMgb3ZlciBgY29sbGVjdGlvbmAgdXNpbmcgYGVhY2hGdW5jYC5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAqIEBwYXJhbSB7Kn0gYWNjdW11bGF0b3IgVGhlIGluaXRpYWwgdmFsdWUuXFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGluaXRBY2N1bSBTcGVjaWZ5IHVzaW5nIHRoZSBmaXJzdCBvciBsYXN0IGVsZW1lbnQgb2ZcXG4gICAqICBgY29sbGVjdGlvbmAgYXMgdGhlIGluaXRpYWwgdmFsdWUuXFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGBjb2xsZWN0aW9uYC5cXG4gICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cXG4gICAqL1xcbiAgZnVuY3Rpb24gYmFzZVJlZHVjZShjb2xsZWN0aW9uLCBpdGVyYXRlZSwgYWNjdW11bGF0b3IsIGluaXRBY2N1bSwgZWFjaEZ1bmMpIHtcXG4gICAgZWFjaEZ1bmMoY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XFxuICAgICAgYWNjdW11bGF0b3IgPSBpbml0QWNjdW1cXG4gICAgICAgID8gKGluaXRBY2N1bSA9IGZhbHNlLCB2YWx1ZSlcXG4gICAgICAgIDogaXRlcmF0ZWUoYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XFxuICAgIH0pO1xcbiAgICByZXR1cm4gYWNjdW11bGF0b3I7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvcnRCeWAgd2hpY2ggdXNlcyBgY29tcGFyZXJgIHRvIGRlZmluZSB0aGVcXG4gICAqIHNvcnQgb3JkZXIgb2YgYGFycmF5YCBhbmQgcmVwbGFjZXMgY3JpdGVyaWEgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmdcXG4gICAqIHZhbHVlcy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNvcnQuXFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjb21wYXJlciBUaGUgZnVuY3Rpb24gdG8gZGVmaW5lIHNvcnQgb3JkZXIuXFxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cXG4gICAqL1xcbiAgZnVuY3Rpb24gYmFzZVNvcnRCeShhcnJheSwgY29tcGFyZXIpIHtcXG4gICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcXG5cXG4gICAgYXJyYXkuc29ydChjb21wYXJlcik7XFxuICAgIHdoaWxlIChsZW5ndGgtLSkge1xcbiAgICAgIGFycmF5W2xlbmd0aF0gPSBhcnJheVtsZW5ndGhdLnZhbHVlO1xcbiAgICB9XFxuICAgIHJldHVybiBhcnJheTtcXG4gIH1cXG5cXG4gIC8qKlxcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc3VtYCBhbmQgYF8uc3VtQnlgIHdpdGhvdXQgc3VwcG9ydCBmb3JcXG4gICAqIGl0ZXJhdGVlIHNob3J0aGFuZHMuXFxuICAgKlxcbiAgICogQHByaXZhdGVcXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc3VtLlxcbiAgICovXFxuICBmdW5jdGlvbiBiYXNlU3VtKGFycmF5LCBpdGVyYXRlZSkge1xcbiAgICB2YXIgcmVzdWx0LFxcbiAgICAgICAgaW5kZXggPSAtMSxcXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcXG5cXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICB2YXIgY3VycmVudCA9IGl0ZXJhdGVlKGFycmF5W2luZGV4XSk7XFxuICAgICAgaWYgKGN1cnJlbnQgIT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ID09PSB1bmRlZmluZWQgPyBjdXJyZW50IDogKHJlc3VsdCArIGN1cnJlbnQpO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgICByZXR1cm4gcmVzdWx0O1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50aW1lc2Agd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzXFxuICAgKiBvciBtYXggYXJyYXkgbGVuZ3RoIGNoZWNrcy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiB0aW1lcyB0byBpbnZva2UgYGl0ZXJhdGVlYC5cXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXFxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHJlc3VsdHMuXFxuICAgKi9cXG4gIGZ1bmN0aW9uIGJhc2VUaW1lcyhuLCBpdGVyYXRlZSkge1xcbiAgICB2YXIgaW5kZXggPSAtMSxcXG4gICAgICAgIHJlc3VsdCA9IEFycmF5KG4pO1xcblxcbiAgICB3aGlsZSAoKytpbmRleCA8IG4pIHtcXG4gICAgICByZXN1bHRbaW5kZXhdID0gaXRlcmF0ZWUoaW5kZXgpO1xcbiAgICB9XFxuICAgIHJldHVybiByZXN1bHQ7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRvUGFpcnNgIGFuZCBgXy50b1BhaXJzSW5gIHdoaWNoIGNyZWF0ZXMgYW4gYXJyYXlcXG4gICAqIG9mIGtleS12YWx1ZSBwYWlycyBmb3IgYG9iamVjdGAgY29ycmVzcG9uZGluZyB0byB0aGUgcHJvcGVydHkgbmFtZXMgb2YgYHByb3BzYC5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxcbiAgICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IG5hbWVzIHRvIGdldCB2YWx1ZXMgZm9yLlxcbiAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUga2V5LXZhbHVlIHBhaXJzLlxcbiAgICovXFxuICBmdW5jdGlvbiBiYXNlVG9QYWlycyhvYmplY3QsIHByb3BzKSB7XFxuICAgIHJldHVybiBhcnJheU1hcChwcm9wcywgZnVuY3Rpb24oa2V5KSB7XFxuICAgICAgcmV0dXJuIFtrZXksIG9iamVjdFtrZXldXTtcXG4gICAgfSk7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRyaW1gLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gdHJpbS5cXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRyaW1tZWQgc3RyaW5nLlxcbiAgICovXFxuICBmdW5jdGlvbiBiYXNlVHJpbShzdHJpbmcpIHtcXG4gICAgcmV0dXJuIHN0cmluZ1xcbiAgICAgID8gc3RyaW5nLnNsaWNlKDAsIHRyaW1tZWRFbmRJbmRleChzdHJpbmcpICsgMSkucmVwbGFjZShyZVRyaW1TdGFydCwgJycpXFxuICAgICAgOiBzdHJpbmc7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuYXJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIHN0b3JpbmcgbWV0YWRhdGEuXFxuICAgKlxcbiAgICogQHByaXZhdGVcXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNhcCBhcmd1bWVudHMgZm9yLlxcbiAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY2FwcGVkIGZ1bmN0aW9uLlxcbiAgICovXFxuICBmdW5jdGlvbiBiYXNlVW5hcnkoZnVuYykge1xcbiAgICByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcXG4gICAgICByZXR1cm4gZnVuYyh2YWx1ZSk7XFxuICAgIH07XFxuICB9XFxuXFxuICAvKipcXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnZhbHVlc2AgYW5kIGBfLnZhbHVlc0luYCB3aGljaCBjcmVhdGVzIGFuXFxuICAgKiBhcnJheSBvZiBgb2JqZWN0YCBwcm9wZXJ0eSB2YWx1ZXMgY29ycmVzcG9uZGluZyB0byB0aGUgcHJvcGVydHkgbmFtZXNcXG4gICAqIG9mIGBwcm9wc2AuXFxuICAgKlxcbiAgICogQHByaXZhdGVcXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cXG4gICAqIEBwYXJhbSB7QXJyYXl9IHByb3BzIFRoZSBwcm9wZXJ0eSBuYW1lcyB0byBnZXQgdmFsdWVzIGZvci5cXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IHZhbHVlcy5cXG4gICAqL1xcbiAgZnVuY3Rpb24gYmFzZVZhbHVlcyhvYmplY3QsIHByb3BzKSB7XFxuICAgIHJldHVybiBhcnJheU1hcChwcm9wcywgZnVuY3Rpb24oa2V5KSB7XFxuICAgICAgcmV0dXJuIG9iamVjdFtrZXldO1xcbiAgICB9KTtcXG4gIH1cXG5cXG4gIC8qKlxcbiAgICogQ2hlY2tzIGlmIGEgYGNhY2hlYCB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge09iamVjdH0gY2FjaGUgVGhlIGNhY2hlIHRvIHF1ZXJ5LlxcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXFxuICAgKi9cXG4gIGZ1bmN0aW9uIGNhY2hlSGFzKGNhY2hlLCBrZXkpIHtcXG4gICAgcmV0dXJuIGNhY2hlLmhhcyhrZXkpO1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBVc2VkIGJ5IGBfLnRyaW1gIGFuZCBgXy50cmltU3RhcnRgIHRvIGdldCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IHN0cmluZyBzeW1ib2xcXG4gICAqIHRoYXQgaXMgbm90IGZvdW5kIGluIHRoZSBjaGFyYWN0ZXIgc3ltYm9scy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtBcnJheX0gc3RyU3ltYm9scyBUaGUgc3RyaW5nIHN5bWJvbHMgdG8gaW5zcGVjdC5cXG4gICAqIEBwYXJhbSB7QXJyYXl9IGNoclN5bWJvbHMgVGhlIGNoYXJhY3RlciBzeW1ib2xzIHRvIGZpbmQuXFxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgdW5tYXRjaGVkIHN0cmluZyBzeW1ib2wuXFxuICAgKi9cXG4gIGZ1bmN0aW9uIGNoYXJzU3RhcnRJbmRleChzdHJTeW1ib2xzLCBjaHJTeW1ib2xzKSB7XFxuICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgbGVuZ3RoID0gc3RyU3ltYm9scy5sZW5ndGg7XFxuXFxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoICYmIGJhc2VJbmRleE9mKGNoclN5bWJvbHMsIHN0clN5bWJvbHNbaW5kZXhdLCAwKSA+IC0xKSB7fVxcbiAgICByZXR1cm4gaW5kZXg7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIFVzZWQgYnkgYF8udHJpbWAgYW5kIGBfLnRyaW1FbmRgIHRvIGdldCB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgc3RyaW5nIHN5bWJvbFxcbiAgICogdGhhdCBpcyBub3QgZm91bmQgaW4gdGhlIGNoYXJhY3RlciBzeW1ib2xzLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge0FycmF5fSBzdHJTeW1ib2xzIFRoZSBzdHJpbmcgc3ltYm9scyB0byBpbnNwZWN0LlxcbiAgICogQHBhcmFtIHtBcnJheX0gY2hyU3ltYm9scyBUaGUgY2hhcmFjdGVyIHN5bWJvbHMgdG8gZmluZC5cXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IHVubWF0Y2hlZCBzdHJpbmcgc3ltYm9sLlxcbiAgICovXFxuICBmdW5jdGlvbiBjaGFyc0VuZEluZGV4KHN0clN5bWJvbHMsIGNoclN5bWJvbHMpIHtcXG4gICAgdmFyIGluZGV4ID0gc3RyU3ltYm9scy5sZW5ndGg7XFxuXFxuICAgIHdoaWxlIChpbmRleC0tICYmIGJhc2VJbmRleE9mKGNoclN5bWJvbHMsIHN0clN5bWJvbHNbaW5kZXhdLCAwKSA+IC0xKSB7fVxcbiAgICByZXR1cm4gaW5kZXg7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIEdldHMgdGhlIG51bWJlciBvZiBgcGxhY2Vob2xkZXJgIG9jY3VycmVuY2VzIGluIGBhcnJheWAuXFxuICAgKlxcbiAgICogQHByaXZhdGVcXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxcbiAgICogQHBhcmFtIHsqfSBwbGFjZWhvbGRlciBUaGUgcGxhY2Vob2xkZXIgdG8gc2VhcmNoIGZvci5cXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHBsYWNlaG9sZGVyIGNvdW50LlxcbiAgICovXFxuICBmdW5jdGlvbiBjb3VudEhvbGRlcnMoYXJyYXksIHBsYWNlaG9sZGVyKSB7XFxuICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsXFxuICAgICAgICByZXN1bHQgPSAwO1xcblxcbiAgICB3aGlsZSAobGVuZ3RoLS0pIHtcXG4gICAgICBpZiAoYXJyYXlbbGVuZ3RoXSA9PT0gcGxhY2Vob2xkZXIpIHtcXG4gICAgICAgICsrcmVzdWx0O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgICByZXR1cm4gcmVzdWx0O1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBVc2VkIGJ5IGBfLmRlYnVycmAgdG8gY29udmVydCBMYXRpbi0xIFN1cHBsZW1lbnQgYW5kIExhdGluIEV4dGVuZGVkLUFcXG4gICAqIGxldHRlcnMgdG8gYmFzaWMgTGF0aW4gbGV0dGVycy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtzdHJpbmd9IGxldHRlciBUaGUgbWF0Y2hlZCBsZXR0ZXIgdG8gZGVidXJyLlxcbiAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZGVidXJyZWQgbGV0dGVyLlxcbiAgICovXFxuICB2YXIgZGVidXJyTGV0dGVyID0gYmFzZVByb3BlcnR5T2YoZGVidXJyZWRMZXR0ZXJzKTtcXG5cXG4gIC8qKlxcbiAgICogVXNlZCBieSBgXy5lc2NhcGVgIHRvIGNvbnZlcnQgY2hhcmFjdGVycyB0byBIVE1MIGVudGl0aWVzLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2hyIFRoZSBtYXRjaGVkIGNoYXJhY3RlciB0byBlc2NhcGUuXFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIGNoYXJhY3Rlci5cXG4gICAqL1xcbiAgdmFyIGVzY2FwZUh0bWxDaGFyID0gYmFzZVByb3BlcnR5T2YoaHRtbEVzY2FwZXMpO1xcblxcbiAgLyoqXFxuICAgKiBVc2VkIGJ5IGBfLnRlbXBsYXRlYCB0byBlc2NhcGUgY2hhcmFjdGVycyBmb3IgaW5jbHVzaW9uIGluIGNvbXBpbGVkIHN0cmluZyBsaXRlcmFscy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNociBUaGUgbWF0Y2hlZCBjaGFyYWN0ZXIgdG8gZXNjYXBlLlxcbiAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBjaGFyYWN0ZXIuXFxuICAgKi9cXG4gIGZ1bmN0aW9uIGVzY2FwZVN0cmluZ0NoYXIoY2hyKSB7XFxuICAgIHJldHVybiAnXFxcXFxcXFwnICsgc3RyaW5nRXNjYXBlc1tjaHJdO1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBHZXRzIHRoZSB2YWx1ZSBhdCBga2V5YCBvZiBgb2JqZWN0YC5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkuXFxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cXG4gICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZS5cXG4gICAqL1xcbiAgZnVuY3Rpb24gZ2V0VmFsdWUob2JqZWN0LCBrZXkpIHtcXG4gICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XFxuICB9XFxuXFxuICAvKipcXG4gICAqIENoZWNrcyBpZiBgc3RyaW5nYCBjb250YWlucyBVbmljb2RlIHN5bWJvbHMuXFxuICAgKlxcbiAgICogQHByaXZhdGVcXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBpbnNwZWN0LlxcbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGEgc3ltYm9sIGlzIGZvdW5kLCBlbHNlIGBmYWxzZWAuXFxuICAgKi9cXG4gIGZ1bmN0aW9uIGhhc1VuaWNvZGUoc3RyaW5nKSB7XFxuICAgIHJldHVybiByZUhhc1VuaWNvZGUudGVzdChzdHJpbmcpO1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBDaGVja3MgaWYgYHN0cmluZ2AgY29udGFpbnMgYSB3b3JkIGNvbXBvc2VkIG9mIFVuaWNvZGUgc3ltYm9scy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYSB3b3JkIGlzIGZvdW5kLCBlbHNlIGBmYWxzZWAuXFxuICAgKi9cXG4gIGZ1bmN0aW9uIGhhc1VuaWNvZGVXb3JkKHN0cmluZykge1xcbiAgICByZXR1cm4gcmVIYXNVbmljb2RlV29yZC50ZXN0KHN0cmluZyk7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIENvbnZlcnRzIGBpdGVyYXRvcmAgdG8gYW4gYXJyYXkuXFxuICAgKlxcbiAgICogQHByaXZhdGVcXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBpdGVyYXRvciBUaGUgaXRlcmF0b3IgdG8gY29udmVydC5cXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY29udmVydGVkIGFycmF5LlxcbiAgICovXFxuICBmdW5jdGlvbiBpdGVyYXRvclRvQXJyYXkoaXRlcmF0b3IpIHtcXG4gICAgdmFyIGRhdGEsXFxuICAgICAgICByZXN1bHQgPSBbXTtcXG5cXG4gICAgd2hpbGUgKCEoZGF0YSA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xcbiAgICAgIHJlc3VsdC5wdXNoKGRhdGEudmFsdWUpO1xcbiAgICB9XFxuICAgIHJldHVybiByZXN1bHQ7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIENvbnZlcnRzIGBtYXBgIHRvIGl0cyBrZXktdmFsdWUgcGFpcnMuXFxuICAgKlxcbiAgICogQHByaXZhdGVcXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBtYXAgVGhlIG1hcCB0byBjb252ZXJ0LlxcbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBrZXktdmFsdWUgcGFpcnMuXFxuICAgKi9cXG4gIGZ1bmN0aW9uIG1hcFRvQXJyYXkobWFwKSB7XFxuICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgcmVzdWx0ID0gQXJyYXkobWFwLnNpemUpO1xcblxcbiAgICBtYXAuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSwga2V5KSB7XFxuICAgICAgcmVzdWx0WysraW5kZXhdID0gW2tleSwgdmFsdWVdO1xcbiAgICB9KTtcXG4gICAgcmV0dXJuIHJlc3VsdDtcXG4gIH1cXG5cXG4gIC8qKlxcbiAgICogQ3JlYXRlcyBhIHVuYXJ5IGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBpdHMgYXJndW1lbnQgdHJhbnNmb3JtZWQuXFxuICAgKlxcbiAgICogQHByaXZhdGVcXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHdyYXAuXFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB0cmFuc2Zvcm0gVGhlIGFyZ3VtZW50IHRyYW5zZm9ybS5cXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxcbiAgICovXFxuICBmdW5jdGlvbiBvdmVyQXJnKGZ1bmMsIHRyYW5zZm9ybSkge1xcbiAgICByZXR1cm4gZnVuY3Rpb24oYXJnKSB7XFxuICAgICAgcmV0dXJuIGZ1bmModHJhbnNmb3JtKGFyZykpO1xcbiAgICB9O1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBSZXBsYWNlcyBhbGwgYHBsYWNlaG9sZGVyYCBlbGVtZW50cyBpbiBgYXJyYXlgIHdpdGggYW4gaW50ZXJuYWwgcGxhY2Vob2xkZXJcXG4gICAqIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIHRoZWlyIGluZGV4ZXMuXFxuICAgKlxcbiAgICogQHByaXZhdGVcXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXFxuICAgKiBAcGFyYW0geyp9IHBsYWNlaG9sZGVyIFRoZSBwbGFjZWhvbGRlciB0byByZXBsYWNlLlxcbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgcGxhY2Vob2xkZXIgaW5kZXhlcy5cXG4gICAqL1xcbiAgZnVuY3Rpb24gcmVwbGFjZUhvbGRlcnMoYXJyYXksIHBsYWNlaG9sZGVyKSB7XFxuICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxcbiAgICAgICAgcmVzSW5kZXggPSAwLFxcbiAgICAgICAgcmVzdWx0ID0gW107XFxuXFxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xcbiAgICAgIGlmICh2YWx1ZSA9PT0gcGxhY2Vob2xkZXIgfHwgdmFsdWUgPT09IFBMQUNFSE9MREVSKSB7XFxuICAgICAgICBhcnJheVtpbmRleF0gPSBQTEFDRUhPTERFUjtcXG4gICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IGluZGV4O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgICByZXR1cm4gcmVzdWx0O1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBDb252ZXJ0cyBgc2V0YCB0byBhbiBhcnJheSBvZiBpdHMgdmFsdWVzLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge09iamVjdH0gc2V0IFRoZSBzZXQgdG8gY29udmVydC5cXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgdmFsdWVzLlxcbiAgICovXFxuICBmdW5jdGlvbiBzZXRUb0FycmF5KHNldCkge1xcbiAgICB2YXIgaW5kZXggPSAtMSxcXG4gICAgICAgIHJlc3VsdCA9IEFycmF5KHNldC5zaXplKTtcXG5cXG4gICAgc2V0LmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHtcXG4gICAgICByZXN1bHRbKytpbmRleF0gPSB2YWx1ZTtcXG4gICAgfSk7XFxuICAgIHJldHVybiByZXN1bHQ7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIENvbnZlcnRzIGBzZXRgIHRvIGl0cyB2YWx1ZS12YWx1ZSBwYWlycy5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtPYmplY3R9IHNldCBUaGUgc2V0IHRvIGNvbnZlcnQuXFxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHZhbHVlLXZhbHVlIHBhaXJzLlxcbiAgICovXFxuICBmdW5jdGlvbiBzZXRUb1BhaXJzKHNldCkge1xcbiAgICB2YXIgaW5kZXggPSAtMSxcXG4gICAgICAgIHJlc3VsdCA9IEFycmF5KHNldC5zaXplKTtcXG5cXG4gICAgc2V0LmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHtcXG4gICAgICByZXN1bHRbKytpbmRleF0gPSBbdmFsdWUsIHZhbHVlXTtcXG4gICAgfSk7XFxuICAgIHJldHVybiByZXN1bHQ7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5pbmRleE9mYCB3aGljaCBwZXJmb3JtcyBzdHJpY3QgZXF1YWxpdHlcXG4gICAqIGNvbXBhcmlzb25zIG9mIHZhbHVlcywgaS5lLiBgPT09YC5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXFxuICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxcbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXFxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxcbiAgICovXFxuICBmdW5jdGlvbiBzdHJpY3RJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XFxuICAgIHZhciBpbmRleCA9IGZyb21JbmRleCAtIDEsXFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XFxuXFxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgaWYgKGFycmF5W2luZGV4XSA9PT0gdmFsdWUpIHtcXG4gICAgICAgIHJldHVybiBpbmRleDtcXG4gICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIC0xO1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ubGFzdEluZGV4T2ZgIHdoaWNoIHBlcmZvcm1zIHN0cmljdCBlcXVhbGl0eVxcbiAgICogY29tcGFyaXNvbnMgb2YgdmFsdWVzLCBpLmUuIGA9PT1gLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cXG4gICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXFxuICAgKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXFxuICAgKi9cXG4gIGZ1bmN0aW9uIHN0cmljdExhc3RJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XFxuICAgIHZhciBpbmRleCA9IGZyb21JbmRleCArIDE7XFxuICAgIHdoaWxlIChpbmRleC0tKSB7XFxuICAgICAgaWYgKGFycmF5W2luZGV4XSA9PT0gdmFsdWUpIHtcXG4gICAgICAgIHJldHVybiBpbmRleDtcXG4gICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIGluZGV4O1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBHZXRzIHRoZSBudW1iZXIgb2Ygc3ltYm9scyBpbiBgc3RyaW5nYC5cXG4gICAqXFxuICAgKiBAcHJpdmF0ZVxcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXFxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzdHJpbmcgc2l6ZS5cXG4gICAqL1xcbiAgZnVuY3Rpb24gc3RyaW5nU2l6ZShzdHJpbmcpIHtcXG4gICAgcmV0dXJuIGhhc1VuaWNvZGUoc3RyaW5nKVxcbiAgICAgID8gdW5pY29kZVNpemUoc3RyaW5nKVxcbiAgICAgIDogYXNjaWlTaXplKHN0cmluZyk7XFxuICB9XFxuXFxuICAvKipcXG4gICAqIENvbnZlcnRzIGBzdHJpbmdgIHRvIGFuIGFycmF5LlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gY29udmVydC5cXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY29udmVydGVkIGFycmF5LlxcbiAgICovXFxuICBmdW5jdGlvbiBzdHJpbmdUb0FycmF5KHN0cmluZykge1xcbiAgICByZXR1cm4gaGFzVW5pY29kZShzdHJpbmcpXFxuICAgICAgPyB1bmljb2RlVG9BcnJheShzdHJpbmcpXFxuICAgICAgOiBhc2NpaVRvQXJyYXkoc3RyaW5nKTtcXG4gIH1cXG5cXG4gIC8qKlxcbiAgICogVXNlZCBieSBgXy50cmltYCBhbmQgYF8udHJpbUVuZGAgdG8gZ2V0IHRoZSBpbmRleCBvZiB0aGUgbGFzdCBub24td2hpdGVzcGFjZVxcbiAgICogY2hhcmFjdGVyIG9mIGBzdHJpbmdgLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3Rlci5cXG4gICAqL1xcbiAgZnVuY3Rpb24gdHJpbW1lZEVuZEluZGV4KHN0cmluZykge1xcbiAgICB2YXIgaW5kZXggPSBzdHJpbmcubGVuZ3RoO1xcblxcbiAgICB3aGlsZSAoaW5kZXgtLSAmJiByZVdoaXRlc3BhY2UudGVzdChzdHJpbmcuY2hhckF0KGluZGV4KSkpIHt9XFxuICAgIHJldHVybiBpbmRleDtcXG4gIH1cXG5cXG4gIC8qKlxcbiAgICogVXNlZCBieSBgXy51bmVzY2FwZWAgdG8gY29udmVydCBIVE1MIGVudGl0aWVzIHRvIGNoYXJhY3RlcnMuXFxuICAgKlxcbiAgICogQHByaXZhdGVcXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaHIgVGhlIG1hdGNoZWQgY2hhcmFjdGVyIHRvIHVuZXNjYXBlLlxcbiAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdW5lc2NhcGVkIGNoYXJhY3Rlci5cXG4gICAqL1xcbiAgdmFyIHVuZXNjYXBlSHRtbENoYXIgPSBiYXNlUHJvcGVydHlPZihodG1sVW5lc2NhcGVzKTtcXG5cXG4gIC8qKlxcbiAgICogR2V0cyB0aGUgc2l6ZSBvZiBhIFVuaWNvZGUgYHN0cmluZ2AuXFxuICAgKlxcbiAgICogQHByaXZhdGVcXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyBpbnNwZWN0LlxcbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc3RyaW5nIHNpemUuXFxuICAgKi9cXG4gIGZ1bmN0aW9uIHVuaWNvZGVTaXplKHN0cmluZykge1xcbiAgICB2YXIgcmVzdWx0ID0gcmVVbmljb2RlLmxhc3RJbmRleCA9IDA7XFxuICAgIHdoaWxlIChyZVVuaWNvZGUudGVzdChzdHJpbmcpKSB7XFxuICAgICAgKytyZXN1bHQ7XFxuICAgIH1cXG4gICAgcmV0dXJuIHJlc3VsdDtcXG4gIH1cXG5cXG4gIC8qKlxcbiAgICogQ29udmVydHMgYSBVbmljb2RlIGBzdHJpbmdgIHRvIGFuIGFycmF5LlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gY29udmVydC5cXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY29udmVydGVkIGFycmF5LlxcbiAgICovXFxuICBmdW5jdGlvbiB1bmljb2RlVG9BcnJheShzdHJpbmcpIHtcXG4gICAgcmV0dXJuIHN0cmluZy5tYXRjaChyZVVuaWNvZGUpIHx8IFtdO1xcbiAgfVxcblxcbiAgLyoqXFxuICAgKiBTcGxpdHMgYSBVbmljb2RlIGBzdHJpbmdgIGludG8gYW4gYXJyYXkgb2YgaXRzIHdvcmRzLlxcbiAgICpcXG4gICAqIEBwcml2YXRlXFxuICAgKiBAcGFyYW0ge3N0cmluZ30gVGhlIHN0cmluZyB0byBpbnNwZWN0LlxcbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSB3b3JkcyBvZiBgc3RyaW5nYC5cXG4gICAqL1xcbiAgZnVuY3Rpb24gdW5pY29kZVdvcmRzKHN0cmluZykge1xcbiAgICByZXR1cm4gc3RyaW5nLm1hdGNoKHJlVW5pY29kZVdvcmQpIHx8IFtdO1xcbiAgfVxcblxcbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXFxuXFxuICAvKipcXG4gICAqIENyZWF0ZSBhIG5ldyBwcmlzdGluZSBgbG9kYXNoYCBmdW5jdGlvbiB1c2luZyB0aGUgYGNvbnRleHRgIG9iamVjdC5cXG4gICAqXFxuICAgKiBAc3RhdGljXFxuICAgKiBAbWVtYmVyT2YgX1xcbiAgICogQHNpbmNlIDEuMS4wXFxuICAgKiBAY2F0ZWdvcnkgVXRpbFxcbiAgICogQHBhcmFtIHtPYmplY3R9IFtjb250ZXh0PXJvb3RdIFRoZSBjb250ZXh0IG9iamVjdC5cXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBhIG5ldyBgbG9kYXNoYCBmdW5jdGlvbi5cXG4gICAqIEBleGFtcGxlXFxuICAgKlxcbiAgICogXy5taXhpbih7ICdmb28nOiBfLmNvbnN0YW50KCdmb28nKSB9KTtcXG4gICAqXFxuICAgKiB2YXIgbG9kYXNoID0gXy5ydW5JbkNvbnRleHQoKTtcXG4gICAqIGxvZGFzaC5taXhpbih7ICdiYXInOiBsb2Rhc2guY29uc3RhbnQoJ2JhcicpIH0pO1xcbiAgICpcXG4gICAqIF8uaXNGdW5jdGlvbihfLmZvbyk7XFxuICAgKiAvLyA9PiB0cnVlXFxuICAgKiBfLmlzRnVuY3Rpb24oXy5iYXIpO1xcbiAgICogLy8gPT4gZmFsc2VcXG4gICAqXFxuICAgKiBsb2Rhc2guaXNGdW5jdGlvbihsb2Rhc2guZm9vKTtcXG4gICAqIC8vID0+IGZhbHNlXFxuICAgKiBsb2Rhc2guaXNGdW5jdGlvbihsb2Rhc2guYmFyKTtcXG4gICAqIC8vID0+IHRydWVcXG4gICAqXFxuICAgKiAvLyBDcmVhdGUgYSBzdXBlZC11cCBgZGVmZXJgIGluIE5vZGUuanMuXFxuICAgKiB2YXIgZGVmZXIgPSBfLnJ1bkluQ29udGV4dCh7ICdzZXRUaW1lb3V0Jzogc2V0SW1tZWRpYXRlIH0pLmRlZmVyO1xcbiAgICovXFxuICB2YXIgcnVuSW5Db250ZXh0ID0gKGZ1bmN0aW9uIHJ1bkluQ29udGV4dChjb250ZXh0KSB7XFxuICAgIGNvbnRleHQgPSBjb250ZXh0ID09IG51bGwgPyByb290IDogXy5kZWZhdWx0cyhyb290Lk9iamVjdCgpLCBjb250ZXh0LCBfLnBpY2socm9vdCwgY29udGV4dFByb3BzKSk7XFxuXFxuICAgIC8qKiBCdWlsdC1pbiBjb25zdHJ1Y3RvciByZWZlcmVuY2VzLiAqL1xcbiAgICB2YXIgQXJyYXkgPSBjb250ZXh0LkFycmF5LFxcbiAgICAgICAgRGF0ZSA9IGNvbnRleHQuRGF0ZSxcXG4gICAgICAgIEVycm9yID0gY29udGV4dC5FcnJvcixcXG4gICAgICAgIEZ1bmN0aW9uID0gY29udGV4dC5GdW5jdGlvbixcXG4gICAgICAgIE1hdGggPSBjb250ZXh0Lk1hdGgsXFxuICAgICAgICBPYmplY3QgPSBjb250ZXh0Lk9iamVjdCxcXG4gICAgICAgIFJlZ0V4cCA9IGNvbnRleHQuUmVnRXhwLFxcbiAgICAgICAgU3RyaW5nID0gY29udGV4dC5TdHJpbmcsXFxuICAgICAgICBUeXBlRXJyb3IgPSBjb250ZXh0LlR5cGVFcnJvcjtcXG5cXG4gICAgLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xcbiAgICB2YXIgYXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZSxcXG4gICAgICAgIGZ1bmNQcm90byA9IEZ1bmN0aW9uLnByb3RvdHlwZSxcXG4gICAgICAgIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcXG5cXG4gICAgLyoqIFVzZWQgdG8gZGV0ZWN0IG92ZXJyZWFjaGluZyBjb3JlLWpzIHNoaW1zLiAqL1xcbiAgICB2YXIgY29yZUpzRGF0YSA9IGNvbnRleHRbJ19fY29yZS1qc19zaGFyZWRfXyddO1xcblxcbiAgICAvKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXFxuICAgIHZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XFxuXFxuICAgIC8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xcbiAgICB2YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcXG5cXG4gICAgLyoqIFVzZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIElEcy4gKi9cXG4gICAgdmFyIGlkQ291bnRlciA9IDA7XFxuXFxuICAgIC8qKiBVc2VkIHRvIGRldGVjdCBtZXRob2RzIG1hc3F1ZXJhZGluZyBhcyBuYXRpdmUuICovXFxuICAgIHZhciBtYXNrU3JjS2V5ID0gKGZ1bmN0aW9uKCkge1xcbiAgICAgIHZhciB1aWQgPSAvW14uXSskLy5leGVjKGNvcmVKc0RhdGEgJiYgY29yZUpzRGF0YS5rZXlzICYmIGNvcmVKc0RhdGEua2V5cy5JRV9QUk9UTyB8fCAnJyk7XFxuICAgICAgcmV0dXJuIHVpZCA/ICgnU3ltYm9sKHNyYylfMS4nICsgdWlkKSA6ICcnO1xcbiAgICB9KCkpO1xcblxcbiAgICAvKipcXG4gICAgICogVXNlZCB0byByZXNvbHZlIHRoZVxcbiAgICAgKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcXG4gICAgICogb2YgdmFsdWVzLlxcbiAgICAgKi9cXG4gICAgdmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XFxuXFxuICAgIC8qKiBVc2VkIHRvIGluZmVyIHRoZSBgT2JqZWN0YCBjb25zdHJ1Y3Rvci4gKi9cXG4gICAgdmFyIG9iamVjdEN0b3JTdHJpbmcgPSBmdW5jVG9TdHJpbmcuY2FsbChPYmplY3QpO1xcblxcbiAgICAvKiogVXNlZCB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBgX2AgcmVmZXJlbmNlIGluIGBfLm5vQ29uZmxpY3RgLiAqL1xcbiAgICB2YXIgb2xkRGFzaCA9IHJvb3QuXztcXG5cXG4gICAgLyoqIFVzZWQgdG8gZGV0ZWN0IGlmIGEgbWV0aG9kIGlzIG5hdGl2ZS4gKi9cXG4gICAgdmFyIHJlSXNOYXRpdmUgPSBSZWdFeHAoJ14nICtcXG4gICAgICBmdW5jVG9TdHJpbmcuY2FsbChoYXNPd25Qcm9wZXJ0eSkucmVwbGFjZShyZVJlZ0V4cENoYXIsICdcXFxcXFxcXCQmJylcXG4gICAgICAucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXFxcXFxcXFxcXCgpfCBmb3IgLis/KD89XFxcXFxcXFxcXFxcXSkvZywgJyQxLio/JykgKyAnJCdcXG4gICAgKTtcXG5cXG4gICAgLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXFxuICAgIHZhciBCdWZmZXIgPSBtb2R1bGVFeHBvcnRzID8gY29udGV4dC5CdWZmZXIgOiB1bmRlZmluZWQsXFxuICAgICAgICBTeW1ib2wgPSBjb250ZXh0LlN5bWJvbCxcXG4gICAgICAgIFVpbnQ4QXJyYXkgPSBjb250ZXh0LlVpbnQ4QXJyYXksXFxuICAgICAgICBhbGxvY1Vuc2FmZSA9IEJ1ZmZlciA/IEJ1ZmZlci5hbGxvY1Vuc2FmZSA6IHVuZGVmaW5lZCxcXG4gICAgICAgIGdldFByb3RvdHlwZSA9IG92ZXJBcmcoT2JqZWN0LmdldFByb3RvdHlwZU9mLCBPYmplY3QpLFxcbiAgICAgICAgb2JqZWN0Q3JlYXRlID0gT2JqZWN0LmNyZWF0ZSxcXG4gICAgICAgIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gb2JqZWN0UHJvdG8ucHJvcGVydHlJc0VudW1lcmFibGUsXFxuICAgICAgICBzcGxpY2UgPSBhcnJheVByb3RvLnNwbGljZSxcXG4gICAgICAgIHNwcmVhZGFibGVTeW1ib2wgPSBTeW1ib2wgPyBTeW1ib2wuaXNDb25jYXRTcHJlYWRhYmxlIDogdW5kZWZpbmVkLFxcbiAgICAgICAgc3ltSXRlcmF0b3IgPSBTeW1ib2wgPyBTeW1ib2wuaXRlcmF0b3IgOiB1bmRlZmluZWQsXFxuICAgICAgICBzeW1Ub1N0cmluZ1RhZyA9IFN5bWJvbCA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcXG5cXG4gICAgdmFyIGRlZmluZVByb3BlcnR5ID0gKGZ1bmN0aW9uKCkge1xcbiAgICAgIHRyeSB7XFxuICAgICAgICB2YXIgZnVuYyA9IGdldE5hdGl2ZShPYmplY3QsICdkZWZpbmVQcm9wZXJ0eScpO1xcbiAgICAgICAgZnVuYyh7fSwgJycsIHt9KTtcXG4gICAgICAgIHJldHVybiBmdW5jO1xcbiAgICAgIH0gY2F0Y2ggKGUpIHt9XFxuICAgIH0oKSk7XFxuXFxuICAgIC8qKiBNb2NrZWQgYnVpbHQtaW5zLiAqL1xcbiAgICB2YXIgY3R4Q2xlYXJUaW1lb3V0ID0gY29udGV4dC5jbGVhclRpbWVvdXQgIT09IHJvb3QuY2xlYXJUaW1lb3V0ICYmIGNvbnRleHQuY2xlYXJUaW1lb3V0LFxcbiAgICAgICAgY3R4Tm93ID0gRGF0ZSAmJiBEYXRlLm5vdyAhPT0gcm9vdC5EYXRlLm5vdyAmJiBEYXRlLm5vdyxcXG4gICAgICAgIGN0eFNldFRpbWVvdXQgPSBjb250ZXh0LnNldFRpbWVvdXQgIT09IHJvb3Quc2V0VGltZW91dCAmJiBjb250ZXh0LnNldFRpbWVvdXQ7XFxuXFxuICAgIC8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cXG4gICAgdmFyIG5hdGl2ZUNlaWwgPSBNYXRoLmNlaWwsXFxuICAgICAgICBuYXRpdmVGbG9vciA9IE1hdGguZmxvb3IsXFxuICAgICAgICBuYXRpdmVHZXRTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxcXG4gICAgICAgIG5hdGl2ZUlzQnVmZmVyID0gQnVmZmVyID8gQnVmZmVyLmlzQnVmZmVyIDogdW5kZWZpbmVkLFxcbiAgICAgICAgbmF0aXZlSXNGaW5pdGUgPSBjb250ZXh0LmlzRmluaXRlLFxcbiAgICAgICAgbmF0aXZlSm9pbiA9IGFycmF5UHJvdG8uam9pbixcXG4gICAgICAgIG5hdGl2ZUtleXMgPSBvdmVyQXJnKE9iamVjdC5rZXlzLCBPYmplY3QpLFxcbiAgICAgICAgbmF0aXZlTWF4ID0gTWF0aC5tYXgsXFxuICAgICAgICBuYXRpdmVNaW4gPSBNYXRoLm1pbixcXG4gICAgICAgIG5hdGl2ZU5vdyA9IERhdGUubm93LFxcbiAgICAgICAgbmF0aXZlUGFyc2VJbnQgPSBjb250ZXh0LnBhcnNlSW50LFxcbiAgICAgICAgbmF0aXZlUmFuZG9tID0gTWF0aC5yYW5kb20sXFxuICAgICAgICBuYXRpdmVSZXZlcnNlID0gYXJyYXlQcm90by5yZXZlcnNlO1xcblxcbiAgICAvKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXFxuICAgIHZhciBEYXRhVmlldyA9IGdldE5hdGl2ZShjb250ZXh0LCAnRGF0YVZpZXcnKSxcXG4gICAgICAgIE1hcCA9IGdldE5hdGl2ZShjb250ZXh0LCAnTWFwJyksXFxuICAgICAgICBQcm9taXNlID0gZ2V0TmF0aXZlKGNvbnRleHQsICdQcm9taXNlJyksXFxuICAgICAgICBTZXQgPSBnZXROYXRpdmUoY29udGV4dCwgJ1NldCcpLFxcbiAgICAgICAgV2Vha01hcCA9IGdldE5hdGl2ZShjb250ZXh0LCAnV2Vha01hcCcpLFxcbiAgICAgICAgbmF0aXZlQ3JlYXRlID0gZ2V0TmF0aXZlKE9iamVjdCwgJ2NyZWF0ZScpO1xcblxcbiAgICAvKiogVXNlZCB0byBzdG9yZSBmdW5jdGlvbiBtZXRhZGF0YS4gKi9cXG4gICAgdmFyIG1ldGFNYXAgPSBXZWFrTWFwICYmIG5ldyBXZWFrTWFwO1xcblxcbiAgICAvKiogVXNlZCB0byBsb29rdXAgdW5taW5pZmllZCBmdW5jdGlvbiBuYW1lcy4gKi9cXG4gICAgdmFyIHJlYWxOYW1lcyA9IHt9O1xcblxcbiAgICAvKiogVXNlZCB0byBkZXRlY3QgbWFwcywgc2V0cywgYW5kIHdlYWttYXBzLiAqL1xcbiAgICB2YXIgZGF0YVZpZXdDdG9yU3RyaW5nID0gdG9Tb3VyY2UoRGF0YVZpZXcpLFxcbiAgICAgICAgbWFwQ3RvclN0cmluZyA9IHRvU291cmNlKE1hcCksXFxuICAgICAgICBwcm9taXNlQ3RvclN0cmluZyA9IHRvU291cmNlKFByb21pc2UpLFxcbiAgICAgICAgc2V0Q3RvclN0cmluZyA9IHRvU291cmNlKFNldCksXFxuICAgICAgICB3ZWFrTWFwQ3RvclN0cmluZyA9IHRvU291cmNlKFdlYWtNYXApO1xcblxcbiAgICAvKiogVXNlZCB0byBjb252ZXJ0IHN5bWJvbHMgdG8gcHJpbWl0aXZlcyBhbmQgc3RyaW5ncy4gKi9cXG4gICAgdmFyIHN5bWJvbFByb3RvID0gU3ltYm9sID8gU3ltYm9sLnByb3RvdHlwZSA6IHVuZGVmaW5lZCxcXG4gICAgICAgIHN5bWJvbFZhbHVlT2YgPSBzeW1ib2xQcm90byA/IHN5bWJvbFByb3RvLnZhbHVlT2YgOiB1bmRlZmluZWQsXFxuICAgICAgICBzeW1ib2xUb1N0cmluZyA9IHN5bWJvbFByb3RvID8gc3ltYm9sUHJvdG8udG9TdHJpbmcgOiB1bmRlZmluZWQ7XFxuXFxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBgbG9kYXNoYCBvYmplY3Qgd2hpY2ggd3JhcHMgYHZhbHVlYCB0byBlbmFibGUgaW1wbGljaXQgbWV0aG9kXFxuICAgICAqIGNoYWluIHNlcXVlbmNlcy4gTWV0aG9kcyB0aGF0IG9wZXJhdGUgb24gYW5kIHJldHVybiBhcnJheXMsIGNvbGxlY3Rpb25zLFxcbiAgICAgKiBhbmQgZnVuY3Rpb25zIGNhbiBiZSBjaGFpbmVkIHRvZ2V0aGVyLiBNZXRob2RzIHRoYXQgcmV0cmlldmUgYSBzaW5nbGUgdmFsdWVcXG4gICAgICogb3IgbWF5IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZSB3aWxsIGF1dG9tYXRpY2FsbHkgZW5kIHRoZSBjaGFpbiBzZXF1ZW5jZVxcbiAgICAgKiBhbmQgcmV0dXJuIHRoZSB1bndyYXBwZWQgdmFsdWUuIE90aGVyd2lzZSwgdGhlIHZhbHVlIG11c3QgYmUgdW53cmFwcGVkXFxuICAgICAqIHdpdGggYF8jdmFsdWVgLlxcbiAgICAgKlxcbiAgICAgKiBFeHBsaWNpdCBjaGFpbiBzZXF1ZW5jZXMsIHdoaWNoIG11c3QgYmUgdW53cmFwcGVkIHdpdGggYF8jdmFsdWVgLCBtYXkgYmVcXG4gICAgICogZW5hYmxlZCB1c2luZyBgXy5jaGFpbmAuXFxuICAgICAqXFxuICAgICAqIFRoZSBleGVjdXRpb24gb2YgY2hhaW5lZCBtZXRob2RzIGlzIGxhenksIHRoYXQgaXMsIGl0J3MgZGVmZXJyZWQgdW50aWxcXG4gICAgICogYF8jdmFsdWVgIGlzIGltcGxpY2l0bHkgb3IgZXhwbGljaXRseSBjYWxsZWQuXFxuICAgICAqXFxuICAgICAqIExhenkgZXZhbHVhdGlvbiBhbGxvd3Mgc2V2ZXJhbCBtZXRob2RzIHRvIHN1cHBvcnQgc2hvcnRjdXQgZnVzaW9uLlxcbiAgICAgKiBTaG9ydGN1dCBmdXNpb24gaXMgYW4gb3B0aW1pemF0aW9uIHRvIG1lcmdlIGl0ZXJhdGVlIGNhbGxzOyB0aGlzIGF2b2lkc1xcbiAgICAgKiB0aGUgY3JlYXRpb24gb2YgaW50ZXJtZWRpYXRlIGFycmF5cyBhbmQgY2FuIGdyZWF0bHkgcmVkdWNlIHRoZSBudW1iZXIgb2ZcXG4gICAgICogaXRlcmF0ZWUgZXhlY3V0aW9ucy4gU2VjdGlvbnMgb2YgYSBjaGFpbiBzZXF1ZW5jZSBxdWFsaWZ5IGZvciBzaG9ydGN1dFxcbiAgICAgKiBmdXNpb24gaWYgdGhlIHNlY3Rpb24gaXMgYXBwbGllZCB0byBhbiBhcnJheSBhbmQgaXRlcmF0ZWVzIGFjY2VwdCBvbmx5XFxuICAgICAqIG9uZSBhcmd1bWVudC4gVGhlIGhldXJpc3RpYyBmb3Igd2hldGhlciBhIHNlY3Rpb24gcXVhbGlmaWVzIGZvciBzaG9ydGN1dFxcbiAgICAgKiBmdXNpb24gaXMgc3ViamVjdCB0byBjaGFuZ2UuXFxuICAgICAqXFxuICAgICAqIENoYWluaW5nIGlzIHN1cHBvcnRlZCBpbiBjdXN0b20gYnVpbGRzIGFzIGxvbmcgYXMgdGhlIGBfI3ZhbHVlYCBtZXRob2QgaXNcXG4gICAgICogZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuXFxuICAgICAqXFxuICAgICAqIEluIGFkZGl0aW9uIHRvIGxvZGFzaCBtZXRob2RzLCB3cmFwcGVycyBoYXZlIGBBcnJheWAgYW5kIGBTdHJpbmdgIG1ldGhvZHMuXFxuICAgICAqXFxuICAgICAqIFRoZSB3cmFwcGVyIGBBcnJheWAgbWV0aG9kcyBhcmU6XFxuICAgICAqIGBjb25jYXRgLCBgam9pbmAsIGBwb3BgLCBgcHVzaGAsIGBzaGlmdGAsIGBzb3J0YCwgYHNwbGljZWAsIGFuZCBgdW5zaGlmdGBcXG4gICAgICpcXG4gICAgICogVGhlIHdyYXBwZXIgYFN0cmluZ2AgbWV0aG9kcyBhcmU6XFxuICAgICAqIGByZXBsYWNlYCBhbmQgYHNwbGl0YFxcbiAgICAgKlxcbiAgICAgKiBUaGUgd3JhcHBlciBtZXRob2RzIHRoYXQgc3VwcG9ydCBzaG9ydGN1dCBmdXNpb24gYXJlOlxcbiAgICAgKiBgYXRgLCBgY29tcGFjdGAsIGBkcm9wYCwgYGRyb3BSaWdodGAsIGBkcm9wV2hpbGVgLCBgZmlsdGVyYCwgYGZpbmRgLFxcbiAgICAgKiBgZmluZExhc3RgLCBgaGVhZGAsIGBpbml0aWFsYCwgYGxhc3RgLCBgbWFwYCwgYHJlamVjdGAsIGByZXZlcnNlYCwgYHNsaWNlYCxcXG4gICAgICogYHRhaWxgLCBgdGFrZWAsIGB0YWtlUmlnaHRgLCBgdGFrZVJpZ2h0V2hpbGVgLCBgdGFrZVdoaWxlYCwgYW5kIGB0b0FycmF5YFxcbiAgICAgKlxcbiAgICAgKiBUaGUgY2hhaW5hYmxlIHdyYXBwZXIgbWV0aG9kcyBhcmU6XFxuICAgICAqIGBhZnRlcmAsIGBhcnlgLCBgYXNzaWduYCwgYGFzc2lnbkluYCwgYGFzc2lnbkluV2l0aGAsIGBhc3NpZ25XaXRoYCwgYGF0YCxcXG4gICAgICogYGJlZm9yZWAsIGBiaW5kYCwgYGJpbmRBbGxgLCBgYmluZEtleWAsIGBjYXN0QXJyYXlgLCBgY2hhaW5gLCBgY2h1bmtgLFxcbiAgICAgKiBgY29tbWl0YCwgYGNvbXBhY3RgLCBgY29uY2F0YCwgYGNvbmZvcm1zYCwgYGNvbnN0YW50YCwgYGNvdW50QnlgLCBgY3JlYXRlYCxcXG4gICAgICogYGN1cnJ5YCwgYGRlYm91bmNlYCwgYGRlZmF1bHRzYCwgYGRlZmF1bHRzRGVlcGAsIGBkZWZlcmAsIGBkZWxheWAsXFxuICAgICAqIGBkaWZmZXJlbmNlYCwgYGRpZmZlcmVuY2VCeWAsIGBkaWZmZXJlbmNlV2l0aGAsIGBkcm9wYCwgYGRyb3BSaWdodGAsXFxuICAgICAqIGBkcm9wUmlnaHRXaGlsZWAsIGBkcm9wV2hpbGVgLCBgZXh0ZW5kYCwgYGV4dGVuZFdpdGhgLCBgZmlsbGAsIGBmaWx0ZXJgLFxcbiAgICAgKiBgZmxhdE1hcGAsIGBmbGF0TWFwRGVlcGAsIGBmbGF0TWFwRGVwdGhgLCBgZmxhdHRlbmAsIGBmbGF0dGVuRGVlcGAsXFxuICAgICAqIGBmbGF0dGVuRGVwdGhgLCBgZmxpcGAsIGBmbG93YCwgYGZsb3dSaWdodGAsIGBmcm9tUGFpcnNgLCBgZnVuY3Rpb25zYCxcXG4gICAgICogYGZ1bmN0aW9uc0luYCwgYGdyb3VwQnlgLCBgaW5pdGlhbGAsIGBpbnRlcnNlY3Rpb25gLCBgaW50ZXJzZWN0aW9uQnlgLFxcbiAgICAgKiBgaW50ZXJzZWN0aW9uV2l0aGAsIGBpbnZlcnRgLCBgaW52ZXJ0QnlgLCBgaW52b2tlTWFwYCwgYGl0ZXJhdGVlYCwgYGtleUJ5YCxcXG4gICAgICogYGtleXNgLCBga2V5c0luYCwgYG1hcGAsIGBtYXBLZXlzYCwgYG1hcFZhbHVlc2AsIGBtYXRjaGVzYCwgYG1hdGNoZXNQcm9wZXJ0eWAsXFxuICAgICAqIGBtZW1vaXplYCwgYG1lcmdlYCwgYG1lcmdlV2l0aGAsIGBtZXRob2RgLCBgbWV0aG9kT2ZgLCBgbWl4aW5gLCBgbmVnYXRlYCxcXG4gICAgICogYG50aEFyZ2AsIGBvbWl0YCwgYG9taXRCeWAsIGBvbmNlYCwgYG9yZGVyQnlgLCBgb3ZlcmAsIGBvdmVyQXJnc2AsXFxuICAgICAqIGBvdmVyRXZlcnlgLCBgb3ZlclNvbWVgLCBgcGFydGlhbGAsIGBwYXJ0aWFsUmlnaHRgLCBgcGFydGl0aW9uYCwgYHBpY2tgLFxcbiAgICAgKiBgcGlja0J5YCwgYHBsYW50YCwgYHByb3BlcnR5YCwgYHByb3BlcnR5T2ZgLCBgcHVsbGAsIGBwdWxsQWxsYCwgYHB1bGxBbGxCeWAsXFxuICAgICAqIGBwdWxsQWxsV2l0aGAsIGBwdWxsQXRgLCBgcHVzaGAsIGByYW5nZWAsIGByYW5nZVJpZ2h0YCwgYHJlYXJnYCwgYHJlamVjdGAsXFxuICAgICAqIGByZW1vdmVgLCBgcmVzdGAsIGByZXZlcnNlYCwgYHNhbXBsZVNpemVgLCBgc2V0YCwgYHNldFdpdGhgLCBgc2h1ZmZsZWAsXFxuICAgICAqIGBzbGljZWAsIGBzb3J0YCwgYHNvcnRCeWAsIGBzcGxpY2VgLCBgc3ByZWFkYCwgYHRhaWxgLCBgdGFrZWAsIGB0YWtlUmlnaHRgLFxcbiAgICAgKiBgdGFrZVJpZ2h0V2hpbGVgLCBgdGFrZVdoaWxlYCwgYHRhcGAsIGB0aHJvdHRsZWAsIGB0aHJ1YCwgYHRvQXJyYXlgLFxcbiAgICAgKiBgdG9QYWlyc2AsIGB0b1BhaXJzSW5gLCBgdG9QYXRoYCwgYHRvUGxhaW5PYmplY3RgLCBgdHJhbnNmb3JtYCwgYHVuYXJ5YCxcXG4gICAgICogYHVuaW9uYCwgYHVuaW9uQnlgLCBgdW5pb25XaXRoYCwgYHVuaXFgLCBgdW5pcUJ5YCwgYHVuaXFXaXRoYCwgYHVuc2V0YCxcXG4gICAgICogYHVuc2hpZnRgLCBgdW56aXBgLCBgdW56aXBXaXRoYCwgYHVwZGF0ZWAsIGB1cGRhdGVXaXRoYCwgYHZhbHVlc2AsXFxuICAgICAqIGB2YWx1ZXNJbmAsIGB3aXRob3V0YCwgYHdyYXBgLCBgeG9yYCwgYHhvckJ5YCwgYHhvcldpdGhgLCBgemlwYCxcXG4gICAgICogYHppcE9iamVjdGAsIGB6aXBPYmplY3REZWVwYCwgYW5kIGB6aXBXaXRoYFxcbiAgICAgKlxcbiAgICAgKiBUaGUgd3JhcHBlciBtZXRob2RzIHRoYXQgYXJlICoqbm90KiogY2hhaW5hYmxlIGJ5IGRlZmF1bHQgYXJlOlxcbiAgICAgKiBgYWRkYCwgYGF0dGVtcHRgLCBgY2FtZWxDYXNlYCwgYGNhcGl0YWxpemVgLCBgY2VpbGAsIGBjbGFtcGAsIGBjbG9uZWAsXFxuICAgICAqIGBjbG9uZURlZXBgLCBgY2xvbmVEZWVwV2l0aGAsIGBjbG9uZVdpdGhgLCBgY29uZm9ybXNUb2AsIGBkZWJ1cnJgLFxcbiAgICAgKiBgZGVmYXVsdFRvYCwgYGRpdmlkZWAsIGBlYWNoYCwgYGVhY2hSaWdodGAsIGBlbmRzV2l0aGAsIGBlcWAsIGBlc2NhcGVgLFxcbiAgICAgKiBgZXNjYXBlUmVnRXhwYCwgYGV2ZXJ5YCwgYGZpbmRgLCBgZmluZEluZGV4YCwgYGZpbmRLZXlgLCBgZmluZExhc3RgLFxcbiAgICAgKiBgZmluZExhc3RJbmRleGAsIGBmaW5kTGFzdEtleWAsIGBmaXJzdGAsIGBmbG9vcmAsIGBmb3JFYWNoYCwgYGZvckVhY2hSaWdodGAsXFxuICAgICAqIGBmb3JJbmAsIGBmb3JJblJpZ2h0YCwgYGZvck93bmAsIGBmb3JPd25SaWdodGAsIGBnZXRgLCBgZ3RgLCBgZ3RlYCwgYGhhc2AsXFxuICAgICAqIGBoYXNJbmAsIGBoZWFkYCwgYGlkZW50aXR5YCwgYGluY2x1ZGVzYCwgYGluZGV4T2ZgLCBgaW5SYW5nZWAsIGBpbnZva2VgLFxcbiAgICAgKiBgaXNBcmd1bWVudHNgLCBgaXNBcnJheWAsIGBpc0FycmF5QnVmZmVyYCwgYGlzQXJyYXlMaWtlYCwgYGlzQXJyYXlMaWtlT2JqZWN0YCxcXG4gICAgICogYGlzQm9vbGVhbmAsIGBpc0J1ZmZlcmAsIGBpc0RhdGVgLCBgaXNFbGVtZW50YCwgYGlzRW1wdHlgLCBgaXNFcXVhbGAsXFxuICAgICAqIGBpc0VxdWFsV2l0aGAsIGBpc0Vycm9yYCwgYGlzRmluaXRlYCwgYGlzRnVuY3Rpb25gLCBgaXNJbnRlZ2VyYCwgYGlzTGVuZ3RoYCxcXG4gICAgICogYGlzTWFwYCwgYGlzTWF0Y2hgLCBgaXNNYXRjaFdpdGhgLCBgaXNOYU5gLCBgaXNOYXRpdmVgLCBgaXNOaWxgLCBgaXNOdWxsYCxcXG4gICAgICogYGlzTnVtYmVyYCwgYGlzT2JqZWN0YCwgYGlzT2JqZWN0TGlrZWAsIGBpc1BsYWluT2JqZWN0YCwgYGlzUmVnRXhwYCxcXG4gICAgICogYGlzU2FmZUludGVnZXJgLCBgaXNTZXRgLCBgaXNTdHJpbmdgLCBgaXNVbmRlZmluZWRgLCBgaXNUeXBlZEFycmF5YCxcXG4gICAgICogYGlzV2Vha01hcGAsIGBpc1dlYWtTZXRgLCBgam9pbmAsIGBrZWJhYkNhc2VgLCBgbGFzdGAsIGBsYXN0SW5kZXhPZmAsXFxuICAgICAqIGBsb3dlckNhc2VgLCBgbG93ZXJGaXJzdGAsIGBsdGAsIGBsdGVgLCBgbWF4YCwgYG1heEJ5YCwgYG1lYW5gLCBgbWVhbkJ5YCxcXG4gICAgICogYG1pbmAsIGBtaW5CeWAsIGBtdWx0aXBseWAsIGBub0NvbmZsaWN0YCwgYG5vb3BgLCBgbm93YCwgYG50aGAsIGBwYWRgLFxcbiAgICAgKiBgcGFkRW5kYCwgYHBhZFN0YXJ0YCwgYHBhcnNlSW50YCwgYHBvcGAsIGByYW5kb21gLCBgcmVkdWNlYCwgYHJlZHVjZVJpZ2h0YCxcXG4gICAgICogYHJlcGVhdGAsIGByZXN1bHRgLCBgcm91bmRgLCBgcnVuSW5Db250ZXh0YCwgYHNhbXBsZWAsIGBzaGlmdGAsIGBzaXplYCxcXG4gICAgICogYHNuYWtlQ2FzZWAsIGBzb21lYCwgYHNvcnRlZEluZGV4YCwgYHNvcnRlZEluZGV4QnlgLCBgc29ydGVkTGFzdEluZGV4YCxcXG4gICAgICogYHNvcnRlZExhc3RJbmRleEJ5YCwgYHN0YXJ0Q2FzZWAsIGBzdGFydHNXaXRoYCwgYHN0dWJBcnJheWAsIGBzdHViRmFsc2VgLFxcbiAgICAgKiBgc3R1Yk9iamVjdGAsIGBzdHViU3RyaW5nYCwgYHN0dWJUcnVlYCwgYHN1YnRyYWN0YCwgYHN1bWAsIGBzdW1CeWAsXFxuICAgICAqIGB0ZW1wbGF0ZWAsIGB0aW1lc2AsIGB0b0Zpbml0ZWAsIGB0b0ludGVnZXJgLCBgdG9KU09OYCwgYHRvTGVuZ3RoYCxcXG4gICAgICogYHRvTG93ZXJgLCBgdG9OdW1iZXJgLCBgdG9TYWZlSW50ZWdlcmAsIGB0b1N0cmluZ2AsIGB0b1VwcGVyYCwgYHRyaW1gLFxcbiAgICAgKiBgdHJpbUVuZGAsIGB0cmltU3RhcnRgLCBgdHJ1bmNhdGVgLCBgdW5lc2NhcGVgLCBgdW5pcXVlSWRgLCBgdXBwZXJDYXNlYCxcXG4gICAgICogYHVwcGVyRmlyc3RgLCBgdmFsdWVgLCBhbmQgYHdvcmRzYFxcbiAgICAgKlxcbiAgICAgKiBAbmFtZSBfXFxuICAgICAqIEBjb25zdHJ1Y3RvclxcbiAgICAgKiBAY2F0ZWdvcnkgU2VxXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAgaW4gYSBgbG9kYXNoYCBpbnN0YW5jZS5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIHNxdWFyZShuKSB7XFxuICAgICAqICAgcmV0dXJuIG4gKiBuO1xcbiAgICAgKiB9XFxuICAgICAqXFxuICAgICAqIHZhciB3cmFwcGVkID0gXyhbMSwgMiwgM10pO1xcbiAgICAgKlxcbiAgICAgKiAvLyBSZXR1cm5zIGFuIHVud3JhcHBlZCB2YWx1ZS5cXG4gICAgICogd3JhcHBlZC5yZWR1Y2UoXy5hZGQpO1xcbiAgICAgKiAvLyA9PiA2XFxuICAgICAqXFxuICAgICAqIC8vIFJldHVybnMgYSB3cmFwcGVkIHZhbHVlLlxcbiAgICAgKiB2YXIgc3F1YXJlcyA9IHdyYXBwZWQubWFwKHNxdWFyZSk7XFxuICAgICAqXFxuICAgICAqIF8uaXNBcnJheShzcXVhcmVzKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICpcXG4gICAgICogXy5pc0FycmF5KHNxdWFyZXMudmFsdWUoKSk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGxvZGFzaCh2YWx1ZSkge1xcbiAgICAgIGlmIChpc09iamVjdExpa2UodmFsdWUpICYmICFpc0FycmF5KHZhbHVlKSAmJiAhKHZhbHVlIGluc3RhbmNlb2YgTGF6eVdyYXBwZXIpKSB7XFxuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBMb2Rhc2hXcmFwcGVyKSB7XFxuICAgICAgICAgIHJldHVybiB2YWx1ZTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnX193cmFwcGVkX18nKSkge1xcbiAgICAgICAgICByZXR1cm4gd3JhcHBlckNsb25lKHZhbHVlKTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHZhbHVlKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY3JlYXRlYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFzc2lnbmluZ1xcbiAgICAgKiBwcm9wZXJ0aWVzIHRvIHRoZSBjcmVhdGVkIG9iamVjdC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHByb3RvIFRoZSBvYmplY3QgdG8gaW5oZXJpdCBmcm9tLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxcbiAgICAgKi9cXG4gICAgdmFyIGJhc2VDcmVhdGUgPSAoZnVuY3Rpb24oKSB7XFxuICAgICAgZnVuY3Rpb24gb2JqZWN0KCkge31cXG4gICAgICByZXR1cm4gZnVuY3Rpb24ocHJvdG8pIHtcXG4gICAgICAgIGlmICghaXNPYmplY3QocHJvdG8pKSB7XFxuICAgICAgICAgIHJldHVybiB7fTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChvYmplY3RDcmVhdGUpIHtcXG4gICAgICAgICAgcmV0dXJuIG9iamVjdENyZWF0ZShwcm90byk7XFxuICAgICAgICB9XFxuICAgICAgICBvYmplY3QucHJvdG90eXBlID0gcHJvdG87XFxuICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IG9iamVjdDtcXG4gICAgICAgIG9iamVjdC5wcm90b3R5cGUgPSB1bmRlZmluZWQ7XFxuICAgICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICAgIH07XFxuICAgIH0oKSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgZnVuY3Rpb24gd2hvc2UgcHJvdG90eXBlIGNoYWluIHNlcXVlbmNlIHdyYXBwZXJzIGluaGVyaXQgZnJvbS5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VMb2Rhc2goKSB7XFxuICAgICAgLy8gTm8gb3BlcmF0aW9uIHBlcmZvcm1lZC5cXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgY29uc3RydWN0b3IgZm9yIGNyZWF0aW5nIGBsb2Rhc2hgIHdyYXBwZXIgb2JqZWN0cy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gd3JhcC5cXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbY2hhaW5BbGxdIEVuYWJsZSBleHBsaWNpdCBtZXRob2QgY2hhaW4gc2VxdWVuY2VzLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gTG9kYXNoV3JhcHBlcih2YWx1ZSwgY2hhaW5BbGwpIHtcXG4gICAgICB0aGlzLl9fd3JhcHBlZF9fID0gdmFsdWU7XFxuICAgICAgdGhpcy5fX2FjdGlvbnNfXyA9IFtdO1xcbiAgICAgIHRoaXMuX19jaGFpbl9fID0gISFjaGFpbkFsbDtcXG4gICAgICB0aGlzLl9faW5kZXhfXyA9IDA7XFxuICAgICAgdGhpcy5fX3ZhbHVlc19fID0gdW5kZWZpbmVkO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBCeSBkZWZhdWx0LCB0aGUgdGVtcGxhdGUgZGVsaW1pdGVycyB1c2VkIGJ5IGxvZGFzaCBhcmUgbGlrZSB0aG9zZSBpblxcbiAgICAgKiBlbWJlZGRlZCBSdWJ5IChFUkIpIGFzIHdlbGwgYXMgRVMyMDE1IHRlbXBsYXRlIHN0cmluZ3MuIENoYW5nZSB0aGVcXG4gICAgICogZm9sbG93aW5nIHRlbXBsYXRlIHNldHRpbmdzIHRvIHVzZSBhbHRlcm5hdGl2ZSBkZWxpbWl0ZXJzLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEB0eXBlIHtPYmplY3R9XFxuICAgICAqL1xcbiAgICBsb2Rhc2gudGVtcGxhdGVTZXR0aW5ncyA9IHtcXG5cXG4gICAgICAvKipcXG4gICAgICAgKiBVc2VkIHRvIGRldGVjdCBgZGF0YWAgcHJvcGVydHkgdmFsdWVzIHRvIGJlIEhUTUwtZXNjYXBlZC5cXG4gICAgICAgKlxcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcXG4gICAgICAgKiBAdHlwZSB7UmVnRXhwfVxcbiAgICAgICAqL1xcbiAgICAgICdlc2NhcGUnOiByZUVzY2FwZSxcXG5cXG4gICAgICAvKipcXG4gICAgICAgKiBVc2VkIHRvIGRldGVjdCBjb2RlIHRvIGJlIGV2YWx1YXRlZC5cXG4gICAgICAgKlxcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcXG4gICAgICAgKiBAdHlwZSB7UmVnRXhwfVxcbiAgICAgICAqL1xcbiAgICAgICdldmFsdWF0ZSc6IHJlRXZhbHVhdGUsXFxuXFxuICAgICAgLyoqXFxuICAgICAgICogVXNlZCB0byBkZXRlY3QgYGRhdGFgIHByb3BlcnR5IHZhbHVlcyB0byBpbmplY3QuXFxuICAgICAgICpcXG4gICAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXFxuICAgICAgICogQHR5cGUge1JlZ0V4cH1cXG4gICAgICAgKi9cXG4gICAgICAnaW50ZXJwb2xhdGUnOiByZUludGVycG9sYXRlLFxcblxcbiAgICAgIC8qKlxcbiAgICAgICAqIFVzZWQgdG8gcmVmZXJlbmNlIHRoZSBkYXRhIG9iamVjdCBpbiB0aGUgdGVtcGxhdGUgdGV4dC5cXG4gICAgICAgKlxcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcXG4gICAgICAgKiBAdHlwZSB7c3RyaW5nfVxcbiAgICAgICAqL1xcbiAgICAgICd2YXJpYWJsZSc6ICcnLFxcblxcbiAgICAgIC8qKlxcbiAgICAgICAqIFVzZWQgdG8gaW1wb3J0IHZhcmlhYmxlcyBpbnRvIHRoZSBjb21waWxlZCB0ZW1wbGF0ZS5cXG4gICAgICAgKlxcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcXG4gICAgICAgKiBAdHlwZSB7T2JqZWN0fVxcbiAgICAgICAqL1xcbiAgICAgICdpbXBvcnRzJzoge1xcblxcbiAgICAgICAgLyoqXFxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgYGxvZGFzaGAgZnVuY3Rpb24uXFxuICAgICAgICAgKlxcbiAgICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5ncy5pbXBvcnRzXFxuICAgICAgICAgKiBAdHlwZSB7RnVuY3Rpb259XFxuICAgICAgICAgKi9cXG4gICAgICAgICdfJzogbG9kYXNoXFxuICAgICAgfVxcbiAgICB9O1xcblxcbiAgICAvLyBFbnN1cmUgd3JhcHBlcnMgYXJlIGluc3RhbmNlcyBvZiBgYmFzZUxvZGFzaGAuXFxuICAgIGxvZGFzaC5wcm90b3R5cGUgPSBiYXNlTG9kYXNoLnByb3RvdHlwZTtcXG4gICAgbG9kYXNoLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGxvZGFzaDtcXG5cXG4gICAgTG9kYXNoV3JhcHBlci5wcm90b3R5cGUgPSBiYXNlQ3JlYXRlKGJhc2VMb2Rhc2gucHJvdG90eXBlKTtcXG4gICAgTG9kYXNoV3JhcHBlci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBMb2Rhc2hXcmFwcGVyO1xcblxcbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgbGF6eSB3cmFwcGVyIG9iamVjdCB3aGljaCB3cmFwcyBgdmFsdWVgIHRvIGVuYWJsZSBsYXp5IGV2YWx1YXRpb24uXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBjb25zdHJ1Y3RvclxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byB3cmFwLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gTGF6eVdyYXBwZXIodmFsdWUpIHtcXG4gICAgICB0aGlzLl9fd3JhcHBlZF9fID0gdmFsdWU7XFxuICAgICAgdGhpcy5fX2FjdGlvbnNfXyA9IFtdO1xcbiAgICAgIHRoaXMuX19kaXJfXyA9IDE7XFxuICAgICAgdGhpcy5fX2ZpbHRlcmVkX18gPSBmYWxzZTtcXG4gICAgICB0aGlzLl9faXRlcmF0ZWVzX18gPSBbXTtcXG4gICAgICB0aGlzLl9fdGFrZUNvdW50X18gPSBNQVhfQVJSQVlfTEVOR1RIO1xcbiAgICAgIHRoaXMuX192aWV3c19fID0gW107XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiB0aGUgbGF6eSB3cmFwcGVyIG9iamVjdC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQG5hbWUgY2xvbmVcXG4gICAgICogQG1lbWJlck9mIExhenlXcmFwcGVyXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCBgTGF6eVdyYXBwZXJgIG9iamVjdC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGxhenlDbG9uZSgpIHtcXG4gICAgICB2YXIgcmVzdWx0ID0gbmV3IExhenlXcmFwcGVyKHRoaXMuX193cmFwcGVkX18pO1xcbiAgICAgIHJlc3VsdC5fX2FjdGlvbnNfXyA9IGNvcHlBcnJheSh0aGlzLl9fYWN0aW9uc19fKTtcXG4gICAgICByZXN1bHQuX19kaXJfXyA9IHRoaXMuX19kaXJfXztcXG4gICAgICByZXN1bHQuX19maWx0ZXJlZF9fID0gdGhpcy5fX2ZpbHRlcmVkX187XFxuICAgICAgcmVzdWx0Ll9faXRlcmF0ZWVzX18gPSBjb3B5QXJyYXkodGhpcy5fX2l0ZXJhdGVlc19fKTtcXG4gICAgICByZXN1bHQuX190YWtlQ291bnRfXyA9IHRoaXMuX190YWtlQ291bnRfXztcXG4gICAgICByZXN1bHQuX192aWV3c19fID0gY29weUFycmF5KHRoaXMuX192aWV3c19fKTtcXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBSZXZlcnNlcyB0aGUgZGlyZWN0aW9uIG9mIGxhenkgaXRlcmF0aW9uLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAbmFtZSByZXZlcnNlXFxuICAgICAqIEBtZW1iZXJPZiBMYXp5V3JhcHBlclxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgcmV2ZXJzZWQgYExhenlXcmFwcGVyYCBvYmplY3QuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBsYXp5UmV2ZXJzZSgpIHtcXG4gICAgICBpZiAodGhpcy5fX2ZpbHRlcmVkX18pIHtcXG4gICAgICAgIHZhciByZXN1bHQgPSBuZXcgTGF6eVdyYXBwZXIodGhpcyk7XFxuICAgICAgICByZXN1bHQuX19kaXJfXyA9IC0xO1xcbiAgICAgICAgcmVzdWx0Ll9fZmlsdGVyZWRfXyA9IHRydWU7XFxuICAgICAgfSBlbHNlIHtcXG4gICAgICAgIHJlc3VsdCA9IHRoaXMuY2xvbmUoKTtcXG4gICAgICAgIHJlc3VsdC5fX2Rpcl9fICo9IC0xO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBFeHRyYWN0cyB0aGUgdW53cmFwcGVkIHZhbHVlIGZyb20gaXRzIGxhenkgd3JhcHBlci5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQG5hbWUgdmFsdWVcXG4gICAgICogQG1lbWJlck9mIExhenlXcmFwcGVyXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSB1bndyYXBwZWQgdmFsdWUuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBsYXp5VmFsdWUoKSB7XFxuICAgICAgdmFyIGFycmF5ID0gdGhpcy5fX3dyYXBwZWRfXy52YWx1ZSgpLFxcbiAgICAgICAgICBkaXIgPSB0aGlzLl9fZGlyX18sXFxuICAgICAgICAgIGlzQXJyID0gaXNBcnJheShhcnJheSksXFxuICAgICAgICAgIGlzUmlnaHQgPSBkaXIgPCAwLFxcbiAgICAgICAgICBhcnJMZW5ndGggPSBpc0FyciA/IGFycmF5Lmxlbmd0aCA6IDAsXFxuICAgICAgICAgIHZpZXcgPSBnZXRWaWV3KDAsIGFyckxlbmd0aCwgdGhpcy5fX3ZpZXdzX18pLFxcbiAgICAgICAgICBzdGFydCA9IHZpZXcuc3RhcnQsXFxuICAgICAgICAgIGVuZCA9IHZpZXcuZW5kLFxcbiAgICAgICAgICBsZW5ndGggPSBlbmQgLSBzdGFydCxcXG4gICAgICAgICAgaW5kZXggPSBpc1JpZ2h0ID8gZW5kIDogKHN0YXJ0IC0gMSksXFxuICAgICAgICAgIGl0ZXJhdGVlcyA9IHRoaXMuX19pdGVyYXRlZXNfXyxcXG4gICAgICAgICAgaXRlckxlbmd0aCA9IGl0ZXJhdGVlcy5sZW5ndGgsXFxuICAgICAgICAgIHJlc0luZGV4ID0gMCxcXG4gICAgICAgICAgdGFrZUNvdW50ID0gbmF0aXZlTWluKGxlbmd0aCwgdGhpcy5fX3Rha2VDb3VudF9fKTtcXG5cXG4gICAgICBpZiAoIWlzQXJyIHx8ICghaXNSaWdodCAmJiBhcnJMZW5ndGggPT0gbGVuZ3RoICYmIHRha2VDb3VudCA9PSBsZW5ndGgpKSB7XFxuICAgICAgICByZXR1cm4gYmFzZVdyYXBwZXJWYWx1ZShhcnJheSwgdGhpcy5fX2FjdGlvbnNfXyk7XFxuICAgICAgfVxcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcXG5cXG4gICAgICBvdXRlcjpcXG4gICAgICB3aGlsZSAobGVuZ3RoLS0gJiYgcmVzSW5kZXggPCB0YWtlQ291bnQpIHtcXG4gICAgICAgIGluZGV4ICs9IGRpcjtcXG5cXG4gICAgICAgIHZhciBpdGVySW5kZXggPSAtMSxcXG4gICAgICAgICAgICB2YWx1ZSA9IGFycmF5W2luZGV4XTtcXG5cXG4gICAgICAgIHdoaWxlICgrK2l0ZXJJbmRleCA8IGl0ZXJMZW5ndGgpIHtcXG4gICAgICAgICAgdmFyIGRhdGEgPSBpdGVyYXRlZXNbaXRlckluZGV4XSxcXG4gICAgICAgICAgICAgIGl0ZXJhdGVlID0gZGF0YS5pdGVyYXRlZSxcXG4gICAgICAgICAgICAgIHR5cGUgPSBkYXRhLnR5cGUsXFxuICAgICAgICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlKHZhbHVlKTtcXG5cXG4gICAgICAgICAgaWYgKHR5cGUgPT0gTEFaWV9NQVBfRkxBRykge1xcbiAgICAgICAgICAgIHZhbHVlID0gY29tcHV0ZWQ7XFxuICAgICAgICAgIH0gZWxzZSBpZiAoIWNvbXB1dGVkKSB7XFxuICAgICAgICAgICAgaWYgKHR5cGUgPT0gTEFaWV9GSUxURVJfRkxBRykge1xcbiAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgIGJyZWFrIG91dGVyO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgcmVzdWx0W3Jlc0luZGV4KytdID0gdmFsdWU7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH1cXG5cXG4gICAgLy8gRW5zdXJlIGBMYXp5V3JhcHBlcmAgaXMgYW4gaW5zdGFuY2Ugb2YgYGJhc2VMb2Rhc2hgLlxcbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUgPSBiYXNlQ3JlYXRlKGJhc2VMb2Rhc2gucHJvdG90eXBlKTtcXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTGF6eVdyYXBwZXI7XFxuXFxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBoYXNoIG9iamVjdC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQGNvbnN0cnVjdG9yXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gSGFzaChlbnRyaWVzKSB7XFxuICAgICAgdmFyIGluZGV4ID0gLTEsXFxuICAgICAgICAgIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcXG5cXG4gICAgICB0aGlzLmNsZWFyKCk7XFxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xcbiAgICAgICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIGhhc2guXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBuYW1lIGNsZWFyXFxuICAgICAqIEBtZW1iZXJPZiBIYXNoXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBoYXNoQ2xlYXIoKSB7XFxuICAgICAgdGhpcy5fX2RhdGFfXyA9IG5hdGl2ZUNyZWF0ZSA/IG5hdGl2ZUNyZWF0ZShudWxsKSA6IHt9O1xcbiAgICAgIHRoaXMuc2l6ZSA9IDA7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBoYXNoLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAbmFtZSBkZWxldGVcXG4gICAgICogQG1lbWJlck9mIEhhc2hcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGhhc2ggVGhlIGhhc2ggdG8gbW9kaWZ5LlxcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaGFzaERlbGV0ZShrZXkpIHtcXG4gICAgICB2YXIgcmVzdWx0ID0gdGhpcy5oYXMoa2V5KSAmJiBkZWxldGUgdGhpcy5fX2RhdGFfX1trZXldO1xcbiAgICAgIHRoaXMuc2l6ZSAtPSByZXN1bHQgPyAxIDogMDtcXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBHZXRzIHRoZSBoYXNoIHZhbHVlIGZvciBga2V5YC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQG5hbWUgZ2V0XFxuICAgICAqIEBtZW1iZXJPZiBIYXNoXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBoYXNoR2V0KGtleSkge1xcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcXG4gICAgICBpZiAobmF0aXZlQ3JlYXRlKSB7XFxuICAgICAgICB2YXIgcmVzdWx0ID0gZGF0YVtrZXldO1xcbiAgICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gSEFTSF9VTkRFRklORUQgPyB1bmRlZmluZWQgOiByZXN1bHQ7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGtleSkgPyBkYXRhW2tleV0gOiB1bmRlZmluZWQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBhIGhhc2ggdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQG5hbWUgaGFzXFxuICAgICAqIEBtZW1iZXJPZiBIYXNoXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBoYXNoSGFzKGtleSkge1xcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcXG4gICAgICByZXR1cm4gbmF0aXZlQ3JlYXRlID8gKGRhdGFba2V5XSAhPT0gdW5kZWZpbmVkKSA6IGhhc093blByb3BlcnR5LmNhbGwoZGF0YSwga2V5KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogU2V0cyB0aGUgaGFzaCBga2V5YCB0byBgdmFsdWVgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAbmFtZSBzZXRcXG4gICAgICogQG1lbWJlck9mIEhhc2hcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaGFzaCBpbnN0YW5jZS5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGhhc2hTZXQoa2V5LCB2YWx1ZSkge1xcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcXG4gICAgICB0aGlzLnNpemUgKz0gdGhpcy5oYXMoa2V5KSA/IDAgOiAxO1xcbiAgICAgIGRhdGFba2V5XSA9IChuYXRpdmVDcmVhdGUgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCkgPyBIQVNIX1VOREVGSU5FRCA6IHZhbHVlO1xcbiAgICAgIHJldHVybiB0aGlzO1xcbiAgICB9XFxuXFxuICAgIC8vIEFkZCBtZXRob2RzIHRvIGBIYXNoYC5cXG4gICAgSGFzaC5wcm90b3R5cGUuY2xlYXIgPSBoYXNoQ2xlYXI7XFxuICAgIEhhc2gucHJvdG90eXBlWydkZWxldGUnXSA9IGhhc2hEZWxldGU7XFxuICAgIEhhc2gucHJvdG90eXBlLmdldCA9IGhhc2hHZXQ7XFxuICAgIEhhc2gucHJvdG90eXBlLmhhcyA9IGhhc2hIYXM7XFxuICAgIEhhc2gucHJvdG90eXBlLnNldCA9IGhhc2hTZXQ7XFxuXFxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gbGlzdCBjYWNoZSBvYmplY3QuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBjb25zdHJ1Y3RvclxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIExpc3RDYWNoZShlbnRyaWVzKSB7XFxuICAgICAgdmFyIGluZGV4ID0gLTEsXFxuICAgICAgICAgIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcXG5cXG4gICAgICB0aGlzLmNsZWFyKCk7XFxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xcbiAgICAgICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIGxpc3QgY2FjaGUuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBuYW1lIGNsZWFyXFxuICAgICAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGxpc3RDYWNoZUNsZWFyKCkge1xcbiAgICAgIHRoaXMuX19kYXRhX18gPSBbXTtcXG4gICAgICB0aGlzLnNpemUgPSAwO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgbGlzdCBjYWNoZS5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQG5hbWUgZGVsZXRlXFxuICAgICAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZW1vdmUuXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGxpc3RDYWNoZURlbGV0ZShrZXkpIHtcXG4gICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sXFxuICAgICAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XFxuXFxuICAgICAgaWYgKGluZGV4IDwgMCkge1xcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgIH1cXG4gICAgICB2YXIgbGFzdEluZGV4ID0gZGF0YS5sZW5ndGggLSAxO1xcbiAgICAgIGlmIChpbmRleCA9PSBsYXN0SW5kZXgpIHtcXG4gICAgICAgIGRhdGEucG9wKCk7XFxuICAgICAgfSBlbHNlIHtcXG4gICAgICAgIHNwbGljZS5jYWxsKGRhdGEsIGluZGV4LCAxKTtcXG4gICAgICB9XFxuICAgICAgLS10aGlzLnNpemU7XFxuICAgICAgcmV0dXJuIHRydWU7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEdldHMgdGhlIGxpc3QgY2FjaGUgdmFsdWUgZm9yIGBrZXlgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAbmFtZSBnZXRcXG4gICAgICogQG1lbWJlck9mIExpc3RDYWNoZVxcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gbGlzdENhY2hlR2V0KGtleSkge1xcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcXG4gICAgICAgICAgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcXG5cXG4gICAgICByZXR1cm4gaW5kZXggPCAwID8gdW5kZWZpbmVkIDogZGF0YVtpbmRleF1bMV07XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBhIGxpc3QgY2FjaGUgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQG5hbWUgaGFzXFxuICAgICAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGxpc3RDYWNoZUhhcyhrZXkpIHtcXG4gICAgICByZXR1cm4gYXNzb2NJbmRleE9mKHRoaXMuX19kYXRhX18sIGtleSkgPiAtMTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogU2V0cyB0aGUgbGlzdCBjYWNoZSBga2V5YCB0byBgdmFsdWVgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAbmFtZSBzZXRcXG4gICAgICogQG1lbWJlck9mIExpc3RDYWNoZVxcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBsaXN0IGNhY2hlIGluc3RhbmNlLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gbGlzdENhY2hlU2V0KGtleSwgdmFsdWUpIHtcXG4gICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sXFxuICAgICAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XFxuXFxuICAgICAgaWYgKGluZGV4IDwgMCkge1xcbiAgICAgICAgKyt0aGlzLnNpemU7XFxuICAgICAgICBkYXRhLnB1c2goW2tleSwgdmFsdWVdKTtcXG4gICAgICB9IGVsc2Uge1xcbiAgICAgICAgZGF0YVtpbmRleF1bMV0gPSB2YWx1ZTtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHRoaXM7XFxuICAgIH1cXG5cXG4gICAgLy8gQWRkIG1ldGhvZHMgdG8gYExpc3RDYWNoZWAuXFxuICAgIExpc3RDYWNoZS5wcm90b3R5cGUuY2xlYXIgPSBsaXN0Q2FjaGVDbGVhcjtcXG4gICAgTGlzdENhY2hlLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBsaXN0Q2FjaGVEZWxldGU7XFxuICAgIExpc3RDYWNoZS5wcm90b3R5cGUuZ2V0ID0gbGlzdENhY2hlR2V0O1xcbiAgICBMaXN0Q2FjaGUucHJvdG90eXBlLmhhcyA9IGxpc3RDYWNoZUhhcztcXG4gICAgTGlzdENhY2hlLnByb3RvdHlwZS5zZXQgPSBsaXN0Q2FjaGVTZXQ7XFxuXFxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBtYXAgY2FjaGUgb2JqZWN0IHRvIHN0b3JlIGtleS12YWx1ZSBwYWlycy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQGNvbnN0cnVjdG9yXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gTWFwQ2FjaGUoZW50cmllcykge1xcbiAgICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XFxuXFxuICAgICAgdGhpcy5jbGVhcigpO1xcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgICB2YXIgZW50cnkgPSBlbnRyaWVzW2luZGV4XTtcXG4gICAgICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBSZW1vdmVzIGFsbCBrZXktdmFsdWUgZW50cmllcyBmcm9tIHRoZSBtYXAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBuYW1lIGNsZWFyXFxuICAgICAqIEBtZW1iZXJPZiBNYXBDYWNoZVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gbWFwQ2FjaGVDbGVhcigpIHtcXG4gICAgICB0aGlzLnNpemUgPSAwO1xcbiAgICAgIHRoaXMuX19kYXRhX18gPSB7XFxuICAgICAgICAnaGFzaCc6IG5ldyBIYXNoLFxcbiAgICAgICAgJ21hcCc6IG5ldyAoTWFwIHx8IExpc3RDYWNoZSksXFxuICAgICAgICAnc3RyaW5nJzogbmV3IEhhc2hcXG4gICAgICB9O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgbWFwLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAbmFtZSBkZWxldGVcXG4gICAgICogQG1lbWJlck9mIE1hcENhY2hlXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBtYXBDYWNoZURlbGV0ZShrZXkpIHtcXG4gICAgICB2YXIgcmVzdWx0ID0gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpWydkZWxldGUnXShrZXkpO1xcbiAgICAgIHRoaXMuc2l6ZSAtPSByZXN1bHQgPyAxIDogMDtcXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBHZXRzIHRoZSBtYXAgdmFsdWUgZm9yIGBrZXlgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAbmFtZSBnZXRcXG4gICAgICogQG1lbWJlck9mIE1hcENhY2hlXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBtYXBDYWNoZUdldChrZXkpIHtcXG4gICAgICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmdldChrZXkpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYSBtYXAgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQG5hbWUgaGFzXFxuICAgICAqIEBtZW1iZXJPZiBNYXBDYWNoZVxcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gbWFwQ2FjaGVIYXMoa2V5KSB7XFxuICAgICAgcmV0dXJuIGdldE1hcERhdGEodGhpcywga2V5KS5oYXMoa2V5KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogU2V0cyB0aGUgbWFwIGBrZXlgIHRvIGB2YWx1ZWAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBuYW1lIHNldFxcbiAgICAgKiBAbWVtYmVyT2YgTWFwQ2FjaGVcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbWFwIGNhY2hlIGluc3RhbmNlLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gbWFwQ2FjaGVTZXQoa2V5LCB2YWx1ZSkge1xcbiAgICAgIHZhciBkYXRhID0gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLFxcbiAgICAgICAgICBzaXplID0gZGF0YS5zaXplO1xcblxcbiAgICAgIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xcbiAgICAgIHRoaXMuc2l6ZSArPSBkYXRhLnNpemUgPT0gc2l6ZSA/IDAgOiAxO1xcbiAgICAgIHJldHVybiB0aGlzO1xcbiAgICB9XFxuXFxuICAgIC8vIEFkZCBtZXRob2RzIHRvIGBNYXBDYWNoZWAuXFxuICAgIE1hcENhY2hlLnByb3RvdHlwZS5jbGVhciA9IG1hcENhY2hlQ2xlYXI7XFxuICAgIE1hcENhY2hlLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBtYXBDYWNoZURlbGV0ZTtcXG4gICAgTWFwQ2FjaGUucHJvdG90eXBlLmdldCA9IG1hcENhY2hlR2V0O1xcbiAgICBNYXBDYWNoZS5wcm90b3R5cGUuaGFzID0gbWFwQ2FjaGVIYXM7XFxuICAgIE1hcENhY2hlLnByb3RvdHlwZS5zZXQgPSBtYXBDYWNoZVNldDtcXG5cXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xcblxcbiAgICAvKipcXG4gICAgICpcXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBjYWNoZSBvYmplY3QgdG8gc3RvcmUgdW5pcXVlIHZhbHVlcy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQGNvbnN0cnVjdG9yXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFt2YWx1ZXNdIFRoZSB2YWx1ZXMgdG8gY2FjaGUuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBTZXRDYWNoZSh2YWx1ZXMpIHtcXG4gICAgICB2YXIgaW5kZXggPSAtMSxcXG4gICAgICAgICAgbGVuZ3RoID0gdmFsdWVzID09IG51bGwgPyAwIDogdmFsdWVzLmxlbmd0aDtcXG5cXG4gICAgICB0aGlzLl9fZGF0YV9fID0gbmV3IE1hcENhY2hlO1xcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgICB0aGlzLmFkZCh2YWx1ZXNbaW5kZXhdKTtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEFkZHMgYHZhbHVlYCB0byB0aGUgYXJyYXkgY2FjaGUuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBuYW1lIGFkZFxcbiAgICAgKiBAbWVtYmVyT2YgU2V0Q2FjaGVcXG4gICAgICogQGFsaWFzIHB1c2hcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2FjaGUuXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNhY2hlIGluc3RhbmNlLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc2V0Q2FjaGVBZGQodmFsdWUpIHtcXG4gICAgICB0aGlzLl9fZGF0YV9fLnNldCh2YWx1ZSwgSEFTSF9VTkRFRklORUQpO1xcbiAgICAgIHJldHVybiB0aGlzO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBpbiB0aGUgYXJyYXkgY2FjaGUuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBuYW1lIGhhc1xcbiAgICAgKiBAbWVtYmVyT2YgU2V0Q2FjaGVcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBmb3VuZCwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc2V0Q2FjaGVIYXModmFsdWUpIHtcXG4gICAgICByZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModmFsdWUpO1xcbiAgICB9XFxuXFxuICAgIC8vIEFkZCBtZXRob2RzIHRvIGBTZXRDYWNoZWAuXFxuICAgIFNldENhY2hlLnByb3RvdHlwZS5hZGQgPSBTZXRDYWNoZS5wcm90b3R5cGUucHVzaCA9IHNldENhY2hlQWRkO1xcbiAgICBTZXRDYWNoZS5wcm90b3R5cGUuaGFzID0gc2V0Q2FjaGVIYXM7XFxuXFxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBzdGFjayBjYWNoZSBvYmplY3QgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAY29uc3RydWN0b3JcXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBTdGFjayhlbnRyaWVzKSB7XFxuICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fID0gbmV3IExpc3RDYWNoZShlbnRyaWVzKTtcXG4gICAgICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIHN0YWNrLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAbmFtZSBjbGVhclxcbiAgICAgKiBAbWVtYmVyT2YgU3RhY2tcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHN0YWNrQ2xlYXIoKSB7XFxuICAgICAgdGhpcy5fX2RhdGFfXyA9IG5ldyBMaXN0Q2FjaGU7XFxuICAgICAgdGhpcy5zaXplID0gMDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIHN0YWNrLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAbmFtZSBkZWxldGVcXG4gICAgICogQG1lbWJlck9mIFN0YWNrXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBzdGFja0RlbGV0ZShrZXkpIHtcXG4gICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sXFxuICAgICAgICAgIHJlc3VsdCA9IGRhdGFbJ2RlbGV0ZSddKGtleSk7XFxuXFxuICAgICAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEdldHMgdGhlIHN0YWNrIHZhbHVlIGZvciBga2V5YC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQG5hbWUgZ2V0XFxuICAgICAqIEBtZW1iZXJPZiBTdGFja1xcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc3RhY2tHZXQoa2V5KSB7XFxuICAgICAgcmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGtleSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBhIHN0YWNrIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBuYW1lIGhhc1xcbiAgICAgKiBAbWVtYmVyT2YgU3RhY2tcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHN0YWNrSGFzKGtleSkge1xcbiAgICAgIHJldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhrZXkpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBTZXRzIHRoZSBzdGFjayBga2V5YCB0byBgdmFsdWVgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAbmFtZSBzZXRcXG4gICAgICogQG1lbWJlck9mIFN0YWNrXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIHN0YWNrIGNhY2hlIGluc3RhbmNlLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc3RhY2tTZXQoa2V5LCB2YWx1ZSkge1xcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcXG4gICAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIExpc3RDYWNoZSkge1xcbiAgICAgICAgdmFyIHBhaXJzID0gZGF0YS5fX2RhdGFfXztcXG4gICAgICAgIGlmICghTWFwIHx8IChwYWlycy5sZW5ndGggPCBMQVJHRV9BUlJBWV9TSVpFIC0gMSkpIHtcXG4gICAgICAgICAgcGFpcnMucHVzaChba2V5LCB2YWx1ZV0pO1xcbiAgICAgICAgICB0aGlzLnNpemUgPSArK2RhdGEuc2l6ZTtcXG4gICAgICAgICAgcmV0dXJuIHRoaXM7XFxuICAgICAgICB9XFxuICAgICAgICBkYXRhID0gdGhpcy5fX2RhdGFfXyA9IG5ldyBNYXBDYWNoZShwYWlycyk7XFxuICAgICAgfVxcbiAgICAgIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xcbiAgICAgIHRoaXMuc2l6ZSA9IGRhdGEuc2l6ZTtcXG4gICAgICByZXR1cm4gdGhpcztcXG4gICAgfVxcblxcbiAgICAvLyBBZGQgbWV0aG9kcyB0byBgU3RhY2tgLlxcbiAgICBTdGFjay5wcm90b3R5cGUuY2xlYXIgPSBzdGFja0NsZWFyO1xcbiAgICBTdGFjay5wcm90b3R5cGVbJ2RlbGV0ZSddID0gc3RhY2tEZWxldGU7XFxuICAgIFN0YWNrLnByb3RvdHlwZS5nZXQgPSBzdGFja0dldDtcXG4gICAgU3RhY2sucHJvdG90eXBlLmhhcyA9IHN0YWNrSGFzO1xcbiAgICBTdGFjay5wcm90b3R5cGUuc2V0ID0gc3RhY2tTZXQ7XFxuXFxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgdGhlIGFycmF5LWxpa2UgYHZhbHVlYC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXFxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5oZXJpdGVkIFNwZWNpZnkgcmV0dXJuaW5nIGluaGVyaXRlZCBwcm9wZXJ0eSBuYW1lcy5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGFycmF5TGlrZUtleXModmFsdWUsIGluaGVyaXRlZCkge1xcbiAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkodmFsdWUpLFxcbiAgICAgICAgICBpc0FyZyA9ICFpc0FyciAmJiBpc0FyZ3VtZW50cyh2YWx1ZSksXFxuICAgICAgICAgIGlzQnVmZiA9ICFpc0FyciAmJiAhaXNBcmcgJiYgaXNCdWZmZXIodmFsdWUpLFxcbiAgICAgICAgICBpc1R5cGUgPSAhaXNBcnIgJiYgIWlzQXJnICYmICFpc0J1ZmYgJiYgaXNUeXBlZEFycmF5KHZhbHVlKSxcXG4gICAgICAgICAgc2tpcEluZGV4ZXMgPSBpc0FyciB8fCBpc0FyZyB8fCBpc0J1ZmYgfHwgaXNUeXBlLFxcbiAgICAgICAgICByZXN1bHQgPSBza2lwSW5kZXhlcyA/IGJhc2VUaW1lcyh2YWx1ZS5sZW5ndGgsIFN0cmluZykgOiBbXSxcXG4gICAgICAgICAgbGVuZ3RoID0gcmVzdWx0Lmxlbmd0aDtcXG5cXG4gICAgICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcXG4gICAgICAgIGlmICgoaW5oZXJpdGVkIHx8IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGtleSkpICYmXFxuICAgICAgICAgICAgIShza2lwSW5kZXhlcyAmJiAoXFxuICAgICAgICAgICAgICAgLy8gU2FmYXJpIDkgaGFzIGVudW1lcmFibGUgYGFyZ3VtZW50cy5sZW5ndGhgIGluIHN0cmljdCBtb2RlLlxcbiAgICAgICAgICAgICAgIGtleSA9PSAnbGVuZ3RoJyB8fFxcbiAgICAgICAgICAgICAgIC8vIE5vZGUuanMgMC4xMCBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiBidWZmZXJzLlxcbiAgICAgICAgICAgICAgIChpc0J1ZmYgJiYgKGtleSA9PSAnb2Zmc2V0JyB8fCBrZXkgPT0gJ3BhcmVudCcpKSB8fFxcbiAgICAgICAgICAgICAgIC8vIFBoYW50b21KUyAyIGhhcyBlbnVtZXJhYmxlIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9uIHR5cGVkIGFycmF5cy5cXG4gICAgICAgICAgICAgICAoaXNUeXBlICYmIChrZXkgPT0gJ2J1ZmZlcicgfHwga2V5ID09ICdieXRlTGVuZ3RoJyB8fCBrZXkgPT0gJ2J5dGVPZmZzZXQnKSkgfHxcXG4gICAgICAgICAgICAgICAvLyBTa2lwIGluZGV4IHByb3BlcnRpZXMuXFxuICAgICAgICAgICAgICAgaXNJbmRleChrZXksIGxlbmd0aClcXG4gICAgICAgICAgICApKSkge1xcbiAgICAgICAgICByZXN1bHQucHVzaChrZXkpO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uc2FtcGxlYCBmb3IgYXJyYXlzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2FtcGxlLlxcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmFuZG9tIGVsZW1lbnQuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBhcnJheVNhbXBsZShhcnJheSkge1xcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XFxuICAgICAgcmV0dXJuIGxlbmd0aCA/IGFycmF5W2Jhc2VSYW5kb20oMCwgbGVuZ3RoIC0gMSldIDogdW5kZWZpbmVkO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uc2FtcGxlU2l6ZWAgZm9yIGFycmF5cy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNhbXBsZS5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiBlbGVtZW50cyB0byBzYW1wbGUuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcmFuZG9tIGVsZW1lbnRzLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYXJyYXlTYW1wbGVTaXplKGFycmF5LCBuKSB7XFxuICAgICAgcmV0dXJuIHNodWZmbGVTZWxmKGNvcHlBcnJheShhcnJheSksIGJhc2VDbGFtcChuLCAwLCBhcnJheS5sZW5ndGgpKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLnNodWZmbGVgIGZvciBhcnJheXMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzaHVmZmxlLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzaHVmZmxlZCBhcnJheS5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGFycmF5U2h1ZmZsZShhcnJheSkge1xcbiAgICAgIHJldHVybiBzaHVmZmxlU2VsZihjb3B5QXJyYXkoYXJyYXkpKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBhc3NpZ25WYWx1ZWAgZXhjZXB0IHRoYXQgaXQgZG9lc24ndCBhc3NpZ25cXG4gICAgICogYHVuZGVmaW5lZGAgdmFsdWVzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpIHtcXG4gICAgICBpZiAoKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWVxKG9iamVjdFtrZXldLCB2YWx1ZSkpIHx8XFxuICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpKSB7XFxuICAgICAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKTtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEFzc2lnbnMgYHZhbHVlYCB0byBga2V5YCBvZiBgb2JqZWN0YCBpZiB0aGUgZXhpc3RpbmcgdmFsdWUgaXMgbm90IGVxdWl2YWxlbnRcXG4gICAgICogdXNpbmcgW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKSB7XFxuICAgICAgdmFyIG9ialZhbHVlID0gb2JqZWN0W2tleV07XFxuICAgICAgaWYgKCEoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYgZXEob2JqVmFsdWUsIHZhbHVlKSkgfHxcXG4gICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgIShrZXkgaW4gb2JqZWN0KSkpIHtcXG4gICAgICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogR2V0cyB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIGBrZXlgIGlzIGZvdW5kIGluIGBhcnJheWAgb2Yga2V5LXZhbHVlIHBhaXJzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHsqfSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYXNzb2NJbmRleE9mKGFycmF5LCBrZXkpIHtcXG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xcbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xcbiAgICAgICAgaWYgKGVxKGFycmF5W2xlbmd0aF1bMF0sIGtleSkpIHtcXG4gICAgICAgICAgcmV0dXJuIGxlbmd0aDtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgcmV0dXJuIC0xO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBBZ2dyZWdhdGVzIGVsZW1lbnRzIG9mIGBjb2xsZWN0aW9uYCBvbiBgYWNjdW11bGF0b3JgIHdpdGgga2V5cyB0cmFuc2Zvcm1lZFxcbiAgICAgKiBieSBgaXRlcmF0ZWVgIGFuZCB2YWx1ZXMgc2V0IGJ5IGBzZXR0ZXJgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHNldHRlciBUaGUgZnVuY3Rpb24gdG8gc2V0IGBhY2N1bXVsYXRvcmAgdmFsdWVzLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgaXRlcmF0ZWUgdG8gdHJhbnNmb3JtIGtleXMuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBhY2N1bXVsYXRvciBUaGUgaW5pdGlhbCBhZ2dyZWdhdGVkIG9iamVjdC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBhY2N1bXVsYXRvcmAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlQWdncmVnYXRvcihjb2xsZWN0aW9uLCBzZXR0ZXIsIGl0ZXJhdGVlLCBhY2N1bXVsYXRvcikge1xcbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcXG4gICAgICAgIHNldHRlcihhY2N1bXVsYXRvciwgdmFsdWUsIGl0ZXJhdGVlKHZhbHVlKSwgY29sbGVjdGlvbik7XFxuICAgICAgfSk7XFxuICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5hc3NpZ25gIHdpdGhvdXQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc291cmNlc1xcbiAgICAgKiBvciBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlQXNzaWduKG9iamVjdCwgc291cmNlKSB7XFxuICAgICAgcmV0dXJuIG9iamVjdCAmJiBjb3B5T2JqZWN0KHNvdXJjZSwga2V5cyhzb3VyY2UpLCBvYmplY3QpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5hc3NpZ25JbmAgd2l0aG91dCBzdXBwb3J0IGZvciBtdWx0aXBsZSBzb3VyY2VzXFxuICAgICAqIG9yIGBjdXN0b21pemVyYCBmdW5jdGlvbnMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VBc3NpZ25JbihvYmplY3QsIHNvdXJjZSkge1xcbiAgICAgIHJldHVybiBvYmplY3QgJiYgY29weU9iamVjdChzb3VyY2UsIGtleXNJbihzb3VyY2UpLCBvYmplY3QpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgYXNzaWduVmFsdWVgIGFuZCBgYXNzaWduTWVyZ2VWYWx1ZWAgd2l0aG91dFxcbiAgICAgKiB2YWx1ZSBjaGVja3MuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKSB7XFxuICAgICAgaWYgKGtleSA9PSAnX19wcm90b19fJyAmJiBkZWZpbmVQcm9wZXJ0eSkge1xcbiAgICAgICAgZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcXG4gICAgICAgICAgJ2NvbmZpZ3VyYWJsZSc6IHRydWUsXFxuICAgICAgICAgICdlbnVtZXJhYmxlJzogdHJ1ZSxcXG4gICAgICAgICAgJ3ZhbHVlJzogdmFsdWUsXFxuICAgICAgICAgICd3cml0YWJsZSc6IHRydWVcXG4gICAgICAgIH0pO1xcbiAgICAgIH0gZWxzZSB7XFxuICAgICAgICBvYmplY3Rba2V5XSA9IHZhbHVlO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uYXRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaW5kaXZpZHVhbCBwYXRocy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gcGF0aHMgVGhlIHByb3BlcnR5IHBhdGhzIHRvIHBpY2suXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcGlja2VkIGVsZW1lbnRzLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUF0KG9iamVjdCwgcGF0aHMpIHtcXG4gICAgICB2YXIgaW5kZXggPSAtMSxcXG4gICAgICAgICAgbGVuZ3RoID0gcGF0aHMubGVuZ3RoLFxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpLFxcbiAgICAgICAgICBza2lwID0gb2JqZWN0ID09IG51bGw7XFxuXFxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICAgIHJlc3VsdFtpbmRleF0gPSBza2lwID8gdW5kZWZpbmVkIDogZ2V0KG9iamVjdCwgcGF0aHNbaW5kZXhdKTtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY2xhbXBgIHdoaWNoIGRvZXNuJ3QgY29lcmNlIGFyZ3VtZW50cy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG51bWJlciBUaGUgbnVtYmVyIHRvIGNsYW1wLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xvd2VyXSBUaGUgbG93ZXIgYm91bmQuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB1cHBlciBUaGUgdXBwZXIgYm91bmQuXFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNsYW1wZWQgbnVtYmVyLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUNsYW1wKG51bWJlciwgbG93ZXIsIHVwcGVyKSB7XFxuICAgICAgaWYgKG51bWJlciA9PT0gbnVtYmVyKSB7XFxuICAgICAgICBpZiAodXBwZXIgIT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICBudW1iZXIgPSBudW1iZXIgPD0gdXBwZXIgPyBudW1iZXIgOiB1cHBlcjtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChsb3dlciAhPT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICAgIG51bWJlciA9IG51bWJlciA+PSBsb3dlciA/IG51bWJlciA6IGxvd2VyO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICByZXR1cm4gbnVtYmVyO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5jbG9uZWAgYW5kIGBfLmNsb25lRGVlcGAgd2hpY2ggdHJhY2tzXFxuICAgICAqIHRyYXZlcnNlZCBvYmplY3RzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cXG4gICAgICogQHBhcmFtIHtib29sZWFufSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLlxcbiAgICAgKiAgMSAtIERlZXAgY2xvbmVcXG4gICAgICogIDIgLSBGbGF0dGVuIGluaGVyaXRlZCBwcm9wZXJ0aWVzXFxuICAgICAqICA0IC0gQ2xvbmUgc3ltYm9sc1xcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjbG9uaW5nLlxcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2tleV0gVGhlIGtleSBvZiBgdmFsdWVgLlxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIHBhcmVudCBvYmplY3Qgb2YgYHZhbHVlYC5cXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtzdGFja10gVHJhY2tzIHRyYXZlcnNlZCBvYmplY3RzIGFuZCB0aGVpciBjbG9uZSBjb3VudGVycGFydHMuXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlQ2xvbmUodmFsdWUsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGtleSwgb2JqZWN0LCBzdGFjaykge1xcbiAgICAgIHZhciByZXN1bHQsXFxuICAgICAgICAgIGlzRGVlcCA9IGJpdG1hc2sgJiBDTE9ORV9ERUVQX0ZMQUcsXFxuICAgICAgICAgIGlzRmxhdCA9IGJpdG1hc2sgJiBDTE9ORV9GTEFUX0ZMQUcsXFxuICAgICAgICAgIGlzRnVsbCA9IGJpdG1hc2sgJiBDTE9ORV9TWU1CT0xTX0ZMQUc7XFxuXFxuICAgICAgaWYgKGN1c3RvbWl6ZXIpIHtcXG4gICAgICAgIHJlc3VsdCA9IG9iamVjdCA/IGN1c3RvbWl6ZXIodmFsdWUsIGtleSwgb2JqZWN0LCBzdGFjaykgOiBjdXN0b21pemVyKHZhbHVlKTtcXG4gICAgICB9XFxuICAgICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICAgIH1cXG4gICAgICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xcbiAgICAgIH1cXG4gICAgICB2YXIgaXNBcnIgPSBpc0FycmF5KHZhbHVlKTtcXG4gICAgICBpZiAoaXNBcnIpIHtcXG4gICAgICAgIHJlc3VsdCA9IGluaXRDbG9uZUFycmF5KHZhbHVlKTtcXG4gICAgICAgIGlmICghaXNEZWVwKSB7XFxuICAgICAgICAgIHJldHVybiBjb3B5QXJyYXkodmFsdWUsIHJlc3VsdCk7XFxuICAgICAgICB9XFxuICAgICAgfSBlbHNlIHtcXG4gICAgICAgIHZhciB0YWcgPSBnZXRUYWcodmFsdWUpLFxcbiAgICAgICAgICAgIGlzRnVuYyA9IHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWc7XFxuXFxuICAgICAgICBpZiAoaXNCdWZmZXIodmFsdWUpKSB7XFxuICAgICAgICAgIHJldHVybiBjbG9uZUJ1ZmZlcih2YWx1ZSwgaXNEZWVwKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmICh0YWcgPT0gb2JqZWN0VGFnIHx8IHRhZyA9PSBhcmdzVGFnIHx8IChpc0Z1bmMgJiYgIW9iamVjdCkpIHtcXG4gICAgICAgICAgcmVzdWx0ID0gKGlzRmxhdCB8fCBpc0Z1bmMpID8ge30gOiBpbml0Q2xvbmVPYmplY3QodmFsdWUpO1xcbiAgICAgICAgICBpZiAoIWlzRGVlcCkge1xcbiAgICAgICAgICAgIHJldHVybiBpc0ZsYXRcXG4gICAgICAgICAgICAgID8gY29weVN5bWJvbHNJbih2YWx1ZSwgYmFzZUFzc2lnbkluKHJlc3VsdCwgdmFsdWUpKVxcbiAgICAgICAgICAgICAgOiBjb3B5U3ltYm9scyh2YWx1ZSwgYmFzZUFzc2lnbihyZXN1bHQsIHZhbHVlKSk7XFxuICAgICAgICAgIH1cXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgIGlmICghY2xvbmVhYmxlVGFnc1t0YWddKSB7XFxuICAgICAgICAgICAgcmV0dXJuIG9iamVjdCA/IHZhbHVlIDoge307XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgcmVzdWx0ID0gaW5pdENsb25lQnlUYWcodmFsdWUsIHRhZywgaXNEZWVwKTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgLy8gQ2hlY2sgZm9yIGNpcmN1bGFyIHJlZmVyZW5jZXMgYW5kIHJldHVybiBpdHMgY29ycmVzcG9uZGluZyBjbG9uZS5cXG4gICAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xcbiAgICAgIHZhciBzdGFja2VkID0gc3RhY2suZ2V0KHZhbHVlKTtcXG4gICAgICBpZiAoc3RhY2tlZCkge1xcbiAgICAgICAgcmV0dXJuIHN0YWNrZWQ7XFxuICAgICAgfVxcbiAgICAgIHN0YWNrLnNldCh2YWx1ZSwgcmVzdWx0KTtcXG5cXG4gICAgICBpZiAoaXNTZXQodmFsdWUpKSB7XFxuICAgICAgICB2YWx1ZS5mb3JFYWNoKGZ1bmN0aW9uKHN1YlZhbHVlKSB7XFxuICAgICAgICAgIHJlc3VsdC5hZGQoYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdWJWYWx1ZSwgdmFsdWUsIHN0YWNrKSk7XFxuICAgICAgICB9KTtcXG4gICAgICB9IGVsc2UgaWYgKGlzTWFwKHZhbHVlKSkge1xcbiAgICAgICAgdmFsdWUuZm9yRWFjaChmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XFxuICAgICAgICAgIHJlc3VsdC5zZXQoa2V5LCBiYXNlQ2xvbmUoc3ViVmFsdWUsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGtleSwgdmFsdWUsIHN0YWNrKSk7XFxuICAgICAgICB9KTtcXG4gICAgICB9XFxuXFxuICAgICAgdmFyIGtleXNGdW5jID0gaXNGdWxsXFxuICAgICAgICA/IChpc0ZsYXQgPyBnZXRBbGxLZXlzSW4gOiBnZXRBbGxLZXlzKVxcbiAgICAgICAgOiAoaXNGbGF0ID8ga2V5c0luIDoga2V5cyk7XFxuXFxuICAgICAgdmFyIHByb3BzID0gaXNBcnIgPyB1bmRlZmluZWQgOiBrZXlzRnVuYyh2YWx1ZSk7XFxuICAgICAgYXJyYXlFYWNoKHByb3BzIHx8IHZhbHVlLCBmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XFxuICAgICAgICBpZiAocHJvcHMpIHtcXG4gICAgICAgICAga2V5ID0gc3ViVmFsdWU7XFxuICAgICAgICAgIHN1YlZhbHVlID0gdmFsdWVba2V5XTtcXG4gICAgICAgIH1cXG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IHBvcHVsYXRlIGNsb25lIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXFxuICAgICAgICBhc3NpZ25WYWx1ZShyZXN1bHQsIGtleSwgYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIHZhbHVlLCBzdGFjaykpO1xcbiAgICAgIH0pO1xcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNvbmZvcm1zYCB3aGljaCBkb2Vzbid0IGNsb25lIGBzb3VyY2VgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgcHJlZGljYXRlcyB0byBjb25mb3JtIHRvLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUNvbmZvcm1zKHNvdXJjZSkge1xcbiAgICAgIHZhciBwcm9wcyA9IGtleXMoc291cmNlKTtcXG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XFxuICAgICAgICByZXR1cm4gYmFzZUNvbmZvcm1zVG8ob2JqZWN0LCBzb3VyY2UsIHByb3BzKTtcXG4gICAgICB9O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5jb25mb3Jtc1RvYCB3aGljaCBhY2NlcHRzIGBwcm9wc2AgdG8gY2hlY2suXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgcHJlZGljYXRlcyB0byBjb25mb3JtIHRvLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG9iamVjdGAgY29uZm9ybXMsIGVsc2UgYGZhbHNlYC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VDb25mb3Jtc1RvKG9iamVjdCwgc291cmNlLCBwcm9wcykge1xcbiAgICAgIHZhciBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XFxuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XFxuICAgICAgICByZXR1cm4gIWxlbmd0aDtcXG4gICAgICB9XFxuICAgICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XFxuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XFxuICAgICAgICB2YXIga2V5ID0gcHJvcHNbbGVuZ3RoXSxcXG4gICAgICAgICAgICBwcmVkaWNhdGUgPSBzb3VyY2Vba2V5XSxcXG4gICAgICAgICAgICB2YWx1ZSA9IG9iamVjdFtrZXldO1xcblxcbiAgICAgICAgaWYgKCh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpIHx8ICFwcmVkaWNhdGUodmFsdWUpKSB7XFxuICAgICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHRydWU7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmRlbGF5YCBhbmQgYF8uZGVmZXJgIHdoaWNoIGFjY2VwdHMgYGFyZ3NgXFxuICAgICAqIHRvIHByb3ZpZGUgdG8gYGZ1bmNgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWxheS5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHdhaXQgVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gZGVsYXkgaW52b2NhdGlvbi5cXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgYXJndW1lbnRzIHRvIHByb3ZpZGUgdG8gYGZ1bmNgLlxcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfE9iamVjdH0gUmV0dXJucyB0aGUgdGltZXIgaWQgb3IgdGltZW91dCBvYmplY3QuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlRGVsYXkoZnVuYywgd2FpdCwgYXJncykge1xcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XFxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBmdW5jLmFwcGx5KHVuZGVmaW5lZCwgYXJncyk7IH0sIHdhaXQpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2RzIGxpa2UgYF8uZGlmZmVyZW5jZWAgd2l0aG91dCBzdXBwb3J0XFxuICAgICAqIGZvciBleGNsdWRpbmcgbXVsdGlwbGUgYXJyYXlzIG9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBleGNsdWRlLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWVdIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZURpZmZlcmVuY2UoYXJyYXksIHZhbHVlcywgaXRlcmF0ZWUsIGNvbXBhcmF0b3IpIHtcXG4gICAgICB2YXIgaW5kZXggPSAtMSxcXG4gICAgICAgICAgaW5jbHVkZXMgPSBhcnJheUluY2x1ZGVzLFxcbiAgICAgICAgICBpc0NvbW1vbiA9IHRydWUsXFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcXG4gICAgICAgICAgcmVzdWx0ID0gW10sXFxuICAgICAgICAgIHZhbHVlc0xlbmd0aCA9IHZhbHVlcy5sZW5ndGg7XFxuXFxuICAgICAgaWYgKCFsZW5ndGgpIHtcXG4gICAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgICAgfVxcbiAgICAgIGlmIChpdGVyYXRlZSkge1xcbiAgICAgICAgdmFsdWVzID0gYXJyYXlNYXAodmFsdWVzLCBiYXNlVW5hcnkoaXRlcmF0ZWUpKTtcXG4gICAgICB9XFxuICAgICAgaWYgKGNvbXBhcmF0b3IpIHtcXG4gICAgICAgIGluY2x1ZGVzID0gYXJyYXlJbmNsdWRlc1dpdGg7XFxuICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xcbiAgICAgIH1cXG4gICAgICBlbHNlIGlmICh2YWx1ZXMubGVuZ3RoID49IExBUkdFX0FSUkFZX1NJWkUpIHtcXG4gICAgICAgIGluY2x1ZGVzID0gY2FjaGVIYXM7XFxuICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xcbiAgICAgICAgdmFsdWVzID0gbmV3IFNldENhY2hlKHZhbHVlcyk7XFxuICAgICAgfVxcbiAgICAgIG91dGVyOlxcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sXFxuICAgICAgICAgICAgY29tcHV0ZWQgPSBpdGVyYXRlZSA9PSBudWxsID8gdmFsdWUgOiBpdGVyYXRlZSh2YWx1ZSk7XFxuXFxuICAgICAgICB2YWx1ZSA9IChjb21wYXJhdG9yIHx8IHZhbHVlICE9PSAwKSA/IHZhbHVlIDogMDtcXG4gICAgICAgIGlmIChpc0NvbW1vbiAmJiBjb21wdXRlZCA9PT0gY29tcHV0ZWQpIHtcXG4gICAgICAgICAgdmFyIHZhbHVlc0luZGV4ID0gdmFsdWVzTGVuZ3RoO1xcbiAgICAgICAgICB3aGlsZSAodmFsdWVzSW5kZXgtLSkge1xcbiAgICAgICAgICAgIGlmICh2YWx1ZXNbdmFsdWVzSW5kZXhdID09PSBjb21wdXRlZCkge1xcbiAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKCFpbmNsdWRlcyh2YWx1ZXMsIGNvbXB1dGVkLCBjb21wYXJhdG9yKSkge1xcbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZvckVhY2hgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl8T2JqZWN0fSBSZXR1cm5zIGBjb2xsZWN0aW9uYC5cXG4gICAgICovXFxuICAgIHZhciBiYXNlRWFjaCA9IGNyZWF0ZUJhc2VFYWNoKGJhc2VGb3JPd24pO1xcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9yRWFjaFJpZ2h0YCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHJldHVybnMge0FycmF5fE9iamVjdH0gUmV0dXJucyBgY29sbGVjdGlvbmAuXFxuICAgICAqL1xcbiAgICB2YXIgYmFzZUVhY2hSaWdodCA9IGNyZWF0ZUJhc2VFYWNoKGJhc2VGb3JPd25SaWdodCwgdHJ1ZSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5ldmVyeWAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYWxsIGVsZW1lbnRzIHBhc3MgdGhlIHByZWRpY2F0ZSBjaGVjayxcXG4gICAgICogIGVsc2UgYGZhbHNlYFxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUV2ZXJ5KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xcbiAgICAgIHZhciByZXN1bHQgPSB0cnVlO1xcbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikge1xcbiAgICAgICAgcmVzdWx0ID0gISFwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKTtcXG4gICAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgICAgfSk7XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kcyBsaWtlIGBfLm1heGAgYW5kIGBfLm1pbmAgd2hpY2ggYWNjZXB0cyBhXFxuICAgICAqIGBjb21wYXJhdG9yYCB0byBkZXRlcm1pbmUgdGhlIGV4dHJlbXVtIHZhbHVlLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjb21wYXJhdG9yIFRoZSBjb21wYXJhdG9yIHVzZWQgdG8gY29tcGFyZSB2YWx1ZXMuXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBleHRyZW11bSB2YWx1ZS5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VFeHRyZW11bShhcnJheSwgaXRlcmF0ZWUsIGNvbXBhcmF0b3IpIHtcXG4gICAgICB2YXIgaW5kZXggPSAtMSxcXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xcblxcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sXFxuICAgICAgICAgICAgY3VycmVudCA9IGl0ZXJhdGVlKHZhbHVlKTtcXG5cXG4gICAgICAgIGlmIChjdXJyZW50ICE9IG51bGwgJiYgKGNvbXB1dGVkID09PSB1bmRlZmluZWRcXG4gICAgICAgICAgICAgID8gKGN1cnJlbnQgPT09IGN1cnJlbnQgJiYgIWlzU3ltYm9sKGN1cnJlbnQpKVxcbiAgICAgICAgICAgICAgOiBjb21wYXJhdG9yKGN1cnJlbnQsIGNvbXB1dGVkKVxcbiAgICAgICAgICAgICkpIHtcXG4gICAgICAgICAgdmFyIGNvbXB1dGVkID0gY3VycmVudCxcXG4gICAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5maWxsYCB3aXRob3V0IGFuIGl0ZXJhdGVlIGNhbGwgZ3VhcmQuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmaWxsLlxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBmaWxsIGBhcnJheWAgd2l0aC5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgcG9zaXRpb24uXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZW5kPWFycmF5Lmxlbmd0aF0gVGhlIGVuZCBwb3NpdGlvbi5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlRmlsbChhcnJheSwgdmFsdWUsIHN0YXJ0LCBlbmQpIHtcXG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xcblxcbiAgICAgIHN0YXJ0ID0gdG9JbnRlZ2VyKHN0YXJ0KTtcXG4gICAgICBpZiAoc3RhcnQgPCAwKSB7XFxuICAgICAgICBzdGFydCA9IC1zdGFydCA+IGxlbmd0aCA/IDAgOiAobGVuZ3RoICsgc3RhcnQpO1xcbiAgICAgIH1cXG4gICAgICBlbmQgPSAoZW5kID09PSB1bmRlZmluZWQgfHwgZW5kID4gbGVuZ3RoKSA/IGxlbmd0aCA6IHRvSW50ZWdlcihlbmQpO1xcbiAgICAgIGlmIChlbmQgPCAwKSB7XFxuICAgICAgICBlbmQgKz0gbGVuZ3RoO1xcbiAgICAgIH1cXG4gICAgICBlbmQgPSBzdGFydCA+IGVuZCA/IDAgOiB0b0xlbmd0aChlbmQpO1xcbiAgICAgIHdoaWxlIChzdGFydCA8IGVuZCkge1xcbiAgICAgICAgYXJyYXlbc3RhcnQrK10gPSB2YWx1ZTtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIGFycmF5O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5maWx0ZXJgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmlsdGVyZWQgYXJyYXkuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlRmlsdGVyKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcXG4gICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHtcXG4gICAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSkge1xcbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XFxuICAgICAgICB9XFxuICAgICAgfSk7XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZmxhdHRlbmAgd2l0aCBzdXBwb3J0IGZvciByZXN0cmljdGluZyBmbGF0dGVuaW5nLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmxhdHRlbi5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRlcHRoIFRoZSBtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aC5cXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbcHJlZGljYXRlPWlzRmxhdHRlbmFibGVdIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXFxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzU3RyaWN0XSBSZXN0cmljdCB0byB2YWx1ZXMgdGhhdCBwYXNzIGBwcmVkaWNhdGVgIGNoZWNrcy5cXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3Jlc3VsdD1bXV0gVGhlIGluaXRpYWwgcmVzdWx0IHZhbHVlLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlRmxhdHRlbihhcnJheSwgZGVwdGgsIHByZWRpY2F0ZSwgaXNTdHJpY3QsIHJlc3VsdCkge1xcbiAgICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XFxuXFxuICAgICAgcHJlZGljYXRlIHx8IChwcmVkaWNhdGUgPSBpc0ZsYXR0ZW5hYmxlKTtcXG4gICAgICByZXN1bHQgfHwgKHJlc3VsdCA9IFtdKTtcXG5cXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xcbiAgICAgICAgaWYgKGRlcHRoID4gMCAmJiBwcmVkaWNhdGUodmFsdWUpKSB7XFxuICAgICAgICAgIGlmIChkZXB0aCA+IDEpIHtcXG4gICAgICAgICAgICAvLyBSZWN1cnNpdmVseSBmbGF0dGVuIGFycmF5cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxcbiAgICAgICAgICAgIGJhc2VGbGF0dGVuKHZhbHVlLCBkZXB0aCAtIDEsIHByZWRpY2F0ZSwgaXNTdHJpY3QsIHJlc3VsdCk7XFxuICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgYXJyYXlQdXNoKHJlc3VsdCwgdmFsdWUpO1xcbiAgICAgICAgICB9XFxuICAgICAgICB9IGVsc2UgaWYgKCFpc1N0cmljdCkge1xcbiAgICAgICAgICByZXN1bHRbcmVzdWx0Lmxlbmd0aF0gPSB2YWx1ZTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGJhc2VGb3JPd25gIHdoaWNoIGl0ZXJhdGVzIG92ZXIgYG9iamVjdGBcXG4gICAgICogcHJvcGVydGllcyByZXR1cm5lZCBieSBga2V5c0Z1bmNgIGFuZCBpbnZva2VzIGBpdGVyYXRlZWAgZm9yIGVhY2ggcHJvcGVydHkuXFxuICAgICAqIEl0ZXJhdGVlIGZ1bmN0aW9ucyBtYXkgZXhpdCBpdGVyYXRpb24gZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0ga2V5c0Z1bmMgVGhlIGZ1bmN0aW9uIHRvIGdldCB0aGUga2V5cyBvZiBgb2JqZWN0YC5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cXG4gICAgICovXFxuICAgIHZhciBiYXNlRm9yID0gY3JlYXRlQmFzZUZvcigpO1xcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBiYXNlRm9yYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIHByb3BlcnRpZXNcXG4gICAgICogaW4gdGhlIG9wcG9zaXRlIG9yZGVyLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBrZXlzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBrZXlzIG9mIGBvYmplY3RgLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxcbiAgICAgKi9cXG4gICAgdmFyIGJhc2VGb3JSaWdodCA9IGNyZWF0ZUJhc2VGb3IodHJ1ZSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JPd25gIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VGb3JPd24ob2JqZWN0LCBpdGVyYXRlZSkge1xcbiAgICAgIHJldHVybiBvYmplY3QgJiYgYmFzZUZvcihvYmplY3QsIGl0ZXJhdGVlLCBrZXlzKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9yT3duUmlnaHRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VGb3JPd25SaWdodChvYmplY3QsIGl0ZXJhdGVlKSB7XFxuICAgICAgcmV0dXJuIG9iamVjdCAmJiBiYXNlRm9yUmlnaHQob2JqZWN0LCBpdGVyYXRlZSwga2V5cyk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZ1bmN0aW9uc2Agd2hpY2ggY3JlYXRlcyBhbiBhcnJheSBvZlxcbiAgICAgKiBgb2JqZWN0YCBmdW5jdGlvbiBwcm9wZXJ0eSBuYW1lcyBmaWx0ZXJlZCBmcm9tIGBwcm9wc2AuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgdG8gZmlsdGVyLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGZ1bmN0aW9uIG5hbWVzLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUZ1bmN0aW9ucyhvYmplY3QsIHByb3BzKSB7XFxuICAgICAgcmV0dXJuIGFycmF5RmlsdGVyKHByb3BzLCBmdW5jdGlvbihrZXkpIHtcXG4gICAgICAgIHJldHVybiBpc0Z1bmN0aW9uKG9iamVjdFtrZXldKTtcXG4gICAgICB9KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZ2V0YCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZmF1bHQgdmFsdWVzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VHZXQob2JqZWN0LCBwYXRoKSB7XFxuICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XFxuXFxuICAgICAgdmFyIGluZGV4ID0gMCxcXG4gICAgICAgICAgbGVuZ3RoID0gcGF0aC5sZW5ndGg7XFxuXFxuICAgICAgd2hpbGUgKG9iamVjdCAhPSBudWxsICYmIGluZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgICBvYmplY3QgPSBvYmplY3RbdG9LZXkocGF0aFtpbmRleCsrXSldO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gKGluZGV4ICYmIGluZGV4ID09IGxlbmd0aCkgPyBvYmplY3QgOiB1bmRlZmluZWQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRBbGxLZXlzYCBhbmQgYGdldEFsbEtleXNJbmAgd2hpY2ggdXNlc1xcbiAgICAgKiBga2V5c0Z1bmNgIGFuZCBgc3ltYm9sc0Z1bmNgIHRvIGdldCB0aGUgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmRcXG4gICAgICogc3ltYm9scyBvZiBgb2JqZWN0YC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBrZXlzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBrZXlzIG9mIGBvYmplY3RgLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzeW1ib2xzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzeW1ib2xzIG9mIGBvYmplY3RgLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzRnVuYywgc3ltYm9sc0Z1bmMpIHtcXG4gICAgICB2YXIgcmVzdWx0ID0ga2V5c0Z1bmMob2JqZWN0KTtcXG4gICAgICByZXR1cm4gaXNBcnJheShvYmplY3QpID8gcmVzdWx0IDogYXJyYXlQdXNoKHJlc3VsdCwgc3ltYm9sc0Z1bmMob2JqZWN0KSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRUYWdgIHdpdGhvdXQgZmFsbGJhY2tzIGZvciBidWdneSBlbnZpcm9ubWVudHMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBgdG9TdHJpbmdUYWdgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUdldFRhZyh2YWx1ZSkge1xcbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XFxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZFRhZyA6IG51bGxUYWc7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiAoc3ltVG9TdHJpbmdUYWcgJiYgc3ltVG9TdHJpbmdUYWcgaW4gT2JqZWN0KHZhbHVlKSlcXG4gICAgICAgID8gZ2V0UmF3VGFnKHZhbHVlKVxcbiAgICAgICAgOiBvYmplY3RUb1N0cmluZyh2YWx1ZSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmd0YCB3aGljaCBkb2Vzbid0IGNvZXJjZSBhcmd1bWVudHMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXFxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGdyZWF0ZXIgdGhhbiBgb3RoZXJgLFxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUd0KHZhbHVlLCBvdGhlcikge1xcbiAgICAgIHJldHVybiB2YWx1ZSA+IG90aGVyO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5oYXNgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBrZXkgVGhlIGtleSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUhhcyhvYmplY3QsIGtleSkge1xcbiAgICAgIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaGFzSW5gIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBrZXkgVGhlIGtleSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUhhc0luKG9iamVjdCwga2V5KSB7XFxuICAgICAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGtleSBpbiBPYmplY3Qob2JqZWN0KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW5SYW5nZWAgd2hpY2ggZG9lc24ndCBjb2VyY2UgYXJndW1lbnRzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyIFRoZSBudW1iZXIgdG8gY2hlY2suXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydCBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kIFRoZSBlbmQgb2YgdGhlIHJhbmdlLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG51bWJlcmAgaXMgaW4gdGhlIHJhbmdlLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlSW5SYW5nZShudW1iZXIsIHN0YXJ0LCBlbmQpIHtcXG4gICAgICByZXR1cm4gbnVtYmVyID49IG5hdGl2ZU1pbihzdGFydCwgZW5kKSAmJiBudW1iZXIgPCBuYXRpdmVNYXgoc3RhcnQsIGVuZCk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy5pbnRlcnNlY3Rpb25gLCB3aXRob3V0IHN1cHBvcnRcXG4gICAgICogZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMsIHRoYXQgYWNjZXB0cyBhbiBhcnJheSBvZiBhcnJheXMgdG8gaW5zcGVjdC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXlzIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIHNoYXJlZCB2YWx1ZXMuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlSW50ZXJzZWN0aW9uKGFycmF5cywgaXRlcmF0ZWUsIGNvbXBhcmF0b3IpIHtcXG4gICAgICB2YXIgaW5jbHVkZXMgPSBjb21wYXJhdG9yID8gYXJyYXlJbmNsdWRlc1dpdGggOiBhcnJheUluY2x1ZGVzLFxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheXNbMF0ubGVuZ3RoLFxcbiAgICAgICAgICBvdGhMZW5ndGggPSBhcnJheXMubGVuZ3RoLFxcbiAgICAgICAgICBvdGhJbmRleCA9IG90aExlbmd0aCxcXG4gICAgICAgICAgY2FjaGVzID0gQXJyYXkob3RoTGVuZ3RoKSxcXG4gICAgICAgICAgbWF4TGVuZ3RoID0gSW5maW5pdHksXFxuICAgICAgICAgIHJlc3VsdCA9IFtdO1xcblxcbiAgICAgIHdoaWxlIChvdGhJbmRleC0tKSB7XFxuICAgICAgICB2YXIgYXJyYXkgPSBhcnJheXNbb3RoSW5kZXhdO1xcbiAgICAgICAgaWYgKG90aEluZGV4ICYmIGl0ZXJhdGVlKSB7XFxuICAgICAgICAgIGFycmF5ID0gYXJyYXlNYXAoYXJyYXksIGJhc2VVbmFyeShpdGVyYXRlZSkpO1xcbiAgICAgICAgfVxcbiAgICAgICAgbWF4TGVuZ3RoID0gbmF0aXZlTWluKGFycmF5Lmxlbmd0aCwgbWF4TGVuZ3RoKTtcXG4gICAgICAgIGNhY2hlc1tvdGhJbmRleF0gPSAhY29tcGFyYXRvciAmJiAoaXRlcmF0ZWUgfHwgKGxlbmd0aCA+PSAxMjAgJiYgYXJyYXkubGVuZ3RoID49IDEyMCkpXFxuICAgICAgICAgID8gbmV3IFNldENhY2hlKG90aEluZGV4ICYmIGFycmF5KVxcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcXG4gICAgICB9XFxuICAgICAgYXJyYXkgPSBhcnJheXNbMF07XFxuXFxuICAgICAgdmFyIGluZGV4ID0gLTEsXFxuICAgICAgICAgIHNlZW4gPSBjYWNoZXNbMF07XFxuXFxuICAgICAgb3V0ZXI6XFxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGggJiYgcmVzdWx0Lmxlbmd0aCA8IG1heExlbmd0aCkge1xcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLFxcbiAgICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUgPyBpdGVyYXRlZSh2YWx1ZSkgOiB2YWx1ZTtcXG5cXG4gICAgICAgIHZhbHVlID0gKGNvbXBhcmF0b3IgfHwgdmFsdWUgIT09IDApID8gdmFsdWUgOiAwO1xcbiAgICAgICAgaWYgKCEoc2VlblxcbiAgICAgICAgICAgICAgPyBjYWNoZUhhcyhzZWVuLCBjb21wdXRlZClcXG4gICAgICAgICAgICAgIDogaW5jbHVkZXMocmVzdWx0LCBjb21wdXRlZCwgY29tcGFyYXRvcilcXG4gICAgICAgICAgICApKSB7XFxuICAgICAgICAgIG90aEluZGV4ID0gb3RoTGVuZ3RoO1xcbiAgICAgICAgICB3aGlsZSAoLS1vdGhJbmRleCkge1xcbiAgICAgICAgICAgIHZhciBjYWNoZSA9IGNhY2hlc1tvdGhJbmRleF07XFxuICAgICAgICAgICAgaWYgKCEoY2FjaGVcXG4gICAgICAgICAgICAgICAgICA/IGNhY2hlSGFzKGNhY2hlLCBjb21wdXRlZClcXG4gICAgICAgICAgICAgICAgICA6IGluY2x1ZGVzKGFycmF5c1tvdGhJbmRleF0sIGNvbXB1dGVkLCBjb21wYXJhdG9yKSlcXG4gICAgICAgICAgICAgICAgKSB7XFxuICAgICAgICAgICAgICBjb250aW51ZSBvdXRlcjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgaWYgKHNlZW4pIHtcXG4gICAgICAgICAgICBzZWVuLnB1c2goY29tcHV0ZWQpO1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW52ZXJ0YCBhbmQgYF8uaW52ZXJ0QnlgIHdoaWNoIGludmVydHNcXG4gICAgICogYG9iamVjdGAgd2l0aCB2YWx1ZXMgdHJhbnNmb3JtZWQgYnkgYGl0ZXJhdGVlYCBhbmQgc2V0IGJ5IGBzZXR0ZXJgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzZXR0ZXIgVGhlIGZ1bmN0aW9uIHRvIHNldCBgYWNjdW11bGF0b3JgIHZhbHVlcy5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGl0ZXJhdGVlIHRvIHRyYW5zZm9ybSB2YWx1ZXMuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBhY2N1bXVsYXRvciBUaGUgaW5pdGlhbCBpbnZlcnRlZCBvYmplY3QuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgYWNjdW11bGF0b3JgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUludmVydGVyKG9iamVjdCwgc2V0dGVyLCBpdGVyYXRlZSwgYWNjdW11bGF0b3IpIHtcXG4gICAgICBiYXNlRm9yT3duKG9iamVjdCwgZnVuY3Rpb24odmFsdWUsIGtleSwgb2JqZWN0KSB7XFxuICAgICAgICBzZXR0ZXIoYWNjdW11bGF0b3IsIGl0ZXJhdGVlKHZhbHVlKSwga2V5LCBvYmplY3QpO1xcbiAgICAgIH0pO1xcbiAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW52b2tlYCB3aXRob3V0IHN1cHBvcnQgZm9yIGluZGl2aWR1YWxcXG4gICAgICogbWV0aG9kIGFyZ3VtZW50cy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgbWV0aG9kIHRvIGludm9rZS5cXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgYXJndW1lbnRzIHRvIGludm9rZSB0aGUgbWV0aG9kIHdpdGguXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGludm9rZWQgbWV0aG9kLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUludm9rZShvYmplY3QsIHBhdGgsIGFyZ3MpIHtcXG4gICAgICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcXG4gICAgICBvYmplY3QgPSBwYXJlbnQob2JqZWN0LCBwYXRoKTtcXG4gICAgICB2YXIgZnVuYyA9IG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogb2JqZWN0W3RvS2V5KGxhc3QocGF0aCkpXTtcXG4gICAgICByZXR1cm4gZnVuYyA9PSBudWxsID8gdW5kZWZpbmVkIDogYXBwbHkoZnVuYywgb2JqZWN0LCBhcmdzKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNBcmd1bWVudHNgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUlzQXJndW1lbnRzKHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJnc1RhZztcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNBcnJheUJ1ZmZlcmAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBhcnJheSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VJc0FycmF5QnVmZmVyKHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJyYXlCdWZmZXJUYWc7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzRGF0ZWAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGRhdGUgb2JqZWN0LCBlbHNlIGBmYWxzZWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlSXNEYXRlKHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gZGF0ZVRhZztcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNFcXVhbGAgd2hpY2ggc3VwcG9ydHMgcGFydGlhbCBjb21wYXJpc29uc1xcbiAgICAgKiBhbmQgdHJhY2tzIHRyYXZlcnNlZCBvYmplY3RzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxcbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuXFxuICAgICAqICAxIC0gVW5vcmRlcmVkIGNvbXBhcmlzb25cXG4gICAgICogIDIgLSBQYXJ0aWFsIGNvbXBhcmlzb25cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgYHZhbHVlYCBhbmQgYG90aGVyYCBvYmplY3RzLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUlzRXF1YWwodmFsdWUsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjaykge1xcbiAgICAgIGlmICh2YWx1ZSA9PT0gb3RoZXIpIHtcXG4gICAgICAgIHJldHVybiB0cnVlO1xcbiAgICAgIH1cXG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCBvdGhlciA9PSBudWxsIHx8ICghaXNPYmplY3RMaWtlKHZhbHVlKSAmJiAhaXNPYmplY3RMaWtlKG90aGVyKSkpIHtcXG4gICAgICAgIHJldHVybiB2YWx1ZSAhPT0gdmFsdWUgJiYgb3RoZXIgIT09IG90aGVyO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gYmFzZUlzRXF1YWxEZWVwKHZhbHVlLCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgYmFzZUlzRXF1YWwsIHN0YWNrKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbGAgZm9yIGFycmF5cyBhbmQgb2JqZWN0cyB3aGljaCBwZXJmb3Jtc1xcbiAgICAgKiBkZWVwIGNvbXBhcmlzb25zIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMgZW5hYmxpbmcgb2JqZWN0cyB3aXRoIGNpcmN1bGFyXFxuICAgICAqIHJlZmVyZW5jZXMgdG8gYmUgY29tcGFyZWQuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlLlxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBiYXNlSXNFcXVhbGAgZm9yIG1vcmUgZGV0YWlscy5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9taXplciBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgYG9iamVjdGAgYW5kIGBvdGhlcmAgb2JqZWN0cy5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlSXNFcXVhbERlZXAob2JqZWN0LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjaykge1xcbiAgICAgIHZhciBvYmpJc0FyciA9IGlzQXJyYXkob2JqZWN0KSxcXG4gICAgICAgICAgb3RoSXNBcnIgPSBpc0FycmF5KG90aGVyKSxcXG4gICAgICAgICAgb2JqVGFnID0gb2JqSXNBcnIgPyBhcnJheVRhZyA6IGdldFRhZyhvYmplY3QpLFxcbiAgICAgICAgICBvdGhUYWcgPSBvdGhJc0FyciA/IGFycmF5VGFnIDogZ2V0VGFnKG90aGVyKTtcXG5cXG4gICAgICBvYmpUYWcgPSBvYmpUYWcgPT0gYXJnc1RhZyA/IG9iamVjdFRhZyA6IG9ialRhZztcXG4gICAgICBvdGhUYWcgPSBvdGhUYWcgPT0gYXJnc1RhZyA/IG9iamVjdFRhZyA6IG90aFRhZztcXG5cXG4gICAgICB2YXIgb2JqSXNPYmogPSBvYmpUYWcgPT0gb2JqZWN0VGFnLFxcbiAgICAgICAgICBvdGhJc09iaiA9IG90aFRhZyA9PSBvYmplY3RUYWcsXFxuICAgICAgICAgIGlzU2FtZVRhZyA9IG9ialRhZyA9PSBvdGhUYWc7XFxuXFxuICAgICAgaWYgKGlzU2FtZVRhZyAmJiBpc0J1ZmZlcihvYmplY3QpKSB7XFxuICAgICAgICBpZiAoIWlzQnVmZmVyKG90aGVyKSkge1xcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgICAgICB9XFxuICAgICAgICBvYmpJc0FyciA9IHRydWU7XFxuICAgICAgICBvYmpJc09iaiA9IGZhbHNlO1xcbiAgICAgIH1cXG4gICAgICBpZiAoaXNTYW1lVGFnICYmICFvYmpJc09iaikge1xcbiAgICAgICAgc3RhY2sgfHwgKHN0YWNrID0gbmV3IFN0YWNrKTtcXG4gICAgICAgIHJldHVybiAob2JqSXNBcnIgfHwgaXNUeXBlZEFycmF5KG9iamVjdCkpXFxuICAgICAgICAgID8gZXF1YWxBcnJheXMob2JqZWN0LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjaylcXG4gICAgICAgICAgOiBlcXVhbEJ5VGFnKG9iamVjdCwgb3RoZXIsIG9ialRhZywgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjayk7XFxuICAgICAgfVxcbiAgICAgIGlmICghKGJpdG1hc2sgJiBDT01QQVJFX1BBUlRJQUxfRkxBRykpIHtcXG4gICAgICAgIHZhciBvYmpJc1dyYXBwZWQgPSBvYmpJc09iaiAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgJ19fd3JhcHBlZF9fJyksXFxuICAgICAgICAgICAgb3RoSXNXcmFwcGVkID0gb3RoSXNPYmogJiYgaGFzT3duUHJvcGVydHkuY2FsbChvdGhlciwgJ19fd3JhcHBlZF9fJyk7XFxuXFxuICAgICAgICBpZiAob2JqSXNXcmFwcGVkIHx8IG90aElzV3JhcHBlZCkge1xcbiAgICAgICAgICB2YXIgb2JqVW53cmFwcGVkID0gb2JqSXNXcmFwcGVkID8gb2JqZWN0LnZhbHVlKCkgOiBvYmplY3QsXFxuICAgICAgICAgICAgICBvdGhVbndyYXBwZWQgPSBvdGhJc1dyYXBwZWQgPyBvdGhlci52YWx1ZSgpIDogb3RoZXI7XFxuXFxuICAgICAgICAgIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XFxuICAgICAgICAgIHJldHVybiBlcXVhbEZ1bmMob2JqVW53cmFwcGVkLCBvdGhVbndyYXBwZWQsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIHN0YWNrKTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgaWYgKCFpc1NhbWVUYWcpIHtcXG4gICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICB9XFxuICAgICAgc3RhY2sgfHwgKHN0YWNrID0gbmV3IFN0YWNrKTtcXG4gICAgICByZXR1cm4gZXF1YWxPYmplY3RzKG9iamVjdCwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc01hcGAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG1hcCwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUlzTWFwKHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgZ2V0VGFnKHZhbHVlKSA9PSBtYXBUYWc7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTWF0Y2hgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgdG8gbWF0Y2guXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IG1hdGNoRGF0YSBUaGUgcHJvcGVydHkgbmFtZXMsIHZhbHVlcywgYW5kIGNvbXBhcmUgZmxhZ3MgdG8gbWF0Y2guXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG9iamVjdGAgaXMgYSBtYXRjaCwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUlzTWF0Y2gob2JqZWN0LCBzb3VyY2UsIG1hdGNoRGF0YSwgY3VzdG9taXplcikge1xcbiAgICAgIHZhciBpbmRleCA9IG1hdGNoRGF0YS5sZW5ndGgsXFxuICAgICAgICAgIGxlbmd0aCA9IGluZGV4LFxcbiAgICAgICAgICBub0N1c3RvbWl6ZXIgPSAhY3VzdG9taXplcjtcXG5cXG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcXG4gICAgICAgIHJldHVybiAhbGVuZ3RoO1xcbiAgICAgIH1cXG4gICAgICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcXG4gICAgICB3aGlsZSAoaW5kZXgtLSkge1xcbiAgICAgICAgdmFyIGRhdGEgPSBtYXRjaERhdGFbaW5kZXhdO1xcbiAgICAgICAgaWYgKChub0N1c3RvbWl6ZXIgJiYgZGF0YVsyXSlcXG4gICAgICAgICAgICAgID8gZGF0YVsxXSAhPT0gb2JqZWN0W2RhdGFbMF1dXFxuICAgICAgICAgICAgICA6ICEoZGF0YVswXSBpbiBvYmplY3QpXFxuICAgICAgICAgICAgKSB7XFxuICAgICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICAgIGRhdGEgPSBtYXRjaERhdGFbaW5kZXhdO1xcbiAgICAgICAgdmFyIGtleSA9IGRhdGFbMF0sXFxuICAgICAgICAgICAgb2JqVmFsdWUgPSBvYmplY3Rba2V5XSxcXG4gICAgICAgICAgICBzcmNWYWx1ZSA9IGRhdGFbMV07XFxuXFxuICAgICAgICBpZiAobm9DdXN0b21pemVyICYmIGRhdGFbMl0pIHtcXG4gICAgICAgICAgaWYgKG9ialZhbHVlID09PSB1bmRlZmluZWQgJiYgIShrZXkgaW4gb2JqZWN0KSkge1xcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICAgICAgfVxcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgdmFyIHN0YWNrID0gbmV3IFN0YWNrO1xcbiAgICAgICAgICBpZiAoY3VzdG9taXplcikge1xcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBjdXN0b21pemVyKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5LCBvYmplY3QsIHNvdXJjZSwgc3RhY2spO1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIGlmICghKHJlc3VsdCA9PT0gdW5kZWZpbmVkXFxuICAgICAgICAgICAgICAgID8gYmFzZUlzRXF1YWwoc3JjVmFsdWUsIG9ialZhbHVlLCBDT01QQVJFX1BBUlRJQUxfRkxBRyB8IENPTVBBUkVfVU5PUkRFUkVEX0ZMQUcsIGN1c3RvbWl6ZXIsIHN0YWNrKVxcbiAgICAgICAgICAgICAgICA6IHJlc3VsdFxcbiAgICAgICAgICAgICAgKSkge1xcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNOYXRpdmVgIHdpdGhvdXQgYmFkIHNoaW0gY2hlY2tzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBuYXRpdmUgZnVuY3Rpb24sXFxuICAgICAqICBlbHNlIGBmYWxzZWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlSXNOYXRpdmUodmFsdWUpIHtcXG4gICAgICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1ZSkpIHtcXG4gICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICB9XFxuICAgICAgdmFyIHBhdHRlcm4gPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3I7XFxuICAgICAgcmV0dXJuIHBhdHRlcm4udGVzdCh0b1NvdXJjZSh2YWx1ZSkpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1JlZ0V4cGAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHJlZ2V4cCwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUlzUmVnRXhwKHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gcmVnZXhwVGFnO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1NldGAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHNldCwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUlzU2V0KHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgZ2V0VGFnKHZhbHVlKSA9PSBzZXRUYWc7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzVHlwZWRBcnJheWAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHR5cGVkIGFycmF5LCBlbHNlIGBmYWxzZWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlSXNUeXBlZEFycmF5KHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiZcXG4gICAgICAgIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgISF0eXBlZEFycmF5VGFnc1tiYXNlR2V0VGFnKHZhbHVlKV07XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLml0ZXJhdGVlYC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHsqfSBbdmFsdWU9Xy5pZGVudGl0eV0gVGhlIHZhbHVlIHRvIGNvbnZlcnQgdG8gYW4gaXRlcmF0ZWUuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgaXRlcmF0ZWUuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlSXRlcmF0ZWUodmFsdWUpIHtcXG4gICAgICAvLyBEb24ndCBzdG9yZSB0aGUgYHR5cGVvZmAgcmVzdWx0IGluIGEgdmFyaWFibGUgdG8gYXZvaWQgYSBKSVQgYnVnIGluIFNhZmFyaSA5LlxcbiAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MDM0IGZvciBtb3JlIGRldGFpbHMuXFxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nKSB7XFxuICAgICAgICByZXR1cm4gdmFsdWU7XFxuICAgICAgfVxcbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XFxuICAgICAgICByZXR1cm4gaWRlbnRpdHk7XFxuICAgICAgfVxcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCcpIHtcXG4gICAgICAgIHJldHVybiBpc0FycmF5KHZhbHVlKVxcbiAgICAgICAgICA/IGJhc2VNYXRjaGVzUHJvcGVydHkodmFsdWVbMF0sIHZhbHVlWzFdKVxcbiAgICAgICAgICA6IGJhc2VNYXRjaGVzKHZhbHVlKTtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHByb3BlcnR5KHZhbHVlKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c2Agd2hpY2ggZG9lc24ndCB0cmVhdCBzcGFyc2UgYXJyYXlzIGFzIGRlbnNlLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlS2V5cyhvYmplY3QpIHtcXG4gICAgICBpZiAoIWlzUHJvdG90eXBlKG9iamVjdCkpIHtcXG4gICAgICAgIHJldHVybiBuYXRpdmVLZXlzKG9iamVjdCk7XFxuICAgICAgfVxcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcXG4gICAgICBmb3IgKHZhciBrZXkgaW4gT2JqZWN0KG9iamVjdCkpIHtcXG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBrZXkgIT0gJ2NvbnN0cnVjdG9yJykge1xcbiAgICAgICAgICByZXN1bHQucHVzaChrZXkpO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5rZXlzSW5gIHdoaWNoIGRvZXNuJ3QgdHJlYXQgc3BhcnNlIGFycmF5cyBhcyBkZW5zZS5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZUtleXNJbihvYmplY3QpIHtcXG4gICAgICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcXG4gICAgICAgIHJldHVybiBuYXRpdmVLZXlzSW4ob2JqZWN0KTtcXG4gICAgICB9XFxuICAgICAgdmFyIGlzUHJvdG8gPSBpc1Byb3RvdHlwZShvYmplY3QpLFxcbiAgICAgICAgICByZXN1bHQgPSBbXTtcXG5cXG4gICAgICBmb3IgKHZhciBrZXkgaW4gb2JqZWN0KSB7XFxuICAgICAgICBpZiAoIShrZXkgPT0gJ2NvbnN0cnVjdG9yJyAmJiAoaXNQcm90byB8fCAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSkge1xcbiAgICAgICAgICByZXN1bHQucHVzaChrZXkpO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5sdGAgd2hpY2ggZG9lc24ndCBjb2VyY2UgYXJndW1lbnRzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxcbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBsZXNzIHRoYW4gYG90aGVyYCxcXG4gICAgICogIGVsc2UgYGZhbHNlYC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VMdCh2YWx1ZSwgb3RoZXIpIHtcXG4gICAgICByZXR1cm4gdmFsdWUgPCBvdGhlcjtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWFwYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZU1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xcbiAgICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgICByZXN1bHQgPSBpc0FycmF5TGlrZShjb2xsZWN0aW9uKSA/IEFycmF5KGNvbGxlY3Rpb24ubGVuZ3RoKSA6IFtdO1xcblxcbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcXG4gICAgICAgIHJlc3VsdFsrK2luZGV4XSA9IGl0ZXJhdGVlKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pO1xcbiAgICAgIH0pO1xcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1hdGNoZXNgIHdoaWNoIGRvZXNuJ3QgY2xvbmUgYHNvdXJjZWAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgdG8gbWF0Y2guXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNwZWMgZnVuY3Rpb24uXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlTWF0Y2hlcyhzb3VyY2UpIHtcXG4gICAgICB2YXIgbWF0Y2hEYXRhID0gZ2V0TWF0Y2hEYXRhKHNvdXJjZSk7XFxuICAgICAgaWYgKG1hdGNoRGF0YS5sZW5ndGggPT0gMSAmJiBtYXRjaERhdGFbMF1bMl0pIHtcXG4gICAgICAgIHJldHVybiBtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZShtYXRjaERhdGFbMF1bMF0sIG1hdGNoRGF0YVswXVsxXSk7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcXG4gICAgICAgIHJldHVybiBvYmplY3QgPT09IHNvdXJjZSB8fCBiYXNlSXNNYXRjaChvYmplY3QsIHNvdXJjZSwgbWF0Y2hEYXRhKTtcXG4gICAgICB9O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5tYXRjaGVzUHJvcGVydHlgIHdoaWNoIGRvZXNuJ3QgY2xvbmUgYHNyY1ZhbHVlYC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cXG4gICAgICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgdmFsdWUgdG8gbWF0Y2guXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNwZWMgZnVuY3Rpb24uXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlTWF0Y2hlc1Byb3BlcnR5KHBhdGgsIHNyY1ZhbHVlKSB7XFxuICAgICAgaWYgKGlzS2V5KHBhdGgpICYmIGlzU3RyaWN0Q29tcGFyYWJsZShzcmNWYWx1ZSkpIHtcXG4gICAgICAgIHJldHVybiBtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZSh0b0tleShwYXRoKSwgc3JjVmFsdWUpO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XFxuICAgICAgICB2YXIgb2JqVmFsdWUgPSBnZXQob2JqZWN0LCBwYXRoKTtcXG4gICAgICAgIHJldHVybiAob2JqVmFsdWUgPT09IHVuZGVmaW5lZCAmJiBvYmpWYWx1ZSA9PT0gc3JjVmFsdWUpXFxuICAgICAgICAgID8gaGFzSW4ob2JqZWN0LCBwYXRoKVxcbiAgICAgICAgICA6IGJhc2VJc0VxdWFsKHNyY1ZhbHVlLCBvYmpWYWx1ZSwgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgfCBDT01QQVJFX1VOT1JERVJFRF9GTEFHKTtcXG4gICAgICB9O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5tZXJnZWAgd2l0aG91dCBzdXBwb3J0IGZvciBtdWx0aXBsZSBzb3VyY2VzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzcmNJbmRleCBUaGUgaW5kZXggb2YgYHNvdXJjZWAuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIG1lcmdlZCB2YWx1ZXMuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgc291cmNlIHZhbHVlcyBhbmQgdGhlaXIgbWVyZ2VkXFxuICAgICAqICBjb3VudGVycGFydHMuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlTWVyZ2Uob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4LCBjdXN0b21pemVyLCBzdGFjaykge1xcbiAgICAgIGlmIChvYmplY3QgPT09IHNvdXJjZSkge1xcbiAgICAgICAgcmV0dXJuO1xcbiAgICAgIH1cXG4gICAgICBiYXNlRm9yKHNvdXJjZSwgZnVuY3Rpb24oc3JjVmFsdWUsIGtleSkge1xcbiAgICAgICAgc3RhY2sgfHwgKHN0YWNrID0gbmV3IFN0YWNrKTtcXG4gICAgICAgIGlmIChpc09iamVjdChzcmNWYWx1ZSkpIHtcXG4gICAgICAgICAgYmFzZU1lcmdlRGVlcChvYmplY3QsIHNvdXJjZSwga2V5LCBzcmNJbmRleCwgYmFzZU1lcmdlLCBjdXN0b21pemVyLCBzdGFjayk7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplclxcbiAgICAgICAgICAgID8gY3VzdG9taXplcihzYWZlR2V0KG9iamVjdCwga2V5KSwgc3JjVmFsdWUsIChrZXkgKyAnJyksIG9iamVjdCwgc291cmNlLCBzdGFjaylcXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcXG5cXG4gICAgICAgICAgaWYgKG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgICBuZXdWYWx1ZSA9IHNyY1ZhbHVlO1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIGFzc2lnbk1lcmdlVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcXG4gICAgICAgIH1cXG4gICAgICB9LCBrZXlzSW4pO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VNZXJnZWAgZm9yIGFycmF5cyBhbmQgb2JqZWN0cyB3aGljaCBwZXJmb3Jtc1xcbiAgICAgKiBkZWVwIG1lcmdlcyBhbmQgdHJhY2tzIHRyYXZlcnNlZCBvYmplY3RzIGVuYWJsaW5nIG9iamVjdHMgd2l0aCBjaXJjdWxhclxcbiAgICAgKiByZWZlcmVuY2VzIHRvIGJlIG1lcmdlZC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIG1lcmdlLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3JjSW5kZXggVGhlIGluZGV4IG9mIGBzb3VyY2VgLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBtZXJnZUZ1bmMgVGhlIGZ1bmN0aW9uIHRvIG1lcmdlIHZhbHVlcy5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIHNvdXJjZSB2YWx1ZXMgYW5kIHRoZWlyIG1lcmdlZFxcbiAgICAgKiAgY291bnRlcnBhcnRzLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZU1lcmdlRGVlcChvYmplY3QsIHNvdXJjZSwga2V5LCBzcmNJbmRleCwgbWVyZ2VGdW5jLCBjdXN0b21pemVyLCBzdGFjaykge1xcbiAgICAgIHZhciBvYmpWYWx1ZSA9IHNhZmVHZXQob2JqZWN0LCBrZXkpLFxcbiAgICAgICAgICBzcmNWYWx1ZSA9IHNhZmVHZXQoc291cmNlLCBrZXkpLFxcbiAgICAgICAgICBzdGFja2VkID0gc3RhY2suZ2V0KHNyY1ZhbHVlKTtcXG5cXG4gICAgICBpZiAoc3RhY2tlZCkge1xcbiAgICAgICAgYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgc3RhY2tlZCk7XFxuICAgICAgICByZXR1cm47XFxuICAgICAgfVxcbiAgICAgIHZhciBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXJcXG4gICAgICAgID8gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUsIChrZXkgKyAnJyksIG9iamVjdCwgc291cmNlLCBzdGFjaylcXG4gICAgICAgIDogdW5kZWZpbmVkO1xcblxcbiAgICAgIHZhciBpc0NvbW1vbiA9IG5ld1ZhbHVlID09PSB1bmRlZmluZWQ7XFxuXFxuICAgICAgaWYgKGlzQ29tbW9uKSB7XFxuICAgICAgICB2YXIgaXNBcnIgPSBpc0FycmF5KHNyY1ZhbHVlKSxcXG4gICAgICAgICAgICBpc0J1ZmYgPSAhaXNBcnIgJiYgaXNCdWZmZXIoc3JjVmFsdWUpLFxcbiAgICAgICAgICAgIGlzVHlwZWQgPSAhaXNBcnIgJiYgIWlzQnVmZiAmJiBpc1R5cGVkQXJyYXkoc3JjVmFsdWUpO1xcblxcbiAgICAgICAgbmV3VmFsdWUgPSBzcmNWYWx1ZTtcXG4gICAgICAgIGlmIChpc0FyciB8fCBpc0J1ZmYgfHwgaXNUeXBlZCkge1xcbiAgICAgICAgICBpZiAoaXNBcnJheShvYmpWYWx1ZSkpIHtcXG4gICAgICAgICAgICBuZXdWYWx1ZSA9IG9ialZhbHVlO1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIGVsc2UgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KG9ialZhbHVlKSkge1xcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gY29weUFycmF5KG9ialZhbHVlKTtcXG4gICAgICAgICAgfVxcbiAgICAgICAgICBlbHNlIGlmIChpc0J1ZmYpIHtcXG4gICAgICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gY2xvbmVCdWZmZXIoc3JjVmFsdWUsIHRydWUpO1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIGVsc2UgaWYgKGlzVHlwZWQpIHtcXG4gICAgICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gY2xvbmVUeXBlZEFycmF5KHNyY1ZhbHVlLCB0cnVlKTtcXG4gICAgICAgICAgfVxcbiAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICBuZXdWYWx1ZSA9IFtdO1xcbiAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIGlmIChpc1BsYWluT2JqZWN0KHNyY1ZhbHVlKSB8fCBpc0FyZ3VtZW50cyhzcmNWYWx1ZSkpIHtcXG4gICAgICAgICAgbmV3VmFsdWUgPSBvYmpWYWx1ZTtcXG4gICAgICAgICAgaWYgKGlzQXJndW1lbnRzKG9ialZhbHVlKSkge1xcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gdG9QbGFpbk9iamVjdChvYmpWYWx1ZSk7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgZWxzZSBpZiAoIWlzT2JqZWN0KG9ialZhbHVlKSB8fCBpc0Z1bmN0aW9uKG9ialZhbHVlKSkge1xcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gaW5pdENsb25lT2JqZWN0KHNyY1ZhbHVlKTtcXG4gICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSB7XFxuICAgICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICAgIGlmIChpc0NvbW1vbikge1xcbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgbWVyZ2Ugb2JqZWN0cyBhbmQgYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXFxuICAgICAgICBzdGFjay5zZXQoc3JjVmFsdWUsIG5ld1ZhbHVlKTtcXG4gICAgICAgIG1lcmdlRnVuYyhuZXdWYWx1ZSwgc3JjVmFsdWUsIHNyY0luZGV4LCBjdXN0b21pemVyLCBzdGFjayk7XFxuICAgICAgICBzdGFja1snZGVsZXRlJ10oc3JjVmFsdWUpO1xcbiAgICAgIH1cXG4gICAgICBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm50aGAgd2hpY2ggZG9lc24ndCBjb2VyY2UgYXJndW1lbnRzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBpbmRleCBvZiB0aGUgZWxlbWVudCB0byByZXR1cm4uXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBudGggZWxlbWVudCBvZiBgYXJyYXlgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZU50aChhcnJheSwgbikge1xcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XFxuICAgICAgaWYgKCFsZW5ndGgpIHtcXG4gICAgICAgIHJldHVybjtcXG4gICAgICB9XFxuICAgICAgbiArPSBuIDwgMCA/IGxlbmd0aCA6IDA7XFxuICAgICAgcmV0dXJuIGlzSW5kZXgobiwgbGVuZ3RoKSA/IGFycmF5W25dIDogdW5kZWZpbmVkO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5vcmRlckJ5YCB3aXRob3V0IHBhcmFtIGd1YXJkcy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9uW118T2JqZWN0W118c3RyaW5nW119IGl0ZXJhdGVlcyBUaGUgaXRlcmF0ZWVzIHRvIHNvcnQgYnkuXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nW119IG9yZGVycyBUaGUgc29ydCBvcmRlcnMgb2YgYGl0ZXJhdGVlc2AuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHNvcnRlZCBhcnJheS5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VPcmRlckJ5KGNvbGxlY3Rpb24sIGl0ZXJhdGVlcywgb3JkZXJzKSB7XFxuICAgICAgaWYgKGl0ZXJhdGVlcy5sZW5ndGgpIHtcXG4gICAgICAgIGl0ZXJhdGVlcyA9IGFycmF5TWFwKGl0ZXJhdGVlcywgZnVuY3Rpb24oaXRlcmF0ZWUpIHtcXG4gICAgICAgICAgaWYgKGlzQXJyYXkoaXRlcmF0ZWUpKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlKSB7XFxuICAgICAgICAgICAgICByZXR1cm4gYmFzZUdldCh2YWx1ZSwgaXRlcmF0ZWUubGVuZ3RoID09PSAxID8gaXRlcmF0ZWVbMF0gOiBpdGVyYXRlZSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuICAgICAgICAgIHJldHVybiBpdGVyYXRlZTtcXG4gICAgICAgIH0pO1xcbiAgICAgIH0gZWxzZSB7XFxuICAgICAgICBpdGVyYXRlZXMgPSBbaWRlbnRpdHldO1xcbiAgICAgIH1cXG5cXG4gICAgICB2YXIgaW5kZXggPSAtMTtcXG4gICAgICBpdGVyYXRlZXMgPSBhcnJheU1hcChpdGVyYXRlZXMsIGJhc2VVbmFyeShnZXRJdGVyYXRlZSgpKSk7XFxuXFxuICAgICAgdmFyIHJlc3VsdCA9IGJhc2VNYXAoY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGtleSwgY29sbGVjdGlvbikge1xcbiAgICAgICAgdmFyIGNyaXRlcmlhID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBmdW5jdGlvbihpdGVyYXRlZSkge1xcbiAgICAgICAgICByZXR1cm4gaXRlcmF0ZWUodmFsdWUpO1xcbiAgICAgICAgfSk7XFxuICAgICAgICByZXR1cm4geyAnY3JpdGVyaWEnOiBjcml0ZXJpYSwgJ2luZGV4JzogKytpbmRleCwgJ3ZhbHVlJzogdmFsdWUgfTtcXG4gICAgICB9KTtcXG5cXG4gICAgICByZXR1cm4gYmFzZVNvcnRCeShyZXN1bHQsIGZ1bmN0aW9uKG9iamVjdCwgb3RoZXIpIHtcXG4gICAgICAgIHJldHVybiBjb21wYXJlTXVsdGlwbGUob2JqZWN0LCBvdGhlciwgb3JkZXJzKTtcXG4gICAgICB9KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucGlja2Agd2l0aG91dCBzdXBwb3J0IGZvciBpbmRpdmlkdWFsXFxuICAgICAqIHByb3BlcnR5IGlkZW50aWZpZXJzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxcbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRocyBUaGUgcHJvcGVydHkgcGF0aHMgdG8gcGljay5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VQaWNrKG9iamVjdCwgcGF0aHMpIHtcXG4gICAgICByZXR1cm4gYmFzZVBpY2tCeShvYmplY3QsIHBhdGhzLCBmdW5jdGlvbih2YWx1ZSwgcGF0aCkge1xcbiAgICAgICAgcmV0dXJuIGhhc0luKG9iamVjdCwgcGF0aCk7XFxuICAgICAgfSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mICBgXy5waWNrQnlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgc291cmNlIG9iamVjdC5cXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gcGF0aHMgVGhlIHByb3BlcnR5IHBhdGhzIHRvIHBpY2suXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgcHJvcGVydHkuXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlUGlja0J5KG9iamVjdCwgcGF0aHMsIHByZWRpY2F0ZSkge1xcbiAgICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgICBsZW5ndGggPSBwYXRocy5sZW5ndGgsXFxuICAgICAgICAgIHJlc3VsdCA9IHt9O1xcblxcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgICB2YXIgcGF0aCA9IHBhdGhzW2luZGV4XSxcXG4gICAgICAgICAgICB2YWx1ZSA9IGJhc2VHZXQob2JqZWN0LCBwYXRoKTtcXG5cXG4gICAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIHBhdGgpKSB7XFxuICAgICAgICAgIGJhc2VTZXQocmVzdWx0LCBjYXN0UGF0aChwYXRoLCBvYmplY3QpLCB2YWx1ZSk7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZVByb3BlcnR5YCB3aGljaCBzdXBwb3J0cyBkZWVwIHBhdGhzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhY2Nlc3NvciBmdW5jdGlvbi5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VQcm9wZXJ0eURlZXAocGF0aCkge1xcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcXG4gICAgICAgIHJldHVybiBiYXNlR2V0KG9iamVjdCwgcGF0aCk7XFxuICAgICAgfTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHVsbEFsbEJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlXFxuICAgICAqIHNob3J0aGFuZHMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIHJlbW92ZS5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZVB1bGxBbGwoYXJyYXksIHZhbHVlcywgaXRlcmF0ZWUsIGNvbXBhcmF0b3IpIHtcXG4gICAgICB2YXIgaW5kZXhPZiA9IGNvbXBhcmF0b3IgPyBiYXNlSW5kZXhPZldpdGggOiBiYXNlSW5kZXhPZixcXG4gICAgICAgICAgaW5kZXggPSAtMSxcXG4gICAgICAgICAgbGVuZ3RoID0gdmFsdWVzLmxlbmd0aCxcXG4gICAgICAgICAgc2VlbiA9IGFycmF5O1xcblxcbiAgICAgIGlmIChhcnJheSA9PT0gdmFsdWVzKSB7XFxuICAgICAgICB2YWx1ZXMgPSBjb3B5QXJyYXkodmFsdWVzKTtcXG4gICAgICB9XFxuICAgICAgaWYgKGl0ZXJhdGVlKSB7XFxuICAgICAgICBzZWVuID0gYXJyYXlNYXAoYXJyYXksIGJhc2VVbmFyeShpdGVyYXRlZSkpO1xcbiAgICAgIH1cXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xcbiAgICAgICAgdmFyIGZyb21JbmRleCA9IDAsXFxuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZXNbaW5kZXhdLFxcbiAgICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUgPyBpdGVyYXRlZSh2YWx1ZSkgOiB2YWx1ZTtcXG5cXG4gICAgICAgIHdoaWxlICgoZnJvbUluZGV4ID0gaW5kZXhPZihzZWVuLCBjb21wdXRlZCwgZnJvbUluZGV4LCBjb21wYXJhdG9yKSkgPiAtMSkge1xcbiAgICAgICAgICBpZiAoc2VlbiAhPT0gYXJyYXkpIHtcXG4gICAgICAgICAgICBzcGxpY2UuY2FsbChzZWVuLCBmcm9tSW5kZXgsIDEpO1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIHNwbGljZS5jYWxsKGFycmF5LCBmcm9tSW5kZXgsIDEpO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICByZXR1cm4gYXJyYXk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnB1bGxBdGAgd2l0aG91dCBzdXBwb3J0IGZvciBpbmRpdmlkdWFsXFxuICAgICAqIGluZGV4ZXMgb3IgY2FwdHVyaW5nIHRoZSByZW1vdmVkIGVsZW1lbnRzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxcbiAgICAgKiBAcGFyYW0ge251bWJlcltdfSBpbmRleGVzIFRoZSBpbmRleGVzIG9mIGVsZW1lbnRzIHRvIHJlbW92ZS5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlUHVsbEF0KGFycmF5LCBpbmRleGVzKSB7XFxuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID8gaW5kZXhlcy5sZW5ndGggOiAwLFxcbiAgICAgICAgICBsYXN0SW5kZXggPSBsZW5ndGggLSAxO1xcblxcbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xcbiAgICAgICAgdmFyIGluZGV4ID0gaW5kZXhlc1tsZW5ndGhdO1xcbiAgICAgICAgaWYgKGxlbmd0aCA9PSBsYXN0SW5kZXggfHwgaW5kZXggIT09IHByZXZpb3VzKSB7XFxuICAgICAgICAgIHZhciBwcmV2aW91cyA9IGluZGV4O1xcbiAgICAgICAgICBpZiAoaXNJbmRleChpbmRleCkpIHtcXG4gICAgICAgICAgICBzcGxpY2UuY2FsbChhcnJheSwgaW5kZXgsIDEpO1xcbiAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIGJhc2VVbnNldChhcnJheSwgaW5kZXgpO1xcbiAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBhcnJheTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucmFuZG9tYCB3aXRob3V0IHN1cHBvcnQgZm9yIHJldHVybmluZ1xcbiAgICAgKiBmbG9hdGluZy1wb2ludCBudW1iZXJzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbG93ZXIgVGhlIGxvd2VyIGJvdW5kLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdXBwZXIgVGhlIHVwcGVyIGJvdW5kLlxcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSByYW5kb20gbnVtYmVyLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZVJhbmRvbShsb3dlciwgdXBwZXIpIHtcXG4gICAgICByZXR1cm4gbG93ZXIgKyBuYXRpdmVGbG9vcihuYXRpdmVSYW5kb20oKSAqICh1cHBlciAtIGxvd2VyICsgMSkpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yYW5nZWAgYW5kIGBfLnJhbmdlUmlnaHRgIHdoaWNoIGRvZXNuJ3RcXG4gICAgICogY29lcmNlIGFyZ3VtZW50cy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0IFRoZSBzdGFydCBvZiB0aGUgcmFuZ2UuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmQgVGhlIGVuZCBvZiB0aGUgcmFuZ2UuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGVwIFRoZSB2YWx1ZSB0byBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IGJ5LlxcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSByYW5nZSBvZiBudW1iZXJzLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZVJhbmdlKHN0YXJ0LCBlbmQsIHN0ZXAsIGZyb21SaWdodCkge1xcbiAgICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgICBsZW5ndGggPSBuYXRpdmVNYXgobmF0aXZlQ2VpbCgoZW5kIC0gc3RhcnQpIC8gKHN0ZXAgfHwgMSkpLCAwKSxcXG4gICAgICAgICAgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtcXG5cXG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcXG4gICAgICAgIHJlc3VsdFtmcm9tUmlnaHQgPyBsZW5ndGggOiArK2luZGV4XSA9IHN0YXJ0O1xcbiAgICAgICAgc3RhcnQgKz0gc3RlcDtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucmVwZWF0YCB3aGljaCBkb2Vzbid0IGNvZXJjZSBhcmd1bWVudHMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byByZXBlYXQuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gcmVwZWF0IHRoZSBzdHJpbmcuXFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHJlcGVhdGVkIHN0cmluZy5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VSZXBlYXQoc3RyaW5nLCBuKSB7XFxuICAgICAgdmFyIHJlc3VsdCA9ICcnO1xcbiAgICAgIGlmICghc3RyaW5nIHx8IG4gPCAxIHx8IG4gPiBNQVhfU0FGRV9JTlRFR0VSKSB7XFxuICAgICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICAgIH1cXG4gICAgICAvLyBMZXZlcmFnZSB0aGUgZXhwb25lbnRpYXRpb24gYnkgc3F1YXJpbmcgYWxnb3JpdGhtIGZvciBhIGZhc3RlciByZXBlYXQuXFxuICAgICAgLy8gU2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0V4cG9uZW50aWF0aW9uX2J5X3NxdWFyaW5nIGZvciBtb3JlIGRldGFpbHMuXFxuICAgICAgZG8ge1xcbiAgICAgICAgaWYgKG4gJSAyKSB7XFxuICAgICAgICAgIHJlc3VsdCArPSBzdHJpbmc7XFxuICAgICAgICB9XFxuICAgICAgICBuID0gbmF0aXZlRmxvb3IobiAvIDIpO1xcbiAgICAgICAgaWYgKG4pIHtcXG4gICAgICAgICAgc3RyaW5nICs9IHN0cmluZztcXG4gICAgICAgIH1cXG4gICAgICB9IHdoaWxlIChuKTtcXG5cXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yZXN0YCB3aGljaCBkb2Vzbid0IHZhbGlkYXRlIG9yIGNvZXJjZSBhcmd1bWVudHMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9ZnVuYy5sZW5ndGgtMV0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSByZXN0IHBhcmFtZXRlci5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlUmVzdChmdW5jLCBzdGFydCkge1xcbiAgICAgIHJldHVybiBzZXRUb1N0cmluZyhvdmVyUmVzdChmdW5jLCBzdGFydCwgaWRlbnRpdHkpLCBmdW5jICsgJycpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zYW1wbGVgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzYW1wbGUuXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByYW5kb20gZWxlbWVudC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VTYW1wbGUoY29sbGVjdGlvbikge1xcbiAgICAgIHJldHVybiBhcnJheVNhbXBsZSh2YWx1ZXMoY29sbGVjdGlvbikpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zYW1wbGVTaXplYCB3aXRob3V0IHBhcmFtIGd1YXJkcy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2FtcGxlLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHNhbXBsZS5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSByYW5kb20gZWxlbWVudHMuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlU2FtcGxlU2l6ZShjb2xsZWN0aW9uLCBuKSB7XFxuICAgICAgdmFyIGFycmF5ID0gdmFsdWVzKGNvbGxlY3Rpb24pO1xcbiAgICAgIHJldHVybiBzaHVmZmxlU2VsZihhcnJheSwgYmFzZUNsYW1wKG4sIDAsIGFycmF5Lmxlbmd0aCkpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zZXRgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gc2V0LlxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIHBhdGggY3JlYXRpb24uXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlU2V0KG9iamVjdCwgcGF0aCwgdmFsdWUsIGN1c3RvbWl6ZXIpIHtcXG4gICAgICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcXG4gICAgICAgIHJldHVybiBvYmplY3Q7XFxuICAgICAgfVxcbiAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xcblxcbiAgICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aCxcXG4gICAgICAgICAgbGFzdEluZGV4ID0gbGVuZ3RoIC0gMSxcXG4gICAgICAgICAgbmVzdGVkID0gb2JqZWN0O1xcblxcbiAgICAgIHdoaWxlIChuZXN0ZWQgIT0gbnVsbCAmJiArK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgICB2YXIga2V5ID0gdG9LZXkocGF0aFtpbmRleF0pLFxcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gdmFsdWU7XFxuXFxuICAgICAgICBpZiAoa2V5ID09PSAnX19wcm90b19fJyB8fCBrZXkgPT09ICdjb25zdHJ1Y3RvcicgfHwga2V5ID09PSAncHJvdG90eXBlJykge1xcbiAgICAgICAgICByZXR1cm4gb2JqZWN0O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgaWYgKGluZGV4ICE9IGxhc3RJbmRleCkge1xcbiAgICAgICAgICB2YXIgb2JqVmFsdWUgPSBuZXN0ZWRba2V5XTtcXG4gICAgICAgICAgbmV3VmFsdWUgPSBjdXN0b21pemVyID8gY3VzdG9taXplcihvYmpWYWx1ZSwga2V5LCBuZXN0ZWQpIDogdW5kZWZpbmVkO1xcbiAgICAgICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gaXNPYmplY3Qob2JqVmFsdWUpXFxuICAgICAgICAgICAgICA/IG9ialZhbHVlXFxuICAgICAgICAgICAgICA6IChpc0luZGV4KHBhdGhbaW5kZXggKyAxXSkgPyBbXSA6IHt9KTtcXG4gICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgYXNzaWduVmFsdWUobmVzdGVkLCBrZXksIG5ld1ZhbHVlKTtcXG4gICAgICAgIG5lc3RlZCA9IG5lc3RlZFtrZXldO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gb2JqZWN0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgc2V0RGF0YWAgd2l0aG91dCBzdXBwb3J0IGZvciBob3QgbG9vcCBzaG9ydGluZy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXNzb2NpYXRlIG1ldGFkYXRhIHdpdGguXFxuICAgICAqIEBwYXJhbSB7Kn0gZGF0YSBUaGUgbWV0YWRhdGEuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXFxuICAgICAqL1xcbiAgICB2YXIgYmFzZVNldERhdGEgPSAhbWV0YU1hcCA/IGlkZW50aXR5IDogZnVuY3Rpb24oZnVuYywgZGF0YSkge1xcbiAgICAgIG1ldGFNYXAuc2V0KGZ1bmMsIGRhdGEpO1xcbiAgICAgIHJldHVybiBmdW5jO1xcbiAgICB9O1xcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYHNldFRvU3RyaW5nYCB3aXRob3V0IHN1cHBvcnQgZm9yIGhvdCBsb29wIHNob3J0aW5nLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBtb2RpZnkuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHN0cmluZyBUaGUgYHRvU3RyaW5nYCByZXN1bHQuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXFxuICAgICAqL1xcbiAgICB2YXIgYmFzZVNldFRvU3RyaW5nID0gIWRlZmluZVByb3BlcnR5ID8gaWRlbnRpdHkgOiBmdW5jdGlvbihmdW5jLCBzdHJpbmcpIHtcXG4gICAgICByZXR1cm4gZGVmaW5lUHJvcGVydHkoZnVuYywgJ3RvU3RyaW5nJywge1xcbiAgICAgICAgJ2NvbmZpZ3VyYWJsZSc6IHRydWUsXFxuICAgICAgICAnZW51bWVyYWJsZSc6IGZhbHNlLFxcbiAgICAgICAgJ3ZhbHVlJzogY29uc3RhbnQoc3RyaW5nKSxcXG4gICAgICAgICd3cml0YWJsZSc6IHRydWVcXG4gICAgICB9KTtcXG4gICAgfTtcXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNodWZmbGVgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzaHVmZmxlLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzaHVmZmxlZCBhcnJheS5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VTaHVmZmxlKGNvbGxlY3Rpb24pIHtcXG4gICAgICByZXR1cm4gc2h1ZmZsZVNlbGYodmFsdWVzKGNvbGxlY3Rpb24pKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc2xpY2VgIHdpdGhvdXQgYW4gaXRlcmF0ZWUgY2FsbCBndWFyZC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNsaWNlLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbi5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtlbmQ9YXJyYXkubGVuZ3RoXSBUaGUgZW5kIHBvc2l0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlU2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpIHtcXG4gICAgICB2YXIgaW5kZXggPSAtMSxcXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xcblxcbiAgICAgIGlmIChzdGFydCA8IDApIHtcXG4gICAgICAgIHN0YXJ0ID0gLXN0YXJ0ID4gbGVuZ3RoID8gMCA6IChsZW5ndGggKyBzdGFydCk7XFxuICAgICAgfVxcbiAgICAgIGVuZCA9IGVuZCA+IGxlbmd0aCA/IGxlbmd0aCA6IGVuZDtcXG4gICAgICBpZiAoZW5kIDwgMCkge1xcbiAgICAgICAgZW5kICs9IGxlbmd0aDtcXG4gICAgICB9XFxuICAgICAgbGVuZ3RoID0gc3RhcnQgPiBlbmQgPyAwIDogKChlbmQgLSBzdGFydCkgPj4+IDApO1xcbiAgICAgIHN0YXJ0ID4+Pj0gMDtcXG5cXG4gICAgICB2YXIgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtcXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xcbiAgICAgICAgcmVzdWx0W2luZGV4XSA9IGFycmF5W2luZGV4ICsgc3RhcnRdO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zb21lYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbnkgZWxlbWVudCBwYXNzZXMgdGhlIHByZWRpY2F0ZSBjaGVjayxcXG4gICAgICogIGVsc2UgYGZhbHNlYC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VTb21lKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xcbiAgICAgIHZhciByZXN1bHQ7XFxuXFxuICAgICAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XFxuICAgICAgICByZXN1bHQgPSBwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKTtcXG4gICAgICAgIHJldHVybiAhcmVzdWx0O1xcbiAgICAgIH0pO1xcbiAgICAgIHJldHVybiAhIXJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc29ydGVkSW5kZXhgIGFuZCBgXy5zb3J0ZWRMYXN0SW5kZXhgIHdoaWNoXFxuICAgICAqIHBlcmZvcm1zIGEgYmluYXJ5IHNlYXJjaCBvZiBgYXJyYXlgIHRvIGRldGVybWluZSB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYFxcbiAgICAgKiBzaG91bGQgYmUgaW5zZXJ0ZWQgaW50byBgYXJyYXlgIGluIG9yZGVyIHRvIG1haW50YWluIGl0cyBzb3J0IG9yZGVyLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgc29ydGVkIGFycmF5IHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXRIaWdoZXN0XSBTcGVjaWZ5IHJldHVybmluZyB0aGUgaGlnaGVzdCBxdWFsaWZpZWQgaW5kZXguXFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkXFxuICAgICAqICBpbnRvIGBhcnJheWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlU29ydGVkSW5kZXgoYXJyYXksIHZhbHVlLCByZXRIaWdoZXN0KSB7XFxuICAgICAgdmFyIGxvdyA9IDAsXFxuICAgICAgICAgIGhpZ2ggPSBhcnJheSA9PSBudWxsID8gbG93IDogYXJyYXkubGVuZ3RoO1xcblxcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiYgdmFsdWUgPT09IHZhbHVlICYmIGhpZ2ggPD0gSEFMRl9NQVhfQVJSQVlfTEVOR1RIKSB7XFxuICAgICAgICB3aGlsZSAobG93IDwgaGlnaCkge1xcbiAgICAgICAgICB2YXIgbWlkID0gKGxvdyArIGhpZ2gpID4+PiAxLFxcbiAgICAgICAgICAgICAgY29tcHV0ZWQgPSBhcnJheVttaWRdO1xcblxcbiAgICAgICAgICBpZiAoY29tcHV0ZWQgIT09IG51bGwgJiYgIWlzU3ltYm9sKGNvbXB1dGVkKSAmJlxcbiAgICAgICAgICAgICAgKHJldEhpZ2hlc3QgPyAoY29tcHV0ZWQgPD0gdmFsdWUpIDogKGNvbXB1dGVkIDwgdmFsdWUpKSkge1xcbiAgICAgICAgICAgIGxvdyA9IG1pZCArIDE7XFxuICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgaGlnaCA9IG1pZDtcXG4gICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIGhpZ2g7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXhCeShhcnJheSwgdmFsdWUsIGlkZW50aXR5LCByZXRIaWdoZXN0KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc29ydGVkSW5kZXhCeWAgYW5kIGBfLnNvcnRlZExhc3RJbmRleEJ5YFxcbiAgICAgKiB3aGljaCBpbnZva2VzIGBpdGVyYXRlZWAgZm9yIGB2YWx1ZWAgYW5kIGVhY2ggZWxlbWVudCBvZiBgYXJyYXlgIHRvIGNvbXB1dGVcXG4gICAgICogdGhlaXIgc29ydCByYW5raW5nLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDsgKHZhbHVlKS5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBldmFsdWF0ZS5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3JldEhpZ2hlc3RdIFNwZWNpZnkgcmV0dXJuaW5nIHRoZSBoaWdoZXN0IHF1YWxpZmllZCBpbmRleC5cXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcXG4gICAgICogIGludG8gYGFycmF5YC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VTb3J0ZWRJbmRleEJ5KGFycmF5LCB2YWx1ZSwgaXRlcmF0ZWUsIHJldEhpZ2hlc3QpIHtcXG4gICAgICB2YXIgbG93ID0gMCxcXG4gICAgICAgICAgaGlnaCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xcbiAgICAgIGlmIChoaWdoID09PSAwKSB7XFxuICAgICAgICByZXR1cm4gMDtcXG4gICAgICB9XFxuXFxuICAgICAgdmFsdWUgPSBpdGVyYXRlZSh2YWx1ZSk7XFxuICAgICAgdmFyIHZhbElzTmFOID0gdmFsdWUgIT09IHZhbHVlLFxcbiAgICAgICAgICB2YWxJc051bGwgPSB2YWx1ZSA9PT0gbnVsbCxcXG4gICAgICAgICAgdmFsSXNTeW1ib2wgPSBpc1N5bWJvbCh2YWx1ZSksXFxuICAgICAgICAgIHZhbElzVW5kZWZpbmVkID0gdmFsdWUgPT09IHVuZGVmaW5lZDtcXG5cXG4gICAgICB3aGlsZSAobG93IDwgaGlnaCkge1xcbiAgICAgICAgdmFyIG1pZCA9IG5hdGl2ZUZsb29yKChsb3cgKyBoaWdoKSAvIDIpLFxcbiAgICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUoYXJyYXlbbWlkXSksXFxuICAgICAgICAgICAgb3RoSXNEZWZpbmVkID0gY29tcHV0ZWQgIT09IHVuZGVmaW5lZCxcXG4gICAgICAgICAgICBvdGhJc051bGwgPSBjb21wdXRlZCA9PT0gbnVsbCxcXG4gICAgICAgICAgICBvdGhJc1JlZmxleGl2ZSA9IGNvbXB1dGVkID09PSBjb21wdXRlZCxcXG4gICAgICAgICAgICBvdGhJc1N5bWJvbCA9IGlzU3ltYm9sKGNvbXB1dGVkKTtcXG5cXG4gICAgICAgIGlmICh2YWxJc05hTikge1xcbiAgICAgICAgICB2YXIgc2V0TG93ID0gcmV0SGlnaGVzdCB8fCBvdGhJc1JlZmxleGl2ZTtcXG4gICAgICAgIH0gZWxzZSBpZiAodmFsSXNVbmRlZmluZWQpIHtcXG4gICAgICAgICAgc2V0TG93ID0gb3RoSXNSZWZsZXhpdmUgJiYgKHJldEhpZ2hlc3QgfHwgb3RoSXNEZWZpbmVkKTtcXG4gICAgICAgIH0gZWxzZSBpZiAodmFsSXNOdWxsKSB7XFxuICAgICAgICAgIHNldExvdyA9IG90aElzUmVmbGV4aXZlICYmIG90aElzRGVmaW5lZCAmJiAocmV0SGlnaGVzdCB8fCAhb3RoSXNOdWxsKTtcXG4gICAgICAgIH0gZWxzZSBpZiAodmFsSXNTeW1ib2wpIHtcXG4gICAgICAgICAgc2V0TG93ID0gb3RoSXNSZWZsZXhpdmUgJiYgb3RoSXNEZWZpbmVkICYmICFvdGhJc051bGwgJiYgKHJldEhpZ2hlc3QgfHwgIW90aElzU3ltYm9sKTtcXG4gICAgICAgIH0gZWxzZSBpZiAob3RoSXNOdWxsIHx8IG90aElzU3ltYm9sKSB7XFxuICAgICAgICAgIHNldExvdyA9IGZhbHNlO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgc2V0TG93ID0gcmV0SGlnaGVzdCA/IChjb21wdXRlZCA8PSB2YWx1ZSkgOiAoY29tcHV0ZWQgPCB2YWx1ZSk7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoc2V0TG93KSB7XFxuICAgICAgICAgIGxvdyA9IG1pZCArIDE7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICBoaWdoID0gbWlkO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICByZXR1cm4gbmF0aXZlTWluKGhpZ2gsIE1BWF9BUlJBWV9JTkRFWCk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvcnRlZFVuaXFgIGFuZCBgXy5zb3J0ZWRVbmlxQnlgIHdpdGhvdXRcXG4gICAgICogc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZVNvcnRlZFVuaXEoYXJyYXksIGl0ZXJhdGVlKSB7XFxuICAgICAgdmFyIGluZGV4ID0gLTEsXFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcXG4gICAgICAgICAgcmVzSW5kZXggPSAwLFxcbiAgICAgICAgICByZXN1bHQgPSBbXTtcXG5cXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLFxcbiAgICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUgPyBpdGVyYXRlZSh2YWx1ZSkgOiB2YWx1ZTtcXG5cXG4gICAgICAgIGlmICghaW5kZXggfHwgIWVxKGNvbXB1dGVkLCBzZWVuKSkge1xcbiAgICAgICAgICB2YXIgc2VlbiA9IGNvbXB1dGVkO1xcbiAgICAgICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSB2YWx1ZSA9PT0gMCA/IDAgOiB2YWx1ZTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udG9OdW1iZXJgIHdoaWNoIGRvZXNuJ3QgZW5zdXJlIGNvcnJlY3RcXG4gICAgICogY29udmVyc2lvbnMgb2YgYmluYXJ5LCBoZXhhZGVjaW1hbCwgb3Igb2N0YWwgc3RyaW5nIHZhbHVlcy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbnVtYmVyLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZVRvTnVtYmVyKHZhbHVlKSB7XFxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJykge1xcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xcbiAgICAgIH1cXG4gICAgICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XFxuICAgICAgICByZXR1cm4gTkFOO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gK3ZhbHVlO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50b1N0cmluZ2Agd2hpY2ggZG9lc24ndCBjb252ZXJ0IG51bGxpc2hcXG4gICAgICogdmFsdWVzIHRvIGVtcHR5IHN0cmluZ3MuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0cmluZy5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VUb1N0cmluZyh2YWx1ZSkge1xcbiAgICAgIC8vIEV4aXQgZWFybHkgZm9yIHN0cmluZ3MgdG8gYXZvaWQgYSBwZXJmb3JtYW5jZSBoaXQgaW4gc29tZSBlbnZpcm9ubWVudHMuXFxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJykge1xcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xcbiAgICAgIH1cXG4gICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcXG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbnZlcnQgdmFsdWVzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXFxuICAgICAgICByZXR1cm4gYXJyYXlNYXAodmFsdWUsIGJhc2VUb1N0cmluZykgKyAnJztcXG4gICAgICB9XFxuICAgICAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xcbiAgICAgICAgcmV0dXJuIHN5bWJvbFRvU3RyaW5nID8gc3ltYm9sVG9TdHJpbmcuY2FsbCh2YWx1ZSkgOiAnJztcXG4gICAgICB9XFxuICAgICAgdmFyIHJlc3VsdCA9ICh2YWx1ZSArICcnKTtcXG4gICAgICByZXR1cm4gKHJlc3VsdCA9PSAnMCcgJiYgKDEgLyB2YWx1ZSkgPT0gLUlORklOSVRZKSA/ICctMCcgOiByZXN1bHQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuaXFCeWAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZVVuaXEoYXJyYXksIGl0ZXJhdGVlLCBjb21wYXJhdG9yKSB7XFxuICAgICAgdmFyIGluZGV4ID0gLTEsXFxuICAgICAgICAgIGluY2x1ZGVzID0gYXJyYXlJbmNsdWRlcyxcXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxcbiAgICAgICAgICBpc0NvbW1vbiA9IHRydWUsXFxuICAgICAgICAgIHJlc3VsdCA9IFtdLFxcbiAgICAgICAgICBzZWVuID0gcmVzdWx0O1xcblxcbiAgICAgIGlmIChjb21wYXJhdG9yKSB7XFxuICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xcbiAgICAgICAgaW5jbHVkZXMgPSBhcnJheUluY2x1ZGVzV2l0aDtcXG4gICAgICB9XFxuICAgICAgZWxzZSBpZiAobGVuZ3RoID49IExBUkdFX0FSUkFZX1NJWkUpIHtcXG4gICAgICAgIHZhciBzZXQgPSBpdGVyYXRlZSA/IG51bGwgOiBjcmVhdGVTZXQoYXJyYXkpO1xcbiAgICAgICAgaWYgKHNldCkge1xcbiAgICAgICAgICByZXR1cm4gc2V0VG9BcnJheShzZXQpO1xcbiAgICAgICAgfVxcbiAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcXG4gICAgICAgIGluY2x1ZGVzID0gY2FjaGVIYXM7XFxuICAgICAgICBzZWVuID0gbmV3IFNldENhY2hlO1xcbiAgICAgIH1cXG4gICAgICBlbHNlIHtcXG4gICAgICAgIHNlZW4gPSBpdGVyYXRlZSA/IFtdIDogcmVzdWx0O1xcbiAgICAgIH1cXG4gICAgICBvdXRlcjpcXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLFxcbiAgICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUgPyBpdGVyYXRlZSh2YWx1ZSkgOiB2YWx1ZTtcXG5cXG4gICAgICAgIHZhbHVlID0gKGNvbXBhcmF0b3IgfHwgdmFsdWUgIT09IDApID8gdmFsdWUgOiAwO1xcbiAgICAgICAgaWYgKGlzQ29tbW9uICYmIGNvbXB1dGVkID09PSBjb21wdXRlZCkge1xcbiAgICAgICAgICB2YXIgc2VlbkluZGV4ID0gc2Vlbi5sZW5ndGg7XFxuICAgICAgICAgIHdoaWxlIChzZWVuSW5kZXgtLSkge1xcbiAgICAgICAgICAgIGlmIChzZWVuW3NlZW5JbmRleF0gPT09IGNvbXB1dGVkKSB7XFxuICAgICAgICAgICAgICBjb250aW51ZSBvdXRlcjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgaWYgKGl0ZXJhdGVlKSB7XFxuICAgICAgICAgICAgc2Vlbi5wdXNoKGNvbXB1dGVkKTtcXG4gICAgICAgICAgfVxcbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIGlmICghaW5jbHVkZXMoc2VlbiwgY29tcHV0ZWQsIGNvbXBhcmF0b3IpKSB7XFxuICAgICAgICAgIGlmIChzZWVuICE9PSByZXN1bHQpIHtcXG4gICAgICAgICAgICBzZWVuLnB1c2goY29tcHV0ZWQpO1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udW5zZXRgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcHJvcGVydHkgcGF0aCB0byB1bnNldC5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBwcm9wZXJ0eSBpcyBkZWxldGVkLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlVW5zZXQob2JqZWN0LCBwYXRoKSB7XFxuICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XFxuICAgICAgb2JqZWN0ID0gcGFyZW50KG9iamVjdCwgcGF0aCk7XFxuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsIHx8IGRlbGV0ZSBvYmplY3RbdG9LZXkobGFzdChwYXRoKSldO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy51cGRhdGVgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gdXBkYXRlLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB1cGRhdGVyIFRoZSBmdW5jdGlvbiB0byBwcm9kdWNlIHRoZSB1cGRhdGVkIHZhbHVlLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBwYXRoIGNyZWF0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZVVwZGF0ZShvYmplY3QsIHBhdGgsIHVwZGF0ZXIsIGN1c3RvbWl6ZXIpIHtcXG4gICAgICByZXR1cm4gYmFzZVNldChvYmplY3QsIHBhdGgsIHVwZGF0ZXIoYmFzZUdldChvYmplY3QsIHBhdGgpKSwgY3VzdG9taXplcik7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy5kcm9wV2hpbGVgIGFuZCBgXy50YWtlV2hpbGVgXFxuICAgICAqIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNEcm9wXSBTcGVjaWZ5IGRyb3BwaW5nIGVsZW1lbnRzIGluc3RlYWQgb2YgdGFraW5nIHRoZW0uXFxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlV2hpbGUoYXJyYXksIHByZWRpY2F0ZSwgaXNEcm9wLCBmcm9tUmlnaHQpIHtcXG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxcbiAgICAgICAgICBpbmRleCA9IGZyb21SaWdodCA/IGxlbmd0aCA6IC0xO1xcblxcbiAgICAgIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpICYmXFxuICAgICAgICBwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7fVxcblxcbiAgICAgIHJldHVybiBpc0Ryb3BcXG4gICAgICAgID8gYmFzZVNsaWNlKGFycmF5LCAoZnJvbVJpZ2h0ID8gMCA6IGluZGV4KSwgKGZyb21SaWdodCA/IGluZGV4ICsgMSA6IGxlbmd0aCkpXFxuICAgICAgICA6IGJhc2VTbGljZShhcnJheSwgKGZyb21SaWdodCA/IGluZGV4ICsgMSA6IDApLCAoZnJvbVJpZ2h0ID8gbGVuZ3RoIDogaW5kZXgpKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYHdyYXBwZXJWYWx1ZWAgd2hpY2ggcmV0dXJucyB0aGUgcmVzdWx0IG9mXFxuICAgICAqIHBlcmZvcm1pbmcgYSBzZXF1ZW5jZSBvZiBhY3Rpb25zIG9uIHRoZSB1bndyYXBwZWQgYHZhbHVlYCwgd2hlcmUgZWFjaFxcbiAgICAgKiBzdWNjZXNzaXZlIGFjdGlvbiBpcyBzdXBwbGllZCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBwcmV2aW91cy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdW53cmFwcGVkIHZhbHVlLlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhY3Rpb25zIEFjdGlvbnMgdG8gcGVyZm9ybSB0byByZXNvbHZlIHRoZSB1bndyYXBwZWQgdmFsdWUuXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGJhc2VXcmFwcGVyVmFsdWUodmFsdWUsIGFjdGlvbnMpIHtcXG4gICAgICB2YXIgcmVzdWx0ID0gdmFsdWU7XFxuICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSB7XFxuICAgICAgICByZXN1bHQgPSByZXN1bHQudmFsdWUoKTtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIGFycmF5UmVkdWNlKGFjdGlvbnMsIGZ1bmN0aW9uKHJlc3VsdCwgYWN0aW9uKSB7XFxuICAgICAgICByZXR1cm4gYWN0aW9uLmZ1bmMuYXBwbHkoYWN0aW9uLnRoaXNBcmcsIGFycmF5UHVzaChbcmVzdWx0XSwgYWN0aW9uLmFyZ3MpKTtcXG4gICAgICB9LCByZXN1bHQpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2RzIGxpa2UgYF8ueG9yYCwgd2l0aG91dCBzdXBwb3J0IGZvclxcbiAgICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLCB0aGF0IGFjY2VwdHMgYW4gYXJyYXkgb2YgYXJyYXlzIHRvIGluc3BlY3QuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5cyBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiB2YWx1ZXMuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBiYXNlWG9yKGFycmF5cywgaXRlcmF0ZWUsIGNvbXBhcmF0b3IpIHtcXG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXlzLmxlbmd0aDtcXG4gICAgICBpZiAobGVuZ3RoIDwgMikge1xcbiAgICAgICAgcmV0dXJuIGxlbmd0aCA/IGJhc2VVbmlxKGFycmF5c1swXSkgOiBbXTtcXG4gICAgICB9XFxuICAgICAgdmFyIGluZGV4ID0gLTEsXFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XFxuXFxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICAgIHZhciBhcnJheSA9IGFycmF5c1tpbmRleF0sXFxuICAgICAgICAgICAgb3RoSW5kZXggPSAtMTtcXG5cXG4gICAgICAgIHdoaWxlICgrK290aEluZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgICAgIGlmIChvdGhJbmRleCAhPSBpbmRleCkge1xcbiAgICAgICAgICAgIHJlc3VsdFtpbmRleF0gPSBiYXNlRGlmZmVyZW5jZShyZXN1bHRbaW5kZXhdIHx8IGFycmF5LCBhcnJheXNbb3RoSW5kZXhdLCBpdGVyYXRlZSwgY29tcGFyYXRvcik7XFxuICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgcmV0dXJuIGJhc2VVbmlxKGJhc2VGbGF0dGVuKHJlc3VsdCwgMSksIGl0ZXJhdGVlLCBjb21wYXJhdG9yKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnppcE9iamVjdGAgd2hpY2ggYXNzaWducyB2YWx1ZXMgdXNpbmcgYGFzc2lnbkZ1bmNgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgaWRlbnRpZmllcnMuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgcHJvcGVydHkgdmFsdWVzLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBhc3NpZ25GdW5jIFRoZSBmdW5jdGlvbiB0byBhc3NpZ24gdmFsdWVzLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmFzZVppcE9iamVjdChwcm9wcywgdmFsdWVzLCBhc3NpZ25GdW5jKSB7XFxuICAgICAgdmFyIGluZGV4ID0gLTEsXFxuICAgICAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aCxcXG4gICAgICAgICAgdmFsc0xlbmd0aCA9IHZhbHVlcy5sZW5ndGgsXFxuICAgICAgICAgIHJlc3VsdCA9IHt9O1xcblxcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgICB2YXIgdmFsdWUgPSBpbmRleCA8IHZhbHNMZW5ndGggPyB2YWx1ZXNbaW5kZXhdIDogdW5kZWZpbmVkO1xcbiAgICAgICAgYXNzaWduRnVuYyhyZXN1bHQsIHByb3BzW2luZGV4XSwgdmFsdWUpO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDYXN0cyBgdmFsdWVgIHRvIGFuIGVtcHR5IGFycmF5IGlmIGl0J3Mgbm90IGFuIGFycmF5IGxpa2Ugb2JqZWN0LlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBpbnNwZWN0LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl8T2JqZWN0fSBSZXR1cm5zIHRoZSBjYXN0IGFycmF5LWxpa2Ugb2JqZWN0LlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY2FzdEFycmF5TGlrZU9iamVjdCh2YWx1ZSkge1xcbiAgICAgIHJldHVybiBpc0FycmF5TGlrZU9iamVjdCh2YWx1ZSkgPyB2YWx1ZSA6IFtdO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDYXN0cyBgdmFsdWVgIHRvIGBpZGVudGl0eWAgaWYgaXQncyBub3QgYSBmdW5jdGlvbi5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGNhc3QgZnVuY3Rpb24uXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjYXN0RnVuY3Rpb24odmFsdWUpIHtcXG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdmdW5jdGlvbicgPyB2YWx1ZSA6IGlkZW50aXR5O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDYXN0cyBgdmFsdWVgIHRvIGEgcGF0aCBhcnJheSBpZiBpdCdzIG5vdCBvbmUuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5IGtleXMgb24uXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY2FzdCBwcm9wZXJ0eSBwYXRoIGFycmF5LlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY2FzdFBhdGgodmFsdWUsIG9iamVjdCkge1xcbiAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gaXNLZXkodmFsdWUsIG9iamVjdCkgPyBbdmFsdWVdIDogc3RyaW5nVG9QYXRoKHRvU3RyaW5nKHZhbHVlKSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEEgYGJhc2VSZXN0YCBhbGlhcyB3aGljaCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBgaWRlbnRpdHlgIGJ5IG1vZHVsZVxcbiAgICAgKiByZXBsYWNlbWVudCBwbHVnaW5zLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAdHlwZSB7RnVuY3Rpb259XFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxcbiAgICAgKi9cXG4gICAgdmFyIGNhc3RSZXN0ID0gYmFzZVJlc3Q7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDYXN0cyBgYXJyYXlgIHRvIGEgc2xpY2UgaWYgaXQncyBuZWVkZWQuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnQgVGhlIHN0YXJ0IHBvc2l0aW9uLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2VuZD1hcnJheS5sZW5ndGhdIFRoZSBlbmQgcG9zaXRpb24uXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY2FzdCBzbGljZS5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNhc3RTbGljZShhcnJheSwgc3RhcnQsIGVuZCkge1xcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XFxuICAgICAgZW5kID0gZW5kID09PSB1bmRlZmluZWQgPyBsZW5ndGggOiBlbmQ7XFxuICAgICAgcmV0dXJuICghc3RhcnQgJiYgZW5kID49IGxlbmd0aCkgPyBhcnJheSA6IGJhc2VTbGljZShhcnJheSwgc3RhcnQsIGVuZCk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEEgc2ltcGxlIHdyYXBwZXIgYXJvdW5kIHRoZSBnbG9iYWwgW2BjbGVhclRpbWVvdXRgXShodHRwczovL21kbi5pby9jbGVhclRpbWVvdXQpLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge251bWJlcnxPYmplY3R9IGlkIFRoZSB0aW1lciBpZCBvciB0aW1lb3V0IG9iamVjdCBvZiB0aGUgdGltZXIgdG8gY2xlYXIuXFxuICAgICAqL1xcbiAgICB2YXIgY2xlYXJUaW1lb3V0ID0gY3R4Q2xlYXJUaW1lb3V0IHx8IGZ1bmN0aW9uKGlkKSB7XFxuICAgICAgcmV0dXJuIHJvb3QuY2xlYXJUaW1lb3V0KGlkKTtcXG4gICAgfTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiAgYGJ1ZmZlcmAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7QnVmZmVyfSBidWZmZXIgVGhlIGJ1ZmZlciB0byBjbG9uZS5cXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cXG4gICAgICogQHJldHVybnMge0J1ZmZlcn0gUmV0dXJucyB0aGUgY2xvbmVkIGJ1ZmZlci5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNsb25lQnVmZmVyKGJ1ZmZlciwgaXNEZWVwKSB7XFxuICAgICAgaWYgKGlzRGVlcCkge1xcbiAgICAgICAgcmV0dXJuIGJ1ZmZlci5zbGljZSgpO1xcbiAgICAgIH1cXG4gICAgICB2YXIgbGVuZ3RoID0gYnVmZmVyLmxlbmd0aCxcXG4gICAgICAgICAgcmVzdWx0ID0gYWxsb2NVbnNhZmUgPyBhbGxvY1Vuc2FmZShsZW5ndGgpIDogbmV3IGJ1ZmZlci5jb25zdHJ1Y3RvcihsZW5ndGgpO1xcblxcbiAgICAgIGJ1ZmZlci5jb3B5KHJlc3VsdCk7XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIGBhcnJheUJ1ZmZlcmAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGFycmF5QnVmZmVyIFRoZSBhcnJheSBidWZmZXIgdG8gY2xvbmUuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheUJ1ZmZlcn0gUmV0dXJucyB0aGUgY2xvbmVkIGFycmF5IGJ1ZmZlci5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNsb25lQXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIpIHtcXG4gICAgICB2YXIgcmVzdWx0ID0gbmV3IGFycmF5QnVmZmVyLmNvbnN0cnVjdG9yKGFycmF5QnVmZmVyLmJ5dGVMZW5ndGgpO1xcbiAgICAgIG5ldyBVaW50OEFycmF5KHJlc3VsdCkuc2V0KG5ldyBVaW50OEFycmF5KGFycmF5QnVmZmVyKSk7XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIGBkYXRhVmlld2AuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhVmlldyBUaGUgZGF0YSB2aWV3IHRvIGNsb25lLlxcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgZGF0YSB2aWV3LlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY2xvbmVEYXRhVmlldyhkYXRhVmlldywgaXNEZWVwKSB7XFxuICAgICAgdmFyIGJ1ZmZlciA9IGlzRGVlcCA/IGNsb25lQXJyYXlCdWZmZXIoZGF0YVZpZXcuYnVmZmVyKSA6IGRhdGFWaWV3LmJ1ZmZlcjtcXG4gICAgICByZXR1cm4gbmV3IGRhdGFWaWV3LmNvbnN0cnVjdG9yKGJ1ZmZlciwgZGF0YVZpZXcuYnl0ZU9mZnNldCwgZGF0YVZpZXcuYnl0ZUxlbmd0aCk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgcmVnZXhwYC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHJlZ2V4cCBUaGUgcmVnZXhwIHRvIGNsb25lLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgcmVnZXhwLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY2xvbmVSZWdFeHAocmVnZXhwKSB7XFxuICAgICAgdmFyIHJlc3VsdCA9IG5ldyByZWdleHAuY29uc3RydWN0b3IocmVnZXhwLnNvdXJjZSwgcmVGbGFncy5leGVjKHJlZ2V4cCkpO1xcbiAgICAgIHJlc3VsdC5sYXN0SW5kZXggPSByZWdleHAubGFzdEluZGV4O1xcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiB0aGUgYHN5bWJvbGAgb2JqZWN0LlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc3ltYm9sIFRoZSBzeW1ib2wgb2JqZWN0IHRvIGNsb25lLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgc3ltYm9sIG9iamVjdC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNsb25lU3ltYm9sKHN5bWJvbCkge1xcbiAgICAgIHJldHVybiBzeW1ib2xWYWx1ZU9mID8gT2JqZWN0KHN5bWJvbFZhbHVlT2YuY2FsbChzeW1ib2wpKSA6IHt9O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgYHR5cGVkQXJyYXlgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gdHlwZWRBcnJheSBUaGUgdHlwZWQgYXJyYXkgdG8gY2xvbmUuXFxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCB0eXBlZCBhcnJheS5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNsb25lVHlwZWRBcnJheSh0eXBlZEFycmF5LCBpc0RlZXApIHtcXG4gICAgICB2YXIgYnVmZmVyID0gaXNEZWVwID8gY2xvbmVBcnJheUJ1ZmZlcih0eXBlZEFycmF5LmJ1ZmZlcikgOiB0eXBlZEFycmF5LmJ1ZmZlcjtcXG4gICAgICByZXR1cm4gbmV3IHR5cGVkQXJyYXkuY29uc3RydWN0b3IoYnVmZmVyLCB0eXBlZEFycmF5LmJ5dGVPZmZzZXQsIHR5cGVkQXJyYXkubGVuZ3RoKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ29tcGFyZXMgdmFsdWVzIHRvIHNvcnQgdGhlbSBpbiBhc2NlbmRpbmcgb3JkZXIuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXFxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHNvcnQgb3JkZXIgaW5kaWNhdG9yIGZvciBgdmFsdWVgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY29tcGFyZUFzY2VuZGluZyh2YWx1ZSwgb3RoZXIpIHtcXG4gICAgICBpZiAodmFsdWUgIT09IG90aGVyKSB7XFxuICAgICAgICB2YXIgdmFsSXNEZWZpbmVkID0gdmFsdWUgIT09IHVuZGVmaW5lZCxcXG4gICAgICAgICAgICB2YWxJc051bGwgPSB2YWx1ZSA9PT0gbnVsbCxcXG4gICAgICAgICAgICB2YWxJc1JlZmxleGl2ZSA9IHZhbHVlID09PSB2YWx1ZSxcXG4gICAgICAgICAgICB2YWxJc1N5bWJvbCA9IGlzU3ltYm9sKHZhbHVlKTtcXG5cXG4gICAgICAgIHZhciBvdGhJc0RlZmluZWQgPSBvdGhlciAhPT0gdW5kZWZpbmVkLFxcbiAgICAgICAgICAgIG90aElzTnVsbCA9IG90aGVyID09PSBudWxsLFxcbiAgICAgICAgICAgIG90aElzUmVmbGV4aXZlID0gb3RoZXIgPT09IG90aGVyLFxcbiAgICAgICAgICAgIG90aElzU3ltYm9sID0gaXNTeW1ib2wob3RoZXIpO1xcblxcbiAgICAgICAgaWYgKCghb3RoSXNOdWxsICYmICFvdGhJc1N5bWJvbCAmJiAhdmFsSXNTeW1ib2wgJiYgdmFsdWUgPiBvdGhlcikgfHxcXG4gICAgICAgICAgICAodmFsSXNTeW1ib2wgJiYgb3RoSXNEZWZpbmVkICYmIG90aElzUmVmbGV4aXZlICYmICFvdGhJc051bGwgJiYgIW90aElzU3ltYm9sKSB8fFxcbiAgICAgICAgICAgICh2YWxJc051bGwgJiYgb3RoSXNEZWZpbmVkICYmIG90aElzUmVmbGV4aXZlKSB8fFxcbiAgICAgICAgICAgICghdmFsSXNEZWZpbmVkICYmIG90aElzUmVmbGV4aXZlKSB8fFxcbiAgICAgICAgICAgICF2YWxJc1JlZmxleGl2ZSkge1xcbiAgICAgICAgICByZXR1cm4gMTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmICgoIXZhbElzTnVsbCAmJiAhdmFsSXNTeW1ib2wgJiYgIW90aElzU3ltYm9sICYmIHZhbHVlIDwgb3RoZXIpIHx8XFxuICAgICAgICAgICAgKG90aElzU3ltYm9sICYmIHZhbElzRGVmaW5lZCAmJiB2YWxJc1JlZmxleGl2ZSAmJiAhdmFsSXNOdWxsICYmICF2YWxJc1N5bWJvbCkgfHxcXG4gICAgICAgICAgICAob3RoSXNOdWxsICYmIHZhbElzRGVmaW5lZCAmJiB2YWxJc1JlZmxleGl2ZSkgfHxcXG4gICAgICAgICAgICAoIW90aElzRGVmaW5lZCAmJiB2YWxJc1JlZmxleGl2ZSkgfHxcXG4gICAgICAgICAgICAhb3RoSXNSZWZsZXhpdmUpIHtcXG4gICAgICAgICAgcmV0dXJuIC0xO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICByZXR1cm4gMDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVXNlZCBieSBgXy5vcmRlckJ5YCB0byBjb21wYXJlIG11bHRpcGxlIHByb3BlcnRpZXMgb2YgYSB2YWx1ZSB0byBhbm90aGVyXFxuICAgICAqIGFuZCBzdGFibGUgc29ydCB0aGVtLlxcbiAgICAgKlxcbiAgICAgKiBJZiBgb3JkZXJzYCBpcyB1bnNwZWNpZmllZCwgYWxsIHZhbHVlcyBhcmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlci4gT3RoZXJ3aXNlLFxcbiAgICAgKiBzcGVjaWZ5IGFuIG9yZGVyIG9mIFxcXCJkZXNjXFxcIiBmb3IgZGVzY2VuZGluZyBvciBcXFwiYXNjXFxcIiBmb3IgYXNjZW5kaW5nIHNvcnQgb3JkZXJcXG4gICAgICogb2YgY29ycmVzcG9uZGluZyB2YWx1ZXMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlLlxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW5bXXxzdHJpbmdbXX0gb3JkZXJzIFRoZSBvcmRlciB0byBzb3J0IGJ5IGZvciBlYWNoIHByb3BlcnR5LlxcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzb3J0IG9yZGVyIGluZGljYXRvciBmb3IgYG9iamVjdGAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjb21wYXJlTXVsdGlwbGUob2JqZWN0LCBvdGhlciwgb3JkZXJzKSB7XFxuICAgICAgdmFyIGluZGV4ID0gLTEsXFxuICAgICAgICAgIG9iakNyaXRlcmlhID0gb2JqZWN0LmNyaXRlcmlhLFxcbiAgICAgICAgICBvdGhDcml0ZXJpYSA9IG90aGVyLmNyaXRlcmlhLFxcbiAgICAgICAgICBsZW5ndGggPSBvYmpDcml0ZXJpYS5sZW5ndGgsXFxuICAgICAgICAgIG9yZGVyc0xlbmd0aCA9IG9yZGVycy5sZW5ndGg7XFxuXFxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICAgIHZhciByZXN1bHQgPSBjb21wYXJlQXNjZW5kaW5nKG9iakNyaXRlcmlhW2luZGV4XSwgb3RoQ3JpdGVyaWFbaW5kZXhdKTtcXG4gICAgICAgIGlmIChyZXN1bHQpIHtcXG4gICAgICAgICAgaWYgKGluZGV4ID49IG9yZGVyc0xlbmd0aCkge1xcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgdmFyIG9yZGVyID0gb3JkZXJzW2luZGV4XTtcXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdCAqIChvcmRlciA9PSAnZGVzYycgPyAtMSA6IDEpO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICAvLyBGaXhlcyBhbiBgQXJyYXkjc29ydGAgYnVnIGluIHRoZSBKUyBlbmdpbmUgZW1iZWRkZWQgaW4gQWRvYmUgYXBwbGljYXRpb25zXFxuICAgICAgLy8gdGhhdCBjYXVzZXMgaXQsIHVuZGVyIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcywgdG8gcHJvdmlkZSB0aGUgc2FtZSB2YWx1ZSBmb3JcXG4gICAgICAvLyBgb2JqZWN0YCBhbmQgYG90aGVyYC4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qYXNoa2VuYXMvdW5kZXJzY29yZS9wdWxsLzEyNDdcXG4gICAgICAvLyBmb3IgbW9yZSBkZXRhaWxzLlxcbiAgICAgIC8vXFxuICAgICAgLy8gVGhpcyBhbHNvIGVuc3VyZXMgYSBzdGFibGUgc29ydCBpbiBWOCBhbmQgb3RoZXIgZW5naW5lcy5cXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9OTAgZm9yIG1vcmUgZGV0YWlscy5cXG4gICAgICByZXR1cm4gb2JqZWN0LmluZGV4IC0gb3RoZXIuaW5kZXg7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgdGhhdCBpcyB0aGUgY29tcG9zaXRpb24gb2YgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLFxcbiAgICAgKiBwbGFjZWhvbGRlcnMsIGFuZCBwcm92aWRlZCBhcmd1bWVudHMgaW50byBhIHNpbmdsZSBhcnJheSBvZiBhcmd1bWVudHMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFyZ3MgVGhlIHByb3ZpZGVkIGFyZ3VtZW50cy5cXG4gICAgICogQHBhcmFtIHtBcnJheX0gcGFydGlhbHMgVGhlIGFyZ3VtZW50cyB0byBwcmVwZW5kIHRvIHRob3NlIHByb3ZpZGVkLlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBob2xkZXJzIFRoZSBgcGFydGlhbHNgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXFxuICAgICAqIEBwYXJhbXMge2Jvb2xlYW59IFtpc0N1cnJpZWRdIFNwZWNpZnkgY29tcG9zaW5nIGZvciBhIGN1cnJpZWQgZnVuY3Rpb24uXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGNvbXBvc2VkIGFyZ3VtZW50cy5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNvbXBvc2VBcmdzKGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzLCBpc0N1cnJpZWQpIHtcXG4gICAgICB2YXIgYXJnc0luZGV4ID0gLTEsXFxuICAgICAgICAgIGFyZ3NMZW5ndGggPSBhcmdzLmxlbmd0aCxcXG4gICAgICAgICAgaG9sZGVyc0xlbmd0aCA9IGhvbGRlcnMubGVuZ3RoLFxcbiAgICAgICAgICBsZWZ0SW5kZXggPSAtMSxcXG4gICAgICAgICAgbGVmdExlbmd0aCA9IHBhcnRpYWxzLmxlbmd0aCxcXG4gICAgICAgICAgcmFuZ2VMZW5ndGggPSBuYXRpdmVNYXgoYXJnc0xlbmd0aCAtIGhvbGRlcnNMZW5ndGgsIDApLFxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShsZWZ0TGVuZ3RoICsgcmFuZ2VMZW5ndGgpLFxcbiAgICAgICAgICBpc1VuY3VycmllZCA9ICFpc0N1cnJpZWQ7XFxuXFxuICAgICAgd2hpbGUgKCsrbGVmdEluZGV4IDwgbGVmdExlbmd0aCkge1xcbiAgICAgICAgcmVzdWx0W2xlZnRJbmRleF0gPSBwYXJ0aWFsc1tsZWZ0SW5kZXhdO1xcbiAgICAgIH1cXG4gICAgICB3aGlsZSAoKythcmdzSW5kZXggPCBob2xkZXJzTGVuZ3RoKSB7XFxuICAgICAgICBpZiAoaXNVbmN1cnJpZWQgfHwgYXJnc0luZGV4IDwgYXJnc0xlbmd0aCkge1xcbiAgICAgICAgICByZXN1bHRbaG9sZGVyc1thcmdzSW5kZXhdXSA9IGFyZ3NbYXJnc0luZGV4XTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgd2hpbGUgKHJhbmdlTGVuZ3RoLS0pIHtcXG4gICAgICAgIHJlc3VsdFtsZWZ0SW5kZXgrK10gPSBhcmdzW2FyZ3NJbmRleCsrXTtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBjb21wb3NlQXJnc2AgZXhjZXB0IHRoYXQgdGhlIGFyZ3VtZW50cyBjb21wb3NpdGlvblxcbiAgICAgKiBpcyB0YWlsb3JlZCBmb3IgYF8ucGFydGlhbFJpZ2h0YC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgcHJvdmlkZWQgYXJndW1lbnRzLlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYXJ0aWFscyBUaGUgYXJndW1lbnRzIHRvIGFwcGVuZCB0byB0aG9zZSBwcm92aWRlZC5cXG4gICAgICogQHBhcmFtIHtBcnJheX0gaG9sZGVycyBUaGUgYHBhcnRpYWxzYCBwbGFjZWhvbGRlciBpbmRleGVzLlxcbiAgICAgKiBAcGFyYW1zIHtib29sZWFufSBbaXNDdXJyaWVkXSBTcGVjaWZ5IGNvbXBvc2luZyBmb3IgYSBjdXJyaWVkIGZ1bmN0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21wb3NlZCBhcmd1bWVudHMuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjb21wb3NlQXJnc1JpZ2h0KGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzLCBpc0N1cnJpZWQpIHtcXG4gICAgICB2YXIgYXJnc0luZGV4ID0gLTEsXFxuICAgICAgICAgIGFyZ3NMZW5ndGggPSBhcmdzLmxlbmd0aCxcXG4gICAgICAgICAgaG9sZGVyc0luZGV4ID0gLTEsXFxuICAgICAgICAgIGhvbGRlcnNMZW5ndGggPSBob2xkZXJzLmxlbmd0aCxcXG4gICAgICAgICAgcmlnaHRJbmRleCA9IC0xLFxcbiAgICAgICAgICByaWdodExlbmd0aCA9IHBhcnRpYWxzLmxlbmd0aCxcXG4gICAgICAgICAgcmFuZ2VMZW5ndGggPSBuYXRpdmVNYXgoYXJnc0xlbmd0aCAtIGhvbGRlcnNMZW5ndGgsIDApLFxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShyYW5nZUxlbmd0aCArIHJpZ2h0TGVuZ3RoKSxcXG4gICAgICAgICAgaXNVbmN1cnJpZWQgPSAhaXNDdXJyaWVkO1xcblxcbiAgICAgIHdoaWxlICgrK2FyZ3NJbmRleCA8IHJhbmdlTGVuZ3RoKSB7XFxuICAgICAgICByZXN1bHRbYXJnc0luZGV4XSA9IGFyZ3NbYXJnc0luZGV4XTtcXG4gICAgICB9XFxuICAgICAgdmFyIG9mZnNldCA9IGFyZ3NJbmRleDtcXG4gICAgICB3aGlsZSAoKytyaWdodEluZGV4IDwgcmlnaHRMZW5ndGgpIHtcXG4gICAgICAgIHJlc3VsdFtvZmZzZXQgKyByaWdodEluZGV4XSA9IHBhcnRpYWxzW3JpZ2h0SW5kZXhdO1xcbiAgICAgIH1cXG4gICAgICB3aGlsZSAoKytob2xkZXJzSW5kZXggPCBob2xkZXJzTGVuZ3RoKSB7XFxuICAgICAgICBpZiAoaXNVbmN1cnJpZWQgfHwgYXJnc0luZGV4IDwgYXJnc0xlbmd0aCkge1xcbiAgICAgICAgICByZXN1bHRbb2Zmc2V0ICsgaG9sZGVyc1tob2xkZXJzSW5kZXhdXSA9IGFyZ3NbYXJnc0luZGV4KytdO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDb3BpZXMgdGhlIHZhbHVlcyBvZiBgc291cmNlYCB0byBgYXJyYXlgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBzb3VyY2UgVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIGZyb20uXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFthcnJheT1bXV0gVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIHRvLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNvcHlBcnJheShzb3VyY2UsIGFycmF5KSB7XFxuICAgICAgdmFyIGluZGV4ID0gLTEsXFxuICAgICAgICAgIGxlbmd0aCA9IHNvdXJjZS5sZW5ndGg7XFxuXFxuICAgICAgYXJyYXkgfHwgKGFycmF5ID0gQXJyYXkobGVuZ3RoKSk7XFxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICAgIGFycmF5W2luZGV4XSA9IHNvdXJjZVtpbmRleF07XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBhcnJheTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ29waWVzIHByb3BlcnRpZXMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgZnJvbS5cXG4gICAgICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IGlkZW50aWZpZXJzIHRvIGNvcHkuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyB0by5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29waWVkIHZhbHVlcy5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNvcHlPYmplY3Qoc291cmNlLCBwcm9wcywgb2JqZWN0LCBjdXN0b21pemVyKSB7XFxuICAgICAgdmFyIGlzTmV3ID0gIW9iamVjdDtcXG4gICAgICBvYmplY3QgfHwgKG9iamVjdCA9IHt9KTtcXG5cXG4gICAgICB2YXIgaW5kZXggPSAtMSxcXG4gICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xcblxcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xcblxcbiAgICAgICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplclxcbiAgICAgICAgICA/IGN1c3RvbWl6ZXIob2JqZWN0W2tleV0sIHNvdXJjZVtrZXldLCBrZXksIG9iamVjdCwgc291cmNlKVxcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcXG5cXG4gICAgICAgIGlmIChuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICAgIG5ld1ZhbHVlID0gc291cmNlW2tleV07XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoaXNOZXcpIHtcXG4gICAgICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICBhc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICByZXR1cm4gb2JqZWN0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDb3BpZXMgb3duIHN5bWJvbHMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgZnJvbS5cXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3Q9e31dIFRoZSBvYmplY3QgdG8gY29weSBzeW1ib2xzIHRvLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY29weVN5bWJvbHMoc291cmNlLCBvYmplY3QpIHtcXG4gICAgICByZXR1cm4gY29weU9iamVjdChzb3VyY2UsIGdldFN5bWJvbHMoc291cmNlKSwgb2JqZWN0KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ29waWVzIG93biBhbmQgaW5oZXJpdGVkIHN5bWJvbHMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgZnJvbS5cXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3Q9e31dIFRoZSBvYmplY3QgdG8gY29weSBzeW1ib2xzIHRvLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY29weVN5bWJvbHNJbihzb3VyY2UsIG9iamVjdCkge1xcbiAgICAgIHJldHVybiBjb3B5T2JqZWN0KHNvdXJjZSwgZ2V0U3ltYm9sc0luKHNvdXJjZSksIG9iamVjdCk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBsaWtlIGBfLmdyb3VwQnlgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzZXR0ZXIgVGhlIGZ1bmN0aW9uIHRvIHNldCBhY2N1bXVsYXRvciB2YWx1ZXMuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpbml0aWFsaXplcl0gVGhlIGFjY3VtdWxhdG9yIG9iamVjdCBpbml0aWFsaXplci5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYWdncmVnYXRvciBmdW5jdGlvbi5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNyZWF0ZUFnZ3JlZ2F0b3Ioc2V0dGVyLCBpbml0aWFsaXplcikge1xcbiAgICAgIHJldHVybiBmdW5jdGlvbihjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xcbiAgICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlBZ2dyZWdhdG9yIDogYmFzZUFnZ3JlZ2F0b3IsXFxuICAgICAgICAgICAgYWNjdW11bGF0b3IgPSBpbml0aWFsaXplciA/IGluaXRpYWxpemVyKCkgOiB7fTtcXG5cXG4gICAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIHNldHRlciwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpLCBhY2N1bXVsYXRvcik7XFxuICAgICAgfTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uYXNzaWduYC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gYXNzaWduZXIgVGhlIGZ1bmN0aW9uIHRvIGFzc2lnbiB2YWx1ZXMuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFzc2lnbmVyIGZ1bmN0aW9uLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY3JlYXRlQXNzaWduZXIoYXNzaWduZXIpIHtcXG4gICAgICByZXR1cm4gYmFzZVJlc3QoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2VzKSB7XFxuICAgICAgICB2YXIgaW5kZXggPSAtMSxcXG4gICAgICAgICAgICBsZW5ndGggPSBzb3VyY2VzLmxlbmd0aCxcXG4gICAgICAgICAgICBjdXN0b21pemVyID0gbGVuZ3RoID4gMSA/IHNvdXJjZXNbbGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQsXFxuICAgICAgICAgICAgZ3VhcmQgPSBsZW5ndGggPiAyID8gc291cmNlc1syXSA6IHVuZGVmaW5lZDtcXG5cXG4gICAgICAgIGN1c3RvbWl6ZXIgPSAoYXNzaWduZXIubGVuZ3RoID4gMyAmJiB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nKVxcbiAgICAgICAgICA/IChsZW5ndGgtLSwgY3VzdG9taXplcilcXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XFxuXFxuICAgICAgICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoc291cmNlc1swXSwgc291cmNlc1sxXSwgZ3VhcmQpKSB7XFxuICAgICAgICAgIGN1c3RvbWl6ZXIgPSBsZW5ndGggPCAzID8gdW5kZWZpbmVkIDogY3VzdG9taXplcjtcXG4gICAgICAgICAgbGVuZ3RoID0gMTtcXG4gICAgICAgIH1cXG4gICAgICAgIG9iamVjdCA9IE9iamVjdChvYmplY3QpO1xcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICAgICAgdmFyIHNvdXJjZSA9IHNvdXJjZXNbaW5kZXhdO1xcbiAgICAgICAgICBpZiAoc291cmNlKSB7XFxuICAgICAgICAgICAgYXNzaWduZXIob2JqZWN0LCBzb3VyY2UsIGluZGV4LCBjdXN0b21pemVyKTtcXG4gICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcXG4gICAgICB9KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGBiYXNlRWFjaGAgb3IgYGJhc2VFYWNoUmlnaHRgIGZ1bmN0aW9uLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGEgY29sbGVjdGlvbi5cXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJhc2UgZnVuY3Rpb24uXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjcmVhdGVCYXNlRWFjaChlYWNoRnVuYywgZnJvbVJpZ2h0KSB7XFxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XFxuICAgICAgICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XFxuICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKCFpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkge1xcbiAgICAgICAgICByZXR1cm4gZWFjaEZ1bmMoY29sbGVjdGlvbiwgaXRlcmF0ZWUpO1xcbiAgICAgICAgfVxcbiAgICAgICAgdmFyIGxlbmd0aCA9IGNvbGxlY3Rpb24ubGVuZ3RoLFxcbiAgICAgICAgICAgIGluZGV4ID0gZnJvbVJpZ2h0ID8gbGVuZ3RoIDogLTEsXFxuICAgICAgICAgICAgaXRlcmFibGUgPSBPYmplY3QoY29sbGVjdGlvbik7XFxuXFxuICAgICAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xcbiAgICAgICAgICBpZiAoaXRlcmF0ZWUoaXRlcmFibGVbaW5kZXhdLCBpbmRleCwgaXRlcmFibGUpID09PSBmYWxzZSkge1xcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gY29sbGVjdGlvbjtcXG4gICAgICB9O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgYmFzZSBmdW5jdGlvbiBmb3IgbWV0aG9kcyBsaWtlIGBfLmZvckluYCBhbmQgYF8uZm9yT3duYC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJhc2UgZnVuY3Rpb24uXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjcmVhdGVCYXNlRm9yKGZyb21SaWdodCkge1xcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QsIGl0ZXJhdGVlLCBrZXlzRnVuYykge1xcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsXFxuICAgICAgICAgICAgaXRlcmFibGUgPSBPYmplY3Qob2JqZWN0KSxcXG4gICAgICAgICAgICBwcm9wcyA9IGtleXNGdW5jKG9iamVjdCksXFxuICAgICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xcblxcbiAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XFxuICAgICAgICAgIHZhciBrZXkgPSBwcm9wc1tmcm9tUmlnaHQgPyBsZW5ndGggOiArK2luZGV4XTtcXG4gICAgICAgICAgaWYgKGl0ZXJhdGVlKGl0ZXJhYmxlW2tleV0sIGtleSwgaXRlcmFibGUpID09PSBmYWxzZSkge1xcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gb2JqZWN0O1xcbiAgICAgIH07XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHdyYXBzIGBmdW5jYCB0byBpbnZva2UgaXQgd2l0aCB0aGUgb3B0aW9uYWwgYHRoaXNgXFxuICAgICAqIGJpbmRpbmcgb2YgYHRoaXNBcmdgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB3cmFwLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBjcmVhdGVXcmFwYCBmb3IgbW9yZSBkZXRhaWxzLlxcbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY3JlYXRlQmluZChmdW5jLCBiaXRtYXNrLCB0aGlzQXJnKSB7XFxuICAgICAgdmFyIGlzQmluZCA9IGJpdG1hc2sgJiBXUkFQX0JJTkRfRkxBRyxcXG4gICAgICAgICAgQ3RvciA9IGNyZWF0ZUN0b3IoZnVuYyk7XFxuXFxuICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcXG4gICAgICAgIHZhciBmbiA9ICh0aGlzICYmIHRoaXMgIT09IHJvb3QgJiYgdGhpcyBpbnN0YW5jZW9mIHdyYXBwZXIpID8gQ3RvciA6IGZ1bmM7XFxuICAgICAgICByZXR1cm4gZm4uYXBwbHkoaXNCaW5kID8gdGhpc0FyZyA6IHRoaXMsIGFyZ3VtZW50cyk7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiB3cmFwcGVyO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gbGlrZSBgXy5sb3dlckZpcnN0YC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZE5hbWUgVGhlIG5hbWUgb2YgdGhlIGBTdHJpbmdgIGNhc2UgbWV0aG9kIHRvIHVzZS5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY2FzZSBmdW5jdGlvbi5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNyZWF0ZUNhc2VGaXJzdChtZXRob2ROYW1lKSB7XFxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0cmluZykge1xcbiAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcXG5cXG4gICAgICAgIHZhciBzdHJTeW1ib2xzID0gaGFzVW5pY29kZShzdHJpbmcpXFxuICAgICAgICAgID8gc3RyaW5nVG9BcnJheShzdHJpbmcpXFxuICAgICAgICAgIDogdW5kZWZpbmVkO1xcblxcbiAgICAgICAgdmFyIGNociA9IHN0clN5bWJvbHNcXG4gICAgICAgICAgPyBzdHJTeW1ib2xzWzBdXFxuICAgICAgICAgIDogc3RyaW5nLmNoYXJBdCgwKTtcXG5cXG4gICAgICAgIHZhciB0cmFpbGluZyA9IHN0clN5bWJvbHNcXG4gICAgICAgICAgPyBjYXN0U2xpY2Uoc3RyU3ltYm9scywgMSkuam9pbignJylcXG4gICAgICAgICAgOiBzdHJpbmcuc2xpY2UoMSk7XFxuXFxuICAgICAgICByZXR1cm4gY2hyW21ldGhvZE5hbWVdKCkgKyB0cmFpbGluZztcXG4gICAgICB9O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gbGlrZSBgXy5jYW1lbENhc2VgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBUaGUgZnVuY3Rpb24gdG8gY29tYmluZSBlYWNoIHdvcmQuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNvbXBvdW5kZXIgZnVuY3Rpb24uXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjcmVhdGVDb21wb3VuZGVyKGNhbGxiYWNrKSB7XFxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0cmluZykge1xcbiAgICAgICAgcmV0dXJuIGFycmF5UmVkdWNlKHdvcmRzKGRlYnVycihzdHJpbmcpLnJlcGxhY2UocmVBcG9zLCAnJykpLCBjYWxsYmFjaywgJycpO1xcbiAgICAgIH07XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHByb2R1Y2VzIGFuIGluc3RhbmNlIG9mIGBDdG9yYCByZWdhcmRsZXNzIG9mXFxuICAgICAqIHdoZXRoZXIgaXQgd2FzIGludm9rZWQgYXMgcGFydCBvZiBhIGBuZXdgIGV4cHJlc3Npb24gb3IgYnkgYGNhbGxgIG9yIGBhcHBseWAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IEN0b3IgVGhlIGNvbnN0cnVjdG9yIHRvIHdyYXAuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjcmVhdGVDdG9yKEN0b3IpIHtcXG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XFxuICAgICAgICAvLyBVc2UgYSBgc3dpdGNoYCBzdGF0ZW1lbnQgdG8gd29yayB3aXRoIGNsYXNzIGNvbnN0cnVjdG9ycy4gU2VlXFxuICAgICAgICAvLyBodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1lY21hc2NyaXB0LWZ1bmN0aW9uLW9iamVjdHMtY2FsbC10aGlzYXJndW1lbnQtYXJndW1lbnRzbGlzdFxcbiAgICAgICAgLy8gZm9yIG1vcmUgZGV0YWlscy5cXG4gICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xcbiAgICAgICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xcbiAgICAgICAgICBjYXNlIDA6IHJldHVybiBuZXcgQ3RvcjtcXG4gICAgICAgICAgY2FzZSAxOiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSk7XFxuICAgICAgICAgIGNhc2UgMjogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0pO1xcbiAgICAgICAgICBjYXNlIDM6IHJldHVybiBuZXcgQ3RvcihhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdKTtcXG4gICAgICAgICAgY2FzZSA0OiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSk7XFxuICAgICAgICAgIGNhc2UgNTogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0sIGFyZ3NbM10sIGFyZ3NbNF0pO1xcbiAgICAgICAgICBjYXNlIDY6IHJldHVybiBuZXcgQ3RvcihhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdLCBhcmdzWzNdLCBhcmdzWzRdLCBhcmdzWzVdKTtcXG4gICAgICAgICAgY2FzZSA3OiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwgYXJnc1s0XSwgYXJnc1s1XSwgYXJnc1s2XSk7XFxuICAgICAgICB9XFxuICAgICAgICB2YXIgdGhpc0JpbmRpbmcgPSBiYXNlQ3JlYXRlKEN0b3IucHJvdG90eXBlKSxcXG4gICAgICAgICAgICByZXN1bHQgPSBDdG9yLmFwcGx5KHRoaXNCaW5kaW5nLCBhcmdzKTtcXG5cXG4gICAgICAgIC8vIE1pbWljIHRoZSBjb25zdHJ1Y3RvcidzIGByZXR1cm5gIGJlaGF2aW9yLlxcbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDEzLjIuMiBmb3IgbW9yZSBkZXRhaWxzLlxcbiAgICAgICAgcmV0dXJuIGlzT2JqZWN0KHJlc3VsdCkgPyByZXN1bHQgOiB0aGlzQmluZGluZztcXG4gICAgICB9O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCB3cmFwcyBgZnVuY2AgdG8gZW5hYmxlIGN1cnJ5aW5nLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB3cmFwLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBjcmVhdGVXcmFwYCBmb3IgbW9yZSBkZXRhaWxzLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYXJpdHkgVGhlIGFyaXR5IG9mIGBmdW5jYC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNyZWF0ZUN1cnJ5KGZ1bmMsIGJpdG1hc2ssIGFyaXR5KSB7XFxuICAgICAgdmFyIEN0b3IgPSBjcmVhdGVDdG9yKGZ1bmMpO1xcblxcbiAgICAgIGZ1bmN0aW9uIHdyYXBwZXIoKSB7XFxuICAgICAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCxcXG4gICAgICAgICAgICBhcmdzID0gQXJyYXkobGVuZ3RoKSxcXG4gICAgICAgICAgICBpbmRleCA9IGxlbmd0aCxcXG4gICAgICAgICAgICBwbGFjZWhvbGRlciA9IGdldEhvbGRlcih3cmFwcGVyKTtcXG5cXG4gICAgICAgIHdoaWxlIChpbmRleC0tKSB7XFxuICAgICAgICAgIGFyZ3NbaW5kZXhdID0gYXJndW1lbnRzW2luZGV4XTtcXG4gICAgICAgIH1cXG4gICAgICAgIHZhciBob2xkZXJzID0gKGxlbmd0aCA8IDMgJiYgYXJnc1swXSAhPT0gcGxhY2Vob2xkZXIgJiYgYXJnc1tsZW5ndGggLSAxXSAhPT0gcGxhY2Vob2xkZXIpXFxuICAgICAgICAgID8gW11cXG4gICAgICAgICAgOiByZXBsYWNlSG9sZGVycyhhcmdzLCBwbGFjZWhvbGRlcik7XFxuXFxuICAgICAgICBsZW5ndGggLT0gaG9sZGVycy5sZW5ndGg7XFxuICAgICAgICBpZiAobGVuZ3RoIDwgYXJpdHkpIHtcXG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlY3VycnkoXFxuICAgICAgICAgICAgZnVuYywgYml0bWFzaywgY3JlYXRlSHlicmlkLCB3cmFwcGVyLnBsYWNlaG9sZGVyLCB1bmRlZmluZWQsXFxuICAgICAgICAgICAgYXJncywgaG9sZGVycywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGFyaXR5IC0gbGVuZ3RoKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHZhciBmbiA9ICh0aGlzICYmIHRoaXMgIT09IHJvb3QgJiYgdGhpcyBpbnN0YW5jZW9mIHdyYXBwZXIpID8gQ3RvciA6IGZ1bmM7XFxuICAgICAgICByZXR1cm4gYXBwbHkoZm4sIHRoaXMsIGFyZ3MpO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gd3JhcHBlcjtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGBfLmZpbmRgIG9yIGBfLmZpbmRMYXN0YCBmdW5jdGlvbi5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZmluZEluZGV4RnVuYyBUaGUgZnVuY3Rpb24gdG8gZmluZCB0aGUgY29sbGVjdGlvbiBpbmRleC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZmluZCBmdW5jdGlvbi5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNyZWF0ZUZpbmQoZmluZEluZGV4RnVuYykge1xcbiAgICAgIHJldHVybiBmdW5jdGlvbihjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIGZyb21JbmRleCkge1xcbiAgICAgICAgdmFyIGl0ZXJhYmxlID0gT2JqZWN0KGNvbGxlY3Rpb24pO1xcbiAgICAgICAgaWYgKCFpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkge1xcbiAgICAgICAgICB2YXIgaXRlcmF0ZWUgPSBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpO1xcbiAgICAgICAgICBjb2xsZWN0aW9uID0ga2V5cyhjb2xsZWN0aW9uKTtcXG4gICAgICAgICAgcHJlZGljYXRlID0gZnVuY3Rpb24oa2V5KSB7IHJldHVybiBpdGVyYXRlZShpdGVyYWJsZVtrZXldLCBrZXksIGl0ZXJhYmxlKTsgfTtcXG4gICAgICAgIH1cXG4gICAgICAgIHZhciBpbmRleCA9IGZpbmRJbmRleEZ1bmMoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBmcm9tSW5kZXgpO1xcbiAgICAgICAgcmV0dXJuIGluZGV4ID4gLTEgPyBpdGVyYWJsZVtpdGVyYXRlZSA/IGNvbGxlY3Rpb25baW5kZXhdIDogaW5kZXhdIDogdW5kZWZpbmVkO1xcbiAgICAgIH07XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBgXy5mbG93YCBvciBgXy5mbG93UmlnaHRgIGZ1bmN0aW9uLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZmxvdyBmdW5jdGlvbi5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNyZWF0ZUZsb3coZnJvbVJpZ2h0KSB7XFxuICAgICAgcmV0dXJuIGZsYXRSZXN0KGZ1bmN0aW9uKGZ1bmNzKSB7XFxuICAgICAgICB2YXIgbGVuZ3RoID0gZnVuY3MubGVuZ3RoLFxcbiAgICAgICAgICAgIGluZGV4ID0gbGVuZ3RoLFxcbiAgICAgICAgICAgIHByZXJlcSA9IExvZGFzaFdyYXBwZXIucHJvdG90eXBlLnRocnU7XFxuXFxuICAgICAgICBpZiAoZnJvbVJpZ2h0KSB7XFxuICAgICAgICAgIGZ1bmNzLnJldmVyc2UoKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHdoaWxlIChpbmRleC0tKSB7XFxuICAgICAgICAgIHZhciBmdW5jID0gZnVuY3NbaW5kZXhdO1xcbiAgICAgICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcXG4gICAgICAgICAgfVxcbiAgICAgICAgICBpZiAocHJlcmVxICYmICF3cmFwcGVyICYmIGdldEZ1bmNOYW1lKGZ1bmMpID09ICd3cmFwcGVyJykge1xcbiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gbmV3IExvZGFzaFdyYXBwZXIoW10sIHRydWUpO1xcbiAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICBpbmRleCA9IHdyYXBwZXIgPyBpbmRleCA6IGxlbmd0aDtcXG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgICAgIGZ1bmMgPSBmdW5jc1tpbmRleF07XFxuXFxuICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGdldEZ1bmNOYW1lKGZ1bmMpLFxcbiAgICAgICAgICAgICAgZGF0YSA9IGZ1bmNOYW1lID09ICd3cmFwcGVyJyA/IGdldERhdGEoZnVuYykgOiB1bmRlZmluZWQ7XFxuXFxuICAgICAgICAgIGlmIChkYXRhICYmIGlzTGF6aWFibGUoZGF0YVswXSkgJiZcXG4gICAgICAgICAgICAgICAgZGF0YVsxXSA9PSAoV1JBUF9BUllfRkxBRyB8IFdSQVBfQ1VSUllfRkxBRyB8IFdSQVBfUEFSVElBTF9GTEFHIHwgV1JBUF9SRUFSR19GTEFHKSAmJlxcbiAgICAgICAgICAgICAgICAhZGF0YVs0XS5sZW5ndGggJiYgZGF0YVs5XSA9PSAxXFxuICAgICAgICAgICAgICApIHtcXG4gICAgICAgICAgICB3cmFwcGVyID0gd3JhcHBlcltnZXRGdW5jTmFtZShkYXRhWzBdKV0uYXBwbHkod3JhcHBlciwgZGF0YVszXSk7XFxuICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgd3JhcHBlciA9IChmdW5jLmxlbmd0aCA9PSAxICYmIGlzTGF6aWFibGUoZnVuYykpXFxuICAgICAgICAgICAgICA/IHdyYXBwZXJbZnVuY05hbWVdKClcXG4gICAgICAgICAgICAgIDogd3JhcHBlci50aHJ1KGZ1bmMpO1xcbiAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XFxuICAgICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzLFxcbiAgICAgICAgICAgICAgdmFsdWUgPSBhcmdzWzBdO1xcblxcbiAgICAgICAgICBpZiAod3JhcHBlciAmJiBhcmdzLmxlbmd0aCA9PSAxICYmIGlzQXJyYXkodmFsdWUpKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXIucGxhbnQodmFsdWUpLnZhbHVlKCk7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgdmFyIGluZGV4ID0gMCxcXG4gICAgICAgICAgICAgIHJlc3VsdCA9IGxlbmd0aCA/IGZ1bmNzW2luZGV4XS5hcHBseSh0aGlzLCBhcmdzKSA6IHZhbHVlO1xcblxcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xcbiAgICAgICAgICAgIHJlc3VsdCA9IGZ1bmNzW2luZGV4XS5jYWxsKHRoaXMsIHJlc3VsdCk7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgICAgIH07XFxuICAgICAgfSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHdyYXBzIGBmdW5jYCB0byBpbnZva2UgaXQgd2l0aCBvcHRpb25hbCBgdGhpc2BcXG4gICAgICogYmluZGluZyBvZiBgdGhpc0FyZ2AsIHBhcnRpYWwgYXBwbGljYXRpb24sIGFuZCBjdXJyeWluZy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxzdHJpbmd9IGZ1bmMgVGhlIGZ1bmN0aW9uIG9yIG1ldGhvZCBuYW1lIHRvIHdyYXAuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBgIGZvciBtb3JlIGRldGFpbHMuXFxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBwcmVwZW5kIHRvIHRob3NlIHByb3ZpZGVkIHRvXFxuICAgICAqICB0aGUgbmV3IGZ1bmN0aW9uLlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc10gVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3BhcnRpYWxzUmlnaHRdIFRoZSBhcmd1bWVudHMgdG8gYXBwZW5kIHRvIHRob3NlIHByb3ZpZGVkXFxuICAgICAqICB0byB0aGUgbmV3IGZ1bmN0aW9uLlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc1JpZ2h0XSBUaGUgYHBhcnRpYWxzUmlnaHRgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFthcmdQb3NdIFRoZSBhcmd1bWVudCBwb3NpdGlvbnMgb2YgdGhlIG5ldyBmdW5jdGlvbi5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcnldIFRoZSBhcml0eSBjYXAgb2YgYGZ1bmNgLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5XSBUaGUgYXJpdHkgb2YgYGZ1bmNgLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY3JlYXRlSHlicmlkKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBwYXJ0aWFsc1JpZ2h0LCBob2xkZXJzUmlnaHQsIGFyZ1BvcywgYXJ5LCBhcml0eSkge1xcbiAgICAgIHZhciBpc0FyeSA9IGJpdG1hc2sgJiBXUkFQX0FSWV9GTEFHLFxcbiAgICAgICAgICBpc0JpbmQgPSBiaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcsXFxuICAgICAgICAgIGlzQmluZEtleSA9IGJpdG1hc2sgJiBXUkFQX0JJTkRfS0VZX0ZMQUcsXFxuICAgICAgICAgIGlzQ3VycmllZCA9IGJpdG1hc2sgJiAoV1JBUF9DVVJSWV9GTEFHIHwgV1JBUF9DVVJSWV9SSUdIVF9GTEFHKSxcXG4gICAgICAgICAgaXNGbGlwID0gYml0bWFzayAmIFdSQVBfRkxJUF9GTEFHLFxcbiAgICAgICAgICBDdG9yID0gaXNCaW5kS2V5ID8gdW5kZWZpbmVkIDogY3JlYXRlQ3RvcihmdW5jKTtcXG5cXG4gICAgICBmdW5jdGlvbiB3cmFwcGVyKCkge1xcbiAgICAgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXFxuICAgICAgICAgICAgYXJncyA9IEFycmF5KGxlbmd0aCksXFxuICAgICAgICAgICAgaW5kZXggPSBsZW5ndGg7XFxuXFxuICAgICAgICB3aGlsZSAoaW5kZXgtLSkge1xcbiAgICAgICAgICBhcmdzW2luZGV4XSA9IGFyZ3VtZW50c1tpbmRleF07XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoaXNDdXJyaWVkKSB7XFxuICAgICAgICAgIHZhciBwbGFjZWhvbGRlciA9IGdldEhvbGRlcih3cmFwcGVyKSxcXG4gICAgICAgICAgICAgIGhvbGRlcnNDb3VudCA9IGNvdW50SG9sZGVycyhhcmdzLCBwbGFjZWhvbGRlcik7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAocGFydGlhbHMpIHtcXG4gICAgICAgICAgYXJncyA9IGNvbXBvc2VBcmdzKGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzLCBpc0N1cnJpZWQpO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKHBhcnRpYWxzUmlnaHQpIHtcXG4gICAgICAgICAgYXJncyA9IGNvbXBvc2VBcmdzUmlnaHQoYXJncywgcGFydGlhbHNSaWdodCwgaG9sZGVyc1JpZ2h0LCBpc0N1cnJpZWQpO1xcbiAgICAgICAgfVxcbiAgICAgICAgbGVuZ3RoIC09IGhvbGRlcnNDb3VudDtcXG4gICAgICAgIGlmIChpc0N1cnJpZWQgJiYgbGVuZ3RoIDwgYXJpdHkpIHtcXG4gICAgICAgICAgdmFyIG5ld0hvbGRlcnMgPSByZXBsYWNlSG9sZGVycyhhcmdzLCBwbGFjZWhvbGRlcik7XFxuICAgICAgICAgIHJldHVybiBjcmVhdGVSZWN1cnJ5KFxcbiAgICAgICAgICAgIGZ1bmMsIGJpdG1hc2ssIGNyZWF0ZUh5YnJpZCwgd3JhcHBlci5wbGFjZWhvbGRlciwgdGhpc0FyZyxcXG4gICAgICAgICAgICBhcmdzLCBuZXdIb2xkZXJzLCBhcmdQb3MsIGFyeSwgYXJpdHkgLSBsZW5ndGhcXG4gICAgICAgICAgKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHZhciB0aGlzQmluZGluZyA9IGlzQmluZCA/IHRoaXNBcmcgOiB0aGlzLFxcbiAgICAgICAgICAgIGZuID0gaXNCaW5kS2V5ID8gdGhpc0JpbmRpbmdbZnVuY10gOiBmdW5jO1xcblxcbiAgICAgICAgbGVuZ3RoID0gYXJncy5sZW5ndGg7XFxuICAgICAgICBpZiAoYXJnUG9zKSB7XFxuICAgICAgICAgIGFyZ3MgPSByZW9yZGVyKGFyZ3MsIGFyZ1Bvcyk7XFxuICAgICAgICB9IGVsc2UgaWYgKGlzRmxpcCAmJiBsZW5ndGggPiAxKSB7XFxuICAgICAgICAgIGFyZ3MucmV2ZXJzZSgpO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKGlzQXJ5ICYmIGFyeSA8IGxlbmd0aCkge1xcbiAgICAgICAgICBhcmdzLmxlbmd0aCA9IGFyeTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmICh0aGlzICYmIHRoaXMgIT09IHJvb3QgJiYgdGhpcyBpbnN0YW5jZW9mIHdyYXBwZXIpIHtcXG4gICAgICAgICAgZm4gPSBDdG9yIHx8IGNyZWF0ZUN0b3IoZm4pO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXNCaW5kaW5nLCBhcmdzKTtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHdyYXBwZXI7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBsaWtlIGBfLmludmVydEJ5YC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gc2V0dGVyIFRoZSBmdW5jdGlvbiB0byBzZXQgYWNjdW11bGF0b3IgdmFsdWVzLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB0b0l0ZXJhdGVlIFRoZSBmdW5jdGlvbiB0byByZXNvbHZlIGl0ZXJhdGVlcy5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgaW52ZXJ0ZXIgZnVuY3Rpb24uXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjcmVhdGVJbnZlcnRlcihzZXR0ZXIsIHRvSXRlcmF0ZWUpIHtcXG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0LCBpdGVyYXRlZSkge1xcbiAgICAgICAgcmV0dXJuIGJhc2VJbnZlcnRlcihvYmplY3QsIHNldHRlciwgdG9JdGVyYXRlZShpdGVyYXRlZSksIHt9KTtcXG4gICAgICB9O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwZXJmb3JtcyBhIG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gb24gdHdvIHZhbHVlcy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3BlcmF0b3IgVGhlIGZ1bmN0aW9uIHRvIHBlcmZvcm0gdGhlIG9wZXJhdGlvbi5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtkZWZhdWx0VmFsdWVdIFRoZSB2YWx1ZSB1c2VkIGZvciBgdW5kZWZpbmVkYCBhcmd1bWVudHMuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gZnVuY3Rpb24uXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjcmVhdGVNYXRoT3BlcmF0aW9uKG9wZXJhdG9yLCBkZWZhdWx0VmFsdWUpIHtcXG4gICAgICByZXR1cm4gZnVuY3Rpb24odmFsdWUsIG90aGVyKSB7XFxuICAgICAgICB2YXIgcmVzdWx0O1xcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgb3RoZXIgPT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgcmVzdWx0ID0gdmFsdWU7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAob3RoZXIgIT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgICByZXR1cm4gb3RoZXI7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyB8fCB0eXBlb2Ygb3RoZXIgPT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICB2YWx1ZSA9IGJhc2VUb1N0cmluZyh2YWx1ZSk7XFxuICAgICAgICAgICAgb3RoZXIgPSBiYXNlVG9TdHJpbmcob3RoZXIpO1xcbiAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHZhbHVlID0gYmFzZVRvTnVtYmVyKHZhbHVlKTtcXG4gICAgICAgICAgICBvdGhlciA9IGJhc2VUb051bWJlcihvdGhlcik7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgcmVzdWx0ID0gb3BlcmF0b3IodmFsdWUsIG90aGVyKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgICAgfTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8ub3ZlcmAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGFycmF5RnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGl0ZXJhdGVlcy5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgb3ZlciBmdW5jdGlvbi5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNyZWF0ZU92ZXIoYXJyYXlGdW5jKSB7XFxuICAgICAgcmV0dXJuIGZsYXRSZXN0KGZ1bmN0aW9uKGl0ZXJhdGVlcykge1xcbiAgICAgICAgaXRlcmF0ZWVzID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBiYXNlVW5hcnkoZ2V0SXRlcmF0ZWUoKSkpO1xcbiAgICAgICAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKGFyZ3MpIHtcXG4gICAgICAgICAgdmFyIHRoaXNBcmcgPSB0aGlzO1xcbiAgICAgICAgICByZXR1cm4gYXJyYXlGdW5jKGl0ZXJhdGVlcywgZnVuY3Rpb24oaXRlcmF0ZWUpIHtcXG4gICAgICAgICAgICByZXR1cm4gYXBwbHkoaXRlcmF0ZWUsIHRoaXNBcmcsIGFyZ3MpO1xcbiAgICAgICAgICB9KTtcXG4gICAgICAgIH0pO1xcbiAgICAgIH0pO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIHRoZSBwYWRkaW5nIGZvciBgc3RyaW5nYCBiYXNlZCBvbiBgbGVuZ3RoYC4gVGhlIGBjaGFyc2Agc3RyaW5nXFxuICAgICAqIGlzIHRydW5jYXRlZCBpZiB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgZXhjZWVkcyBgbGVuZ3RoYC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aCBUaGUgcGFkZGluZyBsZW5ndGguXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9JyAnXSBUaGUgc3RyaW5nIHVzZWQgYXMgcGFkZGluZy5cXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGluZyBmb3IgYHN0cmluZ2AuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjcmVhdGVQYWRkaW5nKGxlbmd0aCwgY2hhcnMpIHtcXG4gICAgICBjaGFycyA9IGNoYXJzID09PSB1bmRlZmluZWQgPyAnICcgOiBiYXNlVG9TdHJpbmcoY2hhcnMpO1xcblxcbiAgICAgIHZhciBjaGFyc0xlbmd0aCA9IGNoYXJzLmxlbmd0aDtcXG4gICAgICBpZiAoY2hhcnNMZW5ndGggPCAyKSB7XFxuICAgICAgICByZXR1cm4gY2hhcnNMZW5ndGggPyBiYXNlUmVwZWF0KGNoYXJzLCBsZW5ndGgpIDogY2hhcnM7XFxuICAgICAgfVxcbiAgICAgIHZhciByZXN1bHQgPSBiYXNlUmVwZWF0KGNoYXJzLCBuYXRpdmVDZWlsKGxlbmd0aCAvIHN0cmluZ1NpemUoY2hhcnMpKSk7XFxuICAgICAgcmV0dXJuIGhhc1VuaWNvZGUoY2hhcnMpXFxuICAgICAgICA/IGNhc3RTbGljZShzdHJpbmdUb0FycmF5KHJlc3VsdCksIDAsIGxlbmd0aCkuam9pbignJylcXG4gICAgICAgIDogcmVzdWx0LnNsaWNlKDAsIGxlbmd0aCk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHdyYXBzIGBmdW5jYCB0byBpbnZva2UgaXQgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmdcXG4gICAgICogb2YgYHRoaXNBcmdgIGFuZCBgcGFydGlhbHNgIHByZXBlbmRlZCB0byB0aGUgYXJndW1lbnRzIGl0IHJlY2VpdmVzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB3cmFwLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBjcmVhdGVXcmFwYCBmb3IgbW9yZSBkZXRhaWxzLlxcbiAgICAgKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cXG4gICAgICogQHBhcmFtIHtBcnJheX0gcGFydGlhbHMgVGhlIGFyZ3VtZW50cyB0byBwcmVwZW5kIHRvIHRob3NlIHByb3ZpZGVkIHRvXFxuICAgICAqICB0aGUgbmV3IGZ1bmN0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY3JlYXRlUGFydGlhbChmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscykge1xcbiAgICAgIHZhciBpc0JpbmQgPSBiaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcsXFxuICAgICAgICAgIEN0b3IgPSBjcmVhdGVDdG9yKGZ1bmMpO1xcblxcbiAgICAgIGZ1bmN0aW9uIHdyYXBwZXIoKSB7XFxuICAgICAgICB2YXIgYXJnc0luZGV4ID0gLTEsXFxuICAgICAgICAgICAgYXJnc0xlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXFxuICAgICAgICAgICAgbGVmdEluZGV4ID0gLTEsXFxuICAgICAgICAgICAgbGVmdExlbmd0aCA9IHBhcnRpYWxzLmxlbmd0aCxcXG4gICAgICAgICAgICBhcmdzID0gQXJyYXkobGVmdExlbmd0aCArIGFyZ3NMZW5ndGgpLFxcbiAgICAgICAgICAgIGZuID0gKHRoaXMgJiYgdGhpcyAhPT0gcm9vdCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlcikgPyBDdG9yIDogZnVuYztcXG5cXG4gICAgICAgIHdoaWxlICgrK2xlZnRJbmRleCA8IGxlZnRMZW5ndGgpIHtcXG4gICAgICAgICAgYXJnc1tsZWZ0SW5kZXhdID0gcGFydGlhbHNbbGVmdEluZGV4XTtcXG4gICAgICAgIH1cXG4gICAgICAgIHdoaWxlIChhcmdzTGVuZ3RoLS0pIHtcXG4gICAgICAgICAgYXJnc1tsZWZ0SW5kZXgrK10gPSBhcmd1bWVudHNbKythcmdzSW5kZXhdO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIGFwcGx5KGZuLCBpc0JpbmQgPyB0aGlzQXJnIDogdGhpcywgYXJncyk7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiB3cmFwcGVyO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgYF8ucmFuZ2VgIG9yIGBfLnJhbmdlUmlnaHRgIGZ1bmN0aW9uLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcmFuZ2UgZnVuY3Rpb24uXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjcmVhdGVSYW5nZShmcm9tUmlnaHQpIHtcXG4gICAgICByZXR1cm4gZnVuY3Rpb24oc3RhcnQsIGVuZCwgc3RlcCkge1xcbiAgICAgICAgaWYgKHN0ZXAgJiYgdHlwZW9mIHN0ZXAgIT0gJ251bWJlcicgJiYgaXNJdGVyYXRlZUNhbGwoc3RhcnQsIGVuZCwgc3RlcCkpIHtcXG4gICAgICAgICAgZW5kID0gc3RlcCA9IHVuZGVmaW5lZDtcXG4gICAgICAgIH1cXG4gICAgICAgIC8vIEVuc3VyZSB0aGUgc2lnbiBvZiBgLTBgIGlzIHByZXNlcnZlZC5cXG4gICAgICAgIHN0YXJ0ID0gdG9GaW5pdGUoc3RhcnQpO1xcbiAgICAgICAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICAgIGVuZCA9IHN0YXJ0O1xcbiAgICAgICAgICBzdGFydCA9IDA7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICBlbmQgPSB0b0Zpbml0ZShlbmQpO1xcbiAgICAgICAgfVxcbiAgICAgICAgc3RlcCA9IHN0ZXAgPT09IHVuZGVmaW5lZCA/IChzdGFydCA8IGVuZCA/IDEgOiAtMSkgOiB0b0Zpbml0ZShzdGVwKTtcXG4gICAgICAgIHJldHVybiBiYXNlUmFuZ2Uoc3RhcnQsIGVuZCwgc3RlcCwgZnJvbVJpZ2h0KTtcXG4gICAgICB9O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwZXJmb3JtcyBhIHJlbGF0aW9uYWwgb3BlcmF0aW9uIG9uIHR3byB2YWx1ZXMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wZXJhdG9yIFRoZSBmdW5jdGlvbiB0byBwZXJmb3JtIHRoZSBvcGVyYXRpb24uXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHJlbGF0aW9uYWwgb3BlcmF0aW9uIGZ1bmN0aW9uLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihvcGVyYXRvcikge1xcbiAgICAgIHJldHVybiBmdW5jdGlvbih2YWx1ZSwgb3RoZXIpIHtcXG4gICAgICAgIGlmICghKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyAmJiB0eXBlb2Ygb3RoZXIgPT0gJ3N0cmluZycpKSB7XFxuICAgICAgICAgIHZhbHVlID0gdG9OdW1iZXIodmFsdWUpO1xcbiAgICAgICAgICBvdGhlciA9IHRvTnVtYmVyKG90aGVyKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiBvcGVyYXRvcih2YWx1ZSwgb3RoZXIpO1xcbiAgICAgIH07XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHdyYXBzIGBmdW5jYCB0byBjb250aW51ZSBjdXJyeWluZy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgY3JlYXRlV3JhcGAgZm9yIG1vcmUgZGV0YWlscy5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gd3JhcEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNyZWF0ZSB0aGUgYGZ1bmNgIHdyYXBwZXIuXFxuICAgICAqIEBwYXJhbSB7Kn0gcGxhY2Vob2xkZXIgVGhlIHBsYWNlaG9sZGVyIHZhbHVlLlxcbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gcHJlcGVuZCB0byB0aG9zZSBwcm92aWRlZCB0b1xcbiAgICAgKiAgdGhlIG5ldyBmdW5jdGlvbi5cXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2hvbGRlcnNdIFRoZSBgcGFydGlhbHNgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFthcmdQb3NdIFRoZSBhcmd1bWVudCBwb3NpdGlvbnMgb2YgdGhlIG5ldyBmdW5jdGlvbi5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcnldIFRoZSBhcml0eSBjYXAgb2YgYGZ1bmNgLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5XSBUaGUgYXJpdHkgb2YgYGZ1bmNgLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY3JlYXRlUmVjdXJyeShmdW5jLCBiaXRtYXNrLCB3cmFwRnVuYywgcGxhY2Vob2xkZXIsIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBhcmdQb3MsIGFyeSwgYXJpdHkpIHtcXG4gICAgICB2YXIgaXNDdXJyeSA9IGJpdG1hc2sgJiBXUkFQX0NVUlJZX0ZMQUcsXFxuICAgICAgICAgIG5ld0hvbGRlcnMgPSBpc0N1cnJ5ID8gaG9sZGVycyA6IHVuZGVmaW5lZCxcXG4gICAgICAgICAgbmV3SG9sZGVyc1JpZ2h0ID0gaXNDdXJyeSA/IHVuZGVmaW5lZCA6IGhvbGRlcnMsXFxuICAgICAgICAgIG5ld1BhcnRpYWxzID0gaXNDdXJyeSA/IHBhcnRpYWxzIDogdW5kZWZpbmVkLFxcbiAgICAgICAgICBuZXdQYXJ0aWFsc1JpZ2h0ID0gaXNDdXJyeSA/IHVuZGVmaW5lZCA6IHBhcnRpYWxzO1xcblxcbiAgICAgIGJpdG1hc2sgfD0gKGlzQ3VycnkgPyBXUkFQX1BBUlRJQUxfRkxBRyA6IFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHKTtcXG4gICAgICBiaXRtYXNrICY9IH4oaXNDdXJyeSA/IFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHIDogV1JBUF9QQVJUSUFMX0ZMQUcpO1xcblxcbiAgICAgIGlmICghKGJpdG1hc2sgJiBXUkFQX0NVUlJZX0JPVU5EX0ZMQUcpKSB7XFxuICAgICAgICBiaXRtYXNrICY9IH4oV1JBUF9CSU5EX0ZMQUcgfCBXUkFQX0JJTkRfS0VZX0ZMQUcpO1xcbiAgICAgIH1cXG4gICAgICB2YXIgbmV3RGF0YSA9IFtcXG4gICAgICAgIGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIG5ld1BhcnRpYWxzLCBuZXdIb2xkZXJzLCBuZXdQYXJ0aWFsc1JpZ2h0LFxcbiAgICAgICAgbmV3SG9sZGVyc1JpZ2h0LCBhcmdQb3MsIGFyeSwgYXJpdHlcXG4gICAgICBdO1xcblxcbiAgICAgIHZhciByZXN1bHQgPSB3cmFwRnVuYy5hcHBseSh1bmRlZmluZWQsIG5ld0RhdGEpO1xcbiAgICAgIGlmIChpc0xhemlhYmxlKGZ1bmMpKSB7XFxuICAgICAgICBzZXREYXRhKHJlc3VsdCwgbmV3RGF0YSk7XFxuICAgICAgfVxcbiAgICAgIHJlc3VsdC5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xcbiAgICAgIHJldHVybiBzZXRXcmFwVG9TdHJpbmcocmVzdWx0LCBmdW5jLCBiaXRtYXNrKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8ucm91bmRgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kTmFtZSBUaGUgbmFtZSBvZiB0aGUgYE1hdGhgIG1ldGhvZCB0byB1c2Ugd2hlbiByb3VuZGluZy5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcm91bmQgZnVuY3Rpb24uXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjcmVhdGVSb3VuZChtZXRob2ROYW1lKSB7XFxuICAgICAgdmFyIGZ1bmMgPSBNYXRoW21ldGhvZE5hbWVdO1xcbiAgICAgIHJldHVybiBmdW5jdGlvbihudW1iZXIsIHByZWNpc2lvbikge1xcbiAgICAgICAgbnVtYmVyID0gdG9OdW1iZXIobnVtYmVyKTtcXG4gICAgICAgIHByZWNpc2lvbiA9IHByZWNpc2lvbiA9PSBudWxsID8gMCA6IG5hdGl2ZU1pbih0b0ludGVnZXIocHJlY2lzaW9uKSwgMjkyKTtcXG4gICAgICAgIGlmIChwcmVjaXNpb24gJiYgbmF0aXZlSXNGaW5pdGUobnVtYmVyKSkge1xcbiAgICAgICAgICAvLyBTaGlmdCB3aXRoIGV4cG9uZW50aWFsIG5vdGF0aW9uIHRvIGF2b2lkIGZsb2F0aW5nLXBvaW50IGlzc3Vlcy5cXG4gICAgICAgICAgLy8gU2VlIFtNRE5dKGh0dHBzOi8vbWRuLmlvL3JvdW5kI0V4YW1wbGVzKSBmb3IgbW9yZSBkZXRhaWxzLlxcbiAgICAgICAgICB2YXIgcGFpciA9ICh0b1N0cmluZyhudW1iZXIpICsgJ2UnKS5zcGxpdCgnZScpLFxcbiAgICAgICAgICAgICAgdmFsdWUgPSBmdW5jKHBhaXJbMF0gKyAnZScgKyAoK3BhaXJbMV0gKyBwcmVjaXNpb24pKTtcXG5cXG4gICAgICAgICAgcGFpciA9ICh0b1N0cmluZyh2YWx1ZSkgKyAnZScpLnNwbGl0KCdlJyk7XFxuICAgICAgICAgIHJldHVybiArKHBhaXJbMF0gKyAnZScgKyAoK3BhaXJbMV0gLSBwcmVjaXNpb24pKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiBmdW5jKG51bWJlcik7XFxuICAgICAgfTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIHNldCBvYmplY3Qgb2YgYHZhbHVlc2AuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIGFkZCB0byB0aGUgc2V0LlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgc2V0LlxcbiAgICAgKi9cXG4gICAgdmFyIGNyZWF0ZVNldCA9ICEoU2V0ICYmICgxIC8gc2V0VG9BcnJheShuZXcgU2V0KFssLTBdKSlbMV0pID09IElORklOSVRZKSA/IG5vb3AgOiBmdW5jdGlvbih2YWx1ZXMpIHtcXG4gICAgICByZXR1cm4gbmV3IFNldCh2YWx1ZXMpO1xcbiAgICB9O1xcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGBfLnRvUGFpcnNgIG9yIGBfLnRvUGFpcnNJbmAgZnVuY3Rpb24uXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYSBnaXZlbiBvYmplY3QuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHBhaXJzIGZ1bmN0aW9uLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY3JlYXRlVG9QYWlycyhrZXlzRnVuYykge1xcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcXG4gICAgICAgIHZhciB0YWcgPSBnZXRUYWcob2JqZWN0KTtcXG4gICAgICAgIGlmICh0YWcgPT0gbWFwVGFnKSB7XFxuICAgICAgICAgIHJldHVybiBtYXBUb0FycmF5KG9iamVjdCk7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAodGFnID09IHNldFRhZykge1xcbiAgICAgICAgICByZXR1cm4gc2V0VG9QYWlycyhvYmplY3QpO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIGJhc2VUb1BhaXJzKG9iamVjdCwga2V5c0Z1bmMob2JqZWN0KSk7XFxuICAgICAgfTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgZWl0aGVyIGN1cnJpZXMgb3IgaW52b2tlcyBgZnVuY2Agd2l0aCBvcHRpb25hbFxcbiAgICAgKiBgdGhpc2AgYmluZGluZyBhbmQgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufHN0cmluZ30gZnVuYyBUaGUgZnVuY3Rpb24gb3IgbWV0aG9kIG5hbWUgdG8gd3JhcC5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuXFxuICAgICAqICAgIDEgLSBgXy5iaW5kYFxcbiAgICAgKiAgICAyIC0gYF8uYmluZEtleWBcXG4gICAgICogICAgNCAtIGBfLmN1cnJ5YCBvciBgXy5jdXJyeVJpZ2h0YCBvZiBhIGJvdW5kIGZ1bmN0aW9uXFxuICAgICAqICAgIDggLSBgXy5jdXJyeWBcXG4gICAgICogICAxNiAtIGBfLmN1cnJ5UmlnaHRgXFxuICAgICAqICAgMzIgLSBgXy5wYXJ0aWFsYFxcbiAgICAgKiAgIDY0IC0gYF8ucGFydGlhbFJpZ2h0YFxcbiAgICAgKiAgMTI4IC0gYF8ucmVhcmdgXFxuICAgICAqICAyNTYgLSBgXy5hcnlgXFxuICAgICAqICA1MTIgLSBgXy5mbGlwYFxcbiAgICAgKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gYmUgcGFydGlhbGx5IGFwcGxpZWQuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtob2xkZXJzXSBUaGUgYHBhcnRpYWxzYCBwbGFjZWhvbGRlciBpbmRleGVzLlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbYXJnUG9zXSBUaGUgYXJndW1lbnQgcG9zaXRpb25zIG9mIHRoZSBuZXcgZnVuY3Rpb24uXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJ5XSBUaGUgYXJpdHkgY2FwIG9mIGBmdW5jYC5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcml0eV0gVGhlIGFyaXR5IG9mIGBmdW5jYC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNyZWF0ZVdyYXAoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIGFyZ1BvcywgYXJ5LCBhcml0eSkge1xcbiAgICAgIHZhciBpc0JpbmRLZXkgPSBiaXRtYXNrICYgV1JBUF9CSU5EX0tFWV9GTEFHO1xcbiAgICAgIGlmICghaXNCaW5kS2V5ICYmIHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcXG4gICAgICB9XFxuICAgICAgdmFyIGxlbmd0aCA9IHBhcnRpYWxzID8gcGFydGlhbHMubGVuZ3RoIDogMDtcXG4gICAgICBpZiAoIWxlbmd0aCkge1xcbiAgICAgICAgYml0bWFzayAmPSB+KFdSQVBfUEFSVElBTF9GTEFHIHwgV1JBUF9QQVJUSUFMX1JJR0hUX0ZMQUcpO1xcbiAgICAgICAgcGFydGlhbHMgPSBob2xkZXJzID0gdW5kZWZpbmVkO1xcbiAgICAgIH1cXG4gICAgICBhcnkgPSBhcnkgPT09IHVuZGVmaW5lZCA/IGFyeSA6IG5hdGl2ZU1heCh0b0ludGVnZXIoYXJ5KSwgMCk7XFxuICAgICAgYXJpdHkgPSBhcml0eSA9PT0gdW5kZWZpbmVkID8gYXJpdHkgOiB0b0ludGVnZXIoYXJpdHkpO1xcbiAgICAgIGxlbmd0aCAtPSBob2xkZXJzID8gaG9sZGVycy5sZW5ndGggOiAwO1xcblxcbiAgICAgIGlmIChiaXRtYXNrICYgV1JBUF9QQVJUSUFMX1JJR0hUX0ZMQUcpIHtcXG4gICAgICAgIHZhciBwYXJ0aWFsc1JpZ2h0ID0gcGFydGlhbHMsXFxuICAgICAgICAgICAgaG9sZGVyc1JpZ2h0ID0gaG9sZGVycztcXG5cXG4gICAgICAgIHBhcnRpYWxzID0gaG9sZGVycyA9IHVuZGVmaW5lZDtcXG4gICAgICB9XFxuICAgICAgdmFyIGRhdGEgPSBpc0JpbmRLZXkgPyB1bmRlZmluZWQgOiBnZXREYXRhKGZ1bmMpO1xcblxcbiAgICAgIHZhciBuZXdEYXRhID0gW1xcbiAgICAgICAgZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIHBhcnRpYWxzUmlnaHQsIGhvbGRlcnNSaWdodCxcXG4gICAgICAgIGFyZ1BvcywgYXJ5LCBhcml0eVxcbiAgICAgIF07XFxuXFxuICAgICAgaWYgKGRhdGEpIHtcXG4gICAgICAgIG1lcmdlRGF0YShuZXdEYXRhLCBkYXRhKTtcXG4gICAgICB9XFxuICAgICAgZnVuYyA9IG5ld0RhdGFbMF07XFxuICAgICAgYml0bWFzayA9IG5ld0RhdGFbMV07XFxuICAgICAgdGhpc0FyZyA9IG5ld0RhdGFbMl07XFxuICAgICAgcGFydGlhbHMgPSBuZXdEYXRhWzNdO1xcbiAgICAgIGhvbGRlcnMgPSBuZXdEYXRhWzRdO1xcbiAgICAgIGFyaXR5ID0gbmV3RGF0YVs5XSA9IG5ld0RhdGFbOV0gPT09IHVuZGVmaW5lZFxcbiAgICAgICAgPyAoaXNCaW5kS2V5ID8gMCA6IGZ1bmMubGVuZ3RoKVxcbiAgICAgICAgOiBuYXRpdmVNYXgobmV3RGF0YVs5XSAtIGxlbmd0aCwgMCk7XFxuXFxuICAgICAgaWYgKCFhcml0eSAmJiBiaXRtYXNrICYgKFdSQVBfQ1VSUllfRkxBRyB8IFdSQVBfQ1VSUllfUklHSFRfRkxBRykpIHtcXG4gICAgICAgIGJpdG1hc2sgJj0gfihXUkFQX0NVUlJZX0ZMQUcgfCBXUkFQX0NVUlJZX1JJR0hUX0ZMQUcpO1xcbiAgICAgIH1cXG4gICAgICBpZiAoIWJpdG1hc2sgfHwgYml0bWFzayA9PSBXUkFQX0JJTkRfRkxBRykge1xcbiAgICAgICAgdmFyIHJlc3VsdCA9IGNyZWF0ZUJpbmQoZnVuYywgYml0bWFzaywgdGhpc0FyZyk7XFxuICAgICAgfSBlbHNlIGlmIChiaXRtYXNrID09IFdSQVBfQ1VSUllfRkxBRyB8fCBiaXRtYXNrID09IFdSQVBfQ1VSUllfUklHSFRfRkxBRykge1xcbiAgICAgICAgcmVzdWx0ID0gY3JlYXRlQ3VycnkoZnVuYywgYml0bWFzaywgYXJpdHkpO1xcbiAgICAgIH0gZWxzZSBpZiAoKGJpdG1hc2sgPT0gV1JBUF9QQVJUSUFMX0ZMQUcgfHwgYml0bWFzayA9PSAoV1JBUF9CSU5EX0ZMQUcgfCBXUkFQX1BBUlRJQUxfRkxBRykpICYmICFob2xkZXJzLmxlbmd0aCkge1xcbiAgICAgICAgcmVzdWx0ID0gY3JlYXRlUGFydGlhbChmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscyk7XFxuICAgICAgfSBlbHNlIHtcXG4gICAgICAgIHJlc3VsdCA9IGNyZWF0ZUh5YnJpZC5hcHBseSh1bmRlZmluZWQsIG5ld0RhdGEpO1xcbiAgICAgIH1cXG4gICAgICB2YXIgc2V0dGVyID0gZGF0YSA/IGJhc2VTZXREYXRhIDogc2V0RGF0YTtcXG4gICAgICByZXR1cm4gc2V0V3JhcFRvU3RyaW5nKHNldHRlcihyZXN1bHQsIG5ld0RhdGEpLCBmdW5jLCBiaXRtYXNrKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVXNlZCBieSBgXy5kZWZhdWx0c2AgdG8gY3VzdG9taXplIGl0cyBgXy5hc3NpZ25JbmAgdXNlIHRvIGFzc2lnbiBwcm9wZXJ0aWVzXFxuICAgICAqIG9mIHNvdXJjZSBvYmplY3RzIHRvIHRoZSBkZXN0aW5hdGlvbiBvYmplY3QgZm9yIGFsbCBkZXN0aW5hdGlvbiBwcm9wZXJ0aWVzXFxuICAgICAqIHRoYXQgcmVzb2x2ZSB0byBgdW5kZWZpbmVkYC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHsqfSBvYmpWYWx1ZSBUaGUgZGVzdGluYXRpb24gdmFsdWUuXFxuICAgICAqIEBwYXJhbSB7Kn0gc3JjVmFsdWUgVGhlIHNvdXJjZSB2YWx1ZS5cXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHBhcmVudCBvYmplY3Qgb2YgYG9ialZhbHVlYC5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHZhbHVlIHRvIGFzc2lnbi5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGN1c3RvbURlZmF1bHRzQXNzaWduSW4ob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCkge1xcbiAgICAgIGlmIChvYmpWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8XFxuICAgICAgICAgIChlcShvYmpWYWx1ZSwgb2JqZWN0UHJvdG9ba2V5XSkgJiYgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkge1xcbiAgICAgICAgcmV0dXJuIHNyY1ZhbHVlO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gb2JqVmFsdWU7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFVzZWQgYnkgYF8uZGVmYXVsdHNEZWVwYCB0byBjdXN0b21pemUgaXRzIGBfLm1lcmdlYCB1c2UgdG8gbWVyZ2Ugc291cmNlXFxuICAgICAqIG9iamVjdHMgaW50byBkZXN0aW5hdGlvbiBvYmplY3RzIHRoYXQgYXJlIHBhc3NlZCB0aHJ1LlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0geyp9IG9ialZhbHVlIFRoZSBkZXN0aW5hdGlvbiB2YWx1ZS5cXG4gICAgICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgc291cmNlIHZhbHVlLlxcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIG1lcmdlLlxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBwYXJlbnQgb2JqZWN0IG9mIGBvYmpWYWx1ZWAuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHBhcmVudCBvYmplY3Qgb2YgYHNyY1ZhbHVlYC5cXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtzdGFja10gVHJhY2tzIHRyYXZlcnNlZCBzb3VyY2UgdmFsdWVzIGFuZCB0aGVpciBtZXJnZWRcXG4gICAgICogIGNvdW50ZXJwYXJ0cy5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHZhbHVlIHRvIGFzc2lnbi5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGN1c3RvbURlZmF1bHRzTWVyZ2Uob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlLCBzdGFjaykge1xcbiAgICAgIGlmIChpc09iamVjdChvYmpWYWx1ZSkgJiYgaXNPYmplY3Qoc3JjVmFsdWUpKSB7XFxuICAgICAgICAvLyBSZWN1cnNpdmVseSBtZXJnZSBvYmplY3RzIGFuZCBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cXG4gICAgICAgIHN0YWNrLnNldChzcmNWYWx1ZSwgb2JqVmFsdWUpO1xcbiAgICAgICAgYmFzZU1lcmdlKG9ialZhbHVlLCBzcmNWYWx1ZSwgdW5kZWZpbmVkLCBjdXN0b21EZWZhdWx0c01lcmdlLCBzdGFjayk7XFxuICAgICAgICBzdGFja1snZGVsZXRlJ10oc3JjVmFsdWUpO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gb2JqVmFsdWU7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFVzZWQgYnkgYF8ub21pdGAgdG8gY3VzdG9taXplIGl0cyBgXy5jbG9uZURlZXBgIHVzZSB0byBvbmx5IGNsb25lIHBsYWluXFxuICAgICAqIG9iamVjdHMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gaW5zcGVjdC5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHVuY2xvbmVkIHZhbHVlIG9yIGB1bmRlZmluZWRgIHRvIGRlZmVyIGNsb25pbmcgdG8gYF8uY2xvbmVEZWVwYC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGN1c3RvbU9taXRDbG9uZSh2YWx1ZSkge1xcbiAgICAgIHJldHVybiBpc1BsYWluT2JqZWN0KHZhbHVlKSA/IHVuZGVmaW5lZCA6IHZhbHVlO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsRGVlcGAgZm9yIGFycmF5cyB3aXRoIHN1cHBvcnQgZm9yXFxuICAgICAqIHBhcnRpYWwgZGVlcCBjb21wYXJpc29ucy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGNvbXBhcmUuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IG90aGVyIFRoZSBvdGhlciBhcnJheSB0byBjb21wYXJlLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBiYXNlSXNFcXVhbGAgZm9yIG1vcmUgZGV0YWlscy5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9taXplciBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzdGFjayBUcmFja3MgdHJhdmVyc2VkIGBhcnJheWAgYW5kIGBvdGhlcmAgb2JqZWN0cy5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBhcnJheXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGVxdWFsQXJyYXlzKGFycmF5LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjaykge1xcbiAgICAgIHZhciBpc1BhcnRpYWwgPSBiaXRtYXNrICYgQ09NUEFSRV9QQVJUSUFMX0ZMQUcsXFxuICAgICAgICAgIGFyckxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcXG4gICAgICAgICAgb3RoTGVuZ3RoID0gb3RoZXIubGVuZ3RoO1xcblxcbiAgICAgIGlmIChhcnJMZW5ndGggIT0gb3RoTGVuZ3RoICYmICEoaXNQYXJ0aWFsICYmIG90aExlbmd0aCA+IGFyckxlbmd0aCkpIHtcXG4gICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICB9XFxuICAgICAgLy8gQ2hlY2sgdGhhdCBjeWNsaWMgdmFsdWVzIGFyZSBlcXVhbC5cXG4gICAgICB2YXIgYXJyU3RhY2tlZCA9IHN0YWNrLmdldChhcnJheSk7XFxuICAgICAgdmFyIG90aFN0YWNrZWQgPSBzdGFjay5nZXQob3RoZXIpO1xcbiAgICAgIGlmIChhcnJTdGFja2VkICYmIG90aFN0YWNrZWQpIHtcXG4gICAgICAgIHJldHVybiBhcnJTdGFja2VkID09IG90aGVyICYmIG90aFN0YWNrZWQgPT0gYXJyYXk7XFxuICAgICAgfVxcbiAgICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgICByZXN1bHQgPSB0cnVlLFxcbiAgICAgICAgICBzZWVuID0gKGJpdG1hc2sgJiBDT01QQVJFX1VOT1JERVJFRF9GTEFHKSA/IG5ldyBTZXRDYWNoZSA6IHVuZGVmaW5lZDtcXG5cXG4gICAgICBzdGFjay5zZXQoYXJyYXksIG90aGVyKTtcXG4gICAgICBzdGFjay5zZXQob3RoZXIsIGFycmF5KTtcXG5cXG4gICAgICAvLyBJZ25vcmUgbm9uLWluZGV4IHByb3BlcnRpZXMuXFxuICAgICAgd2hpbGUgKCsraW5kZXggPCBhcnJMZW5ndGgpIHtcXG4gICAgICAgIHZhciBhcnJWYWx1ZSA9IGFycmF5W2luZGV4XSxcXG4gICAgICAgICAgICBvdGhWYWx1ZSA9IG90aGVyW2luZGV4XTtcXG5cXG4gICAgICAgIGlmIChjdXN0b21pemVyKSB7XFxuICAgICAgICAgIHZhciBjb21wYXJlZCA9IGlzUGFydGlhbFxcbiAgICAgICAgICAgID8gY3VzdG9taXplcihvdGhWYWx1ZSwgYXJyVmFsdWUsIGluZGV4LCBvdGhlciwgYXJyYXksIHN0YWNrKVxcbiAgICAgICAgICAgIDogY3VzdG9taXplcihhcnJWYWx1ZSwgb3RoVmFsdWUsIGluZGV4LCBhcnJheSwgb3RoZXIsIHN0YWNrKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChjb21wYXJlZCAhPT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICAgIGlmIChjb21wYXJlZCkge1xcbiAgICAgICAgICAgIGNvbnRpbnVlO1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIHJlc3VsdCA9IGZhbHNlO1xcbiAgICAgICAgICBicmVhaztcXG4gICAgICAgIH1cXG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbXBhcmUgYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXFxuICAgICAgICBpZiAoc2Vlbikge1xcbiAgICAgICAgICBpZiAoIWFycmF5U29tZShvdGhlciwgZnVuY3Rpb24ob3RoVmFsdWUsIG90aEluZGV4KSB7XFxuICAgICAgICAgICAgICAgIGlmICghY2FjaGVIYXMoc2Vlbiwgb3RoSW5kZXgpICYmXFxuICAgICAgICAgICAgICAgICAgICAoYXJyVmFsdWUgPT09IG90aFZhbHVlIHx8IGVxdWFsRnVuYyhhcnJWYWx1ZSwgb3RoVmFsdWUsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIHN0YWNrKSkpIHtcXG4gICAgICAgICAgICAgICAgICByZXR1cm4gc2Vlbi5wdXNoKG90aEluZGV4KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgfSkpIHtcXG4gICAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcXG4gICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgfVxcbiAgICAgICAgfSBlbHNlIGlmICghKFxcbiAgICAgICAgICAgICAgYXJyVmFsdWUgPT09IG90aFZhbHVlIHx8XFxuICAgICAgICAgICAgICAgIGVxdWFsRnVuYyhhcnJWYWx1ZSwgb3RoVmFsdWUsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIHN0YWNrKVxcbiAgICAgICAgICAgICkpIHtcXG4gICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XFxuICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICBzdGFja1snZGVsZXRlJ10oYXJyYXkpO1xcbiAgICAgIHN0YWNrWydkZWxldGUnXShvdGhlcik7XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBjb21wYXJpbmcgb2JqZWN0cyBvZlxcbiAgICAgKiB0aGUgc2FtZSBgdG9TdHJpbmdUYWdgLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBvbmx5IHN1cHBvcnRzIGNvbXBhcmluZyB2YWx1ZXMgd2l0aCB0YWdzIG9mXFxuICAgICAqIGBCb29sZWFuYCwgYERhdGVgLCBgRXJyb3JgLCBgTnVtYmVyYCwgYFJlZ0V4cGAsIG9yIGBTdHJpbmdgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvdGhlciBvYmplY3QgdG8gY29tcGFyZS5cXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRhZyBUaGUgYHRvU3RyaW5nVGFnYCBvZiB0aGUgb2JqZWN0cyB0byBjb21wYXJlLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBiYXNlSXNFcXVhbGAgZm9yIG1vcmUgZGV0YWlscy5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9taXplciBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzdGFjayBUcmFja3MgdHJhdmVyc2VkIGBvYmplY3RgIGFuZCBgb3RoZXJgIG9iamVjdHMuXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZXF1YWxCeVRhZyhvYmplY3QsIG90aGVyLCB0YWcsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcXG4gICAgICBzd2l0Y2ggKHRhZykge1xcbiAgICAgICAgY2FzZSBkYXRhVmlld1RhZzpcXG4gICAgICAgICAgaWYgKChvYmplY3QuYnl0ZUxlbmd0aCAhPSBvdGhlci5ieXRlTGVuZ3RoKSB8fFxcbiAgICAgICAgICAgICAgKG9iamVjdC5ieXRlT2Zmc2V0ICE9IG90aGVyLmJ5dGVPZmZzZXQpKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIG9iamVjdCA9IG9iamVjdC5idWZmZXI7XFxuICAgICAgICAgIG90aGVyID0gb3RoZXIuYnVmZmVyO1xcblxcbiAgICAgICAgY2FzZSBhcnJheUJ1ZmZlclRhZzpcXG4gICAgICAgICAgaWYgKChvYmplY3QuYnl0ZUxlbmd0aCAhPSBvdGhlci5ieXRlTGVuZ3RoKSB8fFxcbiAgICAgICAgICAgICAgIWVxdWFsRnVuYyhuZXcgVWludDhBcnJheShvYmplY3QpLCBuZXcgVWludDhBcnJheShvdGhlcikpKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIHJldHVybiB0cnVlO1xcblxcbiAgICAgICAgY2FzZSBib29sVGFnOlxcbiAgICAgICAgY2FzZSBkYXRlVGFnOlxcbiAgICAgICAgY2FzZSBudW1iZXJUYWc6XFxuICAgICAgICAgIC8vIENvZXJjZSBib29sZWFucyB0byBgMWAgb3IgYDBgIGFuZCBkYXRlcyB0byBtaWxsaXNlY29uZHMuXFxuICAgICAgICAgIC8vIEludmFsaWQgZGF0ZXMgYXJlIGNvZXJjZWQgdG8gYE5hTmAuXFxuICAgICAgICAgIHJldHVybiBlcSgrb2JqZWN0LCArb3RoZXIpO1xcblxcbiAgICAgICAgY2FzZSBlcnJvclRhZzpcXG4gICAgICAgICAgcmV0dXJuIG9iamVjdC5uYW1lID09IG90aGVyLm5hbWUgJiYgb2JqZWN0Lm1lc3NhZ2UgPT0gb3RoZXIubWVzc2FnZTtcXG5cXG4gICAgICAgIGNhc2UgcmVnZXhwVGFnOlxcbiAgICAgICAgY2FzZSBzdHJpbmdUYWc6XFxuICAgICAgICAgIC8vIENvZXJjZSByZWdleGVzIHRvIHN0cmluZ3MgYW5kIHRyZWF0IHN0cmluZ3MsIHByaW1pdGl2ZXMgYW5kIG9iamVjdHMsXFxuICAgICAgICAgIC8vIGFzIGVxdWFsLiBTZWUgaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXJlZ2V4cC5wcm90b3R5cGUudG9zdHJpbmdcXG4gICAgICAgICAgLy8gZm9yIG1vcmUgZGV0YWlscy5cXG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA9PSAob3RoZXIgKyAnJyk7XFxuXFxuICAgICAgICBjYXNlIG1hcFRhZzpcXG4gICAgICAgICAgdmFyIGNvbnZlcnQgPSBtYXBUb0FycmF5O1xcblxcbiAgICAgICAgY2FzZSBzZXRUYWc6XFxuICAgICAgICAgIHZhciBpc1BhcnRpYWwgPSBiaXRtYXNrICYgQ09NUEFSRV9QQVJUSUFMX0ZMQUc7XFxuICAgICAgICAgIGNvbnZlcnQgfHwgKGNvbnZlcnQgPSBzZXRUb0FycmF5KTtcXG5cXG4gICAgICAgICAgaWYgKG9iamVjdC5zaXplICE9IG90aGVyLnNpemUgJiYgIWlzUGFydGlhbCkge1xcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICAgICAgfVxcbiAgICAgICAgICAvLyBBc3N1bWUgY3ljbGljIHZhbHVlcyBhcmUgZXF1YWwuXFxuICAgICAgICAgIHZhciBzdGFja2VkID0gc3RhY2suZ2V0KG9iamVjdCk7XFxuICAgICAgICAgIGlmIChzdGFja2VkKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHN0YWNrZWQgPT0gb3RoZXI7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgYml0bWFzayB8PSBDT01QQVJFX1VOT1JERVJFRF9GTEFHO1xcblxcbiAgICAgICAgICAvLyBSZWN1cnNpdmVseSBjb21wYXJlIG9iamVjdHMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cXG4gICAgICAgICAgc3RhY2suc2V0KG9iamVjdCwgb3RoZXIpO1xcbiAgICAgICAgICB2YXIgcmVzdWx0ID0gZXF1YWxBcnJheXMoY29udmVydChvYmplY3QpLCBjb252ZXJ0KG90aGVyKSwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjayk7XFxuICAgICAgICAgIHN0YWNrWydkZWxldGUnXShvYmplY3QpO1xcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xcblxcbiAgICAgICAgY2FzZSBzeW1ib2xUYWc6XFxuICAgICAgICAgIGlmIChzeW1ib2xWYWx1ZU9mKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHN5bWJvbFZhbHVlT2YuY2FsbChvYmplY3QpID09IHN5bWJvbFZhbHVlT2YuY2FsbChvdGhlcik7XFxuICAgICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsRGVlcGAgZm9yIG9iamVjdHMgd2l0aCBzdXBwb3J0IGZvclxcbiAgICAgKiBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbnMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlLlxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBiYXNlSXNFcXVhbGAgZm9yIG1vcmUgZGV0YWlscy5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9taXplciBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzdGFjayBUcmFja3MgdHJhdmVyc2VkIGBvYmplY3RgIGFuZCBgb3RoZXJgIG9iamVjdHMuXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZXF1YWxPYmplY3RzKG9iamVjdCwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcXG4gICAgICB2YXIgaXNQYXJ0aWFsID0gYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHLFxcbiAgICAgICAgICBvYmpQcm9wcyA9IGdldEFsbEtleXMob2JqZWN0KSxcXG4gICAgICAgICAgb2JqTGVuZ3RoID0gb2JqUHJvcHMubGVuZ3RoLFxcbiAgICAgICAgICBvdGhQcm9wcyA9IGdldEFsbEtleXMob3RoZXIpLFxcbiAgICAgICAgICBvdGhMZW5ndGggPSBvdGhQcm9wcy5sZW5ndGg7XFxuXFxuICAgICAgaWYgKG9iakxlbmd0aCAhPSBvdGhMZW5ndGggJiYgIWlzUGFydGlhbCkge1xcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgIH1cXG4gICAgICB2YXIgaW5kZXggPSBvYmpMZW5ndGg7XFxuICAgICAgd2hpbGUgKGluZGV4LS0pIHtcXG4gICAgICAgIHZhciBrZXkgPSBvYmpQcm9wc1tpbmRleF07XFxuICAgICAgICBpZiAoIShpc1BhcnRpYWwgPyBrZXkgaW4gb3RoZXIgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG90aGVyLCBrZXkpKSkge1xcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICAgIC8vIENoZWNrIHRoYXQgY3ljbGljIHZhbHVlcyBhcmUgZXF1YWwuXFxuICAgICAgdmFyIG9ialN0YWNrZWQgPSBzdGFjay5nZXQob2JqZWN0KTtcXG4gICAgICB2YXIgb3RoU3RhY2tlZCA9IHN0YWNrLmdldChvdGhlcik7XFxuICAgICAgaWYgKG9ialN0YWNrZWQgJiYgb3RoU3RhY2tlZCkge1xcbiAgICAgICAgcmV0dXJuIG9ialN0YWNrZWQgPT0gb3RoZXIgJiYgb3RoU3RhY2tlZCA9PSBvYmplY3Q7XFxuICAgICAgfVxcbiAgICAgIHZhciByZXN1bHQgPSB0cnVlO1xcbiAgICAgIHN0YWNrLnNldChvYmplY3QsIG90aGVyKTtcXG4gICAgICBzdGFjay5zZXQob3RoZXIsIG9iamVjdCk7XFxuXFxuICAgICAgdmFyIHNraXBDdG9yID0gaXNQYXJ0aWFsO1xcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgb2JqTGVuZ3RoKSB7XFxuICAgICAgICBrZXkgPSBvYmpQcm9wc1tpbmRleF07XFxuICAgICAgICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XSxcXG4gICAgICAgICAgICBvdGhWYWx1ZSA9IG90aGVyW2tleV07XFxuXFxuICAgICAgICBpZiAoY3VzdG9taXplcikge1xcbiAgICAgICAgICB2YXIgY29tcGFyZWQgPSBpc1BhcnRpYWxcXG4gICAgICAgICAgICA/IGN1c3RvbWl6ZXIob3RoVmFsdWUsIG9ialZhbHVlLCBrZXksIG90aGVyLCBvYmplY3QsIHN0YWNrKVxcbiAgICAgICAgICAgIDogY3VzdG9taXplcihvYmpWYWx1ZSwgb3RoVmFsdWUsIGtleSwgb2JqZWN0LCBvdGhlciwgc3RhY2spO1xcbiAgICAgICAgfVxcbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgY29tcGFyZSBvYmplY3RzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXFxuICAgICAgICBpZiAoIShjb21wYXJlZCA9PT0gdW5kZWZpbmVkXFxuICAgICAgICAgICAgICA/IChvYmpWYWx1ZSA9PT0gb3RoVmFsdWUgfHwgZXF1YWxGdW5jKG9ialZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spKVxcbiAgICAgICAgICAgICAgOiBjb21wYXJlZFxcbiAgICAgICAgICAgICkpIHtcXG4gICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XFxuICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfVxcbiAgICAgICAgc2tpcEN0b3IgfHwgKHNraXBDdG9yID0ga2V5ID09ICdjb25zdHJ1Y3RvcicpO1xcbiAgICAgIH1cXG4gICAgICBpZiAocmVzdWx0ICYmICFza2lwQ3Rvcikge1xcbiAgICAgICAgdmFyIG9iakN0b3IgPSBvYmplY3QuY29uc3RydWN0b3IsXFxuICAgICAgICAgICAgb3RoQ3RvciA9IG90aGVyLmNvbnN0cnVjdG9yO1xcblxcbiAgICAgICAgLy8gTm9uIGBPYmplY3RgIG9iamVjdCBpbnN0YW5jZXMgd2l0aCBkaWZmZXJlbnQgY29uc3RydWN0b3JzIGFyZSBub3QgZXF1YWwuXFxuICAgICAgICBpZiAob2JqQ3RvciAhPSBvdGhDdG9yICYmXFxuICAgICAgICAgICAgKCdjb25zdHJ1Y3RvcicgaW4gb2JqZWN0ICYmICdjb25zdHJ1Y3RvcicgaW4gb3RoZXIpICYmXFxuICAgICAgICAgICAgISh0eXBlb2Ygb2JqQ3RvciA9PSAnZnVuY3Rpb24nICYmIG9iakN0b3IgaW5zdGFuY2VvZiBvYmpDdG9yICYmXFxuICAgICAgICAgICAgICB0eXBlb2Ygb3RoQ3RvciA9PSAnZnVuY3Rpb24nICYmIG90aEN0b3IgaW5zdGFuY2VvZiBvdGhDdG9yKSkge1xcbiAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgc3RhY2tbJ2RlbGV0ZSddKG9iamVjdCk7XFxuICAgICAgc3RhY2tbJ2RlbGV0ZSddKG90aGVyKTtcXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VSZXN0YCB3aGljaCBmbGF0dGVucyB0aGUgcmVzdCBhcnJheS5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBmbGF0UmVzdChmdW5jKSB7XFxuICAgICAgcmV0dXJuIHNldFRvU3RyaW5nKG92ZXJSZXN0KGZ1bmMsIHVuZGVmaW5lZCwgZmxhdHRlbiksIGZ1bmMgKyAnJyk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygb3duIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgYW5kIHN5bWJvbHMgb2YgYG9iamVjdGAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scy5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGdldEFsbEtleXMob2JqZWN0KSB7XFxuICAgICAgcmV0dXJuIGJhc2VHZXRBbGxLZXlzKG9iamVjdCwga2V5cywgZ2V0U3ltYm9scyk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmRcXG4gICAgICogc3ltYm9scyBvZiBgb2JqZWN0YC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZ2V0QWxsS2V5c0luKG9iamVjdCkge1xcbiAgICAgIHJldHVybiBiYXNlR2V0QWxsS2V5cyhvYmplY3QsIGtleXNJbiwgZ2V0U3ltYm9sc0luKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogR2V0cyBtZXRhZGF0YSBmb3IgYGZ1bmNgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBxdWVyeS5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1ldGFkYXRhIGZvciBgZnVuY2AuXFxuICAgICAqL1xcbiAgICB2YXIgZ2V0RGF0YSA9ICFtZXRhTWFwID8gbm9vcCA6IGZ1bmN0aW9uKGZ1bmMpIHtcXG4gICAgICByZXR1cm4gbWV0YU1hcC5nZXQoZnVuYyk7XFxuICAgIH07XFxuXFxuICAgIC8qKlxcbiAgICAgKiBHZXRzIHRoZSBuYW1lIG9mIGBmdW5jYC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcXVlcnkuXFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGZ1bmN0aW9uIG5hbWUuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBnZXRGdW5jTmFtZShmdW5jKSB7XFxuICAgICAgdmFyIHJlc3VsdCA9IChmdW5jLm5hbWUgKyAnJyksXFxuICAgICAgICAgIGFycmF5ID0gcmVhbE5hbWVzW3Jlc3VsdF0sXFxuICAgICAgICAgIGxlbmd0aCA9IGhhc093blByb3BlcnR5LmNhbGwocmVhbE5hbWVzLCByZXN1bHQpID8gYXJyYXkubGVuZ3RoIDogMDtcXG5cXG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcXG4gICAgICAgIHZhciBkYXRhID0gYXJyYXlbbGVuZ3RoXSxcXG4gICAgICAgICAgICBvdGhlckZ1bmMgPSBkYXRhLmZ1bmM7XFxuICAgICAgICBpZiAob3RoZXJGdW5jID09IG51bGwgfHwgb3RoZXJGdW5jID09IGZ1bmMpIHtcXG4gICAgICAgICAgcmV0dXJuIGRhdGEubmFtZTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogR2V0cyB0aGUgYXJndW1lbnQgcGxhY2Vob2xkZXIgdmFsdWUgZm9yIGBmdW5jYC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gaW5zcGVjdC5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHBsYWNlaG9sZGVyIHZhbHVlLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZ2V0SG9sZGVyKGZ1bmMpIHtcXG4gICAgICB2YXIgb2JqZWN0ID0gaGFzT3duUHJvcGVydHkuY2FsbChsb2Rhc2gsICdwbGFjZWhvbGRlcicpID8gbG9kYXNoIDogZnVuYztcXG4gICAgICByZXR1cm4gb2JqZWN0LnBsYWNlaG9sZGVyO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBHZXRzIHRoZSBhcHByb3ByaWF0ZSBcXFwiaXRlcmF0ZWVcXFwiIGZ1bmN0aW9uLiBJZiBgXy5pdGVyYXRlZWAgaXMgY3VzdG9taXplZCxcXG4gICAgICogdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBjdXN0b20gbWV0aG9kLCBvdGhlcndpc2UgaXQgcmV0dXJucyBgYmFzZUl0ZXJhdGVlYC5cXG4gICAgICogSWYgYXJndW1lbnRzIGFyZSBwcm92aWRlZCwgdGhlIGNob3NlbiBmdW5jdGlvbiBpcyBpbnZva2VkIHdpdGggdGhlbSBhbmRcXG4gICAgICogaXRzIHJlc3VsdCBpcyByZXR1cm5lZC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHsqfSBbdmFsdWVdIFRoZSB2YWx1ZSB0byBjb252ZXJ0IHRvIGFuIGl0ZXJhdGVlLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5XSBUaGUgYXJpdHkgb2YgdGhlIGNyZWF0ZWQgaXRlcmF0ZWUuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgY2hvc2VuIGZ1bmN0aW9uIG9yIGl0cyByZXN1bHQuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBnZXRJdGVyYXRlZSgpIHtcXG4gICAgICB2YXIgcmVzdWx0ID0gbG9kYXNoLml0ZXJhdGVlIHx8IGl0ZXJhdGVlO1xcbiAgICAgIHJlc3VsdCA9IHJlc3VsdCA9PT0gaXRlcmF0ZWUgPyBiYXNlSXRlcmF0ZWUgOiByZXN1bHQ7XFxuICAgICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyByZXN1bHQoYXJndW1lbnRzWzBdLCBhcmd1bWVudHNbMV0pIDogcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBHZXRzIHRoZSBkYXRhIGZvciBgbWFwYC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG1hcCBUaGUgbWFwIHRvIHF1ZXJ5LlxcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSByZWZlcmVuY2Uga2V5LlxcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWFwIGRhdGEuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBnZXRNYXBEYXRhKG1hcCwga2V5KSB7XFxuICAgICAgdmFyIGRhdGEgPSBtYXAuX19kYXRhX187XFxuICAgICAgcmV0dXJuIGlzS2V5YWJsZShrZXkpXFxuICAgICAgICA/IGRhdGFbdHlwZW9mIGtleSA9PSAnc3RyaW5nJyA/ICdzdHJpbmcnIDogJ2hhc2gnXVxcbiAgICAgICAgOiBkYXRhLm1hcDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogR2V0cyB0aGUgcHJvcGVydHkgbmFtZXMsIHZhbHVlcywgYW5kIGNvbXBhcmUgZmxhZ3Mgb2YgYG9iamVjdGAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBtYXRjaCBkYXRhIG9mIGBvYmplY3RgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZ2V0TWF0Y2hEYXRhKG9iamVjdCkge1xcbiAgICAgIHZhciByZXN1bHQgPSBrZXlzKG9iamVjdCksXFxuICAgICAgICAgIGxlbmd0aCA9IHJlc3VsdC5sZW5ndGg7XFxuXFxuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XFxuICAgICAgICB2YXIga2V5ID0gcmVzdWx0W2xlbmd0aF0sXFxuICAgICAgICAgICAgdmFsdWUgPSBvYmplY3Rba2V5XTtcXG5cXG4gICAgICAgIHJlc3VsdFtsZW5ndGhdID0gW2tleSwgdmFsdWUsIGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSldO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBHZXRzIHRoZSBuYXRpdmUgZnVuY3Rpb24gYXQgYGtleWAgb2YgYG9iamVjdGAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBtZXRob2QgdG8gZ2V0LlxcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZnVuY3Rpb24gaWYgaXQncyBuYXRpdmUsIGVsc2UgYHVuZGVmaW5lZGAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBnZXROYXRpdmUob2JqZWN0LCBrZXkpIHtcXG4gICAgICB2YXIgdmFsdWUgPSBnZXRWYWx1ZShvYmplY3QsIGtleSk7XFxuICAgICAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlR2V0VGFnYCB3aGljaCBpZ25vcmVzIGBTeW1ib2wudG9TdHJpbmdUYWdgIHZhbHVlcy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHJhdyBgdG9TdHJpbmdUYWdgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZ2V0UmF3VGFnKHZhbHVlKSB7XFxuICAgICAgdmFyIGlzT3duID0gaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgc3ltVG9TdHJpbmdUYWcpLFxcbiAgICAgICAgICB0YWcgPSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XFxuXFxuICAgICAgdHJ5IHtcXG4gICAgICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHVuZGVmaW5lZDtcXG4gICAgICAgIHZhciB1bm1hc2tlZCA9IHRydWU7XFxuICAgICAgfSBjYXRjaCAoZSkge31cXG5cXG4gICAgICB2YXIgcmVzdWx0ID0gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XFxuICAgICAgaWYgKHVubWFza2VkKSB7XFxuICAgICAgICBpZiAoaXNPd24pIHtcXG4gICAgICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdGFnO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgZGVsZXRlIHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGVudW1lcmFibGUgc3ltYm9scyBvZiBgb2JqZWN0YC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHN5bWJvbHMuXFxuICAgICAqL1xcbiAgICB2YXIgZ2V0U3ltYm9scyA9ICFuYXRpdmVHZXRTeW1ib2xzID8gc3R1YkFycmF5IDogZnVuY3Rpb24ob2JqZWN0KSB7XFxuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XFxuICAgICAgICByZXR1cm4gW107XFxuICAgICAgfVxcbiAgICAgIG9iamVjdCA9IE9iamVjdChvYmplY3QpO1xcbiAgICAgIHJldHVybiBhcnJheUZpbHRlcihuYXRpdmVHZXRTeW1ib2xzKG9iamVjdCksIGZ1bmN0aW9uKHN5bWJvbCkge1xcbiAgICAgICAgcmV0dXJuIHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwob2JqZWN0LCBzeW1ib2wpO1xcbiAgICAgIH0pO1xcbiAgICB9O1xcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBzeW1ib2xzIG9mIGBvYmplY3RgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2Ygc3ltYm9scy5cXG4gICAgICovXFxuICAgIHZhciBnZXRTeW1ib2xzSW4gPSAhbmF0aXZlR2V0U3ltYm9scyA/IHN0dWJBcnJheSA6IGZ1bmN0aW9uKG9iamVjdCkge1xcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcXG4gICAgICB3aGlsZSAob2JqZWN0KSB7XFxuICAgICAgICBhcnJheVB1c2gocmVzdWx0LCBnZXRTeW1ib2xzKG9iamVjdCkpO1xcbiAgICAgICAgb2JqZWN0ID0gZ2V0UHJvdG90eXBlKG9iamVjdCk7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH07XFxuXFxuICAgIC8qKlxcbiAgICAgKiBHZXRzIHRoZSBgdG9TdHJpbmdUYWdgIG9mIGB2YWx1ZWAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBgdG9TdHJpbmdUYWdgLlxcbiAgICAgKi9cXG4gICAgdmFyIGdldFRhZyA9IGJhc2VHZXRUYWc7XFxuXFxuICAgIC8vIEZhbGxiYWNrIGZvciBkYXRhIHZpZXdzLCBtYXBzLCBzZXRzLCBhbmQgd2VhayBtYXBzIGluIElFIDExIGFuZCBwcm9taXNlcyBpbiBOb2RlLmpzIDwgNi5cXG4gICAgaWYgKChEYXRhVmlldyAmJiBnZXRUYWcobmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigxKSkpICE9IGRhdGFWaWV3VGFnKSB8fFxcbiAgICAgICAgKE1hcCAmJiBnZXRUYWcobmV3IE1hcCkgIT0gbWFwVGFnKSB8fFxcbiAgICAgICAgKFByb21pc2UgJiYgZ2V0VGFnKFByb21pc2UucmVzb2x2ZSgpKSAhPSBwcm9taXNlVGFnKSB8fFxcbiAgICAgICAgKFNldCAmJiBnZXRUYWcobmV3IFNldCkgIT0gc2V0VGFnKSB8fFxcbiAgICAgICAgKFdlYWtNYXAgJiYgZ2V0VGFnKG5ldyBXZWFrTWFwKSAhPSB3ZWFrTWFwVGFnKSkge1xcbiAgICAgIGdldFRhZyA9IGZ1bmN0aW9uKHZhbHVlKSB7XFxuICAgICAgICB2YXIgcmVzdWx0ID0gYmFzZUdldFRhZyh2YWx1ZSksXFxuICAgICAgICAgICAgQ3RvciA9IHJlc3VsdCA9PSBvYmplY3RUYWcgPyB2YWx1ZS5jb25zdHJ1Y3RvciA6IHVuZGVmaW5lZCxcXG4gICAgICAgICAgICBjdG9yU3RyaW5nID0gQ3RvciA/IHRvU291cmNlKEN0b3IpIDogJyc7XFxuXFxuICAgICAgICBpZiAoY3RvclN0cmluZykge1xcbiAgICAgICAgICBzd2l0Y2ggKGN0b3JTdHJpbmcpIHtcXG4gICAgICAgICAgICBjYXNlIGRhdGFWaWV3Q3RvclN0cmluZzogcmV0dXJuIGRhdGFWaWV3VGFnO1xcbiAgICAgICAgICAgIGNhc2UgbWFwQ3RvclN0cmluZzogcmV0dXJuIG1hcFRhZztcXG4gICAgICAgICAgICBjYXNlIHByb21pc2VDdG9yU3RyaW5nOiByZXR1cm4gcHJvbWlzZVRhZztcXG4gICAgICAgICAgICBjYXNlIHNldEN0b3JTdHJpbmc6IHJldHVybiBzZXRUYWc7XFxuICAgICAgICAgICAgY2FzZSB3ZWFrTWFwQ3RvclN0cmluZzogcmV0dXJuIHdlYWtNYXBUYWc7XFxuICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgICAgfTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogR2V0cyB0aGUgdmlldywgYXBwbHlpbmcgYW55IGB0cmFuc2Zvcm1zYCB0byB0aGUgYHN0YXJ0YCBhbmQgYGVuZGAgcG9zaXRpb25zLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSB2aWV3LlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kIFRoZSBlbmQgb2YgdGhlIHZpZXcuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHRyYW5zZm9ybXMgVGhlIHRyYW5zZm9ybWF0aW9ucyB0byBhcHBseSB0byB0aGUgdmlldy5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgYHN0YXJ0YCBhbmQgYGVuZGBcXG4gICAgICogIHBvc2l0aW9ucyBvZiB0aGUgdmlldy5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGdldFZpZXcoc3RhcnQsIGVuZCwgdHJhbnNmb3Jtcykge1xcbiAgICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgICBsZW5ndGggPSB0cmFuc2Zvcm1zLmxlbmd0aDtcXG5cXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xcbiAgICAgICAgdmFyIGRhdGEgPSB0cmFuc2Zvcm1zW2luZGV4XSxcXG4gICAgICAgICAgICBzaXplID0gZGF0YS5zaXplO1xcblxcbiAgICAgICAgc3dpdGNoIChkYXRhLnR5cGUpIHtcXG4gICAgICAgICAgY2FzZSAnZHJvcCc6ICAgICAgc3RhcnQgKz0gc2l6ZTsgYnJlYWs7XFxuICAgICAgICAgIGNhc2UgJ2Ryb3BSaWdodCc6IGVuZCAtPSBzaXplOyBicmVhaztcXG4gICAgICAgICAgY2FzZSAndGFrZSc6ICAgICAgZW5kID0gbmF0aXZlTWluKGVuZCwgc3RhcnQgKyBzaXplKTsgYnJlYWs7XFxuICAgICAgICAgIGNhc2UgJ3Rha2VSaWdodCc6IHN0YXJ0ID0gbmF0aXZlTWF4KHN0YXJ0LCBlbmQgLSBzaXplKTsgYnJlYWs7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICAgIHJldHVybiB7ICdzdGFydCc6IHN0YXJ0LCAnZW5kJzogZW5kIH07XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEV4dHJhY3RzIHdyYXBwZXIgZGV0YWlscyBmcm9tIHRoZSBgc291cmNlYCBib2R5IGNvbW1lbnQuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2UgVGhlIHNvdXJjZSB0byBpbnNwZWN0LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHdyYXBwZXIgZGV0YWlscy5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGdldFdyYXBEZXRhaWxzKHNvdXJjZSkge1xcbiAgICAgIHZhciBtYXRjaCA9IHNvdXJjZS5tYXRjaChyZVdyYXBEZXRhaWxzKTtcXG4gICAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsxXS5zcGxpdChyZVNwbGl0RGV0YWlscykgOiBbXTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGBwYXRoYCBleGlzdHMgb24gYG9iamVjdGAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gY2hlY2suXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGhhc0Z1bmMgVGhlIGZ1bmN0aW9uIHRvIGNoZWNrIHByb3BlcnRpZXMuXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgcGF0aGAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBoYXNQYXRoKG9iamVjdCwgcGF0aCwgaGFzRnVuYykge1xcbiAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xcblxcbiAgICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aCxcXG4gICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XFxuXFxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICAgIHZhciBrZXkgPSB0b0tleShwYXRoW2luZGV4XSk7XFxuICAgICAgICBpZiAoIShyZXN1bHQgPSBvYmplY3QgIT0gbnVsbCAmJiBoYXNGdW5jKG9iamVjdCwga2V5KSkpIHtcXG4gICAgICAgICAgYnJlYWs7XFxuICAgICAgICB9XFxuICAgICAgICBvYmplY3QgPSBvYmplY3Rba2V5XTtcXG4gICAgICB9XFxuICAgICAgaWYgKHJlc3VsdCB8fCArK2luZGV4ICE9IGxlbmd0aCkge1xcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgICB9XFxuICAgICAgbGVuZ3RoID0gb2JqZWN0ID09IG51bGwgPyAwIDogb2JqZWN0Lmxlbmd0aDtcXG4gICAgICByZXR1cm4gISFsZW5ndGggJiYgaXNMZW5ndGgobGVuZ3RoKSAmJiBpc0luZGV4KGtleSwgbGVuZ3RoKSAmJlxcbiAgICAgICAgKGlzQXJyYXkob2JqZWN0KSB8fCBpc0FyZ3VtZW50cyhvYmplY3QpKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogSW5pdGlhbGl6ZXMgYW4gYXJyYXkgY2xvbmUuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjbG9uZS5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGluaXRDbG9uZUFycmF5KGFycmF5KSB7XFxuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcXG4gICAgICAgICAgcmVzdWx0ID0gbmV3IGFycmF5LmNvbnN0cnVjdG9yKGxlbmd0aCk7XFxuXFxuICAgICAgLy8gQWRkIHByb3BlcnRpZXMgYXNzaWduZWQgYnkgYFJlZ0V4cCNleGVjYC5cXG4gICAgICBpZiAobGVuZ3RoICYmIHR5cGVvZiBhcnJheVswXSA9PSAnc3RyaW5nJyAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGFycmF5LCAnaW5kZXgnKSkge1xcbiAgICAgICAgcmVzdWx0LmluZGV4ID0gYXJyYXkuaW5kZXg7XFxuICAgICAgICByZXN1bHQuaW5wdXQgPSBhcnJheS5pbnB1dDtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogSW5pdGlhbGl6ZXMgYW4gb2JqZWN0IGNsb25lLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY2xvbmUuXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaW5pdENsb25lT2JqZWN0KG9iamVjdCkge1xcbiAgICAgIHJldHVybiAodHlwZW9mIG9iamVjdC5jb25zdHJ1Y3RvciA9PSAnZnVuY3Rpb24nICYmICFpc1Byb3RvdHlwZShvYmplY3QpKVxcbiAgICAgICAgPyBiYXNlQ3JlYXRlKGdldFByb3RvdHlwZShvYmplY3QpKVxcbiAgICAgICAgOiB7fTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogSW5pdGlhbGl6ZXMgYW4gb2JqZWN0IGNsb25lIGJhc2VkIG9uIGl0cyBgdG9TdHJpbmdUYWdgLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBvbmx5IHN1cHBvcnRzIGNsb25pbmcgdmFsdWVzIHdpdGggdGFncyBvZlxcbiAgICAgKiBgQm9vbGVhbmAsIGBEYXRlYCwgYEVycm9yYCwgYE1hcGAsIGBOdW1iZXJgLCBgUmVnRXhwYCwgYFNldGAsIG9yIGBTdHJpbmdgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY2xvbmUuXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIGB0b1N0cmluZ1RhZ2Agb2YgdGhlIG9iamVjdCB0byBjbG9uZS5cXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaW5pdGlhbGl6ZWQgY2xvbmUuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBpbml0Q2xvbmVCeVRhZyhvYmplY3QsIHRhZywgaXNEZWVwKSB7XFxuICAgICAgdmFyIEN0b3IgPSBvYmplY3QuY29uc3RydWN0b3I7XFxuICAgICAgc3dpdGNoICh0YWcpIHtcXG4gICAgICAgIGNhc2UgYXJyYXlCdWZmZXJUYWc6XFxuICAgICAgICAgIHJldHVybiBjbG9uZUFycmF5QnVmZmVyKG9iamVjdCk7XFxuXFxuICAgICAgICBjYXNlIGJvb2xUYWc6XFxuICAgICAgICBjYXNlIGRhdGVUYWc6XFxuICAgICAgICAgIHJldHVybiBuZXcgQ3Rvcigrb2JqZWN0KTtcXG5cXG4gICAgICAgIGNhc2UgZGF0YVZpZXdUYWc6XFxuICAgICAgICAgIHJldHVybiBjbG9uZURhdGFWaWV3KG9iamVjdCwgaXNEZWVwKTtcXG5cXG4gICAgICAgIGNhc2UgZmxvYXQzMlRhZzogY2FzZSBmbG9hdDY0VGFnOlxcbiAgICAgICAgY2FzZSBpbnQ4VGFnOiBjYXNlIGludDE2VGFnOiBjYXNlIGludDMyVGFnOlxcbiAgICAgICAgY2FzZSB1aW50OFRhZzogY2FzZSB1aW50OENsYW1wZWRUYWc6IGNhc2UgdWludDE2VGFnOiBjYXNlIHVpbnQzMlRhZzpcXG4gICAgICAgICAgcmV0dXJuIGNsb25lVHlwZWRBcnJheShvYmplY3QsIGlzRGVlcCk7XFxuXFxuICAgICAgICBjYXNlIG1hcFRhZzpcXG4gICAgICAgICAgcmV0dXJuIG5ldyBDdG9yO1xcblxcbiAgICAgICAgY2FzZSBudW1iZXJUYWc6XFxuICAgICAgICBjYXNlIHN0cmluZ1RhZzpcXG4gICAgICAgICAgcmV0dXJuIG5ldyBDdG9yKG9iamVjdCk7XFxuXFxuICAgICAgICBjYXNlIHJlZ2V4cFRhZzpcXG4gICAgICAgICAgcmV0dXJuIGNsb25lUmVnRXhwKG9iamVjdCk7XFxuXFxuICAgICAgICBjYXNlIHNldFRhZzpcXG4gICAgICAgICAgcmV0dXJuIG5ldyBDdG9yO1xcblxcbiAgICAgICAgY2FzZSBzeW1ib2xUYWc6XFxuICAgICAgICAgIHJldHVybiBjbG9uZVN5bWJvbChvYmplY3QpO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogSW5zZXJ0cyB3cmFwcGVyIGBkZXRhaWxzYCBpbiBhIGNvbW1lbnQgYXQgdGhlIHRvcCBvZiB0aGUgYHNvdXJjZWAgYm9keS5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNvdXJjZSBUaGUgc291cmNlIHRvIG1vZGlmeS5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBkZXRhaWxzIFRoZSBkZXRhaWxzIHRvIGluc2VydC5cXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgbW9kaWZpZWQgc291cmNlLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaW5zZXJ0V3JhcERldGFpbHMoc291cmNlLCBkZXRhaWxzKSB7XFxuICAgICAgdmFyIGxlbmd0aCA9IGRldGFpbHMubGVuZ3RoO1xcbiAgICAgIGlmICghbGVuZ3RoKSB7XFxuICAgICAgICByZXR1cm4gc291cmNlO1xcbiAgICAgIH1cXG4gICAgICB2YXIgbGFzdEluZGV4ID0gbGVuZ3RoIC0gMTtcXG4gICAgICBkZXRhaWxzW2xhc3RJbmRleF0gPSAobGVuZ3RoID4gMSA/ICcmICcgOiAnJykgKyBkZXRhaWxzW2xhc3RJbmRleF07XFxuICAgICAgZGV0YWlscyA9IGRldGFpbHMuam9pbihsZW5ndGggPiAyID8gJywgJyA6ICcgJyk7XFxuICAgICAgcmV0dXJuIHNvdXJjZS5yZXBsYWNlKHJlV3JhcENvbW1lbnQsICd7XFxcXG4vKiBbd3JhcHBlZCB3aXRoICcgKyBkZXRhaWxzICsgJ10gKi9cXFxcbicpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIGZsYXR0ZW5hYmxlIGBhcmd1bWVudHNgIG9iamVjdCBvciBhcnJheS5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGZsYXR0ZW5hYmxlLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBpc0ZsYXR0ZW5hYmxlKHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIGlzQXJyYXkodmFsdWUpIHx8IGlzQXJndW1lbnRzKHZhbHVlKSB8fFxcbiAgICAgICAgISEoc3ByZWFkYWJsZVN5bWJvbCAmJiB2YWx1ZSAmJiB2YWx1ZVtzcHJlYWRhYmxlU3ltYm9sXSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBpbmRleC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPU1BWF9TQUZFX0lOVEVHRVJdIFRoZSB1cHBlciBib3VuZHMgb2YgYSB2YWxpZCBpbmRleC5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaXNJbmRleCh2YWx1ZSwgbGVuZ3RoKSB7XFxuICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XFxuICAgICAgbGVuZ3RoID0gbGVuZ3RoID09IG51bGwgPyBNQVhfU0FGRV9JTlRFR0VSIDogbGVuZ3RoO1xcblxcbiAgICAgIHJldHVybiAhIWxlbmd0aCAmJlxcbiAgICAgICAgKHR5cGUgPT0gJ251bWJlcicgfHxcXG4gICAgICAgICAgKHR5cGUgIT0gJ3N5bWJvbCcgJiYgcmVJc1VpbnQudGVzdCh2YWx1ZSkpKSAmJlxcbiAgICAgICAgICAgICh2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDwgbGVuZ3RoKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBhcmd1bWVudHMgYXJlIGZyb20gYW4gaXRlcmF0ZWUgY2FsbC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIHZhbHVlIGFyZ3VtZW50LlxcbiAgICAgKiBAcGFyYW0geyp9IGluZGV4IFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgaW5kZXggb3Iga2V5IGFyZ3VtZW50LlxcbiAgICAgKiBAcGFyYW0geyp9IG9iamVjdCBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIG9iamVjdCBhcmd1bWVudC5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBhcmd1bWVudHMgYXJlIGZyb20gYW4gaXRlcmF0ZWUgY2FsbCxcXG4gICAgICogIGVsc2UgYGZhbHNlYC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlzSXRlcmF0ZWVDYWxsKHZhbHVlLCBpbmRleCwgb2JqZWN0KSB7XFxuICAgICAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XFxuICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgICAgfVxcbiAgICAgIHZhciB0eXBlID0gdHlwZW9mIGluZGV4O1xcbiAgICAgIGlmICh0eXBlID09ICdudW1iZXInXFxuICAgICAgICAgICAgPyAoaXNBcnJheUxpa2Uob2JqZWN0KSAmJiBpc0luZGV4KGluZGV4LCBvYmplY3QubGVuZ3RoKSlcXG4gICAgICAgICAgICA6ICh0eXBlID09ICdzdHJpbmcnICYmIGluZGV4IGluIG9iamVjdClcXG4gICAgICAgICAgKSB7XFxuICAgICAgICByZXR1cm4gZXEob2JqZWN0W2luZGV4XSwgdmFsdWUpO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gZmFsc2U7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgcHJvcGVydHkgbmFtZSBhbmQgbm90IGEgcHJvcGVydHkgcGF0aC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5IGtleXMgb24uXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvcGVydHkgbmFtZSwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaXNLZXkodmFsdWUsIG9iamVjdCkge1xcbiAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgIH1cXG4gICAgICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcXG4gICAgICBpZiAodHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdzeW1ib2wnIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nIHx8XFxuICAgICAgICAgIHZhbHVlID09IG51bGwgfHwgaXNTeW1ib2wodmFsdWUpKSB7XFxuICAgICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHJlSXNQbGFpblByb3AudGVzdCh2YWx1ZSkgfHwgIXJlSXNEZWVwUHJvcC50ZXN0KHZhbHVlKSB8fFxcbiAgICAgICAgKG9iamVjdCAhPSBudWxsICYmIHZhbHVlIGluIE9iamVjdChvYmplY3QpKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUgZm9yIHVzZSBhcyB1bmlxdWUgb2JqZWN0IGtleS5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBpc0tleWFibGUodmFsdWUpIHtcXG4gICAgICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcXG4gICAgICByZXR1cm4gKHR5cGUgPT0gJ3N0cmluZycgfHwgdHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdzeW1ib2wnIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nKVxcbiAgICAgICAgPyAodmFsdWUgIT09ICdfX3Byb3RvX18nKVxcbiAgICAgICAgOiAodmFsdWUgPT09IG51bGwpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYGZ1bmNgIGhhcyBhIGxhenkgY291bnRlcnBhcnQuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGhhcyBhIGxhenkgY291bnRlcnBhcnQsXFxuICAgICAqICBlbHNlIGBmYWxzZWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBpc0xhemlhYmxlKGZ1bmMpIHtcXG4gICAgICB2YXIgZnVuY05hbWUgPSBnZXRGdW5jTmFtZShmdW5jKSxcXG4gICAgICAgICAgb3RoZXIgPSBsb2Rhc2hbZnVuY05hbWVdO1xcblxcbiAgICAgIGlmICh0eXBlb2Ygb3RoZXIgIT0gJ2Z1bmN0aW9uJyB8fCAhKGZ1bmNOYW1lIGluIExhenlXcmFwcGVyLnByb3RvdHlwZSkpIHtcXG4gICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICB9XFxuICAgICAgaWYgKGZ1bmMgPT09IG90aGVyKSB7XFxuICAgICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgICB9XFxuICAgICAgdmFyIGRhdGEgPSBnZXREYXRhKG90aGVyKTtcXG4gICAgICByZXR1cm4gISFkYXRhICYmIGZ1bmMgPT09IGRhdGFbMF07XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgZnVuY2AgaGFzIGl0cyBzb3VyY2UgbWFza2VkLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBmdW5jYCBpcyBtYXNrZWQsIGVsc2UgYGZhbHNlYC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlzTWFza2VkKGZ1bmMpIHtcXG4gICAgICByZXR1cm4gISFtYXNrU3JjS2V5ICYmIChtYXNrU3JjS2V5IGluIGZ1bmMpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYGZ1bmNgIGlzIGNhcGFibGUgb2YgYmVpbmcgbWFza2VkLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBmdW5jYCBpcyBtYXNrYWJsZSwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgdmFyIGlzTWFza2FibGUgPSBjb3JlSnNEYXRhID8gaXNGdW5jdGlvbiA6IHN0dWJGYWxzZTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGxpa2VseSBhIHByb3RvdHlwZSBvYmplY3QuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3RvdHlwZSwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaXNQcm90b3R5cGUodmFsdWUpIHtcXG4gICAgICB2YXIgQ3RvciA9IHZhbHVlICYmIHZhbHVlLmNvbnN0cnVjdG9yLFxcbiAgICAgICAgICBwcm90byA9ICh0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IucHJvdG90eXBlKSB8fCBvYmplY3RQcm90bztcXG5cXG4gICAgICByZXR1cm4gdmFsdWUgPT09IHByb3RvO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBzdWl0YWJsZSBmb3Igc3RyaWN0IGVxdWFsaXR5IGNvbXBhcmlzb25zLCBpLmUuIGA9PT1gLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaWYgc3VpdGFibGUgZm9yIHN0cmljdFxcbiAgICAgKiAgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGVsc2UgYGZhbHNlYC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSkge1xcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgJiYgIWlzT2JqZWN0KHZhbHVlKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBtYXRjaGVzUHJvcGVydHlgIGZvciBzb3VyY2UgdmFsdWVzIHN1aXRhYmxlXFxuICAgICAqIGZvciBzdHJpY3QgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGkuZS4gYD09PWAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxcbiAgICAgKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc3BlYyBmdW5jdGlvbi5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIG1hdGNoZXNTdHJpY3RDb21wYXJhYmxlKGtleSwgc3JjVmFsdWUpIHtcXG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XFxuICAgICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIG9iamVjdFtrZXldID09PSBzcmNWYWx1ZSAmJlxcbiAgICAgICAgICAoc3JjVmFsdWUgIT09IHVuZGVmaW5lZCB8fCAoa2V5IGluIE9iamVjdChvYmplY3QpKSk7XFxuICAgICAgfTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLm1lbW9pemVgIHdoaWNoIGNsZWFycyB0aGUgbWVtb2l6ZWQgZnVuY3Rpb24nc1xcbiAgICAgKiBjYWNoZSB3aGVuIGl0IGV4Y2VlZHMgYE1BWF9NRU1PSVpFX1NJWkVgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG1lbW9pemVkIGZ1bmN0aW9uLlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gbWVtb2l6ZUNhcHBlZChmdW5jKSB7XFxuICAgICAgdmFyIHJlc3VsdCA9IG1lbW9pemUoZnVuYywgZnVuY3Rpb24oa2V5KSB7XFxuICAgICAgICBpZiAoY2FjaGUuc2l6ZSA9PT0gTUFYX01FTU9JWkVfU0laRSkge1xcbiAgICAgICAgICBjYWNoZS5jbGVhcigpO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIGtleTtcXG4gICAgICB9KTtcXG5cXG4gICAgICB2YXIgY2FjaGUgPSByZXN1bHQuY2FjaGU7XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogTWVyZ2VzIHRoZSBmdW5jdGlvbiBtZXRhZGF0YSBvZiBgc291cmNlYCBpbnRvIGBkYXRhYC5cXG4gICAgICpcXG4gICAgICogTWVyZ2luZyBtZXRhZGF0YSByZWR1Y2VzIHRoZSBudW1iZXIgb2Ygd3JhcHBlcnMgdXNlZCB0byBpbnZva2UgYSBmdW5jdGlvbi5cXG4gICAgICogVGhpcyBpcyBwb3NzaWJsZSBiZWNhdXNlIG1ldGhvZHMgbGlrZSBgXy5iaW5kYCwgYF8uY3VycnlgLCBhbmQgYF8ucGFydGlhbGBcXG4gICAgICogbWF5IGJlIGFwcGxpZWQgcmVnYXJkbGVzcyBvZiBleGVjdXRpb24gb3JkZXIuIE1ldGhvZHMgbGlrZSBgXy5hcnlgIGFuZFxcbiAgICAgKiBgXy5yZWFyZ2AgbW9kaWZ5IGZ1bmN0aW9uIGFyZ3VtZW50cywgbWFraW5nIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGFyZVxcbiAgICAgKiBleGVjdXRlZCBpbXBvcnRhbnQsIHByZXZlbnRpbmcgdGhlIG1lcmdpbmcgb2YgbWV0YWRhdGEuIEhvd2V2ZXIsIHdlIG1ha2VcXG4gICAgICogYW4gZXhjZXB0aW9uIGZvciBhIHNhZmUgY29tYmluZWQgY2FzZSB3aGVyZSBjdXJyaWVkIGZ1bmN0aW9ucyBoYXZlIGBfLmFyeWBcXG4gICAgICogYW5kIG9yIGBfLnJlYXJnYCBhcHBsaWVkLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBkYXRhIFRoZSBkZXN0aW5hdGlvbiBtZXRhZGF0YS5cXG4gICAgICogQHBhcmFtIHtBcnJheX0gc291cmNlIFRoZSBzb3VyY2UgbWV0YWRhdGEuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgZGF0YWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBtZXJnZURhdGEoZGF0YSwgc291cmNlKSB7XFxuICAgICAgdmFyIGJpdG1hc2sgPSBkYXRhWzFdLFxcbiAgICAgICAgICBzcmNCaXRtYXNrID0gc291cmNlWzFdLFxcbiAgICAgICAgICBuZXdCaXRtYXNrID0gYml0bWFzayB8IHNyY0JpdG1hc2ssXFxuICAgICAgICAgIGlzQ29tbW9uID0gbmV3Qml0bWFzayA8IChXUkFQX0JJTkRfRkxBRyB8IFdSQVBfQklORF9LRVlfRkxBRyB8IFdSQVBfQVJZX0ZMQUcpO1xcblxcbiAgICAgIHZhciBpc0NvbWJvID1cXG4gICAgICAgICgoc3JjQml0bWFzayA9PSBXUkFQX0FSWV9GTEFHKSAmJiAoYml0bWFzayA9PSBXUkFQX0NVUlJZX0ZMQUcpKSB8fFxcbiAgICAgICAgKChzcmNCaXRtYXNrID09IFdSQVBfQVJZX0ZMQUcpICYmIChiaXRtYXNrID09IFdSQVBfUkVBUkdfRkxBRykgJiYgKGRhdGFbN10ubGVuZ3RoIDw9IHNvdXJjZVs4XSkpIHx8XFxuICAgICAgICAoKHNyY0JpdG1hc2sgPT0gKFdSQVBfQVJZX0ZMQUcgfCBXUkFQX1JFQVJHX0ZMQUcpKSAmJiAoc291cmNlWzddLmxlbmd0aCA8PSBzb3VyY2VbOF0pICYmIChiaXRtYXNrID09IFdSQVBfQ1VSUllfRkxBRykpO1xcblxcbiAgICAgIC8vIEV4aXQgZWFybHkgaWYgbWV0YWRhdGEgY2FuJ3QgYmUgbWVyZ2VkLlxcbiAgICAgIGlmICghKGlzQ29tbW9uIHx8IGlzQ29tYm8pKSB7XFxuICAgICAgICByZXR1cm4gZGF0YTtcXG4gICAgICB9XFxuICAgICAgLy8gVXNlIHNvdXJjZSBgdGhpc0FyZ2AgaWYgYXZhaWxhYmxlLlxcbiAgICAgIGlmIChzcmNCaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcpIHtcXG4gICAgICAgIGRhdGFbMl0gPSBzb3VyY2VbMl07XFxuICAgICAgICAvLyBTZXQgd2hlbiBjdXJyeWluZyBhIGJvdW5kIGZ1bmN0aW9uLlxcbiAgICAgICAgbmV3Qml0bWFzayB8PSBiaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcgPyAwIDogV1JBUF9DVVJSWV9CT1VORF9GTEFHO1xcbiAgICAgIH1cXG4gICAgICAvLyBDb21wb3NlIHBhcnRpYWwgYXJndW1lbnRzLlxcbiAgICAgIHZhciB2YWx1ZSA9IHNvdXJjZVszXTtcXG4gICAgICBpZiAodmFsdWUpIHtcXG4gICAgICAgIHZhciBwYXJ0aWFscyA9IGRhdGFbM107XFxuICAgICAgICBkYXRhWzNdID0gcGFydGlhbHMgPyBjb21wb3NlQXJncyhwYXJ0aWFscywgdmFsdWUsIHNvdXJjZVs0XSkgOiB2YWx1ZTtcXG4gICAgICAgIGRhdGFbNF0gPSBwYXJ0aWFscyA/IHJlcGxhY2VIb2xkZXJzKGRhdGFbM10sIFBMQUNFSE9MREVSKSA6IHNvdXJjZVs0XTtcXG4gICAgICB9XFxuICAgICAgLy8gQ29tcG9zZSBwYXJ0aWFsIHJpZ2h0IGFyZ3VtZW50cy5cXG4gICAgICB2YWx1ZSA9IHNvdXJjZVs1XTtcXG4gICAgICBpZiAodmFsdWUpIHtcXG4gICAgICAgIHBhcnRpYWxzID0gZGF0YVs1XTtcXG4gICAgICAgIGRhdGFbNV0gPSBwYXJ0aWFscyA/IGNvbXBvc2VBcmdzUmlnaHQocGFydGlhbHMsIHZhbHVlLCBzb3VyY2VbNl0pIDogdmFsdWU7XFxuICAgICAgICBkYXRhWzZdID0gcGFydGlhbHMgPyByZXBsYWNlSG9sZGVycyhkYXRhWzVdLCBQTEFDRUhPTERFUikgOiBzb3VyY2VbNl07XFxuICAgICAgfVxcbiAgICAgIC8vIFVzZSBzb3VyY2UgYGFyZ1Bvc2AgaWYgYXZhaWxhYmxlLlxcbiAgICAgIHZhbHVlID0gc291cmNlWzddO1xcbiAgICAgIGlmICh2YWx1ZSkge1xcbiAgICAgICAgZGF0YVs3XSA9IHZhbHVlO1xcbiAgICAgIH1cXG4gICAgICAvLyBVc2Ugc291cmNlIGBhcnlgIGlmIGl0J3Mgc21hbGxlci5cXG4gICAgICBpZiAoc3JjQml0bWFzayAmIFdSQVBfQVJZX0ZMQUcpIHtcXG4gICAgICAgIGRhdGFbOF0gPSBkYXRhWzhdID09IG51bGwgPyBzb3VyY2VbOF0gOiBuYXRpdmVNaW4oZGF0YVs4XSwgc291cmNlWzhdKTtcXG4gICAgICB9XFxuICAgICAgLy8gVXNlIHNvdXJjZSBgYXJpdHlgIGlmIG9uZSBpcyBub3QgcHJvdmlkZWQuXFxuICAgICAgaWYgKGRhdGFbOV0gPT0gbnVsbCkge1xcbiAgICAgICAgZGF0YVs5XSA9IHNvdXJjZVs5XTtcXG4gICAgICB9XFxuICAgICAgLy8gVXNlIHNvdXJjZSBgZnVuY2AgYW5kIG1lcmdlIGJpdG1hc2tzLlxcbiAgICAgIGRhdGFbMF0gPSBzb3VyY2VbMF07XFxuICAgICAgZGF0YVsxXSA9IG5ld0JpdG1hc2s7XFxuXFxuICAgICAgcmV0dXJuIGRhdGE7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZVxcbiAgICAgKiBbYE9iamVjdC5rZXlzYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LmtleXMpXFxuICAgICAqIGV4Y2VwdCB0aGF0IGl0IGluY2x1ZGVzIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIG5hdGl2ZUtleXNJbihvYmplY3QpIHtcXG4gICAgICB2YXIgcmVzdWx0ID0gW107XFxuICAgICAgaWYgKG9iamVjdCAhPSBudWxsKSB7XFxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gT2JqZWN0KG9iamVjdCkpIHtcXG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5KTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZyB1c2luZyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBzdHJpbmcuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBvYmplY3RUb1N0cmluZyh2YWx1ZSkge1xcbiAgICAgIHJldHVybiBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlUmVzdGAgd2hpY2ggdHJhbnNmb3JtcyB0aGUgcmVzdCBhcnJheS5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD1mdW5jLmxlbmd0aC0xXSBUaGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIHJlc3QgcGFyYW1ldGVyLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB0cmFuc2Zvcm0gVGhlIHJlc3QgYXJyYXkgdHJhbnNmb3JtLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIG92ZXJSZXN0KGZ1bmMsIHN0YXJ0LCB0cmFuc2Zvcm0pIHtcXG4gICAgICBzdGFydCA9IG5hdGl2ZU1heChzdGFydCA9PT0gdW5kZWZpbmVkID8gKGZ1bmMubGVuZ3RoIC0gMSkgOiBzdGFydCwgMCk7XFxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xcbiAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXFxuICAgICAgICAgICAgaW5kZXggPSAtMSxcXG4gICAgICAgICAgICBsZW5ndGggPSBuYXRpdmVNYXgoYXJncy5sZW5ndGggLSBzdGFydCwgMCksXFxuICAgICAgICAgICAgYXJyYXkgPSBBcnJheShsZW5ndGgpO1xcblxcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICAgICAgYXJyYXlbaW5kZXhdID0gYXJnc1tzdGFydCArIGluZGV4XTtcXG4gICAgICAgIH1cXG4gICAgICAgIGluZGV4ID0gLTE7XFxuICAgICAgICB2YXIgb3RoZXJBcmdzID0gQXJyYXkoc3RhcnQgKyAxKTtcXG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgc3RhcnQpIHtcXG4gICAgICAgICAgb3RoZXJBcmdzW2luZGV4XSA9IGFyZ3NbaW5kZXhdO1xcbiAgICAgICAgfVxcbiAgICAgICAgb3RoZXJBcmdzW3N0YXJ0XSA9IHRyYW5zZm9ybShhcnJheSk7XFxuICAgICAgICByZXR1cm4gYXBwbHkoZnVuYywgdGhpcywgb3RoZXJBcmdzKTtcXG4gICAgICB9O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBHZXRzIHRoZSBwYXJlbnQgdmFsdWUgYXQgYHBhdGhgIG9mIGBvYmplY3RgLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhdGggVGhlIHBhdGggdG8gZ2V0IHRoZSBwYXJlbnQgdmFsdWUgb2YuXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBwYXJlbnQgdmFsdWUuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBwYXJlbnQob2JqZWN0LCBwYXRoKSB7XFxuICAgICAgcmV0dXJuIHBhdGgubGVuZ3RoIDwgMiA/IG9iamVjdCA6IGJhc2VHZXQob2JqZWN0LCBiYXNlU2xpY2UocGF0aCwgMCwgLTEpKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogUmVvcmRlciBgYXJyYXlgIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIGluZGV4ZXMgd2hlcmUgdGhlIGVsZW1lbnQgYXRcXG4gICAgICogdGhlIGZpcnN0IGluZGV4IGlzIGFzc2lnbmVkIGFzIHRoZSBmaXJzdCBlbGVtZW50LCB0aGUgZWxlbWVudCBhdFxcbiAgICAgKiB0aGUgc2Vjb25kIGluZGV4IGlzIGFzc2lnbmVkIGFzIHRoZSBzZWNvbmQgZWxlbWVudCwgYW5kIHNvIG9uLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcmVvcmRlci5cXG4gICAgICogQHBhcmFtIHtBcnJheX0gaW5kZXhlcyBUaGUgYXJyYW5nZWQgYXJyYXkgaW5kZXhlcy5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiByZW9yZGVyKGFycmF5LCBpbmRleGVzKSB7XFxuICAgICAgdmFyIGFyckxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcXG4gICAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWluKGluZGV4ZXMubGVuZ3RoLCBhcnJMZW5ndGgpLFxcbiAgICAgICAgICBvbGRBcnJheSA9IGNvcHlBcnJheShhcnJheSk7XFxuXFxuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XFxuICAgICAgICB2YXIgaW5kZXggPSBpbmRleGVzW2xlbmd0aF07XFxuICAgICAgICBhcnJheVtsZW5ndGhdID0gaXNJbmRleChpbmRleCwgYXJyTGVuZ3RoKSA/IG9sZEFycmF5W2luZGV4XSA6IHVuZGVmaW5lZDtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIGFycmF5O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBHZXRzIHRoZSB2YWx1ZSBhdCBga2V5YCwgdW5sZXNzIGBrZXlgIGlzIFxcXCJfX3Byb3RvX19cXFwiIG9yIFxcXCJjb25zdHJ1Y3RvclxcXCIuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZS5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHNhZmVHZXQob2JqZWN0LCBrZXkpIHtcXG4gICAgICBpZiAoa2V5ID09PSAnY29uc3RydWN0b3InICYmIHR5cGVvZiBvYmplY3Rba2V5XSA9PT0gJ2Z1bmN0aW9uJykge1xcbiAgICAgICAgcmV0dXJuO1xcbiAgICAgIH1cXG5cXG4gICAgICBpZiAoa2V5ID09ICdfX3Byb3RvX18nKSB7XFxuICAgICAgICByZXR1cm47XFxuICAgICAgfVxcblxcbiAgICAgIHJldHVybiBvYmplY3Rba2V5XTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogU2V0cyBtZXRhZGF0YSBmb3IgYGZ1bmNgLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogSWYgdGhpcyBmdW5jdGlvbiBiZWNvbWVzIGhvdCwgaS5lLiBpcyBpbnZva2VkIGEgbG90IGluIGEgc2hvcnRcXG4gICAgICogcGVyaW9kIG9mIHRpbWUsIGl0IHdpbGwgdHJpcCBpdHMgYnJlYWtlciBhbmQgdHJhbnNpdGlvbiB0byBhbiBpZGVudGl0eVxcbiAgICAgKiBmdW5jdGlvbiB0byBhdm9pZCBnYXJiYWdlIGNvbGxlY3Rpb24gcGF1c2VzIGluIFY4LiBTZWVcXG4gICAgICogW1Y4IGlzc3VlIDIwNzBdKGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTIwNzApXFxuICAgICAqIGZvciBtb3JlIGRldGFpbHMuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFzc29jaWF0ZSBtZXRhZGF0YSB3aXRoLlxcbiAgICAgKiBAcGFyYW0geyp9IGRhdGEgVGhlIG1ldGFkYXRhLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxcbiAgICAgKi9cXG4gICAgdmFyIHNldERhdGEgPSBzaG9ydE91dChiYXNlU2V0RGF0YSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBBIHNpbXBsZSB3cmFwcGVyIGFyb3VuZCB0aGUgZ2xvYmFsIFtgc2V0VGltZW91dGBdKGh0dHBzOi8vbWRuLmlvL3NldFRpbWVvdXQpLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWxheS5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHdhaXQgVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gZGVsYXkgaW52b2NhdGlvbi5cXG4gICAgICogQHJldHVybnMge251bWJlcnxPYmplY3R9IFJldHVybnMgdGhlIHRpbWVyIGlkIG9yIHRpbWVvdXQgb2JqZWN0LlxcbiAgICAgKi9cXG4gICAgdmFyIHNldFRpbWVvdXQgPSBjdHhTZXRUaW1lb3V0IHx8IGZ1bmN0aW9uKGZ1bmMsIHdhaXQpIHtcXG4gICAgICByZXR1cm4gcm9vdC5zZXRUaW1lb3V0KGZ1bmMsIHdhaXQpO1xcbiAgICB9O1xcblxcbiAgICAvKipcXG4gICAgICogU2V0cyB0aGUgYHRvU3RyaW5nYCBtZXRob2Qgb2YgYGZ1bmNgIHRvIHJldHVybiBgc3RyaW5nYC5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzdHJpbmcgVGhlIGB0b1N0cmluZ2AgcmVzdWx0LlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxcbiAgICAgKi9cXG4gICAgdmFyIHNldFRvU3RyaW5nID0gc2hvcnRPdXQoYmFzZVNldFRvU3RyaW5nKTtcXG5cXG4gICAgLyoqXFxuICAgICAqIFNldHMgdGhlIGB0b1N0cmluZ2AgbWV0aG9kIG9mIGB3cmFwcGVyYCB0byBtaW1pYyB0aGUgc291cmNlIG9mIGByZWZlcmVuY2VgXFxuICAgICAqIHdpdGggd3JhcHBlciBkZXRhaWxzIGluIGEgY29tbWVudCBhdCB0aGUgdG9wIG9mIHRoZSBzb3VyY2UgYm9keS5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gd3JhcHBlciBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSByZWZlcmVuY2UgVGhlIHJlZmVyZW5jZSBmdW5jdGlvbi5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgY3JlYXRlV3JhcGAgZm9yIG1vcmUgZGV0YWlscy5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGB3cmFwcGVyYC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHNldFdyYXBUb1N0cmluZyh3cmFwcGVyLCByZWZlcmVuY2UsIGJpdG1hc2spIHtcXG4gICAgICB2YXIgc291cmNlID0gKHJlZmVyZW5jZSArICcnKTtcXG4gICAgICByZXR1cm4gc2V0VG9TdHJpbmcod3JhcHBlciwgaW5zZXJ0V3JhcERldGFpbHMoc291cmNlLCB1cGRhdGVXcmFwRGV0YWlscyhnZXRXcmFwRGV0YWlscyhzb3VyY2UpLCBiaXRtYXNrKSkpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCdsbCBzaG9ydCBvdXQgYW5kIGludm9rZSBgaWRlbnRpdHlgIGluc3RlYWRcXG4gICAgICogb2YgYGZ1bmNgIHdoZW4gaXQncyBjYWxsZWQgYEhPVF9DT1VOVGAgb3IgbW9yZSB0aW1lcyBpbiBgSE9UX1NQQU5gXFxuICAgICAqIG1pbGxpc2Vjb25kcy5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVzdHJpY3QuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNob3J0YWJsZSBmdW5jdGlvbi5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHNob3J0T3V0KGZ1bmMpIHtcXG4gICAgICB2YXIgY291bnQgPSAwLFxcbiAgICAgICAgICBsYXN0Q2FsbGVkID0gMDtcXG5cXG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XFxuICAgICAgICB2YXIgc3RhbXAgPSBuYXRpdmVOb3coKSxcXG4gICAgICAgICAgICByZW1haW5pbmcgPSBIT1RfU1BBTiAtIChzdGFtcCAtIGxhc3RDYWxsZWQpO1xcblxcbiAgICAgICAgbGFzdENhbGxlZCA9IHN0YW1wO1xcbiAgICAgICAgaWYgKHJlbWFpbmluZyA+IDApIHtcXG4gICAgICAgICAgaWYgKCsrY291bnQgPj0gSE9UX0NPVU5UKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50c1swXTtcXG4gICAgICAgICAgfVxcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgY291bnQgPSAwO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkodW5kZWZpbmVkLCBhcmd1bWVudHMpO1xcbiAgICAgIH07XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5zaHVmZmxlYCB3aGljaCBtdXRhdGVzIGFuZCBzZXRzIHRoZSBzaXplIG9mIGBhcnJheWAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzaHVmZmxlLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NpemU9YXJyYXkubGVuZ3RoXSBUaGUgc2l6ZSBvZiBgYXJyYXlgLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHNodWZmbGVTZWxmKGFycmF5LCBzaXplKSB7XFxuICAgICAgdmFyIGluZGV4ID0gLTEsXFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcXG4gICAgICAgICAgbGFzdEluZGV4ID0gbGVuZ3RoIC0gMTtcXG5cXG4gICAgICBzaXplID0gc2l6ZSA9PT0gdW5kZWZpbmVkID8gbGVuZ3RoIDogc2l6ZTtcXG4gICAgICB3aGlsZSAoKytpbmRleCA8IHNpemUpIHtcXG4gICAgICAgIHZhciByYW5kID0gYmFzZVJhbmRvbShpbmRleCwgbGFzdEluZGV4KSxcXG4gICAgICAgICAgICB2YWx1ZSA9IGFycmF5W3JhbmRdO1xcblxcbiAgICAgICAgYXJyYXlbcmFuZF0gPSBhcnJheVtpbmRleF07XFxuICAgICAgICBhcnJheVtpbmRleF0gPSB2YWx1ZTtcXG4gICAgICB9XFxuICAgICAgYXJyYXkubGVuZ3RoID0gc2l6ZTtcXG4gICAgICByZXR1cm4gYXJyYXk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENvbnZlcnRzIGBzdHJpbmdgIHRvIGEgcHJvcGVydHkgcGF0aCBhcnJheS5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcHJvcGVydHkgcGF0aCBhcnJheS5cXG4gICAgICovXFxuICAgIHZhciBzdHJpbmdUb1BhdGggPSBtZW1vaXplQ2FwcGVkKGZ1bmN0aW9uKHN0cmluZykge1xcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcXG4gICAgICBpZiAoc3RyaW5nLmNoYXJDb2RlQXQoMCkgPT09IDQ2IC8qIC4gKi8pIHtcXG4gICAgICAgIHJlc3VsdC5wdXNoKCcnKTtcXG4gICAgICB9XFxuICAgICAgc3RyaW5nLnJlcGxhY2UocmVQcm9wTmFtZSwgZnVuY3Rpb24obWF0Y2gsIG51bWJlciwgcXVvdGUsIHN1YlN0cmluZykge1xcbiAgICAgICAgcmVzdWx0LnB1c2gocXVvdGUgPyBzdWJTdHJpbmcucmVwbGFjZShyZUVzY2FwZUNoYXIsICckMScpIDogKG51bWJlciB8fCBtYXRjaCkpO1xcbiAgICAgIH0pO1xcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZyBrZXkgaWYgaXQncyBub3QgYSBzdHJpbmcgb3Igc3ltYm9sLlxcbiAgICAgKlxcbiAgICAgKiBAcHJpdmF0ZVxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBpbnNwZWN0LlxcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfHN5bWJvbH0gUmV0dXJucyB0aGUga2V5LlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gdG9LZXkodmFsdWUpIHtcXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8IGlzU3ltYm9sKHZhbHVlKSkge1xcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xcbiAgICAgIH1cXG4gICAgICB2YXIgcmVzdWx0ID0gKHZhbHVlICsgJycpO1xcbiAgICAgIHJldHVybiAocmVzdWx0ID09ICcwJyAmJiAoMSAvIHZhbHVlKSA9PSAtSU5GSU5JVFkpID8gJy0wJyA6IHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ29udmVydHMgYGZ1bmNgIHRvIGl0cyBzb3VyY2UgY29kZS5cXG4gICAgICpcXG4gICAgICogQHByaXZhdGVcXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY29udmVydC5cXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgc291cmNlIGNvZGUuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB0b1NvdXJjZShmdW5jKSB7XFxuICAgICAgaWYgKGZ1bmMgIT0gbnVsbCkge1xcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgcmV0dXJuIGZ1bmNUb1N0cmluZy5jYWxsKGZ1bmMpO1xcbiAgICAgICAgfSBjYXRjaCAoZSkge31cXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgIHJldHVybiAoZnVuYyArICcnKTtcXG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxuICAgICAgfVxcbiAgICAgIHJldHVybiAnJztcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVXBkYXRlcyB3cmFwcGVyIGBkZXRhaWxzYCBiYXNlZCBvbiBgYml0bWFza2AgZmxhZ3MuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gZGV0YWlscyBUaGUgZGV0YWlscyB0byBtb2RpZnkuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBgIGZvciBtb3JlIGRldGFpbHMuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgZGV0YWlsc2AuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB1cGRhdGVXcmFwRGV0YWlscyhkZXRhaWxzLCBiaXRtYXNrKSB7XFxuICAgICAgYXJyYXlFYWNoKHdyYXBGbGFncywgZnVuY3Rpb24ocGFpcikge1xcbiAgICAgICAgdmFyIHZhbHVlID0gJ18uJyArIHBhaXJbMF07XFxuICAgICAgICBpZiAoKGJpdG1hc2sgJiBwYWlyWzFdKSAmJiAhYXJyYXlJbmNsdWRlcyhkZXRhaWxzLCB2YWx1ZSkpIHtcXG4gICAgICAgICAgZGV0YWlscy5wdXNoKHZhbHVlKTtcXG4gICAgICAgIH1cXG4gICAgICB9KTtcXG4gICAgICByZXR1cm4gZGV0YWlscy5zb3J0KCk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgd3JhcHBlcmAuXFxuICAgICAqXFxuICAgICAqIEBwcml2YXRlXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSB3cmFwcGVyIFRoZSB3cmFwcGVyIHRvIGNsb25lLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgd3JhcHBlci5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHdyYXBwZXJDbG9uZSh3cmFwcGVyKSB7XFxuICAgICAgaWYgKHdyYXBwZXIgaW5zdGFuY2VvZiBMYXp5V3JhcHBlcikge1xcbiAgICAgICAgcmV0dXJuIHdyYXBwZXIuY2xvbmUoKTtcXG4gICAgICB9XFxuICAgICAgdmFyIHJlc3VsdCA9IG5ldyBMb2Rhc2hXcmFwcGVyKHdyYXBwZXIuX193cmFwcGVkX18sIHdyYXBwZXIuX19jaGFpbl9fKTtcXG4gICAgICByZXN1bHQuX19hY3Rpb25zX18gPSBjb3B5QXJyYXkod3JhcHBlci5fX2FjdGlvbnNfXyk7XFxuICAgICAgcmVzdWx0Ll9faW5kZXhfXyAgPSB3cmFwcGVyLl9faW5kZXhfXztcXG4gICAgICByZXN1bHQuX192YWx1ZXNfXyA9IHdyYXBwZXIuX192YWx1ZXNfXztcXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgZWxlbWVudHMgc3BsaXQgaW50byBncm91cHMgdGhlIGxlbmd0aCBvZiBgc2l6ZWAuXFxuICAgICAqIElmIGBhcnJheWAgY2FuJ3QgYmUgc3BsaXQgZXZlbmx5LCB0aGUgZmluYWwgY2h1bmsgd2lsbCBiZSB0aGUgcmVtYWluaW5nXFxuICAgICAqIGVsZW1lbnRzLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHByb2Nlc3MuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc2l6ZT0xXSBUaGUgbGVuZ3RoIG9mIGVhY2ggY2h1bmtcXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgY2h1bmtzLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmNodW5rKFsnYScsICdiJywgJ2MnLCAnZCddLCAyKTtcXG4gICAgICogLy8gPT4gW1snYScsICdiJ10sIFsnYycsICdkJ11dXFxuICAgICAqXFxuICAgICAqIF8uY2h1bmsoWydhJywgJ2InLCAnYycsICdkJ10sIDMpO1xcbiAgICAgKiAvLyA9PiBbWydhJywgJ2InLCAnYyddLCBbJ2QnXV1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNodW5rKGFycmF5LCBzaXplLCBndWFyZCkge1xcbiAgICAgIGlmICgoZ3VhcmQgPyBpc0l0ZXJhdGVlQ2FsbChhcnJheSwgc2l6ZSwgZ3VhcmQpIDogc2l6ZSA9PT0gdW5kZWZpbmVkKSkge1xcbiAgICAgICAgc2l6ZSA9IDE7XFxuICAgICAgfSBlbHNlIHtcXG4gICAgICAgIHNpemUgPSBuYXRpdmVNYXgodG9JbnRlZ2VyKHNpemUpLCAwKTtcXG4gICAgICB9XFxuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xcbiAgICAgIGlmICghbGVuZ3RoIHx8IHNpemUgPCAxKSB7XFxuICAgICAgICByZXR1cm4gW107XFxuICAgICAgfVxcbiAgICAgIHZhciBpbmRleCA9IDAsXFxuICAgICAgICAgIHJlc0luZGV4ID0gMCxcXG4gICAgICAgICAgcmVzdWx0ID0gQXJyYXkobmF0aXZlQ2VpbChsZW5ndGggLyBzaXplKSk7XFxuXFxuICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSBiYXNlU2xpY2UoYXJyYXksIGluZGV4LCAoaW5kZXggKz0gc2l6ZSkpO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggYWxsIGZhbHNleSB2YWx1ZXMgcmVtb3ZlZC4gVGhlIHZhbHVlcyBgZmFsc2VgLCBgbnVsbGAsXFxuICAgICAqIGAwYCwgYFxcXCJcXFwiYCwgYHVuZGVmaW5lZGAsIGFuZCBgTmFOYCBhcmUgZmFsc2V5LlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGNvbXBhY3QuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5jb21wYWN0KFswLCAxLCBmYWxzZSwgMiwgJycsIDNdKTtcXG4gICAgICogLy8gPT4gWzEsIDIsIDNdXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjb21wYWN0KGFycmF5KSB7XFxuICAgICAgdmFyIGluZGV4ID0gLTEsXFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoLFxcbiAgICAgICAgICByZXNJbmRleCA9IDAsXFxuICAgICAgICAgIHJlc3VsdCA9IFtdO1xcblxcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XFxuICAgICAgICBpZiAodmFsdWUpIHtcXG4gICAgICAgICAgcmVzdWx0W3Jlc0luZGV4KytdID0gdmFsdWU7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBuZXcgYXJyYXkgY29uY2F0ZW5hdGluZyBgYXJyYXlgIHdpdGggYW55IGFkZGl0aW9uYWwgYXJyYXlzXFxuICAgICAqIGFuZC9vciB2YWx1ZXMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY29uY2F0ZW5hdGUuXFxuICAgICAqIEBwYXJhbSB7Li4uKn0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byBjb25jYXRlbmF0ZS5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgY29uY2F0ZW5hdGVkIGFycmF5LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgYXJyYXkgPSBbMV07XFxuICAgICAqIHZhciBvdGhlciA9IF8uY29uY2F0KGFycmF5LCAyLCBbM10sIFtbNF1dKTtcXG4gICAgICpcXG4gICAgICogY29uc29sZS5sb2cob3RoZXIpO1xcbiAgICAgKiAvLyA9PiBbMSwgMiwgMywgWzRdXVxcbiAgICAgKlxcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XFxuICAgICAqIC8vID0+IFsxXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY29uY2F0KCkge1xcbiAgICAgIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xcbiAgICAgIGlmICghbGVuZ3RoKSB7XFxuICAgICAgICByZXR1cm4gW107XFxuICAgICAgfVxcbiAgICAgIHZhciBhcmdzID0gQXJyYXkobGVuZ3RoIC0gMSksXFxuICAgICAgICAgIGFycmF5ID0gYXJndW1lbnRzWzBdLFxcbiAgICAgICAgICBpbmRleCA9IGxlbmd0aDtcXG5cXG4gICAgICB3aGlsZSAoaW5kZXgtLSkge1xcbiAgICAgICAgYXJnc1tpbmRleCAtIDFdID0gYXJndW1lbnRzW2luZGV4XTtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIGFycmF5UHVzaChpc0FycmF5KGFycmF5KSA/IGNvcHlBcnJheShhcnJheSkgOiBbYXJyYXldLCBiYXNlRmxhdHRlbihhcmdzLCAxKSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgYGFycmF5YCB2YWx1ZXMgbm90IGluY2x1ZGVkIGluIHRoZSBvdGhlciBnaXZlbiBhcnJheXNcXG4gICAgICogdXNpbmcgW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLiBUaGUgb3JkZXIgYW5kIHJlZmVyZW5jZXMgb2YgcmVzdWx0IHZhbHVlcyBhcmVcXG4gICAgICogZGV0ZXJtaW5lZCBieSB0aGUgZmlyc3QgYXJyYXkuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgYF8ucHVsbEFsbGAsIHRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgYXJyYXkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byBleGNsdWRlLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXFxuICAgICAqIEBzZWUgXy53aXRob3V0LCBfLnhvclxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmRpZmZlcmVuY2UoWzIsIDFdLCBbMiwgM10pO1xcbiAgICAgKiAvLyA9PiBbMV1cXG4gICAgICovXFxuICAgIHZhciBkaWZmZXJlbmNlID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXksIHZhbHVlcykge1xcbiAgICAgIHJldHVybiBpc0FycmF5TGlrZU9iamVjdChhcnJheSlcXG4gICAgICAgID8gYmFzZURpZmZlcmVuY2UoYXJyYXksIGJhc2VGbGF0dGVuKHZhbHVlcywgMSwgaXNBcnJheUxpa2VPYmplY3QsIHRydWUpKVxcbiAgICAgICAgOiBbXTtcXG4gICAgfSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmRpZmZlcmVuY2VgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaFxcbiAgICAgKiBpcyBpbnZva2VkIGZvciBlYWNoIGVsZW1lbnQgb2YgYGFycmF5YCBhbmQgYHZhbHVlc2AgdG8gZ2VuZXJhdGUgdGhlIGNyaXRlcmlvblxcbiAgICAgKiBieSB3aGljaCB0aGV5J3JlIGNvbXBhcmVkLiBUaGUgb3JkZXIgYW5kIHJlZmVyZW5jZXMgb2YgcmVzdWx0IHZhbHVlcyBhcmVcXG4gICAgICogZGV0ZXJtaW5lZCBieSB0aGUgZmlyc3QgYXJyYXkuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OlxcbiAgICAgKiAodmFsdWUpLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLnB1bGxBbGxCeWAsIHRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgYXJyYXkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byBleGNsdWRlLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5kaWZmZXJlbmNlQnkoWzIuMSwgMS4yXSwgWzIuMywgMy40XSwgTWF0aC5mbG9vcik7XFxuICAgICAqIC8vID0+IFsxLjJdXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLmRpZmZlcmVuY2VCeShbeyAneCc6IDIgfSwgeyAneCc6IDEgfV0sIFt7ICd4JzogMSB9XSwgJ3gnKTtcXG4gICAgICogLy8gPT4gW3sgJ3gnOiAyIH1dXFxuICAgICAqL1xcbiAgICB2YXIgZGlmZmVyZW5jZUJ5ID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXksIHZhbHVlcykge1xcbiAgICAgIHZhciBpdGVyYXRlZSA9IGxhc3QodmFsdWVzKTtcXG4gICAgICBpZiAoaXNBcnJheUxpa2VPYmplY3QoaXRlcmF0ZWUpKSB7XFxuICAgICAgICBpdGVyYXRlZSA9IHVuZGVmaW5lZDtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlT2JqZWN0KGFycmF5KVxcbiAgICAgICAgPyBiYXNlRGlmZmVyZW5jZShhcnJheSwgYmFzZUZsYXR0ZW4odmFsdWVzLCAxLCBpc0FycmF5TGlrZU9iamVjdCwgdHJ1ZSksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSlcXG4gICAgICAgIDogW107XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5kaWZmZXJlbmNlYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjb21wYXJhdG9yYFxcbiAgICAgKiB3aGljaCBpcyBpbnZva2VkIHRvIGNvbXBhcmUgZWxlbWVudHMgb2YgYGFycmF5YCB0byBgdmFsdWVzYC4gVGhlIG9yZGVyIGFuZFxcbiAgICAgKiByZWZlcmVuY2VzIG9mIHJlc3VsdCB2YWx1ZXMgYXJlIGRldGVybWluZWQgYnkgdGhlIGZpcnN0IGFycmF5LiBUaGUgY29tcGFyYXRvclxcbiAgICAgKiBpcyBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50czogKGFyclZhbCwgb3RoVmFsKS5cXG4gICAgICpcXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5wdWxsQWxsV2l0aGAsIHRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgYXJyYXkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byBleGNsdWRlLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiAyLCAneSc6IDEgfV07XFxuICAgICAqXFxuICAgICAqIF8uZGlmZmVyZW5jZVdpdGgob2JqZWN0cywgW3sgJ3gnOiAxLCAneSc6IDIgfV0sIF8uaXNFcXVhbCk7XFxuICAgICAqIC8vID0+IFt7ICd4JzogMiwgJ3knOiAxIH1dXFxuICAgICAqL1xcbiAgICB2YXIgZGlmZmVyZW5jZVdpdGggPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheSwgdmFsdWVzKSB7XFxuICAgICAgdmFyIGNvbXBhcmF0b3IgPSBsYXN0KHZhbHVlcyk7XFxuICAgICAgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KGNvbXBhcmF0b3IpKSB7XFxuICAgICAgICBjb21wYXJhdG9yID0gdW5kZWZpbmVkO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gaXNBcnJheUxpa2VPYmplY3QoYXJyYXkpXFxuICAgICAgICA/IGJhc2VEaWZmZXJlbmNlKGFycmF5LCBiYXNlRmxhdHRlbih2YWx1ZXMsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSwgdW5kZWZpbmVkLCBjb21wYXJhdG9yKVxcbiAgICAgICAgOiBbXTtcXG4gICAgfSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGBuYCBlbGVtZW50cyBkcm9wcGVkIGZyb20gdGhlIGJlZ2lubmluZy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC41LjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuPTFdIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gZHJvcC5cXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmRyb3AoWzEsIDIsIDNdKTtcXG4gICAgICogLy8gPT4gWzIsIDNdXFxuICAgICAqXFxuICAgICAqIF8uZHJvcChbMSwgMiwgM10sIDIpO1xcbiAgICAgKiAvLyA9PiBbM11cXG4gICAgICpcXG4gICAgICogXy5kcm9wKFsxLCAyLCAzXSwgNSk7XFxuICAgICAqIC8vID0+IFtdXFxuICAgICAqXFxuICAgICAqIF8uZHJvcChbMSwgMiwgM10sIDApO1xcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGRyb3AoYXJyYXksIG4sIGd1YXJkKSB7XFxuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xcbiAgICAgIGlmICghbGVuZ3RoKSB7XFxuICAgICAgICByZXR1cm4gW107XFxuICAgICAgfVxcbiAgICAgIG4gPSAoZ3VhcmQgfHwgbiA9PT0gdW5kZWZpbmVkKSA/IDEgOiB0b0ludGVnZXIobik7XFxuICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgbiA8IDAgPyAwIDogbiwgbGVuZ3RoKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBgbmAgZWxlbWVudHMgZHJvcHBlZCBmcm9tIHRoZSBlbmQuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRyb3AuXFxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5kcm9wUmlnaHQoWzEsIDIsIDNdKTtcXG4gICAgICogLy8gPT4gWzEsIDJdXFxuICAgICAqXFxuICAgICAqIF8uZHJvcFJpZ2h0KFsxLCAyLCAzXSwgMik7XFxuICAgICAqIC8vID0+IFsxXVxcbiAgICAgKlxcbiAgICAgKiBfLmRyb3BSaWdodChbMSwgMiwgM10sIDUpO1xcbiAgICAgKiAvLyA9PiBbXVxcbiAgICAgKlxcbiAgICAgKiBfLmRyb3BSaWdodChbMSwgMiwgM10sIDApO1xcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGRyb3BSaWdodChhcnJheSwgbiwgZ3VhcmQpIHtcXG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XFxuICAgICAgaWYgKCFsZW5ndGgpIHtcXG4gICAgICAgIHJldHVybiBbXTtcXG4gICAgICB9XFxuICAgICAgbiA9IChndWFyZCB8fCBuID09PSB1bmRlZmluZWQpID8gMSA6IHRvSW50ZWdlcihuKTtcXG4gICAgICBuID0gbGVuZ3RoIC0gbjtcXG4gICAgICByZXR1cm4gYmFzZVNsaWNlKGFycmF5LCAwLCBuIDwgMCA/IDAgOiBuKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgZXhjbHVkaW5nIGVsZW1lbnRzIGRyb3BwZWQgZnJvbSB0aGUgZW5kLlxcbiAgICAgKiBFbGVtZW50cyBhcmUgZHJvcHBlZCB1bnRpbCBgcHJlZGljYXRlYCByZXR1cm5zIGZhbHNleS4gVGhlIHByZWRpY2F0ZSBpc1xcbiAgICAgKiBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBhcnJheSkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgdXNlcnMgPSBbXFxuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FjdGl2ZSc6IHRydWUgfSxcXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2UgfSxcXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogZmFsc2UgfVxcbiAgICAgKiBdO1xcbiAgICAgKlxcbiAgICAgKiBfLmRyb3BSaWdodFdoaWxlKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiAhby5hY3RpdmU7IH0pO1xcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leSddXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uZHJvcFJpZ2h0V2hpbGUodXNlcnMsIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiBmYWxzZSB9KTtcXG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknLCAnZnJlZCddXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy5kcm9wUmlnaHRXaGlsZSh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leSddXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLmRyb3BSaWdodFdoaWxlKHVzZXJzLCAnYWN0aXZlJyk7XFxuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5JywgJ2ZyZWQnLCAncGViYmxlcyddXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBkcm9wUmlnaHRXaGlsZShhcnJheSwgcHJlZGljYXRlKSB7XFxuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXFxuICAgICAgICA/IGJhc2VXaGlsZShhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgdHJ1ZSwgdHJ1ZSlcXG4gICAgICAgIDogW107XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIGV4Y2x1ZGluZyBlbGVtZW50cyBkcm9wcGVkIGZyb20gdGhlIGJlZ2lubmluZy5cXG4gICAgICogRWxlbWVudHMgYXJlIGRyb3BwZWQgdW50aWwgYHByZWRpY2F0ZWAgcmV0dXJucyBmYWxzZXkuIFRoZSBwcmVkaWNhdGUgaXNcXG4gICAgICogaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleCwgYXJyYXkpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIHVzZXJzID0gW1xcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhY3RpdmUnOiBmYWxzZSB9LFxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhY3RpdmUnOiBmYWxzZSB9LFxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiB0cnVlIH1cXG4gICAgICogXTtcXG4gICAgICpcXG4gICAgICogXy5kcm9wV2hpbGUodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuICFvLmFjdGl2ZTsgfSk7XFxuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsncGViYmxlcyddXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uZHJvcFdoaWxlKHVzZXJzLCB7ICd1c2VyJzogJ2Jhcm5leScsICdhY3RpdmUnOiBmYWxzZSB9KTtcXG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydmcmVkJywgJ3BlYmJsZXMnXVxcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uZHJvcFdoaWxlKHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XFxuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsncGViYmxlcyddXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLmRyb3BXaGlsZSh1c2VycywgJ2FjdGl2ZScpO1xcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leScsICdmcmVkJywgJ3BlYmJsZXMnXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZHJvcFdoaWxlKGFycmF5LCBwcmVkaWNhdGUpIHtcXG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcXG4gICAgICAgID8gYmFzZVdoaWxlKGFycmF5LCBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpLCB0cnVlKVxcbiAgICAgICAgOiBbXTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogRmlsbHMgZWxlbWVudHMgb2YgYGFycmF5YCB3aXRoIGB2YWx1ZWAgZnJvbSBgc3RhcnRgIHVwIHRvLCBidXQgbm90XFxuICAgICAqIGluY2x1ZGluZywgYGVuZGAuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBhcnJheWAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMi4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmlsbC5cXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZmlsbCBgYXJyYXlgIHdpdGguXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IHBvc2l0aW9uLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2VuZD1hcnJheS5sZW5ndGhdIFRoZSBlbmQgcG9zaXRpb24uXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMiwgM107XFxuICAgICAqXFxuICAgICAqIF8uZmlsbChhcnJheSwgJ2EnKTtcXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYScsICdhJ11cXG4gICAgICpcXG4gICAgICogXy5maWxsKEFycmF5KDMpLCAyKTtcXG4gICAgICogLy8gPT4gWzIsIDIsIDJdXFxuICAgICAqXFxuICAgICAqIF8uZmlsbChbNCwgNiwgOCwgMTBdLCAnKicsIDEsIDMpO1xcbiAgICAgKiAvLyA9PiBbNCwgJyonLCAnKicsIDEwXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZmlsbChhcnJheSwgdmFsdWUsIHN0YXJ0LCBlbmQpIHtcXG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XFxuICAgICAgaWYgKCFsZW5ndGgpIHtcXG4gICAgICAgIHJldHVybiBbXTtcXG4gICAgICB9XFxuICAgICAgaWYgKHN0YXJ0ICYmIHR5cGVvZiBzdGFydCAhPSAnbnVtYmVyJyAmJiBpc0l0ZXJhdGVlQ2FsbChhcnJheSwgdmFsdWUsIHN0YXJ0KSkge1xcbiAgICAgICAgc3RhcnQgPSAwO1xcbiAgICAgICAgZW5kID0gbGVuZ3RoO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gYmFzZUZpbGwoYXJyYXksIHZhbHVlLCBzdGFydCwgZW5kKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5maW5kYCBleGNlcHQgdGhhdCBpdCByZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3RcXG4gICAgICogZWxlbWVudCBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IgaW5zdGVhZCBvZiB0aGUgZWxlbWVudCBpdHNlbGYuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDEuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmb3VuZCBlbGVtZW50LCBlbHNlIGAtMWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciB1c2VycyA9IFtcXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWN0aXZlJzogZmFsc2UgfSxcXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2UgfSxcXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogdHJ1ZSB9XFxuICAgICAqIF07XFxuICAgICAqXFxuICAgICAqIF8uZmluZEluZGV4KHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLnVzZXIgPT0gJ2Jhcm5leSc7IH0pO1xcbiAgICAgKiAvLyA9PiAwXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uZmluZEluZGV4KHVzZXJzLCB7ICd1c2VyJzogJ2ZyZWQnLCAnYWN0aXZlJzogZmFsc2UgfSk7XFxuICAgICAqIC8vID0+IDFcXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLmZpbmRJbmRleCh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xcbiAgICAgKiAvLyA9PiAwXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLmZpbmRJbmRleCh1c2VycywgJ2FjdGl2ZScpO1xcbiAgICAgKiAvLyA9PiAyXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBmaW5kSW5kZXgoYXJyYXksIHByZWRpY2F0ZSwgZnJvbUluZGV4KSB7XFxuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xcbiAgICAgIGlmICghbGVuZ3RoKSB7XFxuICAgICAgICByZXR1cm4gLTE7XFxuICAgICAgfVxcbiAgICAgIHZhciBpbmRleCA9IGZyb21JbmRleCA9PSBudWxsID8gMCA6IHRvSW50ZWdlcihmcm9tSW5kZXgpO1xcbiAgICAgIGlmIChpbmRleCA8IDApIHtcXG4gICAgICAgIGluZGV4ID0gbmF0aXZlTWF4KGxlbmd0aCArIGluZGV4LCAwKTtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIGJhc2VGaW5kSW5kZXgoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGluZGV4KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5maW5kSW5kZXhgIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgZWxlbWVudHNcXG4gICAgICogb2YgYGNvbGxlY3Rpb25gIGZyb20gcmlnaHQgdG8gbGVmdC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMi4wLjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZnJvbUluZGV4PWFycmF5Lmxlbmd0aC0xXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmb3VuZCBlbGVtZW50LCBlbHNlIGAtMWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciB1c2VycyA9IFtcXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWN0aXZlJzogdHJ1ZSB9LFxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhY3RpdmUnOiBmYWxzZSB9LFxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiBmYWxzZSB9XFxuICAgICAqIF07XFxuICAgICAqXFxuICAgICAqIF8uZmluZExhc3RJbmRleCh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gby51c2VyID09ICdwZWJibGVzJzsgfSk7XFxuICAgICAqIC8vID0+IDJcXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy5maW5kTGFzdEluZGV4KHVzZXJzLCB7ICd1c2VyJzogJ2Jhcm5leScsICdhY3RpdmUnOiB0cnVlIH0pO1xcbiAgICAgKiAvLyA9PiAwXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy5maW5kTGFzdEluZGV4KHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XFxuICAgICAqIC8vID0+IDJcXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uZmluZExhc3RJbmRleCh1c2VycywgJ2FjdGl2ZScpO1xcbiAgICAgKiAvLyA9PiAwXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBmaW5kTGFzdEluZGV4KGFycmF5LCBwcmVkaWNhdGUsIGZyb21JbmRleCkge1xcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcXG4gICAgICBpZiAoIWxlbmd0aCkge1xcbiAgICAgICAgcmV0dXJuIC0xO1xcbiAgICAgIH1cXG4gICAgICB2YXIgaW5kZXggPSBsZW5ndGggLSAxO1xcbiAgICAgIGlmIChmcm9tSW5kZXggIT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgaW5kZXggPSB0b0ludGVnZXIoZnJvbUluZGV4KTtcXG4gICAgICAgIGluZGV4ID0gZnJvbUluZGV4IDwgMFxcbiAgICAgICAgICA/IG5hdGl2ZU1heChsZW5ndGggKyBpbmRleCwgMClcXG4gICAgICAgICAgOiBuYXRpdmVNaW4oaW5kZXgsIGxlbmd0aCAtIDEpO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gYmFzZUZpbmRJbmRleChhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgaW5kZXgsIHRydWUpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBGbGF0dGVucyBgYXJyYXlgIGEgc2luZ2xlIGxldmVsIGRlZXAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmxhdHRlbi5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmZsYXR0ZW4oWzEsIFsyLCBbMywgWzRdXSwgNV1dKTtcXG4gICAgICogLy8gPT4gWzEsIDIsIFszLCBbNF1dLCA1XVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZmxhdHRlbihhcnJheSkge1xcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcXG4gICAgICByZXR1cm4gbGVuZ3RoID8gYmFzZUZsYXR0ZW4oYXJyYXksIDEpIDogW107XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFJlY3Vyc2l2ZWx5IGZsYXR0ZW5zIGBhcnJheWAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmxhdHRlbi5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmZsYXR0ZW5EZWVwKFsxLCBbMiwgWzMsIFs0XV0sIDVdXSk7XFxuICAgICAqIC8vID0+IFsxLCAyLCAzLCA0LCA1XVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZmxhdHRlbkRlZXAoYXJyYXkpIHtcXG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XFxuICAgICAgcmV0dXJuIGxlbmd0aCA/IGJhc2VGbGF0dGVuKGFycmF5LCBJTkZJTklUWSkgOiBbXTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogUmVjdXJzaXZlbHkgZmxhdHRlbiBgYXJyYXlgIHVwIHRvIGBkZXB0aGAgdGltZXMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuNC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmxhdHRlbi5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtkZXB0aD0xXSBUaGUgbWF4aW11bSByZWN1cnNpb24gZGVwdGguXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZsYXR0ZW5lZCBhcnJheS5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIGFycmF5ID0gWzEsIFsyLCBbMywgWzRdXSwgNV1dO1xcbiAgICAgKlxcbiAgICAgKiBfLmZsYXR0ZW5EZXB0aChhcnJheSwgMSk7XFxuICAgICAqIC8vID0+IFsxLCAyLCBbMywgWzRdXSwgNV1cXG4gICAgICpcXG4gICAgICogXy5mbGF0dGVuRGVwdGgoYXJyYXksIDIpO1xcbiAgICAgKiAvLyA9PiBbMSwgMiwgMywgWzRdLCA1XVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZmxhdHRlbkRlcHRoKGFycmF5LCBkZXB0aCkge1xcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcXG4gICAgICBpZiAoIWxlbmd0aCkge1xcbiAgICAgICAgcmV0dXJuIFtdO1xcbiAgICAgIH1cXG4gICAgICBkZXB0aCA9IGRlcHRoID09PSB1bmRlZmluZWQgPyAxIDogdG9JbnRlZ2VyKGRlcHRoKTtcXG4gICAgICByZXR1cm4gYmFzZUZsYXR0ZW4oYXJyYXksIGRlcHRoKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIGludmVyc2Ugb2YgYF8udG9QYWlyc2A7IHRoaXMgbWV0aG9kIHJldHVybnMgYW4gb2JqZWN0IGNvbXBvc2VkXFxuICAgICAqIGZyb20ga2V5LXZhbHVlIGBwYWlyc2AuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYWlycyBUaGUga2V5LXZhbHVlIHBhaXJzLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmZyb21QYWlycyhbWydhJywgMV0sIFsnYicsIDJdXSk7XFxuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIgfVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZnJvbVBhaXJzKHBhaXJzKSB7XFxuICAgICAgdmFyIGluZGV4ID0gLTEsXFxuICAgICAgICAgIGxlbmd0aCA9IHBhaXJzID09IG51bGwgPyAwIDogcGFpcnMubGVuZ3RoLFxcbiAgICAgICAgICByZXN1bHQgPSB7fTtcXG5cXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xcbiAgICAgICAgdmFyIHBhaXIgPSBwYWlyc1tpbmRleF07XFxuICAgICAgICByZXN1bHRbcGFpclswXV0gPSBwYWlyWzFdO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBHZXRzIHRoZSBmaXJzdCBlbGVtZW50IG9mIGBhcnJheWAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBhbGlhcyBmaXJzdFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmhlYWQoWzEsIDIsIDNdKTtcXG4gICAgICogLy8gPT4gMVxcbiAgICAgKlxcbiAgICAgKiBfLmhlYWQoW10pO1xcbiAgICAgKiAvLyA9PiB1bmRlZmluZWRcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGhlYWQoYXJyYXkpIHtcXG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkgPyBhcnJheVswXSA6IHVuZGVmaW5lZDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogR2V0cyB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYHZhbHVlYCBpcyBmb3VuZCBpbiBgYXJyYXlgXFxuICAgICAqIHVzaW5nIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXFxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy4gSWYgYGZyb21JbmRleGAgaXMgbmVnYXRpdmUsIGl0J3MgdXNlZCBhcyB0aGVcXG4gICAgICogb2Zmc2V0IGZyb20gdGhlIGVuZCBvZiBgYXJyYXlgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZnJvbUluZGV4PTBdIFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pbmRleE9mKFsxLCAyLCAxLCAyXSwgMik7XFxuICAgICAqIC8vID0+IDFcXG4gICAgICpcXG4gICAgICogLy8gU2VhcmNoIGZyb20gdGhlIGBmcm9tSW5kZXhgLlxcbiAgICAgKiBfLmluZGV4T2YoWzEsIDIsIDEsIDJdLCAyLCAyKTtcXG4gICAgICogLy8gPT4gM1xcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcXG4gICAgICBpZiAoIWxlbmd0aCkge1xcbiAgICAgICAgcmV0dXJuIC0xO1xcbiAgICAgIH1cXG4gICAgICB2YXIgaW5kZXggPSBmcm9tSW5kZXggPT0gbnVsbCA/IDAgOiB0b0ludGVnZXIoZnJvbUluZGV4KTtcXG4gICAgICBpZiAoaW5kZXggPCAwKSB7XFxuICAgICAgICBpbmRleCA9IG5hdGl2ZU1heChsZW5ndGggKyBpbmRleCwgMCk7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIGluZGV4KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogR2V0cyBhbGwgYnV0IHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmluaXRpYWwoWzEsIDIsIDNdKTtcXG4gICAgICogLy8gPT4gWzEsIDJdXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBpbml0aWFsKGFycmF5KSB7XFxuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xcbiAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlU2xpY2UoYXJyYXksIDAsIC0xKSA6IFtdO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHVuaXF1ZSB2YWx1ZXMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gYWxsIGdpdmVuIGFycmF5c1xcbiAgICAgKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuIFRoZSBvcmRlciBhbmQgcmVmZXJlbmNlcyBvZiByZXN1bHQgdmFsdWVzIGFyZVxcbiAgICAgKiBkZXRlcm1pbmVkIGJ5IHRoZSBmaXJzdCBhcnJheS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgaW50ZXJzZWN0aW5nIHZhbHVlcy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pbnRlcnNlY3Rpb24oWzIsIDFdLCBbMiwgM10pO1xcbiAgICAgKiAvLyA9PiBbMl1cXG4gICAgICovXFxuICAgIHZhciBpbnRlcnNlY3Rpb24gPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcXG4gICAgICB2YXIgbWFwcGVkID0gYXJyYXlNYXAoYXJyYXlzLCBjYXN0QXJyYXlMaWtlT2JqZWN0KTtcXG4gICAgICByZXR1cm4gKG1hcHBlZC5sZW5ndGggJiYgbWFwcGVkWzBdID09PSBhcnJheXNbMF0pXFxuICAgICAgICA/IGJhc2VJbnRlcnNlY3Rpb24obWFwcGVkKVxcbiAgICAgICAgOiBbXTtcXG4gICAgfSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmludGVyc2VjdGlvbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgXFxuICAgICAqIHdoaWNoIGlzIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBvZiBlYWNoIGBhcnJheXNgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb25cXG4gICAgICogYnkgd2hpY2ggdGhleSdyZSBjb21wYXJlZC4gVGhlIG9yZGVyIGFuZCByZWZlcmVuY2VzIG9mIHJlc3VsdCB2YWx1ZXMgYXJlXFxuICAgICAqIGRldGVybWluZWQgYnkgdGhlIGZpcnN0IGFycmF5LiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDpcXG4gICAgICogKHZhbHVlKS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBpbnRlcnNlY3RpbmcgdmFsdWVzLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmludGVyc2VjdGlvbkJ5KFsyLjEsIDEuMl0sIFsyLjMsIDMuNF0sIE1hdGguZmxvb3IpO1xcbiAgICAgKiAvLyA9PiBbMi4xXVxcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy5pbnRlcnNlY3Rpb25CeShbeyAneCc6IDEgfV0sIFt7ICd4JzogMiB9LCB7ICd4JzogMSB9XSwgJ3gnKTtcXG4gICAgICogLy8gPT4gW3sgJ3gnOiAxIH1dXFxuICAgICAqL1xcbiAgICB2YXIgaW50ZXJzZWN0aW9uQnkgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcXG4gICAgICB2YXIgaXRlcmF0ZWUgPSBsYXN0KGFycmF5cyksXFxuICAgICAgICAgIG1hcHBlZCA9IGFycmF5TWFwKGFycmF5cywgY2FzdEFycmF5TGlrZU9iamVjdCk7XFxuXFxuICAgICAgaWYgKGl0ZXJhdGVlID09PSBsYXN0KG1hcHBlZCkpIHtcXG4gICAgICAgIGl0ZXJhdGVlID0gdW5kZWZpbmVkO1xcbiAgICAgIH0gZWxzZSB7XFxuICAgICAgICBtYXBwZWQucG9wKCk7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiAobWFwcGVkLmxlbmd0aCAmJiBtYXBwZWRbMF0gPT09IGFycmF5c1swXSlcXG4gICAgICAgID8gYmFzZUludGVyc2VjdGlvbihtYXBwZWQsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSlcXG4gICAgICAgIDogW107XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pbnRlcnNlY3Rpb25gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGNvbXBhcmF0b3JgXFxuICAgICAqIHdoaWNoIGlzIGludm9rZWQgdG8gY29tcGFyZSBlbGVtZW50cyBvZiBgYXJyYXlzYC4gVGhlIG9yZGVyIGFuZCByZWZlcmVuY2VzXFxuICAgICAqIG9mIHJlc3VsdCB2YWx1ZXMgYXJlIGRldGVybWluZWQgYnkgdGhlIGZpcnN0IGFycmF5LiBUaGUgY29tcGFyYXRvciBpc1xcbiAgICAgKiBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50czogKGFyclZhbCwgb3RoVmFsKS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGludGVyc2VjdGluZyB2YWx1ZXMuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9XTtcXG4gICAgICogdmFyIG90aGVycyA9IFt7ICd4JzogMSwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDIgfV07XFxuICAgICAqXFxuICAgICAqIF8uaW50ZXJzZWN0aW9uV2l0aChvYmplY3RzLCBvdGhlcnMsIF8uaXNFcXVhbCk7XFxuICAgICAqIC8vID0+IFt7ICd4JzogMSwgJ3knOiAyIH1dXFxuICAgICAqL1xcbiAgICB2YXIgaW50ZXJzZWN0aW9uV2l0aCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xcbiAgICAgIHZhciBjb21wYXJhdG9yID0gbGFzdChhcnJheXMpLFxcbiAgICAgICAgICBtYXBwZWQgPSBhcnJheU1hcChhcnJheXMsIGNhc3RBcnJheUxpa2VPYmplY3QpO1xcblxcbiAgICAgIGNvbXBhcmF0b3IgPSB0eXBlb2YgY29tcGFyYXRvciA9PSAnZnVuY3Rpb24nID8gY29tcGFyYXRvciA6IHVuZGVmaW5lZDtcXG4gICAgICBpZiAoY29tcGFyYXRvcikge1xcbiAgICAgICAgbWFwcGVkLnBvcCgpO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gKG1hcHBlZC5sZW5ndGggJiYgbWFwcGVkWzBdID09PSBhcnJheXNbMF0pXFxuICAgICAgICA/IGJhc2VJbnRlcnNlY3Rpb24obWFwcGVkLCB1bmRlZmluZWQsIGNvbXBhcmF0b3IpXFxuICAgICAgICA6IFtdO1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENvbnZlcnRzIGFsbCBlbGVtZW50cyBpbiBgYXJyYXlgIGludG8gYSBzdHJpbmcgc2VwYXJhdGVkIGJ5IGBzZXBhcmF0b3JgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGNvbnZlcnQuXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc2VwYXJhdG9yPScsJ10gVGhlIGVsZW1lbnQgc2VwYXJhdG9yLlxcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBqb2luZWQgc3RyaW5nLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmpvaW4oWydhJywgJ2InLCAnYyddLCAnficpO1xcbiAgICAgKiAvLyA9PiAnYX5ifmMnXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBqb2luKGFycmF5LCBzZXBhcmF0b3IpIHtcXG4gICAgICByZXR1cm4gYXJyYXkgPT0gbnVsbCA/ICcnIDogbmF0aXZlSm9pbi5jYWxsKGFycmF5LCBzZXBhcmF0b3IpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBHZXRzIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGxhc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmxhc3QoWzEsIDIsIDNdKTtcXG4gICAgICogLy8gPT4gM1xcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gbGFzdChhcnJheSkge1xcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcXG4gICAgICByZXR1cm4gbGVuZ3RoID8gYXJyYXlbbGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uaW5kZXhPZmAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxcbiAgICAgKiBgYXJyYXlgIGZyb20gcmlnaHQgdG8gbGVmdC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD1hcnJheS5sZW5ndGgtMV0gVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmxhc3RJbmRleE9mKFsxLCAyLCAxLCAyXSwgMik7XFxuICAgICAqIC8vID0+IDNcXG4gICAgICpcXG4gICAgICogLy8gU2VhcmNoIGZyb20gdGhlIGBmcm9tSW5kZXhgLlxcbiAgICAgKiBfLmxhc3RJbmRleE9mKFsxLCAyLCAxLCAyXSwgMiwgMik7XFxuICAgICAqIC8vID0+IDFcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGxhc3RJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XFxuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xcbiAgICAgIGlmICghbGVuZ3RoKSB7XFxuICAgICAgICByZXR1cm4gLTE7XFxuICAgICAgfVxcbiAgICAgIHZhciBpbmRleCA9IGxlbmd0aDtcXG4gICAgICBpZiAoZnJvbUluZGV4ICE9PSB1bmRlZmluZWQpIHtcXG4gICAgICAgIGluZGV4ID0gdG9JbnRlZ2VyKGZyb21JbmRleCk7XFxuICAgICAgICBpbmRleCA9IGluZGV4IDwgMCA/IG5hdGl2ZU1heChsZW5ndGggKyBpbmRleCwgMCkgOiBuYXRpdmVNaW4oaW5kZXgsIGxlbmd0aCAtIDEpO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gdmFsdWUgPT09IHZhbHVlXFxuICAgICAgICA/IHN0cmljdExhc3RJbmRleE9mKGFycmF5LCB2YWx1ZSwgaW5kZXgpXFxuICAgICAgICA6IGJhc2VGaW5kSW5kZXgoYXJyYXksIGJhc2VJc05hTiwgaW5kZXgsIHRydWUpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBHZXRzIHRoZSBlbGVtZW50IGF0IGluZGV4IGBuYCBvZiBgYXJyYXlgLiBJZiBgbmAgaXMgbmVnYXRpdmUsIHRoZSBudGhcXG4gICAgICogZWxlbWVudCBmcm9tIHRoZSBlbmQgaXMgcmV0dXJuZWQuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMTEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249MF0gVGhlIGluZGV4IG9mIHRoZSBlbGVtZW50IHRvIHJldHVybi5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG50aCBlbGVtZW50IG9mIGBhcnJheWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBhcnJheSA9IFsnYScsICdiJywgJ2MnLCAnZCddO1xcbiAgICAgKlxcbiAgICAgKiBfLm50aChhcnJheSwgMSk7XFxuICAgICAqIC8vID0+ICdiJ1xcbiAgICAgKlxcbiAgICAgKiBfLm50aChhcnJheSwgLTIpO1xcbiAgICAgKiAvLyA9PiAnYyc7XFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBudGgoYXJyYXksIG4pIHtcXG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkgPyBiYXNlTnRoKGFycmF5LCB0b0ludGVnZXIobikpIDogdW5kZWZpbmVkO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBSZW1vdmVzIGFsbCBnaXZlbiB2YWx1ZXMgZnJvbSBgYXJyYXlgIHVzaW5nXFxuICAgICAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXFxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cXG4gICAgICpcXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy53aXRob3V0YCwgdGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgLiBVc2UgYF8ucmVtb3ZlYFxcbiAgICAgKiB0byByZW1vdmUgZWxlbWVudHMgZnJvbSBhbiBhcnJheSBieSBwcmVkaWNhdGUuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDIuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxcbiAgICAgKiBAcGFyYW0gey4uLip9IFt2YWx1ZXNdIFRoZSB2YWx1ZXMgdG8gcmVtb3ZlLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIGFycmF5ID0gWydhJywgJ2InLCAnYycsICdhJywgJ2InLCAnYyddO1xcbiAgICAgKlxcbiAgICAgKiBfLnB1bGwoYXJyYXksICdhJywgJ2MnKTtcXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xcbiAgICAgKiAvLyA9PiBbJ2InLCAnYiddXFxuICAgICAqL1xcbiAgICB2YXIgcHVsbCA9IGJhc2VSZXN0KHB1bGxBbGwpO1xcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5wdWxsYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGFuIGFycmF5IG9mIHZhbHVlcyB0byByZW1vdmUuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgYF8uZGlmZmVyZW5jZWAsIHRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIHJlbW92ZS5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBhcnJheSA9IFsnYScsICdiJywgJ2MnLCAnYScsICdiJywgJ2MnXTtcXG4gICAgICpcXG4gICAgICogXy5wdWxsQWxsKGFycmF5LCBbJ2EnLCAnYyddKTtcXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xcbiAgICAgKiAvLyA9PiBbJ2InLCAnYiddXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBwdWxsQWxsKGFycmF5LCB2YWx1ZXMpIHtcXG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCAmJiB2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aClcXG4gICAgICAgID8gYmFzZVB1bGxBbGwoYXJyYXksIHZhbHVlcylcXG4gICAgICAgIDogYXJyYXk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ucHVsbEFsbGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgIHdoaWNoIGlzXFxuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBvZiBgYXJyYXlgIGFuZCBgdmFsdWVzYCB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uXFxuICAgICAqIGJ5IHdoaWNoIHRoZXkncmUgY29tcGFyZWQuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLmRpZmZlcmVuY2VCeWAsIHRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIHJlbW92ZS5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIGFycmF5ID0gW3sgJ3gnOiAxIH0sIHsgJ3gnOiAyIH0sIHsgJ3gnOiAzIH0sIHsgJ3gnOiAxIH1dO1xcbiAgICAgKlxcbiAgICAgKiBfLnB1bGxBbGxCeShhcnJheSwgW3sgJ3gnOiAxIH0sIHsgJ3gnOiAzIH1dLCAneCcpO1xcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XFxuICAgICAqIC8vID0+IFt7ICd4JzogMiB9XVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gcHVsbEFsbEJ5KGFycmF5LCB2YWx1ZXMsIGl0ZXJhdGVlKSB7XFxuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGggJiYgdmFsdWVzICYmIHZhbHVlcy5sZW5ndGgpXFxuICAgICAgICA/IGJhc2VQdWxsQWxsKGFycmF5LCB2YWx1ZXMsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSlcXG4gICAgICAgIDogYXJyYXk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ucHVsbEFsbGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmAgd2hpY2hcXG4gICAgICogaXMgaW52b2tlZCB0byBjb21wYXJlIGVsZW1lbnRzIG9mIGBhcnJheWAgdG8gYHZhbHVlc2AuIFRoZSBjb21wYXJhdG9yIGlzXFxuICAgICAqIGludm9rZWQgd2l0aCB0d28gYXJndW1lbnRzOiAoYXJyVmFsLCBvdGhWYWwpLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLmRpZmZlcmVuY2VXaXRoYCwgdGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjYuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cXG4gICAgICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSB2YWx1ZXMgdG8gcmVtb3ZlLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBhcnJheSA9IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiAzLCAneSc6IDQgfSwgeyAneCc6IDUsICd5JzogNiB9XTtcXG4gICAgICpcXG4gICAgICogXy5wdWxsQWxsV2l0aChhcnJheSwgW3sgJ3gnOiAzLCAneSc6IDQgfV0sIF8uaXNFcXVhbCk7XFxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcXG4gICAgICogLy8gPT4gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDUsICd5JzogNiB9XVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gcHVsbEFsbFdpdGgoYXJyYXksIHZhbHVlcywgY29tcGFyYXRvcikge1xcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoICYmIHZhbHVlcyAmJiB2YWx1ZXMubGVuZ3RoKVxcbiAgICAgICAgPyBiYXNlUHVsbEFsbChhcnJheSwgdmFsdWVzLCB1bmRlZmluZWQsIGNvbXBhcmF0b3IpXFxuICAgICAgICA6IGFycmF5O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBSZW1vdmVzIGVsZW1lbnRzIGZyb20gYGFycmF5YCBjb3JyZXNwb25kaW5nIHRvIGBpbmRleGVzYCBhbmQgcmV0dXJucyBhblxcbiAgICAgKiBhcnJheSBvZiByZW1vdmVkIGVsZW1lbnRzLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLmF0YCwgdGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cXG4gICAgICogQHBhcmFtIHsuLi4obnVtYmVyfG51bWJlcltdKX0gW2luZGV4ZXNdIFRoZSBpbmRleGVzIG9mIGVsZW1lbnRzIHRvIHJlbW92ZS5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgcmVtb3ZlZCBlbGVtZW50cy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIGFycmF5ID0gWydhJywgJ2InLCAnYycsICdkJ107XFxuICAgICAqIHZhciBwdWxsZWQgPSBfLnB1bGxBdChhcnJheSwgWzEsIDNdKTtcXG4gICAgICpcXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYyddXFxuICAgICAqXFxuICAgICAqIGNvbnNvbGUubG9nKHB1bGxlZCk7XFxuICAgICAqIC8vID0+IFsnYicsICdkJ11cXG4gICAgICovXFxuICAgIHZhciBwdWxsQXQgPSBmbGF0UmVzdChmdW5jdGlvbihhcnJheSwgaW5kZXhlcykge1xcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCxcXG4gICAgICAgICAgcmVzdWx0ID0gYmFzZUF0KGFycmF5LCBpbmRleGVzKTtcXG5cXG4gICAgICBiYXNlUHVsbEF0KGFycmF5LCBhcnJheU1hcChpbmRleGVzLCBmdW5jdGlvbihpbmRleCkge1xcbiAgICAgICAgcmV0dXJuIGlzSW5kZXgoaW5kZXgsIGxlbmd0aCkgPyAraW5kZXggOiBpbmRleDtcXG4gICAgICB9KS5zb3J0KGNvbXBhcmVBc2NlbmRpbmcpKTtcXG5cXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIFJlbW92ZXMgYWxsIGVsZW1lbnRzIGZyb20gYGFycmF5YCB0aGF0IGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5IGZvclxcbiAgICAgKiBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiB0aGUgcmVtb3ZlZCBlbGVtZW50cy4gVGhlIHByZWRpY2F0ZSBpcyBpbnZva2VkXFxuICAgICAqIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBhcnJheSkuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgYF8uZmlsdGVyYCwgdGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgLiBVc2UgYF8ucHVsbGBcXG4gICAgICogdG8gcHVsbCBlbGVtZW50cyBmcm9tIGFuIGFycmF5IGJ5IHZhbHVlLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAyLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiByZW1vdmVkIGVsZW1lbnRzLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMiwgMywgNF07XFxuICAgICAqIHZhciBldmVucyA9IF8ucmVtb3ZlKGFycmF5LCBmdW5jdGlvbihuKSB7XFxuICAgICAqICAgcmV0dXJuIG4gJSAyID09IDA7XFxuICAgICAqIH0pO1xcbiAgICAgKlxcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XFxuICAgICAqIC8vID0+IFsxLCAzXVxcbiAgICAgKlxcbiAgICAgKiBjb25zb2xlLmxvZyhldmVucyk7XFxuICAgICAqIC8vID0+IFsyLCA0XVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gcmVtb3ZlKGFycmF5LCBwcmVkaWNhdGUpIHtcXG4gICAgICB2YXIgcmVzdWx0ID0gW107XFxuICAgICAgaWYgKCEoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSkge1xcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgICB9XFxuICAgICAgdmFyIGluZGV4ID0gLTEsXFxuICAgICAgICAgIGluZGV4ZXMgPSBbXSxcXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xcblxcbiAgICAgIHByZWRpY2F0ZSA9IGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyk7XFxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcXG4gICAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBhcnJheSkpIHtcXG4gICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xcbiAgICAgICAgICBpbmRleGVzLnB1c2goaW5kZXgpO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICBiYXNlUHVsbEF0KGFycmF5LCBpbmRleGVzKTtcXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBSZXZlcnNlcyBgYXJyYXlgIHNvIHRoYXQgdGhlIGZpcnN0IGVsZW1lbnQgYmVjb21lcyB0aGUgbGFzdCwgdGhlIHNlY29uZFxcbiAgICAgKiBlbGVtZW50IGJlY29tZXMgdGhlIHNlY29uZCB0byBsYXN0LCBhbmQgc28gb24uXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBhcnJheWAgYW5kIGlzIGJhc2VkIG9uXFxuICAgICAqIFtgQXJyYXkjcmV2ZXJzZWBdKGh0dHBzOi8vbWRuLmlvL0FycmF5L3JldmVyc2UpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBhcnJheSA9IFsxLCAyLCAzXTtcXG4gICAgICpcXG4gICAgICogXy5yZXZlcnNlKGFycmF5KTtcXG4gICAgICogLy8gPT4gWzMsIDIsIDFdXFxuICAgICAqXFxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcXG4gICAgICogLy8gPT4gWzMsIDIsIDFdXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiByZXZlcnNlKGFycmF5KSB7XFxuICAgICAgcmV0dXJuIGFycmF5ID09IG51bGwgPyBhcnJheSA6IG5hdGl2ZVJldmVyc2UuY2FsbChhcnJheSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIGZyb20gYHN0YXJ0YCB1cCB0bywgYnV0IG5vdCBpbmNsdWRpbmcsIGBlbmRgLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgdXNlZCBpbnN0ZWFkIG9mXFxuICAgICAqIFtgQXJyYXkjc2xpY2VgXShodHRwczovL21kbi5pby9BcnJheS9zbGljZSkgdG8gZW5zdXJlIGRlbnNlIGFycmF5cyBhcmVcXG4gICAgICogcmV0dXJuZWQuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2xpY2UuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IHBvc2l0aW9uLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2VuZD1hcnJheS5sZW5ndGhdIFRoZSBlbmQgcG9zaXRpb24uXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHNsaWNlKGFycmF5LCBzdGFydCwgZW5kKSB7XFxuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xcbiAgICAgIGlmICghbGVuZ3RoKSB7XFxuICAgICAgICByZXR1cm4gW107XFxuICAgICAgfVxcbiAgICAgIGlmIChlbmQgJiYgdHlwZW9mIGVuZCAhPSAnbnVtYmVyJyAmJiBpc0l0ZXJhdGVlQ2FsbChhcnJheSwgc3RhcnQsIGVuZCkpIHtcXG4gICAgICAgIHN0YXJ0ID0gMDtcXG4gICAgICAgIGVuZCA9IGxlbmd0aDtcXG4gICAgICB9XFxuICAgICAgZWxzZSB7XFxuICAgICAgICBzdGFydCA9IHN0YXJ0ID09IG51bGwgPyAwIDogdG9JbnRlZ2VyKHN0YXJ0KTtcXG4gICAgICAgIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuZ3RoIDogdG9JbnRlZ2VyKGVuZCk7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBiYXNlU2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBVc2VzIGEgYmluYXJ5IHNlYXJjaCB0byBkZXRlcm1pbmUgdGhlIGxvd2VzdCBpbmRleCBhdCB3aGljaCBgdmFsdWVgXFxuICAgICAqIHNob3VsZCBiZSBpbnNlcnRlZCBpbnRvIGBhcnJheWAgaW4gb3JkZXIgdG8gbWFpbnRhaW4gaXRzIHNvcnQgb3JkZXIuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgc29ydGVkIGFycmF5IHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZFxcbiAgICAgKiAgaW50byBgYXJyYXlgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLnNvcnRlZEluZGV4KFszMCwgNTBdLCA0MCk7XFxuICAgICAqIC8vID0+IDFcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHNvcnRlZEluZGV4KGFycmF5LCB2YWx1ZSkge1xcbiAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXgoYXJyYXksIHZhbHVlKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5zb3J0ZWRJbmRleGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgXFxuICAgICAqIHdoaWNoIGlzIGludm9rZWQgZm9yIGB2YWx1ZWAgYW5kIGVhY2ggZWxlbWVudCBvZiBgYXJyYXlgIHRvIGNvbXB1dGUgdGhlaXJcXG4gICAgICogc29ydCByYW5raW5nLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBzb3J0ZWQgYXJyYXkgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZXZhbHVhdGUuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcXG4gICAgICogIGludG8gYGFycmF5YC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAneCc6IDQgfSwgeyAneCc6IDUgfV07XFxuICAgICAqXFxuICAgICAqIF8uc29ydGVkSW5kZXhCeShvYmplY3RzLCB7ICd4JzogNCB9LCBmdW5jdGlvbihvKSB7IHJldHVybiBvLng7IH0pO1xcbiAgICAgKiAvLyA9PiAwXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLnNvcnRlZEluZGV4Qnkob2JqZWN0cywgeyAneCc6IDQgfSwgJ3gnKTtcXG4gICAgICogLy8gPT4gMFxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc29ydGVkSW5kZXhCeShhcnJheSwgdmFsdWUsIGl0ZXJhdGVlKSB7XFxuICAgICAgcmV0dXJuIGJhc2VTb3J0ZWRJbmRleEJ5KGFycmF5LCB2YWx1ZSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pbmRleE9mYCBleGNlcHQgdGhhdCBpdCBwZXJmb3JtcyBhIGJpbmFyeVxcbiAgICAgKiBzZWFyY2ggb24gYSBzb3J0ZWQgYGFycmF5YC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLnNvcnRlZEluZGV4T2YoWzQsIDUsIDUsIDUsIDZdLCA1KTtcXG4gICAgICogLy8gPT4gMVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc29ydGVkSW5kZXhPZihhcnJheSwgdmFsdWUpIHtcXG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XFxuICAgICAgaWYgKGxlbmd0aCkge1xcbiAgICAgICAgdmFyIGluZGV4ID0gYmFzZVNvcnRlZEluZGV4KGFycmF5LCB2YWx1ZSk7XFxuICAgICAgICBpZiAoaW5kZXggPCBsZW5ndGggJiYgZXEoYXJyYXlbaW5kZXhdLCB2YWx1ZSkpIHtcXG4gICAgICAgICAgcmV0dXJuIGluZGV4O1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICByZXR1cm4gLTE7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc29ydGVkSW5kZXhgIGV4Y2VwdCB0aGF0IGl0IHJldHVybnMgdGhlIGhpZ2hlc3RcXG4gICAgICogaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWQgaW50byBgYXJyYXlgIGluIG9yZGVyIHRvXFxuICAgICAqIG1haW50YWluIGl0cyBzb3J0IG9yZGVyLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBldmFsdWF0ZS5cXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcXG4gICAgICogIGludG8gYGFycmF5YC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5zb3J0ZWRMYXN0SW5kZXgoWzQsIDUsIDUsIDUsIDZdLCA1KTtcXG4gICAgICogLy8gPT4gNFxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc29ydGVkTGFzdEluZGV4KGFycmF5LCB2YWx1ZSkge1xcbiAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXgoYXJyYXksIHZhbHVlLCB0cnVlKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5zb3J0ZWRMYXN0SW5kZXhgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYFxcbiAgICAgKiB3aGljaCBpcyBpbnZva2VkIGZvciBgdmFsdWVgIGFuZCBlYWNoIGVsZW1lbnQgb2YgYGFycmF5YCB0byBjb21wdXRlIHRoZWlyXFxuICAgICAqIHNvcnQgcmFua2luZy4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgc29ydGVkIGFycmF5IHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkXFxuICAgICAqICBpbnRvIGBhcnJheWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ3gnOiA0IH0sIHsgJ3gnOiA1IH1dO1xcbiAgICAgKlxcbiAgICAgKiBfLnNvcnRlZExhc3RJbmRleEJ5KG9iamVjdHMsIHsgJ3gnOiA0IH0sIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8ueDsgfSk7XFxuICAgICAqIC8vID0+IDFcXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uc29ydGVkTGFzdEluZGV4Qnkob2JqZWN0cywgeyAneCc6IDQgfSwgJ3gnKTtcXG4gICAgICogLy8gPT4gMVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc29ydGVkTGFzdEluZGV4QnkoYXJyYXksIHZhbHVlLCBpdGVyYXRlZSkge1xcbiAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXhCeShhcnJheSwgdmFsdWUsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSwgdHJ1ZSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ubGFzdEluZGV4T2ZgIGV4Y2VwdCB0aGF0IGl0IHBlcmZvcm1zIGEgYmluYXJ5XFxuICAgICAqIHNlYXJjaCBvbiBhIHNvcnRlZCBgYXJyYXlgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uc29ydGVkTGFzdEluZGV4T2YoWzQsIDUsIDUsIDUsIDZdLCA1KTtcXG4gICAgICogLy8gPT4gM1xcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc29ydGVkTGFzdEluZGV4T2YoYXJyYXksIHZhbHVlKSB7XFxuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xcbiAgICAgIGlmIChsZW5ndGgpIHtcXG4gICAgICAgIHZhciBpbmRleCA9IGJhc2VTb3J0ZWRJbmRleChhcnJheSwgdmFsdWUsIHRydWUpIC0gMTtcXG4gICAgICAgIGlmIChlcShhcnJheVtpbmRleF0sIHZhbHVlKSkge1xcbiAgICAgICAgICByZXR1cm4gaW5kZXg7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICAgIHJldHVybiAtMTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy51bmlxYCBleGNlcHQgdGhhdCBpdCdzIGRlc2lnbmVkIGFuZCBvcHRpbWl6ZWRcXG4gICAgICogZm9yIHNvcnRlZCBhcnJheXMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlIGZyZWUgYXJyYXkuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uc29ydGVkVW5pcShbMSwgMSwgMl0pO1xcbiAgICAgKiAvLyA9PiBbMSwgMl1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHNvcnRlZFVuaXEoYXJyYXkpIHtcXG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcXG4gICAgICAgID8gYmFzZVNvcnRlZFVuaXEoYXJyYXkpXFxuICAgICAgICA6IFtdO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVuaXFCeWAgZXhjZXB0IHRoYXQgaXQncyBkZXNpZ25lZCBhbmQgb3B0aW1pemVkXFxuICAgICAqIGZvciBzb3J0ZWQgYXJyYXlzLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLnNvcnRlZFVuaXFCeShbMS4xLCAxLjIsIDIuMywgMi40XSwgTWF0aC5mbG9vcik7XFxuICAgICAqIC8vID0+IFsxLjEsIDIuM11cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHNvcnRlZFVuaXFCeShhcnJheSwgaXRlcmF0ZWUpIHtcXG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcXG4gICAgICAgID8gYmFzZVNvcnRlZFVuaXEoYXJyYXksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSlcXG4gICAgICAgIDogW107XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEdldHMgYWxsIGJ1dCB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8udGFpbChbMSwgMiwgM10pO1xcbiAgICAgKiAvLyA9PiBbMiwgM11cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHRhaWwoYXJyYXkpIHtcXG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XFxuICAgICAgcmV0dXJuIGxlbmd0aCA/IGJhc2VTbGljZShhcnJheSwgMSwgbGVuZ3RoKSA6IFtdO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGBuYCBlbGVtZW50cyB0YWtlbiBmcm9tIHRoZSBiZWdpbm5pbmcuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHRha2UuXFxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy50YWtlKFsxLCAyLCAzXSk7XFxuICAgICAqIC8vID0+IFsxXVxcbiAgICAgKlxcbiAgICAgKiBfLnRha2UoWzEsIDIsIDNdLCAyKTtcXG4gICAgICogLy8gPT4gWzEsIDJdXFxuICAgICAqXFxuICAgICAqIF8udGFrZShbMSwgMiwgM10sIDUpO1xcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cXG4gICAgICpcXG4gICAgICogXy50YWtlKFsxLCAyLCAzXSwgMCk7XFxuICAgICAqIC8vID0+IFtdXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB0YWtlKGFycmF5LCBuLCBndWFyZCkge1xcbiAgICAgIGlmICghKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkpIHtcXG4gICAgICAgIHJldHVybiBbXTtcXG4gICAgICB9XFxuICAgICAgbiA9IChndWFyZCB8fCBuID09PSB1bmRlZmluZWQpID8gMSA6IHRvSW50ZWdlcihuKTtcXG4gICAgICByZXR1cm4gYmFzZVNsaWNlKGFycmF5LCAwLCBuIDwgMCA/IDAgOiBuKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBgbmAgZWxlbWVudHMgdGFrZW4gZnJvbSB0aGUgZW5kLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249MV0gVGhlIG51bWJlciBvZiBlbGVtZW50cyB0byB0YWtlLlxcbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8udGFrZVJpZ2h0KFsxLCAyLCAzXSk7XFxuICAgICAqIC8vID0+IFszXVxcbiAgICAgKlxcbiAgICAgKiBfLnRha2VSaWdodChbMSwgMiwgM10sIDIpO1xcbiAgICAgKiAvLyA9PiBbMiwgM11cXG4gICAgICpcXG4gICAgICogXy50YWtlUmlnaHQoWzEsIDIsIDNdLCA1KTtcXG4gICAgICogLy8gPT4gWzEsIDIsIDNdXFxuICAgICAqXFxuICAgICAqIF8udGFrZVJpZ2h0KFsxLCAyLCAzXSwgMCk7XFxuICAgICAqIC8vID0+IFtdXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB0YWtlUmlnaHQoYXJyYXksIG4sIGd1YXJkKSB7XFxuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xcbiAgICAgIGlmICghbGVuZ3RoKSB7XFxuICAgICAgICByZXR1cm4gW107XFxuICAgICAgfVxcbiAgICAgIG4gPSAoZ3VhcmQgfHwgbiA9PT0gdW5kZWZpbmVkKSA/IDEgOiB0b0ludGVnZXIobik7XFxuICAgICAgbiA9IGxlbmd0aCAtIG47XFxuICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgbiA8IDAgPyAwIDogbiwgbGVuZ3RoKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBlbGVtZW50cyB0YWtlbiBmcm9tIHRoZSBlbmQuIEVsZW1lbnRzIGFyZVxcbiAgICAgKiB0YWtlbiB1bnRpbCBgcHJlZGljYXRlYCByZXR1cm5zIGZhbHNleS4gVGhlIHByZWRpY2F0ZSBpcyBpbnZva2VkIHdpdGhcXG4gICAgICogdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBhcnJheSkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgdXNlcnMgPSBbXFxuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FjdGl2ZSc6IHRydWUgfSxcXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2UgfSxcXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogZmFsc2UgfVxcbiAgICAgKiBdO1xcbiAgICAgKlxcbiAgICAgKiBfLnRha2VSaWdodFdoaWxlKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiAhby5hY3RpdmU7IH0pO1xcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnLCAncGViYmxlcyddXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8udGFrZVJpZ2h0V2hpbGUodXNlcnMsIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiBmYWxzZSB9KTtcXG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydwZWJibGVzJ11cXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLnRha2VSaWdodFdoaWxlKHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XFxuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCcsICdwZWJibGVzJ11cXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8udGFrZVJpZ2h0V2hpbGUodXNlcnMsICdhY3RpdmUnKTtcXG4gICAgICogLy8gPT4gW11cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHRha2VSaWdodFdoaWxlKGFycmF5LCBwcmVkaWNhdGUpIHtcXG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcXG4gICAgICAgID8gYmFzZVdoaWxlKGFycmF5LCBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpLCBmYWxzZSwgdHJ1ZSlcXG4gICAgICAgIDogW107XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIHdpdGggZWxlbWVudHMgdGFrZW4gZnJvbSB0aGUgYmVnaW5uaW5nLiBFbGVtZW50c1xcbiAgICAgKiBhcmUgdGFrZW4gdW50aWwgYHByZWRpY2F0ZWAgcmV0dXJucyBmYWxzZXkuIFRoZSBwcmVkaWNhdGUgaXMgaW52b2tlZCB3aXRoXFxuICAgICAqIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleCwgYXJyYXkpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIHVzZXJzID0gW1xcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhY3RpdmUnOiBmYWxzZSB9LFxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhY3RpdmUnOiBmYWxzZSB9LFxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiB0cnVlIH1cXG4gICAgICogXTtcXG4gICAgICpcXG4gICAgICogXy50YWtlV2hpbGUodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuICFvLmFjdGl2ZTsgfSk7XFxuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5JywgJ2ZyZWQnXVxcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLnRha2VXaGlsZSh1c2VycywgeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogZmFsc2UgfSk7XFxuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLnRha2VXaGlsZSh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leScsICdmcmVkJ11cXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8udGFrZVdoaWxlKHVzZXJzLCAnYWN0aXZlJyk7XFxuICAgICAqIC8vID0+IFtdXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB0YWtlV2hpbGUoYXJyYXksIHByZWRpY2F0ZSkge1xcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxcbiAgICAgICAgPyBiYXNlV2hpbGUoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMykpXFxuICAgICAgICA6IFtdO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHVuaXF1ZSB2YWx1ZXMsIGluIG9yZGVyLCBmcm9tIGFsbCBnaXZlbiBhcnJheXMgdXNpbmdcXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21iaW5lZCB2YWx1ZXMuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8udW5pb24oWzJdLCBbMSwgMl0pO1xcbiAgICAgKiAvLyA9PiBbMiwgMV1cXG4gICAgICovXFxuICAgIHZhciB1bmlvbiA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xcbiAgICAgIHJldHVybiBiYXNlVW5pcShiYXNlRmxhdHRlbihhcnJheXMsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSk7XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy51bmlvbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgIHdoaWNoIGlzXFxuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBvZiBlYWNoIGBhcnJheXNgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb24gYnlcXG4gICAgICogd2hpY2ggdW5pcXVlbmVzcyBpcyBjb21wdXRlZC4gUmVzdWx0IHZhbHVlcyBhcmUgY2hvc2VuIGZyb20gdGhlIGZpcnN0XFxuICAgICAqIGFycmF5IGluIHdoaWNoIHRoZSB2YWx1ZSBvY2N1cnMuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OlxcbiAgICAgKiAodmFsdWUpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGNvbWJpbmVkIHZhbHVlcy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy51bmlvbkJ5KFsyLjFdLCBbMS4yLCAyLjNdLCBNYXRoLmZsb29yKTtcXG4gICAgICogLy8gPT4gWzIuMSwgMS4yXVxcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy51bmlvbkJ5KFt7ICd4JzogMSB9XSwgW3sgJ3gnOiAyIH0sIHsgJ3gnOiAxIH1dLCAneCcpO1xcbiAgICAgKiAvLyA9PiBbeyAneCc6IDEgfSwgeyAneCc6IDIgfV1cXG4gICAgICovXFxuICAgIHZhciB1bmlvbkJ5ID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XFxuICAgICAgdmFyIGl0ZXJhdGVlID0gbGFzdChhcnJheXMpO1xcbiAgICAgIGlmIChpc0FycmF5TGlrZU9iamVjdChpdGVyYXRlZSkpIHtcXG4gICAgICAgIGl0ZXJhdGVlID0gdW5kZWZpbmVkO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gYmFzZVVuaXEoYmFzZUZsYXR0ZW4oYXJyYXlzLCAxLCBpc0FycmF5TGlrZU9iamVjdCwgdHJ1ZSksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSk7XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy51bmlvbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmAgd2hpY2hcXG4gICAgICogaXMgaW52b2tlZCB0byBjb21wYXJlIGVsZW1lbnRzIG9mIGBhcnJheXNgLiBSZXN1bHQgdmFsdWVzIGFyZSBjaG9zZW4gZnJvbVxcbiAgICAgKiB0aGUgZmlyc3QgYXJyYXkgaW4gd2hpY2ggdGhlIHZhbHVlIG9jY3Vycy4gVGhlIGNvbXBhcmF0b3IgaXMgaW52b2tlZFxcbiAgICAgKiB3aXRoIHR3byBhcmd1bWVudHM6IChhcnJWYWwsIG90aFZhbCkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21iaW5lZCB2YWx1ZXMuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9XTtcXG4gICAgICogdmFyIG90aGVycyA9IFt7ICd4JzogMSwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDIgfV07XFxuICAgICAqXFxuICAgICAqIF8udW5pb25XaXRoKG9iamVjdHMsIG90aGVycywgXy5pc0VxdWFsKTtcXG4gICAgICogLy8gPT4gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9LCB7ICd4JzogMSwgJ3knOiAxIH1dXFxuICAgICAqL1xcbiAgICB2YXIgdW5pb25XaXRoID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XFxuICAgICAgdmFyIGNvbXBhcmF0b3IgPSBsYXN0KGFycmF5cyk7XFxuICAgICAgY29tcGFyYXRvciA9IHR5cGVvZiBjb21wYXJhdG9yID09ICdmdW5jdGlvbicgPyBjb21wYXJhdG9yIDogdW5kZWZpbmVkO1xcbiAgICAgIHJldHVybiBiYXNlVW5pcShiYXNlRmxhdHRlbihhcnJheXMsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSwgdW5kZWZpbmVkLCBjb21wYXJhdG9yKTtcXG4gICAgfSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZHVwbGljYXRlLWZyZWUgdmVyc2lvbiBvZiBhbiBhcnJheSwgdXNpbmdcXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLCBpbiB3aGljaCBvbmx5IHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGVhY2ggZWxlbWVudFxcbiAgICAgKiBpcyBrZXB0LiBUaGUgb3JkZXIgb2YgcmVzdWx0IHZhbHVlcyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBvcmRlciB0aGV5IG9jY3VyXFxuICAgICAqIGluIHRoZSBhcnJheS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBkdXBsaWNhdGUgZnJlZSBhcnJheS5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy51bmlxKFsyLCAxLCAyXSk7XFxuICAgICAqIC8vID0+IFsyLCAxXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gdW5pcShhcnJheSkge1xcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSA/IGJhc2VVbmlxKGFycmF5KSA6IFtdO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVuaXFgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xcbiAgICAgKiBpbnZva2VkIGZvciBlYWNoIGVsZW1lbnQgaW4gYGFycmF5YCB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uIGJ5IHdoaWNoXFxuICAgICAqIHVuaXF1ZW5lc3MgaXMgY29tcHV0ZWQuIFRoZSBvcmRlciBvZiByZXN1bHQgdmFsdWVzIGlzIGRldGVybWluZWQgYnkgdGhlXFxuICAgICAqIG9yZGVyIHRoZXkgb2NjdXIgaW4gdGhlIGFycmF5LiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDpcXG4gICAgICogKHZhbHVlKS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGR1cGxpY2F0ZSBmcmVlIGFycmF5LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLnVuaXFCeShbMi4xLCAxLjIsIDIuM10sIE1hdGguZmxvb3IpO1xcbiAgICAgKiAvLyA9PiBbMi4xLCAxLjJdXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLnVuaXFCeShbeyAneCc6IDEgfSwgeyAneCc6IDIgfSwgeyAneCc6IDEgfV0sICd4Jyk7XFxuICAgICAqIC8vID0+IFt7ICd4JzogMSB9LCB7ICd4JzogMiB9XVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gdW5pcUJ5KGFycmF5LCBpdGVyYXRlZSkge1xcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSA/IGJhc2VVbmlxKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMikpIDogW107XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8udW5pcWAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmAgd2hpY2hcXG4gICAgICogaXMgaW52b2tlZCB0byBjb21wYXJlIGVsZW1lbnRzIG9mIGBhcnJheWAuIFRoZSBvcmRlciBvZiByZXN1bHQgdmFsdWVzIGlzXFxuICAgICAqIGRldGVybWluZWQgYnkgdGhlIG9yZGVyIHRoZXkgb2NjdXIgaW4gdGhlIGFycmF5LlRoZSBjb21wYXJhdG9yIGlzIGludm9rZWRcXG4gICAgICogd2l0aCB0d28gYXJndW1lbnRzOiAoYXJyVmFsLCBvdGhWYWwpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBkdXBsaWNhdGUgZnJlZSBhcnJheS5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAneCc6IDEsICd5JzogMiB9LCB7ICd4JzogMiwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDIgfV07XFxuICAgICAqXFxuICAgICAqIF8udW5pcVdpdGgob2JqZWN0cywgXy5pc0VxdWFsKTtcXG4gICAgICogLy8gPT4gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9XVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gdW5pcVdpdGgoYXJyYXksIGNvbXBhcmF0b3IpIHtcXG4gICAgICBjb21wYXJhdG9yID0gdHlwZW9mIGNvbXBhcmF0b3IgPT0gJ2Z1bmN0aW9uJyA/IGNvbXBhcmF0b3IgOiB1bmRlZmluZWQ7XFxuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpID8gYmFzZVVuaXEoYXJyYXksIHVuZGVmaW5lZCwgY29tcGFyYXRvcikgOiBbXTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy56aXBgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYW4gYXJyYXkgb2YgZ3JvdXBlZFxcbiAgICAgKiBlbGVtZW50cyBhbmQgY3JlYXRlcyBhbiBhcnJheSByZWdyb3VwaW5nIHRoZSBlbGVtZW50cyB0byB0aGVpciBwcmUtemlwXFxuICAgICAqIGNvbmZpZ3VyYXRpb24uXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDEuMi4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgb2YgZ3JvdXBlZCBlbGVtZW50cyB0byBwcm9jZXNzLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiByZWdyb3VwZWQgZWxlbWVudHMuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciB6aXBwZWQgPSBfLnppcChbJ2EnLCAnYiddLCBbMSwgMl0sIFt0cnVlLCBmYWxzZV0pO1xcbiAgICAgKiAvLyA9PiBbWydhJywgMSwgdHJ1ZV0sIFsnYicsIDIsIGZhbHNlXV1cXG4gICAgICpcXG4gICAgICogXy51bnppcCh6aXBwZWQpO1xcbiAgICAgKiAvLyA9PiBbWydhJywgJ2InXSwgWzEsIDJdLCBbdHJ1ZSwgZmFsc2VdXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gdW56aXAoYXJyYXkpIHtcXG4gICAgICBpZiAoIShhcnJheSAmJiBhcnJheS5sZW5ndGgpKSB7XFxuICAgICAgICByZXR1cm4gW107XFxuICAgICAgfVxcbiAgICAgIHZhciBsZW5ndGggPSAwO1xcbiAgICAgIGFycmF5ID0gYXJyYXlGaWx0ZXIoYXJyYXksIGZ1bmN0aW9uKGdyb3VwKSB7XFxuICAgICAgICBpZiAoaXNBcnJheUxpa2VPYmplY3QoZ3JvdXApKSB7XFxuICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1heChncm91cC5sZW5ndGgsIGxlbmd0aCk7XFxuICAgICAgICAgIHJldHVybiB0cnVlO1xcbiAgICAgICAgfVxcbiAgICAgIH0pO1xcbiAgICAgIHJldHVybiBiYXNlVGltZXMobGVuZ3RoLCBmdW5jdGlvbihpbmRleCkge1xcbiAgICAgICAgcmV0dXJuIGFycmF5TWFwKGFycmF5LCBiYXNlUHJvcGVydHkoaW5kZXgpKTtcXG4gICAgICB9KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy51bnppcGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgIHRvIHNwZWNpZnlcXG4gICAgICogaG93IHJlZ3JvdXBlZCB2YWx1ZXMgc2hvdWxkIGJlIGNvbWJpbmVkLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIHRoZVxcbiAgICAgKiBlbGVtZW50cyBvZiBlYWNoIGdyb3VwOiAoLi4uZ3JvdXApLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjguMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IG9mIGdyb3VwZWQgZWxlbWVudHMgdG8gcHJvY2Vzcy5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiB0byBjb21iaW5lXFxuICAgICAqICByZWdyb3VwZWQgdmFsdWVzLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiByZWdyb3VwZWQgZWxlbWVudHMuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciB6aXBwZWQgPSBfLnppcChbMSwgMl0sIFsxMCwgMjBdLCBbMTAwLCAyMDBdKTtcXG4gICAgICogLy8gPT4gW1sxLCAxMCwgMTAwXSwgWzIsIDIwLCAyMDBdXVxcbiAgICAgKlxcbiAgICAgKiBfLnVuemlwV2l0aCh6aXBwZWQsIF8uYWRkKTtcXG4gICAgICogLy8gPT4gWzMsIDMwLCAzMDBdXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB1bnppcFdpdGgoYXJyYXksIGl0ZXJhdGVlKSB7XFxuICAgICAgaWYgKCEoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSkge1xcbiAgICAgICAgcmV0dXJuIFtdO1xcbiAgICAgIH1cXG4gICAgICB2YXIgcmVzdWx0ID0gdW56aXAoYXJyYXkpO1xcbiAgICAgIGlmIChpdGVyYXRlZSA9PSBudWxsKSB7XFxuICAgICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gYXJyYXlNYXAocmVzdWx0LCBmdW5jdGlvbihncm91cCkge1xcbiAgICAgICAgcmV0dXJuIGFwcGx5KGl0ZXJhdGVlLCB1bmRlZmluZWQsIGdyb3VwKTtcXG4gICAgICB9KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBleGNsdWRpbmcgYWxsIGdpdmVuIHZhbHVlcyB1c2luZ1xcbiAgICAgKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgYF8ucHVsbGAsIHRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgYXJyYXkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHsuLi4qfSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIGV4Y2x1ZGUuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cXG4gICAgICogQHNlZSBfLmRpZmZlcmVuY2UsIF8ueG9yXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8ud2l0aG91dChbMiwgMSwgMiwgM10sIDEsIDIpO1xcbiAgICAgKiAvLyA9PiBbM11cXG4gICAgICovXFxuICAgIHZhciB3aXRob3V0ID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXksIHZhbHVlcykge1xcbiAgICAgIHJldHVybiBpc0FycmF5TGlrZU9iamVjdChhcnJheSlcXG4gICAgICAgID8gYmFzZURpZmZlcmVuY2UoYXJyYXksIHZhbHVlcylcXG4gICAgICAgIDogW107XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB1bmlxdWUgdmFsdWVzIHRoYXQgaXMgdGhlXFxuICAgICAqIFtzeW1tZXRyaWMgZGlmZmVyZW5jZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU3ltbWV0cmljX2RpZmZlcmVuY2UpXFxuICAgICAqIG9mIHRoZSBnaXZlbiBhcnJheXMuIFRoZSBvcmRlciBvZiByZXN1bHQgdmFsdWVzIGlzIGRldGVybWluZWQgYnkgdGhlIG9yZGVyXFxuICAgICAqIHRoZXkgb2NjdXIgaW4gdGhlIGFycmF5cy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMi40LjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxcbiAgICAgKiBAc2VlIF8uZGlmZmVyZW5jZSwgXy53aXRob3V0XFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8ueG9yKFsyLCAxXSwgWzIsIDNdKTtcXG4gICAgICogLy8gPT4gWzEsIDNdXFxuICAgICAqL1xcbiAgICB2YXIgeG9yID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XFxuICAgICAgcmV0dXJuIGJhc2VYb3IoYXJyYXlGaWx0ZXIoYXJyYXlzLCBpc0FycmF5TGlrZU9iamVjdCkpO1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ueG9yYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2ggaXNcXG4gICAgICogaW52b2tlZCBmb3IgZWFjaCBlbGVtZW50IG9mIGVhY2ggYGFycmF5c2AgdG8gZ2VuZXJhdGUgdGhlIGNyaXRlcmlvbiBieVxcbiAgICAgKiB3aGljaCBieSB3aGljaCB0aGV5J3JlIGNvbXBhcmVkLiBUaGUgb3JkZXIgb2YgcmVzdWx0IHZhbHVlcyBpcyBkZXRlcm1pbmVkXFxuICAgICAqIGJ5IHRoZSBvcmRlciB0aGV5IG9jY3VyIGluIHRoZSBhcnJheXMuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lXFxuICAgICAqIGFyZ3VtZW50OiAodmFsdWUpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy54b3JCeShbMi4xLCAxLjJdLCBbMi4zLCAzLjRdLCBNYXRoLmZsb29yKTtcXG4gICAgICogLy8gPT4gWzEuMiwgMy40XVxcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy54b3JCeShbeyAneCc6IDEgfV0sIFt7ICd4JzogMiB9LCB7ICd4JzogMSB9XSwgJ3gnKTtcXG4gICAgICogLy8gPT4gW3sgJ3gnOiAyIH1dXFxuICAgICAqL1xcbiAgICB2YXIgeG9yQnkgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcXG4gICAgICB2YXIgaXRlcmF0ZWUgPSBsYXN0KGFycmF5cyk7XFxuICAgICAgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KGl0ZXJhdGVlKSkge1xcbiAgICAgICAgaXRlcmF0ZWUgPSB1bmRlZmluZWQ7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBiYXNlWG9yKGFycmF5RmlsdGVyKGFycmF5cywgaXNBcnJheUxpa2VPYmplY3QpLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMikpO1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ueG9yYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjb21wYXJhdG9yYCB3aGljaCBpc1xcbiAgICAgKiBpbnZva2VkIHRvIGNvbXBhcmUgZWxlbWVudHMgb2YgYGFycmF5c2AuIFRoZSBvcmRlciBvZiByZXN1bHQgdmFsdWVzIGlzXFxuICAgICAqIGRldGVybWluZWQgYnkgdGhlIG9yZGVyIHRoZXkgb2NjdXIgaW4gdGhlIGFycmF5cy4gVGhlIGNvbXBhcmF0b3IgaXMgaW52b2tlZFxcbiAgICAgKiB3aXRoIHR3byBhcmd1bWVudHM6IChhcnJWYWwsIG90aFZhbCkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9XTtcXG4gICAgICogdmFyIG90aGVycyA9IFt7ICd4JzogMSwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDIgfV07XFxuICAgICAqXFxuICAgICAqIF8ueG9yV2l0aChvYmplY3RzLCBvdGhlcnMsIF8uaXNFcXVhbCk7XFxuICAgICAqIC8vID0+IFt7ICd4JzogMiwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDEgfV1cXG4gICAgICovXFxuICAgIHZhciB4b3JXaXRoID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XFxuICAgICAgdmFyIGNvbXBhcmF0b3IgPSBsYXN0KGFycmF5cyk7XFxuICAgICAgY29tcGFyYXRvciA9IHR5cGVvZiBjb21wYXJhdG9yID09ICdmdW5jdGlvbicgPyBjb21wYXJhdG9yIDogdW5kZWZpbmVkO1xcbiAgICAgIHJldHVybiBiYXNlWG9yKGFycmF5RmlsdGVyKGFycmF5cywgaXNBcnJheUxpa2VPYmplY3QpLCB1bmRlZmluZWQsIGNvbXBhcmF0b3IpO1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgZ3JvdXBlZCBlbGVtZW50cywgdGhlIGZpcnN0IG9mIHdoaWNoIGNvbnRhaW5zIHRoZVxcbiAgICAgKiBmaXJzdCBlbGVtZW50cyBvZiB0aGUgZ2l2ZW4gYXJyYXlzLCB0aGUgc2Vjb25kIG9mIHdoaWNoIGNvbnRhaW5zIHRoZVxcbiAgICAgKiBzZWNvbmQgZWxlbWVudHMgb2YgdGhlIGdpdmVuIGFycmF5cywgYW5kIHNvIG9uLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcXG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBwcm9jZXNzLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLnppcChbJ2EnLCAnYiddLCBbMSwgMl0sIFt0cnVlLCBmYWxzZV0pO1xcbiAgICAgKiAvLyA9PiBbWydhJywgMSwgdHJ1ZV0sIFsnYicsIDIsIGZhbHNlXV1cXG4gICAgICovXFxuICAgIHZhciB6aXAgPSBiYXNlUmVzdCh1bnppcCk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZyb21QYWlyc2AgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyB0d28gYXJyYXlzLFxcbiAgICAgKiBvbmUgb2YgcHJvcGVydHkgaWRlbnRpZmllcnMgYW5kIG9uZSBvZiBjb3JyZXNwb25kaW5nIHZhbHVlcy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC40LjBcXG4gICAgICogQGNhdGVnb3J5IEFycmF5XFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwcm9wcz1bXV0gVGhlIHByb3BlcnR5IGlkZW50aWZpZXJzLlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbdmFsdWVzPVtdXSBUaGUgcHJvcGVydHkgdmFsdWVzLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLnppcE9iamVjdChbJ2EnLCAnYiddLCBbMSwgMl0pO1xcbiAgICAgKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyIH1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHppcE9iamVjdChwcm9wcywgdmFsdWVzKSB7XFxuICAgICAgcmV0dXJuIGJhc2VaaXBPYmplY3QocHJvcHMgfHwgW10sIHZhbHVlcyB8fCBbXSwgYXNzaWduVmFsdWUpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnppcE9iamVjdGAgZXhjZXB0IHRoYXQgaXQgc3VwcG9ydHMgcHJvcGVydHkgcGF0aHMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbcHJvcHM9W11dIFRoZSBwcm9wZXJ0eSBpZGVudGlmaWVycy5cXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3ZhbHVlcz1bXV0gVGhlIHByb3BlcnR5IHZhbHVlcy5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy56aXBPYmplY3REZWVwKFsnYS5iWzBdLmMnLCAnYS5iWzFdLmQnXSwgWzEsIDJdKTtcXG4gICAgICogLy8gPT4geyAnYSc6IHsgJ2InOiBbeyAnYyc6IDEgfSwgeyAnZCc6IDIgfV0gfSB9XFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB6aXBPYmplY3REZWVwKHByb3BzLCB2YWx1ZXMpIHtcXG4gICAgICByZXR1cm4gYmFzZVppcE9iamVjdChwcm9wcyB8fCBbXSwgdmFsdWVzIHx8IFtdLCBiYXNlU2V0KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy56aXBgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB0byBzcGVjaWZ5XFxuICAgICAqIGhvdyBncm91cGVkIHZhbHVlcyBzaG91bGQgYmUgY29tYmluZWQuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggdGhlXFxuICAgICAqIGVsZW1lbnRzIG9mIGVhY2ggZ3JvdXA6ICguLi5ncm91cCkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuOC4wXFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIHByb2Nlc3MuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gdG8gY29tYmluZVxcbiAgICAgKiAgZ3JvdXBlZCB2YWx1ZXMuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGdyb3VwZWQgZWxlbWVudHMuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uemlwV2l0aChbMSwgMl0sIFsxMCwgMjBdLCBbMTAwLCAyMDBdLCBmdW5jdGlvbihhLCBiLCBjKSB7XFxuICAgICAqICAgcmV0dXJuIGEgKyBiICsgYztcXG4gICAgICogfSk7XFxuICAgICAqIC8vID0+IFsxMTEsIDIyMl1cXG4gICAgICovXFxuICAgIHZhciB6aXBXaXRoID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XFxuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5cy5sZW5ndGgsXFxuICAgICAgICAgIGl0ZXJhdGVlID0gbGVuZ3RoID4gMSA/IGFycmF5c1tsZW5ndGggLSAxXSA6IHVuZGVmaW5lZDtcXG5cXG4gICAgICBpdGVyYXRlZSA9IHR5cGVvZiBpdGVyYXRlZSA9PSAnZnVuY3Rpb24nID8gKGFycmF5cy5wb3AoKSwgaXRlcmF0ZWUpIDogdW5kZWZpbmVkO1xcbiAgICAgIHJldHVybiB1bnppcFdpdGgoYXJyYXlzLCBpdGVyYXRlZSk7XFxuICAgIH0pO1xcblxcbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZSB0aGF0IHdyYXBzIGB2YWx1ZWAgd2l0aCBleHBsaWNpdCBtZXRob2RcXG4gICAgICogY2hhaW4gc2VxdWVuY2VzIGVuYWJsZWQuIFRoZSByZXN1bHQgb2Ygc3VjaCBzZXF1ZW5jZXMgbXVzdCBiZSB1bndyYXBwZWRcXG4gICAgICogd2l0aCBgXyN2YWx1ZWAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDEuMy4wXFxuICAgICAqIEBjYXRlZ29yeSBTZXFcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gd3JhcC5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciB1c2VycyA9IFtcXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWdlJzogMzYgfSxcXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWdlJzogNDAgfSxcXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWdlJzogMSB9XFxuICAgICAqIF07XFxuICAgICAqXFxuICAgICAqIHZhciB5b3VuZ2VzdCA9IF9cXG4gICAgICogICAuY2hhaW4odXNlcnMpXFxuICAgICAqICAgLnNvcnRCeSgnYWdlJylcXG4gICAgICogICAubWFwKGZ1bmN0aW9uKG8pIHtcXG4gICAgICogICAgIHJldHVybiBvLnVzZXIgKyAnIGlzICcgKyBvLmFnZTtcXG4gICAgICogICB9KVxcbiAgICAgKiAgIC5oZWFkKClcXG4gICAgICogICAudmFsdWUoKTtcXG4gICAgICogLy8gPT4gJ3BlYmJsZXMgaXMgMSdcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNoYWluKHZhbHVlKSB7XFxuICAgICAgdmFyIHJlc3VsdCA9IGxvZGFzaCh2YWx1ZSk7XFxuICAgICAgcmVzdWx0Ll9fY2hhaW5fXyA9IHRydWU7XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaW52b2tlcyBgaW50ZXJjZXB0b3JgIGFuZCByZXR1cm5zIGB2YWx1ZWAuIFRoZSBpbnRlcmNlcHRvclxcbiAgICAgKiBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OyAodmFsdWUpLiBUaGUgcHVycG9zZSBvZiB0aGlzIG1ldGhvZCBpcyB0b1xcbiAgICAgKiBcXFwidGFwIGludG9cXFwiIGEgbWV0aG9kIGNoYWluIHNlcXVlbmNlIGluIG9yZGVyIHRvIG1vZGlmeSBpbnRlcm1lZGlhdGUgcmVzdWx0cy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IFNlcVxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm92aWRlIHRvIGBpbnRlcmNlcHRvcmAuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGludGVyY2VwdG9yIFRoZSBmdW5jdGlvbiB0byBpbnZva2UuXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIGB2YWx1ZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8oWzEsIDIsIDNdKVxcbiAgICAgKiAgLnRhcChmdW5jdGlvbihhcnJheSkge1xcbiAgICAgKiAgICAvLyBNdXRhdGUgaW5wdXQgYXJyYXkuXFxuICAgICAqICAgIGFycmF5LnBvcCgpO1xcbiAgICAgKiAgfSlcXG4gICAgICogIC5yZXZlcnNlKClcXG4gICAgICogIC52YWx1ZSgpO1xcbiAgICAgKiAvLyA9PiBbMiwgMV1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHRhcCh2YWx1ZSwgaW50ZXJjZXB0b3IpIHtcXG4gICAgICBpbnRlcmNlcHRvcih2YWx1ZSk7XFxuICAgICAgcmV0dXJuIHZhbHVlO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnRhcGAgZXhjZXB0IHRoYXQgaXQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIGBpbnRlcmNlcHRvcmAuXFxuICAgICAqIFRoZSBwdXJwb3NlIG9mIHRoaXMgbWV0aG9kIGlzIHRvIFxcXCJwYXNzIHRocnVcXFwiIHZhbHVlcyByZXBsYWNpbmcgaW50ZXJtZWRpYXRlXFxuICAgICAqIHJlc3VsdHMgaW4gYSBtZXRob2QgY2hhaW4gc2VxdWVuY2UuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBTZXFcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvdmlkZSB0byBgaW50ZXJjZXB0b3JgLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpbnRlcmNlcHRvciBUaGUgZnVuY3Rpb24gdG8gaW52b2tlLlxcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzdWx0IG9mIGBpbnRlcmNlcHRvcmAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8oJyAgYWJjICAnKVxcbiAgICAgKiAgLmNoYWluKClcXG4gICAgICogIC50cmltKClcXG4gICAgICogIC50aHJ1KGZ1bmN0aW9uKHZhbHVlKSB7XFxuICAgICAqICAgIHJldHVybiBbdmFsdWVdO1xcbiAgICAgKiAgfSlcXG4gICAgICogIC52YWx1ZSgpO1xcbiAgICAgKiAvLyA9PiBbJ2FiYyddXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB0aHJ1KHZhbHVlLCBpbnRlcmNlcHRvcikge1xcbiAgICAgIHJldHVybiBpbnRlcmNlcHRvcih2YWx1ZSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIHRoZSB3cmFwcGVyIHZlcnNpb24gb2YgYF8uYXRgLlxcbiAgICAgKlxcbiAgICAgKiBAbmFtZSBhdFxcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMS4wLjBcXG4gICAgICogQGNhdGVnb3J5IFNlcVxcbiAgICAgKiBAcGFyYW0gey4uLihzdHJpbmd8c3RyaW5nW10pfSBbcGF0aHNdIFRoZSBwcm9wZXJ0eSBwYXRocyB0byBwaWNrLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiAzIH0gfSwgNF0gfTtcXG4gICAgICpcXG4gICAgICogXyhvYmplY3QpLmF0KFsnYVswXS5iLmMnLCAnYVsxXSddKS52YWx1ZSgpO1xcbiAgICAgKiAvLyA9PiBbMywgNF1cXG4gICAgICovXFxuICAgIHZhciB3cmFwcGVyQXQgPSBmbGF0UmVzdChmdW5jdGlvbihwYXRocykge1xcbiAgICAgIHZhciBsZW5ndGggPSBwYXRocy5sZW5ndGgsXFxuICAgICAgICAgIHN0YXJ0ID0gbGVuZ3RoID8gcGF0aHNbMF0gOiAwLFxcbiAgICAgICAgICB2YWx1ZSA9IHRoaXMuX193cmFwcGVkX18sXFxuICAgICAgICAgIGludGVyY2VwdG9yID0gZnVuY3Rpb24ob2JqZWN0KSB7IHJldHVybiBiYXNlQXQob2JqZWN0LCBwYXRocyk7IH07XFxuXFxuICAgICAgaWYgKGxlbmd0aCA+IDEgfHwgdGhpcy5fX2FjdGlvbnNfXy5sZW5ndGggfHxcXG4gICAgICAgICAgISh2YWx1ZSBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSB8fCAhaXNJbmRleChzdGFydCkpIHtcXG4gICAgICAgIHJldHVybiB0aGlzLnRocnUoaW50ZXJjZXB0b3IpO1xcbiAgICAgIH1cXG4gICAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKHN0YXJ0LCArc3RhcnQgKyAobGVuZ3RoID8gMSA6IDApKTtcXG4gICAgICB2YWx1ZS5fX2FjdGlvbnNfXy5wdXNoKHtcXG4gICAgICAgICdmdW5jJzogdGhydSxcXG4gICAgICAgICdhcmdzJzogW2ludGVyY2VwdG9yXSxcXG4gICAgICAgICd0aGlzQXJnJzogdW5kZWZpbmVkXFxuICAgICAgfSk7XFxuICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHZhbHVlLCB0aGlzLl9fY2hhaW5fXykudGhydShmdW5jdGlvbihhcnJheSkge1xcbiAgICAgICAgaWYgKGxlbmd0aCAmJiAhYXJyYXkubGVuZ3RoKSB7XFxuICAgICAgICAgIGFycmF5LnB1c2godW5kZWZpbmVkKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiBhcnJheTtcXG4gICAgICB9KTtcXG4gICAgfSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZSB3aXRoIGV4cGxpY2l0IG1ldGhvZCBjaGFpbiBzZXF1ZW5jZXMgZW5hYmxlZC5cXG4gICAgICpcXG4gICAgICogQG5hbWUgY2hhaW5cXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBTZXFcXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciB1c2VycyA9IFtcXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9LFxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwIH1cXG4gICAgICogXTtcXG4gICAgICpcXG4gICAgICogLy8gQSBzZXF1ZW5jZSB3aXRob3V0IGV4cGxpY2l0IGNoYWluaW5nLlxcbiAgICAgKiBfKHVzZXJzKS5oZWFkKCk7XFxuICAgICAqIC8vID0+IHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH1cXG4gICAgICpcXG4gICAgICogLy8gQSBzZXF1ZW5jZSB3aXRoIGV4cGxpY2l0IGNoYWluaW5nLlxcbiAgICAgKiBfKHVzZXJzKVxcbiAgICAgKiAgIC5jaGFpbigpXFxuICAgICAqICAgLmhlYWQoKVxcbiAgICAgKiAgIC5waWNrKCd1c2VyJylcXG4gICAgICogICAudmFsdWUoKTtcXG4gICAgICogLy8gPT4geyAndXNlcic6ICdiYXJuZXknIH1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHdyYXBwZXJDaGFpbigpIHtcXG4gICAgICByZXR1cm4gY2hhaW4odGhpcyk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEV4ZWN1dGVzIHRoZSBjaGFpbiBzZXF1ZW5jZSBhbmQgcmV0dXJucyB0aGUgd3JhcHBlZCByZXN1bHQuXFxuICAgICAqXFxuICAgICAqIEBuYW1lIGNvbW1pdFxcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMy4yLjBcXG4gICAgICogQGNhdGVnb3J5IFNlcVxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIGFycmF5ID0gWzEsIDJdO1xcbiAgICAgKiB2YXIgd3JhcHBlZCA9IF8oYXJyYXkpLnB1c2goMyk7XFxuICAgICAqXFxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcXG4gICAgICogLy8gPT4gWzEsIDJdXFxuICAgICAqXFxuICAgICAqIHdyYXBwZWQgPSB3cmFwcGVkLmNvbW1pdCgpO1xcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XFxuICAgICAqIC8vID0+IFsxLCAyLCAzXVxcbiAgICAgKlxcbiAgICAgKiB3cmFwcGVkLmxhc3QoKTtcXG4gICAgICogLy8gPT4gM1xcbiAgICAgKlxcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XFxuICAgICAqIC8vID0+IFsxLCAyLCAzXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gd3JhcHBlckNvbW1pdCgpIHtcXG4gICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIodGhpcy52YWx1ZSgpLCB0aGlzLl9fY2hhaW5fXyk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEdldHMgdGhlIG5leHQgdmFsdWUgb24gYSB3cmFwcGVkIG9iamVjdCBmb2xsb3dpbmcgdGhlXFxuICAgICAqIFtpdGVyYXRvciBwcm90b2NvbF0oaHR0cHM6Ly9tZG4uaW8vaXRlcmF0aW9uX3Byb3RvY29scyNpdGVyYXRvcikuXFxuICAgICAqXFxuICAgICAqIEBuYW1lIG5leHRcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBTZXFcXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV4dCBpdGVyYXRvciB2YWx1ZS5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIHdyYXBwZWQgPSBfKFsxLCAyXSk7XFxuICAgICAqXFxuICAgICAqIHdyYXBwZWQubmV4dCgpO1xcbiAgICAgKiAvLyA9PiB7ICdkb25lJzogZmFsc2UsICd2YWx1ZSc6IDEgfVxcbiAgICAgKlxcbiAgICAgKiB3cmFwcGVkLm5leHQoKTtcXG4gICAgICogLy8gPT4geyAnZG9uZSc6IGZhbHNlLCAndmFsdWUnOiAyIH1cXG4gICAgICpcXG4gICAgICogd3JhcHBlZC5uZXh0KCk7XFxuICAgICAqIC8vID0+IHsgJ2RvbmUnOiB0cnVlLCAndmFsdWUnOiB1bmRlZmluZWQgfVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gd3JhcHBlck5leHQoKSB7XFxuICAgICAgaWYgKHRoaXMuX192YWx1ZXNfXyA9PT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICB0aGlzLl9fdmFsdWVzX18gPSB0b0FycmF5KHRoaXMudmFsdWUoKSk7XFxuICAgICAgfVxcbiAgICAgIHZhciBkb25lID0gdGhpcy5fX2luZGV4X18gPj0gdGhpcy5fX3ZhbHVlc19fLmxlbmd0aCxcXG4gICAgICAgICAgdmFsdWUgPSBkb25lID8gdW5kZWZpbmVkIDogdGhpcy5fX3ZhbHVlc19fW3RoaXMuX19pbmRleF9fKytdO1xcblxcbiAgICAgIHJldHVybiB7ICdkb25lJzogZG9uZSwgJ3ZhbHVlJzogdmFsdWUgfTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogRW5hYmxlcyB0aGUgd3JhcHBlciB0byBiZSBpdGVyYWJsZS5cXG4gICAgICpcXG4gICAgICogQG5hbWUgU3ltYm9sLml0ZXJhdG9yXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU2VxXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIHdyYXBwZXIgb2JqZWN0LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgd3JhcHBlZCA9IF8oWzEsIDJdKTtcXG4gICAgICpcXG4gICAgICogd3JhcHBlZFtTeW1ib2wuaXRlcmF0b3JdKCkgPT09IHdyYXBwZWQ7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogQXJyYXkuZnJvbSh3cmFwcGVkKTtcXG4gICAgICogLy8gPT4gWzEsIDJdXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB3cmFwcGVyVG9JdGVyYXRvcigpIHtcXG4gICAgICByZXR1cm4gdGhpcztcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIHRoZSBjaGFpbiBzZXF1ZW5jZSBwbGFudGluZyBgdmFsdWVgIGFzIHRoZSB3cmFwcGVkIHZhbHVlLlxcbiAgICAgKlxcbiAgICAgKiBAbmFtZSBwbGFudFxcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMy4yLjBcXG4gICAgICogQGNhdGVnb3J5IFNlcVxcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwbGFudC5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIHNxdWFyZShuKSB7XFxuICAgICAqICAgcmV0dXJuIG4gKiBuO1xcbiAgICAgKiB9XFxuICAgICAqXFxuICAgICAqIHZhciB3cmFwcGVkID0gXyhbMSwgMl0pLm1hcChzcXVhcmUpO1xcbiAgICAgKiB2YXIgb3RoZXIgPSB3cmFwcGVkLnBsYW50KFszLCA0XSk7XFxuICAgICAqXFxuICAgICAqIG90aGVyLnZhbHVlKCk7XFxuICAgICAqIC8vID0+IFs5LCAxNl1cXG4gICAgICpcXG4gICAgICogd3JhcHBlZC52YWx1ZSgpO1xcbiAgICAgKiAvLyA9PiBbMSwgNF1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHdyYXBwZXJQbGFudCh2YWx1ZSkge1xcbiAgICAgIHZhciByZXN1bHQsXFxuICAgICAgICAgIHBhcmVudCA9IHRoaXM7XFxuXFxuICAgICAgd2hpbGUgKHBhcmVudCBpbnN0YW5jZW9mIGJhc2VMb2Rhc2gpIHtcXG4gICAgICAgIHZhciBjbG9uZSA9IHdyYXBwZXJDbG9uZShwYXJlbnQpO1xcbiAgICAgICAgY2xvbmUuX19pbmRleF9fID0gMDtcXG4gICAgICAgIGNsb25lLl9fdmFsdWVzX18gPSB1bmRlZmluZWQ7XFxuICAgICAgICBpZiAocmVzdWx0KSB7XFxuICAgICAgICAgIHByZXZpb3VzLl9fd3JhcHBlZF9fID0gY2xvbmU7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICByZXN1bHQgPSBjbG9uZTtcXG4gICAgICAgIH1cXG4gICAgICAgIHZhciBwcmV2aW91cyA9IGNsb25lO1xcbiAgICAgICAgcGFyZW50ID0gcGFyZW50Ll9fd3JhcHBlZF9fO1xcbiAgICAgIH1cXG4gICAgICBwcmV2aW91cy5fX3dyYXBwZWRfXyA9IHZhbHVlO1xcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIHRoZSB3cmFwcGVyIHZlcnNpb24gb2YgYF8ucmV2ZXJzZWAuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIHRoZSB3cmFwcGVkIGFycmF5LlxcbiAgICAgKlxcbiAgICAgKiBAbmFtZSByZXZlcnNlXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU2VxXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBgbG9kYXNoYCB3cmFwcGVyIGluc3RhbmNlLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMiwgM107XFxuICAgICAqXFxuICAgICAqIF8oYXJyYXkpLnJldmVyc2UoKS52YWx1ZSgpXFxuICAgICAqIC8vID0+IFszLCAyLCAxXVxcbiAgICAgKlxcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XFxuICAgICAqIC8vID0+IFszLCAyLCAxXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gd3JhcHBlclJldmVyc2UoKSB7XFxuICAgICAgdmFyIHZhbHVlID0gdGhpcy5fX3dyYXBwZWRfXztcXG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBMYXp5V3JhcHBlcikge1xcbiAgICAgICAgdmFyIHdyYXBwZWQgPSB2YWx1ZTtcXG4gICAgICAgIGlmICh0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCkge1xcbiAgICAgICAgICB3cmFwcGVkID0gbmV3IExhenlXcmFwcGVyKHRoaXMpO1xcbiAgICAgICAgfVxcbiAgICAgICAgd3JhcHBlZCA9IHdyYXBwZWQucmV2ZXJzZSgpO1xcbiAgICAgICAgd3JhcHBlZC5fX2FjdGlvbnNfXy5wdXNoKHtcXG4gICAgICAgICAgJ2Z1bmMnOiB0aHJ1LFxcbiAgICAgICAgICAnYXJncyc6IFtyZXZlcnNlXSxcXG4gICAgICAgICAgJ3RoaXNBcmcnOiB1bmRlZmluZWRcXG4gICAgICAgIH0pO1xcbiAgICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHdyYXBwZWQsIHRoaXMuX19jaGFpbl9fKTtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHRoaXMudGhydShyZXZlcnNlKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogRXhlY3V0ZXMgdGhlIGNoYWluIHNlcXVlbmNlIHRvIHJlc29sdmUgdGhlIHVud3JhcHBlZCB2YWx1ZS5cXG4gICAgICpcXG4gICAgICogQG5hbWUgdmFsdWVcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBhbGlhcyB0b0pTT04sIHZhbHVlT2ZcXG4gICAgICogQGNhdGVnb3J5IFNlcVxcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdW53cmFwcGVkIHZhbHVlLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfKFsxLCAyLCAzXSkudmFsdWUoKTtcXG4gICAgICogLy8gPT4gWzEsIDIsIDNdXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB3cmFwcGVyVmFsdWUoKSB7XFxuICAgICAgcmV0dXJuIGJhc2VXcmFwcGVyVmFsdWUodGhpcy5fX3dyYXBwZWRfXywgdGhpcy5fX2FjdGlvbnNfXyk7XFxuICAgIH1cXG5cXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgY29tcG9zZWQgb2Yga2V5cyBnZW5lcmF0ZWQgZnJvbSB0aGUgcmVzdWx0cyBvZiBydW5uaW5nXFxuICAgICAqIGVhY2ggZWxlbWVudCBvZiBgY29sbGVjdGlvbmAgdGhydSBgaXRlcmF0ZWVgLiBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBvZlxcbiAgICAgKiBlYWNoIGtleSBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBrZXkgd2FzIHJldHVybmVkIGJ5IGBpdGVyYXRlZWAuIFRoZVxcbiAgICAgKiBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjUuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgdG8gdHJhbnNmb3JtIGtleXMuXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNvbXBvc2VkIGFnZ3JlZ2F0ZSBvYmplY3QuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uY291bnRCeShbNi4xLCA0LjIsIDYuM10sIE1hdGguZmxvb3IpO1xcbiAgICAgKiAvLyA9PiB7ICc0JzogMSwgJzYnOiAyIH1cXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uY291bnRCeShbJ29uZScsICd0d28nLCAndGhyZWUnXSwgJ2xlbmd0aCcpO1xcbiAgICAgKiAvLyA9PiB7ICczJzogMiwgJzUnOiAxIH1cXG4gICAgICovXFxuICAgIHZhciBjb3VudEJ5ID0gY3JlYXRlQWdncmVnYXRvcihmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcXG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChyZXN1bHQsIGtleSkpIHtcXG4gICAgICAgICsrcmVzdWx0W2tleV07XFxuICAgICAgfSBlbHNlIHtcXG4gICAgICAgIGJhc2VBc3NpZ25WYWx1ZShyZXN1bHQsIGtleSwgMSk7XFxuICAgICAgfVxcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IgKiphbGwqKiBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAuXFxuICAgICAqIEl0ZXJhdGlvbiBpcyBzdG9wcGVkIG9uY2UgYHByZWRpY2F0ZWAgcmV0dXJucyBmYWxzZXkuIFRoZSBwcmVkaWNhdGUgaXNcXG4gICAgICogaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgcmV0dXJucyBgdHJ1ZWAgZm9yXFxuICAgICAqIFtlbXB0eSBjb2xsZWN0aW9uc10oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRW1wdHlfc2V0KSBiZWNhdXNlXFxuICAgICAqIFtldmVyeXRoaW5nIGlzIHRydWVdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1ZhY3VvdXNfdHJ1dGgpIG9mXFxuICAgICAqIGVsZW1lbnRzIG9mIGVtcHR5IGNvbGxlY3Rpb25zLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFsbCBlbGVtZW50cyBwYXNzIHRoZSBwcmVkaWNhdGUgY2hlY2ssXFxuICAgICAqICBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uZXZlcnkoW3RydWUsIDEsIG51bGwsICd5ZXMnXSwgQm9vbGVhbik7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqXFxuICAgICAqIHZhciB1c2VycyA9IFtcXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IGZhbHNlIH0sXFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9XFxuICAgICAqIF07XFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uZXZlcnkodXNlcnMsIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uZXZlcnkodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy5ldmVyeSh1c2VycywgJ2FjdGl2ZScpO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZXZlcnkoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBndWFyZCkge1xcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5RXZlcnkgOiBiYXNlRXZlcnk7XFxuICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZ3VhcmQpKSB7XFxuICAgICAgICBwcmVkaWNhdGUgPSB1bmRlZmluZWQ7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMykpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBJdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mIGBjb2xsZWN0aW9uYCwgcmV0dXJuaW5nIGFuIGFycmF5IG9mIGFsbCBlbGVtZW50c1xcbiAgICAgKiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IuIFRoZSBwcmVkaWNhdGUgaXMgaW52b2tlZCB3aXRoIHRocmVlXFxuICAgICAqIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLnJlbW92ZWAsIHRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgYXJyYXkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmaWx0ZXJlZCBhcnJheS5cXG4gICAgICogQHNlZSBfLnJlamVjdFxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgdXNlcnMgPSBbXFxuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9XFxuICAgICAqIF07XFxuICAgICAqXFxuICAgICAqIF8uZmlsdGVyKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiAhby5hY3RpdmU7IH0pO1xcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnXVxcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLmZpbHRlcih1c2VycywgeyAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0pO1xcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leSddXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy5maWx0ZXIodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcXG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydmcmVkJ11cXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uZmlsdGVyKHVzZXJzLCAnYWN0aXZlJyk7XFxuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cXG4gICAgICpcXG4gICAgICogLy8gQ29tYmluaW5nIHNldmVyYWwgcHJlZGljYXRlcyB1c2luZyBgXy5vdmVyRXZlcnlgIG9yIGBfLm92ZXJTb21lYC5cXG4gICAgICogXy5maWx0ZXIodXNlcnMsIF8ub3ZlclNvbWUoW3sgJ2FnZSc6IDM2IH0sIFsnYWdlJywgNDBdXSkpO1xcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnLCAnYmFybmV5J11cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGZpbHRlcihjb2xsZWN0aW9uLCBwcmVkaWNhdGUpIHtcXG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUZpbHRlciA6IGJhc2VGaWx0ZXI7XFxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gLCByZXR1cm5pbmcgdGhlIGZpcnN0IGVsZW1lbnRcXG4gICAgICogYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yLiBUaGUgcHJlZGljYXRlIGlzIGludm9rZWQgd2l0aCB0aHJlZVxcbiAgICAgKiBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtYXRjaGVkIGVsZW1lbnQsIGVsc2UgYHVuZGVmaW5lZGAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciB1c2VycyA9IFtcXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfSxcXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWdlJzogMSwgICdhY3RpdmUnOiB0cnVlIH1cXG4gICAgICogXTtcXG4gICAgICpcXG4gICAgICogXy5maW5kKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLmFnZSA8IDQwOyB9KTtcXG4gICAgICogLy8gPT4gb2JqZWN0IGZvciAnYmFybmV5J1xcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLmZpbmQodXNlcnMsIHsgJ2FnZSc6IDEsICdhY3RpdmUnOiB0cnVlIH0pO1xcbiAgICAgKiAvLyA9PiBvYmplY3QgZm9yICdwZWJibGVzJ1xcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uZmluZCh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xcbiAgICAgKiAvLyA9PiBvYmplY3QgZm9yICdmcmVkJ1xcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy5maW5kKHVzZXJzLCAnYWN0aXZlJyk7XFxuICAgICAqIC8vID0+IG9iamVjdCBmb3IgJ2Jhcm5leSdcXG4gICAgICovXFxuICAgIHZhciBmaW5kID0gY3JlYXRlRmluZChmaW5kSW5kZXgpO1xcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5maW5kYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mXFxuICAgICAqIGBjb2xsZWN0aW9uYCBmcm9tIHJpZ2h0IHRvIGxlZnQuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDIuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtmcm9tSW5kZXg9Y29sbGVjdGlvbi5sZW5ndGgtMV0gVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWF0Y2hlZCBlbGVtZW50LCBlbHNlIGB1bmRlZmluZWRgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmZpbmRMYXN0KFsxLCAyLCAzLCA0XSwgZnVuY3Rpb24obikge1xcbiAgICAgKiAgIHJldHVybiBuICUgMiA9PSAxO1xcbiAgICAgKiB9KTtcXG4gICAgICogLy8gPT4gM1xcbiAgICAgKi9cXG4gICAgdmFyIGZpbmRMYXN0ID0gY3JlYXRlRmluZChmaW5kTGFzdEluZGV4KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmbGF0dGVuZWQgYXJyYXkgb2YgdmFsdWVzIGJ5IHJ1bm5pbmcgZWFjaCBlbGVtZW50IGluIGBjb2xsZWN0aW9uYFxcbiAgICAgKiB0aHJ1IGBpdGVyYXRlZWAgYW5kIGZsYXR0ZW5pbmcgdGhlIG1hcHBlZCByZXN1bHRzLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZFxcbiAgICAgKiB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIGR1cGxpY2F0ZShuKSB7XFxuICAgICAqICAgcmV0dXJuIFtuLCBuXTtcXG4gICAgICogfVxcbiAgICAgKlxcbiAgICAgKiBfLmZsYXRNYXAoWzEsIDJdLCBkdXBsaWNhdGUpO1xcbiAgICAgKiAvLyA9PiBbMSwgMSwgMiwgMl1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGZsYXRNYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcXG4gICAgICByZXR1cm4gYmFzZUZsYXR0ZW4obWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSwgMSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmxhdE1hcGAgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgZmxhdHRlbnMgdGhlXFxuICAgICAqIG1hcHBlZCByZXN1bHRzLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjcuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIGR1cGxpY2F0ZShuKSB7XFxuICAgICAqICAgcmV0dXJuIFtbW24sIG5dXV07XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogXy5mbGF0TWFwRGVlcChbMSwgMl0sIGR1cGxpY2F0ZSk7XFxuICAgICAqIC8vID0+IFsxLCAxLCAyLCAyXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZmxhdE1hcERlZXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcXG4gICAgICByZXR1cm4gYmFzZUZsYXR0ZW4obWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSwgSU5GSU5JVFkpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZsYXRNYXBgIGV4Y2VwdCB0aGF0IGl0IHJlY3Vyc2l2ZWx5IGZsYXR0ZW5zIHRoZVxcbiAgICAgKiBtYXBwZWQgcmVzdWx0cyB1cCB0byBgZGVwdGhgIHRpbWVzLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjcuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2RlcHRoPTFdIFRoZSBtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aC5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBmdW5jdGlvbiBkdXBsaWNhdGUobikge1xcbiAgICAgKiAgIHJldHVybiBbW1tuLCBuXV1dO1xcbiAgICAgKiB9XFxuICAgICAqXFxuICAgICAqIF8uZmxhdE1hcERlcHRoKFsxLCAyXSwgZHVwbGljYXRlLCAyKTtcXG4gICAgICogLy8gPT4gW1sxLCAxXSwgWzIsIDJdXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZmxhdE1hcERlcHRoKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCBkZXB0aCkge1xcbiAgICAgIGRlcHRoID0gZGVwdGggPT09IHVuZGVmaW5lZCA/IDEgOiB0b0ludGVnZXIoZGVwdGgpO1xcbiAgICAgIHJldHVybiBiYXNlRmxhdHRlbihtYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpLCBkZXB0aCk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gIGFuZCBpbnZva2VzIGBpdGVyYXRlZWAgZm9yIGVhY2ggZWxlbWVudC5cXG4gICAgICogVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cXG4gICAgICogSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogQXMgd2l0aCBvdGhlciBcXFwiQ29sbGVjdGlvbnNcXFwiIG1ldGhvZHMsIG9iamVjdHMgd2l0aCBhIFxcXCJsZW5ndGhcXFwiXFxuICAgICAqIHByb3BlcnR5IGFyZSBpdGVyYXRlZCBsaWtlIGFycmF5cy4gVG8gYXZvaWQgdGhpcyBiZWhhdmlvciB1c2UgYF8uZm9ySW5gXFxuICAgICAqIG9yIGBfLmZvck93bmAgZm9yIG9iamVjdCBpdGVyYXRpb24uXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBhbGlhcyBlYWNoXFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXFxuICAgICAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9IFJldHVybnMgYGNvbGxlY3Rpb25gLlxcbiAgICAgKiBAc2VlIF8uZm9yRWFjaFJpZ2h0XFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uZm9yRWFjaChbMSwgMl0sIGZ1bmN0aW9uKHZhbHVlKSB7XFxuICAgICAqICAgY29uc29sZS5sb2codmFsdWUpO1xcbiAgICAgKiB9KTtcXG4gICAgICogLy8gPT4gTG9ncyBgMWAgdGhlbiBgMmAuXFxuICAgICAqXFxuICAgICAqIF8uZm9yRWFjaCh7ICdhJzogMSwgJ2InOiAyIH0sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcXG4gICAgICogICBjb25zb2xlLmxvZyhrZXkpO1xcbiAgICAgKiB9KTtcXG4gICAgICogLy8gPT4gTG9ncyAnYScgdGhlbiAnYicgKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZCkuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBmb3JFYWNoKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XFxuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlFYWNoIDogYmFzZUVhY2g7XFxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5mb3JFYWNoYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mXFxuICAgICAqIGBjb2xsZWN0aW9uYCBmcm9tIHJpZ2h0IHRvIGxlZnQuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDIuMC4wXFxuICAgICAqIEBhbGlhcyBlYWNoUmlnaHRcXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHJldHVybnMge0FycmF5fE9iamVjdH0gUmV0dXJucyBgY29sbGVjdGlvbmAuXFxuICAgICAqIEBzZWUgXy5mb3JFYWNoXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uZm9yRWFjaFJpZ2h0KFsxLCAyXSwgZnVuY3Rpb24odmFsdWUpIHtcXG4gICAgICogICBjb25zb2xlLmxvZyh2YWx1ZSk7XFxuICAgICAqIH0pO1xcbiAgICAgKiAvLyA9PiBMb2dzIGAyYCB0aGVuIGAxYC5cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGZvckVhY2hSaWdodChjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5RWFjaFJpZ2h0IDogYmFzZUVhY2hSaWdodDtcXG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMykpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiBrZXlzIGdlbmVyYXRlZCBmcm9tIHRoZSByZXN1bHRzIG9mIHJ1bm5pbmdcXG4gICAgICogZWFjaCBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYCB0aHJ1IGBpdGVyYXRlZWAuIFRoZSBvcmRlciBvZiBncm91cGVkIHZhbHVlc1xcbiAgICAgKiBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBvcmRlciB0aGV5IG9jY3VyIGluIGBjb2xsZWN0aW9uYC4gVGhlIGNvcnJlc3BvbmRpbmdcXG4gICAgICogdmFsdWUgb2YgZWFjaCBrZXkgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcgdGhlXFxuICAgICAqIGtleS4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSB0byB0cmFuc2Zvcm0ga2V5cy5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY29tcG9zZWQgYWdncmVnYXRlIG9iamVjdC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5ncm91cEJ5KFs2LjEsIDQuMiwgNi4zXSwgTWF0aC5mbG9vcik7XFxuICAgICAqIC8vID0+IHsgJzQnOiBbNC4yXSwgJzYnOiBbNi4xLCA2LjNdIH1cXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uZ3JvdXBCeShbJ29uZScsICd0d28nLCAndGhyZWUnXSwgJ2xlbmd0aCcpO1xcbiAgICAgKiAvLyA9PiB7ICczJzogWydvbmUnLCAndHdvJ10sICc1JzogWyd0aHJlZSddIH1cXG4gICAgICovXFxuICAgIHZhciBncm91cEJ5ID0gY3JlYXRlQWdncmVnYXRvcihmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcXG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChyZXN1bHQsIGtleSkpIHtcXG4gICAgICAgIHJlc3VsdFtrZXldLnB1c2godmFsdWUpO1xcbiAgICAgIH0gZWxzZSB7XFxuICAgICAgICBiYXNlQXNzaWduVmFsdWUocmVzdWx0LCBrZXksIFt2YWx1ZV0pO1xcbiAgICAgIH1cXG4gICAgfSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBpbiBgY29sbGVjdGlvbmAuIElmIGBjb2xsZWN0aW9uYCBpcyBhIHN0cmluZywgaXQnc1xcbiAgICAgKiBjaGVja2VkIGZvciBhIHN1YnN0cmluZyBvZiBgdmFsdWVgLCBvdGhlcndpc2VcXG4gICAgICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcXG4gICAgICogaXMgdXNlZCBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuIElmIGBmcm9tSW5kZXhgIGlzIG5lZ2F0aXZlLCBpdCdzIHVzZWQgYXNcXG4gICAgICogdGhlIG9mZnNldCBmcm9tIHRoZSBlbmQgb2YgYGNvbGxlY3Rpb25gLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtmcm9tSW5kZXg9MF0gVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxcbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5yZWR1Y2VgLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBmb3VuZCwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmluY2x1ZGVzKFsxLCAyLCAzXSwgMSk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pbmNsdWRlcyhbMSwgMiwgM10sIDEsIDIpO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKlxcbiAgICAgKiBfLmluY2x1ZGVzKHsgJ2EnOiAxLCAnYic6IDIgfSwgMSk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pbmNsdWRlcygnYWJjZCcsICdiYycpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBpbmNsdWRlcyhjb2xsZWN0aW9uLCB2YWx1ZSwgZnJvbUluZGV4LCBndWFyZCkge1xcbiAgICAgIGNvbGxlY3Rpb24gPSBpc0FycmF5TGlrZShjb2xsZWN0aW9uKSA/IGNvbGxlY3Rpb24gOiB2YWx1ZXMoY29sbGVjdGlvbik7XFxuICAgICAgZnJvbUluZGV4ID0gKGZyb21JbmRleCAmJiAhZ3VhcmQpID8gdG9JbnRlZ2VyKGZyb21JbmRleCkgOiAwO1xcblxcbiAgICAgIHZhciBsZW5ndGggPSBjb2xsZWN0aW9uLmxlbmd0aDtcXG4gICAgICBpZiAoZnJvbUluZGV4IDwgMCkge1xcbiAgICAgICAgZnJvbUluZGV4ID0gbmF0aXZlTWF4KGxlbmd0aCArIGZyb21JbmRleCwgMCk7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBpc1N0cmluZyhjb2xsZWN0aW9uKVxcbiAgICAgICAgPyAoZnJvbUluZGV4IDw9IGxlbmd0aCAmJiBjb2xsZWN0aW9uLmluZGV4T2YodmFsdWUsIGZyb21JbmRleCkgPiAtMSlcXG4gICAgICAgIDogKCEhbGVuZ3RoICYmIGJhc2VJbmRleE9mKGNvbGxlY3Rpb24sIHZhbHVlLCBmcm9tSW5kZXgpID4gLTEpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBJbnZva2VzIHRoZSBtZXRob2QgYXQgYHBhdGhgIG9mIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmAsIHJldHVybmluZ1xcbiAgICAgKiBhbiBhcnJheSBvZiB0aGUgcmVzdWx0cyBvZiBlYWNoIGludm9rZWQgbWV0aG9kLiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHNcXG4gICAgICogYXJlIHByb3ZpZGVkIHRvIGVhY2ggaW52b2tlZCBtZXRob2QuIElmIGBwYXRoYCBpcyBhIGZ1bmN0aW9uLCBpdCdzIGludm9rZWRcXG4gICAgICogZm9yLCBhbmQgYHRoaXNgIGJvdW5kIHRvLCBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8RnVuY3Rpb258c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBtZXRob2QgdG8gaW52b2tlIG9yXFxuICAgICAqICB0aGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcGFyYW0gey4uLip9IFthcmdzXSBUaGUgYXJndW1lbnRzIHRvIGludm9rZSBlYWNoIG1ldGhvZCB3aXRoLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHJlc3VsdHMuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uaW52b2tlTWFwKFtbNSwgMSwgN10sIFszLCAyLCAxXV0sICdzb3J0Jyk7XFxuICAgICAqIC8vID0+IFtbMSwgNSwgN10sIFsxLCAyLCAzXV1cXG4gICAgICpcXG4gICAgICogXy5pbnZva2VNYXAoWzEyMywgNDU2XSwgU3RyaW5nLnByb3RvdHlwZS5zcGxpdCwgJycpO1xcbiAgICAgKiAvLyA9PiBbWycxJywgJzInLCAnMyddLCBbJzQnLCAnNScsICc2J11dXFxuICAgICAqL1xcbiAgICB2YXIgaW52b2tlTWFwID0gYmFzZVJlc3QoZnVuY3Rpb24oY29sbGVjdGlvbiwgcGF0aCwgYXJncykge1xcbiAgICAgIHZhciBpbmRleCA9IC0xLFxcbiAgICAgICAgICBpc0Z1bmMgPSB0eXBlb2YgcGF0aCA9PSAnZnVuY3Rpb24nLFxcbiAgICAgICAgICByZXN1bHQgPSBpc0FycmF5TGlrZShjb2xsZWN0aW9uKSA/IEFycmF5KGNvbGxlY3Rpb24ubGVuZ3RoKSA6IFtdO1xcblxcbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlKSB7XFxuICAgICAgICByZXN1bHRbKytpbmRleF0gPSBpc0Z1bmMgPyBhcHBseShwYXRoLCB2YWx1ZSwgYXJncykgOiBiYXNlSW52b2tlKHZhbHVlLCBwYXRoLCBhcmdzKTtcXG4gICAgICB9KTtcXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIGtleXMgZ2VuZXJhdGVkIGZyb20gdGhlIHJlc3VsdHMgb2YgcnVubmluZ1xcbiAgICAgKiBlYWNoIGVsZW1lbnQgb2YgYGNvbGxlY3Rpb25gIHRocnUgYGl0ZXJhdGVlYC4gVGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgb2ZcXG4gICAgICogZWFjaCBrZXkgaXMgdGhlIGxhc3QgZWxlbWVudCByZXNwb25zaWJsZSBmb3IgZ2VuZXJhdGluZyB0aGUga2V5LiBUaGVcXG4gICAgICogaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIHRvIHRyYW5zZm9ybSBrZXlzLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb21wb3NlZCBhZ2dyZWdhdGUgb2JqZWN0LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgYXJyYXkgPSBbXFxuICAgICAqICAgeyAnZGlyJzogJ2xlZnQnLCAnY29kZSc6IDk3IH0sXFxuICAgICAqICAgeyAnZGlyJzogJ3JpZ2h0JywgJ2NvZGUnOiAxMDAgfVxcbiAgICAgKiBdO1xcbiAgICAgKlxcbiAgICAgKiBfLmtleUJ5KGFycmF5LCBmdW5jdGlvbihvKSB7XFxuICAgICAqICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoby5jb2RlKTtcXG4gICAgICogfSk7XFxuICAgICAqIC8vID0+IHsgJ2EnOiB7ICdkaXInOiAnbGVmdCcsICdjb2RlJzogOTcgfSwgJ2QnOiB7ICdkaXInOiAncmlnaHQnLCAnY29kZSc6IDEwMCB9IH1cXG4gICAgICpcXG4gICAgICogXy5rZXlCeShhcnJheSwgJ2RpcicpO1xcbiAgICAgKiAvLyA9PiB7ICdsZWZ0JzogeyAnZGlyJzogJ2xlZnQnLCAnY29kZSc6IDk3IH0sICdyaWdodCc6IHsgJ2Rpcic6ICdyaWdodCcsICdjb2RlJzogMTAwIH0gfVxcbiAgICAgKi9cXG4gICAgdmFyIGtleUJ5ID0gY3JlYXRlQWdncmVnYXRvcihmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcXG4gICAgICBiYXNlQXNzaWduVmFsdWUocmVzdWx0LCBrZXksIHZhbHVlKTtcXG4gICAgfSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHZhbHVlcyBieSBydW5uaW5nIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmAgdGhydVxcbiAgICAgKiBgaXRlcmF0ZWVgLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czpcXG4gICAgICogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxcbiAgICAgKlxcbiAgICAgKiBNYW55IGxvZGFzaCBtZXRob2RzIGFyZSBndWFyZGVkIHRvIHdvcmsgYXMgaXRlcmF0ZWVzIGZvciBtZXRob2RzIGxpa2VcXG4gICAgICogYF8uZXZlcnlgLCBgXy5maWx0ZXJgLCBgXy5tYXBgLCBgXy5tYXBWYWx1ZXNgLCBgXy5yZWplY3RgLCBhbmQgYF8uc29tZWAuXFxuICAgICAqXFxuICAgICAqIFRoZSBndWFyZGVkIG1ldGhvZHMgYXJlOlxcbiAgICAgKiBgYXJ5YCwgYGNodW5rYCwgYGN1cnJ5YCwgYGN1cnJ5UmlnaHRgLCBgZHJvcGAsIGBkcm9wUmlnaHRgLCBgZXZlcnlgLFxcbiAgICAgKiBgZmlsbGAsIGBpbnZlcnRgLCBgcGFyc2VJbnRgLCBgcmFuZG9tYCwgYHJhbmdlYCwgYHJhbmdlUmlnaHRgLCBgcmVwZWF0YCxcXG4gICAgICogYHNhbXBsZVNpemVgLCBgc2xpY2VgLCBgc29tZWAsIGBzb3J0QnlgLCBgc3BsaXRgLCBgdGFrZWAsIGB0YWtlUmlnaHRgLFxcbiAgICAgKiBgdGVtcGxhdGVgLCBgdHJpbWAsIGB0cmltRW5kYCwgYHRyaW1TdGFydGAsIGFuZCBgd29yZHNgXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcXG4gICAgICogICByZXR1cm4gbiAqIG47XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogXy5tYXAoWzQsIDhdLCBzcXVhcmUpO1xcbiAgICAgKiAvLyA9PiBbMTYsIDY0XVxcbiAgICAgKlxcbiAgICAgKiBfLm1hcCh7ICdhJzogNCwgJ2InOiA4IH0sIHNxdWFyZSk7XFxuICAgICAqIC8vID0+IFsxNiwgNjRdIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXFxuICAgICAqXFxuICAgICAqIHZhciB1c2VycyA9IFtcXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScgfSxcXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnIH1cXG4gICAgICogXTtcXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8ubWFwKHVzZXJzLCAndXNlcicpO1xcbiAgICAgKiAvLyA9PiBbJ2Jhcm5leScsICdmcmVkJ11cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIG1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5TWFwIDogYmFzZU1hcDtcXG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMykpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnNvcnRCeWAgZXhjZXB0IHRoYXQgaXQgYWxsb3dzIHNwZWNpZnlpbmcgdGhlIHNvcnRcXG4gICAgICogb3JkZXJzIG9mIHRoZSBpdGVyYXRlZXMgdG8gc29ydCBieS4gSWYgYG9yZGVyc2AgaXMgdW5zcGVjaWZpZWQsIGFsbCB2YWx1ZXNcXG4gICAgICogYXJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIuIE90aGVyd2lzZSwgc3BlY2lmeSBhbiBvcmRlciBvZiBcXFwiZGVzY1xcXCIgZm9yXFxuICAgICAqIGRlc2NlbmRpbmcgb3IgXFxcImFzY1xcXCIgZm9yIGFzY2VuZGluZyBzb3J0IG9yZGVyIG9mIGNvcnJlc3BvbmRpbmcgdmFsdWVzLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7QXJyYXlbXXxGdW5jdGlvbltdfE9iamVjdFtdfHN0cmluZ1tdfSBbaXRlcmF0ZWVzPVtfLmlkZW50aXR5XV1cXG4gICAgICogIFRoZSBpdGVyYXRlZXMgdG8gc29ydCBieS5cXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gW29yZGVyc10gVGhlIHNvcnQgb3JkZXJzIG9mIGBpdGVyYXRlZXNgLlxcbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5yZWR1Y2VgLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzb3J0ZWQgYXJyYXkuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciB1c2VycyA9IFtcXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0OCB9LFxcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM0IH0sXFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDAgfSxcXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9XFxuICAgICAqIF07XFxuICAgICAqXFxuICAgICAqIC8vIFNvcnQgYnkgYHVzZXJgIGluIGFzY2VuZGluZyBvcmRlciBhbmQgYnkgYGFnZWAgaW4gZGVzY2VuZGluZyBvcmRlci5cXG4gICAgICogXy5vcmRlckJ5KHVzZXJzLCBbJ3VzZXInLCAnYWdlJ10sIFsnYXNjJywgJ2Rlc2MnXSk7XFxuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ2Jhcm5leScsIDM2XSwgWydiYXJuZXknLCAzNF0sIFsnZnJlZCcsIDQ4XSwgWydmcmVkJywgNDBdXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gb3JkZXJCeShjb2xsZWN0aW9uLCBpdGVyYXRlZXMsIG9yZGVycywgZ3VhcmQpIHtcXG4gICAgICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XFxuICAgICAgICByZXR1cm4gW107XFxuICAgICAgfVxcbiAgICAgIGlmICghaXNBcnJheShpdGVyYXRlZXMpKSB7XFxuICAgICAgICBpdGVyYXRlZXMgPSBpdGVyYXRlZXMgPT0gbnVsbCA/IFtdIDogW2l0ZXJhdGVlc107XFxuICAgICAgfVxcbiAgICAgIG9yZGVycyA9IGd1YXJkID8gdW5kZWZpbmVkIDogb3JkZXJzO1xcbiAgICAgIGlmICghaXNBcnJheShvcmRlcnMpKSB7XFxuICAgICAgICBvcmRlcnMgPSBvcmRlcnMgPT0gbnVsbCA/IFtdIDogW29yZGVyc107XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBiYXNlT3JkZXJCeShjb2xsZWN0aW9uLCBpdGVyYXRlZXMsIG9yZGVycyk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgZWxlbWVudHMgc3BsaXQgaW50byB0d28gZ3JvdXBzLCB0aGUgZmlyc3Qgb2Ygd2hpY2hcXG4gICAgICogY29udGFpbnMgZWxlbWVudHMgYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yLCB0aGUgc2Vjb25kIG9mIHdoaWNoXFxuICAgICAqIGNvbnRhaW5zIGVsZW1lbnRzIGBwcmVkaWNhdGVgIHJldHVybnMgZmFsc2V5IGZvci4gVGhlIHByZWRpY2F0ZSBpc1xcbiAgICAgKiBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgdXNlcnMgPSBbXFxuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FnZSc6IDM2LCAnYWN0aXZlJzogZmFsc2UgfSxcXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWdlJzogNDAsICdhY3RpdmUnOiB0cnVlIH0sXFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FnZSc6IDEsICAnYWN0aXZlJzogZmFsc2UgfVxcbiAgICAgKiBdO1xcbiAgICAgKlxcbiAgICAgKiBfLnBhcnRpdGlvbih1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gby5hY3RpdmU7IH0pO1xcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbWydmcmVkJ10sIFsnYmFybmV5JywgJ3BlYmJsZXMnXV1cXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy5wYXJ0aXRpb24odXNlcnMsIHsgJ2FnZSc6IDEsICdhY3RpdmUnOiBmYWxzZSB9KTtcXG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgW1sncGViYmxlcyddLCBbJ2Jhcm5leScsICdmcmVkJ11dXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy5wYXJ0aXRpb24odXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcXG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgW1snYmFybmV5JywgJ3BlYmJsZXMnXSwgWydmcmVkJ11dXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLnBhcnRpdGlvbih1c2VycywgJ2FjdGl2ZScpO1xcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbWydmcmVkJ10sIFsnYmFybmV5JywgJ3BlYmJsZXMnXV1cXG4gICAgICovXFxuICAgIHZhciBwYXJ0aXRpb24gPSBjcmVhdGVBZ2dyZWdhdG9yKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xcbiAgICAgIHJlc3VsdFtrZXkgPyAwIDogMV0ucHVzaCh2YWx1ZSk7XFxuICAgIH0sIGZ1bmN0aW9uKCkgeyByZXR1cm4gW1tdLCBbXV07IH0pO1xcblxcbiAgICAvKipcXG4gICAgICogUmVkdWNlcyBgY29sbGVjdGlvbmAgdG8gYSB2YWx1ZSB3aGljaCBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0IG9mIHJ1bm5pbmdcXG4gICAgICogZWFjaCBlbGVtZW50IGluIGBjb2xsZWN0aW9uYCB0aHJ1IGBpdGVyYXRlZWAsIHdoZXJlIGVhY2ggc3VjY2Vzc2l2ZVxcbiAgICAgKiBpbnZvY2F0aW9uIGlzIHN1cHBsaWVkIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHByZXZpb3VzLiBJZiBgYWNjdW11bGF0b3JgXFxuICAgICAqIGlzIG5vdCBnaXZlbiwgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYGNvbGxlY3Rpb25gIGlzIHVzZWQgYXMgdGhlIGluaXRpYWxcXG4gICAgICogdmFsdWUuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggZm91ciBhcmd1bWVudHM6XFxuICAgICAqIChhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXFxuICAgICAqXFxuICAgICAqIE1hbnkgbG9kYXNoIG1ldGhvZHMgYXJlIGd1YXJkZWQgdG8gd29yayBhcyBpdGVyYXRlZXMgZm9yIG1ldGhvZHMgbGlrZVxcbiAgICAgKiBgXy5yZWR1Y2VgLCBgXy5yZWR1Y2VSaWdodGAsIGFuZCBgXy50cmFuc2Zvcm1gLlxcbiAgICAgKlxcbiAgICAgKiBUaGUgZ3VhcmRlZCBtZXRob2RzIGFyZTpcXG4gICAgICogYGFzc2lnbmAsIGBkZWZhdWx0c2AsIGBkZWZhdWx0c0RlZXBgLCBgaW5jbHVkZXNgLCBgbWVyZ2VgLCBgb3JkZXJCeWAsXFxuICAgICAqIGFuZCBgc29ydEJ5YFxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGluaXRpYWwgdmFsdWUuXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cXG4gICAgICogQHNlZSBfLnJlZHVjZVJpZ2h0XFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8ucmVkdWNlKFsxLCAyXSwgZnVuY3Rpb24oc3VtLCBuKSB7XFxuICAgICAqICAgcmV0dXJuIHN1bSArIG47XFxuICAgICAqIH0sIDApO1xcbiAgICAgKiAvLyA9PiAzXFxuICAgICAqXFxuICAgICAqIF8ucmVkdWNlKHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMSB9LCBmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcXG4gICAgICogICAocmVzdWx0W3ZhbHVlXSB8fCAocmVzdWx0W3ZhbHVlXSA9IFtdKSkucHVzaChrZXkpO1xcbiAgICAgKiAgIHJldHVybiByZXN1bHQ7XFxuICAgICAqIH0sIHt9KTtcXG4gICAgICogLy8gPT4geyAnMSc6IFsnYScsICdjJ10sICcyJzogWydiJ10gfSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gcmVkdWNlKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCBhY2N1bXVsYXRvcikge1xcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5UmVkdWNlIDogYmFzZVJlZHVjZSxcXG4gICAgICAgICAgaW5pdEFjY3VtID0gYXJndW1lbnRzLmxlbmd0aCA8IDM7XFxuXFxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDQpLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtLCBiYXNlRWFjaCk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ucmVkdWNlYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mXFxuICAgICAqIGBjb2xsZWN0aW9uYCBmcm9tIHJpZ2h0IHRvIGxlZnQuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXFxuICAgICAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxcbiAgICAgKiBAc2VlIF8ucmVkdWNlXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBhcnJheSA9IFtbMCwgMV0sIFsyLCAzXSwgWzQsIDVdXTtcXG4gICAgICpcXG4gICAgICogXy5yZWR1Y2VSaWdodChhcnJheSwgZnVuY3Rpb24oZmxhdHRlbmVkLCBvdGhlcikge1xcbiAgICAgKiAgIHJldHVybiBmbGF0dGVuZWQuY29uY2F0KG90aGVyKTtcXG4gICAgICogfSwgW10pO1xcbiAgICAgKiAvLyA9PiBbNCwgNSwgMiwgMywgMCwgMV1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHJlZHVjZVJpZ2h0KGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCBhY2N1bXVsYXRvcikge1xcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5UmVkdWNlUmlnaHQgOiBiYXNlUmVkdWNlLFxcbiAgICAgICAgICBpbml0QWNjdW0gPSBhcmd1bWVudHMubGVuZ3RoIDwgMztcXG5cXG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgNCksIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0sIGJhc2VFYWNoUmlnaHQpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8uZmlsdGVyYDsgdGhpcyBtZXRob2QgcmV0dXJucyB0aGUgZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gXFxuICAgICAqIHRoYXQgYHByZWRpY2F0ZWAgZG9lcyAqKm5vdCoqIHJldHVybiB0cnV0aHkgZm9yLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmlsdGVyZWQgYXJyYXkuXFxuICAgICAqIEBzZWUgXy5maWx0ZXJcXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIHVzZXJzID0gW1xcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2LCAnYWN0aXZlJzogZmFsc2UgfSxcXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IHRydWUgfVxcbiAgICAgKiBdO1xcbiAgICAgKlxcbiAgICAgKiBfLnJlamVjdCh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gIW8uYWN0aXZlOyB9KTtcXG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydmcmVkJ11cXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy5yZWplY3QodXNlcnMsIHsgJ2FnZSc6IDQwLCAnYWN0aXZlJzogdHJ1ZSB9KTtcXG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknXVxcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8ucmVqZWN0KHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XFxuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCddXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLnJlamVjdCh1c2VycywgJ2FjdGl2ZScpO1xcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leSddXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiByZWplY3QoY29sbGVjdGlvbiwgcHJlZGljYXRlKSB7XFxuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlGaWx0ZXIgOiBiYXNlRmlsdGVyO1xcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIG5lZ2F0ZShnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpKSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEdldHMgYSByYW5kb20gZWxlbWVudCBmcm9tIGBjb2xsZWN0aW9uYC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMi4wLjBcXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2FtcGxlLlxcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmFuZG9tIGVsZW1lbnQuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uc2FtcGxlKFsxLCAyLCAzLCA0XSk7XFxuICAgICAqIC8vID0+IDJcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHNhbXBsZShjb2xsZWN0aW9uKSB7XFxuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlTYW1wbGUgOiBiYXNlU2FtcGxlO1xcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24pO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBHZXRzIGBuYCByYW5kb20gZWxlbWVudHMgYXQgdW5pcXVlIGtleXMgZnJvbSBgY29sbGVjdGlvbmAgdXAgdG8gdGhlXFxuICAgICAqIHNpemUgb2YgYGNvbGxlY3Rpb25gLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzYW1wbGUuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHNhbXBsZS5cXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSByYW5kb20gZWxlbWVudHMuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uc2FtcGxlU2l6ZShbMSwgMiwgM10sIDIpO1xcbiAgICAgKiAvLyA9PiBbMywgMV1cXG4gICAgICpcXG4gICAgICogXy5zYW1wbGVTaXplKFsxLCAyLCAzXSwgNCk7XFxuICAgICAqIC8vID0+IFsyLCAzLCAxXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc2FtcGxlU2l6ZShjb2xsZWN0aW9uLCBuLCBndWFyZCkge1xcbiAgICAgIGlmICgoZ3VhcmQgPyBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBuLCBndWFyZCkgOiBuID09PSB1bmRlZmluZWQpKSB7XFxuICAgICAgICBuID0gMTtcXG4gICAgICB9IGVsc2Uge1xcbiAgICAgICAgbiA9IHRvSW50ZWdlcihuKTtcXG4gICAgICB9XFxuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlTYW1wbGVTaXplIDogYmFzZVNhbXBsZVNpemU7XFxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgbik7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygc2h1ZmZsZWQgdmFsdWVzLCB1c2luZyBhIHZlcnNpb24gb2YgdGhlXFxuICAgICAqIFtGaXNoZXItWWF0ZXMgc2h1ZmZsZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRmlzaGVyLVlhdGVzX3NodWZmbGUpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzaHVmZmxlLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzaHVmZmxlZCBhcnJheS5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5zaHVmZmxlKFsxLCAyLCAzLCA0XSk7XFxuICAgICAqIC8vID0+IFs0LCAxLCAzLCAyXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc2h1ZmZsZShjb2xsZWN0aW9uKSB7XFxuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlTaHVmZmxlIDogYmFzZVNodWZmbGU7XFxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbik7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEdldHMgdGhlIHNpemUgb2YgYGNvbGxlY3Rpb25gIGJ5IHJldHVybmluZyBpdHMgbGVuZ3RoIGZvciBhcnJheS1saWtlXFxuICAgICAqIHZhbHVlcyBvciB0aGUgbnVtYmVyIG9mIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIGZvciBvYmplY3RzLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaW5zcGVjdC5cXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY29sbGVjdGlvbiBzaXplLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLnNpemUoWzEsIDIsIDNdKTtcXG4gICAgICogLy8gPT4gM1xcbiAgICAgKlxcbiAgICAgKiBfLnNpemUoeyAnYSc6IDEsICdiJzogMiB9KTtcXG4gICAgICogLy8gPT4gMlxcbiAgICAgKlxcbiAgICAgKiBfLnNpemUoJ3BlYmJsZXMnKTtcXG4gICAgICogLy8gPT4gN1xcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc2l6ZShjb2xsZWN0aW9uKSB7XFxuICAgICAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xcbiAgICAgICAgcmV0dXJuIDA7XFxuICAgICAgfVxcbiAgICAgIGlmIChpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkge1xcbiAgICAgICAgcmV0dXJuIGlzU3RyaW5nKGNvbGxlY3Rpb24pID8gc3RyaW5nU2l6ZShjb2xsZWN0aW9uKSA6IGNvbGxlY3Rpb24ubGVuZ3RoO1xcbiAgICAgIH1cXG4gICAgICB2YXIgdGFnID0gZ2V0VGFnKGNvbGxlY3Rpb24pO1xcbiAgICAgIGlmICh0YWcgPT0gbWFwVGFnIHx8IHRhZyA9PSBzZXRUYWcpIHtcXG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uLnNpemU7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBiYXNlS2V5cyhjb2xsZWN0aW9uKS5sZW5ndGg7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IgKiphbnkqKiBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYC5cXG4gICAgICogSXRlcmF0aW9uIGlzIHN0b3BwZWQgb25jZSBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeS4gVGhlIHByZWRpY2F0ZSBpc1xcbiAgICAgKiBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW55IGVsZW1lbnQgcGFzc2VzIHRoZSBwcmVkaWNhdGUgY2hlY2ssXFxuICAgICAqICBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uc29tZShbbnVsbCwgMCwgJ3llcycsIGZhbHNlXSwgQm9vbGVhbik7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogdmFyIHVzZXJzID0gW1xcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IHRydWUgfSxcXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhY3RpdmUnOiBmYWxzZSB9XFxuICAgICAqIF07XFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uc29tZSh1c2VycywgeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogZmFsc2UgfSk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy5zb21lKHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uc29tZSh1c2VycywgJ2FjdGl2ZScpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBzb21lKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZ3VhcmQpIHtcXG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheVNvbWUgOiBiYXNlU29tZTtcXG4gICAgICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBndWFyZCkpIHtcXG4gICAgICAgIHByZWRpY2F0ZSA9IHVuZGVmaW5lZDtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgZWxlbWVudHMsIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIgYnkgdGhlIHJlc3VsdHMgb2ZcXG4gICAgICogcnVubmluZyBlYWNoIGVsZW1lbnQgaW4gYSBjb2xsZWN0aW9uIHRocnUgZWFjaCBpdGVyYXRlZS4gVGhpcyBtZXRob2RcXG4gICAgICogcGVyZm9ybXMgYSBzdGFibGUgc29ydCwgdGhhdCBpcywgaXQgcHJlc2VydmVzIHRoZSBvcmlnaW5hbCBzb3J0IG9yZGVyIG9mXFxuICAgICAqIGVxdWFsIGVsZW1lbnRzLiBUaGUgaXRlcmF0ZWVzIGFyZSBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7Li4uKEZ1bmN0aW9ufEZ1bmN0aW9uW10pfSBbaXRlcmF0ZWVzPVtfLmlkZW50aXR5XV1cXG4gICAgICogIFRoZSBpdGVyYXRlZXMgdG8gc29ydCBieS5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgc29ydGVkIGFycmF5LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgdXNlcnMgPSBbXFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDggfSxcXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9LFxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDMwIH0sXFxuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzQgfVxcbiAgICAgKiBdO1xcbiAgICAgKlxcbiAgICAgKiBfLnNvcnRCeSh1c2VycywgW2Z1bmN0aW9uKG8pIHsgcmV0dXJuIG8udXNlcjsgfV0pO1xcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbWydiYXJuZXknLCAzNl0sIFsnYmFybmV5JywgMzRdLCBbJ2ZyZWQnLCA0OF0sIFsnZnJlZCcsIDMwXV1cXG4gICAgICpcXG4gICAgICogXy5zb3J0QnkodXNlcnMsIFsndXNlcicsICdhZ2UnXSk7XFxuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ2Jhcm5leScsIDM0XSwgWydiYXJuZXknLCAzNl0sIFsnZnJlZCcsIDMwXSwgWydmcmVkJywgNDhdXVxcbiAgICAgKi9cXG4gICAgdmFyIHNvcnRCeSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGl0ZXJhdGVlcykge1xcbiAgICAgIGlmIChjb2xsZWN0aW9uID09IG51bGwpIHtcXG4gICAgICAgIHJldHVybiBbXTtcXG4gICAgICB9XFxuICAgICAgdmFyIGxlbmd0aCA9IGl0ZXJhdGVlcy5sZW5ndGg7XFxuICAgICAgaWYgKGxlbmd0aCA+IDEgJiYgaXNJdGVyYXRlZUNhbGwoY29sbGVjdGlvbiwgaXRlcmF0ZWVzWzBdLCBpdGVyYXRlZXNbMV0pKSB7XFxuICAgICAgICBpdGVyYXRlZXMgPSBbXTtcXG4gICAgICB9IGVsc2UgaWYgKGxlbmd0aCA+IDIgJiYgaXNJdGVyYXRlZUNhbGwoaXRlcmF0ZWVzWzBdLCBpdGVyYXRlZXNbMV0sIGl0ZXJhdGVlc1syXSkpIHtcXG4gICAgICAgIGl0ZXJhdGVlcyA9IFtpdGVyYXRlZXNbMF1dO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gYmFzZU9yZGVyQnkoY29sbGVjdGlvbiwgYmFzZUZsYXR0ZW4oaXRlcmF0ZWVzLCAxKSwgW10pO1xcbiAgICB9KTtcXG5cXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xcblxcbiAgICAvKipcXG4gICAgICogR2V0cyB0aGUgdGltZXN0YW1wIG9mIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRoYXQgaGF2ZSBlbGFwc2VkIHNpbmNlXFxuICAgICAqIHRoZSBVbml4IGVwb2NoICgxIEphbnVhcnkgMTk3MCAwMDowMDowMCBVVEMpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAyLjQuMFxcbiAgICAgKiBAY2F0ZWdvcnkgRGF0ZVxcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSB0aW1lc3RhbXAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uZGVmZXIoZnVuY3Rpb24oc3RhbXApIHtcXG4gICAgICogICBjb25zb2xlLmxvZyhfLm5vdygpIC0gc3RhbXApO1xcbiAgICAgKiB9LCBfLm5vdygpKTtcXG4gICAgICogLy8gPT4gTG9ncyB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpdCB0b29rIGZvciB0aGUgZGVmZXJyZWQgaW52b2NhdGlvbi5cXG4gICAgICovXFxuICAgIHZhciBub3cgPSBjdHhOb3cgfHwgZnVuY3Rpb24oKSB7XFxuICAgICAgcmV0dXJuIHJvb3QuRGF0ZS5ub3coKTtcXG4gICAgfTtcXG5cXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xcblxcbiAgICAvKipcXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLmJlZm9yZWA7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXNcXG4gICAgICogYGZ1bmNgIG9uY2UgaXQncyBjYWxsZWQgYG5gIG9yIG1vcmUgdGltZXMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGNhbGxzIGJlZm9yZSBgZnVuY2AgaXMgaW52b2tlZC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVzdHJpY3QuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHJlc3RyaWN0ZWQgZnVuY3Rpb24uXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBzYXZlcyA9IFsncHJvZmlsZScsICdzZXR0aW5ncyddO1xcbiAgICAgKlxcbiAgICAgKiB2YXIgZG9uZSA9IF8uYWZ0ZXIoc2F2ZXMubGVuZ3RoLCBmdW5jdGlvbigpIHtcXG4gICAgICogICBjb25zb2xlLmxvZygnZG9uZSBzYXZpbmchJyk7XFxuICAgICAqIH0pO1xcbiAgICAgKlxcbiAgICAgKiBfLmZvckVhY2goc2F2ZXMsIGZ1bmN0aW9uKHR5cGUpIHtcXG4gICAgICogICBhc3luY1NhdmUoeyAndHlwZSc6IHR5cGUsICdjb21wbGV0ZSc6IGRvbmUgfSk7XFxuICAgICAqIH0pO1xcbiAgICAgKiAvLyA9PiBMb2dzICdkb25lIHNhdmluZyEnIGFmdGVyIHRoZSB0d28gYXN5bmMgc2F2ZXMgaGF2ZSBjb21wbGV0ZWQuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBhZnRlcihuLCBmdW5jKSB7XFxuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcXG4gICAgICB9XFxuICAgICAgbiA9IHRvSW50ZWdlcihuKTtcXG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XFxuICAgICAgICBpZiAoLS1uIDwgMSkge1xcbiAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xcbiAgICAgICAgfVxcbiAgICAgIH07XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgLCB3aXRoIHVwIHRvIGBuYCBhcmd1bWVudHMsXFxuICAgICAqIGlnbm9yaW5nIGFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMy4wLjBcXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNhcCBhcmd1bWVudHMgZm9yLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249ZnVuYy5sZW5ndGhdIFRoZSBhcml0eSBjYXAuXFxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNhcHBlZCBmdW5jdGlvbi5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5tYXAoWyc2JywgJzgnLCAnMTAnXSwgXy5hcnkocGFyc2VJbnQsIDEpKTtcXG4gICAgICogLy8gPT4gWzYsIDgsIDEwXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYXJ5KGZ1bmMsIG4sIGd1YXJkKSB7XFxuICAgICAgbiA9IGd1YXJkID8gdW5kZWZpbmVkIDogbjtcXG4gICAgICBuID0gKGZ1bmMgJiYgbiA9PSBudWxsKSA/IGZ1bmMubGVuZ3RoIDogbjtcXG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBXUkFQX0FSWV9GTEFHLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG4pO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCwgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgYW5kIGFyZ3VtZW50c1xcbiAgICAgKiBvZiB0aGUgY3JlYXRlZCBmdW5jdGlvbiwgd2hpbGUgaXQncyBjYWxsZWQgbGVzcyB0aGFuIGBuYCB0aW1lcy4gU3Vic2VxdWVudFxcbiAgICAgKiBjYWxscyB0byB0aGUgY3JlYXRlZCBmdW5jdGlvbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2AgaW52b2NhdGlvbi5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMy4wLjBcXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgY2FsbHMgYXQgd2hpY2ggYGZ1bmNgIGlzIG5vIGxvbmdlciBpbnZva2VkLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byByZXN0cmljdC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcmVzdHJpY3RlZCBmdW5jdGlvbi5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIF8uYmVmb3JlKDUsIGFkZENvbnRhY3RUb0xpc3QpKTtcXG4gICAgICogLy8gPT4gQWxsb3dzIGFkZGluZyB1cCB0byA0IGNvbnRhY3RzIHRvIHRoZSBsaXN0LlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gYmVmb3JlKG4sIGZ1bmMpIHtcXG4gICAgICB2YXIgcmVzdWx0O1xcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XFxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XFxuICAgICAgfVxcbiAgICAgIG4gPSB0b0ludGVnZXIobik7XFxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xcbiAgICAgICAgaWYgKC0tbiA+IDApIHtcXG4gICAgICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKG4gPD0gMSkge1xcbiAgICAgICAgICBmdW5jID0gdW5kZWZpbmVkO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgICB9O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiBgdGhpc0FyZ2BcXG4gICAgICogYW5kIGBwYXJ0aWFsc2AgcHJlcGVuZGVkIHRvIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuXFxuICAgICAqXFxuICAgICAqIFRoZSBgXy5iaW5kLnBsYWNlaG9sZGVyYCB2YWx1ZSwgd2hpY2ggZGVmYXVsdHMgdG8gYF9gIGluIG1vbm9saXRoaWMgYnVpbGRzLFxcbiAgICAgKiBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgbmF0aXZlIGBGdW5jdGlvbiNiaW5kYCwgdGhpcyBtZXRob2QgZG9lc24ndCBzZXQgdGhlIFxcXCJsZW5ndGhcXFwiXFxuICAgICAqIHByb3BlcnR5IG9mIGJvdW5kIGZ1bmN0aW9ucy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGJpbmQuXFxuICAgICAqIEBwYXJhbSB7Kn0gdGhpc0FyZyBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxcbiAgICAgKiBAcGFyYW0gey4uLip9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBiZSBwYXJ0aWFsbHkgYXBwbGllZC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYm91bmQgZnVuY3Rpb24uXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIGdyZWV0KGdyZWV0aW5nLCBwdW5jdHVhdGlvbikge1xcbiAgICAgKiAgIHJldHVybiBncmVldGluZyArICcgJyArIHRoaXMudXNlciArIHB1bmN0dWF0aW9uO1xcbiAgICAgKiB9XFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3QgPSB7ICd1c2VyJzogJ2ZyZWQnIH07XFxuICAgICAqXFxuICAgICAqIHZhciBib3VuZCA9IF8uYmluZChncmVldCwgb2JqZWN0LCAnaGknKTtcXG4gICAgICogYm91bmQoJyEnKTtcXG4gICAgICogLy8gPT4gJ2hpIGZyZWQhJ1xcbiAgICAgKlxcbiAgICAgKiAvLyBCb3VuZCB3aXRoIHBsYWNlaG9sZGVycy5cXG4gICAgICogdmFyIGJvdW5kID0gXy5iaW5kKGdyZWV0LCBvYmplY3QsIF8sICchJyk7XFxuICAgICAqIGJvdW5kKCdoaScpO1xcbiAgICAgKiAvLyA9PiAnaGkgZnJlZCEnXFxuICAgICAqL1xcbiAgICB2YXIgYmluZCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIHRoaXNBcmcsIHBhcnRpYWxzKSB7XFxuICAgICAgdmFyIGJpdG1hc2sgPSBXUkFQX0JJTkRfRkxBRztcXG4gICAgICBpZiAocGFydGlhbHMubGVuZ3RoKSB7XFxuICAgICAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBnZXRIb2xkZXIoYmluZCkpO1xcbiAgICAgICAgYml0bWFzayB8PSBXUkFQX1BBUlRJQUxfRkxBRztcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMpO1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgdGhlIG1ldGhvZCBhdCBgb2JqZWN0W2tleV1gIHdpdGggYHBhcnRpYWxzYFxcbiAgICAgKiBwcmVwZW5kZWQgdG8gdGhlIGFyZ3VtZW50cyBpdCByZWNlaXZlcy5cXG4gICAgICpcXG4gICAgICogVGhpcyBtZXRob2QgZGlmZmVycyBmcm9tIGBfLmJpbmRgIGJ5IGFsbG93aW5nIGJvdW5kIGZ1bmN0aW9ucyB0byByZWZlcmVuY2VcXG4gICAgICogbWV0aG9kcyB0aGF0IG1heSBiZSByZWRlZmluZWQgb3IgZG9uJ3QgeWV0IGV4aXN0LiBTZWVcXG4gICAgICogW1BldGVyIE1pY2hhdXgncyBhcnRpY2xlXShodHRwOi8vcGV0ZXIubWljaGF1eC5jYS9hcnRpY2xlcy9sYXp5LWZ1bmN0aW9uLWRlZmluaXRpb24tcGF0dGVybilcXG4gICAgICogZm9yIG1vcmUgZGV0YWlscy5cXG4gICAgICpcXG4gICAgICogVGhlIGBfLmJpbmRLZXkucGxhY2Vob2xkZXJgIHZhbHVlLCB3aGljaCBkZWZhdWx0cyB0byBgX2AgaW4gbW9ub2xpdGhpY1xcbiAgICAgKiBidWlsZHMsIG1heSBiZSB1c2VkIGFzIGEgcGxhY2Vob2xkZXIgZm9yIHBhcnRpYWxseSBhcHBsaWVkIGFyZ3VtZW50cy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xMC4wXFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW52b2tlIHRoZSBtZXRob2Qgb24uXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kLlxcbiAgICAgKiBAcGFyYW0gey4uLip9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBiZSBwYXJ0aWFsbHkgYXBwbGllZC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYm91bmQgZnVuY3Rpb24uXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3QgPSB7XFxuICAgICAqICAgJ3VzZXInOiAnZnJlZCcsXFxuICAgICAqICAgJ2dyZWV0JzogZnVuY3Rpb24oZ3JlZXRpbmcsIHB1bmN0dWF0aW9uKSB7XFxuICAgICAqICAgICByZXR1cm4gZ3JlZXRpbmcgKyAnICcgKyB0aGlzLnVzZXIgKyBwdW5jdHVhdGlvbjtcXG4gICAgICogICB9XFxuICAgICAqIH07XFxuICAgICAqXFxuICAgICAqIHZhciBib3VuZCA9IF8uYmluZEtleShvYmplY3QsICdncmVldCcsICdoaScpO1xcbiAgICAgKiBib3VuZCgnIScpO1xcbiAgICAgKiAvLyA9PiAnaGkgZnJlZCEnXFxuICAgICAqXFxuICAgICAqIG9iamVjdC5ncmVldCA9IGZ1bmN0aW9uKGdyZWV0aW5nLCBwdW5jdHVhdGlvbikge1xcbiAgICAgKiAgIHJldHVybiBncmVldGluZyArICd5YSAnICsgdGhpcy51c2VyICsgcHVuY3R1YXRpb247XFxuICAgICAqIH07XFxuICAgICAqXFxuICAgICAqIGJvdW5kKCchJyk7XFxuICAgICAqIC8vID0+ICdoaXlhIGZyZWQhJ1xcbiAgICAgKlxcbiAgICAgKiAvLyBCb3VuZCB3aXRoIHBsYWNlaG9sZGVycy5cXG4gICAgICogdmFyIGJvdW5kID0gXy5iaW5kS2V5KG9iamVjdCwgJ2dyZWV0JywgXywgJyEnKTtcXG4gICAgICogYm91bmQoJ2hpJyk7XFxuICAgICAqIC8vID0+ICdoaXlhIGZyZWQhJ1xcbiAgICAgKi9cXG4gICAgdmFyIGJpbmRLZXkgPSBiYXNlUmVzdChmdW5jdGlvbihvYmplY3QsIGtleSwgcGFydGlhbHMpIHtcXG4gICAgICB2YXIgYml0bWFzayA9IFdSQVBfQklORF9GTEFHIHwgV1JBUF9CSU5EX0tFWV9GTEFHO1xcbiAgICAgIGlmIChwYXJ0aWFscy5sZW5ndGgpIHtcXG4gICAgICAgIHZhciBob2xkZXJzID0gcmVwbGFjZUhvbGRlcnMocGFydGlhbHMsIGdldEhvbGRlcihiaW5kS2V5KSk7XFxuICAgICAgICBiaXRtYXNrIHw9IFdSQVBfUEFSVElBTF9GTEFHO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChrZXksIGJpdG1hc2ssIG9iamVjdCwgcGFydGlhbHMsIGhvbGRlcnMpO1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgYXJndW1lbnRzIG9mIGBmdW5jYCBhbmQgZWl0aGVyIGludm9rZXNcXG4gICAgICogYGZ1bmNgIHJldHVybmluZyBpdHMgcmVzdWx0LCBpZiBhdCBsZWFzdCBgYXJpdHlgIG51bWJlciBvZiBhcmd1bWVudHMgaGF2ZVxcbiAgICAgKiBiZWVuIHByb3ZpZGVkLCBvciByZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHRoZSByZW1haW5pbmcgYGZ1bmNgXFxuICAgICAqIGFyZ3VtZW50cywgYW5kIHNvIG9uLiBUaGUgYXJpdHkgb2YgYGZ1bmNgIG1heSBiZSBzcGVjaWZpZWQgaWYgYGZ1bmMubGVuZ3RoYFxcbiAgICAgKiBpcyBub3Qgc3VmZmljaWVudC5cXG4gICAgICpcXG4gICAgICogVGhlIGBfLmN1cnJ5LnBsYWNlaG9sZGVyYCB2YWx1ZSwgd2hpY2ggZGVmYXVsdHMgdG8gYF9gIGluIG1vbm9saXRoaWMgYnVpbGRzLFxcbiAgICAgKiBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwcm92aWRlZCBhcmd1bWVudHMuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBkb2Vzbid0IHNldCB0aGUgXFxcImxlbmd0aFxcXCIgcHJvcGVydHkgb2YgY3VycmllZCBmdW5jdGlvbnMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDIuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjdXJyeS5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcml0eT1mdW5jLmxlbmd0aF0gVGhlIGFyaXR5IG9mIGBmdW5jYC5cXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY3VycmllZCBmdW5jdGlvbi5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIGFiYyA9IGZ1bmN0aW9uKGEsIGIsIGMpIHtcXG4gICAgICogICByZXR1cm4gW2EsIGIsIGNdO1xcbiAgICAgKiB9O1xcbiAgICAgKlxcbiAgICAgKiB2YXIgY3VycmllZCA9IF8uY3VycnkoYWJjKTtcXG4gICAgICpcXG4gICAgICogY3VycmllZCgxKSgyKSgzKTtcXG4gICAgICogLy8gPT4gWzEsIDIsIDNdXFxuICAgICAqXFxuICAgICAqIGN1cnJpZWQoMSwgMikoMyk7XFxuICAgICAqIC8vID0+IFsxLCAyLCAzXVxcbiAgICAgKlxcbiAgICAgKiBjdXJyaWVkKDEsIDIsIDMpO1xcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cXG4gICAgICpcXG4gICAgICogLy8gQ3VycmllZCB3aXRoIHBsYWNlaG9sZGVycy5cXG4gICAgICogY3VycmllZCgxKShfLCAzKSgyKTtcXG4gICAgICogLy8gPT4gWzEsIDIsIDNdXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjdXJyeShmdW5jLCBhcml0eSwgZ3VhcmQpIHtcXG4gICAgICBhcml0eSA9IGd1YXJkID8gdW5kZWZpbmVkIDogYXJpdHk7XFxuICAgICAgdmFyIHJlc3VsdCA9IGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9DVVJSWV9GTEFHLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgYXJpdHkpO1xcbiAgICAgIHJlc3VsdC5wbGFjZWhvbGRlciA9IGN1cnJ5LnBsYWNlaG9sZGVyO1xcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uY3VycnlgIGV4Y2VwdCB0aGF0IGFyZ3VtZW50cyBhcmUgYXBwbGllZCB0byBgZnVuY2BcXG4gICAgICogaW4gdGhlIG1hbm5lciBvZiBgXy5wYXJ0aWFsUmlnaHRgIGluc3RlYWQgb2YgYF8ucGFydGlhbGAuXFxuICAgICAqXFxuICAgICAqIFRoZSBgXy5jdXJyeVJpZ2h0LnBsYWNlaG9sZGVyYCB2YWx1ZSwgd2hpY2ggZGVmYXVsdHMgdG8gYF9gIGluIG1vbm9saXRoaWNcXG4gICAgICogYnVpbGRzLCBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwcm92aWRlZCBhcmd1bWVudHMuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBkb2Vzbid0IHNldCB0aGUgXFxcImxlbmd0aFxcXCIgcHJvcGVydHkgb2YgY3VycmllZCBmdW5jdGlvbnMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjdXJyeS5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcml0eT1mdW5jLmxlbmd0aF0gVGhlIGFyaXR5IG9mIGBmdW5jYC5cXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY3VycmllZCBmdW5jdGlvbi5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIGFiYyA9IGZ1bmN0aW9uKGEsIGIsIGMpIHtcXG4gICAgICogICByZXR1cm4gW2EsIGIsIGNdO1xcbiAgICAgKiB9O1xcbiAgICAgKlxcbiAgICAgKiB2YXIgY3VycmllZCA9IF8uY3VycnlSaWdodChhYmMpO1xcbiAgICAgKlxcbiAgICAgKiBjdXJyaWVkKDMpKDIpKDEpO1xcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cXG4gICAgICpcXG4gICAgICogY3VycmllZCgyLCAzKSgxKTtcXG4gICAgICogLy8gPT4gWzEsIDIsIDNdXFxuICAgICAqXFxuICAgICAqIGN1cnJpZWQoMSwgMiwgMyk7XFxuICAgICAqIC8vID0+IFsxLCAyLCAzXVxcbiAgICAgKlxcbiAgICAgKiAvLyBDdXJyaWVkIHdpdGggcGxhY2Vob2xkZXJzLlxcbiAgICAgKiBjdXJyaWVkKDMpKDEsIF8pKDIpO1xcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGN1cnJ5UmlnaHQoZnVuYywgYXJpdHksIGd1YXJkKSB7XFxuICAgICAgYXJpdHkgPSBndWFyZCA/IHVuZGVmaW5lZCA6IGFyaXR5O1xcbiAgICAgIHZhciByZXN1bHQgPSBjcmVhdGVXcmFwKGZ1bmMsIFdSQVBfQ1VSUllfUklHSFRfRkxBRywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGFyaXR5KTtcXG4gICAgICByZXN1bHQucGxhY2Vob2xkZXIgPSBjdXJyeVJpZ2h0LnBsYWNlaG9sZGVyO1xcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBkZWJvdW5jZWQgZnVuY3Rpb24gdGhhdCBkZWxheXMgaW52b2tpbmcgYGZ1bmNgIHVudGlsIGFmdGVyIGB3YWl0YFxcbiAgICAgKiBtaWxsaXNlY29uZHMgaGF2ZSBlbGFwc2VkIHNpbmNlIHRoZSBsYXN0IHRpbWUgdGhlIGRlYm91bmNlZCBmdW5jdGlvbiB3YXNcXG4gICAgICogaW52b2tlZC4gVGhlIGRlYm91bmNlZCBmdW5jdGlvbiBjb21lcyB3aXRoIGEgYGNhbmNlbGAgbWV0aG9kIHRvIGNhbmNlbFxcbiAgICAgKiBkZWxheWVkIGBmdW5jYCBpbnZvY2F0aW9ucyBhbmQgYSBgZmx1c2hgIG1ldGhvZCB0byBpbW1lZGlhdGVseSBpbnZva2UgdGhlbS5cXG4gICAgICogUHJvdmlkZSBgb3B0aW9uc2AgdG8gaW5kaWNhdGUgd2hldGhlciBgZnVuY2Agc2hvdWxkIGJlIGludm9rZWQgb24gdGhlXFxuICAgICAqIGxlYWRpbmcgYW5kL29yIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIGB3YWl0YCB0aW1lb3V0LiBUaGUgYGZ1bmNgIGlzIGludm9rZWRcXG4gICAgICogd2l0aCB0aGUgbGFzdCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbi4gU3Vic2VxdWVudFxcbiAgICAgKiBjYWxscyB0byB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uIHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBsYXN0IGBmdW5jYFxcbiAgICAgKiBpbnZvY2F0aW9uLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogSWYgYGxlYWRpbmdgIGFuZCBgdHJhaWxpbmdgIG9wdGlvbnMgYXJlIGB0cnVlYCwgYGZ1bmNgIGlzXFxuICAgICAqIGludm9rZWQgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQgb25seSBpZiB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uXFxuICAgICAqIGlzIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cXG4gICAgICpcXG4gICAgICogSWYgYHdhaXRgIGlzIGAwYCBhbmQgYGxlYWRpbmdgIGlzIGBmYWxzZWAsIGBmdW5jYCBpbnZvY2F0aW9uIGlzIGRlZmVycmVkXFxuICAgICAqIHVudGlsIHRvIHRoZSBuZXh0IHRpY2ssIHNpbWlsYXIgdG8gYHNldFRpbWVvdXRgIHdpdGggYSB0aW1lb3V0IG9mIGAwYC5cXG4gICAgICpcXG4gICAgICogU2VlIFtEYXZpZCBDb3JiYWNobydzIGFydGljbGVdKGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vZGVib3VuY2luZy10aHJvdHRsaW5nLWV4cGxhaW5lZC1leGFtcGxlcy8pXFxuICAgICAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8uZGVib3VuY2VgIGFuZCBgXy50aHJvdHRsZWAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWJvdW5jZS5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt3YWl0PTBdIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5LlxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPWZhbHNlXVxcbiAgICAgKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgbGVhZGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4V2FpdF1cXG4gICAgICogIFRoZSBtYXhpbXVtIHRpbWUgYGZ1bmNgIGlzIGFsbG93ZWQgdG8gYmUgZGVsYXllZCBiZWZvcmUgaXQncyBpbnZva2VkLlxcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnRyYWlsaW5nPXRydWVdXFxuICAgICAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBkZWJvdW5jZWQgZnVuY3Rpb24uXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIC8vIEF2b2lkIGNvc3RseSBjYWxjdWxhdGlvbnMgd2hpbGUgdGhlIHdpbmRvdyBzaXplIGlzIGluIGZsdXguXFxuICAgICAqIGpRdWVyeSh3aW5kb3cpLm9uKCdyZXNpemUnLCBfLmRlYm91bmNlKGNhbGN1bGF0ZUxheW91dCwgMTUwKSk7XFxuICAgICAqXFxuICAgICAqIC8vIEludm9rZSBgc2VuZE1haWxgIHdoZW4gY2xpY2tlZCwgZGVib3VuY2luZyBzdWJzZXF1ZW50IGNhbGxzLlxcbiAgICAgKiBqUXVlcnkoZWxlbWVudCkub24oJ2NsaWNrJywgXy5kZWJvdW5jZShzZW5kTWFpbCwgMzAwLCB7XFxuICAgICAqICAgJ2xlYWRpbmcnOiB0cnVlLFxcbiAgICAgKiAgICd0cmFpbGluZyc6IGZhbHNlXFxuICAgICAqIH0pKTtcXG4gICAgICpcXG4gICAgICogLy8gRW5zdXJlIGBiYXRjaExvZ2AgaXMgaW52b2tlZCBvbmNlIGFmdGVyIDEgc2Vjb25kIG9mIGRlYm91bmNlZCBjYWxscy5cXG4gICAgICogdmFyIGRlYm91bmNlZCA9IF8uZGVib3VuY2UoYmF0Y2hMb2csIDI1MCwgeyAnbWF4V2FpdCc6IDEwMDAgfSk7XFxuICAgICAqIHZhciBzb3VyY2UgPSBuZXcgRXZlbnRTb3VyY2UoJy9zdHJlYW0nKTtcXG4gICAgICogalF1ZXJ5KHNvdXJjZSkub24oJ21lc3NhZ2UnLCBkZWJvdW5jZWQpO1xcbiAgICAgKlxcbiAgICAgKiAvLyBDYW5jZWwgdGhlIHRyYWlsaW5nIGRlYm91bmNlZCBpbnZvY2F0aW9uLlxcbiAgICAgKiBqUXVlcnkod2luZG93KS5vbigncG9wc3RhdGUnLCBkZWJvdW5jZWQuY2FuY2VsKTtcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGRlYm91bmNlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcXG4gICAgICB2YXIgbGFzdEFyZ3MsXFxuICAgICAgICAgIGxhc3RUaGlzLFxcbiAgICAgICAgICBtYXhXYWl0LFxcbiAgICAgICAgICByZXN1bHQsXFxuICAgICAgICAgIHRpbWVySWQsXFxuICAgICAgICAgIGxhc3RDYWxsVGltZSxcXG4gICAgICAgICAgbGFzdEludm9rZVRpbWUgPSAwLFxcbiAgICAgICAgICBsZWFkaW5nID0gZmFsc2UsXFxuICAgICAgICAgIG1heGluZyA9IGZhbHNlLFxcbiAgICAgICAgICB0cmFpbGluZyA9IHRydWU7XFxuXFxuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcXG4gICAgICB9XFxuICAgICAgd2FpdCA9IHRvTnVtYmVyKHdhaXQpIHx8IDA7XFxuICAgICAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XFxuICAgICAgICBsZWFkaW5nID0gISFvcHRpb25zLmxlYWRpbmc7XFxuICAgICAgICBtYXhpbmcgPSAnbWF4V2FpdCcgaW4gb3B0aW9ucztcXG4gICAgICAgIG1heFdhaXQgPSBtYXhpbmcgPyBuYXRpdmVNYXgodG9OdW1iZXIob3B0aW9ucy5tYXhXYWl0KSB8fCAwLCB3YWl0KSA6IG1heFdhaXQ7XFxuICAgICAgICB0cmFpbGluZyA9ICd0cmFpbGluZycgaW4gb3B0aW9ucyA/ICEhb3B0aW9ucy50cmFpbGluZyA6IHRyYWlsaW5nO1xcbiAgICAgIH1cXG5cXG4gICAgICBmdW5jdGlvbiBpbnZva2VGdW5jKHRpbWUpIHtcXG4gICAgICAgIHZhciBhcmdzID0gbGFzdEFyZ3MsXFxuICAgICAgICAgICAgdGhpc0FyZyA9IGxhc3RUaGlzO1xcblxcbiAgICAgICAgbGFzdEFyZ3MgPSBsYXN0VGhpcyA9IHVuZGVmaW5lZDtcXG4gICAgICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcXG4gICAgICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkodGhpc0FyZywgYXJncyk7XFxuICAgICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICAgIH1cXG5cXG4gICAgICBmdW5jdGlvbiBsZWFkaW5nRWRnZSh0aW1lKSB7XFxuICAgICAgICAvLyBSZXNldCBhbnkgYG1heFdhaXRgIHRpbWVyLlxcbiAgICAgICAgbGFzdEludm9rZVRpbWUgPSB0aW1lO1xcbiAgICAgICAgLy8gU3RhcnQgdGhlIHRpbWVyIGZvciB0aGUgdHJhaWxpbmcgZWRnZS5cXG4gICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XFxuICAgICAgICAvLyBJbnZva2UgdGhlIGxlYWRpbmcgZWRnZS5cXG4gICAgICAgIHJldHVybiBsZWFkaW5nID8gaW52b2tlRnVuYyh0aW1lKSA6IHJlc3VsdDtcXG4gICAgICB9XFxuXFxuICAgICAgZnVuY3Rpb24gcmVtYWluaW5nV2FpdCh0aW1lKSB7XFxuICAgICAgICB2YXIgdGltZVNpbmNlTGFzdENhbGwgPSB0aW1lIC0gbGFzdENhbGxUaW1lLFxcbiAgICAgICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWUsXFxuICAgICAgICAgICAgdGltZVdhaXRpbmcgPSB3YWl0IC0gdGltZVNpbmNlTGFzdENhbGw7XFxuXFxuICAgICAgICByZXR1cm4gbWF4aW5nXFxuICAgICAgICAgID8gbmF0aXZlTWluKHRpbWVXYWl0aW5nLCBtYXhXYWl0IC0gdGltZVNpbmNlTGFzdEludm9rZSlcXG4gICAgICAgICAgOiB0aW1lV2FpdGluZztcXG4gICAgICB9XFxuXFxuICAgICAgZnVuY3Rpb24gc2hvdWxkSW52b2tlKHRpbWUpIHtcXG4gICAgICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXFxuICAgICAgICAgICAgdGltZVNpbmNlTGFzdEludm9rZSA9IHRpbWUgLSBsYXN0SW52b2tlVGltZTtcXG5cXG4gICAgICAgIC8vIEVpdGhlciB0aGlzIGlzIHRoZSBmaXJzdCBjYWxsLCBhY3Rpdml0eSBoYXMgc3RvcHBlZCBhbmQgd2UncmUgYXQgdGhlXFxuICAgICAgICAvLyB0cmFpbGluZyBlZGdlLCB0aGUgc3lzdGVtIHRpbWUgaGFzIGdvbmUgYmFja3dhcmRzIGFuZCB3ZSdyZSB0cmVhdGluZ1xcbiAgICAgICAgLy8gaXQgYXMgdGhlIHRyYWlsaW5nIGVkZ2UsIG9yIHdlJ3ZlIGhpdCB0aGUgYG1heFdhaXRgIGxpbWl0LlxcbiAgICAgICAgcmV0dXJuIChsYXN0Q2FsbFRpbWUgPT09IHVuZGVmaW5lZCB8fCAodGltZVNpbmNlTGFzdENhbGwgPj0gd2FpdCkgfHxcXG4gICAgICAgICAgKHRpbWVTaW5jZUxhc3RDYWxsIDwgMCkgfHwgKG1heGluZyAmJiB0aW1lU2luY2VMYXN0SW52b2tlID49IG1heFdhaXQpKTtcXG4gICAgICB9XFxuXFxuICAgICAgZnVuY3Rpb24gdGltZXJFeHBpcmVkKCkge1xcbiAgICAgICAgdmFyIHRpbWUgPSBub3coKTtcXG4gICAgICAgIGlmIChzaG91bGRJbnZva2UodGltZSkpIHtcXG4gICAgICAgICAgcmV0dXJuIHRyYWlsaW5nRWRnZSh0aW1lKTtcXG4gICAgICAgIH1cXG4gICAgICAgIC8vIFJlc3RhcnQgdGhlIHRpbWVyLlxcbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCByZW1haW5pbmdXYWl0KHRpbWUpKTtcXG4gICAgICB9XFxuXFxuICAgICAgZnVuY3Rpb24gdHJhaWxpbmdFZGdlKHRpbWUpIHtcXG4gICAgICAgIHRpbWVySWQgPSB1bmRlZmluZWQ7XFxuXFxuICAgICAgICAvLyBPbmx5IGludm9rZSBpZiB3ZSBoYXZlIGBsYXN0QXJnc2Agd2hpY2ggbWVhbnMgYGZ1bmNgIGhhcyBiZWVuXFxuICAgICAgICAvLyBkZWJvdW5jZWQgYXQgbGVhc3Qgb25jZS5cXG4gICAgICAgIGlmICh0cmFpbGluZyAmJiBsYXN0QXJncykge1xcbiAgICAgICAgICByZXR1cm4gaW52b2tlRnVuYyh0aW1lKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGxhc3RBcmdzID0gbGFzdFRoaXMgPSB1bmRlZmluZWQ7XFxuICAgICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICAgIH1cXG5cXG4gICAgICBmdW5jdGlvbiBjYW5jZWwoKSB7XFxuICAgICAgICBpZiAodGltZXJJZCAhPT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcklkKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGxhc3RJbnZva2VUaW1lID0gMDtcXG4gICAgICAgIGxhc3RBcmdzID0gbGFzdENhbGxUaW1lID0gbGFzdFRoaXMgPSB0aW1lcklkID0gdW5kZWZpbmVkO1xcbiAgICAgIH1cXG5cXG4gICAgICBmdW5jdGlvbiBmbHVzaCgpIHtcXG4gICAgICAgIHJldHVybiB0aW1lcklkID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiB0cmFpbGluZ0VkZ2Uobm93KCkpO1xcbiAgICAgIH1cXG5cXG4gICAgICBmdW5jdGlvbiBkZWJvdW5jZWQoKSB7XFxuICAgICAgICB2YXIgdGltZSA9IG5vdygpLFxcbiAgICAgICAgICAgIGlzSW52b2tpbmcgPSBzaG91bGRJbnZva2UodGltZSk7XFxuXFxuICAgICAgICBsYXN0QXJncyA9IGFyZ3VtZW50cztcXG4gICAgICAgIGxhc3RUaGlzID0gdGhpcztcXG4gICAgICAgIGxhc3RDYWxsVGltZSA9IHRpbWU7XFxuXFxuICAgICAgICBpZiAoaXNJbnZva2luZykge1xcbiAgICAgICAgICBpZiAodGltZXJJZCA9PT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGxlYWRpbmdFZGdlKGxhc3RDYWxsVGltZSk7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgaWYgKG1heGluZykge1xcbiAgICAgICAgICAgIC8vIEhhbmRsZSBpbnZvY2F0aW9ucyBpbiBhIHRpZ2h0IGxvb3AuXFxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xcbiAgICAgICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XFxuICAgICAgICAgICAgcmV0dXJuIGludm9rZUZ1bmMobGFzdENhbGxUaW1lKTtcXG4gICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgICB9XFxuICAgICAgZGVib3VuY2VkLmNhbmNlbCA9IGNhbmNlbDtcXG4gICAgICBkZWJvdW5jZWQuZmx1c2ggPSBmbHVzaDtcXG4gICAgICByZXR1cm4gZGVib3VuY2VkO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBEZWZlcnMgaW52b2tpbmcgdGhlIGBmdW5jYCB1bnRpbCB0aGUgY3VycmVudCBjYWxsIHN0YWNrIGhhcyBjbGVhcmVkLiBBbnlcXG4gICAgICogYWRkaXRpb25hbCBhcmd1bWVudHMgYXJlIHByb3ZpZGVkIHRvIGBmdW5jYCB3aGVuIGl0J3MgaW52b2tlZC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRlZmVyLlxcbiAgICAgKiBAcGFyYW0gey4uLip9IFthcmdzXSBUaGUgYXJndW1lbnRzIHRvIGludm9rZSBgZnVuY2Agd2l0aC5cXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgdGltZXIgaWQuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uZGVmZXIoZnVuY3Rpb24odGV4dCkge1xcbiAgICAgKiAgIGNvbnNvbGUubG9nKHRleHQpO1xcbiAgICAgKiB9LCAnZGVmZXJyZWQnKTtcXG4gICAgICogLy8gPT4gTG9ncyAnZGVmZXJyZWQnIGFmdGVyIG9uZSBtaWxsaXNlY29uZC5cXG4gICAgICovXFxuICAgIHZhciBkZWZlciA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIGFyZ3MpIHtcXG4gICAgICByZXR1cm4gYmFzZURlbGF5KGZ1bmMsIDEsIGFyZ3MpO1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIEludm9rZXMgYGZ1bmNgIGFmdGVyIGB3YWl0YCBtaWxsaXNlY29uZHMuIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmVcXG4gICAgICogcHJvdmlkZWQgdG8gYGZ1bmNgIHdoZW4gaXQncyBpbnZva2VkLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZGVsYXkuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3YWl0IFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5IGludm9jYXRpb24uXFxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIGBmdW5jYCB3aXRoLlxcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSB0aW1lciBpZC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5kZWxheShmdW5jdGlvbih0ZXh0KSB7XFxuICAgICAqICAgY29uc29sZS5sb2codGV4dCk7XFxuICAgICAqIH0sIDEwMDAsICdsYXRlcicpO1xcbiAgICAgKiAvLyA9PiBMb2dzICdsYXRlcicgYWZ0ZXIgb25lIHNlY29uZC5cXG4gICAgICovXFxuICAgIHZhciBkZWxheSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIHdhaXQsIGFyZ3MpIHtcXG4gICAgICByZXR1cm4gYmFzZURlbGF5KGZ1bmMsIHRvTnVtYmVyKHdhaXQpIHx8IDAsIGFyZ3MpO1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggYXJndW1lbnRzIHJldmVyc2VkLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZmxpcCBhcmd1bWVudHMgZm9yLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmbGlwcGVkIGZ1bmN0aW9uLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgZmxpcHBlZCA9IF8uZmxpcChmdW5jdGlvbigpIHtcXG4gICAgICogICByZXR1cm4gXy50b0FycmF5KGFyZ3VtZW50cyk7XFxuICAgICAqIH0pO1xcbiAgICAgKlxcbiAgICAgKiBmbGlwcGVkKCdhJywgJ2InLCAnYycsICdkJyk7XFxuICAgICAqIC8vID0+IFsnZCcsICdjJywgJ2InLCAnYSddXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBmbGlwKGZ1bmMpIHtcXG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBXUkFQX0ZMSVBfRkxBRyk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IG1lbW9pemVzIHRoZSByZXN1bHQgb2YgYGZ1bmNgLiBJZiBgcmVzb2x2ZXJgIGlzXFxuICAgICAqIHByb3ZpZGVkLCBpdCBkZXRlcm1pbmVzIHRoZSBjYWNoZSBrZXkgZm9yIHN0b3JpbmcgdGhlIHJlc3VsdCBiYXNlZCBvbiB0aGVcXG4gICAgICogYXJndW1lbnRzIHByb3ZpZGVkIHRvIHRoZSBtZW1vaXplZCBmdW5jdGlvbi4gQnkgZGVmYXVsdCwgdGhlIGZpcnN0IGFyZ3VtZW50XFxuICAgICAqIHByb3ZpZGVkIHRvIHRoZSBtZW1vaXplZCBmdW5jdGlvbiBpcyB1c2VkIGFzIHRoZSBtYXAgY2FjaGUga2V5LiBUaGUgYGZ1bmNgXFxuICAgICAqIGlzIGludm9rZWQgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgdGhlIG1lbW9pemVkIGZ1bmN0aW9uLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhlIGNhY2hlIGlzIGV4cG9zZWQgYXMgdGhlIGBjYWNoZWAgcHJvcGVydHkgb24gdGhlIG1lbW9pemVkXFxuICAgICAqIGZ1bmN0aW9uLiBJdHMgY3JlYXRpb24gbWF5IGJlIGN1c3RvbWl6ZWQgYnkgcmVwbGFjaW5nIHRoZSBgXy5tZW1vaXplLkNhY2hlYFxcbiAgICAgKiBjb25zdHJ1Y3RvciB3aXRoIG9uZSB3aG9zZSBpbnN0YW5jZXMgaW1wbGVtZW50IHRoZVxcbiAgICAgKiBbYE1hcGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXByb3BlcnRpZXMtb2YtdGhlLW1hcC1wcm90b3R5cGUtb2JqZWN0KVxcbiAgICAgKiBtZXRob2QgaW50ZXJmYWNlIG9mIGBjbGVhcmAsIGBkZWxldGVgLCBgZ2V0YCwgYGhhc2AsIGFuZCBgc2V0YC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGhhdmUgaXRzIG91dHB1dCBtZW1vaXplZC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3Jlc29sdmVyXSBUaGUgZnVuY3Rpb24gdG8gcmVzb2x2ZSB0aGUgY2FjaGUga2V5LlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6IDIgfTtcXG4gICAgICogdmFyIG90aGVyID0geyAnYyc6IDMsICdkJzogNCB9O1xcbiAgICAgKlxcbiAgICAgKiB2YXIgdmFsdWVzID0gXy5tZW1vaXplKF8udmFsdWVzKTtcXG4gICAgICogdmFsdWVzKG9iamVjdCk7XFxuICAgICAqIC8vID0+IFsxLCAyXVxcbiAgICAgKlxcbiAgICAgKiB2YWx1ZXMob3RoZXIpO1xcbiAgICAgKiAvLyA9PiBbMywgNF1cXG4gICAgICpcXG4gICAgICogb2JqZWN0LmEgPSAyO1xcbiAgICAgKiB2YWx1ZXMob2JqZWN0KTtcXG4gICAgICogLy8gPT4gWzEsIDJdXFxuICAgICAqXFxuICAgICAqIC8vIE1vZGlmeSB0aGUgcmVzdWx0IGNhY2hlLlxcbiAgICAgKiB2YWx1ZXMuY2FjaGUuc2V0KG9iamVjdCwgWydhJywgJ2InXSk7XFxuICAgICAqIHZhbHVlcyhvYmplY3QpO1xcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYiddXFxuICAgICAqXFxuICAgICAqIC8vIFJlcGxhY2UgYF8ubWVtb2l6ZS5DYWNoZWAuXFxuICAgICAqIF8ubWVtb2l6ZS5DYWNoZSA9IFdlYWtNYXA7XFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBtZW1vaXplKGZ1bmMsIHJlc29sdmVyKSB7XFxuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicgfHwgKHJlc29sdmVyICE9IG51bGwgJiYgdHlwZW9mIHJlc29sdmVyICE9ICdmdW5jdGlvbicpKSB7XFxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XFxuICAgICAgfVxcbiAgICAgIHZhciBtZW1vaXplZCA9IGZ1bmN0aW9uKCkge1xcbiAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXFxuICAgICAgICAgICAga2V5ID0gcmVzb2x2ZXIgPyByZXNvbHZlci5hcHBseSh0aGlzLCBhcmdzKSA6IGFyZ3NbMF0sXFxuICAgICAgICAgICAgY2FjaGUgPSBtZW1vaXplZC5jYWNoZTtcXG5cXG4gICAgICAgIGlmIChjYWNoZS5oYXMoa2V5KSkge1xcbiAgICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KGtleSk7XFxuICAgICAgICB9XFxuICAgICAgICB2YXIgcmVzdWx0ID0gZnVuYy5hcHBseSh0aGlzLCBhcmdzKTtcXG4gICAgICAgIG1lbW9pemVkLmNhY2hlID0gY2FjaGUuc2V0KGtleSwgcmVzdWx0KSB8fCBjYWNoZTtcXG4gICAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgICAgfTtcXG4gICAgICBtZW1vaXplZC5jYWNoZSA9IG5ldyAobWVtb2l6ZS5DYWNoZSB8fCBNYXBDYWNoZSk7XFxuICAgICAgcmV0dXJuIG1lbW9pemVkO1xcbiAgICB9XFxuXFxuICAgIC8vIEV4cG9zZSBgTWFwQ2FjaGVgLlxcbiAgICBtZW1vaXplLkNhY2hlID0gTWFwQ2FjaGU7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBuZWdhdGVzIHRoZSByZXN1bHQgb2YgdGhlIHByZWRpY2F0ZSBgZnVuY2AuIFRoZVxcbiAgICAgKiBgZnVuY2AgcHJlZGljYXRlIGlzIGludm9rZWQgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgYW5kIGFyZ3VtZW50cyBvZiB0aGVcXG4gICAgICogY3JlYXRlZCBmdW5jdGlvbi5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMy4wLjBcXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgcHJlZGljYXRlIHRvIG5lZ2F0ZS5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgbmVnYXRlZCBmdW5jdGlvbi5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gaXNFdmVuKG4pIHtcXG4gICAgICogICByZXR1cm4gbiAlIDIgPT0gMDtcXG4gICAgICogfVxcbiAgICAgKlxcbiAgICAgKiBfLmZpbHRlcihbMSwgMiwgMywgNCwgNSwgNl0sIF8ubmVnYXRlKGlzRXZlbikpO1xcbiAgICAgKiAvLyA9PiBbMSwgMywgNV1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIG5lZ2F0ZShwcmVkaWNhdGUpIHtcXG4gICAgICBpZiAodHlwZW9mIHByZWRpY2F0ZSAhPSAnZnVuY3Rpb24nKSB7XFxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcXG4gICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xcbiAgICAgICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xcbiAgICAgICAgICBjYXNlIDA6IHJldHVybiAhcHJlZGljYXRlLmNhbGwodGhpcyk7XFxuICAgICAgICAgIGNhc2UgMTogcmV0dXJuICFwcmVkaWNhdGUuY2FsbCh0aGlzLCBhcmdzWzBdKTtcXG4gICAgICAgICAgY2FzZSAyOiByZXR1cm4gIXByZWRpY2F0ZS5jYWxsKHRoaXMsIGFyZ3NbMF0sIGFyZ3NbMV0pO1xcbiAgICAgICAgICBjYXNlIDM6IHJldHVybiAhcHJlZGljYXRlLmNhbGwodGhpcywgYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gIXByZWRpY2F0ZS5hcHBseSh0aGlzLCBhcmdzKTtcXG4gICAgICB9O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpcyByZXN0cmljdGVkIHRvIGludm9raW5nIGBmdW5jYCBvbmNlLiBSZXBlYXQgY2FsbHNcXG4gICAgICogdG8gdGhlIGZ1bmN0aW9uIHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGludm9jYXRpb24uIFRoZSBgZnVuY2AgaXNcXG4gICAgICogaW52b2tlZCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBhbmQgYXJndW1lbnRzIG9mIHRoZSBjcmVhdGVkIGZ1bmN0aW9uLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVzdHJpY3QuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHJlc3RyaWN0ZWQgZnVuY3Rpb24uXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBpbml0aWFsaXplID0gXy5vbmNlKGNyZWF0ZUFwcGxpY2F0aW9uKTtcXG4gICAgICogaW5pdGlhbGl6ZSgpO1xcbiAgICAgKiBpbml0aWFsaXplKCk7XFxuICAgICAqIC8vID0+IGBjcmVhdGVBcHBsaWNhdGlvbmAgaXMgaW52b2tlZCBvbmNlXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBvbmNlKGZ1bmMpIHtcXG4gICAgICByZXR1cm4gYmVmb3JlKDIsIGZ1bmMpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIGl0cyBhcmd1bWVudHMgdHJhbnNmb3JtZWQuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB3cmFwLlxcbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW3RyYW5zZm9ybXM9W18uaWRlbnRpdHldXVxcbiAgICAgKiAgVGhlIGFyZ3VtZW50IHRyYW5zZm9ybXMuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBmdW5jdGlvbiBkb3VibGVkKG4pIHtcXG4gICAgICogICByZXR1cm4gbiAqIDI7XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcXG4gICAgICogICByZXR1cm4gbiAqIG47XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogdmFyIGZ1bmMgPSBfLm92ZXJBcmdzKGZ1bmN0aW9uKHgsIHkpIHtcXG4gICAgICogICByZXR1cm4gW3gsIHldO1xcbiAgICAgKiB9LCBbc3F1YXJlLCBkb3VibGVkXSk7XFxuICAgICAqXFxuICAgICAqIGZ1bmMoOSwgMyk7XFxuICAgICAqIC8vID0+IFs4MSwgNl1cXG4gICAgICpcXG4gICAgICogZnVuYygxMCwgNSk7XFxuICAgICAqIC8vID0+IFsxMDAsIDEwXVxcbiAgICAgKi9cXG4gICAgdmFyIG92ZXJBcmdzID0gY2FzdFJlc3QoZnVuY3Rpb24oZnVuYywgdHJhbnNmb3Jtcykge1xcbiAgICAgIHRyYW5zZm9ybXMgPSAodHJhbnNmb3Jtcy5sZW5ndGggPT0gMSAmJiBpc0FycmF5KHRyYW5zZm9ybXNbMF0pKVxcbiAgICAgICAgPyBhcnJheU1hcCh0cmFuc2Zvcm1zWzBdLCBiYXNlVW5hcnkoZ2V0SXRlcmF0ZWUoKSkpXFxuICAgICAgICA6IGFycmF5TWFwKGJhc2VGbGF0dGVuKHRyYW5zZm9ybXMsIDEpLCBiYXNlVW5hcnkoZ2V0SXRlcmF0ZWUoKSkpO1xcblxcbiAgICAgIHZhciBmdW5jc0xlbmd0aCA9IHRyYW5zZm9ybXMubGVuZ3RoO1xcbiAgICAgIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihhcmdzKSB7XFxuICAgICAgICB2YXIgaW5kZXggPSAtMSxcXG4gICAgICAgICAgICBsZW5ndGggPSBuYXRpdmVNaW4oYXJncy5sZW5ndGgsIGZ1bmNzTGVuZ3RoKTtcXG5cXG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgICAgIGFyZ3NbaW5kZXhdID0gdHJhbnNmb3Jtc1tpbmRleF0uY2FsbCh0aGlzLCBhcmdzW2luZGV4XSk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gYXBwbHkoZnVuYywgdGhpcywgYXJncyk7XFxuICAgICAgfSk7XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBgcGFydGlhbHNgIHByZXBlbmRlZCB0byB0aGVcXG4gICAgICogYXJndW1lbnRzIGl0IHJlY2VpdmVzLiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmJpbmRgIGV4Y2VwdCBpdCBkb2VzICoqbm90KipcXG4gICAgICogYWx0ZXIgdGhlIGB0aGlzYCBiaW5kaW5nLlxcbiAgICAgKlxcbiAgICAgKiBUaGUgYF8ucGFydGlhbC5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljXFxuICAgICAqIGJ1aWxkcywgbWF5IGJlIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgZG9lc24ndCBzZXQgdGhlIFxcXCJsZW5ndGhcXFwiIHByb3BlcnR5IG9mIHBhcnRpYWxseVxcbiAgICAgKiBhcHBsaWVkIGZ1bmN0aW9ucy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4yLjBcXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHBhcnRpYWxseSBhcHBseSBhcmd1bWVudHMgdG8uXFxuICAgICAqIEBwYXJhbSB7Li4uKn0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIGJlIHBhcnRpYWxseSBhcHBsaWVkLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBwYXJ0aWFsbHkgYXBwbGllZCBmdW5jdGlvbi5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gZ3JlZXQoZ3JlZXRpbmcsIG5hbWUpIHtcXG4gICAgICogICByZXR1cm4gZ3JlZXRpbmcgKyAnICcgKyBuYW1lO1xcbiAgICAgKiB9XFxuICAgICAqXFxuICAgICAqIHZhciBzYXlIZWxsb1RvID0gXy5wYXJ0aWFsKGdyZWV0LCAnaGVsbG8nKTtcXG4gICAgICogc2F5SGVsbG9UbygnZnJlZCcpO1xcbiAgICAgKiAvLyA9PiAnaGVsbG8gZnJlZCdcXG4gICAgICpcXG4gICAgICogLy8gUGFydGlhbGx5IGFwcGxpZWQgd2l0aCBwbGFjZWhvbGRlcnMuXFxuICAgICAqIHZhciBncmVldEZyZWQgPSBfLnBhcnRpYWwoZ3JlZXQsIF8sICdmcmVkJyk7XFxuICAgICAqIGdyZWV0RnJlZCgnaGknKTtcXG4gICAgICogLy8gPT4gJ2hpIGZyZWQnXFxuICAgICAqL1xcbiAgICB2YXIgcGFydGlhbCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIHBhcnRpYWxzKSB7XFxuICAgICAgdmFyIGhvbGRlcnMgPSByZXBsYWNlSG9sZGVycyhwYXJ0aWFscywgZ2V0SG9sZGVyKHBhcnRpYWwpKTtcXG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBXUkFQX1BBUlRJQUxfRkxBRywgdW5kZWZpbmVkLCBwYXJ0aWFscywgaG9sZGVycyk7XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5wYXJ0aWFsYCBleGNlcHQgdGhhdCBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHNcXG4gICAgICogYXJlIGFwcGVuZGVkIHRvIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuXFxuICAgICAqXFxuICAgICAqIFRoZSBgXy5wYXJ0aWFsUmlnaHQucGxhY2Vob2xkZXJgIHZhbHVlLCB3aGljaCBkZWZhdWx0cyB0byBgX2AgaW4gbW9ub2xpdGhpY1xcbiAgICAgKiBidWlsZHMsIG1heSBiZSB1c2VkIGFzIGEgcGxhY2Vob2xkZXIgZm9yIHBhcnRpYWxseSBhcHBsaWVkIGFyZ3VtZW50cy5cXG4gICAgICpcXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGRvZXNuJ3Qgc2V0IHRoZSBcXFwibGVuZ3RoXFxcIiBwcm9wZXJ0eSBvZiBwYXJ0aWFsbHlcXG4gICAgICogYXBwbGllZCBmdW5jdGlvbnMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDEuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBwYXJ0aWFsbHkgYXBwbHkgYXJndW1lbnRzIHRvLlxcbiAgICAgKiBAcGFyYW0gey4uLip9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBiZSBwYXJ0aWFsbHkgYXBwbGllZC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcGFydGlhbGx5IGFwcGxpZWQgZnVuY3Rpb24uXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIGdyZWV0KGdyZWV0aW5nLCBuYW1lKSB7XFxuICAgICAqICAgcmV0dXJuIGdyZWV0aW5nICsgJyAnICsgbmFtZTtcXG4gICAgICogfVxcbiAgICAgKlxcbiAgICAgKiB2YXIgZ3JlZXRGcmVkID0gXy5wYXJ0aWFsUmlnaHQoZ3JlZXQsICdmcmVkJyk7XFxuICAgICAqIGdyZWV0RnJlZCgnaGknKTtcXG4gICAgICogLy8gPT4gJ2hpIGZyZWQnXFxuICAgICAqXFxuICAgICAqIC8vIFBhcnRpYWxseSBhcHBsaWVkIHdpdGggcGxhY2Vob2xkZXJzLlxcbiAgICAgKiB2YXIgc2F5SGVsbG9UbyA9IF8ucGFydGlhbFJpZ2h0KGdyZWV0LCAnaGVsbG8nLCBfKTtcXG4gICAgICogc2F5SGVsbG9UbygnZnJlZCcpO1xcbiAgICAgKiAvLyA9PiAnaGVsbG8gZnJlZCdcXG4gICAgICovXFxuICAgIHZhciBwYXJ0aWFsUmlnaHQgPSBiYXNlUmVzdChmdW5jdGlvbihmdW5jLCBwYXJ0aWFscykge1xcbiAgICAgIHZhciBob2xkZXJzID0gcmVwbGFjZUhvbGRlcnMocGFydGlhbHMsIGdldEhvbGRlcihwYXJ0aWFsUmlnaHQpKTtcXG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRywgdW5kZWZpbmVkLCBwYXJ0aWFscywgaG9sZGVycyk7XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBhcmd1bWVudHMgYXJyYW5nZWQgYWNjb3JkaW5nXFxuICAgICAqIHRvIHRoZSBzcGVjaWZpZWQgYGluZGV4ZXNgIHdoZXJlIHRoZSBhcmd1bWVudCB2YWx1ZSBhdCB0aGUgZmlyc3QgaW5kZXggaXNcXG4gICAgICogcHJvdmlkZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LCB0aGUgYXJndW1lbnQgdmFsdWUgYXQgdGhlIHNlY29uZCBpbmRleCBpc1xcbiAgICAgKiBwcm92aWRlZCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50LCBhbmQgc28gb24uXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byByZWFycmFuZ2UgYXJndW1lbnRzIGZvci5cXG4gICAgICogQHBhcmFtIHsuLi4obnVtYmVyfG51bWJlcltdKX0gaW5kZXhlcyBUaGUgYXJyYW5nZWQgYXJndW1lbnQgaW5kZXhlcy5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciByZWFyZ2VkID0gXy5yZWFyZyhmdW5jdGlvbihhLCBiLCBjKSB7XFxuICAgICAqICAgcmV0dXJuIFthLCBiLCBjXTtcXG4gICAgICogfSwgWzIsIDAsIDFdKTtcXG4gICAgICpcXG4gICAgICogcmVhcmdlZCgnYicsICdjJywgJ2EnKVxcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYicsICdjJ11cXG4gICAgICovXFxuICAgIHZhciByZWFyZyA9IGZsYXRSZXN0KGZ1bmN0aW9uKGZ1bmMsIGluZGV4ZXMpIHtcXG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBXUkFQX1JFQVJHX0ZMQUcsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGluZGV4ZXMpO1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZVxcbiAgICAgKiBjcmVhdGVkIGZ1bmN0aW9uIGFuZCBhcmd1bWVudHMgZnJvbSBgc3RhcnRgIGFuZCBiZXlvbmQgcHJvdmlkZWQgYXNcXG4gICAgICogYW4gYXJyYXkuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvbiB0aGVcXG4gICAgICogW3Jlc3QgcGFyYW1ldGVyXShodHRwczovL21kbi5pby9yZXN0X3BhcmFtZXRlcnMpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD1mdW5jLmxlbmd0aC0xXSBUaGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIHJlc3QgcGFyYW1ldGVyLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIHNheSA9IF8ucmVzdChmdW5jdGlvbih3aGF0LCBuYW1lcykge1xcbiAgICAgKiAgIHJldHVybiB3aGF0ICsgJyAnICsgXy5pbml0aWFsKG5hbWVzKS5qb2luKCcsICcpICtcXG4gICAgICogICAgIChfLnNpemUobmFtZXMpID4gMSA/ICcsICYgJyA6ICcnKSArIF8ubGFzdChuYW1lcyk7XFxuICAgICAqIH0pO1xcbiAgICAgKlxcbiAgICAgKiBzYXkoJ2hlbGxvJywgJ2ZyZWQnLCAnYmFybmV5JywgJ3BlYmJsZXMnKTtcXG4gICAgICogLy8gPT4gJ2hlbGxvIGZyZWQsIGJhcm5leSwgJiBwZWJibGVzJ1xcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gcmVzdChmdW5jLCBzdGFydCkge1xcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XFxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XFxuICAgICAgfVxcbiAgICAgIHN0YXJ0ID0gc3RhcnQgPT09IHVuZGVmaW5lZCA/IHN0YXJ0IDogdG9JbnRlZ2VyKHN0YXJ0KTtcXG4gICAgICByZXR1cm4gYmFzZVJlc3QoZnVuYywgc3RhcnQpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiB0aGVcXG4gICAgICogY3JlYXRlIGZ1bmN0aW9uIGFuZCBhbiBhcnJheSBvZiBhcmd1bWVudHMgbXVjaCBsaWtlXFxuICAgICAqIFtgRnVuY3Rpb24jYXBwbHlgXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5KS5cXG4gICAgICpcXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGJhc2VkIG9uIHRoZVxcbiAgICAgKiBbc3ByZWFkIG9wZXJhdG9yXShodHRwczovL21kbi5pby9zcHJlYWRfb3BlcmF0b3IpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjIuMFxcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gc3ByZWFkIGFyZ3VtZW50cyBvdmVyLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgc3ByZWFkLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIHNheSA9IF8uc3ByZWFkKGZ1bmN0aW9uKHdobywgd2hhdCkge1xcbiAgICAgKiAgIHJldHVybiB3aG8gKyAnIHNheXMgJyArIHdoYXQ7XFxuICAgICAqIH0pO1xcbiAgICAgKlxcbiAgICAgKiBzYXkoWydmcmVkJywgJ2hlbGxvJ10pO1xcbiAgICAgKiAvLyA9PiAnZnJlZCBzYXlzIGhlbGxvJ1xcbiAgICAgKlxcbiAgICAgKiB2YXIgbnVtYmVycyA9IFByb21pc2UuYWxsKFtcXG4gICAgICogICBQcm9taXNlLnJlc29sdmUoNDApLFxcbiAgICAgKiAgIFByb21pc2UucmVzb2x2ZSgzNilcXG4gICAgICogXSk7XFxuICAgICAqXFxuICAgICAqIG51bWJlcnMudGhlbihfLnNwcmVhZChmdW5jdGlvbih4LCB5KSB7XFxuICAgICAqICAgcmV0dXJuIHggKyB5O1xcbiAgICAgKiB9KSk7XFxuICAgICAqIC8vID0+IGEgUHJvbWlzZSBvZiA3NlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc3ByZWFkKGZ1bmMsIHN0YXJ0KSB7XFxuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcXG4gICAgICB9XFxuICAgICAgc3RhcnQgPSBzdGFydCA9PSBudWxsID8gMCA6IG5hdGl2ZU1heCh0b0ludGVnZXIoc3RhcnQpLCAwKTtcXG4gICAgICByZXR1cm4gYmFzZVJlc3QoZnVuY3Rpb24oYXJncykge1xcbiAgICAgICAgdmFyIGFycmF5ID0gYXJnc1tzdGFydF0sXFxuICAgICAgICAgICAgb3RoZXJBcmdzID0gY2FzdFNsaWNlKGFyZ3MsIDAsIHN0YXJ0KTtcXG5cXG4gICAgICAgIGlmIChhcnJheSkge1xcbiAgICAgICAgICBhcnJheVB1c2gob3RoZXJBcmdzLCBhcnJheSk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gYXBwbHkoZnVuYywgdGhpcywgb3RoZXJBcmdzKTtcXG4gICAgICB9KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIHRocm90dGxlZCBmdW5jdGlvbiB0aGF0IG9ubHkgaW52b2tlcyBgZnVuY2AgYXQgbW9zdCBvbmNlIHBlclxcbiAgICAgKiBldmVyeSBgd2FpdGAgbWlsbGlzZWNvbmRzLiBUaGUgdGhyb3R0bGVkIGZ1bmN0aW9uIGNvbWVzIHdpdGggYSBgY2FuY2VsYFxcbiAgICAgKiBtZXRob2QgdG8gY2FuY2VsIGRlbGF5ZWQgYGZ1bmNgIGludm9jYXRpb25zIGFuZCBhIGBmbHVzaGAgbWV0aG9kIHRvXFxuICAgICAqIGltbWVkaWF0ZWx5IGludm9rZSB0aGVtLiBQcm92aWRlIGBvcHRpb25zYCB0byBpbmRpY2F0ZSB3aGV0aGVyIGBmdW5jYFxcbiAgICAgKiBzaG91bGQgYmUgaW52b2tlZCBvbiB0aGUgbGVhZGluZyBhbmQvb3IgdHJhaWxpbmcgZWRnZSBvZiB0aGUgYHdhaXRgXFxuICAgICAqIHRpbWVvdXQuIFRoZSBgZnVuY2AgaXMgaW52b2tlZCB3aXRoIHRoZSBsYXN0IGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGVcXG4gICAgICogdGhyb3R0bGVkIGZ1bmN0aW9uLiBTdWJzZXF1ZW50IGNhbGxzIHRvIHRoZSB0aHJvdHRsZWQgZnVuY3Rpb24gcmV0dXJuIHRoZVxcbiAgICAgKiByZXN1bHQgb2YgdGhlIGxhc3QgYGZ1bmNgIGludm9jYXRpb24uXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBJZiBgbGVhZGluZ2AgYW5kIGB0cmFpbGluZ2Agb3B0aW9ucyBhcmUgYHRydWVgLCBgZnVuY2AgaXNcXG4gICAgICogaW52b2tlZCBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSB0aHJvdHRsZWQgZnVuY3Rpb25cXG4gICAgICogaXMgaW52b2tlZCBtb3JlIHRoYW4gb25jZSBkdXJpbmcgdGhlIGB3YWl0YCB0aW1lb3V0LlxcbiAgICAgKlxcbiAgICAgKiBJZiBgd2FpdGAgaXMgYDBgIGFuZCBgbGVhZGluZ2AgaXMgYGZhbHNlYCwgYGZ1bmNgIGludm9jYXRpb24gaXMgZGVmZXJyZWRcXG4gICAgICogdW50aWwgdG8gdGhlIG5leHQgdGljaywgc2ltaWxhciB0byBgc2V0VGltZW91dGAgd2l0aCBhIHRpbWVvdXQgb2YgYDBgLlxcbiAgICAgKlxcbiAgICAgKiBTZWUgW0RhdmlkIENvcmJhY2hvJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9kZWJvdW5jaW5nLXRocm90dGxpbmctZXhwbGFpbmVkLWV4YW1wbGVzLylcXG4gICAgICogZm9yIGRldGFpbHMgb3ZlciB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBgXy50aHJvdHRsZWAgYW5kIGBfLmRlYm91bmNlYC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHRocm90dGxlLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3dhaXQ9MF0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gdGhyb3R0bGUgaW52b2NhdGlvbnMgdG8uXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlYWRpbmc9dHJ1ZV1cXG4gICAgICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIGxlYWRpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXVxcbiAgICAgKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgdGhyb3R0bGVkIGZ1bmN0aW9uLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiAvLyBBdm9pZCBleGNlc3NpdmVseSB1cGRhdGluZyB0aGUgcG9zaXRpb24gd2hpbGUgc2Nyb2xsaW5nLlxcbiAgICAgKiBqUXVlcnkod2luZG93KS5vbignc2Nyb2xsJywgXy50aHJvdHRsZSh1cGRhdGVQb3NpdGlvbiwgMTAwKSk7XFxuICAgICAqXFxuICAgICAqIC8vIEludm9rZSBgcmVuZXdUb2tlbmAgd2hlbiB0aGUgY2xpY2sgZXZlbnQgaXMgZmlyZWQsIGJ1dCBub3QgbW9yZSB0aGFuIG9uY2UgZXZlcnkgNSBtaW51dGVzLlxcbiAgICAgKiB2YXIgdGhyb3R0bGVkID0gXy50aHJvdHRsZShyZW5ld1Rva2VuLCAzMDAwMDAsIHsgJ3RyYWlsaW5nJzogZmFsc2UgfSk7XFxuICAgICAqIGpRdWVyeShlbGVtZW50KS5vbignY2xpY2snLCB0aHJvdHRsZWQpO1xcbiAgICAgKlxcbiAgICAgKiAvLyBDYW5jZWwgdGhlIHRyYWlsaW5nIHRocm90dGxlZCBpbnZvY2F0aW9uLlxcbiAgICAgKiBqUXVlcnkod2luZG93KS5vbigncG9wc3RhdGUnLCB0aHJvdHRsZWQuY2FuY2VsKTtcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHRocm90dGxlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcXG4gICAgICB2YXIgbGVhZGluZyA9IHRydWUsXFxuICAgICAgICAgIHRyYWlsaW5nID0gdHJ1ZTtcXG5cXG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xcbiAgICAgIH1cXG4gICAgICBpZiAoaXNPYmplY3Qob3B0aW9ucykpIHtcXG4gICAgICAgIGxlYWRpbmcgPSAnbGVhZGluZycgaW4gb3B0aW9ucyA/ICEhb3B0aW9ucy5sZWFkaW5nIDogbGVhZGluZztcXG4gICAgICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBkZWJvdW5jZShmdW5jLCB3YWl0LCB7XFxuICAgICAgICAnbGVhZGluZyc6IGxlYWRpbmcsXFxuICAgICAgICAnbWF4V2FpdCc6IHdhaXQsXFxuICAgICAgICAndHJhaWxpbmcnOiB0cmFpbGluZ1xcbiAgICAgIH0pO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHVwIHRvIG9uZSBhcmd1bWVudCwgaWdub3JpbmcgYW55XFxuICAgICAqIGFkZGl0aW9uYWwgYXJndW1lbnRzLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2FwIGFyZ3VtZW50cyBmb3IuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNhcHBlZCBmdW5jdGlvbi5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5tYXAoWyc2JywgJzgnLCAnMTAnXSwgXy51bmFyeShwYXJzZUludCkpO1xcbiAgICAgKiAvLyA9PiBbNiwgOCwgMTBdXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB1bmFyeShmdW5jKSB7XFxuICAgICAgcmV0dXJuIGFyeShmdW5jLCAxKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcHJvdmlkZXMgYHZhbHVlYCB0byBgd3JhcHBlcmAgYXMgaXRzIGZpcnN0XFxuICAgICAqIGFyZ3VtZW50LiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGZ1bmN0aW9uIGFyZSBhcHBlbmRlZFxcbiAgICAgKiB0byB0aG9zZSBwcm92aWRlZCB0byB0aGUgYHdyYXBwZXJgLiBUaGUgd3JhcHBlciBpcyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYFxcbiAgICAgKiBiaW5kaW5nIG9mIHRoZSBjcmVhdGVkIGZ1bmN0aW9uLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gd3JhcC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3dyYXBwZXI9aWRlbnRpdHldIFRoZSB3cmFwcGVyIGZ1bmN0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIHAgPSBfLndyYXAoXy5lc2NhcGUsIGZ1bmN0aW9uKGZ1bmMsIHRleHQpIHtcXG4gICAgICogICByZXR1cm4gJzxwPicgKyBmdW5jKHRleHQpICsgJzwvcD4nO1xcbiAgICAgKiB9KTtcXG4gICAgICpcXG4gICAgICogcCgnZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnKTtcXG4gICAgICogLy8gPT4gJzxwPmZyZWQsIGJhcm5leSwgJmFtcDsgcGViYmxlczwvcD4nXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB3cmFwKHZhbHVlLCB3cmFwcGVyKSB7XFxuICAgICAgcmV0dXJuIHBhcnRpYWwoY2FzdEZ1bmN0aW9uKHdyYXBwZXIpLCB2YWx1ZSk7XFxuICAgIH1cXG5cXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xcblxcbiAgICAvKipcXG4gICAgICogQ2FzdHMgYHZhbHVlYCBhcyBhbiBhcnJheSBpZiBpdCdzIG5vdCBvbmUuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuNC4wXFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgY2FzdCBhcnJheS5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5jYXN0QXJyYXkoMSk7XFxuICAgICAqIC8vID0+IFsxXVxcbiAgICAgKlxcbiAgICAgKiBfLmNhc3RBcnJheSh7ICdhJzogMSB9KTtcXG4gICAgICogLy8gPT4gW3sgJ2EnOiAxIH1dXFxuICAgICAqXFxuICAgICAqIF8uY2FzdEFycmF5KCdhYmMnKTtcXG4gICAgICogLy8gPT4gWydhYmMnXVxcbiAgICAgKlxcbiAgICAgKiBfLmNhc3RBcnJheShudWxsKTtcXG4gICAgICogLy8gPT4gW251bGxdXFxuICAgICAqXFxuICAgICAqIF8uY2FzdEFycmF5KHVuZGVmaW5lZCk7XFxuICAgICAqIC8vID0+IFt1bmRlZmluZWRdXFxuICAgICAqXFxuICAgICAqIF8uY2FzdEFycmF5KCk7XFxuICAgICAqIC8vID0+IFtdXFxuICAgICAqXFxuICAgICAqIHZhciBhcnJheSA9IFsxLCAyLCAzXTtcXG4gICAgICogY29uc29sZS5sb2coXy5jYXN0QXJyYXkoYXJyYXkpID09PSBhcnJheSk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNhc3RBcnJheSgpIHtcXG4gICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHtcXG4gICAgICAgIHJldHVybiBbXTtcXG4gICAgICB9XFxuICAgICAgdmFyIHZhbHVlID0gYXJndW1lbnRzWzBdO1xcbiAgICAgIHJldHVybiBpc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIHNoYWxsb3cgY2xvbmUgb2YgYHZhbHVlYC5cXG4gICAgICpcXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGxvb3NlbHkgYmFzZWQgb24gdGhlXFxuICAgICAqIFtzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobV0oaHR0cHM6Ly9tZG4uaW8vU3RydWN0dXJlZF9jbG9uZV9hbGdvcml0aG0pXFxuICAgICAqIGFuZCBzdXBwb3J0cyBjbG9uaW5nIGFycmF5cywgYXJyYXkgYnVmZmVycywgYm9vbGVhbnMsIGRhdGUgb2JqZWN0cywgbWFwcyxcXG4gICAgICogbnVtYmVycywgYE9iamVjdGAgb2JqZWN0cywgcmVnZXhlcywgc2V0cywgc3RyaW5ncywgc3ltYm9scywgYW5kIHR5cGVkXFxuICAgICAqIGFycmF5cy4gVGhlIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMgb2YgYGFyZ3VtZW50c2Agb2JqZWN0cyBhcmUgY2xvbmVkXFxuICAgICAqIGFzIHBsYWluIG9iamVjdHMuIEFuIGVtcHR5IG9iamVjdCBpcyByZXR1cm5lZCBmb3IgdW5jbG9uZWFibGUgdmFsdWVzIHN1Y2hcXG4gICAgICogYXMgZXJyb3Igb2JqZWN0cywgZnVuY3Rpb25zLCBET00gbm9kZXMsIGFuZCBXZWFrTWFwcy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2xvbmUuXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXFxuICAgICAqIEBzZWUgXy5jbG9uZURlZXBcXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAnYSc6IDEgfSwgeyAnYic6IDIgfV07XFxuICAgICAqXFxuICAgICAqIHZhciBzaGFsbG93ID0gXy5jbG9uZShvYmplY3RzKTtcXG4gICAgICogY29uc29sZS5sb2coc2hhbGxvd1swXSA9PT0gb2JqZWN0c1swXSk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNsb25lKHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgQ0xPTkVfU1lNQk9MU19GTEFHKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5jbG9uZWAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmAgd2hpY2hcXG4gICAgICogaXMgaW52b2tlZCB0byBwcm9kdWNlIHRoZSBjbG9uZWQgdmFsdWUuIElmIGBjdXN0b21pemVyYCByZXR1cm5zIGB1bmRlZmluZWRgLFxcbiAgICAgKiBjbG9uaW5nIGlzIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgIGlzIGludm9rZWQgd2l0aFxcbiAgICAgKiB1cCB0byBmb3VyIGFyZ3VtZW50czsgKHZhbHVlIFssIGluZGV4fGtleSwgb2JqZWN0LCBzdGFja10pLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY2xvbmluZy5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGNsb25lZCB2YWx1ZS5cXG4gICAgICogQHNlZSBfLmNsb25lRGVlcFdpdGhcXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gY3VzdG9taXplcih2YWx1ZSkge1xcbiAgICAgKiAgIGlmIChfLmlzRWxlbWVudCh2YWx1ZSkpIHtcXG4gICAgICogICAgIHJldHVybiB2YWx1ZS5jbG9uZU5vZGUoZmFsc2UpO1xcbiAgICAgKiAgIH1cXG4gICAgICogfVxcbiAgICAgKlxcbiAgICAgKiB2YXIgZWwgPSBfLmNsb25lV2l0aChkb2N1bWVudC5ib2R5LCBjdXN0b21pemVyKTtcXG4gICAgICpcXG4gICAgICogY29uc29sZS5sb2coZWwgPT09IGRvY3VtZW50LmJvZHkpO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKiBjb25zb2xlLmxvZyhlbC5ub2RlTmFtZSk7XFxuICAgICAqIC8vID0+ICdCT0RZJ1xcbiAgICAgKiBjb25zb2xlLmxvZyhlbC5jaGlsZE5vZGVzLmxlbmd0aCk7XFxuICAgICAqIC8vID0+IDBcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNsb25lV2l0aCh2YWx1ZSwgY3VzdG9taXplcikge1xcbiAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDtcXG4gICAgICByZXR1cm4gYmFzZUNsb25lKHZhbHVlLCBDTE9ORV9TWU1CT0xTX0ZMQUcsIGN1c3RvbWl6ZXIpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmNsb25lYCBleGNlcHQgdGhhdCBpdCByZWN1cnNpdmVseSBjbG9uZXMgYHZhbHVlYC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMS4wLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmVjdXJzaXZlbHkgY2xvbmUuXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBkZWVwIGNsb25lZCB2YWx1ZS5cXG4gICAgICogQHNlZSBfLmNsb25lXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ2EnOiAxIH0sIHsgJ2InOiAyIH1dO1xcbiAgICAgKlxcbiAgICAgKiB2YXIgZGVlcCA9IF8uY2xvbmVEZWVwKG9iamVjdHMpO1xcbiAgICAgKiBjb25zb2xlLmxvZyhkZWVwWzBdID09PSBvYmplY3RzWzBdKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNsb25lRGVlcCh2YWx1ZSkge1xcbiAgICAgIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIENMT05FX0RFRVBfRkxBRyB8IENMT05FX1NZTUJPTFNfRkxBRyk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uY2xvbmVXaXRoYCBleGNlcHQgdGhhdCBpdCByZWN1cnNpdmVseSBjbG9uZXMgYHZhbHVlYC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmVjdXJzaXZlbHkgY2xvbmUuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNsb25pbmcuXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBkZWVwIGNsb25lZCB2YWx1ZS5cXG4gICAgICogQHNlZSBfLmNsb25lV2l0aFxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBmdW5jdGlvbiBjdXN0b21pemVyKHZhbHVlKSB7XFxuICAgICAqICAgaWYgKF8uaXNFbGVtZW50KHZhbHVlKSkge1xcbiAgICAgKiAgICAgcmV0dXJuIHZhbHVlLmNsb25lTm9kZSh0cnVlKTtcXG4gICAgICogICB9XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogdmFyIGVsID0gXy5jbG9uZURlZXBXaXRoKGRvY3VtZW50LmJvZHksIGN1c3RvbWl6ZXIpO1xcbiAgICAgKlxcbiAgICAgKiBjb25zb2xlLmxvZyhlbCA9PT0gZG9jdW1lbnQuYm9keSk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqIGNvbnNvbGUubG9nKGVsLm5vZGVOYW1lKTtcXG4gICAgICogLy8gPT4gJ0JPRFknXFxuICAgICAqIGNvbnNvbGUubG9nKGVsLmNoaWxkTm9kZXMubGVuZ3RoKTtcXG4gICAgICogLy8gPT4gMjBcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNsb25lRGVlcFdpdGgodmFsdWUsIGN1c3RvbWl6ZXIpIHtcXG4gICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gJ2Z1bmN0aW9uJyA/IGN1c3RvbWl6ZXIgOiB1bmRlZmluZWQ7XFxuICAgICAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgQ0xPTkVfREVFUF9GTEFHIHwgQ0xPTkVfU1lNQk9MU19GTEFHLCBjdXN0b21pemVyKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGBvYmplY3RgIGNvbmZvcm1zIHRvIGBzb3VyY2VgIGJ5IGludm9raW5nIHRoZSBwcmVkaWNhdGVcXG4gICAgICogcHJvcGVydGllcyBvZiBgc291cmNlYCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IHZhbHVlcyBvZiBgb2JqZWN0YC5cXG4gICAgICpcXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gYF8uY29uZm9ybXNgIHdoZW4gYHNvdXJjZWAgaXNcXG4gICAgICogcGFydGlhbGx5IGFwcGxpZWQuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMTQuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHByZWRpY2F0ZXMgdG8gY29uZm9ybSB0by5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBvYmplY3RgIGNvbmZvcm1zLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAyIH07XFxuICAgICAqXFxuICAgICAqIF8uY29uZm9ybXNUbyhvYmplY3QsIHsgJ2InOiBmdW5jdGlvbihuKSB7IHJldHVybiBuID4gMTsgfSB9KTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmNvbmZvcm1zVG8ob2JqZWN0LCB7ICdiJzogZnVuY3Rpb24obikgeyByZXR1cm4gbiA+IDI7IH0gfSk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjb25mb3Jtc1RvKG9iamVjdCwgc291cmNlKSB7XFxuICAgICAgcmV0dXJuIHNvdXJjZSA9PSBudWxsIHx8IGJhc2VDb25mb3Jtc1RvKG9iamVjdCwgc291cmNlLCBrZXlzKHNvdXJjZSkpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBQZXJmb3JtcyBhXFxuICAgICAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXFxuICAgICAqIGNvbXBhcmlzb24gYmV0d2VlbiB0d28gdmFsdWVzIHRvIGRldGVybWluZSBpZiB0aGV5IGFyZSBlcXVpdmFsZW50LlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxcbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcXG4gICAgICogdmFyIG90aGVyID0geyAnYSc6IDEgfTtcXG4gICAgICpcXG4gICAgICogXy5lcShvYmplY3QsIG9iamVjdCk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5lcShvYmplY3QsIG90aGVyKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICpcXG4gICAgICogXy5lcSgnYScsICdhJyk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5lcSgnYScsIE9iamVjdCgnYScpKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICpcXG4gICAgICogXy5lcShOYU4sIE5hTik7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGVxKHZhbHVlLCBvdGhlcikge1xcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gb3RoZXIgfHwgKHZhbHVlICE9PSB2YWx1ZSAmJiBvdGhlciAhPT0gb3RoZXIpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBncmVhdGVyIHRoYW4gYG90aGVyYC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMy45LjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZ3JlYXRlciB0aGFuIGBvdGhlcmAsXFxuICAgICAqICBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBzZWUgXy5sdFxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmd0KDMsIDEpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uZ3QoMywgMyk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqXFxuICAgICAqIF8uZ3QoMSwgMyk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqL1xcbiAgICB2YXIgZ3QgPSBjcmVhdGVSZWxhdGlvbmFsT3BlcmF0aW9uKGJhc2VHdCk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYG90aGVyYC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMy45LjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvXFxuICAgICAqICBgb3RoZXJgLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBzZWUgXy5sdGVcXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5ndGUoMywgMSk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5ndGUoMywgMyk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5ndGUoMSwgMyk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqL1xcbiAgICB2YXIgZ3RlID0gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihmdW5jdGlvbih2YWx1ZSwgb3RoZXIpIHtcXG4gICAgICByZXR1cm4gdmFsdWUgPj0gb3RoZXI7XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGFuIGBhcmd1bWVudHNgIG9iamVjdC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGBhcmd1bWVudHNgIG9iamVjdCxcXG4gICAgICogIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pc0FyZ3VtZW50cyhmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzQXJndW1lbnRzKFsxLCAyLCAzXSk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqL1xcbiAgICB2YXIgaXNBcmd1bWVudHMgPSBiYXNlSXNBcmd1bWVudHMoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSkgPyBiYXNlSXNBcmd1bWVudHMgOiBmdW5jdGlvbih2YWx1ZSkge1xcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdjYWxsZWUnKSAmJlxcbiAgICAgICAgIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodmFsdWUsICdjYWxsZWUnKTtcXG4gICAgfTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYW4gYEFycmF5YCBvYmplY3QuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBhcnJheSwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzQXJyYXkoWzEsIDIsIDNdKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzQXJyYXkoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqXFxuICAgICAqIF8uaXNBcnJheSgnYWJjJyk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqXFxuICAgICAqIF8uaXNBcnJheShfLm5vb3ApO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKi9cXG4gICAgdmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhbiBgQXJyYXlCdWZmZXJgIG9iamVjdC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4zLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGFycmF5IGJ1ZmZlciwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzQXJyYXlCdWZmZXIobmV3IEFycmF5QnVmZmVyKDIpKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzQXJyYXlCdWZmZXIobmV3IEFycmF5KDIpKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIHZhciBpc0FycmF5QnVmZmVyID0gbm9kZUlzQXJyYXlCdWZmZXIgPyBiYXNlVW5hcnkobm9kZUlzQXJyYXlCdWZmZXIpIDogYmFzZUlzQXJyYXlCdWZmZXI7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLiBBIHZhbHVlIGlzIGNvbnNpZGVyZWQgYXJyYXktbGlrZSBpZiBpdCdzXFxuICAgICAqIG5vdCBhIGZ1bmN0aW9uIGFuZCBoYXMgYSBgdmFsdWUubGVuZ3RoYCB0aGF0J3MgYW4gaW50ZWdlciBncmVhdGVyIHRoYW4gb3JcXG4gICAgICogZXF1YWwgdG8gYDBgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYE51bWJlci5NQVhfU0FGRV9JTlRFR0VSYC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UsIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pc0FycmF5TGlrZShbMSwgMiwgM10pO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaXNBcnJheUxpa2UoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pc0FycmF5TGlrZSgnYWJjJyk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pc0FycmF5TGlrZShfLm5vb3ApO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaXNBcnJheUxpa2UodmFsdWUpIHtcXG4gICAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiBpc0xlbmd0aCh2YWx1ZS5sZW5ndGgpICYmICFpc0Z1bmN0aW9uKHZhbHVlKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pc0FycmF5TGlrZWAgZXhjZXB0IHRoYXQgaXQgYWxzbyBjaGVja3MgaWYgYHZhbHVlYFxcbiAgICAgKiBpcyBhbiBvYmplY3QuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBhcnJheS1saWtlIG9iamVjdCxcXG4gICAgICogIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pc0FycmF5TGlrZU9iamVjdChbMSwgMiwgM10pO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaXNBcnJheUxpa2VPYmplY3QoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pc0FycmF5TGlrZU9iamVjdCgnYWJjJyk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqXFxuICAgICAqIF8uaXNBcnJheUxpa2VPYmplY3QoXy5ub29wKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlzQXJyYXlMaWtlT2JqZWN0KHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaXNBcnJheUxpa2UodmFsdWUpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYm9vbGVhbiBwcmltaXRpdmUgb3Igb2JqZWN0LlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBib29sZWFuLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uaXNCb29sZWFuKGZhbHNlKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzQm9vbGVhbihudWxsKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlzQm9vbGVhbih2YWx1ZSkge1xcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2UgfHxcXG4gICAgICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IGJvb2xUYWcpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIGJ1ZmZlci5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4zLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgYnVmZmVyLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uaXNCdWZmZXIobmV3IEJ1ZmZlcigyKSk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pc0J1ZmZlcihuZXcgVWludDhBcnJheSgyKSk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqL1xcbiAgICB2YXIgaXNCdWZmZXIgPSBuYXRpdmVJc0J1ZmZlciB8fCBzdHViRmFsc2U7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYERhdGVgIG9iamVjdC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZGF0ZSBvYmplY3QsIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pc0RhdGUobmV3IERhdGUpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaXNEYXRlKCdNb24gQXByaWwgMjMgMjAxMicpO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKi9cXG4gICAgdmFyIGlzRGF0ZSA9IG5vZGVJc0RhdGUgPyBiYXNlVW5hcnkobm9kZUlzRGF0ZSkgOiBiYXNlSXNEYXRlO1xcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGEgRE9NIGVsZW1lbnQuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIERPTSBlbGVtZW50LCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uaXNFbGVtZW50KGRvY3VtZW50LmJvZHkpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaXNFbGVtZW50KCc8Ym9keT4nKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlzRWxlbWVudCh2YWx1ZSkge1xcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIHZhbHVlLm5vZGVUeXBlID09PSAxICYmICFpc1BsYWluT2JqZWN0KHZhbHVlKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYW4gZW1wdHkgb2JqZWN0LCBjb2xsZWN0aW9uLCBtYXAsIG9yIHNldC5cXG4gICAgICpcXG4gICAgICogT2JqZWN0cyBhcmUgY29uc2lkZXJlZCBlbXB0eSBpZiB0aGV5IGhhdmUgbm8gb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkXFxuICAgICAqIHByb3BlcnRpZXMuXFxuICAgICAqXFxuICAgICAqIEFycmF5LWxpa2UgdmFsdWVzIHN1Y2ggYXMgYGFyZ3VtZW50c2Agb2JqZWN0cywgYXJyYXlzLCBidWZmZXJzLCBzdHJpbmdzLCBvclxcbiAgICAgKiBqUXVlcnktbGlrZSBjb2xsZWN0aW9ucyBhcmUgY29uc2lkZXJlZCBlbXB0eSBpZiB0aGV5IGhhdmUgYSBgbGVuZ3RoYCBvZiBgMGAuXFxuICAgICAqIFNpbWlsYXJseSwgbWFwcyBhbmQgc2V0cyBhcmUgY29uc2lkZXJlZCBlbXB0eSBpZiB0aGV5IGhhdmUgYSBgc2l6ZWAgb2YgYDBgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZW1wdHksIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pc0VtcHR5KG51bGwpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaXNFbXB0eSh0cnVlKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzRW1wdHkoMSk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pc0VtcHR5KFsxLCAyLCAzXSk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqXFxuICAgICAqIF8uaXNFbXB0eSh7ICdhJzogMSB9KTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcXG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xcbiAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgfVxcbiAgICAgIGlmIChpc0FycmF5TGlrZSh2YWx1ZSkgJiZcXG4gICAgICAgICAgKGlzQXJyYXkodmFsdWUpIHx8IHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUuc3BsaWNlID09ICdmdW5jdGlvbicgfHxcXG4gICAgICAgICAgICBpc0J1ZmZlcih2YWx1ZSkgfHwgaXNUeXBlZEFycmF5KHZhbHVlKSB8fCBpc0FyZ3VtZW50cyh2YWx1ZSkpKSB7XFxuICAgICAgICByZXR1cm4gIXZhbHVlLmxlbmd0aDtcXG4gICAgICB9XFxuICAgICAgdmFyIHRhZyA9IGdldFRhZyh2YWx1ZSk7XFxuICAgICAgaWYgKHRhZyA9PSBtYXBUYWcgfHwgdGFnID09IHNldFRhZykge1xcbiAgICAgICAgcmV0dXJuICF2YWx1ZS5zaXplO1xcbiAgICAgIH1cXG4gICAgICBpZiAoaXNQcm90b3R5cGUodmFsdWUpKSB7XFxuICAgICAgICByZXR1cm4gIWJhc2VLZXlzKHZhbHVlKS5sZW5ndGg7XFxuICAgICAgfVxcbiAgICAgIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xcbiAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGtleSkpIHtcXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogUGVyZm9ybXMgYSBkZWVwIGNvbXBhcmlzb24gYmV0d2VlbiB0d28gdmFsdWVzIHRvIGRldGVybWluZSBpZiB0aGV5IGFyZVxcbiAgICAgKiBlcXVpdmFsZW50LlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2Qgc3VwcG9ydHMgY29tcGFyaW5nIGFycmF5cywgYXJyYXkgYnVmZmVycywgYm9vbGVhbnMsXFxuICAgICAqIGRhdGUgb2JqZWN0cywgZXJyb3Igb2JqZWN0cywgbWFwcywgbnVtYmVycywgYE9iamVjdGAgb2JqZWN0cywgcmVnZXhlcyxcXG4gICAgICogc2V0cywgc3RyaW5ncywgc3ltYm9scywgYW5kIHR5cGVkIGFycmF5cy4gYE9iamVjdGAgb2JqZWN0cyBhcmUgY29tcGFyZWRcXG4gICAgICogYnkgdGhlaXIgb3duLCBub3QgaW5oZXJpdGVkLCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuIEZ1bmN0aW9ucyBhbmQgRE9NXFxuICAgICAqIG5vZGVzIGFyZSBjb21wYXJlZCBieSBzdHJpY3QgZXF1YWxpdHksIGkuZS4gYD09PWAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXFxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSB9O1xcbiAgICAgKiB2YXIgb3RoZXIgPSB7ICdhJzogMSB9O1xcbiAgICAgKlxcbiAgICAgKiBfLmlzRXF1YWwob2JqZWN0LCBvdGhlcik7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogb2JqZWN0ID09PSBvdGhlcjtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlzRXF1YWwodmFsdWUsIG90aGVyKSB7XFxuICAgICAgcmV0dXJuIGJhc2VJc0VxdWFsKHZhbHVlLCBvdGhlcik7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uaXNFcXVhbGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmAgd2hpY2hcXG4gICAgICogaXMgaW52b2tlZCB0byBjb21wYXJlIHZhbHVlcy4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGAsIGNvbXBhcmlzb25zXFxuICAgICAqIGFyZSBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBpbnZva2VkIHdpdGggdXAgdG9cXG4gICAgICogc2l4IGFyZ3VtZW50czogKG9ialZhbHVlLCBvdGhWYWx1ZSBbLCBpbmRleHxrZXksIG9iamVjdCwgb3RoZXIsIHN0YWNrXSkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXFxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBmdW5jdGlvbiBpc0dyZWV0aW5nKHZhbHVlKSB7XFxuICAgICAqICAgcmV0dXJuIC9eaCg/Oml8ZWxsbykkLy50ZXN0KHZhbHVlKTtcXG4gICAgICogfVxcbiAgICAgKlxcbiAgICAgKiBmdW5jdGlvbiBjdXN0b21pemVyKG9ialZhbHVlLCBvdGhWYWx1ZSkge1xcbiAgICAgKiAgIGlmIChpc0dyZWV0aW5nKG9ialZhbHVlKSAmJiBpc0dyZWV0aW5nKG90aFZhbHVlKSkge1xcbiAgICAgKiAgICAgcmV0dXJuIHRydWU7XFxuICAgICAqICAgfVxcbiAgICAgKiB9XFxuICAgICAqXFxuICAgICAqIHZhciBhcnJheSA9IFsnaGVsbG8nLCAnZ29vZGJ5ZSddO1xcbiAgICAgKiB2YXIgb3RoZXIgPSBbJ2hpJywgJ2dvb2RieWUnXTtcXG4gICAgICpcXG4gICAgICogXy5pc0VxdWFsV2l0aChhcnJheSwgb3RoZXIsIGN1c3RvbWl6ZXIpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBpc0VxdWFsV2l0aCh2YWx1ZSwgb3RoZXIsIGN1c3RvbWl6ZXIpIHtcXG4gICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gJ2Z1bmN0aW9uJyA/IGN1c3RvbWl6ZXIgOiB1bmRlZmluZWQ7XFxuICAgICAgdmFyIHJlc3VsdCA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKHZhbHVlLCBvdGhlcikgOiB1bmRlZmluZWQ7XFxuICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gdW5kZWZpbmVkID8gYmFzZUlzRXF1YWwodmFsdWUsIG90aGVyLCB1bmRlZmluZWQsIGN1c3RvbWl6ZXIpIDogISFyZXN1bHQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFuIGBFcnJvcmAsIGBFdmFsRXJyb3JgLCBgUmFuZ2VFcnJvcmAsIGBSZWZlcmVuY2VFcnJvcmAsXFxuICAgICAqIGBTeW50YXhFcnJvcmAsIGBUeXBlRXJyb3JgLCBvciBgVVJJRXJyb3JgIG9iamVjdC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMy4wLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGVycm9yIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzRXJyb3IobmV3IEVycm9yKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzRXJyb3IoRXJyb3IpO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaXNFcnJvcih2YWx1ZSkge1xcbiAgICAgIGlmICghaXNPYmplY3RMaWtlKHZhbHVlKSkge1xcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgIH1cXG4gICAgICB2YXIgdGFnID0gYmFzZUdldFRhZyh2YWx1ZSk7XFxuICAgICAgcmV0dXJuIHRhZyA9PSBlcnJvclRhZyB8fCB0YWcgPT0gZG9tRXhjVGFnIHx8XFxuICAgICAgICAodHlwZW9mIHZhbHVlLm1lc3NhZ2UgPT0gJ3N0cmluZycgJiYgdHlwZW9mIHZhbHVlLm5hbWUgPT0gJ3N0cmluZycgJiYgIWlzUGxhaW5PYmplY3QodmFsdWUpKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBmaW5pdGUgcHJpbWl0aXZlIG51bWJlci5cXG4gICAgICpcXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGJhc2VkIG9uXFxuICAgICAqIFtgTnVtYmVyLmlzRmluaXRlYF0oaHR0cHM6Ly9tZG4uaW8vTnVtYmVyL2lzRmluaXRlKS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZmluaXRlIG51bWJlciwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzRmluaXRlKDMpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaXNGaW5pdGUoTnVtYmVyLk1JTl9WQUxVRSk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pc0Zpbml0ZShJbmZpbml0eSk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqXFxuICAgICAqIF8uaXNGaW5pdGUoJzMnKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlzRmluaXRlKHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyAmJiBuYXRpdmVJc0Zpbml0ZSh2YWx1ZSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgRnVuY3Rpb25gIG9iamVjdC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZnVuY3Rpb24sIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pc0Z1bmN0aW9uKF8pO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaXNGdW5jdGlvbigvYWJjLyk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlKSB7XFxuICAgICAgaWYgKCFpc09iamVjdCh2YWx1ZSkpIHtcXG4gICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICB9XFxuICAgICAgLy8gVGhlIHVzZSBvZiBgT2JqZWN0I3RvU3RyaW5nYCBhdm9pZHMgaXNzdWVzIHdpdGggdGhlIGB0eXBlb2ZgIG9wZXJhdG9yXFxuICAgICAgLy8gaW4gU2FmYXJpIDkgd2hpY2ggcmV0dXJucyAnb2JqZWN0JyBmb3IgdHlwZWQgYXJyYXlzIGFuZCBvdGhlciBjb25zdHJ1Y3RvcnMuXFxuICAgICAgdmFyIHRhZyA9IGJhc2VHZXRUYWcodmFsdWUpO1xcbiAgICAgIHJldHVybiB0YWcgPT0gZnVuY1RhZyB8fCB0YWcgPT0gZ2VuVGFnIHx8IHRhZyA9PSBhc3luY1RhZyB8fCB0YWcgPT0gcHJveHlUYWc7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFuIGludGVnZXIuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvblxcbiAgICAgKiBbYE51bWJlci5pc0ludGVnZXJgXShodHRwczovL21kbi5pby9OdW1iZXIvaXNJbnRlZ2VyKS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGludGVnZXIsIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pc0ludGVnZXIoMyk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pc0ludGVnZXIoTnVtYmVyLk1JTl9WQUxVRSk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqXFxuICAgICAqIF8uaXNJbnRlZ2VyKEluZmluaXR5KTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICpcXG4gICAgICogXy5pc0ludGVnZXIoJzMnKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlzSW50ZWdlcih2YWx1ZSkge1xcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiYgdmFsdWUgPT0gdG9JbnRlZ2VyKHZhbHVlKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGxlbmd0aC5cXG4gICAgICpcXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGxvb3NlbHkgYmFzZWQgb25cXG4gICAgICogW2BUb0xlbmd0aGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRvbGVuZ3RoKS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgbGVuZ3RoLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uaXNMZW5ndGgoMyk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pc0xlbmd0aChOdW1iZXIuTUlOX1ZBTFVFKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICpcXG4gICAgICogXy5pc0xlbmd0aChJbmZpbml0eSk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqXFxuICAgICAqIF8uaXNMZW5ndGgoJzMnKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyAmJlxcbiAgICAgICAgdmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8PSBNQVhfU0FGRV9JTlRFR0VSO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcXG4gICAgICogW2xhbmd1YWdlIHR5cGVdKGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1lY21hc2NyaXB0LWxhbmd1YWdlLXR5cGVzKVxcbiAgICAgKiBvZiBgT2JqZWN0YC4gKGUuZy4gYXJyYXlzLCBmdW5jdGlvbnMsIG9iamVjdHMsIHJlZ2V4ZXMsIGBuZXcgTnVtYmVyKDApYCwgYW5kIGBuZXcgU3RyaW5nKCcnKWApXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pc09iamVjdCh7fSk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pc09iamVjdChbMSwgMiwgM10pO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaXNPYmplY3QoXy5ub29wKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzT2JqZWN0KG51bGwpO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcXG4gICAgICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcXG4gICAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiAodHlwZSA9PSAnb2JqZWN0JyB8fCB0eXBlID09ICdmdW5jdGlvbicpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcXG4gICAgICogYW5kIGhhcyBhIGB0eXBlb2ZgIHJlc3VsdCBvZiBcXFwib2JqZWN0XFxcIi5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uaXNPYmplY3RMaWtlKHt9KTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzT2JqZWN0TGlrZShbMSwgMiwgM10pO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaXNPYmplY3RMaWtlKF8ubm9vcCk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqXFxuICAgICAqIF8uaXNPYmplY3RMaWtlKG51bGwpO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYE1hcGAgb2JqZWN0LlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjMuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBtYXAsIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pc01hcChuZXcgTWFwKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzTWFwKG5ldyBXZWFrTWFwKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIHZhciBpc01hcCA9IG5vZGVJc01hcCA/IGJhc2VVbmFyeShub2RlSXNNYXApIDogYmFzZUlzTWFwO1xcblxcbiAgICAvKipcXG4gICAgICogUGVyZm9ybXMgYSBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbiBiZXR3ZWVuIGBvYmplY3RgIGFuZCBgc291cmNlYCB0b1xcbiAgICAgKiBkZXRlcm1pbmUgaWYgYG9iamVjdGAgY29udGFpbnMgZXF1aXZhbGVudCBwcm9wZXJ0eSB2YWx1ZXMuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIGBfLm1hdGNoZXNgIHdoZW4gYHNvdXJjZWAgaXNcXG4gICAgICogcGFydGlhbGx5IGFwcGxpZWQuXFxuICAgICAqXFxuICAgICAqIFBhcnRpYWwgY29tcGFyaXNvbnMgd2lsbCBtYXRjaCBlbXB0eSBhcnJheSBhbmQgZW1wdHkgb2JqZWN0IGBzb3VyY2VgXFxuICAgICAqIHZhbHVlcyBhZ2FpbnN0IGFueSBhcnJheSBvciBvYmplY3QgdmFsdWUsIHJlc3BlY3RpdmVseS4gU2VlIGBfLmlzRXF1YWxgXFxuICAgICAqIGZvciBhIGxpc3Qgb2Ygc3VwcG9ydGVkIHZhbHVlIGNvbXBhcmlzb25zLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBvYmplY3RgIGlzIGEgbWF0Y2gsIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6IDIgfTtcXG4gICAgICpcXG4gICAgICogXy5pc01hdGNoKG9iamVjdCwgeyAnYic6IDIgfSk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pc01hdGNoKG9iamVjdCwgeyAnYic6IDEgfSk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBpc01hdGNoKG9iamVjdCwgc291cmNlKSB7XFxuICAgICAgcmV0dXJuIG9iamVjdCA9PT0gc291cmNlIHx8IGJhc2VJc01hdGNoKG9iamVjdCwgc291cmNlLCBnZXRNYXRjaERhdGEoc291cmNlKSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uaXNNYXRjaGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmAgd2hpY2hcXG4gICAgICogaXMgaW52b2tlZCB0byBjb21wYXJlIHZhbHVlcy4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGAsIGNvbXBhcmlzb25zXFxuICAgICAqIGFyZSBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBpbnZva2VkIHdpdGggZml2ZVxcbiAgICAgKiBhcmd1bWVudHM6IChvYmpWYWx1ZSwgc3JjVmFsdWUsIGluZGV4fGtleSwgb2JqZWN0LCBzb3VyY2UpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqZWN0YCBpcyBhIG1hdGNoLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIGlzR3JlZXRpbmcodmFsdWUpIHtcXG4gICAgICogICByZXR1cm4gL15oKD86aXxlbGxvKSQvLnRlc3QodmFsdWUpO1xcbiAgICAgKiB9XFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlKSB7XFxuICAgICAqICAgaWYgKGlzR3JlZXRpbmcob2JqVmFsdWUpICYmIGlzR3JlZXRpbmcoc3JjVmFsdWUpKSB7XFxuICAgICAqICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgICogICB9XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2dyZWV0aW5nJzogJ2hlbGxvJyB9O1xcbiAgICAgKiB2YXIgc291cmNlID0geyAnZ3JlZXRpbmcnOiAnaGknIH07XFxuICAgICAqXFxuICAgICAqIF8uaXNNYXRjaFdpdGgob2JqZWN0LCBzb3VyY2UsIGN1c3RvbWl6ZXIpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBpc01hdGNoV2l0aChvYmplY3QsIHNvdXJjZSwgY3VzdG9taXplcikge1xcbiAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDtcXG4gICAgICByZXR1cm4gYmFzZUlzTWF0Y2gob2JqZWN0LCBzb3VyY2UsIGdldE1hdGNoRGF0YShzb3VyY2UpLCBjdXN0b21pemVyKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYE5hTmAuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvblxcbiAgICAgKiBbYE51bWJlci5pc05hTmBdKGh0dHBzOi8vbWRuLmlvL051bWJlci9pc05hTikgYW5kIGlzIG5vdCB0aGUgc2FtZSBhc1xcbiAgICAgKiBnbG9iYWwgW2Bpc05hTmBdKGh0dHBzOi8vbWRuLmlvL2lzTmFOKSB3aGljaCByZXR1cm5zIGB0cnVlYCBmb3JcXG4gICAgICogYHVuZGVmaW5lZGAgYW5kIG90aGVyIG5vbi1udW1iZXIgdmFsdWVzLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYE5hTmAsIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pc05hTihOYU4pO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaXNOYU4obmV3IE51bWJlcihOYU4pKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBpc05hTih1bmRlZmluZWQpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaXNOYU4odW5kZWZpbmVkKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlzTmFOKHZhbHVlKSB7XFxuICAgICAgLy8gQW4gYE5hTmAgcHJpbWl0aXZlIGlzIHRoZSBvbmx5IHZhbHVlIHRoYXQgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi5cXG4gICAgICAvLyBQZXJmb3JtIHRoZSBgdG9TdHJpbmdUYWdgIGNoZWNrIGZpcnN0IHRvIGF2b2lkIGVycm9ycyB3aXRoIHNvbWVcXG4gICAgICAvLyBBY3RpdmVYIG9iamVjdHMgaW4gSUUuXFxuICAgICAgcmV0dXJuIGlzTnVtYmVyKHZhbHVlKSAmJiB2YWx1ZSAhPSArdmFsdWU7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgcHJpc3RpbmUgbmF0aXZlIGZ1bmN0aW9uLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgY2FuJ3QgcmVsaWFibHkgZGV0ZWN0IG5hdGl2ZSBmdW5jdGlvbnMgaW4gdGhlIHByZXNlbmNlXFxuICAgICAqIG9mIHRoZSBjb3JlLWpzIHBhY2thZ2UgYmVjYXVzZSBjb3JlLWpzIGNpcmN1bXZlbnRzIHRoaXMga2luZCBvZiBkZXRlY3Rpb24uXFxuICAgICAqIERlc3BpdGUgbXVsdGlwbGUgcmVxdWVzdHMsIHRoZSBjb3JlLWpzIG1haW50YWluZXIgaGFzIG1hZGUgaXQgY2xlYXI6IGFueVxcbiAgICAgKiBhdHRlbXB0IHRvIGZpeCB0aGUgZGV0ZWN0aW9uIHdpbGwgYmUgb2JzdHJ1Y3RlZC4gQXMgYSByZXN1bHQsIHdlJ3JlIGxlZnRcXG4gICAgICogd2l0aCBsaXR0bGUgY2hvaWNlIGJ1dCB0byB0aHJvdyBhbiBlcnJvci4gVW5mb3J0dW5hdGVseSwgdGhpcyBhbHNvIGFmZmVjdHNcXG4gICAgICogcGFja2FnZXMsIGxpa2UgW2JhYmVsLXBvbHlmaWxsXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9iYWJlbC1wb2x5ZmlsbCksXFxuICAgICAqIHdoaWNoIHJlbHkgb24gY29yZS1qcy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMy4wLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbmF0aXZlIGZ1bmN0aW9uLFxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzTmF0aXZlKEFycmF5LnByb3RvdHlwZS5wdXNoKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzTmF0aXZlKF8pO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaXNOYXRpdmUodmFsdWUpIHtcXG4gICAgICBpZiAoaXNNYXNrYWJsZSh2YWx1ZSkpIHtcXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihDT1JFX0VSUk9SX1RFWFQpO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gYmFzZUlzTmF0aXZlKHZhbHVlKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYG51bGxgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYG51bGxgLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uaXNOdWxsKG51bGwpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaXNOdWxsKHZvaWQgMCk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBpc051bGwodmFsdWUpIHtcXG4gICAgICByZXR1cm4gdmFsdWUgPT09IG51bGw7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGBudWxsYCBvciBgdW5kZWZpbmVkYC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIG51bGxpc2gsIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pc05pbChudWxsKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzTmlsKHZvaWQgMCk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pc05pbChOYU4pO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaXNOaWwodmFsdWUpIHtcXG4gICAgICByZXR1cm4gdmFsdWUgPT0gbnVsbDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBOdW1iZXJgIHByaW1pdGl2ZSBvciBvYmplY3QuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUbyBleGNsdWRlIGBJbmZpbml0eWAsIGAtSW5maW5pdHlgLCBhbmQgYE5hTmAsIHdoaWNoIGFyZVxcbiAgICAgKiBjbGFzc2lmaWVkIGFzIG51bWJlcnMsIHVzZSB0aGUgYF8uaXNGaW5pdGVgIG1ldGhvZC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbnVtYmVyLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uaXNOdW1iZXIoMyk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pc051bWJlcihOdW1iZXIuTUlOX1ZBTFVFKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzTnVtYmVyKEluZmluaXR5KTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzTnVtYmVyKCczJyk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBpc051bWJlcih2YWx1ZSkge1xcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgfHxcXG4gICAgICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IG51bWJlclRhZyk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCB0aGF0IGlzLCBhbiBvYmplY3QgY3JlYXRlZCBieSB0aGVcXG4gICAgICogYE9iamVjdGAgY29uc3RydWN0b3Igb3Igb25lIHdpdGggYSBgW1tQcm90b3R5cGVdXWAgb2YgYG51bGxgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjguMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xcbiAgICAgKiAgIHRoaXMuYSA9IDE7XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogXy5pc1BsYWluT2JqZWN0KG5ldyBGb28pO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzUGxhaW5PYmplY3QoWzEsIDIsIDNdKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICpcXG4gICAgICogXy5pc1BsYWluT2JqZWN0KHsgJ3gnOiAwLCAneSc6IDAgfSk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pc1BsYWluT2JqZWN0KE9iamVjdC5jcmVhdGUobnVsbCkpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBpc1BsYWluT2JqZWN0KHZhbHVlKSB7XFxuICAgICAgaWYgKCFpc09iamVjdExpa2UodmFsdWUpIHx8IGJhc2VHZXRUYWcodmFsdWUpICE9IG9iamVjdFRhZykge1xcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgIH1cXG4gICAgICB2YXIgcHJvdG8gPSBnZXRQcm90b3R5cGUodmFsdWUpO1xcbiAgICAgIGlmIChwcm90byA9PT0gbnVsbCkge1xcbiAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgfVxcbiAgICAgIHZhciBDdG9yID0gaGFzT3duUHJvcGVydHkuY2FsbChwcm90bywgJ2NvbnN0cnVjdG9yJykgJiYgcHJvdG8uY29uc3RydWN0b3I7XFxuICAgICAgcmV0dXJuIHR5cGVvZiBDdG9yID09ICdmdW5jdGlvbicgJiYgQ3RvciBpbnN0YW5jZW9mIEN0b3IgJiZcXG4gICAgICAgIGZ1bmNUb1N0cmluZy5jYWxsKEN0b3IpID09IG9iamVjdEN0b3JTdHJpbmc7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgUmVnRXhwYCBvYmplY3QuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHJlZ2V4cCwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzUmVnRXhwKC9hYmMvKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzUmVnRXhwKCcvYWJjLycpO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKi9cXG4gICAgdmFyIGlzUmVnRXhwID0gbm9kZUlzUmVnRXhwID8gYmFzZVVuYXJ5KG5vZGVJc1JlZ0V4cCkgOiBiYXNlSXNSZWdFeHA7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHNhZmUgaW50ZWdlci4gQW4gaW50ZWdlciBpcyBzYWZlIGlmIGl0J3MgYW4gSUVFRS03NTRcXG4gICAgICogZG91YmxlIHByZWNpc2lvbiBudW1iZXIgd2hpY2ggaXNuJ3QgdGhlIHJlc3VsdCBvZiBhIHJvdW5kZWQgdW5zYWZlIGludGVnZXIuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvblxcbiAgICAgKiBbYE51bWJlci5pc1NhZmVJbnRlZ2VyYF0oaHR0cHM6Ly9tZG4uaW8vTnVtYmVyL2lzU2FmZUludGVnZXIpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzYWZlIGludGVnZXIsIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pc1NhZmVJbnRlZ2VyKDMpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaXNTYWZlSW50ZWdlcihOdW1iZXIuTUlOX1ZBTFVFKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICpcXG4gICAgICogXy5pc1NhZmVJbnRlZ2VyKEluZmluaXR5KTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICpcXG4gICAgICogXy5pc1NhZmVJbnRlZ2VyKCczJyk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBpc1NhZmVJbnRlZ2VyKHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIGlzSW50ZWdlcih2YWx1ZSkgJiYgdmFsdWUgPj0gLU1BWF9TQUZFX0lOVEVHRVIgJiYgdmFsdWUgPD0gTUFYX1NBRkVfSU5URUdFUjtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTZXRgIG9iamVjdC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4zLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc2V0LCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uaXNTZXQobmV3IFNldCk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pc1NldChuZXcgV2Vha1NldCk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqL1xcbiAgICB2YXIgaXNTZXQgPSBub2RlSXNTZXQgPyBiYXNlVW5hcnkobm9kZUlzU2V0KSA6IGJhc2VJc1NldDtcXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3RyaW5nYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzdHJpbmcsIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pc1N0cmluZygnYWJjJyk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pc1N0cmluZygxKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyB8fFxcbiAgICAgICAgKCFpc0FycmF5KHZhbHVlKSAmJiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHN0cmluZ1RhZyk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzeW1ib2wsIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pc1N5bWJvbChTeW1ib2wuaXRlcmF0b3IpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaXNTeW1ib2woJ2FiYycpO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaXNTeW1ib2wodmFsdWUpIHtcXG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzeW1ib2wnIHx8XFxuICAgICAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgdHlwZWQgYXJyYXkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHR5cGVkIGFycmF5LCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uaXNUeXBlZEFycmF5KG5ldyBVaW50OEFycmF5KTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzVHlwZWRBcnJheShbXSk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqL1xcbiAgICB2YXIgaXNUeXBlZEFycmF5ID0gbm9kZUlzVHlwZWRBcnJheSA/IGJhc2VVbmFyeShub2RlSXNUeXBlZEFycmF5KSA6IGJhc2VJc1R5cGVkQXJyYXk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBgdW5kZWZpbmVkYC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGB1bmRlZmluZWRgLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uaXNVbmRlZmluZWQodm9pZCAwKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzVW5kZWZpbmVkKG51bGwpO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaXNVbmRlZmluZWQodmFsdWUpIHtcXG4gICAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBXZWFrTWFwYCBvYmplY3QuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMy4wXFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHdlYWsgbWFwLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uaXNXZWFrTWFwKG5ldyBXZWFrTWFwKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzV2Vha01hcChuZXcgTWFwKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlzV2Vha01hcCh2YWx1ZSkge1xcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGdldFRhZyh2YWx1ZSkgPT0gd2Vha01hcFRhZztcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBXZWFrU2V0YCBvYmplY3QuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMy4wXFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHdlYWsgc2V0LCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uaXNXZWFrU2V0KG5ldyBXZWFrU2V0KTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmlzV2Vha1NldChuZXcgU2V0KTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlzV2Vha1NldCh2YWx1ZSkge1xcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHdlYWtTZXRUYWc7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGxlc3MgdGhhbiBgb3RoZXJgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjkuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxcbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBsZXNzIHRoYW4gYG90aGVyYCxcXG4gICAgICogIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQHNlZSBfLmd0XFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8ubHQoMSwgMyk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5sdCgzLCAzKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICpcXG4gICAgICogXy5sdCgzLCAxKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIHZhciBsdCA9IGNyZWF0ZVJlbGF0aW9uYWxPcGVyYXRpb24oYmFzZUx0KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byBgb3RoZXJgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjkuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxcbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG9cXG4gICAgICogIGBvdGhlcmAsIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQHNlZSBfLmd0ZVxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmx0ZSgxLCAzKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmx0ZSgzLCAzKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmx0ZSgzLCAxKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIHZhciBsdGUgPSBjcmVhdGVSZWxhdGlvbmFsT3BlcmF0aW9uKGZ1bmN0aW9uKHZhbHVlLCBvdGhlcikge1xcbiAgICAgIHJldHVybiB2YWx1ZSA8PSBvdGhlcjtcXG4gICAgfSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGFuIGFycmF5LlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBhcnJheS5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy50b0FycmF5KHsgJ2EnOiAxLCAnYic6IDIgfSk7XFxuICAgICAqIC8vID0+IFsxLCAyXVxcbiAgICAgKlxcbiAgICAgKiBfLnRvQXJyYXkoJ2FiYycpO1xcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYicsICdjJ11cXG4gICAgICpcXG4gICAgICogXy50b0FycmF5KDEpO1xcbiAgICAgKiAvLyA9PiBbXVxcbiAgICAgKlxcbiAgICAgKiBfLnRvQXJyYXkobnVsbCk7XFxuICAgICAqIC8vID0+IFtdXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB0b0FycmF5KHZhbHVlKSB7XFxuICAgICAgaWYgKCF2YWx1ZSkge1xcbiAgICAgICAgcmV0dXJuIFtdO1xcbiAgICAgIH1cXG4gICAgICBpZiAoaXNBcnJheUxpa2UodmFsdWUpKSB7XFxuICAgICAgICByZXR1cm4gaXNTdHJpbmcodmFsdWUpID8gc3RyaW5nVG9BcnJheSh2YWx1ZSkgOiBjb3B5QXJyYXkodmFsdWUpO1xcbiAgICAgIH1cXG4gICAgICBpZiAoc3ltSXRlcmF0b3IgJiYgdmFsdWVbc3ltSXRlcmF0b3JdKSB7XFxuICAgICAgICByZXR1cm4gaXRlcmF0b3JUb0FycmF5KHZhbHVlW3N5bUl0ZXJhdG9yXSgpKTtcXG4gICAgICB9XFxuICAgICAgdmFyIHRhZyA9IGdldFRhZyh2YWx1ZSksXFxuICAgICAgICAgIGZ1bmMgPSB0YWcgPT0gbWFwVGFnID8gbWFwVG9BcnJheSA6ICh0YWcgPT0gc2V0VGFnID8gc2V0VG9BcnJheSA6IHZhbHVlcyk7XFxuXFxuICAgICAgcmV0dXJuIGZ1bmModmFsdWUpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgZmluaXRlIG51bWJlci5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4xMi4wXFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBudW1iZXIuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8udG9GaW5pdGUoMy4yKTtcXG4gICAgICogLy8gPT4gMy4yXFxuICAgICAqXFxuICAgICAqIF8udG9GaW5pdGUoTnVtYmVyLk1JTl9WQUxVRSk7XFxuICAgICAqIC8vID0+IDVlLTMyNFxcbiAgICAgKlxcbiAgICAgKiBfLnRvRmluaXRlKEluZmluaXR5KTtcXG4gICAgICogLy8gPT4gMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDhcXG4gICAgICpcXG4gICAgICogXy50b0Zpbml0ZSgnMy4yJyk7XFxuICAgICAqIC8vID0+IDMuMlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gdG9GaW5pdGUodmFsdWUpIHtcXG4gICAgICBpZiAoIXZhbHVlKSB7XFxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IDAgPyB2YWx1ZSA6IDA7XFxuICAgICAgfVxcbiAgICAgIHZhbHVlID0gdG9OdW1iZXIodmFsdWUpO1xcbiAgICAgIGlmICh2YWx1ZSA9PT0gSU5GSU5JVFkgfHwgdmFsdWUgPT09IC1JTkZJTklUWSkge1xcbiAgICAgICAgdmFyIHNpZ24gPSAodmFsdWUgPCAwID8gLTEgOiAxKTtcXG4gICAgICAgIHJldHVybiBzaWduICogTUFYX0lOVEVHRVI7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgPyB2YWx1ZSA6IDA7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYW4gaW50ZWdlci5cXG4gICAgICpcXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGxvb3NlbHkgYmFzZWQgb25cXG4gICAgICogW2BUb0ludGVnZXJgXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdG9pbnRlZ2VyKS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY29udmVydGVkIGludGVnZXIuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8udG9JbnRlZ2VyKDMuMik7XFxuICAgICAqIC8vID0+IDNcXG4gICAgICpcXG4gICAgICogXy50b0ludGVnZXIoTnVtYmVyLk1JTl9WQUxVRSk7XFxuICAgICAqIC8vID0+IDBcXG4gICAgICpcXG4gICAgICogXy50b0ludGVnZXIoSW5maW5pdHkpO1xcbiAgICAgKiAvLyA9PiAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOFxcbiAgICAgKlxcbiAgICAgKiBfLnRvSW50ZWdlcignMy4yJyk7XFxuICAgICAqIC8vID0+IDNcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHRvSW50ZWdlcih2YWx1ZSkge1xcbiAgICAgIHZhciByZXN1bHQgPSB0b0Zpbml0ZSh2YWx1ZSksXFxuICAgICAgICAgIHJlbWFpbmRlciA9IHJlc3VsdCAlIDE7XFxuXFxuICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gcmVzdWx0ID8gKHJlbWFpbmRlciA/IHJlc3VsdCAtIHJlbWFpbmRlciA6IHJlc3VsdCkgOiAwO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGFuIGludGVnZXIgc3VpdGFibGUgZm9yIHVzZSBhcyB0aGUgbGVuZ3RoIG9mIGFuXFxuICAgICAqIGFycmF5LWxpa2Ugb2JqZWN0LlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cXG4gICAgICogW2BUb0xlbmd0aGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRvbGVuZ3RoKS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY29udmVydGVkIGludGVnZXIuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8udG9MZW5ndGgoMy4yKTtcXG4gICAgICogLy8gPT4gM1xcbiAgICAgKlxcbiAgICAgKiBfLnRvTGVuZ3RoKE51bWJlci5NSU5fVkFMVUUpO1xcbiAgICAgKiAvLyA9PiAwXFxuICAgICAqXFxuICAgICAqIF8udG9MZW5ndGgoSW5maW5pdHkpO1xcbiAgICAgKiAvLyA9PiA0Mjk0OTY3Mjk1XFxuICAgICAqXFxuICAgICAqIF8udG9MZW5ndGgoJzMuMicpO1xcbiAgICAgKiAvLyA9PiAzXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB0b0xlbmd0aCh2YWx1ZSkge1xcbiAgICAgIHJldHVybiB2YWx1ZSA/IGJhc2VDbGFtcCh0b0ludGVnZXIodmFsdWUpLCAwLCBNQVhfQVJSQVlfTEVOR1RIKSA6IDA7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBudW1iZXIuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIG51bWJlci5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy50b051bWJlcigzLjIpO1xcbiAgICAgKiAvLyA9PiAzLjJcXG4gICAgICpcXG4gICAgICogXy50b051bWJlcihOdW1iZXIuTUlOX1ZBTFVFKTtcXG4gICAgICogLy8gPT4gNWUtMzI0XFxuICAgICAqXFxuICAgICAqIF8udG9OdW1iZXIoSW5maW5pdHkpO1xcbiAgICAgKiAvLyA9PiBJbmZpbml0eVxcbiAgICAgKlxcbiAgICAgKiBfLnRvTnVtYmVyKCczLjInKTtcXG4gICAgICogLy8gPT4gMy4yXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB0b051bWJlcih2YWx1ZSkge1xcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicpIHtcXG4gICAgICAgIHJldHVybiB2YWx1ZTtcXG4gICAgICB9XFxuICAgICAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xcbiAgICAgICAgcmV0dXJuIE5BTjtcXG4gICAgICB9XFxuICAgICAgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xcbiAgICAgICAgdmFyIG90aGVyID0gdHlwZW9mIHZhbHVlLnZhbHVlT2YgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlLnZhbHVlT2YoKSA6IHZhbHVlO1xcbiAgICAgICAgdmFsdWUgPSBpc09iamVjdChvdGhlcikgPyAob3RoZXIgKyAnJykgOiBvdGhlcjtcXG4gICAgICB9XFxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykge1xcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSAwID8gdmFsdWUgOiArdmFsdWU7XFxuICAgICAgfVxcbiAgICAgIHZhbHVlID0gYmFzZVRyaW0odmFsdWUpO1xcbiAgICAgIHZhciBpc0JpbmFyeSA9IHJlSXNCaW5hcnkudGVzdCh2YWx1ZSk7XFxuICAgICAgcmV0dXJuIChpc0JpbmFyeSB8fCByZUlzT2N0YWwudGVzdCh2YWx1ZSkpXFxuICAgICAgICA/IGZyZWVQYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgaXNCaW5hcnkgPyAyIDogOClcXG4gICAgICAgIDogKHJlSXNCYWRIZXgudGVzdCh2YWx1ZSkgPyBOQU4gOiArdmFsdWUpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgcGxhaW4gb2JqZWN0IGZsYXR0ZW5pbmcgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nXFxuICAgICAqIGtleWVkIHByb3BlcnRpZXMgb2YgYHZhbHVlYCB0byBvd24gcHJvcGVydGllcyBvZiB0aGUgcGxhaW4gb2JqZWN0LlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgcGxhaW4gb2JqZWN0LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XFxuICAgICAqICAgdGhpcy5iID0gMjtcXG4gICAgICogfVxcbiAgICAgKlxcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xcbiAgICAgKlxcbiAgICAgKiBfLmFzc2lnbih7ICdhJzogMSB9LCBuZXcgRm9vKTtcXG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XFxuICAgICAqXFxuICAgICAqIF8uYXNzaWduKHsgJ2EnOiAxIH0sIF8udG9QbGFpbk9iamVjdChuZXcgRm9vKSk7XFxuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMyB9XFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB0b1BsYWluT2JqZWN0KHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIGNvcHlPYmplY3QodmFsdWUsIGtleXNJbih2YWx1ZSkpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc2FmZSBpbnRlZ2VyLiBBIHNhZmUgaW50ZWdlciBjYW4gYmUgY29tcGFyZWQgYW5kXFxuICAgICAqIHJlcHJlc2VudGVkIGNvcnJlY3RseS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY29udmVydGVkIGludGVnZXIuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8udG9TYWZlSW50ZWdlcigzLjIpO1xcbiAgICAgKiAvLyA9PiAzXFxuICAgICAqXFxuICAgICAqIF8udG9TYWZlSW50ZWdlcihOdW1iZXIuTUlOX1ZBTFVFKTtcXG4gICAgICogLy8gPT4gMFxcbiAgICAgKlxcbiAgICAgKiBfLnRvU2FmZUludGVnZXIoSW5maW5pdHkpO1xcbiAgICAgKiAvLyA9PiA5MDA3MTk5MjU0NzQwOTkxXFxuICAgICAqXFxuICAgICAqIF8udG9TYWZlSW50ZWdlcignMy4yJyk7XFxuICAgICAqIC8vID0+IDNcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHRvU2FmZUludGVnZXIodmFsdWUpIHtcXG4gICAgICByZXR1cm4gdmFsdWVcXG4gICAgICAgID8gYmFzZUNsYW1wKHRvSW50ZWdlcih2YWx1ZSksIC1NQVhfU0FGRV9JTlRFR0VSLCBNQVhfU0FGRV9JTlRFR0VSKVxcbiAgICAgICAgOiAodmFsdWUgPT09IDAgPyB2YWx1ZSA6IDApO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nLiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgZm9yIGBudWxsYFxcbiAgICAgKiBhbmQgYHVuZGVmaW5lZGAgdmFsdWVzLiBUaGUgc2lnbiBvZiBgLTBgIGlzIHByZXNlcnZlZC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IExhbmdcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy50b1N0cmluZyhudWxsKTtcXG4gICAgICogLy8gPT4gJydcXG4gICAgICpcXG4gICAgICogXy50b1N0cmluZygtMCk7XFxuICAgICAqIC8vID0+ICctMCdcXG4gICAgICpcXG4gICAgICogXy50b1N0cmluZyhbMSwgMiwgM10pO1xcbiAgICAgKiAvLyA9PiAnMSwyLDMnXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB0b1N0cmluZyh2YWx1ZSkge1xcbiAgICAgIHJldHVybiB2YWx1ZSA9PSBudWxsID8gJycgOiBiYXNlVG9TdHJpbmcodmFsdWUpO1xcbiAgICB9XFxuXFxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cXG5cXG4gICAgLyoqXFxuICAgICAqIEFzc2lnbnMgb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2Ygc291cmNlIG9iamVjdHMgdG8gdGhlXFxuICAgICAqIGRlc3RpbmF0aW9uIG9iamVjdC4gU291cmNlIG9iamVjdHMgYXJlIGFwcGxpZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0LlxcbiAgICAgKiBTdWJzZXF1ZW50IHNvdXJjZXMgb3ZlcndyaXRlIHByb3BlcnR5IGFzc2lnbm1lbnRzIG9mIHByZXZpb3VzIHNvdXJjZXMuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgIGFuZCBpcyBsb29zZWx5IGJhc2VkIG9uXFxuICAgICAqIFtgT2JqZWN0LmFzc2lnbmBdKGh0dHBzOi8vbWRuLmlvL09iamVjdC9hc3NpZ24pLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjEwLjBcXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXFxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxcbiAgICAgKiBAc2VlIF8uYXNzaWduSW5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xcbiAgICAgKiAgIHRoaXMuYSA9IDE7XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gQmFyKCkge1xcbiAgICAgKiAgIHRoaXMuYyA9IDM7XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogRm9vLnByb3RvdHlwZS5iID0gMjtcXG4gICAgICogQmFyLnByb3RvdHlwZS5kID0gNDtcXG4gICAgICpcXG4gICAgICogXy5hc3NpZ24oeyAnYSc6IDAgfSwgbmV3IEZvbywgbmV3IEJhcik7XFxuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYyc6IDMgfVxcbiAgICAgKi9cXG4gICAgdmFyIGFzc2lnbiA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlKSB7XFxuICAgICAgaWYgKGlzUHJvdG90eXBlKHNvdXJjZSkgfHwgaXNBcnJheUxpa2Uoc291cmNlKSkge1xcbiAgICAgICAgY29weU9iamVjdChzb3VyY2UsIGtleXMoc291cmNlKSwgb2JqZWN0KTtcXG4gICAgICAgIHJldHVybjtcXG4gICAgICB9XFxuICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xcbiAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XFxuICAgICAgICAgIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBzb3VyY2Vba2V5XSk7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uYXNzaWduYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIG93biBhbmRcXG4gICAgICogaW5oZXJpdGVkIHNvdXJjZSBwcm9wZXJ0aWVzLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGFsaWFzIGV4dGVuZFxcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXFxuICAgICAqIEBzZWUgXy5hc3NpZ25cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xcbiAgICAgKiAgIHRoaXMuYSA9IDE7XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gQmFyKCkge1xcbiAgICAgKiAgIHRoaXMuYyA9IDM7XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogRm9vLnByb3RvdHlwZS5iID0gMjtcXG4gICAgICogQmFyLnByb3RvdHlwZS5kID0gNDtcXG4gICAgICpcXG4gICAgICogXy5hc3NpZ25Jbih7ICdhJzogMCB9LCBuZXcgRm9vLCBuZXcgQmFyKTtcXG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiwgJ2MnOiAzLCAnZCc6IDQgfVxcbiAgICAgKi9cXG4gICAgdmFyIGFzc2lnbkluID0gY3JlYXRlQXNzaWduZXIoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2UpIHtcXG4gICAgICBjb3B5T2JqZWN0KHNvdXJjZSwga2V5c0luKHNvdXJjZSksIG9iamVjdCk7XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5hc3NpZ25JbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmBcXG4gICAgICogd2hpY2ggaXMgaW52b2tlZCB0byBwcm9kdWNlIHRoZSBhc3NpZ25lZCB2YWx1ZXMuIElmIGBjdXN0b21pemVyYCByZXR1cm5zXFxuICAgICAqIGB1bmRlZmluZWRgLCBhc3NpZ25tZW50IGlzIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgXFxuICAgICAqIGlzIGludm9rZWQgd2l0aCBmaXZlIGFyZ3VtZW50czogKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5LCBvYmplY3QsIHNvdXJjZSkuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAYWxpYXMgZXh0ZW5kV2l0aFxcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IHNvdXJjZXMgVGhlIHNvdXJjZSBvYmplY3RzLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBhc3NpZ25lZCB2YWx1ZXMuXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXFxuICAgICAqIEBzZWUgXy5hc3NpZ25XaXRoXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlKSB7XFxuICAgICAqICAgcmV0dXJuIF8uaXNVbmRlZmluZWQob2JqVmFsdWUpID8gc3JjVmFsdWUgOiBvYmpWYWx1ZTtcXG4gICAgICogfVxcbiAgICAgKlxcbiAgICAgKiB2YXIgZGVmYXVsdHMgPSBfLnBhcnRpYWxSaWdodChfLmFzc2lnbkluV2l0aCwgY3VzdG9taXplcik7XFxuICAgICAqXFxuICAgICAqIGRlZmF1bHRzKHsgJ2EnOiAxIH0sIHsgJ2InOiAyIH0sIHsgJ2EnOiAzIH0pO1xcbiAgICAgKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyIH1cXG4gICAgICovXFxuICAgIHZhciBhc3NpZ25JbldpdGggPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpIHtcXG4gICAgICBjb3B5T2JqZWN0KHNvdXJjZSwga2V5c0luKHNvdXJjZSksIG9iamVjdCwgY3VzdG9taXplcik7XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5hc3NpZ25gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgXFxuICAgICAqIHdoaWNoIGlzIGludm9rZWQgdG8gcHJvZHVjZSB0aGUgYXNzaWduZWQgdmFsdWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJuc1xcbiAgICAgKiBgdW5kZWZpbmVkYCwgYXNzaWdubWVudCBpcyBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYFxcbiAgICAgKiBpcyBpbnZva2VkIHdpdGggZml2ZSBhcmd1bWVudHM6IChvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UpLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXFxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBzb3VyY2VzIFRoZSBzb3VyY2Ugb2JqZWN0cy5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxcbiAgICAgKiBAc2VlIF8uYXNzaWduSW5XaXRoXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlKSB7XFxuICAgICAqICAgcmV0dXJuIF8uaXNVbmRlZmluZWQob2JqVmFsdWUpID8gc3JjVmFsdWUgOiBvYmpWYWx1ZTtcXG4gICAgICogfVxcbiAgICAgKlxcbiAgICAgKiB2YXIgZGVmYXVsdHMgPSBfLnBhcnRpYWxSaWdodChfLmFzc2lnbldpdGgsIGN1c3RvbWl6ZXIpO1xcbiAgICAgKlxcbiAgICAgKiBkZWZhdWx0cyh7ICdhJzogMSB9LCB7ICdiJzogMiB9LCB7ICdhJzogMyB9KTtcXG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XFxuICAgICAqL1xcbiAgICB2YXIgYXNzaWduV2l0aCA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplcikge1xcbiAgICAgIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzKHNvdXJjZSksIG9iamVjdCwgY3VzdG9taXplcik7XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB2YWx1ZXMgY29ycmVzcG9uZGluZyB0byBgcGF0aHNgIG9mIGBvYmplY3RgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAxLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7Li4uKHN0cmluZ3xzdHJpbmdbXSl9IFtwYXRoc10gVGhlIHByb3BlcnR5IHBhdGhzIHRvIHBpY2suXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcGlja2VkIHZhbHVlcy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiAzIH0gfSwgNF0gfTtcXG4gICAgICpcXG4gICAgICogXy5hdChvYmplY3QsIFsnYVswXS5iLmMnLCAnYVsxXSddKTtcXG4gICAgICogLy8gPT4gWzMsIDRdXFxuICAgICAqL1xcbiAgICB2YXIgYXQgPSBmbGF0UmVzdChiYXNlQXQpO1xcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgdGhhdCBpbmhlcml0cyBmcm9tIHRoZSBgcHJvdG90eXBlYCBvYmplY3QuIElmIGFcXG4gICAgICogYHByb3BlcnRpZXNgIG9iamVjdCBpcyBnaXZlbiwgaXRzIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzXFxuICAgICAqIGFyZSBhc3NpZ25lZCB0byB0aGUgY3JlYXRlZCBvYmplY3QuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDIuMy4wXFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHByb3RvdHlwZSBUaGUgb2JqZWN0IHRvIGluaGVyaXQgZnJvbS5cXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtwcm9wZXJ0aWVzXSBUaGUgcHJvcGVydGllcyB0byBhc3NpZ24gdG8gdGhlIG9iamVjdC5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gU2hhcGUoKSB7XFxuICAgICAqICAgdGhpcy54ID0gMDtcXG4gICAgICogICB0aGlzLnkgPSAwO1xcbiAgICAgKiB9XFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIENpcmNsZSgpIHtcXG4gICAgICogICBTaGFwZS5jYWxsKHRoaXMpO1xcbiAgICAgKiB9XFxuICAgICAqXFxuICAgICAqIENpcmNsZS5wcm90b3R5cGUgPSBfLmNyZWF0ZShTaGFwZS5wcm90b3R5cGUsIHtcXG4gICAgICogICAnY29uc3RydWN0b3InOiBDaXJjbGVcXG4gICAgICogfSk7XFxuICAgICAqXFxuICAgICAqIHZhciBjaXJjbGUgPSBuZXcgQ2lyY2xlO1xcbiAgICAgKiBjaXJjbGUgaW5zdGFuY2VvZiBDaXJjbGU7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogY2lyY2xlIGluc3RhbmNlb2YgU2hhcGU7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNyZWF0ZShwcm90b3R5cGUsIHByb3BlcnRpZXMpIHtcXG4gICAgICB2YXIgcmVzdWx0ID0gYmFzZUNyZWF0ZShwcm90b3R5cGUpO1xcbiAgICAgIHJldHVybiBwcm9wZXJ0aWVzID09IG51bGwgPyByZXN1bHQgOiBiYXNlQXNzaWduKHJlc3VsdCwgcHJvcGVydGllcyk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEFzc2lnbnMgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyBvZiBzb3VyY2VcXG4gICAgICogb2JqZWN0cyB0byB0aGUgZGVzdGluYXRpb24gb2JqZWN0IGZvciBhbGwgZGVzdGluYXRpb24gcHJvcGVydGllcyB0aGF0XFxuICAgICAqIHJlc29sdmUgdG8gYHVuZGVmaW5lZGAuIFNvdXJjZSBvYmplY3RzIGFyZSBhcHBsaWVkIGZyb20gbGVmdCB0byByaWdodC5cXG4gICAgICogT25jZSBhIHByb3BlcnR5IGlzIHNldCwgYWRkaXRpb25hbCB2YWx1ZXMgb2YgdGhlIHNhbWUgcHJvcGVydHkgYXJlIGlnbm9yZWQuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXFxuICAgICAqIEBzZWUgXy5kZWZhdWx0c0RlZXBcXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5kZWZhdWx0cyh7ICdhJzogMSB9LCB7ICdiJzogMiB9LCB7ICdhJzogMyB9KTtcXG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XFxuICAgICAqL1xcbiAgICB2YXIgZGVmYXVsdHMgPSBiYXNlUmVzdChmdW5jdGlvbihvYmplY3QsIHNvdXJjZXMpIHtcXG4gICAgICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcXG5cXG4gICAgICB2YXIgaW5kZXggPSAtMTtcXG4gICAgICB2YXIgbGVuZ3RoID0gc291cmNlcy5sZW5ndGg7XFxuICAgICAgdmFyIGd1YXJkID0gbGVuZ3RoID4gMiA/IHNvdXJjZXNbMl0gOiB1bmRlZmluZWQ7XFxuXFxuICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHNvdXJjZXNbMF0sIHNvdXJjZXNbMV0sIGd1YXJkKSkge1xcbiAgICAgICAgbGVuZ3RoID0gMTtcXG4gICAgICB9XFxuXFxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICAgIHZhciBzb3VyY2UgPSBzb3VyY2VzW2luZGV4XTtcXG4gICAgICAgIHZhciBwcm9wcyA9IGtleXNJbihzb3VyY2UpO1xcbiAgICAgICAgdmFyIHByb3BzSW5kZXggPSAtMTtcXG4gICAgICAgIHZhciBwcm9wc0xlbmd0aCA9IHByb3BzLmxlbmd0aDtcXG5cXG4gICAgICAgIHdoaWxlICgrK3Byb3BzSW5kZXggPCBwcm9wc0xlbmd0aCkge1xcbiAgICAgICAgICB2YXIga2V5ID0gcHJvcHNbcHJvcHNJbmRleF07XFxuICAgICAgICAgIHZhciB2YWx1ZSA9IG9iamVjdFtrZXldO1xcblxcbiAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fFxcbiAgICAgICAgICAgICAgKGVxKHZhbHVlLCBvYmplY3RQcm90b1trZXldKSAmJiAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSB7XFxuICAgICAgICAgICAgb2JqZWN0W2tleV0gPSBzb3VyY2Vba2V5XTtcXG4gICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgIH1cXG5cXG4gICAgICByZXR1cm4gb2JqZWN0O1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZGVmYXVsdHNgIGV4Y2VwdCB0aGF0IGl0IHJlY3Vyc2l2ZWx5IGFzc2lnbnNcXG4gICAgICogZGVmYXVsdCBwcm9wZXJ0aWVzLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMy4xMC4wXFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxcbiAgICAgKiBAcGFyYW0gey4uLk9iamVjdH0gW3NvdXJjZXNdIFRoZSBzb3VyY2Ugb2JqZWN0cy5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cXG4gICAgICogQHNlZSBfLmRlZmF1bHRzXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uZGVmYXVsdHNEZWVwKHsgJ2EnOiB7ICdiJzogMiB9IH0sIHsgJ2EnOiB7ICdiJzogMSwgJ2MnOiAzIH0gfSk7XFxuICAgICAqIC8vID0+IHsgJ2EnOiB7ICdiJzogMiwgJ2MnOiAzIH0gfVxcbiAgICAgKi9cXG4gICAgdmFyIGRlZmF1bHRzRGVlcCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFyZ3MpIHtcXG4gICAgICBhcmdzLnB1c2godW5kZWZpbmVkLCBjdXN0b21EZWZhdWx0c01lcmdlKTtcXG4gICAgICByZXR1cm4gYXBwbHkobWVyZ2VXaXRoLCB1bmRlZmluZWQsIGFyZ3MpO1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmluZGAgZXhjZXB0IHRoYXQgaXQgcmV0dXJucyB0aGUga2V5IG9mIHRoZSBmaXJzdFxcbiAgICAgKiBlbGVtZW50IGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5IGZvciBpbnN0ZWFkIG9mIHRoZSBlbGVtZW50IGl0c2VsZi5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMS4xLjBcXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfHVuZGVmaW5lZH0gUmV0dXJucyB0aGUga2V5IG9mIHRoZSBtYXRjaGVkIGVsZW1lbnQsXFxuICAgICAqICBlbHNlIGB1bmRlZmluZWRgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgdXNlcnMgPSB7XFxuICAgICAqICAgJ2Jhcm5leSc6ICB7ICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSxcXG4gICAgICogICAnZnJlZCc6ICAgIHsgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfSxcXG4gICAgICogICAncGViYmxlcyc6IHsgJ2FnZSc6IDEsICAnYWN0aXZlJzogdHJ1ZSB9XFxuICAgICAqIH07XFxuICAgICAqXFxuICAgICAqIF8uZmluZEtleSh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gby5hZ2UgPCA0MDsgfSk7XFxuICAgICAqIC8vID0+ICdiYXJuZXknIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uZmluZEtleSh1c2VycywgeyAnYWdlJzogMSwgJ2FjdGl2ZSc6IHRydWUgfSk7XFxuICAgICAqIC8vID0+ICdwZWJibGVzJ1xcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uZmluZEtleSh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xcbiAgICAgKiAvLyA9PiAnZnJlZCdcXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uZmluZEtleSh1c2VycywgJ2FjdGl2ZScpO1xcbiAgICAgKiAvLyA9PiAnYmFybmV5J1xcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZmluZEtleShvYmplY3QsIHByZWRpY2F0ZSkge1xcbiAgICAgIHJldHVybiBiYXNlRmluZEtleShvYmplY3QsIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGJhc2VGb3JPd24pO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZpbmRLZXlgIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2ZcXG4gICAgICogYSBjb2xsZWN0aW9uIGluIHRoZSBvcHBvc2l0ZSBvcmRlci5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMi4wLjBcXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfHVuZGVmaW5lZH0gUmV0dXJucyB0aGUga2V5IG9mIHRoZSBtYXRjaGVkIGVsZW1lbnQsXFxuICAgICAqICBlbHNlIGB1bmRlZmluZWRgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgdXNlcnMgPSB7XFxuICAgICAqICAgJ2Jhcm5leSc6ICB7ICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSxcXG4gICAgICogICAnZnJlZCc6ICAgIHsgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfSxcXG4gICAgICogICAncGViYmxlcyc6IHsgJ2FnZSc6IDEsICAnYWN0aXZlJzogdHJ1ZSB9XFxuICAgICAqIH07XFxuICAgICAqXFxuICAgICAqIF8uZmluZExhc3RLZXkodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8uYWdlIDwgNDA7IH0pO1xcbiAgICAgKiAvLyA9PiByZXR1cm5zICdwZWJibGVzJyBhc3N1bWluZyBgXy5maW5kS2V5YCByZXR1cm5zICdiYXJuZXknXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uZmluZExhc3RLZXkodXNlcnMsIHsgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9KTtcXG4gICAgICogLy8gPT4gJ2Jhcm5leSdcXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLmZpbmRMYXN0S2V5KHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XFxuICAgICAqIC8vID0+ICdmcmVkJ1xcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy5maW5kTGFzdEtleSh1c2VycywgJ2FjdGl2ZScpO1xcbiAgICAgKiAvLyA9PiAncGViYmxlcydcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGZpbmRMYXN0S2V5KG9iamVjdCwgcHJlZGljYXRlKSB7XFxuICAgICAgcmV0dXJuIGJhc2VGaW5kS2V5KG9iamVjdCwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgYmFzZUZvck93blJpZ2h0KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogSXRlcmF0ZXMgb3ZlciBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIG9mIGFuXFxuICAgICAqIG9iamVjdCBhbmQgaW52b2tlcyBgaXRlcmF0ZWVgIGZvciBlYWNoIHByb3BlcnR5LiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZFxcbiAgICAgKiB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBrZXksIG9iamVjdCkuIEl0ZXJhdGVlIGZ1bmN0aW9ucyBtYXkgZXhpdFxcbiAgICAgKiBpdGVyYXRpb24gZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC4zLjBcXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cXG4gICAgICogQHNlZSBfLmZvckluUmlnaHRcXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xcbiAgICAgKiAgIHRoaXMuYSA9IDE7XFxuICAgICAqICAgdGhpcy5iID0gMjtcXG4gICAgICogfVxcbiAgICAgKlxcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xcbiAgICAgKlxcbiAgICAgKiBfLmZvckluKG5ldyBGb28sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcXG4gICAgICogICBjb25zb2xlLmxvZyhrZXkpO1xcbiAgICAgKiB9KTtcXG4gICAgICogLy8gPT4gTG9ncyAnYScsICdiJywgdGhlbiAnYycgKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZCkuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBmb3JJbihvYmplY3QsIGl0ZXJhdGVlKSB7XFxuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsXFxuICAgICAgICA/IG9iamVjdFxcbiAgICAgICAgOiBiYXNlRm9yKG9iamVjdCwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpLCBrZXlzSW4pO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZvckluYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIHByb3BlcnRpZXMgb2ZcXG4gICAgICogYG9iamVjdGAgaW4gdGhlIG9wcG9zaXRlIG9yZGVyLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAyLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxcbiAgICAgKiBAc2VlIF8uZm9ySW5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xcbiAgICAgKiAgIHRoaXMuYSA9IDE7XFxuICAgICAqICAgdGhpcy5iID0gMjtcXG4gICAgICogfVxcbiAgICAgKlxcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xcbiAgICAgKlxcbiAgICAgKiBfLmZvckluUmlnaHQobmV3IEZvbywgZnVuY3Rpb24odmFsdWUsIGtleSkge1xcbiAgICAgKiAgIGNvbnNvbGUubG9nKGtleSk7XFxuICAgICAqIH0pO1xcbiAgICAgKiAvLyA9PiBMb2dzICdjJywgJ2InLCB0aGVuICdhJyBhc3N1bWluZyBgXy5mb3JJbmAgbG9ncyAnYScsICdiJywgdGhlbiAnYycuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBmb3JJblJpZ2h0KG9iamVjdCwgaXRlcmF0ZWUpIHtcXG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGxcXG4gICAgICAgID8gb2JqZWN0XFxuICAgICAgICA6IGJhc2VGb3JSaWdodChvYmplY3QsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAzKSwga2V5c0luKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogSXRlcmF0ZXMgb3ZlciBvd24gZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyBvZiBhbiBvYmplY3QgYW5kXFxuICAgICAqIGludm9rZXMgYGl0ZXJhdGVlYCBmb3IgZWFjaCBwcm9wZXJ0eS4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCB0aHJlZVxcbiAgICAgKiBhcmd1bWVudHM6ICh2YWx1ZSwga2V5LCBvYmplY3QpLiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXQgaXRlcmF0aW9uXFxuICAgICAqIGVhcmx5IGJ5IGV4cGxpY2l0bHkgcmV0dXJuaW5nIGBmYWxzZWAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuMy4wXFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXFxuICAgICAqIEBzZWUgXy5mb3JPd25SaWdodFxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XFxuICAgICAqICAgdGhpcy5hID0gMTtcXG4gICAgICogICB0aGlzLmIgPSAyO1xcbiAgICAgKiB9XFxuICAgICAqXFxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XFxuICAgICAqXFxuICAgICAqIF8uZm9yT3duKG5ldyBGb28sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcXG4gICAgICogICBjb25zb2xlLmxvZyhrZXkpO1xcbiAgICAgKiB9KTtcXG4gICAgICogLy8gPT4gTG9ncyAnYScgdGhlbiAnYicgKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZCkuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBmb3JPd24ob2JqZWN0LCBpdGVyYXRlZSkge1xcbiAgICAgIHJldHVybiBvYmplY3QgJiYgYmFzZUZvck93bihvYmplY3QsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAzKSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZm9yT3duYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIHByb3BlcnRpZXMgb2ZcXG4gICAgICogYG9iamVjdGAgaW4gdGhlIG9wcG9zaXRlIG9yZGVyLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAyLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxcbiAgICAgKiBAc2VlIF8uZm9yT3duXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcXG4gICAgICogICB0aGlzLmEgPSAxO1xcbiAgICAgKiAgIHRoaXMuYiA9IDI7XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcXG4gICAgICpcXG4gICAgICogXy5mb3JPd25SaWdodChuZXcgRm9vLCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7XFxuICAgICAqICAgY29uc29sZS5sb2coa2V5KTtcXG4gICAgICogfSk7XFxuICAgICAqIC8vID0+IExvZ3MgJ2InIHRoZW4gJ2EnIGFzc3VtaW5nIGBfLmZvck93bmAgbG9ncyAnYScgdGhlbiAnYicuXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBmb3JPd25SaWdodChvYmplY3QsIGl0ZXJhdGVlKSB7XFxuICAgICAgcmV0dXJuIG9iamVjdCAmJiBiYXNlRm9yT3duUmlnaHQob2JqZWN0LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMykpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGZ1bmN0aW9uIHByb3BlcnR5IG5hbWVzIGZyb20gb3duIGVudW1lcmFibGUgcHJvcGVydGllc1xcbiAgICAgKiBvZiBgb2JqZWN0YC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBuYW1lcy5cXG4gICAgICogQHNlZSBfLmZ1bmN0aW9uc0luXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcXG4gICAgICogICB0aGlzLmEgPSBfLmNvbnN0YW50KCdhJyk7XFxuICAgICAqICAgdGhpcy5iID0gXy5jb25zdGFudCgnYicpO1xcbiAgICAgKiB9XFxuICAgICAqXFxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IF8uY29uc3RhbnQoJ2MnKTtcXG4gICAgICpcXG4gICAgICogXy5mdW5jdGlvbnMobmV3IEZvbyk7XFxuICAgICAqIC8vID0+IFsnYScsICdiJ11cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGZ1bmN0aW9ucyhvYmplY3QpIHtcXG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBbXSA6IGJhc2VGdW5jdGlvbnMob2JqZWN0LCBrZXlzKG9iamVjdCkpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGZ1bmN0aW9uIHByb3BlcnR5IG5hbWVzIGZyb20gb3duIGFuZCBpbmhlcml0ZWRcXG4gICAgICogZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mIGBvYmplY3RgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGZ1bmN0aW9uIG5hbWVzLlxcbiAgICAgKiBAc2VlIF8uZnVuY3Rpb25zXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcXG4gICAgICogICB0aGlzLmEgPSBfLmNvbnN0YW50KCdhJyk7XFxuICAgICAqICAgdGhpcy5iID0gXy5jb25zdGFudCgnYicpO1xcbiAgICAgKiB9XFxuICAgICAqXFxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IF8uY29uc3RhbnQoJ2MnKTtcXG4gICAgICpcXG4gICAgICogXy5mdW5jdGlvbnNJbihuZXcgRm9vKTtcXG4gICAgICogLy8gPT4gWydhJywgJ2InLCAnYyddXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBmdW5jdGlvbnNJbihvYmplY3QpIHtcXG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBbXSA6IGJhc2VGdW5jdGlvbnMob2JqZWN0LCBrZXlzSW4ob2JqZWN0KSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEdldHMgdGhlIHZhbHVlIGF0IGBwYXRoYCBvZiBgb2JqZWN0YC4gSWYgdGhlIHJlc29sdmVkIHZhbHVlIGlzXFxuICAgICAqIGB1bmRlZmluZWRgLCB0aGUgYGRlZmF1bHRWYWx1ZWAgaXMgcmV0dXJuZWQgaW4gaXRzIHBsYWNlLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjcuMFxcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cXG4gICAgICogQHBhcmFtIHsqfSBbZGVmYXVsdFZhbHVlXSBUaGUgdmFsdWUgcmV0dXJuZWQgZm9yIGB1bmRlZmluZWRgIHJlc29sdmVkIHZhbHVlcy5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IDMgfSB9XSB9O1xcbiAgICAgKlxcbiAgICAgKiBfLmdldChvYmplY3QsICdhWzBdLmIuYycpO1xcbiAgICAgKiAvLyA9PiAzXFxuICAgICAqXFxuICAgICAqIF8uZ2V0KG9iamVjdCwgWydhJywgJzAnLCAnYicsICdjJ10pO1xcbiAgICAgKiAvLyA9PiAzXFxuICAgICAqXFxuICAgICAqIF8uZ2V0KG9iamVjdCwgJ2EuYi5jJywgJ2RlZmF1bHQnKTtcXG4gICAgICogLy8gPT4gJ2RlZmF1bHQnXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBnZXQob2JqZWN0LCBwYXRoLCBkZWZhdWx0VmFsdWUpIHtcXG4gICAgICB2YXIgcmVzdWx0ID0gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBiYXNlR2V0KG9iamVjdCwgcGF0aCk7XFxuICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gdW5kZWZpbmVkID8gZGVmYXVsdFZhbHVlIDogcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHBhdGhgIGlzIGEgZGlyZWN0IHByb3BlcnR5IG9mIGBvYmplY3RgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgcGF0aGAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogeyAnYic6IDIgfSB9O1xcbiAgICAgKiB2YXIgb3RoZXIgPSBfLmNyZWF0ZSh7ICdhJzogXy5jcmVhdGUoeyAnYic6IDIgfSkgfSk7XFxuICAgICAqXFxuICAgICAqIF8uaGFzKG9iamVjdCwgJ2EnKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmhhcyhvYmplY3QsICdhLmInKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmhhcyhvYmplY3QsIFsnYScsICdiJ10pO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaGFzKG90aGVyLCAnYScpO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaGFzKG9iamVjdCwgcGF0aCkge1xcbiAgICAgIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBoYXNQYXRoKG9iamVjdCwgcGF0aCwgYmFzZUhhcyk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgcGF0aGAgaXMgYSBkaXJlY3Qgb3IgaW5oZXJpdGVkIHByb3BlcnR5IG9mIGBvYmplY3RgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgcGF0aGAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3QgPSBfLmNyZWF0ZSh7ICdhJzogXy5jcmVhdGUoeyAnYic6IDIgfSkgfSk7XFxuICAgICAqXFxuICAgICAqIF8uaGFzSW4ob2JqZWN0LCAnYScpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaGFzSW4ob2JqZWN0LCAnYS5iJyk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5oYXNJbihvYmplY3QsIFsnYScsICdiJ10pO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaGFzSW4ob2JqZWN0LCAnYicpO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaGFzSW4ob2JqZWN0LCBwYXRoKSB7XFxuICAgICAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGhhc1BhdGgob2JqZWN0LCBwYXRoLCBiYXNlSGFzSW4pO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiB0aGUgaW52ZXJ0ZWQga2V5cyBhbmQgdmFsdWVzIG9mIGBvYmplY3RgLlxcbiAgICAgKiBJZiBgb2JqZWN0YCBjb250YWlucyBkdXBsaWNhdGUgdmFsdWVzLCBzdWJzZXF1ZW50IHZhbHVlcyBvdmVyd3JpdGVcXG4gICAgICogcHJvcGVydHkgYXNzaWdubWVudHMgb2YgcHJldmlvdXMgdmFsdWVzLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjcuMFxcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnZlcnQuXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBpbnZlcnRlZCBvYmplY3QuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDEgfTtcXG4gICAgICpcXG4gICAgICogXy5pbnZlcnQob2JqZWN0KTtcXG4gICAgICogLy8gPT4geyAnMSc6ICdjJywgJzInOiAnYicgfVxcbiAgICAgKi9cXG4gICAgdmFyIGludmVydCA9IGNyZWF0ZUludmVydGVyKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmXFxuICAgICAgICAgIHR5cGVvZiB2YWx1ZS50b1N0cmluZyAhPSAnZnVuY3Rpb24nKSB7XFxuICAgICAgICB2YWx1ZSA9IG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xcbiAgICAgIH1cXG5cXG4gICAgICByZXN1bHRbdmFsdWVdID0ga2V5O1xcbiAgICB9LCBjb25zdGFudChpZGVudGl0eSkpO1xcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pbnZlcnRgIGV4Y2VwdCB0aGF0IHRoZSBpbnZlcnRlZCBvYmplY3QgaXMgZ2VuZXJhdGVkXFxuICAgICAqIGZyb20gdGhlIHJlc3VsdHMgb2YgcnVubmluZyBlYWNoIGVsZW1lbnQgb2YgYG9iamVjdGAgdGhydSBgaXRlcmF0ZWVgLiBUaGVcXG4gICAgICogY29ycmVzcG9uZGluZyBpbnZlcnRlZCB2YWx1ZSBvZiBlYWNoIGludmVydGVkIGtleSBpcyBhbiBhcnJheSBvZiBrZXlzXFxuICAgICAqIHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIHRoZSBpbnZlcnRlZCB2YWx1ZS4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWRcXG4gICAgICogd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMS4wXFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGludmVydC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgaW52ZXJ0ZWQgb2JqZWN0LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogMiwgJ2MnOiAxIH07XFxuICAgICAqXFxuICAgICAqIF8uaW52ZXJ0Qnkob2JqZWN0KTtcXG4gICAgICogLy8gPT4geyAnMSc6IFsnYScsICdjJ10sICcyJzogWydiJ10gfVxcbiAgICAgKlxcbiAgICAgKiBfLmludmVydEJ5KG9iamVjdCwgZnVuY3Rpb24odmFsdWUpIHtcXG4gICAgICogICByZXR1cm4gJ2dyb3VwJyArIHZhbHVlO1xcbiAgICAgKiB9KTtcXG4gICAgICogLy8gPT4geyAnZ3JvdXAxJzogWydhJywgJ2MnXSwgJ2dyb3VwMic6IFsnYiddIH1cXG4gICAgICovXFxuICAgIHZhciBpbnZlcnRCeSA9IGNyZWF0ZUludmVydGVyKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmXFxuICAgICAgICAgIHR5cGVvZiB2YWx1ZS50b1N0cmluZyAhPSAnZnVuY3Rpb24nKSB7XFxuICAgICAgICB2YWx1ZSA9IG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xcbiAgICAgIH1cXG5cXG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChyZXN1bHQsIHZhbHVlKSkge1xcbiAgICAgICAgcmVzdWx0W3ZhbHVlXS5wdXNoKGtleSk7XFxuICAgICAgfSBlbHNlIHtcXG4gICAgICAgIHJlc3VsdFt2YWx1ZV0gPSBba2V5XTtcXG4gICAgICB9XFxuICAgIH0sIGdldEl0ZXJhdGVlKTtcXG5cXG4gICAgLyoqXFxuICAgICAqIEludm9rZXMgdGhlIG1ldGhvZCBhdCBgcGF0aGAgb2YgYG9iamVjdGAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgbWV0aG9kIHRvIGludm9rZS5cXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgdGhlIG1ldGhvZCB3aXRoLlxcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBpbnZva2VkIG1ldGhvZC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiBbMSwgMiwgMywgNF0gfSB9XSB9O1xcbiAgICAgKlxcbiAgICAgKiBfLmludm9rZShvYmplY3QsICdhWzBdLmIuYy5zbGljZScsIDEsIDMpO1xcbiAgICAgKiAvLyA9PiBbMiwgM11cXG4gICAgICovXFxuICAgIHZhciBpbnZva2UgPSBiYXNlUmVzdChiYXNlSW52b2tlKTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy4gU2VlIHRoZVxcbiAgICAgKiBbRVMgc3BlY10oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LmtleXMpXFxuICAgICAqIGZvciBtb3JlIGRldGFpbHMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XFxuICAgICAqICAgdGhpcy5hID0gMTtcXG4gICAgICogICB0aGlzLmIgPSAyO1xcbiAgICAgKiB9XFxuICAgICAqXFxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XFxuICAgICAqXFxuICAgICAqIF8ua2V5cyhuZXcgRm9vKTtcXG4gICAgICogLy8gPT4gWydhJywgJ2InXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxcbiAgICAgKlxcbiAgICAgKiBfLmtleXMoJ2hpJyk7XFxuICAgICAqIC8vID0+IFsnMCcsICcxJ11cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGtleXMob2JqZWN0KSB7XFxuICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCkgOiBiYXNlS2V5cyhvYmplY3QpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMy4wLjBcXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcXG4gICAgICogICB0aGlzLmEgPSAxO1xcbiAgICAgKiAgIHRoaXMuYiA9IDI7XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcXG4gICAgICpcXG4gICAgICogXy5rZXlzSW4obmV3IEZvbyk7XFxuICAgICAqIC8vID0+IFsnYScsICdiJywgJ2MnXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24ga2V5c0luKG9iamVjdCkge1xcbiAgICAgIHJldHVybiBpc0FycmF5TGlrZShvYmplY3QpID8gYXJyYXlMaWtlS2V5cyhvYmplY3QsIHRydWUpIDogYmFzZUtleXNJbihvYmplY3QpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8ubWFwVmFsdWVzYDsgdGhpcyBtZXRob2QgY3JlYXRlcyBhbiBvYmplY3Qgd2l0aCB0aGVcXG4gICAgICogc2FtZSB2YWx1ZXMgYXMgYG9iamVjdGAgYW5kIGtleXMgZ2VuZXJhdGVkIGJ5IHJ1bm5pbmcgZWFjaCBvd24gZW51bWVyYWJsZVxcbiAgICAgKiBzdHJpbmcga2V5ZWQgcHJvcGVydHkgb2YgYG9iamVjdGAgdGhydSBgaXRlcmF0ZWVgLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZFxcbiAgICAgKiB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBrZXksIG9iamVjdCkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuOC4wXFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgb2JqZWN0LlxcbiAgICAgKiBAc2VlIF8ubWFwVmFsdWVzXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8ubWFwS2V5cyh7ICdhJzogMSwgJ2InOiAyIH0sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcXG4gICAgICogICByZXR1cm4ga2V5ICsgdmFsdWU7XFxuICAgICAqIH0pO1xcbiAgICAgKiAvLyA9PiB7ICdhMSc6IDEsICdiMic6IDIgfVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gbWFwS2V5cyhvYmplY3QsIGl0ZXJhdGVlKSB7XFxuICAgICAgdmFyIHJlc3VsdCA9IHt9O1xcbiAgICAgIGl0ZXJhdGVlID0gZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpO1xcblxcbiAgICAgIGJhc2VGb3JPd24ob2JqZWN0LCBmdW5jdGlvbih2YWx1ZSwga2V5LCBvYmplY3QpIHtcXG4gICAgICAgIGJhc2VBc3NpZ25WYWx1ZShyZXN1bHQsIGl0ZXJhdGVlKHZhbHVlLCBrZXksIG9iamVjdCksIHZhbHVlKTtcXG4gICAgICB9KTtcXG4gICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCB3aXRoIHRoZSBzYW1lIGtleXMgYXMgYG9iamVjdGAgYW5kIHZhbHVlcyBnZW5lcmF0ZWRcXG4gICAgICogYnkgcnVubmluZyBlYWNoIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0eSBvZiBgb2JqZWN0YCB0aHJ1XFxuICAgICAqIGBpdGVyYXRlZWAuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOlxcbiAgICAgKiAodmFsdWUsIGtleSwgb2JqZWN0KS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMi40LjBcXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBvYmplY3QuXFxuICAgICAqIEBzZWUgXy5tYXBLZXlzXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciB1c2VycyA9IHtcXG4gICAgICogICAnZnJlZCc6ICAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhZ2UnOiA0MCB9LFxcbiAgICAgKiAgICdwZWJibGVzJzogeyAndXNlcic6ICdwZWJibGVzJywgJ2FnZSc6IDEgfVxcbiAgICAgKiB9O1xcbiAgICAgKlxcbiAgICAgKiBfLm1hcFZhbHVlcyh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gby5hZ2U7IH0pO1xcbiAgICAgKiAvLyA9PiB7ICdmcmVkJzogNDAsICdwZWJibGVzJzogMSB9IChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLm1hcFZhbHVlcyh1c2VycywgJ2FnZScpO1xcbiAgICAgKiAvLyA9PiB7ICdmcmVkJzogNDAsICdwZWJibGVzJzogMSB9IChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBtYXBWYWx1ZXMob2JqZWN0LCBpdGVyYXRlZSkge1xcbiAgICAgIHZhciByZXN1bHQgPSB7fTtcXG4gICAgICBpdGVyYXRlZSA9IGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAzKTtcXG5cXG4gICAgICBiYXNlRm9yT3duKG9iamVjdCwgZnVuY3Rpb24odmFsdWUsIGtleSwgb2JqZWN0KSB7XFxuICAgICAgICBiYXNlQXNzaWduVmFsdWUocmVzdWx0LCBrZXksIGl0ZXJhdGVlKHZhbHVlLCBrZXksIG9iamVjdCkpO1xcbiAgICAgIH0pO1xcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uYXNzaWduYCBleGNlcHQgdGhhdCBpdCByZWN1cnNpdmVseSBtZXJnZXMgb3duIGFuZFxcbiAgICAgKiBpbmhlcml0ZWQgZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyBvZiBzb3VyY2Ugb2JqZWN0cyBpbnRvIHRoZVxcbiAgICAgKiBkZXN0aW5hdGlvbiBvYmplY3QuIFNvdXJjZSBwcm9wZXJ0aWVzIHRoYXQgcmVzb2x2ZSB0byBgdW5kZWZpbmVkYCBhcmVcXG4gICAgICogc2tpcHBlZCBpZiBhIGRlc3RpbmF0aW9uIHZhbHVlIGV4aXN0cy4gQXJyYXkgYW5kIHBsYWluIG9iamVjdCBwcm9wZXJ0aWVzXFxuICAgICAqIGFyZSBtZXJnZWQgcmVjdXJzaXZlbHkuIE90aGVyIG9iamVjdHMgYW5kIHZhbHVlIHR5cGVzIGFyZSBvdmVycmlkZGVuIGJ5XFxuICAgICAqIGFzc2lnbm1lbnQuIFNvdXJjZSBvYmplY3RzIGFyZSBhcHBsaWVkIGZyb20gbGVmdCB0byByaWdodC4gU3Vic2VxdWVudFxcbiAgICAgKiBzb3VyY2VzIG92ZXJ3cml0ZSBwcm9wZXJ0eSBhc3NpZ25tZW50cyBvZiBwcmV2aW91cyBzb3VyY2VzLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMC41LjBcXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXFxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0ID0ge1xcbiAgICAgKiAgICdhJzogW3sgJ2InOiAyIH0sIHsgJ2QnOiA0IH1dXFxuICAgICAqIH07XFxuICAgICAqXFxuICAgICAqIHZhciBvdGhlciA9IHtcXG4gICAgICogICAnYSc6IFt7ICdjJzogMyB9LCB7ICdlJzogNSB9XVxcbiAgICAgKiB9O1xcbiAgICAgKlxcbiAgICAgKiBfLm1lcmdlKG9iamVjdCwgb3RoZXIpO1xcbiAgICAgKiAvLyA9PiB7ICdhJzogW3sgJ2InOiAyLCAnYyc6IDMgfSwgeyAnZCc6IDQsICdlJzogNSB9XSB9XFxuICAgICAqL1xcbiAgICB2YXIgbWVyZ2UgPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgpIHtcXG4gICAgICBiYXNlTWVyZ2Uob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4KTtcXG4gICAgfSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLm1lcmdlYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjdXN0b21pemVyYCB3aGljaFxcbiAgICAgKiBpcyBpbnZva2VkIHRvIHByb2R1Y2UgdGhlIG1lcmdlZCB2YWx1ZXMgb2YgdGhlIGRlc3RpbmF0aW9uIGFuZCBzb3VyY2VcXG4gICAgICogcHJvcGVydGllcy4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGAsIG1lcmdpbmcgaXMgaGFuZGxlZCBieSB0aGVcXG4gICAgICogbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgaW52b2tlZCB3aXRoIHNpeCBhcmd1bWVudHM6XFxuICAgICAqIChvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKS5cXG4gICAgICpcXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxcbiAgICAgKiBAcGFyYW0gey4uLk9iamVjdH0gc291cmNlcyBUaGUgc291cmNlIG9iamVjdHMuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGN1c3RvbWl6ZXIgVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBhc3NpZ25lZCB2YWx1ZXMuXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlKSB7XFxuICAgICAqICAgaWYgKF8uaXNBcnJheShvYmpWYWx1ZSkpIHtcXG4gICAgICogICAgIHJldHVybiBvYmpWYWx1ZS5jb25jYXQoc3JjVmFsdWUpO1xcbiAgICAgKiAgIH1cXG4gICAgICogfVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFsxXSwgJ2InOiBbMl0gfTtcXG4gICAgICogdmFyIG90aGVyID0geyAnYSc6IFszXSwgJ2InOiBbNF0gfTtcXG4gICAgICpcXG4gICAgICogXy5tZXJnZVdpdGgob2JqZWN0LCBvdGhlciwgY3VzdG9taXplcik7XFxuICAgICAqIC8vID0+IHsgJ2EnOiBbMSwgM10sICdiJzogWzIsIDRdIH1cXG4gICAgICovXFxuICAgIHZhciBtZXJnZVdpdGggPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpIHtcXG4gICAgICBiYXNlTWVyZ2Uob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4LCBjdXN0b21pemVyKTtcXG4gICAgfSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8ucGlja2A7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIHRoZVxcbiAgICAgKiBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IHBhdGhzIG9mIGBvYmplY3RgIHRoYXQgYXJlIG5vdCBvbWl0dGVkLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgY29uc2lkZXJhYmx5IHNsb3dlciB0aGFuIGBfLnBpY2tgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXFxuICAgICAqIEBwYXJhbSB7Li4uKHN0cmluZ3xzdHJpbmdbXSl9IFtwYXRoc10gVGhlIHByb3BlcnR5IHBhdGhzIHRvIG9taXQuXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAnMicsICdjJzogMyB9O1xcbiAgICAgKlxcbiAgICAgKiBfLm9taXQob2JqZWN0LCBbJ2EnLCAnYyddKTtcXG4gICAgICogLy8gPT4geyAnYic6ICcyJyB9XFxuICAgICAqL1xcbiAgICB2YXIgb21pdCA9IGZsYXRSZXN0KGZ1bmN0aW9uKG9iamVjdCwgcGF0aHMpIHtcXG4gICAgICB2YXIgcmVzdWx0ID0ge307XFxuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XFxuICAgICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICAgIH1cXG4gICAgICB2YXIgaXNEZWVwID0gZmFsc2U7XFxuICAgICAgcGF0aHMgPSBhcnJheU1hcChwYXRocywgZnVuY3Rpb24ocGF0aCkge1xcbiAgICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XFxuICAgICAgICBpc0RlZXAgfHwgKGlzRGVlcCA9IHBhdGgubGVuZ3RoID4gMSk7XFxuICAgICAgICByZXR1cm4gcGF0aDtcXG4gICAgICB9KTtcXG4gICAgICBjb3B5T2JqZWN0KG9iamVjdCwgZ2V0QWxsS2V5c0luKG9iamVjdCksIHJlc3VsdCk7XFxuICAgICAgaWYgKGlzRGVlcCkge1xcbiAgICAgICAgcmVzdWx0ID0gYmFzZUNsb25lKHJlc3VsdCwgQ0xPTkVfREVFUF9GTEFHIHwgQ0xPTkVfRkxBVF9GTEFHIHwgQ0xPTkVfU1lNQk9MU19GTEFHLCBjdXN0b21PbWl0Q2xvbmUpO1xcbiAgICAgIH1cXG4gICAgICB2YXIgbGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xcbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xcbiAgICAgICAgYmFzZVVuc2V0KHJlc3VsdCwgcGF0aHNbbGVuZ3RoXSk7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLnBpY2tCeWA7IHRoaXMgbWV0aG9kIGNyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mXFxuICAgICAqIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIG9mIGBvYmplY3RgIHRoYXRcXG4gICAgICogYHByZWRpY2F0ZWAgZG9lc24ndCByZXR1cm4gdHJ1dGh5IGZvci4gVGhlIHByZWRpY2F0ZSBpcyBpbnZva2VkIHdpdGggdHdvXFxuICAgICAqIGFyZ3VtZW50czogKHZhbHVlLCBrZXkpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIHByb3BlcnR5LlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogJzInLCAnYyc6IDMgfTtcXG4gICAgICpcXG4gICAgICogXy5vbWl0Qnkob2JqZWN0LCBfLmlzTnVtYmVyKTtcXG4gICAgICogLy8gPT4geyAnYic6ICcyJyB9XFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBvbWl0Qnkob2JqZWN0LCBwcmVkaWNhdGUpIHtcXG4gICAgICByZXR1cm4gcGlja0J5KG9iamVjdCwgbmVnYXRlKGdldEl0ZXJhdGVlKHByZWRpY2F0ZSkpKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgY29tcG9zZWQgb2YgdGhlIHBpY2tlZCBgb2JqZWN0YCBwcm9wZXJ0aWVzLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXFxuICAgICAqIEBwYXJhbSB7Li4uKHN0cmluZ3xzdHJpbmdbXSl9IFtwYXRoc10gVGhlIHByb3BlcnR5IHBhdGhzIHRvIHBpY2suXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAnMicsICdjJzogMyB9O1xcbiAgICAgKlxcbiAgICAgKiBfLnBpY2sob2JqZWN0LCBbJ2EnLCAnYyddKTtcXG4gICAgICogLy8gPT4geyAnYSc6IDEsICdjJzogMyB9XFxuICAgICAqL1xcbiAgICB2YXIgcGljayA9IGZsYXRSZXN0KGZ1bmN0aW9uKG9iamVjdCwgcGF0aHMpIHtcXG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB7fSA6IGJhc2VQaWNrKG9iamVjdCwgcGF0aHMpO1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIHRoZSBgb2JqZWN0YCBwcm9wZXJ0aWVzIGBwcmVkaWNhdGVgIHJldHVybnNcXG4gICAgICogdHJ1dGh5IGZvci4gVGhlIHByZWRpY2F0ZSBpcyBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50czogKHZhbHVlLCBrZXkpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIHByb3BlcnR5LlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogJzInLCAnYyc6IDMgfTtcXG4gICAgICpcXG4gICAgICogXy5waWNrQnkob2JqZWN0LCBfLmlzTnVtYmVyKTtcXG4gICAgICogLy8gPT4geyAnYSc6IDEsICdjJzogMyB9XFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBwaWNrQnkob2JqZWN0LCBwcmVkaWNhdGUpIHtcXG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcXG4gICAgICAgIHJldHVybiB7fTtcXG4gICAgICB9XFxuICAgICAgdmFyIHByb3BzID0gYXJyYXlNYXAoZ2V0QWxsS2V5c0luKG9iamVjdCksIGZ1bmN0aW9uKHByb3ApIHtcXG4gICAgICAgIHJldHVybiBbcHJvcF07XFxuICAgICAgfSk7XFxuICAgICAgcHJlZGljYXRlID0gZ2V0SXRlcmF0ZWUocHJlZGljYXRlKTtcXG4gICAgICByZXR1cm4gYmFzZVBpY2tCeShvYmplY3QsIHByb3BzLCBmdW5jdGlvbih2YWx1ZSwgcGF0aCkge1xcbiAgICAgICAgcmV0dXJuIHByZWRpY2F0ZSh2YWx1ZSwgcGF0aFswXSk7XFxuICAgICAgfSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZ2V0YCBleGNlcHQgdGhhdCBpZiB0aGUgcmVzb2x2ZWQgdmFsdWUgaXMgYVxcbiAgICAgKiBmdW5jdGlvbiBpdCdzIGludm9rZWQgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgaXRzIHBhcmVudCBvYmplY3QgYW5kXFxuICAgICAqIGl0cyByZXN1bHQgaXMgcmV0dXJuZWQuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gcmVzb2x2ZS5cXG4gICAgICogQHBhcmFtIHsqfSBbZGVmYXVsdFZhbHVlXSBUaGUgdmFsdWUgcmV0dXJuZWQgZm9yIGB1bmRlZmluZWRgIHJlc29sdmVkIHZhbHVlcy5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYzEnOiAzLCAnYzInOiBfLmNvbnN0YW50KDQpIH0gfV0gfTtcXG4gICAgICpcXG4gICAgICogXy5yZXN1bHQob2JqZWN0LCAnYVswXS5iLmMxJyk7XFxuICAgICAqIC8vID0+IDNcXG4gICAgICpcXG4gICAgICogXy5yZXN1bHQob2JqZWN0LCAnYVswXS5iLmMyJyk7XFxuICAgICAqIC8vID0+IDRcXG4gICAgICpcXG4gICAgICogXy5yZXN1bHQob2JqZWN0LCAnYVswXS5iLmMzJywgJ2RlZmF1bHQnKTtcXG4gICAgICogLy8gPT4gJ2RlZmF1bHQnXFxuICAgICAqXFxuICAgICAqIF8ucmVzdWx0KG9iamVjdCwgJ2FbMF0uYi5jMycsIF8uY29uc3RhbnQoJ2RlZmF1bHQnKSk7XFxuICAgICAqIC8vID0+ICdkZWZhdWx0J1xcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gcmVzdWx0KG9iamVjdCwgcGF0aCwgZGVmYXVsdFZhbHVlKSB7XFxuICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XFxuXFxuICAgICAgdmFyIGluZGV4ID0gLTEsXFxuICAgICAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoO1xcblxcbiAgICAgIC8vIEVuc3VyZSB0aGUgbG9vcCBpcyBlbnRlcmVkIHdoZW4gcGF0aCBpcyBlbXB0eS5cXG4gICAgICBpZiAoIWxlbmd0aCkge1xcbiAgICAgICAgbGVuZ3RoID0gMTtcXG4gICAgICAgIG9iamVjdCA9IHVuZGVmaW5lZDtcXG4gICAgICB9XFxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcXG4gICAgICAgIHZhciB2YWx1ZSA9IG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W3RvS2V5KHBhdGhbaW5kZXhdKV07XFxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICBpbmRleCA9IGxlbmd0aDtcXG4gICAgICAgICAgdmFsdWUgPSBkZWZhdWx0VmFsdWU7XFxuICAgICAgICB9XFxuICAgICAgICBvYmplY3QgPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHZhbHVlLmNhbGwob2JqZWN0KSA6IHZhbHVlO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gb2JqZWN0O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBTZXRzIHRoZSB2YWx1ZSBhdCBgcGF0aGAgb2YgYG9iamVjdGAuIElmIGEgcG9ydGlvbiBvZiBgcGF0aGAgZG9lc24ndCBleGlzdCxcXG4gICAgICogaXQncyBjcmVhdGVkLiBBcnJheXMgYXJlIGNyZWF0ZWQgZm9yIG1pc3NpbmcgaW5kZXggcHJvcGVydGllcyB3aGlsZSBvYmplY3RzXFxuICAgICAqIGFyZSBjcmVhdGVkIGZvciBhbGwgb3RoZXIgbWlzc2luZyBwcm9wZXJ0aWVzLiBVc2UgYF8uc2V0V2l0aGAgdG8gY3VzdG9taXplXFxuICAgICAqIGBwYXRoYCBjcmVhdGlvbi5cXG4gICAgICpcXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuNy4wXFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHNldC5cXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IDMgfSB9XSB9O1xcbiAgICAgKlxcbiAgICAgKiBfLnNldChvYmplY3QsICdhWzBdLmIuYycsIDQpO1xcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3QuYVswXS5iLmMpO1xcbiAgICAgKiAvLyA9PiA0XFxuICAgICAqXFxuICAgICAqIF8uc2V0KG9iamVjdCwgWyd4JywgJzAnLCAneScsICd6J10sIDUpO1xcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3QueFswXS55LnopO1xcbiAgICAgKiAvLyA9PiA1XFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBzZXQob2JqZWN0LCBwYXRoLCB2YWx1ZSkge1xcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IG9iamVjdCA6IGJhc2VTZXQob2JqZWN0LCBwYXRoLCB2YWx1ZSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc2V0YCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjdXN0b21pemVyYCB3aGljaCBpc1xcbiAgICAgKiBpbnZva2VkIHRvIHByb2R1Y2UgdGhlIG9iamVjdHMgb2YgYHBhdGhgLiAgSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGBcXG4gICAgICogcGF0aCBjcmVhdGlvbiBpcyBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBpbnZva2VkXFxuICAgICAqIHdpdGggdGhyZWUgYXJndW1lbnRzOiAobnNWYWx1ZSwga2V5LCBuc09iamVjdCkuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBzZXQuXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0ID0ge307XFxuICAgICAqXFxuICAgICAqIF8uc2V0V2l0aChvYmplY3QsICdbMF1bMV0nLCAnYScsIE9iamVjdCk7XFxuICAgICAqIC8vID0+IHsgJzAnOiB7ICcxJzogJ2EnIH0gfVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc2V0V2l0aChvYmplY3QsIHBhdGgsIHZhbHVlLCBjdXN0b21pemVyKSB7XFxuICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgPyBjdXN0b21pemVyIDogdW5kZWZpbmVkO1xcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IG9iamVjdCA6IGJhc2VTZXQob2JqZWN0LCBwYXRoLCB2YWx1ZSwgY3VzdG9taXplcik7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkLXZhbHVlIHBhaXJzIGZvciBgb2JqZWN0YFxcbiAgICAgKiB3aGljaCBjYW4gYmUgY29uc3VtZWQgYnkgYF8uZnJvbVBhaXJzYC4gSWYgYG9iamVjdGAgaXMgYSBtYXAgb3Igc2V0LCBpdHNcXG4gICAgICogZW50cmllcyBhcmUgcmV0dXJuZWQuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBhbGlhcyBlbnRyaWVzXFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGtleS12YWx1ZSBwYWlycy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xcbiAgICAgKiAgIHRoaXMuYSA9IDE7XFxuICAgICAqICAgdGhpcy5iID0gMjtcXG4gICAgICogfVxcbiAgICAgKlxcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xcbiAgICAgKlxcbiAgICAgKiBfLnRvUGFpcnMobmV3IEZvbyk7XFxuICAgICAqIC8vID0+IFtbJ2EnLCAxXSwgWydiJywgMl1dIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXFxuICAgICAqL1xcbiAgICB2YXIgdG9QYWlycyA9IGNyZWF0ZVRvUGFpcnMoa2V5cyk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkLXZhbHVlIHBhaXJzXFxuICAgICAqIGZvciBgb2JqZWN0YCB3aGljaCBjYW4gYmUgY29uc3VtZWQgYnkgYF8uZnJvbVBhaXJzYC4gSWYgYG9iamVjdGAgaXMgYSBtYXBcXG4gICAgICogb3Igc2V0LCBpdHMgZW50cmllcyBhcmUgcmV0dXJuZWQuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBhbGlhcyBlbnRyaWVzSW5cXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUga2V5LXZhbHVlIHBhaXJzLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XFxuICAgICAqICAgdGhpcy5hID0gMTtcXG4gICAgICogICB0aGlzLmIgPSAyO1xcbiAgICAgKiB9XFxuICAgICAqXFxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XFxuICAgICAqXFxuICAgICAqIF8udG9QYWlyc0luKG5ldyBGb28pO1xcbiAgICAgKiAvLyA9PiBbWydhJywgMV0sIFsnYicsIDJdLCBbJ2MnLCAzXV0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcXG4gICAgICovXFxuICAgIHZhciB0b1BhaXJzSW4gPSBjcmVhdGVUb1BhaXJzKGtleXNJbik7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBBbiBhbHRlcm5hdGl2ZSB0byBgXy5yZWR1Y2VgOyB0aGlzIG1ldGhvZCB0cmFuc2Zvcm1zIGBvYmplY3RgIHRvIGEgbmV3XFxuICAgICAqIGBhY2N1bXVsYXRvcmAgb2JqZWN0IHdoaWNoIGlzIHRoZSByZXN1bHQgb2YgcnVubmluZyBlYWNoIG9mIGl0cyBvd25cXG4gICAgICogZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyB0aHJ1IGBpdGVyYXRlZWAsIHdpdGggZWFjaCBpbnZvY2F0aW9uXFxuICAgICAqIHBvdGVudGlhbGx5IG11dGF0aW5nIHRoZSBgYWNjdW11bGF0b3JgIG9iamVjdC4gSWYgYGFjY3VtdWxhdG9yYCBpcyBub3RcXG4gICAgICogcHJvdmlkZWQsIGEgbmV3IG9iamVjdCB3aXRoIHRoZSBzYW1lIGBbW1Byb3RvdHlwZV1dYCB3aWxsIGJlIHVzZWQuIFRoZVxcbiAgICAgKiBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggZm91ciBhcmd1bWVudHM6IChhY2N1bXVsYXRvciwgdmFsdWUsIGtleSwgb2JqZWN0KS5cXG4gICAgICogSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAxLjMuMFxcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxcbiAgICAgKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGN1c3RvbSBhY2N1bXVsYXRvciB2YWx1ZS5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLnRyYW5zZm9ybShbMiwgMywgNF0sIGZ1bmN0aW9uKHJlc3VsdCwgbikge1xcbiAgICAgKiAgIHJlc3VsdC5wdXNoKG4gKj0gbik7XFxuICAgICAqICAgcmV0dXJuIG4gJSAyID09IDA7XFxuICAgICAqIH0sIFtdKTtcXG4gICAgICogLy8gPT4gWzQsIDldXFxuICAgICAqXFxuICAgICAqIF8udHJhbnNmb3JtKHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMSB9LCBmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcXG4gICAgICogICAocmVzdWx0W3ZhbHVlXSB8fCAocmVzdWx0W3ZhbHVlXSA9IFtdKSkucHVzaChrZXkpO1xcbiAgICAgKiB9LCB7fSk7XFxuICAgICAqIC8vID0+IHsgJzEnOiBbJ2EnLCAnYyddLCAnMic6IFsnYiddIH1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybShvYmplY3QsIGl0ZXJhdGVlLCBhY2N1bXVsYXRvcikge1xcbiAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkob2JqZWN0KSxcXG4gICAgICAgICAgaXNBcnJMaWtlID0gaXNBcnIgfHwgaXNCdWZmZXIob2JqZWN0KSB8fCBpc1R5cGVkQXJyYXkob2JqZWN0KTtcXG5cXG4gICAgICBpdGVyYXRlZSA9IGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCA0KTtcXG4gICAgICBpZiAoYWNjdW11bGF0b3IgPT0gbnVsbCkge1xcbiAgICAgICAgdmFyIEN0b3IgPSBvYmplY3QgJiYgb2JqZWN0LmNvbnN0cnVjdG9yO1xcbiAgICAgICAgaWYgKGlzQXJyTGlrZSkge1xcbiAgICAgICAgICBhY2N1bXVsYXRvciA9IGlzQXJyID8gbmV3IEN0b3IgOiBbXTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKGlzT2JqZWN0KG9iamVjdCkpIHtcXG4gICAgICAgICAgYWNjdW11bGF0b3IgPSBpc0Z1bmN0aW9uKEN0b3IpID8gYmFzZUNyZWF0ZShnZXRQcm90b3R5cGUob2JqZWN0KSkgOiB7fTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2Uge1xcbiAgICAgICAgICBhY2N1bXVsYXRvciA9IHt9O1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICAoaXNBcnJMaWtlID8gYXJyYXlFYWNoIDogYmFzZUZvck93bikob2JqZWN0LCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIG9iamVjdCkge1xcbiAgICAgICAgcmV0dXJuIGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXgsIG9iamVjdCk7XFxuICAgICAgfSk7XFxuICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBSZW1vdmVzIHRoZSBwcm9wZXJ0eSBhdCBgcGF0aGAgb2YgYG9iamVjdGAuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byB1bnNldC5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBwcm9wZXJ0eSBpcyBkZWxldGVkLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjJzogNyB9IH1dIH07XFxuICAgICAqIF8udW5zZXQob2JqZWN0LCAnYVswXS5iLmMnKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3QpO1xcbiAgICAgKiAvLyA9PiB7ICdhJzogW3sgJ2InOiB7fSB9XSB9O1xcbiAgICAgKlxcbiAgICAgKiBfLnVuc2V0KG9iamVjdCwgWydhJywgJzAnLCAnYicsICdjJ10pO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdCk7XFxuICAgICAqIC8vID0+IHsgJ2EnOiBbeyAnYic6IHt9IH1dIH07XFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB1bnNldChvYmplY3QsIHBhdGgpIHtcXG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB0cnVlIDogYmFzZVVuc2V0KG9iamVjdCwgcGF0aCk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc2V0YCBleGNlcHQgdGhhdCBhY2NlcHRzIGB1cGRhdGVyYCB0byBwcm9kdWNlIHRoZVxcbiAgICAgKiB2YWx1ZSB0byBzZXQuIFVzZSBgXy51cGRhdGVXaXRoYCB0byBjdXN0b21pemUgYHBhdGhgIGNyZWF0aW9uLiBUaGUgYHVwZGF0ZXJgXFxuICAgICAqIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjYuMFxcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXFxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBzZXQuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHVwZGF0ZXIgVGhlIGZ1bmN0aW9uIHRvIHByb2R1Y2UgdGhlIHVwZGF0ZWQgdmFsdWUuXFxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjJzogMyB9IH1dIH07XFxuICAgICAqXFxuICAgICAqIF8udXBkYXRlKG9iamVjdCwgJ2FbMF0uYi5jJywgZnVuY3Rpb24obikgeyByZXR1cm4gbiAqIG47IH0pO1xcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3QuYVswXS5iLmMpO1xcbiAgICAgKiAvLyA9PiA5XFxuICAgICAqXFxuICAgICAqIF8udXBkYXRlKG9iamVjdCwgJ3hbMF0ueS56JywgZnVuY3Rpb24obikgeyByZXR1cm4gbiA/IG4gKyAxIDogMDsgfSk7XFxuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdC54WzBdLnkueik7XFxuICAgICAqIC8vID0+IDBcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHVwZGF0ZShvYmplY3QsIHBhdGgsIHVwZGF0ZXIpIHtcXG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBiYXNlVXBkYXRlKG9iamVjdCwgcGF0aCwgY2FzdEZ1bmN0aW9uKHVwZGF0ZXIpKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy51cGRhdGVgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgIHdoaWNoIGlzXFxuICAgICAqIGludm9rZWQgdG8gcHJvZHVjZSB0aGUgb2JqZWN0cyBvZiBgcGF0aGAuICBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYFxcbiAgICAgKiBwYXRoIGNyZWF0aW9uIGlzIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgIGlzIGludm9rZWRcXG4gICAgICogd2l0aCB0aHJlZSBhcmd1bWVudHM6IChuc1ZhbHVlLCBrZXksIG5zT2JqZWN0KS5cXG4gICAgICpcXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuNi4wXFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHNldC5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gdXBkYXRlciBUaGUgZnVuY3Rpb24gdG8gcHJvZHVjZSB0aGUgdXBkYXRlZCB2YWx1ZS5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0ID0ge307XFxuICAgICAqXFxuICAgICAqIF8udXBkYXRlV2l0aChvYmplY3QsICdbMF1bMV0nLCBfLmNvbnN0YW50KCdhJyksIE9iamVjdCk7XFxuICAgICAqIC8vID0+IHsgJzAnOiB7ICcxJzogJ2EnIH0gfVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gdXBkYXRlV2l0aChvYmplY3QsIHBhdGgsIHVwZGF0ZXIsIGN1c3RvbWl6ZXIpIHtcXG4gICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gJ2Z1bmN0aW9uJyA/IGN1c3RvbWl6ZXIgOiB1bmRlZmluZWQ7XFxuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogYmFzZVVwZGF0ZShvYmplY3QsIHBhdGgsIGNhc3RGdW5jdGlvbih1cGRhdGVyKSwgY3VzdG9taXplcik7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0eSB2YWx1ZXMgb2YgYG9iamVjdGAuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSB2YWx1ZXMuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcXG4gICAgICogICB0aGlzLmEgPSAxO1xcbiAgICAgKiAgIHRoaXMuYiA9IDI7XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcXG4gICAgICpcXG4gICAgICogXy52YWx1ZXMobmV3IEZvbyk7XFxuICAgICAqIC8vID0+IFsxLCAyXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxcbiAgICAgKlxcbiAgICAgKiBfLnZhbHVlcygnaGknKTtcXG4gICAgICogLy8gPT4gWydoJywgJ2knXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gdmFsdWVzKG9iamVjdCkge1xcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IFtdIDogYmFzZVZhbHVlcyhvYmplY3QsIGtleXMob2JqZWN0KSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnR5XFxuICAgICAqIHZhbHVlcyBvZiBgb2JqZWN0YC5cXG4gICAgICpcXG4gICAgICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IHZhbHVlcy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xcbiAgICAgKiAgIHRoaXMuYSA9IDE7XFxuICAgICAqICAgdGhpcy5iID0gMjtcXG4gICAgICogfVxcbiAgICAgKlxcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xcbiAgICAgKlxcbiAgICAgKiBfLnZhbHVlc0luKG5ldyBGb28pO1xcbiAgICAgKiAvLyA9PiBbMSwgMiwgM10gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHZhbHVlc0luKG9iamVjdCkge1xcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IFtdIDogYmFzZVZhbHVlcyhvYmplY3QsIGtleXNJbihvYmplY3QpKTtcXG4gICAgfVxcblxcbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXFxuXFxuICAgIC8qKlxcbiAgICAgKiBDbGFtcHMgYG51bWJlcmAgd2l0aGluIHRoZSBpbmNsdXNpdmUgYGxvd2VyYCBhbmQgYHVwcGVyYCBib3VuZHMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBOdW1iZXJcXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG51bWJlciBUaGUgbnVtYmVyIHRvIGNsYW1wLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xvd2VyXSBUaGUgbG93ZXIgYm91bmQuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB1cHBlciBUaGUgdXBwZXIgYm91bmQuXFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNsYW1wZWQgbnVtYmVyLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmNsYW1wKC0xMCwgLTUsIDUpO1xcbiAgICAgKiAvLyA9PiAtNVxcbiAgICAgKlxcbiAgICAgKiBfLmNsYW1wKDEwLCAtNSwgNSk7XFxuICAgICAqIC8vID0+IDVcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNsYW1wKG51bWJlciwgbG93ZXIsIHVwcGVyKSB7XFxuICAgICAgaWYgKHVwcGVyID09PSB1bmRlZmluZWQpIHtcXG4gICAgICAgIHVwcGVyID0gbG93ZXI7XFxuICAgICAgICBsb3dlciA9IHVuZGVmaW5lZDtcXG4gICAgICB9XFxuICAgICAgaWYgKHVwcGVyICE9PSB1bmRlZmluZWQpIHtcXG4gICAgICAgIHVwcGVyID0gdG9OdW1iZXIodXBwZXIpO1xcbiAgICAgICAgdXBwZXIgPSB1cHBlciA9PT0gdXBwZXIgPyB1cHBlciA6IDA7XFxuICAgICAgfVxcbiAgICAgIGlmIChsb3dlciAhPT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICBsb3dlciA9IHRvTnVtYmVyKGxvd2VyKTtcXG4gICAgICAgIGxvd2VyID0gbG93ZXIgPT09IGxvd2VyID8gbG93ZXIgOiAwO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gYmFzZUNsYW1wKHRvTnVtYmVyKG51bWJlciksIGxvd2VyLCB1cHBlcik7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENoZWNrcyBpZiBgbmAgaXMgYmV0d2VlbiBgc3RhcnRgIGFuZCB1cCB0bywgYnV0IG5vdCBpbmNsdWRpbmcsIGBlbmRgLiBJZlxcbiAgICAgKiBgZW5kYCBpcyBub3Qgc3BlY2lmaWVkLCBpdCdzIHNldCB0byBgc3RhcnRgIHdpdGggYHN0YXJ0YCB0aGVuIHNldCB0byBgMGAuXFxuICAgICAqIElmIGBzdGFydGAgaXMgZ3JlYXRlciB0aGFuIGBlbmRgIHRoZSBwYXJhbXMgYXJlIHN3YXBwZWQgdG8gc3VwcG9ydFxcbiAgICAgKiBuZWdhdGl2ZSByYW5nZXMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMy4wXFxuICAgICAqIEBjYXRlZ29yeSBOdW1iZXJcXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG51bWJlciBUaGUgbnVtYmVyIHRvIGNoZWNrLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBvZiB0aGUgcmFuZ2UuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmQgVGhlIGVuZCBvZiB0aGUgcmFuZ2UuXFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgbnVtYmVyYCBpcyBpbiB0aGUgcmFuZ2UsIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQHNlZSBfLnJhbmdlLCBfLnJhbmdlUmlnaHRcXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5pblJhbmdlKDMsIDIsIDQpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIF8uaW5SYW5nZSg0LCA4KTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmluUmFuZ2UoNCwgMik7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqXFxuICAgICAqIF8uaW5SYW5nZSgyLCAyKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICpcXG4gICAgICogXy5pblJhbmdlKDEuMiwgMik7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogXy5pblJhbmdlKDUuMiwgNCk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqXFxuICAgICAqIF8uaW5SYW5nZSgtMywgLTIsIC02KTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gaW5SYW5nZShudW1iZXIsIHN0YXJ0LCBlbmQpIHtcXG4gICAgICBzdGFydCA9IHRvRmluaXRlKHN0YXJ0KTtcXG4gICAgICBpZiAoZW5kID09PSB1bmRlZmluZWQpIHtcXG4gICAgICAgIGVuZCA9IHN0YXJ0O1xcbiAgICAgICAgc3RhcnQgPSAwO1xcbiAgICAgIH0gZWxzZSB7XFxuICAgICAgICBlbmQgPSB0b0Zpbml0ZShlbmQpO1xcbiAgICAgIH1cXG4gICAgICBudW1iZXIgPSB0b051bWJlcihudW1iZXIpO1xcbiAgICAgIHJldHVybiBiYXNlSW5SYW5nZShudW1iZXIsIHN0YXJ0LCBlbmQpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBQcm9kdWNlcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiB0aGUgaW5jbHVzaXZlIGBsb3dlcmAgYW5kIGB1cHBlcmAgYm91bmRzLlxcbiAgICAgKiBJZiBvbmx5IG9uZSBhcmd1bWVudCBpcyBwcm92aWRlZCBhIG51bWJlciBiZXR3ZWVuIGAwYCBhbmQgdGhlIGdpdmVuIG51bWJlclxcbiAgICAgKiBpcyByZXR1cm5lZC4gSWYgYGZsb2F0aW5nYCBpcyBgdHJ1ZWAsIG9yIGVpdGhlciBgbG93ZXJgIG9yIGB1cHBlcmAgYXJlXFxuICAgICAqIGZsb2F0cywgYSBmbG9hdGluZy1wb2ludCBudW1iZXIgaXMgcmV0dXJuZWQgaW5zdGVhZCBvZiBhbiBpbnRlZ2VyLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogSmF2YVNjcmlwdCBmb2xsb3dzIHRoZSBJRUVFLTc1NCBzdGFuZGFyZCBmb3IgcmVzb2x2aW5nXFxuICAgICAqIGZsb2F0aW5nLXBvaW50IHZhbHVlcyB3aGljaCBjYW4gcHJvZHVjZSB1bmV4cGVjdGVkIHJlc3VsdHMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDAuNy4wXFxuICAgICAqIEBjYXRlZ29yeSBOdW1iZXJcXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtsb3dlcj0wXSBUaGUgbG93ZXIgYm91bmQuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbdXBwZXI9MV0gVGhlIHVwcGVyIGJvdW5kLlxcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmbG9hdGluZ10gU3BlY2lmeSByZXR1cm5pbmcgYSBmbG9hdGluZy1wb2ludCBudW1iZXIuXFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHJhbmRvbSBudW1iZXIuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8ucmFuZG9tKDAsIDUpO1xcbiAgICAgKiAvLyA9PiBhbiBpbnRlZ2VyIGJldHdlZW4gMCBhbmQgNVxcbiAgICAgKlxcbiAgICAgKiBfLnJhbmRvbSg1KTtcXG4gICAgICogLy8gPT4gYWxzbyBhbiBpbnRlZ2VyIGJldHdlZW4gMCBhbmQgNVxcbiAgICAgKlxcbiAgICAgKiBfLnJhbmRvbSg1LCB0cnVlKTtcXG4gICAgICogLy8gPT4gYSBmbG9hdGluZy1wb2ludCBudW1iZXIgYmV0d2VlbiAwIGFuZCA1XFxuICAgICAqXFxuICAgICAqIF8ucmFuZG9tKDEuMiwgNS4yKTtcXG4gICAgICogLy8gPT4gYSBmbG9hdGluZy1wb2ludCBudW1iZXIgYmV0d2VlbiAxLjIgYW5kIDUuMlxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gcmFuZG9tKGxvd2VyLCB1cHBlciwgZmxvYXRpbmcpIHtcXG4gICAgICBpZiAoZmxvYXRpbmcgJiYgdHlwZW9mIGZsb2F0aW5nICE9ICdib29sZWFuJyAmJiBpc0l0ZXJhdGVlQ2FsbChsb3dlciwgdXBwZXIsIGZsb2F0aW5nKSkge1xcbiAgICAgICAgdXBwZXIgPSBmbG9hdGluZyA9IHVuZGVmaW5lZDtcXG4gICAgICB9XFxuICAgICAgaWYgKGZsb2F0aW5nID09PSB1bmRlZmluZWQpIHtcXG4gICAgICAgIGlmICh0eXBlb2YgdXBwZXIgPT0gJ2Jvb2xlYW4nKSB7XFxuICAgICAgICAgIGZsb2F0aW5nID0gdXBwZXI7XFxuICAgICAgICAgIHVwcGVyID0gdW5kZWZpbmVkO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGxvd2VyID09ICdib29sZWFuJykge1xcbiAgICAgICAgICBmbG9hdGluZyA9IGxvd2VyO1xcbiAgICAgICAgICBsb3dlciA9IHVuZGVmaW5lZDtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgaWYgKGxvd2VyID09PSB1bmRlZmluZWQgJiYgdXBwZXIgPT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgbG93ZXIgPSAwO1xcbiAgICAgICAgdXBwZXIgPSAxO1xcbiAgICAgIH1cXG4gICAgICBlbHNlIHtcXG4gICAgICAgIGxvd2VyID0gdG9GaW5pdGUobG93ZXIpO1xcbiAgICAgICAgaWYgKHVwcGVyID09PSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgdXBwZXIgPSBsb3dlcjtcXG4gICAgICAgICAgbG93ZXIgPSAwO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgdXBwZXIgPSB0b0Zpbml0ZSh1cHBlcik7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICAgIGlmIChsb3dlciA+IHVwcGVyKSB7XFxuICAgICAgICB2YXIgdGVtcCA9IGxvd2VyO1xcbiAgICAgICAgbG93ZXIgPSB1cHBlcjtcXG4gICAgICAgIHVwcGVyID0gdGVtcDtcXG4gICAgICB9XFxuICAgICAgaWYgKGZsb2F0aW5nIHx8IGxvd2VyICUgMSB8fCB1cHBlciAlIDEpIHtcXG4gICAgICAgIHZhciByYW5kID0gbmF0aXZlUmFuZG9tKCk7XFxuICAgICAgICByZXR1cm4gbmF0aXZlTWluKGxvd2VyICsgKHJhbmQgKiAodXBwZXIgLSBsb3dlciArIGZyZWVQYXJzZUZsb2F0KCcxZS0nICsgKChyYW5kICsgJycpLmxlbmd0aCAtIDEpKSkpLCB1cHBlcik7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBiYXNlUmFuZG9tKGxvd2VyLCB1cHBlcik7XFxuICAgIH1cXG5cXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xcblxcbiAgICAvKipcXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG8gW2NhbWVsIGNhc2VdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0NhbWVsQ2FzZSkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY2FtZWwgY2FzZWQgc3RyaW5nLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmNhbWVsQ2FzZSgnRm9vIEJhcicpO1xcbiAgICAgKiAvLyA9PiAnZm9vQmFyJ1xcbiAgICAgKlxcbiAgICAgKiBfLmNhbWVsQ2FzZSgnLS1mb28tYmFyLS0nKTtcXG4gICAgICogLy8gPT4gJ2Zvb0JhcidcXG4gICAgICpcXG4gICAgICogXy5jYW1lbENhc2UoJ19fRk9PX0JBUl9fJyk7XFxuICAgICAqIC8vID0+ICdmb29CYXInXFxuICAgICAqL1xcbiAgICB2YXIgY2FtZWxDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XFxuICAgICAgd29yZCA9IHdvcmQudG9Mb3dlckNhc2UoKTtcXG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gY2FwaXRhbGl6ZSh3b3JkKSA6IHdvcmQpO1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENvbnZlcnRzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgYHN0cmluZ2AgdG8gdXBwZXIgY2FzZSBhbmQgdGhlIHJlbWFpbmluZ1xcbiAgICAgKiB0byBsb3dlciBjYXNlLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNhcGl0YWxpemUuXFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNhcGl0YWxpemVkIHN0cmluZy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5jYXBpdGFsaXplKCdGUkVEJyk7XFxuICAgICAqIC8vID0+ICdGcmVkJ1xcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY2FwaXRhbGl6ZShzdHJpbmcpIHtcXG4gICAgICByZXR1cm4gdXBwZXJGaXJzdCh0b1N0cmluZyhzdHJpbmcpLnRvTG93ZXJDYXNlKCkpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBEZWJ1cnJzIGBzdHJpbmdgIGJ5IGNvbnZlcnRpbmdcXG4gICAgICogW0xhdGluLTEgU3VwcGxlbWVudF0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGF0aW4tMV9TdXBwbGVtZW50XyhVbmljb2RlX2Jsb2NrKSNDaGFyYWN0ZXJfdGFibGUpXFxuICAgICAqIGFuZCBbTGF0aW4gRXh0ZW5kZWQtQV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGF0aW5fRXh0ZW5kZWQtQSlcXG4gICAgICogbGV0dGVycyB0byBiYXNpYyBMYXRpbiBsZXR0ZXJzIGFuZCByZW1vdmluZ1xcbiAgICAgKiBbY29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21iaW5pbmdfRGlhY3JpdGljYWxfTWFya3MpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGRlYnVyci5cXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZGVidXJyZWQgc3RyaW5nLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmRlYnVycignZFx1MDBFOWpcdTAwRTAgdnUnKTtcXG4gICAgICogLy8gPT4gJ2RlamEgdnUnXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBkZWJ1cnIoc3RyaW5nKSB7XFxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcXG4gICAgICByZXR1cm4gc3RyaW5nICYmIHN0cmluZy5yZXBsYWNlKHJlTGF0aW4sIGRlYnVyckxldHRlcikucmVwbGFjZShyZUNvbWJvTWFyaywgJycpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDaGVja3MgaWYgYHN0cmluZ2AgZW5kcyB3aXRoIHRoZSBnaXZlbiB0YXJnZXQgc3RyaW5nLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbdGFyZ2V0XSBUaGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcG9zaXRpb249c3RyaW5nLmxlbmd0aF0gVGhlIHBvc2l0aW9uIHRvIHNlYXJjaCB1cCB0by5cXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBzdHJpbmdgIGVuZHMgd2l0aCBgdGFyZ2V0YCxcXG4gICAgICogIGVsc2UgYGZhbHNlYC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5lbmRzV2l0aCgnYWJjJywgJ2MnKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLmVuZHNXaXRoKCdhYmMnLCAnYicpO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKlxcbiAgICAgKiBfLmVuZHNXaXRoKCdhYmMnLCAnYicsIDIpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBlbmRzV2l0aChzdHJpbmcsIHRhcmdldCwgcG9zaXRpb24pIHtcXG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xcbiAgICAgIHRhcmdldCA9IGJhc2VUb1N0cmluZyh0YXJnZXQpO1xcblxcbiAgICAgIHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xcbiAgICAgIHBvc2l0aW9uID0gcG9zaXRpb24gPT09IHVuZGVmaW5lZFxcbiAgICAgICAgPyBsZW5ndGhcXG4gICAgICAgIDogYmFzZUNsYW1wKHRvSW50ZWdlcihwb3NpdGlvbiksIDAsIGxlbmd0aCk7XFxuXFxuICAgICAgdmFyIGVuZCA9IHBvc2l0aW9uO1xcbiAgICAgIHBvc2l0aW9uIC09IHRhcmdldC5sZW5ndGg7XFxuICAgICAgcmV0dXJuIHBvc2l0aW9uID49IDAgJiYgc3RyaW5nLnNsaWNlKHBvc2l0aW9uLCBlbmQpID09IHRhcmdldDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ29udmVydHMgdGhlIGNoYXJhY3RlcnMgXFxcIiZcXFwiLCBcXFwiPFxcXCIsIFxcXCI+XFxcIiwgJ1xcXCInLCBhbmQgXFxcIidcXFwiIGluIGBzdHJpbmdgIHRvIHRoZWlyXFxuICAgICAqIGNvcnJlc3BvbmRpbmcgSFRNTCBlbnRpdGllcy5cXG4gICAgICpcXG4gICAgICogKipOb3RlOioqIE5vIG90aGVyIGNoYXJhY3RlcnMgYXJlIGVzY2FwZWQuIFRvIGVzY2FwZSBhZGRpdGlvbmFsXFxuICAgICAqIGNoYXJhY3RlcnMgdXNlIGEgdGhpcmQtcGFydHkgbGlicmFyeSBsaWtlIFtfaGVfXShodHRwczovL210aHMuYmUvaGUpLlxcbiAgICAgKlxcbiAgICAgKiBUaG91Z2ggdGhlIFxcXCI+XFxcIiBjaGFyYWN0ZXIgaXMgZXNjYXBlZCBmb3Igc3ltbWV0cnksIGNoYXJhY3RlcnMgbGlrZVxcbiAgICAgKiBcXFwiPlxcXCIgYW5kIFxcXCIvXFxcIiBkb24ndCBuZWVkIGVzY2FwaW5nIGluIEhUTUwgYW5kIGhhdmUgbm8gc3BlY2lhbCBtZWFuaW5nXFxuICAgICAqIHVubGVzcyB0aGV5J3JlIHBhcnQgb2YgYSB0YWcgb3IgdW5xdW90ZWQgYXR0cmlidXRlIHZhbHVlLiBTZWVcXG4gICAgICogW01hdGhpYXMgQnluZW5zJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2FtYmlndW91cy1hbXBlcnNhbmRzKVxcbiAgICAgKiAodW5kZXIgXFxcInNlbWktcmVsYXRlZCBmdW4gZmFjdFxcXCIpIGZvciBtb3JlIGRldGFpbHMuXFxuICAgICAqXFxuICAgICAqIFdoZW4gd29ya2luZyB3aXRoIEhUTUwgeW91IHNob3VsZCBhbHdheXNcXG4gICAgICogW3F1b3RlIGF0dHJpYnV0ZSB2YWx1ZXNdKGh0dHA6Ly93b25rby5jb20vcG9zdC9odG1sLWVzY2FwaW5nKSB0byByZWR1Y2VcXG4gICAgICogWFNTIHZlY3RvcnMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gZXNjYXBlLlxcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIHN0cmluZy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5lc2NhcGUoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJyk7XFxuICAgICAqIC8vID0+ICdmcmVkLCBiYXJuZXksICZhbXA7IHBlYmJsZXMnXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBlc2NhcGUoc3RyaW5nKSB7XFxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcXG4gICAgICByZXR1cm4gKHN0cmluZyAmJiByZUhhc1VuZXNjYXBlZEh0bWwudGVzdChzdHJpbmcpKVxcbiAgICAgICAgPyBzdHJpbmcucmVwbGFjZShyZVVuZXNjYXBlZEh0bWwsIGVzY2FwZUh0bWxDaGFyKVxcbiAgICAgICAgOiBzdHJpbmc7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEVzY2FwZXMgdGhlIGBSZWdFeHBgIHNwZWNpYWwgY2hhcmFjdGVycyBcXFwiXlxcXCIsIFxcXCIkXFxcIiwgXFxcIlxcXFxcXFwiLCBcXFwiLlxcXCIsIFxcXCIqXFxcIiwgXFxcIitcXFwiLFxcbiAgICAgKiBcXFwiP1xcXCIsIFxcXCIoXFxcIiwgXFxcIilcXFwiLCBcXFwiW1xcXCIsIFxcXCJdXFxcIiwgXFxcIntcXFwiLCBcXFwifVxcXCIsIGFuZCBcXFwifFxcXCIgaW4gYHN0cmluZ2AuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gZXNjYXBlLlxcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIHN0cmluZy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5lc2NhcGVSZWdFeHAoJ1tsb2Rhc2hdKGh0dHBzOi8vbG9kYXNoLmNvbS8pJyk7XFxuICAgICAqIC8vID0+ICdcXFxcW2xvZGFzaFxcXFxdXFxcXChodHRwczovL2xvZGFzaFxcXFwuY29tL1xcXFwpJ1xcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gZXNjYXBlUmVnRXhwKHN0cmluZykge1xcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XFxuICAgICAgcmV0dXJuIChzdHJpbmcgJiYgcmVIYXNSZWdFeHBDaGFyLnRlc3Qoc3RyaW5nKSlcXG4gICAgICAgID8gc3RyaW5nLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXFxcXFwkJicpXFxuICAgICAgICA6IHN0cmluZztcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG9cXG4gICAgICogW2tlYmFiIGNhc2VdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xldHRlcl9jYXNlI1NwZWNpYWxfY2FzZV9zdHlsZXMpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGtlYmFiIGNhc2VkIHN0cmluZy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5rZWJhYkNhc2UoJ0ZvbyBCYXInKTtcXG4gICAgICogLy8gPT4gJ2Zvby1iYXInXFxuICAgICAqXFxuICAgICAqIF8ua2ViYWJDYXNlKCdmb29CYXInKTtcXG4gICAgICogLy8gPT4gJ2Zvby1iYXInXFxuICAgICAqXFxuICAgICAqIF8ua2ViYWJDYXNlKCdfX0ZPT19CQVJfXycpO1xcbiAgICAgKiAvLyA9PiAnZm9vLWJhcidcXG4gICAgICovXFxuICAgIHZhciBrZWJhYkNhc2UgPSBjcmVhdGVDb21wb3VuZGVyKGZ1bmN0aW9uKHJlc3VsdCwgd29yZCwgaW5kZXgpIHtcXG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJy0nIDogJycpICsgd29yZC50b0xvd2VyQ2FzZSgpO1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENvbnZlcnRzIGBzdHJpbmdgLCBhcyBzcGFjZSBzZXBhcmF0ZWQgd29yZHMsIHRvIGxvd2VyIGNhc2UuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgbG93ZXIgY2FzZWQgc3RyaW5nLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmxvd2VyQ2FzZSgnLS1Gb28tQmFyLS0nKTtcXG4gICAgICogLy8gPT4gJ2ZvbyBiYXInXFxuICAgICAqXFxuICAgICAqIF8ubG93ZXJDYXNlKCdmb29CYXInKTtcXG4gICAgICogLy8gPT4gJ2ZvbyBiYXInXFxuICAgICAqXFxuICAgICAqIF8ubG93ZXJDYXNlKCdfX0ZPT19CQVJfXycpO1xcbiAgICAgKiAvLyA9PiAnZm9vIGJhcidcXG4gICAgICovXFxuICAgIHZhciBsb3dlckNhc2UgPSBjcmVhdGVDb21wb3VuZGVyKGZ1bmN0aW9uKHJlc3VsdCwgd29yZCwgaW5kZXgpIHtcXG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJyAnIDogJycpICsgd29yZC50b0xvd2VyQ2FzZSgpO1xcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENvbnZlcnRzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgYHN0cmluZ2AgdG8gbG93ZXIgY2FzZS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmxvd2VyRmlyc3QoJ0ZyZWQnKTtcXG4gICAgICogLy8gPT4gJ2ZyZWQnXFxuICAgICAqXFxuICAgICAqIF8ubG93ZXJGaXJzdCgnRlJFRCcpO1xcbiAgICAgKiAvLyA9PiAnZlJFRCdcXG4gICAgICovXFxuICAgIHZhciBsb3dlckZpcnN0ID0gY3JlYXRlQ2FzZUZpcnN0KCd0b0xvd2VyQ2FzZScpO1xcblxcbiAgICAvKipcXG4gICAgICogUGFkcyBgc3RyaW5nYCBvbiB0aGUgbGVmdCBhbmQgcmlnaHQgc2lkZXMgaWYgaXQncyBzaG9ydGVyIHRoYW4gYGxlbmd0aGAuXFxuICAgICAqIFBhZGRpbmcgY2hhcmFjdGVycyBhcmUgdHJ1bmNhdGVkIGlmIHRoZXkgY2FuJ3QgYmUgZXZlbmx5IGRpdmlkZWQgYnkgYGxlbmd0aGAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcGFkLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD0wXSBUaGUgcGFkZGluZyBsZW5ndGguXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9JyAnXSBUaGUgc3RyaW5nIHVzZWQgYXMgcGFkZGluZy5cXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGVkIHN0cmluZy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5wYWQoJ2FiYycsIDgpO1xcbiAgICAgKiAvLyA9PiAnICBhYmMgICAnXFxuICAgICAqXFxuICAgICAqIF8ucGFkKCdhYmMnLCA4LCAnXy0nKTtcXG4gICAgICogLy8gPT4gJ18tYWJjXy1fJ1xcbiAgICAgKlxcbiAgICAgKiBfLnBhZCgnYWJjJywgMyk7XFxuICAgICAqIC8vID0+ICdhYmMnXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBwYWQoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XFxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcXG4gICAgICBsZW5ndGggPSB0b0ludGVnZXIobGVuZ3RoKTtcXG5cXG4gICAgICB2YXIgc3RyTGVuZ3RoID0gbGVuZ3RoID8gc3RyaW5nU2l6ZShzdHJpbmcpIDogMDtcXG4gICAgICBpZiAoIWxlbmd0aCB8fCBzdHJMZW5ndGggPj0gbGVuZ3RoKSB7XFxuICAgICAgICByZXR1cm4gc3RyaW5nO1xcbiAgICAgIH1cXG4gICAgICB2YXIgbWlkID0gKGxlbmd0aCAtIHN0ckxlbmd0aCkgLyAyO1xcbiAgICAgIHJldHVybiAoXFxuICAgICAgICBjcmVhdGVQYWRkaW5nKG5hdGl2ZUZsb29yKG1pZCksIGNoYXJzKSArXFxuICAgICAgICBzdHJpbmcgK1xcbiAgICAgICAgY3JlYXRlUGFkZGluZyhuYXRpdmVDZWlsKG1pZCksIGNoYXJzKVxcbiAgICAgICk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFBhZHMgYHN0cmluZ2Agb24gdGhlIHJpZ2h0IHNpZGUgaWYgaXQncyBzaG9ydGVyIHRoYW4gYGxlbmd0aGAuIFBhZGRpbmdcXG4gICAgICogY2hhcmFjdGVycyBhcmUgdHJ1bmNhdGVkIGlmIHRoZXkgZXhjZWVkIGBsZW5ndGhgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHBhZC5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9MF0gVGhlIHBhZGRpbmcgbGVuZ3RoLlxcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPScgJ10gVGhlIHN0cmluZyB1c2VkIGFzIHBhZGRpbmcuXFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHBhZGRlZCBzdHJpbmcuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8ucGFkRW5kKCdhYmMnLCA2KTtcXG4gICAgICogLy8gPT4gJ2FiYyAgICdcXG4gICAgICpcXG4gICAgICogXy5wYWRFbmQoJ2FiYycsIDYsICdfLScpO1xcbiAgICAgKiAvLyA9PiAnYWJjXy1fJ1xcbiAgICAgKlxcbiAgICAgKiBfLnBhZEVuZCgnYWJjJywgMyk7XFxuICAgICAqIC8vID0+ICdhYmMnXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBwYWRFbmQoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XFxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcXG4gICAgICBsZW5ndGggPSB0b0ludGVnZXIobGVuZ3RoKTtcXG5cXG4gICAgICB2YXIgc3RyTGVuZ3RoID0gbGVuZ3RoID8gc3RyaW5nU2l6ZShzdHJpbmcpIDogMDtcXG4gICAgICByZXR1cm4gKGxlbmd0aCAmJiBzdHJMZW5ndGggPCBsZW5ndGgpXFxuICAgICAgICA/IChzdHJpbmcgKyBjcmVhdGVQYWRkaW5nKGxlbmd0aCAtIHN0ckxlbmd0aCwgY2hhcnMpKVxcbiAgICAgICAgOiBzdHJpbmc7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFBhZHMgYHN0cmluZ2Agb24gdGhlIGxlZnQgc2lkZSBpZiBpdCdzIHNob3J0ZXIgdGhhbiBgbGVuZ3RoYC4gUGFkZGluZ1xcbiAgICAgKiBjaGFyYWN0ZXJzIGFyZSB0cnVuY2F0ZWQgaWYgdGhleSBleGNlZWQgYGxlbmd0aGAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcGFkLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD0wXSBUaGUgcGFkZGluZyBsZW5ndGguXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9JyAnXSBUaGUgc3RyaW5nIHVzZWQgYXMgcGFkZGluZy5cXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGVkIHN0cmluZy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5wYWRTdGFydCgnYWJjJywgNik7XFxuICAgICAqIC8vID0+ICcgICBhYmMnXFxuICAgICAqXFxuICAgICAqIF8ucGFkU3RhcnQoJ2FiYycsIDYsICdfLScpO1xcbiAgICAgKiAvLyA9PiAnXy1fYWJjJ1xcbiAgICAgKlxcbiAgICAgKiBfLnBhZFN0YXJ0KCdhYmMnLCAzKTtcXG4gICAgICogLy8gPT4gJ2FiYydcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHBhZFN0YXJ0KHN0cmluZywgbGVuZ3RoLCBjaGFycykge1xcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XFxuICAgICAgbGVuZ3RoID0gdG9JbnRlZ2VyKGxlbmd0aCk7XFxuXFxuICAgICAgdmFyIHN0ckxlbmd0aCA9IGxlbmd0aCA/IHN0cmluZ1NpemUoc3RyaW5nKSA6IDA7XFxuICAgICAgcmV0dXJuIChsZW5ndGggJiYgc3RyTGVuZ3RoIDwgbGVuZ3RoKVxcbiAgICAgICAgPyAoY3JlYXRlUGFkZGluZyhsZW5ndGggLSBzdHJMZW5ndGgsIGNoYXJzKSArIHN0cmluZylcXG4gICAgICAgIDogc3RyaW5nO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBhbiBpbnRlZ2VyIG9mIHRoZSBzcGVjaWZpZWQgcmFkaXguIElmIGByYWRpeGAgaXNcXG4gICAgICogYHVuZGVmaW5lZGAgb3IgYDBgLCBhIGByYWRpeGAgb2YgYDEwYCBpcyB1c2VkIHVubGVzcyBgdmFsdWVgIGlzIGFcXG4gICAgICogaGV4YWRlY2ltYWwsIGluIHdoaWNoIGNhc2UgYSBgcmFkaXhgIG9mIGAxNmAgaXMgdXNlZC5cXG4gICAgICpcXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGFsaWducyB3aXRoIHRoZVxcbiAgICAgKiBbRVM1IGltcGxlbWVudGF0aW9uXShodHRwczovL2VzNS5naXRodWIuaW8vI3gxNS4xLjIuMikgb2YgYHBhcnNlSW50YC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMS4xLjBcXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gY29udmVydC5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtyYWRpeD0xMF0gVGhlIHJhZGl4IHRvIGludGVycHJldCBgdmFsdWVgIGJ5LlxcbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgaW50ZWdlci5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5wYXJzZUludCgnMDgnKTtcXG4gICAgICogLy8gPT4gOFxcbiAgICAgKlxcbiAgICAgKiBfLm1hcChbJzYnLCAnMDgnLCAnMTAnXSwgXy5wYXJzZUludCk7XFxuICAgICAqIC8vID0+IFs2LCA4LCAxMF1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHBhcnNlSW50KHN0cmluZywgcmFkaXgsIGd1YXJkKSB7XFxuICAgICAgaWYgKGd1YXJkIHx8IHJhZGl4ID09IG51bGwpIHtcXG4gICAgICAgIHJhZGl4ID0gMDtcXG4gICAgICB9IGVsc2UgaWYgKHJhZGl4KSB7XFxuICAgICAgICByYWRpeCA9ICtyYWRpeDtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIG5hdGl2ZVBhcnNlSW50KHRvU3RyaW5nKHN0cmluZykucmVwbGFjZShyZVRyaW1TdGFydCwgJycpLCByYWRpeCB8fCAwKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogUmVwZWF0cyB0aGUgZ2l2ZW4gc3RyaW5nIGBuYCB0aW1lcy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMy4wLjBcXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byByZXBlYXQuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJlcGVhdCB0aGUgc3RyaW5nLlxcbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSByZXBlYXRlZCBzdHJpbmcuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8ucmVwZWF0KCcqJywgMyk7XFxuICAgICAqIC8vID0+ICcqKionXFxuICAgICAqXFxuICAgICAqIF8ucmVwZWF0KCdhYmMnLCAyKTtcXG4gICAgICogLy8gPT4gJ2FiY2FiYydcXG4gICAgICpcXG4gICAgICogXy5yZXBlYXQoJ2FiYycsIDApO1xcbiAgICAgKiAvLyA9PiAnJ1xcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gcmVwZWF0KHN0cmluZywgbiwgZ3VhcmQpIHtcXG4gICAgICBpZiAoKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwoc3RyaW5nLCBuLCBndWFyZCkgOiBuID09PSB1bmRlZmluZWQpKSB7XFxuICAgICAgICBuID0gMTtcXG4gICAgICB9IGVsc2Uge1xcbiAgICAgICAgbiA9IHRvSW50ZWdlcihuKTtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIGJhc2VSZXBlYXQodG9TdHJpbmcoc3RyaW5nKSwgbik7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFJlcGxhY2VzIG1hdGNoZXMgZm9yIGBwYXR0ZXJuYCBpbiBgc3RyaW5nYCB3aXRoIGByZXBsYWNlbWVudGAuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvblxcbiAgICAgKiBbYFN0cmluZyNyZXBsYWNlYF0oaHR0cHM6Ly9tZG4uaW8vU3RyaW5nL3JlcGxhY2UpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIG1vZGlmeS5cXG4gICAgICogQHBhcmFtIHtSZWdFeHB8c3RyaW5nfSBwYXR0ZXJuIFRoZSBwYXR0ZXJuIHRvIHJlcGxhY2UuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258c3RyaW5nfSByZXBsYWNlbWVudCBUaGUgbWF0Y2ggcmVwbGFjZW1lbnQuXFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIG1vZGlmaWVkIHN0cmluZy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5yZXBsYWNlKCdIaSBGcmVkJywgJ0ZyZWQnLCAnQmFybmV5Jyk7XFxuICAgICAqIC8vID0+ICdIaSBCYXJuZXknXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiByZXBsYWNlKCkge1xcbiAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzLFxcbiAgICAgICAgICBzdHJpbmcgPSB0b1N0cmluZyhhcmdzWzBdKTtcXG5cXG4gICAgICByZXR1cm4gYXJncy5sZW5ndGggPCAzID8gc3RyaW5nIDogc3RyaW5nLnJlcGxhY2UoYXJnc1sxXSwgYXJnc1syXSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENvbnZlcnRzIGBzdHJpbmdgIHRvXFxuICAgICAqIFtzbmFrZSBjYXNlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TbmFrZV9jYXNlKS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMy4wLjBcXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBzbmFrZSBjYXNlZCBzdHJpbmcuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uc25ha2VDYXNlKCdGb28gQmFyJyk7XFxuICAgICAqIC8vID0+ICdmb29fYmFyJ1xcbiAgICAgKlxcbiAgICAgKiBfLnNuYWtlQ2FzZSgnZm9vQmFyJyk7XFxuICAgICAqIC8vID0+ICdmb29fYmFyJ1xcbiAgICAgKlxcbiAgICAgKiBfLnNuYWtlQ2FzZSgnLS1GT08tQkFSLS0nKTtcXG4gICAgICogLy8gPT4gJ2Zvb19iYXInXFxuICAgICAqL1xcbiAgICB2YXIgc25ha2VDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XFxuICAgICAgcmV0dXJuIHJlc3VsdCArIChpbmRleCA/ICdfJyA6ICcnKSArIHdvcmQudG9Mb3dlckNhc2UoKTtcXG4gICAgfSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBTcGxpdHMgYHN0cmluZ2AgYnkgYHNlcGFyYXRvcmAuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvblxcbiAgICAgKiBbYFN0cmluZyNzcGxpdGBdKGh0dHBzOi8vbWRuLmlvL1N0cmluZy9zcGxpdCkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gc3BsaXQuXFxuICAgICAqIEBwYXJhbSB7UmVnRXhwfHN0cmluZ30gc2VwYXJhdG9yIFRoZSBzZXBhcmF0b3IgcGF0dGVybiB0byBzcGxpdCBieS5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtsaW1pdF0gVGhlIGxlbmd0aCB0byB0cnVuY2F0ZSByZXN1bHRzIHRvLlxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHN0cmluZyBzZWdtZW50cy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5zcGxpdCgnYS1iLWMnLCAnLScsIDIpO1xcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYiddXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBzcGxpdChzdHJpbmcsIHNlcGFyYXRvciwgbGltaXQpIHtcXG4gICAgICBpZiAobGltaXQgJiYgdHlwZW9mIGxpbWl0ICE9ICdudW1iZXInICYmIGlzSXRlcmF0ZWVDYWxsKHN0cmluZywgc2VwYXJhdG9yLCBsaW1pdCkpIHtcXG4gICAgICAgIHNlcGFyYXRvciA9IGxpbWl0ID0gdW5kZWZpbmVkO1xcbiAgICAgIH1cXG4gICAgICBsaW1pdCA9IGxpbWl0ID09PSB1bmRlZmluZWQgPyBNQVhfQVJSQVlfTEVOR1RIIDogbGltaXQgPj4+IDA7XFxuICAgICAgaWYgKCFsaW1pdCkge1xcbiAgICAgICAgcmV0dXJuIFtdO1xcbiAgICAgIH1cXG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xcbiAgICAgIGlmIChzdHJpbmcgJiYgKFxcbiAgICAgICAgICAgIHR5cGVvZiBzZXBhcmF0b3IgPT0gJ3N0cmluZycgfHxcXG4gICAgICAgICAgICAoc2VwYXJhdG9yICE9IG51bGwgJiYgIWlzUmVnRXhwKHNlcGFyYXRvcikpXFxuICAgICAgICAgICkpIHtcXG4gICAgICAgIHNlcGFyYXRvciA9IGJhc2VUb1N0cmluZyhzZXBhcmF0b3IpO1xcbiAgICAgICAgaWYgKCFzZXBhcmF0b3IgJiYgaGFzVW5pY29kZShzdHJpbmcpKSB7XFxuICAgICAgICAgIHJldHVybiBjYXN0U2xpY2Uoc3RyaW5nVG9BcnJheShzdHJpbmcpLCAwLCBsaW1pdCk7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICAgIHJldHVybiBzdHJpbmcuc3BsaXQoc2VwYXJhdG9yLCBsaW1pdCk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENvbnZlcnRzIGBzdHJpbmdgIHRvXFxuICAgICAqIFtzdGFydCBjYXNlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MZXR0ZXJfY2FzZSNTdHlsaXN0aWNfb3Jfc3BlY2lhbGlzZWRfdXNhZ2UpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjEuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0YXJ0IGNhc2VkIHN0cmluZy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5zdGFydENhc2UoJy0tZm9vLWJhci0tJyk7XFxuICAgICAqIC8vID0+ICdGb28gQmFyJ1xcbiAgICAgKlxcbiAgICAgKiBfLnN0YXJ0Q2FzZSgnZm9vQmFyJyk7XFxuICAgICAqIC8vID0+ICdGb28gQmFyJ1xcbiAgICAgKlxcbiAgICAgKiBfLnN0YXJ0Q2FzZSgnX19GT09fQkFSX18nKTtcXG4gICAgICogLy8gPT4gJ0ZPTyBCQVInXFxuICAgICAqL1xcbiAgICB2YXIgc3RhcnRDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XFxuICAgICAgcmV0dXJuIHJlc3VsdCArIChpbmRleCA/ICcgJyA6ICcnKSArIHVwcGVyRmlyc3Qod29yZCk7XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGlmIGBzdHJpbmdgIHN0YXJ0cyB3aXRoIHRoZSBnaXZlbiB0YXJnZXQgc3RyaW5nLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbdGFyZ2V0XSBUaGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcG9zaXRpb249MF0gVGhlIHBvc2l0aW9uIHRvIHNlYXJjaCBmcm9tLlxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHN0cmluZ2Agc3RhcnRzIHdpdGggYHRhcmdldGAsXFxuICAgICAqICBlbHNlIGBmYWxzZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uc3RhcnRzV2l0aCgnYWJjJywgJ2EnKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBfLnN0YXJ0c1dpdGgoJ2FiYycsICdiJyk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqXFxuICAgICAqIF8uc3RhcnRzV2l0aCgnYWJjJywgJ2InLCAxKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc3RhcnRzV2l0aChzdHJpbmcsIHRhcmdldCwgcG9zaXRpb24pIHtcXG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xcbiAgICAgIHBvc2l0aW9uID0gcG9zaXRpb24gPT0gbnVsbFxcbiAgICAgICAgPyAwXFxuICAgICAgICA6IGJhc2VDbGFtcCh0b0ludGVnZXIocG9zaXRpb24pLCAwLCBzdHJpbmcubGVuZ3RoKTtcXG5cXG4gICAgICB0YXJnZXQgPSBiYXNlVG9TdHJpbmcodGFyZ2V0KTtcXG4gICAgICByZXR1cm4gc3RyaW5nLnNsaWNlKHBvc2l0aW9uLCBwb3NpdGlvbiArIHRhcmdldC5sZW5ndGgpID09IHRhcmdldDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGNvbXBpbGVkIHRlbXBsYXRlIGZ1bmN0aW9uIHRoYXQgY2FuIGludGVycG9sYXRlIGRhdGEgcHJvcGVydGllc1xcbiAgICAgKiBpbiBcXFwiaW50ZXJwb2xhdGVcXFwiIGRlbGltaXRlcnMsIEhUTUwtZXNjYXBlIGludGVycG9sYXRlZCBkYXRhIHByb3BlcnRpZXMgaW5cXG4gICAgICogXFxcImVzY2FwZVxcXCIgZGVsaW1pdGVycywgYW5kIGV4ZWN1dGUgSmF2YVNjcmlwdCBpbiBcXFwiZXZhbHVhdGVcXFwiIGRlbGltaXRlcnMuIERhdGFcXG4gICAgICogcHJvcGVydGllcyBtYXkgYmUgYWNjZXNzZWQgYXMgZnJlZSB2YXJpYWJsZXMgaW4gdGhlIHRlbXBsYXRlLiBJZiBhIHNldHRpbmdcXG4gICAgICogb2JqZWN0IGlzIGdpdmVuLCBpdCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYF8udGVtcGxhdGVTZXR0aW5nc2AgdmFsdWVzLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogSW4gdGhlIGRldmVsb3BtZW50IGJ1aWxkIGBfLnRlbXBsYXRlYCB1dGlsaXplc1xcbiAgICAgKiBbc291cmNlVVJMc10oaHR0cDovL3d3dy5odG1sNXJvY2tzLmNvbS9lbi90dXRvcmlhbHMvZGV2ZWxvcGVydG9vbHMvc291cmNlbWFwcy8jdG9jLXNvdXJjZXVybClcXG4gICAgICogZm9yIGVhc2llciBkZWJ1Z2dpbmcuXFxuICAgICAqXFxuICAgICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHByZWNvbXBpbGluZyB0ZW1wbGF0ZXMgc2VlXFxuICAgICAqIFtsb2Rhc2gncyBjdXN0b20gYnVpbGRzIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vbG9kYXNoLmNvbS9jdXN0b20tYnVpbGRzKS5cXG4gICAgICpcXG4gICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gQ2hyb21lIGV4dGVuc2lvbiBzYW5kYm94ZXMgc2VlXFxuICAgICAqIFtDaHJvbWUncyBleHRlbnNpb25zIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVyLmNocm9tZS5jb20vZXh0ZW5zaW9ucy9zYW5kYm94aW5nRXZhbCkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSB0ZW1wbGF0ZSBzdHJpbmcuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxcbiAgICAgKiBAcGFyYW0ge1JlZ0V4cH0gW29wdGlvbnMuZXNjYXBlPV8udGVtcGxhdGVTZXR0aW5ncy5lc2NhcGVdXFxuICAgICAqICBUaGUgSFRNTCBcXFwiZXNjYXBlXFxcIiBkZWxpbWl0ZXIuXFxuICAgICAqIEBwYXJhbSB7UmVnRXhwfSBbb3B0aW9ucy5ldmFsdWF0ZT1fLnRlbXBsYXRlU2V0dGluZ3MuZXZhbHVhdGVdXFxuICAgICAqICBUaGUgXFxcImV2YWx1YXRlXFxcIiBkZWxpbWl0ZXIuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucy5pbXBvcnRzPV8udGVtcGxhdGVTZXR0aW5ncy5pbXBvcnRzXVxcbiAgICAgKiAgQW4gb2JqZWN0IHRvIGltcG9ydCBpbnRvIHRoZSB0ZW1wbGF0ZSBhcyBmcmVlIHZhcmlhYmxlcy5cXG4gICAgICogQHBhcmFtIHtSZWdFeHB9IFtvcHRpb25zLmludGVycG9sYXRlPV8udGVtcGxhdGVTZXR0aW5ncy5pbnRlcnBvbGF0ZV1cXG4gICAgICogIFRoZSBcXFwiaW50ZXJwb2xhdGVcXFwiIGRlbGltaXRlci5cXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLnNvdXJjZVVSTD0nbG9kYXNoLnRlbXBsYXRlU291cmNlc1tuXSddXFxuICAgICAqICBUaGUgc291cmNlVVJMIG9mIHRoZSBjb21waWxlZCB0ZW1wbGF0ZS5cXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLnZhcmlhYmxlPSdvYmonXVxcbiAgICAgKiAgVGhlIGRhdGEgb2JqZWN0IHZhcmlhYmxlIG5hbWUuXFxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgY29tcGlsZWQgdGVtcGxhdGUgZnVuY3Rpb24uXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIC8vIFVzZSB0aGUgXFxcImludGVycG9sYXRlXFxcIiBkZWxpbWl0ZXIgdG8gY3JlYXRlIGEgY29tcGlsZWQgdGVtcGxhdGUuXFxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hlbGxvIDwlPSB1c2VyICU+IScpO1xcbiAgICAgKiBjb21waWxlZCh7ICd1c2VyJzogJ2ZyZWQnIH0pO1xcbiAgICAgKiAvLyA9PiAnaGVsbG8gZnJlZCEnXFxuICAgICAqXFxuICAgICAqIC8vIFVzZSB0aGUgSFRNTCBcXFwiZXNjYXBlXFxcIiBkZWxpbWl0ZXIgdG8gZXNjYXBlIGRhdGEgcHJvcGVydHkgdmFsdWVzLlxcbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCc8Yj48JS0gdmFsdWUgJT48L2I+Jyk7XFxuICAgICAqIGNvbXBpbGVkKHsgJ3ZhbHVlJzogJzxzY3JpcHQ+JyB9KTtcXG4gICAgICogLy8gPT4gJzxiPiZsdDtzY3JpcHQmZ3Q7PC9iPidcXG4gICAgICpcXG4gICAgICogLy8gVXNlIHRoZSBcXFwiZXZhbHVhdGVcXFwiIGRlbGltaXRlciB0byBleGVjdXRlIEphdmFTY3JpcHQgYW5kIGdlbmVyYXRlIEhUTUwuXFxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlIF8uZm9yRWFjaCh1c2VycywgZnVuY3Rpb24odXNlcikgeyAlPjxsaT48JS0gdXNlciAlPjwvbGk+PCUgfSk7ICU+Jyk7XFxuICAgICAqIGNvbXBpbGVkKHsgJ3VzZXJzJzogWydmcmVkJywgJ2Jhcm5leSddIH0pO1xcbiAgICAgKiAvLyA9PiAnPGxpPmZyZWQ8L2xpPjxsaT5iYXJuZXk8L2xpPidcXG4gICAgICpcXG4gICAgICogLy8gVXNlIHRoZSBpbnRlcm5hbCBgcHJpbnRgIGZ1bmN0aW9uIGluIFxcXCJldmFsdWF0ZVxcXCIgZGVsaW1pdGVycy5cXG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnPCUgcHJpbnQoXFxcImhlbGxvIFxcXCIgKyB1c2VyKTsgJT4hJyk7XFxuICAgICAqIGNvbXBpbGVkKHsgJ3VzZXInOiAnYmFybmV5JyB9KTtcXG4gICAgICogLy8gPT4gJ2hlbGxvIGJhcm5leSEnXFxuICAgICAqXFxuICAgICAqIC8vIFVzZSB0aGUgRVMgdGVtcGxhdGUgbGl0ZXJhbCBkZWxpbWl0ZXIgYXMgYW4gXFxcImludGVycG9sYXRlXFxcIiBkZWxpbWl0ZXIuXFxuICAgICAqIC8vIERpc2FibGUgc3VwcG9ydCBieSByZXBsYWNpbmcgdGhlIFxcXCJpbnRlcnBvbGF0ZVxcXCIgZGVsaW1pdGVyLlxcbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyAkeyB1c2VyIH0hJyk7XFxuICAgICAqIGNvbXBpbGVkKHsgJ3VzZXInOiAncGViYmxlcycgfSk7XFxuICAgICAqIC8vID0+ICdoZWxsbyBwZWJibGVzISdcXG4gICAgICpcXG4gICAgICogLy8gVXNlIGJhY2tzbGFzaGVzIHRvIHRyZWF0IGRlbGltaXRlcnMgYXMgcGxhaW4gdGV4dC5cXG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnPCU9IFxcXCJcXFxcXFxcXDwlLSB2YWx1ZSAlXFxcXFxcXFw+XFxcIiAlPicpO1xcbiAgICAgKiBjb21waWxlZCh7ICd2YWx1ZSc6ICdpZ25vcmVkJyB9KTtcXG4gICAgICogLy8gPT4gJzwlLSB2YWx1ZSAlPidcXG4gICAgICpcXG4gICAgICogLy8gVXNlIHRoZSBgaW1wb3J0c2Agb3B0aW9uIHRvIGltcG9ydCBgalF1ZXJ5YCBhcyBganFgLlxcbiAgICAgKiB2YXIgdGV4dCA9ICc8JSBqcS5lYWNoKHVzZXJzLCBmdW5jdGlvbih1c2VyKSB7ICU+PGxpPjwlLSB1c2VyICU+PC9saT48JSB9KTsgJT4nO1xcbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKHRleHQsIHsgJ2ltcG9ydHMnOiB7ICdqcSc6IGpRdWVyeSB9IH0pO1xcbiAgICAgKiBjb21waWxlZCh7ICd1c2Vycyc6IFsnZnJlZCcsICdiYXJuZXknXSB9KTtcXG4gICAgICogLy8gPT4gJzxsaT5mcmVkPC9saT48bGk+YmFybmV5PC9saT4nXFxuICAgICAqXFxuICAgICAqIC8vIFVzZSB0aGUgYHNvdXJjZVVSTGAgb3B0aW9uIHRvIHNwZWNpZnkgYSBjdXN0b20gc291cmNlVVJMIGZvciB0aGUgdGVtcGxhdGUuXFxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hlbGxvIDwlPSB1c2VyICU+IScsIHsgJ3NvdXJjZVVSTCc6ICcvYmFzaWMvZ3JlZXRpbmcuanN0JyB9KTtcXG4gICAgICogY29tcGlsZWQoZGF0YSk7XFxuICAgICAqIC8vID0+IEZpbmQgdGhlIHNvdXJjZSBvZiBcXFwiZ3JlZXRpbmcuanN0XFxcIiB1bmRlciB0aGUgU291cmNlcyB0YWIgb3IgUmVzb3VyY2VzIHBhbmVsIG9mIHRoZSB3ZWIgaW5zcGVjdG9yLlxcbiAgICAgKlxcbiAgICAgKiAvLyBVc2UgdGhlIGB2YXJpYWJsZWAgb3B0aW9uIHRvIGVuc3VyZSBhIHdpdGgtc3RhdGVtZW50IGlzbid0IHVzZWQgaW4gdGhlIGNvbXBpbGVkIHRlbXBsYXRlLlxcbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoaSA8JT0gZGF0YS51c2VyICU+IScsIHsgJ3ZhcmlhYmxlJzogJ2RhdGEnIH0pO1xcbiAgICAgKiBjb21waWxlZC5zb3VyY2U7XFxuICAgICAqIC8vID0+IGZ1bmN0aW9uKGRhdGEpIHtcXG4gICAgICogLy8gICB2YXIgX190LCBfX3AgPSAnJztcXG4gICAgICogLy8gICBfX3AgKz0gJ2hpICcgKyAoKF9fdCA9ICggZGF0YS51c2VyICkpID09IG51bGwgPyAnJyA6IF9fdCkgKyAnISc7XFxuICAgICAqIC8vICAgcmV0dXJuIF9fcDtcXG4gICAgICogLy8gfVxcbiAgICAgKlxcbiAgICAgKiAvLyBVc2UgY3VzdG9tIHRlbXBsYXRlIGRlbGltaXRlcnMuXFxuICAgICAqIF8udGVtcGxhdGVTZXR0aW5ncy5pbnRlcnBvbGF0ZSA9IC97eyhbXFxcXHNcXFxcU10rPyl9fS9nO1xcbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyB7eyB1c2VyIH19IScpO1xcbiAgICAgKiBjb21waWxlZCh7ICd1c2VyJzogJ211c3RhY2hlJyB9KTtcXG4gICAgICogLy8gPT4gJ2hlbGxvIG11c3RhY2hlISdcXG4gICAgICpcXG4gICAgICogLy8gVXNlIHRoZSBgc291cmNlYCBwcm9wZXJ0eSB0byBpbmxpbmUgY29tcGlsZWQgdGVtcGxhdGVzIGZvciBtZWFuaW5nZnVsXFxuICAgICAqIC8vIGxpbmUgbnVtYmVycyBpbiBlcnJvciBtZXNzYWdlcyBhbmQgc3RhY2sgdHJhY2VzLlxcbiAgICAgKiBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnanN0LmpzJyksICdcXFxcXFxuICAgICAqICAgdmFyIEpTVCA9IHtcXFxcXFxuICAgICAqICAgICBcXFwibWFpblxcXCI6ICcgKyBfLnRlbXBsYXRlKG1haW5UZXh0KS5zb3VyY2UgKyAnXFxcXFxcbiAgICAgKiAgIH07XFxcXFxcbiAgICAgKiAnKTtcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHRlbXBsYXRlKHN0cmluZywgb3B0aW9ucywgZ3VhcmQpIHtcXG4gICAgICAvLyBCYXNlZCBvbiBKb2huIFJlc2lnJ3MgYHRtcGxgIGltcGxlbWVudGF0aW9uXFxuICAgICAgLy8gKGh0dHA6Ly9lam9obi5vcmcvYmxvZy9qYXZhc2NyaXB0LW1pY3JvLXRlbXBsYXRpbmcvKVxcbiAgICAgIC8vIGFuZCBMYXVyYSBEb2t0b3JvdmEncyBkb1QuanMgKGh0dHBzOi8vZ2l0aHViLmNvbS9vbGFkby9kb1QpLlxcbiAgICAgIHZhciBzZXR0aW5ncyA9IGxvZGFzaC50ZW1wbGF0ZVNldHRpbmdzO1xcblxcbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzdHJpbmcsIG9wdGlvbnMsIGd1YXJkKSkge1xcbiAgICAgICAgb3B0aW9ucyA9IHVuZGVmaW5lZDtcXG4gICAgICB9XFxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcXG4gICAgICBvcHRpb25zID0gYXNzaWduSW5XaXRoKHt9LCBvcHRpb25zLCBzZXR0aW5ncywgY3VzdG9tRGVmYXVsdHNBc3NpZ25Jbik7XFxuXFxuICAgICAgdmFyIGltcG9ydHMgPSBhc3NpZ25JbldpdGgoe30sIG9wdGlvbnMuaW1wb3J0cywgc2V0dGluZ3MuaW1wb3J0cywgY3VzdG9tRGVmYXVsdHNBc3NpZ25JbiksXFxuICAgICAgICAgIGltcG9ydHNLZXlzID0ga2V5cyhpbXBvcnRzKSxcXG4gICAgICAgICAgaW1wb3J0c1ZhbHVlcyA9IGJhc2VWYWx1ZXMoaW1wb3J0cywgaW1wb3J0c0tleXMpO1xcblxcbiAgICAgIHZhciBpc0VzY2FwaW5nLFxcbiAgICAgICAgICBpc0V2YWx1YXRpbmcsXFxuICAgICAgICAgIGluZGV4ID0gMCxcXG4gICAgICAgICAgaW50ZXJwb2xhdGUgPSBvcHRpb25zLmludGVycG9sYXRlIHx8IHJlTm9NYXRjaCxcXG4gICAgICAgICAgc291cmNlID0gXFxcIl9fcCArPSAnXFxcIjtcXG5cXG4gICAgICAvLyBDb21waWxlIHRoZSByZWdleHAgdG8gbWF0Y2ggZWFjaCBkZWxpbWl0ZXIuXFxuICAgICAgdmFyIHJlRGVsaW1pdGVycyA9IFJlZ0V4cChcXG4gICAgICAgIChvcHRpb25zLmVzY2FwZSB8fCByZU5vTWF0Y2gpLnNvdXJjZSArICd8JyArXFxuICAgICAgICBpbnRlcnBvbGF0ZS5zb3VyY2UgKyAnfCcgK1xcbiAgICAgICAgKGludGVycG9sYXRlID09PSByZUludGVycG9sYXRlID8gcmVFc1RlbXBsYXRlIDogcmVOb01hdGNoKS5zb3VyY2UgKyAnfCcgK1xcbiAgICAgICAgKG9wdGlvbnMuZXZhbHVhdGUgfHwgcmVOb01hdGNoKS5zb3VyY2UgKyAnfCQnXFxuICAgICAgLCAnZycpO1xcblxcbiAgICAgIC8vIFVzZSBhIHNvdXJjZVVSTCBmb3IgZWFzaWVyIGRlYnVnZ2luZy5cXG4gICAgICAvLyBUaGUgc291cmNlVVJMIGdldHMgaW5qZWN0ZWQgaW50byB0aGUgc291cmNlIHRoYXQncyBldmFsLWVkLCBzbyBiZSBjYXJlZnVsXFxuICAgICAgLy8gdG8gbm9ybWFsaXplIGFsbCBraW5kcyBvZiB3aGl0ZXNwYWNlLCBzbyBlLmcuIG5ld2xpbmVzIChhbmQgdW5pY29kZSB2ZXJzaW9ucyBvZiBpdCkgY2FuJ3Qgc25lYWsgaW5cXG4gICAgICAvLyBhbmQgZXNjYXBlIHRoZSBjb21tZW50LCB0aHVzIGluamVjdGluZyBjb2RlIHRoYXQgZ2V0cyBldmFsZWQuXFxuICAgICAgdmFyIHNvdXJjZVVSTCA9ICcvLyMgc291cmNlVVJMPScgK1xcbiAgICAgICAgKGhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywgJ3NvdXJjZVVSTCcpXFxuICAgICAgICAgID8gKG9wdGlvbnMuc291cmNlVVJMICsgJycpLnJlcGxhY2UoL1xcXFxzL2csICcgJylcXG4gICAgICAgICAgOiAoJ2xvZGFzaC50ZW1wbGF0ZVNvdXJjZXNbJyArICgrK3RlbXBsYXRlQ291bnRlcikgKyAnXScpXFxuICAgICAgICApICsgJ1xcXFxuJztcXG5cXG4gICAgICBzdHJpbmcucmVwbGFjZShyZURlbGltaXRlcnMsIGZ1bmN0aW9uKG1hdGNoLCBlc2NhcGVWYWx1ZSwgaW50ZXJwb2xhdGVWYWx1ZSwgZXNUZW1wbGF0ZVZhbHVlLCBldmFsdWF0ZVZhbHVlLCBvZmZzZXQpIHtcXG4gICAgICAgIGludGVycG9sYXRlVmFsdWUgfHwgKGludGVycG9sYXRlVmFsdWUgPSBlc1RlbXBsYXRlVmFsdWUpO1xcblxcbiAgICAgICAgLy8gRXNjYXBlIGNoYXJhY3RlcnMgdGhhdCBjYW4ndCBiZSBpbmNsdWRlZCBpbiBzdHJpbmcgbGl0ZXJhbHMuXFxuICAgICAgICBzb3VyY2UgKz0gc3RyaW5nLnNsaWNlKGluZGV4LCBvZmZzZXQpLnJlcGxhY2UocmVVbmVzY2FwZWRTdHJpbmcsIGVzY2FwZVN0cmluZ0NoYXIpO1xcblxcbiAgICAgICAgLy8gUmVwbGFjZSBkZWxpbWl0ZXJzIHdpdGggc25pcHBldHMuXFxuICAgICAgICBpZiAoZXNjYXBlVmFsdWUpIHtcXG4gICAgICAgICAgaXNFc2NhcGluZyA9IHRydWU7XFxuICAgICAgICAgIHNvdXJjZSArPSBcXFwiJyArXFxcXG5fX2UoXFxcIiArIGVzY2FwZVZhbHVlICsgXFxcIikgK1xcXFxuJ1xcXCI7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoZXZhbHVhdGVWYWx1ZSkge1xcbiAgICAgICAgICBpc0V2YWx1YXRpbmcgPSB0cnVlO1xcbiAgICAgICAgICBzb3VyY2UgKz0gXFxcIic7XFxcXG5cXFwiICsgZXZhbHVhdGVWYWx1ZSArIFxcXCI7XFxcXG5fX3AgKz0gJ1xcXCI7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoaW50ZXJwb2xhdGVWYWx1ZSkge1xcbiAgICAgICAgICBzb3VyY2UgKz0gXFxcIicgK1xcXFxuKChfX3QgPSAoXFxcIiArIGludGVycG9sYXRlVmFsdWUgKyBcXFwiKSkgPT0gbnVsbCA/ICcnIDogX190KSArXFxcXG4nXFxcIjtcXG4gICAgICAgIH1cXG4gICAgICAgIGluZGV4ID0gb2Zmc2V0ICsgbWF0Y2gubGVuZ3RoO1xcblxcbiAgICAgICAgLy8gVGhlIEpTIGVuZ2luZSBlbWJlZGRlZCBpbiBBZG9iZSBwcm9kdWN0cyBuZWVkcyBgbWF0Y2hgIHJldHVybmVkIGluXFxuICAgICAgICAvLyBvcmRlciB0byBwcm9kdWNlIHRoZSBjb3JyZWN0IGBvZmZzZXRgIHZhbHVlLlxcbiAgICAgICAgcmV0dXJuIG1hdGNoO1xcbiAgICAgIH0pO1xcblxcbiAgICAgIHNvdXJjZSArPSBcXFwiJztcXFxcblxcXCI7XFxuXFxuICAgICAgLy8gSWYgYHZhcmlhYmxlYCBpcyBub3Qgc3BlY2lmaWVkIHdyYXAgYSB3aXRoLXN0YXRlbWVudCBhcm91bmQgdGhlIGdlbmVyYXRlZFxcbiAgICAgIC8vIGNvZGUgdG8gYWRkIHRoZSBkYXRhIG9iamVjdCB0byB0aGUgdG9wIG9mIHRoZSBzY29wZSBjaGFpbi5cXG4gICAgICB2YXIgdmFyaWFibGUgPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9wdGlvbnMsICd2YXJpYWJsZScpICYmIG9wdGlvbnMudmFyaWFibGU7XFxuICAgICAgaWYgKCF2YXJpYWJsZSkge1xcbiAgICAgICAgc291cmNlID0gJ3dpdGggKG9iaikge1xcXFxuJyArIHNvdXJjZSArICdcXFxcbn1cXFxcbic7XFxuICAgICAgfVxcbiAgICAgIC8vIFRocm93IGFuIGVycm9yIGlmIGEgZm9yYmlkZGVuIGNoYXJhY3RlciB3YXMgZm91bmQgaW4gYHZhcmlhYmxlYCwgdG8gcHJldmVudFxcbiAgICAgIC8vIHBvdGVudGlhbCBjb21tYW5kIGluamVjdGlvbiBhdHRhY2tzLlxcbiAgICAgIGVsc2UgaWYgKHJlRm9yYmlkZGVuSWRlbnRpZmllckNoYXJzLnRlc3QodmFyaWFibGUpKSB7XFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoSU5WQUxJRF9URU1QTF9WQVJfRVJST1JfVEVYVCk7XFxuICAgICAgfVxcblxcbiAgICAgIC8vIENsZWFudXAgY29kZSBieSBzdHJpcHBpbmcgZW1wdHkgc3RyaW5ncy5cXG4gICAgICBzb3VyY2UgPSAoaXNFdmFsdWF0aW5nID8gc291cmNlLnJlcGxhY2UocmVFbXB0eVN0cmluZ0xlYWRpbmcsICcnKSA6IHNvdXJjZSlcXG4gICAgICAgIC5yZXBsYWNlKHJlRW1wdHlTdHJpbmdNaWRkbGUsICckMScpXFxuICAgICAgICAucmVwbGFjZShyZUVtcHR5U3RyaW5nVHJhaWxpbmcsICckMTsnKTtcXG5cXG4gICAgICAvLyBGcmFtZSBjb2RlIGFzIHRoZSBmdW5jdGlvbiBib2R5LlxcbiAgICAgIHNvdXJjZSA9ICdmdW5jdGlvbignICsgKHZhcmlhYmxlIHx8ICdvYmonKSArICcpIHtcXFxcbicgK1xcbiAgICAgICAgKHZhcmlhYmxlXFxuICAgICAgICAgID8gJydcXG4gICAgICAgICAgOiAnb2JqIHx8IChvYmogPSB7fSk7XFxcXG4nXFxuICAgICAgICApICtcXG4gICAgICAgIFxcXCJ2YXIgX190LCBfX3AgPSAnJ1xcXCIgK1xcbiAgICAgICAgKGlzRXNjYXBpbmdcXG4gICAgICAgICAgID8gJywgX19lID0gXy5lc2NhcGUnXFxuICAgICAgICAgICA6ICcnXFxuICAgICAgICApICtcXG4gICAgICAgIChpc0V2YWx1YXRpbmdcXG4gICAgICAgICAgPyAnLCBfX2ogPSBBcnJheS5wcm90b3R5cGUuam9pbjtcXFxcbicgK1xcbiAgICAgICAgICAgIFxcXCJmdW5jdGlvbiBwcmludCgpIHsgX19wICs9IF9fai5jYWxsKGFyZ3VtZW50cywgJycpIH1cXFxcblxcXCJcXG4gICAgICAgICAgOiAnO1xcXFxuJ1xcbiAgICAgICAgKSArXFxuICAgICAgICBzb3VyY2UgK1xcbiAgICAgICAgJ3JldHVybiBfX3BcXFxcbn0nO1xcblxcbiAgICAgIHZhciByZXN1bHQgPSBhdHRlbXB0KGZ1bmN0aW9uKCkge1xcbiAgICAgICAgcmV0dXJuIEZ1bmN0aW9uKGltcG9ydHNLZXlzLCBzb3VyY2VVUkwgKyAncmV0dXJuICcgKyBzb3VyY2UpXFxuICAgICAgICAgIC5hcHBseSh1bmRlZmluZWQsIGltcG9ydHNWYWx1ZXMpO1xcbiAgICAgIH0pO1xcblxcbiAgICAgIC8vIFByb3ZpZGUgdGhlIGNvbXBpbGVkIGZ1bmN0aW9uJ3Mgc291cmNlIGJ5IGl0cyBgdG9TdHJpbmdgIG1ldGhvZCBvclxcbiAgICAgIC8vIHRoZSBgc291cmNlYCBwcm9wZXJ0eSBhcyBhIGNvbnZlbmllbmNlIGZvciBpbmxpbmluZyBjb21waWxlZCB0ZW1wbGF0ZXMuXFxuICAgICAgcmVzdWx0LnNvdXJjZSA9IHNvdXJjZTtcXG4gICAgICBpZiAoaXNFcnJvcihyZXN1bHQpKSB7XFxuICAgICAgICB0aHJvdyByZXN1bHQ7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENvbnZlcnRzIGBzdHJpbmdgLCBhcyBhIHdob2xlLCB0byBsb3dlciBjYXNlIGp1c3QgbGlrZVxcbiAgICAgKiBbU3RyaW5nI3RvTG93ZXJDYXNlXShodHRwczovL21kbi5pby90b0xvd2VyQ2FzZSkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgbG93ZXIgY2FzZWQgc3RyaW5nLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLnRvTG93ZXIoJy0tRm9vLUJhci0tJyk7XFxuICAgICAqIC8vID0+ICctLWZvby1iYXItLSdcXG4gICAgICpcXG4gICAgICogXy50b0xvd2VyKCdmb29CYXInKTtcXG4gICAgICogLy8gPT4gJ2Zvb2JhcidcXG4gICAgICpcXG4gICAgICogXy50b0xvd2VyKCdfX0ZPT19CQVJfXycpO1xcbiAgICAgKiAvLyA9PiAnX19mb29fYmFyX18nXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB0b0xvd2VyKHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIHRvU3RyaW5nKHZhbHVlKS50b0xvd2VyQ2FzZSgpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCwgYXMgYSB3aG9sZSwgdG8gdXBwZXIgY2FzZSBqdXN0IGxpa2VcXG4gICAgICogW1N0cmluZyN0b1VwcGVyQ2FzZV0oaHR0cHM6Ly9tZG4uaW8vdG9VcHBlckNhc2UpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHVwcGVyIGNhc2VkIHN0cmluZy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy50b1VwcGVyKCctLWZvby1iYXItLScpO1xcbiAgICAgKiAvLyA9PiAnLS1GT08tQkFSLS0nXFxuICAgICAqXFxuICAgICAqIF8udG9VcHBlcignZm9vQmFyJyk7XFxuICAgICAqIC8vID0+ICdGT09CQVInXFxuICAgICAqXFxuICAgICAqIF8udG9VcHBlcignX19mb29fYmFyX18nKTtcXG4gICAgICogLy8gPT4gJ19fRk9PX0JBUl9fJ1xcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gdG9VcHBlcih2YWx1ZSkge1xcbiAgICAgIHJldHVybiB0b1N0cmluZyh2YWx1ZSkudG9VcHBlckNhc2UoKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogUmVtb3ZlcyBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIG9yIHNwZWNpZmllZCBjaGFyYWN0ZXJzIGZyb20gYHN0cmluZ2AuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gdHJpbS5cXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjaGFycz13aGl0ZXNwYWNlXSBUaGUgY2hhcmFjdGVycyB0byB0cmltLlxcbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB0cmltbWVkIHN0cmluZy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy50cmltKCcgIGFiYyAgJyk7XFxuICAgICAqIC8vID0+ICdhYmMnXFxuICAgICAqXFxuICAgICAqIF8udHJpbSgnLV8tYWJjLV8tJywgJ18tJyk7XFxuICAgICAqIC8vID0+ICdhYmMnXFxuICAgICAqXFxuICAgICAqIF8ubWFwKFsnICBmb28gICcsICcgIGJhciAgJ10sIF8udHJpbSk7XFxuICAgICAqIC8vID0+IFsnZm9vJywgJ2JhciddXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB0cmltKHN0cmluZywgY2hhcnMsIGd1YXJkKSB7XFxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcXG4gICAgICBpZiAoc3RyaW5nICYmIChndWFyZCB8fCBjaGFycyA9PT0gdW5kZWZpbmVkKSkge1xcbiAgICAgICAgcmV0dXJuIGJhc2VUcmltKHN0cmluZyk7XFxuICAgICAgfVxcbiAgICAgIGlmICghc3RyaW5nIHx8ICEoY2hhcnMgPSBiYXNlVG9TdHJpbmcoY2hhcnMpKSkge1xcbiAgICAgICAgcmV0dXJuIHN0cmluZztcXG4gICAgICB9XFxuICAgICAgdmFyIHN0clN5bWJvbHMgPSBzdHJpbmdUb0FycmF5KHN0cmluZyksXFxuICAgICAgICAgIGNoclN5bWJvbHMgPSBzdHJpbmdUb0FycmF5KGNoYXJzKSxcXG4gICAgICAgICAgc3RhcnQgPSBjaGFyc1N0YXJ0SW5kZXgoc3RyU3ltYm9scywgY2hyU3ltYm9scyksXFxuICAgICAgICAgIGVuZCA9IGNoYXJzRW5kSW5kZXgoc3RyU3ltYm9scywgY2hyU3ltYm9scykgKyAxO1xcblxcbiAgICAgIHJldHVybiBjYXN0U2xpY2Uoc3RyU3ltYm9scywgc3RhcnQsIGVuZCkuam9pbignJyk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFJlbW92ZXMgdHJhaWxpbmcgd2hpdGVzcGFjZSBvciBzcGVjaWZpZWQgY2hhcmFjdGVycyBmcm9tIGBzdHJpbmdgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHRyaW0uXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9d2hpdGVzcGFjZV0gVGhlIGNoYXJhY3RlcnMgdG8gdHJpbS5cXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdHJpbW1lZCBzdHJpbmcuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8udHJpbUVuZCgnICBhYmMgICcpO1xcbiAgICAgKiAvLyA9PiAnICBhYmMnXFxuICAgICAqXFxuICAgICAqIF8udHJpbUVuZCgnLV8tYWJjLV8tJywgJ18tJyk7XFxuICAgICAqIC8vID0+ICctXy1hYmMnXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB0cmltRW5kKHN0cmluZywgY2hhcnMsIGd1YXJkKSB7XFxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcXG4gICAgICBpZiAoc3RyaW5nICYmIChndWFyZCB8fCBjaGFycyA9PT0gdW5kZWZpbmVkKSkge1xcbiAgICAgICAgcmV0dXJuIHN0cmluZy5zbGljZSgwLCB0cmltbWVkRW5kSW5kZXgoc3RyaW5nKSArIDEpO1xcbiAgICAgIH1cXG4gICAgICBpZiAoIXN0cmluZyB8fCAhKGNoYXJzID0gYmFzZVRvU3RyaW5nKGNoYXJzKSkpIHtcXG4gICAgICAgIHJldHVybiBzdHJpbmc7XFxuICAgICAgfVxcbiAgICAgIHZhciBzdHJTeW1ib2xzID0gc3RyaW5nVG9BcnJheShzdHJpbmcpLFxcbiAgICAgICAgICBlbmQgPSBjaGFyc0VuZEluZGV4KHN0clN5bWJvbHMsIHN0cmluZ1RvQXJyYXkoY2hhcnMpKSArIDE7XFxuXFxuICAgICAgcmV0dXJuIGNhc3RTbGljZShzdHJTeW1ib2xzLCAwLCBlbmQpLmpvaW4oJycpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBSZW1vdmVzIGxlYWRpbmcgd2hpdGVzcGFjZSBvciBzcGVjaWZpZWQgY2hhcmFjdGVycyBmcm9tIGBzdHJpbmdgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHRyaW0uXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9d2hpdGVzcGFjZV0gVGhlIGNoYXJhY3RlcnMgdG8gdHJpbS5cXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdHJpbW1lZCBzdHJpbmcuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8udHJpbVN0YXJ0KCcgIGFiYyAgJyk7XFxuICAgICAqIC8vID0+ICdhYmMgICdcXG4gICAgICpcXG4gICAgICogXy50cmltU3RhcnQoJy1fLWFiYy1fLScsICdfLScpO1xcbiAgICAgKiAvLyA9PiAnYWJjLV8tJ1xcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gdHJpbVN0YXJ0KHN0cmluZywgY2hhcnMsIGd1YXJkKSB7XFxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcXG4gICAgICBpZiAoc3RyaW5nICYmIChndWFyZCB8fCBjaGFycyA9PT0gdW5kZWZpbmVkKSkge1xcbiAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKHJlVHJpbVN0YXJ0LCAnJyk7XFxuICAgICAgfVxcbiAgICAgIGlmICghc3RyaW5nIHx8ICEoY2hhcnMgPSBiYXNlVG9TdHJpbmcoY2hhcnMpKSkge1xcbiAgICAgICAgcmV0dXJuIHN0cmluZztcXG4gICAgICB9XFxuICAgICAgdmFyIHN0clN5bWJvbHMgPSBzdHJpbmdUb0FycmF5KHN0cmluZyksXFxuICAgICAgICAgIHN0YXJ0ID0gY2hhcnNTdGFydEluZGV4KHN0clN5bWJvbHMsIHN0cmluZ1RvQXJyYXkoY2hhcnMpKTtcXG5cXG4gICAgICByZXR1cm4gY2FzdFNsaWNlKHN0clN5bWJvbHMsIHN0YXJ0KS5qb2luKCcnKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVHJ1bmNhdGVzIGBzdHJpbmdgIGlmIGl0J3MgbG9uZ2VyIHRoYW4gdGhlIGdpdmVuIG1heGltdW0gc3RyaW5nIGxlbmd0aC5cXG4gICAgICogVGhlIGxhc3QgY2hhcmFjdGVycyBvZiB0aGUgdHJ1bmNhdGVkIHN0cmluZyBhcmUgcmVwbGFjZWQgd2l0aCB0aGUgb21pc3Npb25cXG4gICAgICogc3RyaW5nIHdoaWNoIGRlZmF1bHRzIHRvIFxcXCIuLi5cXFwiLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHRydW5jYXRlLlxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLmxlbmd0aD0zMF0gVGhlIG1heGltdW0gc3RyaW5nIGxlbmd0aC5cXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm9taXNzaW9uPScuLi4nXSBUaGUgc3RyaW5nIHRvIGluZGljYXRlIHRleHQgaXMgb21pdHRlZC5cXG4gICAgICogQHBhcmFtIHtSZWdFeHB8c3RyaW5nfSBbb3B0aW9ucy5zZXBhcmF0b3JdIFRoZSBzZXBhcmF0b3IgcGF0dGVybiB0byB0cnVuY2F0ZSB0by5cXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdHJ1bmNhdGVkIHN0cmluZy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy50cnVuY2F0ZSgnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnaGJvcmlubycpO1xcbiAgICAgKiAvLyA9PiAnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnaGJvLi4uJ1xcbiAgICAgKlxcbiAgICAgKiBfLnRydW5jYXRlKCdoaS1kaWRkbHktaG8gdGhlcmUsIG5laWdoYm9yaW5vJywge1xcbiAgICAgKiAgICdsZW5ndGgnOiAyNCxcXG4gICAgICogICAnc2VwYXJhdG9yJzogJyAnXFxuICAgICAqIH0pO1xcbiAgICAgKiAvLyA9PiAnaGktZGlkZGx5LWhvIHRoZXJlLC4uLidcXG4gICAgICpcXG4gICAgICogXy50cnVuY2F0ZSgnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnaGJvcmlubycsIHtcXG4gICAgICogICAnbGVuZ3RoJzogMjQsXFxuICAgICAqICAgJ3NlcGFyYXRvcic6IC8sPyArL1xcbiAgICAgKiB9KTtcXG4gICAgICogLy8gPT4gJ2hpLWRpZGRseS1obyB0aGVyZS4uLidcXG4gICAgICpcXG4gICAgICogXy50cnVuY2F0ZSgnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnaGJvcmlubycsIHtcXG4gICAgICogICAnb21pc3Npb24nOiAnIFsuLi5dJ1xcbiAgICAgKiB9KTtcXG4gICAgICogLy8gPT4gJ2hpLWRpZGRseS1obyB0aGVyZSwgbmVpZyBbLi4uXSdcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHRydW5jYXRlKHN0cmluZywgb3B0aW9ucykge1xcbiAgICAgIHZhciBsZW5ndGggPSBERUZBVUxUX1RSVU5DX0xFTkdUSCxcXG4gICAgICAgICAgb21pc3Npb24gPSBERUZBVUxUX1RSVU5DX09NSVNTSU9OO1xcblxcbiAgICAgIGlmIChpc09iamVjdChvcHRpb25zKSkge1xcbiAgICAgICAgdmFyIHNlcGFyYXRvciA9ICdzZXBhcmF0b3InIGluIG9wdGlvbnMgPyBvcHRpb25zLnNlcGFyYXRvciA6IHNlcGFyYXRvcjtcXG4gICAgICAgIGxlbmd0aCA9ICdsZW5ndGgnIGluIG9wdGlvbnMgPyB0b0ludGVnZXIob3B0aW9ucy5sZW5ndGgpIDogbGVuZ3RoO1xcbiAgICAgICAgb21pc3Npb24gPSAnb21pc3Npb24nIGluIG9wdGlvbnMgPyBiYXNlVG9TdHJpbmcob3B0aW9ucy5vbWlzc2lvbikgOiBvbWlzc2lvbjtcXG4gICAgICB9XFxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcXG5cXG4gICAgICB2YXIgc3RyTGVuZ3RoID0gc3RyaW5nLmxlbmd0aDtcXG4gICAgICBpZiAoaGFzVW5pY29kZShzdHJpbmcpKSB7XFxuICAgICAgICB2YXIgc3RyU3ltYm9scyA9IHN0cmluZ1RvQXJyYXkoc3RyaW5nKTtcXG4gICAgICAgIHN0ckxlbmd0aCA9IHN0clN5bWJvbHMubGVuZ3RoO1xcbiAgICAgIH1cXG4gICAgICBpZiAobGVuZ3RoID49IHN0ckxlbmd0aCkge1xcbiAgICAgICAgcmV0dXJuIHN0cmluZztcXG4gICAgICB9XFxuICAgICAgdmFyIGVuZCA9IGxlbmd0aCAtIHN0cmluZ1NpemUob21pc3Npb24pO1xcbiAgICAgIGlmIChlbmQgPCAxKSB7XFxuICAgICAgICByZXR1cm4gb21pc3Npb247XFxuICAgICAgfVxcbiAgICAgIHZhciByZXN1bHQgPSBzdHJTeW1ib2xzXFxuICAgICAgICA/IGNhc3RTbGljZShzdHJTeW1ib2xzLCAwLCBlbmQpLmpvaW4oJycpXFxuICAgICAgICA6IHN0cmluZy5zbGljZSgwLCBlbmQpO1xcblxcbiAgICAgIGlmIChzZXBhcmF0b3IgPT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgcmV0dXJuIHJlc3VsdCArIG9taXNzaW9uO1xcbiAgICAgIH1cXG4gICAgICBpZiAoc3RyU3ltYm9scykge1xcbiAgICAgICAgZW5kICs9IChyZXN1bHQubGVuZ3RoIC0gZW5kKTtcXG4gICAgICB9XFxuICAgICAgaWYgKGlzUmVnRXhwKHNlcGFyYXRvcikpIHtcXG4gICAgICAgIGlmIChzdHJpbmcuc2xpY2UoZW5kKS5zZWFyY2goc2VwYXJhdG9yKSkge1xcbiAgICAgICAgICB2YXIgbWF0Y2gsXFxuICAgICAgICAgICAgICBzdWJzdHJpbmcgPSByZXN1bHQ7XFxuXFxuICAgICAgICAgIGlmICghc2VwYXJhdG9yLmdsb2JhbCkge1xcbiAgICAgICAgICAgIHNlcGFyYXRvciA9IFJlZ0V4cChzZXBhcmF0b3Iuc291cmNlLCB0b1N0cmluZyhyZUZsYWdzLmV4ZWMoc2VwYXJhdG9yKSkgKyAnZycpO1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIHNlcGFyYXRvci5sYXN0SW5kZXggPSAwO1xcbiAgICAgICAgICB3aGlsZSAoKG1hdGNoID0gc2VwYXJhdG9yLmV4ZWMoc3Vic3RyaW5nKSkpIHtcXG4gICAgICAgICAgICB2YXIgbmV3RW5kID0gbWF0Y2guaW5kZXg7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnNsaWNlKDAsIG5ld0VuZCA9PT0gdW5kZWZpbmVkID8gZW5kIDogbmV3RW5kKTtcXG4gICAgICAgIH1cXG4gICAgICB9IGVsc2UgaWYgKHN0cmluZy5pbmRleE9mKGJhc2VUb1N0cmluZyhzZXBhcmF0b3IpLCBlbmQpICE9IGVuZCkge1xcbiAgICAgICAgdmFyIGluZGV4ID0gcmVzdWx0Lmxhc3RJbmRleE9mKHNlcGFyYXRvcik7XFxuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc2xpY2UoMCwgaW5kZXgpO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgICByZXR1cm4gcmVzdWx0ICsgb21pc3Npb247XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoZSBpbnZlcnNlIG9mIGBfLmVzY2FwZWA7IHRoaXMgbWV0aG9kIGNvbnZlcnRzIHRoZSBIVE1MIGVudGl0aWVzXFxuICAgICAqIGAmYW1wO2AsIGAmbHQ7YCwgYCZndDtgLCBgJnF1b3Q7YCwgYW5kIGAmIzM5O2AgaW4gYHN0cmluZ2AgdG9cXG4gICAgICogdGhlaXIgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogTm8gb3RoZXIgSFRNTCBlbnRpdGllcyBhcmUgdW5lc2NhcGVkLiBUbyB1bmVzY2FwZSBhZGRpdGlvbmFsXFxuICAgICAqIEhUTUwgZW50aXRpZXMgdXNlIGEgdGhpcmQtcGFydHkgbGlicmFyeSBsaWtlIFtfaGVfXShodHRwczovL210aHMuYmUvaGUpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAwLjYuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHVuZXNjYXBlLlxcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB1bmVzY2FwZWQgc3RyaW5nLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLnVuZXNjYXBlKCdmcmVkLCBiYXJuZXksICZhbXA7IHBlYmJsZXMnKTtcXG4gICAgICogLy8gPT4gJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJ1xcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gdW5lc2NhcGUoc3RyaW5nKSB7XFxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcXG4gICAgICByZXR1cm4gKHN0cmluZyAmJiByZUhhc0VzY2FwZWRIdG1sLnRlc3Qoc3RyaW5nKSlcXG4gICAgICAgID8gc3RyaW5nLnJlcGxhY2UocmVFc2NhcGVkSHRtbCwgdW5lc2NhcGVIdG1sQ2hhcilcXG4gICAgICAgIDogc3RyaW5nO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCwgYXMgc3BhY2Ugc2VwYXJhdGVkIHdvcmRzLCB0byB1cHBlciBjYXNlLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHVwcGVyIGNhc2VkIHN0cmluZy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy51cHBlckNhc2UoJy0tZm9vLWJhcicpO1xcbiAgICAgKiAvLyA9PiAnRk9PIEJBUidcXG4gICAgICpcXG4gICAgICogXy51cHBlckNhc2UoJ2Zvb0JhcicpO1xcbiAgICAgKiAvLyA9PiAnRk9PIEJBUidcXG4gICAgICpcXG4gICAgICogXy51cHBlckNhc2UoJ19fZm9vX2Jhcl9fJyk7XFxuICAgICAqIC8vID0+ICdGT08gQkFSJ1xcbiAgICAgKi9cXG4gICAgdmFyIHVwcGVyQ2FzZSA9IGNyZWF0ZUNvbXBvdW5kZXIoZnVuY3Rpb24ocmVzdWx0LCB3b3JkLCBpbmRleCkge1xcbiAgICAgIHJldHVybiByZXN1bHQgKyAoaW5kZXggPyAnICcgOiAnJykgKyB3b3JkLnRvVXBwZXJDYXNlKCk7XFxuICAgIH0pO1xcblxcbiAgICAvKipcXG4gICAgICogQ29udmVydHMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBgc3RyaW5nYCB0byB1cHBlciBjYXNlLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBzdHJpbmcuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8udXBwZXJGaXJzdCgnZnJlZCcpO1xcbiAgICAgKiAvLyA9PiAnRnJlZCdcXG4gICAgICpcXG4gICAgICogXy51cHBlckZpcnN0KCdGUkVEJyk7XFxuICAgICAqIC8vID0+ICdGUkVEJ1xcbiAgICAgKi9cXG4gICAgdmFyIHVwcGVyRmlyc3QgPSBjcmVhdGVDYXNlRmlyc3QoJ3RvVXBwZXJDYXNlJyk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBTcGxpdHMgYHN0cmluZ2AgaW50byBhbiBhcnJheSBvZiBpdHMgd29yZHMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cXG4gICAgICogQHBhcmFtIHtSZWdFeHB8c3RyaW5nfSBbcGF0dGVybl0gVGhlIHBhdHRlcm4gdG8gbWF0Y2ggd29yZHMuXFxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgd29yZHMgb2YgYHN0cmluZ2AuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8ud29yZHMoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJyk7XFxuICAgICAqIC8vID0+IFsnZnJlZCcsICdiYXJuZXknLCAncGViYmxlcyddXFxuICAgICAqXFxuICAgICAqIF8ud29yZHMoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJywgL1teLCBdKy9nKTtcXG4gICAgICogLy8gPT4gWydmcmVkJywgJ2Jhcm5leScsICcmJywgJ3BlYmJsZXMnXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gd29yZHMoc3RyaW5nLCBwYXR0ZXJuLCBndWFyZCkge1xcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XFxuICAgICAgcGF0dGVybiA9IGd1YXJkID8gdW5kZWZpbmVkIDogcGF0dGVybjtcXG5cXG4gICAgICBpZiAocGF0dGVybiA9PT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICByZXR1cm4gaGFzVW5pY29kZVdvcmQoc3RyaW5nKSA/IHVuaWNvZGVXb3JkcyhzdHJpbmcpIDogYXNjaWlXb3JkcyhzdHJpbmcpO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gc3RyaW5nLm1hdGNoKHBhdHRlcm4pIHx8IFtdO1xcbiAgICB9XFxuXFxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cXG5cXG4gICAgLyoqXFxuICAgICAqIEF0dGVtcHRzIHRvIGludm9rZSBgZnVuY2AsIHJldHVybmluZyBlaXRoZXIgdGhlIHJlc3VsdCBvciB0aGUgY2F1Z2h0IGVycm9yXFxuICAgICAqIG9iamVjdC4gQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZSBwcm92aWRlZCB0byBgZnVuY2Agd2hlbiBpdCdzIGludm9rZWQuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGF0dGVtcHQuXFxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIGBmdW5jYCB3aXRoLlxcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgYGZ1bmNgIHJlc3VsdCBvciBlcnJvciBvYmplY3QuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIC8vIEF2b2lkIHRocm93aW5nIGVycm9ycyBmb3IgaW52YWxpZCBzZWxlY3RvcnMuXFxuICAgICAqIHZhciBlbGVtZW50cyA9IF8uYXR0ZW1wdChmdW5jdGlvbihzZWxlY3Rvcikge1xcbiAgICAgKiAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcXG4gICAgICogfSwgJz5fPicpO1xcbiAgICAgKlxcbiAgICAgKiBpZiAoXy5pc0Vycm9yKGVsZW1lbnRzKSkge1xcbiAgICAgKiAgIGVsZW1lbnRzID0gW107XFxuICAgICAqIH1cXG4gICAgICovXFxuICAgIHZhciBhdHRlbXB0ID0gYmFzZVJlc3QoZnVuY3Rpb24oZnVuYywgYXJncykge1xcbiAgICAgIHRyeSB7XFxuICAgICAgICByZXR1cm4gYXBwbHkoZnVuYywgdW5kZWZpbmVkLCBhcmdzKTtcXG4gICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICByZXR1cm4gaXNFcnJvcihlKSA/IGUgOiBuZXcgRXJyb3IoZSk7XFxuICAgICAgfVxcbiAgICB9KTtcXG5cXG4gICAgLyoqXFxuICAgICAqIEJpbmRzIG1ldGhvZHMgb2YgYW4gb2JqZWN0IHRvIHRoZSBvYmplY3QgaXRzZWxmLCBvdmVyd3JpdGluZyB0aGUgZXhpc3RpbmdcXG4gICAgICogbWV0aG9kLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgZG9lc24ndCBzZXQgdGhlIFxcXCJsZW5ndGhcXFwiIHByb3BlcnR5IG9mIGJvdW5kIGZ1bmN0aW9ucy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQGNhdGVnb3J5IFV0aWxcXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGJpbmQgYW5kIGFzc2lnbiB0aGUgYm91bmQgbWV0aG9kcyB0by5cXG4gICAgICogQHBhcmFtIHsuLi4oc3RyaW5nfHN0cmluZ1tdKX0gbWV0aG9kTmFtZXMgVGhlIG9iamVjdCBtZXRob2QgbmFtZXMgdG8gYmluZC5cXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIHZpZXcgPSB7XFxuICAgICAqICAgJ2xhYmVsJzogJ2RvY3MnLFxcbiAgICAgKiAgICdjbGljayc6IGZ1bmN0aW9uKCkge1xcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ2NsaWNrZWQgJyArIHRoaXMubGFiZWwpO1xcbiAgICAgKiAgIH1cXG4gICAgICogfTtcXG4gICAgICpcXG4gICAgICogXy5iaW5kQWxsKHZpZXcsIFsnY2xpY2snXSk7XFxuICAgICAqIGpRdWVyeShlbGVtZW50KS5vbignY2xpY2snLCB2aWV3LmNsaWNrKTtcXG4gICAgICogLy8gPT4gTG9ncyAnY2xpY2tlZCBkb2NzJyB3aGVuIGNsaWNrZWQuXFxuICAgICAqL1xcbiAgICB2YXIgYmluZEFsbCA9IGZsYXRSZXN0KGZ1bmN0aW9uKG9iamVjdCwgbWV0aG9kTmFtZXMpIHtcXG4gICAgICBhcnJheUVhY2gobWV0aG9kTmFtZXMsIGZ1bmN0aW9uKGtleSkge1xcbiAgICAgICAga2V5ID0gdG9LZXkoa2V5KTtcXG4gICAgICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgYmluZChvYmplY3Rba2V5XSwgb2JqZWN0KSk7XFxuICAgICAgfSk7XFxuICAgICAgcmV0dXJuIG9iamVjdDtcXG4gICAgfSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpdGVyYXRlcyBvdmVyIGBwYWlyc2AgYW5kIGludm9rZXMgdGhlIGNvcnJlc3BvbmRpbmdcXG4gICAgICogZnVuY3Rpb24gb2YgdGhlIGZpcnN0IHByZWRpY2F0ZSB0byByZXR1cm4gdHJ1dGh5LiBUaGUgcHJlZGljYXRlLWZ1bmN0aW9uXFxuICAgICAqIHBhaXJzIGFyZSBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIGFuZCBhcmd1bWVudHMgb2YgdGhlIGNyZWF0ZWRcXG4gICAgICogZnVuY3Rpb24uXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhaXJzIFRoZSBwcmVkaWNhdGUtZnVuY3Rpb24gcGFpcnMuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNvbXBvc2l0ZSBmdW5jdGlvbi5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIGZ1bmMgPSBfLmNvbmQoW1xcbiAgICAgKiAgIFtfLm1hdGNoZXMoeyAnYSc6IDEgfSksICAgICAgICAgICBfLmNvbnN0YW50KCdtYXRjaGVzIEEnKV0sXFxuICAgICAqICAgW18uY29uZm9ybXMoeyAnYic6IF8uaXNOdW1iZXIgfSksIF8uY29uc3RhbnQoJ21hdGNoZXMgQicpXSxcXG4gICAgICogICBbXy5zdHViVHJ1ZSwgICAgICAgICAgICAgICAgICAgICAgXy5jb25zdGFudCgnbm8gbWF0Y2gnKV1cXG4gICAgICogXSk7XFxuICAgICAqXFxuICAgICAqIGZ1bmMoeyAnYSc6IDEsICdiJzogMiB9KTtcXG4gICAgICogLy8gPT4gJ21hdGNoZXMgQSdcXG4gICAgICpcXG4gICAgICogZnVuYyh7ICdhJzogMCwgJ2InOiAxIH0pO1xcbiAgICAgKiAvLyA9PiAnbWF0Y2hlcyBCJ1xcbiAgICAgKlxcbiAgICAgKiBmdW5jKHsgJ2EnOiAnMScsICdiJzogJzInIH0pO1xcbiAgICAgKiAvLyA9PiAnbm8gbWF0Y2gnXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBjb25kKHBhaXJzKSB7XFxuICAgICAgdmFyIGxlbmd0aCA9IHBhaXJzID09IG51bGwgPyAwIDogcGFpcnMubGVuZ3RoLFxcbiAgICAgICAgICB0b0l0ZXJhdGVlID0gZ2V0SXRlcmF0ZWUoKTtcXG5cXG4gICAgICBwYWlycyA9ICFsZW5ndGggPyBbXSA6IGFycmF5TWFwKHBhaXJzLCBmdW5jdGlvbihwYWlyKSB7XFxuICAgICAgICBpZiAodHlwZW9mIHBhaXJbMV0gIT0gJ2Z1bmN0aW9uJykge1xcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gW3RvSXRlcmF0ZWUocGFpclswXSksIHBhaXJbMV1dO1xcbiAgICAgIH0pO1xcblxcbiAgICAgIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihhcmdzKSB7XFxuICAgICAgICB2YXIgaW5kZXggPSAtMTtcXG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XFxuICAgICAgICAgIHZhciBwYWlyID0gcGFpcnNbaW5kZXhdO1xcbiAgICAgICAgICBpZiAoYXBwbHkocGFpclswXSwgdGhpcywgYXJncykpIHtcXG4gICAgICAgICAgICByZXR1cm4gYXBwbHkocGFpclsxXSwgdGhpcywgYXJncyk7XFxuICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICB9KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyB0aGUgcHJlZGljYXRlIHByb3BlcnRpZXMgb2YgYHNvdXJjZWAgd2l0aFxcbiAgICAgKiB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSB2YWx1ZXMgb2YgYSBnaXZlbiBvYmplY3QsIHJldHVybmluZyBgdHJ1ZWAgaWZcXG4gICAgICogYWxsIHByZWRpY2F0ZXMgcmV0dXJuIHRydXRoeSwgZWxzZSBgZmFsc2VgLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogVGhlIGNyZWF0ZWQgZnVuY3Rpb24gaXMgZXF1aXZhbGVudCB0byBgXy5jb25mb3Jtc1RvYCB3aXRoXFxuICAgICAqIGBzb3VyY2VgIHBhcnRpYWxseSBhcHBsaWVkLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgcHJlZGljYXRlcyB0byBjb25mb3JtIHRvLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFtcXG4gICAgICogICB7ICdhJzogMiwgJ2InOiAxIH0sXFxuICAgICAqICAgeyAnYSc6IDEsICdiJzogMiB9XFxuICAgICAqIF07XFxuICAgICAqXFxuICAgICAqIF8uZmlsdGVyKG9iamVjdHMsIF8uY29uZm9ybXMoeyAnYic6IGZ1bmN0aW9uKG4pIHsgcmV0dXJuIG4gPiAxOyB9IH0pKTtcXG4gICAgICogLy8gPT4gW3sgJ2EnOiAxLCAnYic6IDIgfV1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGNvbmZvcm1zKHNvdXJjZSkge1xcbiAgICAgIHJldHVybiBiYXNlQ29uZm9ybXMoYmFzZUNsb25lKHNvdXJjZSwgQ0xPTkVfREVFUF9GTEFHKSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYHZhbHVlYC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMi40LjBcXG4gICAgICogQGNhdGVnb3J5IFV0aWxcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmV0dXJuIGZyb20gdGhlIG5ldyBmdW5jdGlvbi5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY29uc3RhbnQgZnVuY3Rpb24uXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3RzID0gXy50aW1lcygyLCBfLmNvbnN0YW50KHsgJ2EnOiAxIH0pKTtcXG4gICAgICpcXG4gICAgICogY29uc29sZS5sb2cob2JqZWN0cyk7XFxuICAgICAqIC8vID0+IFt7ICdhJzogMSB9LCB7ICdhJzogMSB9XVxcbiAgICAgKlxcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3RzWzBdID09PSBvYmplY3RzWzFdKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gY29uc3RhbnQodmFsdWUpIHtcXG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XFxuICAgICAgICByZXR1cm4gdmFsdWU7XFxuICAgICAgfTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ2hlY2tzIGB2YWx1ZWAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSByZXR1cm5lZCBpblxcbiAgICAgKiBpdHMgcGxhY2UuIFRoZSBgZGVmYXVsdFZhbHVlYCBpcyByZXR1cm5lZCBpZiBgdmFsdWVgIGlzIGBOYU5gLCBgbnVsbGAsXFxuICAgICAqIG9yIGB1bmRlZmluZWRgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjE0LjBcXG4gICAgICogQGNhdGVnb3J5IFV0aWxcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXFxuICAgICAqIEBwYXJhbSB7Kn0gZGVmYXVsdFZhbHVlIFRoZSBkZWZhdWx0IHZhbHVlLlxcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdmFsdWUuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uZGVmYXVsdFRvKDEsIDEwKTtcXG4gICAgICogLy8gPT4gMVxcbiAgICAgKlxcbiAgICAgKiBfLmRlZmF1bHRUbyh1bmRlZmluZWQsIDEwKTtcXG4gICAgICogLy8gPT4gMTBcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGRlZmF1bHRUbyh2YWx1ZSwgZGVmYXVsdFZhbHVlKSB7XFxuICAgICAgcmV0dXJuICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlICE9PSB2YWx1ZSkgPyBkZWZhdWx0VmFsdWUgOiB2YWx1ZTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIGludm9raW5nIHRoZSBnaXZlbiBmdW5jdGlvbnNcXG4gICAgICogd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgdGhlIGNyZWF0ZWQgZnVuY3Rpb24sIHdoZXJlIGVhY2ggc3VjY2Vzc2l2ZVxcbiAgICAgKiBpbnZvY2F0aW9uIGlzIHN1cHBsaWVkIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHByZXZpb3VzLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxcbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW2Z1bmNzXSBUaGUgZnVuY3Rpb25zIHRvIGludm9rZS5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY29tcG9zaXRlIGZ1bmN0aW9uLlxcbiAgICAgKiBAc2VlIF8uZmxvd1JpZ2h0XFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIGZ1bmN0aW9uIHNxdWFyZShuKSB7XFxuICAgICAqICAgcmV0dXJuIG4gKiBuO1xcbiAgICAgKiB9XFxuICAgICAqXFxuICAgICAqIHZhciBhZGRTcXVhcmUgPSBfLmZsb3coW18uYWRkLCBzcXVhcmVdKTtcXG4gICAgICogYWRkU3F1YXJlKDEsIDIpO1xcbiAgICAgKiAvLyA9PiA5XFxuICAgICAqL1xcbiAgICB2YXIgZmxvdyA9IGNyZWF0ZUZsb3coKTtcXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmxvd2AgZXhjZXB0IHRoYXQgaXQgY3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXRcXG4gICAgICogaW52b2tlcyB0aGUgZ2l2ZW4gZnVuY3Rpb25zIGZyb20gcmlnaHQgdG8gbGVmdC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAc2luY2UgMy4wLjBcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQGNhdGVnb3J5IFV0aWxcXG4gICAgICogQHBhcmFtIHsuLi4oRnVuY3Rpb258RnVuY3Rpb25bXSl9IFtmdW5jc10gVGhlIGZ1bmN0aW9ucyB0byBpbnZva2UuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNvbXBvc2l0ZSBmdW5jdGlvbi5cXG4gICAgICogQHNlZSBfLmZsb3dcXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcXG4gICAgICogICByZXR1cm4gbiAqIG47XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogdmFyIGFkZFNxdWFyZSA9IF8uZmxvd1JpZ2h0KFtzcXVhcmUsIF8uYWRkXSk7XFxuICAgICAqIGFkZFNxdWFyZSgxLCAyKTtcXG4gICAgICogLy8gPT4gOVxcbiAgICAgKi9cXG4gICAgdmFyIGZsb3dSaWdodCA9IGNyZWF0ZUZsb3codHJ1ZSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBmaXJzdCBhcmd1bWVudCBpdCByZWNlaXZlcy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQGNhdGVnb3J5IFV0aWxcXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBBbnkgdmFsdWUuXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIGB2YWx1ZWAuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSB9O1xcbiAgICAgKlxcbiAgICAgKiBjb25zb2xlLmxvZyhfLmlkZW50aXR5KG9iamVjdCkgPT09IG9iamVjdCk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGlkZW50aXR5KHZhbHVlKSB7XFxuICAgICAgcmV0dXJuIHZhbHVlO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIHRoZSBhcmd1bWVudHMgb2YgdGhlIGNyZWF0ZWRcXG4gICAgICogZnVuY3Rpb24uIElmIGBmdW5jYCBpcyBhIHByb3BlcnR5IG5hbWUsIHRoZSBjcmVhdGVkIGZ1bmN0aW9uIHJldHVybnMgdGhlXFxuICAgICAqIHByb3BlcnR5IHZhbHVlIGZvciBhIGdpdmVuIGVsZW1lbnQuIElmIGBmdW5jYCBpcyBhbiBhcnJheSBvciBvYmplY3QsIHRoZVxcbiAgICAgKiBjcmVhdGVkIGZ1bmN0aW9uIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGNvbnRhaW4gdGhlIGVxdWl2YWxlbnRcXG4gICAgICogc291cmNlIHByb3BlcnRpZXMsIG90aGVyd2lzZSBpdCByZXR1cm5zIGBmYWxzZWAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXFxuICAgICAqIEBwYXJhbSB7Kn0gW2Z1bmM9Xy5pZGVudGl0eV0gVGhlIHZhbHVlIHRvIGNvbnZlcnQgdG8gYSBjYWxsYmFjay5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjYWxsYmFjay5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIHVzZXJzID0gW1xcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9LFxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfVxcbiAgICAgKiBdO1xcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLmZpbHRlcih1c2VycywgXy5pdGVyYXRlZSh7ICd1c2VyJzogJ2Jhcm5leScsICdhY3RpdmUnOiB0cnVlIH0pKTtcXG4gICAgICogLy8gPT4gW3sgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9XVxcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8uZmlsdGVyKHVzZXJzLCBfLml0ZXJhdGVlKFsndXNlcicsICdmcmVkJ10pKTtcXG4gICAgICogLy8gPT4gW3sgJ3VzZXInOiAnZnJlZCcsICdhZ2UnOiA0MCB9XVxcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy5tYXAodXNlcnMsIF8uaXRlcmF0ZWUoJ3VzZXInKSk7XFxuICAgICAqIC8vID0+IFsnYmFybmV5JywgJ2ZyZWQnXVxcbiAgICAgKlxcbiAgICAgKiAvLyBDcmVhdGUgY3VzdG9tIGl0ZXJhdGVlIHNob3J0aGFuZHMuXFxuICAgICAqIF8uaXRlcmF0ZWUgPSBfLndyYXAoXy5pdGVyYXRlZSwgZnVuY3Rpb24oaXRlcmF0ZWUsIGZ1bmMpIHtcXG4gICAgICogICByZXR1cm4gIV8uaXNSZWdFeHAoZnVuYykgPyBpdGVyYXRlZShmdW5jKSA6IGZ1bmN0aW9uKHN0cmluZykge1xcbiAgICAgKiAgICAgcmV0dXJuIGZ1bmMudGVzdChzdHJpbmcpO1xcbiAgICAgKiAgIH07XFxuICAgICAqIH0pO1xcbiAgICAgKlxcbiAgICAgKiBfLmZpbHRlcihbJ2FiYycsICdkZWYnXSwgL2VmLyk7XFxuICAgICAqIC8vID0+IFsnZGVmJ11cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIGl0ZXJhdGVlKGZ1bmMpIHtcXG4gICAgICByZXR1cm4gYmFzZUl0ZXJhdGVlKHR5cGVvZiBmdW5jID09ICdmdW5jdGlvbicgPyBmdW5jIDogYmFzZUNsb25lKGZ1bmMsIENMT05FX0RFRVBfRkxBRykpO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwZXJmb3JtcyBhIHBhcnRpYWwgZGVlcCBjb21wYXJpc29uIGJldHdlZW4gYSBnaXZlblxcbiAgICAgKiBvYmplY3QgYW5kIGBzb3VyY2VgLCByZXR1cm5pbmcgYHRydWVgIGlmIHRoZSBnaXZlbiBvYmplY3QgaGFzIGVxdWl2YWxlbnRcXG4gICAgICogcHJvcGVydHkgdmFsdWVzLCBlbHNlIGBmYWxzZWAuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBUaGUgY3JlYXRlZCBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIGBfLmlzTWF0Y2hgIHdpdGggYHNvdXJjZWBcXG4gICAgICogcGFydGlhbGx5IGFwcGxpZWQuXFxuICAgICAqXFxuICAgICAqIFBhcnRpYWwgY29tcGFyaXNvbnMgd2lsbCBtYXRjaCBlbXB0eSBhcnJheSBhbmQgZW1wdHkgb2JqZWN0IGBzb3VyY2VgXFxuICAgICAqIHZhbHVlcyBhZ2FpbnN0IGFueSBhcnJheSBvciBvYmplY3QgdmFsdWUsIHJlc3BlY3RpdmVseS4gU2VlIGBfLmlzRXF1YWxgXFxuICAgICAqIGZvciBhIGxpc3Qgb2Ygc3VwcG9ydGVkIHZhbHVlIGNvbXBhcmlzb25zLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogTXVsdGlwbGUgdmFsdWVzIGNhbiBiZSBjaGVja2VkIGJ5IGNvbWJpbmluZyBzZXZlcmFsIG1hdGNoZXJzXFxuICAgICAqIHVzaW5nIGBfLm92ZXJTb21lYFxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgdmFsdWVzIHRvIG1hdGNoLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFtcXG4gICAgICogICB7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDMgfSxcXG4gICAgICogICB7ICdhJzogNCwgJ2InOiA1LCAnYyc6IDYgfVxcbiAgICAgKiBdO1xcbiAgICAgKlxcbiAgICAgKiBfLmZpbHRlcihvYmplY3RzLCBfLm1hdGNoZXMoeyAnYSc6IDQsICdjJzogNiB9KSk7XFxuICAgICAqIC8vID0+IFt7ICdhJzogNCwgJ2InOiA1LCAnYyc6IDYgfV1cXG4gICAgICpcXG4gICAgICogLy8gQ2hlY2tpbmcgZm9yIHNldmVyYWwgcG9zc2libGUgdmFsdWVzXFxuICAgICAqIF8uZmlsdGVyKG9iamVjdHMsIF8ub3ZlclNvbWUoW18ubWF0Y2hlcyh7ICdhJzogMSB9KSwgXy5tYXRjaGVzKHsgJ2EnOiA0IH0pXSkpO1xcbiAgICAgKiAvLyA9PiBbeyAnYSc6IDEsICdiJzogMiwgJ2MnOiAzIH0sIHsgJ2EnOiA0LCAnYic6IDUsICdjJzogNiB9XVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gbWF0Y2hlcyhzb3VyY2UpIHtcXG4gICAgICByZXR1cm4gYmFzZU1hdGNoZXMoYmFzZUNsb25lKHNvdXJjZSwgQ0xPTkVfREVFUF9GTEFHKSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHBlcmZvcm1zIGEgcGFydGlhbCBkZWVwIGNvbXBhcmlzb24gYmV0d2VlbiB0aGVcXG4gICAgICogdmFsdWUgYXQgYHBhdGhgIG9mIGEgZ2l2ZW4gb2JqZWN0IHRvIGBzcmNWYWx1ZWAsIHJldHVybmluZyBgdHJ1ZWAgaWYgdGhlXFxuICAgICAqIG9iamVjdCB2YWx1ZSBpcyBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBQYXJ0aWFsIGNvbXBhcmlzb25zIHdpbGwgbWF0Y2ggZW1wdHkgYXJyYXkgYW5kIGVtcHR5IG9iamVjdFxcbiAgICAgKiBgc3JjVmFsdWVgIHZhbHVlcyBhZ2FpbnN0IGFueSBhcnJheSBvciBvYmplY3QgdmFsdWUsIHJlc3BlY3RpdmVseS4gU2VlXFxuICAgICAqIGBfLmlzRXF1YWxgIGZvciBhIGxpc3Qgb2Ygc3VwcG9ydGVkIHZhbHVlIGNvbXBhcmlzb25zLlxcbiAgICAgKlxcbiAgICAgKiAqKk5vdGU6KiogTXVsdGlwbGUgdmFsdWVzIGNhbiBiZSBjaGVja2VkIGJ5IGNvbWJpbmluZyBzZXZlcmFsIG1hdGNoZXJzXFxuICAgICAqIHVzaW5nIGBfLm92ZXJTb21lYFxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjIuMFxcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxcbiAgICAgKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc3BlYyBmdW5jdGlvbi5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIG9iamVjdHMgPSBbXFxuICAgICAqICAgeyAnYSc6IDEsICdiJzogMiwgJ2MnOiAzIH0sXFxuICAgICAqICAgeyAnYSc6IDQsICdiJzogNSwgJ2MnOiA2IH1cXG4gICAgICogXTtcXG4gICAgICpcXG4gICAgICogXy5maW5kKG9iamVjdHMsIF8ubWF0Y2hlc1Byb3BlcnR5KCdhJywgNCkpO1xcbiAgICAgKiAvLyA9PiB7ICdhJzogNCwgJ2InOiA1LCAnYyc6IDYgfVxcbiAgICAgKlxcbiAgICAgKiAvLyBDaGVja2luZyBmb3Igc2V2ZXJhbCBwb3NzaWJsZSB2YWx1ZXNcXG4gICAgICogXy5maWx0ZXIob2JqZWN0cywgXy5vdmVyU29tZShbXy5tYXRjaGVzUHJvcGVydHkoJ2EnLCAxKSwgXy5tYXRjaGVzUHJvcGVydHkoJ2EnLCA0KV0pKTtcXG4gICAgICogLy8gPT4gW3sgJ2EnOiAxLCAnYic6IDIsICdjJzogMyB9LCB7ICdhJzogNCwgJ2InOiA1LCAnYyc6IDYgfV1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIG1hdGNoZXNQcm9wZXJ0eShwYXRoLCBzcmNWYWx1ZSkge1xcbiAgICAgIHJldHVybiBiYXNlTWF0Y2hlc1Byb3BlcnR5KHBhdGgsIGJhc2VDbG9uZShzcmNWYWx1ZSwgQ0xPTkVfREVFUF9GTEFHKSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgdGhlIG1ldGhvZCBhdCBgcGF0aGAgb2YgYSBnaXZlbiBvYmplY3QuXFxuICAgICAqIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQgdG8gdGhlIGludm9rZWQgbWV0aG9kLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjcuMFxcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgbWV0aG9kIHRvIGludm9rZS5cXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgdGhlIG1ldGhvZCB3aXRoLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBpbnZva2VyIGZ1bmN0aW9uLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFtcXG4gICAgICogICB7ICdhJzogeyAnYic6IF8uY29uc3RhbnQoMikgfSB9LFxcbiAgICAgKiAgIHsgJ2EnOiB7ICdiJzogXy5jb25zdGFudCgxKSB9IH1cXG4gICAgICogXTtcXG4gICAgICpcXG4gICAgICogXy5tYXAob2JqZWN0cywgXy5tZXRob2QoJ2EuYicpKTtcXG4gICAgICogLy8gPT4gWzIsIDFdXFxuICAgICAqXFxuICAgICAqIF8ubWFwKG9iamVjdHMsIF8ubWV0aG9kKFsnYScsICdiJ10pKTtcXG4gICAgICogLy8gPT4gWzIsIDFdXFxuICAgICAqL1xcbiAgICB2YXIgbWV0aG9kID0gYmFzZVJlc3QoZnVuY3Rpb24ocGF0aCwgYXJncykge1xcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcXG4gICAgICAgIHJldHVybiBiYXNlSW52b2tlKG9iamVjdCwgcGF0aCwgYXJncyk7XFxuICAgICAgfTtcXG4gICAgfSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8ubWV0aG9kYDsgdGhpcyBtZXRob2QgY3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlc1xcbiAgICAgKiB0aGUgbWV0aG9kIGF0IGEgZ2l2ZW4gcGF0aCBvZiBgb2JqZWN0YC4gQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZVxcbiAgICAgKiBwcm92aWRlZCB0byB0aGUgaW52b2tlZCBtZXRob2QuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuNy4wXFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgdGhlIG1ldGhvZCB3aXRoLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBpbnZva2VyIGZ1bmN0aW9uLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgYXJyYXkgPSBfLnRpbWVzKDMsIF8uY29uc3RhbnQpLFxcbiAgICAgKiAgICAgb2JqZWN0ID0geyAnYSc6IGFycmF5LCAnYic6IGFycmF5LCAnYyc6IGFycmF5IH07XFxuICAgICAqXFxuICAgICAqIF8ubWFwKFsnYVsyXScsICdjWzBdJ10sIF8ubWV0aG9kT2Yob2JqZWN0KSk7XFxuICAgICAqIC8vID0+IFsyLCAwXVxcbiAgICAgKlxcbiAgICAgKiBfLm1hcChbWydhJywgJzInXSwgWydjJywgJzAnXV0sIF8ubWV0aG9kT2Yob2JqZWN0KSk7XFxuICAgICAqIC8vID0+IFsyLCAwXVxcbiAgICAgKi9cXG4gICAgdmFyIG1ldGhvZE9mID0gYmFzZVJlc3QoZnVuY3Rpb24ob2JqZWN0LCBhcmdzKSB7XFxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHBhdGgpIHtcXG4gICAgICAgIHJldHVybiBiYXNlSW52b2tlKG9iamVjdCwgcGF0aCwgYXJncyk7XFxuICAgICAgfTtcXG4gICAgfSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBBZGRzIGFsbCBvd24gZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgZnVuY3Rpb24gcHJvcGVydGllcyBvZiBhIHNvdXJjZVxcbiAgICAgKiBvYmplY3QgdG8gdGhlIGRlc3RpbmF0aW9uIG9iamVjdC4gSWYgYG9iamVjdGAgaXMgYSBmdW5jdGlvbiwgdGhlbiBtZXRob2RzXFxuICAgICAqIGFyZSBhZGRlZCB0byBpdHMgcHJvdG90eXBlIGFzIHdlbGwuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBVc2UgYF8ucnVuSW5Db250ZXh0YCB0byBjcmVhdGUgYSBwcmlzdGluZSBgbG9kYXNoYCBmdW5jdGlvbiB0b1xcbiAgICAgKiBhdm9pZCBjb25mbGljdHMgY2F1c2VkIGJ5IG1vZGlmeWluZyB0aGUgb3JpZ2luYWwuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fSBbb2JqZWN0PWxvZGFzaF0gVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIGZ1bmN0aW9ucyB0byBhZGQuXFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmNoYWluPXRydWVdIFNwZWNpZnkgd2hldGhlciBtaXhpbnMgYXJlIGNoYWluYWJsZS5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufE9iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogZnVuY3Rpb24gdm93ZWxzKHN0cmluZykge1xcbiAgICAgKiAgIHJldHVybiBfLmZpbHRlcihzdHJpbmcsIGZ1bmN0aW9uKHYpIHtcXG4gICAgICogICAgIHJldHVybiAvW2FlaW91XS9pLnRlc3Qodik7XFxuICAgICAqICAgfSk7XFxuICAgICAqIH1cXG4gICAgICpcXG4gICAgICogXy5taXhpbih7ICd2b3dlbHMnOiB2b3dlbHMgfSk7XFxuICAgICAqIF8udm93ZWxzKCdmcmVkJyk7XFxuICAgICAqIC8vID0+IFsnZSddXFxuICAgICAqXFxuICAgICAqIF8oJ2ZyZWQnKS52b3dlbHMoKS52YWx1ZSgpO1xcbiAgICAgKiAvLyA9PiBbJ2UnXVxcbiAgICAgKlxcbiAgICAgKiBfLm1peGluKHsgJ3Zvd2Vscyc6IHZvd2VscyB9LCB7ICdjaGFpbic6IGZhbHNlIH0pO1xcbiAgICAgKiBfKCdmcmVkJykudm93ZWxzKCk7XFxuICAgICAqIC8vID0+IFsnZSddXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBtaXhpbihvYmplY3QsIHNvdXJjZSwgb3B0aW9ucykge1xcbiAgICAgIHZhciBwcm9wcyA9IGtleXMoc291cmNlKSxcXG4gICAgICAgICAgbWV0aG9kTmFtZXMgPSBiYXNlRnVuY3Rpb25zKHNvdXJjZSwgcHJvcHMpO1xcblxcbiAgICAgIGlmIChvcHRpb25zID09IG51bGwgJiZcXG4gICAgICAgICAgIShpc09iamVjdChzb3VyY2UpICYmIChtZXRob2ROYW1lcy5sZW5ndGggfHwgIXByb3BzLmxlbmd0aCkpKSB7XFxuICAgICAgICBvcHRpb25zID0gc291cmNlO1xcbiAgICAgICAgc291cmNlID0gb2JqZWN0O1xcbiAgICAgICAgb2JqZWN0ID0gdGhpcztcXG4gICAgICAgIG1ldGhvZE5hbWVzID0gYmFzZUZ1bmN0aW9ucyhzb3VyY2UsIGtleXMoc291cmNlKSk7XFxuICAgICAgfVxcbiAgICAgIHZhciBjaGFpbiA9ICEoaXNPYmplY3Qob3B0aW9ucykgJiYgJ2NoYWluJyBpbiBvcHRpb25zKSB8fCAhIW9wdGlvbnMuY2hhaW4sXFxuICAgICAgICAgIGlzRnVuYyA9IGlzRnVuY3Rpb24ob2JqZWN0KTtcXG5cXG4gICAgICBhcnJheUVhY2gobWV0aG9kTmFtZXMsIGZ1bmN0aW9uKG1ldGhvZE5hbWUpIHtcXG4gICAgICAgIHZhciBmdW5jID0gc291cmNlW21ldGhvZE5hbWVdO1xcbiAgICAgICAgb2JqZWN0W21ldGhvZE5hbWVdID0gZnVuYztcXG4gICAgICAgIGlmIChpc0Z1bmMpIHtcXG4gICAgICAgICAgb2JqZWN0LnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xcbiAgICAgICAgICAgIHZhciBjaGFpbkFsbCA9IHRoaXMuX19jaGFpbl9fO1xcbiAgICAgICAgICAgIGlmIChjaGFpbiB8fCBjaGFpbkFsbCkge1xcbiAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG9iamVjdCh0aGlzLl9fd3JhcHBlZF9fKSxcXG4gICAgICAgICAgICAgICAgICBhY3Rpb25zID0gcmVzdWx0Ll9fYWN0aW9uc19fID0gY29weUFycmF5KHRoaXMuX19hY3Rpb25zX18pO1xcblxcbiAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHsgJ2Z1bmMnOiBmdW5jLCAnYXJncyc6IGFyZ3VtZW50cywgJ3RoaXNBcmcnOiBvYmplY3QgfSk7XFxuICAgICAgICAgICAgICByZXN1bHQuX19jaGFpbl9fID0gY2hhaW5BbGw7XFxuICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseShvYmplY3QsIGFycmF5UHVzaChbdGhpcy52YWx1ZSgpXSwgYXJndW1lbnRzKSk7XFxuICAgICAgICAgIH07XFxuICAgICAgICB9XFxuICAgICAgfSk7XFxuXFxuICAgICAgcmV0dXJuIG9iamVjdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogUmV2ZXJ0cyB0aGUgYF9gIHZhcmlhYmxlIHRvIGl0cyBwcmV2aW91cyB2YWx1ZSBhbmQgcmV0dXJucyBhIHJlZmVyZW5jZSB0b1xcbiAgICAgKiB0aGUgYGxvZGFzaGAgZnVuY3Rpb24uXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQHNpbmNlIDAuMS4wXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgYGxvZGFzaGAgZnVuY3Rpb24uXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBsb2Rhc2ggPSBfLm5vQ29uZmxpY3QoKTtcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIG5vQ29uZmxpY3QoKSB7XFxuICAgICAgaWYgKHJvb3QuXyA9PT0gdGhpcykge1xcbiAgICAgICAgcm9vdC5fID0gb2xkRGFzaDtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHRoaXM7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYHVuZGVmaW5lZGAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDIuMy4wXFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8udGltZXMoMiwgXy5ub29wKTtcXG4gICAgICogLy8gPT4gW3VuZGVmaW5lZCwgdW5kZWZpbmVkXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gbm9vcCgpIHtcXG4gICAgICAvLyBObyBvcGVyYXRpb24gcGVyZm9ybWVkLlxcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBnZXRzIHRoZSBhcmd1bWVudCBhdCBpbmRleCBgbmAuIElmIGBuYCBpcyBuZWdhdGl2ZSxcXG4gICAgICogdGhlIG50aCBhcmd1bWVudCBmcm9tIHRoZSBlbmQgaXMgcmV0dXJuZWQuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0wXSBUaGUgaW5kZXggb2YgdGhlIGFyZ3VtZW50IHRvIHJldHVybi5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcGFzcy10aHJ1IGZ1bmN0aW9uLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgZnVuYyA9IF8ubnRoQXJnKDEpO1xcbiAgICAgKiBmdW5jKCdhJywgJ2InLCAnYycsICdkJyk7XFxuICAgICAqIC8vID0+ICdiJ1xcbiAgICAgKlxcbiAgICAgKiB2YXIgZnVuYyA9IF8ubnRoQXJnKC0yKTtcXG4gICAgICogZnVuYygnYScsICdiJywgJ2MnLCAnZCcpO1xcbiAgICAgKiAvLyA9PiAnYydcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIG50aEFyZyhuKSB7XFxuICAgICAgbiA9IHRvSW50ZWdlcihuKTtcXG4gICAgICByZXR1cm4gYmFzZVJlc3QoZnVuY3Rpb24oYXJncykge1xcbiAgICAgICAgcmV0dXJuIGJhc2VOdGgoYXJncywgbik7XFxuICAgICAgfSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGl0ZXJhdGVlc2Agd2l0aCB0aGUgYXJndW1lbnRzIGl0IHJlY2VpdmVzXFxuICAgICAqIGFuZCByZXR1cm5zIHRoZWlyIHJlc3VsdHMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXFxuICAgICAqIEBwYXJhbSB7Li4uKEZ1bmN0aW9ufEZ1bmN0aW9uW10pfSBbaXRlcmF0ZWVzPVtfLmlkZW50aXR5XV1cXG4gICAgICogIFRoZSBpdGVyYXRlZXMgdG8gaW52b2tlLlxcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIGZ1bmMgPSBfLm92ZXIoW01hdGgubWF4LCBNYXRoLm1pbl0pO1xcbiAgICAgKlxcbiAgICAgKiBmdW5jKDEsIDIsIDMsIDQpO1xcbiAgICAgKiAvLyA9PiBbNCwgMV1cXG4gICAgICovXFxuICAgIHZhciBvdmVyID0gY3JlYXRlT3ZlcihhcnJheU1hcCk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBjaGVja3MgaWYgKiphbGwqKiBvZiB0aGUgYHByZWRpY2F0ZXNgIHJldHVyblxcbiAgICAgKiB0cnV0aHkgd2hlbiBpbnZva2VkIHdpdGggdGhlIGFyZ3VtZW50cyBpdCByZWNlaXZlcy5cXG4gICAgICpcXG4gICAgICogRm9sbG93aW5nIHNob3J0aGFuZHMgYXJlIHBvc3NpYmxlIGZvciBwcm92aWRpbmcgcHJlZGljYXRlcy5cXG4gICAgICogUGFzcyBhbiBgT2JqZWN0YCBhbmQgaXQgd2lsbCBiZSB1c2VkIGFzIGFuIHBhcmFtZXRlciBmb3IgYF8ubWF0Y2hlc2AgdG8gY3JlYXRlIHRoZSBwcmVkaWNhdGUuXFxuICAgICAqIFBhc3MgYW4gYEFycmF5YCBvZiBwYXJhbWV0ZXJzIGZvciBgXy5tYXRjaGVzUHJvcGVydHlgIGFuZCB0aGUgcHJlZGljYXRlIHdpbGwgYmUgY3JlYXRlZCB1c2luZyB0aGVtLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxcbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW3ByZWRpY2F0ZXM9W18uaWRlbnRpdHldXVxcbiAgICAgKiAgVGhlIHByZWRpY2F0ZXMgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgZnVuYyA9IF8ub3ZlckV2ZXJ5KFtCb29sZWFuLCBpc0Zpbml0ZV0pO1xcbiAgICAgKlxcbiAgICAgKiBmdW5jKCcxJyk7XFxuICAgICAqIC8vID0+IHRydWVcXG4gICAgICpcXG4gICAgICogZnVuYyhudWxsKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICpcXG4gICAgICogZnVuYyhOYU4pO1xcbiAgICAgKiAvLyA9PiBmYWxzZVxcbiAgICAgKi9cXG4gICAgdmFyIG92ZXJFdmVyeSA9IGNyZWF0ZU92ZXIoYXJyYXlFdmVyeSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBjaGVja3MgaWYgKiphbnkqKiBvZiB0aGUgYHByZWRpY2F0ZXNgIHJldHVyblxcbiAgICAgKiB0cnV0aHkgd2hlbiBpbnZva2VkIHdpdGggdGhlIGFyZ3VtZW50cyBpdCByZWNlaXZlcy5cXG4gICAgICpcXG4gICAgICogRm9sbG93aW5nIHNob3J0aGFuZHMgYXJlIHBvc3NpYmxlIGZvciBwcm92aWRpbmcgcHJlZGljYXRlcy5cXG4gICAgICogUGFzcyBhbiBgT2JqZWN0YCBhbmQgaXQgd2lsbCBiZSB1c2VkIGFzIGFuIHBhcmFtZXRlciBmb3IgYF8ubWF0Y2hlc2AgdG8gY3JlYXRlIHRoZSBwcmVkaWNhdGUuXFxuICAgICAqIFBhc3MgYW4gYEFycmF5YCBvZiBwYXJhbWV0ZXJzIGZvciBgXy5tYXRjaGVzUHJvcGVydHlgIGFuZCB0aGUgcHJlZGljYXRlIHdpbGwgYmUgY3JlYXRlZCB1c2luZyB0aGVtLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxcbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW3ByZWRpY2F0ZXM9W18uaWRlbnRpdHldXVxcbiAgICAgKiAgVGhlIHByZWRpY2F0ZXMgdG8gY2hlY2suXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgZnVuYyA9IF8ub3ZlclNvbWUoW0Jvb2xlYW4sIGlzRmluaXRlXSk7XFxuICAgICAqXFxuICAgICAqIGZ1bmMoJzEnKTtcXG4gICAgICogLy8gPT4gdHJ1ZVxcbiAgICAgKlxcbiAgICAgKiBmdW5jKG51bGwpO1xcbiAgICAgKiAvLyA9PiB0cnVlXFxuICAgICAqXFxuICAgICAqIGZ1bmMoTmFOKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICpcXG4gICAgICogdmFyIG1hdGNoZXNGdW5jID0gXy5vdmVyU29tZShbeyAnYSc6IDEgfSwgeyAnYSc6IDIgfV0pXFxuICAgICAqIHZhciBtYXRjaGVzUHJvcGVydHlGdW5jID0gXy5vdmVyU29tZShbWydhJywgMV0sIFsnYScsIDJdXSlcXG4gICAgICovXFxuICAgIHZhciBvdmVyU29tZSA9IGNyZWF0ZU92ZXIoYXJyYXlTb21lKTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIHZhbHVlIGF0IGBwYXRoYCBvZiBhIGdpdmVuIG9iamVjdC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMi40LjBcXG4gICAgICogQGNhdGVnb3J5IFV0aWxcXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYWNjZXNzb3IgZnVuY3Rpb24uXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3RzID0gW1xcbiAgICAgKiAgIHsgJ2EnOiB7ICdiJzogMiB9IH0sXFxuICAgICAqICAgeyAnYSc6IHsgJ2InOiAxIH0gfVxcbiAgICAgKiBdO1xcbiAgICAgKlxcbiAgICAgKiBfLm1hcChvYmplY3RzLCBfLnByb3BlcnR5KCdhLmInKSk7XFxuICAgICAqIC8vID0+IFsyLCAxXVxcbiAgICAgKlxcbiAgICAgKiBfLm1hcChfLnNvcnRCeShvYmplY3RzLCBfLnByb3BlcnR5KFsnYScsICdiJ10pKSwgJ2EuYicpO1xcbiAgICAgKiAvLyA9PiBbMSwgMl1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHByb3BlcnR5KHBhdGgpIHtcXG4gICAgICByZXR1cm4gaXNLZXkocGF0aCkgPyBiYXNlUHJvcGVydHkodG9LZXkocGF0aCkpIDogYmFzZVByb3BlcnR5RGVlcChwYXRoKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLnByb3BlcnR5YDsgdGhpcyBtZXRob2QgY3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJuc1xcbiAgICAgKiB0aGUgdmFsdWUgYXQgYSBnaXZlbiBwYXRoIG9mIGBvYmplY3RgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgYXJyYXkgPSBbMCwgMSwgMl0sXFxuICAgICAqICAgICBvYmplY3QgPSB7ICdhJzogYXJyYXksICdiJzogYXJyYXksICdjJzogYXJyYXkgfTtcXG4gICAgICpcXG4gICAgICogXy5tYXAoWydhWzJdJywgJ2NbMF0nXSwgXy5wcm9wZXJ0eU9mKG9iamVjdCkpO1xcbiAgICAgKiAvLyA9PiBbMiwgMF1cXG4gICAgICpcXG4gICAgICogXy5tYXAoW1snYScsICcyJ10sIFsnYycsICcwJ11dLCBfLnByb3BlcnR5T2Yob2JqZWN0KSk7XFxuICAgICAqIC8vID0+IFsyLCAwXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gcHJvcGVydHlPZihvYmplY3QpIHtcXG4gICAgICByZXR1cm4gZnVuY3Rpb24ocGF0aCkge1xcbiAgICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogYmFzZUdldChvYmplY3QsIHBhdGgpO1xcbiAgICAgIH07XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgbnVtYmVycyAocG9zaXRpdmUgYW5kL29yIG5lZ2F0aXZlKSBwcm9ncmVzc2luZyBmcm9tXFxuICAgICAqIGBzdGFydGAgdXAgdG8sIGJ1dCBub3QgaW5jbHVkaW5nLCBgZW5kYC4gQSBzdGVwIG9mIGAtMWAgaXMgdXNlZCBpZiBhIG5lZ2F0aXZlXFxuICAgICAqIGBzdGFydGAgaXMgc3BlY2lmaWVkIHdpdGhvdXQgYW4gYGVuZGAgb3IgYHN0ZXBgLiBJZiBgZW5kYCBpcyBub3Qgc3BlY2lmaWVkLFxcbiAgICAgKiBpdCdzIHNldCB0byBgc3RhcnRgIHdpdGggYHN0YXJ0YCB0aGVuIHNldCB0byBgMGAuXFxuICAgICAqXFxuICAgICAqICoqTm90ZToqKiBKYXZhU2NyaXB0IGZvbGxvd3MgdGhlIElFRUUtNzU0IHN0YW5kYXJkIGZvciByZXNvbHZpbmdcXG4gICAgICogZmxvYXRpbmctcG9pbnQgdmFsdWVzIHdoaWNoIGNhbiBwcm9kdWNlIHVuZXhwZWN0ZWQgcmVzdWx0cy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQGNhdGVnb3J5IFV0aWxcXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kIFRoZSBlbmQgb2YgdGhlIHJhbmdlLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MV0gVGhlIHZhbHVlIHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgYnkuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcmFuZ2Ugb2YgbnVtYmVycy5cXG4gICAgICogQHNlZSBfLmluUmFuZ2UsIF8ucmFuZ2VSaWdodFxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLnJhbmdlKDQpO1xcbiAgICAgKiAvLyA9PiBbMCwgMSwgMiwgM11cXG4gICAgICpcXG4gICAgICogXy5yYW5nZSgtNCk7XFxuICAgICAqIC8vID0+IFswLCAtMSwgLTIsIC0zXVxcbiAgICAgKlxcbiAgICAgKiBfLnJhbmdlKDEsIDUpO1xcbiAgICAgKiAvLyA9PiBbMSwgMiwgMywgNF1cXG4gICAgICpcXG4gICAgICogXy5yYW5nZSgwLCAyMCwgNSk7XFxuICAgICAqIC8vID0+IFswLCA1LCAxMCwgMTVdXFxuICAgICAqXFxuICAgICAqIF8ucmFuZ2UoMCwgLTQsIC0xKTtcXG4gICAgICogLy8gPT4gWzAsIC0xLCAtMiwgLTNdXFxuICAgICAqXFxuICAgICAqIF8ucmFuZ2UoMSwgNCwgMCk7XFxuICAgICAqIC8vID0+IFsxLCAxLCAxXVxcbiAgICAgKlxcbiAgICAgKiBfLnJhbmdlKDApO1xcbiAgICAgKiAvLyA9PiBbXVxcbiAgICAgKi9cXG4gICAgdmFyIHJhbmdlID0gY3JlYXRlUmFuZ2UoKTtcXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ucmFuZ2VgIGV4Y2VwdCB0aGF0IGl0IHBvcHVsYXRlcyB2YWx1ZXMgaW5cXG4gICAgICogZGVzY2VuZGluZyBvcmRlci5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IFV0aWxcXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kIFRoZSBlbmQgb2YgdGhlIHJhbmdlLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MV0gVGhlIHZhbHVlIHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgYnkuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcmFuZ2Ugb2YgbnVtYmVycy5cXG4gICAgICogQHNlZSBfLmluUmFuZ2UsIF8ucmFuZ2VcXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5yYW5nZVJpZ2h0KDQpO1xcbiAgICAgKiAvLyA9PiBbMywgMiwgMSwgMF1cXG4gICAgICpcXG4gICAgICogXy5yYW5nZVJpZ2h0KC00KTtcXG4gICAgICogLy8gPT4gWy0zLCAtMiwgLTEsIDBdXFxuICAgICAqXFxuICAgICAqIF8ucmFuZ2VSaWdodCgxLCA1KTtcXG4gICAgICogLy8gPT4gWzQsIDMsIDIsIDFdXFxuICAgICAqXFxuICAgICAqIF8ucmFuZ2VSaWdodCgwLCAyMCwgNSk7XFxuICAgICAqIC8vID0+IFsxNSwgMTAsIDUsIDBdXFxuICAgICAqXFxuICAgICAqIF8ucmFuZ2VSaWdodCgwLCAtNCwgLTEpO1xcbiAgICAgKiAvLyA9PiBbLTMsIC0yLCAtMSwgMF1cXG4gICAgICpcXG4gICAgICogXy5yYW5nZVJpZ2h0KDEsIDQsIDApO1xcbiAgICAgKiAvLyA9PiBbMSwgMSwgMV1cXG4gICAgICpcXG4gICAgICogXy5yYW5nZVJpZ2h0KDApO1xcbiAgICAgKiAvLyA9PiBbXVxcbiAgICAgKi9cXG4gICAgdmFyIHJhbmdlUmlnaHQgPSBjcmVhdGVSYW5nZSh0cnVlKTtcXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgZW1wdHkgYXJyYXkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMTMuMFxcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBlbXB0eSBhcnJheS5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIGFycmF5cyA9IF8udGltZXMoMiwgXy5zdHViQXJyYXkpO1xcbiAgICAgKlxcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheXMpO1xcbiAgICAgKiAvLyA9PiBbW10sIFtdXVxcbiAgICAgKlxcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheXNbMF0gPT09IGFycmF5c1sxXSk7XFxuICAgICAqIC8vID0+IGZhbHNlXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBzdHViQXJyYXkoKSB7XFxuICAgICAgcmV0dXJuIFtdO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGBmYWxzZWAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMTMuMFxcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgZmFsc2VgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLnRpbWVzKDIsIF8uc3R1YkZhbHNlKTtcXG4gICAgICogLy8gPT4gW2ZhbHNlLCBmYWxzZV1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHN0dWJGYWxzZSgpIHtcXG4gICAgICByZXR1cm4gZmFsc2U7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgZW1wdHkgb2JqZWN0LlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjEzLjBcXG4gICAgICogQGNhdGVnb3J5IFV0aWxcXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGVtcHR5IG9iamVjdC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogdmFyIG9iamVjdHMgPSBfLnRpbWVzKDIsIF8uc3R1Yk9iamVjdCk7XFxuICAgICAqXFxuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdHMpO1xcbiAgICAgKiAvLyA9PiBbe30sIHt9XVxcbiAgICAgKlxcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3RzWzBdID09PSBvYmplY3RzWzFdKTtcXG4gICAgICogLy8gPT4gZmFsc2VcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHN0dWJPYmplY3QoKSB7XFxuICAgICAgcmV0dXJuIHt9O1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGFuIGVtcHR5IHN0cmluZy5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4xMy4wXFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGVtcHR5IHN0cmluZy5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy50aW1lcygyLCBfLnN0dWJTdHJpbmcpO1xcbiAgICAgKiAvLyA9PiBbJycsICcnXVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc3R1YlN0cmluZygpIHtcXG4gICAgICByZXR1cm4gJyc7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYHRydWVgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjEzLjBcXG4gICAgICogQGNhdGVnb3J5IFV0aWxcXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLnRpbWVzKDIsIF8uc3R1YlRydWUpO1xcbiAgICAgKiAvLyA9PiBbdHJ1ZSwgdHJ1ZV1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIHN0dWJUcnVlKCkge1xcbiAgICAgIHJldHVybiB0cnVlO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBJbnZva2VzIHRoZSBpdGVyYXRlZSBgbmAgdGltZXMsIHJldHVybmluZyBhbiBhcnJheSBvZiB0aGUgcmVzdWx0cyBvZlxcbiAgICAgKiBlYWNoIGludm9jYXRpb24uIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OyAoaW5kZXgpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIGludm9rZSBgaXRlcmF0ZWVgLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiByZXN1bHRzLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLnRpbWVzKDMsIFN0cmluZyk7XFxuICAgICAqIC8vID0+IFsnMCcsICcxJywgJzInXVxcbiAgICAgKlxcbiAgICAgKiAgXy50aW1lcyg0LCBfLmNvbnN0YW50KDApKTtcXG4gICAgICogLy8gPT4gWzAsIDAsIDAsIDBdXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB0aW1lcyhuLCBpdGVyYXRlZSkge1xcbiAgICAgIG4gPSB0b0ludGVnZXIobik7XFxuICAgICAgaWYgKG4gPCAxIHx8IG4gPiBNQVhfU0FGRV9JTlRFR0VSKSB7XFxuICAgICAgICByZXR1cm4gW107XFxuICAgICAgfVxcbiAgICAgIHZhciBpbmRleCA9IE1BWF9BUlJBWV9MRU5HVEgsXFxuICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1pbihuLCBNQVhfQVJSQVlfTEVOR1RIKTtcXG5cXG4gICAgICBpdGVyYXRlZSA9IGdldEl0ZXJhdGVlKGl0ZXJhdGVlKTtcXG4gICAgICBuIC09IE1BWF9BUlJBWV9MRU5HVEg7XFxuXFxuICAgICAgdmFyIHJlc3VsdCA9IGJhc2VUaW1lcyhsZW5ndGgsIGl0ZXJhdGVlKTtcXG4gICAgICB3aGlsZSAoKytpbmRleCA8IG4pIHtcXG4gICAgICAgIGl0ZXJhdGVlKGluZGV4KTtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhIHByb3BlcnR5IHBhdGggYXJyYXkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXFxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHByb3BlcnR5IHBhdGggYXJyYXkuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8udG9QYXRoKCdhLmIuYycpO1xcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYicsICdjJ11cXG4gICAgICpcXG4gICAgICogXy50b1BhdGgoJ2FbMF0uYi5jJyk7XFxuICAgICAqIC8vID0+IFsnYScsICcwJywgJ2InLCAnYyddXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB0b1BhdGgodmFsdWUpIHtcXG4gICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcXG4gICAgICAgIHJldHVybiBhcnJheU1hcCh2YWx1ZSwgdG9LZXkpO1xcbiAgICAgIH1cXG4gICAgICByZXR1cm4gaXNTeW1ib2wodmFsdWUpID8gW3ZhbHVlXSA6IGNvcHlBcnJheShzdHJpbmdUb1BhdGgodG9TdHJpbmcodmFsdWUpKSk7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIEdlbmVyYXRlcyBhIHVuaXF1ZSBJRC4gSWYgYHByZWZpeGAgaXMgZ2l2ZW4sIHRoZSBJRCBpcyBhcHBlbmRlZCB0byBpdC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQGNhdGVnb3J5IFV0aWxcXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtwcmVmaXg9JyddIFRoZSB2YWx1ZSB0byBwcmVmaXggdGhlIElEIHdpdGguXFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHVuaXF1ZSBJRC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy51bmlxdWVJZCgnY29udGFjdF8nKTtcXG4gICAgICogLy8gPT4gJ2NvbnRhY3RfMTA0J1xcbiAgICAgKlxcbiAgICAgKiBfLnVuaXF1ZUlkKCk7XFxuICAgICAqIC8vID0+ICcxMDUnXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiB1bmlxdWVJZChwcmVmaXgpIHtcXG4gICAgICB2YXIgaWQgPSArK2lkQ291bnRlcjtcXG4gICAgICByZXR1cm4gdG9TdHJpbmcocHJlZml4KSArIGlkO1xcbiAgICB9XFxuXFxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cXG5cXG4gICAgLyoqXFxuICAgICAqIEFkZHMgdHdvIG51bWJlcnMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuNC4wXFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBhdWdlbmQgVGhlIGZpcnN0IG51bWJlciBpbiBhbiBhZGRpdGlvbi5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGFkZGVuZCBUaGUgc2Vjb25kIG51bWJlciBpbiBhbiBhZGRpdGlvbi5cXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgdG90YWwuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uYWRkKDYsIDQpO1xcbiAgICAgKiAvLyA9PiAxMFxcbiAgICAgKi9cXG4gICAgdmFyIGFkZCA9IGNyZWF0ZU1hdGhPcGVyYXRpb24oZnVuY3Rpb24oYXVnZW5kLCBhZGRlbmQpIHtcXG4gICAgICByZXR1cm4gYXVnZW5kICsgYWRkZW5kO1xcbiAgICB9LCAwKTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENvbXB1dGVzIGBudW1iZXJgIHJvdW5kZWQgdXAgdG8gYHByZWNpc2lvbmAuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDMuMTAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyIFRoZSBudW1iZXIgdG8gcm91bmQgdXAuXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcHJlY2lzaW9uPTBdIFRoZSBwcmVjaXNpb24gdG8gcm91bmQgdXAgdG8uXFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHJvdW5kZWQgdXAgbnVtYmVyLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLmNlaWwoNC4wMDYpO1xcbiAgICAgKiAvLyA9PiA1XFxuICAgICAqXFxuICAgICAqIF8uY2VpbCg2LjAwNCwgMik7XFxuICAgICAqIC8vID0+IDYuMDFcXG4gICAgICpcXG4gICAgICogXy5jZWlsKDYwNDAsIC0yKTtcXG4gICAgICogLy8gPT4gNjEwMFxcbiAgICAgKi9cXG4gICAgdmFyIGNlaWwgPSBjcmVhdGVSb3VuZCgnY2VpbCcpO1xcblxcbiAgICAvKipcXG4gICAgICogRGl2aWRlIHR3byBudW1iZXJzLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjcuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGl2aWRlbmQgVGhlIGZpcnN0IG51bWJlciBpbiBhIGRpdmlzaW9uLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGl2aXNvciBUaGUgc2Vjb25kIG51bWJlciBpbiBhIGRpdmlzaW9uLlxcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBxdW90aWVudC5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5kaXZpZGUoNiwgNCk7XFxuICAgICAqIC8vID0+IDEuNVxcbiAgICAgKi9cXG4gICAgdmFyIGRpdmlkZSA9IGNyZWF0ZU1hdGhPcGVyYXRpb24oZnVuY3Rpb24oZGl2aWRlbmQsIGRpdmlzb3IpIHtcXG4gICAgICByZXR1cm4gZGl2aWRlbmQgLyBkaXZpc29yO1xcbiAgICB9LCAxKTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENvbXB1dGVzIGBudW1iZXJgIHJvdW5kZWQgZG93biB0byBgcHJlY2lzaW9uYC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgMy4xMC4wXFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIgVGhlIG51bWJlciB0byByb3VuZCBkb3duLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ByZWNpc2lvbj0wXSBUaGUgcHJlY2lzaW9uIHRvIHJvdW5kIGRvd24gdG8uXFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHJvdW5kZWQgZG93biBudW1iZXIuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uZmxvb3IoNC4wMDYpO1xcbiAgICAgKiAvLyA9PiA0XFxuICAgICAqXFxuICAgICAqIF8uZmxvb3IoMC4wNDYsIDIpO1xcbiAgICAgKiAvLyA9PiAwLjA0XFxuICAgICAqXFxuICAgICAqIF8uZmxvb3IoNDA2MCwgLTIpO1xcbiAgICAgKiAvLyA9PiA0MDAwXFxuICAgICAqL1xcbiAgICB2YXIgZmxvb3IgPSBjcmVhdGVSb3VuZCgnZmxvb3InKTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENvbXB1dGVzIHRoZSBtYXhpbXVtIHZhbHVlIG9mIGBhcnJheWAuIElmIGBhcnJheWAgaXMgZW1wdHkgb3IgZmFsc2V5LFxcbiAgICAgKiBgdW5kZWZpbmVkYCBpcyByZXR1cm5lZC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAc2luY2UgMC4xLjBcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQGNhdGVnb3J5IE1hdGhcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1heGltdW0gdmFsdWUuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8ubWF4KFs0LCAyLCA4LCA2XSk7XFxuICAgICAqIC8vID0+IDhcXG4gICAgICpcXG4gICAgICogXy5tYXgoW10pO1xcbiAgICAgKiAvLyA9PiB1bmRlZmluZWRcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIG1heChhcnJheSkge1xcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxcbiAgICAgICAgPyBiYXNlRXh0cmVtdW0oYXJyYXksIGlkZW50aXR5LCBiYXNlR3QpXFxuICAgICAgICA6IHVuZGVmaW5lZDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5tYXhgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xcbiAgICAgKiBpbnZva2VkIGZvciBlYWNoIGVsZW1lbnQgaW4gYGFycmF5YCB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uIGJ5IHdoaWNoXFxuICAgICAqIHRoZSB2YWx1ZSBpcyByYW5rZWQuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSA0LjAuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXFxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtYXhpbXVtIHZhbHVlLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICduJzogMSB9LCB7ICduJzogMiB9XTtcXG4gICAgICpcXG4gICAgICogXy5tYXhCeShvYmplY3RzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLm47IH0pO1xcbiAgICAgKiAvLyA9PiB7ICduJzogMiB9XFxuICAgICAqXFxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxcbiAgICAgKiBfLm1heEJ5KG9iamVjdHMsICduJyk7XFxuICAgICAqIC8vID0+IHsgJ24nOiAyIH1cXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIG1heEJ5KGFycmF5LCBpdGVyYXRlZSkge1xcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxcbiAgICAgICAgPyBiYXNlRXh0cmVtdW0oYXJyYXksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSwgYmFzZUd0KVxcbiAgICAgICAgOiB1bmRlZmluZWQ7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIENvbXB1dGVzIHRoZSBtZWFuIG9mIHRoZSB2YWx1ZXMgaW4gYGFycmF5YC5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC4wLjBcXG4gICAgICogQGNhdGVnb3J5IE1hdGhcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbWVhbi5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5tZWFuKFs0LCAyLCA4LCA2XSk7XFxuICAgICAqIC8vID0+IDVcXG4gICAgICovXFxuICAgIGZ1bmN0aW9uIG1lYW4oYXJyYXkpIHtcXG4gICAgICByZXR1cm4gYmFzZU1lYW4oYXJyYXksIGlkZW50aXR5KTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5tZWFuYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2ggaXNcXG4gICAgICogaW52b2tlZCBmb3IgZWFjaCBlbGVtZW50IGluIGBhcnJheWAgdG8gZ2VuZXJhdGUgdGhlIHZhbHVlIHRvIGJlIGF2ZXJhZ2VkLlxcbiAgICAgKiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cXG4gICAgICpcXG4gICAgICogQHN0YXRpY1xcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAc2luY2UgNC43LjBcXG4gICAgICogQGNhdGVnb3J5IE1hdGhcXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBtZWFuLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICduJzogNCB9LCB7ICduJzogMiB9LCB7ICduJzogOCB9LCB7ICduJzogNiB9XTtcXG4gICAgICpcXG4gICAgICogXy5tZWFuQnkob2JqZWN0cywgZnVuY3Rpb24obykgeyByZXR1cm4gby5uOyB9KTtcXG4gICAgICogLy8gPT4gNVxcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy5tZWFuQnkob2JqZWN0cywgJ24nKTtcXG4gICAgICogLy8gPT4gNVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gbWVhbkJ5KGFycmF5LCBpdGVyYXRlZSkge1xcbiAgICAgIHJldHVybiBiYXNlTWVhbihhcnJheSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKTtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogQ29tcHV0ZXMgdGhlIG1pbmltdW0gdmFsdWUgb2YgYGFycmF5YC4gSWYgYGFycmF5YCBpcyBlbXB0eSBvciBmYWxzZXksXFxuICAgICAqIGB1bmRlZmluZWRgIGlzIHJldHVybmVkLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBzaW5jZSAwLjEuMFxcbiAgICAgKiBAbWVtYmVyT2YgX1xcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWluaW11bSB2YWx1ZS5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5taW4oWzQsIDIsIDgsIDZdKTtcXG4gICAgICogLy8gPT4gMlxcbiAgICAgKlxcbiAgICAgKiBfLm1pbihbXSk7XFxuICAgICAqIC8vID0+IHVuZGVmaW5lZFxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gbWluKGFycmF5KSB7XFxuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXFxuICAgICAgICA/IGJhc2VFeHRyZW11bShhcnJheSwgaWRlbnRpdHksIGJhc2VMdClcXG4gICAgICAgIDogdW5kZWZpbmVkO1xcbiAgICB9XFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLm1pbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgIHdoaWNoIGlzXFxuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBpbiBgYXJyYXlgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb24gYnkgd2hpY2hcXG4gICAgICogdGhlIHZhbHVlIGlzIHJhbmtlZC4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1pbmltdW0gdmFsdWUuXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ24nOiAxIH0sIHsgJ24nOiAyIH1dO1xcbiAgICAgKlxcbiAgICAgKiBfLm1pbkJ5KG9iamVjdHMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8ubjsgfSk7XFxuICAgICAqIC8vID0+IHsgJ24nOiAxIH1cXG4gICAgICpcXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXFxuICAgICAqIF8ubWluQnkob2JqZWN0cywgJ24nKTtcXG4gICAgICogLy8gPT4geyAnbic6IDEgfVxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gbWluQnkoYXJyYXksIGl0ZXJhdGVlKSB7XFxuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXFxuICAgICAgICA/IGJhc2VFeHRyZW11bShhcnJheSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpLCBiYXNlTHQpXFxuICAgICAgICA6IHVuZGVmaW5lZDtcXG4gICAgfVxcblxcbiAgICAvKipcXG4gICAgICogTXVsdGlwbHkgdHdvIG51bWJlcnMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuNy4wXFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtdWx0aXBsaWVyIFRoZSBmaXJzdCBudW1iZXIgaW4gYSBtdWx0aXBsaWNhdGlvbi5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG11bHRpcGxpY2FuZCBUaGUgc2Vjb25kIG51bWJlciBpbiBhIG11bHRpcGxpY2F0aW9uLlxcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBwcm9kdWN0LlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiBfLm11bHRpcGx5KDYsIDQpO1xcbiAgICAgKiAvLyA9PiAyNFxcbiAgICAgKi9cXG4gICAgdmFyIG11bHRpcGx5ID0gY3JlYXRlTWF0aE9wZXJhdGlvbihmdW5jdGlvbihtdWx0aXBsaWVyLCBtdWx0aXBsaWNhbmQpIHtcXG4gICAgICByZXR1cm4gbXVsdGlwbGllciAqIG11bHRpcGxpY2FuZDtcXG4gICAgfSwgMSk7XFxuXFxuICAgIC8qKlxcbiAgICAgKiBDb21wdXRlcyBgbnVtYmVyYCByb3VuZGVkIHRvIGBwcmVjaXNpb25gLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjEwLjBcXG4gICAgICogQGNhdGVnb3J5IE1hdGhcXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG51bWJlciBUaGUgbnVtYmVyIHRvIHJvdW5kLlxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ByZWNpc2lvbj0wXSBUaGUgcHJlY2lzaW9uIHRvIHJvdW5kIHRvLlxcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSByb3VuZGVkIG51bWJlci5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5yb3VuZCg0LjAwNik7XFxuICAgICAqIC8vID0+IDRcXG4gICAgICpcXG4gICAgICogXy5yb3VuZCg0LjAwNiwgMik7XFxuICAgICAqIC8vID0+IDQuMDFcXG4gICAgICpcXG4gICAgICogXy5yb3VuZCg0MDYwLCAtMik7XFxuICAgICAqIC8vID0+IDQxMDBcXG4gICAgICovXFxuICAgIHZhciByb3VuZCA9IGNyZWF0ZVJvdW5kKCdyb3VuZCcpO1xcblxcbiAgICAvKipcXG4gICAgICogU3VidHJhY3QgdHdvIG51bWJlcnMuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtaW51ZW5kIFRoZSBmaXJzdCBudW1iZXIgaW4gYSBzdWJ0cmFjdGlvbi5cXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHN1YnRyYWhlbmQgVGhlIHNlY29uZCBudW1iZXIgaW4gYSBzdWJ0cmFjdGlvbi5cXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgZGlmZmVyZW5jZS5cXG4gICAgICogQGV4YW1wbGVcXG4gICAgICpcXG4gICAgICogXy5zdWJ0cmFjdCg2LCA0KTtcXG4gICAgICogLy8gPT4gMlxcbiAgICAgKi9cXG4gICAgdmFyIHN1YnRyYWN0ID0gY3JlYXRlTWF0aE9wZXJhdGlvbihmdW5jdGlvbihtaW51ZW5kLCBzdWJ0cmFoZW5kKSB7XFxuICAgICAgcmV0dXJuIG1pbnVlbmQgLSBzdWJ0cmFoZW5kO1xcbiAgICB9LCAwKTtcXG5cXG4gICAgLyoqXFxuICAgICAqIENvbXB1dGVzIHRoZSBzdW0gb2YgdGhlIHZhbHVlcyBpbiBgYXJyYXlgLlxcbiAgICAgKlxcbiAgICAgKiBAc3RhdGljXFxuICAgICAqIEBtZW1iZXJPZiBfXFxuICAgICAqIEBzaW5jZSAzLjQuMFxcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzdW0uXFxuICAgICAqIEBleGFtcGxlXFxuICAgICAqXFxuICAgICAqIF8uc3VtKFs0LCAyLCA4LCA2XSk7XFxuICAgICAqIC8vID0+IDIwXFxuICAgICAqL1xcbiAgICBmdW5jdGlvbiBzdW0oYXJyYXkpIHtcXG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcXG4gICAgICAgID8gYmFzZVN1bShhcnJheSwgaWRlbnRpdHkpXFxuICAgICAgICA6IDA7XFxuICAgIH1cXG5cXG4gICAgLyoqXFxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc3VtYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgd2hpY2ggaXNcXG4gICAgICogaW52b2tlZCBmb3IgZWFjaCBlbGVtZW50IGluIGBhcnJheWAgdG8gZ2VuZXJhdGUgdGhlIHZhbHVlIHRvIGJlIHN1bW1lZC5cXG4gICAgICogVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHNpbmNlIDQuMC4wXFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc3VtLlxcbiAgICAgKiBAZXhhbXBsZVxcbiAgICAgKlxcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICduJzogNCB9LCB7ICduJzogMiB9LCB7ICduJzogOCB9LCB7ICduJzogNiB9XTtcXG4gICAgICpcXG4gICAgICogXy5zdW1CeShvYmplY3RzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLm47IH0pO1xcbiAgICAgKiAvLyA9PiAyMFxcbiAgICAgKlxcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cXG4gICAgICogXy5zdW1CeShvYmplY3RzLCAnbicpO1xcbiAgICAgKiAvLyA9PiAyMFxcbiAgICAgKi9cXG4gICAgZnVuY3Rpb24gc3VtQnkoYXJyYXksIGl0ZXJhdGVlKSB7XFxuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXFxuICAgICAgICA/IGJhc2VTdW0oYXJyYXksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSlcXG4gICAgICAgIDogMDtcXG4gICAgfVxcblxcbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXFxuXFxuICAgIC8vIEFkZCBtZXRob2RzIHRoYXQgcmV0dXJuIHdyYXBwZWQgdmFsdWVzIGluIGNoYWluIHNlcXVlbmNlcy5cXG4gICAgbG9kYXNoLmFmdGVyID0gYWZ0ZXI7XFxuICAgIGxvZGFzaC5hcnkgPSBhcnk7XFxuICAgIGxvZGFzaC5hc3NpZ24gPSBhc3NpZ247XFxuICAgIGxvZGFzaC5hc3NpZ25JbiA9IGFzc2lnbkluO1xcbiAgICBsb2Rhc2guYXNzaWduSW5XaXRoID0gYXNzaWduSW5XaXRoO1xcbiAgICBsb2Rhc2guYXNzaWduV2l0aCA9IGFzc2lnbldpdGg7XFxuICAgIGxvZGFzaC5hdCA9IGF0O1xcbiAgICBsb2Rhc2guYmVmb3JlID0gYmVmb3JlO1xcbiAgICBsb2Rhc2guYmluZCA9IGJpbmQ7XFxuICAgIGxvZGFzaC5iaW5kQWxsID0gYmluZEFsbDtcXG4gICAgbG9kYXNoLmJpbmRLZXkgPSBiaW5kS2V5O1xcbiAgICBsb2Rhc2guY2FzdEFycmF5ID0gY2FzdEFycmF5O1xcbiAgICBsb2Rhc2guY2hhaW4gPSBjaGFpbjtcXG4gICAgbG9kYXNoLmNodW5rID0gY2h1bms7XFxuICAgIGxvZGFzaC5jb21wYWN0ID0gY29tcGFjdDtcXG4gICAgbG9kYXNoLmNvbmNhdCA9IGNvbmNhdDtcXG4gICAgbG9kYXNoLmNvbmQgPSBjb25kO1xcbiAgICBsb2Rhc2guY29uZm9ybXMgPSBjb25mb3JtcztcXG4gICAgbG9kYXNoLmNvbnN0YW50ID0gY29uc3RhbnQ7XFxuICAgIGxvZGFzaC5jb3VudEJ5ID0gY291bnRCeTtcXG4gICAgbG9kYXNoLmNyZWF0ZSA9IGNyZWF0ZTtcXG4gICAgbG9kYXNoLmN1cnJ5ID0gY3Vycnk7XFxuICAgIGxvZGFzaC5jdXJyeVJpZ2h0ID0gY3VycnlSaWdodDtcXG4gICAgbG9kYXNoLmRlYm91bmNlID0gZGVib3VuY2U7XFxuICAgIGxvZGFzaC5kZWZhdWx0cyA9IGRlZmF1bHRzO1xcbiAgICBsb2Rhc2guZGVmYXVsdHNEZWVwID0gZGVmYXVsdHNEZWVwO1xcbiAgICBsb2Rhc2guZGVmZXIgPSBkZWZlcjtcXG4gICAgbG9kYXNoLmRlbGF5ID0gZGVsYXk7XFxuICAgIGxvZGFzaC5kaWZmZXJlbmNlID0gZGlmZmVyZW5jZTtcXG4gICAgbG9kYXNoLmRpZmZlcmVuY2VCeSA9IGRpZmZlcmVuY2VCeTtcXG4gICAgbG9kYXNoLmRpZmZlcmVuY2VXaXRoID0gZGlmZmVyZW5jZVdpdGg7XFxuICAgIGxvZGFzaC5kcm9wID0gZHJvcDtcXG4gICAgbG9kYXNoLmRyb3BSaWdodCA9IGRyb3BSaWdodDtcXG4gICAgbG9kYXNoLmRyb3BSaWdodFdoaWxlID0gZHJvcFJpZ2h0V2hpbGU7XFxuICAgIGxvZGFzaC5kcm9wV2hpbGUgPSBkcm9wV2hpbGU7XFxuICAgIGxvZGFzaC5maWxsID0gZmlsbDtcXG4gICAgbG9kYXNoLmZpbHRlciA9IGZpbHRlcjtcXG4gICAgbG9kYXNoLmZsYXRNYXAgPSBmbGF0TWFwO1xcbiAgICBsb2Rhc2guZmxhdE1hcERlZXAgPSBmbGF0TWFwRGVlcDtcXG4gICAgbG9kYXNoLmZsYXRNYXBEZXB0aCA9IGZsYXRNYXBEZXB0aDtcXG4gICAgbG9kYXNoLmZsYXR0ZW4gPSBmbGF0dGVuO1xcbiAgICBsb2Rhc2guZmxhdHRlbkRlZXAgPSBmbGF0dGVuRGVlcDtcXG4gICAgbG9kYXNoLmZsYXR0ZW5EZXB0aCA9IGZsYXR0ZW5EZXB0aDtcXG4gICAgbG9kYXNoLmZsaXAgPSBmbGlwO1xcbiAgICBsb2Rhc2guZmxvdyA9IGZsb3c7XFxuICAgIGxvZGFzaC5mbG93UmlnaHQgPSBmbG93UmlnaHQ7XFxuICAgIGxvZGFzaC5mcm9tUGFpcnMgPSBmcm9tUGFpcnM7XFxuICAgIGxvZGFzaC5mdW5jdGlvbnMgPSBmdW5jdGlvbnM7XFxuICAgIGxvZGFzaC5mdW5jdGlvbnNJbiA9IGZ1bmN0aW9uc0luO1xcbiAgICBsb2Rhc2guZ3JvdXBCeSA9IGdyb3VwQnk7XFxuICAgIGxvZGFzaC5pbml0aWFsID0gaW5pdGlhbDtcXG4gICAgbG9kYXNoLmludGVyc2VjdGlvbiA9IGludGVyc2VjdGlvbjtcXG4gICAgbG9kYXNoLmludGVyc2VjdGlvbkJ5ID0gaW50ZXJzZWN0aW9uQnk7XFxuICAgIGxvZGFzaC5pbnRlcnNlY3Rpb25XaXRoID0gaW50ZXJzZWN0aW9uV2l0aDtcXG4gICAgbG9kYXNoLmludmVydCA9IGludmVydDtcXG4gICAgbG9kYXNoLmludmVydEJ5ID0gaW52ZXJ0Qnk7XFxuICAgIGxvZGFzaC5pbnZva2VNYXAgPSBpbnZva2VNYXA7XFxuICAgIGxvZGFzaC5pdGVyYXRlZSA9IGl0ZXJhdGVlO1xcbiAgICBsb2Rhc2gua2V5QnkgPSBrZXlCeTtcXG4gICAgbG9kYXNoLmtleXMgPSBrZXlzO1xcbiAgICBsb2Rhc2gua2V5c0luID0ga2V5c0luO1xcbiAgICBsb2Rhc2gubWFwID0gbWFwO1xcbiAgICBsb2Rhc2gubWFwS2V5cyA9IG1hcEtleXM7XFxuICAgIGxvZGFzaC5tYXBWYWx1ZXMgPSBtYXBWYWx1ZXM7XFxuICAgIGxvZGFzaC5tYXRjaGVzID0gbWF0Y2hlcztcXG4gICAgbG9kYXNoLm1hdGNoZXNQcm9wZXJ0eSA9IG1hdGNoZXNQcm9wZXJ0eTtcXG4gICAgbG9kYXNoLm1lbW9pemUgPSBtZW1vaXplO1xcbiAgICBsb2Rhc2gubWVyZ2UgPSBtZXJnZTtcXG4gICAgbG9kYXNoLm1lcmdlV2l0aCA9IG1lcmdlV2l0aDtcXG4gICAgbG9kYXNoLm1ldGhvZCA9IG1ldGhvZDtcXG4gICAgbG9kYXNoLm1ldGhvZE9mID0gbWV0aG9kT2Y7XFxuICAgIGxvZGFzaC5taXhpbiA9IG1peGluO1xcbiAgICBsb2Rhc2gubmVnYXRlID0gbmVnYXRlO1xcbiAgICBsb2Rhc2gubnRoQXJnID0gbnRoQXJnO1xcbiAgICBsb2Rhc2gub21pdCA9IG9taXQ7XFxuICAgIGxvZGFzaC5vbWl0QnkgPSBvbWl0Qnk7XFxuICAgIGxvZGFzaC5vbmNlID0gb25jZTtcXG4gICAgbG9kYXNoLm9yZGVyQnkgPSBvcmRlckJ5O1xcbiAgICBsb2Rhc2gub3ZlciA9IG92ZXI7XFxuICAgIGxvZGFzaC5vdmVyQXJncyA9IG92ZXJBcmdzO1xcbiAgICBsb2Rhc2gub3ZlckV2ZXJ5ID0gb3ZlckV2ZXJ5O1xcbiAgICBsb2Rhc2gub3ZlclNvbWUgPSBvdmVyU29tZTtcXG4gICAgbG9kYXNoLnBhcnRpYWwgPSBwYXJ0aWFsO1xcbiAgICBsb2Rhc2gucGFydGlhbFJpZ2h0ID0gcGFydGlhbFJpZ2h0O1xcbiAgICBsb2Rhc2gucGFydGl0aW9uID0gcGFydGl0aW9uO1xcbiAgICBsb2Rhc2gucGljayA9IHBpY2s7XFxuICAgIGxvZGFzaC5waWNrQnkgPSBwaWNrQnk7XFxuICAgIGxvZGFzaC5wcm9wZXJ0eSA9IHByb3BlcnR5O1xcbiAgICBsb2Rhc2gucHJvcGVydHlPZiA9IHByb3BlcnR5T2Y7XFxuICAgIGxvZGFzaC5wdWxsID0gcHVsbDtcXG4gICAgbG9kYXNoLnB1bGxBbGwgPSBwdWxsQWxsO1xcbiAgICBsb2Rhc2gucHVsbEFsbEJ5ID0gcHVsbEFsbEJ5O1xcbiAgICBsb2Rhc2gucHVsbEFsbFdpdGggPSBwdWxsQWxsV2l0aDtcXG4gICAgbG9kYXNoLnB1bGxBdCA9IHB1bGxBdDtcXG4gICAgbG9kYXNoLnJhbmdlID0gcmFuZ2U7XFxuICAgIGxvZGFzaC5yYW5nZVJpZ2h0ID0gcmFuZ2VSaWdodDtcXG4gICAgbG9kYXNoLnJlYXJnID0gcmVhcmc7XFxuICAgIGxvZGFzaC5yZWplY3QgPSByZWplY3Q7XFxuICAgIGxvZGFzaC5yZW1vdmUgPSByZW1vdmU7XFxuICAgIGxvZGFzaC5yZXN0ID0gcmVzdDtcXG4gICAgbG9kYXNoLnJldmVyc2UgPSByZXZlcnNlO1xcbiAgICBsb2Rhc2guc2FtcGxlU2l6ZSA9IHNhbXBsZVNpemU7XFxuICAgIGxvZGFzaC5zZXQgPSBzZXQ7XFxuICAgIGxvZGFzaC5zZXRXaXRoID0gc2V0V2l0aDtcXG4gICAgbG9kYXNoLnNodWZmbGUgPSBzaHVmZmxlO1xcbiAgICBsb2Rhc2guc2xpY2UgPSBzbGljZTtcXG4gICAgbG9kYXNoLnNvcnRCeSA9IHNvcnRCeTtcXG4gICAgbG9kYXNoLnNvcnRlZFVuaXEgPSBzb3J0ZWRVbmlxO1xcbiAgICBsb2Rhc2guc29ydGVkVW5pcUJ5ID0gc29ydGVkVW5pcUJ5O1xcbiAgICBsb2Rhc2guc3BsaXQgPSBzcGxpdDtcXG4gICAgbG9kYXNoLnNwcmVhZCA9IHNwcmVhZDtcXG4gICAgbG9kYXNoLnRhaWwgPSB0YWlsO1xcbiAgICBsb2Rhc2gudGFrZSA9IHRha2U7XFxuICAgIGxvZGFzaC50YWtlUmlnaHQgPSB0YWtlUmlnaHQ7XFxuICAgIGxvZGFzaC50YWtlUmlnaHRXaGlsZSA9IHRha2VSaWdodFdoaWxlO1xcbiAgICBsb2Rhc2gudGFrZVdoaWxlID0gdGFrZVdoaWxlO1xcbiAgICBsb2Rhc2gudGFwID0gdGFwO1xcbiAgICBsb2Rhc2gudGhyb3R0bGUgPSB0aHJvdHRsZTtcXG4gICAgbG9kYXNoLnRocnUgPSB0aHJ1O1xcbiAgICBsb2Rhc2gudG9BcnJheSA9IHRvQXJyYXk7XFxuICAgIGxvZGFzaC50b1BhaXJzID0gdG9QYWlycztcXG4gICAgbG9kYXNoLnRvUGFpcnNJbiA9IHRvUGFpcnNJbjtcXG4gICAgbG9kYXNoLnRvUGF0aCA9IHRvUGF0aDtcXG4gICAgbG9kYXNoLnRvUGxhaW5PYmplY3QgPSB0b1BsYWluT2JqZWN0O1xcbiAgICBsb2Rhc2gudHJhbnNmb3JtID0gdHJhbnNmb3JtO1xcbiAgICBsb2Rhc2gudW5hcnkgPSB1bmFyeTtcXG4gICAgbG9kYXNoLnVuaW9uID0gdW5pb247XFxuICAgIGxvZGFzaC51bmlvbkJ5ID0gdW5pb25CeTtcXG4gICAgbG9kYXNoLnVuaW9uV2l0aCA9IHVuaW9uV2l0aDtcXG4gICAgbG9kYXNoLnVuaXEgPSB1bmlxO1xcbiAgICBsb2Rhc2gudW5pcUJ5ID0gdW5pcUJ5O1xcbiAgICBsb2Rhc2gudW5pcVdpdGggPSB1bmlxV2l0aDtcXG4gICAgbG9kYXNoLnVuc2V0ID0gdW5zZXQ7XFxuICAgIGxvZGFzaC51bnppcCA9IHVuemlwO1xcbiAgICBsb2Rhc2gudW56aXBXaXRoID0gdW56aXBXaXRoO1xcbiAgICBsb2Rhc2gudXBkYXRlID0gdXBkYXRlO1xcbiAgICBsb2Rhc2gudXBkYXRlV2l0aCA9IHVwZGF0ZVdpdGg7XFxuICAgIGxvZGFzaC52YWx1ZXMgPSB2YWx1ZXM7XFxuICAgIGxvZGFzaC52YWx1ZXNJbiA9IHZhbHVlc0luO1xcbiAgICBsb2Rhc2gud2l0aG91dCA9IHdpdGhvdXQ7XFxuICAgIGxvZGFzaC53b3JkcyA9IHdvcmRzO1xcbiAgICBsb2Rhc2gud3JhcCA9IHdyYXA7XFxuICAgIGxvZGFzaC54b3IgPSB4b3I7XFxuICAgIGxvZGFzaC54b3JCeSA9IHhvckJ5O1xcbiAgICBsb2Rhc2gueG9yV2l0aCA9IHhvcldpdGg7XFxuICAgIGxvZGFzaC56aXAgPSB6aXA7XFxuICAgIGxvZGFzaC56aXBPYmplY3QgPSB6aXBPYmplY3Q7XFxuICAgIGxvZGFzaC56aXBPYmplY3REZWVwID0gemlwT2JqZWN0RGVlcDtcXG4gICAgbG9kYXNoLnppcFdpdGggPSB6aXBXaXRoO1xcblxcbiAgICAvLyBBZGQgYWxpYXNlcy5cXG4gICAgbG9kYXNoLmVudHJpZXMgPSB0b1BhaXJzO1xcbiAgICBsb2Rhc2guZW50cmllc0luID0gdG9QYWlyc0luO1xcbiAgICBsb2Rhc2guZXh0ZW5kID0gYXNzaWduSW47XFxuICAgIGxvZGFzaC5leHRlbmRXaXRoID0gYXNzaWduSW5XaXRoO1xcblxcbiAgICAvLyBBZGQgbWV0aG9kcyB0byBgbG9kYXNoLnByb3RvdHlwZWAuXFxuICAgIG1peGluKGxvZGFzaCwgbG9kYXNoKTtcXG5cXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xcblxcbiAgICAvLyBBZGQgbWV0aG9kcyB0aGF0IHJldHVybiB1bndyYXBwZWQgdmFsdWVzIGluIGNoYWluIHNlcXVlbmNlcy5cXG4gICAgbG9kYXNoLmFkZCA9IGFkZDtcXG4gICAgbG9kYXNoLmF0dGVtcHQgPSBhdHRlbXB0O1xcbiAgICBsb2Rhc2guY2FtZWxDYXNlID0gY2FtZWxDYXNlO1xcbiAgICBsb2Rhc2guY2FwaXRhbGl6ZSA9IGNhcGl0YWxpemU7XFxuICAgIGxvZGFzaC5jZWlsID0gY2VpbDtcXG4gICAgbG9kYXNoLmNsYW1wID0gY2xhbXA7XFxuICAgIGxvZGFzaC5jbG9uZSA9IGNsb25lO1xcbiAgICBsb2Rhc2guY2xvbmVEZWVwID0gY2xvbmVEZWVwO1xcbiAgICBsb2Rhc2guY2xvbmVEZWVwV2l0aCA9IGNsb25lRGVlcFdpdGg7XFxuICAgIGxvZGFzaC5jbG9uZVdpdGggPSBjbG9uZVdpdGg7XFxuICAgIGxvZGFzaC5jb25mb3Jtc1RvID0gY29uZm9ybXNUbztcXG4gICAgbG9kYXNoLmRlYnVyciA9IGRlYnVycjtcXG4gICAgbG9kYXNoLmRlZmF1bHRUbyA9IGRlZmF1bHRUbztcXG4gICAgbG9kYXNoLmRpdmlkZSA9IGRpdmlkZTtcXG4gICAgbG9kYXNoLmVuZHNXaXRoID0gZW5kc1dpdGg7XFxuICAgIGxvZGFzaC5lcSA9IGVxO1xcbiAgICBsb2Rhc2guZXNjYXBlID0gZXNjYXBlO1xcbiAgICBsb2Rhc2guZXNjYXBlUmVnRXhwID0gZXNjYXBlUmVnRXhwO1xcbiAgICBsb2Rhc2guZXZlcnkgPSBldmVyeTtcXG4gICAgbG9kYXNoLmZpbmQgPSBmaW5kO1xcbiAgICBsb2Rhc2guZmluZEluZGV4ID0gZmluZEluZGV4O1xcbiAgICBsb2Rhc2guZmluZEtleSA9IGZpbmRLZXk7XFxuICAgIGxvZGFzaC5maW5kTGFzdCA9IGZpbmRMYXN0O1xcbiAgICBsb2Rhc2guZmluZExhc3RJbmRleCA9IGZpbmRMYXN0SW5kZXg7XFxuICAgIGxvZGFzaC5maW5kTGFzdEtleSA9IGZpbmRMYXN0S2V5O1xcbiAgICBsb2Rhc2guZmxvb3IgPSBmbG9vcjtcXG4gICAgbG9kYXNoLmZvckVhY2ggPSBmb3JFYWNoO1xcbiAgICBsb2Rhc2guZm9yRWFjaFJpZ2h0ID0gZm9yRWFjaFJpZ2h0O1xcbiAgICBsb2Rhc2guZm9ySW4gPSBmb3JJbjtcXG4gICAgbG9kYXNoLmZvckluUmlnaHQgPSBmb3JJblJpZ2h0O1xcbiAgICBsb2Rhc2guZm9yT3duID0gZm9yT3duO1xcbiAgICBsb2Rhc2guZm9yT3duUmlnaHQgPSBmb3JPd25SaWdodDtcXG4gICAgbG9kYXNoLmdldCA9IGdldDtcXG4gICAgbG9kYXNoLmd0ID0gZ3Q7XFxuICAgIGxvZGFzaC5ndGUgPSBndGU7XFxuICAgIGxvZGFzaC5oYXMgPSBoYXM7XFxuICAgIGxvZGFzaC5oYXNJbiA9IGhhc0luO1xcbiAgICBsb2Rhc2guaGVhZCA9IGhlYWQ7XFxuICAgIGxvZGFzaC5pZGVudGl0eSA9IGlkZW50aXR5O1xcbiAgICBsb2Rhc2guaW5jbHVkZXMgPSBpbmNsdWRlcztcXG4gICAgbG9kYXNoLmluZGV4T2YgPSBpbmRleE9mO1xcbiAgICBsb2Rhc2guaW5SYW5nZSA9IGluUmFuZ2U7XFxuICAgIGxvZGFzaC5pbnZva2UgPSBpbnZva2U7XFxuICAgIGxvZGFzaC5pc0FyZ3VtZW50cyA9IGlzQXJndW1lbnRzO1xcbiAgICBsb2Rhc2guaXNBcnJheSA9IGlzQXJyYXk7XFxuICAgIGxvZGFzaC5pc0FycmF5QnVmZmVyID0gaXNBcnJheUJ1ZmZlcjtcXG4gICAgbG9kYXNoLmlzQXJyYXlMaWtlID0gaXNBcnJheUxpa2U7XFxuICAgIGxvZGFzaC5pc0FycmF5TGlrZU9iamVjdCA9IGlzQXJyYXlMaWtlT2JqZWN0O1xcbiAgICBsb2Rhc2guaXNCb29sZWFuID0gaXNCb29sZWFuO1xcbiAgICBsb2Rhc2guaXNCdWZmZXIgPSBpc0J1ZmZlcjtcXG4gICAgbG9kYXNoLmlzRGF0ZSA9IGlzRGF0ZTtcXG4gICAgbG9kYXNoLmlzRWxlbWVudCA9IGlzRWxlbWVudDtcXG4gICAgbG9kYXNoLmlzRW1wdHkgPSBpc0VtcHR5O1xcbiAgICBsb2Rhc2guaXNFcXVhbCA9IGlzRXF1YWw7XFxuICAgIGxvZGFzaC5pc0VxdWFsV2l0aCA9IGlzRXF1YWxXaXRoO1xcbiAgICBsb2Rhc2guaXNFcnJvciA9IGlzRXJyb3I7XFxuICAgIGxvZGFzaC5pc0Zpbml0ZSA9IGlzRmluaXRlO1xcbiAgICBsb2Rhc2guaXNGdW5jdGlvbiA9IGlzRnVuY3Rpb247XFxuICAgIGxvZGFzaC5pc0ludGVnZXIgPSBpc0ludGVnZXI7XFxuICAgIGxvZGFzaC5pc0xlbmd0aCA9IGlzTGVuZ3RoO1xcbiAgICBsb2Rhc2guaXNNYXAgPSBpc01hcDtcXG4gICAgbG9kYXNoLmlzTWF0Y2ggPSBpc01hdGNoO1xcbiAgICBsb2Rhc2guaXNNYXRjaFdpdGggPSBpc01hdGNoV2l0aDtcXG4gICAgbG9kYXNoLmlzTmFOID0gaXNOYU47XFxuICAgIGxvZGFzaC5pc05hdGl2ZSA9IGlzTmF0aXZlO1xcbiAgICBsb2Rhc2guaXNOaWwgPSBpc05pbDtcXG4gICAgbG9kYXNoLmlzTnVsbCA9IGlzTnVsbDtcXG4gICAgbG9kYXNoLmlzTnVtYmVyID0gaXNOdW1iZXI7XFxuICAgIGxvZGFzaC5pc09iamVjdCA9IGlzT2JqZWN0O1xcbiAgICBsb2Rhc2guaXNPYmplY3RMaWtlID0gaXNPYmplY3RMaWtlO1xcbiAgICBsb2Rhc2guaXNQbGFpbk9iamVjdCA9IGlzUGxhaW5PYmplY3Q7XFxuICAgIGxvZGFzaC5pc1JlZ0V4cCA9IGlzUmVnRXhwO1xcbiAgICBsb2Rhc2guaXNTYWZlSW50ZWdlciA9IGlzU2FmZUludGVnZXI7XFxuICAgIGxvZGFzaC5pc1NldCA9IGlzU2V0O1xcbiAgICBsb2Rhc2guaXNTdHJpbmcgPSBpc1N0cmluZztcXG4gICAgbG9kYXNoLmlzU3ltYm9sID0gaXNTeW1ib2w7XFxuICAgIGxvZGFzaC5pc1R5cGVkQXJyYXkgPSBpc1R5cGVkQXJyYXk7XFxuICAgIGxvZGFzaC5pc1VuZGVmaW5lZCA9IGlzVW5kZWZpbmVkO1xcbiAgICBsb2Rhc2guaXNXZWFrTWFwID0gaXNXZWFrTWFwO1xcbiAgICBsb2Rhc2guaXNXZWFrU2V0ID0gaXNXZWFrU2V0O1xcbiAgICBsb2Rhc2guam9pbiA9IGpvaW47XFxuICAgIGxvZGFzaC5rZWJhYkNhc2UgPSBrZWJhYkNhc2U7XFxuICAgIGxvZGFzaC5sYXN0ID0gbGFzdDtcXG4gICAgbG9kYXNoLmxhc3RJbmRleE9mID0gbGFzdEluZGV4T2Y7XFxuICAgIGxvZGFzaC5sb3dlckNhc2UgPSBsb3dlckNhc2U7XFxuICAgIGxvZGFzaC5sb3dlckZpcnN0ID0gbG93ZXJGaXJzdDtcXG4gICAgbG9kYXNoLmx0ID0gbHQ7XFxuICAgIGxvZGFzaC5sdGUgPSBsdGU7XFxuICAgIGxvZGFzaC5tYXggPSBtYXg7XFxuICAgIGxvZGFzaC5tYXhCeSA9IG1heEJ5O1xcbiAgICBsb2Rhc2gubWVhbiA9IG1lYW47XFxuICAgIGxvZGFzaC5tZWFuQnkgPSBtZWFuQnk7XFxuICAgIGxvZGFzaC5taW4gPSBtaW47XFxuICAgIGxvZGFzaC5taW5CeSA9IG1pbkJ5O1xcbiAgICBsb2Rhc2guc3R1YkFycmF5ID0gc3R1YkFycmF5O1xcbiAgICBsb2Rhc2guc3R1YkZhbHNlID0gc3R1YkZhbHNlO1xcbiAgICBsb2Rhc2guc3R1Yk9iamVjdCA9IHN0dWJPYmplY3Q7XFxuICAgIGxvZGFzaC5zdHViU3RyaW5nID0gc3R1YlN0cmluZztcXG4gICAgbG9kYXNoLnN0dWJUcnVlID0gc3R1YlRydWU7XFxuICAgIGxvZGFzaC5tdWx0aXBseSA9IG11bHRpcGx5O1xcbiAgICBsb2Rhc2gubnRoID0gbnRoO1xcbiAgICBsb2Rhc2gubm9Db25mbGljdCA9IG5vQ29uZmxpY3Q7XFxuICAgIGxvZGFzaC5ub29wID0gbm9vcDtcXG4gICAgbG9kYXNoLm5vdyA9IG5vdztcXG4gICAgbG9kYXNoLnBhZCA9IHBhZDtcXG4gICAgbG9kYXNoLnBhZEVuZCA9IHBhZEVuZDtcXG4gICAgbG9kYXNoLnBhZFN0YXJ0ID0gcGFkU3RhcnQ7XFxuICAgIGxvZGFzaC5wYXJzZUludCA9IHBhcnNlSW50O1xcbiAgICBsb2Rhc2gucmFuZG9tID0gcmFuZG9tO1xcbiAgICBsb2Rhc2gucmVkdWNlID0gcmVkdWNlO1xcbiAgICBsb2Rhc2gucmVkdWNlUmlnaHQgPSByZWR1Y2VSaWdodDtcXG4gICAgbG9kYXNoLnJlcGVhdCA9IHJlcGVhdDtcXG4gICAgbG9kYXNoLnJlcGxhY2UgPSByZXBsYWNlO1xcbiAgICBsb2Rhc2gucmVzdWx0ID0gcmVzdWx0O1xcbiAgICBsb2Rhc2gucm91bmQgPSByb3VuZDtcXG4gICAgbG9kYXNoLnJ1bkluQ29udGV4dCA9IHJ1bkluQ29udGV4dDtcXG4gICAgbG9kYXNoLnNhbXBsZSA9IHNhbXBsZTtcXG4gICAgbG9kYXNoLnNpemUgPSBzaXplO1xcbiAgICBsb2Rhc2guc25ha2VDYXNlID0gc25ha2VDYXNlO1xcbiAgICBsb2Rhc2guc29tZSA9IHNvbWU7XFxuICAgIGxvZGFzaC5zb3J0ZWRJbmRleCA9IHNvcnRlZEluZGV4O1xcbiAgICBsb2Rhc2guc29ydGVkSW5kZXhCeSA9IHNvcnRlZEluZGV4Qnk7XFxuICAgIGxvZGFzaC5zb3J0ZWRJbmRleE9mID0gc29ydGVkSW5kZXhPZjtcXG4gICAgbG9kYXNoLnNvcnRlZExhc3RJbmRleCA9IHNvcnRlZExhc3RJbmRleDtcXG4gICAgbG9kYXNoLnNvcnRlZExhc3RJbmRleEJ5ID0gc29ydGVkTGFzdEluZGV4Qnk7XFxuICAgIGxvZGFzaC5zb3J0ZWRMYXN0SW5kZXhPZiA9IHNvcnRlZExhc3RJbmRleE9mO1xcbiAgICBsb2Rhc2guc3RhcnRDYXNlID0gc3RhcnRDYXNlO1xcbiAgICBsb2Rhc2guc3RhcnRzV2l0aCA9IHN0YXJ0c1dpdGg7XFxuICAgIGxvZGFzaC5zdWJ0cmFjdCA9IHN1YnRyYWN0O1xcbiAgICBsb2Rhc2guc3VtID0gc3VtO1xcbiAgICBsb2Rhc2guc3VtQnkgPSBzdW1CeTtcXG4gICAgbG9kYXNoLnRlbXBsYXRlID0gdGVtcGxhdGU7XFxuICAgIGxvZGFzaC50aW1lcyA9IHRpbWVzO1xcbiAgICBsb2Rhc2gudG9GaW5pdGUgPSB0b0Zpbml0ZTtcXG4gICAgbG9kYXNoLnRvSW50ZWdlciA9IHRvSW50ZWdlcjtcXG4gICAgbG9kYXNoLnRvTGVuZ3RoID0gdG9MZW5ndGg7XFxuICAgIGxvZGFzaC50b0xvd2VyID0gdG9Mb3dlcjtcXG4gICAgbG9kYXNoLnRvTnVtYmVyID0gdG9OdW1iZXI7XFxuICAgIGxvZGFzaC50b1NhZmVJbnRlZ2VyID0gdG9TYWZlSW50ZWdlcjtcXG4gICAgbG9kYXNoLnRvU3RyaW5nID0gdG9TdHJpbmc7XFxuICAgIGxvZGFzaC50b1VwcGVyID0gdG9VcHBlcjtcXG4gICAgbG9kYXNoLnRyaW0gPSB0cmltO1xcbiAgICBsb2Rhc2gudHJpbUVuZCA9IHRyaW1FbmQ7XFxuICAgIGxvZGFzaC50cmltU3RhcnQgPSB0cmltU3RhcnQ7XFxuICAgIGxvZGFzaC50cnVuY2F0ZSA9IHRydW5jYXRlO1xcbiAgICBsb2Rhc2gudW5lc2NhcGUgPSB1bmVzY2FwZTtcXG4gICAgbG9kYXNoLnVuaXF1ZUlkID0gdW5pcXVlSWQ7XFxuICAgIGxvZGFzaC51cHBlckNhc2UgPSB1cHBlckNhc2U7XFxuICAgIGxvZGFzaC51cHBlckZpcnN0ID0gdXBwZXJGaXJzdDtcXG5cXG4gICAgLy8gQWRkIGFsaWFzZXMuXFxuICAgIGxvZGFzaC5lYWNoID0gZm9yRWFjaDtcXG4gICAgbG9kYXNoLmVhY2hSaWdodCA9IGZvckVhY2hSaWdodDtcXG4gICAgbG9kYXNoLmZpcnN0ID0gaGVhZDtcXG5cXG4gICAgbWl4aW4obG9kYXNoLCAoZnVuY3Rpb24oKSB7XFxuICAgICAgdmFyIHNvdXJjZSA9IHt9O1xcbiAgICAgIGJhc2VGb3JPd24obG9kYXNoLCBmdW5jdGlvbihmdW5jLCBtZXRob2ROYW1lKSB7XFxuICAgICAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwobG9kYXNoLnByb3RvdHlwZSwgbWV0aG9kTmFtZSkpIHtcXG4gICAgICAgICAgc291cmNlW21ldGhvZE5hbWVdID0gZnVuYztcXG4gICAgICAgIH1cXG4gICAgICB9KTtcXG4gICAgICByZXR1cm4gc291cmNlO1xcbiAgICB9KCkpLCB7ICdjaGFpbic6IGZhbHNlIH0pO1xcblxcbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXFxuXFxuICAgIC8qKlxcbiAgICAgKiBUaGUgc2VtYW50aWMgdmVyc2lvbiBudW1iZXIuXFxuICAgICAqXFxuICAgICAqIEBzdGF0aWNcXG4gICAgICogQG1lbWJlck9mIF9cXG4gICAgICogQHR5cGUge3N0cmluZ31cXG4gICAgICovXFxuICAgIGxvZGFzaC5WRVJTSU9OID0gVkVSU0lPTjtcXG5cXG4gICAgLy8gQXNzaWduIGRlZmF1bHQgcGxhY2Vob2xkZXJzLlxcbiAgICBhcnJheUVhY2goWydiaW5kJywgJ2JpbmRLZXknLCAnY3VycnknLCAnY3VycnlSaWdodCcsICdwYXJ0aWFsJywgJ3BhcnRpYWxSaWdodCddLCBmdW5jdGlvbihtZXRob2ROYW1lKSB7XFxuICAgICAgbG9kYXNoW21ldGhvZE5hbWVdLnBsYWNlaG9sZGVyID0gbG9kYXNoO1xcbiAgICB9KTtcXG5cXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyBmb3IgYF8uZHJvcGAgYW5kIGBfLnRha2VgIHZhcmlhbnRzLlxcbiAgICBhcnJheUVhY2goWydkcm9wJywgJ3Rha2UnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSwgaW5kZXgpIHtcXG4gICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbihuKSB7XFxuICAgICAgICBuID0gbiA9PT0gdW5kZWZpbmVkID8gMSA6IG5hdGl2ZU1heCh0b0ludGVnZXIobiksIDApO1xcblxcbiAgICAgICAgdmFyIHJlc3VsdCA9ICh0aGlzLl9fZmlsdGVyZWRfXyAmJiAhaW5kZXgpXFxuICAgICAgICAgID8gbmV3IExhenlXcmFwcGVyKHRoaXMpXFxuICAgICAgICAgIDogdGhpcy5jbG9uZSgpO1xcblxcbiAgICAgICAgaWYgKHJlc3VsdC5fX2ZpbHRlcmVkX18pIHtcXG4gICAgICAgICAgcmVzdWx0Ll9fdGFrZUNvdW50X18gPSBuYXRpdmVNaW4obiwgcmVzdWx0Ll9fdGFrZUNvdW50X18pO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgcmVzdWx0Ll9fdmlld3NfXy5wdXNoKHtcXG4gICAgICAgICAgICAnc2l6ZSc6IG5hdGl2ZU1pbihuLCBNQVhfQVJSQVlfTEVOR1RIKSxcXG4gICAgICAgICAgICAndHlwZSc6IG1ldGhvZE5hbWUgKyAocmVzdWx0Ll9fZGlyX18gPCAwID8gJ1JpZ2h0JyA6ICcnKVxcbiAgICAgICAgICB9KTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgICAgfTtcXG5cXG4gICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZSArICdSaWdodCddID0gZnVuY3Rpb24obikge1xcbiAgICAgICAgcmV0dXJuIHRoaXMucmV2ZXJzZSgpW21ldGhvZE5hbWVdKG4pLnJldmVyc2UoKTtcXG4gICAgICB9O1xcbiAgICB9KTtcXG5cXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyB0aGF0IGFjY2VwdCBhbiBgaXRlcmF0ZWVgIHZhbHVlLlxcbiAgICBhcnJheUVhY2goWydmaWx0ZXInLCAnbWFwJywgJ3Rha2VXaGlsZSddLCBmdW5jdGlvbihtZXRob2ROYW1lLCBpbmRleCkge1xcbiAgICAgIHZhciB0eXBlID0gaW5kZXggKyAxLFxcbiAgICAgICAgICBpc0ZpbHRlciA9IHR5cGUgPT0gTEFaWV9GSUxURVJfRkxBRyB8fCB0eXBlID09IExBWllfV0hJTEVfRkxBRztcXG5cXG4gICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbihpdGVyYXRlZSkge1xcbiAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuY2xvbmUoKTtcXG4gICAgICAgIHJlc3VsdC5fX2l0ZXJhdGVlc19fLnB1c2goe1xcbiAgICAgICAgICAnaXRlcmF0ZWUnOiBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMyksXFxuICAgICAgICAgICd0eXBlJzogdHlwZVxcbiAgICAgICAgfSk7XFxuICAgICAgICByZXN1bHQuX19maWx0ZXJlZF9fID0gcmVzdWx0Ll9fZmlsdGVyZWRfXyB8fCBpc0ZpbHRlcjtcXG4gICAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgICAgfTtcXG4gICAgfSk7XFxuXFxuICAgIC8vIEFkZCBgTGF6eVdyYXBwZXJgIG1ldGhvZHMgZm9yIGBfLmhlYWRgIGFuZCBgXy5sYXN0YC5cXG4gICAgYXJyYXlFYWNoKFsnaGVhZCcsICdsYXN0J10sIGZ1bmN0aW9uKG1ldGhvZE5hbWUsIGluZGV4KSB7XFxuICAgICAgdmFyIHRha2VOYW1lID0gJ3Rha2UnICsgKGluZGV4ID8gJ1JpZ2h0JyA6ICcnKTtcXG5cXG4gICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbigpIHtcXG4gICAgICAgIHJldHVybiB0aGlzW3Rha2VOYW1lXSgxKS52YWx1ZSgpWzBdO1xcbiAgICAgIH07XFxuICAgIH0pO1xcblxcbiAgICAvLyBBZGQgYExhenlXcmFwcGVyYCBtZXRob2RzIGZvciBgXy5pbml0aWFsYCBhbmQgYF8udGFpbGAuXFxuICAgIGFycmF5RWFjaChbJ2luaXRpYWwnLCAndGFpbCddLCBmdW5jdGlvbihtZXRob2ROYW1lLCBpbmRleCkge1xcbiAgICAgIHZhciBkcm9wTmFtZSA9ICdkcm9wJyArIChpbmRleCA/ICcnIDogJ1JpZ2h0Jyk7XFxuXFxuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XFxuICAgICAgICByZXR1cm4gdGhpcy5fX2ZpbHRlcmVkX18gPyBuZXcgTGF6eVdyYXBwZXIodGhpcykgOiB0aGlzW2Ryb3BOYW1lXSgxKTtcXG4gICAgICB9O1xcbiAgICB9KTtcXG5cXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLmNvbXBhY3QgPSBmdW5jdGlvbigpIHtcXG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXIoaWRlbnRpdHkpO1xcbiAgICB9O1xcblxcbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuZmluZCA9IGZ1bmN0aW9uKHByZWRpY2F0ZSkge1xcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcihwcmVkaWNhdGUpLmhlYWQoKTtcXG4gICAgfTtcXG5cXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLmZpbmRMYXN0ID0gZnVuY3Rpb24ocHJlZGljYXRlKSB7XFxuICAgICAgcmV0dXJuIHRoaXMucmV2ZXJzZSgpLmZpbmQocHJlZGljYXRlKTtcXG4gICAgfTtcXG5cXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLmludm9rZU1hcCA9IGJhc2VSZXN0KGZ1bmN0aW9uKHBhdGgsIGFyZ3MpIHtcXG4gICAgICBpZiAodHlwZW9mIHBhdGggPT0gJ2Z1bmN0aW9uJykge1xcbiAgICAgICAgcmV0dXJuIG5ldyBMYXp5V3JhcHBlcih0aGlzKTtcXG4gICAgICB9XFxuICAgICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKHZhbHVlKSB7XFxuICAgICAgICByZXR1cm4gYmFzZUludm9rZSh2YWx1ZSwgcGF0aCwgYXJncyk7XFxuICAgICAgfSk7XFxuICAgIH0pO1xcblxcbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUucmVqZWN0ID0gZnVuY3Rpb24ocHJlZGljYXRlKSB7XFxuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKG5lZ2F0ZShnZXRJdGVyYXRlZShwcmVkaWNhdGUpKSk7XFxuICAgIH07XFxuXFxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5zbGljZSA9IGZ1bmN0aW9uKHN0YXJ0LCBlbmQpIHtcXG4gICAgICBzdGFydCA9IHRvSW50ZWdlcihzdGFydCk7XFxuXFxuICAgICAgdmFyIHJlc3VsdCA9IHRoaXM7XFxuICAgICAgaWYgKHJlc3VsdC5fX2ZpbHRlcmVkX18gJiYgKHN0YXJ0ID4gMCB8fCBlbmQgPCAwKSkge1xcbiAgICAgICAgcmV0dXJuIG5ldyBMYXp5V3JhcHBlcihyZXN1bHQpO1xcbiAgICAgIH1cXG4gICAgICBpZiAoc3RhcnQgPCAwKSB7XFxuICAgICAgICByZXN1bHQgPSByZXN1bHQudGFrZVJpZ2h0KC1zdGFydCk7XFxuICAgICAgfSBlbHNlIGlmIChzdGFydCkge1xcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmRyb3Aoc3RhcnQpO1xcbiAgICAgIH1cXG4gICAgICBpZiAoZW5kICE9PSB1bmRlZmluZWQpIHtcXG4gICAgICAgIGVuZCA9IHRvSW50ZWdlcihlbmQpO1xcbiAgICAgICAgcmVzdWx0ID0gZW5kIDwgMCA/IHJlc3VsdC5kcm9wUmlnaHQoLWVuZCkgOiByZXN1bHQudGFrZShlbmQgLSBzdGFydCk7XFxuICAgICAgfVxcbiAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH07XFxuXFxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS50YWtlUmlnaHRXaGlsZSA9IGZ1bmN0aW9uKHByZWRpY2F0ZSkge1xcbiAgICAgIHJldHVybiB0aGlzLnJldmVyc2UoKS50YWtlV2hpbGUocHJlZGljYXRlKS5yZXZlcnNlKCk7XFxuICAgIH07XFxuXFxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS50b0FycmF5ID0gZnVuY3Rpb24oKSB7XFxuICAgICAgcmV0dXJuIHRoaXMudGFrZShNQVhfQVJSQVlfTEVOR1RIKTtcXG4gICAgfTtcXG5cXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyB0byBgbG9kYXNoLnByb3RvdHlwZWAuXFxuICAgIGJhc2VGb3JPd24oTGF6eVdyYXBwZXIucHJvdG90eXBlLCBmdW5jdGlvbihmdW5jLCBtZXRob2ROYW1lKSB7XFxuICAgICAgdmFyIGNoZWNrSXRlcmF0ZWUgPSAvXig/OmZpbHRlcnxmaW5kfG1hcHxyZWplY3QpfFdoaWxlJC8udGVzdChtZXRob2ROYW1lKSxcXG4gICAgICAgICAgaXNUYWtlciA9IC9eKD86aGVhZHxsYXN0KSQvLnRlc3QobWV0aG9kTmFtZSksXFxuICAgICAgICAgIGxvZGFzaEZ1bmMgPSBsb2Rhc2hbaXNUYWtlciA/ICgndGFrZScgKyAobWV0aG9kTmFtZSA9PSAnbGFzdCcgPyAnUmlnaHQnIDogJycpKSA6IG1ldGhvZE5hbWVdLFxcbiAgICAgICAgICByZXRVbndyYXBwZWQgPSBpc1Rha2VyIHx8IC9eZmluZC8udGVzdChtZXRob2ROYW1lKTtcXG5cXG4gICAgICBpZiAoIWxvZGFzaEZ1bmMpIHtcXG4gICAgICAgIHJldHVybjtcXG4gICAgICB9XFxuICAgICAgbG9kYXNoLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xcbiAgICAgICAgdmFyIHZhbHVlID0gdGhpcy5fX3dyYXBwZWRfXyxcXG4gICAgICAgICAgICBhcmdzID0gaXNUYWtlciA/IFsxXSA6IGFyZ3VtZW50cyxcXG4gICAgICAgICAgICBpc0xhenkgPSB2YWx1ZSBpbnN0YW5jZW9mIExhenlXcmFwcGVyLFxcbiAgICAgICAgICAgIGl0ZXJhdGVlID0gYXJnc1swXSxcXG4gICAgICAgICAgICB1c2VMYXp5ID0gaXNMYXp5IHx8IGlzQXJyYXkodmFsdWUpO1xcblxcbiAgICAgICAgdmFyIGludGVyY2VwdG9yID0gZnVuY3Rpb24odmFsdWUpIHtcXG4gICAgICAgICAgdmFyIHJlc3VsdCA9IGxvZGFzaEZ1bmMuYXBwbHkobG9kYXNoLCBhcnJheVB1c2goW3ZhbHVlXSwgYXJncykpO1xcbiAgICAgICAgICByZXR1cm4gKGlzVGFrZXIgJiYgY2hhaW5BbGwpID8gcmVzdWx0WzBdIDogcmVzdWx0O1xcbiAgICAgICAgfTtcXG5cXG4gICAgICAgIGlmICh1c2VMYXp5ICYmIGNoZWNrSXRlcmF0ZWUgJiYgdHlwZW9mIGl0ZXJhdGVlID09ICdmdW5jdGlvbicgJiYgaXRlcmF0ZWUubGVuZ3RoICE9IDEpIHtcXG4gICAgICAgICAgLy8gQXZvaWQgbGF6eSB1c2UgaWYgdGhlIGl0ZXJhdGVlIGhhcyBhIFxcXCJsZW5ndGhcXFwiIHZhbHVlIG90aGVyIHRoYW4gYDFgLlxcbiAgICAgICAgICBpc0xhenkgPSB1c2VMYXp5ID0gZmFsc2U7XFxuICAgICAgICB9XFxuICAgICAgICB2YXIgY2hhaW5BbGwgPSB0aGlzLl9fY2hhaW5fXyxcXG4gICAgICAgICAgICBpc0h5YnJpZCA9ICEhdGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgsXFxuICAgICAgICAgICAgaXNVbndyYXBwZWQgPSByZXRVbndyYXBwZWQgJiYgIWNoYWluQWxsLFxcbiAgICAgICAgICAgIG9ubHlMYXp5ID0gaXNMYXp5ICYmICFpc0h5YnJpZDtcXG5cXG4gICAgICAgIGlmICghcmV0VW53cmFwcGVkICYmIHVzZUxhenkpIHtcXG4gICAgICAgICAgdmFsdWUgPSBvbmx5TGF6eSA/IHZhbHVlIDogbmV3IExhenlXcmFwcGVyKHRoaXMpO1xcbiAgICAgICAgICB2YXIgcmVzdWx0ID0gZnVuYy5hcHBseSh2YWx1ZSwgYXJncyk7XFxuICAgICAgICAgIHJlc3VsdC5fX2FjdGlvbnNfXy5wdXNoKHsgJ2Z1bmMnOiB0aHJ1LCAnYXJncyc6IFtpbnRlcmNlcHRvcl0sICd0aGlzQXJnJzogdW5kZWZpbmVkIH0pO1xcbiAgICAgICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIocmVzdWx0LCBjaGFpbkFsbCk7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoaXNVbndyYXBwZWQgJiYgb25seUxhenkpIHtcXG4gICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpcywgYXJncyk7XFxuICAgICAgICB9XFxuICAgICAgICByZXN1bHQgPSB0aGlzLnRocnUoaW50ZXJjZXB0b3IpO1xcbiAgICAgICAgcmV0dXJuIGlzVW53cmFwcGVkID8gKGlzVGFrZXIgPyByZXN1bHQudmFsdWUoKVswXSA6IHJlc3VsdC52YWx1ZSgpKSA6IHJlc3VsdDtcXG4gICAgICB9O1xcbiAgICB9KTtcXG5cXG4gICAgLy8gQWRkIGBBcnJheWAgbWV0aG9kcyB0byBgbG9kYXNoLnByb3RvdHlwZWAuXFxuICAgIGFycmF5RWFjaChbJ3BvcCcsICdwdXNoJywgJ3NoaWZ0JywgJ3NvcnQnLCAnc3BsaWNlJywgJ3Vuc2hpZnQnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSkge1xcbiAgICAgIHZhciBmdW5jID0gYXJyYXlQcm90b1ttZXRob2ROYW1lXSxcXG4gICAgICAgICAgY2hhaW5OYW1lID0gL14oPzpwdXNofHNvcnR8dW5zaGlmdCkkLy50ZXN0KG1ldGhvZE5hbWUpID8gJ3RhcCcgOiAndGhydScsXFxuICAgICAgICAgIHJldFVud3JhcHBlZCA9IC9eKD86cG9wfHNoaWZ0KSQvLnRlc3QobWV0aG9kTmFtZSk7XFxuXFxuICAgICAgbG9kYXNoLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xcbiAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XFxuICAgICAgICBpZiAocmV0VW53cmFwcGVkICYmICF0aGlzLl9fY2hhaW5fXykge1xcbiAgICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLnZhbHVlKCk7XFxuICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbXSwgYXJncyk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gdGhpc1tjaGFpbk5hbWVdKGZ1bmN0aW9uKHZhbHVlKSB7XFxuICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbXSwgYXJncyk7XFxuICAgICAgICB9KTtcXG4gICAgICB9O1xcbiAgICB9KTtcXG5cXG4gICAgLy8gTWFwIG1pbmlmaWVkIG1ldGhvZCBuYW1lcyB0byB0aGVpciByZWFsIG5hbWVzLlxcbiAgICBiYXNlRm9yT3duKExhenlXcmFwcGVyLnByb3RvdHlwZSwgZnVuY3Rpb24oZnVuYywgbWV0aG9kTmFtZSkge1xcbiAgICAgIHZhciBsb2Rhc2hGdW5jID0gbG9kYXNoW21ldGhvZE5hbWVdO1xcbiAgICAgIGlmIChsb2Rhc2hGdW5jKSB7XFxuICAgICAgICB2YXIga2V5ID0gbG9kYXNoRnVuYy5uYW1lICsgJyc7XFxuICAgICAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwocmVhbE5hbWVzLCBrZXkpKSB7XFxuICAgICAgICAgIHJlYWxOYW1lc1trZXldID0gW107XFxuICAgICAgICB9XFxuICAgICAgICByZWFsTmFtZXNba2V5XS5wdXNoKHsgJ25hbWUnOiBtZXRob2ROYW1lLCAnZnVuYyc6IGxvZGFzaEZ1bmMgfSk7XFxuICAgICAgfVxcbiAgICB9KTtcXG5cXG4gICAgcmVhbE5hbWVzW2NyZWF0ZUh5YnJpZCh1bmRlZmluZWQsIFdSQVBfQklORF9LRVlfRkxBRykubmFtZV0gPSBbe1xcbiAgICAgICduYW1lJzogJ3dyYXBwZXInLFxcbiAgICAgICdmdW5jJzogdW5kZWZpbmVkXFxuICAgIH1dO1xcblxcbiAgICAvLyBBZGQgbWV0aG9kcyB0byBgTGF6eVdyYXBwZXJgLlxcbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuY2xvbmUgPSBsYXp5Q2xvbmU7XFxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5yZXZlcnNlID0gbGF6eVJldmVyc2U7XFxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS52YWx1ZSA9IGxhenlWYWx1ZTtcXG5cXG4gICAgLy8gQWRkIGNoYWluIHNlcXVlbmNlIG1ldGhvZHMgdG8gdGhlIGBsb2Rhc2hgIHdyYXBwZXIuXFxuICAgIGxvZGFzaC5wcm90b3R5cGUuYXQgPSB3cmFwcGVyQXQ7XFxuICAgIGxvZGFzaC5wcm90b3R5cGUuY2hhaW4gPSB3cmFwcGVyQ2hhaW47XFxuICAgIGxvZGFzaC5wcm90b3R5cGUuY29tbWl0ID0gd3JhcHBlckNvbW1pdDtcXG4gICAgbG9kYXNoLnByb3RvdHlwZS5uZXh0ID0gd3JhcHBlck5leHQ7XFxuICAgIGxvZGFzaC5wcm90b3R5cGUucGxhbnQgPSB3cmFwcGVyUGxhbnQ7XFxuICAgIGxvZGFzaC5wcm90b3R5cGUucmV2ZXJzZSA9IHdyYXBwZXJSZXZlcnNlO1xcbiAgICBsb2Rhc2gucHJvdG90eXBlLnRvSlNPTiA9IGxvZGFzaC5wcm90b3R5cGUudmFsdWVPZiA9IGxvZGFzaC5wcm90b3R5cGUudmFsdWUgPSB3cmFwcGVyVmFsdWU7XFxuXFxuICAgIC8vIEFkZCBsYXp5IGFsaWFzZXMuXFxuICAgIGxvZGFzaC5wcm90b3R5cGUuZmlyc3QgPSBsb2Rhc2gucHJvdG90eXBlLmhlYWQ7XFxuXFxuICAgIGlmIChzeW1JdGVyYXRvcikge1xcbiAgICAgIGxvZGFzaC5wcm90b3R5cGVbc3ltSXRlcmF0b3JdID0gd3JhcHBlclRvSXRlcmF0b3I7XFxuICAgIH1cXG4gICAgcmV0dXJuIGxvZGFzaDtcXG4gIH0pO1xcblxcbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXFxuXFxuICAvLyBFeHBvcnQgbG9kYXNoLlxcbiAgdmFyIF8gPSBydW5JbkNvbnRleHQoKTtcXG5cXG4gIC8vIFNvbWUgQU1EIGJ1aWxkIG9wdGltaXplcnMsIGxpa2Ugci5qcywgY2hlY2sgZm9yIGNvbmRpdGlvbiBwYXR0ZXJucyBsaWtlOlxcbiAgaWYgKHRydWUpIHtcXG4gICAgLy8gRXhwb3NlIExvZGFzaCBvbiB0aGUgZ2xvYmFsIG9iamVjdCB0byBwcmV2ZW50IGVycm9ycyB3aGVuIExvZGFzaCBpc1xcbiAgICAvLyBsb2FkZWQgYnkgYSBzY3JpcHQgdGFnIGluIHRoZSBwcmVzZW5jZSBvZiBhbiBBTUQgbG9hZGVyLlxcbiAgICAvLyBTZWUgaHR0cDovL3JlcXVpcmVqcy5vcmcvZG9jcy9lcnJvcnMuaHRtbCNtaXNtYXRjaCBmb3IgbW9yZSBkZXRhaWxzLlxcbiAgICAvLyBVc2UgYF8ubm9Db25mbGljdGAgdG8gcmVtb3ZlIExvZGFzaCBmcm9tIHRoZSBnbG9iYWwgb2JqZWN0LlxcbiAgICByb290Ll8gPSBfO1xcblxcbiAgICAvLyBEZWZpbmUgYXMgYW4gYW5vbnltb3VzIG1vZHVsZSBzbywgdGhyb3VnaCBwYXRoIG1hcHBpbmcsIGl0IGNhbiBiZVxcbiAgICAvLyByZWZlcmVuY2VkIGFzIHRoZSBcXFwidW5kZXJzY29yZVxcXCIgbW9kdWxlLlxcbiAgICAhKF9fV0VCUEFDS19BTURfREVGSU5FX1JFU1VMVF9fID0gKGZ1bmN0aW9uKCkge1xcbiAgICAgIHJldHVybiBfO1xcbiAgICB9KS5jYWxsKGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18sIGV4cG9ydHMsIG1vZHVsZSksXFxuXFx0XFx0X19XRUJQQUNLX0FNRF9ERUZJTkVfUkVTVUxUX18gIT09IHVuZGVmaW5lZCAmJiAobW9kdWxlLmV4cG9ydHMgPSBfX1dFQlBBQ0tfQU1EX0RFRklORV9SRVNVTFRfXykpO1xcbiAgfVxcbiAgLy8gQ2hlY2sgZm9yIGBleHBvcnRzYCBhZnRlciBgZGVmaW5lYCBpbiBjYXNlIGEgYnVpbGQgb3B0aW1pemVyIGFkZHMgaXQuXFxuICBlbHNlIHt9XFxufS5jYWxsKHRoaXMpKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDJ4dlpHRnphQzlzYjJSaGMyZ3Vhbk11YW5NaUxDSnRZWEJ3YVc1bmN5STZJanRCUVVGQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hEUVVGRE96dEJRVVZFTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRXNNa05CUVRKRE8wRkJRek5ETzBGQlEwRXNNa1JCUVRKRU96dEJRVVV6UkR0QlFVTkJMQ3REUVVFclF6dEJRVU12UXp0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3h6UTBGQmMwTTdRVUZEZEVNN08wRkJSVUU3UVVGRFFUczdRVUZGUVR0QlFVTkJPenRCUVVWQk8wRkJRMEVzZVVKQlFYbENPMEZCUTNwQ0xIbENRVUY1UWp0QlFVTjZRanM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEZsQlFWazdRVUZEV2p0QlFVTkJPMEZCUTBFN1FVRkRRU3d5UTBGQk1rTTdPMEZCUlRORE8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3d3UWtGQk1FSXNUVUZCVFN4aFFVRmhMRTlCUVU4N08wRkJSWEJFTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUczdRVUZGUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4cFJFRkJhVVFzUlVGQlJUdEJRVU51UkR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCTzBGQlEwRXNNa05CUVRKRExFVkJRVVU3TzBGQlJUZERPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFc1pVRkJaVHRCUVVObUxHTkJRV003UVVGRFpDeGpRVUZqTzBGQlEyUXNaMEpCUVdkQ08wRkJRMmhDTEdWQlFXVTdRVUZEWmpzN1FVRkZRVHRCUVVOQk8wRkJRMEVzVlVGQlZUdEJRVU5XTEZOQlFWTTdRVUZEVkN4VFFVRlRPMEZCUTFRc1YwRkJWenRCUVVOWUxGVkJRVlU3UVVGRFZqczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRXNNRUpCUVRCQ0xIRkNRVUZOTEdkQ1FVRm5RaXh4UWtGQlRTeEpRVUZKTEhGQ1FVRk5MSE5DUVVGelFpeHhRa0ZCVFRzN1FVRkZOVVk3UVVGRFFUczdRVUZGUVR0QlFVTkJPenRCUVVWQk8wRkJRMEVzYjBKQlFXOUNMRXRCUVRCQ096dEJRVVU1UXp0QlFVTkJMR3REUVVGclF5eFJRVUZoT3p0QlFVVXZRenRCUVVOQk96dEJRVVZCTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTEUxQlFVMDdRVUZEVGl4SFFVRkhPenRCUVVWSU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hoUVVGaExGVkJRVlU3UVVGRGRrSXNZVUZCWVN4SFFVRkhPMEZCUTJoQ0xHRkJRV0VzVDBGQlR6dEJRVU53UWl4bFFVRmxMRWRCUVVjN1FVRkRiRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hoUVVGaExFOUJRVTg3UVVGRGNFSXNZVUZCWVN4VlFVRlZPMEZCUTNaQ0xHRkJRV0VzVlVGQlZUdEJRVU4yUWl4aFFVRmhMRkZCUVZFN1FVRkRja0lzWlVGQlpTeFZRVUZWTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1lVRkJZU3hQUVVGUE8wRkJRM0JDTEdGQlFXRXNWVUZCVlR0QlFVTjJRaXhsUVVGbExFOUJRVTg3UVVGRGRFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR0ZCUVdFc1QwRkJUenRCUVVOd1FpeGhRVUZoTEZWQlFWVTdRVUZEZGtJc1pVRkJaU3hQUVVGUE8wRkJRM1JDTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNZVUZCWVN4UFFVRlBPMEZCUTNCQ0xHRkJRV0VzVlVGQlZUdEJRVU4yUWl4bFFVRmxMRk5CUVZNN1FVRkRlRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNZVUZCWVN4UFFVRlBPMEZCUTNCQ0xHRkJRV0VzVlVGQlZUdEJRVU4yUWl4bFFVRmxMRTlCUVU4N1FVRkRkRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR0ZCUVdFc1QwRkJUenRCUVVOd1FpeGhRVUZoTEVkQlFVYzdRVUZEYUVJc1pVRkJaU3hUUVVGVE8wRkJRM2hDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4aFFVRmhMRTlCUVU4N1FVRkRjRUlzWVVGQllTeEhRVUZITzBGQlEyaENMR0ZCUVdFc1ZVRkJWVHRCUVVOMlFpeGxRVUZsTEZOQlFWTTdRVUZEZUVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHRkJRV0VzVDBGQlR6dEJRVU53UWl4aFFVRmhMRlZCUVZVN1FVRkRka0lzWlVGQlpTeFBRVUZQTzBGQlEzUkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR0ZCUVdFc1QwRkJUenRCUVVOd1FpeGhRVUZoTEU5QlFVODdRVUZEY0VJc1pVRkJaU3hQUVVGUE8wRkJRM1JDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNZVUZCWVN4UFFVRlBPMEZCUTNCQ0xHRkJRV0VzVlVGQlZUdEJRVU4yUWl4aFFVRmhMRWRCUVVjN1FVRkRhRUlzWVVGQllTeFRRVUZUTzBGQlEzUkNPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR0ZCUVdFc1QwRkJUenRCUVVOd1FpeGhRVUZoTEZWQlFWVTdRVUZEZGtJc1lVRkJZU3hIUVVGSE8wRkJRMmhDTEdGQlFXRXNVMEZCVXp0QlFVTjBRanRCUVVOQkxHVkJRV1VzUjBGQlJ6dEJRVU5zUWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4aFFVRmhMRTlCUVU4N1FVRkRjRUlzWVVGQllTeFZRVUZWTzBGQlEzWkNMR1ZCUVdVc1UwRkJVenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNZVUZCWVN4UlFVRlJPMEZCUTNKQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWp0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNZVUZCWVN4UlFVRlJPMEZCUTNKQ0xHVkJRV1VzVDBGQlR6dEJRVU4wUWp0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR0ZCUVdFc1VVRkJVVHRCUVVOeVFpeGxRVUZsTEU5QlFVODdRVUZEZEVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWVVGQllTeGpRVUZqTzBGQlF6TkNMR0ZCUVdFc1ZVRkJWVHRCUVVOMlFpeGhRVUZoTEZWQlFWVTdRVUZEZGtJc1pVRkJaU3hIUVVGSE8wRkJRMnhDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeExRVUZMTzBGQlEwdzdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNZVUZCWVN4UFFVRlBPMEZCUTNCQ0xHRkJRV0VzVlVGQlZUdEJRVU4yUWl4aFFVRmhMRkZCUVZFN1FVRkRja0lzWVVGQllTeFRRVUZUTzBGQlEzUkNMR1ZCUVdVc1VVRkJVVHRCUVVOMlFqdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdGQlFXRXNUMEZCVHp0QlFVTndRaXhoUVVGaExFZEJRVWM3UVVGRGFFSXNZVUZCWVN4UlFVRlJPMEZCUTNKQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hoUVVGaExFOUJRVTg3UVVGRGNFSXNZVUZCWVN4SFFVRkhPMEZCUTJoQ0xHRkJRV0VzVVVGQlVUdEJRVU55UWl4aFFVRmhMRlZCUVZVN1FVRkRka0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1lVRkJZU3hIUVVGSE8wRkJRMmhDTEdWQlFXVXNVMEZCVXp0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWVVGQllTeFBRVUZQTzBGQlEzQkNMR0ZCUVdFc1ZVRkJWVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHRkJRV0VzVVVGQlVUdEJRVU55UWl4bFFVRmxMRlZCUVZVN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNZVUZCWVN4UlFVRlJPMEZCUTNKQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHRkJRV0VzWTBGQll6dEJRVU16UWl4aFFVRmhMRlZCUVZVN1FVRkRka0lzWVVGQllTeEhRVUZITzBGQlEyaENMR0ZCUVdFc1UwRkJVenRCUVVOMFFqdEJRVU5CTEdGQlFXRXNWVUZCVlR0QlFVTjJRaXhsUVVGbExFZEJRVWM3UVVGRGJFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzUzBGQlN6dEJRVU5NTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNZVUZCWVN4UFFVRlBPMEZCUTNCQ0xHRkJRV0VzVlVGQlZUdEJRVU4yUWl4bFFVRmxMRTlCUVU4N1FVRkRkRUk3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWVVGQllTeFBRVUZQTzBGQlEzQkNMR0ZCUVdFc1ZVRkJWVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGhRVUZoTEZGQlFWRTdRVUZEY2tJc1lVRkJZU3hWUVVGVk8wRkJRM1pDTEdWQlFXVXNUMEZCVHp0QlFVTjBRanRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hoUVVGaExGRkJRVkU3UVVGRGNrSXNZVUZCWVN4UFFVRlBPMEZCUTNCQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxFdEJRVXM3UVVGRFREczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHRkJRV0VzVVVGQlVUdEJRVU55UWl4bFFVRmxMRkZCUVZFN1FVRkRka0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNZVUZCWVN4VlFVRlZPMEZCUTNaQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWVVGQllTeFJRVUZSTzBGQlEzSkNMR0ZCUVdFc1QwRkJUenRCUVVOd1FpeGxRVUZsTEZGQlFWRTdRVUZEZGtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeExRVUZMTzBGQlEwdzdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGhRVUZoTEZGQlFWRTdRVUZEY2tJc1lVRkJZU3hSUVVGUk8wRkJRM0pDTEdWQlFXVXNVMEZCVXp0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWVVGQllTeFBRVUZQTzBGQlEzQkNMR0ZCUVdFc1QwRkJUenRCUVVOd1FpeGxRVUZsTEZGQlFWRTdRVUZEZGtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4aFFVRmhMRTlCUVU4N1FVRkRjRUlzWVVGQllTeFBRVUZQTzBGQlEzQkNMR1ZCUVdVc1VVRkJVVHRCUVVOMlFqdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1lVRkJZU3hQUVVGUE8wRkJRM0JDTEdGQlFXRXNSMEZCUnp0QlFVTm9RaXhsUVVGbExGRkJRVkU3UVVGRGRrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR0ZCUVdFc1VVRkJVVHRCUVVOeVFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR0ZCUVdFc1VVRkJVVHRCUVVOeVFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR0ZCUVdFc1VVRkJVVHRCUVVOeVFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hoUVVGaExGRkJRVkU3UVVGRGNrSXNZVUZCWVN4UlFVRlJPMEZCUTNKQ0xHVkJRV1VzUjBGQlJ6dEJRVU5zUWp0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR0ZCUVdFc1VVRkJVVHRCUVVOeVFpeGxRVUZsTEZOQlFWTTdRVUZEZUVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hoUVVGaExGRkJRVkU3UVVGRGNrSXNaVUZCWlN4VFFVRlRPMEZCUTNoQ08wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWVVGQllTeFJRVUZSTzBGQlEzSkNMR1ZCUVdVc1QwRkJUenRCUVVOMFFqdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWVVGQllTeFJRVUZSTzBGQlEzSkNMR1ZCUVdVc1QwRkJUenRCUVVOMFFqdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEVzUzBGQlN6dEJRVU5NTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGhRVUZoTEZWQlFWVTdRVUZEZGtJc1lVRkJZU3hWUVVGVk8wRkJRM1pDTEdWQlFXVXNWVUZCVlR0QlFVTjZRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdGQlFXRXNUMEZCVHp0QlFVTndRaXhoUVVGaExFZEJRVWM3UVVGRGFFSXNaVUZCWlN4UFFVRlBPMEZCUTNSQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4aFFVRmhMRkZCUVZFN1FVRkRja0lzWlVGQlpTeFBRVUZQTzBGQlEzUkNPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVN4TFFVRkxPMEZCUTB3N1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR0ZCUVdFc1VVRkJVVHRCUVVOeVFpeGxRVUZsTEU5QlFVODdRVUZEZEVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJMRXRCUVVzN1FVRkRURHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hoUVVGaExFOUJRVTg3UVVGRGNFSXNZVUZCWVN4SFFVRkhPMEZCUTJoQ0xHRkJRV0VzVVVGQlVUdEJRVU55UWl4bFFVRmxMRkZCUVZFN1FVRkRka0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdGQlFXRXNUMEZCVHp0QlFVTndRaXhoUVVGaExFZEJRVWM3UVVGRGFFSXNZVUZCWVN4UlFVRlJPMEZCUTNKQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdGQlFXRXNVVUZCVVR0QlFVTnlRaXhsUVVGbExGRkJRVkU3UVVGRGRrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1lVRkJZU3hSUVVGUk8wRkJRM0pDTEdWQlFXVXNUMEZCVHp0QlFVTjBRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdGQlFXRXNVVUZCVVR0QlFVTnlRaXhsUVVGbExGRkJRVkU3UVVGRGRrSTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHRkJRV0VzVVVGQlVUdEJRVU55UWl4bFFVRmxMRkZCUVZFN1FVRkRka0k3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHRkJRV0VzVVVGQlVUdEJRVU55UWl4bFFVRmxMRkZCUVZFN1FVRkRka0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR0ZCUVdFc1VVRkJVVHRCUVVOeVFpeGxRVUZsTEU5QlFVODdRVUZEZEVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hoUVVGaExGRkJRVkU3UVVGRGNrSXNaVUZCWlN4UFFVRlBPMEZCUTNSQ08wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1lVRkJZU3hSUVVGUk8wRkJRM0pDTEdWQlFXVXNWVUZCVlR0QlFVTjZRanRCUVVOQk8wRkJRMEVzWlVGQlpTd3dRa0ZCTUVJN1FVRkRla003UVVGRFFUdEJRVU5CTEc5Q1FVRnZRaXdyUWtGQkswSTdRVUZEYmtRN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzYTBOQlFXdERMRFJDUVVFMFFqdEJRVU01UkR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUczdRVUZGUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEV0QlFVczdPMEZCUlV3N1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJN1FVRkRRU3hSUVVGUk8wRkJRMUlzUzBGQlN6czdRVUZGVER0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNiVVZCUVcxRk8wRkJRMjVGTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzUzBGQlN6czdRVUZGVER0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeEhRVUZITzBGQlEyeENMR1ZCUVdVc1UwRkJVenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWTBGQll6dEJRVU5rTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeG5Ra0ZCWjBJN1FVRkRhRUk3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHZENRVUZuUWp0QlFVTm9RanRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1owSkJRV2RDTzBGQlEyaENPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4blFrRkJaMEk3UVVGRGFFSTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdkQ1FVRm5RanRCUVVOb1FqdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzYTBKQlFXdENPMEZCUTJ4Q08wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRWRCUVVjN1FVRkRiRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hSUVVGUk8wRkJRMUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4cFFrRkJhVUlzUjBGQlJ6dEJRVU53UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFTeFpRVUZaTzBGQlExbzdRVUZEUVR0QlFVTkJMR05CUVdNN1FVRkRaRHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUczdRVUZGUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UFFVRlBPMEZCUTNSQ08wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEZOQlFWTTdRVUZETVVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNSMEZCUnp0QlFVTndRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhUUVVGVE8wRkJRekZDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhwUWtGQmFVSXNVVUZCVVR0QlFVTjZRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1QwRkJUenRCUVVOMFFqdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xGTkJRVk03UVVGRE1VSTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1VVRkJVVHRCUVVOU08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHbENRVUZwUWl4SFFVRkhPMEZCUTNCQ08wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhUUVVGVE8wRkJRekZDTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEVkQlFVYzdRVUZEYkVJc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1VVRkJVVHRCUVVOU08wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UFFVRlBPMEZCUTNSQ08wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeFRRVUZUTzBGQlF6RkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEVkQlFVYzdRVUZEY0VJN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeFRRVUZUTzBGQlF6RkNPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRWRCUVVjN1FVRkRiRUlzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNUMEZCVHp0QlFVTjBRanRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeEhRVUZITzBGQlEyeENMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeEhRVUZITzBGQlEyeENMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hQUVVGUE8wRkJRM1JDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEZOQlFWTTdRVUZETVVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeHBRa0ZCYVVJc1IwRkJSenRCUVVOd1FqdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzYVVKQlFXbENMRk5CUVZNN1FVRkRNVUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEVkQlFVYzdRVUZEYkVJc1pVRkJaU3hUUVVGVE8wRkJRM2hDTEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFBRVUZQTzBGQlEzUkNMR2xDUVVGcFFpeEhRVUZITzBGQlEzQkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFOUJRVTg3UVVGRGRFSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHbENRVUZwUWl4UFFVRlBPMEZCUTNoQ08wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFBRVUZQTzBGQlEzUkNMR2xDUVVGcFFpeFBRVUZQTzBGQlEzaENPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzUjBGQlJ6dEJRVU5zUWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNSMEZCUnp0QlFVTnNRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UFFVRlBPMEZCUTNSQ0xHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4alFVRmpPMEZCUXpkQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4bFFVRmxMRlZCUVZVN1FVRkRla0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeFZRVUZWTzBGQlF6TkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVDBGQlR6dEJRVU5RTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeEhRVUZITzBGQlEyeENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4VFFVRlRPMEZCUTFRc1VVRkJVVHRCUVVOU08wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRlZCUVZVN1FVRkRla0lzYVVKQlFXbENMRTlCUVU4N1FVRkRlRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNVVUZCVVR0QlFVTjZRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4bFFVRmxMRk5CUVZNN1FVRkRlRUk3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeEhRVUZITzBGQlEzQkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFJRVUZSTzBGQlExSTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTERKRFFVRXlRenRCUVVNelF6dEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1ZVRkJWVHRCUVVOV08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxGTkJRVk03UVVGRFZDeFJRVUZSTzBGQlExSTdRVUZEUVR0QlFVTkJMRk5CUVZNN1FVRkRWRHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRTlCUVU4N1FVRkRVRHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhWUVVGVk8wRkJRek5DTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNVMEZCVXp0QlFVTXhRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExFOUJRVTg3UVVGRGRFSXNhVUpCUVdsQ0xHVkJRV1U3UVVGRGFFTTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxIRkRRVUZ4UXl3NFFrRkJPRUk3UVVGRGJrVTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhsUVVGbExFOUJRVTg3UVVGRGRFSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4alFVRmpPMEZCUXpkQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzWTBGQll6dEJRVU12UWp0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4alFVRmpPMEZCUXpkQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzWTBGQll6dEJRVU12UWp0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4alFVRmpPMEZCUXpkQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVTBGQlV6dEJRVU14UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEU5QlFVODdRVUZEVUR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRTlCUVU4N1FVRkRkRUlzWlVGQlpTeFZRVUZWTzBGQlEzcENMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeHBRa0ZCYVVJc1IwRkJSenRCUVVOd1FqdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEU5QlFVODdRVUZEZEVJc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xFOUJRVTg3UVVGRGVFSTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEdOQlFXTTdRVUZETjBJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVDBGQlR6dEJRVU5RTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEU5QlFVODdRVUZEZEVJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNVMEZCVXp0QlFVTjRRaXhsUVVGbExGTkJRVk03UVVGRGVFSXNaVUZCWlN4UFFVRlBPMEZCUTNSQ0xHbENRVUZwUWl4UFFVRlBPMEZCUTNoQ08wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1dVRkJXVHRCUVVOYU8wRkJRMEU3UVVGRFFTeFZRVUZWTzBGQlExWTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFZRVUZWTzBGQlEzcENMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEU5QlFVODdRVUZEZEVJc2FVSkJRV2xDTEU5QlFVODdRVUZEZUVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFBRVUZQTzBGQlExQTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hqUVVGak8wRkJRemRDTEdsQ1FVRnBRaXhIUVVGSE8wRkJRM0JDTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNhVUpCUVdsQ0xFOUJRVTg3UVVGRGVFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFZEJRVWM3UVVGRGJFSXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHbENRVUZwUWl4VFFVRlRPMEZCUXpGQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hqUVVGak8wRkJRemRDTEdsQ1FVRnBRaXhUUVVGVE8wRkJRekZDTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzWTBGQll6dEJRVU0zUWl4cFFrRkJhVUlzVTBGQlV6dEJRVU14UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhUUVVGVE8wRkJRekZDTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRTlCUVU4N1FVRkRkRUlzWlVGQlpTeFZRVUZWTzBGQlEzcENMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeHBRa0ZCYVVJc1QwRkJUenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWl4cFFrRkJhVUlzVlVGQlZUdEJRVU16UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxFOUJRVTg3UVVGRFVEdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hqUVVGak8wRkJRemRDTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhwUWtGQmFVSXNSMEZCUnp0QlFVTndRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhwUWtGQmFVSXNVMEZCVXp0QlFVTXhRanRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4cFFrRkJhVUlzVTBGQlV6dEJRVU14UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeHBRa0ZCYVVJc1UwRkJVenRCUVVNeFFqdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4bFFVRmxMRk5CUVZNN1FVRkRlRUk3UVVGRFFUdEJRVU5CTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xGTkJRVk03UVVGRE1VSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFZRVUZWTzBGQlEzcENMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEZOQlFWTTdRVUZETVVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4cFFrRkJhVUlzVTBGQlV6dEJRVU14UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hQUVVGUE8wRkJRM1JDTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhwUWtGQmFVSXNVMEZCVXp0QlFVTXhRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEZWQlFWVTdRVUZEVmp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdsQ1FVRnBRaXhUUVVGVE8wRkJRekZDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4cFFrRkJhVUlzVTBGQlV6dEJRVU14UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeHBRa0ZCYVVJc1UwRkJVenRCUVVNeFFqdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhwUWtGQmFVSXNVMEZCVXp0QlFVTXhRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeEhRVUZITzBGQlEyeENMR2xDUVVGcFFpeFZRVUZWTzBGQlF6TkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEU5QlFVODdRVUZEZUVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xFOUJRVTg3UVVGRGVFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFZEJRVWM3UVVGRGJFSXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHbENRVUZwUWl4VFFVRlRPMEZCUXpGQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEdOQlFXTTdRVUZETjBJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFTeFBRVUZQTzBGQlExQTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNWVUZCVlR0QlFVTXpRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEVkQlFVYzdRVUZEYkVJc2FVSkJRV2xDTEZWQlFWVTdRVUZETTBJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxFOUJRVTg3UVVGRFVEczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4bFFVRmxMRkZCUVZFN1FVRkRka0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEU5QlFVODdRVUZEZEVJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhIUVVGSE8wRkJRM0JDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzWTBGQll6dEJRVU0zUWl4bFFVRmxMRGhDUVVFNFFqdEJRVU0zUXl4bFFVRmxMRlZCUVZVN1FVRkRla0lzYVVKQlFXbENMRTlCUVU4N1FVRkRlRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFRRVUZUTzBGQlExUXNVVUZCVVR0QlFVTlNPMEZCUTBFN08wRkJSVUU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hUUVVGVE8wRkJRMVFzYVVKQlFXbENPMEZCUTJwQ0xFOUJRVTg3TzBGQlJWQTdRVUZEUVR0QlFVTkJMRTlCUVU4N1FVRkRVRHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhwUWtGQmFVSXNVVUZCVVR0QlFVTjZRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEU5QlFVODdRVUZEVURzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHbENRVUZwUWl4UlFVRlJPMEZCUTNwQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1kwRkJZenRCUVVNM1FpeHBRa0ZCYVVJc1ZVRkJWVHRCUVVNelFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1QwRkJUenRCUVVOMFFpeGxRVUZsTEU5QlFVODdRVUZEZEVJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhwUWtGQmFVSXNUMEZCVHp0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFOUJRVTg3UVVGRGRFSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHbENRVUZwUWl4UFFVRlBPMEZCUTNoQ08wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEZsQlFWazdRVUZEV2p0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVTBGQlV6dEJRVU40UWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4UlFVRlJPenRCUVVWU08wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGVkJRVlU3UVVGRGVrSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHbENRVUZwUWl4VlFVRlZPMEZCUXpOQ08wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeGpRVUZqTzBGQlF6ZENMR2xDUVVGcFFpeEhRVUZITzBGQlEzQkNPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hqUVVGak8wRkJRemRDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNUMEZCVHp0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1kwRkJZenRCUVVNM1FpeGxRVUZsTEVkQlFVYzdRVUZEYkVJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRzFFUVVGdFJEdEJRVU51UkR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVlVGQlZUdEJRVU42UWl4bFFVRmxMRWRCUVVjN1FVRkRiRUlzYVVKQlFXbENMRlZCUVZVN1FVRkRNMEk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNhVUpCUVdsQ0xGVkJRVlU3UVVGRE0wSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFBRVUZQTzBGQlExQTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEdOQlFXTTdRVUZETjBJc2FVSkJRV2xDTEU5QlFVODdRVUZEZUVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFOUJRVTg3UVVGRGRFSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hqUVVGak8wRkJRemRDTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhwUWtGQmFVSXNVMEZCVXp0QlFVTXhRanRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hQUVVGUE8wRkJRMUE3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEU5QlFVODdRVUZEZEVJc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdWQlFXVXNVMEZCVXp0QlFVTjRRaXhwUWtGQmFVSXNVVUZCVVR0QlFVTjZRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJMRmxCUVZrN1FVRkRXanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeHpSVUZCYzBVN1FVRkRkRVU3UVVGRFFUdEJRVU5CTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhsUVVGbExFZEJRVWM3UVVGRGJFSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHVkJRV1VzVTBGQlV6dEJRVU40UWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJMRlZCUVZVN1FVRkRWanRCUVVOQkxGVkJRVlU3UVVGRFZqdEJRVU5CTEZWQlFWVTdRVUZEVmp0QlFVTkJMRlZCUVZVN1FVRkRWanRCUVVOQkxGVkJRVlU3UVVGRFZqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRlZCUVZVN1FVRkRWanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEU5QlFVODdRVUZEZEVJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhwUWtGQmFVSXNVVUZCVVR0QlFVTjZRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hQUVVGUE8wRkJRM1JDTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNhVUpCUVdsQ0xFOUJRVTg3UVVGRGVFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1kwRkJZenRCUVVNM1FpeHBRa0ZCYVVJc1UwRkJVenRCUVVNeFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeGpRVUZqTzBGQlF6ZENMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeGxRVUZsTEZWQlFWVTdRVUZEZWtJc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVDBGQlR6dEJRVU4wUWl4bFFVRmxMRlZCUVZVN1FVRkRla0lzWlVGQlpTeFRRVUZUTzBGQlEzaENMR1ZCUVdVc1UwRkJVenRCUVVONFFpeHBRa0ZCYVVJc1QwRkJUenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeGxRVUZsTEU5QlFVODdRVUZEZEVJc2FVSkJRV2xDTEVkQlFVYzdRVUZEY0VJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRTlCUVU4N1FVRkRVRHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hQUVVGUE8wRkJRM1JDTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNhVUpCUVdsQ0xFOUJRVTg3UVVGRGVFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1QwRkJUenRCUVVOMFFpeGxRVUZsTEU5QlFVODdRVUZEZEVJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRWRCUVVjN1FVRkRiRUlzYVVKQlFXbENMR05CUVdNN1FVRkRMMEk3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEVkQlFVYzdRVUZEYkVJc2FVSkJRV2xDTEZWQlFWVTdRVUZETTBJN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFZEJRVWM3UVVGRGJFSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHbENRVUZwUWl4UFFVRlBPMEZCUTNoQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4alFVRmpPMEZCUTJRc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhWUVVGVk8wRkJRek5DTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEU5QlFVODdRVUZEZEVJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNUMEZCVHp0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEdWQlFXVTdRVUZET1VJN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4VFFVRlRPMEZCUTNoQ0xHbENRVUZwUWl4UlFVRlJPMEZCUTNwQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzWVVGQllUdEJRVU0xUWl4cFFrRkJhVUlzWVVGQllUdEJRVU01UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4VFFVRlRPMEZCUTNoQ0xHbENRVUZwUWl4UlFVRlJPMEZCUTNwQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNVMEZCVXp0QlFVTjRRaXhwUWtGQmFVSXNVVUZCVVR0QlFVTjZRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeEhRVUZITzBGQlEyeENMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeHZRa0ZCYjBJN1FVRkRia01zYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVDBGQlR6dEJRVU4wUWl4bFFVRmxMRTlCUVU4N1FVRkRkRUlzWlVGQlpTeFBRVUZQTzBGQlEzUkNMR2RDUVVGblFpeFRRVUZUTzBGQlEzcENMR2xDUVVGcFFpeFBRVUZQTzBGQlEzaENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEU5QlFVODdRVUZEZEVJc1pVRkJaU3hQUVVGUE8wRkJRM1JDTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhuUWtGQlowSXNVMEZCVXp0QlFVTjZRaXhwUWtGQmFVSXNUMEZCVHp0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRTlCUVU4N1FVRkRkRUlzWlVGQlpTeFBRVUZQTzBGQlEzUkNMR2xDUVVGcFFpeFBRVUZQTzBGQlEzaENPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEU5QlFVODdRVUZEZEVJc1pVRkJaU3hSUVVGUkxGVkJRVlU3UVVGRGFrTXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHbENRVUZwUWl4UlFVRlJPMEZCUTNwQ08wRkJRMEU3UVVGRFFUdEJRVU5CTERSQ1FVRTBRanM3UVVGRk5VSTdRVUZEUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNWVUZCVlR0QlFVTldPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4UlFVRlJMRlZCUVZVN1FVRkRha01zYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hSUVVGUkxGVkJRVlU3UVVGRGFrTXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRlZCUVZVN1FVRkRla0lzWlVGQlpTeFZRVUZWTzBGQlEzcENMR2xDUVVGcFFpeFZRVUZWTzBGQlF6TkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHbENRVUZwUWl4VlFVRlZPMEZCUXpOQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hQUVVGUE8wRkJRMUE3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGVkJRVlU3UVVGRGVrSXNaVUZCWlN4VFFVRlRPMEZCUTNoQ0xHbENRVUZwUWl4VlFVRlZPMEZCUXpOQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFRRVUZUTzBGQlEzaENMR2xDUVVGcFFpeFZRVUZWTzBGQlF6TkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRWRCUVVjN1FVRkRiRUlzYVVKQlFXbENMRlZCUVZVN1FVRkRNMEk3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeFZRVUZWTzBGQlF6TkNPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVlVGQlZUdEJRVU16UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVlVGQlZUdEJRVU16UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFZRVUZWTzBGQlEzcENMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEZWQlFWVTdRVUZETTBJN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGVkJRVlU3UVVGRGVrSXNhVUpCUVdsQ0xGVkJRVlU3UVVGRE0wSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeHpRMEZCYzBNN1FVRkRkRU03UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVMEZCVXp0QlFVTjRRaXhwUWtGQmFVSXNWVUZCVlR0QlFVTXpRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRmxCUVZrN1FVRkRXanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEU5QlFVODdRVUZEVURzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4cFFrRkJhVUk3UVVGRGFFTXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4bFFVRmxMRTlCUVU4N1FVRkRkRUk3UVVGRFFTeGxRVUZsTEU5QlFVODdRVUZEZEVJc1pVRkJaU3hQUVVGUE8wRkJRM1JDTzBGQlEwRXNaVUZCWlN4UFFVRlBPMEZCUTNSQ0xHVkJRV1VzVDBGQlR6dEJRVU4wUWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeFZRVUZWTzBGQlF6TkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4VlFVRlZPMEZCUTFZN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhwUWtGQmFVSXNWVUZCVlR0QlFVTXpRanRCUVVOQk8wRkJRMEU3UVVGRFFTeHZSVUZCYjBVN1FVRkRjRVU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVlVGQlZUdEJRVU42UWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzYVVKQlFXbENMRlZCUVZVN1FVRkRNMEk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxGbEJRVms3UVVGRFdqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhWUVVGVk8wRkJRek5DTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFhRVUZYTzBGQlExZ3NVMEZCVXp0QlFVTlVMRTlCUVU4N1FVRkRVRHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNVVUZCVVR0QlFVTjZRanRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZWQlFWVTdRVUZEZWtJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhsUVVGbExFOUJRVTg3UVVGRGRFSTdRVUZEUVN4cFFrRkJhVUlzVlVGQlZUdEJRVU16UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVTBGQlV6dEJRVU40UWl4cFFrRkJhVUlzVlVGQlZUdEJRVU16UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1ZVRkJWVHRCUVVOV08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhwUWtGQmFVSXNWVUZCVlR0QlFVTXpRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhsUVVGbExFZEJRVWM3UVVGRGJFSXNaVUZCWlN4UFFVRlBPMEZCUTNSQ08wRkJRMEVzWlVGQlpTeFBRVUZQTzBGQlEzUkNMR1ZCUVdVc1QwRkJUenRCUVVOMFFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhWUVVGVk8wRkJRek5DTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEZWQlFWVTdRVUZETTBJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRTlCUVU4N1FVRkRkRUlzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZWQlFWVTdRVUZEZWtJc2FVSkJRV2xDTEZWQlFWVTdRVUZETTBJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzYVVKQlFXbENPMEZCUTJoRExHVkJRV1VzVVVGQlVUdEJRVU4yUWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeGxRVUZsTEU5QlFVODdRVUZEZEVJc1pVRkJaU3hQUVVGUE8wRkJRM1JDTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHbENRVUZwUWl4VlFVRlZPMEZCUXpOQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4UlFVRlJPMEZCUTFJN1FVRkRRU3hSUVVGUk8wRkJRMUk3UVVGRFFTeFJRVUZSTzBGQlExSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFZEJRVWM3UVVGRGJFSXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzYVVKQlFXbENMRWRCUVVjN1FVRkRjRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRkZCUVZFN1FVRkRka0k3UVVGRFFTeHBRa0ZCYVVJc1IwRkJSenRCUVVOd1FqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeEhRVUZITzBGQlEyeENMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeHBRa0ZCYVVJc1IwRkJSenRCUVVOd1FqdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UFFVRlBPMEZCUTNSQ0xHVkJRV1VzVDBGQlR6dEJRVU4wUWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFZRVUZWTzBGQlEzcENMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEZOQlFWTTdRVUZETVVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVTdRVUZEWmp0QlFVTkJPMEZCUTBFN1FVRkRRU3hWUVVGVk8wRkJRMVk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeGxRVUZsTEZWQlFWVTdRVUZEZWtJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhUUVVGVE8wRkJRekZDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4bFFVRmxMRlZCUVZVN1FVRkRla0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeFRRVUZUTzBGQlF6RkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVlVGQlZUdEJRVU16UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeHBRa0ZCYVVJc1QwRkJUenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHbENRVUZwUWl4UFFVRlBPMEZCUTNoQ08wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFZRVUZWTzBGQlEzcENMR2xDUVVGcFFpeEhRVUZITzBGQlEzQkNPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhIUVVGSE8wRkJRM0JDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFZEJRVWM3UVVGRGJFSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHbENRVUZwUWl4VlFVRlZPMEZCUXpOQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xFZEJRVWM3UVVGRGNFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xFOUJRVTg3UVVGRGVFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNSMEZCUnp0QlFVTndRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeEhRVUZITzBGQlEyeENMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJMRkZCUVZFN08wRkJSVkk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4VlFVRlZPMEZCUTFZN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNUMEZCVHp0QlFVTlFPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHbENRVUZwUWl4UFFVRlBPMEZCUTNoQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFBRVUZQTzBGQlEzUkNMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEVzTWtOQlFUSkRPMEZCUXpORExIbERRVUY1UXp0QlFVTjZReXhuUlVGQlowVTdRVUZEYUVVc2EwVkJRV3RGTzBGQlEyeEZPMEZCUTBFN1FVRkRRU3hsUVVGbE8wRkJRMlk3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xFOUJRVTg3UVVGRGVFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEdOQlFXTTdRVUZETjBJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhUUVVGVE8wRkJRekZDTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1QwRkJUenRCUVVOMFFpeHBRa0ZCYVVJc1QwRkJUenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNVVUZCVVR0QlFVTjZRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1UwRkJVenRCUVVONFFpeHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTERaRFFVRTJRenRCUVVNM1F6czdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4cFFrRkJhVUlzVTBGQlV6dEJRVU14UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNVMEZCVXp0QlFVTXhRanRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhsUVVGbExFZEJRVWM3UVVGRGJFSXNhVUpCUVdsQ0xGTkJRVk03UVVGRE1VSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNVMEZCVXp0QlFVTXhRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4cFFrRkJhVUlzVTBGQlV6dEJRVU14UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVTBGQlV6dEJRVU14UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVTBGQlV6dEJRVU14UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeHBRa0ZCYVVJc1UwRkJVenRCUVVNeFFqdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeEhRVUZITzBGQlEyeENMR2xDUVVGcFFpeFRRVUZUTzBGQlF6RkNPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEVkQlFVYzdRVUZEYkVJc2FVSkJRV2xDTEZOQlFWTTdRVUZETVVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeHBRa0ZCYVVJc1ZVRkJWVHRCUVVNelFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFZRVUZWTzBGQlEzcENMR2xDUVVGcFFpeFZRVUZWTzBGQlF6TkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNUMEZCVHpzN1FVRkZVRHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hQUVVGUE8wRkJRM1JDTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhwUWtGQmFVSXNUMEZCVHp0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEU5QlFVODdRVUZEZUVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRWRCUVVjN1FVRkRiRUlzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZWQlFWVTdRVUZEZWtJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhwUWtGQmFVSXNWVUZCVlR0QlFVTXpRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRTlCUVU4N1FVRkRkRUlzYVVKQlFXbENMRWRCUVVjN1FVRkRjRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UFFVRlBPMEZCUTNSQ0xHVkJRV1VzVDBGQlR6dEJRVU4wUWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEVkQlFVYzdRVUZEY0VJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeGxRVUZsTEVkQlFVYzdRVUZEYkVJc2FVSkJRV2xDTEZWQlFWVTdRVUZETTBJN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEdWQlFXVTdRVUZEYUVNN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGVkJRVlU3UVVGRGVrSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHbENRVUZwUWl4VlFVRlZPMEZCUXpOQ08wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVlVGQlZUdEJRVU42UWl4bFFVRmxMRlZCUVZVN1FVRkRla0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeFZRVUZWTzBGQlF6TkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFZRVUZWTzBGQlEzcENMR2xDUVVGcFFpeFZRVUZWTzBGQlF6TkNPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNWVUZCVlR0QlFVTldPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFOUJRVTg3UVVGRGRFSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHbENRVUZwUWl4UFFVRlBPMEZCUTNoQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFBRVUZQTzBGQlExQTdRVUZEUVN4TFFVRkxPenRCUVVWTU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHbENRVUZwUWl4bFFVRmxPMEZCUTJoRE8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRlZCUVZVN1FVRkRla0lzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRlZCUVZVN1FVRkRWanRCUVVOQk8wRkJRMEVzVlVGQlZUdEJRVU5XTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNUMEZCVHp0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRTlCUVU4N1FVRkRVRHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFBRVUZQTzBGQlEzUkNMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeG5Ra0ZCWjBJc1VVRkJVVHRCUVVONFFpeHBRa0ZCYVVJc1QwRkJUenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNVVUZCVVR0QlFVTlNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRTlCUVU4N1FVRkRkRUlzYVVKQlFXbENMRTlCUVU4N1FVRkRlRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UFFVRlBPMEZCUTNSQ0xHVkJRV1VzVFVGQlRUdEJRVU55UWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVDBGQlR6dEJRVU4wUWl4bFFVRmxMRlZCUVZVN1FVRkRla0lzYVVKQlFXbENMRTlCUVU4N1FVRkRlRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeExRVUZMT3p0QlFVVk1PMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFBRVUZQTzBGQlEzUkNMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeGxRVUZsTEZWQlFWVTdRVUZEZWtJc2FVSkJRV2xDTEU5QlFVODdRVUZEZUVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNlVUpCUVhsQ0xGRkJRVkVzU1VGQlNTeFJRVUZSTEUxQlFVMHNVVUZCVVR0QlFVTXpSQ3huUWtGQlowSXNVVUZCVVR0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hMUVVGTE96dEJRVVZNTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1QwRkJUenRCUVVOMFFpeGxRVUZsTEZWQlFWVTdRVUZEZWtJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTzBGQlEwRTdRVUZEUVN4M1FrRkJkMElzWjBKQlFXZENMRWxCUVVrc1owSkJRV2RDTzBGQlF6VkVPMEZCUTBFc2IwTkJRVzlETEdkQ1FVRm5RanRCUVVOd1JDeG5Ra0ZCWjBJc1owSkJRV2RDTzBGQlEyaERPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRXRCUVVzN08wRkJSVXc3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFOUJRVTg3UVVGRGRFSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHZENRVUZuUWl4UlFVRlJPMEZCUTNoQ0xHbENRVUZwUWl4UFFVRlBPMEZCUTNoQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UFFVRlBPMEZCUTNSQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWl4blFrRkJaMElzVVVGQlVUdEJRVU40UWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNhVUpCUVdsQ0xFOUJRVTg3UVVGRGVFSTdRVUZEUVR0QlFVTkJPMEZCUTBFc1YwRkJWeXh0UTBGQmJVTTdRVUZET1VNc1YwRkJWeXh2UTBGQmIwTTdRVUZETDBNc1YwRkJWenRCUVVOWU8wRkJRMEU3UVVGRFFTdzJRMEZCTmtNc2JVSkJRVzFDTzBGQlEyaEZPMEZCUTBFN1FVRkRRVHRCUVVOQkxHbERRVUZwUXl4dlEwRkJiME03UVVGRGNrVTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNhVUpCUVdsQ0xFOUJRVTg3UVVGRGVFSTdRVUZEUVR0QlFVTkJPMEZCUTBFc1YwRkJWeXh2UTBGQmIwTTdRVUZETDBNc1YwRkJWeXh2UTBGQmIwTTdRVUZETDBNc1YwRkJWenRCUVVOWU8wRkJRMEU3UVVGRFFTeDNRMEZCZDBNc2JVSkJRVzFDTzBGQlF6TkVPMEZCUTBFN1FVRkRRVHRCUVVOQkxEUkNRVUUwUWl4dFEwRkJiVU03UVVGREwwUTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UFFVRlBPMEZCUTNSQ0xHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeFBRVUZQTzBGQlEzaENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRTlCUVU4N1FVRkRkRUlzWlVGQlpTeFZRVUZWTzBGQlEzcENMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CTzBGQlEwRTdRVUZEUVN4WFFVRlhMRzlEUVVGdlF6dEJRVU12UXl4WFFVRlhMRzlEUVVGdlF6dEJRVU12UXl4WFFVRlhPMEZCUTFnN1FVRkRRVHRCUVVOQkxIZERRVUYzUXl3MFFrRkJORUk3UVVGRGNFVTdRVUZEUVR0QlFVTkJPMEZCUTBFc05FSkJRVFJDTEdsRFFVRnBRenRCUVVNM1JEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1QwRkJUenRCUVVOMFFpeGxRVUZsTEZWQlFWVTdRVUZEZWtJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJMRmRCUVZjc2JVTkJRVzFETzBGQlF6bERMRmRCUVZjc2IwTkJRVzlETzBGQlF5OURMRmRCUVZjN1FVRkRXRHRCUVVOQk8wRkJRMEVzTkVOQlFUUkRMRFpDUVVFMlFqdEJRVU42UlR0QlFVTkJPMEZCUTBFN1FVRkRRU3huUTBGQlowTXNhME5CUVd0RE8wRkJRMnhGTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVDBGQlR6dEJRVU4wUWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRTlCUVU4N1FVRkRkRUlzYVVKQlFXbENMRTlCUVU4N1FVRkRlRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFBRVUZQTzBGQlEzUkNMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeHBRa0ZCYVVJc1QwRkJUenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVN4dFEwRkJiVU03UVVGRGJrTTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFBRVUZQTzBGQlEzUkNMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1U3UVVGRFpqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hQUVVGUE8wRkJRM1JDTEdsQ1FVRnBRaXhIUVVGSE8wRkJRM0JDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFOUJRVTg3UVVGRGRFSXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHVkJRV1VzVVVGQlVUdEJRVU4yUWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hQUVVGUE8wRkJRM1JDTEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeHBRa0ZCYVVJc1QwRkJUenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEV0QlFVczdPMEZCUlV3N1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVlVGQlZUdEJRVU42UWl4bFFVRmxMRlZCUVZVN1FVRkRla0lzYVVKQlFXbENMRTlCUVU4N1FVRkRlRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc01rSkJRVEpDTEZGQlFWRXNUVUZCVFN4UlFVRlJMRWxCUVVrc1VVRkJVVHRCUVVNM1JDeG5Ra0ZCWjBJc1VVRkJVVHRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEVzVVVGQlVUdEJRVU5TTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hMUVVGTE96dEJRVVZNTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFc2QwSkJRWGRDTEdkQ1FVRm5RaXhKUVVGSkxHZENRVUZuUWp0QlFVTTFSQ3gxUWtGQmRVSXNaMEpCUVdkQ0xFbEJRVWtzWjBKQlFXZENPMEZCUXpORU8wRkJRMEU3UVVGRFFTeG5Ra0ZCWjBJc1owSkJRV2RDTzBGQlEyaERPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzUzBGQlN6czdRVUZGVER0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhwUWtGQmFVSXNSMEZCUnp0QlFVTndRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVDBGQlR6dEJRVU4wUWl4bFFVRmxMRWRCUVVjN1FVRkRiRUlzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xFZEJRVWM3UVVGRGNFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UFFVRlBPMEZCUTNSQ0xHVkJRV1VzVFVGQlRUdEJRVU55UWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hQUVVGUE8wRkJRM1JDTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhwUWtGQmFVSXNUMEZCVHp0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hQUVVGUE8wRkJRM1JDTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNhVUpCUVdsQ0xFOUJRVTg3UVVGRGVFSTdRVUZEUVR0QlFVTkJMSE5DUVVGelFpeFJRVUZSTEVsQlFVa3NVVUZCVVN4SlFVRkpMRkZCUVZFc1NVRkJTU3hSUVVGUk8wRkJRMnhGTzBGQlEwRXNOa0pCUVRaQ0xGRkJRVkVzU1VGQlNTeFJRVUZSTzBGQlEycEVPMEZCUTBFc1owSkJRV2RDTEZGQlFWRTdRVUZEZUVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFOUJRVTg3UVVGRGRFSXNaVUZCWlN4UFFVRlBPMEZCUTNSQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFc2MwSkJRWE5DTEdkQ1FVRm5RaXhKUVVGSkxHZENRVUZuUWl4SlFVRkpMR2RDUVVGblFqdEJRVU01UlR0QlFVTkJMQ3RDUVVFclFpeG5Ra0ZCWjBJN1FVRkRMME03UVVGRFFTeG5Ra0ZCWjBJc1owSkJRV2RDTEVsQlFVa3NaMEpCUVdkQ08wRkJRM0JFTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhsUVVGbExITkNRVUZ6UWp0QlFVTnlReXhwUWtGQmFVSXNUMEZCVHp0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRU3hQUVVGUE96dEJRVVZRTzBGQlEwRXNTMEZCU3pzN1FVRkZURHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEU5QlFVODdRVUZEZEVJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hSUVVGUk8wRkJRMUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1QwRkJUenRCUVVOMFFpeHBRa0ZCYVVJc1QwRkJUenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFBRVUZQTzBGQlEzUkNMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEU5QlFVODdRVUZEZUVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1QwRkJUenRCUVVOMFFpeGxRVUZsTEVkQlFVYzdRVUZEYkVJc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVDBGQlR6dEJRVU4wUWl4bFFVRmxMRWRCUVVjN1FVRkRiRUlzWlVGQlpTeFZRVUZWTzBGQlEzcENMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQkxIZENRVUYzUWl4UlFVRlJMRWxCUVVrc1VVRkJVVHRCUVVNMVF6dEJRVU5CTEd0RFFVRnJReXhSUVVGUkxHZENRVUZuUWl4aFFVRmhPMEZCUTNaRk8wRkJRMEU3UVVGRFFUdEJRVU5CTEd0RFFVRnJReXhSUVVGUk8wRkJRekZETzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVDBGQlR6dEJRVU4wUWl4bFFVRmxMRWRCUVVjN1FVRkRiRUlzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVDBGQlR6dEJRVU4wUWl4bFFVRmxMRWRCUVVjN1FVRkRiRUlzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhsUVVGbExFZEJRVWM3UVVGRGJFSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHbENRVUZwUWl4UlFVRlJPMEZCUTNwQ08wRkJRMEU3UVVGRFFUdEJRVU5CTEhkQ1FVRjNRaXhSUVVGUkxFbEJRVWtzVVVGQlVUdEJRVU0xUXp0QlFVTkJMSE5EUVVGelF5eFJRVUZSTEdkQ1FVRm5RaXhoUVVGaE8wRkJRek5GTzBGQlEwRTdRVUZEUVR0QlFVTkJMSE5EUVVGelF5eFJRVUZSTzBGQlF6bERPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhsUVVGbExFZEJRVWM3UVVGRGJFSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEU5QlFVODdRVUZEZEVJc2FVSkJRV2xDTEU5QlFVODdRVUZEZUVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVDBGQlR6dEJRVU4wUWl4bFFVRmxMRlZCUVZVN1FVRkRla0lzYVVKQlFXbENMRTlCUVU4N1FVRkRlRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEU5QlFVODdRVUZEZEVJc2FVSkJRV2xDTEU5QlFVODdRVUZEZUVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hQUVVGUE8wRkJRM1JDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhuUWtGQlowSXNVVUZCVVR0QlFVTjRRaXhwUWtGQmFVSXNUMEZCVHp0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEU5QlFVODdRVUZEZEVJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdkQ1FVRm5RaXhSUVVGUk8wRkJRM2hDTEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFBRVUZQTzBGQlEzUkNMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeHBRa0ZCYVVJc1QwRkJUenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVN4WFFVRlhMRzFEUVVGdFF6dEJRVU01UXl4WFFVRlhMRzlEUVVGdlF6dEJRVU12UXl4WFFVRlhPMEZCUTFnN1FVRkRRVHRCUVVOQkxEWkRRVUUyUXl4dFFrRkJiVUk3UVVGRGFFVTdRVUZEUVR0QlFVTkJPMEZCUTBFc2FVTkJRV2xETEc5RFFVRnZRenRCUVVOeVJUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFBRVUZQTzBGQlEzUkNMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeHBRa0ZCYVVJc1QwRkJUenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVN4WFFVRlhMRzlEUVVGdlF6dEJRVU12UXl4WFFVRlhMRzlEUVVGdlF6dEJRVU12UXl4WFFVRlhPMEZCUTFnN1FVRkRRVHRCUVVOQkxIZERRVUYzUXl4dFFrRkJiVUk3UVVGRE0wUTdRVUZEUVR0QlFVTkJPMEZCUTBFc05FSkJRVFJDTEcxRFFVRnRRenRCUVVNdlJEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFZRVUZWTzBGQlEzcENMR2xDUVVGcFFpeFBRVUZQTzBGQlEzaENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNTMEZCU3pzN1FVRkZURHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFZRVUZWTzBGQlEzcENMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeHBRa0ZCYVVJc1QwRkJUenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3h2UWtGQmIwSXNVVUZCVVN4TlFVRk5MRkZCUVZFc1NVRkJTU3hSUVVGUk8wRkJRM1JFTEdkQ1FVRm5RaXhSUVVGUkxFbEJRVWtzVVVGQlVUdEJRVU53UXp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEV0QlFVczdPMEZCUlV3N1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGVkJRVlU3UVVGRGVrSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHbENRVUZwUWl4UFFVRlBPMEZCUTNoQ08wRkJRMEU3UVVGRFFTeDNRa0ZCZDBJc1owSkJRV2RDTEVsQlFVa3NaMEpCUVdkQ08wRkJRelZFTEhWQ1FVRjFRaXhuUWtGQlowSXNTVUZCU1N4blFrRkJaMEk3UVVGRE0wUTdRVUZEUVR0QlFVTkJMR2RDUVVGblFpeG5Ra0ZCWjBJc1NVRkJTU3huUWtGQlowSXNTVUZCU1N4blFrRkJaMEk3UVVGRGVFVTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxFdEJRVXM3TzBGQlJVdzdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1QwRkJUenRCUVVOMFFpeHBRa0ZCYVVJc1QwRkJUenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRTlCUVU4N1FVRkRkRUlzWlVGQlpTeFZRVUZWTzBGQlEzcENMR2xDUVVGcFFpeFBRVUZQTzBGQlEzaENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEcxQ1FVRnRRaXhSUVVGUkxFbEJRVWtzVVVGQlVTeEpRVUZKTEZGQlFWRTdRVUZEYmtRc1owSkJRV2RDTEZGQlFWRXNTVUZCU1N4UlFVRlJPMEZCUTNCRE8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hQUVVGUE8wRkJRM1JDTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhwUWtGQmFVSXNUMEZCVHp0QlFVTjRRanRCUVVOQk8wRkJRMEVzZDBKQlFYZENMR2RDUVVGblFpeEpRVUZKTEdkQ1FVRm5RaXhKUVVGSkxHZENRVUZuUWp0QlFVTm9SanRCUVVOQk8wRkJRMEVzWjBKQlFXZENMR2RDUVVGblFpeEpRVUZKTEdkQ1FVRm5RanRCUVVOd1JEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVDBGQlR6dEJRVU4wUWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4UFFVRlBPMEZCUTFBN1FVRkRRVHRCUVVOQkxFOUJRVTg3UVVGRFVEczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRTlCUVU4N1FVRkRkRUlzWlVGQlpTeFZRVUZWTzBGQlEzcENPMEZCUTBFc2FVSkJRV2xDTEU5QlFVODdRVUZEZUVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1QwRkJUenRCUVVOUU96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRTlCUVU4N1FVRkRkRUlzWlVGQlpTeE5RVUZOTzBGQlEzSkNMR2xDUVVGcFFpeFBRVUZQTzBGQlEzaENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1MwRkJTenM3UVVGRlREdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhwUWtGQmFVSXNUMEZCVHp0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1MwRkJTenM3UVVGRlREdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeHJRa0ZCYTBJc1VVRkJVU3hOUVVGTkxGRkJRVkVzU1VGQlNTeFJRVUZSTzBGQlEzQkVMR2RDUVVGblFpeFJRVUZSTzBGQlEzaENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNTMEZCU3pzN1FVRkZURHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVlVGQlZUdEJRVU42UWl4bFFVRmxMRlZCUVZVN1FVRkRla0lzYVVKQlFXbENMRTlCUVU4N1FVRkRlRUk3UVVGRFFUdEJRVU5CTEhkQ1FVRjNRaXhuUWtGQlowSXNTVUZCU1N4blFrRkJaMEk3UVVGRE5VUXNkVUpCUVhWQ0xHZENRVUZuUWl4SlFVRkpMR2RDUVVGblFqdEJRVU16UkR0QlFVTkJPMEZCUTBFc1owSkJRV2RDTEdkQ1FVRm5RaXhKUVVGSkxHZENRVUZuUWp0QlFVTndSRHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNTMEZCU3pzN1FVRkZURHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGVkJRVlU3UVVGRGVrSXNhVUpCUVdsQ0xFOUJRVTg3UVVGRGVFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEU5QlFVODdRVUZEZEVJc1pVRkJaU3hQUVVGUE8wRkJRM1JDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVN1FVRkRaanRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNUMEZCVHp0QlFVTjBRaXhsUVVGbExFOUJRVTg3UVVGRGRFSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hQUVVGUExGRkJRVkVzVVVGQlVTeEpRVUZKTEZGQlFWRTdRVUZEYkVRN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWp0QlFVTkJMR2xDUVVGcFFpeFBRVUZQTzBGQlEzaENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVVVGQlVUdEJRVU5TTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTEV0QlFVczdPMEZCUlV3N08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeEhRVUZITzBGQlEyeENMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQkxGZEJRVmNzT0VKQlFUaENPMEZCUTNwRExGZEJRVmNzT0VKQlFUaENPMEZCUTNwRExGZEJRVmM3UVVGRFdEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxGVkJRVlU3UVVGRFZqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJMSEZEUVVGeFF6dEJRVU55UXp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEVkQlFVYzdRVUZEYkVJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhIUVVGSE8wRkJRM0JDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxGTkJRVk03UVVGRFZEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNhVUpCUVdsQ0xFZEJRVWM3UVVGRGNFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFRRVUZUTzBGQlExUTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeHpRa0ZCYzBJN1FVRkRja01zYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTEhOQ1FVRnpRaXhSUVVGUkxFOUJRVThzVlVGQlZUdEJRVU12UXp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNNa05CUVRKRE96dEJRVVV6UXp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4UFFVRlBPMEZCUTFBN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEU5QlFVODdRVUZEVUN4TFFVRkxPenRCUVVWTU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQk8wRkJRMEVzVjBGQlZ5dzJRa0ZCTmtJN1FVRkRlRU1zVjBGQlZ6dEJRVU5ZTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaVHRCUVVObU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaVHRCUVVObU8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hwUWtGQmFVSXNVVUZCVVR0QlFVTjZRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlR0QlFVTm1PMEZCUTBFN1FVRkRRU3hsUVVGbE8wRkJRMlk3UVVGRFFUdEJRVU5CTEdWQlFXVTdRVUZEWmp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVN4bFFVRmxPMEZCUTJZN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hwUWtGQmFVSXNVVUZCVVR0QlFVTjZRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhwUWtGQmFVSXNVVUZCVVR0QlFVTjZRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1ZVRkJWVHRCUVVOV08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4VFFVRlRPMEZCUTFRN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdsQ1FVRnBRaXhIUVVGSE8wRkJRM0JDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExHTkJRV003UVVGRE4wSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHbENRVUZwUWl4UlFVRlJPMEZCUTNwQ08wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVTdRVUZEWmp0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbE8wRkJRMlk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4UlFVRlJPMEZCUTFJN1FVRkRRVHRCUVVOQkxFdEJRVXM3TzBGQlJVdzdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzWTBGQll6dEJRVU0zUWl4bFFVRmxMRlZCUVZVN1FVRkRla0lzWjBKQlFXZENMRkZCUVZFN1FVRkRlRUlzYVVKQlFXbENMRk5CUVZNN1FVRkRNVUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hYUVVGWExEaERRVUU0UXp0QlFVTjZSQ3hYUVVGWE8wRkJRMWc3UVVGRFFUdEJRVU5CTzBGQlEwRXNkMEpCUVhkQ0xHMURRVUZ0UXp0QlFVTXpSRHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEdOQlFXTTdRVUZETjBJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1YwRkJWeXcyUTBGQk5rTTdRVUZEZUVRc1YwRkJWenRCUVVOWU8wRkJRMEU3UVVGRFFTeHhRMEZCY1VNc2JVSkJRVzFDTzBGQlEzaEVPMEZCUTBFN1FVRkRRVHRCUVVOQkxIbENRVUY1UWl3eVFrRkJNa0k3UVVGRGNFUTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMSEZEUVVGeFF5eFhRVUZYTzBGQlEyaEVPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMR05CUVdNN1FVRkROMElzWlVGQlpTeFZRVUZWTzBGQlEzcENMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeHBRa0ZCYVVJc1IwRkJSenRCUVVOd1FqdEJRVU5CTzBGQlEwRTdRVUZEUVN4WFFVRlhMRGhEUVVFNFF6dEJRVU42UkN4WFFVRlhMQ3REUVVFclF6dEJRVU14UkN4WFFVRlhPMEZCUTFnN1FVRkRRVHRCUVVOQkxHMURRVUZ0UXl4dlFrRkJiMEk3UVVGRGRrUTdRVUZEUVR0QlFVTkJPMEZCUTBFc2RVSkJRWFZDTERCQ1FVRXdRanRCUVVOcVJEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMR05CUVdNN1FVRkROMElzWlVGQlpTeFZRVUZWTzBGQlEzcENMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeHBRa0ZCYVVJc1IwRkJSenRCUVVOd1FqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRkZCUVZFN1FVRkRVanRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4alFVRmpPMEZCUXpkQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzWTBGQll6dEJRVU0zUWl4bFFVRmxMRlZCUVZVN1FVRkRla0lzYVVKQlFXbENMRTlCUVU4N1FVRkRlRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMR05CUVdNN1FVRkROMElzWlVGQlpTeFZRVUZWTzBGQlEzcENMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeHBRa0ZCYVVJc1QwRkJUenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4alFVRmpPMEZCUXpkQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzWTBGQll6dEJRVU12UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVVVGQlVUdEJRVU5TTzBGQlEwRTdRVUZEUVN4dFFrRkJiVUlzWjBKQlFXZENPMEZCUTI1RE8wRkJRMEVzVVVGQlVUdEJRVU5TTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEdOQlFXTTdRVUZETjBJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhqUVVGak8wRkJReTlDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hSUVVGUk8wRkJRMUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEdOQlFXTTdRVUZETjBJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVN1FVRkRaanRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTzBGQlEyWTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hSUVVGUk8wRkJRMUk3UVVGRFFUdEJRVU5CTEV0QlFVczdPMEZCUlV3N1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzY1VKQlFYRkNPMEZCUTNCRExHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzWjBKQlFXZENMRkZCUVZFN1FVRkRlRUlzYVVKQlFXbENMRk5CUVZNN1FVRkRNVUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHOUNRVUZ2UWl4blFrRkJaMEk3UVVGRGNFTTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hqUVVGak8wRkJRemRDTEdWQlFXVXNkVUpCUVhWQ08wRkJRM1JETzBGQlEwRXNaVUZCWlN4TlFVRk5PMEZCUTNKQ0xHbENRVUZwUWl4UFFVRlBPMEZCUTNoQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFc1QwRkJUenRCUVVOUU8wRkJRMEVzUzBGQlN6czdRVUZGVER0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1kwRkJZenRCUVVNM1FpeGxRVUZsTEZWQlFWVTdRVUZEZWtJc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQk8wRkJRMEVzVjBGQlZ5d3lRa0ZCTWtJN1FVRkRkRU1zVjBGQlZ6dEJRVU5ZTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1VVRkJVVHRCUVVOU0xHVkJRV1VzVDBGQlR5d3lRa0ZCTWtJc1UwRkJVenRCUVVNeFJEdEJRVU5CTzBGQlEwRXNaVUZCWlN4VlFVRlZMREpDUVVFeVFpeGhRVUZoTzBGQlEycEZPMEZCUTBFN1FVRkRRVHRCUVVOQkxFdEJRVXM3TzBGQlJVdzdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4alFVRmpPMEZCUXpkQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMR2RDUVVGblFqdEJRVU12UWp0QlFVTkJPMEZCUTBFN1FVRkRRU3hYUVVGWExHdENRVUZyUWp0QlFVTTNRaXhYUVVGWE8wRkJRMWc3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMR05CUVdNN1FVRkROMElzWlVGQlpTeHpRMEZCYzBNN1FVRkRja1E3UVVGRFFTeGxRVUZsTEZWQlFWVTdRVUZEZWtJc1owSkJRV2RDTEZGQlFWRTdRVUZEZUVJc2FVSkJRV2xDTEU5QlFVODdRVUZEZUVJN1FVRkRRVHRCUVVOQk8wRkJRMEVzVjBGQlZ5dzJRa0ZCTmtJN1FVRkRlRU1zVjBGQlZ5dzJRa0ZCTmtJN1FVRkRlRU1zVjBGQlZ5dzJRa0ZCTmtJN1FVRkRlRU1zVjBGQlZ6dEJRVU5ZTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hqUVVGak8wRkJRemRDTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhwUWtGQmFVSXNUMEZCVHp0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFTeFhRVUZYTEN0RFFVRXJRenRCUVVNeFJDeFhRVUZYTERoRFFVRTRRenRCUVVONlJDeFhRVUZYTzBGQlExZzdRVUZEUVR0QlFVTkJMSGREUVVGM1F5eHJRa0ZCYTBJN1FVRkRNVVE3UVVGRFFUdEJRVU5CTzBGQlEwRXNORUpCUVRSQ0xESkNRVUV5UWp0QlFVTjJSRHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeExRVUZMTEdWQlFXVXNhMEpCUVd0Q096dEJRVVYwUXp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1kwRkJZenRCUVVNM1FpeGxRVUZsTEZWQlFWVTdRVUZEZWtJc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdsQ1FVRnBRaXhIUVVGSE8wRkJRM0JDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hSUVVGUk8wRkJRMUk3UVVGRFFUdEJRVU5CTEd0Q1FVRnJRaXgzUWtGQmQwSTdRVUZETVVNN1FVRkRRVHRCUVVOQkxGRkJRVkVzU1VGQlNUdEJRVU5hTEdWQlFXVXNPRUpCUVRoQ08wRkJRemRETzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNZMEZCWXp0QlFVTTNRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHbENRVUZwUWl4SFFVRkhPMEZCUTNCQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1VVRkJVVHRCUVVOU08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTEcxRFFVRnRRenRCUVVOdVF6dEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExHTkJRV003UVVGRE4wSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHbENRVUZwUWl4UFFVRlBPMEZCUTNoQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNWMEZCVnl3NFEwRkJPRU03UVVGRGVrUXNWMEZCVnp0QlFVTllPMEZCUTBFN1FVRkRRU3h4UTBGQmNVTXNiVUpCUVcxQ08wRkJRM2hFTzBGQlEwRTdRVUZEUVR0QlFVTkJMSGxDUVVGNVFpd3lRa0ZCTWtJN1FVRkRjRVE3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1kwRkJZenRCUVVNM1FpeHBRa0ZCYVVJc1IwRkJSenRCUVVOd1FqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNZMEZCWXp0QlFVTTNRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNaMEpCUVdkQ0xGRkJRVkU3UVVGRGVFSXNhVUpCUVdsQ0xFOUJRVTg3UVVGRGVFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRkZCUVZFN1FVRkRVanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMR05CUVdNN1FVRkROMElzYVVKQlFXbENMRTlCUVU4N1FVRkRlRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEhGQ1FVRnhRanRCUVVOd1F5eHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1owSkJRV2RDTEdkQ1FVRm5RanRCUVVOb1F6dEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4alFVRmpPMEZCUXpkQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4blFrRkJaMElzVVVGQlVUdEJRVU40UWl4cFFrRkJhVUlzVTBGQlV6dEJRVU14UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEZkQlFWY3NhME5CUVd0RE8wRkJRemRETEZkQlFWYzdRVUZEV0R0QlFVTkJPMEZCUTBFN1FVRkRRU3gxUWtGQmRVSXNiVU5CUVcxRE8wRkJRekZFTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMR05CUVdNN1FVRkROMElzWlVGQlpTd3dRa0ZCTUVJN1FVRkRla003UVVGRFFTeHBRa0ZCYVVJc1QwRkJUenRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVN4WFFVRlhMRFpDUVVFMlFqdEJRVU40UXl4WFFVRlhMRFpDUVVFMlFqdEJRVU40UXl4WFFVRlhMRFpDUVVFMlFqdEJRVU40UXl4WFFVRlhPMEZCUTFnN1FVRkRRVHRCUVVOQkxITkRRVUZ6UXl4blFrRkJaMEk3UVVGRGRFUTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1VVRkJVVHRCUVVOU08wRkJRMEU3UVVGRFFUdEJRVU5CTEV0QlFVczdPMEZCUlV3N08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHbENRVUZwUWl4UlFVRlJPMEZCUTNwQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNVVUZCVVR0QlFVTlNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdPMEZCUlVFN1FVRkRRU3h0UTBGQmJVTTdRVUZEYmtNN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVlVGQlZUdEJRVU16UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFJRVUZSTzBGQlExSTdRVUZEUVR0QlFVTkJMSEZDUVVGeFFpeG5RMEZCWjBNN1FVRkRja1FzVVVGQlVUdEJRVU5TTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGVkJRVlU3UVVGRGVrSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHZENRVUZuUWl4UlFVRlJPMEZCUTNoQ0xHbENRVUZwUWl4VlFVRlZPMEZCUXpOQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNhVUpCUVdsQ0xGVkJRVlU3UVVGRE0wSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRlZCUVZVN1FVRkRla0lzWlVGQlpTeEhRVUZITzBGQlEyeENMR1ZCUVdVc1RVRkJUVHRCUVVOeVFpeHBRa0ZCYVVJc1ZVRkJWVHRCUVVNelFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3h6UWtGQmMwSTdRVUZEZEVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRXRCUVVzN08wRkJSVXc3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVFVGQlRUdEJRVU55UWl4cFFrRkJhVUlzVlVGQlZUdEJRVU16UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzUzBGQlN6czdRVUZGVER0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNaMEpCUVdkQ0xGRkJRVkU3UVVGRGVFSXNhVUpCUVdsQ0xGVkJRVlU3UVVGRE0wSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFZRVUZWTzBGQlEzcENMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeG5Ra0ZCWjBJc1VVRkJVVHRCUVVONFFpeHBRa0ZCYVVJc1ZVRkJWVHRCUVVNelFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZWQlFWVTdRVUZEZWtJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNVVUZCVVN4WFFVRlhPMEZCUTJ4RExHVkJRV1VzVTBGQlV6dEJRVU40UWp0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFqdEJRVU5CTEdWQlFXVXNVMEZCVXp0QlFVTjRRanRCUVVOQkxHbENRVUZwUWl4VlFVRlZPMEZCUXpOQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxGRkJRVkU3UVVGRFVqdEJRVU5CTzBGQlEwRXNiVVJCUVcxRUxHbENRVUZwUWp0QlFVTndSVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZWQlFWVTdRVUZEZWtJc1pVRkJaU3hOUVVGTk8wRkJRM0pDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1VVRkJVVHRCUVVOU08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNTMEZCU3pzN1FVRkZURHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExFMUJRVTA3UVVGRGNrSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hSUVVGUk8wRkJRMUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4TFFVRkxPenRCUVVWTU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhWUVVGVk8wRkJRek5DTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1VVRkJVVHRCUVVOU08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGVkJRVlU3UVVGRGVrSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHbENRVUZwUWl4VlFVRlZPMEZCUXpOQ08wRkJRMEU3UVVGRFFTeHpRa0ZCYzBJN1FVRkRkRUlzY1VKQlFYRkNPMEZCUTNKQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFZRVUZWTzBGQlEzcENMR2xDUVVGcFFpeFZRVUZWTzBGQlF6TkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRlZCUVZVN1FVRkRla0lzYVVKQlFXbENMRlZCUVZVN1FVRkRNMEk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZWQlFWVTdRVUZEZWtJc1pVRkJaU3d3UWtGQk1FSTdRVUZEZWtNN1FVRkRRU3hwUWtGQmFVSXNWVUZCVlR0QlFVTXpRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFJRVUZSTzBGQlExSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxFOUJRVTg3UVVGRFVDeExRVUZMT3p0QlFVVk1PMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhsUVVGbExFMUJRVTA3UVVGRGNrSXNhVUpCUVdsQ0xGVkJRVlU3UVVGRE0wSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNTMEZCU3pzN1FVRkZURHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHVkJRV1VzVFVGQlRUdEJRVU55UWl4cFFrRkJhVUlzVlVGQlZUdEJRVU16UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4TFFVRkxPenRCUVVWTU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFZRVUZWTzBGQlEzcENMR1ZCUVdVc2MwSkJRWE5DTzBGQlEzSkRMR2xDUVVGcFFpeFZRVUZWTzBGQlF6TkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVVVGQlVUdEJRVU5TTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxFdEJRVXM3TzBGQlJVdzdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNWVUZCVlR0QlFVTXpRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNVVUZCVVR0QlFVTlNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWl4cFFrRkJhVUlzVlVGQlZUdEJRVU16UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxGRkJRVkU3UVVGRFVqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNVVUZCVVR0QlFVTlNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNUMEZCVHp0QlFVTlFPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hSUVVGUkxGZEJRVmM3UVVGRGJFTXNaVUZCWlN4VFFVRlRPMEZCUTNoQ08wRkJRMEVzWlVGQlpTeFRRVUZUTzBGQlEzaENPMEZCUTBFc2FVSkJRV2xDTEZWQlFWVTdRVUZETTBJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNkMFJCUVhkRUxHMUNRVUZ0UWp0QlFVTXpSVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFBRVUZQTzBGQlExQTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeHBRa0ZCYVVJc1ZVRkJWVHRCUVVNelFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVlVGQlZUdEJRVU16UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxGRkJRVkU3UVVGRFVqdEJRVU5CTzBGQlEwRXNjVU5CUVhGRE8wRkJRM0pETzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeEhRVUZITzBGQlEyeENMR2xDUVVGcFFpeFBRVUZQTzBGQlEzaENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeHhRa0ZCY1VJc1VVRkJVVHRCUVVNM1FpeG5Ra0ZCWjBJc1VVRkJVVHRCUVVONFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdsQ1FVRnBRaXhIUVVGSE8wRkJRM0JDTzBGQlEwRTdRVUZEUVR0QlFVTkJMSGRDUVVGM1FpeFJRVUZSTEVsQlFVa3NVVUZCVVR0QlFVTTFRenRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNOa0pCUVRaQ08wRkJRemRDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFZEJRVWM3UVVGRGJFSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHbENRVUZwUWl4SFFVRkhPMEZCUTNCQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHbENRVUZwUWl4SFFVRkhPMEZCUTNCQ08wRkJRMEU3UVVGRFFUdEJRVU5CTEhkQ1FVRjNRaXhSUVVGUkxFbEJRVWtzVVVGQlVUdEJRVU0xUXp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzUjBGQlJ6dEJRVU53UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWl4cFFrRkJhVUlzVTBGQlV6dEJRVU14UWp0QlFVTkJPMEZCUTBFc2MwSkJRWE5DTzBGQlEzUkNPMEZCUTBFc09FSkJRVGhDTEcxQ1FVRnRRaXhwUWtGQmFVSTdRVUZEYkVVN1FVRkRRVHRCUVVOQkxEaENRVUU0UWl4dFFrRkJiVUlzYVVKQlFXbENPMEZCUTJ4Rk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhwUWtGQmFVSXNVMEZCVXp0QlFVTXhRanRCUVVOQk8wRkJRMEVzYzBKQlFYTkNPMEZCUTNSQ0xIRkNRVUZ4UWp0QlFVTnlRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4bFFVRmxMRWRCUVVjN1FVRkRiRUlzYVVKQlFXbENMRk5CUVZNN1FVRkRNVUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeGxRVUZsTEVkQlFVYzdRVUZEYkVJc2FVSkJRV2xDTEZOQlFWTTdRVUZETVVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNTMEZCU3pzN1FVRkZURHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeHBRa0ZCYVVJc1UwRkJVenRCUVVNeFFqdEJRVU5CTzBGQlEwRTdRVUZEUVN4clEwRkJhME1zYlVKQlFXMUNPMEZCUTNKRU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4dFJFRkJiVVFzYlVKQlFXMUNPMEZCUTNSRk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhwUWtGQmFVSXNVMEZCVXp0QlFVTXhRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRWRCUVVjN1FVRkRiRUlzYVVKQlFXbENMRk5CUVZNN1FVRkRNVUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhwUWtGQmFVSXNVMEZCVXp0QlFVTXhRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFZEJRVWM3UVVGRGJFSXNhVUpCUVdsQ0xGTkJRVk03UVVGRE1VSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHbENRVUZwUWl4VFFVRlRPMEZCUXpGQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhwUWtGQmFVSXNVMEZCVXp0QlFVTXhRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFZEJRVWM3UVVGRGJFSXNhVUpCUVdsQ0xGTkJRVk03UVVGRE1VSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHbENRVUZwUWl4VFFVRlRPMEZCUXpGQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4cFFrRkJhVUlzVTBGQlV6dEJRVU14UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzYlVKQlFXMUNMRkZCUVZFN1FVRkRNMEk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeGxRVUZsTEVkQlFVYzdRVUZEYkVJc2FVSkJRV2xDTEZOQlFWTTdRVUZETVVJN1FVRkRRVHRCUVVOQkxITkNRVUZ6UWp0QlFVTjBRaXh4UWtGQmNVSTdRVUZEY2tJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEVkQlFVYzdRVUZEYkVJc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhwUWtGQmFVSXNVMEZCVXp0QlFVTXhRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRWRCUVVjN1FVRkRiRUlzYVVKQlFXbENMRk5CUVZNN1FVRkRNVUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEVkQlFVYzdRVUZEYkVJc2FVSkJRV2xDTEZOQlFWTTdRVUZETVVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeHBRa0ZCYVVJc1UwRkJVenRCUVVNeFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHbENRVUZwUWl4VFFVRlRPMEZCUXpGQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEVkQlFVYzdRVUZEYkVJc2FVSkJRV2xDTEZOQlFWTTdRVUZETVVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4cFFrRkJhVUlzVTBGQlV6dEJRVU14UWp0QlFVTkJPMEZCUTBFc2IwSkJRVzlDTzBGQlEzQkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHbENRVUZwUWl4VFFVRlRPMEZCUXpGQ08wRkJRMEU3UVVGRFFTeDNRa0ZCZDBJN1FVRkRlRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeHBRa0ZCYVVJc1UwRkJVenRCUVVNeFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeHBRa0ZCYVVJc1UwRkJVenRCUVVNeFFqdEJRVU5CTzBGQlEwRXNjMEpCUVhOQ08wRkJRM1JDTzBGQlEwRXNNa0pCUVRKQ0xGRkJRVkU3UVVGRGJrTTdRVUZEUVR0QlFVTkJMREpDUVVFeVFpeFJRVUZSTzBGQlEyNURPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeHBRa0ZCYVVJc1UwRkJVenRCUVVNeFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4elFrRkJjMEk3UVVGRGRFSXNjMEpCUVhOQ08wRkJRM1JDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdsQ1FVRnBRaXhUUVVGVE8wRkJRekZDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHbENRVUZwUWl4VFFVRlRPMEZCUXpGQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeHBRa0ZCYVVJc1UwRkJVenRCUVVNeFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHbENRVUZwUWl4VFFVRlRPMEZCUXpGQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFZEJRVWM3UVVGRGJFSXNhVUpCUVdsQ0xGTkJRVk03UVVGRE1VSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRWRCUVVjN1FVRkRiRUlzYVVKQlFXbENMRk5CUVZNN1FVRkRNVUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNlVUpCUVhsQ0xHZENRVUZuUWp0QlFVTjZRenRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdsQ1FVRnBRaXhUUVVGVE8wRkJRekZDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdsQ1FVRnBRaXhUUVVGVE8wRkJRekZDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEVkQlFVYzdRVUZEYkVJc2FVSkJRV2xDTEZOQlFWTTdRVUZETVVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdsQ1FVRnBRaXhUUVVGVE8wRkJRekZDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeHBRa0ZCYVVJc1UwRkJVenRCUVVNeFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRWRCUVVjN1FVRkRiRUlzYVVKQlFXbENMRk5CUVZNN1FVRkRNVUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeEhRVUZITzBGQlEyeENMR2xDUVVGcFFpeFRRVUZUTzBGQlF6RkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFZEJRVWM3UVVGRGJFSXNhVUpCUVdsQ0xGTkJRVk03UVVGRE1VSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeHBRa0ZCYVVJc1UwRkJVenRCUVVNeFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4cFFrRkJhVUlzVTBGQlV6dEJRVU14UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeEhRVUZITzBGQlEyeENMR1ZCUVdVc1IwRkJSenRCUVVOc1FpeHBRa0ZCYVVJc1UwRkJVenRCUVVNeFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hMUVVGTE96dEJRVVZNTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeEhRVUZITzBGQlEyeENMR2xDUVVGcFFpeFBRVUZQTzBGQlEzaENPMEZCUTBFN1FVRkRRU3h0UWtGQmJVSXNaMEpCUVdkQ08wRkJRMjVETzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhwUWtGQmFVSXNVVUZCVVR0QlFVTjZRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzUjBGQlJ6dEJRVU5zUWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhwUWtGQmFVSXNVVUZCVVR0QlFVTjZRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEVkQlFVYzdRVUZEYkVJc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR3RDUVVGclFpeFJRVUZSTzBGQlF6RkNMR1ZCUVdVN1FVRkRaanRCUVVOQkxHdENRVUZyUWl4UlFVRlJPMEZCUXpGQ0xHVkJRV1U3UVVGRFpqdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRWRCUVVjN1FVRkRiRUlzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFhRVUZYTzBGQlF6RkNMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeHJRa0ZCYTBJc1VVRkJVVHRCUVVNeFFpeGxRVUZsTzBGQlEyWTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRXRCUVVzN08wRkJSVXc3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGZEJRVmM3UVVGRE1VSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHOUNRVUZ2UWl4UlFVRlJPMEZCUXpWQ0xHVkJRV1U3UVVGRFpqdEJRVU5CTzBGQlEwRTdRVUZEUVN4TFFVRkxPenRCUVVWTU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVjBGQlZ6dEJRVU14UWl4bFFVRmxMRlZCUVZVN1FVRkRla0lzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzYTBKQlFXdENMRkZCUVZFc1NVRkJTU3hSUVVGUkxFbEJRVWtzVVVGQlVUdEJRVU5zUkN4bFFVRmxPMEZCUTJZN1FVRkRRVHRCUVVOQk8wRkJRMEVzUzBGQlN6czdRVUZGVER0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4WFFVRlhPMEZCUXpGQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4clFrRkJhMElzVVVGQlVTeEpRVUZKTEZGQlFWRXNTVUZCU1N4UlFVRlJPMEZCUTJ4RUxHVkJRV1U3UVVGRFpqdEJRVU5CTzBGQlEwRTdRVUZEUVN4TFFVRkxPenRCUVVWTU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNjMEpCUVhOQ08wRkJRM0pETEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTzBGQlEwRTdRVUZEUVN4elFrRkJjMElzVVVGQlVTeFBRVUZQTEZWQlFWVTdRVUZETDBNN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVVVGQlVUdEJRVU5TTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hYUVVGWE8wRkJRekZDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJMRzlDUVVGdlFpeFJRVUZSTEVsQlFVa3NVVUZCVVN4SlFVRkpMRkZCUVZFN1FVRkRjRVFzWlVGQlpUdEJRVU5tTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTEV0QlFVczdPMEZCUlV3N1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4WFFVRlhPMEZCUXpGQ0xHbENRVUZwUWl4UlFVRlJPMEZCUTNwQ08wRkJRMEU3UVVGRFFUdEJRVU5CTEhkQ1FVRjNRaXhQUVVGUExGVkJRVlVzU1VGQlNTeFBRVUZQTEd0Q1FVRnJRanRCUVVOMFJTeGxRVUZsTEU5QlFVODdRVUZEZEVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeExRVUZMT3p0QlFVVk1PMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFZRVUZWTzBGQlEzcENMR2xDUVVGcFFpeHJRa0ZCYTBJN1FVRkRia003UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4elFrRkJjMElzTWtKQlFUSkNPMEZCUTJwRUxITkNRVUZ6UWl3MFFrRkJORUk3UVVGRGJFUXNjMEpCUVhOQ08wRkJRM1JDTzBGQlEwRTdRVUZEUVN4elEwRkJjME1zYjBKQlFXOUNPMEZCUXpGRU8wRkJRMEU3UVVGRFFUdEJRVU5CTERCQ1FVRXdRaXd3UWtGQk1FSTdRVUZEY0VRN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNhVUpCUVdsQ0xHdENRVUZyUWp0QlFVTnVRenRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEhOQ1FVRnpRaXd5UWtGQk1rSTdRVUZEYWtRc2MwSkJRWE5DTERSQ1FVRTBRanRCUVVOc1JDeHpRa0ZCYzBJN1FVRkRkRUk3UVVGRFFUdEJRVU5CTERCRFFVRXdReXh2UWtGQmIwSTdRVUZET1VRN1FVRkRRVHRCUVVOQk8wRkJRMEVzT0VKQlFUaENMREpDUVVFeVFqdEJRVU42UkR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1VVRkJVVHRCUVVOU08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHbENRVUZwUWl4UlFVRlJPMEZCUTNwQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEZGQlFWRTdRVUZEVWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZWQlFWVTdRVUZEZWtJc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVVVGQlVUdEJRVU5TTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRlZCUVZVN1FVRkRla0lzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNVVUZCVVR0QlFVTlNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNUMEZCVHp0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hqUVVGak8wRkJRemRDTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhwUWtGQmFVSXNSMEZCUnp0QlFVTndRanRCUVVOQk8wRkJRMEVzYzBKQlFYTkNMRkZCUVZFc1QwRkJUeXhWUVVGVk8wRkJReTlETzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4alFVRmpPMEZCUXpkQ0xHbENRVUZwUWl4VFFVRlRPMEZCUXpGQ08wRkJRMEU3UVVGRFFTeHpRa0ZCYzBJc1QwRkJUenRCUVVNM1FpdzRRa0ZCT0VJc1owSkJRV2RDTEZGQlFWRXNSMEZCUnp0QlFVTjZSRHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEdOQlFXTTdRVUZETjBJc2FVSkJRV2xDTEZOQlFWTTdRVUZETVVJN1FVRkRRVHRCUVVOQkxDdENRVUVyUWl4blFrRkJaMElzVVVGQlVTeEhRVUZITzBGQlF6RkVPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CTzBGQlEwRXNjMEpCUVhOQ08wRkJRM1JDTzBGQlEwRTdRVUZEUVN4bFFVRmxPMEZCUTJZN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFc1MwRkJTenM3UVVGRlREdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPMEZCUTBFc2MwSkJRWE5DTzBGQlEzUkNPMEZCUTBFN1FVRkRRU3hsUVVGbE8wRkJRMlk3UVVGRFFUdEJRVU5CTzBGQlEwRXNVVUZCVVR0QlFVTlNMR1ZCUVdVN1FVRkRaanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQkxGRkJRVkU3UVVGRFVqdEJRVU5CTzBGQlEwRXNTMEZCU3pzN1FVRkZURHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEdOQlFXTTdRVUZETjBJc1pVRkJaU3hOUVVGTk8wRkJRM0pDTEdsQ1FVRnBRaXhIUVVGSE8wRkJRM0JDTzBGQlEwRTdRVUZEUVN4elFrRkJjMElzVVVGQlVTeFBRVUZQTEhGQ1FVRnhRanRCUVVNeFJEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEU5QlFVODdRVUZEZUVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4cFFrRkJhVUlzVDBGQlR6dEJRVU40UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVN4elEwRkJjME03UVVGRGRFTTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFc2JVSkJRVzFDTEdkQ1FVRm5RanRCUVVOdVF6dEJRVU5CTEZGQlFWRTdRVUZEVWl4bFFVRmxPMEZCUTJZN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJMRTlCUVU4N1FVRkRVRHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxITkNRVUZ6UWl3NFFrRkJPRUk3UVVGRGNFUXNjMEpCUVhOQ08wRkJRM1JDTzBGQlEwRTdRVUZEUVN4M1EwRkJkME1zWlVGQlpUdEJRVU4yUkN4bFFVRmxMREpDUVVFeVFqdEJRVU14UXp0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExESkNRVUV5UWp0QlFVTXhRenRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFc1QwRkJUenRCUVVOUU8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1YwRkJWenRCUVVNeFFpeHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CTzBGQlEwRTdRVUZEUVN4cFFrRkJhVUlzVVVGQlVTeEpRVUZKTEZGQlFWRTdRVUZEY2tNN1FVRkRRVHRCUVVOQk8wRkJRMEVzYVVKQlFXbENMRkZCUVZFc1NVRkJTU3hSUVVGUk8wRkJRM0pETzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVU3huUWtGQlowSXNTVUZCU1N4blFrRkJaMEk3UVVGRE0wUTdRVUZEUVR0QlFVTkJPMEZCUTBFc1MwRkJTenM3UVVGRlREdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZkQlFWYzdRVUZETVVJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeHpRa0ZCYzBJN1FVRkRkRUlzY1VKQlFYRkNPMEZCUTNKQ08wRkJRMEU3UVVGRFFTeGxRVUZsTzBGQlEyWTdRVUZEUVR0QlFVTkJPMEZCUTBFc1MwRkJTenM3UVVGRlREdEJRVU5CTEdsRFFVRnBRenRCUVVOcVF6dEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc2MwSkJRWE5DTzBGQlEzSkRMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRU3h6UWtGQmMwSTdRVUZEZEVJN1FVRkRRVHRCUVVOQkxHVkJRV1U3UVVGRFpqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNUMEZCVHp0QlFVTlFPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRXRCUVVzN08wRkJSVXc3UVVGRFFTeHRRMEZCYlVNN1FVRkRia003UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRlZCUVZVN1FVRkRla0lzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTEhOQ1FVRnpRanRCUVVOMFFqdEJRVU5CTzBGQlEwRXNaVUZCWlR0QlFVTm1PMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc2MwSkJRWE5DTzBGQlEzSkRMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRU3h6UWtGQmMwSTdRVUZEZEVJN1FVRkRRVHRCUVVOQkxHVkJRV1U3UVVGRFpqdEJRVU5CTzBGQlEwRXNhVU5CUVdsRE8wRkJRMnBETEV0QlFVczdPMEZCUlV3N1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZWQlFWVTdRVUZEZWtJc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQkxITkNRVUZ6UWp0QlFVTjBRanRCUVVOQk8wRkJRMEVzWlVGQlpUdEJRVU5tTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVDBGQlR6dEJRVU5RTzBGQlEwRTdRVUZEUVR0QlFVTkJMRTlCUVU4N1FVRkRVRHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hqUVVGak8wRkJRemRDTEdWQlFXVXNSMEZCUnp0QlFVTnNRaXhwUWtGQmFVSXNSMEZCUnp0QlFVTndRanRCUVVOQk8wRkJRMEVzYzBKQlFYTkNMRkZCUVZFc1QwRkJUeXhuUTBGQlowTTdRVUZEY2tVN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExHTkJRV003UVVGRE4wSXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHbENRVUZwUWl4UlFVRlJPMEZCUTNwQ08wRkJRMEU3UVVGRFFTeHpRa0ZCYzBJc1VVRkJVU3hQUVVGUExGVkJRVlU3UVVGREwwTTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExHTkJRV003UVVGRE4wSXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFBRVUZQTzBGQlEzUkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzYVVKQlFXbENMRTlCUVU4N1FVRkRlRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xFOUJRVTg3UVVGRGVFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFTeHhRMEZCY1VNN1FVRkRja003UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGVkJRVlU3UVVGRGVrSXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHbENRVUZwUWl4SFFVRkhPMEZCUTNCQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4UlFVRlJPMEZCUTFJN1FVRkRRVHRCUVVOQkxIRkNRVUZ4UWl4M1FrRkJkMEk3UVVGRE4wTTdRVUZEUVN4UlFVRlJMRWxCUVVrN1FVRkRXaXhsUVVGbE8wRkJRMlk3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNUMEZCVHp0QlFVTlFPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1kwRkJZenRCUVVNM1FpeHBRa0ZCYVVJc1UwRkJVenRCUVVNeFFqdEJRVU5CTzBGQlEwRXNjMEpCUVhOQ0xGRkJRVkVzVDBGQlR5eFZRVUZWTzBGQlF5OURPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTEZOQlFWTTdRVUZEYUVNN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVN4VFFVRlRPMEZCUTJoRE8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4alFVRmpPMEZCUXpkQ0xHVkJRV1VzVlVGQlZUdEJRVU42UWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPMEZCUTBFc2MwSkJRWE5DTEZGQlFWRXNUMEZCVHl4VlFVRlZPMEZCUXk5RE8wRkJRMEVzYTBSQlFXdEVMR1ZCUVdVN1FVRkRha1U3UVVGRFFUdEJRVU5CTzBGQlEwRXNhMFJCUVd0RUxIVkNRVUYxUWp0QlFVTjZSVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1kwRkJZenRCUVVNM1FpeGxRVUZsTEZWQlFWVTdRVUZEZWtJc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFOUJRVTg3UVVGRGRFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEU5QlFVODdRVUZEZUVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeFBRVUZQTzBGQlEzaENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNVMEZCVXp0QlFVTXhRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVVVGQlVUdEJRVU5TTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1UwRkJVenRCUVVONFFpeHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEZWQlFWVTdRVUZEVmp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHbENRVUZwUWl4UlFVRlJPMEZCUTNwQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4TFFVRkxPenRCUVVWTU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHbENRVUZwUWl4VFFVRlRPMEZCUXpGQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRXNhME5CUVd0RE8wRkJRMnhETzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVN4clEwRkJhME1zUzBGQlN6dEJRVU4yUXp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxFdEJRVXM3TzBGQlJVdzdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeExRVUZMT3p0QlFVVk1PMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHbENRVUZwUWl4UlFVRlJPMEZCUTNwQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2RDUVVGblFpeFJRVUZSTzBGQlEzaENMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hSUVVGUk8wRkJRMUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2RDUVVGblFpeFJRVUZSTzBGQlEzaENMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFJRVUZSTzBGQlExSTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hsUVVGbE8wRkJRemxDTEdWQlFXVXNhVUpCUVdsQ08wRkJRMmhETEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1MwRkJTenM3UVVGRlREdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExHVkJRV1U3UVVGRE9VSXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHbENRVUZwUWl4UFFVRlBPMEZCUTNoQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hMUVVGTE96dEJRVVZNTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEZOQlFWTTdRVUZETVVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNVVUZCVVN4WFFVRlhPMEZCUTJ4RExHVkJRV1VzVVVGQlVUdEJRVU4yUWp0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFqdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRanRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWp0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFqdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRanRCUVVOQkxHZENRVUZuUWl4UlFVRlJPMEZCUTNoQ0xHbENRVUZwUWl4VlFVRlZPMEZCUXpOQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNhMEpCUVd0Q0xHZENRVUZuUWp0QlFVTnNRenRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEd0Q1FVRnJRaXh4UWtGQmNVSTdRVUZEZGtNc2NVSkJRWEZDTEZWQlFWVTdRVUZETDBJN1FVRkRRVHRCUVVOQkxIVkZRVUYxUlN3d1FrRkJNRUlzUjBGQlJ6dEJRVU53Unl4clFrRkJhMElzTmtKQlFUWkNPMEZCUXk5RE8wRkJRMEU3UVVGRFFUdEJRVU5CTERaRVFVRTJSRHRCUVVNM1JDeHJRa0ZCYTBJc2EwSkJRV3RDTzBGQlEzQkRPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzTWtOQlFUSkRMRTFCUVUwN1FVRkRha1FzYTBKQlFXdENMRzFDUVVGdFFqdEJRVU55UXp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHdENRVUZyUWl4dlFrRkJiMEk3UVVGRGRFTTdRVUZEUVR0QlFVTkJPMEZCUTBFc2MwUkJRWE5FTERCQ1FVRXdRaXhIUVVGSE8wRkJRMjVHTEhsRFFVRjVReXhoUVVGaExHZENRVUZuUWp0QlFVTjBSU3hyUWtGQmEwSXNOa0pCUVRaQ08wRkJReTlETzBGQlEwRTdRVUZEUVR0QlFVTkJMSGxFUVVGNVJDeHZRMEZCYjBNN1FVRkROMFk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN3eVJFRkJNa1FzYjBKQlFXOUNPMEZCUXk5Rk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3d5UTBGQk1rTXNXVUZCV1R0QlFVTjJSQ3d5UTBGQk1rTXNUMEZCVHp0QlFVTnNSQ3hyUWtGQmEwSXNiMEpCUVc5Q08wRkJRM1JETzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3h2UWtGQmIwSTdRVUZEY0VJN1FVRkRRU3hYUVVGWE8wRkJRMWc3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN3clFrRkJLMEk3TzBGQlJTOUNMRzFEUVVGdFF6dEJRVU51UXp0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMSFZDUVVGMVFpeDNRa0ZCZDBJN1FVRkRMME03UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFBRVUZQT3p0QlFVVlFMRzFDUVVGdFFqczdRVUZGYmtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTdzRRa0ZCT0VJc2JVSkJRVzFDTzBGQlEycEVPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3cwUTBGQk5FTTdPMEZCUlRWRE8wRkJRMEVzZFVSQlFYVkVPMEZCUTNaRU8wRkJRMEU3UVVGRFFTdzJRa0ZCTmtJc1JVRkJSVHRCUVVNdlFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxEQkRRVUV3UXp0QlFVTXhReXhuUTBGQlowTXNaME5CUVdkRE8wRkJRMmhGTEdOQlFXTTdRVUZEWkR0QlFVTkJPMEZCUTBFc2MwSkJRWE5DT3p0QlFVVjBRanRCUVVOQk8wRkJRMEU3UVVGRFFTeFBRVUZQT3p0QlFVVlFPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzWjBKQlFXZENMRkZCUVZFN1FVRkRlRUlzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeG5Ra0ZCWjBJc1VVRkJVVHRCUVVONFFpeHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1owSkJRV2RDTEZGQlFWRTdRVUZEZUVJc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVVVGQlVTeFhRVUZYTzBGQlEyeERMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hsUVVGbE8wRkJRemxDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFJRVUZSTzBGQlExSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxGRkJRVkU3UVVGRFVqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRkZCUVZFN1FVRkRVanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1VVRkJVVHRCUVVOU08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEVzYTBOQlFXdERPMEZCUTJ4RExHRkJRV0VzVVVGQlVTeFJRVUZSTEZWQlFWVXNZVUZCWVR0QlFVTndSRHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJMSFZEUVVGMVF6dEJRVU4yUXp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHbENRVUZwUWl4UlFVRlJPMEZCUTNwQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNTMEZCU3pzN1FVRkZURHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hsUVVGbE8wRkJRemxDTEdkQ1FVRm5RaXhSUVVGUk8wRkJRM2hDTEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hWUVVGVk8wRkJRM3BDTEdWQlFXVXNUVUZCVFR0QlFVTnlRaXhwUWtGQmFVSXNSMEZCUnp0QlFVTndRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNVVUZCVVR0QlFVTlNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4UlFVRlJPMEZCUTFJN1FVRkRRVHRCUVVOQkxFdEJRVXM3TzBGQlJVdzdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeHpRa0ZCYzBJN1FVRkRja01zYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxFOUJRVTg3UVVGRFVEdEJRVU5CTEV0QlFVczdPMEZCUlV3N1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFOUJRVTg3UVVGRGRFSXNhVUpCUVdsQ0xGVkJRVlU3UVVGRE0wSTdRVUZEUVR0QlFVTkJPMEZCUTBFc2MwSkJRWE5DTEZGQlFWRTdRVUZET1VJc2RVSkJRWFZDTEdsQ1FVRnBRanRCUVVONFF6dEJRVU5CTzBGQlEwRTdRVUZEUVN4alFVRmpMR2RDUVVGblFqdEJRVU01UWp0QlFVTkJPMEZCUTBFc1kwRkJZeXhuUWtGQlowSTdRVUZET1VJN1FVRkRRVHRCUVVOQkxHTkJRV01zYjBKQlFXOUNPMEZCUTJ4RE8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEU5QlFVODdPMEZCUlZBN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRTlCUVU4N1FVRkRVRHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzYVVKQlFXbENMRlZCUVZVN1FVRkRNMEk3UVVGRFFUdEJRVU5CTzBGQlEwRXNWMEZCVnl4blFrRkJaMEk3UVVGRE0wSXNWMEZCVnp0QlFVTllPMEZCUTBFN1FVRkRRU3h6UTBGQmMwTXNiVUpCUVcxQ0xHbENRVUZwUWp0QlFVTXhSU3huUWtGQlowSXNaMEpCUVdkQ08wRkJRMmhETzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdsQ1FVRnBRaXhWUVVGVk8wRkJRek5DTzBGQlEwRTdRVUZEUVN3MlEwRkJOa01zVVVGQlVUdEJRVU55UkR0QlFVTkJPMEZCUTBFc1owSkJRV2RDTEZGQlFWRXNTVUZCU1N4UlFVRlJPMEZCUTNCRE8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEVkQlFVYzdRVUZEYkVJc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdsQ1FVRnBRaXhIUVVGSE8wRkJRM0JDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3d3UWtGQk1FSTdRVUZEZWtNc2FVSkJRV2xDTEZWQlFWVTdRVUZETTBJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTERCQ1FVRXdRanRCUVVONlF5eHBRa0ZCYVVJc1ZVRkJWVHRCUVVNelFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRWRCUVVjN1FVRkRiRUlzYVVKQlFXbENMRWRCUVVjN1FVRkRjRUk3UVVGRFFUdEJRVU5CTEhOQ1FVRnpRanRCUVVOMFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4SFFVRkhPMEZCUTJ4Q0xHbENRVUZwUWl4VlFVRlZPMEZCUXpOQ08wRkJRMEU3UVVGRFFUdEJRVU5CTEZkQlFWY3NOa05CUVRaRE8wRkJRM2hFTEZkQlFWYzdRVUZEV0R0QlFVTkJPMEZCUTBFN1FVRkRRU3h2UTBGQmIwTXNhME5CUVd0RE8wRkJRM1JGTEdkQ1FVRm5RaXcyUTBGQk5rTTdRVUZETjBRN1FVRkRRVHRCUVVOQk8wRkJRMEVzWjBKQlFXZENMREpDUVVFeVFqdEJRVU16UXp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRkZCUVZFN1FVRkRVanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4cFFrRkJhVUlzVlVGQlZUdEJRVU16UWp0QlFVTkJPMEZCUTBFN1FVRkRRU3hYUVVGWExIZENRVUYzUWp0QlFVTnVReXhYUVVGWE8wRkJRMWc3UVVGRFFUdEJRVU5CTEhGRFFVRnhReXhuUWtGQlowSTdRVUZEY2tRc1owSkJRV2RDTEhkQ1FVRjNRanRCUVVONFF6dEJRVU5CTzBGQlEwRXNhVVJCUVdsRUxGRkJRVkVzWlVGQlpTeFJRVUZSTzBGQlEyaEdMR2RDUVVGblFpeDNRa0ZCZDBJc1NVRkJTU3gzUWtGQmQwSTdRVUZEY0VVN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEdOQlFXTTdRVUZETjBJc1pVRkJaU3hIUVVGSE8wRkJRMnhDTEdsQ1FVRnBRaXhWUVVGVk8wRkJRek5DTzBGQlEwRTdRVUZEUVR0QlFVTkJMRmRCUVZjc2QwSkJRWGRDTzBGQlEyNURMRmRCUVZjN1FVRkRXRHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTzBGQlEyWTdRVUZEUVR0QlFVTkJPMEZCUTBFc1owSkJRV2RDTEhkQ1FVRjNRaXhKUVVGSkxIZENRVUYzUWp0QlFVTndSVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4alFVRmpPMEZCUXpkQ0xHVkJRV1VzVFVGQlRUdEJRVU55UWl4cFFrRkJhVUlzVlVGQlZUdEJRVU16UWp0QlFVTkJPMEZCUTBFN1FVRkRRU3hYUVVGWExFOUJRVThzYzBKQlFYTkNPMEZCUTNoRExGZEJRVmNzVDBGQlR6dEJRVU5zUWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hMUVVGTE96dEJRVVZNTzBGQlEwRXNiVU5CUVcxRE8wRkJRMjVETzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1RVRkJUVHRCUVVOeVFpeHBRa0ZCYVVJc1ZVRkJWVHRCUVVNelFqdEJRVU5CTzBGQlEwRTdRVUZEUVN4elFrRkJjMEk3UVVGRGRFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRXRCUVVzN08wRkJSVXc3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4cFFrRkJhVUk3UVVGRGFFTXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVVVGQlVTeFhRVUZYTzBGQlEyeERMR1ZCUVdVc1UwRkJVenRCUVVONFFpeHBRa0ZCYVVJc2FVSkJRV2xDTzBGQlEyeERPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFZRVUZWTzBGQlExWTdRVUZEUVR0QlFVTkJMR2xDUVVGcFFpeHJRa0ZCYTBJN1FVRkRia003UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc2FVSkJRV2xDTEd0Q1FVRnJRaXhKUVVGSkxHZENRVUZuUWp0QlFVTjJSRHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFTdzJRa0ZCTmtJc2IwUkJRVzlFTzBGQlEycEdPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEU5QlFVODdPMEZCUlZBN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzYVVKQlFXbENMRlZCUVZVN1FVRkRNMEk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEZWQlFWVTdRVUZETTBJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEU5QlFVODdRVUZEVURzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3d3UWtGQk1FSTdRVUZEZWtNN1FVRkRRU3hwUWtGQmFVSXNWVUZCVlR0QlFVTXpRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNNRUpCUVRCQ08wRkJRM3BETzBGQlEwRXNhVUpCUVdsQ0xGVkJRVlU3UVVGRE0wSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMREJDUVVFd1FqdEJRVU42UXp0QlFVTkJMR2xDUVVGcFFpeFZRVUZWTzBGQlF6TkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzZFVOQlFYVkRMRkZCUVZFc1NVRkJTU3hSUVVGUk8wRkJRek5FTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1kwRkJZenRCUVVNM1FpeHBRa0ZCYVVJc1ZVRkJWVHRCUVVNelFqdEJRVU5CTzBGQlEwRTdRVUZEUVN4WFFVRlhMRTlCUVU4c1ZVRkJWVHRCUVVNMVFpeFhRVUZYTEU5QlFVODdRVUZEYkVJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTEhGRFFVRnhRenRCUVVOeVF6dEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xGVkJRVlU3UVVGRE0wSTdRVUZEUVR0QlFVTkJPMEZCUTBFc2MwSkJRWE5DTzBGQlEzUkNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhQUVVGUE8wRkJRM2hDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNUMEZCVHp0QlFVTjRRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR2xDUVVGcFFpeFBRVUZQTzBGQlEzaENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzYVVKQlFXbENMRk5CUVZNN1FVRkRNVUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHbENRVUZwUWl4UlFVRlJPMEZCUTNwQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4blFrRkJaMElzU1VGQlNUdEJRVU53UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeHBRa0ZCYVVJc1UwRkJVenRCUVVNeFFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVN4dFJVRkJiVVU3UVVGRGJrVTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRlZCUVZVN1FVRkRla0lzYVVKQlFXbENMRTlCUVU4N1FVRkRlRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeEhRVUZITzBGQlEyeENMR2xDUVVGcFFpeFBRVUZQTzBGQlEzaENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNaVUZCWlN4UlFVRlJPMEZCUTNaQ0xHVkJRV1VzVVVGQlVUdEJRVU4yUWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEV0QlFVczdPMEZCUlV3N1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRkZCUVZFN1FVRkRka0lzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR2xDUVVGcFFpeFJRVUZSTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVVVGQlVUdEJRVU4yUWl4bFFVRmxMRkZCUVZFN1FVRkRka0lzYVVKQlFXbENMRkZCUVZFN1FVRkRla0k3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hMUVVGTE96dEJRVVZNTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFJRVUZSTzBGQlEzWkNMR1ZCUVdVc1VVRkJVVHRCUVVOMlFpeHBRa0ZCYVVJc1VVRkJVVHRCUVVONlFqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1QwRkJUenRCUVVOMFFpeHBRa0ZCYVVJc1IwRkJSenRCUVVOd1FqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFOUJRVTg3UVVGRGRFSXNaVUZCWlN4VlFVRlZPMEZCUTNwQ0xHbENRVUZwUWl4SFFVRkhPMEZCUTNCQ08wRkJRMEU3UVVGRFFTeDNRa0ZCZDBJc1VVRkJVU3hKUVVGSkxGRkJRVkU3UVVGRE5VTTdRVUZEUVN4elEwRkJjME1zWVVGQllUdEJRVU51UkN4bFFVRmxPMEZCUTJZN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpUdEJRVU5tTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHVkJRV1VzVDBGQlR6dEJRVU4wUWl4cFFrRkJhVUlzVVVGQlVUdEJRVU42UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR1ZCUVdVc1QwRkJUenRCUVVOMFFpeGxRVUZsTEZWQlFWVTdRVUZEZWtJc2FVSkJRV2xDTEZGQlFWRTdRVUZEZWtJN1FVRkRRVHRCUVVOQkxIZENRVUYzUWl4UlFVRlJMRWxCUVVrc1VVRkJVU3hKUVVGSkxGRkJRVkVzU1VGQlNTeFJRVUZSTzBGQlEzQkZPMEZCUTBFc2RVTkJRWFZETEdGQlFXRTdRVUZEY0VRN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFOUJRVTg3UVVGRGRFSXNhVUpCUVdsQ0xFZEJRVWM3UVVGRGNFSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWlVGQlpTeFBRVUZQTzBGQlEzUkNMR1ZCUVdVc1ZVRkJWVHRCUVVONlFpeHBRa0ZCYVVJc1IwRkJSenRCUVVOd1FqdEJRVU5CTzBGQlEwRXNkMEpCUVhkQ0xGRkJRVkVzU1VGQlNTeFJRVUZSTzBGQlF6VkRPMEZCUTBFc2MwTkJRWE5ETEdGQlFXRTdRVUZEYmtRc1pVRkJaVHRCUVVObU8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVTdRVUZEWmp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeGxRVUZsTEZGQlFWRTdRVUZEZGtJc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdsQ1FVRnBRaXhSUVVGUk8wRkJRM3BDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzUzBGQlN6czdRVUZGVER0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhsUVVGbExGRkJRVkU3UVVGRGRrSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hSUVVGUk8wRkJRM1pDTEdWQlFXVXNVVUZCVVR0QlFVTjJRaXhwUWtGQmFVSXNVVUZCVVR0QlFVTjZRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRXRCUVVzN08wRkJSVXc3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hsUVVGbExFOUJRVTg3UVVGRGRFSXNhVUpCUVdsQ0xGRkJRVkU3UVVGRGVrSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1pVRkJaU3hQUVVGUE8wRkJRM1JDTEdWQlFXVXNWVUZCVlR0QlFVTjZRaXhwUWtGQmFVSXNVVUZCVVR0QlFVTjZRanRCUVVOQk8wRkJRMEVzZDBKQlFYZENMRkZCUVZFc1NVRkJTU3hSUVVGUkxFbEJRVWtzVVVGQlVTeEpRVUZKTEZGQlFWRTdRVUZEY0VVN1FVRkRRU3h6UTBGQmMwTXNZVUZCWVR0QlFVTnVSRHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdPMEZCUlVFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEU5QlFVODdRVUZEVUR0QlFVTkJMRXRCUVVzc1QwRkJUeXhuUWtGQlowSTdPMEZCUlRWQ096dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hqUVVGak8wRkJRMlE3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hMUVVGTE96dEJRVVZNTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFc1ZVRkJWVHRCUVVOV08wRkJRMEU3UVVGRFFUdEJRVU5CTEZkQlFWYzdRVUZEV0R0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRXNTMEZCU3pzN1FVRkZURHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVTBGQlV6dEJRVU5VTzBGQlEwRTdRVUZEUVR0QlFVTkJMRXRCUVVzN08wRkJSVXc3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxFdEJRVXM3TzBGQlJVdzdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEV0QlFVczdPMEZCUlV3N1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVDBGQlR6dEJRVU5RTEV0QlFVczdPMEZCUlV3N1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNVVUZCVVR0QlFVTlNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEVzYjBOQlFXOURMREpFUVVFeVJEdEJRVU12Ump0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNTMEZCU3pzN1FVRkZURHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4VFFVRlRPMEZCUTFRN1FVRkRRU3hMUVVGTE96dEJRVVZNTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTdzRRa0ZCT0VJc2QwTkJRWGRETzBGQlEzUkZPMEZCUTBFc1MwRkJTenM3UVVGRlREdEJRVU5CTzBGQlEwRTdRVUZEUVN4TFFVRkxPenRCUVVWTU8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRWRCUVVjN08wRkJSVWc3TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHRCUVVOQkxFMUJRVTBzU1VGQk1FVTdRVUZEYUVZN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFc1NVRkJTU3h0UTBGQlR6dEJRVU5ZTzBGQlEwRXNTMEZCU3p0QlFVRkJMR3RIUVVGRE8wRkJRMDQ3UVVGRFFUdEJRVU5CTEU5QlFVOHNSVUZUU2p0QlFVTklMRU5CUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwyeHZaR0Z6YUM5c2IyUmhjMmd1YW5NL1lqSm1OU0pkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdktpcGNiaUFxSUVCc2FXTmxibk5sWEc0Z0tpQk1iMlJoYzJnZ1BHaDBkSEJ6T2k4dmJHOWtZWE5vTG1OdmJTOCtYRzRnS2lCRGIzQjVjbWxuYUhRZ1QzQmxia3BUSUVadmRXNWtZWFJwYjI0Z1lXNWtJRzkwYUdWeUlHTnZiblJ5YVdKMWRHOXljeUE4YUhSMGNITTZMeTl2Y0dWdWFuTm1MbTl5Wnk4K1hHNGdLaUJTWld4bFlYTmxaQ0IxYm1SbGNpQk5TVlFnYkdsalpXNXpaU0E4YUhSMGNITTZMeTlzYjJSaGMyZ3VZMjl0TDJ4cFkyVnVjMlUrWEc0Z0tpQkNZWE5sWkNCdmJpQlZibVJsY25OamIzSmxMbXB6SURFdU9DNHpJRHhvZEhSd09pOHZkVzVrWlhKelkyOXlaV3B6TG05eVp5OU1TVU5GVGxORlBseHVJQ29nUTI5d2VYSnBaMmgwSUVwbGNtVnRlU0JCYzJoclpXNWhjeXdnUkc5amRXMWxiblJEYkc5MVpDQmhibVFnU1c1MlpYTjBhV2RoZEdsMlpTQlNaWEJ2Y25SbGNuTWdKaUJGWkdsMGIzSnpYRzRnS2k5Y2Jqc29ablZ1WTNScGIyNG9LU0I3WEc1Y2JpQWdMeW9xSUZWelpXUWdZWE1nWVNCellXWmxJSEpsWm1WeVpXNWpaU0JtYjNJZ1lIVnVaR1ZtYVc1bFpHQWdhVzRnY0hKbExVVlROU0JsYm5acGNtOXViV1Z1ZEhNdUlDb3ZYRzRnSUhaaGNpQjFibVJsWm1sdVpXUTdYRzVjYmlBZ0x5b3FJRlZ6WldRZ1lYTWdkR2hsSUhObGJXRnVkR2xqSUhabGNuTnBiMjRnYm5WdFltVnlMaUFxTDF4dUlDQjJZWElnVmtWU1UwbFBUaUE5SUNjMExqRTNMakl4Snp0Y2JseHVJQ0F2S2lvZ1ZYTmxaQ0JoY3lCMGFHVWdjMmw2WlNCMGJ5QmxibUZpYkdVZ2JHRnlaMlVnWVhKeVlYa2diM0IwYVcxcGVtRjBhVzl1Y3k0Z0tpOWNiaUFnZG1GeUlFeEJVa2RGWDBGU1VrRlpYMU5KV2tVZ1BTQXlNREE3WEc1Y2JpQWdMeW9xSUVWeWNtOXlJRzFsYzNOaFoyVWdZMjl1YzNSaGJuUnpMaUFxTDF4dUlDQjJZWElnUTA5U1JWOUZVbEpQVWw5VVJWaFVJRDBnSjFWdWMzVndjRzl5ZEdWa0lHTnZjbVV0YW5NZ2RYTmxMaUJVY25rZ2FIUjBjSE02THk5dWNHMXpMbWx2TDNObFlYSmphRDl4UFhCdmJubG1hV3hzTGljc1hHNGdJQ0FnSUNCR1ZVNURYMFZTVWs5U1gxUkZXRlFnUFNBblJYaHdaV04wWldRZ1lTQm1kVzVqZEdsdmJpY3NYRzRnSUNBZ0lDQkpUbFpCVEVsRVgxUkZUVkJNWDFaQlVsOUZVbEpQVWw5VVJWaFVJRDBnSjBsdWRtRnNhV1FnWUhaaGNtbGhZbXhsWUNCdmNIUnBiMjRnY0dGemMyVmtJR2x1ZEc4Z1lGOHVkR1Z0Y0d4aGRHVmdKenRjYmx4dUlDQXZLaW9nVlhObFpDQjBieUJ6ZEdGdVpDMXBiaUJtYjNJZ1lIVnVaR1ZtYVc1bFpHQWdhR0Z6YUNCMllXeDFaWE11SUNvdlhHNGdJSFpoY2lCSVFWTklYMVZPUkVWR1NVNUZSQ0E5SUNkZlgyeHZaR0Z6YUY5b1lYTm9YM1Z1WkdWbWFXNWxaRjlmSnp0Y2JseHVJQ0F2S2lvZ1ZYTmxaQ0JoY3lCMGFHVWdiV0Y0YVcxMWJTQnRaVzF2YVhwbElHTmhZMmhsSUhOcGVtVXVJQ292WEc0Z0lIWmhjaUJOUVZoZlRVVk5UMGxhUlY5VFNWcEZJRDBnTlRBd08xeHVYRzRnSUM4cUtpQlZjMlZrSUdGeklIUm9aU0JwYm5SbGNtNWhiQ0JoY21kMWJXVnVkQ0J3YkdGalpXaHZiR1JsY2k0Z0tpOWNiaUFnZG1GeUlGQk1RVU5GU0U5TVJFVlNJRDBnSjE5ZmJHOWtZWE5vWDNCc1lXTmxhRzlzWkdWeVgxOG5PMXh1WEc0Z0lDOHFLaUJWYzJWa0lIUnZJR052YlhCdmMyVWdZbWwwYldGemEzTWdabTl5SUdOc2IyNXBibWN1SUNvdlhHNGdJSFpoY2lCRFRFOU9SVjlFUlVWUVgwWk1RVWNnUFNBeExGeHVJQ0FnSUNBZ1EweFBUa1ZmUmt4QlZGOUdURUZISUQwZ01peGNiaUFnSUNBZ0lFTk1UMDVGWDFOWlRVSlBURk5mUmt4QlJ5QTlJRFE3WEc1Y2JpQWdMeW9xSUZWelpXUWdkRzhnWTI5dGNHOXpaU0JpYVhSdFlYTnJjeUJtYjNJZ2RtRnNkV1VnWTI5dGNHRnlhWE52Ym5NdUlDb3ZYRzRnSUhaaGNpQkRUMDFRUVZKRlgxQkJVbFJKUVV4ZlJreEJSeUE5SURFc1hHNGdJQ0FnSUNCRFQwMVFRVkpGWDFWT1QxSkVSVkpGUkY5R1RFRkhJRDBnTWp0Y2JseHVJQ0F2S2lvZ1ZYTmxaQ0IwYnlCamIyMXdiM05sSUdKcGRHMWhjMnR6SUdadmNpQm1kVzVqZEdsdmJpQnRaWFJoWkdGMFlTNGdLaTljYmlBZ2RtRnlJRmRTUVZCZlFrbE9SRjlHVEVGSElEMGdNU3hjYmlBZ0lDQWdJRmRTUVZCZlFrbE9SRjlMUlZsZlJreEJSeUE5SURJc1hHNGdJQ0FnSUNCWFVrRlFYME5WVWxKWlgwSlBWVTVFWDBaTVFVY2dQU0EwTEZ4dUlDQWdJQ0FnVjFKQlVGOURWVkpTV1Y5R1RFRkhJRDBnT0N4Y2JpQWdJQ0FnSUZkU1FWQmZRMVZTVWxsZlVrbEhTRlJmUmt4QlJ5QTlJREUyTEZ4dUlDQWdJQ0FnVjFKQlVGOVFRVkpVU1VGTVgwWk1RVWNnUFNBek1peGNiaUFnSUNBZ0lGZFNRVkJmVUVGU1ZFbEJURjlTU1VkSVZGOUdURUZISUQwZ05qUXNYRzRnSUNBZ0lDQlhVa0ZRWDBGU1dWOUdURUZISUQwZ01USTRMRnh1SUNBZ0lDQWdWMUpCVUY5U1JVRlNSMTlHVEVGSElEMGdNalUyTEZ4dUlDQWdJQ0FnVjFKQlVGOUdURWxRWDBaTVFVY2dQU0ExTVRJN1hHNWNiaUFnTHlvcUlGVnpaV1FnWVhNZ1pHVm1ZWFZzZENCdmNIUnBiMjV6SUdadmNpQmdYeTUwY25WdVkyRjBaV0F1SUNvdlhHNGdJSFpoY2lCRVJVWkJWVXhVWDFSU1ZVNURYMHhGVGtkVVNDQTlJRE13TEZ4dUlDQWdJQ0FnUkVWR1FWVk1WRjlVVWxWT1ExOVBUVWxUVTBsUFRpQTlJQ2N1TGk0bk8xeHVYRzRnSUM4cUtpQlZjMlZrSUhSdklHUmxkR1ZqZENCb2IzUWdablZ1WTNScGIyNXpJR0o1SUc1MWJXSmxjaUJ2WmlCallXeHNjeUIzYVhSb2FXNGdZU0J6Y0dGdUlHOW1JRzFwYkd4cGMyVmpiMjVrY3k0Z0tpOWNiaUFnZG1GeUlFaFBWRjlEVDFWT1ZDQTlJRGd3TUN4Y2JpQWdJQ0FnSUVoUFZGOVRVRUZPSUQwZ01UWTdYRzVjYmlBZ0x5b3FJRlZ6WldRZ2RHOGdhVzVrYVdOaGRHVWdkR2hsSUhSNWNHVWdiMllnYkdGNmVTQnBkR1Z5WVhSbFpYTXVJQ292WEc0Z0lIWmhjaUJNUVZwWlgwWkpURlJGVWw5R1RFRkhJRDBnTVN4Y2JpQWdJQ0FnSUV4QldsbGZUVUZRWDBaTVFVY2dQU0F5TEZ4dUlDQWdJQ0FnVEVGYVdWOVhTRWxNUlY5R1RFRkhJRDBnTXp0Y2JseHVJQ0F2S2lvZ1ZYTmxaQ0JoY3lCeVpXWmxjbVZ1WTJWeklHWnZjaUIyWVhKcGIzVnpJR0JPZFcxaVpYSmdJR052Ym5OMFlXNTBjeTRnS2k5Y2JpQWdkbUZ5SUVsT1JrbE9TVlJaSUQwZ01TQXZJREFzWEc0Z0lDQWdJQ0JOUVZoZlUwRkdSVjlKVGxSRlIwVlNJRDBnT1RBd056RTVPVEkxTkRjME1EazVNU3hjYmlBZ0lDQWdJRTFCV0Y5SlRsUkZSMFZTSUQwZ01TNDNPVGMyT1RNeE16UTROakl6TVRVM1pTc3pNRGdzWEc0Z0lDQWdJQ0JPUVU0Z1BTQXdJQzhnTUR0Y2JseHVJQ0F2S2lvZ1ZYTmxaQ0JoY3lCeVpXWmxjbVZ1WTJWeklHWnZjaUIwYUdVZ2JXRjRhVzExYlNCc1pXNW5kR2dnWVc1a0lHbHVaR1Y0SUc5bUlHRnVJR0Z5Y21GNUxpQXFMMXh1SUNCMllYSWdUVUZZWDBGU1VrRlpYMHhGVGtkVVNDQTlJRFF5T1RRNU5qY3lPVFVzWEc0Z0lDQWdJQ0JOUVZoZlFWSlNRVmxmU1U1RVJWZ2dQU0JOUVZoZlFWSlNRVmxmVEVWT1IxUklJQzBnTVN4Y2JpQWdJQ0FnSUVoQlRFWmZUVUZZWDBGU1VrRlpYMHhGVGtkVVNDQTlJRTFCV0Y5QlVsSkJXVjlNUlU1SFZFZ2dQajQrSURFN1hHNWNiaUFnTHlvcUlGVnpaV1FnZEc4Z1lYTnpiMk5wWVhSbElIZHlZWEFnYldWMGFHOWtjeUIzYVhSb0lIUm9aV2x5SUdKcGRDQm1iR0ZuY3k0Z0tpOWNiaUFnZG1GeUlIZHlZWEJHYkdGbmN5QTlJRnRjYmlBZ0lDQmJKMkZ5ZVNjc0lGZFNRVkJmUVZKWlgwWk1RVWRkTEZ4dUlDQWdJRnNuWW1sdVpDY3NJRmRTUVZCZlFrbE9SRjlHVEVGSFhTeGNiaUFnSUNCYkoySnBibVJMWlhrbkxDQlhVa0ZRWDBKSlRrUmZTMFZaWDBaTVFVZGRMRnh1SUNBZ0lGc25ZM1Z5Y25rbkxDQlhVa0ZRWDBOVlVsSlpYMFpNUVVkZExGeHVJQ0FnSUZzblkzVnljbmxTYVdkb2RDY3NJRmRTUVZCZlExVlNVbGxmVWtsSFNGUmZSa3hCUjEwc1hHNGdJQ0FnV3lkbWJHbHdKeXdnVjFKQlVGOUdURWxRWDBaTVFVZGRMRnh1SUNBZ0lGc25jR0Z5ZEdsaGJDY3NJRmRTUVZCZlVFRlNWRWxCVEY5R1RFRkhYU3hjYmlBZ0lDQmJKM0JoY25ScFlXeFNhV2RvZENjc0lGZFNRVkJmVUVGU1ZFbEJURjlTU1VkSVZGOUdURUZIWFN4Y2JpQWdJQ0JiSjNKbFlYSm5KeXdnVjFKQlVGOVNSVUZTUjE5R1RFRkhYVnh1SUNCZE8xeHVYRzRnSUM4cUtpQmdUMkpxWldOMEkzUnZVM1J5YVc1bllDQnlaWE4xYkhRZ2NtVm1aWEpsYm1ObGN5NGdLaTljYmlBZ2RtRnlJR0Z5WjNOVVlXY2dQU0FuVzI5aWFtVmpkQ0JCY21kMWJXVnVkSE5kSnl4Y2JpQWdJQ0FnSUdGeWNtRjVWR0ZuSUQwZ0oxdHZZbXBsWTNRZ1FYSnlZWGxkSnl4Y2JpQWdJQ0FnSUdGemVXNWpWR0ZuSUQwZ0oxdHZZbXBsWTNRZ1FYTjVibU5HZFc1amRHbHZibDBuTEZ4dUlDQWdJQ0FnWW05dmJGUmhaeUE5SUNkYmIySnFaV04wSUVKdmIyeGxZVzVkSnl4Y2JpQWdJQ0FnSUdSaGRHVlVZV2NnUFNBblcyOWlhbVZqZENCRVlYUmxYU2NzWEc0Z0lDQWdJQ0JrYjIxRmVHTlVZV2NnUFNBblcyOWlhbVZqZENCRVQwMUZlR05sY0hScGIyNWRKeXhjYmlBZ0lDQWdJR1Z5Y205eVZHRm5JRDBnSjF0dlltcGxZM1FnUlhKeWIzSmRKeXhjYmlBZ0lDQWdJR1oxYm1OVVlXY2dQU0FuVzI5aWFtVmpkQ0JHZFc1amRHbHZibDBuTEZ4dUlDQWdJQ0FnWjJWdVZHRm5JRDBnSjF0dlltcGxZM1FnUjJWdVpYSmhkRzl5Um5WdVkzUnBiMjVkSnl4Y2JpQWdJQ0FnSUcxaGNGUmhaeUE5SUNkYmIySnFaV04wSUUxaGNGMG5MRnh1SUNBZ0lDQWdiblZ0WW1WeVZHRm5JRDBnSjF0dlltcGxZM1FnVG5WdFltVnlYU2NzWEc0Z0lDQWdJQ0J1ZFd4c1ZHRm5JRDBnSjF0dlltcGxZM1FnVG5Wc2JGMG5MRnh1SUNBZ0lDQWdiMkpxWldOMFZHRm5JRDBnSjF0dlltcGxZM1FnVDJKcVpXTjBYU2NzWEc0Z0lDQWdJQ0J3Y205dGFYTmxWR0ZuSUQwZ0oxdHZZbXBsWTNRZ1VISnZiV2x6WlYwbkxGeHVJQ0FnSUNBZ2NISnZlSGxVWVdjZ1BTQW5XMjlpYW1WamRDQlFjbTk0ZVYwbkxGeHVJQ0FnSUNBZ2NtVm5aWGh3VkdGbklEMGdKMXR2WW1wbFkzUWdVbVZuUlhod1hTY3NYRzRnSUNBZ0lDQnpaWFJVWVdjZ1BTQW5XMjlpYW1WamRDQlRaWFJkSnl4Y2JpQWdJQ0FnSUhOMGNtbHVaMVJoWnlBOUlDZGJiMkpxWldOMElGTjBjbWx1WjEwbkxGeHVJQ0FnSUNBZ2MzbHRZbTlzVkdGbklEMGdKMXR2WW1wbFkzUWdVM2x0WW05c1hTY3NYRzRnSUNBZ0lDQjFibVJsWm1sdVpXUlVZV2NnUFNBblcyOWlhbVZqZENCVmJtUmxabWx1WldSZEp5eGNiaUFnSUNBZ0lIZGxZV3ROWVhCVVlXY2dQU0FuVzI5aWFtVmpkQ0JYWldGclRXRndYU2NzWEc0Z0lDQWdJQ0IzWldGclUyVjBWR0ZuSUQwZ0oxdHZZbXBsWTNRZ1YyVmhhMU5sZEYwbk8xeHVYRzRnSUhaaGNpQmhjbkpoZVVKMVptWmxjbFJoWnlBOUlDZGJiMkpxWldOMElFRnljbUY1UW5WbVptVnlYU2NzWEc0Z0lDQWdJQ0JrWVhSaFZtbGxkMVJoWnlBOUlDZGJiMkpxWldOMElFUmhkR0ZXYVdWM1hTY3NYRzRnSUNBZ0lDQm1iRzloZERNeVZHRm5JRDBnSjF0dlltcGxZM1FnUm14dllYUXpNa0Z5Y21GNVhTY3NYRzRnSUNBZ0lDQm1iRzloZERZMFZHRm5JRDBnSjF0dlltcGxZM1FnUm14dllYUTJORUZ5Y21GNVhTY3NYRzRnSUNBZ0lDQnBiblE0VkdGbklEMGdKMXR2WW1wbFkzUWdTVzUwT0VGeWNtRjVYU2NzWEc0Z0lDQWdJQ0JwYm5ReE5sUmhaeUE5SUNkYmIySnFaV04wSUVsdWRERTJRWEp5WVhsZEp5eGNiaUFnSUNBZ0lHbHVkRE15VkdGbklEMGdKMXR2WW1wbFkzUWdTVzUwTXpKQmNuSmhlVjBuTEZ4dUlDQWdJQ0FnZFdsdWREaFVZV2NnUFNBblcyOWlhbVZqZENCVmFXNTBPRUZ5Y21GNVhTY3NYRzRnSUNBZ0lDQjFhVzUwT0VOc1lXMXdaV1JVWVdjZ1BTQW5XMjlpYW1WamRDQlZhVzUwT0VOc1lXMXdaV1JCY25KaGVWMG5MRnh1SUNBZ0lDQWdkV2x1ZERFMlZHRm5JRDBnSjF0dlltcGxZM1FnVldsdWRERTJRWEp5WVhsZEp5eGNiaUFnSUNBZ0lIVnBiblF6TWxSaFp5QTlJQ2RiYjJKcVpXTjBJRlZwYm5Rek1rRnljbUY1WFNjN1hHNWNiaUFnTHlvcUlGVnpaV1FnZEc4Z2JXRjBZMmdnWlcxd2RIa2djM1J5YVc1bklHeHBkR1Z5WVd4eklHbHVJR052YlhCcGJHVmtJSFJsYlhCc1lYUmxJSE52ZFhKalpTNGdLaTljYmlBZ2RtRnlJSEpsUlcxd2RIbFRkSEpwYm1kTVpXRmthVzVuSUQwZ0wxeGNZbDlmY0NCY1hDczlJQ2NuT3k5bkxGeHVJQ0FnSUNBZ2NtVkZiWEIwZVZOMGNtbHVaMDFwWkdSc1pTQTlJQzljWEdJb1gxOXdJRnhjS3owcElDY25JRnhjS3k5bkxGeHVJQ0FnSUNBZ2NtVkZiWEIwZVZOMGNtbHVaMVJ5WVdsc2FXNW5JRDBnTHloZlgyVmNYQ2d1S2o5Y1hDbDhYRnhpWDE5MFhGd3BLU0JjWEN0Y1hHNG5KenN2Wnp0Y2JseHVJQ0F2S2lvZ1ZYTmxaQ0IwYnlCdFlYUmphQ0JJVkUxTUlHVnVkR2wwYVdWeklHRnVaQ0JJVkUxTUlHTm9ZWEpoWTNSbGNuTXVJQ292WEc0Z0lIWmhjaUJ5WlVWelkyRndaV1JJZEcxc0lEMGdMeVlvUHpwaGJYQjhiSFI4WjNSOGNYVnZkSHdqTXprcE95OW5MRnh1SUNBZ0lDQWdjbVZWYm1WelkyRndaV1JJZEcxc0lEMGdMMXNtUEQ1Y0lpZGRMMmNzWEc0Z0lDQWdJQ0J5WlVoaGMwVnpZMkZ3WldSSWRHMXNJRDBnVW1WblJYaHdLSEpsUlhOallYQmxaRWgwYld3dWMyOTFjbU5sS1N4Y2JpQWdJQ0FnSUhKbFNHRnpWVzVsYzJOaGNHVmtTSFJ0YkNBOUlGSmxaMFY0Y0NoeVpWVnVaWE5qWVhCbFpFaDBiV3d1YzI5MWNtTmxLVHRjYmx4dUlDQXZLaW9nVlhObFpDQjBieUJ0WVhSamFDQjBaVzF3YkdGMFpTQmtaV3hwYldsMFpYSnpMaUFxTDF4dUlDQjJZWElnY21WRmMyTmhjR1VnUFNBdlBDVXRLRnRjWEhOY1hGTmRLejhwSlQ0dlp5eGNiaUFnSUNBZ0lISmxSWFpoYkhWaGRHVWdQU0F2UENVb1cxeGNjMXhjVTEwclB5a2xQaTluTEZ4dUlDQWdJQ0FnY21WSmJuUmxjbkJ2YkdGMFpTQTlJQzg4SlQwb1cxeGNjMXhjVTEwclB5a2xQaTluTzF4dVhHNGdJQzhxS2lCVmMyVmtJSFJ2SUcxaGRHTm9JSEJ5YjNCbGNuUjVJRzVoYldWeklIZHBkR2hwYmlCd2NtOXdaWEowZVNCd1lYUm9jeTRnS2k5Y2JpQWdkbUZ5SUhKbFNYTkVaV1Z3VUhKdmNDQTlJQzljWEM1OFhGeGJLRDg2VzE1YlhGeGRYU3A4S0Z0Y0lpZGRLU2cvT2lnL0lWeGNNU2xiWGx4Y1hGeGRmRnhjWEZ3dUtTby9YRnd4S1Z4Y1hTOHNYRzRnSUNBZ0lDQnlaVWx6VUd4aGFXNVFjbTl3SUQwZ0wxNWNYSGNxSkM4c1hHNGdJQ0FnSUNCeVpWQnliM0JPWVcxbElEMGdMMXRlTGx0Y1hGMWRLM3hjWEZzb1B6b29MVDljWEdRcktEODZYRnd1WEZ4a0t5ay9LWHdvVzF3aUoxMHBLQ2cvT2lnL0lWeGNNaWxiWGx4Y1hGeGRmRnhjWEZ3dUtTby9LVnhjTWlsY1hGMThLRDg5S0Q4NlhGd3VmRnhjVzF4Y1hTa29QenBjWEM1OFhGeGJYRnhkZkNRcEtTOW5PMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlZjMlZrSUhSdklHMWhkR05vSUdCU1pXZEZlSEJnWEc0Z0lDQXFJRnR6ZVc1MFlYZ2dZMmhoY21GamRHVnljMTBvYUhSMGNEb3ZMMlZqYldFdGFXNTBaWEp1WVhScGIyNWhiQzV2Y21jdlpXTnRZUzB5TmpJdk55NHdMeU56WldNdGNHRjBkR1Z5Ym5NcExseHVJQ0FnS2k5Y2JpQWdkbUZ5SUhKbFVtVm5SWGh3UTJoaGNpQTlJQzliWEZ4Y1hGNGtMaW9yUHlncFcxeGNYWHQ5ZkYwdlp5eGNiaUFnSUNBZ0lISmxTR0Z6VW1WblJYaHdRMmhoY2lBOUlGSmxaMFY0Y0NoeVpWSmxaMFY0Y0VOb1lYSXVjMjkxY21ObEtUdGNibHh1SUNBdktpb2dWWE5sWkNCMGJ5QnRZWFJqYUNCc1pXRmthVzVuSUhkb2FYUmxjM0JoWTJVdUlDb3ZYRzRnSUhaaGNpQnlaVlJ5YVcxVGRHRnlkQ0E5SUM5ZVhGeHpLeTg3WEc1Y2JpQWdMeW9xSUZWelpXUWdkRzhnYldGMFkyZ2dZU0J6YVc1bmJHVWdkMmhwZEdWemNHRmpaU0JqYUdGeVlXTjBaWEl1SUNvdlhHNGdJSFpoY2lCeVpWZG9hWFJsYzNCaFkyVWdQU0F2WEZ4ekx6dGNibHh1SUNBdktpb2dWWE5sWkNCMGJ5QnRZWFJqYUNCM2NtRndJR1JsZEdGcGJDQmpiMjF0Wlc1MGN5NGdLaTljYmlBZ2RtRnlJSEpsVjNKaGNFTnZiVzFsYm5RZ1BTQXZYRng3S0Q4NlhGeHVYRnd2WEZ3cUlGeGNXM2R5WVhCd1pXUWdkMmwwYUNBdUsxeGNYU0JjWENwY1hDOHBQMXhjYmo4dkxGeHVJQ0FnSUNBZ2NtVlhjbUZ3UkdWMFlXbHNjeUE5SUM5Y1hIdGNYRzVjWEM5Y1hDb2dYRnhiZDNKaGNIQmxaQ0IzYVhSb0lDZ3VLeWxjWEYwZ1hGd3FMeXhjYmlBZ0lDQWdJSEpsVTNCc2FYUkVaWFJoYVd4eklEMGdMeXcvSUNZZ0x6dGNibHh1SUNBdktpb2dWWE5sWkNCMGJ5QnRZWFJqYUNCM2IzSmtjeUJqYjIxd2IzTmxaQ0J2WmlCaGJIQm9ZVzUxYldWeWFXTWdZMmhoY21GamRHVnljeTRnS2k5Y2JpQWdkbUZ5SUhKbFFYTmphV2xYYjNKa0lEMGdMMXRlWEZ4NE1EQXRYRng0TW1aY1hIZ3pZUzFjWEhnME1GeGNlRFZpTFZ4Y2VEWXdYRng0TjJJdFhGeDROMlpkS3k5bk8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCVmMyVmtJSFJ2SUhaaGJHbGtZWFJsSUhSb1pTQmdkbUZzYVdSaGRHVmdJRzl3ZEdsdmJpQnBiaUJnWHk1MFpXMXdiR0YwWldBZ2RtRnlhV0ZpYkdVdVhHNGdJQ0FxWEc0Z0lDQXFJRVp2Y21KcFpITWdZMmhoY21GamRHVnljeUIzYUdsamFDQmpiM1ZzWkNCd2IzUmxiblJwWVd4c2VTQmphR0Z1WjJVZ2RHaGxJRzFsWVc1cGJtY2diMllnZEdobElHWjFibU4wYVc5dUlHRnlaM1Z0Wlc1MElHUmxabWx1YVhScGIyNDZYRzRnSUNBcUlDMGdYQ0lvS1N4Y0lpQW9iVzlrYVdacFkyRjBhVzl1SUc5bUlHWjFibU4wYVc5dUlIQmhjbUZ0WlhSbGNuTXBYRzRnSUNBcUlDMGdYQ0k5WENJZ0tHUmxabUYxYkhRZ2RtRnNkV1VwWEc0Z0lDQXFJQzBnWENKYlhYdDlYQ0lnS0dSbGMzUnlkV04wZFhKcGJtY2diMllnWm5WdVkzUnBiMjRnY0dGeVlXMWxkR1Z5Y3lsY2JpQWdJQ29nTFNCY0lpOWNJaUFvWW1WbmFXNXVhVzVuSUc5bUlHRWdZMjl0YldWdWRDbGNiaUFnSUNvZ0xTQjNhR2wwWlhOd1lXTmxYRzRnSUNBcUwxeHVJQ0IyWVhJZ2NtVkdiM0ppYVdSa1pXNUpaR1Z1ZEdsbWFXVnlRMmhoY25NZ1BTQXZXeWdwUFN4N2ZWeGNXMXhjWFZ4Y0wxeGNjMTB2TzF4dVhHNGdJQzhxS2lCVmMyVmtJSFJ2SUcxaGRHTm9JR0poWTJ0emJHRnphR1Z6SUdsdUlIQnliM0JsY25SNUlIQmhkR2h6TGlBcUwxeHVJQ0IyWVhJZ2NtVkZjMk5oY0dWRGFHRnlJRDBnTDF4Y1hGd29YRnhjWENrL0wyYzdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGVnpaV1FnZEc4Z2JXRjBZMmhjYmlBZ0lDb2dXMFZUSUhSbGJYQnNZWFJsSUdSbGJHbHRhWFJsY25OZEtHaDBkSEE2THk5bFkyMWhMV2x1ZEdWeWJtRjBhVzl1WVd3dWIzSm5MMlZqYldFdE1qWXlMemN1TUM4amMyVmpMWFJsYlhCc1lYUmxMV3hwZEdWeVlXd3RiR1Y0YVdOaGJDMWpiMjF3YjI1bGJuUnpLUzVjYmlBZ0lDb3ZYRzRnSUhaaGNpQnlaVVZ6VkdWdGNHeGhkR1VnUFNBdlhGd2tYRng3S0Z0ZVhGeGNYSDFkS2lnL09seGNYRnd1VzE1Y1hGeGNmVjBxS1NvcFhGeDlMMmM3WEc1Y2JpQWdMeW9xSUZWelpXUWdkRzhnYldGMFkyZ2dZRkpsWjBWNGNHQWdabXhoWjNNZ1puSnZiU0IwYUdWcGNpQmpiMlZ5WTJWa0lITjBjbWx1WnlCMllXeDFaWE11SUNvdlhHNGdJSFpoY2lCeVpVWnNZV2R6SUQwZ0wxeGNkeW9rTHp0Y2JseHVJQ0F2S2lvZ1ZYTmxaQ0IwYnlCa1pYUmxZM1FnWW1Ga0lITnBaMjVsWkNCb1pYaGhaR1ZqYVcxaGJDQnpkSEpwYm1jZ2RtRnNkV1Z6TGlBcUwxeHVJQ0IyWVhJZ2NtVkpjMEpoWkVobGVDQTlJQzllV3kwclhUQjRXekF0T1dFdFpsMHJKQzlwTzF4dVhHNGdJQzhxS2lCVmMyVmtJSFJ2SUdSbGRHVmpkQ0JpYVc1aGNua2djM1J5YVc1bklIWmhiSFZsY3k0Z0tpOWNiaUFnZG1GeUlISmxTWE5DYVc1aGNua2dQU0F2WGpCaVd6QXhYU3NrTDJrN1hHNWNiaUFnTHlvcUlGVnpaV1FnZEc4Z1pHVjBaV04wSUdodmMzUWdZMjl1YzNSeWRXTjBiM0p6SUNoVFlXWmhjbWtwTGlBcUwxeHVJQ0IyWVhJZ2NtVkpjMGh2YzNSRGRHOXlJRDBnTDE1Y1hGdHZZbXBsWTNRZ0xpcy9RMjl1YzNSeWRXTjBiM0pjWEYwa0x6dGNibHh1SUNBdktpb2dWWE5sWkNCMGJ5QmtaWFJsWTNRZ2IyTjBZV3dnYzNSeWFXNW5JSFpoYkhWbGN5NGdLaTljYmlBZ2RtRnlJSEpsU1hOUFkzUmhiQ0E5SUM5ZU1HOWJNQzAzWFNza0wyazdYRzVjYmlBZ0x5b3FJRlZ6WldRZ2RHOGdaR1YwWldOMElIVnVjMmxuYm1Wa0lHbHVkR1ZuWlhJZ2RtRnNkV1Z6TGlBcUwxeHVJQ0IyWVhJZ2NtVkpjMVZwYm5RZ1BTQXZYaWcvT2pCOFd6RXRPVjFjWEdRcUtTUXZPMXh1WEc0Z0lDOHFLaUJWYzJWa0lIUnZJRzFoZEdOb0lFeGhkR2x1SUZWdWFXTnZaR1VnYkdWMGRHVnljeUFvWlhoamJIVmthVzVuSUcxaGRHaGxiV0YwYVdOaGJDQnZjR1Z5WVhSdmNuTXBMaUFxTDF4dUlDQjJZWElnY21WTVlYUnBiaUE5SUM5YlhGeDRZekF0WEZ4NFpEWmNYSGhrT0MxY1hIaG1ObHhjZUdZNExWeGNlR1ptWEZ4MU1ERXdNQzFjWEhVd01UZG1YUzluTzF4dVhHNGdJQzhxS2lCVmMyVmtJSFJ2SUdWdWMzVnlaU0JqWVhCMGRYSnBibWNnYjNKa1pYSWdiMllnZEdWdGNHeGhkR1VnWkdWc2FXMXBkR1Z5Y3k0Z0tpOWNiaUFnZG1GeUlISmxUbTlOWVhSamFDQTlJQzhvSkY0cEx6dGNibHh1SUNBdktpb2dWWE5sWkNCMGJ5QnRZWFJqYUNCMWJtVnpZMkZ3WldRZ1kyaGhjbUZqZEdWeWN5QnBiaUJqYjIxd2FXeGxaQ0J6ZEhKcGJtY2diR2wwWlhKaGJITXVJQ292WEc0Z0lIWmhjaUJ5WlZWdVpYTmpZWEJsWkZOMGNtbHVaeUE5SUM5YkoxeGNibHhjY2x4Y2RUSXdNamhjWEhVeU1ESTVYRnhjWEYwdlp6dGNibHh1SUNBdktpb2dWWE5sWkNCMGJ5QmpiMjF3YjNObElIVnVhV052WkdVZ1kyaGhjbUZqZEdWeUlHTnNZWE56WlhNdUlDb3ZYRzRnSUhaaGNpQnljMEZ6ZEhKaGJGSmhibWRsSUQwZ0oxeGNYRngxWkRnd01DMWNYRnhjZFdSbVptWW5MRnh1SUNBZ0lDQWdjbk5EYjIxaWIwMWhjbXR6VW1GdVoyVWdQU0FuWEZ4Y1hIVXdNekF3TFZ4Y1hGeDFNRE0yWmljc1hHNGdJQ0FnSUNCeVpVTnZiV0p2U0dGc1prMWhjbXR6VW1GdVoyVWdQU0FuWEZ4Y1hIVm1aVEl3TFZ4Y1hGeDFabVV5Wmljc1hHNGdJQ0FnSUNCeWMwTnZiV0p2VTNsdFltOXNjMUpoYm1kbElEMGdKMXhjWEZ4MU1qQmtNQzFjWEZ4Y2RUSXdabVluTEZ4dUlDQWdJQ0FnY25ORGIyMWliMUpoYm1kbElEMGdjbk5EYjIxaWIwMWhjbXR6VW1GdVoyVWdLeUJ5WlVOdmJXSnZTR0ZzWmsxaGNtdHpVbUZ1WjJVZ0t5QnljME52YldKdlUzbHRZbTlzYzFKaGJtZGxMRnh1SUNBZ0lDQWdjbk5FYVc1blltRjBVbUZ1WjJVZ1BTQW5YRnhjWEhVeU56QXdMVnhjWEZ4MU1qZGlaaWNzWEc0Z0lDQWdJQ0J5YzB4dmQyVnlVbUZ1WjJVZ1BTQW5ZUzE2WEZ4Y1hIaGtaaTFjWEZ4Y2VHWTJYRnhjWEhobU9DMWNYRnhjZUdabUp5eGNiaUFnSUNBZ0lISnpUV0YwYUU5d1VtRnVaMlVnUFNBblhGeGNYSGhoWTF4Y1hGeDRZakZjWEZ4Y2VHUTNYRnhjWEhobU55Y3NYRzRnSUNBZ0lDQnljMDV2YmtOb1lYSlNZVzVuWlNBOUlDZGNYRnhjZURBd0xWeGNYRng0TW1aY1hGeGNlRE5oTFZ4Y1hGeDROREJjWEZ4Y2VEVmlMVnhjWEZ4NE5qQmNYRnhjZURkaUxWeGNYRng0WW1ZbkxGeHVJQ0FnSUNBZ2NuTlFkVzVqZEhWaGRHbHZibEpoYm1kbElEMGdKMXhjWEZ4MU1qQXdNQzFjWEZ4Y2RUSXdObVluTEZ4dUlDQWdJQ0FnY25OVGNHRmpaVkpoYm1kbElEMGdKeUJjWEZ4Y2RGeGNYRng0TUdKY1hGeGNabHhjWEZ4NFlUQmNYRnhjZFdabFptWmNYRnhjYmx4Y1hGeHlYRnhjWEhVeU1ESTRYRnhjWEhVeU1ESTVYRnhjWEhVeE5qZ3dYRnhjWEhVeE9EQmxYRnhjWEhVeU1EQXdYRnhjWEhVeU1EQXhYRnhjWEhVeU1EQXlYRnhjWEhVeU1EQXpYRnhjWEhVeU1EQTBYRnhjWEhVeU1EQTFYRnhjWEhVeU1EQTJYRnhjWEhVeU1EQTNYRnhjWEhVeU1EQTRYRnhjWEhVeU1EQTVYRnhjWEhVeU1EQmhYRnhjWEhVeU1ESm1YRnhjWEhVeU1EVm1YRnhjWEhVek1EQXdKeXhjYmlBZ0lDQWdJSEp6VlhCd1pYSlNZVzVuWlNBOUlDZEJMVnBjWEZ4Y2VHTXdMVnhjWEZ4NFpEWmNYRnhjZUdRNExWeGNYRng0WkdVbkxGeHVJQ0FnSUNBZ2NuTldZWEpTWVc1blpTQTlJQ2RjWEZ4Y2RXWmxNR1ZjWEZ4Y2RXWmxNR1luTEZ4dUlDQWdJQ0FnY25OQ2NtVmhhMUpoYm1kbElEMGdjbk5OWVhSb1QzQlNZVzVuWlNBcklISnpUbTl1UTJoaGNsSmhibWRsSUNzZ2NuTlFkVzVqZEhWaGRHbHZibEpoYm1kbElDc2djbk5UY0dGalpWSmhibWRsTzF4dVhHNGdJQzhxS2lCVmMyVmtJSFJ2SUdOdmJYQnZjMlVnZFc1cFkyOWtaU0JqWVhCMGRYSmxJR2R5YjNWd2N5NGdLaTljYmlBZ2RtRnlJSEp6UVhCdmN5QTlJRndpV3lkY1hIVXlNREU1WFZ3aUxGeHVJQ0FnSUNBZ2NuTkJjM1J5WVd3Z1BTQW5XeWNnS3lCeWMwRnpkSEpoYkZKaGJtZGxJQ3NnSjEwbkxGeHVJQ0FnSUNBZ2NuTkNjbVZoYXlBOUlDZGJKeUFySUhKelFuSmxZV3RTWVc1blpTQXJJQ2RkSnl4Y2JpQWdJQ0FnSUhKelEyOXRZbThnUFNBbld5Y2dLeUJ5YzBOdmJXSnZVbUZ1WjJVZ0t5QW5YU2NzWEc0Z0lDQWdJQ0J5YzBScFoybDBjeUE5SUNkY1hGeGNaQ3NuTEZ4dUlDQWdJQ0FnY25ORWFXNW5ZbUYwSUQwZ0oxc25JQ3NnY25ORWFXNW5ZbUYwVW1GdVoyVWdLeUFuWFNjc1hHNGdJQ0FnSUNCeWMweHZkMlZ5SUQwZ0oxc25JQ3NnY25OTWIzZGxjbEpoYm1kbElDc2dKMTBuTEZ4dUlDQWdJQ0FnY25OTmFYTmpJRDBnSjF0ZUp5QXJJSEp6UVhOMGNtRnNVbUZ1WjJVZ0t5QnljMEp5WldGclVtRnVaMlVnS3lCeWMwUnBaMmwwY3lBcklISnpSR2x1WjJKaGRGSmhibWRsSUNzZ2NuTk1iM2RsY2xKaGJtZGxJQ3NnY25OVmNIQmxjbEpoYm1kbElDc2dKMTBuTEZ4dUlDQWdJQ0FnY25OR2FYUjZJRDBnSjF4Y1hGeDFaRGd6WTF0Y1hGeGNkV1JtWm1JdFhGeGNYSFZrWm1abVhTY3NYRzRnSUNBZ0lDQnljMDF2WkdsbWFXVnlJRDBnSnlnL09pY2dLeUJ5YzBOdmJXSnZJQ3NnSjN3bklDc2djbk5HYVhSNklDc2dKeWtuTEZ4dUlDQWdJQ0FnY25OT2IyNUJjM1J5WVd3Z1BTQW5XMTRuSUNzZ2NuTkJjM1J5WVd4U1lXNW5aU0FySUNkZEp5eGNiaUFnSUNBZ0lISnpVbVZuYVc5dVlXd2dQU0FuS0Q4NlhGeGNYSFZrT0ROalcxeGNYRngxWkdSbE5pMWNYRnhjZFdSa1ptWmRLWHN5ZlNjc1hHNGdJQ0FnSUNCeWMxTjFjbkpRWVdseUlEMGdKMXRjWEZ4Y2RXUTRNREF0WEZ4Y1hIVmtZbVptWFZ0Y1hGeGNkV1JqTURBdFhGeGNYSFZrWm1abVhTY3NYRzRnSUNBZ0lDQnljMVZ3Y0dWeUlEMGdKMXNuSUNzZ2NuTlZjSEJsY2xKaGJtZGxJQ3NnSjEwbkxGeHVJQ0FnSUNBZ2NuTmFWMG9nUFNBblhGeGNYSFV5TURCa0p6dGNibHh1SUNBdktpb2dWWE5sWkNCMGJ5QmpiMjF3YjNObElIVnVhV052WkdVZ2NtVm5aWGhsY3k0Z0tpOWNiaUFnZG1GeUlISnpUV2x6WTB4dmQyVnlJRDBnSnlnL09pY2dLeUJ5YzB4dmQyVnlJQ3NnSjN3bklDc2djbk5OYVhOaklDc2dKeWtuTEZ4dUlDQWdJQ0FnY25OTmFYTmpWWEJ3WlhJZ1BTQW5LRDg2SnlBcklISnpWWEJ3WlhJZ0t5QW5mQ2NnS3lCeWMwMXBjMk1nS3lBbktTY3NYRzRnSUNBZ0lDQnljMDl3ZEVOdmJuUnlURzkzWlhJZ1BTQW5LRDg2SnlBcklISnpRWEJ2Y3lBcklDY29QenBrZkd4c2ZHMThjbVY4YzN4MGZIWmxLU2svSnl4Y2JpQWdJQ0FnSUhKelQzQjBRMjl1ZEhKVmNIQmxjaUE5SUNjb1B6b25JQ3NnY25OQmNHOXpJQ3NnSnlnL09rUjhURXg4VFh4U1JYeFRmRlI4VmtVcEtUOG5MRnh1SUNBZ0lDQWdjbVZQY0hSTmIyUWdQU0J5YzAxdlpHbG1hV1Z5SUNzZ0p6OG5MRnh1SUNBZ0lDQWdjbk5QY0hSV1lYSWdQU0FuV3ljZ0t5QnljMVpoY2xKaGJtZGxJQ3NnSjEwL0p5eGNiaUFnSUNBZ0lISnpUM0IwU205cGJpQTlJQ2NvUHpvbklDc2djbk5hVjBvZ0t5QW5LRDg2SnlBcklGdHljMDV2YmtGemRISmhiQ3dnY25OU1pXZHBiMjVoYkN3Z2NuTlRkWEp5VUdGcGNsMHVhbTlwYmlnbmZDY3BJQ3NnSnlrbklDc2djbk5QY0hSV1lYSWdLeUJ5WlU5d2RFMXZaQ0FySUNjcEtpY3NYRzRnSUNBZ0lDQnljMDl5WkV4dmQyVnlJRDBnSjF4Y1hGeGtLaWcvT2pGemRId3libVI4TTNKa2ZDZy9JVnN4TWpOZEtWeGNYRnhrZEdncEtEODlYRnhjWEdKOFcwRXRXbDlkS1Njc1hHNGdJQ0FnSUNCeWMwOXlaRlZ3Y0dWeUlEMGdKMXhjWEZ4a0tpZy9PakZUVkh3eVRrUjhNMUpFZkNnL0lWc3hNak5kS1Z4Y1hGeGtWRWdwS0Q4OVhGeGNYR0o4VzJFdGVsOWRLU2NzWEc0Z0lDQWdJQ0J5YzFObGNTQTlJSEp6VDNCMFZtRnlJQ3NnY21WUGNIUk5iMlFnS3lCeWMwOXdkRXB2YVc0c1hHNGdJQ0FnSUNCeWMwVnRiMnBwSUQwZ0p5Zy9PaWNnS3lCYmNuTkVhVzVuWW1GMExDQnljMUpsWjJsdmJtRnNMQ0J5YzFOMWNuSlFZV2x5WFM1cWIybHVLQ2Q4SnlrZ0t5QW5LU2NnS3lCeWMxTmxjU3hjYmlBZ0lDQWdJSEp6VTNsdFltOXNJRDBnSnlnL09pY2dLeUJiY25OT2IyNUJjM1J5WVd3Z0t5QnljME52YldKdklDc2dKejhuTENCeWMwTnZiV0p2TENCeWMxSmxaMmx2Ym1Gc0xDQnljMU4xY25KUVlXbHlMQ0J5YzBGemRISmhiRjB1YW05cGJpZ25mQ2NwSUNzZ0p5a25PMXh1WEc0Z0lDOHFLaUJWYzJWa0lIUnZJRzFoZEdOb0lHRndiM04wY205d2FHVnpMaUFxTDF4dUlDQjJZWElnY21WQmNHOXpJRDBnVW1WblJYaHdLSEp6UVhCdmN5d2dKMmNuS1R0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVlhObFpDQjBieUJ0WVhSamFDQmJZMjl0WW1sdWFXNW5JR1JwWVdOeWFYUnBZMkZzSUcxaGNtdHpYU2hvZEhSd2N6b3ZMMlZ1TG5kcGEybHdaV1JwWVM1dmNtY3ZkMmxyYVM5RGIyMWlhVzVwYm1kZlJHbGhZM0pwZEdsallXeGZUV0Z5YTNNcElHRnVaRnh1SUNBZ0tpQmJZMjl0WW1sdWFXNW5JR1JwWVdOeWFYUnBZMkZzSUcxaGNtdHpJR1p2Y2lCemVXMWliMnh6WFNob2RIUndjem92TDJWdUxuZHBhMmx3WldScFlTNXZjbWN2ZDJscmFTOURiMjFpYVc1cGJtZGZSR2xoWTNKcGRHbGpZV3hmVFdGeWEzTmZabTl5WDFONWJXSnZiSE1wTGx4dUlDQWdLaTljYmlBZ2RtRnlJSEpsUTI5dFltOU5ZWEpySUQwZ1VtVm5SWGh3S0hKelEyOXRZbThzSUNkbkp5azdYRzVjYmlBZ0x5b3FJRlZ6WldRZ2RHOGdiV0YwWTJnZ1czTjBjbWx1WnlCemVXMWliMnh6WFNob2RIUndjem92TDIxaGRHaHBZWE5pZVc1bGJuTXVZbVV2Ym05MFpYTXZhbUYyWVhOamNtbHdkQzExYm1samIyUmxLUzRnS2k5Y2JpQWdkbUZ5SUhKbFZXNXBZMjlrWlNBOUlGSmxaMFY0Y0NoeWMwWnBkSG9nS3lBbktEODlKeUFySUhKelJtbDBlaUFySUNjcGZDY2dLeUJ5YzFONWJXSnZiQ0FySUhKelUyVnhMQ0FuWnljcE8xeHVYRzRnSUM4cUtpQlZjMlZrSUhSdklHMWhkR05vSUdOdmJYQnNaWGdnYjNJZ1kyOXRjRzkxYm1RZ2QyOXlaSE11SUNvdlhHNGdJSFpoY2lCeVpWVnVhV052WkdWWGIzSmtJRDBnVW1WblJYaHdLRnRjYmlBZ0lDQnljMVZ3Y0dWeUlDc2dKejhuSUNzZ2NuTk1iM2RsY2lBcklDY3JKeUFySUhKelQzQjBRMjl1ZEhKTWIzZGxjaUFySUNjb1B6MG5JQ3NnVzNKelFuSmxZV3NzSUhKelZYQndaWElzSUNja0oxMHVhbTlwYmlnbmZDY3BJQ3NnSnlrbkxGeHVJQ0FnSUhKelRXbHpZMVZ3Y0dWeUlDc2dKeXNuSUNzZ2NuTlBjSFJEYjI1MGNsVndjR1Z5SUNzZ0p5Zy9QU2NnS3lCYmNuTkNjbVZoYXl3Z2NuTlZjSEJsY2lBcklISnpUV2x6WTB4dmQyVnlMQ0FuSkNkZExtcHZhVzRvSjN3bktTQXJJQ2NwSnl4Y2JpQWdJQ0J5YzFWd2NHVnlJQ3NnSno4bklDc2djbk5OYVhOalRHOTNaWElnS3lBbkt5Y2dLeUJ5YzA5d2RFTnZiblJ5VEc5M1pYSXNYRzRnSUNBZ2NuTlZjSEJsY2lBcklDY3JKeUFySUhKelQzQjBRMjl1ZEhKVmNIQmxjaXhjYmlBZ0lDQnljMDl5WkZWd2NHVnlMRnh1SUNBZ0lISnpUM0prVEc5M1pYSXNYRzRnSUNBZ2NuTkVhV2RwZEhNc1hHNGdJQ0FnY25ORmJXOXFhVnh1SUNCZExtcHZhVzRvSjN3bktTd2dKMmNuS1R0Y2JseHVJQ0F2S2lvZ1ZYTmxaQ0IwYnlCa1pYUmxZM1FnYzNSeWFXNW5jeUIzYVhSb0lGdDZaWEp2TFhkcFpIUm9JR3B2YVc1bGNuTWdiM0lnWTI5a1pTQndiMmx1ZEhNZ1puSnZiU0IwYUdVZ1lYTjBjbUZzSUhCc1lXNWxjMTBvYUhSMGNEb3ZMMlZsZGk1bFpTOWliRzluTHpJd01UVXZNRGt2TVRJdlpHRnlheTFqYjNKdVpYSnpMVzltTFhWdWFXTnZaR1V2S1M0Z0tpOWNiaUFnZG1GeUlISmxTR0Z6Vlc1cFkyOWtaU0E5SUZKbFowVjRjQ2duV3ljZ0t5QnljMXBYU2lBcklISnpRWE4wY21Gc1VtRnVaMlVnSUNzZ2NuTkRiMjFpYjFKaGJtZGxJQ3NnY25OV1lYSlNZVzVuWlNBcklDZGRKeWs3WEc1Y2JpQWdMeW9xSUZWelpXUWdkRzhnWkdWMFpXTjBJSE4wY21sdVozTWdkR2hoZENCdVpXVmtJR0VnYlc5eVpTQnliMkoxYzNRZ2NtVm5aWGh3SUhSdklHMWhkR05vSUhkdmNtUnpMaUFxTDF4dUlDQjJZWElnY21WSVlYTlZibWxqYjJSbFYyOXlaQ0E5SUM5YllTMTZYVnRCTFZwZGZGdEJMVnBkZXpKOVcyRXRlbDE4V3pBdE9WMWJZUzE2UVMxYVhYeGJZUzE2UVMxYVhWc3dMVGxkZkZ0ZVlTMTZRUzFhTUMwNUlGMHZPMXh1WEc0Z0lDOHFLaUJWYzJWa0lIUnZJR0Z6YzJsbmJpQmtaV1poZFd4MElHQmpiMjUwWlhoMFlDQnZZbXBsWTNRZ2NISnZjR1Z5ZEdsbGN5NGdLaTljYmlBZ2RtRnlJR052Ym5SbGVIUlFjbTl3Y3lBOUlGdGNiaUFnSUNBblFYSnlZWGtuTENBblFuVm1abVZ5Snl3Z0owUmhkR0ZXYVdWM0p5d2dKMFJoZEdVbkxDQW5SWEp5YjNJbkxDQW5SbXh2WVhRek1rRnljbUY1Snl3Z0owWnNiMkYwTmpSQmNuSmhlU2NzWEc0Z0lDQWdKMFoxYm1OMGFXOXVKeXdnSjBsdWREaEJjbkpoZVNjc0lDZEpiblF4TmtGeWNtRjVKeXdnSjBsdWRETXlRWEp5WVhrbkxDQW5UV0Z3Snl3Z0owMWhkR2duTENBblQySnFaV04wSnl4Y2JpQWdJQ0FuVUhKdmJXbHpaU2NzSUNkU1pXZEZlSEFuTENBblUyVjBKeXdnSjFOMGNtbHVaeWNzSUNkVGVXMWliMnduTENBblZIbHdaVVZ5Y205eUp5d2dKMVZwYm5RNFFYSnlZWGtuTEZ4dUlDQWdJQ2RWYVc1ME9FTnNZVzF3WldSQmNuSmhlU2NzSUNkVmFXNTBNVFpCY25KaGVTY3NJQ2RWYVc1ME16SkJjbkpoZVNjc0lDZFhaV0ZyVFdGd0p5eGNiaUFnSUNBblh5Y3NJQ2RqYkdWaGNsUnBiV1Z2ZFhRbkxDQW5hWE5HYVc1cGRHVW5MQ0FuY0dGeWMyVkpiblFuTENBbmMyVjBWR2x0Wlc5MWRDZGNiaUFnWFR0Y2JseHVJQ0F2S2lvZ1ZYTmxaQ0IwYnlCdFlXdGxJSFJsYlhCc1lYUmxJSE52ZFhKalpWVlNUSE1nWldGemFXVnlJSFJ2SUdsa1pXNTBhV1o1TGlBcUwxeHVJQ0IyWVhJZ2RHVnRjR3hoZEdWRGIzVnVkR1Z5SUQwZ0xURTdYRzVjYmlBZ0x5b3FJRlZ6WldRZ2RHOGdhV1JsYm5ScFpua2dZSFJ2VTNSeWFXNW5WR0ZuWUNCMllXeDFaWE1nYjJZZ2RIbHdaV1FnWVhKeVlYbHpMaUFxTDF4dUlDQjJZWElnZEhsd1pXUkJjbkpoZVZSaFozTWdQU0I3ZlR0Y2JpQWdkSGx3WldSQmNuSmhlVlJoWjNOYlpteHZZWFF6TWxSaFoxMGdQU0IwZVhCbFpFRnljbUY1VkdGbmMxdG1iRzloZERZMFZHRm5YU0E5WEc0Z0lIUjVjR1ZrUVhKeVlYbFVZV2R6VzJsdWREaFVZV2RkSUQwZ2RIbHdaV1JCY25KaGVWUmhaM05iYVc1ME1UWlVZV2RkSUQxY2JpQWdkSGx3WldSQmNuSmhlVlJoWjNOYmFXNTBNekpVWVdkZElEMGdkSGx3WldSQmNuSmhlVlJoWjNOYmRXbHVkRGhVWVdkZElEMWNiaUFnZEhsd1pXUkJjbkpoZVZSaFozTmJkV2x1ZERoRGJHRnRjR1ZrVkdGblhTQTlJSFI1Y0dWa1FYSnlZWGxVWVdkelczVnBiblF4TmxSaFoxMGdQVnh1SUNCMGVYQmxaRUZ5Y21GNVZHRm5jMXQxYVc1ME16SlVZV2RkSUQwZ2RISjFaVHRjYmlBZ2RIbHdaV1JCY25KaGVWUmhaM05iWVhKbmMxUmhaMTBnUFNCMGVYQmxaRUZ5Y21GNVZHRm5jMXRoY25KaGVWUmhaMTBnUFZ4dUlDQjBlWEJsWkVGeWNtRjVWR0ZuYzF0aGNuSmhlVUoxWm1abGNsUmhaMTBnUFNCMGVYQmxaRUZ5Y21GNVZHRm5jMXRpYjI5c1ZHRm5YU0E5WEc0Z0lIUjVjR1ZrUVhKeVlYbFVZV2R6VzJSaGRHRldhV1YzVkdGblhTQTlJSFI1Y0dWa1FYSnlZWGxVWVdkelcyUmhkR1ZVWVdkZElEMWNiaUFnZEhsd1pXUkJjbkpoZVZSaFozTmJaWEp5YjNKVVlXZGRJRDBnZEhsd1pXUkJjbkpoZVZSaFozTmJablZ1WTFSaFoxMGdQVnh1SUNCMGVYQmxaRUZ5Y21GNVZHRm5jMXR0WVhCVVlXZGRJRDBnZEhsd1pXUkJjbkpoZVZSaFozTmJiblZ0WW1WeVZHRm5YU0E5WEc0Z0lIUjVjR1ZrUVhKeVlYbFVZV2R6VzI5aWFtVmpkRlJoWjEwZ1BTQjBlWEJsWkVGeWNtRjVWR0ZuYzF0eVpXZGxlSEJVWVdkZElEMWNiaUFnZEhsd1pXUkJjbkpoZVZSaFozTmJjMlYwVkdGblhTQTlJSFI1Y0dWa1FYSnlZWGxVWVdkelczTjBjbWx1WjFSaFoxMGdQVnh1SUNCMGVYQmxaRUZ5Y21GNVZHRm5jMXQzWldGclRXRndWR0ZuWFNBOUlHWmhiSE5sTzF4dVhHNGdJQzhxS2lCVmMyVmtJSFJ2SUdsa1pXNTBhV1o1SUdCMGIxTjBjbWx1WjFSaFoyQWdkbUZzZFdWeklITjFjSEJ2Y25SbFpDQmllU0JnWHk1amJHOXVaV0F1SUNvdlhHNGdJSFpoY2lCamJHOXVaV0ZpYkdWVVlXZHpJRDBnZTMwN1hHNGdJR05zYjI1bFlXSnNaVlJoWjNOYllYSm5jMVJoWjEwZ1BTQmpiRzl1WldGaWJHVlVZV2R6VzJGeWNtRjVWR0ZuWFNBOVhHNGdJR05zYjI1bFlXSnNaVlJoWjNOYllYSnlZWGxDZFdabVpYSlVZV2RkSUQwZ1kyeHZibVZoWW14bFZHRm5jMXRrWVhSaFZtbGxkMVJoWjEwZ1BWeHVJQ0JqYkc5dVpXRmliR1ZVWVdkelcySnZiMnhVWVdkZElEMGdZMnh2Ym1WaFlteGxWR0ZuYzF0a1lYUmxWR0ZuWFNBOVhHNGdJR05zYjI1bFlXSnNaVlJoWjNOYlpteHZZWFF6TWxSaFoxMGdQU0JqYkc5dVpXRmliR1ZVWVdkelcyWnNiMkYwTmpSVVlXZGRJRDFjYmlBZ1kyeHZibVZoWW14bFZHRm5jMXRwYm5RNFZHRm5YU0E5SUdOc2IyNWxZV0pzWlZSaFozTmJhVzUwTVRaVVlXZGRJRDFjYmlBZ1kyeHZibVZoWW14bFZHRm5jMXRwYm5Rek1sUmhaMTBnUFNCamJHOXVaV0ZpYkdWVVlXZHpXMjFoY0ZSaFoxMGdQVnh1SUNCamJHOXVaV0ZpYkdWVVlXZHpXMjUxYldKbGNsUmhaMTBnUFNCamJHOXVaV0ZpYkdWVVlXZHpXMjlpYW1WamRGUmhaMTBnUFZ4dUlDQmpiRzl1WldGaWJHVlVZV2R6VzNKbFoyVjRjRlJoWjEwZ1BTQmpiRzl1WldGaWJHVlVZV2R6VzNObGRGUmhaMTBnUFZ4dUlDQmpiRzl1WldGaWJHVlVZV2R6VzNOMGNtbHVaMVJoWjEwZ1BTQmpiRzl1WldGaWJHVlVZV2R6VzNONWJXSnZiRlJoWjEwZ1BWeHVJQ0JqYkc5dVpXRmliR1ZVWVdkelczVnBiblE0VkdGblhTQTlJR05zYjI1bFlXSnNaVlJoWjNOYmRXbHVkRGhEYkdGdGNHVmtWR0ZuWFNBOVhHNGdJR05zYjI1bFlXSnNaVlJoWjNOYmRXbHVkREUyVkdGblhTQTlJR05zYjI1bFlXSnNaVlJoWjNOYmRXbHVkRE15VkdGblhTQTlJSFJ5ZFdVN1hHNGdJR05zYjI1bFlXSnNaVlJoWjNOYlpYSnliM0pVWVdkZElEMGdZMnh2Ym1WaFlteGxWR0ZuYzF0bWRXNWpWR0ZuWFNBOVhHNGdJR05zYjI1bFlXSnNaVlJoWjNOYmQyVmhhMDFoY0ZSaFoxMGdQU0JtWVd4elpUdGNibHh1SUNBdktpb2dWWE5sWkNCMGJ5QnRZWEFnVEdGMGFXNGdWVzVwWTI5a1pTQnNaWFIwWlhKeklIUnZJR0poYzJsaklFeGhkR2x1SUd4bGRIUmxjbk11SUNvdlhHNGdJSFpoY2lCa1pXSjFjbkpsWkV4bGRIUmxjbk1nUFNCN1hHNGdJQ0FnTHk4Z1RHRjBhVzR0TVNCVGRYQndiR1Z0Wlc1MElHSnNiMk5yTGx4dUlDQWdJQ2RjWEhoak1DYzZJQ2RCSnl3Z0lDZGNYSGhqTVNjNklDZEJKeXdnSjF4Y2VHTXlKem9nSjBFbkxDQW5YRng0WXpNbk9pQW5RU2NzSUNkY1hIaGpOQ2M2SUNkQkp5d2dKMXhjZUdNMUp6b2dKMEVuTEZ4dUlDQWdJQ2RjWEhobE1DYzZJQ2RoSnl3Z0lDZGNYSGhsTVNjNklDZGhKeXdnSjF4Y2VHVXlKem9nSjJFbkxDQW5YRng0WlRNbk9pQW5ZU2NzSUNkY1hIaGxOQ2M2SUNkaEp5d2dKMXhjZUdVMUp6b2dKMkVuTEZ4dUlDQWdJQ2RjWEhoak55YzZJQ2RESnl3Z0lDZGNYSGhsTnljNklDZGpKeXhjYmlBZ0lDQW5YRng0WkRBbk9pQW5SQ2NzSUNBblhGeDRaakFuT2lBblpDY3NYRzRnSUNBZ0oxeGNlR000SnpvZ0owVW5MQ0FnSjF4Y2VHTTVKem9nSjBVbkxDQW5YRng0WTJFbk9pQW5SU2NzSUNkY1hIaGpZaWM2SUNkRkp5eGNiaUFnSUNBblhGeDRaVGduT2lBblpTY3NJQ0FuWEZ4NFpUa25PaUFuWlNjc0lDZGNYSGhsWVNjNklDZGxKeXdnSjF4Y2VHVmlKem9nSjJVbkxGeHVJQ0FnSUNkY1hIaGpZeWM2SUNkSkp5d2dJQ2RjWEhoalpDYzZJQ2RKSnl3Z0oxeGNlR05sSnpvZ0owa25MQ0FuWEZ4NFkyWW5PaUFuU1Njc1hHNGdJQ0FnSjF4Y2VHVmpKem9nSjJrbkxDQWdKMXhjZUdWa0p6b2dKMmtuTENBblhGeDRaV1VuT2lBbmFTY3NJQ2RjWEhobFppYzZJQ2RwSnl4Y2JpQWdJQ0FuWEZ4NFpERW5PaUFuVGljc0lDQW5YRng0WmpFbk9pQW5iaWNzWEc0Z0lDQWdKMXhjZUdReUp6b2dKMDhuTENBZ0oxeGNlR1F6SnpvZ0owOG5MQ0FuWEZ4NFpEUW5PaUFuVHljc0lDZGNYSGhrTlNjNklDZFBKeXdnSjF4Y2VHUTJKem9nSjA4bkxDQW5YRng0WkRnbk9pQW5UeWNzWEc0Z0lDQWdKMXhjZUdZeUp6b2dKMjhuTENBZ0oxeGNlR1l6SnpvZ0oyOG5MQ0FuWEZ4NFpqUW5PaUFuYnljc0lDZGNYSGhtTlNjNklDZHZKeXdnSjF4Y2VHWTJKem9nSjI4bkxDQW5YRng0Wmpnbk9pQW5ieWNzWEc0Z0lDQWdKMXhjZUdRNUp6b2dKMVVuTENBZ0oxeGNlR1JoSnpvZ0oxVW5MQ0FuWEZ4NFpHSW5PaUFuVlNjc0lDZGNYSGhrWXljNklDZFZKeXhjYmlBZ0lDQW5YRng0Wmprbk9pQW5kU2NzSUNBblhGeDRabUVuT2lBbmRTY3NJQ2RjWEhobVlpYzZJQ2QxSnl3Z0oxeGNlR1pqSnpvZ0ozVW5MRnh1SUNBZ0lDZGNYSGhrWkNjNklDZFpKeXdnSUNkY1hIaG1aQ2M2SUNkNUp5d2dKMXhjZUdabUp6b2dKM2tuTEZ4dUlDQWdJQ2RjWEhoak5pYzZJQ2RCWlNjc0lDZGNYSGhsTmljNklDZGhaU2NzWEc0Z0lDQWdKMXhjZUdSbEp6b2dKMVJvSnl3Z0oxeGNlR1psSnpvZ0ozUm9KeXhjYmlBZ0lDQW5YRng0WkdZbk9pQW5jM01uTEZ4dUlDQWdJQzh2SUV4aGRHbHVJRVY0ZEdWdVpHVmtMVUVnWW14dlkyc3VYRzRnSUNBZ0oxeGNkVEF4TURBbk9pQW5RU2NzSUNBblhGeDFNREV3TWljNklDZEJKeXdnSjF4Y2RUQXhNRFFuT2lBblFTY3NYRzRnSUNBZ0oxeGNkVEF4TURFbk9pQW5ZU2NzSUNBblhGeDFNREV3TXljNklDZGhKeXdnSjF4Y2RUQXhNRFVuT2lBbllTY3NYRzRnSUNBZ0oxeGNkVEF4TURZbk9pQW5ReWNzSUNBblhGeDFNREV3T0NjNklDZERKeXdnSjF4Y2RUQXhNR0VuT2lBblF5Y3NJQ2RjWEhVd01UQmpKem9nSjBNbkxGeHVJQ0FnSUNkY1hIVXdNVEEzSnpvZ0oyTW5MQ0FnSjF4Y2RUQXhNRGtuT2lBbll5Y3NJQ2RjWEhVd01UQmlKem9nSjJNbkxDQW5YRngxTURFd1pDYzZJQ2RqSnl4Y2JpQWdJQ0FuWEZ4MU1ERXdaU2M2SUNkRUp5d2dJQ2RjWEhVd01URXdKem9nSjBRbkxDQW5YRngxTURFd1ppYzZJQ2RrSnl3Z0oxeGNkVEF4TVRFbk9pQW5aQ2NzWEc0Z0lDQWdKMXhjZFRBeE1USW5PaUFuUlNjc0lDQW5YRngxTURFeE5DYzZJQ2RGSnl3Z0oxeGNkVEF4TVRZbk9pQW5SU2NzSUNkY1hIVXdNVEU0SnpvZ0owVW5MQ0FuWEZ4MU1ERXhZU2M2SUNkRkp5eGNiaUFnSUNBblhGeDFNREV4TXljNklDZGxKeXdnSUNkY1hIVXdNVEUxSnpvZ0oyVW5MQ0FuWEZ4MU1ERXhOeWM2SUNkbEp5d2dKMXhjZFRBeE1Ua25PaUFuWlNjc0lDZGNYSFV3TVRGaUp6b2dKMlVuTEZ4dUlDQWdJQ2RjWEhVd01URmpKem9nSjBjbkxDQWdKMXhjZFRBeE1XVW5PaUFuUnljc0lDZGNYSFV3TVRJd0p6b2dKMGNuTENBblhGeDFNREV5TWljNklDZEhKeXhjYmlBZ0lDQW5YRngxTURFeFpDYzZJQ2RuSnl3Z0lDZGNYSFV3TVRGbUp6b2dKMmNuTENBblhGeDFNREV5TVNjNklDZG5KeXdnSjF4Y2RUQXhNak1uT2lBblp5Y3NYRzRnSUNBZ0oxeGNkVEF4TWpRbk9pQW5TQ2NzSUNBblhGeDFNREV5TmljNklDZElKeXdnSjF4Y2RUQXhNalVuT2lBbmFDY3NJQ2RjWEhVd01USTNKem9nSjJnbkxGeHVJQ0FnSUNkY1hIVXdNVEk0SnpvZ0owa25MQ0FnSjF4Y2RUQXhNbUVuT2lBblNTY3NJQ2RjWEhVd01USmpKem9nSjBrbkxDQW5YRngxTURFeVpTYzZJQ2RKSnl3Z0oxeGNkVEF4TXpBbk9pQW5TU2NzWEc0Z0lDQWdKMXhjZFRBeE1qa25PaUFuYVNjc0lDQW5YRngxTURFeVlpYzZJQ2RwSnl3Z0oxeGNkVEF4TW1Rbk9pQW5hU2NzSUNkY1hIVXdNVEptSnpvZ0oya25MQ0FuWEZ4MU1ERXpNU2M2SUNkcEp5eGNiaUFnSUNBblhGeDFNREV6TkNjNklDZEtKeXdnSUNkY1hIVXdNVE0xSnpvZ0oyb25MRnh1SUNBZ0lDZGNYSFV3TVRNMkp6b2dKMHNuTENBZ0oxeGNkVEF4TXpjbk9pQW5heWNzSUNkY1hIVXdNVE00SnpvZ0oyc25MRnh1SUNBZ0lDZGNYSFV3TVRNNUp6b2dKMHduTENBZ0oxeGNkVEF4TTJJbk9pQW5UQ2NzSUNkY1hIVXdNVE5rSnpvZ0owd25MQ0FuWEZ4MU1ERXpaaWM2SUNkTUp5d2dKMXhjZFRBeE5ERW5PaUFuVENjc1hHNGdJQ0FnSjF4Y2RUQXhNMkVuT2lBbmJDY3NJQ0FuWEZ4MU1ERXpZeWM2SUNkc0p5d2dKMXhjZFRBeE0yVW5PaUFuYkNjc0lDZGNYSFV3TVRRd0p6b2dKMnduTENBblhGeDFNREUwTWljNklDZHNKeXhjYmlBZ0lDQW5YRngxTURFME15YzZJQ2RPSnl3Z0lDZGNYSFV3TVRRMUp6b2dKMDRuTENBblhGeDFNREUwTnljNklDZE9KeXdnSjF4Y2RUQXhOR0VuT2lBblRpY3NYRzRnSUNBZ0oxeGNkVEF4TkRRbk9pQW5iaWNzSUNBblhGeDFNREUwTmljNklDZHVKeXdnSjF4Y2RUQXhORGduT2lBbmJpY3NJQ2RjWEhVd01UUmlKem9nSjI0bkxGeHVJQ0FnSUNkY1hIVXdNVFJqSnpvZ0owOG5MQ0FnSjF4Y2RUQXhOR1VuT2lBblR5Y3NJQ2RjWEhVd01UVXdKem9nSjA4bkxGeHVJQ0FnSUNkY1hIVXdNVFJrSnpvZ0oyOG5MQ0FnSjF4Y2RUQXhOR1luT2lBbmJ5Y3NJQ2RjWEhVd01UVXhKem9nSjI4bkxGeHVJQ0FnSUNkY1hIVXdNVFUwSnpvZ0oxSW5MQ0FnSjF4Y2RUQXhOVFluT2lBblVpY3NJQ2RjWEhVd01UVTRKem9nSjFJbkxGeHVJQ0FnSUNkY1hIVXdNVFUxSnpvZ0ozSW5MQ0FnSjF4Y2RUQXhOVGNuT2lBbmNpY3NJQ2RjWEhVd01UVTVKem9nSjNJbkxGeHVJQ0FnSUNkY1hIVXdNVFZoSnpvZ0oxTW5MQ0FnSjF4Y2RUQXhOV01uT2lBblV5Y3NJQ2RjWEhVd01UVmxKem9nSjFNbkxDQW5YRngxTURFMk1DYzZJQ2RUSnl4Y2JpQWdJQ0FuWEZ4MU1ERTFZaWM2SUNkekp5d2dJQ2RjWEhVd01UVmtKem9nSjNNbkxDQW5YRngxTURFMVppYzZJQ2R6Snl3Z0oxeGNkVEF4TmpFbk9pQW5jeWNzWEc0Z0lDQWdKMXhjZFRBeE5qSW5PaUFuVkNjc0lDQW5YRngxTURFMk5DYzZJQ2RVSnl3Z0oxeGNkVEF4TmpZbk9pQW5WQ2NzWEc0Z0lDQWdKMXhjZFRBeE5qTW5PaUFuZENjc0lDQW5YRngxTURFMk5TYzZJQ2QwSnl3Z0oxeGNkVEF4Tmpjbk9pQW5kQ2NzWEc0Z0lDQWdKMXhjZFRBeE5qZ25PaUFuVlNjc0lDQW5YRngxTURFMllTYzZJQ2RWSnl3Z0oxeGNkVEF4Tm1Nbk9pQW5WU2NzSUNkY1hIVXdNVFpsSnpvZ0oxVW5MQ0FuWEZ4MU1ERTNNQ2M2SUNkVkp5d2dKMXhjZFRBeE56SW5PaUFuVlNjc1hHNGdJQ0FnSjF4Y2RUQXhOamtuT2lBbmRTY3NJQ0FuWEZ4MU1ERTJZaWM2SUNkMUp5d2dKMXhjZFRBeE5tUW5PaUFuZFNjc0lDZGNYSFV3TVRabUp6b2dKM1VuTENBblhGeDFNREUzTVNjNklDZDFKeXdnSjF4Y2RUQXhOek1uT2lBbmRTY3NYRzRnSUNBZ0oxeGNkVEF4TnpRbk9pQW5WeWNzSUNBblhGeDFNREUzTlNjNklDZDNKeXhjYmlBZ0lDQW5YRngxTURFM05pYzZJQ2RaSnl3Z0lDZGNYSFV3TVRjM0p6b2dKM2tuTENBblhGeDFNREUzT0NjNklDZFpKeXhjYmlBZ0lDQW5YRngxTURFM09TYzZJQ2RhSnl3Z0lDZGNYSFV3TVRkaUp6b2dKMW9uTENBblhGeDFNREUzWkNjNklDZGFKeXhjYmlBZ0lDQW5YRngxTURFM1lTYzZJQ2Q2Snl3Z0lDZGNYSFV3TVRkakp6b2dKM29uTENBblhGeDFNREUzWlNjNklDZDZKeXhjYmlBZ0lDQW5YRngxTURFek1pYzZJQ2RKU2ljc0lDZGNYSFV3TVRNekp6b2dKMmxxSnl4Y2JpQWdJQ0FuWEZ4MU1ERTFNaWM2SUNkUFpTY3NJQ2RjWEhVd01UVXpKem9nSjI5bEp5eGNiaUFnSUNBblhGeDFNREUwT1NjNklGd2lKMjVjSWl3Z0oxeGNkVEF4TjJZbk9pQW5jeWRjYmlBZ2ZUdGNibHh1SUNBdktpb2dWWE5sWkNCMGJ5QnRZWEFnWTJoaGNtRmpkR1Z5Y3lCMGJ5QklWRTFNSUdWdWRHbDBhV1Z6TGlBcUwxeHVJQ0IyWVhJZ2FIUnRiRVZ6WTJGd1pYTWdQU0I3WEc0Z0lDQWdKeVluT2lBbkptRnRjRHNuTEZ4dUlDQWdJQ2M4SnpvZ0p5WnNkRHNuTEZ4dUlDQWdJQ2MrSnpvZ0p5Wm5kRHNuTEZ4dUlDQWdJQ2RjSWljNklDY21jWFZ2ZERzbkxGeHVJQ0FnSUZ3aUoxd2lPaUFuSmlNek9Uc25YRzRnSUgwN1hHNWNiaUFnTHlvcUlGVnpaV1FnZEc4Z2JXRndJRWhVVFV3Z1pXNTBhWFJwWlhNZ2RHOGdZMmhoY21GamRHVnljeTRnS2k5Y2JpQWdkbUZ5SUdoMGJXeFZibVZ6WTJGd1pYTWdQU0I3WEc0Z0lDQWdKeVpoYlhBN0p6b2dKeVluTEZ4dUlDQWdJQ2NtYkhRN0p6b2dKenduTEZ4dUlDQWdJQ2NtWjNRN0p6b2dKejRuTEZ4dUlDQWdJQ2NtY1hWdmREc25PaUFuWENJbkxGeHVJQ0FnSUNjbUl6TTVPeWM2SUZ3aUoxd2lYRzRnSUgwN1hHNWNiaUFnTHlvcUlGVnpaV1FnZEc4Z1pYTmpZWEJsSUdOb1lYSmhZM1JsY25NZ1ptOXlJR2x1WTJ4MWMybHZiaUJwYmlCamIyMXdhV3hsWkNCemRISnBibWNnYkdsMFpYSmhiSE11SUNvdlhHNGdJSFpoY2lCemRISnBibWRGYzJOaGNHVnpJRDBnZTF4dUlDQWdJQ2RjWEZ4Y0p6b2dKMXhjWEZ3bkxGeHVJQ0FnSUZ3aUoxd2lPaUJjSWlkY0lpeGNiaUFnSUNBblhGeHVKem9nSjI0bkxGeHVJQ0FnSUNkY1hISW5PaUFuY2ljc1hHNGdJQ0FnSjF4Y2RUSXdNamduT2lBbmRUSXdNamduTEZ4dUlDQWdJQ2RjWEhVeU1ESTVKem9nSjNVeU1ESTVKMXh1SUNCOU8xeHVYRzRnSUM4cUtpQkNkV2xzZEMxcGJpQnRaWFJvYjJRZ2NtVm1aWEpsYm1ObGN5QjNhWFJvYjNWMElHRWdaR1Z3Wlc1a1pXNWplU0J2YmlCZ2NtOXZkR0F1SUNvdlhHNGdJSFpoY2lCbWNtVmxVR0Z5YzJWR2JHOWhkQ0E5SUhCaGNuTmxSbXh2WVhRc1hHNGdJQ0FnSUNCbWNtVmxVR0Z5YzJWSmJuUWdQU0J3WVhKelpVbHVkRHRjYmx4dUlDQXZLaW9nUkdWMFpXTjBJR1p5WldVZ2RtRnlhV0ZpYkdVZ1lHZHNiMkpoYkdBZ1puSnZiU0JPYjJSbExtcHpMaUFxTDF4dUlDQjJZWElnWm5KbFpVZHNiMkpoYkNBOUlIUjVjR1Z2WmlCbmJHOWlZV3dnUFQwZ0oyOWlhbVZqZENjZ0ppWWdaMnh2WW1Gc0lDWW1JR2RzYjJKaGJDNVBZbXBsWTNRZ1BUMDlJRTlpYW1WamRDQW1KaUJuYkc5aVlXdzdYRzVjYmlBZ0x5b3FJRVJsZEdWamRDQm1jbVZsSUhaaGNtbGhZbXhsSUdCelpXeG1ZQzRnS2k5Y2JpQWdkbUZ5SUdaeVpXVlRaV3htSUQwZ2RIbHdaVzltSUhObGJHWWdQVDBnSjI5aWFtVmpkQ2NnSmlZZ2MyVnNaaUFtSmlCelpXeG1MazlpYW1WamRDQTlQVDBnVDJKcVpXTjBJQ1ltSUhObGJHWTdYRzVjYmlBZ0x5b3FJRlZ6WldRZ1lYTWdZU0J5WldabGNtVnVZMlVnZEc4Z2RHaGxJR2RzYjJKaGJDQnZZbXBsWTNRdUlDb3ZYRzRnSUhaaGNpQnliMjkwSUQwZ1puSmxaVWRzYjJKaGJDQjhmQ0JtY21WbFUyVnNaaUI4ZkNCR2RXNWpkR2x2YmlnbmNtVjBkWEp1SUhSb2FYTW5LU2dwTzF4dVhHNGdJQzhxS2lCRVpYUmxZM1FnWm5KbFpTQjJZWEpwWVdKc1pTQmdaWGh3YjNKMGMyQXVJQ292WEc0Z0lIWmhjaUJtY21WbFJYaHdiM0owY3lBOUlIUjVjR1Z2WmlCbGVIQnZjblJ6SUQwOUlDZHZZbXBsWTNRbklDWW1JR1Y0Y0c5eWRITWdKaVlnSVdWNGNHOXlkSE11Ym05a1pWUjVjR1VnSmlZZ1pYaHdiM0owY3p0Y2JseHVJQ0F2S2lvZ1JHVjBaV04wSUdaeVpXVWdkbUZ5YVdGaWJHVWdZRzF2WkhWc1pXQXVJQ292WEc0Z0lIWmhjaUJtY21WbFRXOWtkV3hsSUQwZ1puSmxaVVY0Y0c5eWRITWdKaVlnZEhsd1pXOW1JRzF2WkhWc1pTQTlQU0FuYjJKcVpXTjBKeUFtSmlCdGIyUjFiR1VnSmlZZ0lXMXZaSFZzWlM1dWIyUmxWSGx3WlNBbUppQnRiMlIxYkdVN1hHNWNiaUFnTHlvcUlFUmxkR1ZqZENCMGFHVWdjRzl3ZFd4aGNpQkRiMjF0YjI1S1V5QmxlSFJsYm5OcGIyNGdZRzF2WkhWc1pTNWxlSEJ2Y25SellDNGdLaTljYmlBZ2RtRnlJRzF2WkhWc1pVVjRjRzl5ZEhNZ1BTQm1jbVZsVFc5a2RXeGxJQ1ltSUdaeVpXVk5iMlIxYkdVdVpYaHdiM0owY3lBOVBUMGdabkpsWlVWNGNHOXlkSE03WEc1Y2JpQWdMeW9xSUVSbGRHVmpkQ0JtY21WbElIWmhjbWxoWW14bElHQndjbTlqWlhOellDQm1jbTl0SUU1dlpHVXVhbk11SUNvdlhHNGdJSFpoY2lCbWNtVmxVSEp2WTJWemN5QTlJRzF2WkhWc1pVVjRjRzl5ZEhNZ0ppWWdabkpsWlVkc2IySmhiQzV3Y205alpYTnpPMXh1WEc0Z0lDOHFLaUJWYzJWa0lIUnZJR0ZqWTJWemN5Qm1ZWE4wWlhJZ1RtOWtaUzVxY3lCb1pXeHdaWEp6TGlBcUwxeHVJQ0IyWVhJZ2JtOWtaVlYwYVd3Z1BTQW9ablZ1WTNScGIyNG9LU0I3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUM4dklGVnpaU0JnZFhScGJDNTBlWEJsYzJBZ1ptOXlJRTV2WkdVdWFuTWdNVEFyTGx4dUlDQWdJQ0FnZG1GeUlIUjVjR1Z6SUQwZ1puSmxaVTF2WkhWc1pTQW1KaUJtY21WbFRXOWtkV3hsTG5KbGNYVnBjbVVnSmlZZ1puSmxaVTF2WkhWc1pTNXlaWEYxYVhKbEtDZDFkR2xzSnlrdWRIbHdaWE03WEc1Y2JpQWdJQ0FnSUdsbUlDaDBlWEJsY3lrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RIbHdaWE03WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUM4dklFeGxaMkZqZVNCZ2NISnZZMlZ6Y3k1aWFXNWthVzVuS0NkMWRHbHNKeWxnSUdadmNpQk9iMlJsTG1weklEd2dNVEF1WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabkpsWlZCeWIyTmxjM01nSmlZZ1puSmxaVkJ5YjJObGMzTXVZbWx1WkdsdVp5QW1KaUJtY21WbFVISnZZMlZ6Y3k1aWFXNWthVzVuS0NkMWRHbHNKeWs3WEc0Z0lDQWdmU0JqWVhSamFDQW9aU2tnZTMxY2JpQWdmU2dwS1R0Y2JseHVJQ0F2S2lCT2IyUmxMbXB6SUdobGJIQmxjaUJ5WldabGNtVnVZMlZ6TGlBcUwxeHVJQ0IyWVhJZ2JtOWtaVWx6UVhKeVlYbENkV1ptWlhJZ1BTQnViMlJsVlhScGJDQW1KaUJ1YjJSbFZYUnBiQzVwYzBGeWNtRjVRblZtWm1WeUxGeHVJQ0FnSUNBZ2JtOWtaVWx6UkdGMFpTQTlJRzV2WkdWVmRHbHNJQ1ltSUc1dlpHVlZkR2xzTG1selJHRjBaU3hjYmlBZ0lDQWdJRzV2WkdWSmMwMWhjQ0E5SUc1dlpHVlZkR2xzSUNZbUlHNXZaR1ZWZEdsc0xtbHpUV0Z3TEZ4dUlDQWdJQ0FnYm05a1pVbHpVbVZuUlhod0lEMGdibTlrWlZWMGFXd2dKaVlnYm05a1pWVjBhV3d1YVhOU1pXZEZlSEFzWEc0Z0lDQWdJQ0J1YjJSbFNYTlRaWFFnUFNCdWIyUmxWWFJwYkNBbUppQnViMlJsVlhScGJDNXBjMU5sZEN4Y2JpQWdJQ0FnSUc1dlpHVkpjMVI1Y0dWa1FYSnlZWGtnUFNCdWIyUmxWWFJwYkNBbUppQnViMlJsVlhScGJDNXBjMVI1Y0dWa1FYSnlZWGs3WEc1Y2JpQWdMeW90TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFNvdlhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVFZ1ptRnpkR1Z5SUdGc2RHVnlibUYwYVhabElIUnZJR0JHZFc1amRHbHZiaU5oY0hCc2VXQXNJSFJvYVhNZ1puVnVZM1JwYjI0Z2FXNTJiMnRsY3lCZ1puVnVZMkJjYmlBZ0lDb2dkMmwwYUNCMGFHVWdZSFJvYVhOZ0lHSnBibVJwYm1jZ2IyWWdZSFJvYVhOQmNtZGdJR0Z1WkNCMGFHVWdZWEpuZFcxbGJuUnpJRzltSUdCaGNtZHpZQzVjYmlBZ0lDcGNiaUFnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnWm5WdVl5QlVhR1VnWm5WdVkzUnBiMjRnZEc4Z2FXNTJiMnRsTGx4dUlDQWdLaUJBY0dGeVlXMGdleXA5SUhSb2FYTkJjbWNnVkdobElHQjBhR2x6WUNCaWFXNWthVzVuSUc5bUlHQm1kVzVqWUM1Y2JpQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdZWEpuY3lCVWFHVWdZWEpuZFcxbGJuUnpJSFJ2SUdsdWRtOXJaU0JnWm5WdVkyQWdkMmwwYUM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZXlwOUlGSmxkSFZ5Ym5NZ2RHaGxJSEpsYzNWc2RDQnZaaUJnWm5WdVkyQXVYRzRnSUNBcUwxeHVJQ0JtZFc1amRHbHZiaUJoY0hCc2VTaG1kVzVqTENCMGFHbHpRWEpuTENCaGNtZHpLU0I3WEc0Z0lDQWdjM2RwZEdOb0lDaGhjbWR6TG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnWTJGelpTQXdPaUJ5WlhSMWNtNGdablZ1WXk1allXeHNLSFJvYVhOQmNtY3BPMXh1SUNBZ0lDQWdZMkZ6WlNBeE9pQnlaWFIxY200Z1puVnVZeTVqWVd4c0tIUm9hWE5CY21jc0lHRnlaM05iTUYwcE8xeHVJQ0FnSUNBZ1kyRnpaU0F5T2lCeVpYUjFjbTRnWm5WdVl5NWpZV3hzS0hSb2FYTkJjbWNzSUdGeVozTmJNRjBzSUdGeVozTmJNVjBwTzF4dUlDQWdJQ0FnWTJGelpTQXpPaUJ5WlhSMWNtNGdablZ1WXk1allXeHNLSFJvYVhOQmNtY3NJR0Z5WjNOYk1GMHNJR0Z5WjNOYk1WMHNJR0Z5WjNOYk1sMHBPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWm5WdVl5NWhjSEJzZVNoMGFHbHpRWEpuTENCaGNtZHpLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQklITndaV05wWVd4cGVtVmtJSFpsY25OcGIyNGdiMllnWUdKaGMyVkJaMmR5WldkaGRHOXlZQ0JtYjNJZ1lYSnlZWGx6TGx4dUlDQWdLbHh1SUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0JiWVhKeVlYbGRJRlJvWlNCaGNuSmhlU0IwYnlCcGRHVnlZWFJsSUc5MlpYSXVYRzRnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlITmxkSFJsY2lCVWFHVWdablZ1WTNScGIyNGdkRzhnYzJWMElHQmhZMk4xYlhWc1lYUnZjbUFnZG1Gc2RXVnpMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQnBkR1Z5WVhSbFpTQlVhR1VnYVhSbGNtRjBaV1VnZEc4Z2RISmhibk5tYjNKdElHdGxlWE11WEc0Z0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQmhZMk4xYlhWc1lYUnZjaUJVYUdVZ2FXNXBkR2xoYkNCaFoyZHlaV2RoZEdWa0lHOWlhbVZqZEM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTBaMWJtTjBhVzl1ZlNCU1pYUjFjbTV6SUdCaFkyTjFiWFZzWVhSdmNtQXVYRzRnSUNBcUwxeHVJQ0JtZFc1amRHbHZiaUJoY25KaGVVRm5aM0psWjJGMGIzSW9ZWEp5WVhrc0lITmxkSFJsY2l3Z2FYUmxjbUYwWldVc0lHRmpZM1Z0ZFd4aGRHOXlLU0I3WEc0Z0lDQWdkbUZ5SUdsdVpHVjRJRDBnTFRFc1hHNGdJQ0FnSUNBZ0lHeGxibWQwYUNBOUlHRnljbUY1SUQwOUlHNTFiR3dnUHlBd0lEb2dZWEp5WVhrdWJHVnVaM1JvTzF4dVhHNGdJQ0FnZDJocGJHVWdLQ3NyYVc1a1pYZ2dQQ0JzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJSFpoY2lCMllXeDFaU0E5SUdGeWNtRjVXMmx1WkdWNFhUdGNiaUFnSUNBZ0lITmxkSFJsY2loaFkyTjFiWFZzWVhSdmNpd2dkbUZzZFdVc0lHbDBaWEpoZEdWbEtIWmhiSFZsS1N3Z1lYSnlZWGtwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z1lXTmpkVzExYkdGMGIzSTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUVNCemNHVmphV0ZzYVhwbFpDQjJaWEp6YVc5dUlHOW1JR0JmTG1admNrVmhZMmhnSUdadmNpQmhjbkpoZVhNZ2QybDBhRzkxZENCemRYQndiM0owSUdadmNseHVJQ0FnS2lCcGRHVnlZWFJsWlNCemFHOXlkR2hoYm1SekxseHVJQ0FnS2x4dUlDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCYllYSnlZWGxkSUZSb1pTQmhjbkpoZVNCMGJ5QnBkR1Z5WVhSbElHOTJaWEl1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR2wwWlhKaGRHVmxJRlJvWlNCbWRXNWpkR2x2YmlCcGJuWnZhMlZrSUhCbGNpQnBkR1Z5WVhScGIyNHVYRzRnSUNBcUlFQnlaWFIxY201eklIdEJjbkpoZVgwZ1VtVjBkWEp1Y3lCZ1lYSnlZWGxnTGx4dUlDQWdLaTljYmlBZ1puVnVZM1JwYjI0Z1lYSnlZWGxGWVdOb0tHRnljbUY1TENCcGRHVnlZWFJsWlNrZ2UxeHVJQ0FnSUhaaGNpQnBibVJsZUNBOUlDMHhMRnh1SUNBZ0lDQWdJQ0JzWlc1bmRHZ2dQU0JoY25KaGVTQTlQU0J1ZFd4c0lEOGdNQ0E2SUdGeWNtRjVMbXhsYm1kMGFEdGNibHh1SUNBZ0lIZG9hV3hsSUNncksybHVaR1Y0SUR3Z2JHVnVaM1JvS1NCN1hHNGdJQ0FnSUNCcFppQW9hWFJsY21GMFpXVW9ZWEp5WVhsYmFXNWtaWGhkTENCcGJtUmxlQ3dnWVhKeVlYa3BJRDA5UFNCbVlXeHpaU2tnZTF4dUlDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdGeWNtRjVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVFZ2MzQmxZMmxoYkdsNlpXUWdkbVZ5YzJsdmJpQnZaaUJnWHk1bWIzSkZZV05vVW1sbmFIUmdJR1p2Y2lCaGNuSmhlWE1nZDJsMGFHOTFkQ0J6ZFhCd2IzSjBJR1p2Y2x4dUlDQWdLaUJwZEdWeVlYUmxaU0J6YUc5eWRHaGhibVJ6TGx4dUlDQWdLbHh1SUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0JiWVhKeVlYbGRJRlJvWlNCaGNuSmhlU0IwYnlCcGRHVnlZWFJsSUc5MlpYSXVYRzRnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlHbDBaWEpoZEdWbElGUm9aU0JtZFc1amRHbHZiaUJwYm5admEyVmtJSEJsY2lCcGRHVnlZWFJwYjI0dVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0QmNuSmhlWDBnVW1WMGRYSnVjeUJnWVhKeVlYbGdMbHh1SUNBZ0tpOWNiaUFnWm5WdVkzUnBiMjRnWVhKeVlYbEZZV05vVW1sbmFIUW9ZWEp5WVhrc0lHbDBaWEpoZEdWbEtTQjdYRzRnSUNBZ2RtRnlJR3hsYm1kMGFDQTlJR0Z5Y21GNUlEMDlJRzUxYkd3Z1B5QXdJRG9nWVhKeVlYa3ViR1Z1WjNSb08xeHVYRzRnSUNBZ2QyaHBiR1VnS0d4bGJtZDBhQzB0S1NCN1hHNGdJQ0FnSUNCcFppQW9hWFJsY21GMFpXVW9ZWEp5WVhsYmJHVnVaM1JvWFN3Z2JHVnVaM1JvTENCaGNuSmhlU2tnUFQwOUlHWmhiSE5sS1NCN1hHNGdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z1lYSnlZWGs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FTQnpjR1ZqYVdGc2FYcGxaQ0IyWlhKemFXOXVJRzltSUdCZkxtVjJaWEo1WUNCbWIzSWdZWEp5WVhseklIZHBkR2h2ZFhRZ2MzVndjRzl5ZENCbWIzSmNiaUFnSUNvZ2FYUmxjbUYwWldVZ2MyaHZjblJvWVc1a2N5NWNiaUFnSUNwY2JpQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1cyRnljbUY1WFNCVWFHVWdZWEp5WVhrZ2RHOGdhWFJsY21GMFpTQnZkbVZ5TGx4dUlDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0J3Y21Wa2FXTmhkR1VnVkdobElHWjFibU4wYVc5dUlHbHVkbTlyWldRZ2NHVnlJR2wwWlhKaGRHbHZiaTVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMkp2YjJ4bFlXNTlJRkpsZEhWeWJuTWdZSFJ5ZFdWZ0lHbG1JR0ZzYkNCbGJHVnRaVzUwY3lCd1lYTnpJSFJvWlNCd2NtVmthV05oZEdVZ1kyaGxZMnNzWEc0Z0lDQXFJQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdJQ0FxTDF4dUlDQm1kVzVqZEdsdmJpQmhjbkpoZVVWMlpYSjVLR0Z5Y21GNUxDQndjbVZrYVdOaGRHVXBJSHRjYmlBZ0lDQjJZWElnYVc1a1pYZ2dQU0F0TVN4Y2JpQWdJQ0FnSUNBZ2JHVnVaM1JvSUQwZ1lYSnlZWGtnUFQwZ2JuVnNiQ0EvSURBZ09pQmhjbkpoZVM1c1pXNW5kR2c3WEc1Y2JpQWdJQ0IzYUdsc1pTQW9LeXRwYm1SbGVDQThJR3hsYm1kMGFDa2dlMXh1SUNBZ0lDQWdhV1lnS0NGd2NtVmthV05oZEdVb1lYSnlZWGxiYVc1a1pYaGRMQ0JwYm1SbGVDd2dZWEp5WVhrcEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FTQnpjR1ZqYVdGc2FYcGxaQ0IyWlhKemFXOXVJRzltSUdCZkxtWnBiSFJsY21BZ1ptOXlJR0Z5Y21GNWN5QjNhWFJvYjNWMElITjFjSEJ2Y25RZ1ptOXlYRzRnSUNBcUlHbDBaWEpoZEdWbElITm9iM0owYUdGdVpITXVYRzRnSUNBcVhHNGdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlGdGhjbkpoZVYwZ1ZHaGxJR0Z5Y21GNUlIUnZJR2wwWlhKaGRHVWdiM1psY2k1Y2JpQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnY0hKbFpHbGpZWFJsSUZSb1pTQm1kVzVqZEdsdmJpQnBiblp2YTJWa0lIQmxjaUJwZEdWeVlYUnBiMjR1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHWnBiSFJsY21Wa0lHRnljbUY1TGx4dUlDQWdLaTljYmlBZ1puVnVZM1JwYjI0Z1lYSnlZWGxHYVd4MFpYSW9ZWEp5WVhrc0lIQnlaV1JwWTJGMFpTa2dlMXh1SUNBZ0lIWmhjaUJwYm1SbGVDQTlJQzB4TEZ4dUlDQWdJQ0FnSUNCc1pXNW5kR2dnUFNCaGNuSmhlU0E5UFNCdWRXeHNJRDhnTUNBNklHRnljbUY1TG14bGJtZDBhQ3hjYmlBZ0lDQWdJQ0FnY21WelNXNWtaWGdnUFNBd0xGeHVJQ0FnSUNBZ0lDQnlaWE4xYkhRZ1BTQmJYVHRjYmx4dUlDQWdJSGRvYVd4bElDZ3JLMmx1WkdWNElEd2diR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQjJZWElnZG1Gc2RXVWdQU0JoY25KaGVWdHBibVJsZUYwN1hHNGdJQ0FnSUNCcFppQW9jSEpsWkdsallYUmxLSFpoYkhWbExDQnBibVJsZUN3Z1lYSnlZWGtwS1NCN1hHNGdJQ0FnSUNBZ0lISmxjM1ZzZEZ0eVpYTkpibVJsZUNzclhTQTlJSFpoYkhWbE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUVnYzNCbFkybGhiR2w2WldRZ2RtVnljMmx2YmlCdlppQmdYeTVwYm1Oc2RXUmxjMkFnWm05eUlHRnljbUY1Y3lCM2FYUm9iM1YwSUhOMWNIQnZjblFnWm05eVhHNGdJQ0FxSUhOd1pXTnBabmxwYm1jZ1lXNGdhVzVrWlhnZ2RHOGdjMlZoY21Ob0lHWnliMjB1WEc0Z0lDQXFYRzRnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDlJRnRoY25KaGVWMGdWR2hsSUdGeWNtRjVJSFJ2SUdsdWMzQmxZM1F1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdLbjBnZEdGeVoyVjBJRlJvWlNCMllXeDFaU0IwYnlCelpXRnlZMmdnWm05eUxseHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN1ltOXZiR1ZoYm4wZ1VtVjBkWEp1Y3lCZ2RISjFaV0FnYVdZZ1lIUmhjbWRsZEdBZ2FYTWdabTkxYm1Rc0lHVnNjMlVnWUdaaGJITmxZQzVjYmlBZ0lDb3ZYRzRnSUdaMWJtTjBhVzl1SUdGeWNtRjVTVzVqYkhWa1pYTW9ZWEp5WVhrc0lIWmhiSFZsS1NCN1hHNGdJQ0FnZG1GeUlHeGxibWQwYUNBOUlHRnljbUY1SUQwOUlHNTFiR3dnUHlBd0lEb2dZWEp5WVhrdWJHVnVaM1JvTzF4dUlDQWdJSEpsZEhWeWJpQWhJV3hsYm1kMGFDQW1KaUJpWVhObFNXNWtaWGhQWmloaGNuSmhlU3dnZG1Gc2RXVXNJREFwSUQ0Z0xURTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVkdocGN5Qm1kVzVqZEdsdmJpQnBjeUJzYVd0bElHQmhjbkpoZVVsdVkyeDFaR1Z6WUNCbGVHTmxjSFFnZEdoaGRDQnBkQ0JoWTJObGNIUnpJR0VnWTI5dGNHRnlZWFJ2Y2k1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnVzJGeWNtRjVYU0JVYUdVZ1lYSnlZWGtnZEc4Z2FXNXpjR1ZqZEM1Y2JpQWdJQ29nUUhCaGNtRnRJSHNxZlNCMFlYSm5aWFFnVkdobElIWmhiSFZsSUhSdklITmxZWEpqYUNCbWIzSXVYRzRnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlHTnZiWEJoY21GMGIzSWdWR2hsSUdOdmJYQmhjbUYwYjNJZ2FXNTJiMnRsWkNCd1pYSWdaV3hsYldWdWRDNWNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UySnZiMnhsWVc1OUlGSmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdsbUlHQjBZWEpuWlhSZ0lHbHpJR1p2ZFc1a0xDQmxiSE5sSUdCbVlXeHpaV0F1WEc0Z0lDQXFMMXh1SUNCbWRXNWpkR2x2YmlCaGNuSmhlVWx1WTJ4MVpHVnpWMmwwYUNoaGNuSmhlU3dnZG1Gc2RXVXNJR052YlhCaGNtRjBiM0lwSUh0Y2JpQWdJQ0IyWVhJZ2FXNWtaWGdnUFNBdE1TeGNiaUFnSUNBZ0lDQWdiR1Z1WjNSb0lEMGdZWEp5WVhrZ1BUMGdiblZzYkNBL0lEQWdPaUJoY25KaGVTNXNaVzVuZEdnN1hHNWNiaUFnSUNCM2FHbHNaU0FvS3l0cGJtUmxlQ0E4SUd4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnYVdZZ0tHTnZiWEJoY21GMGIzSW9kbUZzZFdVc0lHRnljbUY1VzJsdVpHVjRYU2twSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJCSUhOd1pXTnBZV3hwZW1Wa0lIWmxjbk5wYjI0Z2IyWWdZRjh1YldGd1lDQm1iM0lnWVhKeVlYbHpJSGRwZEdodmRYUWdjM1Z3Y0c5eWRDQm1iM0lnYVhSbGNtRjBaV1ZjYmlBZ0lDb2djMmh2Y25Sb1lXNWtjeTVjYmlBZ0lDcGNiaUFnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdXMkZ5Y21GNVhTQlVhR1VnWVhKeVlYa2dkRzhnYVhSbGNtRjBaU0J2ZG1WeUxseHVJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCcGRHVnlZWFJsWlNCVWFHVWdablZ1WTNScGIyNGdhVzUyYjJ0bFpDQndaWElnYVhSbGNtRjBhVzl1TGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QnRZWEJ3WldRZ1lYSnlZWGt1WEc0Z0lDQXFMMXh1SUNCbWRXNWpkR2x2YmlCaGNuSmhlVTFoY0NoaGNuSmhlU3dnYVhSbGNtRjBaV1VwSUh0Y2JpQWdJQ0IyWVhJZ2FXNWtaWGdnUFNBdE1TeGNiaUFnSUNBZ0lDQWdiR1Z1WjNSb0lEMGdZWEp5WVhrZ1BUMGdiblZzYkNBL0lEQWdPaUJoY25KaGVTNXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lISmxjM1ZzZENBOUlFRnljbUY1S0d4bGJtZDBhQ2s3WEc1Y2JpQWdJQ0IzYUdsc1pTQW9LeXRwYm1SbGVDQThJR3hsYm1kMGFDa2dlMXh1SUNBZ0lDQWdjbVZ6ZFd4MFcybHVaR1Y0WFNBOUlHbDBaWEpoZEdWbEtHRnljbUY1VzJsdVpHVjRYU3dnYVc1a1pYZ3NJR0Z5Y21GNUtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJCY0hCbGJtUnpJSFJvWlNCbGJHVnRaVzUwY3lCdlppQmdkbUZzZFdWellDQjBieUJnWVhKeVlYbGdMbHh1SUNBZ0tseHVJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZTQmhjbkpoZVNCVWFHVWdZWEp5WVhrZ2RHOGdiVzlrYVdaNUxseHVJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0IyWVd4MVpYTWdWR2hsSUhaaGJIVmxjeUIwYnlCaGNIQmxibVF1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QmdZWEp5WVhsZ0xseHVJQ0FnS2k5Y2JpQWdablZ1WTNScGIyNGdZWEp5WVhsUWRYTm9LR0Z5Y21GNUxDQjJZV3gxWlhNcElIdGNiaUFnSUNCMllYSWdhVzVrWlhnZ1BTQXRNU3hjYmlBZ0lDQWdJQ0FnYkdWdVozUm9JRDBnZG1Gc2RXVnpMbXhsYm1kMGFDeGNiaUFnSUNBZ0lDQWdiMlptYzJWMElEMGdZWEp5WVhrdWJHVnVaM1JvTzF4dVhHNGdJQ0FnZDJocGJHVWdLQ3NyYVc1a1pYZ2dQQ0JzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJR0Z5Y21GNVcyOW1abk5sZENBcklHbHVaR1Y0WFNBOUlIWmhiSFZsYzF0cGJtUmxlRjA3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCaGNuSmhlVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQklITndaV05wWVd4cGVtVmtJSFpsY25OcGIyNGdiMllnWUY4dWNtVmtkV05sWUNCbWIzSWdZWEp5WVhseklIZHBkR2h2ZFhRZ2MzVndjRzl5ZENCbWIzSmNiaUFnSUNvZ2FYUmxjbUYwWldVZ2MyaHZjblJvWVc1a2N5NWNiaUFnSUNwY2JpQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1cyRnljbUY1WFNCVWFHVWdZWEp5WVhrZ2RHOGdhWFJsY21GMFpTQnZkbVZ5TGx4dUlDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JwZEdWeVlYUmxaU0JVYUdVZ1puVnVZM1JwYjI0Z2FXNTJiMnRsWkNCd1pYSWdhWFJsY21GMGFXOXVMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJRnRoWTJOMWJYVnNZWFJ2Y2wwZ1ZHaGxJR2x1YVhScFlXd2dkbUZzZFdVdVhHNGdJQ0FxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnVzJsdWFYUkJZMk4xYlYwZ1UzQmxZMmxtZVNCMWMybHVaeUIwYUdVZ1ptbHljM1FnWld4bGJXVnVkQ0J2WmlCZ1lYSnlZWGxnSUdGelhHNGdJQ0FxSUNCMGFHVWdhVzVwZEdsaGJDQjJZV3gxWlM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZXlwOUlGSmxkSFZ5Ym5NZ2RHaGxJR0ZqWTNWdGRXeGhkR1ZrSUhaaGJIVmxMbHh1SUNBZ0tpOWNiaUFnWm5WdVkzUnBiMjRnWVhKeVlYbFNaV1IxWTJVb1lYSnlZWGtzSUdsMFpYSmhkR1ZsTENCaFkyTjFiWFZzWVhSdmNpd2dhVzVwZEVGalkzVnRLU0I3WEc0Z0lDQWdkbUZ5SUdsdVpHVjRJRDBnTFRFc1hHNGdJQ0FnSUNBZ0lHeGxibWQwYUNBOUlHRnljbUY1SUQwOUlHNTFiR3dnUHlBd0lEb2dZWEp5WVhrdWJHVnVaM1JvTzF4dVhHNGdJQ0FnYVdZZ0tHbHVhWFJCWTJOMWJTQW1KaUJzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJR0ZqWTNWdGRXeGhkRzl5SUQwZ1lYSnlZWGxiS3l0cGJtUmxlRjA3WEc0Z0lDQWdmVnh1SUNBZ0lIZG9hV3hsSUNncksybHVaR1Y0SUR3Z2JHVnVaM1JvS1NCN1hHNGdJQ0FnSUNCaFkyTjFiWFZzWVhSdmNpQTlJR2wwWlhKaGRHVmxLR0ZqWTNWdGRXeGhkRzl5TENCaGNuSmhlVnRwYm1SbGVGMHNJR2x1WkdWNExDQmhjbkpoZVNrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQmhZMk4xYlhWc1lYUnZjanRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQklITndaV05wWVd4cGVtVmtJSFpsY25OcGIyNGdiMllnWUY4dWNtVmtkV05sVW1sbmFIUmdJR1p2Y2lCaGNuSmhlWE1nZDJsMGFHOTFkQ0J6ZFhCd2IzSjBJR1p2Y2x4dUlDQWdLaUJwZEdWeVlYUmxaU0J6YUc5eWRHaGhibVJ6TGx4dUlDQWdLbHh1SUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0JiWVhKeVlYbGRJRlJvWlNCaGNuSmhlU0IwYnlCcGRHVnlZWFJsSUc5MlpYSXVYRzRnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlHbDBaWEpoZEdWbElGUm9aU0JtZFc1amRHbHZiaUJwYm5admEyVmtJSEJsY2lCcGRHVnlZWFJwYjI0dVhHNGdJQ0FxSUVCd1lYSmhiU0I3S24wZ1cyRmpZM1Z0ZFd4aGRHOXlYU0JVYUdVZ2FXNXBkR2xoYkNCMllXeDFaUzVjYmlBZ0lDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJhVzVwZEVGalkzVnRYU0JUY0dWamFXWjVJSFZ6YVc1bklIUm9aU0JzWVhOMElHVnNaVzFsYm5RZ2IyWWdZR0Z5Y21GNVlDQmhjMXh1SUNBZ0tpQWdkR2hsSUdsdWFYUnBZV3dnZG1Gc2RXVXVYRzRnSUNBcUlFQnlaWFIxY201eklIc3FmU0JTWlhSMWNtNXpJSFJvWlNCaFkyTjFiWFZzWVhSbFpDQjJZV3gxWlM1Y2JpQWdJQ292WEc0Z0lHWjFibU4wYVc5dUlHRnljbUY1VW1Wa2RXTmxVbWxuYUhRb1lYSnlZWGtzSUdsMFpYSmhkR1ZsTENCaFkyTjFiWFZzWVhSdmNpd2dhVzVwZEVGalkzVnRLU0I3WEc0Z0lDQWdkbUZ5SUd4bGJtZDBhQ0E5SUdGeWNtRjVJRDA5SUc1MWJHd2dQeUF3SURvZ1lYSnlZWGt1YkdWdVozUm9PMXh1SUNBZ0lHbG1JQ2hwYm1sMFFXTmpkVzBnSmlZZ2JHVnVaM1JvS1NCN1hHNGdJQ0FnSUNCaFkyTjFiWFZzWVhSdmNpQTlJR0Z5Y21GNVd5MHRiR1Z1WjNSb1hUdGNiaUFnSUNCOVhHNGdJQ0FnZDJocGJHVWdLR3hsYm1kMGFDMHRLU0I3WEc0Z0lDQWdJQ0JoWTJOMWJYVnNZWFJ2Y2lBOUlHbDBaWEpoZEdWbEtHRmpZM1Z0ZFd4aGRHOXlMQ0JoY25KaGVWdHNaVzVuZEdoZExDQnNaVzVuZEdnc0lHRnljbUY1S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHRmpZM1Z0ZFd4aGRHOXlPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVFZ2MzQmxZMmxoYkdsNlpXUWdkbVZ5YzJsdmJpQnZaaUJnWHk1emIyMWxZQ0JtYjNJZ1lYSnlZWGx6SUhkcGRHaHZkWFFnYzNWd2NHOXlkQ0JtYjNJZ2FYUmxjbUYwWldWY2JpQWdJQ29nYzJodmNuUm9ZVzVrY3k1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnVzJGeWNtRjVYU0JVYUdVZ1lYSnlZWGtnZEc4Z2FYUmxjbUYwWlNCdmRtVnlMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQndjbVZrYVdOaGRHVWdWR2hsSUdaMWJtTjBhVzl1SUdsdWRtOXJaV1FnY0dWeUlHbDBaWEpoZEdsdmJpNWNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UySnZiMnhsWVc1OUlGSmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdsbUlHRnVlU0JsYkdWdFpXNTBJSEJoYzNObGN5QjBhR1VnY0hKbFpHbGpZWFJsSUdOb1pXTnJMRnh1SUNBZ0tpQWdaV3h6WlNCZ1ptRnNjMlZnTGx4dUlDQWdLaTljYmlBZ1puVnVZM1JwYjI0Z1lYSnlZWGxUYjIxbEtHRnljbUY1TENCd2NtVmthV05oZEdVcElIdGNiaUFnSUNCMllYSWdhVzVrWlhnZ1BTQXRNU3hjYmlBZ0lDQWdJQ0FnYkdWdVozUm9JRDBnWVhKeVlYa2dQVDBnYm5Wc2JDQS9JREFnT2lCaGNuSmhlUzVzWlc1bmRHZzdYRzVjYmlBZ0lDQjNhR2xzWlNBb0t5dHBibVJsZUNBOElHeGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ2FXWWdLSEJ5WldScFkyRjBaU2hoY25KaGVWdHBibVJsZUYwc0lHbHVaR1Y0TENCaGNuSmhlU2twSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJIWlhSeklIUm9aU0J6YVhwbElHOW1JR0Z1SUVGVFEwbEpJR0J6ZEhKcGJtZGdMbHh1SUNBZ0tseHVJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdjM1J5YVc1bklGUm9aU0J6ZEhKcGJtY2dhVzV6Y0dWamRDNWNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UyNTFiV0psY24wZ1VtVjBkWEp1Y3lCMGFHVWdjM1J5YVc1bklITnBlbVV1WEc0Z0lDQXFMMXh1SUNCMllYSWdZWE5qYVdsVGFYcGxJRDBnWW1GelpWQnliM0JsY25SNUtDZHNaVzVuZEdnbktUdGNibHh1SUNBdktpcGNiaUFnSUNvZ1EyOXVkbVZ5ZEhNZ1lXNGdRVk5EU1VrZ1lITjBjbWx1WjJBZ2RHOGdZVzRnWVhKeVlYa3VYRzRnSUNBcVhHNGdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnpkSEpwYm1jZ1ZHaGxJSE4wY21sdVp5QjBieUJqYjI1MlpYSjBMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJR052Ym5abGNuUmxaQ0JoY25KaGVTNWNiaUFnSUNvdlhHNGdJR1oxYm1OMGFXOXVJR0Z6WTJscFZHOUJjbkpoZVNoemRISnBibWNwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdjM1J5YVc1bkxuTndiR2wwS0NjbktUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJUY0d4cGRITWdZVzRnUVZORFNVa2dZSE4wY21sdVoyQWdhVzUwYnlCaGJpQmhjbkpoZVNCdlppQnBkSE1nZDI5eVpITXVYRzRnSUNBcVhHNGdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQlVhR1VnYzNSeWFXNW5JSFJ2SUdsdWMzQmxZM1F1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QjBhR1VnZDI5eVpITWdiMllnWUhOMGNtbHVaMkF1WEc0Z0lDQXFMMXh1SUNCbWRXNWpkR2x2YmlCaGMyTnBhVmR2Y21SektITjBjbWx1WnlrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ6ZEhKcGJtY3ViV0YwWTJnb2NtVkJjMk5wYVZkdmNtUXBJSHg4SUZ0ZE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRlJvWlNCaVlYTmxJR2x0Y0d4bGJXVnVkR0YwYVc5dUlHOW1JRzFsZEdodlpITWdiR2xyWlNCZ1h5NW1hVzVrUzJWNVlDQmhibVFnWUY4dVptbHVaRXhoYzNSTFpYbGdMRnh1SUNBZ0tpQjNhWFJvYjNWMElITjFjSEJ2Y25RZ1ptOXlJR2wwWlhKaGRHVmxJSE5vYjNKMGFHRnVaSE1zSUhkb2FXTm9JR2wwWlhKaGRHVnpJRzkyWlhJZ1lHTnZiR3hsWTNScGIyNWdYRzRnSUNBcUlIVnphVzVuSUdCbFlXTm9SblZ1WTJBdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw4VDJKcVpXTjBmU0JqYjJ4c1pXTjBhVzl1SUZSb1pTQmpiMnhzWldOMGFXOXVJSFJ2SUdsdWMzQmxZM1F1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJSEJ5WldScFkyRjBaU0JVYUdVZ1puVnVZM1JwYjI0Z2FXNTJiMnRsWkNCd1pYSWdhWFJsY21GMGFXOXVMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQmxZV05vUm5WdVl5QlVhR1VnWm5WdVkzUnBiMjRnZEc4Z2FYUmxjbUYwWlNCdmRtVnlJR0JqYjJ4c1pXTjBhVzl1WUM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZXlwOUlGSmxkSFZ5Ym5NZ2RHaGxJR1p2ZFc1a0lHVnNaVzFsYm5RZ2IzSWdhWFJ6SUd0bGVTd2daV3h6WlNCZ2RXNWtaV1pwYm1Wa1lDNWNiaUFnSUNvdlhHNGdJR1oxYm1OMGFXOXVJR0poYzJWR2FXNWtTMlY1S0dOdmJHeGxZM1JwYjI0c0lIQnlaV1JwWTJGMFpTd2daV0ZqYUVaMWJtTXBJSHRjYmlBZ0lDQjJZWElnY21WemRXeDBPMXh1SUNBZ0lHVmhZMmhHZFc1aktHTnZiR3hsWTNScGIyNHNJR1oxYm1OMGFXOXVLSFpoYkhWbExDQnJaWGtzSUdOdmJHeGxZM1JwYjI0cElIdGNiaUFnSUNBZ0lHbG1JQ2h3Y21Wa2FXTmhkR1VvZG1Gc2RXVXNJR3RsZVN3Z1kyOXNiR1ZqZEdsdmJpa3BJSHRjYmlBZ0lDQWdJQ0FnY21WemRXeDBJRDBnYTJWNU8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc0Z0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlVhR1VnWW1GelpTQnBiWEJzWlcxbGJuUmhkR2x2YmlCdlppQmdYeTVtYVc1a1NXNWtaWGhnSUdGdVpDQmdYeTVtYVc1a1RHRnpkRWx1WkdWNFlDQjNhWFJvYjNWMFhHNGdJQ0FxSUhOMWNIQnZjblFnWm05eUlHbDBaWEpoZEdWbElITm9iM0owYUdGdVpITXVYRzRnSUNBcVhHNGdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlHRnljbUY1SUZSb1pTQmhjbkpoZVNCMGJ5QnBibk53WldOMExseHVJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCd2NtVmthV05oZEdVZ1ZHaGxJR1oxYm1OMGFXOXVJR2x1ZG05clpXUWdjR1Z5SUdsMFpYSmhkR2x2Ymk1Y2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJR1p5YjIxSmJtUmxlQ0JVYUdVZ2FXNWtaWGdnZEc4Z2MyVmhjbU5vSUdaeWIyMHVYRzRnSUNBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyWnliMjFTYVdkb2RGMGdVM0JsWTJsbWVTQnBkR1Z5WVhScGJtY2dabkp2YlNCeWFXZG9kQ0IwYnlCc1pXWjBMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdiblZ0WW1WeWZTQlNaWFIxY201eklIUm9aU0JwYm1SbGVDQnZaaUIwYUdVZ2JXRjBZMmhsWkNCMllXeDFaU3dnWld4elpTQmdMVEZnTGx4dUlDQWdLaTljYmlBZ1puVnVZM1JwYjI0Z1ltRnpaVVpwYm1SSmJtUmxlQ2hoY25KaGVTd2djSEpsWkdsallYUmxMQ0JtY205dFNXNWtaWGdzSUdaeWIyMVNhV2RvZENrZ2UxeHVJQ0FnSUhaaGNpQnNaVzVuZEdnZ1BTQmhjbkpoZVM1c1pXNW5kR2dzWEc0Z0lDQWdJQ0FnSUdsdVpHVjRJRDBnWm5KdmJVbHVaR1Y0SUNzZ0tHWnliMjFTYVdkb2RDQS9JREVnT2lBdE1TazdYRzVjYmlBZ0lDQjNhR2xzWlNBb0tHWnliMjFTYVdkb2RDQS9JR2x1WkdWNExTMGdPaUFySzJsdVpHVjRJRHdnYkdWdVozUm9LU2tnZTF4dUlDQWdJQ0FnYVdZZ0tIQnlaV1JwWTJGMFpTaGhjbkpoZVZ0cGJtUmxlRjBzSUdsdVpHVjRMQ0JoY25KaGVTa3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR2x1WkdWNE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdMVEU3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaGxJR0poYzJVZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRnYjJZZ1lGOHVhVzVrWlhoUFptQWdkMmwwYUc5MWRDQmdabkp2YlVsdVpHVjRZQ0JpYjNWdVpITWdZMmhsWTJ0ekxseHVJQ0FnS2x4dUlDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCaGNuSmhlU0JVYUdVZ1lYSnlZWGtnZEc4Z2FXNXpjR1ZqZEM1Y2JpQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z2MyVmhjbU5vSUdadmNpNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUdaeWIyMUpibVJsZUNCVWFHVWdhVzVrWlhnZ2RHOGdjMlZoY21Ob0lHWnliMjB1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHR1ZFcxaVpYSjlJRkpsZEhWeWJuTWdkR2hsSUdsdVpHVjRJRzltSUhSb1pTQnRZWFJqYUdWa0lIWmhiSFZsTENCbGJITmxJR0F0TVdBdVhHNGdJQ0FxTDF4dUlDQm1kVzVqZEdsdmJpQmlZWE5sU1c1a1pYaFBaaWhoY25KaGVTd2dkbUZzZFdVc0lHWnliMjFKYm1SbGVDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaU0E5UFQwZ2RtRnNkV1ZjYmlBZ0lDQWdJRDhnYzNSeWFXTjBTVzVrWlhoUFppaGhjbkpoZVN3Z2RtRnNkV1VzSUdaeWIyMUpibVJsZUNsY2JpQWdJQ0FnSURvZ1ltRnpaVVpwYm1SSmJtUmxlQ2hoY25KaGVTd2dZbUZ6WlVselRtRk9MQ0JtY205dFNXNWtaWGdwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGUm9hWE1nWm5WdVkzUnBiMjRnYVhNZ2JHbHJaU0JnWW1GelpVbHVaR1Y0VDJaZ0lHVjRZMlZ3ZENCMGFHRjBJR2wwSUdGalkyVndkSE1nWVNCamIyMXdZWEpoZEc5eUxseHVJQ0FnS2x4dUlDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCaGNuSmhlU0JVYUdVZ1lYSnlZWGtnZEc4Z2FXNXpjR1ZqZEM1Y2JpQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z2MyVmhjbU5vSUdadmNpNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUdaeWIyMUpibVJsZUNCVWFHVWdhVzVrWlhnZ2RHOGdjMlZoY21Ob0lHWnliMjB1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR052YlhCaGNtRjBiM0lnVkdobElHTnZiWEJoY21GMGIzSWdhVzUyYjJ0bFpDQndaWElnWld4bGJXVnVkQzVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMjUxYldKbGNuMGdVbVYwZFhKdWN5QjBhR1VnYVc1a1pYZ2diMllnZEdobElHMWhkR05vWldRZ2RtRnNkV1VzSUdWc2MyVWdZQzB4WUM1Y2JpQWdJQ292WEc0Z0lHWjFibU4wYVc5dUlHSmhjMlZKYm1SbGVFOW1WMmwwYUNoaGNuSmhlU3dnZG1Gc2RXVXNJR1p5YjIxSmJtUmxlQ3dnWTI5dGNHRnlZWFJ2Y2lrZ2UxeHVJQ0FnSUhaaGNpQnBibVJsZUNBOUlHWnliMjFKYm1SbGVDQXRJREVzWEc0Z0lDQWdJQ0FnSUd4bGJtZDBhQ0E5SUdGeWNtRjVMbXhsYm1kMGFEdGNibHh1SUNBZ0lIZG9hV3hsSUNncksybHVaR1Y0SUR3Z2JHVnVaM1JvS1NCN1hHNGdJQ0FnSUNCcFppQW9ZMjl0Y0dGeVlYUnZjaWhoY25KaGVWdHBibVJsZUYwc0lIWmhiSFZsS1NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2FXNWtaWGc3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlBdE1UdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJVYUdVZ1ltRnpaU0JwYlhCc1pXMWxiblJoZEdsdmJpQnZaaUJnWHk1cGMwNWhUbUFnZDJsMGFHOTFkQ0J6ZFhCd2IzSjBJR1p2Y2lCdWRXMWlaWElnYjJKcVpXTjBjeTVjYmlBZ0lDcGNiaUFnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z1kyaGxZMnN1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRpYjI5c1pXRnVmU0JTWlhSMWNtNXpJR0IwY25WbFlDQnBaaUJnZG1Gc2RXVmdJR2x6SUdCT1lVNWdMQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdJQ0FxTDF4dUlDQm1kVzVqZEdsdmJpQmlZWE5sU1hOT1lVNG9kbUZzZFdVcElIdGNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVWdJVDA5SUhaaGJIVmxPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZSb1pTQmlZWE5sSUdsdGNHeGxiV1Z1ZEdGMGFXOXVJRzltSUdCZkxtMWxZVzVnSUdGdVpDQmdYeTV0WldGdVFubGdJSGRwZEdodmRYUWdjM1Z3Y0c5eWRDQm1iM0pjYmlBZ0lDb2dhWFJsY21GMFpXVWdjMmh2Y25Sb1lXNWtjeTVjYmlBZ0lDcGNiaUFnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdZWEp5WVhrZ1ZHaGxJR0Z5Y21GNUlIUnZJR2wwWlhKaGRHVWdiM1psY2k1Y2JpQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnYVhSbGNtRjBaV1VnVkdobElHWjFibU4wYVc5dUlHbHVkbTlyWldRZ2NHVnlJR2wwWlhKaGRHbHZiaTVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMjUxYldKbGNuMGdVbVYwZFhKdWN5QjBhR1VnYldWaGJpNWNiaUFnSUNvdlhHNGdJR1oxYm1OMGFXOXVJR0poYzJWTlpXRnVLR0Z5Y21GNUxDQnBkR1Z5WVhSbFpTa2dlMXh1SUNBZ0lIWmhjaUJzWlc1bmRHZ2dQU0JoY25KaGVTQTlQU0J1ZFd4c0lEOGdNQ0E2SUdGeWNtRjVMbXhsYm1kMGFEdGNiaUFnSUNCeVpYUjFjbTRnYkdWdVozUm9JRDhnS0dKaGMyVlRkVzBvWVhKeVlYa3NJR2wwWlhKaGRHVmxLU0F2SUd4bGJtZDBhQ2tnT2lCT1FVNDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVkdobElHSmhjMlVnYVcxd2JHVnRaVzUwWVhScGIyNGdiMllnWUY4dWNISnZjR1Z5ZEhsZ0lIZHBkR2h2ZFhRZ2MzVndjRzl5ZENCbWIzSWdaR1ZsY0NCd1lYUm9jeTVjYmlBZ0lDcGNiaUFnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJR3RsZVNCVWFHVWdhMlY1SUc5bUlIUm9aU0J3Y205d1pYSjBlU0IwYnlCblpYUXVYRzRnSUNBcUlFQnlaWFIxY201eklIdEdkVzVqZEdsdmJuMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHRmpZMlZ6YzI5eUlHWjFibU4wYVc5dUxseHVJQ0FnS2k5Y2JpQWdablZ1WTNScGIyNGdZbUZ6WlZCeWIzQmxjblI1S0d0bGVTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCbWRXNWpkR2x2YmlodlltcGxZM1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ2WW1wbFkzUWdQVDBnYm5Wc2JDQS9JSFZ1WkdWbWFXNWxaQ0E2SUc5aWFtVmpkRnRyWlhsZE8xeHVJQ0FnSUgwN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dWR2hsSUdKaGMyVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2IyWWdZRjh1Y0hKdmNHVnlkSGxQWm1BZ2QybDBhRzkxZENCemRYQndiM0owSUdadmNpQmtaV1Z3SUhCaGRHaHpMbHh1SUNBZ0tseHVJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiMkpxWldOMElGUm9aU0J2WW1wbFkzUWdkRzhnY1hWbGNua3VYRzRnSUNBcUlFQnlaWFIxY201eklIdEdkVzVqZEdsdmJuMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHRmpZMlZ6YzI5eUlHWjFibU4wYVc5dUxseHVJQ0FnS2k5Y2JpQWdablZ1WTNScGIyNGdZbUZ6WlZCeWIzQmxjblI1VDJZb2IySnFaV04wS1NCN1hHNGdJQ0FnY21WMGRYSnVJR1oxYm1OMGFXOXVLR3RsZVNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc5aWFtVmpkQ0E5UFNCdWRXeHNJRDhnZFc1a1pXWnBibVZrSURvZ2IySnFaV04wVzJ0bGVWMDdYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJVYUdVZ1ltRnpaU0JwYlhCc1pXMWxiblJoZEdsdmJpQnZaaUJnWHk1eVpXUjFZMlZnSUdGdVpDQmdYeTV5WldSMVkyVlNhV2RvZEdBc0lIZHBkR2h2ZFhRZ2MzVndjRzl5ZEZ4dUlDQWdLaUJtYjNJZ2FYUmxjbUYwWldVZ2MyaHZjblJvWVc1a2N5d2dkMmhwWTJnZ2FYUmxjbUYwWlhNZ2IzWmxjaUJnWTI5c2JHVmpkR2x2Ym1BZ2RYTnBibWNnWUdWaFkyaEdkVzVqWUM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWHhQWW1wbFkzUjlJR052Ykd4bFkzUnBiMjRnVkdobElHTnZiR3hsWTNScGIyNGdkRzhnYVhSbGNtRjBaU0J2ZG1WeUxseHVJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCcGRHVnlZWFJsWlNCVWFHVWdablZ1WTNScGIyNGdhVzUyYjJ0bFpDQndaWElnYVhSbGNtRjBhVzl1TGx4dUlDQWdLaUJBY0dGeVlXMGdleXA5SUdGalkzVnRkV3hoZEc5eUlGUm9aU0JwYm1sMGFXRnNJSFpoYkhWbExseHVJQ0FnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUdsdWFYUkJZMk4xYlNCVGNHVmphV1o1SUhWemFXNW5JSFJvWlNCbWFYSnpkQ0J2Y2lCc1lYTjBJR1ZzWlcxbGJuUWdiMlpjYmlBZ0lDb2dJR0JqYjJ4c1pXTjBhVzl1WUNCaGN5QjBhR1VnYVc1cGRHbGhiQ0IyWVd4MVpTNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1pXRmphRVoxYm1NZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUdsMFpYSmhkR1VnYjNabGNpQmdZMjlzYkdWamRHbHZibUF1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHNxZlNCU1pYUjFjbTV6SUhSb1pTQmhZMk4xYlhWc1lYUmxaQ0IyWVd4MVpTNWNiaUFnSUNvdlhHNGdJR1oxYm1OMGFXOXVJR0poYzJWU1pXUjFZMlVvWTI5c2JHVmpkR2x2Yml3Z2FYUmxjbUYwWldVc0lHRmpZM1Z0ZFd4aGRHOXlMQ0JwYm1sMFFXTmpkVzBzSUdWaFkyaEdkVzVqS1NCN1hHNGdJQ0FnWldGamFFWjFibU1vWTI5c2JHVmpkR2x2Yml3Z1puVnVZM1JwYjI0b2RtRnNkV1VzSUdsdVpHVjRMQ0JqYjJ4c1pXTjBhVzl1S1NCN1hHNGdJQ0FnSUNCaFkyTjFiWFZzWVhSdmNpQTlJR2x1YVhSQlkyTjFiVnh1SUNBZ0lDQWdJQ0EvSUNocGJtbDBRV05qZFcwZ1BTQm1ZV3h6WlN3Z2RtRnNkV1VwWEc0Z0lDQWdJQ0FnSURvZ2FYUmxjbUYwWldVb1lXTmpkVzExYkdGMGIzSXNJSFpoYkhWbExDQnBibVJsZUN3Z1kyOXNiR1ZqZEdsdmJpazdYRzRnSUNBZ2ZTazdYRzRnSUNBZ2NtVjBkWEp1SUdGalkzVnRkV3hoZEc5eU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRlJvWlNCaVlYTmxJR2x0Y0d4bGJXVnVkR0YwYVc5dUlHOW1JR0JmTG5OdmNuUkNlV0FnZDJocFkyZ2dkWE5sY3lCZ1kyOXRjR0Z5WlhKZ0lIUnZJR1JsWm1sdVpTQjBhR1ZjYmlBZ0lDb2djMjl5ZENCdmNtUmxjaUJ2WmlCZ1lYSnlZWGxnSUdGdVpDQnlaWEJzWVdObGN5QmpjbWwwWlhKcFlTQnZZbXBsWTNSeklIZHBkR2dnZEdobGFYSWdZMjl5Y21WemNHOXVaR2x1WjF4dUlDQWdLaUIyWVd4MVpYTXVYRzRnSUNBcVhHNGdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlHRnljbUY1SUZSb1pTQmhjbkpoZVNCMGJ5QnpiM0owTGx4dUlDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JqYjIxd1lYSmxjaUJVYUdVZ1puVnVZM1JwYjI0Z2RHOGdaR1ZtYVc1bElITnZjblFnYjNKa1pYSXVYRzRnSUNBcUlFQnlaWFIxY201eklIdEJjbkpoZVgwZ1VtVjBkWEp1Y3lCZ1lYSnlZWGxnTGx4dUlDQWdLaTljYmlBZ1puVnVZM1JwYjI0Z1ltRnpaVk52Y25SQ2VTaGhjbkpoZVN3Z1kyOXRjR0Z5WlhJcElIdGNiaUFnSUNCMllYSWdiR1Z1WjNSb0lEMGdZWEp5WVhrdWJHVnVaM1JvTzF4dVhHNGdJQ0FnWVhKeVlYa3VjMjl5ZENoamIyMXdZWEpsY2lrN1hHNGdJQ0FnZDJocGJHVWdLR3hsYm1kMGFDMHRLU0I3WEc0Z0lDQWdJQ0JoY25KaGVWdHNaVzVuZEdoZElEMGdZWEp5WVhsYmJHVnVaM1JvWFM1MllXeDFaVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdGeWNtRjVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZSb1pTQmlZWE5sSUdsdGNHeGxiV1Z1ZEdGMGFXOXVJRzltSUdCZkxuTjFiV0FnWVc1a0lHQmZMbk4xYlVKNVlDQjNhWFJvYjNWMElITjFjSEJ2Y25RZ1ptOXlYRzRnSUNBcUlHbDBaWEpoZEdWbElITm9iM0owYUdGdVpITXVYRzRnSUNBcVhHNGdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlHRnljbUY1SUZSb1pTQmhjbkpoZVNCMGJ5QnBkR1Z5WVhSbElHOTJaWEl1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR2wwWlhKaGRHVmxJRlJvWlNCbWRXNWpkR2x2YmlCcGJuWnZhMlZrSUhCbGNpQnBkR1Z5WVhScGIyNHVYRzRnSUNBcUlFQnlaWFIxY201eklIdHVkVzFpWlhKOUlGSmxkSFZ5Ym5NZ2RHaGxJSE4xYlM1Y2JpQWdJQ292WEc0Z0lHWjFibU4wYVc5dUlHSmhjMlZUZFcwb1lYSnlZWGtzSUdsMFpYSmhkR1ZsS1NCN1hHNGdJQ0FnZG1GeUlISmxjM1ZzZEN4Y2JpQWdJQ0FnSUNBZ2FXNWtaWGdnUFNBdE1TeGNiaUFnSUNBZ0lDQWdiR1Z1WjNSb0lEMGdZWEp5WVhrdWJHVnVaM1JvTzF4dVhHNGdJQ0FnZDJocGJHVWdLQ3NyYVc1a1pYZ2dQQ0JzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJSFpoY2lCamRYSnlaVzUwSUQwZ2FYUmxjbUYwWldVb1lYSnlZWGxiYVc1a1pYaGRLVHRjYmlBZ0lDQWdJR2xtSUNoamRYSnlaVzUwSUNFOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJQ0FnY21WemRXeDBJRDBnY21WemRXeDBJRDA5UFNCMWJtUmxabWx1WldRZ1B5QmpkWEp5Wlc1MElEb2dLSEpsYzNWc2RDQXJJR04xY25KbGJuUXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZSb1pTQmlZWE5sSUdsdGNHeGxiV1Z1ZEdGMGFXOXVJRzltSUdCZkxuUnBiV1Z6WUNCM2FYUm9iM1YwSUhOMWNIQnZjblFnWm05eUlHbDBaWEpoZEdWbElITm9iM0owYUdGdVpITmNiaUFnSUNvZ2IzSWdiV0Y0SUdGeWNtRjVJR3hsYm1kMGFDQmphR1ZqYTNNdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCdUlGUm9aU0J1ZFcxaVpYSWdiMllnZEdsdFpYTWdkRzhnYVc1MmIydGxJR0JwZEdWeVlYUmxaV0F1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR2wwWlhKaGRHVmxJRlJvWlNCbWRXNWpkR2x2YmlCcGJuWnZhMlZrSUhCbGNpQnBkR1Z5WVhScGIyNHVYRzRnSUNBcUlFQnlaWFIxY201eklIdEJjbkpoZVgwZ1VtVjBkWEp1Y3lCMGFHVWdZWEp5WVhrZ2IyWWdjbVZ6ZFd4MGN5NWNiaUFnSUNvdlhHNGdJR1oxYm1OMGFXOXVJR0poYzJWVWFXMWxjeWh1TENCcGRHVnlZWFJsWlNrZ2UxeHVJQ0FnSUhaaGNpQnBibVJsZUNBOUlDMHhMRnh1SUNBZ0lDQWdJQ0J5WlhOMWJIUWdQU0JCY25KaGVTaHVLVHRjYmx4dUlDQWdJSGRvYVd4bElDZ3JLMmx1WkdWNElEd2diaWtnZTF4dUlDQWdJQ0FnY21WemRXeDBXMmx1WkdWNFhTQTlJR2wwWlhKaGRHVmxLR2x1WkdWNEtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJVYUdVZ1ltRnpaU0JwYlhCc1pXMWxiblJoZEdsdmJpQnZaaUJnWHk1MGIxQmhhWEp6WUNCaGJtUWdZRjh1ZEc5UVlXbHljMGx1WUNCM2FHbGphQ0JqY21WaGRHVnpJR0Z1SUdGeWNtRjVYRzRnSUNBcUlHOW1JR3RsZVMxMllXeDFaU0J3WVdseWN5Qm1iM0lnWUc5aWFtVmpkR0FnWTI5eWNtVnpjRzl1WkdsdVp5QjBieUIwYUdVZ2NISnZjR1Z5ZEhrZ2JtRnRaWE1nYjJZZ1lIQnliM0J6WUM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5aWFtVmpkQ0JVYUdVZ2IySnFaV04wSUhSdklIRjFaWEo1TGx4dUlDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZTQndjbTl3Y3lCVWFHVWdjSEp2Y0dWeWRIa2dibUZ0WlhNZ2RHOGdaMlYwSUhaaGJIVmxjeUJtYjNJdVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0UFltcGxZM1I5SUZKbGRIVnlibk1nZEdobElHdGxlUzEyWVd4MVpTQndZV2x5Y3k1Y2JpQWdJQ292WEc0Z0lHWjFibU4wYVc5dUlHSmhjMlZVYjFCaGFYSnpLRzlpYW1WamRDd2djSEp2Y0hNcElIdGNiaUFnSUNCeVpYUjFjbTRnWVhKeVlYbE5ZWEFvY0hKdmNITXNJR1oxYm1OMGFXOXVLR3RsZVNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUZ0clpYa3NJRzlpYW1WamRGdHJaWGxkWFR0Y2JpQWdJQ0I5S1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlVhR1VnWW1GelpTQnBiWEJzWlcxbGJuUmhkR2x2YmlCdlppQmdYeTUwY21sdFlDNWNiaUFnSUNwY2JpQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlITjBjbWx1WnlCVWFHVWdjM1J5YVc1bklIUnZJSFJ5YVcwdVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0emRISnBibWQ5SUZKbGRIVnlibk1nZEdobElIUnlhVzF0WldRZ2MzUnlhVzVuTGx4dUlDQWdLaTljYmlBZ1puVnVZM1JwYjI0Z1ltRnpaVlJ5YVcwb2MzUnlhVzVuS1NCN1hHNGdJQ0FnY21WMGRYSnVJSE4wY21sdVoxeHVJQ0FnSUNBZ1B5QnpkSEpwYm1jdWMyeHBZMlVvTUN3Z2RISnBiVzFsWkVWdVpFbHVaR1Y0S0hOMGNtbHVaeWtnS3lBeEtTNXlaWEJzWVdObEtISmxWSEpwYlZOMFlYSjBMQ0FuSnlsY2JpQWdJQ0FnSURvZ2MzUnlhVzVuTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGUm9aU0JpWVhObElHbHRjR3hsYldWdWRHRjBhVzl1SUc5bUlHQmZMblZ1WVhKNVlDQjNhWFJvYjNWMElITjFjSEJ2Y25RZ1ptOXlJSE4wYjNKcGJtY2diV1YwWVdSaGRHRXVYRzRnSUNBcVhHNGdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR1oxYm1NZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUdOaGNDQmhjbWQxYldWdWRITWdabTl5TGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3Um5WdVkzUnBiMjU5SUZKbGRIVnlibk1nZEdobElHNWxkeUJqWVhCd1pXUWdablZ1WTNScGIyNHVYRzRnSUNBcUwxeHVJQ0JtZFc1amRHbHZiaUJpWVhObFZXNWhjbmtvWm5WdVl5a2dlMXh1SUNBZ0lISmxkSFZ5YmlCbWRXNWpkR2x2YmloMllXeDFaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1oxYm1Nb2RtRnNkV1VwTzF4dUlDQWdJSDA3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaGxJR0poYzJVZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRnYjJZZ1lGOHVkbUZzZFdWellDQmhibVFnWUY4dWRtRnNkV1Z6U1c1Z0lIZG9hV05vSUdOeVpXRjBaWE1nWVc1Y2JpQWdJQ29nWVhKeVlYa2diMllnWUc5aWFtVmpkR0FnY0hKdmNHVnlkSGtnZG1Gc2RXVnpJR052Y25KbGMzQnZibVJwYm1jZ2RHOGdkR2hsSUhCeWIzQmxjblI1SUc1aGJXVnpYRzRnSUNBcUlHOW1JR0J3Y205d2MyQXVYRzRnSUNBcVhHNGdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZZbXBsWTNRZ1ZHaGxJRzlpYW1WamRDQjBieUJ4ZFdWeWVTNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnY0hKdmNITWdWR2hsSUhCeWIzQmxjblI1SUc1aGJXVnpJSFJ2SUdkbGRDQjJZV3gxWlhNZ1ptOXlMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdUMkpxWldOMGZTQlNaWFIxY201eklIUm9aU0JoY25KaGVTQnZaaUJ3Y205d1pYSjBlU0IyWVd4MVpYTXVYRzRnSUNBcUwxeHVJQ0JtZFc1amRHbHZiaUJpWVhObFZtRnNkV1Z6S0c5aWFtVmpkQ3dnY0hKdmNITXBJSHRjYmlBZ0lDQnlaWFIxY200Z1lYSnlZWGxOWVhBb2NISnZjSE1zSUdaMWJtTjBhVzl1S0d0bGVTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHOWlhbVZqZEZ0clpYbGRPMXh1SUNBZ0lIMHBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOb1pXTnJjeUJwWmlCaElHQmpZV05vWldBZ2RtRnNkV1VnWm05eUlHQnJaWGxnSUdWNGFYTjBjeTVjYmlBZ0lDcGNiaUFnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJR05oWTJobElGUm9aU0JqWVdOb1pTQjBieUJ4ZFdWeWVTNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUd0bGVTQlVhR1VnYTJWNUlHOW1JSFJvWlNCbGJuUnllU0IwYnlCamFHVmpheTVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMkp2YjJ4bFlXNTlJRkpsZEhWeWJuTWdZSFJ5ZFdWZ0lHbG1JR0Z1SUdWdWRISjVJR1p2Y2lCZ2EyVjVZQ0JsZUdsemRITXNJR1ZzYzJVZ1lHWmhiSE5sWUM1Y2JpQWdJQ292WEc0Z0lHWjFibU4wYVc5dUlHTmhZMmhsU0dGektHTmhZMmhsTENCclpYa3BJSHRjYmlBZ0lDQnlaWFIxY200Z1kyRmphR1V1YUdGektHdGxlU2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1ZYTmxaQ0JpZVNCZ1h5NTBjbWx0WUNCaGJtUWdZRjh1ZEhKcGJWTjBZWEowWUNCMGJ5Qm5aWFFnZEdobElHbHVaR1Y0SUc5bUlIUm9aU0JtYVhKemRDQnpkSEpwYm1jZ2MzbHRZbTlzWEc0Z0lDQXFJSFJvWVhRZ2FYTWdibTkwSUdadmRXNWtJR2x1SUhSb1pTQmphR0Z5WVdOMFpYSWdjM2x0WW05c2N5NWNiaUFnSUNwY2JpQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ2MzUnlVM2x0WW05c2N5QlVhR1VnYzNSeWFXNW5JSE41YldKdmJITWdkRzhnYVc1emNHVmpkQzVjYmlBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1kyaHlVM2x0WW05c2N5QlVhR1VnWTJoaGNtRmpkR1Z5SUhONWJXSnZiSE1nZEc4Z1ptbHVaQzVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMjUxYldKbGNuMGdVbVYwZFhKdWN5QjBhR1VnYVc1a1pYZ2diMllnZEdobElHWnBjbk4wSUhWdWJXRjBZMmhsWkNCemRISnBibWNnYzNsdFltOXNMbHh1SUNBZ0tpOWNiaUFnWm5WdVkzUnBiMjRnWTJoaGNuTlRkR0Z5ZEVsdVpHVjRLSE4wY2xONWJXSnZiSE1zSUdOb2NsTjViV0p2YkhNcElIdGNiaUFnSUNCMllYSWdhVzVrWlhnZ1BTQXRNU3hjYmlBZ0lDQWdJQ0FnYkdWdVozUm9JRDBnYzNSeVUzbHRZbTlzY3k1c1pXNW5kR2c3WEc1Y2JpQWdJQ0IzYUdsc1pTQW9LeXRwYm1SbGVDQThJR3hsYm1kMGFDQW1KaUJpWVhObFNXNWtaWGhQWmloamFISlRlVzFpYjJ4ekxDQnpkSEpUZVcxaWIyeHpXMmx1WkdWNFhTd2dNQ2tnUGlBdE1Ta2dlMzFjYmlBZ0lDQnlaWFIxY200Z2FXNWtaWGc3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1ZYTmxaQ0JpZVNCZ1h5NTBjbWx0WUNCaGJtUWdZRjh1ZEhKcGJVVnVaR0FnZEc4Z1oyVjBJSFJvWlNCcGJtUmxlQ0J2WmlCMGFHVWdiR0Z6ZENCemRISnBibWNnYzNsdFltOXNYRzRnSUNBcUlIUm9ZWFFnYVhNZ2JtOTBJR1p2ZFc1a0lHbHVJSFJvWlNCamFHRnlZV04wWlhJZ2MzbHRZbTlzY3k1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnYzNSeVUzbHRZbTlzY3lCVWFHVWdjM1J5YVc1bklITjViV0p2YkhNZ2RHOGdhVzV6Y0dWamRDNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnWTJoeVUzbHRZbTlzY3lCVWFHVWdZMmhoY21GamRHVnlJSE41YldKdmJITWdkRzhnWm1sdVpDNWNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UyNTFiV0psY24wZ1VtVjBkWEp1Y3lCMGFHVWdhVzVrWlhnZ2IyWWdkR2hsSUd4aGMzUWdkVzV0WVhSamFHVmtJSE4wY21sdVp5QnplVzFpYjJ3dVhHNGdJQ0FxTDF4dUlDQm1kVzVqZEdsdmJpQmphR0Z5YzBWdVpFbHVaR1Y0S0hOMGNsTjViV0p2YkhNc0lHTm9jbE41YldKdmJITXBJSHRjYmlBZ0lDQjJZWElnYVc1a1pYZ2dQU0J6ZEhKVGVXMWliMnh6TG14bGJtZDBhRHRjYmx4dUlDQWdJSGRvYVd4bElDaHBibVJsZUMwdElDWW1JR0poYzJWSmJtUmxlRTltS0dOb2NsTjViV0p2YkhNc0lITjBjbE41YldKdmJITmJhVzVrWlhoZExDQXdLU0ErSUMweEtTQjdmVnh1SUNBZ0lISmxkSFZ5YmlCcGJtUmxlRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSFpYUnpJSFJvWlNCdWRXMWlaWElnYjJZZ1lIQnNZV05sYUc5c1pHVnlZQ0J2WTJOMWNuSmxibU5sY3lCcGJpQmdZWEp5WVhsZ0xseHVJQ0FnS2x4dUlDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCaGNuSmhlU0JVYUdVZ1lYSnlZWGtnZEc4Z2FXNXpjR1ZqZEM1Y2JpQWdJQ29nUUhCaGNtRnRJSHNxZlNCd2JHRmpaV2h2YkdSbGNpQlVhR1VnY0d4aFkyVm9iMnhrWlhJZ2RHOGdjMlZoY21Ob0lHWnZjaTVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMjUxYldKbGNuMGdVbVYwZFhKdWN5QjBhR1VnY0d4aFkyVm9iMnhrWlhJZ1kyOTFiblF1WEc0Z0lDQXFMMXh1SUNCbWRXNWpkR2x2YmlCamIzVnVkRWh2YkdSbGNuTW9ZWEp5WVhrc0lIQnNZV05sYUc5c1pHVnlLU0I3WEc0Z0lDQWdkbUZ5SUd4bGJtZDBhQ0E5SUdGeWNtRjVMbXhsYm1kMGFDeGNiaUFnSUNBZ0lDQWdjbVZ6ZFd4MElEMGdNRHRjYmx4dUlDQWdJSGRvYVd4bElDaHNaVzVuZEdndExTa2dlMXh1SUNBZ0lDQWdhV1lnS0dGeWNtRjVXMnhsYm1kMGFGMGdQVDA5SUhCc1lXTmxhRzlzWkdWeUtTQjdYRzRnSUNBZ0lDQWdJQ3NyY21WemRXeDBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZWelpXUWdZbmtnWUY4dVpHVmlkWEp5WUNCMGJ5QmpiMjUyWlhKMElFeGhkR2x1TFRFZ1UzVndjR3hsYldWdWRDQmhibVFnVEdGMGFXNGdSWGgwWlc1a1pXUXRRVnh1SUNBZ0tpQnNaWFIwWlhKeklIUnZJR0poYzJsaklFeGhkR2x1SUd4bGRIUmxjbk11WEc0Z0lDQXFYRzRnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JzWlhSMFpYSWdWR2hsSUcxaGRHTm9aV1FnYkdWMGRHVnlJSFJ2SUdSbFluVnljaTVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlM04wY21sdVozMGdVbVYwZFhKdWN5QjBhR1VnWkdWaWRYSnlaV1FnYkdWMGRHVnlMbHh1SUNBZ0tpOWNiaUFnZG1GeUlHUmxZblZ5Y2t4bGRIUmxjaUE5SUdKaGMyVlFjbTl3WlhKMGVVOW1LR1JsWW5WeWNtVmtUR1YwZEdWeWN5azdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGVnpaV1FnWW5rZ1lGOHVaWE5qWVhCbFlDQjBieUJqYjI1MlpYSjBJR05vWVhKaFkzUmxjbk1nZEc4Z1NGUk5UQ0JsYm5ScGRHbGxjeTVjYmlBZ0lDcGNiaUFnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJR05vY2lCVWFHVWdiV0YwWTJobFpDQmphR0Z5WVdOMFpYSWdkRzhnWlhOallYQmxMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdjM1J5YVc1bmZTQlNaWFIxY201eklIUm9aU0JsYzJOaGNHVmtJR05vWVhKaFkzUmxjaTVjYmlBZ0lDb3ZYRzRnSUhaaGNpQmxjMk5oY0dWSWRHMXNRMmhoY2lBOUlHSmhjMlZRY205d1pYSjBlVTltS0doMGJXeEZjMk5oY0dWektUdGNibHh1SUNBdktpcGNiaUFnSUNvZ1ZYTmxaQ0JpZVNCZ1h5NTBaVzF3YkdGMFpXQWdkRzhnWlhOallYQmxJR05vWVhKaFkzUmxjbk1nWm05eUlHbHVZMngxYzJsdmJpQnBiaUJqYjIxd2FXeGxaQ0J6ZEhKcGJtY2diR2wwWlhKaGJITXVYRzRnSUNBcVhHNGdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmphSElnVkdobElHMWhkR05vWldRZ1kyaGhjbUZqZEdWeUlIUnZJR1Z6WTJGd1pTNWNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UzTjBjbWx1WjMwZ1VtVjBkWEp1Y3lCMGFHVWdaWE5qWVhCbFpDQmphR0Z5WVdOMFpYSXVYRzRnSUNBcUwxeHVJQ0JtZFc1amRHbHZiaUJsYzJOaGNHVlRkSEpwYm1kRGFHRnlLR05vY2lrZ2UxeHVJQ0FnSUhKbGRIVnliaUFuWEZ4Y1hDY2dLeUJ6ZEhKcGJtZEZjMk5oY0dWelcyTm9jbDA3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1IyVjBjeUIwYUdVZ2RtRnNkV1VnWVhRZ1lHdGxlV0FnYjJZZ1lHOWlhbVZqZEdBdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCYmIySnFaV04wWFNCVWFHVWdiMkpxWldOMElIUnZJSEYxWlhKNUxseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYTJWNUlGUm9aU0JyWlhrZ2IyWWdkR2hsSUhCeWIzQmxjblI1SUhSdklHZGxkQzVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdleXA5SUZKbGRIVnlibk1nZEdobElIQnliM0JsY25SNUlIWmhiSFZsTGx4dUlDQWdLaTljYmlBZ1puVnVZM1JwYjI0Z1oyVjBWbUZzZFdVb2IySnFaV04wTENCclpYa3BJSHRjYmlBZ0lDQnlaWFIxY200Z2IySnFaV04wSUQwOUlHNTFiR3dnUHlCMWJtUmxabWx1WldRZ09pQnZZbXBsWTNSYmEyVjVYVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCRGFHVmphM01nYVdZZ1lITjBjbWx1WjJBZ1kyOXVkR0ZwYm5NZ1ZXNXBZMjlrWlNCemVXMWliMnh6TGx4dUlDQWdLbHh1SUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYzNSeWFXNW5JRlJvWlNCemRISnBibWNnZEc4Z2FXNXpjR1ZqZEM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTJKdmIyeGxZVzU5SUZKbGRIVnlibk1nWUhSeWRXVmdJR2xtSUdFZ2MzbHRZbTlzSUdseklHWnZkVzVrTENCbGJITmxJR0JtWVd4elpXQXVYRzRnSUNBcUwxeHVJQ0JtZFc1amRHbHZiaUJvWVhOVmJtbGpiMlJsS0hOMGNtbHVaeWtnZTF4dUlDQWdJSEpsZEhWeWJpQnlaVWhoYzFWdWFXTnZaR1V1ZEdWemRDaHpkSEpwYm1jcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU5vWldOcmN5QnBaaUJnYzNSeWFXNW5ZQ0JqYjI1MFlXbHVjeUJoSUhkdmNtUWdZMjl0Y0c5elpXUWdiMllnVlc1cFkyOWtaU0J6ZVcxaWIyeHpMbHh1SUNBZ0tseHVJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdjM1J5YVc1bklGUm9aU0J6ZEhKcGJtY2dkRzhnYVc1emNHVmpkQzVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMkp2YjJ4bFlXNTlJRkpsZEhWeWJuTWdZSFJ5ZFdWZ0lHbG1JR0VnZDI5eVpDQnBjeUJtYjNWdVpDd2daV3h6WlNCZ1ptRnNjMlZnTGx4dUlDQWdLaTljYmlBZ1puVnVZM1JwYjI0Z2FHRnpWVzVwWTI5a1pWZHZjbVFvYzNSeWFXNW5LU0I3WEc0Z0lDQWdjbVYwZFhKdUlISmxTR0Z6Vlc1cFkyOWtaVmR2Y21RdWRHVnpkQ2h6ZEhKcGJtY3BPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOdmJuWmxjblJ6SUdCcGRHVnlZWFJ2Y21BZ2RHOGdZVzRnWVhKeVlYa3VYRzRnSUNBcVhHNGdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnBkR1Z5WVhSdmNpQlVhR1VnYVhSbGNtRjBiM0lnZEc4Z1kyOXVkbVZ5ZEM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmU0JTWlhSMWNtNXpJSFJvWlNCamIyNTJaWEowWldRZ1lYSnlZWGt1WEc0Z0lDQXFMMXh1SUNCbWRXNWpkR2x2YmlCcGRHVnlZWFJ2Y2xSdlFYSnlZWGtvYVhSbGNtRjBiM0lwSUh0Y2JpQWdJQ0IyWVhJZ1pHRjBZU3hjYmlBZ0lDQWdJQ0FnY21WemRXeDBJRDBnVzEwN1hHNWNiaUFnSUNCM2FHbHNaU0FvSVNoa1lYUmhJRDBnYVhSbGNtRjBiM0l1Ym1WNGRDZ3BLUzVrYjI1bEtTQjdYRzRnSUNBZ0lDQnlaWE4xYkhRdWNIVnphQ2hrWVhSaExuWmhiSFZsS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRiMjUyWlhKMGN5QmdiV0Z3WUNCMGJ5QnBkSE1nYTJWNUxYWmhiSFZsSUhCaGFYSnpMbHh1SUNBZ0tseHVJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiV0Z3SUZSb1pTQnRZWEFnZEc4Z1kyOXVkbVZ5ZEM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmU0JTWlhSMWNtNXpJSFJvWlNCclpYa3RkbUZzZFdVZ2NHRnBjbk11WEc0Z0lDQXFMMXh1SUNCbWRXNWpkR2x2YmlCdFlYQlViMEZ5Y21GNUtHMWhjQ2tnZTF4dUlDQWdJSFpoY2lCcGJtUmxlQ0E5SUMweExGeHVJQ0FnSUNBZ0lDQnlaWE4xYkhRZ1BTQkJjbkpoZVNodFlYQXVjMmw2WlNrN1hHNWNiaUFnSUNCdFlYQXVabTl5UldGamFDaG1kVzVqZEdsdmJpaDJZV3gxWlN3Z2EyVjVLU0I3WEc0Z0lDQWdJQ0J5WlhOMWJIUmJLeXRwYm1SbGVGMGdQU0JiYTJWNUxDQjJZV3gxWlYwN1hHNGdJQ0FnZlNrN1hHNGdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJEY21WaGRHVnpJR0VnZFc1aGNua2dablZ1WTNScGIyNGdkR2hoZENCcGJuWnZhMlZ6SUdCbWRXNWpZQ0IzYVhSb0lHbDBjeUJoY21kMWJXVnVkQ0IwY21GdWMyWnZjbTFsWkM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1puVnVZeUJVYUdVZ1puVnVZM1JwYjI0Z2RHOGdkM0poY0M1Y2JpQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnZEhKaGJuTm1iM0p0SUZSb1pTQmhjbWQxYldWdWRDQjBjbUZ1YzJadmNtMHVYRzRnSUNBcUlFQnlaWFIxY201eklIdEdkVzVqZEdsdmJuMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHWjFibU4wYVc5dUxseHVJQ0FnS2k5Y2JpQWdablZ1WTNScGIyNGdiM1psY2tGeVp5aG1kVzVqTENCMGNtRnVjMlp2Y20wcElIdGNiaUFnSUNCeVpYUjFjbTRnWm5WdVkzUnBiMjRvWVhKbktTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1puVnVZeWgwY21GdWMyWnZjbTBvWVhKbktTazdYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhCc1lXTmxjeUJoYkd3Z1lIQnNZV05sYUc5c1pHVnlZQ0JsYkdWdFpXNTBjeUJwYmlCZ1lYSnlZWGxnSUhkcGRHZ2dZVzRnYVc1MFpYSnVZV3dnY0d4aFkyVm9iMnhrWlhKY2JpQWdJQ29nWVc1a0lISmxkSFZ5Ym5NZ1lXNGdZWEp5WVhrZ2IyWWdkR2hsYVhJZ2FXNWtaWGhsY3k1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnWVhKeVlYa2dWR2hsSUdGeWNtRjVJSFJ2SUcxdlpHbG1lUzVjYmlBZ0lDb2dRSEJoY21GdElIc3FmU0J3YkdGalpXaHZiR1JsY2lCVWFHVWdjR3hoWTJWb2IyeGtaWElnZEc4Z2NtVndiR0ZqWlM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2dZWEp5WVhrZ2IyWWdjR3hoWTJWb2IyeGtaWElnYVc1a1pYaGxjeTVjYmlBZ0lDb3ZYRzRnSUdaMWJtTjBhVzl1SUhKbGNHeGhZMlZJYjJ4a1pYSnpLR0Z5Y21GNUxDQndiR0ZqWldodmJHUmxjaWtnZTF4dUlDQWdJSFpoY2lCcGJtUmxlQ0E5SUMweExGeHVJQ0FnSUNBZ0lDQnNaVzVuZEdnZ1BTQmhjbkpoZVM1c1pXNW5kR2dzWEc0Z0lDQWdJQ0FnSUhKbGMwbHVaR1Y0SUQwZ01DeGNiaUFnSUNBZ0lDQWdjbVZ6ZFd4MElEMGdXMTA3WEc1Y2JpQWdJQ0IzYUdsc1pTQW9LeXRwYm1SbGVDQThJR3hsYm1kMGFDa2dlMXh1SUNBZ0lDQWdkbUZ5SUhaaGJIVmxJRDBnWVhKeVlYbGJhVzVrWlhoZE8xeHVJQ0FnSUNBZ2FXWWdLSFpoYkhWbElEMDlQU0J3YkdGalpXaHZiR1JsY2lCOGZDQjJZV3gxWlNBOVBUMGdVRXhCUTBWSVQweEVSVklwSUh0Y2JpQWdJQ0FnSUNBZ1lYSnlZWGxiYVc1a1pYaGRJRDBnVUV4QlEwVklUMHhFUlZJN1hHNGdJQ0FnSUNBZ0lISmxjM1ZzZEZ0eVpYTkpibVJsZUNzclhTQTlJR2x1WkdWNE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU52Ym5abGNuUnpJR0J6WlhSZ0lIUnZJR0Z1SUdGeWNtRjVJRzltSUdsMGN5QjJZV3gxWlhNdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCelpYUWdWR2hsSUhObGRDQjBieUJqYjI1MlpYSjBMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJSFpoYkhWbGN5NWNiaUFnSUNvdlhHNGdJR1oxYm1OMGFXOXVJSE5sZEZSdlFYSnlZWGtvYzJWMEtTQjdYRzRnSUNBZ2RtRnlJR2x1WkdWNElEMGdMVEVzWEc0Z0lDQWdJQ0FnSUhKbGMzVnNkQ0E5SUVGeWNtRjVLSE5sZEM1emFYcGxLVHRjYmx4dUlDQWdJSE5sZEM1bWIzSkZZV05vS0daMWJtTjBhVzl1S0haaGJIVmxLU0I3WEc0Z0lDQWdJQ0J5WlhOMWJIUmJLeXRwYm1SbGVGMGdQU0IyWVd4MVpUdGNiaUFnSUNCOUtUdGNiaUFnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOdmJuWmxjblJ6SUdCelpYUmdJSFJ2SUdsMGN5QjJZV3gxWlMxMllXeDFaU0J3WVdseWN5NWNiaUFnSUNwY2JpQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlITmxkQ0JVYUdVZ2MyVjBJSFJ2SUdOdmJuWmxjblF1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QjBhR1VnZG1Gc2RXVXRkbUZzZFdVZ2NHRnBjbk11WEc0Z0lDQXFMMXh1SUNCbWRXNWpkR2x2YmlCelpYUlViMUJoYVhKektITmxkQ2tnZTF4dUlDQWdJSFpoY2lCcGJtUmxlQ0E5SUMweExGeHVJQ0FnSUNBZ0lDQnlaWE4xYkhRZ1BTQkJjbkpoZVNoelpYUXVjMmw2WlNrN1hHNWNiaUFnSUNCelpYUXVabTl5UldGamFDaG1kVzVqZEdsdmJpaDJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ2NtVnpkV3gwV3lzcmFXNWtaWGhkSUQwZ1czWmhiSFZsTENCMllXeDFaVjA3WEc0Z0lDQWdmU2s3WEc0Z0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkJJSE53WldOcFlXeHBlbVZrSUhabGNuTnBiMjRnYjJZZ1lGOHVhVzVrWlhoUFptQWdkMmhwWTJnZ2NHVnlabTl5YlhNZ2MzUnlhV04wSUdWeGRXRnNhWFI1WEc0Z0lDQXFJR052YlhCaGNtbHpiMjV6SUc5bUlIWmhiSFZsY3l3Z2FTNWxMaUJnUFQwOVlDNWNiaUFnSUNwY2JpQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1lYSnlZWGtnVkdobElHRnljbUY1SUhSdklHbHVjM0JsWTNRdVhHNGdJQ0FxSUVCd1lYSmhiU0I3S24wZ2RtRnNkV1VnVkdobElIWmhiSFZsSUhSdklITmxZWEpqYUNCbWIzSXVYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCbWNtOXRTVzVrWlhnZ1ZHaGxJR2x1WkdWNElIUnZJSE5sWVhKamFDQm1jbTl0TGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3Ym5WdFltVnlmU0JTWlhSMWNtNXpJSFJvWlNCcGJtUmxlQ0J2WmlCMGFHVWdiV0YwWTJobFpDQjJZV3gxWlN3Z1pXeHpaU0JnTFRGZ0xseHVJQ0FnS2k5Y2JpQWdablZ1WTNScGIyNGdjM1J5YVdOMFNXNWtaWGhQWmloaGNuSmhlU3dnZG1Gc2RXVXNJR1p5YjIxSmJtUmxlQ2tnZTF4dUlDQWdJSFpoY2lCcGJtUmxlQ0E5SUdaeWIyMUpibVJsZUNBdElERXNYRzRnSUNBZ0lDQWdJR3hsYm1kMGFDQTlJR0Z5Y21GNUxteGxibWQwYUR0Y2JseHVJQ0FnSUhkb2FXeGxJQ2dySzJsdVpHVjRJRHdnYkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0JwWmlBb1lYSnlZWGxiYVc1a1pYaGRJRDA5UFNCMllXeDFaU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYVc1a1pYZzdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUF0TVR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkJJSE53WldOcFlXeHBlbVZrSUhabGNuTnBiMjRnYjJZZ1lGOHViR0Z6ZEVsdVpHVjRUMlpnSUhkb2FXTm9JSEJsY21admNtMXpJSE4wY21samRDQmxjWFZoYkdsMGVWeHVJQ0FnS2lCamIyMXdZWEpwYzI5dWN5QnZaaUIyWVd4MVpYTXNJR2t1WlM0Z1lEMDlQV0F1WEc0Z0lDQXFYRzRnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDlJR0Z5Y21GNUlGUm9aU0JoY25KaGVTQjBieUJwYm5Od1pXTjBMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSFpoYkhWbElGUm9aU0IyWVd4MVpTQjBieUJ6WldGeVkyZ2dabTl5TGx4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdabkp2YlVsdVpHVjRJRlJvWlNCcGJtUmxlQ0IwYnlCelpXRnlZMmdnWm5KdmJTNWNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UyNTFiV0psY24wZ1VtVjBkWEp1Y3lCMGFHVWdhVzVrWlhnZ2IyWWdkR2hsSUcxaGRHTm9aV1FnZG1Gc2RXVXNJR1ZzYzJVZ1lDMHhZQzVjYmlBZ0lDb3ZYRzRnSUdaMWJtTjBhVzl1SUhOMGNtbGpkRXhoYzNSSmJtUmxlRTltS0dGeWNtRjVMQ0IyWVd4MVpTd2dabkp2YlVsdVpHVjRLU0I3WEc0Z0lDQWdkbUZ5SUdsdVpHVjRJRDBnWm5KdmJVbHVaR1Y0SUNzZ01UdGNiaUFnSUNCM2FHbHNaU0FvYVc1a1pYZ3RMU2tnZTF4dUlDQWdJQ0FnYVdZZ0tHRnljbUY1VzJsdVpHVjRYU0E5UFQwZ2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdsdVpHVjRPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnYVc1a1pYZzdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUjJWMGN5QjBhR1VnYm5WdFltVnlJRzltSUhONWJXSnZiSE1nYVc0Z1lITjBjbWx1WjJBdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCemRISnBibWNnVkdobElITjBjbWx1WnlCMGJ5QnBibk53WldOMExseHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN2JuVnRZbVZ5ZlNCU1pYUjFjbTV6SUhSb1pTQnpkSEpwYm1jZ2MybDZaUzVjYmlBZ0lDb3ZYRzRnSUdaMWJtTjBhVzl1SUhOMGNtbHVaMU5wZW1Vb2MzUnlhVzVuS1NCN1hHNGdJQ0FnY21WMGRYSnVJR2hoYzFWdWFXTnZaR1VvYzNSeWFXNW5LVnh1SUNBZ0lDQWdQeUIxYm1samIyUmxVMmw2WlNoemRISnBibWNwWEc0Z0lDQWdJQ0E2SUdGelkybHBVMmw2WlNoemRISnBibWNwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnZiblpsY25SeklHQnpkSEpwYm1kZ0lIUnZJR0Z1SUdGeWNtRjVMbHh1SUNBZ0tseHVJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdjM1J5YVc1bklGUm9aU0J6ZEhKcGJtY2dkRzhnWTI5dWRtVnlkQzVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMEZ5Y21GNWZTQlNaWFIxY201eklIUm9aU0JqYjI1MlpYSjBaV1FnWVhKeVlYa3VYRzRnSUNBcUwxeHVJQ0JtZFc1amRHbHZiaUJ6ZEhKcGJtZFViMEZ5Y21GNUtITjBjbWx1WnlrZ2UxeHVJQ0FnSUhKbGRIVnliaUJvWVhOVmJtbGpiMlJsS0hOMGNtbHVaeWxjYmlBZ0lDQWdJRDhnZFc1cFkyOWtaVlJ2UVhKeVlYa29jM1J5YVc1bktWeHVJQ0FnSUNBZ09pQmhjMk5wYVZSdlFYSnlZWGtvYzNSeWFXNW5LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCVmMyVmtJR0o1SUdCZkxuUnlhVzFnSUdGdVpDQmdYeTUwY21sdFJXNWtZQ0IwYnlCblpYUWdkR2hsSUdsdVpHVjRJRzltSUhSb1pTQnNZWE4wSUc1dmJpMTNhR2wwWlhOd1lXTmxYRzRnSUNBcUlHTm9ZWEpoWTNSbGNpQnZaaUJnYzNSeWFXNW5ZQzVjYmlBZ0lDcGNiaUFnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSE4wY21sdVp5QlVhR1VnYzNSeWFXNW5JSFJ2SUdsdWMzQmxZM1F1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHR1ZFcxaVpYSjlJRkpsZEhWeWJuTWdkR2hsSUdsdVpHVjRJRzltSUhSb1pTQnNZWE4wSUc1dmJpMTNhR2wwWlhOd1lXTmxJR05vWVhKaFkzUmxjaTVjYmlBZ0lDb3ZYRzRnSUdaMWJtTjBhVzl1SUhSeWFXMXRaV1JGYm1SSmJtUmxlQ2h6ZEhKcGJtY3BJSHRjYmlBZ0lDQjJZWElnYVc1a1pYZ2dQU0J6ZEhKcGJtY3ViR1Z1WjNSb08xeHVYRzRnSUNBZ2QyaHBiR1VnS0dsdVpHVjRMUzBnSmlZZ2NtVlhhR2wwWlhOd1lXTmxMblJsYzNRb2MzUnlhVzVuTG1Ob1lYSkJkQ2hwYm1SbGVDa3BLU0I3ZlZ4dUlDQWdJSEpsZEhWeWJpQnBibVJsZUR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlZjMlZrSUdKNUlHQmZMblZ1WlhOallYQmxZQ0IwYnlCamIyNTJaWEowSUVoVVRVd2daVzUwYVhScFpYTWdkRzhnWTJoaGNtRmpkR1Z5Y3k1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUdOb2NpQlVhR1VnYldGMFkyaGxaQ0JqYUdGeVlXTjBaWElnZEc4Z2RXNWxjMk5oY0dVdVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0emRISnBibWQ5SUZKbGRIVnlibk1nZEdobElIVnVaWE5qWVhCbFpDQmphR0Z5WVdOMFpYSXVYRzRnSUNBcUwxeHVJQ0IyWVhJZ2RXNWxjMk5oY0dWSWRHMXNRMmhoY2lBOUlHSmhjMlZRY205d1pYSjBlVTltS0doMGJXeFZibVZ6WTJGd1pYTXBPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkhaWFJ6SUhSb1pTQnphWHBsSUc5bUlHRWdWVzVwWTI5a1pTQmdjM1J5YVc1bllDNWNiaUFnSUNwY2JpQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlITjBjbWx1WnlCVWFHVWdjM1J5YVc1bklHbHVjM0JsWTNRdVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0dWRXMWlaWEo5SUZKbGRIVnlibk1nZEdobElITjBjbWx1WnlCemFYcGxMbHh1SUNBZ0tpOWNiaUFnWm5WdVkzUnBiMjRnZFc1cFkyOWtaVk5wZW1Vb2MzUnlhVzVuS1NCN1hHNGdJQ0FnZG1GeUlISmxjM1ZzZENBOUlISmxWVzVwWTI5a1pTNXNZWE4wU1c1a1pYZ2dQU0F3TzF4dUlDQWdJSGRvYVd4bElDaHlaVlZ1YVdOdlpHVXVkR1Z6ZENoemRISnBibWNwS1NCN1hHNGdJQ0FnSUNBckszSmxjM1ZzZER0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRiMjUyWlhKMGN5QmhJRlZ1YVdOdlpHVWdZSE4wY21sdVoyQWdkRzhnWVc0Z1lYSnlZWGt1WEc0Z0lDQXFYRzRnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J6ZEhKcGJtY2dWR2hsSUhOMGNtbHVaeUIwYnlCamIyNTJaWEowTGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUdOdmJuWmxjblJsWkNCaGNuSmhlUzVjYmlBZ0lDb3ZYRzRnSUdaMWJtTjBhVzl1SUhWdWFXTnZaR1ZVYjBGeWNtRjVLSE4wY21sdVp5a2dlMXh1SUNBZ0lISmxkSFZ5YmlCemRISnBibWN1YldGMFkyZ29jbVZWYm1samIyUmxLU0I4ZkNCYlhUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJUY0d4cGRITWdZU0JWYm1samIyUmxJR0J6ZEhKcGJtZGdJR2x1ZEc4Z1lXNGdZWEp5WVhrZ2IyWWdhWFJ6SUhkdmNtUnpMbHh1SUNBZ0tseHVJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdWR2hsSUhOMGNtbHVaeUIwYnlCcGJuTndaV04wTGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUhkdmNtUnpJRzltSUdCemRISnBibWRnTGx4dUlDQWdLaTljYmlBZ1puVnVZM1JwYjI0Z2RXNXBZMjlrWlZkdmNtUnpLSE4wY21sdVp5a2dlMXh1SUNBZ0lISmxkSFZ5YmlCemRISnBibWN1YldGMFkyZ29jbVZWYm1samIyUmxWMjl5WkNrZ2ZId2dXMTA3WEc0Z0lIMWNibHh1SUNBdktpMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRLaTljYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbElHRWdibVYzSUhCeWFYTjBhVzVsSUdCc2IyUmhjMmhnSUdaMWJtTjBhVzl1SUhWemFXNW5JSFJvWlNCZ1kyOXVkR1Y0ZEdBZ2IySnFaV04wTGx4dUlDQWdLbHh1SUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FxSUVCemFXNWpaU0F4TGpFdU1GeHVJQ0FnS2lCQVkyRjBaV2R2Y25rZ1ZYUnBiRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ1cyTnZiblJsZUhROWNtOXZkRjBnVkdobElHTnZiblJsZUhRZ2IySnFaV04wTGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3Um5WdVkzUnBiMjU5SUZKbGRIVnlibk1nWVNCdVpYY2dZR3h2WkdGemFHQWdablZ1WTNScGIyNHVYRzRnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FxWEc0Z0lDQXFJRjh1YldsNGFXNG9leUFuWm05dkp6b2dYeTVqYjI1emRHRnVkQ2duWm05dkp5a2dmU2s3WEc0Z0lDQXFYRzRnSUNBcUlIWmhjaUJzYjJSaGMyZ2dQU0JmTG5KMWJrbHVRMjl1ZEdWNGRDZ3BPMXh1SUNBZ0tpQnNiMlJoYzJndWJXbDRhVzRvZXlBblltRnlKem9nYkc5a1lYTm9MbU52Ym5OMFlXNTBLQ2RpWVhJbktTQjlLVHRjYmlBZ0lDcGNiaUFnSUNvZ1h5NXBjMFoxYm1OMGFXOXVLRjh1Wm05dktUdGNiaUFnSUNvZ0x5OGdQVDRnZEhKMVpWeHVJQ0FnS2lCZkxtbHpSblZ1WTNScGIyNG9YeTVpWVhJcE8xeHVJQ0FnS2lBdkx5QTlQaUJtWVd4elpWeHVJQ0FnS2x4dUlDQWdLaUJzYjJSaGMyZ3VhWE5HZFc1amRHbHZiaWhzYjJSaGMyZ3VabTl2S1R0Y2JpQWdJQ29nTHk4Z1BUNGdabUZzYzJWY2JpQWdJQ29nYkc5a1lYTm9MbWx6Um5WdVkzUnBiMjRvYkc5a1lYTm9MbUpoY2lrN1hHNGdJQ0FxSUM4dklEMCtJSFJ5ZFdWY2JpQWdJQ3BjYmlBZ0lDb2dMeThnUTNKbFlYUmxJR0VnYzNWd1pXUXRkWEFnWUdSbFptVnlZQ0JwYmlCT2IyUmxMbXB6TGx4dUlDQWdLaUIyWVhJZ1pHVm1aWElnUFNCZkxuSjFia2x1UTI5dWRHVjRkQ2g3SUNkelpYUlVhVzFsYjNWMEp6b2djMlYwU1cxdFpXUnBZWFJsSUgwcExtUmxabVZ5TzF4dUlDQWdLaTljYmlBZ2RtRnlJSEoxYmtsdVEyOXVkR1Y0ZENBOUlDaG1kVzVqZEdsdmJpQnlkVzVKYmtOdmJuUmxlSFFvWTI5dWRHVjRkQ2tnZTF4dUlDQWdJR052Ym5SbGVIUWdQU0JqYjI1MFpYaDBJRDA5SUc1MWJHd2dQeUJ5YjI5MElEb2dYeTVrWldaaGRXeDBjeWh5YjI5MExrOWlhbVZqZENncExDQmpiMjUwWlhoMExDQmZMbkJwWTJzb2NtOXZkQ3dnWTI5dWRHVjRkRkJ5YjNCektTazdYRzVjYmlBZ0lDQXZLaW9nUW5WcGJIUXRhVzRnWTI5dWMzUnlkV04wYjNJZ2NtVm1aWEpsYm1ObGN5NGdLaTljYmlBZ0lDQjJZWElnUVhKeVlYa2dQU0JqYjI1MFpYaDBMa0Z5Y21GNUxGeHVJQ0FnSUNBZ0lDQkVZWFJsSUQwZ1kyOXVkR1Y0ZEM1RVlYUmxMRnh1SUNBZ0lDQWdJQ0JGY25KdmNpQTlJR052Ym5SbGVIUXVSWEp5YjNJc1hHNGdJQ0FnSUNBZ0lFWjFibU4wYVc5dUlEMGdZMjl1ZEdWNGRDNUdkVzVqZEdsdmJpeGNiaUFnSUNBZ0lDQWdUV0YwYUNBOUlHTnZiblJsZUhRdVRXRjBhQ3hjYmlBZ0lDQWdJQ0FnVDJKcVpXTjBJRDBnWTI5dWRHVjRkQzVQWW1wbFkzUXNYRzRnSUNBZ0lDQWdJRkpsWjBWNGNDQTlJR052Ym5SbGVIUXVVbVZuUlhod0xGeHVJQ0FnSUNBZ0lDQlRkSEpwYm1jZ1BTQmpiMjUwWlhoMExsTjBjbWx1Wnl4Y2JpQWdJQ0FnSUNBZ1ZIbHdaVVZ5Y205eUlEMGdZMjl1ZEdWNGRDNVVlWEJsUlhKeWIzSTdYRzVjYmlBZ0lDQXZLaW9nVlhObFpDQm1iM0lnWW5WcGJIUXRhVzRnYldWMGFHOWtJSEpsWm1WeVpXNWpaWE11SUNvdlhHNGdJQ0FnZG1GeUlHRnljbUY1VUhKdmRHOGdQU0JCY25KaGVTNXdjbTkwYjNSNWNHVXNYRzRnSUNBZ0lDQWdJR1oxYm1OUWNtOTBieUE5SUVaMWJtTjBhVzl1TG5CeWIzUnZkSGx3WlN4Y2JpQWdJQ0FnSUNBZ2IySnFaV04wVUhKdmRHOGdQU0JQWW1wbFkzUXVjSEp2ZEc5MGVYQmxPMXh1WEc0Z0lDQWdMeW9xSUZWelpXUWdkRzhnWkdWMFpXTjBJRzkyWlhKeVpXRmphR2x1WnlCamIzSmxMV3B6SUhOb2FXMXpMaUFxTDF4dUlDQWdJSFpoY2lCamIzSmxTbk5FWVhSaElEMGdZMjl1ZEdWNGRGc25YMTlqYjNKbExXcHpYM05vWVhKbFpGOWZKMTA3WEc1Y2JpQWdJQ0F2S2lvZ1ZYTmxaQ0IwYnlCeVpYTnZiSFpsSUhSb1pTQmtaV052YlhCcGJHVmtJSE52ZFhKalpTQnZaaUJtZFc1amRHbHZibk11SUNvdlhHNGdJQ0FnZG1GeUlHWjFibU5VYjFOMGNtbHVaeUE5SUdaMWJtTlFjbTkwYnk1MGIxTjBjbWx1Wnp0Y2JseHVJQ0FnSUM4cUtpQlZjMlZrSUhSdklHTm9aV05ySUc5aWFtVmpkSE1nWm05eUlHOTNiaUJ3Y205d1pYSjBhV1Z6TGlBcUwxeHVJQ0FnSUhaaGNpQm9ZWE5QZDI1UWNtOXdaWEowZVNBOUlHOWlhbVZqZEZCeWIzUnZMbWhoYzA5M2JsQnliM0JsY25SNU8xeHVYRzRnSUNBZ0x5b3FJRlZ6WldRZ2RHOGdaMlZ1WlhKaGRHVWdkVzVwY1hWbElFbEVjeTRnS2k5Y2JpQWdJQ0IyWVhJZ2FXUkRiM1Z1ZEdWeUlEMGdNRHRjYmx4dUlDQWdJQzhxS2lCVmMyVmtJSFJ2SUdSbGRHVmpkQ0J0WlhSb2IyUnpJRzFoYzNGMVpYSmhaR2x1WnlCaGN5QnVZWFJwZG1VdUlDb3ZYRzRnSUNBZ2RtRnlJRzFoYzJ0VGNtTkxaWGtnUFNBb1puVnVZM1JwYjI0b0tTQjdYRzRnSUNBZ0lDQjJZWElnZFdsa0lEMGdMMXRlTGwwckpDOHVaWGhsWXloamIzSmxTbk5FWVhSaElDWW1JR052Y21WS2MwUmhkR0V1YTJWNWN5QW1KaUJqYjNKbFNuTkVZWFJoTG10bGVYTXVTVVZmVUZKUFZFOGdmSHdnSnljcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhWcFpDQS9JQ2duVTNsdFltOXNLSE55WXlsZk1TNG5JQ3NnZFdsa0tTQTZJQ2NuTzF4dUlDQWdJSDBvS1NrN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlZjMlZrSUhSdklISmxjMjlzZG1VZ2RHaGxYRzRnSUNBZ0lDb2dXMkIwYjFOMGNtbHVaMVJoWjJCZEtHaDBkSEE2THk5bFkyMWhMV2x1ZEdWeWJtRjBhVzl1WVd3dWIzSm5MMlZqYldFdE1qWXlMemN1TUM4amMyVmpMVzlpYW1WamRDNXdjbTkwYjNSNWNHVXVkRzl6ZEhKcGJtY3BYRzRnSUNBZ0lDb2diMllnZG1Gc2RXVnpMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lIWmhjaUJ1WVhScGRtVlBZbXBsWTNSVWIxTjBjbWx1WnlBOUlHOWlhbVZqZEZCeWIzUnZMblJ2VTNSeWFXNW5PMXh1WEc0Z0lDQWdMeW9xSUZWelpXUWdkRzhnYVc1bVpYSWdkR2hsSUdCUFltcGxZM1JnSUdOdmJuTjBjblZqZEc5eUxpQXFMMXh1SUNBZ0lIWmhjaUJ2WW1wbFkzUkRkRzl5VTNSeWFXNW5JRDBnWm5WdVkxUnZVM1J5YVc1bkxtTmhiR3dvVDJKcVpXTjBLVHRjYmx4dUlDQWdJQzhxS2lCVmMyVmtJSFJ2SUhKbGMzUnZjbVVnZEdobElHOXlhV2RwYm1Gc0lHQmZZQ0J5WldabGNtVnVZMlVnYVc0Z1lGOHVibTlEYjI1bWJHbGpkR0F1SUNvdlhHNGdJQ0FnZG1GeUlHOXNaRVJoYzJnZ1BTQnliMjkwTGw4N1hHNWNiaUFnSUNBdktpb2dWWE5sWkNCMGJ5QmtaWFJsWTNRZ2FXWWdZU0J0WlhSb2IyUWdhWE1nYm1GMGFYWmxMaUFxTDF4dUlDQWdJSFpoY2lCeVpVbHpUbUYwYVhabElEMGdVbVZuUlhod0tDZGVKeUFyWEc0Z0lDQWdJQ0JtZFc1alZHOVRkSEpwYm1jdVkyRnNiQ2hvWVhOUGQyNVFjbTl3WlhKMGVTa3VjbVZ3YkdGalpTaHlaVkpsWjBWNGNFTm9ZWElzSUNkY1hGeGNKQ1luS1Z4dUlDQWdJQ0FnTG5KbGNHeGhZMlVvTDJoaGMwOTNibEJ5YjNCbGNuUjVmQ2htZFc1amRHbHZiaWt1S2o4b1B6MWNYRnhjWEZ3b0tYd2dabTl5SUM0clB5Zy9QVnhjWEZ4Y1hGMHBMMmNzSUNja01TNHFQeWNwSUNzZ0p5UW5YRzRnSUNBZ0tUdGNibHh1SUNBZ0lDOHFLaUJDZFdsc2RDMXBiaUIyWVd4MVpTQnlaV1psY21WdVkyVnpMaUFxTDF4dUlDQWdJSFpoY2lCQ2RXWm1aWElnUFNCdGIyUjFiR1ZGZUhCdmNuUnpJRDhnWTI5dWRHVjRkQzVDZFdabVpYSWdPaUIxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0FnSUZONWJXSnZiQ0E5SUdOdmJuUmxlSFF1VTNsdFltOXNMRnh1SUNBZ0lDQWdJQ0JWYVc1ME9FRnljbUY1SUQwZ1kyOXVkR1Y0ZEM1VmFXNTBPRUZ5Y21GNUxGeHVJQ0FnSUNBZ0lDQmhiR3h2WTFWdWMyRm1aU0E5SUVKMVptWmxjaUEvSUVKMVptWmxjaTVoYkd4dlkxVnVjMkZtWlNBNklIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lDQWdaMlYwVUhKdmRHOTBlWEJsSUQwZ2IzWmxja0Z5WnloUFltcGxZM1F1WjJWMFVISnZkRzkwZVhCbFQyWXNJRTlpYW1WamRDa3NYRzRnSUNBZ0lDQWdJRzlpYW1WamRFTnlaV0YwWlNBOUlFOWlhbVZqZEM1amNtVmhkR1VzWEc0Z0lDQWdJQ0FnSUhCeWIzQmxjblI1U1hORmJuVnRaWEpoWW14bElEMGdiMkpxWldOMFVISnZkRzh1Y0hKdmNHVnlkSGxKYzBWdWRXMWxjbUZpYkdVc1hHNGdJQ0FnSUNBZ0lITndiR2xqWlNBOUlHRnljbUY1VUhKdmRHOHVjM0JzYVdObExGeHVJQ0FnSUNBZ0lDQnpjSEpsWVdSaFlteGxVM2x0WW05c0lEMGdVM2x0WW05c0lEOGdVM2x0WW05c0xtbHpRMjl1WTJGMFUzQnlaV0ZrWVdKc1pTQTZJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJQ0FnYzNsdFNYUmxjbUYwYjNJZ1BTQlRlVzFpYjJ3Z1B5QlRlVzFpYjJ3dWFYUmxjbUYwYjNJZ09pQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0lDQWdJSE41YlZSdlUzUnlhVzVuVkdGbklEMGdVM2x0WW05c0lEOGdVM2x0WW05c0xuUnZVM1J5YVc1blZHRm5JRG9nZFc1a1pXWnBibVZrTzF4dVhHNGdJQ0FnZG1GeUlHUmxabWx1WlZCeWIzQmxjblI1SUQwZ0tHWjFibU4wYVc5dUtDa2dlMXh1SUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJR1oxYm1NZ1BTQm5aWFJPWVhScGRtVW9UMkpxWldOMExDQW5aR1ZtYVc1bFVISnZjR1Z5ZEhrbktUdGNiaUFnSUNBZ0lDQWdablZ1WXloN2ZTd2dKeWNzSUh0OUtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHWjFibU03WEc0Z0lDQWdJQ0I5SUdOaGRHTm9JQ2hsS1NCN2ZWeHVJQ0FnSUgwb0tTazdYRzVjYmlBZ0lDQXZLaW9nVFc5amEyVmtJR0oxYVd4MExXbHVjeTRnS2k5Y2JpQWdJQ0IyWVhJZ1kzUjRRMnhsWVhKVWFXMWxiM1YwSUQwZ1kyOXVkR1Y0ZEM1amJHVmhjbFJwYldWdmRYUWdJVDA5SUhKdmIzUXVZMnhsWVhKVWFXMWxiM1YwSUNZbUlHTnZiblJsZUhRdVkyeGxZWEpVYVcxbGIzVjBMRnh1SUNBZ0lDQWdJQ0JqZEhoT2IzY2dQU0JFWVhSbElDWW1JRVJoZEdVdWJtOTNJQ0U5UFNCeWIyOTBMa1JoZEdVdWJtOTNJQ1ltSUVSaGRHVXVibTkzTEZ4dUlDQWdJQ0FnSUNCamRIaFRaWFJVYVcxbGIzVjBJRDBnWTI5dWRHVjRkQzV6WlhSVWFXMWxiM1YwSUNFOVBTQnliMjkwTG5ObGRGUnBiV1Z2ZFhRZ0ppWWdZMjl1ZEdWNGRDNXpaWFJVYVcxbGIzVjBPMXh1WEc0Z0lDQWdMeW9nUW5WcGJIUXRhVzRnYldWMGFHOWtJSEpsWm1WeVpXNWpaWE1nWm05eUlIUm9iM05sSUhkcGRHZ2dkR2hsSUhOaGJXVWdibUZ0WlNCaGN5QnZkR2hsY2lCZ2JHOWtZWE5vWUNCdFpYUm9iMlJ6TGlBcUwxeHVJQ0FnSUhaaGNpQnVZWFJwZG1WRFpXbHNJRDBnVFdGMGFDNWpaV2xzTEZ4dUlDQWdJQ0FnSUNCdVlYUnBkbVZHYkc5dmNpQTlJRTFoZEdndVpteHZiM0lzWEc0Z0lDQWdJQ0FnSUc1aGRHbDJaVWRsZEZONWJXSnZiSE1nUFNCUFltcGxZM1F1WjJWMFQzZHVVSEp2Y0dWeWRIbFRlVzFpYjJ4ekxGeHVJQ0FnSUNBZ0lDQnVZWFJwZG1WSmMwSjFabVpsY2lBOUlFSjFabVpsY2lBL0lFSjFabVpsY2k1cGMwSjFabVpsY2lBNklIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lDQWdibUYwYVhabFNYTkdhVzVwZEdVZ1BTQmpiMjUwWlhoMExtbHpSbWx1YVhSbExGeHVJQ0FnSUNBZ0lDQnVZWFJwZG1WS2IybHVJRDBnWVhKeVlYbFFjbTkwYnk1cWIybHVMRnh1SUNBZ0lDQWdJQ0J1WVhScGRtVkxaWGx6SUQwZ2IzWmxja0Z5WnloUFltcGxZM1F1YTJWNWN5d2dUMkpxWldOMEtTeGNiaUFnSUNBZ0lDQWdibUYwYVhabFRXRjRJRDBnVFdGMGFDNXRZWGdzWEc0Z0lDQWdJQ0FnSUc1aGRHbDJaVTFwYmlBOUlFMWhkR2d1YldsdUxGeHVJQ0FnSUNBZ0lDQnVZWFJwZG1WT2IzY2dQU0JFWVhSbExtNXZkeXhjYmlBZ0lDQWdJQ0FnYm1GMGFYWmxVR0Z5YzJWSmJuUWdQU0JqYjI1MFpYaDBMbkJoY25ObFNXNTBMRnh1SUNBZ0lDQWdJQ0J1WVhScGRtVlNZVzVrYjIwZ1BTQk5ZWFJvTG5KaGJtUnZiU3hjYmlBZ0lDQWdJQ0FnYm1GMGFYWmxVbVYyWlhKelpTQTlJR0Z5Y21GNVVISnZkRzh1Y21WMlpYSnpaVHRjYmx4dUlDQWdJQzhxSUVKMWFXeDBMV2x1SUcxbGRHaHZaQ0J5WldabGNtVnVZMlZ6SUhSb1lYUWdZWEpsSUhabGNtbG1hV1ZrSUhSdklHSmxJRzVoZEdsMlpTNGdLaTljYmlBZ0lDQjJZWElnUkdGMFlWWnBaWGNnUFNCblpYUk9ZWFJwZG1Vb1kyOXVkR1Y0ZEN3Z0owUmhkR0ZXYVdWM0p5a3NYRzRnSUNBZ0lDQWdJRTFoY0NBOUlHZGxkRTVoZEdsMlpTaGpiMjUwWlhoMExDQW5UV0Z3Snlrc1hHNGdJQ0FnSUNBZ0lGQnliMjFwYzJVZ1BTQm5aWFJPWVhScGRtVW9ZMjl1ZEdWNGRDd2dKMUJ5YjIxcGMyVW5LU3hjYmlBZ0lDQWdJQ0FnVTJWMElEMGdaMlYwVG1GMGFYWmxLR052Ym5SbGVIUXNJQ2RUWlhRbktTeGNiaUFnSUNBZ0lDQWdWMlZoYTAxaGNDQTlJR2RsZEU1aGRHbDJaU2hqYjI1MFpYaDBMQ0FuVjJWaGEwMWhjQ2NwTEZ4dUlDQWdJQ0FnSUNCdVlYUnBkbVZEY21WaGRHVWdQU0JuWlhST1lYUnBkbVVvVDJKcVpXTjBMQ0FuWTNKbFlYUmxKeWs3WEc1Y2JpQWdJQ0F2S2lvZ1ZYTmxaQ0IwYnlCemRHOXlaU0JtZFc1amRHbHZiaUJ0WlhSaFpHRjBZUzRnS2k5Y2JpQWdJQ0IyWVhJZ2JXVjBZVTFoY0NBOUlGZGxZV3ROWVhBZ0ppWWdibVYzSUZkbFlXdE5ZWEE3WEc1Y2JpQWdJQ0F2S2lvZ1ZYTmxaQ0IwYnlCc2IyOXJkWEFnZFc1dGFXNXBabWxsWkNCbWRXNWpkR2x2YmlCdVlXMWxjeTRnS2k5Y2JpQWdJQ0IyWVhJZ2NtVmhiRTVoYldWeklEMGdlMzA3WEc1Y2JpQWdJQ0F2S2lvZ1ZYTmxaQ0IwYnlCa1pYUmxZM1FnYldGd2N5d2djMlYwY3l3Z1lXNWtJSGRsWVd0dFlYQnpMaUFxTDF4dUlDQWdJSFpoY2lCa1lYUmhWbWxsZDBOMGIzSlRkSEpwYm1jZ1BTQjBiMU52ZFhKalpTaEVZWFJoVm1sbGR5a3NYRzRnSUNBZ0lDQWdJRzFoY0VOMGIzSlRkSEpwYm1jZ1BTQjBiMU52ZFhKalpTaE5ZWEFwTEZ4dUlDQWdJQ0FnSUNCd2NtOXRhWE5sUTNSdmNsTjBjbWx1WnlBOUlIUnZVMjkxY21ObEtGQnliMjFwYzJVcExGeHVJQ0FnSUNBZ0lDQnpaWFJEZEc5eVUzUnlhVzVuSUQwZ2RHOVRiM1Z5WTJVb1UyVjBLU3hjYmlBZ0lDQWdJQ0FnZDJWaGEwMWhjRU4wYjNKVGRISnBibWNnUFNCMGIxTnZkWEpqWlNoWFpXRnJUV0Z3S1R0Y2JseHVJQ0FnSUM4cUtpQlZjMlZrSUhSdklHTnZiblpsY25RZ2MzbHRZbTlzY3lCMGJ5QndjbWx0YVhScGRtVnpJR0Z1WkNCemRISnBibWR6TGlBcUwxeHVJQ0FnSUhaaGNpQnplVzFpYjJ4UWNtOTBieUE5SUZONWJXSnZiQ0EvSUZONWJXSnZiQzV3Y205MGIzUjVjR1VnT2lCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNBZ0lITjViV0p2YkZaaGJIVmxUMllnUFNCemVXMWliMnhRY205MGJ5QS9JSE41YldKdmJGQnliM1J2TG5aaGJIVmxUMllnT2lCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNBZ0lITjViV0p2YkZSdlUzUnlhVzVuSUQwZ2MzbHRZbTlzVUhKdmRHOGdQeUJ6ZVcxaWIyeFFjbTkwYnk1MGIxTjBjbWx1WnlBNklIVnVaR1ZtYVc1bFpEdGNibHh1SUNBZ0lDOHFMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRLaTljYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOeVpXRjBaWE1nWVNCZ2JHOWtZWE5vWUNCdlltcGxZM1FnZDJocFkyZ2dkM0poY0hNZ1lIWmhiSFZsWUNCMGJ5QmxibUZpYkdVZ2FXMXdiR2xqYVhRZ2JXVjBhRzlrWEc0Z0lDQWdJQ29nWTJoaGFXNGdjMlZ4ZFdWdVkyVnpMaUJOWlhSb2IyUnpJSFJvWVhRZ2IzQmxjbUYwWlNCdmJpQmhibVFnY21WMGRYSnVJR0Z5Y21GNWN5d2dZMjlzYkdWamRHbHZibk1zWEc0Z0lDQWdJQ29nWVc1a0lHWjFibU4wYVc5dWN5QmpZVzRnWW1VZ1kyaGhhVzVsWkNCMGIyZGxkR2hsY2k0Z1RXVjBhRzlrY3lCMGFHRjBJSEpsZEhKcFpYWmxJR0VnYzJsdVoyeGxJSFpoYkhWbFhHNGdJQ0FnSUNvZ2IzSWdiV0Y1SUhKbGRIVnliaUJoSUhCeWFXMXBkR2wyWlNCMllXeDFaU0IzYVd4c0lHRjFkRzl0WVhScFkyRnNiSGtnWlc1a0lIUm9aU0JqYUdGcGJpQnpaWEYxWlc1alpWeHVJQ0FnSUNBcUlHRnVaQ0J5WlhSMWNtNGdkR2hsSUhWdWQzSmhjSEJsWkNCMllXeDFaUzRnVDNSb1pYSjNhWE5sTENCMGFHVWdkbUZzZFdVZ2JYVnpkQ0JpWlNCMWJuZHlZWEJ3WldSY2JpQWdJQ0FnS2lCM2FYUm9JR0JmSTNaaGJIVmxZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRVY0Y0d4cFkybDBJR05vWVdsdUlITmxjWFZsYm1ObGN5d2dkMmhwWTJnZ2JYVnpkQ0JpWlNCMWJuZHlZWEJ3WldRZ2QybDBhQ0JnWHlOMllXeDFaV0FzSUcxaGVTQmlaVnh1SUNBZ0lDQXFJR1Z1WVdKc1pXUWdkWE5wYm1jZ1lGOHVZMmhoYVc1Z0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1ZHaGxJR1Y0WldOMWRHbHZiaUJ2WmlCamFHRnBibVZrSUcxbGRHaHZaSE1nYVhNZ2JHRjZlU3dnZEdoaGRDQnBjeXdnYVhRbmN5QmtaV1psY25KbFpDQjFiblJwYkZ4dUlDQWdJQ0FxSUdCZkkzWmhiSFZsWUNCcGN5QnBiWEJzYVdOcGRHeDVJRzl5SUdWNGNHeHBZMmwwYkhrZ1kyRnNiR1ZrTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nVEdGNmVTQmxkbUZzZFdGMGFXOXVJR0ZzYkc5M2N5QnpaWFpsY21Gc0lHMWxkR2h2WkhNZ2RHOGdjM1Z3Y0c5eWRDQnphRzl5ZEdOMWRDQm1kWE5wYjI0dVhHNGdJQ0FnSUNvZ1UyaHZjblJqZFhRZ1puVnphVzl1SUdseklHRnVJRzl3ZEdsdGFYcGhkR2x2YmlCMGJ5QnRaWEpuWlNCcGRHVnlZWFJsWlNCallXeHNjenNnZEdocGN5QmhkbTlwWkhOY2JpQWdJQ0FnS2lCMGFHVWdZM0psWVhScGIyNGdiMllnYVc1MFpYSnRaV1JwWVhSbElHRnljbUY1Y3lCaGJtUWdZMkZ1SUdkeVpXRjBiSGtnY21Wa2RXTmxJSFJvWlNCdWRXMWlaWElnYjJaY2JpQWdJQ0FnS2lCcGRHVnlZWFJsWlNCbGVHVmpkWFJwYjI1ekxpQlRaV04wYVc5dWN5QnZaaUJoSUdOb1lXbHVJSE5sY1hWbGJtTmxJSEYxWVd4cFpua2dabTl5SUhOb2IzSjBZM1YwWEc0Z0lDQWdJQ29nWm5WemFXOXVJR2xtSUhSb1pTQnpaV04wYVc5dUlHbHpJR0Z3Y0d4cFpXUWdkRzhnWVc0Z1lYSnlZWGtnWVc1a0lHbDBaWEpoZEdWbGN5QmhZMk5sY0hRZ2IyNXNlVnh1SUNBZ0lDQXFJRzl1WlNCaGNtZDFiV1Z1ZEM0Z1ZHaGxJR2hsZFhKcGMzUnBZeUJtYjNJZ2QyaGxkR2hsY2lCaElITmxZM1JwYjI0Z2NYVmhiR2xtYVdWeklHWnZjaUJ6YUc5eWRHTjFkRnh1SUNBZ0lDQXFJR1oxYzJsdmJpQnBjeUJ6ZFdKcVpXTjBJSFJ2SUdOb1lXNW5aUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRU5vWVdsdWFXNW5JR2x6SUhOMWNIQnZjblJsWkNCcGJpQmpkWE4wYjIwZ1luVnBiR1J6SUdGeklHeHZibWNnWVhNZ2RHaGxJR0JmSTNaaGJIVmxZQ0J0WlhSb2IyUWdhWE5jYmlBZ0lDQWdLaUJrYVhKbFkzUnNlU0J2Y2lCcGJtUnBjbVZqZEd4NUlHbHVZMngxWkdWa0lHbHVJSFJvWlNCaWRXbHNaQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRWx1SUdGa1pHbDBhVzl1SUhSdklHeHZaR0Z6YUNCdFpYUm9iMlJ6TENCM2NtRndjR1Z5Y3lCb1lYWmxJR0JCY25KaGVXQWdZVzVrSUdCVGRISnBibWRnSUcxbGRHaHZaSE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJVYUdVZ2QzSmhjSEJsY2lCZ1FYSnlZWGxnSUcxbGRHaHZaSE1nWVhKbE9seHVJQ0FnSUNBcUlHQmpiMjVqWVhSZ0xDQmdhbTlwYm1Bc0lHQndiM0JnTENCZ2NIVnphR0FzSUdCemFHbG1kR0FzSUdCemIzSjBZQ3dnWUhOd2JHbGpaV0FzSUdGdVpDQmdkVzV6YUdsbWRHQmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGUm9aU0IzY21Gd2NHVnlJR0JUZEhKcGJtZGdJRzFsZEdodlpITWdZWEpsT2x4dUlDQWdJQ0FxSUdCeVpYQnNZV05sWUNCaGJtUWdZSE53YkdsMFlGeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1ZHaGxJSGR5WVhCd1pYSWdiV1YwYUc5a2N5QjBhR0YwSUhOMWNIQnZjblFnYzJodmNuUmpkWFFnWm5WemFXOXVJR0Z5WlRwY2JpQWdJQ0FnS2lCZ1lYUmdMQ0JnWTI5dGNHRmpkR0FzSUdCa2NtOXdZQ3dnWUdSeWIzQlNhV2RvZEdBc0lHQmtjbTl3VjJocGJHVmdMQ0JnWm1sc2RHVnlZQ3dnWUdacGJtUmdMRnh1SUNBZ0lDQXFJR0JtYVc1a1RHRnpkR0FzSUdCb1pXRmtZQ3dnWUdsdWFYUnBZV3hnTENCZ2JHRnpkR0FzSUdCdFlYQmdMQ0JnY21WcVpXTjBZQ3dnWUhKbGRtVnljMlZnTENCZ2MyeHBZMlZnTEZ4dUlDQWdJQ0FxSUdCMFlXbHNZQ3dnWUhSaGEyVmdMQ0JnZEdGclpWSnBaMmgwWUN3Z1lIUmhhMlZTYVdkb2RGZG9hV3hsWUN3Z1lIUmhhMlZYYUdsc1pXQXNJR0Z1WkNCZ2RHOUJjbkpoZVdCY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUZSb1pTQmphR0ZwYm1GaWJHVWdkM0poY0hCbGNpQnRaWFJvYjJSeklHRnlaVHBjYmlBZ0lDQWdLaUJnWVdaMFpYSmdMQ0JnWVhKNVlDd2dZR0Z6YzJsbmJtQXNJR0JoYzNOcFoyNUpibUFzSUdCaGMzTnBaMjVKYmxkcGRHaGdMQ0JnWVhOemFXZHVWMmwwYUdBc0lHQmhkR0FzWEc0Z0lDQWdJQ29nWUdKbFptOXlaV0FzSUdCaWFXNWtZQ3dnWUdKcGJtUkJiR3hnTENCZ1ltbHVaRXRsZVdBc0lHQmpZWE4wUVhKeVlYbGdMQ0JnWTJoaGFXNWdMQ0JnWTJoMWJtdGdMRnh1SUNBZ0lDQXFJR0JqYjIxdGFYUmdMQ0JnWTI5dGNHRmpkR0FzSUdCamIyNWpZWFJnTENCZ1kyOXVabTl5YlhOZ0xDQmdZMjl1YzNSaGJuUmdMQ0JnWTI5MWJuUkNlV0FzSUdCamNtVmhkR1ZnTEZ4dUlDQWdJQ0FxSUdCamRYSnllV0FzSUdCa1pXSnZkVzVqWldBc0lHQmtaV1poZFd4MGMyQXNJR0JrWldaaGRXeDBjMFJsWlhCZ0xDQmdaR1ZtWlhKZ0xDQmdaR1ZzWVhsZ0xGeHVJQ0FnSUNBcUlHQmthV1ptWlhKbGJtTmxZQ3dnWUdScFptWmxjbVZ1WTJWQ2VXQXNJR0JrYVdabVpYSmxibU5sVjJsMGFHQXNJR0JrY205d1lDd2dZR1J5YjNCU2FXZG9kR0FzWEc0Z0lDQWdJQ29nWUdSeWIzQlNhV2RvZEZkb2FXeGxZQ3dnWUdSeWIzQlhhR2xzWldBc0lHQmxlSFJsYm1SZ0xDQmdaWGgwWlc1a1YybDBhR0FzSUdCbWFXeHNZQ3dnWUdacGJIUmxjbUFzWEc0Z0lDQWdJQ29nWUdac1lYUk5ZWEJnTENCZ1pteGhkRTFoY0VSbFpYQmdMQ0JnWm14aGRFMWhjRVJsY0hSb1lDd2dZR1pzWVhSMFpXNWdMQ0JnWm14aGRIUmxia1JsWlhCZ0xGeHVJQ0FnSUNBcUlHQm1iR0YwZEdWdVJHVndkR2hnTENCZ1pteHBjR0FzSUdCbWJHOTNZQ3dnWUdac2IzZFNhV2RvZEdBc0lHQm1jbTl0VUdGcGNuTmdMQ0JnWm5WdVkzUnBiMjV6WUN4Y2JpQWdJQ0FnS2lCZ1puVnVZM1JwYjI1elNXNWdMQ0JnWjNKdmRYQkNlV0FzSUdCcGJtbDBhV0ZzWUN3Z1lHbHVkR1Z5YzJWamRHbHZibUFzSUdCcGJuUmxjbk5sWTNScGIyNUNlV0FzWEc0Z0lDQWdJQ29nWUdsdWRHVnljMlZqZEdsdmJsZHBkR2hnTENCZ2FXNTJaWEowWUN3Z1lHbHVkbVZ5ZEVKNVlDd2dZR2x1ZG05clpVMWhjR0FzSUdCcGRHVnlZWFJsWldBc0lHQnJaWGxDZVdBc1hHNGdJQ0FnSUNvZ1lHdGxlWE5nTENCZ2EyVjVjMGx1WUN3Z1lHMWhjR0FzSUdCdFlYQkxaWGx6WUN3Z1lHMWhjRlpoYkhWbGMyQXNJR0J0WVhSamFHVnpZQ3dnWUcxaGRHTm9aWE5RY205d1pYSjBlV0FzWEc0Z0lDQWdJQ29nWUcxbGJXOXBlbVZnTENCZ2JXVnlaMlZnTENCZ2JXVnlaMlZYYVhSb1lDd2dZRzFsZEdodlpHQXNJR0J0WlhSb2IyUlBabUFzSUdCdGFYaHBibUFzSUdCdVpXZGhkR1ZnTEZ4dUlDQWdJQ0FxSUdCdWRHaEJjbWRnTENCZ2IyMXBkR0FzSUdCdmJXbDBRbmxnTENCZ2IyNWpaV0FzSUdCdmNtUmxja0o1WUN3Z1lHOTJaWEpnTENCZ2IzWmxja0Z5WjNOZ0xGeHVJQ0FnSUNBcUlHQnZkbVZ5UlhabGNubGdMQ0JnYjNabGNsTnZiV1ZnTENCZ2NHRnlkR2xoYkdBc0lHQndZWEowYVdGc1VtbG5hSFJnTENCZ2NHRnlkR2wwYVc5dVlDd2dZSEJwWTJ0Z0xGeHVJQ0FnSUNBcUlHQndhV05yUW5sZ0xDQmdjR3hoYm5SZ0xDQmdjSEp2Y0dWeWRIbGdMQ0JnY0hKdmNHVnlkSGxQWm1Bc0lHQndkV3hzWUN3Z1lIQjFiR3hCYkd4Z0xDQmdjSFZzYkVGc2JFSjVZQ3hjYmlBZ0lDQWdLaUJnY0hWc2JFRnNiRmRwZEdoZ0xDQmdjSFZzYkVGMFlDd2dZSEIxYzJoZ0xDQmdjbUZ1WjJWZ0xDQmdjbUZ1WjJWU2FXZG9kR0FzSUdCeVpXRnlaMkFzSUdCeVpXcGxZM1JnTEZ4dUlDQWdJQ0FxSUdCeVpXMXZkbVZnTENCZ2NtVnpkR0FzSUdCeVpYWmxjbk5sWUN3Z1lITmhiWEJzWlZOcGVtVmdMQ0JnYzJWMFlDd2dZSE5sZEZkcGRHaGdMQ0JnYzJoMVptWnNaV0FzWEc0Z0lDQWdJQ29nWUhOc2FXTmxZQ3dnWUhOdmNuUmdMQ0JnYzI5eWRFSjVZQ3dnWUhOd2JHbGpaV0FzSUdCemNISmxZV1JnTENCZ2RHRnBiR0FzSUdCMFlXdGxZQ3dnWUhSaGEyVlNhV2RvZEdBc1hHNGdJQ0FnSUNvZ1lIUmhhMlZTYVdkb2RGZG9hV3hsWUN3Z1lIUmhhMlZYYUdsc1pXQXNJR0IwWVhCZ0xDQmdkR2h5YjNSMGJHVmdMQ0JnZEdoeWRXQXNJR0IwYjBGeWNtRjVZQ3hjYmlBZ0lDQWdLaUJnZEc5UVlXbHljMkFzSUdCMGIxQmhhWEp6U1c1Z0xDQmdkRzlRWVhSb1lDd2dZSFJ2VUd4aGFXNVBZbXBsWTNSZ0xDQmdkSEpoYm5ObWIzSnRZQ3dnWUhWdVlYSjVZQ3hjYmlBZ0lDQWdLaUJnZFc1cGIyNWdMQ0JnZFc1cGIyNUNlV0FzSUdCMWJtbHZibGRwZEdoZ0xDQmdkVzVwY1dBc0lHQjFibWx4UW5sZ0xDQmdkVzVwY1ZkcGRHaGdMQ0JnZFc1elpYUmdMRnh1SUNBZ0lDQXFJR0IxYm5Ob2FXWjBZQ3dnWUhWdWVtbHdZQ3dnWUhWdWVtbHdWMmwwYUdBc0lHQjFjR1JoZEdWZ0xDQmdkWEJrWVhSbFYybDBhR0FzSUdCMllXeDFaWE5nTEZ4dUlDQWdJQ0FxSUdCMllXeDFaWE5KYm1Bc0lHQjNhWFJvYjNWMFlDd2dZSGR5WVhCZ0xDQmdlRzl5WUN3Z1lIaHZja0o1WUN3Z1lIaHZjbGRwZEdoZ0xDQmdlbWx3WUN4Y2JpQWdJQ0FnS2lCZ2VtbHdUMkpxWldOMFlDd2dZSHBwY0U5aWFtVmpkRVJsWlhCZ0xDQmhibVFnWUhwcGNGZHBkR2hnWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJVYUdVZ2QzSmhjSEJsY2lCdFpYUm9iMlJ6SUhSb1lYUWdZWEpsSUNvcWJtOTBLaW9nWTJoaGFXNWhZbXhsSUdKNUlHUmxabUYxYkhRZ1lYSmxPbHh1SUNBZ0lDQXFJR0JoWkdSZ0xDQmdZWFIwWlcxd2RHQXNJR0JqWVcxbGJFTmhjMlZnTENCZ1kyRndhWFJoYkdsNlpXQXNJR0JqWldsc1lDd2dZR05zWVcxd1lDd2dZR05zYjI1bFlDeGNiaUFnSUNBZ0tpQmdZMnh2Ym1WRVpXVndZQ3dnWUdOc2IyNWxSR1ZsY0ZkcGRHaGdMQ0JnWTJ4dmJtVlhhWFJvWUN3Z1lHTnZibVp2Y20xelZHOWdMQ0JnWkdWaWRYSnlZQ3hjYmlBZ0lDQWdLaUJnWkdWbVlYVnNkRlJ2WUN3Z1lHUnBkbWxrWldBc0lHQmxZV05vWUN3Z1lHVmhZMmhTYVdkb2RHQXNJR0JsYm1SelYybDBhR0FzSUdCbGNXQXNJR0JsYzJOaGNHVmdMRnh1SUNBZ0lDQXFJR0JsYzJOaGNHVlNaV2RGZUhCZ0xDQmdaWFpsY25sZ0xDQmdabWx1WkdBc0lHQm1hVzVrU1c1a1pYaGdMQ0JnWm1sdVpFdGxlV0FzSUdCbWFXNWtUR0Z6ZEdBc1hHNGdJQ0FnSUNvZ1lHWnBibVJNWVhOMFNXNWtaWGhnTENCZ1ptbHVaRXhoYzNSTFpYbGdMQ0JnWm1seWMzUmdMQ0JnWm14dmIzSmdMQ0JnWm05eVJXRmphR0FzSUdCbWIzSkZZV05vVW1sbmFIUmdMRnh1SUNBZ0lDQXFJR0JtYjNKSmJtQXNJR0JtYjNKSmJsSnBaMmgwWUN3Z1lHWnZjazkzYm1Bc0lHQm1iM0pQZDI1U2FXZG9kR0FzSUdCblpYUmdMQ0JnWjNSZ0xDQmdaM1JsWUN3Z1lHaGhjMkFzWEc0Z0lDQWdJQ29nWUdoaGMwbHVZQ3dnWUdobFlXUmdMQ0JnYVdSbGJuUnBkSGxnTENCZ2FXNWpiSFZrWlhOZ0xDQmdhVzVrWlhoUFptQXNJR0JwYmxKaGJtZGxZQ3dnWUdsdWRtOXJaV0FzWEc0Z0lDQWdJQ29nWUdselFYSm5kVzFsYm5SellDd2dZR2x6UVhKeVlYbGdMQ0JnYVhOQmNuSmhlVUoxWm1abGNtQXNJR0JwYzBGeWNtRjVUR2xyWldBc0lHQnBjMEZ5Y21GNVRHbHJaVTlpYW1WamRHQXNYRzRnSUNBZ0lDb2dZR2x6UW05dmJHVmhibUFzSUdCcGMwSjFabVpsY21Bc0lHQnBjMFJoZEdWZ0xDQmdhWE5GYkdWdFpXNTBZQ3dnWUdselJXMXdkSGxnTENCZ2FYTkZjWFZoYkdBc1hHNGdJQ0FnSUNvZ1lHbHpSWEYxWVd4WGFYUm9ZQ3dnWUdselJYSnliM0pnTENCZ2FYTkdhVzVwZEdWZ0xDQmdhWE5HZFc1amRHbHZibUFzSUdCcGMwbHVkR1ZuWlhKZ0xDQmdhWE5NWlc1bmRHaGdMRnh1SUNBZ0lDQXFJR0JwYzAxaGNHQXNJR0JwYzAxaGRHTm9ZQ3dnWUdselRXRjBZMmhYYVhSb1lDd2dZR2x6VG1GT1lDd2dZR2x6VG1GMGFYWmxZQ3dnWUdselRtbHNZQ3dnWUdselRuVnNiR0FzWEc0Z0lDQWdJQ29nWUdselRuVnRZbVZ5WUN3Z1lHbHpUMkpxWldOMFlDd2dZR2x6VDJKcVpXTjBUR2xyWldBc0lHQnBjMUJzWVdsdVQySnFaV04wWUN3Z1lHbHpVbVZuUlhod1lDeGNiaUFnSUNBZ0tpQmdhWE5UWVdabFNXNTBaV2RsY21Bc0lHQnBjMU5sZEdBc0lHQnBjMU4wY21sdVoyQXNJR0JwYzFWdVpHVm1hVzVsWkdBc0lHQnBjMVI1Y0dWa1FYSnlZWGxnTEZ4dUlDQWdJQ0FxSUdCcGMxZGxZV3ROWVhCZ0xDQmdhWE5YWldGclUyVjBZQ3dnWUdwdmFXNWdMQ0JnYTJWaVlXSkRZWE5sWUN3Z1lHeGhjM1JnTENCZ2JHRnpkRWx1WkdWNFQyWmdMRnh1SUNBZ0lDQXFJR0JzYjNkbGNrTmhjMlZnTENCZ2JHOTNaWEpHYVhKemRHQXNJR0JzZEdBc0lHQnNkR1ZnTENCZ2JXRjRZQ3dnWUcxaGVFSjVZQ3dnWUcxbFlXNWdMQ0JnYldWaGJrSjVZQ3hjYmlBZ0lDQWdLaUJnYldsdVlDd2dZRzFwYmtKNVlDd2dZRzExYkhScGNHeDVZQ3dnWUc1dlEyOXVabXhwWTNSZ0xDQmdibTl2Y0dBc0lHQnViM2RnTENCZ2JuUm9ZQ3dnWUhCaFpHQXNYRzRnSUNBZ0lDb2dZSEJoWkVWdVpHQXNJR0J3WVdSVGRHRnlkR0FzSUdCd1lYSnpaVWx1ZEdBc0lHQndiM0JnTENCZ2NtRnVaRzl0WUN3Z1lISmxaSFZqWldBc0lHQnlaV1IxWTJWU2FXZG9kR0FzWEc0Z0lDQWdJQ29nWUhKbGNHVmhkR0FzSUdCeVpYTjFiSFJnTENCZ2NtOTFibVJnTENCZ2NuVnVTVzVEYjI1MFpYaDBZQ3dnWUhOaGJYQnNaV0FzSUdCemFHbG1kR0FzSUdCemFYcGxZQ3hjYmlBZ0lDQWdLaUJnYzI1aGEyVkRZWE5sWUN3Z1lITnZiV1ZnTENCZ2MyOXlkR1ZrU1c1a1pYaGdMQ0JnYzI5eWRHVmtTVzVrWlhoQ2VXQXNJR0J6YjNKMFpXUk1ZWE4wU1c1a1pYaGdMRnh1SUNBZ0lDQXFJR0J6YjNKMFpXUk1ZWE4wU1c1a1pYaENlV0FzSUdCemRHRnlkRU5oYzJWZ0xDQmdjM1JoY25SelYybDBhR0FzSUdCemRIVmlRWEp5WVhsZ0xDQmdjM1IxWWtaaGJITmxZQ3hjYmlBZ0lDQWdLaUJnYzNSMVlrOWlhbVZqZEdBc0lHQnpkSFZpVTNSeWFXNW5ZQ3dnWUhOMGRXSlVjblZsWUN3Z1lITjFZblJ5WVdOMFlDd2dZSE4xYldBc0lHQnpkVzFDZVdBc1hHNGdJQ0FnSUNvZ1lIUmxiWEJzWVhSbFlDd2dZSFJwYldWellDd2dZSFJ2Um1sdWFYUmxZQ3dnWUhSdlNXNTBaV2RsY21Bc0lHQjBiMHBUVDA1Z0xDQmdkRzlNWlc1bmRHaGdMRnh1SUNBZ0lDQXFJR0IwYjB4dmQyVnlZQ3dnWUhSdlRuVnRZbVZ5WUN3Z1lIUnZVMkZtWlVsdWRHVm5aWEpnTENCZ2RHOVRkSEpwYm1kZ0xDQmdkRzlWY0hCbGNtQXNJR0IwY21sdFlDeGNiaUFnSUNBZ0tpQmdkSEpwYlVWdVpHQXNJR0IwY21sdFUzUmhjblJnTENCZ2RISjFibU5oZEdWZ0xDQmdkVzVsYzJOaGNHVmdMQ0JnZFc1cGNYVmxTV1JnTENCZ2RYQndaWEpEWVhObFlDeGNiaUFnSUNBZ0tpQmdkWEJ3WlhKR2FYSnpkR0FzSUdCMllXeDFaV0FzSUdGdVpDQmdkMjl5WkhOZ1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWJtRnRaU0JmWEc0Z0lDQWdJQ29nUUdOdmJuTjBjblZqZEc5eVhHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlGTmxjVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdLbjBnZG1Gc2RXVWdWR2hsSUhaaGJIVmxJSFJ2SUhkeVlYQWdhVzRnWVNCZ2JHOWtZWE5vWUNCcGJuTjBZVzVqWlM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1QySnFaV04wZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnWUd4dlpHRnphR0FnZDNKaGNIQmxjaUJwYm5OMFlXNWpaUzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dablZ1WTNScGIyNGdjM0YxWVhKbEtHNHBJSHRjYmlBZ0lDQWdLaUFnSUhKbGRIVnliaUJ1SUNvZ2JqdGNiaUFnSUNBZ0tpQjlYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQjJZWElnZDNKaGNIQmxaQ0E5SUY4b1d6RXNJRElzSUROZEtUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDOHZJRkpsZEhWeWJuTWdZVzRnZFc1M2NtRndjR1ZrSUhaaGJIVmxMbHh1SUNBZ0lDQXFJSGR5WVhCd1pXUXVjbVZrZFdObEtGOHVZV1JrS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUEyWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUF2THlCU1pYUjFjbTV6SUdFZ2QzSmhjSEJsWkNCMllXeDFaUzVjYmlBZ0lDQWdLaUIyWVhJZ2MzRjFZWEpsY3lBOUlIZHlZWEJ3WldRdWJXRndLSE54ZFdGeVpTazdYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx6UVhKeVlYa29jM0YxWVhKbGN5azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1ptRnNjMlZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YVhOQmNuSmhlU2h6Y1hWaGNtVnpMblpoYkhWbEtDa3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIUnlkV1ZjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQnNiMlJoYzJnb2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUdsbUlDaHBjMDlpYW1WamRFeHBhMlVvZG1Gc2RXVXBJQ1ltSUNGcGMwRnljbUY1S0haaGJIVmxLU0FtSmlBaEtIWmhiSFZsSUdsdWMzUmhibU5sYjJZZ1RHRjZlVmR5WVhCd1pYSXBLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaDJZV3gxWlNCcGJuTjBZVzVqWlc5bUlFeHZaR0Z6YUZkeVlYQndaWElwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RtRnNkV1U3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLR2hoYzA5M2JsQnliM0JsY25SNUxtTmhiR3dvZG1Gc2RXVXNJQ2RmWDNkeVlYQndaV1JmWHljcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSGR5WVhCd1pYSkRiRzl1WlNoMllXeDFaU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1RHOWtZWE5vVjNKaGNIQmxjaWgyWVd4MVpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUdKaGMyVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2IyWWdZRjh1WTNKbFlYUmxZQ0IzYVhSb2IzVjBJSE4xY0hCdmNuUWdabTl5SUdGemMybG5ibWx1WjF4dUlDQWdJQ0FxSUhCeWIzQmxjblJwWlhNZ2RHOGdkR2hsSUdOeVpXRjBaV1FnYjJKcVpXTjBMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2NISnZkRzhnVkdobElHOWlhbVZqZENCMGJ5QnBibWhsY21sMElHWnliMjB1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTA5aWFtVmpkSDBnVW1WMGRYSnVjeUIwYUdVZ2JtVjNJRzlpYW1WamRDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCMllYSWdZbUZ6WlVOeVpXRjBaU0E5SUNobWRXNWpkR2x2YmlncElIdGNiaUFnSUNBZ0lHWjFibU4wYVc5dUlHOWlhbVZqZENncElIdDlYRzRnSUNBZ0lDQnlaWFIxY200Z1puVnVZM1JwYjI0b2NISnZkRzhwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0ZwYzA5aWFtVmpkQ2h3Y205MGJ5a3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZTMwN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0c5aWFtVmpkRU55WldGMFpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ2WW1wbFkzUkRjbVZoZEdVb2NISnZkRzhwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHOWlhbVZqZEM1d2NtOTBiM1I1Y0dVZ1BTQndjbTkwYnp0Y2JpQWdJQ0FnSUNBZ2RtRnlJSEpsYzNWc2RDQTlJRzVsZHlCdlltcGxZM1E3WEc0Z0lDQWdJQ0FnSUc5aWFtVmpkQzV3Y205MGIzUjVjR1VnUFNCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc0Z0lDQWdJQ0I5TzF4dUlDQWdJSDBvS1NrN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR1VnWm5WdVkzUnBiMjRnZDJodmMyVWdjSEp2ZEc5MGVYQmxJR05vWVdsdUlITmxjWFZsYm1ObElIZHlZWEJ3WlhKeklHbHVhR1Z5YVhRZ1puSnZiUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1ltRnpaVXh2WkdGemFDZ3BJSHRjYmlBZ0lDQWdJQzh2SUU1dklHOXdaWEpoZEdsdmJpQndaWEptYjNKdFpXUXVYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUdKaGMyVWdZMjl1YzNSeWRXTjBiM0lnWm05eUlHTnlaV0YwYVc1bklHQnNiMlJoYzJoZ0lIZHlZWEJ3WlhJZ2IySnFaV04wY3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z2QzSmhjQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMkp2YjJ4bFlXNTlJRnRqYUdGcGJrRnNiRjBnUlc1aFlteGxJR1Y0Y0d4cFkybDBJRzFsZEdodlpDQmphR0ZwYmlCelpYRjFaVzVqWlhNdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnVEc5a1lYTm9WM0poY0hCbGNpaDJZV3gxWlN3Z1kyaGhhVzVCYkd3cElIdGNiaUFnSUNBZ0lIUm9hWE11WDE5M2NtRndjR1ZrWDE4Z1BTQjJZV3gxWlR0Y2JpQWdJQ0FnSUhSb2FYTXVYMTloWTNScGIyNXpYMThnUFNCYlhUdGNiaUFnSUNBZ0lIUm9hWE11WDE5amFHRnBibDlmSUQwZ0lTRmphR0ZwYmtGc2JEdGNiaUFnSUNBZ0lIUm9hWE11WDE5cGJtUmxlRjlmSUQwZ01EdGNiaUFnSUNBZ0lIUm9hWE11WDE5MllXeDFaWE5mWHlBOUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkNlU0JrWldaaGRXeDBMQ0IwYUdVZ2RHVnRjR3hoZEdVZ1pHVnNhVzFwZEdWeWN5QjFjMlZrSUdKNUlHeHZaR0Z6YUNCaGNtVWdiR2xyWlNCMGFHOXpaU0JwYmx4dUlDQWdJQ0FxSUdWdFltVmtaR1ZrSUZKMVlua2dLRVZTUWlrZ1lYTWdkMlZzYkNCaGN5QkZVekl3TVRVZ2RHVnRjR3hoZEdVZ2MzUnlhVzVuY3k0Z1EyaGhibWRsSUhSb1pWeHVJQ0FnSUNBcUlHWnZiR3h2ZDJsdVp5QjBaVzF3YkdGMFpTQnpaWFIwYVc1bmN5QjBieUIxYzJVZ1lXeDBaWEp1WVhScGRtVWdaR1ZzYVcxcGRHVnljeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUIwZVhCbElIdFBZbXBsWTNSOVhHNGdJQ0FnSUNvdlhHNGdJQ0FnYkc5a1lYTm9MblJsYlhCc1lYUmxVMlYwZEdsdVozTWdQU0I3WEc1Y2JpQWdJQ0FnSUM4cUtseHVJQ0FnSUNBZ0lDb2dWWE5sWkNCMGJ5QmtaWFJsWTNRZ1lHUmhkR0ZnSUhCeWIzQmxjblI1SUhaaGJIVmxjeUIwYnlCaVpTQklWRTFNTFdWelkyRndaV1F1WEc0Z0lDQWdJQ0FnS2x4dUlDQWdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOHVkR1Z0Y0d4aGRHVlRaWFIwYVc1bmMxeHVJQ0FnSUNBZ0lDb2dRSFI1Y0dVZ2UxSmxaMFY0Y0gxY2JpQWdJQ0FnSUNBcUwxeHVJQ0FnSUNBZ0oyVnpZMkZ3WlNjNklISmxSWE5qWVhCbExGeHVYRzRnSUNBZ0lDQXZLaXBjYmlBZ0lDQWdJQ0FxSUZWelpXUWdkRzhnWkdWMFpXTjBJR052WkdVZ2RHOGdZbVVnWlhaaGJIVmhkR1ZrTGx4dUlDQWdJQ0FnSUNwY2JpQWdJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZMblJsYlhCc1lYUmxVMlYwZEdsdVozTmNiaUFnSUNBZ0lDQXFJRUIwZVhCbElIdFNaV2RGZUhCOVhHNGdJQ0FnSUNBZ0tpOWNiaUFnSUNBZ0lDZGxkbUZzZFdGMFpTYzZJSEpsUlhaaGJIVmhkR1VzWEc1Y2JpQWdJQ0FnSUM4cUtseHVJQ0FnSUNBZ0lDb2dWWE5sWkNCMGJ5QmtaWFJsWTNRZ1lHUmhkR0ZnSUhCeWIzQmxjblI1SUhaaGJIVmxjeUIwYnlCcGJtcGxZM1F1WEc0Z0lDQWdJQ0FnS2x4dUlDQWdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOHVkR1Z0Y0d4aGRHVlRaWFIwYVc1bmMxeHVJQ0FnSUNBZ0lDb2dRSFI1Y0dVZ2UxSmxaMFY0Y0gxY2JpQWdJQ0FnSUNBcUwxeHVJQ0FnSUNBZ0oybHVkR1Z5Y0c5c1lYUmxKem9nY21WSmJuUmxjbkJ2YkdGMFpTeGNibHh1SUNBZ0lDQWdMeW9xWEc0Z0lDQWdJQ0FnS2lCVmMyVmtJSFJ2SUhKbFptVnlaVzVqWlNCMGFHVWdaR0YwWVNCdlltcGxZM1FnYVc0Z2RHaGxJSFJsYlhCc1lYUmxJSFJsZUhRdVhHNGdJQ0FnSUNBZ0tseHVJQ0FnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjh1ZEdWdGNHeGhkR1ZUWlhSMGFXNW5jMXh1SUNBZ0lDQWdJQ29nUUhSNWNHVWdlM04wY21sdVozMWNiaUFnSUNBZ0lDQXFMMXh1SUNBZ0lDQWdKM1poY21saFlteGxKem9nSnljc1hHNWNiaUFnSUNBZ0lDOHFLbHh1SUNBZ0lDQWdJQ29nVlhObFpDQjBieUJwYlhCdmNuUWdkbUZ5YVdGaWJHVnpJR2x1ZEc4Z2RHaGxJR052YlhCcGJHVmtJSFJsYlhCc1lYUmxMbHh1SUNBZ0lDQWdJQ3BjYmlBZ0lDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZkxuUmxiWEJzWVhSbFUyVjBkR2x1WjNOY2JpQWdJQ0FnSUNBcUlFQjBlWEJsSUh0UFltcGxZM1I5WEc0Z0lDQWdJQ0FnS2k5Y2JpQWdJQ0FnSUNkcGJYQnZjblJ6SnpvZ2UxeHVYRzRnSUNBZ0lDQWdJQzhxS2x4dUlDQWdJQ0FnSUNBZ0tpQkJJSEpsWm1WeVpXNWpaU0IwYnlCMGFHVWdZR3h2WkdGemFHQWdablZ1WTNScGIyNHVYRzRnSUNBZ0lDQWdJQ0FxWEc0Z0lDQWdJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZMblJsYlhCc1lYUmxVMlYwZEdsdVozTXVhVzF3YjNKMGMxeHVJQ0FnSUNBZ0lDQWdLaUJBZEhsd1pTQjdSblZ1WTNScGIyNTlYRzRnSUNBZ0lDQWdJQ0FxTDF4dUlDQWdJQ0FnSUNBblh5YzZJR3h2WkdGemFGeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwN1hHNWNiaUFnSUNBdkx5QkZibk4xY21VZ2QzSmhjSEJsY25NZ1lYSmxJR2x1YzNSaGJtTmxjeUJ2WmlCZ1ltRnpaVXh2WkdGemFHQXVYRzRnSUNBZ2JHOWtZWE5vTG5CeWIzUnZkSGx3WlNBOUlHSmhjMlZNYjJSaGMyZ3VjSEp2ZEc5MGVYQmxPMXh1SUNBZ0lHeHZaR0Z6YUM1d2NtOTBiM1I1Y0dVdVkyOXVjM1J5ZFdOMGIzSWdQU0JzYjJSaGMyZzdYRzVjYmlBZ0lDQk1iMlJoYzJoWGNtRndjR1Z5TG5CeWIzUnZkSGx3WlNBOUlHSmhjMlZEY21WaGRHVW9ZbUZ6WlV4dlpHRnphQzV3Y205MGIzUjVjR1VwTzF4dUlDQWdJRXh2WkdGemFGZHlZWEJ3WlhJdWNISnZkRzkwZVhCbExtTnZibk4wY25WamRHOXlJRDBnVEc5a1lYTm9WM0poY0hCbGNqdGNibHh1SUNBZ0lDOHFMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRLaTljYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOeVpXRjBaWE1nWVNCc1lYcDVJSGR5WVhCd1pYSWdiMkpxWldOMElIZG9hV05vSUhkeVlYQnpJR0IyWVd4MVpXQWdkRzhnWlc1aFlteGxJR3hoZW5rZ1pYWmhiSFZoZEdsdmJpNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FHTnZibk4wY25WamRHOXlYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0IyWVd4MVpTQlVhR1VnZG1Gc2RXVWdkRzhnZDNKaGNDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCTVlYcDVWM0poY0hCbGNpaDJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVmWDNkeVlYQndaV1JmWHlBOUlIWmhiSFZsTzF4dUlDQWdJQ0FnZEdocGN5NWZYMkZqZEdsdmJuTmZYeUE5SUZ0ZE8xeHVJQ0FnSUNBZ2RHaHBjeTVmWDJScGNsOWZJRDBnTVR0Y2JpQWdJQ0FnSUhSb2FYTXVYMTltYVd4MFpYSmxaRjlmSUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0IwYUdsekxsOWZhWFJsY21GMFpXVnpYMThnUFNCYlhUdGNiaUFnSUNBZ0lIUm9hWE11WDE5MFlXdGxRMjkxYm5SZlh5QTlJRTFCV0Y5QlVsSkJXVjlNUlU1SFZFZzdYRzRnSUNBZ0lDQjBhR2x6TGw5ZmRtbGxkM05mWHlBOUlGdGRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU55WldGMFpYTWdZU0JqYkc5dVpTQnZaaUIwYUdVZ2JHRjZlU0IzY21Gd2NHVnlJRzlpYW1WamRDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FHNWhiV1VnWTJ4dmJtVmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdUR0Y2ZVZkeVlYQndaWEpjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3VDJKcVpXTjBmU0JTWlhSMWNtNXpJSFJvWlNCamJHOXVaV1FnWUV4aGVubFhjbUZ3Y0dWeVlDQnZZbXBsWTNRdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYkdGNmVVTnNiMjVsS0NrZ2UxeHVJQ0FnSUNBZ2RtRnlJSEpsYzNWc2RDQTlJRzVsZHlCTVlYcDVWM0poY0hCbGNpaDBhR2x6TGw5ZmQzSmhjSEJsWkY5ZktUdGNiaUFnSUNBZ0lISmxjM1ZzZEM1ZlgyRmpkR2x2Ym5OZlh5QTlJR052Y0hsQmNuSmhlU2gwYUdsekxsOWZZV04wYVc5dWMxOWZLVHRjYmlBZ0lDQWdJSEpsYzNWc2RDNWZYMlJwY2w5ZklEMGdkR2hwY3k1ZlgyUnBjbDlmTzF4dUlDQWdJQ0FnY21WemRXeDBMbDlmWm1sc2RHVnlaV1JmWHlBOUlIUm9hWE11WDE5bWFXeDBaWEpsWkY5Zk8xeHVJQ0FnSUNBZ2NtVnpkV3gwTGw5ZmFYUmxjbUYwWldWelgxOGdQU0JqYjNCNVFYSnlZWGtvZEdocGN5NWZYMmwwWlhKaGRHVmxjMTlmS1R0Y2JpQWdJQ0FnSUhKbGMzVnNkQzVmWDNSaGEyVkRiM1Z1ZEY5ZklEMGdkR2hwY3k1ZlgzUmhhMlZEYjNWdWRGOWZPMXh1SUNBZ0lDQWdjbVZ6ZFd4MExsOWZkbWxsZDNOZlh5QTlJR052Y0hsQmNuSmhlU2gwYUdsekxsOWZkbWxsZDNOZlh5azdYRzRnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZKbGRtVnljMlZ6SUhSb1pTQmthWEpsWTNScGIyNGdiMllnYkdGNmVTQnBkR1Z5WVhScGIyNHVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQnVZVzFsSUhKbGRtVnljMlZjYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnVEdGNmVWZHlZWEJ3WlhKY2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1QySnFaV04wZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnY21WMlpYSnpaV1FnWUV4aGVubFhjbUZ3Y0dWeVlDQnZZbXBsWTNRdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYkdGNmVWSmxkbVZ5YzJVb0tTQjdYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NWZYMlpwYkhSbGNtVmtYMThwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJSEpsYzNWc2RDQTlJRzVsZHlCTVlYcDVWM0poY0hCbGNpaDBhR2x6S1R0Y2JpQWdJQ0FnSUNBZ2NtVnpkV3gwTGw5ZlpHbHlYMThnUFNBdE1UdGNiaUFnSUNBZ0lDQWdjbVZ6ZFd4MExsOWZabWxzZEdWeVpXUmZYeUE5SUhSeWRXVTdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQnlaWE4xYkhRZ1BTQjBhR2x6TG1Oc2IyNWxLQ2s3WEc0Z0lDQWdJQ0FnSUhKbGMzVnNkQzVmWDJScGNsOWZJQ285SUMweE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJGZUhSeVlXTjBjeUIwYUdVZ2RXNTNjbUZ3Y0dWa0lIWmhiSFZsSUdaeWIyMGdhWFJ6SUd4aGVua2dkM0poY0hCbGNpNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FHNWhiV1VnZG1Gc2RXVmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdUR0Y2ZVZkeVlYQndaWEpjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3S24wZ1VtVjBkWEp1Y3lCMGFHVWdkVzUzY21Gd2NHVmtJSFpoYkhWbExseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUd4aGVubFdZV3gxWlNncElIdGNiaUFnSUNBZ0lIWmhjaUJoY25KaGVTQTlJSFJvYVhNdVgxOTNjbUZ3Y0dWa1gxOHVkbUZzZFdVb0tTeGNiaUFnSUNBZ0lDQWdJQ0JrYVhJZ1BTQjBhR2x6TGw5ZlpHbHlYMThzWEc0Z0lDQWdJQ0FnSUNBZ2FYTkJjbklnUFNCcGMwRnljbUY1S0dGeWNtRjVLU3hjYmlBZ0lDQWdJQ0FnSUNCcGMxSnBaMmgwSUQwZ1pHbHlJRHdnTUN4Y2JpQWdJQ0FnSUNBZ0lDQmhjbkpNWlc1bmRHZ2dQU0JwYzBGeWNpQS9JR0Z5Y21GNUxteGxibWQwYUNBNklEQXNYRzRnSUNBZ0lDQWdJQ0FnZG1sbGR5QTlJR2RsZEZacFpYY29NQ3dnWVhKeVRHVnVaM1JvTENCMGFHbHpMbDlmZG1sbGQzTmZYeWtzWEc0Z0lDQWdJQ0FnSUNBZ2MzUmhjblFnUFNCMmFXVjNMbk4wWVhKMExGeHVJQ0FnSUNBZ0lDQWdJR1Z1WkNBOUlIWnBaWGN1Wlc1a0xGeHVJQ0FnSUNBZ0lDQWdJR3hsYm1kMGFDQTlJR1Z1WkNBdElITjBZWEowTEZ4dUlDQWdJQ0FnSUNBZ0lHbHVaR1Y0SUQwZ2FYTlNhV2RvZENBL0lHVnVaQ0E2SUNoemRHRnlkQ0F0SURFcExGeHVJQ0FnSUNBZ0lDQWdJR2wwWlhKaGRHVmxjeUE5SUhSb2FYTXVYMTlwZEdWeVlYUmxaWE5mWHl4Y2JpQWdJQ0FnSUNBZ0lDQnBkR1Z5VEdWdVozUm9JRDBnYVhSbGNtRjBaV1Z6TG14bGJtZDBhQ3hjYmlBZ0lDQWdJQ0FnSUNCeVpYTkpibVJsZUNBOUlEQXNYRzRnSUNBZ0lDQWdJQ0FnZEdGclpVTnZkVzUwSUQwZ2JtRjBhWFpsVFdsdUtHeGxibWQwYUN3Z2RHaHBjeTVmWDNSaGEyVkRiM1Z1ZEY5ZktUdGNibHh1SUNBZ0lDQWdhV1lnS0NGcGMwRnljaUI4ZkNBb0lXbHpVbWxuYUhRZ0ppWWdZWEp5VEdWdVozUm9JRDA5SUd4bGJtZDBhQ0FtSmlCMFlXdGxRMjkxYm5RZ1BUMGdiR1Z1WjNSb0tTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZbUZ6WlZkeVlYQndaWEpXWVd4MVpTaGhjbkpoZVN3Z2RHaHBjeTVmWDJGamRHbHZibk5mWHlrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCMllYSWdjbVZ6ZFd4MElEMGdXMTA3WEc1Y2JpQWdJQ0FnSUc5MWRHVnlPbHh1SUNBZ0lDQWdkMmhwYkdVZ0tHeGxibWQwYUMwdElDWW1JSEpsYzBsdVpHVjRJRHdnZEdGclpVTnZkVzUwS1NCN1hHNGdJQ0FnSUNBZ0lHbHVaR1Y0SUNzOUlHUnBjanRjYmx4dUlDQWdJQ0FnSUNCMllYSWdhWFJsY2tsdVpHVjRJRDBnTFRFc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVd4MVpTQTlJR0Z5Y21GNVcybHVaR1Y0WFR0Y2JseHVJQ0FnSUNBZ0lDQjNhR2xzWlNBb0t5dHBkR1Z5U1c1a1pYZ2dQQ0JwZEdWeVRHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdkbUZ5SUdSaGRHRWdQU0JwZEdWeVlYUmxaWE5iYVhSbGNrbHVaR1Y0WFN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYVhSbGNtRjBaV1VnUFNCa1lYUmhMbWwwWlhKaGRHVmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjBlWEJsSUQwZ1pHRjBZUzUwZVhCbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyMXdkWFJsWkNBOUlHbDBaWEpoZEdWbEtIWmhiSFZsS1R0Y2JseHVJQ0FnSUNBZ0lDQWdJR2xtSUNoMGVYQmxJRDA5SUV4QldsbGZUVUZRWDBaTVFVY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsSUQwZ1kyOXRjSFYwWldRN1hHNGdJQ0FnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2doWTI5dGNIVjBaV1FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGVYQmxJRDA5SUV4QldsbGZSa2xNVkVWU1gwWk1RVWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWRHbHVkV1VnYjNWMFpYSTdYRzRnSUNBZ0lDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF5QnZkWFJsY2p0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVZ6ZFd4MFczSmxjMGx1WkdWNEt5dGRJRDBnZG1Gc2RXVTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUVWdWMzVnlaU0JnVEdGNmVWZHlZWEJ3WlhKZ0lHbHpJR0Z1SUdsdWMzUmhibU5sSUc5bUlHQmlZWE5sVEc5a1lYTm9ZQzVjYmlBZ0lDQk1ZWHA1VjNKaGNIQmxjaTV3Y205MGIzUjVjR1VnUFNCaVlYTmxRM0psWVhSbEtHSmhjMlZNYjJSaGMyZ3VjSEp2ZEc5MGVYQmxLVHRjYmlBZ0lDQk1ZWHA1VjNKaGNIQmxjaTV3Y205MGIzUjVjR1V1WTI5dWMzUnlkV04wYjNJZ1BTQk1ZWHA1VjNKaGNIQmxjanRjYmx4dUlDQWdJQzhxTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0S2k5Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnlaV0YwWlhNZ1lTQm9ZWE5vSUc5aWFtVmpkQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRR052Ym5OMGNuVmpkRzl5WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdXMlZ1ZEhKcFpYTmRJRlJvWlNCclpYa3RkbUZzZFdVZ2NHRnBjbk1nZEc4Z1kyRmphR1V1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdTR0Z6YUNobGJuUnlhV1Z6S1NCN1hHNGdJQ0FnSUNCMllYSWdhVzVrWlhnZ1BTQXRNU3hjYmlBZ0lDQWdJQ0FnSUNCc1pXNW5kR2dnUFNCbGJuUnlhV1Z6SUQwOUlHNTFiR3dnUHlBd0lEb2daVzUwY21sbGN5NXNaVzVuZEdnN1hHNWNiaUFnSUNBZ0lIUm9hWE11WTJ4bFlYSW9LVHRjYmlBZ0lDQWdJSGRvYVd4bElDZ3JLMmx1WkdWNElEd2diR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCbGJuUnllU0E5SUdWdWRISnBaWE5iYVc1a1pYaGRPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkQ2hsYm5SeWVWc3dYU3dnWlc1MGNubGJNVjBwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZKbGJXOTJaWE1nWVd4c0lHdGxlUzEyWVd4MVpTQmxiblJ5YVdWeklHWnliMjBnZEdobElHaGhjMmd1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ1WVcxbElHTnNaV0Z5WEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUVoaGMyaGNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCb1lYTm9RMnhsWVhJb0tTQjdYRzRnSUNBZ0lDQjBhR2x6TGw5ZlpHRjBZVjlmSUQwZ2JtRjBhWFpsUTNKbFlYUmxJRDhnYm1GMGFYWmxRM0psWVhSbEtHNTFiR3dwSURvZ2UzMDdYRzRnSUNBZ0lDQjBhR2x6TG5OcGVtVWdQU0F3TzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZKbGJXOTJaWE1nWUd0bGVXQWdZVzVrSUdsMGN5QjJZV3gxWlNCbWNtOXRJSFJvWlNCb1lYTm9MbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFibUZ0WlNCa1pXeGxkR1ZjYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnU0dGemFGeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCb1lYTm9JRlJvWlNCb1lYTm9JSFJ2SUcxdlpHbG1lUzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdhMlY1SUZSb1pTQnJaWGtnYjJZZ2RHaGxJSFpoYkhWbElIUnZJSEpsYlc5MlpTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdZbTl2YkdWaGJuMGdVbVYwZFhKdWN5QmdkSEoxWldBZ2FXWWdkR2hsSUdWdWRISjVJSGRoY3lCeVpXMXZkbVZrTENCbGJITmxJR0JtWVd4elpXQXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2FHRnphRVJsYkdWMFpTaHJaWGtwSUh0Y2JpQWdJQ0FnSUhaaGNpQnlaWE4xYkhRZ1BTQjBhR2x6TG1oaGN5aHJaWGtwSUNZbUlHUmxiR1YwWlNCMGFHbHpMbDlmWkdGMFlWOWZXMnRsZVYwN1hHNGdJQ0FnSUNCMGFHbHpMbk5wZW1VZ0xUMGdjbVZ6ZFd4MElEOGdNU0E2SURBN1hHNGdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRWRsZEhNZ2RHaGxJR2hoYzJnZ2RtRnNkV1VnWm05eUlHQnJaWGxnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBYm1GdFpTQm5aWFJjYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnU0dGemFGeHVJQ0FnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCclpYa2dWR2hsSUd0bGVTQnZaaUIwYUdVZ2RtRnNkV1VnZEc4Z1oyVjBMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHNxZlNCU1pYUjFjbTV6SUhSb1pTQmxiblJ5ZVNCMllXeDFaUzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQm9ZWE5vUjJWMEtHdGxlU2tnZTF4dUlDQWdJQ0FnZG1GeUlHUmhkR0VnUFNCMGFHbHpMbDlmWkdGMFlWOWZPMXh1SUNBZ0lDQWdhV1lnS0c1aGRHbDJaVU55WldGMFpTa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ1pHRjBZVnRyWlhsZE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwSUQwOVBTQklRVk5JWDFWT1JFVkdTVTVGUkNBL0lIVnVaR1ZtYVc1bFpDQTZJSEpsYzNWc2REdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCb1lYTlBkMjVRY205d1pYSjBlUzVqWVd4c0tHUmhkR0VzSUd0bGVTa2dQeUJrWVhSaFcydGxlVjBnT2lCMWJtUmxabWx1WldRN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyaGxZMnR6SUdsbUlHRWdhR0Z6YUNCMllXeDFaU0JtYjNJZ1lHdGxlV0FnWlhocGMzUnpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFibUZ0WlNCb1lYTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdTR0Z6YUZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JyWlhrZ1ZHaGxJR3RsZVNCdlppQjBhR1VnWlc1MGNua2dkRzhnWTJobFkyc3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMkp2YjJ4bFlXNTlJRkpsZEhWeWJuTWdZSFJ5ZFdWZ0lHbG1JR0Z1SUdWdWRISjVJR1p2Y2lCZ2EyVjVZQ0JsZUdsemRITXNJR1ZzYzJVZ1lHWmhiSE5sWUM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJvWVhOb1NHRnpLR3RsZVNrZ2UxeHVJQ0FnSUNBZ2RtRnlJR1JoZEdFZ1BTQjBhR2x6TGw5ZlpHRjBZVjlmTzF4dUlDQWdJQ0FnY21WMGRYSnVJRzVoZEdsMlpVTnlaV0YwWlNBL0lDaGtZWFJoVzJ0bGVWMGdJVDA5SUhWdVpHVm1hVzVsWkNrZ09pQm9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLR1JoZEdFc0lHdGxlU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVTJWMGN5QjBhR1VnYUdGemFDQmdhMlY1WUNCMGJ5QmdkbUZzZFdWZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWJtRnRaU0J6WlhSY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1NHRnphRnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnJaWGtnVkdobElHdGxlU0J2WmlCMGFHVWdkbUZzZFdVZ2RHOGdjMlYwTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ2RtRnNkV1VnVkdobElIWmhiSFZsSUhSdklITmxkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3VDJKcVpXTjBmU0JTWlhSMWNtNXpJSFJvWlNCb1lYTm9JR2x1YzNSaGJtTmxMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHaGhjMmhUWlhRb2EyVjVMQ0IyWVd4MVpTa2dlMXh1SUNBZ0lDQWdkbUZ5SUdSaGRHRWdQU0IwYUdsekxsOWZaR0YwWVY5Zk8xeHVJQ0FnSUNBZ2RHaHBjeTV6YVhwbElDczlJSFJvYVhNdWFHRnpLR3RsZVNrZ1B5QXdJRG9nTVR0Y2JpQWdJQ0FnSUdSaGRHRmJhMlY1WFNBOUlDaHVZWFJwZG1WRGNtVmhkR1VnSmlZZ2RtRnNkV1VnUFQwOUlIVnVaR1ZtYVc1bFpDa2dQeUJJUVZOSVgxVk9SRVZHU1U1RlJDQTZJSFpoYkhWbE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdRV1JrSUcxbGRHaHZaSE1nZEc4Z1lFaGhjMmhnTGx4dUlDQWdJRWhoYzJndWNISnZkRzkwZVhCbExtTnNaV0Z5SUQwZ2FHRnphRU5zWldGeU8xeHVJQ0FnSUVoaGMyZ3VjSEp2ZEc5MGVYQmxXeWRrWld4bGRHVW5YU0E5SUdoaGMyaEVaV3hsZEdVN1hHNGdJQ0FnU0dGemFDNXdjbTkwYjNSNWNHVXVaMlYwSUQwZ2FHRnphRWRsZER0Y2JpQWdJQ0JJWVhOb0xuQnliM1J2ZEhsd1pTNW9ZWE1nUFNCb1lYTm9TR0Z6TzF4dUlDQWdJRWhoYzJndWNISnZkRzkwZVhCbExuTmxkQ0E5SUdoaGMyaFRaWFE3WEc1Y2JpQWdJQ0F2S2kwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFNvdlhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRnVJR3hwYzNRZ1kyRmphR1VnYjJKcVpXTjBMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFZMjl1YzNSeWRXTjBiM0pjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZTQmJaVzUwY21sbGMxMGdWR2hsSUd0bGVTMTJZV3gxWlNCd1lXbHljeUIwYnlCallXTm9aUzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQk1hWE4wUTJGamFHVW9aVzUwY21sbGN5a2dlMXh1SUNBZ0lDQWdkbUZ5SUdsdVpHVjRJRDBnTFRFc1hHNGdJQ0FnSUNBZ0lDQWdiR1Z1WjNSb0lEMGdaVzUwY21sbGN5QTlQU0J1ZFd4c0lEOGdNQ0E2SUdWdWRISnBaWE11YkdWdVozUm9PMXh1WEc0Z0lDQWdJQ0IwYUdsekxtTnNaV0Z5S0NrN1hHNGdJQ0FnSUNCM2FHbHNaU0FvS3l0cGJtUmxlQ0E4SUd4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNCMllYSWdaVzUwY25rZ1BTQmxiblJ5YVdWelcybHVaR1Y0WFR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WlhRb1pXNTBjbmxiTUYwc0lHVnVkSEo1V3pGZEtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlNaVzF2ZG1WeklHRnNiQ0JyWlhrdGRtRnNkV1VnWlc1MGNtbGxjeUJtY205dElIUm9aU0JzYVhOMElHTmhZMmhsTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBYm1GdFpTQmpiR1ZoY2x4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCTWFYTjBRMkZqYUdWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJzYVhOMFEyRmphR1ZEYkdWaGNpZ3BJSHRjYmlBZ0lDQWdJSFJvYVhNdVgxOWtZWFJoWDE4Z1BTQmJYVHRjYmlBZ0lDQWdJSFJvYVhNdWMybDZaU0E5SURBN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1VtVnRiM1psY3lCZ2EyVjVZQ0JoYm1RZ2FYUnpJSFpoYkhWbElHWnliMjBnZEdobElHeHBjM1FnWTJGamFHVXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQnVZVzFsSUdSbGJHVjBaVnh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJNYVhOMFEyRmphR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdhMlY1SUZSb1pTQnJaWGtnYjJZZ2RHaGxJSFpoYkhWbElIUnZJSEpsYlc5MlpTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdZbTl2YkdWaGJuMGdVbVYwZFhKdWN5QmdkSEoxWldBZ2FXWWdkR2hsSUdWdWRISjVJSGRoY3lCeVpXMXZkbVZrTENCbGJITmxJR0JtWVd4elpXQXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2JHbHpkRU5oWTJobFJHVnNaWFJsS0d0bGVTa2dlMXh1SUNBZ0lDQWdkbUZ5SUdSaGRHRWdQU0IwYUdsekxsOWZaR0YwWVY5ZkxGeHVJQ0FnSUNBZ0lDQWdJR2x1WkdWNElEMGdZWE56YjJOSmJtUmxlRTltS0dSaGRHRXNJR3RsZVNrN1hHNWNiaUFnSUNBZ0lHbG1JQ2hwYm1SbGVDQThJREFwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdkbUZ5SUd4aGMzUkpibVJsZUNBOUlHUmhkR0V1YkdWdVozUm9JQzBnTVR0Y2JpQWdJQ0FnSUdsbUlDaHBibVJsZUNBOVBTQnNZWE4wU1c1a1pYZ3BJSHRjYmlBZ0lDQWdJQ0FnWkdGMFlTNXdiM0FvS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhOd2JHbGpaUzVqWVd4c0tHUmhkR0VzSUdsdVpHVjRMQ0F4S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUMwdGRHaHBjeTV6YVhwbE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dSMlYwY3lCMGFHVWdiR2x6ZENCallXTm9aU0IyWVd4MVpTQm1iM0lnWUd0bGVXQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQnVZVzFsSUdkbGRGeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQk1hWE4wUTJGamFHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2EyVjVJRlJvWlNCclpYa2diMllnZEdobElIWmhiSFZsSUhSdklHZGxkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3S24wZ1VtVjBkWEp1Y3lCMGFHVWdaVzUwY25rZ2RtRnNkV1V1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdiR2x6ZEVOaFkyaGxSMlYwS0d0bGVTa2dlMXh1SUNBZ0lDQWdkbUZ5SUdSaGRHRWdQU0IwYUdsekxsOWZaR0YwWVY5ZkxGeHVJQ0FnSUNBZ0lDQWdJR2x1WkdWNElEMGdZWE56YjJOSmJtUmxlRTltS0dSaGRHRXNJR3RsZVNrN1hHNWNiaUFnSUNBZ0lISmxkSFZ5YmlCcGJtUmxlQ0E4SURBZ1B5QjFibVJsWm1sdVpXUWdPaUJrWVhSaFcybHVaR1Y0WFZzeFhUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRhR1ZqYTNNZ2FXWWdZU0JzYVhOMElHTmhZMmhsSUhaaGJIVmxJR1p2Y2lCZ2EyVjVZQ0JsZUdsemRITXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQnVZVzFsSUdoaGMxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQk1hWE4wUTJGamFHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2EyVjVJRlJvWlNCclpYa2diMllnZEdobElHVnVkSEo1SUhSdklHTm9aV05yTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0aWIyOXNaV0Z1ZlNCU1pYUjFjbTV6SUdCMGNuVmxZQ0JwWmlCaGJpQmxiblJ5ZVNCbWIzSWdZR3RsZVdBZ1pYaHBjM1J6TENCbGJITmxJR0JtWVd4elpXQXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2JHbHpkRU5oWTJobFNHRnpLR3RsZVNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdGemMyOWpTVzVrWlhoUFppaDBhR2x6TGw5ZlpHRjBZVjlmTENCclpYa3BJRDRnTFRFN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1UyVjBjeUIwYUdVZ2JHbHpkQ0JqWVdOb1pTQmdhMlY1WUNCMGJ5QmdkbUZzZFdWZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWJtRnRaU0J6WlhSY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1RHbHpkRU5oWTJobFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUd0bGVTQlVhR1VnYTJWNUlHOW1JSFJvWlNCMllXeDFaU0IwYnlCelpYUXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0IyWVd4MVpTQlVhR1VnZG1Gc2RXVWdkRzhnYzJWMExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdFBZbXBsWTNSOUlGSmxkSFZ5Ym5NZ2RHaGxJR3hwYzNRZ1kyRmphR1VnYVc1emRHRnVZMlV1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdiR2x6ZEVOaFkyaGxVMlYwS0d0bGVTd2dkbUZzZFdVcElIdGNiaUFnSUNBZ0lIWmhjaUJrWVhSaElEMGdkR2hwY3k1ZlgyUmhkR0ZmWHl4Y2JpQWdJQ0FnSUNBZ0lDQnBibVJsZUNBOUlHRnpjMjlqU1c1a1pYaFBaaWhrWVhSaExDQnJaWGtwTzF4dVhHNGdJQ0FnSUNCcFppQW9hVzVrWlhnZ1BDQXdLU0I3WEc0Z0lDQWdJQ0FnSUNzcmRHaHBjeTV6YVhwbE8xeHVJQ0FnSUNBZ0lDQmtZWFJoTG5CMWMyZ29XMnRsZVN3Z2RtRnNkV1ZkS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUdSaGRHRmJhVzVrWlhoZFd6RmRJRDBnZG1Gc2RXVTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJCWkdRZ2JXVjBhRzlrY3lCMGJ5QmdUR2x6ZEVOaFkyaGxZQzVjYmlBZ0lDQk1hWE4wUTJGamFHVXVjSEp2ZEc5MGVYQmxMbU5zWldGeUlEMGdiR2x6ZEVOaFkyaGxRMnhsWVhJN1hHNGdJQ0FnVEdsemRFTmhZMmhsTG5CeWIzUnZkSGx3WlZzblpHVnNaWFJsSjEwZ1BTQnNhWE4wUTJGamFHVkVaV3hsZEdVN1hHNGdJQ0FnVEdsemRFTmhZMmhsTG5CeWIzUnZkSGx3WlM1blpYUWdQU0JzYVhOMFEyRmphR1ZIWlhRN1hHNGdJQ0FnVEdsemRFTmhZMmhsTG5CeWIzUnZkSGx3WlM1b1lYTWdQU0JzYVhOMFEyRmphR1ZJWVhNN1hHNGdJQ0FnVEdsemRFTmhZMmhsTG5CeWIzUnZkSGx3WlM1elpYUWdQU0JzYVhOMFEyRmphR1ZUWlhRN1hHNWNiaUFnSUNBdktpMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTb3ZYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVnpJR0VnYldGd0lHTmhZMmhsSUc5aWFtVmpkQ0IwYnlCemRHOXlaU0JyWlhrdGRtRnNkV1VnY0dGcGNuTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQmpiMjV6ZEhKMVkzUnZjbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlGdGxiblJ5YVdWelhTQlVhR1VnYTJWNUxYWmhiSFZsSUhCaGFYSnpJSFJ2SUdOaFkyaGxMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlFMWhjRU5oWTJobEtHVnVkSEpwWlhNcElIdGNiaUFnSUNBZ0lIWmhjaUJwYm1SbGVDQTlJQzB4TEZ4dUlDQWdJQ0FnSUNBZ0lHeGxibWQwYUNBOUlHVnVkSEpwWlhNZ1BUMGdiblZzYkNBL0lEQWdPaUJsYm5SeWFXVnpMbXhsYm1kMGFEdGNibHh1SUNBZ0lDQWdkR2hwY3k1amJHVmhjaWdwTzF4dUlDQWdJQ0FnZDJocGJHVWdLQ3NyYVc1a1pYZ2dQQ0JzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnZG1GeUlHVnVkSEo1SUQwZ1pXNTBjbWxsYzF0cGJtUmxlRjA3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMlYwS0dWdWRISjVXekJkTENCbGJuUnllVnN4WFNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1VtVnRiM1psY3lCaGJHd2dhMlY1TFhaaGJIVmxJR1Z1ZEhKcFpYTWdabkp2YlNCMGFHVWdiV0Z3TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBYm1GdFpTQmpiR1ZoY2x4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCTllYQkRZV05vWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJRzFoY0VOaFkyaGxRMnhsWVhJb0tTQjdYRzRnSUNBZ0lDQjBhR2x6TG5OcGVtVWdQU0F3TzF4dUlDQWdJQ0FnZEdocGN5NWZYMlJoZEdGZlh5QTlJSHRjYmlBZ0lDQWdJQ0FnSjJoaGMyZ25PaUJ1WlhjZ1NHRnphQ3hjYmlBZ0lDQWdJQ0FnSjIxaGNDYzZJRzVsZHlBb1RXRndJSHg4SUV4cGMzUkRZV05vWlNrc1hHNGdJQ0FnSUNBZ0lDZHpkSEpwYm1jbk9pQnVaWGNnU0dGemFGeHVJQ0FnSUNBZ2ZUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlNaVzF2ZG1WeklHQnJaWGxnSUdGdVpDQnBkSE1nZG1Gc2RXVWdabkp2YlNCMGFHVWdiV0Z3TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBYm1GdFpTQmtaV3hsZEdWY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1RXRndRMkZqYUdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYTJWNUlGUm9aU0JyWlhrZ2IyWWdkR2hsSUhaaGJIVmxJSFJ2SUhKbGJXOTJaUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3WW05dmJHVmhibjBnVW1WMGRYSnVjeUJnZEhKMVpXQWdhV1lnZEdobElHVnVkSEo1SUhkaGN5QnlaVzF2ZG1Wa0xDQmxiSE5sSUdCbVlXeHpaV0F1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdiV0Z3UTJGamFHVkVaV3hsZEdVb2EyVjVLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ1oyVjBUV0Z3UkdGMFlTaDBhR2x6TENCclpYa3BXeWRrWld4bGRHVW5YU2hyWlhrcE8xeHVJQ0FnSUNBZ2RHaHBjeTV6YVhwbElDMDlJSEpsYzNWc2RDQS9JREVnT2lBd08xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJIWlhSeklIUm9aU0J0WVhBZ2RtRnNkV1VnWm05eUlHQnJaWGxnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBYm1GdFpTQm5aWFJjYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnVFdGd1EyRmphR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdhMlY1SUZSb1pTQnJaWGtnYjJZZ2RHaGxJSFpoYkhWbElIUnZJR2RsZEM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN0tuMGdVbVYwZFhKdWN5QjBhR1VnWlc1MGNua2dkbUZzZFdVdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYldGd1EyRmphR1ZIWlhRb2EyVjVLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdaMlYwVFdGd1JHRjBZU2gwYUdsekxDQnJaWGtwTG1kbGRDaHJaWGtwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOb1pXTnJjeUJwWmlCaElHMWhjQ0IyWVd4MVpTQm1iM0lnWUd0bGVXQWdaWGhwYzNSekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWJtRnRaU0JvWVhOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1RXRndRMkZqYUdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYTJWNUlGUm9aU0JyWlhrZ2IyWWdkR2hsSUdWdWRISjVJSFJ2SUdOb1pXTnJMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRpYjI5c1pXRnVmU0JTWlhSMWNtNXpJR0IwY25WbFlDQnBaaUJoYmlCbGJuUnllU0JtYjNJZ1lHdGxlV0FnWlhocGMzUnpMQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYldGd1EyRmphR1ZJWVhNb2EyVjVLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdaMlYwVFdGd1JHRjBZU2gwYUdsekxDQnJaWGtwTG1oaGN5aHJaWGtwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZObGRITWdkR2hsSUcxaGNDQmdhMlY1WUNCMGJ5QmdkbUZzZFdWZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWJtRnRaU0J6WlhSY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1RXRndRMkZqYUdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYTJWNUlGUm9aU0JyWlhrZ2IyWWdkR2hsSUhaaGJIVmxJSFJ2SUhObGRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSFpoYkhWbElGUm9aU0IyWVd4MVpTQjBieUJ6WlhRdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwOWlhbVZqZEgwZ1VtVjBkWEp1Y3lCMGFHVWdiV0Z3SUdOaFkyaGxJR2x1YzNSaGJtTmxMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHMWhjRU5oWTJobFUyVjBLR3RsZVN3Z2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUhaaGNpQmtZWFJoSUQwZ1oyVjBUV0Z3UkdGMFlTaDBhR2x6TENCclpYa3BMRnh1SUNBZ0lDQWdJQ0FnSUhOcGVtVWdQU0JrWVhSaExuTnBlbVU3WEc1Y2JpQWdJQ0FnSUdSaGRHRXVjMlYwS0d0bGVTd2dkbUZzZFdVcE8xeHVJQ0FnSUNBZ2RHaHBjeTV6YVhwbElDczlJR1JoZEdFdWMybDZaU0E5UFNCemFYcGxJRDhnTUNBNklERTdYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJCWkdRZ2JXVjBhRzlrY3lCMGJ5QmdUV0Z3UTJGamFHVmdMbHh1SUNBZ0lFMWhjRU5oWTJobExuQnliM1J2ZEhsd1pTNWpiR1ZoY2lBOUlHMWhjRU5oWTJobFEyeGxZWEk3WEc0Z0lDQWdUV0Z3UTJGamFHVXVjSEp2ZEc5MGVYQmxXeWRrWld4bGRHVW5YU0E5SUcxaGNFTmhZMmhsUkdWc1pYUmxPMXh1SUNBZ0lFMWhjRU5oWTJobExuQnliM1J2ZEhsd1pTNW5aWFFnUFNCdFlYQkRZV05vWlVkbGREdGNiaUFnSUNCTllYQkRZV05vWlM1d2NtOTBiM1I1Y0dVdWFHRnpJRDBnYldGd1EyRmphR1ZJWVhNN1hHNGdJQ0FnVFdGd1EyRmphR1V1Y0hKdmRHOTBlWEJsTG5ObGRDQTlJRzFoY0VOaFkyaGxVMlYwTzF4dVhHNGdJQ0FnTHlvdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwcUwxeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRnVJR0Z5Y21GNUlHTmhZMmhsSUc5aWFtVmpkQ0IwYnlCemRHOXlaU0IxYm1seGRXVWdkbUZzZFdWekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQVkyOXVjM1J5ZFdOMGIzSmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCYmRtRnNkV1Z6WFNCVWFHVWdkbUZzZFdWeklIUnZJR05oWTJobExseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUZObGRFTmhZMmhsS0haaGJIVmxjeWtnZTF4dUlDQWdJQ0FnZG1GeUlHbHVaR1Y0SUQwZ0xURXNYRzRnSUNBZ0lDQWdJQ0FnYkdWdVozUm9JRDBnZG1Gc2RXVnpJRDA5SUc1MWJHd2dQeUF3SURvZ2RtRnNkV1Z6TG14bGJtZDBhRHRjYmx4dUlDQWdJQ0FnZEdocGN5NWZYMlJoZEdGZlh5QTlJRzVsZHlCTllYQkRZV05vWlR0Y2JpQWdJQ0FnSUhkb2FXeGxJQ2dySzJsdVpHVjRJRHdnYkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVZV1JrS0haaGJIVmxjMXRwYm1SbGVGMHBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRUZrWkhNZ1lIWmhiSFZsWUNCMGJ5QjBhR1VnWVhKeVlYa2dZMkZqYUdVdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCdVlXMWxJR0ZrWkZ4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCVFpYUkRZV05vWlZ4dUlDQWdJQ0FxSUVCaGJHbGhjeUJ3ZFhOb1hHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdZMkZqYUdVdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwOWlhbVZqZEgwZ1VtVjBkWEp1Y3lCMGFHVWdZMkZqYUdVZ2FXNXpkR0Z1WTJVdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYzJWMFEyRmphR1ZCWkdRb2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVYMTlrWVhSaFgxOHVjMlYwS0haaGJIVmxMQ0JJUVZOSVgxVk9SRVZHU1U1RlJDazdYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEYUdWamEzTWdhV1lnWUhaaGJIVmxZQ0JwY3lCcGJpQjBhR1VnWVhKeVlYa2dZMkZqYUdVdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCdVlXMWxJR2hoYzF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCVFpYUkRZV05vWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ2RtRnNkV1VnVkdobElIWmhiSFZsSUhSdklITmxZWEpqYUNCbWIzSXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMjUxYldKbGNuMGdVbVYwZFhKdWN5QmdkSEoxWldBZ2FXWWdZSFpoYkhWbFlDQnBjeUJtYjNWdVpDd2daV3h6WlNCZ1ptRnNjMlZnTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJSE5sZEVOaFkyaGxTR0Z6S0haaGJIVmxLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZlgyUmhkR0ZmWHk1b1lYTW9kbUZzZFdVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklFRmtaQ0J0WlhSb2IyUnpJSFJ2SUdCVFpYUkRZV05vWldBdVhHNGdJQ0FnVTJWMFEyRmphR1V1Y0hKdmRHOTBlWEJsTG1Ga1pDQTlJRk5sZEVOaFkyaGxMbkJ5YjNSdmRIbHdaUzV3ZFhOb0lEMGdjMlYwUTJGamFHVkJaR1E3WEc0Z0lDQWdVMlYwUTJGamFHVXVjSEp2ZEc5MGVYQmxMbWhoY3lBOUlITmxkRU5oWTJobFNHRnpPMXh1WEc0Z0lDQWdMeW90TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBxTDF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElITjBZV05ySUdOaFkyaGxJRzlpYW1WamRDQjBieUJ6ZEc5eVpTQnJaWGt0ZG1Gc2RXVWdjR0ZwY25NdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCamIyNXpkSEoxWTNSdmNseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUZ0bGJuUnlhV1Z6WFNCVWFHVWdhMlY1TFhaaGJIVmxJSEJoYVhKeklIUnZJR05oWTJobExseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUZOMFlXTnJLR1Z1ZEhKcFpYTXBJSHRjYmlBZ0lDQWdJSFpoY2lCa1lYUmhJRDBnZEdocGN5NWZYMlJoZEdGZlh5QTlJRzVsZHlCTWFYTjBRMkZqYUdVb1pXNTBjbWxsY3lrN1hHNGdJQ0FnSUNCMGFHbHpMbk5wZW1VZ1BTQmtZWFJoTG5OcGVtVTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dVbVZ0YjNabGN5QmhiR3dnYTJWNUxYWmhiSFZsSUdWdWRISnBaWE1nWm5KdmJTQjBhR1VnYzNSaFkyc3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQnVZVzFsSUdOc1pXRnlYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRk4wWVdOclhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYzNSaFkydERiR1ZoY2lncElIdGNiaUFnSUNBZ0lIUm9hWE11WDE5a1lYUmhYMThnUFNCdVpYY2dUR2x6ZEVOaFkyaGxPMXh1SUNBZ0lDQWdkR2hwY3k1emFYcGxJRDBnTUR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCU1pXMXZkbVZ6SUdCclpYbGdJR0Z1WkNCcGRITWdkbUZzZFdVZ1puSnZiU0IwYUdVZ2MzUmhZMnN1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ1WVcxbElHUmxiR1YwWlZ4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCVGRHRmphMXh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnJaWGtnVkdobElHdGxlU0J2WmlCMGFHVWdkbUZzZFdVZ2RHOGdjbVZ0YjNabExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdGliMjlzWldGdWZTQlNaWFIxY201eklHQjBjblZsWUNCcFppQjBhR1VnWlc1MGNua2dkMkZ6SUhKbGJXOTJaV1FzSUdWc2MyVWdZR1poYkhObFlDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCemRHRmphMFJsYkdWMFpTaHJaWGtwSUh0Y2JpQWdJQ0FnSUhaaGNpQmtZWFJoSUQwZ2RHaHBjeTVmWDJSaGRHRmZYeXhjYmlBZ0lDQWdJQ0FnSUNCeVpYTjFiSFFnUFNCa1lYUmhXeWRrWld4bGRHVW5YU2hyWlhrcE8xeHVYRzRnSUNBZ0lDQjBhR2x6TG5OcGVtVWdQU0JrWVhSaExuTnBlbVU3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFZGxkSE1nZEdobElITjBZV05ySUhaaGJIVmxJR1p2Y2lCZ2EyVjVZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRRzVoYldVZ1oyVjBYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRk4wWVdOclhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUd0bGVTQlVhR1VnYTJWNUlHOW1JSFJvWlNCMllXeDFaU0IwYnlCblpYUXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdleXA5SUZKbGRIVnlibk1nZEdobElHVnVkSEo1SUhaaGJIVmxMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlITjBZV05yUjJWMEtHdGxlU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgxOWtZWFJoWDE4dVoyVjBLR3RsZVNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyaGxZMnR6SUdsbUlHRWdjM1JoWTJzZ2RtRnNkV1VnWm05eUlHQnJaWGxnSUdWNGFYTjBjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRRzVoYldVZ2FHRnpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRk4wWVdOclhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUd0bGVTQlVhR1VnYTJWNUlHOW1JSFJvWlNCbGJuUnllU0IwYnlCamFHVmpheTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3WW05dmJHVmhibjBnVW1WMGRYSnVjeUJnZEhKMVpXQWdhV1lnWVc0Z1pXNTBjbmtnWm05eUlHQnJaWGxnSUdWNGFYTjBjeXdnWld4elpTQmdabUZzYzJWZ0xseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUhOMFlXTnJTR0Z6S0d0bGVTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WDE5a1lYUmhYMTh1YUdGektHdGxlU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVTJWMGN5QjBhR1VnYzNSaFkyc2dZR3RsZVdBZ2RHOGdZSFpoYkhWbFlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FHNWhiV1VnYzJWMFhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGTjBZV05yWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJR3RsZVNCVWFHVWdhMlY1SUc5bUlIUm9aU0IyWVd4MVpTQjBieUJ6WlhRdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdjMlYwTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0UFltcGxZM1I5SUZKbGRIVnlibk1nZEdobElITjBZV05ySUdOaFkyaGxJR2x1YzNSaGJtTmxMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlITjBZV05yVTJWMEtHdGxlU3dnZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJSFpoY2lCa1lYUmhJRDBnZEdocGN5NWZYMlJoZEdGZlh6dGNiaUFnSUNBZ0lHbG1JQ2hrWVhSaElHbHVjM1JoYm1ObGIyWWdUR2x6ZEVOaFkyaGxLU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQndZV2x5Y3lBOUlHUmhkR0V1WDE5a1lYUmhYMTg3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hUV0Z3SUh4OElDaHdZV2x5Y3k1c1pXNW5kR2dnUENCTVFWSkhSVjlCVWxKQldWOVRTVnBGSUMwZ01Ta3BJSHRjYmlBZ0lDQWdJQ0FnSUNCd1lXbHljeTV3ZFhOb0tGdHJaWGtzSUhaaGJIVmxYU2s3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV6YVhwbElEMGdLeXRrWVhSaExuTnBlbVU3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWkdGMFlTQTlJSFJvYVhNdVgxOWtZWFJoWDE4Z1BTQnVaWGNnVFdGd1EyRmphR1VvY0dGcGNuTXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdaR0YwWVM1elpYUW9hMlY1TENCMllXeDFaU2s3WEc0Z0lDQWdJQ0IwYUdsekxuTnBlbVVnUFNCa1lYUmhMbk5wZW1VN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnSUNCOVhHNWNiaUFnSUNBdkx5QkJaR1FnYldWMGFHOWtjeUIwYnlCZ1UzUmhZMnRnTGx4dUlDQWdJRk4wWVdOckxuQnliM1J2ZEhsd1pTNWpiR1ZoY2lBOUlITjBZV05yUTJ4bFlYSTdYRzRnSUNBZ1UzUmhZMnN1Y0hKdmRHOTBlWEJsV3lka1pXeGxkR1VuWFNBOUlITjBZV05yUkdWc1pYUmxPMXh1SUNBZ0lGTjBZV05yTG5CeWIzUnZkSGx3WlM1blpYUWdQU0J6ZEdGamEwZGxkRHRjYmlBZ0lDQlRkR0ZqYXk1d2NtOTBiM1I1Y0dVdWFHRnpJRDBnYzNSaFkydElZWE03WEc0Z0lDQWdVM1JoWTJzdWNISnZkRzkwZVhCbExuTmxkQ0E5SUhOMFlXTnJVMlYwTzF4dVhHNGdJQ0FnTHlvdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwcUwxeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRM0psWVhSbGN5QmhiaUJoY25KaGVTQnZaaUIwYUdVZ1pXNTFiV1Z5WVdKc1pTQndjbTl3WlhKMGVTQnVZVzFsY3lCdlppQjBhR1VnWVhKeVlYa3RiR2xyWlNCZ2RtRnNkV1ZnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCeGRXVnllUzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMkp2YjJ4bFlXNTlJR2x1YUdWeWFYUmxaQ0JUY0dWamFXWjVJSEpsZEhWeWJtbHVaeUJwYm1obGNtbDBaV1FnY0hKdmNHVnlkSGtnYm1GdFpYTXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMEZ5Y21GNWZTQlNaWFIxY201eklIUm9aU0JoY25KaGVTQnZaaUJ3Y205d1pYSjBlU0J1WVcxbGN5NWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCaGNuSmhlVXhwYTJWTFpYbHpLSFpoYkhWbExDQnBibWhsY21sMFpXUXBJSHRjYmlBZ0lDQWdJSFpoY2lCcGMwRnljaUE5SUdselFYSnlZWGtvZG1Gc2RXVXBMRnh1SUNBZ0lDQWdJQ0FnSUdselFYSm5JRDBnSVdselFYSnlJQ1ltSUdselFYSm5kVzFsYm5SektIWmhiSFZsS1N4Y2JpQWdJQ0FnSUNBZ0lDQnBjMEoxWm1ZZ1BTQWhhWE5CY25JZ0ppWWdJV2x6UVhKbklDWW1JR2x6UW5WbVptVnlLSFpoYkhWbEtTeGNiaUFnSUNBZ0lDQWdJQ0JwYzFSNWNHVWdQU0FoYVhOQmNuSWdKaVlnSVdselFYSm5JQ1ltSUNGcGMwSjFabVlnSmlZZ2FYTlVlWEJsWkVGeWNtRjVLSFpoYkhWbEtTeGNiaUFnSUNBZ0lDQWdJQ0J6YTJsd1NXNWtaWGhsY3lBOUlHbHpRWEp5SUh4OElHbHpRWEpuSUh4OElHbHpRblZtWmlCOGZDQnBjMVI1Y0dVc1hHNGdJQ0FnSUNBZ0lDQWdjbVZ6ZFd4MElEMGdjMnRwY0VsdVpHVjRaWE1nUHlCaVlYTmxWR2x0WlhNb2RtRnNkV1V1YkdWdVozUm9MQ0JUZEhKcGJtY3BJRG9nVzEwc1hHNGdJQ0FnSUNBZ0lDQWdiR1Z1WjNSb0lEMGdjbVZ6ZFd4MExteGxibWQwYUR0Y2JseHVJQ0FnSUNBZ1ptOXlJQ2gyWVhJZ2EyVjVJR2x1SUhaaGJIVmxLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDZ29hVzVvWlhKcGRHVmtJSHg4SUdoaGMwOTNibEJ5YjNCbGNuUjVMbU5oYkd3b2RtRnNkV1VzSUd0bGVTa3BJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWhLSE5yYVhCSmJtUmxlR1Z6SUNZbUlDaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJRk5oWm1GeWFTQTVJR2hoY3lCbGJuVnRaWEpoWW14bElHQmhjbWQxYldWdWRITXViR1Z1WjNSb1lDQnBiaUJ6ZEhKcFkzUWdiVzlrWlM1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd0bGVTQTlQU0FuYkdWdVozUm9KeUI4ZkZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1RtOWtaUzVxY3lBd0xqRXdJR2hoY3lCbGJuVnRaWEpoWW14bElHNXZiaTFwYm1SbGVDQndjbTl3WlhKMGFXVnpJRzl1SUdKMVptWmxjbk11WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FvYVhOQ2RXWm1JQ1ltSUNoclpYa2dQVDBnSjI5bVpuTmxkQ2NnZkh3Z2EyVjVJRDA5SUNkd1lYSmxiblFuS1NrZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJRkJvWVc1MGIyMUtVeUF5SUdoaGN5QmxiblZ0WlhKaFlteGxJRzV2YmkxcGJtUmxlQ0J3Y205d1pYSjBhV1Z6SUc5dUlIUjVjR1ZrSUdGeWNtRjVjeTVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2hwYzFSNWNHVWdKaVlnS0d0bGVTQTlQU0FuWW5WbVptVnlKeUI4ZkNCclpYa2dQVDBnSjJKNWRHVk1aVzVuZEdnbklIeDhJR3RsZVNBOVBTQW5ZbmwwWlU5bVpuTmxkQ2NwS1NCOGZGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdVMnRwY0NCcGJtUmxlQ0J3Y205d1pYSjBhV1Z6TGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVhOSmJtUmxlQ2hyWlhrc0lHeGxibWQwYUNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ2twS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVZ6ZFd4MExuQjFjMmdvYTJWNUtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQklITndaV05wWVd4cGVtVmtJSFpsY25OcGIyNGdiMllnWUY4dWMyRnRjR3hsWUNCbWIzSWdZWEp5WVhsekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0JoY25KaGVTQlVhR1VnWVhKeVlYa2dkRzhnYzJGdGNHeGxMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHNxZlNCU1pYUjFjbTV6SUhSb1pTQnlZVzVrYjIwZ1pXeGxiV1Z1ZEM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJoY25KaGVWTmhiWEJzWlNoaGNuSmhlU2tnZTF4dUlDQWdJQ0FnZG1GeUlHeGxibWQwYUNBOUlHRnljbUY1TG14bGJtZDBhRHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnNaVzVuZEdnZ1B5QmhjbkpoZVZ0aVlYTmxVbUZ1Wkc5dEtEQXNJR3hsYm1kMGFDQXRJREVwWFNBNklIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkJJSE53WldOcFlXeHBlbVZrSUhabGNuTnBiMjRnYjJZZ1lGOHVjMkZ0Y0d4bFUybDZaV0FnWm05eUlHRnljbUY1Y3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdZWEp5WVhrZ1ZHaGxJR0Z5Y21GNUlIUnZJSE5oYlhCc1pTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2JpQlVhR1VnYm5WdFltVnlJRzltSUdWc1pXMWxiblJ6SUhSdklITmhiWEJzWlM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1FYSnlZWGw5SUZKbGRIVnlibk1nZEdobElISmhibVJ2YlNCbGJHVnRaVzUwY3k1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJoY25KaGVWTmhiWEJzWlZOcGVtVW9ZWEp5WVhrc0lHNHBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnphSFZtWm14bFUyVnNaaWhqYjNCNVFYSnlZWGtvWVhKeVlYa3BMQ0JpWVhObFEyeGhiWEFvYml3Z01Dd2dZWEp5WVhrdWJHVnVaM1JvS1NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FTQnpjR1ZqYVdGc2FYcGxaQ0IyWlhKemFXOXVJRzltSUdCZkxuTm9kV1ptYkdWZ0lHWnZjaUJoY25KaGVYTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUdGeWNtRjVJRlJvWlNCaGNuSmhlU0IwYnlCemFIVm1abXhsTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0QmNuSmhlWDBnVW1WMGRYSnVjeUIwYUdVZ2JtVjNJSE5vZFdabWJHVmtJR0Z5Y21GNUxseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdGeWNtRjVVMmgxWm1ac1pTaGhjbkpoZVNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhOb2RXWm1iR1ZUWld4bUtHTnZjSGxCY25KaGVTaGhjbkpoZVNrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9hWE1nWm5WdVkzUnBiMjRnYVhNZ2JHbHJaU0JnWVhOemFXZHVWbUZzZFdWZ0lHVjRZMlZ3ZENCMGFHRjBJR2wwSUdSdlpYTnVKM1FnWVhOemFXZHVYRzRnSUNBZ0lDb2dZSFZ1WkdWbWFXNWxaR0FnZG1Gc2RXVnpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQnZZbXBsWTNRZ2RHOGdiVzlrYVdaNUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCclpYa2dWR2hsSUd0bGVTQnZaaUIwYUdVZ2NISnZjR1Z5ZEhrZ2RHOGdZWE56YVdkdUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdkbUZzZFdVZ1ZHaGxJSFpoYkhWbElIUnZJR0Z6YzJsbmJpNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCaGMzTnBaMjVOWlhKblpWWmhiSFZsS0c5aWFtVmpkQ3dnYTJWNUxDQjJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ2FXWWdLQ2gyWVd4MVpTQWhQVDBnZFc1a1pXWnBibVZrSUNZbUlDRmxjU2h2WW1wbFkzUmJhMlY1WFN3Z2RtRnNkV1VwS1NCOGZGeHVJQ0FnSUNBZ0lDQWdJQ2gyWVd4MVpTQTlQVDBnZFc1a1pXWnBibVZrSUNZbUlDRW9hMlY1SUdsdUlHOWlhbVZqZENrcEtTQjdYRzRnSUNBZ0lDQWdJR0poYzJWQmMzTnBaMjVXWVd4MVpTaHZZbXBsWTNRc0lHdGxlU3dnZG1Gc2RXVXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRUZ6YzJsbmJuTWdZSFpoYkhWbFlDQjBieUJnYTJWNVlDQnZaaUJnYjJKcVpXTjBZQ0JwWmlCMGFHVWdaWGhwYzNScGJtY2dkbUZzZFdVZ2FYTWdibTkwSUdWeGRXbDJZV3hsYm5SY2JpQWdJQ0FnS2lCMWMybHVaeUJiWUZOaGJXVldZV3gxWlZwbGNtOWdYU2hvZEhSd09pOHZaV050WVMxcGJuUmxjbTVoZEdsdmJtRnNMbTl5Wnk5bFkyMWhMVEkyTWk4M0xqQXZJM05sWXkxellXMWxkbUZzZFdWNlpYSnZLVnh1SUNBZ0lDQXFJR1p2Y2lCbGNYVmhiR2wwZVNCamIyMXdZWEpwYzI5dWN5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5aWFtVmpkQ0JVYUdVZ2IySnFaV04wSUhSdklHMXZaR2xtZVM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYTJWNUlGUm9aU0JyWlhrZ2IyWWdkR2hsSUhCeWIzQmxjblI1SUhSdklHRnpjMmxuYmk1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlIWmhiSFZsSUZSb1pTQjJZV3gxWlNCMGJ5QmhjM05wWjI0dVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnWVhOemFXZHVWbUZzZFdVb2IySnFaV04wTENCclpYa3NJSFpoYkhWbEtTQjdYRzRnSUNBZ0lDQjJZWElnYjJKcVZtRnNkV1VnUFNCdlltcGxZM1JiYTJWNVhUdGNiaUFnSUNBZ0lHbG1JQ2doS0doaGMwOTNibEJ5YjNCbGNuUjVMbU5oYkd3b2IySnFaV04wTENCclpYa3BJQ1ltSUdWeEtHOWlhbFpoYkhWbExDQjJZV3gxWlNrcElIeDhYRzRnSUNBZ0lDQWdJQ0FnS0haaGJIVmxJRDA5UFNCMWJtUmxabWx1WldRZ0ppWWdJU2hyWlhrZ2FXNGdiMkpxWldOMEtTa3BJSHRjYmlBZ0lDQWdJQ0FnWW1GelpVRnpjMmxuYmxaaGJIVmxLRzlpYW1WamRDd2dhMlY1TENCMllXeDFaU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUjJWMGN5QjBhR1VnYVc1a1pYZ2dZWFFnZDJocFkyZ2dkR2hsSUdCclpYbGdJR2x6SUdadmRXNWtJR2x1SUdCaGNuSmhlV0FnYjJZZ2EyVjVMWFpoYkhWbElIQmhhWEp6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZTQmhjbkpoZVNCVWFHVWdZWEp5WVhrZ2RHOGdhVzV6Y0dWamRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJR3RsZVNCVWFHVWdhMlY1SUhSdklITmxZWEpqYUNCbWIzSXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMjUxYldKbGNuMGdVbVYwZFhKdWN5QjBhR1VnYVc1a1pYZ2diMllnZEdobElHMWhkR05vWldRZ2RtRnNkV1VzSUdWc2MyVWdZQzB4WUM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJoYzNOdlkwbHVaR1Y0VDJZb1lYSnlZWGtzSUd0bGVTa2dlMXh1SUNBZ0lDQWdkbUZ5SUd4bGJtZDBhQ0E5SUdGeWNtRjVMbXhsYm1kMGFEdGNiaUFnSUNBZ0lIZG9hV3hsSUNoc1pXNW5kR2d0TFNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvWlhFb1lYSnlZWGxiYkdWdVozUm9YVnN3WFN3Z2EyVjVLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCc1pXNW5kR2c3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUF0TVR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQloyZHlaV2RoZEdWeklHVnNaVzFsYm5SeklHOW1JR0JqYjJ4c1pXTjBhVzl1WUNCdmJpQmdZV05qZFcxMWJHRjBiM0pnSUhkcGRHZ2dhMlY1Y3lCMGNtRnVjMlp2Y20xbFpGeHVJQ0FnSUNBcUlHSjVJR0JwZEdWeVlYUmxaV0FnWVc1a0lIWmhiSFZsY3lCelpYUWdZbmtnWUhObGRIUmxjbUF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOFQySnFaV04wZlNCamIyeHNaV04wYVc5dUlGUm9aU0JqYjJ4c1pXTjBhVzl1SUhSdklHbDBaWEpoZEdVZ2IzWmxjaTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0J6WlhSMFpYSWdWR2hsSUdaMWJtTjBhVzl1SUhSdklITmxkQ0JnWVdOamRXMTFiR0YwYjNKZ0lIWmhiSFZsY3k1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCcGRHVnlZWFJsWlNCVWFHVWdhWFJsY21GMFpXVWdkRzhnZEhKaGJuTm1iM0p0SUd0bGVYTXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHRmpZM1Z0ZFd4aGRHOXlJRlJvWlNCcGJtbDBhV0ZzSUdGblozSmxaMkYwWldRZ2IySnFaV04wTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0R2RXNWpkR2x2Ym4wZ1VtVjBkWEp1Y3lCZ1lXTmpkVzExYkdGMGIzSmdMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHSmhjMlZCWjJkeVpXZGhkRzl5S0dOdmJHeGxZM1JwYjI0c0lITmxkSFJsY2l3Z2FYUmxjbUYwWldVc0lHRmpZM1Z0ZFd4aGRHOXlLU0I3WEc0Z0lDQWdJQ0JpWVhObFJXRmphQ2hqYjJ4c1pXTjBhVzl1TENCbWRXNWpkR2x2YmloMllXeDFaU3dnYTJWNUxDQmpiMnhzWldOMGFXOXVLU0I3WEc0Z0lDQWdJQ0FnSUhObGRIUmxjaWhoWTJOMWJYVnNZWFJ2Y2l3Z2RtRnNkV1VzSUdsMFpYSmhkR1ZsS0haaGJIVmxLU3dnWTI5c2JHVmpkR2x2YmlrN1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCaFkyTjFiWFZzWVhSdmNqdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR1VnWW1GelpTQnBiWEJzWlcxbGJuUmhkR2x2YmlCdlppQmdYeTVoYzNOcFoyNWdJSGRwZEdodmRYUWdjM1Z3Y0c5eWRDQm1iM0lnYlhWc2RHbHdiR1VnYzI5MWNtTmxjMXh1SUNBZ0lDQXFJRzl5SUdCamRYTjBiMjFwZW1WeVlDQm1kVzVqZEdsdmJuTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGxZM1FnVkdobElHUmxjM1JwYm1GMGFXOXVJRzlpYW1WamRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2MyOTFjbU5sSUZSb1pTQnpiM1Z5WTJVZ2IySnFaV04wTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0UFltcGxZM1I5SUZKbGRIVnlibk1nWUc5aWFtVmpkR0F1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZbUZ6WlVGemMybG5iaWh2WW1wbFkzUXNJSE52ZFhKalpTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHOWlhbVZqZENBbUppQmpiM0I1VDJKcVpXTjBLSE52ZFhKalpTd2dhMlY1Y3loemIzVnlZMlVwTENCdlltcGxZM1FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQmlZWE5sSUdsdGNHeGxiV1Z1ZEdGMGFXOXVJRzltSUdCZkxtRnpjMmxuYmtsdVlDQjNhWFJvYjNWMElITjFjSEJ2Y25RZ1ptOXlJRzExYkhScGNHeGxJSE52ZFhKalpYTmNiaUFnSUNBZ0tpQnZjaUJnWTNWemRHOXRhWHBsY21BZ1puVnVZM1JwYjI1ekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjJKcVpXTjBJRlJvWlNCa1pYTjBhVzVoZEdsdmJpQnZZbXBsWTNRdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUhOdmRYSmpaU0JVYUdVZ2MyOTFjbU5sSUc5aWFtVmpkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3VDJKcVpXTjBmU0JTWlhSMWNtNXpJR0J2WW1wbFkzUmdMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHSmhjMlZCYzNOcFoyNUpiaWh2WW1wbFkzUXNJSE52ZFhKalpTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHOWlhbVZqZENBbUppQmpiM0I1VDJKcVpXTjBLSE52ZFhKalpTd2dhMlY1YzBsdUtITnZkWEpqWlNrc0lHOWlhbVZqZENrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaGxJR0poYzJVZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRnYjJZZ1lHRnpjMmxuYmxaaGJIVmxZQ0JoYm1RZ1lHRnpjMmxuYmsxbGNtZGxWbUZzZFdWZ0lIZHBkR2h2ZFhSY2JpQWdJQ0FnS2lCMllXeDFaU0JqYUdWamEzTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGxZM1FnVkdobElHOWlhbVZqZENCMGJ5QnRiMlJwWm5rdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUd0bGVTQlVhR1VnYTJWNUlHOW1JSFJvWlNCd2NtOXdaWEowZVNCMGJ5QmhjM05wWjI0dVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdZWE56YVdkdUxseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdKaGMyVkJjM05wWjI1V1lXeDFaU2h2WW1wbFkzUXNJR3RsZVN3Z2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUdsbUlDaHJaWGtnUFQwZ0oxOWZjSEp2ZEc5Zlh5Y2dKaVlnWkdWbWFXNWxVSEp2Y0dWeWRIa3BJSHRjYmlBZ0lDQWdJQ0FnWkdWbWFXNWxVSEp2Y0dWeWRIa29iMkpxWldOMExDQnJaWGtzSUh0Y2JpQWdJQ0FnSUNBZ0lDQW5ZMjl1Wm1sbmRYSmhZbXhsSnpvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnSUNBblpXNTFiV1Z5WVdKc1pTYzZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lDQWdKM1poYkhWbEp6b2dkbUZzZFdVc1hHNGdJQ0FnSUNBZ0lDQWdKM2R5YVhSaFlteGxKem9nZEhKMVpWeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJRzlpYW1WamRGdHJaWGxkSUQwZ2RtRnNkV1U3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdobElHSmhjMlVnYVcxd2JHVnRaVzUwWVhScGIyNGdiMllnWUY4dVlYUmdJSGRwZEdodmRYUWdjM1Z3Y0c5eWRDQm1iM0lnYVc1a2FYWnBaSFZoYkNCd1lYUm9jeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOWlhbVZqZENCVWFHVWdiMkpxWldOMElIUnZJR2wwWlhKaGRHVWdiM1psY2k1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMXRkZlNCd1lYUm9jeUJVYUdVZ2NISnZjR1Z5ZEhrZ2NHRjBhSE1nZEc4Z2NHbGpheTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUhCcFkydGxaQ0JsYkdWdFpXNTBjeTVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmlZWE5sUVhRb2IySnFaV04wTENCd1lYUm9jeWtnZTF4dUlDQWdJQ0FnZG1GeUlHbHVaR1Y0SUQwZ0xURXNYRzRnSUNBZ0lDQWdJQ0FnYkdWdVozUm9JRDBnY0dGMGFITXViR1Z1WjNSb0xGeHVJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RDQTlJRUZ5Y21GNUtHeGxibWQwYUNrc1hHNGdJQ0FnSUNBZ0lDQWdjMnRwY0NBOUlHOWlhbVZqZENBOVBTQnVkV3hzTzF4dVhHNGdJQ0FnSUNCM2FHbHNaU0FvS3l0cGJtUmxlQ0E4SUd4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYTjFiSFJiYVc1a1pYaGRJRDBnYzJ0cGNDQS9JSFZ1WkdWbWFXNWxaQ0E2SUdkbGRDaHZZbXBsWTNRc0lIQmhkR2h6VzJsdVpHVjRYU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9aU0JpWVhObElHbHRjR3hsYldWdWRHRjBhVzl1SUc5bUlHQmZMbU5zWVcxd1lDQjNhR2xqYUNCa2IyVnpiaWQwSUdOdlpYSmpaU0JoY21kMWJXVnVkSE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnVkVzFpWlhJZ1ZHaGxJRzUxYldKbGNpQjBieUJqYkdGdGNDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1cyeHZkMlZ5WFNCVWFHVWdiRzkzWlhJZ1ltOTFibVF1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJSFZ3Y0dWeUlGUm9aU0IxY0hCbGNpQmliM1Z1WkM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN2JuVnRZbVZ5ZlNCU1pYUjFjbTV6SUhSb1pTQmpiR0Z0Y0dWa0lHNTFiV0psY2k1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJpWVhObFEyeGhiWEFvYm5WdFltVnlMQ0JzYjNkbGNpd2dkWEJ3WlhJcElIdGNiaUFnSUNBZ0lHbG1JQ2h1ZFcxaVpYSWdQVDA5SUc1MWJXSmxjaWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9kWEJ3WlhJZ0lUMDlJSFZ1WkdWbWFXNWxaQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHNTFiV0psY2lBOUlHNTFiV0psY2lBOFBTQjFjSEJsY2lBL0lHNTFiV0psY2lBNklIVndjR1Z5TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2hzYjNkbGNpQWhQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdiblZ0WW1WeUlEMGdiblZ0WW1WeUlENDlJR3h2ZDJWeUlEOGdiblZ0WW1WeUlEb2diRzkzWlhJN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCdWRXMWlaWEk3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdobElHSmhjMlVnYVcxd2JHVnRaVzUwWVhScGIyNGdiMllnWUY4dVkyeHZibVZnSUdGdVpDQmdYeTVqYkc5dVpVUmxaWEJnSUhkb2FXTm9JSFJ5WVdOcmMxeHVJQ0FnSUNBcUlIUnlZWFpsY25ObFpDQnZZbXBsWTNSekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlIWmhiSFZsSUZSb1pTQjJZV3gxWlNCMGJ5QmpiRzl1WlM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUdKcGRHMWhjMnNnVkdobElHSnBkRzFoYzJzZ1pteGhaM011WEc0Z0lDQWdJQ29nSURFZ0xTQkVaV1Z3SUdOc2IyNWxYRzRnSUNBZ0lDb2dJRElnTFNCR2JHRjBkR1Z1SUdsdWFHVnlhWFJsWkNCd2NtOXdaWEowYVdWelhHNGdJQ0FnSUNvZ0lEUWdMU0JEYkc5dVpTQnplVzFpYjJ4elhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1cyTjFjM1J2YldsNlpYSmRJRlJvWlNCbWRXNWpkR2x2YmlCMGJ5QmpkWE4wYjIxcGVtVWdZMnh2Ym1sdVp5NWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cydGxlVjBnVkdobElHdGxlU0J2WmlCZ2RtRnNkV1ZnTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0JiYjJKcVpXTjBYU0JVYUdVZ2NHRnlaVzUwSUc5aWFtVmpkQ0J2WmlCZ2RtRnNkV1ZnTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0JiYzNSaFkydGRJRlJ5WVdOcmN5QjBjbUYyWlhKelpXUWdiMkpxWldOMGN5QmhibVFnZEdobGFYSWdZMnh2Ym1VZ1kyOTFiblJsY25CaGNuUnpMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHNxZlNCU1pYUjFjbTV6SUhSb1pTQmpiRzl1WldRZ2RtRnNkV1V1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZbUZ6WlVOc2IyNWxLSFpoYkhWbExDQmlhWFJ0WVhOckxDQmpkWE4wYjIxcGVtVnlMQ0JyWlhrc0lHOWlhbVZqZEN3Z2MzUmhZMnNwSUh0Y2JpQWdJQ0FnSUhaaGNpQnlaWE4xYkhRc1hHNGdJQ0FnSUNBZ0lDQWdhWE5FWldWd0lEMGdZbWwwYldGemF5QW1JRU5NVDA1RlgwUkZSVkJmUmt4QlJ5eGNiaUFnSUNBZ0lDQWdJQ0JwYzBac1lYUWdQU0JpYVhSdFlYTnJJQ1lnUTB4UFRrVmZSa3hCVkY5R1RFRkhMRnh1SUNBZ0lDQWdJQ0FnSUdselJuVnNiQ0E5SUdKcGRHMWhjMnNnSmlCRFRFOU9SVjlUV1UxQ1QweFRYMFpNUVVjN1hHNWNiaUFnSUNBZ0lHbG1JQ2hqZFhOMGIyMXBlbVZ5S1NCN1hHNGdJQ0FnSUNBZ0lISmxjM1ZzZENBOUlHOWlhbVZqZENBL0lHTjFjM1J2YldsNlpYSW9kbUZzZFdVc0lHdGxlU3dnYjJKcVpXTjBMQ0J6ZEdGamF5a2dPaUJqZFhOMGIyMXBlbVZ5S0haaGJIVmxLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR2xtSUNoeVpYTjFiSFFnSVQwOUlIVnVaR1ZtYVc1bFpDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLQ0ZwYzA5aWFtVmpkQ2gyWVd4MVpTa3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFpoYkhWbE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2RtRnlJR2x6UVhKeUlEMGdhWE5CY25KaGVTaDJZV3gxWlNrN1hHNGdJQ0FnSUNCcFppQW9hWE5CY25JcElIdGNiaUFnSUNBZ0lDQWdjbVZ6ZFd4MElEMGdhVzVwZEVOc2IyNWxRWEp5WVhrb2RtRnNkV1VwTzF4dUlDQWdJQ0FnSUNCcFppQW9JV2x6UkdWbGNDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJqYjNCNVFYSnlZWGtvZG1Gc2RXVXNJSEpsYzNWc2RDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCMFlXY2dQU0JuWlhSVVlXY29kbUZzZFdVcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYVhOR2RXNWpJRDBnZEdGbklEMDlJR1oxYm1OVVlXY2dmSHdnZEdGbklEMDlJR2RsYmxSaFp6dGNibHh1SUNBZ0lDQWdJQ0JwWmlBb2FYTkNkV1ptWlhJb2RtRnNkV1VwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHTnNiMjVsUW5WbVptVnlLSFpoYkhWbExDQnBjMFJsWlhBcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR2xtSUNoMFlXY2dQVDBnYjJKcVpXTjBWR0ZuSUh4OElIUmhaeUE5UFNCaGNtZHpWR0ZuSUh4OElDaHBjMFoxYm1NZ0ppWWdJVzlpYW1WamRDa3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYTjFiSFFnUFNBb2FYTkdiR0YwSUh4OElHbHpSblZ1WXlrZ1B5QjdmU0E2SUdsdWFYUkRiRzl1WlU5aWFtVmpkQ2gyWVd4MVpTazdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tDRnBjMFJsWlhBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJwYzBac1lYUmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1B5QmpiM0I1VTNsdFltOXNjMGx1S0haaGJIVmxMQ0JpWVhObFFYTnphV2R1U1c0b2NtVnpkV3gwTENCMllXeDFaU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRG9nWTI5d2VWTjViV0p2YkhNb2RtRnNkV1VzSUdKaGMyVkJjM05wWjI0b2NtVnpkV3gwTENCMllXeDFaU2twTzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb0lXTnNiMjVsWVdKc1pWUmhaM05iZEdGblhTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUc5aWFtVmpkQ0EvSUhaaGJIVmxJRG9nZTMwN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUhKbGMzVnNkQ0E5SUdsdWFYUkRiRzl1WlVKNVZHRm5LSFpoYkhWbExDQjBZV2NzSUdselJHVmxjQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUM4dklFTm9aV05ySUdadmNpQmphWEpqZFd4aGNpQnlaV1psY21WdVkyVnpJR0Z1WkNCeVpYUjFjbTRnYVhSeklHTnZjbkpsYzNCdmJtUnBibWNnWTJ4dmJtVXVYRzRnSUNBZ0lDQnpkR0ZqYXlCOGZDQW9jM1JoWTJzZ1BTQnVaWGNnVTNSaFkyc3BPMXh1SUNBZ0lDQWdkbUZ5SUhOMFlXTnJaV1FnUFNCemRHRmpheTVuWlhRb2RtRnNkV1VwTzF4dUlDQWdJQ0FnYVdZZ0tITjBZV05yWldRcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlITjBZV05yWldRN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCemRHRmpheTV6WlhRb2RtRnNkV1VzSUhKbGMzVnNkQ2s3WEc1Y2JpQWdJQ0FnSUdsbUlDaHBjMU5sZENoMllXeDFaU2twSUh0Y2JpQWdJQ0FnSUNBZ2RtRnNkV1V1Wm05eVJXRmphQ2htZFc1amRHbHZiaWh6ZFdKV1lXeDFaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxjM1ZzZEM1aFpHUW9ZbUZ6WlVOc2IyNWxLSE4xWWxaaGJIVmxMQ0JpYVhSdFlYTnJMQ0JqZFhOMGIyMXBlbVZ5TENCemRXSldZV3gxWlN3Z2RtRnNkV1VzSUhOMFlXTnJLU2s3WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaHBjMDFoY0NoMllXeDFaU2twSUh0Y2JpQWdJQ0FnSUNBZ2RtRnNkV1V1Wm05eVJXRmphQ2htZFc1amRHbHZiaWh6ZFdKV1lXeDFaU3dnYTJWNUtTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WemRXeDBMbk5sZENoclpYa3NJR0poYzJWRGJHOXVaU2h6ZFdKV1lXeDFaU3dnWW1sMGJXRnpheXdnWTNWemRHOXRhWHBsY2l3Z2EyVjVMQ0IyWVd4MVpTd2djM1JoWTJzcEtUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUhaaGNpQnJaWGx6Um5WdVl5QTlJR2x6Um5Wc2JGeHVJQ0FnSUNBZ0lDQS9JQ2hwYzBac1lYUWdQeUJuWlhSQmJHeExaWGx6U1c0Z09pQm5aWFJCYkd4TFpYbHpLVnh1SUNBZ0lDQWdJQ0E2SUNocGMwWnNZWFFnUHlCclpYbHpTVzRnT2lCclpYbHpLVHRjYmx4dUlDQWdJQ0FnZG1GeUlIQnliM0J6SUQwZ2FYTkJjbklnUHlCMWJtUmxabWx1WldRZ09pQnJaWGx6Um5WdVl5aDJZV3gxWlNrN1hHNGdJQ0FnSUNCaGNuSmhlVVZoWTJnb2NISnZjSE1nZkh3Z2RtRnNkV1VzSUdaMWJtTjBhVzl1S0hOMVlsWmhiSFZsTENCclpYa3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tIQnliM0J6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdhMlY1SUQwZ2MzVmlWbUZzZFdVN1hHNGdJQ0FnSUNBZ0lDQWdjM1ZpVm1Gc2RXVWdQU0IyWVd4MVpWdHJaWGxkTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDOHZJRkpsWTNWeWMybDJaV3g1SUhCdmNIVnNZWFJsSUdOc2IyNWxJQ2h6ZFhOalpYQjBhV0pzWlNCMGJ5QmpZV3hzSUhOMFlXTnJJR3hwYldsMGN5a3VYRzRnSUNBZ0lDQWdJR0Z6YzJsbmJsWmhiSFZsS0hKbGMzVnNkQ3dnYTJWNUxDQmlZWE5sUTJ4dmJtVW9jM1ZpVm1Gc2RXVXNJR0pwZEcxaGMyc3NJR04xYzNSdmJXbDZaWElzSUd0bGVTd2dkbUZzZFdVc0lITjBZV05yS1NrN1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdobElHSmhjMlVnYVcxd2JHVnRaVzUwWVhScGIyNGdiMllnWUY4dVkyOXVabTl5YlhOZ0lIZG9hV05vSUdSdlpYTnVKM1FnWTJ4dmJtVWdZSE52ZFhKalpXQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCemIzVnlZMlVnVkdobElHOWlhbVZqZENCdlppQndjbTl3WlhKMGVTQndjbVZrYVdOaGRHVnpJSFJ2SUdOdmJtWnZjbTBnZEc4dVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwWjFibU4wYVc5dWZTQlNaWFIxY201eklIUm9aU0J1WlhjZ2MzQmxZeUJtZFc1amRHbHZiaTVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmlZWE5sUTI5dVptOXliWE1vYzI5MWNtTmxLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2NISnZjSE1nUFNCclpYbHpLSE52ZFhKalpTazdYRzRnSUNBZ0lDQnlaWFIxY200Z1puVnVZM1JwYjI0b2IySnFaV04wS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCaVlYTmxRMjl1Wm05eWJYTlVieWh2WW1wbFkzUXNJSE52ZFhKalpTd2djSEp2Y0hNcE8xeHVJQ0FnSUNBZ2ZUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR1VnWW1GelpTQnBiWEJzWlcxbGJuUmhkR2x2YmlCdlppQmdYeTVqYjI1bWIzSnRjMVJ2WUNCM2FHbGphQ0JoWTJObGNIUnpJR0J3Y205d2MyQWdkRzhnWTJobFkyc3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGxZM1FnVkdobElHOWlhbVZqZENCMGJ5QnBibk53WldOMExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCemIzVnlZMlVnVkdobElHOWlhbVZqZENCdlppQndjbTl3WlhKMGVTQndjbVZrYVdOaGRHVnpJSFJ2SUdOdmJtWnZjbTBnZEc4dVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UySnZiMnhsWVc1OUlGSmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdsbUlHQnZZbXBsWTNSZ0lHTnZibVp2Y20xekxDQmxiSE5sSUdCbVlXeHpaV0F1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZbUZ6WlVOdmJtWnZjbTF6Vkc4b2IySnFaV04wTENCemIzVnlZMlVzSUhCeWIzQnpLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2JHVnVaM1JvSUQwZ2NISnZjSE11YkdWdVozUm9PMXh1SUNBZ0lDQWdhV1lnS0c5aWFtVmpkQ0E5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUFoYkdWdVozUm9PMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdiMkpxWldOMElEMGdUMkpxWldOMEtHOWlhbVZqZENrN1hHNGdJQ0FnSUNCM2FHbHNaU0FvYkdWdVozUm9MUzBwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJR3RsZVNBOUlIQnliM0J6VzJ4bGJtZDBhRjBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQndjbVZrYVdOaGRHVWdQU0J6YjNWeVkyVmJhMlY1WFN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbElEMGdiMkpxWldOMFcydGxlVjA3WEc1Y2JpQWdJQ0FnSUNBZ2FXWWdLQ2gyWVd4MVpTQTlQVDBnZFc1a1pXWnBibVZrSUNZbUlDRW9hMlY1SUdsdUlHOWlhbVZqZENrcElIeDhJQ0Z3Y21Wa2FXTmhkR1VvZG1Gc2RXVXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVWFHVWdZbUZ6WlNCcGJYQnNaVzFsYm5SaGRHbHZiaUJ2WmlCZ1h5NWtaV3hoZVdBZ1lXNWtJR0JmTG1SbFptVnlZQ0IzYUdsamFDQmhZMk5sY0hSeklHQmhjbWR6WUZ4dUlDQWdJQ0FxSUhSdklIQnliM1pwWkdVZ2RHOGdZR1oxYm1OZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCbWRXNWpJRlJvWlNCbWRXNWpkR2x2YmlCMGJ5QmtaV3hoZVM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnZDJGcGRDQlVhR1VnYm5WdFltVnlJRzltSUcxcGJHeHBjMlZqYjI1a2N5QjBieUJrWld4aGVTQnBiblp2WTJGMGFXOXVMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlHRnlaM01nVkdobElHRnlaM1Z0Wlc1MGN5QjBieUJ3Y205MmFXUmxJSFJ2SUdCbWRXNWpZQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3Ym5WdFltVnlmRTlpYW1WamRIMGdVbVYwZFhKdWN5QjBhR1VnZEdsdFpYSWdhV1FnYjNJZ2RHbHRaVzkxZENCdlltcGxZM1F1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZbUZ6WlVSbGJHRjVLR1oxYm1Nc0lIZGhhWFFzSUdGeVozTXBJSHRjYmlBZ0lDQWdJR2xtSUNoMGVYQmxiMllnWm5WdVl5QWhQU0FuWm5WdVkzUnBiMjRuS1NCN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9SbFZPUTE5RlVsSlBVbDlVUlZoVUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCelpYUlVhVzFsYjNWMEtHWjFibU4wYVc5dUtDa2dleUJtZFc1akxtRndjR3g1S0hWdVpHVm1hVzVsWkN3Z1lYSm5jeWs3SUgwc0lIZGhhWFFwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQmlZWE5sSUdsdGNHeGxiV1Z1ZEdGMGFXOXVJRzltSUcxbGRHaHZaSE1nYkdsclpTQmdYeTVrYVdabVpYSmxibU5sWUNCM2FYUm9iM1YwSUhOMWNIQnZjblJjYmlBZ0lDQWdLaUJtYjNJZ1pYaGpiSFZrYVc1bklHMTFiSFJwY0d4bElHRnljbUY1Y3lCdmNpQnBkR1Z5WVhSbFpTQnphRzl5ZEdoaGJtUnpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCaGNuSmhlU0JVYUdVZ1lYSnlZWGtnZEc4Z2FXNXpjR1ZqZEM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0IyWVd4MVpYTWdWR2hsSUhaaGJIVmxjeUIwYnlCbGVHTnNkV1JsTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUZ0cGRHVnlZWFJsWlYwZ1ZHaGxJR2wwWlhKaGRHVmxJR2x1ZG05clpXUWdjR1Z5SUdWc1pXMWxiblF1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnVzJOdmJYQmhjbUYwYjNKZElGUm9aU0JqYjIxd1lYSmhkRzl5SUdsdWRtOXJaV1FnY0dWeUlHVnNaVzFsYm5RdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnWVhKeVlYa2diMllnWm1sc2RHVnlaV1FnZG1Gc2RXVnpMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHSmhjMlZFYVdabVpYSmxibU5sS0dGeWNtRjVMQ0IyWVd4MVpYTXNJR2wwWlhKaGRHVmxMQ0JqYjIxd1lYSmhkRzl5S1NCN1hHNGdJQ0FnSUNCMllYSWdhVzVrWlhnZ1BTQXRNU3hjYmlBZ0lDQWdJQ0FnSUNCcGJtTnNkV1JsY3lBOUlHRnljbUY1U1c1amJIVmtaWE1zWEc0Z0lDQWdJQ0FnSUNBZ2FYTkRiMjF0YjI0Z1BTQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lHeGxibWQwYUNBOUlHRnljbUY1TG14bGJtZDBhQ3hjYmlBZ0lDQWdJQ0FnSUNCeVpYTjFiSFFnUFNCYlhTeGNiaUFnSUNBZ0lDQWdJQ0IyWVd4MVpYTk1aVzVuZEdnZ1BTQjJZV3gxWlhNdWJHVnVaM1JvTzF4dVhHNGdJQ0FnSUNCcFppQW9JV3hsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLR2wwWlhKaGRHVmxLU0I3WEc0Z0lDQWdJQ0FnSUhaaGJIVmxjeUE5SUdGeWNtRjVUV0Z3S0haaGJIVmxjeXdnWW1GelpWVnVZWEo1S0dsMFpYSmhkR1ZsS1NrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9ZMjl0Y0dGeVlYUnZjaWtnZTF4dUlDQWdJQ0FnSUNCcGJtTnNkV1JsY3lBOUlHRnljbUY1U1c1amJIVmtaWE5YYVhSb08xeHVJQ0FnSUNBZ0lDQnBjME52YlcxdmJpQTlJR1poYkhObE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1pXeHpaU0JwWmlBb2RtRnNkV1Z6TG14bGJtZDBhQ0ErUFNCTVFWSkhSVjlCVWxKQldWOVRTVnBGS1NCN1hHNGdJQ0FnSUNBZ0lHbHVZMngxWkdWeklEMGdZMkZqYUdWSVlYTTdYRzRnSUNBZ0lDQWdJR2x6UTI5dGJXOXVJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJSFpoYkhWbGN5QTlJRzVsZHlCVFpYUkRZV05vWlNoMllXeDFaWE1wTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYjNWMFpYSTZYRzRnSUNBZ0lDQjNhR2xzWlNBb0t5dHBibVJsZUNBOElHeGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnZG1Gc2RXVWdQU0JoY25KaGVWdHBibVJsZUYwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjIxd2RYUmxaQ0E5SUdsMFpYSmhkR1ZsSUQwOUlHNTFiR3dnUHlCMllXeDFaU0E2SUdsMFpYSmhkR1ZsS0haaGJIVmxLVHRjYmx4dUlDQWdJQ0FnSUNCMllXeDFaU0E5SUNoamIyMXdZWEpoZEc5eUlIeDhJSFpoYkhWbElDRTlQU0F3S1NBL0lIWmhiSFZsSURvZ01EdGNiaUFnSUNBZ0lDQWdhV1lnS0dselEyOXRiVzl1SUNZbUlHTnZiWEIxZEdWa0lEMDlQU0JqYjIxd2RYUmxaQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lIWmhjaUIyWVd4MVpYTkpibVJsZUNBOUlIWmhiSFZsYzB4bGJtZDBhRHRjYmlBZ0lDQWdJQ0FnSUNCM2FHbHNaU0FvZG1Gc2RXVnpTVzVrWlhndExTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFpoYkhWbGMxdDJZV3gxWlhOSmJtUmxlRjBnUFQwOUlHTnZiWEIxZEdWa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZiblJwYm5WbElHOTFkR1Z5TzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQnlaWE4xYkhRdWNIVnphQ2gyWVd4MVpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvSVdsdVkyeDFaR1Z6S0haaGJIVmxjeXdnWTI5dGNIVjBaV1FzSUdOdmJYQmhjbUYwYjNJcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WemRXeDBMbkIxYzJnb2RtRnNkV1VwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvWlNCaVlYTmxJR2x0Y0d4bGJXVnVkR0YwYVc5dUlHOW1JR0JmTG1admNrVmhZMmhnSUhkcGRHaHZkWFFnYzNWd2NHOXlkQ0JtYjNJZ2FYUmxjbUYwWldVZ2MyaHZjblJvWVc1a2N5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWHhQWW1wbFkzUjlJR052Ykd4bFkzUnBiMjRnVkdobElHTnZiR3hsWTNScGIyNGdkRzhnYVhSbGNtRjBaU0J2ZG1WeUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlHbDBaWEpoZEdWbElGUm9aU0JtZFc1amRHbHZiaUJwYm5admEyVmtJSEJsY2lCcGRHVnlZWFJwYjI0dVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZkU5aWFtVmpkSDBnVW1WMGRYSnVjeUJnWTI5c2JHVmpkR2x2Ym1BdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnZG1GeUlHSmhjMlZGWVdOb0lEMGdZM0psWVhSbFFtRnpaVVZoWTJnb1ltRnpaVVp2Y2s5M2JpazdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdVZ1ltRnpaU0JwYlhCc1pXMWxiblJoZEdsdmJpQnZaaUJnWHk1bWIzSkZZV05vVW1sbmFIUmdJSGRwZEdodmRYUWdjM1Z3Y0c5eWRDQm1iM0lnYVhSbGNtRjBaV1VnYzJodmNuUm9ZVzVrY3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYeFBZbXBsWTNSOUlHTnZiR3hsWTNScGIyNGdWR2hsSUdOdmJHeGxZM1JwYjI0Z2RHOGdhWFJsY21GMFpTQnZkbVZ5TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUdsMFpYSmhkR1ZsSUZSb1pTQm1kVzVqZEdsdmJpQnBiblp2YTJWa0lIQmxjaUJwZEdWeVlYUnBiMjR1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmRTlpYW1WamRIMGdVbVYwZFhKdWN5QmdZMjlzYkdWamRHbHZibUF1WEc0Z0lDQWdJQ292WEc0Z0lDQWdkbUZ5SUdKaGMyVkZZV05vVW1sbmFIUWdQU0JqY21WaGRHVkNZWE5sUldGamFDaGlZWE5sUm05eVQzZHVVbWxuYUhRc0lIUnlkV1VwTzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaGxJR0poYzJVZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRnYjJZZ1lGOHVaWFpsY25sZ0lIZHBkR2h2ZFhRZ2MzVndjRzl5ZENCbWIzSWdhWFJsY21GMFpXVWdjMmh2Y25Sb1lXNWtjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVh4UFltcGxZM1I5SUdOdmJHeGxZM1JwYjI0Z1ZHaGxJR052Ykd4bFkzUnBiMjRnZEc4Z2FYUmxjbUYwWlNCdmRtVnlMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJSEJ5WldScFkyRjBaU0JVYUdVZ1puVnVZM1JwYjI0Z2FXNTJiMnRsWkNCd1pYSWdhWFJsY21GMGFXOXVMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRpYjI5c1pXRnVmU0JTWlhSMWNtNXpJR0IwY25WbFlDQnBaaUJoYkd3Z1pXeGxiV1Z1ZEhNZ2NHRnpjeUIwYUdVZ2NISmxaR2xqWVhSbElHTm9aV05yTEZ4dUlDQWdJQ0FxSUNCbGJITmxJR0JtWVd4elpXQmNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCaVlYTmxSWFpsY25rb1kyOXNiR1ZqZEdsdmJpd2djSEpsWkdsallYUmxLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ2RISjFaVHRjYmlBZ0lDQWdJR0poYzJWRllXTm9LR052Ykd4bFkzUnBiMjRzSUdaMWJtTjBhVzl1S0haaGJIVmxMQ0JwYm1SbGVDd2dZMjlzYkdWamRHbHZiaWtnZTF4dUlDQWdJQ0FnSUNCeVpYTjFiSFFnUFNBaElYQnlaV1JwWTJGMFpTaDJZV3gxWlN3Z2FXNWtaWGdzSUdOdmJHeGxZM1JwYjI0cE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvWlNCaVlYTmxJR2x0Y0d4bGJXVnVkR0YwYVc5dUlHOW1JRzFsZEdodlpITWdiR2xyWlNCZ1h5NXRZWGhnSUdGdVpDQmdYeTV0YVc1Z0lIZG9hV05vSUdGalkyVndkSE1nWVZ4dUlDQWdJQ0FxSUdCamIyMXdZWEpoZEc5eVlDQjBieUJrWlhSbGNtMXBibVVnZEdobElHVjRkSEpsYlhWdElIWmhiSFZsTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZTQmhjbkpoZVNCVWFHVWdZWEp5WVhrZ2RHOGdhWFJsY21GMFpTQnZkbVZ5TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUdsMFpYSmhkR1ZsSUZSb1pTQnBkR1Z5WVhSbFpTQnBiblp2YTJWa0lIQmxjaUJwZEdWeVlYUnBiMjR1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnWTI5dGNHRnlZWFJ2Y2lCVWFHVWdZMjl0Y0dGeVlYUnZjaUIxYzJWa0lIUnZJR052YlhCaGNtVWdkbUZzZFdWekxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIc3FmU0JTWlhSMWNtNXpJSFJvWlNCbGVIUnlaVzExYlNCMllXeDFaUzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmlZWE5sUlhoMGNtVnRkVzBvWVhKeVlYa3NJR2wwWlhKaGRHVmxMQ0JqYjIxd1lYSmhkRzl5S1NCN1hHNGdJQ0FnSUNCMllYSWdhVzVrWlhnZ1BTQXRNU3hjYmlBZ0lDQWdJQ0FnSUNCc1pXNW5kR2dnUFNCaGNuSmhlUzVzWlc1bmRHZzdYRzVjYmlBZ0lDQWdJSGRvYVd4bElDZ3JLMmx1WkdWNElEd2diR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCMllXeDFaU0E5SUdGeWNtRjVXMmx1WkdWNFhTeGNiaUFnSUNBZ0lDQWdJQ0FnSUdOMWNuSmxiblFnUFNCcGRHVnlZWFJsWlNoMllXeDFaU2s3WEc1Y2JpQWdJQ0FnSUNBZ2FXWWdLR04xY25KbGJuUWdJVDBnYm5Wc2JDQW1KaUFvWTI5dGNIVjBaV1FnUFQwOUlIVnVaR1ZtYVc1bFpGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBL0lDaGpkWEp5Wlc1MElEMDlQU0JqZFhKeVpXNTBJQ1ltSUNGcGMxTjViV0p2YkNoamRYSnlaVzUwS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnT2lCamIyMXdZWEpoZEc5eUtHTjFjbkpsYm5Rc0lHTnZiWEIxZEdWa0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFpoY2lCamIyMXdkWFJsWkNBOUlHTjFjbkpsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGMzVnNkQ0E5SUhaaGJIVmxPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9aU0JpWVhObElHbHRjR3hsYldWdWRHRjBhVzl1SUc5bUlHQmZMbVpwYkd4Z0lIZHBkR2h2ZFhRZ1lXNGdhWFJsY21GMFpXVWdZMkZzYkNCbmRXRnlaQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1lYSnlZWGtnVkdobElHRnljbUY1SUhSdklHWnBiR3d1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z1ptbHNiQ0JnWVhKeVlYbGdJSGRwZEdndVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0emRHRnlkRDB3WFNCVWFHVWdjM1JoY25RZ2NHOXphWFJwYjI0dVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0bGJtUTlZWEp5WVhrdWJHVnVaM1JvWFNCVWFHVWdaVzVrSUhCdmMybDBhVzl1TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0QmNuSmhlWDBnVW1WMGRYSnVjeUJnWVhKeVlYbGdMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHSmhjMlZHYVd4c0tHRnljbUY1TENCMllXeDFaU3dnYzNSaGNuUXNJR1Z1WkNrZ2UxeHVJQ0FnSUNBZ2RtRnlJR3hsYm1kMGFDQTlJR0Z5Y21GNUxteGxibWQwYUR0Y2JseHVJQ0FnSUNBZ2MzUmhjblFnUFNCMGIwbHVkR1ZuWlhJb2MzUmhjblFwTzF4dUlDQWdJQ0FnYVdZZ0tITjBZWEowSUR3Z01Da2dlMXh1SUNBZ0lDQWdJQ0J6ZEdGeWRDQTlJQzF6ZEdGeWRDQStJR3hsYm1kMGFDQS9JREFnT2lBb2JHVnVaM1JvSUNzZ2MzUmhjblFwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnWlc1a0lEMGdLR1Z1WkNBOVBUMGdkVzVrWldacGJtVmtJSHg4SUdWdVpDQStJR3hsYm1kMGFDa2dQeUJzWlc1bmRHZ2dPaUIwYjBsdWRHVm5aWElvWlc1a0tUdGNiaUFnSUNBZ0lHbG1JQ2hsYm1RZ1BDQXdLU0I3WEc0Z0lDQWdJQ0FnSUdWdVpDQXJQU0JzWlc1bmRHZzdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQmxibVFnUFNCemRHRnlkQ0ErSUdWdVpDQS9JREFnT2lCMGIweGxibWQwYUNobGJtUXBPMXh1SUNBZ0lDQWdkMmhwYkdVZ0tITjBZWEowSUR3Z1pXNWtLU0I3WEc0Z0lDQWdJQ0FnSUdGeWNtRjVXM04wWVhKMEt5dGRJRDBnZG1Gc2RXVTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z1lYSnlZWGs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdobElHSmhjMlVnYVcxd2JHVnRaVzUwWVhScGIyNGdiMllnWUY4dVptbHNkR1Z5WUNCM2FYUm9iM1YwSUhOMWNIQnZjblFnWm05eUlHbDBaWEpoZEdWbElITm9iM0owYUdGdVpITXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw4VDJKcVpXTjBmU0JqYjJ4c1pXTjBhVzl1SUZSb1pTQmpiMnhzWldOMGFXOXVJSFJ2SUdsMFpYSmhkR1VnYjNabGNpNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQndjbVZrYVdOaGRHVWdWR2hsSUdaMWJtTjBhVzl1SUdsdWRtOXJaV1FnY0dWeUlHbDBaWEpoZEdsdmJpNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCbWFXeDBaWEpsWkNCaGNuSmhlUzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmlZWE5sUm1sc2RHVnlLR052Ykd4bFkzUnBiMjRzSUhCeVpXUnBZMkYwWlNrZ2UxeHVJQ0FnSUNBZ2RtRnlJSEpsYzNWc2RDQTlJRnRkTzF4dUlDQWdJQ0FnWW1GelpVVmhZMmdvWTI5c2JHVmpkR2x2Yml3Z1puVnVZM1JwYjI0b2RtRnNkV1VzSUdsdVpHVjRMQ0JqYjJ4c1pXTjBhVzl1S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h3Y21Wa2FXTmhkR1VvZG1Gc2RXVXNJR2x1WkdWNExDQmpiMnhzWldOMGFXOXVLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxjM1ZzZEM1d2RYTm9LSFpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9aU0JpWVhObElHbHRjR3hsYldWdWRHRjBhVzl1SUc5bUlHQmZMbVpzWVhSMFpXNWdJSGRwZEdnZ2MzVndjRzl5ZENCbWIzSWdjbVZ6ZEhKcFkzUnBibWNnWm14aGRIUmxibWx1Wnk1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdZWEp5WVhrZ1ZHaGxJR0Z5Y21GNUlIUnZJR1pzWVhSMFpXNHVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHUmxjSFJvSUZSb1pTQnRZWGhwYlhWdElISmxZM1Z5YzJsdmJpQmtaWEIwYUM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0d2NtVmthV05oZEdVOWFYTkdiR0YwZEdWdVlXSnNaVjBnVkdobElHWjFibU4wYVc5dUlHbHVkbTlyWldRZ2NHVnlJR2wwWlhKaGRHbHZiaTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMkp2YjJ4bFlXNTlJRnRwYzFOMGNtbGpkRjBnVW1WemRISnBZM1FnZEc4Z2RtRnNkV1Z6SUhSb1lYUWdjR0Z6Y3lCZ2NISmxaR2xqWVhSbFlDQmphR1ZqYTNNdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnVzNKbGMzVnNkRDFiWFYwZ1ZHaGxJR2x1YVhScFlXd2djbVZ6ZFd4MElIWmhiSFZsTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0QmNuSmhlWDBnVW1WMGRYSnVjeUIwYUdVZ2JtVjNJR1pzWVhSMFpXNWxaQ0JoY25KaGVTNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCaVlYTmxSbXhoZEhSbGJpaGhjbkpoZVN3Z1pHVndkR2dzSUhCeVpXUnBZMkYwWlN3Z2FYTlRkSEpwWTNRc0lISmxjM1ZzZENrZ2UxeHVJQ0FnSUNBZ2RtRnlJR2x1WkdWNElEMGdMVEVzWEc0Z0lDQWdJQ0FnSUNBZ2JHVnVaM1JvSUQwZ1lYSnlZWGt1YkdWdVozUm9PMXh1WEc0Z0lDQWdJQ0J3Y21Wa2FXTmhkR1VnZkh3Z0tIQnlaV1JwWTJGMFpTQTlJR2x6Um14aGRIUmxibUZpYkdVcE8xeHVJQ0FnSUNBZ2NtVnpkV3gwSUh4OElDaHlaWE4xYkhRZ1BTQmJYU2s3WEc1Y2JpQWdJQ0FnSUhkb2FXeGxJQ2dySzJsdVpHVjRJRHdnYkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQjJZV3gxWlNBOUlHRnljbUY1VzJsdVpHVjRYVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHUmxjSFJvSUQ0Z01DQW1KaUJ3Y21Wa2FXTmhkR1VvZG1Gc2RXVXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLR1JsY0hSb0lENGdNU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnVW1WamRYSnphWFpsYkhrZ1pteGhkSFJsYmlCaGNuSmhlWE1nS0hOMWMyTmxjSFJwWW14bElIUnZJR05oYkd3Z2MzUmhZMnNnYkdsdGFYUnpLUzVjYmlBZ0lDQWdJQ0FnSUNBZ0lHSmhjMlZHYkdGMGRHVnVLSFpoYkhWbExDQmtaWEIwYUNBdElERXNJSEJ5WldScFkyRjBaU3dnYVhOVGRISnBZM1FzSUhKbGMzVnNkQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0Z5Y21GNVVIVnphQ2h5WlhOMWJIUXNJSFpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0JwWmlBb0lXbHpVM1J5YVdOMEtTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WemRXeDBXM0psYzNWc2RDNXNaVzVuZEdoZElEMGdkbUZzZFdVN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdobElHSmhjMlVnYVcxd2JHVnRaVzUwWVhScGIyNGdiMllnWUdKaGMyVkdiM0pQZDI1Z0lIZG9hV05vSUdsMFpYSmhkR1Z6SUc5MlpYSWdZRzlpYW1WamRHQmNiaUFnSUNBZ0tpQndjbTl3WlhKMGFXVnpJSEpsZEhWeWJtVmtJR0o1SUdCclpYbHpSblZ1WTJBZ1lXNWtJR2x1ZG05clpYTWdZR2wwWlhKaGRHVmxZQ0JtYjNJZ1pXRmphQ0J3Y205d1pYSjBlUzVjYmlBZ0lDQWdLaUJKZEdWeVlYUmxaU0JtZFc1amRHbHZibk1nYldGNUlHVjRhWFFnYVhSbGNtRjBhVzl1SUdWaGNteDVJR0o1SUdWNGNHeHBZMmwwYkhrZ2NtVjBkWEp1YVc1bklHQm1ZV3h6WldBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2WW1wbFkzUWdWR2hsSUc5aWFtVmpkQ0IwYnlCcGRHVnlZWFJsSUc5MlpYSXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdhWFJsY21GMFpXVWdWR2hsSUdaMWJtTjBhVzl1SUdsdWRtOXJaV1FnY0dWeUlHbDBaWEpoZEdsdmJpNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQnJaWGx6Um5WdVl5QlVhR1VnWm5WdVkzUnBiMjRnZEc4Z1oyVjBJSFJvWlNCclpYbHpJRzltSUdCdlltcGxZM1JnTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0UFltcGxZM1I5SUZKbGRIVnlibk1nWUc5aWFtVmpkR0F1WEc0Z0lDQWdJQ292WEc0Z0lDQWdkbUZ5SUdKaGMyVkdiM0lnUFNCamNtVmhkR1ZDWVhObFJtOXlLQ2s3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVWFHbHpJR1oxYm1OMGFXOXVJR2x6SUd4cGEyVWdZR0poYzJWR2IzSmdJR1Y0WTJWd2RDQjBhR0YwSUdsMElHbDBaWEpoZEdWeklHOTJaWElnY0hKdmNHVnlkR2xsYzF4dUlDQWdJQ0FxSUdsdUlIUm9aU0J2Y0hCdmMybDBaU0J2Y21SbGNpNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5aWFtVmpkQ0JVYUdVZ2IySnFaV04wSUhSdklHbDBaWEpoZEdVZ2IzWmxjaTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JwZEdWeVlYUmxaU0JVYUdVZ1puVnVZM1JwYjI0Z2FXNTJiMnRsWkNCd1pYSWdhWFJsY21GMGFXOXVMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR3RsZVhOR2RXNWpJRlJvWlNCbWRXNWpkR2x2YmlCMGJ5Qm5aWFFnZEdobElHdGxlWE1nYjJZZ1lHOWlhbVZqZEdBdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwOWlhbVZqZEgwZ1VtVjBkWEp1Y3lCZ2IySnFaV04wWUM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0IyWVhJZ1ltRnpaVVp2Y2xKcFoyaDBJRDBnWTNKbFlYUmxRbUZ6WlVadmNpaDBjblZsS1R0Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9aU0JpWVhObElHbHRjR3hsYldWdWRHRjBhVzl1SUc5bUlHQmZMbVp2Y2s5M2JtQWdkMmwwYUc5MWRDQnpkWEJ3YjNKMElHWnZjaUJwZEdWeVlYUmxaU0J6YUc5eWRHaGhibVJ6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiMkpxWldOMElGUm9aU0J2WW1wbFkzUWdkRzhnYVhSbGNtRjBaU0J2ZG1WeUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlHbDBaWEpoZEdWbElGUm9aU0JtZFc1amRHbHZiaUJwYm5admEyVmtJSEJsY2lCcGRHVnlZWFJwYjI0dVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwOWlhbVZqZEgwZ1VtVjBkWEp1Y3lCZ2IySnFaV04wWUM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJpWVhObFJtOXlUM2R1S0c5aWFtVmpkQ3dnYVhSbGNtRjBaV1VwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ2WW1wbFkzUWdKaVlnWW1GelpVWnZjaWh2WW1wbFkzUXNJR2wwWlhKaGRHVmxMQ0JyWlhsektUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR1VnWW1GelpTQnBiWEJzWlcxbGJuUmhkR2x2YmlCdlppQmdYeTVtYjNKUGQyNVNhV2RvZEdBZ2QybDBhRzkxZENCemRYQndiM0owSUdadmNpQnBkR1Z5WVhSbFpTQnphRzl5ZEdoaGJtUnpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQnZZbXBsWTNRZ2RHOGdhWFJsY21GMFpTQnZkbVZ5TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUdsMFpYSmhkR1ZsSUZSb1pTQm1kVzVqZEdsdmJpQnBiblp2YTJWa0lIQmxjaUJwZEdWeVlYUnBiMjR1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTA5aWFtVmpkSDBnVW1WMGRYSnVjeUJnYjJKcVpXTjBZQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmlZWE5sUm05eVQzZHVVbWxuYUhRb2IySnFaV04wTENCcGRHVnlZWFJsWlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc5aWFtVmpkQ0FtSmlCaVlYTmxSbTl5VW1sbmFIUW9iMkpxWldOMExDQnBkR1Z5WVhSbFpTd2dhMlY1Y3lrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaGxJR0poYzJVZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRnYjJZZ1lGOHVablZ1WTNScGIyNXpZQ0IzYUdsamFDQmpjbVZoZEdWeklHRnVJR0Z5Y21GNUlHOW1YRzRnSUNBZ0lDb2dZRzlpYW1WamRHQWdablZ1WTNScGIyNGdjSEp2Y0dWeWRIa2dibUZ0WlhNZ1ptbHNkR1Z5WldRZ1puSnZiU0JnY0hKdmNITmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQnZZbXBsWTNRZ2RHOGdhVzV6Y0dWamRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCd2NtOXdjeUJVYUdVZ2NISnZjR1Z5ZEhrZ2JtRnRaWE1nZEc4Z1ptbHNkR1Z5TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0QmNuSmhlWDBnVW1WMGRYSnVjeUIwYUdVZ1puVnVZM1JwYjI0Z2JtRnRaWE11WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZbUZ6WlVaMWJtTjBhVzl1Y3lodlltcGxZM1FzSUhCeWIzQnpLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZWEp5WVhsR2FXeDBaWElvY0hKdmNITXNJR1oxYm1OMGFXOXVLR3RsZVNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2FYTkdkVzVqZEdsdmJpaHZZbXBsWTNSYmEyVjVYU2s3WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVWFHVWdZbUZ6WlNCcGJYQnNaVzFsYm5SaGRHbHZiaUJ2WmlCZ1h5NW5aWFJnSUhkcGRHaHZkWFFnYzNWd2NHOXlkQ0JtYjNJZ1pHVm1ZWFZzZENCMllXeDFaWE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZZbXBsWTNRZ1ZHaGxJRzlpYW1WamRDQjBieUJ4ZFdWeWVTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZkhOMGNtbHVaMzBnY0dGMGFDQlVhR1VnY0dGMGFDQnZaaUIwYUdVZ2NISnZjR1Z5ZEhrZ2RHOGdaMlYwTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUhzcWZTQlNaWFIxY201eklIUm9aU0J5WlhOdmJIWmxaQ0IyWVd4MVpTNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCaVlYTmxSMlYwS0c5aWFtVmpkQ3dnY0dGMGFDa2dlMXh1SUNBZ0lDQWdjR0YwYUNBOUlHTmhjM1JRWVhSb0tIQmhkR2dzSUc5aWFtVmpkQ2s3WEc1Y2JpQWdJQ0FnSUhaaGNpQnBibVJsZUNBOUlEQXNYRzRnSUNBZ0lDQWdJQ0FnYkdWdVozUm9JRDBnY0dGMGFDNXNaVzVuZEdnN1hHNWNiaUFnSUNBZ0lIZG9hV3hsSUNodlltcGxZM1FnSVQwZ2JuVnNiQ0FtSmlCcGJtUmxlQ0E4SUd4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNCdlltcGxZM1FnUFNCdlltcGxZM1JiZEc5TFpYa29jR0YwYUZ0cGJtUmxlQ3NyWFNsZE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUNocGJtUmxlQ0FtSmlCcGJtUmxlQ0E5UFNCc1pXNW5kR2dwSUQ4Z2IySnFaV04wSURvZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9aU0JpWVhObElHbHRjR3hsYldWdWRHRjBhVzl1SUc5bUlHQm5aWFJCYkd4TFpYbHpZQ0JoYm1RZ1lHZGxkRUZzYkV0bGVYTkpibUFnZDJocFkyZ2dkWE5sYzF4dUlDQWdJQ0FxSUdCclpYbHpSblZ1WTJBZ1lXNWtJR0J6ZVcxaWIyeHpSblZ1WTJBZ2RHOGdaMlYwSUhSb1pTQmxiblZ0WlhKaFlteGxJSEJ5YjNCbGNuUjVJRzVoYldWeklHRnVaRnh1SUNBZ0lDQXFJSE41YldKdmJITWdiMllnWUc5aWFtVmpkR0F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZZbXBsWTNRZ1ZHaGxJRzlpYW1WamRDQjBieUJ4ZFdWeWVTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQnJaWGx6Um5WdVl5QlVhR1VnWm5WdVkzUnBiMjRnZEc4Z1oyVjBJSFJvWlNCclpYbHpJRzltSUdCdlltcGxZM1JnTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUhONWJXSnZiSE5HZFc1aklGUm9aU0JtZFc1amRHbHZiaUIwYnlCblpYUWdkR2hsSUhONWJXSnZiSE1nYjJZZ1lHOWlhbVZqZEdBdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQmhjbkpoZVNCdlppQndjbTl3WlhKMGVTQnVZVzFsY3lCaGJtUWdjM2x0WW05c2N5NWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCaVlYTmxSMlYwUVd4c1MyVjVjeWh2WW1wbFkzUXNJR3RsZVhOR2RXNWpMQ0J6ZVcxaWIyeHpSblZ1WXlrZ2UxeHVJQ0FnSUNBZ2RtRnlJSEpsYzNWc2RDQTlJR3RsZVhOR2RXNWpLRzlpYW1WamRDazdYRzRnSUNBZ0lDQnlaWFIxY200Z2FYTkJjbkpoZVNodlltcGxZM1FwSUQ4Z2NtVnpkV3gwSURvZ1lYSnlZWGxRZFhOb0tISmxjM1ZzZEN3Z2MzbHRZbTlzYzBaMWJtTW9iMkpxWldOMEtTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUdKaGMyVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2IyWWdZR2RsZEZSaFoyQWdkMmwwYUc5MWRDQm1ZV3hzWW1GamEzTWdabTl5SUdKMVoyZDVJR1Z1ZG1seWIyNXRaVzUwY3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z2NYVmxjbmt1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTNOMGNtbHVaMzBnVW1WMGRYSnVjeUIwYUdVZ1lIUnZVM1J5YVc1blZHRm5ZQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmlZWE5sUjJWMFZHRm5LSFpoYkhWbEtTQjdYRzRnSUNBZ0lDQnBaaUFvZG1Gc2RXVWdQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkbUZzZFdVZ1BUMDlJSFZ1WkdWbWFXNWxaQ0EvSUhWdVpHVm1hVzVsWkZSaFp5QTZJRzUxYkd4VVlXYzdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z0tITjViVlJ2VTNSeWFXNW5WR0ZuSUNZbUlITjViVlJ2VTNSeWFXNW5WR0ZuSUdsdUlFOWlhbVZqZENoMllXeDFaU2twWEc0Z0lDQWdJQ0FnSUQ4Z1oyVjBVbUYzVkdGbktIWmhiSFZsS1Z4dUlDQWdJQ0FnSUNBNklHOWlhbVZqZEZSdlUzUnlhVzVuS0haaGJIVmxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdVZ1ltRnpaU0JwYlhCc1pXMWxiblJoZEdsdmJpQnZaaUJnWHk1bmRHQWdkMmhwWTJnZ1pHOWxjMjRuZENCamIyVnlZMlVnWVhKbmRXMWxiblJ6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCamIyMXdZWEpsTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ2IzUm9aWElnVkdobElHOTBhR1Z5SUhaaGJIVmxJSFJ2SUdOdmJYQmhjbVV1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTJKdmIyeGxZVzU5SUZKbGRIVnlibk1nWUhSeWRXVmdJR2xtSUdCMllXeDFaV0FnYVhNZ1ozSmxZWFJsY2lCMGFHRnVJR0J2ZEdobGNtQXNYRzRnSUNBZ0lDb2dJR1ZzYzJVZ1lHWmhiSE5sWUM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJpWVhObFIzUW9kbUZzZFdVc0lHOTBhR1Z5S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZG1Gc2RXVWdQaUJ2ZEdobGNqdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR1VnWW1GelpTQnBiWEJzWlcxbGJuUmhkR2x2YmlCdlppQmdYeTVvWVhOZ0lIZHBkR2h2ZFhRZ2MzVndjRzl5ZENCbWIzSWdaR1ZsY0NCd1lYUm9jeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlGdHZZbXBsWTNSZElGUm9aU0J2WW1wbFkzUWdkRzhnY1hWbGNua3VYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVh4emRISnBibWQ5SUd0bGVTQlVhR1VnYTJWNUlIUnZJR05vWldOckxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdGliMjlzWldGdWZTQlNaWFIxY201eklHQjBjblZsWUNCcFppQmdhMlY1WUNCbGVHbHpkSE1zSUdWc2MyVWdZR1poYkhObFlDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCaVlYTmxTR0Z6S0c5aWFtVmpkQ3dnYTJWNUtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2IySnFaV04wSUNFOUlHNTFiR3dnSmlZZ2FHRnpUM2R1VUhKdmNHVnlkSGt1WTJGc2JDaHZZbXBsWTNRc0lHdGxlU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdobElHSmhjMlVnYVcxd2JHVnRaVzUwWVhScGIyNGdiMllnWUY4dWFHRnpTVzVnSUhkcGRHaHZkWFFnYzNWd2NHOXlkQ0JtYjNJZ1pHVmxjQ0J3WVhSb2N5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUZ0dlltcGxZM1JkSUZSb1pTQnZZbXBsWTNRZ2RHOGdjWFZsY25rdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWHh6ZEhKcGJtZDlJR3RsZVNCVWFHVWdhMlY1SUhSdklHTm9aV05yTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0aWIyOXNaV0Z1ZlNCU1pYUjFjbTV6SUdCMGNuVmxZQ0JwWmlCZ2EyVjVZQ0JsZUdsemRITXNJR1ZzYzJVZ1lHWmhiSE5sWUM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJpWVhObFNHRnpTVzRvYjJKcVpXTjBMQ0JyWlhrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdlltcGxZM1FnSVQwZ2JuVnNiQ0FtSmlCclpYa2dhVzRnVDJKcVpXTjBLRzlpYW1WamRDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUdKaGMyVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2IyWWdZRjh1YVc1U1lXNW5aV0FnZDJocFkyZ2daRzlsYzI0bmRDQmpiMlZ5WTJVZ1lYSm5kVzFsYm5SekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYm5WdFltVnlJRlJvWlNCdWRXMWlaWElnZEc4Z1kyaGxZMnN1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJSE4wWVhKMElGUm9aU0J6ZEdGeWRDQnZaaUIwYUdVZ2NtRnVaMlV1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJR1Z1WkNCVWFHVWdaVzVrSUc5bUlIUm9aU0J5WVc1blpTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdZbTl2YkdWaGJuMGdVbVYwZFhKdWN5QmdkSEoxWldBZ2FXWWdZRzUxYldKbGNtQWdhWE1nYVc0Z2RHaGxJSEpoYm1kbExDQmxiSE5sSUdCbVlXeHpaV0F1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZbUZ6WlVsdVVtRnVaMlVvYm5WdFltVnlMQ0J6ZEdGeWRDd2daVzVrS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm5WdFltVnlJRDQ5SUc1aGRHbDJaVTFwYmloemRHRnlkQ3dnWlc1a0tTQW1KaUJ1ZFcxaVpYSWdQQ0J1WVhScGRtVk5ZWGdvYzNSaGNuUXNJR1Z1WkNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaGxJR0poYzJVZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRnYjJZZ2JXVjBhRzlrY3lCc2FXdGxJR0JmTG1sdWRHVnljMlZqZEdsdmJtQXNJSGRwZEdodmRYUWdjM1Z3Y0c5eWRGeHVJQ0FnSUNBcUlHWnZjaUJwZEdWeVlYUmxaU0J6YUc5eWRHaGhibVJ6TENCMGFHRjBJR0ZqWTJWd2RITWdZVzRnWVhKeVlYa2diMllnWVhKeVlYbHpJSFJ2SUdsdWMzQmxZM1F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlHRnljbUY1Y3lCVWFHVWdZWEp5WVhseklIUnZJR2x1YzNCbFkzUXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdXMmwwWlhKaGRHVmxYU0JVYUdVZ2FYUmxjbUYwWldVZ2FXNTJiMnRsWkNCd1pYSWdaV3hsYldWdWRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQmJZMjl0Y0dGeVlYUnZjbDBnVkdobElHTnZiWEJoY21GMGIzSWdhVzUyYjJ0bFpDQndaWElnWld4bGJXVnVkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QmhjbkpoZVNCdlppQnphR0Z5WldRZ2RtRnNkV1Z6TGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR0poYzJWSmJuUmxjbk5sWTNScGIyNG9ZWEp5WVhsekxDQnBkR1Z5WVhSbFpTd2dZMjl0Y0dGeVlYUnZjaWtnZTF4dUlDQWdJQ0FnZG1GeUlHbHVZMngxWkdWeklEMGdZMjl0Y0dGeVlYUnZjaUEvSUdGeWNtRjVTVzVqYkhWa1pYTlhhWFJvSURvZ1lYSnlZWGxKYm1Oc2RXUmxjeXhjYmlBZ0lDQWdJQ0FnSUNCc1pXNW5kR2dnUFNCaGNuSmhlWE5iTUYwdWJHVnVaM1JvTEZ4dUlDQWdJQ0FnSUNBZ0lHOTBhRXhsYm1kMGFDQTlJR0Z5Y21GNWN5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lDQWdiM1JvU1c1a1pYZ2dQU0J2ZEdoTVpXNW5kR2dzWEc0Z0lDQWdJQ0FnSUNBZ1kyRmphR1Z6SUQwZ1FYSnlZWGtvYjNSb1RHVnVaM1JvS1N4Y2JpQWdJQ0FnSUNBZ0lDQnRZWGhNWlc1bmRHZ2dQU0JKYm1acGJtbDBlU3hjYmlBZ0lDQWdJQ0FnSUNCeVpYTjFiSFFnUFNCYlhUdGNibHh1SUNBZ0lDQWdkMmhwYkdVZ0tHOTBhRWx1WkdWNExTMHBJSHRjYmlBZ0lDQWdJQ0FnZG1GeUlHRnljbUY1SUQwZ1lYSnlZWGx6VzI5MGFFbHVaR1Y0WFR0Y2JpQWdJQ0FnSUNBZ2FXWWdLRzkwYUVsdVpHVjRJQ1ltSUdsMFpYSmhkR1ZsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdZWEp5WVhrZ1BTQmhjbkpoZVUxaGNDaGhjbkpoZVN3Z1ltRnpaVlZ1WVhKNUtHbDBaWEpoZEdWbEtTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYldGNFRHVnVaM1JvSUQwZ2JtRjBhWFpsVFdsdUtHRnljbUY1TG14bGJtZDBhQ3dnYldGNFRHVnVaM1JvS1R0Y2JpQWdJQ0FnSUNBZ1kyRmphR1Z6VzI5MGFFbHVaR1Y0WFNBOUlDRmpiMjF3WVhKaGRHOXlJQ1ltSUNocGRHVnlZWFJsWlNCOGZDQW9iR1Z1WjNSb0lENDlJREV5TUNBbUppQmhjbkpoZVM1c1pXNW5kR2dnUGowZ01USXdLU2xjYmlBZ0lDQWdJQ0FnSUNBL0lHNWxkeUJUWlhSRFlXTm9aU2h2ZEdoSmJtUmxlQ0FtSmlCaGNuSmhlU2xjYmlBZ0lDQWdJQ0FnSUNBNklIVnVaR1ZtYVc1bFpEdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHRnljbUY1SUQwZ1lYSnlZWGx6V3pCZE8xeHVYRzRnSUNBZ0lDQjJZWElnYVc1a1pYZ2dQU0F0TVN4Y2JpQWdJQ0FnSUNBZ0lDQnpaV1Z1SUQwZ1kyRmphR1Z6V3pCZE8xeHVYRzRnSUNBZ0lDQnZkWFJsY2pwY2JpQWdJQ0FnSUhkb2FXeGxJQ2dySzJsdVpHVjRJRHdnYkdWdVozUm9JQ1ltSUhKbGMzVnNkQzVzWlc1bmRHZ2dQQ0J0WVhoTVpXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJSFpoYkhWbElEMGdZWEp5WVhsYmFXNWtaWGhkTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl0Y0hWMFpXUWdQU0JwZEdWeVlYUmxaU0EvSUdsMFpYSmhkR1ZsS0haaGJIVmxLU0E2SUhaaGJIVmxPMXh1WEc0Z0lDQWdJQ0FnSUhaaGJIVmxJRDBnS0dOdmJYQmhjbUYwYjNJZ2ZId2dkbUZzZFdVZ0lUMDlJREFwSUQ4Z2RtRnNkV1VnT2lBd08xeHVJQ0FnSUNBZ0lDQnBaaUFvSVNoelpXVnVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEOGdZMkZqYUdWSVlYTW9jMlZsYml3Z1kyOXRjSFYwWldRcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSURvZ2FXNWpiSFZrWlhNb2NtVnpkV3gwTENCamIyMXdkWFJsWkN3Z1kyOXRjR0Z5WVhSdmNpbGNiaUFnSUNBZ0lDQWdJQ0FnSUNrcElIdGNiaUFnSUNBZ0lDQWdJQ0J2ZEdoSmJtUmxlQ0E5SUc5MGFFeGxibWQwYUR0Y2JpQWdJQ0FnSUNBZ0lDQjNhR2xzWlNBb0xTMXZkR2hKYm1SbGVDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJR05oWTJobElEMGdZMkZqYUdWelcyOTBhRWx1WkdWNFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDZ2hLR05oWTJobFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQS9JR05oWTJobFNHRnpLR05oWTJobExDQmpiMjF3ZFhSbFpDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRG9nYVc1amJIVmtaWE1vWVhKeVlYbHpXMjkwYUVsdVpHVjRYU3dnWTI5dGNIVjBaV1FzSUdOdmJYQmhjbUYwYjNJcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwYVc1MVpTQnZkWFJsY2p0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdhV1lnS0hObFpXNHBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lITmxaVzR1Y0hWemFDaGpiMjF3ZFhSbFpDazdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lISmxjM1ZzZEM1d2RYTm9LSFpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVWFHVWdZbUZ6WlNCcGJYQnNaVzFsYm5SaGRHbHZiaUJ2WmlCZ1h5NXBiblpsY25SZ0lHRnVaQ0JnWHk1cGJuWmxjblJDZVdBZ2QyaHBZMmdnYVc1MlpYSjBjMXh1SUNBZ0lDQXFJR0J2WW1wbFkzUmdJSGRwZEdnZ2RtRnNkV1Z6SUhSeVlXNXpabTl5YldWa0lHSjVJR0JwZEdWeVlYUmxaV0FnWVc1a0lITmxkQ0JpZVNCZ2MyVjBkR1Z5WUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzlpYW1WamRDQlVhR1VnYjJKcVpXTjBJSFJ2SUdsMFpYSmhkR1VnYjNabGNpNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQnpaWFIwWlhJZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUhObGRDQmdZV05qZFcxMWJHRjBiM0pnSUhaaGJIVmxjeTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JwZEdWeVlYUmxaU0JVYUdVZ2FYUmxjbUYwWldVZ2RHOGdkSEpoYm5ObWIzSnRJSFpoYkhWbGN5NWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ1lXTmpkVzExYkdGMGIzSWdWR2hsSUdsdWFYUnBZV3dnYVc1MlpYSjBaV1FnYjJKcVpXTjBMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRHZFc1amRHbHZibjBnVW1WMGRYSnVjeUJnWVdOamRXMTFiR0YwYjNKZ0xseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdKaGMyVkpiblpsY25SbGNpaHZZbXBsWTNRc0lITmxkSFJsY2l3Z2FYUmxjbUYwWldVc0lHRmpZM1Z0ZFd4aGRHOXlLU0I3WEc0Z0lDQWdJQ0JpWVhObFJtOXlUM2R1S0c5aWFtVmpkQ3dnWm5WdVkzUnBiMjRvZG1Gc2RXVXNJR3RsZVN3Z2IySnFaV04wS1NCN1hHNGdJQ0FnSUNBZ0lITmxkSFJsY2loaFkyTjFiWFZzWVhSdmNpd2dhWFJsY21GMFpXVW9kbUZzZFdVcExDQnJaWGtzSUc5aWFtVmpkQ2s3WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJoWTJOMWJYVnNZWFJ2Y2p0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVWFHVWdZbUZ6WlNCcGJYQnNaVzFsYm5SaGRHbHZiaUJ2WmlCZ1h5NXBiblp2YTJWZ0lIZHBkR2h2ZFhRZ2MzVndjRzl5ZENCbWIzSWdhVzVrYVhacFpIVmhiRnh1SUNBZ0lDQXFJRzFsZEdodlpDQmhjbWQxYldWdWRITXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGxZM1FnVkdobElHOWlhbVZqZENCMGJ5QnhkV1Z5ZVM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmSE4wY21sdVozMGdjR0YwYUNCVWFHVWdjR0YwYUNCdlppQjBhR1VnYldWMGFHOWtJSFJ2SUdsdWRtOXJaUzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZTQmhjbWR6SUZSb1pTQmhjbWQxYldWdWRITWdkRzhnYVc1MmIydGxJSFJvWlNCdFpYUm9iMlFnZDJsMGFDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdLbjBnVW1WMGRYSnVjeUIwYUdVZ2NtVnpkV3gwSUc5bUlIUm9aU0JwYm5admEyVmtJRzFsZEdodlpDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCaVlYTmxTVzUyYjJ0bEtHOWlhbVZqZEN3Z2NHRjBhQ3dnWVhKbmN5a2dlMXh1SUNBZ0lDQWdjR0YwYUNBOUlHTmhjM1JRWVhSb0tIQmhkR2dzSUc5aWFtVmpkQ2s3WEc0Z0lDQWdJQ0J2WW1wbFkzUWdQU0J3WVhKbGJuUW9iMkpxWldOMExDQndZWFJvS1R0Y2JpQWdJQ0FnSUhaaGNpQm1kVzVqSUQwZ2IySnFaV04wSUQwOUlHNTFiR3dnUHlCdlltcGxZM1FnT2lCdlltcGxZM1JiZEc5TFpYa29iR0Z6ZENod1lYUm9LU2xkTzF4dUlDQWdJQ0FnY21WMGRYSnVJR1oxYm1NZ1BUMGdiblZzYkNBL0lIVnVaR1ZtYVc1bFpDQTZJR0Z3Y0d4NUtHWjFibU1zSUc5aWFtVmpkQ3dnWVhKbmN5azdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUdKaGMyVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2IyWWdZRjh1YVhOQmNtZDFiV1Z1ZEhOZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlIWmhiSFZsSUZSb1pTQjJZV3gxWlNCMGJ5QmphR1ZqYXk1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1ltOXZiR1ZoYm4wZ1VtVjBkWEp1Y3lCZ2RISjFaV0FnYVdZZ1lIWmhiSFZsWUNCcGN5QmhiaUJnWVhKbmRXMWxiblJ6WUNCdlltcGxZM1FzWEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZbUZ6WlVselFYSm5kVzFsYm5SektIWmhiSFZsS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYVhOUFltcGxZM1JNYVd0bEtIWmhiSFZsS1NBbUppQmlZWE5sUjJWMFZHRm5LSFpoYkhWbEtTQTlQU0JoY21kelZHRm5PMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvWlNCaVlYTmxJR2x0Y0d4bGJXVnVkR0YwYVc5dUlHOW1JR0JmTG1selFYSnlZWGxDZFdabVpYSmdJSGRwZEdodmRYUWdUbTlrWlM1cWN5QnZjSFJwYldsNllYUnBiMjV6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCamFHVmpheTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3WW05dmJHVmhibjBnVW1WMGRYSnVjeUJnZEhKMVpXQWdhV1lnWUhaaGJIVmxZQ0JwY3lCaGJpQmhjbkpoZVNCaWRXWm1aWElzSUdWc2MyVWdZR1poYkhObFlDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCaVlYTmxTWE5CY25KaGVVSjFabVpsY2loMllXeDFaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR2x6VDJKcVpXTjBUR2xyWlNoMllXeDFaU2tnSmlZZ1ltRnpaVWRsZEZSaFp5aDJZV3gxWlNrZ1BUMGdZWEp5WVhsQ2RXWm1aWEpVWVdjN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaGxJR0poYzJVZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRnYjJZZ1lGOHVhWE5FWVhSbFlDQjNhWFJvYjNWMElFNXZaR1V1YW5NZ2IzQjBhVzFwZW1GMGFXOXVjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0IyWVd4MVpTQlVhR1VnZG1Gc2RXVWdkRzhnWTJobFkyc3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMkp2YjJ4bFlXNTlJRkpsZEhWeWJuTWdZSFJ5ZFdWZ0lHbG1JR0IyWVd4MVpXQWdhWE1nWVNCa1lYUmxJRzlpYW1WamRDd2daV3h6WlNCZ1ptRnNjMlZnTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR0poYzJWSmMwUmhkR1VvZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnBjMDlpYW1WamRFeHBhMlVvZG1Gc2RXVXBJQ1ltSUdKaGMyVkhaWFJVWVdjb2RtRnNkV1VwSUQwOUlHUmhkR1ZVWVdjN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaGxJR0poYzJVZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRnYjJZZ1lGOHVhWE5GY1hWaGJHQWdkMmhwWTJnZ2MzVndjRzl5ZEhNZ2NHRnlkR2xoYkNCamIyMXdZWEpwYzI5dWMxeHVJQ0FnSUNBcUlHRnVaQ0IwY21GamEzTWdkSEpoZG1WeWMyVmtJRzlpYW1WamRITXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdkbUZzZFdVZ1ZHaGxJSFpoYkhWbElIUnZJR052YlhCaGNtVXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0J2ZEdobGNpQlVhR1VnYjNSb1pYSWdkbUZzZFdVZ2RHOGdZMjl0Y0dGeVpTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UySnZiMnhsWVc1OUlHSnBkRzFoYzJzZ1ZHaGxJR0pwZEcxaGMyc2dabXhoWjNNdVhHNGdJQ0FnSUNvZ0lERWdMU0JWYm05eVpHVnlaV1FnWTI5dGNHRnlhWE52Ymx4dUlDQWdJQ0FxSUNBeUlDMGdVR0Z5ZEdsaGJDQmpiMjF3WVhKcGMyOXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdXMk4xYzNSdmJXbDZaWEpkSUZSb1pTQm1kVzVqZEdsdmJpQjBieUJqZFhOMGIyMXBlbVVnWTI5dGNHRnlhWE52Ym5NdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUZ0emRHRmphMTBnVkhKaFkydHpJSFJ5WVhabGNuTmxaQ0JnZG1Gc2RXVmdJR0Z1WkNCZ2IzUm9aWEpnSUc5aWFtVmpkSE11WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTJKdmIyeGxZVzU5SUZKbGRIVnlibk1nWUhSeWRXVmdJR2xtSUhSb1pTQjJZV3gxWlhNZ1lYSmxJR1Z4ZFdsMllXeGxiblFzSUdWc2MyVWdZR1poYkhObFlDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCaVlYTmxTWE5GY1hWaGJDaDJZV3gxWlN3Z2IzUm9aWElzSUdKcGRHMWhjMnNzSUdOMWMzUnZiV2w2WlhJc0lITjBZV05yS1NCN1hHNGdJQ0FnSUNCcFppQW9kbUZzZFdVZ1BUMDlJRzkwYUdWeUtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBjblZsTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tIWmhiSFZsSUQwOUlHNTFiR3dnZkh3Z2IzUm9aWElnUFQwZ2JuVnNiQ0I4ZkNBb0lXbHpUMkpxWldOMFRHbHJaU2gyWVd4MVpTa2dKaVlnSVdselQySnFaV04wVEdsclpTaHZkR2hsY2lrcEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjJZV3gxWlNBaFBUMGdkbUZzZFdVZ0ppWWdiM1JvWlhJZ0lUMDlJRzkwYUdWeU8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUdKaGMyVkpjMFZ4ZFdGc1JHVmxjQ2gyWVd4MVpTd2diM1JvWlhJc0lHSnBkRzFoYzJzc0lHTjFjM1J2YldsNlpYSXNJR0poYzJWSmMwVnhkV0ZzTENCemRHRmpheWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUVNCemNHVmphV0ZzYVhwbFpDQjJaWEp6YVc5dUlHOW1JR0JpWVhObFNYTkZjWFZoYkdBZ1ptOXlJR0Z5Y21GNWN5QmhibVFnYjJKcVpXTjBjeUIzYUdsamFDQndaWEptYjNKdGMxeHVJQ0FnSUNBcUlHUmxaWEFnWTI5dGNHRnlhWE52Ym5NZ1lXNWtJSFJ5WVdOcmN5QjBjbUYyWlhKelpXUWdiMkpxWldOMGN5QmxibUZpYkdsdVp5QnZZbXBsWTNSeklIZHBkR2dnWTJseVkzVnNZWEpjYmlBZ0lDQWdLaUJ5WldabGNtVnVZMlZ6SUhSdklHSmxJR052YlhCaGNtVmtMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQnZZbXBsWTNRZ2RHOGdZMjl0Y0dGeVpTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IzUm9aWElnVkdobElHOTBhR1Z5SUc5aWFtVmpkQ0IwYnlCamIyMXdZWEpsTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JpYVhSdFlYTnJJRlJvWlNCaWFYUnRZWE5ySUdac1lXZHpMaUJUWldVZ1lHSmhjMlZKYzBWeGRXRnNZQ0JtYjNJZ2JXOXlaU0JrWlhSaGFXeHpMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR04xYzNSdmJXbDZaWElnVkdobElHWjFibU4wYVc5dUlIUnZJR04xYzNSdmJXbDZaU0JqYjIxd1lYSnBjMjl1Y3k1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCbGNYVmhiRVoxYm1NZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUdSbGRHVnliV2x1WlNCbGNYVnBkbUZzWlc1MGN5QnZaaUIyWVd4MVpYTXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlGdHpkR0ZqYTEwZ1ZISmhZMnR6SUhSeVlYWmxjbk5sWkNCZ2IySnFaV04wWUNCaGJtUWdZRzkwYUdWeVlDQnZZbXBsWTNSekxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdGliMjlzWldGdWZTQlNaWFIxY201eklHQjBjblZsWUNCcFppQjBhR1VnYjJKcVpXTjBjeUJoY21VZ1pYRjFhWFpoYkdWdWRDd2daV3h6WlNCZ1ptRnNjMlZnTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR0poYzJWSmMwVnhkV0ZzUkdWbGNDaHZZbXBsWTNRc0lHOTBhR1Z5TENCaWFYUnRZWE5yTENCamRYTjBiMjFwZW1WeUxDQmxjWFZoYkVaMWJtTXNJSE4wWVdOcktTQjdYRzRnSUNBZ0lDQjJZWElnYjJKcVNYTkJjbklnUFNCcGMwRnljbUY1S0c5aWFtVmpkQ2tzWEc0Z0lDQWdJQ0FnSUNBZ2IzUm9TWE5CY25JZ1BTQnBjMEZ5Y21GNUtHOTBhR1Z5S1N4Y2JpQWdJQ0FnSUNBZ0lDQnZZbXBVWVdjZ1BTQnZZbXBKYzBGeWNpQS9JR0Z5Y21GNVZHRm5JRG9nWjJWMFZHRm5LRzlpYW1WamRDa3NYRzRnSUNBZ0lDQWdJQ0FnYjNSb1ZHRm5JRDBnYjNSb1NYTkJjbklnUHlCaGNuSmhlVlJoWnlBNklHZGxkRlJoWnlodmRHaGxjaWs3WEc1Y2JpQWdJQ0FnSUc5aWFsUmhaeUE5SUc5aWFsUmhaeUE5UFNCaGNtZHpWR0ZuSUQ4Z2IySnFaV04wVkdGbklEb2diMkpxVkdGbk8xeHVJQ0FnSUNBZ2IzUm9WR0ZuSUQwZ2IzUm9WR0ZuSUQwOUlHRnlaM05VWVdjZ1B5QnZZbXBsWTNSVVlXY2dPaUJ2ZEdoVVlXYzdYRzVjYmlBZ0lDQWdJSFpoY2lCdlltcEpjMDlpYWlBOUlHOWlhbFJoWnlBOVBTQnZZbXBsWTNSVVlXY3NYRzRnSUNBZ0lDQWdJQ0FnYjNSb1NYTlBZbW9nUFNCdmRHaFVZV2NnUFQwZ2IySnFaV04wVkdGbkxGeHVJQ0FnSUNBZ0lDQWdJR2x6VTJGdFpWUmhaeUE5SUc5aWFsUmhaeUE5UFNCdmRHaFVZV2M3WEc1Y2JpQWdJQ0FnSUdsbUlDaHBjMU5oYldWVVlXY2dKaVlnYVhOQ2RXWm1aWElvYjJKcVpXTjBLU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9JV2x6UW5WbVptVnlLRzkwYUdWeUtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J2WW1wSmMwRnljaUE5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJRzlpYWtselQySnFJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnBaaUFvYVhOVFlXMWxWR0ZuSUNZbUlDRnZZbXBKYzA5aWFpa2dlMXh1SUNBZ0lDQWdJQ0J6ZEdGamF5QjhmQ0FvYzNSaFkyc2dQU0J1WlhjZ1UzUmhZMnNwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnS0c5aWFrbHpRWEp5SUh4OElHbHpWSGx3WldSQmNuSmhlU2h2WW1wbFkzUXBLVnh1SUNBZ0lDQWdJQ0FnSUQ4Z1pYRjFZV3hCY25KaGVYTW9iMkpxWldOMExDQnZkR2hsY2l3Z1ltbDBiV0Z6YXl3Z1kzVnpkRzl0YVhwbGNpd2daWEYxWVd4R2RXNWpMQ0J6ZEdGamF5bGNiaUFnSUNBZ0lDQWdJQ0E2SUdWeGRXRnNRbmxVWVdjb2IySnFaV04wTENCdmRHaGxjaXdnYjJKcVZHRm5MQ0JpYVhSdFlYTnJMQ0JqZFhOMGIyMXBlbVZ5TENCbGNYVmhiRVoxYm1Nc0lITjBZV05yS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdsbUlDZ2hLR0pwZEcxaGMyc2dKaUJEVDAxUVFWSkZYMUJCVWxSSlFVeGZSa3hCUnlrcElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUc5aWFrbHpWM0poY0hCbFpDQTlJRzlpYWtselQySnFJQ1ltSUdoaGMwOTNibEJ5YjNCbGNuUjVMbU5oYkd3b2IySnFaV04wTENBblgxOTNjbUZ3Y0dWa1gxOG5LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHOTBhRWx6VjNKaGNIQmxaQ0E5SUc5MGFFbHpUMkpxSUNZbUlHaGhjMDkzYmxCeWIzQmxjblI1TG1OaGJHd29iM1JvWlhJc0lDZGZYM2R5WVhCd1pXUmZYeWNwTzF4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2h2WW1wSmMxZHlZWEJ3WldRZ2ZId2diM1JvU1hOWGNtRndjR1ZrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdkbUZ5SUc5aWFsVnVkM0poY0hCbFpDQTlJRzlpYWtselYzSmhjSEJsWkNBL0lHOWlhbVZqZEM1MllXeDFaU2dwSURvZ2IySnFaV04wTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J2ZEdoVmJuZHlZWEJ3WldRZ1BTQnZkR2hKYzFkeVlYQndaV1FnUHlCdmRHaGxjaTUyWVd4MVpTZ3BJRG9nYjNSb1pYSTdYRzVjYmlBZ0lDQWdJQ0FnSUNCemRHRmpheUI4ZkNBb2MzUmhZMnNnUFNCdVpYY2dVM1JoWTJzcE8xeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmxjWFZoYkVaMWJtTW9iMkpxVlc1M2NtRndjR1ZrTENCdmRHaFZibmR5WVhCd1pXUXNJR0pwZEcxaGMyc3NJR04xYzNSdmJXbDZaWElzSUhOMFlXTnJLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tDRnBjMU5oYldWVVlXY3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2MzUmhZMnNnZkh3Z0tITjBZV05ySUQwZ2JtVjNJRk4wWVdOcktUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCbGNYVmhiRTlpYW1WamRITW9iMkpxWldOMExDQnZkR2hsY2l3Z1ltbDBiV0Z6YXl3Z1kzVnpkRzl0YVhwbGNpd2daWEYxWVd4R2RXNWpMQ0J6ZEdGamF5azdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUdKaGMyVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2IyWWdZRjh1YVhOTllYQmdJSGRwZEdodmRYUWdUbTlrWlM1cWN5QnZjSFJwYldsNllYUnBiMjV6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCamFHVmpheTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3WW05dmJHVmhibjBnVW1WMGRYSnVjeUJnZEhKMVpXQWdhV1lnWUhaaGJIVmxZQ0JwY3lCaElHMWhjQ3dnWld4elpTQmdabUZzYzJWZ0xseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdKaGMyVkpjMDFoY0NoMllXeDFaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR2x6VDJKcVpXTjBUR2xyWlNoMllXeDFaU2tnSmlZZ1oyVjBWR0ZuS0haaGJIVmxLU0E5UFNCdFlYQlVZV2M3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdobElHSmhjMlVnYVcxd2JHVnRaVzUwWVhScGIyNGdiMllnWUY4dWFYTk5ZWFJqYUdBZ2QybDBhRzkxZENCemRYQndiM0owSUdadmNpQnBkR1Z5WVhSbFpTQnphRzl5ZEdoaGJtUnpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQnZZbXBsWTNRZ2RHOGdhVzV6Y0dWamRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2MyOTFjbU5sSUZSb1pTQnZZbXBsWTNRZ2IyWWdjSEp2Y0dWeWRIa2dkbUZzZFdWeklIUnZJRzFoZEdOb0xseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUcxaGRHTm9SR0YwWVNCVWFHVWdjSEp2Y0dWeWRIa2dibUZ0WlhNc0lIWmhiSFZsY3l3Z1lXNWtJR052YlhCaGNtVWdabXhoWjNNZ2RHOGdiV0YwWTJndVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1cyTjFjM1J2YldsNlpYSmRJRlJvWlNCbWRXNWpkR2x2YmlCMGJ5QmpkWE4wYjIxcGVtVWdZMjl0Y0dGeWFYTnZibk11WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTJKdmIyeGxZVzU5SUZKbGRIVnlibk1nWUhSeWRXVmdJR2xtSUdCdlltcGxZM1JnSUdseklHRWdiV0YwWTJnc0lHVnNjMlVnWUdaaGJITmxZQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmlZWE5sU1hOTllYUmphQ2h2WW1wbFkzUXNJSE52ZFhKalpTd2diV0YwWTJoRVlYUmhMQ0JqZFhOMGIyMXBlbVZ5S1NCN1hHNGdJQ0FnSUNCMllYSWdhVzVrWlhnZ1BTQnRZWFJqYUVSaGRHRXViR1Z1WjNSb0xGeHVJQ0FnSUNBZ0lDQWdJR3hsYm1kMGFDQTlJR2x1WkdWNExGeHVJQ0FnSUNBZ0lDQWdJRzV2UTNWemRHOXRhWHBsY2lBOUlDRmpkWE4wYjIxcGVtVnlPMXh1WEc0Z0lDQWdJQ0JwWmlBb2IySnFaV04wSUQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNGc1pXNW5kR2c3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J2WW1wbFkzUWdQU0JQWW1wbFkzUW9iMkpxWldOMEtUdGNiaUFnSUNBZ0lIZG9hV3hsSUNocGJtUmxlQzB0S1NCN1hHNGdJQ0FnSUNBZ0lIWmhjaUJrWVhSaElEMGdiV0YwWTJoRVlYUmhXMmx1WkdWNFhUdGNiaUFnSUNBZ0lDQWdhV1lnS0NodWIwTjFjM1J2YldsNlpYSWdKaVlnWkdGMFlWc3lYU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQeUJrWVhSaFd6RmRJQ0U5UFNCdlltcGxZM1JiWkdGMFlWc3dYVjFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdPaUFoS0dSaGRHRmJNRjBnYVc0Z2IySnFaV04wS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0IzYUdsc1pTQW9LeXRwYm1SbGVDQThJR3hsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0JrWVhSaElEMGdiV0YwWTJoRVlYUmhXMmx1WkdWNFhUdGNiaUFnSUNBZ0lDQWdkbUZ5SUd0bGVTQTlJR1JoZEdGYk1GMHNYRzRnSUNBZ0lDQWdJQ0FnSUNCdlltcFdZV3gxWlNBOUlHOWlhbVZqZEZ0clpYbGRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzSmpWbUZzZFdVZ1BTQmtZWFJoV3pGZE8xeHVYRzRnSUNBZ0lDQWdJR2xtSUNodWIwTjFjM1J2YldsNlpYSWdKaVlnWkdGMFlWc3lYU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2h2WW1wV1lXeDFaU0E5UFQwZ2RXNWtaV1pwYm1Wa0lDWW1JQ0VvYTJWNUlHbHVJRzlpYW1WamRDa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdkbUZ5SUhOMFlXTnJJRDBnYm1WM0lGTjBZV05yTzF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2hqZFhOMGIyMXBlbVZ5S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ1kzVnpkRzl0YVhwbGNpaHZZbXBXWVd4MVpTd2djM0pqVm1Gc2RXVXNJR3RsZVN3Z2IySnFaV04wTENCemIzVnlZMlVzSUhOMFlXTnJLVHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdhV1lnS0NFb2NtVnpkV3gwSUQwOVBTQjFibVJsWm1sdVpXUmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQS9JR0poYzJWSmMwVnhkV0ZzS0hOeVkxWmhiSFZsTENCdlltcFdZV3gxWlN3Z1EwOU5VRUZTUlY5UVFWSlVTVUZNWDBaTVFVY2dmQ0JEVDAxUVFWSkZYMVZPVDFKRVJWSkZSRjlHVEVGSExDQmpkWE4wYjIxcGVtVnlMQ0J6ZEdGamF5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJSEpsYzNWc2RGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR1VnWW1GelpTQnBiWEJzWlcxbGJuUmhkR2x2YmlCdlppQmdYeTVwYzA1aGRHbDJaV0FnZDJsMGFHOTFkQ0JpWVdRZ2MyaHBiU0JqYUdWamEzTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdkbUZzZFdVZ1ZHaGxJSFpoYkhWbElIUnZJR05vWldOckxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdGliMjlzWldGdWZTQlNaWFIxY201eklHQjBjblZsWUNCcFppQmdkbUZzZFdWZ0lHbHpJR0VnYm1GMGFYWmxJR1oxYm1OMGFXOXVMRnh1SUNBZ0lDQXFJQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnWW1GelpVbHpUbUYwYVhabEtIWmhiSFZsS1NCN1hHNGdJQ0FnSUNCcFppQW9JV2x6VDJKcVpXTjBLSFpoYkhWbEtTQjhmQ0JwYzAxaGMydGxaQ2gyWVd4MVpTa3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2RtRnlJSEJoZEhSbGNtNGdQU0JwYzBaMWJtTjBhVzl1S0haaGJIVmxLU0EvSUhKbFNYTk9ZWFJwZG1VZ09pQnlaVWx6U0c5emRFTjBiM0k3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjR0YwZEdWeWJpNTBaWE4wS0hSdlUyOTFjbU5sS0haaGJIVmxLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdobElHSmhjMlVnYVcxd2JHVnRaVzUwWVhScGIyNGdiMllnWUY4dWFYTlNaV2RGZUhCZ0lIZHBkR2h2ZFhRZ1RtOWtaUzVxY3lCdmNIUnBiV2w2WVhScGIyNXpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSFpoYkhWbElGUm9aU0IyWVd4MVpTQjBieUJqYUdWamF5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdZbTl2YkdWaGJuMGdVbVYwZFhKdWN5QmdkSEoxWldBZ2FXWWdZSFpoYkhWbFlDQnBjeUJoSUhKbFoyVjRjQ3dnWld4elpTQmdabUZzYzJWZ0xseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdKaGMyVkpjMUpsWjBWNGNDaDJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdselQySnFaV04wVEdsclpTaDJZV3gxWlNrZ0ppWWdZbUZ6WlVkbGRGUmhaeWgyWVd4MVpTa2dQVDBnY21WblpYaHdWR0ZuTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQmlZWE5sSUdsdGNHeGxiV1Z1ZEdGMGFXOXVJRzltSUdCZkxtbHpVMlYwWUNCM2FYUm9iM1YwSUU1dlpHVXVhbk1nYjNCMGFXMXBlbUYwYVc5dWN5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdZMmhsWTJzdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UySnZiMnhsWVc1OUlGSmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdsbUlHQjJZV3gxWldBZ2FYTWdZU0J6WlhRc0lHVnNjMlVnWUdaaGJITmxZQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmlZWE5sU1hOVFpYUW9kbUZzZFdVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCcGMwOWlhbVZqZEV4cGEyVW9kbUZzZFdVcElDWW1JR2RsZEZSaFp5aDJZV3gxWlNrZ1BUMGdjMlYwVkdGbk8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9aU0JpWVhObElHbHRjR3hsYldWdWRHRjBhVzl1SUc5bUlHQmZMbWx6Vkhsd1pXUkJjbkpoZVdBZ2QybDBhRzkxZENCT2IyUmxMbXB6SUc5d2RHbHRhWHBoZEdsdmJuTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdkbUZzZFdVZ1ZHaGxJSFpoYkhWbElIUnZJR05vWldOckxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdGliMjlzWldGdWZTQlNaWFIxY201eklHQjBjblZsWUNCcFppQmdkbUZzZFdWZ0lHbHpJR0VnZEhsd1pXUWdZWEp5WVhrc0lHVnNjMlVnWUdaaGJITmxZQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmlZWE5sU1hOVWVYQmxaRUZ5Y21GNUtIWmhiSFZsS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYVhOUFltcGxZM1JNYVd0bEtIWmhiSFZsS1NBbUpseHVJQ0FnSUNBZ0lDQnBjMHhsYm1kMGFDaDJZV3gxWlM1c1pXNW5kR2dwSUNZbUlDRWhkSGx3WldSQmNuSmhlVlJoWjNOYlltRnpaVWRsZEZSaFp5aDJZV3gxWlNsZE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9aU0JpWVhObElHbHRjR3hsYldWdWRHRjBhVzl1SUc5bUlHQmZMbWwwWlhKaGRHVmxZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0JiZG1Gc2RXVTlYeTVwWkdWdWRHbDBlVjBnVkdobElIWmhiSFZsSUhSdklHTnZiblpsY25RZ2RHOGdZVzRnYVhSbGNtRjBaV1V1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBaMWJtTjBhVzl1ZlNCU1pYUjFjbTV6SUhSb1pTQnBkR1Z5WVhSbFpTNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCaVlYTmxTWFJsY21GMFpXVW9kbUZzZFdVcElIdGNiaUFnSUNBZ0lDOHZJRVJ2YmlkMElITjBiM0psSUhSb1pTQmdkSGx3Wlc5bVlDQnlaWE4xYkhRZ2FXNGdZU0IyWVhKcFlXSnNaU0IwYnlCaGRtOXBaQ0JoSUVwSlZDQmlkV2NnYVc0Z1UyRm1ZWEpwSURrdVhHNGdJQ0FnSUNBdkx5QlRaV1VnYUhSMGNITTZMeTlpZFdkekxuZGxZbXRwZEM1dmNtY3ZjMmh2ZDE5aWRXY3VZMmRwUDJsa1BURTFOakF6TkNCbWIzSWdiVzl5WlNCa1pYUmhhV3h6TGx4dUlDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCMllXeDFaU0E5UFNBblpuVnVZM1JwYjI0bktTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjJZV3gxWlR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdsbUlDaDJZV3gxWlNBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCcFpHVnVkR2wwZVR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdsbUlDaDBlWEJsYjJZZ2RtRnNkV1VnUFQwZ0oyOWlhbVZqZENjcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHbHpRWEp5WVhrb2RtRnNkV1VwWEc0Z0lDQWdJQ0FnSUNBZ1B5QmlZWE5sVFdGMFkyaGxjMUJ5YjNCbGNuUjVLSFpoYkhWbFd6QmRMQ0IyWVd4MVpWc3hYU2xjYmlBZ0lDQWdJQ0FnSUNBNklHSmhjMlZOWVhSamFHVnpLSFpoYkhWbEtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCd2NtOXdaWEowZVNoMllXeDFaU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdobElHSmhjMlVnYVcxd2JHVnRaVzUwWVhScGIyNGdiMllnWUY4dWEyVjVjMkFnZDJocFkyZ2daRzlsYzI0bmRDQjBjbVZoZENCemNHRnljMlVnWVhKeVlYbHpJR0Z6SUdSbGJuTmxMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQnZZbXBsWTNRZ2RHOGdjWFZsY25rdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQmhjbkpoZVNCdlppQndjbTl3WlhKMGVTQnVZVzFsY3k1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJpWVhObFMyVjVjeWh2WW1wbFkzUXBJSHRjYmlBZ0lDQWdJR2xtSUNnaGFYTlFjbTkwYjNSNWNHVW9iMkpxWldOMEtTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdibUYwYVhabFMyVjVjeWh2WW1wbFkzUXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUZ0ZE8xeHVJQ0FnSUNBZ1ptOXlJQ2gyWVhJZ2EyVjVJR2x1SUU5aWFtVmpkQ2h2WW1wbFkzUXBLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaG9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLRzlpYW1WamRDd2dhMlY1S1NBbUppQnJaWGtnSVQwZ0oyTnZibk4wY25WamRHOXlKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lISmxjM1ZzZEM1d2RYTm9LR3RsZVNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdobElHSmhjMlVnYVcxd2JHVnRaVzUwWVhScGIyNGdiMllnWUY4dWEyVjVjMGx1WUNCM2FHbGphQ0JrYjJWemJpZDBJSFJ5WldGMElITndZWEp6WlNCaGNuSmhlWE1nWVhNZ1pHVnVjMlV1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZZbXBsWTNRZ1ZHaGxJRzlpYW1WamRDQjBieUJ4ZFdWeWVTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJR0Z5Y21GNUlHOW1JSEJ5YjNCbGNuUjVJRzVoYldWekxseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdKaGMyVkxaWGx6U1c0b2IySnFaV04wS1NCN1hHNGdJQ0FnSUNCcFppQW9JV2x6VDJKcVpXTjBLRzlpYW1WamRDa3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzVoZEdsMlpVdGxlWE5KYmlodlltcGxZM1FwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnZG1GeUlHbHpVSEp2ZEc4Z1BTQnBjMUJ5YjNSdmRIbHdaU2h2WW1wbFkzUXBMRnh1SUNBZ0lDQWdJQ0FnSUhKbGMzVnNkQ0E5SUZ0ZE8xeHVYRzRnSUNBZ0lDQm1iM0lnS0haaGNpQnJaWGtnYVc0Z2IySnFaV04wS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doS0d0bGVTQTlQU0FuWTI5dWMzUnlkV04wYjNJbklDWW1JQ2hwYzFCeWIzUnZJSHg4SUNGb1lYTlBkMjVRY205d1pYSjBlUzVqWVd4c0tHOWlhbVZqZEN3Z2EyVjVLU2twS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVZ6ZFd4MExuQjFjMmdvYTJWNUtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVWFHVWdZbUZ6WlNCcGJYQnNaVzFsYm5SaGRHbHZiaUJ2WmlCZ1h5NXNkR0FnZDJocFkyZ2daRzlsYzI0bmRDQmpiMlZ5WTJVZ1lYSm5kVzFsYm5SekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlIWmhiSFZsSUZSb1pTQjJZV3gxWlNCMGJ5QmpiMjF3WVhKbExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdiM1JvWlhJZ1ZHaGxJRzkwYUdWeUlIWmhiSFZsSUhSdklHTnZiWEJoY21VdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UySnZiMnhsWVc1OUlGSmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdsbUlHQjJZV3gxWldBZ2FYTWdiR1Z6Y3lCMGFHRnVJR0J2ZEdobGNtQXNYRzRnSUNBZ0lDb2dJR1ZzYzJVZ1lHWmhiSE5sWUM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJpWVhObFRIUW9kbUZzZFdVc0lHOTBhR1Z5S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZG1Gc2RXVWdQQ0J2ZEdobGNqdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR1VnWW1GelpTQnBiWEJzWlcxbGJuUmhkR2x2YmlCdlppQmdYeTV0WVhCZ0lIZHBkR2h2ZFhRZ2MzVndjRzl5ZENCbWIzSWdhWFJsY21GMFpXVWdjMmh2Y25Sb1lXNWtjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVh4UFltcGxZM1I5SUdOdmJHeGxZM1JwYjI0Z1ZHaGxJR052Ykd4bFkzUnBiMjRnZEc4Z2FYUmxjbUYwWlNCdmRtVnlMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR2wwWlhKaGRHVmxJRlJvWlNCbWRXNWpkR2x2YmlCcGJuWnZhMlZrSUhCbGNpQnBkR1Z5WVhScGIyNHVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMEZ5Y21GNWZTQlNaWFIxY201eklIUm9aU0J1WlhjZ2JXRndjR1ZrSUdGeWNtRjVMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHSmhjMlZOWVhBb1kyOXNiR1ZqZEdsdmJpd2dhWFJsY21GMFpXVXBJSHRjYmlBZ0lDQWdJSFpoY2lCcGJtUmxlQ0E5SUMweExGeHVJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RDQTlJR2x6UVhKeVlYbE1hV3RsS0dOdmJHeGxZM1JwYjI0cElEOGdRWEp5WVhrb1kyOXNiR1ZqZEdsdmJpNXNaVzVuZEdncElEb2dXMTA3WEc1Y2JpQWdJQ0FnSUdKaGMyVkZZV05vS0dOdmJHeGxZM1JwYjI0c0lHWjFibU4wYVc5dUtIWmhiSFZsTENCclpYa3NJR052Ykd4bFkzUnBiMjRwSUh0Y2JpQWdJQ0FnSUNBZ2NtVnpkV3gwV3lzcmFXNWtaWGhkSUQwZ2FYUmxjbUYwWldVb2RtRnNkV1VzSUd0bGVTd2dZMjlzYkdWamRHbHZiaWs3WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUdKaGMyVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2IyWWdZRjh1YldGMFkyaGxjMkFnZDJocFkyZ2daRzlsYzI0bmRDQmpiRzl1WlNCZ2MyOTFjbU5sWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJSE52ZFhKalpTQlVhR1VnYjJKcVpXTjBJRzltSUhCeWIzQmxjblI1SUhaaGJIVmxjeUIwYnlCdFlYUmphQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3Um5WdVkzUnBiMjU5SUZKbGRIVnlibk1nZEdobElHNWxkeUJ6Y0dWaklHWjFibU4wYVc5dUxseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdKaGMyVk5ZWFJqYUdWektITnZkWEpqWlNrZ2UxeHVJQ0FnSUNBZ2RtRnlJRzFoZEdOb1JHRjBZU0E5SUdkbGRFMWhkR05vUkdGMFlTaHpiM1Z5WTJVcE8xeHVJQ0FnSUNBZ2FXWWdLRzFoZEdOb1JHRjBZUzVzWlc1bmRHZ2dQVDBnTVNBbUppQnRZWFJqYUVSaGRHRmJNRjFiTWwwcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHMWhkR05vWlhOVGRISnBZM1JEYjIxd1lYSmhZbXhsS0cxaGRHTm9SR0YwWVZzd1hWc3dYU3dnYldGMFkyaEVZWFJoV3pCZFd6RmRLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQm1kVzVqZEdsdmJpaHZZbXBsWTNRcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHOWlhbVZqZENBOVBUMGdjMjkxY21ObElIeDhJR0poYzJWSmMwMWhkR05vS0c5aWFtVmpkQ3dnYzI5MWNtTmxMQ0J0WVhSamFFUmhkR0VwTzF4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVWFHVWdZbUZ6WlNCcGJYQnNaVzFsYm5SaGRHbHZiaUJ2WmlCZ1h5NXRZWFJqYUdWelVISnZjR1Z5ZEhsZ0lIZG9hV05vSUdSdlpYTnVKM1FnWTJ4dmJtVWdZSE55WTFaaGJIVmxZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlIQmhkR2dnVkdobElIQmhkR2dnYjJZZ2RHaGxJSEJ5YjNCbGNuUjVJSFJ2SUdkbGRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSE55WTFaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCdFlYUmphQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3Um5WdVkzUnBiMjU5SUZKbGRIVnlibk1nZEdobElHNWxkeUJ6Y0dWaklHWjFibU4wYVc5dUxseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdKaGMyVk5ZWFJqYUdWelVISnZjR1Z5ZEhrb2NHRjBhQ3dnYzNKalZtRnNkV1VwSUh0Y2JpQWdJQ0FnSUdsbUlDaHBjMHRsZVNod1lYUm9LU0FtSmlCcGMxTjBjbWxqZEVOdmJYQmhjbUZpYkdVb2MzSmpWbUZzZFdVcEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnRZWFJqYUdWelUzUnlhV04wUTI5dGNHRnlZV0pzWlNoMGIwdGxlU2h3WVhSb0tTd2djM0pqVm1Gc2RXVXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlHWjFibU4wYVc5dUtHOWlhbVZqZENrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnYjJKcVZtRnNkV1VnUFNCblpYUW9iMkpxWldOMExDQndZWFJvS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNodlltcFdZV3gxWlNBOVBUMGdkVzVrWldacGJtVmtJQ1ltSUc5aWFsWmhiSFZsSUQwOVBTQnpjbU5XWVd4MVpTbGNiaUFnSUNBZ0lDQWdJQ0EvSUdoaGMwbHVLRzlpYW1WamRDd2djR0YwYUNsY2JpQWdJQ0FnSUNBZ0lDQTZJR0poYzJWSmMwVnhkV0ZzS0hOeVkxWmhiSFZsTENCdlltcFdZV3gxWlN3Z1EwOU5VRUZTUlY5UVFWSlVTVUZNWDBaTVFVY2dmQ0JEVDAxUVFWSkZYMVZPVDFKRVJWSkZSRjlHVEVGSEtUdGNiaUFnSUNBZ0lIMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUdKaGMyVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2IyWWdZRjh1YldWeVoyVmdJSGRwZEdodmRYUWdjM1Z3Y0c5eWRDQm1iM0lnYlhWc2RHbHdiR1VnYzI5MWNtTmxjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOWlhbVZqZENCVWFHVWdaR1Z6ZEdsdVlYUnBiMjRnYjJKcVpXTjBMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnpiM1Z5WTJVZ1ZHaGxJSE52ZFhKalpTQnZZbXBsWTNRdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUhOeVkwbHVaR1Y0SUZSb1pTQnBibVJsZUNCdlppQmdjMjkxY21ObFlDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQmJZM1Z6ZEc5dGFYcGxjbDBnVkdobElHWjFibU4wYVc5dUlIUnZJR04xYzNSdmJXbDZaU0J0WlhKblpXUWdkbUZzZFdWekxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCYmMzUmhZMnRkSUZSeVlXTnJjeUIwY21GMlpYSnpaV1FnYzI5MWNtTmxJSFpoYkhWbGN5QmhibVFnZEdobGFYSWdiV1Z5WjJWa1hHNGdJQ0FnSUNvZ0lHTnZkVzUwWlhKd1lYSjBjeTVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmlZWE5sVFdWeVoyVW9iMkpxWldOMExDQnpiM1Z5WTJVc0lITnlZMGx1WkdWNExDQmpkWE4wYjIxcGVtVnlMQ0J6ZEdGamF5a2dlMXh1SUNBZ0lDQWdhV1lnS0c5aWFtVmpkQ0E5UFQwZ2MyOTFjbU5sS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdKaGMyVkdiM0lvYzI5MWNtTmxMQ0JtZFc1amRHbHZiaWh6Y21OV1lXeDFaU3dnYTJWNUtTQjdYRzRnSUNBZ0lDQWdJSE4wWVdOcklIeDhJQ2h6ZEdGamF5QTlJRzVsZHlCVGRHRmpheWs3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBjMDlpYW1WamRDaHpjbU5XWVd4MVpTa3BJSHRjYmlBZ0lDQWdJQ0FnSUNCaVlYTmxUV1Z5WjJWRVpXVndLRzlpYW1WamRDd2djMjkxY21ObExDQnJaWGtzSUhOeVkwbHVaR1Y0TENCaVlYTmxUV1Z5WjJVc0lHTjFjM1J2YldsNlpYSXNJSE4wWVdOcktUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0IyWVhJZ2JtVjNWbUZzZFdVZ1BTQmpkWE4wYjIxcGVtVnlYRzRnSUNBZ0lDQWdJQ0FnSUNBL0lHTjFjM1J2YldsNlpYSW9jMkZtWlVkbGRDaHZZbXBsWTNRc0lHdGxlU2tzSUhOeVkxWmhiSFZsTENBb2EyVjVJQ3NnSnljcExDQnZZbXBsWTNRc0lITnZkWEpqWlN3Z2MzUmhZMnNwWEc0Z0lDQWdJQ0FnSUNBZ0lDQTZJSFZ1WkdWbWFXNWxaRHRjYmx4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2h1WlhkV1lXeDFaU0E5UFQwZ2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCdVpYZFdZV3gxWlNBOUlITnlZMVpoYkhWbE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCaGMzTnBaMjVOWlhKblpWWmhiSFZsS0c5aWFtVmpkQ3dnYTJWNUxDQnVaWGRXWVd4MVpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBzSUd0bGVYTkpiaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUVNCemNHVmphV0ZzYVhwbFpDQjJaWEp6YVc5dUlHOW1JR0JpWVhObFRXVnlaMlZnSUdadmNpQmhjbkpoZVhNZ1lXNWtJRzlpYW1WamRITWdkMmhwWTJnZ2NHVnlabTl5YlhOY2JpQWdJQ0FnS2lCa1pXVndJRzFsY21kbGN5QmhibVFnZEhKaFkydHpJSFJ5WVhabGNuTmxaQ0J2WW1wbFkzUnpJR1Z1WVdKc2FXNW5JRzlpYW1WamRITWdkMmwwYUNCamFYSmpkV3hoY2x4dUlDQWdJQ0FxSUhKbFptVnlaVzVqWlhNZ2RHOGdZbVVnYldWeVoyVmtMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQmtaWE4wYVc1aGRHbHZiaUJ2WW1wbFkzUXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlITnZkWEpqWlNCVWFHVWdjMjkxY21ObElHOWlhbVZqZEM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYTJWNUlGUm9aU0JyWlhrZ2IyWWdkR2hsSUhaaGJIVmxJSFJ2SUcxbGNtZGxMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnpjbU5KYm1SbGVDQlVhR1VnYVc1a1pYZ2diMllnWUhOdmRYSmpaV0F1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnYldWeVoyVkdkVzVqSUZSb1pTQm1kVzVqZEdsdmJpQjBieUJ0WlhKblpTQjJZV3gxWlhNdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1cyTjFjM1J2YldsNlpYSmRJRlJvWlNCbWRXNWpkR2x2YmlCMGJ5QmpkWE4wYjIxcGVtVWdZWE56YVdkdVpXUWdkbUZzZFdWekxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCYmMzUmhZMnRkSUZSeVlXTnJjeUIwY21GMlpYSnpaV1FnYzI5MWNtTmxJSFpoYkhWbGN5QmhibVFnZEdobGFYSWdiV1Z5WjJWa1hHNGdJQ0FnSUNvZ0lHTnZkVzUwWlhKd1lYSjBjeTVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmlZWE5sVFdWeVoyVkVaV1Z3S0c5aWFtVmpkQ3dnYzI5MWNtTmxMQ0JyWlhrc0lITnlZMGx1WkdWNExDQnRaWEpuWlVaMWJtTXNJR04xYzNSdmJXbDZaWElzSUhOMFlXTnJLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2IySnFWbUZzZFdVZ1BTQnpZV1psUjJWMEtHOWlhbVZqZEN3Z2EyVjVLU3hjYmlBZ0lDQWdJQ0FnSUNCemNtTldZV3gxWlNBOUlITmhabVZIWlhRb2MyOTFjbU5sTENCclpYa3BMRnh1SUNBZ0lDQWdJQ0FnSUhOMFlXTnJaV1FnUFNCemRHRmpheTVuWlhRb2MzSmpWbUZzZFdVcE8xeHVYRzRnSUNBZ0lDQnBaaUFvYzNSaFkydGxaQ2tnZTF4dUlDQWdJQ0FnSUNCaGMzTnBaMjVOWlhKblpWWmhiSFZsS0c5aWFtVmpkQ3dnYTJWNUxDQnpkR0ZqYTJWa0tUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2RtRnlJRzVsZDFaaGJIVmxJRDBnWTNWemRHOXRhWHBsY2x4dUlDQWdJQ0FnSUNBL0lHTjFjM1J2YldsNlpYSW9iMkpxVm1Gc2RXVXNJSE55WTFaaGJIVmxMQ0FvYTJWNUlDc2dKeWNwTENCdlltcGxZM1FzSUhOdmRYSmpaU3dnYzNSaFkyc3BYRzRnSUNBZ0lDQWdJRG9nZFc1a1pXWnBibVZrTzF4dVhHNGdJQ0FnSUNCMllYSWdhWE5EYjIxdGIyNGdQU0J1WlhkV1lXeDFaU0E5UFQwZ2RXNWtaV1pwYm1Wa08xeHVYRzRnSUNBZ0lDQnBaaUFvYVhORGIyMXRiMjRwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJR2x6UVhKeUlEMGdhWE5CY25KaGVTaHpjbU5XWVd4MVpTa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCcGMwSjFabVlnUFNBaGFYTkJjbklnSmlZZ2FYTkNkV1ptWlhJb2MzSmpWbUZzZFdVcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYVhOVWVYQmxaQ0E5SUNGcGMwRnljaUFtSmlBaGFYTkNkV1ptSUNZbUlHbHpWSGx3WldSQmNuSmhlU2h6Y21OV1lXeDFaU2s3WEc1Y2JpQWdJQ0FnSUNBZ2JtVjNWbUZzZFdVZ1BTQnpjbU5XWVd4MVpUdGNiaUFnSUNBZ0lDQWdhV1lnS0dselFYSnlJSHg4SUdselFuVm1aaUI4ZkNCcGMxUjVjR1ZrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dselFYSnlZWGtvYjJKcVZtRnNkV1VwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhkV1lXeDFaU0E5SUc5aWFsWmhiSFZsTzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hwYzBGeWNtRjVUR2xyWlU5aWFtVmpkQ2h2WW1wV1lXeDFaU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRzVsZDFaaGJIVmxJRDBnWTI5d2VVRnljbUY1S0c5aWFsWmhiSFZsS1R0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvYVhOQ2RXWm1LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBjME52YlcxdmJpQTlJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYm1WM1ZtRnNkV1VnUFNCamJHOXVaVUoxWm1abGNpaHpjbU5XWVd4MVpTd2dkSEoxWlNrN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0dselZIbHdaV1FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2x6UTI5dGJXOXVJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCdVpYZFdZV3gxWlNBOUlHTnNiMjVsVkhsd1pXUkJjbkpoZVNoemNtTldZV3gxWlN3Z2RISjFaU2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYm1WM1ZtRnNkV1VnUFNCYlhUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb2FYTlFiR0ZwYms5aWFtVmpkQ2h6Y21OV1lXeDFaU2tnZkh3Z2FYTkJjbWQxYldWdWRITW9jM0pqVm1Gc2RXVXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2JtVjNWbUZzZFdVZ1BTQnZZbXBXWVd4MVpUdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2FYTkJjbWQxYldWdWRITW9iMkpxVm1Gc2RXVXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnVaWGRXWVd4MVpTQTlJSFJ2VUd4aGFXNVBZbXBsWTNRb2IySnFWbUZzZFdVcE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNnaGFYTlBZbXBsWTNRb2IySnFWbUZzZFdVcElIeDhJR2x6Um5WdVkzUnBiMjRvYjJKcVZtRnNkV1VwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhkV1lXeDFaU0E5SUdsdWFYUkRiRzl1WlU5aWFtVmpkQ2h6Y21OV1lXeDFaU2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJR2x6UTI5dGJXOXVJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR2xtSUNocGMwTnZiVzF2YmlrZ2UxeHVJQ0FnSUNBZ0lDQXZMeUJTWldOMWNuTnBkbVZzZVNCdFpYSm5aU0J2WW1wbFkzUnpJR0Z1WkNCaGNuSmhlWE1nS0hOMWMyTmxjSFJwWW14bElIUnZJR05oYkd3Z2MzUmhZMnNnYkdsdGFYUnpLUzVjYmlBZ0lDQWdJQ0FnYzNSaFkyc3VjMlYwS0hOeVkxWmhiSFZsTENCdVpYZFdZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lHMWxjbWRsUm5WdVl5aHVaWGRXWVd4MVpTd2djM0pqVm1Gc2RXVXNJSE55WTBsdVpHVjRMQ0JqZFhOMGIyMXBlbVZ5TENCemRHRmpheWs3WEc0Z0lDQWdJQ0FnSUhOMFlXTnJXeWRrWld4bGRHVW5YU2h6Y21OV1lXeDFaU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JoYzNOcFoyNU5aWEpuWlZaaGJIVmxLRzlpYW1WamRDd2dhMlY1TENCdVpYZFdZV3gxWlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaGxJR0poYzJVZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRnYjJZZ1lGOHViblJvWUNCM2FHbGphQ0JrYjJWemJpZDBJR052WlhKalpTQmhjbWQxYldWdWRITXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUdGeWNtRjVJRlJvWlNCaGNuSmhlU0IwYnlCeGRXVnllUzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiaUJVYUdVZ2FXNWtaWGdnYjJZZ2RHaGxJR1ZzWlcxbGJuUWdkRzhnY21WMGRYSnVMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHNxZlNCU1pYUjFjbTV6SUhSb1pTQnVkR2dnWld4bGJXVnVkQ0J2WmlCZ1lYSnlZWGxnTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR0poYzJWT2RHZ29ZWEp5WVhrc0lHNHBJSHRjYmlBZ0lDQWdJSFpoY2lCc1pXNW5kR2dnUFNCaGNuSmhlUzVzWlc1bmRHZzdYRzRnSUNBZ0lDQnBaaUFvSVd4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J1SUNzOUlHNGdQQ0F3SUQ4Z2JHVnVaM1JvSURvZ01EdGNiaUFnSUNBZ0lISmxkSFZ5YmlCcGMwbHVaR1Y0S0c0c0lHeGxibWQwYUNrZ1B5QmhjbkpoZVZ0dVhTQTZJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdVZ1ltRnpaU0JwYlhCc1pXMWxiblJoZEdsdmJpQnZaaUJnWHk1dmNtUmxja0o1WUNCM2FYUm9iM1YwSUhCaGNtRnRJR2QxWVhKa2N5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWHhQWW1wbFkzUjlJR052Ykd4bFkzUnBiMjRnVkdobElHTnZiR3hsWTNScGIyNGdkRzhnYVhSbGNtRjBaU0J2ZG1WeUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1YlhYeFBZbXBsWTNSYlhYeHpkSEpwYm1kYlhYMGdhWFJsY21GMFpXVnpJRlJvWlNCcGRHVnlZWFJsWlhNZ2RHOGdjMjl5ZENCaWVTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjF0ZGZTQnZjbVJsY25NZ1ZHaGxJSE52Y25RZ2IzSmtaWEp6SUc5bUlHQnBkR1Z5WVhSbFpYTmdMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lITnZjblJsWkNCaGNuSmhlUzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmlZWE5sVDNKa1pYSkNlU2hqYjJ4c1pXTjBhVzl1TENCcGRHVnlZWFJsWlhNc0lHOXlaR1Z5Y3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLR2wwWlhKaGRHVmxjeTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnYVhSbGNtRjBaV1Z6SUQwZ1lYSnlZWGxOWVhBb2FYUmxjbUYwWldWekxDQm1kVzVqZEdsdmJpaHBkR1Z5WVhSbFpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaHBjMEZ5Y21GNUtHbDBaWEpoZEdWbEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaMWJtTjBhVzl1S0haaGJIVmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmlZWE5sUjJWMEtIWmhiSFZsTENCcGRHVnlZWFJsWlM1c1pXNW5kR2dnUFQwOUlERWdQeUJwZEdWeVlYUmxaVnN3WFNBNklHbDBaWEpoZEdWbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR2wwWlhKaGRHVmxPMXh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUdsMFpYSmhkR1ZsY3lBOUlGdHBaR1Z1ZEdsMGVWMDdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJSFpoY2lCcGJtUmxlQ0E5SUMweE8xeHVJQ0FnSUNBZ2FYUmxjbUYwWldWeklEMGdZWEp5WVhsTllYQW9hWFJsY21GMFpXVnpMQ0JpWVhObFZXNWhjbmtvWjJWMFNYUmxjbUYwWldVb0tTa3BPMXh1WEc0Z0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ1ltRnpaVTFoY0NoamIyeHNaV04wYVc5dUxDQm1kVzVqZEdsdmJpaDJZV3gxWlN3Z2EyVjVMQ0JqYjJ4c1pXTjBhVzl1S1NCN1hHNGdJQ0FnSUNBZ0lIWmhjaUJqY21sMFpYSnBZU0E5SUdGeWNtRjVUV0Z3S0dsMFpYSmhkR1ZsY3l3Z1puVnVZM1JwYjI0b2FYUmxjbUYwWldVcElIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdhWFJsY21GMFpXVW9kbUZzZFdVcE8xeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnSjJOeWFYUmxjbWxoSnpvZ1kzSnBkR1Z5YVdFc0lDZHBibVJsZUNjNklDc3JhVzVrWlhnc0lDZDJZV3gxWlNjNklIWmhiSFZsSUgwN1hHNGdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdjbVYwZFhKdUlHSmhjMlZUYjNKMFFua29jbVZ6ZFd4MExDQm1kVzVqZEdsdmJpaHZZbXBsWTNRc0lHOTBhR1Z5S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCamIyMXdZWEpsVFhWc2RHbHdiR1VvYjJKcVpXTjBMQ0J2ZEdobGNpd2diM0prWlhKektUdGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvWlNCaVlYTmxJR2x0Y0d4bGJXVnVkR0YwYVc5dUlHOW1JR0JmTG5CcFkydGdJSGRwZEdodmRYUWdjM1Z3Y0c5eWRDQm1iM0lnYVc1a2FYWnBaSFZoYkZ4dUlDQWdJQ0FxSUhCeWIzQmxjblI1SUdsa1pXNTBhV1pwWlhKekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjJKcVpXTjBJRlJvWlNCemIzVnlZMlVnYjJKcVpXTjBMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1blcxMTlJSEJoZEdoeklGUm9aU0J3Y205d1pYSjBlU0J3WVhSb2N5QjBieUJ3YVdOckxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdFBZbXBsWTNSOUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCdlltcGxZM1F1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZbUZ6WlZCcFkyc29iMkpxWldOMExDQndZWFJvY3lrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdKaGMyVlFhV05yUW5rb2IySnFaV04wTENCd1lYUm9jeXdnWm5WdVkzUnBiMjRvZG1Gc2RXVXNJSEJoZEdncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHaGhjMGx1S0c5aWFtVmpkQ3dnY0dGMGFDazdYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdVZ1ltRnpaU0JwYlhCc1pXMWxiblJoZEdsdmJpQnZaaUFnWUY4dWNHbGphMEo1WUNCM2FYUm9iM1YwSUhOMWNIQnZjblFnWm05eUlHbDBaWEpoZEdWbElITm9iM0owYUdGdVpITXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGxZM1FnVkdobElITnZkWEpqWlNCdlltcGxZM1F1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZGJYWDBnY0dGMGFITWdWR2hsSUhCeWIzQmxjblI1SUhCaGRHaHpJSFJ2SUhCcFkyc3VYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdjSEpsWkdsallYUmxJRlJvWlNCbWRXNWpkR2x2YmlCcGJuWnZhMlZrSUhCbGNpQndjbTl3WlhKMGVTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdUMkpxWldOMGZTQlNaWFIxY201eklIUm9aU0J1WlhjZ2IySnFaV04wTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR0poYzJWUWFXTnJRbmtvYjJKcVpXTjBMQ0J3WVhSb2N5d2djSEpsWkdsallYUmxLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2FXNWtaWGdnUFNBdE1TeGNiaUFnSUNBZ0lDQWdJQ0JzWlc1bmRHZ2dQU0J3WVhSb2N5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lDQWdjbVZ6ZFd4MElEMGdlMzA3WEc1Y2JpQWdJQ0FnSUhkb2FXeGxJQ2dySzJsdVpHVjRJRHdnYkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQndZWFJvSUQwZ2NHRjBhSE5iYVc1a1pYaGRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1VnUFNCaVlYTmxSMlYwS0c5aWFtVmpkQ3dnY0dGMGFDazdYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tIQnlaV1JwWTJGMFpTaDJZV3gxWlN3Z2NHRjBhQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQmlZWE5sVTJWMEtISmxjM1ZzZEN3Z1kyRnpkRkJoZEdnb2NHRjBhQ3dnYjJKcVpXTjBLU3dnZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFRWdjM0JsWTJsaGJHbDZaV1FnZG1WeWMybHZiaUJ2WmlCZ1ltRnpaVkJ5YjNCbGNuUjVZQ0IzYUdsamFDQnpkWEJ3YjNKMGN5QmtaV1Z3SUhCaGRHaHpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZkhOMGNtbHVaMzBnY0dGMGFDQlVhR1VnY0dGMGFDQnZaaUIwYUdVZ2NISnZjR1Z5ZEhrZ2RHOGdaMlYwTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0R2RXNWpkR2x2Ym4wZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUdGalkyVnpjMjl5SUdaMWJtTjBhVzl1TGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR0poYzJWUWNtOXdaWEowZVVSbFpYQW9jR0YwYUNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdaMWJtTjBhVzl1S0c5aWFtVmpkQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWW1GelpVZGxkQ2h2WW1wbFkzUXNJSEJoZEdncE8xeHVJQ0FnSUNBZ2ZUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR1VnWW1GelpTQnBiWEJzWlcxbGJuUmhkR2x2YmlCdlppQmdYeTV3ZFd4c1FXeHNRbmxnSUhkcGRHaHZkWFFnYzNWd2NHOXlkQ0JtYjNJZ2FYUmxjbUYwWldWY2JpQWdJQ0FnS2lCemFHOXlkR2hoYm1SekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0JoY25KaGVTQlVhR1VnWVhKeVlYa2dkRzhnYlc5a2FXWjVMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlIWmhiSFZsY3lCVWFHVWdkbUZzZFdWeklIUnZJSEpsYlc5MlpTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQmJhWFJsY21GMFpXVmRJRlJvWlNCcGRHVnlZWFJsWlNCcGJuWnZhMlZrSUhCbGNpQmxiR1Z0Wlc1MExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlGdGpiMjF3WVhKaGRHOXlYU0JVYUdVZ1kyOXRjR0Z5WVhSdmNpQnBiblp2YTJWa0lIQmxjaUJsYkdWdFpXNTBMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QmdZWEp5WVhsZ0xseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdKaGMyVlFkV3hzUVd4c0tHRnljbUY1TENCMllXeDFaWE1zSUdsMFpYSmhkR1ZsTENCamIyMXdZWEpoZEc5eUtTQjdYRzRnSUNBZ0lDQjJZWElnYVc1a1pYaFBaaUE5SUdOdmJYQmhjbUYwYjNJZ1B5QmlZWE5sU1c1a1pYaFBabGRwZEdnZ09pQmlZWE5sU1c1a1pYaFBaaXhjYmlBZ0lDQWdJQ0FnSUNCcGJtUmxlQ0E5SUMweExGeHVJQ0FnSUNBZ0lDQWdJR3hsYm1kMGFDQTlJSFpoYkhWbGN5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lDQWdjMlZsYmlBOUlHRnljbUY1TzF4dVhHNGdJQ0FnSUNCcFppQW9ZWEp5WVhrZ1BUMDlJSFpoYkhWbGN5a2dlMXh1SUNBZ0lDQWdJQ0IyWVd4MVpYTWdQU0JqYjNCNVFYSnlZWGtvZG1Gc2RXVnpLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR2xtSUNocGRHVnlZWFJsWlNrZ2UxeHVJQ0FnSUNBZ0lDQnpaV1Z1SUQwZ1lYSnlZWGxOWVhBb1lYSnlZWGtzSUdKaGMyVlZibUZ5ZVNocGRHVnlZWFJsWlNrcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2QyaHBiR1VnS0NzcmFXNWtaWGdnUENCc1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJR1p5YjIxSmJtUmxlQ0E5SURBc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVd4MVpTQTlJSFpoYkhWbGMxdHBibVJsZUYwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjIxd2RYUmxaQ0E5SUdsMFpYSmhkR1ZsSUQ4Z2FYUmxjbUYwWldVb2RtRnNkV1VwSURvZ2RtRnNkV1U3WEc1Y2JpQWdJQ0FnSUNBZ2QyaHBiR1VnS0NobWNtOXRTVzVrWlhnZ1BTQnBibVJsZUU5bUtITmxaVzRzSUdOdmJYQjFkR1ZrTENCbWNtOXRTVzVrWlhnc0lHTnZiWEJoY21GMGIzSXBLU0ErSUMweEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tITmxaVzRnSVQwOUlHRnljbUY1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6Y0d4cFkyVXVZMkZzYkNoelpXVnVMQ0JtY205dFNXNWtaWGdzSURFcE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCemNHeHBZMlV1WTJGc2JDaGhjbkpoZVN3Z1puSnZiVWx1WkdWNExDQXhLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJR0Z5Y21GNU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9aU0JpWVhObElHbHRjR3hsYldWdWRHRjBhVzl1SUc5bUlHQmZMbkIxYkd4QmRHQWdkMmwwYUc5MWRDQnpkWEJ3YjNKMElHWnZjaUJwYm1ScGRtbGtkV0ZzWEc0Z0lDQWdJQ29nYVc1a1pYaGxjeUJ2Y2lCallYQjBkWEpwYm1jZ2RHaGxJSEpsYlc5MlpXUWdaV3hsYldWdWRITXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUdGeWNtRjVJRlJvWlNCaGNuSmhlU0IwYnlCdGIyUnBabmt1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSmJYWDBnYVc1a1pYaGxjeUJVYUdVZ2FXNWtaWGhsY3lCdlppQmxiR1Z0Wlc1MGN5QjBieUJ5WlcxdmRtVXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMEZ5Y21GNWZTQlNaWFIxY201eklHQmhjbkpoZVdBdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnWW1GelpWQjFiR3hCZENoaGNuSmhlU3dnYVc1a1pYaGxjeWtnZTF4dUlDQWdJQ0FnZG1GeUlHeGxibWQwYUNBOUlHRnljbUY1SUQ4Z2FXNWtaWGhsY3k1c1pXNW5kR2dnT2lBd0xGeHVJQ0FnSUNBZ0lDQWdJR3hoYzNSSmJtUmxlQ0E5SUd4bGJtZDBhQ0F0SURFN1hHNWNiaUFnSUNBZ0lIZG9hV3hsSUNoc1pXNW5kR2d0TFNrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnYVc1a1pYZ2dQU0JwYm1SbGVHVnpXMnhsYm1kMGFGMDdYRzRnSUNBZ0lDQWdJR2xtSUNoc1pXNW5kR2dnUFQwZ2JHRnpkRWx1WkdWNElIeDhJR2x1WkdWNElDRTlQU0J3Y21WMmFXOTFjeWtnZTF4dUlDQWdJQ0FnSUNBZ0lIWmhjaUJ3Y21WMmFXOTFjeUE5SUdsdVpHVjRPMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaHBjMGx1WkdWNEtHbHVaR1Y0S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNCc2FXTmxMbU5oYkd3b1lYSnlZWGtzSUdsdVpHVjRMQ0F4S1R0Y2JpQWdJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWW1GelpWVnVjMlYwS0dGeWNtRjVMQ0JwYm1SbGVDazdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnWVhKeVlYazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUdKaGMyVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2IyWWdZRjh1Y21GdVpHOXRZQ0IzYVhSb2IzVjBJSE4xY0hCdmNuUWdabTl5SUhKbGRIVnlibWx1WjF4dUlDQWdJQ0FxSUdac2IyRjBhVzVuTFhCdmFXNTBJRzUxYldKbGNuTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCc2IzZGxjaUJVYUdVZ2JHOTNaWElnWW05MWJtUXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIVndjR1Z5SUZSb1pTQjFjSEJsY2lCaWIzVnVaQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3Ym5WdFltVnlmU0JTWlhSMWNtNXpJSFJvWlNCeVlXNWtiMjBnYm5WdFltVnlMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHSmhjMlZTWVc1a2IyMG9iRzkzWlhJc0lIVndjR1Z5S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYkc5M1pYSWdLeUJ1WVhScGRtVkdiRzl2Y2lodVlYUnBkbVZTWVc1a2IyMG9LU0FxSUNoMWNIQmxjaUF0SUd4dmQyVnlJQ3NnTVNrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9aU0JpWVhObElHbHRjR3hsYldWdWRHRjBhVzl1SUc5bUlHQmZMbkpoYm1kbFlDQmhibVFnWUY4dWNtRnVaMlZTYVdkb2RHQWdkMmhwWTJnZ1pHOWxjMjRuZEZ4dUlDQWdJQ0FxSUdOdlpYSmpaU0JoY21kMWJXVnVkSE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnpkR0Z5ZENCVWFHVWdjM1JoY25RZ2IyWWdkR2hsSUhKaGJtZGxMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmxibVFnVkdobElHVnVaQ0J2WmlCMGFHVWdjbUZ1WjJVdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUhOMFpYQWdWR2hsSUhaaGJIVmxJSFJ2SUdsdVkzSmxiV1Z1ZENCdmNpQmtaV055WlcxbGJuUWdZbmt1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0JiWm5KdmJWSnBaMmgwWFNCVGNHVmphV1o1SUdsMFpYSmhkR2x1WnlCbWNtOXRJSEpwWjJoMElIUnZJR3hsWm5RdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQnlZVzVuWlNCdlppQnVkVzFpWlhKekxseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdKaGMyVlNZVzVuWlNoemRHRnlkQ3dnWlc1a0xDQnpkR1Z3TENCbWNtOXRVbWxuYUhRcElIdGNiaUFnSUNBZ0lIWmhjaUJwYm1SbGVDQTlJQzB4TEZ4dUlDQWdJQ0FnSUNBZ0lHeGxibWQwYUNBOUlHNWhkR2wyWlUxaGVDaHVZWFJwZG1WRFpXbHNLQ2hsYm1RZ0xTQnpkR0Z5ZENrZ0x5QW9jM1JsY0NCOGZDQXhLU2tzSURBcExGeHVJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RDQTlJRUZ5Y21GNUtHeGxibWQwYUNrN1hHNWNiaUFnSUNBZ0lIZG9hV3hsSUNoc1pXNW5kR2d0TFNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWE4xYkhSYlpuSnZiVkpwWjJoMElEOGdiR1Z1WjNSb0lEb2dLeXRwYm1SbGVGMGdQU0J6ZEdGeWREdGNiaUFnSUNBZ0lDQWdjM1JoY25RZ0t6MGdjM1JsY0R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUdKaGMyVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2IyWWdZRjh1Y21Wd1pXRjBZQ0IzYUdsamFDQmtiMlZ6YmlkMElHTnZaWEpqWlNCaGNtZDFiV1Z1ZEhNdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J6ZEhKcGJtY2dWR2hsSUhOMGNtbHVaeUIwYnlCeVpYQmxZWFF1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRzRnVkdobElHNTFiV0psY2lCdlppQjBhVzFsY3lCMGJ5QnlaWEJsWVhRZ2RHaGxJSE4wY21sdVp5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdjM1J5YVc1bmZTQlNaWFIxY201eklIUm9aU0J5WlhCbFlYUmxaQ0J6ZEhKcGJtY3VYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1ltRnpaVkpsY0dWaGRDaHpkSEpwYm1jc0lHNHBJSHRjYmlBZ0lDQWdJSFpoY2lCeVpYTjFiSFFnUFNBbkp6dGNiaUFnSUNBZ0lHbG1JQ2doYzNSeWFXNW5JSHg4SUc0Z1BDQXhJSHg4SUc0Z1BpQk5RVmhmVTBGR1JWOUpUbFJGUjBWU0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNBdkx5Qk1aWFpsY21GblpTQjBhR1VnWlhod2IyNWxiblJwWVhScGIyNGdZbmtnYzNGMVlYSnBibWNnWVd4bmIzSnBkR2h0SUdadmNpQmhJR1poYzNSbGNpQnlaWEJsWVhRdVhHNGdJQ0FnSUNBdkx5QlRaV1VnYUhSMGNITTZMeTlsYmk1M2FXdHBjR1ZrYVdFdWIzSm5MM2RwYTJrdlJYaHdiMjVsYm5ScFlYUnBiMjVmWW5sZmMzRjFZWEpwYm1jZ1ptOXlJRzF2Y21VZ1pHVjBZV2xzY3k1Y2JpQWdJQ0FnSUdSdklIdGNiaUFnSUNBZ0lDQWdhV1lnS0c0Z0pTQXlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVnpkV3gwSUNzOUlITjBjbWx1Wnp0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnVJRDBnYm1GMGFYWmxSbXh2YjNJb2JpQXZJRElwTzF4dUlDQWdJQ0FnSUNCcFppQW9iaWtnZTF4dUlDQWdJQ0FnSUNBZ0lITjBjbWx1WnlBclBTQnpkSEpwYm1jN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMGdkMmhwYkdVZ0tHNHBPMXh1WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9aU0JpWVhObElHbHRjR3hsYldWdWRHRjBhVzl1SUc5bUlHQmZMbkpsYzNSZ0lIZG9hV05vSUdSdlpYTnVKM1FnZG1Gc2FXUmhkR1VnYjNJZ1kyOWxjbU5sSUdGeVozVnRaVzUwY3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnWm5WdVl5QlVhR1VnWm5WdVkzUnBiMjRnZEc4Z1lYQndiSGtnWVNCeVpYTjBJSEJoY21GdFpYUmxjaUIwYnk1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzNOMFlYSjBQV1oxYm1NdWJHVnVaM1JvTFRGZElGUm9aU0J6ZEdGeWRDQndiM05wZEdsdmJpQnZaaUIwYUdVZ2NtVnpkQ0J3WVhKaGJXVjBaWEl1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBaMWJtTjBhVzl1ZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnWm5WdVkzUnBiMjR1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZbUZ6WlZKbGMzUW9ablZ1WXl3Z2MzUmhjblFwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ6WlhSVWIxTjBjbWx1WnlodmRtVnlVbVZ6ZENobWRXNWpMQ0J6ZEdGeWRDd2dhV1JsYm5ScGRIa3BMQ0JtZFc1aklDc2dKeWNwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQmlZWE5sSUdsdGNHeGxiV1Z1ZEdGMGFXOXVJRzltSUdCZkxuTmhiWEJzWldBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDhUMkpxWldOMGZTQmpiMnhzWldOMGFXOXVJRlJvWlNCamIyeHNaV04wYVc5dUlIUnZJSE5oYlhCc1pTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdLbjBnVW1WMGRYSnVjeUIwYUdVZ2NtRnVaRzl0SUdWc1pXMWxiblF1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZbUZ6WlZOaGJYQnNaU2hqYjJ4c1pXTjBhVzl1S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWVhKeVlYbFRZVzF3YkdVb2RtRnNkV1Z6S0dOdmJHeGxZM1JwYjI0cEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR1VnWW1GelpTQnBiWEJzWlcxbGJuUmhkR2x2YmlCdlppQmdYeTV6WVcxd2JHVlRhWHBsWUNCM2FYUm9iM1YwSUhCaGNtRnRJR2QxWVhKa2N5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWHhQWW1wbFkzUjlJR052Ykd4bFkzUnBiMjRnVkdobElHTnZiR3hsWTNScGIyNGdkRzhnYzJGdGNHeGxMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnVJRlJvWlNCdWRXMWlaWElnYjJZZ1pXeGxiV1Z1ZEhNZ2RHOGdjMkZ0Y0d4bExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdEJjbkpoZVgwZ1VtVjBkWEp1Y3lCMGFHVWdjbUZ1Wkc5dElHVnNaVzFsYm5SekxseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdKaGMyVlRZVzF3YkdWVGFYcGxLR052Ykd4bFkzUnBiMjRzSUc0cElIdGNiaUFnSUNBZ0lIWmhjaUJoY25KaGVTQTlJSFpoYkhWbGN5aGpiMnhzWldOMGFXOXVLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnphSFZtWm14bFUyVnNaaWhoY25KaGVTd2dZbUZ6WlVOc1lXMXdLRzRzSURBc0lHRnljbUY1TG14bGJtZDBhQ2twTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQmlZWE5sSUdsdGNHeGxiV1Z1ZEdGMGFXOXVJRzltSUdCZkxuTmxkR0F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZZbXBsWTNRZ1ZHaGxJRzlpYW1WamRDQjBieUJ0YjJScFpua3VYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVh4emRISnBibWQ5SUhCaGRHZ2dWR2hsSUhCaGRHZ2diMllnZEdobElIQnliM0JsY25SNUlIUnZJSE5sZEM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlIWmhiSFZsSUZSb1pTQjJZV3gxWlNCMGJ5QnpaWFF1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnVzJOMWMzUnZiV2w2WlhKZElGUm9aU0JtZFc1amRHbHZiaUIwYnlCamRYTjBiMjFwZW1VZ2NHRjBhQ0JqY21WaGRHbHZiaTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3VDJKcVpXTjBmU0JTWlhSMWNtNXpJR0J2WW1wbFkzUmdMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHSmhjMlZUWlhRb2IySnFaV04wTENCd1lYUm9MQ0IyWVd4MVpTd2dZM1Z6ZEc5dGFYcGxjaWtnZTF4dUlDQWdJQ0FnYVdZZ0tDRnBjMDlpYW1WamRDaHZZbXBsWTNRcEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnZZbXBsWTNRN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCd1lYUm9JRDBnWTJGemRGQmhkR2dvY0dGMGFDd2diMkpxWldOMEtUdGNibHh1SUNBZ0lDQWdkbUZ5SUdsdVpHVjRJRDBnTFRFc1hHNGdJQ0FnSUNBZ0lDQWdiR1Z1WjNSb0lEMGdjR0YwYUM1c1pXNW5kR2dzWEc0Z0lDQWdJQ0FnSUNBZ2JHRnpkRWx1WkdWNElEMGdiR1Z1WjNSb0lDMGdNU3hjYmlBZ0lDQWdJQ0FnSUNCdVpYTjBaV1FnUFNCdlltcGxZM1E3WEc1Y2JpQWdJQ0FnSUhkb2FXeGxJQ2h1WlhOMFpXUWdJVDBnYm5Wc2JDQW1KaUFySzJsdVpHVjRJRHdnYkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQnJaWGtnUFNCMGIwdGxlU2h3WVhSb1cybHVaR1Y0WFNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhkV1lXeDFaU0E5SUhaaGJIVmxPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaHJaWGtnUFQwOUlDZGZYM0J5YjNSdlgxOG5JSHg4SUd0bGVTQTlQVDBnSjJOdmJuTjBjblZqZEc5eUp5QjhmQ0JyWlhrZ1BUMDlJQ2R3Y205MGIzUjVjR1VuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHOWlhbVZqZER0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJR2xtSUNocGJtUmxlQ0FoUFNCc1lYTjBTVzVrWlhncElIdGNiaUFnSUNBZ0lDQWdJQ0IyWVhJZ2IySnFWbUZzZFdVZ1BTQnVaWE4wWldSYmEyVjVYVHRjYmlBZ0lDQWdJQ0FnSUNCdVpYZFdZV3gxWlNBOUlHTjFjM1J2YldsNlpYSWdQeUJqZFhOMGIyMXBlbVZ5S0c5aWFsWmhiSFZsTENCclpYa3NJRzVsYzNSbFpDa2dPaUIxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLRzVsZDFaaGJIVmxJRDA5UFNCMWJtUmxabWx1WldRcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUc1bGQxWmhiSFZsSUQwZ2FYTlBZbXBsWTNRb2IySnFWbUZzZFdVcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z2IySnFWbUZzZFdWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnT2lBb2FYTkpibVJsZUNod1lYUm9XMmx1WkdWNElDc2dNVjBwSUQ4Z1cxMGdPaUI3ZlNrN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdGemMybG5ibFpoYkhWbEtHNWxjM1JsWkN3Z2EyVjVMQ0J1WlhkV1lXeDFaU2s3WEc0Z0lDQWdJQ0FnSUc1bGMzUmxaQ0E5SUc1bGMzUmxaRnRyWlhsZE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUc5aWFtVmpkRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdVZ1ltRnpaU0JwYlhCc1pXMWxiblJoZEdsdmJpQnZaaUJnYzJWMFJHRjBZV0FnZDJsMGFHOTFkQ0J6ZFhCd2IzSjBJR1p2Y2lCb2IzUWdiRzl2Y0NCemFHOXlkR2x1Wnk1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnWm5WdVl5QlVhR1VnWm5WdVkzUnBiMjRnZEc4Z1lYTnpiMk5wWVhSbElHMWxkR0ZrWVhSaElIZHBkR2d1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCa1lYUmhJRlJvWlNCdFpYUmhaR0YwWVM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1JuVnVZM1JwYjI1OUlGSmxkSFZ5Ym5NZ1lHWjFibU5nTGx4dUlDQWdJQ0FxTDF4dUlDQWdJSFpoY2lCaVlYTmxVMlYwUkdGMFlTQTlJQ0Z0WlhSaFRXRndJRDhnYVdSbGJuUnBkSGtnT2lCbWRXNWpkR2x2YmlobWRXNWpMQ0JrWVhSaEtTQjdYRzRnSUNBZ0lDQnRaWFJoVFdGd0xuTmxkQ2htZFc1akxDQmtZWFJoS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJtZFc1ak8xeHVJQ0FnSUgwN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR1VnWW1GelpTQnBiWEJzWlcxbGJuUmhkR2x2YmlCdlppQmdjMlYwVkc5VGRISnBibWRnSUhkcGRHaHZkWFFnYzNWd2NHOXlkQ0JtYjNJZ2FHOTBJR3h2YjNBZ2MyaHZjblJwYm1jdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUdaMWJtTWdWR2hsSUdaMWJtTjBhVzl1SUhSdklHMXZaR2xtZVM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCemRISnBibWNnVkdobElHQjBiMU4wY21sdVoyQWdjbVZ6ZFd4MExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdEdkVzVqZEdsdmJuMGdVbVYwZFhKdWN5QmdablZ1WTJBdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnZG1GeUlHSmhjMlZUWlhSVWIxTjBjbWx1WnlBOUlDRmtaV1pwYm1WUWNtOXdaWEowZVNBL0lHbGtaVzUwYVhSNUlEb2dablZ1WTNScGIyNG9ablZ1WXl3Z2MzUnlhVzVuS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWkdWbWFXNWxVSEp2Y0dWeWRIa29ablZ1WXl3Z0ozUnZVM1J5YVc1bkp5d2dlMXh1SUNBZ0lDQWdJQ0FuWTI5dVptbG5kWEpoWW14bEp6b2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ0oyVnVkVzFsY21GaWJHVW5PaUJtWVd4elpTeGNiaUFnSUNBZ0lDQWdKM1poYkhWbEp6b2dZMjl1YzNSaGJuUW9jM1J5YVc1bktTeGNiaUFnSUNBZ0lDQWdKM2R5YVhSaFlteGxKem9nZEhKMVpWeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvWlNCaVlYTmxJR2x0Y0d4bGJXVnVkR0YwYVc5dUlHOW1JR0JmTG5Ob2RXWm1iR1ZnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZFOWlhbVZqZEgwZ1kyOXNiR1ZqZEdsdmJpQlVhR1VnWTI5c2JHVmpkR2x2YmlCMGJ5QnphSFZtWm14bExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdEJjbkpoZVgwZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUhOb2RXWm1iR1ZrSUdGeWNtRjVMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHSmhjMlZUYUhWbVpteGxLR052Ykd4bFkzUnBiMjRwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ6YUhWbVpteGxVMlZzWmloMllXeDFaWE1vWTI5c2JHVmpkR2x2YmlrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9aU0JpWVhObElHbHRjR3hsYldWdWRHRjBhVzl1SUc5bUlHQmZMbk5zYVdObFlDQjNhWFJvYjNWMElHRnVJR2wwWlhKaGRHVmxJR05oYkd3Z1ozVmhjbVF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlHRnljbUY1SUZSb1pTQmhjbkpoZVNCMGJ5QnpiR2xqWlM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzNOMFlYSjBQVEJkSUZSb1pTQnpkR0Z5ZENCd2IzTnBkR2x2Ymk1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzJWdVpEMWhjbkpoZVM1c1pXNW5kR2hkSUZSb1pTQmxibVFnY0c5emFYUnBiMjR1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmU0JTWlhSMWNtNXpJSFJvWlNCemJHbGpaU0J2WmlCZ1lYSnlZWGxnTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR0poYzJWVGJHbGpaU2hoY25KaGVTd2djM1JoY25Rc0lHVnVaQ2tnZTF4dUlDQWdJQ0FnZG1GeUlHbHVaR1Y0SUQwZ0xURXNYRzRnSUNBZ0lDQWdJQ0FnYkdWdVozUm9JRDBnWVhKeVlYa3ViR1Z1WjNSb08xeHVYRzRnSUNBZ0lDQnBaaUFvYzNSaGNuUWdQQ0F3S1NCN1hHNGdJQ0FnSUNBZ0lITjBZWEowSUQwZ0xYTjBZWEowSUQ0Z2JHVnVaM1JvSUQ4Z01DQTZJQ2hzWlc1bmRHZ2dLeUJ6ZEdGeWRDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQmxibVFnUFNCbGJtUWdQaUJzWlc1bmRHZ2dQeUJzWlc1bmRHZ2dPaUJsYm1RN1hHNGdJQ0FnSUNCcFppQW9aVzVrSUR3Z01Da2dlMXh1SUNBZ0lDQWdJQ0JsYm1RZ0t6MGdiR1Z1WjNSb08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2JHVnVaM1JvSUQwZ2MzUmhjblFnUGlCbGJtUWdQeUF3SURvZ0tDaGxibVFnTFNCemRHRnlkQ2tnUGo0K0lEQXBPMXh1SUNBZ0lDQWdjM1JoY25RZ1BqNCtQU0F3TzF4dVhHNGdJQ0FnSUNCMllYSWdjbVZ6ZFd4MElEMGdRWEp5WVhrb2JHVnVaM1JvS1R0Y2JpQWdJQ0FnSUhkb2FXeGxJQ2dySzJsdVpHVjRJRHdnYkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGMzVnNkRnRwYm1SbGVGMGdQU0JoY25KaGVWdHBibVJsZUNBcklITjBZWEowWFR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUdKaGMyVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2IyWWdZRjh1YzI5dFpXQWdkMmwwYUc5MWRDQnpkWEJ3YjNKMElHWnZjaUJwZEdWeVlYUmxaU0J6YUc5eWRHaGhibVJ6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZFOWlhbVZqZEgwZ1kyOXNiR1ZqZEdsdmJpQlVhR1VnWTI5c2JHVmpkR2x2YmlCMGJ5QnBkR1Z5WVhSbElHOTJaWEl1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnY0hKbFpHbGpZWFJsSUZSb1pTQm1kVzVqZEdsdmJpQnBiblp2YTJWa0lIQmxjaUJwZEdWeVlYUnBiMjR1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTJKdmIyeGxZVzU5SUZKbGRIVnlibk1nWUhSeWRXVmdJR2xtSUdGdWVTQmxiR1Z0Wlc1MElIQmhjM05sY3lCMGFHVWdjSEpsWkdsallYUmxJR05vWldOckxGeHVJQ0FnSUNBcUlDQmxiSE5sSUdCbVlXeHpaV0F1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZbUZ6WlZOdmJXVW9ZMjlzYkdWamRHbHZiaXdnY0hKbFpHbGpZWFJsS1NCN1hHNGdJQ0FnSUNCMllYSWdjbVZ6ZFd4ME8xeHVYRzRnSUNBZ0lDQmlZWE5sUldGamFDaGpiMnhzWldOMGFXOXVMQ0JtZFc1amRHbHZiaWgyWVd4MVpTd2dhVzVrWlhnc0lHTnZiR3hsWTNScGIyNHBJSHRjYmlBZ0lDQWdJQ0FnY21WemRXeDBJRDBnY0hKbFpHbGpZWFJsS0haaGJIVmxMQ0JwYm1SbGVDd2dZMjlzYkdWamRHbHZiaWs3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUFoY21WemRXeDBPMXh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdJU0Z5WlhOMWJIUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUdKaGMyVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2IyWWdZRjh1YzI5eWRHVmtTVzVrWlhoZ0lHRnVaQ0JnWHk1emIzSjBaV1JNWVhOMFNXNWtaWGhnSUhkb2FXTm9YRzRnSUNBZ0lDb2djR1Z5Wm05eWJYTWdZU0JpYVc1aGNua2djMlZoY21Ob0lHOW1JR0JoY25KaGVXQWdkRzhnWkdWMFpYSnRhVzVsSUhSb1pTQnBibVJsZUNCaGRDQjNhR2xqYUNCZ2RtRnNkV1ZnWEc0Z0lDQWdJQ29nYzJodmRXeGtJR0psSUdsdWMyVnlkR1ZrSUdsdWRHOGdZR0Z5Y21GNVlDQnBiaUJ2Y21SbGNpQjBieUJ0WVdsdWRHRnBiaUJwZEhNZ2MyOXlkQ0J2Y21SbGNpNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnWVhKeVlYa2dWR2hsSUhOdmNuUmxaQ0JoY25KaGVTQjBieUJwYm5Od1pXTjBMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdLbjBnZG1Gc2RXVWdWR2hsSUhaaGJIVmxJSFJ2SUdWMllXeDFZWFJsTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnVzNKbGRFaHBaMmhsYzNSZElGTndaV05wWm5rZ2NtVjBkWEp1YVc1bklIUm9aU0JvYVdkb1pYTjBJSEYxWVd4cFptbGxaQ0JwYm1SbGVDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdiblZ0WW1WeWZTQlNaWFIxY201eklIUm9aU0JwYm1SbGVDQmhkQ0IzYUdsamFDQmdkbUZzZFdWZ0lITm9iM1ZzWkNCaVpTQnBibk5sY25SbFpGeHVJQ0FnSUNBcUlDQnBiblJ2SUdCaGNuSmhlV0F1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZbUZ6WlZOdmNuUmxaRWx1WkdWNEtHRnljbUY1TENCMllXeDFaU3dnY21WMFNHbG5hR1Z6ZENrZ2UxeHVJQ0FnSUNBZ2RtRnlJR3h2ZHlBOUlEQXNYRzRnSUNBZ0lDQWdJQ0FnYUdsbmFDQTlJR0Z5Y21GNUlEMDlJRzUxYkd3Z1B5QnNiM2NnT2lCaGNuSmhlUzVzWlc1bmRHZzdYRzVjYmlBZ0lDQWdJR2xtSUNoMGVYQmxiMllnZG1Gc2RXVWdQVDBnSjI1MWJXSmxjaWNnSmlZZ2RtRnNkV1VnUFQwOUlIWmhiSFZsSUNZbUlHaHBaMmdnUEQwZ1NFRk1SbDlOUVZoZlFWSlNRVmxmVEVWT1IxUklLU0I3WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2hzYjNjZ1BDQm9hV2RvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdkbUZ5SUcxcFpDQTlJQ2hzYjNjZ0t5Qm9hV2RvS1NBK1BqNGdNU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl0Y0hWMFpXUWdQU0JoY25KaGVWdHRhV1JkTzF4dVhHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dOdmJYQjFkR1ZrSUNFOVBTQnVkV3hzSUNZbUlDRnBjMU41YldKdmJDaGpiMjF3ZFhSbFpDa2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdLSEpsZEVocFoyaGxjM1FnUHlBb1kyOXRjSFYwWldRZ1BEMGdkbUZzZFdVcElEb2dLR052YlhCMWRHVmtJRHdnZG1Gc2RXVXBLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdiRzkzSUQwZ2JXbGtJQ3NnTVR0Y2JpQWdJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYUdsbmFDQTlJRzFwWkR0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR2hwWjJnN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnWW1GelpWTnZjblJsWkVsdVpHVjRRbmtvWVhKeVlYa3NJSFpoYkhWbExDQnBaR1Z1ZEdsMGVTd2djbVYwU0dsbmFHVnpkQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdobElHSmhjMlVnYVcxd2JHVnRaVzUwWVhScGIyNGdiMllnWUY4dWMyOXlkR1ZrU1c1a1pYaENlV0FnWVc1a0lHQmZMbk52Y25SbFpFeGhjM1JKYm1SbGVFSjVZRnh1SUNBZ0lDQXFJSGRvYVdOb0lHbHVkbTlyWlhNZ1lHbDBaWEpoZEdWbFlDQm1iM0lnWUhaaGJIVmxZQ0JoYm1RZ1pXRmphQ0JsYkdWdFpXNTBJRzltSUdCaGNuSmhlV0FnZEc4Z1kyOXRjSFYwWlZ4dUlDQWdJQ0FxSUhSb1pXbHlJSE52Y25RZ2NtRnVhMmx1Wnk0Z1ZHaGxJR2wwWlhKaGRHVmxJR2x6SUdsdWRtOXJaV1FnZDJsMGFDQnZibVVnWVhKbmRXMWxiblE3SUNoMllXeDFaU2t1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlHRnljbUY1SUZSb1pTQnpiM0owWldRZ1lYSnlZWGtnZEc4Z2FXNXpjR1ZqZEM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlIWmhiSFZsSUZSb1pTQjJZV3gxWlNCMGJ5QmxkbUZzZFdGMFpTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQnBkR1Z5WVhSbFpTQlVhR1VnYVhSbGNtRjBaV1VnYVc1MmIydGxaQ0J3WlhJZ1pXeGxiV1Z1ZEM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0eVpYUklhV2RvWlhOMFhTQlRjR1ZqYVdaNUlISmxkSFZ5Ym1sdVp5QjBhR1VnYUdsbmFHVnpkQ0J4ZFdGc2FXWnBaV1FnYVc1a1pYZ3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMjUxYldKbGNuMGdVbVYwZFhKdWN5QjBhR1VnYVc1a1pYZ2dZWFFnZDJocFkyZ2dZSFpoYkhWbFlDQnphRzkxYkdRZ1ltVWdhVzV6WlhKMFpXUmNiaUFnSUNBZ0tpQWdhVzUwYnlCZ1lYSnlZWGxnTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR0poYzJWVGIzSjBaV1JKYm1SbGVFSjVLR0Z5Y21GNUxDQjJZV3gxWlN3Z2FYUmxjbUYwWldVc0lISmxkRWhwWjJobGMzUXBJSHRjYmlBZ0lDQWdJSFpoY2lCc2IzY2dQU0F3TEZ4dUlDQWdJQ0FnSUNBZ0lHaHBaMmdnUFNCaGNuSmhlU0E5UFNCdWRXeHNJRDhnTUNBNklHRnljbUY1TG14bGJtZDBhRHRjYmlBZ0lDQWdJR2xtSUNob2FXZG9JRDA5UFNBd0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQXdPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0IyWVd4MVpTQTlJR2wwWlhKaGRHVmxLSFpoYkhWbEtUdGNiaUFnSUNBZ0lIWmhjaUIyWVd4SmMwNWhUaUE5SUhaaGJIVmxJQ0U5UFNCMllXeDFaU3hjYmlBZ0lDQWdJQ0FnSUNCMllXeEpjMDUxYkd3Z1BTQjJZV3gxWlNBOVBUMGdiblZzYkN4Y2JpQWdJQ0FnSUNBZ0lDQjJZV3hKYzFONWJXSnZiQ0E5SUdselUzbHRZbTlzS0haaGJIVmxLU3hjYmlBZ0lDQWdJQ0FnSUNCMllXeEpjMVZ1WkdWbWFXNWxaQ0E5SUhaaGJIVmxJRDA5UFNCMWJtUmxabWx1WldRN1hHNWNiaUFnSUNBZ0lIZG9hV3hsSUNoc2IzY2dQQ0JvYVdkb0tTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCdGFXUWdQU0J1WVhScGRtVkdiRzl2Y2lnb2JHOTNJQ3NnYUdsbmFDa2dMeUF5S1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJR052YlhCMWRHVmtJRDBnYVhSbGNtRjBaV1VvWVhKeVlYbGJiV2xrWFNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2ZEdoSmMwUmxabWx1WldRZ1BTQmpiMjF3ZFhSbFpDQWhQVDBnZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiM1JvU1hOT2RXeHNJRDBnWTI5dGNIVjBaV1FnUFQwOUlHNTFiR3dzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnZkR2hKYzFKbFpteGxlR2wyWlNBOUlHTnZiWEIxZEdWa0lEMDlQU0JqYjIxd2RYUmxaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHOTBhRWx6VTNsdFltOXNJRDBnYVhOVGVXMWliMndvWTI5dGNIVjBaV1FwTzF4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2gyWVd4SmMwNWhUaWtnZTF4dUlDQWdJQ0FnSUNBZ0lIWmhjaUJ6WlhSTWIzY2dQU0J5WlhSSWFXZG9aWE4wSUh4OElHOTBhRWx6VW1WbWJHVjRhWFpsTzF4dUlDQWdJQ0FnSUNCOUlHVnNjMlVnYVdZZ0tIWmhiRWx6Vlc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjMlYwVEc5M0lEMGdiM1JvU1hOU1pXWnNaWGhwZG1VZ0ppWWdLSEpsZEVocFoyaGxjM1FnZkh3Z2IzUm9TWE5FWldacGJtVmtLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoMllXeEpjMDUxYkd3cElIdGNiaUFnSUNBZ0lDQWdJQ0J6WlhSTWIzY2dQU0J2ZEdoSmMxSmxabXhsZUdsMlpTQW1KaUJ2ZEdoSmMwUmxabWx1WldRZ0ppWWdLSEpsZEVocFoyaGxjM1FnZkh3Z0lXOTBhRWx6VG5Wc2JDazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQnBaaUFvZG1Gc1NYTlRlVzFpYjJ3cElIdGNiaUFnSUNBZ0lDQWdJQ0J6WlhSTWIzY2dQU0J2ZEdoSmMxSmxabXhsZUdsMlpTQW1KaUJ2ZEdoSmMwUmxabWx1WldRZ0ppWWdJVzkwYUVselRuVnNiQ0FtSmlBb2NtVjBTR2xuYUdWemRDQjhmQ0FoYjNSb1NYTlRlVzFpYjJ3cE8xeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLRzkwYUVselRuVnNiQ0I4ZkNCdmRHaEpjMU41YldKdmJDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhObGRFeHZkeUE5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUhObGRFeHZkeUE5SUhKbGRFaHBaMmhsYzNRZ1B5QW9ZMjl0Y0hWMFpXUWdQRDBnZG1Gc2RXVXBJRG9nS0dOdmJYQjFkR1ZrSUR3Z2RtRnNkV1VwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2h6WlhSTWIzY3BJSHRjYmlBZ0lDQWdJQ0FnSUNCc2IzY2dQU0J0YVdRZ0t5QXhPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUdocFoyZ2dQU0J0YVdRN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCdVlYUnBkbVZOYVc0b2FHbG5hQ3dnVFVGWVgwRlNVa0ZaWDBsT1JFVllLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdVZ1ltRnpaU0JwYlhCc1pXMWxiblJoZEdsdmJpQnZaaUJnWHk1emIzSjBaV1JWYm1seFlDQmhibVFnWUY4dWMyOXlkR1ZrVlc1cGNVSjVZQ0IzYVhSb2IzVjBYRzRnSUNBZ0lDb2djM1Z3Y0c5eWRDQm1iM0lnYVhSbGNtRjBaV1VnYzJodmNuUm9ZVzVrY3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdZWEp5WVhrZ1ZHaGxJR0Z5Y21GNUlIUnZJR2x1YzNCbFkzUXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdXMmwwWlhKaGRHVmxYU0JVYUdVZ2FYUmxjbUYwWldVZ2FXNTJiMnRsWkNCd1pYSWdaV3hsYldWdWRDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCa2RYQnNhV05oZEdVZ1puSmxaU0JoY25KaGVTNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCaVlYTmxVMjl5ZEdWa1ZXNXBjU2hoY25KaGVTd2dhWFJsY21GMFpXVXBJSHRjYmlBZ0lDQWdJSFpoY2lCcGJtUmxlQ0E5SUMweExGeHVJQ0FnSUNBZ0lDQWdJR3hsYm1kMGFDQTlJR0Z5Y21GNUxteGxibWQwYUN4Y2JpQWdJQ0FnSUNBZ0lDQnlaWE5KYm1SbGVDQTlJREFzWEc0Z0lDQWdJQ0FnSUNBZ2NtVnpkV3gwSUQwZ1cxMDdYRzVjYmlBZ0lDQWdJSGRvYVd4bElDZ3JLMmx1WkdWNElEd2diR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCMllXeDFaU0E5SUdGeWNtRjVXMmx1WkdWNFhTeGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJYQjFkR1ZrSUQwZ2FYUmxjbUYwWldVZ1B5QnBkR1Z5WVhSbFpTaDJZV3gxWlNrZ09pQjJZV3gxWlR0Y2JseHVJQ0FnSUNBZ0lDQnBaaUFvSVdsdVpHVjRJSHg4SUNGbGNTaGpiMjF3ZFhSbFpDd2djMlZsYmlrcElIdGNiaUFnSUNBZ0lDQWdJQ0IyWVhJZ2MyVmxiaUE5SUdOdmJYQjFkR1ZrTzF4dUlDQWdJQ0FnSUNBZ0lISmxjM1ZzZEZ0eVpYTkpibVJsZUNzclhTQTlJSFpoYkhWbElEMDlQU0F3SUQ4Z01DQTZJSFpoYkhWbE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQmlZWE5sSUdsdGNHeGxiV1Z1ZEdGMGFXOXVJRzltSUdCZkxuUnZUblZ0WW1WeVlDQjNhR2xqYUNCa2IyVnpiaWQwSUdWdWMzVnlaU0JqYjNKeVpXTjBYRzRnSUNBZ0lDb2dZMjl1ZG1WeWMybHZibk1nYjJZZ1ltbHVZWEo1TENCb1pYaGhaR1ZqYVcxaGJDd2diM0lnYjJOMFlXd2djM1J5YVc1bklIWmhiSFZsY3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z2NISnZZMlZ6Y3k1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN2JuVnRZbVZ5ZlNCU1pYUjFjbTV6SUhSb1pTQnVkVzFpWlhJdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnWW1GelpWUnZUblZ0WW1WeUtIWmhiSFZsS1NCN1hHNGdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlIWmhiSFZsSUQwOUlDZHVkVzFpWlhJbktTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjJZV3gxWlR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdsbUlDaHBjMU41YldKdmJDaDJZV3gxWlNrcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlFNUJUanRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQXJkbUZzZFdVN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaGxJR0poYzJVZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRnYjJZZ1lGOHVkRzlUZEhKcGJtZGdJSGRvYVdOb0lHUnZaWE51SjNRZ1kyOXVkbVZ5ZENCdWRXeHNhWE5vWEc0Z0lDQWdJQ29nZG1Gc2RXVnpJSFJ2SUdWdGNIUjVJSE4wY21sdVozTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdkbUZzZFdVZ1ZHaGxJSFpoYkhWbElIUnZJSEJ5YjJObGMzTXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlM04wY21sdVozMGdVbVYwZFhKdWN5QjBhR1VnYzNSeWFXNW5MbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHSmhjMlZVYjFOMGNtbHVaeWgyWVd4MVpTa2dlMXh1SUNBZ0lDQWdMeThnUlhocGRDQmxZWEpzZVNCbWIzSWdjM1J5YVc1bmN5QjBieUJoZG05cFpDQmhJSEJsY21admNtMWhibU5sSUdocGRDQnBiaUJ6YjIxbElHVnVkbWx5YjI1dFpXNTBjeTVjYmlBZ0lDQWdJR2xtSUNoMGVYQmxiMllnZG1Gc2RXVWdQVDBnSjNOMGNtbHVaeWNwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhaaGJIVmxPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdhV1lnS0dselFYSnlZWGtvZG1Gc2RXVXBLU0I3WEc0Z0lDQWdJQ0FnSUM4dklGSmxZM1Z5YzJsMlpXeDVJR052Ym5abGNuUWdkbUZzZFdWeklDaHpkWE5qWlhCMGFXSnNaU0IwYnlCallXeHNJSE4wWVdOcklHeHBiV2wwY3lrdVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCaGNuSmhlVTFoY0NoMllXeDFaU3dnWW1GelpWUnZVM1J5YVc1bktTQXJJQ2NuTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tHbHpVM2x0WW05c0tIWmhiSFZsS1NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2MzbHRZbTlzVkc5VGRISnBibWNnUHlCemVXMWliMnhVYjFOMGNtbHVaeTVqWVd4c0tIWmhiSFZsS1NBNklDY25PMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUNoMllXeDFaU0FySUNjbktUdGNiaUFnSUNBZ0lISmxkSFZ5YmlBb2NtVnpkV3gwSUQwOUlDY3dKeUFtSmlBb01TQXZJSFpoYkhWbEtTQTlQU0F0U1U1R1NVNUpWRmtwSUQ4Z0p5MHdKeUE2SUhKbGMzVnNkRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdVZ1ltRnpaU0JwYlhCc1pXMWxiblJoZEdsdmJpQnZaaUJnWHk1MWJtbHhRbmxnSUhkcGRHaHZkWFFnYzNWd2NHOXlkQ0JtYjNJZ2FYUmxjbUYwWldVZ2MyaHZjblJvWVc1a2N5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnWVhKeVlYa2dWR2hsSUdGeWNtRjVJSFJ2SUdsdWMzQmxZM1F1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnVzJsMFpYSmhkR1ZsWFNCVWFHVWdhWFJsY21GMFpXVWdhVzUyYjJ0bFpDQndaWElnWld4bGJXVnVkQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JiWTI5dGNHRnlZWFJ2Y2wwZ1ZHaGxJR052YlhCaGNtRjBiM0lnYVc1MmIydGxaQ0J3WlhJZ1pXeGxiV1Z1ZEM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1FYSnlZWGw5SUZKbGRIVnlibk1nZEdobElHNWxkeUJrZFhCc2FXTmhkR1VnWm5KbFpTQmhjbkpoZVM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJpWVhObFZXNXBjU2hoY25KaGVTd2dhWFJsY21GMFpXVXNJR052YlhCaGNtRjBiM0lwSUh0Y2JpQWdJQ0FnSUhaaGNpQnBibVJsZUNBOUlDMHhMRnh1SUNBZ0lDQWdJQ0FnSUdsdVkyeDFaR1Z6SUQwZ1lYSnlZWGxKYm1Oc2RXUmxjeXhjYmlBZ0lDQWdJQ0FnSUNCc1pXNW5kR2dnUFNCaGNuSmhlUzVzWlc1bmRHZ3NYRzRnSUNBZ0lDQWdJQ0FnYVhORGIyMXRiMjRnUFNCMGNuVmxMRnh1SUNBZ0lDQWdJQ0FnSUhKbGMzVnNkQ0E5SUZ0ZExGeHVJQ0FnSUNBZ0lDQWdJSE5sWlc0Z1BTQnlaWE4xYkhRN1hHNWNiaUFnSUNBZ0lHbG1JQ2hqYjIxd1lYSmhkRzl5S1NCN1hHNGdJQ0FnSUNBZ0lHbHpRMjl0Ylc5dUlEMGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lHbHVZMngxWkdWeklEMGdZWEp5WVhsSmJtTnNkV1JsYzFkcGRHZzdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQmxiSE5sSUdsbUlDaHNaVzVuZEdnZ1BqMGdURUZTUjBWZlFWSlNRVmxmVTBsYVJTa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ2MyVjBJRDBnYVhSbGNtRjBaV1VnUHlCdWRXeHNJRG9nWTNKbFlYUmxVMlYwS0dGeWNtRjVLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tITmxkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCelpYUlViMEZ5Y21GNUtITmxkQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FYTkRiMjF0YjI0Z1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ2FXNWpiSFZrWlhNZ1BTQmpZV05vWlVoaGN6dGNiaUFnSUNBZ0lDQWdjMlZsYmlBOUlHNWxkeUJUWlhSRFlXTm9aVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQnpaV1Z1SUQwZ2FYUmxjbUYwWldVZ1B5QmJYU0E2SUhKbGMzVnNkRHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJRzkxZEdWeU9seHVJQ0FnSUNBZ2QyaHBiR1VnS0NzcmFXNWtaWGdnUENCc1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJSFpoYkhWbElEMGdZWEp5WVhsYmFXNWtaWGhkTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl0Y0hWMFpXUWdQU0JwZEdWeVlYUmxaU0EvSUdsMFpYSmhkR1ZsS0haaGJIVmxLU0E2SUhaaGJIVmxPMXh1WEc0Z0lDQWdJQ0FnSUhaaGJIVmxJRDBnS0dOdmJYQmhjbUYwYjNJZ2ZId2dkbUZzZFdVZ0lUMDlJREFwSUQ4Z2RtRnNkV1VnT2lBd08xeHVJQ0FnSUNBZ0lDQnBaaUFvYVhORGIyMXRiMjRnSmlZZ1kyOXRjSFYwWldRZ1BUMDlJR052YlhCMWRHVmtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RtRnlJSE5sWlc1SmJtUmxlQ0E5SUhObFpXNHViR1Z1WjNSb08xeHVJQ0FnSUNBZ0lDQWdJSGRvYVd4bElDaHpaV1Z1U1c1a1pYZ3RMU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hObFpXNWJjMlZsYmtsdVpHVjRYU0E5UFQwZ1kyOXRjSFYwWldRcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVZ2IzVjBaWEk3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2hwZEdWeVlYUmxaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjMlZsYmk1d2RYTm9LR052YlhCMWRHVmtLVHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdjbVZ6ZFd4MExuQjFjMmdvZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0NGcGJtTnNkV1JsY3loelpXVnVMQ0JqYjIxd2RYUmxaQ3dnWTI5dGNHRnlZWFJ2Y2lrcElIdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2MyVmxiaUFoUFQwZ2NtVnpkV3gwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6WldWdUxuQjFjMmdvWTI5dGNIVjBaV1FwTzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0J5WlhOMWJIUXVjSFZ6YUNoMllXeDFaU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUdKaGMyVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2IyWWdZRjh1ZFc1elpYUmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQnZZbXBsWTNRZ2RHOGdiVzlrYVdaNUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw4YzNSeWFXNW5mU0J3WVhSb0lGUm9aU0J3Y205d1pYSjBlU0J3WVhSb0lIUnZJSFZ1YzJWMExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdGliMjlzWldGdWZTQlNaWFIxY201eklHQjBjblZsWUNCcFppQjBhR1VnY0hKdmNHVnlkSGtnYVhNZ1pHVnNaWFJsWkN3Z1pXeHpaU0JnWm1Gc2MyVmdMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHSmhjMlZWYm5ObGRDaHZZbXBsWTNRc0lIQmhkR2dwSUh0Y2JpQWdJQ0FnSUhCaGRHZ2dQU0JqWVhOMFVHRjBhQ2h3WVhSb0xDQnZZbXBsWTNRcE8xeHVJQ0FnSUNBZ2IySnFaV04wSUQwZ2NHRnlaVzUwS0c5aWFtVmpkQ3dnY0dGMGFDazdYRzRnSUNBZ0lDQnlaWFIxY200Z2IySnFaV04wSUQwOUlHNTFiR3dnZkh3Z1pHVnNaWFJsSUc5aWFtVmpkRnQwYjB0bGVTaHNZWE4wS0hCaGRHZ3BLVjA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdobElHSmhjMlVnYVcxd2JHVnRaVzUwWVhScGIyNGdiMllnWUY4dWRYQmtZWFJsWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzlpYW1WamRDQlVhR1VnYjJKcVpXTjBJSFJ2SUcxdlpHbG1lUzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZITjBjbWx1WjMwZ2NHRjBhQ0JVYUdVZ2NHRjBhQ0J2WmlCMGFHVWdjSEp2Y0dWeWRIa2dkRzhnZFhCa1lYUmxMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJSFZ3WkdGMFpYSWdWR2hsSUdaMWJtTjBhVzl1SUhSdklIQnliMlIxWTJVZ2RHaGxJSFZ3WkdGMFpXUWdkbUZzZFdVdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1cyTjFjM1J2YldsNlpYSmRJRlJvWlNCbWRXNWpkR2x2YmlCMGJ5QmpkWE4wYjIxcGVtVWdjR0YwYUNCamNtVmhkR2x2Ymk1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1QySnFaV04wZlNCU1pYUjFjbTV6SUdCdlltcGxZM1JnTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR0poYzJWVmNHUmhkR1VvYjJKcVpXTjBMQ0J3WVhSb0xDQjFjR1JoZEdWeUxDQmpkWE4wYjIxcGVtVnlLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZbUZ6WlZObGRDaHZZbXBsWTNRc0lIQmhkR2dzSUhWd1pHRjBaWElvWW1GelpVZGxkQ2h2WW1wbFkzUXNJSEJoZEdncEtTd2dZM1Z6ZEc5dGFYcGxjaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdobElHSmhjMlVnYVcxd2JHVnRaVzUwWVhScGIyNGdiMllnYldWMGFHOWtjeUJzYVd0bElHQmZMbVJ5YjNCWGFHbHNaV0FnWVc1a0lHQmZMblJoYTJWWGFHbHNaV0JjYmlBZ0lDQWdLaUIzYVhSb2IzVjBJSE4xY0hCdmNuUWdabTl5SUdsMFpYSmhkR1ZsSUhOb2IzSjBhR0Z1WkhNdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDlJR0Z5Y21GNUlGUm9aU0JoY25KaGVTQjBieUJ4ZFdWeWVTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQndjbVZrYVdOaGRHVWdWR2hsSUdaMWJtTjBhVzl1SUdsdWRtOXJaV1FnY0dWeUlHbDBaWEpoZEdsdmJpNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UySnZiMnhsWVc1OUlGdHBjMFJ5YjNCZElGTndaV05wWm5rZ1pISnZjSEJwYm1jZ1pXeGxiV1Z1ZEhNZ2FXNXpkR1ZoWkNCdlppQjBZV3RwYm1jZ2RHaGxiUzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMkp2YjJ4bFlXNTlJRnRtY205dFVtbG5hSFJkSUZOd1pXTnBabmtnYVhSbGNtRjBhVzVuSUdaeWIyMGdjbWxuYUhRZ2RHOGdiR1ZtZEM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1FYSnlZWGw5SUZKbGRIVnlibk1nZEdobElITnNhV05sSUc5bUlHQmhjbkpoZVdBdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnWW1GelpWZG9hV3hsS0dGeWNtRjVMQ0J3Y21Wa2FXTmhkR1VzSUdselJISnZjQ3dnWm5KdmJWSnBaMmgwS1NCN1hHNGdJQ0FnSUNCMllYSWdiR1Z1WjNSb0lEMGdZWEp5WVhrdWJHVnVaM1JvTEZ4dUlDQWdJQ0FnSUNBZ0lHbHVaR1Y0SUQwZ1puSnZiVkpwWjJoMElEOGdiR1Z1WjNSb0lEb2dMVEU3WEc1Y2JpQWdJQ0FnSUhkb2FXeGxJQ2dvWm5KdmJWSnBaMmgwSUQ4Z2FXNWtaWGd0TFNBNklDc3JhVzVrWlhnZ1BDQnNaVzVuZEdncElDWW1YRzRnSUNBZ0lDQWdJSEJ5WldScFkyRjBaU2hoY25KaGVWdHBibVJsZUYwc0lHbHVaR1Y0TENCaGNuSmhlU2twSUh0OVhHNWNiaUFnSUNBZ0lISmxkSFZ5YmlCcGMwUnliM0JjYmlBZ0lDQWdJQ0FnUHlCaVlYTmxVMnhwWTJVb1lYSnlZWGtzSUNobWNtOXRVbWxuYUhRZ1B5QXdJRG9nYVc1a1pYZ3BMQ0FvWm5KdmJWSnBaMmgwSUQ4Z2FXNWtaWGdnS3lBeElEb2diR1Z1WjNSb0tTbGNiaUFnSUNBZ0lDQWdPaUJpWVhObFUyeHBZMlVvWVhKeVlYa3NJQ2htY205dFVtbG5hSFFnUHlCcGJtUmxlQ0FySURFZ09pQXdLU3dnS0daeWIyMVNhV2RvZENBL0lHeGxibWQwYUNBNklHbHVaR1Y0S1NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaGxJR0poYzJVZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRnYjJZZ1lIZHlZWEJ3WlhKV1lXeDFaV0FnZDJocFkyZ2djbVYwZFhKdWN5QjBhR1VnY21WemRXeDBJRzltWEc0Z0lDQWdJQ29nY0dWeVptOXliV2x1WnlCaElITmxjWFZsYm1ObElHOW1JR0ZqZEdsdmJuTWdiMjRnZEdobElIVnVkM0poY0hCbFpDQmdkbUZzZFdWZ0xDQjNhR1Z5WlNCbFlXTm9YRzRnSUNBZ0lDb2djM1ZqWTJWemMybDJaU0JoWTNScGIyNGdhWE1nYzNWd2NHeHBaV1FnZEdobElISmxkSFZ5YmlCMllXeDFaU0J2WmlCMGFHVWdjSEpsZG1sdmRYTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdkbUZzZFdVZ1ZHaGxJSFZ1ZDNKaGNIQmxaQ0IyWVd4MVpTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCaFkzUnBiMjV6SUVGamRHbHZibk1nZEc4Z2NHVnlabTl5YlNCMGJ5QnlaWE52YkhabElIUm9aU0IxYm5keVlYQndaV1FnZG1Gc2RXVXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdleXA5SUZKbGRIVnlibk1nZEdobElISmxjMjlzZG1Wa0lIWmhiSFZsTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR0poYzJWWGNtRndjR1Z5Vm1Gc2RXVW9kbUZzZFdVc0lHRmpkR2x2Ym5NcElIdGNiaUFnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0IyWVd4MVpUdGNiaUFnSUNBZ0lHbG1JQ2h5WlhOMWJIUWdhVzV6ZEdGdVkyVnZaaUJNWVhwNVYzSmhjSEJsY2lrZ2UxeHVJQ0FnSUNBZ0lDQnlaWE4xYkhRZ1BTQnlaWE4xYkhRdWRtRnNkV1VvS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUJoY25KaGVWSmxaSFZqWlNoaFkzUnBiMjV6TENCbWRXNWpkR2x2YmloeVpYTjFiSFFzSUdGamRHbHZiaWtnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWVdOMGFXOXVMbVoxYm1NdVlYQndiSGtvWVdOMGFXOXVMblJvYVhOQmNtY3NJR0Z5Y21GNVVIVnphQ2hiY21WemRXeDBYU3dnWVdOMGFXOXVMbUZ5WjNNcEtUdGNiaUFnSUNBZ0lIMHNJSEpsYzNWc2RDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUdKaGMyVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2IyWWdiV1YwYUc5a2N5QnNhV3RsSUdCZkxuaHZjbUFzSUhkcGRHaHZkWFFnYzNWd2NHOXlkQ0JtYjNKY2JpQWdJQ0FnS2lCcGRHVnlZWFJsWlNCemFHOXlkR2hoYm1SekxDQjBhR0YwSUdGalkyVndkSE1nWVc0Z1lYSnlZWGtnYjJZZ1lYSnlZWGx6SUhSdklHbHVjM0JsWTNRdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDlJR0Z5Y21GNWN5QlVhR1VnWVhKeVlYbHpJSFJ2SUdsdWMzQmxZM1F1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnVzJsMFpYSmhkR1ZsWFNCVWFHVWdhWFJsY21GMFpXVWdhVzUyYjJ0bFpDQndaWElnWld4bGJXVnVkQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JiWTI5dGNHRnlZWFJ2Y2wwZ1ZHaGxJR052YlhCaGNtRjBiM0lnYVc1MmIydGxaQ0J3WlhJZ1pXeGxiV1Z1ZEM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1FYSnlZWGw5SUZKbGRIVnlibk1nZEdobElHNWxkeUJoY25KaGVTQnZaaUIyWVd4MVpYTXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1ltRnpaVmh2Y2loaGNuSmhlWE1zSUdsMFpYSmhkR1ZsTENCamIyMXdZWEpoZEc5eUtTQjdYRzRnSUNBZ0lDQjJZWElnYkdWdVozUm9JRDBnWVhKeVlYbHpMbXhsYm1kMGFEdGNiaUFnSUNBZ0lHbG1JQ2hzWlc1bmRHZ2dQQ0F5S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCc1pXNW5kR2dnUHlCaVlYTmxWVzVwY1NoaGNuSmhlWE5iTUYwcElEb2dXMTA3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0IyWVhJZ2FXNWtaWGdnUFNBdE1TeGNiaUFnSUNBZ0lDQWdJQ0J5WlhOMWJIUWdQU0JCY25KaGVTaHNaVzVuZEdncE8xeHVYRzRnSUNBZ0lDQjNhR2xzWlNBb0t5dHBibVJsZUNBOElHeGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnWVhKeVlYa2dQU0JoY25KaGVYTmJhVzVrWlhoZExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYjNSb1NXNWtaWGdnUFNBdE1UdGNibHh1SUNBZ0lDQWdJQ0IzYUdsc1pTQW9LeXR2ZEdoSmJtUmxlQ0E4SUd4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2h2ZEdoSmJtUmxlQ0FoUFNCcGJtUmxlQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVZ6ZFd4MFcybHVaR1Y0WFNBOUlHSmhjMlZFYVdabVpYSmxibU5sS0hKbGMzVnNkRnRwYm1SbGVGMGdmSHdnWVhKeVlYa3NJR0Z5Y21GNWMxdHZkR2hKYm1SbGVGMHNJR2wwWlhKaGRHVmxMQ0JqYjIxd1lYSmhkRzl5S1R0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQmlZWE5sVlc1cGNTaGlZWE5sUm14aGRIUmxiaWh5WlhOMWJIUXNJREVwTENCcGRHVnlZWFJsWlN3Z1kyOXRjR0Z5WVhSdmNpazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hwY3lCaVlYTmxJR2x0Y0d4bGJXVnVkR0YwYVc5dUlHOW1JR0JmTG5wcGNFOWlhbVZqZEdBZ2QyaHBZMmdnWVhOemFXZHVjeUIyWVd4MVpYTWdkWE5wYm1jZ1lHRnpjMmxuYmtaMWJtTmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCd2NtOXdjeUJVYUdVZ2NISnZjR1Z5ZEhrZ2FXUmxiblJwWm1sbGNuTXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ2RtRnNkV1Z6SUZSb1pTQndjbTl3WlhKMGVTQjJZV3gxWlhNdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1lYTnphV2R1Um5WdVl5QlVhR1VnWm5WdVkzUnBiMjRnZEc4Z1lYTnphV2R1SUhaaGJIVmxjeTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3VDJKcVpXTjBmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2diMkpxWldOMExseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdKaGMyVmFhWEJQWW1wbFkzUW9jSEp2Y0hNc0lIWmhiSFZsY3l3Z1lYTnphV2R1Um5WdVl5a2dlMXh1SUNBZ0lDQWdkbUZ5SUdsdVpHVjRJRDBnTFRFc1hHNGdJQ0FnSUNBZ0lDQWdiR1Z1WjNSb0lEMGdjSEp2Y0hNdWJHVnVaM1JvTEZ4dUlDQWdJQ0FnSUNBZ0lIWmhiSE5NWlc1bmRHZ2dQU0IyWVd4MVpYTXViR1Z1WjNSb0xGeHVJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RDQTlJSHQ5TzF4dVhHNGdJQ0FnSUNCM2FHbHNaU0FvS3l0cGJtUmxlQ0E4SUd4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNCMllYSWdkbUZzZFdVZ1BTQnBibVJsZUNBOElIWmhiSE5NWlc1bmRHZ2dQeUIyWVd4MVpYTmJhVzVrWlhoZElEb2dkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdJQ0JoYzNOcFoyNUdkVzVqS0hKbGMzVnNkQ3dnY0hKdmNITmJhVzVrWlhoZExDQjJZV3gxWlNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU5oYzNSeklHQjJZV3gxWldBZ2RHOGdZVzRnWlcxd2RIa2dZWEp5WVhrZ2FXWWdhWFFuY3lCdWIzUWdZVzRnWVhKeVlYa2diR2xyWlNCdlltcGxZM1F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdLbjBnZG1Gc2RXVWdWR2hsSUhaaGJIVmxJSFJ2SUdsdWMzQmxZM1F1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmRTlpYW1WamRIMGdVbVYwZFhKdWN5QjBhR1VnWTJGemRDQmhjbkpoZVMxc2FXdGxJRzlpYW1WamRDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCallYTjBRWEp5WVhsTWFXdGxUMkpxWldOMEtIWmhiSFZsS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYVhOQmNuSmhlVXhwYTJWUFltcGxZM1FvZG1Gc2RXVXBJRDhnZG1Gc2RXVWdPaUJiWFR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRFlYTjBjeUJnZG1Gc2RXVmdJSFJ2SUdCcFpHVnVkR2wwZVdBZ2FXWWdhWFFuY3lCdWIzUWdZU0JtZFc1amRHbHZiaTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0IyWVd4MVpTQlVhR1VnZG1Gc2RXVWdkRzhnYVc1emNHVmpkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3Um5WdVkzUnBiMjU5SUZKbGRIVnlibk1nWTJGemRDQm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCallYTjBSblZ1WTNScGIyNG9kbUZzZFdVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGVYQmxiMllnZG1Gc2RXVWdQVDBnSjJaMWJtTjBhVzl1SnlBL0lIWmhiSFZsSURvZ2FXUmxiblJwZEhrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyRnpkSE1nWUhaaGJIVmxZQ0IwYnlCaElIQmhkR2dnWVhKeVlYa2dhV1lnYVhRbmN5QnViM1FnYjI1bExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlIWmhiSFZsSUZSb1pTQjJZV3gxWlNCMGJ5QnBibk53WldOMExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCYmIySnFaV04wWFNCVWFHVWdiMkpxWldOMElIUnZJSEYxWlhKNUlHdGxlWE1nYjI0dVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQmpZWE4wSUhCeWIzQmxjblI1SUhCaGRHZ2dZWEp5WVhrdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnWTJGemRGQmhkR2dvZG1Gc2RXVXNJRzlpYW1WamRDa2dlMXh1SUNBZ0lDQWdhV1lnS0dselFYSnlZWGtvZG1Gc2RXVXBLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIyWVd4MVpUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCcGMwdGxlU2gyWVd4MVpTd2diMkpxWldOMEtTQS9JRnQyWVd4MVpWMGdPaUJ6ZEhKcGJtZFViMUJoZEdnb2RHOVRkSEpwYm1jb2RtRnNkV1VwS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQklHQmlZWE5sVW1WemRHQWdZV3hwWVhNZ2QyaHBZMmdnWTJGdUlHSmxJSEpsY0d4aFkyVmtJSGRwZEdnZ1lHbGtaVzUwYVhSNVlDQmllU0J0YjJSMWJHVmNiaUFnSUNBZ0tpQnlaWEJzWVdObGJXVnVkQ0J3YkhWbmFXNXpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFkSGx3WlNCN1JuVnVZM1JwYjI1OVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1puVnVZeUJVYUdVZ1puVnVZM1JwYjI0Z2RHOGdZWEJ3YkhrZ1lTQnlaWE4wSUhCaGNtRnRaWFJsY2lCMGJ5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdSblZ1WTNScGIyNTlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5Qm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0tpOWNiaUFnSUNCMllYSWdZMkZ6ZEZKbGMzUWdQU0JpWVhObFVtVnpkRHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOaGMzUnpJR0JoY25KaGVXQWdkRzhnWVNCemJHbGpaU0JwWmlCcGRDZHpJRzVsWldSbFpDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnWVhKeVlYa2dWR2hsSUdGeWNtRjVJSFJ2SUdsdWMzQmxZM1F1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJSE4wWVhKMElGUm9aU0J6ZEdGeWRDQndiM05wZEdsdmJpNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1cyVnVaRDFoY25KaGVTNXNaVzVuZEdoZElGUm9aU0JsYm1RZ2NHOXphWFJwYjI0dVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQmpZWE4wSUhOc2FXTmxMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHTmhjM1JUYkdsalpTaGhjbkpoZVN3Z2MzUmhjblFzSUdWdVpDa2dlMXh1SUNBZ0lDQWdkbUZ5SUd4bGJtZDBhQ0E5SUdGeWNtRjVMbXhsYm1kMGFEdGNiaUFnSUNBZ0lHVnVaQ0E5SUdWdVpDQTlQVDBnZFc1a1pXWnBibVZrSUQ4Z2JHVnVaM1JvSURvZ1pXNWtPMXh1SUNBZ0lDQWdjbVYwZFhKdUlDZ2hjM1JoY25RZ0ppWWdaVzVrSUQ0OUlHeGxibWQwYUNrZ1B5QmhjbkpoZVNBNklHSmhjMlZUYkdsalpTaGhjbkpoZVN3Z2MzUmhjblFzSUdWdVpDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRU0J6YVcxd2JHVWdkM0poY0hCbGNpQmhjbTkxYm1RZ2RHaGxJR2RzYjJKaGJDQmJZR05zWldGeVZHbHRaVzkxZEdCZEtHaDBkSEJ6T2k4dmJXUnVMbWx2TDJOc1pXRnlWR2x0Wlc5MWRDa3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZkU5aWFtVmpkSDBnYVdRZ1ZHaGxJSFJwYldWeUlHbGtJRzl5SUhScGJXVnZkWFFnYjJKcVpXTjBJRzltSUhSb1pTQjBhVzFsY2lCMGJ5QmpiR1ZoY2k1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0IyWVhJZ1kyeGxZWEpVYVcxbGIzVjBJRDBnWTNSNFEyeGxZWEpVYVcxbGIzVjBJSHg4SUdaMWJtTjBhVzl1S0dsa0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2NtOXZkQzVqYkdWaGNsUnBiV1Z2ZFhRb2FXUXBPMXh1SUNBZ0lIMDdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVnpJR0VnWTJ4dmJtVWdiMllnSUdCaWRXWm1aWEpnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEoxWm1abGNuMGdZblZtWm1WeUlGUm9aU0JpZFdabVpYSWdkRzhnWTJ4dmJtVXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJhWE5FWldWd1hTQlRjR1ZqYVdaNUlHRWdaR1ZsY0NCamJHOXVaUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UW5WbVptVnlmU0JTWlhSMWNtNXpJSFJvWlNCamJHOXVaV1FnWW5WbVptVnlMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHTnNiMjVsUW5WbVptVnlLR0oxWm1abGNpd2dhWE5FWldWd0tTQjdYRzRnSUNBZ0lDQnBaaUFvYVhORVpXVndLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJpZFdabVpYSXVjMnhwWTJVb0tUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lIWmhjaUJzWlc1bmRHZ2dQU0JpZFdabVpYSXViR1Z1WjNSb0xGeHVJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RDQTlJR0ZzYkc5alZXNXpZV1psSUQ4Z1lXeHNiMk5WYm5OaFptVW9iR1Z1WjNSb0tTQTZJRzVsZHlCaWRXWm1aWEl1WTI5dWMzUnlkV04wYjNJb2JHVnVaM1JvS1R0Y2JseHVJQ0FnSUNBZ1luVm1abVZ5TG1OdmNIa29jbVZ6ZFd4MEtUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTNKbFlYUmxjeUJoSUdOc2IyNWxJRzltSUdCaGNuSmhlVUoxWm1abGNtQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGxDZFdabVpYSjlJR0Z5Y21GNVFuVm1abVZ5SUZSb1pTQmhjbkpoZVNCaWRXWm1aWElnZEc4Z1kyeHZibVV1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVRblZtWm1WeWZTQlNaWFIxY201eklIUm9aU0JqYkc5dVpXUWdZWEp5WVhrZ1luVm1abVZ5TGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR05zYjI1bFFYSnlZWGxDZFdabVpYSW9ZWEp5WVhsQ2RXWm1aWElwSUh0Y2JpQWdJQ0FnSUhaaGNpQnlaWE4xYkhRZ1BTQnVaWGNnWVhKeVlYbENkV1ptWlhJdVkyOXVjM1J5ZFdOMGIzSW9ZWEp5WVhsQ2RXWm1aWEl1WW5sMFpVeGxibWQwYUNrN1hHNGdJQ0FnSUNCdVpYY2dWV2x1ZERoQmNuSmhlU2h5WlhOMWJIUXBMbk5sZENodVpYY2dWV2x1ZERoQmNuSmhlU2hoY25KaGVVSjFabVpsY2lrcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVnpJR0VnWTJ4dmJtVWdiMllnWUdSaGRHRldhV1YzWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJR1JoZEdGV2FXVjNJRlJvWlNCa1lYUmhJSFpwWlhjZ2RHOGdZMnh2Ym1VdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0aWIyOXNaV0Z1ZlNCYmFYTkVaV1Z3WFNCVGNHVmphV1o1SUdFZ1pHVmxjQ0JqYkc5dVpTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdUMkpxWldOMGZTQlNaWFIxY201eklIUm9aU0JqYkc5dVpXUWdaR0YwWVNCMmFXVjNMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHTnNiMjVsUkdGMFlWWnBaWGNvWkdGMFlWWnBaWGNzSUdselJHVmxjQ2tnZTF4dUlDQWdJQ0FnZG1GeUlHSjFabVpsY2lBOUlHbHpSR1ZsY0NBL0lHTnNiMjVsUVhKeVlYbENkV1ptWlhJb1pHRjBZVlpwWlhjdVluVm1abVZ5S1NBNklHUmhkR0ZXYVdWM0xtSjFabVpsY2p0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1pHRjBZVlpwWlhjdVkyOXVjM1J5ZFdOMGIzSW9ZblZtWm1WeUxDQmtZWFJoVm1sbGR5NWllWFJsVDJabWMyVjBMQ0JrWVhSaFZtbGxkeTVpZVhSbFRHVnVaM1JvS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdFZ1kyeHZibVVnYjJZZ1lISmxaMlY0Y0dBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J5WldkbGVIQWdWR2hsSUhKbFoyVjRjQ0IwYnlCamJHOXVaUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3VDJKcVpXTjBmU0JTWlhSMWNtNXpJSFJvWlNCamJHOXVaV1FnY21WblpYaHdMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHTnNiMjVsVW1WblJYaHdLSEpsWjJWNGNDa2dlMXh1SUNBZ0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUc1bGR5QnlaV2RsZUhBdVkyOXVjM1J5ZFdOMGIzSW9jbVZuWlhod0xuTnZkWEpqWlN3Z2NtVkdiR0ZuY3k1bGVHVmpLSEpsWjJWNGNDa3BPMXh1SUNBZ0lDQWdjbVZ6ZFd4MExteGhjM1JKYm1SbGVDQTlJSEpsWjJWNGNDNXNZWE4wU1c1a1pYZzdYRzRnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOeVpXRjBaWE1nWVNCamJHOXVaU0J2WmlCMGFHVWdZSE41YldKdmJHQWdiMkpxWldOMExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYzNsdFltOXNJRlJvWlNCemVXMWliMndnYjJKcVpXTjBJSFJ2SUdOc2IyNWxMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRQWW1wbFkzUjlJRkpsZEhWeWJuTWdkR2hsSUdOc2IyNWxaQ0J6ZVcxaWIyd2diMkpxWldOMExseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdOc2IyNWxVM2x0WW05c0tITjViV0p2YkNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhONWJXSnZiRlpoYkhWbFQyWWdQeUJQWW1wbFkzUW9jM2x0WW05c1ZtRnNkV1ZQWmk1allXeHNLSE41YldKdmJDa3BJRG9nZTMwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElHTnNiMjVsSUc5bUlHQjBlWEJsWkVGeWNtRjVZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlIUjVjR1ZrUVhKeVlYa2dWR2hsSUhSNWNHVmtJR0Z5Y21GNUlIUnZJR05zYjI1bExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cybHpSR1ZsY0YwZ1UzQmxZMmxtZVNCaElHUmxaWEFnWTJ4dmJtVXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMDlpYW1WamRIMGdVbVYwZFhKdWN5QjBhR1VnWTJ4dmJtVmtJSFI1Y0dWa0lHRnljbUY1TGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR05zYjI1bFZIbHdaV1JCY25KaGVTaDBlWEJsWkVGeWNtRjVMQ0JwYzBSbFpYQXBJSHRjYmlBZ0lDQWdJSFpoY2lCaWRXWm1aWElnUFNCcGMwUmxaWEFnUHlCamJHOXVaVUZ5Y21GNVFuVm1abVZ5S0hSNWNHVmtRWEp5WVhrdVluVm1abVZ5S1NBNklIUjVjR1ZrUVhKeVlYa3VZblZtWm1WeU8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5QjBlWEJsWkVGeWNtRjVMbU52Ym5OMGNuVmpkRzl5S0dKMVptWmxjaXdnZEhsd1pXUkJjbkpoZVM1aWVYUmxUMlptYzJWMExDQjBlWEJsWkVGeWNtRjVMbXhsYm1kMGFDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMjl0Y0dGeVpYTWdkbUZzZFdWeklIUnZJSE52Y25RZ2RHaGxiU0JwYmlCaGMyTmxibVJwYm1jZ2IzSmtaWEl1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdLbjBnZG1Gc2RXVWdWR2hsSUhaaGJIVmxJSFJ2SUdOdmJYQmhjbVV1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCdmRHaGxjaUJVYUdVZ2IzUm9aWElnZG1Gc2RXVWdkRzhnWTI5dGNHRnlaUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3Ym5WdFltVnlmU0JTWlhSMWNtNXpJSFJvWlNCemIzSjBJRzl5WkdWeUlHbHVaR2xqWVhSdmNpQm1iM0lnWUhaaGJIVmxZQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmpiMjF3WVhKbFFYTmpaVzVrYVc1bktIWmhiSFZsTENCdmRHaGxjaWtnZTF4dUlDQWdJQ0FnYVdZZ0tIWmhiSFZsSUNFOVBTQnZkR2hsY2lrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnZG1Gc1NYTkVaV1pwYm1Wa0lEMGdkbUZzZFdVZ0lUMDlJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhiRWx6VG5Wc2JDQTlJSFpoYkhWbElEMDlQU0J1ZFd4c0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc1NYTlNaV1pzWlhocGRtVWdQU0IyWVd4MVpTQTlQVDBnZG1Gc2RXVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeEpjMU41YldKdmJDQTlJR2x6VTNsdFltOXNLSFpoYkhWbEtUdGNibHh1SUNBZ0lDQWdJQ0IyWVhJZ2IzUm9TWE5FWldacGJtVmtJRDBnYjNSb1pYSWdJVDA5SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJRzkwYUVselRuVnNiQ0E5SUc5MGFHVnlJRDA5UFNCdWRXeHNMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2IzUm9TWE5TWldac1pYaHBkbVVnUFNCdmRHaGxjaUE5UFQwZ2IzUm9aWElzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnZkR2hKYzFONWJXSnZiQ0E5SUdselUzbHRZbTlzS0c5MGFHVnlLVHRjYmx4dUlDQWdJQ0FnSUNCcFppQW9LQ0Z2ZEdoSmMwNTFiR3dnSmlZZ0lXOTBhRWx6VTNsdFltOXNJQ1ltSUNGMllXeEpjMU41YldKdmJDQW1KaUIyWVd4MVpTQStJRzkwYUdWeUtTQjhmRnh1SUNBZ0lDQWdJQ0FnSUNBZ0tIWmhiRWx6VTNsdFltOXNJQ1ltSUc5MGFFbHpSR1ZtYVc1bFpDQW1KaUJ2ZEdoSmMxSmxabXhsZUdsMlpTQW1KaUFoYjNSb1NYTk9kV3hzSUNZbUlDRnZkR2hKYzFONWJXSnZiQ2tnZkh4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ2gyWVd4SmMwNTFiR3dnSmlZZ2IzUm9TWE5FWldacGJtVmtJQ1ltSUc5MGFFbHpVbVZtYkdWNGFYWmxLU0I4ZkZ4dUlDQWdJQ0FnSUNBZ0lDQWdLQ0YyWVd4SmMwUmxabWx1WldRZ0ppWWdiM1JvU1hOU1pXWnNaWGhwZG1VcElIeDhYRzRnSUNBZ0lDQWdJQ0FnSUNBaGRtRnNTWE5TWldac1pYaHBkbVVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z01UdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JwWmlBb0tDRjJZV3hKYzA1MWJHd2dKaVlnSVhaaGJFbHpVM2x0WW05c0lDWW1JQ0Z2ZEdoSmMxTjViV0p2YkNBbUppQjJZV3gxWlNBOElHOTBhR1Z5S1NCOGZGeHVJQ0FnSUNBZ0lDQWdJQ0FnS0c5MGFFbHpVM2x0WW05c0lDWW1JSFpoYkVselJHVm1hVzVsWkNBbUppQjJZV3hKYzFKbFpteGxlR2wyWlNBbUppQWhkbUZzU1hOT2RXeHNJQ1ltSUNGMllXeEpjMU41YldKdmJDa2dmSHhjYmlBZ0lDQWdJQ0FnSUNBZ0lDaHZkR2hKYzA1MWJHd2dKaVlnZG1Gc1NYTkVaV1pwYm1Wa0lDWW1JSFpoYkVselVtVm1iR1Y0YVhabEtTQjhmRnh1SUNBZ0lDQWdJQ0FnSUNBZ0tDRnZkR2hKYzBSbFptbHVaV1FnSmlZZ2RtRnNTWE5TWldac1pYaHBkbVVwSUh4OFhHNGdJQ0FnSUNBZ0lDQWdJQ0FoYjNSb1NYTlNaV1pzWlhocGRtVXBJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnTFRFN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlBd08xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGVnpaV1FnWW5rZ1lGOHViM0prWlhKQ2VXQWdkRzhnWTI5dGNHRnlaU0J0ZFd4MGFYQnNaU0J3Y205d1pYSjBhV1Z6SUc5bUlHRWdkbUZzZFdVZ2RHOGdZVzV2ZEdobGNseHVJQ0FnSUNBcUlHRnVaQ0J6ZEdGaWJHVWdjMjl5ZENCMGFHVnRMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dTV1lnWUc5eVpHVnljMkFnYVhNZ2RXNXpjR1ZqYVdacFpXUXNJR0ZzYkNCMllXeDFaWE1nWVhKbElITnZjblJsWkNCcGJpQmhjMk5sYm1ScGJtY2diM0prWlhJdUlFOTBhR1Z5ZDJselpTeGNiaUFnSUNBZ0tpQnpjR1ZqYVdaNUlHRnVJRzl5WkdWeUlHOW1JRndpWkdWelkxd2lJR1p2Y2lCa1pYTmpaVzVrYVc1bklHOXlJRndpWVhOalhDSWdabTl5SUdGelkyVnVaR2x1WnlCemIzSjBJRzl5WkdWeVhHNGdJQ0FnSUNvZ2IyWWdZMjl5Y21WemNHOXVaR2x1WnlCMllXeDFaWE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZZbXBsWTNRZ1ZHaGxJRzlpYW1WamRDQjBieUJqYjIxd1lYSmxMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZkR2hsY2lCVWFHVWdiM1JvWlhJZ2IySnFaV04wSUhSdklHTnZiWEJoY21VdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0aWIyOXNaV0Z1VzExOGMzUnlhVzVuVzExOUlHOXlaR1Z5Y3lCVWFHVWdiM0prWlhJZ2RHOGdjMjl5ZENCaWVTQm1iM0lnWldGamFDQndjbTl3WlhKMGVTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdiblZ0WW1WeWZTQlNaWFIxY201eklIUm9aU0J6YjNKMElHOXlaR1Z5SUdsdVpHbGpZWFJ2Y2lCbWIzSWdZRzlpYW1WamRHQXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1kyOXRjR0Z5WlUxMWJIUnBjR3hsS0c5aWFtVmpkQ3dnYjNSb1pYSXNJRzl5WkdWeWN5a2dlMXh1SUNBZ0lDQWdkbUZ5SUdsdVpHVjRJRDBnTFRFc1hHNGdJQ0FnSUNBZ0lDQWdiMkpxUTNKcGRHVnlhV0VnUFNCdlltcGxZM1F1WTNKcGRHVnlhV0VzWEc0Z0lDQWdJQ0FnSUNBZ2IzUm9RM0pwZEdWeWFXRWdQU0J2ZEdobGNpNWpjbWwwWlhKcFlTeGNiaUFnSUNBZ0lDQWdJQ0JzWlc1bmRHZ2dQU0J2WW1wRGNtbDBaWEpwWVM1c1pXNW5kR2dzWEc0Z0lDQWdJQ0FnSUNBZ2IzSmtaWEp6VEdWdVozUm9JRDBnYjNKa1pYSnpMbXhsYm1kMGFEdGNibHh1SUNBZ0lDQWdkMmhwYkdVZ0tDc3JhVzVrWlhnZ1BDQnNaVzVuZEdncElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUdOdmJYQmhjbVZCYzJObGJtUnBibWNvYjJKcVEzSnBkR1Z5YVdGYmFXNWtaWGhkTENCdmRHaERjbWwwWlhKcFlWdHBibVJsZUYwcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvY21WemRXeDBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLR2x1WkdWNElENDlJRzl5WkdWeWMweGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2RtRnlJRzl5WkdWeUlEMGdiM0prWlhKelcybHVaR1Y0WFR0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwSUNvZ0tHOXlaR1Z5SUQwOUlDZGtaWE5qSnlBL0lDMHhJRG9nTVNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lDOHZJRVpwZUdWeklHRnVJR0JCY25KaGVTTnpiM0owWUNCaWRXY2dhVzRnZEdobElFcFRJR1Z1WjJsdVpTQmxiV0psWkdSbFpDQnBiaUJCWkc5aVpTQmhjSEJzYVdOaGRHbHZibk5jYmlBZ0lDQWdJQzh2SUhSb1lYUWdZMkYxYzJWeklHbDBMQ0IxYm1SbGNpQmpaWEowWVdsdUlHTnBjbU4xYlhOMFlXNWpaWE1zSUhSdklIQnliM1pwWkdVZ2RHaGxJSE5oYldVZ2RtRnNkV1VnWm05eVhHNGdJQ0FnSUNBdkx5QmdiMkpxWldOMFlDQmhibVFnWUc5MGFHVnlZQzRnVTJWbElHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOXFZWE5vYTJWdVlYTXZkVzVrWlhKelkyOXlaUzl3ZFd4c0x6RXlORGRjYmlBZ0lDQWdJQzh2SUdadmNpQnRiM0psSUdSbGRHRnBiSE11WEc0Z0lDQWdJQ0F2TDF4dUlDQWdJQ0FnTHk4Z1ZHaHBjeUJoYkhOdklHVnVjM1Z5WlhNZ1lTQnpkR0ZpYkdVZ2MyOXlkQ0JwYmlCV09DQmhibVFnYjNSb1pYSWdaVzVuYVc1bGN5NWNiaUFnSUNBZ0lDOHZJRk5sWlNCb2RIUndjem92TDJKMVozTXVZMmh5YjIxcGRXMHViM0puTDNBdmRqZ3ZhWE56ZFdWekwyUmxkR0ZwYkQ5cFpEMDVNQ0JtYjNJZ2JXOXlaU0JrWlhSaGFXeHpMbHh1SUNBZ0lDQWdjbVYwZFhKdUlHOWlhbVZqZEM1cGJtUmxlQ0F0SUc5MGFHVnlMbWx1WkdWNE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnlaV0YwWlhNZ1lXNGdZWEp5WVhrZ2RHaGhkQ0JwY3lCMGFHVWdZMjl0Y0c5emFYUnBiMjRnYjJZZ2NHRnlkR2xoYkd4NUlHRndjR3hwWldRZ1lYSm5kVzFsYm5SekxGeHVJQ0FnSUNBcUlIQnNZV05sYUc5c1pHVnljeXdnWVc1a0lIQnliM1pwWkdWa0lHRnlaM1Z0Wlc1MGN5QnBiblJ2SUdFZ2MybHVaMnhsSUdGeWNtRjVJRzltSUdGeVozVnRaVzUwY3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdZWEpuY3lCVWFHVWdjSEp2ZG1sa1pXUWdZWEpuZFcxbGJuUnpMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlIQmhjblJwWVd4eklGUm9aU0JoY21kMWJXVnVkSE1nZEc4Z2NISmxjR1Z1WkNCMGJ5QjBhRzl6WlNCd2NtOTJhV1JsWkM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0JvYjJ4a1pYSnpJRlJvWlNCZ2NHRnlkR2xoYkhOZ0lIQnNZV05sYUc5c1pHVnlJR2x1WkdWNFpYTXVYRzRnSUNBZ0lDb2dRSEJoY21GdGN5QjdZbTl2YkdWaGJuMGdXMmx6UTNWeWNtbGxaRjBnVTNCbFkybG1lU0JqYjIxd2IzTnBibWNnWm05eUlHRWdZM1Z5Y21sbFpDQm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCaGNuSmhlU0J2WmlCamIyMXdiM05sWkNCaGNtZDFiV1Z1ZEhNdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnWTI5dGNHOXpaVUZ5WjNNb1lYSm5jeXdnY0dGeWRHbGhiSE1zSUdodmJHUmxjbk1zSUdselEzVnljbWxsWkNrZ2UxeHVJQ0FnSUNBZ2RtRnlJR0Z5WjNOSmJtUmxlQ0E5SUMweExGeHVJQ0FnSUNBZ0lDQWdJR0Z5WjNOTVpXNW5kR2dnUFNCaGNtZHpMbXhsYm1kMGFDeGNiaUFnSUNBZ0lDQWdJQ0JvYjJ4a1pYSnpUR1Z1WjNSb0lEMGdhRzlzWkdWeWN5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lDQWdiR1ZtZEVsdVpHVjRJRDBnTFRFc1hHNGdJQ0FnSUNBZ0lDQWdiR1ZtZEV4bGJtZDBhQ0E5SUhCaGNuUnBZV3h6TG14bGJtZDBhQ3hjYmlBZ0lDQWdJQ0FnSUNCeVlXNW5aVXhsYm1kMGFDQTlJRzVoZEdsMlpVMWhlQ2hoY21kelRHVnVaM1JvSUMwZ2FHOXNaR1Z5YzB4bGJtZDBhQ3dnTUNrc1hHNGdJQ0FnSUNBZ0lDQWdjbVZ6ZFd4MElEMGdRWEp5WVhrb2JHVm1kRXhsYm1kMGFDQXJJSEpoYm1kbFRHVnVaM1JvS1N4Y2JpQWdJQ0FnSUNBZ0lDQnBjMVZ1WTNWeWNtbGxaQ0E5SUNGcGMwTjFjbkpwWldRN1hHNWNiaUFnSUNBZ0lIZG9hV3hsSUNncksyeGxablJKYm1SbGVDQThJR3hsWm5STVpXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVnpkV3gwVzJ4bFpuUkpibVJsZUYwZ1BTQndZWEowYVdGc2MxdHNaV1owU1c1a1pYaGRPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdkMmhwYkdVZ0tDc3JZWEpuYzBsdVpHVjRJRHdnYUc5c1pHVnljMHhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTlZibU4xY25KcFpXUWdmSHdnWVhKbmMwbHVaR1Y0SUR3Z1lYSm5jMHhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGMzVnNkRnRvYjJ4a1pYSnpXMkZ5WjNOSmJtUmxlRjFkSUQwZ1lYSm5jMXRoY21kelNXNWtaWGhkTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCM2FHbHNaU0FvY21GdVoyVk1aVzVuZEdndExTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhOMWJIUmJiR1ZtZEVsdVpHVjRLeXRkSUQwZ1lYSm5jMXRoY21kelNXNWtaWGdySzEwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvYVhNZ1puVnVZM1JwYjI0Z2FYTWdiR2xyWlNCZ1kyOXRjRzl6WlVGeVozTmdJR1Y0WTJWd2RDQjBhR0YwSUhSb1pTQmhjbWQxYldWdWRITWdZMjl0Y0c5emFYUnBiMjVjYmlBZ0lDQWdLaUJwY3lCMFlXbHNiM0psWkNCbWIzSWdZRjh1Y0dGeWRHbGhiRkpwWjJoMFlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnWVhKbmN5QlVhR1VnY0hKdmRtbGtaV1FnWVhKbmRXMWxiblJ6TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDlJSEJoY25ScFlXeHpJRlJvWlNCaGNtZDFiV1Z1ZEhNZ2RHOGdZWEJ3Wlc1a0lIUnZJSFJvYjNObElIQnliM1pwWkdWa0xseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUdodmJHUmxjbk1nVkdobElHQndZWEowYVdGc2MyQWdjR3hoWTJWb2IyeGtaWElnYVc1a1pYaGxjeTVjYmlBZ0lDQWdLaUJBY0dGeVlXMXpJSHRpYjI5c1pXRnVmU0JiYVhORGRYSnlhV1ZrWFNCVGNHVmphV1o1SUdOdmJYQnZjMmx1WnlCbWIzSWdZU0JqZFhKeWFXVmtJR1oxYm1OMGFXOXVMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHRnljbUY1SUc5bUlHTnZiWEJ2YzJWa0lHRnlaM1Z0Wlc1MGN5NWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCamIyMXdiM05sUVhKbmMxSnBaMmgwS0dGeVozTXNJSEJoY25ScFlXeHpMQ0JvYjJ4a1pYSnpMQ0JwYzBOMWNuSnBaV1FwSUh0Y2JpQWdJQ0FnSUhaaGNpQmhjbWR6U1c1a1pYZ2dQU0F0TVN4Y2JpQWdJQ0FnSUNBZ0lDQmhjbWR6VEdWdVozUm9JRDBnWVhKbmN5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lDQWdhRzlzWkdWeWMwbHVaR1Y0SUQwZ0xURXNYRzRnSUNBZ0lDQWdJQ0FnYUc5c1pHVnljMHhsYm1kMGFDQTlJR2h2YkdSbGNuTXViR1Z1WjNSb0xGeHVJQ0FnSUNBZ0lDQWdJSEpwWjJoMFNXNWtaWGdnUFNBdE1TeGNiaUFnSUNBZ0lDQWdJQ0J5YVdkb2RFeGxibWQwYUNBOUlIQmhjblJwWVd4ekxteGxibWQwYUN4Y2JpQWdJQ0FnSUNBZ0lDQnlZVzVuWlV4bGJtZDBhQ0E5SUc1aGRHbDJaVTFoZUNoaGNtZHpUR1Z1WjNSb0lDMGdhRzlzWkdWeWMweGxibWQwYUN3Z01Da3NYRzRnSUNBZ0lDQWdJQ0FnY21WemRXeDBJRDBnUVhKeVlYa29jbUZ1WjJWTVpXNW5kR2dnS3lCeWFXZG9kRXhsYm1kMGFDa3NYRzRnSUNBZ0lDQWdJQ0FnYVhOVmJtTjFjbkpwWldRZ1BTQWhhWE5EZFhKeWFXVmtPMXh1WEc0Z0lDQWdJQ0IzYUdsc1pTQW9LeXRoY21kelNXNWtaWGdnUENCeVlXNW5aVXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhOMWJIUmJZWEpuYzBsdVpHVjRYU0E5SUdGeVozTmJZWEpuYzBsdVpHVjRYVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSFpoY2lCdlptWnpaWFFnUFNCaGNtZHpTVzVrWlhnN1hHNGdJQ0FnSUNCM2FHbHNaU0FvS3l0eWFXZG9kRWx1WkdWNElEd2djbWxuYUhSTVpXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVnpkV3gwVzI5bVpuTmxkQ0FySUhKcFoyaDBTVzVrWlhoZElEMGdjR0Z5ZEdsaGJITmJjbWxuYUhSSmJtUmxlRjA3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0IzYUdsc1pTQW9LeXRvYjJ4a1pYSnpTVzVrWlhnZ1BDQm9iMnhrWlhKelRHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwYzFWdVkzVnljbWxsWkNCOGZDQmhjbWR6U1c1a1pYZ2dQQ0JoY21kelRHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVZ6ZFd4MFcyOW1abk5sZENBcklHaHZiR1JsY25OYmFHOXNaR1Z5YzBsdVpHVjRYVjBnUFNCaGNtZHpXMkZ5WjNOSmJtUmxlQ3NyWFR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEYjNCcFpYTWdkR2hsSUhaaGJIVmxjeUJ2WmlCZ2MyOTFjbU5sWUNCMGJ5QmdZWEp5WVhsZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0J6YjNWeVkyVWdWR2hsSUdGeWNtRjVJSFJ2SUdOdmNIa2dkbUZzZFdWeklHWnliMjB1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdXMkZ5Y21GNVBWdGRYU0JVYUdVZ1lYSnlZWGtnZEc4Z1kyOXdlU0IyWVd4MVpYTWdkRzh1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmU0JTWlhSMWNtNXpJR0JoY25KaGVXQXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1kyOXdlVUZ5Y21GNUtITnZkWEpqWlN3Z1lYSnlZWGtwSUh0Y2JpQWdJQ0FnSUhaaGNpQnBibVJsZUNBOUlDMHhMRnh1SUNBZ0lDQWdJQ0FnSUd4bGJtZDBhQ0E5SUhOdmRYSmpaUzVzWlc1bmRHZzdYRzVjYmlBZ0lDQWdJR0Z5Y21GNUlIeDhJQ2hoY25KaGVTQTlJRUZ5Y21GNUtHeGxibWQwYUNrcE8xeHVJQ0FnSUNBZ2QyaHBiR1VnS0NzcmFXNWtaWGdnUENCc1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ1lYSnlZWGxiYVc1a1pYaGRJRDBnYzI5MWNtTmxXMmx1WkdWNFhUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCaGNuSmhlVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEYjNCcFpYTWdjSEp2Y0dWeWRHbGxjeUJ2WmlCZ2MyOTFjbU5sWUNCMGJ5QmdiMkpxWldOMFlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUhOdmRYSmpaU0JVYUdVZ2IySnFaV04wSUhSdklHTnZjSGtnY0hKdmNHVnlkR2xsY3lCbWNtOXRMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlIQnliM0J6SUZSb1pTQndjbTl3WlhKMGVTQnBaR1Z1ZEdsbWFXVnljeUIwYnlCamIzQjVMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQmJiMkpxWldOMFBYdDlYU0JVYUdVZ2IySnFaV04wSUhSdklHTnZjSGtnY0hKdmNHVnlkR2xsY3lCMGJ5NWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQmJZM1Z6ZEc5dGFYcGxjbDBnVkdobElHWjFibU4wYVc5dUlIUnZJR04xYzNSdmJXbDZaU0JqYjNCcFpXUWdkbUZzZFdWekxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdFBZbXBsWTNSOUlGSmxkSFZ5Ym5NZ1lHOWlhbVZqZEdBdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnWTI5d2VVOWlhbVZqZENoemIzVnlZMlVzSUhCeWIzQnpMQ0J2WW1wbFkzUXNJR04xYzNSdmJXbDZaWElwSUh0Y2JpQWdJQ0FnSUhaaGNpQnBjMDVsZHlBOUlDRnZZbXBsWTNRN1hHNGdJQ0FnSUNCdlltcGxZM1FnZkh3Z0tHOWlhbVZqZENBOUlIdDlLVHRjYmx4dUlDQWdJQ0FnZG1GeUlHbHVaR1Y0SUQwZ0xURXNYRzRnSUNBZ0lDQWdJQ0FnYkdWdVozUm9JRDBnY0hKdmNITXViR1Z1WjNSb08xeHVYRzRnSUNBZ0lDQjNhR2xzWlNBb0t5dHBibVJsZUNBOElHeGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnYTJWNUlEMGdjSEp2Y0hOYmFXNWtaWGhkTzF4dVhHNGdJQ0FnSUNBZ0lIWmhjaUJ1WlhkV1lXeDFaU0E5SUdOMWMzUnZiV2w2WlhKY2JpQWdJQ0FnSUNBZ0lDQS9JR04xYzNSdmJXbDZaWElvYjJKcVpXTjBXMnRsZVYwc0lITnZkWEpqWlZ0clpYbGRMQ0JyWlhrc0lHOWlhbVZqZEN3Z2MyOTFjbU5sS1Z4dUlDQWdJQ0FnSUNBZ0lEb2dkVzVrWldacGJtVmtPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaHVaWGRXWVd4MVpTQTlQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdibVYzVm1Gc2RXVWdQU0J6YjNWeVkyVmJhMlY1WFR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnBaaUFvYVhOT1pYY3BJSHRjYmlBZ0lDQWdJQ0FnSUNCaVlYTmxRWE56YVdkdVZtRnNkV1VvYjJKcVpXTjBMQ0JyWlhrc0lHNWxkMVpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0JoYzNOcFoyNVdZV3gxWlNodlltcGxZM1FzSUd0bGVTd2dibVYzVm1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiMkpxWldOME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnZjR2xsY3lCdmQyNGdjM2x0WW05c2N5QnZaaUJnYzI5MWNtTmxZQ0IwYnlCZ2IySnFaV04wWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJSE52ZFhKalpTQlVhR1VnYjJKcVpXTjBJSFJ2SUdOdmNIa2djM2x0WW05c2N5Qm1jbTl0TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0JiYjJKcVpXTjBQWHQ5WFNCVWFHVWdiMkpxWldOMElIUnZJR052Y0hrZ2MzbHRZbTlzY3lCMGJ5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdUMkpxWldOMGZTQlNaWFIxY201eklHQnZZbXBsWTNSZ0xseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdOdmNIbFRlVzFpYjJ4ektITnZkWEpqWlN3Z2IySnFaV04wS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWTI5d2VVOWlhbVZqZENoemIzVnlZMlVzSUdkbGRGTjViV0p2YkhNb2MyOTFjbU5sS1N3Z2IySnFaV04wS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGIzQnBaWE1nYjNkdUlHRnVaQ0JwYm1obGNtbDBaV1FnYzNsdFltOXNjeUJ2WmlCZ2MyOTFjbU5sWUNCMGJ5QmdiMkpxWldOMFlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUhOdmRYSmpaU0JVYUdVZ2IySnFaV04wSUhSdklHTnZjSGtnYzNsdFltOXNjeUJtY205dExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCYmIySnFaV04wUFh0OVhTQlVhR1VnYjJKcVpXTjBJSFJ2SUdOdmNIa2djM2x0WW05c2N5QjBieTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3VDJKcVpXTjBmU0JTWlhSMWNtNXpJR0J2WW1wbFkzUmdMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHTnZjSGxUZVcxaWIyeHpTVzRvYzI5MWNtTmxMQ0J2WW1wbFkzUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmpiM0I1VDJKcVpXTjBLSE52ZFhKalpTd2daMlYwVTNsdFltOXNjMGx1S0hOdmRYSmpaU2tzSUc5aWFtVmpkQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTNKbFlYUmxjeUJoSUdaMWJtTjBhVzl1SUd4cGEyVWdZRjh1WjNKdmRYQkNlV0F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJSE5sZEhSbGNpQlVhR1VnWm5WdVkzUnBiMjRnZEc4Z2MyVjBJR0ZqWTNWdGRXeGhkRzl5SUhaaGJIVmxjeTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JiYVc1cGRHbGhiR2w2WlhKZElGUm9aU0JoWTJOMWJYVnNZWFJ2Y2lCdlltcGxZM1FnYVc1cGRHbGhiR2w2WlhJdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwWjFibU4wYVc5dWZTQlNaWFIxY201eklIUm9aU0J1WlhjZ1lXZG5jbVZuWVhSdmNpQm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCamNtVmhkR1ZCWjJkeVpXZGhkRzl5S0hObGRIUmxjaXdnYVc1cGRHbGhiR2w2WlhJcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCbWRXNWpkR2x2YmloamIyeHNaV04wYVc5dUxDQnBkR1Z5WVhSbFpTa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ1puVnVZeUE5SUdselFYSnlZWGtvWTI5c2JHVmpkR2x2YmlrZ1B5QmhjbkpoZVVGblozSmxaMkYwYjNJZ09pQmlZWE5sUVdkbmNtVm5ZWFJ2Y2l4Y2JpQWdJQ0FnSUNBZ0lDQWdJR0ZqWTNWdGRXeGhkRzl5SUQwZ2FXNXBkR2xoYkdsNlpYSWdQeUJwYm1sMGFXRnNhWHBsY2lncElEb2dlMzA3WEc1Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaMWJtTW9ZMjlzYkdWamRHbHZiaXdnYzJWMGRHVnlMQ0JuWlhSSmRHVnlZWFJsWlNocGRHVnlZWFJsWlN3Z01pa3NJR0ZqWTNWdGRXeGhkRzl5S1R0Y2JpQWdJQ0FnSUgwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElHWjFibU4wYVc5dUlHeHBhMlVnWUY4dVlYTnphV2R1WUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnWVhOemFXZHVaWElnVkdobElHWjFibU4wYVc5dUlIUnZJR0Z6YzJsbmJpQjJZV3gxWlhNdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwWjFibU4wYVc5dWZTQlNaWFIxY201eklIUm9aU0J1WlhjZ1lYTnphV2R1WlhJZ1puVnVZM1JwYjI0dVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnWTNKbFlYUmxRWE56YVdkdVpYSW9ZWE56YVdkdVpYSXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmlZWE5sVW1WemRDaG1kVzVqZEdsdmJpaHZZbXBsWTNRc0lITnZkWEpqWlhNcElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUdsdVpHVjRJRDBnTFRFc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzWlc1bmRHZ2dQU0J6YjNWeVkyVnpMbXhsYm1kMGFDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdOMWMzUnZiV2w2WlhJZ1BTQnNaVzVuZEdnZ1BpQXhJRDhnYzI5MWNtTmxjMXRzWlc1bmRHZ2dMU0F4WFNBNklIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdkMVlYSmtJRDBnYkdWdVozUm9JRDRnTWlBL0lITnZkWEpqWlhOYk1sMGdPaUIxYm1SbFptbHVaV1E3WEc1Y2JpQWdJQ0FnSUNBZ1kzVnpkRzl0YVhwbGNpQTlJQ2hoYzNOcFoyNWxjaTVzWlc1bmRHZ2dQaUF6SUNZbUlIUjVjR1Z2WmlCamRYTjBiMjFwZW1WeUlEMDlJQ2RtZFc1amRHbHZiaWNwWEc0Z0lDQWdJQ0FnSUNBZ1B5QW9iR1Z1WjNSb0xTMHNJR04xYzNSdmJXbDZaWElwWEc0Z0lDQWdJQ0FnSUNBZ09pQjFibVJsWm1sdVpXUTdYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tHZDFZWEprSUNZbUlHbHpTWFJsY21GMFpXVkRZV3hzS0hOdmRYSmpaWE5iTUYwc0lITnZkWEpqWlhOYk1WMHNJR2QxWVhKa0tTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdOMWMzUnZiV2w2WlhJZ1BTQnNaVzVuZEdnZ1BDQXpJRDhnZFc1a1pXWnBibVZrSURvZ1kzVnpkRzl0YVhwbGNqdGNiaUFnSUNBZ0lDQWdJQ0JzWlc1bmRHZ2dQU0F4TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHOWlhbVZqZENBOUlFOWlhbVZqZENodlltcGxZM1FwTzF4dUlDQWdJQ0FnSUNCM2FHbHNaU0FvS3l0cGJtUmxlQ0E4SUd4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lIWmhjaUJ6YjNWeVkyVWdQU0J6YjNWeVkyVnpXMmx1WkdWNFhUdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2MyOTFjbU5sS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JoYzNOcFoyNWxjaWh2WW1wbFkzUXNJSE52ZFhKalpTd2dhVzVrWlhnc0lHTjFjM1J2YldsNlpYSXBPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2IySnFaV04wTzF4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElHQmlZWE5sUldGamFHQWdiM0lnWUdKaGMyVkZZV05vVW1sbmFIUmdJR1oxYm1OMGFXOXVMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQmxZV05vUm5WdVl5QlVhR1VnWm5WdVkzUnBiMjRnZEc4Z2FYUmxjbUYwWlNCdmRtVnlJR0VnWTI5c2JHVmpkR2x2Ymk1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0bWNtOXRVbWxuYUhSZElGTndaV05wWm5rZ2FYUmxjbUYwYVc1bklHWnliMjBnY21sbmFIUWdkRzhnYkdWbWRDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdSblZ1WTNScGIyNTlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QmlZWE5sSUdaMWJtTjBhVzl1TGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR055WldGMFpVSmhjMlZGWVdOb0tHVmhZMmhHZFc1akxDQm1jbTl0VW1sbmFIUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQm1kVzVqZEdsdmJpaGpiMnhzWldOMGFXOXVMQ0JwZEdWeVlYUmxaU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9ZMjlzYkdWamRHbHZiaUE5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdOdmJHeGxZM1JwYjI0N1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0NGcGMwRnljbUY1VEdsclpTaGpiMnhzWldOMGFXOXVLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbFlXTm9SblZ1WXloamIyeHNaV04wYVc5dUxDQnBkR1Z5WVhSbFpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZG1GeUlHeGxibWQwYUNBOUlHTnZiR3hsWTNScGIyNHViR1Z1WjNSb0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnYVc1a1pYZ2dQU0JtY205dFVtbG5hSFFnUHlCc1pXNW5kR2dnT2lBdE1TeGNiaUFnSUNBZ0lDQWdJQ0FnSUdsMFpYSmhZbXhsSUQwZ1QySnFaV04wS0dOdmJHeGxZM1JwYjI0cE8xeHVYRzRnSUNBZ0lDQWdJSGRvYVd4bElDZ29abkp2YlZKcFoyaDBJRDhnYVc1a1pYZ3RMU0E2SUNzcmFXNWtaWGdnUENCc1pXNW5kR2dwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dsMFpYSmhkR1ZsS0dsMFpYSmhZbXhsVzJsdVpHVjRYU3dnYVc1a1pYZ3NJR2wwWlhKaFlteGxLU0E5UFQwZ1ptRnNjMlVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWTI5c2JHVmpkR2x2Ymp0Y2JpQWdJQ0FnSUgwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElHSmhjMlVnWm5WdVkzUnBiMjRnWm05eUlHMWxkR2h2WkhNZ2JHbHJaU0JnWHk1bWIzSkpibUFnWVc1a0lHQmZMbVp2Y2s5M2JtQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyWnliMjFTYVdkb2RGMGdVM0JsWTJsbWVTQnBkR1Z5WVhScGJtY2dabkp2YlNCeWFXZG9kQ0IwYnlCc1pXWjBMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRHZFc1amRHbHZibjBnVW1WMGRYSnVjeUIwYUdVZ2JtVjNJR0poYzJVZ1puVnVZM1JwYjI0dVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnWTNKbFlYUmxRbUZ6WlVadmNpaG1jbTl0VW1sbmFIUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQm1kVzVqZEdsdmJpaHZZbXBsWTNRc0lHbDBaWEpoZEdWbExDQnJaWGx6Um5WdVl5a2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ2FXNWtaWGdnUFNBdE1TeGNiaUFnSUNBZ0lDQWdJQ0FnSUdsMFpYSmhZbXhsSUQwZ1QySnFaV04wS0c5aWFtVmpkQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQndjbTl3Y3lBOUlHdGxlWE5HZFc1aktHOWlhbVZqZENrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzWlc1bmRHZ2dQU0J3Y205d2N5NXNaVzVuZEdnN1hHNWNiaUFnSUNBZ0lDQWdkMmhwYkdVZ0tHeGxibWQwYUMwdEtTQjdYRzRnSUNBZ0lDQWdJQ0FnZG1GeUlHdGxlU0E5SUhCeWIzQnpXMlp5YjIxU2FXZG9kQ0EvSUd4bGJtZDBhQ0E2SUNzcmFXNWtaWGhkTzF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2hwZEdWeVlYUmxaU2hwZEdWeVlXSnNaVnRyWlhsZExDQnJaWGtzSUdsMFpYSmhZbXhsS1NBOVBUMGdabUZzYzJVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2IySnFaV04wTzF4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdFZ1puVnVZM1JwYjI0Z2RHaGhkQ0IzY21Gd2N5QmdablZ1WTJBZ2RHOGdhVzUyYjJ0bElHbDBJSGRwZEdnZ2RHaGxJRzl3ZEdsdmJtRnNJR0IwYUdsellGeHVJQ0FnSUNBcUlHSnBibVJwYm1jZ2IyWWdZSFJvYVhOQmNtZGdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQm1kVzVqSUZSb1pTQm1kVzVqZEdsdmJpQjBieUIzY21Gd0xseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCaWFYUnRZWE5ySUZSb1pTQmlhWFJ0WVhOcklHWnNZV2R6TGlCVFpXVWdZR055WldGMFpWZHlZWEJnSUdadmNpQnRiM0psSUdSbGRHRnBiSE11WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCYmRHaHBjMEZ5WjEwZ1ZHaGxJR0IwYUdsellDQmlhVzVrYVc1bklHOW1JR0JtZFc1allDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdSblZ1WTNScGIyNTlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QjNjbUZ3Y0dWa0lHWjFibU4wYVc5dUxseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdOeVpXRjBaVUpwYm1Rb1puVnVZeXdnWW1sMGJXRnpheXdnZEdocGMwRnlaeWtnZTF4dUlDQWdJQ0FnZG1GeUlHbHpRbWx1WkNBOUlHSnBkRzFoYzJzZ0ppQlhVa0ZRWDBKSlRrUmZSa3hCUnl4Y2JpQWdJQ0FnSUNBZ0lDQkRkRzl5SUQwZ1kzSmxZWFJsUTNSdmNpaG1kVzVqS1R0Y2JseHVJQ0FnSUNBZ1puVnVZM1JwYjI0Z2QzSmhjSEJsY2lncElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUdadUlEMGdLSFJvYVhNZ0ppWWdkR2hwY3lBaFBUMGdjbTl2ZENBbUppQjBhR2x6SUdsdWMzUmhibU5sYjJZZ2QzSmhjSEJsY2lrZ1B5QkRkRzl5SURvZ1puVnVZenRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1p1TG1Gd2NHeDVLR2x6UW1sdVpDQS9JSFJvYVhOQmNtY2dPaUIwYUdsekxDQmhjbWQxYldWdWRITXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlIZHlZWEJ3WlhJN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElHWjFibU4wYVc5dUlHeHBhMlVnWUY4dWJHOTNaWEpHYVhKemRHQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdFpYUm9iMlJPWVcxbElGUm9aU0J1WVcxbElHOW1JSFJvWlNCZ1UzUnlhVzVuWUNCallYTmxJRzFsZEdodlpDQjBieUIxYzJVdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwWjFibU4wYVc5dWZTQlNaWFIxY201eklIUm9aU0J1WlhjZ1kyRnpaU0JtZFc1amRHbHZiaTVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmpjbVZoZEdWRFlYTmxSbWx5YzNRb2JXVjBhRzlrVG1GdFpTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWjFibU4wYVc5dUtITjBjbWx1WnlrZ2UxeHVJQ0FnSUNBZ0lDQnpkSEpwYm1jZ1BTQjBiMU4wY21sdVp5aHpkSEpwYm1jcE8xeHVYRzRnSUNBZ0lDQWdJSFpoY2lCemRISlRlVzFpYjJ4eklEMGdhR0Z6Vlc1cFkyOWtaU2h6ZEhKcGJtY3BYRzRnSUNBZ0lDQWdJQ0FnUHlCemRISnBibWRVYjBGeWNtRjVLSE4wY21sdVp5bGNiaUFnSUNBZ0lDQWdJQ0E2SUhWdVpHVm1hVzVsWkR0Y2JseHVJQ0FnSUNBZ0lDQjJZWElnWTJoeUlEMGdjM1J5VTNsdFltOXNjMXh1SUNBZ0lDQWdJQ0FnSUQ4Z2MzUnlVM2x0WW05c2Mxc3dYVnh1SUNBZ0lDQWdJQ0FnSURvZ2MzUnlhVzVuTG1Ob1lYSkJkQ2d3S1R0Y2JseHVJQ0FnSUNBZ0lDQjJZWElnZEhKaGFXeHBibWNnUFNCemRISlRlVzFpYjJ4elhHNGdJQ0FnSUNBZ0lDQWdQeUJqWVhOMFUyeHBZMlVvYzNSeVUzbHRZbTlzY3l3Z01Ta3VhbTlwYmlnbkp5bGNiaUFnSUNBZ0lDQWdJQ0E2SUhOMGNtbHVaeTV6YkdsalpTZ3hLVHRjYmx4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWTJoeVcyMWxkR2h2WkU1aGJXVmRLQ2tnS3lCMGNtRnBiR2x1Wnp0Y2JpQWdJQ0FnSUgwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElHWjFibU4wYVc5dUlHeHBhMlVnWUY4dVkyRnRaV3hEWVhObFlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1kyRnNiR0poWTJzZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUdOdmJXSnBibVVnWldGamFDQjNiM0prTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0R2RXNWpkR2x2Ym4wZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUdOdmJYQnZkVzVrWlhJZ1puVnVZM1JwYjI0dVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnWTNKbFlYUmxRMjl0Y0c5MWJtUmxjaWhqWVd4c1ltRmpheWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1oxYm1OMGFXOXVLSE4wY21sdVp5a2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZWEp5WVhsU1pXUjFZMlVvZDI5eVpITW9aR1ZpZFhKeUtITjBjbWx1WnlrdWNtVndiR0ZqWlNoeVpVRndiM01zSUNjbktTa3NJR05oYkd4aVlXTnJMQ0FuSnlrN1hHNGdJQ0FnSUNCOU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnlaV0YwWlhNZ1lTQm1kVzVqZEdsdmJpQjBhR0YwSUhCeWIyUjFZMlZ6SUdGdUlHbHVjM1JoYm1ObElHOW1JR0JEZEc5eVlDQnlaV2RoY21Sc1pYTnpJRzltWEc0Z0lDQWdJQ29nZDJobGRHaGxjaUJwZENCM1lYTWdhVzUyYjJ0bFpDQmhjeUJ3WVhKMElHOW1JR0VnWUc1bGQyQWdaWGh3Y21WemMybHZiaUJ2Y2lCaWVTQmdZMkZzYkdBZ2IzSWdZR0Z3Y0d4NVlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1EzUnZjaUJVYUdVZ1kyOXVjM1J5ZFdOMGIzSWdkRzhnZDNKaGNDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdSblZ1WTNScGIyNTlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QjNjbUZ3Y0dWa0lHWjFibU4wYVc5dUxseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdOeVpXRjBaVU4wYjNJb1EzUnZjaWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1oxYm1OMGFXOXVLQ2tnZTF4dUlDQWdJQ0FnSUNBdkx5QlZjMlVnWVNCZ2MzZHBkR05vWUNCemRHRjBaVzFsYm5RZ2RHOGdkMjl5YXlCM2FYUm9JR05zWVhOeklHTnZibk4wY25WamRHOXljeTRnVTJWbFhHNGdJQ0FnSUNBZ0lDOHZJR2gwZEhBNkx5OWxZMjFoTFdsdWRHVnlibUYwYVc5dVlXd3ViM0puTDJWamJXRXRNall5THpjdU1DOGpjMlZqTFdWamJXRnpZM0pwY0hRdFpuVnVZM1JwYjI0dGIySnFaV04wY3kxallXeHNMWFJvYVhOaGNtZDFiV1Z1ZEMxaGNtZDFiV1Z1ZEhOc2FYTjBYRzRnSUNBZ0lDQWdJQzh2SUdadmNpQnRiM0psSUdSbGRHRnBiSE11WEc0Z0lDQWdJQ0FnSUhaaGNpQmhjbWR6SUQwZ1lYSm5kVzFsYm5Sek8xeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tHRnlaM011YkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0F3T2lCeVpYUjFjbTRnYm1WM0lFTjBiM0k3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0F4T2lCeVpYUjFjbTRnYm1WM0lFTjBiM0lvWVhKbmMxc3dYU2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0F5T2lCeVpYUjFjbTRnYm1WM0lFTjBiM0lvWVhKbmMxc3dYU3dnWVhKbmMxc3hYU2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0F6T2lCeVpYUjFjbTRnYm1WM0lFTjBiM0lvWVhKbmMxc3dYU3dnWVhKbmMxc3hYU3dnWVhKbmMxc3lYU2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0EwT2lCeVpYUjFjbTRnYm1WM0lFTjBiM0lvWVhKbmMxc3dYU3dnWVhKbmMxc3hYU3dnWVhKbmMxc3lYU3dnWVhKbmMxc3pYU2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0ExT2lCeVpYUjFjbTRnYm1WM0lFTjBiM0lvWVhKbmMxc3dYU3dnWVhKbmMxc3hYU3dnWVhKbmMxc3lYU3dnWVhKbmMxc3pYU3dnWVhKbmMxczBYU2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0EyT2lCeVpYUjFjbTRnYm1WM0lFTjBiM0lvWVhKbmMxc3dYU3dnWVhKbmMxc3hYU3dnWVhKbmMxc3lYU3dnWVhKbmMxc3pYU3dnWVhKbmMxczBYU3dnWVhKbmMxczFYU2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0EzT2lCeVpYUjFjbTRnYm1WM0lFTjBiM0lvWVhKbmMxc3dYU3dnWVhKbmMxc3hYU3dnWVhKbmMxc3lYU3dnWVhKbmMxc3pYU3dnWVhKbmMxczBYU3dnWVhKbmMxczFYU3dnWVhKbmMxczJYU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2RtRnlJSFJvYVhOQ2FXNWthVzVuSUQwZ1ltRnpaVU55WldGMFpTaERkRzl5TG5CeWIzUnZkSGx3WlNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhOMWJIUWdQU0JEZEc5eUxtRndjR3g1S0hSb2FYTkNhVzVrYVc1bkxDQmhjbWR6S1R0Y2JseHVJQ0FnSUNBZ0lDQXZMeUJOYVcxcFl5QjBhR1VnWTI5dWMzUnlkV04wYjNJbmN5QmdjbVYwZFhKdVlDQmlaV2hoZG1sdmNpNWNiaUFnSUNBZ0lDQWdMeThnVTJWbElHaDBkSEJ6T2k4dlpYTTFMbWRwZEdoMVlpNXBieThqZURFekxqSXVNaUJtYjNJZ2JXOXlaU0JrWlhSaGFXeHpMbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdhWE5QWW1wbFkzUW9jbVZ6ZFd4MEtTQS9JSEpsYzNWc2RDQTZJSFJvYVhOQ2FXNWthVzVuTzF4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdFZ1puVnVZM1JwYjI0Z2RHaGhkQ0IzY21Gd2N5QmdablZ1WTJBZ2RHOGdaVzVoWW14bElHTjFjbko1YVc1bkxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCbWRXNWpJRlJvWlNCbWRXNWpkR2x2YmlCMGJ5QjNjbUZ3TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JpYVhSdFlYTnJJRlJvWlNCaWFYUnRZWE5ySUdac1lXZHpMaUJUWldVZ1lHTnlaV0YwWlZkeVlYQmdJR1p2Y2lCdGIzSmxJR1JsZEdGcGJITXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHRnlhWFI1SUZSb1pTQmhjbWwwZVNCdlppQmdablZ1WTJBdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwWjFibU4wYVc5dWZTQlNaWFIxY201eklIUm9aU0J1WlhjZ2QzSmhjSEJsWkNCbWRXNWpkR2x2Ymk1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJqY21WaGRHVkRkWEp5ZVNobWRXNWpMQ0JpYVhSdFlYTnJMQ0JoY21sMGVTa2dlMXh1SUNBZ0lDQWdkbUZ5SUVOMGIzSWdQU0JqY21WaGRHVkRkRzl5S0daMWJtTXBPMXh1WEc0Z0lDQWdJQ0JtZFc1amRHbHZiaUIzY21Gd2NHVnlLQ2tnZTF4dUlDQWdJQ0FnSUNCMllYSWdiR1Z1WjNSb0lEMGdZWEpuZFcxbGJuUnpMbXhsYm1kMGFDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdGeVozTWdQU0JCY25KaGVTaHNaVzVuZEdncExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYVc1a1pYZ2dQU0JzWlc1bmRHZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNCd2JHRmpaV2h2YkdSbGNpQTlJR2RsZEVodmJHUmxjaWgzY21Gd2NHVnlLVHRjYmx4dUlDQWdJQ0FnSUNCM2FHbHNaU0FvYVc1a1pYZ3RMU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHRnlaM05iYVc1a1pYaGRJRDBnWVhKbmRXMWxiblJ6VzJsdVpHVjRYVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCMllYSWdhRzlzWkdWeWN5QTlJQ2hzWlc1bmRHZ2dQQ0F6SUNZbUlHRnlaM05iTUYwZ0lUMDlJSEJzWVdObGFHOXNaR1Z5SUNZbUlHRnlaM05iYkdWdVozUm9JQzBnTVYwZ0lUMDlJSEJzWVdObGFHOXNaR1Z5S1Z4dUlDQWdJQ0FnSUNBZ0lEOGdXMTFjYmlBZ0lDQWdJQ0FnSUNBNklISmxjR3hoWTJWSWIyeGtaWEp6S0dGeVozTXNJSEJzWVdObGFHOXNaR1Z5S1R0Y2JseHVJQ0FnSUNBZ0lDQnNaVzVuZEdnZ0xUMGdhRzlzWkdWeWN5NXNaVzVuZEdnN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hzWlc1bmRHZ2dQQ0JoY21sMGVTa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJqY21WaGRHVlNaV04xY25KNUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnWm5WdVl5d2dZbWwwYldGemF5d2dZM0psWVhSbFNIbGljbWxrTENCM2NtRndjR1Z5TG5Cc1lXTmxhRzlzWkdWeUxDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCaGNtZHpMQ0JvYjJ4a1pYSnpMQ0IxYm1SbFptbHVaV1FzSUhWdVpHVm1hVzVsWkN3Z1lYSnBkSGtnTFNCc1pXNW5kR2dwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIWmhjaUJtYmlBOUlDaDBhR2x6SUNZbUlIUm9hWE1nSVQwOUlISnZiM1FnSmlZZ2RHaHBjeUJwYm5OMFlXNWpaVzltSUhkeVlYQndaWElwSUQ4Z1EzUnZjaUE2SUdaMWJtTTdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmhjSEJzZVNobWJpd2dkR2hwY3l3Z1lYSm5jeWs3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkM0poY0hCbGNqdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRWdZRjh1Wm1sdVpHQWdiM0lnWUY4dVptbHVaRXhoYzNSZ0lHWjFibU4wYVc5dUxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCbWFXNWtTVzVrWlhoR2RXNWpJRlJvWlNCbWRXNWpkR2x2YmlCMGJ5Qm1hVzVrSUhSb1pTQmpiMnhzWldOMGFXOXVJR2x1WkdWNExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdEdkVzVqZEdsdmJuMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHWnBibVFnWm5WdVkzUnBiMjR1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZM0psWVhSbFJtbHVaQ2htYVc1a1NXNWtaWGhHZFc1aktTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1puVnVZM1JwYjI0b1kyOXNiR1ZqZEdsdmJpd2djSEpsWkdsallYUmxMQ0JtY205dFNXNWtaWGdwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJR2wwWlhKaFlteGxJRDBnVDJKcVpXTjBLR052Ykd4bFkzUnBiMjRwTzF4dUlDQWdJQ0FnSUNCcFppQW9JV2x6UVhKeVlYbE1hV3RsS0dOdmJHeGxZM1JwYjI0cEtTQjdYRzRnSUNBZ0lDQWdJQ0FnZG1GeUlHbDBaWEpoZEdWbElEMGdaMlYwU1hSbGNtRjBaV1VvY0hKbFpHbGpZWFJsTENBektUdGNiaUFnSUNBZ0lDQWdJQ0JqYjJ4c1pXTjBhVzl1SUQwZ2EyVjVjeWhqYjJ4c1pXTjBhVzl1S1R0Y2JpQWdJQ0FnSUNBZ0lDQndjbVZrYVdOaGRHVWdQU0JtZFc1amRHbHZiaWhyWlhrcElIc2djbVYwZFhKdUlHbDBaWEpoZEdWbEtHbDBaWEpoWW14bFcydGxlVjBzSUd0bGVTd2dhWFJsY21GaWJHVXBPeUI5TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIWmhjaUJwYm1SbGVDQTlJR1pwYm1SSmJtUmxlRVoxYm1Nb1kyOXNiR1ZqZEdsdmJpd2djSEpsWkdsallYUmxMQ0JtY205dFNXNWtaWGdwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYVc1a1pYZ2dQaUF0TVNBL0lHbDBaWEpoWW14bFcybDBaWEpoZEdWbElEOGdZMjlzYkdWamRHbHZibHRwYm1SbGVGMGdPaUJwYm1SbGVGMGdPaUIxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0I5TzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOeVpXRjBaWE1nWVNCZ1h5NW1iRzkzWUNCdmNpQmdYeTVtYkc5M1VtbG5hSFJnSUdaMWJtTjBhVzl1TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMkp2YjJ4bFlXNTlJRnRtY205dFVtbG5hSFJkSUZOd1pXTnBabmtnYVhSbGNtRjBhVzVuSUdaeWIyMGdjbWxuYUhRZ2RHOGdiR1ZtZEM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1JuVnVZM1JwYjI1OUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCbWJHOTNJR1oxYm1OMGFXOXVMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHTnlaV0YwWlVac2IzY29abkp2YlZKcFoyaDBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabXhoZEZKbGMzUW9ablZ1WTNScGIyNG9ablZ1WTNNcElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUd4bGJtZDBhQ0E5SUdaMWJtTnpMbXhsYm1kMGFDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdsdVpHVjRJRDBnYkdWdVozUm9MRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NISmxjbVZ4SUQwZ1RHOWtZWE5vVjNKaGNIQmxjaTV3Y205MGIzUjVjR1V1ZEdoeWRUdGNibHh1SUNBZ0lDQWdJQ0JwWmlBb1puSnZiVkpwWjJoMEtTQjdYRzRnSUNBZ0lDQWdJQ0FnWm5WdVkzTXVjbVYyWlhKelpTZ3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2hwYm1SbGVDMHRLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RtRnlJR1oxYm1NZ1BTQm1kVzVqYzF0cGJtUmxlRjA3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQm1kVzVqSUNFOUlDZG1kVzVqZEdsdmJpY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9SbFZPUTE5RlVsSlBVbDlVUlZoVUtUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLSEJ5WlhKbGNTQW1KaUFoZDNKaGNIQmxjaUFtSmlCblpYUkdkVzVqVG1GdFpTaG1kVzVqS1NBOVBTQW5kM0poY0hCbGNpY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUIzY21Gd2NHVnlJRDBnYm1WM0lFeHZaR0Z6YUZkeVlYQndaWElvVzEwc0lIUnlkV1VwTzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JwYm1SbGVDQTlJSGR5WVhCd1pYSWdQeUJwYm1SbGVDQTZJR3hsYm1kMGFEdGNiaUFnSUNBZ0lDQWdkMmhwYkdVZ0tDc3JhVzVrWlhnZ1BDQnNaVzVuZEdncElIdGNiaUFnSUNBZ0lDQWdJQ0JtZFc1aklEMGdablZ1WTNOYmFXNWtaWGhkTzF4dVhHNGdJQ0FnSUNBZ0lDQWdkbUZ5SUdaMWJtTk9ZVzFsSUQwZ1oyVjBSblZ1WTA1aGJXVW9ablZ1WXlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdSaGRHRWdQU0JtZFc1alRtRnRaU0E5UFNBbmQzSmhjSEJsY2ljZ1B5Qm5aWFJFWVhSaEtHWjFibU1wSURvZ2RXNWtaV1pwYm1Wa08xeHVYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHUmhkR0VnSmlZZ2FYTk1ZWHBwWVdKc1pTaGtZWFJoV3pCZEtTQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JoZEdGYk1WMGdQVDBnS0ZkU1FWQmZRVkpaWDBaTVFVY2dmQ0JYVWtGUVgwTlZVbEpaWDBaTVFVY2dmQ0JYVWtGUVgxQkJVbFJKUVV4ZlJreEJSeUI4SUZkU1FWQmZVa1ZCVWtkZlJreEJSeWtnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBaFpHRjBZVnMwWFM1c1pXNW5kR2dnSmlZZ1pHRjBZVnM1WFNBOVBTQXhYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2QzSmhjSEJsY2lBOUlIZHlZWEJ3WlhKYloyVjBSblZ1WTA1aGJXVW9aR0YwWVZzd1hTbGRMbUZ3Y0d4NUtIZHlZWEJ3WlhJc0lHUmhkR0ZiTTEwcE8xeHVJQ0FnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCM2NtRndjR1Z5SUQwZ0tHWjFibU11YkdWdVozUm9JRDA5SURFZ0ppWWdhWE5NWVhwcFlXSnNaU2htZFc1aktTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1B5QjNjbUZ3Y0dWeVcyWjFibU5PWVcxbFhTZ3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEb2dkM0poY0hCbGNpNTBhSEoxS0daMWJtTXBPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1puVnVZM1JwYjI0b0tTQjdYRzRnSUNBZ0lDQWdJQ0FnZG1GeUlHRnlaM01nUFNCaGNtZDFiV1Z1ZEhNc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGJIVmxJRDBnWVhKbmMxc3dYVHRjYmx4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2gzY21Gd2NHVnlJQ1ltSUdGeVozTXViR1Z1WjNSb0lEMDlJREVnSmlZZ2FYTkJjbkpoZVNoMllXeDFaU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjNjbUZ3Y0dWeUxuQnNZVzUwS0haaGJIVmxLUzUyWVd4MVpTZ3BPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQjJZWElnYVc1a1pYZ2dQU0F3TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhOMWJIUWdQU0JzWlc1bmRHZ2dQeUJtZFc1amMxdHBibVJsZUYwdVlYQndiSGtvZEdocGN5d2dZWEpuY3lrZ09pQjJZV3gxWlR0Y2JseHVJQ0FnSUNBZ0lDQWdJSGRvYVd4bElDZ3JLMmx1WkdWNElEd2diR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYTjFiSFFnUFNCbWRXNWpjMXRwYm1SbGVGMHVZMkZzYkNoMGFHbHpMQ0J5WlhOMWJIUXBPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRM0psWVhSbGN5QmhJR1oxYm1OMGFXOXVJSFJvWVhRZ2QzSmhjSE1nWUdaMWJtTmdJSFJ2SUdsdWRtOXJaU0JwZENCM2FYUm9JRzl3ZEdsdmJtRnNJR0IwYUdsellGeHVJQ0FnSUNBcUlHSnBibVJwYm1jZ2IyWWdZSFJvYVhOQmNtZGdMQ0J3WVhKMGFXRnNJR0Z3Y0d4cFkyRjBhVzl1TENCaGJtUWdZM1Z5Y25scGJtY3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OGMzUnlhVzVuZlNCbWRXNWpJRlJvWlNCbWRXNWpkR2x2YmlCdmNpQnRaWFJvYjJRZ2JtRnRaU0IwYnlCM2NtRndMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmlhWFJ0WVhOcklGUm9aU0JpYVhSdFlYTnJJR1pzWVdkekxpQlRaV1VnWUdOeVpXRjBaVmR5WVhCZ0lHWnZjaUJ0YjNKbElHUmxkR0ZwYkhNdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQmJkR2hwYzBGeVoxMGdWR2hsSUdCMGFHbHpZQ0JpYVc1a2FXNW5JRzltSUdCbWRXNWpZQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZTQmJjR0Z5ZEdsaGJITmRJRlJvWlNCaGNtZDFiV1Z1ZEhNZ2RHOGdjSEpsY0dWdVpDQjBieUIwYUc5elpTQndjbTkyYVdSbFpDQjBiMXh1SUNBZ0lDQXFJQ0IwYUdVZ2JtVjNJR1oxYm1OMGFXOXVMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlGdG9iMnhrWlhKelhTQlVhR1VnWUhCaGNuUnBZV3h6WUNCd2JHRmpaV2h2YkdSbGNpQnBibVJsZUdWekxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUZ0d1lYSjBhV0ZzYzFKcFoyaDBYU0JVYUdVZ1lYSm5kVzFsYm5SeklIUnZJR0Z3Y0dWdVpDQjBieUIwYUc5elpTQndjbTkyYVdSbFpGeHVJQ0FnSUNBcUlDQjBieUIwYUdVZ2JtVjNJR1oxYm1OMGFXOXVMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlGdG9iMnhrWlhKelVtbG5hSFJkSUZSb1pTQmdjR0Z5ZEdsaGJITlNhV2RvZEdBZ2NHeGhZMlZvYjJ4a1pYSWdhVzVrWlhobGN5NWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCYllYSm5VRzl6WFNCVWFHVWdZWEpuZFcxbGJuUWdjRzl6YVhScGIyNXpJRzltSUhSb1pTQnVaWGNnWm5WdVkzUnBiMjR1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnRoY25sZElGUm9aU0JoY21sMGVTQmpZWEFnYjJZZ1lHWjFibU5nTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JiWVhKcGRIbGRJRlJvWlNCaGNtbDBlU0J2WmlCZ1puVnVZMkF1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBaMWJtTjBhVzl1ZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnZDNKaGNIQmxaQ0JtZFc1amRHbHZiaTVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmpjbVZoZEdWSWVXSnlhV1FvWm5WdVl5d2dZbWwwYldGemF5d2dkR2hwYzBGeVp5d2djR0Z5ZEdsaGJITXNJR2h2YkdSbGNuTXNJSEJoY25ScFlXeHpVbWxuYUhRc0lHaHZiR1JsY25OU2FXZG9kQ3dnWVhKblVHOXpMQ0JoY25rc0lHRnlhWFI1S1NCN1hHNGdJQ0FnSUNCMllYSWdhWE5CY25rZ1BTQmlhWFJ0WVhOcklDWWdWMUpCVUY5QlVsbGZSa3hCUnl4Y2JpQWdJQ0FnSUNBZ0lDQnBjMEpwYm1RZ1BTQmlhWFJ0WVhOcklDWWdWMUpCVUY5Q1NVNUVYMFpNUVVjc1hHNGdJQ0FnSUNBZ0lDQWdhWE5DYVc1a1MyVjVJRDBnWW1sMGJXRnpheUFtSUZkU1FWQmZRa2xPUkY5TFJWbGZSa3hCUnl4Y2JpQWdJQ0FnSUNBZ0lDQnBjME4xY25KcFpXUWdQU0JpYVhSdFlYTnJJQ1lnS0ZkU1FWQmZRMVZTVWxsZlJreEJSeUI4SUZkU1FWQmZRMVZTVWxsZlVrbEhTRlJmUmt4QlJ5a3NYRzRnSUNBZ0lDQWdJQ0FnYVhOR2JHbHdJRDBnWW1sMGJXRnpheUFtSUZkU1FWQmZSa3hKVUY5R1RFRkhMRnh1SUNBZ0lDQWdJQ0FnSUVOMGIzSWdQU0JwYzBKcGJtUkxaWGtnUHlCMWJtUmxabWx1WldRZ09pQmpjbVZoZEdWRGRHOXlLR1oxYm1NcE8xeHVYRzRnSUNBZ0lDQm1kVzVqZEdsdmJpQjNjbUZ3Y0dWeUtDa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ2JHVnVaM1JvSUQwZ1lYSm5kVzFsYm5SekxteGxibWQwYUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR0Z5WjNNZ1BTQkJjbkpoZVNoc1pXNW5kR2dwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdhVzVrWlhnZ1BTQnNaVzVuZEdnN1hHNWNiaUFnSUNBZ0lDQWdkMmhwYkdVZ0tHbHVaR1Y0TFMwcElIdGNiaUFnSUNBZ0lDQWdJQ0JoY21kelcybHVaR1Y0WFNBOUlHRnlaM1Z0Wlc1MGMxdHBibVJsZUYwN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0dselEzVnljbWxsWkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFpoY2lCd2JHRmpaV2h2YkdSbGNpQTlJR2RsZEVodmJHUmxjaWgzY21Gd2NHVnlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdhRzlzWkdWeWMwTnZkVzUwSUQwZ1kyOTFiblJJYjJ4a1pYSnpLR0Z5WjNNc0lIQnNZV05sYUc5c1pHVnlLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9jR0Z5ZEdsaGJITXBJSHRjYmlBZ0lDQWdJQ0FnSUNCaGNtZHpJRDBnWTI5dGNHOXpaVUZ5WjNNb1lYSm5jeXdnY0dGeWRHbGhiSE1zSUdodmJHUmxjbk1zSUdselEzVnljbWxsWkNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0hCaGNuUnBZV3h6VW1sbmFIUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCaGNtZHpJRDBnWTI5dGNHOXpaVUZ5WjNOU2FXZG9kQ2hoY21kekxDQndZWEowYVdGc2MxSnBaMmgwTENCb2IyeGtaWEp6VW1sbmFIUXNJR2x6UTNWeWNtbGxaQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2JHVnVaM1JvSUMwOUlHaHZiR1JsY25ORGIzVnVkRHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHbHpRM1Z5Y21sbFpDQW1KaUJzWlc1bmRHZ2dQQ0JoY21sMGVTa2dlMXh1SUNBZ0lDQWdJQ0FnSUhaaGNpQnVaWGRJYjJ4a1pYSnpJRDBnY21Wd2JHRmpaVWh2YkdSbGNuTW9ZWEpuY3l3Z2NHeGhZMlZvYjJ4a1pYSXBPMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJqY21WaGRHVlNaV04xY25KNUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnWm5WdVl5d2dZbWwwYldGemF5d2dZM0psWVhSbFNIbGljbWxrTENCM2NtRndjR1Z5TG5Cc1lXTmxhRzlzWkdWeUxDQjBhR2x6UVhKbkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnWVhKbmN5d2dibVYzU0c5c1pHVnljeXdnWVhKblVHOXpMQ0JoY25rc0lHRnlhWFI1SUMwZ2JHVnVaM1JvWEc0Z0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0IyWVhJZ2RHaHBjMEpwYm1ScGJtY2dQU0JwYzBKcGJtUWdQeUIwYUdselFYSm5JRG9nZEdocGN5eGNiaUFnSUNBZ0lDQWdJQ0FnSUdadUlEMGdhWE5DYVc1a1MyVjVJRDhnZEdocGMwSnBibVJwYm1kYlpuVnVZMTBnT2lCbWRXNWpPMXh1WEc0Z0lDQWdJQ0FnSUd4bGJtZDBhQ0E5SUdGeVozTXViR1Z1WjNSb08xeHVJQ0FnSUNBZ0lDQnBaaUFvWVhKblVHOXpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1lYSm5jeUE5SUhKbGIzSmtaWElvWVhKbmN5d2dZWEpuVUc5ektUdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2hwYzBac2FYQWdKaVlnYkdWdVozUm9JRDRnTVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR0Z5WjNNdWNtVjJaWEp6WlNncE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR2xtSUNocGMwRnllU0FtSmlCaGNua2dQQ0JzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCaGNtZHpMbXhsYm1kMGFDQTlJR0Z5ZVR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5QW1KaUIwYUdseklDRTlQU0J5YjI5MElDWW1JSFJvYVhNZ2FXNXpkR0Z1WTJWdlppQjNjbUZ3Y0dWeUtTQjdYRzRnSUNBZ0lDQWdJQ0FnWm00Z1BTQkRkRzl5SUh4OElHTnlaV0YwWlVOMGIzSW9abTRwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCbWJpNWhjSEJzZVNoMGFHbHpRbWx1WkdsdVp5d2dZWEpuY3lrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnZDNKaGNIQmxjanRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVnpJR0VnWm5WdVkzUnBiMjRnYkdsclpTQmdYeTVwYm5abGNuUkNlV0F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJSE5sZEhSbGNpQlVhR1VnWm5WdVkzUnBiMjRnZEc4Z2MyVjBJR0ZqWTNWdGRXeGhkRzl5SUhaaGJIVmxjeTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0IwYjBsMFpYSmhkR1ZsSUZSb1pTQm1kVzVqZEdsdmJpQjBieUJ5WlhOdmJIWmxJR2wwWlhKaGRHVmxjeTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3Um5WdVkzUnBiMjU5SUZKbGRIVnlibk1nZEdobElHNWxkeUJwYm5abGNuUmxjaUJtZFc1amRHbHZiaTVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmpjbVZoZEdWSmJuWmxjblJsY2loelpYUjBaWElzSUhSdlNYUmxjbUYwWldVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCbWRXNWpkR2x2YmlodlltcGxZM1FzSUdsMFpYSmhkR1ZsS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCaVlYTmxTVzUyWlhKMFpYSW9iMkpxWldOMExDQnpaWFIwWlhJc0lIUnZTWFJsY21GMFpXVW9hWFJsY21GMFpXVXBMQ0I3ZlNrN1hHNGdJQ0FnSUNCOU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnlaV0YwWlhNZ1lTQm1kVzVqZEdsdmJpQjBhR0YwSUhCbGNtWnZjbTF6SUdFZ2JXRjBhR1Z0WVhScFkyRnNJRzl3WlhKaGRHbHZiaUJ2YmlCMGQyOGdkbUZzZFdWekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCdmNHVnlZWFJ2Y2lCVWFHVWdablZ1WTNScGIyNGdkRzhnY0dWeVptOXliU0IwYUdVZ2IzQmxjbUYwYVc5dUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYlpHVm1ZWFZzZEZaaGJIVmxYU0JVYUdVZ2RtRnNkV1VnZFhObFpDQm1iM0lnWUhWdVpHVm1hVzVsWkdBZ1lYSm5kVzFsYm5SekxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdEdkVzVqZEdsdmJuMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHMWhkR2hsYldGMGFXTmhiQ0J2Y0dWeVlYUnBiMjRnWm5WdVkzUnBiMjR1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZM0psWVhSbFRXRjBhRTl3WlhKaGRHbHZiaWh2Y0dWeVlYUnZjaXdnWkdWbVlYVnNkRlpoYkhWbEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1puVnVZM1JwYjI0b2RtRnNkV1VzSUc5MGFHVnlLU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQnlaWE4xYkhRN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gyWVd4MVpTQTlQVDBnZFc1a1pXWnBibVZrSUNZbUlHOTBhR1Z5SUQwOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWkdWbVlYVnNkRlpoYkhWbE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR2xtSUNoMllXeDFaU0FoUFQwZ2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WemRXeDBJRDBnZG1Gc2RXVTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tHOTBhR1Z5SUNFOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9jbVZ6ZFd4MElEMDlQU0IxYm1SbFptbHVaV1FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnZkR2hsY2p0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCMllXeDFaU0E5UFNBbmMzUnlhVzVuSnlCOGZDQjBlWEJsYjJZZ2IzUm9aWElnUFQwZ0ozTjBjbWx1WnljcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGJIVmxJRDBnWW1GelpWUnZVM1J5YVc1bktIWmhiSFZsS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJRzkwYUdWeUlEMGdZbUZ6WlZSdlUzUnlhVzVuS0c5MGFHVnlLVHRjYmlBZ0lDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZzZFdVZ1BTQmlZWE5sVkc5T2RXMWlaWElvZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2IzUm9aWElnUFNCaVlYTmxWRzlPZFcxaVpYSW9iM1JvWlhJcE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCeVpYTjFiSFFnUFNCdmNHVnlZWFJ2Y2loMllXeDFaU3dnYjNSb1pYSXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU55WldGMFpYTWdZU0JtZFc1amRHbHZiaUJzYVd0bElHQmZMbTkyWlhKZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCaGNuSmhlVVoxYm1NZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUdsMFpYSmhkR1VnYjNabGNpQnBkR1Z5WVhSbFpYTXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMFoxYm1OMGFXOXVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2diM1psY2lCbWRXNWpkR2x2Ymk1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJqY21WaGRHVlBkbVZ5S0dGeWNtRjVSblZ1WXlrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdac1lYUlNaWE4wS0daMWJtTjBhVzl1S0dsMFpYSmhkR1ZsY3lrZ2UxeHVJQ0FnSUNBZ0lDQnBkR1Z5WVhSbFpYTWdQU0JoY25KaGVVMWhjQ2hwZEdWeVlYUmxaWE1zSUdKaGMyVlZibUZ5ZVNoblpYUkpkR1Z5WVhSbFpTZ3BLU2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJpWVhObFVtVnpkQ2htZFc1amRHbHZiaWhoY21kektTQjdYRzRnSUNBZ0lDQWdJQ0FnZG1GeUlIUm9hWE5CY21jZ1BTQjBhR2x6TzF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCaGNuSmhlVVoxYm1Nb2FYUmxjbUYwWldWekxDQm1kVzVqZEdsdmJpaHBkR1Z5WVhSbFpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGd2NHeDVLR2wwWlhKaGRHVmxMQ0IwYUdselFYSm5MQ0JoY21kektUdGNiaUFnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVnpJSFJvWlNCd1lXUmthVzVuSUdadmNpQmdjM1J5YVc1bllDQmlZWE5sWkNCdmJpQmdiR1Z1WjNSb1lDNGdWR2hsSUdCamFHRnljMkFnYzNSeWFXNW5YRzRnSUNBZ0lDb2dhWE1nZEhKMWJtTmhkR1ZrSUdsbUlIUm9aU0J1ZFcxaVpYSWdiMllnWTJoaGNtRmpkR1Z5Y3lCbGVHTmxaV1J6SUdCc1pXNW5kR2hnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiR1Z1WjNSb0lGUm9aU0J3WVdSa2FXNW5JR3hsYm1kMGFDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyTm9ZWEp6UFNjZ0oxMGdWR2hsSUhOMGNtbHVaeUIxYzJWa0lHRnpJSEJoWkdScGJtY3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlM04wY21sdVozMGdVbVYwZFhKdWN5QjBhR1VnY0dGa1pHbHVaeUJtYjNJZ1lITjBjbWx1WjJBdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnWTNKbFlYUmxVR0ZrWkdsdVp5aHNaVzVuZEdnc0lHTm9ZWEp6S1NCN1hHNGdJQ0FnSUNCamFHRnljeUE5SUdOb1lYSnpJRDA5UFNCMWJtUmxabWx1WldRZ1B5QW5JQ2NnT2lCaVlYTmxWRzlUZEhKcGJtY29ZMmhoY25NcE8xeHVYRzRnSUNBZ0lDQjJZWElnWTJoaGNuTk1aVzVuZEdnZ1BTQmphR0Z5Y3k1c1pXNW5kR2c3WEc0Z0lDQWdJQ0JwWmlBb1kyaGhjbk5NWlc1bmRHZ2dQQ0F5S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCamFHRnljMHhsYm1kMGFDQS9JR0poYzJWU1pYQmxZWFFvWTJoaGNuTXNJR3hsYm1kMGFDa2dPaUJqYUdGeWN6dGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0JpWVhObFVtVndaV0YwS0dOb1lYSnpMQ0J1WVhScGRtVkRaV2xzS0d4bGJtZDBhQ0F2SUhOMGNtbHVaMU5wZW1Vb1kyaGhjbk1wS1NrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYUdGelZXNXBZMjlrWlNoamFHRnljeWxjYmlBZ0lDQWdJQ0FnUHlCallYTjBVMnhwWTJVb2MzUnlhVzVuVkc5QmNuSmhlU2h5WlhOMWJIUXBMQ0F3TENCc1pXNW5kR2dwTG1wdmFXNG9KeWNwWEc0Z0lDQWdJQ0FnSURvZ2NtVnpkV3gwTG5Oc2FXTmxLREFzSUd4bGJtZDBhQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTNKbFlYUmxjeUJoSUdaMWJtTjBhVzl1SUhSb1lYUWdkM0poY0hNZ1lHWjFibU5nSUhSdklHbHVkbTlyWlNCcGRDQjNhWFJvSUhSb1pTQmdkR2hwYzJBZ1ltbHVaR2x1WjF4dUlDQWdJQ0FxSUc5bUlHQjBhR2x6UVhKbllDQmhibVFnWUhCaGNuUnBZV3h6WUNCd2NtVndaVzVrWldRZ2RHOGdkR2hsSUdGeVozVnRaVzUwY3lCcGRDQnlaV05sYVhabGN5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1puVnVZeUJVYUdVZ1puVnVZM1JwYjI0Z2RHOGdkM0poY0M1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWW1sMGJXRnpheUJVYUdVZ1ltbDBiV0Z6YXlCbWJHRm5jeTRnVTJWbElHQmpjbVZoZEdWWGNtRndZQ0JtYjNJZ2JXOXlaU0JrWlhSaGFXeHpMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdLbjBnZEdocGMwRnlaeUJVYUdVZ1lIUm9hWE5nSUdKcGJtUnBibWNnYjJZZ1lHWjFibU5nTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDlJSEJoY25ScFlXeHpJRlJvWlNCaGNtZDFiV1Z1ZEhNZ2RHOGdjSEpsY0dWdVpDQjBieUIwYUc5elpTQndjbTkyYVdSbFpDQjBiMXh1SUNBZ0lDQXFJQ0IwYUdVZ2JtVjNJR1oxYm1OMGFXOXVMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRHZFc1amRHbHZibjBnVW1WMGRYSnVjeUIwYUdVZ2JtVjNJSGR5WVhCd1pXUWdablZ1WTNScGIyNHVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1kzSmxZWFJsVUdGeWRHbGhiQ2htZFc1akxDQmlhWFJ0WVhOckxDQjBhR2x6UVhKbkxDQndZWEowYVdGc2N5a2dlMXh1SUNBZ0lDQWdkbUZ5SUdselFtbHVaQ0E5SUdKcGRHMWhjMnNnSmlCWFVrRlFYMEpKVGtSZlJreEJSeXhjYmlBZ0lDQWdJQ0FnSUNCRGRHOXlJRDBnWTNKbFlYUmxRM1J2Y2lobWRXNWpLVHRjYmx4dUlDQWdJQ0FnWm5WdVkzUnBiMjRnZDNKaGNIQmxjaWdwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJR0Z5WjNOSmJtUmxlQ0E5SUMweExGeHVJQ0FnSUNBZ0lDQWdJQ0FnWVhKbmMweGxibWQwYUNBOUlHRnlaM1Z0Wlc1MGN5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzWldaMFNXNWtaWGdnUFNBdE1TeGNiaUFnSUNBZ0lDQWdJQ0FnSUd4bFpuUk1aVzVuZEdnZ1BTQndZWEowYVdGc2N5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JoY21keklEMGdRWEp5WVhrb2JHVm1kRXhsYm1kMGFDQXJJR0Z5WjNOTVpXNW5kR2dwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdabTRnUFNBb2RHaHBjeUFtSmlCMGFHbHpJQ0U5UFNCeWIyOTBJQ1ltSUhSb2FYTWdhVzV6ZEdGdVkyVnZaaUIzY21Gd2NHVnlLU0EvSUVOMGIzSWdPaUJtZFc1ak8xeHVYRzRnSUNBZ0lDQWdJSGRvYVd4bElDZ3JLMnhsWm5SSmJtUmxlQ0E4SUd4bFpuUk1aVzVuZEdncElIdGNiaUFnSUNBZ0lDQWdJQ0JoY21kelcyeGxablJKYm1SbGVGMGdQU0J3WVhKMGFXRnNjMXRzWldaMFNXNWtaWGhkTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIZG9hV3hsSUNoaGNtZHpUR1Z1WjNSb0xTMHBJSHRjYmlBZ0lDQWdJQ0FnSUNCaGNtZHpXMnhsWm5SSmJtUmxlQ3NyWFNBOUlHRnlaM1Z0Wlc1MGMxc3JLMkZ5WjNOSmJtUmxlRjA3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGd2NHeDVLR1p1TENCcGMwSnBibVFnUHlCMGFHbHpRWEpuSURvZ2RHaHBjeXdnWVhKbmN5azdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z2QzSmhjSEJsY2p0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdFZ1lGOHVjbUZ1WjJWZ0lHOXlJR0JmTG5KaGJtZGxVbWxuYUhSZ0lHWjFibU4wYVc5dUxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0bWNtOXRVbWxuYUhSZElGTndaV05wWm5rZ2FYUmxjbUYwYVc1bklHWnliMjBnY21sbmFIUWdkRzhnYkdWbWRDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdSblZ1WTNScGIyNTlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QnlZVzVuWlNCbWRXNWpkR2x2Ymk1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJqY21WaGRHVlNZVzVuWlNobWNtOXRVbWxuYUhRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCbWRXNWpkR2x2YmloemRHRnlkQ3dnWlc1a0xDQnpkR1Z3S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h6ZEdWd0lDWW1JSFI1Y0dWdlppQnpkR1Z3SUNFOUlDZHVkVzFpWlhJbklDWW1JR2x6U1hSbGNtRjBaV1ZEWVd4c0tITjBZWEowTENCbGJtUXNJSE4wWlhBcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnWlc1a0lEMGdjM1JsY0NBOUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0F2THlCRmJuTjFjbVVnZEdobElITnBaMjRnYjJZZ1lDMHdZQ0JwY3lCd2NtVnpaWEoyWldRdVhHNGdJQ0FnSUNBZ0lITjBZWEowSUQwZ2RHOUdhVzVwZEdVb2MzUmhjblFwTzF4dUlDQWdJQ0FnSUNCcFppQW9aVzVrSUQwOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCbGJtUWdQU0J6ZEdGeWREdGNiaUFnSUNBZ0lDQWdJQ0J6ZEdGeWRDQTlJREE3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ1pXNWtJRDBnZEc5R2FXNXBkR1VvWlc1a0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J6ZEdWd0lEMGdjM1JsY0NBOVBUMGdkVzVrWldacGJtVmtJRDhnS0hOMFlYSjBJRHdnWlc1a0lEOGdNU0E2SUMweEtTQTZJSFJ2Um1sdWFYUmxLSE4wWlhBcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1ltRnpaVkpoYm1kbEtITjBZWEowTENCbGJtUXNJSE4wWlhBc0lHWnliMjFTYVdkb2RDazdYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU55WldGMFpYTWdZU0JtZFc1amRHbHZiaUIwYUdGMElIQmxjbVp2Y20xeklHRWdjbVZzWVhScGIyNWhiQ0J2Y0dWeVlYUnBiMjRnYjI0Z2RIZHZJSFpoYkhWbGN5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ2IzQmxjbUYwYjNJZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUhCbGNtWnZjbTBnZEdobElHOXdaWEpoZEdsdmJpNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdSblZ1WTNScGIyNTlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QnlaV3hoZEdsdmJtRnNJRzl3WlhKaGRHbHZiaUJtZFc1amRHbHZiaTVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmpjbVZoZEdWU1pXeGhkR2x2Ym1Gc1QzQmxjbUYwYVc5dUtHOXdaWEpoZEc5eUtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1puVnVZM1JwYjI0b2RtRnNkV1VzSUc5MGFHVnlLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hLSFI1Y0dWdlppQjJZV3gxWlNBOVBTQW5jM1J5YVc1bkp5QW1KaUIwZVhCbGIyWWdiM1JvWlhJZ1BUMGdKM04wY21sdVp5Y3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RtRnNkV1VnUFNCMGIwNTFiV0psY2loMllXeDFaU2s3WEc0Z0lDQWdJQ0FnSUNBZ2IzUm9aWElnUFNCMGIwNTFiV0psY2lodmRHaGxjaWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUc5d1pYSmhkRzl5S0haaGJIVmxMQ0J2ZEdobGNpazdYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU55WldGMFpYTWdZU0JtZFc1amRHbHZiaUIwYUdGMElIZHlZWEJ6SUdCbWRXNWpZQ0IwYnlCamIyNTBhVzUxWlNCamRYSnllV2x1Wnk1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnWm5WdVl5QlVhR1VnWm5WdVkzUnBiMjRnZEc4Z2QzSmhjQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdZbWwwYldGemF5QlVhR1VnWW1sMGJXRnpheUJtYkdGbmN5NGdVMlZsSUdCamNtVmhkR1ZYY21Gd1lDQm1iM0lnYlc5eVpTQmtaWFJoYVd4ekxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlIZHlZWEJHZFc1aklGUm9aU0JtZFc1amRHbHZiaUIwYnlCamNtVmhkR1VnZEdobElHQm1kVzVqWUNCM2NtRndjR1Z5TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ2NHeGhZMlZvYjJ4a1pYSWdWR2hsSUhCc1lXTmxhRzlzWkdWeUlIWmhiSFZsTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ1czUm9hWE5CY21kZElGUm9aU0JnZEdocGMyQWdZbWx1WkdsdVp5QnZaaUJnWm5WdVkyQXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1czQmhjblJwWVd4elhTQlVhR1VnWVhKbmRXMWxiblJ6SUhSdklIQnlaWEJsYm1RZ2RHOGdkR2h2YzJVZ2NISnZkbWxrWldRZ2RHOWNiaUFnSUNBZ0tpQWdkR2hsSUc1bGR5Qm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCYmFHOXNaR1Z5YzEwZ1ZHaGxJR0J3WVhKMGFXRnNjMkFnY0d4aFkyVm9iMnhrWlhJZ2FXNWtaWGhsY3k1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0JiWVhKblVHOXpYU0JVYUdVZ1lYSm5kVzFsYm5RZ2NHOXphWFJwYjI1eklHOW1JSFJvWlNCdVpYY2dablZ1WTNScGIyNHVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdGhjbmxkSUZSb1pTQmhjbWwwZVNCallYQWdiMllnWUdaMWJtTmdMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmJZWEpwZEhsZElGUm9aU0JoY21sMGVTQnZaaUJnWm5WdVkyQXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMFoxYm1OMGFXOXVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2dkM0poY0hCbFpDQm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCamNtVmhkR1ZTWldOMWNuSjVLR1oxYm1Nc0lHSnBkRzFoYzJzc0lIZHlZWEJHZFc1akxDQndiR0ZqWldodmJHUmxjaXdnZEdocGMwRnlaeXdnY0dGeWRHbGhiSE1zSUdodmJHUmxjbk1zSUdGeVoxQnZjeXdnWVhKNUxDQmhjbWwwZVNrZ2UxeHVJQ0FnSUNBZ2RtRnlJR2x6UTNWeWNua2dQU0JpYVhSdFlYTnJJQ1lnVjFKQlVGOURWVkpTV1Y5R1RFRkhMRnh1SUNBZ0lDQWdJQ0FnSUc1bGQwaHZiR1JsY25NZ1BTQnBjME4xY25KNUlEOGdhRzlzWkdWeWN5QTZJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJQ0FnSUNCdVpYZEliMnhrWlhKelVtbG5hSFFnUFNCcGMwTjFjbko1SUQ4Z2RXNWtaV1pwYm1Wa0lEb2dhRzlzWkdWeWN5eGNiaUFnSUNBZ0lDQWdJQ0J1WlhkUVlYSjBhV0ZzY3lBOUlHbHpRM1Z5Y25rZ1B5QndZWEowYVdGc2N5QTZJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJQ0FnSUNCdVpYZFFZWEowYVdGc2MxSnBaMmgwSUQwZ2FYTkRkWEp5ZVNBL0lIVnVaR1ZtYVc1bFpDQTZJSEJoY25ScFlXeHpPMXh1WEc0Z0lDQWdJQ0JpYVhSdFlYTnJJSHc5SUNocGMwTjFjbko1SUQ4Z1YxSkJVRjlRUVZKVVNVRk1YMFpNUVVjZ09pQlhVa0ZRWDFCQlVsUkpRVXhmVWtsSFNGUmZSa3hCUnlrN1hHNGdJQ0FnSUNCaWFYUnRZWE5ySUNZOUlING9hWE5EZFhKeWVTQS9JRmRTUVZCZlVFRlNWRWxCVEY5U1NVZElWRjlHVEVGSElEb2dWMUpCVUY5UVFWSlVTVUZNWDBaTVFVY3BPMXh1WEc0Z0lDQWdJQ0JwWmlBb0lTaGlhWFJ0WVhOcklDWWdWMUpCVUY5RFZWSlNXVjlDVDFWT1JGOUdURUZIS1NrZ2UxeHVJQ0FnSUNBZ0lDQmlhWFJ0WVhOcklDWTlJSDRvVjFKQlVGOUNTVTVFWDBaTVFVY2dmQ0JYVWtGUVgwSkpUa1JmUzBWWlgwWk1RVWNwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnZG1GeUlHNWxkMFJoZEdFZ1BTQmJYRzRnSUNBZ0lDQWdJR1oxYm1Nc0lHSnBkRzFoYzJzc0lIUm9hWE5CY21jc0lHNWxkMUJoY25ScFlXeHpMQ0J1WlhkSWIyeGtaWEp6TENCdVpYZFFZWEowYVdGc2MxSnBaMmgwTEZ4dUlDQWdJQ0FnSUNCdVpYZEliMnhrWlhKelVtbG5hSFFzSUdGeVoxQnZjeXdnWVhKNUxDQmhjbWwwZVZ4dUlDQWdJQ0FnWFR0Y2JseHVJQ0FnSUNBZ2RtRnlJSEpsYzNWc2RDQTlJSGR5WVhCR2RXNWpMbUZ3Y0d4NUtIVnVaR1ZtYVc1bFpDd2dibVYzUkdGMFlTazdYRzRnSUNBZ0lDQnBaaUFvYVhOTVlYcHBZV0pzWlNobWRXNWpLU2tnZTF4dUlDQWdJQ0FnSUNCelpYUkVZWFJoS0hKbGMzVnNkQ3dnYm1WM1JHRjBZU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhOMWJIUXVjR3hoWTJWb2IyeGtaWElnUFNCd2JHRmpaV2h2YkdSbGNqdGNiaUFnSUNBZ0lISmxkSFZ5YmlCelpYUlhjbUZ3Vkc5VGRISnBibWNvY21WemRXeDBMQ0JtZFc1akxDQmlhWFJ0WVhOcktUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRWdablZ1WTNScGIyNGdiR2xyWlNCZ1h5NXliM1Z1WkdBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J0WlhSb2IyUk9ZVzFsSUZSb1pTQnVZVzFsSUc5bUlIUm9aU0JnVFdGMGFHQWdiV1YwYUc5a0lIUnZJSFZ6WlNCM2FHVnVJSEp2ZFc1a2FXNW5MbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRHZFc1amRHbHZibjBnVW1WMGRYSnVjeUIwYUdVZ2JtVjNJSEp2ZFc1a0lHWjFibU4wYVc5dUxseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdOeVpXRjBaVkp2ZFc1a0tHMWxkR2h2WkU1aGJXVXBJSHRjYmlBZ0lDQWdJSFpoY2lCbWRXNWpJRDBnVFdGMGFGdHRaWFJvYjJST1lXMWxYVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQm1kVzVqZEdsdmJpaHVkVzFpWlhJc0lIQnlaV05wYzJsdmJpa2dlMXh1SUNBZ0lDQWdJQ0J1ZFcxaVpYSWdQU0IwYjA1MWJXSmxjaWh1ZFcxaVpYSXBPMXh1SUNBZ0lDQWdJQ0J3Y21WamFYTnBiMjRnUFNCd2NtVmphWE5wYjI0Z1BUMGdiblZzYkNBL0lEQWdPaUJ1WVhScGRtVk5hVzRvZEc5SmJuUmxaMlZ5S0hCeVpXTnBjMmx2Ymlrc0lESTVNaWs3WEc0Z0lDQWdJQ0FnSUdsbUlDaHdjbVZqYVhOcGIyNGdKaVlnYm1GMGFYWmxTWE5HYVc1cGRHVW9iblZ0WW1WeUtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUM4dklGTm9hV1owSUhkcGRHZ2daWGh3YjI1bGJuUnBZV3dnYm05MFlYUnBiMjRnZEc4Z1lYWnZhV1FnWm14dllYUnBibWN0Y0c5cGJuUWdhWE56ZFdWekxseHVJQ0FnSUNBZ0lDQWdJQzh2SUZObFpTQmJUVVJPWFNob2RIUndjem92TDIxa2JpNXBieTl5YjNWdVpDTkZlR0Z0Y0d4bGN5a2dabTl5SUcxdmNtVWdaR1YwWVdsc2N5NWNiaUFnSUNBZ0lDQWdJQ0IyWVhJZ2NHRnBjaUE5SUNoMGIxTjBjbWx1WnlodWRXMWlaWElwSUNzZ0oyVW5LUzV6Y0d4cGRDZ25aU2NwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0IyWVd4MVpTQTlJR1oxYm1Nb2NHRnBjbHN3WFNBcklDZGxKeUFySUNncmNHRnBjbHN4WFNBcklIQnlaV05wYzJsdmJpa3BPMXh1WEc0Z0lDQWdJQ0FnSUNBZ2NHRnBjaUE5SUNoMGIxTjBjbWx1WnloMllXeDFaU2tnS3lBblpTY3BMbk53YkdsMEtDZGxKeWs3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNzb2NHRnBjbHN3WFNBcklDZGxKeUFySUNncmNHRnBjbHN4WFNBdElIQnlaV05wYzJsdmJpa3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJtZFc1aktHNTFiV0psY2lrN1hHNGdJQ0FnSUNCOU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnlaV0YwWlhNZ1lTQnpaWFFnYjJKcVpXTjBJRzltSUdCMllXeDFaWE5nTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZTQjJZV3gxWlhNZ1ZHaGxJSFpoYkhWbGN5QjBieUJoWkdRZ2RHOGdkR2hsSUhObGRDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdUMkpxWldOMGZTQlNaWFIxY201eklIUm9aU0J1WlhjZ2MyVjBMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lIWmhjaUJqY21WaGRHVlRaWFFnUFNBaEtGTmxkQ0FtSmlBb01TQXZJSE5sZEZSdlFYSnlZWGtvYm1WM0lGTmxkQ2hiTEMwd1hTa3BXekZkS1NBOVBTQkpUa1pKVGtsVVdTa2dQeUJ1YjI5d0lEb2dablZ1WTNScGIyNG9kbUZzZFdWektTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRk5sZENoMllXeDFaWE1wTzF4dUlDQWdJSDA3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdFZ1lGOHVkRzlRWVdseWMyQWdiM0lnWUY4dWRHOVFZV2x5YzBsdVlDQm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ2EyVjVjMFoxYm1NZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUdkbGRDQjBhR1VnYTJWNWN5QnZaaUJoSUdkcGRtVnVJRzlpYW1WamRDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdSblZ1WTNScGIyNTlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QndZV2x5Y3lCbWRXNWpkR2x2Ymk1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJqY21WaGRHVlViMUJoYVhKektHdGxlWE5HZFc1aktTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1puVnVZM1JwYjI0b2IySnFaV04wS1NCN1hHNGdJQ0FnSUNBZ0lIWmhjaUIwWVdjZ1BTQm5aWFJVWVdjb2IySnFaV04wS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJoWnlBOVBTQnRZWEJVWVdjcElIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiV0Z3Vkc5QmNuSmhlU2h2WW1wbFkzUXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaDBZV2NnUFQwZ2MyVjBWR0ZuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlITmxkRlJ2VUdGcGNuTW9iMkpxWldOMEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZbUZ6WlZSdlVHRnBjbk1vYjJKcVpXTjBMQ0JyWlhselJuVnVZeWh2WW1wbFkzUXBLVHRjYmlBZ0lDQWdJSDA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTNKbFlYUmxjeUJoSUdaMWJtTjBhVzl1SUhSb1lYUWdaV2wwYUdWeUlHTjFjbkpwWlhNZ2IzSWdhVzUyYjJ0bGN5QmdablZ1WTJBZ2QybDBhQ0J2Y0hScGIyNWhiRnh1SUNBZ0lDQXFJR0IwYUdsellDQmlhVzVrYVc1bklHRnVaQ0J3WVhKMGFXRnNiSGtnWVhCd2JHbGxaQ0JoY21kMWJXVnVkSE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNThjM1J5YVc1bmZTQm1kVzVqSUZSb1pTQm1kVzVqZEdsdmJpQnZjaUJ0WlhSb2IyUWdibUZ0WlNCMGJ5QjNjbUZ3TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JpYVhSdFlYTnJJRlJvWlNCaWFYUnRZWE5ySUdac1lXZHpMbHh1SUNBZ0lDQXFJQ0FnSURFZ0xTQmdYeTVpYVc1a1lGeHVJQ0FnSUNBcUlDQWdJRElnTFNCZ1h5NWlhVzVrUzJWNVlGeHVJQ0FnSUNBcUlDQWdJRFFnTFNCZ1h5NWpkWEp5ZVdBZ2IzSWdZRjh1WTNWeWNubFNhV2RvZEdBZ2IyWWdZU0JpYjNWdVpDQm1kVzVqZEdsdmJseHVJQ0FnSUNBcUlDQWdJRGdnTFNCZ1h5NWpkWEp5ZVdCY2JpQWdJQ0FnS2lBZ0lERTJJQzBnWUY4dVkzVnljbmxTYVdkb2RHQmNiaUFnSUNBZ0tpQWdJRE15SUMwZ1lGOHVjR0Z5ZEdsaGJHQmNiaUFnSUNBZ0tpQWdJRFkwSUMwZ1lGOHVjR0Z5ZEdsaGJGSnBaMmgwWUZ4dUlDQWdJQ0FxSUNBeE1qZ2dMU0JnWHk1eVpXRnlaMkJjYmlBZ0lDQWdLaUFnTWpVMklDMGdZRjh1WVhKNVlGeHVJQ0FnSUNBcUlDQTFNVElnTFNCZ1h5NW1iR2x3WUZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ1czUm9hWE5CY21kZElGUm9aU0JnZEdocGMyQWdZbWx1WkdsdVp5QnZaaUJnWm5WdVkyQXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1czQmhjblJwWVd4elhTQlVhR1VnWVhKbmRXMWxiblJ6SUhSdklHSmxJSEJoY25ScFlXeHNlU0JoY0hCc2FXVmtMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlGdG9iMnhrWlhKelhTQlVhR1VnWUhCaGNuUnBZV3h6WUNCd2JHRmpaV2h2YkdSbGNpQnBibVJsZUdWekxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUZ0aGNtZFFiM05kSUZSb1pTQmhjbWQxYldWdWRDQndiM05wZEdsdmJuTWdiMllnZEdobElHNWxkeUJtZFc1amRHbHZiaTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXMkZ5ZVYwZ1ZHaGxJR0Z5YVhSNUlHTmhjQ0J2WmlCZ1puVnVZMkF1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnRoY21sMGVWMGdWR2hsSUdGeWFYUjVJRzltSUdCbWRXNWpZQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3Um5WdVkzUnBiMjU5SUZKbGRIVnlibk1nZEdobElHNWxkeUIzY21Gd2NHVmtJR1oxYm1OMGFXOXVMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHTnlaV0YwWlZkeVlYQW9ablZ1WXl3Z1ltbDBiV0Z6YXl3Z2RHaHBjMEZ5Wnl3Z2NHRnlkR2xoYkhNc0lHaHZiR1JsY25Nc0lHRnlaMUJ2Y3l3Z1lYSjVMQ0JoY21sMGVTa2dlMXh1SUNBZ0lDQWdkbUZ5SUdselFtbHVaRXRsZVNBOUlHSnBkRzFoYzJzZ0ppQlhVa0ZRWDBKSlRrUmZTMFZaWDBaTVFVYzdYRzRnSUNBZ0lDQnBaaUFvSVdselFtbHVaRXRsZVNBbUppQjBlWEJsYjJZZ1puVnVZeUFoUFNBblpuVnVZM1JwYjI0bktTQjdYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJVZVhCbFJYSnliM0lvUmxWT1ExOUZVbEpQVWw5VVJWaFVLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSFpoY2lCc1pXNW5kR2dnUFNCd1lYSjBhV0ZzY3lBL0lIQmhjblJwWVd4ekxteGxibWQwYUNBNklEQTdYRzRnSUNBZ0lDQnBaaUFvSVd4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNCaWFYUnRZWE5ySUNZOUlING9WMUpCVUY5UVFWSlVTVUZNWDBaTVFVY2dmQ0JYVWtGUVgxQkJVbFJKUVV4ZlVrbEhTRlJmUmt4QlJ5azdYRzRnSUNBZ0lDQWdJSEJoY25ScFlXeHpJRDBnYUc5c1pHVnljeUE5SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdGeWVTQTlJR0Z5ZVNBOVBUMGdkVzVrWldacGJtVmtJRDhnWVhKNUlEb2dibUYwYVhabFRXRjRLSFJ2U1c1MFpXZGxjaWhoY25rcExDQXdLVHRjYmlBZ0lDQWdJR0Z5YVhSNUlEMGdZWEpwZEhrZ1BUMDlJSFZ1WkdWbWFXNWxaQ0EvSUdGeWFYUjVJRG9nZEc5SmJuUmxaMlZ5S0dGeWFYUjVLVHRjYmlBZ0lDQWdJR3hsYm1kMGFDQXRQU0JvYjJ4a1pYSnpJRDhnYUc5c1pHVnljeTVzWlc1bmRHZ2dPaUF3TzF4dVhHNGdJQ0FnSUNCcFppQW9ZbWwwYldGemF5QW1JRmRTUVZCZlVFRlNWRWxCVEY5U1NVZElWRjlHVEVGSEtTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCd1lYSjBhV0ZzYzFKcFoyaDBJRDBnY0dGeWRHbGhiSE1zWEc0Z0lDQWdJQ0FnSUNBZ0lDQm9iMnhrWlhKelVtbG5hSFFnUFNCb2IyeGtaWEp6TzF4dVhHNGdJQ0FnSUNBZ0lIQmhjblJwWVd4eklEMGdhRzlzWkdWeWN5QTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSFpoY2lCa1lYUmhJRDBnYVhOQ2FXNWtTMlY1SUQ4Z2RXNWtaV1pwYm1Wa0lEb2daMlYwUkdGMFlTaG1kVzVqS1R0Y2JseHVJQ0FnSUNBZ2RtRnlJRzVsZDBSaGRHRWdQU0JiWEc0Z0lDQWdJQ0FnSUdaMWJtTXNJR0pwZEcxaGMyc3NJSFJvYVhOQmNtY3NJSEJoY25ScFlXeHpMQ0JvYjJ4a1pYSnpMQ0J3WVhKMGFXRnNjMUpwWjJoMExDQm9iMnhrWlhKelVtbG5hSFFzWEc0Z0lDQWdJQ0FnSUdGeVoxQnZjeXdnWVhKNUxDQmhjbWwwZVZ4dUlDQWdJQ0FnWFR0Y2JseHVJQ0FnSUNBZ2FXWWdLR1JoZEdFcElIdGNiaUFnSUNBZ0lDQWdiV1Z5WjJWRVlYUmhLRzVsZDBSaGRHRXNJR1JoZEdFcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1puVnVZeUE5SUc1bGQwUmhkR0ZiTUYwN1hHNGdJQ0FnSUNCaWFYUnRZWE5ySUQwZ2JtVjNSR0YwWVZzeFhUdGNiaUFnSUNBZ0lIUm9hWE5CY21jZ1BTQnVaWGRFWVhSaFd6SmRPMXh1SUNBZ0lDQWdjR0Z5ZEdsaGJITWdQU0J1WlhkRVlYUmhXek5kTzF4dUlDQWdJQ0FnYUc5c1pHVnljeUE5SUc1bGQwUmhkR0ZiTkYwN1hHNGdJQ0FnSUNCaGNtbDBlU0E5SUc1bGQwUmhkR0ZiT1YwZ1BTQnVaWGRFWVhSaFd6bGRJRDA5UFNCMWJtUmxabWx1WldSY2JpQWdJQ0FnSUNBZ1B5QW9hWE5DYVc1a1MyVjVJRDhnTUNBNklHWjFibU11YkdWdVozUm9LVnh1SUNBZ0lDQWdJQ0E2SUc1aGRHbDJaVTFoZUNodVpYZEVZWFJoV3psZElDMGdiR1Z1WjNSb0xDQXdLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tDRmhjbWwwZVNBbUppQmlhWFJ0WVhOcklDWWdLRmRTUVZCZlExVlNVbGxmUmt4QlJ5QjhJRmRTUVZCZlExVlNVbGxmVWtsSFNGUmZSa3hCUnlrcElIdGNiaUFnSUNBZ0lDQWdZbWwwYldGemF5QW1QU0IrS0ZkU1FWQmZRMVZTVWxsZlJreEJSeUI4SUZkU1FWQmZRMVZTVWxsZlVrbEhTRlJmUmt4QlJ5azdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnBaaUFvSVdKcGRHMWhjMnNnZkh3Z1ltbDBiV0Z6YXlBOVBTQlhVa0ZRWDBKSlRrUmZSa3hCUnlrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnY21WemRXeDBJRDBnWTNKbFlYUmxRbWx1WkNobWRXNWpMQ0JpYVhSdFlYTnJMQ0IwYUdselFYSm5LVHRjYmlBZ0lDQWdJSDBnWld4elpTQnBaaUFvWW1sMGJXRnpheUE5UFNCWFVrRlFYME5WVWxKWlgwWk1RVWNnZkh3Z1ltbDBiV0Z6YXlBOVBTQlhVa0ZRWDBOVlVsSlpYMUpKUjBoVVgwWk1RVWNwSUh0Y2JpQWdJQ0FnSUNBZ2NtVnpkV3gwSUQwZ1kzSmxZWFJsUTNWeWNua29ablZ1WXl3Z1ltbDBiV0Z6YXl3Z1lYSnBkSGtwTzF4dUlDQWdJQ0FnZlNCbGJITmxJR2xtSUNnb1ltbDBiV0Z6YXlBOVBTQlhVa0ZRWDFCQlVsUkpRVXhmUmt4QlJ5QjhmQ0JpYVhSdFlYTnJJRDA5SUNoWFVrRlFYMEpKVGtSZlJreEJSeUI4SUZkU1FWQmZVRUZTVkVsQlRGOUdURUZIS1NrZ0ppWWdJV2h2YkdSbGNuTXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJSEpsYzNWc2RDQTlJR055WldGMFpWQmhjblJwWVd3b1puVnVZeXdnWW1sMGJXRnpheXdnZEdocGMwRnlaeXdnY0dGeWRHbGhiSE1wTzF4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnY21WemRXeDBJRDBnWTNKbFlYUmxTSGxpY21sa0xtRndjR3g1S0hWdVpHVm1hVzVsWkN3Z2JtVjNSR0YwWVNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCMllYSWdjMlYwZEdWeUlEMGdaR0YwWVNBL0lHSmhjMlZUWlhSRVlYUmhJRG9nYzJWMFJHRjBZVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnpaWFJYY21Gd1ZHOVRkSEpwYm1jb2MyVjBkR1Z5S0hKbGMzVnNkQ3dnYm1WM1JHRjBZU2tzSUdaMWJtTXNJR0pwZEcxaGMyc3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlZ6WldRZ1lua2dZRjh1WkdWbVlYVnNkSE5nSUhSdklHTjFjM1J2YldsNlpTQnBkSE1nWUY4dVlYTnphV2R1U1c1Z0lIVnpaU0IwYnlCaGMzTnBaMjRnY0hKdmNHVnlkR2xsYzF4dUlDQWdJQ0FxSUc5bUlITnZkWEpqWlNCdlltcGxZM1J6SUhSdklIUm9aU0JrWlhOMGFXNWhkR2x2YmlCdlltcGxZM1FnWm05eUlHRnNiQ0JrWlhOMGFXNWhkR2x2YmlCd2NtOXdaWEowYVdWelhHNGdJQ0FnSUNvZ2RHaGhkQ0J5WlhOdmJIWmxJSFJ2SUdCMWJtUmxabWx1WldSZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlHOWlhbFpoYkhWbElGUm9aU0JrWlhOMGFXNWhkR2x2YmlCMllXeDFaUzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhOeVkxWmhiSFZsSUZSb1pTQnpiM1Z5WTJVZ2RtRnNkV1V1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJR3RsZVNCVWFHVWdhMlY1SUc5bUlIUm9aU0J3Y205d1pYSjBlU0IwYnlCaGMzTnBaMjR1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzlpYW1WamRDQlVhR1VnY0dGeVpXNTBJRzlpYW1WamRDQnZaaUJnYjJKcVZtRnNkV1ZnTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUhzcWZTQlNaWFIxY201eklIUm9aU0IyWVd4MVpTQjBieUJoYzNOcFoyNHVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1kzVnpkRzl0UkdWbVlYVnNkSE5CYzNOcFoyNUpiaWh2WW1wV1lXeDFaU3dnYzNKalZtRnNkV1VzSUd0bGVTd2diMkpxWldOMEtTQjdYRzRnSUNBZ0lDQnBaaUFvYjJKcVZtRnNkV1VnUFQwOUlIVnVaR1ZtYVc1bFpDQjhmRnh1SUNBZ0lDQWdJQ0FnSUNobGNTaHZZbXBXWVd4MVpTd2diMkpxWldOMFVISnZkRzliYTJWNVhTa2dKaVlnSVdoaGMwOTNibEJ5YjNCbGNuUjVMbU5oYkd3b2IySnFaV04wTENCclpYa3BLU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYzNKalZtRnNkV1U3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiMkpxVm1Gc2RXVTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWWE5sWkNCaWVTQmdYeTVrWldaaGRXeDBjMFJsWlhCZ0lIUnZJR04xYzNSdmJXbDZaU0JwZEhNZ1lGOHViV1Z5WjJWZ0lIVnpaU0IwYnlCdFpYSm5aU0J6YjNWeVkyVmNiaUFnSUNBZ0tpQnZZbXBsWTNSeklHbHVkRzhnWkdWemRHbHVZWFJwYjI0Z2IySnFaV04wY3lCMGFHRjBJR0Z5WlNCd1lYTnpaV1FnZEdoeWRTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQnZZbXBXWVd4MVpTQlVhR1VnWkdWemRHbHVZWFJwYjI0Z2RtRnNkV1V1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCemNtTldZV3gxWlNCVWFHVWdjMjkxY21ObElIWmhiSFZsTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JyWlhrZ1ZHaGxJR3RsZVNCdlppQjBhR1VnY0hKdmNHVnlkSGtnZEc4Z2JXVnlaMlV1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzlpYW1WamRDQlVhR1VnY0dGeVpXNTBJRzlpYW1WamRDQnZaaUJnYjJKcVZtRnNkV1ZnTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J6YjNWeVkyVWdWR2hsSUhCaGNtVnVkQ0J2WW1wbFkzUWdiMllnWUhOeVkxWmhiSFZsWUM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnVzNOMFlXTnJYU0JVY21GamEzTWdkSEpoZG1WeWMyVmtJSE52ZFhKalpTQjJZV3gxWlhNZ1lXNWtJSFJvWldseUlHMWxjbWRsWkZ4dUlDQWdJQ0FxSUNCamIzVnVkR1Z5Y0dGeWRITXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdleXA5SUZKbGRIVnlibk1nZEdobElIWmhiSFZsSUhSdklHRnpjMmxuYmk1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJqZFhOMGIyMUVaV1poZFd4MGMwMWxjbWRsS0c5aWFsWmhiSFZsTENCemNtTldZV3gxWlN3Z2EyVjVMQ0J2WW1wbFkzUXNJSE52ZFhKalpTd2djM1JoWTJzcElIdGNiaUFnSUNBZ0lHbG1JQ2hwYzA5aWFtVmpkQ2h2WW1wV1lXeDFaU2tnSmlZZ2FYTlBZbXBsWTNRb2MzSmpWbUZzZFdVcEtTQjdYRzRnSUNBZ0lDQWdJQzh2SUZKbFkzVnljMmwyWld4NUlHMWxjbWRsSUc5aWFtVmpkSE1nWVc1a0lHRnljbUY1Y3lBb2MzVnpZMlZ3ZEdsaWJHVWdkRzhnWTJGc2JDQnpkR0ZqYXlCc2FXMXBkSE1wTGx4dUlDQWdJQ0FnSUNCemRHRmpheTV6WlhRb2MzSmpWbUZzZFdVc0lHOWlhbFpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdZbUZ6WlUxbGNtZGxLRzlpYWxaaGJIVmxMQ0J6Y21OV1lXeDFaU3dnZFc1a1pXWnBibVZrTENCamRYTjBiMjFFWldaaGRXeDBjMDFsY21kbExDQnpkR0ZqYXlrN1hHNGdJQ0FnSUNBZ0lITjBZV05yV3lka1pXeGxkR1VuWFNoemNtTldZV3gxWlNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnYjJKcVZtRnNkV1U3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVlhObFpDQmllU0JnWHk1dmJXbDBZQ0IwYnlCamRYTjBiMjFwZW1VZ2FYUnpJR0JmTG1Oc2IyNWxSR1ZsY0dBZ2RYTmxJSFJ2SUc5dWJIa2dZMnh2Ym1VZ2NHeGhhVzVjYmlBZ0lDQWdLaUJ2WW1wbFkzUnpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSFpoYkhWbElGUm9aU0IyWVd4MVpTQjBieUJwYm5Od1pXTjBMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnJaWGtnVkdobElHdGxlU0J2WmlCMGFHVWdjSEp2Y0dWeWRIa2dkRzhnYVc1emNHVmpkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3S24wZ1VtVjBkWEp1Y3lCMGFHVWdkVzVqYkc5dVpXUWdkbUZzZFdVZ2IzSWdZSFZ1WkdWbWFXNWxaR0FnZEc4Z1pHVm1aWElnWTJ4dmJtbHVaeUIwYnlCZ1h5NWpiRzl1WlVSbFpYQmdMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHTjFjM1J2YlU5dGFYUkRiRzl1WlNoMllXeDFaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR2x6VUd4aGFXNVBZbXBsWTNRb2RtRnNkV1VwSUQ4Z2RXNWtaV1pwYm1Wa0lEb2dkbUZzZFdVN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FTQnpjR1ZqYVdGc2FYcGxaQ0IyWlhKemFXOXVJRzltSUdCaVlYTmxTWE5GY1hWaGJFUmxaWEJnSUdadmNpQmhjbkpoZVhNZ2QybDBhQ0J6ZFhCd2IzSjBJR1p2Y2x4dUlDQWdJQ0FxSUhCaGNuUnBZV3dnWkdWbGNDQmpiMjF3WVhKcGMyOXVjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1lYSnlZWGtnVkdobElHRnljbUY1SUhSdklHTnZiWEJoY21VdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnYjNSb1pYSWdWR2hsSUc5MGFHVnlJR0Z5Y21GNUlIUnZJR052YlhCaGNtVXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHSnBkRzFoYzJzZ1ZHaGxJR0pwZEcxaGMyc2dabXhoWjNNdUlGTmxaU0JnWW1GelpVbHpSWEYxWVd4Z0lHWnZjaUJ0YjNKbElHUmxkR0ZwYkhNdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1kzVnpkRzl0YVhwbGNpQlVhR1VnWm5WdVkzUnBiMjRnZEc4Z1kzVnpkRzl0YVhwbElHTnZiWEJoY21semIyNXpMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR1Z4ZFdGc1JuVnVZeUJVYUdVZ1puVnVZM1JwYjI0Z2RHOGdaR1YwWlhKdGFXNWxJR1Z4ZFdsMllXeGxiblJ6SUc5bUlIWmhiSFZsY3k1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYzNSaFkyc2dWSEpoWTJ0eklIUnlZWFpsY25ObFpDQmdZWEp5WVhsZ0lHRnVaQ0JnYjNSb1pYSmdJRzlpYW1WamRITXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMkp2YjJ4bFlXNTlJRkpsZEhWeWJuTWdZSFJ5ZFdWZ0lHbG1JSFJvWlNCaGNuSmhlWE1nWVhKbElHVnhkV2wyWVd4bGJuUXNJR1ZzYzJVZ1lHWmhiSE5sWUM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJsY1hWaGJFRnljbUY1Y3loaGNuSmhlU3dnYjNSb1pYSXNJR0pwZEcxaGMyc3NJR04xYzNSdmJXbDZaWElzSUdWeGRXRnNSblZ1WXl3Z2MzUmhZMnNwSUh0Y2JpQWdJQ0FnSUhaaGNpQnBjMUJoY25ScFlXd2dQU0JpYVhSdFlYTnJJQ1lnUTA5TlVFRlNSVjlRUVZKVVNVRk1YMFpNUVVjc1hHNGdJQ0FnSUNBZ0lDQWdZWEp5VEdWdVozUm9JRDBnWVhKeVlYa3ViR1Z1WjNSb0xGeHVJQ0FnSUNBZ0lDQWdJRzkwYUV4bGJtZDBhQ0E5SUc5MGFHVnlMbXhsYm1kMGFEdGNibHh1SUNBZ0lDQWdhV1lnS0dGeWNreGxibWQwYUNBaFBTQnZkR2hNWlc1bmRHZ2dKaVlnSVNocGMxQmhjblJwWVd3Z0ppWWdiM1JvVEdWdVozUm9JRDRnWVhKeVRHVnVaM1JvS1NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0F2THlCRGFHVmpheUIwYUdGMElHTjVZMnhwWXlCMllXeDFaWE1nWVhKbElHVnhkV0ZzTGx4dUlDQWdJQ0FnZG1GeUlHRnljbE4wWVdOclpXUWdQU0J6ZEdGamF5NW5aWFFvWVhKeVlYa3BPMXh1SUNBZ0lDQWdkbUZ5SUc5MGFGTjBZV05yWldRZ1BTQnpkR0ZqYXk1blpYUW9iM1JvWlhJcE8xeHVJQ0FnSUNBZ2FXWWdLR0Z5Y2xOMFlXTnJaV1FnSmlZZ2IzUm9VM1JoWTJ0bFpDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZWEp5VTNSaFkydGxaQ0E5UFNCdmRHaGxjaUFtSmlCdmRHaFRkR0ZqYTJWa0lEMDlJR0Z5Y21GNU8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2RtRnlJR2x1WkdWNElEMGdMVEVzWEc0Z0lDQWdJQ0FnSUNBZ2NtVnpkV3gwSUQwZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnSUNCelpXVnVJRDBnS0dKcGRHMWhjMnNnSmlCRFQwMVFRVkpGWDFWT1QxSkVSVkpGUkY5R1RFRkhLU0EvSUc1bGR5QlRaWFJEWVdOb1pTQTZJSFZ1WkdWbWFXNWxaRHRjYmx4dUlDQWdJQ0FnYzNSaFkyc3VjMlYwS0dGeWNtRjVMQ0J2ZEdobGNpazdYRzRnSUNBZ0lDQnpkR0ZqYXk1elpYUW9iM1JvWlhJc0lHRnljbUY1S1R0Y2JseHVJQ0FnSUNBZ0x5OGdTV2R1YjNKbElHNXZiaTFwYm1SbGVDQndjbTl3WlhKMGFXVnpMbHh1SUNBZ0lDQWdkMmhwYkdVZ0tDc3JhVzVrWlhnZ1BDQmhjbkpNWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnZG1GeUlHRnljbFpoYkhWbElEMGdZWEp5WVhsYmFXNWtaWGhkTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiM1JvVm1Gc2RXVWdQU0J2ZEdobGNsdHBibVJsZUYwN1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0dOMWMzUnZiV2w2WlhJcElIdGNiaUFnSUNBZ0lDQWdJQ0IyWVhJZ1kyOXRjR0Z5WldRZ1BTQnBjMUJoY25ScFlXeGNiaUFnSUNBZ0lDQWdJQ0FnSUQ4Z1kzVnpkRzl0YVhwbGNpaHZkR2hXWVd4MVpTd2dZWEp5Vm1Gc2RXVXNJR2x1WkdWNExDQnZkR2hsY2l3Z1lYSnlZWGtzSUhOMFlXTnJLVnh1SUNBZ0lDQWdJQ0FnSUNBZ09pQmpkWE4wYjIxcGVtVnlLR0Z5Y2xaaGJIVmxMQ0J2ZEdoV1lXeDFaU3dnYVc1a1pYZ3NJR0Z5Y21GNUxDQnZkR2hsY2l3Z2MzUmhZMnNwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2hqYjIxd1lYSmxaQ0FoUFQwZ2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHTnZiWEJoY21Wa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnY21WemRXeDBJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnTHk4Z1VtVmpkWEp6YVhabGJIa2dZMjl0Y0dGeVpTQmhjbkpoZVhNZ0tITjFjMk5sY0hScFlteGxJSFJ2SUdOaGJHd2djM1JoWTJzZ2JHbHRhWFJ6S1M1Y2JpQWdJQ0FnSUNBZ2FXWWdLSE5sWlc0cElIdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb0lXRnljbUY1VTI5dFpTaHZkR2hsY2l3Z1puVnVZM1JwYjI0b2IzUm9WbUZzZFdVc0lHOTBhRWx1WkdWNEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NGallXTm9aVWhoY3loelpXVnVMQ0J2ZEdoSmJtUmxlQ2tnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLR0Z5Y2xaaGJIVmxJRDA5UFNCdmRHaFdZV3gxWlNCOGZDQmxjWFZoYkVaMWJtTW9ZWEp5Vm1Gc2RXVXNJRzkwYUZaaGJIVmxMQ0JpYVhSdFlYTnJMQ0JqZFhOMGIyMXBlbVZ5TENCemRHRmpheWtwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2MyVmxiaTV3ZFhOb0tHOTBhRWx1WkdWNEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIMHBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWE4xYkhRZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNnaEtGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCaGNuSldZV3gxWlNBOVBUMGdiM1JvVm1Gc2RXVWdmSHhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsY1hWaGJFWjFibU1vWVhKeVZtRnNkV1VzSUc5MGFGWmhiSFZsTENCaWFYUnRZWE5yTENCamRYTjBiMjFwZW1WeUxDQnpkR0ZqYXlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWE4xYkhRZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2MzUmhZMnRiSjJSbGJHVjBaU2RkS0dGeWNtRjVLVHRjYmlBZ0lDQWdJSE4wWVdOcld5ZGtaV3hsZEdVblhTaHZkR2hsY2lrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRUVnYzNCbFkybGhiR2w2WldRZ2RtVnljMmx2YmlCdlppQmdZbUZ6WlVselJYRjFZV3hFWldWd1lDQm1iM0lnWTI5dGNHRnlhVzVuSUc5aWFtVmpkSE1nYjJaY2JpQWdJQ0FnS2lCMGFHVWdjMkZ0WlNCZ2RHOVRkSEpwYm1kVVlXZGdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dLaXBPYjNSbE9pb3FJRlJvYVhNZ1puVnVZM1JwYjI0Z2IyNXNlU0J6ZFhCd2IzSjBjeUJqYjIxd1lYSnBibWNnZG1Gc2RXVnpJSGRwZEdnZ2RHRm5jeUJ2Wmx4dUlDQWdJQ0FxSUdCQ2IyOXNaV0Z1WUN3Z1lFUmhkR1ZnTENCZ1JYSnliM0pnTENCZ1RuVnRZbVZ5WUN3Z1lGSmxaMFY0Y0dBc0lHOXlJR0JUZEhKcGJtZGdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQnZZbXBsWTNRZ2RHOGdZMjl0Y0dGeVpTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IzUm9aWElnVkdobElHOTBhR1Z5SUc5aWFtVmpkQ0IwYnlCamIyMXdZWEpsTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0IwWVdjZ1ZHaGxJR0IwYjFOMGNtbHVaMVJoWjJBZ2IyWWdkR2hsSUc5aWFtVmpkSE1nZEc4Z1kyOXRjR0Z5WlM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWW1sMGJXRnpheUJVYUdVZ1ltbDBiV0Z6YXlCbWJHRm5jeTRnVTJWbElHQmlZWE5sU1hORmNYVmhiR0FnWm05eUlHMXZjbVVnWkdWMFlXbHNjeTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JqZFhOMGIyMXBlbVZ5SUZSb1pTQm1kVzVqZEdsdmJpQjBieUJqZFhOMGIyMXBlbVVnWTI5dGNHRnlhWE52Ym5NdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1pYRjFZV3hHZFc1aklGUm9aU0JtZFc1amRHbHZiaUIwYnlCa1pYUmxjbTFwYm1VZ1pYRjFhWFpoYkdWdWRITWdiMllnZG1Gc2RXVnpMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnpkR0ZqYXlCVWNtRmphM01nZEhKaGRtVnljMlZrSUdCdlltcGxZM1JnSUdGdVpDQmdiM1JvWlhKZ0lHOWlhbVZqZEhNdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UySnZiMnhsWVc1OUlGSmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdsbUlIUm9aU0J2WW1wbFkzUnpJR0Z5WlNCbGNYVnBkbUZzWlc1MExDQmxiSE5sSUdCbVlXeHpaV0F1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdaWEYxWVd4Q2VWUmhaeWh2WW1wbFkzUXNJRzkwYUdWeUxDQjBZV2NzSUdKcGRHMWhjMnNzSUdOMWMzUnZiV2w2WlhJc0lHVnhkV0ZzUm5WdVl5d2djM1JoWTJzcElIdGNiaUFnSUNBZ0lITjNhWFJqYUNBb2RHRm5LU0I3WEc0Z0lDQWdJQ0FnSUdOaGMyVWdaR0YwWVZacFpYZFVZV2M2WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLQ2h2WW1wbFkzUXVZbmwwWlV4bGJtZDBhQ0FoUFNCdmRHaGxjaTVpZVhSbFRHVnVaM1JvS1NCOGZGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBb2IySnFaV04wTG1KNWRHVlBabVp6WlhRZ0lUMGdiM1JvWlhJdVlubDBaVTltWm5ObGRDa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdiMkpxWldOMElEMGdiMkpxWldOMExtSjFabVpsY2p0Y2JpQWdJQ0FnSUNBZ0lDQnZkR2hsY2lBOUlHOTBhR1Z5TG1KMVptWmxjanRjYmx4dUlDQWdJQ0FnSUNCallYTmxJR0Z5Y21GNVFuVm1abVZ5VkdGbk9seHVJQ0FnSUNBZ0lDQWdJR2xtSUNnb2IySnFaV04wTG1KNWRHVk1aVzVuZEdnZ0lUMGdiM1JvWlhJdVlubDBaVXhsYm1kMGFDa2dmSHhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJV1Z4ZFdGc1JuVnVZeWh1WlhjZ1ZXbHVkRGhCY25KaGVTaHZZbXBsWTNRcExDQnVaWGNnVldsdWREaEJjbkpoZVNodmRHaGxjaWtwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVYRzRnSUNBZ0lDQWdJR05oYzJVZ1ltOXZiRlJoWnpwY2JpQWdJQ0FnSUNBZ1kyRnpaU0JrWVhSbFZHRm5PbHh1SUNBZ0lDQWdJQ0JqWVhObElHNTFiV0psY2xSaFp6cGNiaUFnSUNBZ0lDQWdJQ0F2THlCRGIyVnlZMlVnWW05dmJHVmhibk1nZEc4Z1lERmdJRzl5SUdBd1lDQmhibVFnWkdGMFpYTWdkRzhnYldsc2JHbHpaV052Ym1SekxseHVJQ0FnSUNBZ0lDQWdJQzh2SUVsdWRtRnNhV1FnWkdGMFpYTWdZWEpsSUdOdlpYSmpaV1FnZEc4Z1lFNWhUbUF1WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdWeEtDdHZZbXBsWTNRc0lDdHZkR2hsY2lrN1hHNWNiaUFnSUNBZ0lDQWdZMkZ6WlNCbGNuSnZjbFJoWnpwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2IySnFaV04wTG01aGJXVWdQVDBnYjNSb1pYSXVibUZ0WlNBbUppQnZZbXBsWTNRdWJXVnpjMkZuWlNBOVBTQnZkR2hsY2k1dFpYTnpZV2RsTzF4dVhHNGdJQ0FnSUNBZ0lHTmhjMlVnY21WblpYaHdWR0ZuT2x4dUlDQWdJQ0FnSUNCallYTmxJSE4wY21sdVoxUmhaenBjYmlBZ0lDQWdJQ0FnSUNBdkx5QkRiMlZ5WTJVZ2NtVm5aWGhsY3lCMGJ5QnpkSEpwYm1keklHRnVaQ0IwY21WaGRDQnpkSEpwYm1kekxDQndjbWx0YVhScGRtVnpJR0Z1WkNCdlltcGxZM1J6TEZ4dUlDQWdJQ0FnSUNBZ0lDOHZJR0Z6SUdWeGRXRnNMaUJUWldVZ2FIUjBjRG92TDNkM2R5NWxZMjFoTFdsdWRHVnlibUYwYVc5dVlXd3ViM0puTDJWamJXRXRNall5THpjdU1DOGpjMlZqTFhKbFoyVjRjQzV3Y205MGIzUjVjR1V1ZEc5emRISnBibWRjYmlBZ0lDQWdJQ0FnSUNBdkx5Qm1iM0lnYlc5eVpTQmtaWFJoYVd4ekxseHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnZZbXBsWTNRZ1BUMGdLRzkwYUdWeUlDc2dKeWNwTzF4dVhHNGdJQ0FnSUNBZ0lHTmhjMlVnYldGd1ZHRm5PbHh1SUNBZ0lDQWdJQ0FnSUhaaGNpQmpiMjUyWlhKMElEMGdiV0Z3Vkc5QmNuSmhlVHRjYmx4dUlDQWdJQ0FnSUNCallYTmxJSE5sZEZSaFp6cGNiaUFnSUNBZ0lDQWdJQ0IyWVhJZ2FYTlFZWEowYVdGc0lEMGdZbWwwYldGemF5QW1JRU5QVFZCQlVrVmZVRUZTVkVsQlRGOUdURUZITzF4dUlDQWdJQ0FnSUNBZ0lHTnZiblpsY25RZ2ZId2dLR052Ym5abGNuUWdQU0J6WlhSVWIwRnljbUY1S1R0Y2JseHVJQ0FnSUNBZ0lDQWdJR2xtSUNodlltcGxZM1F1YzJsNlpTQWhQU0J2ZEdobGNpNXphWHBsSUNZbUlDRnBjMUJoY25ScFlXd3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdMeThnUVhOemRXMWxJR041WTJ4cFl5QjJZV3gxWlhNZ1lYSmxJR1Z4ZFdGc0xseHVJQ0FnSUNBZ0lDQWdJSFpoY2lCemRHRmphMlZrSUQwZ2MzUmhZMnN1WjJWMEtHOWlhbVZqZENrN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0hOMFlXTnJaV1FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnpkR0ZqYTJWa0lEMDlJRzkwYUdWeU8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCaWFYUnRZWE5ySUh3OUlFTlBUVkJCVWtWZlZVNVBVa1JGVWtWRVgwWk1RVWM3WEc1Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJTWldOMWNuTnBkbVZzZVNCamIyMXdZWEpsSUc5aWFtVmpkSE1nS0hOMWMyTmxjSFJwWW14bElIUnZJR05oYkd3Z2MzUmhZMnNnYkdsdGFYUnpLUzVjYmlBZ0lDQWdJQ0FnSUNCemRHRmpheTV6WlhRb2IySnFaV04wTENCdmRHaGxjaWs3WEc0Z0lDQWdJQ0FnSUNBZ2RtRnlJSEpsYzNWc2RDQTlJR1Z4ZFdGc1FYSnlZWGx6S0dOdmJuWmxjblFvYjJKcVpXTjBLU3dnWTI5dWRtVnlkQ2h2ZEdobGNpa3NJR0pwZEcxaGMyc3NJR04xYzNSdmJXbDZaWElzSUdWeGRXRnNSblZ1WXl3Z2MzUmhZMnNwTzF4dUlDQWdJQ0FnSUNBZ0lITjBZV05yV3lka1pXeGxkR1VuWFNodlltcGxZM1FwTzF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc1Y2JpQWdJQ0FnSUNBZ1kyRnpaU0J6ZVcxaWIyeFVZV2M2WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLSE41YldKdmJGWmhiSFZsVDJZcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ6ZVcxaWIyeFdZV3gxWlU5bUxtTmhiR3dvYjJKcVpXTjBLU0E5UFNCemVXMWliMnhXWVd4MVpVOW1MbU5oYkd3b2IzUm9aWElwTzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJCSUhOd1pXTnBZV3hwZW1Wa0lIWmxjbk5wYjI0Z2IyWWdZR0poYzJWSmMwVnhkV0ZzUkdWbGNHQWdabTl5SUc5aWFtVmpkSE1nZDJsMGFDQnpkWEJ3YjNKMElHWnZjbHh1SUNBZ0lDQXFJSEJoY25ScFlXd2daR1ZsY0NCamIyMXdZWEpwYzI5dWN5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5aWFtVmpkQ0JVYUdVZ2IySnFaV04wSUhSdklHTnZiWEJoY21VdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5MGFHVnlJRlJvWlNCdmRHaGxjaUJ2WW1wbFkzUWdkRzhnWTI5dGNHRnlaUzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdZbWwwYldGemF5QlVhR1VnWW1sMGJXRnpheUJtYkdGbmN5NGdVMlZsSUdCaVlYTmxTWE5GY1hWaGJHQWdabTl5SUcxdmNtVWdaR1YwWVdsc2N5NWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQmpkWE4wYjIxcGVtVnlJRlJvWlNCbWRXNWpkR2x2YmlCMGJ5QmpkWE4wYjIxcGVtVWdZMjl0Y0dGeWFYTnZibk11WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnWlhGMVlXeEdkVzVqSUZSb1pTQm1kVzVqZEdsdmJpQjBieUJrWlhSbGNtMXBibVVnWlhGMWFYWmhiR1Z1ZEhNZ2IyWWdkbUZzZFdWekxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCemRHRmpheUJVY21GamEzTWdkSEpoZG1WeWMyVmtJR0J2WW1wbFkzUmdJR0Z1WkNCZ2IzUm9aWEpnSUc5aWFtVmpkSE11WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTJKdmIyeGxZVzU5SUZKbGRIVnlibk1nWUhSeWRXVmdJR2xtSUhSb1pTQnZZbXBsWTNSeklHRnlaU0JsY1hWcGRtRnNaVzUwTENCbGJITmxJR0JtWVd4elpXQXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1pYRjFZV3hQWW1wbFkzUnpLRzlpYW1WamRDd2diM1JvWlhJc0lHSnBkRzFoYzJzc0lHTjFjM1J2YldsNlpYSXNJR1Z4ZFdGc1JuVnVZeXdnYzNSaFkyc3BJSHRjYmlBZ0lDQWdJSFpoY2lCcGMxQmhjblJwWVd3Z1BTQmlhWFJ0WVhOcklDWWdRMDlOVUVGU1JWOVFRVkpVU1VGTVgwWk1RVWNzWEc0Z0lDQWdJQ0FnSUNBZ2IySnFVSEp2Y0hNZ1BTQm5aWFJCYkd4TFpYbHpLRzlpYW1WamRDa3NYRzRnSUNBZ0lDQWdJQ0FnYjJKcVRHVnVaM1JvSUQwZ2IySnFVSEp2Y0hNdWJHVnVaM1JvTEZ4dUlDQWdJQ0FnSUNBZ0lHOTBhRkJ5YjNCeklEMGdaMlYwUVd4c1MyVjVjeWh2ZEdobGNpa3NYRzRnSUNBZ0lDQWdJQ0FnYjNSb1RHVnVaM1JvSUQwZ2IzUm9VSEp2Y0hNdWJHVnVaM1JvTzF4dVhHNGdJQ0FnSUNCcFppQW9iMkpxVEdWdVozUm9JQ0U5SUc5MGFFeGxibWQwYUNBbUppQWhhWE5RWVhKMGFXRnNLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lIWmhjaUJwYm1SbGVDQTlJRzlpYWt4bGJtZDBhRHRjYmlBZ0lDQWdJSGRvYVd4bElDaHBibVJsZUMwdEtTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCclpYa2dQU0J2WW1wUWNtOXdjMXRwYm1SbGVGMDdYRzRnSUNBZ0lDQWdJR2xtSUNnaEtHbHpVR0Z5ZEdsaGJDQS9JR3RsZVNCcGJpQnZkR2hsY2lBNklHaGhjMDkzYmxCeWIzQmxjblI1TG1OaGJHd29iM1JvWlhJc0lHdGxlU2twS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNBdkx5QkRhR1ZqYXlCMGFHRjBJR041WTJ4cFl5QjJZV3gxWlhNZ1lYSmxJR1Z4ZFdGc0xseHVJQ0FnSUNBZ2RtRnlJRzlpYWxOMFlXTnJaV1FnUFNCemRHRmpheTVuWlhRb2IySnFaV04wS1R0Y2JpQWdJQ0FnSUhaaGNpQnZkR2hUZEdGamEyVmtJRDBnYzNSaFkyc3VaMlYwS0c5MGFHVnlLVHRjYmlBZ0lDQWdJR2xtSUNodlltcFRkR0ZqYTJWa0lDWW1JRzkwYUZOMFlXTnJaV1FwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUc5aWFsTjBZV05yWldRZ1BUMGdiM1JvWlhJZ0ppWWdiM1JvVTNSaFkydGxaQ0E5UFNCdlltcGxZM1E3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ2RISjFaVHRjYmlBZ0lDQWdJSE4wWVdOckxuTmxkQ2h2WW1wbFkzUXNJRzkwYUdWeUtUdGNiaUFnSUNBZ0lITjBZV05yTG5ObGRDaHZkR2hsY2l3Z2IySnFaV04wS1R0Y2JseHVJQ0FnSUNBZ2RtRnlJSE5yYVhCRGRHOXlJRDBnYVhOUVlYSjBhV0ZzTzF4dUlDQWdJQ0FnZDJocGJHVWdLQ3NyYVc1a1pYZ2dQQ0J2WW1wTVpXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ2EyVjVJRDBnYjJKcVVISnZjSE5iYVc1a1pYaGRPMXh1SUNBZ0lDQWdJQ0IyWVhJZ2IySnFWbUZzZFdVZ1BTQnZZbXBsWTNSYmEyVjVYU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHOTBhRlpoYkhWbElEMGdiM1JvWlhKYmEyVjVYVHRjYmx4dUlDQWdJQ0FnSUNCcFppQW9ZM1Z6ZEc5dGFYcGxjaWtnZTF4dUlDQWdJQ0FnSUNBZ0lIWmhjaUJqYjIxd1lYSmxaQ0E5SUdselVHRnlkR2xoYkZ4dUlDQWdJQ0FnSUNBZ0lDQWdQeUJqZFhOMGIyMXBlbVZ5S0c5MGFGWmhiSFZsTENCdlltcFdZV3gxWlN3Z2EyVjVMQ0J2ZEdobGNpd2diMkpxWldOMExDQnpkR0ZqYXlsY2JpQWdJQ0FnSUNBZ0lDQWdJRG9nWTNWemRHOXRhWHBsY2lodlltcFdZV3gxWlN3Z2IzUm9WbUZzZFdVc0lHdGxlU3dnYjJKcVpXTjBMQ0J2ZEdobGNpd2djM1JoWTJzcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQzh2SUZKbFkzVnljMmwyWld4NUlHTnZiWEJoY21VZ2IySnFaV04wY3lBb2MzVnpZMlZ3ZEdsaWJHVWdkRzhnWTJGc2JDQnpkR0ZqYXlCc2FXMXBkSE1wTGx4dUlDQWdJQ0FnSUNCcFppQW9JU2hqYjIxd1lYSmxaQ0E5UFQwZ2RXNWtaV1pwYm1Wa1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z0tHOWlhbFpoYkhWbElEMDlQU0J2ZEdoV1lXeDFaU0I4ZkNCbGNYVmhiRVoxYm1Nb2IySnFWbUZzZFdVc0lHOTBhRlpoYkhWbExDQmlhWFJ0WVhOckxDQmpkWE4wYjIxcGVtVnlMQ0J6ZEdGamF5a3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEb2dZMjl0Y0dGeVpXUmNiaUFnSUNBZ0lDQWdJQ0FnSUNrcElIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhOMWJIUWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J6YTJsd1EzUnZjaUI4ZkNBb2MydHBjRU4wYjNJZ1BTQnJaWGtnUFQwZ0oyTnZibk4wY25WamRHOXlKeWs3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JwWmlBb2NtVnpkV3gwSUNZbUlDRnphMmx3UTNSdmNpa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ2IySnFRM1J2Y2lBOUlHOWlhbVZqZEM1amIyNXpkSEoxWTNSdmNpeGNiaUFnSUNBZ0lDQWdJQ0FnSUc5MGFFTjBiM0lnUFNCdmRHaGxjaTVqYjI1emRISjFZM1J2Y2p0Y2JseHVJQ0FnSUNBZ0lDQXZMeUJPYjI0Z1lFOWlhbVZqZEdBZ2IySnFaV04wSUdsdWMzUmhibU5sY3lCM2FYUm9JR1JwWm1abGNtVnVkQ0JqYjI1emRISjFZM1J2Y25NZ1lYSmxJRzV2ZENCbGNYVmhiQzVjYmlBZ0lDQWdJQ0FnYVdZZ0tHOWlha04wYjNJZ0lUMGdiM1JvUTNSdmNpQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0tDZGpiMjV6ZEhKMVkzUnZjaWNnYVc0Z2IySnFaV04wSUNZbUlDZGpiMjV6ZEhKMVkzUnZjaWNnYVc0Z2IzUm9aWElwSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FoS0hSNWNHVnZaaUJ2WW1wRGRHOXlJRDA5SUNkbWRXNWpkR2x2YmljZ0ppWWdiMkpxUTNSdmNpQnBibk4wWVc1alpXOW1JRzlpYWtOMGIzSWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdkSGx3Wlc5bUlHOTBhRU4wYjNJZ1BUMGdKMloxYm1OMGFXOXVKeUFtSmlCdmRHaERkRzl5SUdsdWMzUmhibU5sYjJZZ2IzUm9RM1J2Y2lrcElIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhOMWJIUWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjM1JoWTJ0YkoyUmxiR1YwWlNkZEtHOWlhbVZqZENrN1hHNGdJQ0FnSUNCemRHRmphMXNuWkdWc1pYUmxKMTBvYjNSb1pYSXBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQklITndaV05wWVd4cGVtVmtJSFpsY25OcGIyNGdiMllnWUdKaGMyVlNaWE4wWUNCM2FHbGphQ0JtYkdGMGRHVnVjeUIwYUdVZ2NtVnpkQ0JoY25KaGVTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1puVnVZeUJVYUdVZ1puVnVZM1JwYjI0Z2RHOGdZWEJ3YkhrZ1lTQnlaWE4wSUhCaGNtRnRaWFJsY2lCMGJ5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdSblZ1WTNScGIyNTlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5Qm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCbWJHRjBVbVZ6ZENobWRXNWpLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjMlYwVkc5VGRISnBibWNvYjNabGNsSmxjM1FvWm5WdVl5d2dkVzVrWldacGJtVmtMQ0JtYkdGMGRHVnVLU3dnWm5WdVl5QXJJQ2NuS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdGdUlHRnljbUY1SUc5bUlHOTNiaUJsYm5WdFpYSmhZbXhsSUhCeWIzQmxjblI1SUc1aGJXVnpJR0Z1WkNCemVXMWliMnh6SUc5bUlHQnZZbXBsWTNSZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjJKcVpXTjBJRlJvWlNCdlltcGxZM1FnZEc4Z2NYVmxjbmt1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmU0JTWlhSMWNtNXpJSFJvWlNCaGNuSmhlU0J2WmlCd2NtOXdaWEowZVNCdVlXMWxjeUJoYm1RZ2MzbHRZbTlzY3k1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJuWlhSQmJHeExaWGx6S0c5aWFtVmpkQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR0poYzJWSFpYUkJiR3hMWlhsektHOWlhbVZqZEN3Z2EyVjVjeXdnWjJWMFUzbHRZbTlzY3lrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaGJpQmhjbkpoZVNCdlppQnZkMjRnWVc1a0lHbHVhR1Z5YVhSbFpDQmxiblZ0WlhKaFlteGxJSEJ5YjNCbGNuUjVJRzVoYldWeklHRnVaRnh1SUNBZ0lDQXFJSE41YldKdmJITWdiMllnWUc5aWFtVmpkR0F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZZbXBsWTNRZ1ZHaGxJRzlpYW1WamRDQjBieUJ4ZFdWeWVTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJR0Z5Y21GNUlHOW1JSEJ5YjNCbGNuUjVJRzVoYldWeklHRnVaQ0J6ZVcxaWIyeHpMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHZGxkRUZzYkV0bGVYTkpiaWh2WW1wbFkzUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmlZWE5sUjJWMFFXeHNTMlY1Y3lodlltcGxZM1FzSUd0bGVYTkpiaXdnWjJWMFUzbHRZbTlzYzBsdUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkhaWFJ6SUcxbGRHRmtZWFJoSUdadmNpQmdablZ1WTJBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUdaMWJtTWdWR2hsSUdaMWJtTjBhVzl1SUhSdklIRjFaWEo1TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUhzcWZTQlNaWFIxY201eklIUm9aU0J0WlhSaFpHRjBZU0JtYjNJZ1lHWjFibU5nTGx4dUlDQWdJQ0FxTDF4dUlDQWdJSFpoY2lCblpYUkVZWFJoSUQwZ0lXMWxkR0ZOWVhBZ1B5QnViMjl3SURvZ1puVnVZM1JwYjI0b1puVnVZeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzFsZEdGTllYQXVaMlYwS0daMWJtTXBPMXh1SUNBZ0lIMDdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJIWlhSeklIUm9aU0J1WVcxbElHOW1JR0JtZFc1allDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1puVnVZeUJVYUdVZ1puVnVZM1JwYjI0Z2RHOGdjWFZsY25rdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UzTjBjbWx1WjMwZ1VtVjBkWEp1Y3lCMGFHVWdablZ1WTNScGIyNGdibUZ0WlM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJuWlhSR2RXNWpUbUZ0WlNobWRXNWpLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ0tHWjFibU11Ym1GdFpTQXJJQ2NuS1N4Y2JpQWdJQ0FnSUNBZ0lDQmhjbkpoZVNBOUlISmxZV3hPWVcxbGMxdHlaWE4xYkhSZExGeHVJQ0FnSUNBZ0lDQWdJR3hsYm1kMGFDQTlJR2hoYzA5M2JsQnliM0JsY25SNUxtTmhiR3dvY21WaGJFNWhiV1Z6TENCeVpYTjFiSFFwSUQ4Z1lYSnlZWGt1YkdWdVozUm9JRG9nTUR0Y2JseHVJQ0FnSUNBZ2QyaHBiR1VnS0d4bGJtZDBhQzB0S1NCN1hHNGdJQ0FnSUNBZ0lIWmhjaUJrWVhSaElEMGdZWEp5WVhsYmJHVnVaM1JvWFN4Y2JpQWdJQ0FnSUNBZ0lDQWdJRzkwYUdWeVJuVnVZeUE5SUdSaGRHRXVablZ1WXp0Y2JpQWdJQ0FnSUNBZ2FXWWdLRzkwYUdWeVJuVnVZeUE5UFNCdWRXeHNJSHg4SUc5MGFHVnlSblZ1WXlBOVBTQm1kVzVqS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHUmhkR0V1Ym1GdFpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCSFpYUnpJSFJvWlNCaGNtZDFiV1Z1ZENCd2JHRmpaV2h2YkdSbGNpQjJZV3gxWlNCbWIzSWdZR1oxYm1OZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCbWRXNWpJRlJvWlNCbWRXNWpkR2x2YmlCMGJ5QnBibk53WldOMExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIc3FmU0JTWlhSMWNtNXpJSFJvWlNCd2JHRmpaV2h2YkdSbGNpQjJZV3gxWlM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJuWlhSSWIyeGtaWElvWm5WdVl5a2dlMXh1SUNBZ0lDQWdkbUZ5SUc5aWFtVmpkQ0E5SUdoaGMwOTNibEJ5YjNCbGNuUjVMbU5oYkd3b2JHOWtZWE5vTENBbmNHeGhZMlZvYjJ4a1pYSW5LU0EvSUd4dlpHRnphQ0E2SUdaMWJtTTdYRzRnSUNBZ0lDQnlaWFIxY200Z2IySnFaV04wTG5Cc1lXTmxhRzlzWkdWeU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFZGxkSE1nZEdobElHRndjSEp2Y0hKcFlYUmxJRndpYVhSbGNtRjBaV1ZjSWlCbWRXNWpkR2x2Ymk0Z1NXWWdZRjh1YVhSbGNtRjBaV1ZnSUdseklHTjFjM1J2YldsNlpXUXNYRzRnSUNBZ0lDb2dkR2hwY3lCbWRXNWpkR2x2YmlCeVpYUjFjbTV6SUhSb1pTQmpkWE4wYjIwZ2JXVjBhRzlrTENCdmRHaGxjbmRwYzJVZ2FYUWdjbVYwZFhKdWN5QmdZbUZ6WlVsMFpYSmhkR1ZsWUM1Y2JpQWdJQ0FnS2lCSlppQmhjbWQxYldWdWRITWdZWEpsSUhCeWIzWnBaR1ZrTENCMGFHVWdZMmh2YzJWdUlHWjFibU4wYVc5dUlHbHpJR2x1ZG05clpXUWdkMmwwYUNCMGFHVnRJR0Z1WkZ4dUlDQWdJQ0FxSUdsMGN5QnlaWE4xYkhRZ2FYTWdjbVYwZFhKdVpXUXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdXM1poYkhWbFhTQlVhR1VnZG1Gc2RXVWdkRzhnWTI5dWRtVnlkQ0IwYnlCaGJpQnBkR1Z5WVhSbFpTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1cyRnlhWFI1WFNCVWFHVWdZWEpwZEhrZ2IyWWdkR2hsSUdOeVpXRjBaV1FnYVhSbGNtRjBaV1V1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBaMWJtTjBhVzl1ZlNCU1pYUjFjbTV6SUhSb1pTQmphRzl6Wlc0Z1puVnVZM1JwYjI0Z2IzSWdhWFJ6SUhKbGMzVnNkQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQm5aWFJKZEdWeVlYUmxaU2dwSUh0Y2JpQWdJQ0FnSUhaaGNpQnlaWE4xYkhRZ1BTQnNiMlJoYzJndWFYUmxjbUYwWldVZ2ZId2dhWFJsY21GMFpXVTdYRzRnSUNBZ0lDQnlaWE4xYkhRZ1BTQnlaWE4xYkhRZ1BUMDlJR2wwWlhKaGRHVmxJRDhnWW1GelpVbDBaWEpoZEdWbElEb2djbVZ6ZFd4ME8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUdGeVozVnRaVzUwY3k1c1pXNW5kR2dnUHlCeVpYTjFiSFFvWVhKbmRXMWxiblJ6V3pCZExDQmhjbWQxYldWdWRITmJNVjBwSURvZ2NtVnpkV3gwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVkbGRITWdkR2hsSUdSaGRHRWdabTl5SUdCdFlYQmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2JXRndJRlJvWlNCdFlYQWdkRzhnY1hWbGNua3VYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHdGxlU0JVYUdVZ2NtVm1aWEpsYm1ObElHdGxlUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3S24wZ1VtVjBkWEp1Y3lCMGFHVWdiV0Z3SUdSaGRHRXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1oyVjBUV0Z3UkdGMFlTaHRZWEFzSUd0bGVTa2dlMXh1SUNBZ0lDQWdkbUZ5SUdSaGRHRWdQU0J0WVhBdVgxOWtZWFJoWDE4N1hHNGdJQ0FnSUNCeVpYUjFjbTRnYVhOTFpYbGhZbXhsS0d0bGVTbGNiaUFnSUNBZ0lDQWdQeUJrWVhSaFczUjVjR1Z2WmlCclpYa2dQVDBnSjNOMGNtbHVaeWNnUHlBbmMzUnlhVzVuSnlBNklDZG9ZWE5vSjExY2JpQWdJQ0FnSUNBZ09pQmtZWFJoTG0xaGNEdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkhaWFJ6SUhSb1pTQndjbTl3WlhKMGVTQnVZVzFsY3l3Z2RtRnNkV1Z6TENCaGJtUWdZMjl0Y0dGeVpTQm1iR0ZuY3lCdlppQmdiMkpxWldOMFlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5aWFtVmpkQ0JVYUdVZ2IySnFaV04wSUhSdklIRjFaWEo1TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0QmNuSmhlWDBnVW1WMGRYSnVjeUIwYUdVZ2JXRjBZMmdnWkdGMFlTQnZaaUJnYjJKcVpXTjBZQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQm5aWFJOWVhSamFFUmhkR0VvYjJKcVpXTjBLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ2EyVjVjeWh2WW1wbFkzUXBMRnh1SUNBZ0lDQWdJQ0FnSUd4bGJtZDBhQ0E5SUhKbGMzVnNkQzVzWlc1bmRHZzdYRzVjYmlBZ0lDQWdJSGRvYVd4bElDaHNaVzVuZEdndExTa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ2EyVjVJRDBnY21WemRXeDBXMnhsYm1kMGFGMHNYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaU0E5SUc5aWFtVmpkRnRyWlhsZE8xeHVYRzRnSUNBZ0lDQWdJSEpsYzNWc2RGdHNaVzVuZEdoZElEMGdXMnRsZVN3Z2RtRnNkV1VzSUdselUzUnlhV04wUTI5dGNHRnlZV0pzWlNoMllXeDFaU2xkTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkhaWFJ6SUhSb1pTQnVZWFJwZG1VZ1puVnVZM1JwYjI0Z1lYUWdZR3RsZVdBZ2IyWWdZRzlpYW1WamRHQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGxZM1FnVkdobElHOWlhbVZqZENCMGJ5QnhkV1Z5ZVM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYTJWNUlGUm9aU0JyWlhrZ2IyWWdkR2hsSUcxbGRHaHZaQ0IwYnlCblpYUXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdleXA5SUZKbGRIVnlibk1nZEdobElHWjFibU4wYVc5dUlHbG1JR2wwSjNNZ2JtRjBhWFpsTENCbGJITmxJR0IxYm1SbFptbHVaV1JnTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR2RsZEU1aGRHbDJaU2h2WW1wbFkzUXNJR3RsZVNrZ2UxeHVJQ0FnSUNBZ2RtRnlJSFpoYkhWbElEMGdaMlYwVm1Gc2RXVW9iMkpxWldOMExDQnJaWGtwTzF4dUlDQWdJQ0FnY21WMGRYSnVJR0poYzJWSmMwNWhkR2wyWlNoMllXeDFaU2tnUHlCMllXeDFaU0E2SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQklITndaV05wWVd4cGVtVmtJSFpsY25OcGIyNGdiMllnWUdKaGMyVkhaWFJVWVdkZ0lIZG9hV05vSUdsbmJtOXlaWE1nWUZONWJXSnZiQzUwYjFOMGNtbHVaMVJoWjJBZ2RtRnNkV1Z6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCeGRXVnllUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3YzNSeWFXNW5mU0JTWlhSMWNtNXpJSFJvWlNCeVlYY2dZSFJ2VTNSeWFXNW5WR0ZuWUM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJuWlhSU1lYZFVZV2NvZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJSFpoY2lCcGMwOTNiaUE5SUdoaGMwOTNibEJ5YjNCbGNuUjVMbU5oYkd3b2RtRnNkV1VzSUhONWJWUnZVM1J5YVc1blZHRm5LU3hjYmlBZ0lDQWdJQ0FnSUNCMFlXY2dQU0IyWVd4MVpWdHplVzFVYjFOMGNtbHVaMVJoWjEwN1hHNWNiaUFnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUhaaGJIVmxXM041YlZSdlUzUnlhVzVuVkdGblhTQTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQWdJQ0FnZG1GeUlIVnViV0Z6YTJWa0lEMGdkSEoxWlR0Y2JpQWdJQ0FnSUgwZ1kyRjBZMmdnS0dVcElIdDlYRzVjYmlBZ0lDQWdJSFpoY2lCeVpYTjFiSFFnUFNCdVlYUnBkbVZQWW1wbFkzUlViMU4wY21sdVp5NWpZV3hzS0haaGJIVmxLVHRjYmlBZ0lDQWdJR2xtSUNoMWJtMWhjMnRsWkNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYVhOUGQyNHBJSHRjYmlBZ0lDQWdJQ0FnSUNCMllXeDFaVnR6ZVcxVWIxTjBjbWx1WjFSaFoxMGdQU0IwWVdjN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdaR1ZzWlhSbElIWmhiSFZsVzNONWJWUnZVM1J5YVc1blZHRm5YVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRnVJR0Z5Y21GNUlHOW1JSFJvWlNCdmQyNGdaVzUxYldWeVlXSnNaU0J6ZVcxaWIyeHpJRzltSUdCdlltcGxZM1JnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiMkpxWldOMElGUm9aU0J2WW1wbFkzUWdkRzhnY1hWbGNua3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMEZ5Y21GNWZTQlNaWFIxY201eklIUm9aU0JoY25KaGVTQnZaaUJ6ZVcxaWIyeHpMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lIWmhjaUJuWlhSVGVXMWliMnh6SUQwZ0lXNWhkR2wyWlVkbGRGTjViV0p2YkhNZ1B5QnpkSFZpUVhKeVlYa2dPaUJtZFc1amRHbHZiaWh2WW1wbFkzUXBJSHRjYmlBZ0lDQWdJR2xtSUNodlltcGxZM1FnUFQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVzEwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCdlltcGxZM1FnUFNCUFltcGxZM1FvYjJKcVpXTjBLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmhjbkpoZVVacGJIUmxjaWh1WVhScGRtVkhaWFJUZVcxaWIyeHpLRzlpYW1WamRDa3NJR1oxYm1OMGFXOXVLSE41YldKdmJDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjSEp2Y0dWeWRIbEpjMFZ1ZFcxbGNtRmliR1V1WTJGc2JDaHZZbXBsWTNRc0lITjViV0p2YkNrN1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOU8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRM0psWVhSbGN5QmhiaUJoY25KaGVTQnZaaUIwYUdVZ2IzZHVJR0Z1WkNCcGJtaGxjbWwwWldRZ1pXNTFiV1Z5WVdKc1pTQnplVzFpYjJ4eklHOW1JR0J2WW1wbFkzUmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQnZZbXBsWTNRZ2RHOGdjWFZsY25rdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQmhjbkpoZVNCdlppQnplVzFpYjJ4ekxseHVJQ0FnSUNBcUwxeHVJQ0FnSUhaaGNpQm5aWFJUZVcxaWIyeHpTVzRnUFNBaGJtRjBhWFpsUjJWMFUzbHRZbTlzY3lBL0lITjBkV0pCY25KaGVTQTZJR1oxYm1OMGFXOXVLRzlpYW1WamRDa2dlMXh1SUNBZ0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUZ0ZE8xeHVJQ0FnSUNBZ2QyaHBiR1VnS0c5aWFtVmpkQ2tnZTF4dUlDQWdJQ0FnSUNCaGNuSmhlVkIxYzJnb2NtVnpkV3gwTENCblpYUlRlVzFpYjJ4ektHOWlhbVZqZENrcE8xeHVJQ0FnSUNBZ0lDQnZZbXBsWTNRZ1BTQm5aWFJRY205MGIzUjVjR1VvYjJKcVpXTjBLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJQ0FnZlR0Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFZGxkSE1nZEdobElHQjBiMU4wY21sdVoxUmhaMkFnYjJZZ1lIWmhiSFZsWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z2NYVmxjbmt1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTNOMGNtbHVaMzBnVW1WMGRYSnVjeUIwYUdVZ1lIUnZVM1J5YVc1blZHRm5ZQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQjJZWElnWjJWMFZHRm5JRDBnWW1GelpVZGxkRlJoWnp0Y2JseHVJQ0FnSUM4dklFWmhiR3hpWVdOcklHWnZjaUJrWVhSaElIWnBaWGR6TENCdFlYQnpMQ0J6WlhSekxDQmhibVFnZDJWaGF5QnRZWEJ6SUdsdUlFbEZJREV4SUdGdVpDQndjbTl0YVhObGN5QnBiaUJPYjJSbExtcHpJRHdnTmk1Y2JpQWdJQ0JwWmlBb0tFUmhkR0ZXYVdWM0lDWW1JR2RsZEZSaFp5aHVaWGNnUkdGMFlWWnBaWGNvYm1WM0lFRnljbUY1UW5WbVptVnlLREVwS1NrZ0lUMGdaR0YwWVZacFpYZFVZV2NwSUh4OFhHNGdJQ0FnSUNBZ0lDaE5ZWEFnSmlZZ1oyVjBWR0ZuS0c1bGR5Qk5ZWEFwSUNFOUlHMWhjRlJoWnlrZ2ZIeGNiaUFnSUNBZ0lDQWdLRkJ5YjIxcGMyVWdKaVlnWjJWMFZHRm5LRkJ5YjIxcGMyVXVjbVZ6YjJ4MlpTZ3BLU0FoUFNCd2NtOXRhWE5sVkdGbktTQjhmRnh1SUNBZ0lDQWdJQ0FvVTJWMElDWW1JR2RsZEZSaFp5aHVaWGNnVTJWMEtTQWhQU0J6WlhSVVlXY3BJSHg4WEc0Z0lDQWdJQ0FnSUNoWFpXRnJUV0Z3SUNZbUlHZGxkRlJoWnlodVpYY2dWMlZoYTAxaGNDa2dJVDBnZDJWaGEwMWhjRlJoWnlrcElIdGNiaUFnSUNBZ0lHZGxkRlJoWnlBOUlHWjFibU4wYVc5dUtIWmhiSFZsS1NCN1hHNGdJQ0FnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0JpWVhObFIyVjBWR0ZuS0haaGJIVmxLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lFTjBiM0lnUFNCeVpYTjFiSFFnUFQwZ2IySnFaV04wVkdGbklEOGdkbUZzZFdVdVkyOXVjM1J5ZFdOMGIzSWdPaUIxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmpkRzl5VTNSeWFXNW5JRDBnUTNSdmNpQS9JSFJ2VTI5MWNtTmxLRU4wYjNJcElEb2dKeWM3WEc1Y2JpQWdJQ0FnSUNBZ2FXWWdLR04wYjNKVGRISnBibWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tHTjBiM0pUZEhKcGJtY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWkdGMFlWWnBaWGREZEc5eVUzUnlhVzVuT2lCeVpYUjFjbTRnWkdGMFlWWnBaWGRVWVdjN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElHMWhjRU4wYjNKVGRISnBibWM2SUhKbGRIVnliaUJ0WVhCVVlXYzdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJSEJ5YjIxcGMyVkRkRzl5VTNSeWFXNW5PaUJ5WlhSMWNtNGdjSEp2YldselpWUmhaenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnYzJWMFEzUnZjbE4wY21sdVp6b2djbVYwZFhKdUlITmxkRlJoWnp0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ2QyVmhhMDFoY0VOMGIzSlRkSEpwYm1jNklISmxkSFZ5YmlCM1pXRnJUV0Z3VkdGbk8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lDQWdmVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJIWlhSeklIUm9aU0IyYVdWM0xDQmhjSEJzZVdsdVp5QmhibmtnWUhSeVlXNXpabTl5YlhOZ0lIUnZJSFJvWlNCZ2MzUmhjblJnSUdGdVpDQmdaVzVrWUNCd2IzTnBkR2x2Ym5NdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0J6ZEdGeWRDQlVhR1VnYzNSaGNuUWdiMllnZEdobElIWnBaWGN1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJR1Z1WkNCVWFHVWdaVzVrSUc5bUlIUm9aU0IyYVdWM0xseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUhSeVlXNXpabTl5YlhNZ1ZHaGxJSFJ5WVc1elptOXliV0YwYVc5dWN5QjBieUJoY0hCc2VTQjBieUIwYUdVZ2RtbGxkeTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3VDJKcVpXTjBmU0JTWlhSMWNtNXpJR0Z1SUc5aWFtVmpkQ0JqYjI1MFlXbHVhVzVuSUhSb1pTQmdjM1JoY25SZ0lHRnVaQ0JnWlc1a1lGeHVJQ0FnSUNBcUlDQndiM05wZEdsdmJuTWdiMllnZEdobElIWnBaWGN1WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdaMlYwVm1sbGR5aHpkR0Z5ZEN3Z1pXNWtMQ0IwY21GdWMyWnZjbTF6S1NCN1hHNGdJQ0FnSUNCMllYSWdhVzVrWlhnZ1BTQXRNU3hjYmlBZ0lDQWdJQ0FnSUNCc1pXNW5kR2dnUFNCMGNtRnVjMlp2Y20xekxteGxibWQwYUR0Y2JseHVJQ0FnSUNBZ2QyaHBiR1VnS0NzcmFXNWtaWGdnUENCc1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJR1JoZEdFZ1BTQjBjbUZ1YzJadmNtMXpXMmx1WkdWNFhTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhOcGVtVWdQU0JrWVhSaExuTnBlbVU3WEc1Y2JpQWdJQ0FnSUNBZ2MzZHBkR05vSUNoa1lYUmhMblI1Y0dVcElIdGNiaUFnSUNBZ0lDQWdJQ0JqWVhObElDZGtjbTl3SnpvZ0lDQWdJQ0J6ZEdGeWRDQXJQU0J6YVhwbE95QmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUNka2NtOXdVbWxuYUhRbk9pQmxibVFnTFQwZ2MybDZaVHNnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQW5kR0ZyWlNjNklDQWdJQ0FnWlc1a0lEMGdibUYwYVhabFRXbHVLR1Z1WkN3Z2MzUmhjblFnS3lCemFYcGxLVHNnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQW5kR0ZyWlZKcFoyaDBKem9nYzNSaGNuUWdQU0J1WVhScGRtVk5ZWGdvYzNSaGNuUXNJR1Z1WkNBdElITnBlbVVwT3lCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJSHNnSjNOMFlYSjBKem9nYzNSaGNuUXNJQ2RsYm1Rbk9pQmxibVFnZlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRmVIUnlZV04wY3lCM2NtRndjR1Z5SUdSbGRHRnBiSE1nWm5KdmJTQjBhR1VnWUhOdmRYSmpaV0FnWW05a2VTQmpiMjF0Wlc1MExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYzI5MWNtTmxJRlJvWlNCemIzVnlZMlVnZEc4Z2FXNXpjR1ZqZEM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1FYSnlZWGw5SUZKbGRIVnlibk1nZEdobElIZHlZWEJ3WlhJZ1pHVjBZV2xzY3k1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJuWlhSWGNtRndSR1YwWVdsc2N5aHpiM1Z5WTJVcElIdGNiaUFnSUNBZ0lIWmhjaUJ0WVhSamFDQTlJSE52ZFhKalpTNXRZWFJqYUNoeVpWZHlZWEJFWlhSaGFXeHpLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnRZWFJqYUNBL0lHMWhkR05vV3pGZExuTndiR2wwS0hKbFUzQnNhWFJFWlhSaGFXeHpLU0E2SUZ0ZE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTm9aV05yY3lCcFppQmdjR0YwYUdBZ1pYaHBjM1J6SUc5dUlHQnZZbXBsWTNSZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjJKcVpXTjBJRlJvWlNCdlltcGxZM1FnZEc4Z2NYVmxjbmt1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYeHpkSEpwYm1kOUlIQmhkR2dnVkdobElIQmhkR2dnZEc4Z1kyaGxZMnN1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnYUdGelJuVnVZeUJVYUdVZ1puVnVZM1JwYjI0Z2RHOGdZMmhsWTJzZ2NISnZjR1Z5ZEdsbGN5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdZbTl2YkdWaGJuMGdVbVYwZFhKdWN5QmdkSEoxWldBZ2FXWWdZSEJoZEdoZ0lHVjRhWE4wY3l3Z1pXeHpaU0JnWm1Gc2MyVmdMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHaGhjMUJoZEdnb2IySnFaV04wTENCd1lYUm9MQ0JvWVhOR2RXNWpLU0I3WEc0Z0lDQWdJQ0J3WVhSb0lEMGdZMkZ6ZEZCaGRHZ29jR0YwYUN3Z2IySnFaV04wS1R0Y2JseHVJQ0FnSUNBZ2RtRnlJR2x1WkdWNElEMGdMVEVzWEc0Z0lDQWdJQ0FnSUNBZ2JHVnVaM1JvSUQwZ2NHRjBhQzVzWlc1bmRHZ3NYRzRnSUNBZ0lDQWdJQ0FnY21WemRXeDBJRDBnWm1Gc2MyVTdYRzVjYmlBZ0lDQWdJSGRvYVd4bElDZ3JLMmx1WkdWNElEd2diR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCclpYa2dQU0IwYjB0bGVTaHdZWFJvVzJsdVpHVjRYU2s3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hLSEpsYzNWc2RDQTlJRzlpYW1WamRDQWhQU0J1ZFd4c0lDWW1JR2hoYzBaMWJtTW9iMkpxWldOMExDQnJaWGtwS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJRzlpYW1WamRDQTlJRzlpYW1WamRGdHJaWGxkTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tISmxjM1ZzZENCOGZDQXJLMmx1WkdWNElDRTlJR3hsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2JHVnVaM1JvSUQwZ2IySnFaV04wSUQwOUlHNTFiR3dnUHlBd0lEb2diMkpxWldOMExteGxibWQwYUR0Y2JpQWdJQ0FnSUhKbGRIVnliaUFoSVd4bGJtZDBhQ0FtSmlCcGMweGxibWQwYUNoc1pXNW5kR2dwSUNZbUlHbHpTVzVrWlhnb2EyVjVMQ0JzWlc1bmRHZ3BJQ1ltWEc0Z0lDQWdJQ0FnSUNocGMwRnljbUY1S0c5aWFtVmpkQ2tnZkh3Z2FYTkJjbWQxYldWdWRITW9iMkpxWldOMEtTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dTVzVwZEdsaGJHbDZaWE1nWVc0Z1lYSnlZWGtnWTJ4dmJtVXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUdGeWNtRjVJRlJvWlNCaGNuSmhlU0IwYnlCamJHOXVaUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUdsdWFYUnBZV3hwZW1Wa0lHTnNiMjVsTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR2x1YVhSRGJHOXVaVUZ5Y21GNUtHRnljbUY1S1NCN1hHNGdJQ0FnSUNCMllYSWdiR1Z1WjNSb0lEMGdZWEp5WVhrdWJHVnVaM1JvTEZ4dUlDQWdJQ0FnSUNBZ0lISmxjM1ZzZENBOUlHNWxkeUJoY25KaGVTNWpiMjV6ZEhKMVkzUnZjaWhzWlc1bmRHZ3BPMXh1WEc0Z0lDQWdJQ0F2THlCQlpHUWdjSEp2Y0dWeWRHbGxjeUJoYzNOcFoyNWxaQ0JpZVNCZ1VtVm5SWGh3STJWNFpXTmdMbHh1SUNBZ0lDQWdhV1lnS0d4bGJtZDBhQ0FtSmlCMGVYQmxiMllnWVhKeVlYbGJNRjBnUFQwZ0ozTjBjbWx1WnljZ0ppWWdhR0Z6VDNkdVVISnZjR1Z5ZEhrdVkyRnNiQ2hoY25KaGVTd2dKMmx1WkdWNEp5a3BJSHRjYmlBZ0lDQWdJQ0FnY21WemRXeDBMbWx1WkdWNElEMGdZWEp5WVhrdWFXNWtaWGc3WEc0Z0lDQWdJQ0FnSUhKbGMzVnNkQzVwYm5CMWRDQTlJR0Z5Y21GNUxtbHVjSFYwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkpibWwwYVdGc2FYcGxjeUJoYmlCdlltcGxZM1FnWTJ4dmJtVXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGxZM1FnVkdobElHOWlhbVZqZENCMGJ5QmpiRzl1WlM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1QySnFaV04wZlNCU1pYUjFjbTV6SUhSb1pTQnBibWwwYVdGc2FYcGxaQ0JqYkc5dVpTNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCcGJtbDBRMnh2Ym1WUFltcGxZM1FvYjJKcVpXTjBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdLSFI1Y0dWdlppQnZZbXBsWTNRdVkyOXVjM1J5ZFdOMGIzSWdQVDBnSjJaMWJtTjBhVzl1SnlBbUppQWhhWE5RY205MGIzUjVjR1VvYjJKcVpXTjBLU2xjYmlBZ0lDQWdJQ0FnUHlCaVlYTmxRM0psWVhSbEtHZGxkRkJ5YjNSdmRIbHdaU2h2WW1wbFkzUXBLVnh1SUNBZ0lDQWdJQ0E2SUh0OU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFbHVhWFJwWVd4cGVtVnpJR0Z1SUc5aWFtVmpkQ0JqYkc5dVpTQmlZWE5sWkNCdmJpQnBkSE1nWUhSdlUzUnlhVzVuVkdGbllDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDb3FUbTkwWlRvcUtpQlVhR2x6SUdaMWJtTjBhVzl1SUc5dWJIa2djM1Z3Y0c5eWRITWdZMnh2Ym1sdVp5QjJZV3gxWlhNZ2QybDBhQ0IwWVdkeklHOW1YRzRnSUNBZ0lDb2dZRUp2YjJ4bFlXNWdMQ0JnUkdGMFpXQXNJR0JGY25KdmNtQXNJR0JOWVhCZ0xDQmdUblZ0WW1WeVlDd2dZRkpsWjBWNGNHQXNJR0JUWlhSZ0xDQnZjaUJnVTNSeWFXNW5ZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOWlhbVZqZENCVWFHVWdiMkpxWldOMElIUnZJR05zYjI1bExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCMFlXY2dWR2hsSUdCMGIxTjBjbWx1WjFSaFoyQWdiMllnZEdobElHOWlhbVZqZENCMGJ5QmpiRzl1WlM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0cGMwUmxaWEJkSUZOd1pXTnBabmtnWVNCa1pXVndJR05zYjI1bExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdFBZbXBsWTNSOUlGSmxkSFZ5Ym5NZ2RHaGxJR2x1YVhScFlXeHBlbVZrSUdOc2IyNWxMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHbHVhWFJEYkc5dVpVSjVWR0ZuS0c5aWFtVmpkQ3dnZEdGbkxDQnBjMFJsWlhBcElIdGNiaUFnSUNBZ0lIWmhjaUJEZEc5eUlEMGdiMkpxWldOMExtTnZibk4wY25WamRHOXlPMXh1SUNBZ0lDQWdjM2RwZEdOb0lDaDBZV2NwSUh0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JoY25KaGVVSjFabVpsY2xSaFp6cGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdZMnh2Ym1WQmNuSmhlVUoxWm1abGNpaHZZbXBsWTNRcE8xeHVYRzRnSUNBZ0lDQWdJR05oYzJVZ1ltOXZiRlJoWnpwY2JpQWdJQ0FnSUNBZ1kyRnpaU0JrWVhSbFZHRm5PbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1EzUnZjaWdyYjJKcVpXTjBLVHRjYmx4dUlDQWdJQ0FnSUNCallYTmxJR1JoZEdGV2FXVjNWR0ZuT2x4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCamJHOXVaVVJoZEdGV2FXVjNLRzlpYW1WamRDd2dhWE5FWldWd0tUdGNibHh1SUNBZ0lDQWdJQ0JqWVhObElHWnNiMkYwTXpKVVlXYzZJR05oYzJVZ1pteHZZWFEyTkZSaFp6cGNiaUFnSUNBZ0lDQWdZMkZ6WlNCcGJuUTRWR0ZuT2lCallYTmxJR2x1ZERFMlZHRm5PaUJqWVhObElHbHVkRE15VkdGbk9seHVJQ0FnSUNBZ0lDQmpZWE5sSUhWcGJuUTRWR0ZuT2lCallYTmxJSFZwYm5RNFEyeGhiWEJsWkZSaFp6b2dZMkZ6WlNCMWFXNTBNVFpVWVdjNklHTmhjMlVnZFdsdWRETXlWR0ZuT2x4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCamJHOXVaVlI1Y0dWa1FYSnlZWGtvYjJKcVpXTjBMQ0JwYzBSbFpYQXBPMXh1WEc0Z0lDQWdJQ0FnSUdOaGMyVWdiV0Z3VkdGbk9seHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnUTNSdmNqdGNibHh1SUNBZ0lDQWdJQ0JqWVhObElHNTFiV0psY2xSaFp6cGNiaUFnSUNBZ0lDQWdZMkZ6WlNCemRISnBibWRVWVdjNlhHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJEZEc5eUtHOWlhbVZqZENrN1hHNWNiaUFnSUNBZ0lDQWdZMkZ6WlNCeVpXZGxlSEJVWVdjNlhHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHTnNiMjVsVW1WblJYaHdLRzlpYW1WamRDazdYRzVjYmlBZ0lDQWdJQ0FnWTJGelpTQnpaWFJVWVdjNlhHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJEZEc5eU8xeHVYRzRnSUNBZ0lDQWdJR05oYzJVZ2MzbHRZbTlzVkdGbk9seHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmpiRzl1WlZONWJXSnZiQ2h2WW1wbFkzUXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRWx1YzJWeWRITWdkM0poY0hCbGNpQmdaR1YwWVdsc2MyQWdhVzRnWVNCamIyMXRaVzUwSUdGMElIUm9aU0IwYjNBZ2IyWWdkR2hsSUdCemIzVnlZMlZnSUdKdlpIa3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCemIzVnlZMlVnVkdobElITnZkWEpqWlNCMGJ5QnRiMlJwWm5rdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCa1pYUmhhV3h6SUZSb1pTQmtaWFJoYVd4eklIUnZJR2x1YzJWeWRDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdjM1J5YVc1bmZTQlNaWFIxY201eklIUm9aU0J0YjJScFptbGxaQ0J6YjNWeVkyVXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2FXNXpaWEowVjNKaGNFUmxkR0ZwYkhNb2MyOTFjbU5sTENCa1pYUmhhV3h6S1NCN1hHNGdJQ0FnSUNCMllYSWdiR1Z1WjNSb0lEMGdaR1YwWVdsc2N5NXNaVzVuZEdnN1hHNGdJQ0FnSUNCcFppQW9JV3hsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjMjkxY21ObE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2RtRnlJR3hoYzNSSmJtUmxlQ0E5SUd4bGJtZDBhQ0F0SURFN1hHNGdJQ0FnSUNCa1pYUmhhV3h6VzJ4aGMzUkpibVJsZUYwZ1BTQW9iR1Z1WjNSb0lENGdNU0EvSUNjbUlDY2dPaUFuSnlrZ0t5QmtaWFJoYVd4elcyeGhjM1JKYm1SbGVGMDdYRzRnSUNBZ0lDQmtaWFJoYVd4eklEMGdaR1YwWVdsc2N5NXFiMmx1S0d4bGJtZDBhQ0ErSURJZ1B5QW5MQ0FuSURvZ0p5QW5LVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnpiM1Z5WTJVdWNtVndiR0ZqWlNoeVpWZHlZWEJEYjIxdFpXNTBMQ0FuZTF4Y2JpOHFJRnQzY21Gd2NHVmtJSGRwZEdnZ0p5QXJJR1JsZEdGcGJITWdLeUFuWFNBcUwxeGNiaWNwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOb1pXTnJjeUJwWmlCZ2RtRnNkV1ZnSUdseklHRWdabXhoZEhSbGJtRmliR1VnWUdGeVozVnRaVzUwYzJBZ2IySnFaV04wSUc5eUlHRnljbUY1TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCamFHVmpheTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3WW05dmJHVmhibjBnVW1WMGRYSnVjeUJnZEhKMVpXQWdhV1lnWUhaaGJIVmxZQ0JwY3lCbWJHRjBkR1Z1WVdKc1pTd2daV3h6WlNCZ1ptRnNjMlZnTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR2x6Um14aGRIUmxibUZpYkdVb2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJwYzBGeWNtRjVLSFpoYkhWbEtTQjhmQ0JwYzBGeVozVnRaVzUwY3loMllXeDFaU2tnZkh4Y2JpQWdJQ0FnSUNBZ0lTRW9jM0J5WldGa1lXSnNaVk41YldKdmJDQW1KaUIyWVd4MVpTQW1KaUIyWVd4MVpWdHpjSEpsWVdSaFlteGxVM2x0WW05c1hTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMmhsWTJ0eklHbG1JR0IyWVd4MVpXQWdhWE1nWVNCMllXeHBaQ0JoY25KaGVTMXNhV3RsSUdsdVpHVjRMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSFpoYkhWbElGUm9aU0IyWVd4MVpTQjBieUJqYUdWamF5NWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1cyeGxibWQwYUQxTlFWaGZVMEZHUlY5SlRsUkZSMFZTWFNCVWFHVWdkWEJ3WlhJZ1ltOTFibVJ6SUc5bUlHRWdkbUZzYVdRZ2FXNWtaWGd1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTJKdmIyeGxZVzU5SUZKbGRIVnlibk1nWUhSeWRXVmdJR2xtSUdCMllXeDFaV0FnYVhNZ1lTQjJZV3hwWkNCcGJtUmxlQ3dnWld4elpTQmdabUZzYzJWZ0xseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdselNXNWtaWGdvZG1Gc2RXVXNJR3hsYm1kMGFDa2dlMXh1SUNBZ0lDQWdkbUZ5SUhSNWNHVWdQU0IwZVhCbGIyWWdkbUZzZFdVN1hHNGdJQ0FnSUNCc1pXNW5kR2dnUFNCc1pXNW5kR2dnUFQwZ2JuVnNiQ0EvSUUxQldGOVRRVVpGWDBsT1ZFVkhSVklnT2lCc1pXNW5kR2c3WEc1Y2JpQWdJQ0FnSUhKbGRIVnliaUFoSVd4bGJtZDBhQ0FtSmx4dUlDQWdJQ0FnSUNBb2RIbHdaU0E5UFNBbmJuVnRZbVZ5SnlCOGZGeHVJQ0FnSUNBZ0lDQWdJQ2gwZVhCbElDRTlJQ2R6ZVcxaWIyd25JQ1ltSUhKbFNYTlZhVzUwTG5SbGMzUW9kbUZzZFdVcEtTa2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDaDJZV3gxWlNBK0lDMHhJQ1ltSUhaaGJIVmxJQ1VnTVNBOVBTQXdJQ1ltSUhaaGJIVmxJRHdnYkdWdVozUm9LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEYUdWamEzTWdhV1lnZEdobElHZHBkbVZ1SUdGeVozVnRaVzUwY3lCaGNtVWdabkp2YlNCaGJpQnBkR1Z5WVhSbFpTQmpZV3hzTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCd2IzUmxiblJwWVd3Z2FYUmxjbUYwWldVZ2RtRnNkV1VnWVhKbmRXMWxiblF1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCcGJtUmxlQ0JVYUdVZ2NHOTBaVzUwYVdGc0lHbDBaWEpoZEdWbElHbHVaR1Y0SUc5eUlHdGxlU0JoY21kMWJXVnVkQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUc5aWFtVmpkQ0JVYUdVZ2NHOTBaVzUwYVdGc0lHbDBaWEpoZEdWbElHOWlhbVZqZENCaGNtZDFiV1Z1ZEM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1ltOXZiR1ZoYm4wZ1VtVjBkWEp1Y3lCZ2RISjFaV0FnYVdZZ2RHaGxJR0Z5WjNWdFpXNTBjeUJoY21VZ1puSnZiU0JoYmlCcGRHVnlZWFJsWlNCallXeHNMRnh1SUNBZ0lDQXFJQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYVhOSmRHVnlZWFJsWlVOaGJHd29kbUZzZFdVc0lHbHVaR1Y0TENCdlltcGxZM1FwSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hhWE5QWW1wbFkzUW9iMkpxWldOMEtTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCMllYSWdkSGx3WlNBOUlIUjVjR1Z2WmlCcGJtUmxlRHRjYmlBZ0lDQWdJR2xtSUNoMGVYQmxJRDA5SUNkdWRXMWlaWEluWEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JQ2hwYzBGeWNtRjVUR2xyWlNodlltcGxZM1FwSUNZbUlHbHpTVzVrWlhnb2FXNWtaWGdzSUc5aWFtVmpkQzVzWlc1bmRHZ3BLVnh1SUNBZ0lDQWdJQ0FnSUNBZ09pQW9kSGx3WlNBOVBTQW5jM1J5YVc1bkp5QW1KaUJwYm1SbGVDQnBiaUJ2WW1wbFkzUXBYRzRnSUNBZ0lDQWdJQ0FnS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCbGNTaHZZbXBsWTNSYmFXNWtaWGhkTENCMllXeDFaU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyaGxZMnR6SUdsbUlHQjJZV3gxWldBZ2FYTWdZU0J3Y205d1pYSjBlU0J1WVcxbElHRnVaQ0J1YjNRZ1lTQndjbTl3WlhKMGVTQndZWFJvTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCamFHVmpheTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdXMjlpYW1WamRGMGdWR2hsSUc5aWFtVmpkQ0IwYnlCeGRXVnllU0JyWlhseklHOXVMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRpYjI5c1pXRnVmU0JTWlhSMWNtNXpJR0IwY25WbFlDQnBaaUJnZG1Gc2RXVmdJR2x6SUdFZ2NISnZjR1Z5ZEhrZ2JtRnRaU3dnWld4elpTQmdabUZzYzJWZ0xseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdselMyVjVLSFpoYkhWbExDQnZZbXBsWTNRcElIdGNiaUFnSUNBZ0lHbG1JQ2hwYzBGeWNtRjVLSFpoYkhWbEtTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCMllYSWdkSGx3WlNBOUlIUjVjR1Z2WmlCMllXeDFaVHRjYmlBZ0lDQWdJR2xtSUNoMGVYQmxJRDA5SUNkdWRXMWlaWEluSUh4OElIUjVjR1VnUFQwZ0ozTjViV0p2YkNjZ2ZId2dkSGx3WlNBOVBTQW5ZbTl2YkdWaGJpY2dmSHhjYmlBZ0lDQWdJQ0FnSUNCMllXeDFaU0E5UFNCdWRXeHNJSHg4SUdselUzbHRZbTlzS0haaGJIVmxLU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpVbHpVR3hoYVc1UWNtOXdMblJsYzNRb2RtRnNkV1VwSUh4OElDRnlaVWx6UkdWbGNGQnliM0F1ZEdWemRDaDJZV3gxWlNrZ2ZIeGNiaUFnSUNBZ0lDQWdLRzlpYW1WamRDQWhQU0J1ZFd4c0lDWW1JSFpoYkhWbElHbHVJRTlpYW1WamRDaHZZbXBsWTNRcEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRhR1ZqYTNNZ2FXWWdZSFpoYkhWbFlDQnBjeUJ6ZFdsMFlXSnNaU0JtYjNJZ2RYTmxJR0Z6SUhWdWFYRjFaU0J2WW1wbFkzUWdhMlY1TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCamFHVmpheTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3WW05dmJHVmhibjBnVW1WMGRYSnVjeUJnZEhKMVpXQWdhV1lnWUhaaGJIVmxZQ0JwY3lCemRXbDBZV0pzWlN3Z1pXeHpaU0JnWm1Gc2MyVmdMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHbHpTMlY1WVdKc1pTaDJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ2RtRnlJSFI1Y0dVZ1BTQjBlWEJsYjJZZ2RtRnNkV1U3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdLSFI1Y0dVZ1BUMGdKM04wY21sdVp5Y2dmSHdnZEhsd1pTQTlQU0FuYm5WdFltVnlKeUI4ZkNCMGVYQmxJRDA5SUNkemVXMWliMnduSUh4OElIUjVjR1VnUFQwZ0oySnZiMnhsWVc0bktWeHVJQ0FnSUNBZ0lDQS9JQ2gyWVd4MVpTQWhQVDBnSjE5ZmNISnZkRzlmWHljcFhHNGdJQ0FnSUNBZ0lEb2dLSFpoYkhWbElEMDlQU0J1ZFd4c0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRhR1ZqYTNNZ2FXWWdZR1oxYm1OZ0lHaGhjeUJoSUd4aGVua2dZMjkxYm5SbGNuQmhjblF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR1oxYm1NZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUdOb1pXTnJMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRpYjI5c1pXRnVmU0JTWlhSMWNtNXpJR0IwY25WbFlDQnBaaUJnWm5WdVkyQWdhR0Z6SUdFZ2JHRjZlU0JqYjNWdWRHVnljR0Z5ZEN4Y2JpQWdJQ0FnS2lBZ1pXeHpaU0JnWm1Gc2MyVmdMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHbHpUR0Y2YVdGaWJHVW9ablZ1WXlrZ2UxeHVJQ0FnSUNBZ2RtRnlJR1oxYm1OT1lXMWxJRDBnWjJWMFJuVnVZMDVoYldVb1puVnVZeWtzWEc0Z0lDQWdJQ0FnSUNBZ2IzUm9aWElnUFNCc2IyUmhjMmhiWm5WdVkwNWhiV1ZkTzF4dVhHNGdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlHOTBhR1Z5SUNFOUlDZG1kVzVqZEdsdmJpY2dmSHdnSVNobWRXNWpUbUZ0WlNCcGJpQk1ZWHA1VjNKaGNIQmxjaTV3Y205MGIzUjVjR1VwS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR2xtSUNobWRXNWpJRDA5UFNCdmRHaGxjaWtnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lIWmhjaUJrWVhSaElEMGdaMlYwUkdGMFlTaHZkR2hsY2lrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnSVNGa1lYUmhJQ1ltSUdaMWJtTWdQVDA5SUdSaGRHRmJNRjA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTJobFkydHpJR2xtSUdCbWRXNWpZQ0JvWVhNZ2FYUnpJSE52ZFhKalpTQnRZWE5yWldRdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUdaMWJtTWdWR2hsSUdaMWJtTjBhVzl1SUhSdklHTm9aV05yTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0aWIyOXNaV0Z1ZlNCU1pYUjFjbTV6SUdCMGNuVmxZQ0JwWmlCZ1puVnVZMkFnYVhNZ2JXRnphMlZrTENCbGJITmxJR0JtWVd4elpXQXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2FYTk5ZWE5yWldRb1puVnVZeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJQ0VoYldGemExTnlZMHRsZVNBbUppQW9iV0Z6YTFOeVkwdGxlU0JwYmlCbWRXNWpLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEYUdWamEzTWdhV1lnWUdaMWJtTmdJR2x6SUdOaGNHRmliR1VnYjJZZ1ltVnBibWNnYldGemEyVmtMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSFpoYkhWbElGUm9aU0IyWVd4MVpTQjBieUJqYUdWamF5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdZbTl2YkdWaGJuMGdVbVYwZFhKdWN5QmdkSEoxWldBZ2FXWWdZR1oxYm1OZ0lHbHpJRzFoYzJ0aFlteGxMQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnZG1GeUlHbHpUV0Z6YTJGaWJHVWdQU0JqYjNKbFNuTkVZWFJoSUQ4Z2FYTkdkVzVqZEdsdmJpQTZJSE4wZFdKR1lXeHpaVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOb1pXTnJjeUJwWmlCZ2RtRnNkV1ZnSUdseklHeHBhMlZzZVNCaElIQnliM1J2ZEhsd1pTQnZZbXBsWTNRdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ2RtRnNkV1VnVkdobElIWmhiSFZsSUhSdklHTm9aV05yTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0aWIyOXNaV0Z1ZlNCU1pYUjFjbTV6SUdCMGNuVmxZQ0JwWmlCZ2RtRnNkV1ZnSUdseklHRWdjSEp2ZEc5MGVYQmxMQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYVhOUWNtOTBiM1I1Y0dVb2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUhaaGNpQkRkRzl5SUQwZ2RtRnNkV1VnSmlZZ2RtRnNkV1V1WTI5dWMzUnlkV04wYjNJc1hHNGdJQ0FnSUNBZ0lDQWdjSEp2ZEc4Z1BTQW9kSGx3Wlc5bUlFTjBiM0lnUFQwZ0oyWjFibU4wYVc5dUp5QW1KaUJEZEc5eUxuQnliM1J2ZEhsd1pTa2dmSHdnYjJKcVpXTjBVSEp2ZEc4N1hHNWNiaUFnSUNBZ0lISmxkSFZ5YmlCMllXeDFaU0E5UFQwZ2NISnZkRzg3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTJobFkydHpJR2xtSUdCMllXeDFaV0FnYVhNZ2MzVnBkR0ZpYkdVZ1ptOXlJSE4wY21samRDQmxjWFZoYkdsMGVTQmpiMjF3WVhKcGMyOXVjeXdnYVM1bExpQmdQVDA5WUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z1kyaGxZMnN1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTJKdmIyeGxZVzU5SUZKbGRIVnlibk1nWUhSeWRXVmdJR2xtSUdCMllXeDFaV0FnYVdZZ2MzVnBkR0ZpYkdVZ1ptOXlJSE4wY21samRGeHVJQ0FnSUNBcUlDQmxjWFZoYkdsMGVTQmpiMjF3WVhKcGMyOXVjeXdnWld4elpTQmdabUZzYzJWZ0xseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdselUzUnlhV04wUTI5dGNHRnlZV0pzWlNoMllXeDFaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFpoYkhWbElEMDlQU0IyWVd4MVpTQW1KaUFoYVhOUFltcGxZM1FvZG1Gc2RXVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRUVnYzNCbFkybGhiR2w2WldRZ2RtVnljMmx2YmlCdlppQmdiV0YwWTJobGMxQnliM0JsY25SNVlDQm1iM0lnYzI5MWNtTmxJSFpoYkhWbGN5QnpkV2wwWVdKc1pWeHVJQ0FnSUNBcUlHWnZjaUJ6ZEhKcFkzUWdaWEYxWVd4cGRIa2dZMjl0Y0dGeWFYTnZibk1zSUdrdVpTNGdZRDA5UFdBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JyWlhrZ1ZHaGxJR3RsZVNCdlppQjBhR1VnY0hKdmNHVnlkSGtnZEc4Z1oyVjBMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdLbjBnYzNKalZtRnNkV1VnVkdobElIWmhiSFZsSUhSdklHMWhkR05vTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0R2RXNWpkR2x2Ym4wZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUhOd1pXTWdablZ1WTNScGIyNHVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2JXRjBZMmhsYzFOMGNtbGpkRU52YlhCaGNtRmliR1VvYTJWNUxDQnpjbU5XWVd4MVpTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWjFibU4wYVc5dUtHOWlhbVZqZENrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYjJKcVpXTjBJRDA5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzlpYW1WamRGdHJaWGxkSUQwOVBTQnpjbU5XWVd4MVpTQW1KbHh1SUNBZ0lDQWdJQ0FnSUNoemNtTldZV3gxWlNBaFBUMGdkVzVrWldacGJtVmtJSHg4SUNoclpYa2dhVzRnVDJKcVpXTjBLRzlpYW1WamRDa3BLVHRjYmlBZ0lDQWdJSDA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUVNCemNHVmphV0ZzYVhwbFpDQjJaWEp6YVc5dUlHOW1JR0JmTG0xbGJXOXBlbVZnSUhkb2FXTm9JR05zWldGeWN5QjBhR1VnYldWdGIybDZaV1FnWm5WdVkzUnBiMjRuYzF4dUlDQWdJQ0FxSUdOaFkyaGxJSGRvWlc0Z2FYUWdaWGhqWldWa2N5QmdUVUZZWDAxRlRVOUpXa1ZmVTBsYVJXQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlHWjFibU1nVkdobElHWjFibU4wYVc5dUlIUnZJR2hoZG1VZ2FYUnpJRzkxZEhCMWRDQnRaVzF2YVhwbFpDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdSblZ1WTNScGIyNTlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QnRaVzF2YVhwbFpDQm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCdFpXMXZhWHBsUTJGd2NHVmtLR1oxYm1NcElIdGNiaUFnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0J0WlcxdmFYcGxLR1oxYm1Nc0lHWjFibU4wYVc5dUtHdGxlU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9ZMkZqYUdVdWMybDZaU0E5UFQwZ1RVRllYMDFGVFU5SldrVmZVMGxhUlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR05oWTJobExtTnNaV0Z5S0NrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHdGxlVHRjYmlBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnSUNCMllYSWdZMkZqYUdVZ1BTQnlaWE4xYkhRdVkyRmphR1U3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFMWxjbWRsY3lCMGFHVWdablZ1WTNScGIyNGdiV1YwWVdSaGRHRWdiMllnWUhOdmRYSmpaV0FnYVc1MGJ5QmdaR0YwWVdBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCTlpYSm5hVzVuSUcxbGRHRmtZWFJoSUhKbFpIVmpaWE1nZEdobElHNTFiV0psY2lCdlppQjNjbUZ3Y0dWeWN5QjFjMlZrSUhSdklHbHVkbTlyWlNCaElHWjFibU4wYVc5dUxseHVJQ0FnSUNBcUlGUm9hWE1nYVhNZ2NHOXpjMmxpYkdVZ1ltVmpZWFZ6WlNCdFpYUm9iMlJ6SUd4cGEyVWdZRjh1WW1sdVpHQXNJR0JmTG1OMWNuSjVZQ3dnWVc1a0lHQmZMbkJoY25ScFlXeGdYRzRnSUNBZ0lDb2diV0Y1SUdKbElHRndjR3hwWldRZ2NtVm5ZWEprYkdWemN5QnZaaUJsZUdWamRYUnBiMjRnYjNKa1pYSXVJRTFsZEdodlpITWdiR2xyWlNCZ1h5NWhjbmxnSUdGdVpGeHVJQ0FnSUNBcUlHQmZMbkpsWVhKbllDQnRiMlJwWm5rZ1puVnVZM1JwYjI0Z1lYSm5kVzFsYm5SekxDQnRZV3RwYm1jZ2RHaGxJRzl5WkdWeUlHbHVJSGRvYVdOb0lIUm9aWGtnWVhKbFhHNGdJQ0FnSUNvZ1pYaGxZM1YwWldRZ2FXMXdiM0owWVc1MExDQndjbVYyWlc1MGFXNW5JSFJvWlNCdFpYSm5hVzVuSUc5bUlHMWxkR0ZrWVhSaExpQkliM2RsZG1WeUxDQjNaU0J0WVd0bFhHNGdJQ0FnSUNvZ1lXNGdaWGhqWlhCMGFXOXVJR1p2Y2lCaElITmhabVVnWTI5dFltbHVaV1FnWTJGelpTQjNhR1Z5WlNCamRYSnlhV1ZrSUdaMWJtTjBhVzl1Y3lCb1lYWmxJR0JmTG1GeWVXQmNiaUFnSUNBZ0tpQmhibVFnYjNJZ1lGOHVjbVZoY21kZ0lHRndjR3hwWldRdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDlJR1JoZEdFZ1ZHaGxJR1JsYzNScGJtRjBhVzl1SUcxbGRHRmtZWFJoTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDlJSE52ZFhKalpTQlVhR1VnYzI5MWNtTmxJRzFsZEdGa1lYUmhMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QmdaR0YwWVdBdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYldWeVoyVkVZWFJoS0dSaGRHRXNJSE52ZFhKalpTa2dlMXh1SUNBZ0lDQWdkbUZ5SUdKcGRHMWhjMnNnUFNCa1lYUmhXekZkTEZ4dUlDQWdJQ0FnSUNBZ0lITnlZMEpwZEcxaGMyc2dQU0J6YjNWeVkyVmJNVjBzWEc0Z0lDQWdJQ0FnSUNBZ2JtVjNRbWwwYldGemF5QTlJR0pwZEcxaGMyc2dmQ0J6Y21OQ2FYUnRZWE5yTEZ4dUlDQWdJQ0FnSUNBZ0lHbHpRMjl0Ylc5dUlEMGdibVYzUW1sMGJXRnpheUE4SUNoWFVrRlFYMEpKVGtSZlJreEJSeUI4SUZkU1FWQmZRa2xPUkY5TFJWbGZSa3hCUnlCOElGZFNRVkJmUVZKWlgwWk1RVWNwTzF4dVhHNGdJQ0FnSUNCMllYSWdhWE5EYjIxaWJ5QTlYRzRnSUNBZ0lDQWdJQ2dvYzNKalFtbDBiV0Z6YXlBOVBTQlhVa0ZRWDBGU1dWOUdURUZIS1NBbUppQW9ZbWwwYldGemF5QTlQU0JYVWtGUVgwTlZVbEpaWDBaTVFVY3BLU0I4ZkZ4dUlDQWdJQ0FnSUNBb0tITnlZMEpwZEcxaGMyc2dQVDBnVjFKQlVGOUJVbGxmUmt4QlJ5a2dKaVlnS0dKcGRHMWhjMnNnUFQwZ1YxSkJVRjlTUlVGU1IxOUdURUZIS1NBbUppQW9aR0YwWVZzM1hTNXNaVzVuZEdnZ1BEMGdjMjkxY21ObFd6aGRLU2tnZkh4Y2JpQWdJQ0FnSUNBZ0tDaHpjbU5DYVhSdFlYTnJJRDA5SUNoWFVrRlFYMEZTV1Y5R1RFRkhJSHdnVjFKQlVGOVNSVUZTUjE5R1RFRkhLU2tnSmlZZ0tITnZkWEpqWlZzM1hTNXNaVzVuZEdnZ1BEMGdjMjkxY21ObFd6aGRLU0FtSmlBb1ltbDBiV0Z6YXlBOVBTQlhVa0ZRWDBOVlVsSlpYMFpNUVVjcEtUdGNibHh1SUNBZ0lDQWdMeThnUlhocGRDQmxZWEpzZVNCcFppQnRaWFJoWkdGMFlTQmpZVzRuZENCaVpTQnRaWEpuWldRdVhHNGdJQ0FnSUNCcFppQW9JU2hwYzBOdmJXMXZiaUI4ZkNCcGMwTnZiV0p2S1NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1pHRjBZVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJQzh2SUZWelpTQnpiM1Z5WTJVZ1lIUm9hWE5CY21kZ0lHbG1JR0YyWVdsc1lXSnNaUzVjYmlBZ0lDQWdJR2xtSUNoemNtTkNhWFJ0WVhOcklDWWdWMUpCVUY5Q1NVNUVYMFpNUVVjcElIdGNiaUFnSUNBZ0lDQWdaR0YwWVZzeVhTQTlJSE52ZFhKalpWc3lYVHRjYmlBZ0lDQWdJQ0FnTHk4Z1UyVjBJSGRvWlc0Z1kzVnljbmxwYm1jZ1lTQmliM1Z1WkNCbWRXNWpkR2x2Ymk1Y2JpQWdJQ0FnSUNBZ2JtVjNRbWwwYldGemF5QjhQU0JpYVhSdFlYTnJJQ1lnVjFKQlVGOUNTVTVFWDBaTVFVY2dQeUF3SURvZ1YxSkJVRjlEVlZKU1dWOUNUMVZPUkY5R1RFRkhPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdMeThnUTI5dGNHOXpaU0J3WVhKMGFXRnNJR0Z5WjNWdFpXNTBjeTVjYmlBZ0lDQWdJSFpoY2lCMllXeDFaU0E5SUhOdmRYSmpaVnN6WFR0Y2JpQWdJQ0FnSUdsbUlDaDJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnY0dGeWRHbGhiSE1nUFNCa1lYUmhXek5kTzF4dUlDQWdJQ0FnSUNCa1lYUmhXek5kSUQwZ2NHRnlkR2xoYkhNZ1B5QmpiMjF3YjNObFFYSm5jeWh3WVhKMGFXRnNjeXdnZG1Gc2RXVXNJSE52ZFhKalpWczBYU2tnT2lCMllXeDFaVHRjYmlBZ0lDQWdJQ0FnWkdGMFlWczBYU0E5SUhCaGNuUnBZV3h6SUQ4Z2NtVndiR0ZqWlVodmJHUmxjbk1vWkdGMFlWc3pYU3dnVUV4QlEwVklUMHhFUlZJcElEb2djMjkxY21ObFd6UmRPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdMeThnUTI5dGNHOXpaU0J3WVhKMGFXRnNJSEpwWjJoMElHRnlaM1Z0Wlc1MGN5NWNiaUFnSUNBZ0lIWmhiSFZsSUQwZ2MyOTFjbU5sV3pWZE8xeHVJQ0FnSUNBZ2FXWWdLSFpoYkhWbEtTQjdYRzRnSUNBZ0lDQWdJSEJoY25ScFlXeHpJRDBnWkdGMFlWczFYVHRjYmlBZ0lDQWdJQ0FnWkdGMFlWczFYU0E5SUhCaGNuUnBZV3h6SUQ4Z1kyOXRjRzl6WlVGeVozTlNhV2RvZENod1lYSjBhV0ZzY3l3Z2RtRnNkV1VzSUhOdmRYSmpaVnMyWFNrZ09pQjJZV3gxWlR0Y2JpQWdJQ0FnSUNBZ1pHRjBZVnMyWFNBOUlIQmhjblJwWVd4eklEOGdjbVZ3YkdGalpVaHZiR1JsY25Nb1pHRjBZVnMxWFN3Z1VFeEJRMFZJVDB4RVJWSXBJRG9nYzI5MWNtTmxXelpkTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnTHk4Z1ZYTmxJSE52ZFhKalpTQmdZWEpuVUc5ellDQnBaaUJoZG1GcGJHRmliR1V1WEc0Z0lDQWdJQ0IyWVd4MVpTQTlJSE52ZFhKalpWczNYVHRjYmlBZ0lDQWdJR2xtSUNoMllXeDFaU2tnZTF4dUlDQWdJQ0FnSUNCa1lYUmhXemRkSUQwZ2RtRnNkV1U3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0F2THlCVmMyVWdjMjkxY21ObElHQmhjbmxnSUdsbUlHbDBKM01nYzIxaGJHeGxjaTVjYmlBZ0lDQWdJR2xtSUNoemNtTkNhWFJ0WVhOcklDWWdWMUpCVUY5QlVsbGZSa3hCUnlrZ2UxeHVJQ0FnSUNBZ0lDQmtZWFJoV3poZElEMGdaR0YwWVZzNFhTQTlQU0J1ZFd4c0lEOGdjMjkxY21ObFd6aGRJRG9nYm1GMGFYWmxUV2x1S0dSaGRHRmJPRjBzSUhOdmRYSmpaVnM0WFNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNBdkx5QlZjMlVnYzI5MWNtTmxJR0JoY21sMGVXQWdhV1lnYjI1bElHbHpJRzV2ZENCd2NtOTJhV1JsWkM1Y2JpQWdJQ0FnSUdsbUlDaGtZWFJoV3psZElEMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lDQWdaR0YwWVZzNVhTQTlJSE52ZFhKalpWczVYVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJQzh2SUZWelpTQnpiM1Z5WTJVZ1lHWjFibU5nSUdGdVpDQnRaWEpuWlNCaWFYUnRZWE5yY3k1Y2JpQWdJQ0FnSUdSaGRHRmJNRjBnUFNCemIzVnlZMlZiTUYwN1hHNGdJQ0FnSUNCa1lYUmhXekZkSUQwZ2JtVjNRbWwwYldGemF6dGNibHh1SUNBZ0lDQWdjbVYwZFhKdUlHUmhkR0U3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdocGN5Qm1kVzVqZEdsdmJpQnBjeUJzYVd0bFhHNGdJQ0FnSUNvZ1cyQlBZbXBsWTNRdWEyVjVjMkJkS0doMGRIQTZMeTlsWTIxaExXbHVkR1Z5Ym1GMGFXOXVZV3d1YjNKbkwyVmpiV0V0TWpZeUx6Y3VNQzhqYzJWakxXOWlhbVZqZEM1clpYbHpLVnh1SUNBZ0lDQXFJR1Y0WTJWd2RDQjBhR0YwSUdsMElHbHVZMngxWkdWeklHbHVhR1Z5YVhSbFpDQmxiblZ0WlhKaFlteGxJSEJ5YjNCbGNuUnBaWE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZZbXBsWTNRZ1ZHaGxJRzlpYW1WamRDQjBieUJ4ZFdWeWVTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJR0Z5Y21GNUlHOW1JSEJ5YjNCbGNuUjVJRzVoYldWekxseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUc1aGRHbDJaVXRsZVhOSmJpaHZZbXBsWTNRcElIdGNiaUFnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0JiWFR0Y2JpQWdJQ0FnSUdsbUlDaHZZbXBsWTNRZ0lUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQm1iM0lnS0haaGNpQnJaWGtnYVc0Z1QySnFaV04wS0c5aWFtVmpkQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWE4xYkhRdWNIVnphQ2hyWlhrcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOdmJuWmxjblJ6SUdCMllXeDFaV0FnZEc4Z1lTQnpkSEpwYm1jZ2RYTnBibWNnWUU5aWFtVmpkQzV3Y205MGIzUjVjR1V1ZEc5VGRISnBibWRnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCamIyNTJaWEowTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0emRISnBibWQ5SUZKbGRIVnlibk1nZEdobElHTnZiblpsY25SbFpDQnpkSEpwYm1jdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYjJKcVpXTjBWRzlUZEhKcGJtY29kbUZzZFdVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVlYUnBkbVZQWW1wbFkzUlViMU4wY21sdVp5NWpZV3hzS0haaGJIVmxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJCSUhOd1pXTnBZV3hwZW1Wa0lIWmxjbk5wYjI0Z2IyWWdZR0poYzJWU1pYTjBZQ0IzYUdsamFDQjBjbUZ1YzJadmNtMXpJSFJvWlNCeVpYTjBJR0Z5Y21GNUxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCbWRXNWpJRlJvWlNCbWRXNWpkR2x2YmlCMGJ5QmhjSEJzZVNCaElISmxjM1FnY0dGeVlXMWxkR1Z5SUhSdkxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYmMzUmhjblE5Wm5WdVl5NXNaVzVuZEdndE1WMGdWR2hsSUhOMFlYSjBJSEJ2YzJsMGFXOXVJRzltSUhSb1pTQnlaWE4wSUhCaGNtRnRaWFJsY2k1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCMGNtRnVjMlp2Y20wZ1ZHaGxJSEpsYzNRZ1lYSnlZWGtnZEhKaGJuTm1iM0p0TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0R2RXNWpkR2x2Ym4wZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUdaMWJtTjBhVzl1TGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJRzkyWlhKU1pYTjBLR1oxYm1Nc0lITjBZWEowTENCMGNtRnVjMlp2Y20wcElIdGNiaUFnSUNBZ0lITjBZWEowSUQwZ2JtRjBhWFpsVFdGNEtITjBZWEowSUQwOVBTQjFibVJsWm1sdVpXUWdQeUFvWm5WdVl5NXNaVzVuZEdnZ0xTQXhLU0E2SUhOMFlYSjBMQ0F3S1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJtZFc1amRHbHZiaWdwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJR0Z5WjNNZ1BTQmhjbWQxYldWdWRITXNYRzRnSUNBZ0lDQWdJQ0FnSUNCcGJtUmxlQ0E5SUMweExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYkdWdVozUm9JRDBnYm1GMGFYWmxUV0Y0S0dGeVozTXViR1Z1WjNSb0lDMGdjM1JoY25Rc0lEQXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lYSnlZWGtnUFNCQmNuSmhlU2hzWlc1bmRHZ3BPMXh1WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2dySzJsdVpHVjRJRHdnYkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ1lYSnlZWGxiYVc1a1pYaGRJRDBnWVhKbmMxdHpkR0Z5ZENBcklHbHVaR1Y0WFR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnBibVJsZUNBOUlDMHhPMXh1SUNBZ0lDQWdJQ0IyWVhJZ2IzUm9aWEpCY21keklEMGdRWEp5WVhrb2MzUmhjblFnS3lBeEtUdGNiaUFnSUNBZ0lDQWdkMmhwYkdVZ0tDc3JhVzVrWlhnZ1BDQnpkR0Z5ZENrZ2UxeHVJQ0FnSUNBZ0lDQWdJRzkwYUdWeVFYSm5jMXRwYm1SbGVGMGdQU0JoY21kelcybHVaR1Y0WFR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnZkR2hsY2tGeVozTmJjM1JoY25SZElEMGdkSEpoYm5ObWIzSnRLR0Z5Y21GNUtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHRndjR3g1S0daMWJtTXNJSFJvYVhNc0lHOTBhR1Z5UVhKbmN5azdYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRWRsZEhNZ2RHaGxJSEJoY21WdWRDQjJZV3gxWlNCaGRDQmdjR0YwYUdBZ2IyWWdZRzlpYW1WamRHQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGxZM1FnVkdobElHOWlhbVZqZENCMGJ5QnhkV1Z5ZVM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0J3WVhSb0lGUm9aU0J3WVhSb0lIUnZJR2RsZENCMGFHVWdjR0Z5Wlc1MElIWmhiSFZsSUc5bUxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIc3FmU0JTWlhSMWNtNXpJSFJvWlNCd1lYSmxiblFnZG1Gc2RXVXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2NHRnlaVzUwS0c5aWFtVmpkQ3dnY0dGMGFDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIQmhkR2d1YkdWdVozUm9JRHdnTWlBL0lHOWlhbVZqZENBNklHSmhjMlZIWlhRb2IySnFaV04wTENCaVlYTmxVMnhwWTJVb2NHRjBhQ3dnTUN3Z0xURXBLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJTWlc5eVpHVnlJR0JoY25KaGVXQWdZV05qYjNKa2FXNW5JSFJ2SUhSb1pTQnpjR1ZqYVdacFpXUWdhVzVrWlhobGN5QjNhR1Z5WlNCMGFHVWdaV3hsYldWdWRDQmhkRnh1SUNBZ0lDQXFJSFJvWlNCbWFYSnpkQ0JwYm1SbGVDQnBjeUJoYzNOcFoyNWxaQ0JoY3lCMGFHVWdabWx5YzNRZ1pXeGxiV1Z1ZEN3Z2RHaGxJR1ZzWlcxbGJuUWdZWFJjYmlBZ0lDQWdLaUIwYUdVZ2MyVmpiMjVrSUdsdVpHVjRJR2x6SUdGemMybG5ibVZrSUdGeklIUm9aU0J6WldOdmJtUWdaV3hsYldWdWRDd2dZVzVrSUhOdklHOXVMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCaGNuSmhlU0JVYUdVZ1lYSnlZWGtnZEc4Z2NtVnZjbVJsY2k1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0JwYm1SbGVHVnpJRlJvWlNCaGNuSmhibWRsWkNCaGNuSmhlU0JwYm1SbGVHVnpMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QmdZWEp5WVhsZ0xseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUhKbGIzSmtaWElvWVhKeVlYa3NJR2x1WkdWNFpYTXBJSHRjYmlBZ0lDQWdJSFpoY2lCaGNuSk1aVzVuZEdnZ1BTQmhjbkpoZVM1c1pXNW5kR2dzWEc0Z0lDQWdJQ0FnSUNBZ2JHVnVaM1JvSUQwZ2JtRjBhWFpsVFdsdUtHbHVaR1Y0WlhNdWJHVnVaM1JvTENCaGNuSk1aVzVuZEdncExGeHVJQ0FnSUNBZ0lDQWdJRzlzWkVGeWNtRjVJRDBnWTI5d2VVRnljbUY1S0dGeWNtRjVLVHRjYmx4dUlDQWdJQ0FnZDJocGJHVWdLR3hsYm1kMGFDMHRLU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQnBibVJsZUNBOUlHbHVaR1Y0WlhOYmJHVnVaM1JvWFR0Y2JpQWdJQ0FnSUNBZ1lYSnlZWGxiYkdWdVozUm9YU0E5SUdselNXNWtaWGdvYVc1a1pYZ3NJR0Z5Y2t4bGJtZDBhQ2tnUHlCdmJHUkJjbkpoZVZ0cGJtUmxlRjBnT2lCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnWVhKeVlYazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dSMlYwY3lCMGFHVWdkbUZzZFdVZ1lYUWdZR3RsZVdBc0lIVnViR1Z6Y3lCZ2EyVjVZQ0JwY3lCY0lsOWZjSEp2ZEc5Zlgxd2lJRzl5SUZ3aVkyOXVjM1J5ZFdOMGIzSmNJaTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOWlhbVZqZENCVWFHVWdiMkpxWldOMElIUnZJSEYxWlhKNUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCclpYa2dWR2hsSUd0bGVTQnZaaUIwYUdVZ2NISnZjR1Z5ZEhrZ2RHOGdaMlYwTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUhzcWZTQlNaWFIxY201eklIUm9aU0J3Y205d1pYSjBlU0IyWVd4MVpTNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCellXWmxSMlYwS0c5aWFtVmpkQ3dnYTJWNUtTQjdYRzRnSUNBZ0lDQnBaaUFvYTJWNUlEMDlQU0FuWTI5dWMzUnlkV04wYjNJbklDWW1JSFI1Y0dWdlppQnZZbXBsWTNSYmEyVjVYU0E5UFQwZ0oyWjFibU4wYVc5dUp5a2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR2xtSUNoclpYa2dQVDBnSjE5ZmNISnZkRzlmWHljcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnlaWFIxY200Z2IySnFaV04wVzJ0bGVWMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dVMlYwY3lCdFpYUmhaR0YwWVNCbWIzSWdZR1oxYm1OZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0tpcE9iM1JsT2lvcUlFbG1JSFJvYVhNZ1puVnVZM1JwYjI0Z1ltVmpiMjFsY3lCb2IzUXNJR2t1WlM0Z2FYTWdhVzUyYjJ0bFpDQmhJR3h2ZENCcGJpQmhJSE5vYjNKMFhHNGdJQ0FnSUNvZ2NHVnlhVzlrSUc5bUlIUnBiV1VzSUdsMElIZHBiR3dnZEhKcGNDQnBkSE1nWW5KbFlXdGxjaUJoYm1RZ2RISmhibk5wZEdsdmJpQjBieUJoYmlCcFpHVnVkR2wwZVZ4dUlDQWdJQ0FxSUdaMWJtTjBhVzl1SUhSdklHRjJiMmxrSUdkaGNtSmhaMlVnWTI5c2JHVmpkR2x2YmlCd1lYVnpaWE1nYVc0Z1ZqZ3VJRk5sWlZ4dUlDQWdJQ0FxSUZ0V09DQnBjM04xWlNBeU1EY3dYU2hvZEhSd2N6b3ZMMkoxWjNNdVkyaHliMjFwZFcwdWIzSm5MM0F2ZGpndmFYTnpkV1Z6TDJSbGRHRnBiRDlwWkQweU1EY3dLVnh1SUNBZ0lDQXFJR1p2Y2lCdGIzSmxJR1JsZEdGcGJITXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlHWjFibU1nVkdobElHWjFibU4wYVc5dUlIUnZJR0Z6YzI5amFXRjBaU0J0WlhSaFpHRjBZU0IzYVhSb0xseHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdaR0YwWVNCVWFHVWdiV1YwWVdSaGRHRXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMFoxYm1OMGFXOXVmU0JTWlhSMWNtNXpJR0JtZFc1allDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCMllYSWdjMlYwUkdGMFlTQTlJSE5vYjNKMFQzVjBLR0poYzJWVFpYUkVZWFJoS1R0Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFRWdjMmx0Y0d4bElIZHlZWEJ3WlhJZ1lYSnZkVzVrSUhSb1pTQm5iRzlpWVd3Z1cyQnpaWFJVYVcxbGIzVjBZRjBvYUhSMGNITTZMeTl0Wkc0dWFXOHZjMlYwVkdsdFpXOTFkQ2t1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR1oxYm1NZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUdSbGJHRjVMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQjNZV2wwSUZSb1pTQnVkVzFpWlhJZ2IyWWdiV2xzYkdselpXTnZibVJ6SUhSdklHUmxiR0Y1SUdsdWRtOWpZWFJwYjI0dVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UyNTFiV0psY254UFltcGxZM1I5SUZKbGRIVnlibk1nZEdobElIUnBiV1Z5SUdsa0lHOXlJSFJwYldWdmRYUWdiMkpxWldOMExseHVJQ0FnSUNBcUwxeHVJQ0FnSUhaaGNpQnpaWFJVYVcxbGIzVjBJRDBnWTNSNFUyVjBWR2x0Wlc5MWRDQjhmQ0JtZFc1amRHbHZiaWhtZFc1akxDQjNZV2wwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnY205dmRDNXpaWFJVYVcxbGIzVjBLR1oxYm1Nc0lIZGhhWFFwTzF4dUlDQWdJSDA3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVFpYUnpJSFJvWlNCZ2RHOVRkSEpwYm1kZ0lHMWxkR2h2WkNCdlppQmdablZ1WTJBZ2RHOGdjbVYwZFhKdUlHQnpkSEpwYm1kZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCbWRXNWpJRlJvWlNCbWRXNWpkR2x2YmlCMGJ5QnRiMlJwWm5rdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ2MzUnlhVzVuSUZSb1pTQmdkRzlUZEhKcGJtZGdJSEpsYzNWc2RDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdSblZ1WTNScGIyNTlJRkpsZEhWeWJuTWdZR1oxYm1OZ0xseHVJQ0FnSUNBcUwxeHVJQ0FnSUhaaGNpQnpaWFJVYjFOMGNtbHVaeUE5SUhOb2IzSjBUM1YwS0dKaGMyVlRaWFJVYjFOMGNtbHVaeWs3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVFpYUnpJSFJvWlNCZ2RHOVRkSEpwYm1kZ0lHMWxkR2h2WkNCdlppQmdkM0poY0hCbGNtQWdkRzhnYldsdGFXTWdkR2hsSUhOdmRYSmpaU0J2WmlCZ2NtVm1aWEpsYm1ObFlGeHVJQ0FnSUNBcUlIZHBkR2dnZDNKaGNIQmxjaUJrWlhSaGFXeHpJR2x1SUdFZ1kyOXRiV1Z1ZENCaGRDQjBhR1VnZEc5d0lHOW1JSFJvWlNCemIzVnlZMlVnWW05a2VTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ2QzSmhjSEJsY2lCVWFHVWdablZ1WTNScGIyNGdkRzhnYlc5a2FXWjVMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJSEpsWm1WeVpXNWpaU0JVYUdVZ2NtVm1aWEpsYm1ObElHWjFibU4wYVc5dUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCaWFYUnRZWE5ySUZSb1pTQmlhWFJ0WVhOcklHWnNZV2R6TGlCVFpXVWdZR055WldGMFpWZHlZWEJnSUdadmNpQnRiM0psSUdSbGRHRnBiSE11WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBaMWJtTjBhVzl1ZlNCU1pYUjFjbTV6SUdCM2NtRndjR1Z5WUM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJ6WlhSWGNtRndWRzlUZEhKcGJtY29kM0poY0hCbGNpd2djbVZtWlhKbGJtTmxMQ0JpYVhSdFlYTnJLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2MyOTFjbU5sSUQwZ0tISmxabVZ5Wlc1alpTQXJJQ2NuS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ6WlhSVWIxTjBjbWx1WnloM2NtRndjR1Z5TENCcGJuTmxjblJYY21Gd1JHVjBZV2xzY3loemIzVnlZMlVzSUhWd1pHRjBaVmR5WVhCRVpYUmhhV3h6S0dkbGRGZHlZWEJFWlhSaGFXeHpLSE52ZFhKalpTa3NJR0pwZEcxaGMyc3BLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTNKbFlYUmxjeUJoSUdaMWJtTjBhVzl1SUhSb1lYUW5iR3dnYzJodmNuUWdiM1YwSUdGdVpDQnBiblp2YTJVZ1lHbGtaVzUwYVhSNVlDQnBibk4wWldGa1hHNGdJQ0FnSUNvZ2IyWWdZR1oxYm1OZ0lIZG9aVzRnYVhRbmN5QmpZV3hzWldRZ1lFaFBWRjlEVDFWT1ZHQWdiM0lnYlc5eVpTQjBhVzFsY3lCcGJpQmdTRTlVWDFOUVFVNWdYRzRnSUNBZ0lDb2diV2xzYkdselpXTnZibVJ6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JtZFc1aklGUm9aU0JtZFc1amRHbHZiaUIwYnlCeVpYTjBjbWxqZEM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1JuVnVZM1JwYjI1OUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCemFHOXlkR0ZpYkdVZ1puVnVZM1JwYjI0dVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYzJodmNuUlBkWFFvWm5WdVl5a2dlMXh1SUNBZ0lDQWdkbUZ5SUdOdmRXNTBJRDBnTUN4Y2JpQWdJQ0FnSUNBZ0lDQnNZWE4wUTJGc2JHVmtJRDBnTUR0Y2JseHVJQ0FnSUNBZ2NtVjBkWEp1SUdaMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnYzNSaGJYQWdQU0J1WVhScGRtVk9iM2NvS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsYldGcGJtbHVaeUE5SUVoUFZGOVRVRUZPSUMwZ0tITjBZVzF3SUMwZ2JHRnpkRU5oYkd4bFpDazdYRzVjYmlBZ0lDQWdJQ0FnYkdGemRFTmhiR3hsWkNBOUlITjBZVzF3TzF4dUlDQWdJQ0FnSUNCcFppQW9jbVZ0WVdsdWFXNW5JRDRnTUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2xtSUNncksyTnZkVzUwSUQ0OUlFaFBWRjlEVDFWT1ZDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGeVozVnRaVzUwYzFzd1hUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOTFiblFnUFNBd08xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQm1kVzVqTG1Gd2NHeDVLSFZ1WkdWbWFXNWxaQ3dnWVhKbmRXMWxiblJ6S1R0Y2JpQWdJQ0FnSUgwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FTQnpjR1ZqYVdGc2FYcGxaQ0IyWlhKemFXOXVJRzltSUdCZkxuTm9kV1ptYkdWZ0lIZG9hV05vSUcxMWRHRjBaWE1nWVc1a0lITmxkSE1nZEdobElITnBlbVVnYjJZZ1lHRnljbUY1WUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdZWEp5WVhrZ1ZHaGxJR0Z5Y21GNUlIUnZJSE5vZFdabWJHVXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdHphWHBsUFdGeWNtRjVMbXhsYm1kMGFGMGdWR2hsSUhOcGVtVWdiMllnWUdGeWNtRjVZQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdZR0Z5Y21GNVlDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCemFIVm1abXhsVTJWc1ppaGhjbkpoZVN3Z2MybDZaU2tnZTF4dUlDQWdJQ0FnZG1GeUlHbHVaR1Y0SUQwZ0xURXNYRzRnSUNBZ0lDQWdJQ0FnYkdWdVozUm9JRDBnWVhKeVlYa3ViR1Z1WjNSb0xGeHVJQ0FnSUNBZ0lDQWdJR3hoYzNSSmJtUmxlQ0E5SUd4bGJtZDBhQ0F0SURFN1hHNWNiaUFnSUNBZ0lITnBlbVVnUFNCemFYcGxJRDA5UFNCMWJtUmxabWx1WldRZ1B5QnNaVzVuZEdnZ09pQnphWHBsTzF4dUlDQWdJQ0FnZDJocGJHVWdLQ3NyYVc1a1pYZ2dQQ0J6YVhwbEtTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCeVlXNWtJRDBnWW1GelpWSmhibVJ2YlNocGJtUmxlQ3dnYkdGemRFbHVaR1Y0S1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbElEMGdZWEp5WVhsYmNtRnVaRjA3WEc1Y2JpQWdJQ0FnSUNBZ1lYSnlZWGxiY21GdVpGMGdQU0JoY25KaGVWdHBibVJsZUYwN1hHNGdJQ0FnSUNBZ0lHRnljbUY1VzJsdVpHVjRYU0E5SUhaaGJIVmxPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdZWEp5WVhrdWJHVnVaM1JvSUQwZ2MybDZaVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmhjbkpoZVR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGIyNTJaWEowY3lCZ2MzUnlhVzVuWUNCMGJ5QmhJSEJ5YjNCbGNuUjVJSEJoZEdnZ1lYSnlZWGt1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnpkSEpwYm1jZ1ZHaGxJSE4wY21sdVp5QjBieUJqYjI1MlpYSjBMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QjBhR1VnY0hKdmNHVnlkSGtnY0dGMGFDQmhjbkpoZVM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0IyWVhJZ2MzUnlhVzVuVkc5UVlYUm9JRDBnYldWdGIybDZaVU5oY0hCbFpDaG1kVzVqZEdsdmJpaHpkSEpwYm1jcElIdGNiaUFnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0JiWFR0Y2JpQWdJQ0FnSUdsbUlDaHpkSEpwYm1jdVkyaGhja052WkdWQmRDZ3dLU0E5UFQwZ05EWWdMeW9nTGlBcUx5a2dlMXh1SUNBZ0lDQWdJQ0J5WlhOMWJIUXVjSFZ6YUNnbkp5azdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnpkSEpwYm1jdWNtVndiR0ZqWlNoeVpWQnliM0JPWVcxbExDQm1kVzVqZEdsdmJpaHRZWFJqYUN3Z2JuVnRZbVZ5TENCeGRXOTBaU3dnYzNWaVUzUnlhVzVuS1NCN1hHNGdJQ0FnSUNBZ0lISmxjM1ZzZEM1d2RYTm9LSEYxYjNSbElEOGdjM1ZpVTNSeWFXNW5MbkpsY0d4aFkyVW9jbVZGYzJOaGNHVkRhR0Z5TENBbkpERW5LU0E2SUNodWRXMWlaWElnZkh3Z2JXRjBZMmdwS1R0Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOdmJuWmxjblJ6SUdCMllXeDFaV0FnZEc4Z1lTQnpkSEpwYm1jZ2EyVjVJR2xtSUdsMEozTWdibTkwSUdFZ2MzUnlhVzVuSUc5eUlITjViV0p2YkM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z2FXNXpjR1ZqZEM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN2MzUnlhVzVuZkhONWJXSnZiSDBnVW1WMGRYSnVjeUIwYUdVZ2EyVjVMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlIUnZTMlY1S0haaGJIVmxLU0I3WEc0Z0lDQWdJQ0JwWmlBb2RIbHdaVzltSUhaaGJIVmxJRDA5SUNkemRISnBibWNuSUh4OElHbHpVM2x0WW05c0tIWmhiSFZsS1NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RtRnNkV1U3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ0tIWmhiSFZsSUNzZ0p5Y3BPMXh1SUNBZ0lDQWdjbVYwZFhKdUlDaHlaWE4xYkhRZ1BUMGdKekFuSUNZbUlDZ3hJQzhnZG1Gc2RXVXBJRDA5SUMxSlRrWkpUa2xVV1NrZ1B5QW5MVEFuSURvZ2NtVnpkV3gwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOdmJuWmxjblJ6SUdCbWRXNWpZQ0IwYnlCcGRITWdjMjkxY21ObElHTnZaR1V1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR1oxYm1NZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUdOdmJuWmxjblF1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTNOMGNtbHVaMzBnVW1WMGRYSnVjeUIwYUdVZ2MyOTFjbU5sSUdOdlpHVXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2RHOVRiM1Z5WTJVb1puVnVZeWtnZTF4dUlDQWdJQ0FnYVdZZ0tHWjFibU1nSVQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJtZFc1alZHOVRkSEpwYm1jdVkyRnNiQ2htZFc1aktUdGNiaUFnSUNBZ0lDQWdmU0JqWVhSamFDQW9aU2tnZTMxY2JpQWdJQ0FnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnS0daMWJtTWdLeUFuSnlrN1hHNGdJQ0FnSUNBZ0lIMGdZMkYwWTJnZ0tHVXBJSHQ5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdKeWM3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVlhCa1lYUmxjeUIzY21Gd2NHVnlJR0JrWlhSaGFXeHpZQ0JpWVhObFpDQnZiaUJnWW1sMGJXRnphMkFnWm14aFozTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdEJjbkpoZVgwZ1pHVjBZV2xzY3lCVWFHVWdaR1YwWVdsc2N5QjBieUJ0YjJScFpua3VYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHSnBkRzFoYzJzZ1ZHaGxJR0pwZEcxaGMyc2dabXhoWjNNdUlGTmxaU0JnWTNKbFlYUmxWM0poY0dBZ1ptOXlJRzF2Y21VZ1pHVjBZV2xzY3k1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1FYSnlZWGw5SUZKbGRIVnlibk1nWUdSbGRHRnBiSE5nTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJSFZ3WkdGMFpWZHlZWEJFWlhSaGFXeHpLR1JsZEdGcGJITXNJR0pwZEcxaGMyc3BJSHRjYmlBZ0lDQWdJR0Z5Y21GNVJXRmphQ2gzY21Gd1JteGhaM01zSUdaMWJtTjBhVzl1S0hCaGFYSXBJSHRjYmlBZ0lDQWdJQ0FnZG1GeUlIWmhiSFZsSUQwZ0oxOHVKeUFySUhCaGFYSmJNRjA3WEc0Z0lDQWdJQ0FnSUdsbUlDZ29ZbWwwYldGemF5QW1JSEJoYVhKYk1WMHBJQ1ltSUNGaGNuSmhlVWx1WTJ4MVpHVnpLR1JsZEdGcGJITXNJSFpoYkhWbEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdSbGRHRnBiSE11Y0hWemFDaDJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlHUmxkR0ZwYkhNdWMyOXlkQ2dwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOeVpXRjBaWE1nWVNCamJHOXVaU0J2WmlCZ2QzSmhjSEJsY21BdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0IzY21Gd2NHVnlJRlJvWlNCM2NtRndjR1Z5SUhSdklHTnNiMjVsTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0UFltcGxZM1I5SUZKbGRIVnlibk1nZEdobElHTnNiMjVsWkNCM2NtRndjR1Z5TGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJSGR5WVhCd1pYSkRiRzl1WlNoM2NtRndjR1Z5S1NCN1hHNGdJQ0FnSUNCcFppQW9kM0poY0hCbGNpQnBibk4wWVc1alpXOW1JRXhoZW5sWGNtRndjR1Z5S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCM2NtRndjR1Z5TG1Oc2IyNWxLQ2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ2JtVjNJRXh2WkdGemFGZHlZWEJ3WlhJb2QzSmhjSEJsY2k1ZlgzZHlZWEJ3WldSZlh5d2dkM0poY0hCbGNpNWZYMk5vWVdsdVgxOHBPMXh1SUNBZ0lDQWdjbVZ6ZFd4MExsOWZZV04wYVc5dWMxOWZJRDBnWTI5d2VVRnljbUY1S0hkeVlYQndaWEl1WDE5aFkzUnBiMjV6WDE4cE8xeHVJQ0FnSUNBZ2NtVnpkV3gwTGw5ZmFXNWtaWGhmWHlBZ1BTQjNjbUZ3Y0dWeUxsOWZhVzVrWlhoZlh6dGNiaUFnSUNBZ0lISmxjM1ZzZEM1ZlgzWmhiSFZsYzE5ZklEMGdkM0poY0hCbGNpNWZYM1poYkhWbGMxOWZPMXh1SUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2kwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFNvdlhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRnVJR0Z5Y21GNUlHOW1JR1ZzWlcxbGJuUnpJSE53YkdsMElHbHVkRzhnWjNKdmRYQnpJSFJvWlNCc1pXNW5kR2dnYjJZZ1lITnBlbVZnTGx4dUlDQWdJQ0FxSUVsbUlHQmhjbkpoZVdBZ1kyRnVKM1FnWW1VZ2MzQnNhWFFnWlhabGJteDVMQ0IwYUdVZ1ptbHVZV3dnWTJoMWJtc2dkMmxzYkNCaVpTQjBhR1VnY21WdFlXbHVhVzVuWEc0Z0lDQWdJQ29nWld4bGJXVnVkSE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdNeTR3TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1FYSnlZWGxjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZTQmhjbkpoZVNCVWFHVWdZWEp5WVhrZ2RHOGdjSEp2WTJWemN5NWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1czTnBlbVU5TVYwZ1ZHaGxJR3hsYm1kMGFDQnZaaUJsWVdOb0lHTm9kVzVyWEc0Z0lDQWdJQ29nUUhCaGNtRnRMU0I3VDJKcVpXTjBmU0JiWjNWaGNtUmRJRVZ1WVdKc1pYTWdkWE5sSUdGeklHRnVJR2wwWlhKaGRHVmxJR1p2Y2lCdFpYUm9iMlJ6SUd4cGEyVWdZRjh1YldGd1lDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCaGNuSmhlU0J2WmlCamFIVnVhM011WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1WTJoMWJtc29XeWRoSnl3Z0oySW5MQ0FuWXljc0lDZGtKMTBzSURJcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZ0YkoyRW5MQ0FuWWlkZExDQmJKMk1uTENBblpDZGRYVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVqYUhWdWF5aGJKMkVuTENBbllpY3NJQ2RqSnl3Z0oyUW5YU3dnTXlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnVzFzbllTY3NJQ2RpSnl3Z0oyTW5YU3dnV3lka0oxMWRYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1kyaDFibXNvWVhKeVlYa3NJSE5wZW1Vc0lHZDFZWEprS1NCN1hHNGdJQ0FnSUNCcFppQW9LR2QxWVhKa0lEOGdhWE5KZEdWeVlYUmxaVU5oYkd3b1lYSnlZWGtzSUhOcGVtVXNJR2QxWVhKa0tTQTZJSE5wZW1VZ1BUMDlJSFZ1WkdWbWFXNWxaQ2twSUh0Y2JpQWdJQ0FnSUNBZ2MybDZaU0E5SURFN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCemFYcGxJRDBnYm1GMGFYWmxUV0Y0S0hSdlNXNTBaV2RsY2loemFYcGxLU3dnTUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCMllYSWdiR1Z1WjNSb0lEMGdZWEp5WVhrZ1BUMGdiblZzYkNBL0lEQWdPaUJoY25KaGVTNXNaVzVuZEdnN1hHNGdJQ0FnSUNCcFppQW9JV3hsYm1kMGFDQjhmQ0J6YVhwbElEd2dNU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVzEwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCMllYSWdhVzVrWlhnZ1BTQXdMRnh1SUNBZ0lDQWdJQ0FnSUhKbGMwbHVaR1Y0SUQwZ01DeGNiaUFnSUNBZ0lDQWdJQ0J5WlhOMWJIUWdQU0JCY25KaGVTaHVZWFJwZG1WRFpXbHNLR3hsYm1kMGFDQXZJSE5wZW1VcEtUdGNibHh1SUNBZ0lDQWdkMmhwYkdVZ0tHbHVaR1Y0SUR3Z2JHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lISmxjM1ZzZEZ0eVpYTkpibVJsZUNzclhTQTlJR0poYzJWVGJHbGpaU2hoY25KaGVTd2dhVzVrWlhnc0lDaHBibVJsZUNBclBTQnphWHBsS1NrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU55WldGMFpYTWdZVzRnWVhKeVlYa2dkMmwwYUNCaGJHd2dabUZzYzJWNUlIWmhiSFZsY3lCeVpXMXZkbVZrTGlCVWFHVWdkbUZzZFdWeklHQm1ZV3h6WldBc0lHQnVkV3hzWUN4Y2JpQWdJQ0FnS2lCZ01HQXNJR0JjSWx3aVlDd2dZSFZ1WkdWbWFXNWxaR0FzSUdGdVpDQmdUbUZPWUNCaGNtVWdabUZzYzJWNUxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURBdU1TNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRUZ5Y21GNVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnWVhKeVlYa2dWR2hsSUdGeWNtRjVJSFJ2SUdOdmJYQmhZM1F1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2dZWEp5WVhrZ2IyWWdabWxzZEdWeVpXUWdkbUZzZFdWekxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtTnZiWEJoWTNRb1d6QXNJREVzSUdaaGJITmxMQ0F5TENBbkp5d2dNMTBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnN4TENBeUxDQXpYVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHTnZiWEJoWTNRb1lYSnlZWGtwSUh0Y2JpQWdJQ0FnSUhaaGNpQnBibVJsZUNBOUlDMHhMRnh1SUNBZ0lDQWdJQ0FnSUd4bGJtZDBhQ0E5SUdGeWNtRjVJRDA5SUc1MWJHd2dQeUF3SURvZ1lYSnlZWGt1YkdWdVozUm9MRnh1SUNBZ0lDQWdJQ0FnSUhKbGMwbHVaR1Y0SUQwZ01DeGNiaUFnSUNBZ0lDQWdJQ0J5WlhOMWJIUWdQU0JiWFR0Y2JseHVJQ0FnSUNBZ2QyaHBiR1VnS0NzcmFXNWtaWGdnUENCc1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJSFpoYkhWbElEMGdZWEp5WVhsYmFXNWtaWGhkTzF4dUlDQWdJQ0FnSUNCcFppQW9kbUZzZFdVcElIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhOMWJIUmJjbVZ6U1c1a1pYZ3JLMTBnUFNCMllXeDFaVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRWdibVYzSUdGeWNtRjVJR052Ym1OaGRHVnVZWFJwYm1jZ1lHRnljbUY1WUNCM2FYUm9JR0Z1ZVNCaFpHUnBkR2x2Ym1Gc0lHRnljbUY1YzF4dUlDQWdJQ0FxSUdGdVpDOXZjaUIyWVd4MVpYTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ05DNHdMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnUVhKeVlYbGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCaGNuSmhlU0JVYUdVZ1lYSnlZWGtnZEc4Z1kyOXVZMkYwWlc1aGRHVXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3VMaTRxZlNCYmRtRnNkV1Z6WFNCVWFHVWdkbUZzZFdWeklIUnZJR052Ym1OaGRHVnVZWFJsTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0QmNuSmhlWDBnVW1WMGRYSnVjeUIwYUdVZ2JtVjNJR052Ym1OaGRHVnVZWFJsWkNCaGNuSmhlUzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkbUZ5SUdGeWNtRjVJRDBnV3pGZE8xeHVJQ0FnSUNBcUlIWmhjaUJ2ZEdobGNpQTlJRjh1WTI5dVkyRjBLR0Z5Y21GNUxDQXlMQ0JiTTEwc0lGdGJORjFkS1R0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUdOdmJuTnZiR1V1Ykc5bktHOTBhR1Z5S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiTVN3Z01pd2dNeXdnV3pSZFhWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1kyOXVjMjlzWlM1c2IyY29ZWEp5WVhrcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzeFhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdOdmJtTmhkQ2dwSUh0Y2JpQWdJQ0FnSUhaaGNpQnNaVzVuZEdnZ1BTQmhjbWQxYldWdWRITXViR1Z1WjNSb08xeHVJQ0FnSUNBZ2FXWWdLQ0ZzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRnRkTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnZG1GeUlHRnlaM01nUFNCQmNuSmhlU2hzWlc1bmRHZ2dMU0F4S1N4Y2JpQWdJQ0FnSUNBZ0lDQmhjbkpoZVNBOUlHRnlaM1Z0Wlc1MGMxc3dYU3hjYmlBZ0lDQWdJQ0FnSUNCcGJtUmxlQ0E5SUd4bGJtZDBhRHRjYmx4dUlDQWdJQ0FnZDJocGJHVWdLR2x1WkdWNExTMHBJSHRjYmlBZ0lDQWdJQ0FnWVhKbmMxdHBibVJsZUNBdElERmRJRDBnWVhKbmRXMWxiblJ6VzJsdVpHVjRYVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQmhjbkpoZVZCMWMyZ29hWE5CY25KaGVTaGhjbkpoZVNrZ1B5QmpiM0I1UVhKeVlYa29ZWEp5WVhrcElEb2dXMkZ5Y21GNVhTd2dZbUZ6WlVac1lYUjBaVzRvWVhKbmN5d2dNU2twTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOeVpXRjBaWE1nWVc0Z1lYSnlZWGtnYjJZZ1lHRnljbUY1WUNCMllXeDFaWE1nYm05MElHbHVZMngxWkdWa0lHbHVJSFJvWlNCdmRHaGxjaUJuYVhabGJpQmhjbkpoZVhOY2JpQWdJQ0FnS2lCMWMybHVaeUJiWUZOaGJXVldZV3gxWlZwbGNtOWdYU2hvZEhSd09pOHZaV050WVMxcGJuUmxjbTVoZEdsdmJtRnNMbTl5Wnk5bFkyMWhMVEkyTWk4M0xqQXZJM05sWXkxellXMWxkbUZzZFdWNlpYSnZLVnh1SUNBZ0lDQXFJR1p2Y2lCbGNYVmhiR2wwZVNCamIyMXdZWEpwYzI5dWN5NGdWR2hsSUc5eVpHVnlJR0Z1WkNCeVpXWmxjbVZ1WTJWeklHOW1JSEpsYzNWc2RDQjJZV3gxWlhNZ1lYSmxYRzRnSUNBZ0lDb2daR1YwWlhKdGFXNWxaQ0JpZVNCMGFHVWdabWx5YzNRZ1lYSnlZWGt1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUFxS2s1dmRHVTZLaW9nVlc1c2FXdGxJR0JmTG5CMWJHeEJiR3hnTENCMGFHbHpJRzFsZEdodlpDQnlaWFIxY201eklHRWdibVYzSUdGeWNtRjVMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEQXVNUzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUVGeWNtRjVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1lYSnlZWGtnVkdobElHRnljbUY1SUhSdklHbHVjM0JsWTNRdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzdUxpNUJjbkpoZVgwZ1czWmhiSFZsYzEwZ1ZHaGxJSFpoYkhWbGN5QjBieUJsZUdOc2RXUmxMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHRnljbUY1SUc5bUlHWnBiSFJsY21Wa0lIWmhiSFZsY3k1Y2JpQWdJQ0FnS2lCQWMyVmxJRjh1ZDJsMGFHOTFkQ3dnWHk1NGIzSmNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NWthV1ptWlhKbGJtTmxLRnN5TENBeFhTd2dXeklzSUROZEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYk1WMWNiaUFnSUNBZ0tpOWNiaUFnSUNCMllYSWdaR2xtWm1WeVpXNWpaU0E5SUdKaGMyVlNaWE4wS0daMWJtTjBhVzl1S0dGeWNtRjVMQ0IyWVd4MVpYTXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnBjMEZ5Y21GNVRHbHJaVTlpYW1WamRDaGhjbkpoZVNsY2JpQWdJQ0FnSUNBZ1B5QmlZWE5sUkdsbVptVnlaVzVqWlNoaGNuSmhlU3dnWW1GelpVWnNZWFIwWlc0b2RtRnNkV1Z6TENBeExDQnBjMEZ5Y21GNVRHbHJaVTlpYW1WamRDd2dkSEoxWlNrcFhHNGdJQ0FnSUNBZ0lEb2dXMTA3WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVWFHbHpJRzFsZEdodlpDQnBjeUJzYVd0bElHQmZMbVJwWm1abGNtVnVZMlZnSUdWNFkyVndkQ0IwYUdGMElHbDBJR0ZqWTJWd2RITWdZR2wwWlhKaGRHVmxZQ0IzYUdsamFGeHVJQ0FnSUNBcUlHbHpJR2x1ZG05clpXUWdabTl5SUdWaFkyZ2daV3hsYldWdWRDQnZaaUJnWVhKeVlYbGdJR0Z1WkNCZ2RtRnNkV1Z6WUNCMGJ5Qm5aVzVsY21GMFpTQjBhR1VnWTNKcGRHVnlhVzl1WEc0Z0lDQWdJQ29nWW5rZ2QyaHBZMmdnZEdobGVTZHlaU0JqYjIxd1lYSmxaQzRnVkdobElHOXlaR1Z5SUdGdVpDQnlaV1psY21WdVkyVnpJRzltSUhKbGMzVnNkQ0IyWVd4MVpYTWdZWEpsWEc0Z0lDQWdJQ29nWkdWMFpYSnRhVzVsWkNCaWVTQjBhR1VnWm1seWMzUWdZWEp5WVhrdUlGUm9aU0JwZEdWeVlYUmxaU0JwY3lCcGJuWnZhMlZrSUhkcGRHZ2diMjVsSUdGeVozVnRaVzUwT2x4dUlDQWdJQ0FxSUNoMllXeDFaU2t1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUFxS2s1dmRHVTZLaW9nVlc1c2FXdGxJR0JmTG5CMWJHeEJiR3hDZVdBc0lIUm9hWE1nYldWMGFHOWtJSEpsZEhWeWJuTWdZU0J1WlhjZ1lYSnlZWGt1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR3TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1FYSnlZWGxjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZTQmhjbkpoZVNCVWFHVWdZWEp5WVhrZ2RHOGdhVzV6Y0dWamRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5NHVMa0Z5Y21GNWZTQmJkbUZzZFdWelhTQlVhR1VnZG1Gc2RXVnpJSFJ2SUdWNFkyeDFaR1V1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnVzJsMFpYSmhkR1ZsUFY4dWFXUmxiblJwZEhsZElGUm9aU0JwZEdWeVlYUmxaU0JwYm5admEyVmtJSEJsY2lCbGJHVnRaVzUwTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0QmNuSmhlWDBnVW1WMGRYSnVjeUIwYUdVZ2JtVjNJR0Z5Y21GNUlHOW1JR1pwYkhSbGNtVmtJSFpoYkhWbGN5NWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NWthV1ptWlhKbGJtTmxRbmtvV3pJdU1Td2dNUzR5WFN3Z1d6SXVNeXdnTXk0MFhTd2dUV0YwYUM1bWJHOXZjaWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXekV1TWwxY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUM4dklGUm9aU0JnWHk1d2NtOXdaWEowZVdBZ2FYUmxjbUYwWldVZ2MyaHZjblJvWVc1a0xseHVJQ0FnSUNBcUlGOHVaR2xtWm1WeVpXNWpaVUo1S0Z0N0lDZDRKem9nTWlCOUxDQjdJQ2Q0SnpvZ01TQjlYU3dnVzNzZ0ozZ25PaUF4SUgxZExDQW5lQ2NwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnQ3SUNkNEp6b2dNaUI5WFZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFpoY2lCa2FXWm1aWEpsYm1ObFFua2dQU0JpWVhObFVtVnpkQ2htZFc1amRHbHZiaWhoY25KaGVTd2dkbUZzZFdWektTQjdYRzRnSUNBZ0lDQjJZWElnYVhSbGNtRjBaV1VnUFNCc1lYTjBLSFpoYkhWbGN5azdYRzRnSUNBZ0lDQnBaaUFvYVhOQmNuSmhlVXhwYTJWUFltcGxZM1FvYVhSbGNtRjBaV1VwS1NCN1hHNGdJQ0FnSUNBZ0lHbDBaWEpoZEdWbElEMGdkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlHbHpRWEp5WVhsTWFXdGxUMkpxWldOMEtHRnljbUY1S1Z4dUlDQWdJQ0FnSUNBL0lHSmhjMlZFYVdabVpYSmxibU5sS0dGeWNtRjVMQ0JpWVhObFJteGhkSFJsYmloMllXeDFaWE1zSURFc0lHbHpRWEp5WVhsTWFXdGxUMkpxWldOMExDQjBjblZsS1N3Z1oyVjBTWFJsY21GMFpXVW9hWFJsY21GMFpXVXNJRElwS1Z4dUlDQWdJQ0FnSUNBNklGdGRPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdocGN5QnRaWFJvYjJRZ2FYTWdiR2xyWlNCZ1h5NWthV1ptWlhKbGJtTmxZQ0JsZUdObGNIUWdkR2hoZENCcGRDQmhZMk5sY0hSeklHQmpiMjF3WVhKaGRHOXlZRnh1SUNBZ0lDQXFJSGRvYVdOb0lHbHpJR2x1ZG05clpXUWdkRzhnWTI5dGNHRnlaU0JsYkdWdFpXNTBjeUJ2WmlCZ1lYSnlZWGxnSUhSdklHQjJZV3gxWlhOZ0xpQlVhR1VnYjNKa1pYSWdZVzVrWEc0Z0lDQWdJQ29nY21WbVpYSmxibU5sY3lCdlppQnlaWE4xYkhRZ2RtRnNkV1Z6SUdGeVpTQmtaWFJsY20xcGJtVmtJR0o1SUhSb1pTQm1hWEp6ZENCaGNuSmhlUzRnVkdobElHTnZiWEJoY21GMGIzSmNiaUFnSUNBZ0tpQnBjeUJwYm5admEyVmtJSGRwZEdnZ2RIZHZJR0Z5WjNWdFpXNTBjem9nS0dGeWNsWmhiQ3dnYjNSb1ZtRnNLUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQ29xVG05MFpUb3FLaUJWYm14cGEyVWdZRjh1Y0hWc2JFRnNiRmRwZEdoZ0xDQjBhR2x6SUcxbGRHaHZaQ0J5WlhSMWNtNXpJR0VnYm1WM0lHRnljbUY1TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRFF1TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFRnljbUY1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdZWEp5WVhrZ1ZHaGxJR0Z5Y21GNUlIUnZJR2x1YzNCbFkzUXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3VMaTVCY25KaGVYMGdXM1poYkhWbGMxMGdWR2hsSUhaaGJIVmxjeUIwYnlCbGVHTnNkV1JsTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUZ0amIyMXdZWEpoZEc5eVhTQlVhR1VnWTI5dGNHRnlZWFJ2Y2lCcGJuWnZhMlZrSUhCbGNpQmxiR1Z0Wlc1MExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdEJjbkpoZVgwZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUdGeWNtRjVJRzltSUdacGJIUmxjbVZrSUhaaGJIVmxjeTVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkbUZ5SUc5aWFtVmpkSE1nUFNCYmV5QW5lQ2M2SURFc0lDZDVKem9nTWlCOUxDQjdJQ2Q0SnpvZ01pd2dKM2tuT2lBeElIMWRPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVrYVdabVpYSmxibU5sVjJsMGFDaHZZbXBsWTNSekxDQmJleUFuZUNjNklERXNJQ2Q1SnpvZ01pQjlYU3dnWHk1cGMwVnhkV0ZzS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiZXlBbmVDYzZJRElzSUNkNUp6b2dNU0I5WFZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFpoY2lCa2FXWm1aWEpsYm1ObFYybDBhQ0E5SUdKaGMyVlNaWE4wS0daMWJtTjBhVzl1S0dGeWNtRjVMQ0IyWVd4MVpYTXBJSHRjYmlBZ0lDQWdJSFpoY2lCamIyMXdZWEpoZEc5eUlEMGdiR0Z6ZENoMllXeDFaWE1wTzF4dUlDQWdJQ0FnYVdZZ0tHbHpRWEp5WVhsTWFXdGxUMkpxWldOMEtHTnZiWEJoY21GMGIzSXBLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJYQmhjbUYwYjNJZ1BTQjFibVJsWm1sdVpXUTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z2FYTkJjbkpoZVV4cGEyVlBZbXBsWTNRb1lYSnlZWGtwWEc0Z0lDQWdJQ0FnSUQ4Z1ltRnpaVVJwWm1abGNtVnVZMlVvWVhKeVlYa3NJR0poYzJWR2JHRjBkR1Z1S0haaGJIVmxjeXdnTVN3Z2FYTkJjbkpoZVV4cGEyVlBZbXBsWTNRc0lIUnlkV1VwTENCMWJtUmxabWx1WldRc0lHTnZiWEJoY21GMGIzSXBYRzRnSUNBZ0lDQWdJRG9nVzEwN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRWdjMnhwWTJVZ2IyWWdZR0Z5Y21GNVlDQjNhWFJvSUdCdVlDQmxiR1Z0Wlc1MGN5QmtjbTl3Y0dWa0lHWnliMjBnZEdobElHSmxaMmx1Ym1sdVp5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBd0xqVXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JCY25KaGVWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUdGeWNtRjVJRlJvWlNCaGNuSmhlU0IwYnlCeGRXVnllUzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXMjQ5TVYwZ1ZHaGxJRzUxYldKbGNpQnZaaUJsYkdWdFpXNTBjeUIwYnlCa2NtOXdMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTMGdlMDlpYW1WamRIMGdXMmQxWVhKa1hTQkZibUZpYkdWeklIVnpaU0JoY3lCaGJpQnBkR1Z5WVhSbFpTQm1iM0lnYldWMGFHOWtjeUJzYVd0bElHQmZMbTFoY0dBdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQnpiR2xqWlNCdlppQmdZWEp5WVhsZ0xseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtUnliM0FvV3pFc0lESXNJRE5kS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiTWl3Z00xMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVaSEp2Y0NoYk1Td2dNaXdnTTEwc0lESXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc3pYVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVrY205d0tGc3hMQ0F5TENBelhTd2dOU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXMTFjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1WkhKdmNDaGJNU3dnTWl3Z00xMHNJREFwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnN4TENBeUxDQXpYVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHUnliM0FvWVhKeVlYa3NJRzRzSUdkMVlYSmtLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2JHVnVaM1JvSUQwZ1lYSnlZWGtnUFQwZ2JuVnNiQ0EvSURBZ09pQmhjbkpoZVM1c1pXNW5kR2c3WEc0Z0lDQWdJQ0JwWmlBb0lXeGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1cxMDdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnVJRDBnS0dkMVlYSmtJSHg4SUc0Z1BUMDlJSFZ1WkdWbWFXNWxaQ2tnUHlBeElEb2dkRzlKYm5SbFoyVnlLRzRwTzF4dUlDQWdJQ0FnY21WMGRYSnVJR0poYzJWVGJHbGpaU2hoY25KaGVTd2diaUE4SURBZ1B5QXdJRG9nYml3Z2JHVnVaM1JvS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdFZ2MyeHBZMlVnYjJZZ1lHRnljbUY1WUNCM2FYUm9JR0J1WUNCbGJHVnRaVzUwY3lCa2NtOXdjR1ZrSUdaeWIyMGdkR2hsSUdWdVpDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBekxqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JCY25KaGVWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUdGeWNtRjVJRlJvWlNCaGNuSmhlU0IwYnlCeGRXVnllUzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXMjQ5TVYwZ1ZHaGxJRzUxYldKbGNpQnZaaUJsYkdWdFpXNTBjeUIwYnlCa2NtOXdMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTMGdlMDlpYW1WamRIMGdXMmQxWVhKa1hTQkZibUZpYkdWeklIVnpaU0JoY3lCaGJpQnBkR1Z5WVhSbFpTQm1iM0lnYldWMGFHOWtjeUJzYVd0bElHQmZMbTFoY0dBdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQnpiR2xqWlNCdlppQmdZWEp5WVhsZ0xseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtUnliM0JTYVdkb2RDaGJNU3dnTWl3Z00xMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc3hMQ0F5WFZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1a2NtOXdVbWxuYUhRb1d6RXNJRElzSUROZExDQXlLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJNVjFjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1WkhKdmNGSnBaMmgwS0ZzeExDQXlMQ0F6WFN3Z05TazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1cxMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVaSEp2Y0ZKcFoyaDBLRnN4TENBeUxDQXpYU3dnTUNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnV3pFc0lESXNJRE5kWEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdaSEp2Y0ZKcFoyaDBLR0Z5Y21GNUxDQnVMQ0JuZFdGeVpDa2dlMXh1SUNBZ0lDQWdkbUZ5SUd4bGJtZDBhQ0E5SUdGeWNtRjVJRDA5SUc1MWJHd2dQeUF3SURvZ1lYSnlZWGt1YkdWdVozUm9PMXh1SUNBZ0lDQWdhV1lnS0NGc1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ0ZE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2JpQTlJQ2huZFdGeVpDQjhmQ0J1SUQwOVBTQjFibVJsWm1sdVpXUXBJRDhnTVNBNklIUnZTVzUwWldkbGNpaHVLVHRjYmlBZ0lDQWdJRzRnUFNCc1pXNW5kR2dnTFNCdU8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUdKaGMyVlRiR2xqWlNoaGNuSmhlU3dnTUN3Z2JpQThJREFnUHlBd0lEb2diaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTNKbFlYUmxjeUJoSUhOc2FXTmxJRzltSUdCaGNuSmhlV0FnWlhoamJIVmthVzVuSUdWc1pXMWxiblJ6SUdSeWIzQndaV1FnWm5KdmJTQjBhR1VnWlc1a0xseHVJQ0FnSUNBcUlFVnNaVzFsYm5SeklHRnlaU0JrY205d2NHVmtJSFZ1ZEdsc0lHQndjbVZrYVdOaGRHVmdJSEpsZEhWeWJuTWdabUZzYzJWNUxpQlVhR1VnY0hKbFpHbGpZWFJsSUdselhHNGdJQ0FnSUNvZ2FXNTJiMnRsWkNCM2FYUm9JSFJvY21WbElHRnlaM1Z0Wlc1MGN6b2dLSFpoYkhWbExDQnBibVJsZUN3Z1lYSnlZWGtwTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRE11TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFRnljbUY1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdZWEp5WVhrZ1ZHaGxJR0Z5Y21GNUlIUnZJSEYxWlhKNUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlGdHdjbVZrYVdOaGRHVTlYeTVwWkdWdWRHbDBlVjBnVkdobElHWjFibU4wYVc5dUlHbHVkbTlyWldRZ2NHVnlJR2wwWlhKaGRHbHZiaTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUhOc2FXTmxJRzltSUdCaGNuSmhlV0F1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSFpoY2lCMWMyVnljeUE5SUZ0Y2JpQWdJQ0FnS2lBZ0lIc2dKM1Z6WlhJbk9pQW5ZbUZ5Ym1WNUp5d2dJQ2RoWTNScGRtVW5PaUIwY25WbElIMHNYRzRnSUNBZ0lDb2dJQ0I3SUNkMWMyVnlKem9nSjJaeVpXUW5MQ0FnSUNBbllXTjBhWFpsSnpvZ1ptRnNjMlVnZlN4Y2JpQWdJQ0FnS2lBZ0lIc2dKM1Z6WlhJbk9pQW5jR1ZpWW14bGN5Y3NJQ2RoWTNScGRtVW5PaUJtWVd4elpTQjlYRzRnSUNBZ0lDb2dYVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1WkhKdmNGSnBaMmgwVjJocGJHVW9kWE5sY25Nc0lHWjFibU4wYVc5dUtHOHBJSHNnY21WMGRYSnVJQ0Z2TG1GamRHbDJaVHNnZlNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnYjJKcVpXTjBjeUJtYjNJZ1d5ZGlZWEp1WlhrblhWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdWR2hsSUdCZkxtMWhkR05vWlhOZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMbVJ5YjNCU2FXZG9kRmRvYVd4bEtIVnpaWEp6TENCN0lDZDFjMlZ5SnpvZ0ozQmxZbUpzWlhNbkxDQW5ZV04wYVhabEp6b2dabUZzYzJVZ2ZTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2IySnFaV04wY3lCbWIzSWdXeWRpWVhKdVpYa25MQ0FuWm5KbFpDZGRYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXZMeUJVYUdVZ1lGOHViV0YwWTJobGMxQnliM0JsY25SNVlDQnBkR1Z5WVhSbFpTQnphRzl5ZEdoaGJtUXVYRzRnSUNBZ0lDb2dYeTVrY205d1VtbG5hSFJYYUdsc1pTaDFjMlZ5Y3l3Z1d5ZGhZM1JwZG1VbkxDQm1ZV3h6WlYwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUc5aWFtVmpkSE1nWm05eUlGc25ZbUZ5Ym1WNUoxMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDOHZJRlJvWlNCZ1h5NXdjbTl3WlhKMGVXQWdhWFJsY21GMFpXVWdjMmh2Y25Sb1lXNWtMbHh1SUNBZ0lDQXFJRjh1WkhKdmNGSnBaMmgwVjJocGJHVW9kWE5sY25Nc0lDZGhZM1JwZG1VbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCdlltcGxZM1J6SUdadmNpQmJKMkpoY201bGVTY3NJQ2RtY21Wa0p5d2dKM0JsWW1Kc1pYTW5YVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHUnliM0JTYVdkb2RGZG9hV3hsS0dGeWNtRjVMQ0J3Y21Wa2FXTmhkR1VwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUFvWVhKeVlYa2dKaVlnWVhKeVlYa3ViR1Z1WjNSb0tWeHVJQ0FnSUNBZ0lDQS9JR0poYzJWWGFHbHNaU2hoY25KaGVTd2daMlYwU1hSbGNtRjBaV1VvY0hKbFpHbGpZWFJsTENBektTd2dkSEoxWlN3Z2RISjFaU2xjYmlBZ0lDQWdJQ0FnT2lCYlhUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRWdjMnhwWTJVZ2IyWWdZR0Z5Y21GNVlDQmxlR05zZFdScGJtY2daV3hsYldWdWRITWdaSEp2Y0hCbFpDQm1jbTl0SUhSb1pTQmlaV2RwYm01cGJtY3VYRzRnSUNBZ0lDb2dSV3hsYldWdWRITWdZWEpsSUdSeWIzQndaV1FnZFc1MGFXd2dZSEJ5WldScFkyRjBaV0FnY21WMGRYSnVjeUJtWVd4elpYa3VJRlJvWlNCd2NtVmthV05oZEdVZ2FYTmNiaUFnSUNBZ0tpQnBiblp2YTJWa0lIZHBkR2dnZEdoeVpXVWdZWEpuZFcxbGJuUnpPaUFvZG1Gc2RXVXNJR2x1WkdWNExDQmhjbkpoZVNrdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTXk0d0xqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dRWEp5WVhsY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0JoY25KaGVTQlVhR1VnWVhKeVlYa2dkRzhnY1hWbGNua3VYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdXM0J5WldScFkyRjBaVDFmTG1sa1pXNTBhWFI1WFNCVWFHVWdablZ1WTNScGIyNGdhVzUyYjJ0bFpDQndaWElnYVhSbGNtRjBhVzl1TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0QmNuSmhlWDBnVW1WMGRYSnVjeUIwYUdVZ2MyeHBZMlVnYjJZZ1lHRnljbUY1WUM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlIVnpaWEp6SUQwZ1cxeHVJQ0FnSUNBcUlDQWdleUFuZFhObGNpYzZJQ2RpWVhKdVpYa25MQ0FnSjJGamRHbDJaU2M2SUdaaGJITmxJSDBzWEc0Z0lDQWdJQ29nSUNCN0lDZDFjMlZ5SnpvZ0oyWnlaV1FuTENBZ0lDQW5ZV04wYVhabEp6b2dabUZzYzJVZ2ZTeGNiaUFnSUNBZ0tpQWdJSHNnSjNWelpYSW5PaUFuY0dWaVlteGxjeWNzSUNkaFkzUnBkbVVuT2lCMGNuVmxJSDFjYmlBZ0lDQWdLaUJkTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1a2NtOXdWMmhwYkdVb2RYTmxjbk1zSUdaMWJtTjBhVzl1S0c4cElIc2djbVYwZFhKdUlDRnZMbUZqZEdsMlpUc2dmU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdiMkpxWldOMGN5Qm1iM0lnV3lkd1pXSmliR1Z6SjExY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUM4dklGUm9aU0JnWHk1dFlYUmphR1Z6WUNCcGRHVnlZWFJsWlNCemFHOXlkR2hoYm1RdVhHNGdJQ0FnSUNvZ1h5NWtjbTl3VjJocGJHVW9kWE5sY25Nc0lIc2dKM1Z6WlhJbk9pQW5ZbUZ5Ym1WNUp5d2dKMkZqZEdsMlpTYzZJR1poYkhObElIMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHOWlhbVZqZEhNZ1ptOXlJRnNuWm5KbFpDY3NJQ2R3WldKaWJHVnpKMTFjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQzh2SUZSb1pTQmdYeTV0WVhSamFHVnpVSEp2Y0dWeWRIbGdJR2wwWlhKaGRHVmxJSE5vYjNKMGFHRnVaQzVjYmlBZ0lDQWdLaUJmTG1SeWIzQlhhR2xzWlNoMWMyVnljeXdnV3lkaFkzUnBkbVVuTENCbVlXeHpaVjBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRzlpYW1WamRITWdabTl5SUZzbmNHVmlZbXhsY3lkZFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBdkx5QlVhR1VnWUY4dWNISnZjR1Z5ZEhsZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMbVJ5YjNCWGFHbHNaU2gxYzJWeWN5d2dKMkZqZEdsMlpTY3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHOWlhbVZqZEhNZ1ptOXlJRnNuWW1GeWJtVjVKeXdnSjJaeVpXUW5MQ0FuY0dWaVlteGxjeWRkWEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdaSEp2Y0Zkb2FXeGxLR0Z5Y21GNUxDQndjbVZrYVdOaGRHVXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQW9ZWEp5WVhrZ0ppWWdZWEp5WVhrdWJHVnVaM1JvS1Z4dUlDQWdJQ0FnSUNBL0lHSmhjMlZYYUdsc1pTaGhjbkpoZVN3Z1oyVjBTWFJsY21GMFpXVW9jSEpsWkdsallYUmxMQ0F6S1N3Z2RISjFaU2xjYmlBZ0lDQWdJQ0FnT2lCYlhUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkdhV3hzY3lCbGJHVnRaVzUwY3lCdlppQmdZWEp5WVhsZ0lIZHBkR2dnWUhaaGJIVmxZQ0JtY205dElHQnpkR0Z5ZEdBZ2RYQWdkRzhzSUdKMWRDQnViM1JjYmlBZ0lDQWdLaUJwYm1Oc2RXUnBibWNzSUdCbGJtUmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dLaXBPYjNSbE9pb3FJRlJvYVhNZ2JXVjBhRzlrSUcxMWRHRjBaWE1nWUdGeWNtRjVZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXpMakl1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCQmNuSmhlVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlHRnljbUY1SUZSb1pTQmhjbkpoZVNCMGJ5Qm1hV3hzTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ2RtRnNkV1VnVkdobElIWmhiSFZsSUhSdklHWnBiR3dnWUdGeWNtRjVZQ0IzYVhSb0xseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYmMzUmhjblE5TUYwZ1ZHaGxJSE4wWVhKMElIQnZjMmwwYVc5dUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYlpXNWtQV0Z5Y21GNUxteGxibWQwYUYwZ1ZHaGxJR1Z1WkNCd2IzTnBkR2x2Ymk1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1FYSnlZWGw5SUZKbGRIVnlibk1nWUdGeWNtRjVZQzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkbUZ5SUdGeWNtRjVJRDBnV3pFc0lESXNJRE5kTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1bWFXeHNLR0Z5Y21GNUxDQW5ZU2NwTzF4dUlDQWdJQ0FxSUdOdmJuTnZiR1V1Ykc5bktHRnljbUY1S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiSjJFbkxDQW5ZU2NzSUNkaEoxMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVabWxzYkNoQmNuSmhlU2d6S1N3Z01pazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1d6SXNJRElzSURKZFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtWnBiR3dvV3pRc0lEWXNJRGdzSURFd1hTd2dKeW9uTENBeExDQXpLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJOQ3dnSnlvbkxDQW5LaWNzSURFd1hWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdacGJHd29ZWEp5WVhrc0lIWmhiSFZsTENCemRHRnlkQ3dnWlc1a0tTQjdYRzRnSUNBZ0lDQjJZWElnYkdWdVozUm9JRDBnWVhKeVlYa2dQVDBnYm5Wc2JDQS9JREFnT2lCaGNuSmhlUzVzWlc1bmRHZzdYRzRnSUNBZ0lDQnBaaUFvSVd4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVzEwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9jM1JoY25RZ0ppWWdkSGx3Wlc5bUlITjBZWEowSUNFOUlDZHVkVzFpWlhJbklDWW1JR2x6U1hSbGNtRjBaV1ZEWVd4c0tHRnljbUY1TENCMllXeDFaU3dnYzNSaGNuUXBLU0I3WEc0Z0lDQWdJQ0FnSUhOMFlYSjBJRDBnTUR0Y2JpQWdJQ0FnSUNBZ1pXNWtJRDBnYkdWdVozUm9PMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlHSmhjMlZHYVd4c0tHRnljbUY1TENCMllXeDFaU3dnYzNSaGNuUXNJR1Z1WkNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaHBjeUJ0WlhSb2IyUWdhWE1nYkdsclpTQmdYeTVtYVc1a1lDQmxlR05sY0hRZ2RHaGhkQ0JwZENCeVpYUjFjbTV6SUhSb1pTQnBibVJsZUNCdlppQjBhR1VnWm1seWMzUmNiaUFnSUNBZ0tpQmxiR1Z0Wlc1MElHQndjbVZrYVdOaGRHVmdJSEpsZEhWeWJuTWdkSEoxZEdoNUlHWnZjaUJwYm5OMFpXRmtJRzltSUhSb1pTQmxiR1Z0Wlc1MElHbDBjMlZzWmk1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F4TGpFdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQkJjbkpoZVZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDlJR0Z5Y21GNUlGUm9aU0JoY25KaGVTQjBieUJwYm5Od1pXTjBMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJRnR3Y21Wa2FXTmhkR1U5WHk1cFpHVnVkR2wwZVYwZ1ZHaGxJR1oxYm1OMGFXOXVJR2x1ZG05clpXUWdjR1Z5SUdsMFpYSmhkR2x2Ymk1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzJaeWIyMUpibVJsZUQwd1hTQlVhR1VnYVc1a1pYZ2dkRzhnYzJWaGNtTm9JR1p5YjIwdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UyNTFiV0psY24wZ1VtVjBkWEp1Y3lCMGFHVWdhVzVrWlhnZ2IyWWdkR2hsSUdadmRXNWtJR1ZzWlcxbGJuUXNJR1ZzYzJVZ1lDMHhZQzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkbUZ5SUhWelpYSnpJRDBnVzF4dUlDQWdJQ0FxSUNBZ2V5QW5kWE5sY2ljNklDZGlZWEp1WlhrbkxDQWdKMkZqZEdsMlpTYzZJR1poYkhObElIMHNYRzRnSUNBZ0lDb2dJQ0I3SUNkMWMyVnlKem9nSjJaeVpXUW5MQ0FnSUNBbllXTjBhWFpsSnpvZ1ptRnNjMlVnZlN4Y2JpQWdJQ0FnS2lBZ0lIc2dKM1Z6WlhJbk9pQW5jR1ZpWW14bGN5Y3NJQ2RoWTNScGRtVW5PaUIwY25WbElIMWNiaUFnSUNBZ0tpQmRPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVtYVc1a1NXNWtaWGdvZFhObGNuTXNJR1oxYm1OMGFXOXVLRzhwSUhzZ2NtVjBkWEp1SUc4dWRYTmxjaUE5UFNBblltRnlibVY1SnpzZ2ZTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z01GeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdWR2hsSUdCZkxtMWhkR05vWlhOZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMbVpwYm1SSmJtUmxlQ2gxYzJWeWN5d2dleUFuZFhObGNpYzZJQ2RtY21Wa0p5d2dKMkZqZEdsMlpTYzZJR1poYkhObElIMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lERmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDOHZJRlJvWlNCZ1h5NXRZWFJqYUdWelVISnZjR1Z5ZEhsZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMbVpwYm1SSmJtUmxlQ2gxYzJWeWN5d2dXeWRoWTNScGRtVW5MQ0JtWVd4elpWMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lEQmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDOHZJRlJvWlNCZ1h5NXdjbTl3WlhKMGVXQWdhWFJsY21GMFpXVWdjMmh2Y25Sb1lXNWtMbHh1SUNBZ0lDQXFJRjh1Wm1sdVpFbHVaR1Y0S0hWelpYSnpMQ0FuWVdOMGFYWmxKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdNbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHWnBibVJKYm1SbGVDaGhjbkpoZVN3Z2NISmxaR2xqWVhSbExDQm1jbTl0U1c1a1pYZ3BJSHRjYmlBZ0lDQWdJSFpoY2lCc1pXNW5kR2dnUFNCaGNuSmhlU0E5UFNCdWRXeHNJRDhnTUNBNklHRnljbUY1TG14bGJtZDBhRHRjYmlBZ0lDQWdJR2xtSUNnaGJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBdE1UdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lIWmhjaUJwYm1SbGVDQTlJR1p5YjIxSmJtUmxlQ0E5UFNCdWRXeHNJRDhnTUNBNklIUnZTVzUwWldkbGNpaG1jbTl0U1c1a1pYZ3BPMXh1SUNBZ0lDQWdhV1lnS0dsdVpHVjRJRHdnTUNrZ2UxeHVJQ0FnSUNBZ0lDQnBibVJsZUNBOUlHNWhkR2wyWlUxaGVDaHNaVzVuZEdnZ0t5QnBibVJsZUN3Z01DazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z1ltRnpaVVpwYm1SSmJtUmxlQ2hoY25KaGVTd2daMlYwU1hSbGNtRjBaV1VvY0hKbFpHbGpZWFJsTENBektTd2dhVzVrWlhncE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9hWE1nYldWMGFHOWtJR2x6SUd4cGEyVWdZRjh1Wm1sdVpFbHVaR1Y0WUNCbGVHTmxjSFFnZEdoaGRDQnBkQ0JwZEdWeVlYUmxjeUJ2ZG1WeUlHVnNaVzFsYm5SelhHNGdJQ0FnSUNvZ2IyWWdZR052Ykd4bFkzUnBiMjVnSUdaeWIyMGdjbWxuYUhRZ2RHOGdiR1ZtZEM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F5TGpBdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQkJjbkpoZVZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDlJR0Z5Y21GNUlGUm9aU0JoY25KaGVTQjBieUJwYm5Od1pXTjBMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJRnR3Y21Wa2FXTmhkR1U5WHk1cFpHVnVkR2wwZVYwZ1ZHaGxJR1oxYm1OMGFXOXVJR2x1ZG05clpXUWdjR1Z5SUdsMFpYSmhkR2x2Ymk1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzJaeWIyMUpibVJsZUQxaGNuSmhlUzVzWlc1bmRHZ3RNVjBnVkdobElHbHVaR1Y0SUhSdklITmxZWEpqYUNCbWNtOXRMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHR1ZFcxaVpYSjlJRkpsZEhWeWJuTWdkR2hsSUdsdVpHVjRJRzltSUhSb1pTQm1iM1Z1WkNCbGJHVnRaVzUwTENCbGJITmxJR0F0TVdBdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQjFjMlZ5Y3lBOUlGdGNiaUFnSUNBZ0tpQWdJSHNnSjNWelpYSW5PaUFuWW1GeWJtVjVKeXdnSUNkaFkzUnBkbVVuT2lCMGNuVmxJSDBzWEc0Z0lDQWdJQ29nSUNCN0lDZDFjMlZ5SnpvZ0oyWnlaV1FuTENBZ0lDQW5ZV04wYVhabEp6b2dabUZzYzJVZ2ZTeGNiaUFnSUNBZ0tpQWdJSHNnSjNWelpYSW5PaUFuY0dWaVlteGxjeWNzSUNkaFkzUnBkbVVuT2lCbVlXeHpaU0I5WEc0Z0lDQWdJQ29nWFR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dVptbHVaRXhoYzNSSmJtUmxlQ2gxYzJWeWN5d2dablZ1WTNScGIyNG9ieWtnZXlCeVpYUjFjbTRnYnk1MWMyVnlJRDA5SUNkd1pXSmliR1Z6SnpzZ2ZTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z01seHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdWR2hsSUdCZkxtMWhkR05vWlhOZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMbVpwYm1STVlYTjBTVzVrWlhnb2RYTmxjbk1zSUhzZ0ozVnpaWEluT2lBblltRnlibVY1Snl3Z0oyRmpkR2wyWlNjNklIUnlkV1VnZlNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnTUZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z1ZHaGxJR0JmTG0xaGRHTm9aWE5RY205d1pYSjBlV0FnYVhSbGNtRjBaV1VnYzJodmNuUm9ZVzVrTGx4dUlDQWdJQ0FxSUY4dVptbHVaRXhoYzNSSmJtUmxlQ2gxYzJWeWN5d2dXeWRoWTNScGRtVW5MQ0JtWVd4elpWMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lESmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDOHZJRlJvWlNCZ1h5NXdjbTl3WlhKMGVXQWdhWFJsY21GMFpXVWdjMmh2Y25Sb1lXNWtMbHh1SUNBZ0lDQXFJRjh1Wm1sdVpFeGhjM1JKYm1SbGVDaDFjMlZ5Y3l3Z0oyRmpkR2wyWlNjcE8xeHVJQ0FnSUNBcUlDOHZJRDArSURCY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJtYVc1a1RHRnpkRWx1WkdWNEtHRnljbUY1TENCd2NtVmthV05oZEdVc0lHWnliMjFKYm1SbGVDa2dlMXh1SUNBZ0lDQWdkbUZ5SUd4bGJtZDBhQ0E5SUdGeWNtRjVJRDA5SUc1MWJHd2dQeUF3SURvZ1lYSnlZWGt1YkdWdVozUm9PMXh1SUNBZ0lDQWdhV1lnS0NGc1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUMweE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2RtRnlJR2x1WkdWNElEMGdiR1Z1WjNSb0lDMGdNVHRjYmlBZ0lDQWdJR2xtSUNobWNtOXRTVzVrWlhnZ0lUMDlJSFZ1WkdWbWFXNWxaQ2tnZTF4dUlDQWdJQ0FnSUNCcGJtUmxlQ0E5SUhSdlNXNTBaV2RsY2lobWNtOXRTVzVrWlhncE8xeHVJQ0FnSUNBZ0lDQnBibVJsZUNBOUlHWnliMjFKYm1SbGVDQThJREJjYmlBZ0lDQWdJQ0FnSUNBL0lHNWhkR2wyWlUxaGVDaHNaVzVuZEdnZ0t5QnBibVJsZUN3Z01DbGNiaUFnSUNBZ0lDQWdJQ0E2SUc1aGRHbDJaVTFwYmlocGJtUmxlQ3dnYkdWdVozUm9JQzBnTVNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnWW1GelpVWnBibVJKYm1SbGVDaGhjbkpoZVN3Z1oyVjBTWFJsY21GMFpXVW9jSEpsWkdsallYUmxMQ0F6S1N3Z2FXNWtaWGdzSUhSeWRXVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRVpzWVhSMFpXNXpJR0JoY25KaGVXQWdZU0J6YVc1bmJHVWdiR1YyWld3Z1pHVmxjQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXdMakV1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCQmNuSmhlVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlHRnljbUY1SUZSb1pTQmhjbkpoZVNCMGJ5Qm1iR0YwZEdWdUxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdEJjbkpoZVgwZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUdac1lYUjBaVzVsWkNCaGNuSmhlUzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVtYkdGMGRHVnVLRnN4TENCYk1pd2dXek1zSUZzMFhWMHNJRFZkWFNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnV3pFc0lESXNJRnN6TENCYk5GMWRMQ0ExWFZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR1pzWVhSMFpXNG9ZWEp5WVhrcElIdGNiaUFnSUNBZ0lIWmhjaUJzWlc1bmRHZ2dQU0JoY25KaGVTQTlQU0J1ZFd4c0lEOGdNQ0E2SUdGeWNtRjVMbXhsYm1kMGFEdGNiaUFnSUNBZ0lISmxkSFZ5YmlCc1pXNW5kR2dnUHlCaVlYTmxSbXhoZEhSbGJpaGhjbkpoZVN3Z01Ta2dPaUJiWFR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCU1pXTjFjbk5wZG1Wc2VTQm1iR0YwZEdWdWN5QmdZWEp5WVhsZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURNdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRUZ5Y21GNVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnWVhKeVlYa2dWR2hsSUdGeWNtRjVJSFJ2SUdac1lYUjBaVzR1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2dabXhoZEhSbGJtVmtJR0Z5Y21GNUxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtWnNZWFIwWlc1RVpXVndLRnN4TENCYk1pd2dXek1zSUZzMFhWMHNJRFZkWFNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnV3pFc0lESXNJRE1zSURRc0lEVmRYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1pteGhkSFJsYmtSbFpYQW9ZWEp5WVhrcElIdGNiaUFnSUNBZ0lIWmhjaUJzWlc1bmRHZ2dQU0JoY25KaGVTQTlQU0J1ZFd4c0lEOGdNQ0E2SUdGeWNtRjVMbXhsYm1kMGFEdGNiaUFnSUNBZ0lISmxkSFZ5YmlCc1pXNW5kR2dnUHlCaVlYTmxSbXhoZEhSbGJpaGhjbkpoZVN3Z1NVNUdTVTVKVkZrcElEb2dXMTA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVW1WamRYSnphWFpsYkhrZ1pteGhkSFJsYmlCZ1lYSnlZWGxnSUhWd0lIUnZJR0JrWlhCMGFHQWdkR2x0WlhNdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTkM0MExqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dRWEp5WVhsY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0JoY25KaGVTQlVhR1VnWVhKeVlYa2dkRzhnWm14aGRIUmxiaTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXMlJsY0hSb1BURmRJRlJvWlNCdFlYaHBiWFZ0SUhKbFkzVnljMmx2YmlCa1pYQjBhQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5Qm1iR0YwZEdWdVpXUWdZWEp5WVhrdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQmhjbkpoZVNBOUlGc3hMQ0JiTWl3Z1d6TXNJRnMwWFYwc0lEVmRYVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1Wm14aGRIUmxia1JsY0hSb0tHRnljbUY1TENBeEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYk1Td2dNaXdnV3pNc0lGczBYVjBzSURWZFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtWnNZWFIwWlc1RVpYQjBhQ2hoY25KaGVTd2dNaWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXekVzSURJc0lETXNJRnMwWFN3Z05WMWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCbWJHRjBkR1Z1UkdWd2RHZ29ZWEp5WVhrc0lHUmxjSFJvS1NCN1hHNGdJQ0FnSUNCMllYSWdiR1Z1WjNSb0lEMGdZWEp5WVhrZ1BUMGdiblZzYkNBL0lEQWdPaUJoY25KaGVTNXNaVzVuZEdnN1hHNGdJQ0FnSUNCcFppQW9JV3hsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdXMTA3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JrWlhCMGFDQTlJR1JsY0hSb0lEMDlQU0IxYm1SbFptbHVaV1FnUHlBeElEb2dkRzlKYm5SbFoyVnlLR1JsY0hSb0tUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCaVlYTmxSbXhoZEhSbGJpaGhjbkpoZVN3Z1pHVndkR2dwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQnBiblpsY25ObElHOW1JR0JmTG5SdlVHRnBjbk5nT3lCMGFHbHpJRzFsZEdodlpDQnlaWFIxY201eklHRnVJRzlpYW1WamRDQmpiMjF3YjNObFpGeHVJQ0FnSUNBcUlHWnliMjBnYTJWNUxYWmhiSFZsSUdCd1lXbHljMkF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR3TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1FYSnlZWGxjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZTQndZV2x5Y3lCVWFHVWdhMlY1TFhaaGJIVmxJSEJoYVhKekxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdFBZbXBsWTNSOUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCdlltcGxZM1F1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1Wm5KdmJWQmhhWEp6S0Z0YkoyRW5MQ0F4WFN3Z1d5ZGlKeXdnTWwxZEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCN0lDZGhKem9nTVN3Z0oySW5PaUF5SUgxY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJtY205dFVHRnBjbk1vY0dGcGNuTXBJSHRjYmlBZ0lDQWdJSFpoY2lCcGJtUmxlQ0E5SUMweExGeHVJQ0FnSUNBZ0lDQWdJR3hsYm1kMGFDQTlJSEJoYVhKeklEMDlJRzUxYkd3Z1B5QXdJRG9nY0dGcGNuTXViR1Z1WjNSb0xGeHVJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RDQTlJSHQ5TzF4dVhHNGdJQ0FnSUNCM2FHbHNaU0FvS3l0cGJtUmxlQ0E4SUd4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNCMllYSWdjR0ZwY2lBOUlIQmhhWEp6VzJsdVpHVjRYVHRjYmlBZ0lDQWdJQ0FnY21WemRXeDBXM0JoYVhKYk1GMWRJRDBnY0dGcGNsc3hYVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1IyVjBjeUIwYUdVZ1ptbHljM1FnWld4bGJXVnVkQ0J2WmlCZ1lYSnlZWGxnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJREF1TVM0d1hHNGdJQ0FnSUNvZ1FHRnNhV0Z6SUdacGNuTjBYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRUZ5Y21GNVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnWVhKeVlYa2dWR2hsSUdGeWNtRjVJSFJ2SUhGMVpYSjVMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHNxZlNCU1pYUjFjbTV6SUhSb1pTQm1hWEp6ZENCbGJHVnRaVzUwSUc5bUlHQmhjbkpoZVdBdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWFHVmhaQ2hiTVN3Z01pd2dNMTBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJREZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YUdWaFpDaGJYU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdkVzVrWldacGJtVmtYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2FHVmhaQ2hoY25KaGVTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlDaGhjbkpoZVNBbUppQmhjbkpoZVM1c1pXNW5kR2dwSUQ4Z1lYSnlZWGxiTUYwZ09pQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dSMlYwY3lCMGFHVWdhVzVrWlhnZ1lYUWdkMmhwWTJnZ2RHaGxJR1pwY25OMElHOWpZM1Z5Y21WdVkyVWdiMllnWUhaaGJIVmxZQ0JwY3lCbWIzVnVaQ0JwYmlCZ1lYSnlZWGxnWEc0Z0lDQWdJQ29nZFhOcGJtY2dXMkJUWVcxbFZtRnNkV1ZhWlhKdllGMG9hSFIwY0RvdkwyVmpiV0V0YVc1MFpYSnVZWFJwYjI1aGJDNXZjbWN2WldOdFlTMHlOakl2Tnk0d0x5TnpaV010YzJGdFpYWmhiSFZsZW1WeWJ5bGNiaUFnSUNBZ0tpQm1iM0lnWlhGMVlXeHBkSGtnWTI5dGNHRnlhWE52Ym5NdUlFbG1JR0JtY205dFNXNWtaWGhnSUdseklHNWxaMkYwYVhabExDQnBkQ2R6SUhWelpXUWdZWE1nZEdobFhHNGdJQ0FnSUNvZ2IyWm1jMlYwSUdaeWIyMGdkR2hsSUdWdVpDQnZaaUJnWVhKeVlYbGdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEQXVNUzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUVGeWNtRjVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1lYSnlZWGtnVkdobElHRnljbUY1SUhSdklHbHVjM0JsWTNRdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdjMlZoY21Ob0lHWnZjaTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXMlp5YjIxSmJtUmxlRDB3WFNCVWFHVWdhVzVrWlhnZ2RHOGdjMlZoY21Ob0lHWnliMjB1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTI1MWJXSmxjbjBnVW1WMGRYSnVjeUIwYUdVZ2FXNWtaWGdnYjJZZ2RHaGxJRzFoZEdOb1pXUWdkbUZzZFdVc0lHVnNjMlVnWUMweFlDNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXBibVJsZUU5bUtGc3hMQ0F5TENBeExDQXlYU3dnTWlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnTVZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z1UyVmhjbU5vSUdaeWIyMGdkR2hsSUdCbWNtOXRTVzVrWlhoZ0xseHVJQ0FnSUNBcUlGOHVhVzVrWlhoUFppaGJNU3dnTWl3Z01Td2dNbDBzSURJc0lESXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lETmNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCcGJtUmxlRTltS0dGeWNtRjVMQ0IyWVd4MVpTd2dabkp2YlVsdVpHVjRLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2JHVnVaM1JvSUQwZ1lYSnlZWGtnUFQwZ2JuVnNiQ0EvSURBZ09pQmhjbkpoZVM1c1pXNW5kR2c3WEc0Z0lDQWdJQ0JwWmlBb0lXeGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z0xURTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQjJZWElnYVc1a1pYZ2dQU0JtY205dFNXNWtaWGdnUFQwZ2JuVnNiQ0EvSURBZ09pQjBiMGx1ZEdWblpYSW9abkp2YlVsdVpHVjRLVHRjYmlBZ0lDQWdJR2xtSUNocGJtUmxlQ0E4SURBcElIdGNiaUFnSUNBZ0lDQWdhVzVrWlhnZ1BTQnVZWFJwZG1WTllYZ29iR1Z1WjNSb0lDc2dhVzVrWlhnc0lEQXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlHSmhjMlZKYm1SbGVFOW1LR0Z5Y21GNUxDQjJZV3gxWlN3Z2FXNWtaWGdwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVkbGRITWdZV3hzSUdKMWRDQjBhR1VnYkdGemRDQmxiR1Z0Wlc1MElHOW1JR0JoY25KaGVXQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01DNHhMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnUVhKeVlYbGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCaGNuSmhlU0JVYUdVZ1lYSnlZWGtnZEc4Z2NYVmxjbmt1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmU0JTWlhSMWNtNXpJSFJvWlNCemJHbGpaU0J2WmlCZ1lYSnlZWGxnTGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1sdWFYUnBZV3dvV3pFc0lESXNJRE5kS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiTVN3Z01sMWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCcGJtbDBhV0ZzS0dGeWNtRjVLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2JHVnVaM1JvSUQwZ1lYSnlZWGtnUFQwZ2JuVnNiQ0EvSURBZ09pQmhjbkpoZVM1c1pXNW5kR2c3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiR1Z1WjNSb0lEOGdZbUZ6WlZOc2FXTmxLR0Z5Y21GNUxDQXdMQ0F0TVNrZ09pQmJYVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVnpJR0Z1SUdGeWNtRjVJRzltSUhWdWFYRjFaU0IyWVd4MVpYTWdkR2hoZENCaGNtVWdhVzVqYkhWa1pXUWdhVzRnWVd4c0lHZHBkbVZ1SUdGeWNtRjVjMXh1SUNBZ0lDQXFJSFZ6YVc1bklGdGdVMkZ0WlZaaGJIVmxXbVZ5YjJCZEtHaDBkSEE2THk5bFkyMWhMV2x1ZEdWeWJtRjBhVzl1WVd3dWIzSm5MMlZqYldFdE1qWXlMemN1TUM4amMyVmpMWE5oYldWMllXeDFaWHBsY204cFhHNGdJQ0FnSUNvZ1ptOXlJR1Z4ZFdGc2FYUjVJR052YlhCaGNtbHpiMjV6TGlCVWFHVWdiM0prWlhJZ1lXNWtJSEpsWm1WeVpXNWpaWE1nYjJZZ2NtVnpkV3gwSUhaaGJIVmxjeUJoY21WY2JpQWdJQ0FnS2lCa1pYUmxjbTFwYm1Wa0lHSjVJSFJvWlNCbWFYSnpkQ0JoY25KaGVTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBd0xqRXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JCY25KaGVWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN0xpNHVRWEp5WVhsOUlGdGhjbkpoZVhOZElGUm9aU0JoY25KaGVYTWdkRzhnYVc1emNHVmpkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QmhjbkpoZVNCdlppQnBiblJsY25ObFkzUnBibWNnZG1Gc2RXVnpMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx1ZEdWeWMyVmpkR2x2YmloYk1pd2dNVjBzSUZzeUxDQXpYU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXekpkWEc0Z0lDQWdJQ292WEc0Z0lDQWdkbUZ5SUdsdWRHVnljMlZqZEdsdmJpQTlJR0poYzJWU1pYTjBLR1oxYm1OMGFXOXVLR0Z5Y21GNWN5a2dlMXh1SUNBZ0lDQWdkbUZ5SUcxaGNIQmxaQ0E5SUdGeWNtRjVUV0Z3S0dGeWNtRjVjeXdnWTJGemRFRnljbUY1VEdsclpVOWlhbVZqZENrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnS0cxaGNIQmxaQzVzWlc1bmRHZ2dKaVlnYldGd2NHVmtXekJkSUQwOVBTQmhjbkpoZVhOYk1GMHBYRzRnSUNBZ0lDQWdJRDhnWW1GelpVbHVkR1Z5YzJWamRHbHZiaWh0WVhCd1pXUXBYRzRnSUNBZ0lDQWdJRG9nVzEwN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR2x6SUcxbGRHaHZaQ0JwY3lCc2FXdGxJR0JmTG1sdWRHVnljMlZqZEdsdmJtQWdaWGhqWlhCMElIUm9ZWFFnYVhRZ1lXTmpaWEIwY3lCZ2FYUmxjbUYwWldWZ1hHNGdJQ0FnSUNvZ2QyaHBZMmdnYVhNZ2FXNTJiMnRsWkNCbWIzSWdaV0ZqYUNCbGJHVnRaVzUwSUc5bUlHVmhZMmdnWUdGeWNtRjVjMkFnZEc4Z1oyVnVaWEpoZEdVZ2RHaGxJR055YVhSbGNtbHZibHh1SUNBZ0lDQXFJR0o1SUhkb2FXTm9JSFJvWlhrbmNtVWdZMjl0Y0dGeVpXUXVJRlJvWlNCdmNtUmxjaUJoYm1RZ2NtVm1aWEpsYm1ObGN5QnZaaUJ5WlhOMWJIUWdkbUZzZFdWeklHRnlaVnh1SUNBZ0lDQXFJR1JsZEdWeWJXbHVaV1FnWW5rZ2RHaGxJR1pwY25OMElHRnljbUY1TGlCVWFHVWdhWFJsY21GMFpXVWdhWE1nYVc1MmIydGxaQ0IzYVhSb0lHOXVaU0JoY21kMWJXVnVkRHBjYmlBZ0lDQWdLaUFvZG1Gc2RXVXBMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUVGeWNtRjVYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3VMaTVCY25KaGVYMGdXMkZ5Y21GNWMxMGdWR2hsSUdGeWNtRjVjeUIwYnlCcGJuTndaV04wTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUZ0cGRHVnlZWFJsWlQxZkxtbGtaVzUwYVhSNVhTQlVhR1VnYVhSbGNtRjBaV1VnYVc1MmIydGxaQ0J3WlhJZ1pXeGxiV1Z1ZEM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1FYSnlZWGw5SUZKbGRIVnlibk1nZEdobElHNWxkeUJoY25KaGVTQnZaaUJwYm5SbGNuTmxZM1JwYm1jZ2RtRnNkV1Z6TGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1sdWRHVnljMlZqZEdsdmJrSjVLRnN5TGpFc0lERXVNbDBzSUZzeUxqTXNJRE11TkYwc0lFMWhkR2d1Wm14dmIzSXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc3lMakZkWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUF2THlCVWFHVWdZRjh1Y0hKdmNHVnlkSGxnSUdsMFpYSmhkR1ZsSUhOb2IzSjBhR0Z1WkM1Y2JpQWdJQ0FnS2lCZkxtbHVkR1Z5YzJWamRHbHZia0o1S0Z0N0lDZDRKem9nTVNCOVhTd2dXM3NnSjNnbk9pQXlJSDBzSUhzZ0ozZ25PaUF4SUgxZExDQW5lQ2NwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnQ3SUNkNEp6b2dNU0I5WFZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFpoY2lCcGJuUmxjbk5sWTNScGIyNUNlU0E5SUdKaGMyVlNaWE4wS0daMWJtTjBhVzl1S0dGeWNtRjVjeWtnZTF4dUlDQWdJQ0FnZG1GeUlHbDBaWEpoZEdWbElEMGdiR0Z6ZENoaGNuSmhlWE1wTEZ4dUlDQWdJQ0FnSUNBZ0lHMWhjSEJsWkNBOUlHRnljbUY1VFdGd0tHRnljbUY1Y3l3Z1kyRnpkRUZ5Y21GNVRHbHJaVTlpYW1WamRDazdYRzVjYmlBZ0lDQWdJR2xtSUNocGRHVnlZWFJsWlNBOVBUMGdiR0Z6ZENodFlYQndaV1FwS1NCN1hHNGdJQ0FnSUNBZ0lHbDBaWEpoZEdWbElEMGdkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdiV0Z3Y0dWa0xuQnZjQ2dwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJQ2h0WVhCd1pXUXViR1Z1WjNSb0lDWW1JRzFoY0hCbFpGc3dYU0E5UFQwZ1lYSnlZWGx6V3pCZEtWeHVJQ0FnSUNBZ0lDQS9JR0poYzJWSmJuUmxjbk5sWTNScGIyNG9iV0Z3Y0dWa0xDQm5aWFJKZEdWeVlYUmxaU2hwZEdWeVlYUmxaU3dnTWlrcFhHNGdJQ0FnSUNBZ0lEb2dXMTA3WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVWFHbHpJRzFsZEdodlpDQnBjeUJzYVd0bElHQmZMbWx1ZEdWeWMyVmpkR2x2Ym1BZ1pYaGpaWEIwSUhSb1lYUWdhWFFnWVdOalpYQjBjeUJnWTI5dGNHRnlZWFJ2Y21CY2JpQWdJQ0FnS2lCM2FHbGphQ0JwY3lCcGJuWnZhMlZrSUhSdklHTnZiWEJoY21VZ1pXeGxiV1Z1ZEhNZ2IyWWdZR0Z5Y21GNWMyQXVJRlJvWlNCdmNtUmxjaUJoYm1RZ2NtVm1aWEpsYm1ObGMxeHVJQ0FnSUNBcUlHOW1JSEpsYzNWc2RDQjJZV3gxWlhNZ1lYSmxJR1JsZEdWeWJXbHVaV1FnWW5rZ2RHaGxJR1pwY25OMElHRnljbUY1TGlCVWFHVWdZMjl0Y0dGeVlYUnZjaUJwYzF4dUlDQWdJQ0FxSUdsdWRtOXJaV1FnZDJsMGFDQjBkMjhnWVhKbmRXMWxiblJ6T2lBb1lYSnlWbUZzTENCdmRHaFdZV3dwTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRFF1TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFRnljbUY1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHN1TGk1QmNuSmhlWDBnVzJGeWNtRjVjMTBnVkdobElHRnljbUY1Y3lCMGJ5QnBibk53WldOMExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlGdGpiMjF3WVhKaGRHOXlYU0JVYUdVZ1kyOXRjR0Z5WVhSdmNpQnBiblp2YTJWa0lIQmxjaUJsYkdWdFpXNTBMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHRnljbUY1SUc5bUlHbHVkR1Z5YzJWamRHbHVaeUIyWVd4MVpYTXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlIWmhjaUJ2WW1wbFkzUnpJRDBnVzNzZ0ozZ25PaUF4TENBbmVTYzZJRElnZlN3Z2V5QW5lQ2M2SURJc0lDZDVKem9nTVNCOVhUdGNiaUFnSUNBZ0tpQjJZWElnYjNSb1pYSnpJRDBnVzNzZ0ozZ25PaUF4TENBbmVTYzZJREVnZlN3Z2V5QW5lQ2M2SURFc0lDZDVKem9nTWlCOVhUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhVzUwWlhKelpXTjBhVzl1VjJsMGFDaHZZbXBsWTNSekxDQnZkR2hsY25Nc0lGOHVhWE5GY1hWaGJDazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1czc2dKM2duT2lBeExDQW5lU2M2SURJZ2ZWMWNiaUFnSUNBZ0tpOWNiaUFnSUNCMllYSWdhVzUwWlhKelpXTjBhVzl1VjJsMGFDQTlJR0poYzJWU1pYTjBLR1oxYm1OMGFXOXVLR0Z5Y21GNWN5a2dlMXh1SUNBZ0lDQWdkbUZ5SUdOdmJYQmhjbUYwYjNJZ1BTQnNZWE4wS0dGeWNtRjVjeWtzWEc0Z0lDQWdJQ0FnSUNBZ2JXRndjR1ZrSUQwZ1lYSnlZWGxOWVhBb1lYSnlZWGx6TENCallYTjBRWEp5WVhsTWFXdGxUMkpxWldOMEtUdGNibHh1SUNBZ0lDQWdZMjl0Y0dGeVlYUnZjaUE5SUhSNWNHVnZaaUJqYjIxd1lYSmhkRzl5SUQwOUlDZG1kVzVqZEdsdmJpY2dQeUJqYjIxd1lYSmhkRzl5SURvZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ2FXWWdLR052YlhCaGNtRjBiM0lwSUh0Y2JpQWdJQ0FnSUNBZ2JXRndjR1ZrTG5CdmNDZ3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlDaHRZWEJ3WldRdWJHVnVaM1JvSUNZbUlHMWhjSEJsWkZzd1hTQTlQVDBnWVhKeVlYbHpXekJkS1Z4dUlDQWdJQ0FnSUNBL0lHSmhjMlZKYm5SbGNuTmxZM1JwYjI0b2JXRndjR1ZrTENCMWJtUmxabWx1WldRc0lHTnZiWEJoY21GMGIzSXBYRzRnSUNBZ0lDQWdJRG9nVzEwN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRiMjUyWlhKMGN5QmhiR3dnWld4bGJXVnVkSE1nYVc0Z1lHRnljbUY1WUNCcGJuUnZJR0VnYzNSeWFXNW5JSE5sY0dGeVlYUmxaQ0JpZVNCZ2MyVndZWEpoZEc5eVlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBMExqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JCY25KaGVWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUdGeWNtRjVJRlJvWlNCaGNuSmhlU0IwYnlCamIyNTJaWEowTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYzJWd1lYSmhkRzl5UFNjc0oxMGdWR2hsSUdWc1pXMWxiblFnYzJWd1lYSmhkRzl5TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0emRISnBibWQ5SUZKbGRIVnlibk1nZEdobElHcHZhVzVsWkNCemRISnBibWN1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YW05cGJpaGJKMkVuTENBbllpY3NJQ2RqSjEwc0lDZCtKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMkYrWW41akoxeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdwdmFXNG9ZWEp5WVhrc0lITmxjR0Z5WVhSdmNpa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHRnljbUY1SUQwOUlHNTFiR3dnUHlBbkp5QTZJRzVoZEdsMlpVcHZhVzR1WTJGc2JDaGhjbkpoZVN3Z2MyVndZWEpoZEc5eUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkhaWFJ6SUhSb1pTQnNZWE4wSUdWc1pXMWxiblFnYjJZZ1lHRnljbUY1WUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F3TGpFdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQkJjbkpoZVZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDlJR0Z5Y21GNUlGUm9aU0JoY25KaGVTQjBieUJ4ZFdWeWVTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdLbjBnVW1WMGRYSnVjeUIwYUdVZ2JHRnpkQ0JsYkdWdFpXNTBJRzltSUdCaGNuSmhlV0F1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YkdGemRDaGJNU3dnTWl3Z00xMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lETmNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCc1lYTjBLR0Z5Y21GNUtTQjdYRzRnSUNBZ0lDQjJZWElnYkdWdVozUm9JRDBnWVhKeVlYa2dQVDBnYm5Wc2JDQS9JREFnT2lCaGNuSmhlUzVzWlc1bmRHZzdYRzRnSUNBZ0lDQnlaWFIxY200Z2JHVnVaM1JvSUQ4Z1lYSnlZWGxiYkdWdVozUm9JQzBnTVYwZ09pQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hwY3lCdFpYUm9iMlFnYVhNZ2JHbHJaU0JnWHk1cGJtUmxlRTltWUNCbGVHTmxjSFFnZEdoaGRDQnBkQ0JwZEdWeVlYUmxjeUJ2ZG1WeUlHVnNaVzFsYm5SeklHOW1YRzRnSUNBZ0lDb2dZR0Z5Y21GNVlDQm1jbTl0SUhKcFoyaDBJSFJ2SUd4bFpuUXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01DNHhMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnUVhKeVlYbGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCaGNuSmhlU0JVYUdVZ1lYSnlZWGtnZEc4Z2FXNXpjR1ZqZEM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlIWmhiSFZsSUZSb1pTQjJZV3gxWlNCMGJ5QnpaV0Z5WTJnZ1ptOXlMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmJabkp2YlVsdVpHVjRQV0Z5Y21GNUxteGxibWQwYUMweFhTQlVhR1VnYVc1a1pYZ2dkRzhnYzJWaGNtTm9JR1p5YjIwdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UyNTFiV0psY24wZ1VtVjBkWEp1Y3lCMGFHVWdhVzVrWlhnZ2IyWWdkR2hsSUcxaGRHTm9aV1FnZG1Gc2RXVXNJR1ZzYzJVZ1lDMHhZQzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVzWVhOMFNXNWtaWGhQWmloYk1Td2dNaXdnTVN3Z01sMHNJRElwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRE5jYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQzh2SUZObFlYSmphQ0JtY205dElIUm9aU0JnWm5KdmJVbHVaR1Y0WUM1Y2JpQWdJQ0FnS2lCZkxteGhjM1JKYm1SbGVFOW1LRnN4TENBeUxDQXhMQ0F5WFN3Z01pd2dNaWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdNVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHeGhjM1JKYm1SbGVFOW1LR0Z5Y21GNUxDQjJZV3gxWlN3Z1puSnZiVWx1WkdWNEtTQjdYRzRnSUNBZ0lDQjJZWElnYkdWdVozUm9JRDBnWVhKeVlYa2dQVDBnYm5Wc2JDQS9JREFnT2lCaGNuSmhlUzVzWlc1bmRHZzdYRzRnSUNBZ0lDQnBaaUFvSVd4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnTFRFN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCMllYSWdhVzVrWlhnZ1BTQnNaVzVuZEdnN1hHNGdJQ0FnSUNCcFppQW9abkp2YlVsdVpHVjRJQ0U5UFNCMWJtUmxabWx1WldRcElIdGNiaUFnSUNBZ0lDQWdhVzVrWlhnZ1BTQjBiMGx1ZEdWblpYSW9abkp2YlVsdVpHVjRLVHRjYmlBZ0lDQWdJQ0FnYVc1a1pYZ2dQU0JwYm1SbGVDQThJREFnUHlCdVlYUnBkbVZOWVhnb2JHVnVaM1JvSUNzZ2FXNWtaWGdzSURBcElEb2dibUYwYVhabFRXbHVLR2x1WkdWNExDQnNaVzVuZEdnZ0xTQXhLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQjJZV3gxWlNBOVBUMGdkbUZzZFdWY2JpQWdJQ0FnSUNBZ1B5QnpkSEpwWTNSTVlYTjBTVzVrWlhoUFppaGhjbkpoZVN3Z2RtRnNkV1VzSUdsdVpHVjRLVnh1SUNBZ0lDQWdJQ0E2SUdKaGMyVkdhVzVrU1c1a1pYZ29ZWEp5WVhrc0lHSmhjMlZKYzA1aFRpd2dhVzVrWlhnc0lIUnlkV1VwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVkbGRITWdkR2hsSUdWc1pXMWxiblFnWVhRZ2FXNWtaWGdnWUc1Z0lHOW1JR0JoY25KaGVXQXVJRWxtSUdCdVlDQnBjeUJ1WldkaGRHbDJaU3dnZEdobElHNTBhRnh1SUNBZ0lDQXFJR1ZzWlcxbGJuUWdabkp2YlNCMGFHVWdaVzVrSUdseklISmxkSFZ5Ym1Wa0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU1URXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JCY25KaGVWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUdGeWNtRjVJRlJvWlNCaGNuSmhlU0IwYnlCeGRXVnllUzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXMjQ5TUYwZ1ZHaGxJR2x1WkdWNElHOW1JSFJvWlNCbGJHVnRaVzUwSUhSdklISmxkSFZ5Ymk1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN0tuMGdVbVYwZFhKdWN5QjBhR1VnYm5Sb0lHVnNaVzFsYm5RZ2IyWWdZR0Z5Y21GNVlDNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ2RtRnlJR0Z5Y21GNUlEMGdXeWRoSnl3Z0oySW5MQ0FuWXljc0lDZGtKMTA3WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG01MGFDaGhjbkpoZVN3Z01TazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z0oySW5YRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbTUwYUNoaGNuSmhlU3dnTFRJcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUNkakp6dGNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCdWRHZ29ZWEp5WVhrc0lHNHBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQW9ZWEp5WVhrZ0ppWWdZWEp5WVhrdWJHVnVaM1JvS1NBL0lHSmhjMlZPZEdnb1lYSnlZWGtzSUhSdlNXNTBaV2RsY2lodUtTa2dPaUIxYm1SbFptbHVaV1E3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVW1WdGIzWmxjeUJoYkd3Z1oybDJaVzRnZG1Gc2RXVnpJR1p5YjIwZ1lHRnljbUY1WUNCMWMybHVaMXh1SUNBZ0lDQXFJRnRnVTJGdFpWWmhiSFZsV21WeWIyQmRLR2gwZEhBNkx5OWxZMjFoTFdsdWRHVnlibUYwYVc5dVlXd3ViM0puTDJWamJXRXRNall5THpjdU1DOGpjMlZqTFhOaGJXVjJZV3gxWlhwbGNtOHBYRzRnSUNBZ0lDb2dabTl5SUdWeGRXRnNhWFI1SUdOdmJYQmhjbWx6YjI1ekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0tpcE9iM1JsT2lvcUlGVnViR2xyWlNCZ1h5NTNhWFJvYjNWMFlDd2dkR2hwY3lCdFpYUm9iMlFnYlhWMFlYUmxjeUJnWVhKeVlYbGdMaUJWYzJVZ1lGOHVjbVZ0YjNabFlGeHVJQ0FnSUNBcUlIUnZJSEpsYlc5MlpTQmxiR1Z0Wlc1MGN5Qm1jbTl0SUdGdUlHRnljbUY1SUdKNUlIQnlaV1JwWTJGMFpTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBeUxqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JCY25KaGVWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUdGeWNtRjVJRlJvWlNCaGNuSmhlU0IwYnlCdGIyUnBabmt1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHN1TGk0cWZTQmJkbUZzZFdWelhTQlVhR1VnZG1Gc2RXVnpJSFJ2SUhKbGJXOTJaUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdZR0Z5Y21GNVlDNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ2RtRnlJR0Z5Y21GNUlEMGdXeWRoSnl3Z0oySW5MQ0FuWXljc0lDZGhKeXdnSjJJbkxDQW5ZeWRkTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1d2RXeHNLR0Z5Y21GNUxDQW5ZU2NzSUNkakp5azdYRzRnSUNBZ0lDb2dZMjl1YzI5c1pTNXNiMmNvWVhKeVlYa3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc25ZaWNzSUNkaUoxMWNiaUFnSUNBZ0tpOWNiaUFnSUNCMllYSWdjSFZzYkNBOUlHSmhjMlZTWlhOMEtIQjFiR3hCYkd3cE8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hwY3lCdFpYUm9iMlFnYVhNZ2JHbHJaU0JnWHk1d2RXeHNZQ0JsZUdObGNIUWdkR2hoZENCcGRDQmhZMk5sY0hSeklHRnVJR0Z5Y21GNUlHOW1JSFpoYkhWbGN5QjBieUJ5WlcxdmRtVXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXFLazV2ZEdVNktpb2dWVzVzYVd0bElHQmZMbVJwWm1abGNtVnVZMlZnTENCMGFHbHpJRzFsZEdodlpDQnRkWFJoZEdWeklHQmhjbkpoZVdBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTkM0d0xqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dRWEp5WVhsY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0JoY25KaGVTQlVhR1VnWVhKeVlYa2dkRzhnYlc5a2FXWjVMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlIWmhiSFZsY3lCVWFHVWdkbUZzZFdWeklIUnZJSEpsYlc5MlpTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ1lHRnljbUY1WUM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlHRnljbUY1SUQwZ1d5ZGhKeXdnSjJJbkxDQW5ZeWNzSUNkaEp5d2dKMkluTENBbll5ZGRPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTV3ZFd4c1FXeHNLR0Z5Y21GNUxDQmJKMkVuTENBbll5ZGRLVHRjYmlBZ0lDQWdLaUJqYjI1emIyeGxMbXh2WnloaGNuSmhlU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXeWRpSnl3Z0oySW5YVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlIQjFiR3hCYkd3b1lYSnlZWGtzSUhaaGJIVmxjeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJQ2hoY25KaGVTQW1KaUJoY25KaGVTNXNaVzVuZEdnZ0ppWWdkbUZzZFdWeklDWW1JSFpoYkhWbGN5NXNaVzVuZEdncFhHNGdJQ0FnSUNBZ0lEOGdZbUZ6WlZCMWJHeEJiR3dvWVhKeVlYa3NJSFpoYkhWbGN5bGNiaUFnSUNBZ0lDQWdPaUJoY25KaGVUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR2x6SUcxbGRHaHZaQ0JwY3lCc2FXdGxJR0JmTG5CMWJHeEJiR3hnSUdWNFkyVndkQ0IwYUdGMElHbDBJR0ZqWTJWd2RITWdZR2wwWlhKaGRHVmxZQ0IzYUdsamFDQnBjMXh1SUNBZ0lDQXFJR2x1ZG05clpXUWdabTl5SUdWaFkyZ2daV3hsYldWdWRDQnZaaUJnWVhKeVlYbGdJR0Z1WkNCZ2RtRnNkV1Z6WUNCMGJ5Qm5aVzVsY21GMFpTQjBhR1VnWTNKcGRHVnlhVzl1WEc0Z0lDQWdJQ29nWW5rZ2QyaHBZMmdnZEdobGVTZHlaU0JqYjIxd1lYSmxaQzRnVkdobElHbDBaWEpoZEdWbElHbHpJR2x1ZG05clpXUWdkMmwwYUNCdmJtVWdZWEpuZFcxbGJuUTZJQ2gyWVd4MVpTa3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXFLazV2ZEdVNktpb2dWVzVzYVd0bElHQmZMbVJwWm1abGNtVnVZMlZDZVdBc0lIUm9hWE1nYldWMGFHOWtJRzExZEdGMFpYTWdZR0Z5Y21GNVlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBMExqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JCY25KaGVWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUdGeWNtRjVJRlJvWlNCaGNuSmhlU0IwYnlCdGIyUnBabmt1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdkbUZzZFdWeklGUm9aU0IyWVd4MVpYTWdkRzhnY21WdGIzWmxMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJRnRwZEdWeVlYUmxaVDFmTG1sa1pXNTBhWFI1WFNCVWFHVWdhWFJsY21GMFpXVWdhVzUyYjJ0bFpDQndaWElnWld4bGJXVnVkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdZR0Z5Y21GNVlDNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ2RtRnlJR0Z5Y21GNUlEMGdXM3NnSjNnbk9pQXhJSDBzSUhzZ0ozZ25PaUF5SUgwc0lIc2dKM2duT2lBeklIMHNJSHNnSjNnbk9pQXhJSDFkTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1d2RXeHNRV3hzUW5rb1lYSnlZWGtzSUZ0N0lDZDRKem9nTVNCOUxDQjdJQ2Q0SnpvZ015QjlYU3dnSjNnbktUdGNiaUFnSUNBZ0tpQmpiMjV6YjJ4bExteHZaeWhoY25KaGVTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1czc2dKM2duT2lBeUlIMWRYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2NIVnNiRUZzYkVKNUtHRnljbUY1TENCMllXeDFaWE1zSUdsMFpYSmhkR1ZsS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnS0dGeWNtRjVJQ1ltSUdGeWNtRjVMbXhsYm1kMGFDQW1KaUIyWVd4MVpYTWdKaVlnZG1Gc2RXVnpMbXhsYm1kMGFDbGNiaUFnSUNBZ0lDQWdQeUJpWVhObFVIVnNiRUZzYkNoaGNuSmhlU3dnZG1Gc2RXVnpMQ0JuWlhSSmRHVnlZWFJsWlNocGRHVnlZWFJsWlN3Z01pa3BYRzRnSUNBZ0lDQWdJRG9nWVhKeVlYazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hwY3lCdFpYUm9iMlFnYVhNZ2JHbHJaU0JnWHk1d2RXeHNRV3hzWUNCbGVHTmxjSFFnZEdoaGRDQnBkQ0JoWTJObGNIUnpJR0JqYjIxd1lYSmhkRzl5WUNCM2FHbGphRnh1SUNBZ0lDQXFJR2x6SUdsdWRtOXJaV1FnZEc4Z1kyOXRjR0Z5WlNCbGJHVnRaVzUwY3lCdlppQmdZWEp5WVhsZ0lIUnZJR0IyWVd4MVpYTmdMaUJVYUdVZ1kyOXRjR0Z5WVhSdmNpQnBjMXh1SUNBZ0lDQXFJR2x1ZG05clpXUWdkMmwwYUNCMGQyOGdZWEpuZFcxbGJuUnpPaUFvWVhKeVZtRnNMQ0J2ZEdoV1lXd3BMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dLaXBPYjNSbE9pb3FJRlZ1YkdsclpTQmdYeTVrYVdabVpYSmxibU5sVjJsMGFHQXNJSFJvYVhNZ2JXVjBhRzlrSUcxMWRHRjBaWE1nWUdGeWNtRjVZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQTBMall1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCQmNuSmhlVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlHRnljbUY1SUZSb1pTQmhjbkpoZVNCMGJ5QnRiMlJwWm5rdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnZG1Gc2RXVnpJRlJvWlNCMllXeDFaWE1nZEc4Z2NtVnRiM1psTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUZ0amIyMXdZWEpoZEc5eVhTQlVhR1VnWTI5dGNHRnlZWFJ2Y2lCcGJuWnZhMlZrSUhCbGNpQmxiR1Z0Wlc1MExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdEJjbkpoZVgwZ1VtVjBkWEp1Y3lCZ1lYSnlZWGxnTGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ1lYSnlZWGtnUFNCYmV5QW5lQ2M2SURFc0lDZDVKem9nTWlCOUxDQjdJQ2Q0SnpvZ015d2dKM2tuT2lBMElIMHNJSHNnSjNnbk9pQTFMQ0FuZVNjNklEWWdmVjA3WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5CMWJHeEJiR3hYYVhSb0tHRnljbUY1TENCYmV5QW5lQ2M2SURNc0lDZDVKem9nTkNCOVhTd2dYeTVwYzBWeGRXRnNLVHRjYmlBZ0lDQWdLaUJqYjI1emIyeGxMbXh2WnloaGNuSmhlU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXM3NnSjNnbk9pQXhMQ0FuZVNjNklESWdmU3dnZXlBbmVDYzZJRFVzSUNkNUp6b2dOaUI5WFZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJSEIxYkd4QmJHeFhhWFJvS0dGeWNtRjVMQ0IyWVd4MVpYTXNJR052YlhCaGNtRjBiM0lwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUFvWVhKeVlYa2dKaVlnWVhKeVlYa3ViR1Z1WjNSb0lDWW1JSFpoYkhWbGN5QW1KaUIyWVd4MVpYTXViR1Z1WjNSb0tWeHVJQ0FnSUNBZ0lDQS9JR0poYzJWUWRXeHNRV3hzS0dGeWNtRjVMQ0IyWVd4MVpYTXNJSFZ1WkdWbWFXNWxaQ3dnWTI5dGNHRnlZWFJ2Y2lsY2JpQWdJQ0FnSUNBZ09pQmhjbkpoZVR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCU1pXMXZkbVZ6SUdWc1pXMWxiblJ6SUdaeWIyMGdZR0Z5Y21GNVlDQmpiM0p5WlhOd2IyNWthVzVuSUhSdklHQnBibVJsZUdWellDQmhibVFnY21WMGRYSnVjeUJoYmx4dUlDQWdJQ0FxSUdGeWNtRjVJRzltSUhKbGJXOTJaV1FnWld4bGJXVnVkSE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUFxS2s1dmRHVTZLaW9nVlc1c2FXdGxJR0JmTG1GMFlDd2dkR2hwY3lCdFpYUm9iMlFnYlhWMFlYUmxjeUJnWVhKeVlYbGdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElETXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUVGeWNtRjVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1lYSnlZWGtnVkdobElHRnljbUY1SUhSdklHMXZaR2xtZVM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXk0dUxpaHVkVzFpWlhKOGJuVnRZbVZ5VzEwcGZTQmJhVzVrWlhobGMxMGdWR2hsSUdsdVpHVjRaWE1nYjJZZ1pXeGxiV1Z1ZEhNZ2RHOGdjbVZ0YjNabExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdEJjbkpoZVgwZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUdGeWNtRjVJRzltSUhKbGJXOTJaV1FnWld4bGJXVnVkSE11WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSFpoY2lCaGNuSmhlU0E5SUZzbllTY3NJQ2RpSnl3Z0oyTW5MQ0FuWkNkZE8xeHVJQ0FnSUNBcUlIWmhjaUJ3ZFd4c1pXUWdQU0JmTG5CMWJHeEJkQ2hoY25KaGVTd2dXekVzSUROZEtUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlHTnZibk52YkdVdWJHOW5LR0Z5Y21GNUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYkoyRW5MQ0FuWXlkZFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCamIyNXpiMnhsTG14dlp5aHdkV3hzWldRcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzbllpY3NJQ2RrSjExY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IyWVhJZ2NIVnNiRUYwSUQwZ1pteGhkRkpsYzNRb1puVnVZM1JwYjI0b1lYSnlZWGtzSUdsdVpHVjRaWE1wSUh0Y2JpQWdJQ0FnSUhaaGNpQnNaVzVuZEdnZ1BTQmhjbkpoZVNBOVBTQnVkV3hzSUQ4Z01DQTZJR0Z5Y21GNUxteGxibWQwYUN4Y2JpQWdJQ0FnSUNBZ0lDQnlaWE4xYkhRZ1BTQmlZWE5sUVhRb1lYSnlZWGtzSUdsdVpHVjRaWE1wTzF4dVhHNGdJQ0FnSUNCaVlYTmxVSFZzYkVGMEtHRnljbUY1TENCaGNuSmhlVTFoY0NocGJtUmxlR1Z6TENCbWRXNWpkR2x2YmlocGJtUmxlQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYVhOSmJtUmxlQ2hwYm1SbGVDd2diR1Z1WjNSb0tTQS9JQ3RwYm1SbGVDQTZJR2x1WkdWNE8xeHVJQ0FnSUNBZ2ZTa3VjMjl5ZENoamIyMXdZWEpsUVhOalpXNWthVzVuS1NrN1hHNWNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCU1pXMXZkbVZ6SUdGc2JDQmxiR1Z0Wlc1MGN5Qm1jbTl0SUdCaGNuSmhlV0FnZEdoaGRDQmdjSEpsWkdsallYUmxZQ0J5WlhSMWNtNXpJSFJ5ZFhSb2VTQm1iM0pjYmlBZ0lDQWdLaUJoYm1RZ2NtVjBkWEp1Y3lCaGJpQmhjbkpoZVNCdlppQjBhR1VnY21WdGIzWmxaQ0JsYkdWdFpXNTBjeTRnVkdobElIQnlaV1JwWTJGMFpTQnBjeUJwYm5admEyVmtYRzRnSUNBZ0lDb2dkMmwwYUNCMGFISmxaU0JoY21kMWJXVnVkSE02SUNoMllXeDFaU3dnYVc1a1pYZ3NJR0Z5Y21GNUtTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDb3FUbTkwWlRvcUtpQlZibXhwYTJVZ1lGOHVabWxzZEdWeVlDd2dkR2hwY3lCdFpYUm9iMlFnYlhWMFlYUmxjeUJnWVhKeVlYbGdMaUJWYzJVZ1lGOHVjSFZzYkdCY2JpQWdJQ0FnS2lCMGJ5QndkV3hzSUdWc1pXMWxiblJ6SUdaeWIyMGdZVzRnWVhKeVlYa2dZbmtnZG1Gc2RXVXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01pNHdMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnUVhKeVlYbGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCaGNuSmhlU0JVYUdVZ1lYSnlZWGtnZEc4Z2JXOWthV1o1TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUZ0d2NtVmthV05oZEdVOVh5NXBaR1Z1ZEdsMGVWMGdWR2hsSUdaMWJtTjBhVzl1SUdsdWRtOXJaV1FnY0dWeUlHbDBaWEpoZEdsdmJpNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCaGNuSmhlU0J2WmlCeVpXMXZkbVZrSUdWc1pXMWxiblJ6TGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ1lYSnlZWGtnUFNCYk1Td2dNaXdnTXl3Z05GMDdYRzRnSUNBZ0lDb2dkbUZ5SUdWMlpXNXpJRDBnWHk1eVpXMXZkbVVvWVhKeVlYa3NJR1oxYm1OMGFXOXVLRzRwSUh0Y2JpQWdJQ0FnS2lBZ0lISmxkSFZ5YmlCdUlDVWdNaUE5UFNBd08xeHVJQ0FnSUNBcUlIMHBPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dZMjl1YzI5c1pTNXNiMmNvWVhKeVlYa3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc3hMQ0F6WFZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWTI5dWMyOXNaUzVzYjJjb1pYWmxibk1wTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnN5TENBMFhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUhKbGJXOTJaU2hoY25KaGVTd2djSEpsWkdsallYUmxLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ1cxMDdYRzRnSUNBZ0lDQnBaaUFvSVNoaGNuSmhlU0FtSmlCaGNuSmhlUzVzWlc1bmRHZ3BLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQjJZWElnYVc1a1pYZ2dQU0F0TVN4Y2JpQWdJQ0FnSUNBZ0lDQnBibVJsZUdWeklEMGdXMTBzWEc0Z0lDQWdJQ0FnSUNBZ2JHVnVaM1JvSUQwZ1lYSnlZWGt1YkdWdVozUm9PMXh1WEc0Z0lDQWdJQ0J3Y21Wa2FXTmhkR1VnUFNCblpYUkpkR1Z5WVhSbFpTaHdjbVZrYVdOaGRHVXNJRE1wTzF4dUlDQWdJQ0FnZDJocGJHVWdLQ3NyYVc1a1pYZ2dQQ0JzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnZG1GeUlIWmhiSFZsSUQwZ1lYSnlZWGxiYVc1a1pYaGRPMXh1SUNBZ0lDQWdJQ0JwWmlBb2NISmxaR2xqWVhSbEtIWmhiSFZsTENCcGJtUmxlQ3dnWVhKeVlYa3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVnpkV3gwTG5CMWMyZ29kbUZzZFdVcE8xeHVJQ0FnSUNBZ0lDQWdJR2x1WkdWNFpYTXVjSFZ6YUNocGJtUmxlQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdKaGMyVlFkV3hzUVhRb1lYSnlZWGtzSUdsdVpHVjRaWE1wTzF4dUlDQWdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlNaWFpsY25ObGN5QmdZWEp5WVhsZ0lITnZJSFJvWVhRZ2RHaGxJR1pwY25OMElHVnNaVzFsYm5RZ1ltVmpiMjFsY3lCMGFHVWdiR0Z6ZEN3Z2RHaGxJSE5sWTI5dVpGeHVJQ0FnSUNBcUlHVnNaVzFsYm5RZ1ltVmpiMjFsY3lCMGFHVWdjMlZqYjI1a0lIUnZJR3hoYzNRc0lHRnVaQ0J6YnlCdmJpNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDb3FUbTkwWlRvcUtpQlVhR2x6SUcxbGRHaHZaQ0J0ZFhSaGRHVnpJR0JoY25KaGVXQWdZVzVrSUdseklHSmhjMlZrSUc5dVhHNGdJQ0FnSUNvZ1cyQkJjbkpoZVNOeVpYWmxjbk5sWUYwb2FIUjBjSE02THk5dFpHNHVhVzh2UVhKeVlYa3ZjbVYyWlhKelpTa3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ05DNHdMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnUVhKeVlYbGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCaGNuSmhlU0JVYUdVZ1lYSnlZWGtnZEc4Z2JXOWthV1o1TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0QmNuSmhlWDBnVW1WMGRYSnVjeUJnWVhKeVlYbGdMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQjJZWElnWVhKeVlYa2dQU0JiTVN3Z01pd2dNMTA3WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5KbGRtVnljMlVvWVhKeVlYa3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc3pMQ0F5TENBeFhWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1kyOXVjMjlzWlM1c2IyY29ZWEp5WVhrcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzekxDQXlMQ0F4WFZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJSEpsZG1WeWMyVW9ZWEp5WVhrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCaGNuSmhlU0E5UFNCdWRXeHNJRDhnWVhKeVlYa2dPaUJ1WVhScGRtVlNaWFpsY25ObExtTmhiR3dvWVhKeVlYa3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU55WldGMFpYTWdZU0J6YkdsalpTQnZaaUJnWVhKeVlYbGdJR1p5YjIwZ1lITjBZWEowWUNCMWNDQjBieXdnWW5WMElHNXZkQ0JwYm1Oc2RXUnBibWNzSUdCbGJtUmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dLaXBPYjNSbE9pb3FJRlJvYVhNZ2JXVjBhRzlrSUdseklIVnpaV1FnYVc1emRHVmhaQ0J2Wmx4dUlDQWdJQ0FxSUZ0Z1FYSnlZWGtqYzJ4cFkyVmdYU2hvZEhSd2N6b3ZMMjFrYmk1cGJ5OUJjbkpoZVM5emJHbGpaU2tnZEc4Z1pXNXpkWEpsSUdSbGJuTmxJR0Z5Y21GNWN5QmhjbVZjYmlBZ0lDQWdLaUJ5WlhSMWNtNWxaQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXpMakF1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCQmNuSmhlVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlHRnljbUY1SUZSb1pTQmhjbkpoZVNCMGJ5QnpiR2xqWlM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzNOMFlYSjBQVEJkSUZSb1pTQnpkR0Z5ZENCd2IzTnBkR2x2Ymk1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzJWdVpEMWhjbkpoZVM1c1pXNW5kR2hkSUZSb1pTQmxibVFnY0c5emFYUnBiMjR1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmU0JTWlhSMWNtNXpJSFJvWlNCemJHbGpaU0J2WmlCZ1lYSnlZWGxnTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJSE5zYVdObEtHRnljbUY1TENCemRHRnlkQ3dnWlc1a0tTQjdYRzRnSUNBZ0lDQjJZWElnYkdWdVozUm9JRDBnWVhKeVlYa2dQVDBnYm5Wc2JDQS9JREFnT2lCaGNuSmhlUzVzWlc1bmRHZzdYRzRnSUNBZ0lDQnBaaUFvSVd4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVzEwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9aVzVrSUNZbUlIUjVjR1Z2WmlCbGJtUWdJVDBnSjI1MWJXSmxjaWNnSmlZZ2FYTkpkR1Z5WVhSbFpVTmhiR3dvWVhKeVlYa3NJSE4wWVhKMExDQmxibVFwS1NCN1hHNGdJQ0FnSUNBZ0lITjBZWEowSUQwZ01EdGNiaUFnSUNBZ0lDQWdaVzVrSUQwZ2JHVnVaM1JvTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJSE4wWVhKMElEMGdjM1JoY25RZ1BUMGdiblZzYkNBL0lEQWdPaUIwYjBsdWRHVm5aWElvYzNSaGNuUXBPMXh1SUNBZ0lDQWdJQ0JsYm1RZ1BTQmxibVFnUFQwOUlIVnVaR1ZtYVc1bFpDQS9JR3hsYm1kMGFDQTZJSFJ2U1c1MFpXZGxjaWhsYm1RcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUdKaGMyVlRiR2xqWlNoaGNuSmhlU3dnYzNSaGNuUXNJR1Z1WkNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZYTmxjeUJoSUdKcGJtRnllU0J6WldGeVkyZ2dkRzhnWkdWMFpYSnRhVzVsSUhSb1pTQnNiM2RsYzNRZ2FXNWtaWGdnWVhRZ2QyaHBZMmdnWUhaaGJIVmxZRnh1SUNBZ0lDQXFJSE5vYjNWc1pDQmlaU0JwYm5ObGNuUmxaQ0JwYm5SdklHQmhjbkpoZVdBZ2FXNGdiM0prWlhJZ2RHOGdiV0ZwYm5SaGFXNGdhWFJ6SUhOdmNuUWdiM0prWlhJdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTUM0eExqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dRWEp5WVhsY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0JoY25KaGVTQlVhR1VnYzI5eWRHVmtJR0Z5Y21GNUlIUnZJR2x1YzNCbFkzUXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0IyWVd4MVpTQlVhR1VnZG1Gc2RXVWdkRzhnWlhaaGJIVmhkR1V1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTI1MWJXSmxjbjBnVW1WMGRYSnVjeUIwYUdVZ2FXNWtaWGdnWVhRZ2QyaHBZMmdnWUhaaGJIVmxZQ0J6YUc5MWJHUWdZbVVnYVc1elpYSjBaV1JjYmlBZ0lDQWdLaUFnYVc1MGJ5QmdZWEp5WVhsZ0xseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuTnZjblJsWkVsdVpHVjRLRnN6TUN3Z05UQmRMQ0EwTUNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnTVZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJSE52Y25SbFpFbHVaR1Y0S0dGeWNtRjVMQ0IyWVd4MVpTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHSmhjMlZUYjNKMFpXUkpibVJsZUNoaGNuSmhlU3dnZG1Gc2RXVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvYVhNZ2JXVjBhRzlrSUdseklHeHBhMlVnWUY4dWMyOXlkR1ZrU1c1a1pYaGdJR1Y0WTJWd2RDQjBhR0YwSUdsMElHRmpZMlZ3ZEhNZ1lHbDBaWEpoZEdWbFlGeHVJQ0FnSUNBcUlIZG9hV05vSUdseklHbHVkbTlyWldRZ1ptOXlJR0IyWVd4MVpXQWdZVzVrSUdWaFkyZ2daV3hsYldWdWRDQnZaaUJnWVhKeVlYbGdJSFJ2SUdOdmJYQjFkR1VnZEdobGFYSmNiaUFnSUNBZ0tpQnpiM0owSUhKaGJtdHBibWN1SUZSb1pTQnBkR1Z5WVhSbFpTQnBjeUJwYm5admEyVmtJSGRwZEdnZ2IyNWxJR0Z5WjNWdFpXNTBPaUFvZG1Gc2RXVXBMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUVGeWNtRjVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1lYSnlZWGtnVkdobElITnZjblJsWkNCaGNuSmhlU0IwYnlCcGJuTndaV04wTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ2RtRnNkV1VnVkdobElIWmhiSFZsSUhSdklHVjJZV3gxWVhSbExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlGdHBkR1Z5WVhSbFpUMWZMbWxrWlc1MGFYUjVYU0JVYUdVZ2FYUmxjbUYwWldVZ2FXNTJiMnRsWkNCd1pYSWdaV3hsYldWdWRDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdiblZ0WW1WeWZTQlNaWFIxY201eklIUm9aU0JwYm1SbGVDQmhkQ0IzYUdsamFDQmdkbUZzZFdWZ0lITm9iM1ZzWkNCaVpTQnBibk5sY25SbFpGeHVJQ0FnSUNBcUlDQnBiblJ2SUdCaGNuSmhlV0F1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSFpoY2lCdlltcGxZM1J6SUQwZ1czc2dKM2duT2lBMElIMHNJSHNnSjNnbk9pQTFJSDFkTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1emIzSjBaV1JKYm1SbGVFSjVLRzlpYW1WamRITXNJSHNnSjNnbk9pQTBJSDBzSUdaMWJtTjBhVzl1S0c4cElIc2djbVYwZFhKdUlHOHVlRHNnZlNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnTUZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z1ZHaGxJR0JmTG5CeWIzQmxjblI1WUNCcGRHVnlZWFJsWlNCemFHOXlkR2hoYm1RdVhHNGdJQ0FnSUNvZ1h5NXpiM0owWldSSmJtUmxlRUo1S0c5aWFtVmpkSE1zSUhzZ0ozZ25PaUEwSUgwc0lDZDRKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdNRnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlITnZjblJsWkVsdVpHVjRRbmtvWVhKeVlYa3NJSFpoYkhWbExDQnBkR1Z5WVhSbFpTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHSmhjMlZUYjNKMFpXUkpibVJsZUVKNUtHRnljbUY1TENCMllXeDFaU3dnWjJWMFNYUmxjbUYwWldVb2FYUmxjbUYwWldVc0lESXBLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdseklHMWxkR2h2WkNCcGN5QnNhV3RsSUdCZkxtbHVaR1Y0VDJaZ0lHVjRZMlZ3ZENCMGFHRjBJR2wwSUhCbGNtWnZjbTF6SUdFZ1ltbHVZWEo1WEc0Z0lDQWdJQ29nYzJWaGNtTm9JRzl1SUdFZ2MyOXlkR1ZrSUdCaGNuSmhlV0F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR3TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1FYSnlZWGxjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZTQmhjbkpoZVNCVWFHVWdZWEp5WVhrZ2RHOGdhVzV6Y0dWamRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSFpoYkhWbElGUm9aU0IyWVd4MVpTQjBieUJ6WldGeVkyZ2dabTl5TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0dWRXMWlaWEo5SUZKbGRIVnlibk1nZEdobElHbHVaR1Y0SUc5bUlIUm9aU0J0WVhSamFHVmtJSFpoYkhWbExDQmxiSE5sSUdBdE1XQXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVjMjl5ZEdWa1NXNWtaWGhQWmloYk5Dd2dOU3dnTlN3Z05Td2dObDBzSURVcE8xeHVJQ0FnSUNBcUlDOHZJRDArSURGY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJ6YjNKMFpXUkpibVJsZUU5bUtHRnljbUY1TENCMllXeDFaU2tnZTF4dUlDQWdJQ0FnZG1GeUlHeGxibWQwYUNBOUlHRnljbUY1SUQwOUlHNTFiR3dnUHlBd0lEb2dZWEp5WVhrdWJHVnVaM1JvTzF4dUlDQWdJQ0FnYVdZZ0tHeGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnYVc1a1pYZ2dQU0JpWVhObFUyOXlkR1ZrU1c1a1pYZ29ZWEp5WVhrc0lIWmhiSFZsS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLR2x1WkdWNElEd2diR1Z1WjNSb0lDWW1JR1Z4S0dGeWNtRjVXMmx1WkdWNFhTd2dkbUZzZFdVcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR2x1WkdWNE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z0xURTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hwY3lCdFpYUm9iMlFnYVhNZ2JHbHJaU0JnWHk1emIzSjBaV1JKYm1SbGVHQWdaWGhqWlhCMElIUm9ZWFFnYVhRZ2NtVjBkWEp1Y3lCMGFHVWdhR2xuYUdWemRGeHVJQ0FnSUNBcUlHbHVaR1Y0SUdGMElIZG9hV05vSUdCMllXeDFaV0FnYzJodmRXeGtJR0psSUdsdWMyVnlkR1ZrSUdsdWRHOGdZR0Z5Y21GNVlDQnBiaUJ2Y21SbGNpQjBiMXh1SUNBZ0lDQXFJRzFoYVc1MFlXbHVJR2wwY3lCemIzSjBJRzl5WkdWeUxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURNdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRUZ5Y21GNVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnWVhKeVlYa2dWR2hsSUhOdmNuUmxaQ0JoY25KaGVTQjBieUJwYm5Od1pXTjBMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdLbjBnZG1Gc2RXVWdWR2hsSUhaaGJIVmxJSFJ2SUdWMllXeDFZWFJsTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0dWRXMWlaWEo5SUZKbGRIVnlibk1nZEdobElHbHVaR1Y0SUdGMElIZG9hV05vSUdCMllXeDFaV0FnYzJodmRXeGtJR0psSUdsdWMyVnlkR1ZrWEc0Z0lDQWdJQ29nSUdsdWRHOGdZR0Z5Y21GNVlDNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXpiM0owWldSTVlYTjBTVzVrWlhnb1d6UXNJRFVzSURVc0lEVXNJRFpkTENBMUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBMFhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYzI5eWRHVmtUR0Z6ZEVsdVpHVjRLR0Z5Y21GNUxDQjJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdKaGMyVlRiM0owWldSSmJtUmxlQ2hoY25KaGVTd2dkbUZzZFdVc0lIUnlkV1VwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb2FYTWdiV1YwYUc5a0lHbHpJR3hwYTJVZ1lGOHVjMjl5ZEdWa1RHRnpkRWx1WkdWNFlDQmxlR05sY0hRZ2RHaGhkQ0JwZENCaFkyTmxjSFJ6SUdCcGRHVnlZWFJsWldCY2JpQWdJQ0FnS2lCM2FHbGphQ0JwY3lCcGJuWnZhMlZrSUdadmNpQmdkbUZzZFdWZ0lHRnVaQ0JsWVdOb0lHVnNaVzFsYm5RZ2IyWWdZR0Z5Y21GNVlDQjBieUJqYjIxd2RYUmxJSFJvWldseVhHNGdJQ0FnSUNvZ2MyOXlkQ0J5WVc1cmFXNW5MaUJVYUdVZ2FYUmxjbUYwWldVZ2FYTWdhVzUyYjJ0bFpDQjNhWFJvSUc5dVpTQmhjbWQxYldWdWREb2dLSFpoYkhWbEtTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBMExqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JCY25KaGVWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUdGeWNtRjVJRlJvWlNCemIzSjBaV1FnWVhKeVlYa2dkRzhnYVc1emNHVmpkQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCbGRtRnNkV0YwWlM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCYmFYUmxjbUYwWldVOVh5NXBaR1Z1ZEdsMGVWMGdWR2hsSUdsMFpYSmhkR1ZsSUdsdWRtOXJaV1FnY0dWeUlHVnNaVzFsYm5RdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UyNTFiV0psY24wZ1VtVjBkWEp1Y3lCMGFHVWdhVzVrWlhnZ1lYUWdkMmhwWTJnZ1lIWmhiSFZsWUNCemFHOTFiR1FnWW1VZ2FXNXpaWEowWldSY2JpQWdJQ0FnS2lBZ2FXNTBieUJnWVhKeVlYbGdMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQjJZWElnYjJKcVpXTjBjeUE5SUZ0N0lDZDRKem9nTkNCOUxDQjdJQ2Q0SnpvZ05TQjlYVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YzI5eWRHVmtUR0Z6ZEVsdVpHVjRRbmtvYjJKcVpXTjBjeXdnZXlBbmVDYzZJRFFnZlN3Z1puVnVZM1JwYjI0b2J5a2dleUJ5WlhSMWNtNGdieTU0T3lCOUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBeFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBdkx5QlVhR1VnWUY4dWNISnZjR1Z5ZEhsZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMbk52Y25SbFpFeGhjM1JKYm1SbGVFSjVLRzlpYW1WamRITXNJSHNnSjNnbk9pQTBJSDBzSUNkNEp5azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z01WeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUhOdmNuUmxaRXhoYzNSSmJtUmxlRUo1S0dGeWNtRjVMQ0IyWVd4MVpTd2dhWFJsY21GMFpXVXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmlZWE5sVTI5eWRHVmtTVzVrWlhoQ2VTaGhjbkpoZVN3Z2RtRnNkV1VzSUdkbGRFbDBaWEpoZEdWbEtHbDBaWEpoZEdWbExDQXlLU3dnZEhKMVpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hwY3lCdFpYUm9iMlFnYVhNZ2JHbHJaU0JnWHk1c1lYTjBTVzVrWlhoUFptQWdaWGhqWlhCMElIUm9ZWFFnYVhRZ2NHVnlabTl5YlhNZ1lTQmlhVzVoY25sY2JpQWdJQ0FnS2lCelpXRnlZMmdnYjI0Z1lTQnpiM0owWldRZ1lHRnljbUY1WUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0EwTGpBdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQkJjbkpoZVZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDlJR0Z5Y21GNUlGUm9aU0JoY25KaGVTQjBieUJwYm5Od1pXTjBMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdLbjBnZG1Gc2RXVWdWR2hsSUhaaGJIVmxJSFJ2SUhObFlYSmphQ0JtYjNJdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UyNTFiV0psY24wZ1VtVjBkWEp1Y3lCMGFHVWdhVzVrWlhnZ2IyWWdkR2hsSUcxaGRHTm9aV1FnZG1Gc2RXVXNJR1ZzYzJVZ1lDMHhZQzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTV6YjNKMFpXUk1ZWE4wU1c1a1pYaFBaaWhiTkN3Z05Td2dOU3dnTlN3Z05sMHNJRFVwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRE5jYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQnpiM0owWldSTVlYTjBTVzVrWlhoUFppaGhjbkpoZVN3Z2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUhaaGNpQnNaVzVuZEdnZ1BTQmhjbkpoZVNBOVBTQnVkV3hzSUQ4Z01DQTZJR0Z5Y21GNUxteGxibWQwYUR0Y2JpQWdJQ0FnSUdsbUlDaHNaVzVuZEdncElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUdsdVpHVjRJRDBnWW1GelpWTnZjblJsWkVsdVpHVjRLR0Z5Y21GNUxDQjJZV3gxWlN3Z2RISjFaU2tnTFNBeE8xeHVJQ0FnSUNBZ0lDQnBaaUFvWlhFb1lYSnlZWGxiYVc1a1pYaGRMQ0IyWVd4MVpTa3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYVc1a1pYZzdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQXRNVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdseklHMWxkR2h2WkNCcGN5QnNhV3RsSUdCZkxuVnVhWEZnSUdWNFkyVndkQ0IwYUdGMElHbDBKM01nWkdWemFXZHVaV1FnWVc1a0lHOXdkR2x0YVhwbFpGeHVJQ0FnSUNBcUlHWnZjaUJ6YjNKMFpXUWdZWEp5WVhsekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRUZ5Y21GNVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnWVhKeVlYa2dWR2hsSUdGeWNtRjVJSFJ2SUdsdWMzQmxZM1F1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2daSFZ3YkdsallYUmxJR1p5WldVZ1lYSnlZWGt1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YzI5eWRHVmtWVzVwY1NoYk1Td2dNU3dnTWwwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzeExDQXlYVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlITnZjblJsWkZWdWFYRW9ZWEp5WVhrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlBb1lYSnlZWGtnSmlZZ1lYSnlZWGt1YkdWdVozUm9LVnh1SUNBZ0lDQWdJQ0EvSUdKaGMyVlRiM0owWldSVmJtbHhLR0Z5Y21GNUtWeHVJQ0FnSUNBZ0lDQTZJRnRkTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb2FYTWdiV1YwYUc5a0lHbHpJR3hwYTJVZ1lGOHVkVzVwY1VKNVlDQmxlR05sY0hRZ2RHaGhkQ0JwZENkeklHUmxjMmxuYm1Wa0lHRnVaQ0J2Y0hScGJXbDZaV1JjYmlBZ0lDQWdLaUJtYjNJZ2MyOXlkR1ZrSUdGeWNtRjVjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQTBMakF1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCQmNuSmhlVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlHRnljbUY1SUZSb1pTQmhjbkpoZVNCMGJ5QnBibk53WldOMExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlGdHBkR1Z5WVhSbFpWMGdWR2hsSUdsMFpYSmhkR1ZsSUdsdWRtOXJaV1FnY0dWeUlHVnNaVzFsYm5RdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnWkhWd2JHbGpZWFJsSUdaeVpXVWdZWEp5WVhrdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWMyOXlkR1ZrVlc1cGNVSjVLRnN4TGpFc0lERXVNaXdnTWk0ekxDQXlMalJkTENCTllYUm9MbVpzYjI5eUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYk1TNHhMQ0F5TGpOZFhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYzI5eWRHVmtWVzVwY1VKNUtHRnljbUY1TENCcGRHVnlZWFJsWlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUNoaGNuSmhlU0FtSmlCaGNuSmhlUzVzWlc1bmRHZ3BYRzRnSUNBZ0lDQWdJRDhnWW1GelpWTnZjblJsWkZWdWFYRW9ZWEp5WVhrc0lHZGxkRWwwWlhKaGRHVmxLR2wwWlhKaGRHVmxMQ0F5S1NsY2JpQWdJQ0FnSUNBZ09pQmJYVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJIWlhSeklHRnNiQ0JpZFhRZ2RHaGxJR1pwY25OMElHVnNaVzFsYm5RZ2IyWWdZR0Z5Y21GNVlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBMExqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JCY25KaGVWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUdGeWNtRjVJRlJvWlNCaGNuSmhlU0IwYnlCeGRXVnllUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUhOc2FXTmxJRzltSUdCaGNuSmhlV0F1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1ZEdGcGJDaGJNU3dnTWl3Z00xMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc3lMQ0F6WFZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJSFJoYVd3b1lYSnlZWGtwSUh0Y2JpQWdJQ0FnSUhaaGNpQnNaVzVuZEdnZ1BTQmhjbkpoZVNBOVBTQnVkV3hzSUQ4Z01DQTZJR0Z5Y21GNUxteGxibWQwYUR0Y2JpQWdJQ0FnSUhKbGRIVnliaUJzWlc1bmRHZ2dQeUJpWVhObFUyeHBZMlVvWVhKeVlYa3NJREVzSUd4bGJtZDBhQ2tnT2lCYlhUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRWdjMnhwWTJVZ2IyWWdZR0Z5Y21GNVlDQjNhWFJvSUdCdVlDQmxiR1Z0Wlc1MGN5QjBZV3RsYmlCbWNtOXRJSFJvWlNCaVpXZHBibTVwYm1jdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTUM0eExqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dRWEp5WVhsY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0JoY25KaGVTQlVhR1VnWVhKeVlYa2dkRzhnY1hWbGNua3VYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdHVQVEZkSUZSb1pTQnVkVzFpWlhJZ2IyWWdaV3hsYldWdWRITWdkRzhnZEdGclpTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwdElIdFBZbXBsWTNSOUlGdG5kV0Z5WkYwZ1JXNWhZbXhsY3lCMWMyVWdZWE1nWVc0Z2FYUmxjbUYwWldVZ1ptOXlJRzFsZEdodlpITWdiR2xyWlNCZ1h5NXRZWEJnTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0QmNuSmhlWDBnVW1WMGRYSnVjeUIwYUdVZ2MyeHBZMlVnYjJZZ1lHRnljbUY1WUM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1MFlXdGxLRnN4TENBeUxDQXpYU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXekZkWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5SaGEyVW9XekVzSURJc0lETmRMQ0F5S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiTVN3Z01sMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVkR0ZyWlNoYk1Td2dNaXdnTTEwc0lEVXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc3hMQ0F5TENBelhWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NTBZV3RsS0ZzeExDQXlMQ0F6WFN3Z01DazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1cxMWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCMFlXdGxLR0Z5Y21GNUxDQnVMQ0JuZFdGeVpDa2dlMXh1SUNBZ0lDQWdhV1lnS0NFb1lYSnlZWGtnSmlZZ1lYSnlZWGt1YkdWdVozUm9LU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVzEwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCdUlEMGdLR2QxWVhKa0lIeDhJRzRnUFQwOUlIVnVaR1ZtYVc1bFpDa2dQeUF4SURvZ2RHOUpiblJsWjJWeUtHNHBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlHSmhjMlZUYkdsalpTaGhjbkpoZVN3Z01Dd2diaUE4SURBZ1B5QXdJRG9nYmlrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElITnNhV05sSUc5bUlHQmhjbkpoZVdBZ2QybDBhQ0JnYm1BZ1pXeGxiV1Z1ZEhNZ2RHRnJaVzRnWm5KdmJTQjBhR1VnWlc1a0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURNdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRUZ5Y21GNVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnWVhKeVlYa2dWR2hsSUdGeWNtRjVJSFJ2SUhGMVpYSjVMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmJiajB4WFNCVWFHVWdiblZ0WW1WeUlHOW1JR1ZzWlcxbGJuUnpJSFJ2SUhSaGEyVXVYRzRnSUNBZ0lDb2dRSEJoY21GdExTQjdUMkpxWldOMGZTQmJaM1ZoY21SZElFVnVZV0pzWlhNZ2RYTmxJR0Z6SUdGdUlHbDBaWEpoZEdWbElHWnZjaUJ0WlhSb2IyUnpJR3hwYTJVZ1lGOHViV0Z3WUM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1FYSnlZWGw5SUZKbGRIVnlibk1nZEdobElITnNhV05sSUc5bUlHQmhjbkpoZVdBdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWRHRnJaVkpwWjJoMEtGc3hMQ0F5TENBelhTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1d6TmRYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMblJoYTJWU2FXZG9kQ2hiTVN3Z01pd2dNMTBzSURJcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzeUxDQXpYVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTUwWVd0bFVtbG5hSFFvV3pFc0lESXNJRE5kTENBMUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYk1Td2dNaXdnTTExY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWRHRnJaVkpwWjJoMEtGc3hMQ0F5TENBelhTd2dNQ2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXMTFjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQjBZV3RsVW1sbmFIUW9ZWEp5WVhrc0lHNHNJR2QxWVhKa0tTQjdYRzRnSUNBZ0lDQjJZWElnYkdWdVozUm9JRDBnWVhKeVlYa2dQVDBnYm5Wc2JDQS9JREFnT2lCaGNuSmhlUzVzWlc1bmRHZzdYRzRnSUNBZ0lDQnBaaUFvSVd4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVzEwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCdUlEMGdLR2QxWVhKa0lIeDhJRzRnUFQwOUlIVnVaR1ZtYVc1bFpDa2dQeUF4SURvZ2RHOUpiblJsWjJWeUtHNHBPMXh1SUNBZ0lDQWdiaUE5SUd4bGJtZDBhQ0F0SUc0N1hHNGdJQ0FnSUNCeVpYUjFjbTRnWW1GelpWTnNhV05sS0dGeWNtRjVMQ0J1SUR3Z01DQS9JREFnT2lCdUxDQnNaVzVuZEdncE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnlaV0YwWlhNZ1lTQnpiR2xqWlNCdlppQmdZWEp5WVhsZ0lIZHBkR2dnWld4bGJXVnVkSE1nZEdGclpXNGdabkp2YlNCMGFHVWdaVzVrTGlCRmJHVnRaVzUwY3lCaGNtVmNiaUFnSUNBZ0tpQjBZV3RsYmlCMWJuUnBiQ0JnY0hKbFpHbGpZWFJsWUNCeVpYUjFjbTV6SUdaaGJITmxlUzRnVkdobElIQnlaV1JwWTJGMFpTQnBjeUJwYm5admEyVmtJSGRwZEdoY2JpQWdJQ0FnS2lCMGFISmxaU0JoY21kMWJXVnVkSE02SUNoMllXeDFaU3dnYVc1a1pYZ3NJR0Z5Y21GNUtTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBekxqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JCY25KaGVWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUdGeWNtRjVJRlJvWlNCaGNuSmhlU0IwYnlCeGRXVnllUzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JiY0hKbFpHbGpZWFJsUFY4dWFXUmxiblJwZEhsZElGUm9aU0JtZFc1amRHbHZiaUJwYm5admEyVmtJSEJsY2lCcGRHVnlZWFJwYjI0dVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQnpiR2xqWlNCdlppQmdZWEp5WVhsZ0xseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdkWE5sY25NZ1BTQmJYRzRnSUNBZ0lDb2dJQ0I3SUNkMWMyVnlKem9nSjJKaGNtNWxlU2NzSUNBbllXTjBhWFpsSnpvZ2RISjFaU0I5TEZ4dUlDQWdJQ0FxSUNBZ2V5QW5kWE5sY2ljNklDZG1jbVZrSnl3Z0lDQWdKMkZqZEdsMlpTYzZJR1poYkhObElIMHNYRzRnSUNBZ0lDb2dJQ0I3SUNkMWMyVnlKem9nSjNCbFltSnNaWE1uTENBbllXTjBhWFpsSnpvZ1ptRnNjMlVnZlZ4dUlDQWdJQ0FxSUYwN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuUmhhMlZTYVdkb2RGZG9hV3hsS0hWelpYSnpMQ0JtZFc1amRHbHZiaWh2S1NCN0lISmxkSFZ5YmlBaGJ5NWhZM1JwZG1VN0lIMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHOWlhbVZqZEhNZ1ptOXlJRnNuWm5KbFpDY3NJQ2R3WldKaWJHVnpKMTFjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQzh2SUZSb1pTQmdYeTV0WVhSamFHVnpZQ0JwZEdWeVlYUmxaU0J6YUc5eWRHaGhibVF1WEc0Z0lDQWdJQ29nWHk1MFlXdGxVbWxuYUhSWGFHbHNaU2gxYzJWeWN5d2dleUFuZFhObGNpYzZJQ2R3WldKaWJHVnpKeXdnSjJGamRHbDJaU2M2SUdaaGJITmxJSDBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRzlpYW1WamRITWdabTl5SUZzbmNHVmlZbXhsY3lkZFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBdkx5QlVhR1VnWUY4dWJXRjBZMmhsYzFCeWIzQmxjblI1WUNCcGRHVnlZWFJsWlNCemFHOXlkR2hoYm1RdVhHNGdJQ0FnSUNvZ1h5NTBZV3RsVW1sbmFIUlhhR2xzWlNoMWMyVnljeXdnV3lkaFkzUnBkbVVuTENCbVlXeHpaVjBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRzlpYW1WamRITWdabTl5SUZzblpuSmxaQ2NzSUNkd1pXSmliR1Z6SjExY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUM4dklGUm9aU0JnWHk1d2NtOXdaWEowZVdBZ2FYUmxjbUYwWldVZ2MyaHZjblJvWVc1a0xseHVJQ0FnSUNBcUlGOHVkR0ZyWlZKcFoyaDBWMmhwYkdVb2RYTmxjbk1zSUNkaFkzUnBkbVVuS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiWFZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJSFJoYTJWU2FXZG9kRmRvYVd4bEtHRnljbUY1TENCd2NtVmthV05oZEdVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlBb1lYSnlZWGtnSmlZZ1lYSnlZWGt1YkdWdVozUm9LVnh1SUNBZ0lDQWdJQ0EvSUdKaGMyVlhhR2xzWlNoaGNuSmhlU3dnWjJWMFNYUmxjbUYwWldVb2NISmxaR2xqWVhSbExDQXpLU3dnWm1Gc2MyVXNJSFJ5ZFdVcFhHNGdJQ0FnSUNBZ0lEb2dXMTA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTNKbFlYUmxjeUJoSUhOc2FXTmxJRzltSUdCaGNuSmhlV0FnZDJsMGFDQmxiR1Z0Wlc1MGN5QjBZV3RsYmlCbWNtOXRJSFJvWlNCaVpXZHBibTVwYm1jdUlFVnNaVzFsYm5SelhHNGdJQ0FnSUNvZ1lYSmxJSFJoYTJWdUlIVnVkR2xzSUdCd2NtVmthV05oZEdWZ0lISmxkSFZ5Ym5NZ1ptRnNjMlY1TGlCVWFHVWdjSEpsWkdsallYUmxJR2x6SUdsdWRtOXJaV1FnZDJsMGFGeHVJQ0FnSUNBcUlIUm9jbVZsSUdGeVozVnRaVzUwY3pvZ0tIWmhiSFZsTENCcGJtUmxlQ3dnWVhKeVlYa3BMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElETXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUVGeWNtRjVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1lYSnlZWGtnVkdobElHRnljbUY1SUhSdklIRjFaWEo1TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUZ0d2NtVmthV05oZEdVOVh5NXBaR1Z1ZEdsMGVWMGdWR2hsSUdaMWJtTjBhVzl1SUdsdWRtOXJaV1FnY0dWeUlHbDBaWEpoZEdsdmJpNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJSE5zYVdObElHOW1JR0JoY25KaGVXQXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlIWmhjaUIxYzJWeWN5QTlJRnRjYmlBZ0lDQWdLaUFnSUhzZ0ozVnpaWEluT2lBblltRnlibVY1Snl3Z0lDZGhZM1JwZG1Vbk9pQm1ZV3h6WlNCOUxGeHVJQ0FnSUNBcUlDQWdleUFuZFhObGNpYzZJQ2RtY21Wa0p5d2dJQ0FnSjJGamRHbDJaU2M2SUdaaGJITmxJSDBzWEc0Z0lDQWdJQ29nSUNCN0lDZDFjMlZ5SnpvZ0ozQmxZbUpzWlhNbkxDQW5ZV04wYVhabEp6b2dkSEoxWlNCOVhHNGdJQ0FnSUNvZ1hUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVkR0ZyWlZkb2FXeGxLSFZ6WlhKekxDQm1kVzVqZEdsdmJpaHZLU0I3SUhKbGRIVnliaUFoYnk1aFkzUnBkbVU3SUgwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUc5aWFtVmpkSE1nWm05eUlGc25ZbUZ5Ym1WNUp5d2dKMlp5WldRblhWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdWR2hsSUdCZkxtMWhkR05vWlhOZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMblJoYTJWWGFHbHNaU2gxYzJWeWN5d2dleUFuZFhObGNpYzZJQ2RpWVhKdVpYa25MQ0FuWVdOMGFYWmxKem9nWm1Gc2MyVWdmU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdiMkpxWldOMGN5Qm1iM0lnV3lkaVlYSnVaWGtuWFZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z1ZHaGxJR0JmTG0xaGRHTm9aWE5RY205d1pYSjBlV0FnYVhSbGNtRjBaV1VnYzJodmNuUm9ZVzVrTGx4dUlDQWdJQ0FxSUY4dWRHRnJaVmRvYVd4bEtIVnpaWEp6TENCYkoyRmpkR2wyWlNjc0lHWmhiSE5sWFNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnYjJKcVpXTjBjeUJtYjNJZ1d5ZGlZWEp1WlhrbkxDQW5abkpsWkNkZFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBdkx5QlVhR1VnWUY4dWNISnZjR1Z5ZEhsZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMblJoYTJWWGFHbHNaU2gxYzJWeWN5d2dKMkZqZEdsMlpTY3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGdGRYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2RHRnJaVmRvYVd4bEtHRnljbUY1TENCd2NtVmthV05oZEdVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlBb1lYSnlZWGtnSmlZZ1lYSnlZWGt1YkdWdVozUm9LVnh1SUNBZ0lDQWdJQ0EvSUdKaGMyVlhhR2xzWlNoaGNuSmhlU3dnWjJWMFNYUmxjbUYwWldVb2NISmxaR2xqWVhSbExDQXpLU2xjYmlBZ0lDQWdJQ0FnT2lCYlhUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRnVJR0Z5Y21GNUlHOW1JSFZ1YVhGMVpTQjJZV3gxWlhNc0lHbHVJRzl5WkdWeUxDQm1jbTl0SUdGc2JDQm5hWFpsYmlCaGNuSmhlWE1nZFhOcGJtZGNiaUFnSUNBZ0tpQmJZRk5oYldWV1lXeDFaVnBsY205Z1hTaG9kSFJ3T2k4dlpXTnRZUzFwYm5SbGNtNWhkR2x2Ym1Gc0xtOXlaeTlsWTIxaExUSTJNaTgzTGpBdkkzTmxZeTF6WVcxbGRtRnNkV1Y2WlhKdktWeHVJQ0FnSUNBcUlHWnZjaUJsY1hWaGJHbDBlU0JqYjIxd1lYSnBjMjl1Y3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F3TGpFdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQkJjbkpoZVZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3TGk0dVFYSnlZWGw5SUZ0aGNuSmhlWE5kSUZSb1pTQmhjbkpoZVhNZ2RHOGdhVzV6Y0dWamRDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCaGNuSmhlU0J2WmlCamIyMWlhVzVsWkNCMllXeDFaWE11WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1ZFc1cGIyNG9XekpkTENCYk1Td2dNbDBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnN5TENBeFhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUhaaGNpQjFibWx2YmlBOUlHSmhjMlZTWlhOMEtHWjFibU4wYVc5dUtHRnljbUY1Y3lrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdKaGMyVlZibWx4S0dKaGMyVkdiR0YwZEdWdUtHRnljbUY1Y3l3Z01Td2dhWE5CY25KaGVVeHBhMlZQWW1wbFkzUXNJSFJ5ZFdVcEtUdGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvYVhNZ2JXVjBhRzlrSUdseklHeHBhMlVnWUY4dWRXNXBiMjVnSUdWNFkyVndkQ0IwYUdGMElHbDBJR0ZqWTJWd2RITWdZR2wwWlhKaGRHVmxZQ0IzYUdsamFDQnBjMXh1SUNBZ0lDQXFJR2x1ZG05clpXUWdabTl5SUdWaFkyZ2daV3hsYldWdWRDQnZaaUJsWVdOb0lHQmhjbkpoZVhOZ0lIUnZJR2RsYm1WeVlYUmxJSFJvWlNCamNtbDBaWEpwYjI0Z1lubGNiaUFnSUNBZ0tpQjNhR2xqYUNCMWJtbHhkV1Z1WlhOeklHbHpJR052YlhCMWRHVmtMaUJTWlhOMWJIUWdkbUZzZFdWeklHRnlaU0JqYUc5elpXNGdabkp2YlNCMGFHVWdabWx5YzNSY2JpQWdJQ0FnS2lCaGNuSmhlU0JwYmlCM2FHbGphQ0IwYUdVZ2RtRnNkV1VnYjJOamRYSnpMaUJVYUdVZ2FYUmxjbUYwWldVZ2FYTWdhVzUyYjJ0bFpDQjNhWFJvSUc5dVpTQmhjbWQxYldWdWREcGNiaUFnSUNBZ0tpQW9kbUZzZFdVcExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRUZ5Y21GNVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzdUxpNUJjbkpoZVgwZ1cyRnljbUY1YzEwZ1ZHaGxJR0Z5Y21GNWN5QjBieUJwYm5Od1pXTjBMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJRnRwZEdWeVlYUmxaVDFmTG1sa1pXNTBhWFI1WFNCVWFHVWdhWFJsY21GMFpXVWdhVzUyYjJ0bFpDQndaWElnWld4bGJXVnVkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QmhjbkpoZVNCdlppQmpiMjFpYVc1bFpDQjJZV3gxWlhNdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWRXNXBiMjVDZVNoYk1pNHhYU3dnV3pFdU1pd2dNaTR6WFN3Z1RXRjBhQzVtYkc5dmNpazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1d6SXVNU3dnTVM0eVhWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdWR2hsSUdCZkxuQnliM0JsY25SNVlDQnBkR1Z5WVhSbFpTQnphRzl5ZEdoaGJtUXVYRzRnSUNBZ0lDb2dYeTUxYm1sdmJrSjVLRnQ3SUNkNEp6b2dNU0I5WFN3Z1czc2dKM2duT2lBeUlIMHNJSHNnSjNnbk9pQXhJSDFkTENBbmVDY3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGdDdJQ2Q0SnpvZ01TQjlMQ0I3SUNkNEp6b2dNaUI5WFZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFpoY2lCMWJtbHZia0o1SUQwZ1ltRnpaVkpsYzNRb1puVnVZM1JwYjI0b1lYSnlZWGx6S1NCN1hHNGdJQ0FnSUNCMllYSWdhWFJsY21GMFpXVWdQU0JzWVhOMEtHRnljbUY1Y3lrN1hHNGdJQ0FnSUNCcFppQW9hWE5CY25KaGVVeHBhMlZQWW1wbFkzUW9hWFJsY21GMFpXVXBLU0I3WEc0Z0lDQWdJQ0FnSUdsMFpYSmhkR1ZsSUQwZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUdKaGMyVlZibWx4S0dKaGMyVkdiR0YwZEdWdUtHRnljbUY1Y3l3Z01Td2dhWE5CY25KaGVVeHBhMlZQWW1wbFkzUXNJSFJ5ZFdVcExDQm5aWFJKZEdWeVlYUmxaU2hwZEdWeVlYUmxaU3dnTWlrcE8xeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hwY3lCdFpYUm9iMlFnYVhNZ2JHbHJaU0JnWHk1MWJtbHZibUFnWlhoalpYQjBJSFJvWVhRZ2FYUWdZV05qWlhCMGN5QmdZMjl0Y0dGeVlYUnZjbUFnZDJocFkyaGNiaUFnSUNBZ0tpQnBjeUJwYm5admEyVmtJSFJ2SUdOdmJYQmhjbVVnWld4bGJXVnVkSE1nYjJZZ1lHRnljbUY1YzJBdUlGSmxjM1ZzZENCMllXeDFaWE1nWVhKbElHTm9iM05sYmlCbWNtOXRYRzRnSUNBZ0lDb2dkR2hsSUdacGNuTjBJR0Z5Y21GNUlHbHVJSGRvYVdOb0lIUm9aU0IyWVd4MVpTQnZZMk4xY25NdUlGUm9aU0JqYjIxd1lYSmhkRzl5SUdseklHbHVkbTlyWldSY2JpQWdJQ0FnS2lCM2FYUm9JSFIzYnlCaGNtZDFiV1Z1ZEhNNklDaGhjbkpXWVd3c0lHOTBhRlpoYkNrdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTkM0d0xqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dRWEp5WVhsY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXk0dUxrRnljbUY1ZlNCYllYSnlZWGx6WFNCVWFHVWdZWEp5WVhseklIUnZJR2x1YzNCbFkzUXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdXMk52YlhCaGNtRjBiM0pkSUZSb1pTQmpiMjF3WVhKaGRHOXlJR2x1ZG05clpXUWdjR1Z5SUdWc1pXMWxiblF1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2dZWEp5WVhrZ2IyWWdZMjl0WW1sdVpXUWdkbUZzZFdWekxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdiMkpxWldOMGN5QTlJRnQ3SUNkNEp6b2dNU3dnSjNrbk9pQXlJSDBzSUhzZ0ozZ25PaUF5TENBbmVTYzZJREVnZlYwN1hHNGdJQ0FnSUNvZ2RtRnlJRzkwYUdWeWN5QTlJRnQ3SUNkNEp6b2dNU3dnSjNrbk9pQXhJSDBzSUhzZ0ozZ25PaUF4TENBbmVTYzZJRElnZlYwN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuVnVhVzl1VjJsMGFDaHZZbXBsWTNSekxDQnZkR2hsY25Nc0lGOHVhWE5GY1hWaGJDazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1czc2dKM2duT2lBeExDQW5lU2M2SURJZ2ZTd2dleUFuZUNjNklESXNJQ2Q1SnpvZ01TQjlMQ0I3SUNkNEp6b2dNU3dnSjNrbk9pQXhJSDFkWEc0Z0lDQWdJQ292WEc0Z0lDQWdkbUZ5SUhWdWFXOXVWMmwwYUNBOUlHSmhjMlZTWlhOMEtHWjFibU4wYVc5dUtHRnljbUY1Y3lrZ2UxeHVJQ0FnSUNBZ2RtRnlJR052YlhCaGNtRjBiM0lnUFNCc1lYTjBLR0Z5Y21GNWN5azdYRzRnSUNBZ0lDQmpiMjF3WVhKaGRHOXlJRDBnZEhsd1pXOW1JR052YlhCaGNtRjBiM0lnUFQwZ0oyWjFibU4wYVc5dUp5QS9JR052YlhCaGNtRjBiM0lnT2lCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWW1GelpWVnVhWEVvWW1GelpVWnNZWFIwWlc0b1lYSnlZWGx6TENBeExDQnBjMEZ5Y21GNVRHbHJaVTlpYW1WamRDd2dkSEoxWlNrc0lIVnVaR1ZtYVc1bFpDd2dZMjl0Y0dGeVlYUnZjaWs3WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdFZ1pIVndiR2xqWVhSbExXWnlaV1VnZG1WeWMybHZiaUJ2WmlCaGJpQmhjbkpoZVN3Z2RYTnBibWRjYmlBZ0lDQWdLaUJiWUZOaGJXVldZV3gxWlZwbGNtOWdYU2hvZEhSd09pOHZaV050WVMxcGJuUmxjbTVoZEdsdmJtRnNMbTl5Wnk5bFkyMWhMVEkyTWk4M0xqQXZJM05sWXkxellXMWxkbUZzZFdWNlpYSnZLVnh1SUNBZ0lDQXFJR1p2Y2lCbGNYVmhiR2wwZVNCamIyMXdZWEpwYzI5dWN5d2dhVzRnZDJocFkyZ2diMjVzZVNCMGFHVWdabWx5YzNRZ2IyTmpkWEp5Wlc1alpTQnZaaUJsWVdOb0lHVnNaVzFsYm5SY2JpQWdJQ0FnS2lCcGN5QnJaWEIwTGlCVWFHVWdiM0prWlhJZ2IyWWdjbVZ6ZFd4MElIWmhiSFZsY3lCcGN5QmtaWFJsY20xcGJtVmtJR0o1SUhSb1pTQnZjbVJsY2lCMGFHVjVJRzlqWTNWeVhHNGdJQ0FnSUNvZ2FXNGdkR2hsSUdGeWNtRjVMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEQXVNUzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUVGeWNtRjVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1lYSnlZWGtnVkdobElHRnljbUY1SUhSdklHbHVjM0JsWTNRdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnWkhWd2JHbGpZWFJsSUdaeVpXVWdZWEp5WVhrdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWRXNXBjU2hiTWl3Z01Td2dNbDBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnN5TENBeFhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUhWdWFYRW9ZWEp5WVhrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlBb1lYSnlZWGtnSmlZZ1lYSnlZWGt1YkdWdVozUm9LU0EvSUdKaGMyVlZibWx4S0dGeWNtRjVLU0E2SUZ0ZE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9hWE1nYldWMGFHOWtJR2x6SUd4cGEyVWdZRjh1ZFc1cGNXQWdaWGhqWlhCMElIUm9ZWFFnYVhRZ1lXTmpaWEIwY3lCZ2FYUmxjbUYwWldWZ0lIZG9hV05vSUdselhHNGdJQ0FnSUNvZ2FXNTJiMnRsWkNCbWIzSWdaV0ZqYUNCbGJHVnRaVzUwSUdsdUlHQmhjbkpoZVdBZ2RHOGdaMlZ1WlhKaGRHVWdkR2hsSUdOeWFYUmxjbWx2YmlCaWVTQjNhR2xqYUZ4dUlDQWdJQ0FxSUhWdWFYRjFaVzVsYzNNZ2FYTWdZMjl0Y0hWMFpXUXVJRlJvWlNCdmNtUmxjaUJ2WmlCeVpYTjFiSFFnZG1Gc2RXVnpJR2x6SUdSbGRHVnliV2x1WldRZ1lua2dkR2hsWEc0Z0lDQWdJQ29nYjNKa1pYSWdkR2hsZVNCdlkyTjFjaUJwYmlCMGFHVWdZWEp5WVhrdUlGUm9aU0JwZEdWeVlYUmxaU0JwY3lCcGJuWnZhMlZrSUhkcGRHZ2diMjVsSUdGeVozVnRaVzUwT2x4dUlDQWdJQ0FxSUNoMllXeDFaU2t1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR3TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1FYSnlZWGxjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZTQmhjbkpoZVNCVWFHVWdZWEp5WVhrZ2RHOGdhVzV6Y0dWamRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQmJhWFJsY21GMFpXVTlYeTVwWkdWdWRHbDBlVjBnVkdobElHbDBaWEpoZEdWbElHbHVkbTlyWldRZ2NHVnlJR1ZzWlcxbGJuUXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMEZ5Y21GNWZTQlNaWFIxY201eklIUm9aU0J1WlhjZ1pIVndiR2xqWVhSbElHWnlaV1VnWVhKeVlYa3VYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVkVzVwY1VKNUtGc3lMakVzSURFdU1pd2dNaTR6WFN3Z1RXRjBhQzVtYkc5dmNpazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1d6SXVNU3dnTVM0eVhWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdWR2hsSUdCZkxuQnliM0JsY25SNVlDQnBkR1Z5WVhSbFpTQnphRzl5ZEdoaGJtUXVYRzRnSUNBZ0lDb2dYeTUxYm1seFFua29XM3NnSjNnbk9pQXhJSDBzSUhzZ0ozZ25PaUF5SUgwc0lIc2dKM2duT2lBeElIMWRMQ0FuZUNjcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZ0N0lDZDRKem9nTVNCOUxDQjdJQ2Q0SnpvZ01pQjlYVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlIVnVhWEZDZVNoaGNuSmhlU3dnYVhSbGNtRjBaV1VwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUFvWVhKeVlYa2dKaVlnWVhKeVlYa3ViR1Z1WjNSb0tTQS9JR0poYzJWVmJtbHhLR0Z5Y21GNUxDQm5aWFJKZEdWeVlYUmxaU2hwZEdWeVlYUmxaU3dnTWlrcElEb2dXMTA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdocGN5QnRaWFJvYjJRZ2FYTWdiR2xyWlNCZ1h5NTFibWx4WUNCbGVHTmxjSFFnZEdoaGRDQnBkQ0JoWTJObGNIUnpJR0JqYjIxd1lYSmhkRzl5WUNCM2FHbGphRnh1SUNBZ0lDQXFJR2x6SUdsdWRtOXJaV1FnZEc4Z1kyOXRjR0Z5WlNCbGJHVnRaVzUwY3lCdlppQmdZWEp5WVhsZ0xpQlVhR1VnYjNKa1pYSWdiMllnY21WemRXeDBJSFpoYkhWbGN5QnBjMXh1SUNBZ0lDQXFJR1JsZEdWeWJXbHVaV1FnWW5rZ2RHaGxJRzl5WkdWeUlIUm9aWGtnYjJOamRYSWdhVzRnZEdobElHRnljbUY1TGxSb1pTQmpiMjF3WVhKaGRHOXlJR2x6SUdsdWRtOXJaV1JjYmlBZ0lDQWdLaUIzYVhSb0lIUjNieUJoY21kMWJXVnVkSE02SUNoaGNuSldZV3dzSUc5MGFGWmhiQ2t1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR3TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1FYSnlZWGxjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZTQmhjbkpoZVNCVWFHVWdZWEp5WVhrZ2RHOGdhVzV6Y0dWamRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQmJZMjl0Y0dGeVlYUnZjbDBnVkdobElHTnZiWEJoY21GMGIzSWdhVzUyYjJ0bFpDQndaWElnWld4bGJXVnVkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QmtkWEJzYVdOaGRHVWdabkpsWlNCaGNuSmhlUzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkbUZ5SUc5aWFtVmpkSE1nUFNCYmV5QW5lQ2M2SURFc0lDZDVKem9nTWlCOUxDQjdJQ2Q0SnpvZ01pd2dKM2tuT2lBeElIMHNJSHNnSjNnbk9pQXhMQ0FuZVNjNklESWdmVjA3WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5WdWFYRlhhWFJvS0c5aWFtVmpkSE1zSUY4dWFYTkZjWFZoYkNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnVzNzZ0ozZ25PaUF4TENBbmVTYzZJRElnZlN3Z2V5QW5lQ2M2SURJc0lDZDVKem9nTVNCOVhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUhWdWFYRlhhWFJvS0dGeWNtRjVMQ0JqYjIxd1lYSmhkRzl5S1NCN1hHNGdJQ0FnSUNCamIyMXdZWEpoZEc5eUlEMGdkSGx3Wlc5bUlHTnZiWEJoY21GMGIzSWdQVDBnSjJaMWJtTjBhVzl1SnlBL0lHTnZiWEJoY21GMGIzSWdPaUIxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdLR0Z5Y21GNUlDWW1JR0Z5Y21GNUxteGxibWQwYUNrZ1B5QmlZWE5sVlc1cGNTaGhjbkpoZVN3Z2RXNWtaV1pwYm1Wa0xDQmpiMjF3WVhKaGRHOXlLU0E2SUZ0ZE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9hWE1nYldWMGFHOWtJR2x6SUd4cGEyVWdZRjh1ZW1sd1lDQmxlR05sY0hRZ2RHaGhkQ0JwZENCaFkyTmxjSFJ6SUdGdUlHRnljbUY1SUc5bUlHZHliM1Z3WldSY2JpQWdJQ0FnS2lCbGJHVnRaVzUwY3lCaGJtUWdZM0psWVhSbGN5QmhiaUJoY25KaGVTQnlaV2R5YjNWd2FXNW5JSFJvWlNCbGJHVnRaVzUwY3lCMGJ5QjBhR1ZwY2lCd2NtVXRlbWx3WEc0Z0lDQWdJQ29nWTI5dVptbG5kWEpoZEdsdmJpNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBeExqSXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JCY25KaGVWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUdGeWNtRjVJRlJvWlNCaGNuSmhlU0J2WmlCbmNtOTFjR1ZrSUdWc1pXMWxiblJ6SUhSdklIQnliMk5sYzNNdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnWVhKeVlYa2diMllnY21WbmNtOTFjR1ZrSUdWc1pXMWxiblJ6TGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ2VtbHdjR1ZrSUQwZ1h5NTZhWEFvV3lkaEp5d2dKMkluWFN3Z1d6RXNJREpkTENCYmRISjFaU3dnWm1Gc2MyVmRLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJXeWRoSnl3Z01Td2dkSEoxWlYwc0lGc25ZaWNzSURJc0lHWmhiSE5sWFYxY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWRXNTZhWEFvZW1sd2NHVmtLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJXeWRoSnl3Z0oySW5YU3dnV3pFc0lESmRMQ0JiZEhKMVpTd2dabUZzYzJWZFhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUhWdWVtbHdLR0Z5Y21GNUtTQjdYRzRnSUNBZ0lDQnBaaUFvSVNoaGNuSmhlU0FtSmlCaGNuSmhlUzVzWlc1bmRHZ3BLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJiWFR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhaaGNpQnNaVzVuZEdnZ1BTQXdPMXh1SUNBZ0lDQWdZWEp5WVhrZ1BTQmhjbkpoZVVacGJIUmxjaWhoY25KaGVTd2dablZ1WTNScGIyNG9aM0p2ZFhBcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0dselFYSnlZWGxNYVd0bFQySnFaV04wS0dkeWIzVndLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHeGxibWQwYUNBOUlHNWhkR2wyWlUxaGVDaG5jbTkxY0M1c1pXNW5kR2dzSUd4bGJtZDBhQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnY21WMGRYSnVJR0poYzJWVWFXMWxjeWhzWlc1bmRHZ3NJR1oxYm1OMGFXOXVLR2x1WkdWNEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmhjbkpoZVUxaGNDaGhjbkpoZVN3Z1ltRnpaVkJ5YjNCbGNuUjVLR2x1WkdWNEtTazdYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdseklHMWxkR2h2WkNCcGN5QnNhV3RsSUdCZkxuVnVlbWx3WUNCbGVHTmxjSFFnZEdoaGRDQnBkQ0JoWTJObGNIUnpJR0JwZEdWeVlYUmxaV0FnZEc4Z2MzQmxZMmxtZVZ4dUlDQWdJQ0FxSUdodmR5QnlaV2R5YjNWd1pXUWdkbUZzZFdWeklITm9iM1ZzWkNCaVpTQmpiMjFpYVc1bFpDNGdWR2hsSUdsMFpYSmhkR1ZsSUdseklHbHVkbTlyWldRZ2QybDBhQ0IwYUdWY2JpQWdJQ0FnS2lCbGJHVnRaVzUwY3lCdlppQmxZV05vSUdkeWIzVndPaUFvTGk0dVozSnZkWEFwTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRE11T0M0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFRnljbUY1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdZWEp5WVhrZ1ZHaGxJR0Z5Y21GNUlHOW1JR2R5YjNWd1pXUWdaV3hsYldWdWRITWdkRzhnY0hKdlkyVnpjeTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JiYVhSbGNtRjBaV1U5WHk1cFpHVnVkR2wwZVYwZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUdOdmJXSnBibVZjYmlBZ0lDQWdLaUFnY21WbmNtOTFjR1ZrSUhaaGJIVmxjeTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QmhjbkpoZVNCdlppQnlaV2R5YjNWd1pXUWdaV3hsYldWdWRITXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlIWmhjaUI2YVhCd1pXUWdQU0JmTG5wcGNDaGJNU3dnTWwwc0lGc3hNQ3dnTWpCZExDQmJNVEF3TENBeU1EQmRLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJXekVzSURFd0xDQXhNREJkTENCYk1pd2dNakFzSURJd01GMWRYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMblZ1ZW1sd1YybDBhQ2g2YVhCd1pXUXNJRjh1WVdSa0tUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYk15d2dNekFzSURNd01GMWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCMWJucHBjRmRwZEdnb1lYSnlZWGtzSUdsMFpYSmhkR1ZsS1NCN1hHNGdJQ0FnSUNCcFppQW9JU2hoY25KaGVTQW1KaUJoY25KaGVTNXNaVzVuZEdncEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmJYVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSFpoY2lCeVpYTjFiSFFnUFNCMWJucHBjQ2hoY25KaGVTazdYRzRnSUNBZ0lDQnBaaUFvYVhSbGNtRjBaV1VnUFQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlHRnljbUY1VFdGd0tISmxjM1ZzZEN3Z1puVnVZM1JwYjI0b1ozSnZkWEFwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGd2NHeDVLR2wwWlhKaGRHVmxMQ0IxYm1SbFptbHVaV1FzSUdkeWIzVndLVHRjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOeVpXRjBaWE1nWVc0Z1lYSnlZWGtnWlhoamJIVmthVzVuSUdGc2JDQm5hWFpsYmlCMllXeDFaWE1nZFhOcGJtZGNiaUFnSUNBZ0tpQmJZRk5oYldWV1lXeDFaVnBsY205Z1hTaG9kSFJ3T2k4dlpXTnRZUzFwYm5SbGNtNWhkR2x2Ym1Gc0xtOXlaeTlsWTIxaExUSTJNaTgzTGpBdkkzTmxZeTF6WVcxbGRtRnNkV1Y2WlhKdktWeHVJQ0FnSUNBcUlHWnZjaUJsY1hWaGJHbDBlU0JqYjIxd1lYSnBjMjl1Y3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUNvcVRtOTBaVG9xS2lCVmJteHBhMlVnWUY4dWNIVnNiR0FzSUhSb2FYTWdiV1YwYUc5a0lISmxkSFZ5Ym5NZ1lTQnVaWGNnWVhKeVlYa3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01DNHhMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnUVhKeVlYbGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCaGNuSmhlU0JVYUdVZ1lYSnlZWGtnZEc4Z2FXNXpjR1ZqZEM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXk0dUxpcDlJRnQyWVd4MVpYTmRJRlJvWlNCMllXeDFaWE1nZEc4Z1pYaGpiSFZrWlM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1FYSnlZWGw5SUZKbGRIVnlibk1nZEdobElHNWxkeUJoY25KaGVTQnZaaUJtYVd4MFpYSmxaQ0IyWVd4MVpYTXVYRzRnSUNBZ0lDb2dRSE5sWlNCZkxtUnBabVpsY21WdVkyVXNJRjh1ZUc5eVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWQybDBhRzkxZENoYk1pd2dNU3dnTWl3Z00xMHNJREVzSURJcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzelhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUhaaGNpQjNhWFJvYjNWMElEMGdZbUZ6WlZKbGMzUW9ablZ1WTNScGIyNG9ZWEp5WVhrc0lIWmhiSFZsY3lrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdselFYSnlZWGxNYVd0bFQySnFaV04wS0dGeWNtRjVLVnh1SUNBZ0lDQWdJQ0EvSUdKaGMyVkVhV1ptWlhKbGJtTmxLR0Z5Y21GNUxDQjJZV3gxWlhNcFhHNGdJQ0FnSUNBZ0lEb2dXMTA3WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdGdUlHRnljbUY1SUc5bUlIVnVhWEYxWlNCMllXeDFaWE1nZEdoaGRDQnBjeUIwYUdWY2JpQWdJQ0FnS2lCYmMzbHRiV1YwY21saklHUnBabVpsY21WdVkyVmRLR2gwZEhCek9pOHZaVzR1ZDJscmFYQmxaR2xoTG05eVp5OTNhV3RwTDFONWJXMWxkSEpwWTE5a2FXWm1aWEpsYm1ObEtWeHVJQ0FnSUNBcUlHOW1JSFJvWlNCbmFYWmxiaUJoY25KaGVYTXVJRlJvWlNCdmNtUmxjaUJ2WmlCeVpYTjFiSFFnZG1Gc2RXVnpJR2x6SUdSbGRHVnliV2x1WldRZ1lua2dkR2hsSUc5eVpHVnlYRzRnSUNBZ0lDb2dkR2hsZVNCdlkyTjFjaUJwYmlCMGFHVWdZWEp5WVhsekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURJdU5DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRUZ5Y21GNVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzdUxpNUJjbkpoZVgwZ1cyRnljbUY1YzEwZ1ZHaGxJR0Z5Y21GNWN5QjBieUJwYm5Od1pXTjBMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHRnljbUY1SUc5bUlHWnBiSFJsY21Wa0lIWmhiSFZsY3k1Y2JpQWdJQ0FnS2lCQWMyVmxJRjh1WkdsbVptVnlaVzVqWlN3Z1h5NTNhWFJvYjNWMFhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWVHOXlLRnN5TENBeFhTd2dXeklzSUROZEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYk1Td2dNMTFjYmlBZ0lDQWdLaTljYmlBZ0lDQjJZWElnZUc5eUlEMGdZbUZ6WlZKbGMzUW9ablZ1WTNScGIyNG9ZWEp5WVhsektTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1ltRnpaVmh2Y2loaGNuSmhlVVpwYkhSbGNpaGhjbkpoZVhNc0lHbHpRWEp5WVhsTWFXdGxUMkpxWldOMEtTazdYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdseklHMWxkR2h2WkNCcGN5QnNhV3RsSUdCZkxuaHZjbUFnWlhoalpYQjBJSFJvWVhRZ2FYUWdZV05qWlhCMGN5QmdhWFJsY21GMFpXVmdJSGRvYVdOb0lHbHpYRzRnSUNBZ0lDb2dhVzUyYjJ0bFpDQm1iM0lnWldGamFDQmxiR1Z0Wlc1MElHOW1JR1ZoWTJnZ1lHRnljbUY1YzJBZ2RHOGdaMlZ1WlhKaGRHVWdkR2hsSUdOeWFYUmxjbWx2YmlCaWVWeHVJQ0FnSUNBcUlIZG9hV05vSUdKNUlIZG9hV05vSUhSb1pYa25jbVVnWTI5dGNHRnlaV1F1SUZSb1pTQnZjbVJsY2lCdlppQnlaWE4xYkhRZ2RtRnNkV1Z6SUdseklHUmxkR1Z5YldsdVpXUmNiaUFnSUNBZ0tpQmllU0IwYUdVZ2IzSmtaWElnZEdobGVTQnZZMk4xY2lCcGJpQjBhR1VnWVhKeVlYbHpMaUJVYUdVZ2FYUmxjbUYwWldVZ2FYTWdhVzUyYjJ0bFpDQjNhWFJvSUc5dVpWeHVJQ0FnSUNBcUlHRnlaM1Z0Wlc1ME9pQW9kbUZzZFdVcExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRUZ5Y21GNVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzdUxpNUJjbkpoZVgwZ1cyRnljbUY1YzEwZ1ZHaGxJR0Z5Y21GNWN5QjBieUJwYm5Od1pXTjBMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJRnRwZEdWeVlYUmxaVDFmTG1sa1pXNTBhWFI1WFNCVWFHVWdhWFJsY21GMFpXVWdhVzUyYjJ0bFpDQndaWElnWld4bGJXVnVkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QmhjbkpoZVNCdlppQm1hV3gwWlhKbFpDQjJZV3gxWlhNdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWVHOXlRbmtvV3pJdU1Td2dNUzR5WFN3Z1d6SXVNeXdnTXk0MFhTd2dUV0YwYUM1bWJHOXZjaWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXekV1TWl3Z015NDBYVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dMeThnVkdobElHQmZMbkJ5YjNCbGNuUjVZQ0JwZEdWeVlYUmxaU0J6YUc5eWRHaGhibVF1WEc0Z0lDQWdJQ29nWHk1NGIzSkNlU2hiZXlBbmVDYzZJREVnZlYwc0lGdDdJQ2Q0SnpvZ01pQjlMQ0I3SUNkNEp6b2dNU0I5WFN3Z0ozZ25LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJleUFuZUNjNklESWdmVjFjYmlBZ0lDQWdLaTljYmlBZ0lDQjJZWElnZUc5eVFua2dQU0JpWVhObFVtVnpkQ2htZFc1amRHbHZiaWhoY25KaGVYTXBJSHRjYmlBZ0lDQWdJSFpoY2lCcGRHVnlZWFJsWlNBOUlHeGhjM1FvWVhKeVlYbHpLVHRjYmlBZ0lDQWdJR2xtSUNocGMwRnljbUY1VEdsclpVOWlhbVZqZENocGRHVnlZWFJsWlNrcElIdGNiaUFnSUNBZ0lDQWdhWFJsY21GMFpXVWdQU0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZbUZ6WlZodmNpaGhjbkpoZVVacGJIUmxjaWhoY25KaGVYTXNJR2x6UVhKeVlYbE1hV3RsVDJKcVpXTjBLU3dnWjJWMFNYUmxjbUYwWldVb2FYUmxjbUYwWldVc0lESXBLVHRjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb2FYTWdiV1YwYUc5a0lHbHpJR3hwYTJVZ1lGOHVlRzl5WUNCbGVHTmxjSFFnZEdoaGRDQnBkQ0JoWTJObGNIUnpJR0JqYjIxd1lYSmhkRzl5WUNCM2FHbGphQ0JwYzF4dUlDQWdJQ0FxSUdsdWRtOXJaV1FnZEc4Z1kyOXRjR0Z5WlNCbGJHVnRaVzUwY3lCdlppQmdZWEp5WVhsellDNGdWR2hsSUc5eVpHVnlJRzltSUhKbGMzVnNkQ0IyWVd4MVpYTWdhWE5jYmlBZ0lDQWdLaUJrWlhSbGNtMXBibVZrSUdKNUlIUm9aU0J2Y21SbGNpQjBhR1Y1SUc5alkzVnlJR2x1SUhSb1pTQmhjbkpoZVhNdUlGUm9aU0JqYjIxd1lYSmhkRzl5SUdseklHbHVkbTlyWldSY2JpQWdJQ0FnS2lCM2FYUm9JSFIzYnlCaGNtZDFiV1Z1ZEhNNklDaGhjbkpXWVd3c0lHOTBhRlpoYkNrdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTkM0d0xqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dRWEp5WVhsY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXk0dUxrRnljbUY1ZlNCYllYSnlZWGx6WFNCVWFHVWdZWEp5WVhseklIUnZJR2x1YzNCbFkzUXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdXMk52YlhCaGNtRjBiM0pkSUZSb1pTQmpiMjF3WVhKaGRHOXlJR2x1ZG05clpXUWdjR1Z5SUdWc1pXMWxiblF1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2dZWEp5WVhrZ2IyWWdabWxzZEdWeVpXUWdkbUZzZFdWekxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdiMkpxWldOMGN5QTlJRnQ3SUNkNEp6b2dNU3dnSjNrbk9pQXlJSDBzSUhzZ0ozZ25PaUF5TENBbmVTYzZJREVnZlYwN1hHNGdJQ0FnSUNvZ2RtRnlJRzkwYUdWeWN5QTlJRnQ3SUNkNEp6b2dNU3dnSjNrbk9pQXhJSDBzSUhzZ0ozZ25PaUF4TENBbmVTYzZJRElnZlYwN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuaHZjbGRwZEdnb2IySnFaV04wY3l3Z2IzUm9aWEp6TENCZkxtbHpSWEYxWVd3cE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZ0N0lDZDRKem9nTWl3Z0oza25PaUF4SUgwc0lIc2dKM2duT2lBeExDQW5lU2M2SURFZ2ZWMWNiaUFnSUNBZ0tpOWNiaUFnSUNCMllYSWdlRzl5VjJsMGFDQTlJR0poYzJWU1pYTjBLR1oxYm1OMGFXOXVLR0Z5Y21GNWN5a2dlMXh1SUNBZ0lDQWdkbUZ5SUdOdmJYQmhjbUYwYjNJZ1BTQnNZWE4wS0dGeWNtRjVjeWs3WEc0Z0lDQWdJQ0JqYjIxd1lYSmhkRzl5SUQwZ2RIbHdaVzltSUdOdmJYQmhjbUYwYjNJZ1BUMGdKMloxYm1OMGFXOXVKeUEvSUdOdmJYQmhjbUYwYjNJZ09pQjFibVJsWm1sdVpXUTdYRzRnSUNBZ0lDQnlaWFIxY200Z1ltRnpaVmh2Y2loaGNuSmhlVVpwYkhSbGNpaGhjbkpoZVhNc0lHbHpRWEp5WVhsTWFXdGxUMkpxWldOMEtTd2dkVzVrWldacGJtVmtMQ0JqYjIxd1lYSmhkRzl5S1R0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnlaV0YwWlhNZ1lXNGdZWEp5WVhrZ2IyWWdaM0p2ZFhCbFpDQmxiR1Z0Wlc1MGN5d2dkR2hsSUdacGNuTjBJRzltSUhkb2FXTm9JR052Ym5SaGFXNXpJSFJvWlZ4dUlDQWdJQ0FxSUdacGNuTjBJR1ZzWlcxbGJuUnpJRzltSUhSb1pTQm5hWFpsYmlCaGNuSmhlWE1zSUhSb1pTQnpaV052Ym1RZ2IyWWdkMmhwWTJnZ1kyOXVkR0ZwYm5NZ2RHaGxYRzRnSUNBZ0lDb2djMlZqYjI1a0lHVnNaVzFsYm5SeklHOW1JSFJvWlNCbmFYWmxiaUJoY25KaGVYTXNJR0Z1WkNCemJ5QnZiaTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXdMakV1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCQmNuSmhlVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdMaTR1UVhKeVlYbDlJRnRoY25KaGVYTmRJRlJvWlNCaGNuSmhlWE1nZEc4Z2NISnZZMlZ6Y3k1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1FYSnlZWGw5SUZKbGRIVnlibk1nZEdobElHNWxkeUJoY25KaGVTQnZaaUJuY205MWNHVmtJR1ZzWlcxbGJuUnpMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbnBwY0NoYkoyRW5MQ0FuWWlkZExDQmJNU3dnTWwwc0lGdDBjblZsTENCbVlXeHpaVjBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnRiSjJFbkxDQXhMQ0IwY25WbFhTd2dXeWRpSnl3Z01pd2dabUZzYzJWZFhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUhaaGNpQjZhWEFnUFNCaVlYTmxVbVZ6ZENoMWJucHBjQ2s3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVWFHbHpJRzFsZEdodlpDQnBjeUJzYVd0bElHQmZMbVp5YjIxUVlXbHljMkFnWlhoalpYQjBJSFJvWVhRZ2FYUWdZV05qWlhCMGN5QjBkMjhnWVhKeVlYbHpMRnh1SUNBZ0lDQXFJRzl1WlNCdlppQndjbTl3WlhKMGVTQnBaR1Z1ZEdsbWFXVnljeUJoYm1RZ2IyNWxJRzltSUdOdmNuSmxjM0J2Ym1ScGJtY2dkbUZzZFdWekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURBdU5DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRUZ5Y21GNVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnVzNCeWIzQnpQVnRkWFNCVWFHVWdjSEp2Y0dWeWRIa2dhV1JsYm5ScFptbGxjbk11WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdXM1poYkhWbGN6MWJYVjBnVkdobElIQnliM0JsY25SNUlIWmhiSFZsY3k1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1QySnFaV04wZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnYjJKcVpXTjBMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbnBwY0U5aWFtVmpkQ2hiSjJFbkxDQW5ZaWRkTENCYk1Td2dNbDBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJSHNnSjJFbk9pQXhMQ0FuWWljNklESWdmVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlIcHBjRTlpYW1WamRDaHdjbTl3Y3l3Z2RtRnNkV1Z6S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWW1GelpWcHBjRTlpYW1WamRDaHdjbTl3Y3lCOGZDQmJYU3dnZG1Gc2RXVnpJSHg4SUZ0ZExDQmhjM05wWjI1V1lXeDFaU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdocGN5QnRaWFJvYjJRZ2FYTWdiR2xyWlNCZ1h5NTZhWEJQWW1wbFkzUmdJR1Y0WTJWd2RDQjBhR0YwSUdsMElITjFjSEJ2Y25SeklIQnliM0JsY25SNUlIQmhkR2h6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRFF1TVM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFRnljbUY1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdXM0J5YjNCelBWdGRYU0JVYUdVZ2NISnZjR1Z5ZEhrZ2FXUmxiblJwWm1sbGNuTXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1czWmhiSFZsY3oxYlhWMGdWR2hsSUhCeWIzQmxjblI1SUhaaGJIVmxjeTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3VDJKcVpXTjBmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2diMkpxWldOMExseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxucHBjRTlpYW1WamRFUmxaWEFvV3lkaExtSmJNRjB1WXljc0lDZGhMbUpiTVYwdVpDZGRMQ0JiTVN3Z01sMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIc2dKMkVuT2lCN0lDZGlKem9nVzNzZ0oyTW5PaUF4SUgwc0lIc2dKMlFuT2lBeUlIMWRJSDBnZlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJSHBwY0U5aWFtVmpkRVJsWlhBb2NISnZjSE1zSUhaaGJIVmxjeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR0poYzJWYWFYQlBZbXBsWTNRb2NISnZjSE1nZkh3Z1cxMHNJSFpoYkhWbGN5QjhmQ0JiWFN3Z1ltRnpaVk5sZENrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaHBjeUJ0WlhSb2IyUWdhWE1nYkdsclpTQmdYeTU2YVhCZ0lHVjRZMlZ3ZENCMGFHRjBJR2wwSUdGalkyVndkSE1nWUdsMFpYSmhkR1ZsWUNCMGJ5QnpjR1ZqYVdaNVhHNGdJQ0FnSUNvZ2FHOTNJR2R5YjNWd1pXUWdkbUZzZFdWeklITm9iM1ZzWkNCaVpTQmpiMjFpYVc1bFpDNGdWR2hsSUdsMFpYSmhkR1ZsSUdseklHbHVkbTlyWldRZ2QybDBhQ0IwYUdWY2JpQWdJQ0FnS2lCbGJHVnRaVzUwY3lCdlppQmxZV05vSUdkeWIzVndPaUFvTGk0dVozSnZkWEFwTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRE11T0M0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFRnljbUY1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHN1TGk1QmNuSmhlWDBnVzJGeWNtRjVjMTBnVkdobElHRnljbUY1Y3lCMGJ5QndjbTlqWlhOekxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlGdHBkR1Z5WVhSbFpUMWZMbWxrWlc1MGFYUjVYU0JVYUdVZ1puVnVZM1JwYjI0Z2RHOGdZMjl0WW1sdVpWeHVJQ0FnSUNBcUlDQm5jbTkxY0dWa0lIWmhiSFZsY3k1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1FYSnlZWGw5SUZKbGRIVnlibk1nZEdobElHNWxkeUJoY25KaGVTQnZaaUJuY205MWNHVmtJR1ZzWlcxbGJuUnpMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbnBwY0ZkcGRHZ29XekVzSURKZExDQmJNVEFzSURJd1hTd2dXekV3TUN3Z01qQXdYU3dnWm5WdVkzUnBiMjRvWVN3Z1lpd2dZeWtnZTF4dUlDQWdJQ0FxSUNBZ2NtVjBkWEp1SUdFZ0t5QmlJQ3NnWXp0Y2JpQWdJQ0FnS2lCOUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYk1URXhMQ0F5TWpKZFhHNGdJQ0FnSUNvdlhHNGdJQ0FnZG1GeUlIcHBjRmRwZEdnZ1BTQmlZWE5sVW1WemRDaG1kVzVqZEdsdmJpaGhjbkpoZVhNcElIdGNiaUFnSUNBZ0lIWmhjaUJzWlc1bmRHZ2dQU0JoY25KaGVYTXViR1Z1WjNSb0xGeHVJQ0FnSUNBZ0lDQWdJR2wwWlhKaGRHVmxJRDBnYkdWdVozUm9JRDRnTVNBL0lHRnljbUY1YzF0c1pXNW5kR2dnTFNBeFhTQTZJSFZ1WkdWbWFXNWxaRHRjYmx4dUlDQWdJQ0FnYVhSbGNtRjBaV1VnUFNCMGVYQmxiMllnYVhSbGNtRjBaV1VnUFQwZ0oyWjFibU4wYVc5dUp5QS9JQ2hoY25KaGVYTXVjRzl3S0Nrc0lHbDBaWEpoZEdWbEtTQTZJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjFibnBwY0ZkcGRHZ29ZWEp5WVhsekxDQnBkR1Z5WVhSbFpTazdYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQXZLaTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMU292WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdFZ1lHeHZaR0Z6YUdBZ2QzSmhjSEJsY2lCcGJuTjBZVzVqWlNCMGFHRjBJSGR5WVhCeklHQjJZV3gxWldBZ2QybDBhQ0JsZUhCc2FXTnBkQ0J0WlhSb2IyUmNiaUFnSUNBZ0tpQmphR0ZwYmlCelpYRjFaVzVqWlhNZ1pXNWhZbXhsWkM0Z1ZHaGxJSEpsYzNWc2RDQnZaaUJ6ZFdOb0lITmxjWFZsYm1ObGN5QnRkWE4wSUdKbElIVnVkM0poY0hCbFpGeHVJQ0FnSUNBcUlIZHBkR2dnWUY4amRtRnNkV1ZnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJREV1TXk0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlGTmxjVnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdLbjBnZG1Gc2RXVWdWR2hsSUhaaGJIVmxJSFJ2SUhkeVlYQXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMDlpYW1WamRIMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHQnNiMlJoYzJoZ0lIZHlZWEJ3WlhJZ2FXNXpkR0Z1WTJVdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQjFjMlZ5Y3lBOUlGdGNiaUFnSUNBZ0tpQWdJSHNnSjNWelpYSW5PaUFuWW1GeWJtVjVKeXdnSUNkaFoyVW5PaUF6TmlCOUxGeHVJQ0FnSUNBcUlDQWdleUFuZFhObGNpYzZJQ2RtY21Wa0p5d2dJQ0FnSjJGblpTYzZJRFF3SUgwc1hHNGdJQ0FnSUNvZ0lDQjdJQ2QxYzJWeUp6b2dKM0JsWW1Kc1pYTW5MQ0FuWVdkbEp6b2dNU0I5WEc0Z0lDQWdJQ29nWFR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQjViM1Z1WjJWemRDQTlJRjljYmlBZ0lDQWdLaUFnSUM1amFHRnBiaWgxYzJWeWN5bGNiaUFnSUNBZ0tpQWdJQzV6YjNKMFFua29KMkZuWlNjcFhHNGdJQ0FnSUNvZ0lDQXViV0Z3S0daMWJtTjBhVzl1S0c4cElIdGNiaUFnSUNBZ0tpQWdJQ0FnY21WMGRYSnVJRzh1ZFhObGNpQXJJQ2NnYVhNZ0p5QXJJRzh1WVdkbE8xeHVJQ0FnSUNBcUlDQWdmU2xjYmlBZ0lDQWdLaUFnSUM1b1pXRmtLQ2xjYmlBZ0lDQWdLaUFnSUM1MllXeDFaU2dwTzF4dUlDQWdJQ0FxSUM4dklEMCtJQ2R3WldKaWJHVnpJR2x6SURFblhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnWTJoaGFXNG9kbUZzZFdVcElIdGNiaUFnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0JzYjJSaGMyZ29kbUZzZFdVcE8xeHVJQ0FnSUNBZ2NtVnpkV3gwTGw5ZlkyaGhhVzVmWHlBOUlIUnlkV1U3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9hWE1nYldWMGFHOWtJR2x1ZG05clpYTWdZR2x1ZEdWeVkyVndkRzl5WUNCaGJtUWdjbVYwZFhKdWN5QmdkbUZzZFdWZ0xpQlVhR1VnYVc1MFpYSmpaWEIwYjNKY2JpQWdJQ0FnS2lCcGN5QnBiblp2YTJWa0lIZHBkR2dnYjI1bElHRnlaM1Z0Wlc1ME95QW9kbUZzZFdVcExpQlVhR1VnY0hWeWNHOXpaU0J2WmlCMGFHbHpJRzFsZEdodlpDQnBjeUIwYjF4dUlDQWdJQ0FxSUZ3aWRHRndJR2x1ZEc5Y0lpQmhJRzFsZEdodlpDQmphR0ZwYmlCelpYRjFaVzVqWlNCcGJpQnZjbVJsY2lCMGJ5QnRiMlJwWm5rZ2FXNTBaWEp0WldScFlYUmxJSEpsYzNWc2RITXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01DNHhMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVTJWeFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdjSEp2ZG1sa1pTQjBieUJnYVc1MFpYSmpaWEIwYjNKZ0xseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlHbHVkR1Z5WTJWd2RHOXlJRlJvWlNCbWRXNWpkR2x2YmlCMGJ5QnBiblp2YTJVdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2V5cDlJRkpsZEhWeWJuTWdZSFpoYkhWbFlDNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5aGJNU3dnTWl3Z00xMHBYRzRnSUNBZ0lDb2dJQzUwWVhBb1puVnVZM1JwYjI0b1lYSnlZWGtwSUh0Y2JpQWdJQ0FnS2lBZ0lDQXZMeUJOZFhSaGRHVWdhVzV3ZFhRZ1lYSnlZWGt1WEc0Z0lDQWdJQ29nSUNBZ1lYSnlZWGt1Y0c5d0tDazdYRzRnSUNBZ0lDb2dJSDBwWEc0Z0lDQWdJQ29nSUM1eVpYWmxjbk5sS0NsY2JpQWdJQ0FnS2lBZ0xuWmhiSFZsS0NrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnV3pJc0lERmRYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2RHRndLSFpoYkhWbExDQnBiblJsY21ObGNIUnZjaWtnZTF4dUlDQWdJQ0FnYVc1MFpYSmpaWEIwYjNJb2RtRnNkV1VwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSFpoYkhWbE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9hWE1nYldWMGFHOWtJR2x6SUd4cGEyVWdZRjh1ZEdGd1lDQmxlR05sY0hRZ2RHaGhkQ0JwZENCeVpYUjFjbTV6SUhSb1pTQnlaWE4xYkhRZ2IyWWdZR2x1ZEdWeVkyVndkRzl5WUM1Y2JpQWdJQ0FnS2lCVWFHVWdjSFZ5Y0c5elpTQnZaaUIwYUdseklHMWxkR2h2WkNCcGN5QjBieUJjSW5CaGMzTWdkR2h5ZFZ3aUlIWmhiSFZsY3lCeVpYQnNZV05wYm1jZ2FXNTBaWEp0WldScFlYUmxYRzRnSUNBZ0lDb2djbVZ6ZFd4MGN5QnBiaUJoSUcxbGRHaHZaQ0JqYUdGcGJpQnpaWEYxWlc1alpTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBekxqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JUWlhGY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlIWmhiSFZsSUZSb1pTQjJZV3gxWlNCMGJ5QndjbTkyYVdSbElIUnZJR0JwYm5SbGNtTmxjSFJ2Y21BdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ2FXNTBaWEpqWlhCMGIzSWdWR2hsSUdaMWJtTjBhVzl1SUhSdklHbHVkbTlyWlM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN0tuMGdVbVYwZFhKdWN5QjBhR1VnY21WemRXeDBJRzltSUdCcGJuUmxjbU5sY0hSdmNtQXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOG9KeUFnWVdKaklDQW5LVnh1SUNBZ0lDQXFJQ0F1WTJoaGFXNG9LVnh1SUNBZ0lDQXFJQ0F1ZEhKcGJTZ3BYRzRnSUNBZ0lDb2dJQzUwYUhKMUtHWjFibU4wYVc5dUtIWmhiSFZsS1NCN1hHNGdJQ0FnSUNvZ0lDQWdjbVYwZFhKdUlGdDJZV3gxWlYwN1hHNGdJQ0FnSUNvZ0lIMHBYRzRnSUNBZ0lDb2dJQzUyWVd4MVpTZ3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc25ZV0pqSjExY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUIwYUhKMUtIWmhiSFZsTENCcGJuUmxjbU5sY0hSdmNpa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHbHVkR1Z5WTJWd2RHOXlLSFpoYkhWbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR2x6SUcxbGRHaHZaQ0JwY3lCMGFHVWdkM0poY0hCbGNpQjJaWEp6YVc5dUlHOW1JR0JmTG1GMFlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnVZVzFsSUdGMFhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01TNHdMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVTJWeFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzdUxpNG9jM1J5YVc1bmZITjBjbWx1WjF0ZEtYMGdXM0JoZEdoelhTQlVhR1VnY0hKdmNHVnlkSGtnY0dGMGFITWdkRzhnY0dsamF5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdUMkpxWldOMGZTQlNaWFIxY201eklIUm9aU0J1WlhjZ1lHeHZaR0Z6YUdBZ2QzSmhjSEJsY2lCcGJuTjBZVzVqWlM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlHOWlhbVZqZENBOUlIc2dKMkVuT2lCYmV5QW5ZaWM2SUhzZ0oyTW5PaUF6SUgwZ2ZTd2dORjBnZlR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4b2IySnFaV04wS1M1aGRDaGJKMkZiTUYwdVlpNWpKeXdnSjJGYk1WMG5YU2t1ZG1Gc2RXVW9LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJNeXdnTkYxY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IyWVhJZ2QzSmhjSEJsY2tGMElEMGdabXhoZEZKbGMzUW9ablZ1WTNScGIyNG9jR0YwYUhNcElIdGNiaUFnSUNBZ0lIWmhjaUJzWlc1bmRHZ2dQU0J3WVhSb2N5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lDQWdjM1JoY25RZ1BTQnNaVzVuZEdnZ1B5QndZWFJvYzFzd1hTQTZJREFzWEc0Z0lDQWdJQ0FnSUNBZ2RtRnNkV1VnUFNCMGFHbHpMbDlmZDNKaGNIQmxaRjlmTEZ4dUlDQWdJQ0FnSUNBZ0lHbHVkR1Z5WTJWd2RHOXlJRDBnWm5WdVkzUnBiMjRvYjJKcVpXTjBLU0I3SUhKbGRIVnliaUJpWVhObFFYUW9iMkpxWldOMExDQndZWFJvY3lrN0lIMDdYRzVjYmlBZ0lDQWdJR2xtSUNoc1pXNW5kR2dnUGlBeElIeDhJSFJvYVhNdVgxOWhZM1JwYjI1elgxOHViR1Z1WjNSb0lIeDhYRzRnSUNBZ0lDQWdJQ0FnSVNoMllXeDFaU0JwYm5OMFlXNWpaVzltSUV4aGVubFhjbUZ3Y0dWeUtTQjhmQ0FoYVhOSmJtUmxlQ2h6ZEdGeWRDa3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWRHaHlkU2hwYm5SbGNtTmxjSFJ2Y2lrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCMllXeDFaU0E5SUhaaGJIVmxMbk5zYVdObEtITjBZWEowTENBcmMzUmhjblFnS3lBb2JHVnVaM1JvSUQ4Z01TQTZJREFwS1R0Y2JpQWdJQ0FnSUhaaGJIVmxMbDlmWVdOMGFXOXVjMTlmTG5CMWMyZ29lMXh1SUNBZ0lDQWdJQ0FuWm5WdVl5YzZJSFJvY25Vc1hHNGdJQ0FnSUNBZ0lDZGhjbWR6SnpvZ1cybHVkR1Z5WTJWd2RHOXlYU3hjYmlBZ0lDQWdJQ0FnSjNSb2FYTkJjbWNuT2lCMWJtUmxabWx1WldSY2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5Qk1iMlJoYzJoWGNtRndjR1Z5S0haaGJIVmxMQ0IwYUdsekxsOWZZMmhoYVc1Zlh5a3VkR2h5ZFNobWRXNWpkR2x2YmloaGNuSmhlU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9iR1Z1WjNSb0lDWW1JQ0ZoY25KaGVTNXNaVzVuZEdncElIdGNiaUFnSUNBZ0lDQWdJQ0JoY25KaGVTNXdkWE5vS0hWdVpHVm1hVzVsWkNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHRnljbUY1TzF4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRWdZR3h2WkdGemFHQWdkM0poY0hCbGNpQnBibk4wWVc1alpTQjNhWFJvSUdWNGNHeHBZMmwwSUcxbGRHaHZaQ0JqYUdGcGJpQnpaWEYxWlc1alpYTWdaVzVoWW14bFpDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnVZVzFsSUdOb1lXbHVYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdNQzR4TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1UyVnhYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMDlpYW1WamRIMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHQnNiMlJoYzJoZ0lIZHlZWEJ3WlhJZ2FXNXpkR0Z1WTJVdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQjFjMlZ5Y3lBOUlGdGNiaUFnSUNBZ0tpQWdJSHNnSjNWelpYSW5PaUFuWW1GeWJtVjVKeXdnSjJGblpTYzZJRE0ySUgwc1hHNGdJQ0FnSUNvZ0lDQjdJQ2QxYzJWeUp6b2dKMlp5WldRbkxDQWdJQ2RoWjJVbk9pQTBNQ0I5WEc0Z0lDQWdJQ29nWFR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUM4dklFRWdjMlZ4ZFdWdVkyVWdkMmwwYUc5MWRDQmxlSEJzYVdOcGRDQmphR0ZwYm1sdVp5NWNiaUFnSUNBZ0tpQmZLSFZ6WlhKektTNW9aV0ZrS0NrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZXlBbmRYTmxjaWM2SUNkaVlYSnVaWGtuTENBbllXZGxKem9nTXpZZ2ZWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdRU0J6WlhGMVpXNWpaU0IzYVhSb0lHVjRjR3hwWTJsMElHTm9ZV2x1YVc1bkxseHVJQ0FnSUNBcUlGOG9kWE5sY25NcFhHNGdJQ0FnSUNvZ0lDQXVZMmhoYVc0b0tWeHVJQ0FnSUNBcUlDQWdMbWhsWVdRb0tWeHVJQ0FnSUNBcUlDQWdMbkJwWTJzb0ozVnpaWEluS1Z4dUlDQWdJQ0FxSUNBZ0xuWmhiSFZsS0NrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZXlBbmRYTmxjaWM2SUNkaVlYSnVaWGtuSUgxY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUIzY21Gd2NHVnlRMmhoYVc0b0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1kyaGhhVzRvZEdocGN5azdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dSWGhsWTNWMFpYTWdkR2hsSUdOb1lXbHVJSE5sY1hWbGJtTmxJR0Z1WkNCeVpYUjFjbTV6SUhSb1pTQjNjbUZ3Y0dWa0lISmxjM1ZzZEM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCdVlXMWxJR052YlcxcGRGeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElETXVNaTR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUZObGNWeHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdFBZbXBsWTNSOUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCZ2JHOWtZWE5vWUNCM2NtRndjR1Z5SUdsdWMzUmhibU5sTGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ1lYSnlZWGtnUFNCYk1Td2dNbDA3WEc0Z0lDQWdJQ29nZG1GeUlIZHlZWEJ3WldRZ1BTQmZLR0Z5Y21GNUtTNXdkWE5vS0RNcE8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1kyOXVjMjlzWlM1c2IyY29ZWEp5WVhrcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzeExDQXlYVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkM0poY0hCbFpDQTlJSGR5WVhCd1pXUXVZMjl0YldsMEtDazdYRzRnSUNBZ0lDb2dZMjl1YzI5c1pTNXNiMmNvWVhKeVlYa3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc3hMQ0F5TENBelhWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ2QzSmhjSEJsWkM1c1lYTjBLQ2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdNMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dZMjl1YzI5c1pTNXNiMmNvWVhKeVlYa3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc3hMQ0F5TENBelhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUhkeVlYQndaWEpEYjIxdGFYUW9LU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUV4dlpHRnphRmR5WVhCd1pYSW9kR2hwY3k1MllXeDFaU2dwTENCMGFHbHpMbDlmWTJoaGFXNWZYeWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUjJWMGN5QjBhR1VnYm1WNGRDQjJZV3gxWlNCdmJpQmhJSGR5WVhCd1pXUWdiMkpxWldOMElHWnZiR3h2ZDJsdVp5QjBhR1ZjYmlBZ0lDQWdLaUJiYVhSbGNtRjBiM0lnY0hKdmRHOWpiMnhkS0doMGRIQnpPaTh2YldSdUxtbHZMMmwwWlhKaGRHbHZibDl3Y205MGIyTnZiSE1qYVhSbGNtRjBiM0lwTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUc1aGJXVWdibVY0ZEZ4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRk5sY1Z4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0UFltcGxZM1I5SUZKbGRIVnlibk1nZEdobElHNWxlSFFnYVhSbGNtRjBiM0lnZG1Gc2RXVXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlIWmhjaUIzY21Gd2NHVmtJRDBnWHloYk1Td2dNbDBwTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZDNKaGNIQmxaQzV1WlhoMEtDazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2V5QW5aRzl1WlNjNklHWmhiSE5sTENBbmRtRnNkV1VuT2lBeElIMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlIZHlZWEJ3WldRdWJtVjRkQ2dwTzF4dUlDQWdJQ0FxSUM4dklEMCtJSHNnSjJSdmJtVW5PaUJtWVd4elpTd2dKM1poYkhWbEp6b2dNaUI5WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIzY21Gd2NHVmtMbTVsZUhRb0tUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCN0lDZGtiMjVsSnpvZ2RISjFaU3dnSjNaaGJIVmxKem9nZFc1a1pXWnBibVZrSUgxY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUIzY21Gd2NHVnlUbVY0ZENncElIdGNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxsOWZkbUZzZFdWelgxOGdQVDA5SUhWdVpHVm1hVzVsWkNrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TGw5ZmRtRnNkV1Z6WDE4Z1BTQjBiMEZ5Y21GNUtIUm9hWE11ZG1Gc2RXVW9LU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0IyWVhJZ1pHOXVaU0E5SUhSb2FYTXVYMTlwYm1SbGVGOWZJRDQ5SUhSb2FYTXVYMTkyWVd4MVpYTmZYeTVzWlc1bmRHZ3NYRzRnSUNBZ0lDQWdJQ0FnZG1Gc2RXVWdQU0JrYjI1bElEOGdkVzVrWldacGJtVmtJRG9nZEdocGN5NWZYM1poYkhWbGMxOWZXM1JvYVhNdVgxOXBibVJsZUY5Zkt5dGRPMXh1WEc0Z0lDQWdJQ0J5WlhSMWNtNGdleUFuWkc5dVpTYzZJR1J2Ym1Vc0lDZDJZV3gxWlNjNklIWmhiSFZsSUgwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1JXNWhZbXhsY3lCMGFHVWdkM0poY0hCbGNpQjBieUJpWlNCcGRHVnlZV0pzWlM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCdVlXMWxJRk41YldKdmJDNXBkR1Z5WVhSdmNseHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUZObGNWeHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdFBZbXBsWTNSOUlGSmxkSFZ5Ym5NZ2RHaGxJSGR5WVhCd1pYSWdiMkpxWldOMExseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdkM0poY0hCbFpDQTlJRjhvV3pFc0lESmRLVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSGR5WVhCd1pXUmJVM2x0WW05c0xtbDBaWEpoZEc5eVhTZ3BJRDA5UFNCM2NtRndjR1ZrTzF4dUlDQWdJQ0FxSUM4dklEMCtJSFJ5ZFdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVGeWNtRjVMbVp5YjIwb2QzSmhjSEJsWkNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnV3pFc0lESmRYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2QzSmhjSEJsY2xSdlNYUmxjbUYwYjNJb0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVnpJR0VnWTJ4dmJtVWdiMllnZEdobElHTm9ZV2x1SUhObGNYVmxibU5sSUhCc1lXNTBhVzVuSUdCMllXeDFaV0FnWVhNZ2RHaGxJSGR5WVhCd1pXUWdkbUZzZFdVdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWJtRnRaU0J3YkdGdWRGeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElETXVNaTR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUZObGNWeHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdkbUZzZFdVZ1ZHaGxJSFpoYkhWbElIUnZJSEJzWVc1MExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdFBZbXBsWTNSOUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCZ2JHOWtZWE5vWUNCM2NtRndjR1Z5SUdsdWMzUmhibU5sTGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJtZFc1amRHbHZiaUJ6Y1hWaGNtVW9iaWtnZTF4dUlDQWdJQ0FxSUNBZ2NtVjBkWEp1SUc0Z0tpQnVPMXh1SUNBZ0lDQXFJSDFjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSFpoY2lCM2NtRndjR1ZrSUQwZ1h5aGJNU3dnTWwwcExtMWhjQ2h6Y1hWaGNtVXBPMXh1SUNBZ0lDQXFJSFpoY2lCdmRHaGxjaUE5SUhkeVlYQndaV1F1Y0d4aGJuUW9Xek1zSURSZEtUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlHOTBhR1Z5TG5aaGJIVmxLQ2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXemtzSURFMlhWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ2QzSmhjSEJsWkM1MllXeDFaU2dwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnN4TENBMFhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUhkeVlYQndaWEpRYkdGdWRDaDJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ2RtRnlJSEpsYzNWc2RDeGNiaUFnSUNBZ0lDQWdJQ0J3WVhKbGJuUWdQU0IwYUdsek8xeHVYRzRnSUNBZ0lDQjNhR2xzWlNBb2NHRnlaVzUwSUdsdWMzUmhibU5sYjJZZ1ltRnpaVXh2WkdGemFDa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ1kyeHZibVVnUFNCM2NtRndjR1Z5UTJ4dmJtVW9jR0Z5Wlc1MEtUdGNiaUFnSUNBZ0lDQWdZMnh2Ym1VdVgxOXBibVJsZUY5ZklEMGdNRHRjYmlBZ0lDQWdJQ0FnWTJ4dmJtVXVYMTkyWVd4MVpYTmZYeUE5SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0FnSUNBZ2FXWWdLSEpsYzNWc2RDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhCeVpYWnBiM1Z6TGw5ZmQzSmhjSEJsWkY5ZklEMGdZMnh2Ym1VN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdjbVZ6ZFd4MElEMGdZMnh2Ym1VN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdkbUZ5SUhCeVpYWnBiM1Z6SUQwZ1kyeHZibVU3WEc0Z0lDQWdJQ0FnSUhCaGNtVnVkQ0E5SUhCaGNtVnVkQzVmWDNkeVlYQndaV1JmWHp0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhCeVpYWnBiM1Z6TGw5ZmQzSmhjSEJsWkY5ZklEMGdkbUZzZFdVN1hHNGdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvYVhNZ2JXVjBhRzlrSUdseklIUm9aU0IzY21Gd2NHVnlJSFpsY25OcGIyNGdiMllnWUY4dWNtVjJaWEp6WldBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBcUtrNXZkR1U2S2lvZ1ZHaHBjeUJ0WlhSb2IyUWdiWFYwWVhSbGN5QjBhR1VnZDNKaGNIQmxaQ0JoY25KaGVTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnVZVzFsSUhKbGRtVnljMlZjYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F3TGpFdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQlRaWEZjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3VDJKcVpXTjBmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2dZR3h2WkdGemFHQWdkM0poY0hCbGNpQnBibk4wWVc1alpTNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ2RtRnlJR0Z5Y21GNUlEMGdXekVzSURJc0lETmRPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeWhoY25KaGVTa3VjbVYyWlhKelpTZ3BMblpoYkhWbEtDbGNiaUFnSUNBZ0tpQXZMeUE5UGlCYk15d2dNaXdnTVYxY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUdOdmJuTnZiR1V1Ykc5bktHRnljbUY1S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiTXl3Z01pd2dNVjFjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQjNjbUZ3Y0dWeVVtVjJaWEp6WlNncElIdGNiaUFnSUNBZ0lIWmhjaUIyWVd4MVpTQTlJSFJvYVhNdVgxOTNjbUZ3Y0dWa1gxODdYRzRnSUNBZ0lDQnBaaUFvZG1Gc2RXVWdhVzV6ZEdGdVkyVnZaaUJNWVhwNVYzSmhjSEJsY2lrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnZDNKaGNIQmxaQ0E5SUhaaGJIVmxPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTVmWDJGamRHbHZibk5mWHk1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQjNjbUZ3Y0dWa0lEMGdibVYzSUV4aGVubFhjbUZ3Y0dWeUtIUm9hWE1wTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIZHlZWEJ3WldRZ1BTQjNjbUZ3Y0dWa0xuSmxkbVZ5YzJVb0tUdGNiaUFnSUNBZ0lDQWdkM0poY0hCbFpDNWZYMkZqZEdsdmJuTmZYeTV3ZFhOb0tIdGNiaUFnSUNBZ0lDQWdJQ0FuWm5WdVl5YzZJSFJvY25Vc1hHNGdJQ0FnSUNBZ0lDQWdKMkZ5WjNNbk9pQmJjbVYyWlhKelpWMHNYRzRnSUNBZ0lDQWdJQ0FnSjNSb2FYTkJjbWNuT2lCMWJtUmxabWx1WldSY2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVEc5a1lYTm9WM0poY0hCbGNpaDNjbUZ3Y0dWa0xDQjBhR2x6TGw5ZlkyaGhhVzVmWHlrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NTBhSEoxS0hKbGRtVnljMlVwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVWNFpXTjFkR1Z6SUhSb1pTQmphR0ZwYmlCelpYRjFaVzVqWlNCMGJ5QnlaWE52YkhabElIUm9aU0IxYm5keVlYQndaV1FnZG1Gc2RXVXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFibUZ0WlNCMllXeDFaVnh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJREF1TVM0d1hHNGdJQ0FnSUNvZ1FHRnNhV0Z6SUhSdlNsTlBUaXdnZG1Gc2RXVlBabHh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JUWlhGY2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN0tuMGdVbVYwZFhKdWN5QjBhR1VnY21WemIyeDJaV1FnZFc1M2NtRndjR1ZrSUhaaGJIVmxMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZLRnN4TENBeUxDQXpYU2t1ZG1Gc2RXVW9LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJNU3dnTWl3Z00xMWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCM2NtRndjR1Z5Vm1Gc2RXVW9LU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZbUZ6WlZkeVlYQndaWEpXWVd4MVpTaDBhR2x6TGw5ZmQzSmhjSEJsWkY5ZkxDQjBhR2x6TGw5ZllXTjBhVzl1YzE5ZktUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTb3ZYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVnpJR0Z1SUc5aWFtVmpkQ0JqYjIxd2IzTmxaQ0J2WmlCclpYbHpJR2RsYm1WeVlYUmxaQ0JtY205dElIUm9aU0J5WlhOMWJIUnpJRzltSUhKMWJtNXBibWRjYmlBZ0lDQWdLaUJsWVdOb0lHVnNaVzFsYm5RZ2IyWWdZR052Ykd4bFkzUnBiMjVnSUhSb2NuVWdZR2wwWlhKaGRHVmxZQzRnVkdobElHTnZjbkpsYzNCdmJtUnBibWNnZG1Gc2RXVWdiMlpjYmlBZ0lDQWdLaUJsWVdOb0lHdGxlU0JwY3lCMGFHVWdiblZ0WW1WeUlHOW1JSFJwYldWeklIUm9aU0JyWlhrZ2QyRnpJSEpsZEhWeWJtVmtJR0o1SUdCcGRHVnlZWFJsWldBdUlGUm9aVnh1SUNBZ0lDQXFJR2wwWlhKaGRHVmxJR2x6SUdsdWRtOXJaV1FnZDJsMGFDQnZibVVnWVhKbmRXMWxiblE2SUNoMllXeDFaU2t1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdNQzQxTGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1EyOXNiR1ZqZEdsdmJseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw4VDJKcVpXTjBmU0JqYjJ4c1pXTjBhVzl1SUZSb1pTQmpiMnhzWldOMGFXOXVJSFJ2SUdsMFpYSmhkR1VnYjNabGNpNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQmJhWFJsY21GMFpXVTlYeTVwWkdWdWRHbDBlVjBnVkdobElHbDBaWEpoZEdWbElIUnZJSFJ5WVc1elptOXliU0JyWlhsekxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdFBZbXBsWTNSOUlGSmxkSFZ5Ym5NZ2RHaGxJR052YlhCdmMyVmtJR0ZuWjNKbFoyRjBaU0J2WW1wbFkzUXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVZMjkxYm5SQ2VTaGJOaTR4TENBMExqSXNJRFl1TTEwc0lFMWhkR2d1Wm14dmIzSXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIc2dKelFuT2lBeExDQW5OaWM2SURJZ2ZWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdWR2hsSUdCZkxuQnliM0JsY25SNVlDQnBkR1Z5WVhSbFpTQnphRzl5ZEdoaGJtUXVYRzRnSUNBZ0lDb2dYeTVqYjNWdWRFSjVLRnNuYjI1bEp5d2dKM1IzYnljc0lDZDBhSEpsWlNkZExDQW5iR1Z1WjNSb0p5azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2V5QW5NeWM2SURJc0lDYzFKem9nTVNCOVhHNGdJQ0FnSUNvdlhHNGdJQ0FnZG1GeUlHTnZkVzUwUW5rZ1BTQmpjbVZoZEdWQloyZHlaV2RoZEc5eUtHWjFibU4wYVc5dUtISmxjM1ZzZEN3Z2RtRnNkV1VzSUd0bGVTa2dlMXh1SUNBZ0lDQWdhV1lnS0doaGMwOTNibEJ5YjNCbGNuUjVMbU5oYkd3b2NtVnpkV3gwTENCclpYa3BLU0I3WEc0Z0lDQWdJQ0FnSUNzcmNtVnpkV3gwVzJ0bGVWMDdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQmlZWE5sUVhOemFXZHVWbUZzZFdVb2NtVnpkV3gwTENCclpYa3NJREVwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyaGxZMnR6SUdsbUlHQndjbVZrYVdOaGRHVmdJSEpsZEhWeWJuTWdkSEoxZEdoNUlHWnZjaUFxS21Gc2JDb3FJR1ZzWlcxbGJuUnpJRzltSUdCamIyeHNaV04wYVc5dVlDNWNiaUFnSUNBZ0tpQkpkR1Z5WVhScGIyNGdhWE1nYzNSdmNIQmxaQ0J2Ym1ObElHQndjbVZrYVdOaGRHVmdJSEpsZEhWeWJuTWdabUZzYzJWNUxpQlVhR1VnY0hKbFpHbGpZWFJsSUdselhHNGdJQ0FnSUNvZ2FXNTJiMnRsWkNCM2FYUm9JSFJvY21WbElHRnlaM1Z0Wlc1MGN6b2dLSFpoYkhWbExDQnBibVJsZUh4clpYa3NJR052Ykd4bFkzUnBiMjRwTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nS2lwT2IzUmxPaW9xSUZSb2FYTWdiV1YwYUc5a0lISmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdadmNseHVJQ0FnSUNBcUlGdGxiWEIwZVNCamIyeHNaV04wYVc5dWMxMG9hSFIwY0hNNkx5OWxiaTUzYVd0cGNHVmthV0V1YjNKbkwzZHBhMmt2Ulcxd2RIbGZjMlYwS1NCaVpXTmhkWE5sWEc0Z0lDQWdJQ29nVzJWMlpYSjVkR2hwYm1jZ2FYTWdkSEoxWlYwb2FIUjBjSE02THk5bGJpNTNhV3RwY0dWa2FXRXViM0puTDNkcGEya3ZWbUZqZFc5MWMxOTBjblYwYUNrZ2IyWmNiaUFnSUNBZ0tpQmxiR1Z0Wlc1MGN5QnZaaUJsYlhCMGVTQmpiMnhzWldOMGFXOXVjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXdMakV1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCRGIyeHNaV04wYVc5dVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWHhQWW1wbFkzUjlJR052Ykd4bFkzUnBiMjRnVkdobElHTnZiR3hsWTNScGIyNGdkRzhnYVhSbGNtRjBaU0J2ZG1WeUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlGdHdjbVZrYVdOaGRHVTlYeTVwWkdWdWRHbDBlVjBnVkdobElHWjFibU4wYVc5dUlHbHVkbTlyWldRZ2NHVnlJR2wwWlhKaGRHbHZiaTVjYmlBZ0lDQWdLaUJBY0dGeVlXMHRJSHRQWW1wbFkzUjlJRnRuZFdGeVpGMGdSVzVoWW14bGN5QjFjMlVnWVhNZ1lXNGdhWFJsY21GMFpXVWdabTl5SUcxbGRHaHZaSE1nYkdsclpTQmdYeTV0WVhCZ0xseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdGliMjlzWldGdWZTQlNaWFIxY201eklHQjBjblZsWUNCcFppQmhiR3dnWld4bGJXVnVkSE1nY0dGemN5QjBhR1VnY0hKbFpHbGpZWFJsSUdOb1pXTnJMRnh1SUNBZ0lDQXFJQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dVpYWmxjbmtvVzNSeWRXVXNJREVzSUc1MWJHd3NJQ2Q1WlhNblhTd2dRbTl2YkdWaGJpazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1ptRnNjMlZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSFpoY2lCMWMyVnljeUE5SUZ0Y2JpQWdJQ0FnS2lBZ0lIc2dKM1Z6WlhJbk9pQW5ZbUZ5Ym1WNUp5d2dKMkZuWlNjNklETTJMQ0FuWVdOMGFYWmxKem9nWm1Gc2MyVWdmU3hjYmlBZ0lDQWdLaUFnSUhzZ0ozVnpaWEluT2lBblpuSmxaQ2NzSUNBZ0oyRm5aU2M2SURRd0xDQW5ZV04wYVhabEp6b2dabUZzYzJVZ2ZWeHVJQ0FnSUNBcUlGMDdYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXZMeUJVYUdVZ1lGOHViV0YwWTJobGMyQWdhWFJsY21GMFpXVWdjMmh2Y25Sb1lXNWtMbHh1SUNBZ0lDQXFJRjh1WlhabGNua29kWE5sY25Nc0lIc2dKM1Z6WlhJbk9pQW5ZbUZ5Ym1WNUp5d2dKMkZqZEdsMlpTYzZJR1poYkhObElIMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHWmhiSE5sWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUF2THlCVWFHVWdZRjh1YldGMFkyaGxjMUJ5YjNCbGNuUjVZQ0JwZEdWeVlYUmxaU0J6YUc5eWRHaGhibVF1WEc0Z0lDQWdJQ29nWHk1bGRtVnllU2gxYzJWeWN5d2dXeWRoWTNScGRtVW5MQ0JtWVd4elpWMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIUnlkV1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQzh2SUZSb1pTQmdYeTV3Y205d1pYSjBlV0FnYVhSbGNtRjBaV1VnYzJodmNuUm9ZVzVrTGx4dUlDQWdJQ0FxSUY4dVpYWmxjbmtvZFhObGNuTXNJQ2RoWTNScGRtVW5LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQm1ZV3h6WlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR1YyWlhKNUtHTnZiR3hsWTNScGIyNHNJSEJ5WldScFkyRjBaU3dnWjNWaGNtUXBJSHRjYmlBZ0lDQWdJSFpoY2lCbWRXNWpJRDBnYVhOQmNuSmhlU2hqYjJ4c1pXTjBhVzl1S1NBL0lHRnljbUY1UlhabGNua2dPaUJpWVhObFJYWmxjbms3WEc0Z0lDQWdJQ0JwWmlBb1ozVmhjbVFnSmlZZ2FYTkpkR1Z5WVhSbFpVTmhiR3dvWTI5c2JHVmpkR2x2Yml3Z2NISmxaR2xqWVhSbExDQm5kV0Z5WkNrcElIdGNiaUFnSUNBZ0lDQWdjSEpsWkdsallYUmxJRDBnZFc1a1pXWnBibVZrTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJR1oxYm1Nb1kyOXNiR1ZqZEdsdmJpd2daMlYwU1hSbGNtRjBaV1VvY0hKbFpHbGpZWFJsTENBektTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dTWFJsY21GMFpYTWdiM1psY2lCbGJHVnRaVzUwY3lCdlppQmdZMjlzYkdWamRHbHZibUFzSUhKbGRIVnlibWx1WnlCaGJpQmhjbkpoZVNCdlppQmhiR3dnWld4bGJXVnVkSE5jYmlBZ0lDQWdLaUJnY0hKbFpHbGpZWFJsWUNCeVpYUjFjbTV6SUhSeWRYUm9lU0JtYjNJdUlGUm9aU0J3Y21Wa2FXTmhkR1VnYVhNZ2FXNTJiMnRsWkNCM2FYUm9JSFJvY21WbFhHNGdJQ0FnSUNvZ1lYSm5kVzFsYm5Sek9pQW9kbUZzZFdVc0lHbHVaR1Y0Zkd0bGVTd2dZMjlzYkdWamRHbHZiaWt1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUFxS2s1dmRHVTZLaW9nVlc1c2FXdGxJR0JmTG5KbGJXOTJaV0FzSUhSb2FYTWdiV1YwYUc5a0lISmxkSFZ5Ym5NZ1lTQnVaWGNnWVhKeVlYa3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01DNHhMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnUTI5c2JHVmpkR2x2Ymx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDhUMkpxWldOMGZTQmpiMnhzWldOMGFXOXVJRlJvWlNCamIyeHNaV04wYVc5dUlIUnZJR2wwWlhKaGRHVWdiM1psY2k1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCYmNISmxaR2xqWVhSbFBWOHVhV1JsYm5ScGRIbGRJRlJvWlNCbWRXNWpkR2x2YmlCcGJuWnZhMlZrSUhCbGNpQnBkR1Z5WVhScGIyNHVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMEZ5Y21GNWZTQlNaWFIxY201eklIUm9aU0J1WlhjZ1ptbHNkR1Z5WldRZ1lYSnlZWGt1WEc0Z0lDQWdJQ29nUUhObFpTQmZMbkpsYW1WamRGeHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdkWE5sY25NZ1BTQmJYRzRnSUNBZ0lDb2dJQ0I3SUNkMWMyVnlKem9nSjJKaGNtNWxlU2NzSUNkaFoyVW5PaUF6Tml3Z0oyRmpkR2wyWlNjNklIUnlkV1VnZlN4Y2JpQWdJQ0FnS2lBZ0lIc2dKM1Z6WlhJbk9pQW5abkpsWkNjc0lDQWdKMkZuWlNjNklEUXdMQ0FuWVdOMGFYWmxKem9nWm1Gc2MyVWdmVnh1SUNBZ0lDQXFJRjA3WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1acGJIUmxjaWgxYzJWeWN5d2dablZ1WTNScGIyNG9ieWtnZXlCeVpYUjFjbTRnSVc4dVlXTjBhWFpsT3lCOUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCdlltcGxZM1J6SUdadmNpQmJKMlp5WldRblhWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdWR2hsSUdCZkxtMWhkR05vWlhOZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMbVpwYkhSbGNpaDFjMlZ5Y3l3Z2V5QW5ZV2RsSnpvZ016WXNJQ2RoWTNScGRtVW5PaUIwY25WbElIMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHOWlhbVZqZEhNZ1ptOXlJRnNuWW1GeWJtVjVKMTFjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQzh2SUZSb1pTQmdYeTV0WVhSamFHVnpVSEp2Y0dWeWRIbGdJR2wwWlhKaGRHVmxJSE5vYjNKMGFHRnVaQzVjYmlBZ0lDQWdLaUJmTG1acGJIUmxjaWgxYzJWeWN5d2dXeWRoWTNScGRtVW5MQ0JtWVd4elpWMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHOWlhbVZqZEhNZ1ptOXlJRnNuWm5KbFpDZGRYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXZMeUJVYUdVZ1lGOHVjSEp2Y0dWeWRIbGdJR2wwWlhKaGRHVmxJSE5vYjNKMGFHRnVaQzVjYmlBZ0lDQWdLaUJmTG1acGJIUmxjaWgxYzJWeWN5d2dKMkZqZEdsMlpTY3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHOWlhbVZqZEhNZ1ptOXlJRnNuWW1GeWJtVjVKMTFjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQzh2SUVOdmJXSnBibWx1WnlCelpYWmxjbUZzSUhCeVpXUnBZMkYwWlhNZ2RYTnBibWNnWUY4dWIzWmxja1YyWlhKNVlDQnZjaUJnWHk1dmRtVnlVMjl0WldBdVhHNGdJQ0FnSUNvZ1h5NW1hV3gwWlhJb2RYTmxjbk1zSUY4dWIzWmxjbE52YldVb1czc2dKMkZuWlNjNklETTJJSDBzSUZzbllXZGxKeXdnTkRCZFhTa3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHOWlhbVZqZEhNZ1ptOXlJRnNuWm5KbFpDY3NJQ2RpWVhKdVpYa25YVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHWnBiSFJsY2loamIyeHNaV04wYVc5dUxDQndjbVZrYVdOaGRHVXBJSHRjYmlBZ0lDQWdJSFpoY2lCbWRXNWpJRDBnYVhOQmNuSmhlU2hqYjJ4c1pXTjBhVzl1S1NBL0lHRnljbUY1Um1sc2RHVnlJRG9nWW1GelpVWnBiSFJsY2p0Y2JpQWdJQ0FnSUhKbGRIVnliaUJtZFc1aktHTnZiR3hsWTNScGIyNHNJR2RsZEVsMFpYSmhkR1ZsS0hCeVpXUnBZMkYwWlN3Z015a3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRWwwWlhKaGRHVnpJRzkyWlhJZ1pXeGxiV1Z1ZEhNZ2IyWWdZR052Ykd4bFkzUnBiMjVnTENCeVpYUjFjbTVwYm1jZ2RHaGxJR1pwY25OMElHVnNaVzFsYm5SY2JpQWdJQ0FnS2lCZ2NISmxaR2xqWVhSbFlDQnlaWFIxY201eklIUnlkWFJvZVNCbWIzSXVJRlJvWlNCd2NtVmthV05oZEdVZ2FYTWdhVzUyYjJ0bFpDQjNhWFJvSUhSb2NtVmxYRzRnSUNBZ0lDb2dZWEpuZFcxbGJuUnpPaUFvZG1Gc2RXVXNJR2x1WkdWNGZHdGxlU3dnWTI5c2JHVmpkR2x2YmlrdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTUM0eExqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dRMjlzYkdWamRHbHZibHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOFQySnFaV04wZlNCamIyeHNaV04wYVc5dUlGUm9aU0JqYjJ4c1pXTjBhVzl1SUhSdklHbHVjM0JsWTNRdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1czQnlaV1JwWTJGMFpUMWZMbWxrWlc1MGFYUjVYU0JVYUdVZ1puVnVZM1JwYjI0Z2FXNTJiMnRsWkNCd1pYSWdhWFJsY21GMGFXOXVMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmJabkp2YlVsdVpHVjRQVEJkSUZSb1pTQnBibVJsZUNCMGJ5QnpaV0Z5WTJnZ1puSnZiUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3S24wZ1VtVjBkWEp1Y3lCMGFHVWdiV0YwWTJobFpDQmxiR1Z0Wlc1MExDQmxiSE5sSUdCMWJtUmxabWx1WldSZ0xseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdkWE5sY25NZ1BTQmJYRzRnSUNBZ0lDb2dJQ0I3SUNkMWMyVnlKem9nSjJKaGNtNWxlU2NzSUNBbllXZGxKem9nTXpZc0lDZGhZM1JwZG1Vbk9pQjBjblZsSUgwc1hHNGdJQ0FnSUNvZ0lDQjdJQ2QxYzJWeUp6b2dKMlp5WldRbkxDQWdJQ0FuWVdkbEp6b2dOREFzSUNkaFkzUnBkbVVuT2lCbVlXeHpaU0I5TEZ4dUlDQWdJQ0FxSUNBZ2V5QW5kWE5sY2ljNklDZHdaV0ppYkdWekp5d2dKMkZuWlNjNklERXNJQ0FuWVdOMGFYWmxKem9nZEhKMVpTQjlYRzRnSUNBZ0lDb2dYVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1Wm1sdVpDaDFjMlZ5Y3l3Z1puVnVZM1JwYjI0b2J5a2dleUJ5WlhSMWNtNGdieTVoWjJVZ1BDQTBNRHNnZlNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnYjJKcVpXTjBJR1p2Y2lBblltRnlibVY1SjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z1ZHaGxJR0JmTG0xaGRHTm9aWE5nSUdsMFpYSmhkR1ZsSUhOb2IzSjBhR0Z1WkM1Y2JpQWdJQ0FnS2lCZkxtWnBibVFvZFhObGNuTXNJSHNnSjJGblpTYzZJREVzSUNkaFkzUnBkbVVuT2lCMGNuVmxJSDBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRzlpYW1WamRDQm1iM0lnSjNCbFltSnNaWE1uWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUF2THlCVWFHVWdZRjh1YldGMFkyaGxjMUJ5YjNCbGNuUjVZQ0JwZEdWeVlYUmxaU0J6YUc5eWRHaGhibVF1WEc0Z0lDQWdJQ29nWHk1bWFXNWtLSFZ6WlhKekxDQmJKMkZqZEdsMlpTY3NJR1poYkhObFhTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2IySnFaV04wSUdadmNpQW5abkpsWkNkY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUM4dklGUm9aU0JnWHk1d2NtOXdaWEowZVdBZ2FYUmxjbUYwWldVZ2MyaHZjblJvWVc1a0xseHVJQ0FnSUNBcUlGOHVabWx1WkNoMWMyVnljeXdnSjJGamRHbDJaU2NwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRzlpYW1WamRDQm1iM0lnSjJKaGNtNWxlU2RjYmlBZ0lDQWdLaTljYmlBZ0lDQjJZWElnWm1sdVpDQTlJR055WldGMFpVWnBibVFvWm1sdVpFbHVaR1Y0S1R0Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9hWE1nYldWMGFHOWtJR2x6SUd4cGEyVWdZRjh1Wm1sdVpHQWdaWGhqWlhCMElIUm9ZWFFnYVhRZ2FYUmxjbUYwWlhNZ2IzWmxjaUJsYkdWdFpXNTBjeUJ2Wmx4dUlDQWdJQ0FxSUdCamIyeHNaV04wYVc5dVlDQm1jbTl0SUhKcFoyaDBJSFJ2SUd4bFpuUXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01pNHdMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnUTI5c2JHVmpkR2x2Ymx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDhUMkpxWldOMGZTQmpiMnhzWldOMGFXOXVJRlJvWlNCamIyeHNaV04wYVc5dUlIUnZJR2x1YzNCbFkzUXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdXM0J5WldScFkyRjBaVDFmTG1sa1pXNTBhWFI1WFNCVWFHVWdablZ1WTNScGIyNGdhVzUyYjJ0bFpDQndaWElnYVhSbGNtRjBhVzl1TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JiWm5KdmJVbHVaR1Y0UFdOdmJHeGxZM1JwYjI0dWJHVnVaM1JvTFRGZElGUm9aU0JwYm1SbGVDQjBieUJ6WldGeVkyZ2dabkp2YlM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN0tuMGdVbVYwZFhKdWN5QjBhR1VnYldGMFkyaGxaQ0JsYkdWdFpXNTBMQ0JsYkhObElHQjFibVJsWm1sdVpXUmdMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbVpwYm1STVlYTjBLRnN4TENBeUxDQXpMQ0EwWFN3Z1puVnVZM1JwYjI0b2Jpa2dlMXh1SUNBZ0lDQXFJQ0FnY21WMGRYSnVJRzRnSlNBeUlEMDlJREU3WEc0Z0lDQWdJQ29nZlNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnTTF4dUlDQWdJQ0FxTDF4dUlDQWdJSFpoY2lCbWFXNWtUR0Z6ZENBOUlHTnlaV0YwWlVacGJtUW9abWx1WkV4aGMzUkpibVJsZUNrN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRWdabXhoZEhSbGJtVmtJR0Z5Y21GNUlHOW1JSFpoYkhWbGN5QmllU0J5ZFc1dWFXNW5JR1ZoWTJnZ1pXeGxiV1Z1ZENCcGJpQmdZMjlzYkdWamRHbHZibUJjYmlBZ0lDQWdLaUIwYUhKMUlHQnBkR1Z5WVhSbFpXQWdZVzVrSUdac1lYUjBaVzVwYm1jZ2RHaGxJRzFoY0hCbFpDQnlaWE4xYkhSekxpQlVhR1VnYVhSbGNtRjBaV1VnYVhNZ2FXNTJiMnRsWkZ4dUlDQWdJQ0FxSUhkcGRHZ2dkR2h5WldVZ1lYSm5kVzFsYm5Sek9pQW9kbUZzZFdVc0lHbHVaR1Y0Zkd0bGVTd2dZMjlzYkdWamRHbHZiaWt1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR3TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1EyOXNiR1ZqZEdsdmJseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw4VDJKcVpXTjBmU0JqYjJ4c1pXTjBhVzl1SUZSb1pTQmpiMnhzWldOMGFXOXVJSFJ2SUdsMFpYSmhkR1VnYjNabGNpNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQmJhWFJsY21GMFpXVTlYeTVwWkdWdWRHbDBlVjBnVkdobElHWjFibU4wYVc5dUlHbHVkbTlyWldRZ2NHVnlJR2wwWlhKaGRHbHZiaTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5Qm1iR0YwZEdWdVpXUWdZWEp5WVhrdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUdaMWJtTjBhVzl1SUdSMWNHeHBZMkYwWlNodUtTQjdYRzRnSUNBZ0lDb2dJQ0J5WlhSMWNtNGdXMjRzSUc1ZE8xeHVJQ0FnSUNBcUlIMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVabXhoZEUxaGNDaGJNU3dnTWwwc0lHUjFjR3hwWTJGMFpTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1d6RXNJREVzSURJc0lESmRYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1pteGhkRTFoY0NoamIyeHNaV04wYVc5dUxDQnBkR1Z5WVhSbFpTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHSmhjMlZHYkdGMGRHVnVLRzFoY0NoamIyeHNaV04wYVc5dUxDQnBkR1Z5WVhSbFpTa3NJREVwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb2FYTWdiV1YwYUc5a0lHbHpJR3hwYTJVZ1lGOHVabXhoZEUxaGNHQWdaWGhqWlhCMElIUm9ZWFFnYVhRZ2NtVmpkWEp6YVhabGJIa2dabXhoZEhSbGJuTWdkR2hsWEc0Z0lDQWdJQ29nYldGd2NHVmtJSEpsYzNWc2RITXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ05DNDNMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnUTI5c2JHVmpkR2x2Ymx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDhUMkpxWldOMGZTQmpiMnhzWldOMGFXOXVJRlJvWlNCamIyeHNaV04wYVc5dUlIUnZJR2wwWlhKaGRHVWdiM1psY2k1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCYmFYUmxjbUYwWldVOVh5NXBaR1Z1ZEdsMGVWMGdWR2hsSUdaMWJtTjBhVzl1SUdsdWRtOXJaV1FnY0dWeUlHbDBaWEpoZEdsdmJpNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCbWJHRjBkR1Z1WldRZ1lYSnlZWGt1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJR1oxYm1OMGFXOXVJR1IxY0d4cFkyRjBaU2h1S1NCN1hHNGdJQ0FnSUNvZ0lDQnlaWFIxY200Z1cxdGJiaXdnYmwxZFhUdGNiaUFnSUNBZ0tpQjlYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbVpzWVhSTllYQkVaV1Z3S0ZzeExDQXlYU3dnWkhWd2JHbGpZWFJsS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiTVN3Z01Td2dNaXdnTWwxY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJtYkdGMFRXRndSR1ZsY0NoamIyeHNaV04wYVc5dUxDQnBkR1Z5WVhSbFpTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHSmhjMlZHYkdGMGRHVnVLRzFoY0NoamIyeHNaV04wYVc5dUxDQnBkR1Z5WVhSbFpTa3NJRWxPUmtsT1NWUlpLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdseklHMWxkR2h2WkNCcGN5QnNhV3RsSUdCZkxtWnNZWFJOWVhCZ0lHVjRZMlZ3ZENCMGFHRjBJR2wwSUhKbFkzVnljMmwyWld4NUlHWnNZWFIwWlc1eklIUm9aVnh1SUNBZ0lDQXFJRzFoY0hCbFpDQnlaWE4xYkhSeklIVndJSFJ2SUdCa1pYQjBhR0FnZEdsdFpYTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ05DNDNMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnUTI5c2JHVmpkR2x2Ymx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDhUMkpxWldOMGZTQmpiMnhzWldOMGFXOXVJRlJvWlNCamIyeHNaV04wYVc5dUlIUnZJR2wwWlhKaGRHVWdiM1psY2k1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCYmFYUmxjbUYwWldVOVh5NXBaR1Z1ZEdsMGVWMGdWR2hsSUdaMWJtTjBhVzl1SUdsdWRtOXJaV1FnY0dWeUlHbDBaWEpoZEdsdmJpNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1cyUmxjSFJvUFRGZElGUm9aU0J0WVhocGJYVnRJSEpsWTNWeWMybHZiaUJrWlhCMGFDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCbWJHRjBkR1Z1WldRZ1lYSnlZWGt1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJR1oxYm1OMGFXOXVJR1IxY0d4cFkyRjBaU2h1S1NCN1hHNGdJQ0FnSUNvZ0lDQnlaWFIxY200Z1cxdGJiaXdnYmwxZFhUdGNiaUFnSUNBZ0tpQjlYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbVpzWVhSTllYQkVaWEIwYUNoYk1Td2dNbDBzSUdSMWNHeHBZMkYwWlN3Z01pazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1cxc3hMQ0F4WFN3Z1d6SXNJREpkWFZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR1pzWVhSTllYQkVaWEIwYUNoamIyeHNaV04wYVc5dUxDQnBkR1Z5WVhSbFpTd2daR1Z3ZEdncElIdGNiaUFnSUNBZ0lHUmxjSFJvSUQwZ1pHVndkR2dnUFQwOUlIVnVaR1ZtYVc1bFpDQS9JREVnT2lCMGIwbHVkR1ZuWlhJb1pHVndkR2dwTzF4dUlDQWdJQ0FnY21WMGRYSnVJR0poYzJWR2JHRjBkR1Z1S0cxaGNDaGpiMnhzWldOMGFXOXVMQ0JwZEdWeVlYUmxaU2tzSUdSbGNIUm9LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJKZEdWeVlYUmxjeUJ2ZG1WeUlHVnNaVzFsYm5SeklHOW1JR0JqYjJ4c1pXTjBhVzl1WUNCaGJtUWdhVzUyYjJ0bGN5QmdhWFJsY21GMFpXVmdJR1p2Y2lCbFlXTm9JR1ZzWlcxbGJuUXVYRzRnSUNBZ0lDb2dWR2hsSUdsMFpYSmhkR1ZsSUdseklHbHVkbTlyWldRZ2QybDBhQ0IwYUhKbFpTQmhjbWQxYldWdWRITTZJQ2gyWVd4MVpTd2dhVzVrWlhoOGEyVjVMQ0JqYjJ4c1pXTjBhVzl1S1M1Y2JpQWdJQ0FnS2lCSmRHVnlZWFJsWlNCbWRXNWpkR2x2Ym5NZ2JXRjVJR1Y0YVhRZ2FYUmxjbUYwYVc5dUlHVmhjbXg1SUdKNUlHVjRjR3hwWTJsMGJIa2djbVYwZFhKdWFXNW5JR0JtWVd4elpXQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXFLazV2ZEdVNktpb2dRWE1nZDJsMGFDQnZkR2hsY2lCY0lrTnZiR3hsWTNScGIyNXpYQ0lnYldWMGFHOWtjeXdnYjJKcVpXTjBjeUIzYVhSb0lHRWdYQ0pzWlc1bmRHaGNJbHh1SUNBZ0lDQXFJSEJ5YjNCbGNuUjVJR0Z5WlNCcGRHVnlZWFJsWkNCc2FXdGxJR0Z5Y21GNWN5NGdWRzhnWVhadmFXUWdkR2hwY3lCaVpXaGhkbWx2Y2lCMWMyVWdZRjh1Wm05eVNXNWdYRzRnSUNBZ0lDb2diM0lnWUY4dVptOXlUM2R1WUNCbWIzSWdiMkpxWldOMElHbDBaWEpoZEdsdmJpNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBd0xqRXVNRnh1SUNBZ0lDQXFJRUJoYkdsaGN5QmxZV05vWEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUVOdmJHeGxZM1JwYjI1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmRTlpYW1WamRIMGdZMjlzYkdWamRHbHZiaUJVYUdVZ1kyOXNiR1ZqZEdsdmJpQjBieUJwZEdWeVlYUmxJRzkyWlhJdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1cybDBaWEpoZEdWbFBWOHVhV1JsYm5ScGRIbGRJRlJvWlNCbWRXNWpkR2x2YmlCcGJuWnZhMlZrSUhCbGNpQnBkR1Z5WVhScGIyNHVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMEZ5Y21GNWZFOWlhbVZqZEgwZ1VtVjBkWEp1Y3lCZ1kyOXNiR1ZqZEdsdmJtQXVYRzRnSUNBZ0lDb2dRSE5sWlNCZkxtWnZja1ZoWTJoU2FXZG9kRnh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbVp2Y2tWaFkyZ29XekVzSURKZExDQm1kVzVqZEdsdmJpaDJZV3gxWlNrZ2UxeHVJQ0FnSUNBcUlDQWdZMjl1YzI5c1pTNXNiMmNvZG1Gc2RXVXBPMXh1SUNBZ0lDQXFJSDBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRXh2WjNNZ1lERmdJSFJvWlc0Z1lESmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVtYjNKRllXTm9LSHNnSjJFbk9pQXhMQ0FuWWljNklESWdmU3dnWm5WdVkzUnBiMjRvZG1Gc2RXVXNJR3RsZVNrZ2UxeHVJQ0FnSUNBcUlDQWdZMjl1YzI5c1pTNXNiMmNvYTJWNUtUdGNiaUFnSUNBZ0tpQjlLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQk1iMmR6SUNkaEp5QjBhR1Z1SUNkaUp5QW9hWFJsY21GMGFXOXVJRzl5WkdWeUlHbHpJRzV2ZENCbmRXRnlZVzUwWldWa0tTNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCbWIzSkZZV05vS0dOdmJHeGxZM1JwYjI0c0lHbDBaWEpoZEdWbEtTQjdYRzRnSUNBZ0lDQjJZWElnWm5WdVl5QTlJR2x6UVhKeVlYa29ZMjlzYkdWamRHbHZiaWtnUHlCaGNuSmhlVVZoWTJnZ09pQmlZWE5sUldGamFEdGNiaUFnSUNBZ0lISmxkSFZ5YmlCbWRXNWpLR052Ykd4bFkzUnBiMjRzSUdkbGRFbDBaWEpoZEdWbEtHbDBaWEpoZEdWbExDQXpLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdocGN5QnRaWFJvYjJRZ2FYTWdiR2xyWlNCZ1h5NW1iM0pGWVdOb1lDQmxlR05sY0hRZ2RHaGhkQ0JwZENCcGRHVnlZWFJsY3lCdmRtVnlJR1ZzWlcxbGJuUnpJRzltWEc0Z0lDQWdJQ29nWUdOdmJHeGxZM1JwYjI1Z0lHWnliMjBnY21sbmFIUWdkRzhnYkdWbWRDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBeUxqQXVNRnh1SUNBZ0lDQXFJRUJoYkdsaGN5QmxZV05vVW1sbmFIUmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dRMjlzYkdWamRHbHZibHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOFQySnFaV04wZlNCamIyeHNaV04wYVc5dUlGUm9aU0JqYjJ4c1pXTjBhVzl1SUhSdklHbDBaWEpoZEdVZ2IzWmxjaTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JiYVhSbGNtRjBaV1U5WHk1cFpHVnVkR2wwZVYwZ1ZHaGxJR1oxYm1OMGFXOXVJR2x1ZG05clpXUWdjR1Z5SUdsMFpYSmhkR2x2Ymk1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1FYSnlZWGw4VDJKcVpXTjBmU0JTWlhSMWNtNXpJR0JqYjJ4c1pXTjBhVzl1WUM1Y2JpQWdJQ0FnS2lCQWMyVmxJRjh1Wm05eVJXRmphRnh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbVp2Y2tWaFkyaFNhV2RvZENoYk1Td2dNbDBzSUdaMWJtTjBhVzl1S0haaGJIVmxLU0I3WEc0Z0lDQWdJQ29nSUNCamIyNXpiMnhsTG14dlp5aDJZV3gxWlNrN1hHNGdJQ0FnSUNvZ2ZTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1RHOW5jeUJnTW1BZ2RHaGxiaUJnTVdBdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnWm05eVJXRmphRkpwWjJoMEtHTnZiR3hsWTNScGIyNHNJR2wwWlhKaGRHVmxLU0I3WEc0Z0lDQWdJQ0IyWVhJZ1puVnVZeUE5SUdselFYSnlZWGtvWTI5c2JHVmpkR2x2YmlrZ1B5QmhjbkpoZVVWaFkyaFNhV2RvZENBNklHSmhjMlZGWVdOb1VtbG5hSFE3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdablZ1WXloamIyeHNaV04wYVc5dUxDQm5aWFJKZEdWeVlYUmxaU2hwZEdWeVlYUmxaU3dnTXlrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnlaV0YwWlhNZ1lXNGdiMkpxWldOMElHTnZiWEJ2YzJWa0lHOW1JR3RsZVhNZ1oyVnVaWEpoZEdWa0lHWnliMjBnZEdobElISmxjM1ZzZEhNZ2IyWWdjblZ1Ym1sdVoxeHVJQ0FnSUNBcUlHVmhZMmdnWld4bGJXVnVkQ0J2WmlCZ1kyOXNiR1ZqZEdsdmJtQWdkR2h5ZFNCZ2FYUmxjbUYwWldWZ0xpQlVhR1VnYjNKa1pYSWdiMllnWjNKdmRYQmxaQ0IyWVd4MVpYTmNiaUFnSUNBZ0tpQnBjeUJrWlhSbGNtMXBibVZrSUdKNUlIUm9aU0J2Y21SbGNpQjBhR1Y1SUc5alkzVnlJR2x1SUdCamIyeHNaV04wYVc5dVlDNGdWR2hsSUdOdmNuSmxjM0J2Ym1ScGJtZGNiaUFnSUNBZ0tpQjJZV3gxWlNCdlppQmxZV05vSUd0bGVTQnBjeUJoYmlCaGNuSmhlU0J2WmlCbGJHVnRaVzUwY3lCeVpYTndiMjV6YVdKc1pTQm1iM0lnWjJWdVpYSmhkR2x1WnlCMGFHVmNiaUFnSUNBZ0tpQnJaWGt1SUZSb1pTQnBkR1Z5WVhSbFpTQnBjeUJwYm5admEyVmtJSGRwZEdnZ2IyNWxJR0Z5WjNWdFpXNTBPaUFvZG1Gc2RXVXBMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEQXVNUzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUVOdmJHeGxZM1JwYjI1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmRTlpYW1WamRIMGdZMjlzYkdWamRHbHZiaUJVYUdVZ1kyOXNiR1ZqZEdsdmJpQjBieUJwZEdWeVlYUmxJRzkyWlhJdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1cybDBaWEpoZEdWbFBWOHVhV1JsYm5ScGRIbGRJRlJvWlNCcGRHVnlZWFJsWlNCMGJ5QjBjbUZ1YzJadmNtMGdhMlY1Y3k1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1QySnFaV04wZlNCU1pYUjFjbTV6SUhSb1pTQmpiMjF3YjNObFpDQmhaMmR5WldkaGRHVWdiMkpxWldOMExseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtZHliM1Z3UW5rb1d6WXVNU3dnTkM0eUxDQTJMak5kTENCTllYUm9MbVpzYjI5eUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCN0lDYzBKem9nV3pRdU1sMHNJQ2MySnpvZ1d6WXVNU3dnTmk0elhTQjlYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXZMeUJVYUdVZ1lGOHVjSEp2Y0dWeWRIbGdJR2wwWlhKaGRHVmxJSE5vYjNKMGFHRnVaQzVjYmlBZ0lDQWdLaUJmTG1keWIzVndRbmtvV3lkdmJtVW5MQ0FuZEhkdkp5d2dKM1JvY21WbEoxMHNJQ2RzWlc1bmRHZ25LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQjdJQ2N6SnpvZ1d5ZHZibVVuTENBbmRIZHZKMTBzSUNjMUp6b2dXeWQwYUhKbFpTZGRJSDFjYmlBZ0lDQWdLaTljYmlBZ0lDQjJZWElnWjNKdmRYQkNlU0E5SUdOeVpXRjBaVUZuWjNKbFoyRjBiM0lvWm5WdVkzUnBiMjRvY21WemRXeDBMQ0IyWVd4MVpTd2dhMlY1S1NCN1hHNGdJQ0FnSUNCcFppQW9hR0Z6VDNkdVVISnZjR1Z5ZEhrdVkyRnNiQ2h5WlhOMWJIUXNJR3RsZVNrcElIdGNiaUFnSUNBZ0lDQWdjbVZ6ZFd4MFcydGxlVjB1Y0hWemFDaDJZV3gxWlNrN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCaVlYTmxRWE56YVdkdVZtRnNkV1VvY21WemRXeDBMQ0JyWlhrc0lGdDJZV3gxWlYwcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMmhsWTJ0eklHbG1JR0IyWVd4MVpXQWdhWE1nYVc0Z1lHTnZiR3hsWTNScGIyNWdMaUJKWmlCZ1kyOXNiR1ZqZEdsdmJtQWdhWE1nWVNCemRISnBibWNzSUdsMEozTmNiaUFnSUNBZ0tpQmphR1ZqYTJWa0lHWnZjaUJoSUhOMVluTjBjbWx1WnlCdlppQmdkbUZzZFdWZ0xDQnZkR2hsY25kcGMyVmNiaUFnSUNBZ0tpQmJZRk5oYldWV1lXeDFaVnBsY205Z1hTaG9kSFJ3T2k4dlpXTnRZUzFwYm5SbGNtNWhkR2x2Ym1Gc0xtOXlaeTlsWTIxaExUSTJNaTgzTGpBdkkzTmxZeTF6WVcxbGRtRnNkV1Y2WlhKdktWeHVJQ0FnSUNBcUlHbHpJSFZ6WldRZ1ptOXlJR1Z4ZFdGc2FYUjVJR052YlhCaGNtbHpiMjV6TGlCSlppQmdabkp2YlVsdVpHVjRZQ0JwY3lCdVpXZGhkR2wyWlN3Z2FYUW5jeUIxYzJWa0lHRnpYRzRnSUNBZ0lDb2dkR2hsSUc5bVpuTmxkQ0JtY205dElIUm9aU0JsYm1RZ2IyWWdZR052Ykd4bFkzUnBiMjVnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJREF1TVM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFTnZiR3hsWTNScGIyNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZkU5aWFtVmpkSHh6ZEhKcGJtZDlJR052Ykd4bFkzUnBiMjRnVkdobElHTnZiR3hsWTNScGIyNGdkRzhnYVc1emNHVmpkQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCelpXRnlZMmdnWm05eUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYlpuSnZiVWx1WkdWNFBUQmRJRlJvWlNCcGJtUmxlQ0IwYnlCelpXRnlZMmdnWm5KdmJTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwdElIdFBZbXBsWTNSOUlGdG5kV0Z5WkYwZ1JXNWhZbXhsY3lCMWMyVWdZWE1nWVc0Z2FYUmxjbUYwWldVZ1ptOXlJRzFsZEdodlpITWdiR2xyWlNCZ1h5NXlaV1IxWTJWZ0xseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdGliMjlzWldGdWZTQlNaWFIxY201eklHQjBjblZsWUNCcFppQmdkbUZzZFdWZ0lHbHpJR1p2ZFc1a0xDQmxiSE5sSUdCbVlXeHpaV0F1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YVc1amJIVmtaWE1vV3pFc0lESXNJRE5kTENBeEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCMGNuVmxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx1WTJ4MVpHVnpLRnN4TENBeUxDQXpYU3dnTVN3Z01pazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1ptRnNjMlZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YVc1amJIVmtaWE1vZXlBbllTYzZJREVzSUNkaUp6b2dNaUI5TENBeEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCMGNuVmxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx1WTJ4MVpHVnpLQ2RoWW1Oa0p5d2dKMkpqSnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZEhKMVpWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdsdVkyeDFaR1Z6S0dOdmJHeGxZM1JwYjI0c0lIWmhiSFZsTENCbWNtOXRTVzVrWlhnc0lHZDFZWEprS1NCN1hHNGdJQ0FnSUNCamIyeHNaV04wYVc5dUlEMGdhWE5CY25KaGVVeHBhMlVvWTI5c2JHVmpkR2x2YmlrZ1B5QmpiMnhzWldOMGFXOXVJRG9nZG1Gc2RXVnpLR052Ykd4bFkzUnBiMjRwTzF4dUlDQWdJQ0FnWm5KdmJVbHVaR1Y0SUQwZ0tHWnliMjFKYm1SbGVDQW1KaUFoWjNWaGNtUXBJRDhnZEc5SmJuUmxaMlZ5S0daeWIyMUpibVJsZUNrZ09pQXdPMXh1WEc0Z0lDQWdJQ0IyWVhJZ2JHVnVaM1JvSUQwZ1kyOXNiR1ZqZEdsdmJpNXNaVzVuZEdnN1hHNGdJQ0FnSUNCcFppQW9abkp2YlVsdVpHVjRJRHdnTUNrZ2UxeHVJQ0FnSUNBZ0lDQm1jbTl0U1c1a1pYZ2dQU0J1WVhScGRtVk5ZWGdvYkdWdVozUm9JQ3NnWm5KdmJVbHVaR1Y0TENBd0tUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCcGMxTjBjbWx1WnloamIyeHNaV04wYVc5dUtWeHVJQ0FnSUNBZ0lDQS9JQ2htY205dFNXNWtaWGdnUEQwZ2JHVnVaM1JvSUNZbUlHTnZiR3hsWTNScGIyNHVhVzVrWlhoUFppaDJZV3gxWlN3Z1puSnZiVWx1WkdWNEtTQStJQzB4S1Z4dUlDQWdJQ0FnSUNBNklDZ2hJV3hsYm1kMGFDQW1KaUJpWVhObFNXNWtaWGhQWmloamIyeHNaV04wYVc5dUxDQjJZV3gxWlN3Z1puSnZiVWx1WkdWNEtTQStJQzB4S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCSmJuWnZhMlZ6SUhSb1pTQnRaWFJvYjJRZ1lYUWdZSEJoZEdoZ0lHOW1JR1ZoWTJnZ1pXeGxiV1Z1ZENCcGJpQmdZMjlzYkdWamRHbHZibUFzSUhKbGRIVnlibWx1WjF4dUlDQWdJQ0FxSUdGdUlHRnljbUY1SUc5bUlIUm9aU0J5WlhOMWJIUnpJRzltSUdWaFkyZ2dhVzUyYjJ0bFpDQnRaWFJvYjJRdUlFRnVlU0JoWkdScGRHbHZibUZzSUdGeVozVnRaVzUwYzF4dUlDQWdJQ0FxSUdGeVpTQndjbTkyYVdSbFpDQjBieUJsWVdOb0lHbHVkbTlyWldRZ2JXVjBhRzlrTGlCSlppQmdjR0YwYUdBZ2FYTWdZU0JtZFc1amRHbHZiaXdnYVhRbmN5QnBiblp2YTJWa1hHNGdJQ0FnSUNvZ1ptOXlMQ0JoYm1RZ1lIUm9hWE5nSUdKdmRXNWtJSFJ2TENCbFlXTm9JR1ZzWlcxbGJuUWdhVzRnWUdOdmJHeGxZM1JwYjI1Z0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRU52Ykd4bFkzUnBiMjVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZFOWlhbVZqZEgwZ1kyOXNiR1ZqZEdsdmJpQlVhR1VnWTI5c2JHVmpkR2x2YmlCMGJ5QnBkR1Z5WVhSbElHOTJaWEl1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYeEdkVzVqZEdsdmJueHpkSEpwYm1kOUlIQmhkR2dnVkdobElIQmhkR2dnYjJZZ2RHaGxJRzFsZEdodlpDQjBieUJwYm5admEyVWdiM0pjYmlBZ0lDQWdLaUFnZEdobElHWjFibU4wYVc5dUlHbHVkbTlyWldRZ2NHVnlJR2wwWlhKaGRHbHZiaTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleTR1TGlwOUlGdGhjbWR6WFNCVWFHVWdZWEpuZFcxbGJuUnpJSFJ2SUdsdWRtOXJaU0JsWVdOb0lHMWxkR2h2WkNCM2FYUm9MbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QjBhR1VnWVhKeVlYa2diMllnY21WemRXeDBjeTVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVwYm5admEyVk5ZWEFvVzFzMUxDQXhMQ0EzWFN3Z1d6TXNJRElzSURGZFhTd2dKM052Y25RbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYld6RXNJRFVzSURkZExDQmJNU3dnTWl3Z00xMWRYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx1ZG05clpVMWhjQ2hiTVRJekxDQTBOVFpkTENCVGRISnBibWN1Y0hKdmRHOTBlWEJsTG5Od2JHbDBMQ0FuSnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnVzFzbk1TY3NJQ2N5Snl3Z0p6TW5YU3dnV3ljMEp5d2dKelVuTENBbk5pZGRYVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIWmhjaUJwYm5admEyVk5ZWEFnUFNCaVlYTmxVbVZ6ZENobWRXNWpkR2x2YmloamIyeHNaV04wYVc5dUxDQndZWFJvTENCaGNtZHpLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2FXNWtaWGdnUFNBdE1TeGNiaUFnSUNBZ0lDQWdJQ0JwYzBaMWJtTWdQU0IwZVhCbGIyWWdjR0YwYUNBOVBTQW5ablZ1WTNScGIyNG5MRnh1SUNBZ0lDQWdJQ0FnSUhKbGMzVnNkQ0E5SUdselFYSnlZWGxNYVd0bEtHTnZiR3hsWTNScGIyNHBJRDhnUVhKeVlYa29ZMjlzYkdWamRHbHZiaTVzWlc1bmRHZ3BJRG9nVzEwN1hHNWNiaUFnSUNBZ0lHSmhjMlZGWVdOb0tHTnZiR3hsWTNScGIyNHNJR1oxYm1OMGFXOXVLSFpoYkhWbEtTQjdYRzRnSUNBZ0lDQWdJSEpsYzNWc2RGc3JLMmx1WkdWNFhTQTlJR2x6Um5WdVl5QS9JR0Z3Y0d4NUtIQmhkR2dzSUhaaGJIVmxMQ0JoY21kektTQTZJR0poYzJWSmJuWnZhMlVvZG1Gc2RXVXNJSEJoZEdnc0lHRnlaM01wTzF4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTNKbFlYUmxjeUJoYmlCdlltcGxZM1FnWTI5dGNHOXpaV1FnYjJZZ2EyVjVjeUJuWlc1bGNtRjBaV1FnWm5KdmJTQjBhR1VnY21WemRXeDBjeUJ2WmlCeWRXNXVhVzVuWEc0Z0lDQWdJQ29nWldGamFDQmxiR1Z0Wlc1MElHOW1JR0JqYjJ4c1pXTjBhVzl1WUNCMGFISjFJR0JwZEdWeVlYUmxaV0F1SUZSb1pTQmpiM0p5WlhOd2IyNWthVzVuSUhaaGJIVmxJRzltWEc0Z0lDQWdJQ29nWldGamFDQnJaWGtnYVhNZ2RHaGxJR3hoYzNRZ1pXeGxiV1Z1ZENCeVpYTndiMjV6YVdKc1pTQm1iM0lnWjJWdVpYSmhkR2x1WnlCMGFHVWdhMlY1TGlCVWFHVmNiaUFnSUNBZ0tpQnBkR1Z5WVhSbFpTQnBjeUJwYm5admEyVmtJSGRwZEdnZ2IyNWxJR0Z5WjNWdFpXNTBPaUFvZG1Gc2RXVXBMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUVOdmJHeGxZM1JwYjI1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmRTlpYW1WamRIMGdZMjlzYkdWamRHbHZiaUJVYUdVZ1kyOXNiR1ZqZEdsdmJpQjBieUJwZEdWeVlYUmxJRzkyWlhJdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1cybDBaWEpoZEdWbFBWOHVhV1JsYm5ScGRIbGRJRlJvWlNCcGRHVnlZWFJsWlNCMGJ5QjBjbUZ1YzJadmNtMGdhMlY1Y3k1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1QySnFaV04wZlNCU1pYUjFjbTV6SUhSb1pTQmpiMjF3YjNObFpDQmhaMmR5WldkaGRHVWdiMkpxWldOMExseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdZWEp5WVhrZ1BTQmJYRzRnSUNBZ0lDb2dJQ0I3SUNka2FYSW5PaUFuYkdWbWRDY3NJQ2RqYjJSbEp6b2dPVGNnZlN4Y2JpQWdJQ0FnS2lBZ0lIc2dKMlJwY2ljNklDZHlhV2RvZENjc0lDZGpiMlJsSnpvZ01UQXdJSDFjYmlBZ0lDQWdLaUJkTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1clpYbENlU2hoY25KaGVTd2dablZ1WTNScGIyNG9ieWtnZTF4dUlDQWdJQ0FxSUNBZ2NtVjBkWEp1SUZOMGNtbHVaeTVtY205dFEyaGhja052WkdVb2J5NWpiMlJsS1R0Y2JpQWdJQ0FnS2lCOUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCN0lDZGhKem9nZXlBblpHbHlKem9nSjJ4bFpuUW5MQ0FuWTI5a1pTYzZJRGszSUgwc0lDZGtKem9nZXlBblpHbHlKem9nSjNKcFoyaDBKeXdnSjJOdlpHVW5PaUF4TURBZ2ZTQjlYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbXRsZVVKNUtHRnljbUY1TENBblpHbHlKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdleUFuYkdWbWRDYzZJSHNnSjJScGNpYzZJQ2RzWldaMEp5d2dKMk52WkdVbk9pQTVOeUI5TENBbmNtbG5hSFFuT2lCN0lDZGthWEluT2lBbmNtbG5hSFFuTENBblkyOWtaU2M2SURFd01DQjlJSDFjYmlBZ0lDQWdLaTljYmlBZ0lDQjJZWElnYTJWNVFua2dQU0JqY21WaGRHVkJaMmR5WldkaGRHOXlLR1oxYm1OMGFXOXVLSEpsYzNWc2RDd2dkbUZzZFdVc0lHdGxlU2tnZTF4dUlDQWdJQ0FnWW1GelpVRnpjMmxuYmxaaGJIVmxLSEpsYzNWc2RDd2dhMlY1TENCMllXeDFaU2s3WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdGdUlHRnljbUY1SUc5bUlIWmhiSFZsY3lCaWVTQnlkVzV1YVc1bklHVmhZMmdnWld4bGJXVnVkQ0JwYmlCZ1kyOXNiR1ZqZEdsdmJtQWdkR2h5ZFZ4dUlDQWdJQ0FxSUdCcGRHVnlZWFJsWldBdUlGUm9aU0JwZEdWeVlYUmxaU0JwY3lCcGJuWnZhMlZrSUhkcGRHZ2dkR2h5WldVZ1lYSm5kVzFsYm5Sek9seHVJQ0FnSUNBcUlDaDJZV3gxWlN3Z2FXNWtaWGg4YTJWNUxDQmpiMnhzWldOMGFXOXVLUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRTFoYm5rZ2JHOWtZWE5vSUcxbGRHaHZaSE1nWVhKbElHZDFZWEprWldRZ2RHOGdkMjl5YXlCaGN5QnBkR1Z5WVhSbFpYTWdabTl5SUcxbGRHaHZaSE1nYkdsclpWeHVJQ0FnSUNBcUlHQmZMbVYyWlhKNVlDd2dZRjh1Wm1sc2RHVnlZQ3dnWUY4dWJXRndZQ3dnWUY4dWJXRndWbUZzZFdWellDd2dZRjh1Y21WcVpXTjBZQ3dnWVc1a0lHQmZMbk52YldWZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1ZHaGxJR2QxWVhKa1pXUWdiV1YwYUc5a2N5QmhjbVU2WEc0Z0lDQWdJQ29nWUdGeWVXQXNJR0JqYUhWdWEyQXNJR0JqZFhKeWVXQXNJR0JqZFhKeWVWSnBaMmgwWUN3Z1lHUnliM0JnTENCZ1pISnZjRkpwWjJoMFlDd2dZR1YyWlhKNVlDeGNiaUFnSUNBZ0tpQmdabWxzYkdBc0lHQnBiblpsY25SZ0xDQmdjR0Z5YzJWSmJuUmdMQ0JnY21GdVpHOXRZQ3dnWUhKaGJtZGxZQ3dnWUhKaGJtZGxVbWxuYUhSZ0xDQmdjbVZ3WldGMFlDeGNiaUFnSUNBZ0tpQmdjMkZ0Y0d4bFUybDZaV0FzSUdCemJHbGpaV0FzSUdCemIyMWxZQ3dnWUhOdmNuUkNlV0FzSUdCemNHeHBkR0FzSUdCMFlXdGxZQ3dnWUhSaGEyVlNhV2RvZEdBc1hHNGdJQ0FnSUNvZ1lIUmxiWEJzWVhSbFlDd2dZSFJ5YVcxZ0xDQmdkSEpwYlVWdVpHQXNJR0IwY21sdFUzUmhjblJnTENCaGJtUWdZSGR2Y21SellGeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURBdU1TNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRU52Ykd4bFkzUnBiMjVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZFOWlhbVZqZEgwZ1kyOXNiR1ZqZEdsdmJpQlVhR1VnWTI5c2JHVmpkR2x2YmlCMGJ5QnBkR1Z5WVhSbElHOTJaWEl1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnVzJsMFpYSmhkR1ZsUFY4dWFXUmxiblJwZEhsZElGUm9aU0JtZFc1amRHbHZiaUJwYm5admEyVmtJSEJsY2lCcGRHVnlZWFJwYjI0dVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnYldGd2NHVmtJR0Z5Y21GNUxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCbWRXNWpkR2x2YmlCemNYVmhjbVVvYmlrZ2UxeHVJQ0FnSUNBcUlDQWdjbVYwZFhKdUlHNGdLaUJ1TzF4dUlDQWdJQ0FxSUgxY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWJXRndLRnMwTENBNFhTd2djM0YxWVhKbEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYk1UWXNJRFkwWFZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1dFlYQW9leUFuWVNjNklEUXNJQ2RpSnpvZ09DQjlMQ0J6Y1hWaGNtVXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc3hOaXdnTmpSZElDaHBkR1Z5WVhScGIyNGdiM0prWlhJZ2FYTWdibTkwSUdkMVlYSmhiblJsWldRcFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdkWE5sY25NZ1BTQmJYRzRnSUNBZ0lDb2dJQ0I3SUNkMWMyVnlKem9nSjJKaGNtNWxlU2NnZlN4Y2JpQWdJQ0FnS2lBZ0lIc2dKM1Z6WlhJbk9pQW5abkpsWkNjZ2ZWeHVJQ0FnSUNBcUlGMDdYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXZMeUJVYUdVZ1lGOHVjSEp2Y0dWeWRIbGdJR2wwWlhKaGRHVmxJSE5vYjNKMGFHRnVaQzVjYmlBZ0lDQWdLaUJmTG0xaGNDaDFjMlZ5Y3l3Z0ozVnpaWEluS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiSjJKaGNtNWxlU2NzSUNkbWNtVmtKMTFjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQnRZWEFvWTI5c2JHVmpkR2x2Yml3Z2FYUmxjbUYwWldVcElIdGNiaUFnSUNBZ0lIWmhjaUJtZFc1aklEMGdhWE5CY25KaGVTaGpiMnhzWldOMGFXOXVLU0EvSUdGeWNtRjVUV0Z3SURvZ1ltRnpaVTFoY0R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJtZFc1aktHTnZiR3hsWTNScGIyNHNJR2RsZEVsMFpYSmhkR1ZsS0dsMFpYSmhkR1ZsTENBektTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hwY3lCdFpYUm9iMlFnYVhNZ2JHbHJaU0JnWHk1emIzSjBRbmxnSUdWNFkyVndkQ0IwYUdGMElHbDBJR0ZzYkc5M2N5QnpjR1ZqYVdaNWFXNW5JSFJvWlNCemIzSjBYRzRnSUNBZ0lDb2diM0prWlhKeklHOW1JSFJvWlNCcGRHVnlZWFJsWlhNZ2RHOGdjMjl5ZENCaWVTNGdTV1lnWUc5eVpHVnljMkFnYVhNZ2RXNXpjR1ZqYVdacFpXUXNJR0ZzYkNCMllXeDFaWE5jYmlBZ0lDQWdLaUJoY21VZ2MyOXlkR1ZrSUdsdUlHRnpZMlZ1WkdsdVp5QnZjbVJsY2k0Z1QzUm9aWEozYVhObExDQnpjR1ZqYVdaNUlHRnVJRzl5WkdWeUlHOW1JRndpWkdWelkxd2lJR1p2Y2x4dUlDQWdJQ0FxSUdSbGMyTmxibVJwYm1jZ2IzSWdYQ0poYzJOY0lpQm1iM0lnWVhOalpXNWthVzVuSUhOdmNuUWdiM0prWlhJZ2IyWWdZMjl5Y21WemNHOXVaR2x1WnlCMllXeDFaWE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR3TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1EyOXNiR1ZqZEdsdmJseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw4VDJKcVpXTjBmU0JqYjJ4c1pXTjBhVzl1SUZSb1pTQmpiMnhzWldOMGFXOXVJSFJ2SUdsMFpYSmhkR1VnYjNabGNpNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1VzExOFJuVnVZM1JwYjI1YlhYeFBZbXBsWTNSYlhYeHpkSEpwYm1kYlhYMGdXMmwwWlhKaGRHVmxjejFiWHk1cFpHVnVkR2wwZVYxZFhHNGdJQ0FnSUNvZ0lGUm9aU0JwZEdWeVlYUmxaWE1nZEc4Z2MyOXlkQ0JpZVM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMXRkZlNCYmIzSmtaWEp6WFNCVWFHVWdjMjl5ZENCdmNtUmxjbk1nYjJZZ1lHbDBaWEpoZEdWbGMyQXVYRzRnSUNBZ0lDb2dRSEJoY21GdExTQjdUMkpxWldOMGZTQmJaM1ZoY21SZElFVnVZV0pzWlhNZ2RYTmxJR0Z6SUdGdUlHbDBaWEpoZEdWbElHWnZjaUJ0WlhSb2IyUnpJR3hwYTJVZ1lGOHVjbVZrZFdObFlDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCemIzSjBaV1FnWVhKeVlYa3VYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlIWmhjaUIxYzJWeWN5QTlJRnRjYmlBZ0lDQWdLaUFnSUhzZ0ozVnpaWEluT2lBblpuSmxaQ2NzSUNBZ0oyRm5aU2M2SURRNElIMHNYRzRnSUNBZ0lDb2dJQ0I3SUNkMWMyVnlKem9nSjJKaGNtNWxlU2NzSUNkaFoyVW5PaUF6TkNCOUxGeHVJQ0FnSUNBcUlDQWdleUFuZFhObGNpYzZJQ2RtY21Wa0p5d2dJQ0FuWVdkbEp6b2dOREFnZlN4Y2JpQWdJQ0FnS2lBZ0lIc2dKM1Z6WlhJbk9pQW5ZbUZ5Ym1WNUp5d2dKMkZuWlNjNklETTJJSDFjYmlBZ0lDQWdLaUJkTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z1UyOXlkQ0JpZVNCZ2RYTmxjbUFnYVc0Z1lYTmpaVzVrYVc1bklHOXlaR1Z5SUdGdVpDQmllU0JnWVdkbFlDQnBiaUJrWlhOalpXNWthVzVuSUc5eVpHVnlMbHh1SUNBZ0lDQXFJRjh1YjNKa1pYSkNlU2gxYzJWeWN5d2dXeWQxYzJWeUp5d2dKMkZuWlNkZExDQmJKMkZ6WXljc0lDZGtaWE5qSjEwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUc5aWFtVmpkSE1nWm05eUlGdGJKMkpoY201bGVTY3NJRE0yWFN3Z1d5ZGlZWEp1WlhrbkxDQXpORjBzSUZzblpuSmxaQ2NzSURRNFhTd2dXeWRtY21Wa0p5d2dOREJkWFZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJRzl5WkdWeVFua29ZMjlzYkdWamRHbHZiaXdnYVhSbGNtRjBaV1Z6TENCdmNtUmxjbk1zSUdkMVlYSmtLU0I3WEc0Z0lDQWdJQ0JwWmlBb1kyOXNiR1ZqZEdsdmJpQTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmJYVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR2xtSUNnaGFYTkJjbkpoZVNocGRHVnlZWFJsWlhNcEtTQjdYRzRnSUNBZ0lDQWdJR2wwWlhKaGRHVmxjeUE5SUdsMFpYSmhkR1ZsY3lBOVBTQnVkV3hzSUQ4Z1cxMGdPaUJiYVhSbGNtRjBaV1Z6WFR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUc5eVpHVnljeUE5SUdkMVlYSmtJRDhnZFc1a1pXWnBibVZrSURvZ2IzSmtaWEp6TzF4dUlDQWdJQ0FnYVdZZ0tDRnBjMEZ5Y21GNUtHOXlaR1Z5Y3lrcElIdGNiaUFnSUNBZ0lDQWdiM0prWlhKeklEMGdiM0prWlhKeklEMDlJRzUxYkd3Z1B5QmJYU0E2SUZ0dmNtUmxjbk5kTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJR0poYzJWUGNtUmxja0o1S0dOdmJHeGxZM1JwYjI0c0lHbDBaWEpoZEdWbGN5d2diM0prWlhKektUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRnVJR0Z5Y21GNUlHOW1JR1ZzWlcxbGJuUnpJSE53YkdsMElHbHVkRzhnZEhkdklHZHliM1Z3Y3l3Z2RHaGxJR1pwY25OMElHOW1JSGRvYVdOb1hHNGdJQ0FnSUNvZ1kyOXVkR0ZwYm5NZ1pXeGxiV1Z1ZEhNZ1lIQnlaV1JwWTJGMFpXQWdjbVYwZFhKdWN5QjBjblYwYUhrZ1ptOXlMQ0IwYUdVZ2MyVmpiMjVrSUc5bUlIZG9hV05vWEc0Z0lDQWdJQ29nWTI5dWRHRnBibk1nWld4bGJXVnVkSE1nWUhCeVpXUnBZMkYwWldBZ2NtVjBkWEp1Y3lCbVlXeHpaWGtnWm05eUxpQlVhR1VnY0hKbFpHbGpZWFJsSUdselhHNGdJQ0FnSUNvZ2FXNTJiMnRsWkNCM2FYUm9JRzl1WlNCaGNtZDFiV1Z1ZERvZ0tIWmhiSFZsS1M1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F6TGpBdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQkRiMnhzWldOMGFXOXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVh4UFltcGxZM1I5SUdOdmJHeGxZM1JwYjI0Z1ZHaGxJR052Ykd4bFkzUnBiMjRnZEc4Z2FYUmxjbUYwWlNCdmRtVnlMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJRnR3Y21Wa2FXTmhkR1U5WHk1cFpHVnVkR2wwZVYwZ1ZHaGxJR1oxYm1OMGFXOXVJR2x1ZG05clpXUWdjR1Z5SUdsMFpYSmhkR2x2Ymk1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1FYSnlZWGw5SUZKbGRIVnlibk1nZEdobElHRnljbUY1SUc5bUlHZHliM1Z3WldRZ1pXeGxiV1Z1ZEhNdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQjFjMlZ5Y3lBOUlGdGNiaUFnSUNBZ0tpQWdJSHNnSjNWelpYSW5PaUFuWW1GeWJtVjVKeXdnSUNkaFoyVW5PaUF6Tml3Z0oyRmpkR2wyWlNjNklHWmhiSE5sSUgwc1hHNGdJQ0FnSUNvZ0lDQjdJQ2QxYzJWeUp6b2dKMlp5WldRbkxDQWdJQ0FuWVdkbEp6b2dOREFzSUNkaFkzUnBkbVVuT2lCMGNuVmxJSDBzWEc0Z0lDQWdJQ29nSUNCN0lDZDFjMlZ5SnpvZ0ozQmxZbUpzWlhNbkxDQW5ZV2RsSnpvZ01Td2dJQ2RoWTNScGRtVW5PaUJtWVd4elpTQjlYRzRnSUNBZ0lDb2dYVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1Y0dGeWRHbDBhVzl1S0hWelpYSnpMQ0JtZFc1amRHbHZiaWh2S1NCN0lISmxkSFZ5YmlCdkxtRmpkR2wyWlRzZ2ZTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2IySnFaV04wY3lCbWIzSWdXMXNuWm5KbFpDZGRMQ0JiSjJKaGNtNWxlU2NzSUNkd1pXSmliR1Z6SjExZFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBdkx5QlVhR1VnWUY4dWJXRjBZMmhsYzJBZ2FYUmxjbUYwWldVZ2MyaHZjblJvWVc1a0xseHVJQ0FnSUNBcUlGOHVjR0Z5ZEdsMGFXOXVLSFZ6WlhKekxDQjdJQ2RoWjJVbk9pQXhMQ0FuWVdOMGFYWmxKem9nWm1Gc2MyVWdmU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdiMkpxWldOMGN5Qm1iM0lnVzFzbmNHVmlZbXhsY3lkZExDQmJKMkpoY201bGVTY3NJQ2RtY21Wa0oxMWRYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXZMeUJVYUdVZ1lGOHViV0YwWTJobGMxQnliM0JsY25SNVlDQnBkR1Z5WVhSbFpTQnphRzl5ZEdoaGJtUXVYRzRnSUNBZ0lDb2dYeTV3WVhKMGFYUnBiMjRvZFhObGNuTXNJRnNuWVdOMGFYWmxKeXdnWm1Gc2MyVmRLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQnZZbXBsWTNSeklHWnZjaUJiV3lkaVlYSnVaWGtuTENBbmNHVmlZbXhsY3lkZExDQmJKMlp5WldRblhWMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDOHZJRlJvWlNCZ1h5NXdjbTl3WlhKMGVXQWdhWFJsY21GMFpXVWdjMmh2Y25Sb1lXNWtMbHh1SUNBZ0lDQXFJRjh1Y0dGeWRHbDBhVzl1S0hWelpYSnpMQ0FuWVdOMGFYWmxKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdiMkpxWldOMGN5Qm1iM0lnVzFzblpuSmxaQ2RkTENCYkoySmhjbTVsZVNjc0lDZHdaV0ppYkdWekoxMWRYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RtRnlJSEJoY25ScGRHbHZiaUE5SUdOeVpXRjBaVUZuWjNKbFoyRjBiM0lvWm5WdVkzUnBiMjRvY21WemRXeDBMQ0IyWVd4MVpTd2dhMlY1S1NCN1hHNGdJQ0FnSUNCeVpYTjFiSFJiYTJWNUlEOGdNQ0E2SURGZExuQjFjMmdvZG1Gc2RXVXBPMXh1SUNBZ0lIMHNJR1oxYm1OMGFXOXVLQ2tnZXlCeVpYUjFjbTRnVzF0ZExDQmJYVjA3SUgwcE8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dVbVZrZFdObGN5QmdZMjlzYkdWamRHbHZibUFnZEc4Z1lTQjJZV3gxWlNCM2FHbGphQ0JwY3lCMGFHVWdZV05qZFcxMWJHRjBaV1FnY21WemRXeDBJRzltSUhKMWJtNXBibWRjYmlBZ0lDQWdLaUJsWVdOb0lHVnNaVzFsYm5RZ2FXNGdZR052Ykd4bFkzUnBiMjVnSUhSb2NuVWdZR2wwWlhKaGRHVmxZQ3dnZDJobGNtVWdaV0ZqYUNCemRXTmpaWE56YVhabFhHNGdJQ0FnSUNvZ2FXNTJiMk5oZEdsdmJpQnBjeUJ6ZFhCd2JHbGxaQ0IwYUdVZ2NtVjBkWEp1SUhaaGJIVmxJRzltSUhSb1pTQndjbVYyYVc5MWN5NGdTV1lnWUdGalkzVnRkV3hoZEc5eVlGeHVJQ0FnSUNBcUlHbHpJRzV2ZENCbmFYWmxiaXdnZEdobElHWnBjbk4wSUdWc1pXMWxiblFnYjJZZ1lHTnZiR3hsWTNScGIyNWdJR2x6SUhWelpXUWdZWE1nZEdobElHbHVhWFJwWVd4Y2JpQWdJQ0FnS2lCMllXeDFaUzRnVkdobElHbDBaWEpoZEdWbElHbHpJR2x1ZG05clpXUWdkMmwwYUNCbWIzVnlJR0Z5WjNWdFpXNTBjenBjYmlBZ0lDQWdLaUFvWVdOamRXMTFiR0YwYjNJc0lIWmhiSFZsTENCcGJtUmxlSHhyWlhrc0lHTnZiR3hsWTNScGIyNHBMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dUV0Z1ZVNCc2IyUmhjMmdnYldWMGFHOWtjeUJoY21VZ1ozVmhjbVJsWkNCMGJ5QjNiM0pySUdGeklHbDBaWEpoZEdWbGN5Qm1iM0lnYldWMGFHOWtjeUJzYVd0bFhHNGdJQ0FnSUNvZ1lGOHVjbVZrZFdObFlDd2dZRjh1Y21Wa2RXTmxVbWxuYUhSZ0xDQmhibVFnWUY4dWRISmhibk5tYjNKdFlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGUm9aU0JuZFdGeVpHVmtJRzFsZEdodlpITWdZWEpsT2x4dUlDQWdJQ0FxSUdCaGMzTnBaMjVnTENCZ1pHVm1ZWFZzZEhOZ0xDQmdaR1ZtWVhWc2RITkVaV1Z3WUN3Z1lHbHVZMngxWkdWellDd2dZRzFsY21kbFlDd2dZRzl5WkdWeVFubGdMRnh1SUNBZ0lDQXFJR0Z1WkNCZ2MyOXlkRUo1WUZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJREF1TVM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFTnZiR3hsWTNScGIyNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZkU5aWFtVmpkSDBnWTI5c2JHVmpkR2x2YmlCVWFHVWdZMjlzYkdWamRHbHZiaUIwYnlCcGRHVnlZWFJsSUc5MlpYSXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdXMmwwWlhKaGRHVmxQVjh1YVdSbGJuUnBkSGxkSUZSb1pTQm1kVzVqZEdsdmJpQnBiblp2YTJWa0lIQmxjaUJwZEdWeVlYUnBiMjR1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCYllXTmpkVzExYkdGMGIzSmRJRlJvWlNCcGJtbDBhV0ZzSUhaaGJIVmxMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHNxZlNCU1pYUjFjbTV6SUhSb1pTQmhZMk4xYlhWc1lYUmxaQ0IyWVd4MVpTNWNiaUFnSUNBZ0tpQkFjMlZsSUY4dWNtVmtkV05sVW1sbmFIUmNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXlaV1IxWTJVb1d6RXNJREpkTENCbWRXNWpkR2x2YmloemRXMHNJRzRwSUh0Y2JpQWdJQ0FnS2lBZ0lISmxkSFZ5YmlCemRXMGdLeUJ1TzF4dUlDQWdJQ0FxSUgwc0lEQXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lETmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVjbVZrZFdObEtIc2dKMkVuT2lBeExDQW5ZaWM2SURJc0lDZGpKem9nTVNCOUxDQm1kVzVqZEdsdmJpaHlaWE4xYkhRc0lIWmhiSFZsTENCclpYa3BJSHRjYmlBZ0lDQWdLaUFnSUNoeVpYTjFiSFJiZG1Gc2RXVmRJSHg4SUNoeVpYTjFiSFJiZG1Gc2RXVmRJRDBnVzEwcEtTNXdkWE5vS0d0bGVTazdYRzRnSUNBZ0lDb2dJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUNBcUlIMHNJSHQ5S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUI3SUNjeEp6b2dXeWRoSnl3Z0oyTW5YU3dnSnpJbk9pQmJKMkluWFNCOUlDaHBkR1Z5WVhScGIyNGdiM0prWlhJZ2FYTWdibTkwSUdkMVlYSmhiblJsWldRcFhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnY21Wa2RXTmxLR052Ykd4bFkzUnBiMjRzSUdsMFpYSmhkR1ZsTENCaFkyTjFiWFZzWVhSdmNpa2dlMXh1SUNBZ0lDQWdkbUZ5SUdaMWJtTWdQU0JwYzBGeWNtRjVLR052Ykd4bFkzUnBiMjRwSUQ4Z1lYSnlZWGxTWldSMVkyVWdPaUJpWVhObFVtVmtkV05sTEZ4dUlDQWdJQ0FnSUNBZ0lHbHVhWFJCWTJOMWJTQTlJR0Z5WjNWdFpXNTBjeTVzWlc1bmRHZ2dQQ0F6TzF4dVhHNGdJQ0FnSUNCeVpYUjFjbTRnWm5WdVl5aGpiMnhzWldOMGFXOXVMQ0JuWlhSSmRHVnlZWFJsWlNocGRHVnlZWFJsWlN3Z05Da3NJR0ZqWTNWdGRXeGhkRzl5TENCcGJtbDBRV05qZFcwc0lHSmhjMlZGWVdOb0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR2x6SUcxbGRHaHZaQ0JwY3lCc2FXdGxJR0JmTG5KbFpIVmpaV0FnWlhoalpYQjBJSFJvWVhRZ2FYUWdhWFJsY21GMFpYTWdiM1psY2lCbGJHVnRaVzUwY3lCdlpseHVJQ0FnSUNBcUlHQmpiMnhzWldOMGFXOXVZQ0JtY205dElISnBaMmgwSUhSdklHeGxablF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdNQzR4TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1EyOXNiR1ZqZEdsdmJseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGw4VDJKcVpXTjBmU0JqYjJ4c1pXTjBhVzl1SUZSb1pTQmpiMnhzWldOMGFXOXVJSFJ2SUdsMFpYSmhkR1VnYjNabGNpNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQmJhWFJsY21GMFpXVTlYeTVwWkdWdWRHbDBlVjBnVkdobElHWjFibU4wYVc5dUlHbHVkbTlyWldRZ2NHVnlJR2wwWlhKaGRHbHZiaTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUZ0aFkyTjFiWFZzWVhSdmNsMGdWR2hsSUdsdWFYUnBZV3dnZG1Gc2RXVXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdleXA5SUZKbGRIVnlibk1nZEdobElHRmpZM1Z0ZFd4aGRHVmtJSFpoYkhWbExseHVJQ0FnSUNBcUlFQnpaV1VnWHk1eVpXUjFZMlZjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkbUZ5SUdGeWNtRjVJRDBnVzFzd0xDQXhYU3dnV3pJc0lETmRMQ0JiTkN3Z05WMWRPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTV5WldSMVkyVlNhV2RvZENoaGNuSmhlU3dnWm5WdVkzUnBiMjRvWm14aGRIUmxibVZrTENCdmRHaGxjaWtnZTF4dUlDQWdJQ0FxSUNBZ2NtVjBkWEp1SUdac1lYUjBaVzVsWkM1amIyNWpZWFFvYjNSb1pYSXBPMXh1SUNBZ0lDQXFJSDBzSUZ0ZEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYk5Dd2dOU3dnTWl3Z015d2dNQ3dnTVYxY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJ5WldSMVkyVlNhV2RvZENoamIyeHNaV04wYVc5dUxDQnBkR1Z5WVhSbFpTd2dZV05qZFcxMWJHRjBiM0lwSUh0Y2JpQWdJQ0FnSUhaaGNpQm1kVzVqSUQwZ2FYTkJjbkpoZVNoamIyeHNaV04wYVc5dUtTQS9JR0Z5Y21GNVVtVmtkV05sVW1sbmFIUWdPaUJpWVhObFVtVmtkV05sTEZ4dUlDQWdJQ0FnSUNBZ0lHbHVhWFJCWTJOMWJTQTlJR0Z5WjNWdFpXNTBjeTVzWlc1bmRHZ2dQQ0F6TzF4dVhHNGdJQ0FnSUNCeVpYUjFjbTRnWm5WdVl5aGpiMnhzWldOMGFXOXVMQ0JuWlhSSmRHVnlZWFJsWlNocGRHVnlZWFJsWlN3Z05Da3NJR0ZqWTNWdGRXeGhkRzl5TENCcGJtbDBRV05qZFcwc0lHSmhjMlZGWVdOb1VtbG5hSFFwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQnZjSEJ2YzJsMFpTQnZaaUJnWHk1bWFXeDBaWEpnT3lCMGFHbHpJRzFsZEdodlpDQnlaWFIxY201eklIUm9aU0JsYkdWdFpXNTBjeUJ2WmlCZ1kyOXNiR1ZqZEdsdmJtQmNiaUFnSUNBZ0tpQjBhR0YwSUdCd2NtVmthV05oZEdWZ0lHUnZaWE1nS2lwdWIzUXFLaUJ5WlhSMWNtNGdkSEoxZEdoNUlHWnZjaTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXdMakV1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCRGIyeHNaV04wYVc5dVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWHhQWW1wbFkzUjlJR052Ykd4bFkzUnBiMjRnVkdobElHTnZiR3hsWTNScGIyNGdkRzhnYVhSbGNtRjBaU0J2ZG1WeUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlGdHdjbVZrYVdOaGRHVTlYeTVwWkdWdWRHbDBlVjBnVkdobElHWjFibU4wYVc5dUlHbHVkbTlyWldRZ2NHVnlJR2wwWlhKaGRHbHZiaTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5Qm1hV3gwWlhKbFpDQmhjbkpoZVM1Y2JpQWdJQ0FnS2lCQWMyVmxJRjh1Wm1sc2RHVnlYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlIWmhjaUIxYzJWeWN5QTlJRnRjYmlBZ0lDQWdLaUFnSUhzZ0ozVnpaWEluT2lBblltRnlibVY1Snl3Z0oyRm5aU2M2SURNMkxDQW5ZV04wYVhabEp6b2dabUZzYzJVZ2ZTeGNiaUFnSUNBZ0tpQWdJSHNnSjNWelpYSW5PaUFuWm5KbFpDY3NJQ0FnSjJGblpTYzZJRFF3TENBbllXTjBhWFpsSnpvZ2RISjFaU0I5WEc0Z0lDQWdJQ29nWFR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWNtVnFaV04wS0hWelpYSnpMQ0JtZFc1amRHbHZiaWh2S1NCN0lISmxkSFZ5YmlBaGJ5NWhZM1JwZG1VN0lIMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHOWlhbVZqZEhNZ1ptOXlJRnNuWm5KbFpDZGRYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXZMeUJVYUdVZ1lGOHViV0YwWTJobGMyQWdhWFJsY21GMFpXVWdjMmh2Y25Sb1lXNWtMbHh1SUNBZ0lDQXFJRjh1Y21WcVpXTjBLSFZ6WlhKekxDQjdJQ2RoWjJVbk9pQTBNQ3dnSjJGamRHbDJaU2M2SUhSeWRXVWdmU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdiMkpxWldOMGN5Qm1iM0lnV3lkaVlYSnVaWGtuWFZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z1ZHaGxJR0JmTG0xaGRHTm9aWE5RY205d1pYSjBlV0FnYVhSbGNtRjBaV1VnYzJodmNuUm9ZVzVrTGx4dUlDQWdJQ0FxSUY4dWNtVnFaV04wS0hWelpYSnpMQ0JiSjJGamRHbDJaU2NzSUdaaGJITmxYU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdiMkpxWldOMGN5Qm1iM0lnV3lkbWNtVmtKMTFjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQzh2SUZSb1pTQmdYeTV3Y205d1pYSjBlV0FnYVhSbGNtRjBaV1VnYzJodmNuUm9ZVzVrTGx4dUlDQWdJQ0FxSUY4dWNtVnFaV04wS0hWelpYSnpMQ0FuWVdOMGFYWmxKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdiMkpxWldOMGN5Qm1iM0lnV3lkaVlYSnVaWGtuWFZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJSEpsYW1WamRDaGpiMnhzWldOMGFXOXVMQ0J3Y21Wa2FXTmhkR1VwSUh0Y2JpQWdJQ0FnSUhaaGNpQm1kVzVqSUQwZ2FYTkJjbkpoZVNoamIyeHNaV04wYVc5dUtTQS9JR0Z5Y21GNVJtbHNkR1Z5SURvZ1ltRnpaVVpwYkhSbGNqdGNiaUFnSUNBZ0lISmxkSFZ5YmlCbWRXNWpLR052Ykd4bFkzUnBiMjRzSUc1bFoyRjBaU2huWlhSSmRHVnlZWFJsWlNod2NtVmthV05oZEdVc0lETXBLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUjJWMGN5QmhJSEpoYm1SdmJTQmxiR1Z0Wlc1MElHWnliMjBnWUdOdmJHeGxZM1JwYjI1Z0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURJdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRU52Ykd4bFkzUnBiMjVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZFOWlhbVZqZEgwZ1kyOXNiR1ZqZEdsdmJpQlVhR1VnWTI5c2JHVmpkR2x2YmlCMGJ5QnpZVzF3YkdVdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2V5cDlJRkpsZEhWeWJuTWdkR2hsSUhKaGJtUnZiU0JsYkdWdFpXNTBMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbk5oYlhCc1pTaGJNU3dnTWl3Z015d2dORjBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJREpjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQnpZVzF3YkdVb1kyOXNiR1ZqZEdsdmJpa2dlMXh1SUNBZ0lDQWdkbUZ5SUdaMWJtTWdQU0JwYzBGeWNtRjVLR052Ykd4bFkzUnBiMjRwSUQ4Z1lYSnlZWGxUWVcxd2JHVWdPaUJpWVhObFUyRnRjR3hsTzF4dUlDQWdJQ0FnY21WMGRYSnVJR1oxYm1Nb1kyOXNiR1ZqZEdsdmJpazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dSMlYwY3lCZ2JtQWdjbUZ1Wkc5dElHVnNaVzFsYm5SeklHRjBJSFZ1YVhGMVpTQnJaWGx6SUdaeWIyMGdZR052Ykd4bFkzUnBiMjVnSUhWd0lIUnZJSFJvWlZ4dUlDQWdJQ0FxSUhOcGVtVWdiMllnWUdOdmJHeGxZM1JwYjI1Z0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRU52Ykd4bFkzUnBiMjVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZFOWlhbVZqZEgwZ1kyOXNiR1ZqZEdsdmJpQlVhR1VnWTI5c2JHVmpkR2x2YmlCMGJ5QnpZVzF3YkdVdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0dVBURmRJRlJvWlNCdWRXMWlaWElnYjJZZ1pXeGxiV1Z1ZEhNZ2RHOGdjMkZ0Y0d4bExseHVJQ0FnSUNBcUlFQndZWEpoYlMwZ2UwOWlhbVZqZEgwZ1cyZDFZWEprWFNCRmJtRmliR1Z6SUhWelpTQmhjeUJoYmlCcGRHVnlZWFJsWlNCbWIzSWdiV1YwYUc5a2N5QnNhV3RsSUdCZkxtMWhjR0F1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmU0JTWlhSMWNtNXpJSFJvWlNCeVlXNWtiMjBnWld4bGJXVnVkSE11WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YzJGdGNHeGxVMmw2WlNoYk1Td2dNaXdnTTEwc0lESXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc3pMQ0F4WFZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1ellXMXdiR1ZUYVhwbEtGc3hMQ0F5TENBelhTd2dOQ2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXeklzSURNc0lERmRYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2MyRnRjR3hsVTJsNlpTaGpiMnhzWldOMGFXOXVMQ0J1TENCbmRXRnlaQ2tnZTF4dUlDQWdJQ0FnYVdZZ0tDaG5kV0Z5WkNBL0lHbHpTWFJsY21GMFpXVkRZV3hzS0dOdmJHeGxZM1JwYjI0c0lHNHNJR2QxWVhKa0tTQTZJRzRnUFQwOUlIVnVaR1ZtYVc1bFpDa3BJSHRjYmlBZ0lDQWdJQ0FnYmlBOUlERTdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQnVJRDBnZEc5SmJuUmxaMlZ5S0c0cE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2RtRnlJR1oxYm1NZ1BTQnBjMEZ5Y21GNUtHTnZiR3hsWTNScGIyNHBJRDhnWVhKeVlYbFRZVzF3YkdWVGFYcGxJRG9nWW1GelpWTmhiWEJzWlZOcGVtVTdYRzRnSUNBZ0lDQnlaWFIxY200Z1puVnVZeWhqYjJ4c1pXTjBhVzl1TENCdUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRnVJR0Z5Y21GNUlHOW1JSE5vZFdabWJHVmtJSFpoYkhWbGN5d2dkWE5wYm1jZ1lTQjJaWEp6YVc5dUlHOW1JSFJvWlZ4dUlDQWdJQ0FxSUZ0R2FYTm9aWEl0V1dGMFpYTWdjMmgxWm1ac1pWMG9hSFIwY0hNNkx5OWxiaTUzYVd0cGNHVmthV0V1YjNKbkwzZHBhMmt2Um1semFHVnlMVmxoZEdWelgzTm9kV1ptYkdVcExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURBdU1TNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRU52Ykd4bFkzUnBiMjVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZFOWlhbVZqZEgwZ1kyOXNiR1ZqZEdsdmJpQlVhR1VnWTI5c2JHVmpkR2x2YmlCMGJ5QnphSFZtWm14bExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdEJjbkpoZVgwZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUhOb2RXWm1iR1ZrSUdGeWNtRjVMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbk5vZFdabWJHVW9XekVzSURJc0lETXNJRFJkS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiTkN3Z01Td2dNeXdnTWwxY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJ6YUhWbVpteGxLR052Ykd4bFkzUnBiMjRwSUh0Y2JpQWdJQ0FnSUhaaGNpQm1kVzVqSUQwZ2FYTkJjbkpoZVNoamIyeHNaV04wYVc5dUtTQS9JR0Z5Y21GNVUyaDFabVpzWlNBNklHSmhjMlZUYUhWbVpteGxPMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWjFibU1vWTI5c2JHVmpkR2x2YmlrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1IyVjBjeUIwYUdVZ2MybDZaU0J2WmlCZ1kyOXNiR1ZqZEdsdmJtQWdZbmtnY21WMGRYSnVhVzVuSUdsMGN5QnNaVzVuZEdnZ1ptOXlJR0Z5Y21GNUxXeHBhMlZjYmlBZ0lDQWdLaUIyWVd4MVpYTWdiM0lnZEdobElHNTFiV0psY2lCdlppQnZkMjRnWlc1MWJXVnlZV0pzWlNCemRISnBibWNnYTJWNVpXUWdjSEp2Y0dWeWRHbGxjeUJtYjNJZ2IySnFaV04wY3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F3TGpFdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQkRiMnhzWldOMGFXOXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVh4UFltcGxZM1I4YzNSeWFXNW5mU0JqYjJ4c1pXTjBhVzl1SUZSb1pTQmpiMnhzWldOMGFXOXVJSFJ2SUdsdWMzQmxZM1F1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTI1MWJXSmxjbjBnVW1WMGRYSnVjeUIwYUdVZ1kyOXNiR1ZqZEdsdmJpQnphWHBsTGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5OcGVtVW9XekVzSURJc0lETmRLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQXpYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbk5wZW1Vb2V5QW5ZU2M2SURFc0lDZGlKem9nTWlCOUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBeVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuTnBlbVVvSjNCbFltSnNaWE1uS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUEzWEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdjMmw2WlNoamIyeHNaV04wYVc5dUtTQjdYRzRnSUNBZ0lDQnBaaUFvWTI5c2JHVmpkR2x2YmlBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBd08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLR2x6UVhKeVlYbE1hV3RsS0dOdmJHeGxZM1JwYjI0cEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnBjMU4wY21sdVp5aGpiMnhzWldOMGFXOXVLU0EvSUhOMGNtbHVaMU5wZW1Vb1kyOXNiR1ZqZEdsdmJpa2dPaUJqYjJ4c1pXTjBhVzl1TG14bGJtZDBhRHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSFpoY2lCMFlXY2dQU0JuWlhSVVlXY29ZMjlzYkdWamRHbHZiaWs3WEc0Z0lDQWdJQ0JwWmlBb2RHRm5JRDA5SUcxaGNGUmhaeUI4ZkNCMFlXY2dQVDBnYzJWMFZHRm5LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJqYjJ4c1pXTjBhVzl1TG5OcGVtVTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z1ltRnpaVXRsZVhNb1kyOXNiR1ZqZEdsdmJpa3ViR1Z1WjNSb08xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTm9aV05yY3lCcFppQmdjSEpsWkdsallYUmxZQ0J5WlhSMWNtNXpJSFJ5ZFhSb2VTQm1iM0lnS2lwaGJua3FLaUJsYkdWdFpXNTBJRzltSUdCamIyeHNaV04wYVc5dVlDNWNiaUFnSUNBZ0tpQkpkR1Z5WVhScGIyNGdhWE1nYzNSdmNIQmxaQ0J2Ym1ObElHQndjbVZrYVdOaGRHVmdJSEpsZEhWeWJuTWdkSEoxZEdoNUxpQlVhR1VnY0hKbFpHbGpZWFJsSUdselhHNGdJQ0FnSUNvZ2FXNTJiMnRsWkNCM2FYUm9JSFJvY21WbElHRnlaM1Z0Wlc1MGN6b2dLSFpoYkhWbExDQnBibVJsZUh4clpYa3NJR052Ykd4bFkzUnBiMjRwTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJREF1TVM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFTnZiR3hsWTNScGIyNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZkU5aWFtVmpkSDBnWTI5c2JHVmpkR2x2YmlCVWFHVWdZMjlzYkdWamRHbHZiaUIwYnlCcGRHVnlZWFJsSUc5MlpYSXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdXM0J5WldScFkyRjBaVDFmTG1sa1pXNTBhWFI1WFNCVWFHVWdablZ1WTNScGIyNGdhVzUyYjJ0bFpDQndaWElnYVhSbGNtRjBhVzl1TGx4dUlDQWdJQ0FxSUVCd1lYSmhiUzBnZTA5aWFtVmpkSDBnVzJkMVlYSmtYU0JGYm1GaWJHVnpJSFZ6WlNCaGN5QmhiaUJwZEdWeVlYUmxaU0JtYjNJZ2JXVjBhRzlrY3lCc2FXdGxJR0JmTG0xaGNHQXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMkp2YjJ4bFlXNTlJRkpsZEhWeWJuTWdZSFJ5ZFdWZ0lHbG1JR0Z1ZVNCbGJHVnRaVzUwSUhCaGMzTmxjeUIwYUdVZ2NISmxaR2xqWVhSbElHTm9aV05yTEZ4dUlDQWdJQ0FxSUNCbGJITmxJR0JtWVd4elpXQXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVjMjl0WlNoYmJuVnNiQ3dnTUN3Z0ozbGxjeWNzSUdaaGJITmxYU3dnUW05dmJHVmhiaWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdkSEoxWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlIVnpaWEp6SUQwZ1cxeHVJQ0FnSUNBcUlDQWdleUFuZFhObGNpYzZJQ2RpWVhKdVpYa25MQ0FuWVdOMGFYWmxKem9nZEhKMVpTQjlMRnh1SUNBZ0lDQXFJQ0FnZXlBbmRYTmxjaWM2SUNkbWNtVmtKeXdnSUNBbllXTjBhWFpsSnpvZ1ptRnNjMlVnZlZ4dUlDQWdJQ0FxSUYwN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBdkx5QlVhR1VnWUY4dWJXRjBZMmhsYzJBZ2FYUmxjbUYwWldVZ2MyaHZjblJvWVc1a0xseHVJQ0FnSUNBcUlGOHVjMjl0WlNoMWMyVnljeXdnZXlBbmRYTmxjaWM2SUNkaVlYSnVaWGtuTENBbllXTjBhWFpsSnpvZ1ptRnNjMlVnZlNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnWm1Gc2MyVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDOHZJRlJvWlNCZ1h5NXRZWFJqYUdWelVISnZjR1Z5ZEhsZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMbk52YldVb2RYTmxjbk1zSUZzbllXTjBhWFpsSnl3Z1ptRnNjMlZkS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUIwY25WbFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBdkx5QlVhR1VnWUY4dWNISnZjR1Z5ZEhsZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMbk52YldVb2RYTmxjbk1zSUNkaFkzUnBkbVVuS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUIwY25WbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYzI5dFpTaGpiMnhzWldOMGFXOXVMQ0J3Y21Wa2FXTmhkR1VzSUdkMVlYSmtLU0I3WEc0Z0lDQWdJQ0IyWVhJZ1puVnVZeUE5SUdselFYSnlZWGtvWTI5c2JHVmpkR2x2YmlrZ1B5QmhjbkpoZVZOdmJXVWdPaUJpWVhObFUyOXRaVHRjYmlBZ0lDQWdJR2xtSUNobmRXRnlaQ0FtSmlCcGMwbDBaWEpoZEdWbFEyRnNiQ2hqYjJ4c1pXTjBhVzl1TENCd2NtVmthV05oZEdVc0lHZDFZWEprS1NrZ2UxeHVJQ0FnSUNBZ0lDQndjbVZrYVdOaGRHVWdQU0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdablZ1WXloamIyeHNaV04wYVc5dUxDQm5aWFJKZEdWeVlYUmxaU2h3Y21Wa2FXTmhkR1VzSURNcEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRnVJR0Z5Y21GNUlHOW1JR1ZzWlcxbGJuUnpMQ0J6YjNKMFpXUWdhVzRnWVhOalpXNWthVzVuSUc5eVpHVnlJR0o1SUhSb1pTQnlaWE4xYkhSeklHOW1YRzRnSUNBZ0lDb2djblZ1Ym1sdVp5QmxZV05vSUdWc1pXMWxiblFnYVc0Z1lTQmpiMnhzWldOMGFXOXVJSFJvY25VZ1pXRmphQ0JwZEdWeVlYUmxaUzRnVkdocGN5QnRaWFJvYjJSY2JpQWdJQ0FnS2lCd1pYSm1iM0p0Y3lCaElITjBZV0pzWlNCemIzSjBMQ0IwYUdGMElHbHpMQ0JwZENCd2NtVnpaWEoyWlhNZ2RHaGxJRzl5YVdkcGJtRnNJSE52Y25RZ2IzSmtaWElnYjJaY2JpQWdJQ0FnS2lCbGNYVmhiQ0JsYkdWdFpXNTBjeTRnVkdobElHbDBaWEpoZEdWbGN5QmhjbVVnYVc1MmIydGxaQ0IzYVhSb0lHOXVaU0JoY21kMWJXVnVkRG9nS0haaGJIVmxLUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXdMakV1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCRGIyeHNaV04wYVc5dVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWHhQWW1wbFkzUjlJR052Ykd4bFkzUnBiMjRnVkdobElHTnZiR3hsWTNScGIyNGdkRzhnYVhSbGNtRjBaU0J2ZG1WeUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN0xpNHVLRVoxYm1OMGFXOXVmRVoxYm1OMGFXOXVXMTBwZlNCYmFYUmxjbUYwWldWelBWdGZMbWxrWlc1MGFYUjVYVjFjYmlBZ0lDQWdLaUFnVkdobElHbDBaWEpoZEdWbGN5QjBieUJ6YjNKMElHSjVMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lITnZjblJsWkNCaGNuSmhlUzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkbUZ5SUhWelpYSnpJRDBnVzF4dUlDQWdJQ0FxSUNBZ2V5QW5kWE5sY2ljNklDZG1jbVZrSnl3Z0lDQW5ZV2RsSnpvZ05EZ2dmU3hjYmlBZ0lDQWdLaUFnSUhzZ0ozVnpaWEluT2lBblltRnlibVY1Snl3Z0oyRm5aU2M2SURNMklIMHNYRzRnSUNBZ0lDb2dJQ0I3SUNkMWMyVnlKem9nSjJaeVpXUW5MQ0FnSUNkaFoyVW5PaUF6TUNCOUxGeHVJQ0FnSUNBcUlDQWdleUFuZFhObGNpYzZJQ2RpWVhKdVpYa25MQ0FuWVdkbEp6b2dNelFnZlZ4dUlDQWdJQ0FxSUYwN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuTnZjblJDZVNoMWMyVnljeXdnVzJaMWJtTjBhVzl1S0c4cElIc2djbVYwZFhKdUlHOHVkWE5sY2pzZ2ZWMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHOWlhbVZqZEhNZ1ptOXlJRnRiSjJKaGNtNWxlU2NzSURNMlhTd2dXeWRpWVhKdVpYa25MQ0F6TkYwc0lGc25abkpsWkNjc0lEUTRYU3dnV3lkbWNtVmtKeXdnTXpCZFhWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXpiM0owUW5rb2RYTmxjbk1zSUZzbmRYTmxjaWNzSUNkaFoyVW5YU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdiMkpxWldOMGN5Qm1iM0lnVzFzblltRnlibVY1Snl3Z016UmRMQ0JiSjJKaGNtNWxlU2NzSURNMlhTd2dXeWRtY21Wa0p5d2dNekJkTENCYkoyWnlaV1FuTENBME9GMWRYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RtRnlJSE52Y25SQ2VTQTlJR0poYzJWU1pYTjBLR1oxYm1OMGFXOXVLR052Ykd4bFkzUnBiMjRzSUdsMFpYSmhkR1ZsY3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLR052Ykd4bFkzUnBiMjRnUFQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVzEwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCMllYSWdiR1Z1WjNSb0lEMGdhWFJsY21GMFpXVnpMbXhsYm1kMGFEdGNiaUFnSUNBZ0lHbG1JQ2hzWlc1bmRHZ2dQaUF4SUNZbUlHbHpTWFJsY21GMFpXVkRZV3hzS0dOdmJHeGxZM1JwYjI0c0lHbDBaWEpoZEdWbGMxc3dYU3dnYVhSbGNtRjBaV1Z6V3pGZEtTa2dlMXh1SUNBZ0lDQWdJQ0JwZEdWeVlYUmxaWE1nUFNCYlhUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCcFppQW9iR1Z1WjNSb0lENGdNaUFtSmlCcGMwbDBaWEpoZEdWbFEyRnNiQ2hwZEdWeVlYUmxaWE5iTUYwc0lHbDBaWEpoZEdWbGMxc3hYU3dnYVhSbGNtRjBaV1Z6V3pKZEtTa2dlMXh1SUNBZ0lDQWdJQ0JwZEdWeVlYUmxaWE1nUFNCYmFYUmxjbUYwWldWeld6QmRYVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQmlZWE5sVDNKa1pYSkNlU2hqYjJ4c1pXTjBhVzl1TENCaVlYTmxSbXhoZEhSbGJpaHBkR1Z5WVhSbFpYTXNJREVwTENCYlhTazdYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQXZLaTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMU292WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCSFpYUnpJSFJvWlNCMGFXMWxjM1JoYlhBZ2IyWWdkR2hsSUc1MWJXSmxjaUJ2WmlCdGFXeHNhWE5sWTI5dVpITWdkR2hoZENCb1lYWmxJR1ZzWVhCelpXUWdjMmx1WTJWY2JpQWdJQ0FnS2lCMGFHVWdWVzVwZUNCbGNHOWphQ0FvTVNCS1lXNTFZWEo1SURFNU56QWdNREE2TURBNk1EQWdWVlJES1M1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F5TGpRdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQkVZWFJsWEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTI1MWJXSmxjbjBnVW1WMGRYSnVjeUIwYUdVZ2RHbHRaWE4wWVcxd0xseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtUmxabVZ5S0daMWJtTjBhVzl1S0hOMFlXMXdLU0I3WEc0Z0lDQWdJQ29nSUNCamIyNXpiMnhsTG14dlp5aGZMbTV2ZHlncElDMGdjM1JoYlhBcE8xeHVJQ0FnSUNBcUlIMHNJRjh1Ym05M0tDa3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lFeHZaM01nZEdobElHNTFiV0psY2lCdlppQnRhV3hzYVhObFkyOXVaSE1nYVhRZ2RHOXZheUJtYjNJZ2RHaGxJR1JsWm1WeWNtVmtJR2x1ZG05allYUnBiMjR1WEc0Z0lDQWdJQ292WEc0Z0lDQWdkbUZ5SUc1dmR5QTlJR04wZUU1dmR5QjhmQ0JtZFc1amRHbHZiaWdwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ5YjI5MExrUmhkR1V1Ym05M0tDazdYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lDOHFMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRLaTljYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQnZjSEJ2YzJsMFpTQnZaaUJnWHk1aVpXWnZjbVZnT3lCMGFHbHpJRzFsZEdodlpDQmpjbVZoZEdWeklHRWdablZ1WTNScGIyNGdkR2hoZENCcGJuWnZhMlZ6WEc0Z0lDQWdJQ29nWUdaMWJtTmdJRzl1WTJVZ2FYUW5jeUJqWVd4c1pXUWdZRzVnSUc5eUlHMXZjbVVnZEdsdFpYTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01DNHhMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnUm5WdVkzUnBiMjVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiaUJVYUdVZ2JuVnRZbVZ5SUc5bUlHTmhiR3h6SUdKbFptOXlaU0JnWm5WdVkyQWdhWE1nYVc1MmIydGxaQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JtZFc1aklGUm9aU0JtZFc1amRHbHZiaUIwYnlCeVpYTjBjbWxqZEM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1JuVnVZM1JwYjI1OUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCeVpYTjBjbWxqZEdWa0lHWjFibU4wYVc5dUxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdjMkYyWlhNZ1BTQmJKM0J5YjJacGJHVW5MQ0FuYzJWMGRHbHVaM01uWFR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQmtiMjVsSUQwZ1h5NWhablJsY2loellYWmxjeTVzWlc1bmRHZ3NJR1oxYm1OMGFXOXVLQ2tnZTF4dUlDQWdJQ0FxSUNBZ1kyOXVjMjlzWlM1c2IyY29KMlJ2Ym1VZ2MyRjJhVzVuSVNjcE8xeHVJQ0FnSUNBcUlIMHBPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVtYjNKRllXTm9LSE5oZG1WekxDQm1kVzVqZEdsdmJpaDBlWEJsS1NCN1hHNGdJQ0FnSUNvZ0lDQmhjM2x1WTFOaGRtVW9leUFuZEhsd1pTYzZJSFI1Y0dVc0lDZGpiMjF3YkdWMFpTYzZJR1J2Ym1VZ2ZTazdYRzRnSUNBZ0lDb2dmU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdURzluY3lBblpHOXVaU0J6WVhacGJtY2hKeUJoWm5SbGNpQjBhR1VnZEhkdklHRnplVzVqSUhOaGRtVnpJR2hoZG1VZ1kyOXRjR3hsZEdWa0xseHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdGbWRHVnlLRzRzSUdaMWJtTXBJSHRjYmlBZ0lDQWdJR2xtSUNoMGVYQmxiMllnWm5WdVl5QWhQU0FuWm5WdVkzUnBiMjRuS1NCN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9SbFZPUTE5RlVsSlBVbDlVUlZoVUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHNGdQU0IwYjBsdWRHVm5aWElvYmlrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWm5WdVkzUnBiMjRvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2d0TFc0Z1BDQXhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaMWJtTXVZWEJ3Ykhrb2RHaHBjeXdnWVhKbmRXMWxiblJ6S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRWdablZ1WTNScGIyNGdkR2hoZENCcGJuWnZhMlZ6SUdCbWRXNWpZQ3dnZDJsMGFDQjFjQ0IwYnlCZ2JtQWdZWEpuZFcxbGJuUnpMRnh1SUNBZ0lDQXFJR2xuYm05eWFXNW5JR0Z1ZVNCaFpHUnBkR2x2Ym1Gc0lHRnlaM1Z0Wlc1MGN5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBekxqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JHZFc1amRHbHZibHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR1oxYm1NZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUdOaGNDQmhjbWQxYldWdWRITWdabTl5TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JiYmoxbWRXNWpMbXhsYm1kMGFGMGdWR2hsSUdGeWFYUjVJR05oY0M1Y2JpQWdJQ0FnS2lCQWNHRnlZVzB0SUh0UFltcGxZM1I5SUZ0bmRXRnlaRjBnUlc1aFlteGxjeUIxYzJVZ1lYTWdZVzRnYVhSbGNtRjBaV1VnWm05eUlHMWxkR2h2WkhNZ2JHbHJaU0JnWHk1dFlYQmdMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRHZFc1amRHbHZibjBnVW1WMGRYSnVjeUIwYUdVZ2JtVjNJR05oY0hCbFpDQm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXRZWEFvV3ljMkp5d2dKemduTENBbk1UQW5YU3dnWHk1aGNua29jR0Z5YzJWSmJuUXNJREVwS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiTml3Z09Dd2dNVEJkWEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZWEo1S0daMWJtTXNJRzRzSUdkMVlYSmtLU0I3WEc0Z0lDQWdJQ0J1SUQwZ1ozVmhjbVFnUHlCMWJtUmxabWx1WldRZ09pQnVPMXh1SUNBZ0lDQWdiaUE5SUNobWRXNWpJQ1ltSUc0Z1BUMGdiblZzYkNrZ1B5Qm1kVzVqTG14bGJtZDBhQ0E2SUc0N1hHNGdJQ0FnSUNCeVpYUjFjbTRnWTNKbFlYUmxWM0poY0NobWRXNWpMQ0JYVWtGUVgwRlNXVjlHVEVGSExDQjFibVJsWm1sdVpXUXNJSFZ1WkdWbWFXNWxaQ3dnZFc1a1pXWnBibVZrTENCMWJtUmxabWx1WldRc0lHNHBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU55WldGMFpYTWdZU0JtZFc1amRHbHZiaUIwYUdGMElHbHVkbTlyWlhNZ1lHWjFibU5nTENCM2FYUm9JSFJvWlNCZ2RHaHBjMkFnWW1sdVpHbHVaeUJoYm1RZ1lYSm5kVzFsYm5SelhHNGdJQ0FnSUNvZ2IyWWdkR2hsSUdOeVpXRjBaV1FnWm5WdVkzUnBiMjRzSUhkb2FXeGxJR2wwSjNNZ1kyRnNiR1ZrSUd4bGMzTWdkR2hoYmlCZ2JtQWdkR2x0WlhNdUlGTjFZbk5sY1hWbGJuUmNiaUFnSUNBZ0tpQmpZV3hzY3lCMGJ5QjBhR1VnWTNKbFlYUmxaQ0JtZFc1amRHbHZiaUJ5WlhSMWNtNGdkR2hsSUhKbGMzVnNkQ0J2WmlCMGFHVWdiR0Z6ZENCZ1puVnVZMkFnYVc1MmIyTmhkR2x2Ymk1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F6TGpBdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQkdkVzVqZEdsdmJseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCdUlGUm9aU0J1ZFcxaVpYSWdiMllnWTJGc2JITWdZWFFnZDJocFkyZ2dZR1oxYm1OZ0lHbHpJRzV2SUd4dmJtZGxjaUJwYm5admEyVmtMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR1oxYm1NZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUhKbGMzUnlhV04wTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0R2RXNWpkR2x2Ym4wZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUhKbGMzUnlhV04wWldRZ1puVnVZM1JwYjI0dVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUdwUmRXVnllU2hsYkdWdFpXNTBLUzV2YmlnblkyeHBZMnNuTENCZkxtSmxabTl5WlNnMUxDQmhaR1JEYjI1MFlXTjBWRzlNYVhOMEtTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1FXeHNiM2R6SUdGa1pHbHVaeUIxY0NCMGJ5QTBJR052Ym5SaFkzUnpJSFJ2SUhSb1pTQnNhWE4wTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR0psWm05eVpTaHVMQ0JtZFc1aktTQjdYRzRnSUNBZ0lDQjJZWElnY21WemRXeDBPMXh1SUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJtZFc1aklDRTlJQ2RtZFc1amRHbHZiaWNwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lGUjVjR1ZGY25KdmNpaEdWVTVEWDBWU1VrOVNYMVJGV0ZRcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2JpQTlJSFJ2U1c1MFpXZGxjaWh1S1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJtZFc1amRHbHZiaWdwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLQzB0YmlBK0lEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYTjFiSFFnUFNCbWRXNWpMbUZ3Y0d4NUtIUm9hWE1zSUdGeVozVnRaVzUwY3lrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0c0Z1BEMGdNU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHWjFibU1nUFNCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0FnSUgwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElHWjFibU4wYVc5dUlIUm9ZWFFnYVc1MmIydGxjeUJnWm5WdVkyQWdkMmwwYUNCMGFHVWdZSFJvYVhOZ0lHSnBibVJwYm1jZ2IyWWdZSFJvYVhOQmNtZGdYRzRnSUNBZ0lDb2dZVzVrSUdCd1lYSjBhV0ZzYzJBZ2NISmxjR1Z1WkdWa0lIUnZJSFJvWlNCaGNtZDFiV1Z1ZEhNZ2FYUWdjbVZqWldsMlpYTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQlVhR1VnWUY4dVltbHVaQzV3YkdGalpXaHZiR1JsY21BZ2RtRnNkV1VzSUhkb2FXTm9JR1JsWm1GMWJIUnpJSFJ2SUdCZllDQnBiaUJ0YjI1dmJHbDBhR2xqSUdKMWFXeGtjeXhjYmlBZ0lDQWdLaUJ0WVhrZ1ltVWdkWE5sWkNCaGN5QmhJSEJzWVdObGFHOXNaR1Z5SUdadmNpQndZWEowYVdGc2JIa2dZWEJ3YkdsbFpDQmhjbWQxYldWdWRITXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXFLazV2ZEdVNktpb2dWVzVzYVd0bElHNWhkR2wyWlNCZ1JuVnVZM1JwYjI0alltbHVaR0FzSUhSb2FYTWdiV1YwYUc5a0lHUnZaWE51SjNRZ2MyVjBJSFJvWlNCY0lteGxibWQwYUZ3aVhHNGdJQ0FnSUNvZ2NISnZjR1Z5ZEhrZ2IyWWdZbTkxYm1RZ1puVnVZM1JwYjI1ekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURBdU1TNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRVoxYm1OMGFXOXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdablZ1WXlCVWFHVWdablZ1WTNScGIyNGdkRzhnWW1sdVpDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSFJvYVhOQmNtY2dWR2hsSUdCMGFHbHpZQ0JpYVc1a2FXNW5JRzltSUdCbWRXNWpZQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleTR1TGlwOUlGdHdZWEowYVdGc2MxMGdWR2hsSUdGeVozVnRaVzUwY3lCMGJ5QmlaU0J3WVhKMGFXRnNiSGtnWVhCd2JHbGxaQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3Um5WdVkzUnBiMjU5SUZKbGRIVnlibk1nZEdobElHNWxkeUJpYjNWdVpDQm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1puVnVZM1JwYjI0Z1ozSmxaWFFvWjNKbFpYUnBibWNzSUhCMWJtTjBkV0YwYVc5dUtTQjdYRzRnSUNBZ0lDb2dJQ0J5WlhSMWNtNGdaM0psWlhScGJtY2dLeUFuSUNjZ0t5QjBhR2x6TG5WelpYSWdLeUJ3ZFc1amRIVmhkR2x2Ymp0Y2JpQWdJQ0FnS2lCOVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdiMkpxWldOMElEMGdleUFuZFhObGNpYzZJQ2RtY21Wa0p5QjlPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkbUZ5SUdKdmRXNWtJRDBnWHk1aWFXNWtLR2R5WldWMExDQnZZbXBsWTNRc0lDZG9hU2NwTzF4dUlDQWdJQ0FxSUdKdmRXNWtLQ2NoSnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnSjJocElHWnlaV1FoSjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z1FtOTFibVFnZDJsMGFDQndiR0ZqWldodmJHUmxjbk11WEc0Z0lDQWdJQ29nZG1GeUlHSnZkVzVrSUQwZ1h5NWlhVzVrS0dkeVpXVjBMQ0J2WW1wbFkzUXNJRjhzSUNjaEp5azdYRzRnSUNBZ0lDb2dZbTkxYm1Rb0oyaHBKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMmhwSUdaeVpXUWhKMXh1SUNBZ0lDQXFMMXh1SUNBZ0lIWmhjaUJpYVc1a0lEMGdZbUZ6WlZKbGMzUW9ablZ1WTNScGIyNG9ablZ1WXl3Z2RHaHBjMEZ5Wnl3Z2NHRnlkR2xoYkhNcElIdGNiaUFnSUNBZ0lIWmhjaUJpYVhSdFlYTnJJRDBnVjFKQlVGOUNTVTVFWDBaTVFVYzdYRzRnSUNBZ0lDQnBaaUFvY0dGeWRHbGhiSE11YkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQm9iMnhrWlhKeklEMGdjbVZ3YkdGalpVaHZiR1JsY25Nb2NHRnlkR2xoYkhNc0lHZGxkRWh2YkdSbGNpaGlhVzVrS1NrN1hHNGdJQ0FnSUNBZ0lHSnBkRzFoYzJzZ2ZEMGdWMUpCVUY5UVFWSlVTVUZNWDBaTVFVYzdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z1kzSmxZWFJsVjNKaGNDaG1kVzVqTENCaWFYUnRZWE5yTENCMGFHbHpRWEpuTENCd1lYSjBhV0ZzY3l3Z2FHOXNaR1Z5Y3lrN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRWdablZ1WTNScGIyNGdkR2hoZENCcGJuWnZhMlZ6SUhSb1pTQnRaWFJvYjJRZ1lYUWdZRzlpYW1WamRGdHJaWGxkWUNCM2FYUm9JR0J3WVhKMGFXRnNjMkJjYmlBZ0lDQWdLaUJ3Y21Wd1pXNWtaV1FnZEc4Z2RHaGxJR0Z5WjNWdFpXNTBjeUJwZENCeVpXTmxhWFpsY3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUZSb2FYTWdiV1YwYUc5a0lHUnBabVpsY25NZ1puSnZiU0JnWHk1aWFXNWtZQ0JpZVNCaGJHeHZkMmx1WnlCaWIzVnVaQ0JtZFc1amRHbHZibk1nZEc4Z2NtVm1aWEpsYm1ObFhHNGdJQ0FnSUNvZ2JXVjBhRzlrY3lCMGFHRjBJRzFoZVNCaVpTQnlaV1JsWm1sdVpXUWdiM0lnWkc5dUozUWdlV1YwSUdWNGFYTjBMaUJUWldWY2JpQWdJQ0FnS2lCYlVHVjBaWElnVFdsamFHRjFlQ2R6SUdGeWRHbGpiR1ZkS0doMGRIQTZMeTl3WlhSbGNpNXRhV05vWVhWNExtTmhMMkZ5ZEdsamJHVnpMMnhoZW5rdFpuVnVZM1JwYjI0dFpHVm1hVzVwZEdsdmJpMXdZWFIwWlhKdUtWeHVJQ0FnSUNBcUlHWnZjaUJ0YjNKbElHUmxkR0ZwYkhNdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCVWFHVWdZRjh1WW1sdVpFdGxlUzV3YkdGalpXaHZiR1JsY21BZ2RtRnNkV1VzSUhkb2FXTm9JR1JsWm1GMWJIUnpJSFJ2SUdCZllDQnBiaUJ0YjI1dmJHbDBhR2xqWEc0Z0lDQWdJQ29nWW5WcGJHUnpMQ0J0WVhrZ1ltVWdkWE5sWkNCaGN5QmhJSEJzWVdObGFHOXNaR1Z5SUdadmNpQndZWEowYVdGc2JIa2dZWEJ3YkdsbFpDQmhjbWQxYldWdWRITXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01DNHhNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUVaMWJtTjBhVzl1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzlpYW1WamRDQlVhR1VnYjJKcVpXTjBJSFJ2SUdsdWRtOXJaU0IwYUdVZ2JXVjBhRzlrSUc5dUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCclpYa2dWR2hsSUd0bGVTQnZaaUIwYUdVZ2JXVjBhRzlrTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3TGk0dUtuMGdXM0JoY25ScFlXeHpYU0JVYUdVZ1lYSm5kVzFsYm5SeklIUnZJR0psSUhCaGNuUnBZV3hzZVNCaGNIQnNhV1ZrTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0R2RXNWpkR2x2Ym4wZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUdKdmRXNWtJR1oxYm1OMGFXOXVMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQjJZWElnYjJKcVpXTjBJRDBnZTF4dUlDQWdJQ0FxSUNBZ0ozVnpaWEluT2lBblpuSmxaQ2NzWEc0Z0lDQWdJQ29nSUNBblozSmxaWFFuT2lCbWRXNWpkR2x2YmlobmNtVmxkR2x1Wnl3Z2NIVnVZM1IxWVhScGIyNHBJSHRjYmlBZ0lDQWdLaUFnSUNBZ2NtVjBkWEp1SUdkeVpXVjBhVzVuSUNzZ0p5QW5JQ3NnZEdocGN5NTFjMlZ5SUNzZ2NIVnVZM1IxWVhScGIyNDdYRzRnSUNBZ0lDb2dJQ0I5WEc0Z0lDQWdJQ29nZlR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQmliM1Z1WkNBOUlGOHVZbWx1WkV0bGVTaHZZbXBsWTNRc0lDZG5jbVZsZENjc0lDZG9hU2NwTzF4dUlDQWdJQ0FxSUdKdmRXNWtLQ2NoSnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnSjJocElHWnlaV1FoSjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nYjJKcVpXTjBMbWR5WldWMElEMGdablZ1WTNScGIyNG9aM0psWlhScGJtY3NJSEIxYm1OMGRXRjBhVzl1S1NCN1hHNGdJQ0FnSUNvZ0lDQnlaWFIxY200Z1ozSmxaWFJwYm1jZ0t5QW5lV0VnSnlBcklIUm9hWE11ZFhObGNpQXJJSEIxYm1OMGRXRjBhVzl1TzF4dUlDQWdJQ0FxSUgwN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCaWIzVnVaQ2duSVNjcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUNkb2FYbGhJR1p5WldRaEoxeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdRbTkxYm1RZ2QybDBhQ0J3YkdGalpXaHZiR1JsY25NdVhHNGdJQ0FnSUNvZ2RtRnlJR0p2ZFc1a0lEMGdYeTVpYVc1a1MyVjVLRzlpYW1WamRDd2dKMmR5WldWMEp5d2dYeXdnSnlFbktUdGNiaUFnSUNBZ0tpQmliM1Z1WkNnbmFHa25LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQW5hR2w1WVNCbWNtVmtJU2RjYmlBZ0lDQWdLaTljYmlBZ0lDQjJZWElnWW1sdVpFdGxlU0E5SUdKaGMyVlNaWE4wS0daMWJtTjBhVzl1S0c5aWFtVmpkQ3dnYTJWNUxDQndZWEowYVdGc2N5a2dlMXh1SUNBZ0lDQWdkbUZ5SUdKcGRHMWhjMnNnUFNCWFVrRlFYMEpKVGtSZlJreEJSeUI4SUZkU1FWQmZRa2xPUkY5TFJWbGZSa3hCUnp0Y2JpQWdJQ0FnSUdsbUlDaHdZWEowYVdGc2N5NXNaVzVuZEdncElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUdodmJHUmxjbk1nUFNCeVpYQnNZV05sU0c5c1pHVnljeWh3WVhKMGFXRnNjeXdnWjJWMFNHOXNaR1Z5S0dKcGJtUkxaWGtwS1R0Y2JpQWdJQ0FnSUNBZ1ltbDBiV0Z6YXlCOFBTQlhVa0ZRWDFCQlVsUkpRVXhmUmt4QlJ6dGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCamNtVmhkR1ZYY21Gd0tHdGxlU3dnWW1sMGJXRnpheXdnYjJKcVpXTjBMQ0J3WVhKMGFXRnNjeXdnYUc5c1pHVnljeWs3WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdFZ1puVnVZM1JwYjI0Z2RHaGhkQ0JoWTJObGNIUnpJR0Z5WjNWdFpXNTBjeUJ2WmlCZ1puVnVZMkFnWVc1a0lHVnBkR2hsY2lCcGJuWnZhMlZ6WEc0Z0lDQWdJQ29nWUdaMWJtTmdJSEpsZEhWeWJtbHVaeUJwZEhNZ2NtVnpkV3gwTENCcFppQmhkQ0JzWldGemRDQmdZWEpwZEhsZ0lHNTFiV0psY2lCdlppQmhjbWQxYldWdWRITWdhR0YyWlZ4dUlDQWdJQ0FxSUdKbFpXNGdjSEp2ZG1sa1pXUXNJRzl5SUhKbGRIVnlibk1nWVNCbWRXNWpkR2x2YmlCMGFHRjBJR0ZqWTJWd2RITWdkR2hsSUhKbGJXRnBibWx1WnlCZ1puVnVZMkJjYmlBZ0lDQWdLaUJoY21kMWJXVnVkSE1zSUdGdVpDQnpieUJ2Ymk0Z1ZHaGxJR0Z5YVhSNUlHOW1JR0JtZFc1allDQnRZWGtnWW1VZ2MzQmxZMmxtYVdWa0lHbG1JR0JtZFc1akxteGxibWQwYUdCY2JpQWdJQ0FnS2lCcGN5QnViM1FnYzNWbVptbGphV1Z1ZEM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUZSb1pTQmdYeTVqZFhKeWVTNXdiR0ZqWldodmJHUmxjbUFnZG1Gc2RXVXNJSGRvYVdOb0lHUmxabUYxYkhSeklIUnZJR0JmWUNCcGJpQnRiMjV2YkdsMGFHbGpJR0oxYVd4a2N5eGNiaUFnSUNBZ0tpQnRZWGtnWW1VZ2RYTmxaQ0JoY3lCaElIQnNZV05sYUc5c1pHVnlJR1p2Y2lCd2NtOTJhV1JsWkNCaGNtZDFiV1Z1ZEhNdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBcUtrNXZkR1U2S2lvZ1ZHaHBjeUJ0WlhSb2IyUWdaRzlsYzI0bmRDQnpaWFFnZEdobElGd2liR1Z1WjNSb1hDSWdjSEp2Y0dWeWRIa2diMllnWTNWeWNtbGxaQ0JtZFc1amRHbHZibk11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdNaTR3TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1JuVnVZM1JwYjI1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCbWRXNWpJRlJvWlNCbWRXNWpkR2x2YmlCMGJ5QmpkWEp5ZVM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzJGeWFYUjVQV1oxYm1NdWJHVnVaM1JvWFNCVWFHVWdZWEpwZEhrZ2IyWWdZR1oxYm1OZ0xseHVJQ0FnSUNBcUlFQndZWEpoYlMwZ2UwOWlhbVZqZEgwZ1cyZDFZWEprWFNCRmJtRmliR1Z6SUhWelpTQmhjeUJoYmlCcGRHVnlZWFJsWlNCbWIzSWdiV1YwYUc5a2N5QnNhV3RsSUdCZkxtMWhjR0F1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBaMWJtTjBhVzl1ZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnWTNWeWNtbGxaQ0JtZFc1amRHbHZiaTVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkbUZ5SUdGaVl5QTlJR1oxYm1OMGFXOXVLR0VzSUdJc0lHTXBJSHRjYmlBZ0lDQWdLaUFnSUhKbGRIVnliaUJiWVN3Z1lpd2dZMTA3WEc0Z0lDQWdJQ29nZlR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQmpkWEp5YVdWa0lEMGdYeTVqZFhKeWVTaGhZbU1wTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWTNWeWNtbGxaQ2d4S1NneUtTZ3pLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJNU3dnTWl3Z00xMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlHTjFjbkpwWldRb01Td2dNaWtvTXlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnV3pFc0lESXNJRE5kWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJqZFhKeWFXVmtLREVzSURJc0lETXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc3hMQ0F5TENBelhWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdRM1Z5Y21sbFpDQjNhWFJvSUhCc1lXTmxhRzlzWkdWeWN5NWNiaUFnSUNBZ0tpQmpkWEp5YVdWa0tERXBLRjhzSURNcEtESXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc3hMQ0F5TENBelhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdOMWNuSjVLR1oxYm1Nc0lHRnlhWFI1TENCbmRXRnlaQ2tnZTF4dUlDQWdJQ0FnWVhKcGRIa2dQU0JuZFdGeVpDQS9JSFZ1WkdWbWFXNWxaQ0E2SUdGeWFYUjVPMXh1SUNBZ0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUdOeVpXRjBaVmR5WVhBb1puVnVZeXdnVjFKQlVGOURWVkpTV1Y5R1RFRkhMQ0IxYm1SbFptbHVaV1FzSUhWdVpHVm1hVzVsWkN3Z2RXNWtaV1pwYm1Wa0xDQjFibVJsWm1sdVpXUXNJSFZ1WkdWbWFXNWxaQ3dnWVhKcGRIa3BPMXh1SUNBZ0lDQWdjbVZ6ZFd4MExuQnNZV05sYUc5c1pHVnlJRDBnWTNWeWNua3VjR3hoWTJWb2IyeGtaWEk3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9hWE1nYldWMGFHOWtJR2x6SUd4cGEyVWdZRjh1WTNWeWNubGdJR1Y0WTJWd2RDQjBhR0YwSUdGeVozVnRaVzUwY3lCaGNtVWdZWEJ3YkdsbFpDQjBieUJnWm5WdVkyQmNiaUFnSUNBZ0tpQnBiaUIwYUdVZ2JXRnVibVZ5SUc5bUlHQmZMbkJoY25ScFlXeFNhV2RvZEdBZ2FXNXpkR1ZoWkNCdlppQmdYeTV3WVhKMGFXRnNZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRlJvWlNCZ1h5NWpkWEp5ZVZKcFoyaDBMbkJzWVdObGFHOXNaR1Z5WUNCMllXeDFaU3dnZDJocFkyZ2daR1ZtWVhWc2RITWdkRzhnWUY5Z0lHbHVJRzF2Ym05c2FYUm9hV05jYmlBZ0lDQWdLaUJpZFdsc1pITXNJRzFoZVNCaVpTQjFjMlZrSUdGeklHRWdjR3hoWTJWb2IyeGtaWElnWm05eUlIQnliM1pwWkdWa0lHRnlaM1Z0Wlc1MGN5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDb3FUbTkwWlRvcUtpQlVhR2x6SUcxbGRHaHZaQ0JrYjJWemJpZDBJSE5sZENCMGFHVWdYQ0pzWlc1bmRHaGNJaUJ3Y205d1pYSjBlU0J2WmlCamRYSnlhV1ZrSUdaMWJtTjBhVzl1Y3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F6TGpBdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQkdkVzVqZEdsdmJseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlHWjFibU1nVkdobElHWjFibU4wYVc5dUlIUnZJR04xY25KNUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYllYSnBkSGs5Wm5WdVl5NXNaVzVuZEdoZElGUm9aU0JoY21sMGVTQnZaaUJnWm5WdVkyQXVYRzRnSUNBZ0lDb2dRSEJoY21GdExTQjdUMkpxWldOMGZTQmJaM1ZoY21SZElFVnVZV0pzWlhNZ2RYTmxJR0Z6SUdGdUlHbDBaWEpoZEdWbElHWnZjaUJ0WlhSb2IyUnpJR3hwYTJVZ1lGOHViV0Z3WUM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1JuVnVZM1JwYjI1OUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCamRYSnlhV1ZrSUdaMWJtTjBhVzl1TGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ1lXSmpJRDBnWm5WdVkzUnBiMjRvWVN3Z1lpd2dZeWtnZTF4dUlDQWdJQ0FxSUNBZ2NtVjBkWEp1SUZ0aExDQmlMQ0JqWFR0Y2JpQWdJQ0FnS2lCOU8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ2RtRnlJR04xY25KcFpXUWdQU0JmTG1OMWNuSjVVbWxuYUhRb1lXSmpLVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJR04xY25KcFpXUW9NeWtvTWlrb01TazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1d6RXNJRElzSUROZFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCamRYSnlhV1ZrS0RJc0lETXBLREVwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnN4TENBeUxDQXpYVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dZM1Z5Y21sbFpDZ3hMQ0F5TENBektUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYk1Td2dNaXdnTTExY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUM4dklFTjFjbkpwWldRZ2QybDBhQ0J3YkdGalpXaHZiR1JsY25NdVhHNGdJQ0FnSUNvZ1kzVnljbWxsWkNnektTZ3hMQ0JmS1NneUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYk1Td2dNaXdnTTExY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJqZFhKeWVWSnBaMmgwS0daMWJtTXNJR0Z5YVhSNUxDQm5kV0Z5WkNrZ2UxeHVJQ0FnSUNBZ1lYSnBkSGtnUFNCbmRXRnlaQ0EvSUhWdVpHVm1hVzVsWkNBNklHRnlhWFI1TzF4dUlDQWdJQ0FnZG1GeUlISmxjM1ZzZENBOUlHTnlaV0YwWlZkeVlYQW9ablZ1WXl3Z1YxSkJVRjlEVlZKU1dWOVNTVWRJVkY5R1RFRkhMQ0IxYm1SbFptbHVaV1FzSUhWdVpHVm1hVzVsWkN3Z2RXNWtaV1pwYm1Wa0xDQjFibVJsWm1sdVpXUXNJSFZ1WkdWbWFXNWxaQ3dnWVhKcGRIa3BPMXh1SUNBZ0lDQWdjbVZ6ZFd4MExuQnNZV05sYUc5c1pHVnlJRDBnWTNWeWNubFNhV2RvZEM1d2JHRmpaV2h2YkdSbGNqdGNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTNKbFlYUmxjeUJoSUdSbFltOTFibU5sWkNCbWRXNWpkR2x2YmlCMGFHRjBJR1JsYkdGNWN5QnBiblp2YTJsdVp5QmdablZ1WTJBZ2RXNTBhV3dnWVdaMFpYSWdZSGRoYVhSZ1hHNGdJQ0FnSUNvZ2JXbHNiR2x6WldOdmJtUnpJR2hoZG1VZ1pXeGhjSE5sWkNCemFXNWpaU0IwYUdVZ2JHRnpkQ0IwYVcxbElIUm9aU0JrWldKdmRXNWpaV1FnWm5WdVkzUnBiMjRnZDJGelhHNGdJQ0FnSUNvZ2FXNTJiMnRsWkM0Z1ZHaGxJR1JsWW05MWJtTmxaQ0JtZFc1amRHbHZiaUJqYjIxbGN5QjNhWFJvSUdFZ1lHTmhibU5sYkdBZ2JXVjBhRzlrSUhSdklHTmhibU5sYkZ4dUlDQWdJQ0FxSUdSbGJHRjVaV1FnWUdaMWJtTmdJR2x1ZG05allYUnBiMjV6SUdGdVpDQmhJR0JtYkhWemFHQWdiV1YwYUc5a0lIUnZJR2x0YldWa2FXRjBaV3g1SUdsdWRtOXJaU0IwYUdWdExseHVJQ0FnSUNBcUlGQnliM1pwWkdVZ1lHOXdkR2x2Ym5OZ0lIUnZJR2x1WkdsallYUmxJSGRvWlhSb1pYSWdZR1oxYm1OZ0lITm9iM1ZzWkNCaVpTQnBiblp2YTJWa0lHOXVJSFJvWlZ4dUlDQWdJQ0FxSUd4bFlXUnBibWNnWVc1a0wyOXlJSFJ5WVdsc2FXNW5JR1ZrWjJVZ2IyWWdkR2hsSUdCM1lXbDBZQ0IwYVcxbGIzVjBMaUJVYUdVZ1lHWjFibU5nSUdseklHbHVkbTlyWldSY2JpQWdJQ0FnS2lCM2FYUm9JSFJvWlNCc1lYTjBJR0Z5WjNWdFpXNTBjeUJ3Y205MmFXUmxaQ0IwYnlCMGFHVWdaR1ZpYjNWdVkyVmtJR1oxYm1OMGFXOXVMaUJUZFdKelpYRjFaVzUwWEc0Z0lDQWdJQ29nWTJGc2JITWdkRzhnZEdobElHUmxZbTkxYm1ObFpDQm1kVzVqZEdsdmJpQnlaWFIxY200Z2RHaGxJSEpsYzNWc2RDQnZaaUIwYUdVZ2JHRnpkQ0JnWm5WdVkyQmNiaUFnSUNBZ0tpQnBiblp2WTJGMGFXOXVMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dLaXBPYjNSbE9pb3FJRWxtSUdCc1pXRmthVzVuWUNCaGJtUWdZSFJ5WVdsc2FXNW5ZQ0J2Y0hScGIyNXpJR0Z5WlNCZ2RISjFaV0FzSUdCbWRXNWpZQ0JwYzF4dUlDQWdJQ0FxSUdsdWRtOXJaV1FnYjI0Z2RHaGxJSFJ5WVdsc2FXNW5JR1ZrWjJVZ2IyWWdkR2hsSUhScGJXVnZkWFFnYjI1c2VTQnBaaUIwYUdVZ1pHVmliM1Z1WTJWa0lHWjFibU4wYVc5dVhHNGdJQ0FnSUNvZ2FYTWdhVzUyYjJ0bFpDQnRiM0psSUhSb1lXNGdiMjVqWlNCa2RYSnBibWNnZEdobElHQjNZV2wwWUNCMGFXMWxiM1YwTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nU1dZZ1lIZGhhWFJnSUdseklHQXdZQ0JoYm1RZ1lHeGxZV1JwYm1kZ0lHbHpJR0JtWVd4elpXQXNJR0JtZFc1allDQnBiblp2WTJGMGFXOXVJR2x6SUdSbFptVnljbVZrWEc0Z0lDQWdJQ29nZFc1MGFXd2dkRzhnZEdobElHNWxlSFFnZEdsamF5d2djMmx0YVd4aGNpQjBieUJnYzJWMFZHbHRaVzkxZEdBZ2QybDBhQ0JoSUhScGJXVnZkWFFnYjJZZ1lEQmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dVMlZsSUZ0RVlYWnBaQ0JEYjNKaVlXTm9ieWR6SUdGeWRHbGpiR1ZkS0doMGRIQnpPaTh2WTNOekxYUnlhV05yY3k1amIyMHZaR1ZpYjNWdVkybHVaeTEwYUhKdmRIUnNhVzVuTFdWNGNHeGhhVzVsWkMxbGVHRnRjR3hsY3k4cFhHNGdJQ0FnSUNvZ1ptOXlJR1JsZEdGcGJITWdiM1psY2lCMGFHVWdaR2xtWm1WeVpXNWpaWE1nWW1WMGQyVmxiaUJnWHk1a1pXSnZkVzVqWldBZ1lXNWtJR0JmTG5Sb2NtOTBkR3hsWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F3TGpFdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQkdkVzVqZEdsdmJseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlHWjFibU1nVkdobElHWjFibU4wYVc5dUlIUnZJR1JsWW05MWJtTmxMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmJkMkZwZEQwd1hTQlVhR1VnYm5WdFltVnlJRzltSUcxcGJHeHBjMlZqYjI1a2N5QjBieUJrWld4aGVTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ1cyOXdkR2x2Ym5NOWUzMWRJRlJvWlNCdmNIUnBiMjV6SUc5aWFtVmpkQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMkp2YjJ4bFlXNTlJRnR2Y0hScGIyNXpMbXhsWVdScGJtYzlabUZzYzJWZFhHNGdJQ0FnSUNvZ0lGTndaV05wWm5rZ2FXNTJiMnRwYm1jZ2IyNGdkR2hsSUd4bFlXUnBibWNnWldSblpTQnZaaUIwYUdVZ2RHbHRaVzkxZEM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzI5d2RHbHZibk11YldGNFYyRnBkRjFjYmlBZ0lDQWdLaUFnVkdobElHMWhlR2x0ZFcwZ2RHbHRaU0JnWm5WdVkyQWdhWE1nWVd4c2IzZGxaQ0IwYnlCaVpTQmtaV3hoZVdWa0lHSmxabTl5WlNCcGRDZHpJR2x1ZG05clpXUXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJiM0IwYVc5dWN5NTBjbUZwYkdsdVp6MTBjblZsWFZ4dUlDQWdJQ0FxSUNCVGNHVmphV1o1SUdsdWRtOXJhVzVuSUc5dUlIUm9aU0IwY21GcGJHbHVaeUJsWkdkbElHOW1JSFJvWlNCMGFXMWxiM1YwTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0R2RXNWpkR2x2Ym4wZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUdSbFltOTFibU5sWkNCbWRXNWpkR2x2Ymk1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z1FYWnZhV1FnWTI5emRHeDVJR05oYkdOMWJHRjBhVzl1Y3lCM2FHbHNaU0IwYUdVZ2QybHVaRzkzSUhOcGVtVWdhWE1nYVc0Z1pteDFlQzVjYmlBZ0lDQWdLaUJxVVhWbGNua29kMmx1Wkc5M0tTNXZiaWduY21WemFYcGxKeXdnWHk1a1pXSnZkVzVqWlNoallXeGpkV3hoZEdWTVlYbHZkWFFzSURFMU1Da3BPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dMeThnU1c1MmIydGxJR0J6Wlc1a1RXRnBiR0FnZDJobGJpQmpiR2xqYTJWa0xDQmtaV0p2ZFc1amFXNW5JSE4xWW5ObGNYVmxiblFnWTJGc2JITXVYRzRnSUNBZ0lDb2dhbEYxWlhKNUtHVnNaVzFsYm5RcExtOXVLQ2RqYkdsamF5Y3NJRjh1WkdWaWIzVnVZMlVvYzJWdVpFMWhhV3dzSURNd01Dd2dlMXh1SUNBZ0lDQXFJQ0FnSjJ4bFlXUnBibWNuT2lCMGNuVmxMRnh1SUNBZ0lDQXFJQ0FnSjNSeVlXbHNhVzVuSnpvZ1ptRnNjMlZjYmlBZ0lDQWdLaUI5S1NrN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBdkx5QkZibk4xY21VZ1lHSmhkR05vVEc5bllDQnBjeUJwYm5admEyVmtJRzl1WTJVZ1lXWjBaWElnTVNCelpXTnZibVFnYjJZZ1pHVmliM1Z1WTJWa0lHTmhiR3h6TGx4dUlDQWdJQ0FxSUhaaGNpQmtaV0p2ZFc1alpXUWdQU0JmTG1SbFltOTFibU5sS0dKaGRHTm9URzluTENBeU5UQXNJSHNnSjIxaGVGZGhhWFFuT2lBeE1EQXdJSDBwTzF4dUlDQWdJQ0FxSUhaaGNpQnpiM1Z5WTJVZ1BTQnVaWGNnUlhabGJuUlRiM1Z5WTJVb0p5OXpkSEpsWVcwbktUdGNiaUFnSUNBZ0tpQnFVWFZsY25rb2MyOTFjbU5sS1M1dmJpZ25iV1Z6YzJGblpTY3NJR1JsWW05MWJtTmxaQ2s3WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUF2THlCRFlXNWpaV3dnZEdobElIUnlZV2xzYVc1bklHUmxZbTkxYm1ObFpDQnBiblp2WTJGMGFXOXVMbHh1SUNBZ0lDQXFJR3BSZFdWeWVTaDNhVzVrYjNjcExtOXVLQ2R3YjNCemRHRjBaU2NzSUdSbFltOTFibU5sWkM1allXNWpaV3dwTzF4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR1JsWW05MWJtTmxLR1oxYm1Nc0lIZGhhWFFzSUc5d2RHbHZibk1wSUh0Y2JpQWdJQ0FnSUhaaGNpQnNZWE4wUVhKbmN5eGNiaUFnSUNBZ0lDQWdJQ0JzWVhOMFZHaHBjeXhjYmlBZ0lDQWdJQ0FnSUNCdFlYaFhZV2wwTEZ4dUlDQWdJQ0FnSUNBZ0lISmxjM1ZzZEN4Y2JpQWdJQ0FnSUNBZ0lDQjBhVzFsY2tsa0xGeHVJQ0FnSUNBZ0lDQWdJR3hoYzNSRFlXeHNWR2x0WlN4Y2JpQWdJQ0FnSUNBZ0lDQnNZWE4wU1c1MmIydGxWR2x0WlNBOUlEQXNYRzRnSUNBZ0lDQWdJQ0FnYkdWaFpHbHVaeUE5SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0FnSUcxaGVHbHVaeUE5SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0FnSUhSeVlXbHNhVzVuSUQwZ2RISjFaVHRjYmx4dUlDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCbWRXNWpJQ0U5SUNkbWRXNWpkR2x2YmljcElIdGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhHVlU1RFgwVlNVazlTWDFSRldGUXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdkMkZwZENBOUlIUnZUblZ0WW1WeUtIZGhhWFFwSUh4OElEQTdYRzRnSUNBZ0lDQnBaaUFvYVhOUFltcGxZM1FvYjNCMGFXOXVjeWtwSUh0Y2JpQWdJQ0FnSUNBZ2JHVmhaR2x1WnlBOUlDRWhiM0IwYVc5dWN5NXNaV0ZrYVc1bk8xeHVJQ0FnSUNBZ0lDQnRZWGhwYm1jZ1BTQW5iV0Y0VjJGcGRDY2dhVzRnYjNCMGFXOXVjenRjYmlBZ0lDQWdJQ0FnYldGNFYyRnBkQ0E5SUcxaGVHbHVaeUEvSUc1aGRHbDJaVTFoZUNoMGIwNTFiV0psY2lodmNIUnBiMjV6TG0xaGVGZGhhWFFwSUh4OElEQXNJSGRoYVhRcElEb2diV0Y0VjJGcGREdGNiaUFnSUNBZ0lDQWdkSEpoYVd4cGJtY2dQU0FuZEhKaGFXeHBibWNuSUdsdUlHOXdkR2x2Ym5NZ1B5QWhJVzl3ZEdsdmJuTXVkSEpoYVd4cGJtY2dPaUIwY21GcGJHbHVaenRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnWm5WdVkzUnBiMjRnYVc1MmIydGxSblZ1WXloMGFXMWxLU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQmhjbWR6SUQwZ2JHRnpkRUZ5WjNNc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdselFYSm5JRDBnYkdGemRGUm9hWE03WEc1Y2JpQWdJQ0FnSUNBZ2JHRnpkRUZ5WjNNZ1BTQnNZWE4wVkdocGN5QTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQWdJQ0FnYkdGemRFbHVkbTlyWlZScGJXVWdQU0IwYVcxbE8xeHVJQ0FnSUNBZ0lDQnlaWE4xYkhRZ1BTQm1kVzVqTG1Gd2NHeDVLSFJvYVhOQmNtY3NJR0Z5WjNNcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCbWRXNWpkR2x2YmlCc1pXRmthVzVuUldSblpTaDBhVzFsS1NCN1hHNGdJQ0FnSUNBZ0lDOHZJRkpsYzJWMElHRnVlU0JnYldGNFYyRnBkR0FnZEdsdFpYSXVYRzRnSUNBZ0lDQWdJR3hoYzNSSmJuWnZhMlZVYVcxbElEMGdkR2x0WlR0Y2JpQWdJQ0FnSUNBZ0x5OGdVM1JoY25RZ2RHaGxJSFJwYldWeUlHWnZjaUIwYUdVZ2RISmhhV3hwYm1jZ1pXUm5aUzVjYmlBZ0lDQWdJQ0FnZEdsdFpYSkpaQ0E5SUhObGRGUnBiV1Z2ZFhRb2RHbHRaWEpGZUhCcGNtVmtMQ0IzWVdsMEtUdGNiaUFnSUNBZ0lDQWdMeThnU1c1MmIydGxJSFJvWlNCc1pXRmthVzVuSUdWa1oyVXVYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnNaV0ZrYVc1bklEOGdhVzUyYjJ0bFJuVnVZeWgwYVcxbEtTQTZJSEpsYzNWc2REdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdablZ1WTNScGIyNGdjbVZ0WVdsdWFXNW5WMkZwZENoMGFXMWxLU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQjBhVzFsVTJsdVkyVk1ZWE4wUTJGc2JDQTlJSFJwYldVZ0xTQnNZWE4wUTJGc2JGUnBiV1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhVzFsVTJsdVkyVk1ZWE4wU1c1MmIydGxJRDBnZEdsdFpTQXRJR3hoYzNSSmJuWnZhMlZVYVcxbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdsdFpWZGhhWFJwYm1jZ1BTQjNZV2wwSUMwZ2RHbHRaVk5wYm1ObFRHRnpkRU5oYkd3N1hHNWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHMWhlR2x1WjF4dUlDQWdJQ0FnSUNBZ0lEOGdibUYwYVhabFRXbHVLSFJwYldWWFlXbDBhVzVuTENCdFlYaFhZV2wwSUMwZ2RHbHRaVk5wYm1ObFRHRnpkRWx1ZG05clpTbGNiaUFnSUNBZ0lDQWdJQ0E2SUhScGJXVlhZV2wwYVc1bk8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQm1kVzVqZEdsdmJpQnphRzkxYkdSSmJuWnZhMlVvZEdsdFpTa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ2RHbHRaVk5wYm1ObFRHRnpkRU5oYkd3Z1BTQjBhVzFsSUMwZ2JHRnpkRU5oYkd4VWFXMWxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHbHRaVk5wYm1ObFRHRnpkRWx1ZG05clpTQTlJSFJwYldVZ0xTQnNZWE4wU1c1MmIydGxWR2x0WlR0Y2JseHVJQ0FnSUNBZ0lDQXZMeUJGYVhSb1pYSWdkR2hwY3lCcGN5QjBhR1VnWm1seWMzUWdZMkZzYkN3Z1lXTjBhWFpwZEhrZ2FHRnpJSE4wYjNCd1pXUWdZVzVrSUhkbEozSmxJR0YwSUhSb1pWeHVJQ0FnSUNBZ0lDQXZMeUIwY21GcGJHbHVaeUJsWkdkbExDQjBhR1VnYzNsemRHVnRJSFJwYldVZ2FHRnpJR2R2Ym1VZ1ltRmphM2RoY21SeklHRnVaQ0IzWlNkeVpTQjBjbVZoZEdsdVoxeHVJQ0FnSUNBZ0lDQXZMeUJwZENCaGN5QjBhR1VnZEhKaGFXeHBibWNnWldSblpTd2diM0lnZDJVbmRtVWdhR2wwSUhSb1pTQmdiV0Y0VjJGcGRHQWdiR2x0YVhRdVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBb2JHRnpkRU5oYkd4VWFXMWxJRDA5UFNCMWJtUmxabWx1WldRZ2ZId2dLSFJwYldWVGFXNWpaVXhoYzNSRFlXeHNJRDQ5SUhkaGFYUXBJSHg4WEc0Z0lDQWdJQ0FnSUNBZ0tIUnBiV1ZUYVc1alpVeGhjM1JEWVd4c0lEd2dNQ2tnZkh3Z0tHMWhlR2x1WnlBbUppQjBhVzFsVTJsdVkyVk1ZWE4wU1c1MmIydGxJRDQ5SUcxaGVGZGhhWFFwS1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1puVnVZM1JwYjI0Z2RHbHRaWEpGZUhCcGNtVmtLQ2tnZTF4dUlDQWdJQ0FnSUNCMllYSWdkR2x0WlNBOUlHNXZkeWdwTzF4dUlDQWdJQ0FnSUNCcFppQW9jMmh2ZFd4a1NXNTJiMnRsS0hScGJXVXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSeVlXbHNhVzVuUldSblpTaDBhVzFsS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQXZMeUJTWlhOMFlYSjBJSFJvWlNCMGFXMWxjaTVjYmlBZ0lDQWdJQ0FnZEdsdFpYSkpaQ0E5SUhObGRGUnBiV1Z2ZFhRb2RHbHRaWEpGZUhCcGNtVmtMQ0J5WlcxaGFXNXBibWRYWVdsMEtIUnBiV1VwS1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1puVnVZM1JwYjI0Z2RISmhhV3hwYm1kRlpHZGxLSFJwYldVcElIdGNiaUFnSUNBZ0lDQWdkR2x0WlhKSlpDQTlJSFZ1WkdWbWFXNWxaRHRjYmx4dUlDQWdJQ0FnSUNBdkx5QlBibXg1SUdsdWRtOXJaU0JwWmlCM1pTQm9ZWFpsSUdCc1lYTjBRWEpuYzJBZ2QyaHBZMmdnYldWaGJuTWdZR1oxYm1OZ0lHaGhjeUJpWldWdVhHNGdJQ0FnSUNBZ0lDOHZJR1JsWW05MWJtTmxaQ0JoZENCc1pXRnpkQ0J2Ym1ObExseHVJQ0FnSUNBZ0lDQnBaaUFvZEhKaGFXeHBibWNnSmlZZ2JHRnpkRUZ5WjNNcElIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdhVzUyYjJ0bFJuVnVZeWgwYVcxbEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JzWVhOMFFYSm5jeUE5SUd4aGMzUlVhR2x6SUQwZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCbWRXNWpkR2x2YmlCallXNWpaV3dvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYVcxbGNrbGtJQ0U5UFNCMWJtUmxabWx1WldRcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYkdWaGNsUnBiV1Z2ZFhRb2RHbHRaWEpKWkNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdiR0Z6ZEVsdWRtOXJaVlJwYldVZ1BTQXdPMXh1SUNBZ0lDQWdJQ0JzWVhOMFFYSm5jeUE5SUd4aGMzUkRZV3hzVkdsdFpTQTlJR3hoYzNSVWFHbHpJRDBnZEdsdFpYSkpaQ0E5SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1puVnVZM1JwYjI0Z1pteDFjMmdvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFXMWxja2xrSUQwOVBTQjFibVJsWm1sdVpXUWdQeUJ5WlhOMWJIUWdPaUIwY21GcGJHbHVaMFZrWjJVb2JtOTNLQ2twTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCbWRXNWpkR2x2YmlCa1pXSnZkVzVqWldRb0tTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCMGFXMWxJRDBnYm05M0tDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCcGMwbHVkbTlyYVc1bklEMGdjMmh2ZFd4a1NXNTJiMnRsS0hScGJXVXBPMXh1WEc0Z0lDQWdJQ0FnSUd4aGMzUkJjbWR6SUQwZ1lYSm5kVzFsYm5Sek8xeHVJQ0FnSUNBZ0lDQnNZWE4wVkdocGN5QTlJSFJvYVhNN1hHNGdJQ0FnSUNBZ0lHeGhjM1JEWVd4c1ZHbHRaU0E5SUhScGJXVTdYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tHbHpTVzUyYjJ0cGJtY3BJSHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9kR2x0WlhKSlpDQTlQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiR1ZoWkdsdVowVmtaMlVvYkdGemRFTmhiR3hVYVcxbEtUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLRzFoZUdsdVp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdTR0Z1Wkd4bElHbHVkbTlqWVhScGIyNXpJR2x1SUdFZ2RHbG5hSFFnYkc5dmNDNWNiaUFnSUNBZ0lDQWdJQ0FnSUdOc1pXRnlWR2x0Wlc5MWRDaDBhVzFsY2tsa0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhScGJXVnlTV1FnUFNCelpYUlVhVzFsYjNWMEtIUnBiV1Z5Ulhod2FYSmxaQ3dnZDJGcGRDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYVc1MmIydGxSblZ1WXloc1lYTjBRMkZzYkZScGJXVXBPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnBaaUFvZEdsdFpYSkpaQ0E5UFQwZ2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdsdFpYSkpaQ0E5SUhObGRGUnBiV1Z2ZFhRb2RHbHRaWEpGZUhCcGNtVmtMQ0IzWVdsMEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1pHVmliM1Z1WTJWa0xtTmhibU5sYkNBOUlHTmhibU5sYkR0Y2JpQWdJQ0FnSUdSbFltOTFibU5sWkM1bWJIVnphQ0E5SUdac2RYTm9PMXh1SUNBZ0lDQWdjbVYwZFhKdUlHUmxZbTkxYm1ObFpEdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkVaV1psY25NZ2FXNTJiMnRwYm1jZ2RHaGxJR0JtZFc1allDQjFiblJwYkNCMGFHVWdZM1Z5Y21WdWRDQmpZV3hzSUhOMFlXTnJJR2hoY3lCamJHVmhjbVZrTGlCQmJubGNiaUFnSUNBZ0tpQmhaR1JwZEdsdmJtRnNJR0Z5WjNWdFpXNTBjeUJoY21VZ2NISnZkbWxrWldRZ2RHOGdZR1oxYm1OZ0lIZG9aVzRnYVhRbmN5QnBiblp2YTJWa0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURBdU1TNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRVoxYm1OMGFXOXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdablZ1WXlCVWFHVWdablZ1WTNScGIyNGdkRzhnWkdWbVpYSXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3VMaTRxZlNCYllYSm5jMTBnVkdobElHRnlaM1Z0Wlc1MGN5QjBieUJwYm5admEyVWdZR1oxYm1OZ0lIZHBkR2d1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTI1MWJXSmxjbjBnVW1WMGRYSnVjeUIwYUdVZ2RHbHRaWElnYVdRdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dVpHVm1aWElvWm5WdVkzUnBiMjRvZEdWNGRDa2dlMXh1SUNBZ0lDQXFJQ0FnWTI5dWMyOXNaUzVzYjJjb2RHVjRkQ2s3WEc0Z0lDQWdJQ29nZlN3Z0oyUmxabVZ5Y21Wa0p5azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1RHOW5jeUFuWkdWbVpYSnlaV1FuSUdGbWRHVnlJRzl1WlNCdGFXeHNhWE5sWTI5dVpDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCMllYSWdaR1ZtWlhJZ1BTQmlZWE5sVW1WemRDaG1kVzVqZEdsdmJpaG1kVzVqTENCaGNtZHpLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZbUZ6WlVSbGJHRjVLR1oxYm1Nc0lERXNJR0Z5WjNNcE8xeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dTVzUyYjJ0bGN5QmdablZ1WTJBZ1lXWjBaWElnWUhkaGFYUmdJRzFwYkd4cGMyVmpiMjVrY3k0Z1FXNTVJR0ZrWkdsMGFXOXVZV3dnWVhKbmRXMWxiblJ6SUdGeVpWeHVJQ0FnSUNBcUlIQnliM1pwWkdWa0lIUnZJR0JtZFc1allDQjNhR1Z1SUdsMEozTWdhVzUyYjJ0bFpDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBd0xqRXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JHZFc1amRHbHZibHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR1oxYm1NZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUdSbGJHRjVMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQjNZV2wwSUZSb1pTQnVkVzFpWlhJZ2IyWWdiV2xzYkdselpXTnZibVJ6SUhSdklHUmxiR0Y1SUdsdWRtOWpZWFJwYjI0dVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzdUxpNHFmU0JiWVhKbmMxMGdWR2hsSUdGeVozVnRaVzUwY3lCMGJ5QnBiblp2YTJVZ1lHWjFibU5nSUhkcGRHZ3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMjUxYldKbGNuMGdVbVYwZFhKdWN5QjBhR1VnZEdsdFpYSWdhV1F1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1WkdWc1lYa29ablZ1WTNScGIyNG9kR1Y0ZENrZ2UxeHVJQ0FnSUNBcUlDQWdZMjl1YzI5c1pTNXNiMmNvZEdWNGRDazdYRzRnSUNBZ0lDb2dmU3dnTVRBd01Dd2dKMnhoZEdWeUp5azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1RHOW5jeUFuYkdGMFpYSW5JR0ZtZEdWeUlHOXVaU0J6WldOdmJtUXVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RtRnlJR1JsYkdGNUlEMGdZbUZ6WlZKbGMzUW9ablZ1WTNScGIyNG9ablZ1WXl3Z2QyRnBkQ3dnWVhKbmN5a2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHSmhjMlZFWld4aGVTaG1kVzVqTENCMGIwNTFiV0psY2loM1lXbDBLU0I4ZkNBd0xDQmhjbWR6S1R0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnlaV0YwWlhNZ1lTQm1kVzVqZEdsdmJpQjBhR0YwSUdsdWRtOXJaWE1nWUdaMWJtTmdJSGRwZEdnZ1lYSm5kVzFsYm5SeklISmxkbVZ5YzJWa0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRVoxYm1OMGFXOXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdablZ1WXlCVWFHVWdablZ1WTNScGIyNGdkRzhnWm14cGNDQmhjbWQxYldWdWRITWdabTl5TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0R2RXNWpkR2x2Ym4wZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUdac2FYQndaV1FnWm5WdVkzUnBiMjR1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSFpoY2lCbWJHbHdjR1ZrSUQwZ1h5NW1iR2x3S0daMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUNBcUlDQWdjbVYwZFhKdUlGOHVkRzlCY25KaGVTaGhjbWQxYldWdWRITXBPMXh1SUNBZ0lDQXFJSDBwTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWm14cGNIQmxaQ2duWVNjc0lDZGlKeXdnSjJNbkxDQW5aQ2NwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnNuWkNjc0lDZGpKeXdnSjJJbkxDQW5ZU2RkWEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdabXhwY0NobWRXNWpLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZM0psWVhSbFYzSmhjQ2htZFc1akxDQlhVa0ZRWDBaTVNWQmZSa3hCUnlrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElHWjFibU4wYVc5dUlIUm9ZWFFnYldWdGIybDZaWE1nZEdobElISmxjM1ZzZENCdlppQmdablZ1WTJBdUlFbG1JR0J5WlhOdmJIWmxjbUFnYVhOY2JpQWdJQ0FnS2lCd2NtOTJhV1JsWkN3Z2FYUWdaR1YwWlhKdGFXNWxjeUIwYUdVZ1kyRmphR1VnYTJWNUlHWnZjaUJ6ZEc5eWFXNW5JSFJvWlNCeVpYTjFiSFFnWW1GelpXUWdiMjRnZEdobFhHNGdJQ0FnSUNvZ1lYSm5kVzFsYm5SeklIQnliM1pwWkdWa0lIUnZJSFJvWlNCdFpXMXZhWHBsWkNCbWRXNWpkR2x2Ymk0Z1Fua2daR1ZtWVhWc2RDd2dkR2hsSUdacGNuTjBJR0Z5WjNWdFpXNTBYRzRnSUNBZ0lDb2djSEp2ZG1sa1pXUWdkRzhnZEdobElHMWxiVzlwZW1Wa0lHWjFibU4wYVc5dUlHbHpJSFZ6WldRZ1lYTWdkR2hsSUcxaGNDQmpZV05vWlNCclpYa3VJRlJvWlNCZ1puVnVZMkJjYmlBZ0lDQWdLaUJwY3lCcGJuWnZhMlZrSUhkcGRHZ2dkR2hsSUdCMGFHbHpZQ0JpYVc1a2FXNW5JRzltSUhSb1pTQnRaVzF2YVhwbFpDQm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDb3FUbTkwWlRvcUtpQlVhR1VnWTJGamFHVWdhWE1nWlhod2IzTmxaQ0JoY3lCMGFHVWdZR05oWTJobFlDQndjbTl3WlhKMGVTQnZiaUIwYUdVZ2JXVnRiMmw2WldSY2JpQWdJQ0FnS2lCbWRXNWpkR2x2Ymk0Z1NYUnpJR055WldGMGFXOXVJRzFoZVNCaVpTQmpkWE4wYjIxcGVtVmtJR0o1SUhKbGNHeGhZMmx1WnlCMGFHVWdZRjh1YldWdGIybDZaUzVEWVdOb1pXQmNiaUFnSUNBZ0tpQmpiMjV6ZEhKMVkzUnZjaUIzYVhSb0lHOXVaU0IzYUc5elpTQnBibk4wWVc1alpYTWdhVzF3YkdWdFpXNTBJSFJvWlZ4dUlDQWdJQ0FxSUZ0Z1RXRndZRjBvYUhSMGNEb3ZMMlZqYldFdGFXNTBaWEp1WVhScGIyNWhiQzV2Y21jdlpXTnRZUzB5TmpJdk55NHdMeU56WldNdGNISnZjR1Z5ZEdsbGN5MXZaaTEwYUdVdGJXRndMWEJ5YjNSdmRIbHdaUzF2WW1wbFkzUXBYRzRnSUNBZ0lDb2diV1YwYUc5a0lHbHVkR1Z5Wm1GalpTQnZaaUJnWTJ4bFlYSmdMQ0JnWkdWc1pYUmxZQ3dnWUdkbGRHQXNJR0JvWVhOZ0xDQmhibVFnWUhObGRHQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01DNHhMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnUm5WdVkzUnBiMjVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JtZFc1aklGUm9aU0JtZFc1amRHbHZiaUIwYnlCb1lYWmxJR2wwY3lCdmRYUndkWFFnYldWdGIybDZaV1F1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnVzNKbGMyOXNkbVZ5WFNCVWFHVWdablZ1WTNScGIyNGdkRzhnY21WemIyeDJaU0IwYUdVZ1kyRmphR1VnYTJWNUxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdEdkVzVqZEdsdmJuMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHMWxiVzlwZW1Wa0lHWjFibU4wYVc5dUxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdiMkpxWldOMElEMGdleUFuWVNjNklERXNJQ2RpSnpvZ01pQjlPMXh1SUNBZ0lDQXFJSFpoY2lCdmRHaGxjaUE5SUhzZ0oyTW5PaUF6TENBblpDYzZJRFFnZlR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQjJZV3gxWlhNZ1BTQmZMbTFsYlc5cGVtVW9YeTUyWVd4MVpYTXBPMXh1SUNBZ0lDQXFJSFpoYkhWbGN5aHZZbXBsWTNRcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzeExDQXlYVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkbUZzZFdWektHOTBhR1Z5S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiTXl3Z05GMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlHOWlhbVZqZEM1aElEMGdNanRjYmlBZ0lDQWdLaUIyWVd4MVpYTW9iMkpxWldOMEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYk1Td2dNbDFjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQzh2SUUxdlpHbG1lU0IwYUdVZ2NtVnpkV3gwSUdOaFkyaGxMbHh1SUNBZ0lDQXFJSFpoYkhWbGN5NWpZV05vWlM1elpYUW9iMkpxWldOMExDQmJKMkVuTENBbllpZGRLVHRjYmlBZ0lDQWdLaUIyWVd4MVpYTW9iMkpxWldOMEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYkoyRW5MQ0FuWWlkZFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBdkx5QlNaWEJzWVdObElHQmZMbTFsYlc5cGVtVXVRMkZqYUdWZ0xseHVJQ0FnSUNBcUlGOHViV1Z0YjJsNlpTNURZV05vWlNBOUlGZGxZV3ROWVhBN1hHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYldWdGIybDZaU2htZFc1akxDQnlaWE52YkhabGNpa2dlMXh1SUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJtZFc1aklDRTlJQ2RtZFc1amRHbHZiaWNnZkh3Z0tISmxjMjlzZG1WeUlDRTlJRzUxYkd3Z0ppWWdkSGx3Wlc5bUlISmxjMjlzZG1WeUlDRTlJQ2RtZFc1amRHbHZiaWNwS1NCN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9SbFZPUTE5RlVsSlBVbDlVUlZoVUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lIWmhjaUJ0WlcxdmFYcGxaQ0E5SUdaMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnWVhKbmN5QTlJR0Z5WjNWdFpXNTBjeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHdGxlU0E5SUhKbGMyOXNkbVZ5SUQ4Z2NtVnpiMngyWlhJdVlYQndiSGtvZEdocGN5d2dZWEpuY3lrZ09pQmhjbWR6V3pCZExGeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGamFHVWdQU0J0WlcxdmFYcGxaQzVqWVdOb1pUdGNibHh1SUNBZ0lDQWdJQ0JwWmlBb1kyRmphR1V1YUdGektHdGxlU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1kyRmphR1V1WjJWMEtHdGxlU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2RtRnlJSEpsYzNWc2RDQTlJR1oxYm1NdVlYQndiSGtvZEdocGN5d2dZWEpuY3lrN1hHNGdJQ0FnSUNBZ0lHMWxiVzlwZW1Wa0xtTmhZMmhsSUQwZ1kyRmphR1V1YzJWMEtHdGxlU3dnY21WemRXeDBLU0I4ZkNCallXTm9aVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnSUNBZ0lIMDdYRzRnSUNBZ0lDQnRaVzF2YVhwbFpDNWpZV05vWlNBOUlHNWxkeUFvYldWdGIybDZaUzVEWVdOb1pTQjhmQ0JOWVhCRFlXTm9aU2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiV1Z0YjJsNlpXUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdSWGh3YjNObElHQk5ZWEJEWVdOb1pXQXVYRzRnSUNBZ2JXVnRiMmw2WlM1RFlXTm9aU0E5SUUxaGNFTmhZMmhsTzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElHWjFibU4wYVc5dUlIUm9ZWFFnYm1WbllYUmxjeUIwYUdVZ2NtVnpkV3gwSUc5bUlIUm9aU0J3Y21Wa2FXTmhkR1VnWUdaMWJtTmdMaUJVYUdWY2JpQWdJQ0FnS2lCZ1puVnVZMkFnY0hKbFpHbGpZWFJsSUdseklHbHVkbTlyWldRZ2QybDBhQ0IwYUdVZ1lIUm9hWE5nSUdKcGJtUnBibWNnWVc1a0lHRnlaM1Z0Wlc1MGN5QnZaaUIwYUdWY2JpQWdJQ0FnS2lCamNtVmhkR1ZrSUdaMWJtTjBhVzl1TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRE11TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFWjFibU4wYVc5dVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ2NISmxaR2xqWVhSbElGUm9aU0J3Y21Wa2FXTmhkR1VnZEc4Z2JtVm5ZWFJsTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0R2RXNWpkR2x2Ym4wZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUc1bFoyRjBaV1FnWm5WdVkzUnBiMjR1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJR1oxYm1OMGFXOXVJR2x6UlhabGJpaHVLU0I3WEc0Z0lDQWdJQ29nSUNCeVpYUjFjbTRnYmlBbElESWdQVDBnTUR0Y2JpQWdJQ0FnS2lCOVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtWnBiSFJsY2loYk1Td2dNaXdnTXl3Z05Dd2dOU3dnTmwwc0lGOHVibVZuWVhSbEtHbHpSWFpsYmlrcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzeExDQXpMQ0ExWFZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJRzVsWjJGMFpTaHdjbVZrYVdOaGRHVXBJSHRjYmlBZ0lDQWdJR2xtSUNoMGVYQmxiMllnY0hKbFpHbGpZWFJsSUNFOUlDZG1kVzVqZEdsdmJpY3BJSHRjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loR1ZVNURYMFZTVWs5U1gxUkZXRlFwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJR1oxYm1OMGFXOXVLQ2tnZTF4dUlDQWdJQ0FnSUNCMllYSWdZWEpuY3lBOUlHRnlaM1Z0Wlc1MGN6dGNiaUFnSUNBZ0lDQWdjM2RwZEdOb0lDaGhjbWR6TG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHTmhjMlVnTURvZ2NtVjBkWEp1SUNGd2NtVmthV05oZEdVdVkyRnNiQ2gwYUdsektUdGNiaUFnSUNBZ0lDQWdJQ0JqWVhObElERTZJSEpsZEhWeWJpQWhjSEpsWkdsallYUmxMbU5oYkd3b2RHaHBjeXdnWVhKbmMxc3dYU2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0F5T2lCeVpYUjFjbTRnSVhCeVpXUnBZMkYwWlM1allXeHNLSFJvYVhNc0lHRnlaM05iTUYwc0lHRnlaM05iTVYwcE8xeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ016b2djbVYwZFhKdUlDRndjbVZrYVdOaGRHVXVZMkZzYkNoMGFHbHpMQ0JoY21keld6QmRMQ0JoY21keld6RmRMQ0JoY21keld6SmRLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnSVhCeVpXUnBZMkYwWlM1aGNIQnNlU2gwYUdsekxDQmhjbWR6S1R0Y2JpQWdJQ0FnSUgwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElHWjFibU4wYVc5dUlIUm9ZWFFnYVhNZ2NtVnpkSEpwWTNSbFpDQjBieUJwYm5admEybHVaeUJnWm5WdVkyQWdiMjVqWlM0Z1VtVndaV0YwSUdOaGJHeHpYRzRnSUNBZ0lDb2dkRzhnZEdobElHWjFibU4wYVc5dUlISmxkSFZ5YmlCMGFHVWdkbUZzZFdVZ2IyWWdkR2hsSUdacGNuTjBJR2x1ZG05allYUnBiMjR1SUZSb1pTQmdablZ1WTJBZ2FYTmNiaUFnSUNBZ0tpQnBiblp2YTJWa0lIZHBkR2dnZEdobElHQjBhR2x6WUNCaWFXNWthVzVuSUdGdVpDQmhjbWQxYldWdWRITWdiMllnZEdobElHTnlaV0YwWldRZ1puVnVZM1JwYjI0dVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTUM0eExqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dSblZ1WTNScGIyNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQm1kVzVqSUZSb1pTQm1kVzVqZEdsdmJpQjBieUJ5WlhOMGNtbGpkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3Um5WdVkzUnBiMjU5SUZKbGRIVnlibk1nZEdobElHNWxkeUJ5WlhOMGNtbGpkR1ZrSUdaMWJtTjBhVzl1TGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ2FXNXBkR2xoYkdsNlpTQTlJRjh1YjI1alpTaGpjbVZoZEdWQmNIQnNhV05oZEdsdmJpazdYRzRnSUNBZ0lDb2dhVzVwZEdsaGJHbDZaU2dwTzF4dUlDQWdJQ0FxSUdsdWFYUnBZV3hwZW1Vb0tUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCZ1kzSmxZWFJsUVhCd2JHbGpZWFJwYjI1Z0lHbHpJR2x1ZG05clpXUWdiMjVqWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJRzl1WTJVb1puVnVZeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR0psWm05eVpTZ3lMQ0JtZFc1aktUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRWdablZ1WTNScGIyNGdkR2hoZENCcGJuWnZhMlZ6SUdCbWRXNWpZQ0IzYVhSb0lHbDBjeUJoY21kMWJXVnVkSE1nZEhKaGJuTm1iM0p0WldRdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRFF1TUM0d1hHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dSblZ1WTNScGIyNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQm1kVzVqSUZSb1pTQm1kVzVqZEdsdmJpQjBieUIzY21Gd0xseHVJQ0FnSUNBcUlFQndZWEpoYlNCN0xpNHVLRVoxYm1OMGFXOXVmRVoxYm1OMGFXOXVXMTBwZlNCYmRISmhibk5tYjNKdGN6MWJYeTVwWkdWdWRHbDBlVjFkWEc0Z0lDQWdJQ29nSUZSb1pTQmhjbWQxYldWdWRDQjBjbUZ1YzJadmNtMXpMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRHZFc1amRHbHZibjBnVW1WMGRYSnVjeUIwYUdVZ2JtVjNJR1oxYm1OMGFXOXVMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQm1kVzVqZEdsdmJpQmtiM1ZpYkdWa0tHNHBJSHRjYmlBZ0lDQWdLaUFnSUhKbGRIVnliaUJ1SUNvZ01qdGNiaUFnSUNBZ0tpQjlYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQm1kVzVqZEdsdmJpQnpjWFZoY21Vb2Jpa2dlMXh1SUNBZ0lDQXFJQ0FnY21WMGRYSnVJRzRnS2lCdU8xeHVJQ0FnSUNBcUlIMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlIWmhjaUJtZFc1aklEMGdYeTV2ZG1WeVFYSm5jeWhtZFc1amRHbHZiaWg0TENCNUtTQjdYRzRnSUNBZ0lDb2dJQ0J5WlhSMWNtNGdXM2dzSUhsZE8xeHVJQ0FnSUNBcUlIMHNJRnR6Y1hWaGNtVXNJR1J2ZFdKc1pXUmRLVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJR1oxYm1Nb09Td2dNeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXemd4TENBMlhWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1puVnVZeWd4TUN3Z05TazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1d6RXdNQ3dnTVRCZFhHNGdJQ0FnSUNvdlhHNGdJQ0FnZG1GeUlHOTJaWEpCY21keklEMGdZMkZ6ZEZKbGMzUW9ablZ1WTNScGIyNG9ablZ1WXl3Z2RISmhibk5tYjNKdGN5a2dlMXh1SUNBZ0lDQWdkSEpoYm5ObWIzSnRjeUE5SUNoMGNtRnVjMlp2Y20xekxteGxibWQwYUNBOVBTQXhJQ1ltSUdselFYSnlZWGtvZEhKaGJuTm1iM0p0YzFzd1hTa3BYRzRnSUNBZ0lDQWdJRDhnWVhKeVlYbE5ZWEFvZEhKaGJuTm1iM0p0YzFzd1hTd2dZbUZ6WlZWdVlYSjVLR2RsZEVsMFpYSmhkR1ZsS0NrcEtWeHVJQ0FnSUNBZ0lDQTZJR0Z5Y21GNVRXRndLR0poYzJWR2JHRjBkR1Z1S0hSeVlXNXpabTl5YlhNc0lERXBMQ0JpWVhObFZXNWhjbmtvWjJWMFNYUmxjbUYwWldVb0tTa3BPMXh1WEc0Z0lDQWdJQ0IyWVhJZ1puVnVZM05NWlc1bmRHZ2dQU0IwY21GdWMyWnZjbTF6TG14bGJtZDBhRHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmlZWE5sVW1WemRDaG1kVzVqZEdsdmJpaGhjbWR6S1NCN1hHNGdJQ0FnSUNBZ0lIWmhjaUJwYm1SbGVDQTlJQzB4TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiR1Z1WjNSb0lEMGdibUYwYVhabFRXbHVLR0Z5WjNNdWJHVnVaM1JvTENCbWRXNWpjMHhsYm1kMGFDazdYRzVjYmlBZ0lDQWdJQ0FnZDJocGJHVWdLQ3NyYVc1a1pYZ2dQQ0JzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCaGNtZHpXMmx1WkdWNFhTQTlJSFJ5WVc1elptOXliWE5iYVc1a1pYaGRMbU5oYkd3b2RHaHBjeXdnWVhKbmMxdHBibVJsZUYwcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmhjSEJzZVNobWRXNWpMQ0IwYUdsekxDQmhjbWR6S1R0Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRM0psWVhSbGN5QmhJR1oxYm1OMGFXOXVJSFJvWVhRZ2FXNTJiMnRsY3lCZ1puVnVZMkFnZDJsMGFDQmdjR0Z5ZEdsaGJITmdJSEJ5WlhCbGJtUmxaQ0IwYnlCMGFHVmNiaUFnSUNBZ0tpQmhjbWQxYldWdWRITWdhWFFnY21WalpXbDJaWE11SUZSb2FYTWdiV1YwYUc5a0lHbHpJR3hwYTJVZ1lGOHVZbWx1WkdBZ1pYaGpaWEIwSUdsMElHUnZaWE1nS2lwdWIzUXFLbHh1SUNBZ0lDQXFJR0ZzZEdWeUlIUm9aU0JnZEdocGMyQWdZbWx1WkdsdVp5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGUm9aU0JnWHk1d1lYSjBhV0ZzTG5Cc1lXTmxhRzlzWkdWeVlDQjJZV3gxWlN3Z2QyaHBZMmdnWkdWbVlYVnNkSE1nZEc4Z1lGOWdJR2x1SUcxdmJtOXNhWFJvYVdOY2JpQWdJQ0FnS2lCaWRXbHNaSE1zSUcxaGVTQmlaU0IxYzJWa0lHRnpJR0VnY0d4aFkyVm9iMnhrWlhJZ1ptOXlJSEJoY25ScFlXeHNlU0JoY0hCc2FXVmtJR0Z5WjNWdFpXNTBjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQ29xVG05MFpUb3FLaUJVYUdseklHMWxkR2h2WkNCa2IyVnpiaWQwSUhObGRDQjBhR1VnWENKc1pXNW5kR2hjSWlCd2NtOXdaWEowZVNCdlppQndZWEowYVdGc2JIbGNiaUFnSUNBZ0tpQmhjSEJzYVdWa0lHWjFibU4wYVc5dWN5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBd0xqSXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JHZFc1amRHbHZibHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR1oxYm1NZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUhCaGNuUnBZV3hzZVNCaGNIQnNlU0JoY21kMWJXVnVkSE1nZEc4dVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzdUxpNHFmU0JiY0dGeWRHbGhiSE5kSUZSb1pTQmhjbWQxYldWdWRITWdkRzhnWW1VZ2NHRnlkR2xoYkd4NUlHRndjR3hwWldRdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwWjFibU4wYVc5dWZTQlNaWFIxY201eklIUm9aU0J1WlhjZ2NHRnlkR2xoYkd4NUlHRndjR3hwWldRZ1puVnVZM1JwYjI0dVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUdaMWJtTjBhVzl1SUdkeVpXVjBLR2R5WldWMGFXNW5MQ0J1WVcxbEtTQjdYRzRnSUNBZ0lDb2dJQ0J5WlhSMWNtNGdaM0psWlhScGJtY2dLeUFuSUNjZ0t5QnVZVzFsTzF4dUlDQWdJQ0FxSUgxY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQnpZWGxJWld4c2IxUnZJRDBnWHk1d1lYSjBhV0ZzS0dkeVpXVjBMQ0FuYUdWc2JHOG5LVHRjYmlBZ0lDQWdLaUJ6WVhsSVpXeHNiMVJ2S0NkbWNtVmtKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMmhsYkd4dklHWnlaV1FuWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUF2THlCUVlYSjBhV0ZzYkhrZ1lYQndiR2xsWkNCM2FYUm9JSEJzWVdObGFHOXNaR1Z5Y3k1Y2JpQWdJQ0FnS2lCMllYSWdaM0psWlhSR2NtVmtJRDBnWHk1d1lYSjBhV0ZzS0dkeVpXVjBMQ0JmTENBblpuSmxaQ2NwTzF4dUlDQWdJQ0FxSUdkeVpXVjBSbkpsWkNnbmFHa25LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQW5hR2tnWm5KbFpDZGNiaUFnSUNBZ0tpOWNiaUFnSUNCMllYSWdjR0Z5ZEdsaGJDQTlJR0poYzJWU1pYTjBLR1oxYm1OMGFXOXVLR1oxYm1Nc0lIQmhjblJwWVd4ektTQjdYRzRnSUNBZ0lDQjJZWElnYUc5c1pHVnljeUE5SUhKbGNHeGhZMlZJYjJ4a1pYSnpLSEJoY25ScFlXeHpMQ0JuWlhSSWIyeGtaWElvY0dGeWRHbGhiQ2twTzF4dUlDQWdJQ0FnY21WMGRYSnVJR055WldGMFpWZHlZWEFvWm5WdVl5d2dWMUpCVUY5UVFWSlVTVUZNWDBaTVFVY3NJSFZ1WkdWbWFXNWxaQ3dnY0dGeWRHbGhiSE1zSUdodmJHUmxjbk1wTzF4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaHBjeUJ0WlhSb2IyUWdhWE1nYkdsclpTQmdYeTV3WVhKMGFXRnNZQ0JsZUdObGNIUWdkR2hoZENCd1lYSjBhV0ZzYkhrZ1lYQndiR2xsWkNCaGNtZDFiV1Z1ZEhOY2JpQWdJQ0FnS2lCaGNtVWdZWEJ3Wlc1a1pXUWdkRzhnZEdobElHRnlaM1Z0Wlc1MGN5QnBkQ0J5WldObGFYWmxjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRlJvWlNCZ1h5NXdZWEowYVdGc1VtbG5hSFF1Y0d4aFkyVm9iMnhrWlhKZ0lIWmhiSFZsTENCM2FHbGphQ0JrWldaaGRXeDBjeUIwYnlCZ1gyQWdhVzRnYlc5dWIyeHBkR2hwWTF4dUlDQWdJQ0FxSUdKMWFXeGtjeXdnYldGNUlHSmxJSFZ6WldRZ1lYTWdZU0J3YkdGalpXaHZiR1JsY2lCbWIzSWdjR0Z5ZEdsaGJHeDVJR0Z3Y0d4cFpXUWdZWEpuZFcxbGJuUnpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dLaXBPYjNSbE9pb3FJRlJvYVhNZ2JXVjBhRzlrSUdSdlpYTnVKM1FnYzJWMElIUm9aU0JjSW14bGJtZDBhRndpSUhCeWIzQmxjblI1SUc5bUlIQmhjblJwWVd4c2VWeHVJQ0FnSUNBcUlHRndjR3hwWldRZ1puVnVZM1JwYjI1ekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURFdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRVoxYm1OMGFXOXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdablZ1WXlCVWFHVWdablZ1WTNScGIyNGdkRzhnY0dGeWRHbGhiR3g1SUdGd2NHeDVJR0Z5WjNWdFpXNTBjeUIwYnk1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXk0dUxpcDlJRnR3WVhKMGFXRnNjMTBnVkdobElHRnlaM1Z0Wlc1MGN5QjBieUJpWlNCd1lYSjBhV0ZzYkhrZ1lYQndiR2xsWkM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1JuVnVZM1JwYjI1OUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCd1lYSjBhV0ZzYkhrZ1lYQndiR2xsWkNCbWRXNWpkR2x2Ymk1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWm5WdVkzUnBiMjRnWjNKbFpYUW9aM0psWlhScGJtY3NJRzVoYldVcElIdGNiaUFnSUNBZ0tpQWdJSEpsZEhWeWJpQm5jbVZsZEdsdVp5QXJJQ2NnSnlBcklHNWhiV1U3WEc0Z0lDQWdJQ29nZlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlHZHlaV1YwUm5KbFpDQTlJRjh1Y0dGeWRHbGhiRkpwWjJoMEtHZHlaV1YwTENBblpuSmxaQ2NwTzF4dUlDQWdJQ0FxSUdkeVpXVjBSbkpsWkNnbmFHa25LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQW5hR2tnWm5KbFpDZGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDOHZJRkJoY25ScFlXeHNlU0JoY0hCc2FXVmtJSGRwZEdnZ2NHeGhZMlZvYjJ4a1pYSnpMbHh1SUNBZ0lDQXFJSFpoY2lCellYbElaV3hzYjFSdklEMGdYeTV3WVhKMGFXRnNVbWxuYUhRb1ozSmxaWFFzSUNkb1pXeHNieWNzSUY4cE8xeHVJQ0FnSUNBcUlITmhlVWhsYkd4dlZHOG9KMlp5WldRbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBbmFHVnNiRzhnWm5KbFpDZGNiaUFnSUNBZ0tpOWNiaUFnSUNCMllYSWdjR0Z5ZEdsaGJGSnBaMmgwSUQwZ1ltRnpaVkpsYzNRb1puVnVZM1JwYjI0b1puVnVZeXdnY0dGeWRHbGhiSE1wSUh0Y2JpQWdJQ0FnSUhaaGNpQm9iMnhrWlhKeklEMGdjbVZ3YkdGalpVaHZiR1JsY25Nb2NHRnlkR2xoYkhNc0lHZGxkRWh2YkdSbGNpaHdZWEowYVdGc1VtbG5hSFFwS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJqY21WaGRHVlhjbUZ3S0daMWJtTXNJRmRTUVZCZlVFRlNWRWxCVEY5U1NVZElWRjlHVEVGSExDQjFibVJsWm1sdVpXUXNJSEJoY25ScFlXeHpMQ0JvYjJ4a1pYSnpLVHRjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOeVpXRjBaWE1nWVNCbWRXNWpkR2x2YmlCMGFHRjBJR2x1ZG05clpYTWdZR1oxYm1OZ0lIZHBkR2dnWVhKbmRXMWxiblJ6SUdGeWNtRnVaMlZrSUdGalkyOXlaR2x1WjF4dUlDQWdJQ0FxSUhSdklIUm9aU0J6Y0dWamFXWnBaV1FnWUdsdVpHVjRaWE5nSUhkb1pYSmxJSFJvWlNCaGNtZDFiV1Z1ZENCMllXeDFaU0JoZENCMGFHVWdabWx5YzNRZ2FXNWtaWGdnYVhOY2JpQWdJQ0FnS2lCd2NtOTJhV1JsWkNCaGN5QjBhR1VnWm1seWMzUWdZWEpuZFcxbGJuUXNJSFJvWlNCaGNtZDFiV1Z1ZENCMllXeDFaU0JoZENCMGFHVWdjMlZqYjI1a0lHbHVaR1Y0SUdselhHNGdJQ0FnSUNvZ2NISnZkbWxrWldRZ1lYTWdkR2hsSUhObFkyOXVaQ0JoY21kMWJXVnVkQ3dnWVc1a0lITnZJRzl1TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRE11TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFWjFibU4wYVc5dVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1puVnVZeUJVYUdVZ1puVnVZM1JwYjI0Z2RHOGdjbVZoY25KaGJtZGxJR0Z5WjNWdFpXNTBjeUJtYjNJdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzdUxpNG9iblZ0WW1WeWZHNTFiV0psY2x0ZEtYMGdhVzVrWlhobGN5QlVhR1VnWVhKeVlXNW5aV1FnWVhKbmRXMWxiblFnYVc1a1pYaGxjeTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3Um5WdVkzUnBiMjU5SUZKbGRIVnlibk1nZEdobElHNWxkeUJtZFc1amRHbHZiaTVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkbUZ5SUhKbFlYSm5aV1FnUFNCZkxuSmxZWEpuS0daMWJtTjBhVzl1S0dFc0lHSXNJR01wSUh0Y2JpQWdJQ0FnS2lBZ0lISmxkSFZ5YmlCYllTd2dZaXdnWTEwN1hHNGdJQ0FnSUNvZ2ZTd2dXeklzSURBc0lERmRLVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSEpsWVhKblpXUW9KMkluTENBbll5Y3NJQ2RoSnlsY2JpQWdJQ0FnS2lBdkx5QTlQaUJiSjJFbkxDQW5ZaWNzSUNkakoxMWNiaUFnSUNBZ0tpOWNiaUFnSUNCMllYSWdjbVZoY21jZ1BTQm1iR0YwVW1WemRDaG1kVzVqZEdsdmJpaG1kVzVqTENCcGJtUmxlR1Z6S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWTNKbFlYUmxWM0poY0NobWRXNWpMQ0JYVWtGUVgxSkZRVkpIWDBaTVFVY3NJSFZ1WkdWbWFXNWxaQ3dnZFc1a1pXWnBibVZrTENCMWJtUmxabWx1WldRc0lHbHVaR1Y0WlhNcE8xeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRM0psWVhSbGN5QmhJR1oxYm1OMGFXOXVJSFJvWVhRZ2FXNTJiMnRsY3lCZ1puVnVZMkFnZDJsMGFDQjBhR1VnWUhSb2FYTmdJR0pwYm1ScGJtY2diMllnZEdobFhHNGdJQ0FnSUNvZ1kzSmxZWFJsWkNCbWRXNWpkR2x2YmlCaGJtUWdZWEpuZFcxbGJuUnpJR1p5YjIwZ1lITjBZWEowWUNCaGJtUWdZbVY1YjI1a0lIQnliM1pwWkdWa0lHRnpYRzRnSUNBZ0lDb2dZVzRnWVhKeVlYa3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXFLazV2ZEdVNktpb2dWR2hwY3lCdFpYUm9iMlFnYVhNZ1ltRnpaV1FnYjI0Z2RHaGxYRzRnSUNBZ0lDb2dXM0psYzNRZ2NHRnlZVzFsZEdWeVhTaG9kSFJ3Y3pvdkwyMWtiaTVwYnk5eVpYTjBYM0JoY21GdFpYUmxjbk1wTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRFF1TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFWjFibU4wYVc5dVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1puVnVZeUJVYUdVZ1puVnVZM1JwYjI0Z2RHOGdZWEJ3YkhrZ1lTQnlaWE4wSUhCaGNtRnRaWFJsY2lCMGJ5NWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1czTjBZWEowUFdaMWJtTXViR1Z1WjNSb0xURmRJRlJvWlNCemRHRnlkQ0J3YjNOcGRHbHZiaUJ2WmlCMGFHVWdjbVZ6ZENCd1lYSmhiV1YwWlhJdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwWjFibU4wYVc5dWZTQlNaWFIxY201eklIUm9aU0J1WlhjZ1puVnVZM1JwYjI0dVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQnpZWGtnUFNCZkxuSmxjM1FvWm5WdVkzUnBiMjRvZDJoaGRDd2dibUZ0WlhNcElIdGNiaUFnSUNBZ0tpQWdJSEpsZEhWeWJpQjNhR0YwSUNzZ0p5QW5JQ3NnWHk1cGJtbDBhV0ZzS0c1aGJXVnpLUzVxYjJsdUtDY3NJQ2NwSUN0Y2JpQWdJQ0FnS2lBZ0lDQWdLRjh1YzJsNlpTaHVZVzFsY3lrZ1BpQXhJRDhnSnl3Z0ppQW5JRG9nSnljcElDc2dYeTVzWVhOMEtHNWhiV1Z6S1R0Y2JpQWdJQ0FnS2lCOUtUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlITmhlU2duYUdWc2JHOG5MQ0FuWm5KbFpDY3NJQ2RpWVhKdVpYa25MQ0FuY0dWaVlteGxjeWNwTzF4dUlDQWdJQ0FxSUM4dklEMCtJQ2RvWld4c2J5Qm1jbVZrTENCaVlYSnVaWGtzSUNZZ2NHVmlZbXhsY3lkY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJ5WlhOMEtHWjFibU1zSUhOMFlYSjBLU0I3WEc0Z0lDQWdJQ0JwWmlBb2RIbHdaVzltSUdaMWJtTWdJVDBnSjJaMWJtTjBhVzl1SnlrZ2UxeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dWSGx3WlVWeWNtOXlLRVpWVGtOZlJWSlNUMUpmVkVWWVZDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnpkR0Z5ZENBOUlITjBZWEowSUQwOVBTQjFibVJsWm1sdVpXUWdQeUJ6ZEdGeWRDQTZJSFJ2U1c1MFpXZGxjaWh6ZEdGeWRDazdYRzRnSUNBZ0lDQnlaWFIxY200Z1ltRnpaVkpsYzNRb1puVnVZeXdnYzNSaGNuUXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU55WldGMFpYTWdZU0JtZFc1amRHbHZiaUIwYUdGMElHbHVkbTlyWlhNZ1lHWjFibU5nSUhkcGRHZ2dkR2hsSUdCMGFHbHpZQ0JpYVc1a2FXNW5JRzltSUhSb1pWeHVJQ0FnSUNBcUlHTnlaV0YwWlNCbWRXNWpkR2x2YmlCaGJtUWdZVzRnWVhKeVlYa2diMllnWVhKbmRXMWxiblJ6SUcxMVkyZ2diR2xyWlZ4dUlDQWdJQ0FxSUZ0Z1JuVnVZM1JwYjI0allYQndiSGxnWFNob2RIUndPaTh2ZDNkM0xtVmpiV0V0YVc1MFpYSnVZWFJwYjI1aGJDNXZjbWN2WldOdFlTMHlOakl2Tnk0d0x5TnpaV010Wm5WdVkzUnBiMjR1Y0hKdmRHOTBlWEJsTG1Gd2NHeDVLUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQ29xVG05MFpUb3FLaUJVYUdseklHMWxkR2h2WkNCcGN5QmlZWE5sWkNCdmJpQjBhR1ZjYmlBZ0lDQWdLaUJiYzNCeVpXRmtJRzl3WlhKaGRHOXlYU2hvZEhSd2N6b3ZMMjFrYmk1cGJ5OXpjSEpsWVdSZmIzQmxjbUYwYjNJcExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURNdU1pNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRVoxYm1OMGFXOXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdablZ1WXlCVWFHVWdablZ1WTNScGIyNGdkRzhnYzNCeVpXRmtJR0Z5WjNWdFpXNTBjeUJ2ZG1WeUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYmMzUmhjblE5TUYwZ1ZHaGxJSE4wWVhKMElIQnZjMmwwYVc5dUlHOW1JSFJvWlNCemNISmxZV1F1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBaMWJtTjBhVzl1ZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnWm5WdVkzUnBiMjR1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSFpoY2lCellYa2dQU0JmTG5Od2NtVmhaQ2htZFc1amRHbHZiaWgzYUc4c0lIZG9ZWFFwSUh0Y2JpQWdJQ0FnS2lBZ0lISmxkSFZ5YmlCM2FHOGdLeUFuSUhOaGVYTWdKeUFySUhkb1lYUTdYRzRnSUNBZ0lDb2dmU2s3WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJ6WVhrb1d5ZG1jbVZrSnl3Z0oyaGxiR3h2SjEwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUNkbWNtVmtJSE5oZVhNZ2FHVnNiRzhuWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ2JuVnRZbVZ5Y3lBOUlGQnliMjFwYzJVdVlXeHNLRnRjYmlBZ0lDQWdLaUFnSUZCeWIyMXBjMlV1Y21WemIyeDJaU2cwTUNrc1hHNGdJQ0FnSUNvZ0lDQlFjbTl0YVhObExuSmxjMjlzZG1Vb016WXBYRzRnSUNBZ0lDb2dYU2s3WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJ1ZFcxaVpYSnpMblJvWlc0b1h5NXpjSEpsWVdRb1puVnVZM1JwYjI0b2VDd2dlU2tnZTF4dUlDQWdJQ0FxSUNBZ2NtVjBkWEp1SUhnZ0t5QjVPMXh1SUNBZ0lDQXFJSDBwS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJoSUZCeWIyMXBjMlVnYjJZZ056WmNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCemNISmxZV1FvWm5WdVl5d2djM1JoY25RcElIdGNiaUFnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdablZ1WXlBaFBTQW5ablZ1WTNScGIyNG5LU0I3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCVWVYQmxSWEp5YjNJb1JsVk9RMTlGVWxKUFVsOVVSVmhVS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhOMFlYSjBJRDBnYzNSaGNuUWdQVDBnYm5Wc2JDQS9JREFnT2lCdVlYUnBkbVZOWVhnb2RHOUpiblJsWjJWeUtITjBZWEowS1N3Z01DazdYRzRnSUNBZ0lDQnlaWFIxY200Z1ltRnpaVkpsYzNRb1puVnVZM1JwYjI0b1lYSm5jeWtnZTF4dUlDQWdJQ0FnSUNCMllYSWdZWEp5WVhrZ1BTQmhjbWR6VzNOMFlYSjBYU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHOTBhR1Z5UVhKbmN5QTlJR05oYzNSVGJHbGpaU2hoY21kekxDQXdMQ0J6ZEdGeWRDazdYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tHRnljbUY1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdZWEp5WVhsUWRYTm9LRzkwYUdWeVFYSm5jeXdnWVhKeVlYa3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJoY0hCc2VTaG1kVzVqTENCMGFHbHpMQ0J2ZEdobGNrRnlaM01wTzF4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElIUm9jbTkwZEd4bFpDQm1kVzVqZEdsdmJpQjBhR0YwSUc5dWJIa2dhVzUyYjJ0bGN5QmdablZ1WTJBZ1lYUWdiVzl6ZENCdmJtTmxJSEJsY2x4dUlDQWdJQ0FxSUdWMlpYSjVJR0IzWVdsMFlDQnRhV3hzYVhObFkyOXVaSE11SUZSb1pTQjBhSEp2ZEhSc1pXUWdablZ1WTNScGIyNGdZMjl0WlhNZ2QybDBhQ0JoSUdCallXNWpaV3hnWEc0Z0lDQWdJQ29nYldWMGFHOWtJSFJ2SUdOaGJtTmxiQ0JrWld4aGVXVmtJR0JtZFc1allDQnBiblp2WTJGMGFXOXVjeUJoYm1RZ1lTQmdabXgxYzJoZ0lHMWxkR2h2WkNCMGIxeHVJQ0FnSUNBcUlHbHRiV1ZrYVdGMFpXeDVJR2x1ZG05clpTQjBhR1Z0TGlCUWNtOTJhV1JsSUdCdmNIUnBiMjV6WUNCMGJ5QnBibVJwWTJGMFpTQjNhR1YwYUdWeUlHQm1kVzVqWUZ4dUlDQWdJQ0FxSUhOb2IzVnNaQ0JpWlNCcGJuWnZhMlZrSUc5dUlIUm9aU0JzWldGa2FXNW5JR0Z1WkM5dmNpQjBjbUZwYkdsdVp5QmxaR2RsSUc5bUlIUm9aU0JnZDJGcGRHQmNiaUFnSUNBZ0tpQjBhVzFsYjNWMExpQlVhR1VnWUdaMWJtTmdJR2x6SUdsdWRtOXJaV1FnZDJsMGFDQjBhR1VnYkdGemRDQmhjbWQxYldWdWRITWdjSEp2ZG1sa1pXUWdkRzhnZEdobFhHNGdJQ0FnSUNvZ2RHaHliM1IwYkdWa0lHWjFibU4wYVc5dUxpQlRkV0p6WlhGMVpXNTBJR05oYkd4eklIUnZJSFJvWlNCMGFISnZkSFJzWldRZ1puVnVZM1JwYjI0Z2NtVjBkWEp1SUhSb1pWeHVJQ0FnSUNBcUlISmxjM1ZzZENCdlppQjBhR1VnYkdGemRDQmdablZ1WTJBZ2FXNTJiMk5oZEdsdmJpNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDb3FUbTkwWlRvcUtpQkpaaUJnYkdWaFpHbHVaMkFnWVc1a0lHQjBjbUZwYkdsdVoyQWdiM0IwYVc5dWN5QmhjbVVnWUhSeWRXVmdMQ0JnWm5WdVkyQWdhWE5jYmlBZ0lDQWdLaUJwYm5admEyVmtJRzl1SUhSb1pTQjBjbUZwYkdsdVp5QmxaR2RsSUc5bUlIUm9aU0IwYVcxbGIzVjBJRzl1YkhrZ2FXWWdkR2hsSUhSb2NtOTBkR3hsWkNCbWRXNWpkR2x2Ymx4dUlDQWdJQ0FxSUdseklHbHVkbTlyWldRZ2JXOXlaU0IwYUdGdUlHOXVZMlVnWkhWeWFXNW5JSFJvWlNCZ2QyRnBkR0FnZEdsdFpXOTFkQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRWxtSUdCM1lXbDBZQ0JwY3lCZ01HQWdZVzVrSUdCc1pXRmthVzVuWUNCcGN5QmdabUZzYzJWZ0xDQmdablZ1WTJBZ2FXNTJiMk5oZEdsdmJpQnBjeUJrWldabGNuSmxaRnh1SUNBZ0lDQXFJSFZ1ZEdsc0lIUnZJSFJvWlNCdVpYaDBJSFJwWTJzc0lITnBiV2xzWVhJZ2RHOGdZSE5sZEZScGJXVnZkWFJnSUhkcGRHZ2dZU0IwYVcxbGIzVjBJRzltSUdBd1lDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGTmxaU0JiUkdGMmFXUWdRMjl5WW1GamFHOG5jeUJoY25ScFkyeGxYU2hvZEhSd2N6b3ZMMk56Y3kxMGNtbGphM011WTI5dEwyUmxZbTkxYm1OcGJtY3RkR2h5YjNSMGJHbHVaeTFsZUhCc1lXbHVaV1F0WlhoaGJYQnNaWE12S1Z4dUlDQWdJQ0FxSUdadmNpQmtaWFJoYVd4eklHOTJaWElnZEdobElHUnBabVpsY21WdVkyVnpJR0psZEhkbFpXNGdZRjh1ZEdoeWIzUjBiR1ZnSUdGdVpDQmdYeTVrWldKdmRXNWpaV0F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdNQzR4TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1JuVnVZM1JwYjI1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCbWRXNWpJRlJvWlNCbWRXNWpkR2x2YmlCMGJ5QjBhSEp2ZEhSc1pTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1czZGhhWFE5TUYwZ1ZHaGxJRzUxYldKbGNpQnZaaUJ0YVd4c2FYTmxZMjl1WkhNZ2RHOGdkR2h5YjNSMGJHVWdhVzUyYjJOaGRHbHZibk1nZEc4dVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUZ0dmNIUnBiMjV6UFh0OVhTQlVhR1VnYjNCMGFXOXVjeUJ2WW1wbFkzUXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJiM0IwYVc5dWN5NXNaV0ZrYVc1blBYUnlkV1ZkWEc0Z0lDQWdJQ29nSUZOd1pXTnBabmtnYVc1MmIydHBibWNnYjI0Z2RHaGxJR3hsWVdScGJtY2daV1JuWlNCdlppQjBhR1VnZEdsdFpXOTFkQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMkp2YjJ4bFlXNTlJRnR2Y0hScGIyNXpMblJ5WVdsc2FXNW5QWFJ5ZFdWZFhHNGdJQ0FnSUNvZ0lGTndaV05wWm5rZ2FXNTJiMnRwYm1jZ2IyNGdkR2hsSUhSeVlXbHNhVzVuSUdWa1oyVWdiMllnZEdobElIUnBiV1Z2ZFhRdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwWjFibU4wYVc5dWZTQlNaWFIxY201eklIUm9aU0J1WlhjZ2RHaHliM1IwYkdWa0lHWjFibU4wYVc5dUxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBdkx5QkJkbTlwWkNCbGVHTmxjM05wZG1Wc2VTQjFjR1JoZEdsdVp5QjBhR1VnY0c5emFYUnBiMjRnZDJocGJHVWdjMk55YjJ4c2FXNW5MbHh1SUNBZ0lDQXFJR3BSZFdWeWVTaDNhVzVrYjNjcExtOXVLQ2R6WTNKdmJHd25MQ0JmTG5Sb2NtOTBkR3hsS0hWd1pHRjBaVkJ2YzJsMGFXOXVMQ0F4TURBcEtUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDOHZJRWx1ZG05clpTQmdjbVZ1WlhkVWIydGxibUFnZDJobGJpQjBhR1VnWTJ4cFkyc2daWFpsYm5RZ2FYTWdabWx5WldRc0lHSjFkQ0J1YjNRZ2JXOXlaU0IwYUdGdUlHOXVZMlVnWlhabGNua2dOU0J0YVc1MWRHVnpMbHh1SUNBZ0lDQXFJSFpoY2lCMGFISnZkSFJzWldRZ1BTQmZMblJvY205MGRHeGxLSEpsYm1WM1ZHOXJaVzRzSURNd01EQXdNQ3dnZXlBbmRISmhhV3hwYm1jbk9pQm1ZV3h6WlNCOUtUdGNiaUFnSUNBZ0tpQnFVWFZsY25rb1pXeGxiV1Z1ZENrdWIyNG9KMk5zYVdOckp5d2dkR2h5YjNSMGJHVmtLVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQzh2SUVOaGJtTmxiQ0IwYUdVZ2RISmhhV3hwYm1jZ2RHaHliM1IwYkdWa0lHbHVkbTlqWVhScGIyNHVYRzRnSUNBZ0lDb2dhbEYxWlhKNUtIZHBibVJ2ZHlrdWIyNG9KM0J2Y0hOMFlYUmxKeXdnZEdoeWIzUjBiR1ZrTG1OaGJtTmxiQ2s3WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdkR2h5YjNSMGJHVW9ablZ1WXl3Z2QyRnBkQ3dnYjNCMGFXOXVjeWtnZTF4dUlDQWdJQ0FnZG1GeUlHeGxZV1JwYm1jZ1BTQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lIUnlZV2xzYVc1bklEMGdkSEoxWlR0Y2JseHVJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQm1kVzVqSUNFOUlDZG1kVzVqZEdsdmJpY3BJSHRjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loR1ZVNURYMFZTVWs5U1gxUkZXRlFwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tHbHpUMkpxWldOMEtHOXdkR2x2Ym5NcEtTQjdYRzRnSUNBZ0lDQWdJR3hsWVdScGJtY2dQU0FuYkdWaFpHbHVaeWNnYVc0Z2IzQjBhVzl1Y3lBL0lDRWhiM0IwYVc5dWN5NXNaV0ZrYVc1bklEb2diR1ZoWkdsdVp6dGNiaUFnSUNBZ0lDQWdkSEpoYVd4cGJtY2dQU0FuZEhKaGFXeHBibWNuSUdsdUlHOXdkR2x2Ym5NZ1B5QWhJVzl3ZEdsdmJuTXVkSEpoYVd4cGJtY2dPaUIwY21GcGJHbHVaenRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQmtaV0p2ZFc1alpTaG1kVzVqTENCM1lXbDBMQ0I3WEc0Z0lDQWdJQ0FnSUNkc1pXRmthVzVuSnpvZ2JHVmhaR2x1Wnl4Y2JpQWdJQ0FnSUNBZ0oyMWhlRmRoYVhRbk9pQjNZV2wwTEZ4dUlDQWdJQ0FnSUNBbmRISmhhV3hwYm1jbk9pQjBjbUZwYkdsdVoxeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRM0psWVhSbGN5QmhJR1oxYm1OMGFXOXVJSFJvWVhRZ1lXTmpaWEIwY3lCMWNDQjBieUJ2Ym1VZ1lYSm5kVzFsYm5Rc0lHbG5ibTl5YVc1bklHRnVlVnh1SUNBZ0lDQXFJR0ZrWkdsMGFXOXVZV3dnWVhKbmRXMWxiblJ6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRFF1TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFWjFibU4wYVc5dVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1puVnVZeUJVYUdVZ1puVnVZM1JwYjI0Z2RHOGdZMkZ3SUdGeVozVnRaVzUwY3lCbWIzSXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMFoxYm1OMGFXOXVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2dZMkZ3Y0dWa0lHWjFibU4wYVc5dUxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtMWhjQ2hiSnpZbkxDQW5PQ2NzSUNjeE1DZGRMQ0JmTG5WdVlYSjVLSEJoY25ObFNXNTBLU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXellzSURnc0lERXdYVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlIVnVZWEo1S0daMWJtTXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmhjbmtvWm5WdVl5d2dNU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTNKbFlYUmxjeUJoSUdaMWJtTjBhVzl1SUhSb1lYUWdjSEp2ZG1sa1pYTWdZSFpoYkhWbFlDQjBieUJnZDNKaGNIQmxjbUFnWVhNZ2FYUnpJR1pwY25OMFhHNGdJQ0FnSUNvZ1lYSm5kVzFsYm5RdUlFRnVlU0JoWkdScGRHbHZibUZzSUdGeVozVnRaVzUwY3lCd2NtOTJhV1JsWkNCMGJ5QjBhR1VnWm5WdVkzUnBiMjRnWVhKbElHRndjR1Z1WkdWa1hHNGdJQ0FnSUNvZ2RHOGdkR2h2YzJVZ2NISnZkbWxrWldRZ2RHOGdkR2hsSUdCM2NtRndjR1Z5WUM0Z1ZHaGxJSGR5WVhCd1pYSWdhWE1nYVc1MmIydGxaQ0IzYVhSb0lIUm9aU0JnZEdocGMyQmNiaUFnSUNBZ0tpQmlhVzVrYVc1bklHOW1JSFJvWlNCamNtVmhkR1ZrSUdaMWJtTjBhVzl1TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJREF1TVM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFWjFibU4wYVc5dVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdkM0poY0M1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCYmQzSmhjSEJsY2oxcFpHVnVkR2wwZVYwZ1ZHaGxJSGR5WVhCd1pYSWdablZ1WTNScGIyNHVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMFoxYm1OMGFXOXVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2dablZ1WTNScGIyNHVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlIWmhjaUJ3SUQwZ1h5NTNjbUZ3S0Y4dVpYTmpZWEJsTENCbWRXNWpkR2x2YmlobWRXNWpMQ0IwWlhoMEtTQjdYRzRnSUNBZ0lDb2dJQ0J5WlhSMWNtNGdKenh3UGljZ0t5Qm1kVzVqS0hSbGVIUXBJQ3NnSnp3dmNENG5PMXh1SUNBZ0lDQXFJSDBwTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nY0NnblpuSmxaQ3dnWW1GeWJtVjVMQ0FtSUhCbFltSnNaWE1uS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUFuUEhBK1puSmxaQ3dnWW1GeWJtVjVMQ0FtWVcxd095QndaV0ppYkdWelBDOXdQaWRjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQjNjbUZ3S0haaGJIVmxMQ0IzY21Gd2NHVnlLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjR0Z5ZEdsaGJDaGpZWE4wUm5WdVkzUnBiMjRvZDNKaGNIQmxjaWtzSUhaaGJIVmxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMU292WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRFlYTjBjeUJnZG1Gc2RXVmdJR0Z6SUdGdUlHRnljbUY1SUdsbUlHbDBKM01nYm05MElHOXVaUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQTBMalF1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCTVlXNW5YRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0IyWVd4MVpTQlVhR1VnZG1Gc2RXVWdkRzhnYVc1emNHVmpkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUdOaGMzUWdZWEp5WVhrdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dVkyRnpkRUZ5Y21GNUtERXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc3hYVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVqWVhOMFFYSnlZWGtvZXlBbllTYzZJREVnZlNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnVzNzZ0oyRW5PaUF4SUgxZFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtTmhjM1JCY25KaGVTZ25ZV0pqSnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnV3lkaFltTW5YVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVqWVhOMFFYSnlZWGtvYm5Wc2JDazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1cyNTFiR3hkWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1OaGMzUkJjbkpoZVNoMWJtUmxabWx1WldRcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZ0MWJtUmxabWx1WldSZFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtTmhjM1JCY25KaGVTZ3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGdGRYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQjJZWElnWVhKeVlYa2dQU0JiTVN3Z01pd2dNMTA3WEc0Z0lDQWdJQ29nWTI5dWMyOXNaUzVzYjJjb1h5NWpZWE4wUVhKeVlYa29ZWEp5WVhrcElEMDlQU0JoY25KaGVTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2RISjFaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHTmhjM1JCY25KaGVTZ3BJSHRjYmlBZ0lDQWdJR2xtSUNnaFlYSm5kVzFsYm5SekxteGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1cxMDdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQjJZWElnZG1Gc2RXVWdQU0JoY21kMWJXVnVkSE5iTUYwN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYVhOQmNuSmhlU2gyWVd4MVpTa2dQeUIyWVd4MVpTQTZJRnQyWVd4MVpWMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRM0psWVhSbGN5QmhJSE5vWVd4c2IzY2dZMnh2Ym1VZ2IyWWdZSFpoYkhWbFlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDb3FUbTkwWlRvcUtpQlVhR2x6SUcxbGRHaHZaQ0JwY3lCc2IyOXpaV3g1SUdKaGMyVmtJRzl1SUhSb1pWeHVJQ0FnSUNBcUlGdHpkSEoxWTNSMWNtVmtJR05zYjI1bElHRnNaMjl5YVhSb2JWMG9hSFIwY0hNNkx5OXRaRzR1YVc4dlUzUnlkV04wZFhKbFpGOWpiRzl1WlY5aGJHZHZjbWwwYUcwcFhHNGdJQ0FnSUNvZ1lXNWtJSE4xY0hCdmNuUnpJR05zYjI1cGJtY2dZWEp5WVhsekxDQmhjbkpoZVNCaWRXWm1aWEp6TENCaWIyOXNaV0Z1Y3l3Z1pHRjBaU0J2WW1wbFkzUnpMQ0J0WVhCekxGeHVJQ0FnSUNBcUlHNTFiV0psY25Nc0lHQlBZbXBsWTNSZ0lHOWlhbVZqZEhNc0lISmxaMlY0WlhNc0lITmxkSE1zSUhOMGNtbHVaM01zSUhONWJXSnZiSE1zSUdGdVpDQjBlWEJsWkZ4dUlDQWdJQ0FxSUdGeWNtRjVjeTRnVkdobElHOTNiaUJsYm5WdFpYSmhZbXhsSUhCeWIzQmxjblJwWlhNZ2IyWWdZR0Z5WjNWdFpXNTBjMkFnYjJKcVpXTjBjeUJoY21VZ1kyeHZibVZrWEc0Z0lDQWdJQ29nWVhNZ2NHeGhhVzRnYjJKcVpXTjBjeTRnUVc0Z1pXMXdkSGtnYjJKcVpXTjBJR2x6SUhKbGRIVnlibVZrSUdadmNpQjFibU5zYjI1bFlXSnNaU0IyWVd4MVpYTWdjM1ZqYUZ4dUlDQWdJQ0FxSUdGeklHVnljbTl5SUc5aWFtVmpkSE1zSUdaMWJtTjBhVzl1Y3l3Z1JFOU5JRzV2WkdWekxDQmhibVFnVjJWaGEwMWhjSE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdNQzR4TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1RHRnVaMXh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdLbjBnZG1Gc2RXVWdWR2hsSUhaaGJIVmxJSFJ2SUdOc2IyNWxMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHNxZlNCU1pYUjFjbTV6SUhSb1pTQmpiRzl1WldRZ2RtRnNkV1V1WEc0Z0lDQWdJQ29nUUhObFpTQmZMbU5zYjI1bFJHVmxjRnh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQjJZWElnYjJKcVpXTjBjeUE5SUZ0N0lDZGhKem9nTVNCOUxDQjdJQ2RpSnpvZ01pQjlYVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSFpoY2lCemFHRnNiRzkzSUQwZ1h5NWpiRzl1WlNodlltcGxZM1J6S1R0Y2JpQWdJQ0FnS2lCamIyNXpiMnhsTG14dlp5aHphR0ZzYkc5M1d6QmRJRDA5UFNCdlltcGxZM1J6V3pCZEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCMGNuVmxYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1kyeHZibVVvZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmlZWE5sUTJ4dmJtVW9kbUZzZFdVc0lFTk1UMDVGWDFOWlRVSlBURk5mUmt4QlJ5azdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hwY3lCdFpYUm9iMlFnYVhNZ2JHbHJaU0JnWHk1amJHOXVaV0FnWlhoalpYQjBJSFJvWVhRZ2FYUWdZV05qWlhCMGN5QmdZM1Z6ZEc5dGFYcGxjbUFnZDJocFkyaGNiaUFnSUNBZ0tpQnBjeUJwYm5admEyVmtJSFJ2SUhCeWIyUjFZMlVnZEdobElHTnNiMjVsWkNCMllXeDFaUzRnU1dZZ1lHTjFjM1J2YldsNlpYSmdJSEpsZEhWeWJuTWdZSFZ1WkdWbWFXNWxaR0FzWEc0Z0lDQWdJQ29nWTJ4dmJtbHVaeUJwY3lCb1lXNWtiR1ZrSUdKNUlIUm9aU0J0WlhSb2IyUWdhVzV6ZEdWaFpDNGdWR2hsSUdCamRYTjBiMjFwZW1WeVlDQnBjeUJwYm5admEyVmtJSGRwZEdoY2JpQWdJQ0FnS2lCMWNDQjBieUJtYjNWeUlHRnlaM1Z0Wlc1MGN6c2dLSFpoYkhWbElGc3NJR2x1WkdWNGZHdGxlU3dnYjJKcVpXTjBMQ0J6ZEdGamExMHBMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUV4aGJtZGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSFpoYkhWbElGUm9aU0IyWVd4MVpTQjBieUJqYkc5dVpTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQmJZM1Z6ZEc5dGFYcGxjbDBnVkdobElHWjFibU4wYVc5dUlIUnZJR04xYzNSdmJXbDZaU0JqYkc5dWFXNW5MbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHNxZlNCU1pYUjFjbTV6SUhSb1pTQmpiRzl1WldRZ2RtRnNkV1V1WEc0Z0lDQWdJQ29nUUhObFpTQmZMbU5zYjI1bFJHVmxjRmRwZEdoY2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWm5WdVkzUnBiMjRnWTNWemRHOXRhWHBsY2loMllXeDFaU2tnZTF4dUlDQWdJQ0FxSUNBZ2FXWWdLRjh1YVhORmJHVnRaVzUwS0haaGJIVmxLU2tnZTF4dUlDQWdJQ0FxSUNBZ0lDQnlaWFIxY200Z2RtRnNkV1V1WTJ4dmJtVk9iMlJsS0daaGJITmxLVHRjYmlBZ0lDQWdLaUFnSUgxY2JpQWdJQ0FnS2lCOVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdaV3dnUFNCZkxtTnNiMjVsVjJsMGFDaGtiMk4xYldWdWRDNWliMlI1TENCamRYTjBiMjFwZW1WeUtUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlHTnZibk52YkdVdWJHOW5LR1ZzSUQwOVBTQmtiMk4xYldWdWRDNWliMlI1S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJtWVd4elpWeHVJQ0FnSUNBcUlHTnZibk52YkdVdWJHOW5LR1ZzTG01dlpHVk9ZVzFsS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUFuUWs5RVdTZGNiaUFnSUNBZ0tpQmpiMjV6YjJ4bExteHZaeWhsYkM1amFHbHNaRTV2WkdWekxteGxibWQwYUNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnTUZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR05zYjI1bFYybDBhQ2gyWVd4MVpTd2dZM1Z6ZEc5dGFYcGxjaWtnZTF4dUlDQWdJQ0FnWTNWemRHOXRhWHBsY2lBOUlIUjVjR1Z2WmlCamRYTjBiMjFwZW1WeUlEMDlJQ2RtZFc1amRHbHZiaWNnUHlCamRYTjBiMjFwZW1WeUlEb2dkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdjbVYwZFhKdUlHSmhjMlZEYkc5dVpTaDJZV3gxWlN3Z1EweFBUa1ZmVTFsTlFrOU1VMTlHVEVGSExDQmpkWE4wYjIxcGVtVnlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdseklHMWxkR2h2WkNCcGN5QnNhV3RsSUdCZkxtTnNiMjVsWUNCbGVHTmxjSFFnZEdoaGRDQnBkQ0J5WldOMWNuTnBkbVZzZVNCamJHOXVaWE1nWUhaaGJIVmxZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXhMakF1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCTVlXNW5YRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0IyWVd4MVpTQlVhR1VnZG1Gc2RXVWdkRzhnY21WamRYSnphWFpsYkhrZ1kyeHZibVV1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZXlwOUlGSmxkSFZ5Ym5NZ2RHaGxJR1JsWlhBZ1kyeHZibVZrSUhaaGJIVmxMbHh1SUNBZ0lDQXFJRUJ6WldVZ1h5NWpiRzl1WlZ4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ2IySnFaV04wY3lBOUlGdDdJQ2RoSnpvZ01TQjlMQ0I3SUNkaUp6b2dNaUI5WFR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQmtaV1Z3SUQwZ1h5NWpiRzl1WlVSbFpYQW9iMkpxWldOMGN5azdYRzRnSUNBZ0lDb2dZMjl1YzI5c1pTNXNiMmNvWkdWbGNGc3dYU0E5UFQwZ2IySnFaV04wYzFzd1hTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1ptRnNjMlZjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmpiRzl1WlVSbFpYQW9kbUZzZFdVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCaVlYTmxRMnh2Ym1Vb2RtRnNkV1VzSUVOTVQwNUZYMFJGUlZCZlJreEJSeUI4SUVOTVQwNUZYMU5aVFVKUFRGTmZSa3hCUnlrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaHBjeUJ0WlhSb2IyUWdhWE1nYkdsclpTQmdYeTVqYkc5dVpWZHBkR2hnSUdWNFkyVndkQ0IwYUdGMElHbDBJSEpsWTNWeWMybDJaV3g1SUdOc2IyNWxjeUJnZG1Gc2RXVmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUV4aGJtZGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSFpoYkhWbElGUm9aU0IyWVd4MVpTQjBieUJ5WldOMWNuTnBkbVZzZVNCamJHOXVaUzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JiWTNWemRHOXRhWHBsY2wwZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUdOMWMzUnZiV2w2WlNCamJHOXVhVzVuTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUhzcWZTQlNaWFIxY201eklIUm9aU0JrWldWd0lHTnNiMjVsWkNCMllXeDFaUzVjYmlBZ0lDQWdLaUJBYzJWbElGOHVZMnh2Ym1WWGFYUm9YRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlHWjFibU4wYVc5dUlHTjFjM1J2YldsNlpYSW9kbUZzZFdVcElIdGNiaUFnSUNBZ0tpQWdJR2xtSUNoZkxtbHpSV3hsYldWdWRDaDJZV3gxWlNrcElIdGNiaUFnSUNBZ0tpQWdJQ0FnY21WMGRYSnVJSFpoYkhWbExtTnNiMjVsVG05a1pTaDBjblZsS1R0Y2JpQWdJQ0FnS2lBZ0lIMWNiaUFnSUNBZ0tpQjlYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQjJZWElnWld3Z1BTQmZMbU5zYjI1bFJHVmxjRmRwZEdnb1pHOWpkVzFsYm5RdVltOWtlU3dnWTNWemRHOXRhWHBsY2lrN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCamIyNXpiMnhsTG14dlp5aGxiQ0E5UFQwZ1pHOWpkVzFsYm5RdVltOWtlU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdabUZzYzJWY2JpQWdJQ0FnS2lCamIyNXpiMnhsTG14dlp5aGxiQzV1YjJSbFRtRnRaU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMEpQUkZrblhHNGdJQ0FnSUNvZ1kyOXVjMjlzWlM1c2IyY29aV3d1WTJocGJHUk9iMlJsY3k1c1pXNW5kR2dwTzF4dUlDQWdJQ0FxSUM4dklEMCtJREl3WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdZMnh2Ym1WRVpXVndWMmwwYUNoMllXeDFaU3dnWTNWemRHOXRhWHBsY2lrZ2UxeHVJQ0FnSUNBZ1kzVnpkRzl0YVhwbGNpQTlJSFI1Y0dWdlppQmpkWE4wYjIxcGVtVnlJRDA5SUNkbWRXNWpkR2x2YmljZ1B5QmpkWE4wYjIxcGVtVnlJRG9nZFc1a1pXWnBibVZrTzF4dUlDQWdJQ0FnY21WMGRYSnVJR0poYzJWRGJHOXVaU2gyWVd4MVpTd2dRMHhQVGtWZlJFVkZVRjlHVEVGSElId2dRMHhQVGtWZlUxbE5RazlNVTE5R1RFRkhMQ0JqZFhOMGIyMXBlbVZ5S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGFHVmphM01nYVdZZ1lHOWlhbVZqZEdBZ1kyOXVabTl5YlhNZ2RHOGdZSE52ZFhKalpXQWdZbmtnYVc1MmIydHBibWNnZEdobElIQnlaV1JwWTJGMFpWeHVJQ0FnSUNBcUlIQnliM0JsY25ScFpYTWdiMllnWUhOdmRYSmpaV0FnZDJsMGFDQjBhR1VnWTI5eWNtVnpjRzl1WkdsdVp5QndjbTl3WlhKMGVTQjJZV3gxWlhNZ2IyWWdZRzlpYW1WamRHQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXFLazV2ZEdVNktpb2dWR2hwY3lCdFpYUm9iMlFnYVhNZ1pYRjFhWFpoYkdWdWRDQjBieUJnWHk1amIyNW1iM0p0YzJBZ2QyaGxiaUJnYzI5MWNtTmxZQ0JwYzF4dUlDQWdJQ0FxSUhCaGNuUnBZV3hzZVNCaGNIQnNhV1ZrTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRFF1TVRRdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQk1ZVzVuWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzlpYW1WamRDQlVhR1VnYjJKcVpXTjBJSFJ2SUdsdWMzQmxZM1F1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJSE52ZFhKalpTQlVhR1VnYjJKcVpXTjBJRzltSUhCeWIzQmxjblI1SUhCeVpXUnBZMkYwWlhNZ2RHOGdZMjl1Wm05eWJTQjBieTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3WW05dmJHVmhibjBnVW1WMGRYSnVjeUJnZEhKMVpXQWdhV1lnWUc5aWFtVmpkR0FnWTI5dVptOXliWE1zSUdWc2MyVWdZR1poYkhObFlDNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ2RtRnlJRzlpYW1WamRDQTlJSHNnSjJFbk9pQXhMQ0FuWWljNklESWdmVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1WTI5dVptOXliWE5VYnlodlltcGxZM1FzSUhzZ0oySW5PaUJtZFc1amRHbHZiaWh1S1NCN0lISmxkSFZ5YmlCdUlENGdNVHNnZlNCOUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCMGNuVmxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbU52Ym1admNtMXpWRzhvYjJKcVpXTjBMQ0I3SUNkaUp6b2dablZ1WTNScGIyNG9iaWtnZXlCeVpYUjFjbTRnYmlBK0lESTdJSDBnZlNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnWm1Gc2MyVmNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCamIyNW1iM0p0YzFSdktHOWlhbVZqZEN3Z2MyOTFjbU5sS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYzI5MWNtTmxJRDA5SUc1MWJHd2dmSHdnWW1GelpVTnZibVp2Y20xelZHOG9iMkpxWldOMExDQnpiM1Z5WTJVc0lHdGxlWE1vYzI5MWNtTmxLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVUdWeVptOXliWE1nWVZ4dUlDQWdJQ0FxSUZ0Z1UyRnRaVlpoYkhWbFdtVnliMkJkS0doMGRIQTZMeTlsWTIxaExXbHVkR1Z5Ym1GMGFXOXVZV3d1YjNKbkwyVmpiV0V0TWpZeUx6Y3VNQzhqYzJWakxYTmhiV1YyWVd4MVpYcGxjbThwWEc0Z0lDQWdJQ29nWTI5dGNHRnlhWE52YmlCaVpYUjNaV1Z1SUhSM2J5QjJZV3gxWlhNZ2RHOGdaR1YwWlhKdGFXNWxJR2xtSUhSb1pYa2dZWEpsSUdWeGRXbDJZV3hsYm5RdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTkM0d0xqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dUR0Z1WjF4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ2RtRnNkV1VnVkdobElIWmhiSFZsSUhSdklHTnZiWEJoY21VdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQnZkR2hsY2lCVWFHVWdiM1JvWlhJZ2RtRnNkV1VnZEc4Z1kyOXRjR0Z5WlM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1ltOXZiR1ZoYm4wZ1VtVjBkWEp1Y3lCZ2RISjFaV0FnYVdZZ2RHaGxJSFpoYkhWbGN5QmhjbVVnWlhGMWFYWmhiR1Z1ZEN3Z1pXeHpaU0JnWm1Gc2MyVmdMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQjJZWElnYjJKcVpXTjBJRDBnZXlBbllTYzZJREVnZlR0Y2JpQWdJQ0FnS2lCMllYSWdiM1JvWlhJZ1BTQjdJQ2RoSnpvZ01TQjlPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVsY1NodlltcGxZM1FzSUc5aWFtVmpkQ2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdkSEoxWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1bGNTaHZZbXBsWTNRc0lHOTBhR1Z5S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJtWVd4elpWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NWxjU2duWVNjc0lDZGhKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdkSEoxWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1bGNTZ25ZU2NzSUU5aWFtVmpkQ2duWVNjcEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCbVlXeHpaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVsY1NoT1lVNHNJRTVoVGlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZEhKMVpWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdWeEtIWmhiSFZsTENCdmRHaGxjaWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFpoYkhWbElEMDlQU0J2ZEdobGNpQjhmQ0FvZG1Gc2RXVWdJVDA5SUhaaGJIVmxJQ1ltSUc5MGFHVnlJQ0U5UFNCdmRHaGxjaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTJobFkydHpJR2xtSUdCMllXeDFaV0FnYVhNZ1ozSmxZWFJsY2lCMGFHRnVJR0J2ZEdobGNtQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ015NDVMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVEdGdVoxeHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdkbUZzZFdVZ1ZHaGxJSFpoYkhWbElIUnZJR052YlhCaGNtVXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0J2ZEdobGNpQlVhR1VnYjNSb1pYSWdkbUZzZFdVZ2RHOGdZMjl0Y0dGeVpTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdZbTl2YkdWaGJuMGdVbVYwZFhKdWN5QmdkSEoxWldBZ2FXWWdZSFpoYkhWbFlDQnBjeUJuY21WaGRHVnlJSFJvWVc0Z1lHOTBhR1Z5WUN4Y2JpQWdJQ0FnS2lBZ1pXeHpaU0JnWm1Gc2MyVmdMbHh1SUNBZ0lDQXFJRUJ6WldVZ1h5NXNkRnh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWQwS0RNc0lERXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIUnlkV1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1WjNRb015d2dNeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdabUZzYzJWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dVozUW9NU3dnTXlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnWm1Gc2MyVmNiaUFnSUNBZ0tpOWNiaUFnSUNCMllYSWdaM1FnUFNCamNtVmhkR1ZTWld4aGRHbHZibUZzVDNCbGNtRjBhVzl1S0dKaGMyVkhkQ2s3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGFHVmphM01nYVdZZ1lIWmhiSFZsWUNCcGN5Qm5jbVZoZEdWeUlIUm9ZVzRnYjNJZ1pYRjFZV3dnZEc4Z1lHOTBhR1Z5WUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F6TGprdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQk1ZVzVuWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z1kyOXRjR0Z5WlM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlHOTBhR1Z5SUZSb1pTQnZkR2hsY2lCMllXeDFaU0IwYnlCamIyMXdZWEpsTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0aWIyOXNaV0Z1ZlNCU1pYUjFjbTV6SUdCMGNuVmxZQ0JwWmlCZ2RtRnNkV1ZnSUdseklHZHlaV0YwWlhJZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0IwYjF4dUlDQWdJQ0FxSUNCZ2IzUm9aWEpnTENCbGJITmxJR0JtWVd4elpXQXVYRzRnSUNBZ0lDb2dRSE5sWlNCZkxteDBaVnh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWQwWlNnekxDQXhLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQjBjblZsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1kMFpTZ3pMQ0F6S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUIwY25WbFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtZDBaU2d4TENBektUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCbVlXeHpaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIWmhjaUJuZEdVZ1BTQmpjbVZoZEdWU1pXeGhkR2x2Ym1Gc1QzQmxjbUYwYVc5dUtHWjFibU4wYVc5dUtIWmhiSFZsTENCdmRHaGxjaWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFpoYkhWbElENDlJRzkwYUdWeU8xeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMmhsWTJ0eklHbG1JR0IyWVd4MVpXQWdhWE1nYkdsclpXeDVJR0Z1SUdCaGNtZDFiV1Z1ZEhOZ0lHOWlhbVZqZEM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F3TGpFdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQk1ZVzVuWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z1kyaGxZMnN1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTJKdmIyeGxZVzU5SUZKbGRIVnlibk1nWUhSeWRXVmdJR2xtSUdCMllXeDFaV0FnYVhNZ1lXNGdZR0Z5WjNWdFpXNTBjMkFnYjJKcVpXTjBMRnh1SUNBZ0lDQXFJQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWFYTkJjbWQxYldWdWRITW9ablZ1WTNScGIyNG9LU0I3SUhKbGRIVnliaUJoY21kMWJXVnVkSE03SUgwb0tTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2RISjFaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVwYzBGeVozVnRaVzUwY3loYk1Td2dNaXdnTTEwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUdaaGJITmxYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RtRnlJR2x6UVhKbmRXMWxiblJ6SUQwZ1ltRnpaVWx6UVhKbmRXMWxiblJ6S0daMWJtTjBhVzl1S0NrZ2V5QnlaWFIxY200Z1lYSm5kVzFsYm5Sek95QjlLQ2twSUQ4Z1ltRnpaVWx6UVhKbmRXMWxiblJ6SURvZ1puVnVZM1JwYjI0b2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJwYzA5aWFtVmpkRXhwYTJVb2RtRnNkV1VwSUNZbUlHaGhjMDkzYmxCeWIzQmxjblI1TG1OaGJHd29kbUZzZFdVc0lDZGpZV3hzWldVbktTQW1KbHh1SUNBZ0lDQWdJQ0FoY0hKdmNHVnlkSGxKYzBWdWRXMWxjbUZpYkdVdVkyRnNiQ2gyWVd4MVpTd2dKMk5oYkd4bFpTY3BPMXh1SUNBZ0lIMDdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEYUdWamEzTWdhV1lnWUhaaGJIVmxZQ0JwY3lCamJHRnpjMmxtYVdWa0lHRnpJR0Z1SUdCQmNuSmhlV0FnYjJKcVpXTjBMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEQXVNUzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUV4aGJtZGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSFpoYkhWbElGUm9aU0IyWVd4MVpTQjBieUJqYUdWamF5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdZbTl2YkdWaGJuMGdVbVYwZFhKdWN5QmdkSEoxWldBZ2FXWWdZSFpoYkhWbFlDQnBjeUJoYmlCaGNuSmhlU3dnWld4elpTQmdabUZzYzJWZ0xseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtbHpRWEp5WVhrb1d6RXNJRElzSUROZEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCMGNuVmxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx6UVhKeVlYa29aRzlqZFcxbGJuUXVZbTlrZVM1amFHbHNaSEpsYmlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnWm1Gc2MyVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhWE5CY25KaGVTZ25ZV0pqSnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnWm1Gc2MyVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhWE5CY25KaGVTaGZMbTV2YjNBcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUdaaGJITmxYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RtRnlJR2x6UVhKeVlYa2dQU0JCY25KaGVTNXBjMEZ5Y21GNU8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMmhsWTJ0eklHbG1JR0IyWVd4MVpXQWdhWE1nWTJ4aGMzTnBabWxsWkNCaGN5QmhiaUJnUVhKeVlYbENkV1ptWlhKZ0lHOWlhbVZqZEM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0EwTGpNdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQk1ZVzVuWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z1kyaGxZMnN1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTJKdmIyeGxZVzU5SUZKbGRIVnlibk1nWUhSeWRXVmdJR2xtSUdCMllXeDFaV0FnYVhNZ1lXNGdZWEp5WVhrZ1luVm1abVZ5TENCbGJITmxJR0JtWVd4elpXQXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhWE5CY25KaGVVSjFabVpsY2lodVpYY2dRWEp5WVhsQ2RXWm1aWElvTWlrcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUhSeWRXVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhWE5CY25KaGVVSjFabVpsY2lodVpYY2dRWEp5WVhrb01pa3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHWmhiSE5sWEc0Z0lDQWdJQ292WEc0Z0lDQWdkbUZ5SUdselFYSnlZWGxDZFdabVpYSWdQU0J1YjJSbFNYTkJjbkpoZVVKMVptWmxjaUEvSUdKaGMyVlZibUZ5ZVNodWIyUmxTWE5CY25KaGVVSjFabVpsY2lrZ09pQmlZWE5sU1hOQmNuSmhlVUoxWm1abGNqdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU5vWldOcmN5QnBaaUJnZG1Gc2RXVmdJR2x6SUdGeWNtRjVMV3hwYTJVdUlFRWdkbUZzZFdVZ2FYTWdZMjl1YzJsa1pYSmxaQ0JoY25KaGVTMXNhV3RsSUdsbUlHbDBKM05jYmlBZ0lDQWdLaUJ1YjNRZ1lTQm1kVzVqZEdsdmJpQmhibVFnYUdGeklHRWdZSFpoYkhWbExteGxibWQwYUdBZ2RHaGhkQ2R6SUdGdUlHbHVkR1ZuWlhJZ1ozSmxZWFJsY2lCMGFHRnVJRzl5WEc0Z0lDQWdJQ29nWlhGMVlXd2dkRzhnWURCZ0lHRnVaQ0JzWlhOeklIUm9ZVzRnYjNJZ1pYRjFZV3dnZEc4Z1lFNTFiV0psY2k1TlFWaGZVMEZHUlY5SlRsUkZSMFZTWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0EwTGpBdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQk1ZVzVuWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z1kyaGxZMnN1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTJKdmIyeGxZVzU5SUZKbGRIVnlibk1nWUhSeWRXVmdJR2xtSUdCMllXeDFaV0FnYVhNZ1lYSnlZWGt0YkdsclpTd2daV3h6WlNCZ1ptRnNjMlZnTGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1selFYSnlZWGxNYVd0bEtGc3hMQ0F5TENBelhTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2RISjFaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVwYzBGeWNtRjVUR2xyWlNoa2IyTjFiV1Z1ZEM1aWIyUjVMbU5vYVd4a2NtVnVLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQjBjblZsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1selFYSnlZWGxNYVd0bEtDZGhZbU1uS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUIwY25WbFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtbHpRWEp5WVhsTWFXdGxLRjh1Ym05dmNDazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1ptRnNjMlZjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQnBjMEZ5Y21GNVRHbHJaU2gyWVd4MVpTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIWmhiSFZsSUNFOUlHNTFiR3dnSmlZZ2FYTk1aVzVuZEdnb2RtRnNkV1V1YkdWdVozUm9LU0FtSmlBaGFYTkdkVzVqZEdsdmJpaDJZV3gxWlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaHBjeUJ0WlhSb2IyUWdhWE1nYkdsclpTQmdYeTVwYzBGeWNtRjVUR2xyWldBZ1pYaGpaWEIwSUhSb1lYUWdhWFFnWVd4emJ5QmphR1ZqYTNNZ2FXWWdZSFpoYkhWbFlGeHVJQ0FnSUNBcUlHbHpJR0Z1SUc5aWFtVmpkQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQTBMakF1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCTVlXNW5YRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0IyWVd4MVpTQlVhR1VnZG1Gc2RXVWdkRzhnWTJobFkyc3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMkp2YjJ4bFlXNTlJRkpsZEhWeWJuTWdZSFJ5ZFdWZ0lHbG1JR0IyWVd4MVpXQWdhWE1nWVc0Z1lYSnlZWGt0YkdsclpTQnZZbXBsWTNRc1hHNGdJQ0FnSUNvZ0lHVnNjMlVnWUdaaGJITmxZQzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVwYzBGeWNtRjVUR2xyWlU5aWFtVmpkQ2hiTVN3Z01pd2dNMTBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJSFJ5ZFdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWFYTkJjbkpoZVV4cGEyVlBZbXBsWTNRb1pHOWpkVzFsYm5RdVltOWtlUzVqYUdsc1pISmxiaWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdkSEoxWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1cGMwRnljbUY1VEdsclpVOWlhbVZqZENnbllXSmpKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdabUZzYzJWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWFYTkJjbkpoZVV4cGEyVlBZbXBsWTNRb1h5NXViMjl3S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJtWVd4elpWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdselFYSnlZWGxNYVd0bFQySnFaV04wS0haaGJIVmxLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdhWE5QWW1wbFkzUk1hV3RsS0haaGJIVmxLU0FtSmlCcGMwRnljbUY1VEdsclpTaDJZV3gxWlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyaGxZMnR6SUdsbUlHQjJZV3gxWldBZ2FYTWdZMnhoYzNOcFptbGxaQ0JoY3lCaElHSnZiMnhsWVc0Z2NISnBiV2wwYVhabElHOXlJRzlpYW1WamRDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBd0xqRXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JNWVc1blhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdZMmhsWTJzdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UySnZiMnhsWVc1OUlGSmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdsbUlHQjJZV3gxWldBZ2FYTWdZU0JpYjI5c1pXRnVMQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWFYTkNiMjlzWldGdUtHWmhiSE5sS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUIwY25WbFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtbHpRbTl2YkdWaGJpaHVkV3hzS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJtWVd4elpWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdselFtOXZiR1ZoYmloMllXeDFaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFpoYkhWbElEMDlQU0IwY25WbElIeDhJSFpoYkhWbElEMDlQU0JtWVd4elpTQjhmRnh1SUNBZ0lDQWdJQ0FvYVhOUFltcGxZM1JNYVd0bEtIWmhiSFZsS1NBbUppQmlZWE5sUjJWMFZHRm5LSFpoYkhWbEtTQTlQU0JpYjI5c1ZHRm5LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEYUdWamEzTWdhV1lnWUhaaGJIVmxZQ0JwY3lCaElHSjFabVpsY2k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0EwTGpNdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQk1ZVzVuWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z1kyaGxZMnN1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTJKdmIyeGxZVzU5SUZKbGRIVnlibk1nWUhSeWRXVmdJR2xtSUdCMllXeDFaV0FnYVhNZ1lTQmlkV1ptWlhJc0lHVnNjMlVnWUdaaGJITmxZQzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVwYzBKMVptWmxjaWh1WlhjZ1FuVm1abVZ5S0RJcEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCMGNuVmxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx6UW5WbVptVnlLRzVsZHlCVmFXNTBPRUZ5Y21GNUtESXBLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQm1ZV3h6WlZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFpoY2lCcGMwSjFabVpsY2lBOUlHNWhkR2wyWlVselFuVm1abVZ5SUh4OElITjBkV0pHWVd4elpUdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU5vWldOcmN5QnBaaUJnZG1Gc2RXVmdJR2x6SUdOc1lYTnphV1pwWldRZ1lYTWdZU0JnUkdGMFpXQWdiMkpxWldOMExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURBdU1TNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRXhoYm1kY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlIWmhiSFZsSUZSb1pTQjJZV3gxWlNCMGJ5QmphR1ZqYXk1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1ltOXZiR1ZoYm4wZ1VtVjBkWEp1Y3lCZ2RISjFaV0FnYVdZZ1lIWmhiSFZsWUNCcGN5QmhJR1JoZEdVZ2IySnFaV04wTENCbGJITmxJR0JtWVd4elpXQXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhWE5FWVhSbEtHNWxkeUJFWVhSbEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCMGNuVmxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx6UkdGMFpTZ25UVzl1SUVGd2NtbHNJREl6SURJd01USW5LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQm1ZV3h6WlZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFpoY2lCcGMwUmhkR1VnUFNCdWIyUmxTWE5FWVhSbElEOGdZbUZ6WlZWdVlYSjVLRzV2WkdWSmMwUmhkR1VwSURvZ1ltRnpaVWx6UkdGMFpUdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU5vWldOcmN5QnBaaUJnZG1Gc2RXVmdJR2x6SUd4cGEyVnNlU0JoSUVSUFRTQmxiR1Z0Wlc1MExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURBdU1TNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRXhoYm1kY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlIWmhiSFZsSUZSb1pTQjJZV3gxWlNCMGJ5QmphR1ZqYXk1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1ltOXZiR1ZoYm4wZ1VtVjBkWEp1Y3lCZ2RISjFaV0FnYVdZZ1lIWmhiSFZsWUNCcGN5QmhJRVJQVFNCbGJHVnRaVzUwTENCbGJITmxJR0JtWVd4elpXQXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhWE5GYkdWdFpXNTBLR1J2WTNWdFpXNTBMbUp2WkhrcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUhSeWRXVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhWE5GYkdWdFpXNTBLQ2M4WW05a2VUNG5LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQm1ZV3h6WlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR2x6Uld4bGJXVnVkQ2gyWVd4MVpTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHbHpUMkpxWldOMFRHbHJaU2gyWVd4MVpTa2dKaVlnZG1Gc2RXVXVibTlrWlZSNWNHVWdQVDA5SURFZ0ppWWdJV2x6VUd4aGFXNVBZbXBsWTNRb2RtRnNkV1VwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOb1pXTnJjeUJwWmlCZ2RtRnNkV1ZnSUdseklHRnVJR1Z0Y0hSNUlHOWlhbVZqZEN3Z1kyOXNiR1ZqZEdsdmJpd2diV0Z3TENCdmNpQnpaWFF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJQWW1wbFkzUnpJR0Z5WlNCamIyNXphV1JsY21Wa0lHVnRjSFI1SUdsbUlIUm9aWGtnYUdGMlpTQnVieUJ2ZDI0Z1pXNTFiV1Z5WVdKc1pTQnpkSEpwYm1jZ2EyVjVaV1JjYmlBZ0lDQWdLaUJ3Y205d1pYSjBhV1Z6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUVhKeVlYa3RiR2xyWlNCMllXeDFaWE1nYzNWamFDQmhjeUJnWVhKbmRXMWxiblJ6WUNCdlltcGxZM1J6TENCaGNuSmhlWE1zSUdKMVptWmxjbk1zSUhOMGNtbHVaM01zSUc5eVhHNGdJQ0FnSUNvZ2FsRjFaWEo1TFd4cGEyVWdZMjlzYkdWamRHbHZibk1nWVhKbElHTnZibk5wWkdWeVpXUWdaVzF3ZEhrZ2FXWWdkR2hsZVNCb1lYWmxJR0VnWUd4bGJtZDBhR0FnYjJZZ1lEQmdMbHh1SUNBZ0lDQXFJRk5wYldsc1lYSnNlU3dnYldGd2N5QmhibVFnYzJWMGN5QmhjbVVnWTI5dWMybGtaWEpsWkNCbGJYQjBlU0JwWmlCMGFHVjVJR2hoZG1VZ1lTQmdjMmw2WldBZ2IyWWdZREJnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJREF1TVM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFeGhibWRjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCamFHVmpheTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3WW05dmJHVmhibjBnVW1WMGRYSnVjeUJnZEhKMVpXQWdhV1lnWUhaaGJIVmxZQ0JwY3lCbGJYQjBlU3dnWld4elpTQmdabUZzYzJWZ0xseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtbHpSVzF3ZEhrb2JuVnNiQ2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdkSEoxWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1cGMwVnRjSFI1S0hSeWRXVXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIUnlkV1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YVhORmJYQjBlU2d4S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUIwY25WbFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtbHpSVzF3ZEhrb1d6RXNJRElzSUROZEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCbVlXeHpaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVwYzBWdGNIUjVLSHNnSjJFbk9pQXhJSDBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJR1poYkhObFhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYVhORmJYQjBlU2gyWVd4MVpTa2dlMXh1SUNBZ0lDQWdhV1lnS0haaGJIVmxJRDA5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9hWE5CY25KaGVVeHBhMlVvZG1Gc2RXVXBJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0tHbHpRWEp5WVhrb2RtRnNkV1VwSUh4OElIUjVjR1Z2WmlCMllXeDFaU0E5UFNBbmMzUnlhVzVuSnlCOGZDQjBlWEJsYjJZZ2RtRnNkV1V1YzNCc2FXTmxJRDA5SUNkbWRXNWpkR2x2YmljZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0FnSUdselFuVm1abVZ5S0haaGJIVmxLU0I4ZkNCcGMxUjVjR1ZrUVhKeVlYa29kbUZzZFdVcElIeDhJR2x6UVhKbmRXMWxiblJ6S0haaGJIVmxLU2twSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNGMllXeDFaUzVzWlc1bmRHZzdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQjJZWElnZEdGbklEMGdaMlYwVkdGbktIWmhiSFZsS1R0Y2JpQWdJQ0FnSUdsbUlDaDBZV2NnUFQwZ2JXRndWR0ZuSUh4OElIUmhaeUE5UFNCelpYUlVZV2NwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNGMllXeDFaUzV6YVhwbE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLR2x6VUhKdmRHOTBlWEJsS0haaGJIVmxLU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnSVdKaGMyVkxaWGx6S0haaGJIVmxLUzVzWlc1bmRHZzdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQm1iM0lnS0haaGNpQnJaWGtnYVc0Z2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR2hoYzA5M2JsQnliM0JsY25SNUxtTmhiR3dvZG1Gc2RXVXNJR3RsZVNrcElIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRkJsY21admNtMXpJR0VnWkdWbGNDQmpiMjF3WVhKcGMyOXVJR0psZEhkbFpXNGdkSGR2SUhaaGJIVmxjeUIwYnlCa1pYUmxjbTFwYm1VZ2FXWWdkR2hsZVNCaGNtVmNiaUFnSUNBZ0tpQmxjWFZwZG1Gc1pXNTBMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dLaXBPYjNSbE9pb3FJRlJvYVhNZ2JXVjBhRzlrSUhOMWNIQnZjblJ6SUdOdmJYQmhjbWx1WnlCaGNuSmhlWE1zSUdGeWNtRjVJR0oxWm1abGNuTXNJR0p2YjJ4bFlXNXpMRnh1SUNBZ0lDQXFJR1JoZEdVZ2IySnFaV04wY3l3Z1pYSnliM0lnYjJKcVpXTjBjeXdnYldGd2N5d2diblZ0WW1WeWN5d2dZRTlpYW1WamRHQWdiMkpxWldOMGN5d2djbVZuWlhobGN5eGNiaUFnSUNBZ0tpQnpaWFJ6TENCemRISnBibWR6TENCemVXMWliMnh6TENCaGJtUWdkSGx3WldRZ1lYSnlZWGx6TGlCZ1QySnFaV04wWUNCdlltcGxZM1J6SUdGeVpTQmpiMjF3WVhKbFpGeHVJQ0FnSUNBcUlHSjVJSFJvWldseUlHOTNiaXdnYm05MElHbHVhR1Z5YVhSbFpDd2daVzUxYldWeVlXSnNaU0J3Y205d1pYSjBhV1Z6TGlCR2RXNWpkR2x2Ym5NZ1lXNWtJRVJQVFZ4dUlDQWdJQ0FxSUc1dlpHVnpJR0Z5WlNCamIyMXdZWEpsWkNCaWVTQnpkSEpwWTNRZ1pYRjFZV3hwZEhrc0lHa3VaUzRnWUQwOVBXQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01DNHhMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVEdGdVoxeHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdkbUZzZFdVZ1ZHaGxJSFpoYkhWbElIUnZJR052YlhCaGNtVXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0J2ZEdobGNpQlVhR1VnYjNSb1pYSWdkbUZzZFdVZ2RHOGdZMjl0Y0dGeVpTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdZbTl2YkdWaGJuMGdVbVYwZFhKdWN5QmdkSEoxWldBZ2FXWWdkR2hsSUhaaGJIVmxjeUJoY21VZ1pYRjFhWFpoYkdWdWRDd2daV3h6WlNCZ1ptRnNjMlZnTGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ2IySnFaV04wSUQwZ2V5QW5ZU2M2SURFZ2ZUdGNiaUFnSUNBZ0tpQjJZWElnYjNSb1pYSWdQU0I3SUNkaEp6b2dNU0I5TzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1cGMwVnhkV0ZzS0c5aWFtVmpkQ3dnYjNSb1pYSXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIUnlkV1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRzlpYW1WamRDQTlQVDBnYjNSb1pYSTdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1ptRnNjMlZjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQnBjMFZ4ZFdGc0tIWmhiSFZsTENCdmRHaGxjaWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR0poYzJWSmMwVnhkV0ZzS0haaGJIVmxMQ0J2ZEdobGNpazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hwY3lCdFpYUm9iMlFnYVhNZ2JHbHJaU0JnWHk1cGMwVnhkV0ZzWUNCbGVHTmxjSFFnZEdoaGRDQnBkQ0JoWTJObGNIUnpJR0JqZFhOMGIyMXBlbVZ5WUNCM2FHbGphRnh1SUNBZ0lDQXFJR2x6SUdsdWRtOXJaV1FnZEc4Z1kyOXRjR0Z5WlNCMllXeDFaWE11SUVsbUlHQmpkWE4wYjIxcGVtVnlZQ0J5WlhSMWNtNXpJR0IxYm1SbFptbHVaV1JnTENCamIyMXdZWEpwYzI5dWMxeHVJQ0FnSUNBcUlHRnlaU0JvWVc1a2JHVmtJR0o1SUhSb1pTQnRaWFJvYjJRZ2FXNXpkR1ZoWkM0Z1ZHaGxJR0JqZFhOMGIyMXBlbVZ5WUNCcGN5QnBiblp2YTJWa0lIZHBkR2dnZFhBZ2RHOWNiaUFnSUNBZ0tpQnphWGdnWVhKbmRXMWxiblJ6T2lBb2IySnFWbUZzZFdVc0lHOTBhRlpoYkhWbElGc3NJR2x1WkdWNGZHdGxlU3dnYjJKcVpXTjBMQ0J2ZEdobGNpd2djM1JoWTJ0ZEtTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBMExqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JNWVc1blhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdZMjl0Y0dGeVpTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJRzkwYUdWeUlGUm9aU0J2ZEdobGNpQjJZV3gxWlNCMGJ5QmpiMjF3WVhKbExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlGdGpkWE4wYjIxcGVtVnlYU0JVYUdVZ1puVnVZM1JwYjI0Z2RHOGdZM1Z6ZEc5dGFYcGxJR052YlhCaGNtbHpiMjV6TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0aWIyOXNaV0Z1ZlNCU1pYUjFjbTV6SUdCMGNuVmxZQ0JwWmlCMGFHVWdkbUZzZFdWeklHRnlaU0JsY1hWcGRtRnNaVzUwTENCbGJITmxJR0JtWVd4elpXQXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlHWjFibU4wYVc5dUlHbHpSM0psWlhScGJtY29kbUZzZFdVcElIdGNiaUFnSUNBZ0tpQWdJSEpsZEhWeWJpQXZYbWdvUHpwcGZHVnNiRzhwSkM4dWRHVnpkQ2gyWVd4MVpTazdYRzRnSUNBZ0lDb2dmVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dablZ1WTNScGIyNGdZM1Z6ZEc5dGFYcGxjaWh2WW1wV1lXeDFaU3dnYjNSb1ZtRnNkV1VwSUh0Y2JpQWdJQ0FnS2lBZ0lHbG1JQ2hwYzBkeVpXVjBhVzVuS0c5aWFsWmhiSFZsS1NBbUppQnBjMGR5WldWMGFXNW5LRzkwYUZaaGJIVmxLU2tnZTF4dUlDQWdJQ0FxSUNBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ0lDQWdLaUFnSUgxY2JpQWdJQ0FnS2lCOVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdZWEp5WVhrZ1BTQmJKMmhsYkd4dkp5d2dKMmR2YjJSaWVXVW5YVHRjYmlBZ0lDQWdLaUIyWVhJZ2IzUm9aWElnUFNCYkoyaHBKeXdnSjJkdmIyUmllV1VuWFR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWFYTkZjWFZoYkZkcGRHZ29ZWEp5WVhrc0lHOTBhR1Z5TENCamRYTjBiMjFwZW1WeUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCMGNuVmxYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2FYTkZjWFZoYkZkcGRHZ29kbUZzZFdVc0lHOTBhR1Z5TENCamRYTjBiMjFwZW1WeUtTQjdYRzRnSUNBZ0lDQmpkWE4wYjIxcGVtVnlJRDBnZEhsd1pXOW1JR04xYzNSdmJXbDZaWElnUFQwZ0oyWjFibU4wYVc5dUp5QS9JR04xYzNSdmJXbDZaWElnT2lCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNCMllYSWdjbVZ6ZFd4MElEMGdZM1Z6ZEc5dGFYcGxjaUEvSUdOMWMzUnZiV2w2WlhJb2RtRnNkV1VzSUc5MGFHVnlLU0E2SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUWdQVDA5SUhWdVpHVm1hVzVsWkNBL0lHSmhjMlZKYzBWeGRXRnNLSFpoYkhWbExDQnZkR2hsY2l3Z2RXNWtaV1pwYm1Wa0xDQmpkWE4wYjIxcGVtVnlLU0E2SUNFaGNtVnpkV3gwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOb1pXTnJjeUJwWmlCZ2RtRnNkV1ZnSUdseklHRnVJR0JGY25KdmNtQXNJR0JGZG1Gc1JYSnliM0pnTENCZ1VtRnVaMlZGY25KdmNtQXNJR0JTWldabGNtVnVZMlZGY25KdmNtQXNYRzRnSUNBZ0lDb2dZRk41Ym5SaGVFVnljbTl5WUN3Z1lGUjVjR1ZGY25KdmNtQXNJRzl5SUdCVlVrbEZjbkp2Y21BZ2IySnFaV04wTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRE11TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFeGhibWRjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCamFHVmpheTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3WW05dmJHVmhibjBnVW1WMGRYSnVjeUJnZEhKMVpXQWdhV1lnWUhaaGJIVmxZQ0JwY3lCaGJpQmxjbkp2Y2lCdlltcGxZM1FzSUdWc2MyVWdZR1poYkhObFlDNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXBjMFZ5Y205eUtHNWxkeUJGY25KdmNpazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2RISjFaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVwYzBWeWNtOXlLRVZ5Y205eUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCbVlXeHpaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHbHpSWEp5YjNJb2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hhWE5QWW1wbFkzUk1hV3RsS0haaGJIVmxLU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQjJZWElnZEdGbklEMGdZbUZ6WlVkbGRGUmhaeWgyWVd4MVpTazdYRzRnSUNBZ0lDQnlaWFIxY200Z2RHRm5JRDA5SUdWeWNtOXlWR0ZuSUh4OElIUmhaeUE5UFNCa2IyMUZlR05VWVdjZ2ZIeGNiaUFnSUNBZ0lDQWdLSFI1Y0dWdlppQjJZV3gxWlM1dFpYTnpZV2RsSUQwOUlDZHpkSEpwYm1jbklDWW1JSFI1Y0dWdlppQjJZV3gxWlM1dVlXMWxJRDA5SUNkemRISnBibWNuSUNZbUlDRnBjMUJzWVdsdVQySnFaV04wS0haaGJIVmxLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTJobFkydHpJR2xtSUdCMllXeDFaV0FnYVhNZ1lTQm1hVzVwZEdVZ2NISnBiV2wwYVhabElHNTFiV0psY2k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUNvcVRtOTBaVG9xS2lCVWFHbHpJRzFsZEdodlpDQnBjeUJpWVhObFpDQnZibHh1SUNBZ0lDQXFJRnRnVG5WdFltVnlMbWx6Um1sdWFYUmxZRjBvYUhSMGNITTZMeTl0Wkc0dWFXOHZUblZ0WW1WeUwybHpSbWx1YVhSbEtTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBd0xqRXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JNWVc1blhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdZMmhsWTJzdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UySnZiMnhsWVc1OUlGSmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdsbUlHQjJZV3gxWldBZ2FYTWdZU0JtYVc1cGRHVWdiblZ0WW1WeUxDQmxiSE5sSUdCbVlXeHpaV0F1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YVhOR2FXNXBkR1VvTXlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZEhKMVpWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXBjMFpwYm1sMFpTaE9kVzFpWlhJdVRVbE9YMVpCVEZWRktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCMGNuVmxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx6Um1sdWFYUmxLRWx1Wm1sdWFYUjVLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQm1ZV3h6WlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1cGMwWnBibWwwWlNnbk15Y3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHWmhiSE5sWEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdhWE5HYVc1cGRHVW9kbUZzZFdVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGVYQmxiMllnZG1Gc2RXVWdQVDBnSjI1MWJXSmxjaWNnSmlZZ2JtRjBhWFpsU1hOR2FXNXBkR1VvZG1Gc2RXVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU5vWldOcmN5QnBaaUJnZG1Gc2RXVmdJR2x6SUdOc1lYTnphV1pwWldRZ1lYTWdZU0JnUm5WdVkzUnBiMjVnSUc5aWFtVmpkQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXdMakV1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCTVlXNW5YRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0IyWVd4MVpTQlVhR1VnZG1Gc2RXVWdkRzhnWTJobFkyc3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMkp2YjJ4bFlXNTlJRkpsZEhWeWJuTWdZSFJ5ZFdWZ0lHbG1JR0IyWVd4MVpXQWdhWE1nWVNCbWRXNWpkR2x2Yml3Z1pXeHpaU0JnWm1Gc2MyVmdMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx6Um5WdVkzUnBiMjRvWHlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZEhKMVpWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXBjMFoxYm1OMGFXOXVLQzloWW1NdktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCbVlXeHpaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHbHpSblZ1WTNScGIyNG9kbUZzZFdVcElIdGNiaUFnSUNBZ0lHbG1JQ2doYVhOUFltcGxZM1FvZG1Gc2RXVXBLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lDOHZJRlJvWlNCMWMyVWdiMllnWUU5aWFtVmpkQ04wYjFOMGNtbHVaMkFnWVhadmFXUnpJR2x6YzNWbGN5QjNhWFJvSUhSb1pTQmdkSGx3Wlc5bVlDQnZjR1Z5WVhSdmNseHVJQ0FnSUNBZ0x5OGdhVzRnVTJGbVlYSnBJRGtnZDJocFkyZ2djbVYwZFhKdWN5QW5iMkpxWldOMEp5Qm1iM0lnZEhsd1pXUWdZWEp5WVhseklHRnVaQ0J2ZEdobGNpQmpiMjV6ZEhKMVkzUnZjbk11WEc0Z0lDQWdJQ0IyWVhJZ2RHRm5JRDBnWW1GelpVZGxkRlJoWnloMllXeDFaU2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR0ZuSUQwOUlHWjFibU5VWVdjZ2ZId2dkR0ZuSUQwOUlHZGxibFJoWnlCOGZDQjBZV2NnUFQwZ1lYTjVibU5VWVdjZ2ZId2dkR0ZuSUQwOUlIQnliM2g1VkdGbk8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTm9aV05yY3lCcFppQmdkbUZzZFdWZ0lHbHpJR0Z1SUdsdWRHVm5aWEl1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUFxS2s1dmRHVTZLaW9nVkdocGN5QnRaWFJvYjJRZ2FYTWdZbUZ6WldRZ2IyNWNiaUFnSUNBZ0tpQmJZRTUxYldKbGNpNXBjMGx1ZEdWblpYSmdYU2hvZEhSd2N6b3ZMMjFrYmk1cGJ5OU9kVzFpWlhJdmFYTkpiblJsWjJWeUtTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBMExqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JNWVc1blhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdZMmhsWTJzdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UySnZiMnhsWVc1OUlGSmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdsbUlHQjJZV3gxWldBZ2FYTWdZVzRnYVc1MFpXZGxjaXdnWld4elpTQmdabUZzYzJWZ0xseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtbHpTVzUwWldkbGNpZ3pLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQjBjblZsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1selNXNTBaV2RsY2loT2RXMWlaWEl1VFVsT1gxWkJURlZGS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJtWVd4elpWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXBjMGx1ZEdWblpYSW9TVzVtYVc1cGRIa3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHWmhiSE5sWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1selNXNTBaV2RsY2lnbk15Y3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHWmhiSE5sWEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdhWE5KYm5SbFoyVnlLSFpoYkhWbEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RIbHdaVzltSUhaaGJIVmxJRDA5SUNkdWRXMWlaWEluSUNZbUlIWmhiSFZsSUQwOUlIUnZTVzUwWldkbGNpaDJZV3gxWlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyaGxZMnR6SUdsbUlHQjJZV3gxWldBZ2FYTWdZU0IyWVd4cFpDQmhjbkpoZVMxc2FXdGxJR3hsYm1kMGFDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDb3FUbTkwWlRvcUtpQlVhR2x6SUcxbGRHaHZaQ0JwY3lCc2IyOXpaV3g1SUdKaGMyVmtJRzl1WEc0Z0lDQWdJQ29nVzJCVWIweGxibWQwYUdCZEtHaDBkSEE2THk5bFkyMWhMV2x1ZEdWeWJtRjBhVzl1WVd3dWIzSm5MMlZqYldFdE1qWXlMemN1TUM4amMyVmpMWFJ2YkdWdVozUm9LUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQTBMakF1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCTVlXNW5YRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0IyWVd4MVpTQlVhR1VnZG1Gc2RXVWdkRzhnWTJobFkyc3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMkp2YjJ4bFlXNTlJRkpsZEhWeWJuTWdZSFJ5ZFdWZ0lHbG1JR0IyWVd4MVpXQWdhWE1nWVNCMllXeHBaQ0JzWlc1bmRHZ3NJR1ZzYzJVZ1lHWmhiSE5sWUM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1cGMweGxibWQwYUNnektUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCMGNuVmxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx6VEdWdVozUm9LRTUxYldKbGNpNU5TVTVmVmtGTVZVVXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHWmhiSE5sWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1selRHVnVaM1JvS0VsdVptbHVhWFI1S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJtWVd4elpWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXBjMHhsYm1kMGFDZ25NeWNwTzF4dUlDQWdJQ0FxSUM4dklEMCtJR1poYkhObFhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYVhOTVpXNW5kR2dvZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBlWEJsYjJZZ2RtRnNkV1VnUFQwZ0oyNTFiV0psY2ljZ0ppWmNiaUFnSUNBZ0lDQWdkbUZzZFdVZ1BpQXRNU0FtSmlCMllXeDFaU0FsSURFZ1BUMGdNQ0FtSmlCMllXeDFaU0E4UFNCTlFWaGZVMEZHUlY5SlRsUkZSMFZTTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOb1pXTnJjeUJwWmlCZ2RtRnNkV1ZnSUdseklIUm9aVnh1SUNBZ0lDQXFJRnRzWVc1bmRXRm5aU0IwZVhCbFhTaG9kSFJ3T2k4dmQzZDNMbVZqYldFdGFXNTBaWEp1WVhScGIyNWhiQzV2Y21jdlpXTnRZUzB5TmpJdk55NHdMeU56WldNdFpXTnRZWE5qY21sd2RDMXNZVzVuZFdGblpTMTBlWEJsY3lsY2JpQWdJQ0FnS2lCdlppQmdUMkpxWldOMFlDNGdLR1V1Wnk0Z1lYSnlZWGx6TENCbWRXNWpkR2x2Ym5Nc0lHOWlhbVZqZEhNc0lISmxaMlY0WlhNc0lHQnVaWGNnVG5WdFltVnlLREFwWUN3Z1lXNWtJR0J1WlhjZ1UzUnlhVzVuS0NjbktXQXBYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01DNHhMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVEdGdVoxeHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdkbUZzZFdVZ1ZHaGxJSFpoYkhWbElIUnZJR05vWldOckxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdGliMjlzWldGdWZTQlNaWFIxY201eklHQjBjblZsWUNCcFppQmdkbUZzZFdWZ0lHbHpJR0Z1SUc5aWFtVmpkQ3dnWld4elpTQmdabUZzYzJWZ0xseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtbHpUMkpxWldOMEtIdDlLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQjBjblZsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1selQySnFaV04wS0ZzeExDQXlMQ0F6WFNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZEhKMVpWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXBjMDlpYW1WamRDaGZMbTV2YjNBcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUhSeWRXVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhWE5QWW1wbFkzUW9iblZzYkNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnWm1Gc2MyVmNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCcGMwOWlhbVZqZENoMllXeDFaU2tnZTF4dUlDQWdJQ0FnZG1GeUlIUjVjR1VnUFNCMGVYQmxiMllnZG1Gc2RXVTdYRzRnSUNBZ0lDQnlaWFIxY200Z2RtRnNkV1VnSVQwZ2JuVnNiQ0FtSmlBb2RIbHdaU0E5UFNBbmIySnFaV04wSnlCOGZDQjBlWEJsSUQwOUlDZG1kVzVqZEdsdmJpY3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU5vWldOcmN5QnBaaUJnZG1Gc2RXVmdJR2x6SUc5aWFtVmpkQzFzYVd0bExpQkJJSFpoYkhWbElHbHpJRzlpYW1WamRDMXNhV3RsSUdsbUlHbDBKM01nYm05MElHQnVkV3hzWUZ4dUlDQWdJQ0FxSUdGdVpDQm9ZWE1nWVNCZ2RIbHdaVzltWUNCeVpYTjFiSFFnYjJZZ1hDSnZZbXBsWTNSY0lpNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBMExqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JNWVc1blhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdZMmhsWTJzdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UySnZiMnhsWVc1OUlGSmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdsbUlHQjJZV3gxWldBZ2FYTWdiMkpxWldOMExXeHBhMlVzSUdWc2MyVWdZR1poYkhObFlDNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXBjMDlpYW1WamRFeHBhMlVvZTMwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUhSeWRXVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhWE5QWW1wbFkzUk1hV3RsS0ZzeExDQXlMQ0F6WFNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZEhKMVpWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXBjMDlpYW1WamRFeHBhMlVvWHk1dWIyOXdLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQm1ZV3h6WlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1cGMwOWlhbVZqZEV4cGEyVW9iblZzYkNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnWm1Gc2MyVmNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCcGMwOWlhbVZqZEV4cGEyVW9kbUZzZFdVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMllXeDFaU0FoUFNCdWRXeHNJQ1ltSUhSNWNHVnZaaUIyWVd4MVpTQTlQU0FuYjJKcVpXTjBKenRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEYUdWamEzTWdhV1lnWUhaaGJIVmxZQ0JwY3lCamJHRnpjMmxtYVdWa0lHRnpJR0VnWUUxaGNHQWdiMkpxWldOMExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU15NHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRXhoYm1kY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlIWmhiSFZsSUZSb1pTQjJZV3gxWlNCMGJ5QmphR1ZqYXk1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1ltOXZiR1ZoYm4wZ1VtVjBkWEp1Y3lCZ2RISjFaV0FnYVdZZ1lIWmhiSFZsWUNCcGN5QmhJRzFoY0N3Z1pXeHpaU0JnWm1Gc2MyVmdMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx6VFdGd0tHNWxkeUJOWVhBcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUhSeWRXVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhWE5OWVhBb2JtVjNJRmRsWVd0TllYQXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHWmhiSE5sWEc0Z0lDQWdJQ292WEc0Z0lDQWdkbUZ5SUdselRXRndJRDBnYm05a1pVbHpUV0Z3SUQ4Z1ltRnpaVlZ1WVhKNUtHNXZaR1ZKYzAxaGNDa2dPaUJpWVhObFNYTk5ZWEE3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCUVpYSm1iM0p0Y3lCaElIQmhjblJwWVd3Z1pHVmxjQ0JqYjIxd1lYSnBjMjl1SUdKbGRIZGxaVzRnWUc5aWFtVmpkR0FnWVc1a0lHQnpiM1Z5WTJWZ0lIUnZYRzRnSUNBZ0lDb2daR1YwWlhKdGFXNWxJR2xtSUdCdlltcGxZM1JnSUdOdmJuUmhhVzV6SUdWeGRXbDJZV3hsYm5RZ2NISnZjR1Z5ZEhrZ2RtRnNkV1Z6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nS2lwT2IzUmxPaW9xSUZSb2FYTWdiV1YwYUc5a0lHbHpJR1Z4ZFdsMllXeGxiblFnZEc4Z1lGOHViV0YwWTJobGMyQWdkMmhsYmlCZ2MyOTFjbU5sWUNCcGMxeHVJQ0FnSUNBcUlIQmhjblJwWVd4c2VTQmhjSEJzYVdWa0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1VHRnlkR2xoYkNCamIyMXdZWEpwYzI5dWN5QjNhV3hzSUcxaGRHTm9JR1Z0Y0hSNUlHRnljbUY1SUdGdVpDQmxiWEIwZVNCdlltcGxZM1FnWUhOdmRYSmpaV0JjYmlBZ0lDQWdLaUIyWVd4MVpYTWdZV2RoYVc1emRDQmhibmtnWVhKeVlYa2diM0lnYjJKcVpXTjBJSFpoYkhWbExDQnlaWE53WldOMGFYWmxiSGt1SUZObFpTQmdYeTVwYzBWeGRXRnNZRnh1SUNBZ0lDQXFJR1p2Y2lCaElHeHBjM1FnYjJZZ2MzVndjRzl5ZEdWa0lIWmhiSFZsSUdOdmJYQmhjbWx6YjI1ekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURNdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRXhoYm1kY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjJKcVpXTjBJRlJvWlNCdlltcGxZM1FnZEc4Z2FXNXpjR1ZqZEM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYzI5MWNtTmxJRlJvWlNCdlltcGxZM1FnYjJZZ2NISnZjR1Z5ZEhrZ2RtRnNkV1Z6SUhSdklHMWhkR05vTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0aWIyOXNaV0Z1ZlNCU1pYUjFjbTV6SUdCMGNuVmxZQ0JwWmlCZ2IySnFaV04wWUNCcGN5QmhJRzFoZEdOb0xDQmxiSE5sSUdCbVlXeHpaV0F1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSFpoY2lCdlltcGxZM1FnUFNCN0lDZGhKem9nTVN3Z0oySW5PaUF5SUgwN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtbHpUV0YwWTJnb2IySnFaV04wTENCN0lDZGlKem9nTWlCOUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCMGNuVmxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx6VFdGMFkyZ29iMkpxWldOMExDQjdJQ2RpSnpvZ01TQjlLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQm1ZV3h6WlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR2x6VFdGMFkyZ29iMkpxWldOMExDQnpiM1Z5WTJVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdlltcGxZM1FnUFQwOUlITnZkWEpqWlNCOGZDQmlZWE5sU1hOTllYUmphQ2h2WW1wbFkzUXNJSE52ZFhKalpTd2daMlYwVFdGMFkyaEVZWFJoS0hOdmRYSmpaU2twTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb2FYTWdiV1YwYUc5a0lHbHpJR3hwYTJVZ1lGOHVhWE5OWVhSamFHQWdaWGhqWlhCMElIUm9ZWFFnYVhRZ1lXTmpaWEIwY3lCZ1kzVnpkRzl0YVhwbGNtQWdkMmhwWTJoY2JpQWdJQ0FnS2lCcGN5QnBiblp2YTJWa0lIUnZJR052YlhCaGNtVWdkbUZzZFdWekxpQkpaaUJnWTNWemRHOXRhWHBsY21BZ2NtVjBkWEp1Y3lCZ2RXNWtaV1pwYm1Wa1lDd2dZMjl0Y0dGeWFYTnZibk5jYmlBZ0lDQWdLaUJoY21VZ2FHRnVaR3hsWkNCaWVTQjBhR1VnYldWMGFHOWtJR2x1YzNSbFlXUXVJRlJvWlNCZ1kzVnpkRzl0YVhwbGNtQWdhWE1nYVc1MmIydGxaQ0IzYVhSb0lHWnBkbVZjYmlBZ0lDQWdLaUJoY21kMWJXVnVkSE02SUNodlltcFdZV3gxWlN3Z2MzSmpWbUZzZFdVc0lHbHVaR1Y0Zkd0bGVTd2diMkpxWldOMExDQnpiM1Z5WTJVcExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRXhoYm1kY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjJKcVpXTjBJRlJvWlNCdlltcGxZM1FnZEc4Z2FXNXpjR1ZqZEM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYzI5MWNtTmxJRlJvWlNCdlltcGxZM1FnYjJZZ2NISnZjR1Z5ZEhrZ2RtRnNkV1Z6SUhSdklHMWhkR05vTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUZ0amRYTjBiMjFwZW1WeVhTQlVhR1VnWm5WdVkzUnBiMjRnZEc4Z1kzVnpkRzl0YVhwbElHTnZiWEJoY21semIyNXpMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRpYjI5c1pXRnVmU0JTWlhSMWNtNXpJR0IwY25WbFlDQnBaaUJnYjJKcVpXTjBZQ0JwY3lCaElHMWhkR05vTENCbGJITmxJR0JtWVd4elpXQXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlHWjFibU4wYVc5dUlHbHpSM0psWlhScGJtY29kbUZzZFdVcElIdGNiaUFnSUNBZ0tpQWdJSEpsZEhWeWJpQXZYbWdvUHpwcGZHVnNiRzhwSkM4dWRHVnpkQ2gyWVd4MVpTazdYRzRnSUNBZ0lDb2dmVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dablZ1WTNScGIyNGdZM1Z6ZEc5dGFYcGxjaWh2WW1wV1lXeDFaU3dnYzNKalZtRnNkV1VwSUh0Y2JpQWdJQ0FnS2lBZ0lHbG1JQ2hwYzBkeVpXVjBhVzVuS0c5aWFsWmhiSFZsS1NBbUppQnBjMGR5WldWMGFXNW5LSE55WTFaaGJIVmxLU2tnZTF4dUlDQWdJQ0FxSUNBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ0lDQWdLaUFnSUgxY2JpQWdJQ0FnS2lCOVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdiMkpxWldOMElEMGdleUFuWjNKbFpYUnBibWNuT2lBbmFHVnNiRzhuSUgwN1hHNGdJQ0FnSUNvZ2RtRnlJSE52ZFhKalpTQTlJSHNnSjJkeVpXVjBhVzVuSnpvZ0oyaHBKeUI5TzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1cGMwMWhkR05vVjJsMGFDaHZZbXBsWTNRc0lITnZkWEpqWlN3Z1kzVnpkRzl0YVhwbGNpazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2RISjFaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHbHpUV0YwWTJoWGFYUm9LRzlpYW1WamRDd2djMjkxY21ObExDQmpkWE4wYjIxcGVtVnlLU0I3WEc0Z0lDQWdJQ0JqZFhOMGIyMXBlbVZ5SUQwZ2RIbHdaVzltSUdOMWMzUnZiV2w2WlhJZ1BUMGdKMloxYm1OMGFXOXVKeUEvSUdOMWMzUnZiV2w2WlhJZ09pQjFibVJsWm1sdVpXUTdYRzRnSUNBZ0lDQnlaWFIxY200Z1ltRnpaVWx6VFdGMFkyZ29iMkpxWldOMExDQnpiM1Z5WTJVc0lHZGxkRTFoZEdOb1JHRjBZU2h6YjNWeVkyVXBMQ0JqZFhOMGIyMXBlbVZ5S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGFHVmphM01nYVdZZ1lIWmhiSFZsWUNCcGN5QmdUbUZPWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUNvcVRtOTBaVG9xS2lCVWFHbHpJRzFsZEdodlpDQnBjeUJpWVhObFpDQnZibHh1SUNBZ0lDQXFJRnRnVG5WdFltVnlMbWx6VG1GT1lGMG9hSFIwY0hNNkx5OXRaRzR1YVc4dlRuVnRZbVZ5TDJselRtRk9LU0JoYm1RZ2FYTWdibTkwSUhSb1pTQnpZVzFsSUdGelhHNGdJQ0FnSUNvZ1oyeHZZbUZzSUZ0Z2FYTk9ZVTVnWFNob2RIUndjem92TDIxa2JpNXBieTlwYzA1aFRpa2dkMmhwWTJnZ2NtVjBkWEp1Y3lCZ2RISjFaV0FnWm05eVhHNGdJQ0FnSUNvZ1lIVnVaR1ZtYVc1bFpHQWdZVzVrSUc5MGFHVnlJRzV2YmkxdWRXMWlaWElnZG1Gc2RXVnpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEQXVNUzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUV4aGJtZGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSFpoYkhWbElGUm9aU0IyWVd4MVpTQjBieUJqYUdWamF5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdZbTl2YkdWaGJuMGdVbVYwZFhKdWN5QmdkSEoxWldBZ2FXWWdZSFpoYkhWbFlDQnBjeUJnVG1GT1lDd2daV3h6WlNCZ1ptRnNjMlZnTGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1selRtRk9LRTVoVGlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZEhKMVpWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXBjMDVoVGlodVpYY2dUblZ0WW1WeUtFNWhUaWtwTzF4dUlDQWdJQ0FxSUM4dklEMCtJSFJ5ZFdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUdselRtRk9LSFZ1WkdWbWFXNWxaQ2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdkSEoxWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1cGMwNWhUaWgxYm1SbFptbHVaV1FwTzF4dUlDQWdJQ0FxSUM4dklEMCtJR1poYkhObFhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYVhOT1lVNG9kbUZzZFdVcElIdGNiaUFnSUNBZ0lDOHZJRUZ1SUdCT1lVNWdJSEJ5YVcxcGRHbDJaU0JwY3lCMGFHVWdiMjVzZVNCMllXeDFaU0IwYUdGMElHbHpJRzV2ZENCbGNYVmhiQ0IwYnlCcGRITmxiR1l1WEc0Z0lDQWdJQ0F2THlCUVpYSm1iM0p0SUhSb1pTQmdkRzlUZEhKcGJtZFVZV2RnSUdOb1pXTnJJR1pwY25OMElIUnZJR0YyYjJsa0lHVnljbTl5Y3lCM2FYUm9JSE52YldWY2JpQWdJQ0FnSUM4dklFRmpkR2wyWlZnZ2IySnFaV04wY3lCcGJpQkpSUzVjYmlBZ0lDQWdJSEpsZEhWeWJpQnBjMDUxYldKbGNpaDJZV3gxWlNrZ0ppWWdkbUZzZFdVZ0lUMGdLM1poYkhWbE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTm9aV05yY3lCcFppQmdkbUZzZFdWZ0lHbHpJR0VnY0hKcGMzUnBibVVnYm1GMGFYWmxJR1oxYm1OMGFXOXVMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dLaXBPYjNSbE9pb3FJRlJvYVhNZ2JXVjBhRzlrSUdOaGJpZDBJSEpsYkdsaFlteDVJR1JsZEdWamRDQnVZWFJwZG1VZ1puVnVZM1JwYjI1eklHbHVJSFJvWlNCd2NtVnpaVzVqWlZ4dUlDQWdJQ0FxSUc5bUlIUm9aU0JqYjNKbExXcHpJSEJoWTJ0aFoyVWdZbVZqWVhWelpTQmpiM0psTFdweklHTnBjbU4xYlhabGJuUnpJSFJvYVhNZ2EybHVaQ0J2WmlCa1pYUmxZM1JwYjI0dVhHNGdJQ0FnSUNvZ1JHVnpjR2wwWlNCdGRXeDBhWEJzWlNCeVpYRjFaWE4wY3l3Z2RHaGxJR052Y21VdGFuTWdiV0ZwYm5SaGFXNWxjaUJvWVhNZ2JXRmtaU0JwZENCamJHVmhjam9nWVc1NVhHNGdJQ0FnSUNvZ1lYUjBaVzF3ZENCMGJ5Qm1hWGdnZEdobElHUmxkR1ZqZEdsdmJpQjNhV3hzSUdKbElHOWljM1J5ZFdOMFpXUXVJRUZ6SUdFZ2NtVnpkV3gwTENCM1pTZHlaU0JzWldaMFhHNGdJQ0FnSUNvZ2QybDBhQ0JzYVhSMGJHVWdZMmh2YVdObElHSjFkQ0IwYnlCMGFISnZkeUJoYmlCbGNuSnZjaTRnVlc1bWIzSjBkVzVoZEdWc2VTd2dkR2hwY3lCaGJITnZJR0ZtWm1WamRITmNiaUFnSUNBZ0tpQndZV05yWVdkbGN5d2diR2xyWlNCYlltRmlaV3d0Y0c5c2VXWnBiR3hkS0doMGRIQnpPaTh2ZDNkM0xtNXdiV3B6TG1OdmJTOXdZV05yWVdkbEwySmhZbVZzTFhCdmJIbG1hV3hzS1N4Y2JpQWdJQ0FnS2lCM2FHbGphQ0J5Wld4NUlHOXVJR052Y21VdGFuTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ015NHdMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVEdGdVoxeHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdkbUZzZFdVZ1ZHaGxJSFpoYkhWbElIUnZJR05vWldOckxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdGliMjlzWldGdWZTQlNaWFIxY201eklHQjBjblZsWUNCcFppQmdkbUZzZFdWZ0lHbHpJR0VnYm1GMGFYWmxJR1oxYm1OMGFXOXVMRnh1SUNBZ0lDQXFJQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWFYTk9ZWFJwZG1Vb1FYSnlZWGt1Y0hKdmRHOTBlWEJsTG5CMWMyZ3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIUnlkV1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YVhOT1lYUnBkbVVvWHlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnWm1Gc2MyVmNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCcGMwNWhkR2wyWlNoMllXeDFaU2tnZTF4dUlDQWdJQ0FnYVdZZ0tHbHpUV0Z6YTJGaWJHVW9kbUZzZFdVcEtTQjdYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaERUMUpGWDBWU1VrOVNYMVJGV0ZRcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUdKaGMyVkpjMDVoZEdsMlpTaDJZV3gxWlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyaGxZMnR6SUdsbUlHQjJZV3gxWldBZ2FYTWdZRzUxYkd4Z0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURBdU1TNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRXhoYm1kY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlIWmhiSFZsSUZSb1pTQjJZV3gxWlNCMGJ5QmphR1ZqYXk1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1ltOXZiR1ZoYm4wZ1VtVjBkWEp1Y3lCZ2RISjFaV0FnYVdZZ1lIWmhiSFZsWUNCcGN5QmdiblZzYkdBc0lHVnNjMlVnWUdaaGJITmxZQzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVwYzA1MWJHd29iblZzYkNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZEhKMVpWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXBjMDUxYkd3b2RtOXBaQ0F3S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJtWVd4elpWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdselRuVnNiQ2gyWVd4MVpTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIWmhiSFZsSUQwOVBTQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOb1pXTnJjeUJwWmlCZ2RtRnNkV1ZnSUdseklHQnVkV3hzWUNCdmNpQmdkVzVrWldacGJtVmtZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQTBMakF1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCTVlXNW5YRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0IyWVd4MVpTQlVhR1VnZG1Gc2RXVWdkRzhnWTJobFkyc3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMkp2YjJ4bFlXNTlJRkpsZEhWeWJuTWdZSFJ5ZFdWZ0lHbG1JR0IyWVd4MVpXQWdhWE1nYm5Wc2JHbHphQ3dnWld4elpTQmdabUZzYzJWZ0xseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtbHpUbWxzS0c1MWJHd3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIUnlkV1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YVhOT2FXd29kbTlwWkNBd0tUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCMGNuVmxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx6VG1sc0tFNWhUaWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdabUZzYzJWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJwYzA1cGJDaDJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhaaGJIVmxJRDA5SUc1MWJHdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMmhsWTJ0eklHbG1JR0IyWVd4MVpXQWdhWE1nWTJ4aGMzTnBabWxsWkNCaGN5QmhJR0JPZFcxaVpYSmdJSEJ5YVcxcGRHbDJaU0J2Y2lCdlltcGxZM1F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUFxS2s1dmRHVTZLaW9nVkc4Z1pYaGpiSFZrWlNCZ1NXNW1hVzVwZEhsZ0xDQmdMVWx1Wm1sdWFYUjVZQ3dnWVc1a0lHQk9ZVTVnTENCM2FHbGphQ0JoY21WY2JpQWdJQ0FnS2lCamJHRnpjMmxtYVdWa0lHRnpJRzUxYldKbGNuTXNJSFZ6WlNCMGFHVWdZRjh1YVhOR2FXNXBkR1ZnSUcxbGRHaHZaQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXdMakV1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCTVlXNW5YRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0IyWVd4MVpTQlVhR1VnZG1Gc2RXVWdkRzhnWTJobFkyc3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMkp2YjJ4bFlXNTlJRkpsZEhWeWJuTWdZSFJ5ZFdWZ0lHbG1JR0IyWVd4MVpXQWdhWE1nWVNCdWRXMWlaWElzSUdWc2MyVWdZR1poYkhObFlDNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXBjMDUxYldKbGNpZ3pLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQjBjblZsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1selRuVnRZbVZ5S0U1MWJXSmxjaTVOU1U1ZlZrRk1WVVVwTzF4dUlDQWdJQ0FxSUM4dklEMCtJSFJ5ZFdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWFYTk9kVzFpWlhJb1NXNW1hVzVwZEhrcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUhSeWRXVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhWE5PZFcxaVpYSW9Kek1uS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJtWVd4elpWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdselRuVnRZbVZ5S0haaGJIVmxLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkSGx3Wlc5bUlIWmhiSFZsSUQwOUlDZHVkVzFpWlhJbklIeDhYRzRnSUNBZ0lDQWdJQ2hwYzA5aWFtVmpkRXhwYTJVb2RtRnNkV1VwSUNZbUlHSmhjMlZIWlhSVVlXY29kbUZzZFdVcElEMDlJRzUxYldKbGNsUmhaeWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTJobFkydHpJR2xtSUdCMllXeDFaV0FnYVhNZ1lTQndiR0ZwYmlCdlltcGxZM1FzSUhSb1lYUWdhWE1zSUdGdUlHOWlhbVZqZENCamNtVmhkR1ZrSUdKNUlIUm9aVnh1SUNBZ0lDQXFJR0JQWW1wbFkzUmdJR052Ym5OMGNuVmpkRzl5SUc5eUlHOXVaU0IzYVhSb0lHRWdZRnRiVUhKdmRHOTBlWEJsWFYxZ0lHOW1JR0J1ZFd4c1lDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBd0xqZ3VNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JNWVc1blhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdZMmhsWTJzdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UySnZiMnhsWVc1OUlGSmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdsbUlHQjJZV3gxWldBZ2FYTWdZU0J3YkdGcGJpQnZZbXBsWTNRc0lHVnNjMlVnWUdaaGJITmxZQzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dablZ1WTNScGIyNGdSbTl2S0NrZ2UxeHVJQ0FnSUNBcUlDQWdkR2hwY3k1aElEMGdNVHRjYmlBZ0lDQWdLaUI5WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1selVHeGhhVzVQWW1wbFkzUW9ibVYzSUVadmJ5azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1ptRnNjMlZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YVhOUWJHRnBiazlpYW1WamRDaGJNU3dnTWl3Z00xMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lHWmhiSE5sWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1selVHeGhhVzVQWW1wbFkzUW9leUFuZUNjNklEQXNJQ2Q1SnpvZ01DQjlLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQjBjblZsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1selVHeGhhVzVQWW1wbFkzUW9UMkpxWldOMExtTnlaV0YwWlNodWRXeHNLU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdkSEoxWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR2x6VUd4aGFXNVBZbXBsWTNRb2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hhWE5QWW1wbFkzUk1hV3RsS0haaGJIVmxLU0I4ZkNCaVlYTmxSMlYwVkdGbktIWmhiSFZsS1NBaFBTQnZZbXBsWTNSVVlXY3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2RtRnlJSEJ5YjNSdklEMGdaMlYwVUhKdmRHOTBlWEJsS0haaGJIVmxLVHRjYmlBZ0lDQWdJR2xtSUNod2NtOTBieUE5UFQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lIWmhjaUJEZEc5eUlEMGdhR0Z6VDNkdVVISnZjR1Z5ZEhrdVkyRnNiQ2h3Y205MGJ5d2dKMk52Ym5OMGNuVmpkRzl5SnlrZ0ppWWdjSEp2ZEc4dVkyOXVjM1J5ZFdOMGIzSTdYRzRnSUNBZ0lDQnlaWFIxY200Z2RIbHdaVzltSUVOMGIzSWdQVDBnSjJaMWJtTjBhVzl1SnlBbUppQkRkRzl5SUdsdWMzUmhibU5sYjJZZ1EzUnZjaUFtSmx4dUlDQWdJQ0FnSUNCbWRXNWpWRzlUZEhKcGJtY3VZMkZzYkNoRGRHOXlLU0E5UFNCdlltcGxZM1JEZEc5eVUzUnlhVzVuTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOb1pXTnJjeUJwWmlCZ2RtRnNkV1ZnSUdseklHTnNZWE56YVdacFpXUWdZWE1nWVNCZ1VtVm5SWGh3WUNCdlltcGxZM1F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdNQzR4TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1RHRnVaMXh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdLbjBnZG1Gc2RXVWdWR2hsSUhaaGJIVmxJSFJ2SUdOb1pXTnJMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRpYjI5c1pXRnVmU0JTWlhSMWNtNXpJR0IwY25WbFlDQnBaaUJnZG1Gc2RXVmdJR2x6SUdFZ2NtVm5aWGh3TENCbGJITmxJR0JtWVd4elpXQXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhWE5TWldkRmVIQW9MMkZpWXk4cE8xeHVJQ0FnSUNBcUlDOHZJRDArSUhSeWRXVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhWE5TWldkRmVIQW9KeTloWW1Ndkp5azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1ptRnNjMlZjYmlBZ0lDQWdLaTljYmlBZ0lDQjJZWElnYVhOU1pXZEZlSEFnUFNCdWIyUmxTWE5TWldkRmVIQWdQeUJpWVhObFZXNWhjbmtvYm05a1pVbHpVbVZuUlhod0tTQTZJR0poYzJWSmMxSmxaMFY0Y0R0Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTm9aV05yY3lCcFppQmdkbUZzZFdWZ0lHbHpJR0VnYzJGbVpTQnBiblJsWjJWeUxpQkJiaUJwYm5SbFoyVnlJR2x6SUhOaFptVWdhV1lnYVhRbmN5QmhiaUJKUlVWRkxUYzFORnh1SUNBZ0lDQXFJR1J2ZFdKc1pTQndjbVZqYVhOcGIyNGdiblZ0WW1WeUlIZG9hV05vSUdsemJpZDBJSFJvWlNCeVpYTjFiSFFnYjJZZ1lTQnliM1Z1WkdWa0lIVnVjMkZtWlNCcGJuUmxaMlZ5TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nS2lwT2IzUmxPaW9xSUZSb2FYTWdiV1YwYUc5a0lHbHpJR0poYzJWa0lHOXVYRzRnSUNBZ0lDb2dXMkJPZFcxaVpYSXVhWE5UWVdabFNXNTBaV2RsY21CZEtHaDBkSEJ6T2k4dmJXUnVMbWx2TDA1MWJXSmxjaTlwYzFOaFptVkpiblJsWjJWeUtTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBMExqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JNWVc1blhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdZMmhsWTJzdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UySnZiMnhsWVc1OUlGSmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdsbUlHQjJZV3gxWldBZ2FYTWdZU0J6WVdabElHbHVkR1ZuWlhJc0lHVnNjMlVnWUdaaGJITmxZQzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVwYzFOaFptVkpiblJsWjJWeUtETXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIUnlkV1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YVhOVFlXWmxTVzUwWldkbGNpaE9kVzFpWlhJdVRVbE9YMVpCVEZWRktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCbVlXeHpaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVwYzFOaFptVkpiblJsWjJWeUtFbHVabWx1YVhSNUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCbVlXeHpaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVwYzFOaFptVkpiblJsWjJWeUtDY3pKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdabUZzYzJWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJwYzFOaFptVkpiblJsWjJWeUtIWmhiSFZsS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYVhOSmJuUmxaMlZ5S0haaGJIVmxLU0FtSmlCMllXeDFaU0ErUFNBdFRVRllYMU5CUmtWZlNVNVVSVWRGVWlBbUppQjJZV3gxWlNBOFBTQk5RVmhmVTBGR1JWOUpUbFJGUjBWU08xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTm9aV05yY3lCcFppQmdkbUZzZFdWZ0lHbHpJR05zWVhOemFXWnBaV1FnWVhNZ1lTQmdVMlYwWUNCdlltcGxZM1F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR6TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1RHRnVaMXh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdLbjBnZG1Gc2RXVWdWR2hsSUhaaGJIVmxJSFJ2SUdOb1pXTnJMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRpYjI5c1pXRnVmU0JTWlhSMWNtNXpJR0IwY25WbFlDQnBaaUJnZG1Gc2RXVmdJR2x6SUdFZ2MyVjBMQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWFYTlRaWFFvYm1WM0lGTmxkQ2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdkSEoxWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1cGMxTmxkQ2h1WlhjZ1YyVmhhMU5sZENrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnWm1Gc2MyVmNiaUFnSUNBZ0tpOWNiaUFnSUNCMllYSWdhWE5UWlhRZ1BTQnViMlJsU1hOVFpYUWdQeUJpWVhObFZXNWhjbmtvYm05a1pVbHpVMlYwS1NBNklHSmhjMlZKYzFObGREdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU5vWldOcmN5QnBaaUJnZG1Gc2RXVmdJR2x6SUdOc1lYTnphV1pwWldRZ1lYTWdZU0JnVTNSeWFXNW5ZQ0J3Y21sdGFYUnBkbVVnYjNJZ2IySnFaV04wTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXdMakV1TUZ4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFeGhibWRjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCamFHVmpheTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3WW05dmJHVmhibjBnVW1WMGRYSnVjeUJnZEhKMVpXQWdhV1lnWUhaaGJIVmxZQ0JwY3lCaElITjBjbWx1Wnl3Z1pXeHpaU0JnWm1Gc2MyVmdMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx6VTNSeWFXNW5LQ2RoWW1NbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCMGNuVmxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx6VTNSeWFXNW5LREVwTzF4dUlDQWdJQ0FxSUM4dklEMCtJR1poYkhObFhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYVhOVGRISnBibWNvZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBlWEJsYjJZZ2RtRnNkV1VnUFQwZ0ozTjBjbWx1WnljZ2ZIeGNiaUFnSUNBZ0lDQWdLQ0ZwYzBGeWNtRjVLSFpoYkhWbEtTQW1KaUJwYzA5aWFtVmpkRXhwYTJVb2RtRnNkV1VwSUNZbUlHSmhjMlZIWlhSVVlXY29kbUZzZFdVcElEMDlJSE4wY21sdVoxUmhaeWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTJobFkydHpJR2xtSUdCMllXeDFaV0FnYVhNZ1kyeGhjM05wWm1sbFpDQmhjeUJoSUdCVGVXMWliMnhnSUhCeWFXMXBkR2wyWlNCdmNpQnZZbXBsWTNRdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTkM0d0xqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dUR0Z1WjF4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ2RtRnNkV1VnVkdobElIWmhiSFZsSUhSdklHTm9aV05yTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0aWIyOXNaV0Z1ZlNCU1pYUjFjbTV6SUdCMGNuVmxZQ0JwWmlCZ2RtRnNkV1ZnSUdseklHRWdjM2x0WW05c0xDQmxiSE5sSUdCbVlXeHpaV0F1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YVhOVGVXMWliMndvVTNsdFltOXNMbWwwWlhKaGRHOXlLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQjBjblZsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1selUzbHRZbTlzS0NkaFltTW5LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQm1ZV3h6WlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR2x6VTNsdFltOXNLSFpoYkhWbEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RIbHdaVzltSUhaaGJIVmxJRDA5SUNkemVXMWliMnduSUh4OFhHNGdJQ0FnSUNBZ0lDaHBjMDlpYW1WamRFeHBhMlVvZG1Gc2RXVXBJQ1ltSUdKaGMyVkhaWFJVWVdjb2RtRnNkV1VwSUQwOUlITjViV0p2YkZSaFp5azdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMmhsWTJ0eklHbG1JR0IyWVd4MVpXQWdhWE1nWTJ4aGMzTnBabWxsWkNCaGN5QmhJSFI1Y0dWa0lHRnljbUY1TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRE11TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFeGhibWRjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCamFHVmpheTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3WW05dmJHVmhibjBnVW1WMGRYSnVjeUJnZEhKMVpXQWdhV1lnWUhaaGJIVmxZQ0JwY3lCaElIUjVjR1ZrSUdGeWNtRjVMQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWFYTlVlWEJsWkVGeWNtRjVLRzVsZHlCVmFXNTBPRUZ5Y21GNUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCMGNuVmxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx6Vkhsd1pXUkJjbkpoZVNoYlhTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1ptRnNjMlZjYmlBZ0lDQWdLaTljYmlBZ0lDQjJZWElnYVhOVWVYQmxaRUZ5Y21GNUlEMGdibTlrWlVselZIbHdaV1JCY25KaGVTQS9JR0poYzJWVmJtRnllU2h1YjJSbFNYTlVlWEJsWkVGeWNtRjVLU0E2SUdKaGMyVkpjMVI1Y0dWa1FYSnlZWGs3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGFHVmphM01nYVdZZ1lIWmhiSFZsWUNCcGN5QmdkVzVrWldacGJtVmtZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01DNHhMakJjYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCTVlXNW5YRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0IyWVd4MVpTQlVhR1VnZG1Gc2RXVWdkRzhnWTJobFkyc3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMkp2YjJ4bFlXNTlJRkpsZEhWeWJuTWdZSFJ5ZFdWZ0lHbG1JR0IyWVd4MVpXQWdhWE1nWUhWdVpHVm1hVzVsWkdBc0lHVnNjMlVnWUdaaGJITmxZQzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVwYzFWdVpHVm1hVzVsWkNoMmIybGtJREFwTzF4dUlDQWdJQ0FxSUM4dklEMCtJSFJ5ZFdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWFYTlZibVJsWm1sdVpXUW9iblZzYkNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnWm1Gc2MyVmNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCcGMxVnVaR1ZtYVc1bFpDaDJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhaaGJIVmxJRDA5UFNCMWJtUmxabWx1WldRN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyaGxZMnR6SUdsbUlHQjJZV3gxWldBZ2FYTWdZMnhoYzNOcFptbGxaQ0JoY3lCaElHQlhaV0ZyVFdGd1lDQnZZbXBsWTNRdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTkM0ekxqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dUR0Z1WjF4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ2RtRnNkV1VnVkdobElIWmhiSFZsSUhSdklHTm9aV05yTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0aWIyOXNaV0Z1ZlNCU1pYUjFjbTV6SUdCMGNuVmxZQ0JwWmlCZ2RtRnNkV1ZnSUdseklHRWdkMlZoYXlCdFlYQXNJR1ZzYzJVZ1lHWmhiSE5sWUM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1cGMxZGxZV3ROWVhBb2JtVjNJRmRsWVd0TllYQXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIUnlkV1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YVhOWFpXRnJUV0Z3S0c1bGR5Qk5ZWEFwTzF4dUlDQWdJQ0FxSUM4dklEMCtJR1poYkhObFhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYVhOWFpXRnJUV0Z3S0haaGJIVmxLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdhWE5QWW1wbFkzUk1hV3RsS0haaGJIVmxLU0FtSmlCblpYUlVZV2NvZG1Gc2RXVXBJRDA5SUhkbFlXdE5ZWEJVWVdjN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyaGxZMnR6SUdsbUlHQjJZV3gxWldBZ2FYTWdZMnhoYzNOcFptbGxaQ0JoY3lCaElHQlhaV0ZyVTJWMFlDQnZZbXBsWTNRdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTkM0ekxqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dUR0Z1WjF4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ2RtRnNkV1VnVkdobElIWmhiSFZsSUhSdklHTm9aV05yTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0aWIyOXNaV0Z1ZlNCU1pYUjFjbTV6SUdCMGNuVmxZQ0JwWmlCZ2RtRnNkV1ZnSUdseklHRWdkMlZoYXlCelpYUXNJR1ZzYzJVZ1lHWmhiSE5sWUM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1cGMxZGxZV3RUWlhRb2JtVjNJRmRsWVd0VFpYUXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIUnlkV1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YVhOWFpXRnJVMlYwS0c1bGR5QlRaWFFwTzF4dUlDQWdJQ0FxSUM4dklEMCtJR1poYkhObFhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYVhOWFpXRnJVMlYwS0haaGJIVmxLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdhWE5QWW1wbFkzUk1hV3RsS0haaGJIVmxLU0FtSmlCaVlYTmxSMlYwVkdGbktIWmhiSFZsS1NBOVBTQjNaV0ZyVTJWMFZHRm5PMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU5vWldOcmN5QnBaaUJnZG1Gc2RXVmdJR2x6SUd4bGMzTWdkR2hoYmlCZ2IzUm9aWEpnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRE11T1M0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFeGhibWRjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCamIyMXdZWEpsTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ2IzUm9aWElnVkdobElHOTBhR1Z5SUhaaGJIVmxJSFJ2SUdOdmJYQmhjbVV1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTJKdmIyeGxZVzU5SUZKbGRIVnlibk1nWUhSeWRXVmdJR2xtSUdCMllXeDFaV0FnYVhNZ2JHVnpjeUIwYUdGdUlHQnZkR2hsY21Bc1hHNGdJQ0FnSUNvZ0lHVnNjMlVnWUdaaGJITmxZQzVjYmlBZ0lDQWdLaUJBYzJWbElGOHVaM1JjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVzZENneExDQXpLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQjBjblZsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG14MEtETXNJRE1wTzF4dUlDQWdJQ0FxSUM4dklEMCtJR1poYkhObFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxteDBLRE1zSURFcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUdaaGJITmxYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RtRnlJR3gwSUQwZ1kzSmxZWFJsVW1Wc1lYUnBiMjVoYkU5d1pYSmhkR2x2YmloaVlYTmxUSFFwTzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyaGxZMnR6SUdsbUlHQjJZV3gxWldBZ2FYTWdiR1Z6Y3lCMGFHRnVJRzl5SUdWeGRXRnNJSFJ2SUdCdmRHaGxjbUF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdNeTQ1TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1RHRnVaMXh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdLbjBnZG1Gc2RXVWdWR2hsSUhaaGJIVmxJSFJ2SUdOdmJYQmhjbVV1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCdmRHaGxjaUJVYUdVZ2IzUm9aWElnZG1Gc2RXVWdkRzhnWTI5dGNHRnlaUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3WW05dmJHVmhibjBnVW1WMGRYSnVjeUJnZEhKMVpXQWdhV1lnWUhaaGJIVmxZQ0JwY3lCc1pYTnpJSFJvWVc0Z2IzSWdaWEYxWVd3Z2RHOWNiaUFnSUNBZ0tpQWdZRzkwYUdWeVlDd2daV3h6WlNCZ1ptRnNjMlZnTGx4dUlDQWdJQ0FxSUVCelpXVWdYeTVuZEdWY2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1c2RHVW9NU3dnTXlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZEhKMVpWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXNkR1VvTXl3Z015azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2RISjFaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVzZEdVb015d2dNU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdabUZzYzJWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IyWVhJZ2JIUmxJRDBnWTNKbFlYUmxVbVZzWVhScGIyNWhiRTl3WlhKaGRHbHZiaWhtZFc1amRHbHZiaWgyWVd4MVpTd2diM1JvWlhJcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMllXeDFaU0E4UFNCdmRHaGxjanRjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOdmJuWmxjblJ6SUdCMllXeDFaV0FnZEc4Z1lXNGdZWEp5WVhrdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUhOcGJtTmxJREF1TVM0d1hHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dUR0Z1WjF4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ2RtRnNkV1VnVkdobElIWmhiSFZsSUhSdklHTnZiblpsY25RdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQmpiMjUyWlhKMFpXUWdZWEp5WVhrdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWRHOUJjbkpoZVNoN0lDZGhKem9nTVN3Z0oySW5PaUF5SUgwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzeExDQXlYVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTUwYjBGeWNtRjVLQ2RoWW1NbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYkoyRW5MQ0FuWWljc0lDZGpKMTFjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1ZEc5QmNuSmhlU2d4S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiWFZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1MGIwRnljbUY1S0c1MWJHd3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGdGRYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2RHOUJjbkpoZVNoMllXeDFaU2tnZTF4dUlDQWdJQ0FnYVdZZ0tDRjJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1cxMDdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnBaaUFvYVhOQmNuSmhlVXhwYTJVb2RtRnNkV1VwS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCcGMxTjBjbWx1WnloMllXeDFaU2tnUHlCemRISnBibWRVYjBGeWNtRjVLSFpoYkhWbEtTQTZJR052Y0hsQmNuSmhlU2gyWVd4MVpTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnBaaUFvYzNsdFNYUmxjbUYwYjNJZ0ppWWdkbUZzZFdWYmMzbHRTWFJsY21GMGIzSmRLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJwZEdWeVlYUnZjbFJ2UVhKeVlYa29kbUZzZFdWYmMzbHRTWFJsY21GMGIzSmRLQ2twTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnZG1GeUlIUmhaeUE5SUdkbGRGUmhaeWgyWVd4MVpTa3NYRzRnSUNBZ0lDQWdJQ0FnWm5WdVl5QTlJSFJoWnlBOVBTQnRZWEJVWVdjZ1B5QnRZWEJVYjBGeWNtRjVJRG9nS0hSaFp5QTlQU0J6WlhSVVlXY2dQeUJ6WlhSVWIwRnljbUY1SURvZ2RtRnNkV1Z6S1R0Y2JseHVJQ0FnSUNBZ2NtVjBkWEp1SUdaMWJtTW9kbUZzZFdVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnZiblpsY25SeklHQjJZV3gxWldBZ2RHOGdZU0JtYVc1cGRHVWdiblZ0WW1WeUxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU1USXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JNWVc1blhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdZMjl1ZG1WeWRDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdiblZ0WW1WeWZTQlNaWFIxY201eklIUm9aU0JqYjI1MlpYSjBaV1FnYm5WdFltVnlMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMblJ2Um1sdWFYUmxLRE11TWlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnTXk0eVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuUnZSbWx1YVhSbEtFNTFiV0psY2k1TlNVNWZWa0ZNVlVVcE8xeHVJQ0FnSUNBcUlDOHZJRDArSURWbExUTXlORnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTUwYjBacGJtbDBaU2hKYm1acGJtbDBlU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdNUzQzT1RjMk9UTXhNelE0TmpJek1UVTNaU3N6TURoY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWRHOUdhVzVwZEdVb0p6TXVNaWNwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRE11TWx4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJSFJ2Um1sdWFYUmxLSFpoYkhWbEtTQjdYRzRnSUNBZ0lDQnBaaUFvSVhaaGJIVmxLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIyWVd4MVpTQTlQVDBnTUNBL0lIWmhiSFZsSURvZ01EdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lIWmhiSFZsSUQwZ2RHOU9kVzFpWlhJb2RtRnNkV1VwTzF4dUlDQWdJQ0FnYVdZZ0tIWmhiSFZsSUQwOVBTQkpUa1pKVGtsVVdTQjhmQ0IyWVd4MVpTQTlQVDBnTFVsT1JrbE9TVlJaS1NCN1hHNGdJQ0FnSUNBZ0lIWmhjaUJ6YVdkdUlEMGdLSFpoYkhWbElEd2dNQ0EvSUMweElEb2dNU2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ6YVdkdUlDb2dUVUZZWDBsT1ZFVkhSVkk3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkbUZzZFdVZ1BUMDlJSFpoYkhWbElEOGdkbUZzZFdVZ09pQXdPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU52Ym5abGNuUnpJR0IyWVd4MVpXQWdkRzhnWVc0Z2FXNTBaV2RsY2k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUNvcVRtOTBaVG9xS2lCVWFHbHpJRzFsZEdodlpDQnBjeUJzYjI5elpXeDVJR0poYzJWa0lHOXVYRzRnSUNBZ0lDb2dXMkJVYjBsdWRHVm5aWEpnWFNob2RIUndPaTh2ZDNkM0xtVmpiV0V0YVc1MFpYSnVZWFJwYjI1aGJDNXZjbWN2WldOdFlTMHlOakl2Tnk0d0x5TnpaV010ZEc5cGJuUmxaMlZ5S1M1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0EwTGpBdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQk1ZVzVuWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCMllXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z1kyOXVkbVZ5ZEM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN2JuVnRZbVZ5ZlNCU1pYUjFjbTV6SUhSb1pTQmpiMjUyWlhKMFpXUWdhVzUwWldkbGNpNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NTBiMGx1ZEdWblpYSW9NeTR5S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUF6WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5SdlNXNTBaV2RsY2loT2RXMWlaWEl1VFVsT1gxWkJURlZGS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUF3WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5SdlNXNTBaV2RsY2loSmJtWnBibWwwZVNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnTVM0M09UYzJPVE14TXpRNE5qSXpNVFUzWlNzek1EaGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVkRzlKYm5SbFoyVnlLQ2N6TGpJbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBelhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnZEc5SmJuUmxaMlZ5S0haaGJIVmxLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ2RHOUdhVzVwZEdVb2RtRnNkV1VwTEZ4dUlDQWdJQ0FnSUNBZ0lISmxiV0ZwYm1SbGNpQTlJSEpsYzNWc2RDQWxJREU3WEc1Y2JpQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUWdQVDA5SUhKbGMzVnNkQ0EvSUNoeVpXMWhhVzVrWlhJZ1B5QnlaWE4xYkhRZ0xTQnlaVzFoYVc1a1pYSWdPaUJ5WlhOMWJIUXBJRG9nTUR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGIyNTJaWEowY3lCZ2RtRnNkV1ZnSUhSdklHRnVJR2x1ZEdWblpYSWdjM1ZwZEdGaWJHVWdabTl5SUhWelpTQmhjeUIwYUdVZ2JHVnVaM1JvSUc5bUlHRnVYRzRnSUNBZ0lDb2dZWEp5WVhrdGJHbHJaU0J2WW1wbFkzUXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXFLazV2ZEdVNktpb2dWR2hwY3lCdFpYUm9iMlFnYVhNZ1ltRnpaV1FnYjI1Y2JpQWdJQ0FnS2lCYllGUnZUR1Z1WjNSb1lGMG9hSFIwY0RvdkwyVmpiV0V0YVc1MFpYSnVZWFJwYjI1aGJDNXZjbWN2WldOdFlTMHlOakl2Tnk0d0x5TnpaV010ZEc5c1pXNW5kR2dwTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRFF1TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFeGhibWRjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCamIyNTJaWEowTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0dWRXMWlaWEo5SUZKbGRIVnlibk1nZEdobElHTnZiblpsY25SbFpDQnBiblJsWjJWeUxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuUnZUR1Z1WjNSb0tETXVNaWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdNMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTUwYjB4bGJtZDBhQ2hPZFcxaVpYSXVUVWxPWDFaQlRGVkZLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQXdYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMblJ2VEdWdVozUm9LRWx1Wm1sdWFYUjVLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQTBNamswT1RZM01qazFYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMblJ2VEdWdVozUm9LQ2N6TGpJbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBelhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnZEc5TVpXNW5kR2dvZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjJZV3gxWlNBL0lHSmhjMlZEYkdGdGNDaDBiMGx1ZEdWblpYSW9kbUZzZFdVcExDQXdMQ0JOUVZoZlFWSlNRVmxmVEVWT1IxUklLU0E2SURBN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyOXVkbVZ5ZEhNZ1lIWmhiSFZsWUNCMGJ5QmhJRzUxYldKbGNpNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBMExqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JNWVc1blhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzcWZTQjJZV3gxWlNCVWFHVWdkbUZzZFdVZ2RHOGdjSEp2WTJWemN5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdiblZ0WW1WeWZTQlNaWFIxY201eklIUm9aU0J1ZFcxaVpYSXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVkRzlPZFcxaVpYSW9NeTR5S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUF6TGpKY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWRHOU9kVzFpWlhJb1RuVnRZbVZ5TGsxSlRsOVdRVXhWUlNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnTldVdE16STBYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMblJ2VG5WdFltVnlLRWx1Wm1sdWFYUjVLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQkpibVpwYm1sMGVWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NTBiMDUxYldKbGNpZ25NeTR5SnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnTXk0eVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnZEc5T2RXMWlaWElvZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJR2xtSUNoMGVYQmxiMllnZG1Gc2RXVWdQVDBnSjI1MWJXSmxjaWNwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhaaGJIVmxPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdhV1lnS0dselUzbHRZbTlzS0haaGJIVmxLU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVGtGT08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLR2x6VDJKcVpXTjBLSFpoYkhWbEtTa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ2IzUm9aWElnUFNCMGVYQmxiMllnZG1Gc2RXVXVkbUZzZFdWUFppQTlQU0FuWm5WdVkzUnBiMjRuSUQ4Z2RtRnNkV1V1ZG1Gc2RXVlBaaWdwSURvZ2RtRnNkV1U3WEc0Z0lDQWdJQ0FnSUhaaGJIVmxJRDBnYVhOUFltcGxZM1FvYjNSb1pYSXBJRDhnS0c5MGFHVnlJQ3NnSnljcElEb2diM1JvWlhJN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlIWmhiSFZsSUNFOUlDZHpkSEpwYm1jbktTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjJZV3gxWlNBOVBUMGdNQ0EvSUhaaGJIVmxJRG9nSzNaaGJIVmxPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdkbUZzZFdVZ1BTQmlZWE5sVkhKcGJTaDJZV3gxWlNrN1hHNGdJQ0FnSUNCMllYSWdhWE5DYVc1aGNua2dQU0J5WlVselFtbHVZWEo1TG5SbGMzUW9kbUZzZFdVcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUNocGMwSnBibUZ5ZVNCOGZDQnlaVWx6VDJOMFlXd3VkR1Z6ZENoMllXeDFaU2twWEc0Z0lDQWdJQ0FnSUQ4Z1puSmxaVkJoY25ObFNXNTBLSFpoYkhWbExuTnNhV05sS0RJcExDQnBjMEpwYm1GeWVTQS9JRElnT2lBNEtWeHVJQ0FnSUNBZ0lDQTZJQ2h5WlVselFtRmtTR1Y0TG5SbGMzUW9kbUZzZFdVcElEOGdUa0ZPSURvZ0szWmhiSFZsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGIyNTJaWEowY3lCZ2RtRnNkV1ZnSUhSdklHRWdjR3hoYVc0Z2IySnFaV04wSUdac1lYUjBaVzVwYm1jZ2FXNW9aWEpwZEdWa0lHVnVkVzFsY21GaWJHVWdjM1J5YVc1blhHNGdJQ0FnSUNvZ2EyVjVaV1FnY0hKdmNHVnlkR2xsY3lCdlppQmdkbUZzZFdWZ0lIUnZJRzkzYmlCd2NtOXdaWEowYVdWeklHOW1JSFJvWlNCd2JHRnBiaUJ2WW1wbFkzUXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ015NHdMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVEdGdVoxeHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdkbUZzZFdVZ1ZHaGxJSFpoYkhWbElIUnZJR052Ym5abGNuUXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMDlpYW1WamRIMGdVbVYwZFhKdWN5QjBhR1VnWTI5dWRtVnlkR1ZrSUhCc1lXbHVJRzlpYW1WamRDNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1puVnVZM1JwYjI0Z1JtOXZLQ2tnZTF4dUlDQWdJQ0FxSUNBZ2RHaHBjeTVpSUQwZ01qdGNiaUFnSUNBZ0tpQjlYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkdiMjh1Y0hKdmRHOTBlWEJsTG1NZ1BTQXpPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVoYzNOcFoyNG9leUFuWVNjNklERWdmU3dnYm1WM0lFWnZieWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdleUFuWVNjNklERXNJQ2RpSnpvZ01pQjlYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbUZ6YzJsbmJpaDdJQ2RoSnpvZ01TQjlMQ0JmTG5SdlVHeGhhVzVQWW1wbFkzUW9ibVYzSUVadmJ5a3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIc2dKMkVuT2lBeExDQW5ZaWM2SURJc0lDZGpKem9nTXlCOVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnZEc5UWJHRnBiazlpYW1WamRDaDJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdOdmNIbFBZbXBsWTNRb2RtRnNkV1VzSUd0bGVYTkpiaWgyWVd4MVpTa3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU52Ym5abGNuUnpJR0IyWVd4MVpXQWdkRzhnWVNCellXWmxJR2x1ZEdWblpYSXVJRUVnYzJGbVpTQnBiblJsWjJWeUlHTmhiaUJpWlNCamIyMXdZWEpsWkNCaGJtUmNiaUFnSUNBZ0tpQnlaWEJ5WlhObGJuUmxaQ0JqYjNKeVpXTjBiSGt1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR3TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1RHRnVaMXh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdLbjBnZG1Gc2RXVWdWR2hsSUhaaGJIVmxJSFJ2SUdOdmJuWmxjblF1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTI1MWJXSmxjbjBnVW1WMGRYSnVjeUIwYUdVZ1kyOXVkbVZ5ZEdWa0lHbHVkR1ZuWlhJdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWRHOVRZV1psU1c1MFpXZGxjaWd6TGpJcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUROY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWRHOVRZV1psU1c1MFpXZGxjaWhPZFcxaVpYSXVUVWxPWDFaQlRGVkZLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQXdYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMblJ2VTJGbVpVbHVkR1ZuWlhJb1NXNW1hVzVwZEhrcE8xeHVJQ0FnSUNBcUlDOHZJRDArSURrd01EY3hPVGt5TlRRM05EQTVPVEZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1ZEc5VFlXWmxTVzUwWldkbGNpZ25NeTR5SnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnTTF4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJSFJ2VTJGbVpVbHVkR1ZuWlhJb2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUIyWVd4MVpWeHVJQ0FnSUNBZ0lDQS9JR0poYzJWRGJHRnRjQ2gwYjBsdWRHVm5aWElvZG1Gc2RXVXBMQ0F0VFVGWVgxTkJSa1ZmU1U1VVJVZEZVaXdnVFVGWVgxTkJSa1ZmU1U1VVJVZEZVaWxjYmlBZ0lDQWdJQ0FnT2lBb2RtRnNkV1VnUFQwOUlEQWdQeUIyWVd4MVpTQTZJREFwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOdmJuWmxjblJ6SUdCMllXeDFaV0FnZEc4Z1lTQnpkSEpwYm1jdUlFRnVJR1Z0Y0hSNUlITjBjbWx1WnlCcGN5QnlaWFIxY201bFpDQm1iM0lnWUc1MWJHeGdYRzRnSUNBZ0lDb2dZVzVrSUdCMWJtUmxabWx1WldSZ0lIWmhiSFZsY3k0Z1ZHaGxJSE5wWjI0Z2IyWWdZQzB3WUNCcGN5QndjbVZ6WlhKMlpXUXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ05DNHdMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVEdGdVoxeHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdkbUZzZFdVZ1ZHaGxJSFpoYkhWbElIUnZJR052Ym5abGNuUXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlM04wY21sdVozMGdVbVYwZFhKdWN5QjBhR1VnWTI5dWRtVnlkR1ZrSUhOMGNtbHVaeTVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTUwYjFOMGNtbHVaeWh1ZFd4c0tUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBbkoxeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NTBiMU4wY21sdVp5Z3RNQ2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKeTB3SjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1MGIxTjBjbWx1WnloYk1Td2dNaXdnTTEwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUNjeExESXNNeWRjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQjBiMU4wY21sdVp5aDJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhaaGJIVmxJRDA5SUc1MWJHd2dQeUFuSnlBNklHSmhjMlZVYjFOMGNtbHVaeWgyWVd4MVpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3RMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHFMMXh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUVhOemFXZHVjeUJ2ZDI0Z1pXNTFiV1Z5WVdKc1pTQnpkSEpwYm1jZ2EyVjVaV1FnY0hKdmNHVnlkR2xsY3lCdlppQnpiM1Z5WTJVZ2IySnFaV04wY3lCMGJ5QjBhR1ZjYmlBZ0lDQWdLaUJrWlhOMGFXNWhkR2x2YmlCdlltcGxZM1F1SUZOdmRYSmpaU0J2WW1wbFkzUnpJR0Z5WlNCaGNIQnNhV1ZrSUdaeWIyMGdiR1ZtZENCMGJ5QnlhV2RvZEM1Y2JpQWdJQ0FnS2lCVGRXSnpaWEYxWlc1MElITnZkWEpqWlhNZ2IzWmxjbmR5YVhSbElIQnliM0JsY25SNUlHRnpjMmxuYm0xbGJuUnpJRzltSUhCeVpYWnBiM1Z6SUhOdmRYSmpaWE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUFxS2s1dmRHVTZLaW9nVkdocGN5QnRaWFJvYjJRZ2JYVjBZWFJsY3lCZ2IySnFaV04wWUNCaGJtUWdhWE1nYkc5dmMyVnNlU0JpWVhObFpDQnZibHh1SUNBZ0lDQXFJRnRnVDJKcVpXTjBMbUZ6YzJsbmJtQmRLR2gwZEhCek9pOHZiV1J1TG1sdkwwOWlhbVZqZEM5aGMzTnBaMjRwTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJREF1TVRBdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQlBZbXBsWTNSY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjJKcVpXTjBJRlJvWlNCa1pYTjBhVzVoZEdsdmJpQnZZbXBsWTNRdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzdUxpNVBZbXBsWTNSOUlGdHpiM1Z5WTJWelhTQlVhR1VnYzI5MWNtTmxJRzlpYW1WamRITXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMDlpYW1WamRIMGdVbVYwZFhKdWN5QmdiMkpxWldOMFlDNWNiaUFnSUNBZ0tpQkFjMlZsSUY4dVlYTnphV2R1U1c1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWm5WdVkzUnBiMjRnUm05dktDa2dlMXh1SUNBZ0lDQXFJQ0FnZEdocGN5NWhJRDBnTVR0Y2JpQWdJQ0FnS2lCOVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCbWRXNWpkR2x2YmlCQ1lYSW9LU0I3WEc0Z0lDQWdJQ29nSUNCMGFHbHpMbU1nUFNBek8xeHVJQ0FnSUNBcUlIMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFWnZieTV3Y205MGIzUjVjR1V1WWlBOUlESTdYRzRnSUNBZ0lDb2dRbUZ5TG5CeWIzUnZkSGx3WlM1a0lEMGdORHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1WVhOemFXZHVLSHNnSjJFbk9pQXdJSDBzSUc1bGR5QkdiMjhzSUc1bGR5QkNZWElwTzF4dUlDQWdJQ0FxSUM4dklEMCtJSHNnSjJFbk9pQXhMQ0FuWXljNklETWdmVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIWmhjaUJoYzNOcFoyNGdQU0JqY21WaGRHVkJjM05wWjI1bGNpaG1kVzVqZEdsdmJpaHZZbXBsWTNRc0lITnZkWEpqWlNrZ2UxeHVJQ0FnSUNBZ2FXWWdLR2x6VUhKdmRHOTBlWEJsS0hOdmRYSmpaU2tnZkh3Z2FYTkJjbkpoZVV4cGEyVW9jMjkxY21ObEtTa2dlMXh1SUNBZ0lDQWdJQ0JqYjNCNVQySnFaV04wS0hOdmRYSmpaU3dnYTJWNWN5aHpiM1Z5WTJVcExDQnZZbXBsWTNRcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCbWIzSWdLSFpoY2lCclpYa2dhVzRnYzI5MWNtTmxLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaG9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLSE52ZFhKalpTd2dhMlY1S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR0Z6YzJsbmJsWmhiSFZsS0c5aWFtVmpkQ3dnYTJWNUxDQnpiM1Z5WTJWYmEyVjVYU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9hWE1nYldWMGFHOWtJR2x6SUd4cGEyVWdZRjh1WVhOemFXZHVZQ0JsZUdObGNIUWdkR2hoZENCcGRDQnBkR1Z5WVhSbGN5QnZkbVZ5SUc5M2JpQmhibVJjYmlBZ0lDQWdLaUJwYm1obGNtbDBaV1FnYzI5MWNtTmxJSEJ5YjNCbGNuUnBaWE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUFxS2s1dmRHVTZLaW9nVkdocGN5QnRaWFJvYjJRZ2JYVjBZWFJsY3lCZ2IySnFaV04wWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0EwTGpBdU1GeHVJQ0FnSUNBcUlFQmhiR2xoY3lCbGVIUmxibVJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVDJKcVpXTjBYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOWlhbVZqZENCVWFHVWdaR1Z6ZEdsdVlYUnBiMjRnYjJKcVpXTjBMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdMaTR1VDJKcVpXTjBmU0JiYzI5MWNtTmxjMTBnVkdobElITnZkWEpqWlNCdlltcGxZM1J6TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0UFltcGxZM1I5SUZKbGRIVnlibk1nWUc5aWFtVmpkR0F1WEc0Z0lDQWdJQ29nUUhObFpTQmZMbUZ6YzJsbmJseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCbWRXNWpkR2x2YmlCR2IyOG9LU0I3WEc0Z0lDQWdJQ29nSUNCMGFHbHpMbUVnUFNBeE8xeHVJQ0FnSUNBcUlIMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlHWjFibU4wYVc5dUlFSmhjaWdwSUh0Y2JpQWdJQ0FnS2lBZ0lIUm9hWE11WXlBOUlETTdYRzRnSUNBZ0lDb2dmVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dSbTl2TG5CeWIzUnZkSGx3WlM1aUlEMGdNanRjYmlBZ0lDQWdLaUJDWVhJdWNISnZkRzkwZVhCbExtUWdQU0EwTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1aGMzTnBaMjVKYmloN0lDZGhKem9nTUNCOUxDQnVaWGNnUm05dkxDQnVaWGNnUW1GeUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCN0lDZGhKem9nTVN3Z0oySW5PaUF5TENBbll5YzZJRE1zSUNka0p6b2dOQ0I5WEc0Z0lDQWdJQ292WEc0Z0lDQWdkbUZ5SUdGemMybG5ia2x1SUQwZ1kzSmxZWFJsUVhOemFXZHVaWElvWm5WdVkzUnBiMjRvYjJKcVpXTjBMQ0J6YjNWeVkyVXBJSHRjYmlBZ0lDQWdJR052Y0hsUFltcGxZM1FvYzI5MWNtTmxMQ0JyWlhselNXNG9jMjkxY21ObEtTd2diMkpxWldOMEtUdGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvYVhNZ2JXVjBhRzlrSUdseklHeHBhMlVnWUY4dVlYTnphV2R1U1c1Z0lHVjRZMlZ3ZENCMGFHRjBJR2wwSUdGalkyVndkSE1nWUdOMWMzUnZiV2w2WlhKZ1hHNGdJQ0FnSUNvZ2QyaHBZMmdnYVhNZ2FXNTJiMnRsWkNCMGJ5QndjbTlrZFdObElIUm9aU0JoYzNOcFoyNWxaQ0IyWVd4MVpYTXVJRWxtSUdCamRYTjBiMjFwZW1WeVlDQnlaWFIxY201elhHNGdJQ0FnSUNvZ1lIVnVaR1ZtYVc1bFpHQXNJR0Z6YzJsbmJtMWxiblFnYVhNZ2FHRnVaR3hsWkNCaWVTQjBhR1VnYldWMGFHOWtJR2x1YzNSbFlXUXVJRlJvWlNCZ1kzVnpkRzl0YVhwbGNtQmNiaUFnSUNBZ0tpQnBjeUJwYm5admEyVmtJSGRwZEdnZ1ptbDJaU0JoY21kMWJXVnVkSE02SUNodlltcFdZV3gxWlN3Z2MzSmpWbUZzZFdVc0lHdGxlU3dnYjJKcVpXTjBMQ0J6YjNWeVkyVXBMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dLaXBPYjNSbE9pb3FJRlJvYVhNZ2JXVjBhRzlrSUcxMWRHRjBaWE1nWUc5aWFtVmpkR0F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR3TGpCY2JpQWdJQ0FnS2lCQVlXeHBZWE1nWlhoMFpXNWtWMmwwYUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCUFltcGxZM1JjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiMkpxWldOMElGUm9aU0JrWlhOMGFXNWhkR2x2YmlCdlltcGxZM1F1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHN1TGk1UFltcGxZM1I5SUhOdmRYSmpaWE1nVkdobElITnZkWEpqWlNCdlltcGxZM1J6TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUZ0amRYTjBiMjFwZW1WeVhTQlVhR1VnWm5WdVkzUnBiMjRnZEc4Z1kzVnpkRzl0YVhwbElHRnpjMmxuYm1Wa0lIWmhiSFZsY3k1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1QySnFaV04wZlNCU1pYUjFjbTV6SUdCdlltcGxZM1JnTGx4dUlDQWdJQ0FxSUVCelpXVWdYeTVoYzNOcFoyNVhhWFJvWEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJR1oxYm1OMGFXOXVJR04xYzNSdmJXbDZaWElvYjJKcVZtRnNkV1VzSUhOeVkxWmhiSFZsS1NCN1hHNGdJQ0FnSUNvZ0lDQnlaWFIxY200Z1h5NXBjMVZ1WkdWbWFXNWxaQ2h2WW1wV1lXeDFaU2tnUHlCemNtTldZV3gxWlNBNklHOWlhbFpoYkhWbE8xeHVJQ0FnSUNBcUlIMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlIWmhjaUJrWldaaGRXeDBjeUE5SUY4dWNHRnlkR2xoYkZKcFoyaDBLRjh1WVhOemFXZHVTVzVYYVhSb0xDQmpkWE4wYjIxcGVtVnlLVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJR1JsWm1GMWJIUnpLSHNnSjJFbk9pQXhJSDBzSUhzZ0oySW5PaUF5SUgwc0lIc2dKMkVuT2lBeklIMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIc2dKMkVuT2lBeExDQW5ZaWM2SURJZ2ZWeHVJQ0FnSUNBcUwxeHVJQ0FnSUhaaGNpQmhjM05wWjI1SmJsZHBkR2dnUFNCamNtVmhkR1ZCYzNOcFoyNWxjaWhtZFc1amRHbHZiaWh2WW1wbFkzUXNJSE52ZFhKalpTd2djM0pqU1c1a1pYZ3NJR04xYzNSdmJXbDZaWElwSUh0Y2JpQWdJQ0FnSUdOdmNIbFBZbXBsWTNRb2MyOTFjbU5sTENCclpYbHpTVzRvYzI5MWNtTmxLU3dnYjJKcVpXTjBMQ0JqZFhOMGIyMXBlbVZ5S1R0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9hWE1nYldWMGFHOWtJR2x6SUd4cGEyVWdZRjh1WVhOemFXZHVZQ0JsZUdObGNIUWdkR2hoZENCcGRDQmhZMk5sY0hSeklHQmpkWE4wYjIxcGVtVnlZRnh1SUNBZ0lDQXFJSGRvYVdOb0lHbHpJR2x1ZG05clpXUWdkRzhnY0hKdlpIVmpaU0IwYUdVZ1lYTnphV2R1WldRZ2RtRnNkV1Z6TGlCSlppQmdZM1Z6ZEc5dGFYcGxjbUFnY21WMGRYSnVjMXh1SUNBZ0lDQXFJR0IxYm1SbFptbHVaV1JnTENCaGMzTnBaMjV0Wlc1MElHbHpJR2hoYm1Sc1pXUWdZbmtnZEdobElHMWxkR2h2WkNCcGJuTjBaV0ZrTGlCVWFHVWdZR04xYzNSdmJXbDZaWEpnWEc0Z0lDQWdJQ29nYVhNZ2FXNTJiMnRsWkNCM2FYUm9JR1pwZG1VZ1lYSm5kVzFsYm5Sek9pQW9iMkpxVm1Gc2RXVXNJSE55WTFaaGJIVmxMQ0JyWlhrc0lHOWlhbVZqZEN3Z2MyOTFjbU5sS1M1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUNvcVRtOTBaVG9xS2lCVWFHbHpJRzFsZEdodlpDQnRkWFJoZEdWeklHQnZZbXBsWTNSZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRTlpYW1WamRGeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGxZM1FnVkdobElHUmxjM1JwYm1GMGFXOXVJRzlpYW1WamRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5NHVMazlpYW1WamRIMGdjMjkxY21ObGN5QlVhR1VnYzI5MWNtTmxJRzlpYW1WamRITXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdXMk4xYzNSdmJXbDZaWEpkSUZSb1pTQm1kVzVqZEdsdmJpQjBieUJqZFhOMGIyMXBlbVVnWVhOemFXZHVaV1FnZG1Gc2RXVnpMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRQWW1wbFkzUjlJRkpsZEhWeWJuTWdZRzlpYW1WamRHQXVYRzRnSUNBZ0lDb2dRSE5sWlNCZkxtRnpjMmxuYmtsdVYybDBhRnh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQm1kVzVqZEdsdmJpQmpkWE4wYjIxcGVtVnlLRzlpYWxaaGJIVmxMQ0J6Y21OV1lXeDFaU2tnZTF4dUlDQWdJQ0FxSUNBZ2NtVjBkWEp1SUY4dWFYTlZibVJsWm1sdVpXUW9iMkpxVm1Gc2RXVXBJRDhnYzNKalZtRnNkV1VnT2lCdlltcFdZV3gxWlR0Y2JpQWdJQ0FnS2lCOVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdaR1ZtWVhWc2RITWdQU0JmTG5CaGNuUnBZV3hTYVdkb2RDaGZMbUZ6YzJsbmJsZHBkR2dzSUdOMWMzUnZiV2w2WlhJcE8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1pHVm1ZWFZzZEhNb2V5QW5ZU2M2SURFZ2ZTd2dleUFuWWljNklESWdmU3dnZXlBbllTYzZJRE1nZlNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZXlBbllTYzZJREVzSUNkaUp6b2dNaUI5WEc0Z0lDQWdJQ292WEc0Z0lDQWdkbUZ5SUdGemMybG5ibGRwZEdnZ1BTQmpjbVZoZEdWQmMzTnBaMjVsY2lobWRXNWpkR2x2YmlodlltcGxZM1FzSUhOdmRYSmpaU3dnYzNKalNXNWtaWGdzSUdOMWMzUnZiV2w2WlhJcElIdGNiaUFnSUNBZ0lHTnZjSGxQWW1wbFkzUW9jMjkxY21ObExDQnJaWGx6S0hOdmRYSmpaU2tzSUc5aWFtVmpkQ3dnWTNWemRHOXRhWHBsY2lrN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRnVJR0Z5Y21GNUlHOW1JSFpoYkhWbGN5QmpiM0p5WlhOd2IyNWthVzVuSUhSdklHQndZWFJvYzJBZ2IyWWdZRzlpYW1WamRHQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01TNHdMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVDJKcVpXTjBYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOWlhbVZqZENCVWFHVWdiMkpxWldOMElIUnZJR2wwWlhKaGRHVWdiM1psY2k1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXk0dUxpaHpkSEpwYm1kOGMzUnlhVzVuVzEwcGZTQmJjR0YwYUhOZElGUm9aU0J3Y205d1pYSjBlU0J3WVhSb2N5QjBieUJ3YVdOckxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdEJjbkpoZVgwZ1VtVjBkWEp1Y3lCMGFHVWdjR2xqYTJWa0lIWmhiSFZsY3k1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlHOWlhbVZqZENBOUlIc2dKMkVuT2lCYmV5QW5ZaWM2SUhzZ0oyTW5PaUF6SUgwZ2ZTd2dORjBnZlR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dVlYUW9iMkpxWldOMExDQmJKMkZiTUYwdVlpNWpKeXdnSjJGYk1WMG5YU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXek1zSURSZFhHNGdJQ0FnSUNvdlhHNGdJQ0FnZG1GeUlHRjBJRDBnWm14aGRGSmxjM1FvWW1GelpVRjBLVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOeVpXRjBaWE1nWVc0Z2IySnFaV04wSUhSb1lYUWdhVzVvWlhKcGRITWdabkp2YlNCMGFHVWdZSEJ5YjNSdmRIbHdaV0FnYjJKcVpXTjBMaUJKWmlCaFhHNGdJQ0FnSUNvZ1lIQnliM0JsY25ScFpYTmdJRzlpYW1WamRDQnBjeUJuYVhabGJpd2dhWFJ6SUc5M2JpQmxiblZ0WlhKaFlteGxJSE4wY21sdVp5QnJaWGxsWkNCd2NtOXdaWEowYVdWelhHNGdJQ0FnSUNvZ1lYSmxJR0Z6YzJsbmJtVmtJSFJ2SUhSb1pTQmpjbVZoZEdWa0lHOWlhbVZqZEM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F5TGpNdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQlBZbXBsWTNSY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnY0hKdmRHOTBlWEJsSUZSb1pTQnZZbXBsWTNRZ2RHOGdhVzVvWlhKcGRDQm1jbTl0TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0JiY0hKdmNHVnlkR2xsYzEwZ1ZHaGxJSEJ5YjNCbGNuUnBaWE1nZEc4Z1lYTnphV2R1SUhSdklIUm9aU0J2WW1wbFkzUXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMDlpYW1WamRIMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHOWlhbVZqZEM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWm5WdVkzUnBiMjRnVTJoaGNHVW9LU0I3WEc0Z0lDQWdJQ29nSUNCMGFHbHpMbmdnUFNBd08xeHVJQ0FnSUNBcUlDQWdkR2hwY3k1NUlEMGdNRHRjYmlBZ0lDQWdLaUI5WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJtZFc1amRHbHZiaUJEYVhKamJHVW9LU0I3WEc0Z0lDQWdJQ29nSUNCVGFHRndaUzVqWVd4c0tIUm9hWE1wTzF4dUlDQWdJQ0FxSUgxY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVOcGNtTnNaUzV3Y205MGIzUjVjR1VnUFNCZkxtTnlaV0YwWlNoVGFHRndaUzV3Y205MGIzUjVjR1VzSUh0Y2JpQWdJQ0FnS2lBZ0lDZGpiMjV6ZEhKMVkzUnZjaWM2SUVOcGNtTnNaVnh1SUNBZ0lDQXFJSDBwTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlHTnBjbU5zWlNBOUlHNWxkeUJEYVhKamJHVTdYRzRnSUNBZ0lDb2dZMmx5WTJ4bElHbHVjM1JoYm1ObGIyWWdRMmx5WTJ4bE8xeHVJQ0FnSUNBcUlDOHZJRDArSUhSeWRXVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlHTnBjbU5zWlNCcGJuTjBZVzVqWlc5bUlGTm9ZWEJsTzF4dUlDQWdJQ0FxSUM4dklEMCtJSFJ5ZFdWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJqY21WaGRHVW9jSEp2ZEc5MGVYQmxMQ0J3Y205d1pYSjBhV1Z6S1NCN1hHNGdJQ0FnSUNCMllYSWdjbVZ6ZFd4MElEMGdZbUZ6WlVOeVpXRjBaU2h3Y205MGIzUjVjR1VwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSEJ5YjNCbGNuUnBaWE1nUFQwZ2JuVnNiQ0EvSUhKbGMzVnNkQ0E2SUdKaGMyVkJjM05wWjI0b2NtVnpkV3gwTENCd2NtOXdaWEowYVdWektUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkJjM05wWjI1eklHOTNiaUJoYm1RZ2FXNW9aWEpwZEdWa0lHVnVkVzFsY21GaWJHVWdjM1J5YVc1bklHdGxlV1ZrSUhCeWIzQmxjblJwWlhNZ2IyWWdjMjkxY21ObFhHNGdJQ0FnSUNvZ2IySnFaV04wY3lCMGJ5QjBhR1VnWkdWemRHbHVZWFJwYjI0Z2IySnFaV04wSUdadmNpQmhiR3dnWkdWemRHbHVZWFJwYjI0Z2NISnZjR1Z5ZEdsbGN5QjBhR0YwWEc0Z0lDQWdJQ29nY21WemIyeDJaU0IwYnlCZ2RXNWtaV1pwYm1Wa1lDNGdVMjkxY21ObElHOWlhbVZqZEhNZ1lYSmxJR0Z3Y0d4cFpXUWdabkp2YlNCc1pXWjBJSFJ2SUhKcFoyaDBMbHh1SUNBZ0lDQXFJRTl1WTJVZ1lTQndjbTl3WlhKMGVTQnBjeUJ6WlhRc0lHRmtaR2wwYVc5dVlXd2dkbUZzZFdWeklHOW1JSFJvWlNCellXMWxJSEJ5YjNCbGNuUjVJR0Z5WlNCcFoyNXZjbVZrTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nS2lwT2IzUmxPaW9xSUZSb2FYTWdiV1YwYUc5a0lHMTFkR0YwWlhNZ1lHOWlhbVZqZEdBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUhOcGJtTmxJREF1TVM0d1hHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dUMkpxWldOMFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5aWFtVmpkQ0JVYUdVZ1pHVnpkR2x1WVhScGIyNGdiMkpxWldOMExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN0xpNHVUMkpxWldOMGZTQmJjMjkxY21ObGMxMGdWR2hsSUhOdmRYSmpaU0J2WW1wbFkzUnpMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRQWW1wbFkzUjlJRkpsZEhWeWJuTWdZRzlpYW1WamRHQXVYRzRnSUNBZ0lDb2dRSE5sWlNCZkxtUmxabUYxYkhSelJHVmxjRnh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbVJsWm1GMWJIUnpLSHNnSjJFbk9pQXhJSDBzSUhzZ0oySW5PaUF5SUgwc0lIc2dKMkVuT2lBeklIMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIc2dKMkVuT2lBeExDQW5ZaWM2SURJZ2ZWeHVJQ0FnSUNBcUwxeHVJQ0FnSUhaaGNpQmtaV1poZFd4MGN5QTlJR0poYzJWU1pYTjBLR1oxYm1OMGFXOXVLRzlpYW1WamRDd2djMjkxY21ObGN5a2dlMXh1SUNBZ0lDQWdiMkpxWldOMElEMGdUMkpxWldOMEtHOWlhbVZqZENrN1hHNWNiaUFnSUNBZ0lIWmhjaUJwYm1SbGVDQTlJQzB4TzF4dUlDQWdJQ0FnZG1GeUlHeGxibWQwYUNBOUlITnZkWEpqWlhNdWJHVnVaM1JvTzF4dUlDQWdJQ0FnZG1GeUlHZDFZWEprSUQwZ2JHVnVaM1JvSUQ0Z01pQS9JSE52ZFhKalpYTmJNbDBnT2lCMWJtUmxabWx1WldRN1hHNWNiaUFnSUNBZ0lHbG1JQ2huZFdGeVpDQW1KaUJwYzBsMFpYSmhkR1ZsUTJGc2JDaHpiM1Z5WTJWeld6QmRMQ0J6YjNWeVkyVnpXekZkTENCbmRXRnlaQ2twSUh0Y2JpQWdJQ0FnSUNBZ2JHVnVaM1JvSUQwZ01UdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdkMmhwYkdVZ0tDc3JhVzVrWlhnZ1BDQnNaVzVuZEdncElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUhOdmRYSmpaU0E5SUhOdmRYSmpaWE5iYVc1a1pYaGRPMXh1SUNBZ0lDQWdJQ0IyWVhJZ2NISnZjSE1nUFNCclpYbHpTVzRvYzI5MWNtTmxLVHRjYmlBZ0lDQWdJQ0FnZG1GeUlIQnliM0J6U1c1a1pYZ2dQU0F0TVR0Y2JpQWdJQ0FnSUNBZ2RtRnlJSEJ5YjNCelRHVnVaM1JvSUQwZ2NISnZjSE11YkdWdVozUm9PMXh1WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2dySzNCeWIzQnpTVzVrWlhnZ1BDQndjbTl3YzB4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lIWmhjaUJyWlhrZ1BTQndjbTl3YzF0d2NtOXdjMGx1WkdWNFhUdGNiaUFnSUNBZ0lDQWdJQ0IyWVhJZ2RtRnNkV1VnUFNCdlltcGxZM1JiYTJWNVhUdGNibHh1SUNBZ0lDQWdJQ0FnSUdsbUlDaDJZV3gxWlNBOVBUMGdkVzVrWldacGJtVmtJSHg4WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ2hsY1NoMllXeDFaU3dnYjJKcVpXTjBVSEp2ZEc5YmEyVjVYU2tnSmlZZ0lXaGhjMDkzYmxCeWIzQmxjblI1TG1OaGJHd29iMkpxWldOMExDQnJaWGtwS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYjJKcVpXTjBXMnRsZVYwZ1BTQnpiM1Z5WTJWYmEyVjVYVHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdjbVYwZFhKdUlHOWlhbVZqZER0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9hWE1nYldWMGFHOWtJR2x6SUd4cGEyVWdZRjh1WkdWbVlYVnNkSE5nSUdWNFkyVndkQ0IwYUdGMElHbDBJSEpsWTNWeWMybDJaV3g1SUdGemMybG5ibk5jYmlBZ0lDQWdLaUJrWldaaGRXeDBJSEJ5YjNCbGNuUnBaWE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUFxS2s1dmRHVTZLaW9nVkdocGN5QnRaWFJvYjJRZ2JYVjBZWFJsY3lCZ2IySnFaV04wWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F6TGpFd0xqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dUMkpxWldOMFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5aWFtVmpkQ0JVYUdVZ1pHVnpkR2x1WVhScGIyNGdiMkpxWldOMExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN0xpNHVUMkpxWldOMGZTQmJjMjkxY21ObGMxMGdWR2hsSUhOdmRYSmpaU0J2WW1wbFkzUnpMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRQWW1wbFkzUjlJRkpsZEhWeWJuTWdZRzlpYW1WamRHQXVYRzRnSUNBZ0lDb2dRSE5sWlNCZkxtUmxabUYxYkhSelhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dVpHVm1ZWFZzZEhORVpXVndLSHNnSjJFbk9pQjdJQ2RpSnpvZ01pQjlJSDBzSUhzZ0oyRW5PaUI3SUNkaUp6b2dNU3dnSjJNbk9pQXpJSDBnZlNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZXlBbllTYzZJSHNnSjJJbk9pQXlMQ0FuWXljNklETWdmU0I5WEc0Z0lDQWdJQ292WEc0Z0lDQWdkbUZ5SUdSbFptRjFiSFJ6UkdWbGNDQTlJR0poYzJWU1pYTjBLR1oxYm1OMGFXOXVLR0Z5WjNNcElIdGNiaUFnSUNBZ0lHRnlaM011Y0hWemFDaDFibVJsWm1sdVpXUXNJR04xYzNSdmJVUmxabUYxYkhSelRXVnlaMlVwTzF4dUlDQWdJQ0FnY21WMGRYSnVJR0Z3Y0d4NUtHMWxjbWRsVjJsMGFDd2dkVzVrWldacGJtVmtMQ0JoY21kektUdGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvYVhNZ2JXVjBhRzlrSUdseklHeHBhMlVnWUY4dVptbHVaR0FnWlhoalpYQjBJSFJvWVhRZ2FYUWdjbVYwZFhKdWN5QjBhR1VnYTJWNUlHOW1JSFJvWlNCbWFYSnpkRnh1SUNBZ0lDQXFJR1ZzWlcxbGJuUWdZSEJ5WldScFkyRjBaV0FnY21WMGRYSnVjeUIwY25WMGFIa2dabTl5SUdsdWMzUmxZV1FnYjJZZ2RHaGxJR1ZzWlcxbGJuUWdhWFJ6Wld4bUxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURFdU1TNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRTlpYW1WamRGeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGxZM1FnVkdobElHOWlhbVZqZENCMGJ5QnBibk53WldOMExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlGdHdjbVZrYVdOaGRHVTlYeTVwWkdWdWRHbDBlVjBnVkdobElHWjFibU4wYVc5dUlHbHVkbTlyWldRZ2NHVnlJR2wwWlhKaGRHbHZiaTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3YzNSeWFXNW5mSFZ1WkdWbWFXNWxaSDBnVW1WMGRYSnVjeUIwYUdVZ2EyVjVJRzltSUhSb1pTQnRZWFJqYUdWa0lHVnNaVzFsYm5Rc1hHNGdJQ0FnSUNvZ0lHVnNjMlVnWUhWdVpHVm1hVzVsWkdBdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQjFjMlZ5Y3lBOUlIdGNiaUFnSUNBZ0tpQWdJQ2RpWVhKdVpYa25PaUFnZXlBbllXZGxKem9nTXpZc0lDZGhZM1JwZG1Vbk9pQjBjblZsSUgwc1hHNGdJQ0FnSUNvZ0lDQW5abkpsWkNjNklDQWdJSHNnSjJGblpTYzZJRFF3TENBbllXTjBhWFpsSnpvZ1ptRnNjMlVnZlN4Y2JpQWdJQ0FnS2lBZ0lDZHdaV0ppYkdWekp6b2dleUFuWVdkbEp6b2dNU3dnSUNkaFkzUnBkbVVuT2lCMGNuVmxJSDFjYmlBZ0lDQWdLaUI5TzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1bWFXNWtTMlY1S0hWelpYSnpMQ0JtZFc1amRHbHZiaWh2S1NCN0lISmxkSFZ5YmlCdkxtRm5aU0E4SURRd095QjlLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQW5ZbUZ5Ym1WNUp5QW9hWFJsY21GMGFXOXVJRzl5WkdWeUlHbHpJRzV2ZENCbmRXRnlZVzUwWldWa0tWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdWR2hsSUdCZkxtMWhkR05vWlhOZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMbVpwYm1STFpYa29kWE5sY25Nc0lIc2dKMkZuWlNjNklERXNJQ2RoWTNScGRtVW5PaUIwY25WbElIMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lDZHdaV0ppYkdWekoxeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdWR2hsSUdCZkxtMWhkR05vWlhOUWNtOXdaWEowZVdBZ2FYUmxjbUYwWldVZ2MyaHZjblJvWVc1a0xseHVJQ0FnSUNBcUlGOHVabWx1WkV0bGVTaDFjMlZ5Y3l3Z1d5ZGhZM1JwZG1VbkxDQm1ZV3h6WlYwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUNkbWNtVmtKMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dMeThnVkdobElHQmZMbkJ5YjNCbGNuUjVZQ0JwZEdWeVlYUmxaU0J6YUc5eWRHaGhibVF1WEc0Z0lDQWdJQ29nWHk1bWFXNWtTMlY1S0hWelpYSnpMQ0FuWVdOMGFYWmxKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMkpoY201bGVTZGNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCbWFXNWtTMlY1S0c5aWFtVmpkQ3dnY0hKbFpHbGpZWFJsS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWW1GelpVWnBibVJMWlhrb2IySnFaV04wTENCblpYUkpkR1Z5WVhSbFpTaHdjbVZrYVdOaGRHVXNJRE1wTENCaVlYTmxSbTl5VDNkdUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR2x6SUcxbGRHaHZaQ0JwY3lCc2FXdGxJR0JmTG1acGJtUkxaWGxnSUdWNFkyVndkQ0IwYUdGMElHbDBJR2wwWlhKaGRHVnpJRzkyWlhJZ1pXeGxiV1Z1ZEhNZ2IyWmNiaUFnSUNBZ0tpQmhJR052Ykd4bFkzUnBiMjRnYVc0Z2RHaGxJRzl3Y0c5emFYUmxJRzl5WkdWeUxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURJdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRTlpYW1WamRGeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGxZM1FnVkdobElHOWlhbVZqZENCMGJ5QnBibk53WldOMExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlGdHdjbVZrYVdOaGRHVTlYeTVwWkdWdWRHbDBlVjBnVkdobElHWjFibU4wYVc5dUlHbHVkbTlyWldRZ2NHVnlJR2wwWlhKaGRHbHZiaTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3YzNSeWFXNW5mSFZ1WkdWbWFXNWxaSDBnVW1WMGRYSnVjeUIwYUdVZ2EyVjVJRzltSUhSb1pTQnRZWFJqYUdWa0lHVnNaVzFsYm5Rc1hHNGdJQ0FnSUNvZ0lHVnNjMlVnWUhWdVpHVm1hVzVsWkdBdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQjFjMlZ5Y3lBOUlIdGNiaUFnSUNBZ0tpQWdJQ2RpWVhKdVpYa25PaUFnZXlBbllXZGxKem9nTXpZc0lDZGhZM1JwZG1Vbk9pQjBjblZsSUgwc1hHNGdJQ0FnSUNvZ0lDQW5abkpsWkNjNklDQWdJSHNnSjJGblpTYzZJRFF3TENBbllXTjBhWFpsSnpvZ1ptRnNjMlVnZlN4Y2JpQWdJQ0FnS2lBZ0lDZHdaV0ppYkdWekp6b2dleUFuWVdkbEp6b2dNU3dnSUNkaFkzUnBkbVVuT2lCMGNuVmxJSDFjYmlBZ0lDQWdLaUI5TzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1bWFXNWtUR0Z6ZEV0bGVTaDFjMlZ5Y3l3Z1puVnVZM1JwYjI0b2J5a2dleUJ5WlhSMWNtNGdieTVoWjJVZ1BDQTBNRHNnZlNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnY21WMGRYSnVjeUFuY0dWaVlteGxjeWNnWVhOemRXMXBibWNnWUY4dVptbHVaRXRsZVdBZ2NtVjBkWEp1Y3lBblltRnlibVY1SjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z1ZHaGxJR0JmTG0xaGRHTm9aWE5nSUdsMFpYSmhkR1ZsSUhOb2IzSjBhR0Z1WkM1Y2JpQWdJQ0FnS2lCZkxtWnBibVJNWVhOMFMyVjVLSFZ6WlhKekxDQjdJQ2RoWjJVbk9pQXpOaXdnSjJGamRHbDJaU2M2SUhSeWRXVWdmU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMkpoY201bGVTZGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDOHZJRlJvWlNCZ1h5NXRZWFJqYUdWelVISnZjR1Z5ZEhsZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMbVpwYm1STVlYTjBTMlY1S0hWelpYSnpMQ0JiSjJGamRHbDJaU2NzSUdaaGJITmxYU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMlp5WldRblhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBdkx5QlVhR1VnWUY4dWNISnZjR1Z5ZEhsZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMbVpwYm1STVlYTjBTMlY1S0hWelpYSnpMQ0FuWVdOMGFYWmxKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKM0JsWW1Kc1pYTW5YRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1ptbHVaRXhoYzNSTFpYa29iMkpxWldOMExDQndjbVZrYVdOaGRHVXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmlZWE5sUm1sdVpFdGxlU2h2WW1wbFkzUXNJR2RsZEVsMFpYSmhkR1ZsS0hCeVpXUnBZMkYwWlN3Z015a3NJR0poYzJWR2IzSlBkMjVTYVdkb2RDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dTWFJsY21GMFpYTWdiM1psY2lCdmQyNGdZVzVrSUdsdWFHVnlhWFJsWkNCbGJuVnRaWEpoWW14bElITjBjbWx1WnlCclpYbGxaQ0J3Y205d1pYSjBhV1Z6SUc5bUlHRnVYRzRnSUNBZ0lDb2diMkpxWldOMElHRnVaQ0JwYm5admEyVnpJR0JwZEdWeVlYUmxaV0FnWm05eUlHVmhZMmdnY0hKdmNHVnlkSGt1SUZSb1pTQnBkR1Z5WVhSbFpTQnBjeUJwYm5admEyVmtYRzRnSUNBZ0lDb2dkMmwwYUNCMGFISmxaU0JoY21kMWJXVnVkSE02SUNoMllXeDFaU3dnYTJWNUxDQnZZbXBsWTNRcExpQkpkR1Z5WVhSbFpTQm1kVzVqZEdsdmJuTWdiV0Y1SUdWNGFYUmNiaUFnSUNBZ0tpQnBkR1Z5WVhScGIyNGdaV0Z5YkhrZ1lua2daWGh3YkdsamFYUnNlU0J5WlhSMWNtNXBibWNnWUdaaGJITmxZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXdMak11TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCUFltcGxZM1JjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiMkpxWldOMElGUm9aU0J2WW1wbFkzUWdkRzhnYVhSbGNtRjBaU0J2ZG1WeUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlGdHBkR1Z5WVhSbFpUMWZMbWxrWlc1MGFYUjVYU0JVYUdVZ1puVnVZM1JwYjI0Z2FXNTJiMnRsWkNCd1pYSWdhWFJsY21GMGFXOXVMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRQWW1wbFkzUjlJRkpsZEhWeWJuTWdZRzlpYW1WamRHQXVYRzRnSUNBZ0lDb2dRSE5sWlNCZkxtWnZja2x1VW1sbmFIUmNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1puVnVZM1JwYjI0Z1JtOXZLQ2tnZTF4dUlDQWdJQ0FxSUNBZ2RHaHBjeTVoSUQwZ01UdGNiaUFnSUNBZ0tpQWdJSFJvYVhNdVlpQTlJREk3WEc0Z0lDQWdJQ29nZlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUm05dkxuQnliM1J2ZEhsd1pTNWpJRDBnTXp0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dVptOXlTVzRvYm1WM0lFWnZieXdnWm5WdVkzUnBiMjRvZG1Gc2RXVXNJR3RsZVNrZ2UxeHVJQ0FnSUNBcUlDQWdZMjl1YzI5c1pTNXNiMmNvYTJWNUtUdGNiaUFnSUNBZ0tpQjlLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQk1iMmR6SUNkaEp5d2dKMkluTENCMGFHVnVJQ2RqSnlBb2FYUmxjbUYwYVc5dUlHOXlaR1Z5SUdseklHNXZkQ0JuZFdGeVlXNTBaV1ZrS1M1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJtYjNKSmJpaHZZbXBsWTNRc0lHbDBaWEpoZEdWbEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2IySnFaV04wSUQwOUlHNTFiR3hjYmlBZ0lDQWdJQ0FnUHlCdlltcGxZM1JjYmlBZ0lDQWdJQ0FnT2lCaVlYTmxSbTl5S0c5aWFtVmpkQ3dnWjJWMFNYUmxjbUYwWldVb2FYUmxjbUYwWldVc0lETXBMQ0JyWlhselNXNHBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvYVhNZ2JXVjBhRzlrSUdseklHeHBhMlVnWUY4dVptOXlTVzVnSUdWNFkyVndkQ0IwYUdGMElHbDBJR2wwWlhKaGRHVnpJRzkyWlhJZ2NISnZjR1Z5ZEdsbGN5QnZabHh1SUNBZ0lDQXFJR0J2WW1wbFkzUmdJR2x1SUhSb1pTQnZjSEJ2YzJsMFpTQnZjbVJsY2k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F5TGpBdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQlBZbXBsWTNSY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjJKcVpXTjBJRlJvWlNCdlltcGxZM1FnZEc4Z2FYUmxjbUYwWlNCdmRtVnlMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJRnRwZEdWeVlYUmxaVDFmTG1sa1pXNTBhWFI1WFNCVWFHVWdablZ1WTNScGIyNGdhVzUyYjJ0bFpDQndaWElnYVhSbGNtRjBhVzl1TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0UFltcGxZM1I5SUZKbGRIVnlibk1nWUc5aWFtVmpkR0F1WEc0Z0lDQWdJQ29nUUhObFpTQmZMbVp2Y2tsdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUdaMWJtTjBhVzl1SUVadmJ5Z3BJSHRjYmlBZ0lDQWdLaUFnSUhSb2FYTXVZU0E5SURFN1hHNGdJQ0FnSUNvZ0lDQjBhR2x6TG1JZ1BTQXlPMXh1SUNBZ0lDQXFJSDFjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRVp2Ynk1d2NtOTBiM1I1Y0dVdVl5QTlJRE03WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1admNrbHVVbWxuYUhRb2JtVjNJRVp2Ynl3Z1puVnVZM1JwYjI0b2RtRnNkV1VzSUd0bGVTa2dlMXh1SUNBZ0lDQXFJQ0FnWTI5dWMyOXNaUzVzYjJjb2EyVjVLVHRjYmlBZ0lDQWdLaUI5S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJNYjJkeklDZGpKeXdnSjJJbkxDQjBhR1Z1SUNkaEp5QmhjM04xYldsdVp5QmdYeTVtYjNKSmJtQWdiRzluY3lBbllTY3NJQ2RpSnl3Z2RHaGxiaUFuWXljdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnWm05eVNXNVNhV2RvZENodlltcGxZM1FzSUdsMFpYSmhkR1ZsS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYjJKcVpXTjBJRDA5SUc1MWJHeGNiaUFnSUNBZ0lDQWdQeUJ2WW1wbFkzUmNiaUFnSUNBZ0lDQWdPaUJpWVhObFJtOXlVbWxuYUhRb2IySnFaV04wTENCblpYUkpkR1Z5WVhSbFpTaHBkR1Z5WVhSbFpTd2dNeWtzSUd0bGVYTkpiaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nU1hSbGNtRjBaWE1nYjNabGNpQnZkMjRnWlc1MWJXVnlZV0pzWlNCemRISnBibWNnYTJWNVpXUWdjSEp2Y0dWeWRHbGxjeUJ2WmlCaGJpQnZZbXBsWTNRZ1lXNWtYRzRnSUNBZ0lDb2dhVzUyYjJ0bGN5QmdhWFJsY21GMFpXVmdJR1p2Y2lCbFlXTm9JSEJ5YjNCbGNuUjVMaUJVYUdVZ2FYUmxjbUYwWldVZ2FYTWdhVzUyYjJ0bFpDQjNhWFJvSUhSb2NtVmxYRzRnSUNBZ0lDb2dZWEpuZFcxbGJuUnpPaUFvZG1Gc2RXVXNJR3RsZVN3Z2IySnFaV04wS1M0Z1NYUmxjbUYwWldVZ1puVnVZM1JwYjI1eklHMWhlU0JsZUdsMElHbDBaWEpoZEdsdmJseHVJQ0FnSUNBcUlHVmhjbXg1SUdKNUlHVjRjR3hwWTJsMGJIa2djbVYwZFhKdWFXNW5JR0JtWVd4elpXQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01DNHpMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVDJKcVpXTjBYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOWlhbVZqZENCVWFHVWdiMkpxWldOMElIUnZJR2wwWlhKaGRHVWdiM1psY2k1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCYmFYUmxjbUYwWldVOVh5NXBaR1Z1ZEdsMGVWMGdWR2hsSUdaMWJtTjBhVzl1SUdsdWRtOXJaV1FnY0dWeUlHbDBaWEpoZEdsdmJpNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdUMkpxWldOMGZTQlNaWFIxY201eklHQnZZbXBsWTNSZ0xseHVJQ0FnSUNBcUlFQnpaV1VnWHk1bWIzSlBkMjVTYVdkb2RGeHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCbWRXNWpkR2x2YmlCR2IyOG9LU0I3WEc0Z0lDQWdJQ29nSUNCMGFHbHpMbUVnUFNBeE8xeHVJQ0FnSUNBcUlDQWdkR2hwY3k1aUlEMGdNanRjYmlBZ0lDQWdLaUI5WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJHYjI4dWNISnZkRzkwZVhCbExtTWdQU0F6TzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1bWIzSlBkMjRvYm1WM0lFWnZieXdnWm5WdVkzUnBiMjRvZG1Gc2RXVXNJR3RsZVNrZ2UxeHVJQ0FnSUNBcUlDQWdZMjl1YzI5c1pTNXNiMmNvYTJWNUtUdGNiaUFnSUNBZ0tpQjlLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQk1iMmR6SUNkaEp5QjBhR1Z1SUNkaUp5QW9hWFJsY21GMGFXOXVJRzl5WkdWeUlHbHpJRzV2ZENCbmRXRnlZVzUwWldWa0tTNWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCbWIzSlBkMjRvYjJKcVpXTjBMQ0JwZEdWeVlYUmxaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzlpYW1WamRDQW1KaUJpWVhObFJtOXlUM2R1S0c5aWFtVmpkQ3dnWjJWMFNYUmxjbUYwWldVb2FYUmxjbUYwWldVc0lETXBLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdseklHMWxkR2h2WkNCcGN5QnNhV3RsSUdCZkxtWnZjazkzYm1BZ1pYaGpaWEIwSUhSb1lYUWdhWFFnYVhSbGNtRjBaWE1nYjNabGNpQndjbTl3WlhKMGFXVnpJRzltWEc0Z0lDQWdJQ29nWUc5aWFtVmpkR0FnYVc0Z2RHaGxJRzl3Y0c5emFYUmxJRzl5WkdWeUxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURJdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRTlpYW1WamRGeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGxZM1FnVkdobElHOWlhbVZqZENCMGJ5QnBkR1Z5WVhSbElHOTJaWEl1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnVzJsMFpYSmhkR1ZsUFY4dWFXUmxiblJwZEhsZElGUm9aU0JtZFc1amRHbHZiaUJwYm5admEyVmtJSEJsY2lCcGRHVnlZWFJwYjI0dVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwOWlhbVZqZEgwZ1VtVjBkWEp1Y3lCZ2IySnFaV04wWUM1Y2JpQWdJQ0FnS2lCQWMyVmxJRjh1Wm05eVQzZHVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlHWjFibU4wYVc5dUlFWnZieWdwSUh0Y2JpQWdJQ0FnS2lBZ0lIUm9hWE11WVNBOUlERTdYRzRnSUNBZ0lDb2dJQ0IwYUdsekxtSWdQU0F5TzF4dUlDQWdJQ0FxSUgxY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVadmJ5NXdjbTkwYjNSNWNHVXVZeUE5SURNN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtWnZjazkzYmxKcFoyaDBLRzVsZHlCR2IyOHNJR1oxYm1OMGFXOXVLSFpoYkhWbExDQnJaWGtwSUh0Y2JpQWdJQ0FnS2lBZ0lHTnZibk52YkdVdWJHOW5LR3RsZVNrN1hHNGdJQ0FnSUNvZ2ZTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1RHOW5jeUFuWWljZ2RHaGxiaUFuWVNjZ1lYTnpkVzFwYm1jZ1lGOHVabTl5VDNkdVlDQnNiMmR6SUNkaEp5QjBhR1Z1SUNkaUp5NWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCbWIzSlBkMjVTYVdkb2RDaHZZbXBsWTNRc0lHbDBaWEpoZEdWbEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2IySnFaV04wSUNZbUlHSmhjMlZHYjNKUGQyNVNhV2RvZENodlltcGxZM1FzSUdkbGRFbDBaWEpoZEdWbEtHbDBaWEpoZEdWbExDQXpLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTNKbFlYUmxjeUJoYmlCaGNuSmhlU0J2WmlCbWRXNWpkR2x2YmlCd2NtOXdaWEowZVNCdVlXMWxjeUJtY205dElHOTNiaUJsYm5WdFpYSmhZbXhsSUhCeWIzQmxjblJwWlhOY2JpQWdJQ0FnS2lCdlppQmdiMkpxWldOMFlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWMybHVZMlVnTUM0eExqQmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JQWW1wbFkzUmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQnZZbXBsWTNRZ2RHOGdhVzV6Y0dWamRDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdRWEp5WVhsOUlGSmxkSFZ5Ym5NZ2RHaGxJR1oxYm1OMGFXOXVJRzVoYldWekxseHVJQ0FnSUNBcUlFQnpaV1VnWHk1bWRXNWpkR2x2Ym5OSmJseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCbWRXNWpkR2x2YmlCR2IyOG9LU0I3WEc0Z0lDQWdJQ29nSUNCMGFHbHpMbUVnUFNCZkxtTnZibk4wWVc1MEtDZGhKeWs3WEc0Z0lDQWdJQ29nSUNCMGFHbHpMbUlnUFNCZkxtTnZibk4wWVc1MEtDZGlKeWs3WEc0Z0lDQWdJQ29nZlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUm05dkxuQnliM1J2ZEhsd1pTNWpJRDBnWHk1amIyNXpkR0Z1ZENnbll5Y3BPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVtZFc1amRHbHZibk1vYm1WM0lFWnZieWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXeWRoSnl3Z0oySW5YVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHWjFibU4wYVc5dWN5aHZZbXBsWTNRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdlltcGxZM1FnUFQwZ2JuVnNiQ0EvSUZ0ZElEb2dZbUZ6WlVaMWJtTjBhVzl1Y3lodlltcGxZM1FzSUd0bGVYTW9iMkpxWldOMEtTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRM0psWVhSbGN5QmhiaUJoY25KaGVTQnZaaUJtZFc1amRHbHZiaUJ3Y205d1pYSjBlU0J1WVcxbGN5Qm1jbTl0SUc5M2JpQmhibVFnYVc1b1pYSnBkR1ZrWEc0Z0lDQWdJQ29nWlc1MWJXVnlZV0pzWlNCd2NtOXdaWEowYVdWeklHOW1JR0J2WW1wbFkzUmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUU5aWFtVmpkRnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZZbXBsWTNRZ1ZHaGxJRzlpYW1WamRDQjBieUJwYm5Od1pXTjBMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QjBhR1VnWm5WdVkzUnBiMjRnYm1GdFpYTXVYRzRnSUNBZ0lDb2dRSE5sWlNCZkxtWjFibU4wYVc5dWMxeHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCbWRXNWpkR2x2YmlCR2IyOG9LU0I3WEc0Z0lDQWdJQ29nSUNCMGFHbHpMbUVnUFNCZkxtTnZibk4wWVc1MEtDZGhKeWs3WEc0Z0lDQWdJQ29nSUNCMGFHbHpMbUlnUFNCZkxtTnZibk4wWVc1MEtDZGlKeWs3WEc0Z0lDQWdJQ29nZlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUm05dkxuQnliM1J2ZEhsd1pTNWpJRDBnWHk1amIyNXpkR0Z1ZENnbll5Y3BPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVtZFc1amRHbHZibk5KYmlodVpYY2dSbTl2S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiSjJFbkxDQW5ZaWNzSUNkakoxMWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCbWRXNWpkR2x2Ym5OSmJpaHZZbXBsWTNRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdlltcGxZM1FnUFQwZ2JuVnNiQ0EvSUZ0ZElEb2dZbUZ6WlVaMWJtTjBhVzl1Y3lodlltcGxZM1FzSUd0bGVYTkpiaWh2WW1wbFkzUXBLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJIWlhSeklIUm9aU0IyWVd4MVpTQmhkQ0JnY0dGMGFHQWdiMllnWUc5aWFtVmpkR0F1SUVsbUlIUm9aU0J5WlhOdmJIWmxaQ0IyWVd4MVpTQnBjMXh1SUNBZ0lDQXFJR0IxYm1SbFptbHVaV1JnTENCMGFHVWdZR1JsWm1GMWJIUldZV3gxWldBZ2FYTWdjbVYwZFhKdVpXUWdhVzRnYVhSeklIQnNZV05sTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRE11Tnk0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFOWlhbVZqZEZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2WW1wbFkzUWdWR2hsSUc5aWFtVmpkQ0IwYnlCeGRXVnllUzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZITjBjbWx1WjMwZ2NHRjBhQ0JVYUdVZ2NHRjBhQ0J2WmlCMGFHVWdjSEp2Y0dWeWRIa2dkRzhnWjJWMExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN0tuMGdXMlJsWm1GMWJIUldZV3gxWlYwZ1ZHaGxJSFpoYkhWbElISmxkSFZ5Ym1Wa0lHWnZjaUJnZFc1a1pXWnBibVZrWUNCeVpYTnZiSFpsWkNCMllXeDFaWE11WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZXlwOUlGSmxkSFZ5Ym5NZ2RHaGxJSEpsYzI5c2RtVmtJSFpoYkhWbExseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdiMkpxWldOMElEMGdleUFuWVNjNklGdDdJQ2RpSnpvZ2V5QW5ZeWM2SURNZ2ZTQjlYU0I5TzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1blpYUW9iMkpxWldOMExDQW5ZVnN3WFM1aUxtTW5LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQXpYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWRsZENodlltcGxZM1FzSUZzbllTY3NJQ2N3Snl3Z0oySW5MQ0FuWXlkZEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBelhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtZGxkQ2h2WW1wbFkzUXNJQ2RoTG1JdVl5Y3NJQ2RrWldaaGRXeDBKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMlJsWm1GMWJIUW5YRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1oyVjBLRzlpYW1WamRDd2djR0YwYUN3Z1pHVm1ZWFZzZEZaaGJIVmxLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ2IySnFaV04wSUQwOUlHNTFiR3dnUHlCMWJtUmxabWx1WldRZ09pQmlZWE5sUjJWMEtHOWlhbVZqZEN3Z2NHRjBhQ2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4MElEMDlQU0IxYm1SbFptbHVaV1FnUHlCa1pXWmhkV3gwVm1Gc2RXVWdPaUJ5WlhOMWJIUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMmhsWTJ0eklHbG1JR0J3WVhSb1lDQnBjeUJoSUdScGNtVmpkQ0J3Y205d1pYSjBlU0J2WmlCZ2IySnFaV04wWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYzJsdVkyVWdNQzR4TGpCY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQlBZbXBsWTNSY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjJKcVpXTjBJRlJvWlNCdlltcGxZM1FnZEc4Z2NYVmxjbmt1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYeHpkSEpwYm1kOUlIQmhkR2dnVkdobElIQmhkR2dnZEc4Z1kyaGxZMnN1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTJKdmIyeGxZVzU5SUZKbGRIVnlibk1nWUhSeWRXVmdJR2xtSUdCd1lYUm9ZQ0JsZUdsemRITXNJR1ZzYzJVZ1lHWmhiSE5sWUM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlHOWlhbVZqZENBOUlIc2dKMkVuT2lCN0lDZGlKem9nTWlCOUlIMDdYRzRnSUNBZ0lDb2dkbUZ5SUc5MGFHVnlJRDBnWHk1amNtVmhkR1VvZXlBbllTYzZJRjh1WTNKbFlYUmxLSHNnSjJJbk9pQXlJSDBwSUgwcE8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NW9ZWE1vYjJKcVpXTjBMQ0FuWVNjcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUhSeWRXVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhR0Z6S0c5aWFtVmpkQ3dnSjJFdVlpY3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIUnlkV1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YUdGektHOWlhbVZqZEN3Z1d5ZGhKeXdnSjJJblhTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2RISjFaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVvWVhNb2IzUm9aWElzSUNkaEp5azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1ptRnNjMlZjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQm9ZWE1vYjJKcVpXTjBMQ0J3WVhSb0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2IySnFaV04wSUNFOUlHNTFiR3dnSmlZZ2FHRnpVR0YwYUNodlltcGxZM1FzSUhCaGRHZ3NJR0poYzJWSVlYTXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU5vWldOcmN5QnBaaUJnY0dGMGFHQWdhWE1nWVNCa2FYSmxZM1FnYjNJZ2FXNW9aWEpwZEdWa0lIQnliM0JsY25SNUlHOW1JR0J2WW1wbFkzUmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUU5aWFtVmpkRnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZZbXBsWTNRZ1ZHaGxJRzlpYW1WamRDQjBieUJ4ZFdWeWVTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZkhOMGNtbHVaMzBnY0dGMGFDQlVhR1VnY0dGMGFDQjBieUJqYUdWamF5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdZbTl2YkdWaGJuMGdVbVYwZFhKdWN5QmdkSEoxWldBZ2FXWWdZSEJoZEdoZ0lHVjRhWE4wY3l3Z1pXeHpaU0JnWm1Gc2MyVmdMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQjJZWElnYjJKcVpXTjBJRDBnWHk1amNtVmhkR1VvZXlBbllTYzZJRjh1WTNKbFlYUmxLSHNnSjJJbk9pQXlJSDBwSUgwcE8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NW9ZWE5KYmlodlltcGxZM1FzSUNkaEp5azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2RISjFaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVvWVhOSmJpaHZZbXBsWTNRc0lDZGhMbUluS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUIwY25WbFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtaGhjMGx1S0c5aWFtVmpkQ3dnV3lkaEp5d2dKMkluWFNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZEhKMVpWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NW9ZWE5KYmlodlltcGxZM1FzSUNkaUp5azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1ptRnNjMlZjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQm9ZWE5KYmlodlltcGxZM1FzSUhCaGRHZ3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnZZbXBsWTNRZ0lUMGdiblZzYkNBbUppQm9ZWE5RWVhSb0tHOWlhbVZqZEN3Z2NHRjBhQ3dnWW1GelpVaGhjMGx1S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdGdUlHOWlhbVZqZENCamIyMXdiM05sWkNCdlppQjBhR1VnYVc1MlpYSjBaV1FnYTJWNWN5QmhibVFnZG1Gc2RXVnpJRzltSUdCdlltcGxZM1JnTGx4dUlDQWdJQ0FxSUVsbUlHQnZZbXBsWTNSZ0lHTnZiblJoYVc1eklHUjFjR3hwWTJGMFpTQjJZV3gxWlhNc0lITjFZbk5sY1hWbGJuUWdkbUZzZFdWeklHOTJaWEozY21sMFpWeHVJQ0FnSUNBcUlIQnliM0JsY25SNUlHRnpjMmxuYm0xbGJuUnpJRzltSUhCeVpYWnBiM1Z6SUhaaGJIVmxjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXdMamN1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCUFltcGxZM1JjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiMkpxWldOMElGUm9aU0J2WW1wbFkzUWdkRzhnYVc1MlpYSjBMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRQWW1wbFkzUjlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QnBiblpsY25SbFpDQnZZbXBsWTNRdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQnZZbXBsWTNRZ1BTQjdJQ2RoSnpvZ01Td2dKMkluT2lBeUxDQW5ZeWM2SURFZ2ZUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhVzUyWlhKMEtHOWlhbVZqZENrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZXlBbk1TYzZJQ2RqSnl3Z0p6SW5PaUFuWWljZ2ZWeHVJQ0FnSUNBcUwxeHVJQ0FnSUhaaGNpQnBiblpsY25RZ1BTQmpjbVZoZEdWSmJuWmxjblJsY2lobWRXNWpkR2x2YmloeVpYTjFiSFFzSUhaaGJIVmxMQ0JyWlhrcElIdGNiaUFnSUNBZ0lHbG1JQ2gyWVd4MVpTQWhQU0J1ZFd4c0lDWW1YRzRnSUNBZ0lDQWdJQ0FnZEhsd1pXOW1JSFpoYkhWbExuUnZVM1J5YVc1bklDRTlJQ2RtZFc1amRHbHZiaWNwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnNkV1VnUFNCdVlYUnBkbVZQWW1wbFkzUlViMU4wY21sdVp5NWpZV3hzS0haaGJIVmxLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnY21WemRXeDBXM1poYkhWbFhTQTlJR3RsZVR0Y2JpQWdJQ0I5TENCamIyNXpkR0Z1ZENocFpHVnVkR2wwZVNrcE8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hwY3lCdFpYUm9iMlFnYVhNZ2JHbHJaU0JnWHk1cGJuWmxjblJnSUdWNFkyVndkQ0IwYUdGMElIUm9aU0JwYm5abGNuUmxaQ0J2WW1wbFkzUWdhWE1nWjJWdVpYSmhkR1ZrWEc0Z0lDQWdJQ29nWm5KdmJTQjBhR1VnY21WemRXeDBjeUJ2WmlCeWRXNXVhVzVuSUdWaFkyZ2daV3hsYldWdWRDQnZaaUJnYjJKcVpXTjBZQ0IwYUhKMUlHQnBkR1Z5WVhSbFpXQXVJRlJvWlZ4dUlDQWdJQ0FxSUdOdmNuSmxjM0J2Ym1ScGJtY2dhVzUyWlhKMFpXUWdkbUZzZFdVZ2IyWWdaV0ZqYUNCcGJuWmxjblJsWkNCclpYa2dhWE1nWVc0Z1lYSnlZWGtnYjJZZ2EyVjVjMXh1SUNBZ0lDQXFJSEpsYzNCdmJuTnBZbXhsSUdadmNpQm5aVzVsY21GMGFXNW5JSFJvWlNCcGJuWmxjblJsWkNCMllXeDFaUzRnVkdobElHbDBaWEpoZEdWbElHbHpJR2x1ZG05clpXUmNiaUFnSUNBZ0tpQjNhWFJvSUc5dVpTQmhjbWQxYldWdWREb2dLSFpoYkhWbEtTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBMExqRXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JQWW1wbFkzUmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQnZZbXBsWTNRZ2RHOGdhVzUyWlhKMExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlGdHBkR1Z5WVhSbFpUMWZMbWxrWlc1MGFYUjVYU0JVYUdVZ2FYUmxjbUYwWldVZ2FXNTJiMnRsWkNCd1pYSWdaV3hsYldWdWRDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdUMkpxWldOMGZTQlNaWFIxY201eklIUm9aU0J1WlhjZ2FXNTJaWEowWldRZ2IySnFaV04wTGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ2IySnFaV04wSUQwZ2V5QW5ZU2M2SURFc0lDZGlKem9nTWl3Z0oyTW5PaUF4SUgwN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtbHVkbVZ5ZEVKNUtHOWlhbVZqZENrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZXlBbk1TYzZJRnNuWVNjc0lDZGpKMTBzSUNjeUp6b2dXeWRpSjEwZ2ZWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXBiblpsY25SQ2VTaHZZbXBsWTNRc0lHWjFibU4wYVc5dUtIWmhiSFZsS1NCN1hHNGdJQ0FnSUNvZ0lDQnlaWFIxY200Z0oyZHliM1Z3SnlBcklIWmhiSFZsTzF4dUlDQWdJQ0FxSUgwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUhzZ0oyZHliM1Z3TVNjNklGc25ZU2NzSUNkakoxMHNJQ2RuY205MWNESW5PaUJiSjJJblhTQjlYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RtRnlJR2x1ZG1WeWRFSjVJRDBnWTNKbFlYUmxTVzUyWlhKMFpYSW9ablZ1WTNScGIyNG9jbVZ6ZFd4MExDQjJZV3gxWlN3Z2EyVjVLU0I3WEc0Z0lDQWdJQ0JwWmlBb2RtRnNkV1VnSVQwZ2JuVnNiQ0FtSmx4dUlDQWdJQ0FnSUNBZ0lIUjVjR1Z2WmlCMllXeDFaUzUwYjFOMGNtbHVaeUFoUFNBblpuVnVZM1JwYjI0bktTQjdYRzRnSUNBZ0lDQWdJSFpoYkhWbElEMGdibUYwYVhabFQySnFaV04wVkc5VGRISnBibWN1WTJGc2JDaDJZV3gxWlNrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2hvWVhOUGQyNVFjbTl3WlhKMGVTNWpZV3hzS0hKbGMzVnNkQ3dnZG1Gc2RXVXBLU0I3WEc0Z0lDQWdJQ0FnSUhKbGMzVnNkRnQyWVd4MVpWMHVjSFZ6YUNoclpYa3BPMXh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdjbVZ6ZFd4MFczWmhiSFZsWFNBOUlGdHJaWGxkTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBzSUdkbGRFbDBaWEpoZEdWbEtUdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRWx1ZG05clpYTWdkR2hsSUcxbGRHaHZaQ0JoZENCZ2NHRjBhR0FnYjJZZ1lHOWlhbVZqZEdBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTkM0d0xqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dUMkpxWldOMFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5aWFtVmpkQ0JVYUdVZ2IySnFaV04wSUhSdklIRjFaWEo1TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDhjM1J5YVc1bmZTQndZWFJvSUZSb1pTQndZWFJvSUc5bUlIUm9aU0J0WlhSb2IyUWdkRzhnYVc1MmIydGxMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdMaTR1S24wZ1cyRnlaM05kSUZSb1pTQmhjbWQxYldWdWRITWdkRzhnYVc1MmIydGxJSFJvWlNCdFpYUm9iMlFnZDJsMGFDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdLbjBnVW1WMGRYSnVjeUIwYUdVZ2NtVnpkV3gwSUc5bUlIUm9aU0JwYm5admEyVmtJRzFsZEdodlpDNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ2RtRnlJRzlpYW1WamRDQTlJSHNnSjJFbk9pQmJleUFuWWljNklIc2dKMk1uT2lCYk1Td2dNaXdnTXl3Z05GMGdmU0I5WFNCOU8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXBiblp2YTJVb2IySnFaV04wTENBbllWc3dYUzVpTG1NdWMyeHBZMlVuTENBeExDQXpLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJNaXdnTTExY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IyWVhJZ2FXNTJiMnRsSUQwZ1ltRnpaVkpsYzNRb1ltRnpaVWx1ZG05clpTazdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVnpJR0Z1SUdGeWNtRjVJRzltSUhSb1pTQnZkMjRnWlc1MWJXVnlZV0pzWlNCd2NtOXdaWEowZVNCdVlXMWxjeUJ2WmlCZ2IySnFaV04wWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUNvcVRtOTBaVG9xS2lCT2IyNHRiMkpxWldOMElIWmhiSFZsY3lCaGNtVWdZMjlsY21ObFpDQjBieUJ2WW1wbFkzUnpMaUJUWldVZ2RHaGxYRzRnSUNBZ0lDb2dXMFZUSUhOd1pXTmRLR2gwZEhBNkx5OWxZMjFoTFdsdWRHVnlibUYwYVc5dVlXd3ViM0puTDJWamJXRXRNall5THpjdU1DOGpjMlZqTFc5aWFtVmpkQzVyWlhsektWeHVJQ0FnSUNBcUlHWnZjaUJ0YjNKbElHUmxkR0ZwYkhNdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUhOcGJtTmxJREF1TVM0d1hHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dUMkpxWldOMFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5aWFtVmpkQ0JVYUdVZ2IySnFaV04wSUhSdklIRjFaWEo1TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0QmNuSmhlWDBnVW1WMGRYSnVjeUIwYUdVZ1lYSnlZWGtnYjJZZ2NISnZjR1Z5ZEhrZ2JtRnRaWE11WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJR1oxYm1OMGFXOXVJRVp2YnlncElIdGNiaUFnSUNBZ0tpQWdJSFJvYVhNdVlTQTlJREU3WEc0Z0lDQWdJQ29nSUNCMGFHbHpMbUlnUFNBeU8xeHVJQ0FnSUNBcUlIMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFWnZieTV3Y205MGIzUjVjR1V1WXlBOUlETTdYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbXRsZVhNb2JtVjNJRVp2YnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnV3lkaEp5d2dKMkluWFNBb2FYUmxjbUYwYVc5dUlHOXlaR1Z5SUdseklHNXZkQ0JuZFdGeVlXNTBaV1ZrS1Z4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1clpYbHpLQ2RvYVNjcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzbk1DY3NJQ2N4SjExY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJyWlhsektHOWlhbVZqZENrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdselFYSnlZWGxNYVd0bEtHOWlhbVZqZENrZ1B5QmhjbkpoZVV4cGEyVkxaWGx6S0c5aWFtVmpkQ2tnT2lCaVlYTmxTMlY1Y3lodlltcGxZM1FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOeVpXRjBaWE1nWVc0Z1lYSnlZWGtnYjJZZ2RHaGxJRzkzYmlCaGJtUWdhVzVvWlhKcGRHVmtJR1Z1ZFcxbGNtRmliR1VnY0hKdmNHVnlkSGtnYm1GdFpYTWdiMllnWUc5aWFtVmpkR0F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUFxS2s1dmRHVTZLaW9nVG05dUxXOWlhbVZqZENCMllXeDFaWE1nWVhKbElHTnZaWEpqWldRZ2RHOGdiMkpxWldOMGN5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBekxqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JQWW1wbFkzUmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQnZZbXBsWTNRZ2RHOGdjWFZsY25rdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQmhjbkpoZVNCdlppQndjbTl3WlhKMGVTQnVZVzFsY3k1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWm5WdVkzUnBiMjRnUm05dktDa2dlMXh1SUNBZ0lDQXFJQ0FnZEdocGN5NWhJRDBnTVR0Y2JpQWdJQ0FnS2lBZ0lIUm9hWE11WWlBOUlESTdYRzRnSUNBZ0lDb2dmVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dSbTl2TG5CeWIzUnZkSGx3WlM1aklEMGdNenRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YTJWNWMwbHVLRzVsZHlCR2IyOHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc25ZU2NzSUNkaUp5d2dKMk1uWFNBb2FYUmxjbUYwYVc5dUlHOXlaR1Z5SUdseklHNXZkQ0JuZFdGeVlXNTBaV1ZrS1Z4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR3RsZVhOSmJpaHZZbXBsWTNRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCcGMwRnljbUY1VEdsclpTaHZZbXBsWTNRcElEOGdZWEp5WVhsTWFXdGxTMlY1Y3lodlltcGxZM1FzSUhSeWRXVXBJRG9nWW1GelpVdGxlWE5KYmlodlltcGxZM1FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQnZjSEJ2YzJsMFpTQnZaaUJnWHk1dFlYQldZV3gxWlhOZ095QjBhR2x6SUcxbGRHaHZaQ0JqY21WaGRHVnpJR0Z1SUc5aWFtVmpkQ0IzYVhSb0lIUm9aVnh1SUNBZ0lDQXFJSE5oYldVZ2RtRnNkV1Z6SUdGeklHQnZZbXBsWTNSZ0lHRnVaQ0JyWlhseklHZGxibVZ5WVhSbFpDQmllU0J5ZFc1dWFXNW5JR1ZoWTJnZ2IzZHVJR1Z1ZFcxbGNtRmliR1ZjYmlBZ0lDQWdLaUJ6ZEhKcGJtY2dhMlY1WldRZ2NISnZjR1Z5ZEhrZ2IyWWdZRzlpYW1WamRHQWdkR2h5ZFNCZ2FYUmxjbUYwWldWZ0xpQlVhR1VnYVhSbGNtRjBaV1VnYVhNZ2FXNTJiMnRsWkZ4dUlDQWdJQ0FxSUhkcGRHZ2dkR2h5WldVZ1lYSm5kVzFsYm5Sek9pQW9kbUZzZFdVc0lHdGxlU3dnYjJKcVpXTjBLUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXpMamd1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCUFltcGxZM1JjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiMkpxWldOMElGUm9aU0J2WW1wbFkzUWdkRzhnYVhSbGNtRjBaU0J2ZG1WeUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlGdHBkR1Z5WVhSbFpUMWZMbWxrWlc1MGFYUjVYU0JVYUdVZ1puVnVZM1JwYjI0Z2FXNTJiMnRsWkNCd1pYSWdhWFJsY21GMGFXOXVMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRQWW1wbFkzUjlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QnRZWEJ3WldRZ2IySnFaV04wTGx4dUlDQWdJQ0FxSUVCelpXVWdYeTV0WVhCV1lXeDFaWE5jYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTV0WVhCTFpYbHpLSHNnSjJFbk9pQXhMQ0FuWWljNklESWdmU3dnWm5WdVkzUnBiMjRvZG1Gc2RXVXNJR3RsZVNrZ2UxeHVJQ0FnSUNBcUlDQWdjbVYwZFhKdUlHdGxlU0FySUhaaGJIVmxPMXh1SUNBZ0lDQXFJSDBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJSHNnSjJFeEp6b2dNU3dnSjJJeUp6b2dNaUI5WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdiV0Z3UzJWNWN5aHZZbXBsWTNRc0lHbDBaWEpoZEdWbEtTQjdYRzRnSUNBZ0lDQjJZWElnY21WemRXeDBJRDBnZTMwN1hHNGdJQ0FnSUNCcGRHVnlZWFJsWlNBOUlHZGxkRWwwWlhKaGRHVmxLR2wwWlhKaGRHVmxMQ0F6S1R0Y2JseHVJQ0FnSUNBZ1ltRnpaVVp2Y2s5M2JpaHZZbXBsWTNRc0lHWjFibU4wYVc5dUtIWmhiSFZsTENCclpYa3NJRzlpYW1WamRDa2dlMXh1SUNBZ0lDQWdJQ0JpWVhObFFYTnphV2R1Vm1Gc2RXVW9jbVZ6ZFd4MExDQnBkR1Z5WVhSbFpTaDJZV3gxWlN3Z2EyVjVMQ0J2WW1wbFkzUXBMQ0IyWVd4MVpTazdYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaGJpQnZZbXBsWTNRZ2QybDBhQ0IwYUdVZ2MyRnRaU0JyWlhseklHRnpJR0J2WW1wbFkzUmdJR0Z1WkNCMllXeDFaWE1nWjJWdVpYSmhkR1ZrWEc0Z0lDQWdJQ29nWW5rZ2NuVnVibWx1WnlCbFlXTm9JRzkzYmlCbGJuVnRaWEpoWW14bElITjBjbWx1WnlCclpYbGxaQ0J3Y205d1pYSjBlU0J2WmlCZ2IySnFaV04wWUNCMGFISjFYRzRnSUNBZ0lDb2dZR2wwWlhKaGRHVmxZQzRnVkdobElHbDBaWEpoZEdWbElHbHpJR2x1ZG05clpXUWdkMmwwYUNCMGFISmxaU0JoY21kMWJXVnVkSE02WEc0Z0lDQWdJQ29nS0haaGJIVmxMQ0JyWlhrc0lHOWlhbVZqZENrdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTWk0MExqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dUMkpxWldOMFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5aWFtVmpkQ0JVYUdVZ2IySnFaV04wSUhSdklHbDBaWEpoZEdVZ2IzWmxjaTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JiYVhSbGNtRjBaV1U5WHk1cFpHVnVkR2wwZVYwZ1ZHaGxJR1oxYm1OMGFXOXVJR2x1ZG05clpXUWdjR1Z5SUdsMFpYSmhkR2x2Ymk1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1QySnFaV04wZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnYldGd2NHVmtJRzlpYW1WamRDNWNiaUFnSUNBZ0tpQkFjMlZsSUY4dWJXRndTMlY1YzF4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ2RYTmxjbk1nUFNCN1hHNGdJQ0FnSUNvZ0lDQW5abkpsWkNjNklDQWdJSHNnSjNWelpYSW5PaUFuWm5KbFpDY3NJQ0FnSUNkaFoyVW5PaUEwTUNCOUxGeHVJQ0FnSUNBcUlDQWdKM0JsWW1Kc1pYTW5PaUI3SUNkMWMyVnlKem9nSjNCbFltSnNaWE1uTENBbllXZGxKem9nTVNCOVhHNGdJQ0FnSUNvZ2ZUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHViV0Z3Vm1Gc2RXVnpLSFZ6WlhKekxDQm1kVzVqZEdsdmJpaHZLU0I3SUhKbGRIVnliaUJ2TG1GblpUc2dmU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdleUFuWm5KbFpDYzZJRFF3TENBbmNHVmlZbXhsY3ljNklERWdmU0FvYVhSbGNtRjBhVzl1SUc5eVpHVnlJR2x6SUc1dmRDQm5kV0Z5WVc1MFpXVmtLVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dMeThnVkdobElHQmZMbkJ5YjNCbGNuUjVZQ0JwZEdWeVlYUmxaU0J6YUc5eWRHaGhibVF1WEc0Z0lDQWdJQ29nWHk1dFlYQldZV3gxWlhNb2RYTmxjbk1zSUNkaFoyVW5LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQjdJQ2RtY21Wa0p6b2dOREFzSUNkd1pXSmliR1Z6SnpvZ01TQjlJQ2hwZEdWeVlYUnBiMjRnYjNKa1pYSWdhWE1nYm05MElHZDFZWEpoYm5SbFpXUXBYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2JXRndWbUZzZFdWektHOWlhbVZqZEN3Z2FYUmxjbUYwWldVcElIdGNiaUFnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0I3ZlR0Y2JpQWdJQ0FnSUdsMFpYSmhkR1ZsSUQwZ1oyVjBTWFJsY21GMFpXVW9hWFJsY21GMFpXVXNJRE1wTzF4dVhHNGdJQ0FnSUNCaVlYTmxSbTl5VDNkdUtHOWlhbVZqZEN3Z1puVnVZM1JwYjI0b2RtRnNkV1VzSUd0bGVTd2diMkpxWldOMEtTQjdYRzRnSUNBZ0lDQWdJR0poYzJWQmMzTnBaMjVXWVd4MVpTaHlaWE4xYkhRc0lHdGxlU3dnYVhSbGNtRjBaV1VvZG1Gc2RXVXNJR3RsZVN3Z2IySnFaV04wS1NrN1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdocGN5QnRaWFJvYjJRZ2FYTWdiR2xyWlNCZ1h5NWhjM05wWjI1Z0lHVjRZMlZ3ZENCMGFHRjBJR2wwSUhKbFkzVnljMmwyWld4NUlHMWxjbWRsY3lCdmQyNGdZVzVrWEc0Z0lDQWdJQ29nYVc1b1pYSnBkR1ZrSUdWdWRXMWxjbUZpYkdVZ2MzUnlhVzVuSUd0bGVXVmtJSEJ5YjNCbGNuUnBaWE1nYjJZZ2MyOTFjbU5sSUc5aWFtVmpkSE1nYVc1MGJ5QjBhR1ZjYmlBZ0lDQWdLaUJrWlhOMGFXNWhkR2x2YmlCdlltcGxZM1F1SUZOdmRYSmpaU0J3Y205d1pYSjBhV1Z6SUhSb1lYUWdjbVZ6YjJ4MlpTQjBieUJnZFc1a1pXWnBibVZrWUNCaGNtVmNiaUFnSUNBZ0tpQnphMmx3Y0dWa0lHbG1JR0VnWkdWemRHbHVZWFJwYjI0Z2RtRnNkV1VnWlhocGMzUnpMaUJCY25KaGVTQmhibVFnY0d4aGFXNGdiMkpxWldOMElIQnliM0JsY25ScFpYTmNiaUFnSUNBZ0tpQmhjbVVnYldWeVoyVmtJSEpsWTNWeWMybDJaV3g1TGlCUGRHaGxjaUJ2WW1wbFkzUnpJR0Z1WkNCMllXeDFaU0IwZVhCbGN5QmhjbVVnYjNabGNuSnBaR1JsYmlCaWVWeHVJQ0FnSUNBcUlHRnpjMmxuYm0xbGJuUXVJRk52ZFhKalpTQnZZbXBsWTNSeklHRnlaU0JoY0hCc2FXVmtJR1p5YjIwZ2JHVm1kQ0IwYnlCeWFXZG9kQzRnVTNWaWMyVnhkV1Z1ZEZ4dUlDQWdJQ0FxSUhOdmRYSmpaWE1nYjNabGNuZHlhWFJsSUhCeWIzQmxjblI1SUdGemMybG5ibTFsYm5SeklHOW1JSEJ5WlhacGIzVnpJSE52ZFhKalpYTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXFLazV2ZEdVNktpb2dWR2hwY3lCdFpYUm9iMlFnYlhWMFlYUmxjeUJnYjJKcVpXTjBZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXdMalV1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCUFltcGxZM1JjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiMkpxWldOMElGUm9aU0JrWlhOMGFXNWhkR2x2YmlCdlltcGxZM1F1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHN1TGk1UFltcGxZM1I5SUZ0emIzVnlZMlZ6WFNCVWFHVWdjMjkxY21ObElHOWlhbVZqZEhNdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwOWlhbVZqZEgwZ1VtVjBkWEp1Y3lCZ2IySnFaV04wWUM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlHOWlhbVZqZENBOUlIdGNiaUFnSUNBZ0tpQWdJQ2RoSnpvZ1czc2dKMkluT2lBeUlIMHNJSHNnSjJRbk9pQTBJSDFkWEc0Z0lDQWdJQ29nZlR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQnZkR2hsY2lBOUlIdGNiaUFnSUNBZ0tpQWdJQ2RoSnpvZ1czc2dKMk1uT2lBeklIMHNJSHNnSjJVbk9pQTFJSDFkWEc0Z0lDQWdJQ29nZlR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWJXVnlaMlVvYjJKcVpXTjBMQ0J2ZEdobGNpazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2V5QW5ZU2M2SUZ0N0lDZGlKem9nTWl3Z0oyTW5PaUF6SUgwc0lIc2dKMlFuT2lBMExDQW5aU2M2SURVZ2ZWMGdmVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIWmhjaUJ0WlhKblpTQTlJR055WldGMFpVRnpjMmxuYm1WeUtHWjFibU4wYVc5dUtHOWlhbVZqZEN3Z2MyOTFjbU5sTENCemNtTkpibVJsZUNrZ2UxeHVJQ0FnSUNBZ1ltRnpaVTFsY21kbEtHOWlhbVZqZEN3Z2MyOTFjbU5sTENCemNtTkpibVJsZUNrN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR2x6SUcxbGRHaHZaQ0JwY3lCc2FXdGxJR0JmTG0xbGNtZGxZQ0JsZUdObGNIUWdkR2hoZENCcGRDQmhZMk5sY0hSeklHQmpkWE4wYjIxcGVtVnlZQ0IzYUdsamFGeHVJQ0FnSUNBcUlHbHpJR2x1ZG05clpXUWdkRzhnY0hKdlpIVmpaU0IwYUdVZ2JXVnlaMlZrSUhaaGJIVmxjeUJ2WmlCMGFHVWdaR1Z6ZEdsdVlYUnBiMjRnWVc1a0lITnZkWEpqWlZ4dUlDQWdJQ0FxSUhCeWIzQmxjblJwWlhNdUlFbG1JR0JqZFhOMGIyMXBlbVZ5WUNCeVpYUjFjbTV6SUdCMWJtUmxabWx1WldSZ0xDQnRaWEpuYVc1bklHbHpJR2hoYm1Sc1pXUWdZbmtnZEdobFhHNGdJQ0FnSUNvZ2JXVjBhRzlrSUdsdWMzUmxZV1F1SUZSb1pTQmdZM1Z6ZEc5dGFYcGxjbUFnYVhNZ2FXNTJiMnRsWkNCM2FYUm9JSE5wZUNCaGNtZDFiV1Z1ZEhNNlhHNGdJQ0FnSUNvZ0tHOWlhbFpoYkhWbExDQnpjbU5XWVd4MVpTd2dhMlY1TENCdlltcGxZM1FzSUhOdmRYSmpaU3dnYzNSaFkyc3BMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dLaXBPYjNSbE9pb3FJRlJvYVhNZ2JXVjBhRzlrSUcxMWRHRjBaWE1nWUc5aWFtVmpkR0F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR3TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1QySnFaV04wWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzlpYW1WamRDQlVhR1VnWkdWemRHbHVZWFJwYjI0Z2IySnFaV04wTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3TGk0dVQySnFaV04wZlNCemIzVnlZMlZ6SUZSb1pTQnpiM1Z5WTJVZ2IySnFaV04wY3k1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCamRYTjBiMjFwZW1WeUlGUm9aU0JtZFc1amRHbHZiaUIwYnlCamRYTjBiMjFwZW1VZ1lYTnphV2R1WldRZ2RtRnNkV1Z6TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0UFltcGxZM1I5SUZKbGRIVnlibk1nWUc5aWFtVmpkR0F1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJR1oxYm1OMGFXOXVJR04xYzNSdmJXbDZaWElvYjJKcVZtRnNkV1VzSUhOeVkxWmhiSFZsS1NCN1hHNGdJQ0FnSUNvZ0lDQnBaaUFvWHk1cGMwRnljbUY1S0c5aWFsWmhiSFZsS1NrZ2UxeHVJQ0FnSUNBcUlDQWdJQ0J5WlhSMWNtNGdiMkpxVm1Gc2RXVXVZMjl1WTJGMEtITnlZMVpoYkhWbEtUdGNiaUFnSUNBZ0tpQWdJSDFjYmlBZ0lDQWdLaUI5WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ2IySnFaV04wSUQwZ2V5QW5ZU2M2SUZzeFhTd2dKMkluT2lCYk1sMGdmVHRjYmlBZ0lDQWdLaUIyWVhJZ2IzUm9aWElnUFNCN0lDZGhKem9nV3pOZExDQW5ZaWM2SUZzMFhTQjlPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTV0WlhKblpWZHBkR2dvYjJKcVpXTjBMQ0J2ZEdobGNpd2dZM1Z6ZEc5dGFYcGxjaWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdleUFuWVNjNklGc3hMQ0F6WFN3Z0oySW5PaUJiTWl3Z05GMGdmVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIWmhjaUJ0WlhKblpWZHBkR2dnUFNCamNtVmhkR1ZCYzNOcFoyNWxjaWhtZFc1amRHbHZiaWh2WW1wbFkzUXNJSE52ZFhKalpTd2djM0pqU1c1a1pYZ3NJR04xYzNSdmJXbDZaWElwSUh0Y2JpQWdJQ0FnSUdKaGMyVk5aWEpuWlNodlltcGxZM1FzSUhOdmRYSmpaU3dnYzNKalNXNWtaWGdzSUdOMWMzUnZiV2w2WlhJcE8xeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUc5d2NHOXphWFJsSUc5bUlHQmZMbkJwWTJ0Z095QjBhR2x6SUcxbGRHaHZaQ0JqY21WaGRHVnpJR0Z1SUc5aWFtVmpkQ0JqYjIxd2IzTmxaQ0J2WmlCMGFHVmNiaUFnSUNBZ0tpQnZkMjRnWVc1a0lHbHVhR1Z5YVhSbFpDQmxiblZ0WlhKaFlteGxJSEJ5YjNCbGNuUjVJSEJoZEdoeklHOW1JR0J2WW1wbFkzUmdJSFJvWVhRZ1lYSmxJRzV2ZENCdmJXbDBkR1ZrTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nS2lwT2IzUmxPaW9xSUZSb2FYTWdiV1YwYUc5a0lHbHpJR052Ym5OcFpHVnlZV0pzZVNCemJHOTNaWElnZEdoaGJpQmdYeTV3YVdOcllDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWMybHVZMlVnTUM0eExqQmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JQWW1wbFkzUmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQnpiM1Z5WTJVZ2IySnFaV04wTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3TGk0dUtITjBjbWx1WjN4emRISnBibWRiWFNsOUlGdHdZWFJvYzEwZ1ZHaGxJSEJ5YjNCbGNuUjVJSEJoZEdoeklIUnZJRzl0YVhRdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwOWlhbVZqZEgwZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUc5aWFtVmpkQzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkbUZ5SUc5aWFtVmpkQ0E5SUhzZ0oyRW5PaUF4TENBbllpYzZJQ2N5Snl3Z0oyTW5PaUF6SUgwN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtOXRhWFFvYjJKcVpXTjBMQ0JiSjJFbkxDQW5ZeWRkS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUI3SUNkaUp6b2dKekluSUgxY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IyWVhJZ2IyMXBkQ0E5SUdac1lYUlNaWE4wS0daMWJtTjBhVzl1S0c5aWFtVmpkQ3dnY0dGMGFITXBJSHRjYmlBZ0lDQWdJSFpoY2lCeVpYTjFiSFFnUFNCN2ZUdGNiaUFnSUNBZ0lHbG1JQ2h2WW1wbFkzUWdQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2RtRnlJR2x6UkdWbGNDQTlJR1poYkhObE8xeHVJQ0FnSUNBZ2NHRjBhSE1nUFNCaGNuSmhlVTFoY0Nod1lYUm9jeXdnWm5WdVkzUnBiMjRvY0dGMGFDa2dlMXh1SUNBZ0lDQWdJQ0J3WVhSb0lEMGdZMkZ6ZEZCaGRHZ29jR0YwYUN3Z2IySnFaV04wS1R0Y2JpQWdJQ0FnSUNBZ2FYTkVaV1Z3SUh4OElDaHBjMFJsWlhBZ1BTQndZWFJvTG14bGJtZDBhQ0ErSURFcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NHRjBhRHRjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnWTI5d2VVOWlhbVZqZENodlltcGxZM1FzSUdkbGRFRnNiRXRsZVhOSmJpaHZZbXBsWTNRcExDQnlaWE4xYkhRcE8xeHVJQ0FnSUNBZ2FXWWdLR2x6UkdWbGNDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhOMWJIUWdQU0JpWVhObFEyeHZibVVvY21WemRXeDBMQ0JEVEU5T1JWOUVSVVZRWDBaTVFVY2dmQ0JEVEU5T1JWOUdURUZVWDBaTVFVY2dmQ0JEVEU5T1JWOVRXVTFDVDB4VFgwWk1RVWNzSUdOMWMzUnZiVTl0YVhSRGJHOXVaU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0IyWVhJZ2JHVnVaM1JvSUQwZ2NHRjBhSE11YkdWdVozUm9PMXh1SUNBZ0lDQWdkMmhwYkdVZ0tHeGxibWQwYUMwdEtTQjdYRzRnSUNBZ0lDQWdJR0poYzJWVmJuTmxkQ2h5WlhOMWJIUXNJSEJoZEdoelcyeGxibWQwYUYwcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQnZjSEJ2YzJsMFpTQnZaaUJnWHk1d2FXTnJRbmxnT3lCMGFHbHpJRzFsZEdodlpDQmpjbVZoZEdWeklHRnVJRzlpYW1WamRDQmpiMjF3YjNObFpDQnZabHh1SUNBZ0lDQXFJSFJvWlNCdmQyNGdZVzVrSUdsdWFHVnlhWFJsWkNCbGJuVnRaWEpoWW14bElITjBjbWx1WnlCclpYbGxaQ0J3Y205d1pYSjBhV1Z6SUc5bUlHQnZZbXBsWTNSZ0lIUm9ZWFJjYmlBZ0lDQWdLaUJnY0hKbFpHbGpZWFJsWUNCa2IyVnpiaWQwSUhKbGRIVnliaUIwY25WMGFIa2dabTl5TGlCVWFHVWdjSEpsWkdsallYUmxJR2x6SUdsdWRtOXJaV1FnZDJsMGFDQjBkMjljYmlBZ0lDQWdLaUJoY21kMWJXVnVkSE02SUNoMllXeDFaU3dnYTJWNUtTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBMExqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JQWW1wbFkzUmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQnpiM1Z5WTJVZ2IySnFaV04wTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUZ0d2NtVmthV05oZEdVOVh5NXBaR1Z1ZEdsMGVWMGdWR2hsSUdaMWJtTjBhVzl1SUdsdWRtOXJaV1FnY0dWeUlIQnliM0JsY25SNUxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdFBZbXBsWTNSOUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCdlltcGxZM1F1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSFpoY2lCdlltcGxZM1FnUFNCN0lDZGhKem9nTVN3Z0oySW5PaUFuTWljc0lDZGpKem9nTXlCOU8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXZiV2wwUW5rb2IySnFaV04wTENCZkxtbHpUblZ0WW1WeUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCN0lDZGlKem9nSnpJbklIMWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCdmJXbDBRbmtvYjJKcVpXTjBMQ0J3Y21Wa2FXTmhkR1VwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ3YVdOclFua29iMkpxWldOMExDQnVaV2RoZEdVb1oyVjBTWFJsY21GMFpXVW9jSEpsWkdsallYUmxLU2twTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOeVpXRjBaWE1nWVc0Z2IySnFaV04wSUdOdmJYQnZjMlZrSUc5bUlIUm9aU0J3YVdOclpXUWdZRzlpYW1WamRHQWdjSEp2Y0dWeWRHbGxjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01DNHhMakJjYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCUFltcGxZM1JjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiMkpxWldOMElGUm9aU0J6YjNWeVkyVWdiMkpxWldOMExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN0xpNHVLSE4wY21sdVozeHpkSEpwYm1kYlhTbDlJRnR3WVhSb2MxMGdWR2hsSUhCeWIzQmxjblI1SUhCaGRHaHpJSFJ2SUhCcFkyc3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMDlpYW1WamRIMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHOWlhbVZqZEM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlHOWlhbVZqZENBOUlIc2dKMkVuT2lBeExDQW5ZaWM2SUNjeUp5d2dKMk1uT2lBeklIMDdYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbkJwWTJzb2IySnFaV04wTENCYkoyRW5MQ0FuWXlkZEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCN0lDZGhKem9nTVN3Z0oyTW5PaUF6SUgxY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IyWVhJZ2NHbGpheUE5SUdac1lYUlNaWE4wS0daMWJtTjBhVzl1S0c5aWFtVmpkQ3dnY0dGMGFITXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnZZbXBsWTNRZ1BUMGdiblZzYkNBL0lIdDlJRG9nWW1GelpWQnBZMnNvYjJKcVpXTjBMQ0J3WVhSb2N5azdYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVnpJR0Z1SUc5aWFtVmpkQ0JqYjIxd2IzTmxaQ0J2WmlCMGFHVWdZRzlpYW1WamRHQWdjSEp2Y0dWeWRHbGxjeUJnY0hKbFpHbGpZWFJsWUNCeVpYUjFjbTV6WEc0Z0lDQWdJQ29nZEhKMWRHaDVJR1p2Y2k0Z1ZHaGxJSEJ5WldScFkyRjBaU0JwY3lCcGJuWnZhMlZrSUhkcGRHZ2dkSGR2SUdGeVozVnRaVzUwY3pvZ0tIWmhiSFZsTENCclpYa3BMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUU5aWFtVmpkRnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZZbXBsWTNRZ1ZHaGxJSE52ZFhKalpTQnZZbXBsWTNRdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1czQnlaV1JwWTJGMFpUMWZMbWxrWlc1MGFYUjVYU0JVYUdVZ1puVnVZM1JwYjI0Z2FXNTJiMnRsWkNCd1pYSWdjSEp2Y0dWeWRIa3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMDlpYW1WamRIMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHOWlhbVZqZEM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlHOWlhbVZqZENBOUlIc2dKMkVuT2lBeExDQW5ZaWM2SUNjeUp5d2dKMk1uT2lBeklIMDdYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbkJwWTJ0Q2VTaHZZbXBsWTNRc0lGOHVhWE5PZFcxaVpYSXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIc2dKMkVuT2lBeExDQW5ZeWM2SURNZ2ZWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUhCcFkydENlU2h2WW1wbFkzUXNJSEJ5WldScFkyRjBaU2tnZTF4dUlDQWdJQ0FnYVdZZ0tHOWlhbVZqZENBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCN2ZUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lIWmhjaUJ3Y205d2N5QTlJR0Z5Y21GNVRXRndLR2RsZEVGc2JFdGxlWE5KYmlodlltcGxZM1FwTENCbWRXNWpkR2x2Ymlod2NtOXdLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJiY0hKdmNGMDdYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSEJ5WldScFkyRjBaU0E5SUdkbGRFbDBaWEpoZEdWbEtIQnlaV1JwWTJGMFpTazdYRzRnSUNBZ0lDQnlaWFIxY200Z1ltRnpaVkJwWTJ0Q2VTaHZZbXBsWTNRc0lIQnliM0J6TENCbWRXNWpkR2x2YmloMllXeDFaU3dnY0dGMGFDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjSEpsWkdsallYUmxLSFpoYkhWbExDQndZWFJvV3pCZEtUdGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvYVhNZ2JXVjBhRzlrSUdseklHeHBhMlVnWUY4dVoyVjBZQ0JsZUdObGNIUWdkR2hoZENCcFppQjBhR1VnY21WemIyeDJaV1FnZG1Gc2RXVWdhWE1nWVZ4dUlDQWdJQ0FxSUdaMWJtTjBhVzl1SUdsMEozTWdhVzUyYjJ0bFpDQjNhWFJvSUhSb1pTQmdkR2hwYzJBZ1ltbHVaR2x1WnlCdlppQnBkSE1nY0dGeVpXNTBJRzlpYW1WamRDQmhibVJjYmlBZ0lDQWdLaUJwZEhNZ2NtVnpkV3gwSUdseklISmxkSFZ5Ym1Wa0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCemFXNWpaU0F3TGpFdU1GeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRTlpYW1WamRGeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGxZM1FnVkdobElHOWlhbVZqZENCMGJ5QnhkV1Z5ZVM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmSE4wY21sdVozMGdjR0YwYUNCVWFHVWdjR0YwYUNCdlppQjBhR1VnY0hKdmNHVnlkSGtnZEc4Z2NtVnpiMngyWlM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlGdGtaV1poZFd4MFZtRnNkV1ZkSUZSb1pTQjJZV3gxWlNCeVpYUjFjbTVsWkNCbWIzSWdZSFZ1WkdWbWFXNWxaR0FnY21WemIyeDJaV1FnZG1Gc2RXVnpMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHNxZlNCU1pYUjFjbTV6SUhSb1pTQnlaWE52YkhabFpDQjJZV3gxWlM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlHOWlhbVZqZENBOUlIc2dKMkVuT2lCYmV5QW5ZaWM2SUhzZ0oyTXhKem9nTXl3Z0oyTXlKem9nWHk1amIyNXpkR0Z1ZENnMEtTQjlJSDFkSUgwN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuSmxjM1ZzZENodlltcGxZM1FzSUNkaFd6QmRMbUl1WXpFbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBelhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuSmxjM1ZzZENodlltcGxZM1FzSUNkaFd6QmRMbUl1WXpJbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBMFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuSmxjM1ZzZENodlltcGxZM1FzSUNkaFd6QmRMbUl1WXpNbkxDQW5aR1ZtWVhWc2RDY3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lDZGtaV1poZFd4MEoxeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXlaWE4xYkhRb2IySnFaV04wTENBbllWc3dYUzVpTG1Nekp5d2dYeTVqYjI1emRHRnVkQ2duWkdWbVlYVnNkQ2NwS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUFuWkdWbVlYVnNkQ2RjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQnlaWE4xYkhRb2IySnFaV04wTENCd1lYUm9MQ0JrWldaaGRXeDBWbUZzZFdVcElIdGNiaUFnSUNBZ0lIQmhkR2dnUFNCallYTjBVR0YwYUNod1lYUm9MQ0J2WW1wbFkzUXBPMXh1WEc0Z0lDQWdJQ0IyWVhJZ2FXNWtaWGdnUFNBdE1TeGNiaUFnSUNBZ0lDQWdJQ0JzWlc1bmRHZ2dQU0J3WVhSb0xteGxibWQwYUR0Y2JseHVJQ0FnSUNBZ0x5OGdSVzV6ZFhKbElIUm9aU0JzYjI5d0lHbHpJR1Z1ZEdWeVpXUWdkMmhsYmlCd1lYUm9JR2x6SUdWdGNIUjVMbHh1SUNBZ0lDQWdhV1lnS0NGc1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ2JHVnVaM1JvSUQwZ01UdGNiaUFnSUNBZ0lDQWdiMkpxWldOMElEMGdkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdkMmhwYkdVZ0tDc3JhVzVrWlhnZ1BDQnNaVzVuZEdncElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUhaaGJIVmxJRDBnYjJKcVpXTjBJRDA5SUc1MWJHd2dQeUIxYm1SbFptbHVaV1FnT2lCdlltcGxZM1JiZEc5TFpYa29jR0YwYUZ0cGJtUmxlRjBwWFR0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFpoYkhWbElEMDlQU0IxYm1SbFptbHVaV1FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBibVJsZUNBOUlHeGxibWQwYUR0Y2JpQWdJQ0FnSUNBZ0lDQjJZV3gxWlNBOUlHUmxabUYxYkhSV1lXeDFaVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCdlltcGxZM1FnUFNCcGMwWjFibU4wYVc5dUtIWmhiSFZsS1NBL0lIWmhiSFZsTG1OaGJHd29iMkpxWldOMEtTQTZJSFpoYkhWbE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUc5aWFtVmpkRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJUWlhSeklIUm9aU0IyWVd4MVpTQmhkQ0JnY0dGMGFHQWdiMllnWUc5aWFtVmpkR0F1SUVsbUlHRWdjRzl5ZEdsdmJpQnZaaUJnY0dGMGFHQWdaRzlsYzI0bmRDQmxlR2x6ZEN4Y2JpQWdJQ0FnS2lCcGRDZHpJR055WldGMFpXUXVJRUZ5Y21GNWN5QmhjbVVnWTNKbFlYUmxaQ0JtYjNJZ2JXbHpjMmx1WnlCcGJtUmxlQ0J3Y205d1pYSjBhV1Z6SUhkb2FXeGxJRzlpYW1WamRITmNiaUFnSUNBZ0tpQmhjbVVnWTNKbFlYUmxaQ0JtYjNJZ1lXeHNJRzkwYUdWeUlHMXBjM05wYm1jZ2NISnZjR1Z5ZEdsbGN5NGdWWE5sSUdCZkxuTmxkRmRwZEdoZ0lIUnZJR04xYzNSdmJXbDZaVnh1SUNBZ0lDQXFJR0J3WVhSb1lDQmpjbVZoZEdsdmJpNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDb3FUbTkwWlRvcUtpQlVhR2x6SUcxbGRHaHZaQ0J0ZFhSaGRHVnpJR0J2WW1wbFkzUmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElETXVOeTR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUU5aWFtVmpkRnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZZbXBsWTNRZ1ZHaGxJRzlpYW1WamRDQjBieUJ0YjJScFpua3VYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVh4emRISnBibWQ5SUhCaGRHZ2dWR2hsSUhCaGRHZ2diMllnZEdobElIQnliM0JsY25SNUlIUnZJSE5sZEM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXlwOUlIWmhiSFZsSUZSb1pTQjJZV3gxWlNCMGJ5QnpaWFF1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTA5aWFtVmpkSDBnVW1WMGRYSnVjeUJnYjJKcVpXTjBZQzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkbUZ5SUc5aWFtVmpkQ0E5SUhzZ0oyRW5PaUJiZXlBbllpYzZJSHNnSjJNbk9pQXpJSDBnZlYwZ2ZUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVjMlYwS0c5aWFtVmpkQ3dnSjJGYk1GMHVZaTVqSnl3Z05DazdYRzRnSUNBZ0lDb2dZMjl1YzI5c1pTNXNiMmNvYjJKcVpXTjBMbUZiTUYwdVlpNWpLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQTBYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbk5sZENodlltcGxZM1FzSUZzbmVDY3NJQ2N3Snl3Z0oza25MQ0FuZWlkZExDQTFLVHRjYmlBZ0lDQWdLaUJqYjI1emIyeGxMbXh2WnlodlltcGxZM1F1ZUZzd1hTNTVMbm9wTzF4dUlDQWdJQ0FxSUM4dklEMCtJRFZjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQnpaWFFvYjJKcVpXTjBMQ0J3WVhSb0xDQjJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc5aWFtVmpkQ0E5UFNCdWRXeHNJRDhnYjJKcVpXTjBJRG9nWW1GelpWTmxkQ2h2WW1wbFkzUXNJSEJoZEdnc0lIWmhiSFZsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVWFHbHpJRzFsZEdodlpDQnBjeUJzYVd0bElHQmZMbk5sZEdBZ1pYaGpaWEIwSUhSb1lYUWdhWFFnWVdOalpYQjBjeUJnWTNWemRHOXRhWHBsY21BZ2QyaHBZMmdnYVhOY2JpQWdJQ0FnS2lCcGJuWnZhMlZrSUhSdklIQnliMlIxWTJVZ2RHaGxJRzlpYW1WamRITWdiMllnWUhCaGRHaGdMaUFnU1dZZ1lHTjFjM1J2YldsNlpYSmdJSEpsZEhWeWJuTWdZSFZ1WkdWbWFXNWxaR0JjYmlBZ0lDQWdLaUJ3WVhSb0lHTnlaV0YwYVc5dUlHbHpJR2hoYm1Sc1pXUWdZbmtnZEdobElHMWxkR2h2WkNCcGJuTjBaV0ZrTGlCVWFHVWdZR04xYzNSdmJXbDZaWEpnSUdseklHbHVkbTlyWldSY2JpQWdJQ0FnS2lCM2FYUm9JSFJvY21WbElHRnlaM1Z0Wlc1MGN6b2dLRzV6Vm1Gc2RXVXNJR3RsZVN3Z2JuTlBZbXBsWTNRcExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0tpcE9iM1JsT2lvcUlGUm9hWE1nYldWMGFHOWtJRzExZEdGMFpYTWdZRzlpYW1WamRHQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ05DNHdMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVDJKcVpXTjBYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlHOWlhbVZqZENCVWFHVWdiMkpxWldOMElIUnZJRzF2WkdsbWVTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZkhOMGNtbHVaMzBnY0dGMGFDQlVhR1VnY0dGMGFDQnZaaUIwYUdVZ2NISnZjR1Z5ZEhrZ2RHOGdjMlYwTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3S24wZ2RtRnNkV1VnVkdobElIWmhiSFZsSUhSdklITmxkQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMFoxYm1OMGFXOXVmU0JiWTNWemRHOXRhWHBsY2wwZ1ZHaGxJR1oxYm1OMGFXOXVJSFJ2SUdOMWMzUnZiV2w2WlNCaGMzTnBaMjVsWkNCMllXeDFaWE11WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTA5aWFtVmpkSDBnVW1WMGRYSnVjeUJnYjJKcVpXTjBZQzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkbUZ5SUc5aWFtVmpkQ0E5SUh0OU8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXpaWFJYYVhSb0tHOWlhbVZqZEN3Z0oxc3dYVnN4WFNjc0lDZGhKeXdnVDJKcVpXTjBLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQjdJQ2N3SnpvZ2V5QW5NU2M2SUNkaEp5QjlJSDFjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQnpaWFJYYVhSb0tHOWlhbVZqZEN3Z2NHRjBhQ3dnZG1Gc2RXVXNJR04xYzNSdmJXbDZaWElwSUh0Y2JpQWdJQ0FnSUdOMWMzUnZiV2w2WlhJZ1BTQjBlWEJsYjJZZ1kzVnpkRzl0YVhwbGNpQTlQU0FuWm5WdVkzUnBiMjRuSUQ4Z1kzVnpkRzl0YVhwbGNpQTZJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnZZbXBsWTNRZ1BUMGdiblZzYkNBL0lHOWlhbVZqZENBNklHSmhjMlZUWlhRb2IySnFaV04wTENCd1lYUm9MQ0IyWVd4MVpTd2dZM1Z6ZEc5dGFYcGxjaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTNKbFlYUmxjeUJoYmlCaGNuSmhlU0J2WmlCdmQyNGdaVzUxYldWeVlXSnNaU0J6ZEhKcGJtY2dhMlY1WldRdGRtRnNkV1VnY0dGcGNuTWdabTl5SUdCdlltcGxZM1JnWEc0Z0lDQWdJQ29nZDJocFkyZ2dZMkZ1SUdKbElHTnZibk4xYldWa0lHSjVJR0JmTG1aeWIyMVFZV2x5YzJBdUlFbG1JR0J2WW1wbFkzUmdJR2x6SUdFZ2JXRndJRzl5SUhObGRDd2dhWFJ6WEc0Z0lDQWdJQ29nWlc1MGNtbGxjeUJoY21VZ2NtVjBkWEp1WldRdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTkM0d0xqQmNiaUFnSUNBZ0tpQkFZV3hwWVhNZ1pXNTBjbWxsYzF4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCUFltcGxZM1JjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiMkpxWldOMElGUm9aU0J2WW1wbFkzUWdkRzhnY1hWbGNua3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMEZ5Y21GNWZTQlNaWFIxY201eklIUm9aU0JyWlhrdGRtRnNkV1VnY0dGcGNuTXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlHWjFibU4wYVc5dUlFWnZieWdwSUh0Y2JpQWdJQ0FnS2lBZ0lIUm9hWE11WVNBOUlERTdYRzRnSUNBZ0lDb2dJQ0IwYUdsekxtSWdQU0F5TzF4dUlDQWdJQ0FxSUgxY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVadmJ5NXdjbTkwYjNSNWNHVXVZeUE5SURNN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuUnZVR0ZwY25Nb2JtVjNJRVp2YnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnVzFzbllTY3NJREZkTENCYkoySW5MQ0F5WFYwZ0tHbDBaWEpoZEdsdmJpQnZjbVJsY2lCcGN5QnViM1FnWjNWaGNtRnVkR1ZsWkNsY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IyWVhJZ2RHOVFZV2x5Y3lBOUlHTnlaV0YwWlZSdlVHRnBjbk1vYTJWNWN5azdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVnpJR0Z1SUdGeWNtRjVJRzltSUc5M2JpQmhibVFnYVc1b1pYSnBkR1ZrSUdWdWRXMWxjbUZpYkdVZ2MzUnlhVzVuSUd0bGVXVmtMWFpoYkhWbElIQmhhWEp6WEc0Z0lDQWdJQ29nWm05eUlHQnZZbXBsWTNSZ0lIZG9hV05vSUdOaGJpQmlaU0JqYjI1emRXMWxaQ0JpZVNCZ1h5NW1jbTl0VUdGcGNuTmdMaUJKWmlCZ2IySnFaV04wWUNCcGN5QmhJRzFoY0Z4dUlDQWdJQ0FxSUc5eUlITmxkQ3dnYVhSeklHVnVkSEpwWlhNZ1lYSmxJSEpsZEhWeWJtVmtMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdGc2FXRnpJR1Z1ZEhKcFpYTkpibHh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JQWW1wbFkzUmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IySnFaV04wSUZSb1pTQnZZbXBsWTNRZ2RHOGdjWFZsY25rdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1ZlNCU1pYUjFjbTV6SUhSb1pTQnJaWGt0ZG1Gc2RXVWdjR0ZwY25NdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUdaMWJtTjBhVzl1SUVadmJ5Z3BJSHRjYmlBZ0lDQWdLaUFnSUhSb2FYTXVZU0E5SURFN1hHNGdJQ0FnSUNvZ0lDQjBhR2x6TG1JZ1BTQXlPMXh1SUNBZ0lDQXFJSDFjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRVp2Ynk1d2NtOTBiM1I1Y0dVdVl5QTlJRE03WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5SdlVHRnBjbk5KYmlodVpYY2dSbTl2S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiV3lkaEp5d2dNVjBzSUZzbllpY3NJREpkTENCYkoyTW5MQ0F6WFYwZ0tHbDBaWEpoZEdsdmJpQnZjbVJsY2lCcGN5QnViM1FnWjNWaGNtRnVkR1ZsWkNsY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IyWVhJZ2RHOVFZV2x5YzBsdUlEMGdZM0psWVhSbFZHOVFZV2x5Y3loclpYbHpTVzRwTzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FXNGdZV3gwWlhKdVlYUnBkbVVnZEc4Z1lGOHVjbVZrZFdObFlEc2dkR2hwY3lCdFpYUm9iMlFnZEhKaGJuTm1iM0p0Y3lCZ2IySnFaV04wWUNCMGJ5QmhJRzVsZDF4dUlDQWdJQ0FxSUdCaFkyTjFiWFZzWVhSdmNtQWdiMkpxWldOMElIZG9hV05vSUdseklIUm9aU0J5WlhOMWJIUWdiMllnY25WdWJtbHVaeUJsWVdOb0lHOW1JR2wwY3lCdmQyNWNiaUFnSUNBZ0tpQmxiblZ0WlhKaFlteGxJSE4wY21sdVp5QnJaWGxsWkNCd2NtOXdaWEowYVdWeklIUm9jblVnWUdsMFpYSmhkR1ZsWUN3Z2QybDBhQ0JsWVdOb0lHbHVkbTlqWVhScGIyNWNiaUFnSUNBZ0tpQndiM1JsYm5ScFlXeHNlU0J0ZFhSaGRHbHVaeUIwYUdVZ1lHRmpZM1Z0ZFd4aGRHOXlZQ0J2WW1wbFkzUXVJRWxtSUdCaFkyTjFiWFZzWVhSdmNtQWdhWE1nYm05MFhHNGdJQ0FnSUNvZ2NISnZkbWxrWldRc0lHRWdibVYzSUc5aWFtVmpkQ0IzYVhSb0lIUm9aU0J6WVcxbElHQmJXMUJ5YjNSdmRIbHdaVjFkWUNCM2FXeHNJR0psSUhWelpXUXVJRlJvWlZ4dUlDQWdJQ0FxSUdsMFpYSmhkR1ZsSUdseklHbHVkbTlyWldRZ2QybDBhQ0JtYjNWeUlHRnlaM1Z0Wlc1MGN6b2dLR0ZqWTNWdGRXeGhkRzl5TENCMllXeDFaU3dnYTJWNUxDQnZZbXBsWTNRcExseHVJQ0FnSUNBcUlFbDBaWEpoZEdWbElHWjFibU4wYVc5dWN5QnRZWGtnWlhocGRDQnBkR1Z5WVhScGIyNGdaV0Z5YkhrZ1lua2daWGh3YkdsamFYUnNlU0J5WlhSMWNtNXBibWNnWUdaaGJITmxZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXhMak11TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCUFltcGxZM1JjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiMkpxWldOMElGUm9aU0J2WW1wbFkzUWdkRzhnYVhSbGNtRjBaU0J2ZG1WeUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlGdHBkR1Z5WVhSbFpUMWZMbWxrWlc1MGFYUjVYU0JVYUdVZ1puVnVZM1JwYjI0Z2FXNTJiMnRsWkNCd1pYSWdhWFJsY21GMGFXOXVMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdLbjBnVzJGalkzVnRkV3hoZEc5eVhTQlVhR1VnWTNWemRHOXRJR0ZqWTNWdGRXeGhkRzl5SUhaaGJIVmxMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHNxZlNCU1pYUjFjbTV6SUhSb1pTQmhZMk4xYlhWc1lYUmxaQ0IyWVd4MVpTNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NTBjbUZ1YzJadmNtMG9XeklzSURNc0lEUmRMQ0JtZFc1amRHbHZiaWh5WlhOMWJIUXNJRzRwSUh0Y2JpQWdJQ0FnS2lBZ0lISmxjM1ZzZEM1d2RYTm9LRzRnS2owZ2JpazdYRzRnSUNBZ0lDb2dJQ0J5WlhSMWNtNGdiaUFsSURJZ1BUMGdNRHRjYmlBZ0lDQWdLaUI5TENCYlhTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1d6UXNJRGxkWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5SeVlXNXpabTl5YlNoN0lDZGhKem9nTVN3Z0oySW5PaUF5TENBbll5YzZJREVnZlN3Z1puVnVZM1JwYjI0b2NtVnpkV3gwTENCMllXeDFaU3dnYTJWNUtTQjdYRzRnSUNBZ0lDb2dJQ0FvY21WemRXeDBXM1poYkhWbFhTQjhmQ0FvY21WemRXeDBXM1poYkhWbFhTQTlJRnRkS1NrdWNIVnphQ2hyWlhrcE8xeHVJQ0FnSUNBcUlIMHNJSHQ5S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUI3SUNjeEp6b2dXeWRoSnl3Z0oyTW5YU3dnSnpJbk9pQmJKMkluWFNCOVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnZEhKaGJuTm1iM0p0S0c5aWFtVmpkQ3dnYVhSbGNtRjBaV1VzSUdGalkzVnRkV3hoZEc5eUtTQjdYRzRnSUNBZ0lDQjJZWElnYVhOQmNuSWdQU0JwYzBGeWNtRjVLRzlpYW1WamRDa3NYRzRnSUNBZ0lDQWdJQ0FnYVhOQmNuSk1hV3RsSUQwZ2FYTkJjbklnZkh3Z2FYTkNkV1ptWlhJb2IySnFaV04wS1NCOGZDQnBjMVI1Y0dWa1FYSnlZWGtvYjJKcVpXTjBLVHRjYmx4dUlDQWdJQ0FnYVhSbGNtRjBaV1VnUFNCblpYUkpkR1Z5WVhSbFpTaHBkR1Z5WVhSbFpTd2dOQ2s3WEc0Z0lDQWdJQ0JwWmlBb1lXTmpkVzExYkdGMGIzSWdQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ1EzUnZjaUE5SUc5aWFtVmpkQ0FtSmlCdlltcGxZM1F1WTI5dWMzUnlkV04wYjNJN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwYzBGeWNreHBhMlVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmhZMk4xYlhWc1lYUnZjaUE5SUdselFYSnlJRDhnYm1WM0lFTjBiM0lnT2lCYlhUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hwYzA5aWFtVmpkQ2h2WW1wbFkzUXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1lXTmpkVzExYkdGMGIzSWdQU0JwYzBaMWJtTjBhVzl1S0VOMGIzSXBJRDhnWW1GelpVTnlaV0YwWlNoblpYUlFjbTkwYjNSNWNHVW9iMkpxWldOMEtTa2dPaUI3ZlR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQmhZMk4xYlhWc1lYUnZjaUE5SUh0OU8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQW9hWE5CY25KTWFXdGxJRDhnWVhKeVlYbEZZV05vSURvZ1ltRnpaVVp2Y2s5M2Jpa29iMkpxWldOMExDQm1kVzVqZEdsdmJpaDJZV3gxWlN3Z2FXNWtaWGdzSUc5aWFtVmpkQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYVhSbGNtRjBaV1VvWVdOamRXMTFiR0YwYjNJc0lIWmhiSFZsTENCcGJtUmxlQ3dnYjJKcVpXTjBLVHRjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnY21WMGRYSnVJR0ZqWTNWdGRXeGhkRzl5TzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZKbGJXOTJaWE1nZEdobElIQnliM0JsY25SNUlHRjBJR0J3WVhSb1lDQnZaaUJnYjJKcVpXTjBZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQ29xVG05MFpUb3FLaUJVYUdseklHMWxkR2h2WkNCdGRYUmhkR1Z6SUdCdlltcGxZM1JnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRFF1TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFOWlhbVZqZEZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2WW1wbFkzUWdWR2hsSUc5aWFtVmpkQ0IwYnlCdGIyUnBabmt1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYeHpkSEpwYm1kOUlIQmhkR2dnVkdobElIQmhkR2dnYjJZZ2RHaGxJSEJ5YjNCbGNuUjVJSFJ2SUhWdWMyVjBMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRpYjI5c1pXRnVmU0JTWlhSMWNtNXpJR0IwY25WbFlDQnBaaUIwYUdVZ2NISnZjR1Z5ZEhrZ2FYTWdaR1ZzWlhSbFpDd2daV3h6WlNCZ1ptRnNjMlZnTGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ2IySnFaV04wSUQwZ2V5QW5ZU2M2SUZ0N0lDZGlKem9nZXlBbll5YzZJRGNnZlNCOVhTQjlPMXh1SUNBZ0lDQXFJRjh1ZFc1elpYUW9iMkpxWldOMExDQW5ZVnN3WFM1aUxtTW5LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQjBjblZsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJqYjI1emIyeGxMbXh2WnlodlltcGxZM1FwTzF4dUlDQWdJQ0FxSUM4dklEMCtJSHNnSjJFbk9pQmJleUFuWWljNklIdDlJSDFkSUgwN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuVnVjMlYwS0c5aWFtVmpkQ3dnV3lkaEp5d2dKekFuTENBbllpY3NJQ2RqSjEwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUhSeWRXVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlHTnZibk52YkdVdWJHOW5LRzlpYW1WamRDazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2V5QW5ZU2M2SUZ0N0lDZGlKem9nZTMwZ2ZWMGdmVHRjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQjFibk5sZENodlltcGxZM1FzSUhCaGRHZ3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnZZbXBsWTNRZ1BUMGdiblZzYkNBL0lIUnlkV1VnT2lCaVlYTmxWVzV6WlhRb2IySnFaV04wTENCd1lYUm9LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdseklHMWxkR2h2WkNCcGN5QnNhV3RsSUdCZkxuTmxkR0FnWlhoalpYQjBJSFJvWVhRZ1lXTmpaWEIwY3lCZ2RYQmtZWFJsY21BZ2RHOGdjSEp2WkhWalpTQjBhR1ZjYmlBZ0lDQWdLaUIyWVd4MVpTQjBieUJ6WlhRdUlGVnpaU0JnWHk1MWNHUmhkR1ZYYVhSb1lDQjBieUJqZFhOMGIyMXBlbVVnWUhCaGRHaGdJR055WldGMGFXOXVMaUJVYUdVZ1lIVndaR0YwWlhKZ1hHNGdJQ0FnSUNvZ2FYTWdhVzUyYjJ0bFpDQjNhWFJvSUc5dVpTQmhjbWQxYldWdWREb2dLSFpoYkhWbEtTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDb3FUbTkwWlRvcUtpQlVhR2x6SUcxbGRHaHZaQ0J0ZFhSaGRHVnpJR0J2WW1wbFkzUmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVOaTR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUU5aWFtVmpkRnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZZbXBsWTNRZ1ZHaGxJRzlpYW1WamRDQjBieUJ0YjJScFpua3VYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVh4emRISnBibWQ5SUhCaGRHZ2dWR2hsSUhCaGRHZ2diMllnZEdobElIQnliM0JsY25SNUlIUnZJSE5sZEM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCMWNHUmhkR1Z5SUZSb1pTQm1kVzVqZEdsdmJpQjBieUJ3Y205a2RXTmxJSFJvWlNCMWNHUmhkR1ZrSUhaaGJIVmxMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRQWW1wbFkzUjlJRkpsZEhWeWJuTWdZRzlpYW1WamRHQXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlIWmhjaUJ2WW1wbFkzUWdQU0I3SUNkaEp6b2dXM3NnSjJJbk9pQjdJQ2RqSnpvZ015QjlJSDFkSUgwN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuVndaR0YwWlNodlltcGxZM1FzSUNkaFd6QmRMbUl1WXljc0lHWjFibU4wYVc5dUtHNHBJSHNnY21WMGRYSnVJRzRnS2lCdU95QjlLVHRjYmlBZ0lDQWdLaUJqYjI1emIyeGxMbXh2WnlodlltcGxZM1F1WVZzd1hTNWlMbU1wTzF4dUlDQWdJQ0FxSUM4dklEMCtJRGxjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1ZFhCa1lYUmxLRzlpYW1WamRDd2dKM2hiTUYwdWVTNTZKeXdnWm5WdVkzUnBiMjRvYmlrZ2V5QnlaWFIxY200Z2JpQS9JRzRnS3lBeElEb2dNRHNnZlNrN1hHNGdJQ0FnSUNvZ1kyOXVjMjlzWlM1c2IyY29iMkpxWldOMExuaGJNRjB1ZVM1NktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBd1hHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnZFhCa1lYUmxLRzlpYW1WamRDd2djR0YwYUN3Z2RYQmtZWFJsY2lrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc5aWFtVmpkQ0E5UFNCdWRXeHNJRDhnYjJKcVpXTjBJRG9nWW1GelpWVndaR0YwWlNodlltcGxZM1FzSUhCaGRHZ3NJR05oYzNSR2RXNWpkR2x2YmloMWNHUmhkR1Z5S1NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaHBjeUJ0WlhSb2IyUWdhWE1nYkdsclpTQmdYeTUxY0dSaGRHVmdJR1Y0WTJWd2RDQjBhR0YwSUdsMElHRmpZMlZ3ZEhNZ1lHTjFjM1J2YldsNlpYSmdJSGRvYVdOb0lHbHpYRzRnSUNBZ0lDb2dhVzUyYjJ0bFpDQjBieUJ3Y205a2RXTmxJSFJvWlNCdlltcGxZM1J6SUc5bUlHQndZWFJvWUM0Z0lFbG1JR0JqZFhOMGIyMXBlbVZ5WUNCeVpYUjFjbTV6SUdCMWJtUmxabWx1WldSZ1hHNGdJQ0FnSUNvZ2NHRjBhQ0JqY21WaGRHbHZiaUJwY3lCb1lXNWtiR1ZrSUdKNUlIUm9aU0J0WlhSb2IyUWdhVzV6ZEdWaFpDNGdWR2hsSUdCamRYTjBiMjFwZW1WeVlDQnBjeUJwYm5admEyVmtYRzRnSUNBZ0lDb2dkMmwwYUNCMGFISmxaU0JoY21kMWJXVnVkSE02SUNodWMxWmhiSFZsTENCclpYa3NJRzV6VDJKcVpXTjBLUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQ29xVG05MFpUb3FLaUJVYUdseklHMWxkR2h2WkNCdGRYUmhkR1Z6SUdCdlltcGxZM1JnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRFF1Tmk0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFOWlhbVZqZEZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2WW1wbFkzUWdWR2hsSUc5aWFtVmpkQ0IwYnlCdGIyUnBabmt1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYeHpkSEpwYm1kOUlIQmhkR2dnVkdobElIQmhkR2dnYjJZZ2RHaGxJSEJ5YjNCbGNuUjVJSFJ2SUhObGRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQjFjR1JoZEdWeUlGUm9aU0JtZFc1amRHbHZiaUIwYnlCd2NtOWtkV05sSUhSb1pTQjFjR1JoZEdWa0lIWmhiSFZsTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUZ0amRYTjBiMjFwZW1WeVhTQlVhR1VnWm5WdVkzUnBiMjRnZEc4Z1kzVnpkRzl0YVhwbElHRnpjMmxuYm1Wa0lIWmhiSFZsY3k1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1QySnFaV04wZlNCU1pYUjFjbTV6SUdCdlltcGxZM1JnTGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ2IySnFaV04wSUQwZ2UzMDdYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMblZ3WkdGMFpWZHBkR2dvYjJKcVpXTjBMQ0FuV3pCZFd6RmRKeXdnWHk1amIyNXpkR0Z1ZENnbllTY3BMQ0JQWW1wbFkzUXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIc2dKekFuT2lCN0lDY3hKem9nSjJFbklIMGdmVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlIVndaR0YwWlZkcGRHZ29iMkpxWldOMExDQndZWFJvTENCMWNHUmhkR1Z5TENCamRYTjBiMjFwZW1WeUtTQjdYRzRnSUNBZ0lDQmpkWE4wYjIxcGVtVnlJRDBnZEhsd1pXOW1JR04xYzNSdmJXbDZaWElnUFQwZ0oyWjFibU4wYVc5dUp5QS9JR04xYzNSdmJXbDZaWElnT2lCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYjJKcVpXTjBJRDA5SUc1MWJHd2dQeUJ2WW1wbFkzUWdPaUJpWVhObFZYQmtZWFJsS0c5aWFtVmpkQ3dnY0dGMGFDd2dZMkZ6ZEVaMWJtTjBhVzl1S0hWd1pHRjBaWElwTENCamRYTjBiMjFwZW1WeUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRnVJR0Z5Y21GNUlHOW1JSFJvWlNCdmQyNGdaVzUxYldWeVlXSnNaU0J6ZEhKcGJtY2dhMlY1WldRZ2NISnZjR1Z5ZEhrZ2RtRnNkV1Z6SUc5bUlHQnZZbXBsWTNSZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0tpcE9iM1JsT2lvcUlFNXZiaTF2WW1wbFkzUWdkbUZzZFdWeklHRnlaU0JqYjJWeVkyVmtJSFJ2SUc5aWFtVmpkSE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRSE5wYm1ObElEQXVNUzR3WEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1QySnFaV04wWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzlpYW1WamRDQlVhR1VnYjJKcVpXTjBJSFJ2SUhGMVpYSjVMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QjBhR1VnWVhKeVlYa2diMllnY0hKdmNHVnlkSGtnZG1Gc2RXVnpMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQm1kVzVqZEdsdmJpQkdiMjhvS1NCN1hHNGdJQ0FnSUNvZ0lDQjBhR2x6TG1FZ1BTQXhPMXh1SUNBZ0lDQXFJQ0FnZEdocGN5NWlJRDBnTWp0Y2JpQWdJQ0FnS2lCOVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCR2IyOHVjSEp2ZEc5MGVYQmxMbU1nUFNBek8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NTJZV3gxWlhNb2JtVjNJRVp2YnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnV3pFc0lESmRJQ2hwZEdWeVlYUnBiMjRnYjNKa1pYSWdhWE1nYm05MElHZDFZWEpoYm5SbFpXUXBYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMblpoYkhWbGN5Z25hR2tuS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiSjJnbkxDQW5hU2RkWEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdkbUZzZFdWektHOWlhbVZqZENrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc5aWFtVmpkQ0E5UFNCdWRXeHNJRDhnVzEwZ09pQmlZWE5sVm1Gc2RXVnpLRzlpYW1WamRDd2dhMlY1Y3lodlltcGxZM1FwS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdGdUlHRnljbUY1SUc5bUlIUm9aU0J2ZDI0Z1lXNWtJR2x1YUdWeWFYUmxaQ0JsYm5WdFpYSmhZbXhsSUhOMGNtbHVaeUJyWlhsbFpDQndjbTl3WlhKMGVWeHVJQ0FnSUNBcUlIWmhiSFZsY3lCdlppQmdiMkpxWldOMFlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDb3FUbTkwWlRvcUtpQk9iMjR0YjJKcVpXTjBJSFpoYkhWbGN5QmhjbVVnWTI5bGNtTmxaQ0IwYnlCdlltcGxZM1J6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRE11TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFOWlhbVZqZEZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2WW1wbFkzUWdWR2hsSUc5aWFtVmpkQ0IwYnlCeGRXVnllUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUdGeWNtRjVJRzltSUhCeWIzQmxjblI1SUhaaGJIVmxjeTVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dablZ1WTNScGIyNGdSbTl2S0NrZ2UxeHVJQ0FnSUNBcUlDQWdkR2hwY3k1aElEMGdNVHRjYmlBZ0lDQWdLaUFnSUhSb2FYTXVZaUE5SURJN1hHNGdJQ0FnSUNvZ2ZWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1JtOXZMbkJ5YjNSdmRIbHdaUzVqSUQwZ016dGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVkbUZzZFdWelNXNG9ibVYzSUVadmJ5azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1d6RXNJRElzSUROZElDaHBkR1Z5WVhScGIyNGdiM0prWlhJZ2FYTWdibTkwSUdkMVlYSmhiblJsWldRcFhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnZG1Gc2RXVnpTVzRvYjJKcVpXTjBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiMkpxWldOMElEMDlJRzUxYkd3Z1B5QmJYU0E2SUdKaGMyVldZV3gxWlhNb2IySnFaV04wTENCclpYbHpTVzRvYjJKcVpXTjBLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW90TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBxTDF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyeGhiWEJ6SUdCdWRXMWlaWEpnSUhkcGRHaHBiaUIwYUdVZ2FXNWpiSFZ6YVhabElHQnNiM2RsY21BZ1lXNWtJR0IxY0hCbGNtQWdZbTkxYm1SekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRTUxYldKbGNseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCdWRXMWlaWElnVkdobElHNTFiV0psY2lCMGJ5QmpiR0Z0Y0M1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzJ4dmQyVnlYU0JVYUdVZ2JHOTNaWElnWW05MWJtUXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIVndjR1Z5SUZSb1pTQjFjSEJsY2lCaWIzVnVaQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3Ym5WdFltVnlmU0JTWlhSMWNtNXpJSFJvWlNCamJHRnRjR1ZrSUc1MWJXSmxjaTVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVqYkdGdGNDZ3RNVEFzSUMwMUxDQTFLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQXROVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVqYkdGdGNDZ3hNQ3dnTFRVc0lEVXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lEVmNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCamJHRnRjQ2h1ZFcxaVpYSXNJR3h2ZDJWeUxDQjFjSEJsY2lrZ2UxeHVJQ0FnSUNBZ2FXWWdLSFZ3Y0dWeUlEMDlQU0IxYm1SbFptbHVaV1FwSUh0Y2JpQWdJQ0FnSUNBZ2RYQndaWElnUFNCc2IzZGxjanRjYmlBZ0lDQWdJQ0FnYkc5M1pYSWdQU0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JwWmlBb2RYQndaWElnSVQwOUlIVnVaR1ZtYVc1bFpDa2dlMXh1SUNBZ0lDQWdJQ0IxY0hCbGNpQTlJSFJ2VG5WdFltVnlLSFZ3Y0dWeUtUdGNiaUFnSUNBZ0lDQWdkWEJ3WlhJZ1BTQjFjSEJsY2lBOVBUMGdkWEJ3WlhJZ1B5QjFjSEJsY2lBNklEQTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnBaaUFvYkc5M1pYSWdJVDA5SUhWdVpHVm1hVzVsWkNrZ2UxeHVJQ0FnSUNBZ0lDQnNiM2RsY2lBOUlIUnZUblZ0WW1WeUtHeHZkMlZ5S1R0Y2JpQWdJQ0FnSUNBZ2JHOTNaWElnUFNCc2IzZGxjaUE5UFQwZ2JHOTNaWElnUHlCc2IzZGxjaUE2SURBN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnWW1GelpVTnNZVzF3S0hSdlRuVnRZbVZ5S0c1MWJXSmxjaWtzSUd4dmQyVnlMQ0IxY0hCbGNpazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMmhsWTJ0eklHbG1JR0J1WUNCcGN5QmlaWFIzWldWdUlHQnpkR0Z5ZEdBZ1lXNWtJSFZ3SUhSdkxDQmlkWFFnYm05MElHbHVZMngxWkdsdVp5d2dZR1Z1WkdBdUlFbG1YRzRnSUNBZ0lDb2dZR1Z1WkdBZ2FYTWdibTkwSUhOd1pXTnBabWxsWkN3Z2FYUW5jeUJ6WlhRZ2RHOGdZSE4wWVhKMFlDQjNhWFJvSUdCemRHRnlkR0FnZEdobGJpQnpaWFFnZEc4Z1lEQmdMbHh1SUNBZ0lDQXFJRWxtSUdCemRHRnlkR0FnYVhNZ1ozSmxZWFJsY2lCMGFHRnVJR0JsYm1SZ0lIUm9aU0J3WVhKaGJYTWdZWEpsSUhOM1lYQndaV1FnZEc4Z2MzVndjRzl5ZEZ4dUlDQWdJQ0FxSUc1bFoyRjBhWFpsSUhKaGJtZGxjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXpMak11TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCT2RXMWlaWEpjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiblZ0WW1WeUlGUm9aU0J1ZFcxaVpYSWdkRzhnWTJobFkyc3VYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdHpkR0Z5ZEQwd1hTQlVhR1VnYzNSaGNuUWdiMllnZEdobElISmhibWRsTGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JsYm1RZ1ZHaGxJR1Z1WkNCdlppQjBhR1VnY21GdVoyVXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMkp2YjJ4bFlXNTlJRkpsZEhWeWJuTWdZSFJ5ZFdWZ0lHbG1JR0J1ZFcxaVpYSmdJR2x6SUdsdUlIUm9aU0J5WVc1blpTd2daV3h6WlNCZ1ptRnNjMlZnTGx4dUlDQWdJQ0FxSUVCelpXVWdYeTV5WVc1blpTd2dYeTV5WVc1blpWSnBaMmgwWEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YVc1U1lXNW5aU2d6TENBeUxDQTBLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQjBjblZsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1sdVVtRnVaMlVvTkN3Z09DazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2RISjFaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVwYmxKaGJtZGxLRFFzSURJcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUdaaGJITmxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx1VW1GdVoyVW9NaXdnTWlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnWm1Gc2MyVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhVzVTWVc1blpTZ3hMaklzSURJcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUhSeWRXVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVhVzVTWVc1blpTZzFMaklzSURRcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUdaaGJITmxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbWx1VW1GdVoyVW9MVE1zSUMweUxDQXROaWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdkSEoxWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR2x1VW1GdVoyVW9iblZ0WW1WeUxDQnpkR0Z5ZEN3Z1pXNWtLU0I3WEc0Z0lDQWdJQ0J6ZEdGeWRDQTlJSFJ2Um1sdWFYUmxLSE4wWVhKMEtUdGNiaUFnSUNBZ0lHbG1JQ2hsYm1RZ1BUMDlJSFZ1WkdWbWFXNWxaQ2tnZTF4dUlDQWdJQ0FnSUNCbGJtUWdQU0J6ZEdGeWREdGNiaUFnSUNBZ0lDQWdjM1JoY25RZ1BTQXdPMXh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdaVzVrSUQwZ2RHOUdhVzVwZEdVb1pXNWtLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJRzUxYldKbGNpQTlJSFJ2VG5WdFltVnlLRzUxYldKbGNpazdYRzRnSUNBZ0lDQnlaWFIxY200Z1ltRnpaVWx1VW1GdVoyVW9iblZ0WW1WeUxDQnpkR0Z5ZEN3Z1pXNWtLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJRY205a2RXTmxjeUJoSUhKaGJtUnZiU0J1ZFcxaVpYSWdZbVYwZDJWbGJpQjBhR1VnYVc1amJIVnphWFpsSUdCc2IzZGxjbUFnWVc1a0lHQjFjSEJsY21BZ1ltOTFibVJ6TGx4dUlDQWdJQ0FxSUVsbUlHOXViSGtnYjI1bElHRnlaM1Z0Wlc1MElHbHpJSEJ5YjNacFpHVmtJR0VnYm5WdFltVnlJR0psZEhkbFpXNGdZREJnSUdGdVpDQjBhR1VnWjJsMlpXNGdiblZ0WW1WeVhHNGdJQ0FnSUNvZ2FYTWdjbVYwZFhKdVpXUXVJRWxtSUdCbWJHOWhkR2x1WjJBZ2FYTWdZSFJ5ZFdWZ0xDQnZjaUJsYVhSb1pYSWdZR3h2ZDJWeVlDQnZjaUJnZFhCd1pYSmdJR0Z5WlZ4dUlDQWdJQ0FxSUdac2IyRjBjeXdnWVNCbWJHOWhkR2x1Wnkxd2IybHVkQ0J1ZFcxaVpYSWdhWE1nY21WMGRYSnVaV1FnYVc1emRHVmhaQ0J2WmlCaGJpQnBiblJsWjJWeUxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0tpcE9iM1JsT2lvcUlFcGhkbUZUWTNKcGNIUWdabTlzYkc5M2N5QjBhR1VnU1VWRlJTMDNOVFFnYzNSaGJtUmhjbVFnWm05eUlISmxjMjlzZG1sdVoxeHVJQ0FnSUNBcUlHWnNiMkYwYVc1bkxYQnZhVzUwSUhaaGJIVmxjeUIzYUdsamFDQmpZVzRnY0hKdlpIVmpaU0IxYm1WNGNHVmpkR1ZrSUhKbGMzVnNkSE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdNQzQzTGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1RuVnRZbVZ5WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnRzYjNkbGNqMHdYU0JVYUdVZ2JHOTNaWElnWW05MWJtUXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdDFjSEJsY2oweFhTQlVhR1VnZFhCd1pYSWdZbTkxYm1RdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0aWIyOXNaV0Z1ZlNCYlpteHZZWFJwYm1kZElGTndaV05wWm5rZ2NtVjBkWEp1YVc1bklHRWdabXh2WVhScGJtY3RjRzlwYm5RZ2JuVnRZbVZ5TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0dWRXMWlaWEo5SUZKbGRIVnlibk1nZEdobElISmhibVJ2YlNCdWRXMWlaWEl1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1Y21GdVpHOXRLREFzSURVcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUdGdUlHbHVkR1ZuWlhJZ1ltVjBkMlZsYmlBd0lHRnVaQ0ExWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5KaGJtUnZiU2cxS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJoYkhOdklHRnVJR2x1ZEdWblpYSWdZbVYwZDJWbGJpQXdJR0Z1WkNBMVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuSmhibVJ2YlNnMUxDQjBjblZsS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJoSUdac2IyRjBhVzVuTFhCdmFXNTBJRzUxYldKbGNpQmlaWFIzWldWdUlEQWdZVzVrSURWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWNtRnVaRzl0S0RFdU1pd2dOUzR5S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJoSUdac2IyRjBhVzVuTFhCdmFXNTBJRzUxYldKbGNpQmlaWFIzWldWdUlERXVNaUJoYm1RZ05TNHlYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2NtRnVaRzl0S0d4dmQyVnlMQ0IxY0hCbGNpd2dabXh2WVhScGJtY3BJSHRjYmlBZ0lDQWdJR2xtSUNobWJHOWhkR2x1WnlBbUppQjBlWEJsYjJZZ1pteHZZWFJwYm1jZ0lUMGdKMkp2YjJ4bFlXNG5JQ1ltSUdselNYUmxjbUYwWldWRFlXeHNLR3h2ZDJWeUxDQjFjSEJsY2l3Z1pteHZZWFJwYm1jcEtTQjdYRzRnSUNBZ0lDQWdJSFZ3Y0dWeUlEMGdabXh2WVhScGJtY2dQU0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JwWmlBb1pteHZZWFJwYm1jZ1BUMDlJSFZ1WkdWbWFXNWxaQ2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlIVndjR1Z5SUQwOUlDZGliMjlzWldGdUp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUdac2IyRjBhVzVuSUQwZ2RYQndaWEk3WEc0Z0lDQWdJQ0FnSUNBZ2RYQndaWElnUFNCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9kSGx3Wlc5bUlHeHZkMlZ5SUQwOUlDZGliMjlzWldGdUp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUdac2IyRjBhVzVuSUQwZ2JHOTNaWEk3WEc0Z0lDQWdJQ0FnSUNBZ2JHOTNaWElnUFNCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHbG1JQ2hzYjNkbGNpQTlQVDBnZFc1a1pXWnBibVZrSUNZbUlIVndjR1Z5SUQwOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJQ0FnYkc5M1pYSWdQU0F3TzF4dUlDQWdJQ0FnSUNCMWNIQmxjaUE5SURFN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnYkc5M1pYSWdQU0IwYjBacGJtbDBaU2hzYjNkbGNpazdYRzRnSUNBZ0lDQWdJR2xtSUNoMWNIQmxjaUE5UFQwZ2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnZFhCd1pYSWdQU0JzYjNkbGNqdGNiaUFnSUNBZ0lDQWdJQ0JzYjNkbGNpQTlJREE3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RYQndaWElnUFNCMGIwWnBibWwwWlNoMWNIQmxjaWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdsbUlDaHNiM2RsY2lBK0lIVndjR1Z5S1NCN1hHNGdJQ0FnSUNBZ0lIWmhjaUIwWlcxd0lEMGdiRzkzWlhJN1hHNGdJQ0FnSUNBZ0lHeHZkMlZ5SUQwZ2RYQndaWEk3WEc0Z0lDQWdJQ0FnSUhWd2NHVnlJRDBnZEdWdGNEdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHbG1JQ2htYkc5aGRHbHVaeUI4ZkNCc2IzZGxjaUFsSURFZ2ZId2dkWEJ3WlhJZ0pTQXhLU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQnlZVzVrSUQwZ2JtRjBhWFpsVW1GdVpHOXRLQ2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1WVhScGRtVk5hVzRvYkc5M1pYSWdLeUFvY21GdVpDQXFJQ2gxY0hCbGNpQXRJR3h2ZDJWeUlDc2dabkpsWlZCaGNuTmxSbXh2WVhRb0p6RmxMU2NnS3lBb0tISmhibVFnS3lBbkp5a3ViR1Z1WjNSb0lDMGdNU2twS1Nrc0lIVndjR1Z5S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUJpWVhObFVtRnVaRzl0S0d4dmQyVnlMQ0IxY0hCbGNpazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3RMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHFMMXh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTI5dWRtVnlkSE1nWUhOMGNtbHVaMkFnZEc4Z1cyTmhiV1ZzSUdOaGMyVmRLR2gwZEhCek9pOHZaVzR1ZDJscmFYQmxaR2xoTG05eVp5OTNhV3RwTDBOaGJXVnNRMkZ6WlNrdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTXk0d0xqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dVM1J5YVc1blhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0emRISnBibWM5SnlkZElGUm9aU0J6ZEhKcGJtY2dkRzhnWTI5dWRtVnlkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3YzNSeWFXNW5mU0JTWlhSMWNtNXpJSFJvWlNCallXMWxiQ0JqWVhObFpDQnpkSEpwYm1jdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dVkyRnRaV3hEWVhObEtDZEdiMjhnUW1GeUp5azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z0oyWnZiMEpoY2lkY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dVkyRnRaV3hEWVhObEtDY3RMV1p2YnkxaVlYSXRMU2NwTzF4dUlDQWdJQ0FxSUM4dklEMCtJQ2RtYjI5Q1lYSW5YRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbU5oYldWc1EyRnpaU2duWDE5R1QwOWZRa0ZTWDE4bktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBblptOXZRbUZ5SjF4dUlDQWdJQ0FxTDF4dUlDQWdJSFpoY2lCallXMWxiRU5oYzJVZ1BTQmpjbVZoZEdWRGIyMXdiM1Z1WkdWeUtHWjFibU4wYVc5dUtISmxjM1ZzZEN3Z2QyOXlaQ3dnYVc1a1pYZ3BJSHRjYmlBZ0lDQWdJSGR2Y21RZ1BTQjNiM0prTG5SdlRHOTNaWEpEWVhObEtDazdYRzRnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwSUNzZ0tHbHVaR1Y0SUQ4Z1kyRndhWFJoYkdsNlpTaDNiM0prS1NBNklIZHZjbVFwTzF4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyOXVkbVZ5ZEhNZ2RHaGxJR1pwY25OMElHTm9ZWEpoWTNSbGNpQnZaaUJnYzNSeWFXNW5ZQ0IwYnlCMWNIQmxjaUJqWVhObElHRnVaQ0IwYUdVZ2NtVnRZV2x1YVc1blhHNGdJQ0FnSUNvZ2RHOGdiRzkzWlhJZ1kyRnpaUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQXpMakF1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCVGRISnBibWRjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXM04wY21sdVp6MG5KMTBnVkdobElITjBjbWx1WnlCMGJ5QmpZWEJwZEdGc2FYcGxMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHR6ZEhKcGJtZDlJRkpsZEhWeWJuTWdkR2hsSUdOaGNHbDBZV3hwZW1Wa0lITjBjbWx1Wnk1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1allYQnBkR0ZzYVhwbEtDZEdVa1ZFSnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnSjBaeVpXUW5YRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z1kyRndhWFJoYkdsNlpTaHpkSEpwYm1jcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMWNIQmxja1pwY25OMEtIUnZVM1J5YVc1bktITjBjbWx1WnlrdWRHOU1iM2RsY2tOaGMyVW9LU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUkdWaWRYSnljeUJnYzNSeWFXNW5ZQ0JpZVNCamIyNTJaWEowYVc1blhHNGdJQ0FnSUNvZ1cweGhkR2x1TFRFZ1UzVndjR3hsYldWdWRGMG9hSFIwY0hNNkx5OWxiaTUzYVd0cGNHVmthV0V1YjNKbkwzZHBhMmt2VEdGMGFXNHRNVjlUZFhCd2JHVnRaVzUwWHloVmJtbGpiMlJsWDJKc2IyTnJLU05EYUdGeVlXTjBaWEpmZEdGaWJHVXBYRzRnSUNBZ0lDb2dZVzVrSUZ0TVlYUnBiaUJGZUhSbGJtUmxaQzFCWFNob2RIUndjem92TDJWdUxuZHBhMmx3WldScFlTNXZjbWN2ZDJscmFTOU1ZWFJwYmw5RmVIUmxibVJsWkMxQktWeHVJQ0FnSUNBcUlHeGxkSFJsY25NZ2RHOGdZbUZ6YVdNZ1RHRjBhVzRnYkdWMGRHVnljeUJoYm1RZ2NtVnRiM1pwYm1kY2JpQWdJQ0FnS2lCYlkyOXRZbWx1YVc1bklHUnBZV055YVhScFkyRnNJRzFoY210elhTaG9kSFJ3Y3pvdkwyVnVMbmRwYTJsd1pXUnBZUzV2Y21jdmQybHJhUzlEYjIxaWFXNXBibWRmUkdsaFkzSnBkR2xqWVd4ZlRXRnlhM01wTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRE11TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlGTjBjbWx1WjF4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYzNSeWFXNW5QU2NuWFNCVWFHVWdjM1J5YVc1bklIUnZJR1JsWW5WeWNpNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdjM1J5YVc1bmZTQlNaWFIxY201eklIUm9aU0JrWldKMWNuSmxaQ0J6ZEhKcGJtY3VYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVaR1ZpZFhKeUtDZGt3NmxxdzZBZ2RuVW5LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQW5aR1ZxWVNCMmRTZGNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCa1pXSjFjbklvYzNSeWFXNW5LU0I3WEc0Z0lDQWdJQ0J6ZEhKcGJtY2dQU0IwYjFOMGNtbHVaeWh6ZEhKcGJtY3BPMXh1SUNBZ0lDQWdjbVYwZFhKdUlITjBjbWx1WnlBbUppQnpkSEpwYm1jdWNtVndiR0ZqWlNoeVpVeGhkR2x1TENCa1pXSjFjbkpNWlhSMFpYSXBMbkpsY0d4aFkyVW9jbVZEYjIxaWIwMWhjbXNzSUNjbktUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRhR1ZqYTNNZ2FXWWdZSE4wY21sdVoyQWdaVzVrY3lCM2FYUm9JSFJvWlNCbmFYWmxiaUIwWVhKblpYUWdjM1J5YVc1bkxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURNdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRk4wY21sdVoxeHVJQ0FnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmMzUnlhVzVuUFNjblhTQlVhR1VnYzNSeWFXNW5JSFJ2SUdsdWMzQmxZM1F1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnQwWVhKblpYUmRJRlJvWlNCemRISnBibWNnZEc4Z2MyVmhjbU5vSUdadmNpNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1czQnZjMmwwYVc5dVBYTjBjbWx1Wnk1c1pXNW5kR2hkSUZSb1pTQndiM05wZEdsdmJpQjBieUJ6WldGeVkyZ2dkWEFnZEc4dVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UySnZiMnhsWVc1OUlGSmxkSFZ5Ym5NZ1lIUnlkV1ZnSUdsbUlHQnpkSEpwYm1kZ0lHVnVaSE1nZDJsMGFDQmdkR0Z5WjJWMFlDeGNiaUFnSUNBZ0tpQWdaV3h6WlNCZ1ptRnNjMlZnTGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1WdVpITlhhWFJvS0NkaFltTW5MQ0FuWXljcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUhSeWRXVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVaVzVrYzFkcGRHZ29KMkZpWXljc0lDZGlKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdabUZzYzJWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dVpXNWtjMWRwZEdnb0oyRmlZeWNzSUNkaUp5d2dNaWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdkSEoxWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR1Z1WkhOWGFYUm9LSE4wY21sdVp5d2dkR0Z5WjJWMExDQndiM05wZEdsdmJpa2dlMXh1SUNBZ0lDQWdjM1J5YVc1bklEMGdkRzlUZEhKcGJtY29jM1J5YVc1bktUdGNiaUFnSUNBZ0lIUmhjbWRsZENBOUlHSmhjMlZVYjFOMGNtbHVaeWgwWVhKblpYUXBPMXh1WEc0Z0lDQWdJQ0IyWVhJZ2JHVnVaM1JvSUQwZ2MzUnlhVzVuTG14bGJtZDBhRHRjYmlBZ0lDQWdJSEJ2YzJsMGFXOXVJRDBnY0c5emFYUnBiMjRnUFQwOUlIVnVaR1ZtYVc1bFpGeHVJQ0FnSUNBZ0lDQS9JR3hsYm1kMGFGeHVJQ0FnSUNBZ0lDQTZJR0poYzJWRGJHRnRjQ2gwYjBsdWRHVm5aWElvY0c5emFYUnBiMjRwTENBd0xDQnNaVzVuZEdncE8xeHVYRzRnSUNBZ0lDQjJZWElnWlc1a0lEMGdjRzl6YVhScGIyNDdYRzRnSUNBZ0lDQndiM05wZEdsdmJpQXRQU0IwWVhKblpYUXViR1Z1WjNSb08xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhCdmMybDBhVzl1SUQ0OUlEQWdKaVlnYzNSeWFXNW5Mbk5zYVdObEtIQnZjMmwwYVc5dUxDQmxibVFwSUQwOUlIUmhjbWRsZER0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGIyNTJaWEowY3lCMGFHVWdZMmhoY21GamRHVnljeUJjSWlaY0lpd2dYQ0k4WENJc0lGd2lQbHdpTENBblhDSW5MQ0JoYm1RZ1hDSW5YQ0lnYVc0Z1lITjBjbWx1WjJBZ2RHOGdkR2hsYVhKY2JpQWdJQ0FnS2lCamIzSnlaWE53YjI1a2FXNW5JRWhVVFV3Z1pXNTBhWFJwWlhNdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBcUtrNXZkR1U2S2lvZ1RtOGdiM1JvWlhJZ1kyaGhjbUZqZEdWeWN5QmhjbVVnWlhOallYQmxaQzRnVkc4Z1pYTmpZWEJsSUdGa1pHbDBhVzl1WVd4Y2JpQWdJQ0FnS2lCamFHRnlZV04wWlhKeklIVnpaU0JoSUhSb2FYSmtMWEJoY25SNUlHeHBZbkpoY25rZ2JHbHJaU0JiWDJobFgxMG9hSFIwY0hNNkx5OXRkR2h6TG1KbEwyaGxLUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRlJvYjNWbmFDQjBhR1VnWENJK1hDSWdZMmhoY21GamRHVnlJR2x6SUdWelkyRndaV1FnWm05eUlITjViVzFsZEhKNUxDQmphR0Z5WVdOMFpYSnpJR3hwYTJWY2JpQWdJQ0FnS2lCY0lqNWNJaUJoYm1RZ1hDSXZYQ0lnWkc5dUozUWdibVZsWkNCbGMyTmhjR2x1WnlCcGJpQklWRTFNSUdGdVpDQm9ZWFpsSUc1dklITndaV05wWVd3Z2JXVmhibWx1WjF4dUlDQWdJQ0FxSUhWdWJHVnpjeUIwYUdWNUozSmxJSEJoY25RZ2IyWWdZU0IwWVdjZ2IzSWdkVzV4ZFc5MFpXUWdZWFIwY21saWRYUmxJSFpoYkhWbExpQlRaV1ZjYmlBZ0lDQWdLaUJiVFdGMGFHbGhjeUJDZVc1bGJuTW5jeUJoY25ScFkyeGxYU2hvZEhSd2N6b3ZMMjFoZEdocFlYTmllVzVsYm5NdVltVXZibTkwWlhNdllXMWlhV2QxYjNWekxXRnRjR1Z5YzJGdVpITXBYRzRnSUNBZ0lDb2dLSFZ1WkdWeUlGd2ljMlZ0YVMxeVpXeGhkR1ZrSUdaMWJpQm1ZV04wWENJcElHWnZjaUJ0YjNKbElHUmxkR0ZwYkhNdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCWGFHVnVJSGR2Y210cGJtY2dkMmwwYUNCSVZFMU1JSGx2ZFNCemFHOTFiR1FnWVd4M1lYbHpYRzRnSUNBZ0lDb2dXM0YxYjNSbElHRjBkSEpwWW5WMFpTQjJZV3gxWlhOZEtHaDBkSEE2THk5M2IyNXJieTVqYjIwdmNHOXpkQzlvZEcxc0xXVnpZMkZ3YVc1bktTQjBieUJ5WldSMVkyVmNiaUFnSUNBZ0tpQllVMU1nZG1WamRHOXljeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01DNHhMakJjYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCVGRISnBibWRjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXM04wY21sdVp6MG5KMTBnVkdobElITjBjbWx1WnlCMGJ5QmxjMk5oY0dVdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UzTjBjbWx1WjMwZ1VtVjBkWEp1Y3lCMGFHVWdaWE5qWVhCbFpDQnpkSEpwYm1jdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dVpYTmpZWEJsS0NkbWNtVmtMQ0JpWVhKdVpYa3NJQ1lnY0dWaVlteGxjeWNwTzF4dUlDQWdJQ0FxSUM4dklEMCtJQ2RtY21Wa0xDQmlZWEp1Wlhrc0lDWmhiWEE3SUhCbFltSnNaWE1uWEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdaWE5qWVhCbEtITjBjbWx1WnlrZ2UxeHVJQ0FnSUNBZ2MzUnlhVzVuSUQwZ2RHOVRkSEpwYm1jb2MzUnlhVzVuS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUFvYzNSeWFXNW5JQ1ltSUhKbFNHRnpWVzVsYzJOaGNHVmtTSFJ0YkM1MFpYTjBLSE4wY21sdVp5a3BYRzRnSUNBZ0lDQWdJRDhnYzNSeWFXNW5MbkpsY0d4aFkyVW9jbVZWYm1WelkyRndaV1JJZEcxc0xDQmxjMk5oY0dWSWRHMXNRMmhoY2lsY2JpQWdJQ0FnSUNBZ09pQnpkSEpwYm1jN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1JYTmpZWEJsY3lCMGFHVWdZRkpsWjBWNGNHQWdjM0JsWTJsaGJDQmphR0Z5WVdOMFpYSnpJRndpWGx3aUxDQmNJaVJjSWl3Z1hDSmNYRndpTENCY0lpNWNJaXdnWENJcVhDSXNJRndpSzF3aUxGeHVJQ0FnSUNBcUlGd2lQMXdpTENCY0lpaGNJaXdnWENJcFhDSXNJRndpVzF3aUxDQmNJbDFjSWl3Z1hDSjdYQ0lzSUZ3aWZWd2lMQ0JoYm1RZ1hDSjhYQ0lnYVc0Z1lITjBjbWx1WjJBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTXk0d0xqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dVM1J5YVc1blhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0emRISnBibWM5SnlkZElGUm9aU0J6ZEhKcGJtY2dkRzhnWlhOallYQmxMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHR6ZEhKcGJtZDlJRkpsZEhWeWJuTWdkR2hsSUdWelkyRndaV1FnYzNSeWFXNW5MbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbVZ6WTJGd1pWSmxaMFY0Y0NnblcyeHZaR0Z6YUYwb2FIUjBjSE02THk5c2IyUmhjMmd1WTI5dEx5a25LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQW5YRnhiYkc5a1lYTm9YRnhkWEZ3b2FIUjBjSE02THk5c2IyUmhjMmhjWEM1amIyMHZYRndwSjF4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR1Z6WTJGd1pWSmxaMFY0Y0NoemRISnBibWNwSUh0Y2JpQWdJQ0FnSUhOMGNtbHVaeUE5SUhSdlUzUnlhVzVuS0hOMGNtbHVaeWs3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdLSE4wY21sdVp5QW1KaUJ5WlVoaGMxSmxaMFY0Y0VOb1lYSXVkR1Z6ZENoemRISnBibWNwS1Z4dUlDQWdJQ0FnSUNBL0lITjBjbWx1Wnk1eVpYQnNZV05sS0hKbFVtVm5SWGh3UTJoaGNpd2dKMXhjWEZ3a0ppY3BYRzRnSUNBZ0lDQWdJRG9nYzNSeWFXNW5PMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU52Ym5abGNuUnpJR0J6ZEhKcGJtZGdJSFJ2WEc0Z0lDQWdJQ29nVzJ0bFltRmlJR05oYzJWZEtHaDBkSEJ6T2k4dlpXNHVkMmxyYVhCbFpHbGhMbTl5Wnk5M2FXdHBMMHhsZEhSbGNsOWpZWE5sSTFOd1pXTnBZV3hmWTJGelpWOXpkSGxzWlhNcExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURNdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRk4wY21sdVoxeHVJQ0FnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmMzUnlhVzVuUFNjblhTQlVhR1VnYzNSeWFXNW5JSFJ2SUdOdmJuWmxjblF1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTNOMGNtbHVaMzBnVW1WMGRYSnVjeUIwYUdVZ2EyVmlZV0lnWTJGelpXUWdjM1J5YVc1bkxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtdGxZbUZpUTJGelpTZ25SbTl2SUVKaGNpY3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lDZG1iMjh0WW1GeUoxeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXJaV0poWWtOaGMyVW9KMlp2YjBKaGNpY3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lDZG1iMjh0WW1GeUoxeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXJaV0poWWtOaGMyVW9KMTlmUms5UFgwSkJVbDlmSnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnSjJadmJ5MWlZWEluWEc0Z0lDQWdJQ292WEc0Z0lDQWdkbUZ5SUd0bFltRmlRMkZ6WlNBOUlHTnlaV0YwWlVOdmJYQnZkVzVrWlhJb1puVnVZM1JwYjI0b2NtVnpkV3gwTENCM2IzSmtMQ0JwYm1SbGVDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZENBcklDaHBibVJsZUNBL0lDY3RKeUE2SUNjbktTQXJJSGR2Y21RdWRHOU1iM2RsY2tOaGMyVW9LVHRjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOdmJuWmxjblJ6SUdCemRISnBibWRnTENCaGN5QnpjR0ZqWlNCelpYQmhjbUYwWldRZ2QyOXlaSE1zSUhSdklHeHZkMlZ5SUdOaGMyVXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ05DNHdMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVTNSeWFXNW5YRzRnSUNBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdHpkSEpwYm1jOUp5ZGRJRlJvWlNCemRISnBibWNnZEc4Z1kyOXVkbVZ5ZEM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN2MzUnlhVzVuZlNCU1pYUjFjbTV6SUhSb1pTQnNiM2RsY2lCallYTmxaQ0J6ZEhKcGJtY3VYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHViRzkzWlhKRFlYTmxLQ2N0TFVadmJ5MUNZWEl0TFNjcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUNkbWIyOGdZbUZ5SjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1c2IzZGxja05oYzJVb0oyWnZiMEpoY2ljcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUNkbWIyOGdZbUZ5SjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1c2IzZGxja05oYzJVb0oxOWZSazlQWDBKQlVsOWZKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMlp2YnlCaVlYSW5YRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RtRnlJR3h2ZDJWeVEyRnpaU0E5SUdOeVpXRjBaVU52YlhCdmRXNWtaWElvWm5WdVkzUnBiMjRvY21WemRXeDBMQ0IzYjNKa0xDQnBibVJsZUNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkQ0FySUNocGJtUmxlQ0EvSUNjZ0p5QTZJQ2NuS1NBcklIZHZjbVF1ZEc5TWIzZGxja05oYzJVb0tUdGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU52Ym5abGNuUnpJSFJvWlNCbWFYSnpkQ0JqYUdGeVlXTjBaWElnYjJZZ1lITjBjbWx1WjJBZ2RHOGdiRzkzWlhJZ1kyRnpaUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQTBMakF1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCVGRISnBibWRjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXM04wY21sdVp6MG5KMTBnVkdobElITjBjbWx1WnlCMGJ5QmpiMjUyWlhKMExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdHpkSEpwYm1kOUlGSmxkSFZ5Ym5NZ2RHaGxJR052Ym5abGNuUmxaQ0J6ZEhKcGJtY3VYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHViRzkzWlhKR2FYSnpkQ2duUm5KbFpDY3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lDZG1jbVZrSjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1c2IzZGxja1pwY25OMEtDZEdVa1ZFSnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnSjJaU1JVUW5YRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RtRnlJR3h2ZDJWeVJtbHljM1FnUFNCamNtVmhkR1ZEWVhObFJtbHljM1FvSjNSdlRHOTNaWEpEWVhObEp5azdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJRWVdSeklHQnpkSEpwYm1kZ0lHOXVJSFJvWlNCc1pXWjBJR0Z1WkNCeWFXZG9kQ0J6YVdSbGN5QnBaaUJwZENkeklITm9iM0owWlhJZ2RHaGhiaUJnYkdWdVozUm9ZQzVjYmlBZ0lDQWdLaUJRWVdSa2FXNW5JR05vWVhKaFkzUmxjbk1nWVhKbElIUnlkVzVqWVhSbFpDQnBaaUIwYUdWNUlHTmhiaWQwSUdKbElHVjJaVzVzZVNCa2FYWnBaR1ZrSUdKNUlHQnNaVzVuZEdoZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURNdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRk4wY21sdVoxeHVJQ0FnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmMzUnlhVzVuUFNjblhTQlVhR1VnYzNSeWFXNW5JSFJ2SUhCaFpDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1cyeGxibWQwYUQwd1hTQlVhR1VnY0dGa1pHbHVaeUJzWlc1bmRHZ3VYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdGphR0Z5Y3owbklDZGRJRlJvWlNCemRISnBibWNnZFhObFpDQmhjeUJ3WVdSa2FXNW5MbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHR6ZEhKcGJtZDlJRkpsZEhWeWJuTWdkR2hsSUhCaFpHUmxaQ0J6ZEhKcGJtY3VYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVjR0ZrS0NkaFltTW5MQ0E0S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUFuSUNCaFltTWdJQ0FuWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5CaFpDZ25ZV0pqSnl3Z09Dd2dKMTh0SnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnSjE4dFlXSmpYeTFmSjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1d1lXUW9KMkZpWXljc0lETXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lDZGhZbU1uWEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdjR0ZrS0hOMGNtbHVaeXdnYkdWdVozUm9MQ0JqYUdGeWN5a2dlMXh1SUNBZ0lDQWdjM1J5YVc1bklEMGdkRzlUZEhKcGJtY29jM1J5YVc1bktUdGNiaUFnSUNBZ0lHeGxibWQwYUNBOUlIUnZTVzUwWldkbGNpaHNaVzVuZEdncE8xeHVYRzRnSUNBZ0lDQjJZWElnYzNSeVRHVnVaM1JvSUQwZ2JHVnVaM1JvSUQ4Z2MzUnlhVzVuVTJsNlpTaHpkSEpwYm1jcElEb2dNRHRjYmlBZ0lDQWdJR2xtSUNnaGJHVnVaM1JvSUh4OElITjBja3hsYm1kMGFDQStQU0JzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSE4wY21sdVp6dGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lIWmhjaUJ0YVdRZ1BTQW9iR1Z1WjNSb0lDMGdjM1J5VEdWdVozUm9LU0F2SURJN1hHNGdJQ0FnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnSUNCamNtVmhkR1ZRWVdSa2FXNW5LRzVoZEdsMlpVWnNiMjl5S0cxcFpDa3NJR05vWVhKektTQXJYRzRnSUNBZ0lDQWdJSE4wY21sdVp5QXJYRzRnSUNBZ0lDQWdJR055WldGMFpWQmhaR1JwYm1jb2JtRjBhWFpsUTJWcGJDaHRhV1FwTENCamFHRnljeWxjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVUdGa2N5QmdjM1J5YVc1bllDQnZiaUIwYUdVZ2NtbG5hSFFnYzJsa1pTQnBaaUJwZENkeklITm9iM0owWlhJZ2RHaGhiaUJnYkdWdVozUm9ZQzRnVUdGa1pHbHVaMXh1SUNBZ0lDQXFJR05vWVhKaFkzUmxjbk1nWVhKbElIUnlkVzVqWVhSbFpDQnBaaUIwYUdWNUlHVjRZMlZsWkNCZ2JHVnVaM1JvWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0EwTGpBdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQlRkSEpwYm1kY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzNOMGNtbHVaejBuSjEwZ1ZHaGxJSE4wY21sdVp5QjBieUJ3WVdRdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0c1pXNW5kR2c5TUYwZ1ZHaGxJSEJoWkdScGJtY2diR1Z1WjNSb0xseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYlkyaGhjbk05SnlBblhTQlVhR1VnYzNSeWFXNW5JSFZ6WldRZ1lYTWdjR0ZrWkdsdVp5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdjM1J5YVc1bmZTQlNaWFIxY201eklIUm9aU0J3WVdSa1pXUWdjM1J5YVc1bkxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuQmhaRVZ1WkNnbllXSmpKeXdnTmlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnSjJGaVl5QWdJQ2RjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1Y0dGa1JXNWtLQ2RoWW1NbkxDQTJMQ0FuWHkwbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBbllXSmpYeTFmSjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1d1lXUkZibVFvSjJGaVl5Y3NJRE1wTzF4dUlDQWdJQ0FxSUM4dklEMCtJQ2RoWW1NblhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnY0dGa1JXNWtLSE4wY21sdVp5d2diR1Z1WjNSb0xDQmphR0Z5Y3lrZ2UxeHVJQ0FnSUNBZ2MzUnlhVzVuSUQwZ2RHOVRkSEpwYm1jb2MzUnlhVzVuS1R0Y2JpQWdJQ0FnSUd4bGJtZDBhQ0E5SUhSdlNXNTBaV2RsY2loc1pXNW5kR2dwTzF4dVhHNGdJQ0FnSUNCMllYSWdjM1J5VEdWdVozUm9JRDBnYkdWdVozUm9JRDhnYzNSeWFXNW5VMmw2WlNoemRISnBibWNwSURvZ01EdGNiaUFnSUNBZ0lISmxkSFZ5YmlBb2JHVnVaM1JvSUNZbUlITjBja3hsYm1kMGFDQThJR3hsYm1kMGFDbGNiaUFnSUNBZ0lDQWdQeUFvYzNSeWFXNW5JQ3NnWTNKbFlYUmxVR0ZrWkdsdVp5aHNaVzVuZEdnZ0xTQnpkSEpNWlc1bmRHZ3NJR05vWVhKektTbGNiaUFnSUNBZ0lDQWdPaUJ6ZEhKcGJtYzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dVR0ZrY3lCZ2MzUnlhVzVuWUNCdmJpQjBhR1VnYkdWbWRDQnphV1JsSUdsbUlHbDBKM01nYzJodmNuUmxjaUIwYUdGdUlHQnNaVzVuZEdoZ0xpQlFZV1JrYVc1blhHNGdJQ0FnSUNvZ1kyaGhjbUZqZEdWeWN5QmhjbVVnZEhKMWJtTmhkR1ZrSUdsbUlIUm9aWGtnWlhoalpXVmtJR0JzWlc1bmRHaGdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUZOMGNtbHVaMXh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJjM1J5YVc1blBTY25YU0JVYUdVZ2MzUnlhVzVuSUhSdklIQmhaQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXMnhsYm1kMGFEMHdYU0JVYUdVZ2NHRmtaR2x1WnlCc1pXNW5kR2d1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnRqYUdGeWN6MG5JQ2RkSUZSb1pTQnpkSEpwYm1jZ2RYTmxaQ0JoY3lCd1lXUmthVzVuTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0emRISnBibWQ5SUZKbGRIVnlibk1nZEdobElIQmhaR1JsWkNCemRISnBibWN1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1Y0dGa1UzUmhjblFvSjJGaVl5Y3NJRFlwTzF4dUlDQWdJQ0FxSUM4dklEMCtJQ2NnSUNCaFltTW5YRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbkJoWkZOMFlYSjBLQ2RoWW1NbkxDQTJMQ0FuWHkwbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBblh5MWZZV0pqSjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1d1lXUlRkR0Z5ZENnbllXSmpKeXdnTXlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnSjJGaVl5ZGNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCd1lXUlRkR0Z5ZENoemRISnBibWNzSUd4bGJtZDBhQ3dnWTJoaGNuTXBJSHRjYmlBZ0lDQWdJSE4wY21sdVp5QTlJSFJ2VTNSeWFXNW5LSE4wY21sdVp5azdYRzRnSUNBZ0lDQnNaVzVuZEdnZ1BTQjBiMGx1ZEdWblpYSW9iR1Z1WjNSb0tUdGNibHh1SUNBZ0lDQWdkbUZ5SUhOMGNreGxibWQwYUNBOUlHeGxibWQwYUNBL0lITjBjbWx1WjFOcGVtVW9jM1J5YVc1bktTQTZJREE3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdLR3hsYm1kMGFDQW1KaUJ6ZEhKTVpXNW5kR2dnUENCc1pXNW5kR2dwWEc0Z0lDQWdJQ0FnSUQ4Z0tHTnlaV0YwWlZCaFpHUnBibWNvYkdWdVozUm9JQzBnYzNSeVRHVnVaM1JvTENCamFHRnljeWtnS3lCemRISnBibWNwWEc0Z0lDQWdJQ0FnSURvZ2MzUnlhVzVuTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOdmJuWmxjblJ6SUdCemRISnBibWRnSUhSdklHRnVJR2x1ZEdWblpYSWdiMllnZEdobElITndaV05wWm1sbFpDQnlZV1JwZUM0Z1NXWWdZSEpoWkdsNFlDQnBjMXh1SUNBZ0lDQXFJR0IxYm1SbFptbHVaV1JnSUc5eUlHQXdZQ3dnWVNCZ2NtRmthWGhnSUc5bUlHQXhNR0FnYVhNZ2RYTmxaQ0IxYm14bGMzTWdZSFpoYkhWbFlDQnBjeUJoWEc0Z0lDQWdJQ29nYUdWNFlXUmxZMmx0WVd3c0lHbHVJSGRvYVdOb0lHTmhjMlVnWVNCZ2NtRmthWGhnSUc5bUlHQXhObUFnYVhNZ2RYTmxaQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQ29xVG05MFpUb3FLaUJVYUdseklHMWxkR2h2WkNCaGJHbG5ibk1nZDJsMGFDQjBhR1ZjYmlBZ0lDQWdLaUJiUlZNMUlHbHRjR3hsYldWdWRHRjBhVzl1WFNob2RIUndjem92TDJWek5TNW5hWFJvZFdJdWFXOHZJM2d4TlM0eExqSXVNaWtnYjJZZ1lIQmhjbk5sU1c1MFlDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBeExqRXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JUZEhKcGJtZGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2MzUnlhVzVuSUZSb1pTQnpkSEpwYm1jZ2RHOGdZMjl1ZG1WeWRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1czSmhaR2w0UFRFd1hTQlVhR1VnY21Ga2FYZ2dkRzhnYVc1MFpYSndjbVYwSUdCMllXeDFaV0FnWW5rdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0TFNCN1QySnFaV04wZlNCYlozVmhjbVJkSUVWdVlXSnNaWE1nZFhObElHRnpJR0Z1SUdsMFpYSmhkR1ZsSUdadmNpQnRaWFJvYjJSeklHeHBhMlVnWUY4dWJXRndZQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3Ym5WdFltVnlmU0JTWlhSMWNtNXpJSFJvWlNCamIyNTJaWEowWldRZ2FXNTBaV2RsY2k1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1d1lYSnpaVWx1ZENnbk1EZ25LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQTRYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbTFoY0NoYkp6WW5MQ0FuTURnbkxDQW5NVEFuWFN3Z1h5NXdZWEp6WlVsdWRDazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1d6WXNJRGdzSURFd1hWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUhCaGNuTmxTVzUwS0hOMGNtbHVaeXdnY21Ga2FYZ3NJR2QxWVhKa0tTQjdYRzRnSUNBZ0lDQnBaaUFvWjNWaGNtUWdmSHdnY21Ga2FYZ2dQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdJQ0J5WVdScGVDQTlJREE3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0hKaFpHbDRLU0I3WEc0Z0lDQWdJQ0FnSUhKaFpHbDRJRDBnSzNKaFpHbDRPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlHNWhkR2wyWlZCaGNuTmxTVzUwS0hSdlUzUnlhVzVuS0hOMGNtbHVaeWt1Y21Wd2JHRmpaU2h5WlZSeWFXMVRkR0Z5ZEN3Z0p5Y3BMQ0J5WVdScGVDQjhmQ0F3S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCU1pYQmxZWFJ6SUhSb1pTQm5hWFpsYmlCemRISnBibWNnWUc1Z0lIUnBiV1Z6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRE11TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlGTjBjbWx1WjF4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYzNSeWFXNW5QU2NuWFNCVWFHVWdjM1J5YVc1bklIUnZJSEpsY0dWaGRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1cyNDlNVjBnVkdobElHNTFiV0psY2lCdlppQjBhVzFsY3lCMGJ5QnlaWEJsWVhRZ2RHaGxJSE4wY21sdVp5NWNiaUFnSUNBZ0tpQkFjR0Z5WVcwdElIdFBZbXBsWTNSOUlGdG5kV0Z5WkYwZ1JXNWhZbXhsY3lCMWMyVWdZWE1nWVc0Z2FYUmxjbUYwWldVZ1ptOXlJRzFsZEdodlpITWdiR2xyWlNCZ1h5NXRZWEJnTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0emRISnBibWQ5SUZKbGRIVnlibk1nZEdobElISmxjR1ZoZEdWa0lITjBjbWx1Wnk1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1eVpYQmxZWFFvSnlvbkxDQXpLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQW5LaW9xSjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1eVpYQmxZWFFvSjJGaVl5Y3NJRElwTzF4dUlDQWdJQ0FxSUM4dklEMCtJQ2RoWW1OaFltTW5YRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbkpsY0dWaGRDZ25ZV0pqSnl3Z01DazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z0p5ZGNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCeVpYQmxZWFFvYzNSeWFXNW5MQ0J1TENCbmRXRnlaQ2tnZTF4dUlDQWdJQ0FnYVdZZ0tDaG5kV0Z5WkNBL0lHbHpTWFJsY21GMFpXVkRZV3hzS0hOMGNtbHVaeXdnYml3Z1ozVmhjbVFwSURvZ2JpQTlQVDBnZFc1a1pXWnBibVZrS1NrZ2UxeHVJQ0FnSUNBZ0lDQnVJRDBnTVR0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUc0Z1BTQjBiMGx1ZEdWblpYSW9iaWs3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZbUZ6WlZKbGNHVmhkQ2gwYjFOMGNtbHVaeWh6ZEhKcGJtY3BMQ0J1S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCU1pYQnNZV05sY3lCdFlYUmphR1Z6SUdadmNpQmdjR0YwZEdWeWJtQWdhVzRnWUhOMGNtbHVaMkFnZDJsMGFDQmdjbVZ3YkdGalpXMWxiblJnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nS2lwT2IzUmxPaW9xSUZSb2FYTWdiV1YwYUc5a0lHbHpJR0poYzJWa0lHOXVYRzRnSUNBZ0lDb2dXMkJUZEhKcGJtY2pjbVZ3YkdGalpXQmRLR2gwZEhCek9pOHZiV1J1TG1sdkwxTjBjbWx1Wnk5eVpYQnNZV05sS1M1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0EwTGpBdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQlRkSEpwYm1kY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzNOMGNtbHVaejBuSjEwZ1ZHaGxJSE4wY21sdVp5QjBieUJ0YjJScFpua3VYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFNaV2RGZUhCOGMzUnlhVzVuZlNCd1lYUjBaWEp1SUZSb1pTQndZWFIwWlhKdUlIUnZJSEpsY0d4aFkyVXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJueHpkSEpwYm1kOUlISmxjR3hoWTJWdFpXNTBJRlJvWlNCdFlYUmphQ0J5WlhCc1lXTmxiV1Z1ZEM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN2MzUnlhVzVuZlNCU1pYUjFjbTV6SUhSb1pTQnRiMlJwWm1sbFpDQnpkSEpwYm1jdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWNtVndiR0ZqWlNnblNHa2dSbkpsWkNjc0lDZEdjbVZrSnl3Z0owSmhjbTVsZVNjcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUNkSWFTQkNZWEp1WlhrblhHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnY21Wd2JHRmpaU2dwSUh0Y2JpQWdJQ0FnSUhaaGNpQmhjbWR6SUQwZ1lYSm5kVzFsYm5SekxGeHVJQ0FnSUNBZ0lDQWdJSE4wY21sdVp5QTlJSFJ2VTNSeWFXNW5LR0Z5WjNOYk1GMHBPMXh1WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZWEpuY3k1c1pXNW5kR2dnUENBeklEOGdjM1J5YVc1bklEb2djM1J5YVc1bkxuSmxjR3hoWTJVb1lYSm5jMXN4WFN3Z1lYSm5jMXN5WFNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyOXVkbVZ5ZEhNZ1lITjBjbWx1WjJBZ2RHOWNiaUFnSUNBZ0tpQmJjMjVoYTJVZ1kyRnpaVjBvYUhSMGNITTZMeTlsYmk1M2FXdHBjR1ZrYVdFdWIzSm5MM2RwYTJrdlUyNWhhMlZmWTJGelpTa3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ015NHdMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVTNSeWFXNW5YRzRnSUNBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdHpkSEpwYm1jOUp5ZGRJRlJvWlNCemRISnBibWNnZEc4Z1kyOXVkbVZ5ZEM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN2MzUnlhVzVuZlNCU1pYUjFjbTV6SUhSb1pTQnpibUZyWlNCallYTmxaQ0J6ZEhKcGJtY3VYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVjMjVoYTJWRFlYTmxLQ2RHYjI4Z1FtRnlKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMlp2YjE5aVlYSW5YRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbk51WVd0bFEyRnpaU2duWm05dlFtRnlKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMlp2YjE5aVlYSW5YRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbk51WVd0bFEyRnpaU2duTFMxR1QwOHRRa0ZTTFMwbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBblptOXZYMkpoY2lkY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IyWVhJZ2MyNWhhMlZEWVhObElEMGdZM0psWVhSbFEyOXRjRzkxYm1SbGNpaG1kVzVqZEdsdmJpaHlaWE4xYkhRc0lIZHZjbVFzSUdsdVpHVjRLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4MElDc2dLR2x1WkdWNElEOGdKMThuSURvZ0p5Y3BJQ3NnZDI5eVpDNTBiMHh2ZDJWeVEyRnpaU2dwTzF4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1UzQnNhWFJ6SUdCemRISnBibWRnSUdKNUlHQnpaWEJoY21GMGIzSmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dLaXBPYjNSbE9pb3FJRlJvYVhNZ2JXVjBhRzlrSUdseklHSmhjMlZrSUc5dVhHNGdJQ0FnSUNvZ1cyQlRkSEpwYm1jamMzQnNhWFJnWFNob2RIUndjem92TDIxa2JpNXBieTlUZEhKcGJtY3ZjM0JzYVhRcExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRk4wY21sdVoxeHVJQ0FnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmMzUnlhVzVuUFNjblhTQlVhR1VnYzNSeWFXNW5JSFJ2SUhOd2JHbDBMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdVbVZuUlhod2ZITjBjbWx1WjMwZ2MyVndZWEpoZEc5eUlGUm9aU0J6WlhCaGNtRjBiM0lnY0dGMGRHVnliaUIwYnlCemNHeHBkQ0JpZVM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzJ4cGJXbDBYU0JVYUdVZ2JHVnVaM1JvSUhSdklIUnlkVzVqWVhSbElISmxjM1ZzZEhNZ2RHOHVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMEZ5Y21GNWZTQlNaWFIxY201eklIUm9aU0J6ZEhKcGJtY2djMlZuYldWdWRITXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVjM0JzYVhRb0oyRXRZaTFqSnl3Z0p5MG5MQ0F5S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiSjJFbkxDQW5ZaWRkWEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdjM0JzYVhRb2MzUnlhVzVuTENCelpYQmhjbUYwYjNJc0lHeHBiV2wwS1NCN1hHNGdJQ0FnSUNCcFppQW9iR2x0YVhRZ0ppWWdkSGx3Wlc5bUlHeHBiV2wwSUNFOUlDZHVkVzFpWlhJbklDWW1JR2x6U1hSbGNtRjBaV1ZEWVd4c0tITjBjbWx1Wnl3Z2MyVndZWEpoZEc5eUxDQnNhVzFwZENrcElIdGNiaUFnSUNBZ0lDQWdjMlZ3WVhKaGRHOXlJRDBnYkdsdGFYUWdQU0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JzYVcxcGRDQTlJR3hwYldsMElEMDlQU0IxYm1SbFptbHVaV1FnUHlCTlFWaGZRVkpTUVZsZlRFVk9SMVJJSURvZ2JHbHRhWFFnUGo0K0lEQTdYRzRnSUNBZ0lDQnBaaUFvSVd4cGJXbDBLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJiWFR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhOMGNtbHVaeUE5SUhSdlUzUnlhVzVuS0hOMGNtbHVaeWs3WEc0Z0lDQWdJQ0JwWmlBb2MzUnlhVzVuSUNZbUlDaGNiaUFnSUNBZ0lDQWdJQ0FnSUhSNWNHVnZaaUJ6WlhCaGNtRjBiM0lnUFQwZ0ozTjBjbWx1WnljZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0FnSUNoelpYQmhjbUYwYjNJZ0lUMGdiblZzYkNBbUppQWhhWE5TWldkRmVIQW9jMlZ3WVhKaGRHOXlLU2xjYmlBZ0lDQWdJQ0FnSUNBcEtTQjdYRzRnSUNBZ0lDQWdJSE5sY0dGeVlYUnZjaUE5SUdKaGMyVlViMU4wY21sdVp5aHpaWEJoY21GMGIzSXBPMXh1SUNBZ0lDQWdJQ0JwWmlBb0lYTmxjR0Z5WVhSdmNpQW1KaUJvWVhOVmJtbGpiMlJsS0hOMGNtbHVaeWtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1kyRnpkRk5zYVdObEtITjBjbWx1WjFSdlFYSnlZWGtvYzNSeWFXNW5LU3dnTUN3Z2JHbHRhWFFwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnYzNSeWFXNW5Mbk53YkdsMEtITmxjR0Z5WVhSdmNpd2diR2x0YVhRcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnZiblpsY25SeklHQnpkSEpwYm1kZ0lIUnZYRzRnSUNBZ0lDb2dXM04wWVhKMElHTmhjMlZkS0doMGRIQnpPaTh2Wlc0dWQybHJhWEJsWkdsaExtOXlaeTkzYVd0cEwweGxkSFJsY2w5allYTmxJMU4wZVd4cGMzUnBZMTl2Y2w5emNHVmphV0ZzYVhObFpGOTFjMkZuWlNrdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTXk0eExqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dVM1J5YVc1blhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0emRISnBibWM5SnlkZElGUm9aU0J6ZEhKcGJtY2dkRzhnWTI5dWRtVnlkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3YzNSeWFXNW5mU0JTWlhSMWNtNXpJSFJvWlNCemRHRnlkQ0JqWVhObFpDQnpkSEpwYm1jdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWMzUmhjblJEWVhObEtDY3RMV1p2YnkxaVlYSXRMU2NwTzF4dUlDQWdJQ0FxSUM4dklEMCtJQ2RHYjI4Z1FtRnlKMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTV6ZEdGeWRFTmhjMlVvSjJadmIwSmhjaWNwTzF4dUlDQWdJQ0FxSUM4dklEMCtJQ2RHYjI4Z1FtRnlKMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTV6ZEdGeWRFTmhjMlVvSjE5ZlJrOVBYMEpCVWw5Zkp5azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z0owWlBUeUJDUVZJblhHNGdJQ0FnSUNvdlhHNGdJQ0FnZG1GeUlITjBZWEowUTJGelpTQTlJR055WldGMFpVTnZiWEJ2ZFc1a1pYSW9ablZ1WTNScGIyNG9jbVZ6ZFd4MExDQjNiM0prTENCcGJtUmxlQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSEpsYzNWc2RDQXJJQ2hwYm1SbGVDQS9JQ2NnSnlBNklDY25LU0FySUhWd2NHVnlSbWx5YzNRb2QyOXlaQ2s3WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGFHVmphM01nYVdZZ1lITjBjbWx1WjJBZ2MzUmhjblJ6SUhkcGRHZ2dkR2hsSUdkcGRtVnVJSFJoY21kbGRDQnpkSEpwYm1jdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTXk0d0xqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dVM1J5YVc1blhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0emRISnBibWM5SnlkZElGUm9aU0J6ZEhKcGJtY2dkRzhnYVc1emNHVmpkQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXM1JoY21kbGRGMGdWR2hsSUhOMGNtbHVaeUIwYnlCelpXRnlZMmdnWm05eUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYmNHOXphWFJwYjI0OU1GMGdWR2hsSUhCdmMybDBhVzl1SUhSdklITmxZWEpqYUNCbWNtOXRMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRpYjI5c1pXRnVmU0JTWlhSMWNtNXpJR0IwY25WbFlDQnBaaUJnYzNSeWFXNW5ZQ0J6ZEdGeWRITWdkMmwwYUNCZ2RHRnlaMlYwWUN4Y2JpQWdJQ0FnS2lBZ1pXeHpaU0JnWm1Gc2MyVmdMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbk4wWVhKMGMxZHBkR2dvSjJGaVl5Y3NJQ2RoSnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZEhKMVpWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXpkR0Z5ZEhOWGFYUm9LQ2RoWW1NbkxDQW5ZaWNwTzF4dUlDQWdJQ0FxSUM4dklEMCtJR1poYkhObFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuTjBZWEowYzFkcGRHZ29KMkZpWXljc0lDZGlKeXdnTVNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZEhKMVpWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUhOMFlYSjBjMWRwZEdnb2MzUnlhVzVuTENCMFlYSm5aWFFzSUhCdmMybDBhVzl1S1NCN1hHNGdJQ0FnSUNCemRISnBibWNnUFNCMGIxTjBjbWx1WnloemRISnBibWNwTzF4dUlDQWdJQ0FnY0c5emFYUnBiMjRnUFNCd2IzTnBkR2x2YmlBOVBTQnVkV3hzWEc0Z0lDQWdJQ0FnSUQ4Z01GeHVJQ0FnSUNBZ0lDQTZJR0poYzJWRGJHRnRjQ2gwYjBsdWRHVm5aWElvY0c5emFYUnBiMjRwTENBd0xDQnpkSEpwYm1jdWJHVnVaM1JvS1R0Y2JseHVJQ0FnSUNBZ2RHRnlaMlYwSUQwZ1ltRnpaVlJ2VTNSeWFXNW5LSFJoY21kbGRDazdYRzRnSUNBZ0lDQnlaWFIxY200Z2MzUnlhVzVuTG5Oc2FXTmxLSEJ2YzJsMGFXOXVMQ0J3YjNOcGRHbHZiaUFySUhSaGNtZGxkQzVzWlc1bmRHZ3BJRDA5SUhSaGNtZGxkRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVnpJR0VnWTI5dGNHbHNaV1FnZEdWdGNHeGhkR1VnWm5WdVkzUnBiMjRnZEdoaGRDQmpZVzRnYVc1MFpYSndiMnhoZEdVZ1pHRjBZU0J3Y205d1pYSjBhV1Z6WEc0Z0lDQWdJQ29nYVc0Z1hDSnBiblJsY25CdmJHRjBaVndpSUdSbGJHbHRhWFJsY25Nc0lFaFVUVXd0WlhOallYQmxJR2x1ZEdWeWNHOXNZWFJsWkNCa1lYUmhJSEJ5YjNCbGNuUnBaWE1nYVc1Y2JpQWdJQ0FnS2lCY0ltVnpZMkZ3WlZ3aUlHUmxiR2x0YVhSbGNuTXNJR0Z1WkNCbGVHVmpkWFJsSUVwaGRtRlRZM0pwY0hRZ2FXNGdYQ0psZG1Gc2RXRjBaVndpSUdSbGJHbHRhWFJsY25NdUlFUmhkR0ZjYmlBZ0lDQWdLaUJ3Y205d1pYSjBhV1Z6SUcxaGVTQmlaU0JoWTJObGMzTmxaQ0JoY3lCbWNtVmxJSFpoY21saFlteGxjeUJwYmlCMGFHVWdkR1Z0Y0d4aGRHVXVJRWxtSUdFZ2MyVjBkR2x1WjF4dUlDQWdJQ0FxSUc5aWFtVmpkQ0JwY3lCbmFYWmxiaXdnYVhRZ2RHRnJaWE1nY0hKbFkyVmtaVzVqWlNCdmRtVnlJR0JmTG5SbGJYQnNZWFJsVTJWMGRHbHVaM05nSUhaaGJIVmxjeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQ29xVG05MFpUb3FLaUJKYmlCMGFHVWdaR1YyWld4dmNHMWxiblFnWW5WcGJHUWdZRjh1ZEdWdGNHeGhkR1ZnSUhWMGFXeHBlbVZ6WEc0Z0lDQWdJQ29nVzNOdmRYSmpaVlZTVEhOZEtHaDBkSEE2THk5M2QzY3VhSFJ0YkRWeWIyTnJjeTVqYjIwdlpXNHZkSFYwYjNKcFlXeHpMMlJsZG1Wc2IzQmxjblJ2YjJ4ekwzTnZkWEpqWlcxaGNITXZJM1J2WXkxemIzVnlZMlYxY213cFhHNGdJQ0FnSUNvZ1ptOXlJR1ZoYzJsbGNpQmtaV0oxWjJkcGJtY3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkdiM0lnYlc5eVpTQnBibVp2Y20xaGRHbHZiaUJ2YmlCd2NtVmpiMjF3YVd4cGJtY2dkR1Z0Y0d4aGRHVnpJSE5sWlZ4dUlDQWdJQ0FxSUZ0c2IyUmhjMmduY3lCamRYTjBiMjBnWW5WcGJHUnpJR1J2WTNWdFpXNTBZWFJwYjI1ZEtHaDBkSEJ6T2k4dmJHOWtZWE5vTG1OdmJTOWpkWE4wYjIwdFluVnBiR1J6S1M1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVadmNpQnRiM0psSUdsdVptOXliV0YwYVc5dUlHOXVJRU5vY205dFpTQmxlSFJsYm5OcGIyNGdjMkZ1WkdKdmVHVnpJSE5sWlZ4dUlDQWdJQ0FxSUZ0RGFISnZiV1VuY3lCbGVIUmxibk5wYjI1eklHUnZZM1Z0Wlc1MFlYUnBiMjVkS0doMGRIQnpPaTh2WkdWMlpXeHZjR1Z5TG1Ob2NtOXRaUzVqYjIwdlpYaDBaVzV6YVc5dWN5OXpZVzVrWW05NGFXNW5SWFpoYkNrdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUhOcGJtTmxJREF1TVM0d1hHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dVM1J5YVc1blhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0emRISnBibWM5SnlkZElGUm9aU0IwWlcxd2JHRjBaU0J6ZEhKcGJtY3VYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFBZbXBsWTNSOUlGdHZjSFJwYjI1elBYdDlYU0JVYUdVZ2IzQjBhVzl1Y3lCdlltcGxZM1F1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRTWldkRmVIQjlJRnR2Y0hScGIyNXpMbVZ6WTJGd1pUMWZMblJsYlhCc1lYUmxVMlYwZEdsdVozTXVaWE5qWVhCbFhWeHVJQ0FnSUNBcUlDQlVhR1VnU0ZSTlRDQmNJbVZ6WTJGd1pWd2lJR1JsYkdsdGFYUmxjaTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMUpsWjBWNGNIMGdXMjl3ZEdsdmJuTXVaWFpoYkhWaGRHVTlYeTUwWlcxd2JHRjBaVk5sZEhScGJtZHpMbVYyWVd4MVlYUmxYVnh1SUNBZ0lDQXFJQ0JVYUdVZ1hDSmxkbUZzZFdGMFpWd2lJR1JsYkdsdGFYUmxjaTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdXMjl3ZEdsdmJuTXVhVzF3YjNKMGN6MWZMblJsYlhCc1lYUmxVMlYwZEdsdVozTXVhVzF3YjNKMGMxMWNiaUFnSUNBZ0tpQWdRVzRnYjJKcVpXTjBJSFJ2SUdsdGNHOXlkQ0JwYm5SdklIUm9aU0IwWlcxd2JHRjBaU0JoY3lCbWNtVmxJSFpoY21saFlteGxjeTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMUpsWjBWNGNIMGdXMjl3ZEdsdmJuTXVhVzUwWlhKd2IyeGhkR1U5WHk1MFpXMXdiR0YwWlZObGRIUnBibWR6TG1sdWRHVnljRzlzWVhSbFhWeHVJQ0FnSUNBcUlDQlVhR1VnWENKcGJuUmxjbkJ2YkdGMFpWd2lJR1JsYkdsdGFYUmxjaTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMjl3ZEdsdmJuTXVjMjkxY21ObFZWSk1QU2RzYjJSaGMyZ3VkR1Z0Y0d4aGRHVlRiM1Z5WTJWelcyNWRKMTFjYmlBZ0lDQWdLaUFnVkdobElITnZkWEpqWlZWU1RDQnZaaUIwYUdVZ1kyOXRjR2xzWldRZ2RHVnRjR3hoZEdVdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0dmNIUnBiMjV6TG5aaGNtbGhZbXhsUFNkdlltb25YVnh1SUNBZ0lDQXFJQ0JVYUdVZ1pHRjBZU0J2WW1wbFkzUWdkbUZ5YVdGaWJHVWdibUZ0WlM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzB0SUh0UFltcGxZM1I5SUZ0bmRXRnlaRjBnUlc1aFlteGxjeUIxYzJVZ1lYTWdZVzRnYVhSbGNtRjBaV1VnWm05eUlHMWxkR2h2WkhNZ2JHbHJaU0JnWHk1dFlYQmdMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRHZFc1amRHbHZibjBnVW1WMGRYSnVjeUIwYUdVZ1kyOXRjR2xzWldRZ2RHVnRjR3hoZEdVZ1puVnVZM1JwYjI0dVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUM4dklGVnpaU0IwYUdVZ1hDSnBiblJsY25CdmJHRjBaVndpSUdSbGJHbHRhWFJsY2lCMGJ5QmpjbVZoZEdVZ1lTQmpiMjF3YVd4bFpDQjBaVzF3YkdGMFpTNWNiaUFnSUNBZ0tpQjJZWElnWTI5dGNHbHNaV1FnUFNCZkxuUmxiWEJzWVhSbEtDZG9aV3hzYnlBOEpUMGdkWE5sY2lBbFBpRW5LVHRjYmlBZ0lDQWdLaUJqYjIxd2FXeGxaQ2g3SUNkMWMyVnlKem9nSjJaeVpXUW5JSDBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJQ2RvWld4c2J5Qm1jbVZrSVNkY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUM4dklGVnpaU0IwYUdVZ1NGUk5UQ0JjSW1WelkyRndaVndpSUdSbGJHbHRhWFJsY2lCMGJ5QmxjMk5oY0dVZ1pHRjBZU0J3Y205d1pYSjBlU0IyWVd4MVpYTXVYRzRnSUNBZ0lDb2dkbUZ5SUdOdmJYQnBiR1ZrSUQwZ1h5NTBaVzF3YkdGMFpTZ25QR0krUENVdElIWmhiSFZsSUNVK1BDOWlQaWNwTzF4dUlDQWdJQ0FxSUdOdmJYQnBiR1ZrS0hzZ0ozWmhiSFZsSnpvZ0p6eHpZM0pwY0hRK0p5QjlLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQW5QR0krSm14ME8zTmpjbWx3ZENabmREczhMMkkrSjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z1ZYTmxJSFJvWlNCY0ltVjJZV3gxWVhSbFhDSWdaR1ZzYVcxcGRHVnlJSFJ2SUdWNFpXTjFkR1VnU21GMllWTmpjbWx3ZENCaGJtUWdaMlZ1WlhKaGRHVWdTRlJOVEM1Y2JpQWdJQ0FnS2lCMllYSWdZMjl0Y0dsc1pXUWdQU0JmTG5SbGJYQnNZWFJsS0NjOEpTQmZMbVp2Y2tWaFkyZ29kWE5sY25Nc0lHWjFibU4wYVc5dUtIVnpaWElwSUhzZ0pUNDhiR2srUENVdElIVnpaWElnSlQ0OEwyeHBQandsSUgwcE95QWxQaWNwTzF4dUlDQWdJQ0FxSUdOdmJYQnBiR1ZrS0hzZ0ozVnpaWEp6SnpvZ1d5ZG1jbVZrSnl3Z0oySmhjbTVsZVNkZElIMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lDYzhiR2srWm5KbFpEd3ZiR2srUEd4cFBtSmhjbTVsZVR3dmJHaytKMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dMeThnVlhObElIUm9aU0JwYm5SbGNtNWhiQ0JnY0hKcGJuUmdJR1oxYm1OMGFXOXVJR2x1SUZ3aVpYWmhiSFZoZEdWY0lpQmtaV3hwYldsMFpYSnpMbHh1SUNBZ0lDQXFJSFpoY2lCamIyMXdhV3hsWkNBOUlGOHVkR1Z0Y0d4aGRHVW9KendsSUhCeWFXNTBLRndpYUdWc2JHOGdYQ0lnS3lCMWMyVnlLVHNnSlQ0aEp5azdYRzRnSUNBZ0lDb2dZMjl0Y0dsc1pXUW9leUFuZFhObGNpYzZJQ2RpWVhKdVpYa25JSDBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJQ2RvWld4c2J5QmlZWEp1WlhraEoxeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdWWE5sSUhSb1pTQkZVeUIwWlcxd2JHRjBaU0JzYVhSbGNtRnNJR1JsYkdsdGFYUmxjaUJoY3lCaGJpQmNJbWx1ZEdWeWNHOXNZWFJsWENJZ1pHVnNhVzFwZEdWeUxseHVJQ0FnSUNBcUlDOHZJRVJwYzJGaWJHVWdjM1Z3Y0c5eWRDQmllU0J5WlhCc1lXTnBibWNnZEdobElGd2lhVzUwWlhKd2IyeGhkR1ZjSWlCa1pXeHBiV2wwWlhJdVhHNGdJQ0FnSUNvZ2RtRnlJR052YlhCcGJHVmtJRDBnWHk1MFpXMXdiR0YwWlNnbmFHVnNiRzhnSkhzZ2RYTmxjaUI5SVNjcE8xeHVJQ0FnSUNBcUlHTnZiWEJwYkdWa0tIc2dKM1Z6WlhJbk9pQW5jR1ZpWW14bGN5Y2dmU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMmhsYkd4dklIQmxZbUpzWlhNaEoxeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdWWE5sSUdKaFkydHpiR0Z6YUdWeklIUnZJSFJ5WldGMElHUmxiR2x0YVhSbGNuTWdZWE1nY0d4aGFXNGdkR1Y0ZEM1Y2JpQWdJQ0FnS2lCMllYSWdZMjl0Y0dsc1pXUWdQU0JmTG5SbGJYQnNZWFJsS0NjOEpUMGdYQ0pjWEZ4Y1BDVXRJSFpoYkhWbElDVmNYRnhjUGx3aUlDVStKeWs3WEc0Z0lDQWdJQ29nWTI5dGNHbHNaV1FvZXlBbmRtRnNkV1VuT2lBbmFXZHViM0psWkNjZ2ZTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z0p6d2xMU0IyWVd4MVpTQWxQaWRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQzh2SUZWelpTQjBhR1VnWUdsdGNHOXlkSE5nSUc5d2RHbHZiaUIwYnlCcGJYQnZjblFnWUdwUmRXVnllV0FnWVhNZ1lHcHhZQzVjYmlBZ0lDQWdLaUIyWVhJZ2RHVjRkQ0E5SUNjOEpTQnFjUzVsWVdOb0tIVnpaWEp6TENCbWRXNWpkR2x2YmloMWMyVnlLU0I3SUNVK1BHeHBQandsTFNCMWMyVnlJQ1UrUEM5c2FUNDhKU0I5S1RzZ0pUNG5PMXh1SUNBZ0lDQXFJSFpoY2lCamIyMXdhV3hsWkNBOUlGOHVkR1Z0Y0d4aGRHVW9kR1Y0ZEN3Z2V5QW5hVzF3YjNKMGN5YzZJSHNnSjJweEp6b2dhbEYxWlhKNUlIMGdmU2s3WEc0Z0lDQWdJQ29nWTI5dGNHbHNaV1FvZXlBbmRYTmxjbk1uT2lCYkoyWnlaV1FuTENBblltRnlibVY1SjEwZ2ZTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z0p6eHNhVDVtY21Wa1BDOXNhVDQ4YkdrK1ltRnlibVY1UEM5c2FUNG5YRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXZMeUJWYzJVZ2RHaGxJR0J6YjNWeVkyVlZVa3hnSUc5d2RHbHZiaUIwYnlCemNHVmphV1o1SUdFZ1kzVnpkRzl0SUhOdmRYSmpaVlZTVENCbWIzSWdkR2hsSUhSbGJYQnNZWFJsTGx4dUlDQWdJQ0FxSUhaaGNpQmpiMjF3YVd4bFpDQTlJRjh1ZEdWdGNHeGhkR1VvSjJobGJHeHZJRHdsUFNCMWMyVnlJQ1UrSVNjc0lIc2dKM052ZFhKalpWVlNUQ2M2SUNjdlltRnphV012WjNKbFpYUnBibWN1YW5OMEp5QjlLVHRjYmlBZ0lDQWdLaUJqYjIxd2FXeGxaQ2hrWVhSaEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCR2FXNWtJSFJvWlNCemIzVnlZMlVnYjJZZ1hDSm5jbVZsZEdsdVp5NXFjM1JjSWlCMWJtUmxjaUIwYUdVZ1UyOTFjbU5sY3lCMFlXSWdiM0lnVW1WemIzVnlZMlZ6SUhCaGJtVnNJRzltSUhSb1pTQjNaV0lnYVc1emNHVmpkRzl5TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z1ZYTmxJSFJvWlNCZ2RtRnlhV0ZpYkdWZ0lHOXdkR2x2YmlCMGJ5Qmxibk4xY21VZ1lTQjNhWFJvTFhOMFlYUmxiV1Z1ZENCcGMyNG5kQ0IxYzJWa0lHbHVJSFJvWlNCamIyMXdhV3hsWkNCMFpXMXdiR0YwWlM1Y2JpQWdJQ0FnS2lCMllYSWdZMjl0Y0dsc1pXUWdQU0JmTG5SbGJYQnNZWFJsS0Nkb2FTQThKVDBnWkdGMFlTNTFjMlZ5SUNVK0lTY3NJSHNnSjNaaGNtbGhZbXhsSnpvZ0oyUmhkR0VuSUgwcE8xeHVJQ0FnSUNBcUlHTnZiWEJwYkdWa0xuTnZkWEpqWlR0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJtZFc1amRHbHZiaWhrWVhSaEtTQjdYRzRnSUNBZ0lDb2dMeThnSUNCMllYSWdYMTkwTENCZlgzQWdQU0FuSnp0Y2JpQWdJQ0FnS2lBdkx5QWdJRjlmY0NBclBTQW5hR2tnSnlBcklDZ29YMTkwSUQwZ0tDQmtZWFJoTG5WelpYSWdLU2tnUFQwZ2JuVnNiQ0EvSUNjbklEb2dYMTkwS1NBcklDY2hKenRjYmlBZ0lDQWdLaUF2THlBZ0lISmxkSFZ5YmlCZlgzQTdYRzRnSUNBZ0lDb2dMeThnZlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z1ZYTmxJR04xYzNSdmJTQjBaVzF3YkdGMFpTQmtaV3hwYldsMFpYSnpMbHh1SUNBZ0lDQXFJRjh1ZEdWdGNHeGhkR1ZUWlhSMGFXNW5jeTVwYm5SbGNuQnZiR0YwWlNBOUlDOTdleWhiWEZ4elhGeFRYU3MvS1gxOUwyYzdYRzRnSUNBZ0lDb2dkbUZ5SUdOdmJYQnBiR1ZrSUQwZ1h5NTBaVzF3YkdGMFpTZ25hR1ZzYkc4Z2Uzc2dkWE5sY2lCOWZTRW5LVHRjYmlBZ0lDQWdLaUJqYjIxd2FXeGxaQ2g3SUNkMWMyVnlKem9nSjIxMWMzUmhZMmhsSnlCOUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBbmFHVnNiRzhnYlhWemRHRmphR1VoSjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z1ZYTmxJSFJvWlNCZ2MyOTFjbU5sWUNCd2NtOXdaWEowZVNCMGJ5QnBibXhwYm1VZ1kyOXRjR2xzWldRZ2RHVnRjR3hoZEdWeklHWnZjaUJ0WldGdWFXNW5ablZzWEc0Z0lDQWdJQ29nTHk4Z2JHbHVaU0J1ZFcxaVpYSnpJR2x1SUdWeWNtOXlJRzFsYzNOaFoyVnpJR0Z1WkNCemRHRmpheUIwY21GalpYTXVYRzRnSUNBZ0lDb2dabk11ZDNKcGRHVkdhV3hsVTNsdVl5aHdZWFJvTG1wdmFXNG9jSEp2WTJWemN5NWpkMlFvS1N3Z0oycHpkQzVxY3ljcExDQW5YRnhjYmlBZ0lDQWdLaUFnSUhaaGNpQktVMVFnUFNCN1hGeGNiaUFnSUNBZ0tpQWdJQ0FnWENKdFlXbHVYQ0k2SUNjZ0t5QmZMblJsYlhCc1lYUmxLRzFoYVc1VVpYaDBLUzV6YjNWeVkyVWdLeUFuWEZ4Y2JpQWdJQ0FnS2lBZ0lIMDdYRnhjYmlBZ0lDQWdLaUFuS1R0Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUIwWlcxd2JHRjBaU2h6ZEhKcGJtY3NJRzl3ZEdsdmJuTXNJR2QxWVhKa0tTQjdYRzRnSUNBZ0lDQXZMeUJDWVhObFpDQnZiaUJLYjJodUlGSmxjMmxuSjNNZ1lIUnRjR3hnSUdsdGNHeGxiV1Z1ZEdGMGFXOXVYRzRnSUNBZ0lDQXZMeUFvYUhSMGNEb3ZMMlZxYjJodUxtOXlaeTlpYkc5bkwycGhkbUZ6WTNKcGNIUXRiV2xqY204dGRHVnRjR3hoZEdsdVp5OHBYRzRnSUNBZ0lDQXZMeUJoYm1RZ1RHRjFjbUVnUkc5cmRHOXliM1poSjNNZ1pHOVVMbXB6SUNob2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmIyeGhaRzh2Wkc5VUtTNWNiaUFnSUNBZ0lIWmhjaUJ6WlhSMGFXNW5jeUE5SUd4dlpHRnphQzUwWlcxd2JHRjBaVk5sZEhScGJtZHpPMXh1WEc0Z0lDQWdJQ0JwWmlBb1ozVmhjbVFnSmlZZ2FYTkpkR1Z5WVhSbFpVTmhiR3dvYzNSeWFXNW5MQ0J2Y0hScGIyNXpMQ0JuZFdGeVpDa3BJSHRjYmlBZ0lDQWdJQ0FnYjNCMGFXOXVjeUE5SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhOMGNtbHVaeUE5SUhSdlUzUnlhVzVuS0hOMGNtbHVaeWs3WEc0Z0lDQWdJQ0J2Y0hScGIyNXpJRDBnWVhOemFXZHVTVzVYYVhSb0tIdDlMQ0J2Y0hScGIyNXpMQ0J6WlhSMGFXNW5jeXdnWTNWemRHOXRSR1ZtWVhWc2RITkJjM05wWjI1SmJpazdYRzVjYmlBZ0lDQWdJSFpoY2lCcGJYQnZjblJ6SUQwZ1lYTnphV2R1U1c1WGFYUm9LSHQ5TENCdmNIUnBiMjV6TG1sdGNHOXlkSE1zSUhObGRIUnBibWR6TG1sdGNHOXlkSE1zSUdOMWMzUnZiVVJsWm1GMWJIUnpRWE56YVdkdVNXNHBMRnh1SUNBZ0lDQWdJQ0FnSUdsdGNHOXlkSE5MWlhseklEMGdhMlY1Y3locGJYQnZjblJ6S1N4Y2JpQWdJQ0FnSUNBZ0lDQnBiWEJ2Y25SelZtRnNkV1Z6SUQwZ1ltRnpaVlpoYkhWbGN5aHBiWEJ2Y25SekxDQnBiWEJ2Y25SelMyVjVjeWs3WEc1Y2JpQWdJQ0FnSUhaaGNpQnBjMFZ6WTJGd2FXNW5MRnh1SUNBZ0lDQWdJQ0FnSUdselJYWmhiSFZoZEdsdVp5eGNiaUFnSUNBZ0lDQWdJQ0JwYm1SbGVDQTlJREFzWEc0Z0lDQWdJQ0FnSUNBZ2FXNTBaWEp3YjJ4aGRHVWdQU0J2Y0hScGIyNXpMbWx1ZEdWeWNHOXNZWFJsSUh4OElISmxUbTlOWVhSamFDeGNiaUFnSUNBZ0lDQWdJQ0J6YjNWeVkyVWdQU0JjSWw5ZmNDQXJQU0FuWENJN1hHNWNiaUFnSUNBZ0lDOHZJRU52YlhCcGJHVWdkR2hsSUhKbFoyVjRjQ0IwYnlCdFlYUmphQ0JsWVdOb0lHUmxiR2x0YVhSbGNpNWNiaUFnSUNBZ0lIWmhjaUJ5WlVSbGJHbHRhWFJsY25NZ1BTQlNaV2RGZUhBb1hHNGdJQ0FnSUNBZ0lDaHZjSFJwYjI1ekxtVnpZMkZ3WlNCOGZDQnlaVTV2VFdGMFkyZ3BMbk52ZFhKalpTQXJJQ2Q4SnlBclhHNGdJQ0FnSUNBZ0lHbHVkR1Z5Y0c5c1lYUmxMbk52ZFhKalpTQXJJQ2Q4SnlBclhHNGdJQ0FnSUNBZ0lDaHBiblJsY25CdmJHRjBaU0E5UFQwZ2NtVkpiblJsY25CdmJHRjBaU0EvSUhKbFJYTlVaVzF3YkdGMFpTQTZJSEpsVG05TllYUmphQ2t1YzI5MWNtTmxJQ3NnSjN3bklDdGNiaUFnSUNBZ0lDQWdLRzl3ZEdsdmJuTXVaWFpoYkhWaGRHVWdmSHdnY21WT2IwMWhkR05vS1M1emIzVnlZMlVnS3lBbmZDUW5YRzRnSUNBZ0lDQXNJQ2RuSnlrN1hHNWNiaUFnSUNBZ0lDOHZJRlZ6WlNCaElITnZkWEpqWlZWU1RDQm1iM0lnWldGemFXVnlJR1JsWW5WbloybHVaeTVjYmlBZ0lDQWdJQzh2SUZSb1pTQnpiM1Z5WTJWVlVrd2daMlYwY3lCcGJtcGxZM1JsWkNCcGJuUnZJSFJvWlNCemIzVnlZMlVnZEdoaGRDZHpJR1YyWVd3dFpXUXNJSE52SUdKbElHTmhjbVZtZFd4Y2JpQWdJQ0FnSUM4dklIUnZJRzV2Y20xaGJHbDZaU0JoYkd3Z2EybHVaSE1nYjJZZ2QyaHBkR1Z6Y0dGalpTd2djMjhnWlM1bkxpQnVaWGRzYVc1bGN5QW9ZVzVrSUhWdWFXTnZaR1VnZG1WeWMybHZibk1nYjJZZ2FYUXBJR05oYmlkMElITnVaV0ZySUdsdVhHNGdJQ0FnSUNBdkx5QmhibVFnWlhOallYQmxJSFJvWlNCamIyMXRaVzUwTENCMGFIVnpJR2x1YW1WamRHbHVaeUJqYjJSbElIUm9ZWFFnWjJWMGN5QmxkbUZzWldRdVhHNGdJQ0FnSUNCMllYSWdjMjkxY21ObFZWSk1JRDBnSnk4dkl5QnpiM1Z5WTJWVlVrdzlKeUFyWEc0Z0lDQWdJQ0FnSUNob1lYTlBkMjVRY205d1pYSjBlUzVqWVd4c0tHOXdkR2x2Ym5Nc0lDZHpiM1Z5WTJWVlVrd25LVnh1SUNBZ0lDQWdJQ0FnSUQ4Z0tHOXdkR2x2Ym5NdWMyOTFjbU5sVlZKTUlDc2dKeWNwTG5KbGNHeGhZMlVvTDF4Y2N5OW5MQ0FuSUNjcFhHNGdJQ0FnSUNBZ0lDQWdPaUFvSjJ4dlpHRnphQzUwWlcxd2JHRjBaVk52ZFhKalpYTmJKeUFySUNnckszUmxiWEJzWVhSbFEyOTFiblJsY2lrZ0t5QW5YU2NwWEc0Z0lDQWdJQ0FnSUNrZ0t5QW5YRnh1Snp0Y2JseHVJQ0FnSUNBZ2MzUnlhVzVuTG5KbGNHeGhZMlVvY21WRVpXeHBiV2wwWlhKekxDQm1kVzVqZEdsdmJpaHRZWFJqYUN3Z1pYTmpZWEJsVm1Gc2RXVXNJR2x1ZEdWeWNHOXNZWFJsVm1Gc2RXVXNJR1Z6VkdWdGNHeGhkR1ZXWVd4MVpTd2daWFpoYkhWaGRHVldZV3gxWlN3Z2IyWm1jMlYwS1NCN1hHNGdJQ0FnSUNBZ0lHbHVkR1Z5Y0c5c1lYUmxWbUZzZFdVZ2ZId2dLR2x1ZEdWeWNHOXNZWFJsVm1Gc2RXVWdQU0JsYzFSbGJYQnNZWFJsVm1Gc2RXVXBPMXh1WEc0Z0lDQWdJQ0FnSUM4dklFVnpZMkZ3WlNCamFHRnlZV04wWlhKeklIUm9ZWFFnWTJGdUozUWdZbVVnYVc1amJIVmtaV1FnYVc0Z2MzUnlhVzVuSUd4cGRHVnlZV3h6TGx4dUlDQWdJQ0FnSUNCemIzVnlZMlVnS3owZ2MzUnlhVzVuTG5Oc2FXTmxLR2x1WkdWNExDQnZabVp6WlhRcExuSmxjR3hoWTJVb2NtVlZibVZ6WTJGd1pXUlRkSEpwYm1jc0lHVnpZMkZ3WlZOMGNtbHVaME5vWVhJcE8xeHVYRzRnSUNBZ0lDQWdJQzh2SUZKbGNHeGhZMlVnWkdWc2FXMXBkR1Z5Y3lCM2FYUm9JSE51YVhCd1pYUnpMbHh1SUNBZ0lDQWdJQ0JwWmlBb1pYTmpZWEJsVm1Gc2RXVXBJSHRjYmlBZ0lDQWdJQ0FnSUNCcGMwVnpZMkZ3YVc1bklEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQnpiM1Z5WTJVZ0t6MGdYQ0luSUN0Y1hHNWZYMlVvWENJZ0t5QmxjMk5oY0dWV1lXeDFaU0FySUZ3aUtTQXJYRnh1SjF3aU8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR2xtSUNobGRtRnNkV0YwWlZaaGJIVmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2FYTkZkbUZzZFdGMGFXNW5JRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdJQ0J6YjNWeVkyVWdLejBnWENJbk8xeGNibHdpSUNzZ1pYWmhiSFZoZEdWV1lXeDFaU0FySUZ3aU8xeGNibDlmY0NBclBTQW5YQ0k3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLR2x1ZEdWeWNHOXNZWFJsVm1Gc2RXVXBJSHRjYmlBZ0lDQWdJQ0FnSUNCemIzVnlZMlVnS3owZ1hDSW5JQ3RjWEc0b0tGOWZkQ0E5SUNoY0lpQXJJR2x1ZEdWeWNHOXNZWFJsVm1Gc2RXVWdLeUJjSWlrcElEMDlJRzUxYkd3Z1B5QW5KeUE2SUY5ZmRDa2dLMXhjYmlkY0lqdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JwYm1SbGVDQTlJRzltWm5ObGRDQXJJRzFoZEdOb0xteGxibWQwYUR0Y2JseHVJQ0FnSUNBZ0lDQXZMeUJVYUdVZ1NsTWdaVzVuYVc1bElHVnRZbVZrWkdWa0lHbHVJRUZrYjJKbElIQnliMlIxWTNSeklHNWxaV1J6SUdCdFlYUmphR0FnY21WMGRYSnVaV1FnYVc1Y2JpQWdJQ0FnSUNBZ0x5OGdiM0prWlhJZ2RHOGdjSEp2WkhWalpTQjBhR1VnWTI5eWNtVmpkQ0JnYjJabWMyVjBZQ0IyWVd4MVpTNWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHMWhkR05vTzF4dUlDQWdJQ0FnZlNrN1hHNWNiaUFnSUNBZ0lITnZkWEpqWlNBclBTQmNJaWM3WEZ4dVhDSTdYRzVjYmlBZ0lDQWdJQzh2SUVsbUlHQjJZWEpwWVdKc1pXQWdhWE1nYm05MElITndaV05wWm1sbFpDQjNjbUZ3SUdFZ2QybDBhQzF6ZEdGMFpXMWxiblFnWVhKdmRXNWtJSFJvWlNCblpXNWxjbUYwWldSY2JpQWdJQ0FnSUM4dklHTnZaR1VnZEc4Z1lXUmtJSFJvWlNCa1lYUmhJRzlpYW1WamRDQjBieUIwYUdVZ2RHOXdJRzltSUhSb1pTQnpZMjl3WlNCamFHRnBiaTVjYmlBZ0lDQWdJSFpoY2lCMllYSnBZV0pzWlNBOUlHaGhjMDkzYmxCeWIzQmxjblI1TG1OaGJHd29iM0IwYVc5dWN5d2dKM1poY21saFlteGxKeWtnSmlZZ2IzQjBhVzl1Y3k1MllYSnBZV0pzWlR0Y2JpQWdJQ0FnSUdsbUlDZ2hkbUZ5YVdGaWJHVXBJSHRjYmlBZ0lDQWdJQ0FnYzI5MWNtTmxJRDBnSjNkcGRHZ2dLRzlpYWlrZ2UxeGNiaWNnS3lCemIzVnlZMlVnS3lBblhGeHVmVnhjYmljN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNBdkx5QlVhSEp2ZHlCaGJpQmxjbkp2Y2lCcFppQmhJR1p2Y21KcFpHUmxiaUJqYUdGeVlXTjBaWElnZDJGeklHWnZkVzVrSUdsdUlHQjJZWEpwWVdKc1pXQXNJSFJ2SUhCeVpYWmxiblJjYmlBZ0lDQWdJQzh2SUhCdmRHVnVkR2xoYkNCamIyMXRZVzVrSUdsdWFtVmpkR2x2YmlCaGRIUmhZMnR6TGx4dUlDQWdJQ0FnWld4elpTQnBaaUFvY21WR2IzSmlhV1JrWlc1SlpHVnVkR2xtYVdWeVEyaGhjbk11ZEdWemRDaDJZWEpwWVdKc1pTa3BJSHRjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLRWxPVmtGTVNVUmZWRVZOVUV4ZlZrRlNYMFZTVWs5U1gxUkZXRlFwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBdkx5QkRiR1ZoYm5Wd0lHTnZaR1VnWW5rZ2MzUnlhWEJ3YVc1bklHVnRjSFI1SUhOMGNtbHVaM011WEc0Z0lDQWdJQ0J6YjNWeVkyVWdQU0FvYVhORmRtRnNkV0YwYVc1bklEOGdjMjkxY21ObExuSmxjR3hoWTJVb2NtVkZiWEIwZVZOMGNtbHVaMHhsWVdScGJtY3NJQ2NuS1NBNklITnZkWEpqWlNsY2JpQWdJQ0FnSUNBZ0xuSmxjR3hoWTJVb2NtVkZiWEIwZVZOMGNtbHVaMDFwWkdSc1pTd2dKeVF4SnlsY2JpQWdJQ0FnSUNBZ0xuSmxjR3hoWTJVb2NtVkZiWEIwZVZOMGNtbHVaMVJ5WVdsc2FXNW5MQ0FuSkRFN0p5azdYRzVjYmlBZ0lDQWdJQzh2SUVaeVlXMWxJR052WkdVZ1lYTWdkR2hsSUdaMWJtTjBhVzl1SUdKdlpIa3VYRzRnSUNBZ0lDQnpiM1Z5WTJVZ1BTQW5ablZ1WTNScGIyNG9KeUFySUNoMllYSnBZV0pzWlNCOGZDQW5iMkpxSnlrZ0t5QW5LU0I3WEZ4dUp5QXJYRzRnSUNBZ0lDQWdJQ2gyWVhKcFlXSnNaVnh1SUNBZ0lDQWdJQ0FnSUQ4Z0p5ZGNiaUFnSUNBZ0lDQWdJQ0E2SUNkdlltb2dmSHdnS0c5aWFpQTlJSHQ5S1R0Y1hHNG5YRzRnSUNBZ0lDQWdJQ2tnSzF4dUlDQWdJQ0FnSUNCY0luWmhjaUJmWDNRc0lGOWZjQ0E5SUNjblhDSWdLMXh1SUNBZ0lDQWdJQ0FvYVhORmMyTmhjR2x1WjF4dUlDQWdJQ0FnSUNBZ0lDQS9JQ2NzSUY5ZlpTQTlJRjh1WlhOallYQmxKMXh1SUNBZ0lDQWdJQ0FnSUNBNklDY25YRzRnSUNBZ0lDQWdJQ2tnSzF4dUlDQWdJQ0FnSUNBb2FYTkZkbUZzZFdGMGFXNW5YRzRnSUNBZ0lDQWdJQ0FnUHlBbkxDQmZYMm9nUFNCQmNuSmhlUzV3Y205MGIzUjVjR1V1YW05cGJqdGNYRzRuSUN0Y2JpQWdJQ0FnSUNBZ0lDQWdJRndpWm5WdVkzUnBiMjRnY0hKcGJuUW9LU0I3SUY5ZmNDQXJQU0JmWDJvdVkyRnNiQ2hoY21kMWJXVnVkSE1zSUNjbktTQjlYRnh1WENKY2JpQWdJQ0FnSUNBZ0lDQTZJQ2M3WEZ4dUoxeHVJQ0FnSUNBZ0lDQXBJQ3RjYmlBZ0lDQWdJQ0FnYzI5MWNtTmxJQ3RjYmlBZ0lDQWdJQ0FnSjNKbGRIVnliaUJmWDNCY1hHNTlKenRjYmx4dUlDQWdJQ0FnZG1GeUlISmxjM1ZzZENBOUlHRjBkR1Z0Y0hRb1puVnVZM1JwYjI0b0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQkdkVzVqZEdsdmJpaHBiWEJ2Y25SelMyVjVjeXdnYzI5MWNtTmxWVkpNSUNzZ0ozSmxkSFZ5YmlBbklDc2djMjkxY21ObEtWeHVJQ0FnSUNBZ0lDQWdJQzVoY0hCc2VTaDFibVJsWm1sdVpXUXNJR2x0Y0c5eWRITldZV3gxWlhNcE8xeHVJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJQzh2SUZCeWIzWnBaR1VnZEdobElHTnZiWEJwYkdWa0lHWjFibU4wYVc5dUozTWdjMjkxY21ObElHSjVJR2wwY3lCZ2RHOVRkSEpwYm1kZ0lHMWxkR2h2WkNCdmNseHVJQ0FnSUNBZ0x5OGdkR2hsSUdCemIzVnlZMlZnSUhCeWIzQmxjblI1SUdGeklHRWdZMjl1ZG1WdWFXVnVZMlVnWm05eUlHbHViR2x1YVc1bklHTnZiWEJwYkdWa0lIUmxiWEJzWVhSbGN5NWNiaUFnSUNBZ0lISmxjM1ZzZEM1emIzVnlZMlVnUFNCemIzVnlZMlU3WEc0Z0lDQWdJQ0JwWmlBb2FYTkZjbkp2Y2loeVpYTjFiSFFwS1NCN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUhKbGMzVnNkRHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyOXVkbVZ5ZEhNZ1lITjBjbWx1WjJBc0lHRnpJR0VnZDJodmJHVXNJSFJ2SUd4dmQyVnlJR05oYzJVZ2FuVnpkQ0JzYVd0bFhHNGdJQ0FnSUNvZ1cxTjBjbWx1WnlOMGIweHZkMlZ5UTJGelpWMG9hSFIwY0hNNkx5OXRaRzR1YVc4dmRHOU1iM2RsY2tOaGMyVXBMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUZOMGNtbHVaMXh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJjM1J5YVc1blBTY25YU0JVYUdVZ2MzUnlhVzVuSUhSdklHTnZiblpsY25RdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UzTjBjbWx1WjMwZ1VtVjBkWEp1Y3lCMGFHVWdiRzkzWlhJZ1kyRnpaV1FnYzNSeWFXNW5MbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMblJ2VEc5M1pYSW9KeTB0Um05dkxVSmhjaTB0SnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnSnkwdFptOXZMV0poY2kwdEoxeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NTBiMHh2ZDJWeUtDZG1iMjlDWVhJbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBblptOXZZbUZ5SjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1MGIweHZkMlZ5S0NkZlgwWlBUMTlDUVZKZlh5Y3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lDZGZYMlp2YjE5aVlYSmZYeWRjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQjBiMHh2ZDJWeUtIWmhiSFZsS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEc5VGRISnBibWNvZG1Gc2RXVXBMblJ2VEc5M1pYSkRZWE5sS0NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyOXVkbVZ5ZEhNZ1lITjBjbWx1WjJBc0lHRnpJR0VnZDJodmJHVXNJSFJ2SUhWd2NHVnlJR05oYzJVZ2FuVnpkQ0JzYVd0bFhHNGdJQ0FnSUNvZ1cxTjBjbWx1WnlOMGIxVndjR1Z5UTJGelpWMG9hSFIwY0hNNkx5OXRaRzR1YVc4dmRHOVZjSEJsY2tOaGMyVXBMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUZOMGNtbHVaMXh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJjM1J5YVc1blBTY25YU0JVYUdVZ2MzUnlhVzVuSUhSdklHTnZiblpsY25RdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UzTjBjbWx1WjMwZ1VtVjBkWEp1Y3lCMGFHVWdkWEJ3WlhJZ1kyRnpaV1FnYzNSeWFXNW5MbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMblJ2VlhCd1pYSW9KeTB0Wm05dkxXSmhjaTB0SnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnSnkwdFJrOVBMVUpCVWkwdEoxeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NTBiMVZ3Y0dWeUtDZG1iMjlDWVhJbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBblJrOVBRa0ZTSjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1MGIxVndjR1Z5S0NkZlgyWnZiMTlpWVhKZlh5Y3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lDZGZYMFpQVDE5Q1FWSmZYeWRjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQjBiMVZ3Y0dWeUtIWmhiSFZsS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEc5VGRISnBibWNvZG1Gc2RXVXBMblJ2VlhCd1pYSkRZWE5sS0NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1VtVnRiM1psY3lCc1pXRmthVzVuSUdGdVpDQjBjbUZwYkdsdVp5QjNhR2wwWlhOd1lXTmxJRzl5SUhOd1pXTnBabWxsWkNCamFHRnlZV04wWlhKeklHWnliMjBnWUhOMGNtbHVaMkF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdNeTR3TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1UzUnlhVzVuWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR6ZEhKcGJtYzlKeWRkSUZSb1pTQnpkSEpwYm1jZ2RHOGdkSEpwYlM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzJOb1lYSnpQWGRvYVhSbGMzQmhZMlZkSUZSb1pTQmphR0Z5WVdOMFpYSnpJSFJ2SUhSeWFXMHVYRzRnSUNBZ0lDb2dRSEJoY21GdExTQjdUMkpxWldOMGZTQmJaM1ZoY21SZElFVnVZV0pzWlhNZ2RYTmxJR0Z6SUdGdUlHbDBaWEpoZEdWbElHWnZjaUJ0WlhSb2IyUnpJR3hwYTJVZ1lGOHViV0Z3WUM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN2MzUnlhVzVuZlNCU1pYUjFjbTV6SUhSb1pTQjBjbWx0YldWa0lITjBjbWx1Wnk1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1MGNtbHRLQ2NnSUdGaVl5QWdKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMkZpWXlkY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWRISnBiU2duTFY4dFlXSmpMVjh0Snl3Z0oxOHRKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMkZpWXlkY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWJXRndLRnNuSUNCbWIyOGdJQ2NzSUNjZ0lHSmhjaUFnSjEwc0lGOHVkSEpwYlNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnV3lkbWIyOG5MQ0FuWW1GeUoxMWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCMGNtbHRLSE4wY21sdVp5d2dZMmhoY25Nc0lHZDFZWEprS1NCN1hHNGdJQ0FnSUNCemRISnBibWNnUFNCMGIxTjBjbWx1WnloemRISnBibWNwTzF4dUlDQWdJQ0FnYVdZZ0tITjBjbWx1WnlBbUppQW9aM1ZoY21RZ2ZId2dZMmhoY25NZ1BUMDlJSFZ1WkdWbWFXNWxaQ2twSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdKaGMyVlVjbWx0S0hOMGNtbHVaeWs3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JwWmlBb0lYTjBjbWx1WnlCOGZDQWhLR05vWVhKeklEMGdZbUZ6WlZSdlUzUnlhVzVuS0dOb1lYSnpLU2twSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhOMGNtbHVaenRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSFpoY2lCemRISlRlVzFpYjJ4eklEMGdjM1J5YVc1blZHOUJjbkpoZVNoemRISnBibWNwTEZ4dUlDQWdJQ0FnSUNBZ0lHTm9jbE41YldKdmJITWdQU0J6ZEhKcGJtZFViMEZ5Y21GNUtHTm9ZWEp6S1N4Y2JpQWdJQ0FnSUNBZ0lDQnpkR0Z5ZENBOUlHTm9ZWEp6VTNSaGNuUkpibVJsZUNoemRISlRlVzFpYjJ4ekxDQmphSEpUZVcxaWIyeHpLU3hjYmlBZ0lDQWdJQ0FnSUNCbGJtUWdQU0JqYUdGeWMwVnVaRWx1WkdWNEtITjBjbE41YldKdmJITXNJR05vY2xONWJXSnZiSE1wSUNzZ01UdGNibHh1SUNBZ0lDQWdjbVYwZFhKdUlHTmhjM1JUYkdsalpTaHpkSEpUZVcxaWIyeHpMQ0J6ZEdGeWRDd2daVzVrS1M1cWIybHVLQ2NuS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCU1pXMXZkbVZ6SUhSeVlXbHNhVzVuSUhkb2FYUmxjM0JoWTJVZ2IzSWdjM0JsWTJsbWFXVmtJR05vWVhKaFkzUmxjbk1nWm5KdmJTQmdjM1J5YVc1bllDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBMExqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JUZEhKcGJtZGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1czTjBjbWx1WnowbkoxMGdWR2hsSUhOMGNtbHVaeUIwYnlCMGNtbHRMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJZMmhoY25NOWQyaHBkR1Z6Y0dGalpWMGdWR2hsSUdOb1lYSmhZM1JsY25NZ2RHOGdkSEpwYlM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzB0SUh0UFltcGxZM1I5SUZ0bmRXRnlaRjBnUlc1aFlteGxjeUIxYzJVZ1lYTWdZVzRnYVhSbGNtRjBaV1VnWm05eUlHMWxkR2h2WkhNZ2JHbHJaU0JnWHk1dFlYQmdMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHR6ZEhKcGJtZDlJRkpsZEhWeWJuTWdkR2hsSUhSeWFXMXRaV1FnYzNSeWFXNW5MbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMblJ5YVcxRmJtUW9KeUFnWVdKaklDQW5LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQW5JQ0JoWW1NblhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuUnlhVzFGYm1Rb0p5MWZMV0ZpWXkxZkxTY3NJQ2RmTFNjcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUNjdFh5MWhZbU1uWEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdkSEpwYlVWdVpDaHpkSEpwYm1jc0lHTm9ZWEp6TENCbmRXRnlaQ2tnZTF4dUlDQWdJQ0FnYzNSeWFXNW5JRDBnZEc5VGRISnBibWNvYzNSeWFXNW5LVHRjYmlBZ0lDQWdJR2xtSUNoemRISnBibWNnSmlZZ0tHZDFZWEprSUh4OElHTm9ZWEp6SUQwOVBTQjFibVJsWm1sdVpXUXBLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ6ZEhKcGJtY3VjMnhwWTJVb01Dd2dkSEpwYlcxbFpFVnVaRWx1WkdWNEtITjBjbWx1WnlrZ0t5QXhLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR2xtSUNnaGMzUnlhVzVuSUh4OElDRW9ZMmhoY25NZ1BTQmlZWE5sVkc5VGRISnBibWNvWTJoaGNuTXBLU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYzNSeWFXNW5PMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdkbUZ5SUhOMGNsTjViV0p2YkhNZ1BTQnpkSEpwYm1kVWIwRnljbUY1S0hOMGNtbHVaeWtzWEc0Z0lDQWdJQ0FnSUNBZ1pXNWtJRDBnWTJoaGNuTkZibVJKYm1SbGVDaHpkSEpUZVcxaWIyeHpMQ0J6ZEhKcGJtZFViMEZ5Y21GNUtHTm9ZWEp6S1NrZ0t5QXhPMXh1WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZMkZ6ZEZOc2FXTmxLSE4wY2xONWJXSnZiSE1zSURBc0lHVnVaQ2t1YW05cGJpZ25KeWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVW1WdGIzWmxjeUJzWldGa2FXNW5JSGRvYVhSbGMzQmhZMlVnYjNJZ2MzQmxZMmxtYVdWa0lHTm9ZWEpoWTNSbGNuTWdabkp2YlNCZ2MzUnlhVzVuWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0EwTGpBdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQlRkSEpwYm1kY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzNOMGNtbHVaejBuSjEwZ1ZHaGxJSE4wY21sdVp5QjBieUIwY21sdExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYlkyaGhjbk05ZDJocGRHVnpjR0ZqWlYwZ1ZHaGxJR05vWVhKaFkzUmxjbk1nZEc4Z2RISnBiUzVjYmlBZ0lDQWdLaUJBY0dGeVlXMHRJSHRQWW1wbFkzUjlJRnRuZFdGeVpGMGdSVzVoWW14bGN5QjFjMlVnWVhNZ1lXNGdhWFJsY21GMFpXVWdabTl5SUcxbGRHaHZaSE1nYkdsclpTQmdYeTV0WVhCZ0xseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdHpkSEpwYm1kOUlGSmxkSFZ5Ym5NZ2RHaGxJSFJ5YVcxdFpXUWdjM1J5YVc1bkxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuUnlhVzFUZEdGeWRDZ25JQ0JoWW1NZ0lDY3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lDZGhZbU1nSUNkY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWRISnBiVk4wWVhKMEtDY3RYeTFoWW1NdFh5MG5MQ0FuWHkwbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBbllXSmpMVjh0SjF4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJSFJ5YVcxVGRHRnlkQ2h6ZEhKcGJtY3NJR05vWVhKekxDQm5kV0Z5WkNrZ2UxeHVJQ0FnSUNBZ2MzUnlhVzVuSUQwZ2RHOVRkSEpwYm1jb2MzUnlhVzVuS1R0Y2JpQWdJQ0FnSUdsbUlDaHpkSEpwYm1jZ0ppWWdLR2QxWVhKa0lIeDhJR05vWVhKeklEMDlQU0IxYm1SbFptbHVaV1FwS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCemRISnBibWN1Y21Wd2JHRmpaU2h5WlZSeWFXMVRkR0Z5ZEN3Z0p5Y3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdhV1lnS0NGemRISnBibWNnZkh3Z0lTaGphR0Z5Y3lBOUlHSmhjMlZVYjFOMGNtbHVaeWhqYUdGeWN5a3BLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ6ZEhKcGJtYzdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQjJZWElnYzNSeVUzbHRZbTlzY3lBOUlITjBjbWx1WjFSdlFYSnlZWGtvYzNSeWFXNW5LU3hjYmlBZ0lDQWdJQ0FnSUNCemRHRnlkQ0E5SUdOb1lYSnpVM1JoY25SSmJtUmxlQ2h6ZEhKVGVXMWliMnh6TENCemRISnBibWRVYjBGeWNtRjVLR05vWVhKektTazdYRzVjYmlBZ0lDQWdJSEpsZEhWeWJpQmpZWE4wVTJ4cFkyVW9jM1J5VTNsdFltOXNjeXdnYzNSaGNuUXBMbXB2YVc0b0p5Y3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJ5ZFc1allYUmxjeUJnYzNSeWFXNW5ZQ0JwWmlCcGRDZHpJR3h2Ym1kbGNpQjBhR0Z1SUhSb1pTQm5hWFpsYmlCdFlYaHBiWFZ0SUhOMGNtbHVaeUJzWlc1bmRHZ3VYRzRnSUNBZ0lDb2dWR2hsSUd4aGMzUWdZMmhoY21GamRHVnljeUJ2WmlCMGFHVWdkSEoxYm1OaGRHVmtJSE4wY21sdVp5QmhjbVVnY21Wd2JHRmpaV1FnZDJsMGFDQjBhR1VnYjIxcGMzTnBiMjVjYmlBZ0lDQWdLaUJ6ZEhKcGJtY2dkMmhwWTJnZ1pHVm1ZWFZzZEhNZ2RHOGdYQ0l1TGk1Y0lpNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBMExqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JUZEhKcGJtZGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1czTjBjbWx1WnowbkoxMGdWR2hsSUhOMGNtbHVaeUIwYnlCMGNuVnVZMkYwWlM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnVzI5d2RHbHZibk05ZTMxZElGUm9aU0J2Y0hScGIyNXpJRzlpYW1WamRDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1cyOXdkR2x2Ym5NdWJHVnVaM1JvUFRNd1hTQlVhR1VnYldGNGFXMTFiU0J6ZEhKcGJtY2diR1Z1WjNSb0xseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBhVzl1Y3k1dmJXbHpjMmx2YmowbkxpNHVKMTBnVkdobElITjBjbWx1WnlCMGJ5QnBibVJwWTJGMFpTQjBaWGgwSUdseklHOXRhWFIwWldRdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0U1pXZEZlSEI4YzNSeWFXNW5mU0JiYjNCMGFXOXVjeTV6WlhCaGNtRjBiM0pkSUZSb1pTQnpaWEJoY21GMGIzSWdjR0YwZEdWeWJpQjBieUIwY25WdVkyRjBaU0IwYnk1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN2MzUnlhVzVuZlNCU1pYUjFjbTV6SUhSb1pTQjBjblZ1WTJGMFpXUWdjM1J5YVc1bkxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuUnlkVzVqWVhSbEtDZG9hUzFrYVdSa2JIa3RhRzhnZEdobGNtVXNJRzVsYVdkb1ltOXlhVzV2SnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnSjJocExXUnBaR1JzZVMxb2J5QjBhR1Z5WlN3Z2JtVnBaMmhpYnk0dUxpZGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVkSEoxYm1OaGRHVW9KMmhwTFdScFpHUnNlUzFvYnlCMGFHVnlaU3dnYm1WcFoyaGliM0pwYm04bkxDQjdYRzRnSUNBZ0lDb2dJQ0FuYkdWdVozUm9Kem9nTWpRc1hHNGdJQ0FnSUNvZ0lDQW5jMlZ3WVhKaGRHOXlKem9nSnlBblhHNGdJQ0FnSUNvZ2ZTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z0oyaHBMV1JwWkdSc2VTMW9ieUIwYUdWeVpTd3VMaTRuWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5SeWRXNWpZWFJsS0Nkb2FTMWthV1JrYkhrdGFHOGdkR2hsY21Vc0lHNWxhV2RvWW05eWFXNXZKeXdnZTF4dUlDQWdJQ0FxSUNBZ0oyeGxibWQwYUNjNklESTBMRnh1SUNBZ0lDQXFJQ0FnSjNObGNHRnlZWFJ2Y2ljNklDOHNQeUFyTDF4dUlDQWdJQ0FxSUgwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUNkb2FTMWthV1JrYkhrdGFHOGdkR2hsY21VdUxpNG5YRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMblJ5ZFc1allYUmxLQ2RvYVMxa2FXUmtiSGt0YUc4Z2RHaGxjbVVzSUc1bGFXZG9ZbTl5YVc1dkp5d2dlMXh1SUNBZ0lDQXFJQ0FnSjI5dGFYTnphVzl1SnpvZ0p5QmJMaTR1WFNkY2JpQWdJQ0FnS2lCOUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBbmFHa3RaR2xrWkd4NUxXaHZJSFJvWlhKbExDQnVaV2xuSUZzdUxpNWRKMXh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlIUnlkVzVqWVhSbEtITjBjbWx1Wnl3Z2IzQjBhVzl1Y3lrZ2UxeHVJQ0FnSUNBZ2RtRnlJR3hsYm1kMGFDQTlJRVJGUmtGVlRGUmZWRkpWVGtOZlRFVk9SMVJJTEZ4dUlDQWdJQ0FnSUNBZ0lHOXRhWE56YVc5dUlEMGdSRVZHUVZWTVZGOVVVbFZPUTE5UFRVbFRVMGxQVGp0Y2JseHVJQ0FnSUNBZ2FXWWdLR2x6VDJKcVpXTjBLRzl3ZEdsdmJuTXBLU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQnpaWEJoY21GMGIzSWdQU0FuYzJWd1lYSmhkRzl5SnlCcGJpQnZjSFJwYjI1eklEOGdiM0IwYVc5dWN5NXpaWEJoY21GMGIzSWdPaUJ6WlhCaGNtRjBiM0k3WEc0Z0lDQWdJQ0FnSUd4bGJtZDBhQ0E5SUNkc1pXNW5kR2duSUdsdUlHOXdkR2x2Ym5NZ1B5QjBiMGx1ZEdWblpYSW9iM0IwYVc5dWN5NXNaVzVuZEdncElEb2diR1Z1WjNSb08xeHVJQ0FnSUNBZ0lDQnZiV2x6YzJsdmJpQTlJQ2R2YldsemMybHZiaWNnYVc0Z2IzQjBhVzl1Y3lBL0lHSmhjMlZVYjFOMGNtbHVaeWh2Y0hScGIyNXpMbTl0YVhOemFXOXVLU0E2SUc5dGFYTnphVzl1TzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYzNSeWFXNW5JRDBnZEc5VGRISnBibWNvYzNSeWFXNW5LVHRjYmx4dUlDQWdJQ0FnZG1GeUlITjBja3hsYm1kMGFDQTlJSE4wY21sdVp5NXNaVzVuZEdnN1hHNGdJQ0FnSUNCcFppQW9hR0Z6Vlc1cFkyOWtaU2h6ZEhKcGJtY3BLU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQnpkSEpUZVcxaWIyeHpJRDBnYzNSeWFXNW5WRzlCY25KaGVTaHpkSEpwYm1jcE8xeHVJQ0FnSUNBZ0lDQnpkSEpNWlc1bmRHZ2dQU0J6ZEhKVGVXMWliMnh6TG14bGJtZDBhRHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR2xtSUNoc1pXNW5kR2dnUGowZ2MzUnlUR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnpkSEpwYm1jN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCMllYSWdaVzVrSUQwZ2JHVnVaM1JvSUMwZ2MzUnlhVzVuVTJsNlpTaHZiV2x6YzJsdmJpazdYRzRnSUNBZ0lDQnBaaUFvWlc1a0lEd2dNU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYjIxcGMzTnBiMjQ3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ2MzUnlVM2x0WW05c2MxeHVJQ0FnSUNBZ0lDQS9JR05oYzNSVGJHbGpaU2h6ZEhKVGVXMWliMnh6TENBd0xDQmxibVFwTG1wdmFXNG9KeWNwWEc0Z0lDQWdJQ0FnSURvZ2MzUnlhVzVuTG5Oc2FXTmxLREFzSUdWdVpDazdYRzVjYmlBZ0lDQWdJR2xtSUNoelpYQmhjbUYwYjNJZ1BUMDlJSFZ1WkdWbWFXNWxaQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBJQ3NnYjIxcGMzTnBiMjQ3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JwWmlBb2MzUnlVM2x0WW05c2N5a2dlMXh1SUNBZ0lDQWdJQ0JsYm1RZ0t6MGdLSEpsYzNWc2RDNXNaVzVuZEdnZ0xTQmxibVFwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tHbHpVbVZuUlhod0tITmxjR0Z5WVhSdmNpa3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tITjBjbWx1Wnk1emJHbGpaU2hsYm1RcExuTmxZWEpqYUNoelpYQmhjbUYwYjNJcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnZG1GeUlHMWhkR05vTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZFdKemRISnBibWNnUFNCeVpYTjFiSFE3WEc1Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvSVhObGNHRnlZWFJ2Y2k1bmJHOWlZV3dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSE5sY0dGeVlYUnZjaUE5SUZKbFowVjRjQ2h6WlhCaGNtRjBiM0l1YzI5MWNtTmxMQ0IwYjFOMGNtbHVaeWh5WlVac1lXZHpMbVY0WldNb2MyVndZWEpoZEc5eUtTa2dLeUFuWnljcE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCelpYQmhjbUYwYjNJdWJHRnpkRWx1WkdWNElEMGdNRHRjYmlBZ0lDQWdJQ0FnSUNCM2FHbHNaU0FvS0cxaGRHTm9JRDBnYzJWd1lYSmhkRzl5TG1WNFpXTW9jM1ZpYzNSeWFXNW5LU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCdVpYZEZibVFnUFNCdFlYUmphQzVwYm1SbGVEdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2NtVnpkV3gwSUQwZ2NtVnpkV3gwTG5Oc2FXTmxLREFzSUc1bGQwVnVaQ0E5UFQwZ2RXNWtaV1pwYm1Wa0lEOGdaVzVrSURvZ2JtVjNSVzVrS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaHpkSEpwYm1jdWFXNWtaWGhQWmloaVlYTmxWRzlUZEhKcGJtY29jMlZ3WVhKaGRHOXlLU3dnWlc1a0tTQWhQU0JsYm1RcElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUdsdVpHVjRJRDBnY21WemRXeDBMbXhoYzNSSmJtUmxlRTltS0hObGNHRnlZWFJ2Y2lrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwYm1SbGVDQStJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVZ6ZFd4MElEMGdjbVZ6ZFd4MExuTnNhV05sS0RBc0lHbHVaR1Y0S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkQ0FySUc5dGFYTnphVzl1TzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQnBiblpsY25ObElHOW1JR0JmTG1WelkyRndaV0E3SUhSb2FYTWdiV1YwYUc5a0lHTnZiblpsY25SeklIUm9aU0JJVkUxTUlHVnVkR2wwYVdWelhHNGdJQ0FnSUNvZ1lDWmhiWEE3WUN3Z1lDWnNkRHRnTENCZ0ptZDBPMkFzSUdBbWNYVnZkRHRnTENCaGJtUWdZQ1lqTXprN1lDQnBiaUJnYzNSeWFXNW5ZQ0IwYjF4dUlDQWdJQ0FxSUhSb1pXbHlJR052Y25KbGMzQnZibVJwYm1jZ1kyaGhjbUZqZEdWeWN5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDb3FUbTkwWlRvcUtpQk9ieUJ2ZEdobGNpQklWRTFNSUdWdWRHbDBhV1Z6SUdGeVpTQjFibVZ6WTJGd1pXUXVJRlJ2SUhWdVpYTmpZWEJsSUdGa1pHbDBhVzl1WVd4Y2JpQWdJQ0FnS2lCSVZFMU1JR1Z1ZEdsMGFXVnpJSFZ6WlNCaElIUm9hWEprTFhCaGNuUjVJR3hwWW5KaGNua2diR2xyWlNCYlgyaGxYMTBvYUhSMGNITTZMeTl0ZEdoekxtSmxMMmhsS1M1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F3TGpZdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQlRkSEpwYm1kY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzNOMGNtbHVaejBuSjEwZ1ZHaGxJSE4wY21sdVp5QjBieUIxYm1WelkyRndaUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3YzNSeWFXNW5mU0JTWlhSMWNtNXpJSFJvWlNCMWJtVnpZMkZ3WldRZ2MzUnlhVzVuTGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5WdVpYTmpZWEJsS0NkbWNtVmtMQ0JpWVhKdVpYa3NJQ1poYlhBN0lIQmxZbUpzWlhNbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBblpuSmxaQ3dnWW1GeWJtVjVMQ0FtSUhCbFltSnNaWE1uWEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdkVzVsYzJOaGNHVW9jM1J5YVc1bktTQjdYRzRnSUNBZ0lDQnpkSEpwYm1jZ1BTQjBiMU4wY21sdVp5aHpkSEpwYm1jcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUNoemRISnBibWNnSmlZZ2NtVklZWE5GYzJOaGNHVmtTSFJ0YkM1MFpYTjBLSE4wY21sdVp5a3BYRzRnSUNBZ0lDQWdJRDhnYzNSeWFXNW5MbkpsY0d4aFkyVW9jbVZGYzJOaGNHVmtTSFJ0YkN3Z2RXNWxjMk5oY0dWSWRHMXNRMmhoY2lsY2JpQWdJQ0FnSUNBZ09pQnpkSEpwYm1jN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyOXVkbVZ5ZEhNZ1lITjBjbWx1WjJBc0lHRnpJSE53WVdObElITmxjR0Z5WVhSbFpDQjNiM0prY3l3Z2RHOGdkWEJ3WlhJZ1kyRnpaUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQTBMakF1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCVGRISnBibWRjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXM04wY21sdVp6MG5KMTBnVkdobElITjBjbWx1WnlCMGJ5QmpiMjUyWlhKMExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdHpkSEpwYm1kOUlGSmxkSFZ5Ym5NZ2RHaGxJSFZ3Y0dWeUlHTmhjMlZrSUhOMGNtbHVaeTVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTUxY0hCbGNrTmhjMlVvSnkwdFptOXZMV0poY2ljcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUNkR1QwOGdRa0ZTSjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1MWNIQmxja05oYzJVb0oyWnZiMEpoY2ljcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUNkR1QwOGdRa0ZTSjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1MWNIQmxja05oYzJVb0oxOWZabTl2WDJKaGNsOWZKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMFpQVHlCQ1FWSW5YRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RtRnlJSFZ3Y0dWeVEyRnpaU0E5SUdOeVpXRjBaVU52YlhCdmRXNWtaWElvWm5WdVkzUnBiMjRvY21WemRXeDBMQ0IzYjNKa0xDQnBibVJsZUNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkQ0FySUNocGJtUmxlQ0EvSUNjZ0p5QTZJQ2NuS1NBcklIZHZjbVF1ZEc5VmNIQmxja05oYzJVb0tUdGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU52Ym5abGNuUnpJSFJvWlNCbWFYSnpkQ0JqYUdGeVlXTjBaWElnYjJZZ1lITjBjbWx1WjJBZ2RHOGdkWEJ3WlhJZ1kyRnpaUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQTBMakF1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCVGRISnBibWRjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXM04wY21sdVp6MG5KMTBnVkdobElITjBjbWx1WnlCMGJ5QmpiMjUyWlhKMExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdHpkSEpwYm1kOUlGSmxkSFZ5Ym5NZ2RHaGxJR052Ym5abGNuUmxaQ0J6ZEhKcGJtY3VYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVkWEJ3WlhKR2FYSnpkQ2duWm5KbFpDY3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lDZEdjbVZrSjF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1MWNIQmxja1pwY25OMEtDZEdVa1ZFSnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnSjBaU1JVUW5YRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RtRnlJSFZ3Y0dWeVJtbHljM1FnUFNCamNtVmhkR1ZEWVhObFJtbHljM1FvSjNSdlZYQndaWEpEWVhObEp5azdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJUY0d4cGRITWdZSE4wY21sdVoyQWdhVzUwYnlCaGJpQmhjbkpoZVNCdlppQnBkSE1nZDI5eVpITXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ015NHdMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVTNSeWFXNW5YRzRnSUNBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdHpkSEpwYm1jOUp5ZGRJRlJvWlNCemRISnBibWNnZEc4Z2FXNXpjR1ZqZEM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTFKbFowVjRjSHh6ZEhKcGJtZDlJRnR3WVhSMFpYSnVYU0JVYUdVZ2NHRjBkR1Z5YmlCMGJ5QnRZWFJqYUNCM2IzSmtjeTVjYmlBZ0lDQWdLaUJBY0dGeVlXMHRJSHRQWW1wbFkzUjlJRnRuZFdGeVpGMGdSVzVoWW14bGN5QjFjMlVnWVhNZ1lXNGdhWFJsY21GMFpXVWdabTl5SUcxbGRHaHZaSE1nYkdsclpTQmdYeTV0WVhCZ0xseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdEJjbkpoZVgwZ1VtVjBkWEp1Y3lCMGFHVWdkMjl5WkhNZ2IyWWdZSE4wY21sdVoyQXVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVkMjl5WkhNb0oyWnlaV1FzSUdKaGNtNWxlU3dnSmlCd1pXSmliR1Z6SnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnV3lkbWNtVmtKeXdnSjJKaGNtNWxlU2NzSUNkd1pXSmliR1Z6SjExY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWQyOXlaSE1vSjJaeVpXUXNJR0poY201bGVTd2dKaUJ3WldKaWJHVnpKeXdnTDF0ZUxDQmRLeTluS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiSjJaeVpXUW5MQ0FuWW1GeWJtVjVKeXdnSnlZbkxDQW5jR1ZpWW14bGN5ZGRYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2QyOXlaSE1vYzNSeWFXNW5MQ0J3WVhSMFpYSnVMQ0JuZFdGeVpDa2dlMXh1SUNBZ0lDQWdjM1J5YVc1bklEMGdkRzlUZEhKcGJtY29jM1J5YVc1bktUdGNiaUFnSUNBZ0lIQmhkSFJsY200Z1BTQm5kV0Z5WkNBL0lIVnVaR1ZtYVc1bFpDQTZJSEJoZEhSbGNtNDdYRzVjYmlBZ0lDQWdJR2xtSUNod1lYUjBaWEp1SUQwOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR2hoYzFWdWFXTnZaR1ZYYjNKa0tITjBjbWx1WnlrZ1B5QjFibWxqYjJSbFYyOXlaSE1vYzNSeWFXNW5LU0E2SUdGelkybHBWMjl5WkhNb2MzUnlhVzVuS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUJ6ZEhKcGJtY3ViV0YwWTJnb2NHRjBkR1Z5YmlrZ2ZId2dXMTA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW90TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBxTDF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FYUjBaVzF3ZEhNZ2RHOGdhVzUyYjJ0bElHQm1kVzVqWUN3Z2NtVjBkWEp1YVc1bklHVnBkR2hsY2lCMGFHVWdjbVZ6ZFd4MElHOXlJSFJvWlNCallYVm5hSFFnWlhKeWIzSmNiaUFnSUNBZ0tpQnZZbXBsWTNRdUlFRnVlU0JoWkdScGRHbHZibUZzSUdGeVozVnRaVzUwY3lCaGNtVWdjSEp2ZG1sa1pXUWdkRzhnWUdaMWJtTmdJSGRvWlc0Z2FYUW5jeUJwYm5admEyVmtMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElETXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUZWMGFXeGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQm1kVzVqSUZSb1pTQm1kVzVqZEdsdmJpQjBieUJoZEhSbGJYQjBMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdMaTR1S24wZ1cyRnlaM05kSUZSb1pTQmhjbWQxYldWdWRITWdkRzhnYVc1MmIydGxJR0JtZFc1allDQjNhWFJvTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUhzcWZTQlNaWFIxY201eklIUm9aU0JnWm5WdVkyQWdjbVZ6ZFd4MElHOXlJR1Z5Y205eUlHOWlhbVZqZEM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z1FYWnZhV1FnZEdoeWIzZHBibWNnWlhKeWIzSnpJR1p2Y2lCcGJuWmhiR2xrSUhObGJHVmpkRzl5Y3k1Y2JpQWdJQ0FnS2lCMllYSWdaV3hsYldWdWRITWdQU0JmTG1GMGRHVnRjSFFvWm5WdVkzUnBiMjRvYzJWc1pXTjBiM0lwSUh0Y2JpQWdJQ0FnS2lBZ0lISmxkSFZ5YmlCa2IyTjFiV1Z1ZEM1eGRXVnllVk5sYkdWamRHOXlRV3hzS0hObGJHVmpkRzl5S1R0Y2JpQWdJQ0FnS2lCOUxDQW5QbDgrSnlrN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCcFppQW9YeTVwYzBWeWNtOXlLR1ZzWlcxbGJuUnpLU2tnZTF4dUlDQWdJQ0FxSUNBZ1pXeGxiV1Z1ZEhNZ1BTQmJYVHRjYmlBZ0lDQWdLaUI5WEc0Z0lDQWdJQ292WEc0Z0lDQWdkbUZ5SUdGMGRHVnRjSFFnUFNCaVlYTmxVbVZ6ZENobWRXNWpkR2x2YmlobWRXNWpMQ0JoY21kektTQjdYRzRnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWVhCd2JIa29ablZ1WXl3Z2RXNWtaV1pwYm1Wa0xDQmhjbWR6S1R0Y2JpQWdJQ0FnSUgwZ1kyRjBZMmdnS0dVcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHbHpSWEp5YjNJb1pTa2dQeUJsSURvZ2JtVjNJRVZ5Y205eUtHVXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUW1sdVpITWdiV1YwYUc5a2N5QnZaaUJoYmlCdlltcGxZM1FnZEc4Z2RHaGxJRzlpYW1WamRDQnBkSE5sYkdZc0lHOTJaWEozY21sMGFXNW5JSFJvWlNCbGVHbHpkR2x1WjF4dUlDQWdJQ0FxSUcxbGRHaHZaQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQ29xVG05MFpUb3FLaUJVYUdseklHMWxkR2h2WkNCa2IyVnpiaWQwSUhObGRDQjBhR1VnWENKc1pXNW5kR2hjSWlCd2NtOXdaWEowZVNCdlppQmliM1Z1WkNCbWRXNWpkR2x2Ym5NdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUhOcGJtTmxJREF1TVM0d1hHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dWWFJwYkZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2WW1wbFkzUWdWR2hsSUc5aWFtVmpkQ0IwYnlCaWFXNWtJR0Z1WkNCaGMzTnBaMjRnZEdobElHSnZkVzVrSUcxbGRHaHZaSE1nZEc4dVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUhzdUxpNG9jM1J5YVc1bmZITjBjbWx1WjF0ZEtYMGdiV1YwYUc5a1RtRnRaWE1nVkdobElHOWlhbVZqZENCdFpYUm9iMlFnYm1GdFpYTWdkRzhnWW1sdVpDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdUMkpxWldOMGZTQlNaWFIxY201eklHQnZZbXBsWTNSZ0xseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdkbWxsZHlBOUlIdGNiaUFnSUNBZ0tpQWdJQ2RzWVdKbGJDYzZJQ2RrYjJOekp5eGNiaUFnSUNBZ0tpQWdJQ2RqYkdsamF5YzZJR1oxYm1OMGFXOXVLQ2tnZTF4dUlDQWdJQ0FxSUNBZ0lDQmpiMjV6YjJ4bExteHZaeWduWTJ4cFkydGxaQ0FuSUNzZ2RHaHBjeTVzWVdKbGJDazdYRzRnSUNBZ0lDb2dJQ0I5WEc0Z0lDQWdJQ29nZlR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dVltbHVaRUZzYkNoMmFXVjNMQ0JiSjJOc2FXTnJKMTBwTzF4dUlDQWdJQ0FxSUdwUmRXVnllU2hsYkdWdFpXNTBLUzV2YmlnblkyeHBZMnNuTENCMmFXVjNMbU5zYVdOcktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCTWIyZHpJQ2RqYkdsamEyVmtJR1J2WTNNbklIZG9aVzRnWTJ4cFkydGxaQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQjJZWElnWW1sdVpFRnNiQ0E5SUdac1lYUlNaWE4wS0daMWJtTjBhVzl1S0c5aWFtVmpkQ3dnYldWMGFHOWtUbUZ0WlhNcElIdGNiaUFnSUNBZ0lHRnljbUY1UldGamFDaHRaWFJvYjJST1lXMWxjeXdnWm5WdVkzUnBiMjRvYTJWNUtTQjdYRzRnSUNBZ0lDQWdJR3RsZVNBOUlIUnZTMlY1S0d0bGVTazdYRzRnSUNBZ0lDQWdJR0poYzJWQmMzTnBaMjVXWVd4MVpTaHZZbXBsWTNRc0lHdGxlU3dnWW1sdVpDaHZZbXBsWTNSYmEyVjVYU3dnYjJKcVpXTjBLU2s3WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ2WW1wbFkzUTdYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVnpJR0VnWm5WdVkzUnBiMjRnZEdoaGRDQnBkR1Z5WVhSbGN5QnZkbVZ5SUdCd1lXbHljMkFnWVc1a0lHbHVkbTlyWlhNZ2RHaGxJR052Y25KbGMzQnZibVJwYm1kY2JpQWdJQ0FnS2lCbWRXNWpkR2x2YmlCdlppQjBhR1VnWm1seWMzUWdjSEpsWkdsallYUmxJSFJ2SUhKbGRIVnliaUIwY25WMGFIa3VJRlJvWlNCd2NtVmthV05oZEdVdFpuVnVZM1JwYjI1Y2JpQWdJQ0FnS2lCd1lXbHljeUJoY21VZ2FXNTJiMnRsWkNCM2FYUm9JSFJvWlNCZ2RHaHBjMkFnWW1sdVpHbHVaeUJoYm1RZ1lYSm5kVzFsYm5SeklHOW1JSFJvWlNCamNtVmhkR1ZrWEc0Z0lDQWdJQ29nWm5WdVkzUnBiMjR1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR3TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1ZYUnBiRnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlIQmhhWEp6SUZSb1pTQndjbVZrYVdOaGRHVXRablZ1WTNScGIyNGdjR0ZwY25NdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwWjFibU4wYVc5dWZTQlNaWFIxY201eklIUm9aU0J1WlhjZ1kyOXRjRzl6YVhSbElHWjFibU4wYVc5dUxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdablZ1WXlBOUlGOHVZMjl1WkNoYlhHNGdJQ0FnSUNvZ0lDQmJYeTV0WVhSamFHVnpLSHNnSjJFbk9pQXhJSDBwTENBZ0lDQWdJQ0FnSUNBZ1h5NWpiMjV6ZEdGdWRDZ25iV0YwWTJobGN5QkJKeWxkTEZ4dUlDQWdJQ0FxSUNBZ1cxOHVZMjl1Wm05eWJYTW9leUFuWWljNklGOHVhWE5PZFcxaVpYSWdmU2tzSUY4dVkyOXVjM1JoYm5Rb0oyMWhkR05vWlhNZ1FpY3BYU3hjYmlBZ0lDQWdLaUFnSUZ0ZkxuTjBkV0pVY25WbExDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JmTG1OdmJuTjBZVzUwS0NkdWJ5QnRZWFJqYUNjcFhWeHVJQ0FnSUNBcUlGMHBPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dablZ1WXloN0lDZGhKem9nTVN3Z0oySW5PaUF5SUgwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUNkdFlYUmphR1Z6SUVFblhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCbWRXNWpLSHNnSjJFbk9pQXdMQ0FuWWljNklERWdmU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMjFoZEdOb1pYTWdRaWRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJR1oxYm1Nb2V5QW5ZU2M2SUNjeEp5d2dKMkluT2lBbk1pY2dmU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdKMjV2SUcxaGRHTm9KMXh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHTnZibVFvY0dGcGNuTXBJSHRjYmlBZ0lDQWdJSFpoY2lCc1pXNW5kR2dnUFNCd1lXbHljeUE5UFNCdWRXeHNJRDhnTUNBNklIQmhhWEp6TG14bGJtZDBhQ3hjYmlBZ0lDQWdJQ0FnSUNCMGIwbDBaWEpoZEdWbElEMGdaMlYwU1hSbGNtRjBaV1VvS1R0Y2JseHVJQ0FnSUNBZ2NHRnBjbk1nUFNBaGJHVnVaM1JvSUQ4Z1cxMGdPaUJoY25KaGVVMWhjQ2h3WVdseWN5d2dablZ1WTNScGIyNG9jR0ZwY2lrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvZEhsd1pXOW1JSEJoYVhKYk1WMGdJVDBnSjJaMWJtTjBhVzl1SnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJVZVhCbFJYSnliM0lvUmxWT1ExOUZVbEpQVWw5VVJWaFVLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVzNSdlNYUmxjbUYwWldVb2NHRnBjbHN3WFNrc0lIQmhhWEpiTVYxZE8xeHVJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJSEpsZEhWeWJpQmlZWE5sVW1WemRDaG1kVzVqZEdsdmJpaGhjbWR6S1NCN1hHNGdJQ0FnSUNBZ0lIWmhjaUJwYm1SbGVDQTlJQzB4TzF4dUlDQWdJQ0FnSUNCM2FHbHNaU0FvS3l0cGJtUmxlQ0E4SUd4bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lIWmhjaUJ3WVdseUlEMGdjR0ZwY25OYmFXNWtaWGhkTzF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2hoY0hCc2VTaHdZV2x5V3pCZExDQjBhR2x6TENCaGNtZHpLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHRndjR3g1S0hCaGFYSmJNVjBzSUhSb2FYTXNJR0Z5WjNNcE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElHWjFibU4wYVc5dUlIUm9ZWFFnYVc1MmIydGxjeUIwYUdVZ2NISmxaR2xqWVhSbElIQnliM0JsY25ScFpYTWdiMllnWUhOdmRYSmpaV0FnZDJsMGFGeHVJQ0FnSUNBcUlIUm9aU0JqYjNKeVpYTndiMjVrYVc1bklIQnliM0JsY25SNUlIWmhiSFZsY3lCdlppQmhJR2RwZG1WdUlHOWlhbVZqZEN3Z2NtVjBkWEp1YVc1bklHQjBjblZsWUNCcFpseHVJQ0FnSUNBcUlHRnNiQ0J3Y21Wa2FXTmhkR1Z6SUhKbGRIVnliaUIwY25WMGFIa3NJR1ZzYzJVZ1lHWmhiSE5sWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUNvcVRtOTBaVG9xS2lCVWFHVWdZM0psWVhSbFpDQm1kVzVqZEdsdmJpQnBjeUJsY1hWcGRtRnNaVzUwSUhSdklHQmZMbU52Ym1admNtMXpWRzlnSUhkcGRHaGNiaUFnSUNBZ0tpQmdjMjkxY21ObFlDQndZWEowYVdGc2JIa2dZWEJ3YkdsbFpDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQnphVzVqWlNBMExqQXVNRnh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JWZEdsc1hHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUhOdmRYSmpaU0JVYUdVZ2IySnFaV04wSUc5bUlIQnliM0JsY25SNUlIQnlaV1JwWTJGMFpYTWdkRzhnWTI5dVptOXliU0IwYnk1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN1JuVnVZM1JwYjI1OUlGSmxkSFZ5Ym5NZ2RHaGxJRzVsZHlCemNHVmpJR1oxYm1OMGFXOXVMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQjJZWElnYjJKcVpXTjBjeUE5SUZ0Y2JpQWdJQ0FnS2lBZ0lIc2dKMkVuT2lBeUxDQW5ZaWM2SURFZ2ZTeGNiaUFnSUNBZ0tpQWdJSHNnSjJFbk9pQXhMQ0FuWWljNklESWdmVnh1SUNBZ0lDQXFJRjA3WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1acGJIUmxjaWh2WW1wbFkzUnpMQ0JmTG1OdmJtWnZjbTF6S0hzZ0oySW5PaUJtZFc1amRHbHZiaWh1S1NCN0lISmxkSFZ5YmlCdUlENGdNVHNnZlNCOUtTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1czc2dKMkVuT2lBeExDQW5ZaWM2SURJZ2ZWMWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCamIyNW1iM0p0Y3loemIzVnlZMlVwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJpWVhObFEyOXVabTl5YlhNb1ltRnpaVU5zYjI1bEtITnZkWEpqWlN3Z1EweFBUa1ZmUkVWRlVGOUdURUZIS1NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElHWjFibU4wYVc5dUlIUm9ZWFFnY21WMGRYSnVjeUJnZG1Gc2RXVmdMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElESXVOQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUZWMGFXeGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSFpoYkhWbElGUm9aU0IyWVd4MVpTQjBieUJ5WlhSMWNtNGdabkp2YlNCMGFHVWdibVYzSUdaMWJtTjBhVzl1TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0R2RXNWpkR2x2Ym4wZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUdOdmJuTjBZVzUwSUdaMWJtTjBhVzl1TGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ2IySnFaV04wY3lBOUlGOHVkR2x0WlhNb01pd2dYeTVqYjI1emRHRnVkQ2g3SUNkaEp6b2dNU0I5S1NrN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCamIyNXpiMnhsTG14dlp5aHZZbXBsWTNSektUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYmV5QW5ZU2M2SURFZ2ZTd2dleUFuWVNjNklERWdmVjFjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJR052Ym5OdmJHVXViRzluS0c5aWFtVmpkSE5iTUYwZ1BUMDlJRzlpYW1WamRITmJNVjBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJSFJ5ZFdWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJqYjI1emRHRnVkQ2gyWVd4MVpTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWjFibU4wYVc5dUtDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkbUZzZFdVN1hHNGdJQ0FnSUNCOU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTm9aV05yY3lCZ2RtRnNkV1ZnSUhSdklHUmxkR1Z5YldsdVpTQjNhR1YwYUdWeUlHRWdaR1ZtWVhWc2RDQjJZV3gxWlNCemFHOTFiR1FnWW1VZ2NtVjBkWEp1WldRZ2FXNWNiaUFnSUNBZ0tpQnBkSE1nY0d4aFkyVXVJRlJvWlNCZ1pHVm1ZWFZzZEZaaGJIVmxZQ0JwY3lCeVpYUjFjbTVsWkNCcFppQmdkbUZzZFdWZ0lHbHpJR0JPWVU1Z0xDQmdiblZzYkdBc1hHNGdJQ0FnSUNvZ2IzSWdZSFZ1WkdWbWFXNWxaR0F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR4TkM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlGVjBhV3hjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUhaaGJIVmxJRlJvWlNCMllXeDFaU0IwYnlCamFHVmpheTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdleXA5SUdSbFptRjFiSFJXWVd4MVpTQlVhR1VnWkdWbVlYVnNkQ0IyWVd4MVpTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdLbjBnVW1WMGRYSnVjeUIwYUdVZ2NtVnpiMngyWldRZ2RtRnNkV1V1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1WkdWbVlYVnNkRlJ2S0RFc0lERXdLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQXhYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbVJsWm1GMWJIUlVieWgxYm1SbFptbHVaV1FzSURFd0tUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBeE1GeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdSbFptRjFiSFJVYnloMllXeDFaU3dnWkdWbVlYVnNkRlpoYkhWbEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z0tIWmhiSFZsSUQwOUlHNTFiR3dnZkh3Z2RtRnNkV1VnSVQwOUlIWmhiSFZsS1NBL0lHUmxabUYxYkhSV1lXeDFaU0E2SUhaaGJIVmxPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU55WldGMFpYTWdZU0JtZFc1amRHbHZiaUIwYUdGMElISmxkSFZ5Ym5NZ2RHaGxJSEpsYzNWc2RDQnZaaUJwYm5admEybHVaeUIwYUdVZ1oybDJaVzRnWm5WdVkzUnBiMjV6WEc0Z0lDQWdJQ29nZDJsMGFDQjBhR1VnWUhSb2FYTmdJR0pwYm1ScGJtY2diMllnZEdobElHTnlaV0YwWldRZ1puVnVZM1JwYjI0c0lIZG9aWEpsSUdWaFkyZ2djM1ZqWTJWemMybDJaVnh1SUNBZ0lDQXFJR2x1ZG05allYUnBiMjRnYVhNZ2MzVndjR3hwWldRZ2RHaGxJSEpsZEhWeWJpQjJZV3gxWlNCdlppQjBhR1VnY0hKbGRtbHZkWE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdNeTR3TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1ZYUnBiRnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdMaTR1S0VaMWJtTjBhVzl1ZkVaMWJtTjBhVzl1VzEwcGZTQmJablZ1WTNOZElGUm9aU0JtZFc1amRHbHZibk1nZEc4Z2FXNTJiMnRsTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0R2RXNWpkR2x2Ym4wZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUdOdmJYQnZjMmwwWlNCbWRXNWpkR2x2Ymk1Y2JpQWdJQ0FnS2lCQWMyVmxJRjh1Wm14dmQxSnBaMmgwWEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJR1oxYm1OMGFXOXVJSE54ZFdGeVpTaHVLU0I3WEc0Z0lDQWdJQ29nSUNCeVpYUjFjbTRnYmlBcUlHNDdYRzRnSUNBZ0lDb2dmVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dkbUZ5SUdGa1pGTnhkV0Z5WlNBOUlGOHVabXh2ZHloYlh5NWhaR1FzSUhOeGRXRnlaVjBwTzF4dUlDQWdJQ0FxSUdGa1pGTnhkV0Z5WlNneExDQXlLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQTVYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RtRnlJR1pzYjNjZ1BTQmpjbVZoZEdWR2JHOTNLQ2s3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVWFHbHpJRzFsZEdodlpDQnBjeUJzYVd0bElHQmZMbVpzYjNkZ0lHVjRZMlZ3ZENCMGFHRjBJR2wwSUdOeVpXRjBaWE1nWVNCbWRXNWpkR2x2YmlCMGFHRjBYRzRnSUNBZ0lDb2dhVzUyYjJ0bGN5QjBhR1VnWjJsMlpXNGdablZ1WTNScGIyNXpJR1p5YjIwZ2NtbG5hSFFnZEc4Z2JHVm1kQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFjMmx1WTJVZ015NHdMakJjYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCVmRHbHNYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3VMaTRvUm5WdVkzUnBiMjU4Um5WdVkzUnBiMjViWFNsOUlGdG1kVzVqYzEwZ1ZHaGxJR1oxYm1OMGFXOXVjeUIwYnlCcGJuWnZhMlV1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBaMWJtTjBhVzl1ZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnWTI5dGNHOXphWFJsSUdaMWJtTjBhVzl1TGx4dUlDQWdJQ0FxSUVCelpXVWdYeTVtYkc5M1hHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUdaMWJtTjBhVzl1SUhOeGRXRnlaU2h1S1NCN1hHNGdJQ0FnSUNvZ0lDQnlaWFIxY200Z2JpQXFJRzQ3WEc0Z0lDQWdJQ29nZlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlHRmtaRk54ZFdGeVpTQTlJRjh1Wm14dmQxSnBaMmgwS0Z0emNYVmhjbVVzSUY4dVlXUmtYU2s3WEc0Z0lDQWdJQ29nWVdSa1UzRjFZWEpsS0RFc0lESXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lEbGNiaUFnSUNBZ0tpOWNiaUFnSUNCMllYSWdabXh2ZDFKcFoyaDBJRDBnWTNKbFlYUmxSbXh2ZHloMGNuVmxLVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb2FYTWdiV1YwYUc5a0lISmxkSFZ5Ym5NZ2RHaGxJR1pwY25OMElHRnlaM1Z0Wlc1MElHbDBJSEpsWTJWcGRtVnpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnphVzVqWlNBd0xqRXVNRnh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUZWMGFXeGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSFpoYkhWbElFRnVlU0IyWVd4MVpTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdLbjBnVW1WMGRYSnVjeUJnZG1Gc2RXVmdMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQjJZWElnYjJKcVpXTjBJRDBnZXlBbllTYzZJREVnZlR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUdOdmJuTnZiR1V1Ykc5bktGOHVhV1JsYm5ScGRIa29iMkpxWldOMEtTQTlQVDBnYjJKcVpXTjBLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQjBjblZsWEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdhV1JsYm5ScGRIa29kbUZzZFdVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMllXeDFaVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVnpJR0VnWm5WdVkzUnBiMjRnZEdoaGRDQnBiblp2YTJWeklHQm1kVzVqWUNCM2FYUm9JSFJvWlNCaGNtZDFiV1Z1ZEhNZ2IyWWdkR2hsSUdOeVpXRjBaV1JjYmlBZ0lDQWdLaUJtZFc1amRHbHZiaTRnU1dZZ1lHWjFibU5nSUdseklHRWdjSEp2Y0dWeWRIa2dibUZ0WlN3Z2RHaGxJR055WldGMFpXUWdablZ1WTNScGIyNGdjbVYwZFhKdWN5QjBhR1ZjYmlBZ0lDQWdLaUJ3Y205d1pYSjBlU0IyWVd4MVpTQm1iM0lnWVNCbmFYWmxiaUJsYkdWdFpXNTBMaUJKWmlCZ1puVnVZMkFnYVhNZ1lXNGdZWEp5WVhrZ2IzSWdiMkpxWldOMExDQjBhR1ZjYmlBZ0lDQWdLaUJqY21WaGRHVmtJR1oxYm1OMGFXOXVJSEpsZEhWeWJuTWdZSFJ5ZFdWZ0lHWnZjaUJsYkdWdFpXNTBjeUIwYUdGMElHTnZiblJoYVc0Z2RHaGxJR1Z4ZFdsMllXeGxiblJjYmlBZ0lDQWdLaUJ6YjNWeVkyVWdjSEp2Y0dWeWRHbGxjeXdnYjNSb1pYSjNhWE5sSUdsMElISmxkSFZ5Ym5NZ1lHWmhiSE5sWUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR3TGpCY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQlZkR2xzWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHNxZlNCYlpuVnVZejFmTG1sa1pXNTBhWFI1WFNCVWFHVWdkbUZzZFdVZ2RHOGdZMjl1ZG1WeWRDQjBieUJoSUdOaGJHeGlZV05yTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0R2RXNWpkR2x2Ym4wZ1VtVjBkWEp1Y3lCMGFHVWdZMkZzYkdKaFkyc3VYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlIWmhjaUIxYzJWeWN5QTlJRnRjYmlBZ0lDQWdLaUFnSUhzZ0ozVnpaWEluT2lBblltRnlibVY1Snl3Z0oyRm5aU2M2SURNMkxDQW5ZV04wYVhabEp6b2dkSEoxWlNCOUxGeHVJQ0FnSUNBcUlDQWdleUFuZFhObGNpYzZJQ2RtY21Wa0p5d2dJQ0FuWVdkbEp6b2dOREFzSUNkaFkzUnBkbVVuT2lCbVlXeHpaU0I5WEc0Z0lDQWdJQ29nWFR0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUM4dklGUm9aU0JnWHk1dFlYUmphR1Z6WUNCcGRHVnlZWFJsWlNCemFHOXlkR2hoYm1RdVhHNGdJQ0FnSUNvZ1h5NW1hV3gwWlhJb2RYTmxjbk1zSUY4dWFYUmxjbUYwWldVb2V5QW5kWE5sY2ljNklDZGlZWEp1WlhrbkxDQW5ZV04wYVhabEp6b2dkSEoxWlNCOUtTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1czc2dKM1Z6WlhJbk9pQW5ZbUZ5Ym1WNUp5d2dKMkZuWlNjNklETTJMQ0FuWVdOMGFYWmxKem9nZEhKMVpTQjlYVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dMeThnVkdobElHQmZMbTFoZEdOb1pYTlFjbTl3WlhKMGVXQWdhWFJsY21GMFpXVWdjMmh2Y25Sb1lXNWtMbHh1SUNBZ0lDQXFJRjh1Wm1sc2RHVnlLSFZ6WlhKekxDQmZMbWwwWlhKaGRHVmxLRnNuZFhObGNpY3NJQ2RtY21Wa0oxMHBLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJleUFuZFhObGNpYzZJQ2RtY21Wa0p5d2dKMkZuWlNjNklEUXdJSDFkWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUF2THlCVWFHVWdZRjh1Y0hKdmNHVnlkSGxnSUdsMFpYSmhkR1ZsSUhOb2IzSjBhR0Z1WkM1Y2JpQWdJQ0FnS2lCZkxtMWhjQ2gxYzJWeWN5d2dYeTVwZEdWeVlYUmxaU2duZFhObGNpY3BLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJKMkpoY201bGVTY3NJQ2RtY21Wa0oxMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDOHZJRU55WldGMFpTQmpkWE4wYjIwZ2FYUmxjbUYwWldVZ2MyaHZjblJvWVc1a2N5NWNiaUFnSUNBZ0tpQmZMbWwwWlhKaGRHVmxJRDBnWHk1M2NtRndLRjh1YVhSbGNtRjBaV1VzSUdaMWJtTjBhVzl1S0dsMFpYSmhkR1ZsTENCbWRXNWpLU0I3WEc0Z0lDQWdJQ29nSUNCeVpYUjFjbTRnSVY4dWFYTlNaV2RGZUhBb1puVnVZeWtnUHlCcGRHVnlZWFJsWlNobWRXNWpLU0E2SUdaMWJtTjBhVzl1S0hOMGNtbHVaeWtnZTF4dUlDQWdJQ0FxSUNBZ0lDQnlaWFIxY200Z1puVnVZeTUwWlhOMEtITjBjbWx1WnlrN1hHNGdJQ0FnSUNvZ0lDQjlPMXh1SUNBZ0lDQXFJSDBwTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1bWFXeDBaWElvV3lkaFltTW5MQ0FuWkdWbUoxMHNJQzlsWmk4cE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzblpHVm1KMTFjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQnBkR1Z5WVhSbFpTaG1kVzVqS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWW1GelpVbDBaWEpoZEdWbEtIUjVjR1Z2WmlCbWRXNWpJRDA5SUNkbWRXNWpkR2x2YmljZ1B5Qm1kVzVqSURvZ1ltRnpaVU5zYjI1bEtHWjFibU1zSUVOTVQwNUZYMFJGUlZCZlJreEJSeWtwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOeVpXRjBaWE1nWVNCbWRXNWpkR2x2YmlCMGFHRjBJSEJsY21admNtMXpJR0VnY0dGeWRHbGhiQ0JrWldWd0lHTnZiWEJoY21semIyNGdZbVYwZDJWbGJpQmhJR2RwZG1WdVhHNGdJQ0FnSUNvZ2IySnFaV04wSUdGdVpDQmdjMjkxY21ObFlDd2djbVYwZFhKdWFXNW5JR0IwY25WbFlDQnBaaUIwYUdVZ1oybDJaVzRnYjJKcVpXTjBJR2hoY3lCbGNYVnBkbUZzWlc1MFhHNGdJQ0FnSUNvZ2NISnZjR1Z5ZEhrZ2RtRnNkV1Z6TENCbGJITmxJR0JtWVd4elpXQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXFLazV2ZEdVNktpb2dWR2hsSUdOeVpXRjBaV1FnWm5WdVkzUnBiMjRnYVhNZ1pYRjFhWFpoYkdWdWRDQjBieUJnWHk1cGMwMWhkR05vWUNCM2FYUm9JR0J6YjNWeVkyVmdYRzRnSUNBZ0lDb2djR0Z5ZEdsaGJHeDVJR0Z3Y0d4cFpXUXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQlFZWEowYVdGc0lHTnZiWEJoY21semIyNXpJSGRwYkd3Z2JXRjBZMmdnWlcxd2RIa2dZWEp5WVhrZ1lXNWtJR1Z0Y0hSNUlHOWlhbVZqZENCZ2MyOTFjbU5sWUZ4dUlDQWdJQ0FxSUhaaGJIVmxjeUJoWjJGcGJuTjBJR0Z1ZVNCaGNuSmhlU0J2Y2lCdlltcGxZM1FnZG1Gc2RXVXNJSEpsYzNCbFkzUnBkbVZzZVM0Z1UyVmxJR0JmTG1selJYRjFZV3hnWEc0Z0lDQWdJQ29nWm05eUlHRWdiR2x6ZENCdlppQnpkWEJ3YjNKMFpXUWdkbUZzZFdVZ1kyOXRjR0Z5YVhOdmJuTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXFLazV2ZEdVNktpb2dUWFZzZEdsd2JHVWdkbUZzZFdWeklHTmhiaUJpWlNCamFHVmphMlZrSUdKNUlHTnZiV0pwYm1sdVp5QnpaWFpsY21Gc0lHMWhkR05vWlhKelhHNGdJQ0FnSUNvZ2RYTnBibWNnWUY4dWIzWmxjbE52YldWZ1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTXk0d0xqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dWWFJwYkZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J6YjNWeVkyVWdWR2hsSUc5aWFtVmpkQ0J2WmlCd2NtOXdaWEowZVNCMllXeDFaWE1nZEc4Z2JXRjBZMmd1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBaMWJtTjBhVzl1ZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnYzNCbFl5Qm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ2RtRnlJRzlpYW1WamRITWdQU0JiWEc0Z0lDQWdJQ29nSUNCN0lDZGhKem9nTVN3Z0oySW5PaUF5TENBbll5YzZJRE1nZlN4Y2JpQWdJQ0FnS2lBZ0lIc2dKMkVuT2lBMExDQW5ZaWM2SURVc0lDZGpKem9nTmlCOVhHNGdJQ0FnSUNvZ1hUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVabWxzZEdWeUtHOWlhbVZqZEhNc0lGOHViV0YwWTJobGN5aDdJQ2RoSnpvZ05Dd2dKMk1uT2lBMklIMHBLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJleUFuWVNjNklEUXNJQ2RpSnpvZ05Td2dKMk1uT2lBMklIMWRYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXZMeUJEYUdWamEybHVaeUJtYjNJZ2MyVjJaWEpoYkNCd2IzTnphV0pzWlNCMllXeDFaWE5jYmlBZ0lDQWdLaUJmTG1acGJIUmxjaWh2WW1wbFkzUnpMQ0JmTG05MlpYSlRiMjFsS0Z0ZkxtMWhkR05vWlhNb2V5QW5ZU2M2SURFZ2ZTa3NJRjh1YldGMFkyaGxjeWg3SUNkaEp6b2dOQ0I5S1YwcEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYmV5QW5ZU2M2SURFc0lDZGlKem9nTWl3Z0oyTW5PaUF6SUgwc0lIc2dKMkVuT2lBMExDQW5ZaWM2SURVc0lDZGpKem9nTmlCOVhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUcxaGRHTm9aWE1vYzI5MWNtTmxLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZbUZ6WlUxaGRHTm9aWE1vWW1GelpVTnNiMjVsS0hOdmRYSmpaU3dnUTB4UFRrVmZSRVZGVUY5R1RFRkhLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTNKbFlYUmxjeUJoSUdaMWJtTjBhVzl1SUhSb1lYUWdjR1Z5Wm05eWJYTWdZU0J3WVhKMGFXRnNJR1JsWlhBZ1kyOXRjR0Z5YVhOdmJpQmlaWFIzWldWdUlIUm9aVnh1SUNBZ0lDQXFJSFpoYkhWbElHRjBJR0J3WVhSb1lDQnZaaUJoSUdkcGRtVnVJRzlpYW1WamRDQjBieUJnYzNKalZtRnNkV1ZnTENCeVpYUjFjbTVwYm1jZ1lIUnlkV1ZnSUdsbUlIUm9aVnh1SUNBZ0lDQXFJRzlpYW1WamRDQjJZV3gxWlNCcGN5QmxjWFZwZG1Gc1pXNTBMQ0JsYkhObElHQm1ZV3h6WldBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBcUtrNXZkR1U2S2lvZ1VHRnlkR2xoYkNCamIyMXdZWEpwYzI5dWN5QjNhV3hzSUcxaGRHTm9JR1Z0Y0hSNUlHRnljbUY1SUdGdVpDQmxiWEIwZVNCdlltcGxZM1JjYmlBZ0lDQWdLaUJnYzNKalZtRnNkV1ZnSUhaaGJIVmxjeUJoWjJGcGJuTjBJR0Z1ZVNCaGNuSmhlU0J2Y2lCdlltcGxZM1FnZG1Gc2RXVXNJSEpsYzNCbFkzUnBkbVZzZVM0Z1UyVmxYRzRnSUNBZ0lDb2dZRjh1YVhORmNYVmhiR0FnWm05eUlHRWdiR2x6ZENCdlppQnpkWEJ3YjNKMFpXUWdkbUZzZFdVZ1kyOXRjR0Z5YVhOdmJuTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXFLazV2ZEdVNktpb2dUWFZzZEdsd2JHVWdkbUZzZFdWeklHTmhiaUJpWlNCamFHVmphMlZrSUdKNUlHTnZiV0pwYm1sdVp5QnpaWFpsY21Gc0lHMWhkR05vWlhKelhHNGdJQ0FnSUNvZ2RYTnBibWNnWUY4dWIzWmxjbE52YldWZ1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTXk0eUxqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dWWFJwYkZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDhjM1J5YVc1bmZTQndZWFJvSUZSb1pTQndZWFJvSUc5bUlIUm9aU0J3Y205d1pYSjBlU0IwYnlCblpYUXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3FmU0J6Y21OV1lXeDFaU0JVYUdVZ2RtRnNkV1VnZEc4Z2JXRjBZMmd1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBaMWJtTjBhVzl1ZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnYzNCbFl5Qm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ2RtRnlJRzlpYW1WamRITWdQU0JiWEc0Z0lDQWdJQ29nSUNCN0lDZGhKem9nTVN3Z0oySW5PaUF5TENBbll5YzZJRE1nZlN4Y2JpQWdJQ0FnS2lBZ0lIc2dKMkVuT2lBMExDQW5ZaWM2SURVc0lDZGpKem9nTmlCOVhHNGdJQ0FnSUNvZ1hUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVabWx1WkNodlltcGxZM1J6TENCZkxtMWhkR05vWlhOUWNtOXdaWEowZVNnbllTY3NJRFFwS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUI3SUNkaEp6b2dOQ3dnSjJJbk9pQTFMQ0FuWXljNklEWWdmVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dMeThnUTJobFkydHBibWNnWm05eUlITmxkbVZ5WVd3Z2NHOXpjMmxpYkdVZ2RtRnNkV1Z6WEc0Z0lDQWdJQ29nWHk1bWFXeDBaWElvYjJKcVpXTjBjeXdnWHk1dmRtVnlVMjl0WlNoYlh5NXRZWFJqYUdWelVISnZjR1Z5ZEhrb0oyRW5MQ0F4S1N3Z1h5NXRZWFJqYUdWelVISnZjR1Z5ZEhrb0oyRW5MQ0EwS1YwcEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYmV5QW5ZU2M2SURFc0lDZGlKem9nTWl3Z0oyTW5PaUF6SUgwc0lIc2dKMkVuT2lBMExDQW5ZaWM2SURVc0lDZGpKem9nTmlCOVhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUcxaGRHTm9aWE5RY205d1pYSjBlU2h3WVhSb0xDQnpjbU5XWVd4MVpTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHSmhjMlZOWVhSamFHVnpVSEp2Y0dWeWRIa29jR0YwYUN3Z1ltRnpaVU5zYjI1bEtITnlZMVpoYkhWbExDQkRURTlPUlY5RVJVVlFYMFpNUVVjcEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRWdablZ1WTNScGIyNGdkR2hoZENCcGJuWnZhMlZ6SUhSb1pTQnRaWFJvYjJRZ1lYUWdZSEJoZEdoZ0lHOW1JR0VnWjJsMlpXNGdiMkpxWldOMExseHVJQ0FnSUNBcUlFRnVlU0JoWkdScGRHbHZibUZzSUdGeVozVnRaVzUwY3lCaGNtVWdjSEp2ZG1sa1pXUWdkRzhnZEdobElHbHVkbTlyWldRZ2JXVjBhRzlrTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRE11Tnk0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlGVjBhV3hjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZITjBjbWx1WjMwZ2NHRjBhQ0JVYUdVZ2NHRjBhQ0J2WmlCMGFHVWdiV1YwYUc5a0lIUnZJR2x1ZG05clpTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5NHVMaXA5SUZ0aGNtZHpYU0JVYUdVZ1lYSm5kVzFsYm5SeklIUnZJR2x1ZG05clpTQjBhR1VnYldWMGFHOWtJSGRwZEdndVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwWjFibU4wYVc5dWZTQlNaWFIxY201eklIUm9aU0J1WlhjZ2FXNTJiMnRsY2lCbWRXNWpkR2x2Ymk1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlHOWlhbVZqZEhNZ1BTQmJYRzRnSUNBZ0lDb2dJQ0I3SUNkaEp6b2dleUFuWWljNklGOHVZMjl1YzNSaGJuUW9NaWtnZlNCOUxGeHVJQ0FnSUNBcUlDQWdleUFuWVNjNklIc2dKMkluT2lCZkxtTnZibk4wWVc1MEtERXBJSDBnZlZ4dUlDQWdJQ0FxSUYwN1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtMWhjQ2h2WW1wbFkzUnpMQ0JmTG0xbGRHaHZaQ2duWVM1aUp5a3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lGc3lMQ0F4WFZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1dFlYQW9iMkpxWldOMGN5d2dYeTV0WlhSb2IyUW9XeWRoSnl3Z0oySW5YU2twTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnN5TENBeFhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUhaaGNpQnRaWFJvYjJRZ1BTQmlZWE5sVW1WemRDaG1kVzVqZEdsdmJpaHdZWFJvTENCaGNtZHpLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdablZ1WTNScGIyNG9iMkpxWldOMEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmlZWE5sU1c1MmIydGxLRzlpYW1WamRDd2djR0YwYUN3Z1lYSm5jeWs3WEc0Z0lDQWdJQ0I5TzF4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaGxJRzl3Y0c5emFYUmxJRzltSUdCZkxtMWxkR2h2WkdBN0lIUm9hWE1nYldWMGFHOWtJR055WldGMFpYTWdZU0JtZFc1amRHbHZiaUIwYUdGMElHbHVkbTlyWlhOY2JpQWdJQ0FnS2lCMGFHVWdiV1YwYUc5a0lHRjBJR0VnWjJsMlpXNGdjR0YwYUNCdlppQmdiMkpxWldOMFlDNGdRVzU1SUdGa1pHbDBhVzl1WVd3Z1lYSm5kVzFsYm5SeklHRnlaVnh1SUNBZ0lDQXFJSEJ5YjNacFpHVmtJSFJ2SUhSb1pTQnBiblp2YTJWa0lHMWxkR2h2WkM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F6TGpjdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQlZkR2xzWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzlpYW1WamRDQlVhR1VnYjJKcVpXTjBJSFJ2SUhGMVpYSjVMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdMaTR1S24wZ1cyRnlaM05kSUZSb1pTQmhjbWQxYldWdWRITWdkRzhnYVc1MmIydGxJSFJvWlNCdFpYUm9iMlFnZDJsMGFDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdSblZ1WTNScGIyNTlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QnBiblp2YTJWeUlHWjFibU4wYVc5dUxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdZWEp5WVhrZ1BTQmZMblJwYldWektETXNJRjh1WTI5dWMzUmhiblFwTEZ4dUlDQWdJQ0FxSUNBZ0lDQnZZbXBsWTNRZ1BTQjdJQ2RoSnpvZ1lYSnlZWGtzSUNkaUp6b2dZWEp5WVhrc0lDZGpKem9nWVhKeVlYa2dmVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YldGd0tGc25ZVnN5WFNjc0lDZGpXekJkSjEwc0lGOHViV1YwYUc5a1QyWW9iMkpxWldOMEtTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1d6SXNJREJkWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG0xaGNDaGJXeWRoSnl3Z0p6SW5YU3dnV3lkakp5d2dKekFuWFYwc0lGOHViV1YwYUc5a1QyWW9iMkpxWldOMEtTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1d6SXNJREJkWEc0Z0lDQWdJQ292WEc0Z0lDQWdkbUZ5SUcxbGRHaHZaRTltSUQwZ1ltRnpaVkpsYzNRb1puVnVZM1JwYjI0b2IySnFaV04wTENCaGNtZHpLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdablZ1WTNScGIyNG9jR0YwYUNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1ltRnpaVWx1ZG05clpTaHZZbXBsWTNRc0lIQmhkR2dzSUdGeVozTXBPMXh1SUNBZ0lDQWdmVHRjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVGa1pITWdZV3hzSUc5M2JpQmxiblZ0WlhKaFlteGxJSE4wY21sdVp5QnJaWGxsWkNCbWRXNWpkR2x2YmlCd2NtOXdaWEowYVdWeklHOW1JR0VnYzI5MWNtTmxYRzRnSUNBZ0lDb2diMkpxWldOMElIUnZJSFJvWlNCa1pYTjBhVzVoZEdsdmJpQnZZbXBsWTNRdUlFbG1JR0J2WW1wbFkzUmdJR2x6SUdFZ1puVnVZM1JwYjI0c0lIUm9aVzRnYldWMGFHOWtjMXh1SUNBZ0lDQXFJR0Z5WlNCaFpHUmxaQ0IwYnlCcGRITWdjSEp2ZEc5MGVYQmxJR0Z6SUhkbGJHd3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXFLazV2ZEdVNktpb2dWWE5sSUdCZkxuSjFia2x1UTI5dWRHVjRkR0FnZEc4Z1kzSmxZWFJsSUdFZ2NISnBjM1JwYm1VZ1lHeHZaR0Z6YUdBZ1puVnVZM1JwYjI0Z2RHOWNiaUFnSUNBZ0tpQmhkbTlwWkNCamIyNW1iR2xqZEhNZ1kyRjFjMlZrSUdKNUlHMXZaR2xtZVdsdVp5QjBhR1VnYjNKcFoybHVZV3d1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRSE5wYm1ObElEQXVNUzR3WEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1ZYUnBiRnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNThUMkpxWldOMGZTQmJiMkpxWldOMFBXeHZaR0Z6YUYwZ1ZHaGxJR1JsYzNScGJtRjBhVzl1SUc5aWFtVmpkQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdjMjkxY21ObElGUm9aU0J2WW1wbFkzUWdiMllnWm5WdVkzUnBiMjV6SUhSdklHRmtaQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdXMjl3ZEdsdmJuTTllMzFkSUZSb1pTQnZjSFJwYjI1eklHOWlhbVZqZEM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0dmNIUnBiMjV6TG1Ob1lXbHVQWFJ5ZFdWZElGTndaV05wWm5rZ2QyaGxkR2hsY2lCdGFYaHBibk1nWVhKbElHTm9ZV2x1WVdKc1pTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdSblZ1WTNScGIyNThUMkpxWldOMGZTQlNaWFIxY201eklHQnZZbXBsWTNSZ0xseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCbWRXNWpkR2x2YmlCMmIzZGxiSE1vYzNSeWFXNW5LU0I3WEc0Z0lDQWdJQ29nSUNCeVpYUjFjbTRnWHk1bWFXeDBaWElvYzNSeWFXNW5MQ0JtZFc1amRHbHZiaWgyS1NCN1hHNGdJQ0FnSUNvZ0lDQWdJSEpsZEhWeWJpQXZXMkZsYVc5MVhTOXBMblJsYzNRb2RpazdYRzRnSUNBZ0lDb2dJQ0I5S1R0Y2JpQWdJQ0FnS2lCOVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxtMXBlR2x1S0hzZ0ozWnZkMlZzY3ljNklIWnZkMlZzY3lCOUtUdGNiaUFnSUNBZ0tpQmZMblp2ZDJWc2N5Z25abkpsWkNjcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzblpTZGRYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZLQ2RtY21Wa0p5a3VkbTkzWld4ektDa3VkbUZzZFdVb0tUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCYkoyVW5YVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTV0YVhocGJpaDdJQ2QyYjNkbGJITW5PaUIyYjNkbGJITWdmU3dnZXlBblkyaGhhVzRuT2lCbVlXeHpaU0I5S1R0Y2JpQWdJQ0FnS2lCZktDZG1jbVZrSnlrdWRtOTNaV3h6S0NrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnV3lkbEoxMWNiaUFnSUNBZ0tpOWNiaUFnSUNCbWRXNWpkR2x2YmlCdGFYaHBiaWh2WW1wbFkzUXNJSE52ZFhKalpTd2diM0IwYVc5dWN5a2dlMXh1SUNBZ0lDQWdkbUZ5SUhCeWIzQnpJRDBnYTJWNWN5aHpiM1Z5WTJVcExGeHVJQ0FnSUNBZ0lDQWdJRzFsZEdodlpFNWhiV1Z6SUQwZ1ltRnpaVVoxYm1OMGFXOXVjeWh6YjNWeVkyVXNJSEJ5YjNCektUdGNibHh1SUNBZ0lDQWdhV1lnS0c5d2RHbHZibk1nUFQwZ2JuVnNiQ0FtSmx4dUlDQWdJQ0FnSUNBZ0lDRW9hWE5QWW1wbFkzUW9jMjkxY21ObEtTQW1KaUFvYldWMGFHOWtUbUZ0WlhNdWJHVnVaM1JvSUh4OElDRndjbTl3Y3k1c1pXNW5kR2dwS1NrZ2UxeHVJQ0FnSUNBZ0lDQnZjSFJwYjI1eklEMGdjMjkxY21ObE8xeHVJQ0FnSUNBZ0lDQnpiM1Z5WTJVZ1BTQnZZbXBsWTNRN1hHNGdJQ0FnSUNBZ0lHOWlhbVZqZENBOUlIUm9hWE03WEc0Z0lDQWdJQ0FnSUcxbGRHaHZaRTVoYldWeklEMGdZbUZ6WlVaMWJtTjBhVzl1Y3loemIzVnlZMlVzSUd0bGVYTW9jMjkxY21ObEtTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQjJZWElnWTJoaGFXNGdQU0FoS0dselQySnFaV04wS0c5d2RHbHZibk1wSUNZbUlDZGphR0ZwYmljZ2FXNGdiM0IwYVc5dWN5a2dmSHdnSVNGdmNIUnBiMjV6TG1Ob1lXbHVMRnh1SUNBZ0lDQWdJQ0FnSUdselJuVnVZeUE5SUdselJuVnVZM1JwYjI0b2IySnFaV04wS1R0Y2JseHVJQ0FnSUNBZ1lYSnlZWGxGWVdOb0tHMWxkR2h2WkU1aGJXVnpMQ0JtZFc1amRHbHZiaWh0WlhSb2IyUk9ZVzFsS1NCN1hHNGdJQ0FnSUNBZ0lIWmhjaUJtZFc1aklEMGdjMjkxY21ObFcyMWxkR2h2WkU1aGJXVmRPMXh1SUNBZ0lDQWdJQ0J2WW1wbFkzUmJiV1YwYUc5a1RtRnRaVjBnUFNCbWRXNWpPMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTkdkVzVqS1NCN1hHNGdJQ0FnSUNBZ0lDQWdiMkpxWldOMExuQnliM1J2ZEhsd1pWdHRaWFJvYjJST1lXMWxYU0E5SUdaMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlHTm9ZV2x1UVd4c0lEMGdkR2hwY3k1ZlgyTm9ZV2x1WDE4N1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1kyaGhhVzRnZkh3Z1kyaGhhVzVCYkd3cElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJSEpsYzNWc2RDQTlJRzlpYW1WamRDaDBhR2x6TGw5ZmQzSmhjSEJsWkY5ZktTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0ZqZEdsdmJuTWdQU0J5WlhOMWJIUXVYMTloWTNScGIyNXpYMThnUFNCamIzQjVRWEp5WVhrb2RHaHBjeTVmWDJGamRHbHZibk5mWHlrN1hHNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1lXTjBhVzl1Y3k1d2RYTm9LSHNnSjJaMWJtTW5PaUJtZFc1akxDQW5ZWEpuY3ljNklHRnlaM1Z0Wlc1MGN5d2dKM1JvYVhOQmNtY25PaUJ2WW1wbFkzUWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RDNWZYMk5vWVdsdVgxOGdQU0JqYUdGcGJrRnNiRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbWRXNWpMbUZ3Y0d4NUtHOWlhbVZqZEN3Z1lYSnlZWGxRZFhOb0tGdDBhR2x6TG5aaGJIVmxLQ2xkTENCaGNtZDFiV1Z1ZEhNcEtUdGNiaUFnSUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdjbVYwZFhKdUlHOWlhbVZqZER0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCU1pYWmxjblJ6SUhSb1pTQmdYMkFnZG1GeWFXRmliR1VnZEc4Z2FYUnpJSEJ5WlhacGIzVnpJSFpoYkhWbElHRnVaQ0J5WlhSMWNtNXpJR0VnY21WbVpYSmxibU5sSUhSdlhHNGdJQ0FnSUNvZ2RHaGxJR0JzYjJSaGMyaGdJR1oxYm1OMGFXOXVMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnphVzVqWlNBd0xqRXVNRnh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUZWMGFXeGNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdSblZ1WTNScGIyNTlJRkpsZEhWeWJuTWdkR2hsSUdCc2IyUmhjMmhnSUdaMWJtTjBhVzl1TGx4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUIyWVhJZ2JHOWtZWE5vSUQwZ1h5NXViME52Ym1ac2FXTjBLQ2s3WEc0Z0lDQWdJQ292WEc0Z0lDQWdablZ1WTNScGIyNGdibTlEYjI1bWJHbGpkQ2dwSUh0Y2JpQWdJQ0FnSUdsbUlDaHliMjkwTGw4Z1BUMDlJSFJvYVhNcElIdGNiaUFnSUNBZ0lDQWdjbTl2ZEM1ZklEMGdiMnhrUkdGemFEdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvYVhNZ2JXVjBhRzlrSUhKbGRIVnlibk1nWUhWdVpHVm1hVzVsWkdBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTWk0ekxqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dWWFJwYkZ4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5ScGJXVnpLRElzSUY4dWJtOXZjQ2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXM1Z1WkdWbWFXNWxaQ3dnZFc1a1pXWnBibVZrWFZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJRzV2YjNBb0tTQjdYRzRnSUNBZ0lDQXZMeUJPYnlCdmNHVnlZWFJwYjI0Z2NHVnlabTl5YldWa0xseHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnlaV0YwWlhNZ1lTQm1kVzVqZEdsdmJpQjBhR0YwSUdkbGRITWdkR2hsSUdGeVozVnRaVzUwSUdGMElHbHVaR1Y0SUdCdVlDNGdTV1lnWUc1Z0lHbHpJRzVsWjJGMGFYWmxMRnh1SUNBZ0lDQXFJSFJvWlNCdWRHZ2dZWEpuZFcxbGJuUWdabkp2YlNCMGFHVWdaVzVrSUdseklISmxkSFZ5Ym1Wa0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRlYwYVd4Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzI0OU1GMGdWR2hsSUdsdVpHVjRJRzltSUhSb1pTQmhjbWQxYldWdWRDQjBieUJ5WlhSMWNtNHVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMFoxYm1OMGFXOXVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2djR0Z6Y3kxMGFISjFJR1oxYm1OMGFXOXVMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQjJZWElnWm5WdVl5QTlJRjh1Ym5Sb1FYSm5LREVwTzF4dUlDQWdJQ0FxSUdaMWJtTW9KMkVuTENBbllpY3NJQ2RqSnl3Z0oyUW5LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQW5ZaWRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSFpoY2lCbWRXNWpJRDBnWHk1dWRHaEJjbWNvTFRJcE8xeHVJQ0FnSUNBcUlHWjFibU1vSjJFbkxDQW5ZaWNzSUNkakp5d2dKMlFuS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUFuWXlkY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJ1ZEdoQmNtY29iaWtnZTF4dUlDQWdJQ0FnYmlBOUlIUnZTVzUwWldkbGNpaHVLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmlZWE5sVW1WemRDaG1kVzVqZEdsdmJpaGhjbWR6S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCaVlYTmxUblJvS0dGeVozTXNJRzRwTzF4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EzSmxZWFJsY3lCaElHWjFibU4wYVc5dUlIUm9ZWFFnYVc1MmIydGxjeUJnYVhSbGNtRjBaV1Z6WUNCM2FYUm9JSFJvWlNCaGNtZDFiV1Z1ZEhNZ2FYUWdjbVZqWldsMlpYTmNiaUFnSUNBZ0tpQmhibVFnY21WMGRYSnVjeUIwYUdWcGNpQnlaWE4xYkhSekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCdFpXMWlaWEpQWmlCZlhHNGdJQ0FnSUNvZ1FITnBibU5sSURRdU1DNHdYRzRnSUNBZ0lDb2dRR05oZEdWbmIzSjVJRlYwYVd4Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZXk0dUxpaEdkVzVqZEdsdmJueEdkVzVqZEdsdmJsdGRLWDBnVzJsMFpYSmhkR1ZsY3oxYlh5NXBaR1Z1ZEdsMGVWMWRYRzRnSUNBZ0lDb2dJRlJvWlNCcGRHVnlZWFJsWlhNZ2RHOGdhVzUyYjJ0bExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdEdkVzVqZEdsdmJuMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lHWjFibU4wYVc5dUxseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdablZ1WXlBOUlGOHViM1psY2loYlRXRjBhQzV0WVhnc0lFMWhkR2d1YldsdVhTazdYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQm1kVzVqS0RFc0lESXNJRE1zSURRcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzMExDQXhYVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIWmhjaUJ2ZG1WeUlEMGdZM0psWVhSbFQzWmxjaWhoY25KaGVVMWhjQ2s3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdFZ1puVnVZM1JwYjI0Z2RHaGhkQ0JqYUdWamEzTWdhV1lnS2lwaGJHd3FLaUJ2WmlCMGFHVWdZSEJ5WldScFkyRjBaWE5nSUhKbGRIVnlibHh1SUNBZ0lDQXFJSFJ5ZFhSb2VTQjNhR1Z1SUdsdWRtOXJaV1FnZDJsMGFDQjBhR1VnWVhKbmRXMWxiblJ6SUdsMElISmxZMlZwZG1WekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1JtOXNiRzkzYVc1bklITm9iM0owYUdGdVpITWdZWEpsSUhCdmMzTnBZbXhsSUdadmNpQndjbTkyYVdScGJtY2djSEpsWkdsallYUmxjeTVjYmlBZ0lDQWdLaUJRWVhOeklHRnVJR0JQWW1wbFkzUmdJR0Z1WkNCcGRDQjNhV3hzSUdKbElIVnpaV1FnWVhNZ1lXNGdjR0Z5WVcxbGRHVnlJR1p2Y2lCZ1h5NXRZWFJqYUdWellDQjBieUJqY21WaGRHVWdkR2hsSUhCeVpXUnBZMkYwWlM1Y2JpQWdJQ0FnS2lCUVlYTnpJR0Z1SUdCQmNuSmhlV0FnYjJZZ2NHRnlZVzFsZEdWeWN5Qm1iM0lnWUY4dWJXRjBZMmhsYzFCeWIzQmxjblI1WUNCaGJtUWdkR2hsSUhCeVpXUnBZMkYwWlNCM2FXeHNJR0psSUdOeVpXRjBaV1FnZFhOcGJtY2dkR2hsYlM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0EwTGpBdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQlZkR2xzWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHN1TGk0b1JuVnVZM1JwYjI1OFJuVnVZM1JwYjI1YlhTbDlJRnR3Y21Wa2FXTmhkR1Z6UFZ0ZkxtbGtaVzUwYVhSNVhWMWNiaUFnSUNBZ0tpQWdWR2hsSUhCeVpXUnBZMkYwWlhNZ2RHOGdZMmhsWTJzdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwWjFibU4wYVc5dWZTQlNaWFIxY201eklIUm9aU0J1WlhjZ1puVnVZM1JwYjI0dVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQm1kVzVqSUQwZ1h5NXZkbVZ5UlhabGNua29XMEp2YjJ4bFlXNHNJR2x6Um1sdWFYUmxYU2s3WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJtZFc1aktDY3hKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdkSEoxWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWm5WdVl5aHVkV3hzS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJtWVd4elpWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1puVnVZeWhPWVU0cE8xeHVJQ0FnSUNBcUlDOHZJRDArSUdaaGJITmxYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RtRnlJRzkyWlhKRmRtVnllU0E5SUdOeVpXRjBaVTkyWlhJb1lYSnlZWGxGZG1WeWVTazdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY21WaGRHVnpJR0VnWm5WdVkzUnBiMjRnZEdoaGRDQmphR1ZqYTNNZ2FXWWdLaXBoYm5rcUtpQnZaaUIwYUdVZ1lIQnlaV1JwWTJGMFpYTmdJSEpsZEhWeWJseHVJQ0FnSUNBcUlIUnlkWFJvZVNCM2FHVnVJR2x1ZG05clpXUWdkMmwwYUNCMGFHVWdZWEpuZFcxbGJuUnpJR2wwSUhKbFkyVnBkbVZ6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUm05c2JHOTNhVzVuSUhOb2IzSjBhR0Z1WkhNZ1lYSmxJSEJ2YzNOcFlteGxJR1p2Y2lCd2NtOTJhV1JwYm1jZ2NISmxaR2xqWVhSbGN5NWNiaUFnSUNBZ0tpQlFZWE56SUdGdUlHQlBZbXBsWTNSZ0lHRnVaQ0JwZENCM2FXeHNJR0psSUhWelpXUWdZWE1nWVc0Z2NHRnlZVzFsZEdWeUlHWnZjaUJnWHk1dFlYUmphR1Z6WUNCMGJ5QmpjbVZoZEdVZ2RHaGxJSEJ5WldScFkyRjBaUzVjYmlBZ0lDQWdLaUJRWVhOeklHRnVJR0JCY25KaGVXQWdiMllnY0dGeVlXMWxkR1Z5Y3lCbWIzSWdZRjh1YldGMFkyaGxjMUJ5YjNCbGNuUjVZQ0JoYm1RZ2RHaGxJSEJ5WldScFkyRjBaU0IzYVd4c0lHSmxJR055WldGMFpXUWdkWE5wYm1jZ2RHaGxiUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQTBMakF1TUZ4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCVmRHbHNYRzRnSUNBZ0lDb2dRSEJoY21GdElIc3VMaTRvUm5WdVkzUnBiMjU4Um5WdVkzUnBiMjViWFNsOUlGdHdjbVZrYVdOaGRHVnpQVnRmTG1sa1pXNTBhWFI1WFYxY2JpQWdJQ0FnS2lBZ1ZHaGxJSEJ5WldScFkyRjBaWE1nZEc4Z1kyaGxZMnN1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBaMWJtTjBhVzl1ZlNCU1pYUjFjbTV6SUhSb1pTQnVaWGNnWm5WdVkzUnBiMjR1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSFpoY2lCbWRXNWpJRDBnWHk1dmRtVnlVMjl0WlNoYlFtOXZiR1ZoYml3Z2FYTkdhVzVwZEdWZEtUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlHWjFibU1vSnpFbktUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCMGNuVmxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQm1kVzVqS0c1MWJHd3BPMXh1SUNBZ0lDQXFJQzh2SUQwK0lIUnlkV1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJR1oxYm1Nb1RtRk9LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQm1ZV3h6WlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlHMWhkR05vWlhOR2RXNWpJRDBnWHk1dmRtVnlVMjl0WlNoYmV5QW5ZU2M2SURFZ2ZTd2dleUFuWVNjNklESWdmVjBwWEc0Z0lDQWdJQ29nZG1GeUlHMWhkR05vWlhOUWNtOXdaWEowZVVaMWJtTWdQU0JmTG05MlpYSlRiMjFsS0Z0YkoyRW5MQ0F4WFN3Z1d5ZGhKeXdnTWwxZEtWeHVJQ0FnSUNBcUwxeHVJQ0FnSUhaaGNpQnZkbVZ5VTI5dFpTQTlJR055WldGMFpVOTJaWElvWVhKeVlYbFRiMjFsS1R0Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnlaV0YwWlhNZ1lTQm1kVzVqZEdsdmJpQjBhR0YwSUhKbGRIVnlibk1nZEdobElIWmhiSFZsSUdGMElHQndZWFJvWUNCdlppQmhJR2RwZG1WdUlHOWlhbVZqZEM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F5TGpRdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQlZkR2xzWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYeHpkSEpwYm1kOUlIQmhkR2dnVkdobElIQmhkR2dnYjJZZ2RHaGxJSEJ5YjNCbGNuUjVJSFJ2SUdkbGRDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdSblZ1WTNScGIyNTlJRkpsZEhWeWJuTWdkR2hsSUc1bGR5QmhZMk5sYzNOdmNpQm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ2RtRnlJRzlpYW1WamRITWdQU0JiWEc0Z0lDQWdJQ29nSUNCN0lDZGhKem9nZXlBbllpYzZJRElnZlNCOUxGeHVJQ0FnSUNBcUlDQWdleUFuWVNjNklIc2dKMkluT2lBeElIMGdmVnh1SUNBZ0lDQXFJRjA3WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG0xaGNDaHZZbXBsWTNSekxDQmZMbkJ5YjNCbGNuUjVLQ2RoTG1JbktTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1d6SXNJREZkWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG0xaGNDaGZMbk52Y25SQ2VTaHZZbXBsWTNSekxDQmZMbkJ5YjNCbGNuUjVLRnNuWVNjc0lDZGlKMTBwS1N3Z0oyRXVZaWNwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnN4TENBeVhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUhCeWIzQmxjblI1S0hCaGRHZ3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnBjMHRsZVNod1lYUm9LU0EvSUdKaGMyVlFjbTl3WlhKMGVTaDBiMHRsZVNod1lYUm9LU2tnT2lCaVlYTmxVSEp2Y0dWeWRIbEVaV1Z3S0hCaGRHZ3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvWlNCdmNIQnZjMmwwWlNCdlppQmdYeTV3Y205d1pYSjBlV0E3SUhSb2FYTWdiV1YwYUc5a0lHTnlaV0YwWlhNZ1lTQm1kVzVqZEdsdmJpQjBhR0YwSUhKbGRIVnlibk5jYmlBZ0lDQWdLaUIwYUdVZ2RtRnNkV1VnWVhRZ1lTQm5hWFpsYmlCd1lYUm9JRzltSUdCdlltcGxZM1JnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRE11TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlGVjBhV3hjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMDlpYW1WamRIMGdiMkpxWldOMElGUm9aU0J2WW1wbFkzUWdkRzhnY1hWbGNua3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMFoxYm1OMGFXOXVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2dZV05qWlhOemIzSWdablZ1WTNScGIyNHVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlIWmhjaUJoY25KaGVTQTlJRnN3TENBeExDQXlYU3hjYmlBZ0lDQWdLaUFnSUNBZ2IySnFaV04wSUQwZ2V5QW5ZU2M2SUdGeWNtRjVMQ0FuWWljNklHRnljbUY1TENBbll5YzZJR0Z5Y21GNUlIMDdYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbTFoY0NoYkoyRmJNbDBuTENBblkxc3dYU2RkTENCZkxuQnliM0JsY25SNVQyWW9iMkpxWldOMEtTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1d6SXNJREJkWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG0xaGNDaGJXeWRoSnl3Z0p6SW5YU3dnV3lkakp5d2dKekFuWFYwc0lGOHVjSEp2Y0dWeWRIbFBaaWh2WW1wbFkzUXBLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJNaXdnTUYxY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJ3Y205d1pYSjBlVTltS0c5aWFtVmpkQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1oxYm1OMGFXOXVLSEJoZEdncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHOWlhbVZqZENBOVBTQnVkV3hzSUQ4Z2RXNWtaV1pwYm1Wa0lEb2dZbUZ6WlVkbGRDaHZZbXBsWTNRc0lIQmhkR2dwTzF4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGNtVmhkR1Z6SUdGdUlHRnljbUY1SUc5bUlHNTFiV0psY25NZ0tIQnZjMmwwYVhabElHRnVaQzl2Y2lCdVpXZGhkR2wyWlNrZ2NISnZaM0psYzNOcGJtY2dabkp2YlZ4dUlDQWdJQ0FxSUdCemRHRnlkR0FnZFhBZ2RHOHNJR0oxZENCdWIzUWdhVzVqYkhWa2FXNW5MQ0JnWlc1a1lDNGdRU0J6ZEdWd0lHOW1JR0F0TVdBZ2FYTWdkWE5sWkNCcFppQmhJRzVsWjJGMGFYWmxYRzRnSUNBZ0lDb2dZSE4wWVhKMFlDQnBjeUJ6Y0dWamFXWnBaV1FnZDJsMGFHOTFkQ0JoYmlCZ1pXNWtZQ0J2Y2lCZ2MzUmxjR0F1SUVsbUlHQmxibVJnSUdseklHNXZkQ0J6Y0dWamFXWnBaV1FzWEc0Z0lDQWdJQ29nYVhRbmN5QnpaWFFnZEc4Z1lITjBZWEowWUNCM2FYUm9JR0J6ZEdGeWRHQWdkR2hsYmlCelpYUWdkRzhnWURCZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0tpcE9iM1JsT2lvcUlFcGhkbUZUWTNKcGNIUWdabTlzYkc5M2N5QjBhR1VnU1VWRlJTMDNOVFFnYzNSaGJtUmhjbVFnWm05eUlISmxjMjlzZG1sdVoxeHVJQ0FnSUNBcUlHWnNiMkYwYVc1bkxYQnZhVzUwSUhaaGJIVmxjeUIzYUdsamFDQmpZVzRnY0hKdlpIVmpaU0IxYm1WNGNHVmpkR1ZrSUhKbGMzVnNkSE11WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRSE5wYm1ObElEQXVNUzR3WEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1ZYUnBiRnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmJjM1JoY25ROU1GMGdWR2hsSUhOMFlYSjBJRzltSUhSb1pTQnlZVzVuWlM1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWlc1a0lGUm9aU0JsYm1RZ2IyWWdkR2hsSUhKaGJtZGxMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmJjM1JsY0QweFhTQlVhR1VnZG1Gc2RXVWdkRzhnYVc1amNtVnRaVzUwSUc5eUlHUmxZM0psYldWdWRDQmllUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUhKaGJtZGxJRzltSUc1MWJXSmxjbk11WEc0Z0lDQWdJQ29nUUhObFpTQmZMbWx1VW1GdVoyVXNJRjh1Y21GdVoyVlNhV2RvZEZ4dUlDQWdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5KaGJtZGxLRFFwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnN3TENBeExDQXlMQ0F6WFZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1eVlXNW5aU2d0TkNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnV3pBc0lDMHhMQ0F0TWl3Z0xUTmRYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbkpoYm1kbEtERXNJRFVwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnN4TENBeUxDQXpMQ0EwWFZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1eVlXNW5aU2d3TENBeU1Dd2dOU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXekFzSURVc0lERXdMQ0F4TlYxY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWNtRnVaMlVvTUN3Z0xUUXNJQzB4S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiTUN3Z0xURXNJQzB5TENBdE0xMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVjbUZ1WjJVb01Td2dOQ3dnTUNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnV3pFc0lERXNJREZkWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5KaGJtZGxLREFwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnRkWEc0Z0lDQWdJQ292WEc0Z0lDQWdkbUZ5SUhKaGJtZGxJRDBnWTNKbFlYUmxVbUZ1WjJVb0tUdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvYVhNZ2JXVjBhRzlrSUdseklHeHBhMlVnWUY4dWNtRnVaMlZnSUdWNFkyVndkQ0IwYUdGMElHbDBJSEJ2Y0hWc1lYUmxjeUIyWVd4MVpYTWdhVzVjYmlBZ0lDQWdLaUJrWlhOalpXNWthVzVuSUc5eVpHVnlMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUZWMGFXeGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1czTjBZWEowUFRCZElGUm9aU0J6ZEdGeWRDQnZaaUIwYUdVZ2NtRnVaMlV1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJR1Z1WkNCVWFHVWdaVzVrSUc5bUlIUm9aU0J5WVc1blpTNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1czTjBaWEE5TVYwZ1ZHaGxJSFpoYkhWbElIUnZJR2x1WTNKbGJXVnVkQ0J2Y2lCa1pXTnlaVzFsYm5RZ1lua3VYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMEZ5Y21GNWZTQlNaWFIxY201eklIUm9aU0J5WVc1blpTQnZaaUJ1ZFcxaVpYSnpMbHh1SUNBZ0lDQXFJRUJ6WldVZ1h5NXBibEpoYm1kbExDQmZMbkpoYm1kbFhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWNtRnVaMlZTYVdkb2RDZzBLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJNeXdnTWl3Z01Td2dNRjFjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1Y21GdVoyVlNhV2RvZENndE5DazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1d5MHpMQ0F0TWl3Z0xURXNJREJkWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5KaGJtZGxVbWxuYUhRb01Td2dOU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXelFzSURNc0lESXNJREZkWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG5KaGJtZGxVbWxuYUhRb01Dd2dNakFzSURVcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzeE5Td2dNVEFzSURVc0lEQmRYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbkpoYm1kbFVtbG5hSFFvTUN3Z0xUUXNJQzB4S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiTFRNc0lDMHlMQ0F0TVN3Z01GMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVjbUZ1WjJWU2FXZG9kQ2d4TENBMExDQXdLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJNU3dnTVN3Z01WMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVjbUZ1WjJWU2FXZG9kQ2d3S1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiWFZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFpoY2lCeVlXNW5aVkpwWjJoMElEMGdZM0psWVhSbFVtRnVaMlVvZEhKMVpTazdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdseklHMWxkR2h2WkNCeVpYUjFjbTV6SUdFZ2JtVjNJR1Z0Y0hSNUlHRnljbUY1TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRFF1TVRNdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQlZkR2xzWEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTBGeWNtRjVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2daVzF3ZEhrZ1lYSnlZWGt1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSFpoY2lCaGNuSmhlWE1nUFNCZkxuUnBiV1Z6S0RJc0lGOHVjM1IxWWtGeWNtRjVLVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJR052Ym5OdmJHVXViRzluS0dGeWNtRjVjeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXMXRkTENCYlhWMWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlHTnZibk52YkdVdWJHOW5LR0Z5Y21GNWMxc3dYU0E5UFQwZ1lYSnlZWGx6V3pGZEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCbVlXeHpaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlITjBkV0pCY25KaGVTZ3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmJYVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdseklHMWxkR2h2WkNCeVpYUjFjbTV6SUdCbVlXeHpaV0F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR4TXk0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlGVjBhV3hjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3WW05dmJHVmhibjBnVW1WMGRYSnVjeUJnWm1Gc2MyVmdMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMblJwYldWektESXNJRjh1YzNSMVlrWmhiSE5sS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUJiWm1Gc2MyVXNJR1poYkhObFhWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUhOMGRXSkdZV3h6WlNncElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdseklHMWxkR2h2WkNCeVpYUjFjbTV6SUdFZ2JtVjNJR1Z0Y0hSNUlHOWlhbVZqZEM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0EwTGpFekxqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dWWFJwYkZ4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0UFltcGxZM1I5SUZKbGRIVnlibk1nZEdobElHNWxkeUJsYlhCMGVTQnZZbXBsWTNRdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUhaaGNpQnZZbXBsWTNSeklEMGdYeTUwYVcxbGN5Z3lMQ0JmTG5OMGRXSlBZbXBsWTNRcE8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1kyOXVjMjlzWlM1c2IyY29iMkpxWldOMGN5azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z1czdDlMQ0I3ZlYxY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUdOdmJuTnZiR1V1Ykc5bktHOWlhbVZqZEhOYk1GMGdQVDA5SUc5aWFtVmpkSE5iTVYwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUdaaGJITmxYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2MzUjFZazlpYW1WamRDZ3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjdmVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdseklHMWxkR2h2WkNCeVpYUjFjbTV6SUdGdUlHVnRjSFI1SUhOMGNtbHVaeTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQTBMakV6TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1ZYUnBiRnh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHR6ZEhKcGJtZDlJRkpsZEhWeWJuTWdkR2hsSUdWdGNIUjVJSE4wY21sdVp5NWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NTBhVzFsY3lneUxDQmZMbk4wZFdKVGRISnBibWNwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnNuSnl3Z0p5ZGRYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2MzUjFZbE4wY21sdVp5Z3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQW5KenRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdseklHMWxkR2h2WkNCeVpYUjFjbTV6SUdCMGNuVmxZQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJ6YVc1alpTQTBMakV6TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1ZYUnBiRnh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRpYjI5c1pXRnVmU0JTWlhSMWNtNXpJR0IwY25WbFlDNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NTBhVzFsY3lneUxDQmZMbk4wZFdKVWNuVmxLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJkSEoxWlN3Z2RISjFaVjFjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQnpkSFZpVkhKMVpTZ3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBjblZsTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVsdWRtOXJaWE1nZEdobElHbDBaWEpoZEdWbElHQnVZQ0IwYVcxbGN5d2djbVYwZFhKdWFXNW5JR0Z1SUdGeWNtRjVJRzltSUhSb1pTQnlaWE4xYkhSeklHOW1YRzRnSUNBZ0lDb2daV0ZqYUNCcGJuWnZZMkYwYVc5dUxpQlVhR1VnYVhSbGNtRjBaV1VnYVhNZ2FXNTJiMnRsWkNCM2FYUm9JRzl1WlNCaGNtZDFiV1Z1ZERzZ0tHbHVaR1Y0S1M1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYzJsdVkyVWdNQzR4TGpCY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQlZkR2xzWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRzRnVkdobElHNTFiV0psY2lCdlppQjBhVzFsY3lCMGJ5QnBiblp2YTJVZ1lHbDBaWEpoZEdWbFlDNWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQmJhWFJsY21GMFpXVTlYeTVwWkdWdWRHbDBlVjBnVkdobElHWjFibU4wYVc5dUlHbHVkbTlyWldRZ2NHVnlJR2wwWlhKaGRHbHZiaTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhKeVlYbDlJRkpsZEhWeWJuTWdkR2hsSUdGeWNtRjVJRzltSUhKbGMzVnNkSE11WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1ZEdsdFpYTW9NeXdnVTNSeWFXNW5LVHRjYmlBZ0lDQWdLaUF2THlBOVBpQmJKekFuTENBbk1TY3NJQ2N5SjExY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUNCZkxuUnBiV1Z6S0RRc0lGOHVZMjl1YzNSaGJuUW9NQ2twTzF4dUlDQWdJQ0FxSUM4dklEMCtJRnN3TENBd0xDQXdMQ0F3WFZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJSFJwYldWektHNHNJR2wwWlhKaGRHVmxLU0I3WEc0Z0lDQWdJQ0J1SUQwZ2RHOUpiblJsWjJWeUtHNHBPMXh1SUNBZ0lDQWdhV1lnS0c0Z1BDQXhJSHg4SUc0Z1BpQk5RVmhmVTBGR1JWOUpUbFJGUjBWU0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmJYVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSFpoY2lCcGJtUmxlQ0E5SUUxQldGOUJVbEpCV1Y5TVJVNUhWRWdzWEc0Z0lDQWdJQ0FnSUNBZ2JHVnVaM1JvSUQwZ2JtRjBhWFpsVFdsdUtHNHNJRTFCV0Y5QlVsSkJXVjlNUlU1SFZFZ3BPMXh1WEc0Z0lDQWdJQ0JwZEdWeVlYUmxaU0E5SUdkbGRFbDBaWEpoZEdWbEtHbDBaWEpoZEdWbEtUdGNiaUFnSUNBZ0lHNGdMVDBnVFVGWVgwRlNVa0ZaWDB4RlRrZFVTRHRjYmx4dUlDQWdJQ0FnZG1GeUlISmxjM1ZzZENBOUlHSmhjMlZVYVcxbGN5aHNaVzVuZEdnc0lHbDBaWEpoZEdWbEtUdGNiaUFnSUNBZ0lIZG9hV3hsSUNncksybHVaR1Y0SUR3Z2Jpa2dlMXh1SUNBZ0lDQWdJQ0JwZEdWeVlYUmxaU2hwYm1SbGVDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOdmJuWmxjblJ6SUdCMllXeDFaV0FnZEc4Z1lTQndjbTl3WlhKMGVTQndZWFJvSUdGeWNtRjVMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUZWMGFXeGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2V5cDlJSFpoYkhWbElGUm9aU0IyWVd4MVpTQjBieUJqYjI1MlpYSjBMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRCY25KaGVYMGdVbVYwZFhKdWN5QjBhR1VnYm1WM0lIQnliM0JsY25SNUlIQmhkR2dnWVhKeVlYa3VYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHVkRzlRWVhSb0tDZGhMbUl1WXljcE8xeHVJQ0FnSUNBcUlDOHZJRDArSUZzbllTY3NJQ2RpSnl3Z0oyTW5YVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTUwYjFCaGRHZ29KMkZiTUYwdVlpNWpKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdXeWRoSnl3Z0p6QW5MQ0FuWWljc0lDZGpKMTFjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQjBiMUJoZEdnb2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUdsbUlDaHBjMEZ5Y21GNUtIWmhiSFZsS1NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1lYSnlZWGxOWVhBb2RtRnNkV1VzSUhSdlMyVjVLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQnBjMU41YldKdmJDaDJZV3gxWlNrZ1B5QmJkbUZzZFdWZElEb2dZMjl3ZVVGeWNtRjVLSE4wY21sdVoxUnZVR0YwYUNoMGIxTjBjbWx1WnloMllXeDFaU2twS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCSFpXNWxjbUYwWlhNZ1lTQjFibWx4ZFdVZ1NVUXVJRWxtSUdCd2NtVm1hWGhnSUdseklHZHBkbVZ1TENCMGFHVWdTVVFnYVhNZ1lYQndaVzVrWldRZ2RHOGdhWFF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRSE5wYm1ObElEQXVNUzR3WEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1ZYUnBiRnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJjSEpsWm1sNFBTY25YU0JVYUdVZ2RtRnNkV1VnZEc4Z2NISmxabWw0SUhSb1pTQkpSQ0IzYVhSb0xseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdHpkSEpwYm1kOUlGSmxkSFZ5Ym5NZ2RHaGxJSFZ1YVhGMVpTQkpSQzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTUxYm1seGRXVkpaQ2duWTI5dWRHRmpkRjhuS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUFuWTI5dWRHRmpkRjh4TURRblhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZkxuVnVhWEYxWlVsa0tDazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z0p6RXdOU2RjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQjFibWx4ZFdWSlpDaHdjbVZtYVhncElIdGNiaUFnSUNBZ0lIWmhjaUJwWkNBOUlDc3JhV1JEYjNWdWRHVnlPMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUnZVM1J5YVc1bktIQnlaV1pwZUNrZ0t5QnBaRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMU292WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQlpHUnpJSFIzYnlCdWRXMWlaWEp6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRE11TkM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFMWhkR2hjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdZWFZuWlc1a0lGUm9aU0JtYVhKemRDQnVkVzFpWlhJZ2FXNGdZVzRnWVdSa2FYUnBiMjR1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJR0ZrWkdWdVpDQlVhR1VnYzJWamIyNWtJRzUxYldKbGNpQnBiaUJoYmlCaFpHUnBkR2x2Ymk1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN2JuVnRZbVZ5ZlNCU1pYUjFjbTV6SUhSb1pTQjBiM1JoYkM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1aFpHUW9OaXdnTkNrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnTVRCY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IyWVhJZ1lXUmtJRDBnWTNKbFlYUmxUV0YwYUU5d1pYSmhkR2x2YmlobWRXNWpkR2x2YmloaGRXZGxibVFzSUdGa1pHVnVaQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR0YxWjJWdVpDQXJJR0ZrWkdWdVpEdGNiaUFnSUNCOUxDQXdLVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOdmJYQjFkR1Z6SUdCdWRXMWlaWEpnSUhKdmRXNWtaV1FnZFhBZ2RHOGdZSEJ5WldOcGMybHZibUF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdNeTR4TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFMWhkR2hjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiblZ0WW1WeUlGUm9aU0J1ZFcxaVpYSWdkRzhnY205MWJtUWdkWEF1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnR3Y21WamFYTnBiMjQ5TUYwZ1ZHaGxJSEJ5WldOcGMybHZiaUIwYnlCeWIzVnVaQ0IxY0NCMGJ5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdiblZ0WW1WeWZTQlNaWFIxY201eklIUm9aU0J5YjNWdVpHVmtJSFZ3SUc1MWJXSmxjaTVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTVqWldsc0tEUXVNREEyS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUExWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1ObGFXd29OaTR3TURRc0lESXBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lEWXVNREZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1WTJWcGJDZzJNRFF3TENBdE1pazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z05qRXdNRnh1SUNBZ0lDQXFMMXh1SUNBZ0lIWmhjaUJqWldsc0lEMGdZM0psWVhSbFVtOTFibVFvSjJObGFXd25LVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVScGRtbGtaU0IwZDI4Z2JuVnRZbVZ5Y3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0EwTGpjdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQk5ZWFJvWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJR1JwZG1sa1pXNWtJRlJvWlNCbWFYSnpkQ0J1ZFcxaVpYSWdhVzRnWVNCa2FYWnBjMmx2Ymk1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWkdsMmFYTnZjaUJVYUdVZ2MyVmpiMjVrSUc1MWJXSmxjaUJwYmlCaElHUnBkbWx6YVc5dUxseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIdHVkVzFpWlhKOUlGSmxkSFZ5Ym5NZ2RHaGxJSEYxYjNScFpXNTBMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbVJwZG1sa1pTZzJMQ0EwS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUF4TGpWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IyWVhJZ1pHbDJhV1JsSUQwZ1kzSmxZWFJsVFdGMGFFOXdaWEpoZEdsdmJpaG1kVzVqZEdsdmJpaGthWFpwWkdWdVpDd2daR2wyYVhOdmNpa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHUnBkbWxrWlc1a0lDOGdaR2wyYVhOdmNqdGNiaUFnSUNCOUxDQXhLVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOdmJYQjFkR1Z6SUdCdWRXMWlaWEpnSUhKdmRXNWtaV1FnWkc5M2JpQjBieUJnY0hKbFkybHphVzl1WUM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0F6TGpFd0xqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dUV0YwYUZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0J1ZFcxaVpYSWdWR2hsSUc1MWJXSmxjaUIwYnlCeWIzVnVaQ0JrYjNkdUxseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYmNISmxZMmx6YVc5dVBUQmRJRlJvWlNCd2NtVmphWE5wYjI0Z2RHOGdjbTkxYm1RZ1pHOTNiaUIwYnk1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1Y3lCN2JuVnRZbVZ5ZlNCU1pYUjFjbTV6SUhSb1pTQnliM1Z1WkdWa0lHUnZkMjRnYm5WdFltVnlMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbVpzYjI5eUtEUXVNREEyS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUEwWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1ac2IyOXlLREF1TURRMkxDQXlLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQXdMakEwWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG1ac2IyOXlLRFF3TmpBc0lDMHlLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQTBNREF3WEc0Z0lDQWdJQ292WEc0Z0lDQWdkbUZ5SUdac2IyOXlJRDBnWTNKbFlYUmxVbTkxYm1Rb0oyWnNiMjl5SnlrN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRiMjF3ZFhSbGN5QjBhR1VnYldGNGFXMTFiU0IyWVd4MVpTQnZaaUJnWVhKeVlYbGdMaUJKWmlCZ1lYSnlZWGxnSUdseklHVnRjSFI1SUc5eUlHWmhiSE5sZVN4Y2JpQWdJQ0FnS2lCZ2RXNWtaV1pwYm1Wa1lDQnBjeUJ5WlhSMWNtNWxaQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFjMmx1WTJVZ01DNHhMakJjYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCallYUmxaMjl5ZVNCTllYUm9YRzRnSUNBZ0lDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1lYSnlZWGtnVkdobElHRnljbUY1SUhSdklHbDBaWEpoZEdVZ2IzWmxjaTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3S24wZ1VtVjBkWEp1Y3lCMGFHVWdiV0Y0YVcxMWJTQjJZV3gxWlM1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nWHk1dFlYZ29XelFzSURJc0lEZ3NJRFpkS1R0Y2JpQWdJQ0FnS2lBdkx5QTlQaUE0WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG0xaGVDaGJYU2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdkVzVrWldacGJtVmtYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2JXRjRLR0Z5Y21GNUtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z0tHRnljbUY1SUNZbUlHRnljbUY1TG14bGJtZDBhQ2xjYmlBZ0lDQWdJQ0FnUHlCaVlYTmxSWGgwY21WdGRXMG9ZWEp5WVhrc0lHbGtaVzUwYVhSNUxDQmlZWE5sUjNRcFhHNGdJQ0FnSUNBZ0lEb2dkVzVrWldacGJtVmtPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvYVhNZ2JXVjBhRzlrSUdseklHeHBhMlVnWUY4dWJXRjRZQ0JsZUdObGNIUWdkR2hoZENCcGRDQmhZMk5sY0hSeklHQnBkR1Z5WVhSbFpXQWdkMmhwWTJnZ2FYTmNiaUFnSUNBZ0tpQnBiblp2YTJWa0lHWnZjaUJsWVdOb0lHVnNaVzFsYm5RZ2FXNGdZR0Z5Y21GNVlDQjBieUJuWlc1bGNtRjBaU0IwYUdVZ1kzSnBkR1Z5YVc5dUlHSjVJSGRvYVdOb1hHNGdJQ0FnSUNvZ2RHaGxJSFpoYkhWbElHbHpJSEpoYm10bFpDNGdWR2hsSUdsMFpYSmhkR1ZsSUdseklHbHVkbTlyWldRZ2QybDBhQ0J2Ym1VZ1lYSm5kVzFsYm5RNklDaDJZV3gxWlNrdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTkM0d0xqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dUV0YwYUZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3UVhKeVlYbDlJR0Z5Y21GNUlGUm9aU0JoY25KaGVTQjBieUJwZEdWeVlYUmxJRzkyWlhJdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1cybDBaWEpoZEdWbFBWOHVhV1JsYm5ScGRIbGRJRlJvWlNCcGRHVnlZWFJsWlNCcGJuWnZhMlZrSUhCbGNpQmxiR1Z0Wlc1MExseHVJQ0FnSUNBcUlFQnlaWFIxY201eklIc3FmU0JTWlhSMWNtNXpJSFJvWlNCdFlYaHBiWFZ0SUhaaGJIVmxMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQjJZWElnYjJKcVpXTjBjeUE5SUZ0N0lDZHVKem9nTVNCOUxDQjdJQ2R1SnpvZ01pQjlYVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YldGNFFua29iMkpxWldOMGN5d2dablZ1WTNScGIyNG9ieWtnZXlCeVpYUjFjbTRnYnk1dU95QjlLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQjdJQ2R1SnpvZ01pQjlYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXZMeUJVYUdVZ1lGOHVjSEp2Y0dWeWRIbGdJR2wwWlhKaGRHVmxJSE5vYjNKMGFHRnVaQzVjYmlBZ0lDQWdLaUJmTG0xaGVFSjVLRzlpYW1WamRITXNJQ2R1SnlrN1hHNGdJQ0FnSUNvZ0x5OGdQVDRnZXlBbmJpYzZJRElnZlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJRzFoZUVKNUtHRnljbUY1TENCcGRHVnlZWFJsWlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUNoaGNuSmhlU0FtSmlCaGNuSmhlUzVzWlc1bmRHZ3BYRzRnSUNBZ0lDQWdJRDhnWW1GelpVVjRkSEpsYlhWdEtHRnljbUY1TENCblpYUkpkR1Z5WVhSbFpTaHBkR1Z5WVhSbFpTd2dNaWtzSUdKaGMyVkhkQ2xjYmlBZ0lDQWdJQ0FnT2lCMWJtUmxabWx1WldRN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyOXRjSFYwWlhNZ2RHaGxJRzFsWVc0Z2IyWWdkR2hsSUhaaGJIVmxjeUJwYmlCZ1lYSnlZWGxnTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ0WlcxaVpYSlBaaUJmWEc0Z0lDQWdJQ29nUUhOcGJtTmxJRFF1TUM0d1hHNGdJQ0FnSUNvZ1FHTmhkR1ZuYjNKNUlFMWhkR2hjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNWZTQmhjbkpoZVNCVWFHVWdZWEp5WVhrZ2RHOGdhWFJsY21GMFpTQnZkbVZ5TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0dWRXMWlaWEo5SUZKbGRIVnlibk1nZEdobElHMWxZVzR1WEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRjh1YldWaGJpaGJOQ3dnTWl3Z09Dd2dObDBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRFZjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQnRaV0Z1S0dGeWNtRjVLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZbUZ6WlUxbFlXNG9ZWEp5WVhrc0lHbGtaVzUwYVhSNUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR2x6SUcxbGRHaHZaQ0JwY3lCc2FXdGxJR0JmTG0xbFlXNWdJR1Y0WTJWd2RDQjBhR0YwSUdsMElHRmpZMlZ3ZEhNZ1lHbDBaWEpoZEdWbFlDQjNhR2xqYUNCcGMxeHVJQ0FnSUNBcUlHbHVkbTlyWldRZ1ptOXlJR1ZoWTJnZ1pXeGxiV1Z1ZENCcGJpQmdZWEp5WVhsZ0lIUnZJR2RsYm1WeVlYUmxJSFJvWlNCMllXeDFaU0IwYnlCaVpTQmhkbVZ5WVdkbFpDNWNiaUFnSUNBZ0tpQlVhR1VnYVhSbGNtRjBaV1VnYVhNZ2FXNTJiMnRsWkNCM2FYUm9JRzl1WlNCaGNtZDFiV1Z1ZERvZ0tIWmhiSFZsS1M1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBYldWdFltVnlUMllnWDF4dUlDQWdJQ0FxSUVCemFXNWpaU0EwTGpjdU1GeHVJQ0FnSUNBcUlFQmpZWFJsWjI5eWVTQk5ZWFJvWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdZWEp5WVhrZ1ZHaGxJR0Z5Y21GNUlIUnZJR2wwWlhKaGRHVWdiM1psY2k1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBaMWJtTjBhVzl1ZlNCYmFYUmxjbUYwWldVOVh5NXBaR1Z1ZEdsMGVWMGdWR2hsSUdsMFpYSmhkR1ZsSUdsdWRtOXJaV1FnY0dWeUlHVnNaVzFsYm5RdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UyNTFiV0psY24wZ1VtVjBkWEp1Y3lCMGFHVWdiV1ZoYmk1Y2JpQWdJQ0FnS2lCQVpYaGhiWEJzWlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nZG1GeUlHOWlhbVZqZEhNZ1BTQmJleUFuYmljNklEUWdmU3dnZXlBbmJpYzZJRElnZlN3Z2V5QW5iaWM2SURnZ2ZTd2dleUFuYmljNklEWWdmVjA3WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJmTG0xbFlXNUNlU2h2WW1wbFkzUnpMQ0JtZFc1amRHbHZiaWh2S1NCN0lISmxkSFZ5YmlCdkxtNDdJSDBwTzF4dUlDQWdJQ0FxSUM4dklEMCtJRFZjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQzh2SUZSb1pTQmdYeTV3Y205d1pYSjBlV0FnYVhSbGNtRjBaV1VnYzJodmNuUm9ZVzVrTGx4dUlDQWdJQ0FxSUY4dWJXVmhia0o1S0c5aWFtVmpkSE1zSUNkdUp5azdYRzRnSUNBZ0lDb2dMeThnUFQ0Z05WeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUcxbFlXNUNlU2hoY25KaGVTd2dhWFJsY21GMFpXVXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmlZWE5sVFdWaGJpaGhjbkpoZVN3Z1oyVjBTWFJsY21GMFpXVW9hWFJsY21GMFpXVXNJRElwS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRGIyMXdkWFJsY3lCMGFHVWdiV2x1YVcxMWJTQjJZV3gxWlNCdlppQmdZWEp5WVhsZ0xpQkpaaUJnWVhKeVlYbGdJR2x6SUdWdGNIUjVJRzl5SUdaaGJITmxlU3hjYmlBZ0lDQWdLaUJnZFc1a1pXWnBibVZrWUNCcGN5QnlaWFIxY201bFpDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWMybHVZMlVnTUM0eExqQmNiaUFnSUNBZ0tpQkFiV1Z0WW1WeVQyWWdYMXh1SUNBZ0lDQXFJRUJqWVhSbFoyOXllU0JOWVhSb1hHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnWVhKeVlYa2dWR2hsSUdGeWNtRjVJSFJ2SUdsMFpYSmhkR1VnYjNabGNpNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdLbjBnVW1WMGRYSnVjeUIwYUdVZ2JXbHVhVzExYlNCMllXeDFaUzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTV0YVc0b1d6UXNJRElzSURnc0lEWmRLVHRjYmlBZ0lDQWdLaUF2THlBOVBpQXlYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbTFwYmloYlhTazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z2RXNWtaV1pwYm1Wa1hHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYldsdUtHRnljbUY1S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnS0dGeWNtRjVJQ1ltSUdGeWNtRjVMbXhsYm1kMGFDbGNiaUFnSUNBZ0lDQWdQeUJpWVhObFJYaDBjbVZ0ZFcwb1lYSnlZWGtzSUdsa1pXNTBhWFI1TENCaVlYTmxUSFFwWEc0Z0lDQWdJQ0FnSURvZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9hWE1nYldWMGFHOWtJR2x6SUd4cGEyVWdZRjh1YldsdVlDQmxlR05sY0hRZ2RHaGhkQ0JwZENCaFkyTmxjSFJ6SUdCcGRHVnlZWFJsWldBZ2QyaHBZMmdnYVhOY2JpQWdJQ0FnS2lCcGJuWnZhMlZrSUdadmNpQmxZV05vSUdWc1pXMWxiblFnYVc0Z1lHRnljbUY1WUNCMGJ5Qm5aVzVsY21GMFpTQjBhR1VnWTNKcGRHVnlhVzl1SUdKNUlIZG9hV05vWEc0Z0lDQWdJQ29nZEdobElIWmhiSFZsSUdseklISmhibXRsWkM0Z1ZHaGxJR2wwWlhKaGRHVmxJR2x6SUdsdWRtOXJaV1FnZDJsMGFDQnZibVVnWVhKbmRXMWxiblE2SUNoMllXeDFaU2t1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdOQzR3TGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1RXRjBhRnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlHRnljbUY1SUZSb1pTQmhjbkpoZVNCMGJ5QnBkR1Z5WVhSbElHOTJaWEl1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnVzJsMFpYSmhkR1ZsUFY4dWFXUmxiblJwZEhsZElGUm9aU0JwZEdWeVlYUmxaU0JwYm5admEyVmtJSEJsY2lCbGJHVnRaVzUwTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUhzcWZTQlNaWFIxY201eklIUm9aU0J0YVc1cGJYVnRJSFpoYkhWbExseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCMllYSWdiMkpxWldOMGN5QTlJRnQ3SUNkdUp6b2dNU0I5TENCN0lDZHVKem9nTWlCOVhUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlGOHViV2x1UW5rb2IySnFaV04wY3l3Z1puVnVZM1JwYjI0b2J5a2dleUJ5WlhSMWNtNGdieTV1T3lCOUtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlCN0lDZHVKem9nTVNCOVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBdkx5QlVhR1VnWUY4dWNISnZjR1Z5ZEhsZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMbTFwYmtKNUtHOWlhbVZqZEhNc0lDZHVKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdleUFuYmljNklERWdmVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHMXBia0o1S0dGeWNtRjVMQ0JwZEdWeVlYUmxaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJQ2hoY25KaGVTQW1KaUJoY25KaGVTNXNaVzVuZEdncFhHNGdJQ0FnSUNBZ0lEOGdZbUZ6WlVWNGRISmxiWFZ0S0dGeWNtRjVMQ0JuWlhSSmRHVnlZWFJsWlNocGRHVnlZWFJsWlN3Z01pa3NJR0poYzJWTWRDbGNiaUFnSUNBZ0lDQWdPaUIxYm1SbFptbHVaV1E3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVFhWc2RHbHdiSGtnZEhkdklHNTFiV0psY25NdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUcxbGJXSmxjazltSUY5Y2JpQWdJQ0FnS2lCQWMybHVZMlVnTkM0M0xqQmNiaUFnSUNBZ0tpQkFZMkYwWldkdmNua2dUV0YwYUZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0J0ZFd4MGFYQnNhV1Z5SUZSb1pTQm1hWEp6ZENCdWRXMWlaWElnYVc0Z1lTQnRkV3gwYVhCc2FXTmhkR2x2Ymk1Y2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYlhWc2RHbHdiR2xqWVc1a0lGUm9aU0J6WldOdmJtUWdiblZ0WW1WeUlHbHVJR0VnYlhWc2RHbHdiR2xqWVhScGIyNHVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJuTWdlMjUxYldKbGNuMGdVbVYwZFhKdWN5QjBhR1VnY0hKdlpIVmpkQzVjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTV0ZFd4MGFYQnNlU2cyTENBMEtUdGNiaUFnSUNBZ0tpQXZMeUE5UGlBeU5GeHVJQ0FnSUNBcUwxeHVJQ0FnSUhaaGNpQnRkV3gwYVhCc2VTQTlJR055WldGMFpVMWhkR2hQY0dWeVlYUnBiMjRvWm5WdVkzUnBiMjRvYlhWc2RHbHdiR2xsY2l3Z2JYVnNkR2x3YkdsallXNWtLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiWFZzZEdsd2JHbGxjaUFxSUcxMWJIUnBjR3hwWTJGdVpEdGNiaUFnSUNCOUxDQXhLVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOdmJYQjFkR1Z6SUdCdWRXMWlaWEpnSUhKdmRXNWtaV1FnZEc4Z1lIQnlaV05wYzJsdmJtQXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ015NHhNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUUxaGRHaGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2JuVnRZbVZ5SUZSb1pTQnVkVzFpWlhJZ2RHOGdjbTkxYm1RdVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0d2NtVmphWE5wYjI0OU1GMGdWR2hsSUhCeVpXTnBjMmx2YmlCMGJ5QnliM1Z1WkNCMGJ5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdWN5QjdiblZ0WW1WeWZTQlNaWFIxY201eklIUm9aU0J5YjNWdVpHVmtJRzUxYldKbGNpNWNiaUFnSUNBZ0tpQkFaWGhoYlhCc1pWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXliM1Z1WkNnMExqQXdOaWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdORnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTV5YjNWdVpDZzBMakF3Tml3Z01pazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z05DNHdNVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dYeTV5YjNWdVpDZzBNRFl3TENBdE1pazdYRzRnSUNBZ0lDb2dMeThnUFQ0Z05ERXdNRnh1SUNBZ0lDQXFMMXh1SUNBZ0lIWmhjaUJ5YjNWdVpDQTlJR055WldGMFpWSnZkVzVrS0NkeWIzVnVaQ2NwTzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1UzVmlkSEpoWTNRZ2RIZHZJRzUxYldKbGNuTXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FHMWxiV0psY2s5bUlGOWNiaUFnSUNBZ0tpQkFjMmx1WTJVZ05DNHdMakJjYmlBZ0lDQWdLaUJBWTJGMFpXZHZjbmtnVFdGMGFGeHVJQ0FnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCdGFXNTFaVzVrSUZSb1pTQm1hWEp6ZENCdWRXMWlaWElnYVc0Z1lTQnpkV0owY21GamRHbHZiaTVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdjM1ZpZEhKaGFHVnVaQ0JVYUdVZ2MyVmpiMjVrSUc1MWJXSmxjaUJwYmlCaElITjFZblJ5WVdOMGFXOXVMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHR1ZFcxaVpYSjlJRkpsZEhWeWJuTWdkR2hsSUdScFptWmxjbVZ1WTJVdVhHNGdJQ0FnSUNvZ1FHVjRZVzF3YkdWY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUY4dWMzVmlkSEpoWTNRb05pd2dOQ2s3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdNbHh1SUNBZ0lDQXFMMXh1SUNBZ0lIWmhjaUJ6ZFdKMGNtRmpkQ0E5SUdOeVpXRjBaVTFoZEdoUGNHVnlZWFJwYjI0b1puVnVZM1JwYjI0b2JXbHVkV1Z1WkN3Z2MzVmlkSEpoYUdWdVpDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHMXBiblZsYm1RZ0xTQnpkV0owY21Gb1pXNWtPMXh1SUNBZ0lIMHNJREFwTzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyOXRjSFYwWlhNZ2RHaGxJSE4xYlNCdlppQjBhR1VnZG1Gc2RXVnpJR2x1SUdCaGNuSmhlV0F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRRzFsYldKbGNrOW1JRjljYmlBZ0lDQWdLaUJBYzJsdVkyVWdNeTQwTGpCY2JpQWdJQ0FnS2lCQVkyRjBaV2R2Y25rZ1RXRjBhRnh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlHRnljbUY1SUZSb1pTQmhjbkpoZVNCMGJ5QnBkR1Z5WVhSbElHOTJaWEl1WEc0Z0lDQWdJQ29nUUhKbGRIVnlibk1nZTI1MWJXSmxjbjBnVW1WMGRYSnVjeUIwYUdVZ2MzVnRMbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQmZMbk4xYlNoYk5Dd2dNaXdnT0N3Z05sMHBPMXh1SUNBZ0lDQXFJQzh2SUQwK0lESXdYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1puVnVZM1JwYjI0Z2MzVnRLR0Z5Y21GNUtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z0tHRnljbUY1SUNZbUlHRnljbUY1TG14bGJtZDBhQ2xjYmlBZ0lDQWdJQ0FnUHlCaVlYTmxVM1Z0S0dGeWNtRjVMQ0JwWkdWdWRHbDBlU2xjYmlBZ0lDQWdJQ0FnT2lBd08xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9hWE1nYldWMGFHOWtJR2x6SUd4cGEyVWdZRjh1YzNWdFlDQmxlR05sY0hRZ2RHaGhkQ0JwZENCaFkyTmxjSFJ6SUdCcGRHVnlZWFJsWldBZ2QyaHBZMmdnYVhOY2JpQWdJQ0FnS2lCcGJuWnZhMlZrSUdadmNpQmxZV05vSUdWc1pXMWxiblFnYVc0Z1lHRnljbUY1WUNCMGJ5Qm5aVzVsY21GMFpTQjBhR1VnZG1Gc2RXVWdkRzhnWW1VZ2MzVnRiV1ZrTGx4dUlDQWdJQ0FxSUZSb1pTQnBkR1Z5WVhSbFpTQnBjeUJwYm5admEyVmtJSGRwZEdnZ2IyNWxJR0Z5WjNWdFpXNTBPaUFvZG1Gc2RXVXBMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQnRaVzFpWlhKUFppQmZYRzRnSUNBZ0lDb2dRSE5wYm1ObElEUXVNQzR3WEc0Z0lDQWdJQ29nUUdOaGRHVm5iM0o1SUUxaGRHaGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCaGNuSmhlU0JVYUdVZ1lYSnlZWGtnZEc4Z2FYUmxjbUYwWlNCdmRtVnlMbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJRnRwZEdWeVlYUmxaVDFmTG1sa1pXNTBhWFI1WFNCVWFHVWdhWFJsY21GMFpXVWdhVzUyYjJ0bFpDQndaWElnWld4bGJXVnVkQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3Ym5WdFltVnlmU0JTWlhSMWNtNXpJSFJvWlNCemRXMHVYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlIWmhjaUJ2WW1wbFkzUnpJRDBnVzNzZ0oyNG5PaUEwSUgwc0lIc2dKMjRuT2lBeUlIMHNJSHNnSjI0bk9pQTRJSDBzSUhzZ0oyNG5PaUEySUgxZE8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1h5NXpkVzFDZVNodlltcGxZM1J6TENCbWRXNWpkR2x2YmlodktTQjdJSEpsZEhWeWJpQnZMbTQ3SUgwcE8xeHVJQ0FnSUNBcUlDOHZJRDArSURJd1hHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lBdkx5QlVhR1VnWUY4dWNISnZjR1Z5ZEhsZ0lHbDBaWEpoZEdWbElITm9iM0owYUdGdVpDNWNiaUFnSUNBZ0tpQmZMbk4xYlVKNUtHOWlhbVZqZEhNc0lDZHVKeWs3WEc0Z0lDQWdJQ29nTHk4Z1BUNGdNakJjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQnpkVzFDZVNoaGNuSmhlU3dnYVhSbGNtRjBaV1VwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUFvWVhKeVlYa2dKaVlnWVhKeVlYa3ViR1Z1WjNSb0tWeHVJQ0FnSUNBZ0lDQS9JR0poYzJWVGRXMG9ZWEp5WVhrc0lHZGxkRWwwWlhKaGRHVmxLR2wwWlhKaGRHVmxMQ0F5S1NsY2JpQWdJQ0FnSUNBZ09pQXdPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRLaTljYmx4dUlDQWdJQzh2SUVGa1pDQnRaWFJvYjJSeklIUm9ZWFFnY21WMGRYSnVJSGR5WVhCd1pXUWdkbUZzZFdWeklHbHVJR05vWVdsdUlITmxjWFZsYm1ObGN5NWNiaUFnSUNCc2IyUmhjMmd1WVdaMFpYSWdQU0JoWm5SbGNqdGNiaUFnSUNCc2IyUmhjMmd1WVhKNUlEMGdZWEo1TzF4dUlDQWdJR3h2WkdGemFDNWhjM05wWjI0Z1BTQmhjM05wWjI0N1hHNGdJQ0FnYkc5a1lYTm9MbUZ6YzJsbmJrbHVJRDBnWVhOemFXZHVTVzQ3WEc0Z0lDQWdiRzlrWVhOb0xtRnpjMmxuYmtsdVYybDBhQ0E5SUdGemMybG5ia2x1VjJsMGFEdGNiaUFnSUNCc2IyUmhjMmd1WVhOemFXZHVWMmwwYUNBOUlHRnpjMmxuYmxkcGRHZzdYRzRnSUNBZ2JHOWtZWE5vTG1GMElEMGdZWFE3WEc0Z0lDQWdiRzlrWVhOb0xtSmxabTl5WlNBOUlHSmxabTl5WlR0Y2JpQWdJQ0JzYjJSaGMyZ3VZbWx1WkNBOUlHSnBibVE3WEc0Z0lDQWdiRzlrWVhOb0xtSnBibVJCYkd3Z1BTQmlhVzVrUVd4c08xeHVJQ0FnSUd4dlpHRnphQzVpYVc1a1MyVjVJRDBnWW1sdVpFdGxlVHRjYmlBZ0lDQnNiMlJoYzJndVkyRnpkRUZ5Y21GNUlEMGdZMkZ6ZEVGeWNtRjVPMXh1SUNBZ0lHeHZaR0Z6YUM1amFHRnBiaUE5SUdOb1lXbHVPMXh1SUNBZ0lHeHZaR0Z6YUM1amFIVnVheUE5SUdOb2RXNXJPMXh1SUNBZ0lHeHZaR0Z6YUM1amIyMXdZV04wSUQwZ1kyOXRjR0ZqZER0Y2JpQWdJQ0JzYjJSaGMyZ3VZMjl1WTJGMElEMGdZMjl1WTJGME8xeHVJQ0FnSUd4dlpHRnphQzVqYjI1a0lEMGdZMjl1WkR0Y2JpQWdJQ0JzYjJSaGMyZ3VZMjl1Wm05eWJYTWdQU0JqYjI1bWIzSnRjenRjYmlBZ0lDQnNiMlJoYzJndVkyOXVjM1JoYm5RZ1BTQmpiMjV6ZEdGdWREdGNiaUFnSUNCc2IyUmhjMmd1WTI5MWJuUkNlU0E5SUdOdmRXNTBRbms3WEc0Z0lDQWdiRzlrWVhOb0xtTnlaV0YwWlNBOUlHTnlaV0YwWlR0Y2JpQWdJQ0JzYjJSaGMyZ3VZM1Z5Y25rZ1BTQmpkWEp5ZVR0Y2JpQWdJQ0JzYjJSaGMyZ3VZM1Z5Y25sU2FXZG9kQ0E5SUdOMWNuSjVVbWxuYUhRN1hHNGdJQ0FnYkc5a1lYTm9MbVJsWW05MWJtTmxJRDBnWkdWaWIzVnVZMlU3WEc0Z0lDQWdiRzlrWVhOb0xtUmxabUYxYkhSeklEMGdaR1ZtWVhWc2RITTdYRzRnSUNBZ2JHOWtZWE5vTG1SbFptRjFiSFJ6UkdWbGNDQTlJR1JsWm1GMWJIUnpSR1ZsY0R0Y2JpQWdJQ0JzYjJSaGMyZ3VaR1ZtWlhJZ1BTQmtaV1psY2p0Y2JpQWdJQ0JzYjJSaGMyZ3VaR1ZzWVhrZ1BTQmtaV3hoZVR0Y2JpQWdJQ0JzYjJSaGMyZ3VaR2xtWm1WeVpXNWpaU0E5SUdScFptWmxjbVZ1WTJVN1hHNGdJQ0FnYkc5a1lYTm9MbVJwWm1abGNtVnVZMlZDZVNBOUlHUnBabVpsY21WdVkyVkNlVHRjYmlBZ0lDQnNiMlJoYzJndVpHbG1abVZ5Wlc1alpWZHBkR2dnUFNCa2FXWm1aWEpsYm1ObFYybDBhRHRjYmlBZ0lDQnNiMlJoYzJndVpISnZjQ0E5SUdSeWIzQTdYRzRnSUNBZ2JHOWtZWE5vTG1SeWIzQlNhV2RvZENBOUlHUnliM0JTYVdkb2REdGNiaUFnSUNCc2IyUmhjMmd1WkhKdmNGSnBaMmgwVjJocGJHVWdQU0JrY205d1VtbG5hSFJYYUdsc1pUdGNiaUFnSUNCc2IyUmhjMmd1WkhKdmNGZG9hV3hsSUQwZ1pISnZjRmRvYVd4bE8xeHVJQ0FnSUd4dlpHRnphQzVtYVd4c0lEMGdabWxzYkR0Y2JpQWdJQ0JzYjJSaGMyZ3VabWxzZEdWeUlEMGdabWxzZEdWeU8xeHVJQ0FnSUd4dlpHRnphQzVtYkdGMFRXRndJRDBnWm14aGRFMWhjRHRjYmlBZ0lDQnNiMlJoYzJndVpteGhkRTFoY0VSbFpYQWdQU0JtYkdGMFRXRndSR1ZsY0R0Y2JpQWdJQ0JzYjJSaGMyZ3VabXhoZEUxaGNFUmxjSFJvSUQwZ1pteGhkRTFoY0VSbGNIUm9PMXh1SUNBZ0lHeHZaR0Z6YUM1bWJHRjBkR1Z1SUQwZ1pteGhkSFJsYmp0Y2JpQWdJQ0JzYjJSaGMyZ3VabXhoZEhSbGJrUmxaWEFnUFNCbWJHRjBkR1Z1UkdWbGNEdGNiaUFnSUNCc2IyUmhjMmd1Wm14aGRIUmxia1JsY0hSb0lEMGdabXhoZEhSbGJrUmxjSFJvTzF4dUlDQWdJR3h2WkdGemFDNW1iR2x3SUQwZ1pteHBjRHRjYmlBZ0lDQnNiMlJoYzJndVpteHZkeUE5SUdac2IzYzdYRzRnSUNBZ2JHOWtZWE5vTG1ac2IzZFNhV2RvZENBOUlHWnNiM2RTYVdkb2REdGNiaUFnSUNCc2IyUmhjMmd1Wm5KdmJWQmhhWEp6SUQwZ1puSnZiVkJoYVhKek8xeHVJQ0FnSUd4dlpHRnphQzVtZFc1amRHbHZibk1nUFNCbWRXNWpkR2x2Ym5NN1hHNGdJQ0FnYkc5a1lYTm9MbVoxYm1OMGFXOXVjMGx1SUQwZ1puVnVZM1JwYjI1elNXNDdYRzRnSUNBZ2JHOWtZWE5vTG1keWIzVndRbmtnUFNCbmNtOTFjRUo1TzF4dUlDQWdJR3h2WkdGemFDNXBibWwwYVdGc0lEMGdhVzVwZEdsaGJEdGNiaUFnSUNCc2IyUmhjMmd1YVc1MFpYSnpaV04wYVc5dUlEMGdhVzUwWlhKelpXTjBhVzl1TzF4dUlDQWdJR3h2WkdGemFDNXBiblJsY25ObFkzUnBiMjVDZVNBOUlHbHVkR1Z5YzJWamRHbHZia0o1TzF4dUlDQWdJR3h2WkdGemFDNXBiblJsY25ObFkzUnBiMjVYYVhSb0lEMGdhVzUwWlhKelpXTjBhVzl1VjJsMGFEdGNiaUFnSUNCc2IyUmhjMmd1YVc1MlpYSjBJRDBnYVc1MlpYSjBPMXh1SUNBZ0lHeHZaR0Z6YUM1cGJuWmxjblJDZVNBOUlHbHVkbVZ5ZEVKNU8xeHVJQ0FnSUd4dlpHRnphQzVwYm5admEyVk5ZWEFnUFNCcGJuWnZhMlZOWVhBN1hHNGdJQ0FnYkc5a1lYTm9MbWwwWlhKaGRHVmxJRDBnYVhSbGNtRjBaV1U3WEc0Z0lDQWdiRzlrWVhOb0xtdGxlVUo1SUQwZ2EyVjVRbms3WEc0Z0lDQWdiRzlrWVhOb0xtdGxlWE1nUFNCclpYbHpPMXh1SUNBZ0lHeHZaR0Z6YUM1clpYbHpTVzRnUFNCclpYbHpTVzQ3WEc0Z0lDQWdiRzlrWVhOb0xtMWhjQ0E5SUcxaGNEdGNiaUFnSUNCc2IyUmhjMmd1YldGd1MyVjVjeUE5SUcxaGNFdGxlWE03WEc0Z0lDQWdiRzlrWVhOb0xtMWhjRlpoYkhWbGN5QTlJRzFoY0ZaaGJIVmxjenRjYmlBZ0lDQnNiMlJoYzJndWJXRjBZMmhsY3lBOUlHMWhkR05vWlhNN1hHNGdJQ0FnYkc5a1lYTm9MbTFoZEdOb1pYTlFjbTl3WlhKMGVTQTlJRzFoZEdOb1pYTlFjbTl3WlhKMGVUdGNiaUFnSUNCc2IyUmhjMmd1YldWdGIybDZaU0E5SUcxbGJXOXBlbVU3WEc0Z0lDQWdiRzlrWVhOb0xtMWxjbWRsSUQwZ2JXVnlaMlU3WEc0Z0lDQWdiRzlrWVhOb0xtMWxjbWRsVjJsMGFDQTlJRzFsY21kbFYybDBhRHRjYmlBZ0lDQnNiMlJoYzJndWJXVjBhRzlrSUQwZ2JXVjBhRzlrTzF4dUlDQWdJR3h2WkdGemFDNXRaWFJvYjJSUFppQTlJRzFsZEdodlpFOW1PMXh1SUNBZ0lHeHZaR0Z6YUM1dGFYaHBiaUE5SUcxcGVHbHVPMXh1SUNBZ0lHeHZaR0Z6YUM1dVpXZGhkR1VnUFNCdVpXZGhkR1U3WEc0Z0lDQWdiRzlrWVhOb0xtNTBhRUZ5WnlBOUlHNTBhRUZ5Wnp0Y2JpQWdJQ0JzYjJSaGMyZ3ViMjFwZENBOUlHOXRhWFE3WEc0Z0lDQWdiRzlrWVhOb0xtOXRhWFJDZVNBOUlHOXRhWFJDZVR0Y2JpQWdJQ0JzYjJSaGMyZ3ViMjVqWlNBOUlHOXVZMlU3WEc0Z0lDQWdiRzlrWVhOb0xtOXlaR1Z5UW5rZ1BTQnZjbVJsY2tKNU8xeHVJQ0FnSUd4dlpHRnphQzV2ZG1WeUlEMGdiM1psY2p0Y2JpQWdJQ0JzYjJSaGMyZ3ViM1psY2tGeVozTWdQU0J2ZG1WeVFYSm5jenRjYmlBZ0lDQnNiMlJoYzJndWIzWmxja1YyWlhKNUlEMGdiM1psY2tWMlpYSjVPMXh1SUNBZ0lHeHZaR0Z6YUM1dmRtVnlVMjl0WlNBOUlHOTJaWEpUYjIxbE8xeHVJQ0FnSUd4dlpHRnphQzV3WVhKMGFXRnNJRDBnY0dGeWRHbGhiRHRjYmlBZ0lDQnNiMlJoYzJndWNHRnlkR2xoYkZKcFoyaDBJRDBnY0dGeWRHbGhiRkpwWjJoME8xeHVJQ0FnSUd4dlpHRnphQzV3WVhKMGFYUnBiMjRnUFNCd1lYSjBhWFJwYjI0N1hHNGdJQ0FnYkc5a1lYTm9MbkJwWTJzZ1BTQndhV05yTzF4dUlDQWdJR3h2WkdGemFDNXdhV05yUW5rZ1BTQndhV05yUW5rN1hHNGdJQ0FnYkc5a1lYTm9MbkJ5YjNCbGNuUjVJRDBnY0hKdmNHVnlkSGs3WEc0Z0lDQWdiRzlrWVhOb0xuQnliM0JsY25SNVQyWWdQU0J3Y205d1pYSjBlVTltTzF4dUlDQWdJR3h2WkdGemFDNXdkV3hzSUQwZ2NIVnNiRHRjYmlBZ0lDQnNiMlJoYzJndWNIVnNiRUZzYkNBOUlIQjFiR3hCYkd3N1hHNGdJQ0FnYkc5a1lYTm9MbkIxYkd4QmJHeENlU0E5SUhCMWJHeEJiR3hDZVR0Y2JpQWdJQ0JzYjJSaGMyZ3VjSFZzYkVGc2JGZHBkR2dnUFNCd2RXeHNRV3hzVjJsMGFEdGNiaUFnSUNCc2IyUmhjMmd1Y0hWc2JFRjBJRDBnY0hWc2JFRjBPMXh1SUNBZ0lHeHZaR0Z6YUM1eVlXNW5aU0E5SUhKaGJtZGxPMXh1SUNBZ0lHeHZaR0Z6YUM1eVlXNW5aVkpwWjJoMElEMGdjbUZ1WjJWU2FXZG9kRHRjYmlBZ0lDQnNiMlJoYzJndWNtVmhjbWNnUFNCeVpXRnlaenRjYmlBZ0lDQnNiMlJoYzJndWNtVnFaV04wSUQwZ2NtVnFaV04wTzF4dUlDQWdJR3h2WkdGemFDNXlaVzF2ZG1VZ1BTQnlaVzF2ZG1VN1hHNGdJQ0FnYkc5a1lYTm9MbkpsYzNRZ1BTQnlaWE4wTzF4dUlDQWdJR3h2WkdGemFDNXlaWFpsY25ObElEMGdjbVYyWlhKelpUdGNiaUFnSUNCc2IyUmhjMmd1YzJGdGNHeGxVMmw2WlNBOUlITmhiWEJzWlZOcGVtVTdYRzRnSUNBZ2JHOWtZWE5vTG5ObGRDQTlJSE5sZER0Y2JpQWdJQ0JzYjJSaGMyZ3VjMlYwVjJsMGFDQTlJSE5sZEZkcGRHZzdYRzRnSUNBZ2JHOWtZWE5vTG5Ob2RXWm1iR1VnUFNCemFIVm1abXhsTzF4dUlDQWdJR3h2WkdGemFDNXpiR2xqWlNBOUlITnNhV05sTzF4dUlDQWdJR3h2WkdGemFDNXpiM0owUW5rZ1BTQnpiM0owUW5rN1hHNGdJQ0FnYkc5a1lYTm9Mbk52Y25SbFpGVnVhWEVnUFNCemIzSjBaV1JWYm1seE8xeHVJQ0FnSUd4dlpHRnphQzV6YjNKMFpXUlZibWx4UW5rZ1BTQnpiM0owWldSVmJtbHhRbms3WEc0Z0lDQWdiRzlrWVhOb0xuTndiR2wwSUQwZ2MzQnNhWFE3WEc0Z0lDQWdiRzlrWVhOb0xuTndjbVZoWkNBOUlITndjbVZoWkR0Y2JpQWdJQ0JzYjJSaGMyZ3VkR0ZwYkNBOUlIUmhhV3c3WEc0Z0lDQWdiRzlrWVhOb0xuUmhhMlVnUFNCMFlXdGxPMXh1SUNBZ0lHeHZaR0Z6YUM1MFlXdGxVbWxuYUhRZ1BTQjBZV3RsVW1sbmFIUTdYRzRnSUNBZ2JHOWtZWE5vTG5SaGEyVlNhV2RvZEZkb2FXeGxJRDBnZEdGclpWSnBaMmgwVjJocGJHVTdYRzRnSUNBZ2JHOWtZWE5vTG5SaGEyVlhhR2xzWlNBOUlIUmhhMlZYYUdsc1pUdGNiaUFnSUNCc2IyUmhjMmd1ZEdGd0lEMGdkR0Z3TzF4dUlDQWdJR3h2WkdGemFDNTBhSEp2ZEhSc1pTQTlJSFJvY205MGRHeGxPMXh1SUNBZ0lHeHZaR0Z6YUM1MGFISjFJRDBnZEdoeWRUdGNiaUFnSUNCc2IyUmhjMmd1ZEc5QmNuSmhlU0E5SUhSdlFYSnlZWGs3WEc0Z0lDQWdiRzlrWVhOb0xuUnZVR0ZwY25NZ1BTQjBiMUJoYVhKek8xeHVJQ0FnSUd4dlpHRnphQzUwYjFCaGFYSnpTVzRnUFNCMGIxQmhhWEp6U1c0N1hHNGdJQ0FnYkc5a1lYTm9MblJ2VUdGMGFDQTlJSFJ2VUdGMGFEdGNiaUFnSUNCc2IyUmhjMmd1ZEc5UWJHRnBiazlpYW1WamRDQTlJSFJ2VUd4aGFXNVBZbXBsWTNRN1hHNGdJQ0FnYkc5a1lYTm9MblJ5WVc1elptOXliU0E5SUhSeVlXNXpabTl5YlR0Y2JpQWdJQ0JzYjJSaGMyZ3VkVzVoY25rZ1BTQjFibUZ5ZVR0Y2JpQWdJQ0JzYjJSaGMyZ3VkVzVwYjI0Z1BTQjFibWx2Ymp0Y2JpQWdJQ0JzYjJSaGMyZ3VkVzVwYjI1Q2VTQTlJSFZ1YVc5dVFuazdYRzRnSUNBZ2JHOWtZWE5vTG5WdWFXOXVWMmwwYUNBOUlIVnVhVzl1VjJsMGFEdGNiaUFnSUNCc2IyUmhjMmd1ZFc1cGNTQTlJSFZ1YVhFN1hHNGdJQ0FnYkc5a1lYTm9MblZ1YVhGQ2VTQTlJSFZ1YVhGQ2VUdGNiaUFnSUNCc2IyUmhjMmd1ZFc1cGNWZHBkR2dnUFNCMWJtbHhWMmwwYUR0Y2JpQWdJQ0JzYjJSaGMyZ3VkVzV6WlhRZ1BTQjFibk5sZER0Y2JpQWdJQ0JzYjJSaGMyZ3VkVzU2YVhBZ1BTQjFibnBwY0R0Y2JpQWdJQ0JzYjJSaGMyZ3VkVzU2YVhCWGFYUm9JRDBnZFc1NmFYQlhhWFJvTzF4dUlDQWdJR3h2WkdGemFDNTFjR1JoZEdVZ1BTQjFjR1JoZEdVN1hHNGdJQ0FnYkc5a1lYTm9MblZ3WkdGMFpWZHBkR2dnUFNCMWNHUmhkR1ZYYVhSb08xeHVJQ0FnSUd4dlpHRnphQzUyWVd4MVpYTWdQU0IyWVd4MVpYTTdYRzRnSUNBZ2JHOWtZWE5vTG5aaGJIVmxjMGx1SUQwZ2RtRnNkV1Z6U1c0N1hHNGdJQ0FnYkc5a1lYTm9MbmRwZEdodmRYUWdQU0IzYVhSb2IzVjBPMXh1SUNBZ0lHeHZaR0Z6YUM1M2IzSmtjeUE5SUhkdmNtUnpPMXh1SUNBZ0lHeHZaR0Z6YUM1M2NtRndJRDBnZDNKaGNEdGNiaUFnSUNCc2IyUmhjMmd1ZUc5eUlEMGdlRzl5TzF4dUlDQWdJR3h2WkdGemFDNTRiM0pDZVNBOUlIaHZja0o1TzF4dUlDQWdJR3h2WkdGemFDNTRiM0pYYVhSb0lEMGdlRzl5VjJsMGFEdGNiaUFnSUNCc2IyUmhjMmd1ZW1sd0lEMGdlbWx3TzF4dUlDQWdJR3h2WkdGemFDNTZhWEJQWW1wbFkzUWdQU0I2YVhCUFltcGxZM1E3WEc0Z0lDQWdiRzlrWVhOb0xucHBjRTlpYW1WamRFUmxaWEFnUFNCNmFYQlBZbXBsWTNSRVpXVndPMXh1SUNBZ0lHeHZaR0Z6YUM1NmFYQlhhWFJvSUQwZ2VtbHdWMmwwYUR0Y2JseHVJQ0FnSUM4dklFRmtaQ0JoYkdsaGMyVnpMbHh1SUNBZ0lHeHZaR0Z6YUM1bGJuUnlhV1Z6SUQwZ2RHOVFZV2x5Y3p0Y2JpQWdJQ0JzYjJSaGMyZ3VaVzUwY21sbGMwbHVJRDBnZEc5UVlXbHljMGx1TzF4dUlDQWdJR3h2WkdGemFDNWxlSFJsYm1RZ1BTQmhjM05wWjI1SmJqdGNiaUFnSUNCc2IyUmhjMmd1WlhoMFpXNWtWMmwwYUNBOUlHRnpjMmxuYmtsdVYybDBhRHRjYmx4dUlDQWdJQzh2SUVGa1pDQnRaWFJvYjJSeklIUnZJR0JzYjJSaGMyZ3VjSEp2ZEc5MGVYQmxZQzVjYmlBZ0lDQnRhWGhwYmloc2IyUmhjMmdzSUd4dlpHRnphQ2s3WEc1Y2JpQWdJQ0F2S2kwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFNvdlhHNWNiaUFnSUNBdkx5QkJaR1FnYldWMGFHOWtjeUIwYUdGMElISmxkSFZ5YmlCMWJuZHlZWEJ3WldRZ2RtRnNkV1Z6SUdsdUlHTm9ZV2x1SUhObGNYVmxibU5sY3k1Y2JpQWdJQ0JzYjJSaGMyZ3VZV1JrSUQwZ1lXUmtPMXh1SUNBZ0lHeHZaR0Z6YUM1aGRIUmxiWEIwSUQwZ1lYUjBaVzF3ZER0Y2JpQWdJQ0JzYjJSaGMyZ3VZMkZ0Wld4RFlYTmxJRDBnWTJGdFpXeERZWE5sTzF4dUlDQWdJR3h2WkdGemFDNWpZWEJwZEdGc2FYcGxJRDBnWTJGd2FYUmhiR2w2WlR0Y2JpQWdJQ0JzYjJSaGMyZ3VZMlZwYkNBOUlHTmxhV3c3WEc0Z0lDQWdiRzlrWVhOb0xtTnNZVzF3SUQwZ1kyeGhiWEE3WEc0Z0lDQWdiRzlrWVhOb0xtTnNiMjVsSUQwZ1kyeHZibVU3WEc0Z0lDQWdiRzlrWVhOb0xtTnNiMjVsUkdWbGNDQTlJR05zYjI1bFJHVmxjRHRjYmlBZ0lDQnNiMlJoYzJndVkyeHZibVZFWldWd1YybDBhQ0E5SUdOc2IyNWxSR1ZsY0ZkcGRHZzdYRzRnSUNBZ2JHOWtZWE5vTG1Oc2IyNWxWMmwwYUNBOUlHTnNiMjVsVjJsMGFEdGNiaUFnSUNCc2IyUmhjMmd1WTI5dVptOXliWE5VYnlBOUlHTnZibVp2Y20xelZHODdYRzRnSUNBZ2JHOWtZWE5vTG1SbFluVnljaUE5SUdSbFluVnljanRjYmlBZ0lDQnNiMlJoYzJndVpHVm1ZWFZzZEZSdklEMGdaR1ZtWVhWc2RGUnZPMXh1SUNBZ0lHeHZaR0Z6YUM1a2FYWnBaR1VnUFNCa2FYWnBaR1U3WEc0Z0lDQWdiRzlrWVhOb0xtVnVaSE5YYVhSb0lEMGdaVzVrYzFkcGRHZzdYRzRnSUNBZ2JHOWtZWE5vTG1WeElEMGdaWEU3WEc0Z0lDQWdiRzlrWVhOb0xtVnpZMkZ3WlNBOUlHVnpZMkZ3WlR0Y2JpQWdJQ0JzYjJSaGMyZ3VaWE5qWVhCbFVtVm5SWGh3SUQwZ1pYTmpZWEJsVW1WblJYaHdPMXh1SUNBZ0lHeHZaR0Z6YUM1bGRtVnllU0E5SUdWMlpYSjVPMXh1SUNBZ0lHeHZaR0Z6YUM1bWFXNWtJRDBnWm1sdVpEdGNiaUFnSUNCc2IyUmhjMmd1Wm1sdVpFbHVaR1Y0SUQwZ1ptbHVaRWx1WkdWNE8xeHVJQ0FnSUd4dlpHRnphQzVtYVc1a1MyVjVJRDBnWm1sdVpFdGxlVHRjYmlBZ0lDQnNiMlJoYzJndVptbHVaRXhoYzNRZ1BTQm1hVzVrVEdGemREdGNiaUFnSUNCc2IyUmhjMmd1Wm1sdVpFeGhjM1JKYm1SbGVDQTlJR1pwYm1STVlYTjBTVzVrWlhnN1hHNGdJQ0FnYkc5a1lYTm9MbVpwYm1STVlYTjBTMlY1SUQwZ1ptbHVaRXhoYzNSTFpYazdYRzRnSUNBZ2JHOWtZWE5vTG1ac2IyOXlJRDBnWm14dmIzSTdYRzRnSUNBZ2JHOWtZWE5vTG1admNrVmhZMmdnUFNCbWIzSkZZV05vTzF4dUlDQWdJR3h2WkdGemFDNW1iM0pGWVdOb1VtbG5hSFFnUFNCbWIzSkZZV05vVW1sbmFIUTdYRzRnSUNBZ2JHOWtZWE5vTG1admNrbHVJRDBnWm05eVNXNDdYRzRnSUNBZ2JHOWtZWE5vTG1admNrbHVVbWxuYUhRZ1BTQm1iM0pKYmxKcFoyaDBPMXh1SUNBZ0lHeHZaR0Z6YUM1bWIzSlBkMjRnUFNCbWIzSlBkMjQ3WEc0Z0lDQWdiRzlrWVhOb0xtWnZjazkzYmxKcFoyaDBJRDBnWm05eVQzZHVVbWxuYUhRN1hHNGdJQ0FnYkc5a1lYTm9MbWRsZENBOUlHZGxkRHRjYmlBZ0lDQnNiMlJoYzJndVozUWdQU0JuZER0Y2JpQWdJQ0JzYjJSaGMyZ3VaM1JsSUQwZ1ozUmxPMXh1SUNBZ0lHeHZaR0Z6YUM1b1lYTWdQU0JvWVhNN1hHNGdJQ0FnYkc5a1lYTm9MbWhoYzBsdUlEMGdhR0Z6U1c0N1hHNGdJQ0FnYkc5a1lYTm9MbWhsWVdRZ1BTQm9aV0ZrTzF4dUlDQWdJR3h2WkdGemFDNXBaR1Z1ZEdsMGVTQTlJR2xrWlc1MGFYUjVPMXh1SUNBZ0lHeHZaR0Z6YUM1cGJtTnNkV1JsY3lBOUlHbHVZMngxWkdWek8xeHVJQ0FnSUd4dlpHRnphQzVwYm1SbGVFOW1JRDBnYVc1a1pYaFBaanRjYmlBZ0lDQnNiMlJoYzJndWFXNVNZVzVuWlNBOUlHbHVVbUZ1WjJVN1hHNGdJQ0FnYkc5a1lYTm9MbWx1ZG05clpTQTlJR2x1ZG05clpUdGNiaUFnSUNCc2IyUmhjMmd1YVhOQmNtZDFiV1Z1ZEhNZ1BTQnBjMEZ5WjNWdFpXNTBjenRjYmlBZ0lDQnNiMlJoYzJndWFYTkJjbkpoZVNBOUlHbHpRWEp5WVhrN1hHNGdJQ0FnYkc5a1lYTm9MbWx6UVhKeVlYbENkV1ptWlhJZ1BTQnBjMEZ5Y21GNVFuVm1abVZ5TzF4dUlDQWdJR3h2WkdGemFDNXBjMEZ5Y21GNVRHbHJaU0E5SUdselFYSnlZWGxNYVd0bE8xeHVJQ0FnSUd4dlpHRnphQzVwYzBGeWNtRjVUR2xyWlU5aWFtVmpkQ0E5SUdselFYSnlZWGxNYVd0bFQySnFaV04wTzF4dUlDQWdJR3h2WkdGemFDNXBjMEp2YjJ4bFlXNGdQU0JwYzBKdmIyeGxZVzQ3WEc0Z0lDQWdiRzlrWVhOb0xtbHpRblZtWm1WeUlEMGdhWE5DZFdabVpYSTdYRzRnSUNBZ2JHOWtZWE5vTG1selJHRjBaU0E5SUdselJHRjBaVHRjYmlBZ0lDQnNiMlJoYzJndWFYTkZiR1Z0Wlc1MElEMGdhWE5GYkdWdFpXNTBPMXh1SUNBZ0lHeHZaR0Z6YUM1cGMwVnRjSFI1SUQwZ2FYTkZiWEIwZVR0Y2JpQWdJQ0JzYjJSaGMyZ3VhWE5GY1hWaGJDQTlJR2x6UlhGMVlXdzdYRzRnSUNBZ2JHOWtZWE5vTG1selJYRjFZV3hYYVhSb0lEMGdhWE5GY1hWaGJGZHBkR2c3WEc0Z0lDQWdiRzlrWVhOb0xtbHpSWEp5YjNJZ1BTQnBjMFZ5Y205eU8xeHVJQ0FnSUd4dlpHRnphQzVwYzBacGJtbDBaU0E5SUdselJtbHVhWFJsTzF4dUlDQWdJR3h2WkdGemFDNXBjMFoxYm1OMGFXOXVJRDBnYVhOR2RXNWpkR2x2Ymp0Y2JpQWdJQ0JzYjJSaGMyZ3VhWE5KYm5SbFoyVnlJRDBnYVhOSmJuUmxaMlZ5TzF4dUlDQWdJR3h2WkdGemFDNXBjMHhsYm1kMGFDQTlJR2x6VEdWdVozUm9PMXh1SUNBZ0lHeHZaR0Z6YUM1cGMwMWhjQ0E5SUdselRXRndPMXh1SUNBZ0lHeHZaR0Z6YUM1cGMwMWhkR05vSUQwZ2FYTk5ZWFJqYUR0Y2JpQWdJQ0JzYjJSaGMyZ3VhWE5OWVhSamFGZHBkR2dnUFNCcGMwMWhkR05vVjJsMGFEdGNiaUFnSUNCc2IyUmhjMmd1YVhOT1lVNGdQU0JwYzA1aFRqdGNiaUFnSUNCc2IyUmhjMmd1YVhOT1lYUnBkbVVnUFNCcGMwNWhkR2wyWlR0Y2JpQWdJQ0JzYjJSaGMyZ3VhWE5PYVd3Z1BTQnBjMDVwYkR0Y2JpQWdJQ0JzYjJSaGMyZ3VhWE5PZFd4c0lEMGdhWE5PZFd4c08xeHVJQ0FnSUd4dlpHRnphQzVwYzA1MWJXSmxjaUE5SUdselRuVnRZbVZ5TzF4dUlDQWdJR3h2WkdGemFDNXBjMDlpYW1WamRDQTlJR2x6VDJKcVpXTjBPMXh1SUNBZ0lHeHZaR0Z6YUM1cGMwOWlhbVZqZEV4cGEyVWdQU0JwYzA5aWFtVmpkRXhwYTJVN1hHNGdJQ0FnYkc5a1lYTm9MbWx6VUd4aGFXNVBZbXBsWTNRZ1BTQnBjMUJzWVdsdVQySnFaV04wTzF4dUlDQWdJR3h2WkdGemFDNXBjMUpsWjBWNGNDQTlJR2x6VW1WblJYaHdPMXh1SUNBZ0lHeHZaR0Z6YUM1cGMxTmhabVZKYm5SbFoyVnlJRDBnYVhOVFlXWmxTVzUwWldkbGNqdGNiaUFnSUNCc2IyUmhjMmd1YVhOVFpYUWdQU0JwYzFObGREdGNiaUFnSUNCc2IyUmhjMmd1YVhOVGRISnBibWNnUFNCcGMxTjBjbWx1Wnp0Y2JpQWdJQ0JzYjJSaGMyZ3VhWE5UZVcxaWIyd2dQU0JwYzFONWJXSnZiRHRjYmlBZ0lDQnNiMlJoYzJndWFYTlVlWEJsWkVGeWNtRjVJRDBnYVhOVWVYQmxaRUZ5Y21GNU8xeHVJQ0FnSUd4dlpHRnphQzVwYzFWdVpHVm1hVzVsWkNBOUlHbHpWVzVrWldacGJtVmtPMXh1SUNBZ0lHeHZaR0Z6YUM1cGMxZGxZV3ROWVhBZ1BTQnBjMWRsWVd0TllYQTdYRzRnSUNBZ2JHOWtZWE5vTG1selYyVmhhMU5sZENBOUlHbHpWMlZoYTFObGREdGNiaUFnSUNCc2IyUmhjMmd1YW05cGJpQTlJR3B2YVc0N1hHNGdJQ0FnYkc5a1lYTm9MbXRsWW1GaVEyRnpaU0E5SUd0bFltRmlRMkZ6WlR0Y2JpQWdJQ0JzYjJSaGMyZ3ViR0Z6ZENBOUlHeGhjM1E3WEc0Z0lDQWdiRzlrWVhOb0xteGhjM1JKYm1SbGVFOW1JRDBnYkdGemRFbHVaR1Y0VDJZN1hHNGdJQ0FnYkc5a1lYTm9MbXh2ZDJWeVEyRnpaU0E5SUd4dmQyVnlRMkZ6WlR0Y2JpQWdJQ0JzYjJSaGMyZ3ViRzkzWlhKR2FYSnpkQ0E5SUd4dmQyVnlSbWx5YzNRN1hHNGdJQ0FnYkc5a1lYTm9MbXgwSUQwZ2JIUTdYRzRnSUNBZ2JHOWtZWE5vTG14MFpTQTlJR3gwWlR0Y2JpQWdJQ0JzYjJSaGMyZ3ViV0Y0SUQwZ2JXRjRPMXh1SUNBZ0lHeHZaR0Z6YUM1dFlYaENlU0E5SUcxaGVFSjVPMXh1SUNBZ0lHeHZaR0Z6YUM1dFpXRnVJRDBnYldWaGJqdGNiaUFnSUNCc2IyUmhjMmd1YldWaGJrSjVJRDBnYldWaGJrSjVPMXh1SUNBZ0lHeHZaR0Z6YUM1dGFXNGdQU0J0YVc0N1hHNGdJQ0FnYkc5a1lYTm9MbTFwYmtKNUlEMGdiV2x1UW5rN1hHNGdJQ0FnYkc5a1lYTm9Mbk4wZFdKQmNuSmhlU0E5SUhOMGRXSkJjbkpoZVR0Y2JpQWdJQ0JzYjJSaGMyZ3VjM1IxWWtaaGJITmxJRDBnYzNSMVlrWmhiSE5sTzF4dUlDQWdJR3h2WkdGemFDNXpkSFZpVDJKcVpXTjBJRDBnYzNSMVlrOWlhbVZqZER0Y2JpQWdJQ0JzYjJSaGMyZ3VjM1IxWWxOMGNtbHVaeUE5SUhOMGRXSlRkSEpwYm1jN1hHNGdJQ0FnYkc5a1lYTm9Mbk4wZFdKVWNuVmxJRDBnYzNSMVlsUnlkV1U3WEc0Z0lDQWdiRzlrWVhOb0xtMTFiSFJwY0d4NUlEMGdiWFZzZEdsd2JIazdYRzRnSUNBZ2JHOWtZWE5vTG01MGFDQTlJRzUwYUR0Y2JpQWdJQ0JzYjJSaGMyZ3VibTlEYjI1bWJHbGpkQ0E5SUc1dlEyOXVabXhwWTNRN1hHNGdJQ0FnYkc5a1lYTm9MbTV2YjNBZ1BTQnViMjl3TzF4dUlDQWdJR3h2WkdGemFDNXViM2NnUFNCdWIzYzdYRzRnSUNBZ2JHOWtZWE5vTG5CaFpDQTlJSEJoWkR0Y2JpQWdJQ0JzYjJSaGMyZ3VjR0ZrUlc1a0lEMGdjR0ZrUlc1a08xeHVJQ0FnSUd4dlpHRnphQzV3WVdSVGRHRnlkQ0E5SUhCaFpGTjBZWEowTzF4dUlDQWdJR3h2WkdGemFDNXdZWEp6WlVsdWRDQTlJSEJoY25ObFNXNTBPMXh1SUNBZ0lHeHZaR0Z6YUM1eVlXNWtiMjBnUFNCeVlXNWtiMjA3WEc0Z0lDQWdiRzlrWVhOb0xuSmxaSFZqWlNBOUlISmxaSFZqWlR0Y2JpQWdJQ0JzYjJSaGMyZ3VjbVZrZFdObFVtbG5hSFFnUFNCeVpXUjFZMlZTYVdkb2REdGNiaUFnSUNCc2IyUmhjMmd1Y21Wd1pXRjBJRDBnY21Wd1pXRjBPMXh1SUNBZ0lHeHZaR0Z6YUM1eVpYQnNZV05sSUQwZ2NtVndiR0ZqWlR0Y2JpQWdJQ0JzYjJSaGMyZ3VjbVZ6ZFd4MElEMGdjbVZ6ZFd4ME8xeHVJQ0FnSUd4dlpHRnphQzV5YjNWdVpDQTlJSEp2ZFc1a08xeHVJQ0FnSUd4dlpHRnphQzV5ZFc1SmJrTnZiblJsZUhRZ1BTQnlkVzVKYmtOdmJuUmxlSFE3WEc0Z0lDQWdiRzlrWVhOb0xuTmhiWEJzWlNBOUlITmhiWEJzWlR0Y2JpQWdJQ0JzYjJSaGMyZ3VjMmw2WlNBOUlITnBlbVU3WEc0Z0lDQWdiRzlrWVhOb0xuTnVZV3RsUTJGelpTQTlJSE51WVd0bFEyRnpaVHRjYmlBZ0lDQnNiMlJoYzJndWMyOXRaU0E5SUhOdmJXVTdYRzRnSUNBZ2JHOWtZWE5vTG5OdmNuUmxaRWx1WkdWNElEMGdjMjl5ZEdWa1NXNWtaWGc3WEc0Z0lDQWdiRzlrWVhOb0xuTnZjblJsWkVsdVpHVjRRbmtnUFNCemIzSjBaV1JKYm1SbGVFSjVPMXh1SUNBZ0lHeHZaR0Z6YUM1emIzSjBaV1JKYm1SbGVFOW1JRDBnYzI5eWRHVmtTVzVrWlhoUFpqdGNiaUFnSUNCc2IyUmhjMmd1YzI5eWRHVmtUR0Z6ZEVsdVpHVjRJRDBnYzI5eWRHVmtUR0Z6ZEVsdVpHVjRPMXh1SUNBZ0lHeHZaR0Z6YUM1emIzSjBaV1JNWVhOMFNXNWtaWGhDZVNBOUlITnZjblJsWkV4aGMzUkpibVJsZUVKNU8xeHVJQ0FnSUd4dlpHRnphQzV6YjNKMFpXUk1ZWE4wU1c1a1pYaFBaaUE5SUhOdmNuUmxaRXhoYzNSSmJtUmxlRTltTzF4dUlDQWdJR3h2WkdGemFDNXpkR0Z5ZEVOaGMyVWdQU0J6ZEdGeWRFTmhjMlU3WEc0Z0lDQWdiRzlrWVhOb0xuTjBZWEowYzFkcGRHZ2dQU0J6ZEdGeWRITlhhWFJvTzF4dUlDQWdJR3h2WkdGemFDNXpkV0owY21GamRDQTlJSE4xWW5SeVlXTjBPMXh1SUNBZ0lHeHZaR0Z6YUM1emRXMGdQU0J6ZFcwN1hHNGdJQ0FnYkc5a1lYTm9Mbk4xYlVKNUlEMGdjM1Z0UW5rN1hHNGdJQ0FnYkc5a1lYTm9MblJsYlhCc1lYUmxJRDBnZEdWdGNHeGhkR1U3WEc0Z0lDQWdiRzlrWVhOb0xuUnBiV1Z6SUQwZ2RHbHRaWE03WEc0Z0lDQWdiRzlrWVhOb0xuUnZSbWx1YVhSbElEMGdkRzlHYVc1cGRHVTdYRzRnSUNBZ2JHOWtZWE5vTG5SdlNXNTBaV2RsY2lBOUlIUnZTVzUwWldkbGNqdGNiaUFnSUNCc2IyUmhjMmd1ZEc5TVpXNW5kR2dnUFNCMGIweGxibWQwYUR0Y2JpQWdJQ0JzYjJSaGMyZ3VkRzlNYjNkbGNpQTlJSFJ2VEc5M1pYSTdYRzRnSUNBZ2JHOWtZWE5vTG5SdlRuVnRZbVZ5SUQwZ2RHOU9kVzFpWlhJN1hHNGdJQ0FnYkc5a1lYTm9MblJ2VTJGbVpVbHVkR1ZuWlhJZ1BTQjBiMU5oWm1WSmJuUmxaMlZ5TzF4dUlDQWdJR3h2WkdGemFDNTBiMU4wY21sdVp5QTlJSFJ2VTNSeWFXNW5PMXh1SUNBZ0lHeHZaR0Z6YUM1MGIxVndjR1Z5SUQwZ2RHOVZjSEJsY2p0Y2JpQWdJQ0JzYjJSaGMyZ3VkSEpwYlNBOUlIUnlhVzA3WEc0Z0lDQWdiRzlrWVhOb0xuUnlhVzFGYm1RZ1BTQjBjbWx0Ulc1a08xeHVJQ0FnSUd4dlpHRnphQzUwY21sdFUzUmhjblFnUFNCMGNtbHRVM1JoY25RN1hHNGdJQ0FnYkc5a1lYTm9MblJ5ZFc1allYUmxJRDBnZEhKMWJtTmhkR1U3WEc0Z0lDQWdiRzlrWVhOb0xuVnVaWE5qWVhCbElEMGdkVzVsYzJOaGNHVTdYRzRnSUNBZ2JHOWtZWE5vTG5WdWFYRjFaVWxrSUQwZ2RXNXBjWFZsU1dRN1hHNGdJQ0FnYkc5a1lYTm9MblZ3Y0dWeVEyRnpaU0E5SUhWd2NHVnlRMkZ6WlR0Y2JpQWdJQ0JzYjJSaGMyZ3VkWEJ3WlhKR2FYSnpkQ0E5SUhWd2NHVnlSbWx5YzNRN1hHNWNiaUFnSUNBdkx5QkJaR1FnWVd4cFlYTmxjeTVjYmlBZ0lDQnNiMlJoYzJndVpXRmphQ0E5SUdadmNrVmhZMmc3WEc0Z0lDQWdiRzlrWVhOb0xtVmhZMmhTYVdkb2RDQTlJR1p2Y2tWaFkyaFNhV2RvZER0Y2JpQWdJQ0JzYjJSaGMyZ3VabWx5YzNRZ1BTQm9aV0ZrTzF4dVhHNGdJQ0FnYldsNGFXNG9iRzlrWVhOb0xDQW9ablZ1WTNScGIyNG9LU0I3WEc0Z0lDQWdJQ0IyWVhJZ2MyOTFjbU5sSUQwZ2UzMDdYRzRnSUNBZ0lDQmlZWE5sUm05eVQzZHVLR3h2WkdGemFDd2dablZ1WTNScGIyNG9ablZ1WXl3Z2JXVjBhRzlrVG1GdFpTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb0lXaGhjMDkzYmxCeWIzQmxjblI1TG1OaGJHd29iRzlrWVhOb0xuQnliM1J2ZEhsd1pTd2diV1YwYUc5a1RtRnRaU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQnpiM1Z5WTJWYmJXVjBhRzlrVG1GdFpWMGdQU0JtZFc1ak8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnpiM1Z5WTJVN1hHNGdJQ0FnZlNncEtTd2dleUFuWTJoaGFXNG5PaUJtWVd4elpTQjlLVHRjYmx4dUlDQWdJQzhxTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0S2k5Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9aU0J6WlcxaGJuUnBZeUIyWlhKemFXOXVJRzUxYldKbGNpNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWJXVnRZbVZ5VDJZZ1gxeHVJQ0FnSUNBcUlFQjBlWEJsSUh0emRISnBibWQ5WEc0Z0lDQWdJQ292WEc0Z0lDQWdiRzlrWVhOb0xsWkZVbE5KVDA0Z1BTQldSVkpUU1U5T08xeHVYRzRnSUNBZ0x5OGdRWE56YVdkdUlHUmxabUYxYkhRZ2NHeGhZMlZvYjJ4a1pYSnpMbHh1SUNBZ0lHRnljbUY1UldGamFDaGJKMkpwYm1RbkxDQW5ZbWx1WkV0bGVTY3NJQ2RqZFhKeWVTY3NJQ2RqZFhKeWVWSnBaMmgwSnl3Z0ozQmhjblJwWVd3bkxDQW5jR0Z5ZEdsaGJGSnBaMmgwSjEwc0lHWjFibU4wYVc5dUtHMWxkR2h2WkU1aGJXVXBJSHRjYmlBZ0lDQWdJR3h2WkdGemFGdHRaWFJvYjJST1lXMWxYUzV3YkdGalpXaHZiR1JsY2lBOUlHeHZaR0Z6YUR0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUM4dklFRmtaQ0JnVEdGNmVWZHlZWEJ3WlhKZ0lHMWxkR2h2WkhNZ1ptOXlJR0JmTG1SeWIzQmdJR0Z1WkNCZ1h5NTBZV3RsWUNCMllYSnBZVzUwY3k1Y2JpQWdJQ0JoY25KaGVVVmhZMmdvV3lka2NtOXdKeXdnSjNSaGEyVW5YU3dnWm5WdVkzUnBiMjRvYldWMGFHOWtUbUZ0WlN3Z2FXNWtaWGdwSUh0Y2JpQWdJQ0FnSUV4aGVubFhjbUZ3Y0dWeUxuQnliM1J2ZEhsd1pWdHRaWFJvYjJST1lXMWxYU0E5SUdaMWJtTjBhVzl1S0c0cElIdGNiaUFnSUNBZ0lDQWdiaUE5SUc0Z1BUMDlJSFZ1WkdWbWFXNWxaQ0EvSURFZ09pQnVZWFJwZG1WTllYZ29kRzlKYm5SbFoyVnlLRzRwTENBd0tUdGNibHh1SUNBZ0lDQWdJQ0IyWVhJZ2NtVnpkV3gwSUQwZ0tIUm9hWE11WDE5bWFXeDBaWEpsWkY5ZklDWW1JQ0ZwYm1SbGVDbGNiaUFnSUNBZ0lDQWdJQ0EvSUc1bGR5Qk1ZWHA1VjNKaGNIQmxjaWgwYUdsektWeHVJQ0FnSUNBZ0lDQWdJRG9nZEdocGN5NWpiRzl1WlNncE8xeHVYRzRnSUNBZ0lDQWdJR2xtSUNoeVpYTjFiSFF1WDE5bWFXeDBaWEpsWkY5ZktTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WemRXeDBMbDlmZEdGclpVTnZkVzUwWDE4Z1BTQnVZWFJwZG1WTmFXNG9iaXdnY21WemRXeDBMbDlmZEdGclpVTnZkVzUwWDE4cE8xeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RDNWZYM1pwWlhkelgxOHVjSFZ6YUNoN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FuYzJsNlpTYzZJRzVoZEdsMlpVMXBiaWh1TENCTlFWaGZRVkpTUVZsZlRFVk9SMVJJS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ2QwZVhCbEp6b2diV1YwYUc5a1RtRnRaU0FySUNoeVpYTjFiSFF1WDE5a2FYSmZYeUE4SURBZ1B5QW5VbWxuYUhRbklEb2dKeWNwWEc0Z0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnSUNBZ0lIMDdYRzVjYmlBZ0lDQWdJRXhoZW5sWGNtRndjR1Z5TG5CeWIzUnZkSGx3WlZ0dFpYUm9iMlJPWVcxbElDc2dKMUpwWjJoMEoxMGdQU0JtZFc1amRHbHZiaWh1S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkpsZG1WeWMyVW9LVnR0WlhSb2IyUk9ZVzFsWFNodUtTNXlaWFpsY25ObEtDazdYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdMeThnUVdSa0lHQk1ZWHA1VjNKaGNIQmxjbUFnYldWMGFHOWtjeUIwYUdGMElHRmpZMlZ3ZENCaGJpQmdhWFJsY21GMFpXVmdJSFpoYkhWbExseHVJQ0FnSUdGeWNtRjVSV0ZqYUNoYkoyWnBiSFJsY2ljc0lDZHRZWEFuTENBbmRHRnJaVmRvYVd4bEoxMHNJR1oxYm1OMGFXOXVLRzFsZEdodlpFNWhiV1VzSUdsdVpHVjRLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2RIbHdaU0E5SUdsdVpHVjRJQ3NnTVN4Y2JpQWdJQ0FnSUNBZ0lDQnBjMFpwYkhSbGNpQTlJSFI1Y0dVZ1BUMGdURUZhV1Y5R1NVeFVSVkpmUmt4QlJ5QjhmQ0IwZVhCbElEMDlJRXhCV2xsZlYwaEpURVZmUmt4QlJ6dGNibHh1SUNBZ0lDQWdUR0Y2ZVZkeVlYQndaWEl1Y0hKdmRHOTBlWEJsVzIxbGRHaHZaRTVoYldWZElEMGdablZ1WTNScGIyNG9hWFJsY21GMFpXVXBJSHRjYmlBZ0lDQWdJQ0FnZG1GeUlISmxjM1ZzZENBOUlIUm9hWE11WTJ4dmJtVW9LVHRjYmlBZ0lDQWdJQ0FnY21WemRXeDBMbDlmYVhSbGNtRjBaV1Z6WDE4dWNIVnphQ2g3WEc0Z0lDQWdJQ0FnSUNBZ0oybDBaWEpoZEdWbEp6b2daMlYwU1hSbGNtRjBaV1VvYVhSbGNtRjBaV1VzSURNcExGeHVJQ0FnSUNBZ0lDQWdJQ2QwZVhCbEp6b2dkSGx3WlZ4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdjbVZ6ZFd4MExsOWZabWxzZEdWeVpXUmZYeUE5SUhKbGMzVnNkQzVmWDJacGJIUmxjbVZrWDE4Z2ZId2dhWE5HYVd4MFpYSTdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJQ0FnSUNCOU8xeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ0x5OGdRV1JrSUdCTVlYcDVWM0poY0hCbGNtQWdiV1YwYUc5a2N5Qm1iM0lnWUY4dWFHVmhaR0FnWVc1a0lHQmZMbXhoYzNSZ0xseHVJQ0FnSUdGeWNtRjVSV0ZqYUNoYkoyaGxZV1FuTENBbmJHRnpkQ2RkTENCbWRXNWpkR2x2YmlodFpYUm9iMlJPWVcxbExDQnBibVJsZUNrZ2UxeHVJQ0FnSUNBZ2RtRnlJSFJoYTJWT1lXMWxJRDBnSjNSaGEyVW5JQ3NnS0dsdVpHVjRJRDhnSjFKcFoyaDBKeUE2SUNjbktUdGNibHh1SUNBZ0lDQWdUR0Y2ZVZkeVlYQndaWEl1Y0hKdmRHOTBlWEJsVzIxbGRHaHZaRTVoYldWZElEMGdablZ1WTNScGIyNG9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdselczUmhhMlZPWVcxbFhTZ3hLUzUyWVd4MVpTZ3BXekJkTzF4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUM4dklFRmtaQ0JnVEdGNmVWZHlZWEJ3WlhKZ0lHMWxkR2h2WkhNZ1ptOXlJR0JmTG1sdWFYUnBZV3hnSUdGdVpDQmdYeTUwWVdsc1lDNWNiaUFnSUNCaGNuSmhlVVZoWTJnb1d5ZHBibWwwYVdGc0p5d2dKM1JoYVd3blhTd2dablZ1WTNScGIyNG9iV1YwYUc5a1RtRnRaU3dnYVc1a1pYZ3BJSHRjYmlBZ0lDQWdJSFpoY2lCa2NtOXdUbUZ0WlNBOUlDZGtjbTl3SnlBcklDaHBibVJsZUNBL0lDY25JRG9nSjFKcFoyaDBKeWs3WEc1Y2JpQWdJQ0FnSUV4aGVubFhjbUZ3Y0dWeUxuQnliM1J2ZEhsd1pWdHRaWFJvYjJST1lXMWxYU0E5SUdaMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVmWDJacGJIUmxjbVZrWDE4Z1B5QnVaWGNnVEdGNmVWZHlZWEJ3WlhJb2RHaHBjeWtnT2lCMGFHbHpXMlJ5YjNCT1lXMWxYU2d4S1R0Y2JpQWdJQ0FnSUgwN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCTVlYcDVWM0poY0hCbGNpNXdjbTkwYjNSNWNHVXVZMjl0Y0dGamRDQTlJR1oxYm1OMGFXOXVLQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVptbHNkR1Z5S0dsa1pXNTBhWFI1S1R0Y2JpQWdJQ0I5TzF4dVhHNGdJQ0FnVEdGNmVWZHlZWEJ3WlhJdWNISnZkRzkwZVhCbExtWnBibVFnUFNCbWRXNWpkR2x2Ymlod2NtVmthV05oZEdVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbVpwYkhSbGNpaHdjbVZrYVdOaGRHVXBMbWhsWVdRb0tUdGNiaUFnSUNCOU8xeHVYRzRnSUNBZ1RHRjZlVmR5WVhCd1pYSXVjSEp2ZEc5MGVYQmxMbVpwYm1STVlYTjBJRDBnWm5WdVkzUnBiMjRvY0hKbFpHbGpZWFJsS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NXlaWFpsY25ObEtDa3VabWx1WkNod2NtVmthV05oZEdVcE8xeHVJQ0FnSUgwN1hHNWNiaUFnSUNCTVlYcDVWM0poY0hCbGNpNXdjbTkwYjNSNWNHVXVhVzUyYjJ0bFRXRndJRDBnWW1GelpWSmxjM1FvWm5WdVkzUnBiMjRvY0dGMGFDd2dZWEpuY3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQndZWFJvSUQwOUlDZG1kVzVqZEdsdmJpY3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzVsZHlCTVlYcDVWM0poY0hCbGNpaDBhR2x6S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtMWhjQ2htZFc1amRHbHZiaWgyWVd4MVpTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZbUZ6WlVsdWRtOXJaU2gyWVd4MVpTd2djR0YwYUN3Z1lYSm5jeWs3WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUV4aGVubFhjbUZ3Y0dWeUxuQnliM1J2ZEhsd1pTNXlaV3BsWTNRZ1BTQm1kVzVqZEdsdmJpaHdjbVZrYVdOaGRHVXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1acGJIUmxjaWh1WldkaGRHVW9aMlYwU1hSbGNtRjBaV1VvY0hKbFpHbGpZWFJsS1NrcE8xeHVJQ0FnSUgwN1hHNWNiaUFnSUNCTVlYcDVWM0poY0hCbGNpNXdjbTkwYjNSNWNHVXVjMnhwWTJVZ1BTQm1kVzVqZEdsdmJpaHpkR0Z5ZEN3Z1pXNWtLU0I3WEc0Z0lDQWdJQ0J6ZEdGeWRDQTlJSFJ2U1c1MFpXZGxjaWh6ZEdGeWRDazdYRzVjYmlBZ0lDQWdJSFpoY2lCeVpYTjFiSFFnUFNCMGFHbHpPMXh1SUNBZ0lDQWdhV1lnS0hKbGMzVnNkQzVmWDJacGJIUmxjbVZrWDE4Z0ppWWdLSE4wWVhKMElENGdNQ0I4ZkNCbGJtUWdQQ0F3S1NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRXhoZW5sWGNtRndjR1Z5S0hKbGMzVnNkQ2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JwWmlBb2MzUmhjblFnUENBd0tTQjdYRzRnSUNBZ0lDQWdJSEpsYzNWc2RDQTlJSEpsYzNWc2RDNTBZV3RsVW1sbmFIUW9MWE4wWVhKMEtUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCcFppQW9jM1JoY25RcElIdGNiaUFnSUNBZ0lDQWdjbVZ6ZFd4MElEMGdjbVZ6ZFd4MExtUnliM0FvYzNSaGNuUXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdhV1lnS0dWdVpDQWhQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNBZ0lHVnVaQ0E5SUhSdlNXNTBaV2RsY2lobGJtUXBPMXh1SUNBZ0lDQWdJQ0J5WlhOMWJIUWdQU0JsYm1RZ1BDQXdJRDhnY21WemRXeDBMbVJ5YjNCU2FXZG9kQ2d0Wlc1a0tTQTZJSEpsYzNWc2RDNTBZV3RsS0dWdVpDQXRJSE4wWVhKMEtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc0Z0lDQWdmVHRjYmx4dUlDQWdJRXhoZW5sWGNtRndjR1Z5TG5CeWIzUnZkSGx3WlM1MFlXdGxVbWxuYUhSWGFHbHNaU0E5SUdaMWJtTjBhVzl1S0hCeVpXUnBZMkYwWlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjbVYyWlhKelpTZ3BMblJoYTJWWGFHbHNaU2h3Y21Wa2FXTmhkR1VwTG5KbGRtVnljMlVvS1R0Y2JpQWdJQ0I5TzF4dVhHNGdJQ0FnVEdGNmVWZHlZWEJ3WlhJdWNISnZkRzkwZVhCbExuUnZRWEp5WVhrZ1BTQm1kVzVqZEdsdmJpZ3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG5SaGEyVW9UVUZZWDBGU1VrRlpYMHhGVGtkVVNDazdYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lDOHZJRUZrWkNCZ1RHRjZlVmR5WVhCd1pYSmdJRzFsZEdodlpITWdkRzhnWUd4dlpHRnphQzV3Y205MGIzUjVjR1ZnTGx4dUlDQWdJR0poYzJWR2IzSlBkMjRvVEdGNmVWZHlZWEJ3WlhJdWNISnZkRzkwZVhCbExDQm1kVzVqZEdsdmJpaG1kVzVqTENCdFpYUm9iMlJPWVcxbEtTQjdYRzRnSUNBZ0lDQjJZWElnWTJobFkydEpkR1Z5WVhSbFpTQTlJQzllS0Q4NlptbHNkR1Z5ZkdacGJtUjhiV0Z3ZkhKbGFtVmpkQ2w4VjJocGJHVWtMeTUwWlhOMEtHMWxkR2h2WkU1aGJXVXBMRnh1SUNBZ0lDQWdJQ0FnSUdselZHRnJaWElnUFNBdlhpZy9PbWhsWVdSOGJHRnpkQ2trTHk1MFpYTjBLRzFsZEdodlpFNWhiV1VwTEZ4dUlDQWdJQ0FnSUNBZ0lHeHZaR0Z6YUVaMWJtTWdQU0JzYjJSaGMyaGJhWE5VWVd0bGNpQS9JQ2duZEdGclpTY2dLeUFvYldWMGFHOWtUbUZ0WlNBOVBTQW5iR0Z6ZENjZ1B5QW5VbWxuYUhRbklEb2dKeWNwS1NBNklHMWxkR2h2WkU1aGJXVmRMRnh1SUNBZ0lDQWdJQ0FnSUhKbGRGVnVkM0poY0hCbFpDQTlJR2x6VkdGclpYSWdmSHdnTDE1bWFXNWtMeTUwWlhOMEtHMWxkR2h2WkU1aGJXVXBPMXh1WEc0Z0lDQWdJQ0JwWmlBb0lXeHZaR0Z6YUVaMWJtTXBJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdiRzlrWVhOb0xuQnliM1J2ZEhsd1pWdHRaWFJvYjJST1lXMWxYU0E5SUdaMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnZG1Gc2RXVWdQU0IwYUdsekxsOWZkM0poY0hCbFpGOWZMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lYSm5jeUE5SUdselZHRnJaWElnUHlCYk1WMGdPaUJoY21kMWJXVnVkSE1zWEc0Z0lDQWdJQ0FnSUNBZ0lDQnBjMHhoZW5rZ1BTQjJZV3gxWlNCcGJuTjBZVzVqWlc5bUlFeGhlbmxYY21Gd2NHVnlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2FYUmxjbUYwWldVZ1BTQmhjbWR6V3pCZExGeHVJQ0FnSUNBZ0lDQWdJQ0FnZFhObFRHRjZlU0E5SUdselRHRjZlU0I4ZkNCcGMwRnljbUY1S0haaGJIVmxLVHRjYmx4dUlDQWdJQ0FnSUNCMllYSWdhVzUwWlhKalpYQjBiM0lnUFNCbWRXNWpkR2x2YmloMllXeDFaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0JzYjJSaGMyaEdkVzVqTG1Gd2NHeDVLR3h2WkdGemFDd2dZWEp5WVhsUWRYTm9LRnQyWVd4MVpWMHNJR0Z5WjNNcEtUdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdLR2x6VkdGclpYSWdKaVlnWTJoaGFXNUJiR3dwSUQ4Z2NtVnpkV3gwV3pCZElEb2djbVZ6ZFd4ME8xeHVJQ0FnSUNBZ0lDQjlPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaDFjMlZNWVhwNUlDWW1JR05vWldOclNYUmxjbUYwWldVZ0ppWWdkSGx3Wlc5bUlHbDBaWEpoZEdWbElEMDlJQ2RtZFc1amRHbHZiaWNnSmlZZ2FYUmxjbUYwWldVdWJHVnVaM1JvSUNFOUlERXBJSHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QkJkbTlwWkNCc1lYcDVJSFZ6WlNCcFppQjBhR1VnYVhSbGNtRjBaV1VnYUdGeklHRWdYQ0pzWlc1bmRHaGNJaUIyWVd4MVpTQnZkR2hsY2lCMGFHRnVJR0F4WUM1Y2JpQWdJQ0FnSUNBZ0lDQnBjMHhoZW5rZ1BTQjFjMlZNWVhwNUlEMGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdkbUZ5SUdOb1lXbHVRV3hzSUQwZ2RHaHBjeTVmWDJOb1lXbHVYMThzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnBjMGg1WW5KcFpDQTlJQ0VoZEdocGN5NWZYMkZqZEdsdmJuTmZYeTVzWlc1bmRHZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNCcGMxVnVkM0poY0hCbFpDQTlJSEpsZEZWdWQzSmhjSEJsWkNBbUppQWhZMmhoYVc1QmJHd3NYRzRnSUNBZ0lDQWdJQ0FnSUNCdmJteDVUR0Y2ZVNBOUlHbHpUR0Y2ZVNBbUppQWhhWE5JZVdKeWFXUTdYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tDRnlaWFJWYm5keVlYQndaV1FnSmlZZ2RYTmxUR0Y2ZVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFpoYkhWbElEMGdiMjVzZVV4aGVua2dQeUIyWVd4MVpTQTZJRzVsZHlCTVlYcDVWM0poY0hCbGNpaDBhR2x6S1R0Y2JpQWdJQ0FnSUNBZ0lDQjJZWElnY21WemRXeDBJRDBnWm5WdVl5NWhjSEJzZVNoMllXeDFaU3dnWVhKbmN5azdYRzRnSUNBZ0lDQWdJQ0FnY21WemRXeDBMbDlmWVdOMGFXOXVjMTlmTG5CMWMyZ29leUFuWm5WdVl5YzZJSFJvY25Vc0lDZGhjbWR6SnpvZ1cybHVkR1Z5WTJWd2RHOXlYU3dnSjNSb2FYTkJjbWNuT2lCMWJtUmxabWx1WldRZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzVsZHlCTWIyUmhjMmhYY21Gd2NHVnlLSEpsYzNWc2RDd2dZMmhoYVc1QmJHd3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaHBjMVZ1ZDNKaGNIQmxaQ0FtSmlCdmJteDVUR0Y2ZVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQm1kVzVqTG1Gd2NHeDVLSFJvYVhNc0lHRnlaM01wTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxjM1ZzZENBOUlIUm9hWE11ZEdoeWRTaHBiblJsY21ObGNIUnZjaWs3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJwYzFWdWQzSmhjSEJsWkNBL0lDaHBjMVJoYTJWeUlEOGdjbVZ6ZFd4MExuWmhiSFZsS0NsYk1GMGdPaUJ5WlhOMWJIUXVkbUZzZFdVb0tTa2dPaUJ5WlhOMWJIUTdYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdMeThnUVdSa0lHQkJjbkpoZVdBZ2JXVjBhRzlrY3lCMGJ5QmdiRzlrWVhOb0xuQnliM1J2ZEhsd1pXQXVYRzRnSUNBZ1lYSnlZWGxGWVdOb0tGc25jRzl3Snl3Z0ozQjFjMmduTENBbmMyaHBablFuTENBbmMyOXlkQ2NzSUNkemNHeHBZMlVuTENBbmRXNXphR2xtZENkZExDQm1kVzVqZEdsdmJpaHRaWFJvYjJST1lXMWxLU0I3WEc0Z0lDQWdJQ0IyWVhJZ1puVnVZeUE5SUdGeWNtRjVVSEp2ZEc5YmJXVjBhRzlrVG1GdFpWMHNYRzRnSUNBZ0lDQWdJQ0FnWTJoaGFXNU9ZVzFsSUQwZ0wxNG9QenB3ZFhOb2ZITnZjblI4ZFc1emFHbG1kQ2trTHk1MFpYTjBLRzFsZEdodlpFNWhiV1VwSUQ4Z0ozUmhjQ2NnT2lBbmRHaHlkU2NzWEc0Z0lDQWdJQ0FnSUNBZ2NtVjBWVzUzY21Gd2NHVmtJRDBnTDE0b1B6cHdiM0I4YzJocFpuUXBKQzh1ZEdWemRDaHRaWFJvYjJST1lXMWxLVHRjYmx4dUlDQWdJQ0FnYkc5a1lYTm9MbkJ5YjNSdmRIbHdaVnR0WlhSb2IyUk9ZVzFsWFNBOUlHWjFibU4wYVc5dUtDa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ1lYSm5jeUE5SUdGeVozVnRaVzUwY3p0Y2JpQWdJQ0FnSUNBZ2FXWWdLSEpsZEZWdWQzSmhjSEJsWkNBbUppQWhkR2hwY3k1ZlgyTm9ZV2x1WDE4cElIdGNiaUFnSUNBZ0lDQWdJQ0IyWVhJZ2RtRnNkV1VnUFNCMGFHbHpMblpoYkhWbEtDazdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1oxYm1NdVlYQndiSGtvYVhOQmNuSmhlU2gyWVd4MVpTa2dQeUIyWVd4MVpTQTZJRnRkTENCaGNtZHpLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGMxdGphR0ZwYms1aGJXVmRLR1oxYm1OMGFXOXVLSFpoYkhWbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1oxYm1NdVlYQndiSGtvYVhOQmNuSmhlU2gyWVd4MVpTa2dQeUIyWVd4MVpTQTZJRnRkTENCaGNtZHpLVHRjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCOU8xeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ0x5OGdUV0Z3SUcxcGJtbG1hV1ZrSUcxbGRHaHZaQ0J1WVcxbGN5QjBieUIwYUdWcGNpQnlaV0ZzSUc1aGJXVnpMbHh1SUNBZ0lHSmhjMlZHYjNKUGQyNG9UR0Y2ZVZkeVlYQndaWEl1Y0hKdmRHOTBlWEJsTENCbWRXNWpkR2x2YmlobWRXNWpMQ0J0WlhSb2IyUk9ZVzFsS1NCN1hHNGdJQ0FnSUNCMllYSWdiRzlrWVhOb1JuVnVZeUE5SUd4dlpHRnphRnR0WlhSb2IyUk9ZVzFsWFR0Y2JpQWdJQ0FnSUdsbUlDaHNiMlJoYzJoR2RXNWpLU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQnJaWGtnUFNCc2IyUmhjMmhHZFc1akxtNWhiV1VnS3lBbkp6dGNiaUFnSUNBZ0lDQWdhV1lnS0NGb1lYTlBkMjVRY205d1pYSjBlUzVqWVd4c0tISmxZV3hPWVcxbGN5d2dhMlY1S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpsWVd4T1lXMWxjMXRyWlhsZElEMGdXMTA3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2NtVmhiRTVoYldWelcydGxlVjB1Y0hWemFDaDdJQ2R1WVcxbEp6b2diV1YwYUc5a1RtRnRaU3dnSjJaMWJtTW5PaUJzYjJSaGMyaEdkVzVqSUgwcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ2NtVmhiRTVoYldWelcyTnlaV0YwWlVoNVluSnBaQ2gxYm1SbFptbHVaV1FzSUZkU1FWQmZRa2xPUkY5TFJWbGZSa3hCUnlrdWJtRnRaVjBnUFNCYmUxeHVJQ0FnSUNBZ0oyNWhiV1VuT2lBbmQzSmhjSEJsY2ljc1hHNGdJQ0FnSUNBblpuVnVZeWM2SUhWdVpHVm1hVzVsWkZ4dUlDQWdJSDFkTzF4dVhHNGdJQ0FnTHk4Z1FXUmtJRzFsZEdodlpITWdkRzhnWUV4aGVubFhjbUZ3Y0dWeVlDNWNiaUFnSUNCTVlYcDVWM0poY0hCbGNpNXdjbTkwYjNSNWNHVXVZMnh2Ym1VZ1BTQnNZWHA1UTJ4dmJtVTdYRzRnSUNBZ1RHRjZlVmR5WVhCd1pYSXVjSEp2ZEc5MGVYQmxMbkpsZG1WeWMyVWdQU0JzWVhwNVVtVjJaWEp6WlR0Y2JpQWdJQ0JNWVhwNVYzSmhjSEJsY2k1d2NtOTBiM1I1Y0dVdWRtRnNkV1VnUFNCc1lYcDVWbUZzZFdVN1hHNWNiaUFnSUNBdkx5QkJaR1FnWTJoaGFXNGdjMlZ4ZFdWdVkyVWdiV1YwYUc5a2N5QjBieUIwYUdVZ1lHeHZaR0Z6YUdBZ2QzSmhjSEJsY2k1Y2JpQWdJQ0JzYjJSaGMyZ3VjSEp2ZEc5MGVYQmxMbUYwSUQwZ2QzSmhjSEJsY2tGME8xeHVJQ0FnSUd4dlpHRnphQzV3Y205MGIzUjVjR1V1WTJoaGFXNGdQU0IzY21Gd2NHVnlRMmhoYVc0N1hHNGdJQ0FnYkc5a1lYTm9MbkJ5YjNSdmRIbHdaUzVqYjIxdGFYUWdQU0IzY21Gd2NHVnlRMjl0YldsME8xeHVJQ0FnSUd4dlpHRnphQzV3Y205MGIzUjVjR1V1Ym1WNGRDQTlJSGR5WVhCd1pYSk9aWGgwTzF4dUlDQWdJR3h2WkdGemFDNXdjbTkwYjNSNWNHVXVjR3hoYm5RZ1BTQjNjbUZ3Y0dWeVVHeGhiblE3WEc0Z0lDQWdiRzlrWVhOb0xuQnliM1J2ZEhsd1pTNXlaWFpsY25ObElEMGdkM0poY0hCbGNsSmxkbVZ5YzJVN1hHNGdJQ0FnYkc5a1lYTm9MbkJ5YjNSdmRIbHdaUzUwYjBwVFQwNGdQU0JzYjJSaGMyZ3VjSEp2ZEc5MGVYQmxMblpoYkhWbFQyWWdQU0JzYjJSaGMyZ3VjSEp2ZEc5MGVYQmxMblpoYkhWbElEMGdkM0poY0hCbGNsWmhiSFZsTzF4dVhHNGdJQ0FnTHk4Z1FXUmtJR3hoZW5rZ1lXeHBZWE5sY3k1Y2JpQWdJQ0JzYjJSaGMyZ3VjSEp2ZEc5MGVYQmxMbVpwY25OMElEMGdiRzlrWVhOb0xuQnliM1J2ZEhsd1pTNW9aV0ZrTzF4dVhHNGdJQ0FnYVdZZ0tITjViVWwwWlhKaGRHOXlLU0I3WEc0Z0lDQWdJQ0JzYjJSaGMyZ3VjSEp2ZEc5MGVYQmxXM041YlVsMFpYSmhkRzl5WFNBOUlIZHlZWEJ3WlhKVWIwbDBaWEpoZEc5eU8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdiRzlrWVhOb08xeHVJQ0I5S1R0Y2JseHVJQ0F2S2kwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdEtpOWNibHh1SUNBdkx5QkZlSEJ2Y25RZ2JHOWtZWE5vTGx4dUlDQjJZWElnWHlBOUlISjFia2x1UTI5dWRHVjRkQ2dwTzF4dVhHNGdJQzh2SUZOdmJXVWdRVTFFSUdKMWFXeGtJRzl3ZEdsdGFYcGxjbk1zSUd4cGEyVWdjaTVxY3l3Z1kyaGxZMnNnWm05eUlHTnZibVJwZEdsdmJpQndZWFIwWlhKdWN5QnNhV3RsT2x4dUlDQnBaaUFvZEhsd1pXOW1JR1JsWm1sdVpTQTlQU0FuWm5WdVkzUnBiMjRuSUNZbUlIUjVjR1Z2WmlCa1pXWnBibVV1WVcxa0lEMDlJQ2R2WW1wbFkzUW5JQ1ltSUdSbFptbHVaUzVoYldRcElIdGNiaUFnSUNBdkx5QkZlSEJ2YzJVZ1RHOWtZWE5vSUc5dUlIUm9aU0JuYkc5aVlXd2diMkpxWldOMElIUnZJSEJ5WlhabGJuUWdaWEp5YjNKeklIZG9aVzRnVEc5a1lYTm9JR2x6WEc0Z0lDQWdMeThnYkc5aFpHVmtJR0o1SUdFZ2MyTnlhWEIwSUhSaFp5QnBiaUIwYUdVZ2NISmxjMlZ1WTJVZ2IyWWdZVzRnUVUxRUlHeHZZV1JsY2k1Y2JpQWdJQ0F2THlCVFpXVWdhSFIwY0RvdkwzSmxjWFZwY21WcWN5NXZjbWN2Wkc5amN5OWxjbkp2Y25NdWFIUnRiQ050YVhOdFlYUmphQ0JtYjNJZ2JXOXlaU0JrWlhSaGFXeHpMbHh1SUNBZ0lDOHZJRlZ6WlNCZ1h5NXViME52Ym1ac2FXTjBZQ0IwYnlCeVpXMXZkbVVnVEc5a1lYTm9JR1p5YjIwZ2RHaGxJR2RzYjJKaGJDQnZZbXBsWTNRdVhHNGdJQ0FnY205dmRDNWZJRDBnWHp0Y2JseHVJQ0FnSUM4dklFUmxabWx1WlNCaGN5QmhiaUJoYm05dWVXMXZkWE1nYlc5a2RXeGxJSE52TENCMGFISnZkV2RvSUhCaGRHZ2diV0Z3Y0dsdVp5d2dhWFFnWTJGdUlHSmxYRzRnSUNBZ0x5OGdjbVZtWlhKbGJtTmxaQ0JoY3lCMGFHVWdYQ0oxYm1SbGNuTmpiM0psWENJZ2JXOWtkV3hsTGx4dUlDQWdJR1JsWm1sdVpTaG1kVzVqZEdsdmJpZ3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmZPMXh1SUNBZ0lIMHBPMXh1SUNCOVhHNGdJQzh2SUVOb1pXTnJJR1p2Y2lCZ1pYaHdiM0owYzJBZ1lXWjBaWElnWUdSbFptbHVaV0FnYVc0Z1kyRnpaU0JoSUdKMWFXeGtJRzl3ZEdsdGFYcGxjaUJoWkdSeklHbDBMbHh1SUNCbGJITmxJR2xtSUNobWNtVmxUVzlrZFd4bEtTQjdYRzRnSUNBZ0x5OGdSWGh3YjNKMElHWnZjaUJPYjJSbExtcHpMbHh1SUNBZ0lDaG1jbVZsVFc5a2RXeGxMbVY0Y0c5eWRITWdQU0JmS1M1ZklEMGdYenRjYmlBZ0lDQXZMeUJGZUhCdmNuUWdabTl5SUVOdmJXMXZia3BUSUhOMWNIQnZjblF1WEc0Z0lDQWdabkpsWlVWNGNHOXlkSE11WHlBOUlGODdYRzRnSUgxY2JpQWdaV3h6WlNCN1hHNGdJQ0FnTHk4Z1JYaHdiM0owSUhSdklIUm9aU0JuYkc5aVlXd2diMkpxWldOMExseHVJQ0FnSUhKdmIzUXVYeUE5SUY4N1hHNGdJSDFjYm4wdVkyRnNiQ2gwYUdsektTazdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi8uLi9ub2RlX21vZHVsZXMvbG9kYXNoL2xvZGFzaC5qc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29iamVjdC1hc3NpZ24vaW5kZXguanNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29iamVjdC1hc3NpZ24vaW5kZXguanMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSkgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCIvKlxcbm9iamVjdC1hc3NpZ25cXG4oYykgU2luZHJlIFNvcmh1c1xcbkBsaWNlbnNlIE1JVFxcbiovXFxuXFxuXFxuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcXG5cXG5mdW5jdGlvbiB0b09iamVjdCh2YWwpIHtcXG5cXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XFxuXFx0XFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcXG5cXHR9XFxuXFxuXFx0cmV0dXJuIE9iamVjdCh2YWwpO1xcbn1cXG5cXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XFxuXFx0dHJ5IHtcXG5cXHRcXHRpZiAoIU9iamVjdC5hc3NpZ24pIHtcXG5cXHRcXHRcXHRyZXR1cm4gZmFsc2U7XFxuXFx0XFx0fVxcblxcblxcdFxcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cXG5cXG5cXHRcXHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD00MTE4XFxuXFx0XFx0dmFyIHRlc3QxID0gbmV3IFN0cmluZygnYWJjJyk7ICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ldy13cmFwcGVyc1xcblxcdFxcdHRlc3QxWzVdID0gJ2RlJztcXG5cXHRcXHRpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDEpWzBdID09PSAnNScpIHtcXG5cXHRcXHRcXHRyZXR1cm4gZmFsc2U7XFxuXFx0XFx0fVxcblxcblxcdFxcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcXG5cXHRcXHR2YXIgdGVzdDIgPSB7fTtcXG5cXHRcXHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcXG5cXHRcXHRcXHR0ZXN0MlsnXycgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpXSA9IGk7XFxuXFx0XFx0fVxcblxcdFxcdHZhciBvcmRlcjIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MikubWFwKGZ1bmN0aW9uIChuKSB7XFxuXFx0XFx0XFx0cmV0dXJuIHRlc3QyW25dO1xcblxcdFxcdH0pO1xcblxcdFxcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xcblxcdFxcdFxcdHJldHVybiBmYWxzZTtcXG5cXHRcXHR9XFxuXFxuXFx0XFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxcblxcdFxcdHZhciB0ZXN0MyA9IHt9O1xcblxcdFxcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGxldHRlcikge1xcblxcdFxcdFxcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XFxuXFx0XFx0fSk7XFxuXFx0XFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XFxuXFx0XFx0XFx0XFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jykge1xcblxcdFxcdFxcdHJldHVybiBmYWxzZTtcXG5cXHRcXHR9XFxuXFxuXFx0XFx0cmV0dXJuIHRydWU7XFxuXFx0fSBjYXRjaCAoZXJyKSB7XFxuXFx0XFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cXG5cXHRcXHRyZXR1cm4gZmFsc2U7XFxuXFx0fVxcbn1cXG5cXG5tb2R1bGUuZXhwb3J0cyA9IHNob3VsZFVzZU5hdGl2ZSgpID8gT2JqZWN0LmFzc2lnbiA6IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xcblxcdHZhciBmcm9tO1xcblxcdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XFxuXFx0dmFyIHN5bWJvbHM7XFxuXFxuXFx0Zm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcXG5cXHRcXHRmcm9tID0gT2JqZWN0KGFyZ3VtZW50c1tzXSk7XFxuXFxuXFx0XFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcXG5cXHRcXHRcXHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XFxuXFx0XFx0XFx0XFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcXG5cXHRcXHRcXHR9XFxuXFx0XFx0fVxcblxcblxcdFxcdGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcXG5cXHRcXHRcXHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xcblxcdFxcdFxcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xcblxcdFxcdFxcdFxcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcXG5cXHRcXHRcXHRcXHRcXHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XFxuXFx0XFx0XFx0XFx0fVxcblxcdFxcdFxcdH1cXG5cXHRcXHR9XFxuXFx0fVxcblxcblxcdHJldHVybiB0bztcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2TGk0dmJtOWtaVjl0YjJSMWJHVnpMMjlpYW1WamRDMWhjM05wWjI0dmFXNWtaWGd1YW5NdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRllUdEJRVU5pTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHM3UVVGRlFUdEJRVU5CTEd0RFFVRnJRenRCUVVOc1F6dEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEVzYTBKQlFXdENMRkZCUVZFN1FVRkRNVUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4SFFVRkhPMEZCUTBnN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1IwRkJSenRCUVVOSUxHdERRVUZyUXp0QlFVTnNRenRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVN4SFFVRkhPMEZCUTBnN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUVzYVVKQlFXbENMSE5DUVVGelFqdEJRVU4yUXpzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRU3h0UWtGQmJVSXNiMEpCUVc5Q08wRkJRM1pETzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CSWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUx5NHVMMjV2WkdWZmJXOWtkV3hsY3k5dlltcGxZM1F0WVhOemFXZHVMMmx1WkdWNExtcHpQek5sTVRNaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeXBjYm05aWFtVmpkQzFoYzNOcFoyNWNiaWhqS1NCVGFXNWtjbVVnVTI5eWFIVnpYRzVBYkdsalpXNXpaU0JOU1ZSY2Jpb3ZYRzVjYmlkMWMyVWdjM1J5YVdOMEp6dGNiaThxSUdWemJHbHVkQzFrYVhOaFlteGxJRzV2TFhWdWRYTmxaQzEyWVhKeklDb3ZYRzUyWVhJZ1oyVjBUM2R1VUhKdmNHVnlkSGxUZVcxaWIyeHpJRDBnVDJKcVpXTjBMbWRsZEU5M2JsQnliM0JsY25SNVUzbHRZbTlzY3p0Y2JuWmhjaUJvWVhOUGQyNVFjbTl3WlhKMGVTQTlJRTlpYW1WamRDNXdjbTkwYjNSNWNHVXVhR0Z6VDNkdVVISnZjR1Z5ZEhrN1hHNTJZWElnY0hKdmNFbHpSVzUxYldWeVlXSnNaU0E5SUU5aWFtVmpkQzV3Y205MGIzUjVjR1V1Y0hKdmNHVnlkSGxKYzBWdWRXMWxjbUZpYkdVN1hHNWNibVoxYm1OMGFXOXVJSFJ2VDJKcVpXTjBLSFpoYkNrZ2UxeHVYSFJwWmlBb2RtRnNJRDA5UFNCdWRXeHNJSHg4SUhaaGJDQTlQVDBnZFc1a1pXWnBibVZrS1NCN1hHNWNkRngwZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2lnblQySnFaV04wTG1GemMybG5iaUJqWVc1dWIzUWdZbVVnWTJGc2JHVmtJSGRwZEdnZ2JuVnNiQ0J2Y2lCMWJtUmxabWx1WldRbktUdGNibHgwZlZ4dVhHNWNkSEpsZEhWeWJpQlBZbXBsWTNRb2RtRnNLVHRjYm4xY2JseHVablZ1WTNScGIyNGdjMmh2ZFd4a1ZYTmxUbUYwYVhabEtDa2dlMXh1WEhSMGNua2dlMXh1WEhSY2RHbG1JQ2doVDJKcVpXTjBMbUZ6YzJsbmJpa2dlMXh1WEhSY2RGeDBjbVYwZFhKdUlHWmhiSE5sTzF4dVhIUmNkSDFjYmx4dVhIUmNkQzh2SUVSbGRHVmpkQ0JpZFdkbmVTQndjbTl3WlhKMGVTQmxiblZ0WlhKaGRHbHZiaUJ2Y21SbGNpQnBiaUJ2YkdSbGNpQldPQ0IyWlhKemFXOXVjeTVjYmx4dVhIUmNkQzh2SUdoMGRIQnpPaTh2WW5WbmN5NWphSEp2YldsMWJTNXZjbWN2Y0M5Mk9DOXBjM04xWlhNdlpHVjBZV2xzUDJsa1BUUXhNVGhjYmx4MFhIUjJZWElnZEdWemRERWdQU0J1WlhjZ1UzUnlhVzVuS0NkaFltTW5LVHNnSUM4dklHVnpiR2x1ZEMxa2FYTmhZbXhsTFd4cGJtVWdibTh0Ym1WM0xYZHlZWEJ3WlhKelhHNWNkRngwZEdWemRERmJOVjBnUFNBblpHVW5PMXh1WEhSY2RHbG1JQ2hQWW1wbFkzUXVaMlYwVDNkdVVISnZjR1Z5ZEhsT1lXMWxjeWgwWlhOME1TbGJNRjBnUFQwOUlDYzFKeWtnZTF4dVhIUmNkRngwY21WMGRYSnVJR1poYkhObE8xeHVYSFJjZEgxY2JseHVYSFJjZEM4dklHaDBkSEJ6T2k4dlluVm5jeTVqYUhKdmJXbDFiUzV2Y21jdmNDOTJPQzlwYzNOMVpYTXZaR1YwWVdsc1AybGtQVE13TlRaY2JseDBYSFIyWVhJZ2RHVnpkRElnUFNCN2ZUdGNibHgwWEhSbWIzSWdLSFpoY2lCcElEMGdNRHNnYVNBOElERXdPeUJwS3lzcElIdGNibHgwWEhSY2RIUmxjM1F5V3lkZkp5QXJJRk4wY21sdVp5NW1jbTl0UTJoaGNrTnZaR1VvYVNsZElEMGdhVHRjYmx4MFhIUjlYRzVjZEZ4MGRtRnlJRzl5WkdWeU1pQTlJRTlpYW1WamRDNW5aWFJQZDI1UWNtOXdaWEowZVU1aGJXVnpLSFJsYzNReUtTNXRZWEFvWm5WdVkzUnBiMjRnS0c0cElIdGNibHgwWEhSY2RISmxkSFZ5YmlCMFpYTjBNbHR1WFR0Y2JseDBYSFI5S1R0Y2JseDBYSFJwWmlBb2IzSmtaWEl5TG1wdmFXNG9KeWNwSUNFOVBTQW5NREV5TXpRMU5qYzRPU2NwSUh0Y2JseDBYSFJjZEhKbGRIVnliaUJtWVd4elpUdGNibHgwWEhSOVhHNWNibHgwWEhRdkx5Qm9kSFJ3Y3pvdkwySjFaM011WTJoeWIyMXBkVzB1YjNKbkwzQXZkamd2YVhOemRXVnpMMlJsZEdGcGJEOXBaRDB6TURVMlhHNWNkRngwZG1GeUlIUmxjM1F6SUQwZ2UzMDdYRzVjZEZ4MEoyRmlZMlJsWm1kb2FXcHJiRzF1YjNCeGNuTjBKeTV6Y0d4cGRDZ25KeWt1Wm05eVJXRmphQ2htZFc1amRHbHZiaUFvYkdWMGRHVnlLU0I3WEc1Y2RGeDBYSFIwWlhOME0xdHNaWFIwWlhKZElEMGdiR1YwZEdWeU8xeHVYSFJjZEgwcE8xeHVYSFJjZEdsbUlDaFBZbXBsWTNRdWEyVjVjeWhQWW1wbFkzUXVZWE56YVdkdUtIdDlMQ0IwWlhOME15a3BMbXB2YVc0b0p5Y3BJQ0U5UFZ4dVhIUmNkRngwWEhRbllXSmpaR1ZtWjJocGFtdHNiVzV2Y0hGeWMzUW5LU0I3WEc1Y2RGeDBYSFJ5WlhSMWNtNGdabUZzYzJVN1hHNWNkRngwZlZ4dVhHNWNkRngwY21WMGRYSnVJSFJ5ZFdVN1hHNWNkSDBnWTJGMFkyZ2dLR1Z5Y2lrZ2UxeHVYSFJjZEM4dklGZGxJR1J2YmlkMElHVjRjR1ZqZENCaGJua2diMllnZEdobElHRmliM1psSUhSdklIUm9jbTkzTENCaWRYUWdZbVYwZEdWeUlIUnZJR0psSUhOaFptVXVYRzVjZEZ4MGNtVjBkWEp1SUdaaGJITmxPMXh1WEhSOVhHNTlYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnYzJodmRXeGtWWE5sVG1GMGFYWmxLQ2tnUHlCUFltcGxZM1F1WVhOemFXZHVJRG9nWm5WdVkzUnBiMjRnS0hSaGNtZGxkQ3dnYzI5MWNtTmxLU0I3WEc1Y2RIWmhjaUJtY205dE8xeHVYSFIyWVhJZ2RHOGdQU0IwYjA5aWFtVmpkQ2gwWVhKblpYUXBPMXh1WEhSMllYSWdjM2x0WW05c2N6dGNibHh1WEhSbWIzSWdLSFpoY2lCeklEMGdNVHNnY3lBOElHRnlaM1Z0Wlc1MGN5NXNaVzVuZEdnN0lITXJLeWtnZTF4dVhIUmNkR1p5YjIwZ1BTQlBZbXBsWTNRb1lYSm5kVzFsYm5SelczTmRLVHRjYmx4dVhIUmNkR1p2Y2lBb2RtRnlJR3RsZVNCcGJpQm1jbTl0S1NCN1hHNWNkRngwWEhScFppQW9hR0Z6VDNkdVVISnZjR1Z5ZEhrdVkyRnNiQ2htY205dExDQnJaWGtwS1NCN1hHNWNkRngwWEhSY2RIUnZXMnRsZVYwZ1BTQm1jbTl0VzJ0bGVWMDdYRzVjZEZ4MFhIUjlYRzVjZEZ4MGZWeHVYRzVjZEZ4MGFXWWdLR2RsZEU5M2JsQnliM0JsY25SNVUzbHRZbTlzY3lrZ2UxeHVYSFJjZEZ4MGMzbHRZbTlzY3lBOUlHZGxkRTkzYmxCeWIzQmxjblI1VTNsdFltOXNjeWhtY205dEtUdGNibHgwWEhSY2RHWnZjaUFvZG1GeUlHa2dQU0F3T3lCcElEd2djM2x0WW05c2N5NXNaVzVuZEdnN0lHa3JLeWtnZTF4dVhIUmNkRngwWEhScFppQW9jSEp2Y0VselJXNTFiV1Z5WVdKc1pTNWpZV3hzS0daeWIyMHNJSE41YldKdmJITmJhVjBwS1NCN1hHNWNkRngwWEhSY2RGeDBkRzliYzNsdFltOXNjMXRwWFYwZ1BTQm1jbTl0VzNONWJXSnZiSE5iYVYxZE8xeHVYSFJjZEZ4MFhIUjlYRzVjZEZ4MFhIUjlYRzVjZEZ4MGZWeHVYSFI5WEc1Y2JseDBjbVYwZFhKdUlIUnZPMXh1ZlR0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcGF0aC1kYXRhLXBhcnNlci9saWIvYWJzb2x1dGl6ZS5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi8uLi9ub2RlX21vZHVsZXMvcGF0aC1kYXRhLXBhcnNlci9saWIvYWJzb2x1dGl6ZS5qcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWJzb2x1dGl6ZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFic29sdXRpemUpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLy8gVHJhbnNsYXRlIHJlbGF0aXZlIGNvbW1hbmRzIHRvIGFic29sdXRlIGNvbW1hbmRzXFxuZnVuY3Rpb24gYWJzb2x1dGl6ZShzZWdtZW50cykge1xcbiAgICBsZXQgY3ggPSAwLCBjeSA9IDA7XFxuICAgIGxldCBzdWJ4ID0gMCwgc3VieSA9IDA7XFxuICAgIGNvbnN0IG91dCA9IFtdO1xcbiAgICBmb3IgKGNvbnN0IHsga2V5LCBkYXRhIH0gb2Ygc2VnbWVudHMpIHtcXG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XFxuICAgICAgICAgICAgY2FzZSAnTSc6XFxuICAgICAgICAgICAgICAgIG91dC5wdXNoKHsga2V5OiAnTScsIGRhdGE6IFsuLi5kYXRhXSB9KTtcXG4gICAgICAgICAgICAgICAgW2N4LCBjeV0gPSBkYXRhO1xcbiAgICAgICAgICAgICAgICBbc3VieCwgc3VieV0gPSBkYXRhO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICdtJzpcXG4gICAgICAgICAgICAgICAgY3ggKz0gZGF0YVswXTtcXG4gICAgICAgICAgICAgICAgY3kgKz0gZGF0YVsxXTtcXG4gICAgICAgICAgICAgICAgb3V0LnB1c2goeyBrZXk6ICdNJywgZGF0YTogW2N4LCBjeV0gfSk7XFxuICAgICAgICAgICAgICAgIHN1YnggPSBjeDtcXG4gICAgICAgICAgICAgICAgc3VieSA9IGN5O1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICdMJzpcXG4gICAgICAgICAgICAgICAgb3V0LnB1c2goeyBrZXk6ICdMJywgZGF0YTogWy4uLmRhdGFdIH0pO1xcbiAgICAgICAgICAgICAgICBbY3gsIGN5XSA9IGRhdGE7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ2wnOlxcbiAgICAgICAgICAgICAgICBjeCArPSBkYXRhWzBdO1xcbiAgICAgICAgICAgICAgICBjeSArPSBkYXRhWzFdO1xcbiAgICAgICAgICAgICAgICBvdXQucHVzaCh7IGtleTogJ0wnLCBkYXRhOiBbY3gsIGN5XSB9KTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSAnQyc6XFxuICAgICAgICAgICAgICAgIG91dC5wdXNoKHsga2V5OiAnQycsIGRhdGE6IFsuLi5kYXRhXSB9KTtcXG4gICAgICAgICAgICAgICAgY3ggPSBkYXRhWzRdO1xcbiAgICAgICAgICAgICAgICBjeSA9IGRhdGFbNV07XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ2MnOiB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld2RhdGEgPSBkYXRhLm1hcCgoZCwgaSkgPT4gKGkgJSAyKSA/IChkICsgY3kpIDogKGQgKyBjeCkpO1xcbiAgICAgICAgICAgICAgICBvdXQucHVzaCh7IGtleTogJ0MnLCBkYXRhOiBuZXdkYXRhIH0pO1xcbiAgICAgICAgICAgICAgICBjeCA9IG5ld2RhdGFbNF07XFxuICAgICAgICAgICAgICAgIGN5ID0gbmV3ZGF0YVs1XTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNhc2UgJ1EnOlxcbiAgICAgICAgICAgICAgICBvdXQucHVzaCh7IGtleTogJ1EnLCBkYXRhOiBbLi4uZGF0YV0gfSk7XFxuICAgICAgICAgICAgICAgIGN4ID0gZGF0YVsyXTtcXG4gICAgICAgICAgICAgICAgY3kgPSBkYXRhWzNdO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICdxJzoge1xcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdkYXRhID0gZGF0YS5tYXAoKGQsIGkpID0+IChpICUgMikgPyAoZCArIGN5KSA6IChkICsgY3gpKTtcXG4gICAgICAgICAgICAgICAgb3V0LnB1c2goeyBrZXk6ICdRJywgZGF0YTogbmV3ZGF0YSB9KTtcXG4gICAgICAgICAgICAgICAgY3ggPSBuZXdkYXRhWzJdO1xcbiAgICAgICAgICAgICAgICBjeSA9IG5ld2RhdGFbM107XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjYXNlICdBJzpcXG4gICAgICAgICAgICAgICAgb3V0LnB1c2goeyBrZXk6ICdBJywgZGF0YTogWy4uLmRhdGFdIH0pO1xcbiAgICAgICAgICAgICAgICBjeCA9IGRhdGFbNV07XFxuICAgICAgICAgICAgICAgIGN5ID0gZGF0YVs2XTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSAnYSc6XFxuICAgICAgICAgICAgICAgIGN4ICs9IGRhdGFbNV07XFxuICAgICAgICAgICAgICAgIGN5ICs9IGRhdGFbNl07XFxuICAgICAgICAgICAgICAgIG91dC5wdXNoKHsga2V5OiAnQScsIGRhdGE6IFtkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdLCBkYXRhWzNdLCBkYXRhWzRdLCBjeCwgY3ldIH0pO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICdIJzpcXG4gICAgICAgICAgICAgICAgb3V0LnB1c2goeyBrZXk6ICdIJywgZGF0YTogWy4uLmRhdGFdIH0pO1xcbiAgICAgICAgICAgICAgICBjeCA9IGRhdGFbMF07XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ2gnOlxcbiAgICAgICAgICAgICAgICBjeCArPSBkYXRhWzBdO1xcbiAgICAgICAgICAgICAgICBvdXQucHVzaCh7IGtleTogJ0gnLCBkYXRhOiBbY3hdIH0pO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICdWJzpcXG4gICAgICAgICAgICAgICAgb3V0LnB1c2goeyBrZXk6ICdWJywgZGF0YTogWy4uLmRhdGFdIH0pO1xcbiAgICAgICAgICAgICAgICBjeSA9IGRhdGFbMF07XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ3YnOlxcbiAgICAgICAgICAgICAgICBjeSArPSBkYXRhWzBdO1xcbiAgICAgICAgICAgICAgICBvdXQucHVzaCh7IGtleTogJ1YnLCBkYXRhOiBbY3ldIH0pO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICdTJzpcXG4gICAgICAgICAgICAgICAgb3V0LnB1c2goeyBrZXk6ICdTJywgZGF0YTogWy4uLmRhdGFdIH0pO1xcbiAgICAgICAgICAgICAgICBjeCA9IGRhdGFbMl07XFxuICAgICAgICAgICAgICAgIGN5ID0gZGF0YVszXTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSAncyc6IHtcXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3ZGF0YSA9IGRhdGEubWFwKChkLCBpKSA9PiAoaSAlIDIpID8gKGQgKyBjeSkgOiAoZCArIGN4KSk7XFxuICAgICAgICAgICAgICAgIG91dC5wdXNoKHsga2V5OiAnUycsIGRhdGE6IG5ld2RhdGEgfSk7XFxuICAgICAgICAgICAgICAgIGN4ID0gbmV3ZGF0YVsyXTtcXG4gICAgICAgICAgICAgICAgY3kgPSBuZXdkYXRhWzNdO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY2FzZSAnVCc6XFxuICAgICAgICAgICAgICAgIG91dC5wdXNoKHsga2V5OiAnVCcsIGRhdGE6IFsuLi5kYXRhXSB9KTtcXG4gICAgICAgICAgICAgICAgY3ggPSBkYXRhWzBdO1xcbiAgICAgICAgICAgICAgICBjeSA9IGRhdGFbMV07XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ3QnOlxcbiAgICAgICAgICAgICAgICBjeCArPSBkYXRhWzBdO1xcbiAgICAgICAgICAgICAgICBjeSArPSBkYXRhWzFdO1xcbiAgICAgICAgICAgICAgICBvdXQucHVzaCh7IGtleTogJ1QnLCBkYXRhOiBbY3gsIGN5XSB9KTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSAnWic6XFxuICAgICAgICAgICAgY2FzZSAneic6XFxuICAgICAgICAgICAgICAgIG91dC5wdXNoKHsga2V5OiAnWicsIGRhdGE6IFtdIH0pO1xcbiAgICAgICAgICAgICAgICBjeCA9IHN1Yng7XFxuICAgICAgICAgICAgICAgIGN5ID0gc3VieTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIG91dDtcXG59XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzQmhkR2d0WkdGMFlTMXdZWEp6WlhJdmJHbGlMMkZpYzI5c2RYUnBlbVV1YW5NdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096dEJRVUZCTzBGQlEwODdRVUZEVUR0QlFVTkJPMEZCUTBFN1FVRkRRU3hwUWtGQmFVSXNXVUZCV1R0QlFVTTNRanRCUVVOQk8wRkJRMEVzTWtKQlFUSkNMREpDUVVFeVFqdEJRVU4wUkR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTd3lRa0ZCTWtJc01FSkJRVEJDTzBGQlEzSkVPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzTWtKQlFUSkNMREpDUVVFeVFqdEJRVU4wUkR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzTWtKQlFUSkNMREJDUVVFd1FqdEJRVU55UkR0QlFVTkJPMEZCUTBFc01rSkJRVEpDTERKQ1FVRXlRanRCUVVOMFJEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc01rSkJRVEpDTEhsQ1FVRjVRanRCUVVOd1JEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc01rSkJRVEpDTERKQ1FVRXlRanRCUVVOMFJEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc01rSkJRVEpDTEhsQ1FVRjVRanRCUVVOd1JEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc01rSkJRVEpDTERKQ1FVRXlRanRCUVVOMFJEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3d5UWtGQk1rSXNkVVZCUVhWRk8wRkJRMnhITzBGQlEwRTdRVUZEUVN3eVFrRkJNa0lzTWtKQlFUSkNPMEZCUTNSRU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNNa0pCUVRKQ0xITkNRVUZ6UWp0QlFVTnFSRHRCUVVOQk8wRkJRMEVzTWtKQlFUSkNMREpDUVVFeVFqdEJRVU4wUkR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxESkNRVUV5UWl4elFrRkJjMEk3UVVGRGFrUTdRVUZEUVR0QlFVTkJMREpDUVVFeVFpd3lRa0ZCTWtJN1FVRkRkRVE3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMREpDUVVFeVFpeDVRa0ZCZVVJN1FVRkRjRVE3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMREpDUVVFeVFpd3lRa0ZCTWtJN1FVRkRkRVE3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc01rSkJRVEpDTERCQ1FVRXdRanRCUVVOeVJEdEJRVU5CTzBGQlEwRTdRVUZEUVN3eVFrRkJNa0lzYjBKQlFXOUNPMEZCUXk5RE8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl3WVhSb0xXUmhkR0V0Y0dGeWMyVnlMMnhwWWk5aFluTnZiSFYwYVhwbExtcHpQelF3TTJVaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeThnVkhKaGJuTnNZWFJsSUhKbGJHRjBhWFpsSUdOdmJXMWhibVJ6SUhSdklHRmljMjlzZFhSbElHTnZiVzFoYm1SelhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lXSnpiMngxZEdsNlpTaHpaV2R0Wlc1MGN5a2dlMXh1SUNBZ0lHeGxkQ0JqZUNBOUlEQXNJR041SUQwZ01EdGNiaUFnSUNCc1pYUWdjM1ZpZUNBOUlEQXNJSE4xWW5rZ1BTQXdPMXh1SUNBZ0lHTnZibk4wSUc5MWRDQTlJRnRkTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnZXlCclpYa3NJR1JoZEdFZ2ZTQnZaaUJ6WldkdFpXNTBjeWtnZTF4dUlDQWdJQ0FnSUNCemQybDBZMmdnS0d0bGVTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuVFNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IzVjBMbkIxYzJnb2V5QnJaWGs2SUNkTkp5d2daR0YwWVRvZ1d5NHVMbVJoZEdGZElIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRnRqZUN3Z1kzbGRJRDBnWkdGMFlUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmJjM1ZpZUN3Z2MzVmllVjBnUFNCa1lYUmhPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5iU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNnZ0t6MGdaR0YwWVZzd1hUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmplU0FyUFNCa1lYUmhXekZkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5MWRDNXdkWE5vS0hzZ2EyVjVPaUFuVFNjc0lHUmhkR0U2SUZ0amVDd2dZM2xkSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjFZbmdnUFNCamVEdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpkV0o1SUQwZ1kzazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZE1KenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2ZFhRdWNIVnphQ2g3SUd0bGVUb2dKMHduTENCa1lYUmhPaUJiTGk0dVpHRjBZVjBnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1cyTjRMQ0JqZVYwZ1BTQmtZWFJoTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuYkNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kzZ2dLejBnWkdGMFlWc3dYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqZVNBclBTQmtZWFJoV3pGZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOTFkQzV3ZFhOb0tIc2dhMlY1T2lBblRDY3NJR1JoZEdFNklGdGplQ3dnWTNsZElIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5ReWM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjNWMExuQjFjMmdvZXlCclpYazZJQ2RESnl3Z1pHRjBZVG9nV3k0dUxtUmhkR0ZkSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTjRJRDBnWkdGMFlWczBYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqZVNBOUlHUmhkR0ZiTlYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkakp6b2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHNWxkMlJoZEdFZ1BTQmtZWFJoTG0xaGNDZ29aQ3dnYVNrZ1BUNGdLR2tnSlNBeUtTQS9JQ2hrSUNzZ1kza3BJRG9nS0dRZ0t5QmplQ2twTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5MWRDNXdkWE5vS0hzZ2EyVjVPaUFuUXljc0lHUmhkR0U2SUc1bGQyUmhkR0VnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kzZ2dQU0J1Wlhka1lYUmhXelJkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdONUlEMGdibVYzWkdGMFlWczFYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oxRW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzkxZEM1d2RYTm9LSHNnYTJWNU9pQW5VU2NzSUdSaGRHRTZJRnN1TGk1a1lYUmhYU0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamVDQTlJR1JoZEdGYk1sMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM2tnUFNCa1lYUmhXek5kTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuY1NjNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdVpYZGtZWFJoSUQwZ1pHRjBZUzV0WVhBb0tHUXNJR2twSUQwK0lDaHBJQ1VnTWlrZ1B5QW9aQ0FySUdONUtTQTZJQ2hrSUNzZ1kzZ3BLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2ZFhRdWNIVnphQ2g3SUd0bGVUb2dKMUVuTENCa1lYUmhPaUJ1Wlhka1lYUmhJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdONElEMGdibVYzWkdGMFlWc3lYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqZVNBOUlHNWxkMlJoZEdGYk0xMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkQkp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZkWFF1Y0hWemFDaDdJR3RsZVRvZ0owRW5MQ0JrWVhSaE9pQmJMaTR1WkdGMFlWMGdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNnZ1BTQmtZWFJoV3pWZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTjVJRDBnWkdGMFlWczJYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMkVuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdONElDczlJR1JoZEdGYk5WMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM2tnS3owZ1pHRjBZVnMyWFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmRYUXVjSFZ6YUNoN0lHdGxlVG9nSjBFbkxDQmtZWFJoT2lCYlpHRjBZVnN3WFN3Z1pHRjBZVnN4WFN3Z1pHRjBZVnN5WFN3Z1pHRjBZVnN6WFN3Z1pHRjBZVnMwWFN3Z1kzZ3NJR041WFNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0owZ25PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzkxZEM1d2RYTm9LSHNnYTJWNU9pQW5TQ2NzSUdSaGRHRTZJRnN1TGk1a1lYUmhYU0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamVDQTlJR1JoZEdGYk1GMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZG9KenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqZUNBclBTQmtZWFJoV3pCZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOTFkQzV3ZFhOb0tIc2dhMlY1T2lBblNDY3NJR1JoZEdFNklGdGplRjBnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkV0p6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZkWFF1Y0hWemFDaDdJR3RsZVRvZ0oxWW5MQ0JrWVhSaE9pQmJMaTR1WkdGMFlWMGdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNrZ1BTQmtZWFJoV3pCZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmRpYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM2tnS3owZ1pHRjBZVnN3WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmRYUXVjSFZ6YUNoN0lHdGxlVG9nSjFZbkxDQmtZWFJoT2lCYlkzbGRJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuVXljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IzVjBMbkIxYzJnb2V5QnJaWGs2SUNkVEp5d2daR0YwWVRvZ1d5NHVMbVJoZEdGZElIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR040SUQwZ1pHRjBZVnN5WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamVTQTlJR1JoZEdGYk0xMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHpKem9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzVsZDJSaGRHRWdQU0JrWVhSaExtMWhjQ2dvWkN3Z2FTa2dQVDRnS0drZ0pTQXlLU0EvSUNoa0lDc2dZM2twSURvZ0tHUWdLeUJqZUNrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOTFkQzV3ZFhOb0tIc2dhMlY1T2lBblV5Y3NJR1JoZEdFNklHNWxkMlJoZEdFZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM2dnUFNCdVpYZGtZWFJoV3pKZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTjVJRDBnYm1WM1pHRjBZVnN6WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMVFuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5MWRDNXdkWE5vS0hzZ2EyVjVPaUFuVkNjc0lHUmhkR0U2SUZzdUxpNWtZWFJoWFNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmplQ0E5SUdSaGRHRmJNRjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNrZ1BTQmtZWFJoV3pGZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmRDYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM2dnS3owZ1pHRjBZVnN3WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamVTQXJQU0JrWVhSaFd6RmRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzkxZEM1d2RYTm9LSHNnYTJWNU9pQW5WQ2NzSUdSaGRHRTZJRnRqZUN3Z1kzbGRJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuV2ljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZDZKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2ZFhRdWNIVnphQ2g3SUd0bGVUb2dKMW9uTENCa1lYUmhPaUJiWFNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmplQ0E5SUhOMVluZzdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM2tnUFNCemRXSjVPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ2ZFhRN1hHNTlYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcGF0aC1kYXRhLXBhcnNlci9saWIvYWJzb2x1dGl6ZS5qc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BhdGgtZGF0YS1wYXJzZXIvbGliL2luZGV4LmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi8uLi9ub2RlX21vZHVsZXMvcGF0aC1kYXRhLXBhcnNlci9saWIvaW5kZXguanMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJwYXJzZVBhdGhcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfcGFyc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucGFyc2VQYXRoKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJzZXJpYWxpemVcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfcGFyc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uc2VyaWFsaXplKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhYnNvbHV0aXplXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2Fic29sdXRpemVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hYnNvbHV0aXplKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJub3JtYWxpemVcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfbm9ybWFsaXplX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ubm9ybWFsaXplKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFyc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3BhcnNlci5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BhdGgtZGF0YS1wYXJzZXIvbGliL3BhcnNlci5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYWJzb2x1dGl6ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9hYnNvbHV0aXplLmpzICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcGF0aC1kYXRhLXBhcnNlci9saWIvYWJzb2x1dGl6ZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbm9ybWFsaXplX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL25vcm1hbGl6ZS5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BhdGgtZGF0YS1wYXJzZXIvbGliL25vcm1hbGl6ZS5qc1xcXCIpO1xcblxcblxcblxcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2TGk0dmJtOWtaVjl0YjJSMWJHVnpMM0JoZEdndFpHRjBZUzF3WVhKelpYSXZiR2xpTDJsdVpHVjRMbXB6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3UVVGQmJVUTdRVUZEVGp0QlFVTkdJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl3WVhSb0xXUmhkR0V0Y0dGeWMyVnlMMnhwWWk5cGJtUmxlQzVxY3o4d09HTTBJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1WNGNHOXlkQ0I3SUhCaGNuTmxVR0YwYUN3Z2MyVnlhV0ZzYVhwbElIMGdabkp2YlNBbkxpOXdZWEp6WlhJdWFuTW5PMXh1Wlhod2IzSjBJSHNnWVdKemIyeDFkR2w2WlNCOUlHWnliMjBnSnk0dllXSnpiMngxZEdsNlpTNXFjeWM3WEc1bGVIQnZjblFnZXlCdWIzSnRZV3hwZW1VZ2ZTQm1jbTl0SUNjdUwyNXZjbTFoYkdsNlpTNXFjeWM3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BhdGgtZGF0YS1wYXJzZXIvbGliL2luZGV4LmpzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcGF0aC1kYXRhLXBhcnNlci9saWIvbm9ybWFsaXplLmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BhdGgtZGF0YS1wYXJzZXIvbGliL25vcm1hbGl6ZS5qcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJub3JtYWxpemVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBub3JtYWxpemUpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLy8gTm9ybWFsaXplIHBhdGggdG8gaW5jbHVkZSBvbmx5IE0sIEwsIEMsIGFuZCBaIGNvbW1hbmRzXFxuZnVuY3Rpb24gbm9ybWFsaXplKHNlZ21lbnRzKSB7XFxuICAgIGNvbnN0IG91dCA9IFtdO1xcbiAgICBsZXQgbGFzdFR5cGUgPSAnJztcXG4gICAgbGV0IGN4ID0gMCwgY3kgPSAwO1xcbiAgICBsZXQgc3VieCA9IDAsIHN1YnkgPSAwO1xcbiAgICBsZXQgbGN4ID0gMCwgbGN5ID0gMDtcXG4gICAgZm9yIChjb25zdCB7IGtleSwgZGF0YSB9IG9mIHNlZ21lbnRzKSB7XFxuICAgICAgICBzd2l0Y2ggKGtleSkge1xcbiAgICAgICAgICAgIGNhc2UgJ00nOlxcbiAgICAgICAgICAgICAgICBvdXQucHVzaCh7IGtleTogJ00nLCBkYXRhOiBbLi4uZGF0YV0gfSk7XFxuICAgICAgICAgICAgICAgIFtjeCwgY3ldID0gZGF0YTtcXG4gICAgICAgICAgICAgICAgW3N1YngsIHN1YnldID0gZGF0YTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSAnQyc6XFxuICAgICAgICAgICAgICAgIG91dC5wdXNoKHsga2V5OiAnQycsIGRhdGE6IFsuLi5kYXRhXSB9KTtcXG4gICAgICAgICAgICAgICAgY3ggPSBkYXRhWzRdO1xcbiAgICAgICAgICAgICAgICBjeSA9IGRhdGFbNV07XFxuICAgICAgICAgICAgICAgIGxjeCA9IGRhdGFbMl07XFxuICAgICAgICAgICAgICAgIGxjeSA9IGRhdGFbM107XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ0wnOlxcbiAgICAgICAgICAgICAgICBvdXQucHVzaCh7IGtleTogJ0wnLCBkYXRhOiBbLi4uZGF0YV0gfSk7XFxuICAgICAgICAgICAgICAgIFtjeCwgY3ldID0gZGF0YTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSAnSCc6XFxuICAgICAgICAgICAgICAgIGN4ID0gZGF0YVswXTtcXG4gICAgICAgICAgICAgICAgb3V0LnB1c2goeyBrZXk6ICdMJywgZGF0YTogW2N4LCBjeV0gfSk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ1YnOlxcbiAgICAgICAgICAgICAgICBjeSA9IGRhdGFbMF07XFxuICAgICAgICAgICAgICAgIG91dC5wdXNoKHsga2V5OiAnTCcsIGRhdGE6IFtjeCwgY3ldIH0pO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICdTJzoge1xcbiAgICAgICAgICAgICAgICBsZXQgY3gxID0gMCwgY3kxID0gMDtcXG4gICAgICAgICAgICAgICAgaWYgKGxhc3RUeXBlID09PSAnQycgfHwgbGFzdFR5cGUgPT09ICdTJykge1xcbiAgICAgICAgICAgICAgICAgICAgY3gxID0gY3ggKyAoY3ggLSBsY3gpO1xcbiAgICAgICAgICAgICAgICAgICAgY3kxID0gY3kgKyAoY3kgLSBsY3kpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgY3gxID0gY3g7XFxuICAgICAgICAgICAgICAgICAgICBjeTEgPSBjeTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBvdXQucHVzaCh7IGtleTogJ0MnLCBkYXRhOiBbY3gxLCBjeTEsIC4uLmRhdGFdIH0pO1xcbiAgICAgICAgICAgICAgICBsY3ggPSBkYXRhWzBdO1xcbiAgICAgICAgICAgICAgICBsY3kgPSBkYXRhWzFdO1xcbiAgICAgICAgICAgICAgICBjeCA9IGRhdGFbMl07XFxuICAgICAgICAgICAgICAgIGN5ID0gZGF0YVszXTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNhc2UgJ1QnOiB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IFt4LCB5XSA9IGRhdGE7XFxuICAgICAgICAgICAgICAgIGxldCB4MSA9IDAsIHkxID0gMDtcXG4gICAgICAgICAgICAgICAgaWYgKGxhc3RUeXBlID09PSAnUScgfHwgbGFzdFR5cGUgPT09ICdUJykge1xcbiAgICAgICAgICAgICAgICAgICAgeDEgPSBjeCArIChjeCAtIGxjeCk7XFxuICAgICAgICAgICAgICAgICAgICB5MSA9IGN5ICsgKGN5IC0gbGN5KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHgxID0gY3g7XFxuICAgICAgICAgICAgICAgICAgICB5MSA9IGN5O1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGNvbnN0IGN4MSA9IGN4ICsgMiAqICh4MSAtIGN4KSAvIDM7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGN5MSA9IGN5ICsgMiAqICh5MSAtIGN5KSAvIDM7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGN4MiA9IHggKyAyICogKHgxIC0geCkgLyAzO1xcbiAgICAgICAgICAgICAgICBjb25zdCBjeTIgPSB5ICsgMiAqICh5MSAtIHkpIC8gMztcXG4gICAgICAgICAgICAgICAgb3V0LnB1c2goeyBrZXk6ICdDJywgZGF0YTogW2N4MSwgY3kxLCBjeDIsIGN5MiwgeCwgeV0gfSk7XFxuICAgICAgICAgICAgICAgIGxjeCA9IHgxO1xcbiAgICAgICAgICAgICAgICBsY3kgPSB5MTtcXG4gICAgICAgICAgICAgICAgY3ggPSB4O1xcbiAgICAgICAgICAgICAgICBjeSA9IHk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjYXNlICdRJzoge1xcbiAgICAgICAgICAgICAgICBjb25zdCBbeDEsIHkxLCB4LCB5XSA9IGRhdGE7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGN4MSA9IGN4ICsgMiAqICh4MSAtIGN4KSAvIDM7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGN5MSA9IGN5ICsgMiAqICh5MSAtIGN5KSAvIDM7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGN4MiA9IHggKyAyICogKHgxIC0geCkgLyAzO1xcbiAgICAgICAgICAgICAgICBjb25zdCBjeTIgPSB5ICsgMiAqICh5MSAtIHkpIC8gMztcXG4gICAgICAgICAgICAgICAgb3V0LnB1c2goeyBrZXk6ICdDJywgZGF0YTogW2N4MSwgY3kxLCBjeDIsIGN5MiwgeCwgeV0gfSk7XFxuICAgICAgICAgICAgICAgIGxjeCA9IHgxO1xcbiAgICAgICAgICAgICAgICBsY3kgPSB5MTtcXG4gICAgICAgICAgICAgICAgY3ggPSB4O1xcbiAgICAgICAgICAgICAgICBjeSA9IHk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjYXNlICdBJzoge1xcbiAgICAgICAgICAgICAgICBjb25zdCByMSA9IE1hdGguYWJzKGRhdGFbMF0pO1xcbiAgICAgICAgICAgICAgICBjb25zdCByMiA9IE1hdGguYWJzKGRhdGFbMV0pO1xcbiAgICAgICAgICAgICAgICBjb25zdCBhbmdsZSA9IGRhdGFbMl07XFxuICAgICAgICAgICAgICAgIGNvbnN0IGxhcmdlQXJjRmxhZyA9IGRhdGFbM107XFxuICAgICAgICAgICAgICAgIGNvbnN0IHN3ZWVwRmxhZyA9IGRhdGFbNF07XFxuICAgICAgICAgICAgICAgIGNvbnN0IHggPSBkYXRhWzVdO1xcbiAgICAgICAgICAgICAgICBjb25zdCB5ID0gZGF0YVs2XTtcXG4gICAgICAgICAgICAgICAgaWYgKHIxID09PSAwIHx8IHIyID09PSAwKSB7XFxuICAgICAgICAgICAgICAgICAgICBvdXQucHVzaCh7IGtleTogJ0MnLCBkYXRhOiBbY3gsIGN5LCB4LCB5LCB4LCB5XSB9KTtcXG4gICAgICAgICAgICAgICAgICAgIGN4ID0geDtcXG4gICAgICAgICAgICAgICAgICAgIGN5ID0geTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChjeCAhPT0geCB8fCBjeSAhPT0geSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnZlcyA9IGFyY1RvQ3ViaWNDdXJ2ZXMoY3gsIGN5LCB4LCB5LCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VydmVzLmZvckVhY2goZnVuY3Rpb24gKGN1cnZlKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wdXNoKHsga2V5OiAnQycsIGRhdGE6IGN1cnZlIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGN4ID0geDtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjeSA9IHk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNhc2UgJ1onOlxcbiAgICAgICAgICAgICAgICBvdXQucHVzaCh7IGtleTogJ1onLCBkYXRhOiBbXSB9KTtcXG4gICAgICAgICAgICAgICAgY3ggPSBzdWJ4O1xcbiAgICAgICAgICAgICAgICBjeSA9IHN1Ynk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfVxcbiAgICAgICAgbGFzdFR5cGUgPSBrZXk7XFxuICAgIH1cXG4gICAgcmV0dXJuIG91dDtcXG59XFxuZnVuY3Rpb24gZGVnVG9SYWQoZGVncmVlcykge1xcbiAgICByZXR1cm4gKE1hdGguUEkgKiBkZWdyZWVzKSAvIDE4MDtcXG59XFxuZnVuY3Rpb24gcm90YXRlKHgsIHksIGFuZ2xlUmFkKSB7XFxuICAgIGNvbnN0IFggPSB4ICogTWF0aC5jb3MoYW5nbGVSYWQpIC0geSAqIE1hdGguc2luKGFuZ2xlUmFkKTtcXG4gICAgY29uc3QgWSA9IHggKiBNYXRoLnNpbihhbmdsZVJhZCkgKyB5ICogTWF0aC5jb3MoYW5nbGVSYWQpO1xcbiAgICByZXR1cm4gW1gsIFldO1xcbn1cXG5mdW5jdGlvbiBhcmNUb0N1YmljQ3VydmVzKHgxLCB5MSwgeDIsIHkyLCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZywgcmVjdXJzaXZlKSB7XFxuICAgIGNvbnN0IGFuZ2xlUmFkID0gZGVnVG9SYWQoYW5nbGUpO1xcbiAgICBsZXQgcGFyYW1zID0gW107XFxuICAgIGxldCBmMSA9IDAsIGYyID0gMCwgY3ggPSAwLCBjeSA9IDA7XFxuICAgIGlmIChyZWN1cnNpdmUpIHtcXG4gICAgICAgIFtmMSwgZjIsIGN4LCBjeV0gPSByZWN1cnNpdmU7XFxuICAgIH1cXG4gICAgZWxzZSB7XFxuICAgICAgICBbeDEsIHkxXSA9IHJvdGF0ZSh4MSwgeTEsIC1hbmdsZVJhZCk7XFxuICAgICAgICBbeDIsIHkyXSA9IHJvdGF0ZSh4MiwgeTIsIC1hbmdsZVJhZCk7XFxuICAgICAgICBjb25zdCB4ID0gKHgxIC0geDIpIC8gMjtcXG4gICAgICAgIGNvbnN0IHkgPSAoeTEgLSB5MikgLyAyO1xcbiAgICAgICAgbGV0IGggPSAoeCAqIHgpIC8gKHIxICogcjEpICsgKHkgKiB5KSAvIChyMiAqIHIyKTtcXG4gICAgICAgIGlmIChoID4gMSkge1xcbiAgICAgICAgICAgIGggPSBNYXRoLnNxcnQoaCk7XFxuICAgICAgICAgICAgcjEgPSBoICogcjE7XFxuICAgICAgICAgICAgcjIgPSBoICogcjI7XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBzaWduID0gKGxhcmdlQXJjRmxhZyA9PT0gc3dlZXBGbGFnKSA/IC0xIDogMTtcXG4gICAgICAgIGNvbnN0IHIxUG93ID0gcjEgKiByMTtcXG4gICAgICAgIGNvbnN0IHIyUG93ID0gcjIgKiByMjtcXG4gICAgICAgIGNvbnN0IGxlZnQgPSByMVBvdyAqIHIyUG93IC0gcjFQb3cgKiB5ICogeSAtIHIyUG93ICogeCAqIHg7XFxuICAgICAgICBjb25zdCByaWdodCA9IHIxUG93ICogeSAqIHkgKyByMlBvdyAqIHggKiB4O1xcbiAgICAgICAgY29uc3QgayA9IHNpZ24gKiBNYXRoLnNxcnQoTWF0aC5hYnMobGVmdCAvIHJpZ2h0KSk7XFxuICAgICAgICBjeCA9IGsgKiByMSAqIHkgLyByMiArICh4MSArIHgyKSAvIDI7XFxuICAgICAgICBjeSA9IGsgKiAtcjIgKiB4IC8gcjEgKyAoeTEgKyB5MikgLyAyO1xcbiAgICAgICAgZjEgPSBNYXRoLmFzaW4ocGFyc2VGbG9hdCgoKHkxIC0gY3kpIC8gcjIpLnRvRml4ZWQoOSkpKTtcXG4gICAgICAgIGYyID0gTWF0aC5hc2luKHBhcnNlRmxvYXQoKCh5MiAtIGN5KSAvIHIyKS50b0ZpeGVkKDkpKSk7XFxuICAgICAgICBpZiAoeDEgPCBjeCkge1xcbiAgICAgICAgICAgIGYxID0gTWF0aC5QSSAtIGYxO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKHgyIDwgY3gpIHtcXG4gICAgICAgICAgICBmMiA9IE1hdGguUEkgLSBmMjtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChmMSA8IDApIHtcXG4gICAgICAgICAgICBmMSA9IE1hdGguUEkgKiAyICsgZjE7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoZjIgPCAwKSB7XFxuICAgICAgICAgICAgZjIgPSBNYXRoLlBJICogMiArIGYyO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKHN3ZWVwRmxhZyAmJiBmMSA+IGYyKSB7XFxuICAgICAgICAgICAgZjEgPSBmMSAtIE1hdGguUEkgKiAyO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKCFzd2VlcEZsYWcgJiYgZjIgPiBmMSkge1xcbiAgICAgICAgICAgIGYyID0gZjIgLSBNYXRoLlBJICogMjtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBsZXQgZGYgPSBmMiAtIGYxO1xcbiAgICBpZiAoTWF0aC5hYnMoZGYpID4gKE1hdGguUEkgKiAxMjAgLyAxODApKSB7XFxuICAgICAgICBjb25zdCBmMm9sZCA9IGYyO1xcbiAgICAgICAgY29uc3QgeDJvbGQgPSB4MjtcXG4gICAgICAgIGNvbnN0IHkyb2xkID0geTI7XFxuICAgICAgICBpZiAoc3dlZXBGbGFnICYmIGYyID4gZjEpIHtcXG4gICAgICAgICAgICBmMiA9IGYxICsgKE1hdGguUEkgKiAxMjAgLyAxODApICogKDEpO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgZjIgPSBmMSArIChNYXRoLlBJICogMTIwIC8gMTgwKSAqICgtMSk7XFxuICAgICAgICB9XFxuICAgICAgICB4MiA9IGN4ICsgcjEgKiBNYXRoLmNvcyhmMik7XFxuICAgICAgICB5MiA9IGN5ICsgcjIgKiBNYXRoLnNpbihmMik7XFxuICAgICAgICBwYXJhbXMgPSBhcmNUb0N1YmljQ3VydmVzKHgyLCB5MiwgeDJvbGQsIHkyb2xkLCByMSwgcjIsIGFuZ2xlLCAwLCBzd2VlcEZsYWcsIFtmMiwgZjJvbGQsIGN4LCBjeV0pO1xcbiAgICB9XFxuICAgIGRmID0gZjIgLSBmMTtcXG4gICAgY29uc3QgYzEgPSBNYXRoLmNvcyhmMSk7XFxuICAgIGNvbnN0IHMxID0gTWF0aC5zaW4oZjEpO1xcbiAgICBjb25zdCBjMiA9IE1hdGguY29zKGYyKTtcXG4gICAgY29uc3QgczIgPSBNYXRoLnNpbihmMik7XFxuICAgIGNvbnN0IHQgPSBNYXRoLnRhbihkZiAvIDQpO1xcbiAgICBjb25zdCBoeCA9IDQgLyAzICogcjEgKiB0O1xcbiAgICBjb25zdCBoeSA9IDQgLyAzICogcjIgKiB0O1xcbiAgICBjb25zdCBtMSA9IFt4MSwgeTFdO1xcbiAgICBjb25zdCBtMiA9IFt4MSArIGh4ICogczEsIHkxIC0gaHkgKiBjMV07XFxuICAgIGNvbnN0IG0zID0gW3gyICsgaHggKiBzMiwgeTIgLSBoeSAqIGMyXTtcXG4gICAgY29uc3QgbTQgPSBbeDIsIHkyXTtcXG4gICAgbTJbMF0gPSAyICogbTFbMF0gLSBtMlswXTtcXG4gICAgbTJbMV0gPSAyICogbTFbMV0gLSBtMlsxXTtcXG4gICAgaWYgKHJlY3Vyc2l2ZSkge1xcbiAgICAgICAgcmV0dXJuIFttMiwgbTMsIG00XS5jb25jYXQocGFyYW1zKTtcXG4gICAgfVxcbiAgICBlbHNlIHtcXG4gICAgICAgIHBhcmFtcyA9IFttMiwgbTMsIG00XS5jb25jYXQocGFyYW1zKTtcXG4gICAgICAgIGNvbnN0IGN1cnZlcyA9IFtdO1xcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJhbXMubGVuZ3RoOyBpICs9IDMpIHtcXG4gICAgICAgICAgICBjb25zdCByMSA9IHJvdGF0ZShwYXJhbXNbaV1bMF0sIHBhcmFtc1tpXVsxXSwgYW5nbGVSYWQpO1xcbiAgICAgICAgICAgIGNvbnN0IHIyID0gcm90YXRlKHBhcmFtc1tpICsgMV1bMF0sIHBhcmFtc1tpICsgMV1bMV0sIGFuZ2xlUmFkKTtcXG4gICAgICAgICAgICBjb25zdCByMyA9IHJvdGF0ZShwYXJhbXNbaSArIDJdWzBdLCBwYXJhbXNbaSArIDJdWzFdLCBhbmdsZVJhZCk7XFxuICAgICAgICAgICAgY3VydmVzLnB1c2goW3IxWzBdLCByMVsxXSwgcjJbMF0sIHIyWzFdLCByM1swXSwgcjNbMV1dKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiBjdXJ2ZXM7XFxuICAgIH1cXG59XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzQmhkR2d0WkdGMFlTMXdZWEp6WlhJdmJHbGlMMjV2Y20xaGJHbDZaUzVxY3k1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN08wRkJRVUU3UVVGRFR6dEJRVU5RTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hwUWtGQmFVSXNXVUZCV1R0QlFVTTNRanRCUVVOQk8wRkJRMEVzTWtKQlFUSkNMREpDUVVFeVFqdEJRVU4wUkR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxESkNRVUV5UWl3eVFrRkJNa0k3UVVGRGRFUTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzTWtKQlFUSkNMREpDUVVFeVFqdEJRVU4wUkR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxESkNRVUV5UWl3d1FrRkJNRUk3UVVGRGNrUTdRVUZEUVR0QlFVTkJPMEZCUTBFc01rSkJRVEpDTERCQ1FVRXdRanRCUVVOeVJEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNNa0pCUVRKQ0xIRkRRVUZ4UXp0QlFVTm9SVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTd3lRa0ZCTWtJc05FTkJRVFJETzBGQlEzWkZPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxESkNRVUV5UWl3MFEwRkJORU03UVVGRGRrVTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzSzBKQlFTdENMSE5EUVVGelF6dEJRVU55UlR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEhWRFFVRjFReXgxUWtGQmRVSTdRVUZET1VRc2VVSkJRWGxDTzBGQlEzcENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNNa0pCUVRKQ0xHOUNRVUZ2UWp0QlFVTXZRenRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc2QwSkJRWGRDTEcxQ1FVRnRRanRCUVVNelF6dEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQklpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OXdZWFJvTFdSaGRHRXRjR0Z5YzJWeUwyeHBZaTl1YjNKdFlXeHBlbVV1YW5NL01qSmtZaUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdkx5Qk9iM0p0WVd4cGVtVWdjR0YwYUNCMGJ5QnBibU5zZFdSbElHOXViSGtnVFN3Z1RDd2dReXdnWVc1a0lGb2dZMjl0YldGdVpITmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnViM0p0WVd4cGVtVW9jMlZuYldWdWRITXBJSHRjYmlBZ0lDQmpiMjV6ZENCdmRYUWdQU0JiWFR0Y2JpQWdJQ0JzWlhRZ2JHRnpkRlI1Y0dVZ1BTQW5KenRjYmlBZ0lDQnNaWFFnWTNnZ1BTQXdMQ0JqZVNBOUlEQTdYRzRnSUNBZ2JHVjBJSE4xWW5nZ1BTQXdMQ0J6ZFdKNUlEMGdNRHRjYmlBZ0lDQnNaWFFnYkdONElEMGdNQ3dnYkdONUlEMGdNRHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJSHNnYTJWNUxDQmtZWFJoSUgwZ2IyWWdjMlZuYldWdWRITXBJSHRjYmlBZ0lDQWdJQ0FnYzNkcGRHTm9JQ2hyWlhrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMDBuT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5MWRDNXdkWE5vS0hzZ2EyVjVPaUFuVFNjc0lHUmhkR0U2SUZzdUxpNWtZWFJoWFNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmJZM2dzSUdONVhTQTlJR1JoZEdFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1czTjFZbmdzSUhOMVlubGRJRDBnWkdGMFlUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0owTW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzkxZEM1d2RYTm9LSHNnYTJWNU9pQW5ReWNzSUdSaGRHRTZJRnN1TGk1a1lYUmhYU0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamVDQTlJR1JoZEdGYk5GMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM2tnUFNCa1lYUmhXelZkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4amVDQTlJR1JoZEdGYk1sMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR041SUQwZ1pHRjBZVnN6WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjB3bk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOTFkQzV3ZFhOb0tIc2dhMlY1T2lBblRDY3NJR1JoZEdFNklGc3VMaTVrWVhSaFhTQjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JiWTNnc0lHTjVYU0E5SUdSaGRHRTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZElKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqZUNBOUlHUmhkR0ZiTUYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IzVjBMbkIxYzJnb2V5QnJaWGs2SUNkTUp5d2daR0YwWVRvZ1cyTjRMQ0JqZVYwZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZFdKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqZVNBOUlHUmhkR0ZiTUYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IzVjBMbkIxYzJnb2V5QnJaWGs2SUNkTUp5d2daR0YwWVRvZ1cyTjRMQ0JqZVYwZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZFRKem9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4bGRDQmplREVnUFNBd0xDQmplVEVnUFNBd08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hzWVhOMFZIbHdaU0E5UFQwZ0owTW5JSHg4SUd4aGMzUlVlWEJsSUQwOVBTQW5VeWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM2d4SUQwZ1kzZ2dLeUFvWTNnZ0xTQnNZM2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmplVEVnUFNCamVTQXJJQ2hqZVNBdElHeGplU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamVERWdQU0JqZUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM2t4SUQwZ1kzazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzkxZEM1d2RYTm9LSHNnYTJWNU9pQW5ReWNzSUdSaGRHRTZJRnRqZURFc0lHTjVNU3dnTGk0dVpHRjBZVjBnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHTjRJRDBnWkdGMFlWc3dYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWTNrZ1BTQmtZWFJoV3pGZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTjRJRDBnWkdGMFlWc3lYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqZVNBOUlHUmhkR0ZiTTEwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RVSnpvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUZ0NExDQjVYU0E5SUdSaGRHRTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR1YwSUhneElEMGdNQ3dnZVRFZ1BTQXdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoc1lYTjBWSGx3WlNBOVBUMGdKMUVuSUh4OElHeGhjM1JVZVhCbElEMDlQU0FuVkNjcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZURFZ1BTQmplQ0FySUNoamVDQXRJR3hqZUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGt4SUQwZ1kza2dLeUFvWTNrZ0xTQnNZM2twTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2VERWdQU0JqZUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlVEVnUFNCamVUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1kzZ3hJRDBnWTNnZ0t5QXlJQ29nS0hneElDMGdZM2dwSUM4Z016dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCamVURWdQU0JqZVNBcklESWdLaUFvZVRFZ0xTQmplU2tnTHlBek8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdONE1pQTlJSGdnS3lBeUlDb2dLSGd4SUMwZ2VDa2dMeUF6TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR041TWlBOUlIa2dLeUF5SUNvZ0tIa3hJQzBnZVNrZ0x5QXpPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzkxZEM1d2RYTm9LSHNnYTJWNU9pQW5ReWNzSUdSaGRHRTZJRnRqZURFc0lHTjVNU3dnWTNneUxDQmplVElzSUhnc0lIbGRJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4amVDQTlJSGd4TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4amVTQTlJSGt4TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdONElEMGdlRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqZVNBOUlIazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkUkp6b2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElGdDRNU3dnZVRFc0lIZ3NJSGxkSUQwZ1pHRjBZVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmplREVnUFNCamVDQXJJRElnS2lBb2VERWdMU0JqZUNrZ0x5QXpPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHTjVNU0E5SUdONUlDc2dNaUFxSUNoNU1TQXRJR041S1NBdklETTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1kzZ3lJRDBnZUNBcklESWdLaUFvZURFZ0xTQjRLU0F2SURNN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWTNreUlEMGdlU0FySURJZ0tpQW9lVEVnTFNCNUtTQXZJRE03WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjNWMExuQjFjMmdvZXlCclpYazZJQ2RESnl3Z1pHRjBZVG9nVzJONE1Td2dZM2t4TENCamVESXNJR041TWl3Z2VDd2dlVjBnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHTjRJRDBnZURFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHTjVJRDBnZVRFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kzZ2dQU0I0TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdONUlEMGdlVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0owRW5PaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjakVnUFNCTllYUm9MbUZpY3loa1lYUmhXekJkS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J5TWlBOUlFMWhkR2d1WVdKektHUmhkR0ZiTVYwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdGdVoyeGxJRDBnWkdGMFlWc3lYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnNZWEpuWlVGeVkwWnNZV2NnUFNCa1lYUmhXek5kTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4zWldWd1JteGhaeUE5SUdSaGRHRmJORjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdlQ0E5SUdSaGRHRmJOVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdlU0E5SUdSaGRHRmJObDA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tISXhJRDA5UFNBd0lIeDhJSEl5SUQwOVBTQXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOTFkQzV3ZFhOb0tIc2dhMlY1T2lBblF5Y3NJR1JoZEdFNklGdGplQ3dnWTNrc0lIZ3NJSGtzSUhnc0lIbGRJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmplQ0E5SUhnN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR041SUQwZ2VUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoamVDQWhQVDBnZUNCOGZDQmplU0FoUFQwZ2VTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1kzVnlkbVZ6SUQwZ1lYSmpWRzlEZFdKcFkwTjFjblpsY3loamVDd2dZM2tzSUhnc0lIa3NJSEl4TENCeU1pd2dZVzVuYkdVc0lHeGhjbWRsUVhKalJteGhaeXdnYzNkbFpYQkdiR0ZuS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOMWNuWmxjeTVtYjNKRllXTm9LR1oxYm1OMGFXOXVJQ2hqZFhKMlpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5MWRDNXdkWE5vS0hzZ2EyVjVPaUFuUXljc0lHUmhkR0U2SUdOMWNuWmxJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamVDQTlJSGc3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqZVNBOUlIazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RhSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmRYUXVjSFZ6YUNoN0lHdGxlVG9nSjFvbkxDQmtZWFJoT2lCYlhTQjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqZUNBOUlITjFZbmc3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNrZ1BTQnpkV0o1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUd4aGMzUlVlWEJsSUQwZ2EyVjVPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnYjNWME8xeHVmVnh1Wm5WdVkzUnBiMjRnWkdWblZHOVNZV1FvWkdWbmNtVmxjeWtnZTF4dUlDQWdJSEpsZEhWeWJpQW9UV0YwYUM1UVNTQXFJR1JsWjNKbFpYTXBJQzhnTVRnd08xeHVmVnh1Wm5WdVkzUnBiMjRnY205MFlYUmxLSGdzSUhrc0lHRnVaMnhsVW1Ga0tTQjdYRzRnSUNBZ1kyOXVjM1FnV0NBOUlIZ2dLaUJOWVhSb0xtTnZjeWhoYm1kc1pWSmhaQ2tnTFNCNUlDb2dUV0YwYUM1emFXNG9ZVzVuYkdWU1lXUXBPMXh1SUNBZ0lHTnZibk4wSUZrZ1BTQjRJQ29nVFdGMGFDNXphVzRvWVc1bmJHVlNZV1FwSUNzZ2VTQXFJRTFoZEdndVkyOXpLR0Z1WjJ4bFVtRmtLVHRjYmlBZ0lDQnlaWFIxY200Z1cxZ3NJRmxkTzF4dWZWeHVablZ1WTNScGIyNGdZWEpqVkc5RGRXSnBZME4xY25abGN5aDRNU3dnZVRFc0lIZ3lMQ0I1TWl3Z2NqRXNJSEl5TENCaGJtZHNaU3dnYkdGeVoyVkJjbU5HYkdGbkxDQnpkMlZsY0Vac1lXY3NJSEpsWTNWeWMybDJaU2tnZTF4dUlDQWdJR052Ym5OMElHRnVaMnhsVW1Ga0lEMGdaR1ZuVkc5U1lXUW9ZVzVuYkdVcE8xeHVJQ0FnSUd4bGRDQndZWEpoYlhNZ1BTQmJYVHRjYmlBZ0lDQnNaWFFnWmpFZ1BTQXdMQ0JtTWlBOUlEQXNJR040SUQwZ01Dd2dZM2tnUFNBd08xeHVJQ0FnSUdsbUlDaHlaV04xY25OcGRtVXBJSHRjYmlBZ0lDQWdJQ0FnVzJZeExDQm1NaXdnWTNnc0lHTjVYU0E5SUhKbFkzVnljMmwyWlR0Y2JpQWdJQ0I5WEc0Z0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lGdDRNU3dnZVRGZElEMGdjbTkwWVhSbEtIZ3hMQ0I1TVN3Z0xXRnVaMnhsVW1Ga0tUdGNiaUFnSUNBZ0lDQWdXM2d5TENCNU1sMGdQU0J5YjNSaGRHVW9lRElzSUhreUxDQXRZVzVuYkdWU1lXUXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjRJRDBnS0hneElDMGdlRElwSUM4Z01qdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2VTQTlJQ2g1TVNBdElIa3lLU0F2SURJN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JvSUQwZ0tIZ2dLaUI0S1NBdklDaHlNU0FxSUhJeEtTQXJJQ2g1SUNvZ2VTa2dMeUFvY2pJZ0tpQnlNaWs3WEc0Z0lDQWdJQ0FnSUdsbUlDaG9JRDRnTVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYUNBOUlFMWhkR2d1YzNGeWRDaG9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISXhJRDBnYUNBcUlISXhPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NqSWdQU0JvSUNvZ2NqSTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjMmxuYmlBOUlDaHNZWEpuWlVGeVkwWnNZV2NnUFQwOUlITjNaV1Z3Um14aFp5a2dQeUF0TVNBNklERTdYRzRnSUNBZ0lDQWdJR052Ym5OMElISXhVRzkzSUQwZ2NqRWdLaUJ5TVR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY2pKUWIzY2dQU0J5TWlBcUlISXlPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnNaV1owSUQwZ2NqRlFiM2NnS2lCeU1sQnZkeUF0SUhJeFVHOTNJQ29nZVNBcUlIa2dMU0J5TWxCdmR5QXFJSGdnS2lCNE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCeWFXZG9kQ0E5SUhJeFVHOTNJQ29nZVNBcUlIa2dLeUJ5TWxCdmR5QXFJSGdnS2lCNE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCcklEMGdjMmxuYmlBcUlFMWhkR2d1YzNGeWRDaE5ZWFJvTG1GaWN5aHNaV1owSUM4Z2NtbG5hSFFwS1R0Y2JpQWdJQ0FnSUNBZ1kzZ2dQU0JySUNvZ2NqRWdLaUI1SUM4Z2NqSWdLeUFvZURFZ0t5QjRNaWtnTHlBeU8xeHVJQ0FnSUNBZ0lDQmplU0E5SUdzZ0tpQXRjaklnS2lCNElDOGdjakVnS3lBb2VURWdLeUI1TWlrZ0x5QXlPMXh1SUNBZ0lDQWdJQ0JtTVNBOUlFMWhkR2d1WVhOcGJpaHdZWEp6WlVac2IyRjBLQ2dvZVRFZ0xTQmplU2tnTHlCeU1pa3VkRzlHYVhobFpDZzVLU2twTzF4dUlDQWdJQ0FnSUNCbU1pQTlJRTFoZEdndVlYTnBiaWh3WVhKelpVWnNiMkYwS0Nnb2VUSWdMU0JqZVNrZ0x5QnlNaWt1ZEc5R2FYaGxaQ2c1S1NrcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvZURFZ1BDQmplQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaakVnUFNCTllYUm9MbEJKSUMwZ1pqRTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tIZ3lJRHdnWTNncElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdZeUlEMGdUV0YwYUM1UVNTQXRJR1l5TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2htTVNBOElEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHWXhJRDBnVFdGMGFDNVFTU0FxSURJZ0t5Qm1NVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9aaklnUENBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCbU1pQTlJRTFoZEdndVVFa2dLaUF5SUNzZ1pqSTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tITjNaV1Z3Um14aFp5QW1KaUJtTVNBK0lHWXlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQm1NU0E5SUdZeElDMGdUV0YwYUM1UVNTQXFJREk3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLQ0Z6ZDJWbGNFWnNZV2NnSmlZZ1pqSWdQaUJtTVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWmpJZ1BTQm1NaUF0SUUxaGRHZ3VVRWtnS2lBeU8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUd4bGRDQmtaaUE5SUdZeUlDMGdaakU3WEc0Z0lDQWdhV1lnS0UxaGRHZ3VZV0p6S0dSbUtTQStJQ2hOWVhSb0xsQkpJQ29nTVRJd0lDOGdNVGd3S1NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCbU1tOXNaQ0E5SUdZeU8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCNE1tOXNaQ0E5SUhneU8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCNU1tOXNaQ0E5SUhreU8xeHVJQ0FnSUNBZ0lDQnBaaUFvYzNkbFpYQkdiR0ZuSUNZbUlHWXlJRDRnWmpFcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdZeUlEMGdaakVnS3lBb1RXRjBhQzVRU1NBcUlERXlNQ0F2SURFNE1Da2dLaUFvTVNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JtTWlBOUlHWXhJQ3NnS0UxaGRHZ3VVRWtnS2lBeE1qQWdMeUF4T0RBcElDb2dLQzB4S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjRNaUE5SUdONElDc2djakVnS2lCTllYUm9MbU52Y3lobU1pazdYRzRnSUNBZ0lDQWdJSGt5SUQwZ1kza2dLeUJ5TWlBcUlFMWhkR2d1YzJsdUtHWXlLVHRjYmlBZ0lDQWdJQ0FnY0dGeVlXMXpJRDBnWVhKalZHOURkV0pwWTBOMWNuWmxjeWg0TWl3Z2VUSXNJSGd5YjJ4a0xDQjVNbTlzWkN3Z2NqRXNJSEl5TENCaGJtZHNaU3dnTUN3Z2MzZGxaWEJHYkdGbkxDQmJaaklzSUdZeWIyeGtMQ0JqZUN3Z1kzbGRLVHRjYmlBZ0lDQjlYRzRnSUNBZ1pHWWdQU0JtTWlBdElHWXhPMXh1SUNBZ0lHTnZibk4wSUdNeElEMGdUV0YwYUM1amIzTW9aakVwTzF4dUlDQWdJR052Ym5OMElITXhJRDBnVFdGMGFDNXphVzRvWmpFcE8xeHVJQ0FnSUdOdmJuTjBJR015SUQwZ1RXRjBhQzVqYjNNb1pqSXBPMXh1SUNBZ0lHTnZibk4wSUhNeUlEMGdUV0YwYUM1emFXNG9aaklwTzF4dUlDQWdJR052Ym5OMElIUWdQU0JOWVhSb0xuUmhiaWhrWmlBdklEUXBPMXh1SUNBZ0lHTnZibk4wSUdoNElEMGdOQ0F2SURNZ0tpQnlNU0FxSUhRN1hHNGdJQ0FnWTI5dWMzUWdhSGtnUFNBMElDOGdNeUFxSUhJeUlDb2dkRHRjYmlBZ0lDQmpiMjV6ZENCdE1TQTlJRnQ0TVN3Z2VURmRPMXh1SUNBZ0lHTnZibk4wSUcweUlEMGdXM2d4SUNzZ2FIZ2dLaUJ6TVN3Z2VURWdMU0JvZVNBcUlHTXhYVHRjYmlBZ0lDQmpiMjV6ZENCdE15QTlJRnQ0TWlBcklHaDRJQ29nY3pJc0lIa3lJQzBnYUhrZ0tpQmpNbDA3WEc0Z0lDQWdZMjl1YzNRZ2JUUWdQU0JiZURJc0lIa3lYVHRjYmlBZ0lDQnRNbHN3WFNBOUlESWdLaUJ0TVZzd1hTQXRJRzB5V3pCZE8xeHVJQ0FnSUcweVd6RmRJRDBnTWlBcUlHMHhXekZkSUMwZ2JUSmJNVjA3WEc0Z0lDQWdhV1lnS0hKbFkzVnljMmwyWlNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1cyMHlMQ0J0TXl3Z2JUUmRMbU52Ym1OaGRDaHdZWEpoYlhNcE8xeHVJQ0FnSUgxY2JpQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdjR0Z5WVcxeklEMGdXMjB5TENCdE15d2diVFJkTG1OdmJtTmhkQ2h3WVhKaGJYTXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmpkWEoyWlhNZ1BTQmJYVHRjYmlBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCd1lYSmhiWE11YkdWdVozUm9PeUJwSUNzOUlETXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhJeElEMGdjbTkwWVhSbEtIQmhjbUZ0YzF0cFhWc3dYU3dnY0dGeVlXMXpXMmxkV3pGZExDQmhibWRzWlZKaFpDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J5TWlBOUlISnZkR0YwWlNod1lYSmhiWE5iYVNBcklERmRXekJkTENCd1lYSmhiWE5iYVNBcklERmRXekZkTENCaGJtZHNaVkpoWkNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnlNeUE5SUhKdmRHRjBaU2h3WVhKaGJYTmJhU0FySURKZFd6QmRMQ0J3WVhKaGJYTmJhU0FySURKZFd6RmRMQ0JoYm1kc1pWSmhaQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpkWEoyWlhNdWNIVnphQ2hiY2pGYk1GMHNJSEl4V3pGZExDQnlNbHN3WFN3Z2NqSmJNVjBzSUhJeld6QmRMQ0J5TTFzeFhWMHBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJqZFhKMlpYTTdYRzRnSUNBZ2ZWeHVmVnh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcGF0aC1kYXRhLXBhcnNlci9saWIvbm9ybWFsaXplLmpzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcGF0aC1kYXRhLXBhcnNlci9saWIvcGFyc2VyLmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BhdGgtZGF0YS1wYXJzZXIvbGliL3BhcnNlci5qcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJwYXJzZVBhdGhcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBwYXJzZVBhdGgpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInNlcmlhbGl6ZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHNlcmlhbGl6ZSlcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG5jb25zdCBDT01NQU5EID0gMDtcXG5jb25zdCBOVU1CRVIgPSAxO1xcbmNvbnN0IEVPRCA9IDI7XFxuY29uc3QgUEFSQU1TID0geyBBOiA3LCBhOiA3LCBDOiA2LCBjOiA2LCBIOiAxLCBoOiAxLCBMOiAyLCBsOiAyLCBNOiAyLCBtOiAyLCBROiA0LCBxOiA0LCBTOiA0LCBzOiA0LCBUOiAyLCB0OiAyLCBWOiAxLCB2OiAxLCBaOiAwLCB6OiAwIH07XFxuZnVuY3Rpb24gdG9rZW5pemUoZCkge1xcbiAgICBjb25zdCB0b2tlbnMgPSBuZXcgQXJyYXkoKTtcXG4gICAgd2hpbGUgKGQgIT09ICcnKSB7XFxuICAgICAgICBpZiAoZC5tYXRjaCgvXihbIFxcXFx0XFxcXHJcXFxcbixdKykvKSkge1xcbiAgICAgICAgICAgIGQgPSBkLnN1YnN0cihSZWdFeHAuJDEubGVuZ3RoKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKGQubWF0Y2goL14oW2FBY0NoSGxMbU1xUXNTdFR2VnpaXSkvKSkge1xcbiAgICAgICAgICAgIHRva2Vuc1t0b2tlbnMubGVuZ3RoXSA9IHsgdHlwZTogQ09NTUFORCwgdGV4dDogUmVnRXhwLiQxIH07XFxuICAgICAgICAgICAgZCA9IGQuc3Vic3RyKFJlZ0V4cC4kMS5sZW5ndGgpO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSBpZiAoZC5tYXRjaCgvXigoWy0rXT9bMC05XSsoXFxcXC5bMC05XSopP3xbLStdP1xcXFwuWzAtOV0rKShbZUVdWy0rXT9bMC05XSspPykvKSkge1xcbiAgICAgICAgICAgIHRva2Vuc1t0b2tlbnMubGVuZ3RoXSA9IHsgdHlwZTogTlVNQkVSLCB0ZXh0OiBgJHtwYXJzZUZsb2F0KFJlZ0V4cC4kMSl9YCB9O1xcbiAgICAgICAgICAgIGQgPSBkLnN1YnN0cihSZWdFeHAuJDEubGVuZ3RoKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgIHJldHVybiBbXTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICB0b2tlbnNbdG9rZW5zLmxlbmd0aF0gPSB7IHR5cGU6IEVPRCwgdGV4dDogJycgfTtcXG4gICAgcmV0dXJuIHRva2VucztcXG59XFxuZnVuY3Rpb24gaXNUeXBlKHRva2VuLCB0eXBlKSB7XFxuICAgIHJldHVybiB0b2tlbi50eXBlID09PSB0eXBlO1xcbn1cXG5mdW5jdGlvbiBwYXJzZVBhdGgoZCkge1xcbiAgICBjb25zdCBzZWdtZW50cyA9IFtdO1xcbiAgICBjb25zdCB0b2tlbnMgPSB0b2tlbml6ZShkKTtcXG4gICAgbGV0IG1vZGUgPSAnQk9EJztcXG4gICAgbGV0IGluZGV4ID0gMDtcXG4gICAgbGV0IHRva2VuID0gdG9rZW5zW2luZGV4XTtcXG4gICAgd2hpbGUgKCFpc1R5cGUodG9rZW4sIEVPRCkpIHtcXG4gICAgICAgIGxldCBwYXJhbXNDb3VudCA9IDA7XFxuICAgICAgICBjb25zdCBwYXJhbXMgPSBbXTtcXG4gICAgICAgIGlmIChtb2RlID09PSAnQk9EJykge1xcbiAgICAgICAgICAgIGlmICh0b2tlbi50ZXh0ID09PSAnTScgfHwgdG9rZW4udGV4dCA9PT0gJ20nKSB7XFxuICAgICAgICAgICAgICAgIGluZGV4Kys7XFxuICAgICAgICAgICAgICAgIHBhcmFtc0NvdW50ID0gUEFSQU1TW3Rva2VuLnRleHRdO1xcbiAgICAgICAgICAgICAgICBtb2RlID0gdG9rZW4udGV4dDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVBhdGgoJ00wLDAnICsgZCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSBpZiAoaXNUeXBlKHRva2VuLCBOVU1CRVIpKSB7XFxuICAgICAgICAgICAgcGFyYW1zQ291bnQgPSBQQVJBTVNbbW9kZV07XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICBpbmRleCsrO1xcbiAgICAgICAgICAgIHBhcmFtc0NvdW50ID0gUEFSQU1TW3Rva2VuLnRleHRdO1xcbiAgICAgICAgICAgIG1vZGUgPSB0b2tlbi50ZXh0O1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKChpbmRleCArIHBhcmFtc0NvdW50KSA8IHRva2Vucy5sZW5ndGgpIHtcXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gaW5kZXg7IGkgPCBpbmRleCArIHBhcmFtc0NvdW50OyBpKyspIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgbnVtYmVUb2tlbiA9IHRva2Vuc1tpXTtcXG4gICAgICAgICAgICAgICAgaWYgKGlzVHlwZShudW1iZVRva2VuLCBOVU1CRVIpKSB7XFxuICAgICAgICAgICAgICAgICAgICBwYXJhbXNbcGFyYW1zLmxlbmd0aF0gPSArbnVtYmVUb2tlbi50ZXh0O1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQYXJhbSBub3QgYSBudW1iZXI6ICcgKyBtb2RlICsgJywnICsgbnVtYmVUb2tlbi50ZXh0KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAodHlwZW9mIFBBUkFNU1ttb2RlXSA9PT0gJ251bWJlcicpIHtcXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VnbWVudCA9IHsga2V5OiBtb2RlLCBkYXRhOiBwYXJhbXMgfTtcXG4gICAgICAgICAgICAgICAgc2VnbWVudHMucHVzaChzZWdtZW50KTtcXG4gICAgICAgICAgICAgICAgaW5kZXggKz0gcGFyYW1zQ291bnQ7XFxuICAgICAgICAgICAgICAgIHRva2VuID0gdG9rZW5zW2luZGV4XTtcXG4gICAgICAgICAgICAgICAgaWYgKG1vZGUgPT09ICdNJylcXG4gICAgICAgICAgICAgICAgICAgIG1vZGUgPSAnTCc7XFxuICAgICAgICAgICAgICAgIGlmIChtb2RlID09PSAnbScpXFxuICAgICAgICAgICAgICAgICAgICBtb2RlID0gJ2wnO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCYWQgc2VnbWVudDogJyArIG1vZGUpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGF0aCBkYXRhIGVuZGVkIHNob3J0Jyk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIHNlZ21lbnRzO1xcbn1cXG5mdW5jdGlvbiBzZXJpYWxpemUoc2VnbWVudHMpIHtcXG4gICAgY29uc3QgdG9rZW5zID0gW107XFxuICAgIGZvciAoY29uc3QgeyBrZXksIGRhdGEgfSBvZiBzZWdtZW50cykge1xcbiAgICAgICAgdG9rZW5zLnB1c2goa2V5KTtcXG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XFxuICAgICAgICAgICAgY2FzZSAnQyc6XFxuICAgICAgICAgICAgY2FzZSAnYyc6XFxuICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKGRhdGFbMF0sIGAke2RhdGFbMV19LGAsIGRhdGFbMl0sIGAke2RhdGFbM119LGAsIGRhdGFbNF0sIGRhdGFbNV0pO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICdTJzpcXG4gICAgICAgICAgICBjYXNlICdzJzpcXG4gICAgICAgICAgICBjYXNlICdRJzpcXG4gICAgICAgICAgICBjYXNlICdxJzpcXG4gICAgICAgICAgICAgICAgdG9rZW5zLnB1c2goZGF0YVswXSwgYCR7ZGF0YVsxXX0sYCwgZGF0YVsyXSwgZGF0YVszXSk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKC4uLmRhdGEpO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICByZXR1cm4gdG9rZW5zLmpvaW4oJyAnKTtcXG59XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzQmhkR2d0WkdGMFlTMXdZWEp6WlhJdmJHbGlMM0JoY25ObGNpNXFjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3p0QlFVRkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHbENRVUZwUWp0QlFVTnFRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMSE5EUVVGelF6dEJRVU4wUXp0QlFVTkJPMEZCUTBFN1FVRkRRU3h6UTBGQmMwTXNkVUpCUVhWQ0xITkNRVUZ6UWp0QlFVTnVSanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN3NFFrRkJPRUk3UVVGRE9VSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOUE8wRkJRMUE3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWjBOQlFXZERMSGxDUVVGNVFqdEJRVU42UkR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4clEwRkJhME03UVVGRGJFTTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwODdRVUZEVUR0QlFVTkJMR2xDUVVGcFFpeFpRVUZaTzBGQlF6ZENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzZDBOQlFYZERMRkZCUVZFc1owSkJRV2RDTEZGQlFWRTdRVUZEZUVVN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEhkRFFVRjNReXhSUVVGUk8wRkJRMmhFTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVpTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDNCaGRHZ3RaR0YwWVMxd1lYSnpaWEl2YkdsaUwzQmhjbk5sY2k1cWN6OWtNVGhpSWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltTnZibk4wSUVOUFRVMUJUa1FnUFNBd08xeHVZMjl1YzNRZ1RsVk5Ra1ZTSUQwZ01UdGNibU52Ym5OMElFVlBSQ0E5SURJN1hHNWpiMjV6ZENCUVFWSkJUVk1nUFNCN0lFRTZJRGNzSUdFNklEY3NJRU02SURZc0lHTTZJRFlzSUVnNklERXNJR2c2SURFc0lFdzZJRElzSUd3NklESXNJRTA2SURJc0lHMDZJRElzSUZFNklEUXNJSEU2SURRc0lGTTZJRFFzSUhNNklEUXNJRlE2SURJc0lIUTZJRElzSUZZNklERXNJSFk2SURFc0lGbzZJREFzSUhvNklEQWdmVHRjYm1aMWJtTjBhVzl1SUhSdmEyVnVhWHBsS0dRcElIdGNiaUFnSUNCamIyNXpkQ0IwYjJ0bGJuTWdQU0J1WlhjZ1FYSnlZWGtvS1R0Y2JpQWdJQ0IzYUdsc1pTQW9aQ0FoUFQwZ0p5Y3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHUXViV0YwWTJnb0wxNG9XeUJjWEhSY1hISmNYRzRzWFNzcEx5a3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHUWdQU0JrTG5OMVluTjBjaWhTWldkRmVIQXVKREV1YkdWdVozUm9LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoa0xtMWhkR05vS0M5ZUtGdGhRV05EYUVoc1RHMU5jVkZ6VTNSVWRsWjZXbDBwTHlrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSdmEyVnVjMXQwYjJ0bGJuTXViR1Z1WjNSb1hTQTlJSHNnZEhsd1pUb2dRMDlOVFVGT1JDd2dkR1Y0ZERvZ1VtVm5SWGh3TGlReElIMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCa0lEMGdaQzV6ZFdKemRISW9VbVZuUlhod0xpUXhMbXhsYm1kMGFDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWkM1dFlYUmphQ2d2WGlnb1d5MHJYVDliTUMwNVhTc29YRnd1V3pBdE9WMHFLVDk4V3kwclhUOWNYQzViTUMwNVhTc3BLRnRsUlYxYkxTdGRQMXN3TFRsZEt5ay9LUzhwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYjJ0bGJuTmJkRzlyWlc1ekxteGxibWQwYUYwZ1BTQjdJSFI1Y0dVNklFNVZUVUpGVWl3Z2RHVjRkRG9nWUNSN2NHRnljMlZHYkc5aGRDaFNaV2RGZUhBdUpERXBmV0FnZlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1FnUFNCa0xuTjFZbk4wY2loU1pXZEZlSEF1SkRFdWJHVnVaM1JvS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmJYVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQjBiMnRsYm5OYmRHOXJaVzV6TG14bGJtZDBhRjBnUFNCN0lIUjVjR1U2SUVWUFJDd2dkR1Y0ZERvZ0p5Y2dmVHRjYmlBZ0lDQnlaWFIxY200Z2RHOXJaVzV6TzF4dWZWeHVablZ1WTNScGIyNGdhWE5VZVhCbEtIUnZhMlZ1TENCMGVYQmxLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUnZhMlZ1TG5SNWNHVWdQVDA5SUhSNWNHVTdYRzU5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY0dGeWMyVlFZWFJvS0dRcElIdGNiaUFnSUNCamIyNXpkQ0J6WldkdFpXNTBjeUE5SUZ0ZE8xeHVJQ0FnSUdOdmJuTjBJSFJ2YTJWdWN5QTlJSFJ2YTJWdWFYcGxLR1FwTzF4dUlDQWdJR3hsZENCdGIyUmxJRDBnSjBKUFJDYzdYRzRnSUNBZ2JHVjBJR2x1WkdWNElEMGdNRHRjYmlBZ0lDQnNaWFFnZEc5clpXNGdQU0IwYjJ0bGJuTmJhVzVrWlhoZE8xeHVJQ0FnSUhkb2FXeGxJQ2doYVhOVWVYQmxLSFJ2YTJWdUxDQkZUMFFwS1NCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0J3WVhKaGJYTkRiM1Z1ZENBOUlEQTdYRzRnSUNBZ0lDQWdJR052Ym5OMElIQmhjbUZ0Y3lBOUlGdGRPMXh1SUNBZ0lDQWdJQ0JwWmlBb2JXOWtaU0E5UFQwZ0owSlBSQ2NwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGIydGxiaTUwWlhoMElEMDlQU0FuVFNjZ2ZId2dkRzlyWlc0dWRHVjRkQ0E5UFQwZ0oyMG5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVc1a1pYZ3JLenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3WVhKaGJYTkRiM1Z1ZENBOUlGQkJVa0ZOVTF0MGIydGxiaTUwWlhoMFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnRiMlJsSUQwZ2RHOXJaVzR1ZEdWNGREdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCd1lYSnpaVkJoZEdnb0owMHdMREFuSUNzZ1pDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9hWE5VZVhCbEtIUnZhMlZ1TENCT1ZVMUNSVklwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3WVhKaGJYTkRiM1Z1ZENBOUlGQkJVa0ZOVTF0dGIyUmxYVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbHVaR1Y0S3lzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3WVhKaGJYTkRiM1Z1ZENBOUlGQkJVa0ZOVTF0MGIydGxiaTUwWlhoMFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUcxdlpHVWdQU0IwYjJ0bGJpNTBaWGgwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2dvYVc1a1pYZ2dLeUJ3WVhKaGJYTkRiM1Z1ZENrZ1BDQjBiMnRsYm5NdWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ2FXNWtaWGc3SUdrZ1BDQnBibVJsZUNBcklIQmhjbUZ0YzBOdmRXNTBPeUJwS3lzcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdWRXMWlaVlJ2YTJWdUlEMGdkRzlyWlc1elcybGRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocGMxUjVjR1VvYm5WdFltVlViMnRsYml3Z1RsVk5Ra1ZTS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3WVhKaGJYTmJjR0Z5WVcxekxteGxibWQwYUYwZ1BTQXJiblZ0WW1WVWIydGxiaTUwWlhoME8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZFFZWEpoYlNCdWIzUWdZU0J1ZFcxaVpYSTZJQ2NnS3lCdGIyUmxJQ3NnSnl3bklDc2diblZ0WW1WVWIydGxiaTUwWlhoMEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUZCQlVrRk5VMXR0YjJSbFhTQTlQVDBnSjI1MWJXSmxjaWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J6WldkdFpXNTBJRDBnZXlCclpYazZJRzF2WkdVc0lHUmhkR0U2SUhCaGNtRnRjeUI5TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhObFoyMWxiblJ6TG5CMWMyZ29jMlZuYldWdWRDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhVzVrWlhnZ0t6MGdjR0Z5WVcxelEyOTFiblE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEc5clpXNGdQU0IwYjJ0bGJuTmJhVzVrWlhoZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h0YjJSbElEMDlQU0FuVFNjcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzF2WkdVZ1BTQW5UQ2M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHMXZaR1VnUFQwOUlDZHRKeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JXOWtaU0E5SUNkc0p6dGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblFtRmtJSE5sWjIxbGJuUTZJQ2NnS3lCdGIyUmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduVUdGMGFDQmtZWFJoSUdWdVpHVmtJSE5vYjNKMEp5azdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhObFoyMWxiblJ6TzF4dWZWeHVaWGh3YjNKMElHWjFibU4wYVc5dUlITmxjbWxoYkdsNlpTaHpaV2R0Wlc1MGN5a2dlMXh1SUNBZ0lHTnZibk4wSUhSdmEyVnVjeUE5SUZ0ZE8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2V5QnJaWGtzSUdSaGRHRWdmU0J2WmlCelpXZHRaVzUwY3lrZ2UxeHVJQ0FnSUNBZ0lDQjBiMnRsYm5NdWNIVnphQ2hyWlhrcE8xeHVJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tHdGxlU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblF5YzZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RqSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGIydGxibk11Y0hWemFDaGtZWFJoV3pCZExDQmdKSHRrWVhSaFd6RmRmU3hnTENCa1lYUmhXekpkTENCZ0pIdGtZWFJoV3pOZGZTeGdMQ0JrWVhSaFd6UmRMQ0JrWVhSaFd6VmRLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMU1uT2x4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmN5YzZYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RSSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0ozRW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJ2YTJWdWN5NXdkWE5vS0dSaGRHRmJNRjBzSUdBa2UyUmhkR0ZiTVYxOUxHQXNJR1JoZEdGYk1sMHNJR1JoZEdGYk0xMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYjJ0bGJuTXVjSFZ6YUNndUxpNWtZWFJoS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2RHOXJaVzV6TG1wdmFXNG9KeUFuS1R0Y2JuMWNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcGF0aC1kYXRhLXBhcnNlci9saWIvcGFyc2VyLmpzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcGVyZmVjdC1mcmVlaGFuZC9kaXN0L2VzbS9pbmRleC5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi8uLi9ub2RlX21vZHVsZXMvcGVyZmVjdC1mcmVlaGFuZC9kaXN0L2VzbS9pbmRleC5qcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFRlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRTdHJva2VcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBtZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0U3Ryb2tlT3V0bGluZVBvaW50c1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGllKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRTdHJva2VQb2ludHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBjZSlcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG5mdW5jdGlvbiBXKGUsdCxzLGg9Yj0+Yil7cmV0dXJuIGUqaCguNS10KiguNS1zKSl9ZnVuY3Rpb24gcmUoZSl7cmV0dXJuWy1lWzBdLC1lWzFdXX1mdW5jdGlvbiBsKGUsdCl7cmV0dXJuW2VbMF0rdFswXSxlWzFdK3RbMV1dfWZ1bmN0aW9uIGEoZSx0KXtyZXR1cm5bZVswXS10WzBdLGVbMV0tdFsxXV19ZnVuY3Rpb24gZihlLHQpe3JldHVybltlWzBdKnQsZVsxXSp0XX1mdW5jdGlvbiBsZShlLHQpe3JldHVybltlWzBdL3QsZVsxXS90XX1mdW5jdGlvbiBMKGUpe3JldHVybltlWzFdLC1lWzBdXX1mdW5jdGlvbiBuZShlLHQpe3JldHVybiBlWzBdKnRbMF0rZVsxXSp0WzFdfWZ1bmN0aW9uIG9lKGUsdCl7cmV0dXJuIGVbMF09PT10WzBdJiZlWzFdPT09dFsxXX1mdW5jdGlvbiBmZShlKXtyZXR1cm4gTWF0aC5oeXBvdChlWzBdLGVbMV0pfWZ1bmN0aW9uIGJlKGUpe3JldHVybiBlWzBdKmVbMF0rZVsxXSplWzFdfWZ1bmN0aW9uIFkoZSx0KXtyZXR1cm4gYmUoYShlLHQpKX1mdW5jdGlvbiBHKGUpe3JldHVybiBsZShlLGZlKGUpKX1mdW5jdGlvbiB1ZShlLHQpe3JldHVybiBNYXRoLmh5cG90KGVbMV0tdFsxXSxlWzBdLXRbMF0pfWZ1bmN0aW9uIFQoZSx0LHMpe2xldCBoPU1hdGguc2luKHMpLGI9TWF0aC5jb3Mocyksdj1lWzBdLXRbMF0sbj1lWzFdLXRbMV0sZz12KmItbipoLEU9dipoK24qYjtyZXR1cm5bZyt0WzBdLEUrdFsxXV19ZnVuY3Rpb24gVihlLHQscyl7cmV0dXJuIGwoZSxmKGEodCxlKSxzKSl9ZnVuY3Rpb24gWihlLHQscyl7cmV0dXJuIGwoZSxmKHQscykpfXZhcnttaW46XyxQSTpnZX09TWF0aCxzZT0uMjc1LGo9Z2UrMWUtNDtmdW5jdGlvbiBpZShlLHQ9e30pe2xldHtzaXplOnM9MTYsc21vb3RoaW5nOmg9LjUsdGhpbm5pbmc6Yj0uNSxzaW11bGF0ZVByZXNzdXJlOnY9ITAsZWFzaW5nOm49cj0+cixzdGFydDpnPXt9LGVuZDpFPXt9LGxhc3Q6ej0hMX09dCx7Y2FwOmQ9ITAsdGFwZXI6eD0wLGVhc2luZzpxPXI9PnIqKDItcil9PWcse2NhcDptPSEwLHRhcGVyOmM9MCxlYXNpbmc6TT1yPT4tLXIqcipyKzF9PUU7aWYoZS5sZW5ndGg9PT0wfHxzPD0wKXJldHVybltdO2xldCBIPWVbZS5sZW5ndGgtMV0ucnVubmluZ0xlbmd0aCwkPU1hdGgucG93KHMqaCwyKSxEPVtdLFI9W10sTj1lLnNsaWNlKDAsMTApLnJlZHVjZSgocixpKT0+e2xldCBvPWkucHJlc3N1cmU7aWYodil7bGV0IHU9XygxLGkuZGlzdGFuY2UvcyksSj1fKDEsMS11KTtvPV8oMSxyKyhKLXIpKih1KnNlKSl9cmV0dXJuKHIrbykvMn0sZVswXS5wcmVzc3VyZSkscD1XKHMsYixlW2UubGVuZ3RoLTFdLnByZXNzdXJlLG4pLFUsQj1lWzBdLnZlY3RvcixJPWVbMF0ucG9pbnQsQz1JLHk9SSxPPUM7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspe2xldHtwcmVzc3VyZTppfT1lW3JdLHtwb2ludDpvLHZlY3Rvcjp1LGRpc3RhbmNlOkoscnVubmluZ0xlbmd0aDpLfT1lW3JdO2lmKHI8ZS5sZW5ndGgtMSYmSC1LPDMpY29udGludWU7aWYoYil7aWYodil7bGV0IFA9XygxLEovcyksUT1fKDEsMS1QKTtpPV8oMSxOKyhRLU4pKihQKnNlKSl9cD1XKHMsYixpLG4pfWVsc2UgcD1zLzI7VT09PXZvaWQgMCYmKFU9cCk7bGV0IHBlPUs8eD9xKEsveCk6MSxhZT1ILUs8Yz9NKChILUspL2MpOjE7aWYocD1NYXRoLm1heCguMDEscCpNYXRoLm1pbihwZSxhZSkpLHI9PT1lLmxlbmd0aC0xKXtsZXQgUD1mKEwodSkscCk7RC5wdXNoKGEobyxQKSksUi5wdXNoKGwobyxQKSk7Y29udGludWV9bGV0IEE9ZVtyKzFdLnZlY3RvcixlZT1uZSh1LEEpO2lmKGVlPDApe2xldCBQPWYoTChCKSxwKTtmb3IobGV0IFE9MS8xMyx3PTA7dzw9MTt3Kz1RKXk9VChhKG8sUCksbyxqKncpLEQucHVzaCh5KSxPPVQobChvLFApLG8saiotdyksUi5wdXNoKE8pO0k9eSxDPU87Y29udGludWV9bGV0IHRlPWYoTChWKEEsdSxlZSkpLHApO3k9YShvLHRlKSwocjw9MXx8WShJLHkpPiQpJiYoRC5wdXNoKHkpLEk9eSksTz1sKG8sdGUpLChyPD0xfHxZKEMsTyk+JCkmJihSLnB1c2goTyksQz1PKSxOPWksQj11fWxldCBTPWVbMF0ucG9pbnQuc2xpY2UoMCwyKSxrPWUubGVuZ3RoPjE/ZVtlLmxlbmd0aC0xXS5wb2ludC5zbGljZSgwLDIpOmwoZVswXS5wb2ludCxbMSwxXSksWD1bXSxGPVtdO2lmKGUubGVuZ3RoPT09MSl7aWYoISh4fHxjKXx8eil7bGV0IHI9WihTLEcoTChhKFMsaykpKSwtKFV8fHApKSxpPVtdO2ZvcihsZXQgbz0xLzEzLHU9bzt1PD0xO3UrPW8paS5wdXNoKFQocixTLGoqMip1KSk7cmV0dXJuIGl9fWVsc2V7aWYoISh4fHxjJiZlLmxlbmd0aD09PTEpKWlmKGQpZm9yKGxldCBpPTEvMTMsbz1pO288PTE7bys9aSl7bGV0IHU9VChSWzBdLFMsaipvKTtYLnB1c2godSl9ZWxzZXtsZXQgaT1hKERbMF0sUlswXSksbz1mKGksLjUpLHU9ZihpLC41MSk7WC5wdXNoKGEoUyxvKSxhKFMsdSksbChTLHUpLGwoUyxvKSl9bGV0IHI9TChyZShlW2UubGVuZ3RoLTFdLnZlY3RvcikpO2lmKGN8fHgmJmUubGVuZ3RoPT09MSlGLnB1c2goayk7ZWxzZSBpZihtKXtsZXQgaT1aKGsscixwKTtmb3IobGV0IG89MS8yOSx1PW87dTwxO3UrPW8pRi5wdXNoKFQoaSxrLGoqMyp1KSl9ZWxzZSBGLnB1c2gobChrLGYocixwKSksbChrLGYocixwKi45OSkpLGEoayxmKHIscCouOTkpKSxhKGssZihyLHApKSl9cmV0dXJuIEQuY29uY2F0KEYsUi5yZXZlcnNlKCksWCl9ZnVuY3Rpb24gY2UoZSx0PXt9KXt2YXIgcTtsZXR7c3RyZWFtbGluZTpzPS41LHNpemU6aD0xNixsYXN0OmI9ITF9PXQ7aWYoZS5sZW5ndGg9PT0wKXJldHVybltdO2xldCB2PS4xNSsoMS1zKSouODUsbj1BcnJheS5pc0FycmF5KGVbMF0pP2U6ZS5tYXAoKHt4Om0seTpjLHByZXNzdXJlOk09LjV9KT0+W20sYyxNXSk7aWYobi5sZW5ndGg9PT0yKXtsZXQgbT1uWzFdO249bi5zbGljZSgwLC0xKTtmb3IobGV0IGM9MTtjPDU7YysrKW4ucHVzaChWKG5bMF0sbSxjLzQpKX1uLmxlbmd0aD09PTEmJihuPVsuLi5uLFsuLi5sKG5bMF0sWzEsMV0pLC4uLm5bMF0uc2xpY2UoMildXSk7bGV0IGc9W3twb2ludDpbblswXVswXSxuWzBdWzFdXSxwcmVzc3VyZTpuWzBdWzJdPj0wP25bMF1bMl06LjI1LHZlY3RvcjpbMSwxXSxkaXN0YW5jZTowLHJ1bm5pbmdMZW5ndGg6MH1dLEU9ITEsej0wLGQ9Z1swXSx4PW4ubGVuZ3RoLTE7Zm9yKGxldCBtPTE7bTxuLmxlbmd0aDttKyspe2xldCBjPWImJm09PT14P25bbV0uc2xpY2UoMCwyKTpWKGQucG9pbnQsblttXSx2KTtpZihvZShkLnBvaW50LGMpKWNvbnRpbnVlO2xldCBNPXVlKGMsZC5wb2ludCk7aWYoeis9TSxtPHgmJiFFKXtpZih6PGgpY29udGludWU7RT0hMH1kPXtwb2ludDpjLHByZXNzdXJlOm5bbV1bMl0+PTA/blttXVsyXTouNSx2ZWN0b3I6RyhhKGQucG9pbnQsYykpLGRpc3RhbmNlOk0scnVubmluZ0xlbmd0aDp6fSxnLnB1c2goZCl9cmV0dXJuIGdbMF0udmVjdG9yPSgocT1nWzFdKT09bnVsbD92b2lkIDA6cS52ZWN0b3IpfHxbMCwwXSxnfWZ1bmN0aW9uIG1lKGUsdD17fSl7cmV0dXJuIGllKGNlKGUsdCksdCl9dmFyIFRlPW1lO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2TGk0dmJtOWtaVjl0YjJSMWJHVnpMM0JsY21abFkzUXRabkpsWldoaGJtUXZaR2x6ZEM5bGMyMHZhVzVrWlhndWFuTXVhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3p0QlFVRkJMSGxDUVVGNVFpeDNRa0ZCZDBJc1pVRkJaU3h2UWtGQmIwSXNaMEpCUVdkQ0xEUkNRVUUwUWl4blFrRkJaMElzTkVKQlFUUkNMR2RDUVVGblFpeHpRa0ZCYzBJc2FVSkJRV2xDTEhOQ1FVRnpRaXhqUVVGakxHMUNRVUZ0UWl4cFFrRkJhVUlzTWtKQlFUSkNMR2xDUVVGcFFpeG5RMEZCWjBNc1pVRkJaU3cyUWtGQk5rSXNaVUZCWlN3eVFrRkJNa0lzWjBKQlFXZENMR3RDUVVGclFpeGpRVUZqTEcxQ1FVRnRRaXhwUWtGQmFVSXNkVU5CUVhWRExHdENRVUZyUWl3MFJVRkJORVVzYzBKQlFYTkNMR3RDUVVGclFpeDNRa0ZCZDBJc2EwSkJRV3RDTEcxQ1FVRnRRaXhKUVVGSkxGbEJRVmtzZDBKQlFYZENMR3RDUVVGclFpeEZRVUZGTEVsQlFVa3NjVVpCUVhGR0xGTkJRVk1zVjBGQlZ5eEpRVUZKTEhWRFFVRjFReXhKUVVGSkxIbERRVUY1UXl4SFFVRkhMQ3RDUVVFclFpdzJSa0ZCTmtZc2FVSkJRV2xDTEUxQlFVMHNiVU5CUVcxRExITkNRVUZ6UWl4alFVRmpMREpHUVVFeVJpeFpRVUZaTEZkQlFWY3NTMEZCU3l4SlFVRkpMRmRCUVZjc1QwRkJUeXcwUTBGQk5FTXNUVUZCVFN4blEwRkJaME1zVFVGQlRTeE5RVUZOTERCQ1FVRXdRaXh6UWtGQmMwSXNZVUZCWVN4WFFVRlhMR3RDUVVGclFpd3dRMEZCTUVNc2NVUkJRWEZFTEdkQ1FVRm5RaXc0UWtGQk9FSXNVMEZCVXl3clFrRkJLMElzVTBGQlV5eG5Ra0ZCWjBJc2JVSkJRVzFDTEV0QlFVc3NPRVJCUVRoRUxGRkJRVkVzVTBGQlV5eDVRa0ZCZVVJc1owZEJRV2RITEhOSFFVRnpSeXhwUWtGQmFVSXNaVUZCWlN4eFEwRkJjVU1zYlVKQlFXMUNMRXRCUVVzc01FSkJRVEJDTEZWQlFWVXNTMEZCU3l4cFJFRkJhVVFzUzBGQlN5eE5RVUZOTEc5Q1FVRnZRaXhWUVVGVkxFdEJRVXNzZDBOQlFYZERMRzlEUVVGdlF5eHJRMEZCYTBNc1owTkJRV2RETEZkQlFWY3NaVUZCWlN4dFFrRkJiVUlzU1VGQlNTd3dRa0ZCTUVJc2NVVkJRWEZGTEdsRFFVRnBReXhyUWtGQmEwSXNSVUZCUlN4TlFVRk5MRWxCUVVrc2IwTkJRVzlETEVkQlFVY3NlVUpCUVhsQ0xHOUVRVUZ2UkN4elFrRkJjMElzV1VGQldTeHBRa0ZCYVVJc1YwRkJWeXhuUWtGQlowSXNXVUZCV1N4SlFVRkpMREJDUVVFd1FpdzJSRUZCTmtRc1VVRkJVU3huUjBGQlowY3NLMEpCUVN0Q0xGbEJRVmtzVjBGQlZ5eExRVUZMTEdsRVFVRnBSQ3d3UWtGQk1FSXNiMEpCUVc5Q0xHbENRVUZwUWl4blFrRkJaMElzUzBGQlN5eEhRVUZITEhsR1FVRjVSaXhYUVVGWExEWkVRVUUyUkN4clFrRkJhMElzUlVGQlJTeHhRa0ZCY1VJc1ZVRkJiVWNpTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDNCbGNtWmxZM1F0Wm5KbFpXaGhibVF2WkdsemRDOWxjMjB2YVc1a1pYZ3Vhbk0vWkRCa055SmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUptZFc1amRHbHZiaUJYS0dVc2RDeHpMR2c5WWowK1lpbDdjbVYwZFhKdUlHVXFhQ2d1TlMxMEtpZ3VOUzF6S1NsOVpuVnVZM1JwYjI0Z2NtVW9aU2w3Y21WMGRYSnVXeTFsV3pCZExDMWxXekZkWFgxbWRXNWpkR2x2YmlCc0tHVXNkQ2w3Y21WMGRYSnVXMlZiTUYwcmRGc3dYU3hsV3pGZEszUmJNVjFkZldaMWJtTjBhVzl1SUdFb1pTeDBLWHR5WlhSMWNtNWJaVnN3WFMxMFd6QmRMR1ZiTVYwdGRGc3hYVjE5Wm5WdVkzUnBiMjRnWmlobExIUXBlM0psZEhWeWJsdGxXekJkS25Rc1pWc3hYU3AwWFgxbWRXNWpkR2x2YmlCc1pTaGxMSFFwZTNKbGRIVnlibHRsV3pCZEwzUXNaVnN4WFM5MFhYMW1kVzVqZEdsdmJpQk1LR1VwZTNKbGRIVnlibHRsV3pGZExDMWxXekJkWFgxbWRXNWpkR2x2YmlCdVpTaGxMSFFwZTNKbGRIVnliaUJsV3pCZEtuUmJNRjByWlZzeFhTcDBXekZkZldaMWJtTjBhVzl1SUc5bEtHVXNkQ2w3Y21WMGRYSnVJR1ZiTUYwOVBUMTBXekJkSmlabFd6RmRQVDA5ZEZzeFhYMW1kVzVqZEdsdmJpQm1aU2hsS1h0eVpYUjFjbTRnVFdGMGFDNW9lWEJ2ZENobFd6QmRMR1ZiTVYwcGZXWjFibU4wYVc5dUlHSmxLR1VwZTNKbGRIVnliaUJsV3pCZEttVmJNRjByWlZzeFhTcGxXekZkZldaMWJtTjBhVzl1SUZrb1pTeDBLWHR5WlhSMWNtNGdZbVVvWVNobExIUXBLWDFtZFc1amRHbHZiaUJIS0dVcGUzSmxkSFZ5YmlCc1pTaGxMR1psS0dVcEtYMW1kVzVqZEdsdmJpQjFaU2hsTEhRcGUzSmxkSFZ5YmlCTllYUm9MbWg1Y0c5MEtHVmJNVjB0ZEZzeFhTeGxXekJkTFhSYk1GMHBmV1oxYm1OMGFXOXVJRlFvWlN4MExITXBlMnhsZENCb1BVMWhkR2d1YzJsdUtITXBMR0k5VFdGMGFDNWpiM01vY3lrc2RqMWxXekJkTFhSYk1GMHNiajFsV3pGZExYUmJNVjBzWnoxMkttSXRiaXBvTEVVOWRpcG9LMjRxWWp0eVpYUjFjbTViWnl0MFd6QmRMRVVyZEZzeFhWMTlablZ1WTNScGIyNGdWaWhsTEhRc2N5bDdjbVYwZFhKdUlHd29aU3htS0dFb2RDeGxLU3h6S1NsOVpuVnVZM1JwYjI0Z1dpaGxMSFFzY3lsN2NtVjBkWEp1SUd3b1pTeG1LSFFzY3lrcGZYWmhjbnR0YVc0Nlh5eFFTVHBuWlgwOVRXRjBhQ3h6WlQwdU1qYzFMR285WjJVck1XVXRORHRtZFc1amRHbHZiaUJwWlNobExIUTllMzBwZTJ4bGRIdHphWHBsT25NOU1UWXNjMjF2YjNSb2FXNW5PbWc5TGpVc2RHaHBibTVwYm1jNllqMHVOU3h6YVcxMWJHRjBaVkJ5WlhOemRYSmxPblk5SVRBc1pXRnphVzVuT200OWNqMCtjaXh6ZEdGeWREcG5QWHQ5TEdWdVpEcEZQWHQ5TEd4aGMzUTZlajBoTVgwOWRDeDdZMkZ3T21ROUlUQXNkR0Z3WlhJNmVEMHdMR1ZoYzJsdVp6cHhQWEk5UG5JcUtESXRjaWw5UFdjc2UyTmhjRHB0UFNFd0xIUmhjR1Z5T21NOU1DeGxZWE5wYm1jNlRUMXlQVDR0TFhJcWNpcHlLekY5UFVVN2FXWW9aUzVzWlc1bmRHZzlQVDB3Zkh4elBEMHdLWEpsZEhWeWJsdGRPMnhsZENCSVBXVmJaUzVzWlc1bmRHZ3RNVjB1Y25WdWJtbHVaMHhsYm1kMGFDd2tQVTFoZEdndWNHOTNLSE1xYUN3eUtTeEVQVnRkTEZJOVcxMHNUajFsTG5Oc2FXTmxLREFzTVRBcExuSmxaSFZqWlNnb2NpeHBLVDArZTJ4bGRDQnZQV2t1Y0hKbGMzTjFjbVU3YVdZb2RpbDdiR1YwSUhVOVh5Z3hMR2t1WkdsemRHRnVZMlV2Y3lrc1NqMWZLREVzTVMxMUtUdHZQVjhvTVN4eUt5aEtMWElwS2loMUtuTmxLU2w5Y21WMGRYSnVLSElyYnlrdk1uMHNaVnN3WFM1d2NtVnpjM1Z5WlNrc2NEMVhLSE1zWWl4bFcyVXViR1Z1WjNSb0xURmRMbkJ5WlhOemRYSmxMRzRwTEZVc1FqMWxXekJkTG5abFkzUnZjaXhKUFdWYk1GMHVjRzlwYm5Rc1F6MUpMSGs5U1N4UFBVTTdabTl5S0d4bGRDQnlQVEE3Y2p4bExteGxibWQwYUR0eUt5c3BlMnhsZEh0d2NtVnpjM1Z5WlRwcGZUMWxXM0pkTEh0d2IybHVkRHB2TEhabFkzUnZjanAxTEdScGMzUmhibU5sT2tvc2NuVnVibWx1WjB4bGJtZDBhRHBMZlQxbFczSmRPMmxtS0hJOFpTNXNaVzVuZEdndE1TWW1TQzFMUERNcFkyOXVkR2x1ZFdVN2FXWW9ZaWw3YVdZb2RpbDdiR1YwSUZBOVh5Z3hMRW92Y3lrc1VUMWZLREVzTVMxUUtUdHBQVjhvTVN4T0t5aFJMVTRwS2loUUtuTmxLU2w5Y0QxWEtITXNZaXhwTEc0cGZXVnNjMlVnY0Qxekx6STdWVDA5UFhadmFXUWdNQ1ltS0ZVOWNDazdiR1YwSUhCbFBVczhlRDl4S0VzdmVDazZNU3hoWlQxSUxVczhZejlOS0NoSUxVc3BMMk1wT2pFN2FXWW9jRDFOWVhSb0xtMWhlQ2d1TURFc2NDcE5ZWFJvTG0xcGJpaHdaU3hoWlNrcExISTlQVDFsTG14bGJtZDBhQzB4S1h0c1pYUWdVRDFtS0V3b2RTa3NjQ2s3UkM1d2RYTm9LR0VvYnl4UUtTa3NVaTV3ZFhOb0tHd29ieXhRS1NrN1kyOXVkR2x1ZFdWOWJHVjBJRUU5WlZ0eUt6RmRMblpsWTNSdmNpeGxaVDF1WlNoMUxFRXBPMmxtS0dWbFBEQXBlMnhsZENCUVBXWW9UQ2hDS1N4d0tUdG1iM0lvYkdWMElGRTlNUzh4TXl4M1BUQTdkenc5TVR0M0t6MVJLWGs5VkNoaEtHOHNVQ2tzYnl4cUtuY3BMRVF1Y0hWemFDaDVLU3hQUFZRb2JDaHZMRkFwTEc4c2Fpb3RkeWtzVWk1d2RYTm9LRThwTzBrOWVTeERQVTg3WTI5dWRHbHVkV1Y5YkdWMElIUmxQV1lvVENoV0tFRXNkU3hsWlNrcExIQXBPM2s5WVNodkxIUmxLU3dvY2p3OU1YeDhXU2hKTEhrcFBpUXBKaVlvUkM1d2RYTm9LSGtwTEVrOWVTa3NUejFzS0c4c2RHVXBMQ2h5UEQweGZIeFpLRU1zVHlrK0pDa21KaWhTTG5CMWMyZ29UeWtzUXoxUEtTeE9QV2tzUWoxMWZXeGxkQ0JUUFdWYk1GMHVjRzlwYm5RdWMyeHBZMlVvTUN3eUtTeHJQV1V1YkdWdVozUm9QakUvWlZ0bExteGxibWQwYUMweFhTNXdiMmx1ZEM1emJHbGpaU2d3TERJcE9td29aVnN3WFM1d2IybHVkQ3hiTVN3eFhTa3NXRDFiWFN4R1BWdGRPMmxtS0dVdWJHVnVaM1JvUFQwOU1TbDdhV1lvSVNoNGZIeGpLWHg4ZWlsN2JHVjBJSEk5V2loVExFY29UQ2hoS0ZNc2F5a3BLU3d0S0ZWOGZIQXBLU3hwUFZ0ZE8yWnZjaWhzWlhRZ2J6MHhMekV6TEhVOWJ6dDFQRDB4TzNVclBXOHBhUzV3ZFhOb0tGUW9jaXhUTEdvcU1pcDFLU2s3Y21WMGRYSnVJR2w5ZldWc2MyVjdhV1lvSVNoNGZIeGpKaVpsTG14bGJtZDBhRDA5UFRFcEtXbG1LR1FwWm05eUtHeGxkQ0JwUFRFdk1UTXNiejFwTzI4OFBURTdieXM5YVNsN2JHVjBJSFU5VkNoU1d6QmRMRk1zYWlwdktUdFlMbkIxYzJnb2RTbDlaV3h6Wlh0c1pYUWdhVDFoS0VSYk1GMHNVbHN3WFNrc2J6MW1LR2tzTGpVcExIVTlaaWhwTEM0MU1TazdXQzV3ZFhOb0tHRW9VeXh2S1N4aEtGTXNkU2tzYkNoVExIVXBMR3dvVXl4dktTbDliR1YwSUhJOVRDaHlaU2hsVzJVdWJHVnVaM1JvTFRGZExuWmxZM1J2Y2lrcE8ybG1LR044ZkhnbUptVXViR1Z1WjNSb1BUMDlNU2xHTG5CMWMyZ29heWs3Wld4elpTQnBaaWh0S1h0c1pYUWdhVDFhS0dzc2NpeHdLVHRtYjNJb2JHVjBJRzg5TVM4eU9TeDFQVzg3ZFR3eE8zVXJQVzhwUmk1d2RYTm9LRlFvYVN4ckxHb3FNeXAxS1NsOVpXeHpaU0JHTG5CMWMyZ29iQ2hyTEdZb2NpeHdLU2tzYkNockxHWW9jaXh3S2k0NU9Ta3BMR0VvYXl4bUtISXNjQ291T1RrcEtTeGhLR3NzWmloeUxIQXBLU2w5Y21WMGRYSnVJRVF1WTI5dVkyRjBLRVlzVWk1eVpYWmxjbk5sS0Nrc1dDbDlablZ1WTNScGIyNGdZMlVvWlN4MFBYdDlLWHQyWVhJZ2NUdHNaWFI3YzNSeVpXRnRiR2x1WlRwelBTNDFMSE5wZW1VNmFEMHhOaXhzWVhOME9tSTlJVEY5UFhRN2FXWW9aUzVzWlc1bmRHZzlQVDB3S1hKbGRIVnlibHRkTzJ4bGRDQjJQUzR4TlNzb01TMXpLU291T0RVc2JqMUJjbkpoZVM1cGMwRnljbUY1S0dWYk1GMHBQMlU2WlM1dFlYQW9LSHQ0T20wc2VUcGpMSEJ5WlhOemRYSmxPazA5TGpWOUtUMCtXMjBzWXl4TlhTazdhV1lvYmk1c1pXNW5kR2c5UFQweUtYdHNaWFFnYlQxdVd6RmRPMjQ5Ymk1emJHbGpaU2d3TEMweEtUdG1iM0lvYkdWMElHTTlNVHRqUERVN1l5c3JLVzR1Y0hWemFDaFdLRzViTUYwc2JTeGpMelFwS1gxdUxteGxibWQwYUQwOVBURW1KaWh1UFZzdUxpNXVMRnN1TGk1c0tHNWJNRjBzV3pFc01WMHBMQzR1TG01Yk1GMHVjMnhwWTJVb01pbGRYU2s3YkdWMElHYzlXM3R3YjJsdWREcGJibHN3WFZzd1hTeHVXekJkV3pGZFhTeHdjbVZ6YzNWeVpUcHVXekJkV3pKZFBqMHdQMjViTUYxYk1sMDZMakkxTEhabFkzUnZjanBiTVN3eFhTeGthWE4wWVc1alpUb3dMSEoxYm01cGJtZE1aVzVuZEdnNk1IMWRMRVU5SVRFc2VqMHdMR1E5WjFzd1hTeDRQVzR1YkdWdVozUm9MVEU3Wm05eUtHeGxkQ0J0UFRFN2JUeHVMbXhsYm1kMGFEdHRLeXNwZTJ4bGRDQmpQV0ltSm0wOVBUMTRQMjViYlYwdWMyeHBZMlVvTUN3eUtUcFdLR1F1Y0c5cGJuUXNibHR0WFN4MktUdHBaaWh2WlNoa0xuQnZhVzUwTEdNcEtXTnZiblJwYm5WbE8yeGxkQ0JOUFhWbEtHTXNaQzV3YjJsdWRDazdhV1lvZWlzOVRTeHRQSGdtSmlGRktYdHBaaWg2UEdncFkyOXVkR2x1ZFdVN1JUMGhNSDFrUFh0d2IybHVkRHBqTEhCeVpYTnpkWEpsT201YmJWMWJNbDArUFRBL2JsdHRYVnN5WFRvdU5TeDJaV04wYjNJNlJ5aGhLR1F1Y0c5cGJuUXNZeWtwTEdScGMzUmhibU5sT2swc2NuVnVibWx1WjB4bGJtZDBhRHA2ZlN4bkxuQjFjMmdvWkNsOWNtVjBkWEp1SUdkYk1GMHVkbVZqZEc5eVBTZ29jVDFuV3pGZEtUMDliblZzYkQ5MmIybGtJREE2Y1M1MlpXTjBiM0lwZkh4Yk1Dd3dYU3huZldaMWJtTjBhVzl1SUcxbEtHVXNkRDE3ZlNsN2NtVjBkWEp1SUdsbEtHTmxLR1VzZENrc2RDbDlkbUZ5SUZSbFBXMWxPMlY0Y0c5eWRIdFVaU0JoY3lCa1pXWmhkV3gwTEcxbElHRnpJR2RsZEZOMGNtOXJaU3hwWlNCaGN5Qm5aWFJUZEhKdmEyVlBkWFJzYVc1bFVHOXBiblJ6TEdObElHRnpJR2RsZEZOMGNtOXJaVkJ2YVc1MGMzMDdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcGVyZmVjdC1mcmVlaGFuZC9kaXN0L2VzbS9pbmRleC5qc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BvaW50cy1vbi1jdXJ2ZS9saWIvY3VydmUtdG8tYmV6aWVyLmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9pbnRzLW9uLWN1cnZlL2xpYi9jdXJ2ZS10by1iZXppZXIuanMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJjdXJ2ZVRvQmV6aWVyXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY3VydmVUb0JlemllcilcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG5mdW5jdGlvbiBjbG9uZShwKSB7XFxuICAgIHJldHVybiBbLi4ucF07XFxufVxcbmZ1bmN0aW9uIGN1cnZlVG9CZXppZXIocG9pbnRzSW4sIGN1cnZlVGlnaHRuZXNzID0gMCkge1xcbiAgICBjb25zdCBsZW4gPSBwb2ludHNJbi5sZW5ndGg7XFxuICAgIGlmIChsZW4gPCAzKSB7XFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0EgY3VydmUgbXVzdCBoYXZlIGF0IGxlYXN0IHRocmVlIHBvaW50cy4nKTtcXG4gICAgfVxcbiAgICBjb25zdCBvdXQgPSBbXTtcXG4gICAgaWYgKGxlbiA9PT0gMykge1xcbiAgICAgICAgb3V0LnB1c2goY2xvbmUocG9pbnRzSW5bMF0pLCBjbG9uZShwb2ludHNJblsxXSksIGNsb25lKHBvaW50c0luWzJdKSwgY2xvbmUocG9pbnRzSW5bMl0pKTtcXG4gICAgfVxcbiAgICBlbHNlIHtcXG4gICAgICAgIGNvbnN0IHBvaW50cyA9IFtdO1xcbiAgICAgICAgcG9pbnRzLnB1c2gocG9pbnRzSW5bMF0sIHBvaW50c0luWzBdKTtcXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgcG9pbnRzSW4ubGVuZ3RoOyBpKyspIHtcXG4gICAgICAgICAgICBwb2ludHMucHVzaChwb2ludHNJbltpXSk7XFxuICAgICAgICAgICAgaWYgKGkgPT09IChwb2ludHNJbi5sZW5ndGggLSAxKSkge1xcbiAgICAgICAgICAgICAgICBwb2ludHMucHVzaChwb2ludHNJbltpXSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3QgYiA9IFtdO1xcbiAgICAgICAgY29uc3QgcyA9IDEgLSBjdXJ2ZVRpZ2h0bmVzcztcXG4gICAgICAgIG91dC5wdXNoKGNsb25lKHBvaW50c1swXSkpO1xcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IChpICsgMikgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcXG4gICAgICAgICAgICBjb25zdCBjYWNoZWRWZXJ0QXJyYXkgPSBwb2ludHNbaV07XFxuICAgICAgICAgICAgYlswXSA9IFtjYWNoZWRWZXJ0QXJyYXlbMF0sIGNhY2hlZFZlcnRBcnJheVsxXV07XFxuICAgICAgICAgICAgYlsxXSA9IFtjYWNoZWRWZXJ0QXJyYXlbMF0gKyAocyAqIHBvaW50c1tpICsgMV1bMF0gLSBzICogcG9pbnRzW2kgLSAxXVswXSkgLyA2LCBjYWNoZWRWZXJ0QXJyYXlbMV0gKyAocyAqIHBvaW50c1tpICsgMV1bMV0gLSBzICogcG9pbnRzW2kgLSAxXVsxXSkgLyA2XTtcXG4gICAgICAgICAgICBiWzJdID0gW3BvaW50c1tpICsgMV1bMF0gKyAocyAqIHBvaW50c1tpXVswXSAtIHMgKiBwb2ludHNbaSArIDJdWzBdKSAvIDYsIHBvaW50c1tpICsgMV1bMV0gKyAocyAqIHBvaW50c1tpXVsxXSAtIHMgKiBwb2ludHNbaSArIDJdWzFdKSAvIDZdO1xcbiAgICAgICAgICAgIGJbM10gPSBbcG9pbnRzW2kgKyAxXVswXSwgcG9pbnRzW2kgKyAxXVsxXV07XFxuICAgICAgICAgICAgb3V0LnB1c2goYlsxXSwgYlsyXSwgYlszXSk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIG91dDtcXG59XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzQnZhVzUwY3kxdmJpMWpkWEoyWlM5c2FXSXZZM1Z5ZG1VdGRHOHRZbVY2YVdWeUxtcHpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3UVVGQlFUdEJRVU5CTzBGQlEwRTdRVUZEVHp0QlFVTlFPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3gzUWtGQmQwSXNjVUpCUVhGQ08wRkJRemRETzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeDNRa0ZCZDBJc2VVSkJRWGxDTzBGQlEycEVPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl3YjJsdWRITXRiMjR0WTNWeWRtVXZiR2xpTDJOMWNuWmxMWFJ2TFdKbGVtbGxjaTVxY3o4NE9EQXdJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1aMWJtTjBhVzl1SUdOc2IyNWxLSEFwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdXeTR1TG5CZE8xeHVmVnh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR04xY25abFZHOUNaWHBwWlhJb2NHOXBiblJ6U1c0c0lHTjFjblpsVkdsbmFIUnVaWE56SUQwZ01Da2dlMXh1SUNBZ0lHTnZibk4wSUd4bGJpQTlJSEJ2YVc1MGMwbHVMbXhsYm1kMGFEdGNiaUFnSUNCcFppQW9iR1Z1SUR3Z015a2dlMXh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMEVnWTNWeWRtVWdiWFZ6ZENCb1lYWmxJR0YwSUd4bFlYTjBJSFJvY21WbElIQnZhVzUwY3k0bktUdGNiaUFnSUNCOVhHNGdJQ0FnWTI5dWMzUWdiM1YwSUQwZ1cxMDdYRzRnSUNBZ2FXWWdLR3hsYmlBOVBUMGdNeWtnZTF4dUlDQWdJQ0FnSUNCdmRYUXVjSFZ6YUNoamJHOXVaU2h3YjJsdWRITkpibHN3WFNrc0lHTnNiMjVsS0hCdmFXNTBjMGx1V3pGZEtTd2dZMnh2Ym1Vb2NHOXBiblJ6U1c1Yk1sMHBMQ0JqYkc5dVpTaHdiMmx1ZEhOSmJsc3lYU2twTzF4dUlDQWdJSDFjYmlBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY0c5cGJuUnpJRDBnVzEwN1hHNGdJQ0FnSUNBZ0lIQnZhVzUwY3k1d2RYTm9LSEJ2YVc1MGMwbHVXekJkTENCd2IybHVkSE5KYmxzd1hTazdYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBeE95QnBJRHdnY0c5cGJuUnpTVzR1YkdWdVozUm9PeUJwS3lzcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhCdmFXNTBjeTV3ZFhOb0tIQnZhVzUwYzBsdVcybGRLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwSUQwOVBTQW9jRzlwYm5SelNXNHViR1Z1WjNSb0lDMGdNU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCd2IybHVkSE11Y0hWemFDaHdiMmx1ZEhOSmJsdHBYU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZaUE5SUZ0ZE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCeklEMGdNU0F0SUdOMWNuWmxWR2xuYUhSdVpYTnpPMXh1SUNBZ0lDQWdJQ0J2ZFhRdWNIVnphQ2hqYkc5dVpTaHdiMmx1ZEhOYk1GMHBLVHRjYmlBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYVNBOUlERTdJQ2hwSUNzZ01pa2dQQ0J3YjJsdWRITXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHTmhZMmhsWkZabGNuUkJjbkpoZVNBOUlIQnZhVzUwYzF0cFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdKYk1GMGdQU0JiWTJGamFHVmtWbVZ5ZEVGeWNtRjVXekJkTENCallXTm9aV1JXWlhKMFFYSnlZWGxiTVYxZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWWxzeFhTQTlJRnRqWVdOb1pXUldaWEowUVhKeVlYbGJNRjBnS3lBb2N5QXFJSEJ2YVc1MGMxdHBJQ3NnTVYxYk1GMGdMU0J6SUNvZ2NHOXBiblJ6VzJrZ0xTQXhYVnN3WFNrZ0x5QTJMQ0JqWVdOb1pXUldaWEowUVhKeVlYbGJNVjBnS3lBb2N5QXFJSEJ2YVc1MGMxdHBJQ3NnTVYxYk1WMGdMU0J6SUNvZ2NHOXBiblJ6VzJrZ0xTQXhYVnN4WFNrZ0x5QTJYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHSmJNbDBnUFNCYmNHOXBiblJ6VzJrZ0t5QXhYVnN3WFNBcklDaHpJQ29nY0c5cGJuUnpXMmxkV3pCZElDMGdjeUFxSUhCdmFXNTBjMXRwSUNzZ01sMWJNRjBwSUM4Z05pd2djRzlwYm5Selcya2dLeUF4WFZzeFhTQXJJQ2h6SUNvZ2NHOXBiblJ6VzJsZFd6RmRJQzBnY3lBcUlIQnZhVzUwYzF0cElDc2dNbDFiTVYwcElDOGdObDA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmlXek5kSUQwZ1czQnZhVzUwYzF0cElDc2dNVjFiTUYwc0lIQnZhVzUwYzF0cElDc2dNVjFiTVYxZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYjNWMExuQjFjMmdvWWxzeFhTd2dZbHN5WFN3Z1lsc3pYU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHOTFkRHRjYm4xY2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb2ludHMtb24tY3VydmUvbGliL2N1cnZlLXRvLWJlemllci5qc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BvaW50cy1vbi1jdXJ2ZS9saWIvaW5kZXguanNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BvaW50cy1vbi1jdXJ2ZS9saWIvaW5kZXguanMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInNpbXBsaWZ5XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gc2ltcGxpZnkpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInBvaW50c09uQmV6aWVyQ3VydmVzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcG9pbnRzT25CZXppZXJDdXJ2ZXMpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLy8gZGlzdGFuY2UgYmV0d2VlbiAyIHBvaW50c1xcbmZ1bmN0aW9uIGRpc3RhbmNlKHAxLCBwMikge1xcbiAgICByZXR1cm4gTWF0aC5zcXJ0KGRpc3RhbmNlU3EocDEsIHAyKSk7XFxufVxcbi8vIGRpc3RhbmNlIGJldHdlZW4gMiBwb2ludHMgc3F1YXJlZFxcbmZ1bmN0aW9uIGRpc3RhbmNlU3EocDEsIHAyKSB7XFxuICAgIHJldHVybiBNYXRoLnBvdyhwMVswXSAtIHAyWzBdLCAyKSArIE1hdGgucG93KHAxWzFdIC0gcDJbMV0sIDIpO1xcbn1cXG4vLyBTaXN0YW5jZSBzcXVhcmVkIGZyb20gYSBwb2ludCBwIHRvIHRoZSBsaW5lIHNlZ21lbnQgdndcXG5mdW5jdGlvbiBkaXN0YW5jZVRvU2VnbWVudFNxKHAsIHYsIHcpIHtcXG4gICAgY29uc3QgbDIgPSBkaXN0YW5jZVNxKHYsIHcpO1xcbiAgICBpZiAobDIgPT09IDApIHtcXG4gICAgICAgIHJldHVybiBkaXN0YW5jZVNxKHAsIHYpO1xcbiAgICB9XFxuICAgIGxldCB0ID0gKChwWzBdIC0gdlswXSkgKiAod1swXSAtIHZbMF0pICsgKHBbMV0gLSB2WzFdKSAqICh3WzFdIC0gdlsxXSkpIC8gbDI7XFxuICAgIHQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigxLCB0KSk7XFxuICAgIHJldHVybiBkaXN0YW5jZVNxKHAsIGxlcnAodiwgdywgdCkpO1xcbn1cXG5mdW5jdGlvbiBsZXJwKGEsIGIsIHQpIHtcXG4gICAgcmV0dXJuIFtcXG4gICAgICAgIGFbMF0gKyAoYlswXSAtIGFbMF0pICogdCxcXG4gICAgICAgIGFbMV0gKyAoYlsxXSAtIGFbMV0pICogdCxcXG4gICAgXTtcXG59XFxuLy8gQWRhcHRlZCBmcm9tIGh0dHBzOi8vc2VhbnQyMy53b3JkcHJlc3MuY29tLzIwMTAvMTEvMTIvb2Zmc2V0LWJlemllci1jdXJ2ZXMvXFxuZnVuY3Rpb24gZmxhdG5lc3MocG9pbnRzLCBvZmZzZXQpIHtcXG4gICAgY29uc3QgcDEgPSBwb2ludHNbb2Zmc2V0ICsgMF07XFxuICAgIGNvbnN0IHAyID0gcG9pbnRzW29mZnNldCArIDFdO1xcbiAgICBjb25zdCBwMyA9IHBvaW50c1tvZmZzZXQgKyAyXTtcXG4gICAgY29uc3QgcDQgPSBwb2ludHNbb2Zmc2V0ICsgM107XFxuICAgIGxldCB1eCA9IDMgKiBwMlswXSAtIDIgKiBwMVswXSAtIHA0WzBdO1xcbiAgICB1eCAqPSB1eDtcXG4gICAgbGV0IHV5ID0gMyAqIHAyWzFdIC0gMiAqIHAxWzFdIC0gcDRbMV07XFxuICAgIHV5ICo9IHV5O1xcbiAgICBsZXQgdnggPSAzICogcDNbMF0gLSAyICogcDRbMF0gLSBwMVswXTtcXG4gICAgdnggKj0gdng7XFxuICAgIGxldCB2eSA9IDMgKiBwM1sxXSAtIDIgKiBwNFsxXSAtIHAxWzFdO1xcbiAgICB2eSAqPSB2eTtcXG4gICAgaWYgKHV4IDwgdngpIHtcXG4gICAgICAgIHV4ID0gdng7XFxuICAgIH1cXG4gICAgaWYgKHV5IDwgdnkpIHtcXG4gICAgICAgIHV5ID0gdnk7XFxuICAgIH1cXG4gICAgcmV0dXJuIHV4ICsgdXk7XFxufVxcbmZ1bmN0aW9uIGdldFBvaW50c09uQmV6aWVyQ3VydmVXaXRoU3BsaXR0aW5nKHBvaW50cywgb2Zmc2V0LCB0b2xlcmFuY2UsIG5ld1BvaW50cykge1xcbiAgICBjb25zdCBvdXRQb2ludHMgPSBuZXdQb2ludHMgfHwgW107XFxuICAgIGlmIChmbGF0bmVzcyhwb2ludHMsIG9mZnNldCkgPCB0b2xlcmFuY2UpIHtcXG4gICAgICAgIGNvbnN0IHAwID0gcG9pbnRzW29mZnNldCArIDBdO1xcbiAgICAgICAgaWYgKG91dFBvaW50cy5sZW5ndGgpIHtcXG4gICAgICAgICAgICBjb25zdCBkID0gZGlzdGFuY2Uob3V0UG9pbnRzW291dFBvaW50cy5sZW5ndGggLSAxXSwgcDApO1xcbiAgICAgICAgICAgIGlmIChkID4gMSkge1xcbiAgICAgICAgICAgICAgICBvdXRQb2ludHMucHVzaChwMCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgb3V0UG9pbnRzLnB1c2gocDApO1xcbiAgICAgICAgfVxcbiAgICAgICAgb3V0UG9pbnRzLnB1c2gocG9pbnRzW29mZnNldCArIDNdKTtcXG4gICAgfVxcbiAgICBlbHNlIHtcXG4gICAgICAgIC8vIHN1YmRpdmlkZVxcbiAgICAgICAgY29uc3QgdCA9IC41O1xcbiAgICAgICAgY29uc3QgcDEgPSBwb2ludHNbb2Zmc2V0ICsgMF07XFxuICAgICAgICBjb25zdCBwMiA9IHBvaW50c1tvZmZzZXQgKyAxXTtcXG4gICAgICAgIGNvbnN0IHAzID0gcG9pbnRzW29mZnNldCArIDJdO1xcbiAgICAgICAgY29uc3QgcDQgPSBwb2ludHNbb2Zmc2V0ICsgM107XFxuICAgICAgICBjb25zdCBxMSA9IGxlcnAocDEsIHAyLCB0KTtcXG4gICAgICAgIGNvbnN0IHEyID0gbGVycChwMiwgcDMsIHQpO1xcbiAgICAgICAgY29uc3QgcTMgPSBsZXJwKHAzLCBwNCwgdCk7XFxuICAgICAgICBjb25zdCByMSA9IGxlcnAocTEsIHEyLCB0KTtcXG4gICAgICAgIGNvbnN0IHIyID0gbGVycChxMiwgcTMsIHQpO1xcbiAgICAgICAgY29uc3QgcmVkID0gbGVycChyMSwgcjIsIHQpO1xcbiAgICAgICAgZ2V0UG9pbnRzT25CZXppZXJDdXJ2ZVdpdGhTcGxpdHRpbmcoW3AxLCBxMSwgcjEsIHJlZF0sIDAsIHRvbGVyYW5jZSwgb3V0UG9pbnRzKTtcXG4gICAgICAgIGdldFBvaW50c09uQmV6aWVyQ3VydmVXaXRoU3BsaXR0aW5nKFtyZWQsIHIyLCBxMywgcDRdLCAwLCB0b2xlcmFuY2UsIG91dFBvaW50cyk7XFxuICAgIH1cXG4gICAgcmV0dXJuIG91dFBvaW50cztcXG59XFxuZnVuY3Rpb24gc2ltcGxpZnkocG9pbnRzLCBkaXN0YW5jZSkge1xcbiAgICByZXR1cm4gc2ltcGxpZnlQb2ludHMocG9pbnRzLCAwLCBwb2ludHMubGVuZ3RoLCBkaXN0YW5jZSk7XFxufVxcbi8vIFJhbWVyXHUyMDEzRG91Z2xhc1x1MjAxM1BldWNrZXIgYWxnb3JpdGhtXFxuLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUmFtZXIlRTIlODAlOTNEb3VnbGFzJUUyJTgwJTkzUGV1Y2tlcl9hbGdvcml0aG1cXG5mdW5jdGlvbiBzaW1wbGlmeVBvaW50cyhwb2ludHMsIHN0YXJ0LCBlbmQsIGVwc2lsb24sIG5ld1BvaW50cykge1xcbiAgICBjb25zdCBvdXRQb2ludHMgPSBuZXdQb2ludHMgfHwgW107XFxuICAgIC8vIGZpbmQgdGhlIG1vc3QgZGlzdGFuY2UgcG9pbnQgZnJvbSB0aGUgZW5kcG9pbnRzXFxuICAgIGNvbnN0IHMgPSBwb2ludHNbc3RhcnRdO1xcbiAgICBjb25zdCBlID0gcG9pbnRzW2VuZCAtIDFdO1xcbiAgICBsZXQgbWF4RGlzdFNxID0gMDtcXG4gICAgbGV0IG1heE5keCA9IDE7XFxuICAgIGZvciAobGV0IGkgPSBzdGFydCArIDE7IGkgPCBlbmQgLSAxOyArK2kpIHtcXG4gICAgICAgIGNvbnN0IGRpc3RTcSA9IGRpc3RhbmNlVG9TZWdtZW50U3EocG9pbnRzW2ldLCBzLCBlKTtcXG4gICAgICAgIGlmIChkaXN0U3EgPiBtYXhEaXN0U3EpIHtcXG4gICAgICAgICAgICBtYXhEaXN0U3EgPSBkaXN0U3E7XFxuICAgICAgICAgICAgbWF4TmR4ID0gaTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICAvLyBpZiB0aGF0IHBvaW50IGlzIHRvbyBmYXIsIHNwbGl0XFxuICAgIGlmIChNYXRoLnNxcnQobWF4RGlzdFNxKSA+IGVwc2lsb24pIHtcXG4gICAgICAgIHNpbXBsaWZ5UG9pbnRzKHBvaW50cywgc3RhcnQsIG1heE5keCArIDEsIGVwc2lsb24sIG91dFBvaW50cyk7XFxuICAgICAgICBzaW1wbGlmeVBvaW50cyhwb2ludHMsIG1heE5keCwgZW5kLCBlcHNpbG9uLCBvdXRQb2ludHMpO1xcbiAgICB9XFxuICAgIGVsc2Uge1xcbiAgICAgICAgaWYgKCFvdXRQb2ludHMubGVuZ3RoKSB7XFxuICAgICAgICAgICAgb3V0UG9pbnRzLnB1c2gocyk7XFxuICAgICAgICB9XFxuICAgICAgICBvdXRQb2ludHMucHVzaChlKTtcXG4gICAgfVxcbiAgICByZXR1cm4gb3V0UG9pbnRzO1xcbn1cXG5mdW5jdGlvbiBwb2ludHNPbkJlemllckN1cnZlcyhwb2ludHMsIHRvbGVyYW5jZSA9IDAuMTUsIGRpc3RhbmNlKSB7XFxuICAgIGNvbnN0IG5ld1BvaW50cyA9IFtdO1xcbiAgICBjb25zdCBudW1TZWdtZW50cyA9IChwb2ludHMubGVuZ3RoIC0gMSkgLyAzO1xcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVNlZ21lbnRzOyBpKyspIHtcXG4gICAgICAgIGNvbnN0IG9mZnNldCA9IGkgKiAzO1xcbiAgICAgICAgZ2V0UG9pbnRzT25CZXppZXJDdXJ2ZVdpdGhTcGxpdHRpbmcocG9pbnRzLCBvZmZzZXQsIHRvbGVyYW5jZSwgbmV3UG9pbnRzKTtcXG4gICAgfVxcbiAgICBpZiAoZGlzdGFuY2UgJiYgZGlzdGFuY2UgPiAwKSB7XFxuICAgICAgICByZXR1cm4gc2ltcGxpZnlQb2ludHMobmV3UG9pbnRzLCAwLCBuZXdQb2ludHMubGVuZ3RoLCBkaXN0YW5jZSk7XFxuICAgIH1cXG4gICAgcmV0dXJuIG5ld1BvaW50cztcXG59XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzQnZhVzUwY3kxdmJpMWpkWEoyWlM5c2FXSXZhVzVrWlhndWFuTXVhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3UVVGQlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOUE8wRkJRMUE3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTERSQ1FVRTBRaXhoUVVGaE8wRkJRM3BETzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwODdRVUZEVUR0QlFVTkJPMEZCUTBFc2IwSkJRVzlDTEdsQ1FVRnBRanRCUVVOeVF6dEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQklpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OXdiMmx1ZEhNdGIyNHRZM1Z5ZG1VdmJHbGlMMmx1WkdWNExtcHpQemhqTjJZaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeThnWkdsemRHRnVZMlVnWW1WMGQyVmxiaUF5SUhCdmFXNTBjMXh1Wm5WdVkzUnBiMjRnWkdsemRHRnVZMlVvY0RFc0lIQXlLU0I3WEc0Z0lDQWdjbVYwZFhKdUlFMWhkR2d1YzNGeWRDaGthWE4wWVc1alpWTnhLSEF4TENCd01pa3BPMXh1ZlZ4dUx5OGdaR2x6ZEdGdVkyVWdZbVYwZDJWbGJpQXlJSEJ2YVc1MGN5QnpjWFZoY21Wa1hHNW1kVzVqZEdsdmJpQmthWE4wWVc1alpWTnhLSEF4TENCd01pa2dlMXh1SUNBZ0lISmxkSFZ5YmlCTllYUm9MbkJ2ZHlod01Wc3dYU0F0SUhBeVd6QmRMQ0F5S1NBcklFMWhkR2d1Y0c5M0tIQXhXekZkSUMwZ2NESmJNVjBzSURJcE8xeHVmVnh1THk4Z1UybHpkR0Z1WTJVZ2MzRjFZWEpsWkNCbWNtOXRJR0VnY0c5cGJuUWdjQ0IwYnlCMGFHVWdiR2x1WlNCelpXZHRaVzUwSUhaM1hHNW1kVzVqZEdsdmJpQmthWE4wWVc1alpWUnZVMlZuYldWdWRGTnhLSEFzSUhZc0lIY3BJSHRjYmlBZ0lDQmpiMjV6ZENCc01pQTlJR1JwYzNSaGJtTmxVM0VvZGl3Z2R5azdYRzRnSUNBZ2FXWWdLR3d5SUQwOVBTQXdLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJrYVhOMFlXNWpaVk54S0hBc0lIWXBPMXh1SUNBZ0lIMWNiaUFnSUNCc1pYUWdkQ0E5SUNnb2NGc3dYU0F0SUhaYk1GMHBJQ29nS0hkYk1GMGdMU0IyV3pCZEtTQXJJQ2h3V3pGZElDMGdkbHN4WFNrZ0tpQW9kMXN4WFNBdElIWmJNVjBwS1NBdklHd3lPMXh1SUNBZ0lIUWdQU0JOWVhSb0xtMWhlQ2d3TENCTllYUm9MbTFwYmlneExDQjBLU2s3WEc0Z0lDQWdjbVYwZFhKdUlHUnBjM1JoYm1ObFUzRW9jQ3dnYkdWeWNDaDJMQ0IzTENCMEtTazdYRzU5WEc1bWRXNWpkR2x2YmlCc1pYSndLR0VzSUdJc0lIUXBJSHRjYmlBZ0lDQnlaWFIxY200Z1cxeHVJQ0FnSUNBZ0lDQmhXekJkSUNzZ0tHSmJNRjBnTFNCaFd6QmRLU0FxSUhRc1hHNGdJQ0FnSUNBZ0lHRmJNVjBnS3lBb1lsc3hYU0F0SUdGYk1WMHBJQ29nZEN4Y2JpQWdJQ0JkTzF4dWZWeHVMeThnUVdSaGNIUmxaQ0JtY205dElHaDBkSEJ6T2k4dmMyVmhiblF5TXk1M2IzSmtjSEpsYzNNdVkyOXRMekl3TVRBdk1URXZNVEl2YjJabWMyVjBMV0psZW1sbGNpMWpkWEoyWlhNdlhHNW1kVzVqZEdsdmJpQm1iR0YwYm1WemN5aHdiMmx1ZEhNc0lHOW1abk5sZENrZ2UxeHVJQ0FnSUdOdmJuTjBJSEF4SUQwZ2NHOXBiblJ6VzI5bVpuTmxkQ0FySURCZE8xeHVJQ0FnSUdOdmJuTjBJSEF5SUQwZ2NHOXBiblJ6VzI5bVpuTmxkQ0FySURGZE8xeHVJQ0FnSUdOdmJuTjBJSEF6SUQwZ2NHOXBiblJ6VzI5bVpuTmxkQ0FySURKZE8xeHVJQ0FnSUdOdmJuTjBJSEEwSUQwZ2NHOXBiblJ6VzI5bVpuTmxkQ0FySUROZE8xeHVJQ0FnSUd4bGRDQjFlQ0E5SURNZ0tpQndNbHN3WFNBdElESWdLaUJ3TVZzd1hTQXRJSEEwV3pCZE8xeHVJQ0FnSUhWNElDbzlJSFY0TzF4dUlDQWdJR3hsZENCMWVTQTlJRE1nS2lCd01sc3hYU0F0SURJZ0tpQndNVnN4WFNBdElIQTBXekZkTzF4dUlDQWdJSFY1SUNvOUlIVjVPMXh1SUNBZ0lHeGxkQ0IyZUNBOUlETWdLaUJ3TTFzd1hTQXRJRElnS2lCd05Gc3dYU0F0SUhBeFd6QmRPMXh1SUNBZ0lIWjRJQ285SUhaNE8xeHVJQ0FnSUd4bGRDQjJlU0E5SURNZ0tpQndNMXN4WFNBdElESWdLaUJ3TkZzeFhTQXRJSEF4V3pGZE8xeHVJQ0FnSUhaNUlDbzlJSFo1TzF4dUlDQWdJR2xtSUNoMWVDQThJSFo0S1NCN1hHNGdJQ0FnSUNBZ0lIVjRJRDBnZG5nN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoMWVTQThJSFo1S1NCN1hHNGdJQ0FnSUNBZ0lIVjVJRDBnZG5rN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjFlQ0FySUhWNU8xeHVmVnh1Wm5WdVkzUnBiMjRnWjJWMFVHOXBiblJ6VDI1Q1pYcHBaWEpEZFhKMlpWZHBkR2hUY0d4cGRIUnBibWNvY0c5cGJuUnpMQ0J2Wm1aelpYUXNJSFJ2YkdWeVlXNWpaU3dnYm1WM1VHOXBiblJ6S1NCN1hHNGdJQ0FnWTI5dWMzUWdiM1YwVUc5cGJuUnpJRDBnYm1WM1VHOXBiblJ6SUh4OElGdGRPMXh1SUNBZ0lHbG1JQ2htYkdGMGJtVnpjeWh3YjJsdWRITXNJRzltWm5ObGRDa2dQQ0IwYjJ4bGNtRnVZMlVwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY0RBZ1BTQndiMmx1ZEhOYmIyWm1jMlYwSUNzZ01GMDdYRzRnSUNBZ0lDQWdJR2xtSUNodmRYUlFiMmx1ZEhNdWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmtJRDBnWkdsemRHRnVZMlVvYjNWMFVHOXBiblJ6VzI5MWRGQnZhVzUwY3k1c1pXNW5kR2dnTFNBeFhTd2djREFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dRZ1BpQXhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjNWMFVHOXBiblJ6TG5CMWMyZ29jREFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2IzVjBVRzlwYm5SekxuQjFjMmdvY0RBcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJRzkxZEZCdmFXNTBjeTV3ZFhOb0tIQnZhVzUwYzF0dlptWnpaWFFnS3lBelhTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0F2THlCemRXSmthWFpwWkdWY2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZENBOUlDNDFPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQndNU0E5SUhCdmFXNTBjMXR2Wm1aelpYUWdLeUF3WFR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY0RJZ1BTQndiMmx1ZEhOYmIyWm1jMlYwSUNzZ01WMDdYRzRnSUNBZ0lDQWdJR052Ym5OMElIQXpJRDBnY0c5cGJuUnpXMjltWm5ObGRDQXJJREpkTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3TkNBOUlIQnZhVzUwYzF0dlptWnpaWFFnS3lBelhUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NURWdQU0JzWlhKd0tIQXhMQ0J3TWl3Z2RDazdYRzRnSUNBZ0lDQWdJR052Ym5OMElIRXlJRDBnYkdWeWNDaHdNaXdnY0RNc0lIUXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnhNeUE5SUd4bGNuQW9jRE1zSUhBMExDQjBLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjakVnUFNCc1pYSndLSEV4TENCeE1pd2dkQ2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEl5SUQwZ2JHVnljQ2h4TWl3Z2NUTXNJSFFwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J5WldRZ1BTQnNaWEp3S0hJeExDQnlNaXdnZENrN1hHNGdJQ0FnSUNBZ0lHZGxkRkJ2YVc1MGMwOXVRbVY2YVdWeVEzVnlkbVZYYVhSb1UzQnNhWFIwYVc1bktGdHdNU3dnY1RFc0lISXhMQ0J5WldSZExDQXdMQ0IwYjJ4bGNtRnVZMlVzSUc5MWRGQnZhVzUwY3lrN1hHNGdJQ0FnSUNBZ0lHZGxkRkJ2YVc1MGMwOXVRbVY2YVdWeVEzVnlkbVZYYVhSb1UzQnNhWFIwYVc1bktGdHlaV1FzSUhJeUxDQnhNeXdnY0RSZExDQXdMQ0IwYjJ4bGNtRnVZMlVzSUc5MWRGQnZhVzUwY3lrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnZkWFJRYjJsdWRITTdYRzU5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYzJsdGNHeHBabmtvY0c5cGJuUnpMQ0JrYVhOMFlXNWpaU2tnZTF4dUlDQWdJSEpsZEhWeWJpQnphVzF3YkdsbWVWQnZhVzUwY3lod2IybHVkSE1zSURBc0lIQnZhVzUwY3k1c1pXNW5kR2dzSUdScGMzUmhibU5sS1R0Y2JuMWNiaTh2SUZKaGJXVnk0b0NUUkc5MVoyeGhjK0tBazFCbGRXTnJaWElnWVd4bmIzSnBkR2h0WEc0dkx5Qm9kSFJ3Y3pvdkwyVnVMbmRwYTJsd1pXUnBZUzV2Y21jdmQybHJhUzlTWVcxbGNpVkZNaVU0TUNVNU0wUnZkV2RzWVhNbFJUSWxPREFsT1ROUVpYVmphMlZ5WDJGc1oyOXlhWFJvYlZ4dVpuVnVZM1JwYjI0Z2MybHRjR3hwWm5sUWIybHVkSE1vY0c5cGJuUnpMQ0J6ZEdGeWRDd2daVzVrTENCbGNITnBiRzl1TENCdVpYZFFiMmx1ZEhNcElIdGNiaUFnSUNCamIyNXpkQ0J2ZFhSUWIybHVkSE1nUFNCdVpYZFFiMmx1ZEhNZ2ZId2dXMTA3WEc0Z0lDQWdMeThnWm1sdVpDQjBhR1VnYlc5emRDQmthWE4wWVc1alpTQndiMmx1ZENCbWNtOXRJSFJvWlNCbGJtUndiMmx1ZEhOY2JpQWdJQ0JqYjI1emRDQnpJRDBnY0c5cGJuUnpXM04wWVhKMFhUdGNiaUFnSUNCamIyNXpkQ0JsSUQwZ2NHOXBiblJ6VzJWdVpDQXRJREZkTzF4dUlDQWdJR3hsZENCdFlYaEVhWE4wVTNFZ1BTQXdPMXh1SUNBZ0lHeGxkQ0J0WVhoT1pIZ2dQU0F4TzF4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNCemRHRnlkQ0FySURFN0lHa2dQQ0JsYm1RZ0xTQXhPeUFySzJrcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1pHbHpkRk54SUQwZ1pHbHpkR0Z1WTJWVWIxTmxaMjFsYm5SVGNTaHdiMmx1ZEhOYmFWMHNJSE1zSUdVcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvWkdsemRGTnhJRDRnYldGNFJHbHpkRk54S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0WVhoRWFYTjBVM0VnUFNCa2FYTjBVM0U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnRZWGhPWkhnZ1BTQnBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lDOHZJR2xtSUhSb1lYUWdjRzlwYm5RZ2FYTWdkRzl2SUdaaGNpd2djM0JzYVhSY2JpQWdJQ0JwWmlBb1RXRjBhQzV6Y1hKMEtHMWhlRVJwYzNSVGNTa2dQaUJsY0hOcGJHOXVLU0I3WEc0Z0lDQWdJQ0FnSUhOcGJYQnNhV1o1VUc5cGJuUnpLSEJ2YVc1MGN5d2djM1JoY25Rc0lHMWhlRTVrZUNBcklERXNJR1Z3YzJsc2IyNHNJRzkxZEZCdmFXNTBjeWs3WEc0Z0lDQWdJQ0FnSUhOcGJYQnNhV1o1VUc5cGJuUnpLSEJ2YVc1MGN5d2diV0Y0VG1SNExDQmxibVFzSUdWd2MybHNiMjRzSUc5MWRGQnZhVzUwY3lrN1hHNGdJQ0FnZlZ4dUlDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvSVc5MWRGQnZhVzUwY3k1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRzkxZEZCdmFXNTBjeTV3ZFhOb0tITXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUc5MWRGQnZhVzUwY3k1d2RYTm9LR1VwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2IzVjBVRzlwYm5Sek8xeHVmVnh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEJ2YVc1MGMwOXVRbVY2YVdWeVEzVnlkbVZ6S0hCdmFXNTBjeXdnZEc5c1pYSmhibU5sSUQwZ01DNHhOU3dnWkdsemRHRnVZMlVwSUh0Y2JpQWdJQ0JqYjI1emRDQnVaWGRRYjJsdWRITWdQU0JiWFR0Y2JpQWdJQ0JqYjI1emRDQnVkVzFUWldkdFpXNTBjeUE5SUNod2IybHVkSE11YkdWdVozUm9JQzBnTVNrZ0x5QXpPMXh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2diblZ0VTJWbmJXVnVkSE03SUdrckt5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnZabVp6WlhRZ1BTQnBJQ29nTXp0Y2JpQWdJQ0FnSUNBZ1oyVjBVRzlwYm5SelQyNUNaWHBwWlhKRGRYSjJaVmRwZEdoVGNHeHBkSFJwYm1jb2NHOXBiblJ6TENCdlptWnpaWFFzSUhSdmJHVnlZVzVqWlN3Z2JtVjNVRzlwYm5SektUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tHUnBjM1JoYm1ObElDWW1JR1JwYzNSaGJtTmxJRDRnTUNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2MybHRjR3hwWm5sUWIybHVkSE1vYm1WM1VHOXBiblJ6TENBd0xDQnVaWGRRYjJsdWRITXViR1Z1WjNSb0xDQmthWE4wWVc1alpTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ1WlhkUWIybHVkSE03WEc1OVhHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb2ludHMtb24tY3VydmUvbGliL2luZGV4LmpzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9pbnRzLW9uLXBhdGgvbGliL2luZGV4LmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BvaW50cy1vbi1wYXRoL2xpYi9pbmRleC5qcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJwb2ludHNPblBhdGhcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBwb2ludHNPblBhdGgpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHBvaW50c19vbl9jdXJ2ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcG9pbnRzLW9uLWN1cnZlICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9pbnRzLW9uLWN1cnZlL2xpYi9pbmRleC5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBwYXRoX2RhdGFfcGFyc2VyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBwYXRoLWRhdGEtcGFyc2VyICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcGF0aC1kYXRhLXBhcnNlci9saWIvaW5kZXguanNcXFwiKTtcXG5cXG5cXG5mdW5jdGlvbiBwb2ludHNPblBhdGgocGF0aCwgdG9sZXJhbmNlLCBkaXN0YW5jZSkge1xcbiAgICBjb25zdCBzZWdtZW50cyA9ICgwLHBhdGhfZGF0YV9wYXJzZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5wYXJzZVBhdGgpKHBhdGgpO1xcbiAgICBjb25zdCBub3JtYWxpemVkID0gKDAscGF0aF9kYXRhX3BhcnNlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLm5vcm1hbGl6ZSkoKDAscGF0aF9kYXRhX3BhcnNlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmFic29sdXRpemUpKHNlZ21lbnRzKSk7XFxuICAgIGNvbnN0IHNldHMgPSBbXTtcXG4gICAgbGV0IGN1cnJlbnRQb2ludHMgPSBbXTtcXG4gICAgbGV0IHN0YXJ0ID0gWzAsIDBdO1xcbiAgICBsZXQgcGVuZGluZ0N1cnZlID0gW107XFxuICAgIGNvbnN0IGFwcGVuZFBlbmRpbmdDdXJ2ZSA9ICgpID0+IHtcXG4gICAgICAgIGlmIChwZW5kaW5nQ3VydmUubGVuZ3RoID49IDQpIHtcXG4gICAgICAgICAgICBjdXJyZW50UG9pbnRzLnB1c2goLi4uKDAscG9pbnRzX29uX2N1cnZlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucG9pbnRzT25CZXppZXJDdXJ2ZXMpKHBlbmRpbmdDdXJ2ZSwgdG9sZXJhbmNlKSk7XFxuICAgICAgICB9XFxuICAgICAgICBwZW5kaW5nQ3VydmUgPSBbXTtcXG4gICAgfTtcXG4gICAgY29uc3QgYXBwZW5kUGVuZGluZ1BvaW50cyA9ICgpID0+IHtcXG4gICAgICAgIGFwcGVuZFBlbmRpbmdDdXJ2ZSgpO1xcbiAgICAgICAgaWYgKGN1cnJlbnRQb2ludHMubGVuZ3RoKSB7XFxuICAgICAgICAgICAgc2V0cy5wdXNoKGN1cnJlbnRQb2ludHMpO1xcbiAgICAgICAgICAgIGN1cnJlbnRQb2ludHMgPSBbXTtcXG4gICAgICAgIH1cXG4gICAgfTtcXG4gICAgZm9yIChjb25zdCB7IGtleSwgZGF0YSB9IG9mIG5vcm1hbGl6ZWQpIHtcXG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XFxuICAgICAgICAgICAgY2FzZSAnTSc6XFxuICAgICAgICAgICAgICAgIGFwcGVuZFBlbmRpbmdQb2ludHMoKTtcXG4gICAgICAgICAgICAgICAgc3RhcnQgPSBbZGF0YVswXSwgZGF0YVsxXV07XFxuICAgICAgICAgICAgICAgIGN1cnJlbnRQb2ludHMucHVzaChzdGFydCk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ0wnOlxcbiAgICAgICAgICAgICAgICBhcHBlbmRQZW5kaW5nQ3VydmUoKTtcXG4gICAgICAgICAgICAgICAgY3VycmVudFBvaW50cy5wdXNoKFtkYXRhWzBdLCBkYXRhWzFdXSk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ0MnOlxcbiAgICAgICAgICAgICAgICBpZiAoIXBlbmRpbmdDdXJ2ZS5sZW5ndGgpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RQb2ludCA9IGN1cnJlbnRQb2ludHMubGVuZ3RoID8gY3VycmVudFBvaW50c1tjdXJyZW50UG9pbnRzLmxlbmd0aCAtIDFdIDogc3RhcnQ7XFxuICAgICAgICAgICAgICAgICAgICBwZW5kaW5nQ3VydmUucHVzaChbbGFzdFBvaW50WzBdLCBsYXN0UG9pbnRbMV1dKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBwZW5kaW5nQ3VydmUucHVzaChbZGF0YVswXSwgZGF0YVsxXV0pO1xcbiAgICAgICAgICAgICAgICBwZW5kaW5nQ3VydmUucHVzaChbZGF0YVsyXSwgZGF0YVszXV0pO1xcbiAgICAgICAgICAgICAgICBwZW5kaW5nQ3VydmUucHVzaChbZGF0YVs0XSwgZGF0YVs1XV0pO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICdaJzpcXG4gICAgICAgICAgICAgICAgYXBwZW5kUGVuZGluZ0N1cnZlKCk7XFxuICAgICAgICAgICAgICAgIGN1cnJlbnRQb2ludHMucHVzaChbc3RhcnRbMF0sIHN0YXJ0WzFdXSk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIGFwcGVuZFBlbmRpbmdQb2ludHMoKTtcXG4gICAgaWYgKCFkaXN0YW5jZSkge1xcbiAgICAgICAgcmV0dXJuIHNldHM7XFxuICAgIH1cXG4gICAgY29uc3Qgb3V0ID0gW107XFxuICAgIGZvciAoY29uc3Qgc2V0IG9mIHNldHMpIHtcXG4gICAgICAgIGNvbnN0IHNpbXBsaWZpZWRTZXQgPSAoMCxwb2ludHNfb25fY3VydmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5zaW1wbGlmeSkoc2V0LCBkaXN0YW5jZSk7XFxuICAgICAgICBpZiAoc2ltcGxpZmllZFNldC5sZW5ndGgpIHtcXG4gICAgICAgICAgICBvdXQucHVzaChzaW1wbGlmaWVkU2V0KTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICByZXR1cm4gb3V0O1xcbn1cXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDNCdmFXNTBjeTF2Ymkxd1lYUm9MMnhwWWk5cGJtUmxlQzVxY3k1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdRVUZCYVVVN1FVRkRSenRCUVVNM1JEdEJRVU5RTEhGQ1FVRnhRaXd5UkVGQlV6dEJRVU01UWl4MVFrRkJkVUlzTWtSQlFWTXNRMEZCUXl3MFJFRkJWVHRCUVVNelF6dEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hyUTBGQmEwTXNjVVZCUVc5Q08wRkJRM1JFTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNhVUpCUVdsQ0xGbEJRVms3UVVGRE4wSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3c0UWtGQk9FSXNlVVJCUVZFN1FVRkRkRU03UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl3YjJsdWRITXRiMjR0Y0dGMGFDOXNhV0l2YVc1a1pYZ3Vhbk0vTVdOa1pTSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJ3YjJsdWRITlBia0psZW1sbGNrTjFjblpsY3l3Z2MybHRjR3hwWm5rZ2ZTQm1jbTl0SUNkd2IybHVkSE10YjI0dFkzVnlkbVVuTzF4dWFXMXdiM0owSUhzZ2NHRnljMlZRWVhSb0xDQmhZbk52YkhWMGFYcGxMQ0J1YjNKdFlXeHBlbVVnZlNCbWNtOXRJQ2R3WVhSb0xXUmhkR0V0Y0dGeWMyVnlKenRjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ3YjJsdWRITlBibEJoZEdnb2NHRjBhQ3dnZEc5c1pYSmhibU5sTENCa2FYTjBZVzVqWlNrZ2UxeHVJQ0FnSUdOdmJuTjBJSE5sWjIxbGJuUnpJRDBnY0dGeWMyVlFZWFJvS0hCaGRHZ3BPMXh1SUNBZ0lHTnZibk4wSUc1dmNtMWhiR2w2WldRZ1BTQnViM0p0WVd4cGVtVW9ZV0p6YjJ4MWRHbDZaU2h6WldkdFpXNTBjeWtwTzF4dUlDQWdJR052Ym5OMElITmxkSE1nUFNCYlhUdGNiaUFnSUNCc1pYUWdZM1Z5Y21WdWRGQnZhVzUwY3lBOUlGdGRPMXh1SUNBZ0lHeGxkQ0J6ZEdGeWRDQTlJRnN3TENBd1hUdGNiaUFnSUNCc1pYUWdjR1Z1WkdsdVowTjFjblpsSUQwZ1cxMDdYRzRnSUNBZ1kyOXVjM1FnWVhCd1pXNWtVR1Z1WkdsdVowTjFjblpsSUQwZ0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNCcFppQW9jR1Z1WkdsdVowTjFjblpsTG14bGJtZDBhQ0ErUFNBMEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamRYSnlaVzUwVUc5cGJuUnpMbkIxYzJnb0xpNHVjRzlwYm5SelQyNUNaWHBwWlhKRGRYSjJaWE1vY0dWdVpHbHVaME4xY25abExDQjBiMnhsY21GdVkyVXBLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCd1pXNWthVzVuUTNWeWRtVWdQU0JiWFR0Y2JpQWdJQ0I5TzF4dUlDQWdJR052Ym5OMElHRndjR1Z1WkZCbGJtUnBibWRRYjJsdWRITWdQU0FvS1NBOVBpQjdYRzRnSUNBZ0lDQWdJR0Z3Y0dWdVpGQmxibVJwYm1kRGRYSjJaU2dwTzF4dUlDQWdJQ0FnSUNCcFppQW9ZM1Z5Y21WdWRGQnZhVzUwY3k1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSE5sZEhNdWNIVnphQ2hqZFhKeVpXNTBVRzlwYm5SektUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOMWNuSmxiblJRYjJsdWRITWdQU0JiWFR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgwN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCN0lHdGxlU3dnWkdGMFlTQjlJRzltSUc1dmNtMWhiR2w2WldRcElIdGNiaUFnSUNBZ0lDQWdjM2RwZEdOb0lDaHJaWGtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0owMG5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0Z3Y0dWdVpGQmxibVJwYm1kUWIybHVkSE1vS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRHRnlkQ0E5SUZ0a1lYUmhXekJkTENCa1lYUmhXekZkWFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamRYSnlaVzUwVUc5cGJuUnpMbkIxYzJnb2MzUmhjblFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuVENjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1lYQndaVzVrVUdWdVpHbHVaME4xY25abEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM1Z5Y21WdWRGQnZhVzUwY3k1d2RYTm9LRnRrWVhSaFd6QmRMQ0JrWVhSaFd6RmRYU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RESnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JWEJsYm1ScGJtZERkWEoyWlM1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JHRnpkRkJ2YVc1MElEMGdZM1Z5Y21WdWRGQnZhVzUwY3k1c1pXNW5kR2dnUHlCamRYSnlaVzUwVUc5cGJuUnpXMk4xY25KbGJuUlFiMmx1ZEhNdWJHVnVaM1JvSUMwZ01WMGdPaUJ6ZEdGeWREdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0dWdVpHbHVaME4xY25abExuQjFjMmdvVzJ4aGMzUlFiMmx1ZEZzd1hTd2diR0Z6ZEZCdmFXNTBXekZkWFNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIQmxibVJwYm1kRGRYSjJaUzV3ZFhOb0tGdGtZWFJoV3pCZExDQmtZWFJoV3pGZFhTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjR1Z1WkdsdVowTjFjblpsTG5CMWMyZ29XMlJoZEdGYk1sMHNJR1JoZEdGYk0xMWRLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3Wlc1a2FXNW5RM1Z5ZG1VdWNIVnphQ2hiWkdGMFlWczBYU3dnWkdGMFlWczFYVjBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuV2ljNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1lYQndaVzVrVUdWdVpHbHVaME4xY25abEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM1Z5Y21WdWRGQnZhVzUwY3k1d2RYTm9LRnR6ZEdGeWRGc3dYU3dnYzNSaGNuUmJNVjFkS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQmhjSEJsYm1SUVpXNWthVzVuVUc5cGJuUnpLQ2s3WEc0Z0lDQWdhV1lnS0NGa2FYTjBZVzVqWlNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2MyVjBjenRjYmlBZ0lDQjlYRzRnSUNBZ1kyOXVjM1FnYjNWMElEMGdXMTA3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0J6WlhRZ2IyWWdjMlYwY3lrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCemFXMXdiR2xtYVdWa1UyVjBJRDBnYzJsdGNHeHBabmtvYzJWMExDQmthWE4wWVc1alpTazdYRzRnSUNBZ0lDQWdJR2xtSUNoemFXMXdiR2xtYVdWa1UyVjBMbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2IzVjBMbkIxYzJnb2MybHRjR3hwWm1sbFpGTmxkQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHOTFkRHRjYm4xY2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb2ludHMtb24tcGF0aC9saWIvaW5kZXguanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QtanN4LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LWpzeC1ydW50aW1lLmRldmVsb3BtZW50LmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIi8qKiBAbGljZW5zZSBSZWFjdCB2MTcuMC4yXFxuICogcmVhY3QtanN4LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanNcXG4gKlxcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxcbiAqXFxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXFxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxcbiAqL1xcblxcblxcblxcbmlmICh0cnVlKSB7XFxuICAoZnVuY3Rpb24oKSB7XFxuJ3VzZSBzdHJpY3QnO1xcblxcbnZhciBSZWFjdCA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0ICovIFxcXCJyZWFjdFxcXCIpO1xcbnZhciBfYXNzaWduID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgb2JqZWN0LWFzc2lnbiAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29iamVjdC1hc3NpZ24vaW5kZXguanNcXFwiKTtcXG5cXG4vLyBBVFRFTlRJT05cXG4vLyBXaGVuIGFkZGluZyBuZXcgc3ltYm9scyB0byB0aGlzIGZpbGUsXFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xcbi8vIFRoZSBTeW1ib2wgdXNlZCB0byB0YWcgdGhlIFJlYWN0RWxlbWVudC1saWtlIHR5cGVzLiBJZiB0aGVyZSBpcyBubyBuYXRpdmUgU3ltYm9sXFxuLy8gbm9yIHBvbHlmaWxsLCB0aGVuIGEgcGxhaW4gbnVtYmVyIGlzIHVzZWQgZm9yIHBlcmZvcm1hbmNlLlxcbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSAweGVhYzc7XFxudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gMHhlYWNhO1xcbmV4cG9ydHMuRnJhZ21lbnQgPSAweGVhY2I7XFxudmFyIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSAweGVhY2M7XFxudmFyIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSAweGVhZDI7XFxudmFyIFJFQUNUX1BST1ZJREVSX1RZUEUgPSAweGVhY2Q7XFxudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IDB4ZWFjZTtcXG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IDB4ZWFkMDtcXG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IDB4ZWFkMTtcXG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gMHhlYWQ4O1xcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSAweGVhZDM7XFxudmFyIFJFQUNUX0xBWllfVFlQRSA9IDB4ZWFkNDtcXG52YXIgUkVBQ1RfQkxPQ0tfVFlQRSA9IDB4ZWFkOTtcXG52YXIgUkVBQ1RfU0VSVkVSX0JMT0NLX1RZUEUgPSAweGVhZGE7XFxudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSAweGVhZDU7XFxudmFyIFJFQUNUX1NDT1BFX1RZUEUgPSAweGVhZDc7XFxudmFyIFJFQUNUX09QQVFVRV9JRF9UWVBFID0gMHhlYWUwO1xcbnZhciBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IDB4ZWFlMTtcXG52YXIgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSAweGVhZTI7XFxudmFyIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSA9IDB4ZWFlMztcXG5cXG5pZiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuZm9yKSB7XFxuICB2YXIgc3ltYm9sRm9yID0gU3ltYm9sLmZvcjtcXG4gIFJFQUNUX0VMRU1FTlRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZWxlbWVudCcpO1xcbiAgUkVBQ1RfUE9SVEFMX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnBvcnRhbCcpO1xcbiAgZXhwb3J0cy5GcmFnbWVudCA9IHN5bWJvbEZvcigncmVhY3QuZnJhZ21lbnQnKTtcXG4gIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnN0cmljdF9tb2RlJyk7XFxuICBSRUFDVF9QUk9GSUxFUl9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5wcm9maWxlcicpO1xcbiAgUkVBQ1RfUFJPVklERVJfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucHJvdmlkZXInKTtcXG4gIFJFQUNUX0NPTlRFWFRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuY29udGV4dCcpO1xcbiAgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZm9yd2FyZF9yZWYnKTtcXG4gIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XFxuICBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKTtcXG4gIFJFQUNUX01FTU9fVFlQRSA9IHN5bWJvbEZvcigncmVhY3QubWVtbycpO1xcbiAgUkVBQ1RfTEFaWV9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5sYXp5Jyk7XFxuICBSRUFDVF9CTE9DS19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5ibG9jaycpO1xcbiAgUkVBQ1RfU0VSVkVSX0JMT0NLX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnNlcnZlci5ibG9jaycpO1xcbiAgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZnVuZGFtZW50YWwnKTtcXG4gIFJFQUNUX1NDT1BFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnNjb3BlJyk7XFxuICBSRUFDVF9PUEFRVUVfSURfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Qub3BhcXVlLmlkJyk7XFxuICBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZGVidWdfdHJhY2VfbW9kZScpO1xcbiAgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm9mZnNjcmVlbicpO1xcbiAgUkVBQ1RfTEVHQUNZX0hJRERFTl9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5sZWdhY3lfaGlkZGVuJyk7XFxufVxcblxcbnZhciBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5pdGVyYXRvcjtcXG52YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7XFxuZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XFxuICBpZiAobWF5YmVJdGVyYWJsZSA9PT0gbnVsbCB8fCB0eXBlb2YgbWF5YmVJdGVyYWJsZSAhPT0gJ29iamVjdCcpIHtcXG4gICAgcmV0dXJuIG51bGw7XFxuICB9XFxuXFxuICB2YXIgbWF5YmVJdGVyYXRvciA9IE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF07XFxuXFxuICBpZiAodHlwZW9mIG1heWJlSXRlcmF0b3IgPT09ICdmdW5jdGlvbicpIHtcXG4gICAgcmV0dXJuIG1heWJlSXRlcmF0b3I7XFxuICB9XFxuXFxuICByZXR1cm4gbnVsbDtcXG59XFxuXFxudmFyIFJlYWN0U2hhcmVkSW50ZXJuYWxzID0gUmVhY3QuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ7XFxuXFxuZnVuY3Rpb24gZXJyb3IoZm9ybWF0KSB7XFxuICB7XFxuICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XFxuICAgICAgYXJnc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcXG4gICAgfVxcblxcbiAgICBwcmludFdhcm5pbmcoJ2Vycm9yJywgZm9ybWF0LCBhcmdzKTtcXG4gIH1cXG59XFxuXFxuZnVuY3Rpb24gcHJpbnRXYXJuaW5nKGxldmVsLCBmb3JtYXQsIGFyZ3MpIHtcXG4gIC8vIFdoZW4gY2hhbmdpbmcgdGhpcyBsb2dpYywgeW91IG1pZ2h0IHdhbnQgdG8gYWxzb1xcbiAgLy8gdXBkYXRlIGNvbnNvbGVXaXRoU3RhY2tEZXYud3d3LmpzIGFzIHdlbGwuXFxuICB7XFxuICAgIHZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcXG4gICAgdmFyIHN0YWNrID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRTdGFja0FkZGVuZHVtKCk7XFxuXFxuICAgIGlmIChzdGFjayAhPT0gJycpIHtcXG4gICAgICBmb3JtYXQgKz0gJyVzJztcXG4gICAgICBhcmdzID0gYXJncy5jb25jYXQoW3N0YWNrXSk7XFxuICAgIH1cXG5cXG4gICAgdmFyIGFyZ3NXaXRoRm9ybWF0ID0gYXJncy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcXG4gICAgICByZXR1cm4gJycgKyBpdGVtO1xcbiAgICB9KTsgLy8gQ2FyZWZ1bDogUk4gY3VycmVudGx5IGRlcGVuZHMgb24gdGhpcyBwcmVmaXhcXG5cXG4gICAgYXJnc1dpdGhGb3JtYXQudW5zaGlmdCgnV2FybmluZzogJyArIGZvcm1hdCk7IC8vIFdlIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIHNwcmVhZCAob3IgLmFwcGx5KSBkaXJlY3RseSBiZWNhdXNlIGl0XFxuICAgIC8vIGJyZWFrcyBJRTk6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTM2MTBcXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZ1xcblxcbiAgICBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlW2xldmVsXSwgY29uc29sZSwgYXJnc1dpdGhGb3JtYXQpO1xcbiAgfVxcbn1cXG5cXG4vLyBGaWx0ZXIgY2VydGFpbiBET00gYXR0cmlidXRlcyAoZS5nLiBzcmMsIGhyZWYpIGlmIHRoZWlyIHZhbHVlcyBhcmUgZW1wdHkgc3RyaW5ncy5cXG5cXG52YXIgZW5hYmxlU2NvcGVBUEkgPSBmYWxzZTsgLy8gRXhwZXJpbWVudGFsIENyZWF0ZSBFdmVudCBIYW5kbGUgQVBJLlxcblxcbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XFxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XFxuICAgIHJldHVybiB0cnVlO1xcbiAgfSAvLyBOb3RlOiB0eXBlb2YgbWlnaHQgYmUgb3RoZXIgdGhhbiAnc3ltYm9sJyBvciAnbnVtYmVyJyAoZS5nLiBpZiBpdCdzIGEgcG9seWZpbGwpLlxcblxcblxcbiAgaWYgKHR5cGUgPT09IGV4cG9ydHMuRnJhZ21lbnQgfHwgdHlwZSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSB8fCBlbmFibGVTY29wZUFQSSApIHtcXG4gICAgcmV0dXJuIHRydWU7XFxuICB9XFxuXFxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcXG4gICAgaWYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0JMT0NLX1RZUEUgfHwgdHlwZVswXSA9PT0gUkVBQ1RfU0VSVkVSX0JMT0NLX1RZUEUpIHtcXG4gICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgfVxcbiAgfVxcblxcbiAgcmV0dXJuIGZhbHNlO1xcbn1cXG5cXG5mdW5jdGlvbiBnZXRXcmFwcGVkTmFtZShvdXRlclR5cGUsIGlubmVyVHlwZSwgd3JhcHBlck5hbWUpIHtcXG4gIHZhciBmdW5jdGlvbk5hbWUgPSBpbm5lclR5cGUuZGlzcGxheU5hbWUgfHwgaW5uZXJUeXBlLm5hbWUgfHwgJyc7XFxuICByZXR1cm4gb3V0ZXJUeXBlLmRpc3BsYXlOYW1lIHx8IChmdW5jdGlvbk5hbWUgIT09ICcnID8gd3JhcHBlck5hbWUgKyBcXFwiKFxcXCIgKyBmdW5jdGlvbk5hbWUgKyBcXFwiKVxcXCIgOiB3cmFwcGVyTmFtZSk7XFxufVxcblxcbmZ1bmN0aW9uIGdldENvbnRleHROYW1lKHR5cGUpIHtcXG4gIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8ICdDb250ZXh0JztcXG59XFxuXFxuZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZSh0eXBlKSB7XFxuICBpZiAodHlwZSA9PSBudWxsKSB7XFxuICAgIC8vIEhvc3Qgcm9vdCwgdGV4dCBub2RlIG9yIGp1c3QgaW52YWxpZCB0eXBlLlxcbiAgICByZXR1cm4gbnVsbDtcXG4gIH1cXG5cXG4gIHtcXG4gICAgaWYgKHR5cGVvZiB0eXBlLnRhZyA9PT0gJ251bWJlcicpIHtcXG4gICAgICBlcnJvcignUmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBvYmplY3QgaW4gZ2V0Q29tcG9uZW50TmFtZSgpLiAnICsgJ1RoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XFxuICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xcbiAgfVxcblxcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xcbiAgICByZXR1cm4gdHlwZTtcXG4gIH1cXG5cXG4gIHN3aXRjaCAodHlwZSkge1xcbiAgICBjYXNlIGV4cG9ydHMuRnJhZ21lbnQ6XFxuICAgICAgcmV0dXJuICdGcmFnbWVudCc7XFxuXFxuICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XFxuICAgICAgcmV0dXJuICdQb3J0YWwnO1xcblxcbiAgICBjYXNlIFJFQUNUX1BST0ZJTEVSX1RZUEU6XFxuICAgICAgcmV0dXJuICdQcm9maWxlcic7XFxuXFxuICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcXG4gICAgICByZXR1cm4gJ1N0cmljdE1vZGUnO1xcblxcbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XFxuICAgICAgcmV0dXJuICdTdXNwZW5zZSc7XFxuXFxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxcbiAgICAgIHJldHVybiAnU3VzcGVuc2VMaXN0JztcXG4gIH1cXG5cXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcXG4gICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XFxuICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XFxuICAgICAgICB2YXIgY29udGV4dCA9IHR5cGU7XFxuICAgICAgICByZXR1cm4gZ2V0Q29udGV4dE5hbWUoY29udGV4dCkgKyAnLkNvbnN1bWVyJztcXG5cXG4gICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XFxuICAgICAgICB2YXIgcHJvdmlkZXIgPSB0eXBlO1xcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKHByb3ZpZGVyLl9jb250ZXh0KSArICcuUHJvdmlkZXInO1xcblxcbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcXG4gICAgICAgIHJldHVybiBnZXRXcmFwcGVkTmFtZSh0eXBlLCB0eXBlLnJlbmRlciwgJ0ZvcndhcmRSZWYnKTtcXG5cXG4gICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcXG4gICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lKHR5cGUudHlwZSk7XFxuXFxuICAgICAgY2FzZSBSRUFDVF9CTE9DS19UWVBFOlxcbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWUodHlwZS5fcmVuZGVyKTtcXG5cXG4gICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcXG4gICAgICAgIHtcXG4gICAgICAgICAgdmFyIGxhenlDb21wb25lbnQgPSB0eXBlO1xcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XFxuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcXG5cXG4gICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZShpbml0KHBheWxvYWQpKTtcXG4gICAgICAgICAgfSBjYXRjaCAoeCkge1xcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xcbiAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIHJldHVybiBudWxsO1xcbn1cXG5cXG4vLyBIZWxwZXJzIHRvIHBhdGNoIGNvbnNvbGUubG9ncyB0byBhdm9pZCBsb2dnaW5nIGR1cmluZyBzaWRlLWVmZmVjdCBmcmVlXFxuLy8gcmVwbGF5aW5nIG9uIHJlbmRlciBmdW5jdGlvbi4gVGhpcyBjdXJyZW50bHkgb25seSBwYXRjaGVzIHRoZSBvYmplY3RcXG4vLyBsYXppbHkgd2hpY2ggd29uJ3QgY292ZXIgaWYgdGhlIGxvZyBmdW5jdGlvbiB3YXMgZXh0cmFjdGVkIGVhZ2VybHkuXFxuLy8gV2UgY291bGQgYWxzbyBlYWdlcmx5IHBhdGNoIHRoZSBtZXRob2QuXFxudmFyIGRpc2FibGVkRGVwdGggPSAwO1xcbnZhciBwcmV2TG9nO1xcbnZhciBwcmV2SW5mbztcXG52YXIgcHJldldhcm47XFxudmFyIHByZXZFcnJvcjtcXG52YXIgcHJldkdyb3VwO1xcbnZhciBwcmV2R3JvdXBDb2xsYXBzZWQ7XFxudmFyIHByZXZHcm91cEVuZDtcXG5cXG5mdW5jdGlvbiBkaXNhYmxlZExvZygpIHt9XFxuXFxuZGlzYWJsZWRMb2cuX19yZWFjdERpc2FibGVkTG9nID0gdHJ1ZTtcXG5mdW5jdGlvbiBkaXNhYmxlTG9ncygpIHtcXG4gIHtcXG4gICAgaWYgKGRpc2FibGVkRGVwdGggPT09IDApIHtcXG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cXG4gICAgICBwcmV2TG9nID0gY29uc29sZS5sb2c7XFxuICAgICAgcHJldkluZm8gPSBjb25zb2xlLmluZm87XFxuICAgICAgcHJldldhcm4gPSBjb25zb2xlLndhcm47XFxuICAgICAgcHJldkVycm9yID0gY29uc29sZS5lcnJvcjtcXG4gICAgICBwcmV2R3JvdXAgPSBjb25zb2xlLmdyb3VwO1xcbiAgICAgIHByZXZHcm91cENvbGxhcHNlZCA9IGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQ7XFxuICAgICAgcHJldkdyb3VwRW5kID0gY29uc29sZS5ncm91cEVuZDsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xOTA5OVxcblxcbiAgICAgIHZhciBwcm9wcyA9IHtcXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXFxuICAgICAgICB2YWx1ZTogZGlzYWJsZWRMb2csXFxuICAgICAgICB3cml0YWJsZTogdHJ1ZVxcbiAgICAgIH07IC8vICRGbG93Rml4TWUgRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXFxuXFxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xcbiAgICAgICAgaW5mbzogcHJvcHMsXFxuICAgICAgICBsb2c6IHByb3BzLFxcbiAgICAgICAgd2FybjogcHJvcHMsXFxuICAgICAgICBlcnJvcjogcHJvcHMsXFxuICAgICAgICBncm91cDogcHJvcHMsXFxuICAgICAgICBncm91cENvbGxhcHNlZDogcHJvcHMsXFxuICAgICAgICBncm91cEVuZDogcHJvcHNcXG4gICAgICB9KTtcXG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xcbiAgICB9XFxuXFxuICAgIGRpc2FibGVkRGVwdGgrKztcXG4gIH1cXG59XFxuZnVuY3Rpb24gcmVlbmFibGVMb2dzKCkge1xcbiAge1xcbiAgICBkaXNhYmxlZERlcHRoLS07XFxuXFxuICAgIGlmIChkaXNhYmxlZERlcHRoID09PSAwKSB7XFxuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXFxuICAgICAgdmFyIHByb3BzID0ge1xcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXFxuICAgICAgfTsgLy8gJEZsb3dGaXhNZSBGbG93IHRoaW5rcyBjb25zb2xlIGlzIGltbXV0YWJsZS5cXG5cXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XFxuICAgICAgICBsb2c6IF9hc3NpZ24oe30sIHByb3BzLCB7XFxuICAgICAgICAgIHZhbHVlOiBwcmV2TG9nXFxuICAgICAgICB9KSxcXG4gICAgICAgIGluZm86IF9hc3NpZ24oe30sIHByb3BzLCB7XFxuICAgICAgICAgIHZhbHVlOiBwcmV2SW5mb1xcbiAgICAgICAgfSksXFxuICAgICAgICB3YXJuOiBfYXNzaWduKHt9LCBwcm9wcywge1xcbiAgICAgICAgICB2YWx1ZTogcHJldldhcm5cXG4gICAgICAgIH0pLFxcbiAgICAgICAgZXJyb3I6IF9hc3NpZ24oe30sIHByb3BzLCB7XFxuICAgICAgICAgIHZhbHVlOiBwcmV2RXJyb3JcXG4gICAgICAgIH0pLFxcbiAgICAgICAgZ3JvdXA6IF9hc3NpZ24oe30sIHByb3BzLCB7XFxuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBcXG4gICAgICAgIH0pLFxcbiAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IF9hc3NpZ24oe30sIHByb3BzLCB7XFxuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBDb2xsYXBzZWRcXG4gICAgICAgIH0pLFxcbiAgICAgICAgZ3JvdXBFbmQ6IF9hc3NpZ24oe30sIHByb3BzLCB7XFxuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBFbmRcXG4gICAgICAgIH0pXFxuICAgICAgfSk7XFxuICAgICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cXG4gICAgfVxcblxcbiAgICBpZiAoZGlzYWJsZWREZXB0aCA8IDApIHtcXG4gICAgICBlcnJvcignZGlzYWJsZWREZXB0aCBmZWxsIGJlbG93IHplcm8uICcgKyAnVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XFxuICAgIH1cXG4gIH1cXG59XFxuXFxudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnREaXNwYXRjaGVyO1xcbnZhciBwcmVmaXg7XFxuZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSwgc291cmNlLCBvd25lckZuKSB7XFxuICB7XFxuICAgIGlmIChwcmVmaXggPT09IHVuZGVmaW5lZCkge1xcbiAgICAgIC8vIEV4dHJhY3QgdGhlIFZNIHNwZWNpZmljIHByZWZpeCB1c2VkIGJ5IGVhY2ggbGluZS5cXG4gICAgICB0cnkge1xcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcXG4gICAgICB9IGNhdGNoICh4KSB7XFxuICAgICAgICB2YXIgbWF0Y2ggPSB4LnN0YWNrLnRyaW0oKS5tYXRjaCgvXFxcXG4oICooYXQgKT8pLyk7XFxuICAgICAgICBwcmVmaXggPSBtYXRjaCAmJiBtYXRjaFsxXSB8fCAnJztcXG4gICAgICB9XFxuICAgIH0gLy8gV2UgdXNlIHRoZSBwcmVmaXggdG8gZW5zdXJlIG91ciBzdGFja3MgbGluZSB1cCB3aXRoIG5hdGl2ZSBzdGFjayBmcmFtZXMuXFxuXFxuXFxuICAgIHJldHVybiAnXFxcXG4nICsgcHJlZml4ICsgbmFtZTtcXG4gIH1cXG59XFxudmFyIHJlZW50cnkgPSBmYWxzZTtcXG52YXIgY29tcG9uZW50RnJhbWVDYWNoZTtcXG5cXG57XFxuICB2YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xcbiAgY29tcG9uZW50RnJhbWVDYWNoZSA9IG5ldyBQb3NzaWJseVdlYWtNYXAoKTtcXG59XFxuXFxuZnVuY3Rpb24gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgY29uc3RydWN0KSB7XFxuICAvLyBJZiBzb21ldGhpbmcgYXNrZWQgZm9yIGEgc3RhY2sgaW5zaWRlIGEgZmFrZSByZW5kZXIsIGl0IHNob3VsZCBnZXQgaWdub3JlZC5cXG4gIGlmICghZm4gfHwgcmVlbnRyeSkge1xcbiAgICByZXR1cm4gJyc7XFxuICB9XFxuXFxuICB7XFxuICAgIHZhciBmcmFtZSA9IGNvbXBvbmVudEZyYW1lQ2FjaGUuZ2V0KGZuKTtcXG5cXG4gICAgaWYgKGZyYW1lICE9PSB1bmRlZmluZWQpIHtcXG4gICAgICByZXR1cm4gZnJhbWU7XFxuICAgIH1cXG4gIH1cXG5cXG4gIHZhciBjb250cm9sO1xcbiAgcmVlbnRyeSA9IHRydWU7XFxuICB2YXIgcHJldmlvdXNQcmVwYXJlU3RhY2tUcmFjZSA9IEVycm9yLnByZXBhcmVTdGFja1RyYWNlOyAvLyAkRmxvd0ZpeE1lIEl0IGRvZXMgYWNjZXB0IHVuZGVmaW5lZC5cXG5cXG4gIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gdW5kZWZpbmVkO1xcbiAgdmFyIHByZXZpb3VzRGlzcGF0Y2hlcjtcXG5cXG4gIHtcXG4gICAgcHJldmlvdXNEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50OyAvLyBTZXQgdGhlIGRpc3BhdGNoZXIgaW4gREVWIGJlY2F1c2UgdGhpcyBtaWdodCBiZSBjYWxsIGluIHRoZSByZW5kZXIgZnVuY3Rpb25cXG4gICAgLy8gZm9yIHdhcm5pbmdzLlxcblxcbiAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQgPSBudWxsO1xcbiAgICBkaXNhYmxlTG9ncygpO1xcbiAgfVxcblxcbiAgdHJ5IHtcXG4gICAgLy8gVGhpcyBzaG91bGQgdGhyb3cuXFxuICAgIGlmIChjb25zdHJ1Y3QpIHtcXG4gICAgICAvLyBTb21ldGhpbmcgc2hvdWxkIGJlIHNldHRpbmcgdGhlIHByb3BzIGluIHRoZSBjb25zdHJ1Y3Rvci5cXG4gICAgICB2YXIgRmFrZSA9IGZ1bmN0aW9uICgpIHtcXG4gICAgICAgIHRocm93IEVycm9yKCk7XFxuICAgICAgfTsgLy8gJEZsb3dGaXhNZVxcblxcblxcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGYWtlLnByb3RvdHlwZSwgJ3Byb3BzJywge1xcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7XFxuICAgICAgICAgIC8vIFdlIHVzZSBhIHRocm93aW5nIHNldHRlciBpbnN0ZWFkIG9mIGZyb3plbiBvciBub24td3JpdGFibGUgcHJvcHNcXG4gICAgICAgICAgLy8gYmVjYXVzZSB0aGF0IHdvbid0IHRocm93IGluIGEgbm9uLXN0cmljdCBtb2RlIGZ1bmN0aW9uLlxcbiAgICAgICAgICB0aHJvdyBFcnJvcigpO1xcbiAgICAgICAgfVxcbiAgICAgIH0pO1xcblxcbiAgICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgJiYgUmVmbGVjdC5jb25zdHJ1Y3QpIHtcXG4gICAgICAgIC8vIFdlIGNvbnN0cnVjdCBhIGRpZmZlcmVudCBjb250cm9sIGZvciB0aGlzIGNhc2UgdG8gaW5jbHVkZSBhbnkgZXh0cmFcXG4gICAgICAgIC8vIGZyYW1lcyBhZGRlZCBieSB0aGUgY29uc3RydWN0IGNhbGwuXFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChGYWtlLCBbXSk7XFxuICAgICAgICB9IGNhdGNoICh4KSB7XFxuICAgICAgICAgIGNvbnRyb2wgPSB4O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoZm4sIFtdLCBGYWtlKTtcXG4gICAgICB9IGVsc2Uge1xcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgRmFrZS5jYWxsKCk7XFxuICAgICAgICB9IGNhdGNoICh4KSB7XFxuICAgICAgICAgIGNvbnRyb2wgPSB4O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgZm4uY2FsbChGYWtlLnByb3RvdHlwZSk7XFxuICAgICAgfVxcbiAgICB9IGVsc2Uge1xcbiAgICAgIHRyeSB7XFxuICAgICAgICB0aHJvdyBFcnJvcigpO1xcbiAgICAgIH0gY2F0Y2ggKHgpIHtcXG4gICAgICAgIGNvbnRyb2wgPSB4O1xcbiAgICAgIH1cXG5cXG4gICAgICBmbigpO1xcbiAgICB9XFxuICB9IGNhdGNoIChzYW1wbGUpIHtcXG4gICAgLy8gVGhpcyBpcyBpbmxpbmVkIG1hbnVhbGx5IGJlY2F1c2UgY2xvc3VyZSBkb2Vzbid0IGRvIGl0IGZvciB1cy5cXG4gICAgaWYgKHNhbXBsZSAmJiBjb250cm9sICYmIHR5cGVvZiBzYW1wbGUuc3RhY2sgPT09ICdzdHJpbmcnKSB7XFxuICAgICAgLy8gVGhpcyBleHRyYWN0cyB0aGUgZmlyc3QgZnJhbWUgZnJvbSB0aGUgc2FtcGxlIHRoYXQgaXNuJ3QgYWxzbyBpbiB0aGUgY29udHJvbC5cXG4gICAgICAvLyBTa2lwcGluZyBvbmUgZnJhbWUgdGhhdCB3ZSBhc3N1bWUgaXMgdGhlIGZyYW1lIHRoYXQgY2FsbHMgdGhlIHR3by5cXG4gICAgICB2YXIgc2FtcGxlTGluZXMgPSBzYW1wbGUuc3RhY2suc3BsaXQoJ1xcXFxuJyk7XFxuICAgICAgdmFyIGNvbnRyb2xMaW5lcyA9IGNvbnRyb2wuc3RhY2suc3BsaXQoJ1xcXFxuJyk7XFxuICAgICAgdmFyIHMgPSBzYW1wbGVMaW5lcy5sZW5ndGggLSAxO1xcbiAgICAgIHZhciBjID0gY29udHJvbExpbmVzLmxlbmd0aCAtIDE7XFxuXFxuICAgICAgd2hpbGUgKHMgPj0gMSAmJiBjID49IDAgJiYgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xcbiAgICAgICAgLy8gV2UgZXhwZWN0IGF0IGxlYXN0IG9uZSBzdGFjayBmcmFtZSB0byBiZSBzaGFyZWQuXFxuICAgICAgICAvLyBUeXBpY2FsbHkgdGhpcyB3aWxsIGJlIHRoZSByb290IG1vc3Qgb25lLiBIb3dldmVyLCBzdGFjayBmcmFtZXMgbWF5IGJlXFxuICAgICAgICAvLyBjdXQgb2ZmIGR1ZSB0byBtYXhpbXVtIHN0YWNrIGxpbWl0cy4gSW4gdGhpcyBjYXNlLCBvbmUgbWF5YmUgY3V0IG9mZlxcbiAgICAgICAgLy8gZWFybGllciB0aGFuIHRoZSBvdGhlci4gV2UgYXNzdW1lIHRoYXQgdGhlIHNhbXBsZSBpcyBsb25nZXIgb3IgdGhlIHNhbWVcXG4gICAgICAgIC8vIGFuZCB0aGVyZSBmb3IgY3V0IG9mZiBlYXJsaWVyLiBTbyB3ZSBzaG91bGQgZmluZCB0aGUgcm9vdCBtb3N0IGZyYW1lIGluXFxuICAgICAgICAvLyB0aGUgc2FtcGxlIHNvbWV3aGVyZSBpbiB0aGUgY29udHJvbC5cXG4gICAgICAgIGMtLTtcXG4gICAgICB9XFxuXFxuICAgICAgZm9yICg7IHMgPj0gMSAmJiBjID49IDA7IHMtLSwgYy0tKSB7XFxuICAgICAgICAvLyBOZXh0IHdlIGZpbmQgdGhlIGZpcnN0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHdoaWNoIHNob3VsZCBiZSB0aGVcXG4gICAgICAgIC8vIGZyYW1lIHRoYXQgY2FsbGVkIG91ciBzYW1wbGUgZnVuY3Rpb24gYW5kIHRoZSBjb250cm9sLlxcbiAgICAgICAgaWYgKHNhbXBsZUxpbmVzW3NdICE9PSBjb250cm9sTGluZXNbY10pIHtcXG4gICAgICAgICAgLy8gSW4gVjgsIHRoZSBmaXJzdCBsaW5lIGlzIGRlc2NyaWJpbmcgdGhlIG1lc3NhZ2UgYnV0IG90aGVyIFZNcyBkb24ndC5cXG4gICAgICAgICAgLy8gSWYgd2UncmUgYWJvdXQgdG8gcmV0dXJuIHRoZSBmaXJzdCBsaW5lLCBhbmQgdGhlIGNvbnRyb2wgaXMgYWxzbyBvbiB0aGUgc2FtZVxcbiAgICAgICAgICAvLyBsaW5lLCB0aGF0J3MgYSBwcmV0dHkgZ29vZCBpbmRpY2F0b3IgdGhhdCBvdXIgc2FtcGxlIHRocmV3IGF0IHNhbWUgbGluZSBhc1xcbiAgICAgICAgICAvLyB0aGUgY29udHJvbC4gSS5lLiBiZWZvcmUgd2UgZW50ZXJlZCB0aGUgc2FtcGxlIGZyYW1lLiBTbyB3ZSBpZ25vcmUgdGhpcyByZXN1bHQuXFxuICAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB5b3UgcGFzc2VkIGEgY2xhc3MgdG8gZnVuY3Rpb24gY29tcG9uZW50LCBvciBub24tZnVuY3Rpb24uXFxuICAgICAgICAgIGlmIChzICE9PSAxIHx8IGMgIT09IDEpIHtcXG4gICAgICAgICAgICBkbyB7XFxuICAgICAgICAgICAgICBzLS07XFxuICAgICAgICAgICAgICBjLS07IC8vIFdlIG1heSBzdGlsbCBoYXZlIHNpbWlsYXIgaW50ZXJtZWRpYXRlIGZyYW1lcyBmcm9tIHRoZSBjb25zdHJ1Y3QgY2FsbC5cXG4gICAgICAgICAgICAgIC8vIFRoZSBuZXh0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHNob3VsZCBiZSBvdXIgbWF0Y2ggdGhvdWdoLlxcblxcbiAgICAgICAgICAgICAgaWYgKGMgPCAwIHx8IHNhbXBsZUxpbmVzW3NdICE9PSBjb250cm9sTGluZXNbY10pIHtcXG4gICAgICAgICAgICAgICAgLy8gVjggYWRkcyBhIFxcXCJuZXdcXFwiIHByZWZpeCBmb3IgbmF0aXZlIGNsYXNzZXMuIExldCdzIHJlbW92ZSBpdCB0byBtYWtlIGl0IHByZXR0aWVyLlxcbiAgICAgICAgICAgICAgICB2YXIgX2ZyYW1lID0gJ1xcXFxuJyArIHNhbXBsZUxpbmVzW3NdLnJlcGxhY2UoJyBhdCBuZXcgJywgJyBhdCAnKTtcXG5cXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBfZnJhbWUpO1xcbiAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSAvLyBSZXR1cm4gdGhlIGxpbmUgd2UgZm91bmQuXFxuXFxuXFxuICAgICAgICAgICAgICAgIHJldHVybiBfZnJhbWU7XFxuICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCk7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYnJlYWs7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICB9XFxuICB9IGZpbmFsbHkge1xcbiAgICByZWVudHJ5ID0gZmFsc2U7XFxuXFxuICAgIHtcXG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQgPSBwcmV2aW91c0Rpc3BhdGNoZXI7XFxuICAgICAgcmVlbmFibGVMb2dzKCk7XFxuICAgIH1cXG5cXG4gICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlO1xcbiAgfSAvLyBGYWxsYmFjayB0byBqdXN0IHVzaW5nIHRoZSBuYW1lIGlmIHdlIGNvdWxkbid0IG1ha2UgaXQgdGhyb3cuXFxuXFxuXFxuICB2YXIgbmFtZSA9IGZuID8gZm4uZGlzcGxheU5hbWUgfHwgZm4ubmFtZSA6ICcnO1xcbiAgdmFyIHN5bnRoZXRpY0ZyYW1lID0gbmFtZSA/IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5hbWUpIDogJyc7XFxuXFxuICB7XFxuICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcXG4gICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgc3ludGhldGljRnJhbWUpO1xcbiAgICB9XFxuICB9XFxuXFxuICByZXR1cm4gc3ludGhldGljRnJhbWU7XFxufVxcbmZ1bmN0aW9uIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZShmbiwgc291cmNlLCBvd25lckZuKSB7XFxuICB7XFxuICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBmYWxzZSk7XFxuICB9XFxufVxcblxcbmZ1bmN0aW9uIHNob3VsZENvbnN0cnVjdChDb21wb25lbnQpIHtcXG4gIHZhciBwcm90b3R5cGUgPSBDb21wb25lbnQucHJvdG90eXBlO1xcbiAgcmV0dXJuICEhKHByb3RvdHlwZSAmJiBwcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCk7XFxufVxcblxcbmZ1bmN0aW9uIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLCBzb3VyY2UsIG93bmVyRm4pIHtcXG5cXG4gIGlmICh0eXBlID09IG51bGwpIHtcXG4gICAgcmV0dXJuICcnO1xcbiAgfVxcblxcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XFxuICAgIHtcXG4gICAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZSh0eXBlLCBzaG91bGRDb25zdHJ1Y3QodHlwZSkpO1xcbiAgICB9XFxuICB9XFxuXFxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XFxuICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSh0eXBlKTtcXG4gIH1cXG5cXG4gIHN3aXRjaCAodHlwZSkge1xcbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XFxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZScpO1xcblxcbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcXG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlTGlzdCcpO1xcbiAgfVxcblxcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcXG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XFxuICAgICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKHR5cGUucmVuZGVyKTtcXG5cXG4gICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcXG4gICAgICAgIC8vIE1lbW8gbWF5IGNvbnRhaW4gYW55IGNvbXBvbmVudCB0eXBlIHNvIHdlIHJlY3Vyc2l2ZWx5IHJlc29sdmUgaXQuXFxuICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUudHlwZSwgc291cmNlLCBvd25lckZuKTtcXG5cXG4gICAgICBjYXNlIFJFQUNUX0JMT0NLX1RZUEU6XFxuICAgICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKHR5cGUuX3JlbmRlcik7XFxuXFxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XFxuICAgICAgICB7XFxuICAgICAgICAgIHZhciBsYXp5Q29tcG9uZW50ID0gdHlwZTtcXG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xcbiAgICAgICAgICB2YXIgaW5pdCA9IGxhenlDb21wb25lbnQuX2luaXQ7XFxuXFxuICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgLy8gTGF6eSBtYXkgY29udGFpbiBhbnkgY29tcG9uZW50IHR5cGUgc28gd2UgcmVjdXJzaXZlbHkgcmVzb2x2ZSBpdC5cXG4gICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGluaXQocGF5bG9hZCksIHNvdXJjZSwgb3duZXJGbik7XFxuICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XFxuICAgICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIHJldHVybiAnJztcXG59XFxuXFxudmFyIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xcbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcXG5cXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KSB7XFxuICB7XFxuICAgIGlmIChlbGVtZW50KSB7XFxuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XFxuICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSwgZWxlbWVudC5fc291cmNlLCBvd25lciA/IG93bmVyLnR5cGUgOiBudWxsKTtcXG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XFxuICAgIH0gZWxzZSB7XFxuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XFxuICAgIH1cXG4gIH1cXG59XFxuXFxuZnVuY3Rpb24gY2hlY2tQcm9wVHlwZXModHlwZVNwZWNzLCB2YWx1ZXMsIGxvY2F0aW9uLCBjb21wb25lbnROYW1lLCBlbGVtZW50KSB7XFxuICB7XFxuICAgIC8vICRGbG93Rml4TWUgVGhpcyBpcyBva2F5IGJ1dCBGbG93IGRvZXNuJ3Qga25vdyBpdC5cXG4gICAgdmFyIGhhcyA9IEZ1bmN0aW9uLmNhbGwuYmluZChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5KTtcXG5cXG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xcbiAgICAgIGlmIChoYXModHlwZVNwZWNzLCB0eXBlU3BlY05hbWUpKSB7XFxuICAgICAgICB2YXIgZXJyb3IkMSA9IHZvaWQgMDsgLy8gUHJvcCB0eXBlIHZhbGlkYXRpb24gbWF5IHRocm93LiBJbiBjYXNlIHRoZXkgZG8sIHdlIGRvbid0IHdhbnQgdG9cXG4gICAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cXG4gICAgICAgIC8vIEFmdGVyIHRoZXNlIGhhdmUgYmVlbiBjbGVhbmVkIHVwLCB3ZSdsbCBsZXQgdGhlbSB0aHJvdy5cXG5cXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBhbiBpbnZhcmlhbnQgdGhhdCBnZXRzIGNhdWdodC4gSXQncyB0aGUgc2FtZVxcbiAgICAgICAgICAvLyBiZWhhdmlvciBhcyB3aXRob3V0IHRoaXMgc3RhdGVtZW50IGV4Y2VwdCB3aXRoIGEgYmV0dGVyIG1lc3NhZ2UuXFxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcXG4gICAgICAgICAgICB2YXIgZXJyID0gRXJyb3IoKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICsgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJyArICdUaGlzIG9mdGVuIGhhcHBlbnMgYmVjYXVzZSBvZiB0eXBvcyBzdWNoIGFzIGBQcm9wVHlwZXMuZnVuY3Rpb25gIGluc3RlYWQgb2YgYFByb3BUeXBlcy5mdW5jYC4nKTtcXG4gICAgICAgICAgICBlcnIubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcXG4gICAgICAgICAgICB0aHJvdyBlcnI7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgZXJyb3IkMSA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgJ1NFQ1JFVF9ET19OT1RfUEFTU19USElTX09SX1lPVV9XSUxMX0JFX0ZJUkVEJyk7XFxuICAgICAgICB9IGNhdGNoIChleCkge1xcbiAgICAgICAgICBlcnJvciQxID0gZXg7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBpZiAoZXJyb3IkMSAmJiAhKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvcikpIHtcXG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCk7XFxuXFxuICAgICAgICAgIGVycm9yKCclczogdHlwZSBzcGVjaWZpY2F0aW9uIG9mICVzJyArICcgYCVzYCBpcyBpbnZhbGlkOyB0aGUgdHlwZSBjaGVja2VyICcgKyAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJXMuICcgKyAnWW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBwYXNzIGFuIGFyZ3VtZW50IHRvIHRoZSB0eXBlIGNoZWNrZXIgJyArICdjcmVhdG9yIChhcnJheU9mLCBpbnN0YW5jZU9mLCBvYmplY3RPZiwgb25lT2YsIG9uZU9mVHlwZSwgYW5kICcgKyAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLicsIGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJywgbG9jYXRpb24sIHR5cGVTcGVjTmFtZSwgdHlwZW9mIGVycm9yJDEpO1xcblxcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGlmIChlcnJvciQxIGluc3RhbmNlb2YgRXJyb3IgJiYgIShlcnJvciQxLm1lc3NhZ2UgaW4gbG9nZ2VkVHlwZUZhaWx1cmVzKSkge1xcbiAgICAgICAgICAvLyBPbmx5IG1vbml0b3IgdGhpcyBmYWlsdXJlIG9uY2UgYmVjYXVzZSB0aGVyZSB0ZW5kcyB0byBiZSBhIGxvdCBvZiB0aGVcXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cXG4gICAgICAgICAgbG9nZ2VkVHlwZUZhaWx1cmVzW2Vycm9yJDEubWVzc2FnZV0gPSB0cnVlO1xcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcXG5cXG4gICAgICAgICAgZXJyb3IoJ0ZhaWxlZCAlcyB0eXBlOiAlcycsIGxvY2F0aW9uLCBlcnJvciQxLm1lc3NhZ2UpO1xcblxcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG59XFxuXFxudmFyIFJlYWN0Q3VycmVudE93bmVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50T3duZXI7XFxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcXG52YXIgUkVTRVJWRURfUFJPUFMgPSB7XFxuICBrZXk6IHRydWUsXFxuICByZWY6IHRydWUsXFxuICBfX3NlbGY6IHRydWUsXFxuICBfX3NvdXJjZTogdHJ1ZVxcbn07XFxudmFyIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duO1xcbnZhciBzcGVjaWFsUHJvcFJlZldhcm5pbmdTaG93bjtcXG52YXIgZGlkV2FybkFib3V0U3RyaW5nUmVmcztcXG5cXG57XFxuICBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzID0ge307XFxufVxcblxcbmZ1bmN0aW9uIGhhc1ZhbGlkUmVmKGNvbmZpZykge1xcbiAge1xcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdyZWYnKSkge1xcbiAgICAgIHZhciBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNvbmZpZywgJ3JlZicpLmdldDtcXG5cXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgcmV0dXJuIGNvbmZpZy5yZWYgIT09IHVuZGVmaW5lZDtcXG59XFxuXFxuZnVuY3Rpb24gaGFzVmFsaWRLZXkoY29uZmlnKSB7XFxuICB7XFxuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgJ2tleScpKSB7XFxuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAna2V5JykuZ2V0O1xcblxcbiAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSB7XFxuICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICByZXR1cm4gY29uZmlnLmtleSAhPT0gdW5kZWZpbmVkO1xcbn1cXG5cXG5mdW5jdGlvbiB3YXJuSWZTdHJpbmdSZWZDYW5ub3RCZUF1dG9Db252ZXJ0ZWQoY29uZmlnLCBzZWxmKSB7XFxuICB7XFxuICAgIGlmICh0eXBlb2YgY29uZmlnLnJlZiA9PT0gJ3N0cmluZycgJiYgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCAmJiBzZWxmICYmIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQuc3RhdGVOb2RlICE9PSBzZWxmKSB7XFxuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQudHlwZSk7XFxuXFxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdKSB7XFxuICAgICAgICBlcnJvcignQ29tcG9uZW50IFxcXCIlc1xcXCIgY29udGFpbnMgdGhlIHN0cmluZyByZWYgXFxcIiVzXFxcIi4gJyArICdTdXBwb3J0IGZvciBzdHJpbmcgcmVmcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gJyArICdUaGlzIGNhc2UgY2Fubm90IGJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGFuIGFycm93IGZ1bmN0aW9uLiAnICsgJ1dlIGFzayB5b3UgdG8gbWFudWFsbHkgZml4IHRoaXMgY2FzZSBieSB1c2luZyB1c2VSZWYoKSBvciBjcmVhdGVSZWYoKSBpbnN0ZWFkLiAnICsgJ0xlYXJuIG1vcmUgYWJvdXQgdXNpbmcgcmVmcyBzYWZlbHkgaGVyZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3RyaWN0LW1vZGUtc3RyaW5nLXJlZicsIGdldENvbXBvbmVudE5hbWUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKSwgY29uZmlnLnJlZik7XFxuXFxuICAgICAgICBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG59XFxuXFxuZnVuY3Rpb24gZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XFxuICB7XFxuICAgIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkgPSBmdW5jdGlvbiAoKSB7XFxuICAgICAgaWYgKCFzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bikge1xcbiAgICAgICAgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24gPSB0cnVlO1xcblxcbiAgICAgICAgZXJyb3IoJyVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xcbiAgICAgIH1cXG4gICAgfTtcXG5cXG4gICAgd2FybkFib3V0QWNjZXNzaW5nS2V5LmlzUmVhY3RXYXJuaW5nID0gdHJ1ZTtcXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCAna2V5Jywge1xcbiAgICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nS2V5LFxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxcbiAgICB9KTtcXG4gIH1cXG59XFxuXFxuZnVuY3Rpb24gZGVmaW5lUmVmUHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XFxuICB7XFxuICAgIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdSZWYgPSBmdW5jdGlvbiAoKSB7XFxuICAgICAgaWYgKCFzcGVjaWFsUHJvcFJlZldhcm5pbmdTaG93bikge1xcbiAgICAgICAgc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24gPSB0cnVlO1xcblxcbiAgICAgICAgZXJyb3IoJyVzOiBgcmVmYCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xcbiAgICAgIH1cXG4gICAgfTtcXG5cXG4gICAgd2FybkFib3V0QWNjZXNzaW5nUmVmLmlzUmVhY3RXYXJuaW5nID0gdHJ1ZTtcXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCAncmVmJywge1xcbiAgICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nUmVmLFxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxcbiAgICB9KTtcXG4gIH1cXG59XFxuLyoqXFxuICogRmFjdG9yeSBtZXRob2QgdG8gY3JlYXRlIGEgbmV3IFJlYWN0IGVsZW1lbnQuIFRoaXMgbm8gbG9uZ2VyIGFkaGVyZXMgdG9cXG4gKiB0aGUgY2xhc3MgcGF0dGVybiwgc28gZG8gbm90IHVzZSBuZXcgdG8gY2FsbCBpdC4gQWxzbywgaW5zdGFuY2VvZiBjaGVja1xcbiAqIHdpbGwgbm90IHdvcmsuIEluc3RlYWQgdGVzdCAkJHR5cGVvZiBmaWVsZCBhZ2FpbnN0IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSB0byBjaGVja1xcbiAqIGlmIHNvbWV0aGluZyBpcyBhIFJlYWN0IEVsZW1lbnQuXFxuICpcXG4gKiBAcGFyYW0geyp9IHR5cGVcXG4gKiBAcGFyYW0geyp9IHByb3BzXFxuICogQHBhcmFtIHsqfSBrZXlcXG4gKiBAcGFyYW0ge3N0cmluZ3xvYmplY3R9IHJlZlxcbiAqIEBwYXJhbSB7Kn0gb3duZXJcXG4gKiBAcGFyYW0geyp9IHNlbGYgQSAqdGVtcG9yYXJ5KiBoZWxwZXIgdG8gZGV0ZWN0IHBsYWNlcyB3aGVyZSBgdGhpc2AgaXNcXG4gKiBkaWZmZXJlbnQgZnJvbSB0aGUgYG93bmVyYCB3aGVuIFJlYWN0LmNyZWF0ZUVsZW1lbnQgaXMgY2FsbGVkLCBzbyB0aGF0IHdlXFxuICogY2FuIHdhcm4uIFdlIHdhbnQgdG8gZ2V0IHJpZCBvZiBvd25lciBhbmQgcmVwbGFjZSBzdHJpbmcgYHJlZmBzIHdpdGggYXJyb3dcXG4gKiBmdW5jdGlvbnMsIGFuZCBhcyBsb25nIGFzIGB0aGlzYCBhbmQgb3duZXIgYXJlIHRoZSBzYW1lLCB0aGVyZSB3aWxsIGJlIG5vXFxuICogY2hhbmdlIGluIGJlaGF2aW9yLlxcbiAqIEBwYXJhbSB7Kn0gc291cmNlIEFuIGFubm90YXRpb24gb2JqZWN0IChhZGRlZCBieSBhIHRyYW5zcGlsZXIgb3Igb3RoZXJ3aXNlKVxcbiAqIGluZGljYXRpbmcgZmlsZW5hbWUsIGxpbmUgbnVtYmVyLCBhbmQvb3Igb3RoZXIgaW5mb3JtYXRpb24uXFxuICogQGludGVybmFsXFxuICovXFxuXFxuXFxudmFyIFJlYWN0RWxlbWVudCA9IGZ1bmN0aW9uICh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBvd25lciwgcHJvcHMpIHtcXG4gIHZhciBlbGVtZW50ID0ge1xcbiAgICAvLyBUaGlzIHRhZyBhbGxvd3MgdXMgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBhcyBhIFJlYWN0IEVsZW1lbnRcXG4gICAgJCR0eXBlb2Y6IFJFQUNUX0VMRU1FTlRfVFlQRSxcXG4gICAgLy8gQnVpbHQtaW4gcHJvcGVydGllcyB0aGF0IGJlbG9uZyBvbiB0aGUgZWxlbWVudFxcbiAgICB0eXBlOiB0eXBlLFxcbiAgICBrZXk6IGtleSxcXG4gICAgcmVmOiByZWYsXFxuICAgIHByb3BzOiBwcm9wcyxcXG4gICAgLy8gUmVjb3JkIHRoZSBjb21wb25lbnQgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoaXMgZWxlbWVudC5cXG4gICAgX293bmVyOiBvd25lclxcbiAgfTtcXG5cXG4gIHtcXG4gICAgLy8gVGhlIHZhbGlkYXRpb24gZmxhZyBpcyBjdXJyZW50bHkgbXV0YXRpdmUuIFdlIHB1dCBpdCBvblxcbiAgICAvLyBhbiBleHRlcm5hbCBiYWNraW5nIHN0b3JlIHNvIHRoYXQgd2UgY2FuIGZyZWV6ZSB0aGUgd2hvbGUgb2JqZWN0LlxcbiAgICAvLyBUaGlzIGNhbiBiZSByZXBsYWNlZCB3aXRoIGEgV2Vha01hcCBvbmNlIHRoZXkgYXJlIGltcGxlbWVudGVkIGluXFxuICAgIC8vIGNvbW1vbmx5IHVzZWQgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLlxcbiAgICBlbGVtZW50Ll9zdG9yZSA9IHt9OyAvLyBUbyBtYWtlIGNvbXBhcmluZyBSZWFjdEVsZW1lbnRzIGVhc2llciBmb3IgdGVzdGluZyBwdXJwb3Nlcywgd2UgbWFrZVxcbiAgICAvLyB0aGUgdmFsaWRhdGlvbiBmbGFnIG5vbi1lbnVtZXJhYmxlICh3aGVyZSBwb3NzaWJsZSwgd2hpY2ggc2hvdWxkXFxuICAgIC8vIGluY2x1ZGUgZXZlcnkgZW52aXJvbm1lbnQgd2UgcnVuIHRlc3RzIGluKSwgc28gdGhlIHRlc3QgZnJhbWV3b3JrXFxuICAgIC8vIGlnbm9yZXMgaXQuXFxuXFxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50Ll9zdG9yZSwgJ3ZhbGlkYXRlZCcsIHtcXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxcbiAgICAgIHZhbHVlOiBmYWxzZVxcbiAgICB9KTsgLy8gc2VsZiBhbmQgc291cmNlIGFyZSBERVYgb25seSBwcm9wZXJ0aWVzLlxcblxcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudCwgJ19zZWxmJywge1xcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxcbiAgICAgIHZhbHVlOiBzZWxmXFxuICAgIH0pOyAvLyBUd28gZWxlbWVudHMgY3JlYXRlZCBpbiB0d28gZGlmZmVyZW50IHBsYWNlcyBzaG91bGQgYmUgY29uc2lkZXJlZFxcbiAgICAvLyBlcXVhbCBmb3IgdGVzdGluZyBwdXJwb3NlcyBhbmQgdGhlcmVmb3JlIHdlIGhpZGUgaXQgZnJvbSBlbnVtZXJhdGlvbi5cXG5cXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnQsICdfc291cmNlJywge1xcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxcbiAgICAgIHZhbHVlOiBzb3VyY2VcXG4gICAgfSk7XFxuXFxuICAgIGlmIChPYmplY3QuZnJlZXplKSB7XFxuICAgICAgT2JqZWN0LmZyZWV6ZShlbGVtZW50LnByb3BzKTtcXG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQpO1xcbiAgICB9XFxuICB9XFxuXFxuICByZXR1cm4gZWxlbWVudDtcXG59O1xcbi8qKlxcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdGpzL3JmY3MvcHVsbC8xMDdcXG4gKiBAcGFyYW0geyp9IHR5cGVcXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XFxuICovXFxuXFxuZnVuY3Rpb24ganN4REVWKHR5cGUsIGNvbmZpZywgbWF5YmVLZXksIHNvdXJjZSwgc2VsZikge1xcbiAge1xcbiAgICB2YXIgcHJvcE5hbWU7IC8vIFJlc2VydmVkIG5hbWVzIGFyZSBleHRyYWN0ZWRcXG5cXG4gICAgdmFyIHByb3BzID0ge307XFxuICAgIHZhciBrZXkgPSBudWxsO1xcbiAgICB2YXIgcmVmID0gbnVsbDsgLy8gQ3VycmVudGx5LCBrZXkgY2FuIGJlIHNwcmVhZCBpbiBhcyBhIHByb3AuIFRoaXMgY2F1c2VzIGEgcG90ZW50aWFsXFxuICAgIC8vIGlzc3VlIGlmIGtleSBpcyBhbHNvIGV4cGxpY2l0bHkgZGVjbGFyZWQgKGllLiA8ZGl2IHsuLi5wcm9wc30ga2V5PVxcXCJIaVxcXCIgLz5cXG4gICAgLy8gb3IgPGRpdiBrZXk9XFxcIkhpXFxcIiB7Li4ucHJvcHN9IC8+ICkuIFdlIHdhbnQgdG8gZGVwcmVjYXRlIGtleSBzcHJlYWQsXFxuICAgIC8vIGJ1dCBhcyBhbiBpbnRlcm1lZGlhcnkgc3RlcCwgd2Ugd2lsbCB1c2UganN4REVWIGZvciBldmVyeXRoaW5nIGV4Y2VwdFxcbiAgICAvLyA8ZGl2IHsuLi5wcm9wc30ga2V5PVxcXCJIaVxcXCIgLz4sIGJlY2F1c2Ugd2UgYXJlbid0IGN1cnJlbnRseSBhYmxlIHRvIHRlbGwgaWZcXG4gICAgLy8ga2V5IGlzIGV4cGxpY2l0bHkgZGVjbGFyZWQgdG8gYmUgdW5kZWZpbmVkIG9yIG5vdC5cXG5cXG4gICAgaWYgKG1heWJlS2V5ICE9PSB1bmRlZmluZWQpIHtcXG4gICAgICBrZXkgPSAnJyArIG1heWJlS2V5O1xcbiAgICB9XFxuXFxuICAgIGlmIChoYXNWYWxpZEtleShjb25maWcpKSB7XFxuICAgICAga2V5ID0gJycgKyBjb25maWcua2V5O1xcbiAgICB9XFxuXFxuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XFxuICAgICAgcmVmID0gY29uZmlnLnJlZjtcXG4gICAgICB3YXJuSWZTdHJpbmdSZWZDYW5ub3RCZUF1dG9Db252ZXJ0ZWQoY29uZmlnLCBzZWxmKTtcXG4gICAgfSAvLyBSZW1haW5pbmcgcHJvcGVydGllcyBhcmUgYWRkZWQgdG8gYSBuZXcgcHJvcHMgb2JqZWN0XFxuXFxuXFxuICAgIGZvciAocHJvcE5hbWUgaW4gY29uZmlnKSB7XFxuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBwcm9wTmFtZSkgJiYgIVJFU0VSVkVEX1BST1BTLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXTtcXG4gICAgICB9XFxuICAgIH0gLy8gUmVzb2x2ZSBkZWZhdWx0IHByb3BzXFxuXFxuXFxuICAgIGlmICh0eXBlICYmIHR5cGUuZGVmYXVsdFByb3BzKSB7XFxuICAgICAgdmFyIGRlZmF1bHRQcm9wcyA9IHR5cGUuZGVmYXVsdFByb3BzO1xcblxcbiAgICAgIGZvciAocHJvcE5hbWUgaW4gZGVmYXVsdFByb3BzKSB7XFxuICAgICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09PSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgaWYgKGtleSB8fCByZWYpIHtcXG4gICAgICB2YXIgZGlzcGxheU5hbWUgPSB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyA/IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8ICdVbmtub3duJyA6IHR5cGU7XFxuXFxuICAgICAgaWYgKGtleSkge1xcbiAgICAgICAgZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKTtcXG4gICAgICB9XFxuXFxuICAgICAgaWYgKHJlZikge1xcbiAgICAgICAgZGVmaW5lUmVmUHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKTtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgcmV0dXJuIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LCBwcm9wcyk7XFxuICB9XFxufVxcblxcbnZhciBSZWFjdEN1cnJlbnRPd25lciQxID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50T3duZXI7XFxudmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XFxuXFxuZnVuY3Rpb24gc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KSB7XFxuICB7XFxuICAgIGlmIChlbGVtZW50KSB7XFxuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XFxuICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSwgZWxlbWVudC5fc291cmNlLCBvd25lciA/IG93bmVyLnR5cGUgOiBudWxsKTtcXG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEuc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEuc2V0RXh0cmFTdGFja0ZyYW1lKG51bGwpO1xcbiAgICB9XFxuICB9XFxufVxcblxcbnZhciBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93bjtcXG5cXG57XFxuICBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93biA9IGZhbHNlO1xcbn1cXG4vKipcXG4gKiBWZXJpZmllcyB0aGUgb2JqZWN0IGlzIGEgUmVhY3RFbGVtZW50LlxcbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjaXN2YWxpZGVsZW1lbnRcXG4gKiBAcGFyYW0gez9vYmplY3R9IG9iamVjdFxcbiAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgYG9iamVjdGAgaXMgYSBSZWFjdEVsZW1lbnQuXFxuICogQGZpbmFsXFxuICovXFxuXFxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnQob2JqZWN0KSB7XFxuICB7XFxuICAgIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XFxuICB9XFxufVxcblxcbmZ1bmN0aW9uIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpIHtcXG4gIHtcXG4gICAgaWYgKFJlYWN0Q3VycmVudE93bmVyJDEuY3VycmVudCkge1xcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZShSZWFjdEN1cnJlbnRPd25lciQxLmN1cnJlbnQudHlwZSk7XFxuXFxuICAgICAgaWYgKG5hbWUpIHtcXG4gICAgICAgIHJldHVybiAnXFxcXG5cXFxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIHJldHVybiAnJztcXG4gIH1cXG59XFxuXFxuZnVuY3Rpb24gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oc291cmNlKSB7XFxuICB7XFxuICAgIGlmIChzb3VyY2UgIT09IHVuZGVmaW5lZCkge1xcbiAgICAgIHZhciBmaWxlTmFtZSA9IHNvdXJjZS5maWxlTmFtZS5yZXBsYWNlKC9eLipbXFxcXFxcXFxcXFxcL10vLCAnJyk7XFxuICAgICAgdmFyIGxpbmVOdW1iZXIgPSBzb3VyY2UubGluZU51bWJlcjtcXG4gICAgICByZXR1cm4gJ1xcXFxuXFxcXG5DaGVjayB5b3VyIGNvZGUgYXQgJyArIGZpbGVOYW1lICsgJzonICsgbGluZU51bWJlciArICcuJztcXG4gICAgfVxcblxcbiAgICByZXR1cm4gJyc7XFxuICB9XFxufVxcbi8qKlxcbiAqIFdhcm4gaWYgdGhlcmUncyBubyBrZXkgZXhwbGljaXRseSBzZXQgb24gZHluYW1pYyBhcnJheXMgb2YgY2hpbGRyZW4gb3JcXG4gKiBvYmplY3Qga2V5cyBhcmUgbm90IHZhbGlkLiBUaGlzIGFsbG93cyB1cyB0byBrZWVwIHRyYWNrIG9mIGNoaWxkcmVuIGJldHdlZW5cXG4gKiB1cGRhdGVzLlxcbiAqL1xcblxcblxcbnZhciBvd25lckhhc0tleVVzZVdhcm5pbmcgPSB7fTtcXG5cXG5mdW5jdGlvbiBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpIHtcXG4gIHtcXG4gICAgdmFyIGluZm8gPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcXG5cXG4gICAgaWYgKCFpbmZvKSB7XFxuICAgICAgdmFyIHBhcmVudE5hbWUgPSB0eXBlb2YgcGFyZW50VHlwZSA9PT0gJ3N0cmluZycgPyBwYXJlbnRUeXBlIDogcGFyZW50VHlwZS5kaXNwbGF5TmFtZSB8fCBwYXJlbnRUeXBlLm5hbWU7XFxuXFxuICAgICAgaWYgKHBhcmVudE5hbWUpIHtcXG4gICAgICAgIGluZm8gPSBcXFwiXFxcXG5cXFxcbkNoZWNrIHRoZSB0b3AtbGV2ZWwgcmVuZGVyIGNhbGwgdXNpbmcgPFxcXCIgKyBwYXJlbnROYW1lICsgXFxcIj4uXFxcIjtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgcmV0dXJuIGluZm87XFxuICB9XFxufVxcbi8qKlxcbiAqIFdhcm4gaWYgdGhlIGVsZW1lbnQgZG9lc24ndCBoYXZlIGFuIGV4cGxpY2l0IGtleSBhc3NpZ25lZCB0byBpdC5cXG4gKiBUaGlzIGVsZW1lbnQgaXMgaW4gYW4gYXJyYXkuIFRoZSBhcnJheSBjb3VsZCBncm93IGFuZCBzaHJpbmsgb3IgYmVcXG4gKiByZW9yZGVyZWQuIEFsbCBjaGlsZHJlbiB0aGF0IGhhdmVuJ3QgYWxyZWFkeSBiZWVuIHZhbGlkYXRlZCBhcmUgcmVxdWlyZWQgdG9cXG4gKiBoYXZlIGEgXFxcImtleVxcXCIgcHJvcGVydHkgYXNzaWduZWQgdG8gaXQuIEVycm9yIHN0YXR1c2VzIGFyZSBjYWNoZWQgc28gYSB3YXJuaW5nXFxuICogd2lsbCBvbmx5IGJlIHNob3duIG9uY2UuXFxuICpcXG4gKiBAaW50ZXJuYWxcXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZWxlbWVudCBFbGVtZW50IHRoYXQgcmVxdWlyZXMgYSBrZXkuXFxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIGVsZW1lbnQncyBwYXJlbnQncyB0eXBlLlxcbiAqL1xcblxcblxcbmZ1bmN0aW9uIHZhbGlkYXRlRXhwbGljaXRLZXkoZWxlbWVudCwgcGFyZW50VHlwZSkge1xcbiAge1xcbiAgICBpZiAoIWVsZW1lbnQuX3N0b3JlIHx8IGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCB8fCBlbGVtZW50LmtleSAhPSBudWxsKSB7XFxuICAgICAgcmV0dXJuO1xcbiAgICB9XFxuXFxuICAgIGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XFxuICAgIHZhciBjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvID0gZ2V0Q3VycmVudENvbXBvbmVudEVycm9ySW5mbyhwYXJlbnRUeXBlKTtcXG5cXG4gICAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xcbiAgICAgIHJldHVybjtcXG4gICAgfVxcblxcbiAgICBvd25lckhhc0tleVVzZVdhcm5pbmdbY3VycmVudENvbXBvbmVudEVycm9ySW5mb10gPSB0cnVlOyAvLyBVc3VhbGx5IHRoZSBjdXJyZW50IG93bmVyIGlzIHRoZSBvZmZlbmRlciwgYnV0IGlmIGl0IGFjY2VwdHMgY2hpbGRyZW4gYXMgYVxcbiAgICAvLyBwcm9wZXJ0eSwgaXQgbWF5IGJlIHRoZSBjcmVhdG9yIG9mIHRoZSBjaGlsZCB0aGF0J3MgcmVzcG9uc2libGUgZm9yXFxuICAgIC8vIGFzc2lnbmluZyBpdCBhIGtleS5cXG5cXG4gICAgdmFyIGNoaWxkT3duZXIgPSAnJztcXG5cXG4gICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5fb3duZXIgJiYgZWxlbWVudC5fb3duZXIgIT09IFJlYWN0Q3VycmVudE93bmVyJDEuY3VycmVudCkge1xcbiAgICAgIC8vIEdpdmUgdGhlIGNvbXBvbmVudCB0aGF0IG9yaWdpbmFsbHkgY3JlYXRlZCB0aGlzIGNoaWxkLlxcbiAgICAgIGNoaWxkT3duZXIgPSBcXFwiIEl0IHdhcyBwYXNzZWQgYSBjaGlsZCBmcm9tIFxcXCIgKyBnZXRDb21wb25lbnROYW1lKGVsZW1lbnQuX293bmVyLnR5cGUpICsgXFxcIi5cXFwiO1xcbiAgICB9XFxuXFxuICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZWxlbWVudCk7XFxuXFxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcXFwia2V5XFxcIiBwcm9wLicgKyAnJXMlcyBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3dhcm5pbmcta2V5cyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nLCBjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvLCBjaGlsZE93bmVyKTtcXG5cXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcXG4gIH1cXG59XFxuLyoqXFxuICogRW5zdXJlIHRoYXQgZXZlcnkgZWxlbWVudCBlaXRoZXIgaXMgcGFzc2VkIGluIGEgc3RhdGljIGxvY2F0aW9uLCBpbiBhblxcbiAqIGFycmF5IHdpdGggYW4gZXhwbGljaXQga2V5cyBwcm9wZXJ0eSBkZWZpbmVkLCBvciBpbiBhbiBvYmplY3QgbGl0ZXJhbFxcbiAqIHdpdGggdmFsaWQga2V5IHByb3BlcnR5LlxcbiAqXFxuICogQGludGVybmFsXFxuICogQHBhcmFtIHtSZWFjdE5vZGV9IG5vZGUgU3RhdGljYWxseSBwYXNzZWQgY2hpbGQgb2YgYW55IHR5cGUuXFxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIG5vZGUncyBwYXJlbnQncyB0eXBlLlxcbiAqL1xcblxcblxcbmZ1bmN0aW9uIHZhbGlkYXRlQ2hpbGRLZXlzKG5vZGUsIHBhcmVudFR5cGUpIHtcXG4gIHtcXG4gICAgaWYgKHR5cGVvZiBub2RlICE9PSAnb2JqZWN0Jykge1xcbiAgICAgIHJldHVybjtcXG4gICAgfVxcblxcbiAgICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgdmFyIGNoaWxkID0gbm9kZVtpXTtcXG5cXG4gICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcXG4gICAgICAgICAgdmFsaWRhdGVFeHBsaWNpdEtleShjaGlsZCwgcGFyZW50VHlwZSk7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICB9IGVsc2UgaWYgKGlzVmFsaWRFbGVtZW50KG5vZGUpKSB7XFxuICAgICAgLy8gVGhpcyBlbGVtZW50IHdhcyBwYXNzZWQgaW4gYSB2YWxpZCBsb2NhdGlvbi5cXG4gICAgICBpZiAobm9kZS5fc3RvcmUpIHtcXG4gICAgICAgIG5vZGUuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XFxuICAgICAgfVxcbiAgICB9IGVsc2UgaWYgKG5vZGUpIHtcXG4gICAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4obm9kZSk7XFxuXFxuICAgICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XFxuICAgICAgICAvLyBFbnRyeSBpdGVyYXRvcnMgdXNlZCB0byBwcm92aWRlIGltcGxpY2l0IGtleXMsXFxuICAgICAgICAvLyBidXQgbm93IHdlIHByaW50IGEgc2VwYXJhdGUgd2FybmluZyBmb3IgdGhlbSBsYXRlci5cXG4gICAgICAgIGlmIChpdGVyYXRvckZuICE9PSBub2RlLmVudHJpZXMpIHtcXG4gICAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKG5vZGUpO1xcbiAgICAgICAgICB2YXIgc3RlcDtcXG5cXG4gICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChzdGVwLnZhbHVlKSkge1xcbiAgICAgICAgICAgICAgdmFsaWRhdGVFeHBsaWNpdEtleShzdGVwLnZhbHVlLCBwYXJlbnRUeXBlKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG59XFxuLyoqXFxuICogR2l2ZW4gYW4gZWxlbWVudCwgdmFsaWRhdGUgdGhhdCBpdHMgcHJvcHMgZm9sbG93IHRoZSBwcm9wVHlwZXMgZGVmaW5pdGlvbixcXG4gKiBwcm92aWRlZCBieSB0aGUgdHlwZS5cXG4gKlxcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50XFxuICovXFxuXFxuXFxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wVHlwZXMoZWxlbWVudCkge1xcbiAge1xcbiAgICB2YXIgdHlwZSA9IGVsZW1lbnQudHlwZTtcXG5cXG4gICAgaWYgKHR5cGUgPT09IG51bGwgfHwgdHlwZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xcbiAgICAgIHJldHVybjtcXG4gICAgfVxcblxcbiAgICB2YXIgcHJvcFR5cGVzO1xcblxcbiAgICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcXG4gICAgICBwcm9wVHlwZXMgPSB0eXBlLnByb3BUeXBlcztcXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gTm90ZTogTWVtbyBvbmx5IGNoZWNrcyBvdXRlciBwcm9wcyBoZXJlLlxcbiAgICAvLyBJbm5lciBwcm9wcyBhcmUgY2hlY2tlZCBpbiB0aGUgcmVjb25jaWxlci5cXG4gICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFKSkge1xcbiAgICAgIHByb3BUeXBlcyA9IHR5cGUucHJvcFR5cGVzO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgIHJldHVybjtcXG4gICAgfVxcblxcbiAgICBpZiAocHJvcFR5cGVzKSB7XFxuICAgICAgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcXG4gICAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWUodHlwZSk7XFxuICAgICAgY2hlY2tQcm9wVHlwZXMocHJvcFR5cGVzLCBlbGVtZW50LnByb3BzLCAncHJvcCcsIG5hbWUsIGVsZW1lbnQpO1xcbiAgICB9IGVsc2UgaWYgKHR5cGUuUHJvcFR5cGVzICE9PSB1bmRlZmluZWQgJiYgIXByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duKSB7XFxuICAgICAgcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24gPSB0cnVlOyAvLyBJbnRlbnRpb25hbGx5IGluc2lkZSB0byBhdm9pZCB0cmlnZ2VyaW5nIGxhenkgaW5pdGlhbGl6ZXJzOlxcblxcbiAgICAgIHZhciBfbmFtZSA9IGdldENvbXBvbmVudE5hbWUodHlwZSk7XFxuXFxuICAgICAgZXJyb3IoJ0NvbXBvbmVudCAlcyBkZWNsYXJlZCBgUHJvcFR5cGVzYCBpbnN0ZWFkIG9mIGBwcm9wVHlwZXNgLiBEaWQgeW91IG1pc3NwZWxsIHRoZSBwcm9wZXJ0eSBhc3NpZ25tZW50PycsIF9uYW1lIHx8ICdVbmtub3duJyk7XFxuICAgIH1cXG5cXG4gICAgaWYgKHR5cGVvZiB0eXBlLmdldERlZmF1bHRQcm9wcyA9PT0gJ2Z1bmN0aW9uJyAmJiAhdHlwZS5nZXREZWZhdWx0UHJvcHMuaXNSZWFjdENsYXNzQXBwcm92ZWQpIHtcXG4gICAgICBlcnJvcignZ2V0RGVmYXVsdFByb3BzIGlzIG9ubHkgdXNlZCBvbiBjbGFzc2ljIFJlYWN0LmNyZWF0ZUNsYXNzICcgKyAnZGVmaW5pdGlvbnMuIFVzZSBhIHN0YXRpYyBwcm9wZXJ0eSBuYW1lZCBgZGVmYXVsdFByb3BzYCBpbnN0ZWFkLicpO1xcbiAgICB9XFxuICB9XFxufVxcbi8qKlxcbiAqIEdpdmVuIGEgZnJhZ21lbnQsIHZhbGlkYXRlIHRoYXQgaXQgY2FuIG9ubHkgYmUgcHJvdmlkZWQgd2l0aCBmcmFnbWVudCBwcm9wc1xcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBmcmFnbWVudFxcbiAqL1xcblxcblxcbmZ1bmN0aW9uIHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhmcmFnbWVudCkge1xcbiAge1xcbiAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGZyYWdtZW50LnByb3BzKTtcXG5cXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XFxuICAgICAgdmFyIGtleSA9IGtleXNbaV07XFxuXFxuICAgICAgaWYgKGtleSAhPT0gJ2NoaWxkcmVuJyAmJiBrZXkgIT09ICdrZXknKSB7XFxuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGZyYWdtZW50KTtcXG5cXG4gICAgICAgIGVycm9yKCdJbnZhbGlkIHByb3AgYCVzYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLiAnICsgJ1JlYWN0LkZyYWdtZW50IGNhbiBvbmx5IGhhdmUgYGtleWAgYW5kIGBjaGlsZHJlbmAgcHJvcHMuJywga2V5KTtcXG5cXG4gICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XFxuICAgICAgICBicmVhaztcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgaWYgKGZyYWdtZW50LnJlZiAhPT0gbnVsbCkge1xcbiAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZnJhZ21lbnQpO1xcblxcbiAgICAgIGVycm9yKCdJbnZhbGlkIGF0dHJpYnV0ZSBgcmVmYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLicpO1xcblxcbiAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XFxuICAgIH1cXG4gIH1cXG59XFxuXFxuZnVuY3Rpb24ganN4V2l0aFZhbGlkYXRpb24odHlwZSwgcHJvcHMsIGtleSwgaXNTdGF0aWNDaGlsZHJlbiwgc291cmNlLCBzZWxmKSB7XFxuICB7XFxuICAgIHZhciB2YWxpZFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSk7IC8vIFdlIHdhcm4gaW4gdGhpcyBjYXNlIGJ1dCBkb24ndCB0aHJvdy4gV2UgZXhwZWN0IHRoZSBlbGVtZW50IGNyZWF0aW9uIHRvXFxuICAgIC8vIHN1Y2NlZWQgYW5kIHRoZXJlIHdpbGwgbGlrZWx5IGJlIGVycm9ycyBpbiByZW5kZXIuXFxuXFxuICAgIGlmICghdmFsaWRUeXBlKSB7XFxuICAgICAgdmFyIGluZm8gPSAnJztcXG5cXG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiB0eXBlICE9PSBudWxsICYmIE9iamVjdC5rZXlzKHR5cGUpLmxlbmd0aCA9PT0gMCkge1xcbiAgICAgICAgaW5mbyArPSAnIFlvdSBsaWtlbHkgZm9yZ290IHRvIGV4cG9ydCB5b3VyIGNvbXBvbmVudCBmcm9tIHRoZSBmaWxlICcgKyBcXFwiaXQncyBkZWZpbmVkIGluLCBvciB5b3UgbWlnaHQgaGF2ZSBtaXhlZCB1cCBkZWZhdWx0IGFuZCBuYW1lZCBpbXBvcnRzLlxcXCI7XFxuICAgICAgfVxcblxcbiAgICAgIHZhciBzb3VyY2VJbmZvID0gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oc291cmNlKTtcXG5cXG4gICAgICBpZiAoc291cmNlSW5mbykge1xcbiAgICAgICAgaW5mbyArPSBzb3VyY2VJbmZvO1xcbiAgICAgIH0gZWxzZSB7XFxuICAgICAgICBpbmZvICs9IGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpO1xcbiAgICAgIH1cXG5cXG4gICAgICB2YXIgdHlwZVN0cmluZztcXG5cXG4gICAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xcbiAgICAgICAgdHlwZVN0cmluZyA9ICdudWxsJztcXG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodHlwZSkpIHtcXG4gICAgICAgIHR5cGVTdHJpbmcgPSAnYXJyYXknO1xcbiAgICAgIH0gZWxzZSBpZiAodHlwZSAhPT0gdW5kZWZpbmVkICYmIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSkge1xcbiAgICAgICAgdHlwZVN0cmluZyA9IFxcXCI8XFxcIiArIChnZXRDb21wb25lbnROYW1lKHR5cGUudHlwZSkgfHwgJ1Vua25vd24nKSArIFxcXCIgLz5cXFwiO1xcbiAgICAgICAgaW5mbyA9ICcgRGlkIHlvdSBhY2NpZGVudGFsbHkgZXhwb3J0IGEgSlNYIGxpdGVyYWwgaW5zdGVhZCBvZiBhIGNvbXBvbmVudD8nO1xcbiAgICAgIH0gZWxzZSB7XFxuICAgICAgICB0eXBlU3RyaW5nID0gdHlwZW9mIHR5cGU7XFxuICAgICAgfVxcblxcbiAgICAgIGVycm9yKCdSZWFjdC5qc3g6IHR5cGUgaXMgaW52YWxpZCAtLSBleHBlY3RlZCBhIHN0cmluZyAoZm9yICcgKyAnYnVpbHQtaW4gY29tcG9uZW50cykgb3IgYSBjbGFzcy9mdW5jdGlvbiAoZm9yIGNvbXBvc2l0ZSAnICsgJ2NvbXBvbmVudHMpIGJ1dCBnb3Q6ICVzLiVzJywgdHlwZVN0cmluZywgaW5mbyk7XFxuICAgIH1cXG5cXG4gICAgdmFyIGVsZW1lbnQgPSBqc3hERVYodHlwZSwgcHJvcHMsIGtleSwgc291cmNlLCBzZWxmKTsgLy8gVGhlIHJlc3VsdCBjYW4gYmUgbnVsbGlzaCBpZiBhIG1vY2sgb3IgYSBjdXN0b20gZnVuY3Rpb24gaXMgdXNlZC5cXG4gICAgLy8gVE9ETzogRHJvcCB0aGlzIHdoZW4gdGhlc2UgYXJlIG5vIGxvbmdlciBhbGxvd2VkIGFzIHRoZSB0eXBlIGFyZ3VtZW50LlxcblxcbiAgICBpZiAoZWxlbWVudCA9PSBudWxsKSB7XFxuICAgICAgcmV0dXJuIGVsZW1lbnQ7XFxuICAgIH0gLy8gU2tpcCBrZXkgd2FybmluZyBpZiB0aGUgdHlwZSBpc24ndCB2YWxpZCBzaW5jZSBvdXIga2V5IHZhbGlkYXRpb24gbG9naWNcXG4gICAgLy8gZG9lc24ndCBleHBlY3QgYSBub24tc3RyaW5nL2Z1bmN0aW9uIHR5cGUgYW5kIGNhbiB0aHJvdyBjb25mdXNpbmcgZXJyb3JzLlxcbiAgICAvLyBXZSBkb24ndCB3YW50IGV4Y2VwdGlvbiBiZWhhdmlvciB0byBkaWZmZXIgYmV0d2VlbiBkZXYgYW5kIHByb2QuXFxuICAgIC8vIChSZW5kZXJpbmcgd2lsbCB0aHJvdyB3aXRoIGEgaGVscGZ1bCBtZXNzYWdlIGFuZCBhcyBzb29uIGFzIHRoZSB0eXBlIGlzXFxuICAgIC8vIGZpeGVkLCB0aGUga2V5IHdhcm5pbmdzIHdpbGwgYXBwZWFyLilcXG5cXG5cXG4gICAgaWYgKHZhbGlkVHlwZSkge1xcbiAgICAgIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuO1xcblxcbiAgICAgIGlmIChjaGlsZHJlbiAhPT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICBpZiAoaXNTdGF0aWNDaGlsZHJlbikge1xcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICAgICAgICB2YWxpZGF0ZUNoaWxkS2V5cyhjaGlsZHJlbltpXSwgdHlwZSk7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIGlmIChPYmplY3QuZnJlZXplKSB7XFxuICAgICAgICAgICAgICBPYmplY3QuZnJlZXplKGNoaWxkcmVuKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgZXJyb3IoJ1JlYWN0LmpzeDogU3RhdGljIGNoaWxkcmVuIHNob3VsZCBhbHdheXMgYmUgYW4gYXJyYXkuICcgKyAnWW91IGFyZSBsaWtlbHkgZXhwbGljaXRseSBjYWxsaW5nIFJlYWN0LmpzeHMgb3IgUmVhY3QuanN4REVWLiAnICsgJ1VzZSB0aGUgQmFiZWwgdHJhbnNmb3JtIGluc3RlYWQuJyk7XFxuICAgICAgICAgIH1cXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuLCB0eXBlKTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgaWYgKHR5cGUgPT09IGV4cG9ydHMuRnJhZ21lbnQpIHtcXG4gICAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCk7XFxuICAgIH0gZWxzZSB7XFxuICAgICAgdmFsaWRhdGVQcm9wVHlwZXMoZWxlbWVudCk7XFxuICAgIH1cXG5cXG4gICAgcmV0dXJuIGVsZW1lbnQ7XFxuICB9XFxufSAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGV4aXN0IHRvIHN0aWxsIGdldCBjaGlsZCB3YXJuaW5ncyBpbiBkZXZcXG4vLyBldmVuIHdpdGggdGhlIHByb2QgdHJhbnNmb3JtLiBUaGlzIG1lYW5zIHRoYXQganN4REVWIGlzIHB1cmVseVxcbi8vIG9wdC1pbiBiZWhhdmlvciBmb3IgYmV0dGVyIG1lc3NhZ2VzIGJ1dCB0aGF0IHdlIHdvbid0IHN0b3BcXG4vLyBnaXZpbmcgeW91IHdhcm5pbmdzIGlmIHlvdSB1c2UgcHJvZHVjdGlvbiBhcGlzLlxcblxcbmZ1bmN0aW9uIGpzeFdpdGhWYWxpZGF0aW9uU3RhdGljKHR5cGUsIHByb3BzLCBrZXkpIHtcXG4gIHtcXG4gICAgcmV0dXJuIGpzeFdpdGhWYWxpZGF0aW9uKHR5cGUsIHByb3BzLCBrZXksIHRydWUpO1xcbiAgfVxcbn1cXG5mdW5jdGlvbiBqc3hXaXRoVmFsaWRhdGlvbkR5bmFtaWModHlwZSwgcHJvcHMsIGtleSkge1xcbiAge1xcbiAgICByZXR1cm4ganN4V2l0aFZhbGlkYXRpb24odHlwZSwgcHJvcHMsIGtleSwgZmFsc2UpO1xcbiAgfVxcbn1cXG5cXG52YXIganN4ID0gIGpzeFdpdGhWYWxpZGF0aW9uRHluYW1pYyA7IC8vIHdlIG1heSB3YW50IHRvIHNwZWNpYWwgY2FzZSBqc3hzIGludGVybmFsbHkgdG8gdGFrZSBhZHZhbnRhZ2Ugb2Ygc3RhdGljIGNoaWxkcmVuLlxcbi8vIGZvciBub3cgd2UgY2FuIHNoaXAgaWRlbnRpY2FsIHByb2QgZnVuY3Rpb25zXFxuXFxudmFyIGpzeHMgPSAganN4V2l0aFZhbGlkYXRpb25TdGF0aWMgO1xcblxcbmV4cG9ydHMuanN4ID0ganN4O1xcbmV4cG9ydHMuanN4cyA9IGpzeHM7XFxuICB9KSgpO1xcbn1cXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDNKbFlXTjBMMk5xY3k5eVpXRmpkQzFxYzNndGNuVnVkR2x0WlM1a1pYWmxiRzl3YldWdWRDNXFjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lRVUZCUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVmhPenRCUVVWaUxFbEJRVWtzU1VGQmNVTTdRVUZEZWtNN1FVRkRRVHM3UVVGRlFTeFpRVUZaTEcxQ1FVRlBMRU5CUVVNc2IwSkJRVTg3UVVGRE0wSXNZMEZCWXl4dFFrRkJUeXhEUVVGRExHMUZRVUZsT3p0QlFVVnlRenRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR2RDUVVGblFqdEJRVU5vUWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzUlVGQlJTeG5Ra0ZCWjBJN1FVRkRiRUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUczdRVUZGUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEVzSzBaQlFTdEdMR1ZCUVdVN1FVRkRPVWM3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRU3hMUVVGTExFZEJRVWM3TzBGQlJWSXNhMFJCUVd0RU8wRkJRMnhFTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk96dEJRVVZCT3p0QlFVVkJMRFJDUVVFMFFqczdRVUZGTlVJN1FVRkRRVHRCUVVOQk8wRkJRMEVzU1VGQlNUczdPMEZCUjBvN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUczdRVUZGUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQkxGbEJRVms3UVVGRFdqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4MVEwRkJkVU03TzBGQlJYWkRPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFRRVUZUT3p0QlFVVlVPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4UFFVRlBPMEZCUTFBN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1UwRkJVenM3UVVGRlZEdEJRVU5CTEhWQ1FVRjFRanRCUVVOMlFqdEJRVU5CTEZOQlFWTTdRVUZEVkN4M1FrRkJkMEk3UVVGRGVFSTdRVUZEUVN4VFFVRlRPMEZCUTFRc2QwSkJRWGRDTzBGQlEzaENPMEZCUTBFc1UwRkJVenRCUVVOVUxIbENRVUY1UWp0QlFVTjZRanRCUVVOQkxGTkJRVk03UVVGRFZDeDVRa0ZCZVVJN1FVRkRla0k3UVVGRFFTeFRRVUZUTzBGQlExUXNhME5CUVd0RE8wRkJRMnhETzBGQlEwRXNVMEZCVXp0QlFVTlVMRFJDUVVFMFFqdEJRVU0xUWp0QlFVTkJMRk5CUVZNN1FVRkRWQ3hQUVVGUE8wRkJRMUE3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFJRVUZSTzBGQlExSTdRVUZEUVR0QlFVTkJPMEZCUTBFc1RVRkJUVHM3TzBGQlIwNDdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQkxESkVRVUV5UkRzN1FVRkZNMFE3UVVGRFFUczdRVUZGUVR0QlFVTkJMSGxFUVVGNVJEdEJRVU42UkRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVTBGQlV6czdPMEZCUjFRN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNUMEZCVHpzN1FVRkZVRHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNWVUZCVlR0QlFVTldPMEZCUTBFN08wRkJSVUU3UVVGRFFTeFJRVUZSTzBGQlExSTdRVUZEUVR0QlFVTkJMRlZCUVZVN1FVRkRWanRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVN4TlFVRk5PMEZCUTA0N1FVRkRRVHRCUVVOQkxGRkJRVkU3UVVGRFVqdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRU3hKUVVGSk8wRkJRMG83UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRXNZVUZCWVN4clFrRkJhMEk3UVVGREwwSTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRzFDUVVGdFFqdEJRVU51UWpzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hyUWtGQmEwSTdPenRCUVVkc1FqdEJRVU5CTzBGQlEwRXNZMEZCWXp0QlFVTmtPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNTVUZCU1R0QlFVTktPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFc1NVRkJTVHM3TzBGQlIwbzdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRXNXVUZCV1R0QlFVTmFPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1RVRkJUVHRCUVVOT08wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVN3NFFrRkJPRUk3UVVGRE9VSTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTERKSVFVRXlTRHRCUVVNelNEdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRU3hWUVVGVk8wRkJRMVk3UVVGRFFUczdRVUZGUVR0QlFVTkJPenRCUVVWQkxHOUZRVUZ2UlRzN1FVRkZjRVU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxFdEJRVXM3UVVGRFREdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNTMEZCU3p0QlFVTk1PMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4WFFVRlhMRWRCUVVjN1FVRkRaQ3hYUVVGWExFZEJRVWM3UVVGRFpDeFhRVUZYTEVkQlFVYzdRVUZEWkN4WFFVRlhMR1ZCUVdVN1FVRkRNVUlzVjBGQlZ5eEhRVUZITzBGQlEyUXNWMEZCVnl4SFFVRkhPMEZCUTJRN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFhRVUZYTEVkQlFVYzdRVUZEWkR0QlFVTkJPMEZCUTBFN096dEJRVWRCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNlVUpCUVhsQ08wRkJRM3BDTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNTMEZCU3l4SFFVRkhPenRCUVVWU08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4TFFVRkxMRWRCUVVjN1FVRkRVanM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1MwRkJTenM3UVVGRlREdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNWMEZCVnl4SFFVRkhPMEZCUTJRc1YwRkJWeXhSUVVGUk8wRkJRMjVDTEZkQlFWY3NVVUZCVVR0QlFVTnVRanM3UVVGRlFUdEJRVU5CTzBGQlEwRXNhMEpCUVd0Q096dEJRVVZzUWp0QlFVTkJPMEZCUTBFc2IwSkJRVzlDTzBGQlEzQkNMREpFUVVFeVJDeFZRVUZWTzBGQlEzSkZMSGxDUVVGNVFpeFZRVUZWTzBGQlEyNURPMEZCUTBFc1lVRkJZU3hWUVVGVk8wRkJRM1pDT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVFVGQlRUczdPMEZCUjA0N1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeE5RVUZOT3pzN1FVRkhUanRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4TlFVRk5PMEZCUTA0N1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNWMEZCVnl4VFFVRlRPMEZCUTNCQ0xGbEJRVmtzVTBGQlV6dEJRVU55UWp0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPenRCUVVkQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFhRVUZYTEdOQlFXTTdRVUZEZWtJc1YwRkJWeXhIUVVGSE8wRkJRMlE3T3p0QlFVZEJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRXNOa1JCUVRaRU8wRkJRemRFTzBGQlEwRTdPMEZCUlVFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN08wRkJSVUU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNWMEZCVnl4WFFVRlhPMEZCUTNSQ0xGZEJRVmNzUjBGQlJ6dEJRVU5rT3pzN1FVRkhRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFc2MwSkJRWE5DTEdsQ1FVRnBRanRCUVVOMlF6czdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxFMUJRVTA3UVVGRFRqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRTFCUVUwN1FVRkRUanM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRmRCUVZjc1kwRkJZenRCUVVONlFqczdPMEZCUjBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRXNUVUZCVFR0QlFVTk9PMEZCUTBFN1FVRkRRVHRCUVVOQkxFMUJRVTA3UVVGRFRqdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVFVGQlRUdEJRVU5PTERSRFFVRTBRenM3UVVGRk5VTTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxGZEJRVmNzWTBGQll6dEJRVU42UWpzN08wRkJSMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJMRzlDUVVGdlFpeHBRa0ZCYVVJN1FVRkRja003TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVN3NFEwRkJPRU03UVVGRE9VTTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN08wRkJSVUU3UVVGRFFUdEJRVU5CTEZGQlFWRTdRVUZEVWp0QlFVTkJPenRCUVVWQk96dEJRVVZCTzBGQlEwRTdRVUZEUVN4UlFVRlJPMEZCUTFJN1FVRkRRU3hSUVVGUk8wRkJRMUk3UVVGRFFUdEJRVU5CTEZGQlFWRTdRVUZEVWp0QlFVTkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRXNNRVJCUVRCRU8wRkJRekZFT3p0QlFVVkJPMEZCUTBFN1FVRkRRU3hOUVVGTk8wRkJRMDQ3UVVGRFFUdEJRVU5CTzBGQlEwRTdPenRCUVVkQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFc05FSkJRVFJDTEhGQ1FVRnhRanRCUVVOcVJEdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxGbEJRVms3UVVGRFdqdEJRVU5CTzBGQlEwRXNWVUZCVlR0QlFVTldPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVN4TlFVRk5PMEZCUTA0N1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRXNSVUZCUlR0QlFVTkdPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVN4elEwRkJjME03UVVGRGRFTTdPMEZCUlVFN08wRkJSVUVzVjBGQlZ6dEJRVU5ZTEZsQlFWazdRVUZEV2l4SFFVRkhPMEZCUTBnaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzSmxZV04wTDJOcWN5OXlaV0ZqZEMxcWMzZ3RjblZ1ZEdsdFpTNWtaWFpsYkc5d2JXVnVkQzVxY3o5bVl6VmpJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtpQkFiR2xqWlc1elpTQlNaV0ZqZENCMk1UY3VNQzR5WEc0Z0tpQnlaV0ZqZEMxcWMzZ3RjblZ1ZEdsdFpTNWtaWFpsYkc5d2JXVnVkQzVxYzF4dUlDcGNiaUFxSUVOdmNIbHlhV2RvZENBb1l5a2dSbUZqWldKdmIyc3NJRWx1WXk0Z1lXNWtJR2wwY3lCaFptWnBiR2xoZEdWekxseHVJQ3BjYmlBcUlGUm9hWE1nYzI5MWNtTmxJR052WkdVZ2FYTWdiR2xqWlc1elpXUWdkVzVrWlhJZ2RHaGxJRTFKVkNCc2FXTmxibk5sSUdadmRXNWtJR2x1SUhSb1pWeHVJQ29nVEVsRFJVNVRSU0JtYVd4bElHbHVJSFJvWlNCeWIyOTBJR1JwY21WamRHOXllU0J2WmlCMGFHbHpJSE52ZFhKalpTQjBjbVZsTGx4dUlDb3ZYRzVjYmlkMWMyVWdjM1J5YVdOMEp6dGNibHh1YVdZZ0tIQnliMk5sYzNNdVpXNTJMazVQUkVWZlJVNVdJQ0U5UFNCY0luQnliMlIxWTNScGIyNWNJaWtnZTF4dUlDQW9ablZ1WTNScGIyNG9LU0I3WEc0bmRYTmxJSE4wY21samRDYzdYRzVjYm5aaGNpQlNaV0ZqZENBOUlISmxjWFZwY21Vb0ozSmxZV04wSnlrN1hHNTJZWElnWDJGemMybG5iaUE5SUhKbGNYVnBjbVVvSjI5aWFtVmpkQzFoYzNOcFoyNG5LVHRjYmx4dUx5OGdRVlJVUlU1VVNVOU9YRzR2THlCWGFHVnVJR0ZrWkdsdVp5QnVaWGNnYzNsdFltOXNjeUIwYnlCMGFHbHpJR1pwYkdVc1hHNHZMeUJRYkdWaGMyVWdZMjl1YzJsa1pYSWdZV3h6YnlCaFpHUnBibWNnZEc4Z0ozSmxZV04wTFdSbGRuUnZiMnh6TFhOb1lYSmxaQzl6Y21NdlltRmphMlZ1WkM5U1pXRmpkRk41YldKdmJITW5YRzR2THlCVWFHVWdVM2x0WW05c0lIVnpaV1FnZEc4Z2RHRm5JSFJvWlNCU1pXRmpkRVZzWlcxbGJuUXRiR2xyWlNCMGVYQmxjeTRnU1dZZ2RHaGxjbVVnYVhNZ2JtOGdibUYwYVhabElGTjViV0p2YkZ4dUx5OGdibTl5SUhCdmJIbG1hV3hzTENCMGFHVnVJR0VnY0d4aGFXNGdiblZ0WW1WeUlHbHpJSFZ6WldRZ1ptOXlJSEJsY21admNtMWhibU5sTGx4dWRtRnlJRkpGUVVOVVgwVk1SVTFGVGxSZlZGbFFSU0E5SURCNFpXRmpOenRjYm5aaGNpQlNSVUZEVkY5UVQxSlVRVXhmVkZsUVJTQTlJREI0WldGallUdGNibVY0Y0c5eWRITXVSbkpoWjIxbGJuUWdQU0F3ZUdWaFkySTdYRzUyWVhJZ1VrVkJRMVJmVTFSU1NVTlVYMDFQUkVWZlZGbFFSU0E5SURCNFpXRmpZenRjYm5aaGNpQlNSVUZEVkY5UVVrOUdTVXhGVWw5VVdWQkZJRDBnTUhobFlXUXlPMXh1ZG1GeUlGSkZRVU5VWDFCU1QxWkpSRVZTWDFSWlVFVWdQU0F3ZUdWaFkyUTdYRzUyWVhJZ1VrVkJRMVJmUTA5T1ZFVllWRjlVV1ZCRklEMGdNSGhsWVdObE8xeHVkbUZ5SUZKRlFVTlVYMFpQVWxkQlVrUmZVa1ZHWDFSWlVFVWdQU0F3ZUdWaFpEQTdYRzUyWVhJZ1VrVkJRMVJmVTFWVFVFVk9VMFZmVkZsUVJTQTlJREI0WldGa01UdGNiblpoY2lCU1JVRkRWRjlUVlZOUVJVNVRSVjlNU1ZOVVgxUlpVRVVnUFNBd2VHVmhaRGc3WEc1MllYSWdVa1ZCUTFSZlRVVk5UMTlVV1ZCRklEMGdNSGhsWVdRek8xeHVkbUZ5SUZKRlFVTlVYMHhCV2xsZlZGbFFSU0E5SURCNFpXRmtORHRjYm5aaGNpQlNSVUZEVkY5Q1RFOURTMTlVV1ZCRklEMGdNSGhsWVdRNU8xeHVkbUZ5SUZKRlFVTlVYMU5GVWxaRlVsOUNURTlEUzE5VVdWQkZJRDBnTUhobFlXUmhPMXh1ZG1GeUlGSkZRVU5VWDBaVlRrUkJUVVZPVkVGTVgxUlpVRVVnUFNBd2VHVmhaRFU3WEc1MllYSWdVa1ZCUTFSZlUwTlBVRVZmVkZsUVJTQTlJREI0WldGa056dGNiblpoY2lCU1JVRkRWRjlQVUVGUlZVVmZTVVJmVkZsUVJTQTlJREI0WldGbE1EdGNiblpoY2lCU1JVRkRWRjlFUlVKVlIxOVVVa0ZEU1U1SFgwMVBSRVZmVkZsUVJTQTlJREI0WldGbE1UdGNiblpoY2lCU1JVRkRWRjlQUmtaVFExSkZSVTVmVkZsUVJTQTlJREI0WldGbE1qdGNiblpoY2lCU1JVRkRWRjlNUlVkQlExbGZTRWxFUkVWT1gxUlpVRVVnUFNBd2VHVmhaVE03WEc1Y2JtbG1JQ2gwZVhCbGIyWWdVM2x0WW05c0lEMDlQU0FuWm5WdVkzUnBiMjRuSUNZbUlGTjViV0p2YkM1bWIzSXBJSHRjYmlBZ2RtRnlJSE41YldKdmJFWnZjaUE5SUZONWJXSnZiQzVtYjNJN1hHNGdJRkpGUVVOVVgwVk1SVTFGVGxSZlZGbFFSU0E5SUhONWJXSnZiRVp2Y2lnbmNtVmhZM1F1Wld4bGJXVnVkQ2NwTzF4dUlDQlNSVUZEVkY5UVQxSlVRVXhmVkZsUVJTQTlJSE41YldKdmJFWnZjaWduY21WaFkzUXVjRzl5ZEdGc0p5azdYRzRnSUdWNGNHOXlkSE11Um5KaFoyMWxiblFnUFNCemVXMWliMnhHYjNJb0ozSmxZV04wTG1aeVlXZHRaVzUwSnlrN1hHNGdJRkpGUVVOVVgxTlVVa2xEVkY5TlQwUkZYMVJaVUVVZ1BTQnplVzFpYjJ4R2IzSW9KM0psWVdOMExuTjBjbWxqZEY5dGIyUmxKeWs3WEc0Z0lGSkZRVU5VWDFCU1QwWkpURVZTWDFSWlVFVWdQU0J6ZVcxaWIyeEdiM0lvSjNKbFlXTjBMbkJ5YjJacGJHVnlKeWs3WEc0Z0lGSkZRVU5VWDFCU1QxWkpSRVZTWDFSWlVFVWdQU0J6ZVcxaWIyeEdiM0lvSjNKbFlXTjBMbkJ5YjNacFpHVnlKeWs3WEc0Z0lGSkZRVU5VWDBOUFRsUkZXRlJmVkZsUVJTQTlJSE41YldKdmJFWnZjaWduY21WaFkzUXVZMjl1ZEdWNGRDY3BPMXh1SUNCU1JVRkRWRjlHVDFKWFFWSkVYMUpGUmw5VVdWQkZJRDBnYzNsdFltOXNSbTl5S0NkeVpXRmpkQzVtYjNKM1lYSmtYM0psWmljcE8xeHVJQ0JTUlVGRFZGOVRWVk5RUlU1VFJWOVVXVkJGSUQwZ2MzbHRZbTlzUm05eUtDZHlaV0ZqZEM1emRYTndaVzV6WlNjcE8xeHVJQ0JTUlVGRFZGOVRWVk5RUlU1VFJWOU1TVk5VWDFSWlVFVWdQU0J6ZVcxaWIyeEdiM0lvSjNKbFlXTjBMbk4xYzNCbGJuTmxYMnhwYzNRbktUdGNiaUFnVWtWQlExUmZUVVZOVDE5VVdWQkZJRDBnYzNsdFltOXNSbTl5S0NkeVpXRmpkQzV0Wlcxdkp5azdYRzRnSUZKRlFVTlVYMHhCV2xsZlZGbFFSU0E5SUhONWJXSnZiRVp2Y2lnbmNtVmhZM1F1YkdGNmVTY3BPMXh1SUNCU1JVRkRWRjlDVEU5RFMxOVVXVkJGSUQwZ2MzbHRZbTlzUm05eUtDZHlaV0ZqZEM1aWJHOWpheWNwTzF4dUlDQlNSVUZEVkY5VFJWSldSVkpmUWt4UFEwdGZWRmxRUlNBOUlITjViV0p2YkVadmNpZ25jbVZoWTNRdWMyVnlkbVZ5TG1Kc2IyTnJKeWs3WEc0Z0lGSkZRVU5VWDBaVlRrUkJUVVZPVkVGTVgxUlpVRVVnUFNCemVXMWliMnhHYjNJb0ozSmxZV04wTG1aMWJtUmhiV1Z1ZEdGc0p5azdYRzRnSUZKRlFVTlVYMU5EVDFCRlgxUlpVRVVnUFNCemVXMWliMnhHYjNJb0ozSmxZV04wTG5OamIzQmxKeWs3WEc0Z0lGSkZRVU5VWDA5UVFWRlZSVjlKUkY5VVdWQkZJRDBnYzNsdFltOXNSbTl5S0NkeVpXRmpkQzV2Y0dGeGRXVXVhV1FuS1R0Y2JpQWdVa1ZCUTFSZlJFVkNWVWRmVkZKQlEwbE9SMTlOVDBSRlgxUlpVRVVnUFNCemVXMWliMnhHYjNJb0ozSmxZV04wTG1SbFluVm5YM1J5WVdObFgyMXZaR1VuS1R0Y2JpQWdVa1ZCUTFSZlQwWkdVME5TUlVWT1gxUlpVRVVnUFNCemVXMWliMnhHYjNJb0ozSmxZV04wTG05bVpuTmpjbVZsYmljcE8xeHVJQ0JTUlVGRFZGOU1SVWRCUTFsZlNFbEVSRVZPWDFSWlVFVWdQU0J6ZVcxaWIyeEdiM0lvSjNKbFlXTjBMbXhsWjJGamVWOW9hV1JrWlc0bktUdGNibjFjYmx4dWRtRnlJRTFCV1VKRlgwbFVSVkpCVkU5U1gxTlpUVUpQVENBOUlIUjVjR1Z2WmlCVGVXMWliMndnUFQwOUlDZG1kVzVqZEdsdmJpY2dKaVlnVTNsdFltOXNMbWwwWlhKaGRHOXlPMXh1ZG1GeUlFWkJWVmhmU1ZSRlVrRlVUMUpmVTFsTlFrOU1JRDBnSjBCQWFYUmxjbUYwYjNJbk8xeHVablZ1WTNScGIyNGdaMlYwU1hSbGNtRjBiM0pHYmlodFlYbGlaVWwwWlhKaFlteGxLU0I3WEc0Z0lHbG1JQ2h0WVhsaVpVbDBaWEpoWW14bElEMDlQU0J1ZFd4c0lIeDhJSFI1Y0dWdlppQnRZWGxpWlVsMFpYSmhZbXhsSUNFOVBTQW5iMkpxWldOMEp5a2dlMXh1SUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNCOVhHNWNiaUFnZG1GeUlHMWhlV0psU1hSbGNtRjBiM0lnUFNCTlFWbENSVjlKVkVWU1FWUlBVbDlUV1UxQ1Qwd2dKaVlnYldGNVltVkpkR1Z5WVdKc1pWdE5RVmxDUlY5SlZFVlNRVlJQVWw5VFdVMUNUMHhkSUh4OElHMWhlV0psU1hSbGNtRmliR1ZiUmtGVldGOUpWRVZTUVZSUFVsOVRXVTFDVDB4ZE8xeHVYRzRnSUdsbUlDaDBlWEJsYjJZZ2JXRjVZbVZKZEdWeVlYUnZjaUE5UFQwZ0oyWjFibU4wYVc5dUp5a2dlMXh1SUNBZ0lISmxkSFZ5YmlCdFlYbGlaVWwwWlhKaGRHOXlPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJRzUxYkd3N1hHNTlYRzVjYm5aaGNpQlNaV0ZqZEZOb1lYSmxaRWx1ZEdWeWJtRnNjeUE5SUZKbFlXTjBMbDlmVTBWRFVrVlVYMGxPVkVWU1RrRk1VMTlFVDE5T1QxUmZWVk5GWDA5U1gxbFBWVjlYU1V4TVgwSkZYMFpKVWtWRU8xeHVYRzVtZFc1amRHbHZiaUJsY25KdmNpaG1iM0p0WVhRcElIdGNiaUFnZTF4dUlDQWdJR1p2Y2lBb2RtRnlJRjlzWlc0eUlEMGdZWEpuZFcxbGJuUnpMbXhsYm1kMGFDd2dZWEpuY3lBOUlHNWxkeUJCY25KaGVTaGZiR1Z1TWlBK0lERWdQeUJmYkdWdU1pQXRJREVnT2lBd0tTd2dYMnRsZVRJZ1BTQXhPeUJmYTJWNU1pQThJRjlzWlc0eU95QmZhMlY1TWlzcktTQjdYRzRnSUNBZ0lDQmhjbWR6VzE5clpYa3lJQzBnTVYwZ1BTQmhjbWQxYldWdWRITmJYMnRsZVRKZE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhCeWFXNTBWMkZ5Ym1sdVp5Z25aWEp5YjNJbkxDQm1iM0p0WVhRc0lHRnlaM01wTzF4dUlDQjlYRzU5WEc1Y2JtWjFibU4wYVc5dUlIQnlhVzUwVjJGeWJtbHVaeWhzWlhabGJDd2dabTl5YldGMExDQmhjbWR6S1NCN1hHNGdJQzh2SUZkb1pXNGdZMmhoYm1kcGJtY2dkR2hwY3lCc2IyZHBZeXdnZVc5MUlHMXBaMmgwSUhkaGJuUWdkRzhnWVd4emIxeHVJQ0F2THlCMWNHUmhkR1VnWTI5dWMyOXNaVmRwZEdoVGRHRmphMFJsZGk1M2QzY3Vhbk1nWVhNZ2QyVnNiQzVjYmlBZ2UxeHVJQ0FnSUhaaGNpQlNaV0ZqZEVSbFluVm5RM1Z5Y21WdWRFWnlZVzFsSUQwZ1VtVmhZM1JUYUdGeVpXUkpiblJsY201aGJITXVVbVZoWTNSRVpXSjFaME4xY25KbGJuUkdjbUZ0WlR0Y2JpQWdJQ0IyWVhJZ2MzUmhZMnNnUFNCU1pXRmpkRVJsWW5WblEzVnljbVZ1ZEVaeVlXMWxMbWRsZEZOMFlXTnJRV1JrWlc1a2RXMG9LVHRjYmx4dUlDQWdJR2xtSUNoemRHRmpheUFoUFQwZ0p5Y3BJSHRjYmlBZ0lDQWdJR1p2Y20xaGRDQXJQU0FuSlhNbk8xeHVJQ0FnSUNBZ1lYSm5jeUE5SUdGeVozTXVZMjl1WTJGMEtGdHpkR0ZqYTEwcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhaaGNpQmhjbWR6VjJsMGFFWnZjbTFoZENBOUlHRnlaM011YldGd0tHWjFibU4wYVc5dUlDaHBkR1Z0S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnSnljZ0t5QnBkR1Z0TzF4dUlDQWdJSDBwT3lBdkx5QkRZWEpsWm5Wc09pQlNUaUJqZFhKeVpXNTBiSGtnWkdWd1pXNWtjeUJ2YmlCMGFHbHpJSEJ5WldacGVGeHVYRzRnSUNBZ1lYSm5jMWRwZEdoR2IzSnRZWFF1ZFc1emFHbG1kQ2duVjJGeWJtbHVaem9nSnlBcklHWnZjbTFoZENrN0lDOHZJRmRsSUdsdWRHVnVkR2x2Ym1Gc2JIa2daRzl1SjNRZ2RYTmxJSE53Y21WaFpDQW9iM0lnTG1Gd2NHeDVLU0JrYVhKbFkzUnNlU0JpWldOaGRYTmxJR2wwWEc0Z0lDQWdMeThnWW5KbFlXdHpJRWxGT1RvZ2FIUjBjSE02THk5bmFYUm9kV0l1WTI5dEwyWmhZMlZpYjI5ckwzSmxZV04wTDJsemMzVmxjeTh4TXpZeE1GeHVJQ0FnSUM4dklHVnpiR2x1ZEMxa2FYTmhZbXhsTFc1bGVIUXRiR2x1WlNCeVpXRmpkQzFwYm5SbGNtNWhiQzl1Ynkxd2NtOWtkV04wYVc5dUxXeHZaMmRwYm1kY2JseHVJQ0FnSUVaMWJtTjBhVzl1TG5CeWIzUnZkSGx3WlM1aGNIQnNlUzVqWVd4c0tHTnZibk52YkdWYmJHVjJaV3hkTENCamIyNXpiMnhsTENCaGNtZHpWMmwwYUVadmNtMWhkQ2s3WEc0Z0lIMWNibjFjYmx4dUx5OGdSbWxzZEdWeUlHTmxjblJoYVc0Z1JFOU5JR0YwZEhKcFluVjBaWE1nS0dVdVp5NGdjM0pqTENCb2NtVm1LU0JwWmlCMGFHVnBjaUIyWVd4MVpYTWdZWEpsSUdWdGNIUjVJSE4wY21sdVozTXVYRzVjYm5aaGNpQmxibUZpYkdWVFkyOXdaVUZRU1NBOUlHWmhiSE5sT3lBdkx5QkZlSEJsY21sdFpXNTBZV3dnUTNKbFlYUmxJRVYyWlc1MElFaGhibVJzWlNCQlVFa3VYRzVjYm1aMWJtTjBhVzl1SUdselZtRnNhV1JGYkdWdFpXNTBWSGx3WlNoMGVYQmxLU0I3WEc0Z0lHbG1JQ2gwZVhCbGIyWWdkSGx3WlNBOVBUMGdKM04wY21sdVp5Y2dmSHdnZEhsd1pXOW1JSFI1Y0dVZ1BUMDlJQ2RtZFc1amRHbHZiaWNwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdmU0F2THlCT2IzUmxPaUIwZVhCbGIyWWdiV2xuYUhRZ1ltVWdiM1JvWlhJZ2RHaGhiaUFuYzNsdFltOXNKeUJ2Y2lBbmJuVnRZbVZ5SnlBb1pTNW5MaUJwWmlCcGRDZHpJR0VnY0c5c2VXWnBiR3dwTGx4dVhHNWNiaUFnYVdZZ0tIUjVjR1VnUFQwOUlHVjRjRzl5ZEhNdVJuSmhaMjFsYm5RZ2ZId2dkSGx3WlNBOVBUMGdVa1ZCUTFSZlVGSlBSa2xNUlZKZlZGbFFSU0I4ZkNCMGVYQmxJRDA5UFNCU1JVRkRWRjlFUlVKVlIxOVVVa0ZEU1U1SFgwMVBSRVZmVkZsUVJTQjhmQ0IwZVhCbElEMDlQU0JTUlVGRFZGOVRWRkpKUTFSZlRVOUVSVjlVV1ZCRklIeDhJSFI1Y0dVZ1BUMDlJRkpGUVVOVVgxTlZVMUJGVGxORlgxUlpVRVVnZkh3Z2RIbHdaU0E5UFQwZ1VrVkJRMVJmVTFWVFVFVk9VMFZmVEVsVFZGOVVXVkJGSUh4OElIUjVjR1VnUFQwOUlGSkZRVU5VWDB4RlIwRkRXVjlJU1VSRVJVNWZWRmxRUlNCOGZDQmxibUZpYkdWVFkyOXdaVUZRU1NBcElIdGNiaUFnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJR2xtSUNoMGVYQmxiMllnZEhsd1pTQTlQVDBnSjI5aWFtVmpkQ2NnSmlZZ2RIbHdaU0FoUFQwZ2JuVnNiQ2tnZTF4dUlDQWdJR2xtSUNoMGVYQmxMaVFrZEhsd1pXOW1JRDA5UFNCU1JVRkRWRjlNUVZwWlgxUlpVRVVnZkh3Z2RIbHdaUzRrSkhSNWNHVnZaaUE5UFQwZ1VrVkJRMVJmVFVWTlQxOVVXVkJGSUh4OElIUjVjR1V1SkNSMGVYQmxiMllnUFQwOUlGSkZRVU5VWDFCU1QxWkpSRVZTWDFSWlVFVWdmSHdnZEhsd1pTNGtKSFI1Y0dWdlppQTlQVDBnVWtWQlExUmZRMDlPVkVWWVZGOVVXVkJGSUh4OElIUjVjR1V1SkNSMGVYQmxiMllnUFQwOUlGSkZRVU5VWDBaUFVsZEJVa1JmVWtWR1gxUlpVRVVnZkh3Z2RIbHdaUzRrSkhSNWNHVnZaaUE5UFQwZ1VrVkJRMVJmUmxWT1JFRk5SVTVVUVV4ZlZGbFFSU0I4ZkNCMGVYQmxMaVFrZEhsd1pXOW1JRDA5UFNCU1JVRkRWRjlDVEU5RFMxOVVXVkJGSUh4OElIUjVjR1ZiTUYwZ1BUMDlJRkpGUVVOVVgxTkZVbFpGVWw5Q1RFOURTMTlVV1ZCRktTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNTlYRzVjYm1aMWJtTjBhVzl1SUdkbGRGZHlZWEJ3WldST1lXMWxLRzkxZEdWeVZIbHdaU3dnYVc1dVpYSlVlWEJsTENCM2NtRndjR1Z5VG1GdFpTa2dlMXh1SUNCMllYSWdablZ1WTNScGIyNU9ZVzFsSUQwZ2FXNXVaWEpVZVhCbExtUnBjM0JzWVhsT1lXMWxJSHg4SUdsdWJtVnlWSGx3WlM1dVlXMWxJSHg4SUNjbk8xeHVJQ0J5WlhSMWNtNGdiM1YwWlhKVWVYQmxMbVJwYzNCc1lYbE9ZVzFsSUh4OElDaG1kVzVqZEdsdmJrNWhiV1VnSVQwOUlDY25JRDhnZDNKaGNIQmxjazVoYldVZ0t5QmNJaWhjSWlBcklHWjFibU4wYVc5dVRtRnRaU0FySUZ3aUtWd2lJRG9nZDNKaGNIQmxjazVoYldVcE8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCblpYUkRiMjUwWlhoMFRtRnRaU2gwZVhCbEtTQjdYRzRnSUhKbGRIVnliaUIwZVhCbExtUnBjM0JzWVhsT1lXMWxJSHg4SUNkRGIyNTBaWGgwSnp0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnWjJWMFEyOXRjRzl1Wlc1MFRtRnRaU2gwZVhCbEtTQjdYRzRnSUdsbUlDaDBlWEJsSUQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0F2THlCSWIzTjBJSEp2YjNRc0lIUmxlSFFnYm05a1pTQnZjaUJxZFhOMElHbHVkbUZzYVdRZ2RIbHdaUzVjYmlBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ2ZWeHVYRzRnSUh0Y2JpQWdJQ0JwWmlBb2RIbHdaVzltSUhSNWNHVXVkR0ZuSUQwOVBTQW5iblZ0WW1WeUp5a2dlMXh1SUNBZ0lDQWdaWEp5YjNJb0oxSmxZMlZwZG1Wa0lHRnVJSFZ1Wlhod1pXTjBaV1FnYjJKcVpXTjBJR2x1SUdkbGRFTnZiWEJ2Ym1WdWRFNWhiV1VvS1M0Z0p5QXJJQ2RVYUdseklHbHpJR3hwYTJWc2VTQmhJR0oxWnlCcGJpQlNaV0ZqZEM0Z1VHeGxZWE5sSUdacGJHVWdZVzRnYVhOemRXVXVKeWs3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnYVdZZ0tIUjVjR1Z2WmlCMGVYQmxJRDA5UFNBblpuVnVZM1JwYjI0bktTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSNWNHVXVaR2x6Y0d4aGVVNWhiV1VnZkh3Z2RIbHdaUzV1WVcxbElIeDhJRzUxYkd3N1hHNGdJSDFjYmx4dUlDQnBaaUFvZEhsd1pXOW1JSFI1Y0dVZ1BUMDlJQ2R6ZEhKcGJtY25LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUjVjR1U3WEc0Z0lIMWNibHh1SUNCemQybDBZMmdnS0hSNWNHVXBJSHRjYmlBZ0lDQmpZWE5sSUdWNGNHOXlkSE11Um5KaFoyMWxiblE2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdKMFp5WVdkdFpXNTBKenRjYmx4dUlDQWdJR05oYzJVZ1VrVkJRMVJmVUU5U1ZFRk1YMVJaVUVVNlhHNGdJQ0FnSUNCeVpYUjFjbTRnSjFCdmNuUmhiQ2M3WEc1Y2JpQWdJQ0JqWVhObElGSkZRVU5VWDFCU1QwWkpURVZTWDFSWlVFVTZYRzRnSUNBZ0lDQnlaWFIxY200Z0oxQnliMlpwYkdWeUp6dGNibHh1SUNBZ0lHTmhjMlVnVWtWQlExUmZVMVJTU1VOVVgwMVBSRVZmVkZsUVJUcGNiaUFnSUNBZ0lISmxkSFZ5YmlBblUzUnlhV04wVFc5a1pTYzdYRzVjYmlBZ0lDQmpZWE5sSUZKRlFVTlVYMU5WVTFCRlRsTkZYMVJaVUVVNlhHNGdJQ0FnSUNCeVpYUjFjbTRnSjFOMWMzQmxibk5sSnp0Y2JseHVJQ0FnSUdOaGMyVWdVa1ZCUTFSZlUxVlRVRVZPVTBWZlRFbFRWRjlVV1ZCRk9seHVJQ0FnSUNBZ2NtVjBkWEp1SUNkVGRYTndaVzV6WlV4cGMzUW5PMXh1SUNCOVhHNWNiaUFnYVdZZ0tIUjVjR1Z2WmlCMGVYQmxJRDA5UFNBbmIySnFaV04wSnlrZ2UxeHVJQ0FnSUhOM2FYUmphQ0FvZEhsd1pTNGtKSFI1Y0dWdlppa2dlMXh1SUNBZ0lDQWdZMkZ6WlNCU1JVRkRWRjlEVDA1VVJWaFVYMVJaVUVVNlhHNGdJQ0FnSUNBZ0lIWmhjaUJqYjI1MFpYaDBJRDBnZEhsd1pUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHZGxkRU52Ym5SbGVIUk9ZVzFsS0dOdmJuUmxlSFFwSUNzZ0p5NURiMjV6ZFcxbGNpYzdYRzVjYmlBZ0lDQWdJR05oYzJVZ1VrVkJRMVJmVUZKUFZrbEVSVkpmVkZsUVJUcGNiaUFnSUNBZ0lDQWdkbUZ5SUhCeWIzWnBaR1Z5SUQwZ2RIbHdaVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR2RsZEVOdmJuUmxlSFJPWVcxbEtIQnliM1pwWkdWeUxsOWpiMjUwWlhoMEtTQXJJQ2N1VUhKdmRtbGtaWEluTzF4dVhHNGdJQ0FnSUNCallYTmxJRkpGUVVOVVgwWlBVbGRCVWtSZlVrVkdYMVJaVUVVNlhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCblpYUlhjbUZ3Y0dWa1RtRnRaU2gwZVhCbExDQjBlWEJsTG5KbGJtUmxjaXdnSjBadmNuZGhjbVJTWldZbktUdGNibHh1SUNBZ0lDQWdZMkZ6WlNCU1JVRkRWRjlOUlUxUFgxUlpVRVU2WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJuWlhSRGIyMXdiMjVsYm5ST1lXMWxLSFI1Y0dVdWRIbHdaU2s3WEc1Y2JpQWdJQ0FnSUdOaGMyVWdVa1ZCUTFSZlFreFBRMHRmVkZsUVJUcGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHZGxkRU52YlhCdmJtVnVkRTVoYldVb2RIbHdaUzVmY21WdVpHVnlLVHRjYmx4dUlDQWdJQ0FnWTJGelpTQlNSVUZEVkY5TVFWcFpYMVJaVUVVNlhHNGdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0IyWVhJZ2JHRjZlVU52YlhCdmJtVnVkQ0E5SUhSNWNHVTdYRzRnSUNBZ0lDQWdJQ0FnZG1GeUlIQmhlV3h2WVdRZ1BTQnNZWHA1UTI5dGNHOXVaVzUwTGw5d1lYbHNiMkZrTzF4dUlDQWdJQ0FnSUNBZ0lIWmhjaUJwYm1sMElEMGdiR0Y2ZVVOdmJYQnZibVZ1ZEM1ZmFXNXBkRHRjYmx4dUlDQWdJQ0FnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1oyVjBRMjl0Y0c5dVpXNTBUbUZ0WlNocGJtbDBLSEJoZVd4dllXUXBLVHRjYmlBZ0lDQWdJQ0FnSUNCOUlHTmhkR05vSUNoNEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnYm5Wc2JEdGNibjFjYmx4dUx5OGdTR1ZzY0dWeWN5QjBieUJ3WVhSamFDQmpiMjV6YjJ4bExteHZaM01nZEc4Z1lYWnZhV1FnYkc5bloybHVaeUJrZFhKcGJtY2djMmxrWlMxbFptWmxZM1FnWm5KbFpWeHVMeThnY21Wd2JHRjVhVzVuSUc5dUlISmxibVJsY2lCbWRXNWpkR2x2Ymk0Z1ZHaHBjeUJqZFhKeVpXNTBiSGtnYjI1c2VTQndZWFJqYUdWeklIUm9aU0J2WW1wbFkzUmNiaTh2SUd4aGVtbHNlU0IzYUdsamFDQjNiMjRuZENCamIzWmxjaUJwWmlCMGFHVWdiRzluSUdaMWJtTjBhVzl1SUhkaGN5QmxlSFJ5WVdOMFpXUWdaV0ZuWlhKc2VTNWNiaTh2SUZkbElHTnZkV3hrSUdGc2MyOGdaV0ZuWlhKc2VTQndZWFJqYUNCMGFHVWdiV1YwYUc5a0xseHVkbUZ5SUdScGMyRmliR1ZrUkdWd2RHZ2dQU0F3TzF4dWRtRnlJSEJ5WlhaTWIyYzdYRzUyWVhJZ2NISmxka2x1Wm04N1hHNTJZWElnY0hKbGRsZGhjbTQ3WEc1MllYSWdjSEpsZGtWeWNtOXlPMXh1ZG1GeUlIQnlaWFpIY205MWNEdGNiblpoY2lCd2NtVjJSM0p2ZFhCRGIyeHNZWEJ6WldRN1hHNTJZWElnY0hKbGRrZHliM1Z3Ulc1a08xeHVYRzVtZFc1amRHbHZiaUJrYVhOaFlteGxaRXh2WnlncElIdDlYRzVjYm1ScGMyRmliR1ZrVEc5bkxsOWZjbVZoWTNSRWFYTmhZbXhsWkV4dlp5QTlJSFJ5ZFdVN1hHNW1kVzVqZEdsdmJpQmthWE5oWW14bFRHOW5jeWdwSUh0Y2JpQWdlMXh1SUNBZ0lHbG1JQ2hrYVhOaFlteGxaRVJsY0hSb0lEMDlQU0F3S1NCN1hHNGdJQ0FnSUNBdktpQmxjMnhwYm5RdFpHbHpZV0pzWlNCeVpXRmpkQzFwYm5SbGNtNWhiQzl1Ynkxd2NtOWtkV04wYVc5dUxXeHZaMmRwYm1jZ0tpOWNiaUFnSUNBZ0lIQnlaWFpNYjJjZ1BTQmpiMjV6YjJ4bExteHZaenRjYmlBZ0lDQWdJSEJ5WlhaSmJtWnZJRDBnWTI5dWMyOXNaUzVwYm1adk8xeHVJQ0FnSUNBZ2NISmxkbGRoY200Z1BTQmpiMjV6YjJ4bExuZGhjbTQ3WEc0Z0lDQWdJQ0J3Y21WMlJYSnliM0lnUFNCamIyNXpiMnhsTG1WeWNtOXlPMXh1SUNBZ0lDQWdjSEpsZGtkeWIzVndJRDBnWTI5dWMyOXNaUzVuY205MWNEdGNiaUFnSUNBZ0lIQnlaWFpIY205MWNFTnZiR3hoY0hObFpDQTlJR052Ym5OdmJHVXVaM0p2ZFhCRGIyeHNZWEJ6WldRN1hHNGdJQ0FnSUNCd2NtVjJSM0p2ZFhCRmJtUWdQU0JqYjI1emIyeGxMbWR5YjNWd1JXNWtPeUF2THlCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdlptRmpaV0p2YjJzdmNtVmhZM1F2YVhOemRXVnpMekU1TURrNVhHNWNiaUFnSUNBZ0lIWmhjaUJ3Y205d2N5QTlJSHRjYmlBZ0lDQWdJQ0FnWTI5dVptbG5kWEpoWW14bE9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNCbGJuVnRaWEpoWW14bE9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNCMllXeDFaVG9nWkdsellXSnNaV1JNYjJjc1hHNGdJQ0FnSUNBZ0lIZHlhWFJoWW14bE9pQjBjblZsWEc0Z0lDQWdJQ0I5T3lBdkx5QWtSbXh2ZDBacGVFMWxJRVpzYjNjZ2RHaHBibXR6SUdOdmJuTnZiR1VnYVhNZ2FXMXRkWFJoWW14bExseHVYRzRnSUNBZ0lDQlBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkR2xsY3loamIyNXpiMnhsTENCN1hHNGdJQ0FnSUNBZ0lHbHVabTg2SUhCeWIzQnpMRnh1SUNBZ0lDQWdJQ0JzYjJjNklIQnliM0J6TEZ4dUlDQWdJQ0FnSUNCM1lYSnVPaUJ3Y205d2N5eGNiaUFnSUNBZ0lDQWdaWEp5YjNJNklIQnliM0J6TEZ4dUlDQWdJQ0FnSUNCbmNtOTFjRG9nY0hKdmNITXNYRzRnSUNBZ0lDQWdJR2R5YjNWd1EyOXNiR0Z3YzJWa09pQndjbTl3Y3l4Y2JpQWdJQ0FnSUNBZ1ozSnZkWEJGYm1RNklIQnliM0J6WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUM4cUlHVnpiR2x1ZEMxbGJtRmliR1VnY21WaFkzUXRhVzUwWlhKdVlXd3ZibTh0Y0hKdlpIVmpkR2x2Ymkxc2IyZG5hVzVuSUNvdlhHNGdJQ0FnZlZ4dVhHNGdJQ0FnWkdsellXSnNaV1JFWlhCMGFDc3JPMXh1SUNCOVhHNTlYRzVtZFc1amRHbHZiaUJ5WldWdVlXSnNaVXh2WjNNb0tTQjdYRzRnSUh0Y2JpQWdJQ0JrYVhOaFlteGxaRVJsY0hSb0xTMDdYRzVjYmlBZ0lDQnBaaUFvWkdsellXSnNaV1JFWlhCMGFDQTlQVDBnTUNrZ2UxeHVJQ0FnSUNBZ0x5b2daWE5zYVc1MExXUnBjMkZpYkdVZ2NtVmhZM1F0YVc1MFpYSnVZV3d2Ym04dGNISnZaSFZqZEdsdmJpMXNiMmRuYVc1bklDb3ZYRzRnSUNBZ0lDQjJZWElnY0hKdmNITWdQU0I3WEc0Z0lDQWdJQ0FnSUdOdmJtWnBaM1Z5WVdKc1pUb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ1pXNTFiV1Z5WVdKc1pUb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ2QzSnBkR0ZpYkdVNklIUnlkV1ZjYmlBZ0lDQWdJSDA3SUM4dklDUkdiRzkzUm1sNFRXVWdSbXh2ZHlCMGFHbHVhM01nWTI5dWMyOXNaU0JwY3lCcGJXMTFkR0ZpYkdVdVhHNWNiaUFnSUNBZ0lFOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBhV1Z6S0dOdmJuTnZiR1VzSUh0Y2JpQWdJQ0FnSUNBZ2JHOW5PaUJmWVhOemFXZHVLSHQ5TENCd2NtOXdjeXdnZTF4dUlDQWdJQ0FnSUNBZ0lIWmhiSFZsT2lCd2NtVjJURzluWEc0Z0lDQWdJQ0FnSUgwcExGeHVJQ0FnSUNBZ0lDQnBibVp2T2lCZllYTnphV2R1S0h0OUxDQndjbTl3Y3l3Z2UxeHVJQ0FnSUNBZ0lDQWdJSFpoYkhWbE9pQndjbVYyU1c1bWIxeHVJQ0FnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJQ0FnZDJGeWJqb2dYMkZ6YzJsbmJpaDdmU3dnY0hKdmNITXNJSHRjYmlBZ0lDQWdJQ0FnSUNCMllXeDFaVG9nY0hKbGRsZGhjbTVjYmlBZ0lDQWdJQ0FnZlNrc1hHNGdJQ0FnSUNBZ0lHVnljbTl5T2lCZllYTnphV2R1S0h0OUxDQndjbTl3Y3l3Z2UxeHVJQ0FnSUNBZ0lDQWdJSFpoYkhWbE9pQndjbVYyUlhKeWIzSmNiaUFnSUNBZ0lDQWdmU2tzWEc0Z0lDQWdJQ0FnSUdkeWIzVndPaUJmWVhOemFXZHVLSHQ5TENCd2NtOXdjeXdnZTF4dUlDQWdJQ0FnSUNBZ0lIWmhiSFZsT2lCd2NtVjJSM0p2ZFhCY2JpQWdJQ0FnSUNBZ2ZTa3NYRzRnSUNBZ0lDQWdJR2R5YjNWd1EyOXNiR0Z3YzJWa09pQmZZWE56YVdkdUtIdDlMQ0J3Y205d2N5d2dlMXh1SUNBZ0lDQWdJQ0FnSUhaaGJIVmxPaUJ3Y21WMlIzSnZkWEJEYjJ4c1lYQnpaV1JjYmlBZ0lDQWdJQ0FnZlNrc1hHNGdJQ0FnSUNBZ0lHZHliM1Z3Ulc1a09pQmZZWE56YVdkdUtIdDlMQ0J3Y205d2N5d2dlMXh1SUNBZ0lDQWdJQ0FnSUhaaGJIVmxPaUJ3Y21WMlIzSnZkWEJGYm1SY2JpQWdJQ0FnSUNBZ2ZTbGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdMeW9nWlhOc2FXNTBMV1Z1WVdKc1pTQnlaV0ZqZEMxcGJuUmxjbTVoYkM5dWJ5MXdjbTlrZFdOMGFXOXVMV3h2WjJkcGJtY2dLaTljYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvWkdsellXSnNaV1JFWlhCMGFDQThJREFwSUh0Y2JpQWdJQ0FnSUdWeWNtOXlLQ2RrYVhOaFlteGxaRVJsY0hSb0lHWmxiR3dnWW1Wc2IzY2dlbVZ5Ynk0Z0p5QXJJQ2RVYUdseklHbHpJR0VnWW5WbklHbHVJRkpsWVdOMExpQlFiR1ZoYzJVZ1ptbHNaU0JoYmlCcGMzTjFaUzRuS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibjFjYmx4dWRtRnlJRkpsWVdOMFEzVnljbVZ1ZEVScGMzQmhkR05vWlhJZ1BTQlNaV0ZqZEZOb1lYSmxaRWx1ZEdWeWJtRnNjeTVTWldGamRFTjFjbkpsYm5SRWFYTndZWFJqYUdWeU8xeHVkbUZ5SUhCeVpXWnBlRHRjYm1aMWJtTjBhVzl1SUdSbGMyTnlhV0psUW5WcGJIUkpia052YlhCdmJtVnVkRVp5WVcxbEtHNWhiV1VzSUhOdmRYSmpaU3dnYjNkdVpYSkdiaWtnZTF4dUlDQjdYRzRnSUNBZ2FXWWdLSEJ5WldacGVDQTlQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNBdkx5QkZlSFJ5WVdOMElIUm9aU0JXVFNCemNHVmphV1pwWXlCd2NtVm1hWGdnZFhObFpDQmllU0JsWVdOb0lHeHBibVV1WEc0Z0lDQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCRmNuSnZjaWdwTzF4dUlDQWdJQ0FnZlNCallYUmphQ0FvZUNrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnYldGMFkyZ2dQU0I0TG5OMFlXTnJMblJ5YVcwb0tTNXRZWFJqYUNndlhGeHVLQ0FxS0dGMElDay9LUzhwTzF4dUlDQWdJQ0FnSUNCd2NtVm1hWGdnUFNCdFlYUmphQ0FtSmlCdFlYUmphRnN4WFNCOGZDQW5KenRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlJQzh2SUZkbElIVnpaU0IwYUdVZ2NISmxabWw0SUhSdklHVnVjM1Z5WlNCdmRYSWdjM1JoWTJ0eklHeHBibVVnZFhBZ2QybDBhQ0J1WVhScGRtVWdjM1JoWTJzZ1puSmhiV1Z6TGx4dVhHNWNiaUFnSUNCeVpYUjFjbTRnSjF4Y2JpY2dLeUJ3Y21WbWFYZ2dLeUJ1WVcxbE8xeHVJQ0I5WEc1OVhHNTJZWElnY21WbGJuUnllU0E5SUdaaGJITmxPMXh1ZG1GeUlHTnZiWEJ2Ym1WdWRFWnlZVzFsUTJGamFHVTdYRzVjYm50Y2JpQWdkbUZ5SUZCdmMzTnBZbXg1VjJWaGEwMWhjQ0E5SUhSNWNHVnZaaUJYWldGclRXRndJRDA5UFNBblpuVnVZM1JwYjI0bklEOGdWMlZoYTAxaGNDQTZJRTFoY0R0Y2JpQWdZMjl0Y0c5dVpXNTBSbkpoYldWRFlXTm9aU0E5SUc1bGR5QlFiM056YVdKc2VWZGxZV3ROWVhBb0tUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z1pHVnpZM0pwWW1WT1lYUnBkbVZEYjIxd2IyNWxiblJHY21GdFpTaG1iaXdnWTI5dWMzUnlkV04wS1NCN1hHNGdJQzh2SUVsbUlITnZiV1YwYUdsdVp5QmhjMnRsWkNCbWIzSWdZU0J6ZEdGamF5QnBibk5wWkdVZ1lTQm1ZV3RsSUhKbGJtUmxjaXdnYVhRZ2MyaHZkV3hrSUdkbGRDQnBaMjV2Y21Wa0xseHVJQ0JwWmlBb0lXWnVJSHg4SUhKbFpXNTBjbmtwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdKeWM3WEc0Z0lIMWNibHh1SUNCN1hHNGdJQ0FnZG1GeUlHWnlZVzFsSUQwZ1kyOXRjRzl1Wlc1MFJuSmhiV1ZEWVdOb1pTNW5aWFFvWm00cE8xeHVYRzRnSUNBZ2FXWWdLR1p5WVcxbElDRTlQU0IxYm1SbFptbHVaV1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJtY21GdFpUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQjJZWElnWTI5dWRISnZiRHRjYmlBZ2NtVmxiblJ5ZVNBOUlIUnlkV1U3WEc0Z0lIWmhjaUJ3Y21WMmFXOTFjMUJ5WlhCaGNtVlRkR0ZqYTFSeVlXTmxJRDBnUlhKeWIzSXVjSEpsY0dGeVpWTjBZV05yVkhKaFkyVTdJQzh2SUNSR2JHOTNSbWw0VFdVZ1NYUWdaRzlsY3lCaFkyTmxjSFFnZFc1a1pXWnBibVZrTGx4dVhHNGdJRVZ5Y205eUxuQnlaWEJoY21WVGRHRmphMVJ5WVdObElEMGdkVzVrWldacGJtVmtPMXh1SUNCMllYSWdjSEpsZG1sdmRYTkVhWE53WVhSamFHVnlPMXh1WEc0Z0lIdGNiaUFnSUNCd2NtVjJhVzkxYzBScGMzQmhkR05vWlhJZ1BTQlNaV0ZqZEVOMWNuSmxiblJFYVhOd1lYUmphR1Z5TG1OMWNuSmxiblE3SUM4dklGTmxkQ0IwYUdVZ1pHbHpjR0YwWTJobGNpQnBiaUJFUlZZZ1ltVmpZWFZ6WlNCMGFHbHpJRzFwWjJoMElHSmxJR05oYkd3Z2FXNGdkR2hsSUhKbGJtUmxjaUJtZFc1amRHbHZibHh1SUNBZ0lDOHZJR1p2Y2lCM1lYSnVhVzVuY3k1Y2JseHVJQ0FnSUZKbFlXTjBRM1Z5Y21WdWRFUnBjM0JoZEdOb1pYSXVZM1Z5Y21WdWRDQTlJRzUxYkd3N1hHNGdJQ0FnWkdsellXSnNaVXh2WjNNb0tUdGNiaUFnZlZ4dVhHNGdJSFJ5ZVNCN1hHNGdJQ0FnTHk4Z1ZHaHBjeUJ6YUc5MWJHUWdkR2h5YjNjdVhHNGdJQ0FnYVdZZ0tHTnZibk4wY25WamRDa2dlMXh1SUNBZ0lDQWdMeThnVTI5dFpYUm9hVzVuSUhOb2IzVnNaQ0JpWlNCelpYUjBhVzVuSUhSb1pTQndjbTl3Y3lCcGJpQjBhR1VnWTI5dWMzUnlkV04wYjNJdVhHNGdJQ0FnSUNCMllYSWdSbUZyWlNBOUlHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dSWEp5YjNJb0tUdGNiaUFnSUNBZ0lIMDdJQzh2SUNSR2JHOTNSbWw0VFdWY2JseHVYRzRnSUNBZ0lDQlBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvUm1GclpTNXdjbTkwYjNSNWNHVXNJQ2R3Y205d2N5Y3NJSHRjYmlBZ0lDQWdJQ0FnYzJWME9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdWMlVnZFhObElHRWdkR2h5YjNkcGJtY2djMlYwZEdWeUlHbHVjM1JsWVdRZ2IyWWdabkp2ZW1WdUlHOXlJRzV2YmkxM2NtbDBZV0pzWlNCd2NtOXdjMXh1SUNBZ0lDQWdJQ0FnSUM4dklHSmxZMkYxYzJVZ2RHaGhkQ0IzYjI0bmRDQjBhSEp2ZHlCcGJpQmhJRzV2YmkxemRISnBZM1FnYlc5a1pTQm1kVzVqZEdsdmJpNWNiaUFnSUNBZ0lDQWdJQ0IwYUhKdmR5QkZjbkp2Y2lncE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCU1pXWnNaV04wSUQwOVBTQW5iMkpxWldOMEp5QW1KaUJTWldac1pXTjBMbU52Ym5OMGNuVmpkQ2tnZTF4dUlDQWdJQ0FnSUNBdkx5QlhaU0JqYjI1emRISjFZM1FnWVNCa2FXWm1aWEpsYm5RZ1kyOXVkSEp2YkNCbWIzSWdkR2hwY3lCallYTmxJSFJ2SUdsdVkyeDFaR1VnWVc1NUlHVjRkSEpoWEc0Z0lDQWdJQ0FnSUM4dklHWnlZVzFsY3lCaFpHUmxaQ0JpZVNCMGFHVWdZMjl1YzNSeWRXTjBJR05oYkd3dVhHNGdJQ0FnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUNBZ1VtVm1iR1ZqZEM1amIyNXpkSEoxWTNRb1JtRnJaU3dnVzEwcE8xeHVJQ0FnSUNBZ0lDQjlJR05oZEdOb0lDaDRLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVkSEp2YkNBOUlIZzdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCU1pXWnNaV04wTG1OdmJuTjBjblZqZENobWJpd2dXMTBzSUVaaGEyVXBPMXh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ0lDQkdZV3RsTG1OaGJHd29LVHRjYmlBZ0lDQWdJQ0FnZlNCallYUmphQ0FvZUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5SeWIyd2dQU0I0TzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdabTR1WTJGc2JDaEdZV3RsTG5CeWIzUnZkSGx3WlNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUVWeWNtOXlLQ2s3WEc0Z0lDQWdJQ0I5SUdOaGRHTm9JQ2g0S1NCN1hHNGdJQ0FnSUNBZ0lHTnZiblJ5YjJ3Z1BTQjRPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JtYmlncE8xeHVJQ0FnSUgxY2JpQWdmU0JqWVhSamFDQW9jMkZ0Y0d4bEtTQjdYRzRnSUNBZ0x5OGdWR2hwY3lCcGN5QnBibXhwYm1Wa0lHMWhiblZoYkd4NUlHSmxZMkYxYzJVZ1kyeHZjM1Z5WlNCa2IyVnpiaWQwSUdSdklHbDBJR1p2Y2lCMWN5NWNiaUFnSUNCcFppQW9jMkZ0Y0d4bElDWW1JR052Ym5SeWIyd2dKaVlnZEhsd1pXOW1JSE5oYlhCc1pTNXpkR0ZqYXlBOVBUMGdKM04wY21sdVp5Y3BJSHRjYmlBZ0lDQWdJQzh2SUZSb2FYTWdaWGgwY21GamRITWdkR2hsSUdacGNuTjBJR1p5WVcxbElHWnliMjBnZEdobElITmhiWEJzWlNCMGFHRjBJR2x6YmlkMElHRnNjMjhnYVc0Z2RHaGxJR052Ym5SeWIyd3VYRzRnSUNBZ0lDQXZMeUJUYTJsd2NHbHVaeUJ2Ym1VZ1puSmhiV1VnZEdoaGRDQjNaU0JoYzNOMWJXVWdhWE1nZEdobElHWnlZVzFsSUhSb1lYUWdZMkZzYkhNZ2RHaGxJSFIzYnk1Y2JpQWdJQ0FnSUhaaGNpQnpZVzF3YkdWTWFXNWxjeUE5SUhOaGJYQnNaUzV6ZEdGamF5NXpjR3hwZENnblhGeHVKeWs3WEc0Z0lDQWdJQ0IyWVhJZ1kyOXVkSEp2YkV4cGJtVnpJRDBnWTI5dWRISnZiQzV6ZEdGamF5NXpjR3hwZENnblhGeHVKeWs3WEc0Z0lDQWdJQ0IyWVhJZ2N5QTlJSE5oYlhCc1pVeHBibVZ6TG14bGJtZDBhQ0F0SURFN1hHNGdJQ0FnSUNCMllYSWdZeUE5SUdOdmJuUnliMnhNYVc1bGN5NXNaVzVuZEdnZ0xTQXhPMXh1WEc0Z0lDQWdJQ0IzYUdsc1pTQW9jeUErUFNBeElDWW1JR01nUGowZ01DQW1KaUJ6WVcxd2JHVk1hVzVsYzF0elhTQWhQVDBnWTI5dWRISnZiRXhwYm1WelcyTmRLU0I3WEc0Z0lDQWdJQ0FnSUM4dklGZGxJR1Y0Y0dWamRDQmhkQ0JzWldGemRDQnZibVVnYzNSaFkyc2dabkpoYldVZ2RHOGdZbVVnYzJoaGNtVmtMbHh1SUNBZ0lDQWdJQ0F2THlCVWVYQnBZMkZzYkhrZ2RHaHBjeUIzYVd4c0lHSmxJSFJvWlNCeWIyOTBJRzF2YzNRZ2IyNWxMaUJJYjNkbGRtVnlMQ0J6ZEdGamF5Qm1jbUZ0WlhNZ2JXRjVJR0psWEc0Z0lDQWdJQ0FnSUM4dklHTjFkQ0J2Wm1ZZ1pIVmxJSFJ2SUcxaGVHbHRkVzBnYzNSaFkyc2diR2x0YVhSekxpQkpiaUIwYUdseklHTmhjMlVzSUc5dVpTQnRZWGxpWlNCamRYUWdiMlptWEc0Z0lDQWdJQ0FnSUM4dklHVmhjbXhwWlhJZ2RHaGhiaUIwYUdVZ2IzUm9aWEl1SUZkbElHRnpjM1Z0WlNCMGFHRjBJSFJvWlNCellXMXdiR1VnYVhNZ2JHOXVaMlZ5SUc5eUlIUm9aU0J6WVcxbFhHNGdJQ0FnSUNBZ0lDOHZJR0Z1WkNCMGFHVnlaU0JtYjNJZ1kzVjBJRzltWmlCbFlYSnNhV1Z5TGlCVGJ5QjNaU0J6YUc5MWJHUWdabWx1WkNCMGFHVWdjbTl2ZENCdGIzTjBJR1p5WVcxbElHbHVYRzRnSUNBZ0lDQWdJQzh2SUhSb1pTQnpZVzF3YkdVZ2MyOXRaWGRvWlhKbElHbHVJSFJvWlNCamIyNTBjbTlzTGx4dUlDQWdJQ0FnSUNCakxTMDdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR1p2Y2lBb095QnpJRDQ5SURFZ0ppWWdZeUErUFNBd095QnpMUzBzSUdNdExTa2dlMXh1SUNBZ0lDQWdJQ0F2THlCT1pYaDBJSGRsSUdacGJtUWdkR2hsSUdacGNuTjBJRzl1WlNCMGFHRjBJR2x6YmlkMElIUm9aU0J6WVcxbElIZG9hV05vSUhOb2IzVnNaQ0JpWlNCMGFHVmNiaUFnSUNBZ0lDQWdMeThnWm5KaGJXVWdkR2hoZENCallXeHNaV1FnYjNWeUlITmhiWEJzWlNCbWRXNWpkR2x2YmlCaGJtUWdkR2hsSUdOdmJuUnliMnd1WEc0Z0lDQWdJQ0FnSUdsbUlDaHpZVzF3YkdWTWFXNWxjMXR6WFNBaFBUMGdZMjl1ZEhKdmJFeHBibVZ6VzJOZEtTQjdYRzRnSUNBZ0lDQWdJQ0FnTHk4Z1NXNGdWamdzSUhSb1pTQm1hWEp6ZENCc2FXNWxJR2x6SUdSbGMyTnlhV0pwYm1jZ2RHaGxJRzFsYzNOaFoyVWdZblYwSUc5MGFHVnlJRlpOY3lCa2IyNG5kQzVjYmlBZ0lDQWdJQ0FnSUNBdkx5QkpaaUIzWlNkeVpTQmhZbTkxZENCMGJ5QnlaWFIxY200Z2RHaGxJR1pwY25OMElHeHBibVVzSUdGdVpDQjBhR1VnWTI5dWRISnZiQ0JwY3lCaGJITnZJRzl1SUhSb1pTQnpZVzFsWEc0Z0lDQWdJQ0FnSUNBZ0x5OGdiR2x1WlN3Z2RHaGhkQ2R6SUdFZ2NISmxkSFI1SUdkdmIyUWdhVzVrYVdOaGRHOXlJSFJvWVhRZ2IzVnlJSE5oYlhCc1pTQjBhSEpsZHlCaGRDQnpZVzFsSUd4cGJtVWdZWE5jYmlBZ0lDQWdJQ0FnSUNBdkx5QjBhR1VnWTI5dWRISnZiQzRnU1M1bExpQmlaV1p2Y21VZ2QyVWdaVzUwWlhKbFpDQjBhR1VnYzJGdGNHeGxJR1p5WVcxbExpQlRieUIzWlNCcFoyNXZjbVVnZEdocGN5QnlaWE4xYkhRdVhHNGdJQ0FnSUNBZ0lDQWdMeThnVkdocGN5QmpZVzRnYUdGd2NHVnVJR2xtSUhsdmRTQndZWE56WldRZ1lTQmpiR0Z6Y3lCMGJ5Qm1kVzVqZEdsdmJpQmpiMjF3YjI1bGJuUXNJRzl5SUc1dmJpMW1kVzVqZEdsdmJpNWNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2N5QWhQVDBnTVNCOGZDQmpJQ0U5UFNBeEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCa2J5QjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lITXRMVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdZeTB0T3lBdkx5QlhaU0J0WVhrZ2MzUnBiR3dnYUdGMlpTQnphVzFwYkdGeUlHbHVkR1Z5YldWa2FXRjBaU0JtY21GdFpYTWdabkp2YlNCMGFHVWdZMjl1YzNSeWRXTjBJR05oYkd3dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklGUm9aU0J1WlhoMElHOXVaU0IwYUdGMElHbHpiaWQwSUhSb1pTQnpZVzFsSUhOb2IzVnNaQ0JpWlNCdmRYSWdiV0YwWTJnZ2RHaHZkV2RvTGx4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGpJRHdnTUNCOGZDQnpZVzF3YkdWTWFXNWxjMXR6WFNBaFBUMGdZMjl1ZEhKdmJFeHBibVZ6VzJOZEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnVmpnZ1lXUmtjeUJoSUZ3aWJtVjNYQ0lnY0hKbFptbDRJR1p2Y2lCdVlYUnBkbVVnWTJ4aGMzTmxjeTRnVEdWMEozTWdjbVZ0YjNabElHbDBJSFJ2SUcxaGEyVWdhWFFnY0hKbGRIUnBaWEl1WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlGOW1jbUZ0WlNBOUlDZGNYRzRuSUNzZ2MyRnRjR3hsVEdsdVpYTmJjMTB1Y21Wd2JHRmpaU2duSUdGMElHNWxkeUFuTENBbklHRjBJQ2NwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJtYmlBOVBUMGdKMloxYm1OMGFXOXVKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjF3YjI1bGJuUkdjbUZ0WlVOaFkyaGxMbk5sZENobWJpd2dYMlp5WVcxbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5SUM4dklGSmxkSFZ5YmlCMGFHVWdiR2x1WlNCM1pTQm1iM1Z1WkM1Y2JseHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlGOW1jbUZ0WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdmU0IzYUdsc1pTQW9jeUErUFNBeElDWW1JR01nUGowZ01DazdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDBnWm1sdVlXeHNlU0I3WEc0Z0lDQWdjbVZsYm5SeWVTQTlJR1poYkhObE8xeHVYRzRnSUNBZ2UxeHVJQ0FnSUNBZ1VtVmhZM1JEZFhKeVpXNTBSR2x6Y0dGMFkyaGxjaTVqZFhKeVpXNTBJRDBnY0hKbGRtbHZkWE5FYVhOd1lYUmphR1Z5TzF4dUlDQWdJQ0FnY21WbGJtRmliR1ZNYjJkektDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1JYSnliM0l1Y0hKbGNHRnlaVk4wWVdOclZISmhZMlVnUFNCd2NtVjJhVzkxYzFCeVpYQmhjbVZUZEdGamExUnlZV05sTzF4dUlDQjlJQzh2SUVaaGJHeGlZV05ySUhSdklHcDFjM1FnZFhOcGJtY2dkR2hsSUc1aGJXVWdhV1lnZDJVZ1kyOTFiR1J1SjNRZ2JXRnJaU0JwZENCMGFISnZkeTVjYmx4dVhHNGdJSFpoY2lCdVlXMWxJRDBnWm00Z1B5Qm1iaTVrYVhOd2JHRjVUbUZ0WlNCOGZDQm1iaTV1WVcxbElEb2dKeWM3WEc0Z0lIWmhjaUJ6ZVc1MGFHVjBhV05HY21GdFpTQTlJRzVoYldVZ1B5QmtaWE5qY21saVpVSjFhV3gwU1c1RGIyMXdiMjVsYm5SR2NtRnRaU2h1WVcxbEtTQTZJQ2NuTzF4dVhHNGdJSHRjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JR1p1SUQwOVBTQW5ablZ1WTNScGIyNG5LU0I3WEc0Z0lDQWdJQ0JqYjIxd2IyNWxiblJHY21GdFpVTmhZMmhsTG5ObGRDaG1iaXdnYzNsdWRHaGxkR2xqUm5KaGJXVXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEpsZEhWeWJpQnplVzUwYUdWMGFXTkdjbUZ0WlR0Y2JuMWNibVoxYm1OMGFXOXVJR1JsYzJOeWFXSmxSblZ1WTNScGIyNURiMjF3YjI1bGJuUkdjbUZ0WlNobWJpd2djMjkxY21ObExDQnZkMjVsY2tadUtTQjdYRzRnSUh0Y2JpQWdJQ0J5WlhSMWNtNGdaR1Z6WTNKcFltVk9ZWFJwZG1WRGIyMXdiMjVsYm5SR2NtRnRaU2htYml3Z1ptRnNjMlVwTzF4dUlDQjlYRzU5WEc1Y2JtWjFibU4wYVc5dUlITm9iM1ZzWkVOdmJuTjBjblZqZENoRGIyMXdiMjVsYm5RcElIdGNiaUFnZG1GeUlIQnliM1J2ZEhsd1pTQTlJRU52YlhCdmJtVnVkQzV3Y205MGIzUjVjR1U3WEc0Z0lISmxkSFZ5YmlBaElTaHdjbTkwYjNSNWNHVWdKaVlnY0hKdmRHOTBlWEJsTG1selVtVmhZM1JEYjIxd2IyNWxiblFwTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJrWlhOamNtbGlaVlZ1YTI1dmQyNUZiR1Z0Wlc1MFZIbHdaVVp5WVcxbFNXNUVSVllvZEhsd1pTd2djMjkxY21ObExDQnZkMjVsY2tadUtTQjdYRzVjYmlBZ2FXWWdLSFI1Y0dVZ1BUMGdiblZzYkNrZ2UxeHVJQ0FnSUhKbGRIVnliaUFuSnp0Y2JpQWdmVnh1WEc0Z0lHbG1JQ2gwZVhCbGIyWWdkSGx3WlNBOVBUMGdKMloxYm1OMGFXOXVKeWtnZTF4dUlDQWdJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmtaWE5qY21saVpVNWhkR2wyWlVOdmJYQnZibVZ1ZEVaeVlXMWxLSFI1Y0dVc0lITm9iM1ZzWkVOdmJuTjBjblZqZENoMGVYQmxLU2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnYVdZZ0tIUjVjR1Z2WmlCMGVYQmxJRDA5UFNBbmMzUnlhVzVuSnlrZ2UxeHVJQ0FnSUhKbGRIVnliaUJrWlhOamNtbGlaVUoxYVd4MFNXNURiMjF3YjI1bGJuUkdjbUZ0WlNoMGVYQmxLVHRjYmlBZ2ZWeHVYRzRnSUhOM2FYUmphQ0FvZEhsd1pTa2dlMXh1SUNBZ0lHTmhjMlVnVWtWQlExUmZVMVZUVUVWT1UwVmZWRmxRUlRwY2JpQWdJQ0FnSUhKbGRIVnliaUJrWlhOamNtbGlaVUoxYVd4MFNXNURiMjF3YjI1bGJuUkdjbUZ0WlNnblUzVnpjR1Z1YzJVbktUdGNibHh1SUNBZ0lHTmhjMlVnVWtWQlExUmZVMVZUVUVWT1UwVmZURWxUVkY5VVdWQkZPbHh1SUNBZ0lDQWdjbVYwZFhKdUlHUmxjMk55YVdKbFFuVnBiSFJKYmtOdmJYQnZibVZ1ZEVaeVlXMWxLQ2RUZFhOd1pXNXpaVXhwYzNRbktUdGNiaUFnZlZ4dVhHNGdJR2xtSUNoMGVYQmxiMllnZEhsd1pTQTlQVDBnSjI5aWFtVmpkQ2NwSUh0Y2JpQWdJQ0J6ZDJsMFkyZ2dLSFI1Y0dVdUpDUjBlWEJsYjJZcElIdGNiaUFnSUNBZ0lHTmhjMlVnVWtWQlExUmZSazlTVjBGU1JGOVNSVVpmVkZsUVJUcGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHUmxjMk55YVdKbFJuVnVZM1JwYjI1RGIyMXdiMjVsYm5SR2NtRnRaU2gwZVhCbExuSmxibVJsY2lrN1hHNWNiaUFnSUNBZ0lHTmhjMlVnVWtWQlExUmZUVVZOVDE5VVdWQkZPbHh1SUNBZ0lDQWdJQ0F2THlCTlpXMXZJRzFoZVNCamIyNTBZV2x1SUdGdWVTQmpiMjF3YjI1bGJuUWdkSGx3WlNCemJ5QjNaU0J5WldOMWNuTnBkbVZzZVNCeVpYTnZiSFpsSUdsMExseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1pHVnpZM0pwWW1WVmJtdHViM2R1Uld4bGJXVnVkRlI1Y0dWR2NtRnRaVWx1UkVWV0tIUjVjR1V1ZEhsd1pTd2djMjkxY21ObExDQnZkMjVsY2tadUtUdGNibHh1SUNBZ0lDQWdZMkZ6WlNCU1JVRkRWRjlDVEU5RFMxOVVXVkJGT2x4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWkdWelkzSnBZbVZHZFc1amRHbHZia052YlhCdmJtVnVkRVp5WVcxbEtIUjVjR1V1WDNKbGJtUmxjaWs3WEc1Y2JpQWdJQ0FnSUdOaGMyVWdVa1ZCUTFSZlRFRmFXVjlVV1ZCRk9seHVJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnZG1GeUlHeGhlbmxEYjIxd2IyNWxiblFnUFNCMGVYQmxPMXh1SUNBZ0lDQWdJQ0FnSUhaaGNpQndZWGxzYjJGa0lEMGdiR0Y2ZVVOdmJYQnZibVZ1ZEM1ZmNHRjViRzloWkR0Y2JpQWdJQ0FnSUNBZ0lDQjJZWElnYVc1cGRDQTlJR3hoZW5sRGIyMXdiMjVsYm5RdVgybHVhWFE3WEc1Y2JpQWdJQ0FnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnVEdGNmVTQnRZWGtnWTI5dWRHRnBiaUJoYm5rZ1kyOXRjRzl1Wlc1MElIUjVjR1VnYzI4Z2QyVWdjbVZqZFhKemFYWmxiSGtnY21WemIyeDJaU0JwZEM1Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmtaWE5qY21saVpWVnVhMjV2ZDI1RmJHVnRaVzUwVkhsd1pVWnlZVzFsU1c1RVJWWW9hVzVwZENod1lYbHNiMkZrS1N3Z2MyOTFjbU5sTENCdmQyNWxja1p1S1R0Y2JpQWdJQ0FnSUNBZ0lDQjlJR05oZEdOb0lDaDRLU0I3ZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NtVjBkWEp1SUNjbk8xeHVmVnh1WEc1MllYSWdiRzluWjJWa1ZIbHdaVVpoYVd4MWNtVnpJRDBnZTMwN1hHNTJZWElnVW1WaFkzUkVaV0oxWjBOMWNuSmxiblJHY21GdFpTQTlJRkpsWVdOMFUyaGhjbVZrU1c1MFpYSnVZV3h6TGxKbFlXTjBSR1ZpZFdkRGRYSnlaVzUwUm5KaGJXVTdYRzVjYm1aMWJtTjBhVzl1SUhObGRFTjFjbkpsYm5Sc2VWWmhiR2xrWVhScGJtZEZiR1Z0Wlc1MEtHVnNaVzFsYm5RcElIdGNiaUFnZTF4dUlDQWdJR2xtSUNobGJHVnRaVzUwS1NCN1hHNGdJQ0FnSUNCMllYSWdiM2R1WlhJZ1BTQmxiR1Z0Wlc1MExsOXZkMjVsY2p0Y2JpQWdJQ0FnSUhaaGNpQnpkR0ZqYXlBOUlHUmxjMk55YVdKbFZXNXJibTkzYmtWc1pXMWxiblJVZVhCbFJuSmhiV1ZKYmtSRlZpaGxiR1Z0Wlc1MExuUjVjR1VzSUdWc1pXMWxiblF1WDNOdmRYSmpaU3dnYjNkdVpYSWdQeUJ2ZDI1bGNpNTBlWEJsSURvZ2JuVnNiQ2s3WEc0Z0lDQWdJQ0JTWldGamRFUmxZblZuUTNWeWNtVnVkRVp5WVcxbExuTmxkRVY0ZEhKaFUzUmhZMnRHY21GdFpTaHpkR0ZqYXlrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJRkpsWVdOMFJHVmlkV2REZFhKeVpXNTBSbkpoYldVdWMyVjBSWGgwY21GVGRHRmphMFp5WVcxbEtHNTFiR3dwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVmVnh1WEc1bWRXNWpkR2x2YmlCamFHVmphMUJ5YjNCVWVYQmxjeWgwZVhCbFUzQmxZM01zSUhaaGJIVmxjeXdnYkc5allYUnBiMjRzSUdOdmJYQnZibVZ1ZEU1aGJXVXNJR1ZzWlcxbGJuUXBJSHRjYmlBZ2UxeHVJQ0FnSUM4dklDUkdiRzkzUm1sNFRXVWdWR2hwY3lCcGN5QnZhMkY1SUdKMWRDQkdiRzkzSUdSdlpYTnVKM1FnYTI1dmR5QnBkQzVjYmlBZ0lDQjJZWElnYUdGeklEMGdSblZ1WTNScGIyNHVZMkZzYkM1aWFXNWtLRTlpYW1WamRDNXdjbTkwYjNSNWNHVXVhR0Z6VDNkdVVISnZjR1Z5ZEhrcE8xeHVYRzRnSUNBZ1ptOXlJQ2gyWVhJZ2RIbHdaVk53WldOT1lXMWxJR2x1SUhSNWNHVlRjR1ZqY3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLR2hoY3loMGVYQmxVM0JsWTNNc0lIUjVjR1ZUY0dWalRtRnRaU2twSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJR1Z5Y205eUpERWdQU0IyYjJsa0lEQTdJQzh2SUZCeWIzQWdkSGx3WlNCMllXeHBaR0YwYVc5dUlHMWhlU0IwYUhKdmR5NGdTVzRnWTJGelpTQjBhR1Y1SUdSdkxDQjNaU0JrYjI0bmRDQjNZVzUwSUhSdlhHNGdJQ0FnSUNBZ0lDOHZJR1poYVd3Z2RHaGxJSEpsYm1SbGNpQndhR0Z6WlNCM2FHVnlaU0JwZENCa2FXUnVKM1FnWm1GcGJDQmlaV1p2Y21VdUlGTnZJSGRsSUd4dlp5QnBkQzVjYmlBZ0lDQWdJQ0FnTHk4Z1FXWjBaWElnZEdobGMyVWdhR0YyWlNCaVpXVnVJR05zWldGdVpXUWdkWEFzSUhkbEoyeHNJR3hsZENCMGFHVnRJSFJvY205M0xseHVYRzRnSUNBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lDQWdMeThnVkdocGN5QnBjeUJwYm5SbGJuUnBiMjVoYkd4NUlHRnVJR2x1ZG1GeWFXRnVkQ0IwYUdGMElHZGxkSE1nWTJGMVoyaDBMaUJKZENkeklIUm9aU0J6WVcxbFhHNGdJQ0FnSUNBZ0lDQWdMeThnWW1Wb1lYWnBiM0lnWVhNZ2QybDBhRzkxZENCMGFHbHpJSE4wWVhSbGJXVnVkQ0JsZUdObGNIUWdkMmwwYUNCaElHSmxkSFJsY2lCdFpYTnpZV2RsTGx4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdkSGx3WlZOd1pXTnpXM1I1Y0dWVGNHVmpUbUZ0WlYwZ0lUMDlJQ2RtZFc1amRHbHZiaWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCbGNuSWdQU0JGY25KdmNpZ29ZMjl0Y0c5dVpXNTBUbUZ0WlNCOGZDQW5VbVZoWTNRZ1kyeGhjM01uS1NBcklDYzZJQ2NnS3lCc2IyTmhkR2x2YmlBcklDY2dkSGx3WlNCZ0p5QXJJSFI1Y0dWVGNHVmpUbUZ0WlNBcklDZGdJR2x6SUdsdWRtRnNhV1E3SUNjZ0t5QW5hWFFnYlhWemRDQmlaU0JoSUdaMWJtTjBhVzl1TENCMWMzVmhiR3g1SUdaeWIyMGdkR2hsSUdCd2NtOXdMWFI1Y0dWellDQndZV05yWVdkbExDQmlkWFFnY21WalpXbDJaV1FnWUNjZ0t5QjBlWEJsYjJZZ2RIbHdaVk53WldOelczUjVjR1ZUY0dWalRtRnRaVjBnS3lBbllDNG5JQ3NnSjFSb2FYTWdiMlowWlc0Z2FHRndjR1Z1Y3lCaVpXTmhkWE5sSUc5bUlIUjVjRzl6SUhOMVkyZ2dZWE1nWUZCeWIzQlVlWEJsY3k1bWRXNWpkR2x2Ym1BZ2FXNXpkR1ZoWkNCdlppQmdVSEp2Y0ZSNWNHVnpMbVoxYm1OZ0xpY3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pYSnlMbTVoYldVZ1BTQW5TVzUyWVhKcFlXNTBJRlpwYjJ4aGRHbHZiaWM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCbGNuSTdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDQWdaWEp5YjNJa01TQTlJSFI1Y0dWVGNHVmpjMXQwZVhCbFUzQmxZMDVoYldWZEtIWmhiSFZsY3l3Z2RIbHdaVk53WldOT1lXMWxMQ0JqYjIxd2IyNWxiblJPWVcxbExDQnNiMk5oZEdsdmJpd2diblZzYkN3Z0oxTkZRMUpGVkY5RVQxOU9UMVJmVUVGVFUxOVVTRWxUWDA5U1gxbFBWVjlYU1V4TVgwSkZYMFpKVWtWRUp5azdYRzRnSUNBZ0lDQWdJSDBnWTJGMFkyZ2dLR1Y0S1NCN1hHNGdJQ0FnSUNBZ0lDQWdaWEp5YjNJa01TQTlJR1Y0TzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdhV1lnS0dWeWNtOXlKREVnSmlZZ0lTaGxjbkp2Y2lReElHbHVjM1JoYm1ObGIyWWdSWEp5YjNJcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYzJWMFEzVnljbVZ1ZEd4NVZtRnNhV1JoZEdsdVowVnNaVzFsYm5Rb1pXeGxiV1Z1ZENrN1hHNWNiaUFnSUNBZ0lDQWdJQ0JsY25KdmNpZ25KWE02SUhSNWNHVWdjM0JsWTJsbWFXTmhkR2x2YmlCdlppQWxjeWNnS3lBbklHQWxjMkFnYVhNZ2FXNTJZV3hwWkRzZ2RHaGxJSFI1Y0dVZ1kyaGxZMnRsY2lBbklDc2dKMloxYm1OMGFXOXVJRzExYzNRZ2NtVjBkWEp1SUdCdWRXeHNZQ0J2Y2lCaGJpQmdSWEp5YjNKZ0lHSjFkQ0J5WlhSMWNtNWxaQ0JoSUNWekxpQW5JQ3NnSjFsdmRTQnRZWGtnYUdGMlpTQm1iM0puYjNSMFpXNGdkRzhnY0dGemN5QmhiaUJoY21kMWJXVnVkQ0IwYnlCMGFHVWdkSGx3WlNCamFHVmphMlZ5SUNjZ0t5QW5ZM0psWVhSdmNpQW9ZWEp5WVhsUFppd2dhVzV6ZEdGdVkyVlBaaXdnYjJKcVpXTjBUMllzSUc5dVpVOW1MQ0J2Ym1WUFpsUjVjR1VzSUdGdVpDQW5JQ3NnSjNOb1lYQmxJR0ZzYkNCeVpYRjFhWEpsSUdGdUlHRnlaM1Z0Wlc1MEtTNG5MQ0JqYjIxd2IyNWxiblJPWVcxbElIeDhJQ2RTWldGamRDQmpiR0Z6Y3ljc0lHeHZZMkYwYVc5dUxDQjBlWEJsVTNCbFkwNWhiV1VzSUhSNWNHVnZaaUJsY25KdmNpUXhLVHRjYmx4dUlDQWdJQ0FnSUNBZ0lITmxkRU4xY25KbGJuUnNlVlpoYkdsa1lYUnBibWRGYkdWdFpXNTBLRzUxYkd3cE8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tHVnljbTl5SkRFZ2FXNXpkR0Z1WTJWdlppQkZjbkp2Y2lBbUppQWhLR1Z5Y205eUpERXViV1Z6YzJGblpTQnBiaUJzYjJkblpXUlVlWEJsUm1GcGJIVnlaWE1wS1NCN1hHNGdJQ0FnSUNBZ0lDQWdMeThnVDI1c2VTQnRiMjVwZEc5eUlIUm9hWE1nWm1GcGJIVnlaU0J2Ym1ObElHSmxZMkYxYzJVZ2RHaGxjbVVnZEdWdVpITWdkRzhnWW1VZ1lTQnNiM1FnYjJZZ2RHaGxYRzRnSUNBZ0lDQWdJQ0FnTHk4Z2MyRnRaU0JsY25KdmNpNWNiaUFnSUNBZ0lDQWdJQ0JzYjJkblpXUlVlWEJsUm1GcGJIVnlaWE5iWlhKeWIzSWtNUzV0WlhOellXZGxYU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnYzJWMFEzVnljbVZ1ZEd4NVZtRnNhV1JoZEdsdVowVnNaVzFsYm5Rb1pXeGxiV1Z1ZENrN1hHNWNiaUFnSUNBZ0lDQWdJQ0JsY25KdmNpZ25SbUZwYkdWa0lDVnpJSFI1Y0dVNklDVnpKeXdnYkc5allYUnBiMjRzSUdWeWNtOXlKREV1YldWemMyRm5aU2s3WEc1Y2JpQWdJQ0FnSUNBZ0lDQnpaWFJEZFhKeVpXNTBiSGxXWVd4cFpHRjBhVzVuUld4bGJXVnVkQ2h1ZFd4c0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlZ4dWZWeHVYRzUyWVhJZ1VtVmhZM1JEZFhKeVpXNTBUM2R1WlhJZ1BTQlNaV0ZqZEZOb1lYSmxaRWx1ZEdWeWJtRnNjeTVTWldGamRFTjFjbkpsYm5SUGQyNWxjanRjYm5aaGNpQm9ZWE5QZDI1UWNtOXdaWEowZVNBOUlFOWlhbVZqZEM1d2NtOTBiM1I1Y0dVdWFHRnpUM2R1VUhKdmNHVnlkSGs3WEc1MllYSWdVa1ZUUlZKV1JVUmZVRkpQVUZNZ1BTQjdYRzRnSUd0bGVUb2dkSEoxWlN4Y2JpQWdjbVZtT2lCMGNuVmxMRnh1SUNCZlgzTmxiR1k2SUhSeWRXVXNYRzRnSUY5ZmMyOTFjbU5sT2lCMGNuVmxYRzU5TzF4dWRtRnlJSE53WldOcFlXeFFjbTl3UzJWNVYyRnlibWx1WjFOb2IzZHVPMXh1ZG1GeUlITndaV05wWVd4UWNtOXdVbVZtVjJGeWJtbHVaMU5vYjNkdU8xeHVkbUZ5SUdScFpGZGhjbTVCWW05MWRGTjBjbWx1WjFKbFpuTTdYRzVjYm50Y2JpQWdaR2xrVjJGeWJrRmliM1YwVTNSeWFXNW5VbVZtY3lBOUlIdDlPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQm9ZWE5XWVd4cFpGSmxaaWhqYjI1bWFXY3BJSHRjYmlBZ2UxeHVJQ0FnSUdsbUlDaG9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLR052Ym1acFp5d2dKM0psWmljcEtTQjdYRzRnSUNBZ0lDQjJZWElnWjJWMGRHVnlJRDBnVDJKcVpXTjBMbWRsZEU5M2JsQnliM0JsY25SNVJHVnpZM0pwY0hSdmNpaGpiMjVtYVdjc0lDZHlaV1luS1M1blpYUTdYRzVjYmlBZ0lDQWdJR2xtSUNoblpYUjBaWElnSmlZZ1oyVjBkR1Z5TG1selVtVmhZM1JYWVhKdWFXNW5LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQnlaWFIxY200Z1kyOXVabWxuTG5KbFppQWhQVDBnZFc1a1pXWnBibVZrTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJvWVhOV1lXeHBaRXRsZVNoamIyNW1hV2NwSUh0Y2JpQWdlMXh1SUNBZ0lHbG1JQ2hvWVhOUGQyNVFjbTl3WlhKMGVTNWpZV3hzS0dOdmJtWnBaeXdnSjJ0bGVTY3BLU0I3WEc0Z0lDQWdJQ0IyWVhJZ1oyVjBkR1Z5SUQwZ1QySnFaV04wTG1kbGRFOTNibEJ5YjNCbGNuUjVSR1Z6WTNKcGNIUnZjaWhqYjI1bWFXY3NJQ2RyWlhrbktTNW5aWFE3WEc1Y2JpQWdJQ0FnSUdsbUlDaG5aWFIwWlhJZ0ppWWdaMlYwZEdWeUxtbHpVbVZoWTNSWFlYSnVhVzVuS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdZMjl1Wm1sbkxtdGxlU0FoUFQwZ2RXNWtaV1pwYm1Wa08xeHVmVnh1WEc1bWRXNWpkR2x2YmlCM1lYSnVTV1pUZEhKcGJtZFNaV1pEWVc1dWIzUkNaVUYxZEc5RGIyNTJaWEowWldRb1kyOXVabWxuTENCelpXeG1LU0I3WEc0Z0lIdGNiaUFnSUNCcFppQW9kSGx3Wlc5bUlHTnZibVpwWnk1eVpXWWdQVDA5SUNkemRISnBibWNuSUNZbUlGSmxZV04wUTNWeWNtVnVkRTkzYm1WeUxtTjFjbkpsYm5RZ0ppWWdjMlZzWmlBbUppQlNaV0ZqZEVOMWNuSmxiblJQZDI1bGNpNWpkWEp5Wlc1MExuTjBZWFJsVG05a1pTQWhQVDBnYzJWc1ppa2dlMXh1SUNBZ0lDQWdkbUZ5SUdOdmJYQnZibVZ1ZEU1aGJXVWdQU0JuWlhSRGIyMXdiMjVsYm5ST1lXMWxLRkpsWVdOMFEzVnljbVZ1ZEU5M2JtVnlMbU4xY25KbGJuUXVkSGx3WlNrN1hHNWNiaUFnSUNBZ0lHbG1JQ2doWkdsa1YyRnlia0ZpYjNWMFUzUnlhVzVuVW1WbWMxdGpiMjF3YjI1bGJuUk9ZVzFsWFNrZ2UxeHVJQ0FnSUNBZ0lDQmxjbkp2Y2lnblEyOXRjRzl1Wlc1MElGd2lKWE5jSWlCamIyNTBZV2x1Y3lCMGFHVWdjM1J5YVc1bklISmxaaUJjSWlWelhDSXVJQ2NnS3lBblUzVndjRzl5ZENCbWIzSWdjM1J5YVc1bklISmxabk1nZDJsc2JDQmlaU0J5WlcxdmRtVmtJR2x1SUdFZ1puVjBkWEpsSUcxaGFtOXlJSEpsYkdWaGMyVXVJQ2NnS3lBblZHaHBjeUJqWVhObElHTmhibTV2ZENCaVpTQmhkWFJ2YldGMGFXTmhiR3g1SUdOdmJuWmxjblJsWkNCMGJ5QmhiaUJoY25KdmR5Qm1kVzVqZEdsdmJpNGdKeUFySUNkWFpTQmhjMnNnZVc5MUlIUnZJRzFoYm5WaGJHeDVJR1pwZUNCMGFHbHpJR05oYzJVZ1lua2dkWE5wYm1jZ2RYTmxVbVZtS0NrZ2IzSWdZM0psWVhSbFVtVm1LQ2tnYVc1emRHVmhaQzRnSnlBcklDZE1aV0Z5YmlCdGIzSmxJR0ZpYjNWMElIVnphVzVuSUhKbFpuTWdjMkZtWld4NUlHaGxjbVU2SUNjZ0t5QW5hSFIwY0hNNkx5OXlaV0ZqZEdwekxtOXlaeTlzYVc1ckwzTjBjbWxqZEMxdGIyUmxMWE4wY21sdVp5MXlaV1luTENCblpYUkRiMjF3YjI1bGJuUk9ZVzFsS0ZKbFlXTjBRM1Z5Y21WdWRFOTNibVZ5TG1OMWNuSmxiblF1ZEhsd1pTa3NJR052Ym1acFp5NXlaV1lwTzF4dVhHNGdJQ0FnSUNBZ0lHUnBaRmRoY201QlltOTFkRk4wY21sdVoxSmxabk5iWTI5dGNHOXVaVzUwVG1GdFpWMGdQU0IwY25WbE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmVnh1ZlZ4dVhHNW1kVzVqZEdsdmJpQmtaV1pwYm1WTFpYbFFjbTl3VjJGeWJtbHVaMGRsZEhSbGNpaHdjbTl3Y3l3Z1pHbHpjR3hoZVU1aGJXVXBJSHRjYmlBZ2UxeHVJQ0FnSUhaaGNpQjNZWEp1UVdKdmRYUkJZMk5sYzNOcGJtZExaWGtnUFNCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQnBaaUFvSVhOd1pXTnBZV3hRY205d1MyVjVWMkZ5Ym1sdVoxTm9iM2R1S1NCN1hHNGdJQ0FnSUNBZ0lITndaV05wWVd4UWNtOXdTMlY1VjJGeWJtbHVaMU5vYjNkdUlEMGdkSEoxWlR0Y2JseHVJQ0FnSUNBZ0lDQmxjbkp2Y2lnbkpYTTZJR0JyWlhsZ0lHbHpJRzV2ZENCaElIQnliM0F1SUZSeWVXbHVaeUIwYnlCaFkyTmxjM01nYVhRZ2QybHNiQ0J5WlhOMWJIUWdKeUFySUNkcGJpQmdkVzVrWldacGJtVmtZQ0JpWldsdVp5QnlaWFIxY201bFpDNGdTV1lnZVc5MUlHNWxaV1FnZEc4Z1lXTmpaWE56SUhSb1pTQnpZVzFsSUNjZ0t5QW5kbUZzZFdVZ2QybDBhR2x1SUhSb1pTQmphR2xzWkNCamIyMXdiMjVsYm5Rc0lIbHZkU0J6YUc5MWJHUWdjR0Z6Y3lCcGRDQmhjeUJoSUdScFptWmxjbVZ1ZENBbklDc2dKM0J5YjNBdUlDaG9kSFJ3Y3pvdkwzSmxZV04wYW5NdWIzSm5MMnhwYm1zdmMzQmxZMmxoYkMxd2NtOXdjeWtuTENCa2FYTndiR0Y1VG1GdFpTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lIZGhjbTVCWW05MWRFRmpZMlZ6YzJsdVowdGxlUzVwYzFKbFlXTjBWMkZ5Ym1sdVp5QTlJSFJ5ZFdVN1hHNGdJQ0FnVDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtIQnliM0J6TENBbmEyVjVKeXdnZTF4dUlDQWdJQ0FnWjJWME9pQjNZWEp1UVdKdmRYUkJZMk5sYzNOcGJtZExaWGtzWEc0Z0lDQWdJQ0JqYjI1bWFXZDFjbUZpYkdVNklIUnlkV1ZjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVmVnh1WEc1bWRXNWpkR2x2YmlCa1pXWnBibVZTWldaUWNtOXdWMkZ5Ym1sdVowZGxkSFJsY2lod2NtOXdjeXdnWkdsemNHeGhlVTVoYldVcElIdGNiaUFnZTF4dUlDQWdJSFpoY2lCM1lYSnVRV0p2ZFhSQlkyTmxjM05wYm1kU1pXWWdQU0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNCcFppQW9JWE53WldOcFlXeFFjbTl3VW1WbVYyRnlibWx1WjFOb2IzZHVLU0I3WEc0Z0lDQWdJQ0FnSUhOd1pXTnBZV3hRY205d1VtVm1WMkZ5Ym1sdVoxTm9iM2R1SUQwZ2RISjFaVHRjYmx4dUlDQWdJQ0FnSUNCbGNuSnZjaWduSlhNNklHQnlaV1pnSUdseklHNXZkQ0JoSUhCeWIzQXVJRlJ5ZVdsdVp5QjBieUJoWTJObGMzTWdhWFFnZDJsc2JDQnlaWE4xYkhRZ0p5QXJJQ2RwYmlCZ2RXNWtaV1pwYm1Wa1lDQmlaV2x1WnlCeVpYUjFjbTVsWkM0Z1NXWWdlVzkxSUc1bFpXUWdkRzhnWVdOalpYTnpJSFJvWlNCellXMWxJQ2NnS3lBbmRtRnNkV1VnZDJsMGFHbHVJSFJvWlNCamFHbHNaQ0JqYjIxd2IyNWxiblFzSUhsdmRTQnphRzkxYkdRZ2NHRnpjeUJwZENCaGN5QmhJR1JwWm1abGNtVnVkQ0FuSUNzZ0ozQnliM0F1SUNob2RIUndjem92TDNKbFlXTjBhbk11YjNKbkwyeHBibXN2YzNCbFkybGhiQzF3Y205d2N5a25MQ0JrYVhOd2JHRjVUbUZ0WlNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlR0Y2JseHVJQ0FnSUhkaGNtNUJZbTkxZEVGalkyVnpjMmx1WjFKbFppNXBjMUpsWVdOMFYyRnlibWx1WnlBOUlIUnlkV1U3WEc0Z0lDQWdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0hCeWIzQnpMQ0FuY21WbUp5d2dlMXh1SUNBZ0lDQWdaMlYwT2lCM1lYSnVRV0p2ZFhSQlkyTmxjM05wYm1kU1pXWXNYRzRnSUNBZ0lDQmpiMjVtYVdkMWNtRmliR1U2SUhSeWRXVmNiaUFnSUNCOUtUdGNiaUFnZlZ4dWZWeHVMeW9xWEc0Z0tpQkdZV04wYjNKNUlHMWxkR2h2WkNCMGJ5QmpjbVZoZEdVZ1lTQnVaWGNnVW1WaFkzUWdaV3hsYldWdWRDNGdWR2hwY3lCdWJ5QnNiMjVuWlhJZ1lXUm9aWEpsY3lCMGIxeHVJQ29nZEdobElHTnNZWE56SUhCaGRIUmxjbTRzSUhOdklHUnZJRzV2ZENCMWMyVWdibVYzSUhSdklHTmhiR3dnYVhRdUlFRnNjMjhzSUdsdWMzUmhibU5sYjJZZ1kyaGxZMnRjYmlBcUlIZHBiR3dnYm05MElIZHZjbXN1SUVsdWMzUmxZV1FnZEdWemRDQWtKSFI1Y0dWdlppQm1hV1ZzWkNCaFoyRnBibk4wSUZONWJXSnZiQzVtYjNJb0ozSmxZV04wTG1Wc1pXMWxiblFuS1NCMGJ5QmphR1ZqYTF4dUlDb2dhV1lnYzI5dFpYUm9hVzVuSUdseklHRWdVbVZoWTNRZ1JXeGxiV1Z1ZEM1Y2JpQXFYRzRnS2lCQWNHRnlZVzBnZXlwOUlIUjVjR1ZjYmlBcUlFQndZWEpoYlNCN0tuMGdjSEp2Y0hOY2JpQXFJRUJ3WVhKaGJTQjdLbjBnYTJWNVhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozeHZZbXBsWTNSOUlISmxabHh1SUNvZ1FIQmhjbUZ0SUhzcWZTQnZkMjVsY2x4dUlDb2dRSEJoY21GdElIc3FmU0J6Wld4bUlFRWdLblJsYlhCdmNtRnllU29nYUdWc2NHVnlJSFJ2SUdSbGRHVmpkQ0J3YkdGalpYTWdkMmhsY21VZ1lIUm9hWE5nSUdselhHNGdLaUJrYVdabVpYSmxiblFnWm5KdmJTQjBhR1VnWUc5M2JtVnlZQ0IzYUdWdUlGSmxZV04wTG1OeVpXRjBaVVZzWlcxbGJuUWdhWE1nWTJGc2JHVmtMQ0J6YnlCMGFHRjBJSGRsWEc0Z0tpQmpZVzRnZDJGeWJpNGdWMlVnZDJGdWRDQjBieUJuWlhRZ2NtbGtJRzltSUc5M2JtVnlJR0Z1WkNCeVpYQnNZV05sSUhOMGNtbHVaeUJnY21WbVlITWdkMmwwYUNCaGNuSnZkMXh1SUNvZ1puVnVZM1JwYjI1ekxDQmhibVFnWVhNZ2JHOXVaeUJoY3lCZ2RHaHBjMkFnWVc1a0lHOTNibVZ5SUdGeVpTQjBhR1VnYzJGdFpTd2dkR2hsY21VZ2QybHNiQ0JpWlNCdWIxeHVJQ29nWTJoaGJtZGxJR2x1SUdKbGFHRjJhVzl5TGx4dUlDb2dRSEJoY21GdElIc3FmU0J6YjNWeVkyVWdRVzRnWVc1dWIzUmhkR2x2YmlCdlltcGxZM1FnS0dGa1pHVmtJR0o1SUdFZ2RISmhibk53YVd4bGNpQnZjaUJ2ZEdobGNuZHBjMlVwWEc0Z0tpQnBibVJwWTJGMGFXNW5JR1pwYkdWdVlXMWxMQ0JzYVc1bElHNTFiV0psY2l3Z1lXNWtMMjl5SUc5MGFHVnlJR2x1Wm05eWJXRjBhVzl1TGx4dUlDb2dRR2x1ZEdWeWJtRnNYRzRnS2k5Y2JseHVYRzUyWVhJZ1VtVmhZM1JGYkdWdFpXNTBJRDBnWm5WdVkzUnBiMjRnS0hSNWNHVXNJR3RsZVN3Z2NtVm1MQ0J6Wld4bUxDQnpiM1Z5WTJVc0lHOTNibVZ5TENCd2NtOXdjeWtnZTF4dUlDQjJZWElnWld4bGJXVnVkQ0E5SUh0Y2JpQWdJQ0F2THlCVWFHbHpJSFJoWnlCaGJHeHZkM01nZFhNZ2RHOGdkVzVwY1hWbGJIa2dhV1JsYm5ScFpua2dkR2hwY3lCaGN5QmhJRkpsWVdOMElFVnNaVzFsYm5SY2JpQWdJQ0FrSkhSNWNHVnZaam9nVWtWQlExUmZSVXhGVFVWT1ZGOVVXVkJGTEZ4dUlDQWdJQzh2SUVKMWFXeDBMV2x1SUhCeWIzQmxjblJwWlhNZ2RHaGhkQ0JpWld4dmJtY2diMjRnZEdobElHVnNaVzFsYm5SY2JpQWdJQ0IwZVhCbE9pQjBlWEJsTEZ4dUlDQWdJR3RsZVRvZ2EyVjVMRnh1SUNBZ0lISmxaam9nY21WbUxGeHVJQ0FnSUhCeWIzQnpPaUJ3Y205d2N5eGNiaUFnSUNBdkx5QlNaV052Y21RZ2RHaGxJR052YlhCdmJtVnVkQ0J5WlhOd2IyNXphV0pzWlNCbWIzSWdZM0psWVhScGJtY2dkR2hwY3lCbGJHVnRaVzUwTGx4dUlDQWdJRjl2ZDI1bGNqb2diM2R1WlhKY2JpQWdmVHRjYmx4dUlDQjdYRzRnSUNBZ0x5OGdWR2hsSUhaaGJHbGtZWFJwYjI0Z1pteGhaeUJwY3lCamRYSnlaVzUwYkhrZ2JYVjBZWFJwZG1VdUlGZGxJSEIxZENCcGRDQnZibHh1SUNBZ0lDOHZJR0Z1SUdWNGRHVnlibUZzSUdKaFkydHBibWNnYzNSdmNtVWdjMjhnZEdoaGRDQjNaU0JqWVc0Z1puSmxaWHBsSUhSb1pTQjNhRzlzWlNCdlltcGxZM1F1WEc0Z0lDQWdMeThnVkdocGN5QmpZVzRnWW1VZ2NtVndiR0ZqWldRZ2QybDBhQ0JoSUZkbFlXdE5ZWEFnYjI1alpTQjBhR1Y1SUdGeVpTQnBiWEJzWlcxbGJuUmxaQ0JwYmx4dUlDQWdJQzh2SUdOdmJXMXZibXg1SUhWelpXUWdaR1YyWld4dmNHMWxiblFnWlc1MmFYSnZibTFsYm5SekxseHVJQ0FnSUdWc1pXMWxiblF1WDNOMGIzSmxJRDBnZTMwN0lDOHZJRlJ2SUcxaGEyVWdZMjl0Y0dGeWFXNW5JRkpsWVdOMFJXeGxiV1Z1ZEhNZ1pXRnphV1Z5SUdadmNpQjBaWE4wYVc1bklIQjFjbkJ2YzJWekxDQjNaU0J0WVd0bFhHNGdJQ0FnTHk4Z2RHaGxJSFpoYkdsa1lYUnBiMjRnWm14aFp5QnViMjR0Wlc1MWJXVnlZV0pzWlNBb2QyaGxjbVVnY0c5emMybGliR1VzSUhkb2FXTm9JSE5vYjNWc1pGeHVJQ0FnSUM4dklHbHVZMngxWkdVZ1pYWmxjbmtnWlc1MmFYSnZibTFsYm5RZ2QyVWdjblZ1SUhSbGMzUnpJR2x1S1N3Z2MyOGdkR2hsSUhSbGMzUWdabkpoYldWM2IzSnJYRzRnSUNBZ0x5OGdhV2R1YjNKbGN5QnBkQzVjYmx4dUlDQWdJRTlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNobGJHVnRaVzUwTGw5emRHOXlaU3dnSjNaaGJHbGtZWFJsWkNjc0lIdGNiaUFnSUNBZ0lHTnZibVpwWjNWeVlXSnNaVG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQmxiblZ0WlhKaFlteGxPaUJtWVd4elpTeGNiaUFnSUNBZ0lIZHlhWFJoWW14bE9pQjBjblZsTEZ4dUlDQWdJQ0FnZG1Gc2RXVTZJR1poYkhObFhHNGdJQ0FnZlNrN0lDOHZJSE5sYkdZZ1lXNWtJSE52ZFhKalpTQmhjbVVnUkVWV0lHOXViSGtnY0hKdmNHVnlkR2xsY3k1Y2JseHVJQ0FnSUU5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaGxiR1Z0Wlc1MExDQW5YM05sYkdZbkxDQjdYRzRnSUNBZ0lDQmpiMjVtYVdkMWNtRmliR1U2SUdaaGJITmxMRnh1SUNBZ0lDQWdaVzUxYldWeVlXSnNaVG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQjNjbWwwWVdKc1pUb2dabUZzYzJVc1hHNGdJQ0FnSUNCMllXeDFaVG9nYzJWc1pseHVJQ0FnSUgwcE95QXZMeUJVZDI4Z1pXeGxiV1Z1ZEhNZ1kzSmxZWFJsWkNCcGJpQjBkMjhnWkdsbVptVnlaVzUwSUhCc1lXTmxjeUJ6YUc5MWJHUWdZbVVnWTI5dWMybGtaWEpsWkZ4dUlDQWdJQzh2SUdWeGRXRnNJR1p2Y2lCMFpYTjBhVzVuSUhCMWNuQnZjMlZ6SUdGdVpDQjBhR1Z5WldadmNtVWdkMlVnYUdsa1pTQnBkQ0JtY205dElHVnVkVzFsY21GMGFXOXVMbHh1WEc0Z0lDQWdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0dWc1pXMWxiblFzSUNkZmMyOTFjbU5sSnl3Z2UxeHVJQ0FnSUNBZ1kyOXVabWxuZFhKaFlteGxPaUJtWVd4elpTeGNiaUFnSUNBZ0lHVnVkVzFsY21GaWJHVTZJR1poYkhObExGeHVJQ0FnSUNBZ2QzSnBkR0ZpYkdVNklHWmhiSE5sTEZ4dUlDQWdJQ0FnZG1Gc2RXVTZJSE52ZFhKalpWeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ2FXWWdLRTlpYW1WamRDNW1jbVZsZW1VcElIdGNiaUFnSUNBZ0lFOWlhbVZqZEM1bWNtVmxlbVVvWld4bGJXVnVkQzV3Y205d2N5azdYRzRnSUNBZ0lDQlBZbXBsWTNRdVpuSmxaWHBsS0dWc1pXMWxiblFwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJsYkdWdFpXNTBPMXh1ZlR0Y2JpOHFLbHh1SUNvZ2FIUjBjSE02THk5bmFYUm9kV0l1WTI5dEwzSmxZV04wYW5NdmNtWmpjeTl3ZFd4c0x6RXdOMXh1SUNvZ1FIQmhjbUZ0SUhzcWZTQjBlWEJsWEc0Z0tpQkFjR0Z5WVcwZ2UyOWlhbVZqZEgwZ2NISnZjSE5jYmlBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCclpYbGNiaUFxTDF4dVhHNW1kVzVqZEdsdmJpQnFjM2hFUlZZb2RIbHdaU3dnWTI5dVptbG5MQ0J0WVhsaVpVdGxlU3dnYzI5MWNtTmxMQ0J6Wld4bUtTQjdYRzRnSUh0Y2JpQWdJQ0IyWVhJZ2NISnZjRTVoYldVN0lDOHZJRkpsYzJWeWRtVmtJRzVoYldWeklHRnlaU0JsZUhSeVlXTjBaV1JjYmx4dUlDQWdJSFpoY2lCd2NtOXdjeUE5SUh0OU8xeHVJQ0FnSUhaaGNpQnJaWGtnUFNCdWRXeHNPMXh1SUNBZ0lIWmhjaUJ5WldZZ1BTQnVkV3hzT3lBdkx5QkRkWEp5Wlc1MGJIa3NJR3RsZVNCallXNGdZbVVnYzNCeVpXRmtJR2x1SUdGeklHRWdjSEp2Y0M0Z1ZHaHBjeUJqWVhWelpYTWdZU0J3YjNSbGJuUnBZV3hjYmlBZ0lDQXZMeUJwYzNOMVpTQnBaaUJyWlhrZ2FYTWdZV3h6YnlCbGVIQnNhV05wZEd4NUlHUmxZMnhoY21Wa0lDaHBaUzRnUEdScGRpQjdMaTR1Y0hKdmNITjlJR3RsZVQxY0lraHBYQ0lnTHo1Y2JpQWdJQ0F2THlCdmNpQThaR2wySUd0bGVUMWNJa2hwWENJZ2V5NHVMbkJ5YjNCemZTQXZQaUFwTGlCWFpTQjNZVzUwSUhSdklHUmxjSEpsWTJGMFpTQnJaWGtnYzNCeVpXRmtMRnh1SUNBZ0lDOHZJR0oxZENCaGN5QmhiaUJwYm5SbGNtMWxaR2xoY25rZ2MzUmxjQ3dnZDJVZ2QybHNiQ0IxYzJVZ2FuTjRSRVZXSUdadmNpQmxkbVZ5ZVhSb2FXNW5JR1Y0WTJWd2RGeHVJQ0FnSUM4dklEeGthWFlnZXk0dUxuQnliM0J6ZlNCclpYazlYQ0pJYVZ3aUlDOCtMQ0JpWldOaGRYTmxJSGRsSUdGeVpXNG5kQ0JqZFhKeVpXNTBiSGtnWVdKc1pTQjBieUIwWld4c0lHbG1YRzRnSUNBZ0x5OGdhMlY1SUdseklHVjRjR3hwWTJsMGJIa2daR1ZqYkdGeVpXUWdkRzhnWW1VZ2RXNWtaV1pwYm1Wa0lHOXlJRzV2ZEM1Y2JseHVJQ0FnSUdsbUlDaHRZWGxpWlV0bGVTQWhQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNCclpYa2dQU0FuSnlBcklHMWhlV0psUzJWNU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaG9ZWE5XWVd4cFpFdGxlU2hqYjI1bWFXY3BLU0I3WEc0Z0lDQWdJQ0JyWlhrZ1BTQW5KeUFySUdOdmJtWnBaeTVyWlhrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHaGhjMVpoYkdsa1VtVm1LR052Ym1acFp5a3BJSHRjYmlBZ0lDQWdJSEpsWmlBOUlHTnZibVpwWnk1eVpXWTdYRzRnSUNBZ0lDQjNZWEp1U1daVGRISnBibWRTWldaRFlXNXViM1JDWlVGMWRHOURiMjUyWlhKMFpXUW9ZMjl1Wm1sbkxDQnpaV3htS1R0Y2JpQWdJQ0I5SUM4dklGSmxiV0ZwYm1sdVp5QndjbTl3WlhKMGFXVnpJR0Z5WlNCaFpHUmxaQ0IwYnlCaElHNWxkeUJ3Y205d2N5QnZZbXBsWTNSY2JseHVYRzRnSUNBZ1ptOXlJQ2h3Y205d1RtRnRaU0JwYmlCamIyNW1hV2NwSUh0Y2JpQWdJQ0FnSUdsbUlDaG9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLR052Ym1acFp5d2djSEp2Y0U1aGJXVXBJQ1ltSUNGU1JWTkZVbFpGUkY5UVVrOVFVeTVvWVhOUGQyNVFjbTl3WlhKMGVTaHdjbTl3VG1GdFpTa3BJSHRjYmlBZ0lDQWdJQ0FnY0hKdmNITmJjSEp2Y0U1aGJXVmRJRDBnWTI5dVptbG5XM0J5YjNCT1lXMWxYVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlJQzh2SUZKbGMyOXNkbVVnWkdWbVlYVnNkQ0J3Y205d2MxeHVYRzVjYmlBZ0lDQnBaaUFvZEhsd1pTQW1KaUIwZVhCbExtUmxabUYxYkhSUWNtOXdjeWtnZTF4dUlDQWdJQ0FnZG1GeUlHUmxabUYxYkhSUWNtOXdjeUE5SUhSNWNHVXVaR1ZtWVhWc2RGQnliM0J6TzF4dVhHNGdJQ0FnSUNCbWIzSWdLSEJ5YjNCT1lXMWxJR2x1SUdSbFptRjFiSFJRY205d2N5a2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2NISnZjSE5iY0hKdmNFNWhiV1ZkSUQwOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCd2NtOXdjMXR3Y205d1RtRnRaVjBnUFNCa1pXWmhkV3gwVUhKdmNITmJjSEp2Y0U1aGJXVmRPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0d0bGVTQjhmQ0J5WldZcElIdGNiaUFnSUNBZ0lIWmhjaUJrYVhOd2JHRjVUbUZ0WlNBOUlIUjVjR1Z2WmlCMGVYQmxJRDA5UFNBblpuVnVZM1JwYjI0bklEOGdkSGx3WlM1a2FYTndiR0Y1VG1GdFpTQjhmQ0IwZVhCbExtNWhiV1VnZkh3Z0oxVnVhMjV2ZDI0bklEb2dkSGx3WlR0Y2JseHVJQ0FnSUNBZ2FXWWdLR3RsZVNrZ2UxeHVJQ0FnSUNBZ0lDQmtaV1pwYm1WTFpYbFFjbTl3VjJGeWJtbHVaMGRsZEhSbGNpaHdjbTl3Y3l3Z1pHbHpjR3hoZVU1aGJXVXBPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb2NtVm1LU0I3WEc0Z0lDQWdJQ0FnSUdSbFptbHVaVkpsWmxCeWIzQlhZWEp1YVc1blIyVjBkR1Z5S0hCeWIzQnpMQ0JrYVhOd2JHRjVUbUZ0WlNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJRkpsWVdOMFJXeGxiV1Z1ZENoMGVYQmxMQ0JyWlhrc0lISmxaaXdnYzJWc1ppd2djMjkxY21ObExDQlNaV0ZqZEVOMWNuSmxiblJQZDI1bGNpNWpkWEp5Wlc1MExDQndjbTl3Y3lrN1hHNGdJSDFjYm4xY2JseHVkbUZ5SUZKbFlXTjBRM1Z5Y21WdWRFOTNibVZ5SkRFZ1BTQlNaV0ZqZEZOb1lYSmxaRWx1ZEdWeWJtRnNjeTVTWldGamRFTjFjbkpsYm5SUGQyNWxjanRjYm5aaGNpQlNaV0ZqZEVSbFluVm5RM1Z5Y21WdWRFWnlZVzFsSkRFZ1BTQlNaV0ZqZEZOb1lYSmxaRWx1ZEdWeWJtRnNjeTVTWldGamRFUmxZblZuUTNWeWNtVnVkRVp5WVcxbE8xeHVYRzVtZFc1amRHbHZiaUJ6WlhSRGRYSnlaVzUwYkhsV1lXeHBaR0YwYVc1blJXeGxiV1Z1ZENReEtHVnNaVzFsYm5RcElIdGNiaUFnZTF4dUlDQWdJR2xtSUNobGJHVnRaVzUwS1NCN1hHNGdJQ0FnSUNCMllYSWdiM2R1WlhJZ1BTQmxiR1Z0Wlc1MExsOXZkMjVsY2p0Y2JpQWdJQ0FnSUhaaGNpQnpkR0ZqYXlBOUlHUmxjMk55YVdKbFZXNXJibTkzYmtWc1pXMWxiblJVZVhCbFJuSmhiV1ZKYmtSRlZpaGxiR1Z0Wlc1MExuUjVjR1VzSUdWc1pXMWxiblF1WDNOdmRYSmpaU3dnYjNkdVpYSWdQeUJ2ZDI1bGNpNTBlWEJsSURvZ2JuVnNiQ2s3WEc0Z0lDQWdJQ0JTWldGamRFUmxZblZuUTNWeWNtVnVkRVp5WVcxbEpERXVjMlYwUlhoMGNtRlRkR0ZqYTBaeVlXMWxLSE4wWVdOcktUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnVW1WaFkzUkVaV0oxWjBOMWNuSmxiblJHY21GdFpTUXhMbk5sZEVWNGRISmhVM1JoWTJ0R2NtRnRaU2h1ZFd4c0tUdGNiaUFnSUNCOVhHNGdJSDFjYm4xY2JseHVkbUZ5SUhCeWIzQlVlWEJsYzAxcGMzTndaV3hzVjJGeWJtbHVaMU5vYjNkdU8xeHVYRzU3WEc0Z0lIQnliM0JVZVhCbGMwMXBjM053Wld4c1YyRnlibWx1WjFOb2IzZHVJRDBnWm1Gc2MyVTdYRzU5WEc0dktpcGNiaUFxSUZabGNtbG1hV1Z6SUhSb1pTQnZZbXBsWTNRZ2FYTWdZU0JTWldGamRFVnNaVzFsYm5RdVhHNGdLaUJUWldVZ2FIUjBjSE02THk5eVpXRmpkR3B6TG05eVp5OWtiMk56TDNKbFlXTjBMV0Z3YVM1b2RHMXNJMmx6ZG1Gc2FXUmxiR1Z0Wlc1MFhHNGdLaUJBY0dGeVlXMGdlejl2WW1wbFkzUjlJRzlpYW1WamRGeHVJQ29nUUhKbGRIVnliaUI3WW05dmJHVmhibjBnVkhKMVpTQnBaaUJnYjJKcVpXTjBZQ0JwY3lCaElGSmxZV04wUld4bGJXVnVkQzVjYmlBcUlFQm1hVzVoYkZ4dUlDb3ZYRzVjYm1aMWJtTjBhVzl1SUdselZtRnNhV1JGYkdWdFpXNTBLRzlpYW1WamRDa2dlMXh1SUNCN1hHNGdJQ0FnY21WMGRYSnVJSFI1Y0dWdlppQnZZbXBsWTNRZ1BUMDlJQ2R2WW1wbFkzUW5JQ1ltSUc5aWFtVmpkQ0FoUFQwZ2JuVnNiQ0FtSmlCdlltcGxZM1F1SkNSMGVYQmxiMllnUFQwOUlGSkZRVU5VWDBWTVJVMUZUbFJmVkZsUVJUdGNiaUFnZlZ4dWZWeHVYRzVtZFc1amRHbHZiaUJuWlhSRVpXTnNZWEpoZEdsdmJrVnljbTl5UVdSa1pXNWtkVzBvS1NCN1hHNGdJSHRjYmlBZ0lDQnBaaUFvVW1WaFkzUkRkWEp5Wlc1MFQzZHVaWElrTVM1amRYSnlaVzUwS1NCN1hHNGdJQ0FnSUNCMllYSWdibUZ0WlNBOUlHZGxkRU52YlhCdmJtVnVkRTVoYldVb1VtVmhZM1JEZFhKeVpXNTBUM2R1WlhJa01TNWpkWEp5Wlc1MExuUjVjR1VwTzF4dVhHNGdJQ0FnSUNCcFppQW9ibUZ0WlNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z0oxeGNibHhjYmtOb1pXTnJJSFJvWlNCeVpXNWtaWElnYldWMGFHOWtJRzltSUdBbklDc2dibUZ0WlNBcklDZGdMaWM3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlDY25PMXh1SUNCOVhHNTlYRzVjYm1aMWJtTjBhVzl1SUdkbGRGTnZkWEpqWlVsdVptOUZjbkp2Y2tGa1pHVnVaSFZ0S0hOdmRYSmpaU2tnZTF4dUlDQjdYRzRnSUNBZ2FXWWdLSE52ZFhKalpTQWhQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNCMllYSWdabWxzWlU1aGJXVWdQU0J6YjNWeVkyVXVabWxzWlU1aGJXVXVjbVZ3YkdGalpTZ3ZYaTRxVzF4Y1hGeGNYQzlkTHl3Z0p5Y3BPMXh1SUNBZ0lDQWdkbUZ5SUd4cGJtVk9kVzFpWlhJZ1BTQnpiM1Z5WTJVdWJHbHVaVTUxYldKbGNqdGNiaUFnSUNBZ0lISmxkSFZ5YmlBblhGeHVYRnh1UTJobFkyc2dlVzkxY2lCamIyUmxJR0YwSUNjZ0t5Qm1hV3hsVG1GdFpTQXJJQ2M2SnlBcklHeHBibVZPZFcxaVpYSWdLeUFuTGljN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJQ2NuTzF4dUlDQjlYRzU5WEc0dktpcGNiaUFxSUZkaGNtNGdhV1lnZEdobGNtVW5jeUJ1YnlCclpYa2daWGh3YkdsamFYUnNlU0J6WlhRZ2IyNGdaSGx1WVcxcFl5QmhjbkpoZVhNZ2IyWWdZMmhwYkdSeVpXNGdiM0pjYmlBcUlHOWlhbVZqZENCclpYbHpJR0Z5WlNCdWIzUWdkbUZzYVdRdUlGUm9hWE1nWVd4c2IzZHpJSFZ6SUhSdklHdGxaWEFnZEhKaFkyc2diMllnWTJocGJHUnlaVzRnWW1WMGQyVmxibHh1SUNvZ2RYQmtZWFJsY3k1Y2JpQXFMMXh1WEc1Y2JuWmhjaUJ2ZDI1bGNraGhjMHRsZVZWelpWZGhjbTVwYm1jZ1BTQjdmVHRjYmx4dVpuVnVZM1JwYjI0Z1oyVjBRM1Z5Y21WdWRFTnZiWEJ2Ym1WdWRFVnljbTl5U1c1bWJ5aHdZWEpsYm5SVWVYQmxLU0I3WEc0Z0lIdGNiaUFnSUNCMllYSWdhVzVtYnlBOUlHZGxkRVJsWTJ4aGNtRjBhVzl1UlhKeWIzSkJaR1JsYm1SMWJTZ3BPMXh1WEc0Z0lDQWdhV1lnS0NGcGJtWnZLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2NHRnlaVzUwVG1GdFpTQTlJSFI1Y0dWdlppQndZWEpsYm5SVWVYQmxJRDA5UFNBbmMzUnlhVzVuSnlBL0lIQmhjbVZ1ZEZSNWNHVWdPaUJ3WVhKbGJuUlVlWEJsTG1ScGMzQnNZWGxPWVcxbElIeDhJSEJoY21WdWRGUjVjR1V1Ym1GdFpUdGNibHh1SUNBZ0lDQWdhV1lnS0hCaGNtVnVkRTVoYldVcElIdGNiaUFnSUNBZ0lDQWdhVzVtYnlBOUlGd2lYRnh1WEZ4dVEyaGxZMnNnZEdobElIUnZjQzFzWlhabGJDQnlaVzVrWlhJZ1kyRnNiQ0IxYzJsdVp5QThYQ0lnS3lCd1lYSmxiblJPWVcxbElDc2dYQ0krTGx3aU8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJwYm1adk8xeHVJQ0I5WEc1OVhHNHZLaXBjYmlBcUlGZGhjbTRnYVdZZ2RHaGxJR1ZzWlcxbGJuUWdaRzlsYzI0bmRDQm9ZWFpsSUdGdUlHVjRjR3hwWTJsMElHdGxlU0JoYzNOcFoyNWxaQ0IwYnlCcGRDNWNiaUFxSUZSb2FYTWdaV3hsYldWdWRDQnBjeUJwYmlCaGJpQmhjbkpoZVM0Z1ZHaGxJR0Z5Y21GNUlHTnZkV3hrSUdkeWIzY2dZVzVrSUhOb2NtbHVheUJ2Y2lCaVpWeHVJQ29nY21WdmNtUmxjbVZrTGlCQmJHd2dZMmhwYkdSeVpXNGdkR2hoZENCb1lYWmxiaWQwSUdGc2NtVmhaSGtnWW1WbGJpQjJZV3hwWkdGMFpXUWdZWEpsSUhKbGNYVnBjbVZrSUhSdlhHNGdLaUJvWVhabElHRWdYQ0pyWlhsY0lpQndjbTl3WlhKMGVTQmhjM05wWjI1bFpDQjBieUJwZEM0Z1JYSnliM0lnYzNSaGRIVnpaWE1nWVhKbElHTmhZMmhsWkNCemJ5QmhJSGRoY201cGJtZGNiaUFxSUhkcGJHd2diMjVzZVNCaVpTQnphRzkzYmlCdmJtTmxMbHh1SUNwY2JpQXFJRUJwYm5SbGNtNWhiRnh1SUNvZ1FIQmhjbUZ0SUh0U1pXRmpkRVZzWlcxbGJuUjlJR1ZzWlcxbGJuUWdSV3hsYldWdWRDQjBhR0YwSUhKbGNYVnBjbVZ6SUdFZ2EyVjVMbHh1SUNvZ1FIQmhjbUZ0SUhzcWZTQndZWEpsYm5SVWVYQmxJR1ZzWlcxbGJuUW5jeUJ3WVhKbGJuUW5jeUIwZVhCbExseHVJQ292WEc1Y2JseHVablZ1WTNScGIyNGdkbUZzYVdSaGRHVkZlSEJzYVdOcGRFdGxlU2hsYkdWdFpXNTBMQ0J3WVhKbGJuUlVlWEJsS1NCN1hHNGdJSHRjYmlBZ0lDQnBaaUFvSVdWc1pXMWxiblF1WDNOMGIzSmxJSHg4SUdWc1pXMWxiblF1WDNOMGIzSmxMblpoYkdsa1lYUmxaQ0I4ZkNCbGJHVnRaVzUwTG10bGVTQWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWld4bGJXVnVkQzVmYzNSdmNtVXVkbUZzYVdSaGRHVmtJRDBnZEhKMVpUdGNiaUFnSUNCMllYSWdZM1Z5Y21WdWRFTnZiWEJ2Ym1WdWRFVnljbTl5U1c1bWJ5QTlJR2RsZEVOMWNuSmxiblJEYjIxd2IyNWxiblJGY25KdmNrbHVabThvY0dGeVpXNTBWSGx3WlNrN1hHNWNiaUFnSUNCcFppQW9iM2R1WlhKSVlYTkxaWGxWYzJWWFlYSnVhVzVuVzJOMWNuSmxiblJEYjIxd2IyNWxiblJGY25KdmNrbHVabTlkS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdiM2R1WlhKSVlYTkxaWGxWYzJWWFlYSnVhVzVuVzJOMWNuSmxiblJEYjIxd2IyNWxiblJGY25KdmNrbHVabTlkSUQwZ2RISjFaVHNnTHk4Z1ZYTjFZV3hzZVNCMGFHVWdZM1Z5Y21WdWRDQnZkMjVsY2lCcGN5QjBhR1VnYjJabVpXNWtaWElzSUdKMWRDQnBaaUJwZENCaFkyTmxjSFJ6SUdOb2FXeGtjbVZ1SUdGeklHRmNiaUFnSUNBdkx5QndjbTl3WlhKMGVTd2dhWFFnYldGNUlHSmxJSFJvWlNCamNtVmhkRzl5SUc5bUlIUm9aU0JqYUdsc1pDQjBhR0YwSjNNZ2NtVnpjRzl1YzJsaWJHVWdabTl5WEc0Z0lDQWdMeThnWVhOemFXZHVhVzVuSUdsMElHRWdhMlY1TGx4dVhHNGdJQ0FnZG1GeUlHTm9hV3hrVDNkdVpYSWdQU0FuSnp0Y2JseHVJQ0FnSUdsbUlDaGxiR1Z0Wlc1MElDWW1JR1ZzWlcxbGJuUXVYMjkzYm1WeUlDWW1JR1ZzWlcxbGJuUXVYMjkzYm1WeUlDRTlQU0JTWldGamRFTjFjbkpsYm5SUGQyNWxjaVF4TG1OMWNuSmxiblFwSUh0Y2JpQWdJQ0FnSUM4dklFZHBkbVVnZEdobElHTnZiWEJ2Ym1WdWRDQjBhR0YwSUc5eWFXZHBibUZzYkhrZ1kzSmxZWFJsWkNCMGFHbHpJR05vYVd4a0xseHVJQ0FnSUNBZ1kyaHBiR1JQZDI1bGNpQTlJRndpSUVsMElIZGhjeUJ3WVhOelpXUWdZU0JqYUdsc1pDQm1jbTl0SUZ3aUlDc2daMlYwUTI5dGNHOXVaVzUwVG1GdFpTaGxiR1Z0Wlc1MExsOXZkMjVsY2k1MGVYQmxLU0FySUZ3aUxsd2lPMXh1SUNBZ0lIMWNibHh1SUNBZ0lITmxkRU4xY25KbGJuUnNlVlpoYkdsa1lYUnBibWRGYkdWdFpXNTBKREVvWld4bGJXVnVkQ2s3WEc1Y2JpQWdJQ0JsY25KdmNpZ25SV0ZqYUNCamFHbHNaQ0JwYmlCaElHeHBjM1FnYzJodmRXeGtJR2hoZG1VZ1lTQjFibWx4ZFdVZ1hDSnJaWGxjSWlCd2NtOXdMaWNnS3lBbkpYTWxjeUJUWldVZ2FIUjBjSE02THk5eVpXRmpkR3B6TG05eVp5OXNhVzVyTDNkaGNtNXBibWN0YTJWNWN5Qm1iM0lnYlc5eVpTQnBibVp2Y20xaGRHbHZiaTRuTENCamRYSnlaVzUwUTI5dGNHOXVaVzUwUlhKeWIzSkpibVp2TENCamFHbHNaRTkzYm1WeUtUdGNibHh1SUNBZ0lITmxkRU4xY25KbGJuUnNlVlpoYkdsa1lYUnBibWRGYkdWdFpXNTBKREVvYm5Wc2JDazdYRzRnSUgxY2JuMWNiaThxS2x4dUlDb2dSVzV6ZFhKbElIUm9ZWFFnWlhabGNua2daV3hsYldWdWRDQmxhWFJvWlhJZ2FYTWdjR0Z6YzJWa0lHbHVJR0VnYzNSaGRHbGpJR3h2WTJGMGFXOXVMQ0JwYmlCaGJseHVJQ29nWVhKeVlYa2dkMmwwYUNCaGJpQmxlSEJzYVdOcGRDQnJaWGx6SUhCeWIzQmxjblI1SUdSbFptbHVaV1FzSUc5eUlHbHVJR0Z1SUc5aWFtVmpkQ0JzYVhSbGNtRnNYRzRnS2lCM2FYUm9JSFpoYkdsa0lHdGxlU0J3Y205d1pYSjBlUzVjYmlBcVhHNGdLaUJBYVc1MFpYSnVZV3hjYmlBcUlFQndZWEpoYlNCN1VtVmhZM1JPYjJSbGZTQnViMlJsSUZOMFlYUnBZMkZzYkhrZ2NHRnpjMlZrSUdOb2FXeGtJRzltSUdGdWVTQjBlWEJsTGx4dUlDb2dRSEJoY21GdElIc3FmU0J3WVhKbGJuUlVlWEJsSUc1dlpHVW5jeUJ3WVhKbGJuUW5jeUIwZVhCbExseHVJQ292WEc1Y2JseHVablZ1WTNScGIyNGdkbUZzYVdSaGRHVkRhR2xzWkV0bGVYTW9ibTlrWlN3Z2NHRnlaVzUwVkhsd1pTa2dlMXh1SUNCN1hHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCdWIyUmxJQ0U5UFNBbmIySnFaV04wSnlrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoQmNuSmhlUzVwYzBGeWNtRjVLRzV2WkdVcEtTQjdYRzRnSUNBZ0lDQm1iM0lnS0haaGNpQnBJRDBnTURzZ2FTQThJRzV2WkdVdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJQ0FnZG1GeUlHTm9hV3hrSUQwZ2JtOWtaVnRwWFR0Y2JseHVJQ0FnSUNBZ0lDQnBaaUFvYVhOV1lXeHBaRVZzWlcxbGJuUW9ZMmhwYkdRcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnZG1Gc2FXUmhkR1ZGZUhCc2FXTnBkRXRsZVNoamFHbHNaQ3dnY0dGeVpXNTBWSGx3WlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tHbHpWbUZzYVdSRmJHVnRaVzUwS0c1dlpHVXBLU0I3WEc0Z0lDQWdJQ0F2THlCVWFHbHpJR1ZzWlcxbGJuUWdkMkZ6SUhCaGMzTmxaQ0JwYmlCaElIWmhiR2xrSUd4dlkyRjBhVzl1TGx4dUlDQWdJQ0FnYVdZZ0tHNXZaR1V1WDNOMGIzSmxLU0I3WEc0Z0lDQWdJQ0FnSUc1dlpHVXVYM04wYjNKbExuWmhiR2xrWVhSbFpDQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNCbGJITmxJR2xtSUNodWIyUmxLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2FYUmxjbUYwYjNKR2JpQTlJR2RsZEVsMFpYSmhkRzl5Um00b2JtOWtaU2s3WEc1Y2JpQWdJQ0FnSUdsbUlDaDBlWEJsYjJZZ2FYUmxjbUYwYjNKR2JpQTlQVDBnSjJaMWJtTjBhVzl1SnlrZ2UxeHVJQ0FnSUNBZ0lDQXZMeUJGYm5SeWVTQnBkR1Z5WVhSdmNuTWdkWE5sWkNCMGJ5QndjbTkyYVdSbElHbHRjR3hwWTJsMElHdGxlWE1zWEc0Z0lDQWdJQ0FnSUM4dklHSjFkQ0J1YjNjZ2QyVWdjSEpwYm5RZ1lTQnpaWEJoY21GMFpTQjNZWEp1YVc1bklHWnZjaUIwYUdWdElHeGhkR1Z5TGx4dUlDQWdJQ0FnSUNCcFppQW9hWFJsY21GMGIzSkdiaUFoUFQwZ2JtOWtaUzVsYm5SeWFXVnpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RtRnlJR2wwWlhKaGRHOXlJRDBnYVhSbGNtRjBiM0pHYmk1allXeHNLRzV2WkdVcE8xeHVJQ0FnSUNBZ0lDQWdJSFpoY2lCemRHVndPMXh1WEc0Z0lDQWdJQ0FnSUNBZ2QyaHBiR1VnS0NFb2MzUmxjQ0E5SUdsMFpYSmhkRzl5TG01bGVIUW9LU2t1Wkc5dVpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2x6Vm1Gc2FXUkZiR1Z0Wlc1MEtITjBaWEF1ZG1Gc2RXVXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFpoYkdsa1lYUmxSWGh3YkdsamFYUkxaWGtvYzNSbGNDNTJZV3gxWlN3Z2NHRnlaVzUwVkhsd1pTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNCOVhHNTlYRzR2S2lwY2JpQXFJRWRwZG1WdUlHRnVJR1ZzWlcxbGJuUXNJSFpoYkdsa1lYUmxJSFJvWVhRZ2FYUnpJSEJ5YjNCeklHWnZiR3h2ZHlCMGFHVWdjSEp2Y0ZSNWNHVnpJR1JsWm1sdWFYUnBiMjRzWEc0Z0tpQndjbTkyYVdSbFpDQmllU0IwYUdVZ2RIbHdaUzVjYmlBcVhHNGdLaUJBY0dGeVlXMGdlMUpsWVdOMFJXeGxiV1Z1ZEgwZ1pXeGxiV1Z1ZEZ4dUlDb3ZYRzVjYmx4dVpuVnVZM1JwYjI0Z2RtRnNhV1JoZEdWUWNtOXdWSGx3WlhNb1pXeGxiV1Z1ZENrZ2UxeHVJQ0I3WEc0Z0lDQWdkbUZ5SUhSNWNHVWdQU0JsYkdWdFpXNTBMblI1Y0dVN1hHNWNiaUFnSUNCcFppQW9kSGx3WlNBOVBUMGdiblZzYkNCOGZDQjBlWEJsSUQwOVBTQjFibVJsWm1sdVpXUWdmSHdnZEhsd1pXOW1JSFI1Y0dVZ1BUMDlJQ2R6ZEhKcGJtY25LU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RtRnlJSEJ5YjNCVWVYQmxjenRjYmx4dUlDQWdJR2xtSUNoMGVYQmxiMllnZEhsd1pTQTlQVDBnSjJaMWJtTjBhVzl1SnlrZ2UxeHVJQ0FnSUNBZ2NISnZjRlI1Y0dWeklEMGdkSGx3WlM1d2NtOXdWSGx3WlhNN1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNoMGVYQmxiMllnZEhsd1pTQTlQVDBnSjI5aWFtVmpkQ2NnSmlZZ0tIUjVjR1V1SkNSMGVYQmxiMllnUFQwOUlGSkZRVU5VWDBaUFVsZEJVa1JmVWtWR1gxUlpVRVVnZkh3Z0x5OGdUbTkwWlRvZ1RXVnRieUJ2Ym14NUlHTm9aV05yY3lCdmRYUmxjaUJ3Y205d2N5Qm9aWEpsTGx4dUlDQWdJQzh2SUVsdWJtVnlJSEJ5YjNCeklHRnlaU0JqYUdWamEyVmtJR2x1SUhSb1pTQnlaV052Ym1OcGJHVnlMbHh1SUNBZ0lIUjVjR1V1SkNSMGVYQmxiMllnUFQwOUlGSkZRVU5VWDAxRlRVOWZWRmxRUlNrcElIdGNiaUFnSUNBZ0lIQnliM0JVZVhCbGN5QTlJSFI1Y0dVdWNISnZjRlI1Y0dWek8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLSEJ5YjNCVWVYQmxjeWtnZTF4dUlDQWdJQ0FnTHk4Z1NXNTBaVzUwYVc5dVlXeHNlU0JwYm5OcFpHVWdkRzhnWVhadmFXUWdkSEpwWjJkbGNtbHVaeUJzWVhwNUlHbHVhWFJwWVd4cGVtVnljenBjYmlBZ0lDQWdJSFpoY2lCdVlXMWxJRDBnWjJWMFEyOXRjRzl1Wlc1MFRtRnRaU2gwZVhCbEtUdGNiaUFnSUNBZ0lHTm9aV05yVUhKdmNGUjVjR1Z6S0hCeWIzQlVlWEJsY3l3Z1pXeGxiV1Z1ZEM1d2NtOXdjeXdnSjNCeWIzQW5MQ0J1WVcxbExDQmxiR1Z0Wlc1MEtUdGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tIUjVjR1V1VUhKdmNGUjVjR1Z6SUNFOVBTQjFibVJsWm1sdVpXUWdKaVlnSVhCeWIzQlVlWEJsYzAxcGMzTndaV3hzVjJGeWJtbHVaMU5vYjNkdUtTQjdYRzRnSUNBZ0lDQndjbTl3Vkhsd1pYTk5hWE56Y0dWc2JGZGhjbTVwYm1kVGFHOTNiaUE5SUhSeWRXVTdJQzh2SUVsdWRHVnVkR2x2Ym1Gc2JIa2dhVzV6YVdSbElIUnZJR0YyYjJsa0lIUnlhV2RuWlhKcGJtY2diR0Y2ZVNCcGJtbDBhV0ZzYVhwbGNuTTZYRzVjYmlBZ0lDQWdJSFpoY2lCZmJtRnRaU0E5SUdkbGRFTnZiWEJ2Ym1WdWRFNWhiV1VvZEhsd1pTazdYRzVjYmlBZ0lDQWdJR1Z5Y205eUtDZERiMjF3YjI1bGJuUWdKWE1nWkdWamJHRnlaV1FnWUZCeWIzQlVlWEJsYzJBZ2FXNXpkR1ZoWkNCdlppQmdjSEp2Y0ZSNWNHVnpZQzRnUkdsa0lIbHZkU0J0YVhOemNHVnNiQ0IwYUdVZ2NISnZjR1Z5ZEhrZ1lYTnphV2R1YldWdWREOG5MQ0JmYm1GdFpTQjhmQ0FuVlc1cmJtOTNiaWNwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoMGVYQmxiMllnZEhsd1pTNW5aWFJFWldaaGRXeDBVSEp2Y0hNZ1BUMDlJQ2RtZFc1amRHbHZiaWNnSmlZZ0lYUjVjR1V1WjJWMFJHVm1ZWFZzZEZCeWIzQnpMbWx6VW1WaFkzUkRiR0Z6YzBGd2NISnZkbVZrS1NCN1hHNGdJQ0FnSUNCbGNuSnZjaWduWjJWMFJHVm1ZWFZzZEZCeWIzQnpJR2x6SUc5dWJIa2dkWE5sWkNCdmJpQmpiR0Z6YzJsaklGSmxZV04wTG1OeVpXRjBaVU5zWVhOeklDY2dLeUFuWkdWbWFXNXBkR2x2Ym5NdUlGVnpaU0JoSUhOMFlYUnBZeUJ3Y205d1pYSjBlU0J1WVcxbFpDQmdaR1ZtWVhWc2RGQnliM0J6WUNCcGJuTjBaV0ZrTGljcE8xeHVJQ0FnSUgxY2JpQWdmVnh1ZlZ4dUx5b3FYRzRnS2lCSGFYWmxiaUJoSUdaeVlXZHRaVzUwTENCMllXeHBaR0YwWlNCMGFHRjBJR2wwSUdOaGJpQnZibXg1SUdKbElIQnliM1pwWkdWa0lIZHBkR2dnWm5KaFoyMWxiblFnY0hKdmNITmNiaUFxSUVCd1lYSmhiU0I3VW1WaFkzUkZiR1Z0Wlc1MGZTQm1jbUZuYldWdWRGeHVJQ292WEc1Y2JseHVablZ1WTNScGIyNGdkbUZzYVdSaGRHVkdjbUZuYldWdWRGQnliM0J6S0daeVlXZHRaVzUwS1NCN1hHNGdJSHRjYmlBZ0lDQjJZWElnYTJWNWN5QTlJRTlpYW1WamRDNXJaWGx6S0daeVlXZHRaVzUwTG5CeWIzQnpLVHRjYmx4dUlDQWdJR1p2Y2lBb2RtRnlJR2tnUFNBd095QnBJRHdnYTJWNWN5NXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnZG1GeUlHdGxlU0E5SUd0bGVYTmJhVjA3WEc1Y2JpQWdJQ0FnSUdsbUlDaHJaWGtnSVQwOUlDZGphR2xzWkhKbGJpY2dKaVlnYTJWNUlDRTlQU0FuYTJWNUp5a2dlMXh1SUNBZ0lDQWdJQ0J6WlhSRGRYSnlaVzUwYkhsV1lXeHBaR0YwYVc1blJXeGxiV1Z1ZENReEtHWnlZV2R0Wlc1MEtUdGNibHh1SUNBZ0lDQWdJQ0JsY25KdmNpZ25TVzUyWVd4cFpDQndjbTl3SUdBbGMyQWdjM1Z3Y0d4cFpXUWdkRzhnWUZKbFlXTjBMa1p5WVdkdFpXNTBZQzRnSnlBcklDZFNaV0ZqZEM1R2NtRm5iV1Z1ZENCallXNGdiMjVzZVNCb1lYWmxJR0JyWlhsZ0lHRnVaQ0JnWTJocGJHUnlaVzVnSUhCeWIzQnpMaWNzSUd0bGVTazdYRzVjYmlBZ0lDQWdJQ0FnYzJWMFEzVnljbVZ1ZEd4NVZtRnNhV1JoZEdsdVowVnNaVzFsYm5Ra01TaHVkV3hzS1R0Y2JpQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0daeVlXZHRaVzUwTG5KbFppQWhQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdjMlYwUTNWeWNtVnVkR3g1Vm1Gc2FXUmhkR2x1WjBWc1pXMWxiblFrTVNobWNtRm5iV1Z1ZENrN1hHNWNiaUFnSUNBZ0lHVnljbTl5S0NkSmJuWmhiR2xrSUdGMGRISnBZblYwWlNCZ2NtVm1ZQ0J6ZFhCd2JHbGxaQ0IwYnlCZ1VtVmhZM1F1Um5KaFoyMWxiblJnTGljcE8xeHVYRzRnSUNBZ0lDQnpaWFJEZFhKeVpXNTBiSGxXWVd4cFpHRjBhVzVuUld4bGJXVnVkQ1F4S0c1MWJHd3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dWZWeHVYRzVtZFc1amRHbHZiaUJxYzNoWGFYUm9WbUZzYVdSaGRHbHZiaWgwZVhCbExDQndjbTl3Y3l3Z2EyVjVMQ0JwYzFOMFlYUnBZME5vYVd4a2NtVnVMQ0J6YjNWeVkyVXNJSE5sYkdZcElIdGNiaUFnZTF4dUlDQWdJSFpoY2lCMllXeHBaRlI1Y0dVZ1BTQnBjMVpoYkdsa1JXeGxiV1Z1ZEZSNWNHVW9kSGx3WlNrN0lDOHZJRmRsSUhkaGNtNGdhVzRnZEdocGN5QmpZWE5sSUdKMWRDQmtiMjRuZENCMGFISnZkeTRnVjJVZ1pYaHdaV04wSUhSb1pTQmxiR1Z0Wlc1MElHTnlaV0YwYVc5dUlIUnZYRzRnSUNBZ0x5OGdjM1ZqWTJWbFpDQmhibVFnZEdobGNtVWdkMmxzYkNCc2FXdGxiSGtnWW1VZ1pYSnliM0p6SUdsdUlISmxibVJsY2k1Y2JseHVJQ0FnSUdsbUlDZ2hkbUZzYVdSVWVYQmxLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2FXNW1ieUE5SUNjbk8xeHVYRzRnSUNBZ0lDQnBaaUFvZEhsd1pTQTlQVDBnZFc1a1pXWnBibVZrSUh4OElIUjVjR1Z2WmlCMGVYQmxJRDA5UFNBbmIySnFaV04wSnlBbUppQjBlWEJsSUNFOVBTQnVkV3hzSUNZbUlFOWlhbVZqZEM1clpYbHpLSFI1Y0dVcExteGxibWQwYUNBOVBUMGdNQ2tnZTF4dUlDQWdJQ0FnSUNCcGJtWnZJQ3M5SUNjZ1dXOTFJR3hwYTJWc2VTQm1iM0puYjNRZ2RHOGdaWGh3YjNKMElIbHZkWElnWTI5dGNHOXVaVzUwSUdaeWIyMGdkR2hsSUdacGJHVWdKeUFySUZ3aWFYUW5jeUJrWldacGJtVmtJR2x1TENCdmNpQjViM1VnYldsbmFIUWdhR0YyWlNCdGFYaGxaQ0IxY0NCa1pXWmhkV3gwSUdGdVpDQnVZVzFsWkNCcGJYQnZjblJ6TGx3aU8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQjJZWElnYzI5MWNtTmxTVzVtYnlBOUlHZGxkRk52ZFhKalpVbHVabTlGY25KdmNrRmtaR1Z1WkhWdEtITnZkWEpqWlNrN1hHNWNiaUFnSUNBZ0lHbG1JQ2h6YjNWeVkyVkpibVp2S1NCN1hHNGdJQ0FnSUNBZ0lHbHVabThnS3owZ2MyOTFjbU5sU1c1bWJ6dGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHbHVabThnS3owZ1oyVjBSR1ZqYkdGeVlYUnBiMjVGY25KdmNrRmtaR1Z1WkhWdEtDazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJSFpoY2lCMGVYQmxVM1J5YVc1bk8xeHVYRzRnSUNBZ0lDQnBaaUFvZEhsd1pTQTlQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdJQ0IwZVhCbFUzUnlhVzVuSUQwZ0oyNTFiR3duTzF4dUlDQWdJQ0FnZlNCbGJITmxJR2xtSUNoQmNuSmhlUzVwYzBGeWNtRjVLSFI1Y0dVcEtTQjdYRzRnSUNBZ0lDQWdJSFI1Y0dWVGRISnBibWNnUFNBbllYSnlZWGtuTzF4dUlDQWdJQ0FnZlNCbGJITmxJR2xtSUNoMGVYQmxJQ0U5UFNCMWJtUmxabWx1WldRZ0ppWWdkSGx3WlM0a0pIUjVjR1Z2WmlBOVBUMGdVa1ZCUTFSZlJVeEZUVVZPVkY5VVdWQkZLU0I3WEc0Z0lDQWdJQ0FnSUhSNWNHVlRkSEpwYm1jZ1BTQmNJanhjSWlBcklDaG5aWFJEYjIxd2IyNWxiblJPWVcxbEtIUjVjR1V1ZEhsd1pTa2dmSHdnSjFWdWEyNXZkMjRuS1NBcklGd2lJQzgrWENJN1hHNGdJQ0FnSUNBZ0lHbHVabThnUFNBbklFUnBaQ0I1YjNVZ1lXTmphV1JsYm5SaGJHeDVJR1Y0Y0c5eWRDQmhJRXBUV0NCc2FYUmxjbUZzSUdsdWMzUmxZV1FnYjJZZ1lTQmpiMjF3YjI1bGJuUS9KenRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJSFI1Y0dWVGRISnBibWNnUFNCMGVYQmxiMllnZEhsd1pUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdaWEp5YjNJb0oxSmxZV04wTG1wemVEb2dkSGx3WlNCcGN5QnBiblpoYkdsa0lDMHRJR1Y0Y0dWamRHVmtJR0VnYzNSeWFXNW5JQ2htYjNJZ0p5QXJJQ2RpZFdsc2RDMXBiaUJqYjIxd2IyNWxiblJ6S1NCdmNpQmhJR05zWVhOekwyWjFibU4wYVc5dUlDaG1iM0lnWTI5dGNHOXphWFJsSUNjZ0t5QW5ZMjl0Y0c5dVpXNTBjeWtnWW5WMElHZHZkRG9nSlhNdUpYTW5MQ0IwZVhCbFUzUnlhVzVuTENCcGJtWnZLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjJZWElnWld4bGJXVnVkQ0E5SUdwemVFUkZWaWgwZVhCbExDQndjbTl3Y3l3Z2EyVjVMQ0J6YjNWeVkyVXNJSE5sYkdZcE95QXZMeUJVYUdVZ2NtVnpkV3gwSUdOaGJpQmlaU0J1ZFd4c2FYTm9JR2xtSUdFZ2JXOWpheUJ2Y2lCaElHTjFjM1J2YlNCbWRXNWpkR2x2YmlCcGN5QjFjMlZrTGx4dUlDQWdJQzh2SUZSUFJFODZJRVJ5YjNBZ2RHaHBjeUIzYUdWdUlIUm9aWE5sSUdGeVpTQnVieUJzYjI1blpYSWdZV3hzYjNkbFpDQmhjeUIwYUdVZ2RIbHdaU0JoY21kMWJXVnVkQzVjYmx4dUlDQWdJR2xtSUNobGJHVnRaVzUwSUQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJsYkdWdFpXNTBPMXh1SUNBZ0lIMGdMeThnVTJ0cGNDQnJaWGtnZDJGeWJtbHVaeUJwWmlCMGFHVWdkSGx3WlNCcGMyNG5kQ0IyWVd4cFpDQnphVzVqWlNCdmRYSWdhMlY1SUhaaGJHbGtZWFJwYjI0Z2JHOW5hV05jYmlBZ0lDQXZMeUJrYjJWemJpZDBJR1Y0Y0dWamRDQmhJRzV2YmkxemRISnBibWN2Wm5WdVkzUnBiMjRnZEhsd1pTQmhibVFnWTJGdUlIUm9jbTkzSUdOdmJtWjFjMmx1WnlCbGNuSnZjbk11WEc0Z0lDQWdMeThnVjJVZ1pHOXVKM1FnZDJGdWRDQmxlR05sY0hScGIyNGdZbVZvWVhacGIzSWdkRzhnWkdsbVptVnlJR0psZEhkbFpXNGdaR1YySUdGdVpDQndjbTlrTGx4dUlDQWdJQzh2SUNoU1pXNWtaWEpwYm1jZ2QybHNiQ0IwYUhKdmR5QjNhWFJvSUdFZ2FHVnNjR1oxYkNCdFpYTnpZV2RsSUdGdVpDQmhjeUJ6YjI5dUlHRnpJSFJvWlNCMGVYQmxJR2x6WEc0Z0lDQWdMeThnWm1sNFpXUXNJSFJvWlNCclpYa2dkMkZ5Ym1sdVozTWdkMmxzYkNCaGNIQmxZWEl1S1Z4dVhHNWNiaUFnSUNCcFppQW9kbUZzYVdSVWVYQmxLU0I3WEc0Z0lDQWdJQ0IyWVhJZ1kyaHBiR1J5Wlc0Z1BTQndjbTl3Y3k1amFHbHNaSEpsYmp0Y2JseHVJQ0FnSUNBZ2FXWWdLR05vYVd4a2NtVnVJQ0U5UFNCMWJtUmxabWx1WldRcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0dselUzUmhkR2xqUTJocGJHUnlaVzRwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaGphR2xzWkhKbGJpa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvZG1GeUlHa2dQU0F3T3lCcElEd2dZMmhwYkdSeVpXNHViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2FXUmhkR1ZEYUdsc1pFdGxlWE1vWTJocGJHUnlaVzViYVYwc0lIUjVjR1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvVDJKcVpXTjBMbVp5WldWNlpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQlBZbXBsWTNRdVpuSmxaWHBsS0dOb2FXeGtjbVZ1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaWEp5YjNJb0oxSmxZV04wTG1wemVEb2dVM1JoZEdsaklHTm9hV3hrY21WdUlITm9iM1ZzWkNCaGJIZGhlWE1nWW1VZ1lXNGdZWEp5WVhrdUlDY2dLeUFuV1c5MUlHRnlaU0JzYVd0bGJIa2daWGh3YkdsamFYUnNlU0JqWVd4c2FXNW5JRkpsWVdOMExtcHplSE1nYjNJZ1VtVmhZM1F1YW5ONFJFVldMaUFuSUNzZ0oxVnpaU0IwYUdVZ1FtRmlaV3dnZEhKaGJuTm1iM0p0SUdsdWMzUmxZV1F1SnlrN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUhaaGJHbGtZWFJsUTJocGJHUkxaWGx6S0dOb2FXeGtjbVZ1TENCMGVYQmxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoMGVYQmxJRDA5UFNCbGVIQnZjblJ6TGtaeVlXZHRaVzUwS1NCN1hHNGdJQ0FnSUNCMllXeHBaR0YwWlVaeVlXZHRaVzUwVUhKdmNITW9aV3hsYldWdWRDazdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhaaGJHbGtZWFJsVUhKdmNGUjVjR1Z6S0dWc1pXMWxiblFwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQmxiR1Z0Wlc1ME8xeHVJQ0I5WEc1OUlDOHZJRlJvWlhObElIUjNieUJtZFc1amRHbHZibk1nWlhocGMzUWdkRzhnYzNScGJHd2daMlYwSUdOb2FXeGtJSGRoY201cGJtZHpJR2x1SUdSbGRseHVMeThnWlhabGJpQjNhWFJvSUhSb1pTQndjbTlrSUhSeVlXNXpabTl5YlM0Z1ZHaHBjeUJ0WldGdWN5QjBhR0YwSUdwemVFUkZWaUJwY3lCd2RYSmxiSGxjYmk4dklHOXdkQzFwYmlCaVpXaGhkbWx2Y2lCbWIzSWdZbVYwZEdWeUlHMWxjM05oWjJWeklHSjFkQ0IwYUdGMElIZGxJSGR2YmlkMElITjBiM0JjYmk4dklHZHBkbWx1WnlCNWIzVWdkMkZ5Ym1sdVozTWdhV1lnZVc5MUlIVnpaU0J3Y205a2RXTjBhVzl1SUdGd2FYTXVYRzVjYm1aMWJtTjBhVzl1SUdwemVGZHBkR2hXWVd4cFpHRjBhVzl1VTNSaGRHbGpLSFI1Y0dVc0lIQnliM0J6TENCclpYa3BJSHRjYmlBZ2UxeHVJQ0FnSUhKbGRIVnliaUJxYzNoWGFYUm9WbUZzYVdSaGRHbHZiaWgwZVhCbExDQndjbTl3Y3l3Z2EyVjVMQ0IwY25WbEtUdGNiaUFnZlZ4dWZWeHVablZ1WTNScGIyNGdhbk40VjJsMGFGWmhiR2xrWVhScGIyNUVlVzVoYldsaktIUjVjR1VzSUhCeWIzQnpMQ0JyWlhrcElIdGNiaUFnZTF4dUlDQWdJSEpsZEhWeWJpQnFjM2hYYVhSb1ZtRnNhV1JoZEdsdmJpaDBlWEJsTENCd2NtOXdjeXdnYTJWNUxDQm1ZV3h6WlNrN1hHNGdJSDFjYm4xY2JseHVkbUZ5SUdwemVDQTlJQ0JxYzNoWGFYUm9WbUZzYVdSaGRHbHZia1I1Ym1GdGFXTWdPeUF2THlCM1pTQnRZWGtnZDJGdWRDQjBieUJ6Y0dWamFXRnNJR05oYzJVZ2FuTjRjeUJwYm5SbGNtNWhiR3g1SUhSdklIUmhhMlVnWVdSMllXNTBZV2RsSUc5bUlITjBZWFJwWXlCamFHbHNaSEpsYmk1Y2JpOHZJR1p2Y2lCdWIzY2dkMlVnWTJGdUlITm9hWEFnYVdSbGJuUnBZMkZzSUhCeWIyUWdablZ1WTNScGIyNXpYRzVjYm5aaGNpQnFjM2h6SUQwZ0lHcHplRmRwZEdoV1lXeHBaR0YwYVc5dVUzUmhkR2xqSUR0Y2JseHVaWGh3YjNKMGN5NXFjM2dnUFNCcWMzZzdYRzVsZUhCdmNuUnpMbXB6ZUhNZ1BTQnFjM2h6TzF4dUlDQjlLU2dwTzF4dWZWeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QtanN4LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiXFxuXFxuaWYgKGZhbHNlKSB7fSBlbHNlIHtcXG4gIG1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9janMvcmVhY3QtanN4LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QtanN4LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanNcXFwiKTtcXG59XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzSmxZV04wTDJwemVDMXlkVzUwYVcxbExtcHpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSkJRVUZoT3p0QlFVVmlMRWxCUVVrc1MwRkJjVU1zUlVGQlJTeEZRVVV4UXl4RFFVRkRPMEZCUTBZc1JVRkJSU3h6U2tGQmEwVTdRVUZEY0VVaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzSmxZV04wTDJwemVDMXlkVzUwYVcxbExtcHpQekEyWVdNaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lKM1Z6WlNCemRISnBZM1FuTzF4dVhHNXBaaUFvY0hKdlkyVnpjeTVsYm5ZdVRrOUVSVjlGVGxZZ1BUMDlJQ2R3Y205a2RXTjBhVzl1SnlrZ2UxeHVJQ0J0YjJSMWJHVXVaWGh3YjNKMGN5QTlJSEpsY1hWcGNtVW9KeTR2WTJwekwzSmxZV04wTFdwemVDMXlkVzUwYVcxbExuQnliMlIxWTNScGIyNHViV2x1TG1wekp5azdYRzU5SUdWc2MyVWdlMXh1SUNCdGIyUjFiR1V1Wlhod2IzSjBjeUE5SUhKbGNYVnBjbVVvSnk0dlkycHpMM0psWVdOMExXcHplQzF5ZFc1MGFXMWxMbVJsZG1Wc2IzQnRaVzUwTG1wekp5azdYRzU5WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vY2FudmFzLmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2NhbnZhcy5qcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJSb3VnaENhbnZhc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFJvdWdoQ2FudmFzKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZ2VuZXJhdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2dlbmVyYXRvciAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2dlbmVyYXRvci5qc1xcXCIpO1xcblxcbmNsYXNzIFJvdWdoQ2FudmFzIHtcXG4gICAgY29uc3RydWN0b3IoY2FudmFzLCBjb25maWcpIHtcXG4gICAgICAgIHRoaXMuY2FudmFzID0gY2FudmFzO1xcbiAgICAgICAgdGhpcy5jdHggPSB0aGlzLmNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xcbiAgICAgICAgdGhpcy5nZW4gPSBuZXcgX2dlbmVyYXRvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlJvdWdoR2VuZXJhdG9yKGNvbmZpZyk7XFxuICAgIH1cXG4gICAgZHJhdyhkcmF3YWJsZSkge1xcbiAgICAgICAgY29uc3Qgc2V0cyA9IGRyYXdhYmxlLnNldHMgfHwgW107XFxuICAgICAgICBjb25zdCBvID0gZHJhd2FibGUub3B0aW9ucyB8fCB0aGlzLmdldERlZmF1bHRPcHRpb25zKCk7XFxuICAgICAgICBjb25zdCBjdHggPSB0aGlzLmN0eDtcXG4gICAgICAgIGNvbnN0IHByZWNpc2lvbiA9IGRyYXdhYmxlLm9wdGlvbnMuZml4ZWREZWNpbWFsUGxhY2VEaWdpdHM7XFxuICAgICAgICBmb3IgKGNvbnN0IGRyYXdpbmcgb2Ygc2V0cykge1xcbiAgICAgICAgICAgIHN3aXRjaCAoZHJhd2luZy50eXBlKSB7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ3BhdGgnOlxcbiAgICAgICAgICAgICAgICAgICAgY3R4LnNhdmUoKTtcXG4gICAgICAgICAgICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9IG8uc3Ryb2tlID09PSAnbm9uZScgPyAndHJhbnNwYXJlbnQnIDogby5zdHJva2U7XFxuICAgICAgICAgICAgICAgICAgICBjdHgubGluZVdpZHRoID0gby5zdHJva2VXaWR0aDtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChvLnN0cm9rZUxpbmVEYXNoKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnNldExpbmVEYXNoKG8uc3Ryb2tlTGluZURhc2gpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgaWYgKG8uc3Ryb2tlTGluZURhc2hPZmZzZXQpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjdHgubGluZURhc2hPZmZzZXQgPSBvLnN0cm9rZUxpbmVEYXNoT2Zmc2V0O1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZHJhd1RvQ29udGV4dChjdHgsIGRyYXdpbmcsIHByZWNpc2lvbik7XFxuICAgICAgICAgICAgICAgICAgICBjdHgucmVzdG9yZSgpO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ2ZpbGxQYXRoJzoge1xcbiAgICAgICAgICAgICAgICAgICAgY3R4LnNhdmUoKTtcXG4gICAgICAgICAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBvLmZpbGwgfHwgJyc7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxsUnVsZSA9IChkcmF3YWJsZS5zaGFwZSA9PT0gJ2N1cnZlJyB8fCBkcmF3YWJsZS5zaGFwZSA9PT0gJ3BvbHlnb24nIHx8IGRyYXdhYmxlLnNoYXBlID09PSAncGF0aCcpID8gJ2V2ZW5vZGQnIDogJ25vbnplcm8nO1xcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZHJhd1RvQ29udGV4dChjdHgsIGRyYXdpbmcsIHByZWNpc2lvbiwgZmlsbFJ1bGUpO1xcbiAgICAgICAgICAgICAgICAgICAgY3R4LnJlc3RvcmUoKTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGNhc2UgJ2ZpbGxTa2V0Y2gnOlxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxsU2tldGNoKGN0eCwgZHJhd2luZywgbyk7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgZmlsbFNrZXRjaChjdHgsIGRyYXdpbmcsIG8pIHtcXG4gICAgICAgIGxldCBmd2VpZ2h0ID0gby5maWxsV2VpZ2h0O1xcbiAgICAgICAgaWYgKGZ3ZWlnaHQgPCAwKSB7XFxuICAgICAgICAgICAgZndlaWdodCA9IG8uc3Ryb2tlV2lkdGggLyAyO1xcbiAgICAgICAgfVxcbiAgICAgICAgY3R4LnNhdmUoKTtcXG4gICAgICAgIGlmIChvLmZpbGxMaW5lRGFzaCkge1xcbiAgICAgICAgICAgIGN0eC5zZXRMaW5lRGFzaChvLmZpbGxMaW5lRGFzaCk7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoby5maWxsTGluZURhc2hPZmZzZXQpIHtcXG4gICAgICAgICAgICBjdHgubGluZURhc2hPZmZzZXQgPSBvLmZpbGxMaW5lRGFzaE9mZnNldDtcXG4gICAgICAgIH1cXG4gICAgICAgIGN0eC5zdHJva2VTdHlsZSA9IG8uZmlsbCB8fCAnJztcXG4gICAgICAgIGN0eC5saW5lV2lkdGggPSBmd2VpZ2h0O1xcbiAgICAgICAgdGhpcy5fZHJhd1RvQ29udGV4dChjdHgsIGRyYXdpbmcsIG8uZml4ZWREZWNpbWFsUGxhY2VEaWdpdHMpO1xcbiAgICAgICAgY3R4LnJlc3RvcmUoKTtcXG4gICAgfVxcbiAgICBfZHJhd1RvQ29udGV4dChjdHgsIGRyYXdpbmcsIGZpeGVkRGVjaW1hbHMsIHJ1bGUgPSAnbm9uemVybycpIHtcXG4gICAgICAgIGN0eC5iZWdpblBhdGgoKTtcXG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBkcmF3aW5nLm9wcykge1xcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSAoKHR5cGVvZiBmaXhlZERlY2ltYWxzID09PSAnbnVtYmVyJykgJiYgZml4ZWREZWNpbWFscyA+PSAwKSA/IChpdGVtLmRhdGEubWFwKChkKSA9PiArZC50b0ZpeGVkKGZpeGVkRGVjaW1hbHMpKSkgOiBpdGVtLmRhdGE7XFxuICAgICAgICAgICAgc3dpdGNoIChpdGVtLm9wKSB7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ21vdmUnOlxcbiAgICAgICAgICAgICAgICAgICAgY3R4Lm1vdmVUbyhkYXRhWzBdLCBkYXRhWzFdKTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICdiY3VydmVUbyc6XFxuICAgICAgICAgICAgICAgICAgICBjdHguYmV6aWVyQ3VydmVUbyhkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdLCBkYXRhWzNdLCBkYXRhWzRdLCBkYXRhWzVdKTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICdsaW5lVG8nOlxcbiAgICAgICAgICAgICAgICAgICAgY3R4LmxpbmVUbyhkYXRhWzBdLCBkYXRhWzFdKTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChkcmF3aW5nLnR5cGUgPT09ICdmaWxsUGF0aCcpIHtcXG4gICAgICAgICAgICBjdHguZmlsbChydWxlKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgIGN0eC5zdHJva2UoKTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBnZXQgZ2VuZXJhdG9yKCkge1xcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VuO1xcbiAgICB9XFxuICAgIGdldERlZmF1bHRPcHRpb25zKCkge1xcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VuLmRlZmF1bHRPcHRpb25zO1xcbiAgICB9XFxuICAgIGxpbmUoeDEsIHkxLCB4MiwgeTIsIG9wdGlvbnMpIHtcXG4gICAgICAgIGNvbnN0IGQgPSB0aGlzLmdlbi5saW5lKHgxLCB5MSwgeDIsIHkyLCBvcHRpb25zKTtcXG4gICAgICAgIHRoaXMuZHJhdyhkKTtcXG4gICAgICAgIHJldHVybiBkO1xcbiAgICB9XFxuICAgIHJlY3RhbmdsZSh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBvcHRpb25zKSB7XFxuICAgICAgICBjb25zdCBkID0gdGhpcy5nZW4ucmVjdGFuZ2xlKHgsIHksIHdpZHRoLCBoZWlnaHQsIG9wdGlvbnMpO1xcbiAgICAgICAgdGhpcy5kcmF3KGQpO1xcbiAgICAgICAgcmV0dXJuIGQ7XFxuICAgIH1cXG4gICAgZWxsaXBzZSh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBvcHRpb25zKSB7XFxuICAgICAgICBjb25zdCBkID0gdGhpcy5nZW4uZWxsaXBzZSh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBvcHRpb25zKTtcXG4gICAgICAgIHRoaXMuZHJhdyhkKTtcXG4gICAgICAgIHJldHVybiBkO1xcbiAgICB9XFxuICAgIGNpcmNsZSh4LCB5LCBkaWFtZXRlciwgb3B0aW9ucykge1xcbiAgICAgICAgY29uc3QgZCA9IHRoaXMuZ2VuLmNpcmNsZSh4LCB5LCBkaWFtZXRlciwgb3B0aW9ucyk7XFxuICAgICAgICB0aGlzLmRyYXcoZCk7XFxuICAgICAgICByZXR1cm4gZDtcXG4gICAgfVxcbiAgICBsaW5lYXJQYXRoKHBvaW50cywgb3B0aW9ucykge1xcbiAgICAgICAgY29uc3QgZCA9IHRoaXMuZ2VuLmxpbmVhclBhdGgocG9pbnRzLCBvcHRpb25zKTtcXG4gICAgICAgIHRoaXMuZHJhdyhkKTtcXG4gICAgICAgIHJldHVybiBkO1xcbiAgICB9XFxuICAgIHBvbHlnb24ocG9pbnRzLCBvcHRpb25zKSB7XFxuICAgICAgICBjb25zdCBkID0gdGhpcy5nZW4ucG9seWdvbihwb2ludHMsIG9wdGlvbnMpO1xcbiAgICAgICAgdGhpcy5kcmF3KGQpO1xcbiAgICAgICAgcmV0dXJuIGQ7XFxuICAgIH1cXG4gICAgYXJjKHgsIHksIHdpZHRoLCBoZWlnaHQsIHN0YXJ0LCBzdG9wLCBjbG9zZWQgPSBmYWxzZSwgb3B0aW9ucykge1xcbiAgICAgICAgY29uc3QgZCA9IHRoaXMuZ2VuLmFyYyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBzdGFydCwgc3RvcCwgY2xvc2VkLCBvcHRpb25zKTtcXG4gICAgICAgIHRoaXMuZHJhdyhkKTtcXG4gICAgICAgIHJldHVybiBkO1xcbiAgICB9XFxuICAgIGN1cnZlKHBvaW50cywgb3B0aW9ucykge1xcbiAgICAgICAgY29uc3QgZCA9IHRoaXMuZ2VuLmN1cnZlKHBvaW50cywgb3B0aW9ucyk7XFxuICAgICAgICB0aGlzLmRyYXcoZCk7XFxuICAgICAgICByZXR1cm4gZDtcXG4gICAgfVxcbiAgICBwYXRoKGQsIG9wdGlvbnMpIHtcXG4gICAgICAgIGNvbnN0IGRyYXdpbmcgPSB0aGlzLmdlbi5wYXRoKGQsIG9wdGlvbnMpO1xcbiAgICAgICAgdGhpcy5kcmF3KGRyYXdpbmcpO1xcbiAgICAgICAgcmV0dXJuIGRyYXdpbmc7XFxuICAgIH1cXG59XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzSnZkV2RvYW5NdlltbHVMMk5oYm5aaGN5NXFjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3p0QlFVRTJRenRCUVVOMFF6dEJRVU5RTzBGQlEwRTdRVUZEUVR0QlFVTkJMSFZDUVVGMVFpeHpSRUZCWXp0QlFVTnlRenRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU0lzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk4dUxpOXViMlJsWDIxdlpIVnNaWE12Y205MVoyaHFjeTlpYVc0dlkyRnVkbUZ6TG1welAySXhNVEFpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ1VtOTFaMmhIWlc1bGNtRjBiM0lnZlNCbWNtOXRJQ2N1TDJkbGJtVnlZWFJ2Y2ljN1hHNWxlSEJ2Y25RZ1kyeGhjM01nVW05MVoyaERZVzUyWVhNZ2UxeHVJQ0FnSUdOdmJuTjBjblZqZEc5eUtHTmhiblpoY3l3Z1kyOXVabWxuS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WTJGdWRtRnpJRDBnWTJGdWRtRnpPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtTjBlQ0E5SUhSb2FYTXVZMkZ1ZG1GekxtZGxkRU52Ym5SbGVIUW9KekprSnlrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WjJWdUlEMGdibVYzSUZKdmRXZG9SMlZ1WlhKaGRHOXlLR052Ym1acFp5azdYRzRnSUNBZ2ZWeHVJQ0FnSUdSeVlYY29aSEpoZDJGaWJHVXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjMlYwY3lBOUlHUnlZWGRoWW14bExuTmxkSE1nZkh3Z1cxMDdYRzRnSUNBZ0lDQWdJR052Ym5OMElHOGdQU0JrY21GM1lXSnNaUzV2Y0hScGIyNXpJSHg4SUhSb2FYTXVaMlYwUkdWbVlYVnNkRTl3ZEdsdmJuTW9LVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZM1I0SUQwZ2RHaHBjeTVqZEhnN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhCeVpXTnBjMmx2YmlBOUlHUnlZWGRoWW14bExtOXdkR2x2Ym5NdVptbDRaV1JFWldOcGJXRnNVR3hoWTJWRWFXZHBkSE03WEc0Z0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ1pISmhkMmx1WnlCdlppQnpaWFJ6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLR1J5WVhkcGJtY3VkSGx3WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjNCaGRHZ25PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamRIZ3VjMkYyWlNncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqZEhndWMzUnliMnRsVTNSNWJHVWdQU0J2TG5OMGNtOXJaU0E5UFQwZ0oyNXZibVVuSUQ4Z0ozUnlZVzV6Y0dGeVpXNTBKeUE2SUc4dWMzUnliMnRsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpkSGd1YkdsdVpWZHBaSFJvSUQwZ2J5NXpkSEp2YTJWWGFXUjBhRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzh1YzNSeWIydGxUR2x1WlVSaGMyZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR04wZUM1elpYUk1hVzVsUkdGemFDaHZMbk4wY205clpVeHBibVZFWVhOb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYnk1emRISnZhMlZNYVc1bFJHRnphRTltWm5ObGRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM1I0TG14cGJtVkVZWE5vVDJabWMyVjBJRDBnYnk1emRISnZhMlZNYVc1bFJHRnphRTltWm5ObGREdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TGw5a2NtRjNWRzlEYjI1MFpYaDBLR04wZUN3Z1pISmhkMmx1Wnl3Z2NISmxZMmx6YVc5dUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNSNExuSmxjM1J2Y21Vb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblptbHNiRkJoZEdnbk9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOMGVDNXpZWFpsS0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR04wZUM1bWFXeHNVM1I1YkdVZ1BTQnZMbVpwYkd3Z2ZId2dKeWM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdacGJHeFNkV3hsSUQwZ0tHUnlZWGRoWW14bExuTm9ZWEJsSUQwOVBTQW5ZM1Z5ZG1VbklIeDhJR1J5WVhkaFlteGxMbk5vWVhCbElEMDlQU0FuY0c5c2VXZHZiaWNnZkh3Z1pISmhkMkZpYkdVdWMyaGhjR1VnUFQwOUlDZHdZWFJvSnlrZ1B5QW5aWFpsYm05a1pDY2dPaUFuYm05dWVtVnlieWM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WDJSeVlYZFViME52Ym5SbGVIUW9ZM1I0TENCa2NtRjNhVzVuTENCd2NtVmphWE5wYjI0c0lHWnBiR3hTZFd4bEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNSNExuSmxjM1J2Y21Vb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oyWnBiR3hUYTJWMFkyZ25PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVpwYkd4VGEyVjBZMmdvWTNSNExDQmtjbUYzYVc1bkxDQnZLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ1ptbHNiRk5yWlhSamFDaGpkSGdzSUdSeVlYZHBibWNzSUc4cElIdGNiaUFnSUNBZ0lDQWdiR1YwSUdaM1pXbG5hSFFnUFNCdkxtWnBiR3hYWldsbmFIUTdYRzRnSUNBZ0lDQWdJR2xtSUNobWQyVnBaMmgwSUR3Z01Da2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1puZGxhV2RvZENBOUlHOHVjM1J5YjJ0bFYybGtkR2dnTHlBeU8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR04wZUM1ellYWmxLQ2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaHZMbVpwYkd4TWFXNWxSR0Z6YUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTNSNExuTmxkRXhwYm1WRVlYTm9LRzh1Wm1sc2JFeHBibVZFWVhOb0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JwWmlBb2J5NW1hV3hzVEdsdVpVUmhjMmhQWm1aelpYUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTjBlQzVzYVc1bFJHRnphRTltWm5ObGRDQTlJRzh1Wm1sc2JFeHBibVZFWVhOb1QyWm1jMlYwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHTjBlQzV6ZEhKdmEyVlRkSGxzWlNBOUlHOHVabWxzYkNCOGZDQW5KenRjYmlBZ0lDQWdJQ0FnWTNSNExteHBibVZYYVdSMGFDQTlJR1ozWldsbmFIUTdYRzRnSUNBZ0lDQWdJSFJvYVhNdVgyUnlZWGRVYjBOdmJuUmxlSFFvWTNSNExDQmtjbUYzYVc1bkxDQnZMbVpwZUdWa1JHVmphVzFoYkZCc1lXTmxSR2xuYVhSektUdGNiaUFnSUNBZ0lDQWdZM1I0TG5KbGMzUnZjbVVvS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdYMlJ5WVhkVWIwTnZiblJsZUhRb1kzUjRMQ0JrY21GM2FXNW5MQ0JtYVhobFpFUmxZMmx0WVd4ekxDQnlkV3hsSUQwZ0oyNXZibnBsY204bktTQjdYRzRnSUNBZ0lDQWdJR04wZUM1aVpXZHBibEJoZEdnb0tUdGNiaUFnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JwZEdWdElHOW1JR1J5WVhkcGJtY3ViM0J6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmtZWFJoSUQwZ0tDaDBlWEJsYjJZZ1ptbDRaV1JFWldOcGJXRnNjeUE5UFQwZ0oyNTFiV0psY2ljcElDWW1JR1pwZUdWa1JHVmphVzFoYkhNZ1BqMGdNQ2tnUHlBb2FYUmxiUzVrWVhSaExtMWhjQ2dvWkNrZ1BUNGdLMlF1ZEc5R2FYaGxaQ2htYVhobFpFUmxZMmx0WVd4ektTa3BJRG9nYVhSbGJTNWtZWFJoTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjM2RwZEdOb0lDaHBkR1Z0TG05d0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmJXOTJaU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTjBlQzV0YjNabFZHOG9aR0YwWVZzd1hTd2daR0YwWVZzeFhTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0oySmpkWEoyWlZSdkp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNSNExtSmxlbWxsY2tOMWNuWmxWRzhvWkdGMFlWc3dYU3dnWkdGMFlWc3hYU3dnWkdGMFlWc3lYU3dnWkdGMFlWc3pYU3dnWkdGMFlWczBYU3dnWkdGMFlWczFYU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKMnhwYm1WVWJ5YzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOMGVDNXNhVzVsVkc4b1pHRjBZVnN3WFN3Z1pHRjBZVnN4WFNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2hrY21GM2FXNW5MblI1Y0dVZ1BUMDlJQ2RtYVd4c1VHRjBhQ2NwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR04wZUM1bWFXeHNLSEoxYkdVcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTNSNExuTjBjbTlyWlNncE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUdkbGRDQm5aVzVsY21GMGIzSW9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtZGxianRjYmlBZ0lDQjlYRzRnSUNBZ1oyVjBSR1ZtWVhWc2RFOXdkR2x2Ym5Nb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1kbGJpNWtaV1poZFd4MFQzQjBhVzl1Y3p0Y2JpQWdJQ0I5WEc0Z0lDQWdiR2x1WlNoNE1Td2dlVEVzSUhneUxDQjVNaXdnYjNCMGFXOXVjeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JrSUQwZ2RHaHBjeTVuWlc0dWJHbHVaU2g0TVN3Z2VURXNJSGd5TENCNU1pd2diM0IwYVc5dWN5azdYRzRnSUNBZ0lDQWdJSFJvYVhNdVpISmhkeWhrS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdRN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsWTNSaGJtZHNaU2g0TENCNUxDQjNhV1IwYUN3Z2FHVnBaMmgwTENCdmNIUnBiMjV6S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdRZ1BTQjBhR2x6TG1kbGJpNXlaV04wWVc1bmJHVW9lQ3dnZVN3Z2QybGtkR2dzSUdobGFXZG9kQ3dnYjNCMGFXOXVjeWs3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVaSEpoZHloa0tUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHUTdYRzRnSUNBZ2ZWeHVJQ0FnSUdWc2JHbHdjMlVvZUN3Z2VTd2dkMmxrZEdnc0lHaGxhV2RvZEN3Z2IzQjBhVzl1Y3lrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa0lEMGdkR2hwY3k1blpXNHVaV3hzYVhCelpTaDRMQ0I1TENCM2FXUjBhQ3dnYUdWcFoyaDBMQ0J2Y0hScGIyNXpLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWtjbUYzS0dRcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1pEdGNiaUFnSUNCOVhHNGdJQ0FnWTJseVkyeGxLSGdzSUhrc0lHUnBZVzFsZEdWeUxDQnZjSFJwYjI1ektTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUWdQU0IwYUdsekxtZGxiaTVqYVhKamJHVW9lQ3dnZVN3Z1pHbGhiV1YwWlhJc0lHOXdkR2x2Ym5NcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG1SeVlYY29aQ2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJrTzF4dUlDQWdJSDFjYmlBZ0lDQnNhVzVsWVhKUVlYUm9LSEJ2YVc1MGN5d2diM0IwYVc5dWN5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmtJRDBnZEdocGN5NW5aVzR1YkdsdVpXRnlVR0YwYUNod2IybHVkSE1zSUc5d2RHbHZibk1wTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbVJ5WVhjb1pDazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmtPMXh1SUNBZ0lIMWNiaUFnSUNCd2IyeDVaMjl1S0hCdmFXNTBjeXdnYjNCMGFXOXVjeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JrSUQwZ2RHaHBjeTVuWlc0dWNHOXNlV2R2Ymlod2IybHVkSE1zSUc5d2RHbHZibk1wTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbVJ5WVhjb1pDazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmtPMXh1SUNBZ0lIMWNiaUFnSUNCaGNtTW9lQ3dnZVN3Z2QybGtkR2dzSUdobGFXZG9kQ3dnYzNSaGNuUXNJSE4wYjNBc0lHTnNiM05sWkNBOUlHWmhiSE5sTENCdmNIUnBiMjV6S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdRZ1BTQjBhR2x6TG1kbGJpNWhjbU1vZUN3Z2VTd2dkMmxrZEdnc0lHaGxhV2RvZEN3Z2MzUmhjblFzSUhOMGIzQXNJR05zYjNObFpDd2diM0IwYVc5dWN5azdYRzRnSUNBZ0lDQWdJSFJvYVhNdVpISmhkeWhrS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdRN1hHNGdJQ0FnZlZ4dUlDQWdJR04xY25abEtIQnZhVzUwY3l3Z2IzQjBhVzl1Y3lrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa0lEMGdkR2hwY3k1blpXNHVZM1Z5ZG1Vb2NHOXBiblJ6TENCdmNIUnBiMjV6S1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVrY21GM0tHUXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaRHRjYmlBZ0lDQjlYRzRnSUNBZ2NHRjBhQ2hrTENCdmNIUnBiMjV6S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdSeVlYZHBibWNnUFNCMGFHbHpMbWRsYmk1d1lYUm9LR1FzSUc5d2RHbHZibk1wTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbVJ5WVhjb1pISmhkMmx1WnlrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCa2NtRjNhVzVuTzF4dUlDQWdJSDFjYm4xY2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9jYW52YXMuanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9jb3JlLmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9jb3JlLmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJTVkdOU1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFNWR05TKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbmNvbnN0IFNWR05TID0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJztcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDNKdmRXZG9hbk12WW1sdUwyTnZjbVV1YW5NdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096dEJRVUZQSWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUx5NHVMMjV2WkdWZmJXOWtkV3hsY3k5eWIzVm5hR3B6TDJKcGJpOWpiM0psTG1welB6VmxZVFVpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaVpYaHdiM0owSUdOdmJuTjBJRk5XUjA1VElEMGdKMmgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5KenRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2NvcmUuanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL2Rhc2hlZC1maWxsZXIuanNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vZmlsbGVycy9kYXNoZWQtZmlsbGVyLmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkRhc2hlZEZpbGxlclxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIERhc2hlZEZpbGxlcilcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2dlb21ldHJ5X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9nZW9tZXRyeSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2dlb21ldHJ5LmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2FuX2xpbmVfaGFjaHVyZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9zY2FuLWxpbmUtaGFjaHVyZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2ZpbGxlcnMvc2Nhbi1saW5lLWhhY2h1cmUuanNcXFwiKTtcXG5cXG5cXG5jbGFzcyBEYXNoZWRGaWxsZXIge1xcbiAgICBjb25zdHJ1Y3RvcihoZWxwZXIpIHtcXG4gICAgICAgIHRoaXMuaGVscGVyID0gaGVscGVyO1xcbiAgICB9XFxuICAgIGZpbGxQb2x5Z29ucyhwb2x5Z29uTGlzdCwgbykge1xcbiAgICAgICAgY29uc3QgbGluZXMgPSAoMCxfc2Nhbl9saW5lX2hhY2h1cmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5wb2x5Z29uSGFjaHVyZUxpbmVzKShwb2x5Z29uTGlzdCwgbyk7XFxuICAgICAgICByZXR1cm4geyB0eXBlOiAnZmlsbFNrZXRjaCcsIG9wczogdGhpcy5kYXNoZWRMaW5lKGxpbmVzLCBvKSB9O1xcbiAgICB9XFxuICAgIGRhc2hlZExpbmUobGluZXMsIG8pIHtcXG4gICAgICAgIGNvbnN0IG9mZnNldCA9IG8uZGFzaE9mZnNldCA8IDAgPyAoby5oYWNodXJlR2FwIDwgMCA/IChvLnN0cm9rZVdpZHRoICogNCkgOiBvLmhhY2h1cmVHYXApIDogby5kYXNoT2Zmc2V0O1xcbiAgICAgICAgY29uc3QgZ2FwID0gby5kYXNoR2FwIDwgMCA/IChvLmhhY2h1cmVHYXAgPCAwID8gKG8uc3Ryb2tlV2lkdGggKiA0KSA6IG8uaGFjaHVyZUdhcCkgOiBvLmRhc2hHYXA7XFxuICAgICAgICBjb25zdCBvcHMgPSBbXTtcXG4gICAgICAgIGxpbmVzLmZvckVhY2goKGxpbmUpID0+IHtcXG4gICAgICAgICAgICBjb25zdCBsZW5ndGggPSAoMCxfZ2VvbWV0cnlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5saW5lTGVuZ3RoKShsaW5lKTtcXG4gICAgICAgICAgICBjb25zdCBjb3VudCA9IE1hdGguZmxvb3IobGVuZ3RoIC8gKG9mZnNldCArIGdhcCkpO1xcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0T2Zmc2V0ID0gKGxlbmd0aCArIGdhcCAtIChjb3VudCAqIChvZmZzZXQgKyBnYXApKSkgLyAyO1xcbiAgICAgICAgICAgIGxldCBwMSA9IGxpbmVbMF07XFxuICAgICAgICAgICAgbGV0IHAyID0gbGluZVsxXTtcXG4gICAgICAgICAgICBpZiAocDFbMF0gPiBwMlswXSkge1xcbiAgICAgICAgICAgICAgICBwMSA9IGxpbmVbMV07XFxuICAgICAgICAgICAgICAgIHAyID0gbGluZVswXTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY29uc3QgYWxwaGEgPSBNYXRoLmF0YW4oKHAyWzFdIC0gcDFbMV0pIC8gKHAyWzBdIC0gcDFbMF0pKTtcXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgbHN0YXJ0ID0gaSAqIChvZmZzZXQgKyBnYXApO1xcbiAgICAgICAgICAgICAgICBjb25zdCBsZW5kID0gbHN0YXJ0ICsgb2Zmc2V0O1xcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IFtwMVswXSArIChsc3RhcnQgKiBNYXRoLmNvcyhhbHBoYSkpICsgKHN0YXJ0T2Zmc2V0ICogTWF0aC5jb3MoYWxwaGEpKSwgcDFbMV0gKyBsc3RhcnQgKiBNYXRoLnNpbihhbHBoYSkgKyAoc3RhcnRPZmZzZXQgKiBNYXRoLnNpbihhbHBoYSkpXTtcXG4gICAgICAgICAgICAgICAgY29uc3QgZW5kID0gW3AxWzBdICsgKGxlbmQgKiBNYXRoLmNvcyhhbHBoYSkpICsgKHN0YXJ0T2Zmc2V0ICogTWF0aC5jb3MoYWxwaGEpKSwgcDFbMV0gKyAobGVuZCAqIE1hdGguc2luKGFscGhhKSkgKyAoc3RhcnRPZmZzZXQgKiBNYXRoLnNpbihhbHBoYSkpXTtcXG4gICAgICAgICAgICAgICAgb3BzLnB1c2goLi4udGhpcy5oZWxwZXIuZG91YmxlTGluZU9wcyhzdGFydFswXSwgc3RhcnRbMV0sIGVuZFswXSwgZW5kWzFdLCBvKSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgICAgICByZXR1cm4gb3BzO1xcbiAgICB9XFxufVxcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2TGk0dmJtOWtaVjl0YjJSMWJHVnpMM0p2ZFdkb2FuTXZZbWx1TDJacGJHeGxjbk12WkdGemFHVmtMV1pwYkd4bGNpNXFjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN1FVRkJlVU03UVVGRGFVSTdRVUZEYmtRN1FVRkRVRHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEhOQ1FVRnpRaXgxUlVGQmJVSTdRVUZEZWtNc2FVSkJRV2xDTzBGQlEycENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTERKQ1FVRXlRaXh4UkVGQlZUdEJRVU55UXp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN3MFFrRkJORUlzVjBGQlZ6dEJRVU4yUXp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFRRVUZUTzBGQlExUTdRVUZEUVR0QlFVTkJJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl5YjNWbmFHcHpMMkpwYmk5bWFXeHNaWEp6TDJSaGMyaGxaQzFtYVd4c1pYSXVhbk0vWVRnNFl5SmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJzYVc1bFRHVnVaM1JvSUgwZ1puSnZiU0FuTGk0dloyVnZiV1YwY25rbk8xeHVhVzF3YjNKMElIc2djRzlzZVdkdmJraGhZMmgxY21WTWFXNWxjeUI5SUdaeWIyMGdKeTR2YzJOaGJpMXNhVzVsTFdoaFkyaDFjbVVuTzF4dVpYaHdiM0owSUdOc1lYTnpJRVJoYzJobFpFWnBiR3hsY2lCN1hHNGdJQ0FnWTI5dWMzUnlkV04wYjNJb2FHVnNjR1Z5S1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YUdWc2NHVnlJRDBnYUdWc2NHVnlPMXh1SUNBZ0lIMWNiaUFnSUNCbWFXeHNVRzlzZVdkdmJuTW9jRzlzZVdkdmJreHBjM1FzSUc4cElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JHbHVaWE1nUFNCd2IyeDVaMjl1U0dGamFIVnlaVXhwYm1WektIQnZiSGxuYjI1TWFYTjBMQ0J2S1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2RIbHdaVG9nSjJacGJHeFRhMlYwWTJnbkxDQnZjSE02SUhSb2FYTXVaR0Z6YUdWa1RHbHVaU2hzYVc1bGN5d2dieWtnZlR0Y2JpQWdJQ0I5WEc0Z0lDQWdaR0Z6YUdWa1RHbHVaU2hzYVc1bGN5d2dieWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J2Wm1aelpYUWdQU0J2TG1SaGMyaFBabVp6WlhRZ1BDQXdJRDhnS0c4dWFHRmphSFZ5WlVkaGNDQThJREFnUHlBb2J5NXpkSEp2YTJWWGFXUjBhQ0FxSURRcElEb2dieTVvWVdOb2RYSmxSMkZ3S1NBNklHOHVaR0Z6YUU5bVpuTmxkRHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaMkZ3SUQwZ2J5NWtZWE5vUjJGd0lEd2dNQ0EvSUNodkxtaGhZMmgxY21WSFlYQWdQQ0F3SUQ4Z0tHOHVjM1J5YjJ0bFYybGtkR2dnS2lBMEtTQTZJRzh1YUdGamFIVnlaVWRoY0NrZ09pQnZMbVJoYzJoSFlYQTdYRzRnSUNBZ0lDQWdJR052Ym5OMElHOXdjeUE5SUZ0ZE8xeHVJQ0FnSUNBZ0lDQnNhVzVsY3k1bWIzSkZZV05vS0Noc2FXNWxLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnNaVzVuZEdnZ1BTQnNhVzVsVEdWdVozUm9LR3hwYm1VcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdZMjkxYm5RZ1BTQk5ZWFJvTG1ac2IyOXlLR3hsYm1kMGFDQXZJQ2h2Wm1aelpYUWdLeUJuWVhBcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4wWVhKMFQyWm1jMlYwSUQwZ0tHeGxibWQwYUNBcklHZGhjQ0F0SUNoamIzVnVkQ0FxSUNodlptWnpaWFFnS3lCbllYQXBLU2tnTHlBeU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYkdWMElIQXhJRDBnYkdsdVpWc3dYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0J3TWlBOUlHeHBibVZiTVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NERmJNRjBnUGlCd01sc3dYU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhBeElEMGdiR2x1WlZzeFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndNaUE5SUd4cGJtVmJNRjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JoYkhCb1lTQTlJRTFoZEdndVlYUmhiaWdvY0RKYk1WMGdMU0J3TVZzeFhTa2dMeUFvY0RKYk1GMGdMU0J3TVZzd1hTa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQmpiM1Z1ZERzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiSE4wWVhKMElEMGdhU0FxSUNodlptWnpaWFFnS3lCbllYQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHeGxibVFnUFNCc2MzUmhjblFnS3lCdlptWnpaWFE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjM1JoY25RZ1BTQmJjREZiTUYwZ0t5QW9iSE4wWVhKMElDb2dUV0YwYUM1amIzTW9ZV3h3YUdFcEtTQXJJQ2h6ZEdGeWRFOW1abk5sZENBcUlFMWhkR2d1WTI5ektHRnNjR2hoS1Nrc0lIQXhXekZkSUNzZ2JITjBZWEowSUNvZ1RXRjBhQzV6YVc0b1lXeHdhR0VwSUNzZ0tITjBZWEowVDJabWMyVjBJQ29nVFdGMGFDNXphVzRvWVd4d2FHRXBLVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdaVzVrSUQwZ1czQXhXekJkSUNzZ0tHeGxibVFnS2lCTllYUm9MbU52Y3loaGJIQm9ZU2twSUNzZ0tITjBZWEowVDJabWMyVjBJQ29nVFdGMGFDNWpiM01vWVd4d2FHRXBLU3dnY0RGYk1WMGdLeUFvYkdWdVpDQXFJRTFoZEdndWMybHVLR0ZzY0doaEtTa2dLeUFvYzNSaGNuUlBabVp6WlhRZ0tpQk5ZWFJvTG5OcGJpaGhiSEJvWVNrcFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZjSE11Y0hWemFDZ3VMaTUwYUdsekxtaGxiSEJsY2k1a2IzVmliR1ZNYVc1bFQzQnpLSE4wWVhKMFd6QmRMQ0J6ZEdGeWRGc3hYU3dnWlc1a1d6QmRMQ0JsYm1SYk1WMHNJRzhwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdmNITTdYRzRnSUNBZ2ZWeHVmVnh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vZmlsbGVycy9kYXNoZWQtZmlsbGVyLmpzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vZmlsbGVycy9kb3QtZmlsbGVyLmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2ZpbGxlcnMvZG90LWZpbGxlci5qcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJEb3RGaWxsZXJcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBEb3RGaWxsZXIpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9nZW9tZXRyeV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZ2VvbWV0cnkgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9nZW9tZXRyeS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2Nhbl9saW5lX2hhY2h1cmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vc2Nhbi1saW5lLWhhY2h1cmUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL3NjYW4tbGluZS1oYWNodXJlLmpzXFxcIik7XFxuXFxuXFxuY2xhc3MgRG90RmlsbGVyIHtcXG4gICAgY29uc3RydWN0b3IoaGVscGVyKSB7XFxuICAgICAgICB0aGlzLmhlbHBlciA9IGhlbHBlcjtcXG4gICAgfVxcbiAgICBmaWxsUG9seWdvbnMocG9seWdvbkxpc3QsIG8pIHtcXG4gICAgICAgIG8gPSBPYmplY3QuYXNzaWduKHt9LCBvLCB7IGhhY2h1cmVBbmdsZTogMCB9KTtcXG4gICAgICAgIGNvbnN0IGxpbmVzID0gKDAsX3NjYW5fbGluZV9oYWNodXJlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ucG9seWdvbkhhY2h1cmVMaW5lcykocG9seWdvbkxpc3QsIG8pO1xcbiAgICAgICAgcmV0dXJuIHRoaXMuZG90c09uTGluZXMobGluZXMsIG8pO1xcbiAgICB9XFxuICAgIGRvdHNPbkxpbmVzKGxpbmVzLCBvKSB7XFxuICAgICAgICBjb25zdCBvcHMgPSBbXTtcXG4gICAgICAgIGxldCBnYXAgPSBvLmhhY2h1cmVHYXA7XFxuICAgICAgICBpZiAoZ2FwIDwgMCkge1xcbiAgICAgICAgICAgIGdhcCA9IG8uc3Ryb2tlV2lkdGggKiA0O1xcbiAgICAgICAgfVxcbiAgICAgICAgZ2FwID0gTWF0aC5tYXgoZ2FwLCAwLjEpO1xcbiAgICAgICAgbGV0IGZ3ZWlnaHQgPSBvLmZpbGxXZWlnaHQ7XFxuICAgICAgICBpZiAoZndlaWdodCA8IDApIHtcXG4gICAgICAgICAgICBmd2VpZ2h0ID0gby5zdHJva2VXaWR0aCAvIDI7XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBybyA9IGdhcCAvIDQ7XFxuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcXG4gICAgICAgICAgICBjb25zdCBsZW5ndGggPSAoMCxfZ2VvbWV0cnlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5saW5lTGVuZ3RoKShsaW5lKTtcXG4gICAgICAgICAgICBjb25zdCBkbCA9IGxlbmd0aCAvIGdhcDtcXG4gICAgICAgICAgICBjb25zdCBjb3VudCA9IE1hdGguY2VpbChkbCkgLSAxO1xcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IGxlbmd0aCAtIChjb3VudCAqIGdhcCk7XFxuICAgICAgICAgICAgY29uc3QgeCA9ICgobGluZVswXVswXSArIGxpbmVbMV1bMF0pIC8gMikgLSAoZ2FwIC8gNCk7XFxuICAgICAgICAgICAgY29uc3QgbWluWSA9IE1hdGgubWluKGxpbmVbMF1bMV0sIGxpbmVbMV1bMV0pO1xcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xcbiAgICAgICAgICAgICAgICBjb25zdCB5ID0gbWluWSArIG9mZnNldCArIChpICogZ2FwKTtcXG4gICAgICAgICAgICAgICAgY29uc3QgY3ggPSAoeCAtIHJvKSArIE1hdGgucmFuZG9tKCkgKiAyICogcm87XFxuICAgICAgICAgICAgICAgIGNvbnN0IGN5ID0gKHkgLSBybykgKyBNYXRoLnJhbmRvbSgpICogMiAqIHJvO1xcbiAgICAgICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMuaGVscGVyLmVsbGlwc2UoY3gsIGN5LCBmd2VpZ2h0LCBmd2VpZ2h0LCBvKTtcXG4gICAgICAgICAgICAgICAgb3BzLnB1c2goLi4uZWwub3BzKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4geyB0eXBlOiAnZmlsbFNrZXRjaCcsIG9wcyB9O1xcbiAgICB9XFxufVxcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2TGk0dmJtOWtaVjl0YjJSMWJHVnpMM0p2ZFdkb2FuTXZZbWx1TDJacGJHeGxjbk12Wkc5MExXWnBiR3hsY2k1cWN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3UVVGQmVVTTdRVUZEYVVJN1FVRkRia1E3UVVGRFVEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRFJDUVVFMFFpeFBRVUZQTEdsQ1FVRnBRanRCUVVOd1JDeHpRa0ZCYzBJc2RVVkJRVzFDTzBGQlEzcERPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTERKQ1FVRXlRaXh4UkVGQlZUdEJRVU55UXp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzTkVKQlFUUkNMRmRCUVZjN1FVRkRka003UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hwUWtGQmFVSTdRVUZEYWtJN1FVRkRRU0lzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk4dUxpOXViMlJsWDIxdlpIVnNaWE12Y205MVoyaHFjeTlpYVc0dlptbHNiR1Z5Y3k5a2IzUXRabWxzYkdWeUxtcHpQMlJpTjJVaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2diR2x1WlV4bGJtZDBhQ0I5SUdaeWIyMGdKeTR1TDJkbGIyMWxkSEo1Snp0Y2JtbHRjRzl5ZENCN0lIQnZiSGxuYjI1SVlXTm9kWEpsVEdsdVpYTWdmU0JtY205dElDY3VMM05qWVc0dGJHbHVaUzFvWVdOb2RYSmxKenRjYm1WNGNHOXlkQ0JqYkdGemN5QkViM1JHYVd4c1pYSWdlMXh1SUNBZ0lHTnZibk4wY25WamRHOXlLR2hsYkhCbGNpa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxtaGxiSEJsY2lBOUlHaGxiSEJsY2p0Y2JpQWdJQ0I5WEc0Z0lDQWdabWxzYkZCdmJIbG5iMjV6S0hCdmJIbG5iMjVNYVhOMExDQnZLU0I3WEc0Z0lDQWdJQ0FnSUc4Z1BTQlBZbXBsWTNRdVlYTnphV2R1S0h0OUxDQnZMQ0I3SUdoaFkyaDFjbVZCYm1kc1pUb2dNQ0I5S1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYkdsdVpYTWdQU0J3YjJ4NVoyOXVTR0ZqYUhWeVpVeHBibVZ6S0hCdmJIbG5iMjVNYVhOMExDQnZLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVpHOTBjMDl1VEdsdVpYTW9iR2x1WlhNc0lHOHBPMXh1SUNBZ0lIMWNiaUFnSUNCa2IzUnpUMjVNYVc1bGN5aHNhVzVsY3l3Z2J5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnZjSE1nUFNCYlhUdGNiaUFnSUNBZ0lDQWdiR1YwSUdkaGNDQTlJRzh1YUdGamFIVnlaVWRoY0R0Y2JpQWdJQ0FnSUNBZ2FXWWdLR2RoY0NBOElEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHZGhjQ0E5SUc4dWMzUnliMnRsVjJsa2RHZ2dLaUEwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHZGhjQ0E5SUUxaGRHZ3ViV0Y0S0dkaGNDd2dNQzR4S1R0Y2JpQWdJQ0FnSUNBZ2JHVjBJR1ozWldsbmFIUWdQU0J2TG1acGJHeFhaV2xuYUhRN1hHNGdJQ0FnSUNBZ0lHbG1JQ2htZDJWcFoyaDBJRHdnTUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWm5kbGFXZG9kQ0E5SUc4dWMzUnliMnRsVjJsa2RHZ2dMeUF5TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHTnZibk4wSUhKdklEMGdaMkZ3SUM4Z05EdGNiaUFnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JzYVc1bElHOW1JR3hwYm1WektTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JzWlc1bmRHZ2dQU0JzYVc1bFRHVnVaM1JvS0d4cGJtVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWkd3Z1BTQnNaVzVuZEdnZ0x5Qm5ZWEE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCamIzVnVkQ0E5SUUxaGRHZ3VZMlZwYkNoa2JDa2dMU0F4TzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2IyWm1jMlYwSUQwZ2JHVnVaM1JvSUMwZ0tHTnZkVzUwSUNvZ1oyRndLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhnZ1BTQW9LR3hwYm1WYk1GMWJNRjBnS3lCc2FXNWxXekZkV3pCZEtTQXZJRElwSUMwZ0tHZGhjQ0F2SURRcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiV2x1V1NBOUlFMWhkR2d1YldsdUtHeHBibVZiTUYxYk1WMHNJR3hwYm1WYk1WMWJNVjBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JqYjNWdWREc2dhU3NyS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnZVNBOUlHMXBibGtnS3lCdlptWnpaWFFnS3lBb2FTQXFJR2RoY0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWTNnZ1BTQW9lQ0F0SUhKdktTQXJJRTFoZEdndWNtRnVaRzl0S0NrZ0tpQXlJQ29nY204N1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWTNrZ1BTQW9lU0F0SUhKdktTQXJJRTFoZEdndWNtRnVaRzl0S0NrZ0tpQXlJQ29nY204N1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWld3Z1BTQjBhR2x6TG1obGJIQmxjaTVsYkd4cGNITmxLR040TENCamVTd2dabmRsYVdkb2RDd2dabmRsYVdkb2RDd2dieWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjNCekxuQjFjMmdvTGk0dVpXd3ViM0J6S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZXlCMGVYQmxPaUFuWm1sc2JGTnJaWFJqYUNjc0lHOXdjeUI5TzF4dUlDQWdJSDFjYm4xY2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL2RvdC1maWxsZXIuanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL2ZpbGxlci5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2ZpbGxlcnMvZmlsbGVyLmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0RmlsbGVyXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0RmlsbGVyKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGFjaHVyZV9maWxsZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vaGFjaHVyZS1maWxsZXIgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL2hhY2h1cmUtZmlsbGVyLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF96aWd6YWdfZmlsbGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3ppZ3phZy1maWxsZXIgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL3ppZ3phZy1maWxsZXIuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hhdGNoX2ZpbGxlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9oYXRjaC1maWxsZXIgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL2hhdGNoLWZpbGxlci5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZG90X2ZpbGxlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9kb3QtZmlsbGVyICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vZmlsbGVycy9kb3QtZmlsbGVyLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9kYXNoZWRfZmlsbGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2Rhc2hlZC1maWxsZXIgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL2Rhc2hlZC1maWxsZXIuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3ppZ3phZ19saW5lX2ZpbGxlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi96aWd6YWctbGluZS1maWxsZXIgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL3ppZ3phZy1saW5lLWZpbGxlci5qc1xcXCIpO1xcblxcblxcblxcblxcblxcblxcbmNvbnN0IGZpbGxlcnMgPSB7fTtcXG5mdW5jdGlvbiBnZXRGaWxsZXIobywgaGVscGVyKSB7XFxuICAgIGxldCBmaWxsZXJOYW1lID0gby5maWxsU3R5bGUgfHwgJ2hhY2h1cmUnO1xcbiAgICBpZiAoIWZpbGxlcnNbZmlsbGVyTmFtZV0pIHtcXG4gICAgICAgIHN3aXRjaCAoZmlsbGVyTmFtZSkge1xcbiAgICAgICAgICAgIGNhc2UgJ3ppZ3phZyc6XFxuICAgICAgICAgICAgICAgIGlmICghZmlsbGVyc1tmaWxsZXJOYW1lXSkge1xcbiAgICAgICAgICAgICAgICAgICAgZmlsbGVyc1tmaWxsZXJOYW1lXSA9IG5ldyBfemlnemFnX2ZpbGxlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlppZ1phZ0ZpbGxlcihoZWxwZXIpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ2Nyb3NzLWhhdGNoJzpcXG4gICAgICAgICAgICAgICAgaWYgKCFmaWxsZXJzW2ZpbGxlck5hbWVdKSB7XFxuICAgICAgICAgICAgICAgICAgICBmaWxsZXJzW2ZpbGxlck5hbWVdID0gbmV3IF9oYXRjaF9maWxsZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5IYXRjaEZpbGxlcihoZWxwZXIpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ2RvdHMnOlxcbiAgICAgICAgICAgICAgICBpZiAoIWZpbGxlcnNbZmlsbGVyTmFtZV0pIHtcXG4gICAgICAgICAgICAgICAgICAgIGZpbGxlcnNbZmlsbGVyTmFtZV0gPSBuZXcgX2RvdF9maWxsZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5Eb3RGaWxsZXIoaGVscGVyKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICdkYXNoZWQnOlxcbiAgICAgICAgICAgICAgICBpZiAoIWZpbGxlcnNbZmlsbGVyTmFtZV0pIHtcXG4gICAgICAgICAgICAgICAgICAgIGZpbGxlcnNbZmlsbGVyTmFtZV0gPSBuZXcgX2Rhc2hlZF9maWxsZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5EYXNoZWRGaWxsZXIoaGVscGVyKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlICd6aWd6YWctbGluZSc6XFxuICAgICAgICAgICAgICAgIGlmICghZmlsbGVyc1tmaWxsZXJOYW1lXSkge1xcbiAgICAgICAgICAgICAgICAgICAgZmlsbGVyc1tmaWxsZXJOYW1lXSA9IG5ldyBfemlnemFnX2xpbmVfZmlsbGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uWmlnWmFnTGluZUZpbGxlcihoZWxwZXIpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgJ2hhY2h1cmUnOlxcbiAgICAgICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgICAgIGZpbGxlck5hbWUgPSAnaGFjaHVyZSc7XFxuICAgICAgICAgICAgICAgIGlmICghZmlsbGVyc1tmaWxsZXJOYW1lXSkge1xcbiAgICAgICAgICAgICAgICAgICAgZmlsbGVyc1tmaWxsZXJOYW1lXSA9IG5ldyBfaGFjaHVyZV9maWxsZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5IYWNodXJlRmlsbGVyKGhlbHBlcik7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIGZpbGxlcnNbZmlsbGVyTmFtZV07XFxufVxcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2TGk0dmJtOWtaVjl0YjJSMWJHVnpMM0p2ZFdkb2FuTXZZbWx1TDJacGJHeGxjbk12Wm1sc2JHVnlMbXB6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3UVVGQmFVUTdRVUZEUmp0QlFVTkdPMEZCUTBvN1FVRkRUVHRCUVVOVE8wRkJRM2hFTzBGQlEwODdRVUZEVUR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzT0VOQlFUaERMSGRFUVVGWk8wRkJRekZFTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc09FTkJRVGhETEhORVFVRlhPMEZCUTNwRU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNPRU5CUVRoRExHdEVRVUZUTzBGQlEzWkVPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzT0VOQlFUaERMSGRFUVVGWk8wRkJRekZFTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc09FTkJRVGhETEdsRlFVRm5RanRCUVVNNVJEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3c0UTBGQk9FTXNNRVJCUVdFN1FVRkRNMFE3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl5YjNWbmFHcHpMMkpwYmk5bWFXeHNaWEp6TDJacGJHeGxjaTVxY3o5a1pHVmhJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUVoaFkyaDFjbVZHYVd4c1pYSWdmU0JtY205dElDY3VMMmhoWTJoMWNtVXRabWxzYkdWeUp6dGNibWx0Y0c5eWRDQjdJRnBwWjFwaFowWnBiR3hsY2lCOUlHWnliMjBnSnk0dmVtbG5lbUZuTFdacGJHeGxjaWM3WEc1cGJYQnZjblFnZXlCSVlYUmphRVpwYkd4bGNpQjlJR1p5YjIwZ0p5NHZhR0YwWTJndFptbHNiR1Z5Snp0Y2JtbHRjRzl5ZENCN0lFUnZkRVpwYkd4bGNpQjlJR1p5YjIwZ0p5NHZaRzkwTFdacGJHeGxjaWM3WEc1cGJYQnZjblFnZXlCRVlYTm9aV1JHYVd4c1pYSWdmU0JtY205dElDY3VMMlJoYzJobFpDMW1hV3hzWlhJbk8xeHVhVzF3YjNKMElIc2dXbWxuV21GblRHbHVaVVpwYkd4bGNpQjlJR1p5YjIwZ0p5NHZlbWxuZW1GbkxXeHBibVV0Wm1sc2JHVnlKenRjYm1OdmJuTjBJR1pwYkd4bGNuTWdQU0I3ZlR0Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCblpYUkdhV3hzWlhJb2J5d2dhR1ZzY0dWeUtTQjdYRzRnSUNBZ2JHVjBJR1pwYkd4bGNrNWhiV1VnUFNCdkxtWnBiR3hUZEhsc1pTQjhmQ0FuYUdGamFIVnlaU2M3WEc0Z0lDQWdhV1lnS0NGbWFXeHNaWEp6VzJacGJHeGxjazVoYldWZEtTQjdYRzRnSUNBZ0lDQWdJSE4zYVhSamFDQW9abWxzYkdWeVRtRnRaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmVtbG5lbUZuSnpwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV1pwYkd4bGNuTmJabWxzYkdWeVRtRnRaVjBwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdabWxzYkdWeWMxdG1hV3hzWlhKT1lXMWxYU0E5SUc1bGR5QmFhV2RhWVdkR2FXeHNaWElvYUdWc2NHVnlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RqY205emN5MW9ZWFJqYUNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0ZtYVd4c1pYSnpXMlpwYkd4bGNrNWhiV1ZkS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1pwYkd4bGNuTmJabWxzYkdWeVRtRnRaVjBnUFNCdVpYY2dTR0YwWTJoR2FXeHNaWElvYUdWc2NHVnlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RrYjNSekp6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVdacGJHeGxjbk5iWm1sc2JHVnlUbUZ0WlYwcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm1sc2JHVnljMXRtYVd4c1pYSk9ZVzFsWFNBOUlHNWxkeUJFYjNSR2FXeHNaWElvYUdWc2NHVnlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RrWVhOb1pXUW5PbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnaFptbHNiR1Z5YzF0bWFXeHNaWEpPWVcxbFhTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbWFXeHNaWEp6VzJacGJHeGxjazVoYldWZElEMGdibVYzSUVSaGMyaGxaRVpwYkd4bGNpaG9aV3h3WlhJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ0ozcHBaM3BoWnkxc2FXNWxKenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lXWnBiR3hsY25OYlptbHNiR1Z5VG1GdFpWMHBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1ptbHNiR1Z5YzF0bWFXeHNaWEpPWVcxbFhTQTlJRzVsZHlCYWFXZGFZV2RNYVc1bFJtbHNiR1Z5S0dobGJIQmxjaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuYUdGamFIVnlaU2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmtaV1poZFd4ME9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHWnBiR3hsY2s1aGJXVWdQU0FuYUdGamFIVnlaU2M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRm1hV3hzWlhKelcyWnBiR3hsY2s1aGJXVmRLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHWnBiR3hsY25OYlptbHNiR1Z5VG1GdFpWMGdQU0J1WlhjZ1NHRmphSFZ5WlVacGJHeGxjaWhvWld4d1pYSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWm1sc2JHVnljMXRtYVd4c1pYSk9ZVzFsWFR0Y2JuMWNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vZmlsbGVycy9maWxsZXIuanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL2hhY2h1cmUtZmlsbGVyLmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL2hhY2h1cmUtZmlsbGVyLmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJIYWNodXJlRmlsbGVyXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gSGFjaHVyZUZpbGxlcilcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjYW5fbGluZV9oYWNodXJlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3NjYW4tbGluZS1oYWNodXJlICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vZmlsbGVycy9zY2FuLWxpbmUtaGFjaHVyZS5qc1xcXCIpO1xcblxcbmNsYXNzIEhhY2h1cmVGaWxsZXIge1xcbiAgICBjb25zdHJ1Y3RvcihoZWxwZXIpIHtcXG4gICAgICAgIHRoaXMuaGVscGVyID0gaGVscGVyO1xcbiAgICB9XFxuICAgIGZpbGxQb2x5Z29ucyhwb2x5Z29uTGlzdCwgbykge1xcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGxQb2x5Z29ucyhwb2x5Z29uTGlzdCwgbyk7XFxuICAgIH1cXG4gICAgX2ZpbGxQb2x5Z29ucyhwb2x5Z29uTGlzdCwgbykge1xcbiAgICAgICAgY29uc3QgbGluZXMgPSAoMCxfc2Nhbl9saW5lX2hhY2h1cmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5wb2x5Z29uSGFjaHVyZUxpbmVzKShwb2x5Z29uTGlzdCwgbyk7XFxuICAgICAgICBjb25zdCBvcHMgPSB0aGlzLnJlbmRlckxpbmVzKGxpbmVzLCBvKTtcXG4gICAgICAgIHJldHVybiB7IHR5cGU6ICdmaWxsU2tldGNoJywgb3BzIH07XFxuICAgIH1cXG4gICAgcmVuZGVyTGluZXMobGluZXMsIG8pIHtcXG4gICAgICAgIGNvbnN0IG9wcyA9IFtdO1xcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XFxuICAgICAgICAgICAgb3BzLnB1c2goLi4udGhpcy5oZWxwZXIuZG91YmxlTGluZU9wcyhsaW5lWzBdWzBdLCBsaW5lWzBdWzFdLCBsaW5lWzFdWzBdLCBsaW5lWzFdWzFdLCBvKSk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gb3BzO1xcbiAgICB9XFxufVxcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2TGk0dmJtOWtaVjl0YjJSMWJHVnpMM0p2ZFdkb2FuTXZZbWx1TDJacGJHeGxjbk12YUdGamFIVnlaUzFtYVd4c1pYSXVhbk11YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN1FVRkJNRVE3UVVGRGJrUTdRVUZEVUR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEhOQ1FVRnpRaXgxUlVGQmJVSTdRVUZEZWtNN1FVRkRRU3hwUWtGQmFVSTdRVUZEYWtJN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl5YjNWbmFHcHpMMkpwYmk5bWFXeHNaWEp6TDJoaFkyaDFjbVV0Wm1sc2JHVnlMbXB6UDJZeFptRWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnY0c5c2VXZHZia2hoWTJoMWNtVk1hVzVsY3lCOUlHWnliMjBnSnk0dmMyTmhiaTFzYVc1bExXaGhZMmgxY21Vbk8xeHVaWGh3YjNKMElHTnNZWE56SUVoaFkyaDFjbVZHYVd4c1pYSWdlMXh1SUNBZ0lHTnZibk4wY25WamRHOXlLR2hsYkhCbGNpa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxtaGxiSEJsY2lBOUlHaGxiSEJsY2p0Y2JpQWdJQ0I5WEc0Z0lDQWdabWxzYkZCdmJIbG5iMjV6S0hCdmJIbG5iMjVNYVhOMExDQnZLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxsOW1hV3hzVUc5c2VXZHZibk1vY0c5c2VXZHZia3hwYzNRc0lHOHBPMXh1SUNBZ0lIMWNiaUFnSUNCZlptbHNiRkJ2YkhsbmIyNXpLSEJ2YkhsbmIyNU1hWE4wTENCdktTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHeHBibVZ6SUQwZ2NHOXNlV2R2YmtoaFkyaDFjbVZNYVc1bGN5aHdiMng1WjI5dVRHbHpkQ3dnYnlrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc5d2N5QTlJSFJvYVhNdWNtVnVaR1Z5VEdsdVpYTW9iR2x1WlhNc0lHOHBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdleUIwZVhCbE9pQW5abWxzYkZOclpYUmphQ2NzSUc5d2N5QjlPMXh1SUNBZ0lIMWNiaUFnSUNCeVpXNWtaWEpNYVc1bGN5aHNhVzVsY3l3Z2J5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnZjSE1nUFNCYlhUdGNiaUFnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JzYVc1bElHOW1JR3hwYm1WektTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCdmNITXVjSFZ6YUNndUxpNTBhR2x6TG1obGJIQmxjaTVrYjNWaWJHVk1hVzVsVDNCektHeHBibVZiTUYxYk1GMHNJR3hwYm1WYk1GMWJNVjBzSUd4cGJtVmJNVjFiTUYwc0lHeHBibVZiTVYxYk1WMHNJRzhwS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2IzQnpPMXh1SUNBZ0lIMWNibjFjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2ZpbGxlcnMvaGFjaHVyZS1maWxsZXIuanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL2hhdGNoLWZpbGxlci5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2ZpbGxlcnMvaGF0Y2gtZmlsbGVyLmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiSGF0Y2hGaWxsZXJcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBIYXRjaEZpbGxlcilcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hhY2h1cmVfZmlsbGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2hhY2h1cmUtZmlsbGVyICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vZmlsbGVycy9oYWNodXJlLWZpbGxlci5qc1xcXCIpO1xcblxcbmNsYXNzIEhhdGNoRmlsbGVyIGV4dGVuZHMgX2hhY2h1cmVfZmlsbGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uSGFjaHVyZUZpbGxlciB7XFxuICAgIGZpbGxQb2x5Z29ucyhwb2x5Z29uTGlzdCwgbykge1xcbiAgICAgICAgY29uc3Qgc2V0ID0gdGhpcy5fZmlsbFBvbHlnb25zKHBvbHlnb25MaXN0LCBvKTtcXG4gICAgICAgIGNvbnN0IG8yID0gT2JqZWN0LmFzc2lnbih7fSwgbywgeyBoYWNodXJlQW5nbGU6IG8uaGFjaHVyZUFuZ2xlICsgOTAgfSk7XFxuICAgICAgICBjb25zdCBzZXQyID0gdGhpcy5fZmlsbFBvbHlnb25zKHBvbHlnb25MaXN0LCBvMik7XFxuICAgICAgICBzZXQub3BzID0gc2V0Lm9wcy5jb25jYXQoc2V0Mi5vcHMpO1xcbiAgICAgICAgcmV0dXJuIHNldDtcXG4gICAgfVxcbn1cXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDNKdmRXZG9hbk12WW1sdUwyWnBiR3hsY25NdmFHRjBZMmd0Wm1sc2JHVnlMbXB6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN08wRkJRV2xFTzBGQlF6RkRMREJDUVVFd1Fpd3dSRUZCWVR0QlFVTTVRenRCUVVOQk8wRkJRMEVzYlVOQlFXMURMRTlCUVU4c2JVTkJRVzFETzBGQlF6ZEZPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVpTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDNKdmRXZG9hbk12WW1sdUwyWnBiR3hsY25NdmFHRjBZMmd0Wm1sc2JHVnlMbXB6UDJJd09Ua2lYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnU0dGamFIVnlaVVpwYkd4bGNpQjlJR1p5YjIwZ0p5NHZhR0ZqYUhWeVpTMW1hV3hzWlhJbk8xeHVaWGh3YjNKMElHTnNZWE56SUVoaGRHTm9SbWxzYkdWeUlHVjRkR1Z1WkhNZ1NHRmphSFZ5WlVacGJHeGxjaUI3WEc0Z0lDQWdabWxzYkZCdmJIbG5iMjV6S0hCdmJIbG5iMjVNYVhOMExDQnZLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE5sZENBOUlIUm9hWE11WDJacGJHeFFiMng1WjI5dWN5aHdiMng1WjI5dVRHbHpkQ3dnYnlrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc4eUlEMGdUMkpxWldOMExtRnpjMmxuYmloN2ZTd2dieXdnZXlCb1lXTm9kWEpsUVc1bmJHVTZJRzh1YUdGamFIVnlaVUZ1WjJ4bElDc2dPVEFnZlNrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhObGRESWdQU0IwYUdsekxsOW1hV3hzVUc5c2VXZHZibk1vY0c5c2VXZHZia3hwYzNRc0lHOHlLVHRjYmlBZ0lDQWdJQ0FnYzJWMExtOXdjeUE5SUhObGRDNXZjSE11WTI5dVkyRjBLSE5sZERJdWIzQnpLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSE5sZER0Y2JpQWdJQ0I5WEc1OVhHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL2hhdGNoLWZpbGxlci5qc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2ZpbGxlcnMvc2Nhbi1saW5lLWhhY2h1cmUuanNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2ZpbGxlcnMvc2Nhbi1saW5lLWhhY2h1cmUuanMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInBvbHlnb25IYWNodXJlTGluZXNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBwb2x5Z29uSGFjaHVyZUxpbmVzKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZ2VvbWV0cnlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2dlb21ldHJ5ICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vZ2VvbWV0cnkuanNcXFwiKTtcXG5cXG5mdW5jdGlvbiBwb2x5Z29uSGFjaHVyZUxpbmVzKHBvbHlnb25MaXN0LCBvKSB7XFxuICAgIGNvbnN0IGFuZ2xlID0gby5oYWNodXJlQW5nbGUgKyA5MDtcXG4gICAgbGV0IGdhcCA9IG8uaGFjaHVyZUdhcDtcXG4gICAgaWYgKGdhcCA8IDApIHtcXG4gICAgICAgIGdhcCA9IG8uc3Ryb2tlV2lkdGggKiA0O1xcbiAgICB9XFxuICAgIGdhcCA9IE1hdGgubWF4KGdhcCwgMC4xKTtcXG4gICAgY29uc3Qgcm90YXRpb25DZW50ZXIgPSBbMCwgMF07XFxuICAgIGlmIChhbmdsZSkge1xcbiAgICAgICAgZm9yIChjb25zdCBwb2x5Z29uIG9mIHBvbHlnb25MaXN0KSB7XFxuICAgICAgICAgICAgKDAsX2dlb21ldHJ5X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucm90YXRlUG9pbnRzKShwb2x5Z29uLCByb3RhdGlvbkNlbnRlciwgYW5nbGUpO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIGNvbnN0IGxpbmVzID0gc3RyYWlnaHRIYWNodXJlTGluZXMocG9seWdvbkxpc3QsIGdhcCk7XFxuICAgIGlmIChhbmdsZSkge1xcbiAgICAgICAgZm9yIChjb25zdCBwb2x5Z29uIG9mIHBvbHlnb25MaXN0KSB7XFxuICAgICAgICAgICAgKDAsX2dlb21ldHJ5X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucm90YXRlUG9pbnRzKShwb2x5Z29uLCByb3RhdGlvbkNlbnRlciwgLWFuZ2xlKTtcXG4gICAgICAgIH1cXG4gICAgICAgICgwLF9nZW9tZXRyeV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJvdGF0ZUxpbmVzKShsaW5lcywgcm90YXRpb25DZW50ZXIsIC1hbmdsZSk7XFxuICAgIH1cXG4gICAgcmV0dXJuIGxpbmVzO1xcbn1cXG5mdW5jdGlvbiBzdHJhaWdodEhhY2h1cmVMaW5lcyhwb2x5Z29uTGlzdCwgZ2FwKSB7XFxuICAgIGNvbnN0IHZlcnRleEFycmF5ID0gW107XFxuICAgIGZvciAoY29uc3QgcG9seWdvbiBvZiBwb2x5Z29uTGlzdCkge1xcbiAgICAgICAgY29uc3QgdmVydGljZXMgPSBbLi4ucG9seWdvbl07XFxuICAgICAgICBpZiAodmVydGljZXNbMF0uam9pbignLCcpICE9PSB2ZXJ0aWNlc1t2ZXJ0aWNlcy5sZW5ndGggLSAxXS5qb2luKCcsJykpIHtcXG4gICAgICAgICAgICB2ZXJ0aWNlcy5wdXNoKFt2ZXJ0aWNlc1swXVswXSwgdmVydGljZXNbMF1bMV1dKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmICh2ZXJ0aWNlcy5sZW5ndGggPiAyKSB7XFxuICAgICAgICAgICAgdmVydGV4QXJyYXkucHVzaCh2ZXJ0aWNlcyk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgY29uc3QgbGluZXMgPSBbXTtcXG4gICAgZ2FwID0gTWF0aC5tYXgoZ2FwLCAwLjEpO1xcbiAgICAvLyBDcmVhdGUgc29ydGVkIGVkZ2VzIHRhYmxlXFxuICAgIGNvbnN0IGVkZ2VzID0gW107XFxuICAgIGZvciAoY29uc3QgdmVydGljZXMgb2YgdmVydGV4QXJyYXkpIHtcXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmVydGljZXMubGVuZ3RoIC0gMTsgaSsrKSB7XFxuICAgICAgICAgICAgY29uc3QgcDEgPSB2ZXJ0aWNlc1tpXTtcXG4gICAgICAgICAgICBjb25zdCBwMiA9IHZlcnRpY2VzW2kgKyAxXTtcXG4gICAgICAgICAgICBpZiAocDFbMV0gIT09IHAyWzFdKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHltaW4gPSBNYXRoLm1pbihwMVsxXSwgcDJbMV0pO1xcbiAgICAgICAgICAgICAgICBlZGdlcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHltaW4sXFxuICAgICAgICAgICAgICAgICAgICB5bWF4OiBNYXRoLm1heChwMVsxXSwgcDJbMV0pLFxcbiAgICAgICAgICAgICAgICAgICAgeDogeW1pbiA9PT0gcDFbMV0gPyBwMVswXSA6IHAyWzBdLFxcbiAgICAgICAgICAgICAgICAgICAgaXNsb3BlOiAocDJbMF0gLSBwMVswXSkgLyAocDJbMV0gLSBwMVsxXSksXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBlZGdlcy5zb3J0KChlMSwgZTIpID0+IHtcXG4gICAgICAgIGlmIChlMS55bWluIDwgZTIueW1pbikge1xcbiAgICAgICAgICAgIHJldHVybiAtMTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChlMS55bWluID4gZTIueW1pbikge1xcbiAgICAgICAgICAgIHJldHVybiAxO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKGUxLnggPCBlMi54KSB7XFxuICAgICAgICAgICAgcmV0dXJuIC0xO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKGUxLnggPiBlMi54KSB7XFxuICAgICAgICAgICAgcmV0dXJuIDE7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoZTEueW1heCA9PT0gZTIueW1heCkge1xcbiAgICAgICAgICAgIHJldHVybiAwO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIChlMS55bWF4IC0gZTIueW1heCkgLyBNYXRoLmFicygoZTEueW1heCAtIGUyLnltYXgpKTtcXG4gICAgfSk7XFxuICAgIGlmICghZWRnZXMubGVuZ3RoKSB7XFxuICAgICAgICByZXR1cm4gbGluZXM7XFxuICAgIH1cXG4gICAgLy8gU3RhcnQgc2Nhbm5pbmdcXG4gICAgbGV0IGFjdGl2ZUVkZ2VzID0gW107XFxuICAgIGxldCB5ID0gZWRnZXNbMF0ueW1pbjtcXG4gICAgd2hpbGUgKGFjdGl2ZUVkZ2VzLmxlbmd0aCB8fCBlZGdlcy5sZW5ndGgpIHtcXG4gICAgICAgIGlmIChlZGdlcy5sZW5ndGgpIHtcXG4gICAgICAgICAgICBsZXQgaXggPSAtMTtcXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVkZ2VzLmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICAgICAgICAgIGlmIChlZGdlc1tpXS55bWluID4geSkge1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaXggPSBpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjb25zdCByZW1vdmVkID0gZWRnZXMuc3BsaWNlKDAsIGl4ICsgMSk7XFxuICAgICAgICAgICAgcmVtb3ZlZC5mb3JFYWNoKChlZGdlKSA9PiB7XFxuICAgICAgICAgICAgICAgIGFjdGl2ZUVkZ2VzLnB1c2goeyBzOiB5LCBlZGdlIH0pO1xcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfVxcbiAgICAgICAgYWN0aXZlRWRnZXMgPSBhY3RpdmVFZGdlcy5maWx0ZXIoKGFlKSA9PiB7XFxuICAgICAgICAgICAgaWYgKGFlLmVkZ2UueW1heCA8PSB5KSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgICB9KTtcXG4gICAgICAgIGFjdGl2ZUVkZ2VzLnNvcnQoKGFlMSwgYWUyKSA9PiB7XFxuICAgICAgICAgICAgaWYgKGFlMS5lZGdlLnggPT09IGFlMi5lZGdlLngpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiAoYWUxLmVkZ2UueCAtIGFlMi5lZGdlLngpIC8gTWF0aC5hYnMoKGFlMS5lZGdlLnggLSBhZTIuZWRnZS54KSk7XFxuICAgICAgICB9KTtcXG4gICAgICAgIC8vIGZpbGwgYmV0d2VlbiB0aGUgZWRnZXNcXG4gICAgICAgIGlmIChhY3RpdmVFZGdlcy5sZW5ndGggPiAxKSB7XFxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhY3RpdmVFZGdlcy5sZW5ndGg7IGkgPSBpICsgMikge1xcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0aSA9IGkgKyAxO1xcbiAgICAgICAgICAgICAgICBpZiAobmV4dGkgPj0gYWN0aXZlRWRnZXMubGVuZ3RoKSB7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBjb25zdCBjZSA9IGFjdGl2ZUVkZ2VzW2ldLmVkZ2U7XFxuICAgICAgICAgICAgICAgIGNvbnN0IG5lID0gYWN0aXZlRWRnZXNbbmV4dGldLmVkZ2U7XFxuICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goW1xcbiAgICAgICAgICAgICAgICAgICAgW01hdGgucm91bmQoY2UueCksIHldLFxcbiAgICAgICAgICAgICAgICAgICAgW01hdGgucm91bmQobmUueCksIHldLFxcbiAgICAgICAgICAgICAgICBdKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICB5ICs9IGdhcDtcXG4gICAgICAgIGFjdGl2ZUVkZ2VzLmZvckVhY2goKGFlKSA9PiB7XFxuICAgICAgICAgICAgYWUuZWRnZS54ID0gYWUuZWRnZS54ICsgKGdhcCAqIGFlLmVkZ2UuaXNsb3BlKTtcXG4gICAgICAgIH0pO1xcbiAgICB9XFxuICAgIHJldHVybiBsaW5lcztcXG59XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzSnZkV2RvYW5NdlltbHVMMlpwYkd4bGNuTXZjMk5oYmkxc2FXNWxMV2hoWTJoMWNtVXVhbk11YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN1FVRkJkMFE3UVVGRGFrUTdRVUZEVUR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4WlFVRlpMSFZFUVVGWk8wRkJRM2hDTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3haUVVGWkxIVkVRVUZaTzBGQlEzaENPMEZCUTBFc1VVRkJVU3h6UkVGQlZ6dEJRVU51UWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMSGRDUVVGM1FpeDVRa0ZCZVVJN1FVRkRha1E3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzYVVKQlFXbENPMEZCUTJwQ08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeExRVUZMTzBGQlEwdzdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNORUpCUVRSQ0xHdENRVUZyUWp0QlFVTTVRenRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRzFEUVVGdFF5eFpRVUZaTzBGQlF5OURMR0ZCUVdFN1FVRkRZanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4VFFVRlRPMEZCUTFRN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEZOQlFWTTdRVUZEVkR0QlFVTkJPMEZCUTBFc05FSkJRVFJDTEhkQ1FVRjNRanRCUVVOd1JEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hUUVVGVE8wRkJRMVE3UVVGRFFUdEJRVU5CSWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUx5NHVMMjV2WkdWZmJXOWtkV3hsY3k5eWIzVm5hR3B6TDJKcGJpOW1hV3hzWlhKekwzTmpZVzR0YkdsdVpTMW9ZV05vZFhKbExtcHpQekEwWVRFaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2djbTkwWVhSbFVHOXBiblJ6TENCeWIzUmhkR1ZNYVc1bGN5QjlJR1p5YjIwZ0p5NHVMMmRsYjIxbGRISjVKenRjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ3YjJ4NVoyOXVTR0ZqYUhWeVpVeHBibVZ6S0hCdmJIbG5iMjVNYVhOMExDQnZLU0I3WEc0Z0lDQWdZMjl1YzNRZ1lXNW5iR1VnUFNCdkxtaGhZMmgxY21WQmJtZHNaU0FySURrd08xeHVJQ0FnSUd4bGRDQm5ZWEFnUFNCdkxtaGhZMmgxY21WSFlYQTdYRzRnSUNBZ2FXWWdLR2RoY0NBOElEQXBJSHRjYmlBZ0lDQWdJQ0FnWjJGd0lEMGdieTV6ZEhKdmEyVlhhV1IwYUNBcUlEUTdYRzRnSUNBZ2ZWeHVJQ0FnSUdkaGNDQTlJRTFoZEdndWJXRjRLR2RoY0N3Z01DNHhLVHRjYmlBZ0lDQmpiMjV6ZENCeWIzUmhkR2x2YmtObGJuUmxjaUE5SUZzd0xDQXdYVHRjYmlBZ0lDQnBaaUFvWVc1bmJHVXBJSHRjYmlBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCd2IyeDVaMjl1SUc5bUlIQnZiSGxuYjI1TWFYTjBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnliM1JoZEdWUWIybHVkSE1vY0c5c2VXZHZiaXdnY205MFlYUnBiMjVEWlc1MFpYSXNJR0Z1WjJ4bEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCamIyNXpkQ0JzYVc1bGN5QTlJSE4wY21GcFoyaDBTR0ZqYUhWeVpVeHBibVZ6S0hCdmJIbG5iMjVNYVhOMExDQm5ZWEFwTzF4dUlDQWdJR2xtSUNoaGJtZHNaU2tnZTF4dUlDQWdJQ0FnSUNCbWIzSWdLR052Ym5OMElIQnZiSGxuYjI0Z2IyWWdjRzlzZVdkdmJreHBjM1FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEp2ZEdGMFpWQnZhVzUwY3lod2IyeDVaMjl1TENCeWIzUmhkR2x2YmtObGJuUmxjaXdnTFdGdVoyeGxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeWIzUmhkR1ZNYVc1bGN5aHNhVzVsY3l3Z2NtOTBZWFJwYjI1RFpXNTBaWElzSUMxaGJtZHNaU2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCc2FXNWxjenRjYm4xY2JtWjFibU4wYVc5dUlITjBjbUZwWjJoMFNHRmphSFZ5WlV4cGJtVnpLSEJ2YkhsbmIyNU1hWE4wTENCbllYQXBJSHRjYmlBZ0lDQmpiMjV6ZENCMlpYSjBaWGhCY25KaGVTQTlJRnRkTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnY0c5c2VXZHZiaUJ2WmlCd2IyeDVaMjl1VEdsemRDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjJaWEowYVdObGN5QTlJRnN1TGk1d2IyeDVaMjl1WFR0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFpsY25ScFkyVnpXekJkTG1wdmFXNG9KeXduS1NBaFBUMGdkbVZ5ZEdsalpYTmJkbVZ5ZEdsalpYTXViR1Z1WjNSb0lDMGdNVjB1YW05cGJpZ25MQ2NwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyWlhKMGFXTmxjeTV3ZFhOb0tGdDJaWEowYVdObGMxc3dYVnN3WFN3Z2RtVnlkR2xqWlhOYk1GMWJNVjFkS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnBaaUFvZG1WeWRHbGpaWE11YkdWdVozUm9JRDRnTWlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1WeWRHVjRRWEp5WVhrdWNIVnphQ2gyWlhKMGFXTmxjeWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ2JHbHVaWE1nUFNCYlhUdGNiaUFnSUNCbllYQWdQU0JOWVhSb0xtMWhlQ2huWVhBc0lEQXVNU2s3WEc0Z0lDQWdMeThnUTNKbFlYUmxJSE52Y25SbFpDQmxaR2RsY3lCMFlXSnNaVnh1SUNBZ0lHTnZibk4wSUdWa1oyVnpJRDBnVzEwN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCMlpYSjBhV05sY3lCdlppQjJaWEowWlhoQmNuSmhlU2tnZTF4dUlDQWdJQ0FnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIWmxjblJwWTJWekxteGxibWQwYUNBdElERTdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjREVnUFNCMlpYSjBhV05sYzF0cFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSEF5SUQwZ2RtVnlkR2xqWlhOYmFTQXJJREZkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hBeFd6RmRJQ0U5UFNCd01sc3hYU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSGx0YVc0Z1BTQk5ZWFJvTG0xcGJpaHdNVnN4WFN3Z2NESmJNVjBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWa1oyVnpMbkIxYzJnb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I1YldsdUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I1YldGNE9pQk5ZWFJvTG0xaGVDaHdNVnN4WFN3Z2NESmJNVjBwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjRPaUI1YldsdUlEMDlQU0J3TVZzeFhTQS9JSEF4V3pCZElEb2djREpiTUYwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x6Ykc5d1pUb2dLSEF5V3pCZElDMGdjREZiTUYwcElDOGdLSEF5V3pGZElDMGdjREZiTVYwcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUdWa1oyVnpMbk52Y25Rb0tHVXhMQ0JsTWlrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JwWmlBb1pURXVlVzFwYmlBOElHVXlMbmx0YVc0cElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUF0TVR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnBaaUFvWlRFdWVXMXBiaUErSUdVeUxubHRhVzRwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQXhPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaGxNUzU0SUR3Z1pUSXVlQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDMHhPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaGxNUzU0SUQ0Z1pUSXVlQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlERTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tHVXhMbmx0WVhnZ1BUMDlJR1V5TG5sdFlYZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBd08xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQW9aVEV1ZVcxaGVDQXRJR1V5TG5sdFlYZ3BJQzhnVFdGMGFDNWhZbk1vS0dVeExubHRZWGdnTFNCbE1pNTViV0Y0S1NrN1hHNGdJQ0FnZlNrN1hHNGdJQ0FnYVdZZ0tDRmxaR2RsY3k1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUd4cGJtVnpPMXh1SUNBZ0lIMWNiaUFnSUNBdkx5QlRkR0Z5ZENCelkyRnVibWx1WjF4dUlDQWdJR3hsZENCaFkzUnBkbVZGWkdkbGN5QTlJRnRkTzF4dUlDQWdJR3hsZENCNUlEMGdaV1JuWlhOYk1GMHVlVzFwYmp0Y2JpQWdJQ0IzYUdsc1pTQW9ZV04wYVhabFJXUm5aWE11YkdWdVozUm9JSHg4SUdWa1oyVnpMbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb1pXUm5aWE11YkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnNaWFFnYVhnZ1BTQXRNVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2daV1JuWlhNdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1pXUm5aWE5iYVYwdWVXMXBiaUErSUhrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2w0SUQwZ2FUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElISmxiVzkyWldRZ1BTQmxaR2RsY3k1emNHeHBZMlVvTUN3Z2FYZ2dLeUF4S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsYlc5MlpXUXVabTl5UldGamFDZ29aV1JuWlNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0ZqZEdsMlpVVmtaMlZ6TG5CMWMyZ29leUJ6T2lCNUxDQmxaR2RsSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdZV04wYVhabFJXUm5aWE1nUFNCaFkzUnBkbVZGWkdkbGN5NW1hV3gwWlhJb0tHRmxLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1lXVXVaV1JuWlM1NWJXRjRJRHc5SUhrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUdGamRHbDJaVVZrWjJWekxuTnZjblFvS0dGbE1Td2dZV1V5S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZV1V4TG1Wa1oyVXVlQ0E5UFQwZ1lXVXlMbVZrWjJVdWVDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQXdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2hoWlRFdVpXUm5aUzU0SUMwZ1lXVXlMbVZrWjJVdWVDa2dMeUJOWVhSb0xtRmljeWdvWVdVeExtVmtaMlV1ZUNBdElHRmxNaTVsWkdkbExuZ3BLVHRjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lDOHZJR1pwYkd3Z1ltVjBkMlZsYmlCMGFHVWdaV1JuWlhOY2JpQWdJQ0FnSUNBZ2FXWWdLR0ZqZEdsMlpVVmtaMlZ6TG14bGJtZDBhQ0ErSURFcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z1lXTjBhWFpsUldSblpYTXViR1Z1WjNSb095QnBJRDBnYVNBcklESXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnVaWGgwYVNBOUlHa2dLeUF4TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHVaWGgwYVNBK1BTQmhZM1JwZG1WRlpHZGxjeTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR05sSUQwZ1lXTjBhWFpsUldSblpYTmJhVjB1WldSblpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdVpTQTlJR0ZqZEdsMlpVVmtaMlZ6VzI1bGVIUnBYUzVsWkdkbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeHBibVZ6TG5CMWMyZ29XMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCYlRXRjBhQzV5YjNWdVpDaGpaUzU0S1N3Z2VWMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUZ0TllYUm9Mbkp2ZFc1a0tHNWxMbmdwTENCNVhTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmRLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I1SUNzOUlHZGhjRHRjYmlBZ0lDQWdJQ0FnWVdOMGFYWmxSV1JuWlhNdVptOXlSV0ZqYUNnb1lXVXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0ZsTG1Wa1oyVXVlQ0E5SUdGbExtVmtaMlV1ZUNBcklDaG5ZWEFnS2lCaFpTNWxaR2RsTG1semJHOXdaU2s3WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdiR2x1WlhNN1hHNTlYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vZmlsbGVycy9zY2FuLWxpbmUtaGFjaHVyZS5qc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2ZpbGxlcnMvemlnemFnLWZpbGxlci5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL3ppZ3phZy1maWxsZXIuanMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiWmlnWmFnRmlsbGVyXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gWmlnWmFnRmlsbGVyKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGFjaHVyZV9maWxsZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vaGFjaHVyZS1maWxsZXIgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL2hhY2h1cmUtZmlsbGVyLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2FuX2xpbmVfaGFjaHVyZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9zY2FuLWxpbmUtaGFjaHVyZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2ZpbGxlcnMvc2Nhbi1saW5lLWhhY2h1cmUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2dlb21ldHJ5X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9nZW9tZXRyeSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2dlb21ldHJ5LmpzXFxcIik7XFxuXFxuXFxuXFxuY2xhc3MgWmlnWmFnRmlsbGVyIGV4dGVuZHMgX2hhY2h1cmVfZmlsbGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uSGFjaHVyZUZpbGxlciB7XFxuICAgIGZpbGxQb2x5Z29ucyhwb2x5Z29uTGlzdCwgbykge1xcbiAgICAgICAgbGV0IGdhcCA9IG8uaGFjaHVyZUdhcDtcXG4gICAgICAgIGlmIChnYXAgPCAwKSB7XFxuICAgICAgICAgICAgZ2FwID0gby5zdHJva2VXaWR0aCAqIDQ7XFxuICAgICAgICB9XFxuICAgICAgICBnYXAgPSBNYXRoLm1heChnYXAsIDAuMSk7XFxuICAgICAgICBjb25zdCBvMiA9IE9iamVjdC5hc3NpZ24oe30sIG8sIHsgaGFjaHVyZUdhcDogZ2FwIH0pO1xcbiAgICAgICAgY29uc3QgbGluZXMgPSAoMCxfc2Nhbl9saW5lX2hhY2h1cmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5wb2x5Z29uSGFjaHVyZUxpbmVzKShwb2x5Z29uTGlzdCwgbzIpO1xcbiAgICAgICAgY29uc3QgemlnWmFnQW5nbGUgPSAoTWF0aC5QSSAvIDE4MCkgKiBvLmhhY2h1cmVBbmdsZTtcXG4gICAgICAgIGNvbnN0IHppZ3phZ0xpbmVzID0gW107XFxuICAgICAgICBjb25zdCBkZ3ggPSBnYXAgKiAwLjUgKiBNYXRoLmNvcyh6aWdaYWdBbmdsZSk7XFxuICAgICAgICBjb25zdCBkZ3kgPSBnYXAgKiAwLjUgKiBNYXRoLnNpbih6aWdaYWdBbmdsZSk7XFxuICAgICAgICBmb3IgKGNvbnN0IFtwMSwgcDJdIG9mIGxpbmVzKSB7XFxuICAgICAgICAgICAgaWYgKCgwLF9nZW9tZXRyeV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmxpbmVMZW5ndGgpKFtwMSwgcDJdKSkge1xcbiAgICAgICAgICAgICAgICB6aWd6YWdMaW5lcy5wdXNoKFtcXG4gICAgICAgICAgICAgICAgICAgIFtwMVswXSAtIGRneCwgcDFbMV0gKyBkZ3ldLFxcbiAgICAgICAgICAgICAgICAgICAgWy4uLnAyXSxcXG4gICAgICAgICAgICAgICAgXSwgW1xcbiAgICAgICAgICAgICAgICAgICAgW3AxWzBdICsgZGd4LCBwMVsxXSAtIGRneV0sXFxuICAgICAgICAgICAgICAgICAgICBbLi4ucDJdLFxcbiAgICAgICAgICAgICAgICBdKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBvcHMgPSB0aGlzLnJlbmRlckxpbmVzKHppZ3phZ0xpbmVzLCBvKTtcXG4gICAgICAgIHJldHVybiB7IHR5cGU6ICdmaWxsU2tldGNoJywgb3BzIH07XFxuICAgIH1cXG59XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzSnZkV2RvYW5NdlltbHVMMlpwYkd4bGNuTXZlbWxuZW1GbkxXWnBiR3hsY2k1cWN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3TzBGQlFXbEVPMEZCUTFNN1FVRkRha0k3UVVGRGJFTXNNa0pCUVRKQ0xEQkVRVUZoTzBGQlF5OURPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEcxRFFVRnRReXhQUVVGUExHbENRVUZwUWp0QlFVTXpSQ3h6UWtGQmMwSXNkVVZCUVcxQ08wRkJRM3BETzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3huUWtGQlowSXNjVVJCUVZVN1FVRkRNVUk3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeHBRa0ZCYVVJN1FVRkRha0k3UVVGRFFTSXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTh1TGk5dWIyUmxYMjF2WkhWc1pYTXZjbTkxWjJocWN5OWlhVzR2Wm1sc2JHVnljeTk2YVdkNllXY3RabWxzYkdWeUxtcHpQMkkxWVdFaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dTR0ZqYUhWeVpVWnBiR3hsY2lCOUlHWnliMjBnSnk0dmFHRmphSFZ5WlMxbWFXeHNaWEluTzF4dWFXMXdiM0owSUhzZ2NHOXNlV2R2YmtoaFkyaDFjbVZNYVc1bGN5QjlJR1p5YjIwZ0p5NHZjMk5oYmkxc2FXNWxMV2hoWTJoMWNtVW5PMXh1YVcxd2IzSjBJSHNnYkdsdVpVeGxibWQwYUNCOUlHWnliMjBnSnk0dUwyZGxiMjFsZEhKNUp6dGNibVY0Y0c5eWRDQmpiR0Z6Y3lCYWFXZGFZV2RHYVd4c1pYSWdaWGgwWlc1a2N5QklZV05vZFhKbFJtbHNiR1Z5SUh0Y2JpQWdJQ0JtYVd4c1VHOXNlV2R2Ym5Nb2NHOXNlV2R2Ymt4cGMzUXNJRzhwSUh0Y2JpQWdJQ0FnSUNBZ2JHVjBJR2RoY0NBOUlHOHVhR0ZqYUhWeVpVZGhjRHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHZGhjQ0E4SURBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdkaGNDQTlJRzh1YzNSeWIydGxWMmxrZEdnZ0tpQTBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdkaGNDQTlJRTFoZEdndWJXRjRLR2RoY0N3Z01DNHhLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdieklnUFNCUFltcGxZM1F1WVhOemFXZHVLSHQ5TENCdkxDQjdJR2hoWTJoMWNtVkhZWEE2SUdkaGNDQjlLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdiR2x1WlhNZ1BTQndiMng1WjI5dVNHRmphSFZ5WlV4cGJtVnpLSEJ2YkhsbmIyNU1hWE4wTENCdk1pazdYRzRnSUNBZ0lDQWdJR052Ym5OMElIcHBaMXBoWjBGdVoyeGxJRDBnS0UxaGRHZ3VVRWtnTHlBeE9EQXBJQ29nYnk1b1lXTm9kWEpsUVc1bmJHVTdYRzRnSUNBZ0lDQWdJR052Ym5OMElIcHBaM3BoWjB4cGJtVnpJRDBnVzEwN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdSbmVDQTlJR2RoY0NBcUlEQXVOU0FxSUUxaGRHZ3VZMjl6S0hwcFoxcGhaMEZ1WjJ4bEtUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1pHZDVJRDBnWjJGd0lDb2dNQzQxSUNvZ1RXRjBhQzV6YVc0b2VtbG5XbUZuUVc1bmJHVXBPMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUZ0d01Td2djREpkSUc5bUlHeHBibVZ6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2JHbHVaVXhsYm1kMGFDaGJjREVzSUhBeVhTa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I2YVdkNllXZE1hVzVsY3k1d2RYTm9LRnRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1czQXhXekJkSUMwZ1pHZDRMQ0J3TVZzeFhTQXJJR1JuZVYwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRnN1TGk1d01sMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdYU3dnVzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmJjREZiTUYwZ0t5QmtaM2dzSUhBeFd6RmRJQzBnWkdkNVhTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnV3k0dUxuQXlYU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JkS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCamIyNXpkQ0J2Y0hNZ1BTQjBhR2x6TG5KbGJtUmxja3hwYm1WektIcHBaM3BoWjB4cGJtVnpMQ0J2S1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2RIbHdaVG9nSjJacGJHeFRhMlYwWTJnbkxDQnZjSE1nZlR0Y2JpQWdJQ0I5WEc1OVhHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL3ppZ3phZy1maWxsZXIuanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL3ppZ3phZy1saW5lLWZpbGxlci5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2ZpbGxlcnMvemlnemFnLWxpbmUtZmlsbGVyLmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiWmlnWmFnTGluZUZpbGxlclxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFppZ1phZ0xpbmVGaWxsZXIpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9nZW9tZXRyeV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZ2VvbWV0cnkgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9nZW9tZXRyeS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2Nhbl9saW5lX2hhY2h1cmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vc2Nhbi1saW5lLWhhY2h1cmUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9maWxsZXJzL3NjYW4tbGluZS1oYWNodXJlLmpzXFxcIik7XFxuXFxuXFxuY2xhc3MgWmlnWmFnTGluZUZpbGxlciB7XFxuICAgIGNvbnN0cnVjdG9yKGhlbHBlcikge1xcbiAgICAgICAgdGhpcy5oZWxwZXIgPSBoZWxwZXI7XFxuICAgIH1cXG4gICAgZmlsbFBvbHlnb25zKHBvbHlnb25MaXN0LCBvKSB7XFxuICAgICAgICBjb25zdCBnYXAgPSBvLmhhY2h1cmVHYXAgPCAwID8gKG8uc3Ryb2tlV2lkdGggKiA0KSA6IG8uaGFjaHVyZUdhcDtcXG4gICAgICAgIGNvbnN0IHpvID0gby56aWd6YWdPZmZzZXQgPCAwID8gZ2FwIDogby56aWd6YWdPZmZzZXQ7XFxuICAgICAgICBvID0gT2JqZWN0LmFzc2lnbih7fSwgbywgeyBoYWNodXJlR2FwOiBnYXAgKyB6byB9KTtcXG4gICAgICAgIGNvbnN0IGxpbmVzID0gKDAsX3NjYW5fbGluZV9oYWNodXJlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ucG9seWdvbkhhY2h1cmVMaW5lcykocG9seWdvbkxpc3QsIG8pO1xcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogJ2ZpbGxTa2V0Y2gnLCBvcHM6IHRoaXMuemlnemFnTGluZXMobGluZXMsIHpvLCBvKSB9O1xcbiAgICB9XFxuICAgIHppZ3phZ0xpbmVzKGxpbmVzLCB6bywgbykge1xcbiAgICAgICAgY29uc3Qgb3BzID0gW107XFxuICAgICAgICBsaW5lcy5mb3JFYWNoKChsaW5lKSA9PiB7XFxuICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gKDAsX2dlb21ldHJ5X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubGluZUxlbmd0aCkobGluZSk7XFxuICAgICAgICAgICAgY29uc3QgY291bnQgPSBNYXRoLnJvdW5kKGxlbmd0aCAvICgyICogem8pKTtcXG4gICAgICAgICAgICBsZXQgcDEgPSBsaW5lWzBdO1xcbiAgICAgICAgICAgIGxldCBwMiA9IGxpbmVbMV07XFxuICAgICAgICAgICAgaWYgKHAxWzBdID4gcDJbMF0pIHtcXG4gICAgICAgICAgICAgICAgcDEgPSBsaW5lWzFdO1xcbiAgICAgICAgICAgICAgICBwMiA9IGxpbmVbMF07XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnN0IGFscGhhID0gTWF0aC5hdGFuKChwMlsxXSAtIHAxWzFdKSAvIChwMlswXSAtIHAxWzBdKSk7XFxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGxzdGFydCA9IGkgKiAyICogem87XFxuICAgICAgICAgICAgICAgIGNvbnN0IGxlbmQgPSAoaSArIDEpICogMiAqIHpvO1xcbiAgICAgICAgICAgICAgICBjb25zdCBkeiA9IE1hdGguc3FydCgyICogTWF0aC5wb3coem8sIDIpKTtcXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBbcDFbMF0gKyAobHN0YXJ0ICogTWF0aC5jb3MoYWxwaGEpKSwgcDFbMV0gKyBsc3RhcnQgKiBNYXRoLnNpbihhbHBoYSldO1xcbiAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSBbcDFbMF0gKyAobGVuZCAqIE1hdGguY29zKGFscGhhKSksIHAxWzFdICsgKGxlbmQgKiBNYXRoLnNpbihhbHBoYSkpXTtcXG4gICAgICAgICAgICAgICAgY29uc3QgbWlkZGxlID0gW3N0YXJ0WzBdICsgZHogKiBNYXRoLmNvcyhhbHBoYSArIE1hdGguUEkgLyA0KSwgc3RhcnRbMV0gKyBkeiAqIE1hdGguc2luKGFscGhhICsgTWF0aC5QSSAvIDQpXTtcXG4gICAgICAgICAgICAgICAgb3BzLnB1c2goLi4udGhpcy5oZWxwZXIuZG91YmxlTGluZU9wcyhzdGFydFswXSwgc3RhcnRbMV0sIG1pZGRsZVswXSwgbWlkZGxlWzFdLCBvKSwgLi4udGhpcy5oZWxwZXIuZG91YmxlTGluZU9wcyhtaWRkbGVbMF0sIG1pZGRsZVsxXSwgZW5kWzBdLCBlbmRbMV0sIG8pKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KTtcXG4gICAgICAgIHJldHVybiBvcHM7XFxuICAgIH1cXG59XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzSnZkV2RvYW5NdlltbHVMMlpwYkd4bGNuTXZlbWxuZW1GbkxXeHBibVV0Wm1sc2JHVnlMbXB6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096dEJRVUY1UXp0QlFVTnBRanRCUVVOdVJEdEJRVU5RTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxEUkNRVUUwUWl4UFFVRlBMSE5DUVVGelFqdEJRVU42UkN4elFrRkJjMElzZFVWQlFXMUNPMEZCUTNwRExHbENRVUZwUWp0QlFVTnFRanRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTERKQ1FVRXlRaXh4UkVGQlZUdEJRVU55UXp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNORUpCUVRSQ0xGZEJRVmM3UVVGRGRrTTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEZOQlFWTTdRVUZEVkR0QlFVTkJPMEZCUTBFaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzSnZkV2RvYW5NdlltbHVMMlpwYkd4bGNuTXZlbWxuZW1GbkxXeHBibVV0Wm1sc2JHVnlMbXB6UHprd05EVWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnYkdsdVpVeGxibWQwYUNCOUlHWnliMjBnSnk0dUwyZGxiMjFsZEhKNUp6dGNibWx0Y0c5eWRDQjdJSEJ2YkhsbmIyNUlZV05vZFhKbFRHbHVaWE1nZlNCbWNtOXRJQ2N1TDNOallXNHRiR2x1WlMxb1lXTm9kWEpsSnp0Y2JtVjRjRzl5ZENCamJHRnpjeUJhYVdkYVlXZE1hVzVsUm1sc2JHVnlJSHRjYmlBZ0lDQmpiMjV6ZEhKMVkzUnZjaWhvWld4d1pYSXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NW9aV3h3WlhJZ1BTQm9aV3h3WlhJN1hHNGdJQ0FnZlZ4dUlDQWdJR1pwYkd4UWIyeDVaMjl1Y3lod2IyeDVaMjl1VEdsemRDd2dieWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JuWVhBZ1BTQnZMbWhoWTJoMWNtVkhZWEFnUENBd0lEOGdLRzh1YzNSeWIydGxWMmxrZEdnZ0tpQTBLU0E2SUc4dWFHRmphSFZ5WlVkaGNEdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2VtOGdQU0J2TG5wcFozcGhaMDltWm5ObGRDQThJREFnUHlCbllYQWdPaUJ2TG5wcFozcGhaMDltWm5ObGREdGNiaUFnSUNBZ0lDQWdieUE5SUU5aWFtVmpkQzVoYzNOcFoyNG9lMzBzSUc4c0lIc2dhR0ZqYUhWeVpVZGhjRG9nWjJGd0lDc2dlbThnZlNrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUd4cGJtVnpJRDBnY0c5c2VXZHZia2hoWTJoMWNtVk1hVzVsY3lod2IyeDVaMjl1VEdsemRDd2dieWs3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3SUhSNWNHVTZJQ2RtYVd4c1UydGxkR05vSnl3Z2IzQnpPaUIwYUdsekxucHBaM3BoWjB4cGJtVnpLR3hwYm1WekxDQjZieXdnYnlrZ2ZUdGNiaUFnSUNCOVhHNGdJQ0FnZW1sbmVtRm5UR2x1WlhNb2JHbHVaWE1zSUhwdkxDQnZLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzl3Y3lBOUlGdGRPMXh1SUNBZ0lDQWdJQ0JzYVc1bGN5NW1iM0pGWVdOb0tDaHNhVzVsS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JzWlc1bmRHZ2dQU0JzYVc1bFRHVnVaM1JvS0d4cGJtVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWTI5MWJuUWdQU0JOWVhSb0xuSnZkVzVrS0d4bGJtZDBhQ0F2SUNneUlDb2dlbThwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3hsZENCd01TQTlJR3hwYm1WYk1GMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdjRElnUFNCc2FXNWxXekZkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hBeFd6QmRJRDRnY0RKYk1GMHBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3TVNBOUlHeHBibVZiTVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NESWdQU0JzYVc1bFd6QmRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdZV3h3YUdFZ1BTQk5ZWFJvTG1GMFlXNG9LSEF5V3pGZElDMGdjREZiTVYwcElDOGdLSEF5V3pCZElDMGdjREZiTUYwcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z1kyOTFiblE3SUdrckt5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHeHpkR0Z5ZENBOUlHa2dLaUF5SUNvZ2VtODdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JHVnVaQ0E5SUNocElDc2dNU2tnS2lBeUlDb2dlbTg3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdaSG9nUFNCTllYUm9Mbk54Y25Rb01pQXFJRTFoZEdndWNHOTNLSHB2TENBeUtTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2MzUmhjblFnUFNCYmNERmJNRjBnS3lBb2JITjBZWEowSUNvZ1RXRjBhQzVqYjNNb1lXeHdhR0VwS1N3Z2NERmJNVjBnS3lCc2MzUmhjblFnS2lCTllYUm9Mbk5wYmloaGJIQm9ZU2xkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR1Z1WkNBOUlGdHdNVnN3WFNBcklDaHNaVzVrSUNvZ1RXRjBhQzVqYjNNb1lXeHdhR0VwS1N3Z2NERmJNVjBnS3lBb2JHVnVaQ0FxSUUxaGRHZ3VjMmx1S0dGc2NHaGhLU2xkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzFwWkdSc1pTQTlJRnR6ZEdGeWRGc3dYU0FySUdSNklDb2dUV0YwYUM1amIzTW9ZV3h3YUdFZ0t5Qk5ZWFJvTGxCSklDOGdOQ2tzSUhOMFlYSjBXekZkSUNzZ1pIb2dLaUJOWVhSb0xuTnBiaWhoYkhCb1lTQXJJRTFoZEdndVVFa2dMeUEwS1YwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IzQnpMbkIxYzJnb0xpNHVkR2hwY3k1b1pXeHdaWEl1Wkc5MVlteGxUR2x1WlU5d2N5aHpkR0Z5ZEZzd1hTd2djM1JoY25SYk1WMHNJRzFwWkdSc1pWc3dYU3dnYldsa1pHeGxXekZkTENCdktTd2dMaTR1ZEdocGN5NW9aV3h3WlhJdVpHOTFZbXhsVEdsdVpVOXdjeWh0YVdSa2JHVmJNRjBzSUcxcFpHUnNaVnN4WFN3Z1pXNWtXekJkTENCbGJtUmJNVjBzSUc4cEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnZjSE03WEc0Z0lDQWdmVnh1ZlZ4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2ZpbGxlcnMvemlnemFnLWxpbmUtZmlsbGVyLmpzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vZ2VuZXJhdG9yLmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2dlbmVyYXRvci5qcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJSb3VnaEdlbmVyYXRvclxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFJvdWdoR2VuZXJhdG9yKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmVuZGVyZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vcmVuZGVyZXIuanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9yZW5kZXJlci5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbWF0aF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9tYXRoLmpzICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vbWF0aC5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBwb2ludHNfb25fY3VydmVfbGliX2N1cnZlX3RvX2Jlemllcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcG9pbnRzLW9uLWN1cnZlL2xpYi9jdXJ2ZS10by1iZXppZXIuanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9wb2ludHMtb24tY3VydmUvbGliL2N1cnZlLXRvLWJlemllci5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBwb2ludHNfb25fY3VydmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHBvaW50cy1vbi1jdXJ2ZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BvaW50cy1vbi1jdXJ2ZS9saWIvaW5kZXguanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcG9pbnRzX29uX3BhdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHBvaW50cy1vbi1wYXRoICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9pbnRzLW9uLXBhdGgvbGliL2luZGV4LmpzXFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgTk9TID0gJ25vbmUnO1xcbmNsYXNzIFJvdWdoR2VuZXJhdG9yIHtcXG4gICAgY29uc3RydWN0b3IoY29uZmlnKSB7XFxuICAgICAgICB0aGlzLmRlZmF1bHRPcHRpb25zID0ge1xcbiAgICAgICAgICAgIG1heFJhbmRvbW5lc3NPZmZzZXQ6IDIsXFxuICAgICAgICAgICAgcm91Z2huZXNzOiAxLFxcbiAgICAgICAgICAgIGJvd2luZzogMSxcXG4gICAgICAgICAgICBzdHJva2U6ICcjMDAwJyxcXG4gICAgICAgICAgICBzdHJva2VXaWR0aDogMSxcXG4gICAgICAgICAgICBjdXJ2ZVRpZ2h0bmVzczogMCxcXG4gICAgICAgICAgICBjdXJ2ZUZpdHRpbmc6IDAuOTUsXFxuICAgICAgICAgICAgY3VydmVTdGVwQ291bnQ6IDksXFxuICAgICAgICAgICAgZmlsbFN0eWxlOiAnaGFjaHVyZScsXFxuICAgICAgICAgICAgZmlsbFdlaWdodDogLTEsXFxuICAgICAgICAgICAgaGFjaHVyZUFuZ2xlOiAtNDEsXFxuICAgICAgICAgICAgaGFjaHVyZUdhcDogLTEsXFxuICAgICAgICAgICAgZGFzaE9mZnNldDogLTEsXFxuICAgICAgICAgICAgZGFzaEdhcDogLTEsXFxuICAgICAgICAgICAgemlnemFnT2Zmc2V0OiAtMSxcXG4gICAgICAgICAgICBzZWVkOiAwLFxcbiAgICAgICAgICAgIGRpc2FibGVNdWx0aVN0cm9rZTogZmFsc2UsXFxuICAgICAgICAgICAgZGlzYWJsZU11bHRpU3Ryb2tlRmlsbDogZmFsc2UsXFxuICAgICAgICAgICAgcHJlc2VydmVWZXJ0aWNlczogZmFsc2UsXFxuICAgICAgICB9O1xcbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWcgfHwge307XFxuICAgICAgICBpZiAodGhpcy5jb25maWcub3B0aW9ucykge1xcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdE9wdGlvbnMgPSB0aGlzLl9vKHRoaXMuY29uZmlnLm9wdGlvbnMpO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHN0YXRpYyBuZXdTZWVkKCkge1xcbiAgICAgICAgcmV0dXJuICgwLF9tYXRoX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ucmFuZG9tU2VlZCkoKTtcXG4gICAgfVxcbiAgICBfbyhvcHRpb25zKSB7XFxuICAgICAgICByZXR1cm4gb3B0aW9ucyA/IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMpIDogdGhpcy5kZWZhdWx0T3B0aW9ucztcXG4gICAgfVxcbiAgICBfZChzaGFwZSwgc2V0cywgb3B0aW9ucykge1xcbiAgICAgICAgcmV0dXJuIHsgc2hhcGUsIHNldHM6IHNldHMgfHwgW10sIG9wdGlvbnM6IG9wdGlvbnMgfHwgdGhpcy5kZWZhdWx0T3B0aW9ucyB9O1xcbiAgICB9XFxuICAgIGxpbmUoeDEsIHkxLCB4MiwgeTIsIG9wdGlvbnMpIHtcXG4gICAgICAgIGNvbnN0IG8gPSB0aGlzLl9vKG9wdGlvbnMpO1xcbiAgICAgICAgcmV0dXJuIHRoaXMuX2QoJ2xpbmUnLCBbKDAsX3JlbmRlcmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubGluZSkoeDEsIHkxLCB4MiwgeTIsIG8pXSwgbyk7XFxuICAgIH1cXG4gICAgcmVjdGFuZ2xlKHgsIHksIHdpZHRoLCBoZWlnaHQsIG9wdGlvbnMpIHtcXG4gICAgICAgIGNvbnN0IG8gPSB0aGlzLl9vKG9wdGlvbnMpO1xcbiAgICAgICAgY29uc3QgcGF0aHMgPSBbXTtcXG4gICAgICAgIGNvbnN0IG91dGxpbmUgPSAoMCxfcmVuZGVyZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5yZWN0YW5nbGUpKHgsIHksIHdpZHRoLCBoZWlnaHQsIG8pO1xcbiAgICAgICAgaWYgKG8uZmlsbCkge1xcbiAgICAgICAgICAgIGNvbnN0IHBvaW50cyA9IFtbeCwgeV0sIFt4ICsgd2lkdGgsIHldLCBbeCArIHdpZHRoLCB5ICsgaGVpZ2h0XSwgW3gsIHkgKyBoZWlnaHRdXTtcXG4gICAgICAgICAgICBpZiAoby5maWxsU3R5bGUgPT09ICdzb2xpZCcpIHtcXG4gICAgICAgICAgICAgICAgcGF0aHMucHVzaCgoMCxfcmVuZGVyZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5zb2xpZEZpbGxQb2x5Z29uKShbcG9pbnRzXSwgbykpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgcGF0aHMucHVzaCgoMCxfcmVuZGVyZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5wYXR0ZXJuRmlsbFBvbHlnb25zKShbcG9pbnRzXSwgbykpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChvLnN0cm9rZSAhPT0gTk9TKSB7XFxuICAgICAgICAgICAgcGF0aHMucHVzaChvdXRsaW5lKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiB0aGlzLl9kKCdyZWN0YW5nbGUnLCBwYXRocywgbyk7XFxuICAgIH1cXG4gICAgZWxsaXBzZSh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBvcHRpb25zKSB7XFxuICAgICAgICBjb25zdCBvID0gdGhpcy5fbyhvcHRpb25zKTtcXG4gICAgICAgIGNvbnN0IHBhdGhzID0gW107XFxuICAgICAgICBjb25zdCBlbGxpcHNlUGFyYW1zID0gKDAsX3JlbmRlcmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2VuZXJhdGVFbGxpcHNlUGFyYW1zKSh3aWR0aCwgaGVpZ2h0LCBvKTtcXG4gICAgICAgIGNvbnN0IGVsbGlwc2VSZXNwb25zZSA9ICgwLF9yZW5kZXJlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmVsbGlwc2VXaXRoUGFyYW1zKSh4LCB5LCBvLCBlbGxpcHNlUGFyYW1zKTtcXG4gICAgICAgIGlmIChvLmZpbGwpIHtcXG4gICAgICAgICAgICBpZiAoby5maWxsU3R5bGUgPT09ICdzb2xpZCcpIHtcXG4gICAgICAgICAgICAgICAgY29uc3Qgc2hhcGUgPSAoMCxfcmVuZGVyZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5lbGxpcHNlV2l0aFBhcmFtcykoeCwgeSwgbywgZWxsaXBzZVBhcmFtcykub3BzZXQ7XFxuICAgICAgICAgICAgICAgIHNoYXBlLnR5cGUgPSAnZmlsbFBhdGgnO1xcbiAgICAgICAgICAgICAgICBwYXRocy5wdXNoKHNoYXBlKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgIHBhdGhzLnB1c2goKDAsX3JlbmRlcmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucGF0dGVybkZpbGxQb2x5Z29ucykoW2VsbGlwc2VSZXNwb25zZS5lc3RpbWF0ZWRQb2ludHNdLCBvKSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKG8uc3Ryb2tlICE9PSBOT1MpIHtcXG4gICAgICAgICAgICBwYXRocy5wdXNoKGVsbGlwc2VSZXNwb25zZS5vcHNldCk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gdGhpcy5fZCgnZWxsaXBzZScsIHBhdGhzLCBvKTtcXG4gICAgfVxcbiAgICBjaXJjbGUoeCwgeSwgZGlhbWV0ZXIsIG9wdGlvbnMpIHtcXG4gICAgICAgIGNvbnN0IHJldCA9IHRoaXMuZWxsaXBzZSh4LCB5LCBkaWFtZXRlciwgZGlhbWV0ZXIsIG9wdGlvbnMpO1xcbiAgICAgICAgcmV0LnNoYXBlID0gJ2NpcmNsZSc7XFxuICAgICAgICByZXR1cm4gcmV0O1xcbiAgICB9XFxuICAgIGxpbmVhclBhdGgocG9pbnRzLCBvcHRpb25zKSB7XFxuICAgICAgICBjb25zdCBvID0gdGhpcy5fbyhvcHRpb25zKTtcXG4gICAgICAgIHJldHVybiB0aGlzLl9kKCdsaW5lYXJQYXRoJywgWygwLF9yZW5kZXJlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmxpbmVhclBhdGgpKHBvaW50cywgZmFsc2UsIG8pXSwgbyk7XFxuICAgIH1cXG4gICAgYXJjKHgsIHksIHdpZHRoLCBoZWlnaHQsIHN0YXJ0LCBzdG9wLCBjbG9zZWQgPSBmYWxzZSwgb3B0aW9ucykge1xcbiAgICAgICAgY29uc3QgbyA9IHRoaXMuX28ob3B0aW9ucyk7XFxuICAgICAgICBjb25zdCBwYXRocyA9IFtdO1xcbiAgICAgICAgY29uc3Qgb3V0bGluZSA9ICgwLF9yZW5kZXJlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmFyYykoeCwgeSwgd2lkdGgsIGhlaWdodCwgc3RhcnQsIHN0b3AsIGNsb3NlZCwgdHJ1ZSwgbyk7XFxuICAgICAgICBpZiAoY2xvc2VkICYmIG8uZmlsbCkge1xcbiAgICAgICAgICAgIGlmIChvLmZpbGxTdHlsZSA9PT0gJ3NvbGlkJykge1xcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxsT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG8pO1xcbiAgICAgICAgICAgICAgICBmaWxsT3B0aW9ucy5kaXNhYmxlTXVsdGlTdHJva2UgPSB0cnVlO1xcbiAgICAgICAgICAgICAgICBjb25zdCBzaGFwZSA9ICgwLF9yZW5kZXJlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmFyYykoeCwgeSwgd2lkdGgsIGhlaWdodCwgc3RhcnQsIHN0b3AsIHRydWUsIGZhbHNlLCBmaWxsT3B0aW9ucyk7XFxuICAgICAgICAgICAgICAgIHNoYXBlLnR5cGUgPSAnZmlsbFBhdGgnO1xcbiAgICAgICAgICAgICAgICBwYXRocy5wdXNoKHNoYXBlKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgIHBhdGhzLnB1c2goKDAsX3JlbmRlcmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucGF0dGVybkZpbGxBcmMpKHgsIHksIHdpZHRoLCBoZWlnaHQsIHN0YXJ0LCBzdG9wLCBvKSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKG8uc3Ryb2tlICE9PSBOT1MpIHtcXG4gICAgICAgICAgICBwYXRocy5wdXNoKG91dGxpbmUpO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHRoaXMuX2QoJ2FyYycsIHBhdGhzLCBvKTtcXG4gICAgfVxcbiAgICBjdXJ2ZShwb2ludHMsIG9wdGlvbnMpIHtcXG4gICAgICAgIGNvbnN0IG8gPSB0aGlzLl9vKG9wdGlvbnMpO1xcbiAgICAgICAgY29uc3QgcGF0aHMgPSBbXTtcXG4gICAgICAgIGNvbnN0IG91dGxpbmUgPSAoMCxfcmVuZGVyZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jdXJ2ZSkocG9pbnRzLCBvKTtcXG4gICAgICAgIGlmIChvLmZpbGwgJiYgby5maWxsICE9PSBOT1MgJiYgcG9pbnRzLmxlbmd0aCA+PSAzKSB7XFxuICAgICAgICAgICAgY29uc3QgYmN1cnZlID0gKDAscG9pbnRzX29uX2N1cnZlX2xpYl9jdXJ2ZV90b19iZXppZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5jdXJ2ZVRvQmV6aWVyKShwb2ludHMpO1xcbiAgICAgICAgICAgIGNvbnN0IHBvbHlQb2ludHMgPSAoMCxwb2ludHNfb25fY3VydmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5wb2ludHNPbkJlemllckN1cnZlcykoYmN1cnZlLCAxMCwgKDEgKyBvLnJvdWdobmVzcykgLyAyKTtcXG4gICAgICAgICAgICBpZiAoby5maWxsU3R5bGUgPT09ICdzb2xpZCcpIHtcXG4gICAgICAgICAgICAgICAgcGF0aHMucHVzaCgoMCxfcmVuZGVyZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5zb2xpZEZpbGxQb2x5Z29uKShbcG9seVBvaW50c10sIG8pKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgIHBhdGhzLnB1c2goKDAsX3JlbmRlcmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucGF0dGVybkZpbGxQb2x5Z29ucykoW3BvbHlQb2ludHNdLCBvKSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKG8uc3Ryb2tlICE9PSBOT1MpIHtcXG4gICAgICAgICAgICBwYXRocy5wdXNoKG91dGxpbmUpO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHRoaXMuX2QoJ2N1cnZlJywgcGF0aHMsIG8pO1xcbiAgICB9XFxuICAgIHBvbHlnb24ocG9pbnRzLCBvcHRpb25zKSB7XFxuICAgICAgICBjb25zdCBvID0gdGhpcy5fbyhvcHRpb25zKTtcXG4gICAgICAgIGNvbnN0IHBhdGhzID0gW107XFxuICAgICAgICBjb25zdCBvdXRsaW5lID0gKDAsX3JlbmRlcmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubGluZWFyUGF0aCkocG9pbnRzLCB0cnVlLCBvKTtcXG4gICAgICAgIGlmIChvLmZpbGwpIHtcXG4gICAgICAgICAgICBpZiAoby5maWxsU3R5bGUgPT09ICdzb2xpZCcpIHtcXG4gICAgICAgICAgICAgICAgcGF0aHMucHVzaCgoMCxfcmVuZGVyZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5zb2xpZEZpbGxQb2x5Z29uKShbcG9pbnRzXSwgbykpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgcGF0aHMucHVzaCgoMCxfcmVuZGVyZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5wYXR0ZXJuRmlsbFBvbHlnb25zKShbcG9pbnRzXSwgbykpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChvLnN0cm9rZSAhPT0gTk9TKSB7XFxuICAgICAgICAgICAgcGF0aHMucHVzaChvdXRsaW5lKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiB0aGlzLl9kKCdwb2x5Z29uJywgcGF0aHMsIG8pO1xcbiAgICB9XFxuICAgIHBhdGgoZCwgb3B0aW9ucykge1xcbiAgICAgICAgY29uc3QgbyA9IHRoaXMuX28ob3B0aW9ucyk7XFxuICAgICAgICBjb25zdCBwYXRocyA9IFtdO1xcbiAgICAgICAgaWYgKCFkKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2QoJ3BhdGgnLCBwYXRocywgbyk7XFxuICAgICAgICB9XFxuICAgICAgICBkID0gKGQgfHwgJycpLnJlcGxhY2UoL1xcXFxuL2csICcgJykucmVwbGFjZSgvKC1cXFxccykvZywgJy0nKS5yZXBsYWNlKCcvKFxcXFxzXFxcXHMpL2cnLCAnICcpO1xcbiAgICAgICAgY29uc3QgaGFzRmlsbCA9IG8uZmlsbCAmJiBvLmZpbGwgIT09ICd0cmFuc3BhcmVudCcgJiYgby5maWxsICE9PSBOT1M7XFxuICAgICAgICBjb25zdCBoYXNTdHJva2UgPSBvLnN0cm9rZSAhPT0gTk9TO1xcbiAgICAgICAgY29uc3Qgc2ltcGxpZmllZCA9ICEhKG8uc2ltcGxpZmljYXRpb24gJiYgKG8uc2ltcGxpZmljYXRpb24gPCAxKSk7XFxuICAgICAgICBjb25zdCBkaXN0YW5jZSA9IHNpbXBsaWZpZWQgPyAoNCAtIDQgKiAoby5zaW1wbGlmaWNhdGlvbikpIDogKCgxICsgby5yb3VnaG5lc3MpIC8gMik7XFxuICAgICAgICBjb25zdCBzZXRzID0gKDAscG9pbnRzX29uX3BhdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5wb2ludHNPblBhdGgpKGQsIDEsIGRpc3RhbmNlKTtcXG4gICAgICAgIGlmIChoYXNGaWxsKSB7XFxuICAgICAgICAgICAgaWYgKG8uZmlsbFN0eWxlID09PSAnc29saWQnKSB7XFxuICAgICAgICAgICAgICAgIHBhdGhzLnB1c2goKDAsX3JlbmRlcmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uc29saWRGaWxsUG9seWdvbikoc2V0cywgbykpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgcGF0aHMucHVzaCgoMCxfcmVuZGVyZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5wYXR0ZXJuRmlsbFBvbHlnb25zKShzZXRzLCBvKSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKGhhc1N0cm9rZSkge1xcbiAgICAgICAgICAgIGlmIChzaW1wbGlmaWVkKSB7XFxuICAgICAgICAgICAgICAgIHNldHMuZm9yRWFjaCgoc2V0KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBwYXRocy5wdXNoKCgwLF9yZW5kZXJlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmxpbmVhclBhdGgpKHNldCwgZmFsc2UsIG8pKTtcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICBwYXRocy5wdXNoKCgwLF9yZW5kZXJlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnN2Z1BhdGgpKGQsIG8pKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gdGhpcy5fZCgncGF0aCcsIHBhdGhzLCBvKTtcXG4gICAgfVxcbiAgICBvcHNUb1BhdGgoZHJhd2luZywgZml4ZWREZWNpbWFscykge1xcbiAgICAgICAgbGV0IHBhdGggPSAnJztcXG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBkcmF3aW5nLm9wcykge1xcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSAoKHR5cGVvZiBmaXhlZERlY2ltYWxzID09PSAnbnVtYmVyJykgJiYgZml4ZWREZWNpbWFscyA+PSAwKSA/IChpdGVtLmRhdGEubWFwKChkKSA9PiArZC50b0ZpeGVkKGZpeGVkRGVjaW1hbHMpKSkgOiBpdGVtLmRhdGE7XFxuICAgICAgICAgICAgc3dpdGNoIChpdGVtLm9wKSB7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ21vdmUnOlxcbiAgICAgICAgICAgICAgICAgICAgcGF0aCArPSBgTSR7ZGF0YVswXX0gJHtkYXRhWzFdfSBgO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ2JjdXJ2ZVRvJzpcXG4gICAgICAgICAgICAgICAgICAgIHBhdGggKz0gYEMke2RhdGFbMF19ICR7ZGF0YVsxXX0sICR7ZGF0YVsyXX0gJHtkYXRhWzNdfSwgJHtkYXRhWzRdfSAke2RhdGFbNV19IGA7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSAnbGluZVRvJzpcXG4gICAgICAgICAgICAgICAgICAgIHBhdGggKz0gYEwke2RhdGFbMF19ICR7ZGF0YVsxXX0gYDtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiBwYXRoLnRyaW0oKTtcXG4gICAgfVxcbiAgICB0b1BhdGhzKGRyYXdhYmxlKSB7XFxuICAgICAgICBjb25zdCBzZXRzID0gZHJhd2FibGUuc2V0cyB8fCBbXTtcXG4gICAgICAgIGNvbnN0IG8gPSBkcmF3YWJsZS5vcHRpb25zIHx8IHRoaXMuZGVmYXVsdE9wdGlvbnM7XFxuICAgICAgICBjb25zdCBwYXRocyA9IFtdO1xcbiAgICAgICAgZm9yIChjb25zdCBkcmF3aW5nIG9mIHNldHMpIHtcXG4gICAgICAgICAgICBsZXQgcGF0aCA9IG51bGw7XFxuICAgICAgICAgICAgc3dpdGNoIChkcmF3aW5nLnR5cGUpIHtcXG4gICAgICAgICAgICAgICAgY2FzZSAncGF0aCc6XFxuICAgICAgICAgICAgICAgICAgICBwYXRoID0ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ6IHRoaXMub3BzVG9QYXRoKGRyYXdpbmcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogby5zdHJva2UsXFxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IG8uc3Ryb2tlV2lkdGgsXFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogTk9TLFxcbiAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICBjYXNlICdmaWxsUGF0aCc6XFxuICAgICAgICAgICAgICAgICAgICBwYXRoID0ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ6IHRoaXMub3BzVG9QYXRoKGRyYXdpbmcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogTk9TLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAwLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6IG8uZmlsbCB8fCBOT1MsXFxuICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgJ2ZpbGxTa2V0Y2gnOlxcbiAgICAgICAgICAgICAgICAgICAgcGF0aCA9IHRoaXMuZmlsbFNrZXRjaChkcmF3aW5nLCBvKTtcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAocGF0aCkge1xcbiAgICAgICAgICAgICAgICBwYXRocy5wdXNoKHBhdGgpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiBwYXRocztcXG4gICAgfVxcbiAgICBmaWxsU2tldGNoKGRyYXdpbmcsIG8pIHtcXG4gICAgICAgIGxldCBmd2VpZ2h0ID0gby5maWxsV2VpZ2h0O1xcbiAgICAgICAgaWYgKGZ3ZWlnaHQgPCAwKSB7XFxuICAgICAgICAgICAgZndlaWdodCA9IG8uc3Ryb2tlV2lkdGggLyAyO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBkOiB0aGlzLm9wc1RvUGF0aChkcmF3aW5nKSxcXG4gICAgICAgICAgICBzdHJva2U6IG8uZmlsbCB8fCBOT1MsXFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IGZ3ZWlnaHQsXFxuICAgICAgICAgICAgZmlsbDogTk9TLFxcbiAgICAgICAgfTtcXG4gICAgfVxcbn1cXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDNKdmRXZG9hbk12WW1sdUwyZGxibVZ5WVhSdmNpNXFjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdRVUZCYTB3N1FVRkRNMGs3UVVGRFowTTdRVUZEYUVJN1FVRkRWRHRCUVVNNVF6dEJRVU5QTzBGQlExQTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4bFFVRmxMRzlFUVVGVk8wRkJRM3BDTzBGQlEwRTdRVUZEUVN4NVEwRkJlVU03UVVGRGVrTTdRVUZEUVR0QlFVTkJMR2xDUVVGcFFqdEJRVU5xUWp0QlFVTkJPMEZCUTBFN1FVRkRRU3huUTBGQlowTXNhMFJCUVVrN1FVRkRjRU03UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4M1FrRkJkMElzZFVSQlFWTTdRVUZEYWtNN1FVRkRRVHRCUVVOQk8wRkJRMEVzTWtKQlFUSkNMRGhFUVVGblFqdEJRVU16UXp0QlFVTkJPMEZCUTBFc01rSkJRVEpDTEdsRlFVRnRRanRCUVVNNVF6dEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTERoQ1FVRTRRaXh0UlVGQmNVSTdRVUZEYmtRc1owTkJRV2RETEN0RVFVRnBRanRCUVVOcVJEdEJRVU5CTzBGQlEwRXNPRUpCUVRoQ0xDdEVRVUZwUWp0QlFVTXZRenRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTERKQ1FVRXlRaXhwUlVGQmJVSTdRVUZET1VNN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEhORFFVRnpReXgzUkVGQlZUdEJRVU5vUkR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxIZENRVUYzUWl4cFJFRkJSenRCUVVNelFqdEJRVU5CTzBGQlEwRXNiMFJCUVc5RU8wRkJRM0JFTzBGQlEwRXNPRUpCUVRoQ0xHbEVRVUZITzBGQlEycERPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzTWtKQlFUSkNMRFJFUVVGak8wRkJRM3BETzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNkMEpCUVhkQ0xHMUVRVUZMTzBGQlF6ZENPMEZCUTBFc01rSkJRVEpDTEhGR1FVRmhPMEZCUTNoRExDdENRVUVyUWl4eFJVRkJiMEk3UVVGRGJrUTdRVUZEUVN3eVFrRkJNa0lzT0VSQlFXZENPMEZCUXpORE8wRkJRMEU3UVVGRFFTd3lRa0ZCTWtJc2FVVkJRVzFDTzBGQlF6bERPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc2QwSkJRWGRDTEhkRVFVRlZPMEZCUTJ4RE8wRkJRMEU3UVVGRFFTd3lRa0ZCTWtJc09FUkJRV2RDTzBGQlF6TkRPMEZCUTBFN1FVRkRRU3d5UWtGQk1rSXNhVVZCUVcxQ08wRkJRemxETzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEhGQ1FVRnhRaXcwUkVGQldUdEJRVU5xUXp0QlFVTkJPMEZCUTBFc01rSkJRVEpDTERoRVFVRm5RanRCUVVNelF6dEJRVU5CTzBGQlEwRXNNa0pCUVRKQ0xHbEZRVUZ0UWp0QlFVTTVRenRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNLMEpCUVN0Q0xIZEVRVUZWTzBGQlEzcERMR2xDUVVGcFFqdEJRVU5xUWp0QlFVTkJPMEZCUTBFc01rSkJRVEpDTEhGRVFVRlBPMEZCUTJ4RE8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWjBOQlFXZERMRk5CUVZNc1JVRkJSU3hUUVVGVE8wRkJRM0JFTzBGQlEwRTdRVUZEUVN4blEwRkJaME1zVTBGQlV5eEZRVUZGTEZGQlFWRXNTVUZCU1N4VFFVRlRMRVZCUVVVc1VVRkJVU3hKUVVGSkxGTkJRVk1zUlVGQlJTeFRRVUZUTzBGQlEyeEhPMEZCUTBFN1FVRkRRU3huUTBGQlowTXNVMEZCVXl4RlFVRkZMRk5CUVZNN1FVRkRjRVE3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl5YjNWbmFHcHpMMkpwYmk5blpXNWxjbUYwYjNJdWFuTS9aakJtT0NKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QnNhVzVsTENCemIyeHBaRVpwYkd4UWIyeDVaMjl1TENCd1lYUjBaWEp1Um1sc2JGQnZiSGxuYjI1ekxDQnlaV04wWVc1bmJHVXNJR1ZzYkdsd2MyVlhhWFJvVUdGeVlXMXpMQ0JuWlc1bGNtRjBaVVZzYkdsd2MyVlFZWEpoYlhNc0lHeHBibVZoY2xCaGRHZ3NJR0Z5WXl3Z2NHRjBkR1Z5YmtacGJHeEJjbU1zSUdOMWNuWmxMQ0J6ZG1kUVlYUm9JSDBnWm5KdmJTQW5MaTl5Wlc1a1pYSmxjaTVxY3ljN1hHNXBiWEJ2Y25RZ2V5QnlZVzVrYjIxVFpXVmtJSDBnWm5KdmJTQW5MaTl0WVhSb0xtcHpKenRjYm1sdGNHOXlkQ0I3SUdOMWNuWmxWRzlDWlhwcFpYSWdmU0JtY205dElDZHdiMmx1ZEhNdGIyNHRZM1Z5ZG1VdmJHbGlMMk4xY25abExYUnZMV0psZW1sbGNpNXFjeWM3WEc1cGJYQnZjblFnZXlCd2IybHVkSE5QYmtKbGVtbGxja04xY25abGN5QjlJR1p5YjIwZ0ozQnZhVzUwY3kxdmJpMWpkWEoyWlNjN1hHNXBiWEJ2Y25RZ2V5QndiMmx1ZEhOUGJsQmhkR2dnZlNCbWNtOXRJQ2R3YjJsdWRITXRiMjR0Y0dGMGFDYzdYRzVqYjI1emRDQk9UMU1nUFNBbmJtOXVaU2M3WEc1bGVIQnZjblFnWTJ4aGMzTWdVbTkxWjJoSFpXNWxjbUYwYjNJZ2UxeHVJQ0FnSUdOdmJuTjBjblZqZEc5eUtHTnZibVpwWnlrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG1SbFptRjFiSFJQY0hScGIyNXpJRDBnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdiV0Y0VW1GdVpHOXRibVZ6YzA5bVpuTmxkRG9nTWl4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEp2ZFdkb2JtVnpjem9nTVN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR0p2ZDJsdVp6b2dNU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lITjBjbTlyWlRvZ0p5TXdNREFuTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM1J5YjJ0bFYybGtkR2c2SURFc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqZFhKMlpWUnBaMmgwYm1WemN6b2dNQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHTjFjblpsUm1sMGRHbHVaem9nTUM0NU5TeGNiaUFnSUNBZ0lDQWdJQ0FnSUdOMWNuWmxVM1JsY0VOdmRXNTBPaUE1TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdabWxzYkZOMGVXeGxPaUFuYUdGamFIVnlaU2NzWEc0Z0lDQWdJQ0FnSUNBZ0lDQm1hV3hzVjJWcFoyaDBPaUF0TVN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR2hoWTJoMWNtVkJibWRzWlRvZ0xUUXhMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2FHRmphSFZ5WlVkaGNEb2dMVEVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmtZWE5vVDJabWMyVjBPaUF0TVN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JoYzJoSFlYQTZJQzB4TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdlbWxuZW1GblQyWm1jMlYwT2lBdE1TeGNiaUFnSUNBZ0lDQWdJQ0FnSUhObFpXUTZJREFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmthWE5oWW14bFRYVnNkR2xUZEhKdmEyVTZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQWdJQ0FnWkdsellXSnNaVTExYkhScFUzUnliMnRsUm1sc2JEb2dabUZzYzJVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3Y21WelpYSjJaVlpsY25ScFkyVnpPaUJtWVd4elpTeGNiaUFnSUNBZ0lDQWdmVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWpiMjVtYVdjZ1BTQmpiMjVtYVdjZ2ZId2dlMzA3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1OdmJtWnBaeTV2Y0hScGIyNXpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1SbFptRjFiSFJQY0hScGIyNXpJRDBnZEdocGN5NWZieWgwYUdsekxtTnZibVpwWnk1dmNIUnBiMjV6S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J6ZEdGMGFXTWdibVYzVTJWbFpDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSEpoYm1SdmJWTmxaV1FvS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdYMjhvYjNCMGFXOXVjeWtnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYjNCMGFXOXVjeUEvSUU5aWFtVmpkQzVoYzNOcFoyNG9lMzBzSUhSb2FYTXVaR1ZtWVhWc2RFOXdkR2x2Ym5Nc0lHOXdkR2x2Ym5NcElEb2dkR2hwY3k1a1pXWmhkV3gwVDNCMGFXOXVjenRjYmlBZ0lDQjlYRzRnSUNBZ1gyUW9jMmhoY0dVc0lITmxkSE1zSUc5d2RHbHZibk1wSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2MyaGhjR1VzSUhObGRITTZJSE5sZEhNZ2ZId2dXMTBzSUc5d2RHbHZibk02SUc5d2RHbHZibk1nZkh3Z2RHaHBjeTVrWldaaGRXeDBUM0IwYVc5dWN5QjlPMXh1SUNBZ0lIMWNiaUFnSUNCc2FXNWxLSGd4TENCNU1Td2dlRElzSUhreUxDQnZjSFJwYjI1ektTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHOGdQU0IwYUdsekxsOXZLRzl3ZEdsdmJuTXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZlpDZ25iR2x1WlNjc0lGdHNhVzVsS0hneExDQjVNU3dnZURJc0lIa3lMQ0J2S1Ywc0lHOHBPMXh1SUNBZ0lIMWNiaUFnSUNCeVpXTjBZVzVuYkdVb2VDd2dlU3dnZDJsa2RHZ3NJR2hsYVdkb2RDd2diM0IwYVc5dWN5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnZJRDBnZEdocGN5NWZieWh2Y0hScGIyNXpLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjR0YwYUhNZ1BTQmJYVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdiM1YwYkdsdVpTQTlJSEpsWTNSaGJtZHNaU2g0TENCNUxDQjNhV1IwYUN3Z2FHVnBaMmgwTENCdktUdGNiaUFnSUNBZ0lDQWdhV1lnS0c4dVptbHNiQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2NHOXBiblJ6SUQwZ1cxdDRMQ0I1WFN3Z1czZ2dLeUIzYVdSMGFDd2dlVjBzSUZ0NElDc2dkMmxrZEdnc0lIa2dLeUJvWldsbmFIUmRMQ0JiZUN3Z2VTQXJJR2hsYVdkb2RGMWRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzh1Wm1sc2JGTjBlV3hsSUQwOVBTQW5jMjlzYVdRbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjR0YwYUhNdWNIVnphQ2h6YjJ4cFpFWnBiR3hRYjJ4NVoyOXVLRnR3YjJsdWRITmRMQ0J2S1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCd1lYUm9jeTV3ZFhOb0tIQmhkSFJsY201R2FXeHNVRzlzZVdkdmJuTW9XM0J2YVc1MGMxMHNJRzhwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9ieTV6ZEhKdmEyVWdJVDA5SUU1UFV5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NHRjBhSE11Y0hWemFDaHZkWFJzYVc1bEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZlpDZ25jbVZqZEdGdVoyeGxKeXdnY0dGMGFITXNJRzhwTzF4dUlDQWdJSDFjYmlBZ0lDQmxiR3hwY0hObEtIZ3NJSGtzSUhkcFpIUm9MQ0JvWldsbmFIUXNJRzl3ZEdsdmJuTXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdieUE5SUhSb2FYTXVYMjhvYjNCMGFXOXVjeWs3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEJoZEdoeklEMGdXMTA3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1ZzYkdsd2MyVlFZWEpoYlhNZ1BTQm5aVzVsY21GMFpVVnNiR2x3YzJWUVlYSmhiWE1vZDJsa2RHZ3NJR2hsYVdkb2RDd2dieWs3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1ZzYkdsd2MyVlNaWE53YjI1elpTQTlJR1ZzYkdsd2MyVlhhWFJvVUdGeVlXMXpLSGdzSUhrc0lHOHNJR1ZzYkdsd2MyVlFZWEpoYlhNcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYnk1bWFXeHNLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYnk1bWFXeHNVM1I1YkdVZ1BUMDlJQ2R6YjJ4cFpDY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnphR0Z3WlNBOUlHVnNiR2x3YzJWWGFYUm9VR0Z5WVcxektIZ3NJSGtzSUc4c0lHVnNiR2x3YzJWUVlYSmhiWE1wTG05d2MyVjBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5vWVhCbExuUjVjR1VnUFNBblptbHNiRkJoZEdnbk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIQmhkR2h6TG5CMWMyZ29jMmhoY0dVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NHRjBhSE11Y0hWemFDaHdZWFIwWlhKdVJtbHNiRkJ2YkhsbmIyNXpLRnRsYkd4cGNITmxVbVZ6Y0c5dWMyVXVaWE4wYVcxaGRHVmtVRzlwYm5SelhTd2dieWtwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaHZMbk4wY205clpTQWhQVDBnVGs5VEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCd1lYUm9jeTV3ZFhOb0tHVnNiR2x3YzJWU1pYTndiMjV6WlM1dmNITmxkQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYMlFvSjJWc2JHbHdjMlVuTENCd1lYUm9jeXdnYnlrN1hHNGdJQ0FnZlZ4dUlDQWdJR05wY21Oc1pTaDRMQ0I1TENCa2FXRnRaWFJsY2l3Z2IzQjBhVzl1Y3lrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCeVpYUWdQU0IwYUdsekxtVnNiR2x3YzJVb2VDd2dlU3dnWkdsaGJXVjBaWElzSUdScFlXMWxkR1Z5TENCdmNIUnBiMjV6S1R0Y2JpQWdJQ0FnSUNBZ2NtVjBMbk5vWVhCbElEMGdKMk5wY21Oc1pTYzdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWFE3WEc0Z0lDQWdmVnh1SUNBZ0lHeHBibVZoY2xCaGRHZ29jRzlwYm5SekxDQnZjSFJwYjI1ektTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHOGdQU0IwYUdsekxsOXZLRzl3ZEdsdmJuTXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZlpDZ25iR2x1WldGeVVHRjBhQ2NzSUZ0c2FXNWxZWEpRWVhSb0tIQnZhVzUwY3l3Z1ptRnNjMlVzSUc4cFhTd2dieWs3WEc0Z0lDQWdmVnh1SUNBZ0lHRnlZeWg0TENCNUxDQjNhV1IwYUN3Z2FHVnBaMmgwTENCemRHRnlkQ3dnYzNSdmNDd2dZMnh2YzJWa0lEMGdabUZzYzJVc0lHOXdkR2x2Ym5NcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2J5QTlJSFJvYVhNdVgyOG9iM0IwYVc5dWN5azdYRzRnSUNBZ0lDQWdJR052Ym5OMElIQmhkR2h6SUQwZ1cxMDdYRzRnSUNBZ0lDQWdJR052Ym5OMElHOTFkR3hwYm1VZ1BTQmhjbU1vZUN3Z2VTd2dkMmxrZEdnc0lHaGxhV2RvZEN3Z2MzUmhjblFzSUhOMGIzQXNJR05zYjNObFpDd2dkSEoxWlN3Z2J5azdYRzRnSUNBZ0lDQWdJR2xtSUNoamJHOXpaV1FnSmlZZ2J5NW1hV3hzS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2J5NW1hV3hzVTNSNWJHVWdQVDA5SUNkemIyeHBaQ2NwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JtYVd4c1QzQjBhVzl1Y3lBOUlFOWlhbVZqZEM1aGMzTnBaMjRvZTMwc0lHOHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1pwYkd4UGNIUnBiMjV6TG1ScGMyRmliR1ZOZFd4MGFWTjBjbTlyWlNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjMmhoY0dVZ1BTQmhjbU1vZUN3Z2VTd2dkMmxrZEdnc0lHaGxhV2RvZEN3Z2MzUmhjblFzSUhOMGIzQXNJSFJ5ZFdVc0lHWmhiSE5sTENCbWFXeHNUM0IwYVc5dWN5azdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMmhoY0dVdWRIbHdaU0E5SUNkbWFXeHNVR0YwYUNjN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NHRjBhSE11Y0hWemFDaHphR0Z3WlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCd1lYUm9jeTV3ZFhOb0tIQmhkSFJsY201R2FXeHNRWEpqS0hnc0lIa3NJSGRwWkhSb0xDQm9aV2xuYUhRc0lITjBZWEowTENCemRHOXdMQ0J2S1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLRzh1YzNSeWIydGxJQ0U5UFNCT1QxTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIQmhkR2h6TG5CMWMyZ29iM1YwYkdsdVpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgyUW9KMkZ5WXljc0lIQmhkR2h6TENCdktUdGNiaUFnSUNCOVhHNGdJQ0FnWTNWeWRtVW9jRzlwYm5SekxDQnZjSFJwYjI1ektTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHOGdQU0IwYUdsekxsOXZLRzl3ZEdsdmJuTXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQndZWFJvY3lBOUlGdGRPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnZkWFJzYVc1bElEMGdZM1Z5ZG1Vb2NHOXBiblJ6TENCdktUdGNiaUFnSUNBZ0lDQWdhV1lnS0c4dVptbHNiQ0FtSmlCdkxtWnBiR3dnSVQwOUlFNVBVeUFtSmlCd2IybHVkSE11YkdWdVozUm9JRDQ5SURNcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR0pqZFhKMlpTQTlJR04xY25abFZHOUNaWHBwWlhJb2NHOXBiblJ6S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElIQnZiSGxRYjJsdWRITWdQU0J3YjJsdWRITlBia0psZW1sbGNrTjFjblpsY3loaVkzVnlkbVVzSURFd0xDQW9NU0FySUc4dWNtOTFaMmh1WlhOektTQXZJRElwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0c4dVptbHNiRk4wZVd4bElEMDlQU0FuYzI5c2FXUW5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0dGMGFITXVjSFZ6YUNoemIyeHBaRVpwYkd4UWIyeDVaMjl1S0Z0d2IyeDVVRzlwYm5SelhTd2dieWtwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0dGMGFITXVjSFZ6YUNod1lYUjBaWEp1Um1sc2JGQnZiSGxuYjI1ektGdHdiMng1VUc5cGJuUnpYU3dnYnlrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2h2TG5OMGNtOXJaU0FoUFQwZ1RrOVRLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQndZWFJvY3k1d2RYTm9LRzkxZEd4cGJtVXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxsOWtLQ2RqZFhKMlpTY3NJSEJoZEdoekxDQnZLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NHOXNlV2R2Ymlod2IybHVkSE1zSUc5d2RHbHZibk1wSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYnlBOUlIUm9hWE11WDI4b2IzQjBhVzl1Y3lrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhCaGRHaHpJRDBnVzEwN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc5MWRHeHBibVVnUFNCc2FXNWxZWEpRWVhSb0tIQnZhVzUwY3l3Z2RISjFaU3dnYnlrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h2TG1acGJHd3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h2TG1acGJHeFRkSGxzWlNBOVBUMGdKM052Ykdsa0p5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJoZEdoekxuQjFjMmdvYzI5c2FXUkdhV3hzVUc5c2VXZHZiaWhiY0c5cGJuUnpYU3dnYnlrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NHRjBhSE11Y0hWemFDaHdZWFIwWlhKdVJtbHNiRkJ2YkhsbmIyNXpLRnR3YjJsdWRITmRMQ0J2S1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLRzh1YzNSeWIydGxJQ0U5UFNCT1QxTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIQmhkR2h6TG5CMWMyZ29iM1YwYkdsdVpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgyUW9KM0J2YkhsbmIyNG5MQ0J3WVhSb2N5d2dieWs3WEc0Z0lDQWdmVnh1SUNBZ0lIQmhkR2dvWkN3Z2IzQjBhVzl1Y3lrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdklEMGdkR2hwY3k1ZmJ5aHZjSFJwYjI1ektUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NHRjBhSE1nUFNCYlhUdGNiaUFnSUNBZ0lDQWdhV1lnS0NGa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWZaQ2duY0dGMGFDY3NJSEJoZEdoekxDQnZLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCa0lEMGdLR1FnZkh3Z0p5Y3BMbkpsY0d4aFkyVW9MMXhjYmk5bkxDQW5JQ2NwTG5KbGNHeGhZMlVvTHlndFhGeHpLUzluTENBbkxTY3BMbkpsY0d4aFkyVW9KeThvWEZ4elhGeHpLUzluSnl3Z0p5QW5LVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhR0Z6Um1sc2JDQTlJRzh1Wm1sc2JDQW1KaUJ2TG1acGJHd2dJVDA5SUNkMGNtRnVjM0JoY21WdWRDY2dKaVlnYnk1bWFXeHNJQ0U5UFNCT1QxTTdYRzRnSUNBZ0lDQWdJR052Ym5OMElHaGhjMU4wY205clpTQTlJRzh1YzNSeWIydGxJQ0U5UFNCT1QxTTdYRzRnSUNBZ0lDQWdJR052Ym5OMElITnBiWEJzYVdacFpXUWdQU0FoSVNodkxuTnBiWEJzYVdacFkyRjBhVzl1SUNZbUlDaHZMbk5wYlhCc2FXWnBZMkYwYVc5dUlEd2dNU2twTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JrYVhOMFlXNWpaU0E5SUhOcGJYQnNhV1pwWldRZ1B5QW9OQ0F0SURRZ0tpQW9ieTV6YVcxd2JHbG1hV05oZEdsdmJpa3BJRG9nS0NneElDc2dieTV5YjNWbmFHNWxjM01wSUM4Z01pazdYRzRnSUNBZ0lDQWdJR052Ym5OMElITmxkSE1nUFNCd2IybHVkSE5QYmxCaGRHZ29aQ3dnTVN3Z1pHbHpkR0Z1WTJVcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYUdGelJtbHNiQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0c4dVptbHNiRk4wZVd4bElEMDlQU0FuYzI5c2FXUW5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0dGMGFITXVjSFZ6YUNoemIyeHBaRVpwYkd4UWIyeDVaMjl1S0hObGRITXNJRzhwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhCaGRHaHpMbkIxYzJnb2NHRjBkR1Z5YmtacGJHeFFiMng1WjI5dWN5aHpaWFJ6TENCdktTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0doaGMxTjBjbTlyWlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tITnBiWEJzYVdacFpXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6WlhSekxtWnZja1ZoWTJnb0tITmxkQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3WVhSb2N5NXdkWE5vS0d4cGJtVmhjbEJoZEdnb2MyVjBMQ0JtWVd4elpTd2dieWtwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NHRjBhSE11Y0hWemFDaHpkbWRRWVhSb0tHUXNJRzhwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWZaQ2duY0dGMGFDY3NJSEJoZEdoekxDQnZLVHRjYmlBZ0lDQjlYRzRnSUNBZ2IzQnpWRzlRWVhSb0tHUnlZWGRwYm1jc0lHWnBlR1ZrUkdWamFXMWhiSE1wSUh0Y2JpQWdJQ0FnSUNBZ2JHVjBJSEJoZEdnZ1BTQW5KenRjYmlBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCcGRHVnRJRzltSUdSeVlYZHBibWN1YjNCektTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JrWVhSaElEMGdLQ2gwZVhCbGIyWWdabWw0WldSRVpXTnBiV0ZzY3lBOVBUMGdKMjUxYldKbGNpY3BJQ1ltSUdacGVHVmtSR1ZqYVcxaGJITWdQajBnTUNrZ1B5QW9hWFJsYlM1a1lYUmhMbTFoY0Nnb1pDa2dQVDRnSzJRdWRHOUdhWGhsWkNobWFYaGxaRVJsWTJsdFlXeHpLU2twSURvZ2FYUmxiUzVrWVhSaE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNkcGRHTm9JQ2hwZEdWdExtOXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5iVzkyWlNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJoZEdnZ0t6MGdZRTBrZTJSaGRHRmJNRjE5SUNSN1pHRjBZVnN4WFgwZ1lEdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblltTjFjblpsVkc4bk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3WVhSb0lDczlJR0JESkh0a1lYUmhXekJkZlNBa2UyUmhkR0ZiTVYxOUxDQWtlMlJoZEdGYk1sMTlJQ1I3WkdGMFlWc3pYWDBzSUNSN1pHRjBZVnMwWFgwZ0pIdGtZWFJoV3pWZGZTQmdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZHNhVzVsVkc4bk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3WVhSb0lDczlJR0JNSkh0a1lYUmhXekJkZlNBa2UyUmhkR0ZiTVYxOUlHQTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQndZWFJvTG5SeWFXMG9LVHRjYmlBZ0lDQjlYRzRnSUNBZ2RHOVFZWFJvY3loa2NtRjNZV0pzWlNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCelpYUnpJRDBnWkhKaGQyRmliR1V1YzJWMGN5QjhmQ0JiWFR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYnlBOUlHUnlZWGRoWW14bExtOXdkR2x2Ym5NZ2ZId2dkR2hwY3k1a1pXWmhkV3gwVDNCMGFXOXVjenRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjR0YwYUhNZ1BTQmJYVHRjYmlBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCa2NtRjNhVzVuSUc5bUlITmxkSE1wSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3hsZENCd1lYUm9JRDBnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdJQ0FnSUhOM2FYUmphQ0FvWkhKaGQybHVaeTUwZVhCbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmNHRjBhQ2M2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIQmhkR2dnUFNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa09pQjBhR2x6TG05d2MxUnZVR0YwYUNoa2NtRjNhVzVuS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOMGNtOXJaVG9nYnk1emRISnZhMlVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZEhKdmEyVlhhV1IwYURvZ2J5NXpkSEp2YTJWWGFXUjBhQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1pwYkd3NklFNVBVeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBblptbHNiRkJoZEdnbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3WVhSb0lEMGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaRG9nZEdocGN5NXZjSE5VYjFCaGRHZ29aSEpoZDJsdVp5a3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpkSEp2YTJVNklFNVBVeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE4wY205clpWZHBaSFJvT2lBd0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1ptbHNiRG9nYnk1bWFXeHNJSHg4SUU1UFV5eGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0FuWm1sc2JGTnJaWFJqYUNjNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJoZEdnZ1BTQjBhR2x6TG1acGJHeFRhMlYwWTJnb1pISmhkMmx1Wnl3Z2J5azdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIQmhkR2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCd1lYUm9jeTV3ZFhOb0tIQmhkR2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ3WVhSb2N6dGNiaUFnSUNCOVhHNGdJQ0FnWm1sc2JGTnJaWFJqYUNoa2NtRjNhVzVuTENCdktTQjdYRzRnSUNBZ0lDQWdJR3hsZENCbWQyVnBaMmgwSUQwZ2J5NW1hV3hzVjJWcFoyaDBPMXh1SUNBZ0lDQWdJQ0JwWmlBb1puZGxhV2RvZENBOElEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHWjNaV2xuYUhRZ1BTQnZMbk4wY205clpWZHBaSFJvSUM4Z01qdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pEb2dkR2hwY3k1dmNITlViMUJoZEdnb1pISmhkMmx1Wnlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZEhKdmEyVTZJRzh1Wm1sc2JDQjhmQ0JPVDFNc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZEhKdmEyVlhhV1IwYURvZ1puZGxhV2RvZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1pwYkd3NklFNVBVeXhjYmlBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0I5WEc1OVhHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9nZW5lcmF0b3IuanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9nZW9tZXRyeS5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2dlb21ldHJ5LmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicm90YXRlUG9pbnRzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcm90YXRlUG9pbnRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJyb3RhdGVMaW5lc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJvdGF0ZUxpbmVzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJsaW5lTGVuZ3RoXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gbGluZUxlbmd0aClcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG5mdW5jdGlvbiByb3RhdGVQb2ludHMocG9pbnRzLCBjZW50ZXIsIGRlZ3JlZXMpIHtcXG4gICAgaWYgKHBvaW50cyAmJiBwb2ludHMubGVuZ3RoKSB7XFxuICAgICAgICBjb25zdCBbY3gsIGN5XSA9IGNlbnRlcjtcXG4gICAgICAgIGNvbnN0IGFuZ2xlID0gKE1hdGguUEkgLyAxODApICogZGVncmVlcztcXG4gICAgICAgIGNvbnN0IGNvcyA9IE1hdGguY29zKGFuZ2xlKTtcXG4gICAgICAgIGNvbnN0IHNpbiA9IE1hdGguc2luKGFuZ2xlKTtcXG4gICAgICAgIHBvaW50cy5mb3JFYWNoKChwKSA9PiB7XFxuICAgICAgICAgICAgY29uc3QgW3gsIHldID0gcDtcXG4gICAgICAgICAgICBwWzBdID0gKCh4IC0gY3gpICogY29zKSAtICgoeSAtIGN5KSAqIHNpbikgKyBjeDtcXG4gICAgICAgICAgICBwWzFdID0gKCh4IC0gY3gpICogc2luKSArICgoeSAtIGN5KSAqIGNvcykgKyBjeTtcXG4gICAgICAgIH0pO1xcbiAgICB9XFxufVxcbmZ1bmN0aW9uIHJvdGF0ZUxpbmVzKGxpbmVzLCBjZW50ZXIsIGRlZ3JlZXMpIHtcXG4gICAgY29uc3QgcG9pbnRzID0gW107XFxuICAgIGxpbmVzLmZvckVhY2goKGxpbmUpID0+IHBvaW50cy5wdXNoKC4uLmxpbmUpKTtcXG4gICAgcm90YXRlUG9pbnRzKHBvaW50cywgY2VudGVyLCBkZWdyZWVzKTtcXG59XFxuZnVuY3Rpb24gbGluZUxlbmd0aChsaW5lKSB7XFxuICAgIGNvbnN0IHAxID0gbGluZVswXTtcXG4gICAgY29uc3QgcDIgPSBsaW5lWzFdO1xcbiAgICByZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHAxWzBdIC0gcDJbMF0sIDIpICsgTWF0aC5wb3cocDFbMV0gLSBwMlsxXSwgMikpO1xcbn1cXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDNKdmRXZG9hbk12WW1sdUwyZGxiMjFsZEhKNUxtcHpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3p0QlFVRlBPMEZCUTFBN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1UwRkJVenRCUVVOVU8wRkJRMEU3UVVGRFR6dEJRVU5RTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTA4N1FVRkRVRHRCUVVOQk8wRkJRMEU3UVVGRFFTSXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTh1TGk5dWIyUmxYMjF2WkhWc1pYTXZjbTkxWjJocWN5OWlhVzR2WjJWdmJXVjBjbmt1YW5NL1pXSTFPQ0pkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKbGVIQnZjblFnWm5WdVkzUnBiMjRnY205MFlYUmxVRzlwYm5SektIQnZhVzUwY3l3Z1kyVnVkR1Z5TENCa1pXZHlaV1Z6S1NCN1hHNGdJQ0FnYVdZZ0tIQnZhVzUwY3lBbUppQndiMmx1ZEhNdWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUZ0amVDd2dZM2xkSUQwZ1kyVnVkR1Z5TzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JoYm1kc1pTQTlJQ2hOWVhSb0xsQkpJQzhnTVRnd0tTQXFJR1JsWjNKbFpYTTdYRzRnSUNBZ0lDQWdJR052Ym5OMElHTnZjeUE5SUUxaGRHZ3VZMjl6S0dGdVoyeGxLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjMmx1SUQwZ1RXRjBhQzV6YVc0b1lXNW5iR1VwTzF4dUlDQWdJQ0FnSUNCd2IybHVkSE11Wm05eVJXRmphQ2dvY0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnVzNnc0lIbGRJRDBnY0R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJiTUYwZ1BTQW9LSGdnTFNCamVDa2dLaUJqYjNNcElDMGdLQ2g1SUMwZ1kza3BJQ29nYzJsdUtTQXJJR040TzF4dUlDQWdJQ0FnSUNBZ0lDQWdjRnN4WFNBOUlDZ29lQ0F0SUdONEtTQXFJSE5wYmlrZ0t5QW9LSGtnTFNCamVTa2dLaUJqYjNNcElDc2dZM2s3WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUgxY2JuMWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnliM1JoZEdWTWFXNWxjeWhzYVc1bGN5d2dZMlZ1ZEdWeUxDQmtaV2R5WldWektTQjdYRzRnSUNBZ1kyOXVjM1FnY0c5cGJuUnpJRDBnVzEwN1hHNGdJQ0FnYkdsdVpYTXVabTl5UldGamFDZ29iR2x1WlNrZ1BUNGdjRzlwYm5SekxuQjFjMmdvTGk0dWJHbHVaU2twTzF4dUlDQWdJSEp2ZEdGMFpWQnZhVzUwY3lod2IybHVkSE1zSUdObGJuUmxjaXdnWkdWbmNtVmxjeWs3WEc1OVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2JHbHVaVXhsYm1kMGFDaHNhVzVsS1NCN1hHNGdJQ0FnWTI5dWMzUWdjREVnUFNCc2FXNWxXekJkTzF4dUlDQWdJR052Ym5OMElIQXlJRDBnYkdsdVpWc3hYVHRjYmlBZ0lDQnlaWFIxY200Z1RXRjBhQzV6Y1hKMEtFMWhkR2d1Y0c5M0tIQXhXekJkSUMwZ2NESmJNRjBzSURJcElDc2dUV0YwYUM1d2IzY29jREZiTVYwZ0xTQndNbHN4WFN3Z01pa3BPMXh1ZlZ4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2dlb21ldHJ5LmpzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vbWF0aC5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vbWF0aC5qcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicmFuZG9tU2VlZFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJhbmRvbVNlZWQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlJhbmRvbVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFJhbmRvbSlcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG5mdW5jdGlvbiByYW5kb21TZWVkKCkge1xcbiAgICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMiAqKiAzMSk7XFxufVxcbmNsYXNzIFJhbmRvbSB7XFxuICAgIGNvbnN0cnVjdG9yKHNlZWQpIHtcXG4gICAgICAgIHRoaXMuc2VlZCA9IHNlZWQ7XFxuICAgIH1cXG4gICAgbmV4dCgpIHtcXG4gICAgICAgIGlmICh0aGlzLnNlZWQpIHtcXG4gICAgICAgICAgICByZXR1cm4gKCgyICoqIDMxIC0gMSkgJiAodGhpcy5zZWVkID0gTWF0aC5pbXVsKDQ4MjcxLCB0aGlzLnNlZWQpKSkgLyAyICoqIDMxO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgcmV0dXJuIE1hdGgucmFuZG9tKCk7XFxuICAgICAgICB9XFxuICAgIH1cXG59XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzSnZkV2RvYW5NdlltbHVMMjFoZEdndWFuTXVhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3UVVGQlR6dEJRVU5RTzBGQlEwRTdRVUZEVHp0QlFVTlFPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU0lzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk4dUxpOXViMlJsWDIxdlpIVnNaWE12Y205MVoyaHFjeTlpYVc0dmJXRjBhQzVxY3o4Mk5XUmtJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ5WVc1a2IyMVRaV1ZrS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUJOWVhSb0xtWnNiMjl5S0UxaGRHZ3VjbUZ1Wkc5dEtDa2dLaUF5SUNvcUlETXhLVHRjYm4xY2JtVjRjRzl5ZENCamJHRnpjeUJTWVc1a2IyMGdlMXh1SUNBZ0lHTnZibk4wY25WamRHOXlLSE5sWldRcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1elpXVmtJRDBnYzJWbFpEdGNiaUFnSUNCOVhHNGdJQ0FnYm1WNGRDZ3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11YzJWbFpDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNnb01pQXFLaUF6TVNBdElERXBJQ1lnS0hSb2FYTXVjMlZsWkNBOUlFMWhkR2d1YVcxMWJDZzBPREkzTVN3Z2RHaHBjeTV6WldWa0tTa3BJQzhnTWlBcUtpQXpNVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCTllYUm9MbkpoYm1SdmJTZ3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1ZlZ4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL21hdGguanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9yZW5kZXJlci5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL3JlbmRlcmVyLmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibGluZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGxpbmUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImxpbmVhclBhdGhcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBsaW5lYXJQYXRoKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJwb2x5Z29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcG9seWdvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicmVjdGFuZ2xlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcmVjdGFuZ2xlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJjdXJ2ZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGN1cnZlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJlbGxpcHNlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZWxsaXBzZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2VuZXJhdGVFbGxpcHNlUGFyYW1zXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2VuZXJhdGVFbGxpcHNlUGFyYW1zKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJlbGxpcHNlV2l0aFBhcmFtc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGVsbGlwc2VXaXRoUGFyYW1zKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhcmNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhcmMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInN2Z1BhdGhcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBzdmdQYXRoKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJzb2xpZEZpbGxQb2x5Z29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gc29saWRGaWxsUG9seWdvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicGF0dGVybkZpbGxQb2x5Z29uc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHBhdHRlcm5GaWxsUG9seWdvbnMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInBhdHRlcm5GaWxsQXJjXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcGF0dGVybkZpbGxBcmMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJhbmRPZmZzZXRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyByYW5kT2Zmc2V0KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJyYW5kT2Zmc2V0V2l0aFJhbmdlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcmFuZE9mZnNldFdpdGhSYW5nZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZG91YmxlTGluZUZpbGxPcHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBkb3VibGVMaW5lRmlsbE9wcylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2ZpbGxlcnNfZmlsbGVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2ZpbGxlcnMvZmlsbGVyLmpzICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vZmlsbGVycy9maWxsZXIuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX21hdGhfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vbWF0aC5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL21hdGguanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcGF0aF9kYXRhX3BhcnNlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcGF0aC1kYXRhLXBhcnNlciAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BhdGgtZGF0YS1wYXJzZXIvbGliL2luZGV4LmpzXFxcIik7XFxuXFxuXFxuXFxuY29uc3QgaGVscGVyID0ge1xcbiAgICByYW5kT2Zmc2V0LFxcbiAgICByYW5kT2Zmc2V0V2l0aFJhbmdlLFxcbiAgICBlbGxpcHNlLFxcbiAgICBkb3VibGVMaW5lT3BzOiBkb3VibGVMaW5lRmlsbE9wcyxcXG59O1xcbmZ1bmN0aW9uIGxpbmUoeDEsIHkxLCB4MiwgeTIsIG8pIHtcXG4gICAgcmV0dXJuIHsgdHlwZTogJ3BhdGgnLCBvcHM6IF9kb3VibGVMaW5lKHgxLCB5MSwgeDIsIHkyLCBvKSB9O1xcbn1cXG5mdW5jdGlvbiBsaW5lYXJQYXRoKHBvaW50cywgY2xvc2UsIG8pIHtcXG4gICAgY29uc3QgbGVuID0gKHBvaW50cyB8fCBbXSkubGVuZ3RoO1xcbiAgICBpZiAobGVuID4gMikge1xcbiAgICAgICAgY29uc3Qgb3BzID0gW107XFxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IChsZW4gLSAxKTsgaSsrKSB7XFxuICAgICAgICAgICAgb3BzLnB1c2goLi4uX2RvdWJsZUxpbmUocG9pbnRzW2ldWzBdLCBwb2ludHNbaV1bMV0sIHBvaW50c1tpICsgMV1bMF0sIHBvaW50c1tpICsgMV1bMV0sIG8pKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChjbG9zZSkge1xcbiAgICAgICAgICAgIG9wcy5wdXNoKC4uLl9kb3VibGVMaW5lKHBvaW50c1tsZW4gLSAxXVswXSwgcG9pbnRzW2xlbiAtIDFdWzFdLCBwb2ludHNbMF1bMF0sIHBvaW50c1swXVsxXSwgbykpO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogJ3BhdGgnLCBvcHMgfTtcXG4gICAgfVxcbiAgICBlbHNlIGlmIChsZW4gPT09IDIpIHtcXG4gICAgICAgIHJldHVybiBsaW5lKHBvaW50c1swXVswXSwgcG9pbnRzWzBdWzFdLCBwb2ludHNbMV1bMF0sIHBvaW50c1sxXVsxXSwgbyk7XFxuICAgIH1cXG4gICAgcmV0dXJuIHsgdHlwZTogJ3BhdGgnLCBvcHM6IFtdIH07XFxufVxcbmZ1bmN0aW9uIHBvbHlnb24ocG9pbnRzLCBvKSB7XFxuICAgIHJldHVybiBsaW5lYXJQYXRoKHBvaW50cywgdHJ1ZSwgbyk7XFxufVxcbmZ1bmN0aW9uIHJlY3RhbmdsZSh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBvKSB7XFxuICAgIGNvbnN0IHBvaW50cyA9IFtcXG4gICAgICAgIFt4LCB5XSxcXG4gICAgICAgIFt4ICsgd2lkdGgsIHldLFxcbiAgICAgICAgW3ggKyB3aWR0aCwgeSArIGhlaWdodF0sXFxuICAgICAgICBbeCwgeSArIGhlaWdodF0sXFxuICAgIF07XFxuICAgIHJldHVybiBwb2x5Z29uKHBvaW50cywgbyk7XFxufVxcbmZ1bmN0aW9uIGN1cnZlKHBvaW50cywgbykge1xcbiAgICBsZXQgbzEgPSBfY3VydmVXaXRoT2Zmc2V0KHBvaW50cywgMSAqICgxICsgby5yb3VnaG5lc3MgKiAwLjIpLCBvKTtcXG4gICAgaWYgKCFvLmRpc2FibGVNdWx0aVN0cm9rZSkge1xcbiAgICAgICAgY29uc3QgbzIgPSBfY3VydmVXaXRoT2Zmc2V0KHBvaW50cywgMS41ICogKDEgKyBvLnJvdWdobmVzcyAqIDAuMjIpLCBjbG9uZU9wdGlvbnNBbHRlclNlZWQobykpO1xcbiAgICAgICAgbzEgPSBvMS5jb25jYXQobzIpO1xcbiAgICB9XFxuICAgIHJldHVybiB7IHR5cGU6ICdwYXRoJywgb3BzOiBvMSB9O1xcbn1cXG5mdW5jdGlvbiBlbGxpcHNlKHgsIHksIHdpZHRoLCBoZWlnaHQsIG8pIHtcXG4gICAgY29uc3QgcGFyYW1zID0gZ2VuZXJhdGVFbGxpcHNlUGFyYW1zKHdpZHRoLCBoZWlnaHQsIG8pO1xcbiAgICByZXR1cm4gZWxsaXBzZVdpdGhQYXJhbXMoeCwgeSwgbywgcGFyYW1zKS5vcHNldDtcXG59XFxuZnVuY3Rpb24gZ2VuZXJhdGVFbGxpcHNlUGFyYW1zKHdpZHRoLCBoZWlnaHQsIG8pIHtcXG4gICAgY29uc3QgcHNxID0gTWF0aC5zcXJ0KE1hdGguUEkgKiAyICogTWF0aC5zcXJ0KChNYXRoLnBvdyh3aWR0aCAvIDIsIDIpICsgTWF0aC5wb3coaGVpZ2h0IC8gMiwgMikpIC8gMikpO1xcbiAgICBjb25zdCBzdGVwQ291bnQgPSBNYXRoLmNlaWwoTWF0aC5tYXgoby5jdXJ2ZVN0ZXBDb3VudCwgKG8uY3VydmVTdGVwQ291bnQgLyBNYXRoLnNxcnQoMjAwKSkgKiBwc3EpKTtcXG4gICAgY29uc3QgaW5jcmVtZW50ID0gKE1hdGguUEkgKiAyKSAvIHN0ZXBDb3VudDtcXG4gICAgbGV0IHJ4ID0gTWF0aC5hYnMod2lkdGggLyAyKTtcXG4gICAgbGV0IHJ5ID0gTWF0aC5hYnMoaGVpZ2h0IC8gMik7XFxuICAgIGNvbnN0IGN1cnZlRml0UmFuZG9tbmVzcyA9IDEgLSBvLmN1cnZlRml0dGluZztcXG4gICAgcnggKz0gX29mZnNldE9wdChyeCAqIGN1cnZlRml0UmFuZG9tbmVzcywgbyk7XFxuICAgIHJ5ICs9IF9vZmZzZXRPcHQocnkgKiBjdXJ2ZUZpdFJhbmRvbW5lc3MsIG8pO1xcbiAgICByZXR1cm4geyBpbmNyZW1lbnQsIHJ4LCByeSB9O1xcbn1cXG5mdW5jdGlvbiBlbGxpcHNlV2l0aFBhcmFtcyh4LCB5LCBvLCBlbGxpcHNlUGFyYW1zKSB7XFxuICAgIGNvbnN0IFthcDEsIGNwMV0gPSBfY29tcHV0ZUVsbGlwc2VQb2ludHMoZWxsaXBzZVBhcmFtcy5pbmNyZW1lbnQsIHgsIHksIGVsbGlwc2VQYXJhbXMucngsIGVsbGlwc2VQYXJhbXMucnksIDEsIGVsbGlwc2VQYXJhbXMuaW5jcmVtZW50ICogX29mZnNldCgwLjEsIF9vZmZzZXQoMC40LCAxLCBvKSwgbyksIG8pO1xcbiAgICBsZXQgbzEgPSBfY3VydmUoYXAxLCBudWxsLCBvKTtcXG4gICAgaWYgKCghby5kaXNhYmxlTXVsdGlTdHJva2UpICYmIChvLnJvdWdobmVzcyAhPT0gMCkpIHtcXG4gICAgICAgIGNvbnN0IFthcDJdID0gX2NvbXB1dGVFbGxpcHNlUG9pbnRzKGVsbGlwc2VQYXJhbXMuaW5jcmVtZW50LCB4LCB5LCBlbGxpcHNlUGFyYW1zLnJ4LCBlbGxpcHNlUGFyYW1zLnJ5LCAxLjUsIDAsIG8pO1xcbiAgICAgICAgY29uc3QgbzIgPSBfY3VydmUoYXAyLCBudWxsLCBvKTtcXG4gICAgICAgIG8xID0gbzEuY29uY2F0KG8yKTtcXG4gICAgfVxcbiAgICByZXR1cm4ge1xcbiAgICAgICAgZXN0aW1hdGVkUG9pbnRzOiBjcDEsXFxuICAgICAgICBvcHNldDogeyB0eXBlOiAncGF0aCcsIG9wczogbzEgfSxcXG4gICAgfTtcXG59XFxuZnVuY3Rpb24gYXJjKHgsIHksIHdpZHRoLCBoZWlnaHQsIHN0YXJ0LCBzdG9wLCBjbG9zZWQsIHJvdWdoQ2xvc3VyZSwgbykge1xcbiAgICBjb25zdCBjeCA9IHg7XFxuICAgIGNvbnN0IGN5ID0geTtcXG4gICAgbGV0IHJ4ID0gTWF0aC5hYnMod2lkdGggLyAyKTtcXG4gICAgbGV0IHJ5ID0gTWF0aC5hYnMoaGVpZ2h0IC8gMik7XFxuICAgIHJ4ICs9IF9vZmZzZXRPcHQocnggKiAwLjAxLCBvKTtcXG4gICAgcnkgKz0gX29mZnNldE9wdChyeSAqIDAuMDEsIG8pO1xcbiAgICBsZXQgc3RydCA9IHN0YXJ0O1xcbiAgICBsZXQgc3RwID0gc3RvcDtcXG4gICAgd2hpbGUgKHN0cnQgPCAwKSB7XFxuICAgICAgICBzdHJ0ICs9IE1hdGguUEkgKiAyO1xcbiAgICAgICAgc3RwICs9IE1hdGguUEkgKiAyO1xcbiAgICB9XFxuICAgIGlmICgoc3RwIC0gc3RydCkgPiAoTWF0aC5QSSAqIDIpKSB7XFxuICAgICAgICBzdHJ0ID0gMDtcXG4gICAgICAgIHN0cCA9IE1hdGguUEkgKiAyO1xcbiAgICB9XFxuICAgIGNvbnN0IGVsbGlwc2VJbmMgPSAoTWF0aC5QSSAqIDIpIC8gby5jdXJ2ZVN0ZXBDb3VudDtcXG4gICAgY29uc3QgYXJjSW5jID0gTWF0aC5taW4oZWxsaXBzZUluYyAvIDIsIChzdHAgLSBzdHJ0KSAvIDIpO1xcbiAgICBjb25zdCBvcHMgPSBfYXJjKGFyY0luYywgY3gsIGN5LCByeCwgcnksIHN0cnQsIHN0cCwgMSwgbyk7XFxuICAgIGlmICghby5kaXNhYmxlTXVsdGlTdHJva2UpIHtcXG4gICAgICAgIGNvbnN0IG8yID0gX2FyYyhhcmNJbmMsIGN4LCBjeSwgcngsIHJ5LCBzdHJ0LCBzdHAsIDEuNSwgbyk7XFxuICAgICAgICBvcHMucHVzaCguLi5vMik7XFxuICAgIH1cXG4gICAgaWYgKGNsb3NlZCkge1xcbiAgICAgICAgaWYgKHJvdWdoQ2xvc3VyZSkge1xcbiAgICAgICAgICAgIG9wcy5wdXNoKC4uLl9kb3VibGVMaW5lKGN4LCBjeSwgY3ggKyByeCAqIE1hdGguY29zKHN0cnQpLCBjeSArIHJ5ICogTWF0aC5zaW4oc3RydCksIG8pLCAuLi5fZG91YmxlTGluZShjeCwgY3ksIGN4ICsgcnggKiBNYXRoLmNvcyhzdHApLCBjeSArIHJ5ICogTWF0aC5zaW4oc3RwKSwgbykpO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgb3BzLnB1c2goeyBvcDogJ2xpbmVUbycsIGRhdGE6IFtjeCwgY3ldIH0sIHsgb3A6ICdsaW5lVG8nLCBkYXRhOiBbY3ggKyByeCAqIE1hdGguY29zKHN0cnQpLCBjeSArIHJ5ICogTWF0aC5zaW4oc3RydCldIH0pO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiB7IHR5cGU6ICdwYXRoJywgb3BzIH07XFxufVxcbmZ1bmN0aW9uIHN2Z1BhdGgocGF0aCwgbykge1xcbiAgICBjb25zdCBzZWdtZW50cyA9ICgwLHBhdGhfZGF0YV9wYXJzZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5ub3JtYWxpemUpKCgwLHBhdGhfZGF0YV9wYXJzZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5hYnNvbHV0aXplKSgoMCxwYXRoX2RhdGFfcGFyc2VyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ucGFyc2VQYXRoKShwYXRoKSkpO1xcbiAgICBjb25zdCBvcHMgPSBbXTtcXG4gICAgbGV0IGZpcnN0ID0gWzAsIDBdO1xcbiAgICBsZXQgY3VycmVudCA9IFswLCAwXTtcXG4gICAgZm9yIChjb25zdCB7IGtleSwgZGF0YSB9IG9mIHNlZ21lbnRzKSB7XFxuICAgICAgICBzd2l0Y2ggKGtleSkge1xcbiAgICAgICAgICAgIGNhc2UgJ00nOiB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHJvID0gMSAqIChvLm1heFJhbmRvbW5lc3NPZmZzZXQgfHwgMCk7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHB2ID0gby5wcmVzZXJ2ZVZlcnRpY2VzO1xcbiAgICAgICAgICAgICAgICBvcHMucHVzaCh7IG9wOiAnbW92ZScsIGRhdGE6IGRhdGEubWFwKChkKSA9PiBkICsgKHB2ID8gMCA6IF9vZmZzZXRPcHQocm8sIG8pKSkgfSk7XFxuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBbZGF0YVswXSwgZGF0YVsxXV07XFxuICAgICAgICAgICAgICAgIGZpcnN0ID0gW2RhdGFbMF0sIGRhdGFbMV1dO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY2FzZSAnTCc6XFxuICAgICAgICAgICAgICAgIG9wcy5wdXNoKC4uLl9kb3VibGVMaW5lKGN1cnJlbnRbMF0sIGN1cnJlbnRbMV0sIGRhdGFbMF0sIGRhdGFbMV0sIG8pKTtcXG4gICAgICAgICAgICAgICAgY3VycmVudCA9IFtkYXRhWzBdLCBkYXRhWzFdXTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSAnQyc6IHtcXG4gICAgICAgICAgICAgICAgY29uc3QgW3gxLCB5MSwgeDIsIHkyLCB4LCB5XSA9IGRhdGE7XFxuICAgICAgICAgICAgICAgIG9wcy5wdXNoKC4uLl9iZXppZXJUbyh4MSwgeTEsIHgyLCB5MiwgeCwgeSwgY3VycmVudCwgbykpO1xcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gW3gsIHldO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY2FzZSAnWic6XFxuICAgICAgICAgICAgICAgIG9wcy5wdXNoKC4uLl9kb3VibGVMaW5lKGN1cnJlbnRbMF0sIGN1cnJlbnRbMV0sIGZpcnN0WzBdLCBmaXJzdFsxXSwgbykpO1xcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gW2ZpcnN0WzBdLCBmaXJzdFsxXV07XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiB7IHR5cGU6ICdwYXRoJywgb3BzIH07XFxufVxcbi8vIEZpbGxzXFxuZnVuY3Rpb24gc29saWRGaWxsUG9seWdvbihwb2x5Z29uTGlzdCwgbykge1xcbiAgICBjb25zdCBvcHMgPSBbXTtcXG4gICAgZm9yIChjb25zdCBwb2ludHMgb2YgcG9seWdvbkxpc3QpIHtcXG4gICAgICAgIGlmIChwb2ludHMubGVuZ3RoKSB7XFxuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gby5tYXhSYW5kb21uZXNzT2Zmc2V0IHx8IDA7XFxuICAgICAgICAgICAgY29uc3QgbGVuID0gcG9pbnRzLmxlbmd0aDtcXG4gICAgICAgICAgICBpZiAobGVuID4gMikge1xcbiAgICAgICAgICAgICAgICBvcHMucHVzaCh7IG9wOiAnbW92ZScsIGRhdGE6IFtwb2ludHNbMF1bMF0gKyBfb2Zmc2V0T3B0KG9mZnNldCwgbyksIHBvaW50c1swXVsxXSArIF9vZmZzZXRPcHQob2Zmc2V0LCBvKV0gfSk7XFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbGVuOyBpKyspIHtcXG4gICAgICAgICAgICAgICAgICAgIG9wcy5wdXNoKHsgb3A6ICdsaW5lVG8nLCBkYXRhOiBbcG9pbnRzW2ldWzBdICsgX29mZnNldE9wdChvZmZzZXQsIG8pLCBwb2ludHNbaV1bMV0gKyBfb2Zmc2V0T3B0KG9mZnNldCwgbyldIH0pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiB7IHR5cGU6ICdmaWxsUGF0aCcsIG9wcyB9O1xcbn1cXG5mdW5jdGlvbiBwYXR0ZXJuRmlsbFBvbHlnb25zKHBvbHlnb25MaXN0LCBvKSB7XFxuICAgIHJldHVybiAoMCxfZmlsbGVyc19maWxsZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5nZXRGaWxsZXIpKG8sIGhlbHBlcikuZmlsbFBvbHlnb25zKHBvbHlnb25MaXN0LCBvKTtcXG59XFxuZnVuY3Rpb24gcGF0dGVybkZpbGxBcmMoeCwgeSwgd2lkdGgsIGhlaWdodCwgc3RhcnQsIHN0b3AsIG8pIHtcXG4gICAgY29uc3QgY3ggPSB4O1xcbiAgICBjb25zdCBjeSA9IHk7XFxuICAgIGxldCByeCA9IE1hdGguYWJzKHdpZHRoIC8gMik7XFxuICAgIGxldCByeSA9IE1hdGguYWJzKGhlaWdodCAvIDIpO1xcbiAgICByeCArPSBfb2Zmc2V0T3B0KHJ4ICogMC4wMSwgbyk7XFxuICAgIHJ5ICs9IF9vZmZzZXRPcHQocnkgKiAwLjAxLCBvKTtcXG4gICAgbGV0IHN0cnQgPSBzdGFydDtcXG4gICAgbGV0IHN0cCA9IHN0b3A7XFxuICAgIHdoaWxlIChzdHJ0IDwgMCkge1xcbiAgICAgICAgc3RydCArPSBNYXRoLlBJICogMjtcXG4gICAgICAgIHN0cCArPSBNYXRoLlBJICogMjtcXG4gICAgfVxcbiAgICBpZiAoKHN0cCAtIHN0cnQpID4gKE1hdGguUEkgKiAyKSkge1xcbiAgICAgICAgc3RydCA9IDA7XFxuICAgICAgICBzdHAgPSBNYXRoLlBJICogMjtcXG4gICAgfVxcbiAgICBjb25zdCBpbmNyZW1lbnQgPSAoc3RwIC0gc3RydCkgLyBvLmN1cnZlU3RlcENvdW50O1xcbiAgICBjb25zdCBwb2ludHMgPSBbXTtcXG4gICAgZm9yIChsZXQgYW5nbGUgPSBzdHJ0OyBhbmdsZSA8PSBzdHA7IGFuZ2xlID0gYW5nbGUgKyBpbmNyZW1lbnQpIHtcXG4gICAgICAgIHBvaW50cy5wdXNoKFtjeCArIHJ4ICogTWF0aC5jb3MoYW5nbGUpLCBjeSArIHJ5ICogTWF0aC5zaW4oYW5nbGUpXSk7XFxuICAgIH1cXG4gICAgcG9pbnRzLnB1c2goW2N4ICsgcnggKiBNYXRoLmNvcyhzdHApLCBjeSArIHJ5ICogTWF0aC5zaW4oc3RwKV0pO1xcbiAgICBwb2ludHMucHVzaChbY3gsIGN5XSk7XFxuICAgIHJldHVybiBwYXR0ZXJuRmlsbFBvbHlnb25zKFtwb2ludHNdLCBvKTtcXG59XFxuZnVuY3Rpb24gcmFuZE9mZnNldCh4LCBvKSB7XFxuICAgIHJldHVybiBfb2Zmc2V0T3B0KHgsIG8pO1xcbn1cXG5mdW5jdGlvbiByYW5kT2Zmc2V0V2l0aFJhbmdlKG1pbiwgbWF4LCBvKSB7XFxuICAgIHJldHVybiBfb2Zmc2V0KG1pbiwgbWF4LCBvKTtcXG59XFxuZnVuY3Rpb24gZG91YmxlTGluZUZpbGxPcHMoeDEsIHkxLCB4MiwgeTIsIG8pIHtcXG4gICAgcmV0dXJuIF9kb3VibGVMaW5lKHgxLCB5MSwgeDIsIHkyLCBvLCB0cnVlKTtcXG59XFxuLy8gUHJpdmF0ZSBoZWxwZXJzXFxuZnVuY3Rpb24gY2xvbmVPcHRpb25zQWx0ZXJTZWVkKG9wcykge1xcbiAgICBjb25zdCByZXN1bHQgPSBPYmplY3QuYXNzaWduKHt9LCBvcHMpO1xcbiAgICByZXN1bHQucmFuZG9taXplciA9IHVuZGVmaW5lZDtcXG4gICAgaWYgKG9wcy5zZWVkKSB7XFxuICAgICAgICByZXN1bHQuc2VlZCA9IG9wcy5zZWVkICsgMTtcXG4gICAgfVxcbiAgICByZXR1cm4gcmVzdWx0O1xcbn1cXG5mdW5jdGlvbiByYW5kb20ob3BzKSB7XFxuICAgIGlmICghb3BzLnJhbmRvbWl6ZXIpIHtcXG4gICAgICAgIG9wcy5yYW5kb21pemVyID0gbmV3IF9tYXRoX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uUmFuZG9tKG9wcy5zZWVkIHx8IDApO1xcbiAgICB9XFxuICAgIHJldHVybiBvcHMucmFuZG9taXplci5uZXh0KCk7XFxufVxcbmZ1bmN0aW9uIF9vZmZzZXQobWluLCBtYXgsIG9wcywgcm91Z2huZXNzR2FpbiA9IDEpIHtcXG4gICAgcmV0dXJuIG9wcy5yb3VnaG5lc3MgKiByb3VnaG5lc3NHYWluICogKChyYW5kb20ob3BzKSAqIChtYXggLSBtaW4pKSArIG1pbik7XFxufVxcbmZ1bmN0aW9uIF9vZmZzZXRPcHQoeCwgb3BzLCByb3VnaG5lc3NHYWluID0gMSkge1xcbiAgICByZXR1cm4gX29mZnNldCgteCwgeCwgb3BzLCByb3VnaG5lc3NHYWluKTtcXG59XFxuZnVuY3Rpb24gX2RvdWJsZUxpbmUoeDEsIHkxLCB4MiwgeTIsIG8sIGZpbGxpbmcgPSBmYWxzZSkge1xcbiAgICBjb25zdCBzaW5nbGVTdHJva2UgPSBmaWxsaW5nID8gby5kaXNhYmxlTXVsdGlTdHJva2VGaWxsIDogby5kaXNhYmxlTXVsdGlTdHJva2U7XFxuICAgIGNvbnN0IG8xID0gX2xpbmUoeDEsIHkxLCB4MiwgeTIsIG8sIHRydWUsIGZhbHNlKTtcXG4gICAgaWYgKHNpbmdsZVN0cm9rZSkge1xcbiAgICAgICAgcmV0dXJuIG8xO1xcbiAgICB9XFxuICAgIGNvbnN0IG8yID0gX2xpbmUoeDEsIHkxLCB4MiwgeTIsIG8sIHRydWUsIHRydWUpO1xcbiAgICByZXR1cm4gbzEuY29uY2F0KG8yKTtcXG59XFxuZnVuY3Rpb24gX2xpbmUoeDEsIHkxLCB4MiwgeTIsIG8sIG1vdmUsIG92ZXJsYXkpIHtcXG4gICAgY29uc3QgbGVuZ3RoU3EgPSBNYXRoLnBvdygoeDEgLSB4MiksIDIpICsgTWF0aC5wb3coKHkxIC0geTIpLCAyKTtcXG4gICAgY29uc3QgbGVuZ3RoID0gTWF0aC5zcXJ0KGxlbmd0aFNxKTtcXG4gICAgbGV0IHJvdWdobmVzc0dhaW4gPSAxO1xcbiAgICBpZiAobGVuZ3RoIDwgMjAwKSB7XFxuICAgICAgICByb3VnaG5lc3NHYWluID0gMTtcXG4gICAgfVxcbiAgICBlbHNlIGlmIChsZW5ndGggPiA1MDApIHtcXG4gICAgICAgIHJvdWdobmVzc0dhaW4gPSAwLjQ7XFxuICAgIH1cXG4gICAgZWxzZSB7XFxuICAgICAgICByb3VnaG5lc3NHYWluID0gKC0wLjAwMTY2NjgpICogbGVuZ3RoICsgMS4yMzMzMzQ7XFxuICAgIH1cXG4gICAgbGV0IG9mZnNldCA9IG8ubWF4UmFuZG9tbmVzc09mZnNldCB8fCAwO1xcbiAgICBpZiAoKG9mZnNldCAqIG9mZnNldCAqIDEwMCkgPiBsZW5ndGhTcSkge1xcbiAgICAgICAgb2Zmc2V0ID0gbGVuZ3RoIC8gMTA7XFxuICAgIH1cXG4gICAgY29uc3QgaGFsZk9mZnNldCA9IG9mZnNldCAvIDI7XFxuICAgIGNvbnN0IGRpdmVyZ2VQb2ludCA9IDAuMiArIHJhbmRvbShvKSAqIDAuMjtcXG4gICAgbGV0IG1pZERpc3BYID0gby5ib3dpbmcgKiBvLm1heFJhbmRvbW5lc3NPZmZzZXQgKiAoeTIgLSB5MSkgLyAyMDA7XFxuICAgIGxldCBtaWREaXNwWSA9IG8uYm93aW5nICogby5tYXhSYW5kb21uZXNzT2Zmc2V0ICogKHgxIC0geDIpIC8gMjAwO1xcbiAgICBtaWREaXNwWCA9IF9vZmZzZXRPcHQobWlkRGlzcFgsIG8sIHJvdWdobmVzc0dhaW4pO1xcbiAgICBtaWREaXNwWSA9IF9vZmZzZXRPcHQobWlkRGlzcFksIG8sIHJvdWdobmVzc0dhaW4pO1xcbiAgICBjb25zdCBvcHMgPSBbXTtcXG4gICAgY29uc3QgcmFuZG9tSGFsZiA9ICgpID0+IF9vZmZzZXRPcHQoaGFsZk9mZnNldCwgbywgcm91Z2huZXNzR2Fpbik7XFxuICAgIGNvbnN0IHJhbmRvbUZ1bGwgPSAoKSA9PiBfb2Zmc2V0T3B0KG9mZnNldCwgbywgcm91Z2huZXNzR2Fpbik7XFxuICAgIGNvbnN0IHByZXNlcnZlVmVydGljZXMgPSBvLnByZXNlcnZlVmVydGljZXM7XFxuICAgIGlmIChtb3ZlKSB7XFxuICAgICAgICBpZiAob3ZlcmxheSkge1xcbiAgICAgICAgICAgIG9wcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgb3A6ICdtb3ZlJywgZGF0YTogW1xcbiAgICAgICAgICAgICAgICAgICAgeDEgKyAocHJlc2VydmVWZXJ0aWNlcyA/IDAgOiByYW5kb21IYWxmKCkpLFxcbiAgICAgICAgICAgICAgICAgICAgeTEgKyAocHJlc2VydmVWZXJ0aWNlcyA/IDAgOiByYW5kb21IYWxmKCkpLFxcbiAgICAgICAgICAgICAgICBdLFxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgb3BzLnB1c2goe1xcbiAgICAgICAgICAgICAgICBvcDogJ21vdmUnLCBkYXRhOiBbXFxuICAgICAgICAgICAgICAgICAgICB4MSArIChwcmVzZXJ2ZVZlcnRpY2VzID8gMCA6IF9vZmZzZXRPcHQob2Zmc2V0LCBvLCByb3VnaG5lc3NHYWluKSksXFxuICAgICAgICAgICAgICAgICAgICB5MSArIChwcmVzZXJ2ZVZlcnRpY2VzID8gMCA6IF9vZmZzZXRPcHQob2Zmc2V0LCBvLCByb3VnaG5lc3NHYWluKSksXFxuICAgICAgICAgICAgICAgIF0sXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgaWYgKG92ZXJsYXkpIHtcXG4gICAgICAgIG9wcy5wdXNoKHtcXG4gICAgICAgICAgICBvcDogJ2JjdXJ2ZVRvJyxcXG4gICAgICAgICAgICBkYXRhOiBbXFxuICAgICAgICAgICAgICAgIG1pZERpc3BYICsgeDEgKyAoeDIgLSB4MSkgKiBkaXZlcmdlUG9pbnQgKyByYW5kb21IYWxmKCksXFxuICAgICAgICAgICAgICAgIG1pZERpc3BZICsgeTEgKyAoeTIgLSB5MSkgKiBkaXZlcmdlUG9pbnQgKyByYW5kb21IYWxmKCksXFxuICAgICAgICAgICAgICAgIG1pZERpc3BYICsgeDEgKyAyICogKHgyIC0geDEpICogZGl2ZXJnZVBvaW50ICsgcmFuZG9tSGFsZigpLFxcbiAgICAgICAgICAgICAgICBtaWREaXNwWSArIHkxICsgMiAqICh5MiAtIHkxKSAqIGRpdmVyZ2VQb2ludCArIHJhbmRvbUhhbGYoKSxcXG4gICAgICAgICAgICAgICAgeDIgKyAocHJlc2VydmVWZXJ0aWNlcyA/IDAgOiByYW5kb21IYWxmKCkpLFxcbiAgICAgICAgICAgICAgICB5MiArIChwcmVzZXJ2ZVZlcnRpY2VzID8gMCA6IHJhbmRvbUhhbGYoKSksXFxuICAgICAgICAgICAgXSxcXG4gICAgICAgIH0pO1xcbiAgICB9XFxuICAgIGVsc2Uge1xcbiAgICAgICAgb3BzLnB1c2goe1xcbiAgICAgICAgICAgIG9wOiAnYmN1cnZlVG8nLFxcbiAgICAgICAgICAgIGRhdGE6IFtcXG4gICAgICAgICAgICAgICAgbWlkRGlzcFggKyB4MSArICh4MiAtIHgxKSAqIGRpdmVyZ2VQb2ludCArIHJhbmRvbUZ1bGwoKSxcXG4gICAgICAgICAgICAgICAgbWlkRGlzcFkgKyB5MSArICh5MiAtIHkxKSAqIGRpdmVyZ2VQb2ludCArIHJhbmRvbUZ1bGwoKSxcXG4gICAgICAgICAgICAgICAgbWlkRGlzcFggKyB4MSArIDIgKiAoeDIgLSB4MSkgKiBkaXZlcmdlUG9pbnQgKyByYW5kb21GdWxsKCksXFxuICAgICAgICAgICAgICAgIG1pZERpc3BZICsgeTEgKyAyICogKHkyIC0geTEpICogZGl2ZXJnZVBvaW50ICsgcmFuZG9tRnVsbCgpLFxcbiAgICAgICAgICAgICAgICB4MiArIChwcmVzZXJ2ZVZlcnRpY2VzID8gMCA6IHJhbmRvbUZ1bGwoKSksXFxuICAgICAgICAgICAgICAgIHkyICsgKHByZXNlcnZlVmVydGljZXMgPyAwIDogcmFuZG9tRnVsbCgpKSxcXG4gICAgICAgICAgICBdLFxcbiAgICAgICAgfSk7XFxuICAgIH1cXG4gICAgcmV0dXJuIG9wcztcXG59XFxuZnVuY3Rpb24gX2N1cnZlV2l0aE9mZnNldChwb2ludHMsIG9mZnNldCwgbykge1xcbiAgICBjb25zdCBwcyA9IFtdO1xcbiAgICBwcy5wdXNoKFtcXG4gICAgICAgIHBvaW50c1swXVswXSArIF9vZmZzZXRPcHQob2Zmc2V0LCBvKSxcXG4gICAgICAgIHBvaW50c1swXVsxXSArIF9vZmZzZXRPcHQob2Zmc2V0LCBvKSxcXG4gICAgXSk7XFxuICAgIHBzLnB1c2goW1xcbiAgICAgICAgcG9pbnRzWzBdWzBdICsgX29mZnNldE9wdChvZmZzZXQsIG8pLFxcbiAgICAgICAgcG9pbnRzWzBdWzFdICsgX29mZnNldE9wdChvZmZzZXQsIG8pLFxcbiAgICBdKTtcXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcXG4gICAgICAgIHBzLnB1c2goW1xcbiAgICAgICAgICAgIHBvaW50c1tpXVswXSArIF9vZmZzZXRPcHQob2Zmc2V0LCBvKSxcXG4gICAgICAgICAgICBwb2ludHNbaV1bMV0gKyBfb2Zmc2V0T3B0KG9mZnNldCwgbyksXFxuICAgICAgICBdKTtcXG4gICAgICAgIGlmIChpID09PSAocG9pbnRzLmxlbmd0aCAtIDEpKSB7XFxuICAgICAgICAgICAgcHMucHVzaChbXFxuICAgICAgICAgICAgICAgIHBvaW50c1tpXVswXSArIF9vZmZzZXRPcHQob2Zmc2V0LCBvKSxcXG4gICAgICAgICAgICAgICAgcG9pbnRzW2ldWzFdICsgX29mZnNldE9wdChvZmZzZXQsIG8pLFxcbiAgICAgICAgICAgIF0pO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiBfY3VydmUocHMsIG51bGwsIG8pO1xcbn1cXG5mdW5jdGlvbiBfY3VydmUocG9pbnRzLCBjbG9zZVBvaW50LCBvKSB7XFxuICAgIGNvbnN0IGxlbiA9IHBvaW50cy5sZW5ndGg7XFxuICAgIGNvbnN0IG9wcyA9IFtdO1xcbiAgICBpZiAobGVuID4gMykge1xcbiAgICAgICAgY29uc3QgYiA9IFtdO1xcbiAgICAgICAgY29uc3QgcyA9IDEgLSBvLmN1cnZlVGlnaHRuZXNzO1xcbiAgICAgICAgb3BzLnB1c2goeyBvcDogJ21vdmUnLCBkYXRhOiBbcG9pbnRzWzFdWzBdLCBwb2ludHNbMV1bMV1dIH0pO1xcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IChpICsgMikgPCBsZW47IGkrKykge1xcbiAgICAgICAgICAgIGNvbnN0IGNhY2hlZFZlcnRBcnJheSA9IHBvaW50c1tpXTtcXG4gICAgICAgICAgICBiWzBdID0gW2NhY2hlZFZlcnRBcnJheVswXSwgY2FjaGVkVmVydEFycmF5WzFdXTtcXG4gICAgICAgICAgICBiWzFdID0gW2NhY2hlZFZlcnRBcnJheVswXSArIChzICogcG9pbnRzW2kgKyAxXVswXSAtIHMgKiBwb2ludHNbaSAtIDFdWzBdKSAvIDYsIGNhY2hlZFZlcnRBcnJheVsxXSArIChzICogcG9pbnRzW2kgKyAxXVsxXSAtIHMgKiBwb2ludHNbaSAtIDFdWzFdKSAvIDZdO1xcbiAgICAgICAgICAgIGJbMl0gPSBbcG9pbnRzW2kgKyAxXVswXSArIChzICogcG9pbnRzW2ldWzBdIC0gcyAqIHBvaW50c1tpICsgMl1bMF0pIC8gNiwgcG9pbnRzW2kgKyAxXVsxXSArIChzICogcG9pbnRzW2ldWzFdIC0gcyAqIHBvaW50c1tpICsgMl1bMV0pIC8gNl07XFxuICAgICAgICAgICAgYlszXSA9IFtwb2ludHNbaSArIDFdWzBdLCBwb2ludHNbaSArIDFdWzFdXTtcXG4gICAgICAgICAgICBvcHMucHVzaCh7IG9wOiAnYmN1cnZlVG8nLCBkYXRhOiBbYlsxXVswXSwgYlsxXVsxXSwgYlsyXVswXSwgYlsyXVsxXSwgYlszXVswXSwgYlszXVsxXV0gfSk7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoY2xvc2VQb2ludCAmJiBjbG9zZVBvaW50Lmxlbmd0aCA9PT0gMikge1xcbiAgICAgICAgICAgIGNvbnN0IHJvID0gby5tYXhSYW5kb21uZXNzT2Zmc2V0O1xcbiAgICAgICAgICAgIG9wcy5wdXNoKHsgb3A6ICdsaW5lVG8nLCBkYXRhOiBbY2xvc2VQb2ludFswXSArIF9vZmZzZXRPcHQocm8sIG8pLCBjbG9zZVBvaW50WzFdICsgX29mZnNldE9wdChybywgbyldIH0pO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIGVsc2UgaWYgKGxlbiA9PT0gMykge1xcbiAgICAgICAgb3BzLnB1c2goeyBvcDogJ21vdmUnLCBkYXRhOiBbcG9pbnRzWzFdWzBdLCBwb2ludHNbMV1bMV1dIH0pO1xcbiAgICAgICAgb3BzLnB1c2goe1xcbiAgICAgICAgICAgIG9wOiAnYmN1cnZlVG8nLFxcbiAgICAgICAgICAgIGRhdGE6IFtcXG4gICAgICAgICAgICAgICAgcG9pbnRzWzFdWzBdLCBwb2ludHNbMV1bMV0sXFxuICAgICAgICAgICAgICAgIHBvaW50c1syXVswXSwgcG9pbnRzWzJdWzFdLFxcbiAgICAgICAgICAgICAgICBwb2ludHNbMl1bMF0sIHBvaW50c1syXVsxXSxcXG4gICAgICAgICAgICBdLFxcbiAgICAgICAgfSk7XFxuICAgIH1cXG4gICAgZWxzZSBpZiAobGVuID09PSAyKSB7XFxuICAgICAgICBvcHMucHVzaCguLi5fZG91YmxlTGluZShwb2ludHNbMF1bMF0sIHBvaW50c1swXVsxXSwgcG9pbnRzWzFdWzBdLCBwb2ludHNbMV1bMV0sIG8pKTtcXG4gICAgfVxcbiAgICByZXR1cm4gb3BzO1xcbn1cXG5mdW5jdGlvbiBfY29tcHV0ZUVsbGlwc2VQb2ludHMoaW5jcmVtZW50LCBjeCwgY3ksIHJ4LCByeSwgb2Zmc2V0LCBvdmVybGFwLCBvKSB7XFxuICAgIGNvbnN0IGNvcmVPbmx5ID0gby5yb3VnaG5lc3MgPT09IDA7XFxuICAgIGNvbnN0IGNvcmVQb2ludHMgPSBbXTtcXG4gICAgY29uc3QgYWxsUG9pbnRzID0gW107XFxuICAgIGlmIChjb3JlT25seSkge1xcbiAgICAgICAgaW5jcmVtZW50ID0gaW5jcmVtZW50IC8gNDtcXG4gICAgICAgIGFsbFBvaW50cy5wdXNoKFtcXG4gICAgICAgICAgICBjeCArIHJ4ICogTWF0aC5jb3MoLWluY3JlbWVudCksXFxuICAgICAgICAgICAgY3kgKyByeSAqIE1hdGguc2luKC1pbmNyZW1lbnQpLFxcbiAgICAgICAgXSk7XFxuICAgICAgICBmb3IgKGxldCBhbmdsZSA9IDA7IGFuZ2xlIDw9IE1hdGguUEkgKiAyOyBhbmdsZSA9IGFuZ2xlICsgaW5jcmVtZW50KSB7XFxuICAgICAgICAgICAgY29uc3QgcCA9IFtcXG4gICAgICAgICAgICAgICAgY3ggKyByeCAqIE1hdGguY29zKGFuZ2xlKSxcXG4gICAgICAgICAgICAgICAgY3kgKyByeSAqIE1hdGguc2luKGFuZ2xlKSxcXG4gICAgICAgICAgICBdO1xcbiAgICAgICAgICAgIGNvcmVQb2ludHMucHVzaChwKTtcXG4gICAgICAgICAgICBhbGxQb2ludHMucHVzaChwKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGFsbFBvaW50cy5wdXNoKFtcXG4gICAgICAgICAgICBjeCArIHJ4ICogTWF0aC5jb3MoMCksXFxuICAgICAgICAgICAgY3kgKyByeSAqIE1hdGguc2luKDApLFxcbiAgICAgICAgXSk7XFxuICAgICAgICBhbGxQb2ludHMucHVzaChbXFxuICAgICAgICAgICAgY3ggKyByeCAqIE1hdGguY29zKGluY3JlbWVudCksXFxuICAgICAgICAgICAgY3kgKyByeSAqIE1hdGguc2luKGluY3JlbWVudCksXFxuICAgICAgICBdKTtcXG4gICAgfVxcbiAgICBlbHNlIHtcXG4gICAgICAgIGNvbnN0IHJhZE9mZnNldCA9IF9vZmZzZXRPcHQoMC41LCBvKSAtIChNYXRoLlBJIC8gMik7XFxuICAgICAgICBhbGxQb2ludHMucHVzaChbXFxuICAgICAgICAgICAgX29mZnNldE9wdChvZmZzZXQsIG8pICsgY3ggKyAwLjkgKiByeCAqIE1hdGguY29zKHJhZE9mZnNldCAtIGluY3JlbWVudCksXFxuICAgICAgICAgICAgX29mZnNldE9wdChvZmZzZXQsIG8pICsgY3kgKyAwLjkgKiByeSAqIE1hdGguc2luKHJhZE9mZnNldCAtIGluY3JlbWVudCksXFxuICAgICAgICBdKTtcXG4gICAgICAgIGNvbnN0IGVuZEFuZ2xlID0gTWF0aC5QSSAqIDIgKyByYWRPZmZzZXQgLSAwLjAxO1xcbiAgICAgICAgZm9yIChsZXQgYW5nbGUgPSByYWRPZmZzZXQ7IGFuZ2xlIDwgZW5kQW5nbGU7IGFuZ2xlID0gYW5nbGUgKyBpbmNyZW1lbnQpIHtcXG4gICAgICAgICAgICBjb25zdCBwID0gW1xcbiAgICAgICAgICAgICAgICBfb2Zmc2V0T3B0KG9mZnNldCwgbykgKyBjeCArIHJ4ICogTWF0aC5jb3MoYW5nbGUpLFxcbiAgICAgICAgICAgICAgICBfb2Zmc2V0T3B0KG9mZnNldCwgbykgKyBjeSArIHJ5ICogTWF0aC5zaW4oYW5nbGUpLFxcbiAgICAgICAgICAgIF07XFxuICAgICAgICAgICAgY29yZVBvaW50cy5wdXNoKHApO1xcbiAgICAgICAgICAgIGFsbFBvaW50cy5wdXNoKHApO1xcbiAgICAgICAgfVxcbiAgICAgICAgYWxsUG9pbnRzLnB1c2goW1xcbiAgICAgICAgICAgIF9vZmZzZXRPcHQob2Zmc2V0LCBvKSArIGN4ICsgcnggKiBNYXRoLmNvcyhyYWRPZmZzZXQgKyBNYXRoLlBJICogMiArIG92ZXJsYXAgKiAwLjUpLFxcbiAgICAgICAgICAgIF9vZmZzZXRPcHQob2Zmc2V0LCBvKSArIGN5ICsgcnkgKiBNYXRoLnNpbihyYWRPZmZzZXQgKyBNYXRoLlBJICogMiArIG92ZXJsYXAgKiAwLjUpLFxcbiAgICAgICAgXSk7XFxuICAgICAgICBhbGxQb2ludHMucHVzaChbXFxuICAgICAgICAgICAgX29mZnNldE9wdChvZmZzZXQsIG8pICsgY3ggKyAwLjk4ICogcnggKiBNYXRoLmNvcyhyYWRPZmZzZXQgKyBvdmVybGFwKSxcXG4gICAgICAgICAgICBfb2Zmc2V0T3B0KG9mZnNldCwgbykgKyBjeSArIDAuOTggKiByeSAqIE1hdGguc2luKHJhZE9mZnNldCArIG92ZXJsYXApLFxcbiAgICAgICAgXSk7XFxuICAgICAgICBhbGxQb2ludHMucHVzaChbXFxuICAgICAgICAgICAgX29mZnNldE9wdChvZmZzZXQsIG8pICsgY3ggKyAwLjkgKiByeCAqIE1hdGguY29zKHJhZE9mZnNldCArIG92ZXJsYXAgKiAwLjUpLFxcbiAgICAgICAgICAgIF9vZmZzZXRPcHQob2Zmc2V0LCBvKSArIGN5ICsgMC45ICogcnkgKiBNYXRoLnNpbihyYWRPZmZzZXQgKyBvdmVybGFwICogMC41KSxcXG4gICAgICAgIF0pO1xcbiAgICB9XFxuICAgIHJldHVybiBbYWxsUG9pbnRzLCBjb3JlUG9pbnRzXTtcXG59XFxuZnVuY3Rpb24gX2FyYyhpbmNyZW1lbnQsIGN4LCBjeSwgcngsIHJ5LCBzdHJ0LCBzdHAsIG9mZnNldCwgbykge1xcbiAgICBjb25zdCByYWRPZmZzZXQgPSBzdHJ0ICsgX29mZnNldE9wdCgwLjEsIG8pO1xcbiAgICBjb25zdCBwb2ludHMgPSBbXTtcXG4gICAgcG9pbnRzLnB1c2goW1xcbiAgICAgICAgX29mZnNldE9wdChvZmZzZXQsIG8pICsgY3ggKyAwLjkgKiByeCAqIE1hdGguY29zKHJhZE9mZnNldCAtIGluY3JlbWVudCksXFxuICAgICAgICBfb2Zmc2V0T3B0KG9mZnNldCwgbykgKyBjeSArIDAuOSAqIHJ5ICogTWF0aC5zaW4ocmFkT2Zmc2V0IC0gaW5jcmVtZW50KSxcXG4gICAgXSk7XFxuICAgIGZvciAobGV0IGFuZ2xlID0gcmFkT2Zmc2V0OyBhbmdsZSA8PSBzdHA7IGFuZ2xlID0gYW5nbGUgKyBpbmNyZW1lbnQpIHtcXG4gICAgICAgIHBvaW50cy5wdXNoKFtcXG4gICAgICAgICAgICBfb2Zmc2V0T3B0KG9mZnNldCwgbykgKyBjeCArIHJ4ICogTWF0aC5jb3MoYW5nbGUpLFxcbiAgICAgICAgICAgIF9vZmZzZXRPcHQob2Zmc2V0LCBvKSArIGN5ICsgcnkgKiBNYXRoLnNpbihhbmdsZSksXFxuICAgICAgICBdKTtcXG4gICAgfVxcbiAgICBwb2ludHMucHVzaChbXFxuICAgICAgICBjeCArIHJ4ICogTWF0aC5jb3Moc3RwKSxcXG4gICAgICAgIGN5ICsgcnkgKiBNYXRoLnNpbihzdHApLFxcbiAgICBdKTtcXG4gICAgcG9pbnRzLnB1c2goW1xcbiAgICAgICAgY3ggKyByeCAqIE1hdGguY29zKHN0cCksXFxuICAgICAgICBjeSArIHJ5ICogTWF0aC5zaW4oc3RwKSxcXG4gICAgXSk7XFxuICAgIHJldHVybiBfY3VydmUocG9pbnRzLCBudWxsLCBvKTtcXG59XFxuZnVuY3Rpb24gX2JlemllclRvKHgxLCB5MSwgeDIsIHkyLCB4LCB5LCBjdXJyZW50LCBvKSB7XFxuICAgIGNvbnN0IG9wcyA9IFtdO1xcbiAgICBjb25zdCByb3MgPSBbby5tYXhSYW5kb21uZXNzT2Zmc2V0IHx8IDEsIChvLm1heFJhbmRvbW5lc3NPZmZzZXQgfHwgMSkgKyAwLjNdO1xcbiAgICBsZXQgZiA9IFswLCAwXTtcXG4gICAgY29uc3QgaXRlcmF0aW9ucyA9IG8uZGlzYWJsZU11bHRpU3Ryb2tlID8gMSA6IDI7XFxuICAgIGNvbnN0IHByZXNlcnZlVmVydGljZXMgPSBvLnByZXNlcnZlVmVydGljZXM7XFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgaSsrKSB7XFxuICAgICAgICBpZiAoaSA9PT0gMCkge1xcbiAgICAgICAgICAgIG9wcy5wdXNoKHsgb3A6ICdtb3ZlJywgZGF0YTogW2N1cnJlbnRbMF0sIGN1cnJlbnRbMV1dIH0pO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgb3BzLnB1c2goeyBvcDogJ21vdmUnLCBkYXRhOiBbY3VycmVudFswXSArIChwcmVzZXJ2ZVZlcnRpY2VzID8gMCA6IF9vZmZzZXRPcHQocm9zWzBdLCBvKSksIGN1cnJlbnRbMV0gKyAocHJlc2VydmVWZXJ0aWNlcyA/IDAgOiBfb2Zmc2V0T3B0KHJvc1swXSwgbykpXSB9KTtcXG4gICAgICAgIH1cXG4gICAgICAgIGYgPSBwcmVzZXJ2ZVZlcnRpY2VzID8gW3gsIHldIDogW3ggKyBfb2Zmc2V0T3B0KHJvc1tpXSwgbyksIHkgKyBfb2Zmc2V0T3B0KHJvc1tpXSwgbyldO1xcbiAgICAgICAgb3BzLnB1c2goe1xcbiAgICAgICAgICAgIG9wOiAnYmN1cnZlVG8nLFxcbiAgICAgICAgICAgIGRhdGE6IFtcXG4gICAgICAgICAgICAgICAgeDEgKyBfb2Zmc2V0T3B0KHJvc1tpXSwgbyksIHkxICsgX29mZnNldE9wdChyb3NbaV0sIG8pLFxcbiAgICAgICAgICAgICAgICB4MiArIF9vZmZzZXRPcHQocm9zW2ldLCBvKSwgeTIgKyBfb2Zmc2V0T3B0KHJvc1tpXSwgbyksXFxuICAgICAgICAgICAgICAgIGZbMF0sIGZbMV0sXFxuICAgICAgICAgICAgXSxcXG4gICAgICAgIH0pO1xcbiAgICB9XFxuICAgIHJldHVybiBvcHM7XFxufVxcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2TGk0dmJtOWtaVjl0YjJSMWJHVnpMM0p2ZFdkb2FuTXZZbWx1TDNKbGJtUmxjbVZ5TG1wekxtcHpJaXdpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN096czdPenM3T3pzN096czdRVUZCWjBRN1FVRkRZanRCUVVOcFF6dEJRVU53UlR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFR6dEJRVU5RTEdGQlFXRTdRVUZEWWp0QlFVTlBPMEZCUTFBN1FVRkRRVHRCUVVOQk8wRkJRMEVzZDBKQlFYZENMR1ZCUVdVN1FVRkRka003UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMR2xDUVVGcFFqdEJRVU5xUWp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxHRkJRV0U3UVVGRFlqdEJRVU5QTzBGQlExQTdRVUZEUVR0QlFVTlBPMEZCUTFBN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTlBPMEZCUTFBN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdGQlFXRTdRVUZEWWp0QlFVTlBPMEZCUTFBN1FVRkRRVHRCUVVOQk8wRkJRMDg3UVVGRFVEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzWVVGQllUdEJRVU5pTzBGQlEwODdRVUZEVUR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4cFFrRkJhVUlzZFVKQlFYVkNPMEZCUTNoRE8wRkJRMEU3UVVGRFR6dEJRVU5RTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNkVUpCUVhWQ0xEaENRVUU0UWl4SlFVRkpMREJGUVVFd1JUdEJRVU51U1R0QlFVTkJPMEZCUTBFc1lVRkJZVHRCUVVOaU8wRkJRMDg3UVVGRFVDeHhRa0ZCY1VJc01rUkJRVk1zUTBGQlF5dzBSRUZCVlN4RFFVRkRMREpFUVVGVE8wRkJRMjVFTzBGQlEwRTdRVUZEUVR0QlFVTkJMR2xDUVVGcFFpeFpRVUZaTzBGQlF6ZENPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzTWtKQlFUSkNMSEZGUVVGeFJUdEJRVU5vUnp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc1lVRkJZVHRCUVVOaU8wRkJRMEU3UVVGRFR6dEJRVU5RTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxESkNRVUV5UWl4blIwRkJaMGM3UVVGRE0wZ3NaME5CUVdkRExGTkJRVk03UVVGRGVrTXNLMEpCUVN0Q0xHdEhRVUZyUnp0QlFVTnFTVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdGQlFXRTdRVUZEWWp0QlFVTlBPMEZCUTFBc1YwRkJWeXcyUkVGQlV6dEJRVU53UWp0QlFVTlBPMEZCUTFBN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc01rSkJRVEpDTEdOQlFXTTdRVUZEZWtNN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwODdRVUZEVUR0QlFVTkJPMEZCUTA4N1FVRkRVRHRCUVVOQk8wRkJRMDg3UVVGRFVEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRzFEUVVGdFF6dEJRVU51UXp0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNOa0pCUVRaQ0xEUkRRVUZOTzBGQlEyNURPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNZVUZCWVR0QlFVTmlPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNZVUZCWVR0QlFVTmlPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVTBGQlV6dEJRVU5VTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRk5CUVZNN1FVRkRWRHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEc5Q1FVRnZRaXh0UWtGQmJVSTdRVUZEZGtNN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3h0UWtGQmJVSXNaMFJCUVdkRU8wRkJRMjVGTEhkQ1FVRjNRaXhsUVVGbE8wRkJRM1pETzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3gxUWtGQmRVSXNPRVZCUVRoRk8wRkJRM0pITzBGQlEwRTdRVUZEUVR0QlFVTkJMSFZDUVVGMVFpdzBSa0ZCTkVZN1FVRkRia2c3UVVGRFFUdEJRVU5CTzBGQlEwRXNiVUpCUVcxQ0xHZEVRVUZuUkR0QlFVTnVSVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRk5CUVZNN1FVRkRWRHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRFJDUVVFMFFpeHpRa0ZCYzBJN1FVRkRiRVE3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRzlEUVVGdlF5eHJRa0ZCYTBJN1FVRkRkRVE3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEdkRFFVRm5ReXhqUVVGak8wRkJRemxETzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJMRzlDUVVGdlFpeG5Ra0ZCWjBJN1FVRkRjRU03UVVGRFFTeDFRa0ZCZFVJc05FTkJRVFJETzBGQlEyNUZPMEZCUTBFN1FVRkRRU3gxUWtGQmRVSXNPRWxCUVRoSk8wRkJRM0pMTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEZOQlFWTTdRVUZEVkR0QlFVTkJPMEZCUTBFaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzSnZkV2RvYW5NdlltbHVMM0psYm1SbGNtVnlMbXB6UHpCa00yVWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnWjJWMFJtbHNiR1Z5SUgwZ1puSnZiU0FuTGk5bWFXeHNaWEp6TDJacGJHeGxjaTVxY3ljN1hHNXBiWEJ2Y25RZ2V5QlNZVzVrYjIwZ2ZTQm1jbTl0SUNjdUwyMWhkR2d1YW5Nbk8xeHVhVzF3YjNKMElIc2djR0Z5YzJWUVlYUm9MQ0J1YjNKdFlXeHBlbVVzSUdGaWMyOXNkWFJwZW1VZ2ZTQm1jbTl0SUNkd1lYUm9MV1JoZEdFdGNHRnljMlZ5Snp0Y2JtTnZibk4wSUdobGJIQmxjaUE5SUh0Y2JpQWdJQ0J5WVc1a1QyWm1jMlYwTEZ4dUlDQWdJSEpoYm1SUFptWnpaWFJYYVhSb1VtRnVaMlVzWEc0Z0lDQWdaV3hzYVhCelpTeGNiaUFnSUNCa2IzVmliR1ZNYVc1bFQzQnpPaUJrYjNWaWJHVk1hVzVsUm1sc2JFOXdjeXhjYm4wN1hHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2JHbHVaU2g0TVN3Z2VURXNJSGd5TENCNU1pd2dieWtnZTF4dUlDQWdJSEpsZEhWeWJpQjdJSFI1Y0dVNklDZHdZWFJvSnl3Z2IzQnpPaUJmWkc5MVlteGxUR2x1WlNoNE1Td2dlVEVzSUhneUxDQjVNaXdnYnlrZ2ZUdGNibjFjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJzYVc1bFlYSlFZWFJvS0hCdmFXNTBjeXdnWTJ4dmMyVXNJRzhwSUh0Y2JpQWdJQ0JqYjI1emRDQnNaVzRnUFNBb2NHOXBiblJ6SUh4OElGdGRLUzVzWlc1bmRHZzdYRzRnSUNBZ2FXWWdLR3hsYmlBK0lESXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdiM0J6SUQwZ1cxMDdYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnS0d4bGJpQXRJREVwT3lCcEt5c3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXdjeTV3ZFhOb0tDNHVMbDlrYjNWaWJHVk1hVzVsS0hCdmFXNTBjMXRwWFZzd1hTd2djRzlwYm5SelcybGRXekZkTENCd2IybHVkSE5iYVNBcklERmRXekJkTENCd2IybHVkSE5iYVNBcklERmRXekZkTENCdktTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tHTnNiM05sS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2Y0hNdWNIVnphQ2d1TGk1ZlpHOTFZbXhsVEdsdVpTaHdiMmx1ZEhOYmJHVnVJQzBnTVYxYk1GMHNJSEJ2YVc1MGMxdHNaVzRnTFNBeFhWc3hYU3dnY0c5cGJuUnpXekJkV3pCZExDQndiMmx1ZEhOYk1GMWJNVjBzSUc4cEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdleUIwZVhCbE9pQW5jR0YwYUNjc0lHOXdjeUI5TzF4dUlDQWdJSDFjYmlBZ0lDQmxiSE5sSUdsbUlDaHNaVzRnUFQwOUlESXBJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR3hwYm1Vb2NHOXBiblJ6V3pCZFd6QmRMQ0J3YjJsdWRITmJNRjFiTVYwc0lIQnZhVzUwYzFzeFhWc3dYU3dnY0c5cGJuUnpXekZkV3pGZExDQnZLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhzZ2RIbHdaVG9nSjNCaGRHZ25MQ0J2Y0hNNklGdGRJSDA3WEc1OVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NHOXNlV2R2Ymlod2IybHVkSE1zSUc4cElIdGNiaUFnSUNCeVpYUjFjbTRnYkdsdVpXRnlVR0YwYUNod2IybHVkSE1zSUhSeWRXVXNJRzhwTzF4dWZWeHVaWGh3YjNKMElHWjFibU4wYVc5dUlISmxZM1JoYm1kc1pTaDRMQ0I1TENCM2FXUjBhQ3dnYUdWcFoyaDBMQ0J2S1NCN1hHNGdJQ0FnWTI5dWMzUWdjRzlwYm5SeklEMGdXMXh1SUNBZ0lDQWdJQ0JiZUN3Z2VWMHNYRzRnSUNBZ0lDQWdJRnQ0SUNzZ2QybGtkR2dzSUhsZExGeHVJQ0FnSUNBZ0lDQmJlQ0FySUhkcFpIUm9MQ0I1SUNzZ2FHVnBaMmgwWFN4Y2JpQWdJQ0FnSUNBZ1czZ3NJSGtnS3lCb1pXbG5hSFJkTEZ4dUlDQWdJRjA3WEc0Z0lDQWdjbVYwZFhKdUlIQnZiSGxuYjI0b2NHOXBiblJ6TENCdktUdGNibjFjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJqZFhKMlpTaHdiMmx1ZEhNc0lHOHBJSHRjYmlBZ0lDQnNaWFFnYnpFZ1BTQmZZM1Z5ZG1WWGFYUm9UMlptYzJWMEtIQnZhVzUwY3l3Z01TQXFJQ2d4SUNzZ2J5NXliM1ZuYUc1bGMzTWdLaUF3TGpJcExDQnZLVHRjYmlBZ0lDQnBaaUFvSVc4dVpHbHpZV0pzWlUxMWJIUnBVM1J5YjJ0bEtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHOHlJRDBnWDJOMWNuWmxWMmwwYUU5bVpuTmxkQ2h3YjJsdWRITXNJREV1TlNBcUlDZ3hJQ3NnYnk1eWIzVm5hRzVsYzNNZ0tpQXdMakl5S1N3Z1kyeHZibVZQY0hScGIyNXpRV3gwWlhKVFpXVmtLRzhwS1R0Y2JpQWdJQ0FnSUNBZ2J6RWdQU0J2TVM1amIyNWpZWFFvYnpJcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdleUIwZVhCbE9pQW5jR0YwYUNjc0lHOXdjem9nYnpFZ2ZUdGNibjFjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJsYkd4cGNITmxLSGdzSUhrc0lIZHBaSFJvTENCb1pXbG5hSFFzSUc4cElIdGNiaUFnSUNCamIyNXpkQ0J3WVhKaGJYTWdQU0JuWlc1bGNtRjBaVVZzYkdsd2MyVlFZWEpoYlhNb2QybGtkR2dzSUdobGFXZG9kQ3dnYnlrN1hHNGdJQ0FnY21WMGRYSnVJR1ZzYkdsd2MyVlhhWFJvVUdGeVlXMXpLSGdzSUhrc0lHOHNJSEJoY21GdGN5a3ViM0J6WlhRN1hHNTlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaMlZ1WlhKaGRHVkZiR3hwY0hObFVHRnlZVzF6S0hkcFpIUm9MQ0JvWldsbmFIUXNJRzhwSUh0Y2JpQWdJQ0JqYjI1emRDQndjM0VnUFNCTllYUm9Mbk54Y25Rb1RXRjBhQzVRU1NBcUlESWdLaUJOWVhSb0xuTnhjblFvS0UxaGRHZ3VjRzkzS0hkcFpIUm9JQzhnTWl3Z01pa2dLeUJOWVhSb0xuQnZkeWhvWldsbmFIUWdMeUF5TENBeUtTa2dMeUF5S1NrN1hHNGdJQ0FnWTI5dWMzUWdjM1JsY0VOdmRXNTBJRDBnVFdGMGFDNWpaV2xzS0UxaGRHZ3ViV0Y0S0c4dVkzVnlkbVZUZEdWd1EyOTFiblFzSUNodkxtTjFjblpsVTNSbGNFTnZkVzUwSUM4Z1RXRjBhQzV6Y1hKMEtESXdNQ2twSUNvZ2NITnhLU2s3WEc0Z0lDQWdZMjl1YzNRZ2FXNWpjbVZ0Wlc1MElEMGdLRTFoZEdndVVFa2dLaUF5S1NBdklITjBaWEJEYjNWdWREdGNiaUFnSUNCc1pYUWdjbmdnUFNCTllYUm9MbUZpY3loM2FXUjBhQ0F2SURJcE8xeHVJQ0FnSUd4bGRDQnllU0E5SUUxaGRHZ3VZV0p6S0dobGFXZG9kQ0F2SURJcE8xeHVJQ0FnSUdOdmJuTjBJR04xY25abFJtbDBVbUZ1Wkc5dGJtVnpjeUE5SURFZ0xTQnZMbU4xY25abFJtbDBkR2x1Wnp0Y2JpQWdJQ0J5ZUNBclBTQmZiMlptYzJWMFQzQjBLSEo0SUNvZ1kzVnlkbVZHYVhSU1lXNWtiMjF1WlhOekxDQnZLVHRjYmlBZ0lDQnllU0FyUFNCZmIyWm1jMlYwVDNCMEtISjVJQ29nWTNWeWRtVkdhWFJTWVc1a2IyMXVaWE56TENCdktUdGNiaUFnSUNCeVpYUjFjbTRnZXlCcGJtTnlaVzFsYm5Rc0lISjRMQ0J5ZVNCOU8xeHVmVnh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1ZzYkdsd2MyVlhhWFJvVUdGeVlXMXpLSGdzSUhrc0lHOHNJR1ZzYkdsd2MyVlFZWEpoYlhNcElIdGNiaUFnSUNCamIyNXpkQ0JiWVhBeExDQmpjREZkSUQwZ1gyTnZiWEIxZEdWRmJHeHBjSE5sVUc5cGJuUnpLR1ZzYkdsd2MyVlFZWEpoYlhNdWFXNWpjbVZ0Wlc1MExDQjRMQ0I1TENCbGJHeHBjSE5sVUdGeVlXMXpMbko0TENCbGJHeHBjSE5sVUdGeVlXMXpMbko1TENBeExDQmxiR3hwY0hObFVHRnlZVzF6TG1sdVkzSmxiV1Z1ZENBcUlGOXZabVp6WlhRb01DNHhMQ0JmYjJabWMyVjBLREF1TkN3Z01Td2dieWtzSUc4cExDQnZLVHRjYmlBZ0lDQnNaWFFnYnpFZ1BTQmZZM1Z5ZG1Vb1lYQXhMQ0J1ZFd4c0xDQnZLVHRjYmlBZ0lDQnBaaUFvS0NGdkxtUnBjMkZpYkdWTmRXeDBhVk4wY205clpTa2dKaVlnS0c4dWNtOTFaMmh1WlhOeklDRTlQU0F3S1NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCYllYQXlYU0E5SUY5amIyMXdkWFJsUld4c2FYQnpaVkJ2YVc1MGN5aGxiR3hwY0hObFVHRnlZVzF6TG1sdVkzSmxiV1Z1ZEN3Z2VDd2dlU3dnWld4c2FYQnpaVkJoY21GdGN5NXllQ3dnWld4c2FYQnpaVkJoY21GdGN5NXllU3dnTVM0MUxDQXdMQ0J2S1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYnpJZ1BTQmZZM1Z5ZG1Vb1lYQXlMQ0J1ZFd4c0xDQnZLVHRjYmlBZ0lDQWdJQ0FnYnpFZ1BTQnZNUzVqYjI1allYUW9ieklwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ0lDQmxjM1JwYldGMFpXUlFiMmx1ZEhNNklHTndNU3hjYmlBZ0lDQWdJQ0FnYjNCelpYUTZJSHNnZEhsd1pUb2dKM0JoZEdnbkxDQnZjSE02SUc4eElIMHNYRzRnSUNBZ2ZUdGNibjFjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJoY21Nb2VDd2dlU3dnZDJsa2RHZ3NJR2hsYVdkb2RDd2djM1JoY25Rc0lITjBiM0FzSUdOc2IzTmxaQ3dnY205MVoyaERiRzl6ZFhKbExDQnZLU0I3WEc0Z0lDQWdZMjl1YzNRZ1kzZ2dQU0I0TzF4dUlDQWdJR052Ym5OMElHTjVJRDBnZVR0Y2JpQWdJQ0JzWlhRZ2NuZ2dQU0JOWVhSb0xtRmljeWgzYVdSMGFDQXZJRElwTzF4dUlDQWdJR3hsZENCeWVTQTlJRTFoZEdndVlXSnpLR2hsYVdkb2RDQXZJRElwTzF4dUlDQWdJSEo0SUNzOUlGOXZabVp6WlhSUGNIUW9jbmdnS2lBd0xqQXhMQ0J2S1R0Y2JpQWdJQ0J5ZVNBclBTQmZiMlptYzJWMFQzQjBLSEo1SUNvZ01DNHdNU3dnYnlrN1hHNGdJQ0FnYkdWMElITjBjblFnUFNCemRHRnlkRHRjYmlBZ0lDQnNaWFFnYzNSd0lEMGdjM1J2Y0R0Y2JpQWdJQ0IzYUdsc1pTQW9jM1J5ZENBOElEQXBJSHRjYmlBZ0lDQWdJQ0FnYzNSeWRDQXJQU0JOWVhSb0xsQkpJQ29nTWp0Y2JpQWdJQ0FnSUNBZ2MzUndJQ3M5SUUxaGRHZ3VVRWtnS2lBeU8xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb0tITjBjQ0F0SUhOMGNuUXBJRDRnS0UxaGRHZ3VVRWtnS2lBeUtTa2dlMXh1SUNBZ0lDQWdJQ0J6ZEhKMElEMGdNRHRjYmlBZ0lDQWdJQ0FnYzNSd0lEMGdUV0YwYUM1UVNTQXFJREk3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUdWc2JHbHdjMlZKYm1NZ1BTQW9UV0YwYUM1UVNTQXFJRElwSUM4Z2J5NWpkWEoyWlZOMFpYQkRiM1Z1ZER0Y2JpQWdJQ0JqYjI1emRDQmhjbU5KYm1NZ1BTQk5ZWFJvTG0xcGJpaGxiR3hwY0hObFNXNWpJQzhnTWl3Z0tITjBjQ0F0SUhOMGNuUXBJQzhnTWlrN1hHNGdJQ0FnWTI5dWMzUWdiM0J6SUQwZ1gyRnlZeWhoY21OSmJtTXNJR040TENCamVTd2djbmdzSUhKNUxDQnpkSEowTENCemRIQXNJREVzSUc4cE8xeHVJQ0FnSUdsbUlDZ2hieTVrYVhOaFlteGxUWFZzZEdsVGRISnZhMlVwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYnpJZ1BTQmZZWEpqS0dGeVkwbHVZeXdnWTNnc0lHTjVMQ0J5ZUN3Z2Nua3NJSE4wY25Rc0lITjBjQ3dnTVM0MUxDQnZLVHRjYmlBZ0lDQWdJQ0FnYjNCekxuQjFjMmdvTGk0dWJ6SXBPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9ZMnh2YzJWa0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoeWIzVm5hRU5zYjNOMWNtVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXdjeTV3ZFhOb0tDNHVMbDlrYjNWaWJHVk1hVzVsS0dONExDQmplU3dnWTNnZ0t5QnllQ0FxSUUxaGRHZ3VZMjl6S0hOMGNuUXBMQ0JqZVNBcklISjVJQ29nVFdGMGFDNXphVzRvYzNSeWRDa3NJRzhwTENBdUxpNWZaRzkxWW14bFRHbHVaU2hqZUN3Z1kza3NJR040SUNzZ2NuZ2dLaUJOWVhSb0xtTnZjeWh6ZEhBcExDQmplU0FySUhKNUlDb2dUV0YwYUM1emFXNG9jM1J3S1N3Z2J5a3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2IzQnpMbkIxYzJnb2V5QnZjRG9nSjJ4cGJtVlVieWNzSUdSaGRHRTZJRnRqZUN3Z1kzbGRJSDBzSUhzZ2IzQTZJQ2RzYVc1bFZHOG5MQ0JrWVhSaE9pQmJZM2dnS3lCeWVDQXFJRTFoZEdndVkyOXpLSE4wY25RcExDQmplU0FySUhKNUlDb2dUV0YwYUM1emFXNG9jM1J5ZENsZElIMHBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCN0lIUjVjR1U2SUNkd1lYUm9KeXdnYjNCeklIMDdYRzU5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYzNablVHRjBhQ2h3WVhSb0xDQnZLU0I3WEc0Z0lDQWdZMjl1YzNRZ2MyVm5iV1Z1ZEhNZ1BTQnViM0p0WVd4cGVtVW9ZV0p6YjJ4MWRHbDZaU2h3WVhKelpWQmhkR2dvY0dGMGFDa3BLVHRjYmlBZ0lDQmpiMjV6ZENCdmNITWdQU0JiWFR0Y2JpQWdJQ0JzWlhRZ1ptbHljM1FnUFNCYk1Dd2dNRjA3WEc0Z0lDQWdiR1YwSUdOMWNuSmxiblFnUFNCYk1Dd2dNRjA3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0I3SUd0bGVTd2daR0YwWVNCOUlHOW1JSE5sWjIxbGJuUnpLU0I3WEc0Z0lDQWdJQ0FnSUhOM2FYUmphQ0FvYTJWNUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2ROSnpvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhKdklEMGdNU0FxSUNodkxtMWhlRkpoYm1SdmJXNWxjM05QWm1aelpYUWdmSHdnTUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY0hZZ1BTQnZMbkJ5WlhObGNuWmxWbVZ5ZEdsalpYTTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiM0J6TG5CMWMyZ29leUJ2Y0RvZ0oyMXZkbVVuTENCa1lYUmhPaUJrWVhSaExtMWhjQ2dvWkNrZ1BUNGdaQ0FySUNod2RpQS9JREFnT2lCZmIyWm1jMlYwVDNCMEtISnZMQ0J2S1NrcElIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR04xY25KbGJuUWdQU0JiWkdGMFlWc3dYU3dnWkdGMFlWc3hYVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm1seWMzUWdQU0JiWkdGMFlWc3dYU3dnWkdGMFlWc3hYVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElDZE1KenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2Y0hNdWNIVnphQ2d1TGk1ZlpHOTFZbXhsVEdsdVpTaGpkWEp5Wlc1MFd6QmRMQ0JqZFhKeVpXNTBXekZkTENCa1lYUmhXekJkTENCa1lYUmhXekZkTENCdktTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM1Z5Y21WdWRDQTlJRnRrWVhSaFd6QmRMQ0JrWVhSaFd6RmRYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdKME1uT2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnVzNneExDQjVNU3dnZURJc0lIa3lMQ0I0TENCNVhTQTlJR1JoZEdFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IzQnpMbkIxYzJnb0xpNHVYMkpsZW1sbGNsUnZLSGd4TENCNU1Td2dlRElzSUhreUxDQjRMQ0I1TENCamRYSnlaVzUwTENCdktTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM1Z5Y21WdWRDQTlJRnQ0TENCNVhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnSjFvbk9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXdjeTV3ZFhOb0tDNHVMbDlrYjNWaWJHVk1hVzVsS0dOMWNuSmxiblJiTUYwc0lHTjFjbkpsYm5SYk1WMHNJR1pwY25OMFd6QmRMQ0JtYVhKemRGc3hYU3dnYnlrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTjFjbkpsYm5RZ1BTQmJabWx5YzNSYk1GMHNJR1pwY25OMFd6RmRYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZXlCMGVYQmxPaUFuY0dGMGFDY3NJRzl3Y3lCOU8xeHVmVnh1THk4Z1JtbHNiSE5jYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ6YjJ4cFpFWnBiR3hRYjJ4NVoyOXVLSEJ2YkhsbmIyNU1hWE4wTENCdktTQjdYRzRnSUNBZ1kyOXVjM1FnYjNCeklEMGdXMTA3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0J3YjJsdWRITWdiMllnY0c5c2VXZHZia3hwYzNRcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0hCdmFXNTBjeTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUc5bVpuTmxkQ0E5SUc4dWJXRjRVbUZ1Wkc5dGJtVnpjMDltWm5ObGRDQjhmQ0F3TzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JHVnVJRDBnY0c5cGJuUnpMbXhsYm1kMGFEdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHNaVzRnUGlBeUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiM0J6TG5CMWMyZ29leUJ2Y0RvZ0oyMXZkbVVuTENCa1lYUmhPaUJiY0c5cGJuUnpXekJkV3pCZElDc2dYMjltWm5ObGRFOXdkQ2h2Wm1aelpYUXNJRzhwTENCd2IybHVkSE5iTUYxYk1WMGdLeUJmYjJabWMyVjBUM0IwS0c5bVpuTmxkQ3dnYnlsZElIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBeE95QnBJRHdnYkdWdU95QnBLeXNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiM0J6TG5CMWMyZ29leUJ2Y0RvZ0oyeHBibVZVYnljc0lHUmhkR0U2SUZ0d2IybHVkSE5iYVYxYk1GMGdLeUJmYjJabWMyVjBUM0IwS0c5bVpuTmxkQ3dnYnlrc0lIQnZhVzUwYzF0cFhWc3hYU0FySUY5dlptWnpaWFJQY0hRb2IyWm1jMlYwTENCdktWMGdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCN0lIUjVjR1U2SUNkbWFXeHNVR0YwYUNjc0lHOXdjeUI5TzF4dWZWeHVaWGh3YjNKMElHWjFibU4wYVc5dUlIQmhkSFJsY201R2FXeHNVRzlzZVdkdmJuTW9jRzlzZVdkdmJreHBjM1FzSUc4cElIdGNiaUFnSUNCeVpYUjFjbTRnWjJWMFJtbHNiR1Z5S0c4c0lHaGxiSEJsY2lrdVptbHNiRkJ2YkhsbmIyNXpLSEJ2YkhsbmIyNU1hWE4wTENCdktUdGNibjFjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ3WVhSMFpYSnVSbWxzYkVGeVl5aDRMQ0I1TENCM2FXUjBhQ3dnYUdWcFoyaDBMQ0J6ZEdGeWRDd2djM1J2Y0N3Z2J5a2dlMXh1SUNBZ0lHTnZibk4wSUdONElEMGdlRHRjYmlBZ0lDQmpiMjV6ZENCamVTQTlJSGs3WEc0Z0lDQWdiR1YwSUhKNElEMGdUV0YwYUM1aFluTW9kMmxrZEdnZ0x5QXlLVHRjYmlBZ0lDQnNaWFFnY25rZ1BTQk5ZWFJvTG1GaWN5aG9aV2xuYUhRZ0x5QXlLVHRjYmlBZ0lDQnllQ0FyUFNCZmIyWm1jMlYwVDNCMEtISjRJQ29nTUM0d01Td2dieWs3WEc0Z0lDQWdjbmtnS3owZ1gyOW1abk5sZEU5d2RDaHllU0FxSURBdU1ERXNJRzhwTzF4dUlDQWdJR3hsZENCemRISjBJRDBnYzNSaGNuUTdYRzRnSUNBZ2JHVjBJSE4wY0NBOUlITjBiM0E3WEc0Z0lDQWdkMmhwYkdVZ0tITjBjblFnUENBd0tTQjdYRzRnSUNBZ0lDQWdJSE4wY25RZ0t6MGdUV0YwYUM1UVNTQXFJREk3WEc0Z0lDQWdJQ0FnSUhOMGNDQXJQU0JOWVhSb0xsQkpJQ29nTWp0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0NoemRIQWdMU0J6ZEhKMEtTQStJQ2hOWVhSb0xsQkpJQ29nTWlrcElIdGNiaUFnSUNBZ0lDQWdjM1J5ZENBOUlEQTdYRzRnSUNBZ0lDQWdJSE4wY0NBOUlFMWhkR2d1VUVrZ0tpQXlPMXh1SUNBZ0lIMWNiaUFnSUNCamIyNXpkQ0JwYm1OeVpXMWxiblFnUFNBb2MzUndJQzBnYzNSeWRDa2dMeUJ2TG1OMWNuWmxVM1JsY0VOdmRXNTBPMXh1SUNBZ0lHTnZibk4wSUhCdmFXNTBjeUE5SUZ0ZE8xeHVJQ0FnSUdadmNpQW9iR1YwSUdGdVoyeGxJRDBnYzNSeWREc2dZVzVuYkdVZ1BEMGdjM1J3T3lCaGJtZHNaU0E5SUdGdVoyeGxJQ3NnYVc1amNtVnRaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lIQnZhVzUwY3k1d2RYTm9LRnRqZUNBcklISjRJQ29nVFdGMGFDNWpiM01vWVc1bmJHVXBMQ0JqZVNBcklISjVJQ29nVFdGMGFDNXphVzRvWVc1bmJHVXBYU2s3WEc0Z0lDQWdmVnh1SUNBZ0lIQnZhVzUwY3k1d2RYTm9LRnRqZUNBcklISjRJQ29nVFdGMGFDNWpiM01vYzNSd0tTd2dZM2tnS3lCeWVTQXFJRTFoZEdndWMybHVLSE4wY0NsZEtUdGNiaUFnSUNCd2IybHVkSE11Y0hWemFDaGJZM2dzSUdONVhTazdYRzRnSUNBZ2NtVjBkWEp1SUhCaGRIUmxjbTVHYVd4c1VHOXNlV2R2Ym5Nb1czQnZhVzUwYzEwc0lHOHBPMXh1ZlZ4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhKaGJtUlBabVp6WlhRb2VDd2dieWtnZTF4dUlDQWdJSEpsZEhWeWJpQmZiMlptYzJWMFQzQjBLSGdzSUc4cE8xeHVmVnh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEpoYm1SUFptWnpaWFJYYVhSb1VtRnVaMlVvYldsdUxDQnRZWGdzSUc4cElIdGNiaUFnSUNCeVpYUjFjbTRnWDI5bVpuTmxkQ2h0YVc0c0lHMWhlQ3dnYnlrN1hHNTlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaRzkxWW14bFRHbHVaVVpwYkd4UGNITW9lREVzSUhreExDQjRNaXdnZVRJc0lHOHBJSHRjYmlBZ0lDQnlaWFIxY200Z1gyUnZkV0pzWlV4cGJtVW9lREVzSUhreExDQjRNaXdnZVRJc0lHOHNJSFJ5ZFdVcE8xeHVmVnh1THk4Z1VISnBkbUYwWlNCb1pXeHdaWEp6WEc1bWRXNWpkR2x2YmlCamJHOXVaVTl3ZEdsdmJuTkJiSFJsY2xObFpXUW9iM0J6S1NCN1hHNGdJQ0FnWTI5dWMzUWdjbVZ6ZFd4MElEMGdUMkpxWldOMExtRnpjMmxuYmloN2ZTd2diM0J6S1R0Y2JpQWdJQ0J5WlhOMWJIUXVjbUZ1Wkc5dGFYcGxjaUE5SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JwWmlBb2IzQnpMbk5sWldRcElIdGNiaUFnSUNBZ0lDQWdjbVZ6ZFd4MExuTmxaV1FnUFNCdmNITXVjMlZsWkNBcklERTdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzU5WEc1bWRXNWpkR2x2YmlCeVlXNWtiMjBvYjNCektTQjdYRzRnSUNBZ2FXWWdLQ0Z2Y0hNdWNtRnVaRzl0YVhwbGNpa2dlMXh1SUNBZ0lDQWdJQ0J2Y0hNdWNtRnVaRzl0YVhwbGNpQTlJRzVsZHlCU1lXNWtiMjBvYjNCekxuTmxaV1FnZkh3Z01DazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ2Y0hNdWNtRnVaRzl0YVhwbGNpNXVaWGgwS0NrN1hHNTlYRzVtZFc1amRHbHZiaUJmYjJabWMyVjBLRzFwYml3Z2JXRjRMQ0J2Y0hNc0lISnZkV2RvYm1WemMwZGhhVzRnUFNBeEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUc5d2N5NXliM1ZuYUc1bGMzTWdLaUJ5YjNWbmFHNWxjM05IWVdsdUlDb2dLQ2h5WVc1a2IyMG9iM0J6S1NBcUlDaHRZWGdnTFNCdGFXNHBLU0FySUcxcGJpazdYRzU5WEc1bWRXNWpkR2x2YmlCZmIyWm1jMlYwVDNCMEtIZ3NJRzl3Y3l3Z2NtOTFaMmh1WlhOelIyRnBiaUE5SURFcElIdGNiaUFnSUNCeVpYUjFjbTRnWDI5bVpuTmxkQ2d0ZUN3Z2VDd2diM0J6TENCeWIzVm5hRzVsYzNOSFlXbHVLVHRjYm4xY2JtWjFibU4wYVc5dUlGOWtiM1ZpYkdWTWFXNWxLSGd4TENCNU1Td2dlRElzSUhreUxDQnZMQ0JtYVd4c2FXNW5JRDBnWm1Gc2MyVXBJSHRjYmlBZ0lDQmpiMjV6ZENCemFXNW5iR1ZUZEhKdmEyVWdQU0JtYVd4c2FXNW5JRDhnYnk1a2FYTmhZbXhsVFhWc2RHbFRkSEp2YTJWR2FXeHNJRG9nYnk1a2FYTmhZbXhsVFhWc2RHbFRkSEp2YTJVN1hHNGdJQ0FnWTI5dWMzUWdiekVnUFNCZmJHbHVaU2g0TVN3Z2VURXNJSGd5TENCNU1pd2dieXdnZEhKMVpTd2dabUZzYzJVcE8xeHVJQ0FnSUdsbUlDaHphVzVuYkdWVGRISnZhMlVwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUc4eE8xeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQnZNaUE5SUY5c2FXNWxLSGd4TENCNU1Td2dlRElzSUhreUxDQnZMQ0IwY25WbExDQjBjblZsS1R0Y2JpQWdJQ0J5WlhSMWNtNGdiekV1WTI5dVkyRjBLRzh5S1R0Y2JuMWNibVoxYm1OMGFXOXVJRjlzYVc1bEtIZ3hMQ0I1TVN3Z2VESXNJSGt5TENCdkxDQnRiM1psTENCdmRtVnliR0Y1S1NCN1hHNGdJQ0FnWTI5dWMzUWdiR1Z1WjNSb1UzRWdQU0JOWVhSb0xuQnZkeWdvZURFZ0xTQjRNaWtzSURJcElDc2dUV0YwYUM1d2IzY29LSGt4SUMwZ2VUSXBMQ0F5S1R0Y2JpQWdJQ0JqYjI1emRDQnNaVzVuZEdnZ1BTQk5ZWFJvTG5OeGNuUW9iR1Z1WjNSb1UzRXBPMXh1SUNBZ0lHeGxkQ0J5YjNWbmFHNWxjM05IWVdsdUlEMGdNVHRjYmlBZ0lDQnBaaUFvYkdWdVozUm9JRHdnTWpBd0tTQjdYRzRnSUNBZ0lDQWdJSEp2ZFdkb2JtVnpjMGRoYVc0Z1BTQXhPMXh1SUNBZ0lIMWNiaUFnSUNCbGJITmxJR2xtSUNoc1pXNW5kR2dnUGlBMU1EQXBJSHRjYmlBZ0lDQWdJQ0FnY205MVoyaHVaWE56UjJGcGJpQTlJREF1TkR0Y2JpQWdJQ0I5WEc0Z0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lISnZkV2RvYm1WemMwZGhhVzRnUFNBb0xUQXVNREF4TmpZMk9Da2dLaUJzWlc1bmRHZ2dLeUF4TGpJek16TXpORHRjYmlBZ0lDQjlYRzRnSUNBZ2JHVjBJRzltWm5ObGRDQTlJRzh1YldGNFVtRnVaRzl0Ym1WemMwOW1abk5sZENCOGZDQXdPMXh1SUNBZ0lHbG1JQ2dvYjJabWMyVjBJQ29nYjJabWMyVjBJQ29nTVRBd0tTQStJR3hsYm1kMGFGTnhLU0I3WEc0Z0lDQWdJQ0FnSUc5bVpuTmxkQ0E5SUd4bGJtZDBhQ0F2SURFd08xeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQm9ZV3htVDJabWMyVjBJRDBnYjJabWMyVjBJQzhnTWp0Y2JpQWdJQ0JqYjI1emRDQmthWFpsY21kbFVHOXBiblFnUFNBd0xqSWdLeUJ5WVc1a2IyMG9ieWtnS2lBd0xqSTdYRzRnSUNBZ2JHVjBJRzFwWkVScGMzQllJRDBnYnk1aWIzZHBibWNnS2lCdkxtMWhlRkpoYm1SdmJXNWxjM05QWm1aelpYUWdLaUFvZVRJZ0xTQjVNU2tnTHlBeU1EQTdYRzRnSUNBZ2JHVjBJRzFwWkVScGMzQlpJRDBnYnk1aWIzZHBibWNnS2lCdkxtMWhlRkpoYm1SdmJXNWxjM05QWm1aelpYUWdLaUFvZURFZ0xTQjRNaWtnTHlBeU1EQTdYRzRnSUNBZ2JXbGtSR2x6Y0ZnZ1BTQmZiMlptYzJWMFQzQjBLRzFwWkVScGMzQllMQ0J2TENCeWIzVm5hRzVsYzNOSFlXbHVLVHRjYmlBZ0lDQnRhV1JFYVhOd1dTQTlJRjl2Wm1aelpYUlBjSFFvYldsa1JHbHpjRmtzSUc4c0lISnZkV2RvYm1WemMwZGhhVzRwTzF4dUlDQWdJR052Ym5OMElHOXdjeUE5SUZ0ZE8xeHVJQ0FnSUdOdmJuTjBJSEpoYm1SdmJVaGhiR1lnUFNBb0tTQTlQaUJmYjJabWMyVjBUM0IwS0doaGJHWlBabVp6WlhRc0lHOHNJSEp2ZFdkb2JtVnpjMGRoYVc0cE8xeHVJQ0FnSUdOdmJuTjBJSEpoYm1SdmJVWjFiR3dnUFNBb0tTQTlQaUJmYjJabWMyVjBUM0IwS0c5bVpuTmxkQ3dnYnl3Z2NtOTFaMmh1WlhOelIyRnBiaWs3WEc0Z0lDQWdZMjl1YzNRZ2NISmxjMlZ5ZG1WV1pYSjBhV05sY3lBOUlHOHVjSEpsYzJWeWRtVldaWEowYVdObGN6dGNiaUFnSUNCcFppQW9iVzkyWlNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYjNabGNteGhlU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdiM0J6TG5CMWMyZ29lMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl3T2lBbmJXOTJaU2NzSUdSaGRHRTZJRnRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2VERWdLeUFvY0hKbGMyVnlkbVZXWlhKMGFXTmxjeUEvSURBZ09pQnlZVzVrYjIxSVlXeG1LQ2twTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVNU0FySUNod2NtVnpaWEoyWlZabGNuUnBZMlZ6SUQ4Z01DQTZJSEpoYm1SdmJVaGhiR1lvS1Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1hTeGNiaUFnSUNBZ0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYjNCekxuQjFjMmdvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5d09pQW5iVzkyWlNjc0lHUmhkR0U2SUZ0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlREVnS3lBb2NISmxjMlZ5ZG1WV1pYSjBhV05sY3lBL0lEQWdPaUJmYjJabWMyVjBUM0IwS0c5bVpuTmxkQ3dnYnl3Z2NtOTFaMmh1WlhOelIyRnBiaWtwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVNU0FySUNod2NtVnpaWEoyWlZabGNuUnBZMlZ6SUQ4Z01DQTZJRjl2Wm1aelpYUlBjSFFvYjJabWMyVjBMQ0J2TENCeWIzVm5hRzVsYzNOSFlXbHVLU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWFN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNodmRtVnliR0Y1S1NCN1hHNGdJQ0FnSUNBZ0lHOXdjeTV3ZFhOb0tIdGNiaUFnSUNBZ0lDQWdJQ0FnSUc5d09pQW5ZbU4xY25abFZHOG5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pHRjBZVG9nVzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxcFpFUnBjM0JZSUNzZ2VERWdLeUFvZURJZ0xTQjRNU2tnS2lCa2FYWmxjbWRsVUc5cGJuUWdLeUJ5WVc1a2IyMUlZV3htS0Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JXbGtSR2x6Y0ZrZ0t5QjVNU0FySUNoNU1pQXRJSGt4S1NBcUlHUnBkbVZ5WjJWUWIybHVkQ0FySUhKaGJtUnZiVWhoYkdZb0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnRhV1JFYVhOd1dDQXJJSGd4SUNzZ01pQXFJQ2g0TWlBdElIZ3hLU0FxSUdScGRtVnlaMlZRYjJsdWRDQXJJSEpoYm1SdmJVaGhiR1lvS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdGFXUkVhWE53V1NBcklIa3hJQ3NnTWlBcUlDaDVNaUF0SUhreEtTQXFJR1JwZG1WeVoyVlFiMmx1ZENBcklISmhibVJ2YlVoaGJHWW9LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I0TWlBcklDaHdjbVZ6WlhKMlpWWmxjblJwWTJWeklEOGdNQ0E2SUhKaGJtUnZiVWhoYkdZb0tTa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlVElnS3lBb2NISmxjMlZ5ZG1WV1pYSjBhV05sY3lBL0lEQWdPaUJ5WVc1a2IyMUlZV3htS0NrcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnWFN4Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0J2Y0hNdWNIVnphQ2g3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnZjRG9nSjJKamRYSjJaVlJ2Snl4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JoZEdFNklGdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnRhV1JFYVhOd1dDQXJJSGd4SUNzZ0tIZ3lJQzBnZURFcElDb2daR2wyWlhKblpWQnZhVzUwSUNzZ2NtRnVaRzl0Um5Wc2JDZ3BMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzFwWkVScGMzQlpJQ3NnZVRFZ0t5QW9lVElnTFNCNU1Ta2dLaUJrYVhabGNtZGxVRzlwYm5RZ0t5QnlZVzVrYjIxR2RXeHNLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYldsa1JHbHpjRmdnS3lCNE1TQXJJRElnS2lBb2VESWdMU0I0TVNrZ0tpQmthWFpsY21kbFVHOXBiblFnS3lCeVlXNWtiMjFHZFd4c0tDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiV2xrUkdsemNGa2dLeUI1TVNBcklESWdLaUFvZVRJZ0xTQjVNU2tnS2lCa2FYWmxjbWRsVUc5cGJuUWdLeUJ5WVc1a2IyMUdkV3hzS0Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2VESWdLeUFvY0hKbGMyVnlkbVZXWlhKMGFXTmxjeUEvSURBZ09pQnlZVzVrYjIxR2RXeHNLQ2twTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhreUlDc2dLSEJ5WlhObGNuWmxWbVZ5ZEdsalpYTWdQeUF3SURvZ2NtRnVaRzl0Um5Wc2JDZ3BLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lGMHNYRzRnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2IzQnpPMXh1ZlZ4dVpuVnVZM1JwYjI0Z1gyTjFjblpsVjJsMGFFOW1abk5sZENod2IybHVkSE1zSUc5bVpuTmxkQ3dnYnlrZ2UxeHVJQ0FnSUdOdmJuTjBJSEJ6SUQwZ1cxMDdYRzRnSUNBZ2NITXVjSFZ6YUNoYlhHNGdJQ0FnSUNBZ0lIQnZhVzUwYzFzd1hWc3dYU0FySUY5dlptWnpaWFJQY0hRb2IyWm1jMlYwTENCdktTeGNiaUFnSUNBZ0lDQWdjRzlwYm5Seld6QmRXekZkSUNzZ1gyOW1abk5sZEU5d2RDaHZabVp6WlhRc0lHOHBMRnh1SUNBZ0lGMHBPMXh1SUNBZ0lIQnpMbkIxYzJnb1cxeHVJQ0FnSUNBZ0lDQndiMmx1ZEhOYk1GMWJNRjBnS3lCZmIyWm1jMlYwVDNCMEtHOW1abk5sZEN3Z2J5a3NYRzRnSUNBZ0lDQWdJSEJ2YVc1MGMxc3dYVnN4WFNBcklGOXZabVp6WlhSUGNIUW9iMlptYzJWMExDQnZLU3hjYmlBZ0lDQmRLVHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTVRzZ2FTQThJSEJ2YVc1MGN5NXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnSUNCd2N5NXdkWE5vS0Z0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJ2YVc1MGMxdHBYVnN3WFNBcklGOXZabVp6WlhSUGNIUW9iMlptYzJWMExDQnZLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIQnZhVzUwYzF0cFhWc3hYU0FySUY5dlptWnpaWFJQY0hRb2IyWm1jMlYwTENCdktTeGNiaUFnSUNBZ0lDQWdYU2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBJRDA5UFNBb2NHOXBiblJ6TG14bGJtZDBhQ0F0SURFcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCd2N5NXdkWE5vS0Z0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCd2IybHVkSE5iYVYxYk1GMGdLeUJmYjJabWMyVjBUM0IwS0c5bVpuTmxkQ3dnYnlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NHOXBiblJ6VzJsZFd6RmRJQ3NnWDI5bVpuTmxkRTl3ZENodlptWnpaWFFzSUc4cExGeHVJQ0FnSUNBZ0lDQWdJQ0FnWFNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJRjlqZFhKMlpTaHdjeXdnYm5Wc2JDd2dieWs3WEc1OVhHNW1kVzVqZEdsdmJpQmZZM1Z5ZG1Vb2NHOXBiblJ6TENCamJHOXpaVkJ2YVc1MExDQnZLU0I3WEc0Z0lDQWdZMjl1YzNRZ2JHVnVJRDBnY0c5cGJuUnpMbXhsYm1kMGFEdGNiaUFnSUNCamIyNXpkQ0J2Y0hNZ1BTQmJYVHRjYmlBZ0lDQnBaaUFvYkdWdUlENGdNeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JpSUQwZ1cxMDdYRzRnSUNBZ0lDQWdJR052Ym5OMElITWdQU0F4SUMwZ2J5NWpkWEoyWlZScFoyaDBibVZ6Y3p0Y2JpQWdJQ0FnSUNBZ2IzQnpMbkIxYzJnb2V5QnZjRG9nSjIxdmRtVW5MQ0JrWVhSaE9pQmJjRzlwYm5Seld6RmRXekJkTENCd2IybHVkSE5iTVYxYk1WMWRJSDBwTzF4dUlDQWdJQ0FnSUNCbWIzSWdLR3hsZENCcElEMGdNVHNnS0drZ0t5QXlLU0E4SUd4bGJqc2dhU3NyS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmpZV05vWldSV1pYSjBRWEp5WVhrZ1BTQndiMmx1ZEhOYmFWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCaVd6QmRJRDBnVzJOaFkyaGxaRlpsY25SQmNuSmhlVnN3WFN3Z1kyRmphR1ZrVm1WeWRFRnljbUY1V3pGZFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdKYk1WMGdQU0JiWTJGamFHVmtWbVZ5ZEVGeWNtRjVXekJkSUNzZ0tITWdLaUJ3YjJsdWRITmJhU0FySURGZFd6QmRJQzBnY3lBcUlIQnZhVzUwYzF0cElDMGdNVjFiTUYwcElDOGdOaXdnWTJGamFHVmtWbVZ5ZEVGeWNtRjVXekZkSUNzZ0tITWdLaUJ3YjJsdWRITmJhU0FySURGZFd6RmRJQzBnY3lBcUlIQnZhVzUwYzF0cElDMGdNVjFiTVYwcElDOGdObDA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmlXekpkSUQwZ1czQnZhVzUwYzF0cElDc2dNVjFiTUYwZ0t5QW9jeUFxSUhCdmFXNTBjMXRwWFZzd1hTQXRJSE1nS2lCd2IybHVkSE5iYVNBcklESmRXekJkS1NBdklEWXNJSEJ2YVc1MGMxdHBJQ3NnTVYxYk1WMGdLeUFvY3lBcUlIQnZhVzUwYzF0cFhWc3hYU0F0SUhNZ0tpQndiMmx1ZEhOYmFTQXJJREpkV3pGZEtTQXZJRFpkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZbHN6WFNBOUlGdHdiMmx1ZEhOYmFTQXJJREZkV3pCZExDQndiMmx1ZEhOYmFTQXJJREZkV3pGZFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUc5d2N5NXdkWE5vS0hzZ2IzQTZJQ2RpWTNWeWRtVlVieWNzSUdSaGRHRTZJRnRpV3pGZFd6QmRMQ0JpV3pGZFd6RmRMQ0JpV3pKZFd6QmRMQ0JpV3pKZFd6RmRMQ0JpV3pOZFd6QmRMQ0JpV3pOZFd6RmRYU0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnBaaUFvWTJ4dmMyVlFiMmx1ZENBbUppQmpiRzl6WlZCdmFXNTBMbXhsYm1kMGFDQTlQVDBnTWlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjbThnUFNCdkxtMWhlRkpoYm1SdmJXNWxjM05QWm1aelpYUTdYRzRnSUNBZ0lDQWdJQ0FnSUNCdmNITXVjSFZ6YUNoN0lHOXdPaUFuYkdsdVpWUnZKeXdnWkdGMFlUb2dXMk5zYjNObFVHOXBiblJiTUYwZ0t5QmZiMlptYzJWMFQzQjBLSEp2TENCdktTd2dZMnh2YzJWUWIybHVkRnN4WFNBcklGOXZabVp6WlhSUGNIUW9jbThzSUc4cFhTQjlLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQmxiSE5sSUdsbUlDaHNaVzRnUFQwOUlETXBJSHRjYmlBZ0lDQWdJQ0FnYjNCekxuQjFjMmdvZXlCdmNEb2dKMjF2ZG1VbkxDQmtZWFJoT2lCYmNHOXBiblJ6V3pGZFd6QmRMQ0J3YjJsdWRITmJNVjFiTVYxZElIMHBPMXh1SUNBZ0lDQWdJQ0J2Y0hNdWNIVnphQ2g3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnZjRG9nSjJKamRYSjJaVlJ2Snl4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JoZEdFNklGdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndiMmx1ZEhOYk1WMWJNRjBzSUhCdmFXNTBjMXN4WFZzeFhTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndiMmx1ZEhOYk1sMWJNRjBzSUhCdmFXNTBjMXN5WFZzeFhTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndiMmx1ZEhOYk1sMWJNRjBzSUhCdmFXNTBjMXN5WFZzeFhTeGNiaUFnSUNBZ0lDQWdJQ0FnSUYwc1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lIMWNiaUFnSUNCbGJITmxJR2xtSUNoc1pXNGdQVDA5SURJcElIdGNiaUFnSUNBZ0lDQWdiM0J6TG5CMWMyZ29MaTR1WDJSdmRXSnNaVXhwYm1Vb2NHOXBiblJ6V3pCZFd6QmRMQ0J3YjJsdWRITmJNRjFiTVYwc0lIQnZhVzUwYzFzeFhWc3dYU3dnY0c5cGJuUnpXekZkV3pGZExDQnZLU2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCdmNITTdYRzU5WEc1bWRXNWpkR2x2YmlCZlkyOXRjSFYwWlVWc2JHbHdjMlZRYjJsdWRITW9hVzVqY21WdFpXNTBMQ0JqZUN3Z1kza3NJSEo0TENCeWVTd2diMlptYzJWMExDQnZkbVZ5YkdGd0xDQnZLU0I3WEc0Z0lDQWdZMjl1YzNRZ1kyOXlaVTl1YkhrZ1BTQnZMbkp2ZFdkb2JtVnpjeUE5UFQwZ01EdGNiaUFnSUNCamIyNXpkQ0JqYjNKbFVHOXBiblJ6SUQwZ1cxMDdYRzRnSUNBZ1kyOXVjM1FnWVd4c1VHOXBiblJ6SUQwZ1cxMDdYRzRnSUNBZ2FXWWdLR052Y21WUGJteDVLU0I3WEc0Z0lDQWdJQ0FnSUdsdVkzSmxiV1Z1ZENBOUlHbHVZM0psYldWdWRDQXZJRFE3WEc0Z0lDQWdJQ0FnSUdGc2JGQnZhVzUwY3k1d2RYTm9LRnRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTjRJQ3NnY25nZ0tpQk5ZWFJvTG1OdmN5Z3RhVzVqY21WdFpXNTBLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHTjVJQ3NnY25rZ0tpQk5ZWFJvTG5OcGJpZ3RhVzVqY21WdFpXNTBLU3hjYmlBZ0lDQWdJQ0FnWFNrN1hHNGdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHRnVaMnhsSUQwZ01Ec2dZVzVuYkdVZ1BEMGdUV0YwYUM1UVNTQXFJREk3SUdGdVoyeGxJRDBnWVc1bmJHVWdLeUJwYm1OeVpXMWxiblFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElIQWdQU0JiWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNnZ0t5QnllQ0FxSUUxaGRHZ3VZMjl6S0dGdVoyeGxLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqZVNBcklISjVJQ29nVFdGMGFDNXphVzRvWVc1bmJHVXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1hUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmNtVlFiMmx1ZEhNdWNIVnphQ2h3S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0ZzYkZCdmFXNTBjeTV3ZFhOb0tIQXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdGc2JGQnZhVzUwY3k1d2RYTm9LRnRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTjRJQ3NnY25nZ0tpQk5ZWFJvTG1OdmN5Z3dLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHTjVJQ3NnY25rZ0tpQk5ZWFJvTG5OcGJpZ3dLU3hjYmlBZ0lDQWdJQ0FnWFNrN1hHNGdJQ0FnSUNBZ0lHRnNiRkJ2YVc1MGN5NXdkWE5vS0Z0Y2JpQWdJQ0FnSUNBZ0lDQWdJR040SUNzZ2NuZ2dLaUJOWVhSb0xtTnZjeWhwYm1OeVpXMWxiblFwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdZM2tnS3lCeWVTQXFJRTFoZEdndWMybHVLR2x1WTNKbGJXVnVkQ2tzWEc0Z0lDQWdJQ0FnSUYwcE8xeHVJQ0FnSUgxY2JpQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NtRmtUMlptYzJWMElEMGdYMjltWm5ObGRFOXdkQ2d3TGpVc0lHOHBJQzBnS0UxaGRHZ3VVRWtnTHlBeUtUdGNiaUFnSUNBZ0lDQWdZV3hzVUc5cGJuUnpMbkIxYzJnb1cxeHVJQ0FnSUNBZ0lDQWdJQ0FnWDI5bVpuTmxkRTl3ZENodlptWnpaWFFzSUc4cElDc2dZM2dnS3lBd0xqa2dLaUJ5ZUNBcUlFMWhkR2d1WTI5ektISmhaRTltWm5ObGRDQXRJR2x1WTNKbGJXVnVkQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmZiMlptYzJWMFQzQjBLRzltWm5ObGRDd2dieWtnS3lCamVTQXJJREF1T1NBcUlISjVJQ29nVFdGMGFDNXphVzRvY21Ga1QyWm1jMlYwSUMwZ2FXNWpjbVZ0Wlc1MEtTeGNiaUFnSUNBZ0lDQWdYU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1Z1WkVGdVoyeGxJRDBnVFdGMGFDNVFTU0FxSURJZ0t5QnlZV1JQWm1aelpYUWdMU0F3TGpBeE8xeHVJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQmhibWRzWlNBOUlISmhaRTltWm5ObGREc2dZVzVuYkdVZ1BDQmxibVJCYm1kc1pUc2dZVzVuYkdVZ1BTQmhibWRzWlNBcklHbHVZM0psYldWdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY0NBOUlGdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmZiMlptYzJWMFQzQjBLRzltWm5ObGRDd2dieWtnS3lCamVDQXJJSEo0SUNvZ1RXRjBhQzVqYjNNb1lXNW5iR1VwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUY5dlptWnpaWFJQY0hRb2IyWm1jMlYwTENCdktTQXJJR041SUNzZ2Nua2dLaUJOWVhSb0xuTnBiaWhoYm1kc1pTa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5eVpWQnZhVzUwY3k1d2RYTm9LSEFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZV3hzVUc5cGJuUnpMbkIxYzJnb2NDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWVd4c1VHOXBiblJ6TG5CMWMyZ29XMXh1SUNBZ0lDQWdJQ0FnSUNBZ1gyOW1abk5sZEU5d2RDaHZabVp6WlhRc0lHOHBJQ3NnWTNnZ0t5QnllQ0FxSUUxaGRHZ3VZMjl6S0hKaFpFOW1abk5sZENBcklFMWhkR2d1VUVrZ0tpQXlJQ3NnYjNabGNteGhjQ0FxSURBdU5Ta3NYRzRnSUNBZ0lDQWdJQ0FnSUNCZmIyWm1jMlYwVDNCMEtHOW1abk5sZEN3Z2J5a2dLeUJqZVNBcklISjVJQ29nVFdGMGFDNXphVzRvY21Ga1QyWm1jMlYwSUNzZ1RXRjBhQzVRU1NBcUlESWdLeUJ2ZG1WeWJHRndJQ29nTUM0MUtTeGNiaUFnSUNBZ0lDQWdYU2s3WEc0Z0lDQWdJQ0FnSUdGc2JGQnZhVzUwY3k1d2RYTm9LRnRjYmlBZ0lDQWdJQ0FnSUNBZ0lGOXZabVp6WlhSUGNIUW9iMlptYzJWMExDQnZLU0FySUdONElDc2dNQzQ1T0NBcUlISjRJQ29nVFdGMGFDNWpiM01vY21Ga1QyWm1jMlYwSUNzZ2IzWmxjbXhoY0Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JmYjJabWMyVjBUM0IwS0c5bVpuTmxkQ3dnYnlrZ0t5QmplU0FySURBdU9UZ2dLaUJ5ZVNBcUlFMWhkR2d1YzJsdUtISmhaRTltWm5ObGRDQXJJRzkyWlhKc1lYQXBMRnh1SUNBZ0lDQWdJQ0JkS1R0Y2JpQWdJQ0FnSUNBZ1lXeHNVRzlwYm5SekxuQjFjMmdvVzF4dUlDQWdJQ0FnSUNBZ0lDQWdYMjltWm5ObGRFOXdkQ2h2Wm1aelpYUXNJRzhwSUNzZ1kzZ2dLeUF3TGprZ0tpQnllQ0FxSUUxaGRHZ3VZMjl6S0hKaFpFOW1abk5sZENBcklHOTJaWEpzWVhBZ0tpQXdMalVwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdYMjltWm5ObGRFOXdkQ2h2Wm1aelpYUXNJRzhwSUNzZ1kza2dLeUF3TGprZ0tpQnllU0FxSUUxaGRHZ3VjMmx1S0hKaFpFOW1abk5sZENBcklHOTJaWEpzWVhBZ0tpQXdMalVwTEZ4dUlDQWdJQ0FnSUNCZEtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJRnRoYkd4UWIybHVkSE1zSUdOdmNtVlFiMmx1ZEhOZE8xeHVmVnh1Wm5WdVkzUnBiMjRnWDJGeVl5aHBibU55WlcxbGJuUXNJR040TENCamVTd2djbmdzSUhKNUxDQnpkSEowTENCemRIQXNJRzltWm5ObGRDd2dieWtnZTF4dUlDQWdJR052Ym5OMElISmhaRTltWm5ObGRDQTlJSE4wY25RZ0t5QmZiMlptYzJWMFQzQjBLREF1TVN3Z2J5azdYRzRnSUNBZ1kyOXVjM1FnY0c5cGJuUnpJRDBnVzEwN1hHNGdJQ0FnY0c5cGJuUnpMbkIxYzJnb1cxeHVJQ0FnSUNBZ0lDQmZiMlptYzJWMFQzQjBLRzltWm5ObGRDd2dieWtnS3lCamVDQXJJREF1T1NBcUlISjRJQ29nVFdGMGFDNWpiM01vY21Ga1QyWm1jMlYwSUMwZ2FXNWpjbVZ0Wlc1MEtTeGNiaUFnSUNBZ0lDQWdYMjltWm5ObGRFOXdkQ2h2Wm1aelpYUXNJRzhwSUNzZ1kza2dLeUF3TGprZ0tpQnllU0FxSUUxaGRHZ3VjMmx1S0hKaFpFOW1abk5sZENBdElHbHVZM0psYldWdWRDa3NYRzRnSUNBZ1hTazdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ1lXNW5iR1VnUFNCeVlXUlBabVp6WlhRN0lHRnVaMnhsSUR3OUlITjBjRHNnWVc1bmJHVWdQU0JoYm1kc1pTQXJJR2x1WTNKbGJXVnVkQ2tnZTF4dUlDQWdJQ0FnSUNCd2IybHVkSE11Y0hWemFDaGJYRzRnSUNBZ0lDQWdJQ0FnSUNCZmIyWm1jMlYwVDNCMEtHOW1abk5sZEN3Z2J5a2dLeUJqZUNBcklISjRJQ29nVFdGMGFDNWpiM01vWVc1bmJHVXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1gyOW1abk5sZEU5d2RDaHZabVp6WlhRc0lHOHBJQ3NnWTNrZ0t5QnllU0FxSUUxaGRHZ3VjMmx1S0dGdVoyeGxLU3hjYmlBZ0lDQWdJQ0FnWFNrN1hHNGdJQ0FnZlZ4dUlDQWdJSEJ2YVc1MGN5NXdkWE5vS0Z0Y2JpQWdJQ0FnSUNBZ1kzZ2dLeUJ5ZUNBcUlFMWhkR2d1WTI5ektITjBjQ2tzWEc0Z0lDQWdJQ0FnSUdONUlDc2djbmtnS2lCTllYUm9Mbk5wYmloemRIQXBMRnh1SUNBZ0lGMHBPMXh1SUNBZ0lIQnZhVzUwY3k1d2RYTm9LRnRjYmlBZ0lDQWdJQ0FnWTNnZ0t5QnllQ0FxSUUxaGRHZ3VZMjl6S0hOMGNDa3NYRzRnSUNBZ0lDQWdJR041SUNzZ2Nua2dLaUJOWVhSb0xuTnBiaWh6ZEhBcExGeHVJQ0FnSUYwcE8xeHVJQ0FnSUhKbGRIVnliaUJmWTNWeWRtVW9jRzlwYm5SekxDQnVkV3hzTENCdktUdGNibjFjYm1aMWJtTjBhVzl1SUY5aVpYcHBaWEpVYnloNE1Td2dlVEVzSUhneUxDQjVNaXdnZUN3Z2VTd2dZM1Z5Y21WdWRDd2dieWtnZTF4dUlDQWdJR052Ym5OMElHOXdjeUE5SUZ0ZE8xeHVJQ0FnSUdOdmJuTjBJSEp2Y3lBOUlGdHZMbTFoZUZKaGJtUnZiVzVsYzNOUFptWnpaWFFnZkh3Z01Td2dLRzh1YldGNFVtRnVaRzl0Ym1WemMwOW1abk5sZENCOGZDQXhLU0FySURBdU0xMDdYRzRnSUNBZ2JHVjBJR1lnUFNCYk1Dd2dNRjA3WEc0Z0lDQWdZMjl1YzNRZ2FYUmxjbUYwYVc5dWN5QTlJRzh1WkdsellXSnNaVTExYkhScFUzUnliMnRsSUQ4Z01TQTZJREk3WEc0Z0lDQWdZMjl1YzNRZ2NISmxjMlZ5ZG1WV1pYSjBhV05sY3lBOUlHOHVjSEpsYzJWeWRtVldaWEowYVdObGN6dGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHbDBaWEpoZEdsdmJuTTdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYVNBOVBUMGdNQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdiM0J6TG5CMWMyZ29leUJ2Y0RvZ0oyMXZkbVVuTENCa1lYUmhPaUJiWTNWeWNtVnVkRnN3WFN3Z1kzVnljbVZ1ZEZzeFhWMGdmU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnZjSE11Y0hWemFDaDdJRzl3T2lBbmJXOTJaU2NzSUdSaGRHRTZJRnRqZFhKeVpXNTBXekJkSUNzZ0tIQnlaWE5sY25abFZtVnlkR2xqWlhNZ1B5QXdJRG9nWDI5bVpuTmxkRTl3ZENoeWIzTmJNRjBzSUc4cEtTd2dZM1Z5Y21WdWRGc3hYU0FySUNod2NtVnpaWEoyWlZabGNuUnBZMlZ6SUQ4Z01DQTZJRjl2Wm1aelpYUlBjSFFvY205eld6QmRMQ0J2S1NsZElIMHBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdZZ1BTQndjbVZ6WlhKMlpWWmxjblJwWTJWeklEOGdXM2dzSUhsZElEb2dXM2dnS3lCZmIyWm1jMlYwVDNCMEtISnZjMXRwWFN3Z2J5a3NJSGtnS3lCZmIyWm1jMlYwVDNCMEtISnZjMXRwWFN3Z2J5bGRPMXh1SUNBZ0lDQWdJQ0J2Y0hNdWNIVnphQ2g3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnZjRG9nSjJKamRYSjJaVlJ2Snl4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JoZEdFNklGdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjRNU0FySUY5dlptWnpaWFJQY0hRb2NtOXpXMmxkTENCdktTd2dlVEVnS3lCZmIyWm1jMlYwVDNCMEtISnZjMXRwWFN3Z2J5a3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlRElnS3lCZmIyWm1jMlYwVDNCMEtISnZjMXRwWFN3Z2J5a3NJSGt5SUNzZ1gyOW1abk5sZEU5d2RDaHliM05iYVYwc0lHOHBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1piTUYwc0lHWmJNVjBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmRMRnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHOXdjenRjYm4xY2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9yb3VnaGpzL2Jpbi9yZW5kZXJlci5qc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL3JvdWdoLmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vcm91Z2guanMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkZWZhdWx0XFxcIjogKCkgPT4gKF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY2FudmFzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2NhbnZhcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2NhbnZhcy5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZ2VuZXJhdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2dlbmVyYXRvciAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2dlbmVyYXRvci5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc3ZnX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3N2ZyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL3N2Zy5qc1xcXCIpO1xcblxcblxcblxcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoe1xcbiAgICBjYW52YXMoY2FudmFzLCBjb25maWcpIHtcXG4gICAgICAgIHJldHVybiBuZXcgX2NhbnZhc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlJvdWdoQ2FudmFzKGNhbnZhcywgY29uZmlnKTtcXG4gICAgfSxcXG4gICAgc3ZnKHN2ZywgY29uZmlnKSB7XFxuICAgICAgICByZXR1cm4gbmV3IF9zdmdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5Sb3VnaFNWRyhzdmcsIGNvbmZpZyk7XFxuICAgIH0sXFxuICAgIGdlbmVyYXRvcihjb25maWcpIHtcXG4gICAgICAgIHJldHVybiBuZXcgX2dlbmVyYXRvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlJvdWdoR2VuZXJhdG9yKGNvbmZpZyk7XFxuICAgIH0sXFxuICAgIG5ld1NlZWQoKSB7XFxuICAgICAgICByZXR1cm4gX2dlbmVyYXRvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlJvdWdoR2VuZXJhdG9yLm5ld1NlZWQoKTtcXG4gICAgfSxcXG59KTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDNKdmRXZG9hbk12WW1sdUwzSnZkV2RvTG1wekxtcHpJaXdpYldGd2NHbHVaM01pT2lJN096czdPenM3UVVGQmRVTTdRVUZEVFR0QlFVTmFPMEZCUTJwRExHbEZRVUZsTzBGQlEyWTdRVUZEUVN4dFFrRkJiVUlzWjBSQlFWYzdRVUZET1VJc1MwRkJTenRCUVVOTU8wRkJRMEVzYlVKQlFXMUNMREJEUVVGUk8wRkJRek5DTEV0QlFVczdRVUZEVER0QlFVTkJMRzFDUVVGdFFpeHpSRUZCWXp0QlFVTnFReXhMUVVGTE8wRkJRMHc3UVVGRFFTeGxRVUZsTERoRVFVRnpRanRCUVVOeVF5eExRVUZMTzBGQlEwd3NRMEZCUXl4RlFVRkRJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl5YjNWbmFHcHpMMkpwYmk5eWIzVm5hQzVxY3o4M09USTRJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUZKdmRXZG9RMkZ1ZG1GeklIMGdabkp2YlNBbkxpOWpZVzUyWVhNbk8xeHVhVzF3YjNKMElIc2dVbTkxWjJoSFpXNWxjbUYwYjNJZ2ZTQm1jbTl0SUNjdUwyZGxibVZ5WVhSdmNpYzdYRzVwYlhCdmNuUWdleUJTYjNWbmFGTldSeUI5SUdaeWIyMGdKeTR2YzNabkp6dGNibVY0Y0c5eWRDQmtaV1poZFd4MElIdGNiaUFnSUNCallXNTJZWE1vWTJGdWRtRnpMQ0JqYjI1bWFXY3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzVsZHlCU2IzVm5hRU5oYm5aaGN5aGpZVzUyWVhNc0lHTnZibVpwWnlrN1hHNGdJQ0FnZlN4Y2JpQWdJQ0J6ZG1jb2MzWm5MQ0JqYjI1bWFXY3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzVsZHlCU2IzVm5hRk5XUnloemRtY3NJR052Ym1acFp5azdYRzRnSUNBZ2ZTeGNiaUFnSUNCblpXNWxjbUYwYjNJb1kyOXVabWxuS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdVpYY2dVbTkxWjJoSFpXNWxjbUYwYjNJb1kyOXVabWxuS1R0Y2JpQWdJQ0I5TEZ4dUlDQWdJRzVsZDFObFpXUW9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJTYjNWbmFFZGxibVZ5WVhSdmNpNXVaWGRUWldWa0tDazdYRzRnSUNBZ2ZTeGNibjA3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL3JvdWdoLmpzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vc3ZnLmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL3N2Zy5qcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJSb3VnaFNWR1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFJvdWdoU1ZHKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9jb3JlICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vY29yZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZ2VuZXJhdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2dlbmVyYXRvciAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL2dlbmVyYXRvci5qc1xcXCIpO1xcblxcblxcbmNsYXNzIFJvdWdoU1ZHIHtcXG4gICAgY29uc3RydWN0b3Ioc3ZnLCBjb25maWcpIHtcXG4gICAgICAgIHRoaXMuc3ZnID0gc3ZnO1xcbiAgICAgICAgdGhpcy5nZW4gPSBuZXcgX2dlbmVyYXRvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlJvdWdoR2VuZXJhdG9yKGNvbmZpZyk7XFxuICAgIH1cXG4gICAgZHJhdyhkcmF3YWJsZSkge1xcbiAgICAgICAgY29uc3Qgc2V0cyA9IGRyYXdhYmxlLnNldHMgfHwgW107XFxuICAgICAgICBjb25zdCBvID0gZHJhd2FibGUub3B0aW9ucyB8fCB0aGlzLmdldERlZmF1bHRPcHRpb25zKCk7XFxuICAgICAgICBjb25zdCBkb2MgPSB0aGlzLnN2Zy5vd25lckRvY3VtZW50IHx8IHdpbmRvdy5kb2N1bWVudDtcXG4gICAgICAgIGNvbnN0IGcgPSBkb2MuY3JlYXRlRWxlbWVudE5TKF9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uU1ZHTlMsICdnJyk7XFxuICAgICAgICBjb25zdCBwcmVjaXNpb24gPSBkcmF3YWJsZS5vcHRpb25zLmZpeGVkRGVjaW1hbFBsYWNlRGlnaXRzO1xcbiAgICAgICAgZm9yIChjb25zdCBkcmF3aW5nIG9mIHNldHMpIHtcXG4gICAgICAgICAgICBsZXQgcGF0aCA9IG51bGw7XFxuICAgICAgICAgICAgc3dpdGNoIChkcmF3aW5nLnR5cGUpIHtcXG4gICAgICAgICAgICAgICAgY2FzZSAncGF0aCc6IHtcXG4gICAgICAgICAgICAgICAgICAgIHBhdGggPSBkb2MuY3JlYXRlRWxlbWVudE5TKF9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uU1ZHTlMsICdwYXRoJyk7XFxuICAgICAgICAgICAgICAgICAgICBwYXRoLnNldEF0dHJpYnV0ZSgnZCcsIHRoaXMub3BzVG9QYXRoKGRyYXdpbmcsIHByZWNpc2lvbikpO1xcbiAgICAgICAgICAgICAgICAgICAgcGF0aC5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsIG8uc3Ryb2tlKTtcXG4gICAgICAgICAgICAgICAgICAgIHBhdGguc2V0QXR0cmlidXRlKCdzdHJva2Utd2lkdGgnLCBvLnN0cm9rZVdpZHRoICsgJycpO1xcbiAgICAgICAgICAgICAgICAgICAgcGF0aC5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCAnbm9uZScpO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKG8uc3Ryb2tlTGluZURhc2gpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoLnNldEF0dHJpYnV0ZSgnc3Ryb2tlLWRhc2hhcnJheScsIG8uc3Ryb2tlTGluZURhc2guam9pbignICcpLnRyaW0oKSk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBpZiAoby5zdHJva2VMaW5lRGFzaE9mZnNldCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguc2V0QXR0cmlidXRlKCdzdHJva2UtZGFzaG9mZnNldCcsIGAke28uc3Ryb2tlTGluZURhc2hPZmZzZXR9YCk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBjYXNlICdmaWxsUGF0aCc6IHtcXG4gICAgICAgICAgICAgICAgICAgIHBhdGggPSBkb2MuY3JlYXRlRWxlbWVudE5TKF9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uU1ZHTlMsICdwYXRoJyk7XFxuICAgICAgICAgICAgICAgICAgICBwYXRoLnNldEF0dHJpYnV0ZSgnZCcsIHRoaXMub3BzVG9QYXRoKGRyYXdpbmcsIHByZWNpc2lvbikpO1xcbiAgICAgICAgICAgICAgICAgICAgcGF0aC5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsICdub25lJyk7XFxuICAgICAgICAgICAgICAgICAgICBwYXRoLnNldEF0dHJpYnV0ZSgnc3Ryb2tlLXdpZHRoJywgJzAnKTtcXG4gICAgICAgICAgICAgICAgICAgIHBhdGguc2V0QXR0cmlidXRlKCdmaWxsJywgby5maWxsIHx8ICcnKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChkcmF3YWJsZS5zaGFwZSA9PT0gJ2N1cnZlJyB8fCBkcmF3YWJsZS5zaGFwZSA9PT0gJ3BvbHlnb24nKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5zZXRBdHRyaWJ1dGUoJ2ZpbGwtcnVsZScsICdldmVub2RkJyk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBjYXNlICdmaWxsU2tldGNoJzoge1xcbiAgICAgICAgICAgICAgICAgICAgcGF0aCA9IHRoaXMuZmlsbFNrZXRjaChkb2MsIGRyYXdpbmcsIG8pO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHBhdGgpIHtcXG4gICAgICAgICAgICAgICAgZy5hcHBlbmRDaGlsZChwYXRoKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gZztcXG4gICAgfVxcbiAgICBmaWxsU2tldGNoKGRvYywgZHJhd2luZywgbykge1xcbiAgICAgICAgbGV0IGZ3ZWlnaHQgPSBvLmZpbGxXZWlnaHQ7XFxuICAgICAgICBpZiAoZndlaWdodCA8IDApIHtcXG4gICAgICAgICAgICBmd2VpZ2h0ID0gby5zdHJva2VXaWR0aCAvIDI7XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBwYXRoID0gZG9jLmNyZWF0ZUVsZW1lbnROUyhfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlNWR05TLCAncGF0aCcpO1xcbiAgICAgICAgcGF0aC5zZXRBdHRyaWJ1dGUoJ2QnLCB0aGlzLm9wc1RvUGF0aChkcmF3aW5nLCBvLmZpeGVkRGVjaW1hbFBsYWNlRGlnaXRzKSk7XFxuICAgICAgICBwYXRoLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgby5maWxsIHx8ICcnKTtcXG4gICAgICAgIHBhdGguc2V0QXR0cmlidXRlKCdzdHJva2Utd2lkdGgnLCBmd2VpZ2h0ICsgJycpO1xcbiAgICAgICAgcGF0aC5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCAnbm9uZScpO1xcbiAgICAgICAgaWYgKG8uZmlsbExpbmVEYXNoKSB7XFxuICAgICAgICAgICAgcGF0aC5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS1kYXNoYXJyYXknLCBvLmZpbGxMaW5lRGFzaC5qb2luKCcgJykudHJpbSgpKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChvLmZpbGxMaW5lRGFzaE9mZnNldCkge1xcbiAgICAgICAgICAgIHBhdGguc2V0QXR0cmlidXRlKCdzdHJva2UtZGFzaG9mZnNldCcsIGAke28uZmlsbExpbmVEYXNoT2Zmc2V0fWApO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHBhdGg7XFxuICAgIH1cXG4gICAgZ2V0IGdlbmVyYXRvcigpIHtcXG4gICAgICAgIHJldHVybiB0aGlzLmdlbjtcXG4gICAgfVxcbiAgICBnZXREZWZhdWx0T3B0aW9ucygpIHtcXG4gICAgICAgIHJldHVybiB0aGlzLmdlbi5kZWZhdWx0T3B0aW9ucztcXG4gICAgfVxcbiAgICBvcHNUb1BhdGgoZHJhd2luZywgZml4ZWREZWNpbWFsUGxhY2VEaWdpdHMpIHtcXG4gICAgICAgIHJldHVybiB0aGlzLmdlbi5vcHNUb1BhdGgoZHJhd2luZywgZml4ZWREZWNpbWFsUGxhY2VEaWdpdHMpO1xcbiAgICB9XFxuICAgIGxpbmUoeDEsIHkxLCB4MiwgeTIsIG9wdGlvbnMpIHtcXG4gICAgICAgIGNvbnN0IGQgPSB0aGlzLmdlbi5saW5lKHgxLCB5MSwgeDIsIHkyLCBvcHRpb25zKTtcXG4gICAgICAgIHJldHVybiB0aGlzLmRyYXcoZCk7XFxuICAgIH1cXG4gICAgcmVjdGFuZ2xlKHgsIHksIHdpZHRoLCBoZWlnaHQsIG9wdGlvbnMpIHtcXG4gICAgICAgIGNvbnN0IGQgPSB0aGlzLmdlbi5yZWN0YW5nbGUoeCwgeSwgd2lkdGgsIGhlaWdodCwgb3B0aW9ucyk7XFxuICAgICAgICByZXR1cm4gdGhpcy5kcmF3KGQpO1xcbiAgICB9XFxuICAgIGVsbGlwc2UoeCwgeSwgd2lkdGgsIGhlaWdodCwgb3B0aW9ucykge1xcbiAgICAgICAgY29uc3QgZCA9IHRoaXMuZ2VuLmVsbGlwc2UoeCwgeSwgd2lkdGgsIGhlaWdodCwgb3B0aW9ucyk7XFxuICAgICAgICByZXR1cm4gdGhpcy5kcmF3KGQpO1xcbiAgICB9XFxuICAgIGNpcmNsZSh4LCB5LCBkaWFtZXRlciwgb3B0aW9ucykge1xcbiAgICAgICAgY29uc3QgZCA9IHRoaXMuZ2VuLmNpcmNsZSh4LCB5LCBkaWFtZXRlciwgb3B0aW9ucyk7XFxuICAgICAgICByZXR1cm4gdGhpcy5kcmF3KGQpO1xcbiAgICB9XFxuICAgIGxpbmVhclBhdGgocG9pbnRzLCBvcHRpb25zKSB7XFxuICAgICAgICBjb25zdCBkID0gdGhpcy5nZW4ubGluZWFyUGF0aChwb2ludHMsIG9wdGlvbnMpO1xcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJhdyhkKTtcXG4gICAgfVxcbiAgICBwb2x5Z29uKHBvaW50cywgb3B0aW9ucykge1xcbiAgICAgICAgY29uc3QgZCA9IHRoaXMuZ2VuLnBvbHlnb24ocG9pbnRzLCBvcHRpb25zKTtcXG4gICAgICAgIHJldHVybiB0aGlzLmRyYXcoZCk7XFxuICAgIH1cXG4gICAgYXJjKHgsIHksIHdpZHRoLCBoZWlnaHQsIHN0YXJ0LCBzdG9wLCBjbG9zZWQgPSBmYWxzZSwgb3B0aW9ucykge1xcbiAgICAgICAgY29uc3QgZCA9IHRoaXMuZ2VuLmFyYyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBzdGFydCwgc3RvcCwgY2xvc2VkLCBvcHRpb25zKTtcXG4gICAgICAgIHJldHVybiB0aGlzLmRyYXcoZCk7XFxuICAgIH1cXG4gICAgY3VydmUocG9pbnRzLCBvcHRpb25zKSB7XFxuICAgICAgICBjb25zdCBkID0gdGhpcy5nZW4uY3VydmUocG9pbnRzLCBvcHRpb25zKTtcXG4gICAgICAgIHJldHVybiB0aGlzLmRyYXcoZCk7XFxuICAgIH1cXG4gICAgcGF0aChkLCBvcHRpb25zKSB7XFxuICAgICAgICBjb25zdCBkcmF3aW5nID0gdGhpcy5nZW4ucGF0aChkLCBvcHRpb25zKTtcXG4gICAgICAgIHJldHVybiB0aGlzLmRyYXcoZHJhd2luZyk7XFxuICAgIH1cXG59XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzSnZkV2RvYW5NdlltbHVMM04yWnk1cWN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3UVVGQkswSTdRVUZEWXp0QlFVTjBRenRCUVVOUU8wRkJRMEU3UVVGRFFTeDFRa0ZCZFVJc2MwUkJRV003UVVGRGNrTTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxITkRRVUZ6UXl4M1EwRkJTenRCUVVNelF6dEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc0swTkJRU3RETEhkRFFVRkxPMEZCUTNCRU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hyUlVGQmEwVXNkVUpCUVhWQ08wRkJRM3BHTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc0swTkJRU3RETEhkRFFVRkxPMEZCUTNCRU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFc2VVTkJRWGxETEhkRFFVRkxPMEZCUXpsRE8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3h6UkVGQmMwUXNjVUpCUVhGQ08wRkJRek5GTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl5YjNWbmFHcHpMMkpwYmk5emRtY3Vhbk0vWkdVNU5pSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJUVmtkT1V5QjlJR1p5YjIwZ0p5NHZZMjl5WlNjN1hHNXBiWEJ2Y25RZ2V5QlNiM1ZuYUVkbGJtVnlZWFJ2Y2lCOUlHWnliMjBnSnk0dloyVnVaWEpoZEc5eUp6dGNibVY0Y0c5eWRDQmpiR0Z6Y3lCU2IzVm5hRk5XUnlCN1hHNGdJQ0FnWTI5dWMzUnlkV04wYjNJb2MzWm5MQ0JqYjI1bWFXY3BJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpkbWNnUFNCemRtYzdYRzRnSUNBZ0lDQWdJSFJvYVhNdVoyVnVJRDBnYm1WM0lGSnZkV2RvUjJWdVpYSmhkRzl5S0dOdmJtWnBaeWs3WEc0Z0lDQWdmVnh1SUNBZ0lHUnlZWGNvWkhKaGQyRmliR1VwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzJWMGN5QTlJR1J5WVhkaFlteGxMbk5sZEhNZ2ZId2dXMTA3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzhnUFNCa2NtRjNZV0pzWlM1dmNIUnBiMjV6SUh4OElIUm9hWE11WjJWMFJHVm1ZWFZzZEU5d2RHbHZibk1vS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWkc5aklEMGdkR2hwY3k1emRtY3ViM2R1WlhKRWIyTjFiV1Z1ZENCOGZDQjNhVzVrYjNjdVpHOWpkVzFsYm5RN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdjZ1BTQmtiMk11WTNKbFlYUmxSV3hsYldWdWRFNVRLRk5XUjA1VExDQW5aeWNwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3Y21WamFYTnBiMjRnUFNCa2NtRjNZV0pzWlM1dmNIUnBiMjV6TG1acGVHVmtSR1ZqYVcxaGJGQnNZV05sUkdsbmFYUnpPMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdSeVlYZHBibWNnYjJZZ2MyVjBjeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdiR1YwSUhCaGRHZ2dQU0J1ZFd4c08xeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNkcGRHTm9JQ2hrY21GM2FXNW5MblI1Y0dVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUNkd1lYUm9Kem9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndZWFJvSUQwZ1pHOWpMbU55WldGMFpVVnNaVzFsYm5ST1V5aFRWa2RPVXl3Z0ozQmhkR2duS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjR0YwYUM1elpYUkJkSFJ5YVdKMWRHVW9KMlFuTENCMGFHbHpMbTl3YzFSdlVHRjBhQ2hrY21GM2FXNW5MQ0J3Y21WamFYTnBiMjRwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjR0YwYUM1elpYUkJkSFJ5YVdKMWRHVW9KM04wY205clpTY3NJRzh1YzNSeWIydGxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NHRjBhQzV6WlhSQmRIUnlhV0oxZEdVb0ozTjBjbTlyWlMxM2FXUjBhQ2NzSUc4dWMzUnliMnRsVjJsa2RHZ2dLeUFuSnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJoZEdndWMyVjBRWFIwY21saWRYUmxLQ2RtYVd4c0p5d2dKMjV2Ym1VbktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHOHVjM1J5YjJ0bFRHbHVaVVJoYzJncElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIQmhkR2d1YzJWMFFYUjBjbWxpZFhSbEtDZHpkSEp2YTJVdFpHRnphR0Z5Y21GNUp5d2dieTV6ZEhKdmEyVk1hVzVsUkdGemFDNXFiMmx1S0NjZ0p5a3VkSEpwYlNncEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYnk1emRISnZhMlZNYVc1bFJHRnphRTltWm5ObGRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjR0YwYUM1elpYUkJkSFJ5YVdKMWRHVW9KM04wY205clpTMWtZWE5vYjJabWMyVjBKeXdnWUNSN2J5NXpkSEp2YTJWTWFXNWxSR0Z6YUU5bVpuTmxkSDFnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQW5abWxzYkZCaGRHZ25PaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIQmhkR2dnUFNCa2IyTXVZM0psWVhSbFJXeGxiV1Z1ZEU1VEtGTldSMDVUTENBbmNHRjBhQ2NwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndZWFJvTG5ObGRFRjBkSEpwWW5WMFpTZ25aQ2NzSUhSb2FYTXViM0J6Vkc5UVlYUm9LR1J5WVhkcGJtY3NJSEJ5WldOcGMybHZiaWtwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndZWFJvTG5ObGRFRjBkSEpwWW5WMFpTZ25jM1J5YjJ0bEp5d2dKMjV2Ym1VbktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0dGMGFDNXpaWFJCZEhSeWFXSjFkR1VvSjNOMGNtOXJaUzEzYVdSMGFDY3NJQ2N3SnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJoZEdndWMyVjBRWFIwY21saWRYUmxLQ2RtYVd4c0p5d2dieTVtYVd4c0lIeDhJQ2NuS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dSeVlYZGhZbXhsTG5Ob1lYQmxJRDA5UFNBblkzVnlkbVVuSUh4OElHUnlZWGRoWW14bExuTm9ZWEJsSUQwOVBTQW5jRzlzZVdkdmJpY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJoZEdndWMyVjBRWFIwY21saWRYUmxLQ2RtYVd4c0xYSjFiR1VuTENBblpYWmxibTlrWkNjcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJQ2RtYVd4c1UydGxkR05vSnpvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3WVhSb0lEMGdkR2hwY3k1bWFXeHNVMnRsZEdOb0tHUnZZeXdnWkhKaGQybHVaeXdnYnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNod1lYUm9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWnk1aGNIQmxibVJEYUdsc1pDaHdZWFJvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWnp0Y2JpQWdJQ0I5WEc0Z0lDQWdabWxzYkZOclpYUmphQ2hrYjJNc0lHUnlZWGRwYm1jc0lHOHBJSHRjYmlBZ0lDQWdJQ0FnYkdWMElHWjNaV2xuYUhRZ1BTQnZMbVpwYkd4WFpXbG5hSFE3WEc0Z0lDQWdJQ0FnSUdsbUlDaG1kMlZwWjJoMElEd2dNQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdabmRsYVdkb2RDQTlJRzh1YzNSeWIydGxWMmxrZEdnZ0x5QXlPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEJoZEdnZ1BTQmtiMk11WTNKbFlYUmxSV3hsYldWdWRFNVRLRk5XUjA1VExDQW5jR0YwYUNjcE8xeHVJQ0FnSUNBZ0lDQndZWFJvTG5ObGRFRjBkSEpwWW5WMFpTZ25aQ2NzSUhSb2FYTXViM0J6Vkc5UVlYUm9LR1J5WVhkcGJtY3NJRzh1Wm1sNFpXUkVaV05wYldGc1VHeGhZMlZFYVdkcGRITXBLVHRjYmlBZ0lDQWdJQ0FnY0dGMGFDNXpaWFJCZEhSeWFXSjFkR1VvSjNOMGNtOXJaU2NzSUc4dVptbHNiQ0I4ZkNBbkp5azdYRzRnSUNBZ0lDQWdJSEJoZEdndWMyVjBRWFIwY21saWRYUmxLQ2R6ZEhKdmEyVXRkMmxrZEdnbkxDQm1kMlZwWjJoMElDc2dKeWNwTzF4dUlDQWdJQ0FnSUNCd1lYUm9Mbk5sZEVGMGRISnBZblYwWlNnblptbHNiQ2NzSUNkdWIyNWxKeWs3WEc0Z0lDQWdJQ0FnSUdsbUlDaHZMbVpwYkd4TWFXNWxSR0Z6YUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY0dGMGFDNXpaWFJCZEhSeWFXSjFkR1VvSjNOMGNtOXJaUzFrWVhOb1lYSnlZWGtuTENCdkxtWnBiR3hNYVc1bFJHRnphQzVxYjJsdUtDY2dKeWt1ZEhKcGJTZ3BLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9ieTVtYVd4c1RHbHVaVVJoYzJoUFptWnpaWFFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJoZEdndWMyVjBRWFIwY21saWRYUmxLQ2R6ZEhKdmEyVXRaR0Z6YUc5bVpuTmxkQ2NzSUdBa2UyOHVabWxzYkV4cGJtVkVZWE5vVDJabWMyVjBmV0FwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCd1lYUm9PMXh1SUNBZ0lIMWNiaUFnSUNCblpYUWdaMlZ1WlhKaGRHOXlLQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NW5aVzQ3WEc0Z0lDQWdmVnh1SUNBZ0lHZGxkRVJsWm1GMWJIUlBjSFJwYjI1ektDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1blpXNHVaR1ZtWVhWc2RFOXdkR2x2Ym5NN1hHNGdJQ0FnZlZ4dUlDQWdJRzl3YzFSdlVHRjBhQ2hrY21GM2FXNW5MQ0JtYVhobFpFUmxZMmx0WVd4UWJHRmpaVVJwWjJsMGN5a2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1blpXNHViM0J6Vkc5UVlYUm9LR1J5WVhkcGJtY3NJR1pwZUdWa1JHVmphVzFoYkZCc1lXTmxSR2xuYVhSektUdGNiaUFnSUNCOVhHNGdJQ0FnYkdsdVpTaDRNU3dnZVRFc0lIZ3lMQ0I1TWl3Z2IzQjBhVzl1Y3lrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa0lEMGdkR2hwY3k1blpXNHViR2x1WlNoNE1Td2dlVEVzSUhneUxDQjVNaXdnYjNCMGFXOXVjeWs3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtUnlZWGNvWkNrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsWTNSaGJtZHNaU2g0TENCNUxDQjNhV1IwYUN3Z2FHVnBaMmgwTENCdmNIUnBiMjV6S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdRZ1BTQjBhR2x6TG1kbGJpNXlaV04wWVc1bmJHVW9lQ3dnZVN3Z2QybGtkR2dzSUdobGFXZG9kQ3dnYjNCMGFXOXVjeWs3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtUnlZWGNvWkNrN1hHNGdJQ0FnZlZ4dUlDQWdJR1ZzYkdsd2MyVW9lQ3dnZVN3Z2QybGtkR2dzSUdobGFXZG9kQ3dnYjNCMGFXOXVjeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JrSUQwZ2RHaHBjeTVuWlc0dVpXeHNhWEJ6WlNoNExDQjVMQ0IzYVdSMGFDd2dhR1ZwWjJoMExDQnZjSFJwYjI1ektUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WkhKaGR5aGtLVHRjYmlBZ0lDQjlYRzRnSUNBZ1kybHlZMnhsS0hnc0lIa3NJR1JwWVcxbGRHVnlMQ0J2Y0hScGIyNXpLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1FnUFNCMGFHbHpMbWRsYmk1amFYSmpiR1VvZUN3Z2VTd2daR2xoYldWMFpYSXNJRzl3ZEdsdmJuTXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1a2NtRjNLR1FwTzF4dUlDQWdJSDFjYmlBZ0lDQnNhVzVsWVhKUVlYUm9LSEJ2YVc1MGN5d2diM0IwYVc5dWN5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmtJRDBnZEdocGN5NW5aVzR1YkdsdVpXRnlVR0YwYUNod2IybHVkSE1zSUc5d2RHbHZibk1wTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWtjbUYzS0dRcE8xeHVJQ0FnSUgxY2JpQWdJQ0J3YjJ4NVoyOXVLSEJ2YVc1MGN5d2diM0IwYVc5dWN5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmtJRDBnZEdocGN5NW5aVzR1Y0c5c2VXZHZiaWh3YjJsdWRITXNJRzl3ZEdsdmJuTXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1a2NtRjNLR1FwTzF4dUlDQWdJSDFjYmlBZ0lDQmhjbU1vZUN3Z2VTd2dkMmxrZEdnc0lHaGxhV2RvZEN3Z2MzUmhjblFzSUhOMGIzQXNJR05zYjNObFpDQTlJR1poYkhObExDQnZjSFJwYjI1ektTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUWdQU0IwYUdsekxtZGxiaTVoY21Nb2VDd2dlU3dnZDJsa2RHZ3NJR2hsYVdkb2RDd2djM1JoY25Rc0lITjBiM0FzSUdOc2IzTmxaQ3dnYjNCMGFXOXVjeWs3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtUnlZWGNvWkNrN1hHNGdJQ0FnZlZ4dUlDQWdJR04xY25abEtIQnZhVzUwY3l3Z2IzQjBhVzl1Y3lrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa0lEMGdkR2hwY3k1blpXNHVZM1Z5ZG1Vb2NHOXBiblJ6TENCdmNIUnBiMjV6S1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaSEpoZHloa0tUdGNiaUFnSUNCOVhHNGdJQ0FnY0dGMGFDaGtMQ0J2Y0hScGIyNXpLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1J5WVhkcGJtY2dQU0IwYUdsekxtZGxiaTV3WVhSb0tHUXNJRzl3ZEdsdmJuTXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1a2NtRjNLR1J5WVhkcGJtY3BPMXh1SUNBZ0lIMWNibjFjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL3N2Zy5qc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vLi4vcHVibGljL2ZvbnRzLmNzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uLy4uL3B1YmxpYy9mb250cy5jc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuZXZhbChcInZhciBhcGkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcXFwiKTtcXG4gICAgICAgICAgICB2YXIgY29udGVudCA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEhLi4vc3JjL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vc3JjL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuLi9zcmMvcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9mb250cy5jc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL3B1YmxpYy9mb250cy5jc3NcXFwiKTtcXG5cXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcXG5cXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XFxuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XFxuICAgICAgICAgICAgfVxcblxcbnZhciBvcHRpb25zID0ge307XFxuXFxub3B0aW9ucy5pbnNlcnQgPSBcXFwiaGVhZFxcXCI7XFxub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcXG5cXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xcblxcblxcblxcbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Ly8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZMaTR2Y0hWaWJHbGpMMlp2Ym5SekxtTnpjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4VlFVRlZMRzFDUVVGUExFTkJRVU1zTWtwQlFYZEZPMEZCUXpGR0xEQkNRVUV3UWl4dFFrRkJUeXhEUVVGRExHbGhRVUUyVHpzN1FVRkZMMUU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPenRCUVVWQk96dEJRVVZCTzBGQlEwRTdPMEZCUlVFN096czdRVUZKUVNJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOHVMaTl3ZFdKc2FXTXZabTl1ZEhNdVkzTnpQemhsTXpjaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lkbUZ5SUdGd2FTQTlJSEpsY1hWcGNtVW9YQ0loTGk0dmJtOWtaVjl0YjJSMWJHVnpMM04wZVd4bExXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZhVzVxWldOMFUzUjViR1Z6U1c1MGIxTjBlV3hsVkdGbkxtcHpYQ0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUdOdmJuUmxiblFnUFNCeVpYRjFhWEpsS0Z3aUlTRXVMaTl6Y21NdmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMaTl6Y21NdmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12Y0c5emRHTnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk0vUDNKMWJHVlRaWFJiTVYwdWNuVnNaWE5iTUYwdWRYTmxXekpkSVM0dUwzTnlZeTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OXpZWE56TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUwyWnZiblJ6TG1OemMxd2lLVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1ZEdWdWRDQTlJR052Ym5SbGJuUXVYMTlsYzAxdlpIVnNaU0EvSUdOdmJuUmxiblF1WkdWbVlYVnNkQ0E2SUdOdmJuUmxiblE3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGVYQmxiMllnWTI5dWRHVnVkQ0E5UFQwZ0ozTjBjbWx1WnljcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVkR1Z1ZENBOUlGdGJiVzlrZFd4bExtbGtMQ0JqYjI1MFpXNTBMQ0FuSjExZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dVhHNTJZWElnYjNCMGFXOXVjeUE5SUh0OU8xeHVYRzV2Y0hScGIyNXpMbWx1YzJWeWRDQTlJRndpYUdWaFpGd2lPMXh1YjNCMGFXOXVjeTV6YVc1bmJHVjBiMjRnUFNCbVlXeHpaVHRjYmx4dWRtRnlJSFZ3WkdGMFpTQTlJR0Z3YVNoamIyNTBaVzUwTENCdmNIUnBiMjV6S1R0Y2JseHVYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnWTI5dWRHVnVkQzVzYjJOaGJITWdmSHdnZTMwN0lsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vLi4vcHVibGljL2ZvbnRzLmNzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9BY3RpdmVGaWxlLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9BY3RpdmVGaWxlLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cbmV2YWwoXCJ2YXIgYXBpID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vQWN0aXZlRmlsZS5zY3NzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0FjdGl2ZUZpbGUuc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUJZM1JwZG1WR2FXeGxMbk5qYzNNdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNWVUZCVlN4dFFrRkJUeXhEUVVGRExEaEtRVUV5UlR0QlFVTTNSaXd3UWtGQk1FSXNiVUpCUVU4c1EwRkJReXhyWVVGQmRVODdPMEZCUlhwUk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPenM3TzBGQlNVRWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5QlkzUnBkbVZHYVd4bExuTmpjM00vT0dNek5DSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUoyWVhJZ1lYQnBJRDBnY21WeGRXbHlaU2hjSWlFdUxpOHVMaTl1YjJSbFgyMXZaSFZzWlhNdmMzUjViR1V0Ykc5aFpHVnlMMlJwYzNRdmNuVnVkR2x0WlM5cGJtcGxZM1JUZEhsc1pYTkpiblJ2VTNSNWJHVlVZV2N1YW5OY0lpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllYSWdZMjl1ZEdWdWRDQTlJSEpsY1hWcGNtVW9YQ0loSVM0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDJOemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZjRzl6ZEdOemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTS9QM0oxYkdWVFpYUmJNVjB1Y25Wc1pYTmJNRjB1ZFhObFd6SmRJUzR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMM05oYzNNdGJHOWhaR1Z5TDJScGMzUXZZMnB6TG1weklTNHZRV04wYVhabFJtbHNaUzV6WTNOelhDSXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdZMjl1ZEdWdWRDNWZYMlZ6VFc5a2RXeGxJRDhnWTI5dWRHVnVkQzVrWldaaGRXeDBJRG9nWTI5dWRHVnVkRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJqYjI1MFpXNTBJRDA5UFNBbmMzUnlhVzVuSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1cxdHRiMlIxYkdVdWFXUXNJR052Ym5SbGJuUXNJQ2NuWFYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JuWmhjaUJ2Y0hScGIyNXpJRDBnZTMwN1hHNWNibTl3ZEdsdmJuTXVhVzV6WlhKMElEMGdYQ0pvWldGa1hDSTdYRzV2Y0hScGIyNXpMbk5wYm1kc1pYUnZiaUE5SUdaaGJITmxPMXh1WEc1MllYSWdkWEJrWVhSbElEMGdZWEJwS0dOdmJuUmxiblFzSUc5d2RHbHZibk1wTzF4dVhHNWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0JqYjI1MFpXNTBMbXh2WTJGc2N5QjhmQ0I3ZlRzaVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9BY3RpdmVGaWxlLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvQXZhdGFyLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0F2YXRhci5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cbmV2YWwoXCJ2YXIgYXBpID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vQXZhdGFyLnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvQXZhdGFyLnNjc3NcXFwiKTtcXG5cXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcXG5cXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XFxuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XFxuICAgICAgICAgICAgfVxcblxcbnZhciBvcHRpb25zID0ge307XFxuXFxub3B0aW9ucy5pbnNlcnQgPSBcXFwiaGVhZFxcXCI7XFxub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcXG5cXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xcblxcblxcblxcbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Ly8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlCZG1GMFlYSXVjMk56Y3k1cWN5SXNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFZRVUZWTEcxQ1FVRlBMRU5CUVVNc09FcEJRVEpGTzBGQlF6ZEdMREJDUVVFd1FpeHRRa0ZCVHl4RFFVRkRMREJhUVVGdFR6czdRVUZGY2xFN08wRkJSVUU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdPenM3UVVGSlFTSXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDBGMllYUmhjaTV6WTNOelAyWTVPRElpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWRtRnlJR0Z3YVNBOUlISmxjWFZwY21Vb1hDSWhMaTR2TGk0dmJtOWtaVjl0YjJSMWJHVnpMM04wZVd4bExXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZhVzVxWldOMFUzUjViR1Z6U1c1MGIxTjBlV3hsVkdGbkxtcHpYQ0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUdOdmJuUmxiblFnUFNCeVpYRjFhWEpsS0Z3aUlTRXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OWpjM010Ykc5aFpHVnlMMlJwYzNRdlkycHpMbXB6SVM0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDNCdmMzUmpjM010Ykc5aFpHVnlMMlJwYzNRdlkycHpMbXB6UHo5eWRXeGxVMlYwV3pGZExuSjFiR1Z6V3pCZExuVnpaVnN5WFNFdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5ellYTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDBGMllYUmhjaTV6WTNOelhDSXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdZMjl1ZEdWdWRDNWZYMlZ6VFc5a2RXeGxJRDhnWTI5dWRHVnVkQzVrWldaaGRXeDBJRG9nWTI5dWRHVnVkRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJqYjI1MFpXNTBJRDA5UFNBbmMzUnlhVzVuSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1cxdHRiMlIxYkdVdWFXUXNJR052Ym5SbGJuUXNJQ2NuWFYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JuWmhjaUJ2Y0hScGIyNXpJRDBnZTMwN1hHNWNibTl3ZEdsdmJuTXVhVzV6WlhKMElEMGdYQ0pvWldGa1hDSTdYRzV2Y0hScGIyNXpMbk5wYm1kc1pYUnZiaUE5SUdaaGJITmxPMXh1WEc1MllYSWdkWEJrWVhSbElEMGdZWEJwS0dOdmJuUmxiblFzSUc5d2RHbHZibk1wTzF4dVhHNWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0JqYjI1MFpXNTBMbXh2WTJGc2N5QjhmQ0I3ZlRzaVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9BdmF0YXIuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9DYXJkLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9DYXJkLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cbmV2YWwoXCJ2YXIgYXBpID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vQ2FyZC5zY3NzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0NhcmQuc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OURZWEprTG5OamMzTXVhbk1pTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVlVGQlZTeHRRa0ZCVHl4RFFVRkRMRGhLUVVFeVJUdEJRVU0zUml3d1FrRkJNRUlzYlVKQlFVOHNRMEZCUXl4eldrRkJhVTg3TzBGQlJXNVJPenRCUVVWQk8wRkJRMEU3UVVGRFFUczdRVUZGUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCT3pzN08wRkJTVUVpTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OURZWEprTG5OamMzTS9NbVF3T1NKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SjJZWElnWVhCcElEMGdjbVZ4ZFdseVpTaGNJaUV1TGk4dUxpOXViMlJsWDIxdlpIVnNaWE12YzNSNWJHVXRiRzloWkdWeUwyUnBjM1F2Y25WdWRHbHRaUzlwYm1wbFkzUlRkSGxzWlhOSmJuUnZVM1I1YkdWVVlXY3Vhbk5jSWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ1kyOXVkR1Z1ZENBOUlISmxjWFZwY21Vb1hDSWhJUzR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMMk56Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdmNHOXpkR056Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NL1AzSjFiR1ZUWlhSYk1WMHVjblZzWlhOYk1GMHVkWE5sV3pKZElTNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwzTmhjM010Ykc5aFpHVnlMMlJwYzNRdlkycHpMbXB6SVM0dlEyRnlaQzV6WTNOelhDSXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdZMjl1ZEdWdWRDNWZYMlZ6VFc5a2RXeGxJRDhnWTI5dWRHVnVkQzVrWldaaGRXeDBJRG9nWTI5dWRHVnVkRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJqYjI1MFpXNTBJRDA5UFNBbmMzUnlhVzVuSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1cxdHRiMlIxYkdVdWFXUXNJR052Ym5SbGJuUXNJQ2NuWFYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JuWmhjaUJ2Y0hScGIyNXpJRDBnZTMwN1hHNWNibTl3ZEdsdmJuTXVhVzV6WlhKMElEMGdYQ0pvWldGa1hDSTdYRzV2Y0hScGIyNXpMbk5wYm1kc1pYUnZiaUE5SUdaaGJITmxPMXh1WEc1MllYSWdkWEJrWVhSbElEMGdZWEJwS0dOdmJuUmxiblFzSUc5d2RHbHZibk1wTzF4dVhHNWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0JqYjI1MFpXNTBMbXh2WTJGc2N5QjhmQ0I3ZlRzaVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9DYXJkLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvQ2hlY2tib3hJdGVtLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0NoZWNrYm94SXRlbS5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cbmV2YWwoXCJ2YXIgYXBpID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vQ2hlY2tib3hJdGVtLnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvQ2hlY2tib3hJdGVtLnNjc3NcXFwiKTtcXG5cXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcXG5cXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XFxuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XFxuICAgICAgICAgICAgfVxcblxcbnZhciBvcHRpb25zID0ge307XFxuXFxub3B0aW9ucy5pbnNlcnQgPSBcXFwiaGVhZFxcXCI7XFxub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcXG5cXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xcblxcblxcblxcbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Ly8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlEYUdWamEySnZlRWwwWlcwdWMyTnpjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4VlFVRlZMRzFDUVVGUExFTkJRVU1zT0VwQlFUSkZPMEZCUXpkR0xEQkNRVUV3UWl4dFFrRkJUeXhEUVVGRExITmhRVUY1VHpzN1FVRkZNMUU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPenRCUVVWQk96dEJRVVZCTzBGQlEwRTdPMEZCUlVFN096czdRVUZKUVNJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWpiMjF3YjI1bGJuUnpMME5vWldOclltOTRTWFJsYlM1elkzTnpQelJrT0RBaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lkbUZ5SUdGd2FTQTlJSEpsY1hWcGNtVW9YQ0loTGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDNOMGVXeGxMV3h2WVdSbGNpOWthWE4wTDNKMWJuUnBiV1V2YVc1cVpXTjBVM1I1YkdWelNXNTBiMU4wZVd4bFZHRm5MbXB6WENJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlHTnZiblJsYm5RZ1BTQnlaWEYxYVhKbEtGd2lJU0V1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTlqYzNNdGJHOWhaR1Z5TDJScGMzUXZZMnB6TG1weklTNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwzQnZjM1JqYzNNdGJHOWhaR1Z5TDJScGMzUXZZMnB6TG1welB6OXlkV3hsVTJWMFd6RmRMbkoxYkdWeld6QmRMblZ6WlZzeVhTRXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OXpZWE56TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUwwTm9aV05yWW05NFNYUmxiUzV6WTNOelhDSXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdZMjl1ZEdWdWRDNWZYMlZ6VFc5a2RXeGxJRDhnWTI5dWRHVnVkQzVrWldaaGRXeDBJRG9nWTI5dWRHVnVkRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJqYjI1MFpXNTBJRDA5UFNBbmMzUnlhVzVuSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1cxdHRiMlIxYkdVdWFXUXNJR052Ym5SbGJuUXNJQ2NuWFYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JuWmhjaUJ2Y0hScGIyNXpJRDBnZTMwN1hHNWNibTl3ZEdsdmJuTXVhVzV6WlhKMElEMGdYQ0pvWldGa1hDSTdYRzV2Y0hScGIyNXpMbk5wYm1kc1pYUnZiaUE5SUdaaGJITmxPMXh1WEc1MllYSWdkWEJrWVhSbElEMGdZWEJwS0dOdmJuUmxiblFzSUc5d2RHbHZibk1wTzF4dVhHNWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0JqYjI1MFpXNTBMbXh2WTJGc2N5QjhmQ0I3ZlRzaVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9DaGVja2JveEl0ZW0uc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9Db2xsYWJCdXR0b24uc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvQ29sbGFiQnV0dG9uLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuZXZhbChcInZhciBhcGkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcXFwiKTtcXG4gICAgICAgICAgICB2YXIgY29udGVudCA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9Db2xsYWJCdXR0b24uc2NzcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Db2xsYWJCdXR0b24uc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OURiMnhzWVdKQ2RYUjBiMjR1YzJOemN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hWUVVGVkxHMUNRVUZQTEVOQlFVTXNPRXBCUVRKRk8wRkJRemRHTERCQ1FVRXdRaXh0UWtGQlR5eERRVUZETEhOaFFVRjVUenM3UVVGRk0xRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk96dEJRVVZCT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3T3pzN1FVRkpRU0lzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5amIyMXdiMjVsYm5SekwwTnZiR3hoWWtKMWRIUnZiaTV6WTNOelB6TTFOR0VpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWRtRnlJR0Z3YVNBOUlISmxjWFZwY21Vb1hDSWhMaTR2TGk0dmJtOWtaVjl0YjJSMWJHVnpMM04wZVd4bExXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZhVzVxWldOMFUzUjViR1Z6U1c1MGIxTjBlV3hsVkdGbkxtcHpYQ0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUdOdmJuUmxiblFnUFNCeVpYRjFhWEpsS0Z3aUlTRXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OWpjM010Ykc5aFpHVnlMMlJwYzNRdlkycHpMbXB6SVM0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDNCdmMzUmpjM010Ykc5aFpHVnlMMlJwYzNRdlkycHpMbXB6UHo5eWRXeGxVMlYwV3pGZExuSjFiR1Z6V3pCZExuVnpaVnN5WFNFdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5ellYTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDBOdmJHeGhZa0oxZEhSdmJpNXpZM056WENJcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1kyOXVkR1Z1ZEM1ZlgyVnpUVzlrZFd4bElEOGdZMjl1ZEdWdWRDNWtaV1poZFd4MElEb2dZMjl1ZEdWdWREdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQmpiMjUwWlc1MElEMDlQU0FuYzNSeWFXNW5KeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnVzF0dGIyUjFiR1V1YVdRc0lHTnZiblJsYm5Rc0lDY25YVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzVjYm5aaGNpQnZjSFJwYjI1eklEMGdlMzA3WEc1Y2JtOXdkR2x2Ym5NdWFXNXpaWEowSUQwZ1hDSm9aV0ZrWENJN1hHNXZjSFJwYjI1ekxuTnBibWRzWlhSdmJpQTlJR1poYkhObE8xeHVYRzUyWVhJZ2RYQmtZWFJsSUQwZ1lYQnBLR052Ym5SbGJuUXNJRzl3ZEdsdmJuTXBPMXh1WEc1Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQmpiMjUwWlc1MExteHZZMkZzY3lCOGZDQjdmVHNpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0NvbGxhYkJ1dHRvbi5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0NvbG9yUGlja2VyLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvQ29sb3JQaWNrZXIuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cbmV2YWwoXCJ2YXIgYXBpID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vQ29sb3JQaWNrZXIuc2NzcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Db2xvclBpY2tlci5zY3NzXFxcIik7XFxuXFxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XFxuXFxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xcbiAgICAgICAgICAgIH1cXG5cXG52YXIgb3B0aW9ucyA9IHt9O1xcblxcbm9wdGlvbnMuaW5zZXJ0ID0gXFxcImhlYWRcXFwiO1xcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XFxuXFxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcXG5cXG5cXG5cXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9Oy8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5RGIyeHZjbEJwWTJ0bGNpNXpZM056TG1weklpd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxGVkJRVlVzYlVKQlFVOHNRMEZCUXl3NFNrRkJNa1U3UVVGRE4wWXNNRUpCUVRCQ0xHMUNRVUZQTEVOQlFVTXNiMkZCUVhkUE96dEJRVVV4VVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUczdPenRCUVVsQklpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12UTI5c2IzSlFhV05yWlhJdWMyTnpjejh5WWpjeElsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJblpoY2lCaGNHa2dQU0J5WlhGMWFYSmxLRndpSVM0dUx5NHVMMjV2WkdWZmJXOWtkV3hsY3k5emRIbHNaUzFzYjJGa1pYSXZaR2x6ZEM5eWRXNTBhVzFsTDJsdWFtVmpkRk4wZVd4bGMwbHVkRzlUZEhsc1pWUmhaeTVxYzF3aUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGNpQmpiMjUwWlc1MElEMGdjbVZ4ZFdseVpTaGNJaUVoTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZjMkZ6Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpOURiMnh2Y2xCcFkydGxjaTV6WTNOelhDSXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdZMjl1ZEdWdWRDNWZYMlZ6VFc5a2RXeGxJRDhnWTI5dWRHVnVkQzVrWldaaGRXeDBJRG9nWTI5dWRHVnVkRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJqYjI1MFpXNTBJRDA5UFNBbmMzUnlhVzVuSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1cxdHRiMlIxYkdVdWFXUXNJR052Ym5SbGJuUXNJQ2NuWFYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JuWmhjaUJ2Y0hScGIyNXpJRDBnZTMwN1hHNWNibTl3ZEdsdmJuTXVhVzV6WlhKMElEMGdYQ0pvWldGa1hDSTdYRzV2Y0hScGIyNXpMbk5wYm1kc1pYUnZiaUE5SUdaaGJITmxPMXh1WEc1MllYSWdkWEJrWVhSbElEMGdZWEJwS0dOdmJuUmxiblFzSUc5d2RHbHZibk1wTzF4dVhHNWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0JqYjI1MFpXNTBMbXh2WTJGc2N5QjhmQ0I3ZlRzaVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9Db2xvclBpY2tlci5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0NvbmZpcm1EaWFsb2cuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0NvbmZpcm1EaWFsb2cuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuZXZhbChcInZhciBhcGkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcXFwiKTtcXG4gICAgICAgICAgICB2YXIgY29udGVudCA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9Db25maXJtRGlhbG9nLnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvQ29uZmlybURpYWxvZy5zY3NzXFxcIik7XFxuXFxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XFxuXFxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xcbiAgICAgICAgICAgIH1cXG5cXG52YXIgb3B0aW9ucyA9IHt9O1xcblxcbm9wdGlvbnMuaW5zZXJ0ID0gXFxcImhlYWRcXFwiO1xcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XFxuXFxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcXG5cXG5cXG5cXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9Oy8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5RGIyNW1hWEp0UkdsaGJHOW5Mbk5qYzNNdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNWVUZCVlN4dFFrRkJUeXhEUVVGRExEaEtRVUV5UlR0QlFVTTNSaXd3UWtGQk1FSXNiVUpCUVU4c1EwRkJReXgzWVVGQk1FODdPMEZCUlRWUk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPenM3TzBGQlNVRWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5RGIyNW1hWEp0UkdsaGJHOW5Mbk5qYzNNL09XSTNaU0pkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKMllYSWdZWEJwSUQwZ2NtVnhkV2x5WlNoY0lpRXVMaTh1TGk5dWIyUmxYMjF2WkhWc1pYTXZjM1I1YkdVdGJHOWhaR1Z5TDJScGMzUXZjblZ1ZEdsdFpTOXBibXBsWTNSVGRIbHNaWE5KYm5SdlUzUjViR1ZVWVdjdWFuTmNJaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZWElnWTI5dWRHVnVkQ0E5SUhKbGNYVnBjbVVvWENJaElTNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12Y0c5emRHTnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk0vUDNKMWJHVlRaWFJiTVYwdWNuVnNaWE5iTUYwdWRYTmxXekpkSVM0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDNOaGMzTXRiRzloWkdWeUwyUnBjM1F2WTJwekxtcHpJUzR2UTI5dVptbHliVVJwWVd4dlp5NXpZM056WENJcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1kyOXVkR1Z1ZEM1ZlgyVnpUVzlrZFd4bElEOGdZMjl1ZEdWdWRDNWtaV1poZFd4MElEb2dZMjl1ZEdWdWREdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQmpiMjUwWlc1MElEMDlQU0FuYzNSeWFXNW5KeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnVzF0dGIyUjFiR1V1YVdRc0lHTnZiblJsYm5Rc0lDY25YVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzVjYm5aaGNpQnZjSFJwYjI1eklEMGdlMzA3WEc1Y2JtOXdkR2x2Ym5NdWFXNXpaWEowSUQwZ1hDSm9aV0ZrWENJN1hHNXZjSFJwYjI1ekxuTnBibWRzWlhSdmJpQTlJR1poYkhObE8xeHVYRzUyWVhJZ2RYQmtZWFJsSUQwZ1lYQnBLR052Ym5SbGJuUXNJRzl3ZEdsdmJuTXBPMXh1WEc1Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQmpiMjUwWlc1MExteHZZMkZzY3lCOGZDQjdmVHNpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0NvbmZpcm1EaWFsb2cuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9Db250ZXh0TWVudS5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0NvbnRleHRNZW51LnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5ldmFsKFwidmFyIGFwaSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1xcXCIpO1xcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgISEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL0NvbnRleHRNZW51LnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvQ29udGV4dE1lbnUuc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OURiMjUwWlhoMFRXVnVkUzV6WTNOekxtcHpJaXdpYldGd2NHbHVaM01pT2lKQlFVRkJMRlZCUVZVc2JVSkJRVThzUTBGQlF5dzRTa0ZCTWtVN1FVRkROMFlzTUVKQlFUQkNMRzFDUVVGUExFTkJRVU1zYjJGQlFYZFBPenRCUVVVeFVUczdRVUZGUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHM3T3p0QlFVbEJJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJOdmJYQnZibVZ1ZEhNdlEyOXVkR1Y0ZEUxbGJuVXVjMk56Y3o5bE56RXpJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW5aaGNpQmhjR2tnUFNCeVpYRjFhWEpsS0Z3aUlTNHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OXpkSGxzWlMxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwybHVhbVZqZEZOMGVXeGxjMGx1ZEc5VGRIbHNaVlJoWnk1cWMxd2lLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJqYjI1MFpXNTBJRDBnY21WeGRXbHlaU2hjSWlFaExpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTlEYjI1MFpYaDBUV1Z1ZFM1elkzTnpYQ0lwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnWTI5dWRHVnVkQzVmWDJWelRXOWtkV3hsSUQ4Z1kyOXVkR1Z1ZEM1a1pXWmhkV3gwSURvZ1kyOXVkR1Z1ZER0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCamIyNTBaVzUwSUQwOVBTQW5jM1J5YVc1bkp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdXMXR0YjJSMWJHVXVhV1FzSUdOdmJuUmxiblFzSUNjblhWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiblpoY2lCdmNIUnBiMjV6SUQwZ2UzMDdYRzVjYm05d2RHbHZibk11YVc1elpYSjBJRDBnWENKb1pXRmtYQ0k3WEc1dmNIUnBiMjV6TG5OcGJtZHNaWFJ2YmlBOUlHWmhiSE5sTzF4dVhHNTJZWElnZFhCa1lYUmxJRDBnWVhCcEtHTnZiblJsYm5Rc0lHOXdkR2x2Ym5NcE8xeHVYRzVjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamIyNTBaVzUwTG14dlkyRnNjeUI4ZkNCN2ZUc2lYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvQ29udGV4dE1lbnUuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9EaWFsb2cuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvRGlhbG9nLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuZXZhbChcInZhciBhcGkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcXFwiKTtcXG4gICAgICAgICAgICB2YXIgY29udGVudCA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9EaWFsb2cuc2NzcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9EaWFsb2cuc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUVhV0ZzYjJjdWMyTnpjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4VlFVRlZMRzFDUVVGUExFTkJRVU1zT0VwQlFUSkZPMEZCUXpkR0xEQkNRVUV3UWl4dFFrRkJUeXhEUVVGRExEQmFRVUZ0VHpzN1FVRkZjbEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPenRCUVVWQk96dEJRVVZCTzBGQlEwRTdPMEZCUlVFN096czdRVUZKUVNJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWpiMjF3YjI1bGJuUnpMMFJwWVd4dlp5NXpZM056UHpabFlUUWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpZG1GeUlHRndhU0E5SUhKbGNYVnBjbVVvWENJaExpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzTjBlV3hsTFd4dllXUmxjaTlrYVhOMEwzSjFiblJwYldVdmFXNXFaV04wVTNSNWJHVnpTVzUwYjFOMGVXeGxWR0ZuTG1welhDSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJR052Ym5SbGJuUWdQU0J5WlhGMWFYSmxLRndpSVNFdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2WTJwekxtcHpJUzR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMM0J2YzNSamMzTXRiRzloWkdWeUwyUnBjM1F2WTJwekxtcHpQejl5ZFd4bFUyVjBXekZkTG5KMWJHVnpXekJkTG5WelpWc3lYU0V1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTl6WVhOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMFJwWVd4dlp5NXpZM056WENJcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1kyOXVkR1Z1ZEM1ZlgyVnpUVzlrZFd4bElEOGdZMjl1ZEdWdWRDNWtaV1poZFd4MElEb2dZMjl1ZEdWdWREdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQmpiMjUwWlc1MElEMDlQU0FuYzNSeWFXNW5KeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnVzF0dGIyUjFiR1V1YVdRc0lHTnZiblJsYm5Rc0lDY25YVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzVjYm5aaGNpQnZjSFJwYjI1eklEMGdlMzA3WEc1Y2JtOXdkR2x2Ym5NdWFXNXpaWEowSUQwZ1hDSm9aV0ZrWENJN1hHNXZjSFJwYjI1ekxuTnBibWRzWlhSdmJpQTlJR1poYkhObE8xeHVYRzUyWVhJZ2RYQmtZWFJsSUQwZ1lYQnBLR052Ym5SbGJuUXNJRzl3ZEdsdmJuTXBPMXh1WEc1Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQmpiMjUwWlc1MExteHZZMkZzY3lCOGZDQjdmVHNpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0RpYWxvZy5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0V4cG9ydERpYWxvZy5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9FeHBvcnREaWFsb2cuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5ldmFsKFwidmFyIGFwaSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1xcXCIpO1xcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgISEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL0V4cG9ydERpYWxvZy5zY3NzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0V4cG9ydERpYWxvZy5zY3NzXFxcIik7XFxuXFxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XFxuXFxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xcbiAgICAgICAgICAgIH1cXG5cXG52YXIgb3B0aW9ucyA9IHt9O1xcblxcbm9wdGlvbnMuaW5zZXJ0ID0gXFxcImhlYWRcXFwiO1xcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XFxuXFxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcXG5cXG5cXG5cXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9Oy8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5RmVIQnZjblJFYVdGc2IyY3VjMk56Y3k1cWN5SXNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFZRVUZWTEcxQ1FVRlBMRU5CUVVNc09FcEJRVEpGTzBGQlF6ZEdMREJDUVVFd1FpeHRRa0ZCVHl4RFFVRkRMSE5oUVVGNVR6czdRVUZGTTFFN08wRkJSVUU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdPenM3UVVGSlFTSXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDBWNGNHOXlkRVJwWVd4dlp5NXpZM056UHpBeVpXRWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpZG1GeUlHRndhU0E5SUhKbGNYVnBjbVVvWENJaExpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzTjBlV3hsTFd4dllXUmxjaTlrYVhOMEwzSjFiblJwYldVdmFXNXFaV04wVTNSNWJHVnpTVzUwYjFOMGVXeGxWR0ZuTG1welhDSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJR052Ym5SbGJuUWdQU0J5WlhGMWFYSmxLRndpSVNFdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2WTJwekxtcHpJUzR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMM0J2YzNSamMzTXRiRzloWkdWeUwyUnBjM1F2WTJwekxtcHpQejl5ZFd4bFUyVjBXekZkTG5KMWJHVnpXekJkTG5WelpWc3lYU0V1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTl6WVhOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMFY0Y0c5eWRFUnBZV3h2Wnk1elkzTnpYQ0lwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnWTI5dWRHVnVkQzVmWDJWelRXOWtkV3hsSUQ4Z1kyOXVkR1Z1ZEM1a1pXWmhkV3gwSURvZ1kyOXVkR1Z1ZER0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCamIyNTBaVzUwSUQwOVBTQW5jM1J5YVc1bkp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdXMXR0YjJSMWJHVXVhV1FzSUdOdmJuUmxiblFzSUNjblhWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiblpoY2lCdmNIUnBiMjV6SUQwZ2UzMDdYRzVjYm05d2RHbHZibk11YVc1elpYSjBJRDBnWENKb1pXRmtYQ0k3WEc1dmNIUnBiMjV6TG5OcGJtZHNaWFJ2YmlBOUlHWmhiSE5sTzF4dVhHNTJZWElnZFhCa1lYUmxJRDBnWVhCcEtHTnZiblJsYm5Rc0lHOXdkR2x2Ym5NcE8xeHVYRzVjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamIyNTBaVzUwTG14dlkyRnNjeUI4ZkNCN2ZUc2lYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvRXhwb3J0RGlhbG9nLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvRml4ZWRTaWRlQ29udGFpbmVyLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0ZpeGVkU2lkZUNvbnRhaW5lci5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cbmV2YWwoXCJ2YXIgYXBpID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vRml4ZWRTaWRlQ29udGFpbmVyLnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvRml4ZWRTaWRlQ29udGFpbmVyLnNjc3NcXFwiKTtcXG5cXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcXG5cXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XFxuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XFxuICAgICAgICAgICAgfVxcblxcbnZhciBvcHRpb25zID0ge307XFxuXFxub3B0aW9ucy5pbnNlcnQgPSBcXFwiaGVhZFxcXCI7XFxub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcXG5cXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xcblxcblxcblxcbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Ly8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlHYVhobFpGTnBaR1ZEYjI1MFlXbHVaWEl1YzJOemN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hWUVVGVkxHMUNRVUZQTEVOQlFVTXNPRXBCUVRKRk8wRkJRemRHTERCQ1FVRXdRaXh0UWtGQlR5eERRVUZETEd0aVFVRXJUenM3UVVGRmFsSTdPMEZCUlVFN1FVRkRRVHRCUVVOQk96dEJRVVZCT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3T3pzN1FVRkpRU0lzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5amIyMXdiMjVsYm5SekwwWnBlR1ZrVTJsa1pVTnZiblJoYVc1bGNpNXpZM056UDJVM1l6TWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpZG1GeUlHRndhU0E5SUhKbGNYVnBjbVVvWENJaExpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzTjBlV3hsTFd4dllXUmxjaTlrYVhOMEwzSjFiblJwYldVdmFXNXFaV04wVTNSNWJHVnpTVzUwYjFOMGVXeGxWR0ZuTG1welhDSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJR052Ym5SbGJuUWdQU0J5WlhGMWFYSmxLRndpSVNFdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2WTJwekxtcHpJUzR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMM0J2YzNSamMzTXRiRzloWkdWeUwyUnBjM1F2WTJwekxtcHpQejl5ZFd4bFUyVjBXekZkTG5KMWJHVnpXekJkTG5WelpWc3lYU0V1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTl6WVhOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMFpwZUdWa1UybGtaVU52Ym5SaGFXNWxjaTV6WTNOelhDSXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdZMjl1ZEdWdWRDNWZYMlZ6VFc5a2RXeGxJRDhnWTI5dWRHVnVkQzVrWldaaGRXeDBJRG9nWTI5dWRHVnVkRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJqYjI1MFpXNTBJRDA5UFNBbmMzUnlhVzVuSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1cxdHRiMlIxYkdVdWFXUXNJR052Ym5SbGJuUXNJQ2NuWFYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JuWmhjaUJ2Y0hScGIyNXpJRDBnZTMwN1hHNWNibTl3ZEdsdmJuTXVhVzV6WlhKMElEMGdYQ0pvWldGa1hDSTdYRzV2Y0hScGIyNXpMbk5wYm1kc1pYUnZiaUE5SUdaaGJITmxPMXh1WEc1MllYSWdkWEJrWVhSbElEMGdZWEJwS0dOdmJuUmxiblFzSUc5d2RHbHZibk1wTzF4dVhHNWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0JqYjI1MFpXNTBMbXh2WTJGc2N5QjhmQ0I3ZlRzaVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9GaXhlZFNpZGVDb250YWluZXIuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9IZWxwRGlhbG9nLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9IZWxwRGlhbG9nLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cbmV2YWwoXCJ2YXIgYXBpID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vSGVscERpYWxvZy5zY3NzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0hlbHBEaWFsb2cuc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUlaV3h3UkdsaGJHOW5Mbk5qYzNNdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNWVUZCVlN4dFFrRkJUeXhEUVVGRExEaEtRVUV5UlR0QlFVTTNSaXd3UWtGQk1FSXNiVUpCUVU4c1EwRkJReXhyWVVGQmRVODdPMEZCUlhwUk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPenM3TzBGQlNVRWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5SVpXeHdSR2xoYkc5bkxuTmpjM00vTm1JMVppSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUoyWVhJZ1lYQnBJRDBnY21WeGRXbHlaU2hjSWlFdUxpOHVMaTl1YjJSbFgyMXZaSFZzWlhNdmMzUjViR1V0Ykc5aFpHVnlMMlJwYzNRdmNuVnVkR2x0WlM5cGJtcGxZM1JUZEhsc1pYTkpiblJ2VTNSNWJHVlVZV2N1YW5OY0lpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllYSWdZMjl1ZEdWdWRDQTlJSEpsY1hWcGNtVW9YQ0loSVM0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDJOemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZjRzl6ZEdOemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTS9QM0oxYkdWVFpYUmJNVjB1Y25Wc1pYTmJNRjB1ZFhObFd6SmRJUzR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMM05oYzNNdGJHOWhaR1Z5TDJScGMzUXZZMnB6TG1weklTNHZTR1ZzY0VScFlXeHZaeTV6WTNOelhDSXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdZMjl1ZEdWdWRDNWZYMlZ6VFc5a2RXeGxJRDhnWTI5dWRHVnVkQzVrWldaaGRXeDBJRG9nWTI5dWRHVnVkRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJqYjI1MFpXNTBJRDA5UFNBbmMzUnlhVzVuSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1cxdHRiMlIxYkdVdWFXUXNJR052Ym5SbGJuUXNJQ2NuWFYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JuWmhjaUJ2Y0hScGIyNXpJRDBnZTMwN1hHNWNibTl3ZEdsdmJuTXVhVzV6WlhKMElEMGdYQ0pvWldGa1hDSTdYRzV2Y0hScGIyNXpMbk5wYm1kc1pYUnZiaUE5SUdaaGJITmxPMXh1WEc1MllYSWdkWEJrWVhSbElEMGdZWEJwS0dOdmJuUmxiblFzSUc5d2RHbHZibk1wTzF4dVhHNWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0JqYjI1MFpXNTBMbXh2WTJGc2N5QjhmQ0I3ZlRzaVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9IZWxwRGlhbG9nLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvSGludFZpZXdlci5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvSGludFZpZXdlci5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5ldmFsKFwidmFyIGFwaSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1xcXCIpO1xcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgISEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL0hpbnRWaWV3ZXIuc2NzcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9IaW50Vmlld2VyLnNjc3NcXFwiKTtcXG5cXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcXG5cXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XFxuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XFxuICAgICAgICAgICAgfVxcblxcbnZhciBvcHRpb25zID0ge307XFxuXFxub3B0aW9ucy5pbnNlcnQgPSBcXFwiaGVhZFxcXCI7XFxub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcXG5cXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xcblxcblxcblxcbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Ly8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlJYVc1MFZtbGxkMlZ5TG5OamMzTXVhbk1pTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVlVGQlZTeHRRa0ZCVHl4RFFVRkRMRGhLUVVFeVJUdEJRVU0zUml3d1FrRkJNRUlzYlVKQlFVOHNRMEZCUXl4cllVRkJkVTg3TzBGQlJYcFJPenRCUVVWQk8wRkJRMEU3UVVGRFFUczdRVUZGUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCT3pzN08wRkJTVUVpTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUlhVzUwVm1sbGQyVnlMbk5qYzNNL01HTXhNQ0pkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKMllYSWdZWEJwSUQwZ2NtVnhkV2x5WlNoY0lpRXVMaTh1TGk5dWIyUmxYMjF2WkhWc1pYTXZjM1I1YkdVdGJHOWhaR1Z5TDJScGMzUXZjblZ1ZEdsdFpTOXBibXBsWTNSVGRIbHNaWE5KYm5SdlUzUjViR1ZVWVdjdWFuTmNJaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZWElnWTI5dWRHVnVkQ0E5SUhKbGNYVnBjbVVvWENJaElTNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12Y0c5emRHTnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk0vUDNKMWJHVlRaWFJiTVYwdWNuVnNaWE5iTUYwdWRYTmxXekpkSVM0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDNOaGMzTXRiRzloWkdWeUwyUnBjM1F2WTJwekxtcHpJUzR2U0dsdWRGWnBaWGRsY2k1elkzTnpYQ0lwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnWTI5dWRHVnVkQzVmWDJWelRXOWtkV3hsSUQ4Z1kyOXVkR1Z1ZEM1a1pXWmhkV3gwSURvZ1kyOXVkR1Z1ZER0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCamIyNTBaVzUwSUQwOVBTQW5jM1J5YVc1bkp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdXMXR0YjJSMWJHVXVhV1FzSUdOdmJuUmxiblFzSUNjblhWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiblpoY2lCdmNIUnBiMjV6SUQwZ2UzMDdYRzVjYm05d2RHbHZibk11YVc1elpYSjBJRDBnWENKb1pXRmtYQ0k3WEc1dmNIUnBiMjV6TG5OcGJtZHNaWFJ2YmlBOUlHWmhiSE5sTzF4dVhHNTJZWElnZFhCa1lYUmxJRDBnWVhCcEtHTnZiblJsYm5Rc0lHOXdkR2x2Ym5NcE8xeHVYRzVjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamIyNTBaVzUwTG14dlkyRnNjeUI4ZkNCN2ZUc2lYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvSGludFZpZXdlci5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0ljb25QaWNrZXIuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0ljb25QaWNrZXIuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuZXZhbChcInZhciBhcGkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcXFwiKTtcXG4gICAgICAgICAgICB2YXIgY29udGVudCA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9JY29uUGlja2VyLnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvSWNvblBpY2tlci5zY3NzXFxcIik7XFxuXFxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XFxuXFxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xcbiAgICAgICAgICAgIH1cXG5cXG52YXIgb3B0aW9ucyA9IHt9O1xcblxcbm9wdGlvbnMuaW5zZXJ0ID0gXFxcImhlYWRcXFwiO1xcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XFxuXFxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcXG5cXG5cXG5cXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9Oy8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5SlkyOXVVR2xqYTJWeUxuTmpjM011YW5NaUxDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1ZVRkJWU3h0UWtGQlR5eERRVUZETERoS1FVRXlSVHRCUVVNM1Jpd3dRa0ZCTUVJc2JVSkJRVThzUTBGQlF5eHJZVUZCZFU4N08wRkJSWHBST3p0QlFVVkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUczdRVUZGUVR0QlFVTkJPenRCUVVWQk96czdPMEZCU1VFaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlKWTI5dVVHbGphMlZ5TG5OamMzTS9ZekUzWkNKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SjJZWElnWVhCcElEMGdjbVZ4ZFdseVpTaGNJaUV1TGk4dUxpOXViMlJsWDIxdlpIVnNaWE12YzNSNWJHVXRiRzloWkdWeUwyUnBjM1F2Y25WdWRHbHRaUzlwYm1wbFkzUlRkSGxzWlhOSmJuUnZVM1I1YkdWVVlXY3Vhbk5jSWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ1kyOXVkR1Z1ZENBOUlISmxjWFZwY21Vb1hDSWhJUzR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMMk56Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdmNHOXpkR056Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NL1AzSjFiR1ZUWlhSYk1WMHVjblZzWlhOYk1GMHVkWE5sV3pKZElTNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwzTmhjM010Ykc5aFpHVnlMMlJwYzNRdlkycHpMbXB6SVM0dlNXTnZibEJwWTJ0bGNpNXpZM056WENJcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1kyOXVkR1Z1ZEM1ZlgyVnpUVzlrZFd4bElEOGdZMjl1ZEdWdWRDNWtaV1poZFd4MElEb2dZMjl1ZEdWdWREdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQmpiMjUwWlc1MElEMDlQU0FuYzNSeWFXNW5KeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnVzF0dGIyUjFiR1V1YVdRc0lHTnZiblJsYm5Rc0lDY25YVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzVjYm5aaGNpQnZjSFJwYjI1eklEMGdlMzA3WEc1Y2JtOXdkR2x2Ym5NdWFXNXpaWEowSUQwZ1hDSm9aV0ZrWENJN1hHNXZjSFJwYjI1ekxuTnBibWRzWlhSdmJpQTlJR1poYkhObE8xeHVYRzUyWVhJZ2RYQmtZWFJsSUQwZ1lYQnBLR052Ym5SbGJuUXNJRzl3ZEdsdmJuTXBPMXh1WEc1Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQmpiMjUwWlc1MExteHZZMkZzY3lCOGZDQjdmVHNpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0ljb25QaWNrZXIuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9Jc2xhbmQuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvSXNsYW5kLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuZXZhbChcInZhciBhcGkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcXFwiKTtcXG4gICAgICAgICAgICB2YXIgY29udGVudCA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9Jc2xhbmQuc2NzcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Jc2xhbmQuc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUpjMnhoYm1RdWMyTnpjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4VlFVRlZMRzFDUVVGUExFTkJRVU1zT0VwQlFUSkZPMEZCUXpkR0xEQkNRVUV3UWl4dFFrRkJUeXhEUVVGRExEQmFRVUZ0VHpzN1FVRkZjbEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPenRCUVVWQk96dEJRVVZCTzBGQlEwRTdPMEZCUlVFN096czdRVUZKUVNJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWpiMjF3YjI1bGJuUnpMMGx6YkdGdVpDNXpZM056UDJWa09UY2lYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpZG1GeUlHRndhU0E5SUhKbGNYVnBjbVVvWENJaExpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzTjBlV3hsTFd4dllXUmxjaTlrYVhOMEwzSjFiblJwYldVdmFXNXFaV04wVTNSNWJHVnpTVzUwYjFOMGVXeGxWR0ZuTG1welhDSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJR052Ym5SbGJuUWdQU0J5WlhGMWFYSmxLRndpSVNFdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2WTJwekxtcHpJUzR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMM0J2YzNSamMzTXRiRzloWkdWeUwyUnBjM1F2WTJwekxtcHpQejl5ZFd4bFUyVjBXekZkTG5KMWJHVnpXekJkTG5WelpWc3lYU0V1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTl6WVhOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMGx6YkdGdVpDNXpZM056WENJcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1kyOXVkR1Z1ZEM1ZlgyVnpUVzlrZFd4bElEOGdZMjl1ZEdWdWRDNWtaV1poZFd4MElEb2dZMjl1ZEdWdWREdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQmpiMjUwWlc1MElEMDlQU0FuYzNSeWFXNW5KeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnVzF0dGIyUjFiR1V1YVdRc0lHTnZiblJsYm5Rc0lDY25YVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzVjYm5aaGNpQnZjSFJwYjI1eklEMGdlMzA3WEc1Y2JtOXdkR2x2Ym5NdWFXNXpaWEowSUQwZ1hDSm9aV0ZrWENJN1hHNXZjSFJwYjI1ekxuTnBibWRzWlhSdmJpQTlJR1poYkhObE8xeHVYRzUyWVhJZ2RYQmtZWFJsSUQwZ1lYQnBLR052Ym5SbGJuUXNJRzl3ZEdsdmJuTXBPMXh1WEc1Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQmpiMjUwWlc1MExteHZZMkZzY3lCOGZDQjdmVHNpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0lzbGFuZC5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0xheWVyVUkuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0xheWVyVUkuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuZXZhbChcInZhciBhcGkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcXFwiKTtcXG4gICAgICAgICAgICB2YXIgY29udGVudCA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9MYXllclVJLnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvTGF5ZXJVSS5zY3NzXFxcIik7XFxuXFxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XFxuXFxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xcbiAgICAgICAgICAgIH1cXG5cXG52YXIgb3B0aW9ucyA9IHt9O1xcblxcbm9wdGlvbnMuaW5zZXJ0ID0gXFxcImhlYWRcXFwiO1xcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XFxuXFxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcXG5cXG5cXG5cXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9Oy8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5TVlYbGxjbFZKTG5OamMzTXVhbk1pTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVlVGQlZTeHRRa0ZCVHl4RFFVRkRMRGhLUVVFeVJUdEJRVU0zUml3d1FrRkJNRUlzYlVKQlFVOHNRMEZCUXl3MFdrRkJiMDg3TzBGQlJYUlJPenRCUVVWQk8wRkJRMEU3UVVGRFFUczdRVUZGUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCT3pzN08wRkJTVUVpTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OU1ZWGxsY2xWSkxuTmpjM00vTURnM1lpSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUoyWVhJZ1lYQnBJRDBnY21WeGRXbHlaU2hjSWlFdUxpOHVMaTl1YjJSbFgyMXZaSFZzWlhNdmMzUjViR1V0Ykc5aFpHVnlMMlJwYzNRdmNuVnVkR2x0WlM5cGJtcGxZM1JUZEhsc1pYTkpiblJ2VTNSNWJHVlVZV2N1YW5OY0lpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllYSWdZMjl1ZEdWdWRDQTlJSEpsY1hWcGNtVW9YQ0loSVM0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDJOemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZjRzl6ZEdOemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTS9QM0oxYkdWVFpYUmJNVjB1Y25Wc1pYTmJNRjB1ZFhObFd6SmRJUzR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMM05oYzNNdGJHOWhaR1Z5TDJScGMzUXZZMnB6TG1weklTNHZUR0Y1WlhKVlNTNXpZM056WENJcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1kyOXVkR1Z1ZEM1ZlgyVnpUVzlrZFd4bElEOGdZMjl1ZEdWdWRDNWtaV1poZFd4MElEb2dZMjl1ZEdWdWREdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQmpiMjUwWlc1MElEMDlQU0FuYzNSeWFXNW5KeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnVzF0dGIyUjFiR1V1YVdRc0lHTnZiblJsYm5Rc0lDY25YVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzVjYm5aaGNpQnZjSFJwYjI1eklEMGdlMzA3WEc1Y2JtOXdkR2x2Ym5NdWFXNXpaWEowSUQwZ1hDSm9aV0ZrWENJN1hHNXZjSFJwYjI1ekxuTnBibWRzWlhSdmJpQTlJR1poYkhObE8xeHVYRzUyWVhJZ2RYQmtZWFJsSUQwZ1lYQnBLR052Ym5SbGJuUXNJRzl3ZEdsdmJuTXBPMXh1WEc1Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQmpiMjUwWlc1MExteHZZMkZzY3lCOGZDQjdmVHNpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0xheWVyVUkuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5TWVudS5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0xpYnJhcnlNZW51LnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5ldmFsKFwidmFyIGFwaSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1xcXCIpO1xcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgISEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL0xpYnJhcnlNZW51LnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvTGlicmFyeU1lbnUuc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OU1hV0p5WVhKNVRXVnVkUzV6WTNOekxtcHpJaXdpYldGd2NHbHVaM01pT2lKQlFVRkJMRlZCUVZVc2JVSkJRVThzUTBGQlF5dzRTa0ZCTWtVN1FVRkROMFlzTUVKQlFUQkNMRzFDUVVGUExFTkJRVU1zYjJGQlFYZFBPenRCUVVVeFVUczdRVUZGUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHM3T3p0QlFVbEJJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJOdmJYQnZibVZ1ZEhNdlRHbGljbUZ5ZVUxbGJuVXVjMk56Y3o4NFlUWmtJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW5aaGNpQmhjR2tnUFNCeVpYRjFhWEpsS0Z3aUlTNHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OXpkSGxzWlMxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwybHVhbVZqZEZOMGVXeGxjMGx1ZEc5VGRIbHNaVlJoWnk1cWMxd2lLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJqYjI1MFpXNTBJRDBnY21WeGRXbHlaU2hjSWlFaExpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTlNYVdKeVlYSjVUV1Z1ZFM1elkzTnpYQ0lwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnWTI5dWRHVnVkQzVmWDJWelRXOWtkV3hsSUQ4Z1kyOXVkR1Z1ZEM1a1pXWmhkV3gwSURvZ1kyOXVkR1Z1ZER0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCamIyNTBaVzUwSUQwOVBTQW5jM1J5YVc1bkp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdXMXR0YjJSMWJHVXVhV1FzSUdOdmJuUmxiblFzSUNjblhWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiblpoY2lCdmNIUnBiMjV6SUQwZ2UzMDdYRzVjYm05d2RHbHZibk11YVc1elpYSjBJRDBnWENKb1pXRmtYQ0k3WEc1dmNIUnBiMjV6TG5OcGJtZHNaWFJ2YmlBOUlHWmhiSE5sTzF4dVhHNTJZWElnZFhCa1lYUmxJRDBnWVhCcEtHTnZiblJsYm5Rc0lHOXdkR2x2Ym5NcE8xeHVYRzVjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamIyNTBaVzUwTG14dlkyRnNjeUI4ZkNCN2ZUc2lYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvTGlicmFyeU1lbnUuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5TWVudUl0ZW1zLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5TWVudUl0ZW1zLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cbmV2YWwoXCJ2YXIgYXBpID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vTGlicmFyeU1lbnVJdGVtcy5zY3NzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0xpYnJhcnlNZW51SXRlbXMuc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OU1hV0p5WVhKNVRXVnVkVWwwWlcxekxuTmpjM011YW5NaUxDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1ZVRkJWU3h0UWtGQlR5eERRVUZETERoS1FVRXlSVHRCUVVNM1Jpd3dRa0ZCTUVJc2JVSkJRVThzUTBGQlF5dzRZVUZCTms4N08wRkJSUzlST3p0QlFVVkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUczdRVUZGUVR0QlFVTkJPenRCUVVWQk96czdPMEZCU1VFaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlNYVdKeVlYSjVUV1Z1ZFVsMFpXMXpMbk5qYzNNL1pUYzJNQ0pkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKMllYSWdZWEJwSUQwZ2NtVnhkV2x5WlNoY0lpRXVMaTh1TGk5dWIyUmxYMjF2WkhWc1pYTXZjM1I1YkdVdGJHOWhaR1Z5TDJScGMzUXZjblZ1ZEdsdFpTOXBibXBsWTNSVGRIbHNaWE5KYm5SdlUzUjViR1ZVWVdjdWFuTmNJaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZWElnWTI5dWRHVnVkQ0E5SUhKbGNYVnBjbVVvWENJaElTNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12Y0c5emRHTnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk0vUDNKMWJHVlRaWFJiTVYwdWNuVnNaWE5iTUYwdWRYTmxXekpkSVM0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDNOaGMzTXRiRzloWkdWeUwyUnBjM1F2WTJwekxtcHpJUzR2VEdsaWNtRnllVTFsYm5WSmRHVnRjeTV6WTNOelhDSXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdZMjl1ZEdWdWRDNWZYMlZ6VFc5a2RXeGxJRDhnWTI5dWRHVnVkQzVrWldaaGRXeDBJRG9nWTI5dWRHVnVkRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJqYjI1MFpXNTBJRDA5UFNBbmMzUnlhVzVuSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1cxdHRiMlIxYkdVdWFXUXNJR052Ym5SbGJuUXNJQ2NuWFYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JuWmhjaUJ2Y0hScGIyNXpJRDBnZTMwN1hHNWNibTl3ZEdsdmJuTXVhVzV6WlhKMElEMGdYQ0pvWldGa1hDSTdYRzV2Y0hScGIyNXpMbk5wYm1kc1pYUnZiaUE5SUdaaGJITmxPMXh1WEc1MllYSWdkWEJrWVhSbElEMGdZWEJwS0dOdmJuUmxiblFzSUc5d2RHbHZibk1wTzF4dVhHNWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0JqYjI1MFpXNTBMbXh2WTJGc2N5QjhmQ0I3ZlRzaVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5TWVudUl0ZW1zLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvTGlicmFyeVVuaXQuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5VW5pdC5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuZXZhbChcInZhciBhcGkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcXFwiKTtcXG4gICAgICAgICAgICB2YXIgY29udGVudCA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9MaWJyYXJ5VW5pdC5zY3NzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0xpYnJhcnlVbml0LnNjc3NcXFwiKTtcXG5cXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcXG5cXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XFxuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XFxuICAgICAgICAgICAgfVxcblxcbnZhciBvcHRpb25zID0ge307XFxuXFxub3B0aW9ucy5pbnNlcnQgPSBcXFwiaGVhZFxcXCI7XFxub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcXG5cXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xcblxcblxcblxcbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Ly8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlNYVdKeVlYSjVWVzVwZEM1elkzTnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEZWQlFWVXNiVUpCUVU4c1EwRkJReXc0U2tGQk1rVTdRVUZETjBZc01FSkJRVEJDTEcxQ1FVRlBMRU5CUVVNc2IyRkJRWGRQT3p0QlFVVXhVVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN08wRkJSVUU3UVVGRFFUczdRVUZGUVRzN096dEJRVWxCSWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZUR2xpY21GeWVWVnVhWFF1YzJOemN6ODRaRFl5SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkluWmhjaUJoY0drZ1BTQnlaWEYxYVhKbEtGd2lJUzR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl6ZEhsc1pTMXNiMkZrWlhJdlpHbHpkQzl5ZFc1MGFXMWxMMmx1YW1WamRGTjBlV3hsYzBsdWRHOVRkSGxzWlZSaFp5NXFjMXdpS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCamIyNTBaVzUwSUQwZ2NtVnhkV2x5WlNoY0lpRWhMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk5TWFXSnlZWEo1Vlc1cGRDNXpZM056WENJcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1kyOXVkR1Z1ZEM1ZlgyVnpUVzlrZFd4bElEOGdZMjl1ZEdWdWRDNWtaV1poZFd4MElEb2dZMjl1ZEdWdWREdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQmpiMjUwWlc1MElEMDlQU0FuYzNSeWFXNW5KeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnVzF0dGIyUjFiR1V1YVdRc0lHTnZiblJsYm5Rc0lDY25YVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzVjYm5aaGNpQnZjSFJwYjI1eklEMGdlMzA3WEc1Y2JtOXdkR2x2Ym5NdWFXNXpaWEowSUQwZ1hDSm9aV0ZrWENJN1hHNXZjSFJwYjI1ekxuTnBibWRzWlhSdmJpQTlJR1poYkhObE8xeHVYRzUyWVhJZ2RYQmtZWFJsSUQwZ1lYQnBLR052Ym5SbGJuUXNJRzl3ZEdsdmJuTXBPMXh1WEc1Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQmpiMjUwWlc1MExteHZZMkZzY3lCOGZDQjdmVHNpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0xpYnJhcnlVbml0LnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvTW9kYWwuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9Nb2RhbC5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuZXZhbChcInZhciBhcGkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcXFwiKTtcXG4gICAgICAgICAgICB2YXIgY29udGVudCA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9Nb2RhbC5zY3NzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL01vZGFsLnNjc3NcXFwiKTtcXG5cXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcXG5cXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XFxuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XFxuICAgICAgICAgICAgfVxcblxcbnZhciBvcHRpb25zID0ge307XFxuXFxub3B0aW9ucy5pbnNlcnQgPSBcXFwiaGVhZFxcXCI7XFxub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcXG5cXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xcblxcblxcblxcbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Ly8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlOYjJSaGJDNXpZM056TG1weklpd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxGVkJRVlVzYlVKQlFVOHNRMEZCUXl3NFNrRkJNa1U3UVVGRE4wWXNNRUpCUVRCQ0xHMUNRVUZQTEVOQlFVTXNkMXBCUVd0UE96dEJRVVZ3VVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUczdPenRCUVVsQklpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12VFc5a1lXd3VjMk56Y3o4eU9UVXdJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW5aaGNpQmhjR2tnUFNCeVpYRjFhWEpsS0Z3aUlTNHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OXpkSGxzWlMxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwybHVhbVZqZEZOMGVXeGxjMGx1ZEc5VGRIbHNaVlJoWnk1cWMxd2lLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJqYjI1MFpXNTBJRDBnY21WeGRXbHlaU2hjSWlFaExpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTlOYjJSaGJDNXpZM056WENJcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1kyOXVkR1Z1ZEM1ZlgyVnpUVzlrZFd4bElEOGdZMjl1ZEdWdWRDNWtaV1poZFd4MElEb2dZMjl1ZEdWdWREdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQmpiMjUwWlc1MElEMDlQU0FuYzNSeWFXNW5KeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnVzF0dGIyUjFiR1V1YVdRc0lHTnZiblJsYm5Rc0lDY25YVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzVjYm5aaGNpQnZjSFJwYjI1eklEMGdlMzA3WEc1Y2JtOXdkR2x2Ym5NdWFXNXpaWEowSUQwZ1hDSm9aV0ZrWENJN1hHNXZjSFJwYjI1ekxuTnBibWRzWlhSdmJpQTlJR1poYkhObE8xeHVYRzUyWVhJZ2RYQmtZWFJsSUQwZ1lYQnBLR052Ym5SbGJuUXNJRzl3ZEdsdmJuTXBPMXh1WEc1Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQmpiMjUwWlc1MExteHZZMkZzY3lCOGZDQjdmVHNpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL01vZGFsLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvUGFzdGVDaGFydERpYWxvZy5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvUGFzdGVDaGFydERpYWxvZy5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5ldmFsKFwidmFyIGFwaSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1xcXCIpO1xcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgISEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL1Bhc3RlQ2hhcnREaWFsb2cuc2NzcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9QYXN0ZUNoYXJ0RGlhbG9nLnNjc3NcXFwiKTtcXG5cXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcXG5cXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XFxuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XFxuICAgICAgICAgICAgfVxcblxcbnZhciBvcHRpb25zID0ge307XFxuXFxub3B0aW9ucy5pbnNlcnQgPSBcXFwiaGVhZFxcXCI7XFxub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcXG5cXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xcblxcblxcblxcbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Ly8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlRWVhOMFpVTm9ZWEowUkdsaGJHOW5Mbk5qYzNNdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNWVUZCVlN4dFFrRkJUeXhEUVVGRExEaEtRVUV5UlR0QlFVTTNSaXd3UWtGQk1FSXNiVUpCUVU4c1EwRkJReXc0WVVGQk5rODdPMEZCUlM5Uk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPenM3TzBGQlNVRWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5UVlYTjBaVU5vWVhKMFJHbGhiRzluTG5OamMzTS9aVFExTWlKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SjJZWElnWVhCcElEMGdjbVZ4ZFdseVpTaGNJaUV1TGk4dUxpOXViMlJsWDIxdlpIVnNaWE12YzNSNWJHVXRiRzloWkdWeUwyUnBjM1F2Y25WdWRHbHRaUzlwYm1wbFkzUlRkSGxzWlhOSmJuUnZVM1I1YkdWVVlXY3Vhbk5jSWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ1kyOXVkR1Z1ZENBOUlISmxjWFZwY21Vb1hDSWhJUzR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMMk56Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdmNHOXpkR056Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NL1AzSjFiR1ZUWlhSYk1WMHVjblZzWlhOYk1GMHVkWE5sV3pKZElTNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwzTmhjM010Ykc5aFpHVnlMMlJwYzNRdlkycHpMbXB6SVM0dlVHRnpkR1ZEYUdGeWRFUnBZV3h2Wnk1elkzTnpYQ0lwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnWTI5dWRHVnVkQzVmWDJWelRXOWtkV3hsSUQ4Z1kyOXVkR1Z1ZEM1a1pXWmhkV3gwSURvZ1kyOXVkR1Z1ZER0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCamIyNTBaVzUwSUQwOVBTQW5jM1J5YVc1bkp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdXMXR0YjJSMWJHVXVhV1FzSUdOdmJuUmxiblFzSUNjblhWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiblpoY2lCdmNIUnBiMjV6SUQwZ2UzMDdYRzVjYm05d2RHbHZibk11YVc1elpYSjBJRDBnWENKb1pXRmtYQ0k3WEc1dmNIUnBiMjV6TG5OcGJtZHNaWFJ2YmlBOUlHWmhiSE5sTzF4dVhHNTJZWElnZFhCa1lYUmxJRDBnWVhCcEtHTnZiblJsYm5Rc0lHOXdkR2x2Ym5NcE8xeHVYRzVjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamIyNTBaVzUwTG14dlkyRnNjeUI4ZkNCN2ZUc2lYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvUGFzdGVDaGFydERpYWxvZy5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL1BvcG92ZXIuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL1BvcG92ZXIuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuZXZhbChcInZhciBhcGkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcXFwiKTtcXG4gICAgICAgICAgICB2YXIgY29udGVudCA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9Qb3BvdmVyLnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvUG9wb3Zlci5zY3NzXFxcIik7XFxuXFxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XFxuXFxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xcbiAgICAgICAgICAgIH1cXG5cXG52YXIgb3B0aW9ucyA9IHt9O1xcblxcbm9wdGlvbnMuaW5zZXJ0ID0gXFxcImhlYWRcXFwiO1xcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XFxuXFxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcXG5cXG5cXG5cXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9Oy8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5UWIzQnZkbVZ5TG5OamMzTXVhbk1pTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVlVGQlZTeHRRa0ZCVHl4RFFVRkRMRGhLUVVFeVJUdEJRVU0zUml3d1FrRkJNRUlzYlVKQlFVOHNRMEZCUXl3MFdrRkJiMDg3TzBGQlJYUlJPenRCUVVWQk8wRkJRMEU3UVVGRFFUczdRVUZGUVRzN1FVRkZRVHRCUVVOQk96dEJRVVZCT3pzN08wRkJTVUVpTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVFiM0J2ZG1WeUxuTmpjM00vTnpnME5DSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUoyWVhJZ1lYQnBJRDBnY21WeGRXbHlaU2hjSWlFdUxpOHVMaTl1YjJSbFgyMXZaSFZzWlhNdmMzUjViR1V0Ykc5aFpHVnlMMlJwYzNRdmNuVnVkR2x0WlM5cGJtcGxZM1JUZEhsc1pYTkpiblJ2VTNSNWJHVlVZV2N1YW5OY0lpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllYSWdZMjl1ZEdWdWRDQTlJSEpsY1hWcGNtVW9YQ0loSVM0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDJOemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZjRzl6ZEdOemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTS9QM0oxYkdWVFpYUmJNVjB1Y25Wc1pYTmJNRjB1ZFhObFd6SmRJUzR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMM05oYzNNdGJHOWhaR1Z5TDJScGMzUXZZMnB6TG1weklTNHZVRzl3YjNabGNpNXpZM056WENJcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1kyOXVkR1Z1ZEM1ZlgyVnpUVzlrZFd4bElEOGdZMjl1ZEdWdWRDNWtaV1poZFd4MElEb2dZMjl1ZEdWdWREdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQmpiMjUwWlc1MElEMDlQU0FuYzNSeWFXNW5KeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnVzF0dGIyUjFiR1V1YVdRc0lHTnZiblJsYm5Rc0lDY25YVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzVjYm5aaGNpQnZjSFJwYjI1eklEMGdlMzA3WEc1Y2JtOXdkR2x2Ym5NdWFXNXpaWEowSUQwZ1hDSm9aV0ZrWENJN1hHNXZjSFJwYjI1ekxuTnBibWRzWlhSdmJpQTlJR1poYkhObE8xeHVYRzUyWVhJZ2RYQmtZWFJsSUQwZ1lYQnBLR052Ym5SbGJuUXNJRzl3ZEdsdmJuTXBPMXh1WEc1Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQmpiMjUwWlc1MExteHZZMkZzY3lCOGZDQjdmVHNpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL1BvcG92ZXIuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9Qcm9qZWN0TmFtZS5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL1Byb2plY3ROYW1lLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5ldmFsKFwidmFyIGFwaSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1xcXCIpO1xcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgISEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL1Byb2plY3ROYW1lLnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvUHJvamVjdE5hbWUuc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVFjbTlxWldOMFRtRnRaUzV6WTNOekxtcHpJaXdpYldGd2NHbHVaM01pT2lKQlFVRkJMRlZCUVZVc2JVSkJRVThzUTBGQlF5dzRTa0ZCTWtVN1FVRkROMFlzTUVKQlFUQkNMRzFDUVVGUExFTkJRVU1zYjJGQlFYZFBPenRCUVVVeFVUczdRVUZGUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3TzBGQlJVRTdRVUZEUVRzN1FVRkZRVHM3T3p0QlFVbEJJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJOdmJYQnZibVZ1ZEhNdlVISnZhbVZqZEU1aGJXVXVjMk56Y3o4ek9EYzBJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW5aaGNpQmhjR2tnUFNCeVpYRjFhWEpsS0Z3aUlTNHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OXpkSGxzWlMxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwybHVhbVZqZEZOMGVXeGxjMGx1ZEc5VGRIbHNaVlJoWnk1cWMxd2lLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJqYjI1MFpXNTBJRDBnY21WeGRXbHlaU2hjSWlFaExpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTlRY205cVpXTjBUbUZ0WlM1elkzTnpYQ0lwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnWTI5dWRHVnVkQzVmWDJWelRXOWtkV3hsSUQ4Z1kyOXVkR1Z1ZEM1a1pXWmhkV3gwSURvZ1kyOXVkR1Z1ZER0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCamIyNTBaVzUwSUQwOVBTQW5jM1J5YVc1bkp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdXMXR0YjJSMWJHVXVhV1FzSUdOdmJuUmxiblFzSUNjblhWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiblpoY2lCdmNIUnBiMjV6SUQwZ2UzMDdYRzVjYm05d2RHbHZibk11YVc1elpYSjBJRDBnWENKb1pXRmtYQ0k3WEc1dmNIUnBiMjV6TG5OcGJtZHNaWFJ2YmlBOUlHWmhiSE5sTzF4dVhHNTJZWElnZFhCa1lYUmxJRDBnWVhCcEtHTnZiblJsYm5Rc0lHOXdkR2x2Ym5NcE8xeHVYRzVjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamIyNTBaVzUwTG14dlkyRnNjeUI4ZkNCN2ZUc2lYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvUHJvamVjdE5hbWUuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9QdWJsaXNoTGlicmFyeS5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL1B1Ymxpc2hMaWJyYXJ5LnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5ldmFsKFwidmFyIGFwaSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1xcXCIpO1xcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgISEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL1B1Ymxpc2hMaWJyYXJ5LnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvUHVibGlzaExpYnJhcnkuc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVFkV0pzYVhOb1RHbGljbUZ5ZVM1elkzTnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEZWQlFWVXNiVUpCUVU4c1EwRkJReXc0U2tGQk1rVTdRVUZETjBZc01FSkJRVEJDTEcxQ1FVRlBMRU5CUVVNc01HRkJRVEpQT3p0QlFVVTNVVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN08wRkJSVUU3UVVGRFFUczdRVUZGUVRzN096dEJRVWxCSWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZVSFZpYkdsemFFeHBZbkpoY25rdWMyTnpjejg0TURNMUlsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJblpoY2lCaGNHa2dQU0J5WlhGMWFYSmxLRndpSVM0dUx5NHVMMjV2WkdWZmJXOWtkV3hsY3k5emRIbHNaUzFzYjJGa1pYSXZaR2x6ZEM5eWRXNTBhVzFsTDJsdWFtVmpkRk4wZVd4bGMwbHVkRzlUZEhsc1pWUmhaeTVxYzF3aUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGNpQmpiMjUwWlc1MElEMGdjbVZ4ZFdseVpTaGNJaUVoTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZjMkZ6Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpOVFkV0pzYVhOb1RHbGljbUZ5ZVM1elkzTnpYQ0lwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnWTI5dWRHVnVkQzVmWDJWelRXOWtkV3hsSUQ4Z1kyOXVkR1Z1ZEM1a1pXWmhkV3gwSURvZ1kyOXVkR1Z1ZER0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCamIyNTBaVzUwSUQwOVBTQW5jM1J5YVc1bkp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdXMXR0YjJSMWJHVXVhV1FzSUdOdmJuUmxiblFzSUNjblhWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiblpoY2lCdmNIUnBiMjV6SUQwZ2UzMDdYRzVjYm05d2RHbHZibk11YVc1elpYSjBJRDBnWENKb1pXRmtYQ0k3WEc1dmNIUnBiMjV6TG5OcGJtZHNaWFJ2YmlBOUlHWmhiSE5sTzF4dVhHNTJZWElnZFhCa1lYUmxJRDBnWVhCcEtHTnZiblJsYm5Rc0lHOXdkR2x2Ym5NcE8xeHVYRzVjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamIyNTBaVzUwTG14dlkyRnNjeUI4ZkNCN2ZUc2lYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvUHVibGlzaExpYnJhcnkuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9TaW5nbGVMaWJyYXJ5SXRlbS5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL1NpbmdsZUxpYnJhcnlJdGVtLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5ldmFsKFwidmFyIGFwaSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1xcXCIpO1xcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgISEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL1NpbmdsZUxpYnJhcnlJdGVtLnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvU2luZ2xlTGlicmFyeUl0ZW0uc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVRhVzVuYkdWTWFXSnlZWEo1U1hSbGJTNXpZM056TG1weklpd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxGVkJRVlVzYlVKQlFVOHNRMEZCUXl3NFNrRkJNa1U3UVVGRE4wWXNNRUpCUVRCQ0xHMUNRVUZQTEVOQlFVTXNaMkpCUVRoUE96dEJRVVZvVWpzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUczdPenRCUVVsQklpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12VTJsdVoyeGxUR2xpY21GeWVVbDBaVzB1YzJOemN6ODRPVFZrSWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkluWmhjaUJoY0drZ1BTQnlaWEYxYVhKbEtGd2lJUzR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl6ZEhsc1pTMXNiMkZrWlhJdlpHbHpkQzl5ZFc1MGFXMWxMMmx1YW1WamRGTjBlV3hsYzBsdWRHOVRkSGxzWlZSaFp5NXFjMXdpS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCamIyNTBaVzUwSUQwZ2NtVnhkV2x5WlNoY0lpRWhMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk5VGFXNW5iR1ZNYVdKeVlYSjVTWFJsYlM1elkzTnpYQ0lwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnWTI5dWRHVnVkQzVmWDJWelRXOWtkV3hsSUQ4Z1kyOXVkR1Z1ZEM1a1pXWmhkV3gwSURvZ1kyOXVkR1Z1ZER0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCamIyNTBaVzUwSUQwOVBTQW5jM1J5YVc1bkp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdXMXR0YjJSMWJHVXVhV1FzSUdOdmJuUmxiblFzSUNjblhWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiblpoY2lCdmNIUnBiMjV6SUQwZ2UzMDdYRzVjYm05d2RHbHZibk11YVc1elpYSjBJRDBnWENKb1pXRmtYQ0k3WEc1dmNIUnBiMjV6TG5OcGJtZHNaWFJ2YmlBOUlHWmhiSE5sTzF4dVhHNTJZWElnZFhCa1lYUmxJRDBnWVhCcEtHTnZiblJsYm5Rc0lHOXdkR2x2Ym5NcE8xeHVYRzVjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamIyNTBaVzUwTG14dlkyRnNjeUI4ZkNCN2ZUc2lYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvU2luZ2xlTGlicmFyeUl0ZW0uc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9TcGlubmVyLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9TcGlubmVyLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cbmV2YWwoXCJ2YXIgYXBpID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vU3Bpbm5lci5zY3NzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1NwaW5uZXIuc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVRjR2x1Ym1WeUxuTmpjM011YW5NaUxDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1ZVRkJWU3h0UWtGQlR5eERRVUZETERoS1FVRXlSVHRCUVVNM1Jpd3dRa0ZCTUVJc2JVSkJRVThzUTBGQlF5dzBXa0ZCYjA4N08wRkJSWFJST3p0QlFVVkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUczdRVUZGUVR0QlFVTkJPenRCUVVWQk96czdPMEZCU1VFaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlUY0dsdWJtVnlMbk5qYzNNL1l6RTJOeUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKMllYSWdZWEJwSUQwZ2NtVnhkV2x5WlNoY0lpRXVMaTh1TGk5dWIyUmxYMjF2WkhWc1pYTXZjM1I1YkdVdGJHOWhaR1Z5TDJScGMzUXZjblZ1ZEdsdFpTOXBibXBsWTNSVGRIbHNaWE5KYm5SdlUzUjViR1ZVWVdjdWFuTmNJaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZWElnWTI5dWRHVnVkQ0E5SUhKbGNYVnBjbVVvWENJaElTNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12Y0c5emRHTnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk0vUDNKMWJHVlRaWFJiTVYwdWNuVnNaWE5iTUYwdWRYTmxXekpkSVM0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDNOaGMzTXRiRzloWkdWeUwyUnBjM1F2WTJwekxtcHpJUzR2VTNCcGJtNWxjaTV6WTNOelhDSXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdZMjl1ZEdWdWRDNWZYMlZ6VFc5a2RXeGxJRDhnWTI5dWRHVnVkQzVrWldaaGRXeDBJRG9nWTI5dWRHVnVkRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJqYjI1MFpXNTBJRDA5UFNBbmMzUnlhVzVuSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1cxdHRiMlIxYkdVdWFXUXNJR052Ym5SbGJuUXNJQ2NuWFYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JuWmhjaUJ2Y0hScGIyNXpJRDBnZTMwN1hHNWNibTl3ZEdsdmJuTXVhVzV6WlhKMElEMGdYQ0pvWldGa1hDSTdYRzV2Y0hScGIyNXpMbk5wYm1kc1pYUnZiaUE5SUdaaGJITmxPMXh1WEc1MllYSWdkWEJrWVhSbElEMGdZWEJwS0dOdmJuUmxiblFzSUc5d2RHbHZibk1wTzF4dVhHNWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0JqYjI1MFpXNTBMbXh2WTJGc2N5QjhmQ0I3ZlRzaVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9TcGlubmVyLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvU3RhY2suc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9TdGFjay5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuZXZhbChcInZhciBhcGkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcXFwiKTtcXG4gICAgICAgICAgICB2YXIgY29udGVudCA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9TdGFjay5zY3NzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1N0YWNrLnNjc3NcXFwiKTtcXG5cXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcXG5cXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XFxuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XFxuICAgICAgICAgICAgfVxcblxcbnZhciBvcHRpb25zID0ge307XFxuXFxub3B0aW9ucy5pbnNlcnQgPSBcXFwiaGVhZFxcXCI7XFxub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcXG5cXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xcblxcblxcblxcbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Ly8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlUZEdGamF5NXpZM056TG1weklpd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxGVkJRVlVzYlVKQlFVOHNRMEZCUXl3NFNrRkJNa1U3UVVGRE4wWXNNRUpCUVRCQ0xHMUNRVUZQTEVOQlFVTXNkMXBCUVd0UE96dEJRVVZ3VVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUczdPenRCUVVsQklpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12VTNSaFkyc3VjMk56Y3o4eU5HWmxJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW5aaGNpQmhjR2tnUFNCeVpYRjFhWEpsS0Z3aUlTNHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OXpkSGxzWlMxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwybHVhbVZqZEZOMGVXeGxjMGx1ZEc5VGRIbHNaVlJoWnk1cWMxd2lLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJqYjI1MFpXNTBJRDBnY21WeGRXbHlaU2hjSWlFaExpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTlUZEdGamF5NXpZM056WENJcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1kyOXVkR1Z1ZEM1ZlgyVnpUVzlrZFd4bElEOGdZMjl1ZEdWdWRDNWtaV1poZFd4MElEb2dZMjl1ZEdWdWREdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQmpiMjUwWlc1MElEMDlQU0FuYzNSeWFXNW5KeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnVzF0dGIyUjFiR1V1YVdRc0lHTnZiblJsYm5Rc0lDY25YVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzVjYm5aaGNpQnZjSFJwYjI1eklEMGdlMzA3WEc1Y2JtOXdkR2x2Ym5NdWFXNXpaWEowSUQwZ1hDSm9aV0ZrWENJN1hHNXZjSFJwYjI1ekxuTnBibWRzWlhSdmJpQTlJR1poYkhObE8xeHVYRzUyWVhJZ2RYQmtZWFJsSUQwZ1lYQnBLR052Ym5SbGJuUXNJRzl3ZEdsdmJuTXBPMXh1WEc1Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQmpiMjUwWlc1MExteHZZMkZzY3lCOGZDQjdmVHNpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL1N0YWNrLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvU3RhdHMuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9TdGF0cy5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuZXZhbChcInZhciBhcGkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcXFwiKTtcXG4gICAgICAgICAgICB2YXIgY29udGVudCA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9TdGF0cy5zY3NzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1N0YXRzLnNjc3NcXFwiKTtcXG5cXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcXG5cXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XFxuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XFxuICAgICAgICAgICAgfVxcblxcbnZhciBvcHRpb25zID0ge307XFxuXFxub3B0aW9ucy5pbnNlcnQgPSBcXFwiaGVhZFxcXCI7XFxub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcXG5cXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xcblxcblxcblxcbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Ly8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlUZEdGMGN5NXpZM056TG1weklpd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxGVkJRVlVzYlVKQlFVOHNRMEZCUXl3NFNrRkJNa1U3UVVGRE4wWXNNRUpCUVRCQ0xHMUNRVUZQTEVOQlFVTXNkMXBCUVd0UE96dEJRVVZ3VVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUczdPenRCUVVsQklpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12VTNSaGRITXVjMk56Y3o4MU5XSXlJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW5aaGNpQmhjR2tnUFNCeVpYRjFhWEpsS0Z3aUlTNHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OXpkSGxzWlMxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwybHVhbVZqZEZOMGVXeGxjMGx1ZEc5VGRIbHNaVlJoWnk1cWMxd2lLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJqYjI1MFpXNTBJRDBnY21WeGRXbHlaU2hjSWlFaExpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTlUZEdGMGN5NXpZM056WENJcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1kyOXVkR1Z1ZEM1ZlgyVnpUVzlrZFd4bElEOGdZMjl1ZEdWdWRDNWtaV1poZFd4MElEb2dZMjl1ZEdWdWREdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQmpiMjUwWlc1MElEMDlQU0FuYzNSeWFXNW5KeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnVzF0dGIyUjFiR1V1YVdRc0lHTnZiblJsYm5Rc0lDY25YVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzVjYm5aaGNpQnZjSFJwYjI1eklEMGdlMzA3WEc1Y2JtOXdkR2x2Ym5NdWFXNXpaWEowSUQwZ1hDSm9aV0ZrWENJN1hHNXZjSFJwYjI1ekxuTnBibWRzWlhSdmJpQTlJR1poYkhObE8xeHVYRzUyWVhJZ2RYQmtZWFJsSUQwZ1lYQnBLR052Ym5SbGJuUXNJRzl3ZEdsdmJuTXBPMXh1WEc1Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQmpiMjUwWlc1MExteHZZMkZzY3lCOGZDQjdmVHNpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL1N0YXRzLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvVGV4dElucHV0LnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL1RleHRJbnB1dC5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cbmV2YWwoXCJ2YXIgYXBpID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vVGV4dElucHV0LnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvVGV4dElucHV0LnNjc3NcXFwiKTtcXG5cXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcXG5cXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XFxuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XFxuICAgICAgICAgICAgfVxcblxcbnZhciBvcHRpb25zID0ge307XFxuXFxub3B0aW9ucy5pbnNlcnQgPSBcXFwiaGVhZFxcXCI7XFxub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcXG5cXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xcblxcblxcblxcbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Ly8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlVWlhoMFNXNXdkWFF1YzJOemN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hWUVVGVkxHMUNRVUZQTEVOQlFVTXNPRXBCUVRKRk8wRkJRemRHTERCQ1FVRXdRaXh0UWtGQlR5eERRVUZETEdkaFFVRnpUenM3UVVGRmVGRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk96dEJRVVZCT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3T3pzN1FVRkpRU0lzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5amIyMXdiMjVsYm5SekwxUmxlSFJKYm5CMWRDNXpZM056UHpZMlkyTWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpZG1GeUlHRndhU0E5SUhKbGNYVnBjbVVvWENJaExpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzTjBlV3hsTFd4dllXUmxjaTlrYVhOMEwzSjFiblJwYldVdmFXNXFaV04wVTNSNWJHVnpTVzUwYjFOMGVXeGxWR0ZuTG1welhDSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnlJR052Ym5SbGJuUWdQU0J5WlhGMWFYSmxLRndpSVNFdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2WTJwekxtcHpJUzR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMM0J2YzNSamMzTXRiRzloWkdWeUwyUnBjM1F2WTJwekxtcHpQejl5ZFd4bFUyVjBXekZkTG5KMWJHVnpXekJkTG5WelpWc3lYU0V1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTl6WVhOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMVJsZUhSSmJuQjFkQzV6WTNOelhDSXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdZMjl1ZEdWdWRDNWZYMlZ6VFc5a2RXeGxJRDhnWTI5dWRHVnVkQzVrWldaaGRXeDBJRG9nWTI5dWRHVnVkRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJqYjI1MFpXNTBJRDA5UFNBbmMzUnlhVzVuSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1cxdHRiMlIxYkdVdWFXUXNJR052Ym5SbGJuUXNJQ2NuWFYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JuWmhjaUJ2Y0hScGIyNXpJRDBnZTMwN1hHNWNibTl3ZEdsdmJuTXVhVzV6WlhKMElEMGdYQ0pvWldGa1hDSTdYRzV2Y0hScGIyNXpMbk5wYm1kc1pYUnZiaUE5SUdaaGJITmxPMXh1WEc1MllYSWdkWEJrWVhSbElEMGdZWEJwS0dOdmJuUmxiblFzSUc5d2RHbHZibk1wTzF4dVhHNWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0JqYjI1MFpXNTBMbXh2WTJGc2N5QjhmQ0I3ZlRzaVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9UZXh0SW5wdXQuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9Ub2FzdC5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL1RvYXN0LnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5ldmFsKFwidmFyIGFwaSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1xcXCIpO1xcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgISEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL1RvYXN0LnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvVG9hc3Quc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVViMkZ6ZEM1elkzTnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEZWQlFWVXNiVUpCUVU4c1EwRkJReXc0U2tGQk1rVTdRVUZETjBZc01FSkJRVEJDTEcxQ1FVRlBMRU5CUVVNc2QxcEJRV3RQT3p0QlFVVndVVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN08wRkJSVUU3UVVGRFFUczdRVUZGUVRzN096dEJRVWxCSWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZWRzloYzNRdWMyTnpjejgyTlROa0lsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJblpoY2lCaGNHa2dQU0J5WlhGMWFYSmxLRndpSVM0dUx5NHVMMjV2WkdWZmJXOWtkV3hsY3k5emRIbHNaUzFzYjJGa1pYSXZaR2x6ZEM5eWRXNTBhVzFsTDJsdWFtVmpkRk4wZVd4bGMwbHVkRzlUZEhsc1pWUmhaeTVxYzF3aUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGNpQmpiMjUwWlc1MElEMGdjbVZ4ZFdseVpTaGNJaUVoTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZjMkZ6Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpOVViMkZ6ZEM1elkzTnpYQ0lwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnWTI5dWRHVnVkQzVmWDJWelRXOWtkV3hsSUQ4Z1kyOXVkR1Z1ZEM1a1pXWmhkV3gwSURvZ1kyOXVkR1Z1ZER0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCamIyNTBaVzUwSUQwOVBTQW5jM1J5YVc1bkp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdXMXR0YjJSMWJHVXVhV1FzSUdOdmJuUmxiblFzSUNjblhWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiblpoY2lCdmNIUnBiMjV6SUQwZ2UzMDdYRzVjYm05d2RHbHZibk11YVc1elpYSjBJRDBnWENKb1pXRmtYQ0k3WEc1dmNIUnBiMjV6TG5OcGJtZHNaWFJ2YmlBOUlHWmhiSE5sTzF4dVhHNTJZWElnZFhCa1lYUmxJRDBnWVhCcEtHTnZiblJsYm5Rc0lHOXdkR2x2Ym5NcE8xeHVYRzVjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamIyNTBaVzUwTG14dlkyRnNjeUI4ZkNCN2ZUc2lYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvVG9hc3Quc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9Ub29sSWNvbi5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL1Rvb2xJY29uLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5ldmFsKFwidmFyIGFwaSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1xcXCIpO1xcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgISEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL1Rvb2xJY29uLnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvVG9vbEljb24uc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVViMjlzU1dOdmJpNXpZM056TG1weklpd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxGVkJRVlVzYlVKQlFVOHNRMEZCUXl3NFNrRkJNa1U3UVVGRE4wWXNNRUpCUVRCQ0xHMUNRVUZQTEVOQlFVTXNPRnBCUVhGUE96dEJRVVYyVVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUczdPenRCUVVsQklpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12Vkc5dmJFbGpiMjR1YzJOemN6OWxNVE0zSWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkluWmhjaUJoY0drZ1BTQnlaWEYxYVhKbEtGd2lJUzR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl6ZEhsc1pTMXNiMkZrWlhJdlpHbHpkQzl5ZFc1MGFXMWxMMmx1YW1WamRGTjBlV3hsYzBsdWRHOVRkSGxzWlZSaFp5NXFjMXdpS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCamIyNTBaVzUwSUQwZ2NtVnhkV2x5WlNoY0lpRWhMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk5VWIyOXNTV052Ymk1elkzTnpYQ0lwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnWTI5dWRHVnVkQzVmWDJWelRXOWtkV3hsSUQ4Z1kyOXVkR1Z1ZEM1a1pXWmhkV3gwSURvZ1kyOXVkR1Z1ZER0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCamIyNTBaVzUwSUQwOVBTQW5jM1J5YVc1bkp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdXMXR0YjJSMWJHVXVhV1FzSUdOdmJuUmxiblFzSUNjblhWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiblpoY2lCdmNIUnBiMjV6SUQwZ2UzMDdYRzVjYm05d2RHbHZibk11YVc1elpYSjBJRDBnWENKb1pXRmtYQ0k3WEc1dmNIUnBiMjV6TG5OcGJtZHNaWFJ2YmlBOUlHWmhiSE5sTzF4dVhHNTJZWElnZFhCa1lYUmxJRDBnWVhCcEtHTnZiblJsYm5Rc0lHOXdkR2x2Ym5NcE8xeHVYRzVjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamIyNTBaVzUwTG14dlkyRnNjeUI4ZkNCN2ZUc2lYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvVG9vbEljb24uc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9Ub29sYmFyLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9Ub29sYmFyLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cbmV2YWwoXCJ2YXIgYXBpID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vVG9vbGJhci5zY3NzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1Rvb2xiYXIuc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVViMjlzWW1GeUxuTmpjM011YW5NaUxDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1ZVRkJWU3h0UWtGQlR5eERRVUZETERoS1FVRXlSVHRCUVVNM1Jpd3dRa0ZCTUVJc2JVSkJRVThzUTBGQlF5dzBXa0ZCYjA4N08wRkJSWFJST3p0QlFVVkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUczdRVUZGUVR0QlFVTkJPenRCUVVWQk96czdPMEZCU1VFaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlVYjI5c1ltRnlMbk5qYzNNL1ltVmtNaUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKMllYSWdZWEJwSUQwZ2NtVnhkV2x5WlNoY0lpRXVMaTh1TGk5dWIyUmxYMjF2WkhWc1pYTXZjM1I1YkdVdGJHOWhaR1Z5TDJScGMzUXZjblZ1ZEdsdFpTOXBibXBsWTNSVGRIbHNaWE5KYm5SdlUzUjViR1ZVWVdjdWFuTmNJaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZWElnWTI5dWRHVnVkQ0E5SUhKbGNYVnBjbVVvWENJaElTNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12Y0c5emRHTnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk0vUDNKMWJHVlRaWFJiTVYwdWNuVnNaWE5iTUYwdWRYTmxXekpkSVM0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDNOaGMzTXRiRzloWkdWeUwyUnBjM1F2WTJwekxtcHpJUzR2Vkc5dmJHSmhjaTV6WTNOelhDSXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdZMjl1ZEdWdWRDNWZYMlZ6VFc5a2RXeGxJRDhnWTI5dWRHVnVkQzVrWldaaGRXeDBJRG9nWTI5dWRHVnVkRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJqYjI1MFpXNTBJRDA5UFNBbmMzUnlhVzVuSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1cxdHRiMlIxYkdVdWFXUXNJR052Ym5SbGJuUXNJQ2NuWFYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JuWmhjaUJ2Y0hScGIyNXpJRDBnZTMwN1hHNWNibTl3ZEdsdmJuTXVhVzV6WlhKMElEMGdYQ0pvWldGa1hDSTdYRzV2Y0hScGIyNXpMbk5wYm1kc1pYUnZiaUE5SUdaaGJITmxPMXh1WEc1MllYSWdkWEJrWVhSbElEMGdZWEJwS0dOdmJuUmxiblFzSUc5d2RHbHZibk1wTzF4dVhHNWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0JqYjI1MFpXNTBMbXh2WTJGc2N5QjhmQ0I3ZlRzaVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9Ub29sYmFyLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvVG9vbHRpcC5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvVG9vbHRpcC5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5ldmFsKFwidmFyIGFwaSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1xcXCIpO1xcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgISEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL1Rvb2x0aXAuc2NzcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Ub29sdGlwLnNjc3NcXFwiKTtcXG5cXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcXG5cXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XFxuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XFxuICAgICAgICAgICAgfVxcblxcbnZhciBvcHRpb25zID0ge307XFxuXFxub3B0aW9ucy5pbnNlcnQgPSBcXFwiaGVhZFxcXCI7XFxub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcXG5cXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xcblxcblxcblxcbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Ly8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlVYjI5c2RHbHdMbk5qYzNNdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNWVUZCVlN4dFFrRkJUeXhEUVVGRExEaEtRVUV5UlR0QlFVTTNSaXd3UWtGQk1FSXNiVUpCUVU4c1EwRkJReXcwV2tGQmIwODdPMEZCUlhSUk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPenM3TzBGQlNVRWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5VWIyOXNkR2x3TG5OamMzTS9NelEwTUNKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SjJZWElnWVhCcElEMGdjbVZ4ZFdseVpTaGNJaUV1TGk4dUxpOXViMlJsWDIxdlpIVnNaWE12YzNSNWJHVXRiRzloWkdWeUwyUnBjM1F2Y25WdWRHbHRaUzlwYm1wbFkzUlRkSGxzWlhOSmJuUnZVM1I1YkdWVVlXY3Vhbk5jSWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ1kyOXVkR1Z1ZENBOUlISmxjWFZwY21Vb1hDSWhJUzR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMMk56Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdmNHOXpkR056Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NL1AzSjFiR1ZUWlhSYk1WMHVjblZzWlhOYk1GMHVkWE5sV3pKZElTNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwzTmhjM010Ykc5aFpHVnlMMlJwYzNRdlkycHpMbXB6SVM0dlZHOXZiSFJwY0M1elkzTnpYQ0lwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnWTI5dWRHVnVkQzVmWDJWelRXOWtkV3hsSUQ4Z1kyOXVkR1Z1ZEM1a1pXWmhkV3gwSURvZ1kyOXVkR1Z1ZER0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCamIyNTBaVzUwSUQwOVBTQW5jM1J5YVc1bkp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdXMXR0YjJSMWJHVXVhV1FzSUdOdmJuUmxiblFzSUNjblhWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiblpoY2lCdmNIUnBiMjV6SUQwZ2UzMDdYRzVjYm05d2RHbHZibk11YVc1elpYSjBJRDBnWENKb1pXRmtYQ0k3WEc1dmNIUnBiMjV6TG5OcGJtZHNaWFJ2YmlBOUlHWmhiSE5sTzF4dVhHNTJZWElnZFhCa1lYUmxJRDBnWVhCcEtHTnZiblJsYm5Rc0lHOXdkR2x2Ym5NcE8xeHVYRzVjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamIyNTBaVzUwTG14dlkyRnNjeUI4ZkNCN2ZUc2lYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvVG9vbHRpcC5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL1VzZXJMaXN0LnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvVXNlckxpc3Quc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cbmV2YWwoXCJ2YXIgYXBpID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vVXNlckxpc3Quc2NzcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Vc2VyTGlzdC5zY3NzXFxcIik7XFxuXFxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XFxuXFxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xcbiAgICAgICAgICAgIH1cXG5cXG52YXIgb3B0aW9ucyA9IHt9O1xcblxcbm9wdGlvbnMuaW5zZXJ0ID0gXFxcImhlYWRcXFwiO1xcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XFxuXFxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcXG5cXG5cXG5cXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9Oy8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5VmMyVnlUR2x6ZEM1elkzTnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEZWQlFWVXNiVUpCUVU4c1EwRkJReXc0U2tGQk1rVTdRVUZETjBZc01FSkJRVEJDTEcxQ1FVRlBMRU5CUVVNc09GcEJRWEZQT3p0QlFVVjJVVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN08wRkJSVUU3UVVGRFFUczdRVUZGUVRzN096dEJRVWxCSWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZWWE5sY2t4cGMzUXVjMk56Y3o4eVpUTXpJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW5aaGNpQmhjR2tnUFNCeVpYRjFhWEpsS0Z3aUlTNHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OXpkSGxzWlMxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwybHVhbVZqZEZOMGVXeGxjMGx1ZEc5VGRIbHNaVlJoWnk1cWMxd2lLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJqYjI1MFpXNTBJRDBnY21WeGRXbHlaU2hjSWlFaExpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTlWYzJWeVRHbHpkQzV6WTNOelhDSXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdZMjl1ZEdWdWRDNWZYMlZ6VFc5a2RXeGxJRDhnWTI5dWRHVnVkQzVrWldaaGRXeDBJRG9nWTI5dWRHVnVkRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJqYjI1MFpXNTBJRDA5UFNBbmMzUnlhVzVuSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBaVzUwSUQwZ1cxdHRiMlIxYkdVdWFXUXNJR052Ym5SbGJuUXNJQ2NuWFYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JuWmhjaUJ2Y0hScGIyNXpJRDBnZTMwN1hHNWNibTl3ZEdsdmJuTXVhVzV6WlhKMElEMGdYQ0pvWldGa1hDSTdYRzV2Y0hScGIyNXpMbk5wYm1kc1pYUnZiaUE5SUdaaGJITmxPMXh1WEc1MllYSWdkWEJrWVhSbElEMGdZWEJwS0dOdmJuUmxiblFzSUc5d2RHbHZibk1wTzF4dVhHNWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0JqYjI1MFpXNTBMbXh2WTJGc2N5QjhmQ0I3ZlRzaVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9Vc2VyTGlzdC5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jc3MvYXBwLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2Nzcy9hcHAuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cbmV2YWwoXCJ2YXIgYXBpID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vYXBwLnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2Nzcy9hcHAuc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkzTnpMMkZ3Y0M1elkzTnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEZWQlFWVXNiVUpCUVU4c1EwRkJReXc0U2tGQk1rVTdRVUZETjBZc01FSkJRVEJDTEcxQ1FVRlBMRU5CUVVNc05sbEJRV2RQT3p0QlFVVnNVVHM3UVVGRlFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN08wRkJSVUU3UVVGRFFUczdRVUZGUVRzN096dEJRVWxCSWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnpjeTloY0hBdWMyTnpjejgzWm1WbUlsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJblpoY2lCaGNHa2dQU0J5WlhGMWFYSmxLRndpSVM0dUx5NHVMMjV2WkdWZmJXOWtkV3hsY3k5emRIbHNaUzFzYjJGa1pYSXZaR2x6ZEM5eWRXNTBhVzFsTDJsdWFtVmpkRk4wZVd4bGMwbHVkRzlUZEhsc1pWUmhaeTVxYzF3aUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGNpQmpiMjUwWlc1MElEMGdjbVZ4ZFdseVpTaGNJaUVoTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZjMkZ6Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpOWhjSEF1YzJOemMxd2lLVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1ZEdWdWRDQTlJR052Ym5SbGJuUXVYMTlsYzAxdlpIVnNaU0EvSUdOdmJuUmxiblF1WkdWbVlYVnNkQ0E2SUdOdmJuUmxiblE3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGVYQmxiMllnWTI5dWRHVnVkQ0E5UFQwZ0ozTjBjbWx1WnljcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVkR1Z1ZENBOUlGdGJiVzlrZFd4bExtbGtMQ0JqYjI1MFpXNTBMQ0FuSjExZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dVhHNTJZWElnYjNCMGFXOXVjeUE5SUh0OU8xeHVYRzV2Y0hScGIyNXpMbWx1YzJWeWRDQTlJRndpYUdWaFpGd2lPMXh1YjNCMGFXOXVjeTV6YVc1bmJHVjBiMjRnUFNCbVlXeHpaVHRjYmx4dWRtRnlJSFZ3WkdGMFpTQTlJR0Z3YVNoamIyNTBaVzUwTENCdmNIUnBiMjV6S1R0Y2JseHVYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnWTI5dWRHVnVkQzVzYjJOaGJITWdmSHdnZTMwN0lsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY3NzL2FwcC5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jc3Mvc3R5bGVzLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2Nzcy9zdHlsZXMuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cbmV2YWwoXCJ2YXIgYXBpID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3R5bGVzLnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2Nzcy9zdHlsZXMuc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkzTnpMM04wZVd4bGN5NXpZM056TG1weklpd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxGVkJRVlVzYlVKQlFVOHNRMEZCUXl3NFNrRkJNa1U3UVVGRE4wWXNNRUpCUVRCQ0xHMUNRVUZQTEVOQlFVTXNiVnBCUVcxUE96dEJRVVZ5VVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdPMEZCUlVFN1FVRkRRVHM3UVVGRlFUczdPenRCUVVsQklpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk56Y3k5emRIbHNaWE11YzJOemN6OW1aVEl5SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkluWmhjaUJoY0drZ1BTQnlaWEYxYVhKbEtGd2lJUzR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl6ZEhsc1pTMXNiMkZrWlhJdlpHbHpkQzl5ZFc1MGFXMWxMMmx1YW1WamRGTjBlV3hsYzBsdWRHOVRkSGxzWlZSaFp5NXFjMXdpS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCamIyNTBaVzUwSUQwZ2NtVnhkV2x5WlNoY0lpRWhMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk5emRIbHNaWE11YzJOemMxd2lLVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1ZEdWdWRDQTlJR052Ym5SbGJuUXVYMTlsYzAxdlpIVnNaU0EvSUdOdmJuUmxiblF1WkdWbVlYVnNkQ0E2SUdOdmJuUmxiblE3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGVYQmxiMllnWTI5dWRHVnVkQ0E5UFQwZ0ozTjBjbWx1WnljcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVkR1Z1ZENBOUlGdGJiVzlrZFd4bExtbGtMQ0JqYjI1MFpXNTBMQ0FuSjExZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dVhHNTJZWElnYjNCMGFXOXVjeUE5SUh0OU8xeHVYRzV2Y0hScGIyNXpMbWx1YzJWeWRDQTlJRndpYUdWaFpGd2lPMXh1YjNCMGFXOXVjeTV6YVc1bmJHVjBiMjRnUFNCbVlXeHpaVHRjYmx4dWRtRnlJSFZ3WkdGMFpTQTlJR0Z3YVNoamIyNTBaVzUwTENCdmNIUnBiMjV6S1R0Y2JseHVYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnWTI5dWRHVnVkQzVzYjJOaGJITWdmSHdnZTMwN0lsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY3NzL3N0eWxlcy5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5ldmFsKFwidmFyIGFwaSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohICEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1xcXCIpO1xcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgISEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3ZhcmlhYmxlcy5tb2R1bGUuc2NzcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1xcXCIpO1xcblxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xcblxcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcXG4gICAgICAgICAgICB9XFxuXFxudmFyIG9wdGlvbnMgPSB7fTtcXG5cXG5vcHRpb25zLmluc2VydCA9IFxcXCJoZWFkXFxcIjtcXG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xcblxcbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XFxuXFxuXFxuXFxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkzTnpMM1poY21saFlteGxjeTV0YjJSMWJHVXVjMk56Y3k1cWN5SXNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFZRVUZWTEcxQ1FVRlBMRU5CUVVNc09FcEJRVEpGTzBGQlF6ZEdMREJDUVVFd1FpeHRRa0ZCVHl4RFFVRkRMSFZoUVVFMlR6czdRVUZGTDFFN08wRkJSVUU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdPenM3UVVGSlFTSXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTlqYzNNdmRtRnlhV0ZpYkdWekxtMXZaSFZzWlM1elkzTnpQMk15TURZaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lkbUZ5SUdGd2FTQTlJSEpsY1hWcGNtVW9YQ0loTGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDNOMGVXeGxMV3h2WVdSbGNpOWthWE4wTDNKMWJuUnBiV1V2YVc1cVpXTjBVM1I1YkdWelNXNTBiMU4wZVd4bFZHRm5MbXB6WENJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlHTnZiblJsYm5RZ1BTQnlaWEYxYVhKbEtGd2lJU0V1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTlqYzNNdGJHOWhaR1Z5TDJScGMzUXZZMnB6TG1weklTNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwzQnZjM1JqYzNNdGJHOWhaR1Z5TDJScGMzUXZZMnB6TG1welB6OXlkV3hsVTJWMFd6RmRMbkoxYkdWeld6QmRMblZ6WlZzeVhTRXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OXpZWE56TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUwzWmhjbWxoWW14bGN5NXRiMlIxYkdVdWMyTnpjMXdpS1R0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWRHVnVkQ0E5SUdOdmJuUmxiblF1WDE5bGMwMXZaSFZzWlNBL0lHTnZiblJsYm5RdVpHVm1ZWFZzZENBNklHTnZiblJsYm5RN1hHNWNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBlWEJsYjJZZ1kyOXVkR1Z1ZENBOVBUMGdKM04wY21sdVp5Y3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1ZEdWdWRDQTlJRnRiYlc5a2RXeGxMbWxrTENCamIyNTBaVzUwTENBbkoxMWRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVYRzUyWVhJZ2IzQjBhVzl1Y3lBOUlIdDlPMXh1WEc1dmNIUnBiMjV6TG1sdWMyVnlkQ0E5SUZ3aWFHVmhaRndpTzF4dWIzQjBhVzl1Y3k1emFXNW5iR1YwYjI0Z1BTQm1ZV3h6WlR0Y2JseHVkbUZ5SUhWd1pHRjBaU0E5SUdGd2FTaGpiMjUwWlc1MExDQnZjSFJwYjI1ektUdGNibHh1WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ1kyOXVkR1Z1ZEM1c2IyTmhiSE1nZkh3Z2UzMDdJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2VsZW1lbnQvSHlwZXJsaW5rLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9lbGVtZW50L0h5cGVybGluay5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cbmV2YWwoXCJ2YXIgYXBpID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAhIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vSHlwZXJsaW5rLnNjc3MgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2VsZW1lbnQvSHlwZXJsaW5rLnNjc3NcXFwiKTtcXG5cXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcXG5cXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XFxuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XFxuICAgICAgICAgICAgfVxcblxcbnZhciBvcHRpb25zID0ge307XFxuXFxub3B0aW9ucy5pbnNlcnQgPSBcXFwiaGVhZFxcXCI7XFxub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcXG5cXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xcblxcblxcblxcbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Ly8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZaV3hsYldWdWRDOUllWEJsY214cGJtc3VjMk56Y3k1cWN5SXNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFZRVUZWTEcxQ1FVRlBMRU5CUVVNc09FcEJRVEpGTzBGQlF6ZEdMREJDUVVFd1FpeHRRa0ZCVHl4RFFVRkRMRFphUVVGelR6czdRVUZGZUZFN08wRkJSVUU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPenRCUVVWQk8wRkJRMEU3TzBGQlJVRTdPenM3UVVGSlFTSXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTlsYkdWdFpXNTBMMGg1Y0dWeWJHbHVheTV6WTNOelB6VXdZbUlpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWRtRnlJR0Z3YVNBOUlISmxjWFZwY21Vb1hDSWhMaTR2TGk0dmJtOWtaVjl0YjJSMWJHVnpMM04wZVd4bExXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZhVzVxWldOMFUzUjViR1Z6U1c1MGIxTjBlV3hsVkdGbkxtcHpYQ0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUdOdmJuUmxiblFnUFNCeVpYRjFhWEpsS0Z3aUlTRXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OWpjM010Ykc5aFpHVnlMMlJwYzNRdlkycHpMbXB6SVM0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDNCdmMzUmpjM010Ykc5aFpHVnlMMlJwYzNRdlkycHpMbXB6UHo5eWRXeGxVMlYwV3pGZExuSjFiR1Z6V3pCZExuVnpaVnN5WFNFdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5ellYTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDBoNWNHVnliR2x1YXk1elkzTnpYQ0lwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBJRDBnWTI5dWRHVnVkQzVmWDJWelRXOWtkV3hsSUQ4Z1kyOXVkR1Z1ZEM1a1pXWmhkV3gwSURvZ1kyOXVkR1Z1ZER0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCamIyNTBaVzUwSUQwOVBTQW5jM1J5YVc1bkp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdXMXR0YjJSMWJHVXVhV1FzSUdOdmJuUmxiblFzSUNjblhWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiblpoY2lCdmNIUnBiMjV6SUQwZ2UzMDdYRzVjYm05d2RHbHZibk11YVc1elpYSjBJRDBnWENKb1pXRmtYQ0k3WEc1dmNIUnBiMjV6TG5OcGJtZHNaWFJ2YmlBOUlHWmhiSE5sTzF4dVhHNTJZWElnZFhCa1lYUmxJRDBnWVhCcEtHTnZiblJsYm5Rc0lHOXdkR2x2Ym5NcE8xeHVYRzVjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamIyNTBaVzUwTG14dlkyRnNjeUI4ZkNCN2ZUc2lYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2VsZW1lbnQvSHlwZXJsaW5rLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiXFxuXFxudmFyIGlzT2xkSUUgPSBmdW5jdGlvbiBpc09sZElFKCkge1xcbiAgdmFyIG1lbW87XFxuICByZXR1cm4gZnVuY3Rpb24gbWVtb3JpemUoKSB7XFxuICAgIGlmICh0eXBlb2YgbWVtbyA9PT0gJ3VuZGVmaW5lZCcpIHtcXG4gICAgICAvLyBUZXN0IGZvciBJRSA8PSA5IGFzIHByb3Bvc2VkIGJ5IEJyb3dzZXJoYWNrc1xcbiAgICAgIC8vIEBzZWUgaHR0cDovL2Jyb3dzZXJoYWNrcy5jb20vI2hhY2stZTcxZDg2OTJmNjUzMzQxNzNmZWU3MTVjMjIyY2I4MDVcXG4gICAgICAvLyBUZXN0cyBmb3IgZXhpc3RlbmNlIG9mIHN0YW5kYXJkIGdsb2JhbHMgaXMgdG8gYWxsb3cgc3R5bGUtbG9hZGVyXFxuICAgICAgLy8gdG8gb3BlcmF0ZSBjb3JyZWN0bHkgaW50byBub24tc3RhbmRhcmQgZW52aXJvbm1lbnRzXFxuICAgICAgLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay1jb250cmliL3N0eWxlLWxvYWRlci9pc3N1ZXMvMTc3XFxuICAgICAgbWVtbyA9IEJvb2xlYW4od2luZG93ICYmIGRvY3VtZW50ICYmIGRvY3VtZW50LmFsbCAmJiAhd2luZG93LmF0b2IpO1xcbiAgICB9XFxuXFxuICAgIHJldHVybiBtZW1vO1xcbiAgfTtcXG59KCk7XFxuXFxudmFyIGdldFRhcmdldCA9IGZ1bmN0aW9uIGdldFRhcmdldCgpIHtcXG4gIHZhciBtZW1vID0ge307XFxuICByZXR1cm4gZnVuY3Rpb24gbWVtb3JpemUodGFyZ2V0KSB7XFxuICAgIGlmICh0eXBlb2YgbWVtb1t0YXJnZXRdID09PSAndW5kZWZpbmVkJykge1xcbiAgICAgIHZhciBzdHlsZVRhcmdldCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGFyZ2V0KTsgLy8gU3BlY2lhbCBjYXNlIHRvIHJldHVybiBoZWFkIG9mIGlmcmFtZSBpbnN0ZWFkIG9mIGlmcmFtZSBpdHNlbGZcXG5cXG4gICAgICBpZiAod2luZG93LkhUTUxJRnJhbWVFbGVtZW50ICYmIHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFjY2VzcyB0byBpZnJhbWUgaXMgYmxvY2tlZFxcbiAgICAgICAgICAvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xcbiAgICAgICAgICBzdHlsZVRhcmdldCA9IHN0eWxlVGFyZ2V0LmNvbnRlbnREb2N1bWVudC5oZWFkO1xcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxcbiAgICAgICAgICBzdHlsZVRhcmdldCA9IG51bGw7XFxuICAgICAgICB9XFxuICAgICAgfVxcblxcbiAgICAgIG1lbW9bdGFyZ2V0XSA9IHN0eWxlVGFyZ2V0O1xcbiAgICB9XFxuXFxuICAgIHJldHVybiBtZW1vW3RhcmdldF07XFxuICB9O1xcbn0oKTtcXG5cXG52YXIgc3R5bGVzSW5Eb20gPSBbXTtcXG5cXG5mdW5jdGlvbiBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKSB7XFxuICB2YXIgcmVzdWx0ID0gLTE7XFxuXFxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc0luRG9tLmxlbmd0aDsgaSsrKSB7XFxuICAgIGlmIChzdHlsZXNJbkRvbVtpXS5pZGVudGlmaWVyID09PSBpZGVudGlmaWVyKSB7XFxuICAgICAgcmVzdWx0ID0gaTtcXG4gICAgICBicmVhaztcXG4gICAgfVxcbiAgfVxcblxcbiAgcmV0dXJuIHJlc3VsdDtcXG59XFxuXFxuZnVuY3Rpb24gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpIHtcXG4gIHZhciBpZENvdW50TWFwID0ge307XFxuICB2YXIgaWRlbnRpZmllcnMgPSBbXTtcXG5cXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV07XFxuICAgIHZhciBpZCA9IG9wdGlvbnMuYmFzZSA/IGl0ZW1bMF0gKyBvcHRpb25zLmJhc2UgOiBpdGVtWzBdO1xcbiAgICB2YXIgY291bnQgPSBpZENvdW50TWFwW2lkXSB8fCAwO1xcbiAgICB2YXIgaWRlbnRpZmllciA9IFxcXCJcXFwiLmNvbmNhdChpZCwgXFxcIiBcXFwiKS5jb25jYXQoY291bnQpO1xcbiAgICBpZENvdW50TWFwW2lkXSA9IGNvdW50ICsgMTtcXG4gICAgdmFyIGluZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XFxuICAgIHZhciBvYmogPSB7XFxuICAgICAgY3NzOiBpdGVtWzFdLFxcbiAgICAgIG1lZGlhOiBpdGVtWzJdLFxcbiAgICAgIHNvdXJjZU1hcDogaXRlbVszXVxcbiAgICB9O1xcblxcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XFxuICAgICAgc3R5bGVzSW5Eb21baW5kZXhdLnJlZmVyZW5jZXMrKztcXG4gICAgICBzdHlsZXNJbkRvbVtpbmRleF0udXBkYXRlcihvYmopO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgIHN0eWxlc0luRG9tLnB1c2goe1xcbiAgICAgICAgaWRlbnRpZmllcjogaWRlbnRpZmllcixcXG4gICAgICAgIHVwZGF0ZXI6IGFkZFN0eWxlKG9iaiwgb3B0aW9ucyksXFxuICAgICAgICByZWZlcmVuY2VzOiAxXFxuICAgICAgfSk7XFxuICAgIH1cXG5cXG4gICAgaWRlbnRpZmllcnMucHVzaChpZGVudGlmaWVyKTtcXG4gIH1cXG5cXG4gIHJldHVybiBpZGVudGlmaWVycztcXG59XFxuXFxuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpIHtcXG4gIHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XFxuICB2YXIgYXR0cmlidXRlcyA9IG9wdGlvbnMuYXR0cmlidXRlcyB8fCB7fTtcXG5cXG4gIGlmICh0eXBlb2YgYXR0cmlidXRlcy5ub25jZSA9PT0gJ3VuZGVmaW5lZCcpIHtcXG4gICAgdmFyIG5vbmNlID0gIHRydWUgPyBfX3dlYnBhY2tfcmVxdWlyZV9fLm5jIDogMDtcXG5cXG4gICAgaWYgKG5vbmNlKSB7XFxuICAgICAgYXR0cmlidXRlcy5ub25jZSA9IG5vbmNlO1xcbiAgICB9XFxuICB9XFxuXFxuICBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcXG4gICAgc3R5bGUuc2V0QXR0cmlidXRlKGtleSwgYXR0cmlidXRlc1trZXldKTtcXG4gIH0pO1xcblxcbiAgaWYgKHR5cGVvZiBvcHRpb25zLmluc2VydCA9PT0gJ2Z1bmN0aW9uJykge1xcbiAgICBvcHRpb25zLmluc2VydChzdHlsZSk7XFxuICB9IGVsc2Uge1xcbiAgICB2YXIgdGFyZ2V0ID0gZ2V0VGFyZ2V0KG9wdGlvbnMuaW5zZXJ0IHx8ICdoZWFkJyk7XFxuXFxuICAgIGlmICghdGFyZ2V0KSB7XFxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxcXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydCcgcGFyYW1ldGVyIGlzIGludmFsaWQuXFxcIik7XFxuICAgIH1cXG5cXG4gICAgdGFyZ2V0LmFwcGVuZENoaWxkKHN0eWxlKTtcXG4gIH1cXG5cXG4gIHJldHVybiBzdHlsZTtcXG59XFxuXFxuZnVuY3Rpb24gcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlKSB7XFxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgaWZcXG4gIGlmIChzdHlsZS5wYXJlbnROb2RlID09PSBudWxsKSB7XFxuICAgIHJldHVybiBmYWxzZTtcXG4gIH1cXG5cXG4gIHN0eWxlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGUpO1xcbn1cXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cXG5cXG5cXG52YXIgcmVwbGFjZVRleHQgPSBmdW5jdGlvbiByZXBsYWNlVGV4dCgpIHtcXG4gIHZhciB0ZXh0U3RvcmUgPSBbXTtcXG4gIHJldHVybiBmdW5jdGlvbiByZXBsYWNlKGluZGV4LCByZXBsYWNlbWVudCkge1xcbiAgICB0ZXh0U3RvcmVbaW5kZXhdID0gcmVwbGFjZW1lbnQ7XFxuICAgIHJldHVybiB0ZXh0U3RvcmUuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJ1xcXFxuJyk7XFxuICB9O1xcbn0oKTtcXG5cXG5mdW5jdGlvbiBhcHBseVRvU2luZ2xldG9uVGFnKHN0eWxlLCBpbmRleCwgcmVtb3ZlLCBvYmopIHtcXG4gIHZhciBjc3MgPSByZW1vdmUgPyAnJyA6IG9iai5tZWRpYSA/IFxcXCJAbWVkaWEgXFxcIi5jb25jYXQob2JqLm1lZGlhLCBcXFwiIHtcXFwiKS5jb25jYXQob2JqLmNzcywgXFxcIn1cXFwiKSA6IG9iai5jc3M7IC8vIEZvciBvbGQgSUVcXG5cXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAgKi9cXG5cXG4gIGlmIChzdHlsZS5zdHlsZVNoZWV0KSB7XFxuICAgIHN0eWxlLnN0eWxlU2hlZXQuY3NzVGV4dCA9IHJlcGxhY2VUZXh0KGluZGV4LCBjc3MpO1xcbiAgfSBlbHNlIHtcXG4gICAgdmFyIGNzc05vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpO1xcbiAgICB2YXIgY2hpbGROb2RlcyA9IHN0eWxlLmNoaWxkTm9kZXM7XFxuXFxuICAgIGlmIChjaGlsZE5vZGVzW2luZGV4XSkge1xcbiAgICAgIHN0eWxlLnJlbW92ZUNoaWxkKGNoaWxkTm9kZXNbaW5kZXhdKTtcXG4gICAgfVxcblxcbiAgICBpZiAoY2hpbGROb2Rlcy5sZW5ndGgpIHtcXG4gICAgICBzdHlsZS5pbnNlcnRCZWZvcmUoY3NzTm9kZSwgY2hpbGROb2Rlc1tpbmRleF0pO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgIHN0eWxlLmFwcGVuZENoaWxkKGNzc05vZGUpO1xcbiAgICB9XFxuICB9XFxufVxcblxcbmZ1bmN0aW9uIGFwcGx5VG9UYWcoc3R5bGUsIG9wdGlvbnMsIG9iaikge1xcbiAgdmFyIGNzcyA9IG9iai5jc3M7XFxuICB2YXIgbWVkaWEgPSBvYmoubWVkaWE7XFxuICB2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcXG5cXG4gIGlmIChtZWRpYSkge1xcbiAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoJ21lZGlhJywgbWVkaWEpO1xcbiAgfSBlbHNlIHtcXG4gICAgc3R5bGUucmVtb3ZlQXR0cmlidXRlKCdtZWRpYScpO1xcbiAgfVxcblxcbiAgaWYgKHNvdXJjZU1hcCAmJiB0eXBlb2YgYnRvYSAhPT0gJ3VuZGVmaW5lZCcpIHtcXG4gICAgY3NzICs9IFxcXCJcXFxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsXFxcIi5jb25jYXQoYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKSwgXFxcIiAqL1xcXCIpO1xcbiAgfSAvLyBGb3Igb2xkIElFXFxuXFxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXFxuXFxuXFxuICBpZiAoc3R5bGUuc3R5bGVTaGVldCkge1xcbiAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XFxuICB9IGVsc2Uge1xcbiAgICB3aGlsZSAoc3R5bGUuZmlyc3RDaGlsZCkge1xcbiAgICAgIHN0eWxlLnJlbW92ZUNoaWxkKHN0eWxlLmZpcnN0Q2hpbGQpO1xcbiAgICB9XFxuXFxuICAgIHN0eWxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xcbiAgfVxcbn1cXG5cXG52YXIgc2luZ2xldG9uID0gbnVsbDtcXG52YXIgc2luZ2xldG9uQ291bnRlciA9IDA7XFxuXFxuZnVuY3Rpb24gYWRkU3R5bGUob2JqLCBvcHRpb25zKSB7XFxuICB2YXIgc3R5bGU7XFxuICB2YXIgdXBkYXRlO1xcbiAgdmFyIHJlbW92ZTtcXG5cXG4gIGlmIChvcHRpb25zLnNpbmdsZXRvbikge1xcbiAgICB2YXIgc3R5bGVJbmRleCA9IHNpbmdsZXRvbkNvdW50ZXIrKztcXG4gICAgc3R5bGUgPSBzaW5nbGV0b24gfHwgKHNpbmdsZXRvbiA9IGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKSk7XFxuICAgIHVwZGF0ZSA9IGFwcGx5VG9TaW5nbGV0b25UYWcuYmluZChudWxsLCBzdHlsZSwgc3R5bGVJbmRleCwgZmFsc2UpO1xcbiAgICByZW1vdmUgPSBhcHBseVRvU2luZ2xldG9uVGFnLmJpbmQobnVsbCwgc3R5bGUsIHN0eWxlSW5kZXgsIHRydWUpO1xcbiAgfSBlbHNlIHtcXG4gICAgc3R5bGUgPSBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucyk7XFxuICAgIHVwZGF0ZSA9IGFwcGx5VG9UYWcuYmluZChudWxsLCBzdHlsZSwgb3B0aW9ucyk7XFxuXFxuICAgIHJlbW92ZSA9IGZ1bmN0aW9uIHJlbW92ZSgpIHtcXG4gICAgICByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGUpO1xcbiAgICB9O1xcbiAgfVxcblxcbiAgdXBkYXRlKG9iaik7XFxuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlU3R5bGUobmV3T2JqKSB7XFxuICAgIGlmIChuZXdPYmopIHtcXG4gICAgICBpZiAobmV3T2JqLmNzcyA9PT0gb2JqLmNzcyAmJiBuZXdPYmoubWVkaWEgPT09IG9iai5tZWRpYSAmJiBuZXdPYmouc291cmNlTWFwID09PSBvYmouc291cmNlTWFwKSB7XFxuICAgICAgICByZXR1cm47XFxuICAgICAgfVxcblxcbiAgICAgIHVwZGF0ZShvYmogPSBuZXdPYmopO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgIHJlbW92ZSgpO1xcbiAgICB9XFxuICB9O1xcbn1cXG5cXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChsaXN0LCBvcHRpb25zKSB7XFxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsgLy8gRm9yY2Ugc2luZ2xlLXRhZyBzb2x1dGlvbiBvbiBJRTYtOSwgd2hpY2ggaGFzIGEgaGFyZCBsaW1pdCBvbiB0aGUgIyBvZiA8c3R5bGU+XFxuICAvLyB0YWdzIGl0IHdpbGwgYWxsb3cgb24gYSBwYWdlXFxuXFxuICBpZiAoIW9wdGlvbnMuc2luZ2xldG9uICYmIHR5cGVvZiBvcHRpb25zLnNpbmdsZXRvbiAhPT0gJ2Jvb2xlYW4nKSB7XFxuICAgIG9wdGlvbnMuc2luZ2xldG9uID0gaXNPbGRJRSgpO1xcbiAgfVxcblxcbiAgbGlzdCA9IGxpc3QgfHwgW107XFxuICB2YXIgbGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpO1xcbiAgcmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZShuZXdMaXN0KSB7XFxuICAgIG5ld0xpc3QgPSBuZXdMaXN0IHx8IFtdO1xcblxcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG5ld0xpc3QpICE9PSAnW29iamVjdCBBcnJheV0nKSB7XFxuICAgICAgcmV0dXJuO1xcbiAgICB9XFxuXFxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaSsrKSB7XFxuICAgICAgdmFyIGlkZW50aWZpZXIgPSBsYXN0SWRlbnRpZmllcnNbaV07XFxuICAgICAgdmFyIGluZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XFxuICAgICAgc3R5bGVzSW5Eb21baW5kZXhdLnJlZmVyZW5jZXMtLTtcXG4gICAgfVxcblxcbiAgICB2YXIgbmV3TGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKG5ld0xpc3QsIG9wdGlvbnMpO1xcblxcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgX2krKykge1xcbiAgICAgIHZhciBfaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tfaV07XFxuXFxuICAgICAgdmFyIF9pbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKF9pZGVudGlmaWVyKTtcXG5cXG4gICAgICBpZiAoc3R5bGVzSW5Eb21bX2luZGV4XS5yZWZlcmVuY2VzID09PSAwKSB7XFxuICAgICAgICBzdHlsZXNJbkRvbVtfaW5kZXhdLnVwZGF0ZXIoKTtcXG5cXG4gICAgICAgIHN0eWxlc0luRG9tLnNwbGljZShfaW5kZXgsIDEpO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICBsYXN0SWRlbnRpZmllcnMgPSBuZXdMYXN0SWRlbnRpZmllcnM7XFxuICB9O1xcbn07Ly8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwzTjBlV3hsTFd4dllXUmxjaTlrYVhOMEwzSjFiblJwYldVdmFXNXFaV04wVTNSNWJHVnpTVzUwYjFOMGVXeGxWR0ZuTG1wekxtcHpJaXdpYldGd2NHbHVaM01pT2lKQlFVRmhPenRCUVVWaU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJMRU5CUVVNN08wRkJSVVE3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVN4M1JFRkJkMFE3TzBGQlJYaEVPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTeFZRVUZWTzBGQlExWTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFc1EwRkJRenM3UVVGRlJEczdRVUZGUVR0QlFVTkJPenRCUVVWQkxHdENRVUZyUWl4M1FrRkJkMEk3UVVGRE1VTTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFTeHJRa0ZCYTBJc2FVSkJRV2xDTzBGQlEyNURPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRXNUVUZCVFR0QlFVTk9PMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVDBGQlR6dEJRVU5RT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFTeG5Ra0ZCWjBJc1MwRkJkME1zUjBGQlJ5eHpRa0ZCYVVJc1IwRkJSeXhEUVVGSk96dEJRVVZ1Ump0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRXNSMEZCUnpzN1FVRkZTRHRCUVVOQk8wRkJRMEVzU1VGQlNUdEJRVU5LT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3T3p0QlFVZEJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEVOQlFVTTdPMEZCUlVRN1FVRkRRU3h4UlVGQmNVVXNjVUpCUVhGQ0xHTkJRV003TzBGQlJYaEhPenRCUVVWQk8wRkJRMEU3UVVGRFFTeEpRVUZKTzBGQlEwbzdRVUZEUVRzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJMRTFCUVUwN1FVRkRUanRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRXNTVUZCU1R0QlFVTktPMEZCUTBFN08wRkJSVUU3UVVGRFFTeDVSRUZCZVVRN1FVRkRla1FzU1VGQlNUczdRVUZGU2pzN08wRkJSMEU3UVVGRFFUdEJRVU5CTEVsQlFVazdRVUZEU2p0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEVsQlFVazdRVUZEU2p0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJMRTFCUVUwN1FVRkRUanRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJMREpDUVVFeVFqdEJRVU16UWpzN1FVRkZRVHRCUVVOQk8wRkJRMEU3TzBGQlJVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CT3p0QlFVVkJMRzlDUVVGdlFpdzBRa0ZCTkVJN1FVRkRhRVE3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUlVFN08wRkJSVUVzY1VKQlFYRkNMRFpDUVVFMlFqdEJRVU5zUkRzN1FVRkZRVHM3UVVGRlFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CTzBGQlEwRWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2TGk0dmJtOWtaVjl0YjJSMWJHVnpMM04wZVd4bExXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZhVzVxWldOMFUzUjViR1Z6U1c1MGIxTjBlV3hsVkdGbkxtcHpQekpqWmpBaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lYQ0oxYzJVZ2MzUnlhV04wWENJN1hHNWNiblpoY2lCcGMwOXNaRWxGSUQwZ1puVnVZM1JwYjI0Z2FYTlBiR1JKUlNncElIdGNiaUFnZG1GeUlHMWxiVzg3WEc0Z0lISmxkSFZ5YmlCbWRXNWpkR2x2YmlCdFpXMXZjbWw2WlNncElIdGNiaUFnSUNCcFppQW9kSGx3Wlc5bUlHMWxiVzhnUFQwOUlDZDFibVJsWm1sdVpXUW5LU0I3WEc0Z0lDQWdJQ0F2THlCVVpYTjBJR1p2Y2lCSlJTQThQU0E1SUdGeklIQnliM0J2YzJWa0lHSjVJRUp5YjNkelpYSm9ZV05yYzF4dUlDQWdJQ0FnTHk4Z1FITmxaU0JvZEhSd09pOHZZbkp2ZDNObGNtaGhZMnR6TG1OdmJTOGphR0ZqYXkxbE56RmtPRFk1TW1ZMk5UTXpOREUzTTJabFpUY3hOV015TWpKallqZ3dOVnh1SUNBZ0lDQWdMeThnVkdWemRITWdabTl5SUdWNGFYTjBaVzVqWlNCdlppQnpkR0Z1WkdGeVpDQm5iRzlpWVd4eklHbHpJSFJ2SUdGc2JHOTNJSE4wZVd4bExXeHZZV1JsY2x4dUlDQWdJQ0FnTHk4Z2RHOGdiM0JsY21GMFpTQmpiM0p5WldOMGJIa2dhVzUwYnlCdWIyNHRjM1JoYm1SaGNtUWdaVzUyYVhKdmJtMWxiblJ6WEc0Z0lDQWdJQ0F2THlCQWMyVmxJR2gwZEhCek9pOHZaMmwwYUhWaUxtTnZiUzkzWldKd1lXTnJMV052Ym5SeWFXSXZjM1I1YkdVdGJHOWhaR1Z5TDJsemMzVmxjeTh4TnpkY2JpQWdJQ0FnSUcxbGJXOGdQU0JDYjI5c1pXRnVLSGRwYm1SdmR5QW1KaUJrYjJOMWJXVnVkQ0FtSmlCa2IyTjFiV1Z1ZEM1aGJHd2dKaVlnSVhkcGJtUnZkeTVoZEc5aUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnYldWdGJ6dGNiaUFnZlR0Y2JuMG9LVHRjYmx4dWRtRnlJR2RsZEZSaGNtZGxkQ0E5SUdaMWJtTjBhVzl1SUdkbGRGUmhjbWRsZENncElIdGNiaUFnZG1GeUlHMWxiVzhnUFNCN2ZUdGNiaUFnY21WMGRYSnVJR1oxYm1OMGFXOXVJRzFsYlc5eWFYcGxLSFJoY21kbGRDa2dlMXh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdiV1Z0YjF0MFlYSm5aWFJkSUQwOVBTQW5kVzVrWldacGJtVmtKeWtnZTF4dUlDQWdJQ0FnZG1GeUlITjBlV3hsVkdGeVoyVjBJRDBnWkc5amRXMWxiblF1Y1hWbGNubFRaV3hsWTNSdmNpaDBZWEpuWlhRcE95QXZMeUJUY0dWamFXRnNJR05oYzJVZ2RHOGdjbVYwZFhKdUlHaGxZV1FnYjJZZ2FXWnlZVzFsSUdsdWMzUmxZV1FnYjJZZ2FXWnlZVzFsSUdsMGMyVnNabHh1WEc0Z0lDQWdJQ0JwWmlBb2QybHVaRzkzTGtoVVRVeEpSbkpoYldWRmJHVnRaVzUwSUNZbUlITjBlV3hsVkdGeVoyVjBJR2x1YzNSaGJtTmxiMllnZDJsdVpHOTNMa2hVVFV4SlJuSmhiV1ZGYkdWdFpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQWdJQ0FnTHk4Z1ZHaHBjeUIzYVd4c0lIUm9jbTkzSUdGdUlHVjRZMlZ3ZEdsdmJpQnBaaUJoWTJObGMzTWdkRzhnYVdaeVlXMWxJR2x6SUdKc2IyTnJaV1JjYmlBZ0lDQWdJQ0FnSUNBdkx5QmtkV1VnZEc4Z1kzSnZjM010YjNKcFoybHVJSEpsYzNSeWFXTjBhVzl1YzF4dUlDQWdJQ0FnSUNBZ0lITjBlV3hsVkdGeVoyVjBJRDBnYzNSNWJHVlVZWEpuWlhRdVkyOXVkR1Z1ZEVSdlkzVnRaVzUwTG1obFlXUTdYRzRnSUNBZ0lDQWdJSDBnWTJGMFkyZ2dLR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJwYzNSaGJtSjFiQ0JwWjI1dmNtVWdibVY0ZEZ4dUlDQWdJQ0FnSUNBZ0lITjBlV3hsVkdGeVoyVjBJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0J0WlcxdlczUmhjbWRsZEYwZ1BTQnpkSGxzWlZSaGNtZGxkRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2JXVnRiMXQwWVhKblpYUmRPMXh1SUNCOU8xeHVmU2dwTzF4dVhHNTJZWElnYzNSNWJHVnpTVzVFYjIwZ1BTQmJYVHRjYmx4dVpuVnVZM1JwYjI0Z1oyVjBTVzVrWlhoQ2VVbGtaVzUwYVdacFpYSW9hV1JsYm5ScFptbGxjaWtnZTF4dUlDQjJZWElnY21WemRXeDBJRDBnTFRFN1hHNWNiaUFnWm05eUlDaDJZWElnYVNBOUlEQTdJR2tnUENCemRIbHNaWE5KYmtSdmJTNXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJR2xtSUNoemRIbHNaWE5KYmtSdmJWdHBYUzVwWkdWdWRHbG1hV1Z5SUQwOVBTQnBaR1Z1ZEdsbWFXVnlLU0I3WEc0Z0lDQWdJQ0J5WlhOMWJIUWdQU0JwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnYlc5a2RXeGxjMVJ2Ukc5dEtHeHBjM1FzSUc5d2RHbHZibk1wSUh0Y2JpQWdkbUZ5SUdsa1EyOTFiblJOWVhBZ1BTQjdmVHRjYmlBZ2RtRnlJR2xrWlc1MGFXWnBaWEp6SUQwZ1cxMDdYRzVjYmlBZ1ptOXlJQ2gyWVhJZ2FTQTlJREE3SUdrZ1BDQnNhWE4wTG14bGJtZDBhRHNnYVNzcktTQjdYRzRnSUNBZ2RtRnlJR2wwWlcwZ1BTQnNhWE4wVzJsZE8xeHVJQ0FnSUhaaGNpQnBaQ0E5SUc5d2RHbHZibk11WW1GelpTQS9JR2wwWlcxYk1GMGdLeUJ2Y0hScGIyNXpMbUpoYzJVZ09pQnBkR1Z0V3pCZE8xeHVJQ0FnSUhaaGNpQmpiM1Z1ZENBOUlHbGtRMjkxYm5STllYQmJhV1JkSUh4OElEQTdYRzRnSUNBZ2RtRnlJR2xrWlc1MGFXWnBaWElnUFNCY0lsd2lMbU52Ym1OaGRDaHBaQ3dnWENJZ1hDSXBMbU52Ym1OaGRDaGpiM1Z1ZENrN1hHNGdJQ0FnYVdSRGIzVnVkRTFoY0Z0cFpGMGdQU0JqYjNWdWRDQXJJREU3WEc0Z0lDQWdkbUZ5SUdsdVpHVjRJRDBnWjJWMFNXNWtaWGhDZVVsa1pXNTBhV1pwWlhJb2FXUmxiblJwWm1sbGNpazdYRzRnSUNBZ2RtRnlJRzlpYWlBOUlIdGNiaUFnSUNBZ0lHTnpjem9nYVhSbGJWc3hYU3hjYmlBZ0lDQWdJRzFsWkdsaE9pQnBkR1Z0V3pKZExGeHVJQ0FnSUNBZ2MyOTFjbU5sVFdGd09pQnBkR1Z0V3pOZFhHNGdJQ0FnZlR0Y2JseHVJQ0FnSUdsbUlDaHBibVJsZUNBaFBUMGdMVEVwSUh0Y2JpQWdJQ0FnSUhOMGVXeGxjMGx1Ukc5dFcybHVaR1Y0WFM1eVpXWmxjbVZ1WTJWekt5czdYRzRnSUNBZ0lDQnpkSGxzWlhOSmJrUnZiVnRwYm1SbGVGMHVkWEJrWVhSbGNpaHZZbW9wTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQnpkSGxzWlhOSmJrUnZiUzV3ZFhOb0tIdGNiaUFnSUNBZ0lDQWdhV1JsYm5ScFptbGxjam9nYVdSbGJuUnBabWxsY2l4Y2JpQWdJQ0FnSUNBZ2RYQmtZWFJsY2pvZ1lXUmtVM1I1YkdVb2IySnFMQ0J2Y0hScGIyNXpLU3hjYmlBZ0lDQWdJQ0FnY21WbVpYSmxibU5sY3pvZ01WeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXUmxiblJwWm1sbGNuTXVjSFZ6YUNocFpHVnVkR2xtYVdWeUtUdGNiaUFnZlZ4dVhHNGdJSEpsZEhWeWJpQnBaR1Z1ZEdsbWFXVnljenRjYm4xY2JseHVablZ1WTNScGIyNGdhVzV6WlhKMFUzUjViR1ZGYkdWdFpXNTBLRzl3ZEdsdmJuTXBJSHRjYmlBZ2RtRnlJSE4wZVd4bElEMGdaRzlqZFcxbGJuUXVZM0psWVhSbFJXeGxiV1Z1ZENnbmMzUjViR1VuS1R0Y2JpQWdkbUZ5SUdGMGRISnBZblYwWlhNZ1BTQnZjSFJwYjI1ekxtRjBkSEpwWW5WMFpYTWdmSHdnZTMwN1hHNWNiaUFnYVdZZ0tIUjVjR1Z2WmlCaGRIUnlhV0oxZEdWekxtNXZibU5sSUQwOVBTQW5kVzVrWldacGJtVmtKeWtnZTF4dUlDQWdJSFpoY2lCdWIyNWpaU0E5SUhSNWNHVnZaaUJmWDNkbFluQmhZMnRmYm05dVkyVmZYeUFoUFQwZ0ozVnVaR1ZtYVc1bFpDY2dQeUJmWDNkbFluQmhZMnRmYm05dVkyVmZYeUE2SUc1MWJHdzdYRzVjYmlBZ0lDQnBaaUFvYm05dVkyVXBJSHRjYmlBZ0lDQWdJR0YwZEhKcFluVjBaWE11Ym05dVkyVWdQU0J1YjI1alpUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQlBZbXBsWTNRdWEyVjVjeWhoZEhSeWFXSjFkR1Z6S1M1bWIzSkZZV05vS0daMWJtTjBhVzl1SUNoclpYa3BJSHRjYmlBZ0lDQnpkSGxzWlM1elpYUkJkSFJ5YVdKMWRHVW9hMlY1TENCaGRIUnlhV0oxZEdWelcydGxlVjBwTzF4dUlDQjlLVHRjYmx4dUlDQnBaaUFvZEhsd1pXOW1JRzl3ZEdsdmJuTXVhVzV6WlhKMElEMDlQU0FuWm5WdVkzUnBiMjRuS1NCN1hHNGdJQ0FnYjNCMGFXOXVjeTVwYm5ObGNuUW9jM1I1YkdVcE8xeHVJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lIWmhjaUIwWVhKblpYUWdQU0JuWlhSVVlYSm5aWFFvYjNCMGFXOXVjeTVwYm5ObGNuUWdmSHdnSjJobFlXUW5LVHRjYmx4dUlDQWdJR2xtSUNnaGRHRnlaMlYwS1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWENKRGIzVnNaRzRuZENCbWFXNWtJR0VnYzNSNWJHVWdkR0Z5WjJWMExpQlVhR2x6SUhCeWIySmhZbXg1SUcxbFlXNXpJSFJvWVhRZ2RHaGxJSFpoYkhWbElHWnZjaUIwYUdVZ0oybHVjMlZ5ZENjZ2NHRnlZVzFsZEdWeUlHbHpJR2x1ZG1Gc2FXUXVYQ0lwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSFJoY21kbGRDNWhjSEJsYm1SRGFHbHNaQ2h6ZEhsc1pTazdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdjM1I1YkdVN1hHNTlYRzVjYm1aMWJtTjBhVzl1SUhKbGJXOTJaVk4wZVd4bFJXeGxiV1Z1ZENoemRIbHNaU2tnZTF4dUlDQXZMeUJwYzNSaGJtSjFiQ0JwWjI1dmNtVWdhV1pjYmlBZ2FXWWdLSE4wZVd4bExuQmhjbVZ1ZEU1dlpHVWdQVDA5SUc1MWJHd3BJSHRjYmlBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lIMWNibHh1SUNCemRIbHNaUzV3WVhKbGJuUk9iMlJsTG5KbGJXOTJaVU5vYVd4a0tITjBlV3hsS1R0Y2JuMWNiaThxSUdsemRHRnVZblZzSUdsbmJtOXlaU0J1WlhoMElDQXFMMXh1WEc1Y2JuWmhjaUJ5WlhCc1lXTmxWR1Y0ZENBOUlHWjFibU4wYVc5dUlISmxjR3hoWTJWVVpYaDBLQ2tnZTF4dUlDQjJZWElnZEdWNGRGTjBiM0psSUQwZ1cxMDdYRzRnSUhKbGRIVnliaUJtZFc1amRHbHZiaUJ5WlhCc1lXTmxLR2x1WkdWNExDQnlaWEJzWVdObGJXVnVkQ2tnZTF4dUlDQWdJSFJsZUhSVGRHOXlaVnRwYm1SbGVGMGdQU0J5WlhCc1lXTmxiV1Z1ZER0Y2JpQWdJQ0J5WlhSMWNtNGdkR1Y0ZEZOMGIzSmxMbVpwYkhSbGNpaENiMjlzWldGdUtTNXFiMmx1S0NkY1hHNG5LVHRjYmlBZ2ZUdGNibjBvS1R0Y2JseHVablZ1WTNScGIyNGdZWEJ3YkhsVWIxTnBibWRzWlhSdmJsUmhaeWh6ZEhsc1pTd2dhVzVrWlhnc0lISmxiVzkyWlN3Z2IySnFLU0I3WEc0Z0lIWmhjaUJqYzNNZ1BTQnlaVzF2ZG1VZ1B5QW5KeUE2SUc5aWFpNXRaV1JwWVNBL0lGd2lRRzFsWkdsaElGd2lMbU52Ym1OaGRDaHZZbW91YldWa2FXRXNJRndpSUh0Y0lpa3VZMjl1WTJGMEtHOWlhaTVqYzNNc0lGd2lmVndpS1NBNklHOWlhaTVqYzNNN0lDOHZJRVp2Y2lCdmJHUWdTVVZjYmx4dUlDQXZLaUJwYzNSaGJtSjFiQ0JwWjI1dmNtVWdhV1lnSUNvdlhHNWNiaUFnYVdZZ0tITjBlV3hsTG5OMGVXeGxVMmhsWlhRcElIdGNiaUFnSUNCemRIbHNaUzV6ZEhsc1pWTm9aV1YwTG1OemMxUmxlSFFnUFNCeVpYQnNZV05sVkdWNGRDaHBibVJsZUN3Z1kzTnpLVHRjYmlBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0IyWVhJZ1kzTnpUbTlrWlNBOUlHUnZZM1Z0Wlc1MExtTnlaV0YwWlZSbGVIUk9iMlJsS0dOemN5azdYRzRnSUNBZ2RtRnlJR05vYVd4a1RtOWtaWE1nUFNCemRIbHNaUzVqYUdsc1pFNXZaR1Z6TzF4dVhHNGdJQ0FnYVdZZ0tHTm9hV3hrVG05a1pYTmJhVzVrWlhoZEtTQjdYRzRnSUNBZ0lDQnpkSGxzWlM1eVpXMXZkbVZEYUdsc1pDaGphR2xzWkU1dlpHVnpXMmx1WkdWNFhTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLR05vYVd4a1RtOWtaWE11YkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0J6ZEhsc1pTNXBibk5sY25SQ1pXWnZjbVVvWTNOelRtOWtaU3dnWTJocGJHUk9iMlJsYzF0cGJtUmxlRjBwTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQnpkSGxzWlM1aGNIQmxibVJEYUdsc1pDaGpjM05PYjJSbEtUdGNiaUFnSUNCOVhHNGdJSDFjYm4xY2JseHVablZ1WTNScGIyNGdZWEJ3YkhsVWIxUmhaeWh6ZEhsc1pTd2diM0IwYVc5dWN5d2diMkpxS1NCN1hHNGdJSFpoY2lCamMzTWdQU0J2WW1vdVkzTnpPMXh1SUNCMllYSWdiV1ZrYVdFZ1BTQnZZbW91YldWa2FXRTdYRzRnSUhaaGNpQnpiM1Z5WTJWTllYQWdQU0J2WW1vdWMyOTFjbU5sVFdGd08xeHVYRzRnSUdsbUlDaHRaV1JwWVNrZ2UxeHVJQ0FnSUhOMGVXeGxMbk5sZEVGMGRISnBZblYwWlNnbmJXVmthV0VuTENCdFpXUnBZU2s3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnYzNSNWJHVXVjbVZ0YjNabFFYUjBjbWxpZFhSbEtDZHRaV1JwWVNjcE8xeHVJQ0I5WEc1Y2JpQWdhV1lnS0hOdmRYSmpaVTFoY0NBbUppQjBlWEJsYjJZZ1luUnZZU0FoUFQwZ0ozVnVaR1ZtYVc1bFpDY3BJSHRjYmlBZ0lDQmpjM01nS3owZ1hDSmNYRzR2S2lNZ2MyOTFjbU5sVFdGd2NHbHVaMVZTVEQxa1lYUmhPbUZ3Y0d4cFkyRjBhVzl1TDJwemIyNDdZbUZ6WlRZMExGd2lMbU52Ym1OaGRDaGlkRzloS0hWdVpYTmpZWEJsS0dWdVkyOWtaVlZTU1VOdmJYQnZibVZ1ZENoS1UwOU9Mbk4wY21sdVoybG1lU2h6YjNWeVkyVk5ZWEFwS1NrcExDQmNJaUFxTDF3aUtUdGNiaUFnZlNBdkx5QkdiM0lnYjJ4a0lFbEZYRzVjYmlBZ0x5b2dhWE4wWVc1aWRXd2dhV2R1YjNKbElHbG1JQ0FxTDF4dVhHNWNiaUFnYVdZZ0tITjBlV3hsTG5OMGVXeGxVMmhsWlhRcElIdGNiaUFnSUNCemRIbHNaUzV6ZEhsc1pWTm9aV1YwTG1OemMxUmxlSFFnUFNCamMzTTdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdkMmhwYkdVZ0tITjBlV3hsTG1acGNuTjBRMmhwYkdRcElIdGNiaUFnSUNBZ0lITjBlV3hsTG5KbGJXOTJaVU5vYVd4a0tITjBlV3hsTG1acGNuTjBRMmhwYkdRcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhOMGVXeGxMbUZ3Y0dWdVpFTm9hV3hrS0dSdlkzVnRaVzUwTG1OeVpXRjBaVlJsZUhST2IyUmxLR056Y3lrcE8xeHVJQ0I5WEc1OVhHNWNiblpoY2lCemFXNW5iR1YwYjI0Z1BTQnVkV3hzTzF4dWRtRnlJSE5wYm1kc1pYUnZia052ZFc1MFpYSWdQU0F3TzF4dVhHNW1kVzVqZEdsdmJpQmhaR1JUZEhsc1pTaHZZbW9zSUc5d2RHbHZibk1wSUh0Y2JpQWdkbUZ5SUhOMGVXeGxPMXh1SUNCMllYSWdkWEJrWVhSbE8xeHVJQ0IyWVhJZ2NtVnRiM1psTzF4dVhHNGdJR2xtSUNodmNIUnBiMjV6TG5OcGJtZHNaWFJ2YmlrZ2UxeHVJQ0FnSUhaaGNpQnpkSGxzWlVsdVpHVjRJRDBnYzJsdVoyeGxkRzl1UTI5MWJuUmxjaXNyTzF4dUlDQWdJSE4wZVd4bElEMGdjMmx1WjJ4bGRHOXVJSHg4SUNoemFXNW5iR1YwYjI0Z1BTQnBibk5sY25SVGRIbHNaVVZzWlcxbGJuUW9iM0IwYVc5dWN5a3BPMXh1SUNBZ0lIVndaR0YwWlNBOUlHRndjR3g1Vkc5VGFXNW5iR1YwYjI1VVlXY3VZbWx1WkNodWRXeHNMQ0J6ZEhsc1pTd2djM1I1YkdWSmJtUmxlQ3dnWm1Gc2MyVXBPMXh1SUNBZ0lISmxiVzkyWlNBOUlHRndjR3g1Vkc5VGFXNW5iR1YwYjI1VVlXY3VZbWx1WkNodWRXeHNMQ0J6ZEhsc1pTd2djM1I1YkdWSmJtUmxlQ3dnZEhKMVpTazdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdjM1I1YkdVZ1BTQnBibk5sY25SVGRIbHNaVVZzWlcxbGJuUW9iM0IwYVc5dWN5azdYRzRnSUNBZ2RYQmtZWFJsSUQwZ1lYQndiSGxVYjFSaFp5NWlhVzVrS0c1MWJHd3NJSE4wZVd4bExDQnZjSFJwYjI1ektUdGNibHh1SUNBZ0lISmxiVzkyWlNBOUlHWjFibU4wYVc5dUlISmxiVzkyWlNncElIdGNiaUFnSUNBZ0lISmxiVzkyWlZOMGVXeGxSV3hsYldWdWRDaHpkSGxzWlNrN1hHNGdJQ0FnZlR0Y2JpQWdmVnh1WEc0Z0lIVndaR0YwWlNodlltb3BPMXh1SUNCeVpYUjFjbTRnWm5WdVkzUnBiMjRnZFhCa1lYUmxVM1I1YkdVb2JtVjNUMkpxS1NCN1hHNGdJQ0FnYVdZZ0tHNWxkMDlpYWlrZ2UxeHVJQ0FnSUNBZ2FXWWdLRzVsZDA5aWFpNWpjM01nUFQwOUlHOWlhaTVqYzNNZ0ppWWdibVYzVDJKcUxtMWxaR2xoSUQwOVBTQnZZbW91YldWa2FXRWdKaVlnYm1WM1QySnFMbk52ZFhKalpVMWhjQ0E5UFQwZ2IySnFMbk52ZFhKalpVMWhjQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUhWd1pHRjBaU2h2WW1vZ1BTQnVaWGRQWW1vcE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0J5WlcxdmRtVW9LVHRjYmlBZ0lDQjlYRzRnSUgwN1hHNTlYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnWm5WdVkzUnBiMjRnS0d4cGMzUXNJRzl3ZEdsdmJuTXBJSHRjYmlBZ2IzQjBhVzl1Y3lBOUlHOXdkR2x2Ym5NZ2ZId2dlMzA3SUM4dklFWnZjbU5sSUhOcGJtZHNaUzEwWVdjZ2MyOXNkWFJwYjI0Z2IyNGdTVVUyTFRrc0lIZG9hV05vSUdoaGN5QmhJR2hoY21RZ2JHbHRhWFFnYjI0Z2RHaGxJQ01nYjJZZ1BITjBlV3hsUGx4dUlDQXZMeUIwWVdkeklHbDBJSGRwYkd3Z1lXeHNiM2NnYjI0Z1lTQndZV2RsWEc1Y2JpQWdhV1lnS0NGdmNIUnBiMjV6TG5OcGJtZHNaWFJ2YmlBbUppQjBlWEJsYjJZZ2IzQjBhVzl1Y3k1emFXNW5iR1YwYjI0Z0lUMDlJQ2RpYjI5c1pXRnVKeWtnZTF4dUlDQWdJRzl3ZEdsdmJuTXVjMmx1WjJ4bGRHOXVJRDBnYVhOUGJHUkpSU2dwTzF4dUlDQjlYRzVjYmlBZ2JHbHpkQ0E5SUd4cGMzUWdmSHdnVzEwN1hHNGdJSFpoY2lCc1lYTjBTV1JsYm5ScFptbGxjbk1nUFNCdGIyUjFiR1Z6Vkc5RWIyMG9iR2x6ZEN3Z2IzQjBhVzl1Y3lrN1hHNGdJSEpsZEhWeWJpQm1kVzVqZEdsdmJpQjFjR1JoZEdVb2JtVjNUR2x6ZENrZ2UxeHVJQ0FnSUc1bGQweHBjM1FnUFNCdVpYZE1hWE4wSUh4OElGdGRPMXh1WEc0Z0lDQWdhV1lnS0U5aWFtVmpkQzV3Y205MGIzUjVjR1V1ZEc5VGRISnBibWN1WTJGc2JDaHVaWGRNYVhOMEtTQWhQVDBnSjF0dlltcGxZM1FnUVhKeVlYbGRKeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHWnZjaUFvZG1GeUlHa2dQU0F3T3lCcElEd2diR0Z6ZEVsa1pXNTBhV1pwWlhKekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0IyWVhJZ2FXUmxiblJwWm1sbGNpQTlJR3hoYzNSSlpHVnVkR2xtYVdWeWMxdHBYVHRjYmlBZ0lDQWdJSFpoY2lCcGJtUmxlQ0E5SUdkbGRFbHVaR1Y0UW5sSlpHVnVkR2xtYVdWeUtHbGtaVzUwYVdacFpYSXBPMXh1SUNBZ0lDQWdjM1I1YkdWelNXNUViMjFiYVc1a1pYaGRMbkpsWm1WeVpXNWpaWE10TFR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IyWVhJZ2JtVjNUR0Z6ZEVsa1pXNTBhV1pwWlhKeklEMGdiVzlrZFd4bGMxUnZSRzl0S0c1bGQweHBjM1FzSUc5d2RHbHZibk1wTzF4dVhHNGdJQ0FnWm05eUlDaDJZWElnWDJrZ1BTQXdPeUJmYVNBOElHeGhjM1JKWkdWdWRHbG1hV1Z5Y3k1c1pXNW5kR2c3SUY5cEt5c3BJSHRjYmlBZ0lDQWdJSFpoY2lCZmFXUmxiblJwWm1sbGNpQTlJR3hoYzNSSlpHVnVkR2xtYVdWeWMxdGZhVjA3WEc1Y2JpQWdJQ0FnSUhaaGNpQmZhVzVrWlhnZ1BTQm5aWFJKYm1SbGVFSjVTV1JsYm5ScFptbGxjaWhmYVdSbGJuUnBabWxsY2lrN1hHNWNiaUFnSUNBZ0lHbG1JQ2h6ZEhsc1pYTkpia1J2YlZ0ZmFXNWtaWGhkTG5KbFptVnlaVzVqWlhNZ1BUMDlJREFwSUh0Y2JpQWdJQ0FnSUNBZ2MzUjViR1Z6U1c1RWIyMWJYMmx1WkdWNFhTNTFjR1JoZEdWeUtDazdYRzVjYmlBZ0lDQWdJQ0FnYzNSNWJHVnpTVzVFYjIwdWMzQnNhV05sS0Y5cGJtUmxlQ3dnTVNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnYkdGemRFbGtaVzUwYVdacFpYSnpJRDBnYm1WM1RHRnpkRWxrWlc1MGFXWnBaWEp6TzF4dUlDQjlPMXh1ZlRzaVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9sb2NhbGVzIGxhenkgcmVjdXJzaXZlIF5cXFxcLlxcXFwvLipcXFxcLmpzb24kXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2xvY2FsZXMvIGxhenkgXlxcLlxcLy4qXFwuanNvbiQgY2h1bmtOYW1lOiBpMThuLVtyZXF1ZXN0XSBuYW1lc3BhY2Ugb2JqZWN0ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG52YXIgbWFwID0ge1xuXHRcIi4vYXItU0EuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2FyLVNBLmpzb25cIixcblx0XHRcImkxOG4tYXItU0EtanNvblwiXG5cdF0sXG5cdFwiLi9iZy1CRy5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvYmctQkcuanNvblwiLFxuXHRcdFwiaTE4bi1iZy1CRy1qc29uXCJcblx0XSxcblx0XCIuL2JuLUJELmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9ibi1CRC5qc29uXCIsXG5cdFx0XCJpMThuLWJuLUJELWpzb25cIlxuXHRdLFxuXHRcIi4vY2EtRVMuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2NhLUVTLmpzb25cIixcblx0XHRcImkxOG4tY2EtRVMtanNvblwiXG5cdF0sXG5cdFwiLi9jcy1DWi5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvY3MtQ1ouanNvblwiLFxuXHRcdFwiaTE4bi1jcy1DWi1qc29uXCJcblx0XSxcblx0XCIuL2RhLURLLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9kYS1ESy5qc29uXCIsXG5cdFx0XCJpMThuLWRhLURLLWpzb25cIlxuXHRdLFxuXHRcIi4vZGUtREUuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2RlLURFLmpzb25cIixcblx0XHRcImkxOG4tZGUtREUtanNvblwiXG5cdF0sXG5cdFwiLi9lbC1HUi5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvZWwtR1IuanNvblwiLFxuXHRcdFwiaTE4bi1lbC1HUi1qc29uXCJcblx0XSxcblx0XCIuL2VuLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9lbi5qc29uXCJcblx0XSxcblx0XCIuL2VzLUVTLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9lcy1FUy5qc29uXCIsXG5cdFx0XCJpMThuLWVzLUVTLWpzb25cIlxuXHRdLFxuXHRcIi4vZXUtRVMuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2V1LUVTLmpzb25cIixcblx0XHRcImkxOG4tZXUtRVMtanNvblwiXG5cdF0sXG5cdFwiLi9mYS1JUi5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvZmEtSVIuanNvblwiLFxuXHRcdFwiaTE4bi1mYS1JUi1qc29uXCJcblx0XSxcblx0XCIuL2ZpLUZJLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9maS1GSS5qc29uXCIsXG5cdFx0XCJpMThuLWZpLUZJLWpzb25cIlxuXHRdLFxuXHRcIi4vZnItRlIuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2ZyLUZSLmpzb25cIixcblx0XHRcImkxOG4tZnItRlItanNvblwiXG5cdF0sXG5cdFwiLi9oZS1JTC5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvaGUtSUwuanNvblwiLFxuXHRcdFwiaTE4bi1oZS1JTC1qc29uXCJcblx0XSxcblx0XCIuL2hpLUlOLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9oaS1JTi5qc29uXCIsXG5cdFx0XCJpMThuLWhpLUlOLWpzb25cIlxuXHRdLFxuXHRcIi4vaHUtSFUuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2h1LUhVLmpzb25cIixcblx0XHRcImkxOG4taHUtSFUtanNvblwiXG5cdF0sXG5cdFwiLi9pZC1JRC5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvaWQtSUQuanNvblwiLFxuXHRcdFwiaTE4bi1pZC1JRC1qc29uXCJcblx0XSxcblx0XCIuL2l0LUlULmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9pdC1JVC5qc29uXCIsXG5cdFx0XCJpMThuLWl0LUlULWpzb25cIlxuXHRdLFxuXHRcIi4vamEtSlAuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2phLUpQLmpzb25cIixcblx0XHRcImkxOG4tamEtSlAtanNvblwiXG5cdF0sXG5cdFwiLi9rYWItS0FCLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9rYWItS0FCLmpzb25cIixcblx0XHRcImkxOG4ta2FiLUtBQi1qc29uXCJcblx0XSxcblx0XCIuL2trLUtaLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9ray1LWi5qc29uXCIsXG5cdFx0XCJpMThuLWtrLUtaLWpzb25cIlxuXHRdLFxuXHRcIi4va28tS1IuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2tvLUtSLmpzb25cIixcblx0XHRcImkxOG4ta28tS1ItanNvblwiXG5cdF0sXG5cdFwiLi9sdC1MVC5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvbHQtTFQuanNvblwiLFxuXHRcdFwiaTE4bi1sdC1MVC1qc29uXCJcblx0XSxcblx0XCIuL2x2LUxWLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9sdi1MVi5qc29uXCIsXG5cdFx0XCJpMThuLWx2LUxWLWpzb25cIlxuXHRdLFxuXHRcIi4vbXktTU0uanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL215LU1NLmpzb25cIixcblx0XHRcImkxOG4tbXktTU0tanNvblwiXG5cdF0sXG5cdFwiLi9uYi1OTy5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvbmItTk8uanNvblwiLFxuXHRcdFwiaTE4bi1uYi1OTy1qc29uXCJcblx0XSxcblx0XCIuL25sLU5MLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9ubC1OTC5qc29uXCIsXG5cdFx0XCJpMThuLW5sLU5MLWpzb25cIlxuXHRdLFxuXHRcIi4vbm4tTk8uanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL25uLU5PLmpzb25cIixcblx0XHRcImkxOG4tbm4tTk8tanNvblwiXG5cdF0sXG5cdFwiLi9vYy1GUi5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvb2MtRlIuanNvblwiLFxuXHRcdFwiaTE4bi1vYy1GUi1qc29uXCJcblx0XSxcblx0XCIuL3BhLUlOLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9wYS1JTi5qc29uXCIsXG5cdFx0XCJpMThuLXBhLUlOLWpzb25cIlxuXHRdLFxuXHRcIi4vcGVyY2VudGFnZXMuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL3BlcmNlbnRhZ2VzLmpzb25cIlxuXHRdLFxuXHRcIi4vcGwtUEwuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL3BsLVBMLmpzb25cIixcblx0XHRcImkxOG4tcGwtUEwtanNvblwiXG5cdF0sXG5cdFwiLi9wdC1CUi5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvcHQtQlIuanNvblwiLFxuXHRcdFwiaTE4bi1wdC1CUi1qc29uXCJcblx0XSxcblx0XCIuL3B0LVBULmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9wdC1QVC5qc29uXCIsXG5cdFx0XCJpMThuLXB0LVBULWpzb25cIlxuXHRdLFxuXHRcIi4vcm8tUk8uanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL3JvLVJPLmpzb25cIixcblx0XHRcImkxOG4tcm8tUk8tanNvblwiXG5cdF0sXG5cdFwiLi9ydS1SVS5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvcnUtUlUuanNvblwiLFxuXHRcdFwiaTE4bi1ydS1SVS1qc29uXCJcblx0XSxcblx0XCIuL3NpLUxLLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9zaS1MSy5qc29uXCIsXG5cdFx0XCJpMThuLXNpLUxLLWpzb25cIlxuXHRdLFxuXHRcIi4vc2stU0suanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL3NrLVNLLmpzb25cIixcblx0XHRcImkxOG4tc2stU0stanNvblwiXG5cdF0sXG5cdFwiLi9zdi1TRS5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvc3YtU0UuanNvblwiLFxuXHRcdFwiaTE4bi1zdi1TRS1qc29uXCJcblx0XSxcblx0XCIuL3RhLUlOLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy90YS1JTi5qc29uXCIsXG5cdFx0XCJpMThuLXRhLUlOLWpzb25cIlxuXHRdLFxuXHRcIi4vdHItVFIuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL3RyLVRSLmpzb25cIixcblx0XHRcImkxOG4tdHItVFItanNvblwiXG5cdF0sXG5cdFwiLi91ay1VQS5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvdWstVUEuanNvblwiLFxuXHRcdFwiaTE4bi11ay1VQS1qc29uXCJcblx0XSxcblx0XCIuL3poLUNOLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy96aC1DTi5qc29uXCIsXG5cdFx0XCJpMThuLXpoLUNOLWpzb25cIlxuXHRdLFxuXHRcIi4vemgtSEsuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL3poLUhLLmpzb25cIixcblx0XHRcImkxOG4temgtSEstanNvblwiXG5cdF0sXG5cdFwiLi96aC1UVy5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvemgtVFcuanNvblwiLFxuXHRcdFwiaTE4bi16aC1UVy1qc29uXCJcblx0XVxufTtcbmZ1bmN0aW9uIHdlYnBhY2tBc3luY0NvbnRleHQocmVxKSB7XG5cdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8obWFwLCByZXEpKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuXHRcdFx0dmFyIGUgPSBuZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiICsgcmVxICsgXCInXCIpO1xuXHRcdFx0ZS5jb2RlID0gJ01PRFVMRV9OT1RfRk9VTkQnO1xuXHRcdFx0dGhyb3cgZTtcblx0XHR9KTtcblx0fVxuXG5cdHZhciBpZHMgPSBtYXBbcmVxXSwgaWQgPSBpZHNbMF07XG5cdHJldHVybiBQcm9taXNlLmFsbChpZHMuc2xpY2UoMSkubWFwKF9fd2VicGFja19yZXF1aXJlX18uZSkpLnRoZW4oKCkgPT4ge1xuXHRcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLnQoaWQsIDMgfCAxNik7XG5cdH0pO1xufVxud2VicGFja0FzeW5jQ29udGV4dC5rZXlzID0gKCkgPT4gKE9iamVjdC5rZXlzKG1hcCkpO1xud2VicGFja0FzeW5jQ29udGV4dC5pZCA9IFwiLi4vLi4vbG9jYWxlcyBsYXp5IHJlY3Vyc2l2ZSBeXFxcXC5cXFxcLy4qXFxcXC5qc29uJFwiO1xubW9kdWxlLmV4cG9ydHMgPSB3ZWJwYWNrQXN5bmNDb250ZXh0O1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9wdWJsaWMvZm9udHMuY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vcHVibGljL2ZvbnRzLmNzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NyY19wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zcmMvcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc3JjX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfc3JjX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zcmNfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zcmMvcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NyY19wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfc3JjX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NyY19wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9nZXRVcmxfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NyYy9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2dldFVybC5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc3JjX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2dldFVybF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9zcmNfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfZ2V0VXJsX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18pO1xcbi8vIEltcG9ydHNcXG5cXG5cXG5cXG52YXIgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18gPSBuZXcgVVJMKC8qIGFzc2V0IGltcG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBWaXJnaWwud29mZjIgKi8gXFxcIi4uLy4uLy4uL3B1YmxpYy9WaXJnaWwud29mZjJcXFwiKSwgX193ZWJwYWNrX3JlcXVpcmVfXy5iKTtcXG52YXIgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzFfX18gPSBuZXcgVVJMKC8qIGFzc2V0IGltcG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBDYXNjYWRpYS53b2ZmMiAqLyBcXFwiLi4vLi4vLi4vcHVibGljL0Nhc2NhZGlhLndvZmYyXFxcIiksIF9fd2VicGFja19yZXF1aXJlX18uYik7XFxudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX3NyY19wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9zcmNfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQoKSkpO1xcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fID0gX3NyY19wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9nZXRVcmxfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX19kZWZhdWx0KCkoX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18pO1xcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fID0gX3NyY19wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9nZXRVcmxfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX19kZWZhdWx0KCkoX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzFfX18pO1xcbi8vIE1vZHVsZVxcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXFxcIi8qIGh0dHA6Ly93d3cuZWFnbGVmb250cy5jb20vZmctdmlyZ2lsLXR0Zi0xMzEyNDkuaHRtICovXFxcXG5AZm9udC1mYWNlIHtcXFxcbiAgZm9udC1mYW1pbHk6IFxcXFxcXFwiVmlyZ2lsXFxcXFxcXCI7XFxcXG4gIHNyYzogdXJsKFxcXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fICsgXFxcIik7XFxcXG4gIGZvbnQtZGlzcGxheTogc3dhcDtcXFxcbn1cXFxcbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvY2FzY2FkaWEtY29kZSAqL1xcXFxuQGZvbnQtZmFjZSB7XFxcXG4gIGZvbnQtZmFtaWx5OiBcXFxcXFxcIkNhc2NhZGlhXFxcXFxcXCI7XFxcXG4gIHNyYzogdXJsKFxcXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fICsgXFxcIik7XFxcXG4gIGZvbnQtZGlzcGxheTogc3dhcDtcXFxcbn1cXFwiLCBcXFwiXFxcIix7XFxcInZlcnNpb25cXFwiOjMsXFxcInNvdXJjZXNcXFwiOltcXFwid2VicGFjazovLy4vLi4vLi4vLi4vcHVibGljL2ZvbnRzLmNzc1xcXCJdLFxcXCJuYW1lc1xcXCI6W10sXFxcIm1hcHBpbmdzXFxcIjpcXFwiQUFBQSx1REFBQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSw0Q0FBQTtFQUNBLGtCQUFBO0FBQ0Y7QUFFQSwrQ0FBQTtBQUNBO0VBQ0UsdUJBQUE7RUFDQSw0Q0FBQTtFQUNBLGtCQUFBO0FBQUZcXFwiLFxcXCJzb3VyY2VzQ29udGVudFxcXCI6W1xcXCIvKiBodHRwOi8vd3d3LmVhZ2xlZm9udHMuY29tL2ZnLXZpcmdpbC10dGYtMTMxMjQ5Lmh0bSAqL1xcXFxuQGZvbnQtZmFjZSB7XFxcXG4gIGZvbnQtZmFtaWx5OiBcXFxcXFxcIlZpcmdpbFxcXFxcXFwiO1xcXFxuICBzcmM6IHVybChcXFxcXFxcIlZpcmdpbC53b2ZmMlxcXFxcXFwiKTtcXFxcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xcXFxufVxcXFxuXFxcXG4vKiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L2Nhc2NhZGlhLWNvZGUgKi9cXFxcbkBmb250LWZhY2Uge1xcXFxuICBmb250LWZhbWlseTogXFxcXFxcXCJDYXNjYWRpYVxcXFxcXFwiO1xcXFxuICBzcmM6IHVybChcXFxcXFxcIkNhc2NhZGlhLndvZmYyXFxcXFxcXCIpO1xcXFxuICBmb250LWRpc3BsYXk6IHN3YXA7XFxcXG59XFxcXG5cXFwiXSxcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoX19fQ1NTX0xPQURFUl9FWFBPUlRfX18pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpOXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2TGk0dkxpNHZjSFZpYkdsakwyWnZiblJ6TG1OemN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN08wRkJRVUU3UVVGRGEwazdRVUZEYWtJN1FVRkRUenRCUVVONFNDdzBRMEZCTkVNc2FVaEJRU3RDTzBGQlF6TkZMRFJEUVVFMFF5eHhTRUZCYVVNN1FVRkROMFVzT0VKQlFUaENMREpIUVVFeVFpeERRVUZETEc5SVFVRnhRenRCUVVNdlJpeDVRMEZCZVVNc09FZEJRU3RDTzBGQlEzaEZMSGxEUVVGNVF5dzRSMEZCSzBJN1FVRkRlRVU3UVVGRFFTeG5TRUZCWjBnc05FSkJRVFJDTEhsRVFVRjVSQ3gxUWtGQmRVSXNSMEZCUnl4blJVRkJaMFVzT0VKQlFUaENMSGxFUVVGNVJDeDFRa0ZCZFVJc1IwRkJSeXhQUVVGUExHdEhRVUZyUnl4TFFVRkxMRmRCUVZjc1YwRkJWeXhYUVVGWExFdEJRVXNzVjBGQlZ5eExRVUZMTEZkQlFWY3NWMEZCVnl4WFFVRlhMQ3RHUVVFclJpdzBRa0ZCTkVJc0swSkJRU3RDTEhWQ1FVRjFRaXhIUVVGSExHdEZRVUZyUlN3NFFrRkJPRUlzYVVOQlFXbERMSFZDUVVGMVFpeEhRVUZITEhGQ1FVRnhRanRCUVVONk4wSTdRVUZEUVN4cFJVRkJaU3gxUWtGQmRVSXNSVUZCUXlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOHVMaTl3ZFdKc2FXTXZabTl1ZEhNdVkzTnpQemRqTmpZaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeThnU1cxd2IzSjBjMXh1YVcxd2IzSjBJRjlmWDBOVFUxOU1UMEZFUlZKZlFWQkpYMU5QVlZKRFJVMUJVRjlKVFZCUFVsUmZYMThnWm5KdmJTQmNJaTR1TDNOeVl5OXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2Y25WdWRHbHRaUzl6YjNWeVkyVk5ZWEJ6TG1welhDSTdYRzVwYlhCdmNuUWdYMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZTVTFRVDFKVVgxOWZJR1p5YjIwZ1hDSXVMaTl6Y21NdmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZZWEJwTG1welhDSTdYRzVwYlhCdmNuUWdYMTlmUTFOVFgweFBRVVJGVWw5SFJWUmZWVkpNWDBsTlVFOVNWRjlmWHlCbWNtOXRJRndpTGk0dmMzSmpMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5eWRXNTBhVzFsTDJkbGRGVnliQzVxYzF3aU8xeHVkbUZ5SUY5ZlgwTlRVMTlNVDBGRVJWSmZWVkpNWDBsTlVFOVNWRjh3WDE5ZklEMGdibVYzSUZWU1RDaGNJbFpwY21kcGJDNTNiMlptTWx3aUxDQnBiWEJ2Y25RdWJXVjBZUzUxY213cE8xeHVkbUZ5SUY5ZlgwTlRVMTlNVDBGRVJWSmZWVkpNWDBsTlVFOVNWRjh4WDE5ZklEMGdibVYzSUZWU1RDaGNJa05oYzJOaFpHbGhMbmR2Wm1ZeVhDSXNJR2x0Y0c5eWRDNXRaWFJoTG5WeWJDazdYRzUyWVhJZ1gxOWZRMU5UWDB4UFFVUkZVbDlGV0ZCUFVsUmZYMThnUFNCZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5SlRWQlBVbFJmWDE4b1gxOWZRMU5UWDB4UFFVUkZVbDlCVUVsZlUwOVZVa05GVFVGUVgwbE5VRTlTVkY5Zlh5azdYRzUyWVhJZ1gxOWZRMU5UWDB4UFFVUkZVbDlWVWt4ZlVrVlFURUZEUlUxRlRsUmZNRjlmWHlBOUlGOWZYME5UVTE5TVQwRkVSVkpmUjBWVVgxVlNURjlKVFZCUFVsUmZYMThvWDE5ZlExTlRYMHhQUVVSRlVsOVZVa3hmU1UxUVQxSlVYekJmWDE4cE8xeHVkbUZ5SUY5ZlgwTlRVMTlNVDBGRVJWSmZWVkpNWDFKRlVFeEJRMFZOUlU1VVh6RmZYMThnUFNCZlgxOURVMU5mVEU5QlJFVlNYMGRGVkY5VlVreGZTVTFRVDFKVVgxOWZLRjlmWDBOVFUxOU1UMEZFUlZKZlZWSk1YMGxOVUU5U1ZGOHhYMTlmS1R0Y2JpOHZJRTF2WkhWc1pWeHVYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4dWNIVnphQ2hiYlc5a2RXeGxMbWxrTENCY0lpOHFJR2gwZEhBNkx5OTNkM2N1WldGbmJHVm1iMjUwY3k1amIyMHZabWN0ZG1seVoybHNMWFIwWmkweE16RXlORGt1YUhSdElDb3ZYRnh1UUdadmJuUXRabUZqWlNCN1hGeHVJQ0JtYjI1MExXWmhiV2xzZVRvZ1hGeGNJbFpwY21kcGJGeGNYQ0k3WEZ4dUlDQnpjbU02SUhWeWJDaGNJaUFySUY5ZlgwTlRVMTlNVDBGRVJWSmZWVkpNWDFKRlVFeEJRMFZOUlU1VVh6QmZYMThnS3lCY0lpazdYRnh1SUNCbWIyNTBMV1JwYzNCc1lYazZJSE4zWVhBN1hGeHVmVnhjYmk4cUlHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOXRhV055YjNOdlpuUXZZMkZ6WTJGa2FXRXRZMjlrWlNBcUwxeGNia0JtYjI1MExXWmhZMlVnZTF4Y2JpQWdabTl1ZEMxbVlXMXBiSGs2SUZ4Y1hDSkRZWE5qWVdScFlWeGNYQ0k3WEZ4dUlDQnpjbU02SUhWeWJDaGNJaUFySUY5ZlgwTlRVMTlNVDBGRVJWSmZWVkpNWDFKRlVFeEJRMFZOUlU1VVh6RmZYMThnS3lCY0lpazdYRnh1SUNCbWIyNTBMV1JwYzNCc1lYazZJSE4zWVhBN1hGeHVmVndpTENCY0lsd2lMSHRjSW5abGNuTnBiMjVjSWpvekxGd2ljMjkxY21ObGMxd2lPbHRjSW5kbFluQmhZMnM2THk4dUx5NHVMeTR1THk0dUwzQjFZbXhwWXk5bWIyNTBjeTVqYzNOY0lsMHNYQ0p1WVcxbGMxd2lPbHRkTEZ3aWJXRndjR2x1WjNOY0lqcGNJa0ZCUVVFc2RVUkJRVUU3UVVGRFFUdEZRVU5GTEhGQ1FVRkJPMFZCUTBFc05FTkJRVUU3UlVGRFFTeHJRa0ZCUVR0QlFVTkdPMEZCUlVFc0swTkJRVUU3UVVGRFFUdEZRVU5GTEhWQ1FVRkJPMFZCUTBFc05FTkJRVUU3UlVGRFFTeHJRa0ZCUVR0QlFVRkdYQ0lzWENKemIzVnlZMlZ6UTI5dWRHVnVkRndpT2x0Y0lpOHFJR2gwZEhBNkx5OTNkM2N1WldGbmJHVm1iMjUwY3k1amIyMHZabWN0ZG1seVoybHNMWFIwWmkweE16RXlORGt1YUhSdElDb3ZYRnh1UUdadmJuUXRabUZqWlNCN1hGeHVJQ0JtYjI1MExXWmhiV2xzZVRvZ1hGeGNJbFpwY21kcGJGeGNYQ0k3WEZ4dUlDQnpjbU02SUhWeWJDaGNYRndpVm1seVoybHNMbmR2Wm1ZeVhGeGNJaWs3WEZ4dUlDQm1iMjUwTFdScGMzQnNZWGs2SUhOM1lYQTdYRnh1ZlZ4Y2JseGNiaThxSUdoMGRIQnpPaTh2WjJsMGFIVmlMbU52YlM5dGFXTnliM052Wm5RdlkyRnpZMkZrYVdFdFkyOWtaU0FxTDF4Y2JrQm1iMjUwTFdaaFkyVWdlMXhjYmlBZ1ptOXVkQzFtWVcxcGJIazZJRnhjWENKRFlYTmpZV1JwWVZ4Y1hDSTdYRnh1SUNCemNtTTZJSFZ5YkNoY1hGd2lRMkZ6WTJGa2FXRXVkMjltWmpKY1hGd2lLVHRjWEc0Z0lHWnZiblF0WkdsemNHeGhlVG9nYzNkaGNEdGNYRzU5WEZ4dVhDSmRMRndpYzI5MWNtTmxVbTl2ZEZ3aU9sd2lYQ0o5WFNrN1hHNHZMeUJGZUhCdmNuUnpYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQmZYMTlEVTFOZlRFOUJSRVZTWDBWWVVFOVNWRjlmWHp0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL3B1YmxpYy9mb250cy5jc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvQWN0aXZlRmlsZS5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvQWN0aXZlRmlsZS5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLy8gSW1wb3J0c1xcblxcblxcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxuLy8gTW9kdWxlXFxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcXFwiLmV4Y2FsaWRyYXcgLkFjdGl2ZUZpbGUgLkFjdGl2ZUZpbGVfX2ZpbGVOYW1lIHtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5BY3RpdmVGaWxlIC5BY3RpdmVGaWxlX19maWxlTmFtZSBzcGFuIHtcXFxcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxcXG4gIHdpZHRoOiA5LjNlbTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5BY3RpdmVGaWxlIC5BY3RpdmVGaWxlX19maWxlTmFtZSBzdmcge1xcXFxuICB3aWR0aDogMS4xNWVtO1xcXFxuICBtYXJnaW4taW5saW5lLWVuZDogMC4zZW07XFxcXG4gIHRyYW5zZm9ybTogc2NhbGVZKDAuOSk7XFxcXG59XFxcIiwgXFxcIlxcXCIse1xcXCJ2ZXJzaW9uXFxcIjozLFxcXCJzb3VyY2VzXFxcIjpbXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvQWN0aXZlRmlsZS5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQUVJO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0FBRE47QUFHTTtFQUNFLHVCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7QUFEUjtBQUlNO0VBQ0UsYUFBQTtFQUNBLHdCQUFBO0VBQ0Esc0JBQUE7QUFGUlxcXCIsXFxcInNvdXJjZXNDb250ZW50XFxcIjpbXFxcIi5leGNhbGlkcmF3IHtcXFxcbiAgLkFjdGl2ZUZpbGUge1xcXFxuICAgIC5BY3RpdmVGaWxlX19maWxlTmFtZSB7XFxcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcXFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcblxcXFxuICAgICAgc3BhbiB7XFxcXG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcXFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcXFxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcXFxuICAgICAgICB3aWR0aDogOS4zZW07XFxcXG4gICAgICB9XFxcXG5cXFxcbiAgICAgIHN2ZyB7XFxcXG4gICAgICAgIHdpZHRoOiAxLjE1ZW07XFxcXG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwLjNlbTtcXFxcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoMC45KTtcXFxcbiAgICAgIH1cXFxcbiAgICB9XFxcXG4gIH1cXFxcbn1cXFxcblxcXCJdLFxcXCJzb3VyY2VSb290XFxcIjpcXFwiXFxcIn1dKTtcXG4vLyBFeHBvcnRzXFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9IChfX19DU1NfTE9BREVSX0VYUE9SVF9fXyk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUwyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk5dWIyUmxYMjF2WkhWc1pYTXZjMkZ6Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpNHZMaTR2WTI5dGNHOXVaVzUwY3k5QlkzUnBkbVZHYVd4bExuTmpjM011YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdRVUZCUVR0QlFVTTRTRHRCUVVOcVFqdEJRVU0zUnl3NFFrRkJPRUlzZFVkQlFUSkNMRU5CUVVNc1owaEJRWEZETzBGQlF5OUdPMEZCUTBFc2VVWkJRWGxHTEd0Q1FVRnJRaXgzUWtGQmQwSXNSMEZCUnl4elJFRkJjMFFzTkVKQlFUUkNMSEZDUVVGeFFpeDNRa0ZCZDBJc2FVSkJRV2xDTEVkQlFVY3NjVVJCUVhGRUxHdENRVUZyUWl3MlFrRkJOa0lzTWtKQlFUSkNMRWRCUVVjc1QwRkJUeXh0UjBGQmJVY3NWVUZCVlN4WFFVRlhMRXRCUVVzc1MwRkJTeXhYUVVGWExGZEJRVmNzVjBGQlZ5eFZRVUZWTEV0QlFVc3NTMEZCU3l4VlFVRlZMRmRCUVZjc1YwRkJWeXh6UTBGQmMwTXNhVUpCUVdsQ0xEWkNRVUUyUWl4elFrRkJjMElzTkVKQlFUUkNMR2RDUVVGblFpeHJRMEZCYTBNc01rSkJRVEpDTERoQ1FVRTRRaXgxUWtGQmRVSXNVMEZCVXl4bFFVRmxMSGRDUVVGM1FpeHRRMEZCYlVNc2FVTkJRV2xETEZOQlFWTXNUMEZCVHl4TFFVRkxMRWRCUVVjc2NVSkJRWEZDTzBGQlEyeHBRenRCUVVOQkxHbEZRVUZsTEhWQ1FVRjFRaXhGUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12UVdOMGFYWmxSbWxzWlM1elkzTnpQMlUzTkdVaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeThnU1cxd2IzSjBjMXh1YVcxd2IzSjBJRjlmWDBOVFUxOU1UMEZFUlZKZlFWQkpYMU5QVlZKRFJVMUJVRjlKVFZCUFVsUmZYMThnWm5KdmJTQmNJaTR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMMk56Y3kxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwzTnZkWEpqWlUxaGNITXVhbk5jSWp0Y2JtbHRjRzl5ZENCZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5SlRWQlBVbFJmWDE4Z1puSnZiU0JjSWk0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDJOemN5MXNiMkZrWlhJdlpHbHpkQzl5ZFc1MGFXMWxMMkZ3YVM1cWMxd2lPMXh1ZG1GeUlGOWZYME5UVTE5TVQwRkVSVkpmUlZoUVQxSlVYMTlmSUQwZ1gxOWZRMU5UWDB4UFFVUkZVbDlCVUVsZlNVMVFUMUpVWDE5ZktGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgxTlBWVkpEUlUxQlVGOUpUVkJQVWxSZlgxOHBPMXh1THk4Z1RXOWtkV3hsWEc1ZlgxOURVMU5mVEU5QlJFVlNYMFZZVUU5U1ZGOWZYeTV3ZFhOb0tGdHRiMlIxYkdVdWFXUXNJRndpTG1WNFkyRnNhV1J5WVhjZ0xrRmpkR2wyWlVacGJHVWdMa0ZqZEdsMlpVWnBiR1ZmWDJacGJHVk9ZVzFsSUh0Y1hHNGdJR1JwYzNCc1lYazZJR1pzWlhnN1hGeHVJQ0JoYkdsbmJpMXBkR1Z0Y3pvZ1kyVnVkR1Z5TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVFXTjBhWFpsUm1sc1pTQXVRV04wYVhabFJtbHNaVjlmWm1sc1pVNWhiV1VnYzNCaGJpQjdYRnh1SUNCMFpYaDBMVzkyWlhKbWJHOTNPaUJsYkd4cGNITnBjenRjWEc0Z0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hGeHVJQ0IzYUdsMFpTMXpjR0ZqWlRvZ2JtOTNjbUZ3TzF4Y2JpQWdkMmxrZEdnNklEa3VNMlZ0TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVFXTjBhWFpsUm1sc1pTQXVRV04wYVhabFJtbHNaVjlmWm1sc1pVNWhiV1VnYzNabklIdGNYRzRnSUhkcFpIUm9PaUF4TGpFMVpXMDdYRnh1SUNCdFlYSm5hVzR0YVc1c2FXNWxMV1Z1WkRvZ01DNHpaVzA3WEZ4dUlDQjBjbUZ1YzJadmNtMDZJSE5qWVd4bFdTZ3dMamtwTzF4Y2JuMWNJaXdnWENKY0lpeDdYQ0oyWlhKemFXOXVYQ0k2TXl4Y0luTnZkWEpqWlhOY0lqcGJYQ0ozWldKd1lXTnJPaTh2TGk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDBGamRHbDJaVVpwYkdVdWMyTnpjMXdpWFN4Y0ltNWhiV1Z6WENJNlcxMHNYQ0p0WVhCd2FXNW5jMXdpT2x3aVFVRkZTVHRGUVVORkxHRkJRVUU3UlVGRFFTeHRRa0ZCUVR0QlFVUk9PMEZCUjAwN1JVRkRSU3gxUWtGQlFUdEZRVU5CTEdkQ1FVRkJPMFZCUTBFc2JVSkJRVUU3UlVGRFFTeFpRVUZCTzBGQlJGSTdRVUZKVFR0RlFVTkZMR0ZCUVVFN1JVRkRRU3gzUWtGQlFUdEZRVU5CTEhOQ1FVRkJPMEZCUmxKY0lpeGNJbk52ZFhKalpYTkRiMjUwWlc1MFhDSTZXMXdpTG1WNFkyRnNhV1J5WVhjZ2UxeGNiaUFnTGtGamRHbDJaVVpwYkdVZ2UxeGNiaUFnSUNBdVFXTjBhWFpsUm1sc1pWOWZabWxzWlU1aGJXVWdlMXhjYmlBZ0lDQWdJR1JwYzNCc1lYazZJR1pzWlhnN1hGeHVJQ0FnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzVjWEc0Z0lDQWdJQ0J6Y0dGdUlIdGNYRzRnSUNBZ0lDQWdJSFJsZUhRdGIzWmxjbVpzYjNjNklHVnNiR2x3YzJsek8xeGNiaUFnSUNBZ0lDQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNYRzRnSUNBZ0lDQWdJSGRvYVhSbExYTndZV05sT2lCdWIzZHlZWEE3WEZ4dUlDQWdJQ0FnSUNCM2FXUjBhRG9nT1M0elpXMDdYRnh1SUNBZ0lDQWdmVnhjYmx4Y2JpQWdJQ0FnSUhOMlp5QjdYRnh1SUNBZ0lDQWdJQ0IzYVdSMGFEb2dNUzR4TldWdE8xeGNiaUFnSUNBZ0lDQWdiV0Z5WjJsdUxXbHViR2x1WlMxbGJtUTZJREF1TTJWdE8xeGNiaUFnSUNBZ0lDQWdkSEpoYm5ObWIzSnRPaUJ6WTJGc1pWa29NQzQ1S1R0Y1hHNGdJQ0FnSUNCOVhGeHVJQ0FnSUgxY1hHNGdJSDFjWEc1OVhGeHVYQ0pkTEZ3aWMyOTFjbU5sVW05dmRGd2lPbHdpWENKOVhTazdYRzR2THlCRmVIQnZjblJ6WEc1bGVIQnZjblFnWkdWbVlYVnNkQ0JmWDE5RFUxTmZURTlCUkVWU1gwVllVRTlTVkY5Zlh6dGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0FjdGl2ZUZpbGUuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9BdmF0YXIuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvQXZhdGFyLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8vIEltcG9ydHNcXG5cXG5cXG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpKChfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQoKSkpO1xcbi8vIE1vZHVsZVxcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXFxcIjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcXFxufVxcXFxuXFxcXG4uZXhjYWxpZHJhdyAuQXZhdGFyIHtcXFxcbiAgd2lkdGg6IDIuNXJlbTtcXFxcbiAgaGVpZ2h0OiAyLjVyZW07XFxcXG4gIGJvcmRlci1yYWRpdXM6IDEuMjVyZW07XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcXFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICBjb2xvcjogI2ZmZmZmZjtcXFxcbiAgY3Vyc29yOiBwb2ludGVyO1xcXFxuICBmb250LXNpemU6IDAuOHJlbTtcXFxcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXFxcbn1cXFwiLCBcXFwiXFxcIix7XFxcInZlcnNpb25cXFwiOjMsXFxcInNvdXJjZXNcXFwiOltcXFwid2VicGFjazovLy4vLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1xcXCIsXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvQXZhdGFyLnNjc3NcXFwiLFxcXCJ3ZWJwYWNrOi8vLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvb3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiXSxcXFwibmFtZXNcXFwiOltdLFxcXCJtYXBwaW5nc1xcXCI6XFxcIkFBVUE7RUFDRSwyQ0FBQTtBQ1RGOztBQUNFO0VBQ0UsYUFBQTtFQUNBLGNBQUE7RUFDQSxzQkFBQTtFQUNBLGFBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0NDZTtFREFmLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0FBRUpcXFwiLFxcXCJzb3VyY2VzQ29udGVudFxcXCI6W1xcXCJAaW1wb3J0IFxcXFxcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFxcXFxcIjtcXFxcblxcXFxuQG1peGluIGlzTW9iaWxlKCkge1xcXFxuICBAYXQtcm9vdCAuZXhjYWxpZHJhdy0tbW9iaWxlI3smfSB7XFxcXG4gICAgQGNvbnRlbnQ7XFxcXG4gIH1cXFxcbn1cXFxcblxcXFxuJHRoZW1lLWZpbHRlcjogXFxcXFxcXCJpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZylcXFxcXFxcIjtcXFxcblxcXFxuOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiB1bnF1b3RlKCR0aGVtZS1maWx0ZXIpO1xcXFxufVxcXFxuXFxcIixcXFwiQGltcG9ydCBcXFxcXFxcIi4uL2Nzcy92YXJpYWJsZXMubW9kdWxlXFxcXFxcXCI7XFxcXG5cXFxcbi5leGNhbGlkcmF3IHtcXFxcbiAgLkF2YXRhciB7XFxcXG4gICAgd2lkdGg6IDIuNXJlbTtcXFxcbiAgICBoZWlnaHQ6IDIuNXJlbTtcXFxcbiAgICBib3JkZXItcmFkaXVzOiAxLjI1cmVtO1xcXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAgICBjb2xvcjogJG9jLXdoaXRlO1xcXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXFxcbiAgICBmb250LXNpemU6IDAuOHJlbTtcXFxcbiAgICBmb250LXdlaWdodDogNTAwO1xcXFxuICB9XFxcXG59XFxcXG5cXFwiLFxcXCIvL1xcXFxuLy9cXFxcbi8vICBcdUQ4MzVcdURERDYgXHVEODM1XHVEREUyIFx1RDgzNVx1RERERiBcdUQ4MzVcdURERTIgXHVEODM1XHVEREU1XFxcXG4vLyAgdiAxLjkuMVxcXFxuLy9cXFxcbi8vICBcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcXFxcblxcXFxuXFxcXG4vLyAgR2VuZXJhbFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2Mtd2hpdGU6ICAgICAgICAgI2ZmZmZmZjtcXFxcbiRvYy1ibGFjazogICAgICAgICAjMDAwMDAwO1xcXFxuXFxcXG5cXFxcbi8vICBHcmF5XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmF5LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmOGY5ZmEsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZjFmM2Y1LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2U5ZWNlZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNkZWUyZTYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjY2VkNGRhLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2FkYjViZCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM4NjhlOTYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNDk1MDU3LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzM0M2E0MCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMyMTI1MjlcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmF5LTA6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0yOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTM6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS01OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTY6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS04OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTk6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBSZWRcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXJlZC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmNWY1LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZTNlMyxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmM5YzksXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZhOGE4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmODc4NyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmZjZiNmIsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmE1MjUyLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2YwM2UzZSxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNlMDMxMzEsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjYzkyYTJhXFxcXG4pO1xcXFxuXFxcXG4kb2MtcmVkLTA6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTE6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTI6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTM6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTQ6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTU6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTY6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTc6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTg6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTk6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFBpbmtcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXBpbmstbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjBmNixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmRlZWIsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmNjMmQ3LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZhYTJjMSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmNzgzYWMsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZjA2NTk1LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2U2NDk4MCxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNkNjMzNmMsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjYzIyNTVjLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2E2MWU0ZFxcXFxuKTtcXFxcblxcXFxuJG9jLXBpbmstMDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtcGluay0xOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTI6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtcGluay00OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTU6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtcGluay03OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTg6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstOTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEdyYXBlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmFwZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjhmMGZjLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2YzZDlmYSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNlZWJlZmEsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZTU5OWY3LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2RhNzdmMixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNjYzVkZTgsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjYmU0YmRiLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2FlM2VjOSxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM5YzM2YjUsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjODYyZTljXFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JhcGUtMDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTE6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0yOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTQ6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS01OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTc6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS04OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtOTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBWaW9sZXRcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXZpb2xldC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjNmMGZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2U1ZGJmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNkMGJmZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjYjE5N2ZjLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzk3NzVmYSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM4NDVlZjcsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNzk1MGYyLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzcwNDhlOCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM2NzQxZDksXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjNWYzZGM0XFxcXG4pO1xcXFxuXFxcXG4kb2MtdmlvbGV0LTA6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTE6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTI6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTM6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTQ6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTU6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTY6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTc6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTg6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTk6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEluZGlnb1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtaW5kaWdvLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlZGYyZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZGJlNGZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2JhYzhmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM5MWE3ZmYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNzQ4ZmZjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzVjN2NmYSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM0YzZlZjUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNDI2M2ViLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzNiNWJkYixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMzNjRmYzdcXFxcbik7XFxcXG5cXFxcbiRvYy1pbmRpZ28tMDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tODogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tOTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQmx1ZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtYmx1ZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTdmNWZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2QwZWJmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNhNWQ4ZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNzRjMGZjLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzRkYWJmNyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMzMzlhZjAsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMjI4YmU2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzFjN2VkNixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMxOTcxYzIsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMTg2NGFiXFxcXG4pO1xcXFxuXFxcXG4kb2MtYmx1ZS0wOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTE6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0zOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTQ6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS02OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTc6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtODogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS05OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQ3lhblxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtY3lhbi1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTNmYWZjLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2M1ZjZmYSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICM5OWU5ZjIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNjZkOWU4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzNiYzlkYixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMyMmI4Y2YsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMTVhYWJmLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzEwOThhZCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMwYzg1OTksXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMGI3Mjg1XFxcXG4pO1xcXFxuXFxcXG4kb2MtY3lhbi0wOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTE6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0zOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTQ6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi02OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTc6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tODogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi05OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgVGVhbFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtdGVhbC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTZmY2Y1LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2MzZmFlOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICM5NmYyZDcsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNjNlNmJlLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzM4ZDlhOSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMyMGM5OTcsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMTJiODg2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzBjYTY3OCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMwOTkyNjgsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMDg3ZjViXFxcXG4pO1xcXFxuXFxcXG4kb2MtdGVhbC0wOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTE6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0zOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTQ6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC02OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTc6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtODogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC05OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgR3JlZW5cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyZWVuLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlYmZiZWUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZDNmOWQ4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2IyZjJiYixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM4Y2U5OWEsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNjlkYjdjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzUxY2Y2NixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM0MGMwNTcsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMzdiMjRkLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzJmOWU0NCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMyYjhhM2VcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmVlbi0wOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTI6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0zOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNDogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTU6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi02OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNzogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTg6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi05OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIExpbWVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWxpbWUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y0ZmNlMyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNlOWZhYzgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZDhmNWEyLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2MwZWI3NSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNhOWUzNGIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjOTRkODJkLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzgyYzkxZSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM3NGI4MTYsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjNjZhODBmLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzVjOTQwZFxcXFxuKTtcXFxcblxcXFxuJG9jLWxpbWUtMDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0xOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTI6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtbGltZS00OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTU6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtbGltZS03OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTg6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtOTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFllbGxvd1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MteWVsbG93LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY5ZGIsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZmM2JmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmZWM5OSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmUwNjYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmZkNDNiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZjYzQxOSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmYWIwMDUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjU5ZjAwLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2YwOGMwMCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNlNjc3MDBcXFxcbik7XFxcXG5cXFxcbiRvYy15ZWxsb3ctMDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctODogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctOTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgT3JhbmdlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1vcmFuZ2UtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjRlNixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmU4Y2MsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZkOGE4LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmYzA3OCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZmE5NGQsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmY5MjJiLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZkN2UxNCxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmNzY3MDcsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZTg1OTBjLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2Q5NDgwZlxcXFxuKTtcXFxcblxcXFxuJG9jLW9yYW5nZS0wOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0xOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0yOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0zOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS00OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS01OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS02OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS03OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS04OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS05OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBDb2xvciBsaXN0XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1jb2xvci1zcGVjdHJ1bTogICA5O1xcXFxuXFxcXG4kb2MtY29sb3ItbGlzdDogKFxcXFxuICAkb2MtZ3JheS1saXN0OiAgICAgIFxcXFxcXFwiZ3JheVxcXFxcXFwiLFxcXFxuICAkb2MtcmVkLWxpc3Q6ICAgICAgXFxcXFxcXCJyZWRcXFxcXFxcIixcXFxcbiAgJG9jLXBpbmstbGlzdDogICAgICBcXFxcXFxcInBpbmtcXFxcXFxcIixcXFxcbiAgJG9jLWdyYXBlLWxpc3Q6ICAgICAgXFxcXFxcXCJncmFwZVxcXFxcXFwiLFxcXFxuICAkb2MtdmlvbGV0LWxpc3Q6ICAgICAgXFxcXFxcXCJ2aW9sZXRcXFxcXFxcIixcXFxcbiAgJG9jLWluZGlnby1saXN0OiAgICAgIFxcXFxcXFwiaW5kaWdvXFxcXFxcXCIsXFxcXG4gICRvYy1ibHVlLWxpc3Q6ICAgICAgXFxcXFxcXCJibHVlXFxcXFxcXCIsXFxcXG4gICRvYy1jeWFuLWxpc3Q6ICAgICAgXFxcXFxcXCJjeWFuXFxcXFxcXCIsXFxcXG4gICRvYy10ZWFsLWxpc3Q6ICAgICAgXFxcXFxcXCJ0ZWFsXFxcXFxcXCIsXFxcXG4gICRvYy1ncmVlbi1saXN0OiAgICAgIFxcXFxcXFwiZ3JlZW5cXFxcXFxcIixcXFxcbiAgJG9jLWxpbWUtbGlzdDogICAgICBcXFxcXFxcImxpbWVcXFxcXFxcIixcXFxcbiAgJG9jLXllbGxvdy1saXN0OiAgICAgIFxcXFxcXFwieWVsbG93XFxcXFxcXCIsXFxcXG4gICRvYy1vcmFuZ2UtbGlzdDogICAgICBcXFxcXFxcIm9yYW5nZVxcXFxcXFwiXFxcXG4pO1xcXFxuXFxcIl0sXFxcInNvdXJjZVJvb3RcXFwiOlxcXCJcXFwifV0pO1xcbi8vIEV4cG9ydHNcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKF9fX0NTU19MT0FERVJfRVhQT1JUX19fKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlCZG1GMFlYSXVjMk56Y3k1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenRCUVVGQk8wRkJRemhJTzBGQlEycENPMEZCUXpkSExEaENRVUU0UWl4MVIwRkJNa0lzUTBGQlF5eG5TRUZCY1VNN1FVRkRMMFk3UVVGRFFTeHRSRUZCYlVRc1owUkJRV2RFTEVkQlFVY3NlVUpCUVhsQ0xHdENRVUZyUWl4dFFrRkJiVUlzTWtKQlFUSkNMR3RDUVVGclFpdzBRa0ZCTkVJc2QwSkJRWGRDTEcxQ1FVRnRRaXh2UWtGQmIwSXNjMEpCUVhOQ0xIRkNRVUZ4UWl4SFFVRkhMRTlCUVU4c05FMUJRVFJOTEZkQlFWY3NUVUZCVFN4TFFVRkxMRlZCUVZVc1ZVRkJWU3hYUVVGWExGVkJRVlVzVjBGQlZ5eFhRVUZYTEZWQlFWVXNWVUZCVlN4WFFVRlhMRmRCUVZjc1owVkJRV2RGTEhWQ1FVRjFRaXhyUTBGQmEwTXNTVUZCU1N4bFFVRmxMRXRCUVVzc1IwRkJSeXh6UkVGQmMwUXNZVUZCWVN4M1EwRkJkME1zUjBGQlJ5eDVRMEZCZVVNc2FVSkJRV2xDTEdGQlFXRXNiMEpCUVc5Q0xIRkNRVUZ4UWl3MlFrRkJOa0lzYjBKQlFXOUNMRGhDUVVFNFFpd3dRa0ZCTUVJc2RVSkJRWFZDTEhOQ1FVRnpRaXgzUWtGQmQwSXNkVUpCUVhWQ0xFdEJRVXNzUjBGQlJ5eHJURUZCYTB3c05rSkJRVFpDTERSUlFVRTBVU3c0UTBGQk9FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNNRkZCUVRCUkxEUkRRVUUwUXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc01FTkJRVEJETERCRFFVRXdReXd3UTBGQk1FTXNNRU5CUVRCRExEQkRRVUV3UXl3MFVVRkJORkVzT0VOQlFUaERMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRGhSUVVFNFVTeG5SRUZCWjBRc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc1oxSkJRV2RTTEd0RVFVRnJSQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huVWtGQloxSXNhMFJCUVd0RUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxEUlJRVUUwVVN3NFEwRkJPRU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkZGQlFUUlJMRGhEUVVFNFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBVVUZCTkZFc09FTkJRVGhETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERoUlFVRTRVU3huUkVGQlowUXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNORkZCUVRSUkxEaERRVUU0UXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl4blVrRkJaMUlzYTBSQlFXdEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RTUVVGblVpeHJSRUZCYTBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc2VVWkJRWGxHTEhWa1FVRjFaQ3h4UWtGQmNVSTdRVUZEYm5SWE8wRkJRMEVzYVVWQlFXVXNkVUpCUVhWQ0xFVkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUJkbUYwWVhJdWMyTnpjejgyTnpZeUlsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaTh2SUVsdGNHOXlkSE5jYm1sdGNHOXlkQ0JmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlUVDFWU1EwVk5RVkJmU1UxUVQxSlVYMTlmSUdaeWIyMGdYQ0l1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTlqYzNNdGJHOWhaR1Z5TDJScGMzUXZjblZ1ZEdsdFpTOXpiM1Z5WTJWTllYQnpMbXB6WENJN1hHNXBiWEJ2Y25RZ1gxOWZRMU5UWDB4UFFVUkZVbDlCVUVsZlNVMVFUMUpVWDE5ZklHWnliMjBnWENJdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2Y25WdWRHbHRaUzloY0drdWFuTmNJanRjYm5aaGNpQmZYMTlEVTFOZlRFOUJSRVZTWDBWWVVFOVNWRjlmWHlBOUlGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgwbE5VRTlTVkY5Zlh5aGZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOVRUMVZTUTBWTlFWQmZTVTFRVDFKVVgxOWZLVHRjYmk4dklFMXZaSFZzWlZ4dVgxOWZRMU5UWDB4UFFVUkZVbDlGV0ZCUFVsUmZYMTh1Y0hWemFDaGJiVzlrZFd4bExtbGtMQ0JjSWpwbGVIQnZjblFnZTF4Y2JpQWdkR2hsYldWR2FXeDBaWEk2SUdsdWRtVnlkQ2c1TXlVcElHaDFaUzF5YjNSaGRHVW9NVGd3WkdWbktUdGNYRzU5WEZ4dVhGeHVMbVY0WTJGc2FXUnlZWGNnTGtGMllYUmhjaUI3WEZ4dUlDQjNhV1IwYURvZ01pNDFjbVZ0TzF4Y2JpQWdhR1ZwWjJoME9pQXlMalZ5WlcwN1hGeHVJQ0JpYjNKa1pYSXRjbUZrYVhWek9pQXhMakkxY21WdE8xeGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNYRzRnSUdwMWMzUnBabmt0WTI5dWRHVnVkRG9nWTJWdWRHVnlPMXhjYmlBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzRnSUdOdmJHOXlPaUFqWm1abVptWm1PMXhjYmlBZ1kzVnljMjl5T2lCd2IybHVkR1Z5TzF4Y2JpQWdabTl1ZEMxemFYcGxPaUF3TGpoeVpXMDdYRnh1SUNCbWIyNTBMWGRsYVdkb2REb2dOVEF3TzF4Y2JuMWNJaXdnWENKY0lpeDdYQ0oyWlhKemFXOXVYQ0k2TXl4Y0luTnZkWEpqWlhOY0lqcGJYQ0ozWldKd1lXTnJPaTh2TGk4dUxpOHVMaTlqYzNNdmRtRnlhV0ZpYkdWekxtMXZaSFZzWlM1elkzTnpYQ0lzWENKM1pXSndZV05yT2k4dkxpOHVMaTh1TGk5amIyMXdiMjVsYm5SekwwRjJZWFJoY2k1elkzTnpYQ0lzWENKM1pXSndZV05yT2k4dkxpOHVMaTh1TGk4dUxpOXViMlJsWDIxdlpIVnNaWE12YjNCbGJpMWpiMnh2Y2k5dmNHVnVMV052Ykc5eUxuTmpjM05jSWwwc1hDSnVZVzFsYzF3aU9sdGRMRndpYldGd2NHbHVaM05jSWpwY0lrRkJWVUU3UlVGRFJTd3lRMEZCUVR0QlExUkdPenRCUVVORk8wVkJRMFVzWVVGQlFUdEZRVU5CTEdOQlFVRTdSVUZEUVN4elFrRkJRVHRGUVVOQkxHRkJRVUU3UlVGRFFTeDFRa0ZCUVR0RlFVTkJMRzFDUVVGQk8wVkJRMEVzWTBORFpUdEZSRUZtTEdWQlFVRTdSVUZEUVN4cFFrRkJRVHRGUVVOQkxHZENRVUZCTzBGQlJVcGNJaXhjSW5OdmRYSmpaWE5EYjI1MFpXNTBYQ0k2VzF3aVFHbHRjRzl5ZENCY1hGd2liM0JsYmkxamIyeHZjaTl2Y0dWdUxXTnZiRzl5TG5OamMzTmNYRndpTzF4Y2JseGNia0J0YVhocGJpQnBjMDF2WW1sc1pTZ3BJSHRjWEc0Z0lFQmhkQzF5YjI5MElDNWxlR05oYkdsa2NtRjNMUzF0YjJKcGJHVWpleVo5SUh0Y1hHNGdJQ0FnUUdOdmJuUmxiblE3WEZ4dUlDQjlYRnh1ZlZ4Y2JseGNiaVIwYUdWdFpTMW1hV3gwWlhJNklGeGNYQ0pwYm5abGNuUW9PVE1sS1NCb2RXVXRjbTkwWVhSbEtERTRNR1JsWnlsY1hGd2lPMXhjYmx4Y2JqcGxlSEJ2Y25RZ2UxeGNiaUFnZEdobGJXVkdhV3gwWlhJNklIVnVjWFZ2ZEdVb0pIUm9aVzFsTFdacGJIUmxjaWs3WEZ4dWZWeGNibHdpTEZ3aVFHbHRjRzl5ZENCY1hGd2lMaTR2WTNOekwzWmhjbWxoWW14bGN5NXRiMlIxYkdWY1hGd2lPMXhjYmx4Y2JpNWxlR05oYkdsa2NtRjNJSHRjWEc0Z0lDNUJkbUYwWVhJZ2UxeGNiaUFnSUNCM2FXUjBhRG9nTWk0MWNtVnRPMXhjYmlBZ0lDQm9aV2xuYUhRNklESXVOWEpsYlR0Y1hHNGdJQ0FnWW05eVpHVnlMWEpoWkdsMWN6b2dNUzR5TlhKbGJUdGNYRzRnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjWEc0Z0lDQWdhblZ6ZEdsbWVTMWpiMjUwWlc1ME9pQmpaVzUwWlhJN1hGeHVJQ0FnSUdGc2FXZHVMV2wwWlcxek9pQmpaVzUwWlhJN1hGeHVJQ0FnSUdOdmJHOXlPaUFrYjJNdGQyaHBkR1U3WEZ4dUlDQWdJR04xY25OdmNqb2djRzlwYm5SbGNqdGNYRzRnSUNBZ1ptOXVkQzF6YVhwbE9pQXdMamh5WlcwN1hGeHVJQ0FnSUdadmJuUXRkMlZwWjJoME9pQTFNREE3WEZ4dUlDQjlYRnh1ZlZ4Y2Jsd2lMRndpTHk5Y1hHNHZMMXhjYmk4dklDRHduWmVXSVBDZGw2SWc4SjJYbnlEd25aZWlJUENkbDZWY1hHNHZMeUFnZGlBeExqa3VNVnhjYmk4dlhGeHVMeThnSU9LVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnVnhjYmx4Y2JseGNiaTh2SUNCSFpXNWxjbUZzWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MTNhR2wwWlRvZ0lDQWdJQ0FnSUNBalptWm1abVptTzF4Y2JpUnZZeTFpYkdGamF6b2dJQ0FnSUNBZ0lDQWpNREF3TURBd08xeGNibHhjYmx4Y2JpOHZJQ0JIY21GNVhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFuY21GNUxXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJZNFpqbG1ZU3hjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMll4WmpObU5TeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyVTVaV05sWml4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJSbFpUSmxOaXhjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJMk5sWkRSa1lTeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0kyRmtZalZpWkN4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpnMk9HVTVOaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJelE1TlRBMU55eGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6TTBNMkUwTUN4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpJeE1qVXlPVnhjYmlrN1hGeHVYRnh1Skc5akxXZHlZWGt0TURvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxURTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzB5T2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE16b2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVFE2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMwMU9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3ROam9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRjNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0T1RvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQlNaV1JjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxYSmxaQzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1abVkxWmpVc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObVptVXpaVE1zWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05tWm1NNVl6a3NYRnh1SUNCY1hGd2lNMXhjWENJNklDTm1abUU0WVRnc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNObVpqZzNPRGNzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ05tWmpaaU5tSXNYRnh1SUNCY1hGd2lObHhjWENJNklDTm1ZVFV5TlRJc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNObU1ETmxNMlVzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ05sTURNeE16RXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTmpPVEpoTW1GY1hHNHBPMXhjYmx4Y2JpUnZZeTF5WldRdE1Eb2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVEk2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MXlaV1F0TXpvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMWEpsWkMwME9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUVTZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxeVpXUXROam9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxYSmxaQzAzT2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRnNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE9Ub2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRkJwYm10Y1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMWEJwYm1zdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWm1abU1HWTJMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpabVprWldWaUxGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalptTmpNbVEzTEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWm1GaE1tTXhMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpaamM0TTJGakxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBalpqQTJOVGsxTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqWlRZME9UZ3dMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpaRFl6TXpaakxGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBall6SXlOVFZqTEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqWVRZeFpUUmtYRnh1S1R0Y1hHNWNYRzRrYjJNdGNHbHVheTB3T2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE1Ub2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVEk2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkwek9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3RORG9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRVNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MDJPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0TnpvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUZzZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTA1T2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lFZHlZWEJsWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MW5jbUZ3WlMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tT0dZd1ptTXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTm1NMlE1Wm1Fc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNObFpXSmxabUVzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05sTlRrNVpqY3NYRnh1SUNCY1hGd2lORnhjWENJNklDTmtZVGMzWmpJc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNOall6VmtaVGdzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ05pWlRSaVpHSXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTmhaVE5sWXprc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNNVl6TTJZalVzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ000TmpKbE9XTmNYRzRwTzF4Y2JseGNiaVJ2WXkxbmNtRndaUzB3T2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMweU9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzB6T2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMwMU9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzAyT2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMwNE9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzA1T2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQldhVzlzWlhSY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMWFpwYjJ4bGRDMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObU0yWXdabVlzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05sTldSaVptWXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTmtNR0ptWm1Zc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNOaU1UazNabU1zWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ001TnpjMVptRXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTTRORFZsWmpjc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNNM09UVXdaaklzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ00zTURRNFpUZ3NYRnh1SUNCY1hGd2lPRnhjWENJNklDTTJOelF4WkRrc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNMVpqTmtZelJjWEc0cE8xeGNibHhjYmlSdll5MTJhVzlzWlhRdE1Eb2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMweE9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRJNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0TXpvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzAwT2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVFU2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXROam9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUZzZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE9Ub2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUVsdVpHbG5iMXhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGFXNWthV2R2TFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlZrWmpKbVppeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyUmlaVFJtWml4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJKaFl6aG1aaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJemt4WVRkbVppeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0l6YzBPR1ptWXl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXpWak4yTm1ZU3hjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJelJqTm1WbU5TeGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6UXlOak5sWWl4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpOaU5XSmtZaXhjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJek0yTkdaak4xeGNiaWs3WEZ4dVhGeHVKRzlqTFdsdVpHbG5ieTB3T2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVEU2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHRNam9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MHpPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUUTZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE5Ub2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkwMk9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRjNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0T0RvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTA1T2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdRbXgxWlZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRZbXgxWlMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05sTjJZMVptWXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTmtNR1ZpWm1Zc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNOaE5XUTRabVlzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ00zTkdNd1ptTXNYRnh1SUNCY1hGd2lORnhjWENJNklDTTBaR0ZpWmpjc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNNek16bGhaakFzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ015TWpoaVpUWXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTXhZemRsWkRZc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNeE9UY3hZeklzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ014T0RZMFlXSmNYRzRwTzF4Y2JseGNiaVJ2WXkxaWJIVmxMVEE2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMweE9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXRNam9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRNNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10WW14MVpTMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0TlRvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUWTZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzAzT2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE9Eb2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVGs2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1EzbGhibHhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdFkzbGhiaTFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTmxNMlpoWm1Nc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNOak5XWTJabUVzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ001T1dVNVpqSXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTTJObVE1WlRnc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNNelltTTVaR0lzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ015TW1JNFkyWXNYRnh1SUNCY1hGd2lObHhjWENJNklDTXhOV0ZoWW1Zc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNeE1EazRZV1FzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ013WXpnMU9Ua3NYRnh1SUNCY1hGd2lPVnhjWENJNklDTXdZamN5T0RWY1hHNHBPMXhjYmx4Y2JpUnZZeTFqZVdGdUxUQTZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTB4T2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE1qb2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVE02SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkwME9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHROVG9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRZNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0T0RvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxUazZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnVkdWaGJGeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10ZEdWaGJDMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObE5tWmpaalVzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05qTTJaaFpUZ3NYRnh1SUNCY1hGd2lNbHhjWENJNklDTTVObVl5WkRjc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNNMk0yVTJZbVVzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ016T0dRNVlUa3NYRnh1SUNCY1hGd2lOVnhjWENJNklDTXlNR001T1Rjc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNNeE1tSTRPRFlzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ013WTJFMk56Z3NYRnh1SUNCY1hGd2lPRnhjWENJNklDTXdPVGt5Tmpnc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNd09EZG1OV0pjWEc0cE8xeGNibHhjYmlSdll5MTBaV0ZzTFRBNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0TWpvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUTTZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzAwT2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE5Ub2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVFk2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMwM09pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3RPRG9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRrNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdSM0psWlc1Y1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV2R5WldWdUxXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJWaVptSmxaU3hjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlF6Wmpsa09DeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kySXlaakppWWl4Y1hHNGdJRnhjWENJelhGeGNJam9nSXpoalpUazVZU3hjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJelk1WkdJM1l5eGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0l6VXhZMlkyTml4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpRd1l6QTFOeXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJek0zWWpJMFpDeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6Sm1PV1UwTkN4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpKaU9HRXpaVnhjYmlrN1hGeHVYRnh1Skc5akxXZHlaV1Z1TFRBNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVEU2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUSTZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRNNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVFE2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUVTZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRZNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVGM2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUZzZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRrNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRXhwYldWY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV3hwYldVdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWmpSbVkyVXpMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpaVGxtWVdNNExGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalpEaG1OV0V5TEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWXpCbFlqYzFMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpZVGxsTXpSaUxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBak9UUmtPREprTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqT0RKak9URmxMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpOelJpT0RFMkxGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak5qWmhPREJtTEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTldNNU5EQmtYRnh1S1R0Y1hHNWNYRzRrYjJNdGJHbHRaUzB3T2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE1Ub2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVEk2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMwek9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXRORG9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRVNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0TnpvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUZzZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzA1T2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lGbGxiR3h2ZDF4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRlV1ZzYkc5M0xXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJabVpqbGtZaXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlptWmpOaVppeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyWm1aV001T1N4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJabVpUQTJOaXhjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJMlptWkRRellpeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0kyWmpZelF4T1N4Y1hHNGdJRnhjWENJMlhGeGNJam9nSTJaaFlqQXdOU3hjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJMlkxT1dZd01DeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0kyWXdPR013TUN4Y1hHNGdJRnhjWENJNVhGeGNJam9nSTJVMk56Y3dNRnhjYmlrN1hGeHVYRnh1Skc5akxYbGxiR3h2ZHkwd09pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRFNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0TWpvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTB6T2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVFE2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3ROVG9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MDJPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUYzZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE9Eb2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkwNU9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnVDNKaGJtZGxYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxdmNtRnVaMlV0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpabVptTkdVMkxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalptWmxPR05qTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWm1aa09HRTRMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpabVpqTURjNExGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBalptWmhPVFJrTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqWm1ZNU1qSmlMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpabVEzWlRFMExGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBalpqYzJOekEzTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqWlRnMU9UQmpMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpaRGswT0RCbVhGeHVLVHRjWEc1Y1hHNGtiMk10YjNKaGJtZGxMVEE2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXRNVG9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUTTZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE5Eb2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMwMU9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRZNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0TnpvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzA0T2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVGs2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQkRiMnh2Y2lCc2FYTjBYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxamIyeHZjaTF6Y0dWamRISjFiVG9nSUNBNU8xeGNibHhjYmlSdll5MWpiMnh2Y2kxc2FYTjBPaUFvWEZ4dUlDQWtiMk10WjNKaGVTMXNhWE4wT2lBZ0lDQWdJRnhjWENKbmNtRjVYRnhjSWl4Y1hHNGdJQ1J2WXkxeVpXUXRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWNtVmtYRnhjSWl4Y1hHNGdJQ1J2WXkxd2FXNXJMV3hwYzNRNklDQWdJQ0FnWEZ4Y0luQnBibXRjWEZ3aUxGeGNiaUFnSkc5akxXZHlZWEJsTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbWR5WVhCbFhGeGNJaXhjWEc0Z0lDUnZZeTEyYVc5c1pYUXRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWRtbHZiR1YwWEZ4Y0lpeGNYRzRnSUNSdll5MXBibVJwWjI4dGJHbHpkRG9nSUNBZ0lDQmNYRndpYVc1a2FXZHZYRnhjSWl4Y1hHNGdJQ1J2WXkxaWJIVmxMV3hwYzNRNklDQWdJQ0FnWEZ4Y0ltSnNkV1ZjWEZ3aUxGeGNiaUFnSkc5akxXTjVZVzR0YkdsemREb2dJQ0FnSUNCY1hGd2lZM2xoYmx4Y1hDSXNYRnh1SUNBa2IyTXRkR1ZoYkMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0owWldGc1hGeGNJaXhjWEc0Z0lDUnZZeTFuY21WbGJpMXNhWE4wT2lBZ0lDQWdJRnhjWENKbmNtVmxibHhjWENJc1hGeHVJQ0FrYjJNdGJHbHRaUzFzYVhOME9pQWdJQ0FnSUZ4Y1hDSnNhVzFsWEZ4Y0lpeGNYRzRnSUNSdll5MTVaV3hzYjNjdGJHbHpkRG9nSUNBZ0lDQmNYRndpZVdWc2JHOTNYRnhjSWl4Y1hHNGdJQ1J2WXkxdmNtRnVaMlV0YkdsemREb2dJQ0FnSUNCY1hGd2liM0poYm1kbFhGeGNJbHhjYmlrN1hGeHVYQ0pkTEZ3aWMyOTFjbU5sVW05dmRGd2lPbHdpWENKOVhTazdYRzR2THlCRmVIQnZjblJ6WEc1bGVIQnZjblFnWkdWbVlYVnNkQ0JmWDE5RFUxTmZURTlCUkVWU1gwVllVRTlTVkY5Zlh6dGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0F2YXRhci5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0NhcmQuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0NhcmQuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8vIEltcG9ydHNcXG5cXG5cXG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpKChfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQoKSkpO1xcbi8vIE1vZHVsZVxcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXFxcIjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcXFxufVxcXFxuXFxcXG4uZXhjYWxpZHJhdyAuQ2FyZCB7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gIG1heC13aWR0aDogMjkwcHg7XFxcXG4gIG1hcmdpbjogMWVtO1xcXFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQ2FyZCAuQ2FyZC1pY29uIHtcXFxcbiAgZm9udC1zaXplOiAyLjZlbTtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgZmxleDogMCAwIGF1dG87XFxcXG4gIHBhZGRpbmc6IDEuNHJlbTtcXFxcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcXFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG9yKTtcXFxcbiAgY29sb3I6ICNmZmZmZmY7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQ2FyZCAuQ2FyZC1pY29uIHN2ZyB7XFxcXG4gIHdpZHRoOiAyLjhyZW07XFxcXG4gIGhlaWdodDogMi44cmVtO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkNhcmQgLkNhcmQtZGV0YWlscyB7XFxcXG4gIGZvbnQtc2l6ZTogMC45NmVtO1xcXFxuICBtaW4taGVpZ2h0OiA5MHB4O1xcXFxuICBwYWRkaW5nOiAwIDFlbTtcXFxcbiAgbWFyZ2luLWJvdHRvbTogYXV0bztcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5DYXJkIC5DYXJkLWJ1dHRvbi5Ub29sSWNvbl90eXBlX2J1dHRvbiB7XFxcXG4gIGhlaWdodDogMi41cmVtO1xcXFxuICBtYXJnaW4tdG9wOiAxZW07XFxcXG4gIG1hcmdpbi1ib3R0b206IDAuM2VtO1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG9yKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5DYXJkIC5DYXJkLWJ1dHRvbi5Ub29sSWNvbl90eXBlX2J1dHRvbjpob3ZlciB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3ItZGFya2VyKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5DYXJkIC5DYXJkLWJ1dHRvbi5Ub29sSWNvbl90eXBlX2J1dHRvbjphY3RpdmUge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG9yLWRhcmtlc3QpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkNhcmQgLkNhcmQtYnV0dG9uLlRvb2xJY29uX3R5cGVfYnV0dG9uIC5Ub29sSWNvbl9fbGFiZWwge1xcXFxuICBjb2xvcjogI2ZmZmZmZjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5DYXJkIC5DYXJkLWJ1dHRvbi5Ub29sSWNvbl90eXBlX2J1dHRvbiAuU3Bpbm5lciB7XFxcXG4gIC0tc3Bpbm5lci1jb2xvcjogI2ZmZjtcXFxcbn1cXFwiLCBcXFwiXFxcIix7XFxcInZlcnNpb25cXFwiOjMsXFxcInNvdXJjZXNcXFwiOltcXFwid2VicGFjazovLy4vLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1xcXCIsXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvQ2FyZC5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQVVBO0VBQ0UsMkNBQUE7QUNURjs7QUFDRTtFQUNFLGFBQUE7RUFDQSxzQkFBQTtFQUNBLG1CQUFBO0VBRUEsZ0JBQUE7RUFFQSxXQUFBO0VBRUEsa0JBQUE7QUFESjtBQUdJO0VBQ0UsZ0JBQUE7RUFDQSxhQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLDZCQUFBO0VBQ0EsY0NWYTtBRFNuQjtBQUdNO0VBQ0UsYUFBQTtFQUNBLGNBQUE7QUFEUjtBQUtJO0VBQ0UsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtBQUhOO0FBTUk7RUFDRSxjQUFBO0VBQ0EsZUFBQTtFQUNBLG9CQUFBO0VBQ0EsbUNBQUE7QUFKTjtBQUtNO0VBQ0UsMENBQUE7QUFIUjtBQUtNO0VBQ0UsMkNBQUE7QUFIUjtBQUtNO0VBQ0UsY0NyQ1c7QURrQ25CO0FBTU07RUFDRSxxQkFBQTtBQUpSXFxcIixcXFwic291cmNlc0NvbnRlbnRcXFwiOltcXFwiQGltcG9ydCBcXFxcXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcXFxcXCI7XFxcXG5cXFxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXFxcbiAgQGF0LXJvb3QgLmV4Y2FsaWRyYXctLW1vYmlsZSN7Jn0ge1xcXFxuICAgIEBjb250ZW50O1xcXFxuICB9XFxcXG59XFxcXG5cXFxcbiR0aGVtZS1maWx0ZXI6IFxcXFxcXFwiaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpXFxcXFxcXCI7XFxcXG5cXFxcbjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXFxcbn1cXFxcblxcXCIsXFxcIkBpbXBvcnQgXFxcXFxcXCIuLi9jc3MvdmFyaWFibGVzLm1vZHVsZVxcXFxcXFwiO1xcXFxuXFxcXG4uZXhjYWxpZHJhdyB7XFxcXG4gIC5DYXJkIHtcXFxcbiAgICBkaXNwbGF5OiBmbGV4O1xcXFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcblxcXFxuICAgIG1heC13aWR0aDogMjkwcHg7XFxcXG5cXFxcbiAgICBtYXJnaW46IDFlbTtcXFxcblxcXFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXFxcblxcXFxuICAgIC5DYXJkLWljb24ge1xcXFxuICAgICAgZm9udC1zaXplOiAyLjZlbTtcXFxcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAgICBmbGV4OiAwIDAgYXV0bztcXFxcbiAgICAgIHBhZGRpbmc6IDEuNHJlbTtcXFxcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcXFxcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3IpO1xcXFxuICAgICAgY29sb3I6ICRvYy13aGl0ZTtcXFxcblxcXFxuICAgICAgc3ZnIHtcXFxcbiAgICAgICAgd2lkdGg6IDIuOHJlbTtcXFxcbiAgICAgICAgaGVpZ2h0OiAyLjhyZW07XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgLkNhcmQtZGV0YWlscyB7XFxcXG4gICAgICBmb250LXNpemU6IDAuOTZlbTtcXFxcbiAgICAgIG1pbi1oZWlnaHQ6IDkwcHg7XFxcXG4gICAgICBwYWRkaW5nOiAwIDFlbTtcXFxcbiAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJiAuQ2FyZC1idXR0b24uVG9vbEljb25fdHlwZV9idXR0b24ge1xcXFxuICAgICAgaGVpZ2h0OiAyLjVyZW07XFxcXG4gICAgICBtYXJnaW4tdG9wOiAxZW07XFxcXG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjNlbTtcXFxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3IpO1xcXFxuICAgICAgJjpob3ZlciB7XFxcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3ItZGFya2VyKTtcXFxcbiAgICAgIH1cXFxcbiAgICAgICY6YWN0aXZlIHtcXFxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvci1kYXJrZXN0KTtcXFxcbiAgICAgIH1cXFxcbiAgICAgIC5Ub29sSWNvbl9fbGFiZWwge1xcXFxuICAgICAgICBjb2xvcjogJG9jLXdoaXRlO1xcXFxuICAgICAgfVxcXFxuXFxcXG4gICAgICAuU3Bpbm5lciB7XFxcXG4gICAgICAgIC0tc3Bpbm5lci1jb2xvcjogI2ZmZjtcXFxcbiAgICAgIH1cXFxcbiAgICB9XFxcXG4gIH1cXFxcbn1cXFxcblxcXCIsXFxcIi8vXFxcXG4vL1xcXFxuLy8gIFx1RDgzNVx1RERENiBcdUQ4MzVcdURERTIgXHVEODM1XHVERERGIFx1RDgzNVx1RERFMiBcdUQ4MzVcdURERTVcXFxcbi8vICB2IDEuOS4xXFxcXG4vL1xcXFxuLy8gIFx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVxcXFxuXFxcXG5cXFxcbi8vICBHZW5lcmFsXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy13aGl0ZTogICAgICAgICAjZmZmZmZmO1xcXFxuJG9jLWJsYWNrOiAgICAgICAgICMwMDAwMDA7XFxcXG5cXFxcblxcXFxuLy8gIEdyYXlcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyYXktbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y4ZjlmYSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmMWYzZjUsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZTllY2VmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2RlZTJlNixcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNjZWQ0ZGEsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjYWRiNWJkLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzg2OGU5NixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM0OTUwNTcsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMzQzYTQwLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzIxMjUyOVxcXFxuKTtcXFxcblxcXFxuJG9jLWdyYXktMDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0xOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTI6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS00OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTU6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS03OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTg6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktOTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFJlZFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtcmVkLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY1ZjUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZlM2UzLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmYzljOSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmE4YTgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmY4Nzg3LFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZmNmI2YixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmYTUyNTIsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjAzZTNlLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2UwMzEzMSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNjOTJhMmFcXFxcbik7XFxcXG5cXFxcbiRvYy1yZWQtMDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtMTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtMjogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtMzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNjogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1yZWQtODogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtOTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgUGlua1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtcGluay1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmMGY2LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZGVlYixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmY2MyZDcsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmFhMmMxLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2Y3ODNhYyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmMDY1OTUsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZTY0OTgwLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Q2MzM2YyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNjMjI1NWMsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjYTYxZTRkXFxcXG4pO1xcXFxuXFxcXG4kb2MtcGluay0wOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTE6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtcGluay0zOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTQ6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtcGluay02OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTc6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstODogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtcGluay05OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgR3JhcGVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyYXBlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmOGYwZmMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZjNkOWZhLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2VlYmVmYSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNlNTk5ZjcsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZGE3N2YyLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2NjNWRlOCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNiZTRiZGIsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjYWUzZWM5LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzljMzZiNSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM4NjJlOWNcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmFwZS0wOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTI6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0zOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTU6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS02OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTg6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS05OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFZpb2xldFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtdmlvbGV0LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmM2YwZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZTVkYmZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2QwYmZmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNiMTk3ZmMsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjOTc3NWZhLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzg0NWVmNyxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM3OTUwZjIsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNzA0OGU4LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzY3NDFkOSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM1ZjNkYzRcXFxcbik7XFxcXG5cXFxcbiRvYy12aW9sZXQtMDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtMTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtMjogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtMzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNjogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtODogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtOTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgSW5kaWdvXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1pbmRpZ28tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2VkZjJmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkYmU0ZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYmFjOGZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzkxYTdmZixcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM3NDhmZmMsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjNWM3Y2ZhLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzRjNmVmNSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM0MjYzZWIsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjM2I1YmRiLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzM2NGZjN1xcXFxuKTtcXFxcblxcXFxuJG9jLWluZGlnby0wOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby0xOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby0yOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby0zOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby00OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby01OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby02OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby03OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby04OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby05OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBCbHVlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ibHVlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlN2Y1ZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZDBlYmZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2E1ZDhmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM3NGMwZmMsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNGRhYmY3LFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzMzOWFmMCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICMyMjhiZTYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMWM3ZWQ2LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzE5NzFjMixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMxODY0YWJcXFxcbik7XFxcXG5cXFxcbiRvYy1ibHVlLTA6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0yOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTM6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS01OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTY6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS04OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTk6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBDeWFuXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1jeWFuLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlM2ZhZmMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjYzVmNmZhLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogIzk5ZTlmMixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM2NmQ5ZTgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjM2JjOWRiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzIyYjhjZixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICMxNWFhYmYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMTA5OGFkLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzBjODU5OSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMwYjcyODVcXFxcbik7XFxcXG5cXFxcbiRvYy1jeWFuLTA6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0yOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTM6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi01OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTY6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi04OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTk6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBUZWFsXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy10ZWFsLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlNmZjZjUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjYzNmYWU4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogIzk2ZjJkNyxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM2M2U2YmUsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjMzhkOWE5LFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzIwYzk5NyxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICMxMmI4ODYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMGNhNjc4LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzA5OTI2OCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMwODdmNWJcXFxcbik7XFxcXG5cXFxcbiRvYy10ZWFsLTA6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0yOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTM6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC01OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTY6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC04OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTk6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBHcmVlblxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JlZW4tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ViZmJlZSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkM2Y5ZDgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYjJmMmJiLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzhjZTk5YSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM2OWRiN2MsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjNTFjZjY2LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzQwYzA1NyxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMzN2IyNGQsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMmY5ZTQ0LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzJiOGEzZVxcXFxuKTtcXFxcblxcXFxuJG9jLWdyZWVuLTA6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0xOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMjogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTM6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi00OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTY6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi03OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tODogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTk6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgTGltZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtbGltZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjRmY2UzLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2U5ZmFjOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNkOGY1YTIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjYzBlYjc1LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2E5ZTM0YixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM5NGQ4MmQsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjODJjOTFlLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzc0YjgxNixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM2NmE4MGYsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjNWM5NDBkXFxcXG4pO1xcXFxuXFxcXG4kb2MtbGltZS0wOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTE6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0zOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTQ6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtbGltZS02OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTc6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtODogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtbGltZS05OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgWWVsbG93XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy15ZWxsb3ctbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjlkYixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmYzYmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZlYzk5LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmZTA2NixcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZmQ0M2IsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmNjNDE5LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZhYjAwNSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmNTlmMDAsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZjA4YzAwLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2U2NzcwMFxcXFxuKTtcXFxcblxcXFxuJG9jLXllbGxvdy0wOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy0xOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy0yOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy0zOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy00OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy01OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy02OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy03OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy04OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy05OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBPcmFuZ2VcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLW9yYW5nZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmNGU2LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZThjYyxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmQ4YTgsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZjMDc4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmYTk0ZCxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmZjkyMmIsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmQ3ZTE0LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Y3NjcwNyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNlODU5MGMsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjZDk0ODBmXFxcXG4pO1xcXFxuXFxcXG4kb2Mtb3JhbmdlLTA6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTE6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTI6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTM6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTQ6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTU6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTY6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTc6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTg6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTk6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIENvbG9yIGxpc3RcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWNvbG9yLXNwZWN0cnVtOiAgIDk7XFxcXG5cXFxcbiRvYy1jb2xvci1saXN0OiAoXFxcXG4gICRvYy1ncmF5LWxpc3Q6ICAgICAgXFxcXFxcXCJncmF5XFxcXFxcXCIsXFxcXG4gICRvYy1yZWQtbGlzdDogICAgICBcXFxcXFxcInJlZFxcXFxcXFwiLFxcXFxuICAkb2MtcGluay1saXN0OiAgICAgIFxcXFxcXFwicGlua1xcXFxcXFwiLFxcXFxuICAkb2MtZ3JhcGUtbGlzdDogICAgICBcXFxcXFxcImdyYXBlXFxcXFxcXCIsXFxcXG4gICRvYy12aW9sZXQtbGlzdDogICAgICBcXFxcXFxcInZpb2xldFxcXFxcXFwiLFxcXFxuICAkb2MtaW5kaWdvLWxpc3Q6ICAgICAgXFxcXFxcXCJpbmRpZ29cXFxcXFxcIixcXFxcbiAgJG9jLWJsdWUtbGlzdDogICAgICBcXFxcXFxcImJsdWVcXFxcXFxcIixcXFxcbiAgJG9jLWN5YW4tbGlzdDogICAgICBcXFxcXFxcImN5YW5cXFxcXFxcIixcXFxcbiAgJG9jLXRlYWwtbGlzdDogICAgICBcXFxcXFxcInRlYWxcXFxcXFxcIixcXFxcbiAgJG9jLWdyZWVuLWxpc3Q6ICAgICAgXFxcXFxcXCJncmVlblxcXFxcXFwiLFxcXFxuICAkb2MtbGltZS1saXN0OiAgICAgIFxcXFxcXFwibGltZVxcXFxcXFwiLFxcXFxuICAkb2MteWVsbG93LWxpc3Q6ICAgICAgXFxcXFxcXCJ5ZWxsb3dcXFxcXFxcIixcXFxcbiAgJG9jLW9yYW5nZS1saXN0OiAgICAgIFxcXFxcXFwib3JhbmdlXFxcXFxcXCJcXFxcbik7XFxcXG5cXFwiXSxcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoX19fQ1NTX0xPQURFUl9FWFBPUlRfX18pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpOXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OURZWEprTG5OamMzTXVhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN1FVRkJRVHRCUVVNNFNEdEJRVU5xUWp0QlFVTTNSeXc0UWtGQk9FSXNkVWRCUVRKQ0xFTkJRVU1zWjBoQlFYRkRPMEZCUXk5R08wRkJRMEVzYlVSQlFXMUVMR2RFUVVGblJDeEhRVUZITEhWQ1FVRjFRaXhyUWtGQmEwSXNNa0pCUVRKQ0xIZENRVUYzUWl4eFFrRkJjVUlzWjBKQlFXZENMSFZDUVVGMVFpeEhRVUZITEdkRFFVRm5ReXh4UWtGQmNVSXNhMEpCUVd0Q0xHMUNRVUZ0UWl4dlFrRkJiMElzZFVKQlFYVkNMR3REUVVGclF5eHRRa0ZCYlVJc1IwRkJSeXh2UTBGQmIwTXNhMEpCUVd0Q0xHMUNRVUZ0UWl4SFFVRkhMRzFEUVVGdFF5eHpRa0ZCYzBJc2NVSkJRWEZDTEcxQ1FVRnRRaXgzUWtGQmQwSXNSMEZCUnl4MVJFRkJkVVFzYlVKQlFXMUNMRzlDUVVGdlFpeDVRa0ZCZVVJc2QwTkJRWGRETEVkQlFVY3NOa1JCUVRaRUxDdERRVUVyUXl4SFFVRkhMRGhFUVVFNFJDeG5SRUZCWjBRc1IwRkJSeXgzUlVGQmQwVXNiVUpCUVcxQ0xFZEJRVWNzWjBWQlFXZEZMREJDUVVFd1FpeEhRVUZITEU5QlFVOHNNRTFCUVRCTkxGZEJRVmNzVFVGQlRTeExRVUZMTEZWQlFWVXNWMEZCVnl4WFFVRlhMRmRCUVZjc1ZVRkJWU3hYUVVGWExFdEJRVXNzUzBGQlN5eFhRVUZYTEZWQlFWVXNWVUZCVlN4VlFVRlZMRmRCUVZjc1YwRkJWeXhWUVVGVkxFMUJRVTBzUzBGQlN5eFZRVUZWTEZWQlFWVXNTMEZCU3l4TFFVRkxMRmRCUVZjc1YwRkJWeXhWUVVGVkxGZEJRVmNzUzBGQlN5eExRVUZMTEZWQlFWVXNWVUZCVlN4WFFVRlhMRmRCUVZjc1MwRkJTeXhMUVVGTExGZEJRVmNzUzBGQlN5eExRVUZMTEZkQlFWY3NTMEZCU3l4TFFVRkxMRmRCUVZjc1QwRkJUeXhMUVVGTExGZEJRVmNzWjBWQlFXZEZMSFZDUVVGMVFpeHJRMEZCYTBNc1NVRkJTU3hsUVVGbExFdEJRVXNzUjBGQlJ5eHpSRUZCYzBRc1lVRkJZU3gzUTBGQmQwTXNSMEZCUnl4NVEwRkJlVU1zYVVKQlFXbENMRmRCUVZjc2IwSkJRVzlDTERaQ1FVRTJRaXd3UWtGQk1FSXNlVUpCUVhsQ0xHOUNRVUZ2UWl3eVFrRkJNa0lzYjBKQlFXOUNMSGxDUVVGNVFpeHpRa0ZCYzBJc2RVSkJRWFZDTEhkQ1FVRjNRaXd5UWtGQk1rSXNjME5CUVhORExIbENRVUY1UWl4bFFVRmxMSGRDUVVGM1FpeDVRa0ZCZVVJc1UwRkJVeXhQUVVGUExIVkNRVUYxUWl3d1FrRkJNRUlzZVVKQlFYbENMSFZDUVVGMVFpdzBRa0ZCTkVJc1QwRkJUeXcyUTBGQk5rTXNkVUpCUVhWQ0xIZENRVUYzUWl3MlFrRkJOa0lzTkVOQlFUUkRMR2xDUVVGcFFpeHhSRUZCY1VRc1UwRkJVeXhyUWtGQmEwSXNjMFJCUVhORUxGTkJRVk1zTUVKQlFUQkNMREpDUVVFeVFpeFRRVUZUTEc5Q1FVRnZRaXhuUTBGQlowTXNVMEZCVXl4UFFVRlBMRXRCUVVzc1IwRkJSeXhyVEVGQmEwd3NOa0pCUVRaQ0xEUlJRVUUwVVN3NFEwRkJPRU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTUZGQlFUQlJMRFJEUVVFMFF5d3dRMEZCTUVNc01FTkJRVEJETERCRFFVRXdReXd3UTBGQk1FTXNNRU5CUVRCRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5dzBVVUZCTkZFc09FTkJRVGhETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERoUlFVRTRVU3huUkVGQlowUXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNaMUpCUVdkU0xHdEVRVUZyUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blVrRkJaMUlzYTBSQlFXdEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMRFJSUVVFMFVTdzRRMEZCT0VNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05GRkJRVFJSTERoRFFVRTRReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwVVVGQk5GRXNPRU5CUVRoRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEaFJRVUU0VVN4blJFRkJaMFFzT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zTkZGQlFUUlJMRGhEUVVFNFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5eG5Va0ZCWjFJc2EwUkJRV3RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkU1FVRm5VaXhyUkVGQmEwUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNlVVpCUVhsR0xIVmtRVUYxWkN4eFFrRkJjVUk3UVVGRE5XdGhPMEZCUTBFc2FVVkJRV1VzZFVKQlFYVkNMRVZCUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlEWVhKa0xuTmpjM00vTldFMlppSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2THlCSmJYQnZjblJ6WEc1cGJYQnZjblFnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmVTA5VlVrTkZUVUZRWDBsTlVFOVNWRjlmWHlCbWNtOXRJRndpTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZjMjkxY21ObFRXRndjeTVxYzF3aU8xeHVhVzF3YjNKMElGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgwbE5VRTlTVkY5Zlh5Qm1jbTl0SUZ3aUxpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDNKMWJuUnBiV1V2WVhCcExtcHpYQ0k3WEc1MllYSWdYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4Z1BTQmZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOUpUVkJQVWxSZlgxOG9YMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZVMDlWVWtORlRVRlFYMGxOVUU5U1ZGOWZYeWs3WEc0dkx5Qk5iMlIxYkdWY2JsOWZYME5UVTE5TVQwRkVSVkpmUlZoUVQxSlVYMTlmTG5CMWMyZ29XMjF2WkhWc1pTNXBaQ3dnWENJNlpYaHdiM0owSUh0Y1hHNGdJSFJvWlcxbFJtbHNkR1Z5T2lCcGJuWmxjblFvT1RNbEtTQm9kV1V0Y205MFlYUmxLREU0TUdSbFp5azdYRnh1ZlZ4Y2JseGNiaTVsZUdOaGJHbGtjbUYzSUM1RFlYSmtJSHRjWEc0Z0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dUlDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ1kyOXNkVzF1TzF4Y2JpQWdZV3hwWjI0dGFYUmxiWE02SUdObGJuUmxjanRjWEc0Z0lHMWhlQzEzYVdSMGFEb2dNamt3Y0hnN1hGeHVJQ0J0WVhKbmFXNDZJREZsYlR0Y1hHNGdJSFJsZUhRdFlXeHBaMjQ2SUdObGJuUmxjanRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGtOaGNtUWdMa05oY21RdGFXTnZiaUI3WEZ4dUlDQm1iMjUwTFhOcGVtVTZJREl1Tm1WdE8xeGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNYRzRnSUdac1pYZzZJREFnTUNCaGRYUnZPMXhjYmlBZ2NHRmtaR2x1WnpvZ01TNDBjbVZ0TzF4Y2JpQWdZbTl5WkdWeUxYSmhaR2wxY3pvZ05UQWxPMXhjYmlBZ1ltRmphMmR5YjNWdVpEb2dkbUZ5S0MwdFkyRnlaQzFqYjJ4dmNpazdYRnh1SUNCamIyeHZjam9nSTJabVptWm1aanRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGtOaGNtUWdMa05oY21RdGFXTnZiaUJ6ZG1jZ2UxeGNiaUFnZDJsa2RHZzZJREl1T0hKbGJUdGNYRzRnSUdobGFXZG9kRG9nTWk0NGNtVnRPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1UTJGeVpDQXVRMkZ5WkMxa1pYUmhhV3h6SUh0Y1hHNGdJR1p2Ym5RdGMybDZaVG9nTUM0NU5tVnRPMXhjYmlBZ2JXbHVMV2hsYVdkb2REb2dPVEJ3ZUR0Y1hHNGdJSEJoWkdScGJtYzZJREFnTVdWdE8xeGNiaUFnYldGeVoybHVMV0p2ZEhSdmJUb2dZWFYwYnp0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xrTmhjbVFnTGtOaGNtUXRZblYwZEc5dUxsUnZiMnhKWTI5dVgzUjVjR1ZmWW5WMGRHOXVJSHRjWEc0Z0lHaGxhV2RvZERvZ01pNDFjbVZ0TzF4Y2JpQWdiV0Z5WjJsdUxYUnZjRG9nTVdWdE8xeGNiaUFnYldGeVoybHVMV0p2ZEhSdmJUb2dNQzR6WlcwN1hGeHVJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMWpZWEprTFdOdmJHOXlLVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGtOaGNtUWdMa05oY21RdFluVjBkRzl1TGxSdmIyeEpZMjl1WDNSNWNHVmZZblYwZEc5dU9taHZkbVZ5SUh0Y1hHNGdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXTmhjbVF0WTI5c2IzSXRaR0Z5YTJWeUtUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMa05oY21RZ0xrTmhjbVF0WW5WMGRHOXVMbFJ2YjJ4SlkyOXVYM1I1Y0dWZlluVjBkRzl1T21GamRHbDJaU0I3WEZ4dUlDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxallYSmtMV052Ykc5eUxXUmhjbXRsYzNRcE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVRMkZ5WkNBdVEyRnlaQzFpZFhSMGIyNHVWRzl2YkVsamIyNWZkSGx3WlY5aWRYUjBiMjRnTGxSdmIyeEpZMjl1WDE5c1lXSmxiQ0I3WEZ4dUlDQmpiMnh2Y2pvZ0kyWm1abVptWmp0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xrTmhjbVFnTGtOaGNtUXRZblYwZEc5dUxsUnZiMnhKWTI5dVgzUjVjR1ZmWW5WMGRHOXVJQzVUY0dsdWJtVnlJSHRjWEc0Z0lDMHRjM0JwYm01bGNpMWpiMnh2Y2pvZ0kyWm1aanRjWEc1OVhDSXNJRndpWENJc2Uxd2lkbVZ5YzJsdmJsd2lPak1zWENKemIzVnlZMlZ6WENJNlcxd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZZM056TDNaaGNtbGhZbXhsY3k1dGIyUjFiR1V1YzJOemMxd2lMRndpZDJWaWNHRmphem92THk0dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5RFlYSmtMbk5qYzNOY0lpeGNJbmRsWW5CaFkyczZMeTh1THk0dUx5NHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OXZjR1Z1TFdOdmJHOXlMMjl3Wlc0dFkyOXNiM0l1YzJOemMxd2lYU3hjSW01aGJXVnpYQ0k2VzEwc1hDSnRZWEJ3YVc1bmMxd2lPbHdpUVVGVlFUdEZRVU5GTERKRFFVRkJPMEZEVkVZN08wRkJRMFU3UlVGRFJTeGhRVUZCTzBWQlEwRXNjMEpCUVVFN1JVRkRRU3h0UWtGQlFUdEZRVVZCTEdkQ1FVRkJPMFZCUlVFc1YwRkJRVHRGUVVWQkxHdENRVUZCTzBGQlJFbzdRVUZIU1R0RlFVTkZMR2RDUVVGQk8wVkJRMEVzWVVGQlFUdEZRVU5CTEdOQlFVRTdSVUZEUVN4bFFVRkJPMFZCUTBFc2EwSkJRVUU3UlVGRFFTdzJRa0ZCUVR0RlFVTkJMR05EVm1FN1FVUlRia0k3UVVGSFRUdEZRVU5GTEdGQlFVRTdSVUZEUVN4alFVRkJPMEZCUkZJN1FVRkxTVHRGUVVORkxHbENRVUZCTzBWQlEwRXNaMEpCUVVFN1JVRkRRU3hqUVVGQk8wVkJRMEVzYlVKQlFVRTdRVUZJVGp0QlFVMUpPMFZCUTBVc1kwRkJRVHRGUVVOQkxHVkJRVUU3UlVGRFFTeHZRa0ZCUVR0RlFVTkJMRzFEUVVGQk8wRkJTazQ3UVVGTFRUdEZRVU5GTERCRFFVRkJPMEZCU0ZJN1FVRkxUVHRGUVVORkxESkRRVUZCTzBGQlNGSTdRVUZMVFR0RlFVTkZMR05EY2tOWE8wRkVhME51UWp0QlFVMU5PMFZCUTBVc2NVSkJRVUU3UVVGS1Vsd2lMRndpYzI5MWNtTmxjME52Ym5SbGJuUmNJanBiWENKQWFXMXdiM0owSUZ4Y1hDSnZjR1Z1TFdOdmJHOXlMMjl3Wlc0dFkyOXNiM0l1YzJOemMxeGNYQ0k3WEZ4dVhGeHVRRzFwZUdsdUlHbHpUVzlpYVd4bEtDa2dlMXhjYmlBZ1FHRjBMWEp2YjNRZ0xtVjRZMkZzYVdSeVlYY3RMVzF2WW1sc1pTTjdKbjBnZTF4Y2JpQWdJQ0JBWTI5dWRHVnVkRHRjWEc0Z0lIMWNYRzU5WEZ4dVhGeHVKSFJvWlcxbExXWnBiSFJsY2pvZ1hGeGNJbWx1ZG1WeWRDZzVNeVVwSUdoMVpTMXliM1JoZEdVb01UZ3daR1ZuS1Z4Y1hDSTdYRnh1WEZ4dU9tVjRjRzl5ZENCN1hGeHVJQ0IwYUdWdFpVWnBiSFJsY2pvZ2RXNXhkVzkwWlNna2RHaGxiV1V0Wm1sc2RHVnlLVHRjWEc1OVhGeHVYQ0lzWENKQWFXMXdiM0owSUZ4Y1hDSXVMaTlqYzNNdmRtRnlhV0ZpYkdWekxtMXZaSFZzWlZ4Y1hDSTdYRnh1WEZ4dUxtVjRZMkZzYVdSeVlYY2dlMXhjYmlBZ0xrTmhjbVFnZTF4Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeGNiaUFnSUNCbWJHVjRMV1JwY21WamRHbHZiam9nWTI5c2RXMXVPMXhjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXhjYmx4Y2JpQWdJQ0J0WVhndGQybGtkR2c2SURJNU1IQjRPMXhjYmx4Y2JpQWdJQ0J0WVhKbmFXNDZJREZsYlR0Y1hHNWNYRzRnSUNBZ2RHVjRkQzFoYkdsbmJqb2dZMlZ1ZEdWeU8xeGNibHhjYmlBZ0lDQXVRMkZ5WkMxcFkyOXVJSHRjWEc0Z0lDQWdJQ0JtYjI1MExYTnBlbVU2SURJdU5tVnRPMXhjYmlBZ0lDQWdJR1JwYzNCc1lYazZJR1pzWlhnN1hGeHVJQ0FnSUNBZ1pteGxlRG9nTUNBd0lHRjFkRzg3WEZ4dUlDQWdJQ0FnY0dGa1pHbHVaem9nTVM0MGNtVnRPMXhjYmlBZ0lDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEVXdKVHRjWEc0Z0lDQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFqWVhKa0xXTnZiRzl5S1R0Y1hHNGdJQ0FnSUNCamIyeHZjam9nSkc5akxYZG9hWFJsTzF4Y2JseGNiaUFnSUNBZ0lITjJaeUI3WEZ4dUlDQWdJQ0FnSUNCM2FXUjBhRG9nTWk0NGNtVnRPMXhjYmlBZ0lDQWdJQ0FnYUdWcFoyaDBPaUF5TGpoeVpXMDdYRnh1SUNBZ0lDQWdmVnhjYmlBZ0lDQjlYRnh1WEZ4dUlDQWdJQzVEWVhKa0xXUmxkR0ZwYkhNZ2UxeGNiaUFnSUNBZ0lHWnZiblF0YzJsNlpUb2dNQzQ1Tm1WdE8xeGNiaUFnSUNBZ0lHMXBiaTFvWldsbmFIUTZJRGt3Y0hnN1hGeHVJQ0FnSUNBZ2NHRmtaR2x1WnpvZ01DQXhaVzA3WEZ4dUlDQWdJQ0FnYldGeVoybHVMV0p2ZEhSdmJUb2dZWFYwYnp0Y1hHNGdJQ0FnZlZ4Y2JseGNiaUFnSUNBbUlDNURZWEprTFdKMWRIUnZiaTVVYjI5c1NXTnZibDkwZVhCbFgySjFkSFJ2YmlCN1hGeHVJQ0FnSUNBZ2FHVnBaMmgwT2lBeUxqVnlaVzA3WEZ4dUlDQWdJQ0FnYldGeVoybHVMWFJ2Y0RvZ01XVnRPMXhjYmlBZ0lDQWdJRzFoY21kcGJpMWliM1IwYjIwNklEQXVNMlZ0TzF4Y2JpQWdJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV05oY21RdFkyOXNiM0lwTzF4Y2JpQWdJQ0FnSUNZNmFHOTJaWElnZTF4Y2JpQWdJQ0FnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0WTJGeVpDMWpiMnh2Y2kxa1lYSnJaWElwTzF4Y2JpQWdJQ0FnSUgxY1hHNGdJQ0FnSUNBbU9tRmpkR2wyWlNCN1hGeHVJQ0FnSUNBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxallYSmtMV052Ykc5eUxXUmhjbXRsYzNRcE8xeGNiaUFnSUNBZ0lIMWNYRzRnSUNBZ0lDQXVWRzl2YkVsamIyNWZYMnhoWW1Wc0lIdGNYRzRnSUNBZ0lDQWdJR052Ykc5eU9pQWtiMk10ZDJocGRHVTdYRnh1SUNBZ0lDQWdmVnhjYmx4Y2JpQWdJQ0FnSUM1VGNHbHVibVZ5SUh0Y1hHNGdJQ0FnSUNBZ0lDMHRjM0JwYm01bGNpMWpiMnh2Y2pvZ0kyWm1aanRjWEc0Z0lDQWdJQ0I5WEZ4dUlDQWdJSDFjWEc0Z0lIMWNYRzU5WEZ4dVhDSXNYQ0l2TDF4Y2JpOHZYRnh1THk4Z0lQQ2RsNVlnOEoyWG9pRHduWmVmSVBDZGw2SWc4SjJYcFZ4Y2JpOHZJQ0IySURFdU9TNHhYRnh1THk5Y1hHNHZMeUFnNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0JYRnh1WEZ4dVhGeHVMeThnSUVkbGJtVnlZV3hjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxYZG9hWFJsT2lBZ0lDQWdJQ0FnSUNObVptWm1abVk3WEZ4dUpHOWpMV0pzWVdOck9pQWdJQ0FnSUNBZ0lDTXdNREF3TURBN1hGeHVYRnh1WEZ4dUx5OGdJRWR5WVhsY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV2R5WVhrdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWmpobU9XWmhMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpaakZtTTJZMUxGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalpUbGxZMlZtTEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWkdWbE1tVTJMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpZMlZrTkdSaExGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBallXUmlOV0prTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqT0RZNFpUazJMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpORGsxTURVM0xGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak16UXpZVFF3TEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTWpFeU5USTVYRnh1S1R0Y1hHNWNYRzRrYjJNdFozSmhlUzB3T2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE1Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVEk2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMwek9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3RORG9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRVNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0TnpvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxUZzZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzA1T2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lGSmxaRnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGNtVmtMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyWm1aalZtTlN4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJabVpUTmxNeXhjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMlptWXpsak9TeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0kyWm1ZVGhoT0N4Y1hHNGdJRnhjWENJMFhGeGNJam9nSTJabU9EYzROeXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJMlptTm1JMllpeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0kyWmhOVEkxTWl4Y1hHNGdJRnhjWENJM1hGeGNJam9nSTJZd00yVXpaU3hjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJMlV3TXpFek1TeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0kyTTVNbUV5WVZ4Y2JpazdYRnh1WEZ4dUpHOWpMWEpsWkMwd09pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xURTZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxeVpXUXRNam9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxYSmxaQzB6T2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRRNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE5Ub2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVGM2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MXlaV1F0T0RvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMWEpsWkMwNU9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdVR2x1YTF4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRjR2x1YXkxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tWm1Zd1pqWXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTm1abVJsWldJc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNObVkyTXlaRGNzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05tWVdFeVl6RXNYRnh1SUNCY1hGd2lORnhjWENJNklDTm1Oemd6WVdNc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNObU1EWTFPVFVzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ05sTmpRNU9EQXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTmtOak16Tm1Nc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNOak1qSTFOV01zWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ05oTmpGbE5HUmNYRzRwTzF4Y2JseGNiaVJ2WXkxd2FXNXJMVEE2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkweE9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3RNam9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRNNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MDBPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0TlRvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUWTZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTAzT2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE9Eb2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVGs2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1IzSmhjR1ZjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXZHlZWEJsTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlk0WmpCbVl5eGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyWXpaRGxtWVN4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJWbFltVm1ZU3hjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMlUxT1RsbU55eGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0kyUmhOemRtTWl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSTJOak5XUmxPQ3hjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJMkpsTkdKa1lpeGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0kyRmxNMlZqT1N4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpsak16WmlOU3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJemcyTW1VNVkxeGNiaWs3WEZ4dVhGeHVKRzlqTFdkeVlYQmxMVEE2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExURTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRJNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVE02SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUUTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRVNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVFk2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUYzZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRnNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVGs2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lGWnBiMnhsZEZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRkbWx2YkdWMExXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJZelpqQm1aaXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlUxWkdKbVppeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyUXdZbVptWml4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJJeE9UZG1ZeXhjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJemszTnpWbVlTeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0l6ZzBOV1ZtTnl4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpjNU5UQm1NaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJemN3TkRobE9DeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6WTNOREZrT1N4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpWbU0yUmpORnhjYmlrN1hGeHVYRnh1Skc5akxYWnBiMnhsZEMwd09pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRFNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0TWpvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzB6T2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVFE2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXROVG9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUYzZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE9Eb2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMwNU9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnU1c1a2FXZHZYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxcGJtUnBaMjh0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaV1JtTW1abUxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpHSmxOR1ptTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWW1Gak9HWm1MRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpPVEZoTjJabUxGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBak56UTRabVpqTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqTldNM1kyWmhMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpOR00yWldZMUxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak5ESTJNMlZpTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTTJJMVltUmlMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpNelkwWm1NM1hGeHVLVHRjWEc1Y1hHNGtiMk10YVc1a2FXZHZMVEE2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHRNVG9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MHlPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUTTZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE5Eb2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkwMU9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRZNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0TnpvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTA0T2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVGs2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQkNiSFZsWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MWliSFZsTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlUzWmpWbVppeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyUXdaV0ptWml4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJFMVpEaG1aaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJemMwWXpCbVl5eGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0l6UmtZV0ptTnl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXpNek9XRm1NQ3hjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJekl5T0dKbE5peGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6RmpOMlZrTml4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpFNU56RmpNaXhjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJekU0TmpSaFlseGNiaWs3WEZ4dVhGeHVKRzlqTFdKc2RXVXRNRG9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRFNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10WW14MVpTMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0TXpvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUUTZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzAxT2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE5qb2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVGM2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMwNE9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXRPVG9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCRGVXRnVYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxamVXRnVMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyVXpabUZtWXl4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJNMVpqWm1ZU3hjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJems1WlRsbU1peGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0l6WTJaRGxsT0N4Y1hHNGdJRnhjWENJMFhGeGNJam9nSXpOaVl6bGtZaXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJekl5WWpoalppeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0l6RTFZV0ZpWml4Y1hHNGdJRnhjWENJM1hGeGNJam9nSXpFd09UaGhaQ3hjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJekJqT0RVNU9TeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6QmlOekk0TlZ4Y2JpazdYRnh1WEZ4dUpHOWpMV041WVc0dE1Eb2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVEU2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkweU9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHRNem9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRRNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0TmpvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxUYzZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTA0T2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE9Ub2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JVWldGc1hGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTEwWldGc0xXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJVMlptTm1OU3hjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMk16Wm1GbE9DeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0l6azJaakprTnl4Y1hHNGdJRnhjWENJelhGeGNJam9nSXpZelpUWmlaU3hjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJek00WkRsaE9TeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0l6SXdZems1Tnl4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpFeVlqZzROaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJekJqWVRZM09DeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6QTVPVEkyT0N4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpBNE4yWTFZbHhjYmlrN1hGeHVYRnh1Skc5akxYUmxZV3d0TURvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xURTZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzB5T2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE16b2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVFE2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMwMU9pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3ROam9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRjNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0T1RvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQkhjbVZsYmx4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRaM0psWlc0dGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWldKbVltVmxMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpaRE5tT1dRNExGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBallqSm1NbUppTEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqT0dObE9UbGhMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpOamxrWWpkakxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBak5URmpaalkyTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqTkRCak1EVTNMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpNemRpTWpSa0xGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak1tWTVaVFEwTEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTW1JNFlUTmxYRnh1S1R0Y1hHNWNYRzRrYjJNdFozSmxaVzR0TURvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHRNVG9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE1qb2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TXpvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHRORG9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE5Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TmpvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHROem9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE9Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0T1RvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdUR2x0WlZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRiR2x0WlMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tTkdaalpUTXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTmxPV1poWXpnc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNOa09HWTFZVElzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05qTUdWaU56VXNYRnh1SUNCY1hGd2lORnhjWENJNklDTmhPV1V6TkdJc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNNNU5HUTRNbVFzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ000TW1NNU1XVXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTTNOR0k0TVRZc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNMk5tRTRNR1lzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ00xWXprME1HUmNYRzRwTzF4Y2JseGNiaVJ2WXkxc2FXMWxMVEE2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMweE9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXRNam9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRNNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0TlRvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUWTZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzAzT2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE9Eb2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVGs2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1dXVnNiRzkzWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MTVaV3hzYjNjdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWm1abU9XUmlMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpabVptTTJKbUxGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalptWmxZems1TEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWm1abE1EWTJMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpabVprTkROaUxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBalptTmpOREU1TEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqWm1GaU1EQTFMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpaalU1WmpBd0xGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBalpqQTRZekF3TEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqWlRZM056QXdYRnh1S1R0Y1hHNWNYRzRrYjJNdGVXVnNiRzkzTFRBNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0TVRvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTB5T2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVE02SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3RORG9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MDFPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUWTZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE56b2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkwNE9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRrNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JQY21GdVoyVmNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFc5eVlXNW5aUzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1abVkwWlRZc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObVptVTRZMk1zWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05tWm1RNFlUZ3NYRnh1SUNCY1hGd2lNMXhjWENJNklDTm1abU13Tnpnc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNObVptRTVOR1FzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ05tWmpreU1tSXNYRnh1SUNCY1hGd2lObHhjWENJNklDTm1aRGRsTVRRc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNObU56WTNNRGNzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ05sT0RVNU1HTXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTmtPVFE0TUdaY1hHNHBPMXhjYmx4Y2JpUnZZeTF2Y21GdVoyVXRNRG9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUSTZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE16b2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMwME9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRVNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0TmpvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzAzT2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVGc2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXRPVG9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lFTnZiRzl5SUd4cGMzUmNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFdOdmJHOXlMWE53WldOMGNuVnRPaUFnSURrN1hGeHVYRnh1Skc5akxXTnZiRzl5TFd4cGMzUTZJQ2hjWEc0Z0lDUnZZeTFuY21GNUxXeHBjM1E2SUNBZ0lDQWdYRnhjSW1keVlYbGNYRndpTEZ4Y2JpQWdKRzlqTFhKbFpDMXNhWE4wT2lBZ0lDQWdJRnhjWENKeVpXUmNYRndpTEZ4Y2JpQWdKRzlqTFhCcGJtc3RiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWNHbHVhMXhjWENJc1hGeHVJQ0FrYjJNdFozSmhjR1V0YkdsemREb2dJQ0FnSUNCY1hGd2laM0poY0dWY1hGd2lMRnhjYmlBZ0pHOWpMWFpwYjJ4bGRDMXNhWE4wT2lBZ0lDQWdJRnhjWENKMmFXOXNaWFJjWEZ3aUxGeGNiaUFnSkc5akxXbHVaR2xuYnkxc2FYTjBPaUFnSUNBZ0lGeGNYQ0pwYm1ScFoyOWNYRndpTEZ4Y2JpQWdKRzlqTFdKc2RXVXRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aVlteDFaVnhjWENJc1hGeHVJQ0FrYjJNdFkzbGhiaTFzYVhOME9pQWdJQ0FnSUZ4Y1hDSmplV0Z1WEZ4Y0lpeGNYRzRnSUNSdll5MTBaV0ZzTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJblJsWVd4Y1hGd2lMRnhjYmlBZ0pHOWpMV2R5WldWdUxXeHBjM1E2SUNBZ0lDQWdYRnhjSW1keVpXVnVYRnhjSWl4Y1hHNGdJQ1J2WXkxc2FXMWxMV3hwYzNRNklDQWdJQ0FnWEZ4Y0lteHBiV1ZjWEZ3aUxGeGNiaUFnSkc5akxYbGxiR3h2ZHkxc2FYTjBPaUFnSUNBZ0lGeGNYQ0o1Wld4c2IzZGNYRndpTEZ4Y2JpQWdKRzlqTFc5eVlXNW5aUzFzYVhOME9pQWdJQ0FnSUZ4Y1hDSnZjbUZ1WjJWY1hGd2lYRnh1S1R0Y1hHNWNJbDBzWENKemIzVnlZMlZTYjI5MFhDSTZYQ0pjSW4xZEtUdGNiaTh2SUVWNGNHOXlkSE5jYm1WNGNHOXlkQ0JrWldaaGRXeDBJRjlmWDBOVFUxOU1UMEZFUlZKZlJWaFFUMUpVWDE5Zk8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvQ2FyZC5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0NoZWNrYm94SXRlbS5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9DaGVja2JveEl0ZW0uc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLy8gSW1wb3J0c1xcblxcblxcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxuLy8gTW9kdWxlXFxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcXFwiOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxcXG59XFxcXG5cXFxcbi5leGNhbGlkcmF3IC5DaGVja2JveCB7XFxcXG4gIG1hcmdpbjogNHB4IDAuM2VtO1xcXFxuICBkaXNwbGF5OiBmbGV4O1xcXFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICBjdXJzb3I6IHBvaW50ZXI7XFxcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxcXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3g6aG92ZXI6bm90KC5pcy1jaGVja2VkKSAuQ2hlY2tib3gtYm94Om5vdCg6Zm9jdXMpIHtcXFxcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICM0ZGFiZjc7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3g6aG92ZXI6bm90KC5pcy1jaGVja2VkKSAuQ2hlY2tib3gtYm94Om5vdCg6Zm9jdXMpIHN2ZyB7XFxcXG4gIGRpc3BsYXk6IGJsb2NrO1xcXFxuICBvcGFjaXR5OiAwLjM7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3g6YWN0aXZlIC5DaGVja2JveC1ib3gge1xcXFxuICBib3gtc2hhZG93OiAwIDAgMnB4IDFweCBpbnNldCAjMWM3ZWQ2ICFpbXBvcnRhbnQ7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3g6aG92ZXIgLkNoZWNrYm94LWJveCB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjA4LCAyMzUsIDI1NSwgMC4yKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5DaGVja2JveC5pcy1jaGVja2VkIC5DaGVja2JveC1ib3gge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBlYmZmO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkNoZWNrYm94LmlzLWNoZWNrZWQgLkNoZWNrYm94LWJveCBzdmcge1xcXFxuICBkaXNwbGF5OiBibG9jaztcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5DaGVja2JveC5pcy1jaGVja2VkOmhvdmVyIC5DaGVja2JveC1ib3gge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTVkOGZmO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkNoZWNrYm94IC5DaGVja2JveC1ib3gge1xcXFxuICB3aWR0aDogMjJweDtcXFxcbiAgaGVpZ2h0OiAyMnB4O1xcXFxuICBwYWRkaW5nOiAwO1xcXFxuICBmbGV4OiAwIDAgYXV0bztcXFxcbiAgbWFyZ2luOiAwIDFlbTtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCAjMWM3ZWQ2O1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXFxcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xcXFxuICBjb2xvcjogIzFjN2VkNjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5DaGVja2JveCAuQ2hlY2tib3gtYm94OmZvY3VzIHtcXFxcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICMxYzdlZDY7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3ggLkNoZWNrYm94LWJveCBzdmcge1xcXFxuICBkaXNwbGF5OiBub25lO1xcXFxuICB3aWR0aDogMTZweDtcXFxcbiAgaGVpZ2h0OiAxNnB4O1xcXFxuICBzdHJva2Utd2lkdGg6IDNweDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5DaGVja2JveCAuQ2hlY2tib3gtbGFiZWwge1xcXFxuICBkaXNwbGF5OiBmbGV4O1xcXFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkNoZWNrYm94IC5leGNhbGlkcmF3LXRvb2x0aXAtaWNvbiB7XFxcXG4gIHdpZHRoOiAxZW07XFxcXG4gIGhlaWdodDogMWVtO1xcXFxufVxcXCIsIFxcXCJcXFwiLHtcXFwidmVyc2lvblxcXCI6MyxcXFwic291cmNlc1xcXCI6W1xcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9DaGVja2JveEl0ZW0uc2Nzc1xcXCJdLFxcXCJuYW1lc1xcXCI6W10sXFxcIm1hcHBpbmdzXFxcIjpcXFwiQUFVQTtFQUNFLDJDQUFBO0FDVEY7O0FBQ0U7RUFDRSxpQkFBQTtFQUNBLGFBQUE7RUFDQSxtQkFBQTtFQUVBLGVBQUE7RUFDQSx5QkFBQTtVQUFBLGlCQUFBO0VBRUEsd0NBQUE7QUFBSjtBQUVJO0VBQ0UsNkJBQUE7QUFBTjtBQUlNO0VBQ0UsY0FBQTtFQUNBLFlBQUE7QUFGUjtBQU9NO0VBQ0UsZ0RBQUE7QUFMUjtBQVVNO0VBQ0UsMENBQUE7QUFSUjtBQWFNO0VBQ0UseUJBQUE7QUFYUjtBQVlRO0VBQ0UsY0FBQTtBQVZWO0FBYU07RUFDRSx5QkFBQTtBQVhSO0FBZUk7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLFVBQUE7RUFDQSxjQUFBO0VBRUEsYUFBQTtFQUVBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0VBRUEsNkJBQUE7RUFDQSw2QkFBQTtFQUNBLGtCQUFBO0VBRUEsY0FBQTtBQWpCTjtBQW1CTTtFQUNFLDZCQUFBO0FBakJSO0FBb0JNO0VBQ0UsYUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7QUFsQlI7QUFzQkk7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7QUFwQk47QUF1Qkk7RUFDRSxVQUFBO0VBQ0EsV0FBQTtBQXJCTlxcXCIsXFxcInNvdXJjZXNDb250ZW50XFxcIjpbXFxcIkBpbXBvcnQgXFxcXFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXFxcXFwiO1xcXFxuXFxcXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXFxcbiAgICBAY29udGVudDtcXFxcbiAgfVxcXFxufVxcXFxuXFxcXG4kdGhlbWUtZmlsdGVyOiBcXFxcXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXFxcXFwiO1xcXFxuXFxcXG46ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxcXG59XFxcXG5cXFwiLFxcXCJAaW1wb3J0IFxcXFxcXFwiLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGVcXFxcXFxcIjtcXFxcblxcXFxuLmV4Y2FsaWRyYXcge1xcXFxuICAuQ2hlY2tib3gge1xcXFxuICAgIG1hcmdpbjogNHB4IDAuM2VtO1xcXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcblxcXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXFxcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXFxcblxcXFxuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxcXG5cXFxcbiAgICAmOmhvdmVyOm5vdCguaXMtY2hlY2tlZCkgLkNoZWNrYm94LWJveDpub3QoOmZvY3VzKSB7XFxcXG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggI3skb2MtYmx1ZS00fTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAmOmhvdmVyOm5vdCguaXMtY2hlY2tlZCkgLkNoZWNrYm94LWJveDpub3QoOmZvY3VzKSB7XFxcXG4gICAgICBzdmcge1xcXFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXFxcbiAgICAgICAgb3BhY2l0eTogMC4zO1xcXFxuICAgICAgfVxcXFxuICAgIH1cXFxcblxcXFxuICAgICY6YWN0aXZlIHtcXFxcbiAgICAgIC5DaGVja2JveC1ib3gge1xcXFxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMnB4IDFweCBpbnNldCAjeyRvYy1ibHVlLTd9ICFpbXBvcnRhbnQ7XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJjpob3ZlciB7XFxcXG4gICAgICAuQ2hlY2tib3gtYm94IHtcXFxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZmFkZS1vdXQoJG9jLWJsdWUtMSwgMC44KTtcXFxcbiAgICAgIH1cXFxcbiAgICB9XFxcXG5cXFxcbiAgICAmLmlzLWNoZWNrZWQge1xcXFxuICAgICAgLkNoZWNrYm94LWJveCB7XFxcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICN7JG9jLWJsdWUtMX07XFxcXG4gICAgICAgIHN2ZyB7XFxcXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgIH1cXFxcbiAgICAgICY6aG92ZXIgLkNoZWNrYm94LWJveCB7XFxcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICN7JG9jLWJsdWUtMn07XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgLkNoZWNrYm94LWJveCB7XFxcXG4gICAgICB3aWR0aDogMjJweDtcXFxcbiAgICAgIGhlaWdodDogMjJweDtcXFxcbiAgICAgIHBhZGRpbmc6IDA7XFxcXG4gICAgICBmbGV4OiAwIDAgYXV0bztcXFxcblxcXFxuICAgICAgbWFyZ2luOiAwIDFlbTtcXFxcblxcXFxuICAgICAgZGlzcGxheTogZmxleDtcXFxcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXFxcblxcXFxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICN7JG9jLWJsdWUtN307XFxcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXFxcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcXFxcblxcXFxuICAgICAgY29sb3I6ICN7JG9jLWJsdWUtN307XFxcXG5cXFxcbiAgICAgICY6Zm9jdXMge1xcXFxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggI3skb2MtYmx1ZS03fTtcXFxcbiAgICAgIH1cXFxcblxcXFxuICAgICAgc3ZnIHtcXFxcbiAgICAgICAgZGlzcGxheTogbm9uZTtcXFxcbiAgICAgICAgd2lkdGg6IDE2cHg7XFxcXG4gICAgICAgIGhlaWdodDogMTZweDtcXFxcbiAgICAgICAgc3Ryb2tlLXdpZHRoOiAzcHg7XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgLkNoZWNrYm94LWxhYmVsIHtcXFxcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICAgIH1cXFxcblxcXFxuICAgIC5leGNhbGlkcmF3LXRvb2x0aXAtaWNvbiB7XFxcXG4gICAgICB3aWR0aDogMWVtO1xcXFxuICAgICAgaGVpZ2h0OiAxZW07XFxcXG4gICAgfVxcXFxuICB9XFxcXG59XFxcXG5cXFwiXSxcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoX19fQ1NTX0xPQURFUl9FWFBPUlRfX18pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpOXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OURhR1ZqYTJKdmVFbDBaVzB1YzJOemN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3p0QlFVRkJPMEZCUXpoSU8wRkJRMnBDTzBGQlF6ZEhMRGhDUVVFNFFpeDFSMEZCTWtJc1EwRkJReXhuU0VGQmNVTTdRVUZETDBZN1FVRkRRU3h0UkVGQmJVUXNaMFJCUVdkRUxFZEJRVWNzTWtKQlFUSkNMSE5DUVVGelFpeHJRa0ZCYTBJc2QwSkJRWGRDTEc5Q1FVRnZRaXc0UWtGQk9FSXNPRUpCUVRoQ0xEWkRRVUUyUXl4SFFVRkhMREJGUVVFd1JTeHJRMEZCYTBNc1IwRkJSeXc0UlVGQk9FVXNiVUpCUVcxQ0xHbENRVUZwUWl4SFFVRkhMRGhEUVVFNFF5eHhSRUZCY1VRc1IwRkJSeXcyUTBGQk5rTXNLME5CUVN0RExFZEJRVWNzYTBSQlFXdEVMRGhDUVVFNFFpeEhRVUZITEhORVFVRnpSQ3h0UWtGQmJVSXNSMEZCUnl4M1JFRkJkMFFzT0VKQlFUaENMRWRCUVVjc2RVTkJRWFZETEdkQ1FVRm5RaXhwUWtGQmFVSXNaVUZCWlN4dFFrRkJiVUlzYTBKQlFXdENMR3RDUVVGclFpeDNRa0ZCZDBJc05FSkJRVFJDTEd0RFFVRnJReXhyUTBGQmEwTXNkVUpCUVhWQ0xHMUNRVUZ0UWl4SFFVRkhMRFpEUVVFMlF5eHJRMEZCYTBNc1IwRkJSeXd5UTBGQk1rTXNhMEpCUVd0Q0xHZENRVUZuUWl4cFFrRkJhVUlzYzBKQlFYTkNMRWRCUVVjc2VVTkJRWGxETEd0Q1FVRnJRaXgzUWtGQmQwSXNSMEZCUnl4clJFRkJhMFFzWlVGQlpTeG5Ra0ZCWjBJc1IwRkJSeXhQUVVGUExHMUtRVUZ0U2l4WFFVRlhMRTFCUVUwc1MwRkJTeXhYUVVGWExGVkJRVlVzVjBGQlZ5eFZRVUZWTEZkQlFWY3NWMEZCVnl4WFFVRlhMRXRCUVVzc1MwRkJTeXhYUVVGWExFdEJRVXNzUzBGQlN5eFZRVUZWTEZWQlFWVXNTMEZCU3l4TFFVRkxMRmRCUVZjc1MwRkJTeXhMUVVGTExGZEJRVmNzUzBGQlN5eExRVUZMTEZkQlFWY3NTMEZCU3l4TFFVRkxMRlZCUVZVc1MwRkJTeXhMUVVGTExGZEJRVmNzUzBGQlN5eExRVUZMTEZWQlFWVXNWVUZCVlN4VlFVRlZMRlZCUVZVc1ZVRkJWU3hWUVVGVkxGZEJRVmNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4VlFVRlZMRTFCUVUwc1RVRkJUU3hYUVVGWExFMUJRVTBzVFVGQlRTeFZRVUZWTEZWQlFWVXNWVUZCVlN4WFFVRlhMRTFCUVUwc1RVRkJUU3hWUVVGVkxGZEJRVmNzVFVGQlRTeE5RVUZOTEZWQlFWVXNWVUZCVlN4cFJVRkJhVVVzZFVKQlFYVkNMR3REUVVGclF5eEpRVUZKTEdWQlFXVXNTMEZCU3l4SFFVRkhMSE5FUVVGelJDeGhRVUZoTEhkRFFVRjNReXhIUVVGSExIbERRVUY1UXl4cFFrRkJhVUlzWlVGQlpTeDNRa0ZCZDBJc2IwSkJRVzlDTERCQ1FVRXdRaXgzUWtGQmQwSXNkMEpCUVhkQ0xHbEVRVUZwUkN3MFJFRkJORVFzWjBOQlFXZERMRmxCUVZrc1QwRkJUeXcwUkVGQk5FUXNZVUZCWVN4NVFrRkJlVUlzZFVKQlFYVkNMRk5CUVZNc1QwRkJUeXhyUWtGQmEwSXNkVUpCUVhWQ0xEQkRRVUV3UXl4WlFVRlpMRmRCUVZjc1UwRkJVeXhQUVVGUExHbENRVUZwUWl4MVFrRkJkVUlzYzBSQlFYTkVMRk5CUVZNc1QwRkJUeXh6UWtGQmMwSXNkVUpCUVhWQ0xEaENRVUU0UWl4WlFVRlpMR1ZCUVdVc01rSkJRVEpDTEZkQlFWY3NVMEZCVXl3clFrRkJLMElzT0VKQlFUaENMRmxCUVZrc1UwRkJVeXhQUVVGUExIVkNRVUYxUWl4dlFrRkJiMElzY1VKQlFYRkNMRzFDUVVGdFFpeDFRa0ZCZFVJc2QwSkJRWGRDTEhkQ1FVRjNRaXcwUWtGQk5FSXNaME5CUVdkRExHdERRVUZyUXl4WlFVRlpMSE5EUVVGelF5d3lRa0ZCTWtJc2JVSkJRVzFDTEZsQlFWa3NiVUpCUVcxQ0xHdERRVUZyUXl4WlFVRlpMRk5CUVZNc1pVRkJaU3gzUWtGQmQwSXNjMEpCUVhOQ0xIVkNRVUYxUWl3MFFrRkJORUlzVTBGQlV5eFBRVUZQTEhsQ1FVRjVRaXh6UWtGQmMwSXNORUpCUVRSQ0xFOUJRVThzYTBOQlFXdERMRzFDUVVGdFFpeHZRa0ZCYjBJc1QwRkJUeXhMUVVGTExFZEJRVWNzY1VKQlFYRkNPMEZCUTJoMVNUdEJRVU5CTEdsRlFVRmxMSFZDUVVGMVFpeEZRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZRMmhsWTJ0aWIzaEpkR1Z0TG5OamMzTS9OR1V5TlNKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZMeUJKYlhCdmNuUnpYRzVwYlhCdmNuUWdYMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZVMDlWVWtORlRVRlFYMGxOVUU5U1ZGOWZYeUJtY205dElGd2lMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwzSjFiblJwYldVdmMyOTFjbU5sVFdGd2N5NXFjMXdpTzF4dWFXMXdiM0owSUY5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDBsTlVFOVNWRjlmWHlCbWNtOXRJRndpTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZZWEJwTG1welhDSTdYRzUyWVhJZ1gxOWZRMU5UWDB4UFFVUkZVbDlGV0ZCUFVsUmZYMThnUFNCZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5SlRWQlBVbFJmWDE4b1gxOWZRMU5UWDB4UFFVUkZVbDlCVUVsZlUwOVZVa05GVFVGUVgwbE5VRTlTVkY5Zlh5azdYRzR2THlCTmIyUjFiR1ZjYmw5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZMbkIxYzJnb1cyMXZaSFZzWlM1cFpDd2dYQ0k2Wlhod2IzSjBJSHRjWEc0Z0lIUm9aVzFsUm1sc2RHVnlPaUJwYm5abGNuUW9PVE1sS1NCb2RXVXRjbTkwWVhSbEtERTRNR1JsWnlrN1hGeHVmVnhjYmx4Y2JpNWxlR05oYkdsa2NtRjNJQzVEYUdWamEySnZlQ0I3WEZ4dUlDQnRZWEpuYVc0NklEUndlQ0F3TGpObGJUdGNYRzRnSUdScGMzQnNZWGs2SUdac1pYZzdYRnh1SUNCaGJHbG5iaTFwZEdWdGN6b2dZMlZ1ZEdWeU8xeGNiaUFnWTNWeWMyOXlPaUJ3YjJsdWRHVnlPMXhjYmlBZ0xYZGxZbXRwZEMxMWMyVnlMWE5sYkdWamREb2dibTl1WlR0Y1hHNGdJQ0FnSUNBZ0lDQWdkWE5sY2kxelpXeGxZM1E2SUc1dmJtVTdYRnh1SUNBdGQyVmlhMmwwTFhSaGNDMW9hV2RvYkdsbmFIUXRZMjlzYjNJNklIUnlZVzV6Y0dGeVpXNTBPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1UTJobFkydGliM2c2YUc5MlpYSTZibTkwS0M1cGN5MWphR1ZqYTJWa0tTQXVRMmhsWTJ0aWIzZ3RZbTk0T201dmRDZzZabTlqZFhNcElIdGNYRzRnSUdKdmVDMXphR0ZrYjNjNklEQWdNQ0F3SURKd2VDQWpOR1JoWW1ZM08xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVRMmhsWTJ0aWIzZzZhRzkyWlhJNmJtOTBLQzVwY3kxamFHVmphMlZrS1NBdVEyaGxZMnRpYjNndFltOTRPbTV2ZENnNlptOWpkWE1wSUhOMlp5QjdYRnh1SUNCa2FYTndiR0Y1T2lCaWJHOWphenRjWEc0Z0lHOXdZV05wZEhrNklEQXVNenRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGtOb1pXTnJZbTk0T21GamRHbDJaU0F1UTJobFkydGliM2d0WW05NElIdGNYRzRnSUdKdmVDMXphR0ZrYjNjNklEQWdNQ0F5Y0hnZ01YQjRJR2x1YzJWMElDTXhZemRsWkRZZ0lXbHRjRzl5ZEdGdWREdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMa05vWldOclltOTRPbWh2ZG1WeUlDNURhR1ZqYTJKdmVDMWliM2dnZTF4Y2JpQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2djbWRpWVNneU1EZ3NJREl6TlN3Z01qVTFMQ0F3TGpJcE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVRMmhsWTJ0aWIzZ3VhWE10WTJobFkydGxaQ0F1UTJobFkydGliM2d0WW05NElIdGNYRzRnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNOa01HVmlabVk3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1RGFHVmphMkp2ZUM1cGN5MWphR1ZqYTJWa0lDNURhR1ZqYTJKdmVDMWliM2dnYzNabklIdGNYRzRnSUdScGMzQnNZWGs2SUdKc2IyTnJPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1UTJobFkydGliM2d1YVhNdFkyaGxZMnRsWkRwb2IzWmxjaUF1UTJobFkydGliM2d0WW05NElIdGNYRzRnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNOaE5XUTRabVk3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1RGFHVmphMkp2ZUNBdVEyaGxZMnRpYjNndFltOTRJSHRjWEc0Z0lIZHBaSFJvT2lBeU1uQjRPMXhjYmlBZ2FHVnBaMmgwT2lBeU1uQjRPMXhjYmlBZ2NHRmtaR2x1WnpvZ01EdGNYRzRnSUdac1pYZzZJREFnTUNCaGRYUnZPMXhjYmlBZ2JXRnlaMmx1T2lBd0lERmxiVHRjWEc0Z0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dUlDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXhjYmlBZ2FuVnpkR2xtZVMxamIyNTBaVzUwT2lCalpXNTBaWEk3WEZ4dUlDQmliM2d0YzJoaFpHOTNPaUF3SURBZ01DQXljSGdnSXpGak4yVmtOanRjWEc0Z0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIUnlZVzV6Y0dGeVpXNTBPMXhjYmlBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTkhCNE8xeGNiaUFnWTI5c2IzSTZJQ014WXpkbFpEWTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVEYUdWamEySnZlQ0F1UTJobFkydGliM2d0WW05NE9tWnZZM1Z6SUh0Y1hHNGdJR0p2ZUMxemFHRmtiM2M2SURBZ01DQXdJRE53ZUNBak1XTTNaV1EyTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVEyaGxZMnRpYjNnZ0xrTm9aV05yWW05NExXSnZlQ0J6ZG1jZ2UxeGNiaUFnWkdsemNHeGhlVG9nYm05dVpUdGNYRzRnSUhkcFpIUm9PaUF4Tm5CNE8xeGNiaUFnYUdWcFoyaDBPaUF4Tm5CNE8xeGNiaUFnYzNSeWIydGxMWGRwWkhSb09pQXpjSGc3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1RGFHVmphMkp2ZUNBdVEyaGxZMnRpYjNndGJHRmlaV3dnZTF4Y2JpQWdaR2x6Y0d4aGVUb2dabXhsZUR0Y1hHNGdJR0ZzYVdkdUxXbDBaVzF6T2lCalpXNTBaWEk3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1RGFHVmphMkp2ZUNBdVpYaGpZV3hwWkhKaGR5MTBiMjlzZEdsd0xXbGpiMjRnZTF4Y2JpQWdkMmxrZEdnNklERmxiVHRjWEc0Z0lHaGxhV2RvZERvZ01XVnRPMXhjYm4xY0lpd2dYQ0pjSWl4N1hDSjJaWEp6YVc5dVhDSTZNeXhjSW5OdmRYSmpaWE5jSWpwYlhDSjNaV0p3WVdOck9pOHZMaTh1TGk4dUxpOWpjM012ZG1GeWFXRmliR1Z6TG0xdlpIVnNaUzV6WTNOelhDSXNYQ0ozWldKd1lXTnJPaTh2TGk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDBOb1pXTnJZbTk0U1hSbGJTNXpZM056WENKZExGd2libUZ0WlhOY0lqcGJYU3hjSW0xaGNIQnBibWR6WENJNlhDSkJRVlZCTzBWQlEwVXNNa05CUVVFN1FVTlVSanM3UVVGRFJUdEZRVU5GTEdsQ1FVRkJPMFZCUTBFc1lVRkJRVHRGUVVOQkxHMUNRVUZCTzBWQlJVRXNaVUZCUVR0RlFVTkJMSGxDUVVGQk8xVkJRVUVzYVVKQlFVRTdSVUZGUVN4M1EwRkJRVHRCUVVGS08wRkJSVWs3UlVGRFJTdzJRa0ZCUVR0QlFVRk9PMEZCU1UwN1JVRkRSU3hqUVVGQk8wVkJRMEVzV1VGQlFUdEJRVVpTTzBGQlQwMDdSVUZEUlN4blJFRkJRVHRCUVV4U08wRkJWVTA3UlVGRFJTd3dRMEZCUVR0QlFWSlNPMEZCWVUwN1JVRkRSU3g1UWtGQlFUdEJRVmhTTzBGQldWRTdSVUZEUlN4alFVRkJPMEZCVmxZN1FVRmhUVHRGUVVORkxIbENRVUZCTzBGQldGSTdRVUZsU1R0RlFVTkZMRmRCUVVFN1JVRkRRU3haUVVGQk8wVkJRMEVzVlVGQlFUdEZRVU5CTEdOQlFVRTdSVUZGUVN4aFFVRkJPMFZCUlVFc1lVRkJRVHRGUVVOQkxHMUNRVUZCTzBWQlEwRXNkVUpCUVVFN1JVRkZRU3cyUWtGQlFUdEZRVU5CTERaQ1FVRkJPMFZCUTBFc2EwSkJRVUU3UlVGRlFTeGpRVUZCTzBGQmFrSk9PMEZCYlVKTk8wVkJRMFVzTmtKQlFVRTdRVUZxUWxJN1FVRnZRazA3UlVGRFJTeGhRVUZCTzBWQlEwRXNWMEZCUVR0RlFVTkJMRmxCUVVFN1JVRkRRU3hwUWtGQlFUdEJRV3hDVWp0QlFYTkNTVHRGUVVORkxHRkJRVUU3UlVGRFFTeHRRa0ZCUVR0QlFYQkNUanRCUVhWQ1NUdEZRVU5GTEZWQlFVRTdSVUZEUVN4WFFVRkJPMEZCY2tKT1hDSXNYQ0p6YjNWeVkyVnpRMjl1ZEdWdWRGd2lPbHRjSWtCcGJYQnZjblFnWEZ4Y0ltOXdaVzR0WTI5c2IzSXZiM0JsYmkxamIyeHZjaTV6WTNOelhGeGNJanRjWEc1Y1hHNUFiV2w0YVc0Z2FYTk5iMkpwYkdVb0tTQjdYRnh1SUNCQVlYUXRjbTl2ZENBdVpYaGpZV3hwWkhKaGR5MHRiVzlpYVd4bEkzc21mU0I3WEZ4dUlDQWdJRUJqYjI1MFpXNTBPMXhjYmlBZ2ZWeGNibjFjWEc1Y1hHNGtkR2hsYldVdFptbHNkR1Z5T2lCY1hGd2lhVzUyWlhKMEtEa3pKU2tnYUhWbExYSnZkR0YwWlNneE9EQmtaV2NwWEZ4Y0lqdGNYRzVjWEc0NlpYaHdiM0owSUh0Y1hHNGdJSFJvWlcxbFJtbHNkR1Z5T2lCMWJuRjFiM1JsS0NSMGFHVnRaUzFtYVd4MFpYSXBPMXhjYm4xY1hHNWNJaXhjSWtCcGJYQnZjblFnWEZ4Y0lpNHVMMk56Y3k5MllYSnBZV0pzWlhNdWJXOWtkV3hsWEZ4Y0lqdGNYRzVjWEc0dVpYaGpZV3hwWkhKaGR5QjdYRnh1SUNBdVEyaGxZMnRpYjNnZ2UxeGNiaUFnSUNCdFlYSm5hVzQ2SURSd2VDQXdMak5sYlR0Y1hHNGdJQ0FnWkdsemNHeGhlVG9nWm14bGVEdGNYRzRnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzVjWEc0Z0lDQWdZM1Z5YzI5eU9pQndiMmx1ZEdWeU8xeGNiaUFnSUNCMWMyVnlMWE5sYkdWamREb2dibTl1WlR0Y1hHNWNYRzRnSUNBZ0xYZGxZbXRwZEMxMFlYQXRhR2xuYUd4cFoyaDBMV052Ykc5eU9pQjBjbUZ1YzNCaGNtVnVkRHRjWEc1Y1hHNGdJQ0FnSmpwb2IzWmxjanB1YjNRb0xtbHpMV05vWldOclpXUXBJQzVEYUdWamEySnZlQzFpYjNnNmJtOTBLRHBtYjJOMWN5a2dlMXhjYmlBZ0lDQWdJR0p2ZUMxemFHRmtiM2M2SURBZ01DQXdJREp3ZUNBamV5UnZZeTFpYkhWbExUUjlPMXhjYmlBZ0lDQjlYRnh1WEZ4dUlDQWdJQ1k2YUc5MlpYSTZibTkwS0M1cGN5MWphR1ZqYTJWa0tTQXVRMmhsWTJ0aWIzZ3RZbTk0T201dmRDZzZabTlqZFhNcElIdGNYRzRnSUNBZ0lDQnpkbWNnZTF4Y2JpQWdJQ0FnSUNBZ1pHbHpjR3hoZVRvZ1lteHZZMnM3WEZ4dUlDQWdJQ0FnSUNCdmNHRmphWFI1T2lBd0xqTTdYRnh1SUNBZ0lDQWdmVnhjYmlBZ0lDQjlYRnh1WEZ4dUlDQWdJQ1k2WVdOMGFYWmxJSHRjWEc0Z0lDQWdJQ0F1UTJobFkydGliM2d0WW05NElIdGNYRzRnSUNBZ0lDQWdJR0p2ZUMxemFHRmtiM2M2SURBZ01DQXljSGdnTVhCNElHbHVjMlYwSUNON0pHOWpMV0pzZFdVdE4zMGdJV2x0Y0c5eWRHRnVkRHRjWEc0Z0lDQWdJQ0I5WEZ4dUlDQWdJSDFjWEc1Y1hHNGdJQ0FnSmpwb2IzWmxjaUI3WEZ4dUlDQWdJQ0FnTGtOb1pXTnJZbTk0TFdKdmVDQjdYRnh1SUNBZ0lDQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUJtWVdSbExXOTFkQ2drYjJNdFlteDFaUzB4TENBd0xqZ3BPMXhjYmlBZ0lDQWdJSDFjWEc0Z0lDQWdmVnhjYmx4Y2JpQWdJQ0FtTG1sekxXTm9aV05yWldRZ2UxeGNiaUFnSUNBZ0lDNURhR1ZqYTJKdmVDMWliM2dnZTF4Y2JpQWdJQ0FnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ0kzc2tiMk10WW14MVpTMHhmVHRjWEc0Z0lDQWdJQ0FnSUhOMlp5QjdYRnh1SUNBZ0lDQWdJQ0FnSUdScGMzQnNZWGs2SUdKc2IyTnJPMXhjYmlBZ0lDQWdJQ0FnZlZ4Y2JpQWdJQ0FnSUgxY1hHNGdJQ0FnSUNBbU9taHZkbVZ5SUM1RGFHVmphMkp2ZUMxaWIzZ2dlMXhjYmlBZ0lDQWdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nSTNza2IyTXRZbXgxWlMweWZUdGNYRzRnSUNBZ0lDQjlYRnh1SUNBZ0lIMWNYRzVjWEc0Z0lDQWdMa05vWldOclltOTRMV0p2ZUNCN1hGeHVJQ0FnSUNBZ2QybGtkR2c2SURJeWNIZzdYRnh1SUNBZ0lDQWdhR1ZwWjJoME9pQXlNbkI0TzF4Y2JpQWdJQ0FnSUhCaFpHUnBibWM2SURBN1hGeHVJQ0FnSUNBZ1pteGxlRG9nTUNBd0lHRjFkRzg3WEZ4dVhGeHVJQ0FnSUNBZ2JXRnlaMmx1T2lBd0lERmxiVHRjWEc1Y1hHNGdJQ0FnSUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ0lDQWdJR0ZzYVdkdUxXbDBaVzF6T2lCalpXNTBaWEk3WEZ4dUlDQWdJQ0FnYW5WemRHbG1lUzFqYjI1MFpXNTBPaUJqWlc1MFpYSTdYRnh1WEZ4dUlDQWdJQ0FnWW05NExYTm9ZV1J2ZHpvZ01DQXdJREFnTW5CNElDTjdKRzlqTFdKc2RXVXROMzA3WEZ4dUlDQWdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZEhKaGJuTndZWEpsYm5RN1hGeHVJQ0FnSUNBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTkhCNE8xeGNibHhjYmlBZ0lDQWdJR052Ykc5eU9pQWpleVJ2WXkxaWJIVmxMVGQ5TzF4Y2JseGNiaUFnSUNBZ0lDWTZabTlqZFhNZ2UxeGNiaUFnSUNBZ0lDQWdZbTk0TFhOb1lXUnZkem9nTUNBd0lEQWdNM0I0SUNON0pHOWpMV0pzZFdVdE4zMDdYRnh1SUNBZ0lDQWdmVnhjYmx4Y2JpQWdJQ0FnSUhOMlp5QjdYRnh1SUNBZ0lDQWdJQ0JrYVhOd2JHRjVPaUJ1YjI1bE8xeGNiaUFnSUNBZ0lDQWdkMmxrZEdnNklERTJjSGc3WEZ4dUlDQWdJQ0FnSUNCb1pXbG5hSFE2SURFMmNIZzdYRnh1SUNBZ0lDQWdJQ0J6ZEhKdmEyVXRkMmxrZEdnNklETndlRHRjWEc0Z0lDQWdJQ0I5WEZ4dUlDQWdJSDFjWEc1Y1hHNGdJQ0FnTGtOb1pXTnJZbTk0TFd4aFltVnNJSHRjWEc0Z0lDQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeGNiaUFnSUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJqWlc1MFpYSTdYRnh1SUNBZ0lIMWNYRzVjWEc0Z0lDQWdMbVY0WTJGc2FXUnlZWGN0ZEc5dmJIUnBjQzFwWTI5dUlIdGNYRzRnSUNBZ0lDQjNhV1IwYURvZ01XVnRPMXhjYmlBZ0lDQWdJR2hsYVdkb2REb2dNV1Z0TzF4Y2JpQWdJQ0I5WEZ4dUlDQjlYRnh1ZlZ4Y2Jsd2lYU3hjSW5OdmRYSmpaVkp2YjNSY0lqcGNJbHdpZlYwcE8xeHVMeThnUlhod2IzSjBjMXh1Wlhod2IzSjBJR1JsWm1GMWJIUWdYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4N1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvQ2hlY2tib3hJdGVtLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvQ29sbGFiQnV0dG9uLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0NvbGxhYkJ1dHRvbi5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkZWZhdWx0XFxcIjogKCkgPT4gKF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vLyBJbXBvcnRzXFxuXFxuXFxudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKSgoX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0KCkpKTtcXG4vLyBNb2R1bGVcXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFxcXCI6ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IGludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKTtcXFxcbn1cXFxcblxcXFxuLmV4Y2FsaWRyYXcgLkNvbGxhYkJ1dHRvbi5pcy1jb2xsYWJvcmF0aW5nIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLXNwZWNpYWwtYWN0aXZlLWJnLWNvbG9yKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5Db2xsYWJCdXR0b24uaXMtY29sbGFib3JhdGluZyAuVG9vbEljb25fX2ljb24gc3ZnLFxcXFxuLmV4Y2FsaWRyYXcgLkNvbGxhYkJ1dHRvbi5pcy1jb2xsYWJvcmF0aW5nIC5Ub29sSWNvbl9fbGFiZWwge1xcXFxuICBjb2xvcjogdmFyKC0taWNvbi1ncmVlbi1maWxsLWNvbG9yKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5Db2xsYWJCdXR0b24tY29sbGFib3JhdG9ycyB7XFxcXG4gIG1pbi13aWR0aDogMWVtO1xcXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gIGJvdHRvbTogLTVweDtcXFxcbiAgcGFkZGluZzogM3B4O1xcXFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6ICM0MGMwNTc7XFxcXG4gIGNvbG9yOiAjZmZmZmZmO1xcXFxuICBmb250LXNpemU6IDAuN2VtO1xcXFxuICBmb250LWZhbWlseTogdmFyKC0tdWktZm9udCk7XFxcXG59XFxcXG46cm9vdFtkaXI9bHRyXSAuZXhjYWxpZHJhdyAuQ29sbGFiQnV0dG9uLWNvbGxhYm9yYXRvcnMge1xcXFxuICByaWdodDogLTVweDtcXFxcbn1cXFxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC5Db2xsYWJCdXR0b24tY29sbGFib3JhdG9ycyB7XFxcXG4gIGxlZnQ6IC01cHg7XFxcXG59XFxcIiwgXFxcIlxcXCIse1xcXCJ2ZXJzaW9uXFxcIjozLFxcXCJzb3VyY2VzXFxcIjpbXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcXFwiLFxcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jb21wb25lbnRzL0NvbGxhYkJ1dHRvbi5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQVVBO0VBQ0UsMkNBQUE7QUNURjs7QUFDRTtFQUNFLHVEQUFBO0FBRUo7QUFBSTs7RUFFRSxtQ0FBQTtBQUVOO0FBRUU7RUFPRSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EseUJDeVFTO0VEeFFULGNDZGU7RURlZixnQkFBQTtFQUNBLDJCQUFBO0FBTko7QUFSSTtFQUNFLFdBQUE7QUFVTjtBQVJJO0VBQ0UsVUFBQTtBQVVOXFxcIixcXFwic291cmNlc0NvbnRlbnRcXFwiOltcXFwiQGltcG9ydCBcXFxcXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcXFxcXCI7XFxcXG5cXFxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXFxcbiAgQGF0LXJvb3QgLmV4Y2FsaWRyYXctLW1vYmlsZSN7Jn0ge1xcXFxuICAgIEBjb250ZW50O1xcXFxuICB9XFxcXG59XFxcXG5cXFxcbiR0aGVtZS1maWx0ZXI6IFxcXFxcXFwiaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpXFxcXFxcXCI7XFxcXG5cXFxcbjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXFxcbn1cXFxcblxcXCIsXFxcIkBpbXBvcnQgXFxcXFxcXCIuLi9jc3MvdmFyaWFibGVzLm1vZHVsZVxcXFxcXFwiO1xcXFxuXFxcXG4uZXhjYWxpZHJhdyB7XFxcXG4gIC5Db2xsYWJCdXR0b24uaXMtY29sbGFib3JhdGluZyB7XFxcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLXNwZWNpYWwtYWN0aXZlLWJnLWNvbG9yKTtcXFxcblxcXFxuICAgIC5Ub29sSWNvbl9faWNvbiBzdmcsXFxcXG4gICAgLlRvb2xJY29uX19sYWJlbCB7XFxcXG4gICAgICBjb2xvcjogdmFyKC0taWNvbi1ncmVlbi1maWxsLWNvbG9yKTtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAuQ29sbGFiQnV0dG9uLWNvbGxhYm9yYXRvcnMge1xcXFxuICAgIDpyb290W2Rpcj1cXFxcXFxcImx0clxcXFxcXFwiXSAmIHtcXFxcbiAgICAgIHJpZ2h0OiAtNXB4O1xcXFxuICAgIH1cXFxcbiAgICA6cm9vdFtkaXI9XFxcXFxcXCJydGxcXFxcXFxcIl0gJiB7XFxcXG4gICAgICBsZWZ0OiAtNXB4O1xcXFxuICAgIH1cXFxcbiAgICBtaW4td2lkdGg6IDFlbTtcXFxcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gICAgYm90dG9tOiAtNXB4O1xcXFxuICAgIHBhZGRpbmc6IDNweDtcXFxcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9jLWdyZWVuLTY7XFxcXG4gICAgY29sb3I6ICRvYy13aGl0ZTtcXFxcbiAgICBmb250LXNpemU6IDAuN2VtO1xcXFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS11aS1mb250KTtcXFxcbiAgfVxcXFxufVxcXFxuXFxcIixcXFwiLy9cXFxcbi8vXFxcXG4vLyAgXHVEODM1XHVEREQ2IFx1RDgzNVx1RERFMiBcdUQ4MzVcdUREREYgXHVEODM1XHVEREUyIFx1RDgzNVx1RERFNVxcXFxuLy8gIHYgMS45LjFcXFxcbi8vXFxcXG4vLyAgXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXFxcXG5cXFxcblxcXFxuLy8gIEdlbmVyYWxcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXdoaXRlOiAgICAgICAgICNmZmZmZmY7XFxcXG4kb2MtYmxhY2s6ICAgICAgICAgIzAwMDAwMDtcXFxcblxcXFxuXFxcXG4vLyAgR3JheVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JheS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjhmOWZhLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2YxZjNmNSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNlOWVjZWYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZGVlMmU2LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2NlZDRkYSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNhZGI1YmQsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjODY4ZTk2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzQ5NTA1NyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMzNDNhNDAsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMjEyNTI5XFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JheS0wOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTE6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0zOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTQ6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS02OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTc6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktODogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS05OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgUmVkXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1yZWQtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjVmNSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmUzZTMsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZjOWM5LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmYThhOCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZjg3ODcsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmY2YjZiLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZhNTI1MixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmMDNlM2UsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZTAzMTMxLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2M5MmEyYVxcXFxuKTtcXFxcblxcXFxuJG9jLXJlZC0wOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0xOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0yOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0zOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC00OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC01OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC02OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC03OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC04OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC05OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBQaW5rXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1waW5rLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmYwZjYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZkZWViLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZjYzJkNyxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmYWEyYzEsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZjc4M2FjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2YwNjU5NSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNlNjQ5ODAsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZDYzMzZjLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2MyMjU1YyxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNhNjFlNGRcXFxcbik7XFxcXG5cXFxcbiRvYy1waW5rLTA6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtcGluay0yOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTM6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtcGluay01OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTY6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtcGluay04OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTk6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBHcmFwZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JhcGUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y4ZjBmYyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmM2Q5ZmEsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZWViZWZhLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2U1OTlmNyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNkYTc3ZjIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjY2M1ZGU4LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2JlNGJkYixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNhZTNlYzksXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjOWMzNmI1LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzg2MmU5Y1xcXFxuKTtcXFxcblxcXFxuJG9jLWdyYXBlLTA6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0xOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTM6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS00OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTY6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS03OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtODogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTk6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgVmlvbGV0XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy12aW9sZXQtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2YzZjBmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNlNWRiZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZDBiZmZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2IxOTdmYyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM5Nzc1ZmEsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjODQ1ZWY3LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzc5NTBmMixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM3MDQ4ZTgsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjNjc0MWQ5LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzVmM2RjNFxcXFxuKTtcXFxcblxcXFxuJG9jLXZpb2xldC0wOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0xOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0yOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0zOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC00OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC01OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC02OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC03OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC04OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC05OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBJbmRpZ29cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWluZGlnby1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZWRmMmZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2RiZTRmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNiYWM4ZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjOTFhN2ZmLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzc0OGZmYyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM1YzdjZmEsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNGM2ZWY1LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzQyNjNlYixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMzYjViZGIsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMzY0ZmM3XFxcXG4pO1xcXFxuXFxcXG4kb2MtaW5kaWdvLTA6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTE6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTI6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTM6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTQ6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTU6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTY6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTc6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTg6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTk6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEJsdWVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWJsdWUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2U3ZjVmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkMGViZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYTVkOGZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzc0YzBmYyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM0ZGFiZjcsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMzM5YWYwLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzIyOGJlNixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMxYzdlZDYsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMTk3MWMyLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzE4NjRhYlxcXFxuKTtcXFxcblxcXFxuJG9jLWJsdWUtMDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0xOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTI6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS00OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTU6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS03OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTg6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtOTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEN5YW5cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWN5YW4tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2UzZmFmYyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNjNWY2ZmEsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjOTllOWYyLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzY2ZDllOCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICMzYmM5ZGIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMjJiOGNmLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzE1YWFiZixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMxMDk4YWQsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMGM4NTk5LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzBiNzI4NVxcXFxuKTtcXFxcblxcXFxuJG9jLWN5YW4tMDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0xOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTI6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi00OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTU6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi03OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTg6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tOTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFRlYWxcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXRlYWwtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2U2ZmNmNSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNjM2ZhZTgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjOTZmMmQ3LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzYzZTZiZSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICMzOGQ5YTksXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMjBjOTk3LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzEyYjg4NixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMwY2E2NzgsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMDk5MjY4LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzA4N2Y1YlxcXFxuKTtcXFxcblxcXFxuJG9jLXRlYWwtMDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0xOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTI6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC00OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTU6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC03OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTg6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtOTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEdyZWVuXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmVlbi1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZWJmYmVlLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2QzZjlkOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNiMmYyYmIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjOGNlOTlhLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzY5ZGI3YyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM1MWNmNjYsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNDBjMDU3LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzM3YjI0ZCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMyZjllNDQsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMmI4YTNlXFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JlZW4tMDogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTE6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0yOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMzogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTQ6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi01OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNjogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTc6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi04OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tOTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBMaW1lXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1saW1lLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmNGZjZTMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZTlmYWM4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2Q4ZjVhMixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNjMGViNzUsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjYTllMzRiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzk0ZDgyZCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM4MmM5MWUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNzRiODE2LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzY2YTgwZixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM1Yzk0MGRcXFxcbik7XFxcXG5cXFxcbiRvYy1saW1lLTA6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0yOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTM6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtbGltZS01OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTY6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtbGltZS04OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTk6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBZZWxsb3dcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXllbGxvdy1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmOWRiLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZjNiZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmVjOTksXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZlMDY2LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmZDQzYixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmY2M0MTksXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmFiMDA1LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Y1OWYwMCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNmMDhjMDAsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjZTY3NzAwXFxcXG4pO1xcXFxuXFxcXG4kb2MteWVsbG93LTA6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTE6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTI6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTM6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTQ6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTU6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTY6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTc6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTg6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTk6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIE9yYW5nZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2Mtb3JhbmdlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY0ZTYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZlOGNjLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmZDhhOCxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmMwNzgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmZhOTRkLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZmOTIyYixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmZDdlMTQsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjc2NzA3LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2U4NTkwYyxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNkOTQ4MGZcXFxcbik7XFxcXG5cXFxcbiRvYy1vcmFuZ2UtMDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtODogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtOTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQ29sb3IgbGlzdFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtY29sb3Itc3BlY3RydW06ICAgOTtcXFxcblxcXFxuJG9jLWNvbG9yLWxpc3Q6IChcXFxcbiAgJG9jLWdyYXktbGlzdDogICAgICBcXFxcXFxcImdyYXlcXFxcXFxcIixcXFxcbiAgJG9jLXJlZC1saXN0OiAgICAgIFxcXFxcXFwicmVkXFxcXFxcXCIsXFxcXG4gICRvYy1waW5rLWxpc3Q6ICAgICAgXFxcXFxcXCJwaW5rXFxcXFxcXCIsXFxcXG4gICRvYy1ncmFwZS1saXN0OiAgICAgIFxcXFxcXFwiZ3JhcGVcXFxcXFxcIixcXFxcbiAgJG9jLXZpb2xldC1saXN0OiAgICAgIFxcXFxcXFwidmlvbGV0XFxcXFxcXCIsXFxcXG4gICRvYy1pbmRpZ28tbGlzdDogICAgICBcXFxcXFxcImluZGlnb1xcXFxcXFwiLFxcXFxuICAkb2MtYmx1ZS1saXN0OiAgICAgIFxcXFxcXFwiYmx1ZVxcXFxcXFwiLFxcXFxuICAkb2MtY3lhbi1saXN0OiAgICAgIFxcXFxcXFwiY3lhblxcXFxcXFwiLFxcXFxuICAkb2MtdGVhbC1saXN0OiAgICAgIFxcXFxcXFwidGVhbFxcXFxcXFwiLFxcXFxuICAkb2MtZ3JlZW4tbGlzdDogICAgICBcXFxcXFxcImdyZWVuXFxcXFxcXCIsXFxcXG4gICRvYy1saW1lLWxpc3Q6ICAgICAgXFxcXFxcXCJsaW1lXFxcXFxcXCIsXFxcXG4gICRvYy15ZWxsb3ctbGlzdDogICAgICBcXFxcXFxcInllbGxvd1xcXFxcXFwiLFxcXFxuICAkb2Mtb3JhbmdlLWxpc3Q6ICAgICAgXFxcXFxcXCJvcmFuZ2VcXFxcXFxcIlxcXFxuKTtcXFxcblxcXCJdLFxcXCJzb3VyY2VSb290XFxcIjpcXFwiXFxcIn1dKTtcXG4vLyBFeHBvcnRzXFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9IChfX19DU1NfTE9BREVSX0VYUE9SVF9fXyk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUwyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk5dWIyUmxYMjF2WkhWc1pYTXZjMkZ6Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpNHZMaTR2WTI5dGNHOXVaVzUwY3k5RGIyeHNZV0pDZFhSMGIyNHVjMk56Y3k1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenRCUVVGQk8wRkJRemhJTzBGQlEycENPMEZCUXpkSExEaENRVUU0UWl4MVIwRkJNa0lzUTBGQlF5eG5TRUZCY1VNN1FVRkRMMFk3UVVGRFFTeHRSRUZCYlVRc1owUkJRV2RFTEVkQlFVY3NaMFJCUVdkRUxEUkVRVUUwUkN4SFFVRkhMR2RKUVVGblNTeDNRMEZCZDBNc1IwRkJSeXd5UTBGQk1rTXNiVUpCUVcxQ0xIVkNRVUYxUWl4cFFrRkJhVUlzYVVKQlFXbENMSFZDUVVGMVFpdzRRa0ZCT0VJc2JVSkJRVzFDTEhGQ1FVRnhRaXhuUTBGQlowTXNSMEZCUnl3d1JFRkJNRVFzWjBKQlFXZENMRWRCUVVjc01FUkJRVEJFTEdWQlFXVXNSMEZCUnl4UFFVRlBMR3RPUVVGclRpeFhRVUZYTEUxQlFVMHNTMEZCU3l4WFFVRlhMRXRCUVVzc1RVRkJUU3hYUVVGWExFdEJRVXNzUzBGQlN5eFZRVUZWTEZkQlFWY3NWVUZCVlN4VlFVRlZMRmRCUVZjc1dVRkJXU3hYUVVGWExGZEJRVmNzVjBGQlZ5eExRVUZMTEV0QlFVc3NWVUZCVlN4TFFVRkxMRXRCUVVzc1ZVRkJWU3huUlVGQlowVXNkVUpCUVhWQ0xHdERRVUZyUXl4SlFVRkpMR1ZCUVdVc1MwRkJTeXhIUVVGSExITkVRVUZ6UkN4aFFVRmhMSGREUVVGM1F5eEhRVUZITEhsRFFVRjVReXhwUWtGQmFVSXNiME5CUVc5RExEaEVRVUU0UkN4dlJFRkJiMFFzTkVOQlFUUkRMRTlCUVU4c1MwRkJTeXh0UTBGQmJVTXNORUpCUVRSQ0xHOUNRVUZ2UWl4UFFVRlBMRFJDUVVFMFFpeHRRa0ZCYlVJc1QwRkJUeXh4UWtGQmNVSXNlVUpCUVhsQ0xHMUNRVUZ0UWl4dFFrRkJiVUlzZVVKQlFYbENMRzlEUVVGdlF5eDFRa0ZCZFVJc2RVSkJRWFZDTEd0RFFVRnJReXhMUVVGTExFZEJRVWNzYTB4QlFXdE1MRFpDUVVFMlFpdzBVVUZCTkZFc09FTkJRVGhETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERCUlFVRXdVU3cwUTBGQk5FTXNNRU5CUVRCRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc01FTkJRVEJETERCRFFVRXdReXd3UTBGQk1FTXNORkZCUVRSUkxEaERRVUU0UXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3NFVVRkJPRkVzWjBSQlFXZEVMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMR2RTUVVGblVpeHJSRUZCYTBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1oxSkJRV2RTTEd0RVFVRnJSQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3cwVVVGQk5GRXNPRU5CUVRoRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUlJRVUUwVVN3NFEwRkJPRU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkZGQlFUUlJMRGhEUVVFNFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzRVVUZCT0ZFc1owUkJRV2RFTERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERSUlFVRTBVU3c0UTBGQk9FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNaMUpCUVdkU0xHdEVRVUZyUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blVrRkJaMUlzYTBSQlFXdEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMSGxHUVVGNVJpeDFaRUZCZFdRc2NVSkJRWEZDTzBGQlF6bG9XVHRCUVVOQkxHbEZRVUZsTEhWQ1FVRjFRaXhGUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12UTI5c2JHRmlRblYwZEc5dUxuTmpjM00vTXpZeFppSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2THlCSmJYQnZjblJ6WEc1cGJYQnZjblFnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmVTA5VlVrTkZUVUZRWDBsTlVFOVNWRjlmWHlCbWNtOXRJRndpTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZjMjkxY21ObFRXRndjeTVxYzF3aU8xeHVhVzF3YjNKMElGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgwbE5VRTlTVkY5Zlh5Qm1jbTl0SUZ3aUxpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDNKMWJuUnBiV1V2WVhCcExtcHpYQ0k3WEc1MllYSWdYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4Z1BTQmZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOUpUVkJQVWxSZlgxOG9YMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZVMDlWVWtORlRVRlFYMGxOVUU5U1ZGOWZYeWs3WEc0dkx5Qk5iMlIxYkdWY2JsOWZYME5UVTE5TVQwRkVSVkpmUlZoUVQxSlVYMTlmTG5CMWMyZ29XMjF2WkhWc1pTNXBaQ3dnWENJNlpYaHdiM0owSUh0Y1hHNGdJSFJvWlcxbFJtbHNkR1Z5T2lCcGJuWmxjblFvT1RNbEtTQm9kV1V0Y205MFlYUmxLREU0TUdSbFp5azdYRnh1ZlZ4Y2JseGNiaTVsZUdOaGJHbGtjbUYzSUM1RGIyeHNZV0pDZFhSMGIyNHVhWE10WTI5c2JHRmliM0poZEdsdVp5QjdYRnh1SUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFpZFhSMGIyNHRjM0JsWTJsaGJDMWhZM1JwZG1VdFltY3RZMjlzYjNJcE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVRMjlzYkdGaVFuVjBkRzl1TG1sekxXTnZiR3hoWW05eVlYUnBibWNnTGxSdmIyeEpZMjl1WDE5cFkyOXVJSE4yWnl4Y1hHNHVaWGhqWVd4cFpISmhkeUF1UTI5c2JHRmlRblYwZEc5dUxtbHpMV052Ykd4aFltOXlZWFJwYm1jZ0xsUnZiMnhKWTI5dVgxOXNZV0psYkNCN1hGeHVJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFXTnZiaTFuY21WbGJpMW1hV3hzTFdOdmJHOXlLVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGtOdmJHeGhZa0oxZEhSdmJpMWpiMnhzWVdKdmNtRjBiM0p6SUh0Y1hHNGdJRzFwYmkxM2FXUjBhRG9nTVdWdE8xeGNiaUFnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4Y2JpQWdZbTkwZEc5dE9pQXROWEI0TzF4Y2JpQWdjR0ZrWkdsdVp6b2dNM0I0TzF4Y2JpQWdZbTl5WkdWeUxYSmhaR2wxY3pvZ05UQWxPMXhjYmlBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ0l6UXdZekExTnp0Y1hHNGdJR052Ykc5eU9pQWpabVptWm1abU8xeGNiaUFnWm05dWRDMXphWHBsT2lBd0xqZGxiVHRjWEc0Z0lHWnZiblF0Wm1GdGFXeDVPaUIyWVhJb0xTMTFhUzFtYjI1MEtUdGNYRzU5WEZ4dU9uSnZiM1JiWkdseVBXeDBjbDBnTG1WNFkyRnNhV1J5WVhjZ0xrTnZiR3hoWWtKMWRIUnZiaTFqYjJ4c1lXSnZjbUYwYjNKeklIdGNYRzRnSUhKcFoyaDBPaUF0TlhCNE8xeGNibjFjWEc0NmNtOXZkRnRrYVhJOWNuUnNYU0F1WlhoallXeHBaSEpoZHlBdVEyOXNiR0ZpUW5WMGRHOXVMV052Ykd4aFltOXlZWFJ2Y25NZ2UxeGNiaUFnYkdWbWREb2dMVFZ3ZUR0Y1hHNTlYQ0lzSUZ3aVhDSXNlMXdpZG1WeWMybHZibHdpT2pNc1hDSnpiM1Z5WTJWelhDSTZXMXdpZDJWaWNHRmphem92THk0dkxpNHZMaTR2WTNOekwzWmhjbWxoWW14bGN5NXRiMlIxYkdVdWMyTnpjMXdpTEZ3aWQyVmljR0ZqYXpvdkx5NHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OURiMnhzWVdKQ2RYUjBiMjR1YzJOemMxd2lMRndpZDJWaWNHRmphem92THk0dkxpNHZMaTR2TGk0dmJtOWtaVjl0YjJSMWJHVnpMMjl3Wlc0dFkyOXNiM0l2YjNCbGJpMWpiMnh2Y2k1elkzTnpYQ0pkTEZ3aWJtRnRaWE5jSWpwYlhTeGNJbTFoY0hCcGJtZHpYQ0k2WENKQlFWVkJPMFZCUTBVc01rTkJRVUU3UVVOVVJqczdRVUZEUlR0RlFVTkZMSFZFUVVGQk8wRkJSVW83UVVGQlNUczdSVUZGUlN4dFEwRkJRVHRCUVVWT08wRkJSVVU3UlVGUFJTeGpRVUZCTzBWQlEwRXNhMEpCUVVFN1JVRkRRU3haUVVGQk8wVkJRMEVzV1VGQlFUdEZRVU5CTEd0Q1FVRkJPMFZCUTBFc2VVSkRlVkZUTzBWRWVGRlVMR05EWkdVN1JVUmxaaXhuUWtGQlFUdEZRVU5CTERKQ1FVRkJPMEZCVGtvN1FVRlNTVHRGUVVORkxGZEJRVUU3UVVGVlRqdEJRVkpKTzBWQlEwVXNWVUZCUVR0QlFWVk9YQ0lzWENKemIzVnlZMlZ6UTI5dWRHVnVkRndpT2x0Y0lrQnBiWEJ2Y25RZ1hGeGNJbTl3Wlc0dFkyOXNiM0l2YjNCbGJpMWpiMnh2Y2k1elkzTnpYRnhjSWp0Y1hHNWNYRzVBYldsNGFXNGdhWE5OYjJKcGJHVW9LU0I3WEZ4dUlDQkFZWFF0Y205dmRDQXVaWGhqWVd4cFpISmhkeTB0Ylc5aWFXeGxJM3NtZlNCN1hGeHVJQ0FnSUVCamIyNTBaVzUwTzF4Y2JpQWdmVnhjYm4xY1hHNWNYRzRrZEdobGJXVXRabWxzZEdWeU9pQmNYRndpYVc1MlpYSjBLRGt6SlNrZ2FIVmxMWEp2ZEdGMFpTZ3hPREJrWldjcFhGeGNJanRjWEc1Y1hHNDZaWGh3YjNKMElIdGNYRzRnSUhSb1pXMWxSbWxzZEdWeU9pQjFibkYxYjNSbEtDUjBhR1Z0WlMxbWFXeDBaWElwTzF4Y2JuMWNYRzVjSWl4Y0lrQnBiWEJ2Y25RZ1hGeGNJaTR1TDJOemN5OTJZWEpwWVdKc1pYTXViVzlrZFd4bFhGeGNJanRjWEc1Y1hHNHVaWGhqWVd4cFpISmhkeUI3WEZ4dUlDQXVRMjlzYkdGaVFuVjBkRzl1TG1sekxXTnZiR3hoWW05eVlYUnBibWNnZTF4Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMWlkWFIwYjI0dGMzQmxZMmxoYkMxaFkzUnBkbVV0WW1jdFkyOXNiM0lwTzF4Y2JseGNiaUFnSUNBdVZHOXZiRWxqYjI1ZlgybGpiMjRnYzNabkxGeGNiaUFnSUNBdVZHOXZiRWxqYjI1ZlgyeGhZbVZzSUh0Y1hHNGdJQ0FnSUNCamIyeHZjam9nZG1GeUtDMHRhV052YmkxbmNtVmxiaTFtYVd4c0xXTnZiRzl5S1R0Y1hHNGdJQ0FnZlZ4Y2JpQWdmVnhjYmx4Y2JpQWdMa052Ykd4aFlrSjFkSFJ2YmkxamIyeHNZV0p2Y21GMGIzSnpJSHRjWEc0Z0lDQWdPbkp2YjNSYlpHbHlQVnhjWENKc2RISmNYRndpWFNBbUlIdGNYRzRnSUNBZ0lDQnlhV2RvZERvZ0xUVndlRHRjWEc0Z0lDQWdmVnhjYmlBZ0lDQTZjbTl2ZEZ0a2FYSTlYRnhjSW5KMGJGeGNYQ0pkSUNZZ2UxeGNiaUFnSUNBZ0lHeGxablE2SUMwMWNIZzdYRnh1SUNBZ0lIMWNYRzRnSUNBZ2JXbHVMWGRwWkhSb09pQXhaVzA3WEZ4dUlDQWdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjWEc0Z0lDQWdZbTkwZEc5dE9pQXROWEI0TzF4Y2JpQWdJQ0J3WVdSa2FXNW5PaUF6Y0hnN1hGeHVJQ0FnSUdKdmNtUmxjaTF5WVdScGRYTTZJRFV3SlR0Y1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nSkc5akxXZHlaV1Z1TFRZN1hGeHVJQ0FnSUdOdmJHOXlPaUFrYjJNdGQyaHBkR1U3WEZ4dUlDQWdJR1p2Ym5RdGMybDZaVG9nTUM0M1pXMDdYRnh1SUNBZ0lHWnZiblF0Wm1GdGFXeDVPaUIyWVhJb0xTMTFhUzFtYjI1MEtUdGNYRzRnSUgxY1hHNTlYRnh1WENJc1hDSXZMMXhjYmk4dlhGeHVMeThnSVBDZGw1WWc4SjJYb2lEd25aZWZJUENkbDZJZzhKMlhwVnhjYmk4dklDQjJJREV1T1M0eFhGeHVMeTljWEc0dkx5QWc0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQlhGeHVYRnh1WEZ4dUx5OGdJRWRsYm1WeVlXeGNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFhkb2FYUmxPaUFnSUNBZ0lDQWdJQ05tWm1abVptWTdYRnh1Skc5akxXSnNZV05yT2lBZ0lDQWdJQ0FnSUNNd01EQXdNREE3WEZ4dVhGeHVYRnh1THk4Z0lFZHlZWGxjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXZHlZWGt0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaamhtT1daaExGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpqRm1NMlkxTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWlRsbFkyVm1MRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpaR1ZsTW1VMkxGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBalkyVmtOR1JoTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqWVdSaU5XSmtMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpPRFk0WlRrMkxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak5EazFNRFUzTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTXpRellUUXdMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpNakV5TlRJNVhGeHVLVHRjWEc1Y1hHNGtiMk10WjNKaGVTMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0TVRvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxUSTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzB6T2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE5Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVFU2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMwMk9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3ROem9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRnNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUZKbFpGeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10Y21Wa0xXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJabVpqVm1OU3hjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlptWlRObE15eGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyWm1ZemxqT1N4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJabVlUaGhPQ3hjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJMlptT0RjNE55eGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0kyWm1ObUkyWWl4Y1hHNGdJRnhjWENJMlhGeGNJam9nSTJaaE5USTFNaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJMll3TTJVelpTeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0kyVXdNekV6TVN4Y1hHNGdJRnhjWENJNVhGeGNJam9nSTJNNU1tRXlZVnhjYmlrN1hGeHVYRnh1Skc5akxYSmxaQzB3T2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRFNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE1qb2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVFE2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MXlaV1F0TlRvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMWEpsWkMwMk9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUYzZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxeVpXUXRPRG9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxYSmxaQzA1T2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1VHbHVhMXhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGNHbHVheTFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1abVl3WmpZc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObVptUmxaV0lzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05tWTJNeVpEY3NYRnh1SUNCY1hGd2lNMXhjWENJNklDTm1ZV0V5WXpFc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNObU56Z3pZV01zWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ05tTURZMU9UVXNYRnh1SUNCY1hGd2lObHhjWENJNklDTmxOalE1T0RBc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNOa05qTXpObU1zWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ05qTWpJMU5XTXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTmhOakZsTkdSY1hHNHBPMXhjYmx4Y2JpUnZZeTF3YVc1ckxUQTZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTB4T2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE1qb2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVE02SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkwME9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3ROVG9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRZNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MDNPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0T0RvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUazZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnUjNKaGNHVmNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFdkeVlYQmxMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyWTRaakJtWXl4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJZelpEbG1ZU3hjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMlZsWW1WbVlTeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0kyVTFPVGxtTnl4Y1hHNGdJRnhjWENJMFhGeGNJam9nSTJSaE56ZG1NaXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJMk5qTldSbE9DeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0kySmxOR0prWWl4Y1hHNGdJRnhjWENJM1hGeGNJam9nSTJGbE0yVmpPU3hjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJemxqTXpaaU5TeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6ZzJNbVU1WTF4Y2JpazdYRnh1WEZ4dUpHOWpMV2R5WVhCbExUQTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRFNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVEk2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUTTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRRNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVFU2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUWTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRjNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVGc2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUazZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUZacGIyeGxkRnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGRtbHZiR1YwTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMll6WmpCbVppeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyVTFaR0ptWml4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJRd1ltWm1aaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMkl4T1RkbVl5eGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0l6azNOelZtWVN4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXpnME5XVm1OeXhjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJemM1TlRCbU1peGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6Y3dORGhsT0N4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpZM05ERmtPU3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJelZtTTJSak5GeGNiaWs3WEZ4dVhGeHVKRzlqTFhacGIyeGxkQzB3T2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVEU2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXRNam9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUUTZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE5Ub2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMwMk9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRjNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0T0RvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzA1T2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdTVzVrYVdkdlhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFwYm1ScFoyOHRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpXUm1NbVptTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWkdKbE5HWm1MRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpZbUZqT0dabUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBak9URmhOMlptTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqTnpRNFptWmpMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpOV00zWTJaaExGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBak5HTTJaV1kxTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqTkRJMk0yVmlMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpNMkkxWW1SaUxGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak16WTBabU0zWEZ4dUtUdGNYRzVjWEc0a2IyTXRhVzVrYVdkdkxUQTZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE1Ub2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkweU9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRNNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0TkRvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTAxT2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVFk2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHROem9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MDRPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUazZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCQ2JIVmxYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxaWJIVmxMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyVTNaalZtWml4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJRd1pXSm1aaXhjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMkUxWkRobVppeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0l6YzBZekJtWXl4Y1hHNGdJRnhjWENJMFhGeGNJam9nSXpSa1lXSm1OeXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJek16T1dGbU1DeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0l6SXlPR0psTml4Y1hHNGdJRnhjWENJM1hGeGNJam9nSXpGak4yVmtOaXhjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJekU1TnpGak1peGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6RTROalJoWWx4Y2JpazdYRnh1WEZ4dUpHOWpMV0pzZFdVdE1Eb2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVEU2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMweU9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXRNem9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRRNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10WW14MVpTMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0TmpvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUYzZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzA0T2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE9Ub2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JEZVdGdVhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFqZVdGdUxXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJVelptRm1ZeXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMk0xWmpabVlTeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0l6azVaVGxtTWl4Y1hHNGdJRnhjWENJelhGeGNJam9nSXpZMlpEbGxPQ3hjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJek5pWXpsa1lpeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0l6SXlZamhqWml4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpFMVlXRmlaaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJekV3T1RoaFpDeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6QmpPRFU1T1N4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpCaU56STROVnhjYmlrN1hGeHVYRnh1Skc5akxXTjVZVzR0TURvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxURTZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTB5T2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE16b2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVFE2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkwMU9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHROam9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRjNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0T1RvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQlVaV0ZzWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MTBaV0ZzTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlUyWm1ObU5TeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyTXpabUZsT0N4Y1hHNGdJRnhjWENJeVhGeGNJam9nSXprMlpqSmtOeXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJell6WlRaaVpTeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0l6TTRaRGxoT1N4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXpJd1l6azVOeXhjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJekV5WWpnNE5peGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6QmpZVFkzT0N4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpBNU9USTJPQ3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJekE0TjJZMVlseGNiaWs3WEZ4dVhGeHVKRzlqTFhSbFlXd3RNRG9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRFNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0TXpvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUUTZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzAxT2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE5qb2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVGM2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMwNE9pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3RPVG9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCSGNtVmxibHhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdFozSmxaVzR0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaV0ptWW1WbExGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpETm1PV1E0TEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWWpKbU1tSmlMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpPR05sT1RsaExGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBak5qbGtZamRqTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqTlRGalpqWTJMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpOREJqTURVM0xGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak16ZGlNalJrTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTW1ZNVpUUTBMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpNbUk0WVRObFhGeHVLVHRjWEc1Y1hHNGtiMk10WjNKbFpXNHRNRG9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE1Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TWpvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHRNem9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE5Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TlRvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHROam9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE56b2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0T0RvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHRPVG9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1RHbHRaVnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGJHbHRaUzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1OR1pqWlRNc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObE9XWmhZemdzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05rT0dZMVlUSXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTmpNR1ZpTnpVc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNOaE9XVXpOR0lzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ001TkdRNE1tUXNYRnh1SUNCY1hGd2lObHhjWENJNklDTTRNbU01TVdVc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNM05HSTRNVFlzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ00yTm1FNE1HWXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTTFZemswTUdSY1hHNHBPMXhjYmx4Y2JpUnZZeTFzYVcxbExUQTZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzB4T2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE1qb2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVE02SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMwME9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXROVG9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRZNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0T0RvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUazZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnV1dWc2JHOTNYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxNVpXeHNiM2N0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpabVptT1dSaUxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalptWm1NMkptTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWm1abFl6azVMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpabVpsTURZMkxGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBalptWmtORE5pTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqWm1Oak5ERTVMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpabUZpTURBMUxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBalpqVTVaakF3TEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqWmpBNFl6QXdMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpaVFkzTnpBd1hGeHVLVHRjWEc1Y1hHNGtiMk10ZVdWc2JHOTNMVEE2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3RNVG9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MHlPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUTTZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE5Eb2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkwMU9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRZNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0TnpvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTA0T2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVGs2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQlBjbUZ1WjJWY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMVzl5WVc1blpTMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObVptWTBaVFlzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05tWm1VNFkyTXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTm1abVE0WVRnc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNObVptTXdOemdzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ05tWm1FNU5HUXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTm1aamt5TW1Jc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNObVpEZGxNVFFzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ05tTnpZM01EY3NYRnh1SUNCY1hGd2lPRnhjWENJNklDTmxPRFU1TUdNc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNOa09UUTRNR1pjWEc0cE8xeGNibHhjYmlSdll5MXZjbUZ1WjJVdE1Eb2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMweE9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRJNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0TXpvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzAwT2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVFU2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXROam9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUZzZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE9Ub2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUVOdmJHOXlJR3hwYzNSY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV052Ykc5eUxYTndaV04wY25WdE9pQWdJRGs3WEZ4dVhGeHVKRzlqTFdOdmJHOXlMV3hwYzNRNklDaGNYRzRnSUNSdll5MW5jbUY1TFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbWR5WVhsY1hGd2lMRnhjYmlBZ0pHOWpMWEpsWkMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0p5WldSY1hGd2lMRnhjYmlBZ0pHOWpMWEJwYm1zdGJHbHpkRG9nSUNBZ0lDQmNYRndpY0dsdWExeGNYQ0lzWEZ4dUlDQWtiMk10WjNKaGNHVXRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aVozSmhjR1ZjWEZ3aUxGeGNiaUFnSkc5akxYWnBiMnhsZEMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0oyYVc5c1pYUmNYRndpTEZ4Y2JpQWdKRzlqTFdsdVpHbG5ieTFzYVhOME9pQWdJQ0FnSUZ4Y1hDSnBibVJwWjI5Y1hGd2lMRnhjYmlBZ0pHOWpMV0pzZFdVdGJHbHpkRG9nSUNBZ0lDQmNYRndpWW14MVpWeGNYQ0lzWEZ4dUlDQWtiMk10WTNsaGJpMXNhWE4wT2lBZ0lDQWdJRnhjWENKamVXRnVYRnhjSWl4Y1hHNGdJQ1J2WXkxMFpXRnNMV3hwYzNRNklDQWdJQ0FnWEZ4Y0luUmxZV3hjWEZ3aUxGeGNiaUFnSkc5akxXZHlaV1Z1TFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbWR5WldWdVhGeGNJaXhjWEc0Z0lDUnZZeTFzYVcxbExXeHBjM1E2SUNBZ0lDQWdYRnhjSW14cGJXVmNYRndpTEZ4Y2JpQWdKRzlqTFhsbGJHeHZkeTFzYVhOME9pQWdJQ0FnSUZ4Y1hDSjVaV3hzYjNkY1hGd2lMRnhjYmlBZ0pHOWpMVzl5WVc1blpTMXNhWE4wT2lBZ0lDQWdJRnhjWENKdmNtRnVaMlZjWEZ3aVhGeHVLVHRjWEc1Y0lsMHNYQ0p6YjNWeVkyVlNiMjkwWENJNlhDSmNJbjFkS1R0Y2JpOHZJRVY0Y0c5eWRITmNibVY0Y0c5eWRDQmtaV1poZFd4MElGOWZYME5UVTE5TVQwRkVSVkpmUlZoUVQxSlVYMTlmTzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Db2xsYWJCdXR0b24uc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Db2xvclBpY2tlci5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0NvbG9yUGlja2VyLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9nZXRVcmxfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2dldFVybC5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvZ2V0VXJsLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9nZXRVcmxfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfZ2V0VXJsX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18pO1xcbi8vIEltcG9ydHNcXG5cXG5cXG5cXG52YXIgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18gPSBuZXcgVVJMKC8qIGFzc2V0IGltcG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBTVVsRVFWUTRUMk5rWUdBUVljQVAzdUNUWmh3MWdHR1loQUdCWklBL25ZRENnQkRBbTlCR0RXQUFKeVJDZ0xhQkNBQWdYd2l4ekFTMHBnQUFBQUJKUlU1RXJrSmdnZz09ICovIFxcXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBTVVsRVFWUTRUMk5rWUdBUVljQVAzdUNUWmh3MWdHR1loQUdCWklBL25ZRENnQkRBbTlCR0RXQUFKeVJDZ0xhQkNBQWdYd2l4ekFTMHBnQUFBQUJKUlU1RXJrSmdnZz09XFxcIiksIF9fd2VicGFja19yZXF1aXJlX18uYik7XFxudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKSgoX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0KCkpKTtcXG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9nZXRVcmxfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX19kZWZhdWx0KCkoX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18pO1xcbi8vIE1vZHVsZVxcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXFxcIjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcXFxufVxcXFxuXFxcXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyIHtcXFxcbiAgYmFja2dyb3VuZDogdmFyKC0tcG9wdXAtYmctY29sb3IpO1xcXFxuICBib3JkZXI6IDAgc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcXFxcbiAgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjI1KSAwIDFweCA0cHg7XFxcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxufVxcXFxuOnJvb3RbZGlyPWx0cl0gLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlciB7XFxcXG4gIGxlZnQ6IC01LjVweDtcXFxcbn1cXFxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC5jb2xvci1waWNrZXIge1xcXFxuICByaWdodDogLTUuNXB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1jb250cm9sLWNvbnRhaW5lciB7XFxcXG4gIGRpc3BsYXk6IGdyaWQ7XFxcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnI7XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLXRyaWFuZ2xlIHtcXFxcbiAgd2lkdGg6IDA7XFxcXG4gIGhlaWdodDogMDtcXFxcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXFxcbiAgYm9yZGVyLXdpZHRoOiAwIDlweCAxMHB4O1xcXFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLXBvcHVwLWJnLWNvbG9yKTtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICB0b3A6IC0xMHB4O1xcXFxufVxcXFxuOnJvb3RbZGlyPWx0cl0gLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci10cmlhbmdsZSB7XFxcXG4gIGxlZnQ6IDEycHg7XFxcXG59XFxcXG46cm9vdFtkaXI9cnRsXSAuZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLXRyaWFuZ2xlIHtcXFxcbiAgcmlnaHQ6IDEycHg7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLXRyaWFuZ2xlLXNoYWRvdyB7XFxcXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgcmdiYSgwLCAwLCAwLCAwLjEpO1xcXFxuICB0b3A6IC0xMXB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1jb250ZW50IHtcXFxcbiAgcGFkZGluZzogMC41cmVtO1xcXFxuICBkaXNwbGF5OiBncmlkO1xcXFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg1LCBhdXRvKTtcXFxcbiAgZ3JpZC1nYXA6IDAuNXJlbTtcXFxcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1jb250ZW50OmZvY3VzIHtcXFxcbiAgb3V0bGluZTogbm9uZTtcXFxcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLWNvbnRlbnQgLmNvbG9yLWlucHV0LWNvbnRhaW5lciB7XFxcXG4gIGdyaWQtY29sdW1uOiAxL3NwYW4gNTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItc3dhdGNoIHtcXFxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcXFxuICBoZWlnaHQ6IDEuODc1cmVtO1xcXFxuICB3aWR0aDogMS44NzVyZW07XFxcXG4gIGN1cnNvcjogcG9pbnRlcjtcXFxcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xcXFxuICBtYXJnaW46IDA7XFxcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvciAhaW1wb3J0YW50O1xcXFxuICBmaWx0ZXI6IHZhcigtLXRoZW1lLWZpbHRlcik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLXN3YXRjaDpmb2N1cyB7XFxcXG4gIC8qIFRPRE86IG9ubHkgc2hvdyB0aGUgYm9yZGVyIHdoZW4gdGhlIGNvbG9yIGlzIHRvbyBsaWdodCB0byBzZWUgYXMgYSBzaGFkb3cgKi9cXFxcbiAgYm94LXNoYWRvdzogMCAwIDRweCAxcHggY3VycmVudENvbG9yO1xcXFxuICBib3JkZXItY29sb3I6IHZhcigtLXNlbGVjdC1oaWdobGlnaHQtY29sb3IpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci10cmFuc3BhcmVudCB7XFxcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXFxcbiAgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjEpIDAgMCAwIDFweCBpbnNldDtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICB0b3A6IDA7XFxcXG4gIHJpZ2h0OiAwO1xcXFxuICBib3R0b206IDA7XFxcXG4gIGxlZnQ6IDA7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLXRyYW5zcGFyZW50LFxcXFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1sYWJlbC1zd2F0Y2gge1xcXFxuICBiYWNrZ3JvdW5kOiB1cmwoXFxcIiArIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzBfX18gKyBcXFwiKSBsZWZ0IGNlbnRlcjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItaGFzaCB7XFxcXG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7XFxcXG4gIGhlaWdodDogMS44NzVyZW07XFxcXG4gIHdpZHRoOiAxLjg3NXJlbTtcXFxcbiAgY29sb3I6IHZhcigtLWlucHV0LWxhYmVsLWNvbG9yKTtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXFxcbn1cXFxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItaGFzaCB7XFxcXG4gIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4O1xcXFxufVxcXFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1oYXNoIHtcXFxcbiAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29sb3ItaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiAuY29sb3ItcGlja2VyLWhhc2gge1xcXFxuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaDo6YmVmb3JlLFxcXFxuLmV4Y2FsaWRyYXcgLmNvbG9yLWlucHV0LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gLmNvbG9yLXBpY2tlci1oYXNoOjphZnRlciB7XFxcXG4gIGNvbnRlbnQ6IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG4gIHdpZHRoOiAxcHg7XFxcXG4gIGhlaWdodDogMTAwJTtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICB0b3A6IDA7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29sb3ItaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiAuY29sb3ItcGlja2VyLWhhc2g6OmJlZm9yZSB7XFxcXG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7XFxcXG59XFxcXG46cm9vdFtkaXI9bHRyXSAuZXhjYWxpZHJhdyAuY29sb3ItaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiAuY29sb3ItcGlja2VyLWhhc2g6OmJlZm9yZSB7XFxcXG4gIHJpZ2h0OiAtMXB4O1xcXFxufVxcXFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLmNvbG9yLWlucHV0LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gLmNvbG9yLXBpY2tlci1oYXNoOjpiZWZvcmUge1xcXFxuICBsZWZ0OiAtMXB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmNvbG9yLWlucHV0LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gLmNvbG9yLXBpY2tlci1oYXNoOjphZnRlciB7XFxcXG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJnLWNvbG9yKTtcXFxcbn1cXFxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaDo6YWZ0ZXIge1xcXFxuICByaWdodDogLTJweDtcXFxcbn1cXFxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaDo6YWZ0ZXIge1xcXFxuICBsZWZ0OiAtMnB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmNvbG9yLWlucHV0LWNvbnRhaW5lciB7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLWlucHV0IHtcXFxcbiAgd2lkdGg6IDExY2g7XFxcXG4gIC8qIGxlbmd0aCBvZiBgdHJhbnNwYXJlbnRgICovXFxcXG4gIG1hcmdpbjogMDtcXFxcbiAgZm9udC1zaXplOiAxcmVtO1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pbnB1dC1iZy1jb2xvcik7XFxcXG4gIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnktY29sb3IpO1xcXFxuICBib3JkZXI6IDA7XFxcXG4gIG91dGxpbmU6IG5vbmU7XFxcXG4gIGhlaWdodDogMS43NWVtO1xcXFxuICBib3gtc2hhZG93OiB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpIDAgMCAwIDFweCBpbnNldDtcXFxcbiAgZmxvYXQ6IGxlZnQ7XFxcXG4gIHBhZGRpbmc6IDFweDtcXFxcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDAuNWVtO1xcXFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxcXG4gICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcXFxcbn1cXFxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItaW5wdXQge1xcXFxuICBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDtcXFxcbn1cXFxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItaW5wdXQge1xcXFxuICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItbGFiZWwtc3dhdGNoIHtcXFxcbiAgaGVpZ2h0OiAxLjg3NXJlbTtcXFxcbiAgd2lkdGg6IDEuODc1cmVtO1xcXFxuICBtYXJnaW4taW5saW5lLWVuZDogMC4yNXJlbTtcXFxcbiAgYm9yZGVyOiAxcHggc29saWQgI2RlZTJlNjtcXFxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcXFxuICBmaWx0ZXI6IHZhcigtLXRoZW1lLWZpbHRlcik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLWxhYmVsLXN3YXRjaDphZnRlciB7XFxcXG4gIGNvbnRlbnQ6IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgdG9wOiAwO1xcXFxuICBsZWZ0OiAwO1xcXFxuICB3aWR0aDogMTAwJTtcXFxcbiAgaGVpZ2h0OiAxMDAlO1xcXFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1zd2F0Y2gtY29sb3IpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1rZXliaW5kaW5nIHtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICBib3R0b206IDJweDtcXFxcbiAgZm9udC1zaXplOiAwLjdlbTtcXFxcbn1cXFxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxcXG4gIHJpZ2h0OiAycHg7XFxcXG59XFxcXG46cm9vdFtkaXI9cnRsXSAuZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcXFxuICBsZWZ0OiAycHg7XFxcXG59XFxcXG4uZXhjYWxpZHJhdy0tbW9iaWxlLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1rZXliaW5kaW5nIHtcXFxcbiAgZGlzcGxheTogbm9uZTtcXFxcbn1cXFxcblxcXFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci10eXBlLWNhbnZhc0JhY2tncm91bmQgLmNvbG9yLXBpY2tlci1rZXliaW5kaW5nIHtcXFxcbiAgY29sb3I6ICNhYWE7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLXR5cGUtZWxlbWVudEJhY2tncm91bmQgLmNvbG9yLXBpY2tlci1rZXliaW5kaW5nIHtcXFxcbiAgY29sb3I6ICNmZmZmZmY7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLXN3YXRjaFthcmlhLWxhYmVsPXRyYW5zcGFyZW50XSAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcXFxuICBjb2xvcjogI2FhYTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItdHlwZS1lbGVtZW50U3Ryb2tlIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxcXG4gIGNvbG9yOiAjZDRkNGQ0O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcudGhlbWUtLWRhcmsgLmNvbG9yLXBpY2tlci10eXBlLWVsZW1lbnRCYWNrZ3JvdW5kIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxcXG4gIGNvbG9yOiAjMDAwMDAwO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcudGhlbWUtLWRhcmsgLmNvbG9yLXBpY2tlci1zd2F0Y2hbYXJpYS1sYWJlbD10cmFuc3BhcmVudF0gLmNvbG9yLXBpY2tlci1rZXliaW5kaW5nIHtcXFxcbiAgY29sb3I6ICMwMDAwMDA7XFxcXG59XFxcIiwgXFxcIlxcXCIse1xcXCJ2ZXJzaW9uXFxcIjozLFxcXCJzb3VyY2VzXFxcIjpbXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcXFwiLFxcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jb21wb25lbnRzL0NvbG9yUGlja2VyLnNjc3NcXFwiLFxcXCJ3ZWJwYWNrOi8vLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvb3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiXSxcXFwibmFtZXNcXFwiOltdLFxcXCJtYXBwaW5nc1xcXCI6XFxcIkFBVUE7RUFDRSwyQ0FBQTtBQ1RGOztBQUNFO0VBQ0UsaUNBQUE7RUFDQSx5Q0FBQTtFQUNBLHlDQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtBQUVKO0FBQUk7RUFDRSxZQUFBO0FBRU47QUFDSTtFQUNFLGFBQUE7QUFDTjtBQUdFO0VBQ0UsYUFBQTtFQUNBLCtCQUFBO0VBQ0EsbUJBQUE7QUFESjtBQUlFO0VBQ0UsUUFBQTtFQUNBLFNBQUE7RUFDQSxtQkFBQTtFQUNBLHdCQUFBO0VBQ0EsMkRBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7QUFGSjtBQUlJO0VBQ0UsVUFBQTtBQUZOO0FBS0k7RUFDRSxXQUFBO0FBSE47QUFPRTtFQUNFLHdEQUFBO0VBQ0EsVUFBQTtBQUxKO0FBUUU7RUFDRSxlQUFBO0VBQ0EsYUFBQTtFQUNBLHNDQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtBQU5KO0FBUUk7RUFDRSxhQUFBO0VBQ0Esa0RBQUE7QUFOTjtBQVVFO0VBQ0UscUJBQUE7QUFSSjtBQVdFO0VBQ0Usa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0Esc0JBQUE7RUFDQSxzQkFBQTtFQUNBLHlDQUFBO0VBQ0EsMkJBQUE7QUFUSjtBQVdJO0VBQ0UsOEVBQUE7RUFDQSxvQ0FBQTtFQUNBLDJDQUFBO0FBVE47QUFhRTtFQUNFLGtCQUFBO0VBQ0EsOENBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLE9BQUE7QUFYSjtBQWNFOztFQUVFLCtEQUFBO0FBWko7QUFnQkU7RUFDRSxxQ0FBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQVVBLCtCQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtBQXZCSjtBQVdJO0VBQ0UsMEJBQUE7QUFUTjtBQVlJO0VBQ0UsMEJBQUE7QUFWTjtBQW9CRTtFQUNFLGtEQUFBO0FBbEJKO0FBcUJFOztFQUVFLFdBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtBQW5CSjtBQXNCRTtFQUNFLHFDQUFBO0FBcEJKO0FBc0JJO0VBQ0UsV0FBQTtBQXBCTjtBQXVCSTtFQUNFLFVBQUE7QUFyQk47QUF5QkU7RUFDRSxpQ0FBQTtBQXZCSjtBQXlCSTtFQUNFLFdBQUE7QUF2Qk47QUEwQkk7RUFDRSxVQUFBO0FBeEJOO0FBNEJFO0VBQ0UsYUFBQTtBQTFCSjtBQTZCRTtFQUNFLFdBQUE7RUFBYSw0QkFBQTtFQUNiLFNBQUE7RUFDQSxlQUFBO0VBQ0EsdUNBQUE7RUFDQSxnQ0FBQTtFQUNBLFNBQUE7RUFDQSxhQUFBO0VBQ0EsY0FBQTtFQUNBLHFEQUFBO0VBVUEsV0FBQTtFQUNBLFlBQUE7RUFDQSwyQkFBQTtFQUNBLHdCQUFBO1VBQUEsZ0JBQUE7QUFuQ0o7QUF3Qkk7RUFDRSwwQkFBQTtBQXRCTjtBQXlCSTtFQUNFLDBCQUFBO0FBdkJOO0FBZ0NFO0VBQ0UsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsMEJBQUE7RUFDQSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx3Q0FBQTtFQUNBLDJCQUFBO0FBOUJKO0FBZ0NJO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLCtCQUFBO0FBOUJOO0FBa0NFO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7QUFoQ0o7QUFrQ0k7RUFDRSxVQUFBO0FBaENOO0FBbUNJO0VBQ0UsU0FBQTtBQWpDTjtBRHJMVztFQzBOTCxhQUFBO0FBbENOOztBQXNDRTtFQUNFLFdBQUE7QUFuQ0o7QUFzQ0U7RUFDRSxjQzNOZTtBRHVMbkI7QUF1Q0U7RUFDRSxXQUFBO0FBckNKO0FBd0NFO0VBQ0UsY0FBQTtBQXRDSjtBQTBDSTtFQUNFLGNDdk9hO0FEK0xuQjtBQTBDSTtFQUNFLGNDMU9hO0FEa01uQlxcXCIsXFxcInNvdXJjZXNDb250ZW50XFxcIjpbXFxcIkBpbXBvcnQgXFxcXFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXFxcXFwiO1xcXFxuXFxcXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXFxcbiAgICBAY29udGVudDtcXFxcbiAgfVxcXFxufVxcXFxuXFxcXG4kdGhlbWUtZmlsdGVyOiBcXFxcXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXFxcXFwiO1xcXFxuXFxcXG46ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxcXG59XFxcXG5cXFwiLFxcXCJAaW1wb3J0IFxcXFxcXFwiLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGVcXFxcXFxcIjtcXFxcblxcXFxuLmV4Y2FsaWRyYXcge1xcXFxuICAuY29sb3ItcGlja2VyIHtcXFxcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wb3B1cC1iZy1jb2xvcik7XFxcXG4gICAgYm9yZGVyOiAwIHNvbGlkIHRyYW5zcGFyZW50aXplKCRvYy13aGl0ZSwgMC43NSk7XFxcXG4gICAgYm94LXNoYWRvdzogdHJhbnNwYXJlbnRpemUoJG9jLWJsYWNrLCAwLjc1KSAwIDFweCA0cHg7XFxcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcblxcXFxuICAgIDpyb290W2Rpcj1cXFxcXFxcImx0clxcXFxcXFwiXSAmIHtcXFxcbiAgICAgIGxlZnQ6IC01LjVweDtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICA6cm9vdFtkaXI9XFxcXFxcXCJydGxcXFxcXFxcIl0gJiB7XFxcXG4gICAgICByaWdodDogLTUuNXB4O1xcXFxuICAgIH1cXFxcbiAgfVxcXFxuXFxcXG4gIC5jb2xvci1waWNrZXItY29udHJvbC1jb250YWluZXIge1xcXFxuICAgIGRpc3BsYXk6IGdyaWQ7XFxcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcXFxcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICB9XFxcXG5cXFxcbiAgLmNvbG9yLXBpY2tlci10cmlhbmdsZSB7XFxcXG4gICAgd2lkdGg6IDA7XFxcXG4gICAgaGVpZ2h0OiAwO1xcXFxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XFxcXG4gICAgYm9yZGVyLXdpZHRoOiAwIDlweCAxMHB4O1xcXFxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tcG9wdXAtYmctY29sb3IpO1xcXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgICB0b3A6IC0xMHB4O1xcXFxuXFxcXG4gICAgOnJvb3RbZGlyPVxcXFxcXFwibHRyXFxcXFxcXCJdICYge1xcXFxuICAgICAgbGVmdDogMTJweDtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICA6cm9vdFtkaXI9XFxcXFxcXCJydGxcXFxcXFxcIl0gJiB7XFxcXG4gICAgICByaWdodDogMTJweDtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAuY29sb3ItcGlja2VyLXRyaWFuZ2xlLXNoYWRvdyB7XFxcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudGl6ZSgkb2MtYmxhY2ssIDAuOSk7XFxcXG4gICAgdG9wOiAtMTFweDtcXFxcbiAgfVxcXFxuXFxcXG4gIC5jb2xvci1waWNrZXItY29udGVudCB7XFxcXG4gICAgcGFkZGluZzogMC41cmVtO1xcXFxuICAgIGRpc3BsYXk6IGdyaWQ7XFxcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgYXV0byk7XFxcXG4gICAgZ3JpZC1nYXA6IDAuNXJlbTtcXFxcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxcXG5cXFxcbiAgICAmOmZvY3VzIHtcXFxcbiAgICAgIG91dGxpbmU6IG5vbmU7XFxcXG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAuY29sb3ItcGlja2VyLWNvbnRlbnQgLmNvbG9yLWlucHV0LWNvbnRhaW5lciB7XFxcXG4gICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDU7XFxcXG4gIH1cXFxcblxcXFxuICAuY29sb3ItcGlja2VyLXN3YXRjaCB7XFxcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcXFxuICAgIGhlaWdodDogMS44NzVyZW07XFxcXG4gICAgd2lkdGg6IDEuODc1cmVtO1xcXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXFxcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxcXG4gICAgbWFyZ2luOiAwO1xcXFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcXFxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3IgIWltcG9ydGFudDtcXFxcbiAgICBmaWx0ZXI6IHZhcigtLXRoZW1lLWZpbHRlcik7XFxcXG5cXFxcbiAgICAmOmZvY3VzIHtcXFxcbiAgICAgIC8qIFRPRE86IG9ubHkgc2hvdyB0aGUgYm9yZGVyIHdoZW4gdGhlIGNvbG9yIGlzIHRvbyBsaWdodCB0byBzZWUgYXMgYSBzaGFkb3cgKi9cXFxcbiAgICAgIGJveC1zaGFkb3c6IDAgMCA0cHggMXB4IGN1cnJlbnRDb2xvcjtcXFxcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2VsZWN0LWhpZ2hsaWdodC1jb2xvcik7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLmNvbG9yLXBpY2tlci10cmFuc3BhcmVudCB7XFxcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcXFxuICAgIGJveC1zaGFkb3c6IHRyYW5zcGFyZW50aXplKCRvYy1ibGFjaywgMC45KSAwIDAgMCAxcHggaW5zZXQ7XFxcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICAgIHRvcDogMDtcXFxcbiAgICByaWdodDogMDtcXFxcbiAgICBib3R0b206IDA7XFxcXG4gICAgbGVmdDogMDtcXFxcbiAgfVxcXFxuXFxcXG4gIC5jb2xvci1waWNrZXItdHJhbnNwYXJlbnQsXFxcXG4gIC5jb2xvci1waWNrZXItbGFiZWwtc3dhdGNoIHtcXFxcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXFxcXFxcXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBTVVsRVFWUTRUMk5rWUdBUVljQVAzdUNUWmh3MWdHR1loQUdCWklBL25ZRENnQkRBbTlCR0RXQUFKeVJDZ0xhQkNBQWdYd2l4ekFTMHBnQUFBQUJKUlU1RXJrSmdnZz09XFxcXFxcXCIpXFxcXG4gICAgICBsZWZ0IGNlbnRlcjtcXFxcbiAgfVxcXFxuXFxcXG4gIC5jb2xvci1waWNrZXItaGFzaCB7XFxcXG4gICAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTtcXFxcbiAgICBoZWlnaHQ6IDEuODc1cmVtO1xcXFxuICAgIHdpZHRoOiAxLjg3NXJlbTtcXFxcblxcXFxuICAgIDpyb290W2Rpcj1cXFxcXFxcImx0clxcXFxcXFwiXSAmIHtcXFxcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4O1xcXFxuICAgIH1cXFxcblxcXFxuICAgIDpyb290W2Rpcj1cXFxcXFxcInJ0bFxcXFxcXFwiXSAmIHtcXFxcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwO1xcXFxuICAgIH1cXFxcblxcXFxuICAgIGNvbG9yOiB2YXIoLS1pbnB1dC1sYWJlbC1jb2xvcik7XFxcXG4gICAgZGlzcGxheTogZmxleDtcXFxcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcXFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXFxcbiAgfVxcXFxuXFxcXG4gIC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaCB7XFxcXG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxcXG4gIH1cXFxcblxcXFxuICAuY29sb3ItaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiAuY29sb3ItcGlja2VyLWhhc2g6OmJlZm9yZSxcXFxcbiAgLmNvbG9yLWlucHV0LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gLmNvbG9yLXBpY2tlci1oYXNoOjphZnRlciB7XFxcXG4gICAgY29udGVudDogXFxcXFxcXCJcXFxcXFxcIjtcXFxcbiAgICB3aWR0aDogMXB4O1xcXFxuICAgIGhlaWdodDogMTAwJTtcXFxcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gICAgdG9wOiAwO1xcXFxuICB9XFxcXG5cXFxcbiAgLmNvbG9yLWlucHV0LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gLmNvbG9yLXBpY2tlci1oYXNoOjpiZWZvcmUge1xcXFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7XFxcXG5cXFxcbiAgICA6cm9vdFtkaXI9XFxcXFxcXCJsdHJcXFxcXFxcIl0gJiB7XFxcXG4gICAgICByaWdodDogLTFweDtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICA6cm9vdFtkaXI9XFxcXFxcXCJydGxcXFxcXFxcIl0gJiB7XFxcXG4gICAgICBsZWZ0OiAtMXB4O1xcXFxuICAgIH1cXFxcbiAgfVxcXFxuXFxcXG4gIC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaDo6YWZ0ZXIge1xcXFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJnLWNvbG9yKTtcXFxcblxcXFxuICAgIDpyb290W2Rpcj1cXFxcXFxcImx0clxcXFxcXFwiXSAmIHtcXFxcbiAgICAgIHJpZ2h0OiAtMnB4O1xcXFxuICAgIH1cXFxcblxcXFxuICAgIDpyb290W2Rpcj1cXFxcXFxcInJ0bFxcXFxcXFwiXSAmIHtcXFxcbiAgICAgIGxlZnQ6IC0ycHg7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLmNvbG9yLWlucHV0LWNvbnRhaW5lciB7XFxcXG4gICAgZGlzcGxheTogZmxleDtcXFxcbiAgfVxcXFxuXFxcXG4gIC5jb2xvci1waWNrZXItaW5wdXQge1xcXFxuICAgIHdpZHRoOiAxMWNoOyAvKiBsZW5ndGggb2YgYHRyYW5zcGFyZW50YCAqL1xcXFxuICAgIG1hcmdpbjogMDtcXFxcbiAgICBmb250LXNpemU6IDFyZW07XFxcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5wdXQtYmctY29sb3IpO1xcXFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnktY29sb3IpO1xcXFxuICAgIGJvcmRlcjogMDtcXFxcbiAgICBvdXRsaW5lOiBub25lO1xcXFxuICAgIGhlaWdodDogMS43NWVtO1xcXFxuICAgIGJveC1zaGFkb3c6IHZhcigtLWlucHV0LWJvcmRlci1jb2xvcikgMCAwIDAgMXB4IGluc2V0O1xcXFxuXFxcXG4gICAgOnJvb3RbZGlyPVxcXFxcXFwibHRyXFxcXFxcXCJdICYge1xcXFxuICAgICAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgOnJvb3RbZGlyPVxcXFxcXFwicnRsXFxcXFxcXCJdICYge1xcXFxuICAgICAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgZmxvYXQ6IGxlZnQ7XFxcXG4gICAgcGFkZGluZzogMXB4O1xcXFxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwLjVlbTtcXFxcbiAgICBhcHBlYXJhbmNlOiBub25lO1xcXFxuICB9XFxcXG5cXFxcbiAgLmNvbG9yLXBpY2tlci1sYWJlbC1zd2F0Y2gge1xcXFxuICAgIGhlaWdodDogMS44NzVyZW07XFxcXG4gICAgd2lkdGg6IDEuODc1cmVtO1xcXFxuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwLjI1cmVtO1xcXFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRvYy1ncmF5LTM7XFxcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcXFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXFxcbiAgICBmaWx0ZXI6IHZhcigtLXRoZW1lLWZpbHRlcik7XFxcXG5cXFxcbiAgICAmOmFmdGVyIHtcXFxcbiAgICAgIGNvbnRlbnQ6IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gICAgICB0b3A6IDA7XFxcXG4gICAgICBsZWZ0OiAwO1xcXFxuICAgICAgd2lkdGg6IDEwMCU7XFxcXG4gICAgICBoZWlnaHQ6IDEwMCU7XFxcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zd2F0Y2gtY29sb3IpO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxuXFxcXG4gIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICAgIGJvdHRvbTogMnB4O1xcXFxuICAgIGZvbnQtc2l6ZTogMC43ZW07XFxcXG5cXFxcbiAgICA6cm9vdFtkaXI9XFxcXFxcXCJsdHJcXFxcXFxcIl0gJiB7XFxcXG4gICAgICByaWdodDogMnB4O1xcXFxuICAgIH1cXFxcblxcXFxuICAgIDpyb290W2Rpcj1cXFxcXFxcInJ0bFxcXFxcXFwiXSAmIHtcXFxcbiAgICAgIGxlZnQ6IDJweDtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICBAaW5jbHVkZSBpc01vYmlsZSB7XFxcXG4gICAgICBkaXNwbGF5OiBub25lO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxuXFxcXG4gIC5jb2xvci1waWNrZXItdHlwZS1jYW52YXNCYWNrZ3JvdW5kIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxcXG4gICAgY29sb3I6ICNhYWE7XFxcXG4gIH1cXFxcblxcXFxuICAuY29sb3ItcGlja2VyLXR5cGUtZWxlbWVudEJhY2tncm91bmQgLmNvbG9yLXBpY2tlci1rZXliaW5kaW5nIHtcXFxcbiAgICBjb2xvcjogJG9jLXdoaXRlO1xcXFxuICB9XFxcXG5cXFxcbiAgLmNvbG9yLXBpY2tlci1zd2F0Y2hbYXJpYS1sYWJlbD1cXFxcXFxcInRyYW5zcGFyZW50XFxcXFxcXCJdIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxcXG4gICAgY29sb3I6ICNhYWE7XFxcXG4gIH1cXFxcblxcXFxuICAuY29sb3ItcGlja2VyLXR5cGUtZWxlbWVudFN0cm9rZSAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcXFxuICAgIGNvbG9yOiAjZDRkNGQ0O1xcXFxuICB9XFxcXG5cXFxcbiAgJi50aGVtZS0tZGFyayB7XFxcXG4gICAgLmNvbG9yLXBpY2tlci10eXBlLWVsZW1lbnRCYWNrZ3JvdW5kIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxcXG4gICAgICBjb2xvcjogJG9jLWJsYWNrO1xcXFxuICAgIH1cXFxcbiAgICAuY29sb3ItcGlja2VyLXN3YXRjaFthcmlhLWxhYmVsPVxcXFxcXFwidHJhbnNwYXJlbnRcXFxcXFxcIl0gLmNvbG9yLXBpY2tlci1rZXliaW5kaW5nIHtcXFxcbiAgICAgIGNvbG9yOiAkb2MtYmxhY2s7XFxcXG4gICAgfVxcXFxuICB9XFxcXG59XFxcXG5cXFwiLFxcXCIvL1xcXFxuLy9cXFxcbi8vICBcdUQ4MzVcdURERDYgXHVEODM1XHVEREUyIFx1RDgzNVx1RERERiBcdUQ4MzVcdURERTIgXHVEODM1XHVEREU1XFxcXG4vLyAgdiAxLjkuMVxcXFxuLy9cXFxcbi8vICBcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcXFxcblxcXFxuXFxcXG4vLyAgR2VuZXJhbFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2Mtd2hpdGU6ICAgICAgICAgI2ZmZmZmZjtcXFxcbiRvYy1ibGFjazogICAgICAgICAjMDAwMDAwO1xcXFxuXFxcXG5cXFxcbi8vICBHcmF5XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmF5LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmOGY5ZmEsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZjFmM2Y1LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2U5ZWNlZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNkZWUyZTYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjY2VkNGRhLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2FkYjViZCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM4NjhlOTYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNDk1MDU3LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzM0M2E0MCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMyMTI1MjlcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmF5LTA6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0yOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTM6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS01OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTY6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS04OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTk6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBSZWRcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXJlZC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmNWY1LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZTNlMyxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmM5YzksXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZhOGE4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmODc4NyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmZjZiNmIsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmE1MjUyLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2YwM2UzZSxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNlMDMxMzEsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjYzkyYTJhXFxcXG4pO1xcXFxuXFxcXG4kb2MtcmVkLTA6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTE6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTI6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTM6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTQ6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTU6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTY6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTc6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTg6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTk6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFBpbmtcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXBpbmstbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjBmNixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmRlZWIsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmNjMmQ3LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZhYTJjMSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmNzgzYWMsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZjA2NTk1LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2U2NDk4MCxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNkNjMzNmMsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjYzIyNTVjLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2E2MWU0ZFxcXFxuKTtcXFxcblxcXFxuJG9jLXBpbmstMDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtcGluay0xOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTI6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtcGluay00OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTU6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtcGluay03OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTg6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstOTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEdyYXBlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmFwZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjhmMGZjLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2YzZDlmYSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNlZWJlZmEsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZTU5OWY3LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2RhNzdmMixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNjYzVkZTgsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjYmU0YmRiLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2FlM2VjOSxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM5YzM2YjUsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjODYyZTljXFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JhcGUtMDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTE6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0yOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTQ6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS01OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTc6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS04OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtOTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBWaW9sZXRcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXZpb2xldC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjNmMGZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2U1ZGJmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNkMGJmZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjYjE5N2ZjLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzk3NzVmYSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM4NDVlZjcsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNzk1MGYyLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzcwNDhlOCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM2NzQxZDksXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjNWYzZGM0XFxcXG4pO1xcXFxuXFxcXG4kb2MtdmlvbGV0LTA6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTE6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTI6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTM6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTQ6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTU6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTY6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTc6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTg6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTk6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEluZGlnb1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtaW5kaWdvLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlZGYyZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZGJlNGZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2JhYzhmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM5MWE3ZmYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNzQ4ZmZjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzVjN2NmYSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM0YzZlZjUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNDI2M2ViLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzNiNWJkYixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMzNjRmYzdcXFxcbik7XFxcXG5cXFxcbiRvYy1pbmRpZ28tMDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tODogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tOTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQmx1ZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtYmx1ZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTdmNWZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2QwZWJmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNhNWQ4ZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNzRjMGZjLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzRkYWJmNyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMzMzlhZjAsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMjI4YmU2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzFjN2VkNixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMxOTcxYzIsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMTg2NGFiXFxcXG4pO1xcXFxuXFxcXG4kb2MtYmx1ZS0wOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTE6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0zOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTQ6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS02OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTc6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtODogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS05OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQ3lhblxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtY3lhbi1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTNmYWZjLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2M1ZjZmYSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICM5OWU5ZjIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNjZkOWU4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzNiYzlkYixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMyMmI4Y2YsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMTVhYWJmLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzEwOThhZCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMwYzg1OTksXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMGI3Mjg1XFxcXG4pO1xcXFxuXFxcXG4kb2MtY3lhbi0wOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTE6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0zOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTQ6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi02OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTc6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tODogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi05OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgVGVhbFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtdGVhbC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTZmY2Y1LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2MzZmFlOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICM5NmYyZDcsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNjNlNmJlLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzM4ZDlhOSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMyMGM5OTcsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMTJiODg2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzBjYTY3OCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMwOTkyNjgsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMDg3ZjViXFxcXG4pO1xcXFxuXFxcXG4kb2MtdGVhbC0wOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTE6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0zOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTQ6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC02OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTc6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtODogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC05OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgR3JlZW5cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyZWVuLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlYmZiZWUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZDNmOWQ4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2IyZjJiYixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM4Y2U5OWEsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNjlkYjdjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzUxY2Y2NixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM0MGMwNTcsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMzdiMjRkLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzJmOWU0NCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMyYjhhM2VcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmVlbi0wOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTI6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0zOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNDogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTU6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi02OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNzogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTg6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi05OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIExpbWVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWxpbWUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y0ZmNlMyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNlOWZhYzgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZDhmNWEyLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2MwZWI3NSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNhOWUzNGIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjOTRkODJkLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzgyYzkxZSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM3NGI4MTYsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjNjZhODBmLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzVjOTQwZFxcXFxuKTtcXFxcblxcXFxuJG9jLWxpbWUtMDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0xOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTI6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtbGltZS00OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTU6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtbGltZS03OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTg6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtOTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFllbGxvd1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MteWVsbG93LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY5ZGIsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZmM2JmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmZWM5OSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmUwNjYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmZkNDNiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZjYzQxOSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmYWIwMDUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjU5ZjAwLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2YwOGMwMCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNlNjc3MDBcXFxcbik7XFxcXG5cXFxcbiRvYy15ZWxsb3ctMDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctODogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctOTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgT3JhbmdlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1vcmFuZ2UtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjRlNixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmU4Y2MsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZkOGE4LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmYzA3OCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZmE5NGQsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmY5MjJiLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZkN2UxNCxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmNzY3MDcsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZTg1OTBjLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2Q5NDgwZlxcXFxuKTtcXFxcblxcXFxuJG9jLW9yYW5nZS0wOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0xOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0yOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0zOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS00OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS01OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS02OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS03OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS04OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS05OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBDb2xvciBsaXN0XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1jb2xvci1zcGVjdHJ1bTogICA5O1xcXFxuXFxcXG4kb2MtY29sb3ItbGlzdDogKFxcXFxuICAkb2MtZ3JheS1saXN0OiAgICAgIFxcXFxcXFwiZ3JheVxcXFxcXFwiLFxcXFxuICAkb2MtcmVkLWxpc3Q6ICAgICAgXFxcXFxcXCJyZWRcXFxcXFxcIixcXFxcbiAgJG9jLXBpbmstbGlzdDogICAgICBcXFxcXFxcInBpbmtcXFxcXFxcIixcXFxcbiAgJG9jLWdyYXBlLWxpc3Q6ICAgICAgXFxcXFxcXCJncmFwZVxcXFxcXFwiLFxcXFxuICAkb2MtdmlvbGV0LWxpc3Q6ICAgICAgXFxcXFxcXCJ2aW9sZXRcXFxcXFxcIixcXFxcbiAgJG9jLWluZGlnby1saXN0OiAgICAgIFxcXFxcXFwiaW5kaWdvXFxcXFxcXCIsXFxcXG4gICRvYy1ibHVlLWxpc3Q6ICAgICAgXFxcXFxcXCJibHVlXFxcXFxcXCIsXFxcXG4gICRvYy1jeWFuLWxpc3Q6ICAgICAgXFxcXFxcXCJjeWFuXFxcXFxcXCIsXFxcXG4gICRvYy10ZWFsLWxpc3Q6ICAgICAgXFxcXFxcXCJ0ZWFsXFxcXFxcXCIsXFxcXG4gICRvYy1ncmVlbi1saXN0OiAgICAgIFxcXFxcXFwiZ3JlZW5cXFxcXFxcIixcXFxcbiAgJG9jLWxpbWUtbGlzdDogICAgICBcXFxcXFxcImxpbWVcXFxcXFxcIixcXFxcbiAgJG9jLXllbGxvdy1saXN0OiAgICAgIFxcXFxcXFwieWVsbG93XFxcXFxcXCIsXFxcXG4gICRvYy1vcmFuZ2UtbGlzdDogICAgICBcXFxcXFxcIm9yYW5nZVxcXFxcXFwiXFxcXG4pO1xcXFxuXFxcIl0sXFxcInNvdXJjZVJvb3RcXFwiOlxcXCJcXFwifV0pO1xcbi8vIEV4cG9ydHNcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKF9fX0NTU19MT0FERVJfRVhQT1JUX19fKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlEYjJ4dmNsQnBZMnRsY2k1elkzTnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdRVUZCUVR0QlFVTTRTRHRCUVVOcVFqdEJRVU5QTzBGQlEzQklMRFJEUVVFMFF5eHhXa0ZCZVV3N1FVRkRjazhzT0VKQlFUaENMSFZIUVVFeVFpeERRVUZETEdkSVFVRnhRenRCUVVNdlJpeDVRMEZCZVVNc01FZEJRU3RDTzBGQlEzaEZPMEZCUTBFc2JVUkJRVzFFTEdkRVFVRm5SQ3hIUVVGSExDdENRVUVyUWl4elEwRkJjME1zT0VOQlFUaERMRGhEUVVFNFF5eDFRa0ZCZFVJc2RVSkJRWFZDTEVkQlFVY3NORU5CUVRSRExHbENRVUZwUWl4SFFVRkhMRFJEUVVFMFF5eHJRa0ZCYTBJc1IwRkJSeXdyUTBGQkswTXNhMEpCUVd0Q0xHOURRVUZ2UXl4M1FrRkJkMElzUjBGQlJ5eHpRMEZCYzBNc1lVRkJZU3hqUVVGakxIZENRVUYzUWl3MlFrRkJOa0lzWjBWQlFXZEZMSFZDUVVGMVFpeGxRVUZsTEVkQlFVY3NjVVJCUVhGRUxHVkJRV1VzUjBGQlJ5eHhSRUZCY1VRc1owSkJRV2RDTEVkQlFVY3NOa05CUVRaRExEWkVRVUUyUkN4bFFVRmxMRWRCUVVjc2NVTkJRWEZETEc5Q1FVRnZRaXhyUWtGQmEwSXNNa05CUVRKRExIRkNRVUZ4UWl4MVFrRkJkVUlzUjBGQlJ5d3lRMEZCTWtNc2EwSkJRV3RDTEhWRVFVRjFSQ3hIUVVGSExEUkVRVUUwUkN3d1FrRkJNRUlzUjBGQlJ5eHZRMEZCYjBNc2RVSkJRWFZDTEhGQ1FVRnhRaXh2UWtGQmIwSXNiMEpCUVc5Q0xIVkNRVUYxUWl4alFVRmpMREpDUVVFeVFpd3lRa0ZCTWtJc09FTkJRVGhETEdkRFFVRm5ReXhIUVVGSExEQkRRVUV3UXl3MFNFRkJORWdzWjBSQlFXZEVMRWRCUVVjc2VVTkJRWGxETEhWQ1FVRjFRaXh0UkVGQmJVUXNkVUpCUVhWQ0xGZEJRVmNzWVVGQllTeGpRVUZqTEZsQlFWa3NSMEZCUnl4clJrRkJhMFlzTkVWQlFUUkZMRWRCUVVjc2EwTkJRV3RETERCRFFVRXdReXh4UWtGQmNVSXNiMEpCUVc5Q0xHOURRVUZ2UXl4clFrRkJhMElzZDBKQlFYZENMRFJDUVVFMFFpeDFRa0ZCZFVJc1IwRkJSeXhwUkVGQmFVUXNLMEpCUVN0Q0xFZEJRVWNzYVVSQlFXbEVMQ3RDUVVFclFpeEhRVUZITEhORlFVRnpSU3gxUkVGQmRVUXNSMEZCUnl3d1NrRkJNRW9zYTBKQlFXdENMR1ZCUVdVc2FVSkJRV2xDTEhWQ1FVRjFRaXhYUVVGWExFZEJRVWNzT0VWQlFUaEZMREJEUVVFd1F5eEhRVUZITERaR1FVRTJSaXhuUWtGQlowSXNSMEZCUnl3MlJrRkJOa1lzWlVGQlpTeEhRVUZITERaRlFVRTJSU3h6UTBGQmMwTXNSMEZCUnl3MFJrRkJORVlzWjBKQlFXZENMRWRCUVVjc05FWkJRVFJHTEdWQlFXVXNSMEZCUnl4elEwRkJjME1zYTBKQlFXdENMRWRCUVVjc2JVTkJRVzFETEdkQ1FVRm5RaXdyUTBGQkswTXNiMEpCUVc5Q0xEUkRRVUUwUXl4eFEwRkJjVU1zWTBGQll5eHJRa0ZCYTBJc2JVSkJRVzFDTERCRVFVRXdSQ3huUWtGQlowSXNhVUpCUVdsQ0xHZERRVUZuUXl3MlFrRkJOa0lzTmtKQlFUWkNMRWRCUVVjc2EwUkJRV3RFTEN0Q1FVRXJRaXhIUVVGSExHdEVRVUZyUkN3clFrRkJLMElzUjBGQlJ5d3dRMEZCTUVNc2NVSkJRWEZDTEc5Q1FVRnZRaXdyUWtGQkswSXNPRUpCUVRoQ0xIVkNRVUYxUWl4eFFrRkJjVUlzTmtOQlFUWkRMR2REUVVGblF5eEhRVUZITEdkRVFVRm5SQ3hyUWtGQmEwSXNkVUpCUVhWQ0xGZEJRVmNzV1VGQldTeG5Ra0ZCWjBJc2FVSkJRV2xDTEc5RFFVRnZReXhIUVVGSExIZERRVUYzUXl4MVFrRkJkVUlzWjBKQlFXZENMSEZDUVVGeFFpeEhRVUZITEhWRVFVRjFSQ3hsUVVGbExFZEJRVWNzZFVSQlFYVkVMR05CUVdNc1IwRkJSeXd5UkVGQk1rUXNhMEpCUVd0Q0xFZEJRVWNzT0VWQlFUaEZMR2RDUVVGblFpeEhRVUZITERaRlFVRTJSU3h0UWtGQmJVSXNSMEZCUnl4eFJrRkJjVVlzWjBKQlFXZENMRWRCUVVjc2VVVkJRWGxGTEcxQ1FVRnRRaXhIUVVGSExIbEdRVUY1Uml4dFFrRkJiVUlzUjBGQlJ5eHBSMEZCYVVjc2JVSkJRVzFDTEVkQlFVY3NUMEZCVHl4cFRrRkJhVTRzVjBGQlZ5eE5RVUZOTEV0QlFVc3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExFdEJRVXNzUzBGQlN5eFZRVUZWTEV0QlFVc3NTMEZCU3l4VlFVRlZMRXRCUVVzc1MwRkJTeXhWUVVGVkxGZEJRVmNzVjBGQlZ5eExRVUZMTEV0QlFVc3NWVUZCVlN4VlFVRlZMRmRCUVZjc1YwRkJWeXhYUVVGWExGZEJRVmNzVlVGQlZTeExRVUZMTEV0QlFVc3NWVUZCVlN4TFFVRkxMRXRCUVVzc1ZVRkJWU3hMUVVGTExFdEJRVXNzVjBGQlZ5eFZRVUZWTEV0QlFVc3NTMEZCU3l4VlFVRlZMRlZCUVZVc1YwRkJWeXhYUVVGWExGZEJRVmNzUzBGQlN5eExRVUZMTEZWQlFWVXNWMEZCVnl4TFFVRkxMRXRCUVVzc1YwRkJWeXhMUVVGTExFdEJRVXNzVjBGQlZ5eFhRVUZYTEZWQlFWVXNWVUZCVlN4WFFVRlhMRlZCUVZVc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eExRVUZMTEV0QlFVc3NWMEZCVnl4WFFVRlhMRmRCUVZjc1MwRkJTeXhMUVVGTExGZEJRVmNzVjBGQlZ5eFhRVUZYTEZWQlFWVXNWVUZCVlN4VlFVRlZMRlZCUVZVc1MwRkJTeXhOUVVGTkxGZEJRVmNzUzBGQlN5eE5RVUZOTEZkQlFWY3NWMEZCVnl4VlFVRlZMRmRCUVZjc1ZVRkJWU3hYUVVGWExGZEJRVmNzVjBGQlZ5eE5RVUZOTEV0QlFVc3NWMEZCVnl4TFFVRkxMRXRCUVVzc1YwRkJWeXhMUVVGTExFMUJRVTBzVjBGQlZ5eE5RVUZOTEU5QlFVOHNWVUZCVlN4VlFVRlZMRlZCUVZVc1YwRkJWeXhWUVVGVkxFMUJRVTBzVFVGQlRTeFhRVUZYTEUxQlFVMHNUVUZCVFN4VlFVRlZMRTFCUVUwc1RVRkJUU3hWUVVGVkxFMUJRVTBzVFVGQlRTeFhRVUZYTEUxQlFVMHNUVUZCVFN4VlFVRlZMRTFCUVUwc1RVRkJUU3hWUVVGVkxFMUJRVTBzVFVGQlRTeFZRVUZWTEUxQlFVMHNUVUZCVFN4VlFVRlZMRmRCUVZjc1ZVRkJWU3hWUVVGVkxGZEJRVmNzVjBGQlZ5eFZRVUZWTEZWQlFWVXNWVUZCVlN4WFFVRlhMRlZCUVZVc1ZVRkJWU3hYUVVGWExGZEJRVmNzVjBGQlZ5eE5RVUZOTEUxQlFVMHNWMEZCVnl4TlFVRk5MRTFCUVUwc1YwRkJWeXhOUVVGTkxFMUJRVTBzVjBGQlZ5eFZRVUZWTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExFMUJRVTBzVFVGQlRTeFZRVUZWTEZkQlFWY3NWVUZCVlN4VlFVRlZMRlZCUVZVc1ZVRkJWU3hYUVVGWExFMUJRVTBzVFVGQlRTeFhRVUZYTEZWQlFWVXNWMEZCVnl4TlFVRk5MRTFCUVUwc1ZVRkJWU3hOUVVGTkxFMUJRVTBzVlVGQlZTeE5RVUZOTEUxQlFVMHNWMEZCVnl4UFFVRlBMRTFCUVUwc1ZVRkJWU3hOUVVGTkxFMUJRVTBzVjBGQlZ5eFBRVUZQTEUxQlFVMHNWVUZCVlN4TlFVRk5MRTFCUVUwc1ZVRkJWU3hOUVVGTkxFMUJRVTBzVjBGQlZ5eFBRVUZQTEUxQlFVMHNWMEZCVnl4clJVRkJhMFVzZFVKQlFYVkNMR3REUVVGclF5eEpRVUZKTEdWQlFXVXNTMEZCU3l4SFFVRkhMSE5FUVVGelJDeGhRVUZoTEhkRFFVRjNReXhIUVVGSExIbERRVUY1UXl4cFFrRkJhVUlzYlVKQlFXMUNMSGREUVVGM1F5eHpSRUZCYzBRc05FUkJRVFJFTEhsQ1FVRjVRaXg1UWtGQmVVSXNPRUpCUVRoQ0xIRkNRVUZ4UWl4UFFVRlBMRGhDUVVFNFFpeHpRa0ZCYzBJc1QwRkJUeXhMUVVGTExIVkRRVUYxUXl4dlFrRkJiMElzYzBOQlFYTkRMREJDUVVFd1FpeExRVUZMTERoQ1FVRTRRaXhsUVVGbExHZENRVUZuUWl3d1FrRkJNRUlzSzBKQlFTdENMR3RGUVVGclJTeDVRa0ZCZVVJc2FVSkJRV2xDTERoQ1FVRTRRaXh0UWtGQmJVSXNUMEZCVHl3NFFrRkJPRUlzYjBKQlFXOUNMRTlCUVU4c1MwRkJTeXh4UTBGQmNVTXNNa1ZCUVRKRkxHbENRVUZwUWl4TFFVRkxMRFpDUVVFMlFpeHpRa0ZCYzBJc2IwSkJRVzlDTERaRFFVRTJReXgxUWtGQmRVSXNlVUpCUVhsQ0xHbENRVUZwUWl4elFrRkJjMElzTWtSQlFUSkVMRTlCUVU4c1MwRkJTeXh2UkVGQmIwUXNPRUpCUVRoQ0xFdEJRVXNzTkVKQlFUUkNMSGxDUVVGNVFpeDFRa0ZCZFVJc2MwSkJRWE5DTEhOQ1FVRnpRaXg1UWtGQmVVSXNaMEpCUVdkQ0xEWkNRVUUyUWl3MlFrRkJOa0lzWjBSQlFXZEVMR3REUVVGclF5eHBRa0ZCYVVJc2IwbEJRVzlKTEc5RVFVRnZSQ3hQUVVGUExFdEJRVXNzYVVOQlFXbERMSGxDUVVGNVFpeHBSVUZCYVVVc2VVSkJRWGxDTEdGQlFXRXNaVUZCWlN4blFrRkJaMElzWTBGQll5eExRVUZMTEdkRlFVRm5SU3gxUTBGQmRVTXNPRXRCUVRoTExFdEJRVXNzTUVKQlFUQkNMRFJEUVVFMFF5eDFRa0ZCZFVJc2MwSkJRWE5DTERoQ1FVRTRRaXh0UTBGQmJVTXNUMEZCVHl3NFFrRkJPRUlzYlVOQlFXMURMRTlCUVU4c2QwTkJRWGRETEc5Q1FVRnZRaXd3UWtGQk1FSXNPRUpCUVRoQ0xIbENRVUY1UWl4TFFVRkxMRGhFUVVFNFJDeDVSRUZCZVVRc1MwRkJTeXgzU1VGQmQwa3NiMEpCUVc5Q0xHbENRVUZwUWl4dFFrRkJiVUlzZVVKQlFYbENMR0ZCUVdFc1MwRkJTeXh6UlVGQmMwVXNORU5CUVRSRExEaENRVUU0UWl4dlFrRkJiMElzVDBGQlR5dzRRa0ZCT0VJc2JVSkJRVzFDTEU5QlFVOHNTMEZCU3l4eFJVRkJjVVVzZDBOQlFYZERMRGhDUVVFNFFpeHZRa0ZCYjBJc1QwRkJUeXc0UWtGQk9FSXNiVUpCUVcxQ0xFOUJRVThzUzBGQlN5dzRRa0ZCT0VJc2IwSkJRVzlDTEV0QlFVc3NNa0pCUVRKQ0xHMUNRVUZ0UWl3MlEwRkJOa01zYzBKQlFYTkNMRGhEUVVFNFF5eDFRMEZCZFVNc1owSkJRV2RDTEc5Q1FVRnZRaXh4UWtGQmNVSXNORVJCUVRSRUxEaENRVUU0UWl4dFEwRkJiVU1zVDBGQlR5dzRRa0ZCT0VJc2JVTkJRVzFETEU5QlFVOHNiMEpCUVc5Q0xHMUNRVUZ0UWl4clEwRkJhME1zZFVKQlFYVkNMRXRCUVVzc2EwTkJRV3RETEhWQ1FVRjFRaXh6UWtGQmMwSXNhVU5CUVdsRExHMURRVUZ0UXl4NVFrRkJlVUlzZFVKQlFYVkNMQ3REUVVFclF5eHJRMEZCYTBNc2FVSkJRV2xDTEhOQ1FVRnpRaXd5UWtGQk1rSXNaVUZCWlN4blFrRkJaMElzYjBKQlFXOUNMSEZDUVVGeFFpeDNRMEZCZDBNc1QwRkJUeXhMUVVGTExHZERRVUZuUXl4NVFrRkJlVUlzYTBKQlFXdENMSFZDUVVGMVFpdzRRa0ZCT0VJc2JVSkJRVzFDTEU5QlFVOHNPRUpCUVRoQ0xHdENRVUZyUWl4UFFVRlBMREpDUVVFeVFpeHpRa0ZCYzBJc1QwRkJUeXhMUVVGTExHOUZRVUZ2UlN4clFrRkJhMElzUzBGQlN5eHhSVUZCY1VVc2RVSkJRWFZDTEV0QlFVc3NhVVpCUVdsR0xHdENRVUZyUWl4TFFVRkxMR2xGUVVGcFJTeHhRa0ZCY1VJc1MwRkJTeXh4UWtGQmNVSXNjVVZCUVhGRkxIbENRVUY1UWl4UFFVRlBMR2xHUVVGcFJpeDVRa0ZCZVVJc1QwRkJUeXhMUVVGTExFZEJRVWNzYTB4QlFXdE1MRFpDUVVFMlFpdzBVVUZCTkZFc09FTkJRVGhETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERCUlFVRXdVU3cwUTBGQk5FTXNNRU5CUVRCRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc01FTkJRVEJETERCRFFVRXdReXd3UTBGQk1FTXNORkZCUVRSUkxEaERRVUU0UXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3NFVVRkJPRkVzWjBSQlFXZEVMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMR2RTUVVGblVpeHJSRUZCYTBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1oxSkJRV2RTTEd0RVFVRnJSQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3cwVVVGQk5GRXNPRU5CUVRoRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUlJRVUUwVVN3NFEwRkJPRU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkZGQlFUUlJMRGhEUVVFNFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzRVVUZCT0ZFc1owUkJRV2RFTERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERSUlFVRTBVU3c0UTBGQk9FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNaMUpCUVdkU0xHdEVRVUZyUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blVrRkJaMUlzYTBSQlFXdEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMSGxHUVVGNVJpeDFaRUZCZFdRc2NVSkJRWEZDTzBGQlF6VjNkVUk3UVVGRFFTeHBSVUZCWlN4MVFrRkJkVUlzUlVGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDBOdmJHOXlVR2xqYTJWeUxuTmpjM00vTldJek9DSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2THlCSmJYQnZjblJ6WEc1cGJYQnZjblFnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmVTA5VlVrTkZUVUZRWDBsTlVFOVNWRjlmWHlCbWNtOXRJRndpTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZjMjkxY21ObFRXRndjeTVxYzF3aU8xeHVhVzF3YjNKMElGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgwbE5VRTlTVkY5Zlh5Qm1jbTl0SUZ3aUxpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDNKMWJuUnBiV1V2WVhCcExtcHpYQ0k3WEc1cGJYQnZjblFnWDE5ZlExTlRYMHhQUVVSRlVsOUhSVlJmVlZKTVgwbE5VRTlTVkY5Zlh5Qm1jbTl0SUZ3aUxpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDNKMWJuUnBiV1V2WjJWMFZYSnNMbXB6WENJN1hHNTJZWElnWDE5ZlExTlRYMHhQUVVSRlVsOVZVa3hmU1UxUVQxSlVYekJmWDE4Z1BTQnVaWGNnVlZKTUtGd2laR0YwWVRwcGJXRm5aUzl3Ym1jN1ltRnpaVFkwTEdsV1FrOVNkekJMUjJkdlFVRkJRVTVUVldoRlZXZEJRVUZDUVVGQlFVRlJRMEZaUVVGQlFXWTRMemxvUVVGQlFVMVZiRVZSVmxFMFZESk9hMWxIUVZGWlkwRlFNM1ZEVkZwb2R6Rm5SMGRaYUVGSFFscEpRUzl1V1VSRFowSkVRVzA1UWtkRVYwRkJTbmxTUTJkTVlVSkRRVUZuV0hkcGVIcEJVekJ3WjBGQlFVRkNTbEpWTlVWeWEwcG5aMmM5UFZ3aUxDQnBiWEJ2Y25RdWJXVjBZUzUxY213cE8xeHVkbUZ5SUY5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZJRDBnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmU1UxUVQxSlVYMTlmS0Y5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDFOUFZWSkRSVTFCVUY5SlRWQlBVbFJmWDE4cE8xeHVkbUZ5SUY5ZlgwTlRVMTlNVDBGRVJWSmZWVkpNWDFKRlVFeEJRMFZOUlU1VVh6QmZYMThnUFNCZlgxOURVMU5mVEU5QlJFVlNYMGRGVkY5VlVreGZTVTFRVDFKVVgxOWZLRjlmWDBOVFUxOU1UMEZFUlZKZlZWSk1YMGxOVUU5U1ZGOHdYMTlmS1R0Y2JpOHZJRTF2WkhWc1pWeHVYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4dWNIVnphQ2hiYlc5a2RXeGxMbWxrTENCY0lqcGxlSEJ2Y25RZ2UxeGNiaUFnZEdobGJXVkdhV3gwWlhJNklHbHVkbVZ5ZENnNU15VXBJR2gxWlMxeWIzUmhkR1VvTVRnd1pHVm5LVHRjWEc1OVhGeHVYRnh1TG1WNFkyRnNhV1J5WVhjZ0xtTnZiRzl5TFhCcFkydGxjaUI3WEZ4dUlDQmlZV05yWjNKdmRXNWtPaUIyWVhJb0xTMXdiM0IxY0MxaVp5MWpiMnh2Y2lrN1hGeHVJQ0JpYjNKa1pYSTZJREFnYzI5c2FXUWdjbWRpWVNneU5UVXNJREkxTlN3Z01qVTFMQ0F3TGpJMUtUdGNYRzRnSUdKdmVDMXphR0ZrYjNjNklISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eU5Ta2dNQ0F4Y0hnZ05IQjRPMXhjYmlBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTkhCNE8xeGNiaUFnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4Y2JuMWNYRzQ2Y205dmRGdGthWEk5YkhSeVhTQXVaWGhqWVd4cFpISmhkeUF1WTI5c2IzSXRjR2xqYTJWeUlIdGNYRzRnSUd4bFpuUTZJQzAxTGpWd2VEdGNYRzU5WEZ4dU9uSnZiM1JiWkdseVBYSjBiRjBnTG1WNFkyRnNhV1J5WVhjZ0xtTnZiRzl5TFhCcFkydGxjaUI3WEZ4dUlDQnlhV2RvZERvZ0xUVXVOWEI0TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVkyOXNiM0l0Y0dsamEyVnlMV052Ym5SeWIyd3RZMjl1ZEdGcGJtVnlJSHRjWEc0Z0lHUnBjM0JzWVhrNklHZHlhV1E3WEZ4dUlDQm5jbWxrTFhSbGJYQnNZWFJsTFdOdmJIVnRibk02SUdGMWRHOGdNV1p5TzF4Y2JpQWdZV3hwWjI0dGFYUmxiWE02SUdObGJuUmxjanRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG1OdmJHOXlMWEJwWTJ0bGNpMTBjbWxoYm1kc1pTQjdYRnh1SUNCM2FXUjBhRG9nTUR0Y1hHNGdJR2hsYVdkb2REb2dNRHRjWEc0Z0lHSnZjbVJsY2kxemRIbHNaVG9nYzI5c2FXUTdYRnh1SUNCaWIzSmtaWEl0ZDJsa2RHZzZJREFnT1hCNElERXdjSGc3WEZ4dUlDQmliM0prWlhJdFkyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1MElIUnlZVzV6Y0dGeVpXNTBJSFpoY2lndExYQnZjSFZ3TFdKbkxXTnZiRzl5S1R0Y1hHNGdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjWEc0Z0lIUnZjRG9nTFRFd2NIZzdYRnh1ZlZ4Y2JqcHliMjkwVzJScGNqMXNkSEpkSUM1bGVHTmhiR2xrY21GM0lDNWpiMnh2Y2kxd2FXTnJaWEl0ZEhKcFlXNW5iR1VnZTF4Y2JpQWdiR1ZtZERvZ01USndlRHRjWEc1OVhGeHVPbkp2YjNSYlpHbHlQWEowYkYwZ0xtVjRZMkZzYVdSeVlYY2dMbU52Ykc5eUxYQnBZMnRsY2kxMGNtbGhibWRzWlNCN1hGeHVJQ0J5YVdkb2REb2dNVEp3ZUR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xtTnZiRzl5TFhCcFkydGxjaTEwY21saGJtZHNaUzF6YUdGa2IzY2dlMXhjYmlBZ1ltOXlaR1Z5TFdOdmJHOXlPaUIwY21GdWMzQmhjbVZ1ZENCMGNtRnVjM0JoY21WdWRDQnlaMkpoS0RBc0lEQXNJREFzSURBdU1TazdYRnh1SUNCMGIzQTZJQzB4TVhCNE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVZMjlzYjNJdGNHbGphMlZ5TFdOdmJuUmxiblFnZTF4Y2JpQWdjR0ZrWkdsdVp6b2dNQzQxY21WdE8xeGNiaUFnWkdsemNHeGhlVG9nWjNKcFpEdGNYRzRnSUdkeWFXUXRkR1Z0Y0d4aGRHVXRZMjlzZFcxdWN6b2djbVZ3WldGMEtEVXNJR0YxZEc4cE8xeGNiaUFnWjNKcFpDMW5ZWEE2SURBdU5YSmxiVHRjWEc0Z0lHSnZjbVJsY2kxeVlXUnBkWE02SURSd2VEdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbU52Ykc5eUxYQnBZMnRsY2kxamIyNTBaVzUwT21adlkzVnpJSHRjWEc0Z0lHOTFkR3hwYm1VNklHNXZibVU3WEZ4dUlDQmliM2d0YzJoaFpHOTNPaUF3SURBZ01DQXljSGdnZG1GeUtDMHRabTlqZFhNdGFHbG5hR3hwWjJoMExXTnZiRzl5S1R0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xtTnZiRzl5TFhCcFkydGxjaTFqYjI1MFpXNTBJQzVqYjJ4dmNpMXBibkIxZEMxamIyNTBZV2x1WlhJZ2UxeGNiaUFnWjNKcFpDMWpiMngxYlc0NklERXZjM0JoYmlBMU8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVZMjlzYjNJdGNHbGphMlZ5TFhOM1lYUmphQ0I3WEZ4dUlDQndiM05wZEdsdmJqb2djbVZzWVhScGRtVTdYRnh1SUNCb1pXbG5hSFE2SURFdU9EYzFjbVZ0TzF4Y2JpQWdkMmxrZEdnNklERXVPRGMxY21WdE8xeGNiaUFnWTNWeWMyOXlPaUJ3YjJsdWRHVnlPMXhjYmlBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTkhCNE8xeGNiaUFnYldGeVoybHVPaUF3TzF4Y2JpQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y1hHNGdJR0p2Y21SbGNqb2dNWEI0SUhOdmJHbGtJQ05rWkdRN1hGeHVJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUJqZFhKeVpXNTBRMjlzYjNJZ0lXbHRjRzl5ZEdGdWREdGNYRzRnSUdacGJIUmxjam9nZG1GeUtDMHRkR2hsYldVdFptbHNkR1Z5S1R0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xtTnZiRzl5TFhCcFkydGxjaTF6ZDJGMFkyZzZabTlqZFhNZ2UxeGNiaUFnTHlvZ1ZFOUVUem9nYjI1c2VTQnphRzkzSUhSb1pTQmliM0prWlhJZ2QyaGxiaUIwYUdVZ1kyOXNiM0lnYVhNZ2RHOXZJR3hwWjJoMElIUnZJSE5sWlNCaGN5QmhJSE5vWVdSdmR5QXFMMXhjYmlBZ1ltOTRMWE5vWVdSdmR6b2dNQ0F3SURSd2VDQXhjSGdnWTNWeWNtVnVkRU52Ykc5eU8xeGNiaUFnWW05eVpHVnlMV052Ykc5eU9pQjJZWElvTFMxelpXeGxZM1F0YUdsbmFHeHBaMmgwTFdOdmJHOXlLVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG1OdmJHOXlMWEJwWTJ0bGNpMTBjbUZ1YzNCaGNtVnVkQ0I3WEZ4dUlDQmliM0prWlhJdGNtRmthWFZ6T2lBMGNIZzdYRnh1SUNCaWIzZ3RjMmhoWkc5M09pQnlaMkpoS0RBc0lEQXNJREFzSURBdU1Ta2dNQ0F3SURBZ01YQjRJR2x1YzJWME8xeGNiaUFnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4Y2JpQWdkRzl3T2lBd08xeGNiaUFnY21sbmFIUTZJREE3WEZ4dUlDQmliM1IwYjIwNklEQTdYRnh1SUNCc1pXWjBPaUF3TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVkyOXNiM0l0Y0dsamEyVnlMWFJ5WVc1emNHRnlaVzUwTEZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVqYjJ4dmNpMXdhV05yWlhJdGJHRmlaV3d0YzNkaGRHTm9JSHRjWEc0Z0lHSmhZMnRuY205MWJtUTZJSFZ5YkNoY0lpQXJJRjlmWDBOVFUxOU1UMEZFUlZKZlZWSk1YMUpGVUV4QlEwVk5SVTVVWHpCZlgxOGdLeUJjSWlrZ2JHVm1kQ0JqWlc1MFpYSTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVqYjJ4dmNpMXdhV05yWlhJdGFHRnphQ0I3WEZ4dUlDQmlZV05yWjNKdmRXNWtPaUIyWVhJb0xTMXBibkIxZEMxaWIzSmtaWEl0WTI5c2IzSXBPMXhjYmlBZ2FHVnBaMmgwT2lBeExqZzNOWEpsYlR0Y1hHNGdJSGRwWkhSb09pQXhMamczTlhKbGJUdGNYRzRnSUdOdmJHOXlPaUIyWVhJb0xTMXBibkIxZEMxc1lXSmxiQzFqYjJ4dmNpazdYRnh1SUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzRnSUdwMWMzUnBabmt0WTI5dWRHVnVkRG9nWTJWdWRHVnlPMXhjYmlBZ2NHOXphWFJwYjI0NklISmxiR0YwYVhabE8xeGNibjFjWEc0NmNtOXZkRnRrYVhJOWJIUnlYU0F1WlhoallXeHBaSEpoZHlBdVkyOXNiM0l0Y0dsamEyVnlMV2hoYzJnZ2UxeGNiaUFnWW05eVpHVnlMWEpoWkdsMWN6b2dOSEI0SURBZ01DQTBjSGc3WEZ4dWZWeGNianB5YjI5MFcyUnBjajF5ZEd4ZElDNWxlR05oYkdsa2NtRjNJQzVqYjJ4dmNpMXdhV05yWlhJdGFHRnphQ0I3WEZ4dUlDQmliM0prWlhJdGNtRmthWFZ6T2lBd0lEUndlQ0EwY0hnZ01EdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbU52Ykc5eUxXbHVjSFYwTFdOdmJuUmhhVzVsY2pwbWIyTjFjeTEzYVhSb2FXNGdMbU52Ykc5eUxYQnBZMnRsY2kxb1lYTm9JSHRjWEc0Z0lHSnZlQzF6YUdGa2IzYzZJREFnTUNBd0lESndlQ0IyWVhJb0xTMW1iMk4xY3kxb2FXZG9iR2xuYUhRdFkyOXNiM0lwTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVkyOXNiM0l0YVc1d2RYUXRZMjl1ZEdGcGJtVnlPbVp2WTNWekxYZHBkR2hwYmlBdVkyOXNiM0l0Y0dsamEyVnlMV2hoYzJnNk9tSmxabTl5WlN4Y1hHNHVaWGhqWVd4cFpISmhkeUF1WTI5c2IzSXRhVzV3ZFhRdFkyOXVkR0ZwYm1WeU9tWnZZM1Z6TFhkcGRHaHBiaUF1WTI5c2IzSXRjR2xqYTJWeUxXaGhjMmc2T21GbWRHVnlJSHRjWEc0Z0lHTnZiblJsYm5RNklGeGNYQ0pjWEZ3aU8xeGNiaUFnZDJsa2RHZzZJREZ3ZUR0Y1hHNGdJR2hsYVdkb2REb2dNVEF3SlR0Y1hHNGdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjWEc0Z0lIUnZjRG9nTUR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xtTnZiRzl5TFdsdWNIVjBMV052Ym5SaGFXNWxjanBtYjJOMWN5MTNhWFJvYVc0Z0xtTnZiRzl5TFhCcFkydGxjaTFvWVhOb09qcGlaV1p2Y21VZ2UxeGNiaUFnWW1GamEyZHliM1Z1WkRvZ2RtRnlLQzB0YVc1d2RYUXRZbTl5WkdWeUxXTnZiRzl5S1R0Y1hHNTlYRnh1T25KdmIzUmJaR2x5UFd4MGNsMGdMbVY0WTJGc2FXUnlZWGNnTG1OdmJHOXlMV2x1Y0hWMExXTnZiblJoYVc1bGNqcG1iMk4xY3kxM2FYUm9hVzRnTG1OdmJHOXlMWEJwWTJ0bGNpMW9ZWE5vT2pwaVpXWnZjbVVnZTF4Y2JpQWdjbWxuYUhRNklDMHhjSGc3WEZ4dWZWeGNianB5YjI5MFcyUnBjajF5ZEd4ZElDNWxlR05oYkdsa2NtRjNJQzVqYjJ4dmNpMXBibkIxZEMxamIyNTBZV2x1WlhJNlptOWpkWE10ZDJsMGFHbHVJQzVqYjJ4dmNpMXdhV05yWlhJdGFHRnphRG82WW1WbWIzSmxJSHRjWEc0Z0lHeGxablE2SUMweGNIZzdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVqYjJ4dmNpMXBibkIxZEMxamIyNTBZV2x1WlhJNlptOWpkWE10ZDJsMGFHbHVJQzVqYjJ4dmNpMXdhV05yWlhJdGFHRnphRG82WVdaMFpYSWdlMXhjYmlBZ1ltRmphMmR5YjNWdVpEb2dkbUZ5S0MwdGFXNXdkWFF0WW1jdFkyOXNiM0lwTzF4Y2JuMWNYRzQ2Y205dmRGdGthWEk5YkhSeVhTQXVaWGhqWVd4cFpISmhkeUF1WTI5c2IzSXRhVzV3ZFhRdFkyOXVkR0ZwYm1WeU9tWnZZM1Z6TFhkcGRHaHBiaUF1WTI5c2IzSXRjR2xqYTJWeUxXaGhjMmc2T21GbWRHVnlJSHRjWEc0Z0lISnBaMmgwT2lBdE1uQjRPMXhjYm4xY1hHNDZjbTl2ZEZ0a2FYSTljblJzWFNBdVpYaGpZV3hwWkhKaGR5QXVZMjlzYjNJdGFXNXdkWFF0WTI5dWRHRnBibVZ5T21adlkzVnpMWGRwZEdocGJpQXVZMjlzYjNJdGNHbGphMlZ5TFdoaGMyZzZPbUZtZEdWeUlIdGNYRzRnSUd4bFpuUTZJQzB5Y0hnN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNWpiMnh2Y2kxcGJuQjFkQzFqYjI1MFlXbHVaWElnZTF4Y2JpQWdaR2x6Y0d4aGVUb2dabXhsZUR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xtTnZiRzl5TFhCcFkydGxjaTFwYm5CMWRDQjdYRnh1SUNCM2FXUjBhRG9nTVRGamFEdGNYRzRnSUM4cUlHeGxibWQwYUNCdlppQmdkSEpoYm5Od1lYSmxiblJnSUNvdlhGeHVJQ0J0WVhKbmFXNDZJREE3WEZ4dUlDQm1iMjUwTFhOcGVtVTZJREZ5WlcwN1hGeHVJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXBibkIxZEMxaVp5MWpiMnh2Y2lrN1hGeHVJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGRHVjRkQzF3Y21sdFlYSjVMV052Ykc5eUtUdGNYRzRnSUdKdmNtUmxjam9nTUR0Y1hHNGdJRzkxZEd4cGJtVTZJRzV2Ym1VN1hGeHVJQ0JvWldsbmFIUTZJREV1TnpWbGJUdGNYRzRnSUdKdmVDMXphR0ZrYjNjNklIWmhjaWd0TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2lrZ01DQXdJREFnTVhCNElHbHVjMlYwTzF4Y2JpQWdabXh2WVhRNklHeGxablE3WEZ4dUlDQndZV1JrYVc1bk9pQXhjSGc3WEZ4dUlDQndZV1JrYVc1bkxXbHViR2x1WlMxemRHRnlkRG9nTUM0MVpXMDdYRnh1SUNBdGQyVmlhMmwwTFdGd2NHVmhjbUZ1WTJVNklHNXZibVU3WEZ4dUlDQWdJQ0FnSUNBZ0lHRndjR1ZoY21GdVkyVTZJRzV2Ym1VN1hGeHVmVnhjYmpweWIyOTBXMlJwY2oxc2RISmRJQzVsZUdOaGJHbGtjbUYzSUM1amIyeHZjaTF3YVdOclpYSXRhVzV3ZFhRZ2UxeGNiaUFnWW05eVpHVnlMWEpoWkdsMWN6b2dNQ0EwY0hnZ05IQjRJREE3WEZ4dWZWeGNianB5YjI5MFcyUnBjajF5ZEd4ZElDNWxlR05oYkdsa2NtRjNJQzVqYjJ4dmNpMXdhV05yWlhJdGFXNXdkWFFnZTF4Y2JpQWdZbTl5WkdWeUxYSmhaR2wxY3pvZ05IQjRJREFnTUNBMGNIZzdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVqYjJ4dmNpMXdhV05yWlhJdGJHRmlaV3d0YzNkaGRHTm9JSHRjWEc0Z0lHaGxhV2RvZERvZ01TNDROelZ5WlcwN1hGeHVJQ0IzYVdSMGFEb2dNUzQ0TnpWeVpXMDdYRnh1SUNCdFlYSm5hVzR0YVc1c2FXNWxMV1Z1WkRvZ01DNHlOWEpsYlR0Y1hHNGdJR0p2Y21SbGNqb2dNWEI0SUhOdmJHbGtJQ05rWldVeVpUWTdYRnh1SUNCd2IzTnBkR2x2YmpvZ2NtVnNZWFJwZG1VN1hGeHVJQ0J2ZG1WeVpteHZkem9nYUdsa1pHVnVPMXhjYmlBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RISmhibk53WVhKbGJuUWdJV2x0Y0c5eWRHRnVkRHRjWEc0Z0lHWnBiSFJsY2pvZ2RtRnlLQzB0ZEdobGJXVXRabWxzZEdWeUtUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbU52Ykc5eUxYQnBZMnRsY2kxc1lXSmxiQzF6ZDJGMFkyZzZZV1owWlhJZ2UxeGNiaUFnWTI5dWRHVnVkRG9nWEZ4Y0lseGNYQ0k3WEZ4dUlDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRnh1SUNCMGIzQTZJREE3WEZ4dUlDQnNaV1owT2lBd08xeGNiaUFnZDJsa2RHZzZJREV3TUNVN1hGeHVJQ0JvWldsbmFIUTZJREV3TUNVN1hGeHVJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzF6ZDJGMFkyZ3RZMjlzYjNJcE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVZMjlzYjNJdGNHbGphMlZ5TFd0bGVXSnBibVJwYm1jZ2UxeGNiaUFnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4Y2JpQWdZbTkwZEc5dE9pQXljSGc3WEZ4dUlDQm1iMjUwTFhOcGVtVTZJREF1TjJWdE8xeGNibjFjWEc0NmNtOXZkRnRrYVhJOWJIUnlYU0F1WlhoallXeHBaSEpoZHlBdVkyOXNiM0l0Y0dsamEyVnlMV3RsZVdKcGJtUnBibWNnZTF4Y2JpQWdjbWxuYUhRNklESndlRHRjWEc1OVhGeHVPbkp2YjNSYlpHbHlQWEowYkYwZ0xtVjRZMkZzYVdSeVlYY2dMbU52Ykc5eUxYQnBZMnRsY2kxclpYbGlhVzVrYVc1bklIdGNYRzRnSUd4bFpuUTZJREp3ZUR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjdExXMXZZbWxzWlM1bGVHTmhiR2xrY21GM0lDNWpiMnh2Y2kxd2FXTnJaWEl0YTJWNVltbHVaR2x1WnlCN1hGeHVJQ0JrYVhOd2JHRjVPaUJ1YjI1bE8xeGNibjFjWEc1Y1hHNHVaWGhqWVd4cFpISmhkeUF1WTI5c2IzSXRjR2xqYTJWeUxYUjVjR1V0WTJGdWRtRnpRbUZqYTJkeWIzVnVaQ0F1WTI5c2IzSXRjR2xqYTJWeUxXdGxlV0pwYm1ScGJtY2dlMXhjYmlBZ1kyOXNiM0k2SUNOaFlXRTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVqYjJ4dmNpMXdhV05yWlhJdGRIbHdaUzFsYkdWdFpXNTBRbUZqYTJkeWIzVnVaQ0F1WTI5c2IzSXRjR2xqYTJWeUxXdGxlV0pwYm1ScGJtY2dlMXhjYmlBZ1kyOXNiM0k2SUNObVptWm1abVk3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1amIyeHZjaTF3YVdOclpYSXRjM2RoZEdOb1cyRnlhV0V0YkdGaVpXdzlkSEpoYm5Od1lYSmxiblJkSUM1amIyeHZjaTF3YVdOclpYSXRhMlY1WW1sdVpHbHVaeUI3WEZ4dUlDQmpiMnh2Y2pvZ0kyRmhZVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG1OdmJHOXlMWEJwWTJ0bGNpMTBlWEJsTFdWc1pXMWxiblJUZEhKdmEyVWdMbU52Ykc5eUxYQnBZMnRsY2kxclpYbGlhVzVrYVc1bklIdGNYRzRnSUdOdmJHOXlPaUFqWkRSa05HUTBPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeTUwYUdWdFpTMHRaR0Z5YXlBdVkyOXNiM0l0Y0dsamEyVnlMWFI1Y0dVdFpXeGxiV1Z1ZEVKaFkydG5jbTkxYm1RZ0xtTnZiRzl5TFhCcFkydGxjaTFyWlhsaWFXNWthVzVuSUh0Y1hHNGdJR052Ykc5eU9pQWpNREF3TURBd08xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5NTBhR1Z0WlMwdFpHRnlheUF1WTI5c2IzSXRjR2xqYTJWeUxYTjNZWFJqYUZ0aGNtbGhMV3hoWW1Wc1BYUnlZVzV6Y0dGeVpXNTBYU0F1WTI5c2IzSXRjR2xqYTJWeUxXdGxlV0pwYm1ScGJtY2dlMXhjYmlBZ1kyOXNiM0k2SUNNd01EQXdNREE3WEZ4dWZWd2lMQ0JjSWx3aUxIdGNJblpsY25OcGIyNWNJam96TEZ3aWMyOTFjbU5sYzF3aU9sdGNJbmRsWW5CaFkyczZMeTh1THk0dUx5NHVMMk56Y3k5MllYSnBZV0pzWlhNdWJXOWtkV3hsTG5OamMzTmNJaXhjSW5kbFluQmhZMnM2THk4dUx5NHVMeTR1TDJOdmJYQnZibVZ1ZEhNdlEyOXNiM0pRYVdOclpYSXVjMk56YzF3aUxGd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwyOXdaVzR0WTI5c2IzSXZiM0JsYmkxamIyeHZjaTV6WTNOelhDSmRMRndpYm1GdFpYTmNJanBiWFN4Y0ltMWhjSEJwYm1kelhDSTZYQ0pCUVZWQk8wVkJRMFVzTWtOQlFVRTdRVU5VUmpzN1FVRkRSVHRGUVVORkxHbERRVUZCTzBWQlEwRXNlVU5CUVVFN1JVRkRRU3g1UTBGQlFUdEZRVU5CTEd0Q1FVRkJPMFZCUTBFc2EwSkJRVUU3UVVGRlNqdEJRVUZKTzBWQlEwVXNXVUZCUVR0QlFVVk9PMEZCUTBrN1JVRkRSU3hoUVVGQk8wRkJRMDQ3UVVGSFJUdEZRVU5GTEdGQlFVRTdSVUZEUVN3clFrRkJRVHRGUVVOQkxHMUNRVUZCTzBGQlJFbzdRVUZKUlR0RlFVTkZMRkZCUVVFN1JVRkRRU3hUUVVGQk8wVkJRMEVzYlVKQlFVRTdSVUZEUVN4M1FrRkJRVHRGUVVOQkxESkVRVUZCTzBWQlEwRXNhMEpCUVVFN1JVRkRRU3hWUVVGQk8wRkJSa283UVVGSlNUdEZRVU5GTEZWQlFVRTdRVUZHVGp0QlFVdEpPMFZCUTBVc1YwRkJRVHRCUVVoT08wRkJUMFU3UlVGRFJTeDNSRUZCUVR0RlFVTkJMRlZCUVVFN1FVRk1TanRCUVZGRk8wVkJRMFVzWlVGQlFUdEZRVU5CTEdGQlFVRTdSVUZEUVN4elEwRkJRVHRGUVVOQkxHZENRVUZCTzBWQlEwRXNhMEpCUVVFN1FVRk9TanRCUVZGSk8wVkJRMFVzWVVGQlFUdEZRVU5CTEd0RVFVRkJPMEZCVGs0N1FVRlZSVHRGUVVORkxIRkNRVUZCTzBGQlVrbzdRVUZYUlR0RlFVTkZMR3RDUVVGQk8wVkJRMEVzWjBKQlFVRTdSVUZEUVN4bFFVRkJPMFZCUTBFc1pVRkJRVHRGUVVOQkxHdENRVUZCTzBWQlEwRXNVMEZCUVR0RlFVTkJMSE5DUVVGQk8wVkJRMEVzYzBKQlFVRTdSVUZEUVN4NVEwRkJRVHRGUVVOQkxESkNRVUZCTzBGQlZFbzdRVUZYU1R0RlFVTkZMRGhGUVVGQk8wVkJRMEVzYjBOQlFVRTdSVUZEUVN3eVEwRkJRVHRCUVZST08wRkJZVVU3UlVGRFJTeHJRa0ZCUVR0RlFVTkJMRGhEUVVGQk8wVkJRMEVzYTBKQlFVRTdSVUZEUVN4TlFVRkJPMFZCUTBFc1VVRkJRVHRGUVVOQkxGTkJRVUU3UlVGRFFTeFBRVUZCTzBGQldFbzdRVUZqUlRzN1JVRkZSU3dyUkVGQlFUdEJRVnBLTzBGQlowSkZPMFZCUTBVc2NVTkJRVUU3UlVGRFFTeG5Ra0ZCUVR0RlFVTkJMR1ZCUVVFN1JVRlZRU3dyUWtGQlFUdEZRVU5CTEdGQlFVRTdSVUZEUVN4dFFrRkJRVHRGUVVOQkxIVkNRVUZCTzBWQlEwRXNhMEpCUVVFN1FVRjJRa283UVVGWFNUdEZRVU5GTERCQ1FVRkJPMEZCVkU0N1FVRlpTVHRGUVVORkxEQkNRVUZCTzBGQlZrNDdRVUZ2UWtVN1JVRkRSU3hyUkVGQlFUdEJRV3hDU2p0QlFYRkNSVHM3UlVGRlJTeFhRVUZCTzBWQlEwRXNWVUZCUVR0RlFVTkJMRmxCUVVFN1JVRkRRU3hyUWtGQlFUdEZRVU5CTEUxQlFVRTdRVUZ1UWtvN1FVRnpRa1U3UlVGRFJTeHhRMEZCUVR0QlFYQkNTanRCUVhOQ1NUdEZRVU5GTEZkQlFVRTdRVUZ3UWs0N1FVRjFRa2s3UlVGRFJTeFZRVUZCTzBGQmNrSk9PMEZCZVVKRk8wVkJRMFVzYVVOQlFVRTdRVUYyUWtvN1FVRjVRa2s3UlVGRFJTeFhRVUZCTzBGQmRrSk9PMEZCTUVKSk8wVkJRMFVzVlVGQlFUdEJRWGhDVGp0QlFUUkNSVHRGUVVORkxHRkJRVUU3UVVFeFFrbzdRVUUyUWtVN1JVRkRSU3hYUVVGQk8wVkJRV0VzTkVKQlFVRTdSVUZEWWl4VFFVRkJPMFZCUTBFc1pVRkJRVHRGUVVOQkxIVkRRVUZCTzBWQlEwRXNaME5CUVVFN1JVRkRRU3hUUVVGQk8wVkJRMEVzWVVGQlFUdEZRVU5CTEdOQlFVRTdSVUZEUVN4eFJFRkJRVHRGUVZWQkxGZEJRVUU3UlVGRFFTeFpRVUZCTzBWQlEwRXNNa0pCUVVFN1JVRkRRU3gzUWtGQlFUdFZRVUZCTEdkQ1FVRkJPMEZCYmtOS08wRkJkMEpKTzBWQlEwVXNNRUpCUVVFN1FVRjBRazQ3UVVGNVFrazdSVUZEUlN3d1FrRkJRVHRCUVhaQ1RqdEJRV2REUlR0RlFVTkZMR2RDUVVGQk8wVkJRMEVzWlVGQlFUdEZRVU5CTERCQ1FVRkJPMFZCUTBFc2VVSkJRVUU3UlVGRFFTeHJRa0ZCUVR0RlFVTkJMR2RDUVVGQk8wVkJRMEVzZDBOQlFVRTdSVUZEUVN3eVFrRkJRVHRCUVRsQ1NqdEJRV2REU1R0RlFVTkZMRmRCUVVFN1JVRkRRU3hyUWtGQlFUdEZRVU5CTEUxQlFVRTdSVUZEUVN4UFFVRkJPMFZCUTBFc1YwRkJRVHRGUVVOQkxGbEJRVUU3UlVGRFFTd3JRa0ZCUVR0QlFUbENUanRCUVd0RFJUdEZRVU5GTEd0Q1FVRkJPMFZCUTBFc1YwRkJRVHRGUVVOQkxHZENRVUZCTzBGQmFFTktPMEZCYTBOSk8wVkJRMFVzVlVGQlFUdEJRV2hEVGp0QlFXMURTVHRGUVVORkxGTkJRVUU3UVVGcVEwNDdRVVJ5VEZjN1JVTXdUa3dzWVVGQlFUdEJRV3hEVGpzN1FVRnpRMFU3UlVGRFJTeFhRVUZCTzBGQmJrTktPMEZCYzBORk8wVkJRMFVzWTBNelRtVTdRVVIxVEc1Q08wRkJkVU5GTzBWQlEwVXNWMEZCUVR0QlFYSkRTanRCUVhkRFJUdEZRVU5GTEdOQlFVRTdRVUYwUTBvN1FVRXdRMGs3UlVGRFJTeGpRM1pQWVR0QlJDdE1ia0k3UVVFd1EwazdSVUZEUlN4alF6RlBZVHRCUkd0TmJrSmNJaXhjSW5OdmRYSmpaWE5EYjI1MFpXNTBYQ0k2VzF3aVFHbHRjRzl5ZENCY1hGd2liM0JsYmkxamIyeHZjaTl2Y0dWdUxXTnZiRzl5TG5OamMzTmNYRndpTzF4Y2JseGNia0J0YVhocGJpQnBjMDF2WW1sc1pTZ3BJSHRjWEc0Z0lFQmhkQzF5YjI5MElDNWxlR05oYkdsa2NtRjNMUzF0YjJKcGJHVWpleVo5SUh0Y1hHNGdJQ0FnUUdOdmJuUmxiblE3WEZ4dUlDQjlYRnh1ZlZ4Y2JseGNiaVIwYUdWdFpTMW1hV3gwWlhJNklGeGNYQ0pwYm5abGNuUW9PVE1sS1NCb2RXVXRjbTkwWVhSbEtERTRNR1JsWnlsY1hGd2lPMXhjYmx4Y2JqcGxlSEJ2Y25RZ2UxeGNiaUFnZEdobGJXVkdhV3gwWlhJNklIVnVjWFZ2ZEdVb0pIUm9aVzFsTFdacGJIUmxjaWs3WEZ4dWZWeGNibHdpTEZ3aVFHbHRjRzl5ZENCY1hGd2lMaTR2WTNOekwzWmhjbWxoWW14bGN5NXRiMlIxYkdWY1hGd2lPMXhjYmx4Y2JpNWxlR05oYkdsa2NtRjNJSHRjWEc0Z0lDNWpiMnh2Y2kxd2FXTnJaWElnZTF4Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzF3YjNCMWNDMWlaeTFqYjJ4dmNpazdYRnh1SUNBZ0lHSnZjbVJsY2pvZ01DQnpiMnhwWkNCMGNtRnVjM0JoY21WdWRHbDZaU2drYjJNdGQyaHBkR1VzSURBdU56VXBPMXhjYmlBZ0lDQmliM2d0YzJoaFpHOTNPaUIwY21GdWMzQmhjbVZ1ZEdsNlpTZ2tiMk10WW14aFkyc3NJREF1TnpVcElEQWdNWEI0SURSd2VEdGNYRzRnSUNBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTkhCNE8xeGNiaUFnSUNCd2IzTnBkR2x2YmpvZ1lXSnpiMngxZEdVN1hGeHVYRnh1SUNBZ0lEcHliMjkwVzJScGNqMWNYRndpYkhSeVhGeGNJbDBnSmlCN1hGeHVJQ0FnSUNBZ2JHVm1kRG9nTFRVdU5YQjRPMXhjYmlBZ0lDQjlYRnh1WEZ4dUlDQWdJRHB5YjI5MFcyUnBjajFjWEZ3aWNuUnNYRnhjSWwwZ0ppQjdYRnh1SUNBZ0lDQWdjbWxuYUhRNklDMDFMalZ3ZUR0Y1hHNGdJQ0FnZlZ4Y2JpQWdmVnhjYmx4Y2JpQWdMbU52Ykc5eUxYQnBZMnRsY2kxamIyNTBjbTlzTFdOdmJuUmhhVzVsY2lCN1hGeHVJQ0FnSUdScGMzQnNZWGs2SUdkeWFXUTdYRnh1SUNBZ0lHZHlhV1F0ZEdWdGNHeGhkR1V0WTI5c2RXMXVjem9nWVhWMGJ5QXhabkk3WEZ4dUlDQWdJR0ZzYVdkdUxXbDBaVzF6T2lCalpXNTBaWEk3WEZ4dUlDQjlYRnh1WEZ4dUlDQXVZMjlzYjNJdGNHbGphMlZ5TFhSeWFXRnVaMnhsSUh0Y1hHNGdJQ0FnZDJsa2RHZzZJREE3WEZ4dUlDQWdJR2hsYVdkb2REb2dNRHRjWEc0Z0lDQWdZbTl5WkdWeUxYTjBlV3hsT2lCemIyeHBaRHRjWEc0Z0lDQWdZbTl5WkdWeUxYZHBaSFJvT2lBd0lEbHdlQ0F4TUhCNE8xeGNiaUFnSUNCaWIzSmtaWEl0WTI5c2IzSTZJSFJ5WVc1emNHRnlaVzUwSUhSeVlXNXpjR0Z5Wlc1MElIWmhjaWd0TFhCdmNIVndMV0puTFdOdmJHOXlLVHRjWEc0Z0lDQWdjRzl6YVhScGIyNDZJR0ZpYzI5c2RYUmxPMXhjYmlBZ0lDQjBiM0E2SUMweE1IQjRPMXhjYmx4Y2JpQWdJQ0E2Y205dmRGdGthWEk5WEZ4Y0lteDBjbHhjWENKZElDWWdlMXhjYmlBZ0lDQWdJR3hsWm5RNklERXljSGc3WEZ4dUlDQWdJSDFjWEc1Y1hHNGdJQ0FnT25KdmIzUmJaR2x5UFZ4Y1hDSnlkR3hjWEZ3aVhTQW1JSHRjWEc0Z0lDQWdJQ0J5YVdkb2REb2dNVEp3ZUR0Y1hHNGdJQ0FnZlZ4Y2JpQWdmVnhjYmx4Y2JpQWdMbU52Ykc5eUxYQnBZMnRsY2kxMGNtbGhibWRzWlMxemFHRmtiM2NnZTF4Y2JpQWdJQ0JpYjNKa1pYSXRZMjlzYjNJNklIUnlZVzV6Y0dGeVpXNTBJSFJ5WVc1emNHRnlaVzUwSUhSeVlXNXpjR0Z5Wlc1MGFYcGxLQ1J2WXkxaWJHRmpheXdnTUM0NUtUdGNYRzRnSUNBZ2RHOXdPaUF0TVRGd2VEdGNYRzRnSUgxY1hHNWNYRzRnSUM1amIyeHZjaTF3YVdOclpYSXRZMjl1ZEdWdWRDQjdYRnh1SUNBZ0lIQmhaR1JwYm1jNklEQXVOWEpsYlR0Y1hHNGdJQ0FnWkdsemNHeGhlVG9nWjNKcFpEdGNYRzRnSUNBZ1ozSnBaQzEwWlcxd2JHRjBaUzFqYjJ4MWJXNXpPaUJ5WlhCbFlYUW9OU3dnWVhWMGJ5azdYRnh1SUNBZ0lHZHlhV1F0WjJGd09pQXdMalZ5WlcwN1hGeHVJQ0FnSUdKdmNtUmxjaTF5WVdScGRYTTZJRFJ3ZUR0Y1hHNWNYRzRnSUNBZ0pqcG1iMk4xY3lCN1hGeHVJQ0FnSUNBZ2IzVjBiR2x1WlRvZ2JtOXVaVHRjWEc0Z0lDQWdJQ0JpYjNndGMyaGhaRzkzT2lBd0lEQWdNQ0F5Y0hnZ2RtRnlLQzB0Wm05amRYTXRhR2xuYUd4cFoyaDBMV052Ykc5eUtUdGNYRzRnSUNBZ2ZWeGNiaUFnZlZ4Y2JseGNiaUFnTG1OdmJHOXlMWEJwWTJ0bGNpMWpiMjUwWlc1MElDNWpiMnh2Y2kxcGJuQjFkQzFqYjI1MFlXbHVaWElnZTF4Y2JpQWdJQ0JuY21sa0xXTnZiSFZ0YmpvZ01TQXZJSE53WVc0Z05UdGNYRzRnSUgxY1hHNWNYRzRnSUM1amIyeHZjaTF3YVdOclpYSXRjM2RoZEdOb0lIdGNYRzRnSUNBZ2NHOXphWFJwYjI0NklISmxiR0YwYVhabE8xeGNiaUFnSUNCb1pXbG5hSFE2SURFdU9EYzFjbVZ0TzF4Y2JpQWdJQ0IzYVdSMGFEb2dNUzQ0TnpWeVpXMDdYRnh1SUNBZ0lHTjFjbk52Y2pvZ2NHOXBiblJsY2p0Y1hHNGdJQ0FnWW05eVpHVnlMWEpoWkdsMWN6b2dOSEI0TzF4Y2JpQWdJQ0J0WVhKbmFXNDZJREE3WEZ4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hGeHVJQ0FnSUdKdmNtUmxjam9nTVhCNElITnZiR2xrSUNOa1pHUTdYRnh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklHTjFjbkpsYm5SRGIyeHZjaUFoYVcxd2IzSjBZVzUwTzF4Y2JpQWdJQ0JtYVd4MFpYSTZJSFpoY2lndExYUm9aVzFsTFdacGJIUmxjaWs3WEZ4dVhGeHVJQ0FnSUNZNlptOWpkWE1nZTF4Y2JpQWdJQ0FnSUM4cUlGUlBSRTg2SUc5dWJIa2djMmh2ZHlCMGFHVWdZbTl5WkdWeUlIZG9aVzRnZEdobElHTnZiRzl5SUdseklIUnZieUJzYVdkb2RDQjBieUJ6WldVZ1lYTWdZU0J6YUdGa2IzY2dLaTljWEc0Z0lDQWdJQ0JpYjNndGMyaGhaRzkzT2lBd0lEQWdOSEI0SURGd2VDQmpkWEp5Wlc1MFEyOXNiM0k3WEZ4dUlDQWdJQ0FnWW05eVpHVnlMV052Ykc5eU9pQjJZWElvTFMxelpXeGxZM1F0YUdsbmFHeHBaMmgwTFdOdmJHOXlLVHRjWEc0Z0lDQWdmVnhjYmlBZ2ZWeGNibHhjYmlBZ0xtTnZiRzl5TFhCcFkydGxjaTEwY21GdWMzQmhjbVZ1ZENCN1hGeHVJQ0FnSUdKdmNtUmxjaTF5WVdScGRYTTZJRFJ3ZUR0Y1hHNGdJQ0FnWW05NExYTm9ZV1J2ZHpvZ2RISmhibk53WVhKbGJuUnBlbVVvSkc5akxXSnNZV05yTENBd0xqa3BJREFnTUNBd0lERndlQ0JwYm5ObGREdGNYRzRnSUNBZ2NHOXphWFJwYjI0NklHRmljMjlzZFhSbE8xeGNiaUFnSUNCMGIzQTZJREE3WEZ4dUlDQWdJSEpwWjJoME9pQXdPMXhjYmlBZ0lDQmliM1IwYjIwNklEQTdYRnh1SUNBZ0lHeGxablE2SURBN1hGeHVJQ0I5WEZ4dVhGeHVJQ0F1WTI5c2IzSXRjR2xqYTJWeUxYUnlZVzV6Y0dGeVpXNTBMRnhjYmlBZ0xtTnZiRzl5TFhCcFkydGxjaTFzWVdKbGJDMXpkMkYwWTJnZ2UxeGNiaUFnSUNCaVlXTnJaM0p2ZFc1a09pQjFjbXdvWEZ4Y0ltUmhkR0U2YVcxaFoyVXZjRzVuTzJKaGMyVTJOQ3hwVmtKUFVuY3dTMGRuYjBGQlFVRk9VMVZvUlZWblFVRkJRa0ZCUVVGQlVVTkJXVUZCUVVGbU9DODVhRUZCUVVGTlZXeEZVVlpSTkZReVRtdFpSMEZSV1dOQlVETjFRMVJhYUhjeFowZEhXV2hCUjBKYVNVRXZibGxFUTJkQ1JFRnRPVUpIUkZkQlFVcDVVa05uVEdGQ1EwRkJaMWgzYVhoNlFWTXdjR2RCUVVGQlFrcFNWVFZGY210S1oyZG5QVDFjWEZ3aUtWeGNiaUFnSUNBZ0lHeGxablFnWTJWdWRHVnlPMXhjYmlBZ2ZWeGNibHhjYmlBZ0xtTnZiRzl5TFhCcFkydGxjaTFvWVhOb0lIdGNYRzRnSUNBZ1ltRmphMmR5YjNWdVpEb2dkbUZ5S0MwdGFXNXdkWFF0WW05eVpHVnlMV052Ykc5eUtUdGNYRzRnSUNBZ2FHVnBaMmgwT2lBeExqZzNOWEpsYlR0Y1hHNGdJQ0FnZDJsa2RHZzZJREV1T0RjMWNtVnRPMXhjYmx4Y2JpQWdJQ0E2Y205dmRGdGthWEk5WEZ4Y0lteDBjbHhjWENKZElDWWdlMXhjYmlBZ0lDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEUndlQ0F3SURBZ05IQjRPMXhjYmlBZ0lDQjlYRnh1WEZ4dUlDQWdJRHB5YjI5MFcyUnBjajFjWEZ3aWNuUnNYRnhjSWwwZ0ppQjdYRnh1SUNBZ0lDQWdZbTl5WkdWeUxYSmhaR2wxY3pvZ01DQTBjSGdnTkhCNElEQTdYRnh1SUNBZ0lIMWNYRzVjWEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdsdWNIVjBMV3hoWW1Wc0xXTnZiRzl5S1R0Y1hHNGdJQ0FnWkdsemNHeGhlVG9nWm14bGVEdGNYRzRnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzRnSUNBZ2FuVnpkR2xtZVMxamIyNTBaVzUwT2lCalpXNTBaWEk3WEZ4dUlDQWdJSEJ2YzJsMGFXOXVPaUJ5Wld4aGRHbDJaVHRjWEc0Z0lIMWNYRzVjWEc0Z0lDNWpiMnh2Y2kxcGJuQjFkQzFqYjI1MFlXbHVaWEk2Wm05amRYTXRkMmwwYUdsdUlDNWpiMnh2Y2kxd2FXTnJaWEl0YUdGemFDQjdYRnh1SUNBZ0lHSnZlQzF6YUdGa2IzYzZJREFnTUNBd0lESndlQ0IyWVhJb0xTMW1iMk4xY3kxb2FXZG9iR2xuYUhRdFkyOXNiM0lwTzF4Y2JpQWdmVnhjYmx4Y2JpQWdMbU52Ykc5eUxXbHVjSFYwTFdOdmJuUmhhVzVsY2pwbWIyTjFjeTEzYVhSb2FXNGdMbU52Ykc5eUxYQnBZMnRsY2kxb1lYTm9PanBpWldadmNtVXNYRnh1SUNBdVkyOXNiM0l0YVc1d2RYUXRZMjl1ZEdGcGJtVnlPbVp2WTNWekxYZHBkR2hwYmlBdVkyOXNiM0l0Y0dsamEyVnlMV2hoYzJnNk9tRm1kR1Z5SUh0Y1hHNGdJQ0FnWTI5dWRHVnVkRG9nWEZ4Y0lseGNYQ0k3WEZ4dUlDQWdJSGRwWkhSb09pQXhjSGc3WEZ4dUlDQWdJR2hsYVdkb2REb2dNVEF3SlR0Y1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4Y2JpQWdJQ0IwYjNBNklEQTdYRnh1SUNCOVhGeHVYRnh1SUNBdVkyOXNiM0l0YVc1d2RYUXRZMjl1ZEdGcGJtVnlPbVp2WTNWekxYZHBkR2hwYmlBdVkyOXNiM0l0Y0dsamEyVnlMV2hoYzJnNk9tSmxabTl5WlNCN1hGeHVJQ0FnSUdKaFkydG5jbTkxYm1RNklIWmhjaWd0TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2lrN1hGeHVYRnh1SUNBZ0lEcHliMjkwVzJScGNqMWNYRndpYkhSeVhGeGNJbDBnSmlCN1hGeHVJQ0FnSUNBZ2NtbG5hSFE2SUMweGNIZzdYRnh1SUNBZ0lIMWNYRzVjWEc0Z0lDQWdPbkp2YjNSYlpHbHlQVnhjWENKeWRHeGNYRndpWFNBbUlIdGNYRzRnSUNBZ0lDQnNaV1owT2lBdE1YQjRPMXhjYmlBZ0lDQjlYRnh1SUNCOVhGeHVYRnh1SUNBdVkyOXNiM0l0YVc1d2RYUXRZMjl1ZEdGcGJtVnlPbVp2WTNWekxYZHBkR2hwYmlBdVkyOXNiM0l0Y0dsamEyVnlMV2hoYzJnNk9tRm1kR1Z5SUh0Y1hHNGdJQ0FnWW1GamEyZHliM1Z1WkRvZ2RtRnlLQzB0YVc1d2RYUXRZbWN0WTI5c2IzSXBPMXhjYmx4Y2JpQWdJQ0E2Y205dmRGdGthWEk5WEZ4Y0lteDBjbHhjWENKZElDWWdlMXhjYmlBZ0lDQWdJSEpwWjJoME9pQXRNbkI0TzF4Y2JpQWdJQ0I5WEZ4dVhGeHVJQ0FnSURweWIyOTBXMlJwY2oxY1hGd2ljblJzWEZ4Y0lsMGdKaUI3WEZ4dUlDQWdJQ0FnYkdWbWREb2dMVEp3ZUR0Y1hHNGdJQ0FnZlZ4Y2JpQWdmVnhjYmx4Y2JpQWdMbU52Ykc5eUxXbHVjSFYwTFdOdmJuUmhhVzVsY2lCN1hGeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRnh1SUNCOVhGeHVYRnh1SUNBdVkyOXNiM0l0Y0dsamEyVnlMV2x1Y0hWMElIdGNYRzRnSUNBZ2QybGtkR2c2SURFeFkyZzdJQzhxSUd4bGJtZDBhQ0J2WmlCZ2RISmhibk53WVhKbGJuUmdJQ292WEZ4dUlDQWdJRzFoY21kcGJqb2dNRHRjWEc0Z0lDQWdabTl1ZEMxemFYcGxPaUF4Y21WdE8xeGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFwYm5CMWRDMWlaeTFqYjJ4dmNpazdYRnh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzEwWlhoMExYQnlhVzFoY25rdFkyOXNiM0lwTzF4Y2JpQWdJQ0JpYjNKa1pYSTZJREE3WEZ4dUlDQWdJRzkxZEd4cGJtVTZJRzV2Ym1VN1hGeHVJQ0FnSUdobGFXZG9kRG9nTVM0M05XVnRPMXhjYmlBZ0lDQmliM2d0YzJoaFpHOTNPaUIyWVhJb0xTMXBibkIxZEMxaWIzSmtaWEl0WTI5c2IzSXBJREFnTUNBd0lERndlQ0JwYm5ObGREdGNYRzVjWEc0Z0lDQWdPbkp2YjNSYlpHbHlQVnhjWENKc2RISmNYRndpWFNBbUlIdGNYRzRnSUNBZ0lDQmliM0prWlhJdGNtRmthWFZ6T2lBd0lEUndlQ0EwY0hnZ01EdGNYRzRnSUNBZ2ZWeGNibHhjYmlBZ0lDQTZjbTl2ZEZ0a2FYSTlYRnhjSW5KMGJGeGNYQ0pkSUNZZ2UxeGNiaUFnSUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SURSd2VDQXdJREFnTkhCNE8xeGNiaUFnSUNCOVhGeHVYRnh1SUNBZ0lHWnNiMkYwT2lCc1pXWjBPMXhjYmlBZ0lDQndZV1JrYVc1bk9pQXhjSGc3WEZ4dUlDQWdJSEJoWkdScGJtY3RhVzVzYVc1bExYTjBZWEowT2lBd0xqVmxiVHRjWEc0Z0lDQWdZWEJ3WldGeVlXNWpaVG9nYm05dVpUdGNYRzRnSUgxY1hHNWNYRzRnSUM1amIyeHZjaTF3YVdOclpYSXRiR0ZpWld3dGMzZGhkR05vSUh0Y1hHNGdJQ0FnYUdWcFoyaDBPaUF4TGpnM05YSmxiVHRjWEc0Z0lDQWdkMmxrZEdnNklERXVPRGMxY21WdE8xeGNiaUFnSUNCdFlYSm5hVzR0YVc1c2FXNWxMV1Z1WkRvZ01DNHlOWEpsYlR0Y1hHNGdJQ0FnWW05eVpHVnlPaUF4Y0hnZ2MyOXNhV1FnSkc5akxXZHlZWGt0TXp0Y1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4Y2JpQWdJQ0J2ZG1WeVpteHZkem9nYUdsa1pHVnVPMXhjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjBjbUZ1YzNCaGNtVnVkQ0FoYVcxd2IzSjBZVzUwTzF4Y2JpQWdJQ0JtYVd4MFpYSTZJSFpoY2lndExYUm9aVzFsTFdacGJIUmxjaWs3WEZ4dVhGeHVJQ0FnSUNZNllXWjBaWElnZTF4Y2JpQWdJQ0FnSUdOdmJuUmxiblE2SUZ4Y1hDSmNYRndpTzF4Y2JpQWdJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y1hHNGdJQ0FnSUNCMGIzQTZJREE3WEZ4dUlDQWdJQ0FnYkdWbWREb2dNRHRjWEc0Z0lDQWdJQ0IzYVdSMGFEb2dNVEF3SlR0Y1hHNGdJQ0FnSUNCb1pXbG5hSFE2SURFd01DVTdYRnh1SUNBZ0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRjM2RoZEdOb0xXTnZiRzl5S1R0Y1hHNGdJQ0FnZlZ4Y2JpQWdmVnhjYmx4Y2JpQWdMbU52Ykc5eUxYQnBZMnRsY2kxclpYbGlhVzVrYVc1bklIdGNYRzRnSUNBZ2NHOXphWFJwYjI0NklHRmljMjlzZFhSbE8xeGNiaUFnSUNCaWIzUjBiMjA2SURKd2VEdGNYRzRnSUNBZ1ptOXVkQzF6YVhwbE9pQXdMamRsYlR0Y1hHNWNYRzRnSUNBZ09uSnZiM1JiWkdseVBWeGNYQ0pzZEhKY1hGd2lYU0FtSUh0Y1hHNGdJQ0FnSUNCeWFXZG9kRG9nTW5CNE8xeGNiaUFnSUNCOVhGeHVYRnh1SUNBZ0lEcHliMjkwVzJScGNqMWNYRndpY25Sc1hGeGNJbDBnSmlCN1hGeHVJQ0FnSUNBZ2JHVm1kRG9nTW5CNE8xeGNiaUFnSUNCOVhGeHVYRnh1SUNBZ0lFQnBibU5zZFdSbElHbHpUVzlpYVd4bElIdGNYRzRnSUNBZ0lDQmthWE53YkdGNU9pQnViMjVsTzF4Y2JpQWdJQ0I5WEZ4dUlDQjlYRnh1WEZ4dUlDQXVZMjlzYjNJdGNHbGphMlZ5TFhSNWNHVXRZMkZ1ZG1GelFtRmphMmR5YjNWdVpDQXVZMjlzYjNJdGNHbGphMlZ5TFd0bGVXSnBibVJwYm1jZ2UxeGNiaUFnSUNCamIyeHZjam9nSTJGaFlUdGNYRzRnSUgxY1hHNWNYRzRnSUM1amIyeHZjaTF3YVdOclpYSXRkSGx3WlMxbGJHVnRaVzUwUW1GamEyZHliM1Z1WkNBdVkyOXNiM0l0Y0dsamEyVnlMV3RsZVdKcGJtUnBibWNnZTF4Y2JpQWdJQ0JqYjJ4dmNqb2dKRzlqTFhkb2FYUmxPMXhjYmlBZ2ZWeGNibHhjYmlBZ0xtTnZiRzl5TFhCcFkydGxjaTF6ZDJGMFkyaGJZWEpwWVMxc1lXSmxiRDFjWEZ3aWRISmhibk53WVhKbGJuUmNYRndpWFNBdVkyOXNiM0l0Y0dsamEyVnlMV3RsZVdKcGJtUnBibWNnZTF4Y2JpQWdJQ0JqYjJ4dmNqb2dJMkZoWVR0Y1hHNGdJSDFjWEc1Y1hHNGdJQzVqYjJ4dmNpMXdhV05yWlhJdGRIbHdaUzFsYkdWdFpXNTBVM1J5YjJ0bElDNWpiMnh2Y2kxd2FXTnJaWEl0YTJWNVltbHVaR2x1WnlCN1hGeHVJQ0FnSUdOdmJHOXlPaUFqWkRSa05HUTBPMXhjYmlBZ2ZWeGNibHhjYmlBZ0ppNTBhR1Z0WlMwdFpHRnlheUI3WEZ4dUlDQWdJQzVqYjJ4dmNpMXdhV05yWlhJdGRIbHdaUzFsYkdWdFpXNTBRbUZqYTJkeWIzVnVaQ0F1WTI5c2IzSXRjR2xqYTJWeUxXdGxlV0pwYm1ScGJtY2dlMXhjYmlBZ0lDQWdJR052Ykc5eU9pQWtiMk10WW14aFkyczdYRnh1SUNBZ0lIMWNYRzRnSUNBZ0xtTnZiRzl5TFhCcFkydGxjaTF6ZDJGMFkyaGJZWEpwWVMxc1lXSmxiRDFjWEZ3aWRISmhibk53WVhKbGJuUmNYRndpWFNBdVkyOXNiM0l0Y0dsamEyVnlMV3RsZVdKcGJtUnBibWNnZTF4Y2JpQWdJQ0FnSUdOdmJHOXlPaUFrYjJNdFlteGhZMnM3WEZ4dUlDQWdJSDFjWEc0Z0lIMWNYRzU5WEZ4dVhDSXNYQ0l2TDF4Y2JpOHZYRnh1THk4Z0lQQ2RsNVlnOEoyWG9pRHduWmVmSVBDZGw2SWc4SjJYcFZ4Y2JpOHZJQ0IySURFdU9TNHhYRnh1THk5Y1hHNHZMeUFnNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0JYRnh1WEZ4dVhGeHVMeThnSUVkbGJtVnlZV3hjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxYZG9hWFJsT2lBZ0lDQWdJQ0FnSUNObVptWm1abVk3WEZ4dUpHOWpMV0pzWVdOck9pQWdJQ0FnSUNBZ0lDTXdNREF3TURBN1hGeHVYRnh1WEZ4dUx5OGdJRWR5WVhsY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV2R5WVhrdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWmpobU9XWmhMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpaakZtTTJZMUxGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalpUbGxZMlZtTEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWkdWbE1tVTJMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpZMlZrTkdSaExGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBallXUmlOV0prTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqT0RZNFpUazJMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpORGsxTURVM0xGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak16UXpZVFF3TEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTWpFeU5USTVYRnh1S1R0Y1hHNWNYRzRrYjJNdFozSmhlUzB3T2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE1Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVEk2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMwek9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3RORG9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRVNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0TnpvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxUZzZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzA1T2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lGSmxaRnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGNtVmtMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyWm1aalZtTlN4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJabVpUTmxNeXhjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMlptWXpsak9TeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0kyWm1ZVGhoT0N4Y1hHNGdJRnhjWENJMFhGeGNJam9nSTJabU9EYzROeXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJMlptTm1JMllpeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0kyWmhOVEkxTWl4Y1hHNGdJRnhjWENJM1hGeGNJam9nSTJZd00yVXpaU3hjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJMlV3TXpFek1TeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0kyTTVNbUV5WVZ4Y2JpazdYRnh1WEZ4dUpHOWpMWEpsWkMwd09pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xURTZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxeVpXUXRNam9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxYSmxaQzB6T2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRRNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE5Ub2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVGM2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MXlaV1F0T0RvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMWEpsWkMwNU9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdVR2x1YTF4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRjR2x1YXkxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tWm1Zd1pqWXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTm1abVJsWldJc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNObVkyTXlaRGNzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05tWVdFeVl6RXNYRnh1SUNCY1hGd2lORnhjWENJNklDTm1Oemd6WVdNc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNObU1EWTFPVFVzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ05sTmpRNU9EQXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTmtOak16Tm1Nc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNOak1qSTFOV01zWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ05oTmpGbE5HUmNYRzRwTzF4Y2JseGNiaVJ2WXkxd2FXNXJMVEE2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkweE9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3RNam9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRNNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MDBPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0TlRvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUWTZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTAzT2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE9Eb2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVGs2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1IzSmhjR1ZjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXZHlZWEJsTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlk0WmpCbVl5eGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyWXpaRGxtWVN4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJWbFltVm1ZU3hjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMlUxT1RsbU55eGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0kyUmhOemRtTWl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSTJOak5XUmxPQ3hjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJMkpsTkdKa1lpeGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0kyRmxNMlZqT1N4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpsak16WmlOU3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJemcyTW1VNVkxeGNiaWs3WEZ4dVhGeHVKRzlqTFdkeVlYQmxMVEE2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExURTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRJNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVE02SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUUTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRVNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVFk2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUYzZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRnNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVGs2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lGWnBiMnhsZEZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRkbWx2YkdWMExXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJZelpqQm1aaXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlUxWkdKbVppeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyUXdZbVptWml4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJJeE9UZG1ZeXhjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJemszTnpWbVlTeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0l6ZzBOV1ZtTnl4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpjNU5UQm1NaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJemN3TkRobE9DeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6WTNOREZrT1N4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpWbU0yUmpORnhjYmlrN1hGeHVYRnh1Skc5akxYWnBiMnhsZEMwd09pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRFNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0TWpvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzB6T2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVFE2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXROVG9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUYzZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE9Eb2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMwNU9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnU1c1a2FXZHZYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxcGJtUnBaMjh0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaV1JtTW1abUxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpHSmxOR1ptTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWW1Gak9HWm1MRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpPVEZoTjJabUxGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBak56UTRabVpqTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqTldNM1kyWmhMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpOR00yWldZMUxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak5ESTJNMlZpTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTTJJMVltUmlMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpNelkwWm1NM1hGeHVLVHRjWEc1Y1hHNGtiMk10YVc1a2FXZHZMVEE2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHRNVG9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MHlPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUTTZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE5Eb2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkwMU9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRZNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0TnpvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTA0T2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVGs2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQkNiSFZsWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MWliSFZsTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlUzWmpWbVppeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyUXdaV0ptWml4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJFMVpEaG1aaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJemMwWXpCbVl5eGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0l6UmtZV0ptTnl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXpNek9XRm1NQ3hjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJekl5T0dKbE5peGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6RmpOMlZrTml4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpFNU56RmpNaXhjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJekU0TmpSaFlseGNiaWs3WEZ4dVhGeHVKRzlqTFdKc2RXVXRNRG9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRFNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10WW14MVpTMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0TXpvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUUTZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzAxT2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE5qb2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVGM2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMwNE9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXRPVG9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCRGVXRnVYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxamVXRnVMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyVXpabUZtWXl4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJNMVpqWm1ZU3hjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJems1WlRsbU1peGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0l6WTJaRGxsT0N4Y1hHNGdJRnhjWENJMFhGeGNJam9nSXpOaVl6bGtZaXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJekl5WWpoalppeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0l6RTFZV0ZpWml4Y1hHNGdJRnhjWENJM1hGeGNJam9nSXpFd09UaGhaQ3hjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJekJqT0RVNU9TeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6QmlOekk0TlZ4Y2JpazdYRnh1WEZ4dUpHOWpMV041WVc0dE1Eb2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVEU2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkweU9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHRNem9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRRNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0TmpvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxUYzZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTA0T2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE9Ub2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JVWldGc1hGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTEwWldGc0xXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJVMlptTm1OU3hjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMk16Wm1GbE9DeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0l6azJaakprTnl4Y1hHNGdJRnhjWENJelhGeGNJam9nSXpZelpUWmlaU3hjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJek00WkRsaE9TeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0l6SXdZems1Tnl4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpFeVlqZzROaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJekJqWVRZM09DeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6QTVPVEkyT0N4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpBNE4yWTFZbHhjYmlrN1hGeHVYRnh1Skc5akxYUmxZV3d0TURvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xURTZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzB5T2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE16b2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVFE2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMwMU9pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3ROam9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRjNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0T1RvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQkhjbVZsYmx4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRaM0psWlc0dGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWldKbVltVmxMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpaRE5tT1dRNExGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBallqSm1NbUppTEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqT0dObE9UbGhMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpOamxrWWpkakxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBak5URmpaalkyTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqTkRCak1EVTNMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpNemRpTWpSa0xGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak1tWTVaVFEwTEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTW1JNFlUTmxYRnh1S1R0Y1hHNWNYRzRrYjJNdFozSmxaVzR0TURvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHRNVG9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE1qb2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TXpvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHRORG9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE5Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TmpvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHROem9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE9Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0T1RvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdUR2x0WlZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRiR2x0WlMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tTkdaalpUTXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTmxPV1poWXpnc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNOa09HWTFZVElzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05qTUdWaU56VXNYRnh1SUNCY1hGd2lORnhjWENJNklDTmhPV1V6TkdJc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNNNU5HUTRNbVFzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ000TW1NNU1XVXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTTNOR0k0TVRZc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNMk5tRTRNR1lzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ00xWXprME1HUmNYRzRwTzF4Y2JseGNiaVJ2WXkxc2FXMWxMVEE2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMweE9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXRNam9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRNNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0TlRvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUWTZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzAzT2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE9Eb2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVGs2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1dXVnNiRzkzWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MTVaV3hzYjNjdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWm1abU9XUmlMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpabVptTTJKbUxGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalptWmxZems1TEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWm1abE1EWTJMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpabVprTkROaUxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBalptTmpOREU1TEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqWm1GaU1EQTFMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpaalU1WmpBd0xGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBalpqQTRZekF3TEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqWlRZM056QXdYRnh1S1R0Y1hHNWNYRzRrYjJNdGVXVnNiRzkzTFRBNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0TVRvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTB5T2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVE02SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3RORG9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MDFPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUWTZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE56b2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkwNE9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRrNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JQY21GdVoyVmNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFc5eVlXNW5aUzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1abVkwWlRZc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObVptVTRZMk1zWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05tWm1RNFlUZ3NYRnh1SUNCY1hGd2lNMXhjWENJNklDTm1abU13Tnpnc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNObVptRTVOR1FzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ05tWmpreU1tSXNYRnh1SUNCY1hGd2lObHhjWENJNklDTm1aRGRsTVRRc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNObU56WTNNRGNzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ05sT0RVNU1HTXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTmtPVFE0TUdaY1hHNHBPMXhjYmx4Y2JpUnZZeTF2Y21GdVoyVXRNRG9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUSTZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE16b2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMwME9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRVNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0TmpvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzAzT2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVGc2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXRPVG9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lFTnZiRzl5SUd4cGMzUmNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFdOdmJHOXlMWE53WldOMGNuVnRPaUFnSURrN1hGeHVYRnh1Skc5akxXTnZiRzl5TFd4cGMzUTZJQ2hjWEc0Z0lDUnZZeTFuY21GNUxXeHBjM1E2SUNBZ0lDQWdYRnhjSW1keVlYbGNYRndpTEZ4Y2JpQWdKRzlqTFhKbFpDMXNhWE4wT2lBZ0lDQWdJRnhjWENKeVpXUmNYRndpTEZ4Y2JpQWdKRzlqTFhCcGJtc3RiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWNHbHVhMXhjWENJc1hGeHVJQ0FrYjJNdFozSmhjR1V0YkdsemREb2dJQ0FnSUNCY1hGd2laM0poY0dWY1hGd2lMRnhjYmlBZ0pHOWpMWFpwYjJ4bGRDMXNhWE4wT2lBZ0lDQWdJRnhjWENKMmFXOXNaWFJjWEZ3aUxGeGNiaUFnSkc5akxXbHVaR2xuYnkxc2FYTjBPaUFnSUNBZ0lGeGNYQ0pwYm1ScFoyOWNYRndpTEZ4Y2JpQWdKRzlqTFdKc2RXVXRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aVlteDFaVnhjWENJc1hGeHVJQ0FrYjJNdFkzbGhiaTFzYVhOME9pQWdJQ0FnSUZ4Y1hDSmplV0Z1WEZ4Y0lpeGNYRzRnSUNSdll5MTBaV0ZzTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJblJsWVd4Y1hGd2lMRnhjYmlBZ0pHOWpMV2R5WldWdUxXeHBjM1E2SUNBZ0lDQWdYRnhjSW1keVpXVnVYRnhjSWl4Y1hHNGdJQ1J2WXkxc2FXMWxMV3hwYzNRNklDQWdJQ0FnWEZ4Y0lteHBiV1ZjWEZ3aUxGeGNiaUFnSkc5akxYbGxiR3h2ZHkxc2FYTjBPaUFnSUNBZ0lGeGNYQ0o1Wld4c2IzZGNYRndpTEZ4Y2JpQWdKRzlqTFc5eVlXNW5aUzFzYVhOME9pQWdJQ0FnSUZ4Y1hDSnZjbUZ1WjJWY1hGd2lYRnh1S1R0Y1hHNWNJbDBzWENKemIzVnlZMlZTYjI5MFhDSTZYQ0pjSW4xZEtUdGNiaTh2SUVWNGNHOXlkSE5jYm1WNGNHOXlkQ0JrWldaaGRXeDBJRjlmWDBOVFUxOU1UMEZFUlZKZlJWaFFUMUpVWDE5Zk8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvQ29sb3JQaWNrZXIuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Db25maXJtRGlhbG9nLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Db25maXJtRGlhbG9nLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkZWZhdWx0XFxcIjogKCkgPT4gKF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vLyBJbXBvcnRzXFxuXFxuXFxudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKSgoX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0KCkpKTtcXG4vLyBNb2R1bGVcXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFxcXCI6ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IGludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKTtcXFxcbn1cXFxcblxcXFxuLmV4Y2FsaWRyYXcgLmNvbmZpcm0tZGlhbG9nLWJ1dHRvbnMge1xcXFxuICBkaXNwbGF5OiBmbGV4O1xcXFxuICBwYWRkaW5nOiAwLjJyZW0gMDtcXFxcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5jb25maXJtLWRpYWxvZyAuVG9vbEljb25fX2ljb24ge1xcXFxuICBtaW4td2lkdGg6IDIuNXJlbTtcXFxcbiAgd2lkdGg6IGF1dG87XFxcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5jb25maXJtLWRpYWxvZyAuVG9vbEljb25fdHlwZV9idXR0b24ge1xcXFxuICBtYXJnaW4tbGVmdDogMC44cmVtO1xcXFxuICBwYWRkaW5nOiAwIDAuNXJlbTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5jb25maXJtLWRpYWxvZ19fY29udGVudCB7XFxcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5jb25maXJtLWRpYWxvZy0tY29uZmlybS5Ub29sSWNvbl90eXBlX2J1dHRvbiB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmYTUyNTI7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29uZmlybS1kaWFsb2ctLWNvbmZpcm0uVG9vbEljb25fdHlwZV9idXR0b246aG92ZXIge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTAzMTMxO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmNvbmZpcm0tZGlhbG9nLS1jb25maXJtLlRvb2xJY29uX3R5cGVfYnV0dG9uIC5Ub29sSWNvbl9faWNvbiB7XFxcXG4gIGNvbG9yOiAjZmZmZmZmO1xcXFxufVxcXCIsIFxcXCJcXFwiLHtcXFwidmVyc2lvblxcXCI6MyxcXFwic291cmNlc1xcXCI6W1xcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9Db25maXJtRGlhbG9nLnNjc3NcXFwiLFxcXCJ3ZWJwYWNrOi8vLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvb3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiXSxcXFwibmFtZXNcXFwiOltdLFxcXCJtYXBwaW5nc1xcXCI6XFxcIkFBVUE7RUFDRSwyQ0FBQTtBQ1RGOztBQUVJO0VBQ0UsYUFBQTtFQUNBLGlCQUFBO0VBQ0EseUJBQUE7QUFDTjtBQUNJO0VBQ0UsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtBQUNOO0FBRUk7RUFDRSxtQkFBQTtFQUNBLGlCQUFBO0FBQU47QUFHSTtFQUNFLGVBQUE7QUFETjtBQUlJO0VBQ0UseUJDd0NLO0FEMUNYO0FBSU07RUFDRSx5QkN1Q0c7QUR6Q1g7QUFLTTtFQUNFLGNDckJXO0FEa0JuQlxcXCIsXFxcInNvdXJjZXNDb250ZW50XFxcIjpbXFxcIkBpbXBvcnQgXFxcXFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXFxcXFwiO1xcXFxuXFxcXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXFxcbiAgICBAY29udGVudDtcXFxcbiAgfVxcXFxufVxcXFxuXFxcXG4kdGhlbWUtZmlsdGVyOiBcXFxcXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXFxcXFwiO1xcXFxuXFxcXG46ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxcXG59XFxcXG5cXFwiLFxcXCJAaW1wb3J0IFxcXFxcXFwiLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGVcXFxcXFxcIjtcXFxcblxcXFxuLmV4Y2FsaWRyYXcge1xcXFxuICAuY29uZmlybS1kaWFsb2cge1xcXFxuICAgICYtYnV0dG9ucyB7XFxcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcXFxuICAgICAgcGFkZGluZzogMC4ycmVtIDA7XFxcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcXFxuICAgIH1cXFxcbiAgICAuVG9vbEljb25fX2ljb24ge1xcXFxuICAgICAgbWluLXdpZHRoOiAyLjVyZW07XFxcXG4gICAgICB3aWR0aDogYXV0bztcXFxcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAuVG9vbEljb25fdHlwZV9idXR0b24ge1xcXFxuICAgICAgbWFyZ2luLWxlZnQ6IDAuOHJlbTtcXFxcbiAgICAgIHBhZGRpbmc6IDAgMC41cmVtO1xcXFxuICAgIH1cXFxcblxcXFxuICAgICZfX2NvbnRlbnQge1xcXFxuICAgICAgZm9udC1zaXplOiAxcmVtO1xcXFxuICAgIH1cXFxcblxcXFxuICAgICYtLWNvbmZpcm0uVG9vbEljb25fdHlwZV9idXR0b24ge1xcXFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9jLXJlZC02O1xcXFxuXFxcXG4gICAgICAmOmhvdmVyIHtcXFxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9jLXJlZC04O1xcXFxuICAgICAgfVxcXFxuXFxcXG4gICAgICAuVG9vbEljb25fX2ljb24ge1xcXFxuICAgICAgICBjb2xvcjogJG9jLXdoaXRlO1xcXFxuICAgICAgfVxcXFxuICAgIH1cXFxcbiAgfVxcXFxufVxcXFxuXFxcIixcXFwiLy9cXFxcbi8vXFxcXG4vLyAgXHVEODM1XHVEREQ2IFx1RDgzNVx1RERFMiBcdUQ4MzVcdUREREYgXHVEODM1XHVEREUyIFx1RDgzNVx1RERFNVxcXFxuLy8gIHYgMS45LjFcXFxcbi8vXFxcXG4vLyAgXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXFxcXG5cXFxcblxcXFxuLy8gIEdlbmVyYWxcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXdoaXRlOiAgICAgICAgICNmZmZmZmY7XFxcXG4kb2MtYmxhY2s6ICAgICAgICAgIzAwMDAwMDtcXFxcblxcXFxuXFxcXG4vLyAgR3JheVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JheS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjhmOWZhLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2YxZjNmNSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNlOWVjZWYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZGVlMmU2LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2NlZDRkYSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNhZGI1YmQsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjODY4ZTk2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzQ5NTA1NyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMzNDNhNDAsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMjEyNTI5XFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JheS0wOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTE6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0zOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTQ6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS02OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTc6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktODogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS05OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgUmVkXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1yZWQtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjVmNSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmUzZTMsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZjOWM5LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmYThhOCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZjg3ODcsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmY2YjZiLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZhNTI1MixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmMDNlM2UsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZTAzMTMxLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2M5MmEyYVxcXFxuKTtcXFxcblxcXFxuJG9jLXJlZC0wOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0xOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0yOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0zOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC00OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC01OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC02OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC03OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC04OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC05OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBQaW5rXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1waW5rLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmYwZjYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZkZWViLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZjYzJkNyxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmYWEyYzEsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZjc4M2FjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2YwNjU5NSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNlNjQ5ODAsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZDYzMzZjLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2MyMjU1YyxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNhNjFlNGRcXFxcbik7XFxcXG5cXFxcbiRvYy1waW5rLTA6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtcGluay0yOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTM6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtcGluay01OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTY6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtcGluay04OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTk6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBHcmFwZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JhcGUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y4ZjBmYyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmM2Q5ZmEsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZWViZWZhLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2U1OTlmNyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNkYTc3ZjIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjY2M1ZGU4LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2JlNGJkYixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNhZTNlYzksXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjOWMzNmI1LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzg2MmU5Y1xcXFxuKTtcXFxcblxcXFxuJG9jLWdyYXBlLTA6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0xOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTM6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS00OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTY6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS03OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtODogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTk6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgVmlvbGV0XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy12aW9sZXQtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2YzZjBmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNlNWRiZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZDBiZmZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2IxOTdmYyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM5Nzc1ZmEsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjODQ1ZWY3LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzc5NTBmMixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM3MDQ4ZTgsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjNjc0MWQ5LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzVmM2RjNFxcXFxuKTtcXFxcblxcXFxuJG9jLXZpb2xldC0wOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0xOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0yOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0zOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC00OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC01OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC02OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC03OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC04OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC05OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBJbmRpZ29cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWluZGlnby1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZWRmMmZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2RiZTRmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNiYWM4ZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjOTFhN2ZmLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzc0OGZmYyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM1YzdjZmEsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNGM2ZWY1LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzQyNjNlYixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMzYjViZGIsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMzY0ZmM3XFxcXG4pO1xcXFxuXFxcXG4kb2MtaW5kaWdvLTA6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTE6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTI6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTM6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTQ6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTU6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTY6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTc6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTg6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTk6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEJsdWVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWJsdWUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2U3ZjVmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkMGViZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYTVkOGZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzc0YzBmYyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM0ZGFiZjcsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMzM5YWYwLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzIyOGJlNixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMxYzdlZDYsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMTk3MWMyLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzE4NjRhYlxcXFxuKTtcXFxcblxcXFxuJG9jLWJsdWUtMDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0xOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTI6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS00OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTU6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS03OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTg6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtOTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEN5YW5cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWN5YW4tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2UzZmFmYyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNjNWY2ZmEsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjOTllOWYyLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzY2ZDllOCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICMzYmM5ZGIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMjJiOGNmLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzE1YWFiZixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMxMDk4YWQsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMGM4NTk5LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzBiNzI4NVxcXFxuKTtcXFxcblxcXFxuJG9jLWN5YW4tMDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0xOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTI6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi00OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTU6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi03OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTg6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tOTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFRlYWxcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXRlYWwtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2U2ZmNmNSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNjM2ZhZTgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjOTZmMmQ3LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzYzZTZiZSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICMzOGQ5YTksXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMjBjOTk3LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzEyYjg4NixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMwY2E2NzgsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMDk5MjY4LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzA4N2Y1YlxcXFxuKTtcXFxcblxcXFxuJG9jLXRlYWwtMDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0xOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTI6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC00OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTU6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC03OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTg6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtOTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEdyZWVuXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmVlbi1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZWJmYmVlLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2QzZjlkOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNiMmYyYmIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjOGNlOTlhLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzY5ZGI3YyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM1MWNmNjYsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNDBjMDU3LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzM3YjI0ZCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMyZjllNDQsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMmI4YTNlXFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JlZW4tMDogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTE6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0yOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMzogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTQ6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi01OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNjogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTc6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi04OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tOTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBMaW1lXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1saW1lLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmNGZjZTMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZTlmYWM4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2Q4ZjVhMixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNjMGViNzUsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjYTllMzRiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzk0ZDgyZCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM4MmM5MWUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNzRiODE2LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzY2YTgwZixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM1Yzk0MGRcXFxcbik7XFxcXG5cXFxcbiRvYy1saW1lLTA6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0yOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTM6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtbGltZS01OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTY6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtbGltZS04OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTk6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBZZWxsb3dcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXllbGxvdy1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmOWRiLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZjNiZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmVjOTksXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZlMDY2LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmZDQzYixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmY2M0MTksXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmFiMDA1LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Y1OWYwMCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNmMDhjMDAsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjZTY3NzAwXFxcXG4pO1xcXFxuXFxcXG4kb2MteWVsbG93LTA6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTE6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTI6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTM6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTQ6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTU6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTY6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTc6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTg6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTk6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIE9yYW5nZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2Mtb3JhbmdlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY0ZTYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZlOGNjLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmZDhhOCxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmMwNzgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmZhOTRkLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZmOTIyYixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmZDdlMTQsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjc2NzA3LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2U4NTkwYyxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNkOTQ4MGZcXFxcbik7XFxcXG5cXFxcbiRvYy1vcmFuZ2UtMDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtODogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtOTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQ29sb3IgbGlzdFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtY29sb3Itc3BlY3RydW06ICAgOTtcXFxcblxcXFxuJG9jLWNvbG9yLWxpc3Q6IChcXFxcbiAgJG9jLWdyYXktbGlzdDogICAgICBcXFxcXFxcImdyYXlcXFxcXFxcIixcXFxcbiAgJG9jLXJlZC1saXN0OiAgICAgIFxcXFxcXFwicmVkXFxcXFxcXCIsXFxcXG4gICRvYy1waW5rLWxpc3Q6ICAgICAgXFxcXFxcXCJwaW5rXFxcXFxcXCIsXFxcXG4gICRvYy1ncmFwZS1saXN0OiAgICAgIFxcXFxcXFwiZ3JhcGVcXFxcXFxcIixcXFxcbiAgJG9jLXZpb2xldC1saXN0OiAgICAgIFxcXFxcXFwidmlvbGV0XFxcXFxcXCIsXFxcXG4gICRvYy1pbmRpZ28tbGlzdDogICAgICBcXFxcXFxcImluZGlnb1xcXFxcXFwiLFxcXFxuICAkb2MtYmx1ZS1saXN0OiAgICAgIFxcXFxcXFwiYmx1ZVxcXFxcXFwiLFxcXFxuICAkb2MtY3lhbi1saXN0OiAgICAgIFxcXFxcXFwiY3lhblxcXFxcXFwiLFxcXFxuICAkb2MtdGVhbC1saXN0OiAgICAgIFxcXFxcXFwidGVhbFxcXFxcXFwiLFxcXFxuICAkb2MtZ3JlZW4tbGlzdDogICAgICBcXFxcXFxcImdyZWVuXFxcXFxcXCIsXFxcXG4gICRvYy1saW1lLWxpc3Q6ICAgICAgXFxcXFxcXCJsaW1lXFxcXFxcXCIsXFxcXG4gICRvYy15ZWxsb3ctbGlzdDogICAgICBcXFxcXFxcInllbGxvd1xcXFxcXFwiLFxcXFxuICAkb2Mtb3JhbmdlLWxpc3Q6ICAgICAgXFxcXFxcXCJvcmFuZ2VcXFxcXFxcIlxcXFxuKTtcXFxcblxcXCJdLFxcXCJzb3VyY2VSb290XFxcIjpcXFwiXFxcIn1dKTtcXG4vLyBFeHBvcnRzXFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9IChfX19DU1NfTE9BREVSX0VYUE9SVF9fXyk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUwyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk5dWIyUmxYMjF2WkhWc1pYTXZjMkZ6Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpNHZMaTR2WTI5dGNHOXVaVzUwY3k5RGIyNW1hWEp0UkdsaGJHOW5Mbk5qYzNNdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3UVVGQlFUdEJRVU00U0R0QlFVTnFRanRCUVVNM1J5dzRRa0ZCT0VJc2RVZEJRVEpDTEVOQlFVTXNaMGhCUVhGRE8wRkJReTlHTzBGQlEwRXNiVVJCUVcxRUxHZEVRVUZuUkN4SFFVRkhMSGxEUVVGNVF5eHJRa0ZCYTBJc2MwSkJRWE5DTERoQ1FVRTRRaXhIUVVGSExDdERRVUVyUXl4elFrRkJjMElzWjBKQlFXZENMRzlDUVVGdlFpeEhRVUZITEhGRVFVRnhSQ3gzUWtGQmQwSXNjMEpCUVhOQ0xFZEJRVWNzZDBOQlFYZERMRzlDUVVGdlFpeEhRVUZITERaRVFVRTJSQ3c0UWtGQk9FSXNSMEZCUnl4dFJVRkJiVVVzT0VKQlFUaENMRWRCUVVjc05rVkJRVFpGTEcxQ1FVRnRRaXhIUVVGSExFOUJRVThzYlU1QlFXMU9MRmRCUVZjc1RVRkJUU3hMUVVGTExGVkJRVlVzVjBGQlZ5eFhRVUZYTEV0QlFVc3NTMEZCU3l4WFFVRlhMRlZCUVZVc1ZVRkJWU3hMUVVGTExFdEJRVXNzVjBGQlZ5eFhRVUZYTEV0QlFVc3NTMEZCU3l4VlFVRlZMRXRCUVVzc1MwRkJTeXhaUVVGWkxFMUJRVTBzUzBGQlN5eFpRVUZaTEUxQlFVMHNTMEZCU3l4WFFVRlhMR3RGUVVGclJTeDFRa0ZCZFVJc2EwTkJRV3RETEVsQlFVa3NaVUZCWlN4TFFVRkxMRWRCUVVjc2MwUkJRWE5FTEdGQlFXRXNkME5CUVhkRExFZEJRVWNzZVVOQlFYbERMR2xDUVVGcFFpeHhRa0ZCY1VJc2FVSkJRV2xDTEhOQ1FVRnpRaXd3UWtGQk1FSXNhME5CUVd0RExFOUJRVThzZFVKQlFYVkNMREJDUVVFd1FpeHZRa0ZCYjBJc2QwSkJRWGRDTEU5QlFVOHNLMEpCUVN0Q0xEUkNRVUUwUWl3d1FrRkJNRUlzVDBGQlR5eHZRa0ZCYjBJc2QwSkJRWGRDTEU5QlFVOHNlVU5CUVhsRExHOURRVUZ2UXl4dFFrRkJiVUlzYzBOQlFYTkRMRk5CUVZNc01rSkJRVEpDTERKQ1FVRXlRaXhUUVVGVExFOUJRVThzUzBGQlN5eEhRVUZITEd0TVFVRnJUQ3cyUWtGQk5rSXNORkZCUVRSUkxEaERRVUU0UXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3d1VVRkJNRkVzTkVOQlFUUkRMREJEUVVFd1F5d3dRMEZCTUVNc01FTkJRVEJETERCRFFVRXdReXd3UTBGQk1FTXNNRU5CUVRCRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMRFJSUVVFMFVTdzRRMEZCT0VNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc09GRkJRVGhSTEdkRVFVRm5SQ3c0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXhuVWtGQloxSXNhMFJCUVd0RUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZFNRVUZuVWl4clJFRkJhMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzTkZGQlFUUlJMRGhEUVVFNFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBVVUZCTkZFc09FTkJRVGhETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSUlFVRTBVU3c0UTBGQk9FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNPRkZCUVRoUkxHZEVRVUZuUkN3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3MFVVRkJORkVzT0VOQlFUaERMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMR2RTUVVGblVpeHJSRUZCYTBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1oxSkJRV2RTTEd0RVFVRnJSQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3g1UmtGQmVVWXNkV1JCUVhWa0xIRkNRVUZ4UWp0QlFVTnVhbGs3UVVGRFFTeHBSVUZCWlN4MVFrRkJkVUlzUlVGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDBOdmJtWnBjbTFFYVdGc2IyY3VjMk56Y3o4NFlXUmlJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4dklFbHRjRzl5ZEhOY2JtbHRjRzl5ZENCZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5VFQxVlNRMFZOUVZCZlNVMVFUMUpVWDE5ZklHWnliMjBnWENJdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2Y25WdWRHbHRaUzl6YjNWeVkyVk5ZWEJ6TG1welhDSTdYRzVwYlhCdmNuUWdYMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZTVTFRVDFKVVgxOWZJR1p5YjIwZ1hDSXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OWpjM010Ykc5aFpHVnlMMlJwYzNRdmNuVnVkR2x0WlM5aGNHa3Vhbk5jSWp0Y2JuWmhjaUJmWDE5RFUxTmZURTlCUkVWU1gwVllVRTlTVkY5Zlh5QTlJRjlmWDBOVFUxOU1UMEZFUlZKZlFWQkpYMGxOVUU5U1ZGOWZYeWhmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlUVDFWU1EwVk5RVkJmU1UxUVQxSlVYMTlmS1R0Y2JpOHZJRTF2WkhWc1pWeHVYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4dWNIVnphQ2hiYlc5a2RXeGxMbWxrTENCY0lqcGxlSEJ2Y25RZ2UxeGNiaUFnZEdobGJXVkdhV3gwWlhJNklHbHVkbVZ5ZENnNU15VXBJR2gxWlMxeWIzUmhkR1VvTVRnd1pHVm5LVHRjWEc1OVhGeHVYRnh1TG1WNFkyRnNhV1J5WVhjZ0xtTnZibVpwY20wdFpHbGhiRzluTFdKMWRIUnZibk1nZTF4Y2JpQWdaR2x6Y0d4aGVUb2dabXhsZUR0Y1hHNGdJSEJoWkdScGJtYzZJREF1TW5KbGJTQXdPMXhjYmlBZ2FuVnpkR2xtZVMxamIyNTBaVzUwT2lCbWJHVjRMV1Z1WkR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xtTnZibVpwY20wdFpHbGhiRzluSUM1VWIyOXNTV052Ymw5ZmFXTnZiaUI3WEZ4dUlDQnRhVzR0ZDJsa2RHZzZJREl1TlhKbGJUdGNYRzRnSUhkcFpIUm9PaUJoZFhSdk8xeGNiaUFnWm05dWRDMXphWHBsT2lBeGNtVnRPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1WTI5dVptbHliUzFrYVdGc2IyY2dMbFJ2YjJ4SlkyOXVYM1I1Y0dWZlluVjBkRzl1SUh0Y1hHNGdJRzFoY21kcGJpMXNaV1owT2lBd0xqaHlaVzA3WEZ4dUlDQndZV1JrYVc1bk9pQXdJREF1TlhKbGJUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbU52Ym1acGNtMHRaR2xoYkc5blgxOWpiMjUwWlc1MElIdGNYRzRnSUdadmJuUXRjMmw2WlRvZ01YSmxiVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG1OdmJtWnBjbTB0WkdsaGJHOW5MUzFqYjI1bWFYSnRMbFJ2YjJ4SlkyOXVYM1I1Y0dWZlluVjBkRzl1SUh0Y1hHNGdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWVRVeU5USTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVqYjI1bWFYSnRMV1JwWVd4dlp5MHRZMjl1Wm1seWJTNVViMjlzU1dOdmJsOTBlWEJsWDJKMWRIUnZianBvYjNabGNpQjdYRnh1SUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lBalpUQXpNVE14TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVkyOXVabWx5YlMxa2FXRnNiMmN0TFdOdmJtWnBjbTB1Vkc5dmJFbGpiMjVmZEhsd1pWOWlkWFIwYjI0Z0xsUnZiMnhKWTI5dVgxOXBZMjl1SUh0Y1hHNGdJR052Ykc5eU9pQWpabVptWm1abU8xeGNibjFjSWl3Z1hDSmNJaXg3WENKMlpYSnphVzl1WENJNk15eGNJbk52ZFhKalpYTmNJanBiWENKM1pXSndZV05yT2k4dkxpOHVMaTh1TGk5amMzTXZkbUZ5YVdGaWJHVnpMbTF2WkhWc1pTNXpZM056WENJc1hDSjNaV0p3WVdOck9pOHZMaTh1TGk4dUxpOWpiMjF3YjI1bGJuUnpMME52Ym1acGNtMUVhV0ZzYjJjdWMyTnpjMXdpTEZ3aWQyVmljR0ZqYXpvdkx5NHZMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDI5d1pXNHRZMjlzYjNJdmIzQmxiaTFqYjJ4dmNpNXpZM056WENKZExGd2libUZ0WlhOY0lqcGJYU3hjSW0xaGNIQnBibWR6WENJNlhDSkJRVlZCTzBWQlEwVXNNa05CUVVFN1FVTlVSanM3UVVGRlNUdEZRVU5GTEdGQlFVRTdSVUZEUVN4cFFrRkJRVHRGUVVOQkxIbENRVUZCTzBGQlEwNDdRVUZEU1R0RlFVTkZMR2xDUVVGQk8wVkJRMEVzVjBGQlFUdEZRVU5CTEdWQlFVRTdRVUZEVGp0QlFVVkpPMFZCUTBVc2JVSkJRVUU3UlVGRFFTeHBRa0ZCUVR0QlFVRk9PMEZCUjBrN1JVRkRSU3hsUVVGQk8wRkJSRTQ3UVVGSlNUdEZRVU5GTEhsQ1EzZERTenRCUkRGRFdEdEJRVWxOTzBWQlEwVXNlVUpEZFVOSE8wRkVla05ZTzBGQlMwMDdSVUZEUlN4alEzSkNWenRCUkd0Q2JrSmNJaXhjSW5OdmRYSmpaWE5EYjI1MFpXNTBYQ0k2VzF3aVFHbHRjRzl5ZENCY1hGd2liM0JsYmkxamIyeHZjaTl2Y0dWdUxXTnZiRzl5TG5OamMzTmNYRndpTzF4Y2JseGNia0J0YVhocGJpQnBjMDF2WW1sc1pTZ3BJSHRjWEc0Z0lFQmhkQzF5YjI5MElDNWxlR05oYkdsa2NtRjNMUzF0YjJKcGJHVWpleVo5SUh0Y1hHNGdJQ0FnUUdOdmJuUmxiblE3WEZ4dUlDQjlYRnh1ZlZ4Y2JseGNiaVIwYUdWdFpTMW1hV3gwWlhJNklGeGNYQ0pwYm5abGNuUW9PVE1sS1NCb2RXVXRjbTkwWVhSbEtERTRNR1JsWnlsY1hGd2lPMXhjYmx4Y2JqcGxlSEJ2Y25RZ2UxeGNiaUFnZEdobGJXVkdhV3gwWlhJNklIVnVjWFZ2ZEdVb0pIUm9aVzFsTFdacGJIUmxjaWs3WEZ4dWZWeGNibHdpTEZ3aVFHbHRjRzl5ZENCY1hGd2lMaTR2WTNOekwzWmhjbWxoWW14bGN5NXRiMlIxYkdWY1hGd2lPMXhjYmx4Y2JpNWxlR05oYkdsa2NtRjNJSHRjWEc0Z0lDNWpiMjVtYVhKdExXUnBZV3h2WnlCN1hGeHVJQ0FnSUNZdFluVjBkRzl1Y3lCN1hGeHVJQ0FnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjWEc0Z0lDQWdJQ0J3WVdSa2FXNW5PaUF3TGpKeVpXMGdNRHRjWEc0Z0lDQWdJQ0JxZFhOMGFXWjVMV052Ym5SbGJuUTZJR1pzWlhndFpXNWtPMXhjYmlBZ0lDQjlYRnh1SUNBZ0lDNVViMjlzU1dOdmJsOWZhV052YmlCN1hGeHVJQ0FnSUNBZ2JXbHVMWGRwWkhSb09pQXlMalZ5WlcwN1hGeHVJQ0FnSUNBZ2QybGtkR2c2SUdGMWRHODdYRnh1SUNBZ0lDQWdabTl1ZEMxemFYcGxPaUF4Y21WdE8xeGNiaUFnSUNCOVhGeHVYRnh1SUNBZ0lDNVViMjlzU1dOdmJsOTBlWEJsWDJKMWRIUnZiaUI3WEZ4dUlDQWdJQ0FnYldGeVoybHVMV3hsWm5RNklEQXVPSEpsYlR0Y1hHNGdJQ0FnSUNCd1lXUmthVzVuT2lBd0lEQXVOWEpsYlR0Y1hHNGdJQ0FnZlZ4Y2JseGNiaUFnSUNBbVgxOWpiMjUwWlc1MElIdGNYRzRnSUNBZ0lDQm1iMjUwTFhOcGVtVTZJREZ5WlcwN1hGeHVJQ0FnSUgxY1hHNWNYRzRnSUNBZ0ppMHRZMjl1Wm1seWJTNVViMjlzU1dOdmJsOTBlWEJsWDJKMWRIUnZiaUI3WEZ4dUlDQWdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nSkc5akxYSmxaQzAyTzF4Y2JseGNiaUFnSUNBZ0lDWTZhRzkyWlhJZ2UxeGNiaUFnSUNBZ0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dKRzlqTFhKbFpDMDRPMXhjYmlBZ0lDQWdJSDFjWEc1Y1hHNGdJQ0FnSUNBdVZHOXZiRWxqYjI1ZlgybGpiMjRnZTF4Y2JpQWdJQ0FnSUNBZ1kyOXNiM0k2SUNSdll5MTNhR2wwWlR0Y1hHNGdJQ0FnSUNCOVhGeHVJQ0FnSUgxY1hHNGdJSDFjWEc1OVhGeHVYQ0lzWENJdkwxeGNiaTh2WEZ4dUx5OGdJUENkbDVZZzhKMlhvaUR3blplZklQQ2RsNklnOEoyWHBWeGNiaTh2SUNCMklERXVPUzR4WEZ4dUx5OWNYRzR2THlBZzRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCWEZ4dVhGeHVYRnh1THk4Z0lFZGxibVZ5WVd4Y1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMWGRvYVhSbE9pQWdJQ0FnSUNBZ0lDTm1abVptWm1ZN1hGeHVKRzlqTFdKc1lXTnJPaUFnSUNBZ0lDQWdJQ013TURBd01EQTdYRnh1WEZ4dVhGeHVMeThnSUVkeVlYbGNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFdkeVlYa3RiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpqaG1PV1poTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWmpGbU0yWTFMRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpaVGxsWTJWbUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBalpHVmxNbVUyTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqWTJWa05HUmhMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpZV1JpTldKa0xGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBak9EWTRaVGsyTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqTkRrMU1EVTNMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpNelF6WVRRd0xGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak1qRXlOVEk1WEZ4dUtUdGNYRzVjWEc0a2IyTXRaM0poZVMwd09pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3RNVG9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRJNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0TkRvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxUVTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzAyT2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE56b2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVGc2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMwNU9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRkpsWkZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRjbVZrTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlptWmpWbU5TeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyWm1aVE5sTXl4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJabVl6bGpPU3hjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMlptWVRoaE9DeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0kyWm1PRGM0Tnl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSTJabU5tSTJZaXhjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJMlpoTlRJMU1peGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0kyWXdNMlV6WlN4Y1hHNGdJRnhjWENJNFhGeGNJam9nSTJVd016RXpNU3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJMk01TW1FeVlWeGNiaWs3WEZ4dVhGeHVKRzlqTFhKbFpDMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVEU2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MXlaV1F0TWpvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMWEpsWkMwek9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUUTZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxeVpXUXROVG9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxYSmxaQzAyT2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRjNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE9Eb2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnVUdsdWExeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10Y0dsdWF5MXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObVptWXdaallzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05tWm1SbFpXSXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTm1ZMk15WkRjc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNObVlXRXlZekVzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ05tTnpnellXTXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTm1NRFkxT1RVc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNObE5qUTVPREFzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ05rTmpNek5tTXNYRnh1SUNCY1hGd2lPRnhjWENJNklDTmpNakkxTldNc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNOaE5qRmxOR1JjWEc0cE8xeGNibHhjYmlSdll5MXdhVzVyTFRBNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MHhPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0TWpvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUTTZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTAwT2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE5Ub2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVFk2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkwM09pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3RPRG9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRrNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdSM0poY0dWY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV2R5WVhCbExXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJZNFpqQm1ZeXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMll6WkRsbVlTeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyVmxZbVZtWVN4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJVMU9UbG1OeXhjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJMlJoTnpkbU1peGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0kyTmpOV1JsT0N4Y1hHNGdJRnhjWENJMlhGeGNJam9nSTJKbE5HSmtZaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJMkZsTTJWak9TeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6bGpNelppTlN4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpnMk1tVTVZMXhjYmlrN1hGeHVYRnh1Skc5akxXZHlZWEJsTFRBNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVEU2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUSTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRNNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVFE2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUVTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRZNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVGM2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUZzZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRrNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRlpwYjJ4bGRGeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10ZG1sdmJHVjBMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyWXpaakJtWml4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJVMVpHSm1aaXhjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMlF3WW1abVppeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0kySXhPVGRtWXl4Y1hHNGdJRnhjWENJMFhGeGNJam9nSXprM056Vm1ZU3hjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJemcwTldWbU55eGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0l6YzVOVEJtTWl4Y1hHNGdJRnhjWENJM1hGeGNJam9nSXpjd05EaGxPQ3hjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJelkzTkRGa09TeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6Vm1NMlJqTkZ4Y2JpazdYRnh1WEZ4dUpHOWpMWFpwYjJ4bGRDMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExURTZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE1qb2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMwek9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRRNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0TlRvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzAyT2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVGM2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXRPRG9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1NXNWthV2R2WEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MXBibVJwWjI4dGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWldSbU1tWm1MRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpaR0psTkdabUxGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalltRmpPR1ptTEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqT1RGaE4yWm1MRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpOelE0Wm1aakxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBak5XTTNZMlpoTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqTkdNMlpXWTFMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpOREkyTTJWaUxGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak0ySTFZbVJpTEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTXpZMFptTTNYRnh1S1R0Y1hHNWNYRzRrYjJNdGFXNWthV2R2TFRBNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0TVRvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTB5T2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVE02SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHRORG9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MDFPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUWTZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE56b2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkwNE9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRrNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JDYkhWbFhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFpYkhWbExXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJVM1pqVm1aaXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlF3WldKbVppeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyRTFaRGhtWml4Y1hHNGdJRnhjWENJelhGeGNJam9nSXpjMFl6Qm1ZeXhjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJelJrWVdKbU55eGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0l6TXpPV0ZtTUN4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpJeU9HSmxOaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJekZqTjJWa05peGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6RTVOekZqTWl4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpFNE5qUmhZbHhjYmlrN1hGeHVYRnh1Skc5akxXSnNkV1V0TURvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExURTZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzB5T2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE16b2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVFE2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMwMU9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXROam9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRjNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10WW14MVpTMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0T1RvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQkRlV0Z1WEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MWplV0Z1TFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlV6Wm1GbVl5eGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyTTFaalptWVN4Y1hHNGdJRnhjWENJeVhGeGNJam9nSXprNVpUbG1NaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJelkyWkRsbE9DeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0l6TmlZemxrWWl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXpJeVlqaGpaaXhjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJekUxWVdGaVppeGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6RXdPVGhoWkN4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpCak9EVTVPU3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJekJpTnpJNE5WeGNiaWs3WEZ4dVhGeHVKRzlqTFdONVlXNHRNRG9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRFNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0TXpvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxUUTZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTAxT2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE5qb2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVGM2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkwNE9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHRPVG9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCVVpXRnNYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxMFpXRnNMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyVTJabU5tTlN4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJNelptRmxPQ3hjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJemsyWmpKa055eGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0l6WXpaVFppWlN4Y1hHNGdJRnhjWENJMFhGeGNJam9nSXpNNFpEbGhPU3hjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJekl3WXprNU55eGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0l6RXlZamc0Tml4Y1hHNGdJRnhjWENJM1hGeGNJam9nSXpCallUWTNPQ3hjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJekE1T1RJMk9DeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6QTROMlkxWWx4Y2JpazdYRnh1WEZ4dUpHOWpMWFJsWVd3dE1Eb2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVEU2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMweU9pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3RNem9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRRNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0TmpvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUYzZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzA0T2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE9Ub2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JIY21WbGJseGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10WjNKbFpXNHRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpXSm1ZbVZsTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWkRObU9XUTRMRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpZakptTW1KaUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBak9HTmxPVGxoTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqTmpsa1lqZGpMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpOVEZqWmpZMkxGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBak5EQmpNRFUzTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqTXpkaU1qUmtMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpNbVk1WlRRMExGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak1tSTRZVE5sWEZ4dUtUdGNYRzVjWEc0a2IyTXRaM0psWlc0dE1Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TVRvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHRNam9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE16b2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TkRvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHROVG9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE5qb2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TnpvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHRPRG9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE9Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnVEdsdFpWeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10YkdsdFpTMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObU5HWmpaVE1zWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05sT1daaFl6Z3NYRnh1SUNCY1hGd2lNbHhjWENJNklDTmtPR1kxWVRJc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNOak1HVmlOelVzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ05oT1dVek5HSXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTTVOR1E0TW1Rc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNNNE1tTTVNV1VzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ00zTkdJNE1UWXNYRnh1SUNCY1hGd2lPRnhjWENJNklDTTJObUU0TUdZc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNMVl6azBNR1JjWEc0cE8xeGNibHhjYmlSdll5MXNhVzFsTFRBNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0TWpvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUTTZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzAwT2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE5Ub2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVFk2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMwM09pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXRPRG9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRrNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdXV1ZzYkc5M1hGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTE1Wld4c2IzY3RiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalptWm1PV1JpTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWm1abU0ySm1MRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpabVpsWXprNUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBalptWmxNRFkyTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqWm1aa05ETmlMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpabU5qTkRFNUxGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBalptRmlNREExTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqWmpVNVpqQXdMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpaakE0WXpBd0xGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBalpUWTNOekF3WEZ4dUtUdGNYRzVjWEc0a2IyTXRlV1ZzYkc5M0xUQTZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE1Ub2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkweU9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRNNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0TkRvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTAxT2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVFk2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3ROem9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MDRPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUazZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCUGNtRnVaMlZjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXOXlZVzVuWlMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tWm1ZMFpUWXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTm1abVU0WTJNc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNObVptUTRZVGdzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05tWm1Nd056Z3NYRnh1SUNCY1hGd2lORnhjWENJNklDTm1abUU1TkdRc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNObVpqa3lNbUlzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ05tWkRkbE1UUXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTm1OelkzTURjc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNObE9EVTVNR01zWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ05rT1RRNE1HWmNYRzRwTzF4Y2JseGNiaVJ2WXkxdmNtRnVaMlV0TURvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzB4T2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVEk2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXRNem9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUVTZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE5qb2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMwM09pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRnNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0T1RvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRU52Ykc5eUlHeHBjM1JjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXTnZiRzl5TFhOd1pXTjBjblZ0T2lBZ0lEazdYRnh1WEZ4dUpHOWpMV052Ykc5eUxXeHBjM1E2SUNoY1hHNGdJQ1J2WXkxbmNtRjVMV3hwYzNRNklDQWdJQ0FnWEZ4Y0ltZHlZWGxjWEZ3aUxGeGNiaUFnSkc5akxYSmxaQzFzYVhOME9pQWdJQ0FnSUZ4Y1hDSnlaV1JjWEZ3aUxGeGNiaUFnSkc5akxYQnBibXN0YkdsemREb2dJQ0FnSUNCY1hGd2ljR2x1YTF4Y1hDSXNYRnh1SUNBa2IyTXRaM0poY0dVdGJHbHpkRG9nSUNBZ0lDQmNYRndpWjNKaGNHVmNYRndpTEZ4Y2JpQWdKRzlqTFhacGIyeGxkQzFzYVhOME9pQWdJQ0FnSUZ4Y1hDSjJhVzlzWlhSY1hGd2lMRnhjYmlBZ0pHOWpMV2x1WkdsbmJ5MXNhWE4wT2lBZ0lDQWdJRnhjWENKcGJtUnBaMjljWEZ3aUxGeGNiaUFnSkc5akxXSnNkV1V0YkdsemREb2dJQ0FnSUNCY1hGd2lZbXgxWlZ4Y1hDSXNYRnh1SUNBa2IyTXRZM2xoYmkxc2FYTjBPaUFnSUNBZ0lGeGNYQ0pqZVdGdVhGeGNJaXhjWEc0Z0lDUnZZeTEwWldGc0xXeHBjM1E2SUNBZ0lDQWdYRnhjSW5SbFlXeGNYRndpTEZ4Y2JpQWdKRzlqTFdkeVpXVnVMV3hwYzNRNklDQWdJQ0FnWEZ4Y0ltZHlaV1Z1WEZ4Y0lpeGNYRzRnSUNSdll5MXNhVzFsTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbXhwYldWY1hGd2lMRnhjYmlBZ0pHOWpMWGxsYkd4dmR5MXNhWE4wT2lBZ0lDQWdJRnhjWENKNVpXeHNiM2RjWEZ3aUxGeGNiaUFnSkc5akxXOXlZVzVuWlMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0p2Y21GdVoyVmNYRndpWEZ4dUtUdGNYRzVjSWwwc1hDSnpiM1Z5WTJWU2IyOTBYQ0k2WENKY0luMWRLVHRjYmk4dklFVjRjRzl5ZEhOY2JtVjRjRzl5ZENCa1pXWmhkV3gwSUY5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0NvbmZpcm1EaWFsb2cuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Db250ZXh0TWVudS5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0NvbnRleHRNZW51LnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLy8gSW1wb3J0c1xcblxcblxcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxuLy8gTW9kdWxlXFxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcXFwiQGNoYXJzZXQgXFxcXFxcXCJVVEYtOFxcXFxcXFwiO1xcXFxuOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxcXG59XFxcXG5cXFxcbi5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUge1xcXFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXFxcbiAgYm94LXNoYWRvdzogMCAzcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XFxcXG4gIHBhZGRpbmc6IDA7XFxcXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XFxcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxcXG4gIG1hcmdpbjogLTAuMjVyZW0gMCAwIDAuMTI1cmVtO1xcXFxuICBwYWRkaW5nOiAwLjVyZW0gMDtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcG9wdXAtc2Vjb25kYXJ5LWJnLWNvbG9yKTtcXFxcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxcXG4gIGN1cnNvcjogZGVmYXVsdDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUgYnV0dG9uIHtcXFxcbiAgY29sb3I6IHZhcigtLXBvcHVwLXRleHQtY29sb3IpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmNvbnRleHQtbWVudS1vcHRpb24ge1xcXFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxcXG4gIHdpZHRoOiAxMDAlO1xcXFxuICBtaW4td2lkdGg6IDkuNXJlbTtcXFxcbiAgbWFyZ2luOiAwO1xcXFxuICBwYWRkaW5nOiAwLjI1cmVtIDFyZW0gMC4yNXJlbSAxLjI1cmVtO1xcXFxuICB0ZXh0LWFsaWduOiBzdGFydDtcXFxcbiAgYm9yZGVyLXJhZGl1czogMDtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxcXG4gIGJvcmRlcjogbm9uZTtcXFxcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXFxcbiAgZGlzcGxheTogZ3JpZDtcXFxcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMC4yZnI7XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbi5jaGVja21hcms6OmJlZm9yZSB7XFxcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgbGVmdDogNnB4O1xcXFxuICBtYXJnaW4tYm90dG9tOiAxcHg7XFxcXG4gIGNvbnRlbnQ6IFxcXFxcXFwiXHUyNzEzXFxcXFxcXCI7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbi5kYW5nZXJvdXMgLmNvbnRleHQtbWVudS1vcHRpb25fX2xhYmVsIHtcXFxcbiAgY29sb3I6ICNmMDNlM2U7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbiAuY29udGV4dC1tZW51LW9wdGlvbl9fbGFiZWwge1xcXFxuICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xcXFxuICBtYXJnaW4taW5saW5lLWVuZDogMjBweDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUtb3B0aW9uIC5jb250ZXh0LW1lbnUtb3B0aW9uX19zaG9ydGN1dCB7XFxcXG4gIGp1c3RpZnktc2VsZjogZW5kO1xcXFxuICBvcGFjaXR5OiAwLjY7XFxcXG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xcXFxuICBmb250LXNpemU6IDAuN3JlbTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUtb3B0aW9uOmhvdmVyIHtcXFxcbiAgY29sb3I6IHZhcigtLXBvcHVwLWJnLWNvbG9yKTtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2VsZWN0LWhpZ2hsaWdodC1jb2xvcik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbjpob3Zlci5kYW5nZXJvdXMge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmE1MjUyO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmNvbnRleHQtbWVudS1vcHRpb246aG92ZXIuZGFuZ2Vyb3VzIC5jb250ZXh0LW1lbnUtb3B0aW9uX19sYWJlbCB7XFxcXG4gIGNvbG9yOiB2YXIoLS1wb3B1cC1iZy1jb2xvcik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbjpmb2N1cyB7XFxcXG4gIHotaW5kZXg6IDE7XFxcXG59XFxcXG4uZXhjYWxpZHJhdy0tbW9iaWxlLmV4Y2FsaWRyYXcgLmNvbnRleHQtbWVudS1vcHRpb24ge1xcXFxuICBkaXNwbGF5OiBibG9jaztcXFxcbn1cXFxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbiAuY29udGV4dC1tZW51LW9wdGlvbl9fbGFiZWwge1xcXFxuICBtYXJnaW4taW5saW5lLWVuZDogMDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbiAuY29udGV4dC1tZW51LW9wdGlvbl9fc2hvcnRjdXQge1xcXFxuICBkaXNwbGF5OiBub25lO1xcXFxufVxcXFxuXFxcXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbi1zZXBhcmF0b3Ige1xcXFxuICBib3JkZXI6IG5vbmU7XFxcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYWRiNWJkO1xcXFxufVxcXCIsIFxcXCJcXFwiLHtcXFwidmVyc2lvblxcXCI6MyxcXFwic291cmNlc1xcXCI6W1xcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jb21wb25lbnRzL0NvbnRleHRNZW51LnNjc3NcXFwiLFxcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQUFBLGdCQUFnQjtBQ1VoQjtFQUNFLDJDQUFBO0FEUkY7O0FBQUU7RUFDRSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EseUNBQUE7RUFDQSxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSx5QkFBQTtVQUFBLGlCQUFBO0VBQ0EsNkJBQUE7RUFDQSxpQkFBQTtFQUNBLGlEQUFBO0VBQ0Esc0NBQUE7RUFDQSxlQUFBO0FBR0o7QUFBRTtFQUNFLDhCQUFBO0FBRUo7QUFDRTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EsU0FBQTtFQUNBLHFDQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLDZCQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0VBRUEsYUFBQTtFQUNBLGdDQUFBO0VBQ0EsbUJBQUE7QUFBSjtBQUVJO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0FBQU47QUFJTTtFQUNFLGNFb0JHO0FGdEJYO0FBTUk7RUFDRSxtQkFBQTtFQUNBLHVCQUFBO0FBSk47QUFNSTtFQUNFLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLG9CQUFBO0VBQ0EsaUJBQUE7QUFKTjtBQVFFO0VBQ0UsNEJBQUE7RUFDQSwrQ0FBQTtBQU5KO0FBUUk7RUFJRSx5QkVMSztBRkpYO0FBTU07RUFDRSw0QkFBQTtBQUpSO0FBVUU7RUFDRSxVQUFBO0FBUko7QUFZSTtFQUNFLGNBQUE7QUFWTjtBQVlNO0VBQ0Usb0JBQUE7QUFWUjtBQWFNO0VBQ0UsYUFBQTtBQVhSOztBQWdCRTtFQUNFLFlBQUE7RUFDQSw2QkFBQTtBQWJKXFxcIixcXFwic291cmNlc0NvbnRlbnRcXFwiOltcXFwiQGltcG9ydCBcXFxcXFxcIi4uL2Nzcy92YXJpYWJsZXMubW9kdWxlXFxcXFxcXCI7XFxcXG5cXFxcbi5leGNhbGlkcmF3IHtcXFxcbiAgLmNvbnRleHQtbWVudSB7XFxcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcXFxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcXFxcbiAgICBib3gtc2hhZG93OiAwIDNweCAxMHB4IHRyYW5zcGFyZW50aXplKCRvYy1ibGFjaywgMC44KTtcXFxcbiAgICBwYWRkaW5nOiAwO1xcXFxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XFxcXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxcXG4gICAgbWFyZ2luOiAtMC4yNXJlbSAwIDAgMC4xMjVyZW07XFxcXG4gICAgcGFkZGluZzogMC41cmVtIDA7XFxcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcG9wdXAtc2Vjb25kYXJ5LWJnLWNvbG9yKTtcXFxcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24tZ3JheS0zKTtcXFxcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XFxcXG4gIH1cXFxcblxcXFxuICAuY29udGV4dC1tZW51IGJ1dHRvbiB7XFxcXG4gICAgY29sb3I6IHZhcigtLXBvcHVwLXRleHQtY29sb3IpO1xcXFxuICB9XFxcXG5cXFxcbiAgLmNvbnRleHQtbWVudS1vcHRpb24ge1xcXFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXFxcbiAgICB3aWR0aDogMTAwJTtcXFxcbiAgICBtaW4td2lkdGg6IDkuNXJlbTtcXFxcbiAgICBtYXJnaW46IDA7XFxcXG4gICAgcGFkZGluZzogMC4yNXJlbSAxcmVtIDAuMjVyZW0gMS4yNXJlbTtcXFxcbiAgICB0ZXh0LWFsaWduOiBzdGFydDtcXFxcbiAgICBib3JkZXItcmFkaXVzOiAwO1xcXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcXFxuICAgIGJvcmRlcjogbm9uZTtcXFxcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcXFxuXFxcXG4gICAgZGlzcGxheTogZ3JpZDtcXFxcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAwLjJmcjtcXFxcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuXFxcXG4gICAgJi5jaGVja21hcms6OmJlZm9yZSB7XFxcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gICAgICBsZWZ0OiA2cHg7XFxcXG4gICAgICBtYXJnaW4tYm90dG9tOiAxcHg7XFxcXG4gICAgICBjb250ZW50OiBcXFxcXFxcIlxcXFxcXFxcMjcxM1xcXFxcXFwiO1xcXFxuICAgIH1cXFxcblxcXFxuICAgICYuZGFuZ2Vyb3VzIHtcXFxcbiAgICAgIC5jb250ZXh0LW1lbnUtb3B0aW9uX19sYWJlbCB7XFxcXG4gICAgICAgIGNvbG9yOiAkb2MtcmVkLTc7XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgLmNvbnRleHQtbWVudS1vcHRpb25fX2xhYmVsIHtcXFxcbiAgICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XFxcXG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogMjBweDtcXFxcbiAgICB9XFxcXG4gICAgLmNvbnRleHQtbWVudS1vcHRpb25fX3Nob3J0Y3V0IHtcXFxcbiAgICAgIGp1c3RpZnktc2VsZjogZW5kO1xcXFxuICAgICAgb3BhY2l0eTogMC42O1xcXFxuICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XFxcXG4gICAgICBmb250LXNpemU6IDAuN3JlbTtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAuY29udGV4dC1tZW51LW9wdGlvbjpob3ZlciB7XFxcXG4gICAgY29sb3I6IHZhcigtLXBvcHVwLWJnLWNvbG9yKTtcXFxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWxlY3QtaGlnaGxpZ2h0LWNvbG9yKTtcXFxcblxcXFxuICAgICYuZGFuZ2Vyb3VzIHtcXFxcbiAgICAgIC5jb250ZXh0LW1lbnUtb3B0aW9uX19sYWJlbCB7XFxcXG4gICAgICAgIGNvbG9yOiB2YXIoLS1wb3B1cC1iZy1jb2xvcik7XFxcXG4gICAgICB9XFxcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2MtcmVkLTY7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLmNvbnRleHQtbWVudS1vcHRpb246Zm9jdXMge1xcXFxuICAgIHotaW5kZXg6IDE7XFxcXG4gIH1cXFxcblxcXFxuICBAaW5jbHVkZSBpc01vYmlsZSB7XFxcXG4gICAgLmNvbnRleHQtbWVudS1vcHRpb24ge1xcXFxuICAgICAgZGlzcGxheTogYmxvY2s7XFxcXG5cXFxcbiAgICAgIC5jb250ZXh0LW1lbnUtb3B0aW9uX19sYWJlbCB7XFxcXG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xcXFxuICAgICAgfVxcXFxuXFxcXG4gICAgICAuY29udGV4dC1tZW51LW9wdGlvbl9fc2hvcnRjdXQge1xcXFxuICAgICAgICBkaXNwbGF5OiBub25lO1xcXFxuICAgICAgfVxcXFxuICAgIH1cXFxcbiAgfVxcXFxuXFxcXG4gIC5jb250ZXh0LW1lbnUtb3B0aW9uLXNlcGFyYXRvciB7XFxcXG4gICAgYm9yZGVyOiBub25lO1xcXFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkb2MtZ3JheS01O1xcXFxuICB9XFxcXG59XFxcXG5cXFwiLFxcXCJAaW1wb3J0IFxcXFxcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFxcXFxcIjtcXFxcblxcXFxuQG1peGluIGlzTW9iaWxlKCkge1xcXFxuICBAYXQtcm9vdCAuZXhjYWxpZHJhdy0tbW9iaWxlI3smfSB7XFxcXG4gICAgQGNvbnRlbnQ7XFxcXG4gIH1cXFxcbn1cXFxcblxcXFxuJHRoZW1lLWZpbHRlcjogXFxcXFxcXCJpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZylcXFxcXFxcIjtcXFxcblxcXFxuOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiB1bnF1b3RlKCR0aGVtZS1maWx0ZXIpO1xcXFxufVxcXFxuXFxcIixcXFwiLy9cXFxcbi8vXFxcXG4vLyAgXHVEODM1XHVEREQ2IFx1RDgzNVx1RERFMiBcdUQ4MzVcdUREREYgXHVEODM1XHVEREUyIFx1RDgzNVx1RERFNVxcXFxuLy8gIHYgMS45LjFcXFxcbi8vXFxcXG4vLyAgXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXFxcXG5cXFxcblxcXFxuLy8gIEdlbmVyYWxcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXdoaXRlOiAgICAgICAgICNmZmZmZmY7XFxcXG4kb2MtYmxhY2s6ICAgICAgICAgIzAwMDAwMDtcXFxcblxcXFxuXFxcXG4vLyAgR3JheVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JheS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjhmOWZhLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2YxZjNmNSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNlOWVjZWYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZGVlMmU2LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2NlZDRkYSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNhZGI1YmQsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjODY4ZTk2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzQ5NTA1NyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMzNDNhNDAsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMjEyNTI5XFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JheS0wOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTE6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0zOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTQ6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS02OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTc6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktODogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS05OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgUmVkXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1yZWQtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjVmNSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmUzZTMsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZjOWM5LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmYThhOCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZjg3ODcsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmY2YjZiLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZhNTI1MixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmMDNlM2UsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZTAzMTMxLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2M5MmEyYVxcXFxuKTtcXFxcblxcXFxuJG9jLXJlZC0wOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0xOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0yOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0zOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC00OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC01OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC02OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC03OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC04OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC05OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBQaW5rXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1waW5rLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmYwZjYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZkZWViLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZjYzJkNyxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmYWEyYzEsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZjc4M2FjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2YwNjU5NSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNlNjQ5ODAsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZDYzMzZjLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2MyMjU1YyxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNhNjFlNGRcXFxcbik7XFxcXG5cXFxcbiRvYy1waW5rLTA6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtcGluay0yOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTM6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtcGluay01OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTY6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtcGluay04OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTk6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBHcmFwZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JhcGUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y4ZjBmYyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmM2Q5ZmEsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZWViZWZhLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2U1OTlmNyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNkYTc3ZjIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjY2M1ZGU4LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2JlNGJkYixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNhZTNlYzksXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjOWMzNmI1LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzg2MmU5Y1xcXFxuKTtcXFxcblxcXFxuJG9jLWdyYXBlLTA6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0xOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTM6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS00OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTY6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS03OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtODogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTk6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgVmlvbGV0XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy12aW9sZXQtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2YzZjBmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNlNWRiZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZDBiZmZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2IxOTdmYyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM5Nzc1ZmEsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjODQ1ZWY3LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzc5NTBmMixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM3MDQ4ZTgsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjNjc0MWQ5LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzVmM2RjNFxcXFxuKTtcXFxcblxcXFxuJG9jLXZpb2xldC0wOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0xOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0yOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0zOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC00OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC01OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC02OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC03OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC04OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC05OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBJbmRpZ29cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWluZGlnby1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZWRmMmZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2RiZTRmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNiYWM4ZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjOTFhN2ZmLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzc0OGZmYyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM1YzdjZmEsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNGM2ZWY1LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzQyNjNlYixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMzYjViZGIsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMzY0ZmM3XFxcXG4pO1xcXFxuXFxcXG4kb2MtaW5kaWdvLTA6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTE6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTI6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTM6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTQ6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTU6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTY6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTc6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTg6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTk6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEJsdWVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWJsdWUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2U3ZjVmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkMGViZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYTVkOGZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzc0YzBmYyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM0ZGFiZjcsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMzM5YWYwLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzIyOGJlNixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMxYzdlZDYsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMTk3MWMyLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzE4NjRhYlxcXFxuKTtcXFxcblxcXFxuJG9jLWJsdWUtMDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0xOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTI6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS00OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTU6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS03OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTg6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtOTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEN5YW5cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWN5YW4tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2UzZmFmYyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNjNWY2ZmEsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjOTllOWYyLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzY2ZDllOCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICMzYmM5ZGIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMjJiOGNmLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzE1YWFiZixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMxMDk4YWQsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMGM4NTk5LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzBiNzI4NVxcXFxuKTtcXFxcblxcXFxuJG9jLWN5YW4tMDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0xOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTI6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi00OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTU6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi03OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTg6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tOTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFRlYWxcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXRlYWwtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2U2ZmNmNSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNjM2ZhZTgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjOTZmMmQ3LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzYzZTZiZSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICMzOGQ5YTksXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMjBjOTk3LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzEyYjg4NixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMwY2E2NzgsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMDk5MjY4LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzA4N2Y1YlxcXFxuKTtcXFxcblxcXFxuJG9jLXRlYWwtMDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0xOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTI6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC00OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTU6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC03OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTg6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtOTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEdyZWVuXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmVlbi1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZWJmYmVlLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2QzZjlkOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNiMmYyYmIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjOGNlOTlhLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzY5ZGI3YyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM1MWNmNjYsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNDBjMDU3LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzM3YjI0ZCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMyZjllNDQsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMmI4YTNlXFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JlZW4tMDogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTE6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0yOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMzogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTQ6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi01OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNjogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTc6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi04OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tOTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBMaW1lXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1saW1lLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmNGZjZTMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZTlmYWM4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2Q4ZjVhMixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNjMGViNzUsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjYTllMzRiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzk0ZDgyZCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM4MmM5MWUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNzRiODE2LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzY2YTgwZixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM1Yzk0MGRcXFxcbik7XFxcXG5cXFxcbiRvYy1saW1lLTA6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0yOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTM6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtbGltZS01OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTY6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtbGltZS04OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTk6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBZZWxsb3dcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXllbGxvdy1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmOWRiLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZjNiZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmVjOTksXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZlMDY2LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmZDQzYixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmY2M0MTksXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmFiMDA1LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Y1OWYwMCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNmMDhjMDAsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjZTY3NzAwXFxcXG4pO1xcXFxuXFxcXG4kb2MteWVsbG93LTA6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTE6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTI6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTM6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTQ6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTU6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTY6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTc6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTg6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTk6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIE9yYW5nZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2Mtb3JhbmdlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY0ZTYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZlOGNjLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmZDhhOCxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmMwNzgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmZhOTRkLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZmOTIyYixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmZDdlMTQsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjc2NzA3LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2U4NTkwYyxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNkOTQ4MGZcXFxcbik7XFxcXG5cXFxcbiRvYy1vcmFuZ2UtMDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtODogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtOTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQ29sb3IgbGlzdFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtY29sb3Itc3BlY3RydW06ICAgOTtcXFxcblxcXFxuJG9jLWNvbG9yLWxpc3Q6IChcXFxcbiAgJG9jLWdyYXktbGlzdDogICAgICBcXFxcXFxcImdyYXlcXFxcXFxcIixcXFxcbiAgJG9jLXJlZC1saXN0OiAgICAgIFxcXFxcXFwicmVkXFxcXFxcXCIsXFxcXG4gICRvYy1waW5rLWxpc3Q6ICAgICAgXFxcXFxcXCJwaW5rXFxcXFxcXCIsXFxcXG4gICRvYy1ncmFwZS1saXN0OiAgICAgIFxcXFxcXFwiZ3JhcGVcXFxcXFxcIixcXFxcbiAgJG9jLXZpb2xldC1saXN0OiAgICAgIFxcXFxcXFwidmlvbGV0XFxcXFxcXCIsXFxcXG4gICRvYy1pbmRpZ28tbGlzdDogICAgICBcXFxcXFxcImluZGlnb1xcXFxcXFwiLFxcXFxuICAkb2MtYmx1ZS1saXN0OiAgICAgIFxcXFxcXFwiYmx1ZVxcXFxcXFwiLFxcXFxuICAkb2MtY3lhbi1saXN0OiAgICAgIFxcXFxcXFwiY3lhblxcXFxcXFwiLFxcXFxuICAkb2MtdGVhbC1saXN0OiAgICAgIFxcXFxcXFwidGVhbFxcXFxcXFwiLFxcXFxuICAkb2MtZ3JlZW4tbGlzdDogICAgICBcXFxcXFxcImdyZWVuXFxcXFxcXCIsXFxcXG4gICRvYy1saW1lLWxpc3Q6ICAgICAgXFxcXFxcXCJsaW1lXFxcXFxcXCIsXFxcXG4gICRvYy15ZWxsb3ctbGlzdDogICAgICBcXFxcXFxcInllbGxvd1xcXFxcXFwiLFxcXFxuICAkb2Mtb3JhbmdlLWxpc3Q6ICAgICAgXFxcXFxcXCJvcmFuZ2VcXFxcXFxcIlxcXFxuKTtcXFxcblxcXCJdLFxcXCJzb3VyY2VSb290XFxcIjpcXFwiXFxcIn1dKTtcXG4vLyBFeHBvcnRzXFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9IChfX19DU1NfTE9BREVSX0VYUE9SVF9fXyk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUwyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk5dWIyUmxYMjF2WkhWc1pYTXZjMkZ6Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpNHZMaTR2WTI5dGNHOXVaVzUwY3k5RGIyNTBaWGgwVFdWdWRTNXpZM056TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPMEZCUVVFN1FVRkRPRWc3UVVGRGFrSTdRVUZETjBjc09FSkJRVGhDTEhWSFFVRXlRaXhEUVVGRExHZElRVUZ4UXp0QlFVTXZSanRCUVVOQkxEWkVRVUUyUkN4WFFVRlhMR2RFUVVGblJDeEhRVUZITEN0Q1FVRXJRaXgxUWtGQmRVSXNkVUpCUVhWQ0xEaERRVUU0UXl4bFFVRmxMSEZDUVVGeFFpdzRRa0ZCT0VJc09FSkJRVGhDTEd0RFFVRnJReXh6UWtGQmMwSXNjMFJCUVhORUxESkRRVUV5UXl4dlFrRkJiMElzUjBGQlJ5eHZRMEZCYjBNc2JVTkJRVzFETEVkQlFVY3NiME5CUVc5RExIVkNRVUYxUWl4blFrRkJaMElzYzBKQlFYTkNMR05CUVdNc01FTkJRVEJETEhOQ1FVRnpRaXh4UWtGQmNVSXNhME5CUVd0RExHbENRVUZwUWl4M1FrRkJkMElzYTBKQlFXdENMSEZEUVVGeFF5eDNRa0ZCZDBJc1IwRkJSeXh6UkVGQmMwUXNkVUpCUVhWQ0xHTkJRV01zZFVKQlFYVkNMRzFDUVVGdFFpeEhRVUZITERCRlFVRXdSU3h0UWtGQmJVSXNSMEZCUnl4blJVRkJaMFVzZDBKQlFYZENMRFJDUVVFMFFpeEhRVUZITEcxRlFVRnRSU3h6UWtGQmMwSXNhVUpCUVdsQ0xIbENRVUY1UWl4elFrRkJjMElzUjBGQlJ5d3dRMEZCTUVNc2FVTkJRV2xETEc5RVFVRnZSQ3hIUVVGSExHOUVRVUZ2UkN3NFFrRkJPRUlzUjBGQlJ5eG5Sa0ZCWjBZc2FVTkJRV2xETEVkQlFVY3NNRU5CUVRCRExHVkJRV1VzUjBGQlJ5eDFSRUZCZFVRc2JVSkJRVzFDTEVkQlFVY3NiVVpCUVcxR0xIbENRVUY1UWl4SFFVRkhMSE5HUVVGelJpeHJRa0ZCYTBJc1IwRkJSeXhuUkVGQlowUXNhVUpCUVdsQ0xHdERRVUZyUXl4SFFVRkhMRTlCUVU4c2QwNUJRWGRPTEUxQlFVMHNWMEZCVnl4TlFVRk5MRXRCUVVzc1YwRkJWeXhYUVVGWExGZEJRVmNzVlVGQlZTeFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExGVkJRVlVzUzBGQlN5eExRVUZMTEZkQlFWY3NTMEZCU3l4TFFVRkxMRmRCUVZjc1ZVRkJWU3hYUVVGWExGVkJRVlVzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4VlFVRlZMRmRCUVZjc1ZVRkJWU3hYUVVGWExGZEJRVmNzUzBGQlN5eExRVUZMTEZkQlFWY3NWVUZCVlN4WFFVRlhMRlZCUVZVc1MwRkJTeXhMUVVGTExGZEJRVmNzVFVGQlRTeExRVUZMTEZkQlFWY3NWMEZCVnl4TFFVRkxMRXRCUVVzc1YwRkJWeXhWUVVGVkxGZEJRVmNzVjBGQlZ5eExRVUZMTEV0QlFVc3NWMEZCVnl4WFFVRlhMRXRCUVVzc1MwRkJTeXhYUVVGWExFdEJRVXNzUzBGQlN5eFhRVUZYTEV0QlFVc3NTMEZCU3l4VlFVRlZMRXRCUVVzc1MwRkJTeXhWUVVGVkxFdEJRVXNzUzBGQlN5eFhRVUZYTEV0QlFVc3NTMEZCU3l4VlFVRlZMRTFCUVUwc1RVRkJUU3hWUVVGVkxGZEJRVmNzTmtSQlFUWkVMR2xDUVVGcFFpeHRRa0ZCYlVJc2VVSkJRWGxDTEhsQ1FVRjVRaXcwUkVGQk5FUXNhVUpCUVdsQ0xIVkNRVUYxUWl4M1FrRkJkMElzYjBOQlFXOURMSGRDUVVGM1FpeDNSRUZCZDBRc05rTkJRVFpETEhOQ1FVRnpRaXhMUVVGTExEUkNRVUUwUWl4eFEwRkJjVU1zUzBGQlN5dzBRa0ZCTkVJc2VVSkJRWGxDTEd0Q1FVRnJRaXgzUWtGQmQwSXNaMEpCUVdkQ0xEUkRRVUUwUXl4M1FrRkJkMElzZFVKQlFYVkNMRzlEUVVGdlF5eHRRa0ZCYlVJc01FSkJRVEJDTEhOQ1FVRnpRaXgxUTBGQmRVTXNNRUpCUVRCQ0xEWkNRVUUyUWl3eVFrRkJNa0lzYTBKQlFXdENMREpDUVVFeVFpdzBRa0ZCTkVJc1QwRkJUeXh4UWtGQmNVSXNjVU5CUVhGRExESkNRVUV5UWl4VFFVRlRMRTlCUVU4c2NVTkJRWEZETERSQ1FVRTBRaXhuUTBGQlowTXNUMEZCVHl4elEwRkJjME1zTUVKQlFUQkNMSEZDUVVGeFFpdzJRa0ZCTmtJc01FSkJRVEJDTEU5QlFVOHNTMEZCU3l4clEwRkJhME1zYlVOQlFXMURMSE5FUVVGelJDeHhRa0ZCY1VJc2NVTkJRWEZETEhWRFFVRjFReXhUUVVGVExHOURRVUZ2UXl4UFFVRlBMRXRCUVVzc2EwTkJRV3RETEdsQ1FVRnBRaXhMUVVGTExIbENRVUY1UWl3MFFrRkJORUlzZFVKQlFYVkNMSFZEUVVGMVF5d3JRa0ZCSzBJc1UwRkJVeXd3UTBGQk1FTXNkMEpCUVhkQ0xGTkJRVk1zVDBGQlR5eExRVUZMTEhORFFVRnpReXh0UWtGQmJVSXNkVU5CUVhWRExFdEJRVXNzUjBGQlJ5dzBRMEZCTkVNc2RVSkJRWFZDTEd0RFFVRnJReXhKUVVGSkxHVkJRV1VzUzBGQlN5eEhRVUZITEhORVFVRnpSQ3hoUVVGaExIZERRVUYzUXl4SFFVRkhMR3RNUVVGclRDdzJRa0ZCTmtJc05GRkJRVFJSTERoRFFVRTRReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXd3VVVGQk1GRXNORU5CUVRSRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc01FTkJRVEJETERCRFFVRXdReXd3UTBGQk1FTXNNRU5CUVRCRExEUlJRVUUwVVN3NFEwRkJPRU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zT0ZGQlFUaFJMR2RFUVVGblJDdzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5eG5Va0ZCWjFJc2EwUkJRV3RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkU1FVRm5VaXhyUkVGQmEwUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNORkZCUVRSUkxEaERRVUU0UXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFVVRkJORkVzT0VOQlFUaERMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJSUVVFMFVTdzRRMEZCT0VNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc09GRkJRVGhSTEdkRVFVRm5SQ3c0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXcwVVVGQk5GRXNPRU5CUVRoRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExHZFNRVUZuVWl4clJFRkJhMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjFKQlFXZFNMR3RFUVVGclJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeDVSa0ZCZVVZc2RXUkJRWFZrTEhGQ1FVRnhRanRCUVVNdmVXVTdRVUZEUVN4cFJVRkJaU3gxUWtGQmRVSXNSVUZCUXlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWpiMjF3YjI1bGJuUnpMME52Ym5SbGVIUk5aVzUxTG5OamMzTS9ZVFl6TlNKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZMeUJKYlhCdmNuUnpYRzVwYlhCdmNuUWdYMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZVMDlWVWtORlRVRlFYMGxOVUU5U1ZGOWZYeUJtY205dElGd2lMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwzSjFiblJwYldVdmMyOTFjbU5sVFdGd2N5NXFjMXdpTzF4dWFXMXdiM0owSUY5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDBsTlVFOVNWRjlmWHlCbWNtOXRJRndpTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZZWEJwTG1welhDSTdYRzUyWVhJZ1gxOWZRMU5UWDB4UFFVUkZVbDlGV0ZCUFVsUmZYMThnUFNCZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5SlRWQlBVbFJmWDE4b1gxOWZRMU5UWDB4UFFVUkZVbDlCVUVsZlUwOVZVa05GVFVGUVgwbE5VRTlTVkY5Zlh5azdYRzR2THlCTmIyUjFiR1ZjYmw5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZMbkIxYzJnb1cyMXZaSFZzWlM1cFpDd2dYQ0pBWTJoaGNuTmxkQ0JjWEZ3aVZWUkdMVGhjWEZ3aU8xeGNianBsZUhCdmNuUWdlMXhjYmlBZ2RHaGxiV1ZHYVd4MFpYSTZJR2x1ZG1WeWRDZzVNeVVwSUdoMVpTMXliM1JoZEdVb01UZ3daR1ZuS1R0Y1hHNTlYRnh1WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbU52Ym5SbGVIUXRiV1Z1ZFNCN1hGeHVJQ0J3YjNOcGRHbHZiam9nY21Wc1lYUnBkbVU3WEZ4dUlDQmliM0prWlhJdGNtRmthWFZ6T2lBMGNIZzdYRnh1SUNCaWIzZ3RjMmhoWkc5M09pQXdJRE53ZUNBeE1IQjRJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHlLVHRjWEc0Z0lIQmhaR1JwYm1jNklEQTdYRnh1SUNCc2FYTjBMWE4wZVd4bE9pQnViMjVsTzF4Y2JpQWdMWGRsWW10cGRDMTFjMlZ5TFhObGJHVmpkRG9nYm05dVpUdGNYRzRnSUNBZ0lDQWdJQ0FnZFhObGNpMXpaV3hsWTNRNklHNXZibVU3WEZ4dUlDQnRZWEpuYVc0NklDMHdMakkxY21WdElEQWdNQ0F3TGpFeU5YSmxiVHRjWEc0Z0lIQmhaR1JwYm1jNklEQXVOWEpsYlNBd08xeGNiaUFnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRjRzl3ZFhBdGMyVmpiMjVrWVhKNUxXSm5MV052Ykc5eUtUdGNYRzRnSUdKdmNtUmxjam9nTVhCNElITnZiR2xrSUhaaGNpZ3RMV0oxZEhSdmJpMW5jbUY1TFRNcE8xeGNiaUFnWTNWeWMyOXlPaUJrWldaaGRXeDBPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1WTI5dWRHVjRkQzF0Wlc1MUlHSjFkSFJ2YmlCN1hGeHVJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGNHOXdkWEF0ZEdWNGRDMWpiMnh2Y2lrN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNWpiMjUwWlhoMExXMWxiblV0YjNCMGFXOXVJSHRjWEc0Z0lIQnZjMmwwYVc5dU9pQnlaV3hoZEdsMlpUdGNYRzRnSUhkcFpIUm9PaUF4TURBbE8xeGNiaUFnYldsdUxYZHBaSFJvT2lBNUxqVnlaVzA3WEZ4dUlDQnRZWEpuYVc0NklEQTdYRnh1SUNCd1lXUmthVzVuT2lBd0xqSTFjbVZ0SURGeVpXMGdNQzR5TlhKbGJTQXhMakkxY21WdE8xeGNiaUFnZEdWNGRDMWhiR2xuYmpvZ2MzUmhjblE3WEZ4dUlDQmliM0prWlhJdGNtRmthWFZ6T2lBd08xeGNiaUFnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZEhKaGJuTndZWEpsYm5RN1hGeHVJQ0JpYjNKa1pYSTZJRzV2Ym1VN1hGeHVJQ0IzYUdsMFpTMXpjR0ZqWlRvZ2JtOTNjbUZ3TzF4Y2JpQWdaR2x6Y0d4aGVUb2daM0pwWkR0Y1hHNGdJR2R5YVdRdGRHVnRjR3hoZEdVdFkyOXNkVzF1Y3pvZ01XWnlJREF1TW1aeU8xeGNiaUFnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xtTnZiblJsZUhRdGJXVnVkUzF2Y0hScGIyNHVZMmhsWTJ0dFlYSnJPanBpWldadmNtVWdlMXhjYmlBZ2NHOXphWFJwYjI0NklHRmljMjlzZFhSbE8xeGNiaUFnYkdWbWREb2dObkI0TzF4Y2JpQWdiV0Z5WjJsdUxXSnZkSFJ2YlRvZ01YQjRPMXhjYmlBZ1kyOXVkR1Z1ZERvZ1hGeGNJdUtjazF4Y1hDSTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVqYjI1MFpYaDBMVzFsYm5VdGIzQjBhVzl1TG1SaGJtZGxjbTkxY3lBdVkyOXVkR1Y0ZEMxdFpXNTFMVzl3ZEdsdmJsOWZiR0ZpWld3Z2UxeGNiaUFnWTI5c2IzSTZJQ05tTURObE0yVTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVqYjI1MFpYaDBMVzFsYm5VdGIzQjBhVzl1SUM1amIyNTBaWGgwTFcxbGJuVXRiM0IwYVc5dVgxOXNZV0psYkNCN1hGeHVJQ0JxZFhOMGFXWjVMWE5sYkdZNklITjBZWEowTzF4Y2JpQWdiV0Z5WjJsdUxXbHViR2x1WlMxbGJtUTZJREl3Y0hnN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNWpiMjUwWlhoMExXMWxiblV0YjNCMGFXOXVJQzVqYjI1MFpYaDBMVzFsYm5VdGIzQjBhVzl1WDE5emFHOXlkR04xZENCN1hGeHVJQ0JxZFhOMGFXWjVMWE5sYkdZNklHVnVaRHRjWEc0Z0lHOXdZV05wZEhrNklEQXVOanRjWEc0Z0lHWnZiblF0Wm1GdGFXeDVPaUJwYm1obGNtbDBPMXhjYmlBZ1ptOXVkQzF6YVhwbE9pQXdMamR5WlcwN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNWpiMjUwWlhoMExXMWxiblV0YjNCMGFXOXVPbWh2ZG1WeUlIdGNYRzRnSUdOdmJHOXlPaUIyWVhJb0xTMXdiM0IxY0MxaVp5MWpiMnh2Y2lrN1hGeHVJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXpaV3hsWTNRdGFHbG5hR3hwWjJoMExXTnZiRzl5S1R0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xtTnZiblJsZUhRdGJXVnVkUzF2Y0hScGIyNDZhRzkyWlhJdVpHRnVaMlZ5YjNWeklIdGNYRzRnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVlUVXlOVEk3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1amIyNTBaWGgwTFcxbGJuVXRiM0IwYVc5dU9taHZkbVZ5TG1SaGJtZGxjbTkxY3lBdVkyOXVkR1Y0ZEMxdFpXNTFMVzl3ZEdsdmJsOWZiR0ZpWld3Z2UxeGNiaUFnWTI5c2IzSTZJSFpoY2lndExYQnZjSFZ3TFdKbkxXTnZiRzl5S1R0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xtTnZiblJsZUhRdGJXVnVkUzF2Y0hScGIyNDZabTlqZFhNZ2UxeGNiaUFnZWkxcGJtUmxlRG9nTVR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjdExXMXZZbWxzWlM1bGVHTmhiR2xrY21GM0lDNWpiMjUwWlhoMExXMWxiblV0YjNCMGFXOXVJSHRjWEc0Z0lHUnBjM0JzWVhrNklHSnNiMk5yTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHkwdGJXOWlhV3hsTG1WNFkyRnNhV1J5WVhjZ0xtTnZiblJsZUhRdGJXVnVkUzF2Y0hScGIyNGdMbU52Ym5SbGVIUXRiV1Z1ZFMxdmNIUnBiMjVmWDJ4aFltVnNJSHRjWEc0Z0lHMWhjbWRwYmkxcGJteHBibVV0Wlc1a09pQXdPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeTB0Ylc5aWFXeGxMbVY0WTJGc2FXUnlZWGNnTG1OdmJuUmxlSFF0YldWdWRTMXZjSFJwYjI0Z0xtTnZiblJsZUhRdGJXVnVkUzF2Y0hScGIyNWZYM05vYjNKMFkzVjBJSHRjWEc0Z0lHUnBjM0JzWVhrNklHNXZibVU3WEZ4dWZWeGNibHhjYmk1bGVHTmhiR2xrY21GM0lDNWpiMjUwWlhoMExXMWxiblV0YjNCMGFXOXVMWE5sY0dGeVlYUnZjaUI3WEZ4dUlDQmliM0prWlhJNklHNXZibVU3WEZ4dUlDQmliM0prWlhJdGRHOXdPaUF4Y0hnZ2MyOXNhV1FnSTJGa1lqVmlaRHRjWEc1OVhDSXNJRndpWENJc2Uxd2lkbVZ5YzJsdmJsd2lPak1zWENKemIzVnlZMlZ6WENJNlcxd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlEYjI1MFpYaDBUV1Z1ZFM1elkzTnpYQ0lzWENKM1pXSndZV05yT2k4dkxpOHVMaTh1TGk5amMzTXZkbUZ5YVdGaWJHVnpMbTF2WkhWc1pTNXpZM056WENJc1hDSjNaV0p3WVdOck9pOHZMaTh1TGk4dUxpOHVMaTl1YjJSbFgyMXZaSFZzWlhNdmIzQmxiaTFqYjJ4dmNpOXZjR1Z1TFdOdmJHOXlMbk5qYzNOY0lsMHNYQ0p1WVcxbGMxd2lPbHRkTEZ3aWJXRndjR2x1WjNOY0lqcGNJa0ZCUVVFc1owSkJRV2RDTzBGRFZXaENPMFZCUTBVc01rTkJRVUU3UVVSU1JqczdRVUZCUlR0RlFVTkZMR3RDUVVGQk8wVkJRMEVzYTBKQlFVRTdSVUZEUVN4NVEwRkJRVHRGUVVOQkxGVkJRVUU3UlVGRFFTeG5Ra0ZCUVR0RlFVTkJMSGxDUVVGQk8xVkJRVUVzYVVKQlFVRTdSVUZEUVN3MlFrRkJRVHRGUVVOQkxHbENRVUZCTzBWQlEwRXNhVVJCUVVFN1JVRkRRU3h6UTBGQlFUdEZRVU5CTEdWQlFVRTdRVUZIU2p0QlFVRkZPMFZCUTBVc09FSkJRVUU3UVVGRlNqdEJRVU5GTzBWQlEwVXNhMEpCUVVFN1JVRkRRU3hYUVVGQk8wVkJRMEVzYVVKQlFVRTdSVUZEUVN4VFFVRkJPMFZCUTBFc2NVTkJRVUU3UlVGRFFTeHBRa0ZCUVR0RlFVTkJMR2RDUVVGQk8wVkJRMEVzTmtKQlFVRTdSVUZEUVN4WlFVRkJPMFZCUTBFc2JVSkJRVUU3UlVGRlFTeGhRVUZCTzBWQlEwRXNaME5CUVVFN1JVRkRRU3h0UWtGQlFUdEJRVUZLTzBGQlJVazdSVUZEUlN4clFrRkJRVHRGUVVOQkxGTkJRVUU3UlVGRFFTeHJRa0ZCUVR0RlFVTkJMRmxCUVVFN1FVRkJUanRCUVVsTk8wVkJRMFVzWTBWdlFrYzdRVVowUWxnN1FVRk5TVHRGUVVORkxHMUNRVUZCTzBWQlEwRXNkVUpCUVVFN1FVRktUanRCUVUxSk8wVkJRMFVzYVVKQlFVRTdSVUZEUVN4WlFVRkJPMFZCUTBFc2IwSkJRVUU3UlVGRFFTeHBRa0ZCUVR0QlFVcE9PMEZCVVVVN1JVRkRSU3cwUWtGQlFUdEZRVU5CTEN0RFFVRkJPMEZCVGtvN1FVRlJTVHRGUVVsRkxIbENSVXhMTzBGR1NsZzdRVUZOVFR0RlFVTkZMRFJDUVVGQk8wRkJTbEk3UVVGVlJUdEZRVU5GTEZWQlFVRTdRVUZTU2p0QlFWbEpPMFZCUTBVc1kwRkJRVHRCUVZaT08wRkJXVTA3UlVGRFJTeHZRa0ZCUVR0QlFWWlNPMEZCWVUwN1JVRkRSU3hoUVVGQk8wRkJXRkk3TzBGQlowSkZPMFZCUTBVc1dVRkJRVHRGUVVOQkxEWkNRVUZCTzBGQllrcGNJaXhjSW5OdmRYSmpaWE5EYjI1MFpXNTBYQ0k2VzF3aVFHbHRjRzl5ZENCY1hGd2lMaTR2WTNOekwzWmhjbWxoWW14bGN5NXRiMlIxYkdWY1hGd2lPMXhjYmx4Y2JpNWxlR05oYkdsa2NtRjNJSHRjWEc0Z0lDNWpiMjUwWlhoMExXMWxiblVnZTF4Y2JpQWdJQ0J3YjNOcGRHbHZiam9nY21Wc1lYUnBkbVU3WEZ4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEUndlRHRjWEc0Z0lDQWdZbTk0TFhOb1lXUnZkem9nTUNBemNIZ2dNVEJ3ZUNCMGNtRnVjM0JoY21WdWRHbDZaU2drYjJNdFlteGhZMnNzSURBdU9DazdYRnh1SUNBZ0lIQmhaR1JwYm1jNklEQTdYRnh1SUNBZ0lHeHBjM1F0YzNSNWJHVTZJRzV2Ym1VN1hGeHVJQ0FnSUhWelpYSXRjMlZzWldOME9pQnViMjVsTzF4Y2JpQWdJQ0J0WVhKbmFXNDZJQzB3TGpJMWNtVnRJREFnTUNBd0xqRXlOWEpsYlR0Y1hHNGdJQ0FnY0dGa1pHbHVaem9nTUM0MWNtVnRJREE3WEZ4dUlDQWdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExYQnZjSFZ3TFhObFkyOXVaR0Z5ZVMxaVp5MWpiMnh2Y2lrN1hGeHVJQ0FnSUdKdmNtUmxjam9nTVhCNElITnZiR2xrSUhaaGNpZ3RMV0oxZEhSdmJpMW5jbUY1TFRNcE8xeGNiaUFnSUNCamRYSnpiM0k2SUdSbFptRjFiSFE3WEZ4dUlDQjlYRnh1WEZ4dUlDQXVZMjl1ZEdWNGRDMXRaVzUxSUdKMWRIUnZiaUI3WEZ4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxd2IzQjFjQzEwWlhoMExXTnZiRzl5S1R0Y1hHNGdJSDFjWEc1Y1hHNGdJQzVqYjI1MFpYaDBMVzFsYm5VdGIzQjBhVzl1SUh0Y1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4Y2JpQWdJQ0IzYVdSMGFEb2dNVEF3SlR0Y1hHNGdJQ0FnYldsdUxYZHBaSFJvT2lBNUxqVnlaVzA3WEZ4dUlDQWdJRzFoY21kcGJqb2dNRHRjWEc0Z0lDQWdjR0ZrWkdsdVp6b2dNQzR5TlhKbGJTQXhjbVZ0SURBdU1qVnlaVzBnTVM0eU5YSmxiVHRjWEc0Z0lDQWdkR1Y0ZEMxaGJHbG5iam9nYzNSaGNuUTdYRnh1SUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SURBN1hGeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1ME8xeGNiaUFnSUNCaWIzSmtaWEk2SUc1dmJtVTdYRnh1SUNBZ0lIZG9hWFJsTFhOd1lXTmxPaUJ1YjNkeVlYQTdYRnh1WEZ4dUlDQWdJR1JwYzNCc1lYazZJR2R5YVdRN1hGeHVJQ0FnSUdkeWFXUXRkR1Z0Y0d4aGRHVXRZMjlzZFcxdWN6b2dNV1p5SURBdU1tWnlPMXhjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXhjYmx4Y2JpQWdJQ0FtTG1Ob1pXTnJiV0Z5YXpvNlltVm1iM0psSUh0Y1hHNGdJQ0FnSUNCd2IzTnBkR2x2YmpvZ1lXSnpiMngxZEdVN1hGeHVJQ0FnSUNBZ2JHVm1kRG9nTm5CNE8xeGNiaUFnSUNBZ0lHMWhjbWRwYmkxaWIzUjBiMjA2SURGd2VEdGNYRzRnSUNBZ0lDQmpiMjUwWlc1ME9pQmNYRndpWEZ4Y1hESTNNVE5jWEZ3aU8xeGNiaUFnSUNCOVhGeHVYRnh1SUNBZ0lDWXVaR0Z1WjJWeWIzVnpJSHRjWEc0Z0lDQWdJQ0F1WTI5dWRHVjRkQzF0Wlc1MUxXOXdkR2x2Ymw5ZmJHRmlaV3dnZTF4Y2JpQWdJQ0FnSUNBZ1kyOXNiM0k2SUNSdll5MXlaV1F0Tnp0Y1hHNGdJQ0FnSUNCOVhGeHVJQ0FnSUgxY1hHNWNYRzRnSUNBZ0xtTnZiblJsZUhRdGJXVnVkUzF2Y0hScGIyNWZYMnhoWW1Wc0lIdGNYRzRnSUNBZ0lDQnFkWE4wYVdaNUxYTmxiR1k2SUhOMFlYSjBPMXhjYmlBZ0lDQWdJRzFoY21kcGJpMXBibXhwYm1VdFpXNWtPaUF5TUhCNE8xeGNiaUFnSUNCOVhGeHVJQ0FnSUM1amIyNTBaWGgwTFcxbGJuVXRiM0IwYVc5dVgxOXphRzl5ZEdOMWRDQjdYRnh1SUNBZ0lDQWdhblZ6ZEdsbWVTMXpaV3htT2lCbGJtUTdYRnh1SUNBZ0lDQWdiM0JoWTJsMGVUb2dNQzQyTzF4Y2JpQWdJQ0FnSUdadmJuUXRabUZ0YVd4NU9pQnBibWhsY21sME8xeGNiaUFnSUNBZ0lHWnZiblF0YzJsNlpUb2dNQzQzY21WdE8xeGNiaUFnSUNCOVhGeHVJQ0I5WEZ4dVhGeHVJQ0F1WTI5dWRHVjRkQzF0Wlc1MUxXOXdkR2x2Ympwb2IzWmxjaUI3WEZ4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxd2IzQjFjQzFpWnkxamIyeHZjaWs3WEZ4dUlDQWdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExYTmxiR1ZqZEMxb2FXZG9iR2xuYUhRdFkyOXNiM0lwTzF4Y2JseGNiaUFnSUNBbUxtUmhibWRsY205MWN5QjdYRnh1SUNBZ0lDQWdMbU52Ym5SbGVIUXRiV1Z1ZFMxdmNIUnBiMjVmWDJ4aFltVnNJSHRjWEc0Z0lDQWdJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXdiM0IxY0MxaVp5MWpiMnh2Y2lrN1hGeHVJQ0FnSUNBZ2ZWeGNiaUFnSUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklDUnZZeTF5WldRdE5qdGNYRzRnSUNBZ2ZWeGNiaUFnZlZ4Y2JseGNiaUFnTG1OdmJuUmxlSFF0YldWdWRTMXZjSFJwYjI0NlptOWpkWE1nZTF4Y2JpQWdJQ0I2TFdsdVpHVjRPaUF4TzF4Y2JpQWdmVnhjYmx4Y2JpQWdRR2x1WTJ4MVpHVWdhWE5OYjJKcGJHVWdlMXhjYmlBZ0lDQXVZMjl1ZEdWNGRDMXRaVzUxTFc5d2RHbHZiaUI3WEZ4dUlDQWdJQ0FnWkdsemNHeGhlVG9nWW14dlkyczdYRnh1WEZ4dUlDQWdJQ0FnTG1OdmJuUmxlSFF0YldWdWRTMXZjSFJwYjI1ZlgyeGhZbVZzSUh0Y1hHNGdJQ0FnSUNBZ0lHMWhjbWRwYmkxcGJteHBibVV0Wlc1a09pQXdPMXhjYmlBZ0lDQWdJSDFjWEc1Y1hHNGdJQ0FnSUNBdVkyOXVkR1Y0ZEMxdFpXNTFMVzl3ZEdsdmJsOWZjMmh2Y25SamRYUWdlMXhjYmlBZ0lDQWdJQ0FnWkdsemNHeGhlVG9nYm05dVpUdGNYRzRnSUNBZ0lDQjlYRnh1SUNBZ0lIMWNYRzRnSUgxY1hHNWNYRzRnSUM1amIyNTBaWGgwTFcxbGJuVXRiM0IwYVc5dUxYTmxjR0Z5WVhSdmNpQjdYRnh1SUNBZ0lHSnZjbVJsY2pvZ2JtOXVaVHRjWEc0Z0lDQWdZbTl5WkdWeUxYUnZjRG9nTVhCNElITnZiR2xrSUNSdll5MW5jbUY1TFRVN1hGeHVJQ0I5WEZ4dWZWeGNibHdpTEZ3aVFHbHRjRzl5ZENCY1hGd2liM0JsYmkxamIyeHZjaTl2Y0dWdUxXTnZiRzl5TG5OamMzTmNYRndpTzF4Y2JseGNia0J0YVhocGJpQnBjMDF2WW1sc1pTZ3BJSHRjWEc0Z0lFQmhkQzF5YjI5MElDNWxlR05oYkdsa2NtRjNMUzF0YjJKcGJHVWpleVo5SUh0Y1hHNGdJQ0FnUUdOdmJuUmxiblE3WEZ4dUlDQjlYRnh1ZlZ4Y2JseGNiaVIwYUdWdFpTMW1hV3gwWlhJNklGeGNYQ0pwYm5abGNuUW9PVE1sS1NCb2RXVXRjbTkwWVhSbEtERTRNR1JsWnlsY1hGd2lPMXhjYmx4Y2JqcGxlSEJ2Y25RZ2UxeGNiaUFnZEdobGJXVkdhV3gwWlhJNklIVnVjWFZ2ZEdVb0pIUm9aVzFsTFdacGJIUmxjaWs3WEZ4dWZWeGNibHdpTEZ3aUx5OWNYRzR2TDF4Y2JpOHZJQ0R3blplV0lQQ2RsNklnOEoyWG55RHduWmVpSVBDZGw2VmNYRzR2THlBZ2RpQXhMamt1TVZ4Y2JpOHZYRnh1THk4Z0lPS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ1Z4Y2JseGNibHhjYmk4dklDQkhaVzVsY21Gc1hGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTEzYUdsMFpUb2dJQ0FnSUNBZ0lDQWpabVptWm1abU8xeGNiaVJ2WXkxaWJHRmphem9nSUNBZ0lDQWdJQ0FqTURBd01EQXdPMXhjYmx4Y2JseGNiaTh2SUNCSGNtRjVYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxbmNtRjVMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyWTRaamxtWVN4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJZeFpqTm1OU3hjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMlU1WldObFppeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0kyUmxaVEpsTml4Y1hHNGdJRnhjWENJMFhGeGNJam9nSTJObFpEUmtZU3hjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJMkZrWWpWaVpDeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0l6ZzJPR1U1Tml4Y1hHNGdJRnhjWENJM1hGeGNJam9nSXpRNU5UQTFOeXhjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJek0wTTJFME1DeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6SXhNalV5T1Z4Y2JpazdYRnh1WEZ4dUpHOWpMV2R5WVhrdE1Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVEU2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMweU9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3RNem9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRRNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0TmpvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxUYzZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzA0T2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE9Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JTWldSY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMWEpsWkMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tWm1ZMVpqVXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTm1abVV6WlRNc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNObVptTTVZemtzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05tWm1FNFlUZ3NYRnh1SUNCY1hGd2lORnhjWENJNklDTm1aamczT0Rjc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNObVpqWmlObUlzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ05tWVRVeU5USXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTm1NRE5sTTJVc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNObE1ETXhNekVzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ05qT1RKaE1tRmNYRzRwTzF4Y2JseGNiaVJ2WXkxeVpXUXRNRG9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxYSmxaQzB4T2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRJNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE16b2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVFU2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MXlaV1F0TmpvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMWEpsWkMwM09pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUZzZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxeVpXUXRPVG9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUZCcGJtdGNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFhCcGJtc3RiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalptWm1NR1kyTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWm1aa1pXVmlMRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpabU5qTW1RM0xGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBalptRmhNbU14TEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqWmpjNE0yRmpMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpaakEyTlRrMUxGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBalpUWTBPVGd3TEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqWkRZek16WmpMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpZekl5TlRWakxGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBallUWXhaVFJrWEZ4dUtUdGNYRzVjWEc0a2IyTXRjR2x1YXkwd09pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3RNVG9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRJNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MHpPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0TkRvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUVTZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTAyT2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE56b2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVGc2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkwNU9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRWR5WVhCbFhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFuY21Gd1pTMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObU9HWXdabU1zWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05tTTJRNVptRXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTmxaV0psWm1Fc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNObE5UazVaamNzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ05rWVRjM1pqSXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTmpZelZrWlRnc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNOaVpUUmlaR0lzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ05oWlRObFl6a3NYRnh1SUNCY1hGd2lPRnhjWENJNklDTTVZek0yWWpVc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNNE5qSmxPV05jWEc0cE8xeGNibHhjYmlSdll5MW5jbUZ3WlMwd09pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzB4T2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMwek9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzAwT2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMwMk9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzAzT2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMwNU9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JXYVc5c1pYUmNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFhacGIyeGxkQzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1NMll3Wm1Zc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObE5XUmlabVlzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05rTUdKbVptWXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTmlNVGszWm1Nc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNNNU56YzFabUVzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ000TkRWbFpqY3NYRnh1SUNCY1hGd2lObHhjWENJNklDTTNPVFV3WmpJc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNM01EUTRaVGdzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ00yTnpReFpEa3NYRnh1SUNCY1hGd2lPVnhjWENJNklDTTFaak5rWXpSY1hHNHBPMXhjYmx4Y2JpUnZZeTEyYVc5c1pYUXRNRG9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUSTZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE16b2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMwME9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRVNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0TmpvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzAzT2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVGc2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXRPVG9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lFbHVaR2xuYjF4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRhVzVrYVdkdkxXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJWa1pqSm1aaXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlJpWlRSbVppeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kySmhZemhtWml4Y1hHNGdJRnhjWENJelhGeGNJam9nSXpreFlUZG1aaXhjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJemMwT0dabVl5eGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0l6VmpOMk5tWVN4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpSak5tVm1OU3hjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJelF5TmpObFlpeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6TmlOV0prWWl4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpNMk5HWmpOMXhjYmlrN1hGeHVYRnh1Skc5akxXbHVaR2xuYnkwd09pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRFNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0TWpvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTB6T2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVFE2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHROVG9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MDJPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUYzZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE9Eb2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkwNU9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnUW14MVpWeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10WW14MVpTMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObE4yWTFabVlzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05rTUdWaVptWXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTmhOV1E0Wm1Zc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNNM05HTXdabU1zWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ00wWkdGaVpqY3NYRnh1SUNCY1hGd2lOVnhjWENJNklDTXpNemxoWmpBc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNNeU1qaGlaVFlzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ014WXpkbFpEWXNYRnh1SUNCY1hGd2lPRnhjWENJNklDTXhPVGN4WXpJc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNeE9EWTBZV0pjWEc0cE8xeGNibHhjYmlSdll5MWliSFZsTFRBNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10WW14MVpTMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0TWpvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUTTZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzAwT2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE5Ub2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVFk2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMwM09pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXRPRG9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRrNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdRM2xoYmx4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRZM2xoYmkxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05sTTJaaFptTXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTmpOV1kyWm1Fc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNNNU9XVTVaaklzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ00yTm1RNVpUZ3NYRnh1SUNCY1hGd2lORnhjWENJNklDTXpZbU01WkdJc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNNeU1tSTRZMllzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ014TldGaFltWXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTXhNRGs0WVdRc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNd1l6ZzFPVGtzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ013WWpjeU9EVmNYRzRwTzF4Y2JseGNiaVJ2WXkxamVXRnVMVEE2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkweE9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHRNam9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRNNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0TlRvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxUWTZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTAzT2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE9Eb2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVGs2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1ZHVmhiRnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGRHVmhiQzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTmxObVpqWmpVc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNOak0yWmhaVGdzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ001Tm1ZeVpEY3NYRnh1SUNCY1hGd2lNMXhjWENJNklDTTJNMlUyWW1Vc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNNek9HUTVZVGtzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ015TUdNNU9UY3NYRnh1SUNCY1hGd2lObHhjWENJNklDTXhNbUk0T0RZc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNd1kyRTJOemdzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ013T1RreU5qZ3NYRnh1SUNCY1hGd2lPVnhjWENJNklDTXdPRGRtTldKY1hHNHBPMXhjYmx4Y2JpUnZZeTEwWldGc0xUQTZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzB4T2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE1qb2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVE02SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMwME9pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3ROVG9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRZNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0T0RvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUazZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnUjNKbFpXNWNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFdkeVpXVnVMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyVmlabUpsWlN4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJRelpqbGtPQ3hjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMkl5WmpKaVlpeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0l6aGpaVGs1WVN4Y1hHNGdJRnhjWENJMFhGeGNJam9nSXpZNVpHSTNZeXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJelV4WTJZMk5peGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0l6UXdZekExTnl4Y1hHNGdJRnhjWENJM1hGeGNJam9nSXpNM1lqSTBaQ3hjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJekptT1dVME5DeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6SmlPR0V6WlZ4Y2JpazdYRnh1WEZ4dUpHOWpMV2R5WldWdUxUQTZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRFNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVEk2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUTTZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRRNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVFU2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUWTZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRjNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVGc2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUazZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUV4cGJXVmNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFd4cGJXVXRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpqUm1ZMlV6TEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWlRsbVlXTTRMRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpaRGhtTldFeUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBall6QmxZamMxTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqWVRsbE16UmlMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpPVFJrT0RKa0xGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBak9ESmpPVEZsTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqTnpSaU9ERTJMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpOalpoT0RCbUxGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak5XTTVOREJrWEZ4dUtUdGNYRzVjWEc0a2IyTXRiR2x0WlMwd09pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXRNVG9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRJNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0TkRvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUVTZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzAyT2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE56b2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVGc2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMwNU9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRmxsYkd4dmQxeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10ZVdWc2JHOTNMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyWm1aamxrWWl4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJabVpqTmlaaXhjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMlptWldNNU9TeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0kyWm1aVEEyTml4Y1hHNGdJRnhjWENJMFhGeGNJam9nSTJabVpEUXpZaXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJMlpqWXpReE9TeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0kyWmhZakF3TlN4Y1hHNGdJRnhjWENJM1hGeGNJam9nSTJZMU9XWXdNQ3hjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJMll3T0dNd01DeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0kyVTJOemN3TUZ4Y2JpazdYRnh1WEZ4dUpHOWpMWGxsYkd4dmR5MHdPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xURTZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE1qb2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkwek9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRRNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0TlRvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTAyT2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVGM2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3RPRG9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MDVPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1QzSmhibWRsWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MXZjbUZ1WjJVdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWm1abU5HVTJMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpabVpsT0dOakxGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalptWmtPR0U0TEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWm1aak1EYzRMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpabVpoT1RSa0xGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBalptWTVNakppTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqWm1RM1pURTBMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpaamMyTnpBM0xGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBalpUZzFPVEJqTEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqWkRrME9EQm1YRnh1S1R0Y1hHNWNYRzRrYjJNdGIzSmhibWRsTFRBNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0TVRvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzB5T2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVE02SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXRORG9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUWTZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE56b2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMwNE9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRrNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JEYjJ4dmNpQnNhWE4wWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MWpiMnh2Y2kxemNHVmpkSEoxYlRvZ0lDQTVPMXhjYmx4Y2JpUnZZeTFqYjJ4dmNpMXNhWE4wT2lBb1hGeHVJQ0FrYjJNdFozSmhlUzFzYVhOME9pQWdJQ0FnSUZ4Y1hDSm5jbUY1WEZ4Y0lpeGNYRzRnSUNSdll5MXlaV1F0YkdsemREb2dJQ0FnSUNCY1hGd2ljbVZrWEZ4Y0lpeGNYRzRnSUNSdll5MXdhVzVyTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbkJwYm10Y1hGd2lMRnhjYmlBZ0pHOWpMV2R5WVhCbExXeHBjM1E2SUNBZ0lDQWdYRnhjSW1keVlYQmxYRnhjSWl4Y1hHNGdJQ1J2WXkxMmFXOXNaWFF0YkdsemREb2dJQ0FnSUNCY1hGd2lkbWx2YkdWMFhGeGNJaXhjWEc0Z0lDUnZZeTFwYm1ScFoyOHRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWFXNWthV2R2WEZ4Y0lpeGNYRzRnSUNSdll5MWliSFZsTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbUpzZFdWY1hGd2lMRnhjYmlBZ0pHOWpMV041WVc0dGJHbHpkRG9nSUNBZ0lDQmNYRndpWTNsaGJseGNYQ0lzWEZ4dUlDQWtiMk10ZEdWaGJDMXNhWE4wT2lBZ0lDQWdJRnhjWENKMFpXRnNYRnhjSWl4Y1hHNGdJQ1J2WXkxbmNtVmxiaTFzYVhOME9pQWdJQ0FnSUZ4Y1hDSm5jbVZsYmx4Y1hDSXNYRnh1SUNBa2IyTXRiR2x0WlMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0pzYVcxbFhGeGNJaXhjWEc0Z0lDUnZZeTE1Wld4c2IzY3RiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWVXVnNiRzkzWEZ4Y0lpeGNYRzRnSUNSdll5MXZjbUZ1WjJVdGJHbHpkRG9nSUNBZ0lDQmNYRndpYjNKaGJtZGxYRnhjSWx4Y2JpazdYRnh1WENKZExGd2ljMjkxY21ObFVtOXZkRndpT2x3aVhDSjlYU2s3WEc0dkx5QkZlSEJ2Y25SelhHNWxlSEJ2Y25RZ1pHVm1ZWFZzZENCZlgxOURVMU5mVEU5QlJFVlNYMFZZVUU5U1ZGOWZYenRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Db250ZXh0TWVudS5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0RpYWxvZy5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9EaWFsb2cuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLy8gSW1wb3J0c1xcblxcblxcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxuLy8gTW9kdWxlXFxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcXFwiOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxcXG59XFxcXG5cXFxcbi5leGNhbGlkcmF3IC5EaWFsb2cge1xcXFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0O1xcXFxuICAgICAgICAgIHVzZXItc2VsZWN0OiB0ZXh0O1xcXFxuICBjdXJzb3I6IGF1dG87XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuRGlhbG9nX190aXRsZSB7XFxcXG4gIGRpc3BsYXk6IGdyaWQ7XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gIG1hcmdpbi10b3A6IDA7XFxcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGNhbGModmFyKC0tc3BhY2UtZmFjdG9yKSAqIDcpO1xcXFxuICBncmlkLWdhcDogdmFyKC0tbWV0cmljKTtcXFxcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogMik7XFxcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXFxcbiAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xcXFxuICBmb250LXNpemU6IDEuMmVtO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkRpYWxvZ19fdGl0bGVDb250ZW50IHtcXFxcbiAgZmxleDogMTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5EaWFsb2cgLk1vZGFsX19jbG9zZSB7XFxcXG4gIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcXFxuICBtYXJnaW46IDA7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuRGlhbG9nX19jb250ZW50IHtcXFxcbiAgcGFkZGluZzogMCAxNnB4IDE2cHg7XFxcXG59XFxcXG4uZXhjYWxpZHJhdy0tbW9iaWxlLmV4Y2FsaWRyYXcgLkRpYWxvZyB7XFxcXG4gIC0tbWV0cmljOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiA0KTtcXFxcbiAgLS1pbnNldC1sZWZ0OiBtYXgodmFyKC0tbWV0cmljKSwgdmFyKC0tc2FsKSk7XFxcXG4gIC0taW5zZXQtcmlnaHQ6IG1heCh2YXIoLS1tZXRyaWMpLCB2YXIoLS1zYXIpKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuRGlhbG9nX190aXRsZSB7XFxcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogNykgMWZyIGNhbGModmFyKC0tc3BhY2UtZmFjdG9yKSAqIDcpO1xcXFxuICBwb3NpdGlvbjogc3RpY2t5O1xcXFxuICB0b3A6IDA7XFxcXG4gIHBhZGRpbmc6IGNhbGModmFyKC0tc3BhY2UtZmFjdG9yKSAqIDIpO1xcXFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1pc2xhbmQtYmctY29sb3IpO1xcXFxuICBmb250LXNpemU6IDEuMjVlbTtcXFxcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXFxcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcXFxuICB6LWluZGV4OiAxO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXctLW1vYmlsZS5leGNhbGlkcmF3IC5EaWFsb2dfX3RpdGxlQ29udGVudCB7XFxcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuRGlhbG9nIC5Jc2xhbmQge1xcXFxuICB3aWR0aDogMTAwdnc7XFxcXG4gIGhlaWdodDogMTAwJTtcXFxcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXFxcbiAgb3ZlcmZsb3cteTogYXV0bztcXFxcbiAgcGFkZGluZy1sZWZ0OiBtYXgoY2FsYyh2YXIoLS1wYWRkaW5nKSAqIHZhcigtLXNwYWNlLWZhY3RvcikpLCB2YXIoLS1zYWwpKTtcXFxcbiAgcGFkZGluZy1yaWdodDogbWF4KGNhbGModmFyKC0tcGFkZGluZykgKiB2YXIoLS1zcGFjZS1mYWN0b3IpKSwgdmFyKC0tc2FyKSk7XFxcXG4gIHBhZGRpbmctYm90dG9tOiBtYXgoY2FsYyh2YXIoLS1wYWRkaW5nKSAqIHZhcigtLXNwYWNlLWZhY3RvcikpLCB2YXIoLS1zYWIpKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuRGlhbG9nIC5Nb2RhbF9fY2xvc2Uge1xcXFxuICBvcmRlcjogLTE7XFxcXG59XFxcIiwgXFxcIlxcXCIse1xcXCJ2ZXJzaW9uXFxcIjozLFxcXCJzb3VyY2VzXFxcIjpbXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcXFwiLFxcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jb21wb25lbnRzL0RpYWxvZy5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQVVBO0VBQ0UsMkNBQUE7QUNURjs7QUFDRTtFQUNFLHlCQUFBO1VBQUEsaUJBQUE7RUFDQSxZQUFBO0FBRUo7QUFDRTtFQUNFLGFBQUE7RUFDQSxtQkFBQTtFQUNBLGFBQUE7RUFDQSx3REFBQTtFQUNBLHVCQUFBO0VBQ0Esc0NBQUE7RUFDQSxrQkFBQTtFQUNBLHdCQUFBO0VBQ0EsZ0JBQUE7QUFDSjtBQUVFO0VBQ0UsT0FBQTtBQUFKO0FBR0U7RUFDRSw2QkFBQTtFQUNBLFNBQUE7QUFESjtBQUlFO0VBQ0Usb0JBQUE7QUFGSjtBQU1JO0VBQ0UsdUNBQUE7RUFDQSw0Q0FBQTtFQUNBLDZDQUFBO0FBSk47QUFPSTtFQUNFLHNGQUFBO0VBR0EsZ0JBQUE7RUFDQSxNQUFBO0VBQ0Esc0NBQUE7RUFDQSxrQ0FBQTtFQUNBLGlCQUFBO0VBRUEsc0JBQUE7RUFDQSw2Q0FBQTtFQUNBLFVBQUE7QUFSTjtBQVdJO0VBQ0Usa0JBQUE7QUFUTjtBQVlJO0VBQ0UsWUFBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTtFQUNBLGdCQUFBO0VBQ0EseUVBQUE7RUFDQSwwRUFBQTtFQUNBLDJFQUFBO0FBVk47QUFhSTtFQUNFLFNBQUE7QUFYTlxcXCIsXFxcInNvdXJjZXNDb250ZW50XFxcIjpbXFxcIkBpbXBvcnQgXFxcXFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXFxcXFwiO1xcXFxuXFxcXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXFxcbiAgICBAY29udGVudDtcXFxcbiAgfVxcXFxufVxcXFxuXFxcXG4kdGhlbWUtZmlsdGVyOiBcXFxcXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXFxcXFwiO1xcXFxuXFxcXG46ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxcXG59XFxcXG5cXFwiLFxcXCJAaW1wb3J0IFxcXFxcXFwiLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGVcXFxcXFxcIjtcXFxcblxcXFxuLmV4Y2FsaWRyYXcge1xcXFxuICAuRGlhbG9nIHtcXFxcbiAgICB1c2VyLXNlbGVjdDogdGV4dDtcXFxcbiAgICBjdXJzb3I6IGF1dG87XFxcXG4gIH1cXFxcblxcXFxuICAuRGlhbG9nX190aXRsZSB7XFxcXG4gICAgZGlzcGxheTogZ3JpZDtcXFxcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICAgIG1hcmdpbi10b3A6IDA7XFxcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogNyk7XFxcXG4gICAgZ3JpZC1nYXA6IHZhcigtLW1ldHJpYyk7XFxcXG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogMik7XFxcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcXFxuICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcXFxcbiAgICBmb250LXNpemU6IDEuMmVtO1xcXFxuICB9XFxcXG5cXFxcbiAgLkRpYWxvZ19fdGl0bGVDb250ZW50IHtcXFxcbiAgICBmbGV4OiAxO1xcXFxuICB9XFxcXG5cXFxcbiAgLkRpYWxvZyAuTW9kYWxfX2Nsb3NlIHtcXFxcbiAgICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXFxcbiAgICBtYXJnaW46IDA7XFxcXG4gIH1cXFxcblxcXFxuICAuRGlhbG9nX19jb250ZW50IHtcXFxcbiAgICBwYWRkaW5nOiAwIDE2cHggMTZweDtcXFxcbiAgfVxcXFxuXFxcXG4gIEBpbmNsdWRlIGlzTW9iaWxlIHtcXFxcbiAgICAuRGlhbG9nIHtcXFxcbiAgICAgIC0tbWV0cmljOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiA0KTtcXFxcbiAgICAgIC0taW5zZXQtbGVmdDogI3tcXFxcXFxcIm1heCh2YXIoLS1tZXRyaWMpLCB2YXIoLS1zYWwpKVxcXFxcXFwifTtcXFxcbiAgICAgIC0taW5zZXQtcmlnaHQ6ICN7XFxcXFxcXCJtYXgodmFyKC0tbWV0cmljKSwgdmFyKC0tc2FyKSlcXFxcXFxcIn07XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgLkRpYWxvZ19fdGl0bGUge1xcXFxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiA3KSAxZnIgY2FsYyhcXFxcbiAgICAgICAgICB2YXIoLS1zcGFjZS1mYWN0b3IpICogN1xcXFxuICAgICAgICApO1xcXFxuICAgICAgcG9zaXRpb246IHN0aWNreTtcXFxcbiAgICAgIHRvcDogMDtcXFxcbiAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc3BhY2UtZmFjdG9yKSAqIDIpO1xcXFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0taXNsYW5kLWJnLWNvbG9yKTtcXFxcbiAgICAgIGZvbnQtc2l6ZTogMS4yNWVtO1xcXFxuXFxcXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcXFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcXFxuICAgICAgei1pbmRleDogMTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAuRGlhbG9nX190aXRsZUNvbnRlbnQge1xcXFxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xcXFxuICAgIH1cXFxcblxcXFxuICAgIC5EaWFsb2cgLklzbGFuZCB7XFxcXG4gICAgICB3aWR0aDogMTAwdnc7XFxcXG4gICAgICBoZWlnaHQ6IDEwMCU7XFxcXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcXFxuICAgICAgb3ZlcmZsb3cteTogYXV0bztcXFxcbiAgICAgIHBhZGRpbmctbGVmdDogI3tcXFxcXFxcIm1heChjYWxjKHZhcigtLXBhZGRpbmcpICogdmFyKC0tc3BhY2UtZmFjdG9yKSksIHZhcigtLXNhbCkpXFxcXFxcXCJ9O1xcXFxuICAgICAgcGFkZGluZy1yaWdodDogI3tcXFxcXFxcIm1heChjYWxjKHZhcigtLXBhZGRpbmcpICogdmFyKC0tc3BhY2UtZmFjdG9yKSksIHZhcigtLXNhcikpXFxcXFxcXCJ9O1xcXFxuICAgICAgcGFkZGluZy1ib3R0b206ICN7XFxcXFxcXCJtYXgoY2FsYyh2YXIoLS1wYWRkaW5nKSAqIHZhcigtLXNwYWNlLWZhY3RvcikpLCB2YXIoLS1zYWIpKVxcXFxcXFwifTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAuRGlhbG9nIC5Nb2RhbF9fY2xvc2Uge1xcXFxuICAgICAgb3JkZXI6IC0xO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxufVxcXFxuXFxcIl0sXFxcInNvdXJjZVJvb3RcXFwiOlxcXCJcXFwifV0pO1xcbi8vIEV4cG9ydHNcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKF9fX0NTU19MT0FERVJfRVhQT1JUX19fKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlFYVdGc2IyY3VjMk56Y3k1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenRCUVVGQk8wRkJRemhJTzBGQlEycENPMEZCUXpkSExEaENRVUU0UWl4MVIwRkJNa0lzUTBGQlF5eG5TRUZCY1VNN1FVRkRMMFk3UVVGRFFTeHRSRUZCYlVRc1owUkJRV2RFTEVkQlFVY3NlVUpCUVhsQ0xEaENRVUU0UWl3NFFrRkJPRUlzYVVKQlFXbENMRWRCUVVjc09FSkJRVGhDTEd0Q1FVRnJRaXgzUWtGQmQwSXNhMEpCUVd0Q0xEWkVRVUUyUkN3MFFrRkJORUlzTWtOQlFUSkRMSFZDUVVGMVFpdzJRa0ZCTmtJc2NVSkJRWEZDTEVkQlFVY3NjVU5CUVhGRExGbEJRVmtzUjBGQlJ5eHhRMEZCY1VNc2EwTkJRV3RETEdOQlFXTXNSMEZCUnl4blEwRkJaME1zZVVKQlFYbENMRWRCUVVjc01FTkJRVEJETERSRFFVRTBReXhwUkVGQmFVUXNhMFJCUVd0RUxFZEJRVWNzYVVSQlFXbEVMREpHUVVFeVJpeHhRa0ZCY1VJc1YwRkJWeXd5UTBGQk1rTXNkVU5CUVhWRExITkNRVUZ6UWl3eVFrRkJNa0lzYTBSQlFXdEVMR1ZCUVdVc1IwRkJSeXgzUkVGQmQwUXNkVUpCUVhWQ0xFZEJRVWNzYTBSQlFXdEVMR2xDUVVGcFFpeHBRa0ZCYVVJc01rSkJRVEpDTEhGQ1FVRnhRaXc0UlVGQk9FVXNLMFZCUVN0RkxHZEdRVUZuUml4SFFVRkhMSGRFUVVGM1JDeGpRVUZqTEVkQlFVY3NUMEZCVHl3MlNVRkJOa2tzVjBGQlZ5eE5RVUZOTEV0QlFVc3NWMEZCVnl4WFFVRlhMRlZCUVZVc1MwRkJTeXhMUVVGTExGVkJRVlVzVjBGQlZ5eFZRVUZWTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExFdEJRVXNzUzBGQlN5eFZRVUZWTEV0QlFVc3NTMEZCU3l4WFFVRlhMRlZCUVZVc1MwRkJTeXhMUVVGTExGZEJRVmNzUzBGQlN5eExRVUZMTEZkQlFWY3NWMEZCVnl4WFFVRlhMRXRCUVVzc1MwRkJTeXhYUVVGWExGZEJRVmNzVlVGQlZTeFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1ZVRkJWU3hMUVVGTExFdEJRVXNzVjBGQlZ5eExRVUZMTEV0QlFVc3NWVUZCVlN4VlFVRlZMRmRCUVZjc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eExRVUZMTEV0QlFVc3NWVUZCVlN4blJVRkJaMFVzZFVKQlFYVkNMR3REUVVGclF5eEpRVUZKTEdWQlFXVXNTMEZCU3l4SFFVRkhMSE5FUVVGelJDeGhRVUZoTEhkRFFVRjNReXhIUVVGSExIbERRVUY1UXl4cFFrRkJhVUlzWVVGQllTeDNRa0ZCZDBJc2JVSkJRVzFDTEV0QlFVc3NjMEpCUVhOQ0xHOUNRVUZ2UWl3d1FrRkJNRUlzYjBKQlFXOUNMQ3RFUVVFclJDdzRRa0ZCT0VJc05rTkJRVFpETEhsQ1FVRjVRaXdyUWtGQkswSXNkVUpCUVhWQ0xFdEJRVXNzTmtKQlFUWkNMR05CUVdNc1MwRkJTeXcyUWtGQk5rSXNiME5CUVc5RExHZENRVUZuUWl4TFFVRkxMSGRDUVVGM1Fpd3lRa0ZCTWtJc1MwRkJTeXg1UWtGQmVVSXNaVUZCWlN4blJFRkJaMFFzZDBKQlFYZENMRzlEUVVGdlF5eDVRa0ZCZVVJc2IwTkJRVzlETEU5QlFVOHNkMEpCUVhkQ0xIRklRVUZ4U0N4NVFrRkJlVUlzWlVGQlpTd3JRMEZCSzBNc01rTkJRVEpETERCQ1FVRXdRaXhwUTBGQmFVTXNjMFJCUVhORUxHMUNRVUZ0UWl4UFFVRlBMQ3RDUVVFclFpd3lRa0ZCTWtJc1QwRkJUeXg1UWtGQmVVSXNjVUpCUVhGQ0xIRkNRVUZ4UWl3clFrRkJLMElzZVVKQlFYbENMSGRDUVVGM1FpeHBSVUZCYVVVc2VVSkJRWGxDTEdsRlFVRnBSU3d3UWtGQk1FSXNhVVZCUVdsRkxFOUJRVThzSzBKQlFTdENMR3RDUVVGclFpeFBRVUZQTEV0QlFVc3NSMEZCUnl4eFFrRkJjVUk3UVVGRGNqVkpPMEZCUTBFc2FVVkJRV1VzZFVKQlFYVkNMRVZCUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlFYVdGc2IyY3VjMk56Y3o4d1pEaGpJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4dklFbHRjRzl5ZEhOY2JtbHRjRzl5ZENCZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5VFQxVlNRMFZOUVZCZlNVMVFUMUpVWDE5ZklHWnliMjBnWENJdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2Y25WdWRHbHRaUzl6YjNWeVkyVk5ZWEJ6TG1welhDSTdYRzVwYlhCdmNuUWdYMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZTVTFRVDFKVVgxOWZJR1p5YjIwZ1hDSXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OWpjM010Ykc5aFpHVnlMMlJwYzNRdmNuVnVkR2x0WlM5aGNHa3Vhbk5jSWp0Y2JuWmhjaUJmWDE5RFUxTmZURTlCUkVWU1gwVllVRTlTVkY5Zlh5QTlJRjlmWDBOVFUxOU1UMEZFUlZKZlFWQkpYMGxOVUU5U1ZGOWZYeWhmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlUVDFWU1EwVk5RVkJmU1UxUVQxSlVYMTlmS1R0Y2JpOHZJRTF2WkhWc1pWeHVYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4dWNIVnphQ2hiYlc5a2RXeGxMbWxrTENCY0lqcGxlSEJ2Y25RZ2UxeGNiaUFnZEdobGJXVkdhV3gwWlhJNklHbHVkbVZ5ZENnNU15VXBJR2gxWlMxeWIzUmhkR1VvTVRnd1pHVm5LVHRjWEc1OVhGeHVYRnh1TG1WNFkyRnNhV1J5WVhjZ0xrUnBZV3h2WnlCN1hGeHVJQ0F0ZDJWaWEybDBMWFZ6WlhJdGMyVnNaV04wT2lCMFpYaDBPMXhjYmlBZ0lDQWdJQ0FnSUNCMWMyVnlMWE5sYkdWamREb2dkR1Y0ZER0Y1hHNGdJR04xY25OdmNqb2dZWFYwYnp0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xrUnBZV3h2WjE5ZmRHbDBiR1VnZTF4Y2JpQWdaR2x6Y0d4aGVUb2daM0pwWkR0Y1hHNGdJR0ZzYVdkdUxXbDBaVzF6T2lCalpXNTBaWEk3WEZ4dUlDQnRZWEpuYVc0dGRHOXdPaUF3TzF4Y2JpQWdaM0pwWkMxMFpXMXdiR0YwWlMxamIyeDFiVzV6T2lBeFpuSWdZMkZzWXloMllYSW9MUzF6Y0dGalpTMW1ZV04wYjNJcElDb2dOeWs3WEZ4dUlDQm5jbWxrTFdkaGNEb2dkbUZ5S0MwdGJXVjBjbWxqS1R0Y1hHNGdJSEJoWkdScGJtYzZJR05oYkdNb2RtRnlLQzB0YzNCaFkyVXRabUZqZEc5eUtTQXFJRElwTzF4Y2JpQWdkR1Y0ZEMxaGJHbG5iam9nWTJWdWRHVnlPMXhjYmlBZ1ptOXVkQzEyWVhKcFlXNTBPaUJ6YldGc2JDMWpZWEJ6TzF4Y2JpQWdabTl1ZEMxemFYcGxPaUF4TGpKbGJUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMa1JwWVd4dloxOWZkR2wwYkdWRGIyNTBaVzUwSUh0Y1hHNGdJR1pzWlhnNklERTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVFYVdGc2IyY2dMazF2WkdGc1gxOWpiRzl6WlNCN1hGeHVJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFXTnZiaTFtYVd4c0xXTnZiRzl5S1R0Y1hHNGdJRzFoY21kcGJqb2dNRHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGtScFlXeHZaMTlmWTI5dWRHVnVkQ0I3WEZ4dUlDQndZV1JrYVc1bk9pQXdJREUyY0hnZ01UWndlRHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGN0TFcxdlltbHNaUzVsZUdOaGJHbGtjbUYzSUM1RWFXRnNiMmNnZTF4Y2JpQWdMUzF0WlhSeWFXTTZJR05oYkdNb2RtRnlLQzB0YzNCaFkyVXRabUZqZEc5eUtTQXFJRFFwTzF4Y2JpQWdMUzFwYm5ObGRDMXNaV1owT2lCdFlYZ29kbUZ5S0MwdGJXVjBjbWxqS1N3Z2RtRnlLQzB0YzJGc0tTazdYRnh1SUNBdExXbHVjMlYwTFhKcFoyaDBPaUJ0WVhnb2RtRnlLQzB0YldWMGNtbGpLU3dnZG1GeUtDMHRjMkZ5S1NrN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0xTMXRiMkpwYkdVdVpYaGpZV3hwWkhKaGR5QXVSR2xoYkc5blgxOTBhWFJzWlNCN1hGeHVJQ0JuY21sa0xYUmxiWEJzWVhSbExXTnZiSFZ0Ym5NNklHTmhiR01vZG1GeUtDMHRjM0JoWTJVdFptRmpkRzl5S1NBcUlEY3BJREZtY2lCallXeGpLSFpoY2lndExYTndZV05sTFdaaFkzUnZjaWtnS2lBM0tUdGNYRzRnSUhCdmMybDBhVzl1T2lCemRHbGphM2s3WEZ4dUlDQjBiM0E2SURBN1hGeHVJQ0J3WVdSa2FXNW5PaUJqWVd4aktIWmhjaWd0TFhOd1lXTmxMV1poWTNSdmNpa2dLaUF5S1R0Y1hHNGdJR0poWTJ0bmNtOTFibVE2SUhaaGNpZ3RMV2x6YkdGdVpDMWlaeTFqYjJ4dmNpazdYRnh1SUNCbWIyNTBMWE5wZW1VNklERXVNalZsYlR0Y1hHNGdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hGeHVJQ0JpYjNKa1pYSXRZbTkwZEc5dE9pQXhjSGdnYzI5c2FXUWdkbUZ5S0MwdFluVjBkRzl1TFdkeVlYa3RNaWs3WEZ4dUlDQjZMV2x1WkdWNE9pQXhPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeTB0Ylc5aWFXeGxMbVY0WTJGc2FXUnlZWGNnTGtScFlXeHZaMTlmZEdsMGJHVkRiMjUwWlc1MElIdGNYRzRnSUhSbGVIUXRZV3hwWjI0NklHTmxiblJsY2p0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjdExXMXZZbWxzWlM1bGVHTmhiR2xrY21GM0lDNUVhV0ZzYjJjZ0xrbHpiR0Z1WkNCN1hGeHVJQ0IzYVdSMGFEb2dNVEF3ZG5jN1hGeHVJQ0JvWldsbmFIUTZJREV3TUNVN1hGeHVJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeGNiaUFnYjNabGNtWnNiM2N0ZVRvZ1lYVjBienRjWEc0Z0lIQmhaR1JwYm1jdGJHVm1kRG9nYldGNEtHTmhiR01vZG1GeUtDMHRjR0ZrWkdsdVp5a2dLaUIyWVhJb0xTMXpjR0ZqWlMxbVlXTjBiM0lwS1N3Z2RtRnlLQzB0YzJGc0tTazdYRnh1SUNCd1lXUmthVzVuTFhKcFoyaDBPaUJ0WVhnb1kyRnNZeWgyWVhJb0xTMXdZV1JrYVc1bktTQXFJSFpoY2lndExYTndZV05sTFdaaFkzUnZjaWtwTENCMllYSW9MUzF6WVhJcEtUdGNYRzRnSUhCaFpHUnBibWN0WW05MGRHOXRPaUJ0WVhnb1kyRnNZeWgyWVhJb0xTMXdZV1JrYVc1bktTQXFJSFpoY2lndExYTndZV05sTFdaaFkzUnZjaWtwTENCMllYSW9MUzF6WVdJcEtUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY3RMVzF2WW1sc1pTNWxlR05oYkdsa2NtRjNJQzVFYVdGc2IyY2dMazF2WkdGc1gxOWpiRzl6WlNCN1hGeHVJQ0J2Y21SbGNqb2dMVEU3WEZ4dWZWd2lMQ0JjSWx3aUxIdGNJblpsY25OcGIyNWNJam96TEZ3aWMyOTFjbU5sYzF3aU9sdGNJbmRsWW5CaFkyczZMeTh1THk0dUx5NHVMMk56Y3k5MllYSnBZV0pzWlhNdWJXOWtkV3hsTG5OamMzTmNJaXhjSW5kbFluQmhZMnM2THk4dUx5NHVMeTR1TDJOdmJYQnZibVZ1ZEhNdlJHbGhiRzluTG5OamMzTmNJbDBzWENKdVlXMWxjMXdpT2x0ZExGd2liV0Z3Y0dsdVozTmNJanBjSWtGQlZVRTdSVUZEUlN3eVEwRkJRVHRCUTFSR096dEJRVU5GTzBWQlEwVXNlVUpCUVVFN1ZVRkJRU3hwUWtGQlFUdEZRVU5CTEZsQlFVRTdRVUZGU2p0QlFVTkZPMFZCUTBVc1lVRkJRVHRGUVVOQkxHMUNRVUZCTzBWQlEwRXNZVUZCUVR0RlFVTkJMSGRFUVVGQk8wVkJRMEVzZFVKQlFVRTdSVUZEUVN4elEwRkJRVHRGUVVOQkxHdENRVUZCTzBWQlEwRXNkMEpCUVVFN1JVRkRRU3huUWtGQlFUdEJRVU5LTzBGQlJVVTdSVUZEUlN4UFFVRkJPMEZCUVVvN1FVRkhSVHRGUVVORkxEWkNRVUZCTzBWQlEwRXNVMEZCUVR0QlFVUktPMEZCU1VVN1JVRkRSU3h2UWtGQlFUdEJRVVpLTzBGQlRVazdSVUZEUlN4MVEwRkJRVHRGUVVOQkxEUkRRVUZCTzBWQlEwRXNOa05CUVVFN1FVRktUanRCUVU5Sk8wVkJRMFVzYzBaQlFVRTdSVUZIUVN4blFrRkJRVHRGUVVOQkxFMUJRVUU3UlVGRFFTeHpRMEZCUVR0RlFVTkJMR3REUVVGQk8wVkJRMEVzYVVKQlFVRTdSVUZGUVN4elFrRkJRVHRGUVVOQkxEWkRRVUZCTzBWQlEwRXNWVUZCUVR0QlFWSk9PMEZCVjBrN1JVRkRSU3hyUWtGQlFUdEJRVlJPTzBGQldVazdSVUZEUlN4WlFVRkJPMFZCUTBFc1dVRkJRVHRGUVVOQkxITkNRVUZCTzBWQlEwRXNaMEpCUVVFN1JVRkRRU3g1UlVGQlFUdEZRVU5CTERCRlFVRkJPMFZCUTBFc01rVkJRVUU3UVVGV1RqdEJRV0ZKTzBWQlEwVXNVMEZCUVR0QlFWaE9YQ0lzWENKemIzVnlZMlZ6UTI5dWRHVnVkRndpT2x0Y0lrQnBiWEJ2Y25RZ1hGeGNJbTl3Wlc0dFkyOXNiM0l2YjNCbGJpMWpiMnh2Y2k1elkzTnpYRnhjSWp0Y1hHNWNYRzVBYldsNGFXNGdhWE5OYjJKcGJHVW9LU0I3WEZ4dUlDQkFZWFF0Y205dmRDQXVaWGhqWVd4cFpISmhkeTB0Ylc5aWFXeGxJM3NtZlNCN1hGeHVJQ0FnSUVCamIyNTBaVzUwTzF4Y2JpQWdmVnhjYm4xY1hHNWNYRzRrZEdobGJXVXRabWxzZEdWeU9pQmNYRndpYVc1MlpYSjBLRGt6SlNrZ2FIVmxMWEp2ZEdGMFpTZ3hPREJrWldjcFhGeGNJanRjWEc1Y1hHNDZaWGh3YjNKMElIdGNYRzRnSUhSb1pXMWxSbWxzZEdWeU9pQjFibkYxYjNSbEtDUjBhR1Z0WlMxbWFXeDBaWElwTzF4Y2JuMWNYRzVjSWl4Y0lrQnBiWEJ2Y25RZ1hGeGNJaTR1TDJOemN5OTJZWEpwWVdKc1pYTXViVzlrZFd4bFhGeGNJanRjWEc1Y1hHNHVaWGhqWVd4cFpISmhkeUI3WEZ4dUlDQXVSR2xoYkc5bklIdGNYRzRnSUNBZ2RYTmxjaTF6Wld4bFkzUTZJSFJsZUhRN1hGeHVJQ0FnSUdOMWNuTnZjam9nWVhWMGJ6dGNYRzRnSUgxY1hHNWNYRzRnSUM1RWFXRnNiMmRmWDNScGRHeGxJSHRjWEc0Z0lDQWdaR2x6Y0d4aGVUb2daM0pwWkR0Y1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y1hHNGdJQ0FnYldGeVoybHVMWFJ2Y0RvZ01EdGNYRzRnSUNBZ1ozSnBaQzEwWlcxd2JHRjBaUzFqYjJ4MWJXNXpPaUF4Wm5JZ1kyRnNZeWgyWVhJb0xTMXpjR0ZqWlMxbVlXTjBiM0lwSUNvZ055azdYRnh1SUNBZ0lHZHlhV1F0WjJGd09pQjJZWElvTFMxdFpYUnlhV01wTzF4Y2JpQWdJQ0J3WVdSa2FXNW5PaUJqWVd4aktIWmhjaWd0TFhOd1lXTmxMV1poWTNSdmNpa2dLaUF5S1R0Y1hHNGdJQ0FnZEdWNGRDMWhiR2xuYmpvZ1kyVnVkR1Z5TzF4Y2JpQWdJQ0JtYjI1MExYWmhjbWxoYm5RNklITnRZV3hzTFdOaGNITTdYRnh1SUNBZ0lHWnZiblF0YzJsNlpUb2dNUzR5WlcwN1hGeHVJQ0I5WEZ4dVhGeHVJQ0F1UkdsaGJHOW5YMTkwYVhSc1pVTnZiblJsYm5RZ2UxeGNiaUFnSUNCbWJHVjRPaUF4TzF4Y2JpQWdmVnhjYmx4Y2JpQWdMa1JwWVd4dlp5QXVUVzlrWVd4ZlgyTnNiM05sSUh0Y1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXbGpiMjR0Wm1sc2JDMWpiMnh2Y2lrN1hGeHVJQ0FnSUcxaGNtZHBiam9nTUR0Y1hHNGdJSDFjWEc1Y1hHNGdJQzVFYVdGc2IyZGZYMk52Ym5SbGJuUWdlMXhjYmlBZ0lDQndZV1JrYVc1bk9pQXdJREUyY0hnZ01UWndlRHRjWEc0Z0lIMWNYRzVjWEc0Z0lFQnBibU5zZFdSbElHbHpUVzlpYVd4bElIdGNYRzRnSUNBZ0xrUnBZV3h2WnlCN1hGeHVJQ0FnSUNBZ0xTMXRaWFJ5YVdNNklHTmhiR01vZG1GeUtDMHRjM0JoWTJVdFptRmpkRzl5S1NBcUlEUXBPMXhjYmlBZ0lDQWdJQzB0YVc1elpYUXRiR1ZtZERvZ0kzdGNYRndpYldGNEtIWmhjaWd0TFcxbGRISnBZeWtzSUhaaGNpZ3RMWE5oYkNrcFhGeGNJbjA3WEZ4dUlDQWdJQ0FnTFMxcGJuTmxkQzF5YVdkb2REb2dJM3RjWEZ3aWJXRjRLSFpoY2lndExXMWxkSEpwWXlrc0lIWmhjaWd0TFhOaGNpa3BYRnhjSW4wN1hGeHVJQ0FnSUgxY1hHNWNYRzRnSUNBZ0xrUnBZV3h2WjE5ZmRHbDBiR1VnZTF4Y2JpQWdJQ0FnSUdkeWFXUXRkR1Z0Y0d4aGRHVXRZMjlzZFcxdWN6b2dZMkZzWXloMllYSW9MUzF6Y0dGalpTMW1ZV04wYjNJcElDb2dOeWtnTVdaeUlHTmhiR01vWEZ4dUlDQWdJQ0FnSUNBZ0lIWmhjaWd0TFhOd1lXTmxMV1poWTNSdmNpa2dLaUEzWEZ4dUlDQWdJQ0FnSUNBcE8xeGNiaUFnSUNBZ0lIQnZjMmwwYVc5dU9pQnpkR2xqYTNrN1hGeHVJQ0FnSUNBZ2RHOXdPaUF3TzF4Y2JpQWdJQ0FnSUhCaFpHUnBibWM2SUdOaGJHTW9kbUZ5S0MwdGMzQmhZMlV0Wm1GamRHOXlLU0FxSURJcE8xeGNiaUFnSUNBZ0lHSmhZMnRuY205MWJtUTZJSFpoY2lndExXbHpiR0Z1WkMxaVp5MWpiMnh2Y2lrN1hGeHVJQ0FnSUNBZ1ptOXVkQzF6YVhwbE9pQXhMakkxWlcwN1hGeHVYRnh1SUNBZ0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y1hHNGdJQ0FnSUNCaWIzSmtaWEl0WW05MGRHOXRPaUF4Y0hnZ2MyOXNhV1FnZG1GeUtDMHRZblYwZEc5dUxXZHlZWGt0TWlrN1hGeHVJQ0FnSUNBZ2VpMXBibVJsZURvZ01UdGNYRzRnSUNBZ2ZWeGNibHhjYmlBZ0lDQXVSR2xoYkc5blgxOTBhWFJzWlVOdmJuUmxiblFnZTF4Y2JpQWdJQ0FnSUhSbGVIUXRZV3hwWjI0NklHTmxiblJsY2p0Y1hHNGdJQ0FnZlZ4Y2JseGNiaUFnSUNBdVJHbGhiRzluSUM1SmMyeGhibVFnZTF4Y2JpQWdJQ0FnSUhkcFpIUm9PaUF4TURCMmR6dGNYRzRnSUNBZ0lDQm9aV2xuYUhRNklERXdNQ1U3WEZ4dUlDQWdJQ0FnWW05NExYTnBlbWx1WnpvZ1ltOXlaR1Z5TFdKdmVEdGNYRzRnSUNBZ0lDQnZkbVZ5Wm14dmR5MTVPaUJoZFhSdk8xeGNiaUFnSUNBZ0lIQmhaR1JwYm1jdGJHVm1kRG9nSTN0Y1hGd2liV0Y0S0dOaGJHTW9kbUZ5S0MwdGNHRmtaR2x1WnlrZ0tpQjJZWElvTFMxemNHRmpaUzFtWVdOMGIzSXBLU3dnZG1GeUtDMHRjMkZzS1NsY1hGd2lmVHRjWEc0Z0lDQWdJQ0J3WVdSa2FXNW5MWEpwWjJoME9pQWplMXhjWENKdFlYZ29ZMkZzWXloMllYSW9MUzF3WVdSa2FXNW5LU0FxSUhaaGNpZ3RMWE53WVdObExXWmhZM1J2Y2lrcExDQjJZWElvTFMxellYSXBLVnhjWENKOU8xeGNiaUFnSUNBZ0lIQmhaR1JwYm1jdFltOTBkRzl0T2lBamUxeGNYQ0p0WVhnb1kyRnNZeWgyWVhJb0xTMXdZV1JrYVc1bktTQXFJSFpoY2lndExYTndZV05sTFdaaFkzUnZjaWtwTENCMllYSW9MUzF6WVdJcEtWeGNYQ0o5TzF4Y2JpQWdJQ0I5WEZ4dVhGeHVJQ0FnSUM1RWFXRnNiMmNnTGsxdlpHRnNYMTlqYkc5elpTQjdYRnh1SUNBZ0lDQWdiM0prWlhJNklDMHhPMXhjYmlBZ0lDQjlYRnh1SUNCOVhGeHVmVnhjYmx3aVhTeGNJbk52ZFhKalpWSnZiM1JjSWpwY0lsd2lmVjBwTzF4dUx5OGdSWGh3YjNKMGMxeHVaWGh3YjNKMElHUmxabUYxYkhRZ1gxOWZRMU5UWDB4UFFVUkZVbDlGV0ZCUFVsUmZYMTg3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9EaWFsb2cuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9FeHBvcnREaWFsb2cuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvRXhwb3J0RGlhbG9nLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfZ2V0VXJsX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2dldFVybC5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfZ2V0VXJsX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2dldFVybF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fKTtcXG4vLyBJbXBvcnRzXFxuXFxuXFxuXFxudmFyIF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fID0gbmV3IFVSTCgvKiBhc3NldCBpbXBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQU1VbEVRVlE0VDJOa1lHQVFZY0FQM3VDVFpodzFnR0dZaEFHQlpJQS9uWURDZ0JEQW05QkdEV0FBSnlSQ2dMYUJDQUFnWHdpeHpBUzBwZ0FBQUFCSlJVNUVya0pnZ2c9PSAqLyBcXFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQU1VbEVRVlE0VDJOa1lHQVFZY0FQM3VDVFpodzFnR0dZaEFHQlpJQS9uWURDZ0JEQW05QkdEV0FBSnlSQ2dMYUJDQUFnWHdpeHpBUzBwZ0FBQUFCSlJVNUVya0pnZ2c9PVxcXCIpLCBfX3dlYnBhY2tfcmVxdWlyZV9fLmIpO1xcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzBfX18gPSBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfZ2V0VXJsX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19fZGVmYXVsdCgpKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fKTtcXG4vLyBNb2R1bGVcXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFxcXCI6ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IGludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKTtcXFxcbn1cXFxcblxcXFxuLmV4Y2FsaWRyYXcgLkV4cG9ydERpYWxvZ19fcHJldmlldyB7XFxcXG4gIC0tcHJldmlldy1wYWRkaW5nOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiA0KTtcXFxcbiAgYmFja2dyb3VuZDogdXJsKFxcXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fICsgXFxcIikgbGVmdCBjZW50ZXI7XFxcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXFxcbiAgcGFkZGluZzogdmFyKC0tcHJldmlldy1wYWRkaW5nKTtcXFxcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogMyk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuRXhwb3J0RGlhbG9nX19wcmV2aWV3IGNhbnZhcyB7XFxcXG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tcHJldmlldy1wYWRkaW5nKSAqIDIpO1xcXFxuICBtYXgtaGVpZ2h0OiAyNXJlbTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LnRoZW1lLS1kYXJrIC5FeHBvcnREaWFsb2dfX3ByZXZpZXcgY2FudmFzIHtcXFxcbiAgZmlsdGVyOiBub25lO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkV4cG9ydERpYWxvZ19fYWN0aW9ucyB7XFxcXG4gIHdpZHRoOiAxMDAlO1xcXFxuICBkaXNwbGF5OiBmbGV4O1xcXFxuICBncmlkLWdhcDogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogMik7XFxcXG4gIGFsaWduLWl0ZW1zOiB0b3A7XFxcXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuRXhwb3J0RGlhbG9nIHtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuRXhwb3J0RGlhbG9nX19hY3Rpb25zIHtcXFxcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXFxcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuRXhwb3J0RGlhbG9nX19hY3Rpb25zID4gKiB7XFxcXG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tc3BhY2UtZmFjdG9yKSAqIDMpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXctLW1vYmlsZS5leGNhbGlkcmF3IC5FeHBvcnREaWFsb2dfX3ByZXZpZXcgY2FudmFzIHtcXFxcbiAgbWF4LWhlaWdodDogMzB2aDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuRXhwb3J0RGlhbG9nX19kaWFsb2csXFxcXG4uZXhjYWxpZHJhdy0tbW9iaWxlLmV4Y2FsaWRyYXcgLkV4cG9ydERpYWxvZ19fZGlhbG9nIC5Jc2xhbmQge1xcXFxuICBoZWlnaHQ6IDEwMCU7XFxcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxcXG59XFxcXG4uZXhjYWxpZHJhdy0tbW9iaWxlLmV4Y2FsaWRyYXcgLkV4cG9ydERpYWxvZ19fZGlhbG9nIC5Jc2xhbmQge1xcXFxuICBvdmVyZmxvdy15OiBhdXRvO1xcXFxufVxcXFxuXFxcXG4uZXhjYWxpZHJhdyAuRXhwb3J0RGlhbG9nLS1qc29uIC5FeHBvcnREaWFsb2ctY2FyZHMge1xcXFxuICBkaXNwbGF5OiBncmlkO1xcXFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTtcXFxcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xcXFxuICByb3ctZ2FwOiAyZW07XFxcXG59XFxcXG5AbWVkaWEgKG1heC13aWR0aDogNDYwcHgpIHtcXFxcbiAgLmV4Y2FsaWRyYXcgLkV4cG9ydERpYWxvZy0tanNvbiAuRXhwb3J0RGlhbG9nLWNhcmRzIHtcXFxcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI0MHB4LCAxZnIpKTtcXFxcbiAgfVxcXFxuICAuZXhjYWxpZHJhdyAuRXhwb3J0RGlhbG9nLS1qc29uIC5FeHBvcnREaWFsb2ctY2FyZHMgLkNhcmQtZGV0YWlscyB7XFxcXG4gICAgbWluLWhlaWdodDogNDBweDtcXFxcbiAgfVxcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkV4cG9ydERpYWxvZy0tanNvbiAuRXhwb3J0RGlhbG9nLWNhcmRzIC5Qcm9qZWN0TmFtZSB7XFxcXG4gIHdpZHRoOiAtbW96LWZpdC1jb250ZW50O1xcXFxuICB3aWR0aDogZml0LWNvbnRlbnQ7XFxcXG4gIG1hcmdpbjogMWVtIGF1dG87XFxcXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xcXFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkV4cG9ydERpYWxvZy0tanNvbiAuRXhwb3J0RGlhbG9nLWNhcmRzIC5Qcm9qZWN0TmFtZSAuVGV4dElucHV0IHtcXFxcbiAgd2lkdGg6IGF1dG87XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuRXhwb3J0RGlhbG9nLS1qc29uIC5FeHBvcnREaWFsb2ctY2FyZHMgLlByb2plY3ROYW1lLWxhYmVsIHtcXFxcbiAgbWFyZ2luOiAwLjYyNWVtIDA7XFxcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgYnV0dG9uLkV4cG9ydERpYWxvZy1pbWFnZUV4cG9ydEJ1dHRvbiB7XFxcXG4gIHdpZHRoOiA1cmVtO1xcXFxuICBoZWlnaHQ6IDVyZW07XFxcXG4gIG1hcmdpbjogMCAwLjJlbTtcXFxcbiAgYm9yZGVyLXJhZGl1czogMXJlbTtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG9yKTtcXFxcbiAgYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjI4KSwgMCA2cHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCk7XFxcXG4gIGZvbnQtZmFtaWx5OiBDYXNjYWRpYTtcXFxcbiAgZm9udC1zaXplOiAxLjhlbTtcXFxcbiAgY29sb3I6ICNmZmZmZmY7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyBidXR0b24uRXhwb3J0RGlhbG9nLWltYWdlRXhwb3J0QnV0dG9uOmhvdmVyIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG9yLWRhcmtlcik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyBidXR0b24uRXhwb3J0RGlhbG9nLWltYWdlRXhwb3J0QnV0dG9uOmFjdGl2ZSB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvci1kYXJrZXN0KTtcXFxcbiAgYm94LXNoYWRvdzogbm9uZTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IGJ1dHRvbi5FeHBvcnREaWFsb2ctaW1hZ2VFeHBvcnRCdXR0b24gc3ZnIHtcXFxcbiAgd2lkdGg6IDAuOWVtO1xcXFxufVxcXCIsIFxcXCJcXFwiLHtcXFwidmVyc2lvblxcXCI6MyxcXFwic291cmNlc1xcXCI6W1xcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9FeHBvcnREaWFsb2cuc2Nzc1xcXCIsXFxcIndlYnBhY2s6Ly8uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9vcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXCJdLFxcXCJuYW1lc1xcXCI6W10sXFxcIm1hcHBpbmdzXFxcIjpcXFwiQUFVQTtFQUNFLDJDQUFBO0FDVEY7O0FBQ0U7RUFDRSxnREFBQTtFQUVBLCtEQUFBO0VBRUEsa0JBQUE7RUFDQSwrQkFBQTtFQUNBLDRDQUFBO0FBQUo7QUFHRTtFQUNFLGtEQUFBO0VBQ0EsaUJBQUE7QUFESjtBQUlFO0VBQ0UsWUFBQTtBQUZKO0FBS0U7RUFDRSxXQUFBO0VBQ0EsYUFBQTtFQUNBLHVDQUFBO0VBQ0EsZ0JBQUE7RUFDQSw4QkFBQTtBQUhKO0FBT0k7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7QUFMTjtBQVFJO0VBQ0Usc0JBQUE7RUFDQSxtQkFBQTtBQU5OO0FBU0k7RUFDRSw0Q0FBQTtBQVBOO0FBVUk7RUFDRSxnQkFBQTtBQVJOO0FBV0k7O0VBRUUsWUFBQTtFQUNBLHNCQUFBO0FBVE47QUFZSTtFQUNFLGdCQUFBO0FBVk47O0FBZUk7RUFDRSxhQUFBO0VBQ0EsMkRBQUE7RUFDQSxxQkFBQTtFQUNBLFlBQUE7QUFaTjtBQWNNO0VBTkY7SUFPSSwyREFBQTtFQVhOO0VBWU07SUFDRSxnQkFBQTtFQVZSO0FBQ0Y7QUFhTTtFQUNFLHVCQUFBO0VBQUEsa0JBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0VBQ0Esc0JBQUE7QUFYUjtBQWFRO0VBQ0UsV0FBQTtBQVhWO0FBZU07RUFDRSxpQkFBQTtFQUNBLGlCQUFBO0FBYlI7QUFrQkU7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFFQSxtQkFBQTtFQUNBLHFDQUFBO0VBQ0EsZ0ZBQUE7RUFHQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsY0M3RmU7QUQwRW5CO0FBcUJJO0VBQ0UsNENBQUE7QUFuQk47QUFxQkk7RUFDRSw2Q0FBQTtFQUNBLGdCQUFBO0FBbkJOO0FBc0JJO0VBQ0UsWUFBQTtBQXBCTlxcXCIsXFxcInNvdXJjZXNDb250ZW50XFxcIjpbXFxcIkBpbXBvcnQgXFxcXFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXFxcXFwiO1xcXFxuXFxcXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXFxcbiAgICBAY29udGVudDtcXFxcbiAgfVxcXFxufVxcXFxuXFxcXG4kdGhlbWUtZmlsdGVyOiBcXFxcXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXFxcXFwiO1xcXFxuXFxcXG46ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxcXG59XFxcXG5cXFwiLFxcXCJAaW1wb3J0IFxcXFxcXFwiLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGVcXFxcXFxcIjtcXFxcblxcXFxuLmV4Y2FsaWRyYXcge1xcXFxuICAuRXhwb3J0RGlhbG9nX19wcmV2aWV3IHtcXFxcbiAgICAtLXByZXZpZXctcGFkZGluZzogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogNCk7XFxcXG5cXFxcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXFxcXFxcXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBTVVsRVFWUTRUMk5rWUdBUVljQVAzdUNUWmh3MWdHR1loQUdCWklBL25ZRENnQkRBbTlCR0RXQUFKeVJDZ0xhQkNBQWdYd2l4ekFTMHBnQUFBQUJKUlU1RXJrSmdnZz09XFxcXFxcXCIpXFxcXG4gICAgICBsZWZ0IGNlbnRlcjtcXFxcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxcXG4gICAgcGFkZGluZzogdmFyKC0tcHJldmlldy1wYWRkaW5nKTtcXFxcbiAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiAzKTtcXFxcbiAgfVxcXFxuXFxcXG4gIC5FeHBvcnREaWFsb2dfX3ByZXZpZXcgY2FudmFzIHtcXFxcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXByZXZpZXctcGFkZGluZykgKiAyKTtcXFxcbiAgICBtYXgtaGVpZ2h0OiAyNXJlbTtcXFxcbiAgfVxcXFxuXFxcXG4gICYudGhlbWUtLWRhcmsgLkV4cG9ydERpYWxvZ19fcHJldmlldyBjYW52YXMge1xcXFxuICAgIGZpbHRlcjogbm9uZTtcXFxcbiAgfVxcXFxuXFxcXG4gIC5FeHBvcnREaWFsb2dfX2FjdGlvbnMge1xcXFxuICAgIHdpZHRoOiAxMDAlO1xcXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAgZ3JpZC1nYXA6IGNhbGModmFyKC0tc3BhY2UtZmFjdG9yKSAqIDIpO1xcXFxuICAgIGFsaWduLWl0ZW1zOiB0b3A7XFxcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcXFxuICB9XFxcXG5cXFxcbiAgQGluY2x1ZGUgaXNNb2JpbGUge1xcXFxuICAgIC5FeHBvcnREaWFsb2cge1xcXFxuICAgICAgZGlzcGxheTogZmxleDtcXFxcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgLkV4cG9ydERpYWxvZ19fYWN0aW9ucyB7XFxcXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcXFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAuRXhwb3J0RGlhbG9nX19hY3Rpb25zID4gKiB7XFxcXG4gICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiAzKTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAuRXhwb3J0RGlhbG9nX19wcmV2aWV3IGNhbnZhcyB7XFxcXG4gICAgICBtYXgtaGVpZ2h0OiAzMHZoO1xcXFxuICAgIH1cXFxcblxcXFxuICAgIC5FeHBvcnREaWFsb2dfX2RpYWxvZyxcXFxcbiAgICAuRXhwb3J0RGlhbG9nX19kaWFsb2cgLklzbGFuZCB7XFxcXG4gICAgICBoZWlnaHQ6IDEwMCU7XFxcXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcXFxuICAgIH1cXFxcblxcXFxuICAgIC5FeHBvcnREaWFsb2dfX2RpYWxvZyAuSXNsYW5kIHtcXFxcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLkV4cG9ydERpYWxvZy0tanNvbiB7XFxcXG4gICAgLkV4cG9ydERpYWxvZy1jYXJkcyB7XFxcXG4gICAgICBkaXNwbGF5OiBncmlkO1xcXFxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMDBweCwgMWZyKSk7XFxcXG4gICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XFxcXG4gICAgICByb3ctZ2FwOiAyZW07XFxcXG5cXFxcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0NjBweCkge1xcXFxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI0MHB4LCAxZnIpKTtcXFxcbiAgICAgICAgLkNhcmQtZGV0YWlscyB7XFxcXG4gICAgICAgICAgbWluLWhlaWdodDogNDBweDtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgfVxcXFxuXFxcXG4gICAgICAuUHJvamVjdE5hbWUge1xcXFxuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XFxcXG4gICAgICAgIG1hcmdpbjogMWVtIGF1dG87XFxcXG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xcXFxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcXFxuXFxcXG4gICAgICAgIC5UZXh0SW5wdXQge1xcXFxuICAgICAgICAgIHdpZHRoOiBhdXRvO1xcXFxuICAgICAgICB9XFxcXG4gICAgICB9XFxcXG5cXFxcbiAgICAgIC5Qcm9qZWN0TmFtZS1sYWJlbCB7XFxcXG4gICAgICAgIG1hcmdpbjogMC42MjVlbSAwO1xcXFxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcXFxcbiAgICAgIH1cXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICBidXR0b24uRXhwb3J0RGlhbG9nLWltYWdlRXhwb3J0QnV0dG9uIHtcXFxcbiAgICB3aWR0aDogNXJlbTtcXFxcbiAgICBoZWlnaHQ6IDVyZW07XFxcXG4gICAgbWFyZ2luOiAwIDAuMmVtO1xcXFxuXFxcXG4gICAgYm9yZGVyLXJhZGl1czogMXJlbTtcXFxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3IpO1xcXFxuICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yOCksXFxcXG4gICAgICAwIDZweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcXFxcblxcXFxuICAgIGZvbnQtZmFtaWx5OiBDYXNjYWRpYTtcXFxcbiAgICBmb250LXNpemU6IDEuOGVtO1xcXFxuICAgIGNvbG9yOiAkb2Mtd2hpdGU7XFxcXG5cXFxcbiAgICAmOmhvdmVyIHtcXFxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvci1kYXJrZXIpO1xcXFxuICAgIH1cXFxcbiAgICAmOmFjdGl2ZSB7XFxcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3ItZGFya2VzdCk7XFxcXG4gICAgICBib3gtc2hhZG93OiBub25lO1xcXFxuICAgIH1cXFxcblxcXFxuICAgIHN2ZyB7XFxcXG4gICAgICB3aWR0aDogMC45ZW07XFxcXG4gICAgfVxcXFxuICB9XFxcXG59XFxcXG5cXFwiLFxcXCIvL1xcXFxuLy9cXFxcbi8vICBcdUQ4MzVcdURERDYgXHVEODM1XHVEREUyIFx1RDgzNVx1RERERiBcdUQ4MzVcdURERTIgXHVEODM1XHVEREU1XFxcXG4vLyAgdiAxLjkuMVxcXFxuLy9cXFxcbi8vICBcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcXFxcblxcXFxuXFxcXG4vLyAgR2VuZXJhbFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2Mtd2hpdGU6ICAgICAgICAgI2ZmZmZmZjtcXFxcbiRvYy1ibGFjazogICAgICAgICAjMDAwMDAwO1xcXFxuXFxcXG5cXFxcbi8vICBHcmF5XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmF5LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmOGY5ZmEsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZjFmM2Y1LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2U5ZWNlZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNkZWUyZTYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjY2VkNGRhLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2FkYjViZCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM4NjhlOTYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNDk1MDU3LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzM0M2E0MCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMyMTI1MjlcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmF5LTA6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0yOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTM6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS01OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTY6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS04OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTk6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBSZWRcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXJlZC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmNWY1LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZTNlMyxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmM5YzksXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZhOGE4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmODc4NyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmZjZiNmIsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmE1MjUyLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2YwM2UzZSxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNlMDMxMzEsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjYzkyYTJhXFxcXG4pO1xcXFxuXFxcXG4kb2MtcmVkLTA6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTE6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTI6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTM6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTQ6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTU6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTY6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTc6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTg6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTk6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFBpbmtcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXBpbmstbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjBmNixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmRlZWIsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmNjMmQ3LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZhYTJjMSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmNzgzYWMsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZjA2NTk1LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2U2NDk4MCxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNkNjMzNmMsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjYzIyNTVjLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2E2MWU0ZFxcXFxuKTtcXFxcblxcXFxuJG9jLXBpbmstMDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtcGluay0xOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTI6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtcGluay00OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTU6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtcGluay03OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTg6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstOTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEdyYXBlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmFwZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjhmMGZjLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2YzZDlmYSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNlZWJlZmEsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZTU5OWY3LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2RhNzdmMixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNjYzVkZTgsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjYmU0YmRiLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2FlM2VjOSxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM5YzM2YjUsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjODYyZTljXFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JhcGUtMDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTE6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0yOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTQ6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS01OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTc6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS04OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtOTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBWaW9sZXRcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXZpb2xldC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjNmMGZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2U1ZGJmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNkMGJmZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjYjE5N2ZjLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzk3NzVmYSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM4NDVlZjcsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNzk1MGYyLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzcwNDhlOCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM2NzQxZDksXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjNWYzZGM0XFxcXG4pO1xcXFxuXFxcXG4kb2MtdmlvbGV0LTA6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTE6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTI6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTM6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTQ6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTU6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTY6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTc6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTg6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTk6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEluZGlnb1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtaW5kaWdvLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlZGYyZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZGJlNGZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2JhYzhmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM5MWE3ZmYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNzQ4ZmZjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzVjN2NmYSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM0YzZlZjUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNDI2M2ViLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzNiNWJkYixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMzNjRmYzdcXFxcbik7XFxcXG5cXFxcbiRvYy1pbmRpZ28tMDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tODogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tOTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQmx1ZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtYmx1ZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTdmNWZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2QwZWJmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNhNWQ4ZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNzRjMGZjLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzRkYWJmNyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMzMzlhZjAsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMjI4YmU2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzFjN2VkNixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMxOTcxYzIsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMTg2NGFiXFxcXG4pO1xcXFxuXFxcXG4kb2MtYmx1ZS0wOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTE6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0zOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTQ6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS02OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTc6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtODogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS05OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQ3lhblxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtY3lhbi1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTNmYWZjLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2M1ZjZmYSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICM5OWU5ZjIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNjZkOWU4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzNiYzlkYixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMyMmI4Y2YsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMTVhYWJmLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzEwOThhZCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMwYzg1OTksXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMGI3Mjg1XFxcXG4pO1xcXFxuXFxcXG4kb2MtY3lhbi0wOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTE6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0zOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTQ6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi02OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTc6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tODogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi05OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgVGVhbFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtdGVhbC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTZmY2Y1LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2MzZmFlOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICM5NmYyZDcsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNjNlNmJlLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzM4ZDlhOSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMyMGM5OTcsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMTJiODg2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzBjYTY3OCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMwOTkyNjgsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMDg3ZjViXFxcXG4pO1xcXFxuXFxcXG4kb2MtdGVhbC0wOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTE6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0zOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTQ6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC02OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTc6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtODogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC05OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgR3JlZW5cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyZWVuLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlYmZiZWUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZDNmOWQ4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2IyZjJiYixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM4Y2U5OWEsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNjlkYjdjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzUxY2Y2NixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM0MGMwNTcsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMzdiMjRkLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzJmOWU0NCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMyYjhhM2VcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmVlbi0wOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTI6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0zOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNDogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTU6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi02OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNzogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTg6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi05OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIExpbWVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWxpbWUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y0ZmNlMyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNlOWZhYzgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZDhmNWEyLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2MwZWI3NSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNhOWUzNGIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjOTRkODJkLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzgyYzkxZSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM3NGI4MTYsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjNjZhODBmLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzVjOTQwZFxcXFxuKTtcXFxcblxcXFxuJG9jLWxpbWUtMDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0xOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTI6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtbGltZS00OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTU6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtbGltZS03OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTg6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtOTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFllbGxvd1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MteWVsbG93LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY5ZGIsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZmM2JmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmZWM5OSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmUwNjYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmZkNDNiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZjYzQxOSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmYWIwMDUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjU5ZjAwLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2YwOGMwMCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNlNjc3MDBcXFxcbik7XFxcXG5cXFxcbiRvYy15ZWxsb3ctMDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctODogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctOTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgT3JhbmdlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1vcmFuZ2UtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjRlNixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmU4Y2MsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZkOGE4LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmYzA3OCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZmE5NGQsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmY5MjJiLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZkN2UxNCxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmNzY3MDcsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZTg1OTBjLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2Q5NDgwZlxcXFxuKTtcXFxcblxcXFxuJG9jLW9yYW5nZS0wOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0xOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0yOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0zOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS00OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS01OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS02OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS03OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS04OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS05OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBDb2xvciBsaXN0XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1jb2xvci1zcGVjdHJ1bTogICA5O1xcXFxuXFxcXG4kb2MtY29sb3ItbGlzdDogKFxcXFxuICAkb2MtZ3JheS1saXN0OiAgICAgIFxcXFxcXFwiZ3JheVxcXFxcXFwiLFxcXFxuICAkb2MtcmVkLWxpc3Q6ICAgICAgXFxcXFxcXCJyZWRcXFxcXFxcIixcXFxcbiAgJG9jLXBpbmstbGlzdDogICAgICBcXFxcXFxcInBpbmtcXFxcXFxcIixcXFxcbiAgJG9jLWdyYXBlLWxpc3Q6ICAgICAgXFxcXFxcXCJncmFwZVxcXFxcXFwiLFxcXFxuICAkb2MtdmlvbGV0LWxpc3Q6ICAgICAgXFxcXFxcXCJ2aW9sZXRcXFxcXFxcIixcXFxcbiAgJG9jLWluZGlnby1saXN0OiAgICAgIFxcXFxcXFwiaW5kaWdvXFxcXFxcXCIsXFxcXG4gICRvYy1ibHVlLWxpc3Q6ICAgICAgXFxcXFxcXCJibHVlXFxcXFxcXCIsXFxcXG4gICRvYy1jeWFuLWxpc3Q6ICAgICAgXFxcXFxcXCJjeWFuXFxcXFxcXCIsXFxcXG4gICRvYy10ZWFsLWxpc3Q6ICAgICAgXFxcXFxcXCJ0ZWFsXFxcXFxcXCIsXFxcXG4gICRvYy1ncmVlbi1saXN0OiAgICAgIFxcXFxcXFwiZ3JlZW5cXFxcXFxcIixcXFxcbiAgJG9jLWxpbWUtbGlzdDogICAgICBcXFxcXFxcImxpbWVcXFxcXFxcIixcXFxcbiAgJG9jLXllbGxvdy1saXN0OiAgICAgIFxcXFxcXFwieWVsbG93XFxcXFxcXCIsXFxcXG4gICRvYy1vcmFuZ2UtbGlzdDogICAgICBcXFxcXFxcIm9yYW5nZVxcXFxcXFwiXFxcXG4pO1xcXFxuXFxcIl0sXFxcInNvdXJjZVJvb3RcXFwiOlxcXCJcXFwifV0pO1xcbi8vIEV4cG9ydHNcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKF9fX0NTU19MT0FERVJfRVhQT1JUX19fKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlGZUhCdmNuUkVhV0ZzYjJjdWMyTnpjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPMEZCUVVFN1FVRkRPRWc3UVVGRGFrSTdRVUZEVHp0QlFVTndTQ3cwUTBGQk5FTXNjVnBCUVhsTU8wRkJRM0pQTERoQ1FVRTRRaXgxUjBGQk1rSXNRMEZCUXl4blNFRkJjVU03UVVGREwwWXNlVU5CUVhsRExEQkhRVUVyUWp0QlFVTjRSVHRCUVVOQkxHMUVRVUZ0UkN4blJFRkJaMFFzUjBGQlJ5eDNRMEZCZDBNc2NVUkJRWEZFTERSRlFVRTBSU3gxUWtGQmRVSXNiME5CUVc5RExHbEVRVUZwUkN4SFFVRkhMRFpEUVVFMlF5eDFSRUZCZFVRc2MwSkJRWE5DTEVkQlFVY3NlVVJCUVhsRUxHbENRVUZwUWl4SFFVRkhMSE5EUVVGelF5eG5Ra0ZCWjBJc2EwSkJRV3RDTERSRFFVRTBReXh4UWtGQmNVSXNiVU5CUVcxRExFZEJRVWNzWjBSQlFXZEVMR3RDUVVGclFpd3lRa0ZCTWtJc1IwRkJSeXg1UkVGQmVVUXNNa0pCUVRKQ0xIZENRVUYzUWl4SFFVRkhMRFpFUVVFMlJDeHBSRUZCYVVRc1IwRkJSeXhuUlVGQlowVXNjVUpCUVhGQ0xFZEJRVWNzZFVoQlFYVklMR2xDUVVGcFFpd3lRa0ZCTWtJc1IwRkJSeXhuUlVGQlowVXNjVUpCUVhGQ0xFZEJRVWNzZVVSQlFYbEVMR3RDUVVGclFpeG5SVUZCWjBVc01FSkJRVEJDTEdsQ1FVRnBRaXhIUVVGSExEWkNRVUUyUWl4NVJFRkJlVVFzYTBWQlFXdEZMRXRCUVVzc2RVVkJRWFZGTEhWQ1FVRjFRaXhMUVVGTExFZEJRVWNzYjBWQlFXOUZMRFJDUVVFMFFpeDFRa0ZCZFVJc2NVSkJRWEZDTERSQ1FVRTBRaXd5UWtGQk1rSXNSMEZCUnl3clJVRkJLMFVzWjBKQlFXZENMRWRCUVVjc01FVkJRVEJGTEhOQ1FVRnpRaXh6UWtGQmMwSXNSMEZCUnl4eFJFRkJjVVFzWjBKQlFXZENMR2xDUVVGcFFpeHZRa0ZCYjBJc2QwSkJRWGRDTERCRFFVRXdReXh4UmtGQmNVWXNNRUpCUVRCQ0xIRkNRVUZ4UWl4dFFrRkJiVUlzUjBGQlJ5d3lSRUZCTWtRc2FVUkJRV2xFTEVkQlFVY3NORVJCUVRSRUxHdEVRVUZyUkN4eFFrRkJjVUlzUjBGQlJ5eDVSRUZCZVVRc2FVSkJRV2xDTEVkQlFVY3NUMEZCVHl4clRrRkJhMDRzVjBGQlZ5eE5RVUZOTEV0QlFVc3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExFdEJRVXNzUzBGQlN5eFhRVUZYTEZkQlFWY3NTMEZCU3l4TFFVRkxMRlZCUVZVc1MwRkJTeXhMUVVGTExGVkJRVlVzVlVGQlZTeFhRVUZYTEZkQlFWY3NWMEZCVnl4TFFVRkxMRXRCUVVzc1ZVRkJWU3hYUVVGWExFdEJRVXNzUzBGQlN5eFhRVUZYTEZkQlFWY3NTMEZCU3l4TFFVRkxMRmRCUVZjc1MwRkJTeXhMUVVGTExGZEJRVmNzUzBGQlN5eE5RVUZOTEZWQlFWVXNWMEZCVnl4TFFVRkxMRXRCUVVzc1YwRkJWeXhOUVVGTkxFdEJRVXNzVlVGQlZTeFhRVUZYTEZkQlFWY3NWVUZCVlN4TFFVRkxMRXRCUVVzc1MwRkJTeXhYUVVGWExFdEJRVXNzUzBGQlN5eFhRVUZYTEV0QlFVc3NTMEZCU3l4TFFVRkxMRmRCUVZjc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eExRVUZMTEV0QlFVc3NWVUZCVlN4TFFVRkxMRXRCUVVzc1YwRkJWeXhYUVVGWExFdEJRVXNzVFVGQlRTeFZRVUZWTEZWQlFWVXNWVUZCVlN4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eFBRVUZQTEUxQlFVMHNWMEZCVnl4TlFVRk5MRTFCUVUwc1YwRkJWeXhYUVVGWExFMUJRVTBzVFVGQlRTeFZRVUZWTEdsRlFVRnBSU3gxUWtGQmRVSXNhME5CUVd0RExFbEJRVWtzWlVGQlpTeExRVUZMTEVkQlFVY3NjMFJCUVhORUxHRkJRV0VzZDBOQlFYZERMRWRCUVVjc2VVTkJRWGxETEdsQ1FVRnBRaXcwUWtGQk5FSXNkVVJCUVhWRUxIbERRVUY1UXl3NFMwRkJPRXNzZVVKQlFYbENMSE5EUVVGelF5eHRSRUZCYlVRc1MwRkJTeXh4UTBGQmNVTXNlVVJCUVhsRUxIZENRVUYzUWl4TFFVRkxMRzFFUVVGdFJDeHRRa0ZCYlVJc1MwRkJTeXc0UWtGQk9FSXNhMEpCUVd0Q0xHOUNRVUZ2UWl3NFEwRkJPRU1zZFVKQlFYVkNMSEZEUVVGeFF5eExRVUZMTEhsQ1FVRjVRaXh4UWtGQmNVSXNjMEpCUVhOQ0xDdENRVUVyUWl4UFFVRlBMR2REUVVGblF5d3JRa0ZCSzBJc05FSkJRVFJDTEU5QlFVOHNiME5CUVc5RExIRkVRVUZ4UkN4UFFVRlBMSFZEUVVGMVF5eDVRa0ZCZVVJc1QwRkJUeXh0UlVGQmJVVXNjVUpCUVhGQ0xDdENRVUVyUWl4UFFVRlBMSFZEUVVGMVF5eDVRa0ZCZVVJc1QwRkJUeXhMUVVGTExESkNRVUV5UWl3eVFrRkJNa0lzYzBKQlFYTkNMRzlGUVVGdlJTdzRRa0ZCT0VJc2NVSkJRWEZDTEhGRFFVRnhReXh6UlVGQmMwVXNlVUpCUVhsQ0xEWkNRVUUyUWl4WFFVRlhMRk5CUVZNc2QwSkJRWGRDTERaQ1FVRTJRaXd5UWtGQk1rSXNhME5CUVd0RExHbERRVUZwUXl4M1FrRkJkMElzZDBKQlFYZENMRmRCUVZjc1UwRkJVeXc0UWtGQk9FSXNORUpCUVRSQ0xEUkNRVUUwUWl4VFFVRlRMRTlCUVU4c1MwRkJTeXcyUTBGQk5rTXNhMEpCUVd0Q0xHMUNRVUZ0UWl4elFrRkJjMElzTkVKQlFUUkNMRFJEUVVFMFF5dzRSa0ZCT0VZc09FSkJRVGhDTEhWQ1FVRjFRaXgxUWtGQmRVSXNhVUpCUVdsQ0xIRkVRVUZ4UkN4UFFVRlBMR2RDUVVGblFpeHpSRUZCYzBRc2VVSkJRWGxDTEU5QlFVOHNZVUZCWVN4eFFrRkJjVUlzVDBGQlR5eExRVUZMTEVkQlFVY3NhMHhCUVd0TUxEWkNRVUUyUWl3MFVVRkJORkVzT0VOQlFUaERMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMREJSUVVFd1VTdzBRMEZCTkVNc01FTkJRVEJETERCRFFVRXdReXd3UTBGQk1FTXNNRU5CUVRCRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc05GRkJRVFJSTERoRFFVRTRReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXc0VVVGQk9GRXNaMFJCUVdkRUxEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExHZFNRVUZuVWl4clJFRkJhMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjFKQlFXZFNMR3RFUVVGclJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDdzBVVUZCTkZFc09FTkJRVGhETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSUlFVRTBVU3c0UTBGQk9FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORkZCUVRSUkxEaERRVUU0UXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3NFVVRkJPRkVzWjBSQlFXZEVMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRFJSUVVFMFVTdzRRMEZCT0VNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc1oxSkJRV2RTTEd0RVFVRnJSQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huVWtGQloxSXNhMFJCUVd0RUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxIbEdRVUY1Uml4MVpFRkJkV1FzY1VKQlFYRkNPMEZCUTNSeWFFSTdRVUZEUVN4cFJVRkJaU3gxUWtGQmRVSXNSVUZCUXlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWpiMjF3YjI1bGJuUnpMMFY0Y0c5eWRFUnBZV3h2Wnk1elkzTnpQems0WWpFaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeThnU1cxd2IzSjBjMXh1YVcxd2IzSjBJRjlmWDBOVFUxOU1UMEZFUlZKZlFWQkpYMU5QVlZKRFJVMUJVRjlKVFZCUFVsUmZYMThnWm5KdmJTQmNJaTR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMMk56Y3kxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwzTnZkWEpqWlUxaGNITXVhbk5jSWp0Y2JtbHRjRzl5ZENCZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5SlRWQlBVbFJmWDE4Z1puSnZiU0JjSWk0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDJOemN5MXNiMkZrWlhJdlpHbHpkQzl5ZFc1MGFXMWxMMkZ3YVM1cWMxd2lPMXh1YVcxd2IzSjBJRjlmWDBOVFUxOU1UMEZFUlZKZlIwVlVYMVZTVEY5SlRWQlBVbFJmWDE4Z1puSnZiU0JjSWk0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDJOemN5MXNiMkZrWlhJdlpHbHpkQzl5ZFc1MGFXMWxMMmRsZEZWeWJDNXFjMXdpTzF4dWRtRnlJRjlmWDBOVFUxOU1UMEZFUlZKZlZWSk1YMGxOVUU5U1ZGOHdYMTlmSUQwZ2JtVjNJRlZTVENoY0ltUmhkR0U2YVcxaFoyVXZjRzVuTzJKaGMyVTJOQ3hwVmtKUFVuY3dTMGRuYjBGQlFVRk9VMVZvUlZWblFVRkJRa0ZCUVVGQlVVTkJXVUZCUVVGbU9DODVhRUZCUVVGTlZXeEZVVlpSTkZReVRtdFpSMEZSV1dOQlVETjFRMVJhYUhjeFowZEhXV2hCUjBKYVNVRXZibGxFUTJkQ1JFRnRPVUpIUkZkQlFVcDVVa05uVEdGQ1EwRkJaMWgzYVhoNlFWTXdjR2RCUVVGQlFrcFNWVFZGY210S1oyZG5QVDFjSWl3Z2FXMXdiM0owTG0xbGRHRXVkWEpzS1R0Y2JuWmhjaUJmWDE5RFUxTmZURTlCUkVWU1gwVllVRTlTVkY5Zlh5QTlJRjlmWDBOVFUxOU1UMEZFUlZKZlFWQkpYMGxOVUU5U1ZGOWZYeWhmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlUVDFWU1EwVk5RVkJmU1UxUVQxSlVYMTlmS1R0Y2JuWmhjaUJmWDE5RFUxTmZURTlCUkVWU1gxVlNURjlTUlZCTVFVTkZUVVZPVkY4d1gxOWZJRDBnWDE5ZlExTlRYMHhQUVVSRlVsOUhSVlJmVlZKTVgwbE5VRTlTVkY5Zlh5aGZYMTlEVTFOZlRFOUJSRVZTWDFWU1RGOUpUVkJQVWxSZk1GOWZYeWs3WEc0dkx5Qk5iMlIxYkdWY2JsOWZYME5UVTE5TVQwRkVSVkpmUlZoUVQxSlVYMTlmTG5CMWMyZ29XMjF2WkhWc1pTNXBaQ3dnWENJNlpYaHdiM0owSUh0Y1hHNGdJSFJvWlcxbFJtbHNkR1Z5T2lCcGJuWmxjblFvT1RNbEtTQm9kV1V0Y205MFlYUmxLREU0TUdSbFp5azdYRnh1ZlZ4Y2JseGNiaTVsZUdOaGJHbGtjbUYzSUM1RmVIQnZjblJFYVdGc2IyZGZYM0J5WlhacFpYY2dlMXhjYmlBZ0xTMXdjbVYyYVdWM0xYQmhaR1JwYm1jNklHTmhiR01vZG1GeUtDMHRjM0JoWTJVdFptRmpkRzl5S1NBcUlEUXBPMXhjYmlBZ1ltRmphMmR5YjNWdVpEb2dkWEpzS0Z3aUlDc2dYMTlmUTFOVFgweFBRVVJGVWw5VlVreGZVa1ZRVEVGRFJVMUZUbFJmTUY5Zlh5QXJJRndpS1NCc1pXWjBJR05sYm5SbGNqdGNYRzRnSUhSbGVIUXRZV3hwWjI0NklHTmxiblJsY2p0Y1hHNGdJSEJoWkdScGJtYzZJSFpoY2lndExYQnlaWFpwWlhjdGNHRmtaR2x1WnlrN1hGeHVJQ0J0WVhKbmFXNHRZbTkwZEc5dE9pQmpZV3hqS0haaGNpZ3RMWE53WVdObExXWmhZM1J2Y2lrZ0tpQXpLVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGtWNGNHOXlkRVJwWVd4dloxOWZjSEpsZG1sbGR5QmpZVzUyWVhNZ2UxeGNiaUFnYldGNExYZHBaSFJvT2lCallXeGpLREV3TUNVZ0xTQjJZWElvTFMxd2NtVjJhV1YzTFhCaFpHUnBibWNwSUNvZ01pazdYRnh1SUNCdFlYZ3RhR1ZwWjJoME9pQXlOWEpsYlR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjdWRHaGxiV1V0TFdSaGNtc2dMa1Y0Y0c5eWRFUnBZV3h2WjE5ZmNISmxkbWxsZHlCallXNTJZWE1nZTF4Y2JpQWdabWxzZEdWeU9pQnViMjVsTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVJYaHdiM0owUkdsaGJHOW5YMTloWTNScGIyNXpJSHRjWEc0Z0lIZHBaSFJvT2lBeE1EQWxPMXhjYmlBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjWEc0Z0lHZHlhV1F0WjJGd09pQmpZV3hqS0haaGNpZ3RMWE53WVdObExXWmhZM1J2Y2lrZ0tpQXlLVHRjWEc0Z0lHRnNhV2R1TFdsMFpXMXpPaUIwYjNBN1hGeHVJQ0JxZFhOMGFXWjVMV052Ym5SbGJuUTZJSE53WVdObExXSmxkSGRsWlc0N1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0xTMXRiMkpwYkdVdVpYaGpZV3hwWkhKaGR5QXVSWGh3YjNKMFJHbGhiRzluSUh0Y1hHNGdJR1JwYzNCc1lYazZJR1pzWlhnN1hGeHVJQ0JtYkdWNExXUnBjbVZqZEdsdmJqb2dZMjlzZFcxdU8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5MHRiVzlpYVd4bExtVjRZMkZzYVdSeVlYY2dMa1Y0Y0c5eWRFUnBZV3h2WjE5ZllXTjBhVzl1Y3lCN1hGeHVJQ0JtYkdWNExXUnBjbVZqZEdsdmJqb2dZMjlzZFcxdU8xeGNiaUFnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjdExXMXZZbWxzWlM1bGVHTmhiR2xrY21GM0lDNUZlSEJ2Y25SRWFXRnNiMmRmWDJGamRHbHZibk1nUGlBcUlIdGNYRzRnSUcxaGNtZHBiaTFpYjNSMGIyMDZJR05oYkdNb2RtRnlLQzB0YzNCaFkyVXRabUZqZEc5eUtTQXFJRE1wTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHkwdGJXOWlhV3hsTG1WNFkyRnNhV1J5WVhjZ0xrVjRjRzl5ZEVScFlXeHZaMTlmY0hKbGRtbGxkeUJqWVc1MllYTWdlMXhjYmlBZ2JXRjRMV2hsYVdkb2REb2dNekIyYUR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjdExXMXZZbWxzWlM1bGVHTmhiR2xrY21GM0lDNUZlSEJ2Y25SRWFXRnNiMmRmWDJScFlXeHZaeXhjWEc0dVpYaGpZV3hwWkhKaGR5MHRiVzlpYVd4bExtVjRZMkZzYVdSeVlYY2dMa1Y0Y0c5eWRFUnBZV3h2WjE5ZlpHbGhiRzluSUM1SmMyeGhibVFnZTF4Y2JpQWdhR1ZwWjJoME9pQXhNREFsTzF4Y2JpQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjdExXMXZZbWxzWlM1bGVHTmhiR2xrY21GM0lDNUZlSEJ2Y25SRWFXRnNiMmRmWDJScFlXeHZaeUF1U1hOc1lXNWtJSHRjWEc0Z0lHOTJaWEptYkc5M0xYazZJR0YxZEc4N1hGeHVmVnhjYmx4Y2JpNWxlR05oYkdsa2NtRjNJQzVGZUhCdmNuUkVhV0ZzYjJjdExXcHpiMjRnTGtWNGNHOXlkRVJwWVd4dlp5MWpZWEprY3lCN1hGeHVJQ0JrYVhOd2JHRjVPaUJuY21sa08xeGNiaUFnWjNKcFpDMTBaVzF3YkdGMFpTMWpiMngxYlc1ek9pQnlaWEJsWVhRb1lYVjBieTFtYVhRc0lHMXBibTFoZUNneU1EQndlQ3dnTVdaeUtTazdYRnh1SUNCcWRYTjBhV1o1TFdsMFpXMXpPaUJqWlc1MFpYSTdYRnh1SUNCeWIzY3RaMkZ3T2lBeVpXMDdYRnh1ZlZ4Y2JrQnRaV1JwWVNBb2JXRjRMWGRwWkhSb09pQTBOakJ3ZUNrZ2UxeGNiaUFnTG1WNFkyRnNhV1J5WVhjZ0xrVjRjRzl5ZEVScFlXeHZaeTB0YW5OdmJpQXVSWGh3YjNKMFJHbGhiRzluTFdOaGNtUnpJSHRjWEc0Z0lDQWdaM0pwWkMxMFpXMXdiR0YwWlMxamIyeDFiVzV6T2lCeVpYQmxZWFFvWVhWMGJ5MW1hWFFzSUcxcGJtMWhlQ2d5TkRCd2VDd2dNV1p5S1NrN1hGeHVJQ0I5WEZ4dUlDQXVaWGhqWVd4cFpISmhkeUF1Ulhod2IzSjBSR2xoYkc5bkxTMXFjMjl1SUM1RmVIQnZjblJFYVdGc2IyY3RZMkZ5WkhNZ0xrTmhjbVF0WkdWMFlXbHNjeUI3WEZ4dUlDQWdJRzFwYmkxb1pXbG5hSFE2SURRd2NIZzdYRnh1SUNCOVhGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNUZlSEJ2Y25SRWFXRnNiMmN0TFdwemIyNGdMa1Y0Y0c5eWRFUnBZV3h2WnkxallYSmtjeUF1VUhKdmFtVmpkRTVoYldVZ2UxeGNiaUFnZDJsa2RHZzZJQzF0YjNvdFptbDBMV052Ym5SbGJuUTdYRnh1SUNCM2FXUjBhRG9nWm1sMExXTnZiblJsYm5RN1hGeHVJQ0J0WVhKbmFXNDZJREZsYlNCaGRYUnZPMXhjYmlBZ1lXeHBaMjR0YVhSbGJYTTZJR1pzWlhndGMzUmhjblE3WEZ4dUlDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ1kyOXNkVzF1TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVJYaHdiM0owUkdsaGJHOW5MUzFxYzI5dUlDNUZlSEJ2Y25SRWFXRnNiMmN0WTJGeVpITWdMbEJ5YjJwbFkzUk9ZVzFsSUM1VVpYaDBTVzV3ZFhRZ2UxeGNiaUFnZDJsa2RHZzZJR0YxZEc4N1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNUZlSEJ2Y25SRWFXRnNiMmN0TFdwemIyNGdMa1Y0Y0c5eWRFUnBZV3h2WnkxallYSmtjeUF1VUhKdmFtVmpkRTVoYldVdGJHRmlaV3dnZTF4Y2JpQWdiV0Z5WjJsdU9pQXdMall5TldWdElEQTdYRnh1SUNCbWIyNTBMWGRsYVdkb2REb2dZbTlzWkR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ1luVjBkRzl1TGtWNGNHOXlkRVJwWVd4dlp5MXBiV0ZuWlVWNGNHOXlkRUoxZEhSdmJpQjdYRnh1SUNCM2FXUjBhRG9nTlhKbGJUdGNYRzRnSUdobGFXZG9kRG9nTlhKbGJUdGNYRzRnSUcxaGNtZHBiam9nTUNBd0xqSmxiVHRjWEc0Z0lHSnZjbVJsY2kxeVlXUnBkWE02SURGeVpXMDdYRnh1SUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFpZFhSMGIyNHRZMjlzYjNJcE8xeGNiaUFnWW05NExYTm9ZV1J2ZHpvZ01DQXpjSGdnTlhCNElDMHhjSGdnY21kaVlTZ3dMQ0F3TENBd0xDQXdMakk0S1N3Z01DQTJjSGdnTVRCd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHhOQ2s3WEZ4dUlDQm1iMjUwTFdaaGJXbHNlVG9nUTJGelkyRmthV0U3WEZ4dUlDQm1iMjUwTFhOcGVtVTZJREV1T0dWdE8xeGNiaUFnWTI5c2IzSTZJQ05tWm1abVptWTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJR0oxZEhSdmJpNUZlSEJ2Y25SRWFXRnNiMmN0YVcxaFoyVkZlSEJ2Y25SQ2RYUjBiMjQ2YUc5MlpYSWdlMXhjYmlBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0WW5WMGRHOXVMV052Ykc5eUxXUmhjbXRsY2lrN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lHSjFkSFJ2Ymk1RmVIQnZjblJFYVdGc2IyY3RhVzFoWjJWRmVIQnZjblJDZFhSMGIyNDZZV04wYVhabElIdGNYRzRnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV0oxZEhSdmJpMWpiMnh2Y2kxa1lYSnJaWE4wS1R0Y1hHNGdJR0p2ZUMxemFHRmtiM2M2SUc1dmJtVTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJR0oxZEhSdmJpNUZlSEJ2Y25SRWFXRnNiMmN0YVcxaFoyVkZlSEJ2Y25SQ2RYUjBiMjRnYzNabklIdGNYRzRnSUhkcFpIUm9PaUF3TGpsbGJUdGNYRzU5WENJc0lGd2lYQ0lzZTF3aWRtVnljMmx2Ymx3aU9qTXNYQ0p6YjNWeVkyVnpYQ0k2VzF3aWQyVmljR0ZqYXpvdkx5NHZMaTR2TGk0dlkzTnpMM1poY21saFlteGxjeTV0YjJSMWJHVXVjMk56YzF3aUxGd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlGZUhCdmNuUkVhV0ZzYjJjdWMyTnpjMXdpTEZ3aWQyVmljR0ZqYXpvdkx5NHZMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDI5d1pXNHRZMjlzYjNJdmIzQmxiaTFqYjJ4dmNpNXpZM056WENKZExGd2libUZ0WlhOY0lqcGJYU3hjSW0xaGNIQnBibWR6WENJNlhDSkJRVlZCTzBWQlEwVXNNa05CUVVFN1FVTlVSanM3UVVGRFJUdEZRVU5GTEdkRVFVRkJPMFZCUlVFc0swUkJRVUU3UlVGRlFTeHJRa0ZCUVR0RlFVTkJMQ3RDUVVGQk8wVkJRMEVzTkVOQlFVRTdRVUZCU2p0QlFVZEZPMFZCUTBVc2EwUkJRVUU3UlVGRFFTeHBRa0ZCUVR0QlFVUktPMEZCU1VVN1JVRkRSU3haUVVGQk8wRkJSa283UVVGTFJUdEZRVU5GTEZkQlFVRTdSVUZEUVN4aFFVRkJPMFZCUTBFc2RVTkJRVUU3UlVGRFFTeG5Ra0ZCUVR0RlFVTkJMRGhDUVVGQk8wRkJTRW83UVVGUFNUdEZRVU5GTEdGQlFVRTdSVUZEUVN4elFrRkJRVHRCUVV4T08wRkJVVWs3UlVGRFJTeHpRa0ZCUVR0RlFVTkJMRzFDUVVGQk8wRkJUazQ3UVVGVFNUdEZRVU5GTERSRFFVRkJPMEZCVUU0N1FVRlZTVHRGUVVORkxHZENRVUZCTzBGQlVrNDdRVUZYU1RzN1JVRkZSU3haUVVGQk8wVkJRMEVzYzBKQlFVRTdRVUZVVGp0QlFWbEpPMFZCUTBVc1owSkJRVUU3UVVGV1RqczdRVUZsU1R0RlFVTkZMR0ZCUVVFN1JVRkRRU3d5UkVGQlFUdEZRVU5CTEhGQ1FVRkJPMFZCUTBFc1dVRkJRVHRCUVZwT08wRkJZMDA3UlVGT1JqdEpRVTlKTERKRVFVRkJPMFZCV0U0N1JVRlpUVHRKUVVORkxHZENRVUZCTzBWQlZsSTdRVUZEUmp0QlFXRk5PMFZCUTBVc2RVSkJRVUU3UlVGQlFTeHJRa0ZCUVR0RlFVTkJMR2RDUVVGQk8wVkJRMEVzZFVKQlFVRTdSVUZEUVN4elFrRkJRVHRCUVZoU08wRkJZVkU3UlVGRFJTeFhRVUZCTzBGQldGWTdRVUZsVFR0RlFVTkZMR2xDUVVGQk8wVkJRMEVzYVVKQlFVRTdRVUZpVWp0QlFXdENSVHRGUVVORkxGZEJRVUU3UlVGRFFTeFpRVUZCTzBWQlEwRXNaVUZCUVR0RlFVVkJMRzFDUVVGQk8wVkJRMEVzY1VOQlFVRTdSVUZEUVN4blJrRkJRVHRGUVVkQkxIRkNRVUZCTzBWQlEwRXNaMEpCUVVFN1JVRkRRU3hqUXpkR1pUdEJSREJGYmtJN1FVRnhRa2s3UlVGRFJTdzBRMEZCUVR0QlFXNUNUanRCUVhGQ1NUdEZRVU5GTERaRFFVRkJPMFZCUTBFc1owSkJRVUU3UVVGdVFrNDdRVUZ6UWtrN1JVRkRSU3haUVVGQk8wRkJjRUpPWENJc1hDSnpiM1Z5WTJWelEyOXVkR1Z1ZEZ3aU9sdGNJa0JwYlhCdmNuUWdYRnhjSW05d1pXNHRZMjlzYjNJdmIzQmxiaTFqYjJ4dmNpNXpZM056WEZ4Y0lqdGNYRzVjWEc1QWJXbDRhVzRnYVhOTmIySnBiR1VvS1NCN1hGeHVJQ0JBWVhRdGNtOXZkQ0F1WlhoallXeHBaSEpoZHkwdGJXOWlhV3hsSTNzbWZTQjdYRnh1SUNBZ0lFQmpiMjUwWlc1ME8xeGNiaUFnZlZ4Y2JuMWNYRzVjWEc0a2RHaGxiV1V0Wm1sc2RHVnlPaUJjWEZ3aWFXNTJaWEowS0RrekpTa2dhSFZsTFhKdmRHRjBaU2d4T0RCa1pXY3BYRnhjSWp0Y1hHNWNYRzQ2Wlhod2IzSjBJSHRjWEc0Z0lIUm9aVzFsUm1sc2RHVnlPaUIxYm5GMWIzUmxLQ1IwYUdWdFpTMW1hV3gwWlhJcE8xeGNibjFjWEc1Y0lpeGNJa0JwYlhCdmNuUWdYRnhjSWk0dUwyTnpjeTkyWVhKcFlXSnNaWE11Ylc5a2RXeGxYRnhjSWp0Y1hHNWNYRzR1WlhoallXeHBaSEpoZHlCN1hGeHVJQ0F1Ulhod2IzSjBSR2xoYkc5blgxOXdjbVYyYVdWM0lIdGNYRzRnSUNBZ0xTMXdjbVYyYVdWM0xYQmhaR1JwYm1jNklHTmhiR01vZG1GeUtDMHRjM0JoWTJVdFptRmpkRzl5S1NBcUlEUXBPMXhjYmx4Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMWNtd29YRnhjSW1SaGRHRTZhVzFoWjJVdmNHNW5PMkpoYzJVMk5DeHBWa0pQVW5jd1MwZG5iMEZCUVVGT1UxVm9SVlZuUVVGQlFrRkJRVUZCVVVOQldVRkJRVUZtT0M4NWFFRkJRVUZOVld4RlVWWlJORlF5VG10WlIwRlJXV05CVUROMVExUmFhSGN4WjBkSFdXaEJSMEphU1VFdmJsbEVRMmRDUkVGdE9VSkhSRmRCUVVwNVVrTm5UR0ZDUTBGQloxaDNhWGg2UVZNd2NHZEJRVUZCUWtwU1ZUVkZjbXRLWjJkblBUMWNYRndpS1Z4Y2JpQWdJQ0FnSUd4bFpuUWdZMlZ1ZEdWeU8xeGNiaUFnSUNCMFpYaDBMV0ZzYVdkdU9pQmpaVzUwWlhJN1hGeHVJQ0FnSUhCaFpHUnBibWM2SUhaaGNpZ3RMWEJ5WlhacFpYY3RjR0ZrWkdsdVp5azdYRnh1SUNBZ0lHMWhjbWRwYmkxaWIzUjBiMjA2SUdOaGJHTW9kbUZ5S0MwdGMzQmhZMlV0Wm1GamRHOXlLU0FxSURNcE8xeGNiaUFnZlZ4Y2JseGNiaUFnTGtWNGNHOXlkRVJwWVd4dloxOWZjSEpsZG1sbGR5QmpZVzUyWVhNZ2UxeGNiaUFnSUNCdFlYZ3RkMmxrZEdnNklHTmhiR01vTVRBd0pTQXRJSFpoY2lndExYQnlaWFpwWlhjdGNHRmtaR2x1WnlrZ0tpQXlLVHRjWEc0Z0lDQWdiV0Y0TFdobGFXZG9kRG9nTWpWeVpXMDdYRnh1SUNCOVhGeHVYRnh1SUNBbUxuUm9aVzFsTFMxa1lYSnJJQzVGZUhCdmNuUkVhV0ZzYjJkZlgzQnlaWFpwWlhjZ1kyRnVkbUZ6SUh0Y1hHNGdJQ0FnWm1sc2RHVnlPaUJ1YjI1bE8xeGNiaUFnZlZ4Y2JseGNiaUFnTGtWNGNHOXlkRVJwWVd4dloxOWZZV04wYVc5dWN5QjdYRnh1SUNBZ0lIZHBaSFJvT2lBeE1EQWxPMXhjYmlBZ0lDQmthWE53YkdGNU9pQm1iR1Y0TzF4Y2JpQWdJQ0JuY21sa0xXZGhjRG9nWTJGc1l5aDJZWElvTFMxemNHRmpaUzFtWVdOMGIzSXBJQ29nTWlrN1hGeHVJQ0FnSUdGc2FXZHVMV2wwWlcxek9pQjBiM0E3WEZ4dUlDQWdJR3AxYzNScFpua3RZMjl1ZEdWdWREb2djM0JoWTJVdFltVjBkMlZsYmp0Y1hHNGdJSDFjWEc1Y1hHNGdJRUJwYm1Oc2RXUmxJR2x6VFc5aWFXeGxJSHRjWEc0Z0lDQWdMa1Y0Y0c5eWRFUnBZV3h2WnlCN1hGeHVJQ0FnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjWEc0Z0lDQWdJQ0JtYkdWNExXUnBjbVZqZEdsdmJqb2dZMjlzZFcxdU8xeGNiaUFnSUNCOVhGeHVYRnh1SUNBZ0lDNUZlSEJ2Y25SRWFXRnNiMmRmWDJGamRHbHZibk1nZTF4Y2JpQWdJQ0FnSUdac1pYZ3RaR2x5WldOMGFXOXVPaUJqYjJ4MWJXNDdYRnh1SUNBZ0lDQWdZV3hwWjI0dGFYUmxiWE02SUdObGJuUmxjanRjWEc0Z0lDQWdmVnhjYmx4Y2JpQWdJQ0F1Ulhod2IzSjBSR2xoYkc5blgxOWhZM1JwYjI1eklENGdLaUI3WEZ4dUlDQWdJQ0FnYldGeVoybHVMV0p2ZEhSdmJUb2dZMkZzWXloMllYSW9MUzF6Y0dGalpTMW1ZV04wYjNJcElDb2dNeWs3WEZ4dUlDQWdJSDFjWEc1Y1hHNGdJQ0FnTGtWNGNHOXlkRVJwWVd4dloxOWZjSEpsZG1sbGR5QmpZVzUyWVhNZ2UxeGNiaUFnSUNBZ0lHMWhlQzFvWldsbmFIUTZJRE13ZG1nN1hGeHVJQ0FnSUgxY1hHNWNYRzRnSUNBZ0xrVjRjRzl5ZEVScFlXeHZaMTlmWkdsaGJHOW5MRnhjYmlBZ0lDQXVSWGh3YjNKMFJHbGhiRzluWDE5a2FXRnNiMmNnTGtsemJHRnVaQ0I3WEZ4dUlDQWdJQ0FnYUdWcFoyaDBPaUF4TURBbE8xeGNiaUFnSUNBZ0lHSnZlQzF6YVhwcGJtYzZJR0p2Y21SbGNpMWliM2c3WEZ4dUlDQWdJSDFjWEc1Y1hHNGdJQ0FnTGtWNGNHOXlkRVJwWVd4dloxOWZaR2xoYkc5bklDNUpjMnhoYm1RZ2UxeGNiaUFnSUNBZ0lHOTJaWEptYkc5M0xYazZJR0YxZEc4N1hGeHVJQ0FnSUgxY1hHNGdJSDFjWEc1Y1hHNGdJQzVGZUhCdmNuUkVhV0ZzYjJjdExXcHpiMjRnZTF4Y2JpQWdJQ0F1Ulhod2IzSjBSR2xoYkc5bkxXTmhjbVJ6SUh0Y1hHNGdJQ0FnSUNCa2FYTndiR0Y1T2lCbmNtbGtPMXhjYmlBZ0lDQWdJR2R5YVdRdGRHVnRjR3hoZEdVdFkyOXNkVzF1Y3pvZ2NtVndaV0YwS0dGMWRHOHRabWwwTENCdGFXNXRZWGdvTWpBd2NIZ3NJREZtY2lrcE8xeGNiaUFnSUNBZ0lHcDFjM1JwWm5rdGFYUmxiWE02SUdObGJuUmxjanRjWEc0Z0lDQWdJQ0J5YjNjdFoyRndPaUF5WlcwN1hGeHVYRnh1SUNBZ0lDQWdRRzFsWkdsaElDaHRZWGd0ZDJsa2RHZzZJRFEyTUhCNEtTQjdYRnh1SUNBZ0lDQWdJQ0JuY21sa0xYUmxiWEJzWVhSbExXTnZiSFZ0Ym5NNklISmxjR1ZoZENoaGRYUnZMV1pwZEN3Z2JXbHViV0Y0S0RJME1IQjRMQ0F4Wm5JcEtUdGNYRzRnSUNBZ0lDQWdJQzVEWVhKa0xXUmxkR0ZwYkhNZ2UxeGNiaUFnSUNBZ0lDQWdJQ0J0YVc0dGFHVnBaMmgwT2lBME1IQjRPMXhjYmlBZ0lDQWdJQ0FnZlZ4Y2JpQWdJQ0FnSUgxY1hHNWNYRzRnSUNBZ0lDQXVVSEp2YW1WamRFNWhiV1VnZTF4Y2JpQWdJQ0FnSUNBZ2QybGtkR2c2SUdacGRDMWpiMjUwWlc1ME8xeGNiaUFnSUNBZ0lDQWdiV0Z5WjJsdU9pQXhaVzBnWVhWMGJ6dGNYRzRnSUNBZ0lDQWdJR0ZzYVdkdUxXbDBaVzF6T2lCbWJHVjRMWE4wWVhKME8xeGNiaUFnSUNBZ0lDQWdabXhsZUMxa2FYSmxZM1JwYjI0NklHTnZiSFZ0Ymp0Y1hHNWNYRzRnSUNBZ0lDQWdJQzVVWlhoMFNXNXdkWFFnZTF4Y2JpQWdJQ0FnSUNBZ0lDQjNhV1IwYURvZ1lYVjBienRjWEc0Z0lDQWdJQ0FnSUgxY1hHNGdJQ0FnSUNCOVhGeHVYRnh1SUNBZ0lDQWdMbEJ5YjJwbFkzUk9ZVzFsTFd4aFltVnNJSHRjWEc0Z0lDQWdJQ0FnSUcxaGNtZHBiam9nTUM0Mk1qVmxiU0F3TzF4Y2JpQWdJQ0FnSUNBZ1ptOXVkQzEzWldsbmFIUTZJR0p2YkdRN1hGeHVJQ0FnSUNBZ2ZWeGNiaUFnSUNCOVhGeHVJQ0I5WEZ4dVhGeHVJQ0JpZFhSMGIyNHVSWGh3YjNKMFJHbGhiRzluTFdsdFlXZGxSWGh3YjNKMFFuVjBkRzl1SUh0Y1hHNGdJQ0FnZDJsa2RHZzZJRFZ5WlcwN1hGeHVJQ0FnSUdobGFXZG9kRG9nTlhKbGJUdGNYRzRnSUNBZ2JXRnlaMmx1T2lBd0lEQXVNbVZ0TzF4Y2JseGNiaUFnSUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUF4Y21WdE8xeGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFpZFhSMGIyNHRZMjlzYjNJcE8xeGNiaUFnSUNCaWIzZ3RjMmhoWkc5M09pQXdJRE53ZUNBMWNIZ2dMVEZ3ZUNCeVoySmhLREFzSURBc0lEQXNJREF1TWpncExGeGNiaUFnSUNBZ0lEQWdObkI0SURFd2NIZ2dNQ0J5WjJKaEtEQXNJREFzSURBc0lEQXVNVFFwTzF4Y2JseGNiaUFnSUNCbWIyNTBMV1poYldsc2VUb2dRMkZ6WTJGa2FXRTdYRnh1SUNBZ0lHWnZiblF0YzJsNlpUb2dNUzQ0WlcwN1hGeHVJQ0FnSUdOdmJHOXlPaUFrYjJNdGQyaHBkR1U3WEZ4dVhGeHVJQ0FnSUNZNmFHOTJaWElnZTF4Y2JpQWdJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV0oxZEhSdmJpMWpiMnh2Y2kxa1lYSnJaWElwTzF4Y2JpQWdJQ0I5WEZ4dUlDQWdJQ1k2WVdOMGFYWmxJSHRjWEc0Z0lDQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMWlkWFIwYjI0dFkyOXNiM0l0WkdGeWEyVnpkQ2s3WEZ4dUlDQWdJQ0FnWW05NExYTm9ZV1J2ZHpvZ2JtOXVaVHRjWEc0Z0lDQWdmVnhjYmx4Y2JpQWdJQ0J6ZG1jZ2UxeGNiaUFnSUNBZ0lIZHBaSFJvT2lBd0xqbGxiVHRjWEc0Z0lDQWdmVnhjYmlBZ2ZWeGNibjFjWEc1Y0lpeGNJaTh2WEZ4dUx5OWNYRzR2THlBZzhKMlhsaUR3blplaUlQQ2RsNThnOEoyWG9pRHduWmVsWEZ4dUx5OGdJSFlnTVM0NUxqRmNYRzR2TDF4Y2JpOHZJQ0RpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJRmNYRzVjWEc1Y1hHNHZMeUFnUjJWdVpYSmhiRnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGQyaHBkR1U2SUNBZ0lDQWdJQ0FnSTJabVptWm1aanRjWEc0a2IyTXRZbXhoWTJzNklDQWdJQ0FnSUNBZ0l6QXdNREF3TUR0Y1hHNWNYRzVjWEc0dkx5QWdSM0poZVZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRaM0poZVMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tT0dZNVptRXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTm1NV1l6WmpVc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNObE9XVmpaV1lzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05rWldVeVpUWXNYRnh1SUNCY1hGd2lORnhjWENJNklDTmpaV1EwWkdFc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNOaFpHSTFZbVFzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ000TmpobE9UWXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTTBPVFV3TlRjc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNek5ETmhOREFzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ015TVRJMU1qbGNYRzRwTzF4Y2JseGNiaVJ2WXkxbmNtRjVMVEE2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMweE9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3RNam9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRNNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0TlRvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxUWTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzAzT2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE9Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVGs2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1VtVmtYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxeVpXUXRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalptWm1OV1kxTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWm1abE0yVXpMRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpabVpqT1dNNUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBalptWmhPR0U0TEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqWm1ZNE56ZzNMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpabVkyWWpaaUxGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBalptRTFNalV5TEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqWmpBelpUTmxMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpaVEF6TVRNeExGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBall6a3lZVEpoWEZ4dUtUdGNYRzVjWEc0a2IyTXRjbVZrTFRBNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE1Ub2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVE02SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MXlaV1F0TkRvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMWEpsWkMwMU9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUWTZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxeVpXUXROem9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxYSmxaQzA0T2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRrNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQlFhVzVyWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MXdhVzVyTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlptWmpCbU5peGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyWm1aR1ZsWWl4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJaall6SmtOeXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMlpoWVRKak1TeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0kyWTNPRE5oWXl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSTJZd05qVTVOU3hjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJMlUyTkRrNE1DeGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0kyUTJNek0yWXl4Y1hHNGdJRnhjWENJNFhGeGNJam9nSTJNeU1qVTFZeXhjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJMkUyTVdVMFpGeGNiaWs3WEZ4dVhGeHVKRzlqTFhCcGJtc3RNRG9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRFNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MHlPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0TXpvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUUTZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTAxT2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE5qb2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVGM2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkwNE9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3RPVG9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCSGNtRndaVnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdFozSmhjR1V0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaamhtTUdaakxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpqTmtPV1poTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWldWaVpXWmhMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpaVFU1T1dZM0xGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBalpHRTNOMll5TEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqWTJNMVpHVTRMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpZbVUwWW1SaUxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBallXVXpaV001TEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqT1dNek5tSTFMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpPRFl5WlRsalhGeHVLVHRjWEc1Y1hHNGtiMk10WjNKaGNHVXRNRG9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRaM0poY0dVdE1Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdFozSmhjR1V0TWpvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10WjNKaGNHVXRNem9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRaM0poY0dVdE5Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdFozSmhjR1V0TlRvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10WjNKaGNHVXROam9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRaM0poY0dVdE56b2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdFozSmhjR1V0T0RvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10WjNKaGNHVXRPVG9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1ZtbHZiR1YwWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MTJhVzlzWlhRdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWmpObU1HWm1MRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpaVFZrWW1abUxGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalpEQmlabVptTEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWWpFNU4yWmpMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpPVGMzTldaaExGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBak9EUTFaV1kzTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqTnprMU1HWXlMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpOekEwT0dVNExGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak5qYzBNV1E1TEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTldZelpHTTBYRnh1S1R0Y1hHNWNYRzRrYjJNdGRtbHZiR1YwTFRBNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0TVRvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzB5T2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVE02SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXRORG9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUWTZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE56b2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMwNE9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRrNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JKYm1ScFoyOWNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFdsdVpHbG5ieTFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTmxaR1l5Wm1Zc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNOa1ltVTBabVlzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05pWVdNNFptWXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTTVNV0UzWm1Zc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNNM05EaG1abU1zWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ00xWXpkalptRXNYRnh1SUNCY1hGd2lObHhjWENJNklDTTBZelpsWmpVc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNME1qWXpaV0lzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ016WWpWaVpHSXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTXpOalJtWXpkY1hHNHBPMXhjYmx4Y2JpUnZZeTFwYm1ScFoyOHRNRG9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MHhPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUSTZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE16b2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkwME9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRVNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0TmpvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTAzT2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVGc2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHRPVG9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lFSnNkV1ZjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXSnNkV1V0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaVGRtTldabUxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpEQmxZbVptTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWVRWa09HWm1MRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpOelJqTUdaakxGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBak5HUmhZbVkzTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqTXpNNVlXWXdMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpNakk0WW1VMkxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak1XTTNaV1EyTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTVRrM01XTXlMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpNVGcyTkdGaVhGeHVLVHRjWEc1Y1hHNGtiMk10WW14MVpTMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0TVRvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUSTZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzB6T2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE5Eb2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVFU2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMwMk9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXROem9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRnNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10WW14MVpTMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUVONVlXNWNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFdONVlXNHRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpUTm1ZV1pqTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWXpWbU5tWmhMRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpPVGxsT1dZeUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBak5qWmtPV1U0TEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqTTJKak9XUmlMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpNakppT0dObUxGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBak1UVmhZV0ptTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqTVRBNU9HRmtMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpNR000TlRrNUxGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak1HSTNNamcxWEZ4dUtUdGNYRzVjWEc0a2IyTXRZM2xoYmkwd09pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHRNVG9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRJNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0TkRvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxUVTZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTAyT2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE56b2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVGc2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkwNU9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRlJsWVd4Y1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMWFJsWVd3dGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWlRabVkyWTFMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpZek5tWVdVNExGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBak9UWm1NbVEzTEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqTmpObE5tSmxMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpNemhrT1dFNUxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBak1qQmpPVGszTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqTVRKaU9EZzJMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpNR05oTmpjNExGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak1EazVNalk0TEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTURnM1pqVmlYRnh1S1R0Y1hHNWNYRzRrYjJNdGRHVmhiQzB3T2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE1Ub2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVEk2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMwek9pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3RORG9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRVNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0TnpvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUZzZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzA1T2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lFZHlaV1Z1WEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MW5jbVZsYmkxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05sWW1aaVpXVXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTmtNMlk1WkRnc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNOaU1tWXlZbUlzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ000WTJVNU9XRXNYRnh1SUNCY1hGd2lORnhjWENJNklDTTJPV1JpTjJNc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNNMU1XTm1OallzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ00wTUdNd05UY3NYRnh1SUNCY1hGd2lOMXhjWENJNklDTXpOMkl5TkdRc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNeVpqbGxORFFzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ015WWpoaE0yVmNYRzRwTzF4Y2JseGNiaVJ2WXkxbmNtVmxiaTB3T2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFuY21WbGJpMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MW5jbVZsYmkweU9pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxbmNtVmxiaTB6T2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTFuY21WbGJpMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MW5jbVZsYmkwMU9pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxbmNtVmxiaTAyT2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFuY21WbGJpMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MW5jbVZsYmkwNE9pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxbmNtVmxiaTA1T2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQk1hVzFsWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MXNhVzFsTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlkwWm1ObE15eGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyVTVabUZqT0N4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJRNFpqVmhNaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMk13WldJM05TeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0kyRTVaVE0wWWl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXprMFpEZ3laQ3hjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJemd5WXpreFpTeGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6YzBZamd4Tml4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpZMllUZ3daaXhjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJelZqT1RRd1pGeGNiaWs3WEZ4dVhGeHVKRzlqTFd4cGJXVXRNRG9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRFNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0TXpvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUUTZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzAxT2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE5qb2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVGM2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMwNE9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXRPVG9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCWlpXeHNiM2RjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxYbGxiR3h2ZHkxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tWm1ZNVpHSXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTm1abVl6WW1Zc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNObVptVmpPVGtzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05tWm1Vd05qWXNYRnh1SUNCY1hGd2lORnhjWENJNklDTm1abVEwTTJJc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNObVkyTTBNVGtzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ05tWVdJd01EVXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTm1OVGxtTURBc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNObU1EaGpNREFzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ05sTmpjM01EQmNYRzRwTzF4Y2JseGNiaVJ2WXkxNVpXeHNiM2N0TURvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTB4T2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVEk2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3RNem9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MDBPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUVTZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE5qb2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkwM09pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRnNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0T1RvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRTl5WVc1blpWeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10YjNKaGJtZGxMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyWm1aalJsTml4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJabVpUaGpZeXhjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMlptWkRoaE9DeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0kyWm1ZekEzT0N4Y1hHNGdJRnhjWENJMFhGeGNJam9nSTJabVlUazBaQ3hjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJMlptT1RJeVlpeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0kyWmtOMlV4TkN4Y1hHNGdJRnhjWENJM1hGeGNJam9nSTJZM05qY3dOeXhjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJMlU0TlRrd1l5eGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0kyUTVORGd3Wmx4Y2JpazdYRnh1WEZ4dUpHOWpMVzl5WVc1blpTMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExURTZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE1qb2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMwek9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRRNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0TlRvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzAyT2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVGM2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXRPRG9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1EyOXNiM0lnYkdsemRGeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10WTI5c2IzSXRjM0JsWTNSeWRXMDZJQ0FnT1R0Y1hHNWNYRzRrYjJNdFkyOXNiM0l0YkdsemREb2dLRnhjYmlBZ0pHOWpMV2R5WVhrdGJHbHpkRG9nSUNBZ0lDQmNYRndpWjNKaGVWeGNYQ0lzWEZ4dUlDQWtiMk10Y21Wa0xXeHBjM1E2SUNBZ0lDQWdYRnhjSW5KbFpGeGNYQ0lzWEZ4dUlDQWtiMk10Y0dsdWF5MXNhWE4wT2lBZ0lDQWdJRnhjWENKd2FXNXJYRnhjSWl4Y1hHNGdJQ1J2WXkxbmNtRndaUzFzYVhOME9pQWdJQ0FnSUZ4Y1hDSm5jbUZ3WlZ4Y1hDSXNYRnh1SUNBa2IyTXRkbWx2YkdWMExXeHBjM1E2SUNBZ0lDQWdYRnhjSW5acGIyeGxkRnhjWENJc1hGeHVJQ0FrYjJNdGFXNWthV2R2TFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbWx1WkdsbmIxeGNYQ0lzWEZ4dUlDQWtiMk10WW14MVpTMXNhWE4wT2lBZ0lDQWdJRnhjWENKaWJIVmxYRnhjSWl4Y1hHNGdJQ1J2WXkxamVXRnVMV3hwYzNRNklDQWdJQ0FnWEZ4Y0ltTjVZVzVjWEZ3aUxGeGNiaUFnSkc5akxYUmxZV3d0YkdsemREb2dJQ0FnSUNCY1hGd2lkR1ZoYkZ4Y1hDSXNYRnh1SUNBa2IyTXRaM0psWlc0dGJHbHpkRG9nSUNBZ0lDQmNYRndpWjNKbFpXNWNYRndpTEZ4Y2JpQWdKRzlqTFd4cGJXVXRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWJHbHRaVnhjWENJc1hGeHVJQ0FrYjJNdGVXVnNiRzkzTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbmxsYkd4dmQxeGNYQ0lzWEZ4dUlDQWtiMk10YjNKaGJtZGxMV3hwYzNRNklDQWdJQ0FnWEZ4Y0ltOXlZVzVuWlZ4Y1hDSmNYRzRwTzF4Y2Jsd2lYU3hjSW5OdmRYSmpaVkp2YjNSY0lqcGNJbHdpZlYwcE8xeHVMeThnUlhod2IzSjBjMXh1Wlhod2IzSjBJR1JsWm1GMWJIUWdYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4N1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvRXhwb3J0RGlhbG9nLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvRml4ZWRTaWRlQ29udGFpbmVyLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0ZpeGVkU2lkZUNvbnRhaW5lci5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkZWZhdWx0XFxcIjogKCkgPT4gKF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vLyBJbXBvcnRzXFxuXFxuXFxudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKSgoX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0KCkpKTtcXG4vLyBNb2R1bGVcXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFxcXCIuZXhjYWxpZHJhdyAuRml4ZWRTaWRlQ29udGFpbmVyIHtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5GaXhlZFNpZGVDb250YWluZXIgPiAqIHtcXFxcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5GaXhlZFNpZGVDb250YWluZXJfc2lkZV90b3Age1xcXFxuICBsZWZ0OiB2YXIoLS1zcGFjZS1mYWN0b3IpO1xcXFxuICB0b3A6IHZhcigtLXNwYWNlLWZhY3Rvcik7XFxcXG4gIHJpZ2h0OiB2YXIoLS1zcGFjZS1mYWN0b3IpO1xcXFxuICB6LWluZGV4OiAyO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkZpeGVkU2lkZUNvbnRhaW5lcl9zaWRlX3RvcC56ZW4tbW9kZSB7XFxcXG4gIHJpZ2h0OiA0MnB4O1xcXFxufVxcXFxuXFxcXG4vKiBUT0RPOiBpZiB0aGVzZSBhcmUgdXNlZCwgbWFrZSBzdXJlIHRvIGltcGxlbWVudCBSVEwgc3VwcG9ydFxcXFxuLkZpeGVkU2lkZUNvbnRhaW5lcl9zaWRlX2xlZnQge1xcXFxuICBsZWZ0OiB2YXIoLS1zcGFjZS1mYWN0b3IpO1xcXFxuICB0b3A6IHZhcigtLXNwYWNlLWZhY3Rvcik7XFxcXG4gIGJvdHRvbTogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXFxcbiAgei1pbmRleDogMTtcXFxcbn1cXFxcblxcXFxuLkZpeGVkU2lkZUNvbnRhaW5lcl9zaWRlX3JpZ2h0IHtcXFxcbiAgcmlnaHQ6IHZhcigtLXNwYWNlLWZhY3Rvcik7XFxcXG4gIHRvcDogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXFxcbiAgYm90dG9tOiB2YXIoLS1zcGFjZS1mYWN0b3IpO1xcXFxuICB6LWluZGV4OiAzO1xcXFxufVxcXFxuKi9cXFwiLCBcXFwiXFxcIix7XFxcInZlcnNpb25cXFwiOjMsXFxcInNvdXJjZXNcXFwiOltcXFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9GaXhlZFNpZGVDb250YWluZXIuc2Nzc1xcXCJdLFxcXCJuYW1lc1xcXCI6W10sXFxcIm1hcHBpbmdzXFxcIjpcXFwiQUFDRTtFQUNFLGtCQUFBO0VBQ0Esb0JBQUE7QUFBSjtBQUdFO0VBQ0UsbUJBQUE7QUFESjtBQUlFO0VBQ0UseUJBQUE7RUFDQSx3QkFBQTtFQUNBLDBCQUFBO0VBQ0EsVUFBQTtBQUZKO0FBS0U7RUFDRSxXQUFBO0FBSEo7O0FBT0E7Ozs7Ozs7Ozs7Ozs7O0NBQUFcXFwiLFxcXCJzb3VyY2VzQ29udGVudFxcXCI6W1xcXCIuZXhjYWxpZHJhdyB7XFxcXG4gIC5GaXhlZFNpZGVDb250YWluZXIge1xcXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXFxcbiAgfVxcXFxuXFxcXG4gIC5GaXhlZFNpZGVDb250YWluZXIgPiAqIHtcXFxcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xcXFxuICB9XFxcXG5cXFxcbiAgLkZpeGVkU2lkZUNvbnRhaW5lcl9zaWRlX3RvcCB7XFxcXG4gICAgbGVmdDogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXFxcbiAgICB0b3A6IHZhcigtLXNwYWNlLWZhY3Rvcik7XFxcXG4gICAgcmlnaHQ6IHZhcigtLXNwYWNlLWZhY3Rvcik7XFxcXG4gICAgei1pbmRleDogMjtcXFxcbiAgfVxcXFxuXFxcXG4gIC5GaXhlZFNpZGVDb250YWluZXJfc2lkZV90b3AuemVuLW1vZGUge1xcXFxuICAgIHJpZ2h0OiA0MnB4O1xcXFxuICB9XFxcXG59XFxcXG5cXFxcbi8qIFRPRE86IGlmIHRoZXNlIGFyZSB1c2VkLCBtYWtlIHN1cmUgdG8gaW1wbGVtZW50IFJUTCBzdXBwb3J0XFxcXG4uRml4ZWRTaWRlQ29udGFpbmVyX3NpZGVfbGVmdCB7XFxcXG4gIGxlZnQ6IHZhcigtLXNwYWNlLWZhY3Rvcik7XFxcXG4gIHRvcDogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXFxcbiAgYm90dG9tOiB2YXIoLS1zcGFjZS1mYWN0b3IpO1xcXFxuICB6LWluZGV4OiAxO1xcXFxufVxcXFxuXFxcXG4uRml4ZWRTaWRlQ29udGFpbmVyX3NpZGVfcmlnaHQge1xcXFxuICByaWdodDogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXFxcbiAgdG9wOiB2YXIoLS1zcGFjZS1mYWN0b3IpO1xcXFxuICBib3R0b206IHZhcigtLXNwYWNlLWZhY3Rvcik7XFxcXG4gIHotaW5kZXg6IDM7XFxcXG59XFxcXG4qL1xcXFxuXFxcIl0sXFxcInNvdXJjZVJvb3RcXFwiOlxcXCJcXFwifV0pO1xcbi8vIEV4cG9ydHNcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKF9fX0NTU19MT0FERVJfRVhQT1JUX19fKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlHYVhobFpGTnBaR1ZEYjI1MFlXbHVaWEl1YzJOemN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3p0QlFVRkJPMEZCUXpoSU8wRkJRMnBDTzBGQlF6ZEhMRGhDUVVFNFFpeDFSMEZCTWtJc1EwRkJReXhuU0VGQmNVTTdRVUZETDBZN1FVRkRRU3d5UlVGQk1rVXNkVUpCUVhWQ0xIbENRVUY1UWl4SFFVRkhMSFZEUVVGMVF5eDNRa0ZCZDBJc1IwRkJSeXcwUTBGQk5FTXNPRUpCUVRoQ0xEWkNRVUUyUWl3clFrRkJLMElzWlVGQlpTeEhRVUZITEhGRVFVRnhSQ3huUWtGQlowSXNSMEZCUnl4dFIwRkJiVWNzT0VKQlFUaENMRFpDUVVFMlFpeG5RMEZCWjBNc1pVRkJaU3hIUVVGSExHOURRVUZ2UXl3clFrRkJLMElzTmtKQlFUWkNMR2REUVVGblF5eGxRVUZsTEVkQlFVY3NWMEZCVnl3eVIwRkJNa2NzVjBGQlZ5eFhRVUZYTEV0QlFVc3NTMEZCU3l4WFFVRlhMRXRCUVVzc1MwRkJTeXhYUVVGWExGZEJRVmNzVjBGQlZ5eFZRVUZWTEV0QlFVc3NTMEZCU3l4VlFVRlZMRTFCUVUwc2EwSkJRV3RDTEhORFFVRnpReXg1UWtGQmVVSXNlVUpCUVhsQ0xESkNRVUV5UWl4TFFVRkxMQ3RDUVVFclFpd3dRa0ZCTUVJc1MwRkJTeXh2UTBGQmIwTXNaME5CUVdkRExDdENRVUVyUWl4cFEwRkJhVU1zYVVKQlFXbENMRXRCUVVzc05rTkJRVFpETEd0Q1FVRnJRaXhMUVVGTExFZEJRVWNzYlVkQlFXMUhMRGhDUVVFNFFpdzJRa0ZCTmtJc1owTkJRV2RETEdWQlFXVXNSMEZCUnl4dlEwRkJiME1zSzBKQlFTdENMRFpDUVVFMlFpeG5RMEZCWjBNc1pVRkJaU3hIUVVGSExIbENRVUY1UWp0QlFVTjBlRVE3UVVGRFFTeHBSVUZCWlN4MVFrRkJkVUlzUlVGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDBacGVHVmtVMmxrWlVOdmJuUmhhVzVsY2k1elkzTnpQMkUyTXpFaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeThnU1cxd2IzSjBjMXh1YVcxd2IzSjBJRjlmWDBOVFUxOU1UMEZFUlZKZlFWQkpYMU5QVlZKRFJVMUJVRjlKVFZCUFVsUmZYMThnWm5KdmJTQmNJaTR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMMk56Y3kxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwzTnZkWEpqWlUxaGNITXVhbk5jSWp0Y2JtbHRjRzl5ZENCZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5SlRWQlBVbFJmWDE4Z1puSnZiU0JjSWk0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDJOemN5MXNiMkZrWlhJdlpHbHpkQzl5ZFc1MGFXMWxMMkZ3YVM1cWMxd2lPMXh1ZG1GeUlGOWZYME5UVTE5TVQwRkVSVkpmUlZoUVQxSlVYMTlmSUQwZ1gxOWZRMU5UWDB4UFFVUkZVbDlCVUVsZlNVMVFUMUpVWDE5ZktGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgxTlBWVkpEUlUxQlVGOUpUVkJQVWxSZlgxOHBPMXh1THk4Z1RXOWtkV3hsWEc1ZlgxOURVMU5mVEU5QlJFVlNYMFZZVUU5U1ZGOWZYeTV3ZFhOb0tGdHRiMlIxYkdVdWFXUXNJRndpTG1WNFkyRnNhV1J5WVhjZ0xrWnBlR1ZrVTJsa1pVTnZiblJoYVc1bGNpQjdYRnh1SUNCd2IzTnBkR2x2YmpvZ1lXSnpiMngxZEdVN1hGeHVJQ0J3YjJsdWRHVnlMV1YyWlc1MGN6b2dibTl1WlR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xrWnBlR1ZrVTJsa1pVTnZiblJoYVc1bGNpQStJQ29nZTF4Y2JpQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHRnNiRHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGtacGVHVmtVMmxrWlVOdmJuUmhhVzVsY2w5emFXUmxYM1J2Y0NCN1hGeHVJQ0JzWldaME9pQjJZWElvTFMxemNHRmpaUzFtWVdOMGIzSXBPMXhjYmlBZ2RHOXdPaUIyWVhJb0xTMXpjR0ZqWlMxbVlXTjBiM0lwTzF4Y2JpQWdjbWxuYUhRNklIWmhjaWd0TFhOd1lXTmxMV1poWTNSdmNpazdYRnh1SUNCNkxXbHVaR1Y0T2lBeU8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVSbWw0WldSVGFXUmxRMjl1ZEdGcGJtVnlYM05wWkdWZmRHOXdMbnBsYmkxdGIyUmxJSHRjWEc0Z0lISnBaMmgwT2lBME1uQjRPMXhjYm4xY1hHNWNYRzR2S2lCVVQwUlBPaUJwWmlCMGFHVnpaU0JoY21VZ2RYTmxaQ3dnYldGclpTQnpkWEpsSUhSdklHbHRjR3hsYldWdWRDQlNWRXdnYzNWd2NHOXlkRnhjYmk1R2FYaGxaRk5wWkdWRGIyNTBZV2x1WlhKZmMybGtaVjlzWldaMElIdGNYRzRnSUd4bFpuUTZJSFpoY2lndExYTndZV05sTFdaaFkzUnZjaWs3WEZ4dUlDQjBiM0E2SUhaaGNpZ3RMWE53WVdObExXWmhZM1J2Y2lrN1hGeHVJQ0JpYjNSMGIyMDZJSFpoY2lndExYTndZV05sTFdaaFkzUnZjaWs3WEZ4dUlDQjZMV2x1WkdWNE9pQXhPMXhjYm4xY1hHNWNYRzR1Um1sNFpXUlRhV1JsUTI5dWRHRnBibVZ5WDNOcFpHVmZjbWxuYUhRZ2UxeGNiaUFnY21sbmFIUTZJSFpoY2lndExYTndZV05sTFdaaFkzUnZjaWs3WEZ4dUlDQjBiM0E2SUhaaGNpZ3RMWE53WVdObExXWmhZM1J2Y2lrN1hGeHVJQ0JpYjNSMGIyMDZJSFpoY2lndExYTndZV05sTFdaaFkzUnZjaWs3WEZ4dUlDQjZMV2x1WkdWNE9pQXpPMXhjYm4xY1hHNHFMMXdpTENCY0lsd2lMSHRjSW5abGNuTnBiMjVjSWpvekxGd2ljMjkxY21ObGMxd2lPbHRjSW5kbFluQmhZMnM2THk4dUx5NHVMeTR1TDJOdmJYQnZibVZ1ZEhNdlJtbDRaV1JUYVdSbFEyOXVkR0ZwYm1WeUxuTmpjM05jSWwwc1hDSnVZVzFsYzF3aU9sdGRMRndpYldGd2NHbHVaM05jSWpwY0lrRkJRMFU3UlVGRFJTeHJRa0ZCUVR0RlFVTkJMRzlDUVVGQk8wRkJRVW83UVVGSFJUdEZRVU5GTEcxQ1FVRkJPMEZCUkVvN1FVRkpSVHRGUVVORkxIbENRVUZCTzBWQlEwRXNkMEpCUVVFN1JVRkRRU3d3UWtGQlFUdEZRVU5CTEZWQlFVRTdRVUZHU2p0QlFVdEZPMFZCUTBVc1YwRkJRVHRCUVVoS096dEJRVTlCT3pzN096czdPenM3T3pzN096dERRVUZCWENJc1hDSnpiM1Z5WTJWelEyOXVkR1Z1ZEZ3aU9sdGNJaTVsZUdOaGJHbGtjbUYzSUh0Y1hHNGdJQzVHYVhobFpGTnBaR1ZEYjI1MFlXbHVaWElnZTF4Y2JpQWdJQ0J3YjNOcGRHbHZiam9nWVdKemIyeDFkR1U3WEZ4dUlDQWdJSEJ2YVc1MFpYSXRaWFpsYm5Sek9pQnViMjVsTzF4Y2JpQWdmVnhjYmx4Y2JpQWdMa1pwZUdWa1UybGtaVU52Ym5SaGFXNWxjaUErSUNvZ2UxeGNiaUFnSUNCd2IybHVkR1Z5TFdWMlpXNTBjem9nWVd4c08xeGNiaUFnZlZ4Y2JseGNiaUFnTGtacGVHVmtVMmxrWlVOdmJuUmhhVzVsY2w5emFXUmxYM1J2Y0NCN1hGeHVJQ0FnSUd4bFpuUTZJSFpoY2lndExYTndZV05sTFdaaFkzUnZjaWs3WEZ4dUlDQWdJSFJ2Y0RvZ2RtRnlLQzB0YzNCaFkyVXRabUZqZEc5eUtUdGNYRzRnSUNBZ2NtbG5hSFE2SUhaaGNpZ3RMWE53WVdObExXWmhZM1J2Y2lrN1hGeHVJQ0FnSUhvdGFXNWtaWGc2SURJN1hGeHVJQ0I5WEZ4dVhGeHVJQ0F1Um1sNFpXUlRhV1JsUTI5dWRHRnBibVZ5WDNOcFpHVmZkRzl3TG5wbGJpMXRiMlJsSUh0Y1hHNGdJQ0FnY21sbmFIUTZJRFF5Y0hnN1hGeHVJQ0I5WEZ4dWZWeGNibHhjYmk4cUlGUlBSRTg2SUdsbUlIUm9aWE5sSUdGeVpTQjFjMlZrTENCdFlXdGxJSE4xY21VZ2RHOGdhVzF3YkdWdFpXNTBJRkpVVENCemRYQndiM0owWEZ4dUxrWnBlR1ZrVTJsa1pVTnZiblJoYVc1bGNsOXphV1JsWDJ4bFpuUWdlMXhjYmlBZ2JHVm1kRG9nZG1GeUtDMHRjM0JoWTJVdFptRmpkRzl5S1R0Y1hHNGdJSFJ2Y0RvZ2RtRnlLQzB0YzNCaFkyVXRabUZqZEc5eUtUdGNYRzRnSUdKdmRIUnZiVG9nZG1GeUtDMHRjM0JoWTJVdFptRmpkRzl5S1R0Y1hHNGdJSG90YVc1a1pYZzZJREU3WEZ4dWZWeGNibHhjYmk1R2FYaGxaRk5wWkdWRGIyNTBZV2x1WlhKZmMybGtaVjl5YVdkb2RDQjdYRnh1SUNCeWFXZG9kRG9nZG1GeUtDMHRjM0JoWTJVdFptRmpkRzl5S1R0Y1hHNGdJSFJ2Y0RvZ2RtRnlLQzB0YzNCaFkyVXRabUZqZEc5eUtUdGNYRzRnSUdKdmRIUnZiVG9nZG1GeUtDMHRjM0JoWTJVdFptRmpkRzl5S1R0Y1hHNGdJSG90YVc1a1pYZzZJRE03WEZ4dWZWeGNiaW92WEZ4dVhDSmRMRndpYzI5MWNtTmxVbTl2ZEZ3aU9sd2lYQ0o5WFNrN1hHNHZMeUJGZUhCdmNuUnpYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQmZYMTlEVTFOZlRFOUJSRVZTWDBWWVVFOVNWRjlmWHp0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvRml4ZWRTaWRlQ29udGFpbmVyLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvSGVscERpYWxvZy5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvSGVscERpYWxvZy5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLy8gSW1wb3J0c1xcblxcblxcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxuLy8gTW9kdWxlXFxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcXFwiOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxcXG59XFxcXG5cXFxcbi5leGNhbGlkcmF3IC5IZWxwRGlhbG9nIGgzIHtcXFxcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcXFxuICBwYWRkaW5nLWJvdHRvbTogNHB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkhlbHBEaWFsb2ctLWlzbGFuZCB7XFxcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcXFxuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkhlbHBEaWFsb2ctLWlzbGFuZC10aXRsZSB7XFxcXG4gIG1hcmdpbjogMDtcXFxcbiAgcGFkZGluZzogNHB4O1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXFxcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkhlbHBEaWFsb2ctLXNob3J0Y3V0IHtcXFxcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkhlbHBEaWFsb2ctLWtleSB7XFxcXG4gIHdvcmQtYnJlYWs6IGtlZXAtYWxsO1xcXFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24tZ3JheS0yKTtcXFxcbiAgcGFkZGluZzogMnB4IDhweDtcXFxcbiAgbWFyZ2luOiBhdXRvIDRweDtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxcXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcXFxcbiAgZm9udC1zaXplOiAwLjhlbTtcXFxcbiAgbWluLWhlaWdodDogMjZweDtcXFxcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuSGVscERpYWxvZy0taGVhZGVyIHtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcXFxcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XFxcXG4gIG1hcmdpbi1ib3R0b206IDMycHg7XFxcXG4gIHBhZGRpbmctYm90dG9tOiAxNnB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkhlbHBEaWFsb2ctLWJ0biB7XFxcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmstY29sb3IpO1xcXFxuICBwYWRkaW5nOiA4cHggMzJweDtcXFxcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkhlbHBEaWFsb2ctLWJ0bjpob3ZlciB7XFxcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXFxcbn1cXFwiLCBcXFwiXFxcIix7XFxcInZlcnNpb25cXFwiOjMsXFxcInNvdXJjZXNcXFwiOltcXFwid2VicGFjazovLy4vLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1xcXCIsXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvSGVscERpYWxvZy5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQVVBO0VBQ0UsMkNBQUE7QUNURjs7QUFDRTtFQUNFLDZDQUFBO0VBQ0EsbUJBQUE7QUFFSjtBQUNFO0VBQ0Usc0NBQUE7RUFDQSxtQkFBQTtBQUNKO0FBRUU7RUFDRSxTQUFBO0VBQ0EsWUFBQTtFQUNBLHNDQUFBO0VBQ0Esa0JBQUE7QUFBSjtBQUdFO0VBQ0UsMENBQUE7QUFESjtBQUlFO0VBQ0Usb0JBQUE7RUFDQSxzQ0FBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxzQ0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7QUFGSjtBQUtFO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsNkJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0FBSEo7QUFNRTtFQUNFLG1DQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBQUpKO0FBTUU7RUFDRSxxQkFBQTtBQUpKXFxcIixcXFwic291cmNlc0NvbnRlbnRcXFwiOltcXFwiQGltcG9ydCBcXFxcXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcXFxcXCI7XFxcXG5cXFxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXFxcbiAgQGF0LXJvb3QgLmV4Y2FsaWRyYXctLW1vYmlsZSN7Jn0ge1xcXFxuICAgIEBjb250ZW50O1xcXFxuICB9XFxcXG59XFxcXG5cXFxcbiR0aGVtZS1maWx0ZXI6IFxcXFxcXFwiaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpXFxcXFxcXCI7XFxcXG5cXFxcbjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXFxcbn1cXFxcblxcXCIsXFxcIkBpbXBvcnQgXFxcXFxcXCIuLi9jc3MvdmFyaWFibGVzLm1vZHVsZVxcXFxcXFwiO1xcXFxuXFxcXG4uZXhjYWxpZHJhdyB7XFxcXG4gIC5IZWxwRGlhbG9nIGgzIHtcXFxcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG4gICAgcGFkZGluZy1ib3R0b206IDRweDtcXFxcbiAgfVxcXFxuXFxcXG4gIC5IZWxwRGlhbG9nLS1pc2xhbmQge1xcXFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcXFxuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XFxcXG4gIH1cXFxcblxcXFxuICAuSGVscERpYWxvZy0taXNsYW5kLXRpdGxlIHtcXFxcbiAgICBtYXJnaW46IDA7XFxcXG4gICAgcGFkZGluZzogNHB4O1xcXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcXFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXFxcbiAgfVxcXFxuXFxcXG4gIC5IZWxwRGlhbG9nLS1zaG9ydGN1dCB7XFxcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcXFxuICB9XFxcXG5cXFxcbiAgLkhlbHBEaWFsb2ctLWtleSB7XFxcXG4gICAgd29yZC1icmVhazoga2VlcC1hbGw7XFxcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG4gICAgcGFkZGluZzogMnB4IDhweDtcXFxcbiAgICBtYXJnaW46IGF1dG8gNHB4O1xcXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcXFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXFxcbiAgICBmb250LXNpemU6IDAuOGVtO1xcXFxuICAgIG1pbi1oZWlnaHQ6IDI2cHg7XFxcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXFxcbiAgICBkaXNwbGF5OiBmbGV4O1xcXFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XFxcXG4gIH1cXFxcblxcXFxuICAuSGVscERpYWxvZy0taGVhZGVyIHtcXFxcbiAgICBkaXNwbGF5OiBmbGV4O1xcXFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XFxcXG4gICAgbWFyZ2luLWJvdHRvbTogMzJweDtcXFxcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcXFxcbiAgfVxcXFxuXFxcXG4gIC5IZWxwRGlhbG9nLS1idG4ge1xcXFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmstY29sb3IpO1xcXFxuICAgIHBhZGRpbmc6IDhweCAzMnB4O1xcXFxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcXFxcbiAgfVxcXFxuICAuSGVscERpYWxvZy0tYnRuOmhvdmVyIHtcXFxcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxcXG4gIH1cXFxcbn1cXFxcblxcXCJdLFxcXCJzb3VyY2VSb290XFxcIjpcXFwiXFxcIn1dKTtcXG4vLyBFeHBvcnRzXFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9IChfX19DU1NfTE9BREVSX0VYUE9SVF9fXyk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUwyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk5dWIyUmxYMjF2WkhWc1pYTXZjMkZ6Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpNHZMaTR2WTI5dGNHOXVaVzUwY3k5SVpXeHdSR2xoYkc5bkxuTmpjM011YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdRVUZCUVR0QlFVTTRTRHRCUVVOcVFqdEJRVU0zUnl3NFFrRkJPRUlzZFVkQlFUSkNMRU5CUVVNc1owaEJRWEZETzBGQlF5OUdPMEZCUTBFc2JVUkJRVzFFTEdkRVFVRm5SQ3hIUVVGSExHZERRVUZuUXl4clJFRkJhMFFzZDBKQlFYZENMRWRCUVVjc2JVTkJRVzFETERKRFFVRXlReXgzUWtGQmQwSXNSMEZCUnl4NVEwRkJlVU1zWTBGQll5eHBRa0ZCYVVJc01rTkJRVEpETEhWQ1FVRjFRaXhIUVVGSExIRkRRVUZ4UXl3clEwRkJLME1zUjBGQlJ5eG5RMEZCWjBNc2VVSkJRWGxDTERKRFFVRXlReXh4UWtGQmNVSXNjVUpCUVhGQ0xESkRRVUV5UXl4MVFrRkJkVUlzY1VKQlFYRkNMSEZDUVVGeFFpd3lRa0ZCTWtJc2EwSkJRV3RDTEhkQ1FVRjNRaXg1UWtGQmVVSXNSMEZCUnl4dFEwRkJiVU1zYTBKQlFXdENMSGRDUVVGM1FpeHJRMEZCYTBNc2QwSkJRWGRDTEhsQ1FVRjVRaXhIUVVGSExHZERRVUZuUXl4M1EwRkJkME1zYzBKQlFYTkNMSFZDUVVGMVFpeEhRVUZITEhORFFVRnpReXd3UWtGQk1FSXNSMEZCUnl4UFFVRlBMR2xLUVVGcFNpeFhRVUZYTEUxQlFVMHNTMEZCU3l4WFFVRlhMRmRCUVZjc1MwRkJTeXhMUVVGTExGZEJRVmNzVjBGQlZ5eExRVUZMTEV0QlFVc3NWVUZCVlN4VlFVRlZMRmRCUVZjc1YwRkJWeXhMUVVGTExFdEJRVXNzVjBGQlZ5eExRVUZMTEV0QlFVc3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWVUZCVlN4WFFVRlhMRmRCUVZjc1MwRkJTeXhMUVVGTExGVkJRVlVzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4TFFVRkxMRXRCUVVzc1YwRkJWeXhYUVVGWExGZEJRVmNzUzBGQlN5eExRVUZMTEZkQlFWY3NaMFZCUVdkRkxIVkNRVUYxUWl4clEwRkJhME1zU1VGQlNTeGxRVUZsTEV0QlFVc3NSMEZCUnl4elJFRkJjMFFzWVVGQllTeDNRMEZCZDBNc1IwRkJSeXg1UTBGQmVVTXNhVUpCUVdsQ0xHOUNRVUZ2UWl4dlJFRkJiMFFzTUVKQlFUQkNMRXRCUVVzc01rSkJRVEpDTERaRFFVRTJReXd3UWtGQk1FSXNTMEZCU3l4cFEwRkJhVU1zWjBKQlFXZENMRzFDUVVGdFFpdzJRMEZCTmtNc2VVSkJRWGxDTEV0QlFVc3NOa0pCUVRaQ0xHbEVRVUZwUkN4TFFVRkxMSGRDUVVGM1Fpd3lRa0ZCTWtJc05rTkJRVFpETEhWQ1FVRjFRaXgxUWtGQmRVSXNOa05CUVRaRExIbENRVUY1UWl4MVFrRkJkVUlzZFVKQlFYVkNMRFpDUVVFMlFpeHZRa0ZCYjBJc01FSkJRVEJDTERKQ1FVRXlRaXhMUVVGTExESkNRVUV5UWl4dlFrRkJiMElzTUVKQlFUQkNMRzlEUVVGdlF5d3dRa0ZCTUVJc01rSkJRVEpDTEV0QlFVc3NkMEpCUVhkQ0xEQkRRVUV3UXl4M1FrRkJkMElzZVVKQlFYbENMRXRCUVVzc05FSkJRVFJDTERSQ1FVRTBRaXhMUVVGTExFZEJRVWNzY1VKQlFYRkNPMEZCUTJoMVJ6dEJRVU5CTEdsRlFVRmxMSFZDUVVGMVFpeEZRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZTR1ZzY0VScFlXeHZaeTV6WTNOelB6SmlOMk1pWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUx5OGdTVzF3YjNKMGMxeHVhVzF3YjNKMElGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgxTlBWVkpEUlUxQlVGOUpUVkJQVWxSZlgxOGdabkp2YlNCY0lpNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5eWRXNTBhVzFsTDNOdmRYSmpaVTFoY0hNdWFuTmNJanRjYm1sdGNHOXlkQ0JmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlKVFZCUFVsUmZYMThnWm5KdmJTQmNJaTR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMMk56Y3kxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwyRndhUzVxYzF3aU8xeHVkbUZ5SUY5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZJRDBnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmU1UxUVQxSlVYMTlmS0Y5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDFOUFZWSkRSVTFCVUY5SlRWQlBVbFJmWDE4cE8xeHVMeThnVFc5a2RXeGxYRzVmWDE5RFUxTmZURTlCUkVWU1gwVllVRTlTVkY5Zlh5NXdkWE5vS0Z0dGIyUjFiR1V1YVdRc0lGd2lPbVY0Y0c5eWRDQjdYRnh1SUNCMGFHVnRaVVpwYkhSbGNqb2dhVzUyWlhKMEtEa3pKU2tnYUhWbExYSnZkR0YwWlNneE9EQmtaV2NwTzF4Y2JuMWNYRzVjWEc0dVpYaGpZV3hwWkhKaGR5QXVTR1ZzY0VScFlXeHZaeUJvTXlCN1hGeHVJQ0JpYjNKa1pYSXRZbTkwZEc5dE9pQXhjSGdnYzI5c2FXUWdkbUZ5S0MwdFluVjBkRzl1TFdkeVlYa3RNaWs3WEZ4dUlDQndZV1JrYVc1bkxXSnZkSFJ2YlRvZ05IQjRPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1U0dWc2NFUnBZV3h2WnkwdGFYTnNZVzVrSUh0Y1hHNGdJR0p2Y21SbGNqb2dNWEI0SUhOdmJHbGtJSFpoY2lndExXSjFkSFJ2YmkxbmNtRjVMVElwTzF4Y2JpQWdiV0Z5WjJsdUxXSnZkSFJ2YlRvZ01UWndlRHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGtobGJIQkVhV0ZzYjJjdExXbHpiR0Z1WkMxMGFYUnNaU0I3WEZ4dUlDQnRZWEpuYVc0NklEQTdYRnh1SUNCd1lXUmthVzVuT2lBMGNIZzdYRnh1SUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFpZFhSMGIyNHRaM0poZVMweEtUdGNYRzRnSUhSbGVIUXRZV3hwWjI0NklHTmxiblJsY2p0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xraGxiSEJFYVdGc2IyY3RMWE5vYjNKMFkzVjBJSHRjWEc0Z0lHSnZjbVJsY2kxMGIzQTZJREZ3ZUNCemIyeHBaQ0IyWVhJb0xTMWlkWFIwYjI0dFozSmhlUzB5S1R0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xraGxiSEJFYVdGc2IyY3RMV3RsZVNCN1hGeHVJQ0IzYjNKa0xXSnlaV0ZyT2lCclpXVndMV0ZzYkR0Y1hHNGdJR0p2Y21SbGNqb2dNWEI0SUhOdmJHbGtJSFpoY2lndExXSjFkSFJ2YmkxbmNtRjVMVElwTzF4Y2JpQWdjR0ZrWkdsdVp6b2dNbkI0SURod2VEdGNYRzRnSUcxaGNtZHBiam9nWVhWMGJ5QTBjSGc3WEZ4dUlDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxaWRYUjBiMjR0WjNKaGVTMHhLVHRjWEc0Z0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VEdGNYRzRnSUdadmJuUXRjMmw2WlRvZ01DNDRaVzA3WEZ4dUlDQnRhVzR0YUdWcFoyaDBPaUF5Tm5CNE8xeGNiaUFnWW05NExYTnBlbWx1WnpvZ1ltOXlaR1Z5TFdKdmVEdGNYRzRnSUdScGMzQnNZWGs2SUdac1pYZzdYRnh1SUNCaGJHbG5iaTFwZEdWdGN6b2dZMlZ1ZEdWeU8xeGNiaUFnWm05dWRDMW1ZVzFwYkhrNklHbHVhR1Z5YVhRN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNUlaV3h3UkdsaGJHOW5MUzFvWldGa1pYSWdlMXhjYmlBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjWEc0Z0lHWnNaWGd0WkdseVpXTjBhVzl1T2lCeWIzYzdYRnh1SUNCcWRYTjBhV1o1TFdOdmJuUmxiblE2SUhOd1lXTmxMV1YyWlc1c2VUdGNYRzRnSUcxaGNtZHBiaTFpYjNSMGIyMDZJRE15Y0hnN1hGeHVJQ0J3WVdSa2FXNW5MV0p2ZEhSdmJUb2dNVFp3ZUR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xraGxiSEJFYVdGc2IyY3RMV0owYmlCN1hGeHVJQ0JpYjNKa1pYSTZJREZ3ZUNCemIyeHBaQ0IyWVhJb0xTMXNhVzVyTFdOdmJHOXlLVHRjWEc0Z0lIQmhaR1JwYm1jNklEaHdlQ0F6TW5CNE8xeGNiaUFnWW05eVpHVnlMWEpoWkdsMWN6b2dOSEI0TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVNHVnNjRVJwWVd4dlp5MHRZblJ1T21odmRtVnlJSHRjWEc0Z0lIUmxlSFF0WkdWamIzSmhkR2x2YmpvZ2JtOXVaVHRjWEc1OVhDSXNJRndpWENJc2Uxd2lkbVZ5YzJsdmJsd2lPak1zWENKemIzVnlZMlZ6WENJNlcxd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZZM056TDNaaGNtbGhZbXhsY3k1dGIyUjFiR1V1YzJOemMxd2lMRndpZDJWaWNHRmphem92THk0dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5SVpXeHdSR2xoYkc5bkxuTmpjM05jSWwwc1hDSnVZVzFsYzF3aU9sdGRMRndpYldGd2NHbHVaM05jSWpwY0lrRkJWVUU3UlVGRFJTd3lRMEZCUVR0QlExUkdPenRCUVVORk8wVkJRMFVzTmtOQlFVRTdSVUZEUVN4dFFrRkJRVHRCUVVWS08wRkJRMFU3UlVGRFJTeHpRMEZCUVR0RlFVTkJMRzFDUVVGQk8wRkJRMG83UVVGRlJUdEZRVU5GTEZOQlFVRTdSVUZEUVN4WlFVRkJPMFZCUTBFc2MwTkJRVUU3UlVGRFFTeHJRa0ZCUVR0QlFVRktPMEZCUjBVN1JVRkRSU3d3UTBGQlFUdEJRVVJLTzBGQlNVVTdSVUZEUlN4dlFrRkJRVHRGUVVOQkxITkRRVUZCTzBWQlEwRXNaMEpCUVVFN1JVRkRRU3huUWtGQlFUdEZRVU5CTEhORFFVRkJPMFZCUTBFc2EwSkJRVUU3UlVGRFFTeG5Ra0ZCUVR0RlFVTkJMR2RDUVVGQk8wVkJRMEVzYzBKQlFVRTdSVUZEUVN4aFFVRkJPMFZCUTBFc2JVSkJRVUU3UlVGRFFTeHZRa0ZCUVR0QlFVWktPMEZCUzBVN1JVRkRSU3hoUVVGQk8wVkJRMEVzYlVKQlFVRTdSVUZEUVN3MlFrRkJRVHRGUVVOQkxHMUNRVUZCTzBWQlEwRXNiMEpCUVVFN1FVRklTanRCUVUxRk8wVkJRMFVzYlVOQlFVRTdSVUZEUVN4cFFrRkJRVHRGUVVOQkxHdENRVUZCTzBGQlNrbzdRVUZOUlR0RlFVTkZMSEZDUVVGQk8wRkJTa3BjSWl4Y0luTnZkWEpqWlhORGIyNTBaVzUwWENJNlcxd2lRR2x0Y0c5eWRDQmNYRndpYjNCbGJpMWpiMnh2Y2k5dmNHVnVMV052Ykc5eUxuTmpjM05jWEZ3aU8xeGNibHhjYmtCdGFYaHBiaUJwYzAxdlltbHNaU2dwSUh0Y1hHNGdJRUJoZEMxeWIyOTBJQzVsZUdOaGJHbGtjbUYzTFMxdGIySnBiR1VqZXlaOUlIdGNYRzRnSUNBZ1FHTnZiblJsYm5RN1hGeHVJQ0I5WEZ4dWZWeGNibHhjYmlSMGFHVnRaUzFtYVd4MFpYSTZJRnhjWENKcGJuWmxjblFvT1RNbEtTQm9kV1V0Y205MFlYUmxLREU0TUdSbFp5bGNYRndpTzF4Y2JseGNianBsZUhCdmNuUWdlMXhjYmlBZ2RHaGxiV1ZHYVd4MFpYSTZJSFZ1Y1hWdmRHVW9KSFJvWlcxbExXWnBiSFJsY2lrN1hGeHVmVnhjYmx3aUxGd2lRR2x0Y0c5eWRDQmNYRndpTGk0dlkzTnpMM1poY21saFlteGxjeTV0YjJSMWJHVmNYRndpTzF4Y2JseGNiaTVsZUdOaGJHbGtjbUYzSUh0Y1hHNGdJQzVJWld4d1JHbGhiRzluSUdneklIdGNYRzRnSUNBZ1ltOXlaR1Z5TFdKdmRIUnZiVG9nTVhCNElITnZiR2xrSUhaaGNpZ3RMV0oxZEhSdmJpMW5jbUY1TFRJcE8xeGNiaUFnSUNCd1lXUmthVzVuTFdKdmRIUnZiVG9nTkhCNE8xeGNiaUFnZlZ4Y2JseGNiaUFnTGtobGJIQkVhV0ZzYjJjdExXbHpiR0Z1WkNCN1hGeHVJQ0FnSUdKdmNtUmxjam9nTVhCNElITnZiR2xrSUhaaGNpZ3RMV0oxZEhSdmJpMW5jbUY1TFRJcE8xeGNiaUFnSUNCdFlYSm5hVzR0WW05MGRHOXRPaUF4Tm5CNE8xeGNiaUFnZlZ4Y2JseGNiaUFnTGtobGJIQkVhV0ZzYjJjdExXbHpiR0Z1WkMxMGFYUnNaU0I3WEZ4dUlDQWdJRzFoY21kcGJqb2dNRHRjWEc0Z0lDQWdjR0ZrWkdsdVp6b2dOSEI0TzF4Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMWlkWFIwYjI0dFozSmhlUzB4S1R0Y1hHNGdJQ0FnZEdWNGRDMWhiR2xuYmpvZ1kyVnVkR1Z5TzF4Y2JpQWdmVnhjYmx4Y2JpQWdMa2hsYkhCRWFXRnNiMmN0TFhOb2IzSjBZM1YwSUh0Y1hHNGdJQ0FnWW05eVpHVnlMWFJ2Y0RvZ01YQjRJSE52Ykdsa0lIWmhjaWd0TFdKMWRIUnZiaTFuY21GNUxUSXBPMXhjYmlBZ2ZWeGNibHhjYmlBZ0xraGxiSEJFYVdGc2IyY3RMV3RsZVNCN1hGeHVJQ0FnSUhkdmNtUXRZbkpsWVdzNklHdGxaWEF0WVd4c08xeGNiaUFnSUNCaWIzSmtaWEk2SURGd2VDQnpiMnhwWkNCMllYSW9MUzFpZFhSMGIyNHRaM0poZVMweUtUdGNYRzRnSUNBZ2NHRmtaR2x1WnpvZ01uQjRJRGh3ZUR0Y1hHNGdJQ0FnYldGeVoybHVPaUJoZFhSdklEUndlRHRjWEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdFluVjBkRzl1TFdkeVlYa3RNU2s3WEZ4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlRHRjWEc0Z0lDQWdabTl1ZEMxemFYcGxPaUF3TGpobGJUdGNYRzRnSUNBZ2JXbHVMV2hsYVdkb2REb2dNalp3ZUR0Y1hHNGdJQ0FnWW05NExYTnBlbWx1WnpvZ1ltOXlaR1Z5TFdKdmVEdGNYRzRnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjWEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUdObGJuUmxjanRjWEc0Z0lDQWdabTl1ZEMxbVlXMXBiSGs2SUdsdWFHVnlhWFE3WEZ4dUlDQjlYRnh1WEZ4dUlDQXVTR1ZzY0VScFlXeHZaeTB0YUdWaFpHVnlJSHRjWEc0Z0lDQWdaR2x6Y0d4aGVUb2dabXhsZUR0Y1hHNGdJQ0FnWm14bGVDMWthWEpsWTNScGIyNDZJSEp2ZHp0Y1hHNGdJQ0FnYW5WemRHbG1lUzFqYjI1MFpXNTBPaUJ6Y0dGalpTMWxkbVZ1YkhrN1hGeHVJQ0FnSUcxaGNtZHBiaTFpYjNSMGIyMDZJRE15Y0hnN1hGeHVJQ0FnSUhCaFpHUnBibWN0WW05MGRHOXRPaUF4Tm5CNE8xeGNiaUFnZlZ4Y2JseGNiaUFnTGtobGJIQkVhV0ZzYjJjdExXSjBiaUI3WEZ4dUlDQWdJR0p2Y21SbGNqb2dNWEI0SUhOdmJHbGtJSFpoY2lndExXeHBibXN0WTI5c2IzSXBPMXhjYmlBZ0lDQndZV1JrYVc1bk9pQTRjSGdnTXpKd2VEdGNYRzRnSUNBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTkhCNE8xeGNiaUFnZlZ4Y2JpQWdMa2hsYkhCRWFXRnNiMmN0TFdKMGJqcG9iM1psY2lCN1hGeHVJQ0FnSUhSbGVIUXRaR1ZqYjNKaGRHbHZiam9nYm05dVpUdGNYRzRnSUgxY1hHNTlYRnh1WENKZExGd2ljMjkxY21ObFVtOXZkRndpT2x3aVhDSjlYU2s3WEc0dkx5QkZlSEJ2Y25SelhHNWxlSEJ2Y25RZ1pHVm1ZWFZzZENCZlgxOURVMU5mVEU5QlJFVlNYMFZZVUU5U1ZGOWZYenRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9IZWxwRGlhbG9nLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvSGludFZpZXdlci5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvSGludFZpZXdlci5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLy8gSW1wb3J0c1xcblxcblxcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxuLy8gTW9kdWxlXFxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcXFwiOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxcXG59XFxcXG5cXFxcbi5leGNhbGlkcmF3IC5IaW50Vmlld2VyIHtcXFxcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG4gIGxlZnQ6IDA7XFxcXG4gIHRvcDogMTAwJTtcXFxcbiAgbWF4LXdpZHRoOiAxMDAlO1xcXFxuICB3aWR0aDogMTAwJTtcXFxcbiAgbWFyZ2luLXRvcDogNnB4O1xcXFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxcXG4gIGNvbG9yOiAjODY4ZTk2O1xcXFxuICBmb250LXNpemU6IDAuOHJlbTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuSGludFZpZXdlciB7XFxcXG4gIHBvc2l0aW9uOiBzdGF0aWM7XFxcXG4gIHBhZGRpbmctcmlnaHQ6IDJlbTtcXFxcbn1cXFxcblxcXFxuLmV4Y2FsaWRyYXcgLkhpbnRWaWV3ZXIgPiBzcGFuIHtcXFxcbiAgcGFkZGluZzogMC4ycmVtIDAuNHJlbTtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tb3ZlcmxheS1iZy1jb2xvcik7XFxcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXFxcbn1cXFwiLCBcXFwiXFxcIix7XFxcInZlcnNpb25cXFwiOjMsXFxcInNvdXJjZXNcXFwiOltcXFwid2VicGFjazovLy4vLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1xcXCIsXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvSGludFZpZXdlci5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQVVBO0VBQ0UsMkNBQUE7QUNURjs7QUFJRTtFQUNFLG9CQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSx1QkFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQ21CUTtFRGxCUixpQkFBQTtBQURKO0FEZlc7RUNtQkwsZ0JBQUE7RUFDQSxrQkFBQTtBQUROOztBQUlJO0VBQ0Usc0JBQUE7RUFDQSx5Q0FBQTtFQUNBLGtCQUFBO0FBRE5cXFwiLFxcXCJzb3VyY2VzQ29udGVudFxcXCI6W1xcXCJAaW1wb3J0IFxcXFxcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFxcXFxcIjtcXFxcblxcXFxuQG1peGluIGlzTW9iaWxlKCkge1xcXFxuICBAYXQtcm9vdCAuZXhjYWxpZHJhdy0tbW9iaWxlI3smfSB7XFxcXG4gICAgQGNvbnRlbnQ7XFxcXG4gIH1cXFxcbn1cXFxcblxcXFxuJHRoZW1lLWZpbHRlcjogXFxcXFxcXCJpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZylcXFxcXFxcIjtcXFxcblxcXFxuOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiB1bnF1b3RlKCR0aGVtZS1maWx0ZXIpO1xcXFxufVxcXFxuXFxcIixcXFwiQGltcG9ydCBcXFxcXFxcIi4uL2Nzcy92YXJpYWJsZXMubW9kdWxlXFxcXFxcXCI7XFxcXG5cXFxcbi8vIHRoaXMgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGUgbG9uZ2VzdCBoaW50IHRleHRcXFxcbiR3aWRlLXZpZXdwb3J0LXdpZHRoOiAxMDAwcHg7XFxcXG5cXFxcbi5leGNhbGlkcmF3IHtcXFxcbiAgLkhpbnRWaWV3ZXIge1xcXFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcXFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG4gICAgbGVmdDogMDtcXFxcbiAgICB0b3A6IDEwMCU7XFxcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcXFxuICAgIHdpZHRoOiAxMDAlO1xcXFxuICAgIG1hcmdpbi10b3A6IDZweDtcXFxcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxcXG4gICAgY29sb3I6ICRvYy1ncmF5LTY7XFxcXG4gICAgZm9udC1zaXplOiAwLjhyZW07XFxcXG5cXFxcbiAgICBAaW5jbHVkZSBpc01vYmlsZSB7XFxcXG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xcXFxuICAgICAgcGFkZGluZy1yaWdodDogMmVtO1xcXFxuICAgIH1cXFxcblxcXFxuICAgID4gc3BhbiB7XFxcXG4gICAgICBwYWRkaW5nOiAwLjJyZW0gMC40cmVtO1xcXFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tb3ZlcmxheS1iZy1jb2xvcik7XFxcXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxcXG4gICAgfVxcXFxuICB9XFxcXG59XFxcXG5cXFwiLFxcXCIvL1xcXFxuLy9cXFxcbi8vICBcdUQ4MzVcdURERDYgXHVEODM1XHVEREUyIFx1RDgzNVx1RERERiBcdUQ4MzVcdURERTIgXHVEODM1XHVEREU1XFxcXG4vLyAgdiAxLjkuMVxcXFxuLy9cXFxcbi8vICBcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcXFxcblxcXFxuXFxcXG4vLyAgR2VuZXJhbFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2Mtd2hpdGU6ICAgICAgICAgI2ZmZmZmZjtcXFxcbiRvYy1ibGFjazogICAgICAgICAjMDAwMDAwO1xcXFxuXFxcXG5cXFxcbi8vICBHcmF5XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmF5LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmOGY5ZmEsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZjFmM2Y1LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2U5ZWNlZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNkZWUyZTYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjY2VkNGRhLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2FkYjViZCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM4NjhlOTYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNDk1MDU3LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzM0M2E0MCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMyMTI1MjlcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmF5LTA6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0yOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTM6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS01OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTY6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS04OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTk6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBSZWRcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXJlZC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmNWY1LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZTNlMyxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmM5YzksXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZhOGE4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmODc4NyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmZjZiNmIsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmE1MjUyLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2YwM2UzZSxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNlMDMxMzEsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjYzkyYTJhXFxcXG4pO1xcXFxuXFxcXG4kb2MtcmVkLTA6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTE6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTI6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTM6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTQ6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTU6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTY6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTc6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTg6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTk6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFBpbmtcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXBpbmstbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjBmNixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmRlZWIsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmNjMmQ3LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZhYTJjMSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmNzgzYWMsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZjA2NTk1LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2U2NDk4MCxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNkNjMzNmMsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjYzIyNTVjLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2E2MWU0ZFxcXFxuKTtcXFxcblxcXFxuJG9jLXBpbmstMDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtcGluay0xOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTI6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtcGluay00OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTU6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtcGluay03OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTg6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstOTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEdyYXBlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmFwZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjhmMGZjLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2YzZDlmYSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNlZWJlZmEsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZTU5OWY3LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2RhNzdmMixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNjYzVkZTgsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjYmU0YmRiLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2FlM2VjOSxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM5YzM2YjUsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjODYyZTljXFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JhcGUtMDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTE6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0yOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTQ6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS01OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTc6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS04OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtOTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBWaW9sZXRcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXZpb2xldC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjNmMGZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2U1ZGJmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNkMGJmZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjYjE5N2ZjLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzk3NzVmYSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM4NDVlZjcsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNzk1MGYyLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzcwNDhlOCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM2NzQxZDksXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjNWYzZGM0XFxcXG4pO1xcXFxuXFxcXG4kb2MtdmlvbGV0LTA6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTE6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTI6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTM6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTQ6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTU6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTY6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTc6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTg6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTk6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEluZGlnb1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtaW5kaWdvLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlZGYyZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZGJlNGZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2JhYzhmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM5MWE3ZmYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNzQ4ZmZjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzVjN2NmYSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM0YzZlZjUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNDI2M2ViLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzNiNWJkYixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMzNjRmYzdcXFxcbik7XFxcXG5cXFxcbiRvYy1pbmRpZ28tMDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tODogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tOTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQmx1ZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtYmx1ZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTdmNWZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2QwZWJmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNhNWQ4ZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNzRjMGZjLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzRkYWJmNyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMzMzlhZjAsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMjI4YmU2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzFjN2VkNixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMxOTcxYzIsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMTg2NGFiXFxcXG4pO1xcXFxuXFxcXG4kb2MtYmx1ZS0wOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTE6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0zOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTQ6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS02OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTc6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtODogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS05OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQ3lhblxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtY3lhbi1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTNmYWZjLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2M1ZjZmYSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICM5OWU5ZjIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNjZkOWU4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzNiYzlkYixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMyMmI4Y2YsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMTVhYWJmLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzEwOThhZCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMwYzg1OTksXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMGI3Mjg1XFxcXG4pO1xcXFxuXFxcXG4kb2MtY3lhbi0wOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTE6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0zOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTQ6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi02OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTc6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tODogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi05OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgVGVhbFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtdGVhbC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTZmY2Y1LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2MzZmFlOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICM5NmYyZDcsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNjNlNmJlLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzM4ZDlhOSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMyMGM5OTcsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMTJiODg2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzBjYTY3OCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMwOTkyNjgsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMDg3ZjViXFxcXG4pO1xcXFxuXFxcXG4kb2MtdGVhbC0wOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTE6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0zOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTQ6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC02OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTc6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtODogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC05OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgR3JlZW5cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyZWVuLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlYmZiZWUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZDNmOWQ4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2IyZjJiYixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM4Y2U5OWEsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNjlkYjdjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzUxY2Y2NixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM0MGMwNTcsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMzdiMjRkLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzJmOWU0NCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMyYjhhM2VcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmVlbi0wOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTI6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0zOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNDogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTU6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi02OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNzogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTg6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi05OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIExpbWVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWxpbWUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y0ZmNlMyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNlOWZhYzgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZDhmNWEyLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2MwZWI3NSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNhOWUzNGIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjOTRkODJkLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzgyYzkxZSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM3NGI4MTYsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjNjZhODBmLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzVjOTQwZFxcXFxuKTtcXFxcblxcXFxuJG9jLWxpbWUtMDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0xOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTI6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtbGltZS00OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTU6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtbGltZS03OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTg6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtOTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFllbGxvd1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MteWVsbG93LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY5ZGIsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZmM2JmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmZWM5OSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmUwNjYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmZkNDNiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZjYzQxOSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmYWIwMDUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjU5ZjAwLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2YwOGMwMCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNlNjc3MDBcXFxcbik7XFxcXG5cXFxcbiRvYy15ZWxsb3ctMDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctODogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctOTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgT3JhbmdlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1vcmFuZ2UtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjRlNixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmU4Y2MsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZkOGE4LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmYzA3OCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZmE5NGQsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmY5MjJiLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZkN2UxNCxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmNzY3MDcsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZTg1OTBjLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2Q5NDgwZlxcXFxuKTtcXFxcblxcXFxuJG9jLW9yYW5nZS0wOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0xOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0yOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0zOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS00OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS01OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS02OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS03OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS04OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS05OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBDb2xvciBsaXN0XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1jb2xvci1zcGVjdHJ1bTogICA5O1xcXFxuXFxcXG4kb2MtY29sb3ItbGlzdDogKFxcXFxuICAkb2MtZ3JheS1saXN0OiAgICAgIFxcXFxcXFwiZ3JheVxcXFxcXFwiLFxcXFxuICAkb2MtcmVkLWxpc3Q6ICAgICAgXFxcXFxcXCJyZWRcXFxcXFxcIixcXFxcbiAgJG9jLXBpbmstbGlzdDogICAgICBcXFxcXFxcInBpbmtcXFxcXFxcIixcXFxcbiAgJG9jLWdyYXBlLWxpc3Q6ICAgICAgXFxcXFxcXCJncmFwZVxcXFxcXFwiLFxcXFxuICAkb2MtdmlvbGV0LWxpc3Q6ICAgICAgXFxcXFxcXCJ2aW9sZXRcXFxcXFxcIixcXFxcbiAgJG9jLWluZGlnby1saXN0OiAgICAgIFxcXFxcXFwiaW5kaWdvXFxcXFxcXCIsXFxcXG4gICRvYy1ibHVlLWxpc3Q6ICAgICAgXFxcXFxcXCJibHVlXFxcXFxcXCIsXFxcXG4gICRvYy1jeWFuLWxpc3Q6ICAgICAgXFxcXFxcXCJjeWFuXFxcXFxcXCIsXFxcXG4gICRvYy10ZWFsLWxpc3Q6ICAgICAgXFxcXFxcXCJ0ZWFsXFxcXFxcXCIsXFxcXG4gICRvYy1ncmVlbi1saXN0OiAgICAgIFxcXFxcXFwiZ3JlZW5cXFxcXFxcIixcXFxcbiAgJG9jLWxpbWUtbGlzdDogICAgICBcXFxcXFxcImxpbWVcXFxcXFxcIixcXFxcbiAgJG9jLXllbGxvdy1saXN0OiAgICAgIFxcXFxcXFwieWVsbG93XFxcXFxcXCIsXFxcXG4gICRvYy1vcmFuZ2UtbGlzdDogICAgICBcXFxcXFxcIm9yYW5nZVxcXFxcXFwiXFxcXG4pO1xcXFxuXFxcIl0sXFxcInNvdXJjZVJvb3RcXFwiOlxcXCJcXFwifV0pO1xcbi8vIEV4cG9ydHNcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKF9fX0NTU19MT0FERVJfRVhQT1JUX19fKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlJYVc1MFZtbGxkMlZ5TG5OamMzTXVhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN1FVRkJRVHRCUVVNNFNEdEJRVU5xUWp0QlFVTTNSeXc0UWtGQk9FSXNkVWRCUVRKQ0xFTkJRVU1zWjBoQlFYRkRPMEZCUXk5R08wRkJRMEVzYlVSQlFXMUVMR2RFUVVGblJDeEhRVUZITERaQ1FVRTJRaXg1UWtGQmVVSXNNa0pCUVRKQ0xIVkNRVUYxUWl4clFrRkJhMElzTkVKQlFUUkNMRmxCUVZrc1kwRkJZeXh2UWtGQmIwSXNaMEpCUVdkQ0xHOUNRVUZ2UWl4MVFrRkJkVUlzYlVKQlFXMUNMSE5DUVVGelFpeEhRVUZITERoRFFVRTRReXh4UWtGQmNVSXNkVUpCUVhWQ0xFZEJRVWNzYjBOQlFXOURMREpDUVVFeVFpdzRRMEZCT0VNc2RVSkJRWFZDTEVkQlFVY3NUMEZCVHl4blRrRkJaMDRzVjBGQlZ5eE5RVUZOTEV0QlFVc3NWMEZCVnl4WFFVRlhMRmRCUVZjc1ZVRkJWU3hYUVVGWExGVkJRVlVzVlVGQlZTeFZRVUZWTEZWQlFWVXNWVUZCVlN4WFFVRlhMRmRCUVZjc1dVRkJXU3hMUVVGTExFdEJRVXNzV1VGQldTeFhRVUZYTEUxQlFVMHNTMEZCU3l4WFFVRlhMRmRCUVZjc1YwRkJWeXhuUlVGQlowVXNkVUpCUVhWQ0xHdERRVUZyUXl4SlFVRkpMR1ZCUVdVc1MwRkJTeXhIUVVGSExITkVRVUZ6UkN4aFFVRmhMSGREUVVGM1F5eEhRVUZITEhsRFFVRjVReXh2UmtGQmIwWXNhVUpCUVdsQ0xHbENRVUZwUWl3eVFrRkJNa0lzTmtKQlFUWkNMSGxDUVVGNVFpeHZRa0ZCYjBJc09FSkJRVGhDTEdOQlFXTXNaMEpCUVdkQ0xITkNRVUZ6UWl4clFrRkJhMElzYzBKQlFYTkNMSGxDUVVGNVFpeDNRa0ZCZDBJc2QwSkJRWGRDTERKQ1FVRXlRaXg1UWtGQmVVSXNNa0pCUVRKQ0xFOUJRVThzWjBKQlFXZENMQ3RDUVVFclFpeHJSRUZCYTBRc01rSkJRVEpDTEU5QlFVOHNTMEZCU3l4SFFVRkhMR3RNUVVGclRDdzJRa0ZCTmtJc05GRkJRVFJSTERoRFFVRTRReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXd3VVVGQk1GRXNORU5CUVRSRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc01FTkJRVEJETERCRFFVRXdReXd3UTBGQk1FTXNNRU5CUVRCRExEUlJRVUUwVVN3NFEwRkJPRU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zT0ZGQlFUaFJMR2RFUVVGblJDdzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5eG5Va0ZCWjFJc2EwUkJRV3RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkU1FVRm5VaXhyUkVGQmEwUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNORkZCUVRSUkxEaERRVUU0UXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFVVRkJORkVzT0VOQlFUaERMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJSUVVFMFVTdzRRMEZCT0VNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc09GRkJRVGhSTEdkRVFVRm5SQ3c0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXcwVVVGQk5GRXNPRU5CUVRoRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExHZFNRVUZuVWl4clJFRkJhMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjFKQlFXZFNMR3RFUVVGclJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeDVSa0ZCZVVZc2RXUkJRWFZrTEhGQ1FVRnhRanRCUVVNek9GZzdRVUZEUVN4cFJVRkJaU3gxUWtGQmRVSXNSVUZCUXlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWpiMjF3YjI1bGJuUnpMMGhwYm5SV2FXVjNaWEl1YzJOemN6ODNPRE5rSWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHZJRWx0Y0c5eWRITmNibWx0Y0c5eWRDQmZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOVRUMVZTUTBWTlFWQmZTVTFRVDFKVVgxOWZJR1p5YjIwZ1hDSXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OWpjM010Ykc5aFpHVnlMMlJwYzNRdmNuVnVkR2x0WlM5emIzVnlZMlZOWVhCekxtcHpYQ0k3WEc1cGJYQnZjblFnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmU1UxUVQxSlVYMTlmSUdaeWIyMGdYQ0l1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTlqYzNNdGJHOWhaR1Z5TDJScGMzUXZjblZ1ZEdsdFpTOWhjR2t1YW5OY0lqdGNiblpoY2lCZlgxOURVMU5mVEU5QlJFVlNYMFZZVUU5U1ZGOWZYeUE5SUY5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDBsTlVFOVNWRjlmWHloZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5VFQxVlNRMFZOUVZCZlNVMVFUMUpVWDE5ZktUdGNiaTh2SUUxdlpIVnNaVnh1WDE5ZlExTlRYMHhQUVVSRlVsOUZXRkJQVWxSZlgxOHVjSFZ6YUNoYmJXOWtkV3hsTG1sa0xDQmNJanBsZUhCdmNuUWdlMXhjYmlBZ2RHaGxiV1ZHYVd4MFpYSTZJR2x1ZG1WeWRDZzVNeVVwSUdoMVpTMXliM1JoZEdVb01UZ3daR1ZuS1R0Y1hHNTlYRnh1WEZ4dUxtVjRZMkZzYVdSeVlYY2dMa2hwYm5SV2FXVjNaWElnZTF4Y2JpQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHNXZibVU3WEZ4dUlDQmliM2d0YzJsNmFXNW5PaUJpYjNKa1pYSXRZbTk0TzF4Y2JpQWdjRzl6YVhScGIyNDZJR0ZpYzI5c2RYUmxPMXhjYmlBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjWEc0Z0lHcDFjM1JwWm5rdFkyOXVkR1Z1ZERvZ1kyVnVkR1Z5TzF4Y2JpQWdiR1ZtZERvZ01EdGNYRzRnSUhSdmNEb2dNVEF3SlR0Y1hHNGdJRzFoZUMxM2FXUjBhRG9nTVRBd0pUdGNYRzRnSUhkcFpIUm9PaUF4TURBbE8xeGNiaUFnYldGeVoybHVMWFJ2Y0RvZ05uQjRPMXhjYmlBZ2RHVjRkQzFoYkdsbmJqb2dZMlZ1ZEdWeU8xeGNiaUFnWTI5c2IzSTZJQ000TmpobE9UWTdYRnh1SUNCbWIyNTBMWE5wZW1VNklEQXVPSEpsYlR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjdExXMXZZbWxzWlM1bGVHTmhiR2xrY21GM0lDNUlhVzUwVm1sbGQyVnlJSHRjWEc0Z0lIQnZjMmwwYVc5dU9pQnpkR0YwYVdNN1hGeHVJQ0J3WVdSa2FXNW5MWEpwWjJoME9pQXlaVzA3WEZ4dWZWeGNibHhjYmk1bGVHTmhiR2xrY21GM0lDNUlhVzUwVm1sbGQyVnlJRDRnYzNCaGJpQjdYRnh1SUNCd1lXUmthVzVuT2lBd0xqSnlaVzBnTUM0MGNtVnRPMXhjYmlBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YjNabGNteGhlUzFpWnkxamIyeHZjaWs3WEZ4dUlDQmliM0prWlhJdGNtRmthWFZ6T2lBMGNIZzdYRnh1ZlZ3aUxDQmNJbHdpTEh0Y0luWmxjbk5wYjI1Y0lqb3pMRndpYzI5MWNtTmxjMXdpT2x0Y0luZGxZbkJoWTJzNkx5OHVMeTR1THk0dUwyTnpjeTkyWVhKcFlXSnNaWE11Ylc5a2RXeGxMbk5qYzNOY0lpeGNJbmRsWW5CaFkyczZMeTh1THk0dUx5NHVMMk52YlhCdmJtVnVkSE12U0dsdWRGWnBaWGRsY2k1elkzTnpYQ0lzWENKM1pXSndZV05yT2k4dkxpOHVMaTh1TGk4dUxpOXViMlJsWDIxdlpIVnNaWE12YjNCbGJpMWpiMnh2Y2k5dmNHVnVMV052Ykc5eUxuTmpjM05jSWwwc1hDSnVZVzFsYzF3aU9sdGRMRndpYldGd2NHbHVaM05jSWpwY0lrRkJWVUU3UlVGRFJTd3lRMEZCUVR0QlExUkdPenRCUVVsRk8wVkJRMFVzYjBKQlFVRTdSVUZEUVN4elFrRkJRVHRGUVVOQkxHdENRVUZCTzBWQlEwRXNZVUZCUVR0RlFVTkJMSFZDUVVGQk8wVkJRMEVzVDBGQlFUdEZRVU5CTEZOQlFVRTdSVUZEUVN4bFFVRkJPMFZCUTBFc1YwRkJRVHRGUVVOQkxHVkJRVUU3UlVGRFFTeHJRa0ZCUVR0RlFVTkJMR05EYlVKUk8wVkViRUpTTEdsQ1FVRkJPMEZCUkVvN1FVUm1WenRGUTIxQ1RDeG5Ra0ZCUVR0RlFVTkJMR3RDUVVGQk8wRkJSRTQ3TzBGQlNVazdSVUZEUlN4elFrRkJRVHRGUVVOQkxIbERRVUZCTzBWQlEwRXNhMEpCUVVFN1FVRkVUbHdpTEZ3aWMyOTFjbU5sYzBOdmJuUmxiblJjSWpwYlhDSkFhVzF3YjNKMElGeGNYQ0p2Y0dWdUxXTnZiRzl5TDI5d1pXNHRZMjlzYjNJdWMyTnpjMXhjWENJN1hGeHVYRnh1UUcxcGVHbHVJR2x6VFc5aWFXeGxLQ2tnZTF4Y2JpQWdRR0YwTFhKdmIzUWdMbVY0WTJGc2FXUnlZWGN0TFcxdlltbHNaU043Sm4wZ2UxeGNiaUFnSUNCQVkyOXVkR1Z1ZER0Y1hHNGdJSDFjWEc1OVhGeHVYRnh1SkhSb1pXMWxMV1pwYkhSbGNqb2dYRnhjSW1sdWRtVnlkQ2c1TXlVcElHaDFaUzF5YjNSaGRHVW9NVGd3WkdWbktWeGNYQ0k3WEZ4dVhGeHVPbVY0Y0c5eWRDQjdYRnh1SUNCMGFHVnRaVVpwYkhSbGNqb2dkVzV4ZFc5MFpTZ2tkR2hsYldVdFptbHNkR1Z5S1R0Y1hHNTlYRnh1WENJc1hDSkFhVzF3YjNKMElGeGNYQ0l1TGk5amMzTXZkbUZ5YVdGaWJHVnpMbTF2WkhWc1pWeGNYQ0k3WEZ4dVhGeHVMeThnZEdocGN5QnBjeUJzYjI5elpXeDVJR0poYzJWa0lHOXVJSFJvWlNCc2IyNW5aWE4wSUdocGJuUWdkR1Y0ZEZ4Y2JpUjNhV1JsTFhacFpYZHdiM0owTFhkcFpIUm9PaUF4TURBd2NIZzdYRnh1WEZ4dUxtVjRZMkZzYVdSeVlYY2dlMXhjYmlBZ0xraHBiblJXYVdWM1pYSWdlMXhjYmlBZ0lDQndiMmx1ZEdWeUxXVjJaVzUwY3pvZ2JtOXVaVHRjWEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeGNiaUFnSUNCcWRYTjBhV1o1TFdOdmJuUmxiblE2SUdObGJuUmxjanRjWEc0Z0lDQWdiR1ZtZERvZ01EdGNYRzRnSUNBZ2RHOXdPaUF4TURBbE8xeGNiaUFnSUNCdFlYZ3RkMmxrZEdnNklERXdNQ1U3WEZ4dUlDQWdJSGRwWkhSb09pQXhNREFsTzF4Y2JpQWdJQ0J0WVhKbmFXNHRkRzl3T2lBMmNIZzdYRnh1SUNBZ0lIUmxlSFF0WVd4cFoyNDZJR05sYm5SbGNqdGNYRzRnSUNBZ1kyOXNiM0k2SUNSdll5MW5jbUY1TFRZN1hGeHVJQ0FnSUdadmJuUXRjMmw2WlRvZ01DNDRjbVZ0TzF4Y2JseGNiaUFnSUNCQWFXNWpiSFZrWlNCcGMwMXZZbWxzWlNCN1hGeHVJQ0FnSUNBZ2NHOXphWFJwYjI0NklITjBZWFJwWXp0Y1hHNGdJQ0FnSUNCd1lXUmthVzVuTFhKcFoyaDBPaUF5WlcwN1hGeHVJQ0FnSUgxY1hHNWNYRzRnSUNBZ1BpQnpjR0Z1SUh0Y1hHNGdJQ0FnSUNCd1lXUmthVzVuT2lBd0xqSnlaVzBnTUM0MGNtVnRPMXhjYmlBZ0lDQWdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXOTJaWEpzWVhrdFltY3RZMjlzYjNJcE8xeGNiaUFnSUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SURSd2VEdGNYRzRnSUNBZ2ZWeGNiaUFnZlZ4Y2JuMWNYRzVjSWl4Y0lpOHZYRnh1THk5Y1hHNHZMeUFnOEoyWGxpRHduWmVpSVBDZGw1OGc4SjJYb2lEd25aZWxYRnh1THk4Z0lIWWdNUzQ1TGpGY1hHNHZMMXhjYmk4dklDRGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElGY1hHNWNYRzVjWEc0dkx5QWdSMlZ1WlhKaGJGeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10ZDJocGRHVTZJQ0FnSUNBZ0lDQWdJMlptWm1abVpqdGNYRzRrYjJNdFlteGhZMnM2SUNBZ0lDQWdJQ0FnSXpBd01EQXdNRHRjWEc1Y1hHNWNYRzR2THlBZ1IzSmhlVnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdFozSmhlUzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1PR1k1Wm1Fc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObU1XWXpaalVzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05sT1dWalpXWXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTmtaV1V5WlRZc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNOalpXUTBaR0VzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ05oWkdJMVltUXNYRnh1SUNCY1hGd2lObHhjWENJNklDTTROamhsT1RZc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNME9UVXdOVGNzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ016TkROaE5EQXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTXlNVEkxTWpsY1hHNHBPMXhjYmx4Y2JpUnZZeTFuY21GNUxUQTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzB4T2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE1qb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVE02SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMwME9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3ROVG9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRZNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0T0RvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxUazZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnVW1Wa1hGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTF5WldRdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWm1abU5XWTFMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpabVpsTTJVekxGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalptWmpPV001TEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWm1aaE9HRTRMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpabVk0TnpnM0xGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBalptWTJZalppTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqWm1FMU1qVXlMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpaakF6WlRObExGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBalpUQXpNVE14TEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqWXpreVlUSmhYRnh1S1R0Y1hHNWNYRzRrYjJNdGNtVmtMVEE2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MXlaV1F0TVRvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMWEpsWkMweU9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUTTZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxeVpXUXRORG9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxYSmxaQzAxT2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRZNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE56b2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVGs2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCUWFXNXJYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxd2FXNXJMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyWm1aakJtTml4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJabVpHVmxZaXhjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMlpqWXpKa055eGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0kyWmhZVEpqTVN4Y1hHNGdJRnhjWENJMFhGeGNJam9nSTJZM09ETmhZeXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJMll3TmpVNU5TeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0kyVTJORGs0TUN4Y1hHNGdJRnhjWENJM1hGeGNJam9nSTJRMk16TTJZeXhjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJMk15TWpVMVl5eGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0kyRTJNV1UwWkZ4Y2JpazdYRnh1WEZ4dUpHOWpMWEJwYm1zdE1Eb2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVEU2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkweU9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3RNem9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRRNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MDFPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0TmpvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUYzZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTA0T2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE9Ub2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JIY21Gd1pWeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10WjNKaGNHVXRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpqaG1NR1pqTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWmpOa09XWmhMRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpaV1ZpWldaaExGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBalpUVTVPV1kzTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqWkdFM04yWXlMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpZMk0xWkdVNExGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBalltVTBZbVJpTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqWVdVelpXTTVMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpPV016Tm1JMUxGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak9EWXlaVGxqWEZ4dUtUdGNYRzVjWEc0a2IyTXRaM0poY0dVdE1Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdFozSmhjR1V0TVRvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10WjNKaGNHVXRNam9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRaM0poY0dVdE16b2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdFozSmhjR1V0TkRvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10WjNKaGNHVXROVG9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRaM0poY0dVdE5qb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdFozSmhjR1V0TnpvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10WjNKaGNHVXRPRG9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRaM0poY0dVdE9Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnVm1sdmJHVjBYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxMmFXOXNaWFF0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaak5tTUdabUxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpUVmtZbVptTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWkRCaVptWm1MRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpZakU1TjJaakxGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBak9UYzNOV1poTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqT0RRMVpXWTNMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpOemsxTUdZeUxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak56QTBPR1U0TEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTmpjME1XUTVMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpOV1l6WkdNMFhGeHVLVHRjWEc1Y1hHNGtiMk10ZG1sdmJHVjBMVEE2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXRNVG9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUTTZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE5Eb2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMwMU9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRZNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0TnpvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzA0T2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVGs2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQkpibVJwWjI5Y1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV2x1WkdsbmJ5MXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObFpHWXlabVlzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05rWW1VMFptWXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTmlZV000Wm1Zc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNNNU1XRTNabVlzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ00zTkRobVptTXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTTFZemRqWm1Fc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNNMFl6WmxaalVzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ00wTWpZelpXSXNYRnh1SUNCY1hGd2lPRnhjWENJNklDTXpZalZpWkdJc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNek5qUm1ZemRjWEc0cE8xeGNibHhjYmlSdll5MXBibVJwWjI4dE1Eb2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkweE9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRJNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0TXpvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTAwT2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVFU2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHROam9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MDNPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUZzZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE9Ub2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUVKc2RXVmNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFdKc2RXVXRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpUZG1OV1ptTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWkRCbFltWm1MRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpZVFZrT0dabUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBak56UmpNR1pqTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqTkdSaFltWTNMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpNek01WVdZd0xGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBak1qSTRZbVUyTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqTVdNM1pXUTJMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpNVGszTVdNeUxGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak1UZzJOR0ZpWEZ4dUtUdGNYRzVjWEc0a2IyTXRZbXgxWlMwd09pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXRNVG9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRJNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10WW14MVpTMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0TkRvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUVTZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzAyT2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE56b2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVGc2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMwNU9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRU41WVc1Y1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV041WVc0dGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWlRObVlXWmpMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpZelZtTm1aaExGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBak9UbGxPV1l5TEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqTmpaa09XVTRMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpNMkpqT1dSaUxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBak1qSmlPR05tTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqTVRWaFlXSm1MRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpNVEE1T0dGa0xGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak1HTTROVGs1TEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTUdJM01qZzFYRnh1S1R0Y1hHNWNYRzRrYjJNdFkzbGhiaTB3T2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE1Ub2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVEk2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkwek9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHRORG9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRVNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0TnpvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxUZzZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTA1T2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lGUmxZV3hjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxYUmxZV3d0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaVFptWTJZMUxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBall6Tm1ZV1U0TEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqT1RabU1tUTNMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpOak5sTm1KbExGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBak16aGtPV0U1TEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqTWpCak9UazNMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpNVEppT0RnMkxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak1HTmhOamM0TEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTURrNU1qWTRMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpNRGczWmpWaVhGeHVLVHRjWEc1Y1hHNGtiMk10ZEdWaGJDMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0TVRvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUSTZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzB6T2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE5Eb2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVFU2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMwMk9pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3ROem9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRnNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUVkeVpXVnVYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxbmNtVmxiaTFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTmxZbVppWldVc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNOa00yWTVaRGdzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05pTW1ZeVltSXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTTRZMlU1T1dFc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNNMk9XUmlOMk1zWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ00xTVdObU5qWXNYRnh1SUNCY1hGd2lObHhjWENJNklDTTBNR013TlRjc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNek4ySXlOR1FzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ015WmpsbE5EUXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTXlZamhoTTJWY1hHNHBPMXhjYmx4Y2JpUnZZeTFuY21WbGJpMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MW5jbVZsYmkweE9pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxbmNtVmxiaTB5T2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTFuY21WbGJpMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MW5jbVZsYmkwME9pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxbmNtVmxiaTAxT2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTFuY21WbGJpMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MW5jbVZsYmkwM09pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxbmNtVmxiaTA0T2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFuY21WbGJpMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCTWFXMWxYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxc2FXMWxMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyWTBabU5sTXl4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJVNVptRmpPQ3hjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMlE0WmpWaE1peGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0kyTXdaV0kzTlN4Y1hHNGdJRnhjWENJMFhGeGNJam9nSTJFNVpUTTBZaXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJemswWkRneVpDeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0l6Z3lZemt4WlN4Y1hHNGdJRnhjWENJM1hGeGNJam9nSXpjMFlqZ3hOaXhjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJelkyWVRnd1ppeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6VmpPVFF3WkZ4Y2JpazdYRnh1WEZ4dUpHOWpMV3hwYldVdE1Eb2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVEU2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMweU9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXRNem9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRRNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0TmpvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUYzZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzA0T2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE9Ub2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JaWld4c2IzZGNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFhsbGJHeHZkeTFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1abVk1WkdJc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObVptWXpZbVlzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05tWm1Wak9Ua3NYRnh1SUNCY1hGd2lNMXhjWENJNklDTm1abVV3TmpZc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNObVptUTBNMklzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ05tWTJNME1Ua3NYRnh1SUNCY1hGd2lObHhjWENJNklDTm1ZV0l3TURVc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNObU5UbG1NREFzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ05tTURoak1EQXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTmxOamMzTURCY1hHNHBPMXhjYmx4Y2JpUnZZeTE1Wld4c2IzY3RNRG9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MHhPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUSTZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE16b2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkwME9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRVNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0TmpvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTAzT2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVGc2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3RPVG9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lFOXlZVzVuWlZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRiM0poYm1kbExXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJabVpqUmxOaXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlptWlRoall5eGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyWm1aRGhoT0N4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJabVl6QTNPQ3hjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJMlptWVRrMFpDeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0kyWm1PVEl5WWl4Y1hHNGdJRnhjWENJMlhGeGNJam9nSTJaa04yVXhOQ3hjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJMlkzTmpjd055eGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0kyVTROVGt3WXl4Y1hHNGdJRnhjWENJNVhGeGNJam9nSTJRNU5EZ3dabHhjYmlrN1hGeHVYRnh1Skc5akxXOXlZVzVuWlMwd09pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRFNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0TWpvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzB6T2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVFE2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXROVG9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUYzZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE9Eb2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMwNU9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnUTI5c2IzSWdiR2x6ZEZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRZMjlzYjNJdGMzQmxZM1J5ZFcwNklDQWdPVHRjWEc1Y1hHNGtiMk10WTI5c2IzSXRiR2x6ZERvZ0tGeGNiaUFnSkc5akxXZHlZWGt0YkdsemREb2dJQ0FnSUNCY1hGd2laM0poZVZ4Y1hDSXNYRnh1SUNBa2IyTXRjbVZrTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbkpsWkZ4Y1hDSXNYRnh1SUNBa2IyTXRjR2x1YXkxc2FYTjBPaUFnSUNBZ0lGeGNYQ0p3YVc1clhGeGNJaXhjWEc0Z0lDUnZZeTFuY21Gd1pTMXNhWE4wT2lBZ0lDQWdJRnhjWENKbmNtRndaVnhjWENJc1hGeHVJQ0FrYjJNdGRtbHZiR1YwTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJblpwYjJ4bGRGeGNYQ0lzWEZ4dUlDQWtiMk10YVc1a2FXZHZMV3hwYzNRNklDQWdJQ0FnWEZ4Y0ltbHVaR2xuYjF4Y1hDSXNYRnh1SUNBa2IyTXRZbXgxWlMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0ppYkhWbFhGeGNJaXhjWEc0Z0lDUnZZeTFqZVdGdUxXeHBjM1E2SUNBZ0lDQWdYRnhjSW1ONVlXNWNYRndpTEZ4Y2JpQWdKRzlqTFhSbFlXd3RiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWRHVmhiRnhjWENJc1hGeHVJQ0FrYjJNdFozSmxaVzR0YkdsemREb2dJQ0FnSUNCY1hGd2laM0psWlc1Y1hGd2lMRnhjYmlBZ0pHOWpMV3hwYldVdGJHbHpkRG9nSUNBZ0lDQmNYRndpYkdsdFpWeGNYQ0lzWEZ4dUlDQWtiMk10ZVdWc2JHOTNMV3hwYzNRNklDQWdJQ0FnWEZ4Y0lubGxiR3h2ZDF4Y1hDSXNYRnh1SUNBa2IyTXRiM0poYm1kbExXeHBjM1E2SUNBZ0lDQWdYRnhjSW05eVlXNW5aVnhjWENKY1hHNHBPMXhjYmx3aVhTeGNJbk52ZFhKalpWSnZiM1JjSWpwY0lsd2lmVjBwTzF4dUx5OGdSWGh3YjNKMGMxeHVaWGh3YjNKMElHUmxabUYxYkhRZ1gxOWZRMU5UWDB4UFFVUkZVbDlGV0ZCUFVsUmZYMTg3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9IaW50Vmlld2VyLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvSWNvblBpY2tlci5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvSWNvblBpY2tlci5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLy8gSW1wb3J0c1xcblxcblxcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxuLy8gTW9kdWxlXFxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcXFwiOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxcXG59XFxcXG5cXFxcbi5leGNhbGlkcmF3IC5waWNrZXItY29udGFpbmVyIHtcXFxcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcXFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcXFxuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucGlja2VyIHtcXFxcbiAgYmFja2dyb3VuZDogdmFyKC0tcG9wdXAtYmctY29sb3IpO1xcXFxuICBib3JkZXI6IDAgc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcXFxcbiAgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjI1KSAwIDFweCA0cHg7XFxcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnBpY2tlci1jb250YWluZXIgYnV0dG9uLFxcXFxuLmV4Y2FsaWRyYXcgLnBpY2tlciBidXR0b24ge1xcXFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnBpY2tlci1jb250YWluZXIgYnV0dG9uOmZvY3VzLXZpc2libGUsXFxcXG4uZXhjYWxpZHJhdyAucGlja2VyIGJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcXFxcbiAgb3V0bGluZTogdHJhbnNwYXJlbnQ7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnBpY2tlci1jb250YWluZXIgYnV0dG9uOmZvY3VzLXZpc2libGUgc3ZnLFxcXFxuLmV4Y2FsaWRyYXcgLnBpY2tlciBidXR0b246Zm9jdXMtdmlzaWJsZSBzdmcge1xcXFxuICBvcGFjaXR5OiAxO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnBpY2tlci1jb250YWluZXIgYnV0dG9uOmhvdmVyLFxcXFxuLmV4Y2FsaWRyYXcgLnBpY2tlciBidXR0b246aG92ZXIge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5waWNrZXItY29udGFpbmVyIGJ1dHRvbjphY3RpdmUsXFxcXG4uZXhjYWxpZHJhdyAucGlja2VyIGJ1dHRvbjphY3RpdmUge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5waWNrZXItY29udGFpbmVyIGJ1dHRvbjpkaXNhYmxlZCxcXFxcbi5leGNhbGlkcmF3IC5waWNrZXIgYnV0dG9uOmRpc2FibGVkIHtcXFxcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5waWNrZXItY29udGFpbmVyIGJ1dHRvbiBzdmcsXFxcXG4uZXhjYWxpZHJhdyAucGlja2VyIGJ1dHRvbiBzdmcge1xcXFxuICBtYXJnaW46IDA7XFxcXG4gIHdpZHRoOiAzNnB4O1xcXFxuICBoZWlnaHQ6IDE4cHg7XFxcXG4gIG9wYWNpdHk6IDAuNjtcXFxcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucGlja2VyIGJ1dHRvbiB7XFxcXG4gIHBhZGRpbmc6IDAuMjVyZW0gMC4yOHJlbSAwLjM1cmVtIDAuMjVyZW07XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucGlja2VyLXRyaWFuZ2xlIHtcXFxcbiAgd2lkdGg6IDA7XFxcXG4gIGhlaWdodDogMDtcXFxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcXFxuICB0b3A6IC0xMHB4O1xcXFxuICB6LWluZGV4OiAxMDtcXFxcbn1cXFxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5waWNrZXItdHJpYW5nbGUge1xcXFxuICBsZWZ0OiAxMnB4O1xcXFxufVxcXFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLnBpY2tlci10cmlhbmdsZSB7XFxcXG4gIHJpZ2h0OiAxMnB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnBpY2tlci10cmlhbmdsZTpiZWZvcmUge1xcXFxuICBjb250ZW50OiBcXFxcXFxcIlxcXFxcXFwiO1xcXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxcXG4gIGJvcmRlci13aWR0aDogMCA5cHggMTBweDtcXFxcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCByZ2JhKDAsIDAsIDAsIDAuMSk7XFxcXG4gIHRvcDogLTFweDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5waWNrZXItdHJpYW5nbGU6YWZ0ZXIge1xcXFxuICBjb250ZW50OiBcXFxcXFxcIlxcXFxcXFwiO1xcXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxcXG4gIGJvcmRlci13aWR0aDogMCA5cHggMTBweDtcXFxcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1wb3B1cC1iZy1jb2xvcik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucGlja2VyLWNvbnRlbnQge1xcXFxuICBwYWRkaW5nOiAwLjVyZW07XFxcXG4gIGRpc3BsYXk6IGdyaWQ7XFxcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIGF1dG8pO1xcXFxuICBncmlkLWdhcDogMC41cmVtO1xcXFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxcXG59XFxcXG46cm9vdFtkaXI9cnRsXSAuZXhjYWxpZHJhdyAucGlja2VyLWNvbnRlbnQge1xcXFxuICBwYWRkaW5nOiAwLjRyZW07XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucGlja2VyLWtleWJpbmRpbmcge1xcXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gIGJvdHRvbTogMnB4O1xcXFxuICBmb250LXNpemU6IDAuN2VtO1xcXFxuICBjb2xvcjogdmFyKC0ta2V5YmluZGluZy1jb2xvcik7XFxcXG59XFxcXG46cm9vdFtkaXI9bHRyXSAuZXhjYWxpZHJhdyAucGlja2VyLWtleWJpbmRpbmcge1xcXFxuICByaWdodDogMnB4O1xcXFxufVxcXFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLnBpY2tlci1rZXliaW5kaW5nIHtcXFxcbiAgbGVmdDogMnB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXctLW1vYmlsZS5leGNhbGlkcmF3IC5waWNrZXIta2V5YmluZGluZyB7XFxcXG4gIGRpc3BsYXk6IG5vbmU7XFxcXG59XFxcXG5cXFxcbi5leGNhbGlkcmF3IC5waWNrZXItdHlwZS1jYW52YXNCYWNrZ3JvdW5kIC5waWNrZXIta2V5YmluZGluZyB7XFxcXG4gIGNvbG9yOiAjYWFhO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnBpY2tlci10eXBlLWVsZW1lbnRCYWNrZ3JvdW5kIC5waWNrZXIta2V5YmluZGluZyB7XFxcXG4gIGNvbG9yOiAjZmZmZmZmO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnBpY2tlci1zd2F0Y2hbYXJpYS1sYWJlbD10cmFuc3BhcmVudF0gLnBpY2tlci1rZXliaW5kaW5nIHtcXFxcbiAgY29sb3I6ICNhYWE7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucGlja2VyLXR5cGUtZWxlbWVudFN0cm9rZSAucGlja2VyLWtleWJpbmRpbmcge1xcXFxuICBjb2xvcjogI2Q0ZDRkNDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LnRoZW1lLS1kYXJrIC5waWNrZXItdHlwZS1lbGVtZW50QmFja2dyb3VuZCAucGlja2VyLWtleWJpbmRpbmcge1xcXFxuICBjb2xvcjogIzAwMDAwMDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LnRoZW1lLS1kYXJrIC5waWNrZXItc3dhdGNoW2FyaWEtbGFiZWw9dHJhbnNwYXJlbnRdIC5waWNrZXIta2V5YmluZGluZyB7XFxcXG4gIGNvbG9yOiAjMDAwMDAwO1xcXFxufVxcXCIsIFxcXCJcXFwiLHtcXFwidmVyc2lvblxcXCI6MyxcXFwic291cmNlc1xcXCI6W1xcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9JY29uUGlja2VyLnNjc3NcXFwiLFxcXCJ3ZWJwYWNrOi8vLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvb3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiXSxcXFwibmFtZXNcXFwiOltdLFxcXCJtYXBwaW5nc1xcXCI6XFxcIkFBVUE7RUFDRSwyQ0FBQTtBQ1RGOztBQUNFO0VBQ0UscUJBQUE7RUFDQSxzQkFBQTtFQUNBLHFCQUFBO0FBRUo7QUFDRTtFQUNFLGlDQUFBO0VBQ0EseUNBQUE7RUFDQSx5Q0FBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7QUFDSjtBQUVFOztFQUVFLGtCQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7QUFBSjtBQUVJOztFQUNFLG9CQUFBO0VBQ0Esc0NBQUE7QUFDTjtBQUFNOztFQUNFLFVBQUE7QUFHUjtBQUNJOztFQUNFLHNDQUFBO0FBRU47QUFDSTs7RUFDRSxzQ0FBQTtBQUVOO0FBQ0k7O0VBQ0UsbUJBQUE7QUFFTjtBQUNJOztFQUNFLFNBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxvQkFBQTtBQUVOO0FBRUU7RUFDRSx3Q0FBQTtBQUFKO0FBR0U7RUFDRSxRQUFBO0VBQ0EsU0FBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQVFBLFdBQUE7QUFSSjtBQUNJO0VBQ0UsVUFBQTtBQUNOO0FBRUk7RUFDRSxXQUFBO0FBQU47QUFJSTtFQUNFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esd0JBQUE7RUFDQSx3REFBQTtFQUNBLFNBQUE7QUFGTjtBQUtJO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSx3QkFBQTtFQUNBLDJEQUFBO0FBSE47QUFPRTtFQUNFLGVBQUE7RUFDQSxhQUFBO0VBQ0Esc0NBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0FBTEo7QUFNSTtFQUNFLGVBQUE7QUFKTjtBQVFFO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSw4QkFBQTtBQU5KO0FBUUk7RUFDRSxVQUFBO0FBTk47QUFTSTtFQUNFLFNBQUE7QUFQTjtBRHJHVztFQytHTCxhQUFBO0FBUE47O0FBV0U7RUFDRSxXQUFBO0FBUko7QUFXRTtFQUNFLGNDaEhlO0FEdUduQjtBQVlFO0VBQ0UsV0FBQTtBQVZKO0FBYUU7RUFDRSxjQUFBO0FBWEo7QUFlSTtFQUNFLGNDNUhhO0FEK0duQjtBQWVJO0VBQ0UsY0MvSGE7QURrSG5CXFxcIixcXFwic291cmNlc0NvbnRlbnRcXFwiOltcXFwiQGltcG9ydCBcXFxcXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcXFxcXCI7XFxcXG5cXFxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXFxcbiAgQGF0LXJvb3QgLmV4Y2FsaWRyYXctLW1vYmlsZSN7Jn0ge1xcXFxuICAgIEBjb250ZW50O1xcXFxuICB9XFxcXG59XFxcXG5cXFxcbiR0aGVtZS1maWx0ZXI6IFxcXFxcXFwiaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpXFxcXFxcXCI7XFxcXG5cXFxcbjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXFxcbn1cXFxcblxcXCIsXFxcIkBpbXBvcnQgXFxcXFxcXCIuLi9jc3MvdmFyaWFibGVzLm1vZHVsZVxcXFxcXFwiO1xcXFxuXFxcXG4uZXhjYWxpZHJhdyB7XFxcXG4gIC5waWNrZXItY29udGFpbmVyIHtcXFxcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXFxcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XFxcXG4gIH1cXFxcblxcXFxuICAucGlja2VyIHtcXFxcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wb3B1cC1iZy1jb2xvcik7XFxcXG4gICAgYm9yZGVyOiAwIHNvbGlkIHRyYW5zcGFyZW50aXplKCRvYy13aGl0ZSwgMC43NSk7XFxcXG4gICAgYm94LXNoYWRvdzogdHJhbnNwYXJlbnRpemUoJG9jLWJsYWNrLCAwLjc1KSAwIDFweCA0cHg7XFxcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgfVxcXFxuXFxcXG4gIC5waWNrZXItY29udGFpbmVyIGJ1dHRvbixcXFxcbiAgLnBpY2tlciBidXR0b24ge1xcXFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXFxcbiAgICBkaXNwbGF5OiBmbGV4O1xcXFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG5cXFxcbiAgICAmOmZvY3VzLXZpc2libGUge1xcXFxuICAgICAgb3V0bGluZTogdHJhbnNwYXJlbnQ7XFxcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXFxcbiAgICAgICYgc3ZnIHtcXFxcbiAgICAgICAgb3BhY2l0eTogMTtcXFxcbiAgICAgIH1cXFxcbiAgICB9XFxcXG5cXFxcbiAgICAmOmhvdmVyIHtcXFxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcXFxuICAgIH1cXFxcblxcXFxuICAgICY6YWN0aXZlIHtcXFxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcXFxuICAgIH1cXFxcblxcXFxuICAgICY6ZGlzYWJsZWQge1xcXFxuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICBzdmcge1xcXFxuICAgICAgbWFyZ2luOiAwO1xcXFxuICAgICAgd2lkdGg6IDM2cHg7XFxcXG4gICAgICBoZWlnaHQ6IDE4cHg7XFxcXG4gICAgICBvcGFjaXR5OiAwLjY7XFxcXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAucGlja2VyIGJ1dHRvbiB7XFxcXG4gICAgcGFkZGluZzogMC4yNXJlbSAwLjI4cmVtIDAuMzVyZW0gMC4yNXJlbTtcXFxcbiAgfVxcXFxuXFxcXG4gIC5waWNrZXItdHJpYW5nbGUge1xcXFxuICAgIHdpZHRoOiAwO1xcXFxuICAgIGhlaWdodDogMDtcXFxcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxcXG4gICAgdG9wOiAtMTBweDtcXFxcbiAgICA6cm9vdFtkaXI9XFxcXFxcXCJsdHJcXFxcXFxcIl0gJiB7XFxcXG4gICAgICBsZWZ0OiAxMnB4O1xcXFxuICAgIH1cXFxcblxcXFxuICAgIDpyb290W2Rpcj1cXFxcXFxcInJ0bFxcXFxcXFwiXSAmIHtcXFxcbiAgICAgIHJpZ2h0OiAxMnB4O1xcXFxuICAgIH1cXFxcbiAgICB6LWluZGV4OiAxMDtcXFxcblxcXFxuICAgICY6YmVmb3JlIHtcXFxcbiAgICAgIGNvbnRlbnQ6IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcXFxuICAgICAgYm9yZGVyLXdpZHRoOiAwIDlweCAxMHB4O1xcXFxuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudGl6ZSgkb2MtYmxhY2ssIDAuOSk7XFxcXG4gICAgICB0b3A6IC0xcHg7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJjphZnRlciB7XFxcXG4gICAgICBjb250ZW50OiBcXFxcXFxcIlxcXFxcXFwiO1xcXFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXFxcbiAgICAgIGJvcmRlci13aWR0aDogMCA5cHggMTBweDtcXFxcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tcG9wdXAtYmctY29sb3IpO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxuXFxcXG4gIC5waWNrZXItY29udGVudCB7XFxcXG4gICAgcGFkZGluZzogMC41cmVtO1xcXFxuICAgIGRpc3BsYXk6IGdyaWQ7XFxcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgYXV0byk7XFxcXG4gICAgZ3JpZC1nYXA6IDAuNXJlbTtcXFxcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxcXG4gICAgOnJvb3RbZGlyPVxcXFxcXFwicnRsXFxcXFxcXCJdICYge1xcXFxuICAgICAgcGFkZGluZzogMC40cmVtO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxuXFxcXG4gIC5waWNrZXIta2V5YmluZGluZyB7XFxcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICAgIGJvdHRvbTogMnB4O1xcXFxuICAgIGZvbnQtc2l6ZTogMC43ZW07XFxcXG4gICAgY29sb3I6IHZhcigtLWtleWJpbmRpbmctY29sb3IpO1xcXFxuXFxcXG4gICAgOnJvb3RbZGlyPVxcXFxcXFwibHRyXFxcXFxcXCJdICYge1xcXFxuICAgICAgcmlnaHQ6IDJweDtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICA6cm9vdFtkaXI9XFxcXFxcXCJydGxcXFxcXFxcIl0gJiB7XFxcXG4gICAgICBsZWZ0OiAycHg7XFxcXG4gICAgfVxcXFxuICAgIEBpbmNsdWRlIGlzTW9iaWxlIHtcXFxcbiAgICAgIGRpc3BsYXk6IG5vbmU7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLnBpY2tlci10eXBlLWNhbnZhc0JhY2tncm91bmQgLnBpY2tlci1rZXliaW5kaW5nIHtcXFxcbiAgICBjb2xvcjogI2FhYTtcXFxcbiAgfVxcXFxuXFxcXG4gIC5waWNrZXItdHlwZS1lbGVtZW50QmFja2dyb3VuZCAucGlja2VyLWtleWJpbmRpbmcge1xcXFxuICAgIGNvbG9yOiAkb2Mtd2hpdGU7XFxcXG4gIH1cXFxcblxcXFxuICAucGlja2VyLXN3YXRjaFthcmlhLWxhYmVsPVxcXFxcXFwidHJhbnNwYXJlbnRcXFxcXFxcIl0gLnBpY2tlci1rZXliaW5kaW5nIHtcXFxcbiAgICBjb2xvcjogI2FhYTtcXFxcbiAgfVxcXFxuXFxcXG4gIC5waWNrZXItdHlwZS1lbGVtZW50U3Ryb2tlIC5waWNrZXIta2V5YmluZGluZyB7XFxcXG4gICAgY29sb3I6ICNkNGQ0ZDQ7XFxcXG4gIH1cXFxcblxcXFxuICAmLnRoZW1lLS1kYXJrIHtcXFxcbiAgICAucGlja2VyLXR5cGUtZWxlbWVudEJhY2tncm91bmQgLnBpY2tlci1rZXliaW5kaW5nIHtcXFxcbiAgICAgIGNvbG9yOiAkb2MtYmxhY2s7XFxcXG4gICAgfVxcXFxuICAgIC5waWNrZXItc3dhdGNoW2FyaWEtbGFiZWw9XFxcXFxcXCJ0cmFuc3BhcmVudFxcXFxcXFwiXSAucGlja2VyLWtleWJpbmRpbmcge1xcXFxuICAgICAgY29sb3I6ICRvYy1ibGFjaztcXFxcbiAgICB9XFxcXG4gIH1cXFxcbn1cXFxcblxcXCIsXFxcIi8vXFxcXG4vL1xcXFxuLy8gIFx1RDgzNVx1RERENiBcdUQ4MzVcdURERTIgXHVEODM1XHVERERGIFx1RDgzNVx1RERFMiBcdUQ4MzVcdURERTVcXFxcbi8vICB2IDEuOS4xXFxcXG4vL1xcXFxuLy8gIFx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVxcXFxuXFxcXG5cXFxcbi8vICBHZW5lcmFsXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy13aGl0ZTogICAgICAgICAjZmZmZmZmO1xcXFxuJG9jLWJsYWNrOiAgICAgICAgICMwMDAwMDA7XFxcXG5cXFxcblxcXFxuLy8gIEdyYXlcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyYXktbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y4ZjlmYSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmMWYzZjUsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZTllY2VmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2RlZTJlNixcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNjZWQ0ZGEsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjYWRiNWJkLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzg2OGU5NixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM0OTUwNTcsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMzQzYTQwLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzIxMjUyOVxcXFxuKTtcXFxcblxcXFxuJG9jLWdyYXktMDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0xOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTI6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS00OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTU6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS03OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTg6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktOTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFJlZFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtcmVkLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY1ZjUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZlM2UzLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmYzljOSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmE4YTgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmY4Nzg3LFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZmNmI2YixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmYTUyNTIsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjAzZTNlLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2UwMzEzMSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNjOTJhMmFcXFxcbik7XFxcXG5cXFxcbiRvYy1yZWQtMDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtMTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtMjogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtMzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNjogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1yZWQtODogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtOTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgUGlua1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtcGluay1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmMGY2LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZGVlYixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmY2MyZDcsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmFhMmMxLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2Y3ODNhYyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmMDY1OTUsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZTY0OTgwLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Q2MzM2YyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNjMjI1NWMsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjYTYxZTRkXFxcXG4pO1xcXFxuXFxcXG4kb2MtcGluay0wOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTE6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtcGluay0zOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTQ6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtcGluay02OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTc6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstODogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtcGluay05OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgR3JhcGVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyYXBlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmOGYwZmMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZjNkOWZhLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2VlYmVmYSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNlNTk5ZjcsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZGE3N2YyLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2NjNWRlOCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNiZTRiZGIsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjYWUzZWM5LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzljMzZiNSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM4NjJlOWNcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmFwZS0wOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTI6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0zOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTU6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS02OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTg6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS05OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFZpb2xldFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtdmlvbGV0LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmM2YwZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZTVkYmZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2QwYmZmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNiMTk3ZmMsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjOTc3NWZhLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzg0NWVmNyxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM3OTUwZjIsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNzA0OGU4LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzY3NDFkOSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM1ZjNkYzRcXFxcbik7XFxcXG5cXFxcbiRvYy12aW9sZXQtMDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtMTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtMjogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtMzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNjogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtODogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtOTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgSW5kaWdvXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1pbmRpZ28tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2VkZjJmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkYmU0ZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYmFjOGZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzkxYTdmZixcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM3NDhmZmMsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjNWM3Y2ZhLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzRjNmVmNSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM0MjYzZWIsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjM2I1YmRiLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzM2NGZjN1xcXFxuKTtcXFxcblxcXFxuJG9jLWluZGlnby0wOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby0xOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby0yOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby0zOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby00OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby01OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby02OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby03OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby04OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby05OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBCbHVlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ibHVlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlN2Y1ZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZDBlYmZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2E1ZDhmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM3NGMwZmMsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNGRhYmY3LFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzMzOWFmMCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICMyMjhiZTYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMWM3ZWQ2LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzE5NzFjMixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMxODY0YWJcXFxcbik7XFxcXG5cXFxcbiRvYy1ibHVlLTA6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0yOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTM6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS01OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTY6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS04OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTk6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBDeWFuXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1jeWFuLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlM2ZhZmMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjYzVmNmZhLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogIzk5ZTlmMixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM2NmQ5ZTgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjM2JjOWRiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzIyYjhjZixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICMxNWFhYmYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMTA5OGFkLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzBjODU5OSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMwYjcyODVcXFxcbik7XFxcXG5cXFxcbiRvYy1jeWFuLTA6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0yOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTM6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi01OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTY6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi04OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTk6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBUZWFsXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy10ZWFsLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlNmZjZjUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjYzNmYWU4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogIzk2ZjJkNyxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM2M2U2YmUsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjMzhkOWE5LFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzIwYzk5NyxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICMxMmI4ODYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMGNhNjc4LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzA5OTI2OCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMwODdmNWJcXFxcbik7XFxcXG5cXFxcbiRvYy10ZWFsLTA6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0yOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTM6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC01OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTY6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC04OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTk6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBHcmVlblxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JlZW4tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ViZmJlZSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkM2Y5ZDgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYjJmMmJiLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzhjZTk5YSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM2OWRiN2MsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjNTFjZjY2LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzQwYzA1NyxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMzN2IyNGQsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMmY5ZTQ0LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzJiOGEzZVxcXFxuKTtcXFxcblxcXFxuJG9jLWdyZWVuLTA6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0xOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMjogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTM6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi00OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTY6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi03OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tODogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTk6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgTGltZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtbGltZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjRmY2UzLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2U5ZmFjOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNkOGY1YTIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjYzBlYjc1LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2E5ZTM0YixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM5NGQ4MmQsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjODJjOTFlLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzc0YjgxNixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM2NmE4MGYsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjNWM5NDBkXFxcXG4pO1xcXFxuXFxcXG4kb2MtbGltZS0wOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTE6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0zOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTQ6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtbGltZS02OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTc6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtODogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtbGltZS05OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgWWVsbG93XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy15ZWxsb3ctbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjlkYixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmYzYmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZlYzk5LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmZTA2NixcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZmQ0M2IsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmNjNDE5LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZhYjAwNSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmNTlmMDAsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZjA4YzAwLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2U2NzcwMFxcXFxuKTtcXFxcblxcXFxuJG9jLXllbGxvdy0wOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy0xOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy0yOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy0zOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy00OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy01OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy02OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy03OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy04OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy05OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBPcmFuZ2VcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLW9yYW5nZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmNGU2LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZThjYyxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmQ4YTgsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZjMDc4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmYTk0ZCxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmZjkyMmIsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmQ3ZTE0LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Y3NjcwNyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNlODU5MGMsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjZDk0ODBmXFxcXG4pO1xcXFxuXFxcXG4kb2Mtb3JhbmdlLTA6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTE6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTI6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTM6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTQ6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTU6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTY6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTc6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTg6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTk6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIENvbG9yIGxpc3RcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWNvbG9yLXNwZWN0cnVtOiAgIDk7XFxcXG5cXFxcbiRvYy1jb2xvci1saXN0OiAoXFxcXG4gICRvYy1ncmF5LWxpc3Q6ICAgICAgXFxcXFxcXCJncmF5XFxcXFxcXCIsXFxcXG4gICRvYy1yZWQtbGlzdDogICAgICBcXFxcXFxcInJlZFxcXFxcXFwiLFxcXFxuICAkb2MtcGluay1saXN0OiAgICAgIFxcXFxcXFwicGlua1xcXFxcXFwiLFxcXFxuICAkb2MtZ3JhcGUtbGlzdDogICAgICBcXFxcXFxcImdyYXBlXFxcXFxcXCIsXFxcXG4gICRvYy12aW9sZXQtbGlzdDogICAgICBcXFxcXFxcInZpb2xldFxcXFxcXFwiLFxcXFxuICAkb2MtaW5kaWdvLWxpc3Q6ICAgICAgXFxcXFxcXCJpbmRpZ29cXFxcXFxcIixcXFxcbiAgJG9jLWJsdWUtbGlzdDogICAgICBcXFxcXFxcImJsdWVcXFxcXFxcIixcXFxcbiAgJG9jLWN5YW4tbGlzdDogICAgICBcXFxcXFxcImN5YW5cXFxcXFxcIixcXFxcbiAgJG9jLXRlYWwtbGlzdDogICAgICBcXFxcXFxcInRlYWxcXFxcXFxcIixcXFxcbiAgJG9jLWdyZWVuLWxpc3Q6ICAgICAgXFxcXFxcXCJncmVlblxcXFxcXFwiLFxcXFxuICAkb2MtbGltZS1saXN0OiAgICAgIFxcXFxcXFwibGltZVxcXFxcXFwiLFxcXFxuICAkb2MteWVsbG93LWxpc3Q6ICAgICAgXFxcXFxcXCJ5ZWxsb3dcXFxcXFxcIixcXFxcbiAgJG9jLW9yYW5nZS1saXN0OiAgICAgIFxcXFxcXFwib3JhbmdlXFxcXFxcXCJcXFxcbik7XFxcXG5cXFwiXSxcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoX19fQ1NTX0xPQURFUl9FWFBPUlRfX18pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpOXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUpZMjl1VUdsamEyVnlMbk5qYzNNdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3UVVGQlFUdEJRVU00U0R0QlFVTnFRanRCUVVNM1J5dzRRa0ZCT0VJc2RVZEJRVEpDTEVOQlFVTXNaMGhCUVhGRE8wRkJReTlHTzBGQlEwRXNiVVJCUVcxRUxHZEVRVUZuUkN4SFFVRkhMRzFEUVVGdFF5d3dRa0ZCTUVJc01rSkJRVEpDTERCQ1FVRXdRaXhIUVVGSExIVkNRVUYxUWl4elEwRkJjME1zT0VOQlFUaERMRGhEUVVFNFF5eDFRa0ZCZFVJc2RVSkJRWFZDTEVkQlFVY3NjVVZCUVhGRkxIVkNRVUYxUWl4clFrRkJhMElzZDBKQlFYZENMRFJDUVVFMFFpeEhRVUZITEdsSFFVRnBSeXg1UWtGQmVVSXNNa05CUVRKRExFZEJRVWNzZVVkQlFYbEhMR1ZCUVdVc1IwRkJSeXhwUmtGQmFVWXNNa05CUVRKRExFZEJRVWNzYlVaQlFXMUdMREpEUVVFeVF5eEhRVUZITEhWR1FVRjFSaXgzUWtGQmQwSXNSMEZCUnl3MlJVRkJOa1VzWTBGQll5eG5Ra0ZCWjBJc2FVSkJRV2xDTEdsQ1FVRnBRaXg1UWtGQmVVSXNSMEZCUnl3NFFrRkJPRUlzTmtOQlFUWkRMRWRCUVVjc1owTkJRV2RETEdGQlFXRXNZMEZCWXl4MVFrRkJkVUlzWlVGQlpTeG5Ra0ZCWjBJc1IwRkJSeXdyUTBGQkswTXNaVUZCWlN4SFFVRkhMQ3REUVVFclF5eG5Ra0ZCWjBJc1IwRkJSeXgxUTBGQmRVTXNhMEpCUVd0Q0xIVkNRVUYxUWl4M1FrRkJkMElzTmtKQlFUWkNMRFpFUVVFMlJDeGpRVUZqTEVkQlFVY3NjME5CUVhORExHdENRVUZyUWl4MVFrRkJkVUlzZDBKQlFYZENMRFpDUVVFMlFpeG5SVUZCWjBVc1IwRkJSeXdyUWtGQkswSXNiMEpCUVc5Q0xHdENRVUZyUWl3eVEwRkJNa01zY1VKQlFYRkNMSFZDUVVGMVFpeEhRVUZITERoRFFVRTRReXh2UWtGQmIwSXNSMEZCUnl4clEwRkJhME1zZFVKQlFYVkNMR2RDUVVGblFpeHhRa0ZCY1VJc2JVTkJRVzFETEVkQlFVY3NhVVJCUVdsRUxHVkJRV1VzUjBGQlJ5eHBSRUZCYVVRc1kwRkJZeXhIUVVGSExIRkVRVUZ4UkN4clFrRkJhMElzUjBGQlJ5eHJSVUZCYTBVc1owSkJRV2RDTEVkQlFVY3NhVVZCUVdsRkxHMUNRVUZ0UWl4SFFVRkhMSGxGUVVGNVJTeG5Ra0ZCWjBJc1IwRkJSeXcyUkVGQk5rUXNiVUpCUVcxQ0xFZEJRVWNzTmtWQlFUWkZMRzFDUVVGdFFpeEhRVUZITEhGR1FVRnhSaXh0UWtGQmJVSXNSMEZCUnl4UFFVRlBMR2RPUVVGblRpeFhRVUZYTEUxQlFVMHNTMEZCU3l4WFFVRlhMRmRCUVZjc1YwRkJWeXhMUVVGTExFdEJRVXNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMRXRCUVVzc1RVRkJUU3hYUVVGWExGVkJRVlVzVjBGQlZ5eFhRVUZYTEV0QlFVc3NUVUZCVFN4WFFVRlhMRmRCUVZjc1MwRkJTeXhOUVVGTkxGVkJRVlVzUzBGQlN5eE5RVUZOTEZkQlFWY3NTMEZCU3l4TlFVRk5MRmRCUVZjc1MwRkJTeXhOUVVGTkxGZEJRVmNzUzBGQlN5eE5RVUZOTEZWQlFWVXNWVUZCVlN4VlFVRlZMRlZCUVZVc1YwRkJWeXhMUVVGTExFdEJRVXNzVjBGQlZ5eExRVUZMTEV0QlFVc3NWVUZCVlN4VlFVRlZMRmRCUVZjc1ZVRkJWU3hWUVVGVkxFdEJRVXNzUzBGQlN5eFZRVUZWTEV0QlFVc3NTMEZCU3l4VlFVRlZMRXRCUVVzc1MwRkJTeXhWUVVGVkxGZEJRVmNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWVUZCVlN4TFFVRkxMRXRCUVVzc1ZVRkJWU3hYUVVGWExGZEJRVmNzVjBGQlZ5eFhRVUZYTEV0QlFVc3NTMEZCU3l4VlFVRlZMRlZCUVZVc1YwRkJWeXhYUVVGWExGZEJRVmNzUzBGQlN5eExRVUZMTEZWQlFWVXNTMEZCU3l4TFFVRkxMRmRCUVZjc1ZVRkJWU3hYUVVGWExGZEJRVmNzUzBGQlN5eExRVUZMTEZWQlFWVXNTMEZCU3l4TFFVRkxMRlZCUVZVc1MwRkJTeXhOUVVGTkxGZEJRVmNzVFVGQlRTeExRVUZMTEZWQlFWVXNTMEZCU3l4TFFVRkxMRmRCUVZjc1QwRkJUeXhMUVVGTExGVkJRVlVzUzBGQlN5eExRVUZMTEZWQlFWVXNTMEZCU3l4TFFVRkxMRmRCUVZjc1QwRkJUeXhMUVVGTExGZEJRVmNzYTBWQlFXdEZMSFZDUVVGMVFpeHJRMEZCYTBNc1NVRkJTU3hsUVVGbExFdEJRVXNzUjBGQlJ5eHpSRUZCYzBRc1lVRkJZU3gzUTBGQmQwTXNSMEZCUnl4NVEwRkJlVU1zYVVKQlFXbENMSFZDUVVGMVFpdzBRa0ZCTkVJc05rSkJRVFpDTERSQ1FVRTBRaXhMUVVGTExHVkJRV1VzZDBOQlFYZERMSE5FUVVGelJDdzBSRUZCTkVRc2VVSkJRWGxDTEhsQ1FVRjVRaXhMUVVGTExHMUVRVUZ0UkN4NVFrRkJlVUlzYjBKQlFXOUNMREJDUVVFd1FpdzRRa0ZCT0VJc2VVSkJRWGxDTERaQ1FVRTJRaXdyUTBGQkswTXNaVUZCWlN4eFFrRkJjVUlzVTBGQlV5eFBRVUZQTEdsQ1FVRnBRaXdyUTBGQkswTXNUMEZCVHl4clFrRkJhMElzSzBOQlFTdERMRTlCUVU4c2IwSkJRVzlDTERSQ1FVRTBRaXhQUVVGUExHRkJRV0VzYTBKQlFXdENMRzlDUVVGdlFpeHhRa0ZCY1VJc2NVSkJRWEZDTERaQ1FVRTJRaXhQUVVGUExFdEJRVXNzYzBKQlFYTkNMQ3REUVVFclF5eExRVUZMTEhkQ1FVRjNRaXhsUVVGbExHZENRVUZuUWl4NVFrRkJlVUlzYVVKQlFXbENMRFJDUVVFMFFpeHRRa0ZCYlVJc1QwRkJUeXc0UWtGQk9FSXNiMEpCUVc5Q0xFOUJRVThzYTBKQlFXdENMR3RDUVVGclFpeHpRa0ZCYzBJc01rSkJRVEpDTERSQ1FVRTBRaXhwUTBGQmFVTXNOa1ZCUVRaRkxHdENRVUZyUWl4UFFVRlBMR2xDUVVGcFFpeHpRa0ZCYzBJc01rSkJRVEpDTERSQ1FVRTBRaXhwUTBGQmFVTXNiMFZCUVc5RkxFOUJRVThzUzBGQlN5eDFRa0ZCZFVJc2MwSkJRWE5DTEc5Q1FVRnZRaXcyUTBGQk5rTXNkVUpCUVhWQ0xIbENRVUY1UWl3MFFrRkJORUlzZDBKQlFYZENMRTlCUVU4c1MwRkJTeXd3UWtGQk1FSXNlVUpCUVhsQ0xHdENRVUZyUWl4MVFrRkJkVUlzY1VOQlFYRkRMRGhDUVVFNFFpeHRRa0ZCYlVJc1QwRkJUeXc0UWtGQk9FSXNhMEpCUVd0Q0xFOUJRVThzZVVKQlFYbENMSE5DUVVGelFpeFBRVUZQTEV0QlFVc3NkMFJCUVhkRUxHdENRVUZyUWl4TFFVRkxMSGxFUVVGNVJDeDFRa0ZCZFVJc1MwRkJTeXh4UlVGQmNVVXNhMEpCUVd0Q0xFdEJRVXNzY1VSQlFYRkVMSEZDUVVGeFFpeExRVUZMTEhGQ1FVRnhRaXg1UkVGQmVVUXNlVUpCUVhsQ0xFOUJRVThzY1VWQlFYRkZMSGxDUVVGNVFpeFBRVUZQTEV0QlFVc3NSMEZCUnl4clRFRkJhMHdzTmtKQlFUWkNMRFJSUVVFMFVTdzRRMEZCT0VNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc01GRkJRVEJSTERSRFFVRTBReXd3UTBGQk1FTXNNRU5CUVRCRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc01FTkJRVEJETERCRFFVRXdReXcwVVVGQk5GRXNPRU5CUVRoRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEaFJRVUU0VVN4blJFRkJaMFFzT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zWjFKQlFXZFNMR3RFUVVGclJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5Va0ZCWjFJc2EwUkJRV3RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTERSUlFVRTBVU3c0UTBGQk9FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORkZCUVRSUkxEaERRVUU0UXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFVVRkJORkVzT0VOQlFUaERMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRGhSUVVFNFVTeG5SRUZCWjBRc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc05GRkJRVFJSTERoRFFVRTRReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXhuVWtGQloxSXNhMFJCUVd0RUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZFNRVUZuVWl4clJFRkJhMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzZVVaQlFYbEdMSFZrUVVGMVpDeHhRa0ZCY1VJN1FVRkRjREZwUWp0QlFVTkJMR2xGUVVGbExIVkNRVUYxUWl4RlFVRkRJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJOdmJYQnZibVZ1ZEhNdlNXTnZibEJwWTJ0bGNpNXpZM056UHpaalpXUWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHk4Z1NXMXdiM0owYzF4dWFXMXdiM0owSUY5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDFOUFZWSkRSVTFCVUY5SlRWQlBVbFJmWDE4Z1puSnZiU0JjSWk0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDJOemN5MXNiMkZrWlhJdlpHbHpkQzl5ZFc1MGFXMWxMM052ZFhKalpVMWhjSE11YW5OY0lqdGNibWx0Y0c5eWRDQmZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOUpUVkJQVWxSZlgxOGdabkp2YlNCY0lpNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5eWRXNTBhVzFsTDJGd2FTNXFjMXdpTzF4dWRtRnlJRjlmWDBOVFUxOU1UMEZFUlZKZlJWaFFUMUpVWDE5ZklEMGdYMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZTVTFRVDFKVVgxOWZLRjlmWDBOVFUxOU1UMEZFUlZKZlFWQkpYMU5QVlZKRFJVMUJVRjlKVFZCUFVsUmZYMThwTzF4dUx5OGdUVzlrZFd4bFhHNWZYMTlEVTFOZlRFOUJSRVZTWDBWWVVFOVNWRjlmWHk1d2RYTm9LRnR0YjJSMWJHVXVhV1FzSUZ3aU9tVjRjRzl5ZENCN1hGeHVJQ0IwYUdWdFpVWnBiSFJsY2pvZ2FXNTJaWEowS0RrekpTa2dhSFZsTFhKdmRHRjBaU2d4T0RCa1pXY3BPMXhjYm4xY1hHNWNYRzR1WlhoallXeHBaSEpoZHlBdWNHbGphMlZ5TFdOdmJuUmhhVzVsY2lCN1hGeHVJQ0JrYVhOd2JHRjVPaUJwYm14cGJtVXRZbXh2WTJzN1hGeHVJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeGNiaUFnYldGeVoybHVMWEpwWjJoME9pQXdMakkxY21WdE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVjR2xqYTJWeUlIdGNYRzRnSUdKaFkydG5jbTkxYm1RNklIWmhjaWd0TFhCdmNIVndMV0puTFdOdmJHOXlLVHRjWEc0Z0lHSnZjbVJsY2pvZ01DQnpiMnhwWkNCeVoySmhLREkxTlN3Z01qVTFMQ0F5TlRVc0lEQXVNalVwTzF4Y2JpQWdZbTk0TFhOb1lXUnZkem9nY21kaVlTZ3dMQ0F3TENBd0xDQXdMakkxS1NBd0lERndlQ0EwY0hnN1hGeHVJQ0JpYjNKa1pYSXRjbUZrYVhWek9pQTBjSGc3WEZ4dUlDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzV3YVdOclpYSXRZMjl1ZEdGcGJtVnlJR0oxZEhSdmJpeGNYRzR1WlhoallXeHBaSEpoZHlBdWNHbGphMlZ5SUdKMWRIUnZiaUI3WEZ4dUlDQndiM05wZEdsdmJqb2djbVZzWVhScGRtVTdYRnh1SUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzRnSUdwMWMzUnBabmt0WTI5dWRHVnVkRG9nWTJWdWRHVnlPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1Y0dsamEyVnlMV052Ym5SaGFXNWxjaUJpZFhSMGIyNDZabTlqZFhNdGRtbHphV0pzWlN4Y1hHNHVaWGhqWVd4cFpISmhkeUF1Y0dsamEyVnlJR0oxZEhSdmJqcG1iMk4xY3kxMmFYTnBZbXhsSUh0Y1hHNGdJRzkxZEd4cGJtVTZJSFJ5WVc1emNHRnlaVzUwTzF4Y2JpQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdFluVjBkRzl1TFdkeVlYa3RNaWs3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1d2FXTnJaWEl0WTI5dWRHRnBibVZ5SUdKMWRIUnZianBtYjJOMWN5MTJhWE5wWW14bElITjJaeXhjWEc0dVpYaGpZV3hwWkhKaGR5QXVjR2xqYTJWeUlHSjFkSFJ2YmpwbWIyTjFjeTEyYVhOcFlteGxJSE4yWnlCN1hGeHVJQ0J2Y0dGamFYUjVPaUF4TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdWNHbGphMlZ5TFdOdmJuUmhhVzVsY2lCaWRYUjBiMjQ2YUc5MlpYSXNYRnh1TG1WNFkyRnNhV1J5WVhjZ0xuQnBZMnRsY2lCaWRYUjBiMjQ2YUc5MlpYSWdlMXhjYmlBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0WW5WMGRHOXVMV2R5WVhrdE1pazdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzV3YVdOclpYSXRZMjl1ZEdGcGJtVnlJR0oxZEhSdmJqcGhZM1JwZG1Vc1hGeHVMbVY0WTJGc2FXUnlZWGNnTG5CcFkydGxjaUJpZFhSMGIyNDZZV04wYVhabElIdGNYRzRnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV0oxZEhSdmJpMW5jbUY1TFRNcE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVjR2xqYTJWeUxXTnZiblJoYVc1bGNpQmlkWFIwYjI0NlpHbHpZV0pzWldRc1hGeHVMbVY0WTJGc2FXUnlZWGNnTG5CcFkydGxjaUJpZFhSMGIyNDZaR2x6WVdKc1pXUWdlMXhjYmlBZ1kzVnljMjl5T2lCdWIzUXRZV3hzYjNkbFpEdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbkJwWTJ0bGNpMWpiMjUwWVdsdVpYSWdZblYwZEc5dUlITjJaeXhjWEc0dVpYaGpZV3hwWkhKaGR5QXVjR2xqYTJWeUlHSjFkSFJ2YmlCemRtY2dlMXhjYmlBZ2JXRnlaMmx1T2lBd08xeGNiaUFnZDJsa2RHZzZJRE0yY0hnN1hGeHVJQ0JvWldsbmFIUTZJREU0Y0hnN1hGeHVJQ0J2Y0dGamFYUjVPaUF3TGpZN1hGeHVJQ0J3YjJsdWRHVnlMV1YyWlc1MGN6b2dibTl1WlR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xuQnBZMnRsY2lCaWRYUjBiMjRnZTF4Y2JpQWdjR0ZrWkdsdVp6b2dNQzR5TlhKbGJTQXdMakk0Y21WdElEQXVNelZ5WlcwZ01DNHlOWEpsYlR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xuQnBZMnRsY2kxMGNtbGhibWRzWlNCN1hGeHVJQ0IzYVdSMGFEb2dNRHRjWEc0Z0lHaGxhV2RvZERvZ01EdGNYRzRnSUhCdmMybDBhVzl1T2lCeVpXeGhkR2wyWlR0Y1hHNGdJSFJ2Y0RvZ0xURXdjSGc3WEZ4dUlDQjZMV2x1WkdWNE9pQXhNRHRjWEc1OVhGeHVPbkp2YjNSYlpHbHlQV3gwY2wwZ0xtVjRZMkZzYVdSeVlYY2dMbkJwWTJ0bGNpMTBjbWxoYm1kc1pTQjdYRnh1SUNCc1pXWjBPaUF4TW5CNE8xeGNibjFjWEc0NmNtOXZkRnRrYVhJOWNuUnNYU0F1WlhoallXeHBaSEpoZHlBdWNHbGphMlZ5TFhSeWFXRnVaMnhsSUh0Y1hHNGdJSEpwWjJoME9pQXhNbkI0TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdWNHbGphMlZ5TFhSeWFXRnVaMnhsT21KbFptOXlaU0I3WEZ4dUlDQmpiMjUwWlc1ME9pQmNYRndpWEZ4Y0lqdGNYRzRnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y1hHNGdJR0p2Y21SbGNpMXpkSGxzWlRvZ2MyOXNhV1E3WEZ4dUlDQmliM0prWlhJdGQybGtkR2c2SURBZ09YQjRJREV3Y0hnN1hGeHVJQ0JpYjNKa1pYSXRZMjlzYjNJNklIUnlZVzV6Y0dGeVpXNTBJSFJ5WVc1emNHRnlaVzUwSUhKblltRW9NQ3dnTUN3Z01Dd2dNQzR4S1R0Y1hHNGdJSFJ2Y0RvZ0xURndlRHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG5CcFkydGxjaTEwY21saGJtZHNaVHBoWm5SbGNpQjdYRnh1SUNCamIyNTBaVzUwT2lCY1hGd2lYRnhjSWp0Y1hHNGdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjWEc0Z0lHSnZjbVJsY2kxemRIbHNaVG9nYzI5c2FXUTdYRnh1SUNCaWIzSmtaWEl0ZDJsa2RHZzZJREFnT1hCNElERXdjSGc3WEZ4dUlDQmliM0prWlhJdFkyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1MElIUnlZVzV6Y0dGeVpXNTBJSFpoY2lndExYQnZjSFZ3TFdKbkxXTnZiRzl5S1R0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xuQnBZMnRsY2kxamIyNTBaVzUwSUh0Y1hHNGdJSEJoWkdScGJtYzZJREF1TlhKbGJUdGNYRzRnSUdScGMzQnNZWGs2SUdkeWFXUTdYRnh1SUNCbmNtbGtMWFJsYlhCc1lYUmxMV052YkhWdGJuTTZJSEpsY0dWaGRDZ3pMQ0JoZFhSdktUdGNYRzRnSUdkeWFXUXRaMkZ3T2lBd0xqVnlaVzA3WEZ4dUlDQmliM0prWlhJdGNtRmthWFZ6T2lBMGNIZzdYRnh1ZlZ4Y2JqcHliMjkwVzJScGNqMXlkR3hkSUM1bGVHTmhiR2xrY21GM0lDNXdhV05yWlhJdFkyOXVkR1Z1ZENCN1hGeHVJQ0J3WVdSa2FXNW5PaUF3TGpSeVpXMDdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzV3YVdOclpYSXRhMlY1WW1sdVpHbHVaeUI3WEZ4dUlDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRnh1SUNCaWIzUjBiMjA2SURKd2VEdGNYRzRnSUdadmJuUXRjMmw2WlRvZ01DNDNaVzA3WEZ4dUlDQmpiMnh2Y2pvZ2RtRnlLQzB0YTJWNVltbHVaR2x1WnkxamIyeHZjaWs3WEZ4dWZWeGNianB5YjI5MFcyUnBjajFzZEhKZElDNWxlR05oYkdsa2NtRjNJQzV3YVdOclpYSXRhMlY1WW1sdVpHbHVaeUI3WEZ4dUlDQnlhV2RvZERvZ01uQjRPMXhjYm4xY1hHNDZjbTl2ZEZ0a2FYSTljblJzWFNBdVpYaGpZV3hwWkhKaGR5QXVjR2xqYTJWeUxXdGxlV0pwYm1ScGJtY2dlMXhjYmlBZ2JHVm1kRG9nTW5CNE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5MHRiVzlpYVd4bExtVjRZMkZzYVdSeVlYY2dMbkJwWTJ0bGNpMXJaWGxpYVc1a2FXNW5JSHRjWEc0Z0lHUnBjM0JzWVhrNklHNXZibVU3WEZ4dWZWeGNibHhjYmk1bGVHTmhiR2xrY21GM0lDNXdhV05yWlhJdGRIbHdaUzFqWVc1MllYTkNZV05yWjNKdmRXNWtJQzV3YVdOclpYSXRhMlY1WW1sdVpHbHVaeUI3WEZ4dUlDQmpiMnh2Y2pvZ0kyRmhZVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG5CcFkydGxjaTEwZVhCbExXVnNaVzFsYm5SQ1lXTnJaM0p2ZFc1a0lDNXdhV05yWlhJdGEyVjVZbWx1WkdsdVp5QjdYRnh1SUNCamIyeHZjam9nSTJabVptWm1aanRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG5CcFkydGxjaTF6ZDJGMFkyaGJZWEpwWVMxc1lXSmxiRDEwY21GdWMzQmhjbVZ1ZEYwZ0xuQnBZMnRsY2kxclpYbGlhVzVrYVc1bklIdGNYRzRnSUdOdmJHOXlPaUFqWVdGaE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVjR2xqYTJWeUxYUjVjR1V0Wld4bGJXVnVkRk4wY205clpTQXVjR2xqYTJWeUxXdGxlV0pwYm1ScGJtY2dlMXhjYmlBZ1kyOXNiM0k2SUNOa05HUTBaRFE3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzTG5Sb1pXMWxMUzFrWVhKcklDNXdhV05yWlhJdGRIbHdaUzFsYkdWdFpXNTBRbUZqYTJkeWIzVnVaQ0F1Y0dsamEyVnlMV3RsZVdKcGJtUnBibWNnZTF4Y2JpQWdZMjlzYjNJNklDTXdNREF3TURBN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0xuUm9aVzFsTFMxa1lYSnJJQzV3YVdOclpYSXRjM2RoZEdOb1cyRnlhV0V0YkdGaVpXdzlkSEpoYm5Od1lYSmxiblJkSUM1d2FXTnJaWEl0YTJWNVltbHVaR2x1WnlCN1hGeHVJQ0JqYjJ4dmNqb2dJekF3TURBd01EdGNYRzU5WENJc0lGd2lYQ0lzZTF3aWRtVnljMmx2Ymx3aU9qTXNYQ0p6YjNWeVkyVnpYQ0k2VzF3aWQyVmljR0ZqYXpvdkx5NHZMaTR2TGk0dlkzTnpMM1poY21saFlteGxjeTV0YjJSMWJHVXVjMk56YzF3aUxGd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlKWTI5dVVHbGphMlZ5TG5OamMzTmNJaXhjSW5kbFluQmhZMnM2THk4dUx5NHVMeTR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl2Y0dWdUxXTnZiRzl5TDI5d1pXNHRZMjlzYjNJdWMyTnpjMXdpWFN4Y0ltNWhiV1Z6WENJNlcxMHNYQ0p0WVhCd2FXNW5jMXdpT2x3aVFVRlZRVHRGUVVORkxESkRRVUZCTzBGRFZFWTdPMEZCUTBVN1JVRkRSU3h4UWtGQlFUdEZRVU5CTEhOQ1FVRkJPMFZCUTBFc2NVSkJRVUU3UVVGRlNqdEJRVU5GTzBWQlEwVXNhVU5CUVVFN1JVRkRRU3g1UTBGQlFUdEZRVU5CTEhsRFFVRkJPMFZCUTBFc2EwSkJRVUU3UlVGRFFTeHJRa0ZCUVR0QlFVTktPMEZCUlVVN08wVkJSVVVzYTBKQlFVRTdSVUZEUVN4aFFVRkJPMFZCUTBFc2JVSkJRVUU3UlVGRFFTeDFRa0ZCUVR0QlFVRktPMEZCUlVrN08wVkJRMFVzYjBKQlFVRTdSVUZEUVN4elEwRkJRVHRCUVVOT08wRkJRVTA3TzBWQlEwVXNWVUZCUVR0QlFVZFNPMEZCUTBrN08wVkJRMFVzYzBOQlFVRTdRVUZGVGp0QlFVTkpPenRGUVVORkxITkRRVUZCTzBGQlJVNDdRVUZEU1RzN1JVRkRSU3h0UWtGQlFUdEJRVVZPTzBGQlEwazdPMFZCUTBVc1UwRkJRVHRGUVVOQkxGZEJRVUU3UlVGRFFTeFpRVUZCTzBWQlEwRXNXVUZCUVR0RlFVTkJMRzlDUVVGQk8wRkJSVTQ3UVVGRlJUdEZRVU5GTEhkRFFVRkJPMEZCUVVvN1FVRkhSVHRGUVVORkxGRkJRVUU3UlVGRFFTeFRRVUZCTzBWQlEwRXNhMEpCUVVFN1JVRkRRU3hWUVVGQk8wVkJVVUVzVjBGQlFUdEJRVkpLTzBGQlEwazdSVUZEUlN4VlFVRkJPMEZCUTA0N1FVRkZTVHRGUVVORkxGZEJRVUU3UVVGQlRqdEJRVWxKTzBWQlEwVXNWMEZCUVR0RlFVTkJMR3RDUVVGQk8wVkJRMEVzYlVKQlFVRTdSVUZEUVN4M1FrRkJRVHRGUVVOQkxIZEVRVUZCTzBWQlEwRXNVMEZCUVR0QlFVWk9PMEZCUzBrN1JVRkRSU3hYUVVGQk8wVkJRMEVzYTBKQlFVRTdSVUZEUVN4dFFrRkJRVHRGUVVOQkxIZENRVUZCTzBWQlEwRXNNa1JCUVVFN1FVRklUanRCUVU5Rk8wVkJRMFVzWlVGQlFUdEZRVU5CTEdGQlFVRTdSVUZEUVN4elEwRkJRVHRGUVVOQkxHZENRVUZCTzBWQlEwRXNhMEpCUVVFN1FVRk1TanRCUVUxSk8wVkJRMFVzWlVGQlFUdEJRVXBPTzBGQlVVVTdSVUZEUlN4clFrRkJRVHRGUVVOQkxGZEJRVUU3UlVGRFFTeG5Ra0ZCUVR0RlFVTkJMRGhDUVVGQk8wRkJUa283UVVGUlNUdEZRVU5GTEZWQlFVRTdRVUZPVGp0QlFWTkpPMFZCUTBVc1UwRkJRVHRCUVZCT08wRkVja2RYTzBWREswZE1MR0ZCUVVFN1FVRlFUanM3UVVGWFJUdEZRVU5GTEZkQlFVRTdRVUZTU2p0QlFWZEZPMFZCUTBVc1kwTm9TR1U3UVVSMVIyNUNPMEZCV1VVN1JVRkRSU3hYUVVGQk8wRkJWa283UVVGaFJUdEZRVU5GTEdOQlFVRTdRVUZZU2p0QlFXVkpPMFZCUTBVc1kwTTFTR0U3UVVRclIyNUNPMEZCWlVrN1JVRkRSU3hqUXk5SVlUdEJSR3RJYmtKY0lpeGNJbk52ZFhKalpYTkRiMjUwWlc1MFhDSTZXMXdpUUdsdGNHOXlkQ0JjWEZ3aWIzQmxiaTFqYjJ4dmNpOXZjR1Z1TFdOdmJHOXlMbk5qYzNOY1hGd2lPMXhjYmx4Y2JrQnRhWGhwYmlCcGMwMXZZbWxzWlNncElIdGNYRzRnSUVCaGRDMXliMjkwSUM1bGVHTmhiR2xrY21GM0xTMXRiMkpwYkdVamV5WjlJSHRjWEc0Z0lDQWdRR052Ym5SbGJuUTdYRnh1SUNCOVhGeHVmVnhjYmx4Y2JpUjBhR1Z0WlMxbWFXeDBaWEk2SUZ4Y1hDSnBiblpsY25Rb09UTWxLU0JvZFdVdGNtOTBZWFJsS0RFNE1HUmxaeWxjWEZ3aU8xeGNibHhjYmpwbGVIQnZjblFnZTF4Y2JpQWdkR2hsYldWR2FXeDBaWEk2SUhWdWNYVnZkR1VvSkhSb1pXMWxMV1pwYkhSbGNpazdYRnh1ZlZ4Y2Jsd2lMRndpUUdsdGNHOXlkQ0JjWEZ3aUxpNHZZM056TDNaaGNtbGhZbXhsY3k1dGIyUjFiR1ZjWEZ3aU8xeGNibHhjYmk1bGVHTmhiR2xrY21GM0lIdGNYRzRnSUM1d2FXTnJaWEl0WTI5dWRHRnBibVZ5SUh0Y1hHNGdJQ0FnWkdsemNHeGhlVG9nYVc1c2FXNWxMV0pzYjJOck8xeGNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXhjYmlBZ0lDQnRZWEpuYVc0dGNtbG5hSFE2SURBdU1qVnlaVzA3WEZ4dUlDQjlYRnh1WEZ4dUlDQXVjR2xqYTJWeUlIdGNYRzRnSUNBZ1ltRmphMmR5YjNWdVpEb2dkbUZ5S0MwdGNHOXdkWEF0WW1jdFkyOXNiM0lwTzF4Y2JpQWdJQ0JpYjNKa1pYSTZJREFnYzI5c2FXUWdkSEpoYm5Od1lYSmxiblJwZW1Vb0pHOWpMWGRvYVhSbExDQXdMamMxS1R0Y1hHNGdJQ0FnWW05NExYTm9ZV1J2ZHpvZ2RISmhibk53WVhKbGJuUnBlbVVvSkc5akxXSnNZV05yTENBd0xqYzFLU0F3SURGd2VDQTBjSGc3WEZ4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEUndlRHRjWEc0Z0lDQWdjRzl6YVhScGIyNDZJR0ZpYzI5c2RYUmxPMXhjYmlBZ2ZWeGNibHhjYmlBZ0xuQnBZMnRsY2kxamIyNTBZV2x1WlhJZ1luVjBkRzl1TEZ4Y2JpQWdMbkJwWTJ0bGNpQmlkWFIwYjI0Z2UxeGNiaUFnSUNCd2IzTnBkR2x2YmpvZ2NtVnNZWFJwZG1VN1hGeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRnh1SUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJqWlc1MFpYSTdYRnh1SUNBZ0lHcDFjM1JwWm5rdFkyOXVkR1Z1ZERvZ1kyVnVkR1Z5TzF4Y2JseGNiaUFnSUNBbU9tWnZZM1Z6TFhacGMybGliR1VnZTF4Y2JpQWdJQ0FnSUc5MWRHeHBibVU2SUhSeVlXNXpjR0Z5Wlc1ME8xeGNiaUFnSUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdKMWRIUnZiaTFuY21GNUxUSXBPMXhjYmlBZ0lDQWdJQ1lnYzNabklIdGNYRzRnSUNBZ0lDQWdJRzl3WVdOcGRIazZJREU3WEZ4dUlDQWdJQ0FnZlZ4Y2JpQWdJQ0I5WEZ4dVhGeHVJQ0FnSUNZNmFHOTJaWElnZTF4Y2JpQWdJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV0oxZEhSdmJpMW5jbUY1TFRJcE8xeGNiaUFnSUNCOVhGeHVYRnh1SUNBZ0lDWTZZV04wYVhabElIdGNYRzRnSUNBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxaWRYUjBiMjR0WjNKaGVTMHpLVHRjWEc0Z0lDQWdmVnhjYmx4Y2JpQWdJQ0FtT21ScGMyRmliR1ZrSUh0Y1hHNGdJQ0FnSUNCamRYSnpiM0k2SUc1dmRDMWhiR3h2ZDJWa08xeGNiaUFnSUNCOVhGeHVYRnh1SUNBZ0lITjJaeUI3WEZ4dUlDQWdJQ0FnYldGeVoybHVPaUF3TzF4Y2JpQWdJQ0FnSUhkcFpIUm9PaUF6Tm5CNE8xeGNiaUFnSUNBZ0lHaGxhV2RvZERvZ01UaHdlRHRjWEc0Z0lDQWdJQ0J2Y0dGamFYUjVPaUF3TGpZN1hGeHVJQ0FnSUNBZ2NHOXBiblJsY2kxbGRtVnVkSE02SUc1dmJtVTdYRnh1SUNBZ0lIMWNYRzRnSUgxY1hHNWNYRzRnSUM1d2FXTnJaWElnWW5WMGRHOXVJSHRjWEc0Z0lDQWdjR0ZrWkdsdVp6b2dNQzR5TlhKbGJTQXdMakk0Y21WdElEQXVNelZ5WlcwZ01DNHlOWEpsYlR0Y1hHNGdJSDFjWEc1Y1hHNGdJQzV3YVdOclpYSXRkSEpwWVc1bmJHVWdlMXhjYmlBZ0lDQjNhV1IwYURvZ01EdGNYRzRnSUNBZ2FHVnBaMmgwT2lBd08xeGNiaUFnSUNCd2IzTnBkR2x2YmpvZ2NtVnNZWFJwZG1VN1hGeHVJQ0FnSUhSdmNEb2dMVEV3Y0hnN1hGeHVJQ0FnSURweWIyOTBXMlJwY2oxY1hGd2liSFJ5WEZ4Y0lsMGdKaUI3WEZ4dUlDQWdJQ0FnYkdWbWREb2dNVEp3ZUR0Y1hHNGdJQ0FnZlZ4Y2JseGNiaUFnSUNBNmNtOXZkRnRrYVhJOVhGeGNJbkowYkZ4Y1hDSmRJQ1lnZTF4Y2JpQWdJQ0FnSUhKcFoyaDBPaUF4TW5CNE8xeGNiaUFnSUNCOVhGeHVJQ0FnSUhvdGFXNWtaWGc2SURFd08xeGNibHhjYmlBZ0lDQW1PbUpsWm05eVpTQjdYRnh1SUNBZ0lDQWdZMjl1ZEdWdWREb2dYRnhjSWx4Y1hDSTdYRnh1SUNBZ0lDQWdjRzl6YVhScGIyNDZJR0ZpYzI5c2RYUmxPMXhjYmlBZ0lDQWdJR0p2Y21SbGNpMXpkSGxzWlRvZ2MyOXNhV1E3WEZ4dUlDQWdJQ0FnWW05eVpHVnlMWGRwWkhSb09pQXdJRGx3ZUNBeE1IQjRPMXhjYmlBZ0lDQWdJR0p2Y21SbGNpMWpiMnh2Y2pvZ2RISmhibk53WVhKbGJuUWdkSEpoYm5Od1lYSmxiblFnZEhKaGJuTndZWEpsYm5ScGVtVW9KRzlqTFdKc1lXTnJMQ0F3TGprcE8xeGNiaUFnSUNBZ0lIUnZjRG9nTFRGd2VEdGNYRzRnSUNBZ2ZWeGNibHhjYmlBZ0lDQW1PbUZtZEdWeUlIdGNYRzRnSUNBZ0lDQmpiMjUwWlc1ME9pQmNYRndpWEZ4Y0lqdGNYRzRnSUNBZ0lDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRnh1SUNBZ0lDQWdZbTl5WkdWeUxYTjBlV3hsT2lCemIyeHBaRHRjWEc0Z0lDQWdJQ0JpYjNKa1pYSXRkMmxrZEdnNklEQWdPWEI0SURFd2NIZzdYRnh1SUNBZ0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMGNtRnVjM0JoY21WdWRDQjBjbUZ1YzNCaGNtVnVkQ0IyWVhJb0xTMXdiM0IxY0MxaVp5MWpiMnh2Y2lrN1hGeHVJQ0FnSUgxY1hHNGdJSDFjWEc1Y1hHNGdJQzV3YVdOclpYSXRZMjl1ZEdWdWRDQjdYRnh1SUNBZ0lIQmhaR1JwYm1jNklEQXVOWEpsYlR0Y1hHNGdJQ0FnWkdsemNHeGhlVG9nWjNKcFpEdGNYRzRnSUNBZ1ozSnBaQzEwWlcxd2JHRjBaUzFqYjJ4MWJXNXpPaUJ5WlhCbFlYUW9NeXdnWVhWMGJ5azdYRnh1SUNBZ0lHZHlhV1F0WjJGd09pQXdMalZ5WlcwN1hGeHVJQ0FnSUdKdmNtUmxjaTF5WVdScGRYTTZJRFJ3ZUR0Y1hHNGdJQ0FnT25KdmIzUmJaR2x5UFZ4Y1hDSnlkR3hjWEZ3aVhTQW1JSHRjWEc0Z0lDQWdJQ0J3WVdSa2FXNW5PaUF3TGpSeVpXMDdYRnh1SUNBZ0lIMWNYRzRnSUgxY1hHNWNYRzRnSUM1d2FXTnJaWEl0YTJWNVltbHVaR2x1WnlCN1hGeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y1hHNGdJQ0FnWW05MGRHOXRPaUF5Y0hnN1hGeHVJQ0FnSUdadmJuUXRjMmw2WlRvZ01DNDNaVzA3WEZ4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxclpYbGlhVzVrYVc1bkxXTnZiRzl5S1R0Y1hHNWNYRzRnSUNBZ09uSnZiM1JiWkdseVBWeGNYQ0pzZEhKY1hGd2lYU0FtSUh0Y1hHNGdJQ0FnSUNCeWFXZG9kRG9nTW5CNE8xeGNiaUFnSUNCOVhGeHVYRnh1SUNBZ0lEcHliMjkwVzJScGNqMWNYRndpY25Sc1hGeGNJbDBnSmlCN1hGeHVJQ0FnSUNBZ2JHVm1kRG9nTW5CNE8xeGNiaUFnSUNCOVhGeHVJQ0FnSUVCcGJtTnNkV1JsSUdselRXOWlhV3hsSUh0Y1hHNGdJQ0FnSUNCa2FYTndiR0Y1T2lCdWIyNWxPMXhjYmlBZ0lDQjlYRnh1SUNCOVhGeHVYRnh1SUNBdWNHbGphMlZ5TFhSNWNHVXRZMkZ1ZG1GelFtRmphMmR5YjNWdVpDQXVjR2xqYTJWeUxXdGxlV0pwYm1ScGJtY2dlMXhjYmlBZ0lDQmpiMnh2Y2pvZ0kyRmhZVHRjWEc0Z0lIMWNYRzVjWEc0Z0lDNXdhV05yWlhJdGRIbHdaUzFsYkdWdFpXNTBRbUZqYTJkeWIzVnVaQ0F1Y0dsamEyVnlMV3RsZVdKcGJtUnBibWNnZTF4Y2JpQWdJQ0JqYjJ4dmNqb2dKRzlqTFhkb2FYUmxPMXhjYmlBZ2ZWeGNibHhjYmlBZ0xuQnBZMnRsY2kxemQyRjBZMmhiWVhKcFlTMXNZV0psYkQxY1hGd2lkSEpoYm5Od1lYSmxiblJjWEZ3aVhTQXVjR2xqYTJWeUxXdGxlV0pwYm1ScGJtY2dlMXhjYmlBZ0lDQmpiMnh2Y2pvZ0kyRmhZVHRjWEc0Z0lIMWNYRzVjWEc0Z0lDNXdhV05yWlhJdGRIbHdaUzFsYkdWdFpXNTBVM1J5YjJ0bElDNXdhV05yWlhJdGEyVjVZbWx1WkdsdVp5QjdYRnh1SUNBZ0lHTnZiRzl5T2lBalpEUmtOR1EwTzF4Y2JpQWdmVnhjYmx4Y2JpQWdKaTUwYUdWdFpTMHRaR0Z5YXlCN1hGeHVJQ0FnSUM1d2FXTnJaWEl0ZEhsd1pTMWxiR1Z0Wlc1MFFtRmphMmR5YjNWdVpDQXVjR2xqYTJWeUxXdGxlV0pwYm1ScGJtY2dlMXhjYmlBZ0lDQWdJR052Ykc5eU9pQWtiMk10WW14aFkyczdYRnh1SUNBZ0lIMWNYRzRnSUNBZ0xuQnBZMnRsY2kxemQyRjBZMmhiWVhKcFlTMXNZV0psYkQxY1hGd2lkSEpoYm5Od1lYSmxiblJjWEZ3aVhTQXVjR2xqYTJWeUxXdGxlV0pwYm1ScGJtY2dlMXhjYmlBZ0lDQWdJR052Ykc5eU9pQWtiMk10WW14aFkyczdYRnh1SUNBZ0lIMWNYRzRnSUgxY1hHNTlYRnh1WENJc1hDSXZMMXhjYmk4dlhGeHVMeThnSVBDZGw1WWc4SjJYb2lEd25aZWZJUENkbDZJZzhKMlhwVnhjYmk4dklDQjJJREV1T1M0eFhGeHVMeTljWEc0dkx5QWc0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQlhGeHVYRnh1WEZ4dUx5OGdJRWRsYm1WeVlXeGNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFhkb2FYUmxPaUFnSUNBZ0lDQWdJQ05tWm1abVptWTdYRnh1Skc5akxXSnNZV05yT2lBZ0lDQWdJQ0FnSUNNd01EQXdNREE3WEZ4dVhGeHVYRnh1THk4Z0lFZHlZWGxjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXZHlZWGt0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaamhtT1daaExGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpqRm1NMlkxTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWlRsbFkyVm1MRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpaR1ZsTW1VMkxGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBalkyVmtOR1JoTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqWVdSaU5XSmtMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpPRFk0WlRrMkxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak5EazFNRFUzTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTXpRellUUXdMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpNakV5TlRJNVhGeHVLVHRjWEc1Y1hHNGtiMk10WjNKaGVTMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0TVRvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxUSTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzB6T2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE5Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVFU2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMwMk9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3ROem9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRnNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUZKbFpGeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10Y21Wa0xXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJabVpqVm1OU3hjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlptWlRObE15eGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyWm1ZemxqT1N4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJabVlUaGhPQ3hjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJMlptT0RjNE55eGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0kyWm1ObUkyWWl4Y1hHNGdJRnhjWENJMlhGeGNJam9nSTJaaE5USTFNaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJMll3TTJVelpTeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0kyVXdNekV6TVN4Y1hHNGdJRnhjWENJNVhGeGNJam9nSTJNNU1tRXlZVnhjYmlrN1hGeHVYRnh1Skc5akxYSmxaQzB3T2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRFNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE1qb2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVFE2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MXlaV1F0TlRvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMWEpsWkMwMk9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUYzZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxeVpXUXRPRG9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxYSmxaQzA1T2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1VHbHVhMXhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGNHbHVheTFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1abVl3WmpZc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObVptUmxaV0lzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05tWTJNeVpEY3NYRnh1SUNCY1hGd2lNMXhjWENJNklDTm1ZV0V5WXpFc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNObU56Z3pZV01zWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ05tTURZMU9UVXNYRnh1SUNCY1hGd2lObHhjWENJNklDTmxOalE1T0RBc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNOa05qTXpObU1zWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ05qTWpJMU5XTXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTmhOakZsTkdSY1hHNHBPMXhjYmx4Y2JpUnZZeTF3YVc1ckxUQTZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTB4T2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE1qb2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVE02SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkwME9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3ROVG9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRZNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MDNPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0T0RvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUazZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnUjNKaGNHVmNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFdkeVlYQmxMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyWTRaakJtWXl4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJZelpEbG1ZU3hjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMlZsWW1WbVlTeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0kyVTFPVGxtTnl4Y1hHNGdJRnhjWENJMFhGeGNJam9nSTJSaE56ZG1NaXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJMk5qTldSbE9DeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0kySmxOR0prWWl4Y1hHNGdJRnhjWENJM1hGeGNJam9nSTJGbE0yVmpPU3hjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJemxqTXpaaU5TeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6ZzJNbVU1WTF4Y2JpazdYRnh1WEZ4dUpHOWpMV2R5WVhCbExUQTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRFNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVEk2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUTTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRRNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVFU2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUWTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRjNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVGc2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUazZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUZacGIyeGxkRnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGRtbHZiR1YwTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMll6WmpCbVppeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyVTFaR0ptWml4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJRd1ltWm1aaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMkl4T1RkbVl5eGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0l6azNOelZtWVN4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXpnME5XVm1OeXhjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJemM1TlRCbU1peGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6Y3dORGhsT0N4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpZM05ERmtPU3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJelZtTTJSak5GeGNiaWs3WEZ4dVhGeHVKRzlqTFhacGIyeGxkQzB3T2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVEU2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXRNam9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUUTZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE5Ub2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMwMk9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRjNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0T0RvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzA1T2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdTVzVrYVdkdlhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFwYm1ScFoyOHRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpXUm1NbVptTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWkdKbE5HWm1MRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpZbUZqT0dabUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBak9URmhOMlptTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqTnpRNFptWmpMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpOV00zWTJaaExGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBak5HTTJaV1kxTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqTkRJMk0yVmlMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpNMkkxWW1SaUxGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak16WTBabU0zWEZ4dUtUdGNYRzVjWEc0a2IyTXRhVzVrYVdkdkxUQTZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE1Ub2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkweU9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRNNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0TkRvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTAxT2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVFk2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHROem9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MDRPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUazZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCQ2JIVmxYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxaWJIVmxMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyVTNaalZtWml4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJRd1pXSm1aaXhjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMkUxWkRobVppeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0l6YzBZekJtWXl4Y1hHNGdJRnhjWENJMFhGeGNJam9nSXpSa1lXSm1OeXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJek16T1dGbU1DeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0l6SXlPR0psTml4Y1hHNGdJRnhjWENJM1hGeGNJam9nSXpGak4yVmtOaXhjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJekU1TnpGak1peGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6RTROalJoWWx4Y2JpazdYRnh1WEZ4dUpHOWpMV0pzZFdVdE1Eb2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVEU2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMweU9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXRNem9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRRNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10WW14MVpTMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0TmpvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUYzZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzA0T2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE9Ub2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JEZVdGdVhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFqZVdGdUxXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJVelptRm1ZeXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMk0xWmpabVlTeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0l6azVaVGxtTWl4Y1hHNGdJRnhjWENJelhGeGNJam9nSXpZMlpEbGxPQ3hjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJek5pWXpsa1lpeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0l6SXlZamhqWml4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpFMVlXRmlaaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJekV3T1RoaFpDeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6QmpPRFU1T1N4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpCaU56STROVnhjYmlrN1hGeHVYRnh1Skc5akxXTjVZVzR0TURvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxURTZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTB5T2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE16b2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVFE2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkwMU9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHROam9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRjNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0T1RvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQlVaV0ZzWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MTBaV0ZzTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlUyWm1ObU5TeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyTXpabUZsT0N4Y1hHNGdJRnhjWENJeVhGeGNJam9nSXprMlpqSmtOeXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJell6WlRaaVpTeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0l6TTRaRGxoT1N4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXpJd1l6azVOeXhjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJekV5WWpnNE5peGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6QmpZVFkzT0N4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpBNU9USTJPQ3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJekE0TjJZMVlseGNiaWs3WEZ4dVhGeHVKRzlqTFhSbFlXd3RNRG9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRFNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0TXpvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUUTZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzAxT2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE5qb2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVGM2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMwNE9pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3RPVG9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCSGNtVmxibHhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdFozSmxaVzR0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaV0ptWW1WbExGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpETm1PV1E0TEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWWpKbU1tSmlMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpPR05sT1RsaExGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBak5qbGtZamRqTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqTlRGalpqWTJMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpOREJqTURVM0xGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak16ZGlNalJrTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTW1ZNVpUUTBMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpNbUk0WVRObFhGeHVLVHRjWEc1Y1hHNGtiMk10WjNKbFpXNHRNRG9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE1Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TWpvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHRNem9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE5Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TlRvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHROam9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE56b2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0T0RvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHRPVG9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1RHbHRaVnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGJHbHRaUzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1OR1pqWlRNc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObE9XWmhZemdzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05rT0dZMVlUSXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTmpNR1ZpTnpVc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNOaE9XVXpOR0lzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ001TkdRNE1tUXNYRnh1SUNCY1hGd2lObHhjWENJNklDTTRNbU01TVdVc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNM05HSTRNVFlzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ00yTm1FNE1HWXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTTFZemswTUdSY1hHNHBPMXhjYmx4Y2JpUnZZeTFzYVcxbExUQTZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzB4T2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE1qb2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVE02SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMwME9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXROVG9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRZNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0T0RvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUazZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnV1dWc2JHOTNYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxNVpXeHNiM2N0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpabVptT1dSaUxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalptWm1NMkptTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWm1abFl6azVMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpabVpsTURZMkxGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBalptWmtORE5pTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqWm1Oak5ERTVMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpabUZpTURBMUxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBalpqVTVaakF3TEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqWmpBNFl6QXdMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpaVFkzTnpBd1hGeHVLVHRjWEc1Y1hHNGtiMk10ZVdWc2JHOTNMVEE2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3RNVG9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MHlPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUTTZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE5Eb2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkwMU9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRZNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0TnpvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTA0T2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVGs2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQlBjbUZ1WjJWY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMVzl5WVc1blpTMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObVptWTBaVFlzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05tWm1VNFkyTXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTm1abVE0WVRnc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNObVptTXdOemdzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ05tWm1FNU5HUXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTm1aamt5TW1Jc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNObVpEZGxNVFFzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ05tTnpZM01EY3NYRnh1SUNCY1hGd2lPRnhjWENJNklDTmxPRFU1TUdNc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNOa09UUTRNR1pjWEc0cE8xeGNibHhjYmlSdll5MXZjbUZ1WjJVdE1Eb2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMweE9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRJNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0TXpvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzAwT2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVFU2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXROam9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUZzZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE9Ub2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUVOdmJHOXlJR3hwYzNSY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV052Ykc5eUxYTndaV04wY25WdE9pQWdJRGs3WEZ4dVhGeHVKRzlqTFdOdmJHOXlMV3hwYzNRNklDaGNYRzRnSUNSdll5MW5jbUY1TFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbWR5WVhsY1hGd2lMRnhjYmlBZ0pHOWpMWEpsWkMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0p5WldSY1hGd2lMRnhjYmlBZ0pHOWpMWEJwYm1zdGJHbHpkRG9nSUNBZ0lDQmNYRndpY0dsdWExeGNYQ0lzWEZ4dUlDQWtiMk10WjNKaGNHVXRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aVozSmhjR1ZjWEZ3aUxGeGNiaUFnSkc5akxYWnBiMnhsZEMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0oyYVc5c1pYUmNYRndpTEZ4Y2JpQWdKRzlqTFdsdVpHbG5ieTFzYVhOME9pQWdJQ0FnSUZ4Y1hDSnBibVJwWjI5Y1hGd2lMRnhjYmlBZ0pHOWpMV0pzZFdVdGJHbHpkRG9nSUNBZ0lDQmNYRndpWW14MVpWeGNYQ0lzWEZ4dUlDQWtiMk10WTNsaGJpMXNhWE4wT2lBZ0lDQWdJRnhjWENKamVXRnVYRnhjSWl4Y1hHNGdJQ1J2WXkxMFpXRnNMV3hwYzNRNklDQWdJQ0FnWEZ4Y0luUmxZV3hjWEZ3aUxGeGNiaUFnSkc5akxXZHlaV1Z1TFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbWR5WldWdVhGeGNJaXhjWEc0Z0lDUnZZeTFzYVcxbExXeHBjM1E2SUNBZ0lDQWdYRnhjSW14cGJXVmNYRndpTEZ4Y2JpQWdKRzlqTFhsbGJHeHZkeTFzYVhOME9pQWdJQ0FnSUZ4Y1hDSjVaV3hzYjNkY1hGd2lMRnhjYmlBZ0pHOWpMVzl5WVc1blpTMXNhWE4wT2lBZ0lDQWdJRnhjWENKdmNtRnVaMlZjWEZ3aVhGeHVLVHRjWEc1Y0lsMHNYQ0p6YjNWeVkyVlNiMjkwWENJNlhDSmNJbjFkS1R0Y2JpOHZJRVY0Y0c5eWRITmNibVY0Y0c5eWRDQmtaV1poZFd4MElGOWZYME5UVTE5TVQwRkVSVkpmUlZoUVQxSlVYMTlmTzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9JY29uUGlja2VyLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvSXNsYW5kLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0lzbGFuZC5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkZWZhdWx0XFxcIjogKCkgPT4gKF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vLyBJbXBvcnRzXFxuXFxuXFxudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKSgoX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0KCkpKTtcXG4vLyBNb2R1bGVcXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFxcXCIuZXhjYWxpZHJhdyAuSXNsYW5kIHtcXFxcbiAgLS1wYWRkaW5nOiAwO1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pc2xhbmQtYmctY29sb3IpO1xcXFxuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctaXNsYW5kKTtcXFxcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1sZyk7XFxcXG4gIHBhZGRpbmc6IGNhbGModmFyKC0tcGFkZGluZykgKiB2YXIoLS1zcGFjZS1mYWN0b3IpKTtcXFxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcXFxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMgZWFzZS1pbi1vdXQ7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuSXNsYW5kLnplbi1tb2RlIHtcXFxcbiAgYm94LXNoYWRvdzogbm9uZTtcXFxcbn1cXFwiLCBcXFwiXFxcIix7XFxcInZlcnNpb25cXFwiOjMsXFxcInNvdXJjZXNcXFwiOltcXFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9Jc2xhbmQuc2Nzc1xcXCJdLFxcXCJuYW1lc1xcXCI6W10sXFxcIm1hcHBpbmdzXFxcIjpcXFwiQUFDRTtFQUNFLFlBQUE7RUFDQSx3Q0FBQTtFQUNBLGdDQUFBO0VBQ0Esc0NBQUE7RUFDQSxtREFBQTtFQUNBLGtCQUFBO0VBQ0EsdUNBQUE7QUFBSjtBQUVJO0VBQ0UsZ0JBQUE7QUFBTlxcXCIsXFxcInNvdXJjZXNDb250ZW50XFxcIjpbXFxcIi5leGNhbGlkcmF3IHtcXFxcbiAgLklzbGFuZCB7XFxcXG4gICAgLS1wYWRkaW5nOiAwO1xcXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlzbGFuZC1iZy1jb2xvcik7XFxcXG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWlzbGFuZCk7XFxcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1sZyk7XFxcXG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1wYWRkaW5nKSAqIHZhcigtLXNwYWNlLWZhY3RvcikpO1xcXFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXFxcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMgZWFzZS1pbi1vdXQ7XFxcXG5cXFxcbiAgICAmLnplbi1tb2RlIHtcXFxcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxcXG4gICAgfVxcXFxuICB9XFxcXG59XFxcXG5cXFwiXSxcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoX19fQ1NTX0xPQURFUl9FWFBPUlRfX18pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpOXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUpjMnhoYm1RdWMyTnpjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096dEJRVUZCTzBGQlF6aElPMEZCUTJwQ08wRkJRemRITERoQ1FVRTRRaXgxUjBGQk1rSXNRMEZCUXl4blNFRkJjVU03UVVGREwwWTdRVUZEUVN3clJFRkJLMFFzYVVKQlFXbENMRFpEUVVFMlF5eHhRMEZCY1VNc01rTkJRVEpETEhkRVFVRjNSQ3gxUWtGQmRVSXNORU5CUVRSRExFZEJRVWNzWjBOQlFXZERMSEZDUVVGeFFpeEhRVUZITEU5QlFVOHNLMFpCUVN0R0xGVkJRVlVzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1MwRkJTeXhMUVVGTExGZEJRVmNzYzBOQlFYTkRMR0ZCUVdFc2JVSkJRVzFDTEN0RFFVRXJReXgxUTBGQmRVTXNOa05CUVRaRExEQkVRVUV3UkN4NVFrRkJlVUlzT0VOQlFUaERMRzlDUVVGdlFpeDVRa0ZCZVVJc1QwRkJUeXhMUVVGTExFZEJRVWNzY1VKQlFYRkNPMEZCUTNJclFqdEJRVU5CTEdsRlFVRmxMSFZDUVVGMVFpeEZRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZTWE5zWVc1a0xuTmpjM00vT0RZeU9DSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2THlCSmJYQnZjblJ6WEc1cGJYQnZjblFnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmVTA5VlVrTkZUVUZRWDBsTlVFOVNWRjlmWHlCbWNtOXRJRndpTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZjMjkxY21ObFRXRndjeTVxYzF3aU8xeHVhVzF3YjNKMElGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgwbE5VRTlTVkY5Zlh5Qm1jbTl0SUZ3aUxpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDNKMWJuUnBiV1V2WVhCcExtcHpYQ0k3WEc1MllYSWdYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4Z1BTQmZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOUpUVkJQVWxSZlgxOG9YMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZVMDlWVWtORlRVRlFYMGxOVUU5U1ZGOWZYeWs3WEc0dkx5Qk5iMlIxYkdWY2JsOWZYME5UVTE5TVQwRkVSVkpmUlZoUVQxSlVYMTlmTG5CMWMyZ29XMjF2WkhWc1pTNXBaQ3dnWENJdVpYaGpZV3hwWkhKaGR5QXVTWE5zWVc1a0lIdGNYRzRnSUMwdGNHRmtaR2x1WnpvZ01EdGNYRzRnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV2x6YkdGdVpDMWlaeTFqYjJ4dmNpazdYRnh1SUNCaWIzZ3RjMmhoWkc5M09pQjJZWElvTFMxemFHRmtiM2N0YVhOc1lXNWtLVHRjWEc0Z0lHSnZjbVJsY2kxeVlXUnBkWE02SUhaaGNpZ3RMV0p2Y21SbGNpMXlZV1JwZFhNdGJHY3BPMXhjYmlBZ2NHRmtaR2x1WnpvZ1kyRnNZeWgyWVhJb0xTMXdZV1JrYVc1bktTQXFJSFpoY2lndExYTndZV05sTFdaaFkzUnZjaWtwTzF4Y2JpQWdjRzl6YVhScGIyNDZJSEpsYkdGMGFYWmxPMXhjYmlBZ2RISmhibk5wZEdsdmJqb2dZbTk0TFhOb1lXUnZkeUF3TGpWeklHVmhjMlV0YVc0dGIzVjBPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1U1hOc1lXNWtMbnBsYmkxdGIyUmxJSHRjWEc0Z0lHSnZlQzF6YUdGa2IzYzZJRzV2Ym1VN1hGeHVmVndpTENCY0lsd2lMSHRjSW5abGNuTnBiMjVjSWpvekxGd2ljMjkxY21ObGMxd2lPbHRjSW5kbFluQmhZMnM2THk4dUx5NHVMeTR1TDJOdmJYQnZibVZ1ZEhNdlNYTnNZVzVrTG5OamMzTmNJbDBzWENKdVlXMWxjMXdpT2x0ZExGd2liV0Z3Y0dsdVozTmNJanBjSWtGQlEwVTdSVUZEUlN4WlFVRkJPMFZCUTBFc2QwTkJRVUU3UlVGRFFTeG5RMEZCUVR0RlFVTkJMSE5EUVVGQk8wVkJRMEVzYlVSQlFVRTdSVUZEUVN4clFrRkJRVHRGUVVOQkxIVkRRVUZCTzBGQlFVbzdRVUZGU1R0RlFVTkZMR2RDUVVGQk8wRkJRVTVjSWl4Y0luTnZkWEpqWlhORGIyNTBaVzUwWENJNlcxd2lMbVY0WTJGc2FXUnlZWGNnZTF4Y2JpQWdMa2x6YkdGdVpDQjdYRnh1SUNBZ0lDMHRjR0ZrWkdsdVp6b2dNRHRjWEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFYTnNZVzVrTFdKbkxXTnZiRzl5S1R0Y1hHNGdJQ0FnWW05NExYTm9ZV1J2ZHpvZ2RtRnlLQzB0YzJoaFpHOTNMV2x6YkdGdVpDazdYRnh1SUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SUhaaGNpZ3RMV0p2Y21SbGNpMXlZV1JwZFhNdGJHY3BPMXhjYmlBZ0lDQndZV1JrYVc1bk9pQmpZV3hqS0haaGNpZ3RMWEJoWkdScGJtY3BJQ29nZG1GeUtDMHRjM0JoWTJVdFptRmpkRzl5S1NrN1hGeHVJQ0FnSUhCdmMybDBhVzl1T2lCeVpXeGhkR2wyWlR0Y1hHNGdJQ0FnZEhKaGJuTnBkR2x2YmpvZ1ltOTRMWE5vWVdSdmR5QXdMalZ6SUdWaGMyVXRhVzR0YjNWME8xeGNibHhjYmlBZ0lDQW1MbnBsYmkxdGIyUmxJSHRjWEc0Z0lDQWdJQ0JpYjNndGMyaGhaRzkzT2lCdWIyNWxPMXhjYmlBZ0lDQjlYRnh1SUNCOVhGeHVmVnhjYmx3aVhTeGNJbk52ZFhKalpWSnZiM1JjSWpwY0lsd2lmVjBwTzF4dUx5OGdSWGh3YjNKMGMxeHVaWGh3YjNKMElHUmxabUYxYkhRZ1gxOWZRMU5UWDB4UFFVUkZVbDlGV0ZCUFVsUmZYMTg3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Jc2xhbmQuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9MYXllclVJLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9MYXllclVJLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkZWZhdWx0XFxcIjogKCkgPT4gKF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vLyBJbXBvcnRzXFxuXFxuXFxudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKSgoX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0KCkpKTtcXG4vLyBNb2R1bGVcXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFxcXCIuZXhjYWxpZHJhdyAubGF5ZXItdWlfX3dyYXBwZXIge1xcXFxuICB6LWluZGV4OiB2YXIoLS16SW5kZXgtbGF5ZXJVSSk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGF5ZXItdWlfX3dyYXBwZXJfX3RvcC1yaWdodCB7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGF5ZXItdWlfX3dyYXBwZXJfX2Zvb3RlciB7XFxcXG4gIHdpZHRoOiAxMDAlO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxheWVyLXVpX193cmFwcGVyX19mb290ZXItcmlnaHQge1xcXFxuICB6LWluZGV4OiAxMDA7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGF5ZXItdWlfX3dyYXBwZXIgLnplbi1tb2RlLXRyYW5zaXRpb24ge1xcXFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlLWluLW91dDtcXFxcbn1cXFxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5sYXllci11aV9fd3JhcHBlciAuemVuLW1vZGUtdHJhbnNpdGlvbi50cmFuc2l0aW9uLWxlZnQge1xcXFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtOTk5cHgsIDApO1xcXFxufVxcXFxuOnJvb3RbZGlyPWx0cl0gLmV4Y2FsaWRyYXcgLmxheWVyLXVpX193cmFwcGVyIC56ZW4tbW9kZS10cmFuc2l0aW9uLnRyYW5zaXRpb24tcmlnaHQge1xcXFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg5OTlweCwgMCk7XFxcXG59XFxcXG46cm9vdFtkaXI9cnRsXSAuZXhjYWxpZHJhdyAubGF5ZXItdWlfX3dyYXBwZXIgLnplbi1tb2RlLXRyYW5zaXRpb24udHJhbnNpdGlvbi1sZWZ0IHtcXFxcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoOTk5cHgsIDApO1xcXFxufVxcXFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLmxheWVyLXVpX193cmFwcGVyIC56ZW4tbW9kZS10cmFuc2l0aW9uLnRyYW5zaXRpb24tcmlnaHQge1xcXFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtOTk5cHgsIDApO1xcXFxufVxcXFxuOnJvb3RbZGlyPWx0cl0gLmV4Y2FsaWRyYXcgLmxheWVyLXVpX193cmFwcGVyIC56ZW4tbW9kZS10cmFuc2l0aW9uLmxheWVyLXVpX193cmFwcGVyX19mb290ZXItbGVmdC0tdHJhbnNpdGlvbi1sZWZ0IHtcXFxcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTc2cHgsIDApO1xcXFxufVxcXFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLmxheWVyLXVpX193cmFwcGVyIC56ZW4tbW9kZS10cmFuc2l0aW9uLmxheWVyLXVpX193cmFwcGVyX19mb290ZXItbGVmdC0tdHJhbnNpdGlvbi1sZWZ0IHtcXFxcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNzZweCwgMCk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGF5ZXItdWlfX3dyYXBwZXIgLnplbi1tb2RlLXRyYW5zaXRpb24ubGF5ZXItdWlfX3dyYXBwZXJfX2Zvb3Rlci1sZWZ0LS10cmFuc2l0aW9uLWJvdHRvbSB7XFxcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDkycHgpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxheWVyLXVpX193cmFwcGVyIC5kaXNhYmxlLXplbi1tb2RlIHtcXFxcbiAgaGVpZ2h0OiAzMHB4O1xcXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gIGJvdHRvbTogMTBweDtcXFxcbiAgZm9udC1zaXplOiAxMHB4O1xcXFxuICBwYWRkaW5nOiAxMHB4O1xcXFxuICBmb250LXdlaWdodDogNTAwO1xcXFxuICBvcGFjaXR5OiAwO1xcXFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxcXG4gIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgbGluZWFyIDBzLCBvcGFjaXR5IDAuNXM7XFxcXG59XFxcXG5bZGlyPWx0cl0gLmV4Y2FsaWRyYXcgLmxheWVyLXVpX193cmFwcGVyIC5kaXNhYmxlLXplbi1tb2RlIHtcXFxcbiAgcmlnaHQ6IDE1cHg7XFxcXG59XFxcXG5bZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLmxheWVyLXVpX193cmFwcGVyIC5kaXNhYmxlLXplbi1tb2RlIHtcXFxcbiAgbGVmdDogMTVweDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5sYXllci11aV9fd3JhcHBlciAuZGlzYWJsZS16ZW4tbW9kZS0tdmlzaWJsZSB7XFxcXG4gIG9wYWNpdHk6IDE7XFxcXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XFxcXG4gIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgbGluZWFyIDMwMG1zLCBvcGFjaXR5IDAuNXM7XFxcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuOHM7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGF5ZXItdWlfX3dyYXBwZXIgLmxheWVyLXVpX193cmFwcGVyX19mb290ZXItY2VudGVyIHtcXFxcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGF5ZXItdWlfX3dyYXBwZXIgLmxheWVyLXVpX193cmFwcGVyX19mb290ZXItY2VudGVyID4gKiB7XFxcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGF5ZXItdWlfX3dyYXBwZXIgLmxheWVyLXVpX193cmFwcGVyX19mb290ZXItbGVmdCxcXFxcbi5leGNhbGlkcmF3IC5sYXllci11aV9fd3JhcHBlciAubGF5ZXItdWlfX3dyYXBwZXJfX2Zvb3Rlci1yaWdodCxcXFxcbi5leGNhbGlkcmF3IC5sYXllci11aV9fd3JhcHBlciAuZGlzYWJsZS16ZW4tbW9kZS0tdmlzaWJsZSB7XFxcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGF5ZXItdWlfX3dyYXBwZXIgLmxheWVyLXVpX193cmFwcGVyX19mb290ZXItbGVmdCB7XFxcXG4gIG1hcmdpbi1ib3R0b206IDAuMmVtO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxheWVyLXVpX193cmFwcGVyIC5sYXllci11aV9fd3JhcHBlcl9fZm9vdGVyLXJpZ2h0IHtcXFxcbiAgbWFyZ2luLXRvcDogYXV0bztcXFxcbiAgbWFyZ2luLWJvdHRvbTogYXV0bztcXFxcbiAgbWFyZ2luLWlubGluZS1lbmQ6IDFlbTtcXFxcbn1cXFwiLCBcXFwiXFxcIix7XFxcInZlcnNpb25cXFwiOjMsXFxcInNvdXJjZXNcXFwiOltcXFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9MYXllclVJLnNjc3NcXFwiXSxcXFwibmFtZXNcXFwiOltdLFxcXCJtYXBwaW5nc1xcXCI6XFxcIkFBR0U7RUFDRSw4QkFBQTtBQUZKO0FBSUk7RUFDRSxhQUFBO0FBRk47QUFLSTtFQUNFLFdBQUE7QUFITjtBQUtNO0VBQ0UsWUFBQTtFQUNBLGFBQUE7QUFIUjtBQU9JO0VBQ0Usc0NBQUE7QUFMTjtBQU9NO0VBQ0UsK0JBQUE7QUFMUjtBQVFNO0VBQ0UsOEJBQUE7QUFOUjtBQVNNO0VBQ0UsOEJBQUE7QUFQUjtBQVVNO0VBQ0UsK0JBQUE7QUFSUjtBQVdNO0VBQ0UsOEJBQUE7QUFUUjtBQVdNO0VBQ0UsNkJBQUE7QUFUUjtBQVlNO0VBQ0UsNkJBQUE7QUFWUjtBQWNJO0VBQ0UsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQU9BLGVBQUE7RUFDQSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxpREFBQTtBQWxCTjtBQU9NO0VBQ0UsV0FBQTtBQUxSO0FBT007RUFDRSxVQUFBO0FBTFI7QUFjTTtFQUNFLFVBQUE7RUFDQSxtQkFBQTtFQUNBLG9EQUFBO0VBQ0Esc0JBQUE7QUFaUjtBQWdCSTtFQUNFLG9CQUFBO0FBZE47QUFlTTtFQUNFLG1CQUFBO0FBYlI7QUFnQkk7OztFQUdFLG1CQUFBO0FBZE47QUFpQkk7RUFDRSxvQkFBQTtBQWZOO0FBa0JJO0VBQ0UsZ0JBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0FBaEJOXFxcIixcXFwic291cmNlc0NvbnRlbnRcXFwiOltcXFwiQGltcG9ydCBcXFxcXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvclxcXFxcXFwiO1xcXFxuXFxcXG4uZXhjYWxpZHJhdyB7XFxcXG4gIC5sYXllci11aV9fd3JhcHBlciB7XFxcXG4gICAgei1pbmRleDogdmFyKC0tekluZGV4LWxheWVyVUkpO1xcXFxuXFxcXG4gICAgJl9fdG9wLXJpZ2h0IHtcXFxcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJl9fZm9vdGVyIHtcXFxcbiAgICAgIHdpZHRoOiAxMDAlO1xcXFxuXFxcXG4gICAgICAmLXJpZ2h0IHtcXFxcbiAgICAgICAgei1pbmRleDogMTAwO1xcXFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xcXFxuICAgICAgfVxcXFxuICAgIH1cXFxcblxcXFxuICAgIC56ZW4tbW9kZS10cmFuc2l0aW9uIHtcXFxcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2UtaW4tb3V0O1xcXFxuXFxcXG4gICAgICA6cm9vdFtkaXI9XFxcXFxcXCJsdHJcXFxcXFxcIl0gJi50cmFuc2l0aW9uLWxlZnQge1xcXFxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtOTk5cHgsIDApO1xcXFxuICAgICAgfVxcXFxuXFxcXG4gICAgICA6cm9vdFtkaXI9XFxcXFxcXCJsdHJcXFxcXFxcIl0gJi50cmFuc2l0aW9uLXJpZ2h0IHtcXFxcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoOTk5cHgsIDApO1xcXFxuICAgICAgfVxcXFxuXFxcXG4gICAgICA6cm9vdFtkaXI9XFxcXFxcXCJydGxcXFxcXFxcIl0gJi50cmFuc2l0aW9uLWxlZnQge1xcXFxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg5OTlweCwgMCk7XFxcXG4gICAgICB9XFxcXG5cXFxcbiAgICAgIDpyb290W2Rpcj1cXFxcXFxcInJ0bFxcXFxcXFwiXSAmLnRyYW5zaXRpb24tcmlnaHQge1xcXFxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtOTk5cHgsIDApO1xcXFxuICAgICAgfVxcXFxuXFxcXG4gICAgICA6cm9vdFtkaXI9XFxcXFxcXCJsdHJcXFxcXFxcIl0gJi5sYXllci11aV9fd3JhcHBlcl9fZm9vdGVyLWxlZnQtLXRyYW5zaXRpb24tbGVmdCB7XFxcXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC03NnB4LCAwKTtcXFxcbiAgICAgIH1cXFxcbiAgICAgIDpyb290W2Rpcj1cXFxcXFxcInJ0bFxcXFxcXFwiXSAmLmxheWVyLXVpX193cmFwcGVyX19mb290ZXItbGVmdC0tdHJhbnNpdGlvbi1sZWZ0IHtcXFxcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNzZweCwgMCk7XFxcXG4gICAgICB9XFxcXG5cXFxcbiAgICAgICYubGF5ZXItdWlfX3dyYXBwZXJfX2Zvb3Rlci1sZWZ0LS10cmFuc2l0aW9uLWJvdHRvbSB7XFxcXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDkycHgpO1xcXFxuICAgICAgfVxcXFxuICAgIH1cXFxcblxcXFxuICAgIC5kaXNhYmxlLXplbi1tb2RlIHtcXFxcbiAgICAgIGhlaWdodDogMzBweDtcXFxcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgICAgIGJvdHRvbTogMTBweDtcXFxcbiAgICAgIFtkaXI9XFxcXFxcXCJsdHJcXFxcXFxcIl0gJiB7XFxcXG4gICAgICAgIHJpZ2h0OiAxNXB4O1xcXFxuICAgICAgfVxcXFxuICAgICAgW2Rpcj1cXFxcXFxcInJ0bFxcXFxcXFwiXSAmIHtcXFxcbiAgICAgICAgbGVmdDogMTVweDtcXFxcbiAgICAgIH1cXFxcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcXFxcbiAgICAgIHBhZGRpbmc6IDEwcHg7XFxcXG4gICAgICBmb250LXdlaWdodDogNTAwO1xcXFxuICAgICAgb3BhY2l0eTogMDtcXFxcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXFxcbiAgICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgbGluZWFyIDBzLCBvcGFjaXR5IDAuNXM7XFxcXG5cXFxcbiAgICAgICYtLXZpc2libGUge1xcXFxuICAgICAgICBvcGFjaXR5OiAxO1xcXFxuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcXFxuICAgICAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIGxpbmVhciAzMDBtcywgb3BhY2l0eSAwLjVzO1xcXFxuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjhzO1xcXFxuICAgICAgfVxcXFxuICAgIH1cXFxcblxcXFxuICAgIC5sYXllci11aV9fd3JhcHBlcl9fZm9vdGVyLWNlbnRlciB7XFxcXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXFxcbiAgICAgICYgPiAqIHtcXFxcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcXFxcbiAgICAgIH1cXFxcbiAgICB9XFxcXG4gICAgLmxheWVyLXVpX193cmFwcGVyX19mb290ZXItbGVmdCxcXFxcbiAgICAubGF5ZXItdWlfX3dyYXBwZXJfX2Zvb3Rlci1yaWdodCxcXFxcbiAgICAuZGlzYWJsZS16ZW4tbW9kZS0tdmlzaWJsZSB7XFxcXG4gICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xcXFxuICAgIH1cXFxcblxcXFxuICAgIC5sYXllci11aV9fd3JhcHBlcl9fZm9vdGVyLWxlZnQge1xcXFxuICAgICAgbWFyZ2luLWJvdHRvbTogMC4yZW07XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgLmxheWVyLXVpX193cmFwcGVyX19mb290ZXItcmlnaHQge1xcXFxuICAgICAgbWFyZ2luLXRvcDogYXV0bztcXFxcbiAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XFxcXG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogMWVtO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxufVxcXFxuXFxcIl0sXFxcInNvdXJjZVJvb3RcXFwiOlxcXCJcXFwifV0pO1xcbi8vIEV4cG9ydHNcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKF9fX0NTU19MT0FERVJfRVhQT1JUX19fKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlNWVhsbGNsVkpMbk5qYzNNdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3UVVGQlFUdEJRVU00U0R0QlFVTnFRanRCUVVNM1J5dzRRa0ZCT0VJc2RVZEJRVEpDTEVOQlFVTXNaMGhCUVhGRE8wRkJReTlHTzBGQlEwRXNNRVZCUVRCRkxHMURRVUZ0UXl4SFFVRkhMRFpEUVVFMlF5eHJRa0ZCYTBJc1IwRkJSeXd3UTBGQk1FTXNaMEpCUVdkQ0xFZEJRVWNzWjBSQlFXZEVMR2xDUVVGcFFpeHJRa0ZCYTBJc1IwRkJSeXgxUkVGQmRVUXNNa05CUVRKRExFZEJRVWNzYzBaQlFYTkdMRzlEUVVGdlF5eEhRVUZITEhWR1FVRjFSaXh0UTBGQmJVTXNSMEZCUnl4elJrRkJjMFlzYlVOQlFXMURMRWRCUVVjc2RVWkJRWFZHTEc5RFFVRnZReXhIUVVGSExITklRVUZ6U0N4dFEwRkJiVU1zUjBGQlJ5eHpTRUZCYzBnc2EwTkJRV3RETEVkQlFVY3NlVWRCUVhsSExHdERRVUZyUXl4SFFVRkhMRzlFUVVGdlJDeHBRa0ZCYVVJc2RVSkJRWFZDTEdsQ1FVRnBRaXh2UWtGQmIwSXNhMEpCUVd0Q0xIRkNRVUZ4UWl4bFFVRmxMSFZDUVVGMVFpeHpSRUZCYzBRc1IwRkJSeXc0UkVGQk9FUXNaMEpCUVdkQ0xFZEJRVWNzT0VSQlFUaEVMR1ZCUVdVc1IwRkJSeXcyUkVGQk5rUXNaVUZCWlN4M1FrRkJkMElzZVVSQlFYbEVMREpDUVVFeVFpeEhRVUZITEc5RlFVRnZSU3g1UWtGQmVVSXNSMEZCUnl4M1JVRkJkMFVzZDBKQlFYZENMRWRCUVVjc1owMUJRV2ROTEhkQ1FVRjNRaXhIUVVGSExHdEZRVUZyUlN4NVFrRkJlVUlzUjBGQlJ5eHRSVUZCYlVVc2NVSkJRWEZDTEhkQ1FVRjNRaXd5UWtGQk1rSXNSMEZCUnl4UFFVRlBMR2RIUVVGblJ5eFhRVUZYTEV0QlFVc3NTMEZCU3l4VlFVRlZMRXRCUVVzc1MwRkJTeXhWUVVGVkxFdEJRVXNzUzBGQlN5eFZRVUZWTEZWQlFWVXNTMEZCU3l4TFFVRkxMRmRCUVZjc1MwRkJTeXhMUVVGTExGZEJRVmNzUzBGQlN5eExRVUZMTEZkQlFWY3NTMEZCU3l4TFFVRkxMRmRCUVZjc1MwRkJTeXhMUVVGTExGZEJRVmNzUzBGQlN5eExRVUZMTEZkQlFWY3NTMEZCU3l4TFFVRkxMRmRCUVZjc1MwRkJTeXhMUVVGTExGZEJRVmNzUzBGQlN5eExRVUZMTEZWQlFWVXNWMEZCVnl4VlFVRlZMRlZCUVZVc1ZVRkJWU3hYUVVGWExGVkJRVlVzVjBGQlZ5eFhRVUZYTEUxQlFVMHNTMEZCU3l4VlFVRlZMRXRCUVVzc1MwRkJTeXhWUVVGVkxFdEJRVXNzUzBGQlN5eFZRVUZWTEZkQlFWY3NWMEZCVnl4WFFVRlhMRXRCUVVzc1RVRkJUU3hYUVVGWExFdEJRVXNzUzBGQlN5eFhRVUZYTEV0QlFVc3NVVUZCVVN4WFFVRlhMRXRCUVVzc1RVRkJUU3hYUVVGWExFdEJRVXNzVFVGQlRTeFhRVUZYTEZkQlFWY3NWMEZCVnl3MFJFRkJORVFzYVVKQlFXbENMSGRDUVVGM1FpeHhRMEZCY1VNc2MwSkJRWE5DTEhOQ1FVRnpRaXhQUVVGUExHMUNRVUZ0UWl4dlFrRkJiMElzYlVKQlFXMUNMSFZDUVVGMVFpeDNRa0ZCZDBJc1UwRkJVeXhQUVVGUExEaENRVUU0UWl3clEwRkJLME1zWjBSQlFXZEVMREJEUVVFd1F5eFRRVUZUTEdsRVFVRnBSQ3g1UTBGQmVVTXNVMEZCVXl4blJFRkJaMFFzZVVOQlFYbERMRk5CUVZNc2FVUkJRV2xFTERCRFFVRXdReXhUUVVGVExHZEdRVUZuUml4NVEwRkJlVU1zVTBGQlV5dzRSVUZCT0VVc2QwTkJRWGRETEZOQlFWTXNLMFJCUVN0RUxIZERRVUYzUXl4VFFVRlRMRTlCUVU4c01rSkJRVEpDTEhGQ1FVRnhRaXd5UWtGQk1rSXNjVUpCUVhGQ0xIbENRVUY1UWl4elFrRkJjMElzVTBGQlV5eDVRa0ZCZVVJc2NVSkJRWEZDTEZOQlFWTXNkMEpCUVhkQ0xITkNRVUZ6UWl4NVFrRkJlVUlzYlVKQlFXMUNMREpDUVVFeVFpd3dSRUZCTUVRc2MwSkJRWE5DTEhGQ1FVRnhRaXc0UWtGQk9FSXNLMFJCUVN0RUxHbERRVUZwUXl4VFFVRlRMRTlCUVU4c01rTkJRVEpETERaQ1FVRTJRaXhsUVVGbExEaENRVUU0UWl4VFFVRlRMRTlCUVU4c0swZEJRU3RITERSQ1FVRTBRaXhQUVVGUExIbERRVUY1UXl3MlFrRkJOa0lzVDBGQlR5d3dRMEZCTUVNc2VVSkJRWGxDTERSQ1FVRTBRaXdyUWtGQkswSXNUMEZCVHl4TFFVRkxMRWRCUVVjc2NVSkJRWEZDTzBGQlF5ODNTenRCUVVOQkxHbEZRVUZsTEhWQ1FVRjFRaXhGUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12VEdGNVpYSlZTUzV6WTNOelB6aGhOekFpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUx5OGdTVzF3YjNKMGMxeHVhVzF3YjNKMElGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgxTlBWVkpEUlUxQlVGOUpUVkJQVWxSZlgxOGdabkp2YlNCY0lpNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5eWRXNTBhVzFsTDNOdmRYSmpaVTFoY0hNdWFuTmNJanRjYm1sdGNHOXlkQ0JmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlKVFZCUFVsUmZYMThnWm5KdmJTQmNJaTR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMMk56Y3kxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwyRndhUzVxYzF3aU8xeHVkbUZ5SUY5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZJRDBnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmU1UxUVQxSlVYMTlmS0Y5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDFOUFZWSkRSVTFCVUY5SlRWQlBVbFJmWDE4cE8xeHVMeThnVFc5a2RXeGxYRzVmWDE5RFUxTmZURTlCUkVWU1gwVllVRTlTVkY5Zlh5NXdkWE5vS0Z0dGIyUjFiR1V1YVdRc0lGd2lMbVY0WTJGc2FXUnlZWGNnTG14aGVXVnlMWFZwWDE5M2NtRndjR1Z5SUh0Y1hHNGdJSG90YVc1a1pYZzZJSFpoY2lndExYcEpibVJsZUMxc1lYbGxjbFZKS1R0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xteGhlV1Z5TFhWcFgxOTNjbUZ3Y0dWeVgxOTBiM0F0Y21sbmFIUWdlMXhjYmlBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG14aGVXVnlMWFZwWDE5M2NtRndjR1Z5WDE5bWIyOTBaWElnZTF4Y2JpQWdkMmxrZEdnNklERXdNQ1U3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1c1lYbGxjaTExYVY5ZmQzSmhjSEJsY2w5ZlptOXZkR1Z5TFhKcFoyaDBJSHRjWEc0Z0lIb3RhVzVrWlhnNklERXdNRHRjWEc0Z0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1c1lYbGxjaTExYVY5ZmQzSmhjSEJsY2lBdWVtVnVMVzF2WkdVdGRISmhibk5wZEdsdmJpQjdYRnh1SUNCMGNtRnVjMmwwYVc5dU9pQjBjbUZ1YzJadmNtMGdNQzQxY3lCbFlYTmxMV2x1TFc5MWREdGNYRzU5WEZ4dU9uSnZiM1JiWkdseVBXeDBjbDBnTG1WNFkyRnNhV1J5WVhjZ0xteGhlV1Z5TFhWcFgxOTNjbUZ3Y0dWeUlDNTZaVzR0Ylc5a1pTMTBjbUZ1YzJsMGFXOXVMblJ5WVc1emFYUnBiMjR0YkdWbWRDQjdYRnh1SUNCMGNtRnVjMlp2Y20wNklIUnlZVzV6YkdGMFpTZ3RPVGs1Y0hnc0lEQXBPMXhjYm4xY1hHNDZjbTl2ZEZ0a2FYSTliSFJ5WFNBdVpYaGpZV3hwWkhKaGR5QXViR0Y1WlhJdGRXbGZYM2R5WVhCd1pYSWdMbnBsYmkxdGIyUmxMWFJ5WVc1emFYUnBiMjR1ZEhKaGJuTnBkR2x2YmkxeWFXZG9kQ0I3WEZ4dUlDQjBjbUZ1YzJadmNtMDZJSFJ5WVc1emJHRjBaU2c1T1Rsd2VDd2dNQ2s3WEZ4dWZWeGNianB5YjI5MFcyUnBjajF5ZEd4ZElDNWxlR05oYkdsa2NtRjNJQzVzWVhsbGNpMTFhVjlmZDNKaGNIQmxjaUF1ZW1WdUxXMXZaR1V0ZEhKaGJuTnBkR2x2Ymk1MGNtRnVjMmwwYVc5dUxXeGxablFnZTF4Y2JpQWdkSEpoYm5ObWIzSnRPaUIwY21GdWMyeGhkR1VvT1RrNWNIZ3NJREFwTzF4Y2JuMWNYRzQ2Y205dmRGdGthWEk5Y25Sc1hTQXVaWGhqWVd4cFpISmhkeUF1YkdGNVpYSXRkV2xmWDNkeVlYQndaWElnTG5wbGJpMXRiMlJsTFhSeVlXNXphWFJwYjI0dWRISmhibk5wZEdsdmJpMXlhV2RvZENCN1hGeHVJQ0IwY21GdWMyWnZjbTA2SUhSeVlXNXpiR0YwWlNndE9UazVjSGdzSURBcE8xeGNibjFjWEc0NmNtOXZkRnRrYVhJOWJIUnlYU0F1WlhoallXeHBaSEpoZHlBdWJHRjVaWEl0ZFdsZlgzZHlZWEJ3WlhJZ0xucGxiaTF0YjJSbExYUnlZVzV6YVhScGIyNHViR0Y1WlhJdGRXbGZYM2R5WVhCd1pYSmZYMlp2YjNSbGNpMXNaV1owTFMxMGNtRnVjMmwwYVc5dUxXeGxablFnZTF4Y2JpQWdkSEpoYm5ObWIzSnRPaUIwY21GdWMyeGhkR1VvTFRjMmNIZ3NJREFwTzF4Y2JuMWNYRzQ2Y205dmRGdGthWEk5Y25Sc1hTQXVaWGhqWVd4cFpISmhkeUF1YkdGNVpYSXRkV2xmWDNkeVlYQndaWElnTG5wbGJpMXRiMlJsTFhSeVlXNXphWFJwYjI0dWJHRjVaWEl0ZFdsZlgzZHlZWEJ3WlhKZlgyWnZiM1JsY2kxc1pXWjBMUzEwY21GdWMybDBhVzl1TFd4bFpuUWdlMXhjYmlBZ2RISmhibk5tYjNKdE9pQjBjbUZ1YzJ4aGRHVW9Oelp3ZUN3Z01DazdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVzWVhsbGNpMTFhVjlmZDNKaGNIQmxjaUF1ZW1WdUxXMXZaR1V0ZEhKaGJuTnBkR2x2Ymk1c1lYbGxjaTExYVY5ZmQzSmhjSEJsY2w5ZlptOXZkR1Z5TFd4bFpuUXRMWFJ5WVc1emFYUnBiMjR0WW05MGRHOXRJSHRjWEc0Z0lIUnlZVzV6Wm05eWJUb2dkSEpoYm5Oc1lYUmxLREFzSURreWNIZ3BPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1YkdGNVpYSXRkV2xmWDNkeVlYQndaWElnTG1ScGMyRmliR1V0ZW1WdUxXMXZaR1VnZTF4Y2JpQWdhR1ZwWjJoME9pQXpNSEI0TzF4Y2JpQWdjRzl6YVhScGIyNDZJR0ZpYzI5c2RYUmxPMXhjYmlBZ1ltOTBkRzl0T2lBeE1IQjRPMXhjYmlBZ1ptOXVkQzF6YVhwbE9pQXhNSEI0TzF4Y2JpQWdjR0ZrWkdsdVp6b2dNVEJ3ZUR0Y1hHNGdJR1p2Ym5RdGQyVnBaMmgwT2lBMU1EQTdYRnh1SUNCdmNHRmphWFI1T2lBd08xeGNiaUFnZG1semFXSnBiR2wwZVRvZ2FHbGtaR1Z1TzF4Y2JpQWdkSEpoYm5OcGRHbHZiam9nZG1semFXSnBiR2wwZVNBd2N5QnNhVzVsWVhJZ01ITXNJRzl3WVdOcGRIa2dNQzQxY3p0Y1hHNTlYRnh1VzJScGNqMXNkSEpkSUM1bGVHTmhiR2xrY21GM0lDNXNZWGxsY2kxMWFWOWZkM0poY0hCbGNpQXVaR2x6WVdKc1pTMTZaVzR0Ylc5a1pTQjdYRnh1SUNCeWFXZG9kRG9nTVRWd2VEdGNYRzU5WEZ4dVcyUnBjajF5ZEd4ZElDNWxlR05oYkdsa2NtRjNJQzVzWVhsbGNpMTFhVjlmZDNKaGNIQmxjaUF1WkdsellXSnNaUzE2Wlc0dGJXOWtaU0I3WEZ4dUlDQnNaV1owT2lBeE5YQjRPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1YkdGNVpYSXRkV2xmWDNkeVlYQndaWElnTG1ScGMyRmliR1V0ZW1WdUxXMXZaR1V0TFhacGMybGliR1VnZTF4Y2JpQWdiM0JoWTJsMGVUb2dNVHRjWEc0Z0lIWnBjMmxpYVd4cGRIazZJSFpwYzJsaWJHVTdYRnh1SUNCMGNtRnVjMmwwYVc5dU9pQjJhWE5wWW1sc2FYUjVJREJ6SUd4cGJtVmhjaUF6TURCdGN5d2diM0JoWTJsMGVTQXdMalZ6TzF4Y2JpQWdkSEpoYm5OcGRHbHZiaTFrWld4aGVUb2dNQzQ0Y3p0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xteGhlV1Z5TFhWcFgxOTNjbUZ3Y0dWeUlDNXNZWGxsY2kxMWFWOWZkM0poY0hCbGNsOWZabTl2ZEdWeUxXTmxiblJsY2lCN1hGeHVJQ0J3YjJsdWRHVnlMV1YyWlc1MGN6b2dibTl1WlR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xteGhlV1Z5TFhWcFgxOTNjbUZ3Y0dWeUlDNXNZWGxsY2kxMWFWOWZkM0poY0hCbGNsOWZabTl2ZEdWeUxXTmxiblJsY2lBK0lDb2dlMXhjYmlBZ2NHOXBiblJsY2kxbGRtVnVkSE02SUdGc2JEdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbXhoZVdWeUxYVnBYMTkzY21Gd2NHVnlJQzVzWVhsbGNpMTFhVjlmZDNKaGNIQmxjbDlmWm05dmRHVnlMV3hsWm5Rc1hGeHVMbVY0WTJGc2FXUnlZWGNnTG14aGVXVnlMWFZwWDE5M2NtRndjR1Z5SUM1c1lYbGxjaTExYVY5ZmQzSmhjSEJsY2w5ZlptOXZkR1Z5TFhKcFoyaDBMRnhjYmk1bGVHTmhiR2xrY21GM0lDNXNZWGxsY2kxMWFWOWZkM0poY0hCbGNpQXVaR2x6WVdKc1pTMTZaVzR0Ylc5a1pTMHRkbWx6YVdKc1pTQjdYRnh1SUNCd2IybHVkR1Z5TFdWMlpXNTBjem9nWVd4c08xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXViR0Y1WlhJdGRXbGZYM2R5WVhCd1pYSWdMbXhoZVdWeUxYVnBYMTkzY21Gd2NHVnlYMTltYjI5MFpYSXRiR1ZtZENCN1hGeHVJQ0J0WVhKbmFXNHRZbTkwZEc5dE9pQXdMakpsYlR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xteGhlV1Z5TFhWcFgxOTNjbUZ3Y0dWeUlDNXNZWGxsY2kxMWFWOWZkM0poY0hCbGNsOWZabTl2ZEdWeUxYSnBaMmgwSUh0Y1hHNGdJRzFoY21kcGJpMTBiM0E2SUdGMWRHODdYRnh1SUNCdFlYSm5hVzR0WW05MGRHOXRPaUJoZFhSdk8xeGNiaUFnYldGeVoybHVMV2x1YkdsdVpTMWxibVE2SURGbGJUdGNYRzU5WENJc0lGd2lYQ0lzZTF3aWRtVnljMmx2Ymx3aU9qTXNYQ0p6YjNWeVkyVnpYQ0k2VzF3aWQyVmljR0ZqYXpvdkx5NHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OU1ZWGxsY2xWSkxuTmpjM05jSWwwc1hDSnVZVzFsYzF3aU9sdGRMRndpYldGd2NHbHVaM05jSWpwY0lrRkJSMFU3UlVGRFJTdzRRa0ZCUVR0QlFVWktPMEZCU1VrN1JVRkRSU3hoUVVGQk8wRkJSazQ3UVVGTFNUdEZRVU5GTEZkQlFVRTdRVUZJVGp0QlFVdE5PMFZCUTBVc1dVRkJRVHRGUVVOQkxHRkJRVUU3UVVGSVVqdEJRVTlKTzBWQlEwVXNjME5CUVVFN1FVRk1UanRCUVU5Tk8wVkJRMFVzSzBKQlFVRTdRVUZNVWp0QlFWRk5PMFZCUTBVc09FSkJRVUU3UVVGT1VqdEJRVk5OTzBWQlEwVXNPRUpCUVVFN1FVRlFVanRCUVZWTk8wVkJRMFVzSzBKQlFVRTdRVUZTVWp0QlFWZE5PMFZCUTBVc09FSkJRVUU3UVVGVVVqdEJRVmROTzBWQlEwVXNOa0pCUVVFN1FVRlVVanRCUVZsTk8wVkJRMFVzTmtKQlFVRTdRVUZXVWp0QlFXTkpPMFZCUTBVc1dVRkJRVHRGUVVOQkxHdENRVUZCTzBWQlEwRXNXVUZCUVR0RlFVOUJMR1ZCUVVFN1JVRkRRU3hoUVVGQk8wVkJRMEVzWjBKQlFVRTdSVUZEUVN4VlFVRkJPMFZCUTBFc2EwSkJRVUU3UlVGRFFTeHBSRUZCUVR0QlFXeENUanRCUVU5Tk8wVkJRMFVzVjBGQlFUdEJRVXhTTzBGQlQwMDdSVUZEUlN4VlFVRkJPMEZCVEZJN1FVRmpUVHRGUVVORkxGVkJRVUU3UlVGRFFTeHRRa0ZCUVR0RlFVTkJMRzlFUVVGQk8wVkJRMEVzYzBKQlFVRTdRVUZhVWp0QlFXZENTVHRGUVVORkxHOUNRVUZCTzBGQlpFNDdRVUZsVFR0RlFVTkZMRzFDUVVGQk8wRkJZbEk3UVVGblFrazdPenRGUVVkRkxHMUNRVUZCTzBGQlpFNDdRVUZwUWtrN1JVRkRSU3h2UWtGQlFUdEJRV1pPTzBGQmEwSkpPMFZCUTBVc1owSkJRVUU3UlVGRFFTeHRRa0ZCUVR0RlFVTkJMSE5DUVVGQk8wRkJhRUpPWENJc1hDSnpiM1Z5WTJWelEyOXVkR1Z1ZEZ3aU9sdGNJa0JwYlhCdmNuUWdYRnhjSW05d1pXNHRZMjlzYjNJdmIzQmxiaTFqYjJ4dmNseGNYQ0k3WEZ4dVhGeHVMbVY0WTJGc2FXUnlZWGNnZTF4Y2JpQWdMbXhoZVdWeUxYVnBYMTkzY21Gd2NHVnlJSHRjWEc0Z0lDQWdlaTFwYm1SbGVEb2dkbUZ5S0MwdGVrbHVaR1Y0TFd4aGVXVnlWVWtwTzF4Y2JseGNiaUFnSUNBbVgxOTBiM0F0Y21sbmFIUWdlMXhjYmlBZ0lDQWdJR1JwYzNCc1lYazZJR1pzWlhnN1hGeHVJQ0FnSUgxY1hHNWNYRzRnSUNBZ0psOWZabTl2ZEdWeUlIdGNYRzRnSUNBZ0lDQjNhV1IwYURvZ01UQXdKVHRjWEc1Y1hHNGdJQ0FnSUNBbUxYSnBaMmgwSUh0Y1hHNGdJQ0FnSUNBZ0lIb3RhVzVrWlhnNklERXdNRHRjWEc0Z0lDQWdJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRnh1SUNBZ0lDQWdmVnhjYmlBZ0lDQjlYRnh1WEZ4dUlDQWdJQzU2Wlc0dGJXOWtaUzEwY21GdWMybDBhVzl1SUh0Y1hHNGdJQ0FnSUNCMGNtRnVjMmwwYVc5dU9pQjBjbUZ1YzJadmNtMGdNQzQxY3lCbFlYTmxMV2x1TFc5MWREdGNYRzVjWEc0Z0lDQWdJQ0E2Y205dmRGdGthWEk5WEZ4Y0lteDBjbHhjWENKZElDWXVkSEpoYm5OcGRHbHZiaTFzWldaMElIdGNYRzRnSUNBZ0lDQWdJSFJ5WVc1elptOXliVG9nZEhKaGJuTnNZWFJsS0MwNU9UbHdlQ3dnTUNrN1hGeHVJQ0FnSUNBZ2ZWeGNibHhjYmlBZ0lDQWdJRHB5YjI5MFcyUnBjajFjWEZ3aWJIUnlYRnhjSWwwZ0ppNTBjbUZ1YzJsMGFXOXVMWEpwWjJoMElIdGNYRzRnSUNBZ0lDQWdJSFJ5WVc1elptOXliVG9nZEhKaGJuTnNZWFJsS0RrNU9YQjRMQ0F3S1R0Y1hHNGdJQ0FnSUNCOVhGeHVYRnh1SUNBZ0lDQWdPbkp2YjNSYlpHbHlQVnhjWENKeWRHeGNYRndpWFNBbUxuUnlZVzV6YVhScGIyNHRiR1ZtZENCN1hGeHVJQ0FnSUNBZ0lDQjBjbUZ1YzJadmNtMDZJSFJ5WVc1emJHRjBaU2c1T1Rsd2VDd2dNQ2s3WEZ4dUlDQWdJQ0FnZlZ4Y2JseGNiaUFnSUNBZ0lEcHliMjkwVzJScGNqMWNYRndpY25Sc1hGeGNJbDBnSmk1MGNtRnVjMmwwYVc5dUxYSnBaMmgwSUh0Y1hHNGdJQ0FnSUNBZ0lIUnlZVzV6Wm05eWJUb2dkSEpoYm5Oc1lYUmxLQzA1T1Rsd2VDd2dNQ2s3WEZ4dUlDQWdJQ0FnZlZ4Y2JseGNiaUFnSUNBZ0lEcHliMjkwVzJScGNqMWNYRndpYkhSeVhGeGNJbDBnSmk1c1lYbGxjaTExYVY5ZmQzSmhjSEJsY2w5ZlptOXZkR1Z5TFd4bFpuUXRMWFJ5WVc1emFYUnBiMjR0YkdWbWRDQjdYRnh1SUNBZ0lDQWdJQ0IwY21GdWMyWnZjbTA2SUhSeVlXNXpiR0YwWlNndE56WndlQ3dnTUNrN1hGeHVJQ0FnSUNBZ2ZWeGNiaUFnSUNBZ0lEcHliMjkwVzJScGNqMWNYRndpY25Sc1hGeGNJbDBnSmk1c1lYbGxjaTExYVY5ZmQzSmhjSEJsY2w5ZlptOXZkR1Z5TFd4bFpuUXRMWFJ5WVc1emFYUnBiMjR0YkdWbWRDQjdYRnh1SUNBZ0lDQWdJQ0IwY21GdWMyWnZjbTA2SUhSeVlXNXpiR0YwWlNnM05uQjRMQ0F3S1R0Y1hHNGdJQ0FnSUNCOVhGeHVYRnh1SUNBZ0lDQWdKaTVzWVhsbGNpMTFhVjlmZDNKaGNIQmxjbDlmWm05dmRHVnlMV3hsWm5RdExYUnlZVzV6YVhScGIyNHRZbTkwZEc5dElIdGNYRzRnSUNBZ0lDQWdJSFJ5WVc1elptOXliVG9nZEhKaGJuTnNZWFJsS0RBc0lEa3ljSGdwTzF4Y2JpQWdJQ0FnSUgxY1hHNGdJQ0FnZlZ4Y2JseGNiaUFnSUNBdVpHbHpZV0pzWlMxNlpXNHRiVzlrWlNCN1hGeHVJQ0FnSUNBZ2FHVnBaMmgwT2lBek1IQjRPMXhjYmlBZ0lDQWdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjWEc0Z0lDQWdJQ0JpYjNSMGIyMDZJREV3Y0hnN1hGeHVJQ0FnSUNBZ1cyUnBjajFjWEZ3aWJIUnlYRnhjSWwwZ0ppQjdYRnh1SUNBZ0lDQWdJQ0J5YVdkb2REb2dNVFZ3ZUR0Y1hHNGdJQ0FnSUNCOVhGeHVJQ0FnSUNBZ1cyUnBjajFjWEZ3aWNuUnNYRnhjSWwwZ0ppQjdYRnh1SUNBZ0lDQWdJQ0JzWldaME9pQXhOWEI0TzF4Y2JpQWdJQ0FnSUgxY1hHNGdJQ0FnSUNCbWIyNTBMWE5wZW1VNklERXdjSGc3WEZ4dUlDQWdJQ0FnY0dGa1pHbHVaem9nTVRCd2VEdGNYRzRnSUNBZ0lDQm1iMjUwTFhkbGFXZG9kRG9nTlRBd08xeGNiaUFnSUNBZ0lHOXdZV05wZEhrNklEQTdYRnh1SUNBZ0lDQWdkbWx6YVdKcGJHbDBlVG9nYUdsa1pHVnVPMXhjYmlBZ0lDQWdJSFJ5WVc1emFYUnBiMjQ2SUhacGMybGlhV3hwZEhrZ01ITWdiR2x1WldGeUlEQnpMQ0J2Y0dGamFYUjVJREF1TlhNN1hGeHVYRnh1SUNBZ0lDQWdKaTB0ZG1semFXSnNaU0I3WEZ4dUlDQWdJQ0FnSUNCdmNHRmphWFI1T2lBeE8xeGNiaUFnSUNBZ0lDQWdkbWx6YVdKcGJHbDBlVG9nZG1semFXSnNaVHRjWEc0Z0lDQWdJQ0FnSUhSeVlXNXphWFJwYjI0NklIWnBjMmxpYVd4cGRIa2dNSE1nYkdsdVpXRnlJRE13TUcxekxDQnZjR0ZqYVhSNUlEQXVOWE03WEZ4dUlDQWdJQ0FnSUNCMGNtRnVjMmwwYVc5dUxXUmxiR0Y1T2lBd0xqaHpPMXhjYmlBZ0lDQWdJSDFjWEc0Z0lDQWdmVnhjYmx4Y2JpQWdJQ0F1YkdGNVpYSXRkV2xmWDNkeVlYQndaWEpmWDJadmIzUmxjaTFqWlc1MFpYSWdlMXhjYmlBZ0lDQWdJSEJ2YVc1MFpYSXRaWFpsYm5Sek9pQnViMjVsTzF4Y2JpQWdJQ0FnSUNZZ1BpQXFJSHRjWEc0Z0lDQWdJQ0FnSUhCdmFXNTBaWEl0WlhabGJuUnpPaUJoYkd3N1hGeHVJQ0FnSUNBZ2ZWeGNiaUFnSUNCOVhGeHVJQ0FnSUM1c1lYbGxjaTExYVY5ZmQzSmhjSEJsY2w5ZlptOXZkR1Z5TFd4bFpuUXNYRnh1SUNBZ0lDNXNZWGxsY2kxMWFWOWZkM0poY0hCbGNsOWZabTl2ZEdWeUxYSnBaMmgwTEZ4Y2JpQWdJQ0F1WkdsellXSnNaUzE2Wlc0dGJXOWtaUzB0ZG1semFXSnNaU0I3WEZ4dUlDQWdJQ0FnY0c5cGJuUmxjaTFsZG1WdWRITTZJR0ZzYkR0Y1hHNGdJQ0FnZlZ4Y2JseGNiaUFnSUNBdWJHRjVaWEl0ZFdsZlgzZHlZWEJ3WlhKZlgyWnZiM1JsY2kxc1pXWjBJSHRjWEc0Z0lDQWdJQ0J0WVhKbmFXNHRZbTkwZEc5dE9pQXdMakpsYlR0Y1hHNGdJQ0FnZlZ4Y2JseGNiaUFnSUNBdWJHRjVaWEl0ZFdsZlgzZHlZWEJ3WlhKZlgyWnZiM1JsY2kxeWFXZG9kQ0I3WEZ4dUlDQWdJQ0FnYldGeVoybHVMWFJ2Y0RvZ1lYVjBienRjWEc0Z0lDQWdJQ0J0WVhKbmFXNHRZbTkwZEc5dE9pQmhkWFJ2TzF4Y2JpQWdJQ0FnSUcxaGNtZHBiaTFwYm14cGJtVXRaVzVrT2lBeFpXMDdYRnh1SUNBZ0lIMWNYRzRnSUgxY1hHNTlYRnh1WENKZExGd2ljMjkxY21ObFVtOXZkRndpT2x3aVhDSjlYU2s3WEc0dkx5QkZlSEJ2Y25SelhHNWxlSEJ2Y25RZ1pHVm1ZWFZzZENCZlgxOURVMU5mVEU5QlJFVlNYMFZZVUU5U1ZGOWZYenRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9MYXllclVJLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvTGlicmFyeU1lbnUuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5TWVudS5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8vIEltcG9ydHNcXG5cXG5cXG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpKChfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQoKSkpO1xcbi8vIE1vZHVsZVxcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXFxcIi5leGNhbGlkcmF3IC5sYXllci11aV9fbGlicmFyeSB7XFxcXG4gIG1hcmdpbjogYXV0bztcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGF5ZXItdWlfX2xpYnJhcnkgLmxheWVyLXVpX19saWJyYXJ5LWhlYWRlciB7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gIHdpZHRoOiAxMDAlO1xcXFxuICBtYXJnaW46IDJweCAwO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxheWVyLXVpX19saWJyYXJ5IC5sYXllci11aV9fbGlicmFyeS1oZWFkZXIgYnV0dG9uIHtcXFxcbiAgbWFyZ2luOiAwIDJweDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5sYXllci11aV9fbGlicmFyeSAubGF5ZXItdWlfX2xpYnJhcnktaGVhZGVyIGEge1xcXFxuICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xcXFxuICBwYWRkaW5nLWlubGluZS1lbmQ6IDE4cHg7XFxcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGF5ZXItdWlfX2xpYnJhcnktbWVzc2FnZSB7XFxcXG4gIHBhZGRpbmc6IDEwcHggMjBweDtcXFxcbiAgbWF4LXdpZHRoOiAyMDBweDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5wdWJsaXNoLWxpYnJhcnktc3VjY2VzcyAuRGlhbG9nX19jb250ZW50IHtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5wdWJsaXNoLWxpYnJhcnktc3VjY2Vzcy1jbG9zZS5Ub29sSWNvbl90eXBlX2J1dHRvbiB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjhiZTY7XFxcXG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnB1Ymxpc2gtbGlicmFyeS1zdWNjZXNzLWNsb3NlLlRvb2xJY29uX3R5cGVfYnV0dG9uOmhvdmVyIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5NzFjMjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5wdWJsaXNoLWxpYnJhcnktc3VjY2Vzcy1jbG9zZS5Ub29sSWNvbl90eXBlX2J1dHRvbiAuVG9vbEljb25fX2ljb24ge1xcXFxuICB3aWR0aDogYXV0bztcXFxcbiAgZm9udC1zaXplOiAxcmVtO1xcXFxuICBjb2xvcjogI2ZmZmZmZjtcXFxcbiAgcGFkZGluZzogMCAwLjVyZW07XFxcXG59XFxcIiwgXFxcIlxcXCIse1xcXCJ2ZXJzaW9uXFxcIjozLFxcXCJzb3VyY2VzXFxcIjpbXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvTGlicmFyeU1lbnUuc2Nzc1xcXCIsXFxcIndlYnBhY2s6Ly8uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9vcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXCJdLFxcXCJuYW1lc1xcXCI6W10sXFxcIm1hcHBpbmdzXFxcIjpcXFwiQUFHRTtFQUNFLFlBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtBQUZKO0FBSUk7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtBQUZOO0FBSU07RUFFRSxhQUFBO0FBSFI7QUFNTTtFQUNFLHlCQUFBO0VBRUEsd0JBQUE7RUFDQSxtQkFBQTtBQUxSO0FBVUU7RUFDRSxrQkFBQTtFQUNBLGdCQUFBO0FBUko7QUFZSTtFQUNFLGFBQUE7RUFDQSxzQkFBQTtBQVZOO0FBYUk7RUFDRSx5QkNvS007RURuS04sb0JBQUE7QUFYTjtBQVlNO0VBQ0UseUJDbUtJO0FEN0taO0FBWU07RUFDRSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGNDdENXO0VEdUNYLGlCQUFBO0FBVlJcXFwiLFxcXCJzb3VyY2VzQ29udGVudFxcXCI6W1xcXCJAaW1wb3J0IFxcXFxcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yXFxcXFxcXCI7XFxcXG5cXFxcbi5leGNhbGlkcmF3IHtcXFxcbiAgLmxheWVyLXVpX19saWJyYXJ5IHtcXFxcbiAgICBtYXJnaW46IGF1dG87XFxcXG4gICAgZGlzcGxheTogZmxleDtcXFxcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcXFxuXFxcXG4gICAgLmxheWVyLXVpX19saWJyYXJ5LWhlYWRlciB7XFxcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcXFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAgICAgIHdpZHRoOiAxMDAlO1xcXFxuICAgICAgbWFyZ2luOiAycHggMDtcXFxcblxcXFxuICAgICAgYnV0dG9uIHtcXFxcbiAgICAgICAgLy8gMnB4IGZyb20gdGhlIGxlZnQgdG8gYWNjb3VudCBmb3IgZm9jdXMgYm9yZGVyIG9mIGxlZnQtbW9zdCBidXR0b25cXFxcbiAgICAgICAgbWFyZ2luOiAwIDJweDtcXFxcbiAgICAgIH1cXFxcblxcXFxuICAgICAgYSB7XFxcXG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XFxcXG4gICAgICAgIC8vIDE3cHggZm9yIHNjcm9sbGJhciAobmVlZGVkIGZvciBvdmVybGF5IHNjcm9sbGJhcnMgb24gQmlnIFN1cj8pICsgMXB4IGV4dHJhXFxcXG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMThweDtcXFxcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXFxcbiAgICAgIH1cXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAubGF5ZXItdWlfX2xpYnJhcnktbWVzc2FnZSB7XFxcXG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xcXFxuICAgIG1heC13aWR0aDogMjAwcHg7XFxcXG4gIH1cXFxcblxcXFxuICAucHVibGlzaC1saWJyYXJ5LXN1Y2Nlc3Mge1xcXFxuICAgIC5EaWFsb2dfX2NvbnRlbnQge1xcXFxuICAgICAgZGlzcGxheTogZmxleDtcXFxcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJi1jbG9zZS5Ub29sSWNvbl90eXBlX2J1dHRvbiB7XFxcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2MtYmx1ZS02O1xcXFxuICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XFxcXG4gICAgICAmOmhvdmVyIHtcXFxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9jLWJsdWUtODtcXFxcbiAgICAgIH1cXFxcbiAgICAgIC5Ub29sSWNvbl9faWNvbiB7XFxcXG4gICAgICAgIHdpZHRoOiBhdXRvO1xcXFxuICAgICAgICBmb250LXNpemU6IDFyZW07XFxcXG4gICAgICAgIGNvbG9yOiAkb2Mtd2hpdGU7XFxcXG4gICAgICAgIHBhZGRpbmc6IDAgMC41cmVtO1xcXFxuICAgICAgfVxcXFxuICAgIH1cXFxcbiAgfVxcXFxufVxcXFxuXFxcIixcXFwiLy9cXFxcbi8vXFxcXG4vLyAgXHVEODM1XHVEREQ2IFx1RDgzNVx1RERFMiBcdUQ4MzVcdUREREYgXHVEODM1XHVEREUyIFx1RDgzNVx1RERFNVxcXFxuLy8gIHYgMS45LjFcXFxcbi8vXFxcXG4vLyAgXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXFxcXG5cXFxcblxcXFxuLy8gIEdlbmVyYWxcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXdoaXRlOiAgICAgICAgICNmZmZmZmY7XFxcXG4kb2MtYmxhY2s6ICAgICAgICAgIzAwMDAwMDtcXFxcblxcXFxuXFxcXG4vLyAgR3JheVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JheS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjhmOWZhLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2YxZjNmNSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNlOWVjZWYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZGVlMmU2LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2NlZDRkYSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNhZGI1YmQsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjODY4ZTk2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzQ5NTA1NyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMzNDNhNDAsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMjEyNTI5XFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JheS0wOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTE6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0zOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTQ6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS02OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTc6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktODogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS05OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgUmVkXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1yZWQtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjVmNSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmUzZTMsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZjOWM5LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmYThhOCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZjg3ODcsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmY2YjZiLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZhNTI1MixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmMDNlM2UsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZTAzMTMxLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2M5MmEyYVxcXFxuKTtcXFxcblxcXFxuJG9jLXJlZC0wOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0xOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0yOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0zOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC00OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC01OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC02OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC03OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC04OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC05OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBQaW5rXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1waW5rLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmYwZjYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZkZWViLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZjYzJkNyxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmYWEyYzEsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZjc4M2FjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2YwNjU5NSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNlNjQ5ODAsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZDYzMzZjLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2MyMjU1YyxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNhNjFlNGRcXFxcbik7XFxcXG5cXFxcbiRvYy1waW5rLTA6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtcGluay0yOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTM6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtcGluay01OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTY6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtcGluay04OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTk6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBHcmFwZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JhcGUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y4ZjBmYyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmM2Q5ZmEsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZWViZWZhLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2U1OTlmNyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNkYTc3ZjIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjY2M1ZGU4LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2JlNGJkYixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNhZTNlYzksXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjOWMzNmI1LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzg2MmU5Y1xcXFxuKTtcXFxcblxcXFxuJG9jLWdyYXBlLTA6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0xOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTM6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS00OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTY6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS03OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtODogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTk6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgVmlvbGV0XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy12aW9sZXQtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2YzZjBmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNlNWRiZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZDBiZmZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2IxOTdmYyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM5Nzc1ZmEsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjODQ1ZWY3LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzc5NTBmMixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM3MDQ4ZTgsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjNjc0MWQ5LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzVmM2RjNFxcXFxuKTtcXFxcblxcXFxuJG9jLXZpb2xldC0wOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0xOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0yOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0zOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC00OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC01OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC02OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC03OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC04OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC05OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBJbmRpZ29cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWluZGlnby1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZWRmMmZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2RiZTRmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNiYWM4ZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjOTFhN2ZmLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzc0OGZmYyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM1YzdjZmEsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNGM2ZWY1LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzQyNjNlYixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMzYjViZGIsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMzY0ZmM3XFxcXG4pO1xcXFxuXFxcXG4kb2MtaW5kaWdvLTA6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTE6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTI6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTM6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTQ6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTU6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTY6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTc6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTg6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTk6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEJsdWVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWJsdWUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2U3ZjVmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkMGViZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYTVkOGZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzc0YzBmYyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM0ZGFiZjcsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMzM5YWYwLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzIyOGJlNixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMxYzdlZDYsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMTk3MWMyLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzE4NjRhYlxcXFxuKTtcXFxcblxcXFxuJG9jLWJsdWUtMDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0xOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTI6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS00OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTU6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS03OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTg6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtOTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEN5YW5cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWN5YW4tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2UzZmFmYyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNjNWY2ZmEsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjOTllOWYyLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzY2ZDllOCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICMzYmM5ZGIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMjJiOGNmLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzE1YWFiZixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMxMDk4YWQsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMGM4NTk5LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzBiNzI4NVxcXFxuKTtcXFxcblxcXFxuJG9jLWN5YW4tMDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0xOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTI6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi00OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTU6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi03OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTg6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tOTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFRlYWxcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXRlYWwtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2U2ZmNmNSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNjM2ZhZTgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjOTZmMmQ3LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzYzZTZiZSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICMzOGQ5YTksXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMjBjOTk3LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzEyYjg4NixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMwY2E2NzgsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMDk5MjY4LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzA4N2Y1YlxcXFxuKTtcXFxcblxcXFxuJG9jLXRlYWwtMDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0xOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTI6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC00OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTU6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC03OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTg6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtOTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEdyZWVuXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmVlbi1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZWJmYmVlLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2QzZjlkOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNiMmYyYmIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjOGNlOTlhLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzY5ZGI3YyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM1MWNmNjYsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNDBjMDU3LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzM3YjI0ZCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMyZjllNDQsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMmI4YTNlXFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JlZW4tMDogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTE6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0yOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMzogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTQ6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi01OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNjogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTc6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi04OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tOTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBMaW1lXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1saW1lLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmNGZjZTMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZTlmYWM4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2Q4ZjVhMixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNjMGViNzUsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjYTllMzRiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzk0ZDgyZCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM4MmM5MWUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNzRiODE2LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzY2YTgwZixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM1Yzk0MGRcXFxcbik7XFxcXG5cXFxcbiRvYy1saW1lLTA6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0yOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTM6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtbGltZS01OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTY6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtbGltZS04OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTk6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBZZWxsb3dcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXllbGxvdy1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmOWRiLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZjNiZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmVjOTksXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZlMDY2LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmZDQzYixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmY2M0MTksXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmFiMDA1LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Y1OWYwMCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNmMDhjMDAsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjZTY3NzAwXFxcXG4pO1xcXFxuXFxcXG4kb2MteWVsbG93LTA6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTE6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTI6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTM6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTQ6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTU6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTY6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTc6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTg6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTk6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIE9yYW5nZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2Mtb3JhbmdlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY0ZTYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZlOGNjLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmZDhhOCxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmMwNzgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmZhOTRkLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZmOTIyYixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmZDdlMTQsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjc2NzA3LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2U4NTkwYyxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNkOTQ4MGZcXFxcbik7XFxcXG5cXFxcbiRvYy1vcmFuZ2UtMDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtODogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtOTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQ29sb3IgbGlzdFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtY29sb3Itc3BlY3RydW06ICAgOTtcXFxcblxcXFxuJG9jLWNvbG9yLWxpc3Q6IChcXFxcbiAgJG9jLWdyYXktbGlzdDogICAgICBcXFxcXFxcImdyYXlcXFxcXFxcIixcXFxcbiAgJG9jLXJlZC1saXN0OiAgICAgIFxcXFxcXFwicmVkXFxcXFxcXCIsXFxcXG4gICRvYy1waW5rLWxpc3Q6ICAgICAgXFxcXFxcXCJwaW5rXFxcXFxcXCIsXFxcXG4gICRvYy1ncmFwZS1saXN0OiAgICAgIFxcXFxcXFwiZ3JhcGVcXFxcXFxcIixcXFxcbiAgJG9jLXZpb2xldC1saXN0OiAgICAgIFxcXFxcXFwidmlvbGV0XFxcXFxcXCIsXFxcXG4gICRvYy1pbmRpZ28tbGlzdDogICAgICBcXFxcXFxcImluZGlnb1xcXFxcXFwiLFxcXFxuICAkb2MtYmx1ZS1saXN0OiAgICAgIFxcXFxcXFwiYmx1ZVxcXFxcXFwiLFxcXFxuICAkb2MtY3lhbi1saXN0OiAgICAgIFxcXFxcXFwiY3lhblxcXFxcXFwiLFxcXFxuICAkb2MtdGVhbC1saXN0OiAgICAgIFxcXFxcXFwidGVhbFxcXFxcXFwiLFxcXFxuICAkb2MtZ3JlZW4tbGlzdDogICAgICBcXFxcXFxcImdyZWVuXFxcXFxcXCIsXFxcXG4gICRvYy1saW1lLWxpc3Q6ICAgICAgXFxcXFxcXCJsaW1lXFxcXFxcXCIsXFxcXG4gICRvYy15ZWxsb3ctbGlzdDogICAgICBcXFxcXFxcInllbGxvd1xcXFxcXFwiLFxcXFxuICAkb2Mtb3JhbmdlLWxpc3Q6ICAgICAgXFxcXFxcXCJvcmFuZ2VcXFxcXFxcIlxcXFxuKTtcXFxcblxcXCJdLFxcXCJzb3VyY2VSb290XFxcIjpcXFwiXFxcIn1dKTtcXG4vLyBFeHBvcnRzXFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9IChfX19DU1NfTE9BREVSX0VYUE9SVF9fXyk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUwyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk5dWIyUmxYMjF2WkhWc1pYTXZjMkZ6Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpNHZMaTR2WTI5dGNHOXVaVzUwY3k5TWFXSnlZWEo1VFdWdWRTNXpZM056TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPMEZCUVVFN1FVRkRPRWc3UVVGRGFrSTdRVUZETjBjc09FSkJRVGhDTEhWSFFVRXlRaXhEUVVGRExHZElRVUZ4UXp0QlFVTXZSanRCUVVOQkxEQkZRVUV3UlN4cFFrRkJhVUlzYTBKQlFXdENMSGRDUVVGM1FpdzBRa0ZCTkVJc1IwRkJSeXcwUkVGQk5FUXNhMEpCUVd0Q0xIZENRVUYzUWl4blFrRkJaMElzYTBKQlFXdENMRWRCUVVjc2JVVkJRVzFGTEd0Q1FVRnJRaXhIUVVGSExEaEVRVUU0UkN3NFFrRkJPRUlzTmtKQlFUWkNMSGRDUVVGM1FpeEhRVUZITERCRFFVRXdReXgxUWtGQmRVSXNjVUpCUVhGQ0xFZEJRVWNzZVVSQlFYbEVMR3RDUVVGclFpd3lRa0ZCTWtJc1IwRkJSeXh0UlVGQmJVVXNPRUpCUVRoQ0xIbENRVUY1UWl4SFFVRkhMSGxGUVVGNVJTdzRRa0ZCT0VJc1IwRkJSeXh0UmtGQmJVWXNaMEpCUVdkQ0xHOUNRVUZ2UWl4dFFrRkJiVUlzYzBKQlFYTkNMRWRCUVVjc1QwRkJUeXh0UzBGQmJVc3NWVUZCVlN4VlFVRlZMRmRCUVZjc1YwRkJWeXhMUVVGTExFdEJRVXNzVlVGQlZTeFhRVUZYTEZWQlFWVXNWVUZCVlN4TFFVRkxMRXRCUVVzc1ZVRkJWU3hMUVVGTExFdEJRVXNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NTMEZCU3l4TFFVRkxMRmRCUVZjc1YwRkJWeXhMUVVGTExFdEJRVXNzVlVGQlZTeFhRVUZYTEV0QlFVc3NTMEZCU3l4WlFVRlpMRmxCUVZrc1MwRkJTeXhMUVVGTExGbEJRVmtzVFVGQlRTeExRVUZMTEZWQlFWVXNWVUZCVlN4WFFVRlhMRmxCUVZrc01rUkJRVEpFTEdsQ1FVRnBRaXgzUWtGQmQwSXNiVUpCUVcxQ0xHOUNRVUZ2UWl3d1FrRkJNRUlzT0VKQlFUaENMRzFEUVVGdFF5eHpRa0ZCYzBJc05FSkJRVFJDTEc5Q1FVRnZRaXh6UWtGQmMwSXNhMEpCUVd0Q0xITkhRVUZ6Unl4VFFVRlRMR0ZCUVdFc2IwTkJRVzlETERCSVFVRXdTQ3c0UWtGQk9FSXNVMEZCVXl4UFFVRlBMRXRCUVVzc2EwTkJRV3RETEhsQ1FVRjVRaXgxUWtGQmRVSXNTMEZCU3l4blEwRkJaME1zZDBKQlFYZENMSE5DUVVGelFpd3JRa0ZCSzBJc1QwRkJUeXh6UTBGQmMwTXNjVU5CUVhGRExEWkNRVUUyUWl4cFFrRkJhVUlzZFVOQlFYVkRMRk5CUVZNc2VVSkJRWGxDTEhOQ1FVRnpRaXd3UWtGQk1FSXNNa0pCUVRKQ0xEUkNRVUUwUWl4VFFVRlRMRTlCUVU4c1MwRkJTeXhIUVVGSExHdE1RVUZyVEN3MlFrRkJOa0lzTkZGQlFUUlJMRGhEUVVFNFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5d3dVVUZCTUZFc05FTkJRVFJETERCRFFVRXdReXd3UTBGQk1FTXNNRU5CUVRCRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc01FTkJRVEJETERSUlFVRTBVU3c0UTBGQk9FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNPRkZCUVRoUkxHZEVRVUZuUkN3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl4blVrRkJaMUlzYTBSQlFXdEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RTUVVGblVpeHJSRUZCYTBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc05GRkJRVFJSTERoRFFVRTRReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwVVVGQk5GRXNPRU5CUVRoRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUlJRVUUwVVN3NFEwRkJPRU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zT0ZGQlFUaFJMR2RFUVVGblJDdzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzBVVUZCTkZFc09FTkJRVGhETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETEdkU1FVRm5VaXhyUkVGQmEwUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMUpCUVdkU0xHdEVRVUZyUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4NVJrRkJlVVlzZFdSQlFYVmtMSEZDUVVGeFFqdEJRVU12ZFZvN1FVRkRRU3hwUlVGQlpTeDFRa0ZCZFVJc1JVRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5amIyMXdiMjVsYm5SekwweHBZbkpoY25sTlpXNTFMbk5qYzNNL056YzVPQ0pkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdkx5QkpiWEJ2Y25SelhHNXBiWEJ2Y25RZ1gxOWZRMU5UWDB4UFFVUkZVbDlCVUVsZlUwOVZVa05GVFVGUVgwbE5VRTlTVkY5Zlh5Qm1jbTl0SUZ3aUxpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDNKMWJuUnBiV1V2YzI5MWNtTmxUV0Z3Y3k1cWMxd2lPMXh1YVcxd2IzSjBJRjlmWDBOVFUxOU1UMEZFUlZKZlFWQkpYMGxOVUU5U1ZGOWZYeUJtY205dElGd2lMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwzSjFiblJwYldVdllYQnBMbXB6WENJN1hHNTJZWElnWDE5ZlExTlRYMHhQUVVSRlVsOUZXRkJQVWxSZlgxOGdQU0JmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlKVFZCUFVsUmZYMThvWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmVTA5VlVrTkZUVUZRWDBsTlVFOVNWRjlmWHlrN1hHNHZMeUJOYjJSMWJHVmNibDlmWDBOVFUxOU1UMEZFUlZKZlJWaFFUMUpVWDE5ZkxuQjFjMmdvVzIxdlpIVnNaUzVwWkN3Z1hDSXVaWGhqWVd4cFpISmhkeUF1YkdGNVpYSXRkV2xmWDJ4cFluSmhjbmtnZTF4Y2JpQWdiV0Z5WjJsdU9pQmhkWFJ2TzF4Y2JpQWdaR2x6Y0d4aGVUb2dabXhsZUR0Y1hHNGdJR0ZzYVdkdUxXbDBaVzF6T2lCalpXNTBaWEk3WEZ4dUlDQnFkWE4wYVdaNUxXTnZiblJsYm5RNklHTmxiblJsY2p0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xteGhlV1Z5TFhWcFgxOXNhV0p5WVhKNUlDNXNZWGxsY2kxMWFWOWZiR2xpY21GeWVTMW9aV0ZrWlhJZ2UxeGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNYRzRnSUdGc2FXZHVMV2wwWlcxek9pQmpaVzUwWlhJN1hGeHVJQ0IzYVdSMGFEb2dNVEF3SlR0Y1hHNGdJRzFoY21kcGJqb2dNbkI0SURBN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNXNZWGxsY2kxMWFWOWZiR2xpY21GeWVTQXViR0Y1WlhJdGRXbGZYMnhwWW5KaGNua3RhR1ZoWkdWeUlHSjFkSFJ2YmlCN1hGeHVJQ0J0WVhKbmFXNDZJREFnTW5CNE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXViR0Y1WlhJdGRXbGZYMnhwWW5KaGNua2dMbXhoZVdWeUxYVnBYMTlzYVdKeVlYSjVMV2hsWVdSbGNpQmhJSHRjWEc0Z0lHMWhjbWRwYmkxcGJteHBibVV0YzNSaGNuUTZJR0YxZEc4N1hGeHVJQ0J3WVdSa2FXNW5MV2x1YkdsdVpTMWxibVE2SURFNGNIZzdYRnh1SUNCM2FHbDBaUzF6Y0dGalpUb2dibTkzY21Gd08xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXViR0Y1WlhJdGRXbGZYMnhwWW5KaGNua3RiV1Z6YzJGblpTQjdYRnh1SUNCd1lXUmthVzVuT2lBeE1IQjRJREl3Y0hnN1hGeHVJQ0J0WVhndGQybGtkR2c2SURJd01IQjRPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1Y0hWaWJHbHphQzFzYVdKeVlYSjVMWE4xWTJObGMzTWdMa1JwWVd4dloxOWZZMjl1ZEdWdWRDQjdYRnh1SUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG5CMVlteHBjMmd0YkdsaWNtRnllUzF6ZFdOalpYTnpMV05zYjNObExsUnZiMnhKWTI5dVgzUjVjR1ZmWW5WMGRHOXVJSHRjWEc0Z0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTXlNamhpWlRZN1hGeHVJQ0JoYkdsbmJpMXpaV3htT2lCbWJHVjRMV1Z1WkR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xuQjFZbXhwYzJndGJHbGljbUZ5ZVMxemRXTmpaWE56TFdOc2IzTmxMbFJ2YjJ4SlkyOXVYM1I1Y0dWZlluVjBkRzl1T21odmRtVnlJSHRjWEc0Z0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTXhPVGN4WXpJN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNXdkV0pzYVhOb0xXeHBZbkpoY25rdGMzVmpZMlZ6Y3kxamJHOXpaUzVVYjI5c1NXTnZibDkwZVhCbFgySjFkSFJ2YmlBdVZHOXZiRWxqYjI1ZlgybGpiMjRnZTF4Y2JpQWdkMmxrZEdnNklHRjFkRzg3WEZ4dUlDQm1iMjUwTFhOcGVtVTZJREZ5WlcwN1hGeHVJQ0JqYjJ4dmNqb2dJMlptWm1abVpqdGNYRzRnSUhCaFpHUnBibWM2SURBZ01DNDFjbVZ0TzF4Y2JuMWNJaXdnWENKY0lpeDdYQ0oyWlhKemFXOXVYQ0k2TXl4Y0luTnZkWEpqWlhOY0lqcGJYQ0ozWldKd1lXTnJPaTh2TGk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDB4cFluSmhjbmxOWlc1MUxuTmpjM05jSWl4Y0luZGxZbkJoWTJzNkx5OHVMeTR1THk0dUx5NHVMMjV2WkdWZmJXOWtkV3hsY3k5dmNHVnVMV052Ykc5eUwyOXdaVzR0WTI5c2IzSXVjMk56YzF3aVhTeGNJbTVoYldWelhDSTZXMTBzWENKdFlYQndhVzVuYzF3aU9sd2lRVUZIUlR0RlFVTkZMRmxCUVVFN1JVRkRRU3hoUVVGQk8wVkJRMEVzYlVKQlFVRTdSVUZEUVN4MVFrRkJRVHRCUVVaS08wRkJTVWs3UlVGRFJTeGhRVUZCTzBWQlEwRXNiVUpCUVVFN1JVRkRRU3hYUVVGQk8wVkJRMEVzWVVGQlFUdEJRVVpPTzBGQlNVMDdSVUZGUlN4aFFVRkJPMEZCU0ZJN1FVRk5UVHRGUVVORkxIbENRVUZCTzBWQlJVRXNkMEpCUVVFN1JVRkRRU3h0UWtGQlFUdEJRVXhTTzBGQlZVVTdSVUZEUlN4clFrRkJRVHRGUVVOQkxHZENRVUZCTzBGQlVrbzdRVUZaU1R0RlFVTkZMR0ZCUVVFN1JVRkRRU3h6UWtGQlFUdEJRVlpPTzBGQllVazdSVUZEUlN4NVFrTnZTMDA3UlVSdVMwNHNiMEpCUVVFN1FVRllUanRCUVZsTk8wVkJRMFVzZVVKRGJVdEpPMEZFTjB0YU8wRkJXVTA3UlVGRFJTeFhRVUZCTzBWQlEwRXNaVUZCUVR0RlFVTkJMR05EZEVOWE8wVkVkVU5ZTEdsQ1FVRkJPMEZCVmxKY0lpeGNJbk52ZFhKalpYTkRiMjUwWlc1MFhDSTZXMXdpUUdsdGNHOXlkQ0JjWEZ3aWIzQmxiaTFqYjJ4dmNpOXZjR1Z1TFdOdmJHOXlYRnhjSWp0Y1hHNWNYRzR1WlhoallXeHBaSEpoZHlCN1hGeHVJQ0F1YkdGNVpYSXRkV2xmWDJ4cFluSmhjbmtnZTF4Y2JpQWdJQ0J0WVhKbmFXNDZJR0YxZEc4N1hGeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRnh1SUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJqWlc1MFpYSTdYRnh1SUNBZ0lHcDFjM1JwWm5rdFkyOXVkR1Z1ZERvZ1kyVnVkR1Z5TzF4Y2JseGNiaUFnSUNBdWJHRjVaWEl0ZFdsZlgyeHBZbkpoY25rdGFHVmhaR1Z5SUh0Y1hHNGdJQ0FnSUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ0lDQWdJR0ZzYVdkdUxXbDBaVzF6T2lCalpXNTBaWEk3WEZ4dUlDQWdJQ0FnZDJsa2RHZzZJREV3TUNVN1hGeHVJQ0FnSUNBZ2JXRnlaMmx1T2lBeWNIZ2dNRHRjWEc1Y1hHNGdJQ0FnSUNCaWRYUjBiMjRnZTF4Y2JpQWdJQ0FnSUNBZ0x5OGdNbkI0SUdaeWIyMGdkR2hsSUd4bFpuUWdkRzhnWVdOamIzVnVkQ0JtYjNJZ1ptOWpkWE1nWW05eVpHVnlJRzltSUd4bFpuUXRiVzl6ZENCaWRYUjBiMjVjWEc0Z0lDQWdJQ0FnSUcxaGNtZHBiam9nTUNBeWNIZzdYRnh1SUNBZ0lDQWdmVnhjYmx4Y2JpQWdJQ0FnSUdFZ2UxeGNiaUFnSUNBZ0lDQWdiV0Z5WjJsdUxXbHViR2x1WlMxemRHRnlkRG9nWVhWMGJ6dGNYRzRnSUNBZ0lDQWdJQzh2SURFM2NIZ2dabTl5SUhOamNtOXNiR0poY2lBb2JtVmxaR1ZrSUdadmNpQnZkbVZ5YkdGNUlITmpjbTlzYkdKaGNuTWdiMjRnUW1sbklGTjFjajhwSUNzZ01YQjRJR1Y0ZEhKaFhGeHVJQ0FnSUNBZ0lDQndZV1JrYVc1bkxXbHViR2x1WlMxbGJtUTZJREU0Y0hnN1hGeHVJQ0FnSUNBZ0lDQjNhR2wwWlMxemNHRmpaVG9nYm05M2NtRndPMXhjYmlBZ0lDQWdJSDFjWEc0Z0lDQWdmVnhjYmlBZ2ZWeGNibHhjYmlBZ0xteGhlV1Z5TFhWcFgxOXNhV0p5WVhKNUxXMWxjM05oWjJVZ2UxeGNiaUFnSUNCd1lXUmthVzVuT2lBeE1IQjRJREl3Y0hnN1hGeHVJQ0FnSUcxaGVDMTNhV1IwYURvZ01qQXdjSGc3WEZ4dUlDQjlYRnh1WEZ4dUlDQXVjSFZpYkdsemFDMXNhV0p5WVhKNUxYTjFZMk5sYzNNZ2UxeGNiaUFnSUNBdVJHbGhiRzluWDE5amIyNTBaVzUwSUh0Y1hHNGdJQ0FnSUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ0lDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQmpiMngxYlc0N1hGeHVJQ0FnSUgxY1hHNWNYRzRnSUNBZ0ppMWpiRzl6WlM1VWIyOXNTV052Ymw5MGVYQmxYMkoxZEhSdmJpQjdYRnh1SUNBZ0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dKRzlqTFdKc2RXVXROanRjWEc0Z0lDQWdJQ0JoYkdsbmJpMXpaV3htT2lCbWJHVjRMV1Z1WkR0Y1hHNGdJQ0FnSUNBbU9taHZkbVZ5SUh0Y1hHNGdJQ0FnSUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklDUnZZeTFpYkhWbExUZzdYRnh1SUNBZ0lDQWdmVnhjYmlBZ0lDQWdJQzVVYjI5c1NXTnZibDlmYVdOdmJpQjdYRnh1SUNBZ0lDQWdJQ0IzYVdSMGFEb2dZWFYwYnp0Y1hHNGdJQ0FnSUNBZ0lHWnZiblF0YzJsNlpUb2dNWEpsYlR0Y1hHNGdJQ0FnSUNBZ0lHTnZiRzl5T2lBa2IyTXRkMmhwZEdVN1hGeHVJQ0FnSUNBZ0lDQndZV1JrYVc1bk9pQXdJREF1TlhKbGJUdGNYRzRnSUNBZ0lDQjlYRnh1SUNBZ0lIMWNYRzRnSUgxY1hHNTlYRnh1WENJc1hDSXZMMXhjYmk4dlhGeHVMeThnSVBDZGw1WWc4SjJYb2lEd25aZWZJUENkbDZJZzhKMlhwVnhjYmk4dklDQjJJREV1T1M0eFhGeHVMeTljWEc0dkx5QWc0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQlhGeHVYRnh1WEZ4dUx5OGdJRWRsYm1WeVlXeGNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFhkb2FYUmxPaUFnSUNBZ0lDQWdJQ05tWm1abVptWTdYRnh1Skc5akxXSnNZV05yT2lBZ0lDQWdJQ0FnSUNNd01EQXdNREE3WEZ4dVhGeHVYRnh1THk4Z0lFZHlZWGxjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXZHlZWGt0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaamhtT1daaExGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpqRm1NMlkxTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWlRsbFkyVm1MRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpaR1ZsTW1VMkxGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBalkyVmtOR1JoTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqWVdSaU5XSmtMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpPRFk0WlRrMkxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak5EazFNRFUzTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTXpRellUUXdMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpNakV5TlRJNVhGeHVLVHRjWEc1Y1hHNGtiMk10WjNKaGVTMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0TVRvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxUSTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzB6T2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE5Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVFU2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMwMk9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3ROem9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRnNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUZKbFpGeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10Y21Wa0xXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJabVpqVm1OU3hjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlptWlRObE15eGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyWm1ZemxqT1N4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJabVlUaGhPQ3hjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJMlptT0RjNE55eGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0kyWm1ObUkyWWl4Y1hHNGdJRnhjWENJMlhGeGNJam9nSTJaaE5USTFNaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJMll3TTJVelpTeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0kyVXdNekV6TVN4Y1hHNGdJRnhjWENJNVhGeGNJam9nSTJNNU1tRXlZVnhjYmlrN1hGeHVYRnh1Skc5akxYSmxaQzB3T2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRFNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE1qb2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVFE2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MXlaV1F0TlRvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMWEpsWkMwMk9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUYzZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxeVpXUXRPRG9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxYSmxaQzA1T2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1VHbHVhMXhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGNHbHVheTFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1abVl3WmpZc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObVptUmxaV0lzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05tWTJNeVpEY3NYRnh1SUNCY1hGd2lNMXhjWENJNklDTm1ZV0V5WXpFc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNObU56Z3pZV01zWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ05tTURZMU9UVXNYRnh1SUNCY1hGd2lObHhjWENJNklDTmxOalE1T0RBc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNOa05qTXpObU1zWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ05qTWpJMU5XTXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTmhOakZsTkdSY1hHNHBPMXhjYmx4Y2JpUnZZeTF3YVc1ckxUQTZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTB4T2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE1qb2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVE02SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkwME9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3ROVG9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRZNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MDNPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0T0RvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUazZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnUjNKaGNHVmNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFdkeVlYQmxMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyWTRaakJtWXl4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJZelpEbG1ZU3hjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMlZsWW1WbVlTeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0kyVTFPVGxtTnl4Y1hHNGdJRnhjWENJMFhGeGNJam9nSTJSaE56ZG1NaXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJMk5qTldSbE9DeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0kySmxOR0prWWl4Y1hHNGdJRnhjWENJM1hGeGNJam9nSTJGbE0yVmpPU3hjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJemxqTXpaaU5TeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6ZzJNbVU1WTF4Y2JpazdYRnh1WEZ4dUpHOWpMV2R5WVhCbExUQTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRFNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVEk2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUTTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRRNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVFU2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUWTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRjNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVGc2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUazZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUZacGIyeGxkRnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGRtbHZiR1YwTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMll6WmpCbVppeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyVTFaR0ptWml4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJRd1ltWm1aaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMkl4T1RkbVl5eGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0l6azNOelZtWVN4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXpnME5XVm1OeXhjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJemM1TlRCbU1peGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6Y3dORGhsT0N4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpZM05ERmtPU3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJelZtTTJSak5GeGNiaWs3WEZ4dVhGeHVKRzlqTFhacGIyeGxkQzB3T2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVEU2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXRNam9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUUTZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE5Ub2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMwMk9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRjNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0T0RvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzA1T2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdTVzVrYVdkdlhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFwYm1ScFoyOHRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpXUm1NbVptTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWkdKbE5HWm1MRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpZbUZqT0dabUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBak9URmhOMlptTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqTnpRNFptWmpMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpOV00zWTJaaExGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBak5HTTJaV1kxTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqTkRJMk0yVmlMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpNMkkxWW1SaUxGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak16WTBabU0zWEZ4dUtUdGNYRzVjWEc0a2IyTXRhVzVrYVdkdkxUQTZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE1Ub2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkweU9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRNNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0TkRvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTAxT2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVFk2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHROem9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MDRPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUazZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCQ2JIVmxYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxaWJIVmxMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyVTNaalZtWml4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJRd1pXSm1aaXhjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMkUxWkRobVppeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0l6YzBZekJtWXl4Y1hHNGdJRnhjWENJMFhGeGNJam9nSXpSa1lXSm1OeXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJek16T1dGbU1DeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0l6SXlPR0psTml4Y1hHNGdJRnhjWENJM1hGeGNJam9nSXpGak4yVmtOaXhjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJekU1TnpGak1peGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6RTROalJoWWx4Y2JpazdYRnh1WEZ4dUpHOWpMV0pzZFdVdE1Eb2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVEU2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMweU9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXRNem9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRRNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10WW14MVpTMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0TmpvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUYzZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzA0T2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE9Ub2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JEZVdGdVhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFqZVdGdUxXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJVelptRm1ZeXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMk0xWmpabVlTeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0l6azVaVGxtTWl4Y1hHNGdJRnhjWENJelhGeGNJam9nSXpZMlpEbGxPQ3hjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJek5pWXpsa1lpeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0l6SXlZamhqWml4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpFMVlXRmlaaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJekV3T1RoaFpDeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6QmpPRFU1T1N4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpCaU56STROVnhjYmlrN1hGeHVYRnh1Skc5akxXTjVZVzR0TURvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxURTZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTB5T2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE16b2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVFE2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkwMU9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHROam9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRjNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0T1RvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQlVaV0ZzWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MTBaV0ZzTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlUyWm1ObU5TeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyTXpabUZsT0N4Y1hHNGdJRnhjWENJeVhGeGNJam9nSXprMlpqSmtOeXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJell6WlRaaVpTeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0l6TTRaRGxoT1N4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXpJd1l6azVOeXhjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJekV5WWpnNE5peGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6QmpZVFkzT0N4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpBNU9USTJPQ3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJekE0TjJZMVlseGNiaWs3WEZ4dVhGeHVKRzlqTFhSbFlXd3RNRG9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRFNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0TXpvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUUTZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzAxT2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE5qb2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVGM2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMwNE9pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3RPVG9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCSGNtVmxibHhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdFozSmxaVzR0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaV0ptWW1WbExGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpETm1PV1E0TEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWWpKbU1tSmlMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpPR05sT1RsaExGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBak5qbGtZamRqTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqTlRGalpqWTJMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpOREJqTURVM0xGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak16ZGlNalJrTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTW1ZNVpUUTBMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpNbUk0WVRObFhGeHVLVHRjWEc1Y1hHNGtiMk10WjNKbFpXNHRNRG9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE1Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TWpvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHRNem9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE5Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TlRvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHROam9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE56b2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0T0RvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHRPVG9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1RHbHRaVnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGJHbHRaUzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1OR1pqWlRNc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObE9XWmhZemdzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05rT0dZMVlUSXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTmpNR1ZpTnpVc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNOaE9XVXpOR0lzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ001TkdRNE1tUXNYRnh1SUNCY1hGd2lObHhjWENJNklDTTRNbU01TVdVc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNM05HSTRNVFlzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ00yTm1FNE1HWXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTTFZemswTUdSY1hHNHBPMXhjYmx4Y2JpUnZZeTFzYVcxbExUQTZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzB4T2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE1qb2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVE02SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMwME9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXROVG9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRZNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0T0RvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUazZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnV1dWc2JHOTNYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxNVpXeHNiM2N0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpabVptT1dSaUxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalptWm1NMkptTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWm1abFl6azVMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpabVpsTURZMkxGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBalptWmtORE5pTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqWm1Oak5ERTVMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpabUZpTURBMUxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBalpqVTVaakF3TEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqWmpBNFl6QXdMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpaVFkzTnpBd1hGeHVLVHRjWEc1Y1hHNGtiMk10ZVdWc2JHOTNMVEE2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3RNVG9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MHlPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUTTZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE5Eb2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkwMU9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRZNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0TnpvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTA0T2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVGs2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQlBjbUZ1WjJWY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMVzl5WVc1blpTMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObVptWTBaVFlzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05tWm1VNFkyTXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTm1abVE0WVRnc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNObVptTXdOemdzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ05tWm1FNU5HUXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTm1aamt5TW1Jc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNObVpEZGxNVFFzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ05tTnpZM01EY3NYRnh1SUNCY1hGd2lPRnhjWENJNklDTmxPRFU1TUdNc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNOa09UUTRNR1pjWEc0cE8xeGNibHhjYmlSdll5MXZjbUZ1WjJVdE1Eb2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMweE9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRJNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0TXpvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzAwT2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVFU2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXROam9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUZzZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE9Ub2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUVOdmJHOXlJR3hwYzNSY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV052Ykc5eUxYTndaV04wY25WdE9pQWdJRGs3WEZ4dVhGeHVKRzlqTFdOdmJHOXlMV3hwYzNRNklDaGNYRzRnSUNSdll5MW5jbUY1TFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbWR5WVhsY1hGd2lMRnhjYmlBZ0pHOWpMWEpsWkMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0p5WldSY1hGd2lMRnhjYmlBZ0pHOWpMWEJwYm1zdGJHbHpkRG9nSUNBZ0lDQmNYRndpY0dsdWExeGNYQ0lzWEZ4dUlDQWtiMk10WjNKaGNHVXRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aVozSmhjR1ZjWEZ3aUxGeGNiaUFnSkc5akxYWnBiMnhsZEMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0oyYVc5c1pYUmNYRndpTEZ4Y2JpQWdKRzlqTFdsdVpHbG5ieTFzYVhOME9pQWdJQ0FnSUZ4Y1hDSnBibVJwWjI5Y1hGd2lMRnhjYmlBZ0pHOWpMV0pzZFdVdGJHbHpkRG9nSUNBZ0lDQmNYRndpWW14MVpWeGNYQ0lzWEZ4dUlDQWtiMk10WTNsaGJpMXNhWE4wT2lBZ0lDQWdJRnhjWENKamVXRnVYRnhjSWl4Y1hHNGdJQ1J2WXkxMFpXRnNMV3hwYzNRNklDQWdJQ0FnWEZ4Y0luUmxZV3hjWEZ3aUxGeGNiaUFnSkc5akxXZHlaV1Z1TFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbWR5WldWdVhGeGNJaXhjWEc0Z0lDUnZZeTFzYVcxbExXeHBjM1E2SUNBZ0lDQWdYRnhjSW14cGJXVmNYRndpTEZ4Y2JpQWdKRzlqTFhsbGJHeHZkeTFzYVhOME9pQWdJQ0FnSUZ4Y1hDSjVaV3hzYjNkY1hGd2lMRnhjYmlBZ0pHOWpMVzl5WVc1blpTMXNhWE4wT2lBZ0lDQWdJRnhjWENKdmNtRnVaMlZjWEZ3aVhGeHVLVHRjWEc1Y0lsMHNYQ0p6YjNWeVkyVlNiMjkwWENJNlhDSmNJbjFkS1R0Y2JpOHZJRVY0Y0c5eWRITmNibVY0Y0c5eWRDQmtaV1poZFd4MElGOWZYME5UVTE5TVQwRkVSVkpmUlZoUVQxSlVYMTlmTzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5TWVudS5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0xpYnJhcnlNZW51SXRlbXMuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0xpYnJhcnlNZW51SXRlbXMuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8vIEltcG9ydHNcXG5cXG5cXG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpKChfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQoKSkpO1xcbi8vIE1vZHVsZVxcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXFxcIi5leGNhbGlkcmF3IC5saWJyYXJ5LW1lbnUtaXRlbXMtY29udGFpbmVyIC5saWJyYXJ5LWFjdGlvbnMge1xcXFxuICBkaXNwbGF5OiBmbGV4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxpYnJhcnktbWVudS1pdGVtcy1jb250YWluZXIgLmxpYnJhcnktYWN0aW9ucyBidXR0b24gLmxpYnJhcnktYWN0aW9ucy1jb3VudGVyIHtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICByaWdodDogMnB4O1xcXFxuICBib3R0b206IDJweDtcXFxcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcXFxuICB3aWR0aDogMWVtO1xcXFxuICBoZWlnaHQ6IDFlbTtcXFxcbiAgcGFkZGluZzogMXB4O1xcXFxuICBmb250LXNpemU6IDAuN3JlbTtcXFxcbiAgYmFja2dyb3VuZDogI2ZmZjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5saWJyYXJ5LW1lbnUtaXRlbXMtY29udGFpbmVyIC5saWJyYXJ5LWFjdGlvbnMtLXJlbW92ZSB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmMDNlM2U7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS1tZW51LWl0ZW1zLWNvbnRhaW5lciAubGlicmFyeS1hY3Rpb25zLS1yZW1vdmU6aG92ZXIge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTAzMTMxO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxpYnJhcnktbWVudS1pdGVtcy1jb250YWluZXIgLmxpYnJhcnktYWN0aW9ucy0tcmVtb3ZlOmFjdGl2ZSB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6ICNjOTJhMmE7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS1tZW51LWl0ZW1zLWNvbnRhaW5lciAubGlicmFyeS1hY3Rpb25zLS1yZW1vdmUgc3ZnIHtcXFxcbiAgY29sb3I6ICNmZmZmZmY7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS1tZW51LWl0ZW1zLWNvbnRhaW5lciAubGlicmFyeS1hY3Rpb25zLS1yZW1vdmUgLmxpYnJhcnktYWN0aW9ucy1jb3VudGVyIHtcXFxcbiAgY29sb3I6ICNmMDNlM2U7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS1tZW51LWl0ZW1zLWNvbnRhaW5lciAubGlicmFyeS1hY3Rpb25zLS1leHBvcnQge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTRkODJkO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxpYnJhcnktbWVudS1pdGVtcy1jb250YWluZXIgLmxpYnJhcnktYWN0aW9ucy0tZXhwb3J0OmhvdmVyIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc0YjgxNjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5saWJyYXJ5LW1lbnUtaXRlbXMtY29udGFpbmVyIC5saWJyYXJ5LWFjdGlvbnMtLWV4cG9ydDphY3RpdmUge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjZhODBmO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxpYnJhcnktbWVudS1pdGVtcy1jb250YWluZXIgLmxpYnJhcnktYWN0aW9ucy0tZXhwb3J0IHN2ZyB7XFxcXG4gIGNvbG9yOiAjZmZmZmZmO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxpYnJhcnktbWVudS1pdGVtcy1jb250YWluZXIgLmxpYnJhcnktYWN0aW9ucy0tZXhwb3J0IC5saWJyYXJ5LWFjdGlvbnMtY291bnRlciB7XFxcXG4gIGNvbG9yOiAjOTRkODJkO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxpYnJhcnktbWVudS1pdGVtcy1jb250YWluZXIgLmxpYnJhcnktYWN0aW9ucy0tcHVibGlzaCB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6ICMxNWFhYmY7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS1tZW51LWl0ZW1zLWNvbnRhaW5lciAubGlicmFyeS1hY3Rpb25zLS1wdWJsaXNoOmhvdmVyIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEwOThhZDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5saWJyYXJ5LW1lbnUtaXRlbXMtY29udGFpbmVyIC5saWJyYXJ5LWFjdGlvbnMtLXB1Ymxpc2g6YWN0aXZlIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBiNzI4NTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5saWJyYXJ5LW1lbnUtaXRlbXMtY29udGFpbmVyIC5saWJyYXJ5LWFjdGlvbnMtLXB1Ymxpc2ggc3ZnIHtcXFxcbiAgY29sb3I6ICNmZmZmZmY7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS1tZW51LWl0ZW1zLWNvbnRhaW5lciAubGlicmFyeS1hY3Rpb25zLS1wdWJsaXNoIGxhYmVsIHtcXFxcbiAgbWFyZ2luLWxlZnQ6IC0wLjJlbTtcXFxcbiAgbWFyZ2luLXJpZ2h0OiAxLjFlbTtcXFxcbiAgY29sb3I6ICNmZmZmZmY7XFxcXG4gIGZvbnQtc2l6ZTogMC44NmVtO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxpYnJhcnktbWVudS1pdGVtcy1jb250YWluZXIgLmxpYnJhcnktYWN0aW9ucy0tcHVibGlzaCAubGlicmFyeS1hY3Rpb25zLWNvdW50ZXIge1xcXFxuICBjb2xvcjogIzE1YWFiZjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5saWJyYXJ5LW1lbnUtaXRlbXMtY29udGFpbmVyIC5saWJyYXJ5LWFjdGlvbnMtLWxvYWQge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjI4YmU2O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxpYnJhcnktbWVudS1pdGVtcy1jb250YWluZXIgLmxpYnJhcnktYWN0aW9ucy0tbG9hZDpob3ZlciB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6ICMxYzdlZDY7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS1tZW51LWl0ZW1zLWNvbnRhaW5lciAubGlicmFyeS1hY3Rpb25zLS1sb2FkOmFjdGl2ZSB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODY0YWI7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS1tZW51LWl0ZW1zLWNvbnRhaW5lciAubGlicmFyeS1hY3Rpb25zLS1sb2FkIHN2ZyB7XFxcXG4gIGNvbG9yOiAjZmZmZmZmO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxpYnJhcnktbWVudS1pdGVtcy1jb250YWluZXJfX2l0ZW1zIHtcXFxcbiAgbWF4LWhlaWdodDogNTB2aDtcXFxcbiAgb3ZlcmZsb3c6IGF1dG87XFxcXG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5saWJyYXJ5LW1lbnUtaXRlbXMtY29udGFpbmVyIC5zZXBhcmF0b3Ige1xcXFxuICBmb250LXdlaWdodDogNTAwO1xcXFxuICBmb250LXNpemU6IDAuOXJlbTtcXFxcbiAgbWFyZ2luOiAwLjZlbSAwLjJlbTtcXFxcbiAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxcXG59XFxcIiwgXFxcIlxcXCIse1xcXCJ2ZXJzaW9uXFxcIjozLFxcXCJzb3VyY2VzXFxcIjpbXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvTGlicmFyeU1lbnVJdGVtcy5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQUlJO0VBQ0UsYUFBQTtBQUhOO0FBS007RUFDRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0FBSFI7QUFNTTtFQUNFLHlCQzhDRztBRGxEWDtBQUtRO0VBQ0UseUJDNkNDO0FEaERYO0FBS1E7RUFDRSx5QkMyQ0M7QUQ5Q1g7QUFLUTtFQUNFLGNDakJTO0FEY25CO0FBS1E7RUFDRSxjQ21DQztBRHRDWDtBQU9NO0VBQ0UseUJDd1JJO0FEN1JaO0FBT1E7RUFDRSx5QkN1UkU7QUQ1Ulo7QUFRUTtFQUNFLHlCQ29SRTtBRDFSWjtBQVFRO0VBQ0UsY0NuQ1M7QUQ2Qm5CO0FBUVE7RUFDRSxjQzJRRTtBRGpSWjtBQVVNO0VBQ0UseUJDbUxJO0FEM0xaO0FBU1E7RUFDRSx5QkNrTEU7QUR6TFo7QUFTUTtFQUNFLHlCQ2lMRTtBRHhMWjtBQVNRO0VBQ0UsY0NuRFM7QUQ0Q25CO0FBU1E7RUFDRSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0N4RFM7RUR5RFQsaUJBQUE7QUFQVjtBQVNRO0VBQ0UsY0NrS0U7QUR6S1o7QUFXTTtFQUNFLHlCQ2lJSTtBRDFJWjtBQVVRO0VBQ0UseUJDZ0lFO0FEeElaO0FBVVE7RUFDRSx5QkMrSEU7QUR2SVo7QUFVUTtFQUNFLGNDekVTO0FEaUVuQjtBQVlJO0VBQ0UsZ0JBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7QUFWTjtBQWFJO0VBQ0UsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0NBQUE7QUFYTlxcXCIsXFxcInNvdXJjZXNDb250ZW50XFxcIjpbXFxcIkBpbXBvcnQgXFxcXFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3JcXFxcXFxcIjtcXFxcblxcXFxuLmV4Y2FsaWRyYXcge1xcXFxuICAubGlicmFyeS1tZW51LWl0ZW1zLWNvbnRhaW5lciB7XFxcXG4gICAgLmxpYnJhcnktYWN0aW9ucyB7XFxcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcXFxuXFxcXG4gICAgICBidXR0b24gLmxpYnJhcnktYWN0aW9ucy1jb3VudGVyIHtcXFxcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICAgICAgICByaWdodDogMnB4O1xcXFxuICAgICAgICBib3R0b206IDJweDtcXFxcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xcXFxuICAgICAgICB3aWR0aDogMWVtO1xcXFxuICAgICAgICBoZWlnaHQ6IDFlbTtcXFxcbiAgICAgICAgcGFkZGluZzogMXB4O1xcXFxuICAgICAgICBmb250LXNpemU6IDAuN3JlbTtcXFxcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcXFxcbiAgICAgIH1cXFxcblxcXFxuICAgICAgJi0tcmVtb3ZlIHtcXFxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9jLXJlZC03O1xcXFxuICAgICAgICAmOmhvdmVyIHtcXFxcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2MtcmVkLTg7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgJjphY3RpdmUge1xcXFxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvYy1yZWQtOTtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBzdmcge1xcXFxuICAgICAgICAgIGNvbG9yOiAkb2Mtd2hpdGU7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgLmxpYnJhcnktYWN0aW9ucy1jb3VudGVyIHtcXFxcbiAgICAgICAgICBjb2xvcjogJG9jLXJlZC03O1xcXFxuICAgICAgICB9XFxcXG4gICAgICB9XFxcXG5cXFxcbiAgICAgICYtLWV4cG9ydCB7XFxcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvYy1saW1lLTU7XFxcXG5cXFxcbiAgICAgICAgJjpob3ZlciB7XFxcXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9jLWxpbWUtNztcXFxcbiAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgICY6YWN0aXZlIHtcXFxcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2MtbGltZS04O1xcXFxuICAgICAgICB9XFxcXG4gICAgICAgIHN2ZyB7XFxcXG4gICAgICAgICAgY29sb3I6ICRvYy13aGl0ZTtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICAubGlicmFyeS1hY3Rpb25zLWNvdW50ZXIge1xcXFxuICAgICAgICAgIGNvbG9yOiAkb2MtbGltZS01O1xcXFxuICAgICAgICB9XFxcXG4gICAgICB9XFxcXG5cXFxcbiAgICAgICYtLXB1Ymxpc2gge1xcXFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2MtY3lhbi02O1xcXFxuICAgICAgICAmOmhvdmVyIHtcXFxcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2MtY3lhbi03O1xcXFxuICAgICAgICB9XFxcXG4gICAgICAgICY6YWN0aXZlIHtcXFxcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2MtY3lhbi05O1xcXFxuICAgICAgICB9XFxcXG4gICAgICAgIHN2ZyB7XFxcXG4gICAgICAgICAgY29sb3I6ICRvYy13aGl0ZTtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBsYWJlbCB7XFxcXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjJlbTtcXFxcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMWVtO1xcXFxuICAgICAgICAgIGNvbG9yOiAkb2Mtd2hpdGU7XFxcXG4gICAgICAgICAgZm9udC1zaXplOiAwLjg2ZW07XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgLmxpYnJhcnktYWN0aW9ucy1jb3VudGVyIHtcXFxcbiAgICAgICAgICBjb2xvcjogJG9jLWN5YW4tNjtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgfVxcXFxuXFxcXG4gICAgICAmLS1sb2FkIHtcXFxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9jLWJsdWUtNjtcXFxcbiAgICAgICAgJjpob3ZlciB7XFxcXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9jLWJsdWUtNztcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICAmOmFjdGl2ZSB7XFxcXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9jLWJsdWUtOTtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBzdmcge1xcXFxuICAgICAgICAgIGNvbG9yOiAkb2Mtd2hpdGU7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgIH1cXFxcbiAgICB9XFxcXG4gICAgJl9faXRlbXMge1xcXFxuICAgICAgbWF4LWhlaWdodDogNTB2aDtcXFxcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xcXFxuICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xcXFxuICAgIH1cXFxcblxcXFxuICAgIC5zZXBhcmF0b3Ige1xcXFxuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcXFxcbiAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xcXFxuICAgICAgbWFyZ2luOiAwLjZlbSAwLjJlbTtcXFxcbiAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnktY29sb3IpO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxufVxcXFxuXFxcIixcXFwiLy9cXFxcbi8vXFxcXG4vLyAgXHVEODM1XHVEREQ2IFx1RDgzNVx1RERFMiBcdUQ4MzVcdUREREYgXHVEODM1XHVEREUyIFx1RDgzNVx1RERFNVxcXFxuLy8gIHYgMS45LjFcXFxcbi8vXFxcXG4vLyAgXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXFxcXG5cXFxcblxcXFxuLy8gIEdlbmVyYWxcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXdoaXRlOiAgICAgICAgICNmZmZmZmY7XFxcXG4kb2MtYmxhY2s6ICAgICAgICAgIzAwMDAwMDtcXFxcblxcXFxuXFxcXG4vLyAgR3JheVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JheS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjhmOWZhLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2YxZjNmNSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNlOWVjZWYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZGVlMmU2LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2NlZDRkYSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNhZGI1YmQsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjODY4ZTk2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzQ5NTA1NyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMzNDNhNDAsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMjEyNTI5XFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JheS0wOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTE6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0zOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTQ6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS02OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTc6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktODogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS05OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgUmVkXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1yZWQtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjVmNSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmUzZTMsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZjOWM5LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmYThhOCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZjg3ODcsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmY2YjZiLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZhNTI1MixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmMDNlM2UsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZTAzMTMxLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2M5MmEyYVxcXFxuKTtcXFxcblxcXFxuJG9jLXJlZC0wOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0xOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0yOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0zOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC00OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC01OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC02OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC03OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC04OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC05OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBQaW5rXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1waW5rLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmYwZjYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZkZWViLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZjYzJkNyxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmYWEyYzEsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZjc4M2FjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2YwNjU5NSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNlNjQ5ODAsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZDYzMzZjLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2MyMjU1YyxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNhNjFlNGRcXFxcbik7XFxcXG5cXFxcbiRvYy1waW5rLTA6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtcGluay0yOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTM6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtcGluay01OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTY6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtcGluay04OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTk6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBHcmFwZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JhcGUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y4ZjBmYyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmM2Q5ZmEsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZWViZWZhLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2U1OTlmNyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNkYTc3ZjIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjY2M1ZGU4LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2JlNGJkYixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNhZTNlYzksXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjOWMzNmI1LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzg2MmU5Y1xcXFxuKTtcXFxcblxcXFxuJG9jLWdyYXBlLTA6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0xOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTM6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS00OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTY6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS03OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtODogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTk6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgVmlvbGV0XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy12aW9sZXQtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2YzZjBmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNlNWRiZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZDBiZmZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2IxOTdmYyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM5Nzc1ZmEsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjODQ1ZWY3LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzc5NTBmMixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM3MDQ4ZTgsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjNjc0MWQ5LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzVmM2RjNFxcXFxuKTtcXFxcblxcXFxuJG9jLXZpb2xldC0wOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0xOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0yOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0zOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC00OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC01OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC02OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC03OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC04OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC05OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBJbmRpZ29cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWluZGlnby1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZWRmMmZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2RiZTRmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNiYWM4ZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjOTFhN2ZmLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzc0OGZmYyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM1YzdjZmEsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNGM2ZWY1LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzQyNjNlYixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMzYjViZGIsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMzY0ZmM3XFxcXG4pO1xcXFxuXFxcXG4kb2MtaW5kaWdvLTA6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTE6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTI6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTM6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTQ6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTU6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTY6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTc6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTg6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTk6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEJsdWVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWJsdWUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2U3ZjVmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkMGViZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYTVkOGZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzc0YzBmYyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM0ZGFiZjcsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMzM5YWYwLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzIyOGJlNixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMxYzdlZDYsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMTk3MWMyLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzE4NjRhYlxcXFxuKTtcXFxcblxcXFxuJG9jLWJsdWUtMDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0xOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTI6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS00OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTU6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS03OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTg6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtOTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEN5YW5cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWN5YW4tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2UzZmFmYyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNjNWY2ZmEsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjOTllOWYyLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzY2ZDllOCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICMzYmM5ZGIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMjJiOGNmLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzE1YWFiZixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMxMDk4YWQsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMGM4NTk5LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzBiNzI4NVxcXFxuKTtcXFxcblxcXFxuJG9jLWN5YW4tMDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0xOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTI6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi00OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTU6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi03OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTg6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tOTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFRlYWxcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXRlYWwtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2U2ZmNmNSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNjM2ZhZTgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjOTZmMmQ3LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzYzZTZiZSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICMzOGQ5YTksXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMjBjOTk3LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzEyYjg4NixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMwY2E2NzgsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMDk5MjY4LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzA4N2Y1YlxcXFxuKTtcXFxcblxcXFxuJG9jLXRlYWwtMDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0xOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTI6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC00OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTU6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC03OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTg6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtOTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEdyZWVuXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmVlbi1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZWJmYmVlLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2QzZjlkOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNiMmYyYmIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjOGNlOTlhLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzY5ZGI3YyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM1MWNmNjYsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNDBjMDU3LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzM3YjI0ZCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMyZjllNDQsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMmI4YTNlXFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JlZW4tMDogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTE6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0yOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMzogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTQ6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi01OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNjogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTc6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi04OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tOTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBMaW1lXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1saW1lLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmNGZjZTMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZTlmYWM4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2Q4ZjVhMixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNjMGViNzUsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjYTllMzRiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzk0ZDgyZCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM4MmM5MWUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNzRiODE2LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzY2YTgwZixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM1Yzk0MGRcXFxcbik7XFxcXG5cXFxcbiRvYy1saW1lLTA6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0yOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTM6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtbGltZS01OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTY6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtbGltZS04OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTk6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBZZWxsb3dcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXllbGxvdy1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmOWRiLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZjNiZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmVjOTksXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZlMDY2LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmZDQzYixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmY2M0MTksXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmFiMDA1LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Y1OWYwMCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNmMDhjMDAsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjZTY3NzAwXFxcXG4pO1xcXFxuXFxcXG4kb2MteWVsbG93LTA6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTE6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTI6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTM6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTQ6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTU6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTY6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTc6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTg6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTk6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIE9yYW5nZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2Mtb3JhbmdlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY0ZTYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZlOGNjLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmZDhhOCxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmMwNzgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmZhOTRkLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZmOTIyYixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmZDdlMTQsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjc2NzA3LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2U4NTkwYyxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNkOTQ4MGZcXFxcbik7XFxcXG5cXFxcbiRvYy1vcmFuZ2UtMDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtODogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtOTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQ29sb3IgbGlzdFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtY29sb3Itc3BlY3RydW06ICAgOTtcXFxcblxcXFxuJG9jLWNvbG9yLWxpc3Q6IChcXFxcbiAgJG9jLWdyYXktbGlzdDogICAgICBcXFxcXFxcImdyYXlcXFxcXFxcIixcXFxcbiAgJG9jLXJlZC1saXN0OiAgICAgIFxcXFxcXFwicmVkXFxcXFxcXCIsXFxcXG4gICRvYy1waW5rLWxpc3Q6ICAgICAgXFxcXFxcXCJwaW5rXFxcXFxcXCIsXFxcXG4gICRvYy1ncmFwZS1saXN0OiAgICAgIFxcXFxcXFwiZ3JhcGVcXFxcXFxcIixcXFxcbiAgJG9jLXZpb2xldC1saXN0OiAgICAgIFxcXFxcXFwidmlvbGV0XFxcXFxcXCIsXFxcXG4gICRvYy1pbmRpZ28tbGlzdDogICAgICBcXFxcXFxcImluZGlnb1xcXFxcXFwiLFxcXFxuICAkb2MtYmx1ZS1saXN0OiAgICAgIFxcXFxcXFwiYmx1ZVxcXFxcXFwiLFxcXFxuICAkb2MtY3lhbi1saXN0OiAgICAgIFxcXFxcXFwiY3lhblxcXFxcXFwiLFxcXFxuICAkb2MtdGVhbC1saXN0OiAgICAgIFxcXFxcXFwidGVhbFxcXFxcXFwiLFxcXFxuICAkb2MtZ3JlZW4tbGlzdDogICAgICBcXFxcXFxcImdyZWVuXFxcXFxcXCIsXFxcXG4gICRvYy1saW1lLWxpc3Q6ICAgICAgXFxcXFxcXCJsaW1lXFxcXFxcXCIsXFxcXG4gICRvYy15ZWxsb3ctbGlzdDogICAgICBcXFxcXFxcInllbGxvd1xcXFxcXFwiLFxcXFxuICAkb2Mtb3JhbmdlLWxpc3Q6ICAgICAgXFxcXFxcXCJvcmFuZ2VcXFxcXFxcIlxcXFxuKTtcXFxcblxcXCJdLFxcXCJzb3VyY2VSb290XFxcIjpcXFwiXFxcIn1dKTtcXG4vLyBFeHBvcnRzXFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9IChfX19DU1NfTE9BREVSX0VYUE9SVF9fXyk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUwyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk5dWIyUmxYMjF2WkhWc1pYTXZjMkZ6Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpNHZMaTR2WTI5dGNHOXVaVzUwY3k5TWFXSnlZWEo1VFdWdWRVbDBaVzF6TG5OamMzTXVhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN1FVRkJRVHRCUVVNNFNEdEJRVU5xUWp0QlFVTTNSeXc0UWtGQk9FSXNkVWRCUVRKQ0xFTkJRVU1zWjBoQlFYRkRPMEZCUXk5R08wRkJRMEVzYzBkQlFYTkhMR3RDUVVGclFpeEhRVUZITERoR1FVRTRSaXgxUWtGQmRVSXNaVUZCWlN4blFrRkJaMElzZFVKQlFYVkNMR1ZCUVdVc1owSkJRV2RDTEdsQ1FVRnBRaXh6UWtGQmMwSXNjVUpCUVhGQ0xFZEJRVWNzYzBWQlFYTkZMRGhDUVVFNFFpeEhRVUZITERSRlFVRTBSU3c0UWtGQk9FSXNSMEZCUnl3MlJVRkJOa1VzT0VKQlFUaENMRWRCUVVjc01FVkJRVEJGTEcxQ1FVRnRRaXhIUVVGSExDdEdRVUVyUml4dFFrRkJiVUlzUjBGQlJ5eHpSVUZCYzBVc09FSkJRVGhDTEVkQlFVY3NORVZCUVRSRkxEaENRVUU0UWl4SFFVRkhMRFpGUVVFMlJTdzRRa0ZCT0VJc1IwRkJSeXd3UlVGQk1FVXNiVUpCUVcxQ0xFZEJRVWNzSzBaQlFTdEdMRzFDUVVGdFFpeEhRVUZITEhWRlFVRjFSU3c0UWtGQk9FSXNSMEZCUnl3MlJVRkJOa1VzT0VKQlFUaENMRWRCUVVjc09FVkJRVGhGTERoQ1FVRTRRaXhIUVVGSExESkZRVUV5UlN4dFFrRkJiVUlzUjBGQlJ5dzJSVUZCTmtVc2QwSkJRWGRDTEhkQ1FVRjNRaXh0UWtGQmJVSXNjMEpCUVhOQ0xFZEJRVWNzWjBkQlFXZEhMRzFDUVVGdFFpeEhRVUZITEc5RlFVRnZSU3c0UWtGQk9FSXNSMEZCUnl3d1JVRkJNRVVzT0VKQlFUaENMRWRCUVVjc01rVkJRVEpGTERoQ1FVRTRRaXhIUVVGSExIZEZRVUYzUlN4dFFrRkJiVUlzUjBGQlJ5eHZSRUZCYjBRc2NVSkJRWEZDTEcxQ1FVRnRRaXgxUWtGQmRVSXNSMEZCUnl4M1JFRkJkMFFzY1VKQlFYRkNMSE5DUVVGelFpeDNRa0ZCZDBJc2NVTkJRWEZETEVkQlFVY3NUMEZCVHl4M1MwRkJkMHNzVlVGQlZTeExRVUZMTEV0QlFVc3NWMEZCVnl4VlFVRlZMRlZCUVZVc1YwRkJWeXhWUVVGVkxGVkJRVlVzVlVGQlZTeFhRVUZYTEZkQlFWY3NTMEZCU3l4TFFVRkxMRmxCUVZrc1RVRkJUU3hMUVVGTExGbEJRVmtzVFVGQlRTeExRVUZMTEZsQlFWa3NUVUZCVFN4TFFVRkxMRmRCUVZjc1RVRkJUU3hMUVVGTExGZEJRVmNzVFVGQlRTeExRVUZMTEZsQlFWa3NUVUZCVFN4TFFVRkxMRmxCUVZrc1RVRkJUU3hMUVVGTExGbEJRVmtzVFVGQlRTeExRVUZMTEZkQlFWY3NUMEZCVHl4TFFVRkxMRmRCUVZjc1RVRkJUU3hMUVVGTExGbEJRVmtzVFVGQlRTeExRVUZMTEZsQlFWa3NUVUZCVFN4TFFVRkxMRmxCUVZrc1RVRkJUU3hMUVVGTExGZEJRVmNzVDBGQlR5eExRVUZMTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmxCUVZrc1MwRkJTeXhMUVVGTExGZEJRVmNzVFVGQlRTeExRVUZMTEZsQlFWa3NUVUZCVFN4TFFVRkxMRmxCUVZrc1RVRkJUU3hMUVVGTExGbEJRVmtzVFVGQlRTeExRVUZMTEZkQlFWY3NUMEZCVHl4TFFVRkxMRmRCUVZjc1ZVRkJWU3hYUVVGWExFdEJRVXNzUzBGQlN5eFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMREpFUVVFeVJDeHBRa0ZCYVVJc2JVTkJRVzFETEhkQ1FVRjNRaXh6UWtGQmMwSXNNa05CUVRKRExEWkNRVUUyUWl4eFFrRkJjVUlzYzBKQlFYTkNMRFpDUVVFMlFpeHhRa0ZCY1VJc2MwSkJRWE5DTEhWQ1FVRjFRaXcwUWtGQk5FSXNNa0pCUVRKQ0xGTkJRVk1zY1VKQlFYRkNMSE5EUVVGelF5eHRRa0ZCYlVJc2QwTkJRWGRETEZkQlFWY3NiMEpCUVc5Q0xIZERRVUYzUXl4WFFVRlhMR1ZCUVdVc05rSkJRVFpDTEZkQlFWY3NiME5CUVc5RExEWkNRVUUyUWl4WFFVRlhMRk5CUVZNc2NVSkJRWEZDTEhWRFFVRjFReXh4UWtGQmNVSXNlVU5CUVhsRExGZEJRVmNzYzBKQlFYTkNMSGxEUVVGNVF5eFhRVUZYTEdWQlFXVXNOa0pCUVRaQ0xGZEJRVmNzYjBOQlFXOURMRGhDUVVFNFFpeFhRVUZYTEZOQlFWTXNjMEpCUVhOQ0xIVkRRVUYxUXl4dFFrRkJiVUlzZVVOQlFYbERMRmRCUVZjc2IwSkJRVzlDTEhsRFFVRjVReXhYUVVGWExHVkJRV1VzTmtKQlFUWkNMRmRCUVZjc2FVSkJRV2xDTEdkRFFVRm5ReXhuUTBGQlowTXNOa0pCUVRaQ0xEaENRVUU0UWl4WFFVRlhMRzlEUVVGdlF5dzRRa0ZCT0VJc1YwRkJWeXhUUVVGVExHMUNRVUZ0UWl4MVEwRkJkVU1zYlVKQlFXMUNMSGxEUVVGNVF5eFhRVUZYTEc5Q1FVRnZRaXg1UTBGQmVVTXNWMEZCVnl4bFFVRmxMRFpDUVVFMlFpeFhRVUZYTEZOQlFWTXNUMEZCVHl4blFrRkJaMElzZVVKQlFYbENMSFZDUVVGMVFpd3lRa0ZCTWtJc1QwRkJUeXh2UWtGQmIwSXNlVUpCUVhsQ0xEQkNRVUV3UWl3MFFrRkJORUlzZVVOQlFYbERMRTlCUVU4c1MwRkJTeXhIUVVGSExHdE1RVUZyVEN3MlFrRkJOa0lzTkZGQlFUUlJMRGhEUVVFNFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5d3dVVUZCTUZFc05FTkJRVFJETERCRFFVRXdReXd3UTBGQk1FTXNNRU5CUVRCRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc01FTkJRVEJETERSUlFVRTBVU3c0UTBGQk9FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNPRkZCUVRoUkxHZEVRVUZuUkN3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl4blVrRkJaMUlzYTBSQlFXdEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RTUVVGblVpeHJSRUZCYTBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc05GRkJRVFJSTERoRFFVRTRReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwVVVGQk5GRXNPRU5CUVRoRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUlJRVUUwVVN3NFEwRkJPRU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zT0ZGQlFUaFJMR2RFUVVGblJDdzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzBVVUZCTkZFc09FTkJRVGhETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETEdkU1FVRm5VaXhyUkVGQmEwUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMUpCUVdkU0xHdEVRVUZyUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4NVJrRkJlVVlzZFdSQlFYVmtMSEZDUVVGeFFqdEJRVU4yZEdZN1FVRkRRU3hwUlVGQlpTeDFRa0ZCZFVJc1JVRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5amIyMXdiMjVsYm5SekwweHBZbkpoY25sTlpXNTFTWFJsYlhNdWMyTnpjejh5WWpoaElsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaTh2SUVsdGNHOXlkSE5jYm1sdGNHOXlkQ0JmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlUVDFWU1EwVk5RVkJmU1UxUVQxSlVYMTlmSUdaeWIyMGdYQ0l1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTlqYzNNdGJHOWhaR1Z5TDJScGMzUXZjblZ1ZEdsdFpTOXpiM1Z5WTJWTllYQnpMbXB6WENJN1hHNXBiWEJ2Y25RZ1gxOWZRMU5UWDB4UFFVUkZVbDlCVUVsZlNVMVFUMUpVWDE5ZklHWnliMjBnWENJdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2Y25WdWRHbHRaUzloY0drdWFuTmNJanRjYm5aaGNpQmZYMTlEVTFOZlRFOUJSRVZTWDBWWVVFOVNWRjlmWHlBOUlGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgwbE5VRTlTVkY5Zlh5aGZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOVRUMVZTUTBWTlFWQmZTVTFRVDFKVVgxOWZLVHRjYmk4dklFMXZaSFZzWlZ4dVgxOWZRMU5UWDB4UFFVUkZVbDlGV0ZCUFVsUmZYMTh1Y0hWemFDaGJiVzlrZFd4bExtbGtMQ0JjSWk1bGVHTmhiR2xrY21GM0lDNXNhV0p5WVhKNUxXMWxiblV0YVhSbGJYTXRZMjl1ZEdGcGJtVnlJQzVzYVdKeVlYSjVMV0ZqZEdsdmJuTWdlMXhjYmlBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG14cFluSmhjbmt0YldWdWRTMXBkR1Z0Y3kxamIyNTBZV2x1WlhJZ0xteHBZbkpoY25rdFlXTjBhVzl1Y3lCaWRYUjBiMjRnTG14cFluSmhjbmt0WVdOMGFXOXVjeTFqYjNWdWRHVnlJSHRjWEc0Z0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNYRzRnSUhKcFoyaDBPaUF5Y0hnN1hGeHVJQ0JpYjNSMGIyMDZJREp3ZUR0Y1hHNGdJR0p2Y21SbGNpMXlZV1JwZFhNNklEVXdKVHRjWEc0Z0lIZHBaSFJvT2lBeFpXMDdYRnh1SUNCb1pXbG5hSFE2SURGbGJUdGNYRzRnSUhCaFpHUnBibWM2SURGd2VEdGNYRzRnSUdadmJuUXRjMmw2WlRvZ01DNDNjbVZ0TzF4Y2JpQWdZbUZqYTJkeWIzVnVaRG9nSTJabVpqdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbXhwWW5KaGNua3RiV1Z1ZFMxcGRHVnRjeTFqYjI1MFlXbHVaWElnTG14cFluSmhjbmt0WVdOMGFXOXVjeTB0Y21WdGIzWmxJSHRjWEc0Z0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1NRE5sTTJVN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNXNhV0p5WVhKNUxXMWxiblV0YVhSbGJYTXRZMjl1ZEdGcGJtVnlJQzVzYVdKeVlYSjVMV0ZqZEdsdmJuTXRMWEpsYlc5MlpUcG9iM1psY2lCN1hGeHVJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUFqWlRBek1UTXhPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1YkdsaWNtRnllUzF0Wlc1MUxXbDBaVzF6TFdOdmJuUmhhVzVsY2lBdWJHbGljbUZ5ZVMxaFkzUnBiMjV6TFMxeVpXMXZkbVU2WVdOMGFYWmxJSHRjWEc0Z0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTmpPVEpoTW1FN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNXNhV0p5WVhKNUxXMWxiblV0YVhSbGJYTXRZMjl1ZEdGcGJtVnlJQzVzYVdKeVlYSjVMV0ZqZEdsdmJuTXRMWEpsYlc5MlpTQnpkbWNnZTF4Y2JpQWdZMjlzYjNJNklDTm1abVptWm1ZN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNXNhV0p5WVhKNUxXMWxiblV0YVhSbGJYTXRZMjl1ZEdGcGJtVnlJQzVzYVdKeVlYSjVMV0ZqZEdsdmJuTXRMWEpsYlc5MlpTQXViR2xpY21GeWVTMWhZM1JwYjI1ekxXTnZkVzUwWlhJZ2UxeGNiaUFnWTI5c2IzSTZJQ05tTURObE0yVTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVzYVdKeVlYSjVMVzFsYm5VdGFYUmxiWE10WTI5dWRHRnBibVZ5SUM1c2FXSnlZWEo1TFdGamRHbHZibk10TFdWNGNHOXlkQ0I3WEZ4dUlDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQWpPVFJrT0RKa08xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXViR2xpY21GeWVTMXRaVzUxTFdsMFpXMXpMV052Ym5SaGFXNWxjaUF1YkdsaWNtRnllUzFoWTNScGIyNXpMUzFsZUhCdmNuUTZhRzkyWlhJZ2UxeGNiaUFnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nSXpjMFlqZ3hOanRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG14cFluSmhjbmt0YldWdWRTMXBkR1Z0Y3kxamIyNTBZV2x1WlhJZ0xteHBZbkpoY25rdFlXTjBhVzl1Y3kwdFpYaHdiM0owT21GamRHbDJaU0I3WEZ4dUlDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQWpOalpoT0RCbU8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXViR2xpY21GeWVTMXRaVzUxTFdsMFpXMXpMV052Ym5SaGFXNWxjaUF1YkdsaWNtRnllUzFoWTNScGIyNXpMUzFsZUhCdmNuUWdjM1puSUh0Y1hHNGdJR052Ykc5eU9pQWpabVptWm1abU8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXViR2xpY21GeWVTMXRaVzUxTFdsMFpXMXpMV052Ym5SaGFXNWxjaUF1YkdsaWNtRnllUzFoWTNScGIyNXpMUzFsZUhCdmNuUWdMbXhwWW5KaGNua3RZV04wYVc5dWN5MWpiM1Z1ZEdWeUlIdGNYRzRnSUdOdmJHOXlPaUFqT1RSa09ESmtPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1YkdsaWNtRnllUzF0Wlc1MUxXbDBaVzF6TFdOdmJuUmhhVzVsY2lBdWJHbGljbUZ5ZVMxaFkzUnBiMjV6TFMxd2RXSnNhWE5vSUh0Y1hHNGdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ014TldGaFltWTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVzYVdKeVlYSjVMVzFsYm5VdGFYUmxiWE10WTI5dWRHRnBibVZ5SUM1c2FXSnlZWEo1TFdGamRHbHZibk10TFhCMVlteHBjMmc2YUc5MlpYSWdlMXhjYmlBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ0l6RXdPVGhoWkR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xteHBZbkpoY25rdGJXVnVkUzFwZEdWdGN5MWpiMjUwWVdsdVpYSWdMbXhwWW5KaGNua3RZV04wYVc5dWN5MHRjSFZpYkdsemFEcGhZM1JwZG1VZ2UxeGNiaUFnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nSXpCaU56STROVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG14cFluSmhjbmt0YldWdWRTMXBkR1Z0Y3kxamIyNTBZV2x1WlhJZ0xteHBZbkpoY25rdFlXTjBhVzl1Y3kwdGNIVmliR2x6YUNCemRtY2dlMXhjYmlBZ1kyOXNiM0k2SUNObVptWm1abVk3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1c2FXSnlZWEo1TFcxbGJuVXRhWFJsYlhNdFkyOXVkR0ZwYm1WeUlDNXNhV0p5WVhKNUxXRmpkR2x2Ym5NdExYQjFZbXhwYzJnZ2JHRmlaV3dnZTF4Y2JpQWdiV0Z5WjJsdUxXeGxablE2SUMwd0xqSmxiVHRjWEc0Z0lHMWhjbWRwYmkxeWFXZG9kRG9nTVM0eFpXMDdYRnh1SUNCamIyeHZjam9nSTJabVptWm1aanRjWEc0Z0lHWnZiblF0YzJsNlpUb2dNQzQ0Tm1WdE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXViR2xpY21GeWVTMXRaVzUxTFdsMFpXMXpMV052Ym5SaGFXNWxjaUF1YkdsaWNtRnllUzFoWTNScGIyNXpMUzF3ZFdKc2FYTm9JQzVzYVdKeVlYSjVMV0ZqZEdsdmJuTXRZMjkxYm5SbGNpQjdYRnh1SUNCamIyeHZjam9nSXpFMVlXRmlaanRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG14cFluSmhjbmt0YldWdWRTMXBkR1Z0Y3kxamIyNTBZV2x1WlhJZ0xteHBZbkpoY25rdFlXTjBhVzl1Y3kwdGJHOWhaQ0I3WEZ4dUlDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQWpNakk0WW1VMk8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXViR2xpY21GeWVTMXRaVzUxTFdsMFpXMXpMV052Ym5SaGFXNWxjaUF1YkdsaWNtRnllUzFoWTNScGIyNXpMUzFzYjJGa09taHZkbVZ5SUh0Y1hHNGdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ014WXpkbFpEWTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVzYVdKeVlYSjVMVzFsYm5VdGFYUmxiWE10WTI5dWRHRnBibVZ5SUM1c2FXSnlZWEo1TFdGamRHbHZibk10TFd4dllXUTZZV04wYVhabElIdGNYRzRnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNNeE9EWTBZV0k3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1c2FXSnlZWEo1TFcxbGJuVXRhWFJsYlhNdFkyOXVkR0ZwYm1WeUlDNXNhV0p5WVhKNUxXRmpkR2x2Ym5NdExXeHZZV1FnYzNabklIdGNYRzRnSUdOdmJHOXlPaUFqWm1abVptWm1PMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1YkdsaWNtRnllUzF0Wlc1MUxXbDBaVzF6TFdOdmJuUmhhVzVsY2w5ZmFYUmxiWE1nZTF4Y2JpQWdiV0Y0TFdobGFXZG9kRG9nTlRCMmFEdGNYRzRnSUc5MlpYSm1iRzkzT2lCaGRYUnZPMXhjYmlBZ2JXRnlaMmx1TFhSdmNEb2dNQzQxY21WdE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXViR2xpY21GeWVTMXRaVzUxTFdsMFpXMXpMV052Ym5SaGFXNWxjaUF1YzJWd1lYSmhkRzl5SUh0Y1hHNGdJR1p2Ym5RdGQyVnBaMmgwT2lBMU1EQTdYRnh1SUNCbWIyNTBMWE5wZW1VNklEQXVPWEpsYlR0Y1hHNGdJRzFoY21kcGJqb2dNQzQyWlcwZ01DNHlaVzA3WEZ4dUlDQmpiMnh2Y2pvZ2RtRnlLQzB0ZEdWNGRDMXdjbWx0WVhKNUxXTnZiRzl5S1R0Y1hHNTlYQ0lzSUZ3aVhDSXNlMXdpZG1WeWMybHZibHdpT2pNc1hDSnpiM1Z5WTJWelhDSTZXMXdpZDJWaWNHRmphem92THk0dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5TWFXSnlZWEo1VFdWdWRVbDBaVzF6TG5OamMzTmNJaXhjSW5kbFluQmhZMnM2THk4dUx5NHVMeTR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl2Y0dWdUxXTnZiRzl5TDI5d1pXNHRZMjlzYjNJdWMyTnpjMXdpWFN4Y0ltNWhiV1Z6WENJNlcxMHNYQ0p0WVhCd2FXNW5jMXdpT2x3aVFVRkpTVHRGUVVORkxHRkJRVUU3UVVGSVRqdEJRVXROTzBWQlEwVXNhMEpCUVVFN1JVRkRRU3hWUVVGQk8wVkJRMEVzVjBGQlFUdEZRVU5CTEd0Q1FVRkJPMFZCUTBFc1ZVRkJRVHRGUVVOQkxGZEJRVUU3UlVGRFFTeFpRVUZCTzBWQlEwRXNhVUpCUVVFN1JVRkRRU3huUWtGQlFUdEJRVWhTTzBGQlRVMDdSVUZEUlN4NVFrTTRRMGM3UVVSc1JGZzdRVUZMVVR0RlFVTkZMSGxDUXpaRFF6dEJSR2hFV0R0QlFVdFJPMFZCUTBVc2VVSkRNa05ETzBGRU9VTllPMEZCUzFFN1JVRkRSU3hqUTJwQ1V6dEJSR051UWp0QlFVdFJPMFZCUTBVc1kwTnRRME03UVVSMFExZzdRVUZQVFR0RlFVTkZMSGxDUTNkU1NUdEJSRGRTV2p0QlFVOVJPMFZCUTBVc2VVSkRkVkpGTzBGRU5WSmFPMEZCVVZFN1JVRkRSU3g1UWtOdlVrVTdRVVF4VWxvN1FVRlJVVHRGUVVORkxHTkRia05UTzBGRU5rSnVRanRCUVZGUk8wVkJRMFVzWTBNeVVVVTdRVVJxVWxvN1FVRlZUVHRGUVVORkxIbENRMjFNU1R0QlJETk1XanRCUVZOUk8wVkJRMFVzZVVKRGEweEZPMEZFZWt4YU8wRkJVMUU3UlVGRFJTeDVRa05wVEVVN1FVUjRURm83UVVGVFVUdEZRVU5GTEdORGJrUlRPMEZFTkVOdVFqdEJRVk5STzBWQlEwVXNiVUpCUVVFN1JVRkRRU3h0UWtGQlFUdEZRVU5CTEdORGVFUlRPMFZFZVVSVUxHbENRVUZCTzBGQlVGWTdRVUZUVVR0RlFVTkZMR05EYTB0Rk8wRkVla3RhTzBGQlYwMDdSVUZEUlN4NVFrTnBTVWs3UVVReFNWbzdRVUZWVVR0RlFVTkZMSGxDUTJkSlJUdEJSSGhKV2p0QlFWVlJPMFZCUTBVc2VVSkRLMGhGTzBGRWRrbGFPMEZCVlZFN1JVRkRSU3hqUTNwRlV6dEJSR2xGYmtJN1FVRlpTVHRGUVVORkxHZENRVUZCTzBWQlEwRXNZMEZCUVR0RlFVTkJMR3RDUVVGQk8wRkJWazQ3UVVGaFNUdEZRVU5GTEdkQ1FVRkJPMFZCUTBFc2FVSkJRVUU3UlVGRFFTeHRRa0ZCUVR0RlFVTkJMR2REUVVGQk8wRkJXRTVjSWl4Y0luTnZkWEpqWlhORGIyNTBaVzUwWENJNlcxd2lRR2x0Y0c5eWRDQmNYRndpYjNCbGJpMWpiMnh2Y2k5dmNHVnVMV052Ykc5eVhGeGNJanRjWEc1Y1hHNHVaWGhqWVd4cFpISmhkeUI3WEZ4dUlDQXViR2xpY21GeWVTMXRaVzUxTFdsMFpXMXpMV052Ym5SaGFXNWxjaUI3WEZ4dUlDQWdJQzVzYVdKeVlYSjVMV0ZqZEdsdmJuTWdlMXhjYmlBZ0lDQWdJR1JwYzNCc1lYazZJR1pzWlhnN1hGeHVYRnh1SUNBZ0lDQWdZblYwZEc5dUlDNXNhV0p5WVhKNUxXRmpkR2x2Ym5NdFkyOTFiblJsY2lCN1hGeHVJQ0FnSUNBZ0lDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRnh1SUNBZ0lDQWdJQ0J5YVdkb2REb2dNbkI0TzF4Y2JpQWdJQ0FnSUNBZ1ltOTBkRzl0T2lBeWNIZzdYRnh1SUNBZ0lDQWdJQ0JpYjNKa1pYSXRjbUZrYVhWek9pQTFNQ1U3WEZ4dUlDQWdJQ0FnSUNCM2FXUjBhRG9nTVdWdE8xeGNiaUFnSUNBZ0lDQWdhR1ZwWjJoME9pQXhaVzA3WEZ4dUlDQWdJQ0FnSUNCd1lXUmthVzVuT2lBeGNIZzdYRnh1SUNBZ0lDQWdJQ0JtYjI1MExYTnBlbVU2SURBdU4zSmxiVHRjWEc0Z0lDQWdJQ0FnSUdKaFkydG5jbTkxYm1RNklDTm1abVk3WEZ4dUlDQWdJQ0FnZlZ4Y2JseGNiaUFnSUNBZ0lDWXRMWEpsYlc5MlpTQjdYRnh1SUNBZ0lDQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUFrYjJNdGNtVmtMVGM3WEZ4dUlDQWdJQ0FnSUNBbU9taHZkbVZ5SUh0Y1hHNGdJQ0FnSUNBZ0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dKRzlqTFhKbFpDMDRPMXhjYmlBZ0lDQWdJQ0FnZlZ4Y2JpQWdJQ0FnSUNBZ0pqcGhZM1JwZG1VZ2UxeGNiaUFnSUNBZ0lDQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUFrYjJNdGNtVmtMVGs3WEZ4dUlDQWdJQ0FnSUNCOVhGeHVJQ0FnSUNBZ0lDQnpkbWNnZTF4Y2JpQWdJQ0FnSUNBZ0lDQmpiMnh2Y2pvZ0pHOWpMWGRvYVhSbE8xeGNiaUFnSUNBZ0lDQWdmVnhjYmlBZ0lDQWdJQ0FnTG14cFluSmhjbmt0WVdOMGFXOXVjeTFqYjNWdWRHVnlJSHRjWEc0Z0lDQWdJQ0FnSUNBZ1kyOXNiM0k2SUNSdll5MXlaV1F0Tnp0Y1hHNGdJQ0FnSUNBZ0lIMWNYRzRnSUNBZ0lDQjlYRnh1WEZ4dUlDQWdJQ0FnSmkwdFpYaHdiM0owSUh0Y1hHNGdJQ0FnSUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklDUnZZeTFzYVcxbExUVTdYRnh1WEZ4dUlDQWdJQ0FnSUNBbU9taHZkbVZ5SUh0Y1hHNGdJQ0FnSUNBZ0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dKRzlqTFd4cGJXVXROenRjWEc0Z0lDQWdJQ0FnSUgxY1hHNWNYRzRnSUNBZ0lDQWdJQ1k2WVdOMGFYWmxJSHRjWEc0Z0lDQWdJQ0FnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ0pHOWpMV3hwYldVdE9EdGNYRzRnSUNBZ0lDQWdJSDFjWEc0Z0lDQWdJQ0FnSUhOMlp5QjdYRnh1SUNBZ0lDQWdJQ0FnSUdOdmJHOXlPaUFrYjJNdGQyaHBkR1U3WEZ4dUlDQWdJQ0FnSUNCOVhGeHVJQ0FnSUNBZ0lDQXViR2xpY21GeWVTMWhZM1JwYjI1ekxXTnZkVzUwWlhJZ2UxeGNiaUFnSUNBZ0lDQWdJQ0JqYjJ4dmNqb2dKRzlqTFd4cGJXVXROVHRjWEc0Z0lDQWdJQ0FnSUgxY1hHNGdJQ0FnSUNCOVhGeHVYRnh1SUNBZ0lDQWdKaTB0Y0hWaWJHbHphQ0I3WEZ4dUlDQWdJQ0FnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lBa2IyTXRZM2xoYmkwMk8xeGNiaUFnSUNBZ0lDQWdKanBvYjNabGNpQjdYRnh1SUNBZ0lDQWdJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNSdll5MWplV0Z1TFRjN1hGeHVJQ0FnSUNBZ0lDQjlYRnh1SUNBZ0lDQWdJQ0FtT21GamRHbDJaU0I3WEZ4dUlDQWdJQ0FnSUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklDUnZZeTFqZVdGdUxUazdYRnh1SUNBZ0lDQWdJQ0I5WEZ4dUlDQWdJQ0FnSUNCemRtY2dlMXhjYmlBZ0lDQWdJQ0FnSUNCamIyeHZjam9nSkc5akxYZG9hWFJsTzF4Y2JpQWdJQ0FnSUNBZ2ZWeGNiaUFnSUNBZ0lDQWdiR0ZpWld3Z2UxeGNiaUFnSUNBZ0lDQWdJQ0J0WVhKbmFXNHRiR1ZtZERvZ0xUQXVNbVZ0TzF4Y2JpQWdJQ0FnSUNBZ0lDQnRZWEpuYVc0dGNtbG5hSFE2SURFdU1XVnRPMXhjYmlBZ0lDQWdJQ0FnSUNCamIyeHZjam9nSkc5akxYZG9hWFJsTzF4Y2JpQWdJQ0FnSUNBZ0lDQm1iMjUwTFhOcGVtVTZJREF1T0RabGJUdGNYRzRnSUNBZ0lDQWdJSDFjWEc0Z0lDQWdJQ0FnSUM1c2FXSnlZWEo1TFdGamRHbHZibk10WTI5MWJuUmxjaUI3WEZ4dUlDQWdJQ0FnSUNBZ0lHTnZiRzl5T2lBa2IyTXRZM2xoYmkwMk8xeGNiaUFnSUNBZ0lDQWdmVnhjYmlBZ0lDQWdJSDFjWEc1Y1hHNGdJQ0FnSUNBbUxTMXNiMkZrSUh0Y1hHNGdJQ0FnSUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklDUnZZeTFpYkhWbExUWTdYRnh1SUNBZ0lDQWdJQ0FtT21odmRtVnlJSHRjWEc0Z0lDQWdJQ0FnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ0pHOWpMV0pzZFdVdE56dGNYRzRnSUNBZ0lDQWdJSDFjWEc0Z0lDQWdJQ0FnSUNZNllXTjBhWFpsSUh0Y1hHNGdJQ0FnSUNBZ0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dKRzlqTFdKc2RXVXRPVHRjWEc0Z0lDQWdJQ0FnSUgxY1hHNGdJQ0FnSUNBZ0lITjJaeUI3WEZ4dUlDQWdJQ0FnSUNBZ0lHTnZiRzl5T2lBa2IyTXRkMmhwZEdVN1hGeHVJQ0FnSUNBZ0lDQjlYRnh1SUNBZ0lDQWdmVnhjYmlBZ0lDQjlYRnh1SUNBZ0lDWmZYMmwwWlcxeklIdGNYRzRnSUNBZ0lDQnRZWGd0YUdWcFoyaDBPaUExTUhab08xeGNiaUFnSUNBZ0lHOTJaWEptYkc5M09pQmhkWFJ2TzF4Y2JpQWdJQ0FnSUcxaGNtZHBiaTEwYjNBNklEQXVOWEpsYlR0Y1hHNGdJQ0FnZlZ4Y2JseGNiaUFnSUNBdWMyVndZWEpoZEc5eUlIdGNYRzRnSUNBZ0lDQm1iMjUwTFhkbGFXZG9kRG9nTlRBd08xeGNiaUFnSUNBZ0lHWnZiblF0YzJsNlpUb2dNQzQ1Y21WdE8xeGNiaUFnSUNBZ0lHMWhjbWRwYmpvZ01DNDJaVzBnTUM0eVpXMDdYRnh1SUNBZ0lDQWdZMjlzYjNJNklIWmhjaWd0TFhSbGVIUXRjSEpwYldGeWVTMWpiMnh2Y2lrN1hGeHVJQ0FnSUgxY1hHNGdJSDFjWEc1OVhGeHVYQ0lzWENJdkwxeGNiaTh2WEZ4dUx5OGdJUENkbDVZZzhKMlhvaUR3blplZklQQ2RsNklnOEoyWHBWeGNiaTh2SUNCMklERXVPUzR4WEZ4dUx5OWNYRzR2THlBZzRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCNHBTQjRwU0I0cFNCWEZ4dVhGeHVYRnh1THk4Z0lFZGxibVZ5WVd4Y1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMWGRvYVhSbE9pQWdJQ0FnSUNBZ0lDTm1abVptWm1ZN1hGeHVKRzlqTFdKc1lXTnJPaUFnSUNBZ0lDQWdJQ013TURBd01EQTdYRnh1WEZ4dVhGeHVMeThnSUVkeVlYbGNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFdkeVlYa3RiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpqaG1PV1poTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWmpGbU0yWTFMRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpaVGxsWTJWbUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBalpHVmxNbVUyTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqWTJWa05HUmhMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpZV1JpTldKa0xGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBak9EWTRaVGsyTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqTkRrMU1EVTNMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpNelF6WVRRd0xGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak1qRXlOVEk1WEZ4dUtUdGNYRzVjWEc0a2IyTXRaM0poZVMwd09pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3RNVG9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRJNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0TkRvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxUVTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzAyT2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE56b2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVGc2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMwNU9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRkpsWkZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRjbVZrTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlptWmpWbU5TeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyWm1aVE5sTXl4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJabVl6bGpPU3hjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMlptWVRoaE9DeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0kyWm1PRGM0Tnl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSTJabU5tSTJZaXhjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJMlpoTlRJMU1peGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0kyWXdNMlV6WlN4Y1hHNGdJRnhjWENJNFhGeGNJam9nSTJVd016RXpNU3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJMk01TW1FeVlWeGNiaWs3WEZ4dVhGeHVKRzlqTFhKbFpDMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVEU2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MXlaV1F0TWpvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMWEpsWkMwek9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUUTZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxeVpXUXROVG9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxYSmxaQzAyT2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRjNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE9Eb2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnVUdsdWExeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10Y0dsdWF5MXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObVptWXdaallzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05tWm1SbFpXSXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTm1ZMk15WkRjc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNObVlXRXlZekVzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ05tTnpnellXTXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTm1NRFkxT1RVc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNObE5qUTVPREFzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ05rTmpNek5tTXNYRnh1SUNCY1hGd2lPRnhjWENJNklDTmpNakkxTldNc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNOaE5qRmxOR1JjWEc0cE8xeGNibHhjYmlSdll5MXdhVzVyTFRBNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MHhPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0TWpvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUTTZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTAwT2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE5Ub2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVFk2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkwM09pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3RPRG9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRrNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdSM0poY0dWY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV2R5WVhCbExXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJZNFpqQm1ZeXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMll6WkRsbVlTeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyVmxZbVZtWVN4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJVMU9UbG1OeXhjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJMlJoTnpkbU1peGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0kyTmpOV1JsT0N4Y1hHNGdJRnhjWENJMlhGeGNJam9nSTJKbE5HSmtZaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJMkZsTTJWak9TeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6bGpNelppTlN4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpnMk1tVTVZMXhjYmlrN1hGeHVYRnh1Skc5akxXZHlZWEJsTFRBNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVEU2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUSTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRNNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVFE2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUVTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRZNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFdkeVlYQmxMVGM2SUcxaGNDMW5aWFFvSkc5akxXZHlZWEJsTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV2R5WVhCbExUZzZJRzFoY0MxblpYUW9KRzlqTFdkeVlYQmxMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXZHlZWEJsTFRrNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhCbExXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRlpwYjJ4bGRGeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10ZG1sdmJHVjBMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyWXpaakJtWml4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJVMVpHSm1aaXhjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMlF3WW1abVppeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0kySXhPVGRtWXl4Y1hHNGdJRnhjWENJMFhGeGNJam9nSXprM056Vm1ZU3hjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJemcwTldWbU55eGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0l6YzVOVEJtTWl4Y1hHNGdJRnhjWENJM1hGeGNJam9nSXpjd05EaGxPQ3hjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJelkzTkRGa09TeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6Vm1NMlJqTkZ4Y2JpazdYRnh1WEZ4dUpHOWpMWFpwYjJ4bGRDMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExURTZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE1qb2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMwek9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRRNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0TlRvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzAyT2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVGM2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXRPRG9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1NXNWthV2R2WEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MXBibVJwWjI4dGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWldSbU1tWm1MRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpaR0psTkdabUxGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalltRmpPR1ptTEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqT1RGaE4yWm1MRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpOelE0Wm1aakxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBak5XTTNZMlpoTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqTkdNMlpXWTFMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpOREkyTTJWaUxGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak0ySTFZbVJpTEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTXpZMFptTTNYRnh1S1R0Y1hHNWNYRzRrYjJNdGFXNWthV2R2TFRBNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0TVRvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTB5T2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVE02SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHRORG9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MDFPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUWTZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE56b2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkwNE9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRrNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JDYkhWbFhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFpYkhWbExXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJVM1pqVm1aaXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlF3WldKbVppeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyRTFaRGhtWml4Y1hHNGdJRnhjWENJelhGeGNJam9nSXpjMFl6Qm1ZeXhjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJelJrWVdKbU55eGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0l6TXpPV0ZtTUN4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpJeU9HSmxOaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJekZqTjJWa05peGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6RTVOekZqTWl4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpFNE5qUmhZbHhjYmlrN1hGeHVYRnh1Skc5akxXSnNkV1V0TURvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExURTZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzB5T2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE16b2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVFE2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMwMU9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXROam9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRjNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10WW14MVpTMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0T1RvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQkRlV0Z1WEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MWplV0Z1TFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlV6Wm1GbVl5eGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyTTFaalptWVN4Y1hHNGdJRnhjWENJeVhGeGNJam9nSXprNVpUbG1NaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJelkyWkRsbE9DeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0l6TmlZemxrWWl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXpJeVlqaGpaaXhjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJekUxWVdGaVppeGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6RXdPVGhoWkN4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpCak9EVTVPU3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJekJpTnpJNE5WeGNiaWs3WEZ4dVhGeHVKRzlqTFdONVlXNHRNRG9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRFNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0TXpvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxUUTZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTAxT2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE5qb2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVGM2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkwNE9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHRPVG9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCVVpXRnNYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxMFpXRnNMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyVTJabU5tTlN4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJNelptRmxPQ3hjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJemsyWmpKa055eGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0l6WXpaVFppWlN4Y1hHNGdJRnhjWENJMFhGeGNJam9nSXpNNFpEbGhPU3hjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJekl3WXprNU55eGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0l6RXlZamc0Tml4Y1hHNGdJRnhjWENJM1hGeGNJam9nSXpCallUWTNPQ3hjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJekE1T1RJMk9DeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6QTROMlkxWWx4Y2JpazdYRnh1WEZ4dUpHOWpMWFJsWVd3dE1Eb2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVEU2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMweU9pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3RNem9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRRNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0TmpvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUYzZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzA0T2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE9Ub2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JIY21WbGJseGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10WjNKbFpXNHRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpXSm1ZbVZsTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWkRObU9XUTRMRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpZakptTW1KaUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBak9HTmxPVGxoTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqTmpsa1lqZGpMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpOVEZqWmpZMkxGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBak5EQmpNRFUzTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqTXpkaU1qUmtMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpNbVk1WlRRMExGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak1tSTRZVE5sWEZ4dUtUdGNYRzVjWEc0a2IyTXRaM0psWlc0dE1Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TVRvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHRNam9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE16b2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TkRvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHROVG9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE5qb2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdFozSmxaVzR0TnpvZ2JXRndMV2RsZENna2IyTXRaM0psWlc0dGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10WjNKbFpXNHRPRG9nYldGd0xXZGxkQ2drYjJNdFozSmxaVzR0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRaM0psWlc0dE9Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKbFpXNHRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnVEdsdFpWeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10YkdsdFpTMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObU5HWmpaVE1zWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05sT1daaFl6Z3NYRnh1SUNCY1hGd2lNbHhjWENJNklDTmtPR1kxWVRJc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNOak1HVmlOelVzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ05oT1dVek5HSXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTTVOR1E0TW1Rc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNNNE1tTTVNV1VzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ00zTkdJNE1UWXNYRnh1SUNCY1hGd2lPRnhjWENJNklDTTJObUU0TUdZc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNMVl6azBNR1JjWEc0cE8xeGNibHhjYmlSdll5MXNhVzFsTFRBNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0TWpvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUTTZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzAwT2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE5Ub2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVFk2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMwM09pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXRPRG9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRrNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdXV1ZzYkc5M1hGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTE1Wld4c2IzY3RiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalptWm1PV1JpTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWm1abU0ySm1MRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpabVpsWXprNUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBalptWmxNRFkyTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqWm1aa05ETmlMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpabU5qTkRFNUxGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBalptRmlNREExTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqWmpVNVpqQXdMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpaakE0WXpBd0xGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBalpUWTNOekF3WEZ4dUtUdGNYRzVjWEc0a2IyTXRlV1ZzYkc5M0xUQTZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE1Ub2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkweU9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRNNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0TkRvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTAxT2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVFk2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3ROem9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MDRPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUazZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCUGNtRnVaMlZjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXOXlZVzVuWlMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tWm1ZMFpUWXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTm1abVU0WTJNc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNObVptUTRZVGdzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05tWm1Nd056Z3NYRnh1SUNCY1hGd2lORnhjWENJNklDTm1abUU1TkdRc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNObVpqa3lNbUlzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ05tWkRkbE1UUXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTm1OelkzTURjc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNObE9EVTVNR01zWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ05rT1RRNE1HWmNYRzRwTzF4Y2JseGNiaVJ2WXkxdmNtRnVaMlV0TURvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzB4T2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVEk2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXRNem9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUVTZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE5qb2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMwM09pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRnNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0T1RvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRU52Ykc5eUlHeHBjM1JjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXTnZiRzl5TFhOd1pXTjBjblZ0T2lBZ0lEazdYRnh1WEZ4dUpHOWpMV052Ykc5eUxXeHBjM1E2SUNoY1hHNGdJQ1J2WXkxbmNtRjVMV3hwYzNRNklDQWdJQ0FnWEZ4Y0ltZHlZWGxjWEZ3aUxGeGNiaUFnSkc5akxYSmxaQzFzYVhOME9pQWdJQ0FnSUZ4Y1hDSnlaV1JjWEZ3aUxGeGNiaUFnSkc5akxYQnBibXN0YkdsemREb2dJQ0FnSUNCY1hGd2ljR2x1YTF4Y1hDSXNYRnh1SUNBa2IyTXRaM0poY0dVdGJHbHpkRG9nSUNBZ0lDQmNYRndpWjNKaGNHVmNYRndpTEZ4Y2JpQWdKRzlqTFhacGIyeGxkQzFzYVhOME9pQWdJQ0FnSUZ4Y1hDSjJhVzlzWlhSY1hGd2lMRnhjYmlBZ0pHOWpMV2x1WkdsbmJ5MXNhWE4wT2lBZ0lDQWdJRnhjWENKcGJtUnBaMjljWEZ3aUxGeGNiaUFnSkc5akxXSnNkV1V0YkdsemREb2dJQ0FnSUNCY1hGd2lZbXgxWlZ4Y1hDSXNYRnh1SUNBa2IyTXRZM2xoYmkxc2FYTjBPaUFnSUNBZ0lGeGNYQ0pqZVdGdVhGeGNJaXhjWEc0Z0lDUnZZeTEwWldGc0xXeHBjM1E2SUNBZ0lDQWdYRnhjSW5SbFlXeGNYRndpTEZ4Y2JpQWdKRzlqTFdkeVpXVnVMV3hwYzNRNklDQWdJQ0FnWEZ4Y0ltZHlaV1Z1WEZ4Y0lpeGNYRzRnSUNSdll5MXNhVzFsTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbXhwYldWY1hGd2lMRnhjYmlBZ0pHOWpMWGxsYkd4dmR5MXNhWE4wT2lBZ0lDQWdJRnhjWENKNVpXeHNiM2RjWEZ3aUxGeGNiaUFnSkc5akxXOXlZVzVuWlMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0p2Y21GdVoyVmNYRndpWEZ4dUtUdGNYRzVjSWwwc1hDSnpiM1Z5WTJWU2IyOTBYQ0k2WENKY0luMWRLVHRjYmk4dklFVjRjRzl5ZEhOY2JtVjRjRzl5ZENCa1pXWmhkV3gwSUY5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0xpYnJhcnlNZW51SXRlbXMuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5VW5pdC5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL0xpYnJhcnlVbml0LnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLy8gSW1wb3J0c1xcblxcblxcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxuLy8gTW9kdWxlXFxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcXFwiOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxcXG59XFxcXG5cXFxcbi5leGNhbGlkcmF3IC5saWJyYXJ5LXVuaXQge1xcXFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24tZ3JheS0yKTtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXFxcbiAgd2lkdGg6IDYzcHg7XFxcXG4gIGhlaWdodDogNjNweDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5saWJyYXJ5LXVuaXQtLWhvdmVyIHtcXFxcbiAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDBweCAwcHggMnB4ICMzMzlhZjA7XFxcXG4gIGJvcmRlci1jb2xvcjogIzMzOWFmMDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5saWJyYXJ5LXVuaXQtLXNlbGVjdGVkIHtcXFxcbiAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDBweCAwcHggMnB4ICMxOTcxYzI7XFxcXG4gIGJvcmRlci1jb2xvcjogIzE5NzFjMjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LnRoZW1lLS1kYXJrIC5saWJyYXJ5LXVuaXQge1xcXFxuICBib3JkZXItY29sb3I6ICMzMDMwMzA7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS11bml0X19kcmFnZ2VyIHtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG4gIGhlaWdodDogMTAwJTtcXFxcbiAgd2lkdGg6IDEwMCU7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS11bml0X19kcmFnZ2VyID4gc3ZnIHtcXFxcbiAgZmlsdGVyOiB2YXIoLS10aGVtZS1maWx0ZXIpO1xcXFxuICBmbGV4LWdyb3c6IDE7XFxcXG4gIG1heC1oZWlnaHQ6IDEwMCU7XFxcXG4gIG1heC13aWR0aDogMTAwJTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5saWJyYXJ5LXVuaXRfX2NoZWNrYm94LWNvbnRhaW5lcixcXFxcbi5leGNhbGlkcmF3IC5saWJyYXJ5LXVuaXRfX2NoZWNrYm94LWNvbnRhaW5lcjpob3ZlcixcXFxcbi5leGNhbGlkcmF3IC5saWJyYXJ5LXVuaXRfX2NoZWNrYm94LWNvbnRhaW5lcjphY3RpdmUge1xcXFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICBiYWNrZ3JvdW5kOiBub25lO1xcXFxuICBib3JkZXI6IG5vbmU7XFxcXG4gIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcXFxuICBkaXNwbGF5OiBmbGV4O1xcXFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXFxcbiAgbWFyZ2luOiAwO1xcXFxuICBwYWRkaW5nOiAwLjVyZW07XFxcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgbGVmdDogMnJlbTtcXFxcbiAgYm90dG9tOiAycmVtO1xcXFxuICBjdXJzb3I6IHBvaW50ZXI7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS11bml0X19jaGVja2JveC1jb250YWluZXIgaW5wdXQsXFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS11bml0X19jaGVja2JveC1jb250YWluZXI6aG92ZXIgaW5wdXQsXFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS11bml0X19jaGVja2JveC1jb250YWluZXI6YWN0aXZlIGlucHV0IHtcXFxcbiAgY3Vyc29yOiBwb2ludGVyO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxpYnJhcnktdW5pdF9fY2hlY2tib3gge1xcXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gIGxlZnQ6IDIuM3JlbTtcXFxcbiAgYm90dG9tOiAyLjNyZW07XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS11bml0X19jaGVja2JveCAuQ2hlY2tib3gtYm94IHtcXFxcbiAgd2lkdGg6IDEzcHg7XFxcXG4gIGhlaWdodDogMTNweDtcXFxcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcXFxuICBtYXJnaW46IDAuNWVtIDAuNWVtIDAuMmVtIDAuMmVtO1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBlYmZmO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxpYnJhcnktdW5pdF9fY2hlY2tib3guQ2hlY2tib3g6aG92ZXIgLkNoZWNrYm94LWJveCB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6ICNhNWQ4ZmY7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS11bml0X19yZW1vdmVGcm9tTGlicmFyeSA+IHN2ZyB7XFxcXG4gIGhlaWdodDogMTZweDtcXFxcbiAgd2lkdGg6IDE2cHg7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAubGlicmFyeS11bml0X19hZGRlciB7XFxcXG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxcXG4gIGFuaW1hdGlvbjogbGlicmFyeS11bml0X19hZGRlci1hbmltYXRpb24gMXMgZWFzZS1pbiBpbmZpbml0ZTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5saWJyYXJ5LXVuaXRfX2FkZGVyIHtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICBsZWZ0OiA0MCU7XFxcXG4gIHRvcDogNDAlO1xcXFxuICB3aWR0aDogMnJlbTtcXFxcbiAgaGVpZ2h0OiAycmVtO1xcXFxuICBtYXJnaW4tbGVmdDogLTEwcHg7XFxcXG4gIG1hcmdpbi10b3A6IC0xMHB4O1xcXFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5saWJyYXJ5LXVuaXQ6aG92ZXIgLmxpYnJhcnktdW5pdF9fYWRkZXIge1xcXFxuICBmaWxsOiAjMWM3ZWQ2O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxpYnJhcnktdW5pdDphY3RpdmUgLmxpYnJhcnktdW5pdF9fYWRkZXIge1xcXFxuICBhbmltYXRpb246IG5vbmU7XFxcXG4gIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcXFxcbiAgZmlsbDogIzAwMDAwMDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5saWJyYXJ5LXVuaXRfX2FjdGl2ZSB7XFxcXG4gIGN1cnNvcjogcG9pbnRlcjtcXFxcbn1cXFxcbkBrZXlmcmFtZXMgbGlicmFyeS11bml0X19hZGRlci1hbmltYXRpb24ge1xcXFxuICAwJSB7XFxcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjg1KTtcXFxcbiAgfVxcXFxuICA1MCUge1xcXFxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxcXG4gIH1cXFxcbiAgMTAwJSB7XFxcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjg1KTtcXFxcbiAgfVxcXFxufVxcXCIsIFxcXCJcXFwiLHtcXFwidmVyc2lvblxcXCI6MyxcXFwic291cmNlc1xcXCI6W1xcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5VW5pdC5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQVVBO0VBQ0UsMkNBQUE7QUNURjs7QUFDRTtFQUNFLG1CQUFBO0VBQ0Esc0NBQUE7RUFDQSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FBRUo7QUFBSTtFQUNFLHlDQUFBO0VBQ0EscUJDOExNO0FENUxaO0FBQ0k7RUFDRSx5Q0FBQTtFQUNBLHFCQzRMTTtBRDNMWjtBQUdFO0VBQ0UscUJBQUE7QUFESjtBQUlFO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtBQUZKO0FBS0U7RUFDRSwyQkFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7QUFISjtBQU1FOzs7RUFHRSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLDZCQUFBO0VBQ0EsYUFBQTtFQUNBLHVCQUFBO0VBQ0EsU0FBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtBQUpKO0FBTUk7OztFQUNFLGVBQUE7QUFGTjtBQU1FO0VBQ0Usa0JBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtBQUpKO0FBTUk7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsK0JBQUE7RUFDQSx5QkMrSE07QURuSVo7QUFRTTtFQUNFLHlCQzJISTtBRGpJWjtBQVdFO0VBQ0UsWUFBQTtFQUNBLFdBQUE7QUFUSjtBQVlFO0VBQ0UsbUJBQUE7RUFDQSw0REFBQTtBQVZKO0FBYUU7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxRQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7QUFYSjtBQWFFO0VBQ0UsYUNzR1E7QURqSFo7QUFhRTtFQUNFLGVBQUE7RUFDQSxxQkFBQTtFQUNBLGFDakdlO0FEc0ZuQjtBQWNFO0VBQ0UsZUFBQTtBQVpKO0FBZUU7RUFDRTtJQUNFLHNCQUFBO0VBYko7RUFnQkU7SUFDRSxtQkFBQTtFQWRKO0VBaUJFO0lBQ0Usc0JBQUE7RUFmSjtBQUNGXFxcIixcXFwic291cmNlc0NvbnRlbnRcXFwiOltcXFwiQGltcG9ydCBcXFxcXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcXFxcXCI7XFxcXG5cXFxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXFxcbiAgQGF0LXJvb3QgLmV4Y2FsaWRyYXctLW1vYmlsZSN7Jn0ge1xcXFxuICAgIEBjb250ZW50O1xcXFxuICB9XFxcXG59XFxcXG5cXFxcbiR0aGVtZS1maWx0ZXI6IFxcXFxcXFwiaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpXFxcXFxcXCI7XFxcXG5cXFxcbjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXFxcbn1cXFxcblxcXCIsXFxcIkBpbXBvcnQgXFxcXFxcXCIuLi9jc3MvdmFyaWFibGVzLm1vZHVsZVxcXFxcXFwiO1xcXFxuXFxcXG4uZXhjYWxpZHJhdyB7XFxcXG4gIC5saWJyYXJ5LXVuaXQge1xcXFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG4gICAgZGlzcGxheTogZmxleDtcXFxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXFxcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxcXG4gICAgd2lkdGg6IDYzcHg7XFxcXG4gICAgaGVpZ2h0OiA2M3B4OyAvLyBtYXRjaCB3aWR0aFxcXFxuXFxcXG4gICAgJi0taG92ZXIge1xcXFxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDBweCAwcHggMnB4ICRvYy1ibHVlLTU7XFxcXG4gICAgICBib3JkZXItY29sb3I6ICRvYy1ibHVlLTU7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJi0tc2VsZWN0ZWQge1xcXFxuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDBweCAwcHggMnB4ICRvYy1ibHVlLTg7XFxcXG4gICAgICBib3JkZXItY29sb3I6ICRvYy1ibHVlLTg7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgJi50aGVtZS0tZGFyayAubGlicmFyeS11bml0IHtcXFxcbiAgICBib3JkZXItY29sb3I6IHJnYig0OCwgNDgsIDQ4KTtcXFxcbiAgfVxcXFxuXFxcXG4gIC5saWJyYXJ5LXVuaXRfX2RyYWdnZXIge1xcXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXFxcbiAgICBoZWlnaHQ6IDEwMCU7XFxcXG4gICAgd2lkdGg6IDEwMCU7XFxcXG4gIH1cXFxcblxcXFxuICAubGlicmFyeS11bml0X19kcmFnZ2VyID4gc3ZnIHtcXFxcbiAgICBmaWx0ZXI6IHZhcigtLXRoZW1lLWZpbHRlcik7XFxcXG4gICAgZmxleC1ncm93OiAxO1xcXFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcXFxuICB9XFxcXG5cXFxcbiAgLmxpYnJhcnktdW5pdF9fY2hlY2tib3gtY29udGFpbmVyLFxcXFxuICAubGlicmFyeS11bml0X19jaGVja2JveC1jb250YWluZXI6aG92ZXIsXFxcXG4gIC5saWJyYXJ5LXVuaXRfX2NoZWNrYm94LWNvbnRhaW5lcjphY3RpdmUge1xcXFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXFxcbiAgICBib3JkZXI6IG5vbmU7XFxcXG4gICAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxcXG4gICAgZGlzcGxheTogZmxleDtcXFxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXFxcbiAgICBtYXJnaW46IDA7XFxcXG4gICAgcGFkZGluZzogMC41cmVtO1xcXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgICBsZWZ0OiAycmVtO1xcXFxuICAgIGJvdHRvbTogMnJlbTtcXFxcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxcXG5cXFxcbiAgICBpbnB1dCB7XFxcXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLmxpYnJhcnktdW5pdF9fY2hlY2tib3gge1xcXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgICBsZWZ0OiAyLjNyZW07XFxcXG4gICAgYm90dG9tOiAyLjNyZW07XFxcXG5cXFxcbiAgICAuQ2hlY2tib3gtYm94IHtcXFxcbiAgICAgIHdpZHRoOiAxM3B4O1xcXFxuICAgICAgaGVpZ2h0OiAxM3B4O1xcXFxuICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xcXFxuICAgICAgbWFyZ2luOiAwLjVlbSAwLjVlbSAwLjJlbSAwLjJlbTtcXFxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvYy1ibHVlLTE7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJi5DaGVja2JveDpob3ZlciB7XFxcXG4gICAgICAuQ2hlY2tib3gtYm94IHtcXFxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9jLWJsdWUtMjtcXFxcbiAgICAgIH1cXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAubGlicmFyeS11bml0X19yZW1vdmVGcm9tTGlicmFyeSA+IHN2ZyB7XFxcXG4gICAgaGVpZ2h0OiAxNnB4O1xcXFxuICAgIHdpZHRoOiAxNnB4O1xcXFxuICB9XFxcXG5cXFxcbiAgLmxpYnJhcnktdW5pdF9fYWRkZXIge1xcXFxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxcXG4gICAgYW5pbWF0aW9uOiBsaWJyYXJ5LXVuaXRfX2FkZGVyLWFuaW1hdGlvbiAxcyBlYXNlLWluIGluZmluaXRlO1xcXFxuICB9XFxcXG5cXFxcbiAgLmxpYnJhcnktdW5pdF9fYWRkZXIge1xcXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgICBsZWZ0OiA0MCU7XFxcXG4gICAgdG9wOiA0MCU7XFxcXG4gICAgd2lkdGg6IDJyZW07XFxcXG4gICAgaGVpZ2h0OiAycmVtO1xcXFxuICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcXFxcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcXFxcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXFxcbiAgfVxcXFxuICAubGlicmFyeS11bml0OmhvdmVyIC5saWJyYXJ5LXVuaXRfX2FkZGVyIHtcXFxcbiAgICBmaWxsOiAkb2MtYmx1ZS03O1xcXFxuICB9XFxcXG4gIC5saWJyYXJ5LXVuaXQ6YWN0aXZlIC5saWJyYXJ5LXVuaXRfX2FkZGVyIHtcXFxcbiAgICBhbmltYXRpb246IG5vbmU7XFxcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcXFxuICAgIGZpbGw6ICRvYy1ibGFjaztcXFxcbiAgfVxcXFxuXFxcXG4gIC5saWJyYXJ5LXVuaXRfX2FjdGl2ZSB7XFxcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcXFxuICB9XFxcXG5cXFxcbiAgQGtleWZyYW1lcyBsaWJyYXJ5LXVuaXRfX2FkZGVyLWFuaW1hdGlvbiB7XFxcXG4gICAgMCUge1xcXFxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjg1KTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICA1MCUge1xcXFxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAxMDAlIHtcXFxcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44NSk7XFxcXG4gICAgfVxcXFxuICB9XFxcXG59XFxcXG5cXFwiLFxcXCIvL1xcXFxuLy9cXFxcbi8vICBcdUQ4MzVcdURERDYgXHVEODM1XHVEREUyIFx1RDgzNVx1RERERiBcdUQ4MzVcdURERTIgXHVEODM1XHVEREU1XFxcXG4vLyAgdiAxLjkuMVxcXFxuLy9cXFxcbi8vICBcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcXFxcblxcXFxuXFxcXG4vLyAgR2VuZXJhbFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2Mtd2hpdGU6ICAgICAgICAgI2ZmZmZmZjtcXFxcbiRvYy1ibGFjazogICAgICAgICAjMDAwMDAwO1xcXFxuXFxcXG5cXFxcbi8vICBHcmF5XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmF5LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmOGY5ZmEsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZjFmM2Y1LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2U5ZWNlZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNkZWUyZTYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjY2VkNGRhLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2FkYjViZCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM4NjhlOTYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNDk1MDU3LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzM0M2E0MCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMyMTI1MjlcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmF5LTA6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0yOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTM6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS01OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTY6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS04OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTk6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBSZWRcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXJlZC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmNWY1LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZTNlMyxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmM5YzksXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZhOGE4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmODc4NyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmZjZiNmIsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmE1MjUyLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2YwM2UzZSxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNlMDMxMzEsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjYzkyYTJhXFxcXG4pO1xcXFxuXFxcXG4kb2MtcmVkLTA6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTE6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTI6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTM6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTQ6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTU6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTY6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTc6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTg6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTk6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFBpbmtcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXBpbmstbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjBmNixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmRlZWIsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmNjMmQ3LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZhYTJjMSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmNzgzYWMsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZjA2NTk1LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2U2NDk4MCxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNkNjMzNmMsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjYzIyNTVjLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2E2MWU0ZFxcXFxuKTtcXFxcblxcXFxuJG9jLXBpbmstMDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtcGluay0xOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTI6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtcGluay00OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTU6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtcGluay03OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTg6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstOTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEdyYXBlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmFwZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjhmMGZjLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2YzZDlmYSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNlZWJlZmEsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZTU5OWY3LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2RhNzdmMixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNjYzVkZTgsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjYmU0YmRiLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2FlM2VjOSxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM5YzM2YjUsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjODYyZTljXFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JhcGUtMDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTE6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0yOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTQ6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS01OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTc6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS04OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtOTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBWaW9sZXRcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXZpb2xldC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjNmMGZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2U1ZGJmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNkMGJmZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjYjE5N2ZjLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzk3NzVmYSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM4NDVlZjcsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNzk1MGYyLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzcwNDhlOCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM2NzQxZDksXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjNWYzZGM0XFxcXG4pO1xcXFxuXFxcXG4kb2MtdmlvbGV0LTA6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTE6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTI6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTM6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTQ6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTU6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTY6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTc6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTg6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTk6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEluZGlnb1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtaW5kaWdvLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlZGYyZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZGJlNGZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2JhYzhmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM5MWE3ZmYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNzQ4ZmZjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzVjN2NmYSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM0YzZlZjUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNDI2M2ViLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzNiNWJkYixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMzNjRmYzdcXFxcbik7XFxcXG5cXFxcbiRvYy1pbmRpZ28tMDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tODogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tOTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQmx1ZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtYmx1ZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTdmNWZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2QwZWJmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNhNWQ4ZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNzRjMGZjLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzRkYWJmNyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMzMzlhZjAsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMjI4YmU2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzFjN2VkNixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMxOTcxYzIsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMTg2NGFiXFxcXG4pO1xcXFxuXFxcXG4kb2MtYmx1ZS0wOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTE6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0zOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTQ6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS02OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTc6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtODogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS05OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQ3lhblxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtY3lhbi1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTNmYWZjLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2M1ZjZmYSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICM5OWU5ZjIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNjZkOWU4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzNiYzlkYixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMyMmI4Y2YsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMTVhYWJmLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzEwOThhZCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMwYzg1OTksXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMGI3Mjg1XFxcXG4pO1xcXFxuXFxcXG4kb2MtY3lhbi0wOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTE6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0zOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTQ6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi02OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTc6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tODogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi05OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgVGVhbFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtdGVhbC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTZmY2Y1LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2MzZmFlOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICM5NmYyZDcsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNjNlNmJlLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzM4ZDlhOSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMyMGM5OTcsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMTJiODg2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzBjYTY3OCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMwOTkyNjgsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMDg3ZjViXFxcXG4pO1xcXFxuXFxcXG4kb2MtdGVhbC0wOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTE6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0zOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTQ6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC02OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTc6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtODogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC05OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgR3JlZW5cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyZWVuLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlYmZiZWUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZDNmOWQ4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2IyZjJiYixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM4Y2U5OWEsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNjlkYjdjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzUxY2Y2NixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM0MGMwNTcsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMzdiMjRkLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzJmOWU0NCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMyYjhhM2VcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmVlbi0wOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTI6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0zOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNDogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTU6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi02OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNzogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTg6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi05OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIExpbWVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWxpbWUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y0ZmNlMyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNlOWZhYzgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZDhmNWEyLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2MwZWI3NSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNhOWUzNGIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjOTRkODJkLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzgyYzkxZSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM3NGI4MTYsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjNjZhODBmLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzVjOTQwZFxcXFxuKTtcXFxcblxcXFxuJG9jLWxpbWUtMDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0xOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTI6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtbGltZS00OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTU6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtbGltZS03OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTg6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtOTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFllbGxvd1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MteWVsbG93LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY5ZGIsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZmM2JmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmZWM5OSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmUwNjYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmZkNDNiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZjYzQxOSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmYWIwMDUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjU5ZjAwLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2YwOGMwMCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNlNjc3MDBcXFxcbik7XFxcXG5cXFxcbiRvYy15ZWxsb3ctMDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctODogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctOTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgT3JhbmdlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1vcmFuZ2UtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjRlNixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmU4Y2MsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZkOGE4LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmYzA3OCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZmE5NGQsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmY5MjJiLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZkN2UxNCxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmNzY3MDcsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZTg1OTBjLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2Q5NDgwZlxcXFxuKTtcXFxcblxcXFxuJG9jLW9yYW5nZS0wOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0xOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0yOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0zOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS00OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS01OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS02OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS03OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS04OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS05OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBDb2xvciBsaXN0XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1jb2xvci1zcGVjdHJ1bTogICA5O1xcXFxuXFxcXG4kb2MtY29sb3ItbGlzdDogKFxcXFxuICAkb2MtZ3JheS1saXN0OiAgICAgIFxcXFxcXFwiZ3JheVxcXFxcXFwiLFxcXFxuICAkb2MtcmVkLWxpc3Q6ICAgICAgXFxcXFxcXCJyZWRcXFxcXFxcIixcXFxcbiAgJG9jLXBpbmstbGlzdDogICAgICBcXFxcXFxcInBpbmtcXFxcXFxcIixcXFxcbiAgJG9jLWdyYXBlLWxpc3Q6ICAgICAgXFxcXFxcXCJncmFwZVxcXFxcXFwiLFxcXFxuICAkb2MtdmlvbGV0LWxpc3Q6ICAgICAgXFxcXFxcXCJ2aW9sZXRcXFxcXFxcIixcXFxcbiAgJG9jLWluZGlnby1saXN0OiAgICAgIFxcXFxcXFwiaW5kaWdvXFxcXFxcXCIsXFxcXG4gICRvYy1ibHVlLWxpc3Q6ICAgICAgXFxcXFxcXCJibHVlXFxcXFxcXCIsXFxcXG4gICRvYy1jeWFuLWxpc3Q6ICAgICAgXFxcXFxcXCJjeWFuXFxcXFxcXCIsXFxcXG4gICRvYy10ZWFsLWxpc3Q6ICAgICAgXFxcXFxcXCJ0ZWFsXFxcXFxcXCIsXFxcXG4gICRvYy1ncmVlbi1saXN0OiAgICAgIFxcXFxcXFwiZ3JlZW5cXFxcXFxcIixcXFxcbiAgJG9jLWxpbWUtbGlzdDogICAgICBcXFxcXFxcImxpbWVcXFxcXFxcIixcXFxcbiAgJG9jLXllbGxvdy1saXN0OiAgICAgIFxcXFxcXFwieWVsbG93XFxcXFxcXCIsXFxcXG4gICRvYy1vcmFuZ2UtbGlzdDogICAgICBcXFxcXFxcIm9yYW5nZVxcXFxcXFwiXFxcXG4pO1xcXFxuXFxcIl0sXFxcInNvdXJjZVJvb3RcXFwiOlxcXCJcXFwifV0pO1xcbi8vIEV4cG9ydHNcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKF9fX0NTU19MT0FERVJfRVhQT1JUX19fKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlNYVdKeVlYSjVWVzVwZEM1elkzTnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN08wRkJRVUU3UVVGRE9FZzdRVUZEYWtJN1FVRkROMGNzT0VKQlFUaENMSFZIUVVFeVFpeERRVUZETEdkSVFVRnhRenRCUVVNdlJqdEJRVU5CTEcxRVFVRnRSQ3huUkVGQlowUXNSMEZCUnl3clFrRkJLMElzZDBKQlFYZENMREpEUVVFeVF5eHJRa0ZCYTBJc05FSkJRVFJDTEhWQ1FVRjFRaXhuUWtGQlowSXNhVUpCUVdsQ0xFZEJRVWNzYjBOQlFXOURMRGhEUVVFNFF5d3dRa0ZCTUVJc1IwRkJSeXgxUTBGQmRVTXNPRU5CUVRoRExEQkNRVUV3UWl4SFFVRkhMSGxEUVVGNVF5d3dRa0ZCTUVJc1IwRkJSeXh6UTBGQmMwTXNhMEpCUVd0Q0xIZENRVUYzUWl3MFFrRkJORUlzYVVKQlFXbENMR2RDUVVGblFpeEhRVUZITERSRFFVRTBReXhuUTBGQlowTXNhVUpCUVdsQ0xIRkNRVUZ4UWl4dlFrRkJiMElzUjBGQlJ5dzRTa0ZCT0Vvc2QwSkJRWGRDTEhGQ1FVRnhRaXhwUWtGQmFVSXNhME5CUVd0RExHdENRVUZyUWl3MFFrRkJORUlzWTBGQll5eHZRa0ZCYjBJc2RVSkJRWFZDTEdWQlFXVXNhVUpCUVdsQ0xHOUNRVUZ2UWl4SFFVRkhMR2RNUVVGblRDeHZRa0ZCYjBJc1IwRkJSeXgxUTBGQmRVTXNkVUpCUVhWQ0xHbENRVUZwUWl4dFFrRkJiVUlzUjBGQlJ5eHhSRUZCY1VRc1owSkJRV2RDTEdsQ1FVRnBRaXgxUWtGQmRVSXNiME5CUVc5RExEaENRVUU0UWl4SFFVRkhMRzlGUVVGdlJTdzRRa0ZCT0VJc1IwRkJSeXh6UkVGQmMwUXNhVUpCUVdsQ0xHZENRVUZuUWl4SFFVRkhMRzlEUVVGdlF5eDNRa0ZCZDBJc2FVVkJRV2xGTEVkQlFVY3NiME5CUVc5RExIVkNRVUYxUWl4alFVRmpMR0ZCUVdFc1owSkJRV2RDTEdsQ1FVRnBRaXgxUWtGQmRVSXNjMEpCUVhOQ0xIbENRVUY1UWl4SFFVRkhMSGRFUVVGM1JDeHJRa0ZCYTBJc1IwRkJSeXg1UkVGQmVVUXNiMEpCUVc5Q0xEQkNRVUV3UWl4clFrRkJhMElzUjBGQlJ5eHhRMEZCY1VNc2IwSkJRVzlDTEVkQlFVY3NORU5CUVRSRExGRkJRVkVzTmtKQlFUWkNMRXRCUVVzc1UwRkJVeXd3UWtGQk1FSXNTMEZCU3l4VlFVRlZMRFpDUVVFMlFpeExRVUZMTEVkQlFVY3NUMEZCVHl4cFRrRkJhVTRzVjBGQlZ5eE5RVUZOTEV0QlFVc3NWMEZCVnl4WFFVRlhMRlZCUVZVc1YwRkJWeXhYUVVGWExGVkJRVlVzVlVGQlZTeExRVUZMTEV0QlFVc3NWMEZCVnl4WlFVRlpMRTFCUVUwc1MwRkJTeXhYUVVGWExGbEJRVmtzVFVGQlRTeExRVUZMTEZkQlFWY3NTMEZCU3l4TFFVRkxMRlZCUVZVc1YwRkJWeXhYUVVGWExGVkJRVlVzVlVGQlZTeExRVUZMTEV0QlFVc3NWMEZCVnl4VlFVRlZMRmRCUVZjc1ZVRkJWU3hMUVVGTExFOUJRVThzVjBGQlZ5eFhRVUZYTEZWQlFWVXNWMEZCVnl4VlFVRlZMRmRCUVZjc1ZVRkJWU3hWUVVGVkxGZEJRVmNzVlVGQlZTeFZRVUZWTEZWQlFWVXNTMEZCU3l4UFFVRlBMRlZCUVZVc1MwRkJTeXhMUVVGTExGZEJRVmNzVlVGQlZTeFZRVUZWTEV0QlFVc3NTMEZCU3l4VlFVRlZMRlZCUVZVc1YwRkJWeXhYUVVGWExGbEJRVmtzVFVGQlRTeExRVUZMTEZsQlFWa3NUVUZCVFN4TFFVRkxMRlZCUVZVc1ZVRkJWU3hMUVVGTExFdEJRVXNzVjBGQlZ5eFhRVUZYTEV0QlFVc3NTMEZCU3l4WFFVRlhMRlZCUVZVc1ZVRkJWU3hWUVVGVkxGVkJRVlVzVjBGQlZ5eFhRVUZYTEZkQlFWY3NTMEZCU3l4TFFVRkxMRmRCUVZjc1RVRkJUU3hMUVVGTExGVkJRVlVzVjBGQlZ5eFhRVUZYTEU5QlFVOHNTMEZCU3l4VlFVRlZMRXRCUVVzc1MwRkJTeXhMUVVGTExGZEJRVmNzUzBGQlN5eE5RVUZOTEZkQlFWY3NTMEZCU3l4TlFVRk5MRmRCUVZjc1MwRkJTeXhuUlVGQlowVXNkVUpCUVhWQ0xHdERRVUZyUXl4SlFVRkpMR1ZCUVdVc1MwRkJTeXhIUVVGSExITkVRVUZ6UkN4aFFVRmhMSGREUVVGM1F5eEhRVUZITEhsRFFVRjVReXhwUWtGQmFVSXNiVUpCUVcxQ0xEQkNRVUV3UWl3MlEwRkJOa01zYjBKQlFXOUNMRGhDUVVFNFFpeDVRa0ZCZVVJc2EwSkJRV3RDTEc5Q1FVRnZRaXhuUTBGQlowTXNjVVJCUVhGRUxHbERRVUZwUXl4UFFVRlBMSEZDUVVGeFFpeHhSRUZCY1VRc2FVTkJRV2xETEU5QlFVOHNTMEZCU3l4dFEwRkJiVU1zYjBOQlFXOURMRXRCUVVzc09FSkJRVGhDTEc5Q1FVRnZRaXd3UWtGQk1FSXNPRUpCUVRoQ0xHMUNRVUZ0UWl4clFrRkJhMElzUzBGQlN5eHZRMEZCYjBNc2EwTkJRV3RETEcxQ1FVRnRRaXgxUWtGQmRVSXNjMEpCUVhOQ0xFdEJRVXNzYTBsQlFXdEpMREJDUVVFd1FpeDFRa0ZCZFVJc2JVSkJRVzFDTEc5RFFVRnZReXh2UWtGQmIwSXNPRUpCUVRoQ0xHZENRVUZuUWl4elFrRkJjMElzZVVKQlFYbENMR2xDUVVGcFFpeHRRa0ZCYlVJc2MwSkJRWE5DTEdWQlFXVXNkMEpCUVhkQ0xFOUJRVThzUzBGQlN5d3JRa0ZCSzBJc2VVSkJRWGxDTEcxQ1FVRnRRaXh4UWtGQmNVSXNkVUpCUVhWQ0xHOUNRVUZ2UWl4eFFrRkJjVUlzTWtKQlFUSkNMSGREUVVGM1F5eHhRMEZCY1VNc1QwRkJUeXd3UWtGQk1FSXNkVUpCUVhWQ0xIVkRRVUYxUXl4VFFVRlRMRTlCUVU4c1MwRkJTeXc0UTBGQk9FTXNiVUpCUVcxQ0xHdENRVUZyUWl4TFFVRkxMRFJDUVVFMFFpd3dRa0ZCTUVJc2JVVkJRVzFGTEV0QlFVc3NORUpCUVRSQ0xIbENRVUY1UWl4blFrRkJaMElzWlVGQlpTeHJRa0ZCYTBJc2JVSkJRVzFDTEhsQ1FVRjVRaXgzUWtGQmQwSXNNa0pCUVRKQ0xFdEJRVXNzT0VOQlFUaERMSFZDUVVGMVFpeExRVUZMTEN0RFFVRXJReXh6UWtGQmMwSXNORUpCUVRSQ0xITkNRVUZ6UWl4TFFVRkxMRFpDUVVFMlFpeHpRa0ZCYzBJc1MwRkJTeXhuUkVGQlowUXNWVUZCVlN3clFrRkJLMElzVDBGQlR5eGhRVUZoTERSQ1FVRTBRaXhQUVVGUExHTkJRV01zSzBKQlFTdENMRTlCUVU4c1MwRkJTeXhIUVVGSExHdE1RVUZyVEN3MlFrRkJOa0lzTkZGQlFUUlJMRGhEUVVFNFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5d3dVVUZCTUZFc05FTkJRVFJETERCRFFVRXdReXd3UTBGQk1FTXNNRU5CUVRCRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc01FTkJRVEJETERSUlFVRTBVU3c0UTBGQk9FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNPRkZCUVRoUkxHZEVRVUZuUkN3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl4blVrRkJaMUlzYTBSQlFXdEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RTUVVGblVpeHJSRUZCYTBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc05GRkJRVFJSTERoRFFVRTRReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwVVVGQk5GRXNPRU5CUVRoRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUlJRVUUwVVN3NFEwRkJPRU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zT0ZGQlFUaFJMR2RFUVVGblJDdzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzBVVUZCTkZFc09FTkJRVGhETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETEdkU1FVRm5VaXhyUkVGQmEwUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMUpCUVdkU0xHdEVRVUZyUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4NVJrRkJlVVlzZFdSQlFYVmtMSEZDUVVGeFFqdEJRVU40TDJkQ08wRkJRMEVzYVVWQlFXVXNkVUpCUVhWQ0xFVkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OU1hV0p5WVhKNVZXNXBkQzV6WTNOelAySTRNbUlpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUx5OGdTVzF3YjNKMGMxeHVhVzF3YjNKMElGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgxTlBWVkpEUlUxQlVGOUpUVkJQVWxSZlgxOGdabkp2YlNCY0lpNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5eWRXNTBhVzFsTDNOdmRYSmpaVTFoY0hNdWFuTmNJanRjYm1sdGNHOXlkQ0JmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlKVFZCUFVsUmZYMThnWm5KdmJTQmNJaTR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMMk56Y3kxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwyRndhUzVxYzF3aU8xeHVkbUZ5SUY5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZJRDBnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmU1UxUVQxSlVYMTlmS0Y5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDFOUFZWSkRSVTFCVUY5SlRWQlBVbFJmWDE4cE8xeHVMeThnVFc5a2RXeGxYRzVmWDE5RFUxTmZURTlCUkVWU1gwVllVRTlTVkY5Zlh5NXdkWE5vS0Z0dGIyUjFiR1V1YVdRc0lGd2lPbVY0Y0c5eWRDQjdYRnh1SUNCMGFHVnRaVVpwYkhSbGNqb2dhVzUyWlhKMEtEa3pKU2tnYUhWbExYSnZkR0YwWlNneE9EQmtaV2NwTzF4Y2JuMWNYRzVjWEc0dVpYaGpZV3hwWkhKaGR5QXViR2xpY21GeWVTMTFibWwwSUh0Y1hHNGdJR0ZzYVdkdUxXbDBaVzF6T2lCalpXNTBaWEk3WEZ4dUlDQmliM0prWlhJNklERndlQ0J6YjJ4cFpDQjJZWElvTFMxaWRYUjBiMjR0WjNKaGVTMHlLVHRjWEc0Z0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dUlDQnFkWE4wYVdaNUxXTnZiblJsYm5RNklHTmxiblJsY2p0Y1hHNGdJSEJ2YzJsMGFXOXVPaUJ5Wld4aGRHbDJaVHRjWEc0Z0lIZHBaSFJvT2lBMk0zQjRPMXhjYmlBZ2FHVnBaMmgwT2lBMk0zQjRPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1YkdsaWNtRnllUzExYm1sMExTMW9iM1psY2lCN1hGeHVJQ0JpYjNndGMyaGhaRzkzT2lCcGJuTmxkQ0F3Y0hnZ01IQjRJREJ3ZUNBeWNIZ2dJek16T1dGbU1EdGNYRzRnSUdKdmNtUmxjaTFqYjJ4dmNqb2dJek16T1dGbU1EdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbXhwWW5KaGNua3RkVzVwZEMwdGMyVnNaV04wWldRZ2UxeGNiaUFnWW05NExYTm9ZV1J2ZHpvZ2FXNXpaWFFnTUhCNElEQndlQ0F3Y0hnZ01uQjRJQ014T1RjeFl6STdYRnh1SUNCaWIzSmtaWEl0WTI5c2IzSTZJQ014T1RjeFl6STdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNMblJvWlcxbExTMWtZWEpySUM1c2FXSnlZWEo1TFhWdWFYUWdlMXhjYmlBZ1ltOXlaR1Z5TFdOdmJHOXlPaUFqTXpBek1ETXdPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1YkdsaWNtRnllUzExYm1sMFgxOWtjbUZuWjJWeUlIdGNYRzRnSUdScGMzQnNZWGs2SUdac1pYZzdYRnh1SUNCaGJHbG5iaTFwZEdWdGN6b2dZMlZ1ZEdWeU8xeGNiaUFnYW5WemRHbG1lUzFqYjI1MFpXNTBPaUJqWlc1MFpYSTdYRnh1SUNCb1pXbG5hSFE2SURFd01DVTdYRnh1SUNCM2FXUjBhRG9nTVRBd0pUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbXhwWW5KaGNua3RkVzVwZEY5ZlpISmhaMmRsY2lBK0lITjJaeUI3WEZ4dUlDQm1hV3gwWlhJNklIWmhjaWd0TFhSb1pXMWxMV1pwYkhSbGNpazdYRnh1SUNCbWJHVjRMV2R5YjNjNklERTdYRnh1SUNCdFlYZ3RhR1ZwWjJoME9pQXhNREFsTzF4Y2JpQWdiV0Y0TFhkcFpIUm9PaUF4TURBbE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXViR2xpY21GeWVTMTFibWwwWDE5amFHVmphMkp2ZUMxamIyNTBZV2x1WlhJc1hGeHVMbVY0WTJGc2FXUnlZWGNnTG14cFluSmhjbmt0ZFc1cGRGOWZZMmhsWTJ0aWIzZ3RZMjl1ZEdGcGJtVnlPbWh2ZG1WeUxGeGNiaTVsZUdOaGJHbGtjbUYzSUM1c2FXSnlZWEo1TFhWdWFYUmZYMk5vWldOclltOTRMV052Ym5SaGFXNWxjanBoWTNScGRtVWdlMXhjYmlBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzRnSUdKaFkydG5jbTkxYm1RNklHNXZibVU3WEZ4dUlDQmliM0prWlhJNklHNXZibVU3WEZ4dUlDQmpiMnh2Y2pvZ2RtRnlLQzB0YVdOdmJpMW1hV3hzTFdOdmJHOXlLVHRjWEc0Z0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dUlDQnFkWE4wYVdaNUxXTnZiblJsYm5RNklHTmxiblJsY2p0Y1hHNGdJRzFoY21kcGJqb2dNRHRjWEc0Z0lIQmhaR1JwYm1jNklEQXVOWEpsYlR0Y1hHNGdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjWEc0Z0lHeGxablE2SURKeVpXMDdYRnh1SUNCaWIzUjBiMjA2SURKeVpXMDdYRnh1SUNCamRYSnpiM0k2SUhCdmFXNTBaWEk3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1c2FXSnlZWEo1TFhWdWFYUmZYMk5vWldOclltOTRMV052Ym5SaGFXNWxjaUJwYm5CMWRDeGNYRzR1WlhoallXeHBaSEpoZHlBdWJHbGljbUZ5ZVMxMWJtbDBYMTlqYUdWamEySnZlQzFqYjI1MFlXbHVaWEk2YUc5MlpYSWdhVzV3ZFhRc1hGeHVMbVY0WTJGc2FXUnlZWGNnTG14cFluSmhjbmt0ZFc1cGRGOWZZMmhsWTJ0aWIzZ3RZMjl1ZEdGcGJtVnlPbUZqZEdsMlpTQnBibkIxZENCN1hGeHVJQ0JqZFhKemIzSTZJSEJ2YVc1MFpYSTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVzYVdKeVlYSjVMWFZ1YVhSZlgyTm9aV05yWW05NElIdGNYRzRnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y1hHNGdJR3hsWm5RNklESXVNM0psYlR0Y1hHNGdJR0p2ZEhSdmJUb2dNaTR6Y21WdE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXViR2xpY21GeWVTMTFibWwwWDE5amFHVmphMkp2ZUNBdVEyaGxZMnRpYjNndFltOTRJSHRjWEc0Z0lIZHBaSFJvT2lBeE0zQjRPMXhjYmlBZ2FHVnBaMmgwT2lBeE0zQjRPMXhjYmlBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTW5CNE8xeGNiaUFnYldGeVoybHVPaUF3TGpWbGJTQXdMalZsYlNBd0xqSmxiU0F3TGpKbGJUdGNYRzRnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNOa01HVmlabVk3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1c2FXSnlZWEo1TFhWdWFYUmZYMk5vWldOclltOTRMa05vWldOclltOTRPbWh2ZG1WeUlDNURhR1ZqYTJKdmVDMWliM2dnZTF4Y2JpQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dJMkUxWkRobVpqdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbXhwWW5KaGNua3RkVzVwZEY5ZmNtVnRiM1psUm5KdmJVeHBZbkpoY25rZ1BpQnpkbWNnZTF4Y2JpQWdhR1ZwWjJoME9pQXhObkI0TzF4Y2JpQWdkMmxrZEdnNklERTJjSGc3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1c2FXSnlZWEo1TFhWdWFYUmZYMkZrWkdWeUlIdGNYRzRnSUhSeVlXNXpabTl5YlRvZ2MyTmhiR1VvTVNrN1hGeHVJQ0JoYm1sdFlYUnBiMjQ2SUd4cFluSmhjbmt0ZFc1cGRGOWZZV1JrWlhJdFlXNXBiV0YwYVc5dUlERnpJR1ZoYzJVdGFXNGdhVzVtYVc1cGRHVTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVzYVdKeVlYSjVMWFZ1YVhSZlgyRmtaR1Z5SUh0Y1hHNGdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjWEc0Z0lHeGxablE2SURRd0pUdGNYRzRnSUhSdmNEb2dOREFsTzF4Y2JpQWdkMmxrZEdnNklESnlaVzA3WEZ4dUlDQm9aV2xuYUhRNklESnlaVzA3WEZ4dUlDQnRZWEpuYVc0dGJHVm1kRG9nTFRFd2NIZzdYRnh1SUNCdFlYSm5hVzR0ZEc5d09pQXRNVEJ3ZUR0Y1hHNGdJSEJ2YVc1MFpYSXRaWFpsYm5Sek9pQnViMjVsTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdWJHbGljbUZ5ZVMxMWJtbDBPbWh2ZG1WeUlDNXNhV0p5WVhKNUxYVnVhWFJmWDJGa1pHVnlJSHRjWEc0Z0lHWnBiR3c2SUNNeFl6ZGxaRFk3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1c2FXSnlZWEo1TFhWdWFYUTZZV04wYVhabElDNXNhV0p5WVhKNUxYVnVhWFJmWDJGa1pHVnlJSHRjWEc0Z0lHRnVhVzFoZEdsdmJqb2dibTl1WlR0Y1hHNGdJSFJ5WVc1elptOXliVG9nYzJOaGJHVW9NQzQ0S1R0Y1hHNGdJR1pwYkd3NklDTXdNREF3TURBN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNXNhV0p5WVhKNUxYVnVhWFJmWDJGamRHbDJaU0I3WEZ4dUlDQmpkWEp6YjNJNklIQnZhVzUwWlhJN1hGeHVmVnhjYmtCclpYbG1jbUZ0WlhNZ2JHbGljbUZ5ZVMxMWJtbDBYMTloWkdSbGNpMWhibWx0WVhScGIyNGdlMXhjYmlBZ01DVWdlMXhjYmlBZ0lDQjBjbUZ1YzJadmNtMDZJSE5qWVd4bEtEQXVPRFVwTzF4Y2JpQWdmVnhjYmlBZ05UQWxJSHRjWEc0Z0lDQWdkSEpoYm5ObWIzSnRPaUJ6WTJGc1pTZ3hLVHRjWEc0Z0lIMWNYRzRnSURFd01DVWdlMXhjYmlBZ0lDQjBjbUZ1YzJadmNtMDZJSE5qWVd4bEtEQXVPRFVwTzF4Y2JpQWdmVnhjYm4xY0lpd2dYQ0pjSWl4N1hDSjJaWEp6YVc5dVhDSTZNeXhjSW5OdmRYSmpaWE5jSWpwYlhDSjNaV0p3WVdOck9pOHZMaTh1TGk4dUxpOWpjM012ZG1GeWFXRmliR1Z6TG0xdlpIVnNaUzV6WTNOelhDSXNYQ0ozWldKd1lXTnJPaTh2TGk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDB4cFluSmhjbmxWYm1sMExuTmpjM05jSWl4Y0luZGxZbkJoWTJzNkx5OHVMeTR1THk0dUx5NHVMMjV2WkdWZmJXOWtkV3hsY3k5dmNHVnVMV052Ykc5eUwyOXdaVzR0WTI5c2IzSXVjMk56YzF3aVhTeGNJbTVoYldWelhDSTZXMTBzWENKdFlYQndhVzVuYzF3aU9sd2lRVUZWUVR0RlFVTkZMREpEUVVGQk8wRkRWRVk3TzBGQlEwVTdSVUZEUlN4dFFrRkJRVHRGUVVOQkxITkRRVUZCTzBWQlEwRXNZVUZCUVR0RlFVTkJMSFZDUVVGQk8wVkJRMEVzYTBKQlFVRTdSVUZEUVN4WFFVRkJPMFZCUTBFc1dVRkJRVHRCUVVWS08wRkJRVWs3UlVGRFJTeDVRMEZCUVR0RlFVTkJMSEZDUXpoTVRUdEJSRFZNV2p0QlFVTkpPMFZCUTBVc2VVTkJRVUU3UlVGRFFTeHhRa00wVEUwN1FVUXpURm83UVVGSFJUdEZRVU5GTEhGQ1FVRkJPMEZCUkVvN1FVRkpSVHRGUVVORkxHRkJRVUU3UlVGRFFTeHRRa0ZCUVR0RlFVTkJMSFZDUVVGQk8wVkJRMEVzV1VGQlFUdEZRVU5CTEZkQlFVRTdRVUZHU2p0QlFVdEZPMFZCUTBVc01rSkJRVUU3UlVGRFFTeFpRVUZCTzBWQlEwRXNaMEpCUVVFN1JVRkRRU3hsUVVGQk8wRkJTRW83UVVGTlJUczdPMFZCUjBVc2JVSkJRVUU3UlVGRFFTeG5Ra0ZCUVR0RlFVTkJMRmxCUVVFN1JVRkRRU3cyUWtGQlFUdEZRVU5CTEdGQlFVRTdSVUZEUVN4MVFrRkJRVHRGUVVOQkxGTkJRVUU3UlVGRFFTeGxRVUZCTzBWQlEwRXNhMEpCUVVFN1JVRkRRU3hWUVVGQk8wVkJRMEVzV1VGQlFUdEZRVU5CTEdWQlFVRTdRVUZLU2p0QlFVMUpPenM3UlVGRFJTeGxRVUZCTzBGQlJrNDdRVUZOUlR0RlFVTkZMR3RDUVVGQk8wVkJRMEVzV1VGQlFUdEZRVU5CTEdOQlFVRTdRVUZLU2p0QlFVMUpPMFZCUTBVc1YwRkJRVHRGUVVOQkxGbEJRVUU3UlVGRFFTeHJRa0ZCUVR0RlFVTkJMQ3RDUVVGQk8wVkJRMEVzZVVKREswaE5PMEZFYmtsYU8wRkJVVTA3UlVGRFJTeDVRa015U0VrN1FVUnFTVm83UVVGWFJUdEZRVU5GTEZsQlFVRTdSVUZEUVN4WFFVRkJPMEZCVkVvN1FVRlpSVHRGUVVORkxHMUNRVUZCTzBWQlEwRXNORVJCUVVFN1FVRldTanRCUVdGRk8wVkJRMFVzYTBKQlFVRTdSVUZEUVN4VFFVRkJPMFZCUTBFc1VVRkJRVHRGUVVOQkxGZEJRVUU3UlVGRFFTeFpRVUZCTzBWQlEwRXNhMEpCUVVFN1JVRkRRU3hwUWtGQlFUdEZRVU5CTEc5Q1FVRkJPMEZCV0VvN1FVRmhSVHRGUVVORkxHRkRjMGRSTzBGRWFraGFPMEZCWVVVN1JVRkRSU3hsUVVGQk8wVkJRMEVzY1VKQlFVRTdSVUZEUVN4aFEycEhaVHRCUkhOR2JrSTdRVUZqUlR0RlFVTkZMR1ZCUVVFN1FVRmFTanRCUVdWRk8wVkJRMFU3U1VGRFJTeHpRa0ZCUVR0RlFXSktPMFZCWjBKRk8wbEJRMFVzYlVKQlFVRTdSVUZrU2p0RlFXbENSVHRKUVVORkxITkNRVUZCTzBWQlprbzdRVUZEUmx3aUxGd2ljMjkxY21ObGMwTnZiblJsYm5SY0lqcGJYQ0pBYVcxd2IzSjBJRnhjWENKdmNHVnVMV052Ykc5eUwyOXdaVzR0WTI5c2IzSXVjMk56YzF4Y1hDSTdYRnh1WEZ4dVFHMXBlR2x1SUdselRXOWlhV3hsS0NrZ2UxeGNiaUFnUUdGMExYSnZiM1FnTG1WNFkyRnNhV1J5WVhjdExXMXZZbWxzWlNON0puMGdlMXhjYmlBZ0lDQkFZMjl1ZEdWdWREdGNYRzRnSUgxY1hHNTlYRnh1WEZ4dUpIUm9aVzFsTFdacGJIUmxjam9nWEZ4Y0ltbHVkbVZ5ZENnNU15VXBJR2gxWlMxeWIzUmhkR1VvTVRnd1pHVm5LVnhjWENJN1hGeHVYRnh1T21WNGNHOXlkQ0I3WEZ4dUlDQjBhR1Z0WlVacGJIUmxjam9nZFc1eGRXOTBaU2drZEdobGJXVXRabWxzZEdWeUtUdGNYRzU5WEZ4dVhDSXNYQ0pBYVcxd2IzSjBJRnhjWENJdUxpOWpjM012ZG1GeWFXRmliR1Z6TG0xdlpIVnNaVnhjWENJN1hGeHVYRnh1TG1WNFkyRnNhV1J5WVhjZ2UxeGNiaUFnTG14cFluSmhjbmt0ZFc1cGRDQjdYRnh1SUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJqWlc1MFpYSTdYRnh1SUNBZ0lHSnZjbVJsY2pvZ01YQjRJSE52Ykdsa0lIWmhjaWd0TFdKMWRIUnZiaTFuY21GNUxUSXBPMXhjYmlBZ0lDQmthWE53YkdGNU9pQm1iR1Y0TzF4Y2JpQWdJQ0JxZFhOMGFXWjVMV052Ym5SbGJuUTZJR05sYm5SbGNqdGNYRzRnSUNBZ2NHOXphWFJwYjI0NklISmxiR0YwYVhabE8xeGNiaUFnSUNCM2FXUjBhRG9nTmpOd2VEdGNYRzRnSUNBZ2FHVnBaMmgwT2lBMk0zQjRPeUF2THlCdFlYUmphQ0IzYVdSMGFGeGNibHhjYmlBZ0lDQW1MUzFvYjNabGNpQjdYRnh1SUNBZ0lDQWdZbTk0TFhOb1lXUnZkem9nYVc1elpYUWdNSEI0SURCd2VDQXdjSGdnTW5CNElDUnZZeTFpYkhWbExUVTdYRnh1SUNBZ0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lBa2IyTXRZbXgxWlMwMU8xeGNiaUFnSUNCOVhGeHVYRnh1SUNBZ0lDWXRMWE5sYkdWamRHVmtJSHRjWEc0Z0lDQWdJQ0JpYjNndGMyaGhaRzkzT2lCcGJuTmxkQ0F3Y0hnZ01IQjRJREJ3ZUNBeWNIZ2dKRzlqTFdKc2RXVXRPRHRjWEc0Z0lDQWdJQ0JpYjNKa1pYSXRZMjlzYjNJNklDUnZZeTFpYkhWbExUZzdYRnh1SUNBZ0lIMWNYRzRnSUgxY1hHNWNYRzRnSUNZdWRHaGxiV1V0TFdSaGNtc2dMbXhwWW5KaGNua3RkVzVwZENCN1hGeHVJQ0FnSUdKdmNtUmxjaTFqYjJ4dmNqb2djbWRpS0RRNExDQTBPQ3dnTkRncE8xeGNiaUFnZlZ4Y2JseGNiaUFnTG14cFluSmhjbmt0ZFc1cGRGOWZaSEpoWjJkbGNpQjdYRnh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dUlDQWdJR0ZzYVdkdUxXbDBaVzF6T2lCalpXNTBaWEk3WEZ4dUlDQWdJR3AxYzNScFpua3RZMjl1ZEdWdWREb2dZMlZ1ZEdWeU8xeGNiaUFnSUNCb1pXbG5hSFE2SURFd01DVTdYRnh1SUNBZ0lIZHBaSFJvT2lBeE1EQWxPMXhjYmlBZ2ZWeGNibHhjYmlBZ0xteHBZbkpoY25rdGRXNXBkRjlmWkhKaFoyZGxjaUErSUhOMlp5QjdYRnh1SUNBZ0lHWnBiSFJsY2pvZ2RtRnlLQzB0ZEdobGJXVXRabWxzZEdWeUtUdGNYRzRnSUNBZ1pteGxlQzFuY205M09pQXhPMXhjYmlBZ0lDQnRZWGd0YUdWcFoyaDBPaUF4TURBbE8xeGNiaUFnSUNCdFlYZ3RkMmxrZEdnNklERXdNQ1U3WEZ4dUlDQjlYRnh1WEZ4dUlDQXViR2xpY21GeWVTMTFibWwwWDE5amFHVmphMkp2ZUMxamIyNTBZV2x1WlhJc1hGeHVJQ0F1YkdsaWNtRnllUzExYm1sMFgxOWphR1ZqYTJKdmVDMWpiMjUwWVdsdVpYSTZhRzkyWlhJc1hGeHVJQ0F1YkdsaWNtRnllUzExYm1sMFgxOWphR1ZqYTJKdmVDMWpiMjUwWVdsdVpYSTZZV04wYVhabElIdGNYRzRnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzRnSUNBZ1ltRmphMmR5YjNWdVpEb2dibTl1WlR0Y1hHNGdJQ0FnWW05eVpHVnlPaUJ1YjI1bE8xeGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhV052YmkxbWFXeHNMV052Ykc5eUtUdGNYRzRnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjWEc0Z0lDQWdhblZ6ZEdsbWVTMWpiMjUwWlc1ME9pQmpaVzUwWlhJN1hGeHVJQ0FnSUcxaGNtZHBiam9nTUR0Y1hHNGdJQ0FnY0dGa1pHbHVaem9nTUM0MWNtVnRPMXhjYmlBZ0lDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRnh1SUNBZ0lHeGxablE2SURKeVpXMDdYRnh1SUNBZ0lHSnZkSFJ2YlRvZ01uSmxiVHRjWEc0Z0lDQWdZM1Z5YzI5eU9pQndiMmx1ZEdWeU8xeGNibHhjYmlBZ0lDQnBibkIxZENCN1hGeHVJQ0FnSUNBZ1kzVnljMjl5T2lCd2IybHVkR1Z5TzF4Y2JpQWdJQ0I5WEZ4dUlDQjlYRnh1WEZ4dUlDQXViR2xpY21GeWVTMTFibWwwWDE5amFHVmphMkp2ZUNCN1hGeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y1hHNGdJQ0FnYkdWbWREb2dNaTR6Y21WdE8xeGNiaUFnSUNCaWIzUjBiMjA2SURJdU0zSmxiVHRjWEc1Y1hHNGdJQ0FnTGtOb1pXTnJZbTk0TFdKdmVDQjdYRnh1SUNBZ0lDQWdkMmxrZEdnNklERXpjSGc3WEZ4dUlDQWdJQ0FnYUdWcFoyaDBPaUF4TTNCNE8xeGNiaUFnSUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VEdGNYRzRnSUNBZ0lDQnRZWEpuYVc0NklEQXVOV1Z0SURBdU5XVnRJREF1TW1WdElEQXVNbVZ0TzF4Y2JpQWdJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNSdll5MWliSFZsTFRFN1hGeHVJQ0FnSUgxY1hHNWNYRzRnSUNBZ0ppNURhR1ZqYTJKdmVEcG9iM1psY2lCN1hGeHVJQ0FnSUNBZ0xrTm9aV05yWW05NExXSnZlQ0I3WEZ4dUlDQWdJQ0FnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lBa2IyTXRZbXgxWlMweU8xeGNiaUFnSUNBZ0lIMWNYRzRnSUNBZ2ZWeGNiaUFnZlZ4Y2JseGNiaUFnTG14cFluSmhjbmt0ZFc1cGRGOWZjbVZ0YjNabFJuSnZiVXhwWW5KaGNua2dQaUJ6ZG1jZ2UxeGNiaUFnSUNCb1pXbG5hSFE2SURFMmNIZzdYRnh1SUNBZ0lIZHBaSFJvT2lBeE5uQjRPMXhjYmlBZ2ZWeGNibHhjYmlBZ0xteHBZbkpoY25rdGRXNXBkRjlmWVdSa1pYSWdlMXhjYmlBZ0lDQjBjbUZ1YzJadmNtMDZJSE5qWVd4bEtERXBPMXhjYmlBZ0lDQmhibWx0WVhScGIyNDZJR3hwWW5KaGNua3RkVzVwZEY5ZllXUmtaWEl0WVc1cGJXRjBhVzl1SURGeklHVmhjMlV0YVc0Z2FXNW1hVzVwZEdVN1hGeHVJQ0I5WEZ4dVhGeHVJQ0F1YkdsaWNtRnllUzExYm1sMFgxOWhaR1JsY2lCN1hGeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y1hHNGdJQ0FnYkdWbWREb2dOREFsTzF4Y2JpQWdJQ0IwYjNBNklEUXdKVHRjWEc0Z0lDQWdkMmxrZEdnNklESnlaVzA3WEZ4dUlDQWdJR2hsYVdkb2REb2dNbkpsYlR0Y1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklDMHhNSEI0TzF4Y2JpQWdJQ0J0WVhKbmFXNHRkRzl3T2lBdE1UQndlRHRjWEc0Z0lDQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHNXZibVU3WEZ4dUlDQjlYRnh1SUNBdWJHbGljbUZ5ZVMxMWJtbDBPbWh2ZG1WeUlDNXNhV0p5WVhKNUxYVnVhWFJmWDJGa1pHVnlJSHRjWEc0Z0lDQWdabWxzYkRvZ0pHOWpMV0pzZFdVdE56dGNYRzRnSUgxY1hHNGdJQzVzYVdKeVlYSjVMWFZ1YVhRNllXTjBhWFpsSUM1c2FXSnlZWEo1TFhWdWFYUmZYMkZrWkdWeUlIdGNYRzRnSUNBZ1lXNXBiV0YwYVc5dU9pQnViMjVsTzF4Y2JpQWdJQ0IwY21GdWMyWnZjbTA2SUhOallXeGxLREF1T0NrN1hGeHVJQ0FnSUdacGJHdzZJQ1J2WXkxaWJHRmphenRjWEc0Z0lIMWNYRzVjWEc0Z0lDNXNhV0p5WVhKNUxYVnVhWFJmWDJGamRHbDJaU0I3WEZ4dUlDQWdJR04xY25OdmNqb2djRzlwYm5SbGNqdGNYRzRnSUgxY1hHNWNYRzRnSUVCclpYbG1jbUZ0WlhNZ2JHbGljbUZ5ZVMxMWJtbDBYMTloWkdSbGNpMWhibWx0WVhScGIyNGdlMXhjYmlBZ0lDQXdKU0I3WEZ4dUlDQWdJQ0FnZEhKaGJuTm1iM0p0T2lCelkyRnNaU2d3TGpnMUtUdGNYRzRnSUNBZ2ZWeGNibHhjYmlBZ0lDQTFNQ1VnZTF4Y2JpQWdJQ0FnSUhSeVlXNXpabTl5YlRvZ2MyTmhiR1VvTVNrN1hGeHVJQ0FnSUgxY1hHNWNYRzRnSUNBZ01UQXdKU0I3WEZ4dUlDQWdJQ0FnZEhKaGJuTm1iM0p0T2lCelkyRnNaU2d3TGpnMUtUdGNYRzRnSUNBZ2ZWeGNiaUFnZlZ4Y2JuMWNYRzVjSWl4Y0lpOHZYRnh1THk5Y1hHNHZMeUFnOEoyWGxpRHduWmVpSVBDZGw1OGc4SjJYb2lEd25aZWxYRnh1THk4Z0lIWWdNUzQ1TGpGY1hHNHZMMXhjYmk4dklDRGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElGY1hHNWNYRzVjWEc0dkx5QWdSMlZ1WlhKaGJGeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10ZDJocGRHVTZJQ0FnSUNBZ0lDQWdJMlptWm1abVpqdGNYRzRrYjJNdFlteGhZMnM2SUNBZ0lDQWdJQ0FnSXpBd01EQXdNRHRjWEc1Y1hHNWNYRzR2THlBZ1IzSmhlVnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdFozSmhlUzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1PR1k1Wm1Fc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObU1XWXpaalVzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05sT1dWalpXWXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTmtaV1V5WlRZc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNOalpXUTBaR0VzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ05oWkdJMVltUXNYRnh1SUNCY1hGd2lObHhjWENJNklDTTROamhsT1RZc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNME9UVXdOVGNzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ016TkROaE5EQXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTXlNVEkxTWpsY1hHNHBPMXhjYmx4Y2JpUnZZeTFuY21GNUxUQTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzB4T2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE1qb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVE02SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMwME9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3ROVG9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRZNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0T0RvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxUazZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnVW1Wa1hGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTF5WldRdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWm1abU5XWTFMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpabVpsTTJVekxGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalptWmpPV001TEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWm1aaE9HRTRMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpabVk0TnpnM0xGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBalptWTJZalppTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqWm1FMU1qVXlMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpaakF6WlRObExGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBalpUQXpNVE14TEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqWXpreVlUSmhYRnh1S1R0Y1hHNWNYRzRrYjJNdGNtVmtMVEE2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MXlaV1F0TVRvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMWEpsWkMweU9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUTTZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxeVpXUXRORG9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxYSmxaQzAxT2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRZNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE56b2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVGs2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCUWFXNXJYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxd2FXNXJMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyWm1aakJtTml4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJabVpHVmxZaXhjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMlpqWXpKa055eGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0kyWmhZVEpqTVN4Y1hHNGdJRnhjWENJMFhGeGNJam9nSTJZM09ETmhZeXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJMll3TmpVNU5TeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0kyVTJORGs0TUN4Y1hHNGdJRnhjWENJM1hGeGNJam9nSTJRMk16TTJZeXhjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJMk15TWpVMVl5eGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0kyRTJNV1UwWkZ4Y2JpazdYRnh1WEZ4dUpHOWpMWEJwYm1zdE1Eb2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVEU2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkweU9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3RNem9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRRNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MDFPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0TmpvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUYzZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTA0T2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE9Ub2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JIY21Gd1pWeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10WjNKaGNHVXRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpqaG1NR1pqTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWmpOa09XWmhMRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpaV1ZpWldaaExGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBalpUVTVPV1kzTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqWkdFM04yWXlMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpZMk0xWkdVNExGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBalltVTBZbVJpTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqWVdVelpXTTVMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpPV016Tm1JMUxGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak9EWXlaVGxqWEZ4dUtUdGNYRzVjWEc0a2IyTXRaM0poY0dVdE1Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdFozSmhjR1V0TVRvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10WjNKaGNHVXRNam9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRaM0poY0dVdE16b2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdFozSmhjR1V0TkRvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10WjNKaGNHVXROVG9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRaM0poY0dVdE5qb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdFozSmhjR1V0TnpvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10WjNKaGNHVXRPRG9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRaM0poY0dVdE9Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnVm1sdmJHVjBYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxMmFXOXNaWFF0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaak5tTUdabUxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpUVmtZbVptTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWkRCaVptWm1MRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpZakU1TjJaakxGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBak9UYzNOV1poTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqT0RRMVpXWTNMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpOemsxTUdZeUxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak56QTBPR1U0TEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTmpjME1XUTVMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpOV1l6WkdNMFhGeHVLVHRjWEc1Y1hHNGtiMk10ZG1sdmJHVjBMVEE2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXRNVG9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUTTZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE5Eb2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMwMU9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRZNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0TnpvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzA0T2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVGs2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQkpibVJwWjI5Y1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV2x1WkdsbmJ5MXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObFpHWXlabVlzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05rWW1VMFptWXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTmlZV000Wm1Zc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNNNU1XRTNabVlzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ00zTkRobVptTXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTTFZemRqWm1Fc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNNMFl6WmxaalVzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ00wTWpZelpXSXNYRnh1SUNCY1hGd2lPRnhjWENJNklDTXpZalZpWkdJc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNek5qUm1ZemRjWEc0cE8xeGNibHhjYmlSdll5MXBibVJwWjI4dE1Eb2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkweE9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRJNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0TXpvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTAwT2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVFU2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHROam9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MDNPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUZzZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE9Ub2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUVKc2RXVmNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFdKc2RXVXRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpUZG1OV1ptTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWkRCbFltWm1MRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpZVFZrT0dabUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBak56UmpNR1pqTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqTkdSaFltWTNMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpNek01WVdZd0xGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBak1qSTRZbVUyTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqTVdNM1pXUTJMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpNVGszTVdNeUxGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak1UZzJOR0ZpWEZ4dUtUdGNYRzVjWEc0a2IyTXRZbXgxWlMwd09pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXRNVG9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRJNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10WW14MVpTMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0TkRvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUVTZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzAyT2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE56b2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVGc2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMwNU9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRU41WVc1Y1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV041WVc0dGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWlRObVlXWmpMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpZelZtTm1aaExGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBak9UbGxPV1l5TEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqTmpaa09XVTRMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpNMkpqT1dSaUxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBak1qSmlPR05tTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqTVRWaFlXSm1MRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpNVEE1T0dGa0xGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak1HTTROVGs1TEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTUdJM01qZzFYRnh1S1R0Y1hHNWNYRzRrYjJNdFkzbGhiaTB3T2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE1Ub2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVEk2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkwek9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHRORG9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRVNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0TnpvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxUZzZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTA1T2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lGUmxZV3hjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxYUmxZV3d0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaVFptWTJZMUxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBall6Tm1ZV1U0TEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqT1RabU1tUTNMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpOak5sTm1KbExGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBak16aGtPV0U1TEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqTWpCak9UazNMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpNVEppT0RnMkxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak1HTmhOamM0TEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTURrNU1qWTRMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpNRGczWmpWaVhGeHVLVHRjWEc1Y1hHNGtiMk10ZEdWaGJDMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0TVRvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUSTZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzB6T2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE5Eb2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVFU2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMwMk9pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3ROem9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRnNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUVkeVpXVnVYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxbmNtVmxiaTFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTmxZbVppWldVc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNOa00yWTVaRGdzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05pTW1ZeVltSXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTTRZMlU1T1dFc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNNMk9XUmlOMk1zWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ00xTVdObU5qWXNYRnh1SUNCY1hGd2lObHhjWENJNklDTTBNR013TlRjc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNek4ySXlOR1FzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ015WmpsbE5EUXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTXlZamhoTTJWY1hHNHBPMXhjYmx4Y2JpUnZZeTFuY21WbGJpMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MW5jbVZsYmkweE9pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxbmNtVmxiaTB5T2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTFuY21WbGJpMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MW5jbVZsYmkwME9pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxbmNtVmxiaTAxT2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTFuY21WbGJpMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MW5jbVZsYmkwM09pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxbmNtVmxiaTA0T2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFuY21WbGJpMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCTWFXMWxYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxc2FXMWxMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyWTBabU5sTXl4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJVNVptRmpPQ3hjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMlE0WmpWaE1peGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0kyTXdaV0kzTlN4Y1hHNGdJRnhjWENJMFhGeGNJam9nSTJFNVpUTTBZaXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJemswWkRneVpDeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0l6Z3lZemt4WlN4Y1hHNGdJRnhjWENJM1hGeGNJam9nSXpjMFlqZ3hOaXhjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJelkyWVRnd1ppeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6VmpPVFF3WkZ4Y2JpazdYRnh1WEZ4dUpHOWpMV3hwYldVdE1Eb2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVEU2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMweU9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXRNem9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRRNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0TmpvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUYzZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzA0T2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE9Ub2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JaWld4c2IzZGNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFhsbGJHeHZkeTFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1abVk1WkdJc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObVptWXpZbVlzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05tWm1Wak9Ua3NYRnh1SUNCY1hGd2lNMXhjWENJNklDTm1abVV3TmpZc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNObVptUTBNMklzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ05tWTJNME1Ua3NYRnh1SUNCY1hGd2lObHhjWENJNklDTm1ZV0l3TURVc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNObU5UbG1NREFzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ05tTURoak1EQXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTmxOamMzTURCY1hHNHBPMXhjYmx4Y2JpUnZZeTE1Wld4c2IzY3RNRG9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MHhPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUSTZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE16b2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkwME9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRVNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0TmpvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTAzT2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVGc2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3RPVG9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lFOXlZVzVuWlZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRiM0poYm1kbExXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJabVpqUmxOaXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlptWlRoall5eGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyWm1aRGhoT0N4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJabVl6QTNPQ3hjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJMlptWVRrMFpDeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0kyWm1PVEl5WWl4Y1hHNGdJRnhjWENJMlhGeGNJam9nSTJaa04yVXhOQ3hjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJMlkzTmpjd055eGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0kyVTROVGt3WXl4Y1hHNGdJRnhjWENJNVhGeGNJam9nSTJRNU5EZ3dabHhjYmlrN1hGeHVYRnh1Skc5akxXOXlZVzVuWlMwd09pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRFNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0TWpvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzB6T2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVFE2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXROVG9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUYzZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE9Eb2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMwNU9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnUTI5c2IzSWdiR2x6ZEZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRZMjlzYjNJdGMzQmxZM1J5ZFcwNklDQWdPVHRjWEc1Y1hHNGtiMk10WTI5c2IzSXRiR2x6ZERvZ0tGeGNiaUFnSkc5akxXZHlZWGt0YkdsemREb2dJQ0FnSUNCY1hGd2laM0poZVZ4Y1hDSXNYRnh1SUNBa2IyTXRjbVZrTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbkpsWkZ4Y1hDSXNYRnh1SUNBa2IyTXRjR2x1YXkxc2FYTjBPaUFnSUNBZ0lGeGNYQ0p3YVc1clhGeGNJaXhjWEc0Z0lDUnZZeTFuY21Gd1pTMXNhWE4wT2lBZ0lDQWdJRnhjWENKbmNtRndaVnhjWENJc1hGeHVJQ0FrYjJNdGRtbHZiR1YwTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJblpwYjJ4bGRGeGNYQ0lzWEZ4dUlDQWtiMk10YVc1a2FXZHZMV3hwYzNRNklDQWdJQ0FnWEZ4Y0ltbHVaR2xuYjF4Y1hDSXNYRnh1SUNBa2IyTXRZbXgxWlMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0ppYkhWbFhGeGNJaXhjWEc0Z0lDUnZZeTFqZVdGdUxXeHBjM1E2SUNBZ0lDQWdYRnhjSW1ONVlXNWNYRndpTEZ4Y2JpQWdKRzlqTFhSbFlXd3RiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWRHVmhiRnhjWENJc1hGeHVJQ0FrYjJNdFozSmxaVzR0YkdsemREb2dJQ0FnSUNCY1hGd2laM0psWlc1Y1hGd2lMRnhjYmlBZ0pHOWpMV3hwYldVdGJHbHpkRG9nSUNBZ0lDQmNYRndpYkdsdFpWeGNYQ0lzWEZ4dUlDQWtiMk10ZVdWc2JHOTNMV3hwYzNRNklDQWdJQ0FnWEZ4Y0lubGxiR3h2ZDF4Y1hDSXNYRnh1SUNBa2IyTXRiM0poYm1kbExXeHBjM1E2SUNBZ0lDQWdYRnhjSW05eVlXNW5aVnhjWENKY1hHNHBPMXhjYmx3aVhTeGNJbk52ZFhKalpWSnZiM1JjSWpwY0lsd2lmVjBwTzF4dUx5OGdSWGh3YjNKMGMxeHVaWGh3YjNKMElHUmxabUYxYkhRZ1gxOWZRMU5UWDB4UFFVUkZVbDlGV0ZCUFVsUmZYMTg3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5VW5pdC5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL01vZGFsLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvTW9kYWwuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkZWZhdWx0XFxcIjogKCkgPT4gKF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vLyBJbXBvcnRzXFxuXFxuXFxudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKSgoX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0KCkpKTtcXG4vLyBNb2R1bGVcXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFxcXCI6ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IGludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKTtcXFxcbn1cXFxcblxcXFxuLmV4Y2FsaWRyYXcuZXhjYWxpZHJhdy1tb2RhbC1jb250YWluZXIge1xcXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gIHotaW5kZXg6IDEwO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIHtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICB0b3A6IDA7XFxcXG4gIGxlZnQ6IDA7XFxcXG4gIHJpZ2h0OiAwO1xcXFxuICBib3R0b206IDA7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcXFxuICBvdmVyZmxvdzogYXV0bztcXFxcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogMTApO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLk1vZGFsX19iYWNrZ3JvdW5kIHtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICB0b3A6IDA7XFxcXG4gIGxlZnQ6IDA7XFxcXG4gIHJpZ2h0OiAwO1xcXFxuICBib3R0b206IDA7XFxcXG4gIHotaW5kZXg6IDE7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5Nb2RhbF9fY29udGVudCB7XFxcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXFxcbiAgei1pbmRleDogMjtcXFxcbiAgd2lkdGg6IDEwMCU7XFxcXG4gIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcXFxcbiAgbWF4LWhlaWdodDogMTAwJTtcXFxcbiAgb3BhY2l0eTogMDtcXFxcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xcXFxuICBhbmltYXRpb246IE1vZGFsX19jb250ZW50X2ZhZGUtaW4gMC4xcyBlYXNlLW91dCAwLjA1cyBmb3J3YXJkcztcXFxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcXFxuICBvdmVyZmxvdy15OiBhdXRvO1xcXFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1pc2xhbmQtYmctY29sb3IpO1xcXFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kaWFsb2ctYm9yZGVyLWNvbG9yKTtcXFxcbiAgYm94LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xcXFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuTW9kYWxfX2NvbnRlbnQ6Zm9jdXMge1xcXFxuICBvdXRsaW5lOiBub25lO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXctLW1vYmlsZS5leGNhbGlkcmF3IC5Nb2RhbF9fY29udGVudCB7XFxcXG4gIG1heC13aWR0aDogMTAwJTtcXFxcbiAgYm9yZGVyOiAwO1xcXFxuICBib3JkZXItcmFkaXVzOiAwO1xcXFxufVxcXFxuXFxcXG5Aa2V5ZnJhbWVzIE1vZGFsX19jb250ZW50X2ZhZGUtaW4ge1xcXFxuICBmcm9tIHtcXFxcbiAgICBvcGFjaXR5OiAwO1xcXFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcXFxcbiAgfVxcXFxuICB0byB7XFxcXG4gICAgb3BhY2l0eTogMTtcXFxcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxcXG4gIH1cXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5Nb2RhbF9fY2xvc2Uge1xcXFxuICB3aWR0aDogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogNyk7XFxcXG4gIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogNyk7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLk1vZGFsX19jbG9zZSBzdmcge1xcXFxuICBoZWlnaHQ6IGNhbGModmFyKC0tc3BhY2UtZmFjdG9yKSAqIDUpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXctLW1vYmlsZS5leGNhbGlkcmF3IC5Nb2RhbCB7XFxcXG4gIHBhZGRpbmc6IDA7XFxcXG59XFxcXG4uZXhjYWxpZHJhdy0tbW9iaWxlLmV4Y2FsaWRyYXcgLk1vZGFsX19jb250ZW50IHtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICB0b3A6IDA7XFxcXG4gIGxlZnQ6IDA7XFxcXG4gIHJpZ2h0OiAwO1xcXFxuICBib3R0b206IDA7XFxcXG59XFxcIiwgXFxcIlxcXCIse1xcXCJ2ZXJzaW9uXFxcIjozLFxcXCJzb3VyY2VzXFxcIjpbXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcXFwiLFxcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jb21wb25lbnRzL01vZGFsLnNjc3NcXFwiXSxcXFwibmFtZXNcXFwiOltdLFxcXCJtYXBwaW5nc1xcXCI6XFxcIkFBVUE7RUFDRSwyQ0FBQTtBQ1RGOztBQUNFO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0FBRUo7QUFDRTtFQUNFLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0VBQ0EsY0FBQTtFQUNBLHVDQUFBO0FBQ0o7QUFFRTtFQUNFLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSxvQ0FBQTtBQUFKO0FBR0U7RUFDRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsMkJBQUE7RUFDQSxnQkFBQTtFQUVBLFVBQUE7RUFDQSwyQkFBQTtFQUNBLDhEQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUdBLGtDQUFBO0VBRUEsNENBQUE7RUFDQSwwQ0FBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7QUFMSjtBQU9JO0VBQ0UsYUFBQTtBQUxOO0FEN0NXO0VDc0RMLGVBQUE7RUFDQSxTQUFBO0VBQ0EsZ0JBQUE7QUFOTjs7QUFVRTtFQUNFO0lBQ0UsVUFBQTtJQUNBLDJCQUFBO0VBUEo7RUFTRTtJQUNFLFVBQUE7SUFDQSx3QkFBQTtFQVBKO0FBQ0Y7QUFVRTtFQUNFLG9DQUFBO0VBQ0EscUNBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtBQVJKO0FBVUk7RUFDRSxxQ0FBQTtBQVJOO0FBYUk7RUFDRSxVQUFBO0FBWE47QUFjSTtFQUNFLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtBQVpOXFxcIixcXFwic291cmNlc0NvbnRlbnRcXFwiOltcXFwiQGltcG9ydCBcXFxcXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcXFxcXCI7XFxcXG5cXFxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXFxcbiAgQGF0LXJvb3QgLmV4Y2FsaWRyYXctLW1vYmlsZSN7Jn0ge1xcXFxuICAgIEBjb250ZW50O1xcXFxuICB9XFxcXG59XFxcXG5cXFxcbiR0aGVtZS1maWx0ZXI6IFxcXFxcXFwiaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpXFxcXFxcXCI7XFxcXG5cXFxcbjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXFxcbn1cXFxcblxcXCIsXFxcIkBpbXBvcnQgXFxcXFxcXCIuLi9jc3MvdmFyaWFibGVzLm1vZHVsZVxcXFxcXFwiO1xcXFxuXFxcXG4uZXhjYWxpZHJhdyB7XFxcXG4gICYuZXhjYWxpZHJhdy1tb2RhbC1jb250YWluZXIge1xcXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgICB6LWluZGV4OiAxMDtcXFxcbiAgfVxcXFxuXFxcXG4gIC5Nb2RhbCB7XFxcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICAgIHRvcDogMDtcXFxcbiAgICBsZWZ0OiAwO1xcXFxuICAgIHJpZ2h0OiAwO1xcXFxuICAgIGJvdHRvbTogMDtcXFxcbiAgICBkaXNwbGF5OiBmbGV4O1xcXFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG4gICAgb3ZlcmZsb3c6IGF1dG87XFxcXG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogMTApO1xcXFxuICB9XFxcXG5cXFxcbiAgLk1vZGFsX19iYWNrZ3JvdW5kIHtcXFxcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gICAgdG9wOiAwO1xcXFxuICAgIGxlZnQ6IDA7XFxcXG4gICAgcmlnaHQ6IDA7XFxcXG4gICAgYm90dG9tOiAwO1xcXFxuICAgIHotaW5kZXg6IDE7XFxcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJG9jLWJsYWNrLCAwLjMpO1xcXFxuICB9XFxcXG5cXFxcbiAgLk1vZGFsX19jb250ZW50IHtcXFxcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxcXG4gICAgei1pbmRleDogMjtcXFxcbiAgICB3aWR0aDogMTAwJTtcXFxcbiAgICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7XFxcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXFxcblxcXFxuICAgIG9wYWNpdHk6IDA7XFxcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xcXFxuICAgIGFuaW1hdGlvbjogTW9kYWxfX2NvbnRlbnRfZmFkZS1pbiAwLjFzIGVhc2Utb3V0IDAuMDVzIGZvcndhcmRzO1xcXFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXFxcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xcXFxuXFxcXG4gICAgLy8gZm9yIG1vZGFscywgcmVzZXQgYmx1cnJ5IGJnXFxcXG4gICAgYmFja2dyb3VuZDogdmFyKC0taXNsYW5kLWJnLWNvbG9yKTtcXFxcblxcXFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRpYWxvZy1ib3JkZXItY29sb3IpO1xcXFxuICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggdHJhbnNwYXJlbnRpemUoJG9jLWJsYWNrLCAwLjc1KTtcXFxcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XFxcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXFxcblxcXFxuICAgICY6Zm9jdXMge1xcXFxuICAgICAgb3V0bGluZTogbm9uZTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICBAaW5jbHVkZSBpc01vYmlsZSB7XFxcXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XFxcXG4gICAgICBib3JkZXI6IDA7XFxcXG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxuXFxcXG4gIEBrZXlmcmFtZXMgTW9kYWxfX2NvbnRlbnRfZmFkZS1pbiB7XFxcXG4gICAgZnJvbSB7XFxcXG4gICAgICBvcGFjaXR5OiAwO1xcXFxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xcXFxuICAgIH1cXFxcbiAgICB0byB7XFxcXG4gICAgICBvcGFjaXR5OiAxO1xcXFxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxuXFxcXG4gIC5Nb2RhbF9fY2xvc2Uge1xcXFxuICAgIHdpZHRoOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiA3KTtcXFxcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3BhY2UtZmFjdG9yKSAqIDcpO1xcXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXFxcblxcXFxuICAgIHN2ZyB7XFxcXG4gICAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3BhY2UtZmFjdG9yKSAqIDUpO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxuXFxcXG4gIEBpbmNsdWRlIGlzTW9iaWxlIHtcXFxcbiAgICAuTW9kYWwge1xcXFxuICAgICAgcGFkZGluZzogMDtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAuTW9kYWxfX2NvbnRlbnQge1xcXFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICAgICAgdG9wOiAwO1xcXFxuICAgICAgbGVmdDogMDtcXFxcbiAgICAgIHJpZ2h0OiAwO1xcXFxuICAgICAgYm90dG9tOiAwO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxufVxcXFxuXFxcIl0sXFxcInNvdXJjZVJvb3RcXFwiOlxcXCJcXFwifV0pO1xcbi8vIEV4cG9ydHNcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKF9fX0NTU19MT0FERVJfRVhQT1JUX19fKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlOYjJSaGJDNXpZM056TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPMEZCUVVFN1FVRkRPRWc3UVVGRGFrSTdRVUZETjBjc09FSkJRVGhDTEhWSFFVRXlRaXhEUVVGRExHZElRVUZ4UXp0QlFVTXZSanRCUVVOQkxHMUVRVUZ0UkN4blJFRkJaMFFzUjBGQlJ5dzBRMEZCTkVNc2RVSkJRWFZDTEdkQ1FVRm5RaXhIUVVGSExITkNRVUZ6UWl4MVFrRkJkVUlzVjBGQlZ5eFpRVUZaTEdGQlFXRXNZMEZCWXl4clFrRkJhMElzZDBKQlFYZENMRFJDUVVFMFFpeHRRa0ZCYlVJc05FTkJRVFJETEVkQlFVY3NhME5CUVd0RExIVkNRVUYxUWl4WFFVRlhMRmxCUVZrc1lVRkJZU3hqUVVGakxHVkJRV1VzZVVOQlFYbERMRWRCUVVjc0swSkJRU3RDTEhWQ1FVRjFRaXhsUVVGbExHZENRVUZuUWl4blEwRkJaME1zY1VKQlFYRkNMR1ZCUVdVc1owTkJRV2RETEcxRlFVRnRSU3gxUWtGQmRVSXNjVUpCUVhGQ0xIVkRRVUYxUXl4cFJFRkJhVVFzSzBOQlFTdERMSFZDUVVGMVFpd3lRa0ZCTWtJc1IwRkJSeXh4UTBGQmNVTXNhMEpCUVd0Q0xFZEJRVWNzYTBSQlFXdEVMRzlDUVVGdlFpeGpRVUZqTEhGQ1FVRnhRaXhIUVVGSExIVkRRVUYxUXl4VlFVRlZMR2xDUVVGcFFpeHJRMEZCYTBNc1MwRkJTeXhSUVVGUkxHbENRVUZwUWl3clFrRkJLMElzUzBGQlN5eEhRVUZITERaQ1FVRTJRaXg1UTBGQmVVTXNNRU5CUVRCRExHdENRVUZyUWl4M1FrRkJkMElzTkVKQlFUUkNMRWRCUVVjc2FVTkJRV2xETERCRFFVRXdReXhIUVVGSExIbERRVUY1UXl4bFFVRmxMRWRCUVVjc2EwUkJRV3RFTEhWQ1FVRjFRaXhYUVVGWExGbEJRVmtzWVVGQllTeGpRVUZqTEVkQlFVY3NUMEZCVHl3MFNVRkJORWtzVjBGQlZ5eE5RVUZOTEV0QlFVc3NWMEZCVnl4VlFVRlZMRXRCUVVzc1MwRkJTeXhYUVVGWExGVkJRVlVzVlVGQlZTeFZRVUZWTEZWQlFWVXNWVUZCVlN4WFFVRlhMRmRCUVZjc1ZVRkJWU3hYUVVGWExFdEJRVXNzUzBGQlN5eFhRVUZYTEZWQlFWVXNWVUZCVlN4VlFVRlZMRlZCUVZVc1ZVRkJWU3hYUVVGWExFdEJRVXNzUzBGQlN5eFhRVUZYTEZWQlFWVXNWVUZCVlN4WFFVRlhMRmRCUVZjc1ZVRkJWU3hYUVVGWExGZEJRVmNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhMUVVGTExFdEJRVXNzVlVGQlZTeExRVUZMTEUxQlFVMHNWMEZCVnl4VlFVRlZMRmRCUVZjc1RVRkJUU3hMUVVGTExFdEJRVXNzVlVGQlZTeFhRVUZYTEV0QlFVc3NTMEZCU3l4VlFVRlZMRmRCUVZjc1MwRkJTeXhMUVVGTExFdEJRVXNzVjBGQlZ5eFhRVUZYTEZWQlFWVXNWMEZCVnl4WFFVRlhMRXRCUVVzc1MwRkJTeXhYUVVGWExFdEJRVXNzUzBGQlN5eFZRVUZWTEV0QlFVc3NTMEZCU3l4WFFVRlhMRlZCUVZVc1ZVRkJWU3hWUVVGVkxGVkJRVlVzWjBWQlFXZEZMSFZDUVVGMVFpeHJRMEZCYTBNc1NVRkJTU3hsUVVGbExFdEJRVXNzUjBGQlJ5eHpSRUZCYzBRc1lVRkJZU3gzUTBGQmQwTXNSMEZCUnl4NVEwRkJlVU1zYVVKQlFXbENMR3REUVVGclF5eDVRa0ZCZVVJc2EwSkJRV3RDTEV0QlFVc3NZMEZCWXl4NVFrRkJlVUlzWVVGQllTeGpRVUZqTEdWQlFXVXNaMEpCUVdkQ0xHOUNRVUZ2UWl3d1FrRkJNRUlzT0VKQlFUaENMSEZDUVVGeFFpdzRRMEZCT0VNc1MwRkJTeXd3UWtGQk1FSXNlVUpCUVhsQ0xHRkJRV0VzWTBGQll5eGxRVUZsTEdkQ1FVRm5RaXhwUWtGQmFVSXNkVVJCUVhWRUxFdEJRVXNzZFVKQlFYVkNMSGxDUVVGNVFpeHBRa0ZCYVVJc2EwSkJRV3RDTEd0RFFVRnJReXgxUWtGQmRVSXNiVUpCUVcxQ0xHdERRVUZyUXl4eFJVRkJjVVVzZVVKQlFYbENMSFZDUVVGMVFpd3JSVUZCSzBVc2NVUkJRWEZFTERaRVFVRTJSQ3g1UWtGQmVVSXNOa0pCUVRaQ0xHbENRVUZwUWl4elFrRkJjMElzVDBGQlR5d3lRa0ZCTWtJc2QwSkJRWGRDTEd0Q1FVRnJRaXg1UWtGQmVVSXNUMEZCVHl4TFFVRkxMSGxEUVVGNVF5eFpRVUZaTEcxQ1FVRnRRaXh2UTBGQmIwTXNUMEZCVHl4VlFVRlZMRzFDUVVGdFFpeHBRMEZCYVVNc1QwRkJUeXhMUVVGTExIRkNRVUZ4UWl3eVEwRkJNa01zTkVOQlFUUkRMRzlDUVVGdlFpd3dRa0ZCTUVJc09FSkJRVGhDTEdGQlFXRXNPRU5CUVRoRExFOUJRVThzUzBGQlN5eDVRa0ZCZVVJc1kwRkJZeXh0UWtGQmJVSXNUMEZCVHl4NVFrRkJlVUlzTWtKQlFUSkNMR1ZCUVdVc1owSkJRV2RDTEdsQ1FVRnBRaXhyUWtGQmEwSXNUMEZCVHl4TFFVRkxMRWRCUVVjc2NVSkJRWEZDTzBGQlEycDZTanRCUVVOQkxHbEZRVUZsTEhWQ1FVRjFRaXhGUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12VFc5a1lXd3VjMk56Y3o5alpURmtJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4dklFbHRjRzl5ZEhOY2JtbHRjRzl5ZENCZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5VFQxVlNRMFZOUVZCZlNVMVFUMUpVWDE5ZklHWnliMjBnWENJdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2Y25WdWRHbHRaUzl6YjNWeVkyVk5ZWEJ6TG1welhDSTdYRzVwYlhCdmNuUWdYMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZTVTFRVDFKVVgxOWZJR1p5YjIwZ1hDSXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OWpjM010Ykc5aFpHVnlMMlJwYzNRdmNuVnVkR2x0WlM5aGNHa3Vhbk5jSWp0Y2JuWmhjaUJmWDE5RFUxTmZURTlCUkVWU1gwVllVRTlTVkY5Zlh5QTlJRjlmWDBOVFUxOU1UMEZFUlZKZlFWQkpYMGxOVUU5U1ZGOWZYeWhmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlUVDFWU1EwVk5RVkJmU1UxUVQxSlVYMTlmS1R0Y2JpOHZJRTF2WkhWc1pWeHVYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4dWNIVnphQ2hiYlc5a2RXeGxMbWxrTENCY0lqcGxlSEJ2Y25RZ2UxeGNiaUFnZEdobGJXVkdhV3gwWlhJNklHbHVkbVZ5ZENnNU15VXBJR2gxWlMxeWIzUmhkR1VvTVRnd1pHVm5LVHRjWEc1OVhGeHVYRnh1TG1WNFkyRnNhV1J5WVhjdVpYaGpZV3hwWkhKaGR5MXRiMlJoYkMxamIyNTBZV2x1WlhJZ2UxeGNiaUFnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4Y2JpQWdlaTFwYm1SbGVEb2dNVEE3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1TmIyUmhiQ0I3WEZ4dUlDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRnh1SUNCMGIzQTZJREE3WEZ4dUlDQnNaV1owT2lBd08xeGNiaUFnY21sbmFIUTZJREE3WEZ4dUlDQmliM1IwYjIwNklEQTdYRnh1SUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzRnSUdwMWMzUnBabmt0WTI5dWRHVnVkRG9nWTJWdWRHVnlPMXhjYmlBZ2IzWmxjbVpzYjNjNklHRjFkRzg3WEZ4dUlDQndZV1JrYVc1bk9pQmpZV3hqS0haaGNpZ3RMWE53WVdObExXWmhZM1J2Y2lrZ0tpQXhNQ2s3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1TmIyUmhiRjlmWW1GamEyZHliM1Z1WkNCN1hGeHVJQ0J3YjNOcGRHbHZiam9nWVdKemIyeDFkR1U3WEZ4dUlDQjBiM0E2SURBN1hGeHVJQ0JzWldaME9pQXdPMXhjYmlBZ2NtbG5hSFE2SURBN1hGeHVJQ0JpYjNSMGIyMDZJREE3WEZ4dUlDQjZMV2x1WkdWNE9pQXhPMXhjYmlBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2NtZGlZU2d3TENBd0xDQXdMQ0F3TGpjcE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVUVzlrWVd4ZlgyTnZiblJsYm5RZ2UxeGNiaUFnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4Y2JpQWdlaTFwYm1SbGVEb2dNanRjWEc0Z0lIZHBaSFJvT2lBeE1EQWxPMXhjYmlBZ2JXRjRMWGRwWkhSb09pQjJZWElvTFMxdFlYZ3RkMmxrZEdncE8xeGNiaUFnYldGNExXaGxhV2RvZERvZ01UQXdKVHRjWEc0Z0lHOXdZV05wZEhrNklEQTdYRnh1SUNCMGNtRnVjMlp2Y20wNklIUnlZVzV6YkdGMFpWa29NVEJ3ZUNrN1hGeHVJQ0JoYm1sdFlYUnBiMjQ2SUUxdlpHRnNYMTlqYjI1MFpXNTBYMlpoWkdVdGFXNGdNQzR4Y3lCbFlYTmxMVzkxZENBd0xqQTFjeUJtYjNKM1lYSmtjenRjWEc0Z0lIQnZjMmwwYVc5dU9pQnlaV3hoZEdsMlpUdGNYRzRnSUc5MlpYSm1iRzkzTFhrNklHRjFkRzg3WEZ4dUlDQmlZV05yWjNKdmRXNWtPaUIyWVhJb0xTMXBjMnhoYm1RdFltY3RZMjlzYjNJcE8xeGNiaUFnWW05eVpHVnlPaUF4Y0hnZ2MyOXNhV1FnZG1GeUtDMHRaR2xoYkc5bkxXSnZjbVJsY2kxamIyeHZjaWs3WEZ4dUlDQmliM2d0YzJoaFpHOTNPaUF3SURKd2VDQXhNSEI0SUhKblltRW9NQ3dnTUN3Z01Dd2dNQzR5TlNrN1hGeHVJQ0JpYjNKa1pYSXRjbUZrYVhWek9pQTJjSGc3WEZ4dUlDQmliM2d0YzJsNmFXNW5PaUJpYjNKa1pYSXRZbTk0TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVRXOWtZV3hmWDJOdmJuUmxiblE2Wm05amRYTWdlMXhjYmlBZ2IzVjBiR2x1WlRvZ2JtOXVaVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGN0TFcxdlltbHNaUzVsZUdOaGJHbGtjbUYzSUM1TmIyUmhiRjlmWTI5dWRHVnVkQ0I3WEZ4dUlDQnRZWGd0ZDJsa2RHZzZJREV3TUNVN1hGeHVJQ0JpYjNKa1pYSTZJREE3WEZ4dUlDQmliM0prWlhJdGNtRmthWFZ6T2lBd08xeGNibjFjWEc1Y1hHNUFhMlY1Wm5KaGJXVnpJRTF2WkdGc1gxOWpiMjUwWlc1MFgyWmhaR1V0YVc0Z2UxeGNiaUFnWm5KdmJTQjdYRnh1SUNBZ0lHOXdZV05wZEhrNklEQTdYRnh1SUNBZ0lIUnlZVzV6Wm05eWJUb2dkSEpoYm5Oc1lYUmxXU2d4TUhCNEtUdGNYRzRnSUgxY1hHNGdJSFJ2SUh0Y1hHNGdJQ0FnYjNCaFkybDBlVG9nTVR0Y1hHNGdJQ0FnZEhKaGJuTm1iM0p0T2lCMGNtRnVjMnhoZEdWWktEQXBPMXhjYmlBZ2ZWeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVUVzlrWVd4ZlgyTnNiM05sSUh0Y1hHNGdJSGRwWkhSb09pQmpZV3hqS0haaGNpZ3RMWE53WVdObExXWmhZM1J2Y2lrZ0tpQTNLVHRjWEc0Z0lHaGxhV2RvZERvZ1kyRnNZeWgyWVhJb0xTMXpjR0ZqWlMxbVlXTjBiM0lwSUNvZ055azdYRnh1SUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzRnSUdwMWMzUnBabmt0WTI5dWRHVnVkRG9nWTJWdWRHVnlPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1VFc5a1lXeGZYMk5zYjNObElITjJaeUI3WEZ4dUlDQm9aV2xuYUhRNklHTmhiR01vZG1GeUtDMHRjM0JoWTJVdFptRmpkRzl5S1NBcUlEVXBPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeTB0Ylc5aWFXeGxMbVY0WTJGc2FXUnlZWGNnTGsxdlpHRnNJSHRjWEc0Z0lIQmhaR1JwYm1jNklEQTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNMUzF0YjJKcGJHVXVaWGhqWVd4cFpISmhkeUF1VFc5a1lXeGZYMk52Ym5SbGJuUWdlMXhjYmlBZ2NHOXphWFJwYjI0NklHRmljMjlzZFhSbE8xeGNiaUFnZEc5d09pQXdPMXhjYmlBZ2JHVm1kRG9nTUR0Y1hHNGdJSEpwWjJoME9pQXdPMXhjYmlBZ1ltOTBkRzl0T2lBd08xeGNibjFjSWl3Z1hDSmNJaXg3WENKMlpYSnphVzl1WENJNk15eGNJbk52ZFhKalpYTmNJanBiWENKM1pXSndZV05yT2k4dkxpOHVMaTh1TGk5amMzTXZkbUZ5YVdGaWJHVnpMbTF2WkhWc1pTNXpZM056WENJc1hDSjNaV0p3WVdOck9pOHZMaTh1TGk4dUxpOWpiMjF3YjI1bGJuUnpMMDF2WkdGc0xuTmpjM05jSWwwc1hDSnVZVzFsYzF3aU9sdGRMRndpYldGd2NHbHVaM05jSWpwY0lrRkJWVUU3UlVGRFJTd3lRMEZCUVR0QlExUkdPenRCUVVORk8wVkJRMFVzYTBKQlFVRTdSVUZEUVN4WFFVRkJPMEZCUlVvN1FVRkRSVHRGUVVORkxHdENRVUZCTzBWQlEwRXNUVUZCUVR0RlFVTkJMRTlCUVVFN1JVRkRRU3hSUVVGQk8wVkJRMEVzVTBGQlFUdEZRVU5CTEdGQlFVRTdSVUZEUVN4dFFrRkJRVHRGUVVOQkxIVkNRVUZCTzBWQlEwRXNZMEZCUVR0RlFVTkJMSFZEUVVGQk8wRkJRMG83UVVGRlJUdEZRVU5GTEd0Q1FVRkJPMFZCUTBFc1RVRkJRVHRGUVVOQkxFOUJRVUU3UlVGRFFTeFJRVUZCTzBWQlEwRXNVMEZCUVR0RlFVTkJMRlZCUVVFN1JVRkRRU3h2UTBGQlFUdEJRVUZLTzBGQlIwVTdSVUZEUlN4clFrRkJRVHRGUVVOQkxGVkJRVUU3UlVGRFFTeFhRVUZCTzBWQlEwRXNNa0pCUVVFN1JVRkRRU3huUWtGQlFUdEZRVVZCTEZWQlFVRTdSVUZEUVN3eVFrRkJRVHRGUVVOQkxEaEVRVUZCTzBWQlEwRXNhMEpCUVVFN1JVRkRRU3huUWtGQlFUdEZRVWRCTEd0RFFVRkJPMFZCUlVFc05FTkJRVUU3UlVGRFFTd3dRMEZCUVR0RlFVTkJMR3RDUVVGQk8wVkJRMEVzYzBKQlFVRTdRVUZNU2p0QlFVOUpPMFZCUTBVc1lVRkJRVHRCUVV4T08wRkVOME5YTzBWRGMwUk1MR1ZCUVVFN1JVRkRRU3hUUVVGQk8wVkJRMEVzWjBKQlFVRTdRVUZPVGpzN1FVRlZSVHRGUVVORk8wbEJRMFVzVlVGQlFUdEpRVU5CTERKQ1FVRkJPMFZCVUVvN1JVRlRSVHRKUVVORkxGVkJRVUU3U1VGRFFTeDNRa0ZCUVR0RlFWQktPMEZCUTBZN1FVRlZSVHRGUVVORkxHOURRVUZCTzBWQlEwRXNjVU5CUVVFN1JVRkRRU3hoUVVGQk8wVkJRMEVzYlVKQlFVRTdSVUZEUVN4MVFrRkJRVHRCUVZKS08wRkJWVWs3UlVGRFJTeHhRMEZCUVR0QlFWSk9PMEZCWVVrN1JVRkRSU3hWUVVGQk8wRkJXRTQ3UVVGalNUdEZRVU5GTEd0Q1FVRkJPMFZCUTBFc1RVRkJRVHRGUVVOQkxFOUJRVUU3UlVGRFFTeFJRVUZCTzBWQlEwRXNVMEZCUVR0QlFWcE9YQ0lzWENKemIzVnlZMlZ6UTI5dWRHVnVkRndpT2x0Y0lrQnBiWEJ2Y25RZ1hGeGNJbTl3Wlc0dFkyOXNiM0l2YjNCbGJpMWpiMnh2Y2k1elkzTnpYRnhjSWp0Y1hHNWNYRzVBYldsNGFXNGdhWE5OYjJKcGJHVW9LU0I3WEZ4dUlDQkFZWFF0Y205dmRDQXVaWGhqWVd4cFpISmhkeTB0Ylc5aWFXeGxJM3NtZlNCN1hGeHVJQ0FnSUVCamIyNTBaVzUwTzF4Y2JpQWdmVnhjYm4xY1hHNWNYRzRrZEdobGJXVXRabWxzZEdWeU9pQmNYRndpYVc1MlpYSjBLRGt6SlNrZ2FIVmxMWEp2ZEdGMFpTZ3hPREJrWldjcFhGeGNJanRjWEc1Y1hHNDZaWGh3YjNKMElIdGNYRzRnSUhSb1pXMWxSbWxzZEdWeU9pQjFibkYxYjNSbEtDUjBhR1Z0WlMxbWFXeDBaWElwTzF4Y2JuMWNYRzVjSWl4Y0lrQnBiWEJ2Y25RZ1hGeGNJaTR1TDJOemN5OTJZWEpwWVdKc1pYTXViVzlrZFd4bFhGeGNJanRjWEc1Y1hHNHVaWGhqWVd4cFpISmhkeUI3WEZ4dUlDQW1MbVY0WTJGc2FXUnlZWGN0Ylc5a1lXd3RZMjl1ZEdGcGJtVnlJSHRjWEc0Z0lDQWdjRzl6YVhScGIyNDZJR0ZpYzI5c2RYUmxPMXhjYmlBZ0lDQjZMV2x1WkdWNE9pQXhNRHRjWEc0Z0lIMWNYRzVjWEc0Z0lDNU5iMlJoYkNCN1hGeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y1hHNGdJQ0FnZEc5d09pQXdPMXhjYmlBZ0lDQnNaV1owT2lBd08xeGNiaUFnSUNCeWFXZG9kRG9nTUR0Y1hHNGdJQ0FnWW05MGRHOXRPaUF3TzF4Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeGNiaUFnSUNCaGJHbG5iaTFwZEdWdGN6b2dZMlZ1ZEdWeU8xeGNiaUFnSUNCcWRYTjBhV1o1TFdOdmJuUmxiblE2SUdObGJuUmxjanRjWEc0Z0lDQWdiM1psY21ac2IzYzZJR0YxZEc4N1hGeHVJQ0FnSUhCaFpHUnBibWM2SUdOaGJHTW9kbUZ5S0MwdGMzQmhZMlV0Wm1GamRHOXlLU0FxSURFd0tUdGNYRzRnSUgxY1hHNWNYRzRnSUM1TmIyUmhiRjlmWW1GamEyZHliM1Z1WkNCN1hGeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y1hHNGdJQ0FnZEc5d09pQXdPMXhjYmlBZ0lDQnNaV1owT2lBd08xeGNiaUFnSUNCeWFXZG9kRG9nTUR0Y1hHNGdJQ0FnWW05MGRHOXRPaUF3TzF4Y2JpQWdJQ0I2TFdsdVpHVjRPaUF4TzF4Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIwY21GdWMzQmhjbVZ1ZEdsNlpTZ2tiMk10WW14aFkyc3NJREF1TXlrN1hGeHVJQ0I5WEZ4dVhGeHVJQ0F1VFc5a1lXeGZYMk52Ym5SbGJuUWdlMXhjYmlBZ0lDQndiM05wZEdsdmJqb2djbVZzWVhScGRtVTdYRnh1SUNBZ0lIb3RhVzVrWlhnNklESTdYRnh1SUNBZ0lIZHBaSFJvT2lBeE1EQWxPMXhjYmlBZ0lDQnRZWGd0ZDJsa2RHZzZJSFpoY2lndExXMWhlQzEzYVdSMGFDazdYRnh1SUNBZ0lHMWhlQzFvWldsbmFIUTZJREV3TUNVN1hGeHVYRnh1SUNBZ0lHOXdZV05wZEhrNklEQTdYRnh1SUNBZ0lIUnlZVzV6Wm05eWJUb2dkSEpoYm5Oc1lYUmxXU2d4TUhCNEtUdGNYRzRnSUNBZ1lXNXBiV0YwYVc5dU9pQk5iMlJoYkY5ZlkyOXVkR1Z1ZEY5bVlXUmxMV2x1SURBdU1YTWdaV0Z6WlMxdmRYUWdNQzR3TlhNZ1ptOXlkMkZ5WkhNN1hGeHVJQ0FnSUhCdmMybDBhVzl1T2lCeVpXeGhkR2wyWlR0Y1hHNGdJQ0FnYjNabGNtWnNiM2N0ZVRvZ1lYVjBienRjWEc1Y1hHNGdJQ0FnTHk4Z1ptOXlJRzF2WkdGc2N5d2djbVZ6WlhRZ1lteDFjbko1SUdKblhGeHVJQ0FnSUdKaFkydG5jbTkxYm1RNklIWmhjaWd0TFdsemJHRnVaQzFpWnkxamIyeHZjaWs3WEZ4dVhGeHVJQ0FnSUdKdmNtUmxjam9nTVhCNElITnZiR2xrSUhaaGNpZ3RMV1JwWVd4dlp5MWliM0prWlhJdFkyOXNiM0lwTzF4Y2JpQWdJQ0JpYjNndGMyaGhaRzkzT2lBd0lESndlQ0F4TUhCNElIUnlZVzV6Y0dGeVpXNTBhWHBsS0NSdll5MWliR0ZqYXl3Z01DNDNOU2s3WEZ4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEWndlRHRjWEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y1hHNWNYRzRnSUNBZ0pqcG1iMk4xY3lCN1hGeHVJQ0FnSUNBZ2IzVjBiR2x1WlRvZ2JtOXVaVHRjWEc0Z0lDQWdmVnhjYmx4Y2JpQWdJQ0JBYVc1amJIVmtaU0JwYzAxdlltbHNaU0I3WEZ4dUlDQWdJQ0FnYldGNExYZHBaSFJvT2lBeE1EQWxPMXhjYmlBZ0lDQWdJR0p2Y21SbGNqb2dNRHRjWEc0Z0lDQWdJQ0JpYjNKa1pYSXRjbUZrYVhWek9pQXdPMXhjYmlBZ0lDQjlYRnh1SUNCOVhGeHVYRnh1SUNCQWEyVjVabkpoYldWeklFMXZaR0ZzWDE5amIyNTBaVzUwWDJaaFpHVXRhVzRnZTF4Y2JpQWdJQ0JtY205dElIdGNYRzRnSUNBZ0lDQnZjR0ZqYVhSNU9pQXdPMXhjYmlBZ0lDQWdJSFJ5WVc1elptOXliVG9nZEhKaGJuTnNZWFJsV1NneE1IQjRLVHRjWEc0Z0lDQWdmVnhjYmlBZ0lDQjBieUI3WEZ4dUlDQWdJQ0FnYjNCaFkybDBlVG9nTVR0Y1hHNGdJQ0FnSUNCMGNtRnVjMlp2Y20wNklIUnlZVzV6YkdGMFpWa29NQ2s3WEZ4dUlDQWdJSDFjWEc0Z0lIMWNYRzVjWEc0Z0lDNU5iMlJoYkY5ZlkyeHZjMlVnZTF4Y2JpQWdJQ0IzYVdSMGFEb2dZMkZzWXloMllYSW9MUzF6Y0dGalpTMW1ZV04wYjNJcElDb2dOeWs3WEZ4dUlDQWdJR2hsYVdkb2REb2dZMkZzWXloMllYSW9MUzF6Y0dGalpTMW1ZV04wYjNJcElDb2dOeWs3WEZ4dUlDQWdJR1JwYzNCc1lYazZJR1pzWlhnN1hGeHVJQ0FnSUdGc2FXZHVMV2wwWlcxek9pQmpaVzUwWlhJN1hGeHVJQ0FnSUdwMWMzUnBabmt0WTI5dWRHVnVkRG9nWTJWdWRHVnlPMXhjYmx4Y2JpQWdJQ0J6ZG1jZ2UxeGNiaUFnSUNBZ0lHaGxhV2RvZERvZ1kyRnNZeWgyWVhJb0xTMXpjR0ZqWlMxbVlXTjBiM0lwSUNvZ05TazdYRnh1SUNBZ0lIMWNYRzRnSUgxY1hHNWNYRzRnSUVCcGJtTnNkV1JsSUdselRXOWlhV3hsSUh0Y1hHNGdJQ0FnTGsxdlpHRnNJSHRjWEc0Z0lDQWdJQ0J3WVdSa2FXNW5PaUF3TzF4Y2JpQWdJQ0I5WEZ4dVhGeHVJQ0FnSUM1TmIyUmhiRjlmWTI5dWRHVnVkQ0I3WEZ4dUlDQWdJQ0FnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4Y2JpQWdJQ0FnSUhSdmNEb2dNRHRjWEc0Z0lDQWdJQ0JzWldaME9pQXdPMXhjYmlBZ0lDQWdJSEpwWjJoME9pQXdPMXhjYmlBZ0lDQWdJR0p2ZEhSdmJUb2dNRHRjWEc0Z0lDQWdmVnhjYmlBZ2ZWeGNibjFjWEc1Y0lsMHNYQ0p6YjNWeVkyVlNiMjkwWENJNlhDSmNJbjFkS1R0Y2JpOHZJRVY0Y0c5eWRITmNibVY0Y0c5eWRDQmtaV1poZFd4MElGOWZYME5UVTE5TVQwRkVSVkpmUlZoUVQxSlVYMTlmTzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Nb2RhbC5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1Bhc3RlQ2hhcnREaWFsb2cuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1Bhc3RlQ2hhcnREaWFsb2cuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8vIEltcG9ydHNcXG5cXG5cXG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpKChfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQoKSkpO1xcbi8vIE1vZHVsZVxcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXFxcIjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcXFxufVxcXFxuXFxcXG4uZXhjYWxpZHJhdy0tbW9iaWxlLmV4Y2FsaWRyYXcgLlBhc3RlQ2hhcnREaWFsb2cgLklzbGFuZCB7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxcXG59XFxcXG5cXFxcbi5leGNhbGlkcmF3IC5QYXN0ZUNoYXJ0RGlhbG9nIC5jb250YWluZXIge1xcXFxuICBkaXNwbGF5OiBmbGV4O1xcXFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcXFxcbiAgZmxleC13cmFwOiB3cmFwO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXctLW1vYmlsZS5leGNhbGlkcmF3IC5QYXN0ZUNoYXJ0RGlhbG9nIC5jb250YWluZXIge1xcXFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcXFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXFxcbn1cXFxcblxcXFxuLmV4Y2FsaWRyYXcgLlBhc3RlQ2hhcnREaWFsb2cgLkNoYXJ0UHJldmlldyB7XFxcXG4gIG1hcmdpbjogOHB4O1xcXFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxcXG4gIHdpZHRoOiAxOTJweDtcXFxcbiAgaGVpZ2h0OiAxMjhweDtcXFxcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcXFxuICBwYWRkaW5nOiAxcHg7XFxcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjZWQ0ZGE7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcXFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5QYXN0ZUNoYXJ0RGlhbG9nIC5DaGFydFByZXZpZXcgZGl2IHtcXFxcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLlBhc3RlQ2hhcnREaWFsb2cgLkNoYXJ0UHJldmlldyBzdmcge1xcXFxuICBtYXgtaGVpZ2h0OiAxMjBweDtcXFxcbiAgbWF4LXdpZHRoOiAxODZweDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5QYXN0ZUNoYXJ0RGlhbG9nIC5DaGFydFByZXZpZXc6aG92ZXIge1xcXFxuICBwYWRkaW5nOiAwO1xcXFxuICBib3JkZXI6IDJweCBzb2xpZCAjMzM5YWYwO1xcXFxufVxcXCIsIFxcXCJcXFwiLHtcXFwidmVyc2lvblxcXCI6MyxcXFwic291cmNlc1xcXCI6W1xcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9QYXN0ZUNoYXJ0RGlhbG9nLnNjc3NcXFwiXSxcXFwibmFtZXNcXFwiOltdLFxcXCJtYXBwaW5nc1xcXCI6XFxcIkFBVUE7RUFDRSwyQ0FBQTtBQ1RGOztBQUdNO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0FBQVI7O0FBR0k7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSw2QkFBQTtFQUNBLGVBQUE7QUFBTjtBRFhXO0VDYUgsc0JBQUE7RUFDQSx1QkFBQTtBQUNSOztBQUVJO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSx5QkFBQTtFQUNBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0VBQ0EsdUJBQUE7QUFDTjtBQUFNO0VBQ0UscUJBQUE7QUFFUjtBQUFNO0VBQ0UsaUJBQUE7RUFDQSxnQkFBQTtBQUVSO0FBQU07RUFDRSxVQUFBO0VBQ0EseUJBQUE7QUFFUlxcXCIsXFxcInNvdXJjZXNDb250ZW50XFxcIjpbXFxcIkBpbXBvcnQgXFxcXFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXFxcXFwiO1xcXFxuXFxcXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXFxcbiAgICBAY29udGVudDtcXFxcbiAgfVxcXFxufVxcXFxuXFxcXG4kdGhlbWUtZmlsdGVyOiBcXFxcXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXFxcXFwiO1xcXFxuXFxcXG46ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxcXG59XFxcXG5cXFwiLFxcXCJAaW1wb3J0IFxcXFxcXFwiLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGVcXFxcXFxcIjtcXFxcblxcXFxuLmV4Y2FsaWRyYXcge1xcXFxuICAuUGFzdGVDaGFydERpYWxvZyB7XFxcXG4gICAgQGluY2x1ZGUgaXNNb2JpbGUge1xcXFxuICAgICAgLklzbGFuZCB7XFxcXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuICAgIC5jb250YWluZXIge1xcXFxuICAgICAgZGlzcGxheTogZmxleDtcXFxcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcXFxcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcXFxcbiAgICAgIEBpbmNsdWRlIGlzTW9iaWxlIHtcXFxcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXFxcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuICAgIC5DaGFydFByZXZpZXcge1xcXFxuICAgICAgbWFyZ2luOiA4cHg7XFxcXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxcXG4gICAgICB3aWR0aDogMTkycHg7XFxcXG4gICAgICBoZWlnaHQ6IDEyOHB4O1xcXFxuICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xcXFxuICAgICAgcGFkZGluZzogMXB4O1xcXFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgJG9jLWdyYXktNDtcXFxcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXFxcbiAgICAgIGRpdiB7XFxcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXFxcbiAgICAgIH1cXFxcbiAgICAgIHN2ZyB7XFxcXG4gICAgICAgIG1heC1oZWlnaHQ6IDEyMHB4O1xcXFxuICAgICAgICBtYXgtd2lkdGg6IDE4NnB4O1xcXFxuICAgICAgfVxcXFxuICAgICAgJjpob3ZlciB7XFxcXG4gICAgICAgIHBhZGRpbmc6IDA7XFxcXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRvYy1ibHVlLTU7XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuICB9XFxcXG59XFxcXG5cXFwiXSxcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoX19fQ1NTX0xPQURFUl9FWFBPUlRfX18pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpOXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVFZWE4wWlVOb1lYSjBSR2xoYkc5bkxuTmpjM011YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdRVUZCUVR0QlFVTTRTRHRCUVVOcVFqdEJRVU0zUnl3NFFrRkJPRUlzZFVkQlFUSkNMRU5CUVVNc1owaEJRWEZETzBGQlF5OUdPMEZCUTBFc2JVUkJRVzFFTEdkRVFVRm5SQ3hIUVVGSExEaEVRVUU0UkN4clFrRkJhMElzTWtKQlFUSkNMRWRCUVVjc09FTkJRVGhETEd0Q1FVRnJRaXgzUWtGQmQwSXNhME5CUVd0RExHOUNRVUZ2UWl4SFFVRkhMQ3RFUVVFclJDd3lRa0ZCTWtJc05FSkJRVFJDTEVkQlFVY3NhVVJCUVdsRUxHZENRVUZuUWl4MVFrRkJkVUlzYVVKQlFXbENMR3RDUVVGclFpeDFRa0ZCZFVJc2FVSkJRV2xDTERoQ1FVRTRRaXhyUWtGQmEwSXNkMEpCUVhkQ0xEUkNRVUUwUWl3MFFrRkJORUlzUjBGQlJ5eHRSRUZCYlVRc01FSkJRVEJDTEVkQlFVY3NiVVJCUVcxRUxITkNRVUZ6UWl4eFFrRkJjVUlzUjBGQlJ5eHhSRUZCY1VRc1pVRkJaU3c0UWtGQk9FSXNSMEZCUnl4UFFVRlBMSFZLUVVGMVNpeFhRVUZYTEUxQlFVMHNTMEZCU3l4VlFVRlZMRmRCUVZjc1RVRkJUU3hMUVVGTExGVkJRVlVzVjBGQlZ5eFhRVUZYTEZWQlFWVXNTMEZCU3l4TFFVRkxMRmRCUVZjc1YwRkJWeXhOUVVGTkxFdEJRVXNzVlVGQlZTeFhRVUZYTEZWQlFWVXNWVUZCVlN4WFFVRlhMRlZCUVZVc1YwRkJWeXhWUVVGVkxGZEJRVmNzVjBGQlZ5eFhRVUZYTEV0QlFVc3NTMEZCU3l4WFFVRlhMRXRCUVVzc1MwRkJTeXhYUVVGWExGZEJRVmNzUzBGQlN5eExRVUZMTEZWQlFWVXNWMEZCVnl4blJVRkJaMFVzZFVKQlFYVkNMR3REUVVGclF5eEpRVUZKTEdWQlFXVXNTMEZCU3l4SFFVRkhMSE5FUVVGelJDeGhRVUZoTEhkRFFVRjNReXhIUVVGSExIbERRVUY1UXl4cFFrRkJhVUlzZFVKQlFYVkNMSGxDUVVGNVFpeHBRa0ZCYVVJc2QwSkJRWGRDTEdsRFFVRnBReXhUUVVGVExFOUJRVThzYTBKQlFXdENMSE5DUVVGelFpdzBRa0ZCTkVJc2MwTkJRWE5ETEhkQ1FVRjNRaXd5UWtGQk1rSXNhVU5CUVdsRExHdERRVUZyUXl4VFFVRlRMRTlCUVU4c2NVSkJRWEZDTEc5Q1FVRnZRaXd5UWtGQk1rSXNjVUpCUVhGQ0xITkNRVUZ6UWl3eVFrRkJNa0lzY1VKQlFYRkNMSEZEUVVGeFF5eHpRa0ZCYzBJc05FSkJRVFJDTEdkRFFVRm5ReXhuUTBGQlowTXNZVUZCWVN4blEwRkJaME1zVTBGQlV5eGhRVUZoTERSQ1FVRTBRaXd5UWtGQk1rSXNVMEZCVXl4cFFrRkJhVUlzY1VKQlFYRkNMSFZEUVVGMVF5eFRRVUZUTEU5QlFVOHNTMEZCU3l4SFFVRkhMSEZDUVVGeFFqdEJRVU53ZGtZN1FVRkRRU3hwUlVGQlpTeDFRa0ZCZFVJc1JVRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5amIyMXdiMjVsYm5SekwxQmhjM1JsUTJoaGNuUkVhV0ZzYjJjdWMyTnpjejlrWlRSbElsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaTh2SUVsdGNHOXlkSE5jYm1sdGNHOXlkQ0JmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlUVDFWU1EwVk5RVkJmU1UxUVQxSlVYMTlmSUdaeWIyMGdYQ0l1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTlqYzNNdGJHOWhaR1Z5TDJScGMzUXZjblZ1ZEdsdFpTOXpiM1Z5WTJWTllYQnpMbXB6WENJN1hHNXBiWEJ2Y25RZ1gxOWZRMU5UWDB4UFFVUkZVbDlCVUVsZlNVMVFUMUpVWDE5ZklHWnliMjBnWENJdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2Y25WdWRHbHRaUzloY0drdWFuTmNJanRjYm5aaGNpQmZYMTlEVTFOZlRFOUJSRVZTWDBWWVVFOVNWRjlmWHlBOUlGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgwbE5VRTlTVkY5Zlh5aGZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOVRUMVZTUTBWTlFWQmZTVTFRVDFKVVgxOWZLVHRjYmk4dklFMXZaSFZzWlZ4dVgxOWZRMU5UWDB4UFFVUkZVbDlGV0ZCUFVsUmZYMTh1Y0hWemFDaGJiVzlrZFd4bExtbGtMQ0JjSWpwbGVIQnZjblFnZTF4Y2JpQWdkR2hsYldWR2FXeDBaWEk2SUdsdWRtVnlkQ2c1TXlVcElHaDFaUzF5YjNSaGRHVW9NVGd3WkdWbktUdGNYRzU5WEZ4dVhGeHVMbVY0WTJGc2FXUnlZWGN0TFcxdlltbHNaUzVsZUdOaGJHbGtjbUYzSUM1UVlYTjBaVU5vWVhKMFJHbGhiRzluSUM1SmMyeGhibVFnZTF4Y2JpQWdaR2x6Y0d4aGVUb2dabXhsZUR0Y1hHNGdJR1pzWlhndFpHbHlaV04wYVc5dU9pQmpiMngxYlc0N1hGeHVmVnhjYmx4Y2JpNWxlR05oYkdsa2NtRjNJQzVRWVhOMFpVTm9ZWEowUkdsaGJHOW5JQzVqYjI1MFlXbHVaWElnZTF4Y2JpQWdaR2x6Y0d4aGVUb2dabXhsZUR0Y1hHNGdJR0ZzYVdkdUxXbDBaVzF6T2lCalpXNTBaWEk3WEZ4dUlDQnFkWE4wYVdaNUxXTnZiblJsYm5RNklITndZV05sTFdGeWIzVnVaRHRjWEc0Z0lHWnNaWGd0ZDNKaGNEb2dkM0poY0R0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjdExXMXZZbWxzWlM1bGVHTmhiR2xrY21GM0lDNVFZWE4wWlVOb1lYSjBSR2xoYkc5bklDNWpiMjUwWVdsdVpYSWdlMXhjYmlBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjWEc0Z0lHcDFjM1JwWm5rdFkyOXVkR1Z1ZERvZ1kyVnVkR1Z5TzF4Y2JuMWNYRzVjWEc0dVpYaGpZV3hwWkhKaGR5QXVVR0Z6ZEdWRGFHRnlkRVJwWVd4dlp5QXVRMmhoY25SUWNtVjJhV1YzSUh0Y1hHNGdJRzFoY21kcGJqb2dPSEI0TzF4Y2JpQWdkR1Y0ZEMxaGJHbG5iam9nWTJWdWRHVnlPMXhjYmlBZ2QybGtkR2c2SURFNU1uQjRPMXhjYmlBZ2FHVnBaMmgwT2lBeE1qaHdlRHRjWEc0Z0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VEdGNYRzRnSUhCaFpHUnBibWM2SURGd2VEdGNYRzRnSUdKdmNtUmxjam9nTVhCNElITnZiR2xrSUNOalpXUTBaR0U3WEZ4dUlDQmthWE53YkdGNU9pQm1iR1Y0TzF4Y2JpQWdZV3hwWjI0dGFYUmxiWE02SUdObGJuUmxjanRjWEc0Z0lHcDFjM1JwWm5rdFkyOXVkR1Z1ZERvZ1kyVnVkR1Z5TzF4Y2JpQWdZbUZqYTJkeWIzVnVaRG9nZEhKaGJuTndZWEpsYm5RN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNVFZWE4wWlVOb1lYSjBSR2xoYkc5bklDNURhR0Z5ZEZCeVpYWnBaWGNnWkdsMklIdGNYRzRnSUdScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6dGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbEJoYzNSbFEyaGhjblJFYVdGc2IyY2dMa05vWVhKMFVISmxkbWxsZHlCemRtY2dlMXhjYmlBZ2JXRjRMV2hsYVdkb2REb2dNVEl3Y0hnN1hGeHVJQ0J0WVhndGQybGtkR2c2SURFNE5uQjRPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1VUdGemRHVkRhR0Z5ZEVScFlXeHZaeUF1UTJoaGNuUlFjbVYyYVdWM09taHZkbVZ5SUh0Y1hHNGdJSEJoWkdScGJtYzZJREE3WEZ4dUlDQmliM0prWlhJNklESndlQ0J6YjJ4cFpDQWpNek01WVdZd08xeGNibjFjSWl3Z1hDSmNJaXg3WENKMlpYSnphVzl1WENJNk15eGNJbk52ZFhKalpYTmNJanBiWENKM1pXSndZV05yT2k4dkxpOHVMaTh1TGk5amMzTXZkbUZ5YVdGaWJHVnpMbTF2WkhWc1pTNXpZM056WENJc1hDSjNaV0p3WVdOck9pOHZMaTh1TGk4dUxpOWpiMjF3YjI1bGJuUnpMMUJoYzNSbFEyaGhjblJFYVdGc2IyY3VjMk56YzF3aVhTeGNJbTVoYldWelhDSTZXMTBzWENKdFlYQndhVzVuYzF3aU9sd2lRVUZWUVR0RlFVTkZMREpEUVVGQk8wRkRWRVk3TzBGQlIwMDdSVUZEUlN4aFFVRkJPMFZCUTBFc2MwSkJRVUU3UVVGQlVqczdRVUZIU1R0RlFVTkZMR0ZCUVVFN1JVRkRRU3h0UWtGQlFUdEZRVU5CTERaQ1FVRkJPMFZCUTBFc1pVRkJRVHRCUVVGT08wRkVXRmM3UlVOaFNDeHpRa0ZCUVR0RlFVTkJMSFZDUVVGQk8wRkJRMUk3TzBGQlJVazdSVUZEUlN4WFFVRkJPMFZCUTBFc2EwSkJRVUU3UlVGRFFTeFpRVUZCTzBWQlEwRXNZVUZCUVR0RlFVTkJMR3RDUVVGQk8wVkJRMEVzV1VGQlFUdEZRVU5CTEhsQ1FVRkJPMFZCUTBFc1lVRkJRVHRGUVVOQkxHMUNRVUZCTzBWQlEwRXNkVUpCUVVFN1JVRkRRU3gxUWtGQlFUdEJRVU5PTzBGQlFVMDdSVUZEUlN4eFFrRkJRVHRCUVVWU08wRkJRVTA3UlVGRFJTeHBRa0ZCUVR0RlFVTkJMR2RDUVVGQk8wRkJSVkk3UVVGQlRUdEZRVU5GTEZWQlFVRTdSVUZEUVN4NVFrRkJRVHRCUVVWU1hDSXNYQ0p6YjNWeVkyVnpRMjl1ZEdWdWRGd2lPbHRjSWtCcGJYQnZjblFnWEZ4Y0ltOXdaVzR0WTI5c2IzSXZiM0JsYmkxamIyeHZjaTV6WTNOelhGeGNJanRjWEc1Y1hHNUFiV2w0YVc0Z2FYTk5iMkpwYkdVb0tTQjdYRnh1SUNCQVlYUXRjbTl2ZENBdVpYaGpZV3hwWkhKaGR5MHRiVzlpYVd4bEkzc21mU0I3WEZ4dUlDQWdJRUJqYjI1MFpXNTBPMXhjYmlBZ2ZWeGNibjFjWEc1Y1hHNGtkR2hsYldVdFptbHNkR1Z5T2lCY1hGd2lhVzUyWlhKMEtEa3pKU2tnYUhWbExYSnZkR0YwWlNneE9EQmtaV2NwWEZ4Y0lqdGNYRzVjWEc0NlpYaHdiM0owSUh0Y1hHNGdJSFJvWlcxbFJtbHNkR1Z5T2lCMWJuRjFiM1JsS0NSMGFHVnRaUzFtYVd4MFpYSXBPMXhjYm4xY1hHNWNJaXhjSWtCcGJYQnZjblFnWEZ4Y0lpNHVMMk56Y3k5MllYSnBZV0pzWlhNdWJXOWtkV3hsWEZ4Y0lqdGNYRzVjWEc0dVpYaGpZV3hwWkhKaGR5QjdYRnh1SUNBdVVHRnpkR1ZEYUdGeWRFUnBZV3h2WnlCN1hGeHVJQ0FnSUVCcGJtTnNkV1JsSUdselRXOWlhV3hsSUh0Y1hHNGdJQ0FnSUNBdVNYTnNZVzVrSUh0Y1hHNGdJQ0FnSUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dUlDQWdJQ0FnSUNCbWJHVjRMV1JwY21WamRHbHZiam9nWTI5c2RXMXVPMXhjYmlBZ0lDQWdJSDFjWEc0Z0lDQWdmVnhjYmlBZ0lDQXVZMjl1ZEdGcGJtVnlJSHRjWEc0Z0lDQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeGNiaUFnSUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJqWlc1MFpYSTdYRnh1SUNBZ0lDQWdhblZ6ZEdsbWVTMWpiMjUwWlc1ME9pQnpjR0ZqWlMxaGNtOTFibVE3WEZ4dUlDQWdJQ0FnWm14bGVDMTNjbUZ3T2lCM2NtRndPMXhjYmlBZ0lDQWdJRUJwYm1Oc2RXUmxJR2x6VFc5aWFXeGxJSHRjWEc0Z0lDQWdJQ0FnSUdac1pYZ3RaR2x5WldOMGFXOXVPaUJqYjJ4MWJXNDdYRnh1SUNBZ0lDQWdJQ0JxZFhOMGFXWjVMV052Ym5SbGJuUTZJR05sYm5SbGNqdGNYRzRnSUNBZ0lDQjlYRnh1SUNBZ0lIMWNYRzRnSUNBZ0xrTm9ZWEowVUhKbGRtbGxkeUI3WEZ4dUlDQWdJQ0FnYldGeVoybHVPaUE0Y0hnN1hGeHVJQ0FnSUNBZ2RHVjRkQzFoYkdsbmJqb2dZMlZ1ZEdWeU8xeGNiaUFnSUNBZ0lIZHBaSFJvT2lBeE9USndlRHRjWEc0Z0lDQWdJQ0JvWldsbmFIUTZJREV5T0hCNE8xeGNiaUFnSUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VEdGNYRzRnSUNBZ0lDQndZV1JrYVc1bk9pQXhjSGc3WEZ4dUlDQWdJQ0FnWW05eVpHVnlPaUF4Y0hnZ2MyOXNhV1FnSkc5akxXZHlZWGt0TkR0Y1hHNGdJQ0FnSUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ0lDQWdJR0ZzYVdkdUxXbDBaVzF6T2lCalpXNTBaWEk3WEZ4dUlDQWdJQ0FnYW5WemRHbG1lUzFqYjI1MFpXNTBPaUJqWlc1MFpYSTdYRnh1SUNBZ0lDQWdZbUZqYTJkeWIzVnVaRG9nZEhKaGJuTndZWEpsYm5RN1hGeHVJQ0FnSUNBZ1pHbDJJSHRjWEc0Z0lDQWdJQ0FnSUdScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6dGNYRzRnSUNBZ0lDQjlYRnh1SUNBZ0lDQWdjM1puSUh0Y1hHNGdJQ0FnSUNBZ0lHMWhlQzFvWldsbmFIUTZJREV5TUhCNE8xeGNiaUFnSUNBZ0lDQWdiV0Y0TFhkcFpIUm9PaUF4T0Rad2VEdGNYRzRnSUNBZ0lDQjlYRnh1SUNBZ0lDQWdKanBvYjNabGNpQjdYRnh1SUNBZ0lDQWdJQ0J3WVdSa2FXNW5PaUF3TzF4Y2JpQWdJQ0FnSUNBZ1ltOXlaR1Z5T2lBeWNIZ2djMjlzYVdRZ0pHOWpMV0pzZFdVdE5UdGNYRzRnSUNBZ0lDQjlYRnh1SUNBZ0lIMWNYRzRnSUgxY1hHNTlYRnh1WENKZExGd2ljMjkxY21ObFVtOXZkRndpT2x3aVhDSjlYU2s3WEc0dkx5QkZlSEJ2Y25SelhHNWxlSEJ2Y25RZ1pHVm1ZWFZzZENCZlgxOURVMU5mVEU5QlJFVlNYMFZZVUU5U1ZGOWZYenRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9QYXN0ZUNoYXJ0RGlhbG9nLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvUG9wb3Zlci5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvUG9wb3Zlci5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLy8gSW1wb3J0c1xcblxcblxcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxuLy8gTW9kdWxlXFxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcXFwiLmV4Y2FsaWRyYXcgLnBvcG92ZXIge1xcXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gIHotaW5kZXg6IDEwO1xcXFxufVxcXCIsIFxcXCJcXFwiLHtcXFwidmVyc2lvblxcXCI6MyxcXFwic291cmNlc1xcXCI6W1xcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jb21wb25lbnRzL1BvcG92ZXIuc2Nzc1xcXCJdLFxcXCJuYW1lc1xcXCI6W10sXFxcIm1hcHBpbmdzXFxcIjpcXFwiQUFDRTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtBQUFKXFxcIixcXFwic291cmNlc0NvbnRlbnRcXFwiOltcXFwiLmV4Y2FsaWRyYXcge1xcXFxuICAucG9wb3ZlciB7XFxcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICAgIHotaW5kZXg6IDEwO1xcXFxuICB9XFxcXG59XFxcXG5cXFwiXSxcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoX19fQ1NTX0xPQURFUl9FWFBPUlRfX18pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpOXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVFiM0J2ZG1WeUxuTmpjM011YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdRVUZCUVR0QlFVTTRTRHRCUVVOcVFqdEJRVU0zUnl3NFFrRkJPRUlzZFVkQlFUSkNMRU5CUVVNc1owaEJRWEZETzBGQlF5OUdPMEZCUTBFc1owVkJRV2RGTEhWQ1FVRjFRaXhuUWtGQlowSXNSMEZCUnl4UFFVRlBMR2RIUVVGblJ5eFhRVUZYTEZWQlFWVXNjME5CUVhORExHTkJRV01zZVVKQlFYbENMR3RDUVVGclFpeExRVUZMTEVkQlFVY3NjVUpCUVhGQ08wRkJRMnhYTzBGQlEwRXNhVVZCUVdVc2RVSkJRWFZDTEVWQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5UWIzQnZkbVZ5TG5OamMzTS9OamxsWmlKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZMeUJKYlhCdmNuUnpYRzVwYlhCdmNuUWdYMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZVMDlWVWtORlRVRlFYMGxOVUU5U1ZGOWZYeUJtY205dElGd2lMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwzSjFiblJwYldVdmMyOTFjbU5sVFdGd2N5NXFjMXdpTzF4dWFXMXdiM0owSUY5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDBsTlVFOVNWRjlmWHlCbWNtOXRJRndpTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZZWEJwTG1welhDSTdYRzUyWVhJZ1gxOWZRMU5UWDB4UFFVUkZVbDlGV0ZCUFVsUmZYMThnUFNCZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5SlRWQlBVbFJmWDE4b1gxOWZRMU5UWDB4UFFVUkZVbDlCVUVsZlUwOVZVa05GVFVGUVgwbE5VRTlTVkY5Zlh5azdYRzR2THlCTmIyUjFiR1ZjYmw5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZMbkIxYzJnb1cyMXZaSFZzWlM1cFpDd2dYQ0l1WlhoallXeHBaSEpoZHlBdWNHOXdiM1psY2lCN1hGeHVJQ0J3YjNOcGRHbHZiam9nWVdKemIyeDFkR1U3WEZ4dUlDQjZMV2x1WkdWNE9pQXhNRHRjWEc1OVhDSXNJRndpWENJc2Uxd2lkbVZ5YzJsdmJsd2lPak1zWENKemIzVnlZMlZ6WENJNlcxd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlRYjNCdmRtVnlMbk5qYzNOY0lsMHNYQ0p1WVcxbGMxd2lPbHRkTEZ3aWJXRndjR2x1WjNOY0lqcGNJa0ZCUTBVN1JVRkRSU3hyUWtGQlFUdEZRVU5CTEZkQlFVRTdRVUZCU2x3aUxGd2ljMjkxY21ObGMwTnZiblJsYm5SY0lqcGJYQ0l1WlhoallXeHBaSEpoZHlCN1hGeHVJQ0F1Y0c5d2IzWmxjaUI3WEZ4dUlDQWdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjWEc0Z0lDQWdlaTFwYm1SbGVEb2dNVEE3WEZ4dUlDQjlYRnh1ZlZ4Y2Jsd2lYU3hjSW5OdmRYSmpaVkp2YjNSY0lqcGNJbHdpZlYwcE8xeHVMeThnUlhod2IzSjBjMXh1Wlhod2IzSjBJR1JsWm1GMWJIUWdYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4N1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvUG9wb3Zlci5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1Byb2plY3ROYW1lLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvUHJvamVjdE5hbWUuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkZWZhdWx0XFxcIjogKCkgPT4gKF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vLyBJbXBvcnRzXFxuXFxuXFxudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKSgoX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0KCkpKTtcXG4vLyBNb2R1bGVcXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFxcXCIuUHJvamVjdE5hbWUge1xcXFxuICBtYXJnaW46IGF1dG87XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG59XFxcXG4uUHJvamVjdE5hbWUgLlRleHRJbnB1dCB7XFxcXG4gIGhlaWdodDogY2FsYygxcmVtIC0gM3B4KTtcXFxcbiAgd2lkdGg6IDIwMHB4O1xcXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcXFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcXFxufVxcXFxuLlByb2plY3ROYW1lIC5UZXh0SW5wdXQtLXJlYWRvbmx5IHtcXFxcbiAgYmFja2dyb3VuZDogbm9uZTtcXFxcbiAgYm9yZGVyOiBub25lO1xcXFxuICB3aWR0aDogYXV0bztcXFxcbiAgbWF4LXdpZHRoOiAyMDBweDtcXFxcbiAgcGFkZGluZy1sZWZ0OiAycHg7XFxcXG59XFxcXG4uUHJvamVjdE5hbWUgLlRleHRJbnB1dC0tcmVhZG9ubHk6aG92ZXIge1xcXFxuICBiYWNrZ3JvdW5kOiBub25lO1xcXFxufVxcXCIsIFxcXCJcXFwiLHtcXFwidmVyc2lvblxcXCI6MyxcXFwic291cmNlc1xcXCI6W1xcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jb21wb25lbnRzL1Byb2plY3ROYW1lLnNjc3NcXFwiXSxcXFwibmFtZXNcXFwiOltdLFxcXCJtYXBwaW5nc1xcXCI6XFxcIkFBQUE7RUFDRSxZQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0FBQ0Y7QUFDRTtFQUNFLHdCQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0FBQ0o7QUFDSTtFQUNFLGdCQUFBO0VBQ0EsWUFBQTtFQUlBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0FBRk47QUFITTtFQUNFLGdCQUFBO0FBS1JcXFwiLFxcXCJzb3VyY2VzQ29udGVudFxcXCI6W1xcXCIuUHJvamVjdE5hbWUge1xcXFxuICBtYXJnaW46IGF1dG87XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG5cXFxcbiAgLlRleHRJbnB1dCB7XFxcXG4gICAgaGVpZ2h0OiBjYWxjKDFyZW0gLSAzcHgpO1xcXFxuICAgIHdpZHRoOiAyMDBweDtcXFxcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcXFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXFxcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xcXFxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcXFxuXFxcXG4gICAgJi0tcmVhZG9ubHkge1xcXFxuICAgICAgYmFja2dyb3VuZDogbm9uZTtcXFxcbiAgICAgIGJvcmRlcjogbm9uZTtcXFxcbiAgICAgICY6aG92ZXIge1xcXFxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xcXFxuICAgICAgfVxcXFxuICAgICAgd2lkdGg6IGF1dG87XFxcXG4gICAgICBtYXgtd2lkdGg6IDIwMHB4O1xcXFxuICAgICAgcGFkZGluZy1sZWZ0OiAycHg7XFxcXG4gICAgfVxcXFxuICB9XFxcXG59XFxcXG5cXFwiXSxcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoX19fQ1NTX0xPQURFUl9FWFBPUlRfX18pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpOXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVFjbTlxWldOMFRtRnRaUzV6WTNOekxtcHpJaXdpYldGd2NHbHVaM01pT2lJN096czdPenM3TzBGQlFVRTdRVUZET0VnN1FVRkRha0k3UVVGRE4wY3NPRUpCUVRoQ0xIVkhRVUV5UWl4RFFVRkRMR2RJUVVGeFF6dEJRVU12Ump0QlFVTkJMSGRFUVVGM1JDeHBRa0ZCYVVJc2EwSkJRV3RDTEhkQ1FVRjNRaXhIUVVGSExESkNRVUV5UWl3MlFrRkJOa0lzYVVKQlFXbENMSEZDUVVGeFFpeDFRa0ZCZFVJc2NVSkJRWEZDTERSQ1FVRTBRaXhIUVVGSExIRkRRVUZ4UXl4eFFrRkJjVUlzYVVKQlFXbENMR2RDUVVGblFpeHhRa0ZCY1VJc2MwSkJRWE5DTEVkQlFVY3NNa05CUVRKRExIRkNRVUZ4UWl4SFFVRkhMRTlCUVU4c2IwZEJRVzlITEZWQlFWVXNWVUZCVlN4WFFVRlhMRXRCUVVzc1MwRkJTeXhYUVVGWExGVkJRVlVzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4TFFVRkxMRXRCUVVzc1YwRkJWeXhWUVVGVkxGVkJRVlVzVjBGQlZ5eFhRVUZYTEV0QlFVc3NTMEZCU3l4WFFVRlhMSFZEUVVGMVF5eHBRa0ZCYVVJc2EwSkJRV3RDTEhkQ1FVRjNRaXhyUWtGQmEwSXNLMEpCUVN0Q0xHMUNRVUZ0UWl4MVFrRkJkVUlzZVVKQlFYbENMSFZDUVVGMVFpdzRRa0ZCT0VJc2NVSkJRWEZDTEhsQ1FVRjVRaXh4UWtGQmNVSXNhVUpCUVdsQ0xESkNRVUV5UWl4VFFVRlRMRzlDUVVGdlFpeDVRa0ZCZVVJc01FSkJRVEJDTEU5QlFVOHNTMEZCU3l4SFFVRkhMSEZDUVVGeFFqdEJRVU5zZDBNN1FVRkRRU3hwUlVGQlpTeDFRa0ZCZFVJc1JVRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5amIyMXdiMjVsYm5SekwxQnliMnBsWTNST1lXMWxMbk5qYzNNL01qRTNZaUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdkx5QkpiWEJ2Y25SelhHNXBiWEJ2Y25RZ1gxOWZRMU5UWDB4UFFVUkZVbDlCVUVsZlUwOVZVa05GVFVGUVgwbE5VRTlTVkY5Zlh5Qm1jbTl0SUZ3aUxpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDNKMWJuUnBiV1V2YzI5MWNtTmxUV0Z3Y3k1cWMxd2lPMXh1YVcxd2IzSjBJRjlmWDBOVFUxOU1UMEZFUlZKZlFWQkpYMGxOVUU5U1ZGOWZYeUJtY205dElGd2lMaTR2Y0dGamEyRm5aWE12WlhoallXeHBaSEpoZHk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwzSjFiblJwYldVdllYQnBMbXB6WENJN1hHNTJZWElnWDE5ZlExTlRYMHhQUVVSRlVsOUZXRkJQVWxSZlgxOGdQU0JmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlKVFZCUFVsUmZYMThvWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmVTA5VlVrTkZUVUZRWDBsTlVFOVNWRjlmWHlrN1hHNHZMeUJOYjJSMWJHVmNibDlmWDBOVFUxOU1UMEZFUlZKZlJWaFFUMUpVWDE5ZkxuQjFjMmdvVzIxdlpIVnNaUzVwWkN3Z1hDSXVVSEp2YW1WamRFNWhiV1VnZTF4Y2JpQWdiV0Z5WjJsdU9pQmhkWFJ2TzF4Y2JpQWdaR2x6Y0d4aGVUb2dabXhsZUR0Y1hHNGdJR0ZzYVdkdUxXbDBaVzF6T2lCalpXNTBaWEk3WEZ4dWZWeGNiaTVRY205cVpXTjBUbUZ0WlNBdVZHVjRkRWx1Y0hWMElIdGNYRzRnSUdobGFXZG9kRG9nWTJGc1l5Z3hjbVZ0SUMwZ00zQjRLVHRjWEc0Z0lIZHBaSFJvT2lBeU1EQndlRHRjWEc0Z0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hGeHVJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEZ4dUlDQnRZWEpuYVc0dGJHVm1kRG9nT0hCNE8xeGNiaUFnZEdWNGRDMXZkbVZ5Wm14dmR6b2daV3hzYVhCemFYTTdYRnh1ZlZ4Y2JpNVFjbTlxWldOMFRtRnRaU0F1VkdWNGRFbHVjSFYwTFMxeVpXRmtiMjVzZVNCN1hGeHVJQ0JpWVdOclozSnZkVzVrT2lCdWIyNWxPMXhjYmlBZ1ltOXlaR1Z5T2lCdWIyNWxPMXhjYmlBZ2QybGtkR2c2SUdGMWRHODdYRnh1SUNCdFlYZ3RkMmxrZEdnNklESXdNSEI0TzF4Y2JpQWdjR0ZrWkdsdVp5MXNaV1owT2lBeWNIZzdYRnh1ZlZ4Y2JpNVFjbTlxWldOMFRtRnRaU0F1VkdWNGRFbHVjSFYwTFMxeVpXRmtiMjVzZVRwb2IzWmxjaUI3WEZ4dUlDQmlZV05yWjNKdmRXNWtPaUJ1YjI1bE8xeGNibjFjSWl3Z1hDSmNJaXg3WENKMlpYSnphVzl1WENJNk15eGNJbk52ZFhKalpYTmNJanBiWENKM1pXSndZV05yT2k4dkxpOHVMaTh1TGk5amIyMXdiMjVsYm5SekwxQnliMnBsWTNST1lXMWxMbk5qYzNOY0lsMHNYQ0p1WVcxbGMxd2lPbHRkTEZ3aWJXRndjR2x1WjNOY0lqcGNJa0ZCUVVFN1JVRkRSU3haUVVGQk8wVkJRMEVzWVVGQlFUdEZRVU5CTEcxQ1FVRkJPMEZCUTBZN1FVRkRSVHRGUVVORkxIZENRVUZCTzBWQlEwRXNXVUZCUVR0RlFVTkJMR2RDUVVGQk8wVkJRMEVzYTBKQlFVRTdSVUZEUVN4blFrRkJRVHRGUVVOQkxIVkNRVUZCTzBGQlEwbzdRVUZEU1R0RlFVTkZMR2RDUVVGQk8wVkJRMEVzV1VGQlFUdEZRVWxCTEZkQlFVRTdSVUZEUVN4blFrRkJRVHRGUVVOQkxHbENRVUZCTzBGQlJrNDdRVUZJVFR0RlFVTkZMR2RDUVVGQk8wRkJTMUpjSWl4Y0luTnZkWEpqWlhORGIyNTBaVzUwWENJNlcxd2lMbEJ5YjJwbFkzUk9ZVzFsSUh0Y1hHNGdJRzFoY21kcGJqb2dZWFYwYnp0Y1hHNGdJR1JwYzNCc1lYazZJR1pzWlhnN1hGeHVJQ0JoYkdsbmJpMXBkR1Z0Y3pvZ1kyVnVkR1Z5TzF4Y2JseGNiaUFnTGxSbGVIUkpibkIxZENCN1hGeHVJQ0FnSUdobGFXZG9kRG9nWTJGc1l5Z3hjbVZ0SUMwZ00zQjRLVHRjWEc0Z0lDQWdkMmxrZEdnNklESXdNSEI0TzF4Y2JpQWdJQ0J2ZG1WeVpteHZkem9nYUdsa1pHVnVPMXhjYmlBZ0lDQjBaWGgwTFdGc2FXZHVPaUJqWlc1MFpYSTdYRnh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUE0Y0hnN1hGeHVJQ0FnSUhSbGVIUXRiM1psY21ac2IzYzZJR1ZzYkdsd2MybHpPMXhjYmx4Y2JpQWdJQ0FtTFMxeVpXRmtiMjVzZVNCN1hGeHVJQ0FnSUNBZ1ltRmphMmR5YjNWdVpEb2dibTl1WlR0Y1hHNGdJQ0FnSUNCaWIzSmtaWEk2SUc1dmJtVTdYRnh1SUNBZ0lDQWdKanBvYjNabGNpQjdYRnh1SUNBZ0lDQWdJQ0JpWVdOclozSnZkVzVrT2lCdWIyNWxPMXhjYmlBZ0lDQWdJSDFjWEc0Z0lDQWdJQ0IzYVdSMGFEb2dZWFYwYnp0Y1hHNGdJQ0FnSUNCdFlYZ3RkMmxrZEdnNklESXdNSEI0TzF4Y2JpQWdJQ0FnSUhCaFpHUnBibWN0YkdWbWREb2dNbkI0TzF4Y2JpQWdJQ0I5WEZ4dUlDQjlYRnh1ZlZ4Y2Jsd2lYU3hjSW5OdmRYSmpaVkp2YjNSY0lqcGNJbHdpZlYwcE8xeHVMeThnUlhod2IzSjBjMXh1Wlhod2IzSjBJR1JsWm1GMWJIUWdYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4N1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvUHJvamVjdE5hbWUuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9QdWJsaXNoTGlicmFyeS5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1B1Ymxpc2hMaWJyYXJ5LnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLy8gSW1wb3J0c1xcblxcblxcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxuLy8gTW9kdWxlXFxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcXFwiOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxcXG59XFxcXG5cXFxcbi5leGNhbGlkcmF3IC5wdWJsaXNoLWxpYnJhcnlfX2ZpZWxkcyB7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucHVibGlzaC1saWJyYXJ5X19maWVsZHMgbGFiZWwge1xcXFxuICBwYWRkaW5nOiAxZW07XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXFxcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5wdWJsaXNoLWxpYnJhcnlfX2ZpZWxkcyBsYWJlbCBzcGFuIHtcXFxcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXFxcbiAgZm9udC1zaXplOiAxcmVtO1xcXFxuICBjb2xvcjogIzg2OGU5NjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5wdWJsaXNoLWxpYnJhcnlfX2ZpZWxkcyBsYWJlbCBpbnB1dCxcXFxcbi5leGNhbGlkcmF3IC5wdWJsaXNoLWxpYnJhcnlfX2ZpZWxkcyBsYWJlbCB0ZXh0YXJlYSB7XFxcXG4gIHdpZHRoOiA3MCU7XFxcXG4gIHBhZGRpbmc6IDAuNmVtO1xcXFxuICBmb250LWZhbWlseTogdmFyKC0tdWktZm9udCk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucHVibGlzaC1saWJyYXJ5X19maWVsZHMgbGFiZWwgLnJlcXVpcmVkIHtcXFxcbiAgY29sb3I6ICNlMDMxMzE7XFxcXG4gIG1hcmdpbjogMC4ycmVtO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnB1Ymxpc2gtbGlicmFyeV9fYnV0dG9ucyB7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIHBhZGRpbmc6IDAuMnJlbSAwO1xcXFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnB1Ymxpc2gtbGlicmFyeV9fYnV0dG9ucyAuVG9vbEljb25fX2ljb24ge1xcXFxuICBtaW4td2lkdGg6IDIuNXJlbTtcXFxcbiAgd2lkdGg6IGF1dG87XFxcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5wdWJsaXNoLWxpYnJhcnlfX2J1dHRvbnMgLlRvb2xJY29uX3R5cGVfYnV0dG9uIHtcXFxcbiAgbWFyZ2luLWxlZnQ6IDFyZW07XFxcXG4gIHBhZGRpbmc6IDAgMC41cmVtO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnB1Ymxpc2gtbGlicmFyeV9fYnV0dG9ucy0tY29uZmlybS5Ub29sSWNvbl90eXBlX2J1dHRvbiB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjhiZTY7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucHVibGlzaC1saWJyYXJ5X19idXR0b25zLS1jb25maXJtLlRvb2xJY29uX3R5cGVfYnV0dG9uOmhvdmVyIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5NzFjMjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5wdWJsaXNoLWxpYnJhcnlfX2J1dHRvbnMtLWNhbmNlbC5Ub29sSWNvbl90eXBlX2J1dHRvbiB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6ICNhZGI1YmQ7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucHVibGlzaC1saWJyYXJ5X19idXR0b25zLS1jYW5jZWwuVG9vbEljb25fdHlwZV9idXR0b246aG92ZXIge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODY4ZTk2O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnB1Ymxpc2gtbGlicmFyeV9fYnV0dG9ucyAuVG9vbEljb25fX2ljb24ge1xcXFxuICBjb2xvcjogI2ZmZmZmZjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5wdWJsaXNoLWxpYnJhcnlfX2J1dHRvbnMgLlRvb2xJY29uX19pY29uIC5TcGlubmVyIHtcXFxcbiAgLS1zcGlubmVyLWNvbG9yOiAjZmZmO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnB1Ymxpc2gtbGlicmFyeV9fYnV0dG9ucyAuVG9vbEljb25fX2ljb24gLlNwaW5uZXIgc3ZnIHtcXFxcbiAgcGFkZGluZzogMC41cmVtO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnB1Ymxpc2gtbGlicmFyeSAuc2VsZWN0ZWQtbGlicmFyeS1pdGVtcyB7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIHBhZGRpbmc6IDAgMC44cmVtO1xcXFxuICBmbGV4LXdyYXA6IHdyYXA7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucHVibGlzaC1saWJyYXJ5IC5zZWxlY3RlZC1saWJyYXJ5LWl0ZW1zIC5zaW5nbGUtbGlicmFyeS1pdGVtLXdyYXBwZXIge1xcXFxuICB3aWR0aDogOXJlbTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5wdWJsaXNoLWxpYnJhcnktbm90ZSB7XFxcXG4gIHBhZGRpbmc6IDFlbTtcXFxcbiAgZm9udC1zdHlsZTogaXRhbGljO1xcXFxuICBmb250LXNpemU6IDE0cHg7XFxcXG4gIGRpc3BsYXk6IGJsb2NrO1xcXFxufVxcXCIsIFxcXCJcXFwiLHtcXFwidmVyc2lvblxcXCI6MyxcXFwic291cmNlc1xcXCI6W1xcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9QdWJsaXNoTGlicmFyeS5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQVVBO0VBQ0UsMkNBQUE7QUNURjs7QUFFSTtFQUNFLGFBQUE7RUFDQSxzQkFBQTtBQUNOO0FBQ007RUFDRSxZQUFBO0VBQ0EsYUFBQTtFQUNBLDhCQUFBO0VBQ0EsbUJBQUE7QUFDUjtBQUFRO0VBQ0UsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsY0NxQkU7QURuQlo7QUFBUTs7RUFFRSxVQUFBO0VBQ0EsY0FBQTtFQUNBLDJCQUFBO0FBRVY7QUFDUTtFQUNFLGNDeUNDO0VEeENELGNBQUE7QUFDVjtBQUlJO0VBQ0UsYUFBQTtFQUNBLGlCQUFBO0VBQ0EseUJBQUE7QUFGTjtBQUlNO0VBQ0UsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtBQUZSO0FBS007RUFDRSxpQkFBQTtFQUNBLGlCQUFBO0FBSFI7QUFNTTtFQUNFLHlCQzRKSTtBRGhLWjtBQU1RO0VBQ0UseUJDMkpFO0FEL0paO0FBUU07RUFDRSx5QkNyQkk7QURlWjtBQU9RO0VBQ0UseUJDdEJFO0FEaUJaO0FBU007RUFDRSxjQ3JEVztBRDhDbkI7QUFRUTtFQUNFLHFCQUFBO0FBTlY7QUFPVTtFQUNFLGVBQUE7QUFMWjtBQVdJO0VBQ0UsYUFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtBQVROO0FBV007RUFDRSxXQUFBO0FBVFI7QUFhSTtFQUNFLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0FBWE5cXFwiLFxcXCJzb3VyY2VzQ29udGVudFxcXCI6W1xcXCJAaW1wb3J0IFxcXFxcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFxcXFxcIjtcXFxcblxcXFxuQG1peGluIGlzTW9iaWxlKCkge1xcXFxuICBAYXQtcm9vdCAuZXhjYWxpZHJhdy0tbW9iaWxlI3smfSB7XFxcXG4gICAgQGNvbnRlbnQ7XFxcXG4gIH1cXFxcbn1cXFxcblxcXFxuJHRoZW1lLWZpbHRlcjogXFxcXFxcXCJpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZylcXFxcXFxcIjtcXFxcblxcXFxuOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiB1bnF1b3RlKCR0aGVtZS1maWx0ZXIpO1xcXFxufVxcXFxuXFxcIixcXFwiQGltcG9ydCBcXFxcXFxcIi4uL2Nzcy92YXJpYWJsZXMubW9kdWxlXFxcXFxcXCI7XFxcXG5cXFxcbi5leGNhbGlkcmF3IHtcXFxcbiAgLnB1Ymxpc2gtbGlicmFyeSB7XFxcXG4gICAgJl9fZmllbGRzIHtcXFxcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcXFxuXFxcXG4gICAgICBsYWJlbCB7XFxcXG4gICAgICAgIHBhZGRpbmc6IDFlbTtcXFxcbiAgICAgICAgZGlzcGxheTogZmxleDtcXFxcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcXFxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICAgICAgICBzcGFuIHtcXFxcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xcXFxuICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcXFxcbiAgICAgICAgICBjb2xvcjogJG9jLWdyYXktNjtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBpbnB1dCxcXFxcbiAgICAgICAgdGV4dGFyZWEge1xcXFxuICAgICAgICAgIHdpZHRoOiA3MCU7XFxcXG4gICAgICAgICAgcGFkZGluZzogMC42ZW07XFxcXG4gICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXVpLWZvbnQpO1xcXFxuICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgLnJlcXVpcmVkIHtcXFxcbiAgICAgICAgICBjb2xvcjogJG9jLXJlZC04O1xcXFxuICAgICAgICAgIG1hcmdpbjogMC4ycmVtO1xcXFxuICAgICAgICB9XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJl9fYnV0dG9ucyB7XFxcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcXFxuICAgICAgcGFkZGluZzogMC4ycmVtIDA7XFxcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcXFxuXFxcXG4gICAgICAuVG9vbEljb25fX2ljb24ge1xcXFxuICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcXFxcbiAgICAgICAgd2lkdGg6IGF1dG87XFxcXG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcXFxcbiAgICAgIH1cXFxcblxcXFxuICAgICAgLlRvb2xJY29uX3R5cGVfYnV0dG9uIHtcXFxcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XFxcXG4gICAgICAgIHBhZGRpbmc6IDAgMC41cmVtO1xcXFxuICAgICAgfVxcXFxuXFxcXG4gICAgICAmLS1jb25maXJtLlRvb2xJY29uX3R5cGVfYnV0dG9uIHtcXFxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9jLWJsdWUtNjtcXFxcblxcXFxuICAgICAgICAmOmhvdmVyIHtcXFxcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2MtYmx1ZS04O1xcXFxuICAgICAgICB9XFxcXG4gICAgICB9XFxcXG5cXFxcbiAgICAgICYtLWNhbmNlbC5Ub29sSWNvbl90eXBlX2J1dHRvbiB7XFxcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvYy1ncmF5LTU7XFxcXG4gICAgICAgICY6aG92ZXIge1xcXFxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvYy1ncmF5LTY7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgIH1cXFxcblxcXFxuICAgICAgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgICAgICAgY29sb3I6ICRvYy13aGl0ZTtcXFxcbiAgICAgICAgLlNwaW5uZXIge1xcXFxuICAgICAgICAgIC0tc3Bpbm5lci1jb2xvcjogI2ZmZjtcXFxcbiAgICAgICAgICBzdmcge1xcXFxuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xcXFxuICAgICAgICAgIH1cXFxcbiAgICAgICAgfVxcXFxuICAgICAgfVxcXFxuICAgIH1cXFxcblxcXFxuICAgIC5zZWxlY3RlZC1saWJyYXJ5LWl0ZW1zIHtcXFxcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAgICBwYWRkaW5nOiAwIDAuOHJlbTtcXFxcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcXFxcblxcXFxuICAgICAgLnNpbmdsZS1saWJyYXJ5LWl0ZW0td3JhcHBlciB7XFxcXG4gICAgICAgIHdpZHRoOiA5cmVtO1xcXFxuICAgICAgfVxcXFxuICAgIH1cXFxcblxcXFxuICAgICYtbm90ZSB7XFxcXG4gICAgICBwYWRkaW5nOiAxZW07XFxcXG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XFxcXG4gICAgICBmb250LXNpemU6IDE0cHg7XFxcXG4gICAgICBkaXNwbGF5OiBibG9jaztcXFxcbiAgICB9XFxcXG4gIH1cXFxcbn1cXFxcblxcXCIsXFxcIi8vXFxcXG4vL1xcXFxuLy8gIFx1RDgzNVx1RERENiBcdUQ4MzVcdURERTIgXHVEODM1XHVERERGIFx1RDgzNVx1RERFMiBcdUQ4MzVcdURERTVcXFxcbi8vICB2IDEuOS4xXFxcXG4vL1xcXFxuLy8gIFx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVxcXFxuXFxcXG5cXFxcbi8vICBHZW5lcmFsXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy13aGl0ZTogICAgICAgICAjZmZmZmZmO1xcXFxuJG9jLWJsYWNrOiAgICAgICAgICMwMDAwMDA7XFxcXG5cXFxcblxcXFxuLy8gIEdyYXlcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyYXktbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y4ZjlmYSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmMWYzZjUsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZTllY2VmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2RlZTJlNixcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNjZWQ0ZGEsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjYWRiNWJkLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzg2OGU5NixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM0OTUwNTcsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMzQzYTQwLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzIxMjUyOVxcXFxuKTtcXFxcblxcXFxuJG9jLWdyYXktMDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0xOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTI6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS00OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTU6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS03OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTg6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktOTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFJlZFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtcmVkLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY1ZjUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZlM2UzLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmYzljOSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmE4YTgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmY4Nzg3LFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZmNmI2YixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmYTUyNTIsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjAzZTNlLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2UwMzEzMSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNjOTJhMmFcXFxcbik7XFxcXG5cXFxcbiRvYy1yZWQtMDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtMTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtMjogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtMzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNjogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1yZWQtODogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtOTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgUGlua1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtcGluay1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmMGY2LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZGVlYixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmY2MyZDcsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmFhMmMxLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2Y3ODNhYyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmMDY1OTUsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZTY0OTgwLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Q2MzM2YyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNjMjI1NWMsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjYTYxZTRkXFxcXG4pO1xcXFxuXFxcXG4kb2MtcGluay0wOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTE6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtcGluay0zOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTQ6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtcGluay02OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTc6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstODogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtcGluay05OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgR3JhcGVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyYXBlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmOGYwZmMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZjNkOWZhLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2VlYmVmYSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNlNTk5ZjcsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZGE3N2YyLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2NjNWRlOCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNiZTRiZGIsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjYWUzZWM5LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzljMzZiNSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM4NjJlOWNcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmFwZS0wOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTI6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0zOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTU6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS02OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTg6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS05OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFZpb2xldFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtdmlvbGV0LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmM2YwZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZTVkYmZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2QwYmZmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNiMTk3ZmMsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjOTc3NWZhLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzg0NWVmNyxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM3OTUwZjIsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNzA0OGU4LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzY3NDFkOSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM1ZjNkYzRcXFxcbik7XFxcXG5cXFxcbiRvYy12aW9sZXQtMDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtMTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtMjogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtMzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNjogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtODogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtOTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgSW5kaWdvXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1pbmRpZ28tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2VkZjJmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkYmU0ZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYmFjOGZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzkxYTdmZixcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM3NDhmZmMsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjNWM3Y2ZhLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzRjNmVmNSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM0MjYzZWIsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjM2I1YmRiLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzM2NGZjN1xcXFxuKTtcXFxcblxcXFxuJG9jLWluZGlnby0wOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby0xOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby0yOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby0zOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby00OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby01OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby02OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby03OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby04OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby05OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBCbHVlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ibHVlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlN2Y1ZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZDBlYmZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2E1ZDhmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM3NGMwZmMsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNGRhYmY3LFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzMzOWFmMCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICMyMjhiZTYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMWM3ZWQ2LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzE5NzFjMixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMxODY0YWJcXFxcbik7XFxcXG5cXFxcbiRvYy1ibHVlLTA6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0yOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTM6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS01OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTY6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS04OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTk6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBDeWFuXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1jeWFuLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlM2ZhZmMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjYzVmNmZhLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogIzk5ZTlmMixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM2NmQ5ZTgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjM2JjOWRiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzIyYjhjZixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICMxNWFhYmYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMTA5OGFkLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzBjODU5OSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMwYjcyODVcXFxcbik7XFxcXG5cXFxcbiRvYy1jeWFuLTA6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0yOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTM6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi01OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTY6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi04OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTk6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBUZWFsXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy10ZWFsLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlNmZjZjUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjYzNmYWU4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogIzk2ZjJkNyxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM2M2U2YmUsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjMzhkOWE5LFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzIwYzk5NyxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICMxMmI4ODYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMGNhNjc4LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzA5OTI2OCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMwODdmNWJcXFxcbik7XFxcXG5cXFxcbiRvYy10ZWFsLTA6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0yOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTM6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC01OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTY6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC04OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTk6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBHcmVlblxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JlZW4tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ViZmJlZSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkM2Y5ZDgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYjJmMmJiLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzhjZTk5YSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM2OWRiN2MsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjNTFjZjY2LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzQwYzA1NyxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMzN2IyNGQsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMmY5ZTQ0LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzJiOGEzZVxcXFxuKTtcXFxcblxcXFxuJG9jLWdyZWVuLTA6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0xOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMjogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTM6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi00OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTY6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi03OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tODogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTk6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgTGltZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtbGltZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjRmY2UzLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2U5ZmFjOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNkOGY1YTIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjYzBlYjc1LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2E5ZTM0YixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM5NGQ4MmQsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjODJjOTFlLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzc0YjgxNixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM2NmE4MGYsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjNWM5NDBkXFxcXG4pO1xcXFxuXFxcXG4kb2MtbGltZS0wOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTE6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0zOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTQ6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtbGltZS02OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTc6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtODogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtbGltZS05OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgWWVsbG93XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy15ZWxsb3ctbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjlkYixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmYzYmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZlYzk5LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmZTA2NixcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZmQ0M2IsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmNjNDE5LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZhYjAwNSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmNTlmMDAsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZjA4YzAwLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2U2NzcwMFxcXFxuKTtcXFxcblxcXFxuJG9jLXllbGxvdy0wOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy0xOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy0yOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy0zOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy00OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy01OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy02OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy03OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy04OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy05OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBPcmFuZ2VcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLW9yYW5nZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmNGU2LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZThjYyxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmQ4YTgsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZjMDc4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmYTk0ZCxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmZjkyMmIsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmQ3ZTE0LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Y3NjcwNyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNlODU5MGMsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjZDk0ODBmXFxcXG4pO1xcXFxuXFxcXG4kb2Mtb3JhbmdlLTA6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTE6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTI6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTM6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTQ6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTU6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTY6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTc6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTg6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTk6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIENvbG9yIGxpc3RcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWNvbG9yLXNwZWN0cnVtOiAgIDk7XFxcXG5cXFxcbiRvYy1jb2xvci1saXN0OiAoXFxcXG4gICRvYy1ncmF5LWxpc3Q6ICAgICAgXFxcXFxcXCJncmF5XFxcXFxcXCIsXFxcXG4gICRvYy1yZWQtbGlzdDogICAgICBcXFxcXFxcInJlZFxcXFxcXFwiLFxcXFxuICAkb2MtcGluay1saXN0OiAgICAgIFxcXFxcXFwicGlua1xcXFxcXFwiLFxcXFxuICAkb2MtZ3JhcGUtbGlzdDogICAgICBcXFxcXFxcImdyYXBlXFxcXFxcXCIsXFxcXG4gICRvYy12aW9sZXQtbGlzdDogICAgICBcXFxcXFxcInZpb2xldFxcXFxcXFwiLFxcXFxuICAkb2MtaW5kaWdvLWxpc3Q6ICAgICAgXFxcXFxcXCJpbmRpZ29cXFxcXFxcIixcXFxcbiAgJG9jLWJsdWUtbGlzdDogICAgICBcXFxcXFxcImJsdWVcXFxcXFxcIixcXFxcbiAgJG9jLWN5YW4tbGlzdDogICAgICBcXFxcXFxcImN5YW5cXFxcXFxcIixcXFxcbiAgJG9jLXRlYWwtbGlzdDogICAgICBcXFxcXFxcInRlYWxcXFxcXFxcIixcXFxcbiAgJG9jLWdyZWVuLWxpc3Q6ICAgICAgXFxcXFxcXCJncmVlblxcXFxcXFwiLFxcXFxuICAkb2MtbGltZS1saXN0OiAgICAgIFxcXFxcXFwibGltZVxcXFxcXFwiLFxcXFxuICAkb2MteWVsbG93LWxpc3Q6ICAgICAgXFxcXFxcXCJ5ZWxsb3dcXFxcXFxcIixcXFxcbiAgJG9jLW9yYW5nZS1saXN0OiAgICAgIFxcXFxcXFwib3JhbmdlXFxcXFxcXCJcXFxcbik7XFxcXG5cXFwiXSxcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoX19fQ1NTX0xPQURFUl9FWFBPUlRfX18pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpOXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVFkV0pzYVhOb1RHbGljbUZ5ZVM1elkzTnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN08wRkJRVUU3UVVGRE9FZzdRVUZEYWtJN1FVRkROMGNzT0VKQlFUaENMSFZIUVVFeVFpeERRVUZETEdkSVFVRnhRenRCUVVNdlJqdEJRVU5CTEcxRVFVRnRSQ3huUkVGQlowUXNSMEZCUnl3d1EwRkJNRU1zYTBKQlFXdENMREpDUVVFeVFpeEhRVUZITERoRFFVRTRReXhwUWtGQmFVSXNhMEpCUVd0Q0xHMURRVUZ0UXl4M1FrRkJkMElzUjBGQlJ5eHRSRUZCYlVRc2NVSkJRWEZDTEc5Q1FVRnZRaXh0UWtGQmJVSXNSMEZCUnl3d1IwRkJNRWNzWlVGQlpTeHRRa0ZCYlVJc1owTkJRV2RETEVkQlFVY3NkMFJCUVhkRUxHMUNRVUZ0UWl4dFFrRkJiVUlzUjBGQlJ5eDVRMEZCZVVNc2EwSkJRV3RDTEhOQ1FVRnpRaXc0UWtGQk9FSXNSMEZCUnl4NVJFRkJlVVFzYzBKQlFYTkNMR2RDUVVGblFpeHZRa0ZCYjBJc1IwRkJSeXdyUkVGQkswUXNjMEpCUVhOQ0xITkNRVUZ6UWl4SFFVRkhMSFZGUVVGMVJTdzRRa0ZCT0VJc1IwRkJSeXcyUlVGQk5rVXNPRUpCUVRoQ0xFZEJRVWNzYzBWQlFYTkZMRGhDUVVFNFFpeEhRVUZITERSRlFVRTBSU3c0UWtGQk9FSXNSMEZCUnl4NVJFRkJlVVFzYlVKQlFXMUNMRWRCUVVjc2EwVkJRV3RGTERCQ1FVRXdRaXhIUVVGSExITkZRVUZ6UlN4dlFrRkJiMElzUjBGQlJ5eDNSRUZCZDBRc2EwSkJRV3RDTEhOQ1FVRnpRaXh2UWtGQmIwSXNSMEZCUnl4eFJrRkJjVVlzWjBKQlFXZENMRWRCUVVjc2NVTkJRWEZETEdsQ1FVRnBRaXgxUWtGQmRVSXNiMEpCUVc5Q0xHMUNRVUZ0UWl4SFFVRkhMRTlCUVU4c2IwNUJRVzlPTEZkQlFWY3NUVUZCVFN4TFFVRkxMRlZCUVZVc1YwRkJWeXhMUVVGTExFdEJRVXNzVlVGQlZTeFZRVUZWTEZkQlFWY3NWMEZCVnl4TFFVRkxMRXRCUVVzc1YwRkJWeXhWUVVGVkxGZEJRVmNzVFVGQlRTeE5RVUZOTEZWQlFWVXNWVUZCVlN4WFFVRlhMRXRCUVVzc1MwRkJTeXhYUVVGWExGZEJRVmNzUzBGQlN5eExRVUZMTEZWQlFWVXNWMEZCVnl4WFFVRlhMRXRCUVVzc1MwRkJTeXhYUVVGWExGVkJRVlVzVlVGQlZTeExRVUZMTEV0QlFVc3NWMEZCVnl4WFFVRlhMRXRCUVVzc1MwRkJTeXhaUVVGWkxFMUJRVTBzUzBGQlN5eFpRVUZaTEUxQlFVMHNTMEZCU3l4WlFVRlpMRXRCUVVzc1MwRkJTeXhaUVVGWkxFMUJRVTBzUzBGQlN5eFhRVUZYTEU5QlFVOHNTMEZCU3l4WFFVRlhMRXRCUVVzc1MwRkJTeXhWUVVGVkxFdEJRVXNzUzBGQlN5eFZRVUZWTEZkQlFWY3NWVUZCVlN4TFFVRkxMRXRCUVVzc1ZVRkJWU3hMUVVGTExFdEJRVXNzVlVGQlZTeFhRVUZYTEZWQlFWVXNWVUZCVlN4blJVRkJaMFVzZFVKQlFYVkNMR3REUVVGclF5eEpRVUZKTEdWQlFXVXNTMEZCU3l4SFFVRkhMSE5FUVVGelJDeGhRVUZoTEhkRFFVRjNReXhIUVVGSExIbERRVUY1UXl4cFFrRkJhVUlzYzBKQlFYTkNMR2xDUVVGcFFpeHpRa0ZCYzBJc0swSkJRU3RDTEdsQ1FVRnBRaXgxUWtGQmRVSXNkMEpCUVhkQ0xIbERRVUY1UXl3NFFrRkJPRUlzWjBKQlFXZENMRFpDUVVFMlFpdzBRa0ZCTkVJc09FSkJRVGhDTEZkQlFWY3NiME5CUVc5RExIVkNRVUYxUWl3eVFrRkJNa0lzZDBOQlFYZERMRmRCUVZjc2RVSkJRWFZDTERaQ1FVRTJRaXd5UWtGQk1rSXNWMEZCVnl4VFFVRlRMRTlCUVU4c2IwSkJRVzlDTEhOQ1FVRnpRaXd3UWtGQk1FSXNhME5CUVd0RExESkNRVUV5UWl3MFFrRkJORUlzYzBKQlFYTkNMREJDUVVFd1FpeFRRVUZUTEdsRFFVRnBReXcwUWtGQk5FSXNORUpCUVRSQ0xGTkJRVk1zTWtOQlFUSkRMSFZEUVVGMVF5eHhRa0ZCY1VJc2VVTkJRWGxETEZkQlFWY3NVMEZCVXl3d1EwRkJNRU1zZFVOQlFYVkRMRzFDUVVGdFFpeDVRMEZCZVVNc1YwRkJWeXhUUVVGVExESkNRVUV5UWl3eVFrRkJNa0lzYjBKQlFXOUNMR3REUVVGclF5eHBRa0ZCYVVJc09FSkJRVGhDTEdGQlFXRXNWMEZCVnl4VFFVRlRMRTlCUVU4c2FVTkJRV2xETEhOQ1FVRnpRaXd3UWtGQk1FSXNkMEpCUVhkQ0xIZERRVUYzUXl4elFrRkJjMElzVTBGQlV5eFBRVUZQTEdkQ1FVRm5RaXh4UWtGQmNVSXNNa0pCUVRKQ0xIZENRVUYzUWl4MVFrRkJkVUlzVDBGQlR5eExRVUZMTEVkQlFVY3NhMHhCUVd0TUxEWkNRVUUyUWl3MFVVRkJORkVzT0VOQlFUaERMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMREJSUVVFd1VTdzBRMEZCTkVNc01FTkJRVEJETERCRFFVRXdReXd3UTBGQk1FTXNNRU5CUVRCRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc05GRkJRVFJSTERoRFFVRTRReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXc0VVVGQk9GRXNaMFJCUVdkRUxEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExHZFNRVUZuVWl4clJFRkJhMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjFKQlFXZFNMR3RFUVVGclJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDdzBVVUZCTkZFc09FTkJRVGhETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSUlFVRTBVU3c0UTBGQk9FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORkZCUVRSUkxEaERRVUU0UXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3NFVVRkJPRkVzWjBSQlFXZEVMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRFJSUVVFMFVTdzRRMEZCT0VNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc1oxSkJRV2RTTEd0RVFVRnJSQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huVWtGQloxSXNhMFJCUVd0RUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxIbEdRVUY1Uml4MVpFRkJkV1FzY1VKQlFYRkNPMEZCUTJnd1pEdEJRVU5CTEdsRlFVRmxMSFZDUVVGMVFpeEZRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZVSFZpYkdsemFFeHBZbkpoY25rdWMyTnpjejh4WVdRMElsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaTh2SUVsdGNHOXlkSE5jYm1sdGNHOXlkQ0JmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlUVDFWU1EwVk5RVkJmU1UxUVQxSlVYMTlmSUdaeWIyMGdYQ0l1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTlqYzNNdGJHOWhaR1Z5TDJScGMzUXZjblZ1ZEdsdFpTOXpiM1Z5WTJWTllYQnpMbXB6WENJN1hHNXBiWEJ2Y25RZ1gxOWZRMU5UWDB4UFFVUkZVbDlCVUVsZlNVMVFUMUpVWDE5ZklHWnliMjBnWENJdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2Y25WdWRHbHRaUzloY0drdWFuTmNJanRjYm5aaGNpQmZYMTlEVTFOZlRFOUJSRVZTWDBWWVVFOVNWRjlmWHlBOUlGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgwbE5VRTlTVkY5Zlh5aGZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOVRUMVZTUTBWTlFWQmZTVTFRVDFKVVgxOWZLVHRjYmk4dklFMXZaSFZzWlZ4dVgxOWZRMU5UWDB4UFFVUkZVbDlGV0ZCUFVsUmZYMTh1Y0hWemFDaGJiVzlrZFd4bExtbGtMQ0JjSWpwbGVIQnZjblFnZTF4Y2JpQWdkR2hsYldWR2FXeDBaWEk2SUdsdWRtVnlkQ2c1TXlVcElHaDFaUzF5YjNSaGRHVW9NVGd3WkdWbktUdGNYRzU5WEZ4dVhGeHVMbVY0WTJGc2FXUnlZWGNnTG5CMVlteHBjMmd0YkdsaWNtRnllVjlmWm1sbGJHUnpJSHRjWEc0Z0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dUlDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ1kyOXNkVzF1TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdWNIVmliR2x6YUMxc2FXSnlZWEo1WDE5bWFXVnNaSE1nYkdGaVpXd2dlMXhjYmlBZ2NHRmtaR2x1WnpvZ01XVnRPMXhjYmlBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjWEc0Z0lHcDFjM1JwWm5rdFkyOXVkR1Z1ZERvZ2MzQmhZMlV0WW1WMGQyVmxianRjWEc0Z0lHRnNhV2R1TFdsMFpXMXpPaUJqWlc1MFpYSTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzV3ZFdKc2FYTm9MV3hwWW5KaGNubGZYMlpwWld4a2N5QnNZV0psYkNCemNHRnVJSHRjWEc0Z0lHWnZiblF0ZDJWcFoyaDBPaUExTURBN1hGeHVJQ0JtYjI1MExYTnBlbVU2SURGeVpXMDdYRnh1SUNCamIyeHZjam9nSXpnMk9HVTVOanRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG5CMVlteHBjMmd0YkdsaWNtRnllVjlmWm1sbGJHUnpJR3hoWW1Wc0lHbHVjSFYwTEZ4Y2JpNWxlR05oYkdsa2NtRjNJQzV3ZFdKc2FYTm9MV3hwWW5KaGNubGZYMlpwWld4a2N5QnNZV0psYkNCMFpYaDBZWEpsWVNCN1hGeHVJQ0IzYVdSMGFEb2dOekFsTzF4Y2JpQWdjR0ZrWkdsdVp6b2dNQzQyWlcwN1hGeHVJQ0JtYjI1MExXWmhiV2xzZVRvZ2RtRnlLQzB0ZFdrdFptOXVkQ2s3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1d2RXSnNhWE5vTFd4cFluSmhjbmxmWDJacFpXeGtjeUJzWVdKbGJDQXVjbVZ4ZFdseVpXUWdlMXhjYmlBZ1kyOXNiM0k2SUNObE1ETXhNekU3WEZ4dUlDQnRZWEpuYVc0NklEQXVNbkpsYlR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xuQjFZbXhwYzJndGJHbGljbUZ5ZVY5ZlluVjBkRzl1Y3lCN1hGeHVJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeGNiaUFnY0dGa1pHbHVaem9nTUM0eWNtVnRJREE3WEZ4dUlDQnFkWE4wYVdaNUxXTnZiblJsYm5RNklHWnNaWGd0Wlc1a08xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVjSFZpYkdsemFDMXNhV0p5WVhKNVgxOWlkWFIwYjI1eklDNVViMjlzU1dOdmJsOWZhV052YmlCN1hGeHVJQ0J0YVc0dGQybGtkR2c2SURJdU5YSmxiVHRjWEc0Z0lIZHBaSFJvT2lCaGRYUnZPMXhjYmlBZ1ptOXVkQzF6YVhwbE9pQXhjbVZ0TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdWNIVmliR2x6YUMxc2FXSnlZWEo1WDE5aWRYUjBiMjV6SUM1VWIyOXNTV052Ymw5MGVYQmxYMkoxZEhSdmJpQjdYRnh1SUNCdFlYSm5hVzR0YkdWbWREb2dNWEpsYlR0Y1hHNGdJSEJoWkdScGJtYzZJREFnTUM0MWNtVnRPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1Y0hWaWJHbHphQzFzYVdKeVlYSjVYMTlpZFhSMGIyNXpMUzFqYjI1bWFYSnRMbFJ2YjJ4SlkyOXVYM1I1Y0dWZlluVjBkRzl1SUh0Y1hHNGdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ015TWpoaVpUWTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzV3ZFdKc2FYTm9MV3hwWW5KaGNubGZYMkoxZEhSdmJuTXRMV052Ym1acGNtMHVWRzl2YkVsamIyNWZkSGx3WlY5aWRYUjBiMjQ2YUc5MlpYSWdlMXhjYmlBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ0l6RTVOekZqTWp0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xuQjFZbXhwYzJndGJHbGljbUZ5ZVY5ZlluVjBkRzl1Y3kwdFkyRnVZMlZzTGxSdmIyeEpZMjl1WDNSNWNHVmZZblYwZEc5dUlIdGNYRzRnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNOaFpHSTFZbVE3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1d2RXSnNhWE5vTFd4cFluSmhjbmxmWDJKMWRIUnZibk10TFdOaGJtTmxiQzVVYjI5c1NXTnZibDkwZVhCbFgySjFkSFJ2Ympwb2IzWmxjaUI3WEZ4dUlDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQWpPRFk0WlRrMk8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVjSFZpYkdsemFDMXNhV0p5WVhKNVgxOWlkWFIwYjI1eklDNVViMjlzU1dOdmJsOWZhV052YmlCN1hGeHVJQ0JqYjJ4dmNqb2dJMlptWm1abVpqdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbkIxWW14cGMyZ3RiR2xpY21GeWVWOWZZblYwZEc5dWN5QXVWRzl2YkVsamIyNWZYMmxqYjI0Z0xsTndhVzV1WlhJZ2UxeGNiaUFnTFMxemNHbHVibVZ5TFdOdmJHOXlPaUFqWm1abU8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVjSFZpYkdsemFDMXNhV0p5WVhKNVgxOWlkWFIwYjI1eklDNVViMjlzU1dOdmJsOWZhV052YmlBdVUzQnBibTVsY2lCemRtY2dlMXhjYmlBZ2NHRmtaR2x1WnpvZ01DNDFjbVZ0TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdWNIVmliR2x6YUMxc2FXSnlZWEo1SUM1elpXeGxZM1JsWkMxc2FXSnlZWEo1TFdsMFpXMXpJSHRjWEc0Z0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dUlDQndZV1JrYVc1bk9pQXdJREF1T0hKbGJUdGNYRzRnSUdac1pYZ3RkM0poY0RvZ2QzSmhjRHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG5CMVlteHBjMmd0YkdsaWNtRnllU0F1YzJWc1pXTjBaV1F0YkdsaWNtRnllUzFwZEdWdGN5QXVjMmx1WjJ4bExXeHBZbkpoY25rdGFYUmxiUzEzY21Gd2NHVnlJSHRjWEc0Z0lIZHBaSFJvT2lBNWNtVnRPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1Y0hWaWJHbHphQzFzYVdKeVlYSjVMVzV2ZEdVZ2UxeGNiaUFnY0dGa1pHbHVaem9nTVdWdE8xeGNiaUFnWm05dWRDMXpkSGxzWlRvZ2FYUmhiR2xqTzF4Y2JpQWdabTl1ZEMxemFYcGxPaUF4TkhCNE8xeGNiaUFnWkdsemNHeGhlVG9nWW14dlkyczdYRnh1ZlZ3aUxDQmNJbHdpTEh0Y0luWmxjbk5wYjI1Y0lqb3pMRndpYzI5MWNtTmxjMXdpT2x0Y0luZGxZbkJoWTJzNkx5OHVMeTR1THk0dUwyTnpjeTkyWVhKcFlXSnNaWE11Ylc5a2RXeGxMbk5qYzNOY0lpeGNJbmRsWW5CaFkyczZMeTh1THk0dUx5NHVMMk52YlhCdmJtVnVkSE12VUhWaWJHbHphRXhwWW5KaGNua3VjMk56YzF3aUxGd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwyOXdaVzR0WTI5c2IzSXZiM0JsYmkxamIyeHZjaTV6WTNOelhDSmRMRndpYm1GdFpYTmNJanBiWFN4Y0ltMWhjSEJwYm1kelhDSTZYQ0pCUVZWQk8wVkJRMFVzTWtOQlFVRTdRVU5VUmpzN1FVRkZTVHRGUVVORkxHRkJRVUU3UlVGRFFTeHpRa0ZCUVR0QlFVTk9PMEZCUTAwN1JVRkRSU3haUVVGQk8wVkJRMEVzWVVGQlFUdEZRVU5CTERoQ1FVRkJPMFZCUTBFc2JVSkJRVUU3UVVGRFVqdEJRVUZSTzBWQlEwVXNaMEpCUVVFN1JVRkRRU3hsUVVGQk8wVkJRMEVzWTBOeFFrVTdRVVJ1UWxvN1FVRkJVVHM3UlVGRlJTeFZRVUZCTzBWQlEwRXNZMEZCUVR0RlFVTkJMREpDUVVGQk8wRkJSVlk3UVVGRFVUdEZRVU5GTEdORGVVTkRPMFZFZUVORUxHTkJRVUU3UVVGRFZqdEJRVWxKTzBWQlEwVXNZVUZCUVR0RlFVTkJMR2xDUVVGQk8wVkJRMEVzZVVKQlFVRTdRVUZHVGp0QlFVbE5PMFZCUTBVc2FVSkJRVUU3UlVGRFFTeFhRVUZCTzBWQlEwRXNaVUZCUVR0QlFVWlNPMEZCUzAwN1JVRkRSU3hwUWtGQlFUdEZRVU5CTEdsQ1FVRkJPMEZCU0ZJN1FVRk5UVHRGUVVORkxIbENRelJLU1R0QlJHaExXanRCUVUxUk8wVkJRMFVzZVVKRE1rcEZPMEZFTDBwYU8wRkJVVTA3UlVGRFJTeDVRa055UWtrN1FVUmxXanRCUVU5Uk8wVkJRMFVzZVVKRGRFSkZPMEZFYVVKYU8wRkJVMDA3UlVGRFJTeGpRM0pFVnp0QlJEaERia0k3UVVGUlVUdEZRVU5GTEhGQ1FVRkJPMEZCVGxZN1FVRlBWVHRGUVVORkxHVkJRVUU3UVVGTVdqdEJRVmRKTzBWQlEwVXNZVUZCUVR0RlFVTkJMR2xDUVVGQk8wVkJRMEVzWlVGQlFUdEJRVlJPTzBGQlYwMDdSVUZEUlN4WFFVRkJPMEZCVkZJN1FVRmhTVHRGUVVORkxGbEJRVUU3UlVGRFFTeHJRa0ZCUVR0RlFVTkJMR1ZCUVVFN1JVRkRRU3hqUVVGQk8wRkJXRTVjSWl4Y0luTnZkWEpqWlhORGIyNTBaVzUwWENJNlcxd2lRR2x0Y0c5eWRDQmNYRndpYjNCbGJpMWpiMnh2Y2k5dmNHVnVMV052Ykc5eUxuTmpjM05jWEZ3aU8xeGNibHhjYmtCdGFYaHBiaUJwYzAxdlltbHNaU2dwSUh0Y1hHNGdJRUJoZEMxeWIyOTBJQzVsZUdOaGJHbGtjbUYzTFMxdGIySnBiR1VqZXlaOUlIdGNYRzRnSUNBZ1FHTnZiblJsYm5RN1hGeHVJQ0I5WEZ4dWZWeGNibHhjYmlSMGFHVnRaUzFtYVd4MFpYSTZJRnhjWENKcGJuWmxjblFvT1RNbEtTQm9kV1V0Y205MFlYUmxLREU0TUdSbFp5bGNYRndpTzF4Y2JseGNianBsZUhCdmNuUWdlMXhjYmlBZ2RHaGxiV1ZHYVd4MFpYSTZJSFZ1Y1hWdmRHVW9KSFJvWlcxbExXWnBiSFJsY2lrN1hGeHVmVnhjYmx3aUxGd2lRR2x0Y0c5eWRDQmNYRndpTGk0dlkzTnpMM1poY21saFlteGxjeTV0YjJSMWJHVmNYRndpTzF4Y2JseGNiaTVsZUdOaGJHbGtjbUYzSUh0Y1hHNGdJQzV3ZFdKc2FYTm9MV3hwWW5KaGNua2dlMXhjYmlBZ0lDQW1YMTltYVdWc1pITWdlMXhjYmlBZ0lDQWdJR1JwYzNCc1lYazZJR1pzWlhnN1hGeHVJQ0FnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjWEc1Y1hHNGdJQ0FnSUNCc1lXSmxiQ0I3WEZ4dUlDQWdJQ0FnSUNCd1lXUmthVzVuT2lBeFpXMDdYRnh1SUNBZ0lDQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeGNiaUFnSUNBZ0lDQWdhblZ6ZEdsbWVTMWpiMjUwWlc1ME9pQnpjR0ZqWlMxaVpYUjNaV1Z1TzF4Y2JpQWdJQ0FnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzRnSUNBZ0lDQWdJSE53WVc0Z2UxeGNiaUFnSUNBZ0lDQWdJQ0JtYjI1MExYZGxhV2RvZERvZ05UQXdPMXhjYmlBZ0lDQWdJQ0FnSUNCbWIyNTBMWE5wZW1VNklERnlaVzA3WEZ4dUlDQWdJQ0FnSUNBZ0lHTnZiRzl5T2lBa2IyTXRaM0poZVMwMk8xeGNiaUFnSUNBZ0lDQWdmVnhjYmlBZ0lDQWdJQ0FnYVc1d2RYUXNYRnh1SUNBZ0lDQWdJQ0IwWlhoMFlYSmxZU0I3WEZ4dUlDQWdJQ0FnSUNBZ0lIZHBaSFJvT2lBM01DVTdYRnh1SUNBZ0lDQWdJQ0FnSUhCaFpHUnBibWM2SURBdU5tVnRPMXhjYmlBZ0lDQWdJQ0FnSUNCbWIyNTBMV1poYldsc2VUb2dkbUZ5S0MwdGRXa3RabTl1ZENrN1hGeHVJQ0FnSUNBZ0lDQjlYRnh1WEZ4dUlDQWdJQ0FnSUNBdWNtVnhkV2x5WldRZ2UxeGNiaUFnSUNBZ0lDQWdJQ0JqYjJ4dmNqb2dKRzlqTFhKbFpDMDRPMXhjYmlBZ0lDQWdJQ0FnSUNCdFlYSm5hVzQ2SURBdU1uSmxiVHRjWEc0Z0lDQWdJQ0FnSUgxY1hHNGdJQ0FnSUNCOVhGeHVJQ0FnSUgxY1hHNWNYRzRnSUNBZ0psOWZZblYwZEc5dWN5QjdYRnh1SUNBZ0lDQWdaR2x6Y0d4aGVUb2dabXhsZUR0Y1hHNGdJQ0FnSUNCd1lXUmthVzVuT2lBd0xqSnlaVzBnTUR0Y1hHNGdJQ0FnSUNCcWRYTjBhV1o1TFdOdmJuUmxiblE2SUdac1pYZ3RaVzVrTzF4Y2JseGNiaUFnSUNBZ0lDNVViMjlzU1dOdmJsOWZhV052YmlCN1hGeHVJQ0FnSUNBZ0lDQnRhVzR0ZDJsa2RHZzZJREl1TlhKbGJUdGNYRzRnSUNBZ0lDQWdJSGRwWkhSb09pQmhkWFJ2TzF4Y2JpQWdJQ0FnSUNBZ1ptOXVkQzF6YVhwbE9pQXhjbVZ0TzF4Y2JpQWdJQ0FnSUgxY1hHNWNYRzRnSUNBZ0lDQXVWRzl2YkVsamIyNWZkSGx3WlY5aWRYUjBiMjRnZTF4Y2JpQWdJQ0FnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJREZ5WlcwN1hGeHVJQ0FnSUNBZ0lDQndZV1JrYVc1bk9pQXdJREF1TlhKbGJUdGNYRzRnSUNBZ0lDQjlYRnh1WEZ4dUlDQWdJQ0FnSmkwdFkyOXVabWx5YlM1VWIyOXNTV052Ymw5MGVYQmxYMkoxZEhSdmJpQjdYRnh1SUNBZ0lDQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUFrYjJNdFlteDFaUzAyTzF4Y2JseGNiaUFnSUNBZ0lDQWdKanBvYjNabGNpQjdYRnh1SUNBZ0lDQWdJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNSdll5MWliSFZsTFRnN1hGeHVJQ0FnSUNBZ0lDQjlYRnh1SUNBZ0lDQWdmVnhjYmx4Y2JpQWdJQ0FnSUNZdExXTmhibU5sYkM1VWIyOXNTV052Ymw5MGVYQmxYMkoxZEhSdmJpQjdYRnh1SUNBZ0lDQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUFrYjJNdFozSmhlUzAxTzF4Y2JpQWdJQ0FnSUNBZ0pqcG9iM1psY2lCN1hGeHVJQ0FnSUNBZ0lDQWdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ1J2WXkxbmNtRjVMVFk3WEZ4dUlDQWdJQ0FnSUNCOVhGeHVJQ0FnSUNBZ2ZWeGNibHhjYmlBZ0lDQWdJQzVVYjI5c1NXTnZibDlmYVdOdmJpQjdYRnh1SUNBZ0lDQWdJQ0JqYjJ4dmNqb2dKRzlqTFhkb2FYUmxPMXhjYmlBZ0lDQWdJQ0FnTGxOd2FXNXVaWElnZTF4Y2JpQWdJQ0FnSUNBZ0lDQXRMWE53YVc1dVpYSXRZMjlzYjNJNklDTm1abVk3WEZ4dUlDQWdJQ0FnSUNBZ0lITjJaeUI3WEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjR0ZrWkdsdVp6b2dNQzQxY21WdE8xeGNiaUFnSUNBZ0lDQWdJQ0I5WEZ4dUlDQWdJQ0FnSUNCOVhGeHVJQ0FnSUNBZ2ZWeGNiaUFnSUNCOVhGeHVYRnh1SUNBZ0lDNXpaV3hsWTNSbFpDMXNhV0p5WVhKNUxXbDBaVzF6SUh0Y1hHNGdJQ0FnSUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ0lDQWdJSEJoWkdScGJtYzZJREFnTUM0NGNtVnRPMXhjYmlBZ0lDQWdJR1pzWlhndGQzSmhjRG9nZDNKaGNEdGNYRzVjWEc0Z0lDQWdJQ0F1YzJsdVoyeGxMV3hwWW5KaGNua3RhWFJsYlMxM2NtRndjR1Z5SUh0Y1hHNGdJQ0FnSUNBZ0lIZHBaSFJvT2lBNWNtVnRPMXhjYmlBZ0lDQWdJSDFjWEc0Z0lDQWdmVnhjYmx4Y2JpQWdJQ0FtTFc1dmRHVWdlMXhjYmlBZ0lDQWdJSEJoWkdScGJtYzZJREZsYlR0Y1hHNGdJQ0FnSUNCbWIyNTBMWE4wZVd4bE9pQnBkR0ZzYVdNN1hGeHVJQ0FnSUNBZ1ptOXVkQzF6YVhwbE9pQXhOSEI0TzF4Y2JpQWdJQ0FnSUdScGMzQnNZWGs2SUdKc2IyTnJPMXhjYmlBZ0lDQjlYRnh1SUNCOVhGeHVmVnhjYmx3aUxGd2lMeTljWEc0dkwxeGNiaTh2SUNEd25aZVdJUENkbDZJZzhKMlhueUR3blplaUlQQ2RsNlZjWEc0dkx5QWdkaUF4TGprdU1WeGNiaTh2WEZ4dUx5OGdJT0tVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdWeGNibHhjYmx4Y2JpOHZJQ0JIWlc1bGNtRnNYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxM2FHbDBaVG9nSUNBZ0lDQWdJQ0FqWm1abVptWm1PMXhjYmlSdll5MWliR0ZqYXpvZ0lDQWdJQ0FnSUNBak1EQXdNREF3TzF4Y2JseGNibHhjYmk4dklDQkhjbUY1WEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MW5jbUY1TFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlk0WmpsbVlTeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyWXhaak5tTlN4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJVNVpXTmxaaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMlJsWlRKbE5peGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0kyTmxaRFJrWVN4Y1hHNGdJRnhjWENJMVhGeGNJam9nSTJGa1lqVmlaQ3hjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJemcyT0dVNU5peGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6UTVOVEExTnl4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpNME0yRTBNQ3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJekl4TWpVeU9WeGNiaWs3WEZ4dVhGeHVKRzlqTFdkeVlYa3RNRG9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRFNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0TXpvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxUUTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzAxT2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE5qb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVGM2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMwNE9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3RPVG9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCU1pXUmNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFhKbFpDMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObVptWTFaalVzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05tWm1VelpUTXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTm1abU01WXprc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNObVptRTRZVGdzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ05tWmpnM09EY3NYRnh1SUNCY1hGd2lOVnhjWENJNklDTm1aalppTm1Jc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNObVlUVXlOVElzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ05tTURObE0yVXNYRnh1SUNCY1hGd2lPRnhjWENJNklDTmxNRE14TXpFc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNOak9USmhNbUZjWEc0cE8xeGNibHhjYmlSdll5MXlaV1F0TURvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMWEpsWkMweE9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUSTZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxeVpXUXRNem9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxYSmxaQzAwT2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRVNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE5qb2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVGc2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MXlaV1F0T1RvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lGQnBibXRjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxYQnBibXN0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpabVptTUdZMkxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalptWmtaV1ZpTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWm1Oak1tUTNMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpabUZoTW1NeExGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBalpqYzRNMkZqTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqWmpBMk5UazFMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpaVFkwT1Rnd0xGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBalpEWXpNelpqTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqWXpJeU5UVmpMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpZVFl4WlRSa1hGeHVLVHRjWEc1Y1hHNGtiMk10Y0dsdWF5MHdPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0TVRvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUSTZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTB6T2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE5Eb2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVFU2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkwMk9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3ROem9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRnNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MDVPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUVkeVlYQmxYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxbmNtRndaUzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1PR1l3Wm1Nc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObU0yUTVabUVzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05sWldKbFptRXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTmxOVGs1Wmpjc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNOa1lUYzNaaklzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ05qWXpWa1pUZ3NYRnh1SUNCY1hGd2lObHhjWENJNklDTmlaVFJpWkdJc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNOaFpUTmxZemtzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ001WXpNMllqVXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTTROakpsT1dOY1hHNHBPMXhjYmx4Y2JpUnZZeTFuY21Gd1pTMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMweE9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzB5T2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMwME9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzAxT2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMwM09pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzA0T2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCV2FXOXNaWFJjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxYWnBiMnhsZEMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tTTJZd1ptWXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTmxOV1JpWm1Zc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNOa01HSm1abVlzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05pTVRrM1ptTXNYRnh1SUNCY1hGd2lORnhjWENJNklDTTVOemMxWm1Fc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNNNE5EVmxaamNzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ00zT1RVd1pqSXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTTNNRFE0WlRnc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNMk56UXhaRGtzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ00xWmpOa1l6UmNYRzRwTzF4Y2JseGNiaVJ2WXkxMmFXOXNaWFF0TURvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzB4T2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVEk2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXRNem9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUVTZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE5qb2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMwM09pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRnNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0T1RvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRWx1WkdsbmIxeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10YVc1a2FXZHZMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyVmtaakptWml4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJSaVpUUm1aaXhjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMkpoWXpobVppeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0l6a3hZVGRtWml4Y1hHNGdJRnhjWENJMFhGeGNJam9nSXpjME9HWm1ZeXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJelZqTjJObVlTeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0l6UmpObVZtTlN4Y1hHNGdJRnhjWENJM1hGeGNJam9nSXpReU5qTmxZaXhjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJek5pTldKa1lpeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6TTJOR1pqTjF4Y2JpazdYRnh1WEZ4dUpHOWpMV2x1WkdsbmJ5MHdPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxURTZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE1qb2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkwek9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRRNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0TlRvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTAyT2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVGM2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHRPRG9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MDVPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1FteDFaVnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdFlteDFaUzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTmxOMlkxWm1Zc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNOa01HVmlabVlzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05oTldRNFptWXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTTNOR013Wm1Nc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNNMFpHRmlaamNzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ016TXpsaFpqQXNYRnh1SUNCY1hGd2lObHhjWENJNklDTXlNamhpWlRZc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNeFl6ZGxaRFlzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ014T1RjeFl6SXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTXhPRFkwWVdKY1hHNHBPMXhjYmx4Y2JpUnZZeTFpYkhWbExUQTZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzB4T2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE1qb2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVE02SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMwME9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXROVG9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRZNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10WW14MVpTMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0T0RvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUazZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnUTNsaGJseGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10WTNsaGJpMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObE0yWmhabU1zWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05qTldZMlptRXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTTVPV1U1WmpJc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNNMk5tUTVaVGdzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ016WW1NNVpHSXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTXlNbUk0WTJZc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNNeE5XRmhZbVlzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ014TURrNFlXUXNYRnh1SUNCY1hGd2lPRnhjWENJNklDTXdZemcxT1Rrc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNd1lqY3lPRFZjWEc0cE8xeGNibHhjYmlSdll5MWplV0Z1TFRBNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0TWpvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxUTTZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTAwT2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE5Ub2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVFk2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkwM09pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHRPRG9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRrNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdWR1ZoYkZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRkR1ZoYkMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05sTm1aalpqVXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTmpNMlpoWlRnc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNNNU5tWXlaRGNzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ00yTTJVMlltVXNYRnh1SUNCY1hGd2lORnhjWENJNklDTXpPR1E1WVRrc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNNeU1HTTVPVGNzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ014TW1JNE9EWXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTXdZMkUyTnpnc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNd09Ua3lOamdzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ013T0RkbU5XSmNYRzRwTzF4Y2JseGNiaVJ2WXkxMFpXRnNMVEE2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMweE9pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3RNam9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRNNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0TlRvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUWTZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzAzT2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE9Eb2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVGs2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1IzSmxaVzVjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXZHlaV1Z1TFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlZpWm1KbFpTeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyUXpaamxrT0N4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJJeVpqSmlZaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJemhqWlRrNVlTeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0l6WTVaR0kzWXl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXpVeFkyWTJOaXhjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJelF3WXpBMU55eGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6TTNZakkwWkN4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpKbU9XVTBOQ3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJekppT0dFelpWeGNiaWs3WEZ4dVhGeHVKRzlqTFdkeVpXVnVMVEE2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxURTZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRJNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVE02SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUUTZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRVNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVFk2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUYzZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRnNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVGs2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lFeHBiV1ZjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXeHBiV1V0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaalJtWTJVekxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpUbG1ZV000TEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWkRobU5XRXlMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpZekJsWWpjMUxGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBallUbGxNelJpTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqT1RSa09ESmtMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpPREpqT1RGbExGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak56UmlPREUyTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTmpaaE9EQm1MRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpOV001TkRCa1hGeHVLVHRjWEc1Y1hHNGtiMk10YkdsdFpTMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0TVRvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUSTZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzB6T2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE5Eb2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVFU2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMwMk9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXROem9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRnNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUZsbGJHeHZkMXhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGVXVnNiRzkzTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlptWmpsa1lpeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyWm1aak5pWml4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJabVpXTTVPU3hjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMlptWlRBMk5peGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0kyWm1aRFF6WWl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSTJaall6UXhPU3hjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJMlpoWWpBd05TeGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0kyWTFPV1l3TUN4Y1hHNGdJRnhjWENJNFhGeGNJam9nSTJZd09HTXdNQ3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJMlUyTnpjd01GeGNiaWs3WEZ4dVhGeHVKRzlqTFhsbGJHeHZkeTB3T2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVEU2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3RNam9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MHpPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUUTZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE5Ub2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkwMk9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRjNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0T0RvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTA1T2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdUM0poYm1kbFhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTF2Y21GdVoyVXRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalptWm1OR1UyTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWm1abE9HTmpMRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpabVprT0dFNExGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBalptWmpNRGM0TEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqWm1aaE9UUmtMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpabVk1TWpKaUxGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBalptUTNaVEUwTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqWmpjMk56QTNMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpaVGcxT1RCakxGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBalpEazBPREJtWEZ4dUtUdGNYRzVjWEc0a2IyTXRiM0poYm1kbExUQTZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE1Ub2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMweU9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRNNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0TkRvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzAxT2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVFk2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXROem9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUazZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCRGIyeHZjaUJzYVhOMFhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFqYjJ4dmNpMXpjR1ZqZEhKMWJUb2dJQ0E1TzF4Y2JseGNiaVJ2WXkxamIyeHZjaTFzYVhOME9pQW9YRnh1SUNBa2IyTXRaM0poZVMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0puY21GNVhGeGNJaXhjWEc0Z0lDUnZZeTF5WldRdGJHbHpkRG9nSUNBZ0lDQmNYRndpY21Wa1hGeGNJaXhjWEc0Z0lDUnZZeTF3YVc1ckxXeHBjM1E2SUNBZ0lDQWdYRnhjSW5CcGJtdGNYRndpTEZ4Y2JpQWdKRzlqTFdkeVlYQmxMV3hwYzNRNklDQWdJQ0FnWEZ4Y0ltZHlZWEJsWEZ4Y0lpeGNYRzRnSUNSdll5MTJhVzlzWlhRdGJHbHpkRG9nSUNBZ0lDQmNYRndpZG1sdmJHVjBYRnhjSWl4Y1hHNGdJQ1J2WXkxcGJtUnBaMjh0YkdsemREb2dJQ0FnSUNCY1hGd2lhVzVrYVdkdlhGeGNJaXhjWEc0Z0lDUnZZeTFpYkhWbExXeHBjM1E2SUNBZ0lDQWdYRnhjSW1Kc2RXVmNYRndpTEZ4Y2JpQWdKRzlqTFdONVlXNHRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aVkzbGhibHhjWENJc1hGeHVJQ0FrYjJNdGRHVmhiQzFzYVhOME9pQWdJQ0FnSUZ4Y1hDSjBaV0ZzWEZ4Y0lpeGNYRzRnSUNSdll5MW5jbVZsYmkxc2FYTjBPaUFnSUNBZ0lGeGNYQ0puY21WbGJseGNYQ0lzWEZ4dUlDQWtiMk10YkdsdFpTMXNhWE4wT2lBZ0lDQWdJRnhjWENKc2FXMWxYRnhjSWl4Y1hHNGdJQ1J2WXkxNVpXeHNiM2N0YkdsemREb2dJQ0FnSUNCY1hGd2llV1ZzYkc5M1hGeGNJaXhjWEc0Z0lDUnZZeTF2Y21GdVoyVXRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWIzSmhibWRsWEZ4Y0lseGNiaWs3WEZ4dVhDSmRMRndpYzI5MWNtTmxVbTl2ZEZ3aU9sd2lYQ0o5WFNrN1hHNHZMeUJGZUhCdmNuUnpYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQmZYMTlEVTFOZlRFOUJSRVZTWDBWWVVFOVNWRjlmWHp0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvUHVibGlzaExpYnJhcnkuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9TaW5nbGVMaWJyYXJ5SXRlbS5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1NpbmdsZUxpYnJhcnlJdGVtLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLy8gSW1wb3J0c1xcblxcblxcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxuLy8gTW9kdWxlXFxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcXFwiOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxcXG59XFxcXG5cXFxcbi5leGNhbGlkcmF3IC5zaW5nbGUtbGlicmFyeS1pdGVtIHtcXFxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnNpbmdsZS1saWJyYXJ5LWl0ZW1fX3N2ZyB7XFxcXG4gIHdpZHRoOiA3LjVyZW07XFxcXG4gIGhlaWdodDogNy41cmVtO1xcXFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24tZ3JheS0yKTtcXFxcbiAgbWFyZ2luOiAwLjNyZW07XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuc2luZ2xlLWxpYnJhcnktaXRlbV9fc3ZnIHN2ZyB7XFxcXG4gIHdpZHRoOiAxMDAlO1xcXFxuICBoZWlnaHQ6IDEwMCU7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuc2luZ2xlLWxpYnJhcnktaXRlbSAuVG9vbEljb25fX2ljb24ge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xcXFxuICB3aWR0aDogYXV0bztcXFxcbiAgaGVpZ2h0OiBhdXRvO1xcXFxuICBtYXJnaW46IDAgMC41cmVtO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnNpbmdsZS1saWJyYXJ5LWl0ZW0gLlRvb2xJY29uLFxcXFxuLmV4Y2FsaWRyYXcgLnNpbmdsZS1saWJyYXJ5LWl0ZW0gLlRvb2xJY29uX3R5cGVfYnV0dG9uOmhvdmVyIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuc2luZ2xlLWxpYnJhcnktaXRlbSAucmVxdWlyZWQsXFxcXG4uZXhjYWxpZHJhdyAuc2luZ2xlLWxpYnJhcnktaXRlbSAuZXJyb3Ige1xcXFxuICBjb2xvcjogI2UwMzEzMTtcXFxcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXFxcbiAgbWFyZ2luOiAwLjJyZW07XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuc2luZ2xlLWxpYnJhcnktaXRlbSAuZXJyb3Ige1xcXFxuICBmb250LXdlaWdodDogNTAwO1xcXFxuICBtYXJnaW46IDA7XFxcXG4gIHBhZGRpbmc6IDAuM2VtIDA7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuc2luZ2xlLWxpYnJhcnktaXRlbS0tcmVtb3ZlIHtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICB0b3A6IDAuMnJlbTtcXFxcbiAgcmlnaHQ6IDEuM3JlbTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5zaW5nbGUtbGlicmFyeS1pdGVtLS1yZW1vdmUgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgbWFyZ2luOiAwO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnNpbmdsZS1saWJyYXJ5LWl0ZW0tLXJlbW92ZSAuVG9vbEljb25fX2ljb24ge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmE1MjUyO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnNpbmdsZS1saWJyYXJ5LWl0ZW0tLXJlbW92ZSAuVG9vbEljb25fX2ljb246aG92ZXIge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAzZTNlO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnNpbmdsZS1saWJyYXJ5LWl0ZW0tLXJlbW92ZSAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMzEzMTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5zaW5nbGUtbGlicmFyeS1pdGVtLS1yZW1vdmUgc3ZnIHtcXFxcbiAgY29sb3I6ICNmZmZmZmY7XFxcXG4gIHBhZGRpbmc6IDAuMjZyZW07XFxcXG4gIGJvcmRlci1yYWRpdXM6IDAuM2VtO1xcXFxuICB3aWR0aDogMXJlbTtcXFxcbiAgaGVpZ2h0OiAxcmVtO1xcXFxufVxcXCIsIFxcXCJcXFwiLHtcXFwidmVyc2lvblxcXCI6MyxcXFwic291cmNlc1xcXCI6W1xcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9TaW5nbGVMaWJyYXJ5SXRlbS5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQVVBO0VBQ0UsMkNBQUE7QUNURjs7QUFDRTtFQUNFLGtCQUFBO0FBRUo7QUFESTtFQUNFLGFBQUE7RUFDQSxjQUFBO0VBQ0Esc0NBQUE7RUFDQSxjQUFBO0FBR047QUFGTTtFQUNFLFdBQUE7RUFDQSxZQUFBO0FBSVI7QUFBSTtFQUNFLHlCQ05hO0VET2IsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtBQUVOO0FBQUk7O0VBRUUsdUJBQUE7QUFFTjtBQUFJOztFQUVFLGNDdUNLO0VEdENMLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7QUFFTjtBQUFJO0VBQ0UsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsZ0JBQUE7QUFFTjtBQUNJO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtBQUNOO0FBQ007RUFDRSxTQUFBO0FBQ1I7QUFDTTtFQUNFLHlCQ2lCRztBRGhCWDtBQUFRO0VBQ0UseUJDZ0JDO0FEZFg7QUFBUTtFQUNFLHlCQ2NDO0FEWlg7QUFDTTtFQUNFLGNDOUNXO0VEK0NYLGdCQUFBO0VBQ0Esb0JBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtBQUNSXFxcIixcXFwic291cmNlc0NvbnRlbnRcXFwiOltcXFwiQGltcG9ydCBcXFxcXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcXFxcXCI7XFxcXG5cXFxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXFxcbiAgQGF0LXJvb3QgLmV4Y2FsaWRyYXctLW1vYmlsZSN7Jn0ge1xcXFxuICAgIEBjb250ZW50O1xcXFxuICB9XFxcXG59XFxcXG5cXFxcbiR0aGVtZS1maWx0ZXI6IFxcXFxcXFwiaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpXFxcXFxcXCI7XFxcXG5cXFxcbjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXFxcbn1cXFxcblxcXCIsXFxcIkBpbXBvcnQgXFxcXFxcXCIuLi9jc3MvdmFyaWFibGVzLm1vZHVsZVxcXFxcXFwiO1xcXFxuXFxcXG4uZXhjYWxpZHJhdyB7XFxcXG4gIC5zaW5nbGUtbGlicmFyeS1pdGVtIHtcXFxcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxcXG4gICAgJl9fc3ZnIHtcXFxcbiAgICAgIHdpZHRoOiA3LjVyZW07XFxcXG4gICAgICBoZWlnaHQ6IDcuNXJlbTtcXFxcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcXFxuICAgICAgbWFyZ2luOiAwLjNyZW07XFxcXG4gICAgICBzdmcge1xcXFxuICAgICAgICB3aWR0aDogMTAwJTtcXFxcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xcXFxuICAgICAgfVxcXFxuICAgIH1cXFxcblxcXFxuICAgIC5Ub29sSWNvbl9faWNvbiB7XFxcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2Mtd2hpdGU7XFxcXG4gICAgICB3aWR0aDogYXV0bztcXFxcbiAgICAgIGhlaWdodDogYXV0bztcXFxcbiAgICAgIG1hcmdpbjogMCAwLjVyZW07XFxcXG4gICAgfVxcXFxuICAgIC5Ub29sSWNvbixcXFxcbiAgICAuVG9vbEljb25fdHlwZV9idXR0b246aG92ZXIge1xcXFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XFxcXG4gICAgfVxcXFxuICAgIC5yZXF1aXJlZCxcXFxcbiAgICAuZXJyb3Ige1xcXFxuICAgICAgY29sb3I6ICRvYy1yZWQtODtcXFxcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xcXFxuICAgICAgZm9udC1zaXplOiAxcmVtO1xcXFxuICAgICAgbWFyZ2luOiAwLjJyZW07XFxcXG4gICAgfVxcXFxuICAgIC5lcnJvciB7XFxcXG4gICAgICBmb250LXdlaWdodDogNTAwO1xcXFxuICAgICAgbWFyZ2luOiAwO1xcXFxuICAgICAgcGFkZGluZzogMC4zZW0gMDtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAmLS1yZW1vdmUge1xcXFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICAgICAgdG9wOiAwLjJyZW07XFxcXG4gICAgICByaWdodDogMS4zcmVtO1xcXFxuXFxcXG4gICAgICAuVG9vbEljb25fX2ljb24ge1xcXFxuICAgICAgICBtYXJnaW46IDA7XFxcXG4gICAgICB9XFxcXG4gICAgICAuVG9vbEljb25fX2ljb24ge1xcXFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2MtcmVkLTY7XFxcXG4gICAgICAgICY6aG92ZXIge1xcXFxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvYy1yZWQtNztcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICAmOmFjdGl2ZSB7XFxcXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9jLXJlZC04O1xcXFxuICAgICAgICB9XFxcXG4gICAgICB9XFxcXG4gICAgICBzdmcge1xcXFxuICAgICAgICBjb2xvcjogJG9jLXdoaXRlO1xcXFxuICAgICAgICBwYWRkaW5nOiAwLjI2cmVtO1xcXFxuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjNlbTtcXFxcbiAgICAgICAgd2lkdGg6IDFyZW07XFxcXG4gICAgICAgIGhlaWdodDogMXJlbTtcXFxcbiAgICAgIH1cXFxcbiAgICB9XFxcXG4gIH1cXFxcbn1cXFxcblxcXCIsXFxcIi8vXFxcXG4vL1xcXFxuLy8gIFx1RDgzNVx1RERENiBcdUQ4MzVcdURERTIgXHVEODM1XHVERERGIFx1RDgzNVx1RERFMiBcdUQ4MzVcdURERTVcXFxcbi8vICB2IDEuOS4xXFxcXG4vL1xcXFxuLy8gIFx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVxcXFxuXFxcXG5cXFxcbi8vICBHZW5lcmFsXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy13aGl0ZTogICAgICAgICAjZmZmZmZmO1xcXFxuJG9jLWJsYWNrOiAgICAgICAgICMwMDAwMDA7XFxcXG5cXFxcblxcXFxuLy8gIEdyYXlcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyYXktbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y4ZjlmYSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmMWYzZjUsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZTllY2VmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2RlZTJlNixcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNjZWQ0ZGEsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjYWRiNWJkLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzg2OGU5NixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM0OTUwNTcsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMzQzYTQwLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzIxMjUyOVxcXFxuKTtcXFxcblxcXFxuJG9jLWdyYXktMDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0xOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTI6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS00OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTU6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS03OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTg6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktOTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFJlZFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtcmVkLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY1ZjUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZlM2UzLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmYzljOSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmE4YTgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmY4Nzg3LFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZmNmI2YixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmYTUyNTIsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjAzZTNlLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2UwMzEzMSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNjOTJhMmFcXFxcbik7XFxcXG5cXFxcbiRvYy1yZWQtMDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtMTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtMjogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtMzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNjogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1yZWQtODogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtOTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgUGlua1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtcGluay1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmMGY2LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZGVlYixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmY2MyZDcsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmFhMmMxLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2Y3ODNhYyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmMDY1OTUsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZTY0OTgwLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Q2MzM2YyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNjMjI1NWMsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjYTYxZTRkXFxcXG4pO1xcXFxuXFxcXG4kb2MtcGluay0wOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTE6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtcGluay0zOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTQ6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtcGluay02OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTc6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstODogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtcGluay05OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgR3JhcGVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyYXBlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmOGYwZmMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZjNkOWZhLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2VlYmVmYSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNlNTk5ZjcsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZGE3N2YyLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2NjNWRlOCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNiZTRiZGIsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjYWUzZWM5LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzljMzZiNSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM4NjJlOWNcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmFwZS0wOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTI6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0zOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTU6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS02OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTg6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS05OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFZpb2xldFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtdmlvbGV0LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmM2YwZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZTVkYmZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2QwYmZmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNiMTk3ZmMsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjOTc3NWZhLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzg0NWVmNyxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM3OTUwZjIsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNzA0OGU4LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzY3NDFkOSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM1ZjNkYzRcXFxcbik7XFxcXG5cXFxcbiRvYy12aW9sZXQtMDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtMTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtMjogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtMzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNjogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtODogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtOTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgSW5kaWdvXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1pbmRpZ28tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2VkZjJmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkYmU0ZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYmFjOGZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzkxYTdmZixcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM3NDhmZmMsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjNWM3Y2ZhLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzRjNmVmNSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM0MjYzZWIsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjM2I1YmRiLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzM2NGZjN1xcXFxuKTtcXFxcblxcXFxuJG9jLWluZGlnby0wOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby0xOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby0yOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby0zOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby00OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby01OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby02OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby03OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby04OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby05OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBCbHVlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ibHVlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlN2Y1ZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZDBlYmZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2E1ZDhmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM3NGMwZmMsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNGRhYmY3LFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzMzOWFmMCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICMyMjhiZTYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMWM3ZWQ2LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzE5NzFjMixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMxODY0YWJcXFxcbik7XFxcXG5cXFxcbiRvYy1ibHVlLTA6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0yOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTM6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS01OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTY6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS04OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTk6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBDeWFuXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1jeWFuLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlM2ZhZmMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjYzVmNmZhLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogIzk5ZTlmMixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM2NmQ5ZTgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjM2JjOWRiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzIyYjhjZixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICMxNWFhYmYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMTA5OGFkLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzBjODU5OSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMwYjcyODVcXFxcbik7XFxcXG5cXFxcbiRvYy1jeWFuLTA6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0yOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTM6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi01OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTY6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi04OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTk6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBUZWFsXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy10ZWFsLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlNmZjZjUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjYzNmYWU4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogIzk2ZjJkNyxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM2M2U2YmUsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjMzhkOWE5LFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzIwYzk5NyxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICMxMmI4ODYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMGNhNjc4LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzA5OTI2OCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMwODdmNWJcXFxcbik7XFxcXG5cXFxcbiRvYy10ZWFsLTA6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0yOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTM6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC01OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTY6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC04OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTk6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBHcmVlblxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JlZW4tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ViZmJlZSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkM2Y5ZDgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYjJmMmJiLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzhjZTk5YSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM2OWRiN2MsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjNTFjZjY2LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzQwYzA1NyxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMzN2IyNGQsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMmY5ZTQ0LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzJiOGEzZVxcXFxuKTtcXFxcblxcXFxuJG9jLWdyZWVuLTA6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0xOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMjogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTM6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi00OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTY6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi03OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tODogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTk6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgTGltZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtbGltZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjRmY2UzLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2U5ZmFjOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNkOGY1YTIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjYzBlYjc1LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2E5ZTM0YixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM5NGQ4MmQsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjODJjOTFlLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzc0YjgxNixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM2NmE4MGYsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjNWM5NDBkXFxcXG4pO1xcXFxuXFxcXG4kb2MtbGltZS0wOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTE6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0zOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTQ6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtbGltZS02OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTc6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtODogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtbGltZS05OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgWWVsbG93XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy15ZWxsb3ctbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjlkYixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmYzYmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZlYzk5LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmZTA2NixcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZmQ0M2IsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmNjNDE5LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZhYjAwNSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmNTlmMDAsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZjA4YzAwLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2U2NzcwMFxcXFxuKTtcXFxcblxcXFxuJG9jLXllbGxvdy0wOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy0xOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy0yOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy0zOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy00OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy01OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy02OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy03OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy04OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy05OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBPcmFuZ2VcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLW9yYW5nZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmNGU2LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZThjYyxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmQ4YTgsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZjMDc4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmYTk0ZCxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmZjkyMmIsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmQ3ZTE0LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Y3NjcwNyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNlODU5MGMsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjZDk0ODBmXFxcXG4pO1xcXFxuXFxcXG4kb2Mtb3JhbmdlLTA6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTE6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTI6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTM6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTQ6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTU6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTY6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTc6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTg6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTk6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIENvbG9yIGxpc3RcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWNvbG9yLXNwZWN0cnVtOiAgIDk7XFxcXG5cXFxcbiRvYy1jb2xvci1saXN0OiAoXFxcXG4gICRvYy1ncmF5LWxpc3Q6ICAgICAgXFxcXFxcXCJncmF5XFxcXFxcXCIsXFxcXG4gICRvYy1yZWQtbGlzdDogICAgICBcXFxcXFxcInJlZFxcXFxcXFwiLFxcXFxuICAkb2MtcGluay1saXN0OiAgICAgIFxcXFxcXFwicGlua1xcXFxcXFwiLFxcXFxuICAkb2MtZ3JhcGUtbGlzdDogICAgICBcXFxcXFxcImdyYXBlXFxcXFxcXCIsXFxcXG4gICRvYy12aW9sZXQtbGlzdDogICAgICBcXFxcXFxcInZpb2xldFxcXFxcXFwiLFxcXFxuICAkb2MtaW5kaWdvLWxpc3Q6ICAgICAgXFxcXFxcXCJpbmRpZ29cXFxcXFxcIixcXFxcbiAgJG9jLWJsdWUtbGlzdDogICAgICBcXFxcXFxcImJsdWVcXFxcXFxcIixcXFxcbiAgJG9jLWN5YW4tbGlzdDogICAgICBcXFxcXFxcImN5YW5cXFxcXFxcIixcXFxcbiAgJG9jLXRlYWwtbGlzdDogICAgICBcXFxcXFxcInRlYWxcXFxcXFxcIixcXFxcbiAgJG9jLWdyZWVuLWxpc3Q6ICAgICAgXFxcXFxcXCJncmVlblxcXFxcXFwiLFxcXFxuICAkb2MtbGltZS1saXN0OiAgICAgIFxcXFxcXFwibGltZVxcXFxcXFwiLFxcXFxuICAkb2MteWVsbG93LWxpc3Q6ICAgICAgXFxcXFxcXCJ5ZWxsb3dcXFxcXFxcIixcXFxcbiAgJG9jLW9yYW5nZS1saXN0OiAgICAgIFxcXFxcXFwib3JhbmdlXFxcXFxcXCJcXFxcbik7XFxcXG5cXFwiXSxcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoX19fQ1NTX0xPQURFUl9FWFBPUlRfX18pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpOXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVRhVzVuYkdWTWFXSnlZWEo1U1hSbGJTNXpZM056TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPMEZCUVVFN1FVRkRPRWc3UVVGRGFrSTdRVUZETjBjc09FSkJRVGhDTEhWSFFVRXlRaXhEUVVGRExHZElRVUZ4UXp0QlFVTXZSanRCUVVOQkxHMUVRVUZ0UkN4blJFRkJaMFFzUjBGQlJ5eHpRMEZCYzBNc2RVSkJRWFZDTEVkQlFVY3NlVU5CUVhsRExHdENRVUZyUWl4dFFrRkJiVUlzTWtOQlFUSkRMRzFDUVVGdFFpeEhRVUZITERaRFFVRTJReXhuUWtGQlowSXNhVUpCUVdsQ0xFZEJRVWNzYjBSQlFXOUVMRGhDUVVFNFFpeG5Ra0ZCWjBJc2FVSkJRV2xDTEhGQ1FVRnhRaXhIUVVGSExEWkhRVUUyUnl3MFFrRkJORUlzUjBGQlJ5eDNSa0ZCZDBZc2JVSkJRVzFDTEhOQ1FVRnpRaXh2UWtGQmIwSXNiVUpCUVcxQ0xFZEJRVWNzTWtOQlFUSkRMSEZDUVVGeFFpeGpRVUZqTEhGQ1FVRnhRaXhIUVVGSExEUkRRVUUwUXl4MVFrRkJkVUlzWjBKQlFXZENMR3RDUVVGclFpeEhRVUZITERSRVFVRTBSQ3hqUVVGakxFZEJRVWNzTkVSQlFUUkVMRGhDUVVFNFFpeEhRVUZITEd0RlFVRnJSU3c0UWtGQk9FSXNSMEZCUnl4dFJVRkJiVVVzT0VKQlFUaENMRWRCUVVjc1owUkJRV2RFTEcxQ1FVRnRRaXh4UWtGQmNVSXNlVUpCUVhsQ0xHZENRVUZuUWl4cFFrRkJhVUlzUjBGQlJ5eFBRVUZQTEhWT1FVRjFUaXhYUVVGWExFMUJRVTBzUzBGQlN5eFhRVUZYTEV0QlFVc3NTMEZCU3l4VlFVRlZMRlZCUVZVc1YwRkJWeXhWUVVGVkxFdEJRVXNzUzBGQlN5eFZRVUZWTEZWQlFWVXNTMEZCU3l4TFFVRkxMRmRCUVZjc1ZVRkJWU3hWUVVGVkxGZEJRVmNzUzBGQlN5eE5RVUZOTEZkQlFWY3NTMEZCU3l4TlFVRk5MRmRCUVZjc1dVRkJXU3hWUVVGVkxGVkJRVlVzUzBGQlN5eExRVUZMTEZkQlFWY3NWVUZCVlN4WFFVRlhMRXRCUVVzc1MwRkJTeXhYUVVGWExGVkJRVlVzVlVGQlZTeExRVUZMTEV0QlFVc3NWVUZCVlN4TFFVRkxMRXRCUVVzc1dVRkJXU3hOUVVGTkxFdEJRVXNzV1VGQldTeExRVUZMTEV0QlFVc3NWMEZCVnl4TFFVRkxMRXRCUVVzc1YwRkJWeXhaUVVGWkxGZEJRVmNzVlVGQlZTeFZRVUZWTEdkRlFVRm5SU3gxUWtGQmRVSXNhME5CUVd0RExFbEJRVWtzWlVGQlpTeExRVUZMTEVkQlFVY3NjMFJCUVhORUxHRkJRV0VzZDBOQlFYZERMRWRCUVVjc2VVTkJRWGxETEdsQ1FVRnBRaXd3UWtGQk1FSXNlVUpCUVhsQ0xHTkJRV01zYzBKQlFYTkNMSFZDUVVGMVFpd3JRMEZCSzBNc2RVSkJRWFZDTEdGQlFXRXNjMEpCUVhOQ0xIVkNRVUYxUWl4VFFVRlRMRTlCUVU4c2VVSkJRWGxDTEc5RFFVRnZReXh2UWtGQmIwSXNjVUpCUVhGQ0xIbENRVUY1UWl4UFFVRlBMRzFFUVVGdFJDeG5RMEZCWjBNc1QwRkJUeXc0UWtGQk9FSXNlVUpCUVhsQ0xEQkNRVUV3UWl4M1FrRkJkMElzZFVKQlFYVkNMRTlCUVU4c1kwRkJZeXg1UWtGQmVVSXNhMEpCUVd0Q0xIbENRVUY1UWl4UFFVRlBMRzFDUVVGdFFpd3lRa0ZCTWtJc2IwSkJRVzlDTEhOQ1FVRnpRaXd5UWtGQk1rSXNiMEpCUVc5Q0xGTkJRVk1zZVVKQlFYbENMSE5EUVVGelF5eHRRa0ZCYlVJc2QwTkJRWGRETEZkQlFWY3NiMEpCUVc5Q0xIZERRVUYzUXl4WFFVRlhMRk5CUVZNc1lVRkJZU3d5UWtGQk1rSXNNa0pCUVRKQ0xDdENRVUVyUWl4elFrRkJjMElzZFVKQlFYVkNMRk5CUVZNc1QwRkJUeXhMUVVGTExFZEJRVWNzYTB4QlFXdE1MRFpDUVVFMlFpdzBVVUZCTkZFc09FTkJRVGhETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERCUlFVRXdVU3cwUTBGQk5FTXNNRU5CUVRCRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc01FTkJRVEJETERCRFFVRXdReXd3UTBGQk1FTXNORkZCUVRSUkxEaERRVUU0UXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3NFVVRkJPRkVzWjBSQlFXZEVMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMR2RTUVVGblVpeHJSRUZCYTBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1oxSkJRV2RTTEd0RVFVRnJSQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3cwVVVGQk5GRXNPRU5CUVRoRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUlJRVUUwVVN3NFEwRkJPRU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkZGQlFUUlJMRGhEUVVFNFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzRVVUZCT0ZFc1owUkJRV2RFTERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERSUlFVRTBVU3c0UTBGQk9FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNaMUpCUVdkU0xHdEVRVUZyUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blVrRkJaMUlzYTBSQlFXdEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMSGxHUVVGNVJpeDFaRUZCZFdRc2NVSkJRWEZDTzBGQlEyNXpZanRCUVVOQkxHbEZRVUZsTEhWQ1FVRjFRaXhGUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12VTJsdVoyeGxUR2xpY21GeWVVbDBaVzB1YzJOemN6OHpaR016SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHZJRWx0Y0c5eWRITmNibWx0Y0c5eWRDQmZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOVRUMVZTUTBWTlFWQmZTVTFRVDFKVVgxOWZJR1p5YjIwZ1hDSXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OWpjM010Ykc5aFpHVnlMMlJwYzNRdmNuVnVkR2x0WlM5emIzVnlZMlZOWVhCekxtcHpYQ0k3WEc1cGJYQnZjblFnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmU1UxUVQxSlVYMTlmSUdaeWIyMGdYQ0l1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTlqYzNNdGJHOWhaR1Z5TDJScGMzUXZjblZ1ZEdsdFpTOWhjR2t1YW5OY0lqdGNiblpoY2lCZlgxOURVMU5mVEU5QlJFVlNYMFZZVUU5U1ZGOWZYeUE5SUY5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDBsTlVFOVNWRjlmWHloZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5VFQxVlNRMFZOUVZCZlNVMVFUMUpVWDE5ZktUdGNiaTh2SUUxdlpIVnNaVnh1WDE5ZlExTlRYMHhQUVVSRlVsOUZXRkJQVWxSZlgxOHVjSFZ6YUNoYmJXOWtkV3hsTG1sa0xDQmNJanBsZUhCdmNuUWdlMXhjYmlBZ2RHaGxiV1ZHYVd4MFpYSTZJR2x1ZG1WeWRDZzVNeVVwSUdoMVpTMXliM1JoZEdVb01UZ3daR1ZuS1R0Y1hHNTlYRnh1WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbk5wYm1kc1pTMXNhV0p5WVhKNUxXbDBaVzBnZTF4Y2JpQWdjRzl6YVhScGIyNDZJSEpsYkdGMGFYWmxPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1YzJsdVoyeGxMV3hwWW5KaGNua3RhWFJsYlY5ZmMzWm5JSHRjWEc0Z0lIZHBaSFJvT2lBM0xqVnlaVzA3WEZ4dUlDQm9aV2xuYUhRNklEY3VOWEpsYlR0Y1hHNGdJR0p2Y21SbGNqb2dNWEI0SUhOdmJHbGtJSFpoY2lndExXSjFkSFJ2YmkxbmNtRjVMVElwTzF4Y2JpQWdiV0Z5WjJsdU9pQXdMak55WlcwN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNXphVzVuYkdVdGJHbGljbUZ5ZVMxcGRHVnRYMTl6ZG1jZ2MzWm5JSHRjWEc0Z0lIZHBaSFJvT2lBeE1EQWxPMXhjYmlBZ2FHVnBaMmgwT2lBeE1EQWxPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1YzJsdVoyeGxMV3hwWW5KaGNua3RhWFJsYlNBdVZHOXZiRWxqYjI1ZlgybGpiMjRnZTF4Y2JpQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dJMlptWm1abVpqdGNYRzRnSUhkcFpIUm9PaUJoZFhSdk8xeGNiaUFnYUdWcFoyaDBPaUJoZFhSdk8xeGNiaUFnYldGeVoybHVPaUF3SURBdU5YSmxiVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG5OcGJtZHNaUzFzYVdKeVlYSjVMV2wwWlcwZ0xsUnZiMnhKWTI5dUxGeGNiaTVsZUdOaGJHbGtjbUYzSUM1emFXNW5iR1V0YkdsaWNtRnllUzFwZEdWdElDNVViMjlzU1dOdmJsOTBlWEJsWDJKMWRIUnZianBvYjNabGNpQjdYRnh1SUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCM2FHbDBaVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG5OcGJtZHNaUzFzYVdKeVlYSjVMV2wwWlcwZ0xuSmxjWFZwY21Wa0xGeGNiaTVsZUdOaGJHbGtjbUYzSUM1emFXNW5iR1V0YkdsaWNtRnllUzFwZEdWdElDNWxjbkp2Y2lCN1hGeHVJQ0JqYjJ4dmNqb2dJMlV3TXpFek1UdGNYRzRnSUdadmJuUXRkMlZwWjJoME9pQmliMnhrTzF4Y2JpQWdabTl1ZEMxemFYcGxPaUF4Y21WdE8xeGNiaUFnYldGeVoybHVPaUF3TGpKeVpXMDdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzV6YVc1bmJHVXRiR2xpY21GeWVTMXBkR1Z0SUM1bGNuSnZjaUI3WEZ4dUlDQm1iMjUwTFhkbGFXZG9kRG9nTlRBd08xeGNiaUFnYldGeVoybHVPaUF3TzF4Y2JpQWdjR0ZrWkdsdVp6b2dNQzR6WlcwZ01EdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbk5wYm1kc1pTMXNhV0p5WVhKNUxXbDBaVzB0TFhKbGJXOTJaU0I3WEZ4dUlDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRnh1SUNCMGIzQTZJREF1TW5KbGJUdGNYRzRnSUhKcFoyaDBPaUF4TGpOeVpXMDdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzV6YVc1bmJHVXRiR2xpY21GeWVTMXBkR1Z0TFMxeVpXMXZkbVVnTGxSdmIyeEpZMjl1WDE5cFkyOXVJSHRjWEc0Z0lHMWhjbWRwYmpvZ01EdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbk5wYm1kc1pTMXNhV0p5WVhKNUxXbDBaVzB0TFhKbGJXOTJaU0F1Vkc5dmJFbGpiMjVmWDJsamIyNGdlMXhjYmlBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ0kyWmhOVEkxTWp0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xuTnBibWRzWlMxc2FXSnlZWEo1TFdsMFpXMHRMWEpsYlc5MlpTQXVWRzl2YkVsamIyNWZYMmxqYjI0NmFHOTJaWElnZTF4Y2JpQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dJMll3TTJVelpUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbk5wYm1kc1pTMXNhV0p5WVhKNUxXbDBaVzB0TFhKbGJXOTJaU0F1Vkc5dmJFbGpiMjVmWDJsamIyNDZZV04wYVhabElIdGNYRzRnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObE1ETXhNekU3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1emFXNW5iR1V0YkdsaWNtRnllUzFwZEdWdExTMXlaVzF2ZG1VZ2MzWm5JSHRjWEc0Z0lHTnZiRzl5T2lBalptWm1abVptTzF4Y2JpQWdjR0ZrWkdsdVp6b2dNQzR5Tm5KbGJUdGNYRzRnSUdKdmNtUmxjaTF5WVdScGRYTTZJREF1TTJWdE8xeGNiaUFnZDJsa2RHZzZJREZ5WlcwN1hGeHVJQ0JvWldsbmFIUTZJREZ5WlcwN1hGeHVmVndpTENCY0lsd2lMSHRjSW5abGNuTnBiMjVjSWpvekxGd2ljMjkxY21ObGMxd2lPbHRjSW5kbFluQmhZMnM2THk4dUx5NHVMeTR1TDJOemN5OTJZWEpwWVdKc1pYTXViVzlrZFd4bExuTmpjM05jSWl4Y0luZGxZbkJoWTJzNkx5OHVMeTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZVMmx1WjJ4bFRHbGljbUZ5ZVVsMFpXMHVjMk56YzF3aUxGd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwyOXdaVzR0WTI5c2IzSXZiM0JsYmkxamIyeHZjaTV6WTNOelhDSmRMRndpYm1GdFpYTmNJanBiWFN4Y0ltMWhjSEJwYm1kelhDSTZYQ0pCUVZWQk8wVkJRMFVzTWtOQlFVRTdRVU5VUmpzN1FVRkRSVHRGUVVORkxHdENRVUZCTzBGQlJVbzdRVUZFU1R0RlFVTkZMR0ZCUVVFN1JVRkRRU3hqUVVGQk8wVkJRMEVzYzBOQlFVRTdSVUZEUVN4alFVRkJPMEZCUjA0N1FVRkdUVHRGUVVORkxGZEJRVUU3UlVGRFFTeFpRVUZCTzBGQlNWSTdRVUZCU1R0RlFVTkZMSGxDUTA1aE8wVkVUMklzVjBGQlFUdEZRVU5CTEZsQlFVRTdSVUZEUVN4blFrRkJRVHRCUVVWT08wRkJRVWs3TzBWQlJVVXNkVUpCUVVFN1FVRkZUanRCUVVGSk96dEZRVVZGTEdORGRVTkxPMFZFZEVOTUxHbENRVUZCTzBWQlEwRXNaVUZCUVR0RlFVTkJMR05CUVVFN1FVRkZUanRCUVVGSk8wVkJRMFVzWjBKQlFVRTdSVUZEUVN4VFFVRkJPMFZCUTBFc1owSkJRVUU3UVVGRlRqdEJRVU5KTzBWQlEwVXNhMEpCUVVFN1JVRkRRU3hYUVVGQk8wVkJRMEVzWVVGQlFUdEJRVU5PTzBGQlEwMDdSVUZEUlN4VFFVRkJPMEZCUTFJN1FVRkRUVHRGUVVORkxIbENRMmxDUnp0QlJHaENXRHRCUVVGUk8wVkJRMFVzZVVKRFowSkRPMEZFWkZnN1FVRkJVVHRGUVVORkxIbENRMk5ETzBGRVdsZzdRVUZEVFR0RlFVTkZMR05ET1VOWE8wVkVLME5ZTEdkQ1FVRkJPMFZCUTBFc2IwSkJRVUU3UlVGRFFTeFhRVUZCTzBWQlEwRXNXVUZCUVR0QlFVTlNYQ0lzWENKemIzVnlZMlZ6UTI5dWRHVnVkRndpT2x0Y0lrQnBiWEJ2Y25RZ1hGeGNJbTl3Wlc0dFkyOXNiM0l2YjNCbGJpMWpiMnh2Y2k1elkzTnpYRnhjSWp0Y1hHNWNYRzVBYldsNGFXNGdhWE5OYjJKcGJHVW9LU0I3WEZ4dUlDQkFZWFF0Y205dmRDQXVaWGhqWVd4cFpISmhkeTB0Ylc5aWFXeGxJM3NtZlNCN1hGeHVJQ0FnSUVCamIyNTBaVzUwTzF4Y2JpQWdmVnhjYm4xY1hHNWNYRzRrZEdobGJXVXRabWxzZEdWeU9pQmNYRndpYVc1MlpYSjBLRGt6SlNrZ2FIVmxMWEp2ZEdGMFpTZ3hPREJrWldjcFhGeGNJanRjWEc1Y1hHNDZaWGh3YjNKMElIdGNYRzRnSUhSb1pXMWxSbWxzZEdWeU9pQjFibkYxYjNSbEtDUjBhR1Z0WlMxbWFXeDBaWElwTzF4Y2JuMWNYRzVjSWl4Y0lrQnBiWEJ2Y25RZ1hGeGNJaTR1TDJOemN5OTJZWEpwWVdKc1pYTXViVzlrZFd4bFhGeGNJanRjWEc1Y1hHNHVaWGhqWVd4cFpISmhkeUI3WEZ4dUlDQXVjMmx1WjJ4bExXeHBZbkpoY25rdGFYUmxiU0I3WEZ4dUlDQWdJSEJ2YzJsMGFXOXVPaUJ5Wld4aGRHbDJaVHRjWEc0Z0lDQWdKbDlmYzNabklIdGNYRzRnSUNBZ0lDQjNhV1IwYURvZ055NDFjbVZ0TzF4Y2JpQWdJQ0FnSUdobGFXZG9kRG9nTnk0MWNtVnRPMXhjYmlBZ0lDQWdJR0p2Y21SbGNqb2dNWEI0SUhOdmJHbGtJSFpoY2lndExXSjFkSFJ2YmkxbmNtRjVMVElwTzF4Y2JpQWdJQ0FnSUcxaGNtZHBiam9nTUM0emNtVnRPMXhjYmlBZ0lDQWdJSE4yWnlCN1hGeHVJQ0FnSUNBZ0lDQjNhV1IwYURvZ01UQXdKVHRjWEc0Z0lDQWdJQ0FnSUdobGFXZG9kRG9nTVRBd0pUdGNYRzRnSUNBZ0lDQjlYRnh1SUNBZ0lIMWNYRzVjWEc0Z0lDQWdMbFJ2YjJ4SlkyOXVYMTlwWTI5dUlIdGNYRzRnSUNBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQWtiMk10ZDJocGRHVTdYRnh1SUNBZ0lDQWdkMmxrZEdnNklHRjFkRzg3WEZ4dUlDQWdJQ0FnYUdWcFoyaDBPaUJoZFhSdk8xeGNiaUFnSUNBZ0lHMWhjbWRwYmpvZ01DQXdMalZ5WlcwN1hGeHVJQ0FnSUgxY1hHNGdJQ0FnTGxSdmIyeEpZMjl1TEZ4Y2JpQWdJQ0F1Vkc5dmJFbGpiMjVmZEhsd1pWOWlkWFIwYjI0NmFHOTJaWElnZTF4Y2JpQWdJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhkb2FYUmxPMXhjYmlBZ0lDQjlYRnh1SUNBZ0lDNXlaWEYxYVhKbFpDeGNYRzRnSUNBZ0xtVnljbTl5SUh0Y1hHNGdJQ0FnSUNCamIyeHZjam9nSkc5akxYSmxaQzA0TzF4Y2JpQWdJQ0FnSUdadmJuUXRkMlZwWjJoME9pQmliMnhrTzF4Y2JpQWdJQ0FnSUdadmJuUXRjMmw2WlRvZ01YSmxiVHRjWEc0Z0lDQWdJQ0J0WVhKbmFXNDZJREF1TW5KbGJUdGNYRzRnSUNBZ2ZWeGNiaUFnSUNBdVpYSnliM0lnZTF4Y2JpQWdJQ0FnSUdadmJuUXRkMlZwWjJoME9pQTFNREE3WEZ4dUlDQWdJQ0FnYldGeVoybHVPaUF3TzF4Y2JpQWdJQ0FnSUhCaFpHUnBibWM2SURBdU0yVnRJREE3WEZ4dUlDQWdJSDFjWEc1Y1hHNGdJQ0FnSmkwdGNtVnRiM1psSUh0Y1hHNGdJQ0FnSUNCd2IzTnBkR2x2YmpvZ1lXSnpiMngxZEdVN1hGeHVJQ0FnSUNBZ2RHOXdPaUF3TGpKeVpXMDdYRnh1SUNBZ0lDQWdjbWxuYUhRNklERXVNM0psYlR0Y1hHNWNYRzRnSUNBZ0lDQXVWRzl2YkVsamIyNWZYMmxqYjI0Z2UxeGNiaUFnSUNBZ0lDQWdiV0Z5WjJsdU9pQXdPMXhjYmlBZ0lDQWdJSDFjWEc0Z0lDQWdJQ0F1Vkc5dmJFbGpiMjVmWDJsamIyNGdlMXhjYmlBZ0lDQWdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nSkc5akxYSmxaQzAyTzF4Y2JpQWdJQ0FnSUNBZ0pqcG9iM1psY2lCN1hGeHVJQ0FnSUNBZ0lDQWdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ1J2WXkxeVpXUXROenRjWEc0Z0lDQWdJQ0FnSUgxY1hHNGdJQ0FnSUNBZ0lDWTZZV04wYVhabElIdGNYRzRnSUNBZ0lDQWdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nSkc5akxYSmxaQzA0TzF4Y2JpQWdJQ0FnSUNBZ2ZWeGNiaUFnSUNBZ0lIMWNYRzRnSUNBZ0lDQnpkbWNnZTF4Y2JpQWdJQ0FnSUNBZ1kyOXNiM0k2SUNSdll5MTNhR2wwWlR0Y1hHNGdJQ0FnSUNBZ0lIQmhaR1JwYm1jNklEQXVNalp5WlcwN1hGeHVJQ0FnSUNBZ0lDQmliM0prWlhJdGNtRmthWFZ6T2lBd0xqTmxiVHRjWEc0Z0lDQWdJQ0FnSUhkcFpIUm9PaUF4Y21WdE8xeGNiaUFnSUNBZ0lDQWdhR1ZwWjJoME9pQXhjbVZ0TzF4Y2JpQWdJQ0FnSUgxY1hHNGdJQ0FnZlZ4Y2JpQWdmVnhjYm4xY1hHNWNJaXhjSWk4dlhGeHVMeTljWEc0dkx5QWc4SjJYbGlEd25aZWlJUENkbDU4ZzhKMlhvaUR3blplbFhGeHVMeThnSUhZZ01TNDVMakZjWEc0dkwxeGNiaTh2SUNEaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUZjWEc1Y1hHNWNYRzR2THlBZ1IyVnVaWEpoYkZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRkMmhwZEdVNklDQWdJQ0FnSUNBZ0kyWm1abVptWmp0Y1hHNGtiMk10WW14aFkyczZJQ0FnSUNBZ0lDQWdJekF3TURBd01EdGNYRzVjWEc1Y1hHNHZMeUFnUjNKaGVWeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10WjNKaGVTMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObU9HWTVabUVzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05tTVdZelpqVXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTmxPV1ZqWldZc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNOa1pXVXlaVFlzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ05qWldRMFpHRXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTmhaR0kxWW1Rc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNNNE5qaGxPVFlzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ00wT1RVd05UY3NYRnh1SUNCY1hGd2lPRnhjWENJNklDTXpORE5oTkRBc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNeU1USTFNamxjWEc0cE8xeGNibHhjYmlSdll5MW5jbUY1TFRBNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0TWpvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxUTTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzAwT2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE5Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVFk2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMwM09pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3RPRG9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRrNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdVbVZrWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MXlaV1F0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpabVptTldZMUxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalptWmxNMlV6TEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWm1aak9XTTVMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpabVpoT0dFNExGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBalptWTROemczTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqWm1ZMllqWmlMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpabUUxTWpVeUxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBalpqQXpaVE5sTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqWlRBek1UTXhMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpZemt5WVRKaFhGeHVLVHRjWEc1Y1hHNGtiMk10Y21Wa0xUQTZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxeVpXUXRNVG9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxYSmxaQzB5T2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRNNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE5Eb2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVFk2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MXlaV1F0TnpvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMWEpsWkMwNE9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUazZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JRYVc1clhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTF3YVc1ckxXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJabVpqQm1OaXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlptWkdWbFlpeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyWmpZekprTnl4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJaaFlUSmpNU3hjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJMlkzT0ROaFl5eGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0kyWXdOalU1TlN4Y1hHNGdJRnhjWENJMlhGeGNJam9nSTJVMk5EazRNQ3hjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJMlEyTXpNMll5eGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0kyTXlNalUxWXl4Y1hHNGdJRnhjWENJNVhGeGNJam9nSTJFMk1XVTBaRnhjYmlrN1hGeHVYRnh1Skc5akxYQnBibXN0TURvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxURTZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTB5T2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE16b2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVFE2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkwMU9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3ROam9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRjNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MDRPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0T1RvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQkhjbUZ3WlZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRaM0poY0dVdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWmpobU1HWmpMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpaak5rT1daaExGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalpXVmlaV1poTEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWlRVNU9XWTNMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpaR0UzTjJZeUxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBalkyTTFaR1U0TEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqWW1VMFltUmlMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpZV1V6WldNNUxGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak9XTXpObUkxTEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqT0RZeVpUbGpYRnh1S1R0Y1hHNWNYRzRrYjJNdFozSmhjR1V0TURvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10WjNKaGNHVXRNVG9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRaM0poY0dVdE1qb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdFozSmhjR1V0TXpvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10WjNKaGNHVXRORG9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRaM0poY0dVdE5Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdFozSmhjR1V0TmpvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10WjNKaGNHVXROem9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRaM0poY0dVdE9Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdFozSmhjR1V0T1RvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdWbWx2YkdWMFhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTEyYVc5c1pYUXRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpqTm1NR1ptTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWlRWa1ltWm1MRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpaREJpWm1abUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBallqRTVOMlpqTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqT1RjM05XWmhMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpPRFExWldZM0xGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBak56azFNR1l5TEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqTnpBME9HVTRMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpOamMwTVdRNUxGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak5XWXpaR00wWEZ4dUtUdGNYRzVjWEc0a2IyTXRkbWx2YkdWMExUQTZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE1Ub2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMweU9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRNNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0TkRvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzAxT2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVFk2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXROem9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUazZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCSmJtUnBaMjljWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXbHVaR2xuYnkxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05sWkdZeVptWXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTmtZbVUwWm1Zc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNOaVlXTTRabVlzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ001TVdFM1ptWXNYRnh1SUNCY1hGd2lORnhjWENJNklDTTNORGhtWm1Nc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNNMVl6ZGpabUVzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ00wWXpabFpqVXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTTBNall6WldJc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNellqVmlaR0lzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ016TmpSbVl6ZGNYRzRwTzF4Y2JseGNiaVJ2WXkxcGJtUnBaMjh0TURvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTB4T2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVEk2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHRNem9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MDBPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUVTZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE5qb2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkwM09pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRnNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0T1RvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRUpzZFdWY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV0pzZFdVdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWlRkbU5XWm1MRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpaREJsWW1abUxGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBallUVmtPR1ptTEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqTnpSak1HWmpMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpOR1JoWW1ZM0xGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBak16TTVZV1l3TEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqTWpJNFltVTJMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpNV00zWldRMkxGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak1UazNNV015TEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTVRnMk5HRmlYRnh1S1R0Y1hHNWNYRzRrYjJNdFlteDFaUzB3T2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE1Ub2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVEk2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMwek9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXRORG9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRVNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10WW14MVpTMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0TnpvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUZzZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzA1T2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lFTjVZVzVjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXTjVZVzR0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaVE5tWVdaakxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBall6Vm1ObVpoTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqT1RsbE9XWXlMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpOalprT1dVNExGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBak0ySmpPV1JpTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqTWpKaU9HTm1MRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpNVFZoWVdKbUxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak1UQTVPR0ZrTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTUdNNE5UazVMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpNR0kzTWpnMVhGeHVLVHRjWEc1Y1hHNGtiMk10WTNsaGJpMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0TVRvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxUSTZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTB6T2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE5Eb2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVFU2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkwMk9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHROem9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRnNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUZSbFlXeGNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFhSbFlXd3RiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpUWm1ZMlkxTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWXpObVlXVTRMRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpPVFptTW1RM0xGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBak5qTmxObUpsTEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqTXpoa09XRTVMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpNakJqT1RrM0xGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBak1USmlPRGcyTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqTUdOaE5qYzRMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpNRGs1TWpZNExGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak1EZzNaalZpWEZ4dUtUdGNYRzVjWEc0a2IyTXRkR1ZoYkMwd09pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3RNVG9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRJNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0TkRvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUVTZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzAyT2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE56b2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVGc2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMwNU9pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRWR5WldWdVhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFuY21WbGJpMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObFltWmlaV1VzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05rTTJZNVpEZ3NYRnh1SUNCY1hGd2lNbHhjWENJNklDTmlNbVl5WW1Jc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNNNFkyVTVPV0VzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ00yT1dSaU4yTXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTTFNV05tTmpZc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNNME1HTXdOVGNzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ016TjJJeU5HUXNYRnh1SUNCY1hGd2lPRnhjWENJNklDTXlaamxsTkRRc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNeVlqaGhNMlZjWEc0cE8xeGNibHhjYmlSdll5MW5jbVZsYmkwd09pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxbmNtVmxiaTB4T2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTFuY21WbGJpMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MW5jbVZsYmkwek9pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxbmNtVmxiaTAwT2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTFuY21WbGJpMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MW5jbVZsYmkwMk9pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxbmNtVmxiaTAzT2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTFuY21WbGJpMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MW5jbVZsYmkwNU9pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JNYVcxbFhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFzYVcxbExXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJZMFptTmxNeXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlU1Wm1Gak9DeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyUTRaalZoTWl4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJNd1pXSTNOU3hjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJMkU1WlRNMFlpeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0l6azBaRGd5WkN4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpneVl6a3haU3hjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJemMwWWpneE5peGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6WTJZVGd3Wml4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpWak9UUXdaRnhjYmlrN1hGeHVYRnh1Skc5akxXeHBiV1V0TURvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExURTZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzB5T2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE16b2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVFE2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMwMU9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXROam9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRjNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0T1RvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQlpaV3hzYjNkY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMWGxsYkd4dmR5MXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObVptWTVaR0lzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05tWm1ZelltWXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTm1abVZqT1Rrc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNObVptVXdOallzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ05tWm1RME0ySXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTm1ZMk0wTVRrc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNObVlXSXdNRFVzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ05tTlRsbU1EQXNYRnh1SUNCY1hGd2lPRnhjWENJNklDTm1NRGhqTURBc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNObE5qYzNNREJjWEc0cE8xeGNibHhjYmlSdll5MTVaV3hzYjNjdE1Eb2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkweE9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRJNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0TXpvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTAwT2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVFU2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3ROam9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MDNPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUZzZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE9Ub2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUU5eVlXNW5aVnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGIzSmhibWRsTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlptWmpSbE5peGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyWm1aVGhqWXl4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJabVpEaGhPQ3hjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMlptWXpBM09DeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0kyWm1ZVGswWkN4Y1hHNGdJRnhjWENJMVhGeGNJam9nSTJabU9USXlZaXhjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJMlprTjJVeE5DeGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0kyWTNOamN3Tnl4Y1hHNGdJRnhjWENJNFhGeGNJam9nSTJVNE5Ua3dZeXhjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJMlE1TkRnd1pseGNiaWs3WEZ4dVhGeHVKRzlqTFc5eVlXNW5aUzB3T2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVEU2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXRNam9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUUTZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE5Ub2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMwMk9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRjNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0T0RvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzA1T2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdRMjlzYjNJZ2JHbHpkRnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdFkyOXNiM0l0YzNCbFkzUnlkVzA2SUNBZ09UdGNYRzVjWEc0a2IyTXRZMjlzYjNJdGJHbHpkRG9nS0Z4Y2JpQWdKRzlqTFdkeVlYa3RiR2x6ZERvZ0lDQWdJQ0JjWEZ3aVozSmhlVnhjWENJc1hGeHVJQ0FrYjJNdGNtVmtMV3hwYzNRNklDQWdJQ0FnWEZ4Y0luSmxaRnhjWENJc1hGeHVJQ0FrYjJNdGNHbHVheTFzYVhOME9pQWdJQ0FnSUZ4Y1hDSndhVzVyWEZ4Y0lpeGNYRzRnSUNSdll5MW5jbUZ3WlMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0puY21Gd1pWeGNYQ0lzWEZ4dUlDQWtiMk10ZG1sdmJHVjBMV3hwYzNRNklDQWdJQ0FnWEZ4Y0luWnBiMnhsZEZ4Y1hDSXNYRnh1SUNBa2IyTXRhVzVrYVdkdkxXeHBjM1E2SUNBZ0lDQWdYRnhjSW1sdVpHbG5iMXhjWENJc1hGeHVJQ0FrYjJNdFlteDFaUzFzYVhOME9pQWdJQ0FnSUZ4Y1hDSmliSFZsWEZ4Y0lpeGNYRzRnSUNSdll5MWplV0Z1TFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbU41WVc1Y1hGd2lMRnhjYmlBZ0pHOWpMWFJsWVd3dGJHbHpkRG9nSUNBZ0lDQmNYRndpZEdWaGJGeGNYQ0lzWEZ4dUlDQWtiMk10WjNKbFpXNHRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aVozSmxaVzVjWEZ3aUxGeGNiaUFnSkc5akxXeHBiV1V0YkdsemREb2dJQ0FnSUNCY1hGd2liR2x0WlZ4Y1hDSXNYRnh1SUNBa2IyTXRlV1ZzYkc5M0xXeHBjM1E2SUNBZ0lDQWdYRnhjSW5sbGJHeHZkMXhjWENJc1hGeHVJQ0FrYjJNdGIzSmhibWRsTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbTl5WVc1blpWeGNYQ0pjWEc0cE8xeGNibHdpWFN4Y0luTnZkWEpqWlZKdmIzUmNJanBjSWx3aWZWMHBPMXh1THk4Z1JYaHdiM0owYzF4dVpYaHdiM0owSUdSbFptRjFiSFFnWDE5ZlExTlRYMHhQUVVSRlVsOUZXRkJQVWxSZlgxODdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1NpbmdsZUxpYnJhcnlJdGVtLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvU3Bpbm5lci5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvU3Bpbm5lci5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLy8gSW1wb3J0c1xcblxcblxcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxuLy8gTW9kdWxlXFxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcXFwiLmV4Y2FsaWRyYXcgLlNwaW5uZXIge1xcXFxuICBkaXNwbGF5OiBmbGV4O1xcXFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXFxcbiAgaGVpZ2h0OiAxMDAlO1xcXFxuICBtYXJnaW4tbGVmdDogYXV0bztcXFxcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcXFxuICAtLXNwaW5uZXItY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuU3Bpbm5lciBzdmcge1xcXFxuICBhbmltYXRpb246IHJvdGF0ZSAxLjZzIGxpbmVhciBpbmZpbml0ZTtcXFxcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5TcGlubmVyIGNpcmNsZSB7XFxcXG4gIHN0cm9rZTogdmFyKC0tc3Bpbm5lci1jb2xvcik7XFxcXG4gIGFuaW1hdGlvbjogZGFzaCAxLjZzIGxpbmVhciAwcyBpbmZpbml0ZTtcXFxcbiAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xcXFxufVxcXFxuQGtleWZyYW1lcyByb3RhdGUge1xcXFxuICAxMDAlIHtcXFxcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcXFxuICB9XFxcXG59XFxcXG5Aa2V5ZnJhbWVzIGRhc2gge1xcXFxuICAwJSB7XFxcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogMSwgMzAwO1xcXFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcXFxuICB9XFxcXG4gIDUwJSB7XFxcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogMTUwLCAzMDA7XFxcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0yMDA7XFxcXG4gIH1cXFxcbiAgMTAwJSB7XFxcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogMSwgMzAwO1xcXFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMjgwO1xcXFxuICB9XFxcXG59XFxcIiwgXFxcIlxcXCIse1xcXCJ2ZXJzaW9uXFxcIjozLFxcXCJzb3VyY2VzXFxcIjpbXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvU3Bpbm5lci5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQUtFO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUVBLHVDQUFBO0FBTEo7QUFPSTtFQUNFLHNDQUFBO0VBQ0EsK0JBQUE7QUFMTjtBQVFJO0VBQ0UsNEJBQUE7RUFDQSx1Q0FBQTtFQUNBLHFCQUFBO0FBTk47QUFVRTtFQUNFO0lBQ0UseUJBQUE7RUFSSjtBQUNGO0FBV0U7RUFDRTtJQUNFLHdCQUFBO0lBQ0Esb0JBQUE7RUFUSjtFQVdFO0lBQ0UsMEJBQUE7SUFDQSx1QkFBQTtFQVRKO0VBV0U7SUFDRSx3QkFBQTtJQUNBLHVCQUFBO0VBVEo7QUFDRlxcXCIsXFxcInNvdXJjZXNDb250ZW50XFxcIjpbXFxcIkBpbXBvcnQgXFxcXFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXFxcXFwiO1xcXFxuXFxcXG4kZHVyYXRpb246IDEuNnM7XFxcXG5cXFxcbi5leGNhbGlkcmF3IHtcXFxcbiAgLlNwaW5uZXIge1xcXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXFxcbiAgICBoZWlnaHQ6IDEwMCU7XFxcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcXFxuXFxcXG4gICAgLS1zcGlubmVyLWNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcXFxuXFxcXG4gICAgc3ZnIHtcXFxcbiAgICAgIGFuaW1hdGlvbjogcm90YXRlICRkdXJhdGlvbiBsaW5lYXIgaW5maW5pdGU7XFxcXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xcXFxuICAgIH1cXFxcblxcXFxuICAgIGNpcmNsZSB7XFxcXG4gICAgICBzdHJva2U6IHZhcigtLXNwaW5uZXItY29sb3IpO1xcXFxuICAgICAgYW5pbWF0aW9uOiBkYXNoICRkdXJhdGlvbiBsaW5lYXIgMHMgaW5maW5pdGU7XFxcXG4gICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgQGtleWZyYW1lcyByb3RhdGUge1xcXFxuICAgIDEwMCUge1xcXFxuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICBAa2V5ZnJhbWVzIGRhc2gge1xcXFxuICAgIDAlIHtcXFxcbiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDMwMDtcXFxcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcXFxuICAgIH1cXFxcbiAgICA1MCUge1xcXFxuICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMTUwLCAzMDA7XFxcXG4gICAgICBzdHJva2UtZGFzaG9mZnNldDogLTIwMDtcXFxcbiAgICB9XFxcXG4gICAgMTAwJSB7XFxcXG4gICAgICBzdHJva2UtZGFzaGFycmF5OiAxLCAzMDA7XFxcXG4gICAgICBzdHJva2UtZGFzaG9mZnNldDogLTI4MDtcXFxcbiAgICB9XFxcXG4gIH1cXFxcbn1cXFxcblxcXCJdLFxcXCJzb3VyY2VSb290XFxcIjpcXFwiXFxcIn1dKTtcXG4vLyBFeHBvcnRzXFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9IChfX19DU1NfTE9BREVSX0VYUE9SVF9fXyk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUwyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk5dWIyUmxYMjF2WkhWc1pYTXZjMkZ6Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpNHZMaTR2WTI5dGNHOXVaVzUwY3k5VGNHbHVibVZ5TG5OamMzTXVhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN1FVRkJRVHRCUVVNNFNEdEJRVU5xUWp0QlFVTTNSeXc0UWtGQk9FSXNkVWRCUVRKQ0xFTkJRVU1zWjBoQlFYRkRPMEZCUXk5R08wRkJRMEVzWjBWQlFXZEZMR3RDUVVGclFpeDNRa0ZCZDBJc05FSkJRVFJDTEdsQ1FVRnBRaXh6UWtGQmMwSXNkVUpCUVhWQ0xEUkRRVUUwUXl4SFFVRkhMRFJDUVVFMFFpd3lRMEZCTWtNc2IwTkJRVzlETEVkQlFVY3NLMEpCUVN0Q0xHbERRVUZwUXl3MFEwRkJORU1zTUVKQlFUQkNMRWRCUVVjc2NVSkJRWEZDTEZWQlFWVXNaME5CUVdkRExFdEJRVXNzUjBGQlJ5eHRRa0ZCYlVJc1VVRkJVU3dyUWtGQkswSXNNa0pCUVRKQ0xFdEJRVXNzVTBGQlV5eHBRMEZCYVVNc09FSkJRVGhDTEV0QlFVc3NWVUZCVlN3clFrRkJLMElzT0VKQlFUaENMRXRCUVVzc1IwRkJSeXhQUVVGUExHZEhRVUZuUnl4VlFVRlZMRmRCUVZjc1YwRkJWeXhWUVVGVkxGZEJRVmNzVjBGQlZ5eFhRVUZYTEV0QlFVc3NTMEZCU3l4WFFVRlhMRmRCUVZjc1MwRkJTeXhMUVVGTExGZEJRVmNzVjBGQlZ5eFhRVUZYTEV0QlFVc3NTMEZCU3l4TFFVRkxMRmRCUVZjc1MwRkJTeXhMUVVGTExFdEJRVXNzUzBGQlN5eFhRVUZYTEZkQlFWY3NTMEZCU3l4TFFVRkxMRmRCUVZjc1YwRkJWeXhMUVVGTExFdEJRVXNzVjBGQlZ5eFhRVUZYTEV0QlFVc3NaMFZCUVdkRkxHOUNRVUZ2UWl4cFFrRkJhVUlzWTBGQll5eHZRa0ZCYjBJc01FSkJRVEJDTERoQ1FVRTRRaXh0UWtGQmJVSXNkMEpCUVhkQ0xIbENRVUY1UWl4blJFRkJaMFFzWVVGQllTeHZSRUZCYjBRc2QwTkJRWGRETEU5QlFVOHNaMEpCUVdkQ0xIRkRRVUZ4UXl4eFJFRkJjVVFzT0VKQlFUaENMRTlCUVU4c1MwRkJTeXg1UWtGQmVVSXNXVUZCV1N4clEwRkJhME1zVDBGQlR5eExRVUZMTEhWQ1FVRjFRaXhWUVVGVkxHbERRVUZwUXl3MlFrRkJOa0lzVDBGQlR5eFhRVUZYTEcxRFFVRnRReXhuUTBGQlowTXNUMEZCVHl4WlFVRlpMR2xEUVVGcFF5eG5RMEZCWjBNc1QwRkJUeXhMUVVGTExFZEJRVWNzY1VKQlFYRkNPMEZCUTI1dFJUdEJRVU5CTEdsRlFVRmxMSFZDUVVGMVFpeEZRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZVM0JwYm01bGNpNXpZM056UHpReE0yTWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHk4Z1NXMXdiM0owYzF4dWFXMXdiM0owSUY5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDFOUFZWSkRSVTFCVUY5SlRWQlBVbFJmWDE4Z1puSnZiU0JjSWk0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDJOemN5MXNiMkZrWlhJdlpHbHpkQzl5ZFc1MGFXMWxMM052ZFhKalpVMWhjSE11YW5OY0lqdGNibWx0Y0c5eWRDQmZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOUpUVkJQVWxSZlgxOGdabkp2YlNCY0lpNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5eWRXNTBhVzFsTDJGd2FTNXFjMXdpTzF4dWRtRnlJRjlmWDBOVFUxOU1UMEZFUlZKZlJWaFFUMUpVWDE5ZklEMGdYMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZTVTFRVDFKVVgxOWZLRjlmWDBOVFUxOU1UMEZFUlZKZlFWQkpYMU5QVlZKRFJVMUJVRjlKVFZCUFVsUmZYMThwTzF4dUx5OGdUVzlrZFd4bFhHNWZYMTlEVTFOZlRFOUJSRVZTWDBWWVVFOVNWRjlmWHk1d2RYTm9LRnR0YjJSMWJHVXVhV1FzSUZ3aUxtVjRZMkZzYVdSeVlYY2dMbE53YVc1dVpYSWdlMXhjYmlBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjWEc0Z0lHRnNhV2R1TFdsMFpXMXpPaUJqWlc1MFpYSTdYRnh1SUNCcWRYTjBhV1o1TFdOdmJuUmxiblE2SUdObGJuUmxjanRjWEc0Z0lHaGxhV2RvZERvZ01UQXdKVHRjWEc0Z0lHMWhjbWRwYmkxc1pXWjBPaUJoZFhSdk8xeGNiaUFnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4Y2JpQWdMUzF6Y0dsdWJtVnlMV052Ykc5eU9pQjJZWElvTFMxcFkyOXVMV1pwYkd3dFkyOXNiM0lwTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVUzQnBibTVsY2lCemRtY2dlMXhjYmlBZ1lXNXBiV0YwYVc5dU9pQnliM1JoZEdVZ01TNDJjeUJzYVc1bFlYSWdhVzVtYVc1cGRHVTdYRnh1SUNCMGNtRnVjMlp2Y20wdGIzSnBaMmx1T2lCalpXNTBaWElnWTJWdWRHVnlPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1VTNCcGJtNWxjaUJqYVhKamJHVWdlMXhjYmlBZ2MzUnliMnRsT2lCMllYSW9MUzF6Y0dsdWJtVnlMV052Ykc5eUtUdGNYRzRnSUdGdWFXMWhkR2x2YmpvZ1pHRnphQ0F4TGpaeklHeHBibVZoY2lBd2N5QnBibVpwYm1sMFpUdGNYRzRnSUhOMGNtOXJaUzFzYVc1bFkyRndPaUJ5YjNWdVpEdGNYRzU5WEZ4dVFHdGxlV1p5WVcxbGN5QnliM1JoZEdVZ2UxeGNiaUFnTVRBd0pTQjdYRnh1SUNBZ0lIUnlZVzV6Wm05eWJUb2djbTkwWVhSbEtETTJNR1JsWnlrN1hGeHVJQ0I5WEZ4dWZWeGNia0JyWlhsbWNtRnRaWE1nWkdGemFDQjdYRnh1SUNBd0pTQjdYRnh1SUNBZ0lITjBjbTlyWlMxa1lYTm9ZWEp5WVhrNklERXNJRE13TUR0Y1hHNGdJQ0FnYzNSeWIydGxMV1JoYzJodlptWnpaWFE2SURBN1hGeHVJQ0I5WEZ4dUlDQTFNQ1VnZTF4Y2JpQWdJQ0J6ZEhKdmEyVXRaR0Z6YUdGeWNtRjVPaUF4TlRBc0lETXdNRHRjWEc0Z0lDQWdjM1J5YjJ0bExXUmhjMmh2Wm1aelpYUTZJQzB5TURBN1hGeHVJQ0I5WEZ4dUlDQXhNREFsSUh0Y1hHNGdJQ0FnYzNSeWIydGxMV1JoYzJoaGNuSmhlVG9nTVN3Z016QXdPMXhjYmlBZ0lDQnpkSEp2YTJVdFpHRnphRzltWm5ObGREb2dMVEk0TUR0Y1hHNGdJSDFjWEc1OVhDSXNJRndpWENJc2Uxd2lkbVZ5YzJsdmJsd2lPak1zWENKemIzVnlZMlZ6WENJNlcxd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlUY0dsdWJtVnlMbk5qYzNOY0lsMHNYQ0p1WVcxbGMxd2lPbHRkTEZ3aWJXRndjR2x1WjNOY0lqcGNJa0ZCUzBVN1JVRkRSU3hoUVVGQk8wVkJRMEVzYlVKQlFVRTdSVUZEUVN4MVFrRkJRVHRGUVVOQkxGbEJRVUU3UlVGRFFTeHBRa0ZCUVR0RlFVTkJMR3RDUVVGQk8wVkJSVUVzZFVOQlFVRTdRVUZNU2p0QlFVOUpPMFZCUTBVc2MwTkJRVUU3UlVGRFFTd3JRa0ZCUVR0QlFVeE9PMEZCVVVrN1JVRkRSU3cwUWtGQlFUdEZRVU5CTEhWRFFVRkJPMFZCUTBFc2NVSkJRVUU3UVVGT1RqdEJRVlZGTzBWQlEwVTdTVUZEUlN4NVFrRkJRVHRGUVZKS08wRkJRMFk3UVVGWFJUdEZRVU5GTzBsQlEwVXNkMEpCUVVFN1NVRkRRU3h2UWtGQlFUdEZRVlJLTzBWQlYwVTdTVUZEUlN3d1FrRkJRVHRKUVVOQkxIVkNRVUZCTzBWQlZFbzdSVUZYUlR0SlFVTkZMSGRDUVVGQk8wbEJRMEVzZFVKQlFVRTdSVUZVU2p0QlFVTkdYQ0lzWENKemIzVnlZMlZ6UTI5dWRHVnVkRndpT2x0Y0lrQnBiWEJ2Y25RZ1hGeGNJbTl3Wlc0dFkyOXNiM0l2YjNCbGJpMWpiMnh2Y2k1elkzTnpYRnhjSWp0Y1hHNWNYRzRrWkhWeVlYUnBiMjQ2SURFdU5uTTdYRnh1WEZ4dUxtVjRZMkZzYVdSeVlYY2dlMXhjYmlBZ0xsTndhVzV1WlhJZ2UxeGNiaUFnSUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXhjYmlBZ0lDQnFkWE4wYVdaNUxXTnZiblJsYm5RNklHTmxiblJsY2p0Y1hHNGdJQ0FnYUdWcFoyaDBPaUF4TURBbE8xeGNiaUFnSUNCdFlYSm5hVzR0YkdWbWREb2dZWFYwYnp0Y1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4Y2JseGNiaUFnSUNBdExYTndhVzV1WlhJdFkyOXNiM0k2SUhaaGNpZ3RMV2xqYjI0dFptbHNiQzFqYjJ4dmNpazdYRnh1WEZ4dUlDQWdJSE4yWnlCN1hGeHVJQ0FnSUNBZ1lXNXBiV0YwYVc5dU9pQnliM1JoZEdVZ0pHUjFjbUYwYVc5dUlHeHBibVZoY2lCcGJtWnBibWwwWlR0Y1hHNGdJQ0FnSUNCMGNtRnVjMlp2Y20wdGIzSnBaMmx1T2lCalpXNTBaWElnWTJWdWRHVnlPMXhjYmlBZ0lDQjlYRnh1WEZ4dUlDQWdJR05wY21Oc1pTQjdYRnh1SUNBZ0lDQWdjM1J5YjJ0bE9pQjJZWElvTFMxemNHbHVibVZ5TFdOdmJHOXlLVHRjWEc0Z0lDQWdJQ0JoYm1sdFlYUnBiMjQ2SUdSaGMyZ2dKR1IxY21GMGFXOXVJR3hwYm1WaGNpQXdjeUJwYm1acGJtbDBaVHRjWEc0Z0lDQWdJQ0J6ZEhKdmEyVXRiR2x1WldOaGNEb2djbTkxYm1RN1hGeHVJQ0FnSUgxY1hHNGdJSDFjWEc1Y1hHNGdJRUJyWlhsbWNtRnRaWE1nY205MFlYUmxJSHRjWEc0Z0lDQWdNVEF3SlNCN1hGeHVJQ0FnSUNBZ2RISmhibk5tYjNKdE9pQnliM1JoZEdVb016WXdaR1ZuS1R0Y1hHNGdJQ0FnZlZ4Y2JpQWdmVnhjYmx4Y2JpQWdRR3RsZVdaeVlXMWxjeUJrWVhOb0lIdGNYRzRnSUNBZ01DVWdlMXhjYmlBZ0lDQWdJSE4wY205clpTMWtZWE5vWVhKeVlYazZJREVzSURNd01EdGNYRzRnSUNBZ0lDQnpkSEp2YTJVdFpHRnphRzltWm5ObGREb2dNRHRjWEc0Z0lDQWdmVnhjYmlBZ0lDQTFNQ1VnZTF4Y2JpQWdJQ0FnSUhOMGNtOXJaUzFrWVhOb1lYSnlZWGs2SURFMU1Dd2dNekF3TzF4Y2JpQWdJQ0FnSUhOMGNtOXJaUzFrWVhOb2IyWm1jMlYwT2lBdE1qQXdPMXhjYmlBZ0lDQjlYRnh1SUNBZ0lERXdNQ1VnZTF4Y2JpQWdJQ0FnSUhOMGNtOXJaUzFrWVhOb1lYSnlZWGs2SURFc0lETXdNRHRjWEc0Z0lDQWdJQ0J6ZEhKdmEyVXRaR0Z6YUc5bVpuTmxkRG9nTFRJNE1EdGNYRzRnSUNBZ2ZWeGNiaUFnZlZ4Y2JuMWNYRzVjSWwwc1hDSnpiM1Z5WTJWU2IyOTBYQ0k2WENKY0luMWRLVHRjYmk4dklFVjRjRzl5ZEhOY2JtVjRjRzl5ZENCa1pXWmhkV3gwSUY5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1NwaW5uZXIuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9TdGFjay5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1N0YWNrLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLy8gSW1wb3J0c1xcblxcblxcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxuLy8gTW9kdWxlXFxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcXFwiLmV4Y2FsaWRyYXcgLlN0YWNrIHtcXFxcbiAgLS1nYXA6IDA7XFxcXG4gIGRpc3BsYXk6IGdyaWQ7XFxcXG4gIGdhcDogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogdmFyKC0tZ2FwKSk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuU3RhY2tfdmVydGljYWwge1xcXFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG87XFxcXG4gIGdyaWQtYXV0by1mbG93OiByb3c7XFxcXG4gIGdyaWQtYXV0by1yb3dzOiBtaW4tY29udGVudDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5TdGFja19ob3Jpem9udGFsIHtcXFxcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xcXFxuICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xcXFxuICBncmlkLWF1dG8tY29sdW1uczogbWluLWNvbnRlbnQ7XFxcXG59XFxcIiwgXFxcIlxcXCIse1xcXCJ2ZXJzaW9uXFxcIjozLFxcXCJzb3VyY2VzXFxcIjpbXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvU3RhY2suc2Nzc1xcXCJdLFxcXCJuYW1lc1xcXCI6W10sXFxcIm1hcHBpbmdzXFxcIjpcXFwiQUFDRTtFQUNFLFFBQUE7RUFDQSxhQUFBO0VBQ0EsMkNBQUE7QUFBSjtBQUdFO0VBQ0UsMkJBQUE7RUFDQSxtQkFBQTtFQUNBLDJCQUFBO0FBREo7QUFJRTtFQUNFLHdCQUFBO0VBQ0Esc0JBQUE7RUFDQSw4QkFBQTtBQUZKXFxcIixcXFwic291cmNlc0NvbnRlbnRcXFwiOltcXFwiLmV4Y2FsaWRyYXcge1xcXFxuICAuU3RhY2sge1xcXFxuICAgIC0tZ2FwOiAwO1xcXFxuICAgIGRpc3BsYXk6IGdyaWQ7XFxcXG4gICAgZ2FwOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiB2YXIoLS1nYXApKTtcXFxcbiAgfVxcXFxuXFxcXG4gIC5TdGFja192ZXJ0aWNhbCB7XFxcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvO1xcXFxuICAgIGdyaWQtYXV0by1mbG93OiByb3c7XFxcXG4gICAgZ3JpZC1hdXRvLXJvd3M6IG1pbi1jb250ZW50O1xcXFxuICB9XFxcXG5cXFxcbiAgLlN0YWNrX2hvcml6b250YWwge1xcXFxuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcXFxcbiAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xcXFxuICAgIGdyaWQtYXV0by1jb2x1bW5zOiBtaW4tY29udGVudDtcXFxcbiAgfVxcXFxufVxcXFxuXFxcIl0sXFxcInNvdXJjZVJvb3RcXFwiOlxcXCJcXFwifV0pO1xcbi8vIEV4cG9ydHNcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKF9fX0NTU19MT0FERVJfRVhQT1JUX19fKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlUZEdGamF5NXpZM056TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPMEZCUVVFN1FVRkRPRWc3UVVGRGFrSTdRVUZETjBjc09FSkJRVGhDTEhWSFFVRXlRaXhEUVVGRExHZElRVUZ4UXp0QlFVTXZSanRCUVVOQkxEaEVRVUU0UkN4aFFVRmhMR3RDUVVGclFpeG5SRUZCWjBRc1IwRkJSeXdyUWtGQkswSXNaME5CUVdkRExIZENRVUYzUWl4blEwRkJaME1zUjBGQlJ5eHBRMEZCYVVNc05rSkJRVFpDTERKQ1FVRXlRaXh0UTBGQmJVTXNSMEZCUnl4UFFVRlBMRGhHUVVFNFJpeFZRVUZWTEZWQlFWVXNWMEZCVnl4TFFVRkxMRXRCUVVzc1YwRkJWeXhYUVVGWExGZEJRVmNzUzBGQlN5eExRVUZMTEZkQlFWY3NWMEZCVnl4WFFVRlhMSE5EUVVGelF5eFpRVUZaTEdWQlFXVXNiMEpCUVc5Q0xHdEVRVUZyUkN4TFFVRkxMSFZDUVVGMVFpeHJRMEZCYTBNc01FSkJRVEJDTEd0RFFVRnJReXhMUVVGTExIbENRVUY1UWl3clFrRkJLMElzTmtKQlFUWkNMSEZEUVVGeFF5eExRVUZMTEVkQlFVY3NjVUpCUVhGQ08wRkJRMmhuUXp0QlFVTkJMR2xGUVVGbExIVkNRVUYxUWl4RlFVRkRJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJOdmJYQnZibVZ1ZEhNdlUzUmhZMnN1YzJOemN6ODBaVGhoSWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHZJRWx0Y0c5eWRITmNibWx0Y0c5eWRDQmZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOVRUMVZTUTBWTlFWQmZTVTFRVDFKVVgxOWZJR1p5YjIwZ1hDSXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OWpjM010Ykc5aFpHVnlMMlJwYzNRdmNuVnVkR2x0WlM5emIzVnlZMlZOWVhCekxtcHpYQ0k3WEc1cGJYQnZjblFnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmU1UxUVQxSlVYMTlmSUdaeWIyMGdYQ0l1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTlqYzNNdGJHOWhaR1Z5TDJScGMzUXZjblZ1ZEdsdFpTOWhjR2t1YW5OY0lqdGNiblpoY2lCZlgxOURVMU5mVEU5QlJFVlNYMFZZVUU5U1ZGOWZYeUE5SUY5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDBsTlVFOVNWRjlmWHloZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5VFQxVlNRMFZOUVZCZlNVMVFUMUpVWDE5ZktUdGNiaTh2SUUxdlpIVnNaVnh1WDE5ZlExTlRYMHhQUVVSRlVsOUZXRkJQVWxSZlgxOHVjSFZ6YUNoYmJXOWtkV3hsTG1sa0xDQmNJaTVsZUdOaGJHbGtjbUYzSUM1VGRHRmpheUI3WEZ4dUlDQXRMV2RoY0RvZ01EdGNYRzRnSUdScGMzQnNZWGs2SUdkeWFXUTdYRnh1SUNCbllYQTZJR05oYkdNb2RtRnlLQzB0YzNCaFkyVXRabUZqZEc5eUtTQXFJSFpoY2lndExXZGhjQ2twTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVUzUmhZMnRmZG1WeWRHbGpZV3dnZTF4Y2JpQWdaM0pwWkMxMFpXMXdiR0YwWlMxamIyeDFiVzV6T2lCaGRYUnZPMXhjYmlBZ1ozSnBaQzFoZFhSdkxXWnNiM2M2SUhKdmR6dGNYRzRnSUdkeWFXUXRZWFYwYnkxeWIzZHpPaUJ0YVc0dFkyOXVkR1Z1ZER0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xsTjBZV05yWDJodmNtbDZiMjUwWVd3Z2UxeGNiaUFnWjNKcFpDMTBaVzF3YkdGMFpTMXliM2R6T2lCaGRYUnZPMXhjYmlBZ1ozSnBaQzFoZFhSdkxXWnNiM2M2SUdOdmJIVnRianRjWEc0Z0lHZHlhV1F0WVhWMGJ5MWpiMngxYlc1ek9pQnRhVzR0WTI5dWRHVnVkRHRjWEc1OVhDSXNJRndpWENJc2Uxd2lkbVZ5YzJsdmJsd2lPak1zWENKemIzVnlZMlZ6WENJNlcxd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlUZEdGamF5NXpZM056WENKZExGd2libUZ0WlhOY0lqcGJYU3hjSW0xaGNIQnBibWR6WENJNlhDSkJRVU5GTzBWQlEwVXNVVUZCUVR0RlFVTkJMR0ZCUVVFN1JVRkRRU3d5UTBGQlFUdEJRVUZLTzBGQlIwVTdSVUZEUlN3eVFrRkJRVHRGUVVOQkxHMUNRVUZCTzBWQlEwRXNNa0pCUVVFN1FVRkVTanRCUVVsRk8wVkJRMFVzZDBKQlFVRTdSVUZEUVN4elFrRkJRVHRGUVVOQkxEaENRVUZCTzBGQlJrcGNJaXhjSW5OdmRYSmpaWE5EYjI1MFpXNTBYQ0k2VzF3aUxtVjRZMkZzYVdSeVlYY2dlMXhjYmlBZ0xsTjBZV05ySUh0Y1hHNGdJQ0FnTFMxbllYQTZJREE3WEZ4dUlDQWdJR1JwYzNCc1lYazZJR2R5YVdRN1hGeHVJQ0FnSUdkaGNEb2dZMkZzWXloMllYSW9MUzF6Y0dGalpTMW1ZV04wYjNJcElDb2dkbUZ5S0MwdFoyRndLU2s3WEZ4dUlDQjlYRnh1WEZ4dUlDQXVVM1JoWTJ0ZmRtVnlkR2xqWVd3Z2UxeGNiaUFnSUNCbmNtbGtMWFJsYlhCc1lYUmxMV052YkhWdGJuTTZJR0YxZEc4N1hGeHVJQ0FnSUdkeWFXUXRZWFYwYnkxbWJHOTNPaUJ5YjNjN1hGeHVJQ0FnSUdkeWFXUXRZWFYwYnkxeWIzZHpPaUJ0YVc0dFkyOXVkR1Z1ZER0Y1hHNGdJSDFjWEc1Y1hHNGdJQzVUZEdGamExOW9iM0pwZW05dWRHRnNJSHRjWEc0Z0lDQWdaM0pwWkMxMFpXMXdiR0YwWlMxeWIzZHpPaUJoZFhSdk8xeGNiaUFnSUNCbmNtbGtMV0YxZEc4dFpteHZkem9nWTI5c2RXMXVPMXhjYmlBZ0lDQm5jbWxrTFdGMWRHOHRZMjlzZFcxdWN6b2diV2x1TFdOdmJuUmxiblE3WEZ4dUlDQjlYRnh1ZlZ4Y2Jsd2lYU3hjSW5OdmRYSmpaVkp2YjNSY0lqcGNJbHdpZlYwcE8xeHVMeThnUlhod2IzSjBjMXh1Wlhod2IzSjBJR1JsWm1GMWJIUWdYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4N1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvU3RhY2suc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9TdGF0cy5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1N0YXRzLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLy8gSW1wb3J0c1xcblxcblxcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxuLy8gTW9kdWxlXFxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcXFwiOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxcXG59XFxcXG5cXFxcbi5leGNhbGlkcmF3IC5TdGF0cyB7XFxcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgdG9wOiA2NHB4O1xcXFxuICByaWdodDogMTJweDtcXFxcbiAgZm9udC1zaXplOiAxMnB4O1xcXFxuICB6LWluZGV4OiAxMDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5TdGF0cyBoMyB7XFxcXG4gIG1hcmdpbjogMCAyNHB4IDhweCAwO1xcXFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLlN0YXRzIC5jbG9zZSB7XFxcXG4gIGZsb2F0OiByaWdodDtcXFxcbiAgaGVpZ2h0OiAxNnB4O1xcXFxuICB3aWR0aDogMTZweDtcXFxcbiAgY3Vyc29yOiBwb2ludGVyO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLlN0YXRzIC5jbG9zZSBzdmcge1xcXFxuICB3aWR0aDogMTAwJTtcXFxcbiAgaGVpZ2h0OiAxMDAlO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLlN0YXRzIHRhYmxlIHtcXFxcbiAgd2lkdGg6IDEwMCU7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuU3RhdHMgdGFibGUgdGgge1xcXFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTtcXFxcbiAgcGFkZGluZzogNHB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLlN0YXRzIHRhYmxlIHRyIHRkOm50aC1jaGlsZCgyKSB7XFxcXG4gIG1pbi13aWR0aDogMjRweDtcXFxcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxcXG59XFxcXG46cm9vdFtkaXI9cnRsXSAuZXhjYWxpZHJhdyAuU3RhdHMge1xcXFxuICBsZWZ0OiAxMnB4O1xcXFxuICByaWdodDogaW5pdGlhbDtcXFxcbn1cXFxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC5TdGF0cyBoMyB7XFxcXG4gIG1hcmdpbjogMCAwIDhweCAyNHB4O1xcXFxufVxcXFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLlN0YXRzIC5jbG9zZSB7XFxcXG4gIGZsb2F0OiBsZWZ0O1xcXFxufVxcXCIsIFxcXCJcXFwiLHtcXFwidmVyc2lvblxcXCI6MyxcXFwic291cmNlc1xcXCI6W1xcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9TdGF0cy5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQVVBO0VBQ0UsMkNBQUE7QUNURjs7QUFDRTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsV0FBQTtBQUVKO0FBQUk7RUFDRSxvQkFBQTtFQUNBLG1CQUFBO0FBRU47QUFDSTtFQUNFLFlBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7QUFDTjtBQUFNO0VBQ0UsV0FBQTtFQUNBLFlBQUE7QUFFUjtBQUVJO0VBQ0UsV0FBQTtBQUFOO0FBQ007RUFDRSxrREFBQTtFQUNBLFlBQUE7QUFDUjtBQUVRO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0FBQVY7QUFLSTtFQUNFLFVBQUE7RUFDQSxjQUFBO0FBSE47QUFLTTtFQUNFLG9CQUFBO0FBSFI7QUFLTTtFQUNFLFdBQUE7QUFIUlxcXCIsXFxcInNvdXJjZXNDb250ZW50XFxcIjpbXFxcIkBpbXBvcnQgXFxcXFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXFxcXFwiO1xcXFxuXFxcXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXFxcbiAgICBAY29udGVudDtcXFxcbiAgfVxcXFxufVxcXFxuXFxcXG4kdGhlbWUtZmlsdGVyOiBcXFxcXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXFxcXFwiO1xcXFxuXFxcXG46ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxcXG59XFxcXG5cXFwiLFxcXCJAaW1wb3J0IFxcXFxcXFwiLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGVcXFxcXFxcIjtcXFxcblxcXFxuLmV4Y2FsaWRyYXcge1xcXFxuICAuU3RhdHMge1xcXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgICB0b3A6IDY0cHg7XFxcXG4gICAgcmlnaHQ6IDEycHg7XFxcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcXFxuICAgIHotaW5kZXg6IDEwO1xcXFxuXFxcXG4gICAgaDMge1xcXFxuICAgICAgbWFyZ2luOiAwIDI0cHggOHB4IDA7XFxcXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcXFxuICAgIH1cXFxcblxcXFxuICAgIC5jbG9zZSB7XFxcXG4gICAgICBmbG9hdDogcmlnaHQ7XFxcXG4gICAgICBoZWlnaHQ6IDE2cHg7XFxcXG4gICAgICB3aWR0aDogMTZweDtcXFxcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcXFxcbiAgICAgIHN2ZyB7XFxcXG4gICAgICAgIHdpZHRoOiAxMDAlO1xcXFxuICAgICAgICBoZWlnaHQ6IDEwMCU7XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgdGFibGUge1xcXFxuICAgICAgd2lkdGg6IDEwMCU7XFxcXG4gICAgICB0aCB7XFxcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpO1xcXFxuICAgICAgICBwYWRkaW5nOiA0cHg7XFxcXG4gICAgICB9XFxcXG4gICAgICB0ciB7XFxcXG4gICAgICAgIHRkOm50aC1jaGlsZCgyKSB7XFxcXG4gICAgICAgICAgbWluLXdpZHRoOiAyNHB4O1xcXFxuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xcXFxuICAgICAgICB9XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgOnJvb3RbZGlyPVxcXFxcXFwicnRsXFxcXFxcXCJdICYge1xcXFxuICAgICAgbGVmdDogMTJweDtcXFxcbiAgICAgIHJpZ2h0OiBpbml0aWFsO1xcXFxuXFxcXG4gICAgICBoMyB7XFxcXG4gICAgICAgIG1hcmdpbjogMCAwIDhweCAyNHB4O1xcXFxuICAgICAgfVxcXFxuICAgICAgLmNsb3NlIHtcXFxcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuICB9XFxcXG59XFxcXG5cXFwiXSxcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoX19fQ1NTX0xPQURFUl9FWFBPUlRfX18pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpOXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVRkR0YwY3k1elkzTnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN08wRkJRVUU3UVVGRE9FZzdRVUZEYWtJN1FVRkROMGNzT0VKQlFUaENMSFZIUVVFeVFpeERRVUZETEdkSVFVRnhRenRCUVVNdlJqdEJRVU5CTEcxRVFVRnRSQ3huUkVGQlowUXNSMEZCUnl4M1FrRkJkMElzZFVKQlFYVkNMR05CUVdNc1owSkJRV2RDTEc5Q1FVRnZRaXhuUWtGQlowSXNSMEZCUnl4NVFrRkJlVUlzZVVKQlFYbENMSGRDUVVGM1FpeEhRVUZITERaQ1FVRTJRaXhwUWtGQmFVSXNhVUpCUVdsQ0xHZENRVUZuUWl4dlFrRkJiMElzUjBGQlJ5eHBRMEZCYVVNc1owSkJRV2RDTEdsQ1FVRnBRaXhIUVVGSExEUkNRVUUwUWl4blFrRkJaMElzUjBGQlJ5d3JRa0ZCSzBJc2RVUkJRWFZFTEdsQ1FVRnBRaXhIUVVGSExDdERRVUVyUXl4dlFrRkJiMElzYzBKQlFYTkNMRWRCUVVjc2NVTkJRWEZETEdWQlFXVXNiVUpCUVcxQ0xFZEJRVWNzZDBOQlFYZERMSGxDUVVGNVFpeEhRVUZITERSRFFVRTBReXhuUWtGQlowSXNSMEZCUnl4UFFVRlBMRFJKUVVFMFNTeFhRVUZYTEUxQlFVMHNTMEZCU3l4WFFVRlhMRlZCUVZVc1ZVRkJWU3hWUVVGVkxGVkJRVlVzUzBGQlN5eExRVUZMTEZkQlFWY3NWMEZCVnl4TFFVRkxMRXRCUVVzc1ZVRkJWU3hWUVVGVkxGVkJRVlVzVlVGQlZTeExRVUZMTEV0QlFVc3NWVUZCVlN4VlFVRlZMRXRCUVVzc1MwRkJTeXhWUVVGVkxFdEJRVXNzUzBGQlN5eFhRVUZYTEZWQlFWVXNTMEZCU3l4TFFVRkxMRlZCUVZVc1YwRkJWeXhMUVVGTExFdEJRVXNzVlVGQlZTeFZRVUZWTEV0QlFVc3NTMEZCU3l4WFFVRlhMRXRCUVVzc1MwRkJTeXhWUVVGVkxHZEZRVUZuUlN4MVFrRkJkVUlzYTBOQlFXdERMRWxCUVVrc1pVRkJaU3hMUVVGTExFZEJRVWNzYzBSQlFYTkVMR0ZCUVdFc2QwTkJRWGRETEVkQlFVY3NlVU5CUVhsRExHbENRVUZwUWl4WlFVRlpMSGxDUVVGNVFpeG5Ra0ZCWjBJc2EwSkJRV3RDTEhOQ1FVRnpRaXhyUWtGQmEwSXNXVUZCV1N3MlFrRkJOa0lzTkVKQlFUUkNMRTlCUVU4c1owSkJRV2RDTEhGQ1FVRnhRaXh4UWtGQmNVSXNiMEpCUVc5Q0xIZENRVUYzUWl4aFFVRmhMSE5DUVVGelFpeDFRa0ZCZFVJc1UwRkJVeXhQUVVGUExHVkJRV1VzYjBKQlFXOUNMRmxCUVZrc05rUkJRVFpFTEhWQ1FVRjFRaXhUUVVGVExGbEJRVmtzTWtKQlFUSkNMRFJDUVVFMFFpdzRRa0ZCT0VJc1YwRkJWeXhUUVVGVExFOUJRVThzT0VKQlFUaENMRzFDUVVGdFFpeDFRa0ZCZFVJc1kwRkJZeXdyUWtGQkswSXNVMEZCVXl4blFrRkJaMElzYzBKQlFYTkNMRk5CUVZNc1QwRkJUeXhMUVVGTExFZEJRVWNzY1VKQlFYRkNPMEZCUTNvdlJUdEJRVU5CTEdsRlFVRmxMSFZDUVVGMVFpeEZRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZVM1JoZEhNdWMyTnpjejgzWlRNeElsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaTh2SUVsdGNHOXlkSE5jYm1sdGNHOXlkQ0JmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlUVDFWU1EwVk5RVkJmU1UxUVQxSlVYMTlmSUdaeWIyMGdYQ0l1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTlqYzNNdGJHOWhaR1Z5TDJScGMzUXZjblZ1ZEdsdFpTOXpiM1Z5WTJWTllYQnpMbXB6WENJN1hHNXBiWEJ2Y25RZ1gxOWZRMU5UWDB4UFFVUkZVbDlCVUVsZlNVMVFUMUpVWDE5ZklHWnliMjBnWENJdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2Y25WdWRHbHRaUzloY0drdWFuTmNJanRjYm5aaGNpQmZYMTlEVTFOZlRFOUJSRVZTWDBWWVVFOVNWRjlmWHlBOUlGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgwbE5VRTlTVkY5Zlh5aGZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOVRUMVZTUTBWTlFWQmZTVTFRVDFKVVgxOWZLVHRjYmk4dklFMXZaSFZzWlZ4dVgxOWZRMU5UWDB4UFFVUkZVbDlGV0ZCUFVsUmZYMTh1Y0hWemFDaGJiVzlrZFd4bExtbGtMQ0JjSWpwbGVIQnZjblFnZTF4Y2JpQWdkR2hsYldWR2FXeDBaWEk2SUdsdWRtVnlkQ2c1TXlVcElHaDFaUzF5YjNSaGRHVW9NVGd3WkdWbktUdGNYRzU5WEZ4dVhGeHVMbVY0WTJGc2FXUnlZWGNnTGxOMFlYUnpJSHRjWEc0Z0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNYRzRnSUhSdmNEb2dOalJ3ZUR0Y1hHNGdJSEpwWjJoME9pQXhNbkI0TzF4Y2JpQWdabTl1ZEMxemFYcGxPaUF4TW5CNE8xeGNiaUFnZWkxcGJtUmxlRG9nTVRBN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNVRkR0YwY3lCb015QjdYRnh1SUNCdFlYSm5hVzQ2SURBZ01qUndlQ0E0Y0hnZ01EdGNYRzRnSUhkb2FYUmxMWE53WVdObE9pQnViM2R5WVhBN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNVRkR0YwY3lBdVkyeHZjMlVnZTF4Y2JpQWdabXh2WVhRNklISnBaMmgwTzF4Y2JpQWdhR1ZwWjJoME9pQXhObkI0TzF4Y2JpQWdkMmxrZEdnNklERTJjSGc3WEZ4dUlDQmpkWEp6YjNJNklIQnZhVzUwWlhJN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNVRkR0YwY3lBdVkyeHZjMlVnYzNabklIdGNYRzRnSUhkcFpIUm9PaUF4TURBbE8xeGNiaUFnYUdWcFoyaDBPaUF4TURBbE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVVM1JoZEhNZ2RHRmliR1VnZTF4Y2JpQWdkMmxrZEdnNklERXdNQ1U3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1VGRHRjBjeUIwWVdKc1pTQjBhQ0I3WEZ4dUlDQmliM0prWlhJdFltOTBkRzl0T2lBeGNIZ2djMjlzYVdRZ2RtRnlLQzB0YVc1d2RYUXRZbTl5WkdWeUxXTnZiRzl5S1R0Y1hHNGdJSEJoWkdScGJtYzZJRFJ3ZUR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xsTjBZWFJ6SUhSaFlteGxJSFJ5SUhSa09tNTBhQzFqYUdsc1pDZ3lLU0I3WEZ4dUlDQnRhVzR0ZDJsa2RHZzZJREkwY0hnN1hGeHVJQ0IwWlhoMExXRnNhV2R1T2lCeWFXZG9kRHRjWEc1OVhGeHVPbkp2YjNSYlpHbHlQWEowYkYwZ0xtVjRZMkZzYVdSeVlYY2dMbE4wWVhSeklIdGNYRzRnSUd4bFpuUTZJREV5Y0hnN1hGeHVJQ0J5YVdkb2REb2dhVzVwZEdsaGJEdGNYRzU5WEZ4dU9uSnZiM1JiWkdseVBYSjBiRjBnTG1WNFkyRnNhV1J5WVhjZ0xsTjBZWFJ6SUdneklIdGNYRzRnSUcxaGNtZHBiam9nTUNBd0lEaHdlQ0F5TkhCNE8xeGNibjFjWEc0NmNtOXZkRnRrYVhJOWNuUnNYU0F1WlhoallXeHBaSEpoZHlBdVUzUmhkSE1nTG1Oc2IzTmxJSHRjWEc0Z0lHWnNiMkYwT2lCc1pXWjBPMXhjYm4xY0lpd2dYQ0pjSWl4N1hDSjJaWEp6YVc5dVhDSTZNeXhjSW5OdmRYSmpaWE5jSWpwYlhDSjNaV0p3WVdOck9pOHZMaTh1TGk4dUxpOWpjM012ZG1GeWFXRmliR1Z6TG0xdlpIVnNaUzV6WTNOelhDSXNYQ0ozWldKd1lXTnJPaTh2TGk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDFOMFlYUnpMbk5qYzNOY0lsMHNYQ0p1WVcxbGMxd2lPbHRkTEZ3aWJXRndjR2x1WjNOY0lqcGNJa0ZCVlVFN1JVRkRSU3d5UTBGQlFUdEJRMVJHT3p0QlFVTkZPMFZCUTBVc2EwSkJRVUU3UlVGRFFTeFRRVUZCTzBWQlEwRXNWMEZCUVR0RlFVTkJMR1ZCUVVFN1JVRkRRU3hYUVVGQk8wRkJSVW83UVVGQlNUdEZRVU5GTEc5Q1FVRkJPMFZCUTBFc2JVSkJRVUU3UVVGRlRqdEJRVU5KTzBWQlEwVXNXVUZCUVR0RlFVTkJMRmxCUVVFN1JVRkRRU3hYUVVGQk8wVkJRMEVzWlVGQlFUdEJRVU5PTzBGQlFVMDdSVUZEUlN4WFFVRkJPMFZCUTBFc1dVRkJRVHRCUVVWU08wRkJSVWs3UlVGRFJTeFhRVUZCTzBGQlFVNDdRVUZEVFR0RlFVTkZMR3RFUVVGQk8wVkJRMEVzV1VGQlFUdEJRVU5TTzBGQlJWRTdSVUZEUlN4bFFVRkJPMFZCUTBFc2FVSkJRVUU3UVVGQlZqdEJRVXRKTzBWQlEwVXNWVUZCUVR0RlFVTkJMR05CUVVFN1FVRklUanRCUVV0Tk8wVkJRMFVzYjBKQlFVRTdRVUZJVWp0QlFVdE5PMFZCUTBVc1YwRkJRVHRCUVVoU1hDSXNYQ0p6YjNWeVkyVnpRMjl1ZEdWdWRGd2lPbHRjSWtCcGJYQnZjblFnWEZ4Y0ltOXdaVzR0WTI5c2IzSXZiM0JsYmkxamIyeHZjaTV6WTNOelhGeGNJanRjWEc1Y1hHNUFiV2w0YVc0Z2FYTk5iMkpwYkdVb0tTQjdYRnh1SUNCQVlYUXRjbTl2ZENBdVpYaGpZV3hwWkhKaGR5MHRiVzlpYVd4bEkzc21mU0I3WEZ4dUlDQWdJRUJqYjI1MFpXNTBPMXhjYmlBZ2ZWeGNibjFjWEc1Y1hHNGtkR2hsYldVdFptbHNkR1Z5T2lCY1hGd2lhVzUyWlhKMEtEa3pKU2tnYUhWbExYSnZkR0YwWlNneE9EQmtaV2NwWEZ4Y0lqdGNYRzVjWEc0NlpYaHdiM0owSUh0Y1hHNGdJSFJvWlcxbFJtbHNkR1Z5T2lCMWJuRjFiM1JsS0NSMGFHVnRaUzFtYVd4MFpYSXBPMXhjYm4xY1hHNWNJaXhjSWtCcGJYQnZjblFnWEZ4Y0lpNHVMMk56Y3k5MllYSnBZV0pzWlhNdWJXOWtkV3hsWEZ4Y0lqdGNYRzVjWEc0dVpYaGpZV3hwWkhKaGR5QjdYRnh1SUNBdVUzUmhkSE1nZTF4Y2JpQWdJQ0J3YjNOcGRHbHZiam9nWVdKemIyeDFkR1U3WEZ4dUlDQWdJSFJ2Y0RvZ05qUndlRHRjWEc0Z0lDQWdjbWxuYUhRNklERXljSGc3WEZ4dUlDQWdJR1p2Ym5RdGMybDZaVG9nTVRKd2VEdGNYRzRnSUNBZ2VpMXBibVJsZURvZ01UQTdYRnh1WEZ4dUlDQWdJR2d6SUh0Y1hHNGdJQ0FnSUNCdFlYSm5hVzQ2SURBZ01qUndlQ0E0Y0hnZ01EdGNYRzRnSUNBZ0lDQjNhR2wwWlMxemNHRmpaVG9nYm05M2NtRndPMXhjYmlBZ0lDQjlYRnh1WEZ4dUlDQWdJQzVqYkc5elpTQjdYRnh1SUNBZ0lDQWdabXh2WVhRNklISnBaMmgwTzF4Y2JpQWdJQ0FnSUdobGFXZG9kRG9nTVRad2VEdGNYRzRnSUNBZ0lDQjNhV1IwYURvZ01UWndlRHRjWEc0Z0lDQWdJQ0JqZFhKemIzSTZJSEJ2YVc1MFpYSTdYRnh1SUNBZ0lDQWdjM1puSUh0Y1hHNGdJQ0FnSUNBZ0lIZHBaSFJvT2lBeE1EQWxPMXhjYmlBZ0lDQWdJQ0FnYUdWcFoyaDBPaUF4TURBbE8xeGNiaUFnSUNBZ0lIMWNYRzRnSUNBZ2ZWeGNibHhjYmlBZ0lDQjBZV0pzWlNCN1hGeHVJQ0FnSUNBZ2QybGtkR2c2SURFd01DVTdYRnh1SUNBZ0lDQWdkR2dnZTF4Y2JpQWdJQ0FnSUNBZ1ltOXlaR1Z5TFdKdmRIUnZiVG9nTVhCNElITnZiR2xrSUhaaGNpZ3RMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEZ4dUlDQWdJQ0FnSUNCd1lXUmthVzVuT2lBMGNIZzdYRnh1SUNBZ0lDQWdmVnhjYmlBZ0lDQWdJSFJ5SUh0Y1hHNGdJQ0FnSUNBZ0lIUmtPbTUwYUMxamFHbHNaQ2d5S1NCN1hGeHVJQ0FnSUNBZ0lDQWdJRzFwYmkxM2FXUjBhRG9nTWpSd2VEdGNYRzRnSUNBZ0lDQWdJQ0FnZEdWNGRDMWhiR2xuYmpvZ2NtbG5hSFE3WEZ4dUlDQWdJQ0FnSUNCOVhGeHVJQ0FnSUNBZ2ZWeGNiaUFnSUNCOVhGeHVYRnh1SUNBZ0lEcHliMjkwVzJScGNqMWNYRndpY25Sc1hGeGNJbDBnSmlCN1hGeHVJQ0FnSUNBZ2JHVm1kRG9nTVRKd2VEdGNYRzRnSUNBZ0lDQnlhV2RvZERvZ2FXNXBkR2xoYkR0Y1hHNWNYRzRnSUNBZ0lDQm9NeUI3WEZ4dUlDQWdJQ0FnSUNCdFlYSm5hVzQ2SURBZ01DQTRjSGdnTWpSd2VEdGNYRzRnSUNBZ0lDQjlYRnh1SUNBZ0lDQWdMbU5zYjNObElIdGNYRzRnSUNBZ0lDQWdJR1pzYjJGME9pQnNaV1owTzF4Y2JpQWdJQ0FnSUgxY1hHNGdJQ0FnZlZ4Y2JpQWdmVnhjYm4xY1hHNWNJbDBzWENKemIzVnlZMlZTYjI5MFhDSTZYQ0pjSW4xZEtUdGNiaTh2SUVWNGNHOXlkSE5jYm1WNGNHOXlkQ0JrWldaaGRXeDBJRjlmWDBOVFUxOU1UMEZFUlZKZlJWaFFUMUpVWDE5Zk8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvU3RhdHMuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9UZXh0SW5wdXQuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvVGV4dElucHV0LnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8vIEltcG9ydHNcXG5cXG5cXG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpKChfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQoKSkpO1xcbi8vIE1vZHVsZVxcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXFxcIjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcXFxufVxcXFxuXFxcXG4uZXhjYWxpZHJhdyAuVGV4dElucHV0IHtcXFxcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcXFxufVxcXCIsIFxcXCJcXFwiLHtcXFwidmVyc2lvblxcXCI6MyxcXFwic291cmNlc1xcXCI6W1xcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9UZXh0SW5wdXQuc2Nzc1xcXCJdLFxcXCJuYW1lc1xcXCI6W10sXFxcIm1hcHBpbmdzXFxcIjpcXFwiQUFVQTtFQUNFLDJDQUFBO0FDVEY7O0FBQ0U7RUFDRSxxQkFBQTtBQUVKXFxcIixcXFwic291cmNlc0NvbnRlbnRcXFwiOltcXFwiQGltcG9ydCBcXFxcXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcXFxcXCI7XFxcXG5cXFxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXFxcbiAgQGF0LXJvb3QgLmV4Y2FsaWRyYXctLW1vYmlsZSN7Jn0ge1xcXFxuICAgIEBjb250ZW50O1xcXFxuICB9XFxcXG59XFxcXG5cXFxcbiR0aGVtZS1maWx0ZXI6IFxcXFxcXFwiaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpXFxcXFxcXCI7XFxcXG5cXFxcbjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXFxcbn1cXFxcblxcXCIsXFxcIkBpbXBvcnQgXFxcXFxcXCIuLi9jc3MvdmFyaWFibGVzLm1vZHVsZVxcXFxcXFwiO1xcXFxuXFxcXG4uZXhjYWxpZHJhdyB7XFxcXG4gIC5UZXh0SW5wdXQge1xcXFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXFxcbiAgfVxcXFxufVxcXFxuXFxcIl0sXFxcInNvdXJjZVJvb3RcXFwiOlxcXCJcXFwifV0pO1xcbi8vIEV4cG9ydHNcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKF9fX0NTU19MT0FERVJfRVhQT1JUX19fKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlVWlhoMFNXNXdkWFF1YzJOemN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3p0QlFVRkJPMEZCUXpoSU8wRkJRMnBDTzBGQlF6ZEhMRGhDUVVFNFFpeDFSMEZCTWtJc1EwRkJReXhuU0VGQmNVTTdRVUZETDBZN1FVRkRRU3h0UkVGQmJVUXNaMFJCUVdkRUxFZEJRVWNzTkVKQlFUUkNMREJDUVVFd1FpeEhRVUZITEU5QlFVOHNaMHBCUVdkS0xGZEJRVmNzVFVGQlRTeExRVUZMTEZkQlFWY3NaMFZCUVdkRkxIVkNRVUYxUWl4clEwRkJhME1zU1VGQlNTeGxRVUZsTEV0QlFVc3NSMEZCUnl4elJFRkJjMFFzWVVGQllTeDNRMEZCZDBNc1IwRkJSeXg1UTBGQmVVTXNhVUpCUVdsQ0xHZENRVUZuUWl3MFFrRkJORUlzUzBGQlN5eEhRVUZITEhGQ1FVRnhRanRCUVVNMWRFSTdRVUZEUVN4cFJVRkJaU3gxUWtGQmRVSXNSVUZCUXlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWpiMjF3YjI1bGJuUnpMMVJsZUhSSmJuQjFkQzV6WTNOelB6UXdZekFpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUx5OGdTVzF3YjNKMGMxeHVhVzF3YjNKMElGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgxTlBWVkpEUlUxQlVGOUpUVkJQVWxSZlgxOGdabkp2YlNCY0lpNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5eWRXNTBhVzFsTDNOdmRYSmpaVTFoY0hNdWFuTmNJanRjYm1sdGNHOXlkQ0JmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlKVFZCUFVsUmZYMThnWm5KdmJTQmNJaTR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMMk56Y3kxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwyRndhUzVxYzF3aU8xeHVkbUZ5SUY5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZJRDBnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmU1UxUVQxSlVYMTlmS0Y5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDFOUFZWSkRSVTFCVUY5SlRWQlBVbFJmWDE4cE8xeHVMeThnVFc5a2RXeGxYRzVmWDE5RFUxTmZURTlCUkVWU1gwVllVRTlTVkY5Zlh5NXdkWE5vS0Z0dGIyUjFiR1V1YVdRc0lGd2lPbVY0Y0c5eWRDQjdYRnh1SUNCMGFHVnRaVVpwYkhSbGNqb2dhVzUyWlhKMEtEa3pKU2tnYUhWbExYSnZkR0YwWlNneE9EQmtaV2NwTzF4Y2JuMWNYRzVjWEc0dVpYaGpZV3hwWkhKaGR5QXVWR1Y0ZEVsdWNIVjBJSHRjWEc0Z0lHUnBjM0JzWVhrNklHbHViR2x1WlMxaWJHOWphenRjWEc1OVhDSXNJRndpWENJc2Uxd2lkbVZ5YzJsdmJsd2lPak1zWENKemIzVnlZMlZ6WENJNlcxd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZZM056TDNaaGNtbGhZbXhsY3k1dGIyUjFiR1V1YzJOemMxd2lMRndpZDJWaWNHRmphem92THk0dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5VVpYaDBTVzV3ZFhRdWMyTnpjMXdpWFN4Y0ltNWhiV1Z6WENJNlcxMHNYQ0p0WVhCd2FXNW5jMXdpT2x3aVFVRlZRVHRGUVVORkxESkRRVUZCTzBGRFZFWTdPMEZCUTBVN1JVRkRSU3h4UWtGQlFUdEJRVVZLWENJc1hDSnpiM1Z5WTJWelEyOXVkR1Z1ZEZ3aU9sdGNJa0JwYlhCdmNuUWdYRnhjSW05d1pXNHRZMjlzYjNJdmIzQmxiaTFqYjJ4dmNpNXpZM056WEZ4Y0lqdGNYRzVjWEc1QWJXbDRhVzRnYVhOTmIySnBiR1VvS1NCN1hGeHVJQ0JBWVhRdGNtOXZkQ0F1WlhoallXeHBaSEpoZHkwdGJXOWlhV3hsSTNzbWZTQjdYRnh1SUNBZ0lFQmpiMjUwWlc1ME8xeGNiaUFnZlZ4Y2JuMWNYRzVjWEc0a2RHaGxiV1V0Wm1sc2RHVnlPaUJjWEZ3aWFXNTJaWEowS0RrekpTa2dhSFZsTFhKdmRHRjBaU2d4T0RCa1pXY3BYRnhjSWp0Y1hHNWNYRzQ2Wlhod2IzSjBJSHRjWEc0Z0lIUm9aVzFsUm1sc2RHVnlPaUIxYm5GMWIzUmxLQ1IwYUdWdFpTMW1hV3gwWlhJcE8xeGNibjFjWEc1Y0lpeGNJa0JwYlhCdmNuUWdYRnhjSWk0dUwyTnpjeTkyWVhKcFlXSnNaWE11Ylc5a2RXeGxYRnhjSWp0Y1hHNWNYRzR1WlhoallXeHBaSEpoZHlCN1hGeHVJQ0F1VkdWNGRFbHVjSFYwSUh0Y1hHNGdJQ0FnWkdsemNHeGhlVG9nYVc1c2FXNWxMV0pzYjJOck8xeGNiaUFnZlZ4Y2JuMWNYRzVjSWwwc1hDSnpiM1Z5WTJWU2IyOTBYQ0k2WENKY0luMWRLVHRjYmk4dklFVjRjRzl5ZEhOY2JtVjRjRzl5ZENCa1pXWmhkV3gwSUY5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1RleHRJbnB1dC5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1RvYXN0LnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvVG9hc3Quc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkZWZhdWx0XFxcIjogKCkgPT4gKF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vLyBJbXBvcnRzXFxuXFxuXFxudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKSgoX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0KCkpKTtcXG4vLyBNb2R1bGVcXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFxcXCI6ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IGludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKTtcXFxcbn1cXFxcblxcXFxuLmV4Y2FsaWRyYXcgLlRvYXN0IHtcXFxcbiAgYW5pbWF0aW9uOiBmYWRlLWluIDAuNXM7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcXFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxcXG4gIGJvdHRvbTogMTBweDtcXFxcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXFxcbiAgY3Vyc29yOiBkZWZhdWx0O1xcXFxuICBsZWZ0OiA1MCU7XFxcXG4gIG1hcmdpbi1sZWZ0OiAtMTUwcHg7XFxcXG4gIHBhZGRpbmc6IDRweCAwO1xcXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXFxcbiAgd2lkdGg6IDMwMHB4O1xcXFxuICB6LWluZGV4OiA5OTk5OTk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVG9hc3RfX21lc3NhZ2Uge1xcXFxuICBjb2xvcjogdmFyKC0tcG9wdXAtdGV4dC1jb2xvcik7XFxcXG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcXFxcbn1cXFxcbkBrZXlmcmFtZXMgZmFkZS1pbiB7XFxcXG4gIGZyb20ge1xcXFxuICAgIG9wYWNpdHk6IDA7XFxcXG4gIH1cXFxcbiAgdG8ge1xcXFxuICAgIG9wYWNpdHk6IDE7XFxcXG4gIH1cXFxcbn1cXFwiLCBcXFwiXFxcIix7XFxcInZlcnNpb25cXFwiOjMsXFxcInNvdXJjZXNcXFwiOltcXFwid2VicGFjazovLy4vLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1xcXCIsXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvVG9hc3Quc2Nzc1xcXCJdLFxcXCJuYW1lc1xcXCI6W10sXFxcIm1hcHBpbmdzXFxcIjpcXFwiQUFVQTtFQUNFLDJDQUFBO0FDVEY7O0FBQ0U7RUFDRSx1QkFBQTtFQUNBLHNDQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUE7RUFDQSxlQUFBO0VBQ0EsU0FBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtBQUVKO0FBQ0U7RUFDRSw4QkFBQTtFQUNBLHFCQUFBO0FBQ0o7QUFFRTtFQUNFO0lBQ0UsVUFBQTtFQUFKO0VBRUU7SUFDRSxVQUFBO0VBQUo7QUFDRlxcXCIsXFxcInNvdXJjZXNDb250ZW50XFxcIjpbXFxcIkBpbXBvcnQgXFxcXFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXFxcXFwiO1xcXFxuXFxcXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXFxcbiAgICBAY29udGVudDtcXFxcbiAgfVxcXFxufVxcXFxuXFxcXG4kdGhlbWUtZmlsdGVyOiBcXFxcXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXFxcXFwiO1xcXFxuXFxcXG46ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxcXG59XFxcXG5cXFwiLFxcXCJAaW1wb3J0IFxcXFxcXFwiLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGVcXFxcXFxcIjtcXFxcblxcXFxuLmV4Y2FsaWRyYXcge1xcXFxuICAuVG9hc3Qge1xcXFxuICAgIGFuaW1hdGlvbjogZmFkZS1pbiAwLjVzO1xcXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcXFxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcXFxcbiAgICBib3R0b206IDEwcHg7XFxcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXFxcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XFxcXG4gICAgbGVmdDogNTAlO1xcXFxuICAgIG1hcmdpbi1sZWZ0OiAtMTUwcHg7XFxcXG4gICAgcGFkZGluZzogNHB4IDA7XFxcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXFxcbiAgICB3aWR0aDogMzAwcHg7XFxcXG4gICAgei1pbmRleDogOTk5OTk5O1xcXFxuICB9XFxcXG5cXFxcbiAgLlRvYXN0X19tZXNzYWdlIHtcXFxcbiAgICBjb2xvcjogdmFyKC0tcG9wdXAtdGV4dC1jb2xvcik7XFxcXG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xcXFxuICB9XFxcXG5cXFxcbiAgQGtleWZyYW1lcyBmYWRlLWluIHtcXFxcbiAgICBmcm9tIHtcXFxcbiAgICAgIG9wYWNpdHk6IDA7XFxcXG4gICAgfVxcXFxuICAgIHRvIHtcXFxcbiAgICAgIG9wYWNpdHk6IDE7XFxcXG4gICAgfVxcXFxuICB9XFxcXG59XFxcXG5cXFwiXSxcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoX19fQ1NTX0xPQURFUl9FWFBPUlRfX18pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpOXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVViMkZ6ZEM1elkzTnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN08wRkJRVUU3UVVGRE9FZzdRVUZEYWtJN1FVRkROMGNzT0VKQlFUaENMSFZIUVVFeVFpeERRVUZETEdkSVFVRnhRenRCUVVNdlJqdEJRVU5CTEcxRVFVRnRSQ3huUkVGQlowUXNSMEZCUnl4M1FrRkJkMElzTkVKQlFUUkNMREpEUVVFeVF5eDFRa0ZCZFVJc2FVSkJRV2xDTERKQ1FVRXlRaXh2UWtGQmIwSXNZMEZCWXl4M1FrRkJkMElzYlVKQlFXMUNMSFZDUVVGMVFpeDFRa0ZCZFVJc2FVSkJRV2xDTEc5Q1FVRnZRaXhIUVVGSExDdENRVUVyUWl4dFEwRkJiVU1zTUVKQlFUQkNMRWRCUVVjc2MwSkJRWE5DTEZWQlFWVXNhVUpCUVdsQ0xFdEJRVXNzVVVGQlVTeHBRa0ZCYVVJc1MwRkJTeXhIUVVGSExFOUJRVThzTkVsQlFUUkpMRmRCUVZjc1RVRkJUU3hMUVVGTExGZEJRVmNzVjBGQlZ5eFhRVUZYTEZWQlFWVXNWMEZCVnl4VlFVRlZMRlZCUVZVc1YwRkJWeXhWUVVGVkxGZEJRVmNzVjBGQlZ5eFZRVUZWTEZWQlFWVXNTMEZCU3l4TFFVRkxMRmRCUVZjc1YwRkJWeXhMUVVGTExFdEJRVXNzUzBGQlN5eFZRVUZWTEV0QlFVc3NTMEZCU3l4VlFVRlZMRXRCUVVzc1owVkJRV2RGTEhWQ1FVRjFRaXhyUTBGQmEwTXNTVUZCU1N4bFFVRmxMRXRCUVVzc1IwRkJSeXh6UkVGQmMwUXNZVUZCWVN4M1EwRkJkME1zUjBGQlJ5eDVRMEZCZVVNc2FVSkJRV2xDTEZsQlFWa3NPRUpCUVRoQ0xEWkRRVUUyUXl4NVFrRkJlVUlzYlVKQlFXMUNMRFpDUVVFMlFpeHpRa0ZCYzBJc1owSkJRV2RDTERCQ1FVRXdRaXh4UWtGQmNVSXNlVUpCUVhsQ0xIbENRVUY1UWl4dFFrRkJiVUlzYzBKQlFYTkNMRXRCUVVzc2RVSkJRWFZDTEhGRFFVRnhReXcwUWtGQk5FSXNTMEZCU3l3d1FrRkJNRUlzV1VGQldTeHRRa0ZCYlVJc1QwRkJUeXhWUVVGVkxHMUNRVUZ0UWl4UFFVRlBMRXRCUVVzc1IwRkJSeXh4UWtGQmNVSTdRVUZEY0RGRU8wRkJRMEVzYVVWQlFXVXNkVUpCUVhWQ0xFVkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVViMkZ6ZEM1elkzTnpQMlpsTnpZaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeThnU1cxd2IzSjBjMXh1YVcxd2IzSjBJRjlmWDBOVFUxOU1UMEZFUlZKZlFWQkpYMU5QVlZKRFJVMUJVRjlKVFZCUFVsUmZYMThnWm5KdmJTQmNJaTR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMMk56Y3kxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwzTnZkWEpqWlUxaGNITXVhbk5jSWp0Y2JtbHRjRzl5ZENCZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5SlRWQlBVbFJmWDE4Z1puSnZiU0JjSWk0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDJOemN5MXNiMkZrWlhJdlpHbHpkQzl5ZFc1MGFXMWxMMkZ3YVM1cWMxd2lPMXh1ZG1GeUlGOWZYME5UVTE5TVQwRkVSVkpmUlZoUVQxSlVYMTlmSUQwZ1gxOWZRMU5UWDB4UFFVUkZVbDlCVUVsZlNVMVFUMUpVWDE5ZktGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgxTlBWVkpEUlUxQlVGOUpUVkJQVWxSZlgxOHBPMXh1THk4Z1RXOWtkV3hsWEc1ZlgxOURVMU5mVEU5QlJFVlNYMFZZVUU5U1ZGOWZYeTV3ZFhOb0tGdHRiMlIxYkdVdWFXUXNJRndpT21WNGNHOXlkQ0I3WEZ4dUlDQjBhR1Z0WlVacGJIUmxjam9nYVc1MlpYSjBLRGt6SlNrZ2FIVmxMWEp2ZEdGMFpTZ3hPREJrWldjcE8xeGNibjFjWEc1Y1hHNHVaWGhqWVd4cFpISmhkeUF1Vkc5aGMzUWdlMXhjYmlBZ1lXNXBiV0YwYVc5dU9pQm1ZV1JsTFdsdUlEQXVOWE03WEZ4dUlDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxaWRYUjBiMjR0WjNKaGVTMHhLVHRjWEc0Z0lHSnZjbVJsY2kxeVlXUnBkWE02SURSd2VEdGNYRzRnSUdKdmRIUnZiVG9nTVRCd2VEdGNYRzRnSUdKdmVDMXphWHBwYm1jNklHSnZjbVJsY2kxaWIzZzdYRnh1SUNCamRYSnpiM0k2SUdSbFptRjFiSFE3WEZ4dUlDQnNaV1owT2lBMU1DVTdYRnh1SUNCdFlYSm5hVzR0YkdWbWREb2dMVEUxTUhCNE8xeGNiaUFnY0dGa1pHbHVaem9nTkhCNElEQTdYRnh1SUNCd2IzTnBkR2x2YmpvZ1lXSnpiMngxZEdVN1hGeHVJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEZ4dUlDQjNhV1IwYURvZ016QXdjSGc3WEZ4dUlDQjZMV2x1WkdWNE9pQTVPVGs1T1RrN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNVViMkZ6ZEY5ZmJXVnpjMkZuWlNCN1hGeHVJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGNHOXdkWEF0ZEdWNGRDMWpiMnh2Y2lrN1hGeHVJQ0IzYUdsMFpTMXpjR0ZqWlRvZ2NISmxMWGR5WVhBN1hGeHVmVnhjYmtCclpYbG1jbUZ0WlhNZ1ptRmtaUzFwYmlCN1hGeHVJQ0JtY205dElIdGNYRzRnSUNBZ2IzQmhZMmwwZVRvZ01EdGNYRzRnSUgxY1hHNGdJSFJ2SUh0Y1hHNGdJQ0FnYjNCaFkybDBlVG9nTVR0Y1hHNGdJSDFjWEc1OVhDSXNJRndpWENJc2Uxd2lkbVZ5YzJsdmJsd2lPak1zWENKemIzVnlZMlZ6WENJNlcxd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZZM056TDNaaGNtbGhZbXhsY3k1dGIyUjFiR1V1YzJOemMxd2lMRndpZDJWaWNHRmphem92THk0dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5VWIyRnpkQzV6WTNOelhDSmRMRndpYm1GdFpYTmNJanBiWFN4Y0ltMWhjSEJwYm1kelhDSTZYQ0pCUVZWQk8wVkJRMFVzTWtOQlFVRTdRVU5VUmpzN1FVRkRSVHRGUVVORkxIVkNRVUZCTzBWQlEwRXNjME5CUVVFN1JVRkRRU3hyUWtGQlFUdEZRVU5CTEZsQlFVRTdSVUZEUVN4elFrRkJRVHRGUVVOQkxHVkJRVUU3UlVGRFFTeFRRVUZCTzBWQlEwRXNiVUpCUVVFN1JVRkRRU3hqUVVGQk8wVkJRMEVzYTBKQlFVRTdSVUZEUVN4clFrRkJRVHRGUVVOQkxGbEJRVUU3UlVGRFFTeGxRVUZCTzBGQlJVbzdRVUZEUlR0RlFVTkZMRGhDUVVGQk8wVkJRMEVzY1VKQlFVRTdRVUZEU2p0QlFVVkZPMFZCUTBVN1NVRkRSU3hWUVVGQk8wVkJRVW83UlVGRlJUdEpRVU5GTEZWQlFVRTdSVUZCU2p0QlFVTkdYQ0lzWENKemIzVnlZMlZ6UTI5dWRHVnVkRndpT2x0Y0lrQnBiWEJ2Y25RZ1hGeGNJbTl3Wlc0dFkyOXNiM0l2YjNCbGJpMWpiMnh2Y2k1elkzTnpYRnhjSWp0Y1hHNWNYRzVBYldsNGFXNGdhWE5OYjJKcGJHVW9LU0I3WEZ4dUlDQkFZWFF0Y205dmRDQXVaWGhqWVd4cFpISmhkeTB0Ylc5aWFXeGxJM3NtZlNCN1hGeHVJQ0FnSUVCamIyNTBaVzUwTzF4Y2JpQWdmVnhjYm4xY1hHNWNYRzRrZEdobGJXVXRabWxzZEdWeU9pQmNYRndpYVc1MlpYSjBLRGt6SlNrZ2FIVmxMWEp2ZEdGMFpTZ3hPREJrWldjcFhGeGNJanRjWEc1Y1hHNDZaWGh3YjNKMElIdGNYRzRnSUhSb1pXMWxSbWxzZEdWeU9pQjFibkYxYjNSbEtDUjBhR1Z0WlMxbWFXeDBaWElwTzF4Y2JuMWNYRzVjSWl4Y0lrQnBiWEJ2Y25RZ1hGeGNJaTR1TDJOemN5OTJZWEpwWVdKc1pYTXViVzlrZFd4bFhGeGNJanRjWEc1Y1hHNHVaWGhqWVd4cFpISmhkeUI3WEZ4dUlDQXVWRzloYzNRZ2UxeGNiaUFnSUNCaGJtbHRZWFJwYjI0NklHWmhaR1V0YVc0Z01DNDFjenRjWEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdFluVjBkRzl1TFdkeVlYa3RNU2s3WEZ4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEUndlRHRjWEc0Z0lDQWdZbTkwZEc5dE9pQXhNSEI0TzF4Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeGNiaUFnSUNCamRYSnpiM0k2SUdSbFptRjFiSFE3WEZ4dUlDQWdJR3hsWm5RNklEVXdKVHRjWEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUMweE5UQndlRHRjWEc0Z0lDQWdjR0ZrWkdsdVp6b2dOSEI0SURBN1hGeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y1hHNGdJQ0FnZEdWNGRDMWhiR2xuYmpvZ1kyVnVkR1Z5TzF4Y2JpQWdJQ0IzYVdSMGFEb2dNekF3Y0hnN1hGeHVJQ0FnSUhvdGFXNWtaWGc2SURrNU9UazVPVHRjWEc0Z0lIMWNYRzVjWEc0Z0lDNVViMkZ6ZEY5ZmJXVnpjMkZuWlNCN1hGeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXdiM0IxY0MxMFpYaDBMV052Ykc5eUtUdGNYRzRnSUNBZ2QyaHBkR1V0YzNCaFkyVTZJSEJ5WlMxM2NtRndPMXhjYmlBZ2ZWeGNibHhjYmlBZ1FHdGxlV1p5WVcxbGN5Qm1ZV1JsTFdsdUlIdGNYRzRnSUNBZ1puSnZiU0I3WEZ4dUlDQWdJQ0FnYjNCaFkybDBlVG9nTUR0Y1hHNGdJQ0FnZlZ4Y2JpQWdJQ0IwYnlCN1hGeHVJQ0FnSUNBZ2IzQmhZMmwwZVRvZ01UdGNYRzRnSUNBZ2ZWeGNiaUFnZlZ4Y2JuMWNYRzVjSWwwc1hDSnpiM1Z5WTJWU2IyOTBYQ0k2WENKY0luMWRLVHRjYmk4dklFVjRjRzl5ZEhOY2JtVjRjRzl5ZENCa1pXWmhkV3gwSUY5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1RvYXN0LnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvVG9vbEljb24uc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Ub29sSWNvbi5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8vIEltcG9ydHNcXG5cXG5cXG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpKChfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQoKSkpO1xcbi8vIE1vZHVsZVxcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXFxcIjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcXFxufVxcXFxuXFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb24ge1xcXFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXFxcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcXFxuICBjdXJzb3I6IHBvaW50ZXI7XFxcXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb24tLXBsYWluIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb24tLXBsYWluIC5Ub29sSWNvbl9faWNvbiB7XFxcXG4gIHdpZHRoOiAycmVtO1xcXFxuICBoZWlnaHQ6IDJyZW07XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9yYWRpbyArIC5Ub29sSWNvbl9faWNvbixcXFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94ICsgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9yYWRpbyArIC5Ub29sSWNvbl9faWNvbjpob3ZlcixcXFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94ICsgLlRvb2xJY29uX19pY29uOmhvdmVyIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9yYWRpbyArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUsXFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl9faWNvbiB7XFxcXG4gIHdpZHRoOiAyLjVyZW07XFxcXG4gIGhlaWdodDogMi41cmVtO1xcXFxuICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbGcpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX19pY29uICsgLlRvb2xJY29uX19sYWJlbCB7XFxcXG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fX2ljb24gc3ZnIHtcXFxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcXFxuICBoZWlnaHQ6IDFlbTtcXFxcbiAgZmlsbDogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXFxcbiAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fX2xhYmVsIHtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxcXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS11aS1mb250KTtcXFxcbiAgbWFyZ2luOiAwIDAuOGVtO1xcXFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl9fbGFiZWwgLlNwaW5uZXIge1xcXFxuICBtYXJnaW4tbGVmdDogMC42ZW07XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fc2l6ZV9zbWFsbCAuVG9vbEljb25fX2ljb24ge1xcXFxuICB3aWR0aDogMnJlbTtcXFxcbiAgaGVpZ2h0OiAycmVtO1xcXFxuICBmb250LXNpemU6IDAuOGVtO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLFxcXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbixcXFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbiB7XFxcXG4gIHBhZGRpbmc6IDA7XFxcXG4gIGJvcmRlcjogbm9uZTtcXFxcbiAgbWFyZ2luOiAwO1xcXFxuICBmb250LXNpemU6IGluaGVyaXQ7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b246Zm9jdXMtdmlzaWJsZSxcXFxcbi5leGNhbGlkcmF3IC5Nb2RhbCAuVG9vbEljb25fdHlwZV9idXR0b246Zm9jdXMtdmlzaWJsZSxcXFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbjpmb2N1cy12aXNpYmxlIHtcXFxcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b24uVG9vbEljb24tLXNlbGVjdGVkLFxcXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbi5Ub29sSWNvbi0tc2VsZWN0ZWQsXFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b24uVG9vbEljb24tLXNlbGVjdGVkIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b24uVG9vbEljb24tLXNlbGVjdGVkOmFjdGl2ZSxcXFxcbi5leGNhbGlkcmF3IC5Nb2RhbCAuVG9vbEljb25fdHlwZV9idXR0b24uVG9vbEljb24tLXNlbGVjdGVkOmFjdGl2ZSxcXFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbi5Ub29sSWNvbi0tc2VsZWN0ZWQ6YWN0aXZlIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b246aG92ZXIsXFxcXG4uZXhjYWxpZHJhdyAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uOmhvdmVyLFxcXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uOmhvdmVyIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b246YWN0aXZlLFxcXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbjphY3RpdmUsXFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b246YWN0aXZlIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b24tLXNob3csXFxcXG4uZXhjYWxpZHJhdyAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uLS1zaG93LFxcXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLS1zaG93IHtcXFxcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbi0taGlkZSxcXFxcbi5leGNhbGlkcmF3IC5Nb2RhbCAuVG9vbEljb25fdHlwZV9idXR0b24tLWhpZGUsXFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b24tLWhpZGUge1xcXFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9yYWRpbyxcXFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94IHtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICBvcGFjaXR5OiAwO1xcXFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX3JhZGlvOm5vdCguVG9vbEljb25fdG9nZ2xlX29wYXF1ZSk6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbixcXFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94Om5vdCguVG9vbEljb25fdG9nZ2xlX29wYXF1ZSk6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbiB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfcmFkaW86bm90KC5Ub29sSWNvbl90b2dnbGVfb3BhcXVlKTpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSxcXFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94Om5vdCguVG9vbEljb25fdG9nZ2xlX29wYXF1ZSk6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX3JhZGlvOmZvY3VzLXZpc2libGUgKyAuVG9vbEljb25fX2ljb24sXFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveDpmb2N1cy12aXNpYmxlICsgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9yYWRpbzphY3RpdmUgKyAuVG9vbEljb25fX2ljb24sXFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveDphY3RpdmUgKyAuVG9vbEljb25fX2ljb24ge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9mbG9hdGluZzpob3ZlciB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmc6YWN0aXZlIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2ljb24ge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXFxcbiAgd2lkdGg6IDJyZW07XFxcXG4gIGhlaWdodDogMmVtO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgLlRvb2xJY29uX19pY29uOmhvdmVyIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gIGJvdHRvbTogMnB4O1xcXFxuICByaWdodDogM3B4O1xcXFxuICBmb250LXNpemU6IDAuNWVtO1xcXFxuICBjb2xvcjogdmFyKC0ta2V5YmluZGluZy1jb2xvcik7XFxcXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS11aS1mb250KTtcXFxcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXFxcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXFxcbn1cXFxcbkBtZWRpYSAobWF4LXdpZHRoOiA0MjVweCkge1xcXFxuICAuZXhjYWxpZHJhdyAuU2hhcGUgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgICB3aWR0aDogMnJlbTtcXFxcbiAgICBoZWlnaHQ6IDJyZW07XFxcXG4gIH1cXFxcbiAgLmV4Y2FsaWRyYXcgLlNoYXBlIC5Ub29sSWNvbl9faWNvbiBzdmcge1xcXFxuICAgIGhlaWdodDogMC44ZW07XFxcXG4gIH1cXFxcbn1cXFxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjBweCkge1xcXFxuICAuZXhjYWxpZHJhdyAuVG9vbEljb24uVG9vbEljb25fdHlwZV9mbG9hdGluZyB7XFxcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgICByaWdodDogLThweDtcXFxcbiAgICBtYXJnaW4tbGVmdDogMDtcXFxcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4IDAgMCAyMHB4O1xcXFxuICAgIHotaW5kZXg6IDE7XFxcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxcXG4gIH1cXFxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uLlRvb2xJY29uX3R5cGVfZmxvYXRpbmc6aG92ZXIge1xcXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcXFxuICB9XFxcXG4gIC5leGNhbGlkcmF3IC5Ub29sSWNvbi5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nOmFjdGl2ZSB7XFxcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG4gIH1cXFxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcXFxuICB9XFxcXG4gIC5leGNhbGlkcmF3IC5Ub29sSWNvbi5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIHN2ZyB7XFxcXG4gICAgcG9zaXRpb246IHN0YXRpYztcXFxcbiAgfVxcXFxuICAuZXhjYWxpZHJhdyAuVG9vbEljb24uVG9vbEljb25fX2xpYnJhcnkge1xcXFxuICAgIHRvcDogMTAwcHg7XFxcXG4gIH1cXFxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uLlRvb2xJY29uX19sb2NrIHtcXFxcbiAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcXFxcbiAgICB0b3A6IDYwcHg7XFxcXG4gIH1cXFxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uLlRvb2xJY29uX19wZW5Nb2RlIHtcXFxcbiAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcXFxcbiAgICB0b3A6IDE0MHB4O1xcXFxuICB9XFxcXG59XFxcXG46cm9vdFtkaXI9bHRyXSAuZXhjYWxpZHJhdyAudW5sb2NrZWQtaWNvbiB7XFxcXG4gIGxlZnQ6IDJweDtcXFxcbn1cXFxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC51bmxvY2tlZC1pY29uIHtcXFxcbiAgcmlnaHQ6IDJweDtcXFxcbn1cXFwiLCBcXFwiXFxcIix7XFxcInZlcnNpb25cXFwiOjMsXFxcInNvdXJjZXNcXFwiOltcXFwid2VicGFjazovLy4vLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1xcXCIsXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvVG9vbEljb24uc2Nzc1xcXCJdLFxcXCJuYW1lc1xcXCI6W10sXFxcIm1hcHBpbmdzXFxcIjpcXFwiQUFVQTtFQUNFLDJDQUFBO0FDVEY7O0FBRUU7RUFDRSxvQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0Esd0NBQUE7RUFDQSx5QkFBQTtVQUFBLGlCQUFBO0FBQ0o7QUFFRTtFQUNFLDZCQUFBO0FBQUo7QUFDSTtFQUNFLFdBQUE7RUFDQSxZQUFBO0FBQ047QUFLSTs7RUFDRSxzQ0FBQTtBQUZOO0FBSU07O0VBQ0Usc0NBQUE7QUFEUjtBQUdNOztFQUNFLHNDQUFBO0FBQVI7QUFLRTtFQUNFLGFBQUE7RUFDQSxjQUFBO0VBQ0EsNkJBQUE7RUFFQSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQUVBLHNDQUFBO0FBTEo7QUFPSTtFQUNFLHNCQUFBO0FBTE47QUFRSTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLDRCQUFBO0VBQ0EsNkJBQUE7QUFOTjtBQVVFO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsNkJBQUE7RUFDQSwyQkFBQTtFQUNBLGVBQUE7RUFDQSx1QkFBQTtBQVJKO0FBVUk7RUFDRSxrQkFBQTtBQVJOO0FBWUU7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0FBVko7QUFhRTs7O0VBR0UsVUFBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0Esa0JBQUE7QUFYSjtBQWFJOzs7RUFDRSxrREFBQTtBQVROO0FBWUk7OztFQUNFLHNDQUFBO0FBUk47QUFVTTs7O0VBQ0Usc0NBQUE7QUFOUjtBQVVJOzs7RUFDRSxzQ0FBQTtBQU5OO0FBU0k7OztFQUNFLHNDQUFBO0FBTE47QUFRSTs7O0VBQ0UsbUJBQUE7QUFKTjtBQU9JOzs7RUFDRSxrQkFBQTtBQUhOO0FBT0U7O0VBRUUsa0JBQUE7RUFDQSxVQUFBO0VBQ0Esb0JBQUE7QUFMSjtBQU9JOztFQUNFLHNDQUFBO0FBSk47QUFLTTs7RUFDRSxzQ0FBQTtBQUZSO0FBTUk7O0VBQ0Usa0RBQUE7QUFITjtBQU1JOztFQUNFLHNDQUFBO0FBSE47QUFPRTtFQUNFLDZCQUFBO0FBTEo7QUFPSTtFQUNFLDZCQUFBO0FBTE47QUFRSTtFQUNFLDZCQUFBO0FBTk47QUFTSTtFQUNFLHNDQUFBO0VBUUEsV0FBQTtFQUNBLFdBQUE7QUFkTjtBQU1NO0VBQ0Usc0NBQUE7QUFKUjtBQU1NO0VBQ0Usc0NBQUE7QUFKUjtBQVlFO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsOEJBQUE7RUFDQSwyQkFBQTtFQUNBLHlCQUFBO1VBQUEsaUJBQUE7QUFWSjtBQWNFO0VBQ0U7SUFDRSxXQUFBO0lBQ0EsWUFBQTtFQVpKO0VBY0k7SUFDRSxhQUFBO0VBWk47QUFDRjtBQWtCRTtFQUNFO0lBQ0UscUJBQUE7SUFDQSxrQkFBQTtJQUNBLFdBQUE7SUFFQSxjQUFBO0lBQ0EsNEJBQUE7SUFDQSxVQUFBO0lBRUEsc0NBQUE7RUFsQko7RUFvQkk7SUFDRSxzQ0FBQTtFQWxCTjtFQXFCSTtJQUNFLHNDQUFBO0VBbkJOO0VBc0JJO0lBQ0Usc0JBQUE7RUFwQk47RUF1Qkk7SUFDRSxnQkFBQTtFQXJCTjtFQXdCRTtJQUNFLFVBQUE7RUF0Qko7RUF5QkU7SUFDRSxvQkFBQTtJQUNBLFNBQUE7RUF2Qko7RUF5QkU7SUFDRSxvQkFBQTtJQUNBLFVBQUE7RUF2Qko7QUFDRjtBQTJCSTtFQUNFLFNBQUE7QUF6Qk47QUE0Qkk7RUFDRSxVQUFBO0FBMUJOXFxcIixcXFwic291cmNlc0NvbnRlbnRcXFwiOltcXFwiQGltcG9ydCBcXFxcXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcXFxcXCI7XFxcXG5cXFxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXFxcbiAgQGF0LXJvb3QgLmV4Y2FsaWRyYXctLW1vYmlsZSN7Jn0ge1xcXFxuICAgIEBjb250ZW50O1xcXFxuICB9XFxcXG59XFxcXG5cXFxcbiR0aGVtZS1maWx0ZXI6IFxcXFxcXFwiaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpXFxcXFxcXCI7XFxcXG5cXFxcbjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXFxcbn1cXFxcblxcXCIsXFxcIkBpbXBvcnQgXFxcXFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXFxcXFwiO1xcXFxuQGltcG9ydCBcXFxcXFxcIi4uL2Nzcy92YXJpYWJsZXMubW9kdWxlXFxcXFxcXCI7XFxcXG5cXFxcbi5leGNhbGlkcmF3IHtcXFxcbiAgLlRvb2xJY29uIHtcXFxcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXFxcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXFxcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxcXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXFxcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXFxcbiAgfVxcXFxuXFxcXG4gIC5Ub29sSWNvbi0tcGxhaW4ge1xcXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcXFxuICAgIC5Ub29sSWNvbl9faWNvbiB7XFxcXG4gICAgICB3aWR0aDogMnJlbTtcXFxcbiAgICAgIGhlaWdodDogMnJlbTtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAuVG9vbEljb25fdHlwZV9yYWRpbyxcXFxcbiAgLlRvb2xJY29uX3R5cGVfY2hlY2tib3gge1xcXFxuICAgICYgKyAuVG9vbEljb25fX2ljb24ge1xcXFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxcXG5cXFxcbiAgICAgICY6aG92ZXIge1xcXFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXFxcbiAgICAgIH1cXFxcbiAgICAgICY6YWN0aXZlIHtcXFxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgICB3aWR0aDogMi41cmVtO1xcXFxuICAgIGhlaWdodDogMi41cmVtO1xcXFxuICAgIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcXFxuXFxcXG4gICAgZGlzcGxheTogZmxleDtcXFxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXFxcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuXFxcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1sZyk7XFxcXG5cXFxcbiAgICAmICsgLlRvb2xJY29uX19sYWJlbCB7XFxcXG4gICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xcXFxuICAgIH1cXFxcblxcXFxuICAgIHN2ZyB7XFxcXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxcXG4gICAgICBoZWlnaHQ6IDFlbTtcXFxcbiAgICAgIGZpbGw6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxcXG4gICAgICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAuVG9vbEljb25fX2xhYmVsIHtcXFxcbiAgICBkaXNwbGF5OiBmbGV4O1xcXFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gICAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXVpLWZvbnQpO1xcXFxuICAgIG1hcmdpbjogMCAwLjhlbTtcXFxcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXFxcblxcXFxuICAgIC5TcGlubmVyIHtcXFxcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjZlbTtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAuVG9vbEljb25fc2l6ZV9zbWFsbCAuVG9vbEljb25fX2ljb24ge1xcXFxuICAgIHdpZHRoOiAycmVtO1xcXFxuICAgIGhlaWdodDogMnJlbTtcXFxcbiAgICBmb250LXNpemU6IDAuOGVtO1xcXFxuICB9XFxcXG5cXFxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLFxcXFxuICAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uLFxcXFxuICAuVG9vbEljb25fdHlwZV9idXR0b24ge1xcXFxuICAgIHBhZGRpbmc6IDA7XFxcXG4gICAgYm9yZGVyOiBub25lO1xcXFxuICAgIG1hcmdpbjogMDtcXFxcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XFxcXG5cXFxcbiAgICAmOmZvY3VzLXZpc2libGUge1xcXFxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJi5Ub29sSWNvbi0tc2VsZWN0ZWQge1xcXFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG5cXFxcbiAgICAgICY6YWN0aXZlIHtcXFxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJjpob3ZlciB7XFxcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAmOmFjdGl2ZSB7XFxcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAmLS1zaG93IHtcXFxcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJi0taGlkZSB7XFxcXG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxcXG4gIC5Ub29sSWNvbl90eXBlX2NoZWNrYm94IHtcXFxcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gICAgb3BhY2l0eTogMDtcXFxcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXFxcblxcXFxuICAgICY6bm90KC5Ub29sSWNvbl90b2dnbGVfb3BhcXVlKTpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcXFxuICAgICAgJjphY3RpdmUge1xcXFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXFxcbiAgICAgIH1cXFxcbiAgICB9XFxcXG5cXFxcbiAgICAmOmZvY3VzLXZpc2libGUgKyAuVG9vbEljb25fX2ljb24ge1xcXFxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJjphY3RpdmUgKyAuVG9vbEljb25fX2ljb24ge1xcXFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcge1xcXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcXFxuXFxcXG4gICAgJjpob3ZlciB7XFxcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAmOmFjdGl2ZSB7XFxcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAuVG9vbEljb25fX2ljb24ge1xcXFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxcXG4gICAgICAmOmhvdmVyIHtcXFxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG4gICAgICB9XFxcXG4gICAgICAmOmFjdGl2ZSB7XFxcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcXFxuICAgICAgfVxcXFxuXFxcXG4gICAgICB3aWR0aDogMnJlbTtcXFxcbiAgICAgIGhlaWdodDogMmVtO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxuXFxcXG4gIC5Ub29sSWNvbl9fa2V5YmluZGluZyB7XFxcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICAgIGJvdHRvbTogMnB4O1xcXFxuICAgIHJpZ2h0OiAzcHg7XFxcXG4gICAgZm9udC1zaXplOiAwLjVlbTtcXFxcbiAgICBjb2xvcjogdmFyKC0ta2V5YmluZGluZy1jb2xvcik7XFxcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXVpLWZvbnQpO1xcXFxuICAgIHVzZXItc2VsZWN0OiBub25lO1xcXFxuICB9XFxcXG5cXFxcbiAgLy8gc2hyaW5rIHNoYXBlIGljb25zIG9uIHNtYWxsIHZpZXdwb3J0cyB0byBtYWtlIHRoZW0gZml0XFxcXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0MjVweCkge1xcXFxuICAgIC5TaGFwZSAuVG9vbEljb25fX2ljb24ge1xcXFxuICAgICAgd2lkdGg6IDJyZW07XFxcXG4gICAgICBoZWlnaHQ6IDJyZW07XFxcXG5cXFxcbiAgICAgIHN2ZyB7XFxcXG4gICAgICAgIGhlaWdodDogMC44ZW07XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLy8gbW92ZSB0aGUgbG9jayBidXR0b24gb3V0IG9mIHRoZSB3YXkgb24gc21hbGwgdmlld3BvcnRzXFxcXG4gIC8vIGl0IGJlZ2lucyB0byBjb2xsaWRlIHdpdGggdGhlIEdpdEh1YiBpY29uIGJlZm9yZSB3ZSBzd2l0Y2ggdG8gbW9iaWxlIG1vZGVcXFxcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2MHB4KSB7XFxcXG4gICAgLlRvb2xJY29uLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcge1xcXFxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcXFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICAgICAgcmlnaHQ6IC04cHg7XFxcXG5cXFxcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xcXFxuICAgICAgYm9yZGVyLXJhZGl1czogMjBweCAwIDAgMjBweDtcXFxcbiAgICAgIHotaW5kZXg6IDE7XFxcXG5cXFxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcXFxuXFxcXG4gICAgICAmOmhvdmVyIHtcXFxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxcXG4gICAgICB9XFxcXG5cXFxcbiAgICAgICY6YWN0aXZlIHtcXFxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG4gICAgICB9XFxcXG5cXFxcbiAgICAgIC5Ub29sSWNvbl9faWNvbiB7XFxcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxcXG4gICAgICB9XFxcXG5cXFxcbiAgICAgIHN2ZyB7XFxcXG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuICAgIC5Ub29sSWNvbi5Ub29sSWNvbl9fbGlicmFyeSB7XFxcXG4gICAgICB0b3A6IDEwMHB4O1xcXFxuICAgIH1cXFxcblxcXFxuICAgIC5Ub29sSWNvbi5Ub29sSWNvbl9fbG9jayB7XFxcXG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcXFxcbiAgICAgIHRvcDogNjBweDtcXFxcbiAgICB9XFxcXG4gICAgLlRvb2xJY29uLlRvb2xJY29uX19wZW5Nb2RlIHtcXFxcbiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xcXFxuICAgICAgdG9wOiAxNDBweDtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAudW5sb2NrZWQtaWNvbiB7XFxcXG4gICAgOnJvb3RbZGlyPVxcXFxcXFwibHRyXFxcXFxcXCJdICYge1xcXFxuICAgICAgbGVmdDogMnB4O1xcXFxuICAgIH1cXFxcblxcXFxuICAgIDpyb290W2Rpcj1cXFxcXFxcInJ0bFxcXFxcXFwiXSAmIHtcXFxcbiAgICAgIHJpZ2h0OiAycHg7XFxcXG4gICAgfVxcXFxuICB9XFxcXG59XFxcXG5cXFwiXSxcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoX19fQ1NTX0xPQURFUl9FWFBPUlRfX18pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpOXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVViMjlzU1dOdmJpNXpZM056TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPMEZCUVVFN1FVRkRPRWc3UVVGRGFrSTdRVUZETjBjc09FSkJRVGhDTEhWSFFVRXlRaXhEUVVGRExHZElRVUZ4UXp0QlFVTXZSanRCUVVOQkxHMUVRVUZ0UkN4blJFRkJaMFFzUjBGQlJ5d3lRa0ZCTWtJc2VVSkJRWGxDTEhkQ1FVRjNRaXgxUWtGQmRVSXNiMEpCUVc5Q0xEWkRRVUUyUXl3NFFrRkJPRUlzT0VKQlFUaENMRWRCUVVjc1owTkJRV2RETEd0RFFVRnJReXhIUVVGSExHZEVRVUZuUkN4blFrRkJaMElzYVVKQlFXbENMRWRCUVVjc09FZEJRVGhITERKRFFVRXlReXhIUVVGSExEQklRVUV3U0N3eVEwRkJNa01zUjBGQlJ5dzBTRUZCTkVnc01rTkJRVEpETEVkQlFVY3NLMEpCUVN0Q0xHdENRVUZyUWl4dFFrRkJiVUlzYTBOQlFXdERMR3RDUVVGclFpdzBRa0ZCTkVJc2QwSkJRWGRDTERKRFFVRXlReXhIUVVGSExHdEVRVUZyUkN3eVFrRkJNa0lzUjBGQlJ5eHRRMEZCYlVNc2RVSkJRWFZDTEdkQ1FVRm5RaXhwUTBGQmFVTXNhME5CUVd0RExFZEJRVWNzWjBOQlFXZERMR3RDUVVGclFpeDNRa0ZCZDBJc2EwTkJRV3RETEdkRFFVRm5ReXh2UWtGQmIwSXNORUpCUVRSQ0xFZEJRVWNzZVVOQlFYbERMSFZDUVVGMVFpeEhRVUZITEc5RVFVRnZSQ3huUWtGQlowSXNhVUpCUVdsQ0xIRkNRVUZ4UWl4SFFVRkhMR2RKUVVGblNTeGxRVUZsTEdsQ1FVRnBRaXhqUVVGakxIVkNRVUYxUWl4SFFVRkhMREJMUVVFd1N5eDFSRUZCZFVRc1IwRkJSeXg1VEVGQmVVd3NNa05CUVRKRExFZEJRVWNzT0UxQlFUaE5MREpEUVVFeVF5eEhRVUZITEd0S1FVRnJTaXd5UTBGQk1rTXNSMEZCUnl4eFNrRkJjVW9zTWtOQlFUSkRMRWRCUVVjc2EwcEJRV3RLTEhkQ1FVRjNRaXhIUVVGSExHdEtRVUZyU2l4MVFrRkJkVUlzUjBGQlJ5d3dSVUZCTUVVc2RVSkJRWFZDTEdWQlFXVXNlVUpCUVhsQ0xFZEJRVWNzZDB4QlFYZE1MREpEUVVFeVF5eEhRVUZITEhOTlFVRnpUU3d5UTBGQk1rTXNSMEZCUnl3d1NVRkJNRWtzZFVSQlFYVkVMRWRCUVVjc05FaEJRVFJJTERKRFFVRXlReXhIUVVGSExIVkRRVUYxUXl4clEwRkJhME1zUjBGQlJ5dzJRMEZCTmtNc2EwTkJRV3RETEVkQlFVY3NPRU5CUVRoRExHdERRVUZyUXl4SFFVRkhMSFZFUVVGMVJDd3lRMEZCTWtNc1owSkJRV2RDTEdkQ1FVRm5RaXhIUVVGSExEWkVRVUUyUkN3eVEwRkJNa01zUjBGQlJ5dzRSRUZCT0VRc01rTkJRVEpETEVkQlFVY3NjVU5CUVhGRExIVkNRVUYxUWl4blFrRkJaMElzWlVGQlpTeHhRa0ZCY1VJc2JVTkJRVzFETEdkRFFVRm5ReXc0UWtGQk9FSXNPRUpCUVRoQ0xFZEJRVWNzTmtKQlFUWkNMSGREUVVGM1F5eHJRa0ZCYTBJc2JVSkJRVzFDTEV0QlFVc3NORU5CUVRSRExHOUNRVUZ2UWl4TFFVRkxMRWRCUVVjc05rSkJRVFpDTEd0RVFVRnJSQ3cwUWtGQk5FSXNlVUpCUVhsQ0xHdENRVUZyUWl4eFFrRkJjVUlzYlVOQlFXMURMR2xDUVVGcFFpdzJRMEZCTmtNc1MwRkJTeXgzUkVGQmQwUXNOa05CUVRaRExFdEJRVXNzZVVSQlFYbEVMRFpEUVVFMlF5eExRVUZMTEd0RlFVRnJSU3cyUWtGQk5rSXNTMEZCU3l4elJFRkJjMFFzZFVKQlFYVkNMRXRCUVVzc05rTkJRVFpETEdsQ1FVRnBRaXhMUVVGTExEQkRRVUV3UXl3eVFrRkJNa0lzWjBKQlFXZENMRXRCUVVzc05rTkJRVFpETERKQ1FVRXlRaXhwUWtGQmFVSXNTMEZCU3l4SFFVRkhMRFpEUVVFMlF5eGpRVUZqTEVkQlFVY3NOa05CUVRaRExHVkJRV1VzUjBGQlJ5eFBRVUZQTEN0SlFVRXJTU3hYUVVGWExFMUJRVTBzUzBGQlN5eFhRVUZYTEZkQlFWY3NWMEZCVnl4VlFVRlZMRmRCUVZjc1YwRkJWeXhYUVVGWExFdEJRVXNzUzBGQlN5eFhRVUZYTEV0QlFVc3NTMEZCU3l4VlFVRlZMRlZCUVZVc1MwRkJTeXhOUVVGTkxGZEJRVmNzUzBGQlN5eE5RVUZOTEZkQlFWY3NTMEZCU3l4TlFVRk5MRmRCUVZjc1MwRkJTeXhMUVVGTExGVkJRVlVzVlVGQlZTeFhRVUZYTEZWQlFWVXNWMEZCVnl4WFFVRlhMRmRCUVZjc1MwRkJTeXhMUVVGTExGZEJRVmNzUzBGQlN5eExRVUZMTEZkQlFWY3NWVUZCVlN4WFFVRlhMRmRCUVZjc1MwRkJTeXhMUVVGTExGVkJRVlVzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWVUZCVlN4WFFVRlhMRXRCUVVzc1MwRkJTeXhYUVVGWExFdEJRVXNzUzBGQlN5eFZRVUZWTEZWQlFWVXNWMEZCVnl4TFFVRkxMRTlCUVU4c1ZVRkJWU3hWUVVGVkxGVkJRVlVzVjBGQlZ5eExRVUZMTEU5QlFVOHNWMEZCVnl4TFFVRkxMRTlCUVU4c1YwRkJWeXhMUVVGTExFOUJRVThzVjBGQlZ5eExRVUZMTEU5QlFVOHNWMEZCVnl4TFFVRkxMRTlCUVU4c1YwRkJWeXhMUVVGTExFOUJRVThzVjBGQlZ5eExRVUZMTEU5QlFVOHNWMEZCVnl4TFFVRkxMRTFCUVUwc1YwRkJWeXhWUVVGVkxGZEJRVmNzUzBGQlN5eE5RVUZOTEZkQlFWY3NTMEZCU3l4TlFVRk5MRmRCUVZjc1MwRkJTeXhOUVVGTkxGZEJRVmNzUzBGQlN5eE5RVUZOTEZkQlFWY3NTMEZCU3l4TFFVRkxMRmRCUVZjc1MwRkJTeXhMUVVGTExGZEJRVmNzUzBGQlN5eExRVUZMTEZkQlFWY3NTMEZCU3l4TFFVRkxMRmRCUVZjc1ZVRkJWU3hWUVVGVkxFdEJRVXNzUzBGQlN5eFhRVUZYTEV0QlFVc3NTMEZCU3l4WFFVRlhMRXRCUVVzc1MwRkJTeXhYUVVGWExGVkJRVlVzVlVGQlZTeFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1MwRkJTeXhMUVVGTExFdEJRVXNzVlVGQlZTeFZRVUZWTEV0QlFVc3NTMEZCU3l4VlFVRlZMRXRCUVVzc1MwRkJTeXhOUVVGTkxFdEJRVXNzVjBGQlZ5eFhRVUZYTEZWQlFWVXNWVUZCVlN4WFFVRlhMRlZCUVZVc1YwRkJWeXhOUVVGTkxFMUJRVTBzVjBGQlZ5eE5RVUZOTEUxQlFVMHNWMEZCVnl4TlFVRk5MRTFCUVUwc1YwRkJWeXhOUVVGTkxFMUJRVTBzVjBGQlZ5eE5RVUZOTEUxQlFVMHNWVUZCVlN4TlFVRk5MRTFCUVUwc1YwRkJWeXhWUVVGVkxFMUJRVTBzVFVGQlRTeFhRVUZYTEZWQlFWVXNUVUZCVFN4TFFVRkxMRTFCUVUwc1ZVRkJWU3hOUVVGTkxFMUJRVTBzVlVGQlZTeHBSVUZCYVVVc2RVSkJRWFZDTEd0RFFVRnJReXhKUVVGSkxHVkJRV1VzUzBGQlN5eEhRVUZITEhORVFVRnpSQ3hoUVVGaExIZERRVUYzUXl4SFFVRkhMRFJEUVVFMFF5eHpRMEZCYzBNc2FVSkJRV2xDTEdWQlFXVXNNa0pCUVRKQ0xEQkNRVUV3UWl4NVFrRkJlVUlzYzBKQlFYTkNMQ3REUVVFclF5eDNRa0ZCZDBJc1MwRkJTeXgzUWtGQmQwSXNiME5CUVc5RExIVkNRVUYxUWl4dlFrRkJiMElzY1VKQlFYRkNMRTlCUVU4c1MwRkJTeXgzUkVGQmQwUXNNa0pCUVRKQ0xDdERRVUVyUXl4dFFrRkJiVUlzYVVSQlFXbEVMRk5CUVZNc2EwSkJRV3RDTEdsRVFVRnBSQ3hUUVVGVExFOUJRVThzUzBGQlN5eDFRa0ZCZFVJc2IwSkJRVzlDTEhGQ1FVRnhRaXh2UTBGQmIwTXNjMEpCUVhOQ0xEaENRVUU0UWl3d1FrRkJNRUlzSzBOQlFTdERMRGhDUVVFNFFpd3JRa0ZCSzBJc1QwRkJUeXhoUVVGaExESkNRVUV5UWl4dlFrRkJiMElzY1VOQlFYRkRMSE5EUVVGelF5eFBRVUZQTEV0QlFVc3NkMEpCUVhkQ0xHOUNRVUZ2UWl3d1FrRkJNRUlzYjBOQlFXOURMR3REUVVGclF5eHpRa0ZCYzBJc09FSkJRVGhDTEd0Q1FVRnJRaXd5UWtGQk1rSXNUMEZCVHl4TFFVRkxMRFJEUVVFMFF5eHJRa0ZCYTBJc2JVSkJRVzFDTEhWQ1FVRjFRaXhMUVVGTExHOUhRVUZ2Unl4cFFrRkJhVUlzYlVKQlFXMUNMR2RDUVVGblFpeDVRa0ZCZVVJc2VVSkJRWGxDTERKRVFVRXlSQ3hQUVVGUExEaENRVUU0UWl3clEwRkJLME1zYjBKQlFXOUNMR2xFUVVGcFJDeFRRVUZUTEU5QlFVOHNhVUpCUVdsQ0xDdERRVUVyUXl4UFFVRlBMR3RDUVVGclFpd3JRMEZCSzBNc1QwRkJUeXhwUWtGQmFVSXNORUpCUVRSQ0xFOUJRVThzYVVKQlFXbENMREpDUVVFeVFpeFBRVUZQTEV0QlFVc3NkMFJCUVhkRUxIbENRVUY1UWl4cFFrRkJhVUlzTWtKQlFUSkNMR3RGUVVGclJTd3JRMEZCSzBNc2EwSkJRV3RDTEdsRVFVRnBSQ3hUUVVGVExFOUJRVThzTWtOQlFUSkRMREpFUVVFeVJDeFBRVUZQTEc5RFFVRnZReXdyUTBGQkswTXNUMEZCVHl4TFFVRkxMQ3RDUVVFclFpeHZRMEZCYjBNc2FVSkJRV2xDTEhORFFVRnpReXhQUVVGUExHdENRVUZyUWl4elEwRkJjME1zVDBGQlR5eDVRa0ZCZVVJc0swTkJRU3RETEdsQ1FVRnBRaXhwUkVGQmFVUXNVMEZCVXl4clFrRkJhMElzYVVSQlFXbEVMRk5CUVZNc2MwSkJRWE5DTEc5Q1FVRnZRaXhQUVVGUExFdEJRVXNzTmtKQlFUWkNMSGxDUVVGNVFpeHJRa0ZCYTBJc2FVSkJRV2xDTEhWQ1FVRjFRaXh4UTBGQmNVTXNhME5CUVd0RExIZENRVUYzUWl4TFFVRkxMRGhHUVVFNFJpdzRRa0ZCT0VJc2IwSkJRVzlDTEhGQ1FVRnhRaXhsUVVGbExIZENRVUYzUWl4VFFVRlRMRTlCUVU4c1MwRkJTeXc0UzBGQk9Fc3NkME5CUVhkRExEaENRVUU0UWl3eVFrRkJNa0lzYjBKQlFXOUNMSGxDUVVGNVFpeHhRMEZCY1VNc2JVSkJRVzFDTEdsRVFVRnBSQ3h0UWtGQmJVSXNhVVJCUVdsRUxGTkJRVk1zYjBKQlFXOUNMR2xFUVVGcFJDeFRRVUZUTERKQ1FVRXlRaXhwUTBGQmFVTXNVMEZCVXl4bFFVRmxMREpDUVVFeVFpeFRRVUZUTEU5QlFVOHNiVU5CUVcxRExHMUNRVUZ0UWl4UFFVRlBMR3REUVVGclF5dzJRa0ZCTmtJc2EwSkJRV3RDTEU5QlFVOHNiVU5CUVcxRExEWkNRVUUyUWl4dFFrRkJiVUlzVDBGQlR5eExRVUZMTEhOQ1FVRnpRaXcwUWtGQk5FSXNhMEpCUVd0Q0xFOUJRVThzT0VKQlFUaENMRzFDUVVGdFFpeFBRVUZQTEV0QlFVc3NSMEZCUnl4eFFrRkJjVUk3UVVGRGJubGFPMEZCUTBFc2FVVkJRV1VzZFVKQlFYVkNMRVZCUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlVYjI5c1NXTnZiaTV6WTNOelAyRXdaRGNpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUx5OGdTVzF3YjNKMGMxeHVhVzF3YjNKMElGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgxTlBWVkpEUlUxQlVGOUpUVkJQVWxSZlgxOGdabkp2YlNCY0lpNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5eWRXNTBhVzFsTDNOdmRYSmpaVTFoY0hNdWFuTmNJanRjYm1sdGNHOXlkQ0JmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlKVFZCUFVsUmZYMThnWm5KdmJTQmNJaTR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMMk56Y3kxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwyRndhUzVxYzF3aU8xeHVkbUZ5SUY5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZJRDBnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmU1UxUVQxSlVYMTlmS0Y5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDFOUFZWSkRSVTFCVUY5SlRWQlBVbFJmWDE4cE8xeHVMeThnVFc5a2RXeGxYRzVmWDE5RFUxTmZURTlCUkVWU1gwVllVRTlTVkY5Zlh5NXdkWE5vS0Z0dGIyUjFiR1V1YVdRc0lGd2lPbVY0Y0c5eWRDQjdYRnh1SUNCMGFHVnRaVVpwYkhSbGNqb2dhVzUyWlhKMEtEa3pKU2tnYUhWbExYSnZkR0YwWlNneE9EQmtaV2NwTzF4Y2JuMWNYRzVjWEc0dVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNGdlMXhjYmlBZ1pHbHpjR3hoZVRvZ2FXNXNhVzVsTFdac1pYZzdYRnh1SUNCaGJHbG5iaTFwZEdWdGN6b2dZMlZ1ZEdWeU8xeGNiaUFnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4Y2JpQWdZM1Z5YzI5eU9pQndiMmx1ZEdWeU8xeGNiaUFnTFhkbFltdHBkQzEwWVhBdGFHbG5hR3hwWjJoMExXTnZiRzl5T2lCMGNtRnVjM0JoY21WdWREdGNYRzRnSUMxM1pXSnJhWFF0ZFhObGNpMXpaV3hsWTNRNklHNXZibVU3WEZ4dUlDQWdJQ0FnSUNBZ0lIVnpaWEl0YzJWc1pXTjBPaUJ1YjI1bE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNHRMWEJzWVdsdUlIdGNYRzRnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1ME8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNHRMWEJzWVdsdUlDNVViMjlzU1dOdmJsOWZhV052YmlCN1hGeHVJQ0IzYVdSMGFEb2dNbkpsYlR0Y1hHNGdJR2hsYVdkb2REb2dNbkpsYlR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xsUnZiMnhKWTI5dVgzUjVjR1ZmY21Ga2FXOGdLeUF1Vkc5dmJFbGpiMjVmWDJsamIyNHNYRnh1TG1WNFkyRnNhV1J5WVhjZ0xsUnZiMnhKWTI5dVgzUjVjR1ZmWTJobFkydGliM2dnS3lBdVZHOXZiRWxqYjI1ZlgybGpiMjRnZTF4Y2JpQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdFluVjBkRzl1TFdkeVlYa3RNU2s3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1VWIyOXNTV052Ymw5MGVYQmxYM0poWkdsdklDc2dMbFJ2YjJ4SlkyOXVYMTlwWTI5dU9taHZkbVZ5TEZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVVYjI5c1NXTnZibDkwZVhCbFgyTm9aV05yWW05NElDc2dMbFJ2YjJ4SlkyOXVYMTlwWTI5dU9taHZkbVZ5SUh0Y1hHNGdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXSjFkSFJ2YmkxbmNtRjVMVElwTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVZHOXZiRWxqYjI1ZmRIbHdaVjl5WVdScGJ5QXJJQzVVYjI5c1NXTnZibDlmYVdOdmJqcGhZM1JwZG1Vc1hGeHVMbVY0WTJGc2FXUnlZWGNnTGxSdmIyeEpZMjl1WDNSNWNHVmZZMmhsWTJ0aWIzZ2dLeUF1Vkc5dmJFbGpiMjVmWDJsamIyNDZZV04wYVhabElIdGNYRzRnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV0oxZEhSdmJpMW5jbUY1TFRNcE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNWZYMmxqYjI0Z2UxeGNiaUFnZDJsa2RHZzZJREl1TlhKbGJUdGNYRzRnSUdobGFXZG9kRG9nTWk0MWNtVnRPMXhjYmlBZ1kyOXNiM0k2SUhaaGNpZ3RMV2xqYjI0dFptbHNiQzFqYjJ4dmNpazdYRnh1SUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ2FuVnpkR2xtZVMxamIyNTBaVzUwT2lCalpXNTBaWEk3WEZ4dUlDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXhjYmlBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nZG1GeUtDMHRZbTl5WkdWeUxYSmhaR2wxY3kxc1p5azdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVVYjI5c1NXTnZibDlmYVdOdmJpQXJJQzVVYjI5c1NXTnZibDlmYkdGaVpXd2dlMXhjYmlBZ2JXRnlaMmx1TFdsdWJHbHVaUzF6ZEdGeWREb2dNRHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGxSdmIyeEpZMjl1WDE5cFkyOXVJSE4yWnlCN1hGeHVJQ0J3YjNOcGRHbHZiam9nY21Wc1lYUnBkbVU3WEZ4dUlDQm9aV2xuYUhRNklERmxiVHRjWEc0Z0lHWnBiR3c2SUhaaGNpZ3RMV2xqYjI0dFptbHNiQzFqYjJ4dmNpazdYRnh1SUNCamIyeHZjam9nZG1GeUtDMHRhV052YmkxbWFXeHNMV052Ykc5eUtUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbFJ2YjJ4SlkyOXVYMTlzWVdKbGJDQjdYRnh1SUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzRnSUdOdmJHOXlPaUIyWVhJb0xTMXBZMjl1TFdacGJHd3RZMjlzYjNJcE8xeGNiaUFnWm05dWRDMW1ZVzFwYkhrNklIWmhjaWd0TFhWcExXWnZiblFwTzF4Y2JpQWdiV0Z5WjJsdU9pQXdJREF1T0dWdE8xeGNiaUFnZEdWNGRDMXZkbVZ5Wm14dmR6b2daV3hzYVhCemFYTTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVVYjI5c1NXTnZibDlmYkdGaVpXd2dMbE53YVc1dVpYSWdlMXhjYmlBZ2JXRnlaMmx1TFd4bFpuUTZJREF1Tm1WdE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNWZjMmw2WlY5emJXRnNiQ0F1Vkc5dmJFbGpiMjVmWDJsamIyNGdlMXhjYmlBZ2QybGtkR2c2SURKeVpXMDdYRnh1SUNCb1pXbG5hSFE2SURKeVpXMDdYRnh1SUNCbWIyNTBMWE5wZW1VNklEQXVPR1Z0TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNWZkSGx3WlY5aWRYUjBiMjRzWEZ4dUxtVjRZMkZzYVdSeVlYY2dMazF2WkdGc0lDNVViMjlzU1dOdmJsOTBlWEJsWDJKMWRIUnZiaXhjWEc0dVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNWZkSGx3WlY5aWRYUjBiMjRnZTF4Y2JpQWdjR0ZrWkdsdVp6b2dNRHRjWEc0Z0lHSnZjbVJsY2pvZ2JtOXVaVHRjWEc0Z0lHMWhjbWRwYmpvZ01EdGNYRzRnSUdadmJuUXRjMmw2WlRvZ2FXNW9aWEpwZER0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xtVjRZMkZzYVdSeVlYY2dMbFJ2YjJ4SlkyOXVYM1I1Y0dWZlluVjBkRzl1T21adlkzVnpMWFpwYzJsaWJHVXNYRnh1TG1WNFkyRnNhV1J5WVhjZ0xrMXZaR0ZzSUM1VWIyOXNTV052Ymw5MGVYQmxYMkoxZEhSdmJqcG1iMk4xY3kxMmFYTnBZbXhsTEZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVVYjI5c1NXTnZibDkwZVhCbFgySjFkSFJ2YmpwbWIyTjFjeTEyYVhOcFlteGxJSHRjWEc0Z0lHSnZlQzF6YUdGa2IzYzZJREFnTUNBd0lESndlQ0IyWVhJb0xTMW1iMk4xY3kxb2FXZG9iR2xuYUhRdFkyOXNiM0lwTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNWZkSGx3WlY5aWRYUjBiMjR1Vkc5dmJFbGpiMjR0TFhObGJHVmpkR1ZrTEZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVOYjJSaGJDQXVWRzl2YkVsamIyNWZkSGx3WlY5aWRYUjBiMjR1Vkc5dmJFbGpiMjR0TFhObGJHVmpkR1ZrTEZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVVYjI5c1NXTnZibDkwZVhCbFgySjFkSFJ2Ymk1VWIyOXNTV052YmkwdGMyVnNaV04wWldRZ2UxeGNiaUFnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRZblYwZEc5dUxXZHlZWGt0TWlrN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNWxlR05oYkdsa2NtRjNJQzVVYjI5c1NXTnZibDkwZVhCbFgySjFkSFJ2Ymk1VWIyOXNTV052YmkwdGMyVnNaV04wWldRNllXTjBhWFpsTEZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVOYjJSaGJDQXVWRzl2YkVsamIyNWZkSGx3WlY5aWRYUjBiMjR1Vkc5dmJFbGpiMjR0TFhObGJHVmpkR1ZrT21GamRHbDJaU3hjWEc0dVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNWZkSGx3WlY5aWRYUjBiMjR1Vkc5dmJFbGpiMjR0TFhObGJHVmpkR1ZrT21GamRHbDJaU0I3WEZ4dUlDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxaWRYUjBiMjR0WjNKaGVTMHpLVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG1WNFkyRnNhV1J5WVhjZ0xsUnZiMnhKWTI5dVgzUjVjR1ZmWW5WMGRHOXVPbWh2ZG1WeUxGeGNiaTVsZUdOaGJHbGtjbUYzSUM1TmIyUmhiQ0F1Vkc5dmJFbGpiMjVmZEhsd1pWOWlkWFIwYjI0NmFHOTJaWElzWEZ4dUxtVjRZMkZzYVdSeVlYY2dMbFJ2YjJ4SlkyOXVYM1I1Y0dWZlluVjBkRzl1T21odmRtVnlJSHRjWEc0Z0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdKMWRIUnZiaTFuY21GNUxUSXBPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1WlhoallXeHBaSEpoZHlBdVZHOXZiRWxqYjI1ZmRIbHdaVjlpZFhSMGIyNDZZV04wYVhabExGeGNiaTVsZUdOaGJHbGtjbUYzSUM1TmIyUmhiQ0F1Vkc5dmJFbGpiMjVmZEhsd1pWOWlkWFIwYjI0NllXTjBhWFpsTEZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVVYjI5c1NXTnZibDkwZVhCbFgySjFkSFJ2YmpwaFkzUnBkbVVnZTF4Y2JpQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdFluVjBkRzl1TFdkeVlYa3RNeWs3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1bGVHTmhiR2xrY21GM0lDNVViMjlzU1dOdmJsOTBlWEJsWDJKMWRIUnZiaTB0YzJodmR5eGNYRzR1WlhoallXeHBaSEpoZHlBdVRXOWtZV3dnTGxSdmIyeEpZMjl1WDNSNWNHVmZZblYwZEc5dUxTMXphRzkzTEZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVVYjI5c1NXTnZibDkwZVhCbFgySjFkSFJ2YmkwdGMyaHZkeUI3WEZ4dUlDQjJhWE5wWW1sc2FYUjVPaUIyYVhOcFlteGxPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1WlhoallXeHBaSEpoZHlBdVZHOXZiRWxqYjI1ZmRIbHdaVjlpZFhSMGIyNHRMV2hwWkdVc1hGeHVMbVY0WTJGc2FXUnlZWGNnTGsxdlpHRnNJQzVVYjI5c1NXTnZibDkwZVhCbFgySjFkSFJ2YmkwdGFHbGtaU3hjWEc0dVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNWZkSGx3WlY5aWRYUjBiMjR0TFdocFpHVWdlMXhjYmlBZ2RtbHphV0pwYkdsMGVUb2dhR2xrWkdWdU8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNWZkSGx3WlY5eVlXUnBieXhjWEc0dVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNWZkSGx3WlY5amFHVmphMkp2ZUNCN1hGeHVJQ0J3YjNOcGRHbHZiam9nWVdKemIyeDFkR1U3WEZ4dUlDQnZjR0ZqYVhSNU9pQXdPMXhjYmlBZ2NHOXBiblJsY2kxbGRtVnVkSE02SUc1dmJtVTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVVYjI5c1NXTnZibDkwZVhCbFgzSmhaR2x2T201dmRDZ3VWRzl2YkVsamIyNWZkRzluWjJ4bFgyOXdZWEYxWlNrNlkyaGxZMnRsWkNBcklDNVViMjlzU1dOdmJsOWZhV052Yml4Y1hHNHVaWGhqWVd4cFpISmhkeUF1Vkc5dmJFbGpiMjVmZEhsd1pWOWphR1ZqYTJKdmVEcHViM1FvTGxSdmIyeEpZMjl1WDNSdloyZHNaVjl2Y0dGeGRXVXBPbU5vWldOclpXUWdLeUF1Vkc5dmJFbGpiMjVmWDJsamIyNGdlMXhjYmlBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0WW5WMGRHOXVMV2R5WVhrdE1pazdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVVYjI5c1NXTnZibDkwZVhCbFgzSmhaR2x2T201dmRDZ3VWRzl2YkVsamIyNWZkRzluWjJ4bFgyOXdZWEYxWlNrNlkyaGxZMnRsWkNBcklDNVViMjlzU1dOdmJsOWZhV052YmpwaFkzUnBkbVVzWEZ4dUxtVjRZMkZzYVdSeVlYY2dMbFJ2YjJ4SlkyOXVYM1I1Y0dWZlkyaGxZMnRpYjNnNmJtOTBLQzVVYjI5c1NXTnZibDkwYjJkbmJHVmZiM0JoY1hWbEtUcGphR1ZqYTJWa0lDc2dMbFJ2YjJ4SlkyOXVYMTlwWTI5dU9tRmpkR2wyWlNCN1hGeHVJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMWlkWFIwYjI0dFozSmhlUzB6S1R0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xsUnZiMnhKWTI5dVgzUjVjR1ZmY21Ga2FXODZabTlqZFhNdGRtbHphV0pzWlNBcklDNVViMjlzU1dOdmJsOWZhV052Yml4Y1hHNHVaWGhqWVd4cFpISmhkeUF1Vkc5dmJFbGpiMjVmZEhsd1pWOWphR1ZqYTJKdmVEcG1iMk4xY3kxMmFYTnBZbXhsSUNzZ0xsUnZiMnhKWTI5dVgxOXBZMjl1SUh0Y1hHNGdJR0p2ZUMxemFHRmtiM2M2SURBZ01DQXdJREp3ZUNCMllYSW9MUzFtYjJOMWN5MW9hV2RvYkdsbmFIUXRZMjlzYjNJcE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNWZkSGx3WlY5eVlXUnBienBoWTNScGRtVWdLeUF1Vkc5dmJFbGpiMjVmWDJsamIyNHNYRnh1TG1WNFkyRnNhV1J5WVhjZ0xsUnZiMnhKWTI5dVgzUjVjR1ZmWTJobFkydGliM2c2WVdOMGFYWmxJQ3NnTGxSdmIyeEpZMjl1WDE5cFkyOXVJSHRjWEc0Z0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdKMWRIUnZiaTFuY21GNUxUTXBPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1Vkc5dmJFbGpiMjVmZEhsd1pWOW1iRzloZEdsdVp5QjdYRnh1SUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMGNtRnVjM0JoY21WdWREdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbFJ2YjJ4SlkyOXVYM1I1Y0dWZlpteHZZWFJwYm1jNmFHOTJaWElnZTF4Y2JpQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkSEpoYm5Od1lYSmxiblE3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1VWIyOXNTV052Ymw5MGVYQmxYMlpzYjJGMGFXNW5PbUZqZEdsMlpTQjdYRnh1SUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMGNtRnVjM0JoY21WdWREdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbFJ2YjJ4SlkyOXVYM1I1Y0dWZlpteHZZWFJwYm1jZ0xsUnZiMnhKWTI5dVgxOXBZMjl1SUh0Y1hHNGdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXSjFkSFJ2YmkxbmNtRjVMVEVwTzF4Y2JpQWdkMmxrZEdnNklESnlaVzA3WEZ4dUlDQm9aV2xuYUhRNklESmxiVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGxSdmIyeEpZMjl1WDNSNWNHVmZabXh2WVhScGJtY2dMbFJ2YjJ4SlkyOXVYMTlwWTI5dU9taHZkbVZ5SUh0Y1hHNGdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXSjFkSFJ2YmkxbmNtRjVMVElwTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVZHOXZiRWxqYjI1ZmRIbHdaVjltYkc5aGRHbHVaeUF1Vkc5dmJFbGpiMjVmWDJsamIyNDZZV04wYVhabElIdGNYRzRnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV0oxZEhSdmJpMW5jbUY1TFRNcE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNWZYMnRsZVdKcGJtUnBibWNnZTF4Y2JpQWdjRzl6YVhScGIyNDZJR0ZpYzI5c2RYUmxPMXhjYmlBZ1ltOTBkRzl0T2lBeWNIZzdYRnh1SUNCeWFXZG9kRG9nTTNCNE8xeGNiaUFnWm05dWRDMXphWHBsT2lBd0xqVmxiVHRjWEc0Z0lHTnZiRzl5T2lCMllYSW9MUzFyWlhsaWFXNWthVzVuTFdOdmJHOXlLVHRjWEc0Z0lHWnZiblF0Wm1GdGFXeDVPaUIyWVhJb0xTMTFhUzFtYjI1MEtUdGNYRzRnSUMxM1pXSnJhWFF0ZFhObGNpMXpaV3hsWTNRNklHNXZibVU3WEZ4dUlDQWdJQ0FnSUNBZ0lIVnpaWEl0YzJWc1pXTjBPaUJ1YjI1bE8xeGNibjFjWEc1QWJXVmthV0VnS0cxaGVDMTNhV1IwYURvZ05ESTFjSGdwSUh0Y1hHNGdJQzVsZUdOaGJHbGtjbUYzSUM1VGFHRndaU0F1Vkc5dmJFbGpiMjVmWDJsamIyNGdlMXhjYmlBZ0lDQjNhV1IwYURvZ01uSmxiVHRjWEc0Z0lDQWdhR1ZwWjJoME9pQXljbVZ0TzF4Y2JpQWdmVnhjYmlBZ0xtVjRZMkZzYVdSeVlYY2dMbE5vWVhCbElDNVViMjlzU1dOdmJsOWZhV052YmlCemRtY2dlMXhjYmlBZ0lDQm9aV2xuYUhRNklEQXVPR1Z0TzF4Y2JpQWdmVnhjYm4xY1hHNUFiV1ZrYVdFZ0tHMWhlQzEzYVdSMGFEb2dOell3Y0hncElIdGNYRzRnSUM1bGVHTmhiR2xrY21GM0lDNVViMjlzU1dOdmJpNVViMjlzU1dOdmJsOTBlWEJsWDJac2IyRjBhVzVuSUh0Y1hHNGdJQ0FnWkdsemNHeGhlVG9nYVc1c2FXNWxMV0pzYjJOck8xeGNiaUFnSUNCd2IzTnBkR2x2YmpvZ1lXSnpiMngxZEdVN1hGeHVJQ0FnSUhKcFoyaDBPaUF0T0hCNE8xeGNiaUFnSUNCdFlYSm5hVzR0YkdWbWREb2dNRHRjWEc0Z0lDQWdZbTl5WkdWeUxYSmhaR2wxY3pvZ01qQndlQ0F3SURBZ01qQndlRHRjWEc0Z0lDQWdlaTFwYm1SbGVEb2dNVHRjWEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdFluVjBkRzl1TFdkeVlYa3RNU2s3WEZ4dUlDQjlYRnh1SUNBdVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNHVWRzl2YkVsamIyNWZkSGx3WlY5bWJHOWhkR2x1Wnpwb2IzWmxjaUI3WEZ4dUlDQWdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXSjFkSFJ2YmkxbmNtRjVMVEVwTzF4Y2JpQWdmVnhjYmlBZ0xtVjRZMkZzYVdSeVlYY2dMbFJ2YjJ4SlkyOXVMbFJ2YjJ4SlkyOXVYM1I1Y0dWZlpteHZZWFJwYm1jNllXTjBhWFpsSUh0Y1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRZblYwZEc5dUxXZHlZWGt0TWlrN1hGeHVJQ0I5WEZ4dUlDQXVaWGhqWVd4cFpISmhkeUF1Vkc5dmJFbGpiMjR1Vkc5dmJFbGpiMjVmZEhsd1pWOW1iRzloZEdsdVp5QXVWRzl2YkVsamIyNWZYMmxqYjI0Z2UxeGNiaUFnSUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUJwYm1obGNtbDBPMXhjYmlBZ2ZWeGNiaUFnTG1WNFkyRnNhV1J5WVhjZ0xsUnZiMnhKWTI5dUxsUnZiMnhKWTI5dVgzUjVjR1ZmWm14dllYUnBibWNnYzNabklIdGNYRzRnSUNBZ2NHOXphWFJwYjI0NklITjBZWFJwWXp0Y1hHNGdJSDFjWEc0Z0lDNWxlR05oYkdsa2NtRjNJQzVVYjI5c1NXTnZiaTVVYjI5c1NXTnZibDlmYkdsaWNtRnllU0I3WEZ4dUlDQWdJSFJ2Y0RvZ01UQXdjSGc3WEZ4dUlDQjlYRnh1SUNBdVpYaGpZV3hwWkhKaGR5QXVWRzl2YkVsamIyNHVWRzl2YkVsamIyNWZYMnh2WTJzZ2UxeGNiaUFnSUNCdFlYSm5hVzR0YVc1c2FXNWxMV1Z1WkRvZ01EdGNYRzRnSUNBZ2RHOXdPaUEyTUhCNE8xeGNiaUFnZlZ4Y2JpQWdMbVY0WTJGc2FXUnlZWGNnTGxSdmIyeEpZMjl1TGxSdmIyeEpZMjl1WDE5d1pXNU5iMlJsSUh0Y1hHNGdJQ0FnYldGeVoybHVMV2x1YkdsdVpTMWxibVE2SURBN1hGeHVJQ0FnSUhSdmNEb2dNVFF3Y0hnN1hGeHVJQ0I5WEZ4dWZWeGNianB5YjI5MFcyUnBjajFzZEhKZElDNWxlR05oYkdsa2NtRjNJQzUxYm14dlkydGxaQzFwWTI5dUlIdGNYRzRnSUd4bFpuUTZJREp3ZUR0Y1hHNTlYRnh1T25KdmIzUmJaR2x5UFhKMGJGMGdMbVY0WTJGc2FXUnlZWGNnTG5WdWJHOWphMlZrTFdsamIyNGdlMXhjYmlBZ2NtbG5hSFE2SURKd2VEdGNYRzU5WENJc0lGd2lYQ0lzZTF3aWRtVnljMmx2Ymx3aU9qTXNYQ0p6YjNWeVkyVnpYQ0k2VzF3aWQyVmljR0ZqYXpvdkx5NHZMaTR2TGk0dlkzTnpMM1poY21saFlteGxjeTV0YjJSMWJHVXVjMk56YzF3aUxGd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlVYjI5c1NXTnZiaTV6WTNOelhDSmRMRndpYm1GdFpYTmNJanBiWFN4Y0ltMWhjSEJwYm1kelhDSTZYQ0pCUVZWQk8wVkJRMFVzTWtOQlFVRTdRVU5VUmpzN1FVRkZSVHRGUVVORkxHOUNRVUZCTzBWQlEwRXNiVUpCUVVFN1JVRkRRU3hyUWtGQlFUdEZRVU5CTEdWQlFVRTdSVUZEUVN4M1EwRkJRVHRGUVVOQkxIbENRVUZCTzFWQlFVRXNhVUpCUVVFN1FVRkRTanRCUVVWRk8wVkJRMFVzTmtKQlFVRTdRVUZCU2p0QlFVTkpPMFZCUTBVc1YwRkJRVHRGUVVOQkxGbEJRVUU3UVVGRFRqdEJRVXRKT3p0RlFVTkZMSE5EUVVGQk8wRkJSazQ3UVVGSlRUczdSVUZEUlN4elEwRkJRVHRCUVVSU08wRkJSMDA3TzBWQlEwVXNjME5CUVVFN1FVRkJVanRCUVV0Rk8wVkJRMFVzWVVGQlFUdEZRVU5CTEdOQlFVRTdSVUZEUVN3MlFrRkJRVHRGUVVWQkxHRkJRVUU3UlVGRFFTeDFRa0ZCUVR0RlFVTkJMRzFDUVVGQk8wVkJSVUVzYzBOQlFVRTdRVUZNU2p0QlFVOUpPMFZCUTBVc2MwSkJRVUU3UVVGTVRqdEJRVkZKTzBWQlEwVXNhMEpCUVVFN1JVRkRRU3hYUVVGQk8wVkJRMEVzTkVKQlFVRTdSVUZEUVN3MlFrRkJRVHRCUVU1T08wRkJWVVU3UlVGRFJTeGhRVUZCTzBWQlEwRXNiVUpCUVVFN1JVRkRRU3cyUWtGQlFUdEZRVU5CTERKQ1FVRkJPMFZCUTBFc1pVRkJRVHRGUVVOQkxIVkNRVUZCTzBGQlVrbzdRVUZWU1R0RlFVTkZMR3RDUVVGQk8wRkJVazQ3UVVGWlJUdEZRVU5GTEZkQlFVRTdSVUZEUVN4WlFVRkJPMFZCUTBFc1owSkJRVUU3UVVGV1NqdEJRV0ZGT3pzN1JVRkhSU3hWUVVGQk8wVkJRMEVzV1VGQlFUdEZRVU5CTEZOQlFVRTdSVUZEUVN4clFrRkJRVHRCUVZoS08wRkJZVWs3T3p0RlFVTkZMR3RFUVVGQk8wRkJWRTQ3UVVGWlNUczdPMFZCUTBVc2MwTkJRVUU3UVVGU1RqdEJRVlZOT3pzN1JVRkRSU3h6UTBGQlFUdEJRVTVTTzBGQlZVazdPenRGUVVORkxITkRRVUZCTzBGQlRrNDdRVUZUU1RzN08wVkJRMFVzYzBOQlFVRTdRVUZNVGp0QlFWRkpPenM3UlVGRFJTeHRRa0ZCUVR0QlFVcE9PMEZCVDBrN096dEZRVU5GTEd0Q1FVRkJPMEZCU0U0N1FVRlBSVHM3UlVGRlJTeHJRa0ZCUVR0RlFVTkJMRlZCUVVFN1JVRkRRU3h2UWtGQlFUdEJRVXhLTzBGQlQwazdPMFZCUTBVc2MwTkJRVUU3UVVGS1RqdEJRVXROT3p0RlFVTkZMSE5EUVVGQk8wRkJSbEk3UVVGTlNUczdSVUZEUlN4clJFRkJRVHRCUVVoT08wRkJUVWs3TzBWQlEwVXNjME5CUVVFN1FVRklUanRCUVU5Rk8wVkJRMFVzTmtKQlFVRTdRVUZNU2p0QlFVOUpPMFZCUTBVc05rSkJRVUU3UVVGTVRqdEJRVkZKTzBWQlEwVXNOa0pCUVVFN1FVRk9UanRCUVZOSk8wVkJRMFVzYzBOQlFVRTdSVUZSUVN4WFFVRkJPMFZCUTBFc1YwRkJRVHRCUVdST08wRkJUVTA3UlVGRFJTeHpRMEZCUVR0QlFVcFNPMEZCVFUwN1JVRkRSU3h6UTBGQlFUdEJRVXBTTzBGQldVVTdSVUZEUlN4clFrRkJRVHRGUVVOQkxGZEJRVUU3UlVGRFFTeFZRVUZCTzBWQlEwRXNaMEpCUVVFN1JVRkRRU3c0UWtGQlFUdEZRVU5CTERKQ1FVRkJPMFZCUTBFc2VVSkJRVUU3VlVGQlFTeHBRa0ZCUVR0QlFWWktPMEZCWTBVN1JVRkRSVHRKUVVORkxGZEJRVUU3U1VGRFFTeFpRVUZCTzBWQldrbzdSVUZqU1R0SlFVTkZMR0ZCUVVFN1JVRmFUanRCUVVOR08wRkJhMEpGTzBWQlEwVTdTVUZEUlN4eFFrRkJRVHRKUVVOQkxHdENRVUZCTzBsQlEwRXNWMEZCUVR0SlFVVkJMR05CUVVFN1NVRkRRU3cwUWtGQlFUdEpRVU5CTEZWQlFVRTdTVUZGUVN4elEwRkJRVHRGUVd4Q1NqdEZRVzlDU1R0SlFVTkZMSE5EUVVGQk8wVkJiRUpPTzBWQmNVSkpPMGxCUTBVc2MwTkJRVUU3UlVGdVFrNDdSVUZ6UWtrN1NVRkRSU3h6UWtGQlFUdEZRWEJDVGp0RlFYVkNTVHRKUVVORkxHZENRVUZCTzBWQmNrSk9PMFZCZDBKRk8wbEJRMFVzVlVGQlFUdEZRWFJDU2p0RlFYbENSVHRKUVVORkxHOUNRVUZCTzBsQlEwRXNVMEZCUVR0RlFYWkNTanRGUVhsQ1JUdEpRVU5GTEc5Q1FVRkJPMGxCUTBFc1ZVRkJRVHRGUVhaQ1NqdEJRVU5HTzBGQk1rSkpPMFZCUTBVc1UwRkJRVHRCUVhwQ1RqdEJRVFJDU1R0RlFVTkZMRlZCUVVFN1FVRXhRazVjSWl4Y0luTnZkWEpqWlhORGIyNTBaVzUwWENJNlcxd2lRR2x0Y0c5eWRDQmNYRndpYjNCbGJpMWpiMnh2Y2k5dmNHVnVMV052Ykc5eUxuTmpjM05jWEZ3aU8xeGNibHhjYmtCdGFYaHBiaUJwYzAxdlltbHNaU2dwSUh0Y1hHNGdJRUJoZEMxeWIyOTBJQzVsZUdOaGJHbGtjbUYzTFMxdGIySnBiR1VqZXlaOUlIdGNYRzRnSUNBZ1FHTnZiblJsYm5RN1hGeHVJQ0I5WEZ4dWZWeGNibHhjYmlSMGFHVnRaUzFtYVd4MFpYSTZJRnhjWENKcGJuWmxjblFvT1RNbEtTQm9kV1V0Y205MFlYUmxLREU0TUdSbFp5bGNYRndpTzF4Y2JseGNianBsZUhCdmNuUWdlMXhjYmlBZ2RHaGxiV1ZHYVd4MFpYSTZJSFZ1Y1hWdmRHVW9KSFJvWlcxbExXWnBiSFJsY2lrN1hGeHVmVnhjYmx3aUxGd2lRR2x0Y0c5eWRDQmNYRndpYjNCbGJpMWpiMnh2Y2k5dmNHVnVMV052Ykc5eUxuTmpjM05jWEZ3aU8xeGNia0JwYlhCdmNuUWdYRnhjSWk0dUwyTnpjeTkyWVhKcFlXSnNaWE11Ylc5a2RXeGxYRnhjSWp0Y1hHNWNYRzR1WlhoallXeHBaSEpoZHlCN1hGeHVJQ0F1Vkc5dmJFbGpiMjRnZTF4Y2JpQWdJQ0JrYVhOd2JHRjVPaUJwYm14cGJtVXRabXhsZUR0Y1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4Y2JpQWdJQ0JqZFhKemIzSTZJSEJ2YVc1MFpYSTdYRnh1SUNBZ0lDMTNaV0pyYVhRdGRHRndMV2hwWjJoc2FXZG9kQzFqYjJ4dmNqb2dkSEpoYm5Od1lYSmxiblE3WEZ4dUlDQWdJSFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXhjYmlBZ2ZWeGNibHhjYmlBZ0xsUnZiMnhKWTI5dUxTMXdiR0ZwYmlCN1hGeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1ME8xeGNiaUFnSUNBdVZHOXZiRWxqYjI1ZlgybGpiMjRnZTF4Y2JpQWdJQ0FnSUhkcFpIUm9PaUF5Y21WdE8xeGNiaUFnSUNBZ0lHaGxhV2RvZERvZ01uSmxiVHRjWEc0Z0lDQWdmVnhjYmlBZ2ZWeGNibHhjYmlBZ0xsUnZiMnhKWTI5dVgzUjVjR1ZmY21Ga2FXOHNYRnh1SUNBdVZHOXZiRWxqYjI1ZmRIbHdaVjlqYUdWamEySnZlQ0I3WEZ4dUlDQWdJQ1lnS3lBdVZHOXZiRWxqYjI1ZlgybGpiMjRnZTF4Y2JpQWdJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV0oxZEhSdmJpMW5jbUY1TFRFcE8xeGNibHhjYmlBZ0lDQWdJQ1k2YUc5MlpYSWdlMXhjYmlBZ0lDQWdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRZblYwZEc5dUxXZHlZWGt0TWlrN1hGeHVJQ0FnSUNBZ2ZWeGNiaUFnSUNBZ0lDWTZZV04wYVhabElIdGNYRzRnSUNBZ0lDQWdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXSjFkSFJ2YmkxbmNtRjVMVE1wTzF4Y2JpQWdJQ0FnSUgxY1hHNGdJQ0FnZlZ4Y2JpQWdmVnhjYmx4Y2JpQWdMbFJ2YjJ4SlkyOXVYMTlwWTI5dUlIdGNYRzRnSUNBZ2QybGtkR2c2SURJdU5YSmxiVHRjWEc0Z0lDQWdhR1ZwWjJoME9pQXlMalZ5WlcwN1hGeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXBZMjl1TFdacGJHd3RZMjlzYjNJcE8xeGNibHhjYmlBZ0lDQmthWE53YkdGNU9pQm1iR1Y0TzF4Y2JpQWdJQ0JxZFhOMGFXWjVMV052Ym5SbGJuUTZJR05sYm5SbGNqdGNYRzRnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzVjWEc0Z0lDQWdZbTl5WkdWeUxYSmhaR2wxY3pvZ2RtRnlLQzB0WW05eVpHVnlMWEpoWkdsMWN5MXNaeWs3WEZ4dVhGeHVJQ0FnSUNZZ0t5QXVWRzl2YkVsamIyNWZYMnhoWW1Wc0lIdGNYRzRnSUNBZ0lDQnRZWEpuYVc0dGFXNXNhVzVsTFhOMFlYSjBPaUF3TzF4Y2JpQWdJQ0I5WEZ4dVhGeHVJQ0FnSUhOMlp5QjdYRnh1SUNBZ0lDQWdjRzl6YVhScGIyNDZJSEpsYkdGMGFYWmxPMXhjYmlBZ0lDQWdJR2hsYVdkb2REb2dNV1Z0TzF4Y2JpQWdJQ0FnSUdacGJHdzZJSFpoY2lndExXbGpiMjR0Wm1sc2JDMWpiMnh2Y2lrN1hGeHVJQ0FnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV2xqYjI0dFptbHNiQzFqYjJ4dmNpazdYRnh1SUNBZ0lIMWNYRzRnSUgxY1hHNWNYRzRnSUM1VWIyOXNTV052Ymw5ZmJHRmlaV3dnZTF4Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeGNiaUFnSUNCaGJHbG5iaTFwZEdWdGN6b2dZMlZ1ZEdWeU8xeGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhV052YmkxbWFXeHNMV052Ykc5eUtUdGNYRzRnSUNBZ1ptOXVkQzFtWVcxcGJIazZJSFpoY2lndExYVnBMV1p2Ym5RcE8xeGNiaUFnSUNCdFlYSm5hVzQ2SURBZ01DNDRaVzA3WEZ4dUlDQWdJSFJsZUhRdGIzWmxjbVpzYjNjNklHVnNiR2x3YzJsek8xeGNibHhjYmlBZ0lDQXVVM0JwYm01bGNpQjdYRnh1SUNBZ0lDQWdiV0Z5WjJsdUxXeGxablE2SURBdU5tVnRPMXhjYmlBZ0lDQjlYRnh1SUNCOVhGeHVYRnh1SUNBdVZHOXZiRWxqYjI1ZmMybDZaVjl6YldGc2JDQXVWRzl2YkVsamIyNWZYMmxqYjI0Z2UxeGNiaUFnSUNCM2FXUjBhRG9nTW5KbGJUdGNYRzRnSUNBZ2FHVnBaMmgwT2lBeWNtVnRPMXhjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJREF1T0dWdE8xeGNiaUFnZlZ4Y2JseGNiaUFnTG1WNFkyRnNhV1J5WVhjZ0xsUnZiMnhKWTI5dVgzUjVjR1ZmWW5WMGRHOXVMRnhjYmlBZ0xrMXZaR0ZzSUM1VWIyOXNTV052Ymw5MGVYQmxYMkoxZEhSdmJpeGNYRzRnSUM1VWIyOXNTV052Ymw5MGVYQmxYMkoxZEhSdmJpQjdYRnh1SUNBZ0lIQmhaR1JwYm1jNklEQTdYRnh1SUNBZ0lHSnZjbVJsY2pvZ2JtOXVaVHRjWEc0Z0lDQWdiV0Z5WjJsdU9pQXdPMXhjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJR2x1YUdWeWFYUTdYRnh1WEZ4dUlDQWdJQ1k2Wm05amRYTXRkbWx6YVdKc1pTQjdYRnh1SUNBZ0lDQWdZbTk0TFhOb1lXUnZkem9nTUNBd0lEQWdNbkI0SUhaaGNpZ3RMV1p2WTNWekxXaHBaMmhzYVdkb2RDMWpiMnh2Y2lrN1hGeHVJQ0FnSUgxY1hHNWNYRzRnSUNBZ0ppNVViMjlzU1dOdmJpMHRjMlZzWldOMFpXUWdlMXhjYmlBZ0lDQWdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXSjFkSFJ2YmkxbmNtRjVMVElwTzF4Y2JseGNiaUFnSUNBZ0lDWTZZV04wYVhabElIdGNYRzRnSUNBZ0lDQWdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXSjFkSFJ2YmkxbmNtRjVMVE1wTzF4Y2JpQWdJQ0FnSUgxY1hHNGdJQ0FnZlZ4Y2JseGNiaUFnSUNBbU9taHZkbVZ5SUh0Y1hHNGdJQ0FnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFpZFhSMGIyNHRaM0poZVMweUtUdGNYRzRnSUNBZ2ZWeGNibHhjYmlBZ0lDQW1PbUZqZEdsMlpTQjdYRnh1SUNBZ0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdFluVjBkRzl1TFdkeVlYa3RNeWs3WEZ4dUlDQWdJSDFjWEc1Y1hHNGdJQ0FnSmkwdGMyaHZkeUI3WEZ4dUlDQWdJQ0FnZG1semFXSnBiR2wwZVRvZ2RtbHphV0pzWlR0Y1hHNGdJQ0FnZlZ4Y2JseGNiaUFnSUNBbUxTMW9hV1JsSUh0Y1hHNGdJQ0FnSUNCMmFYTnBZbWxzYVhSNU9pQm9hV1JrWlc0N1hGeHVJQ0FnSUgxY1hHNGdJSDFjWEc1Y1hHNGdJQzVVYjI5c1NXTnZibDkwZVhCbFgzSmhaR2x2TEZ4Y2JpQWdMbFJ2YjJ4SlkyOXVYM1I1Y0dWZlkyaGxZMnRpYjNnZ2UxeGNiaUFnSUNCd2IzTnBkR2x2YmpvZ1lXSnpiMngxZEdVN1hGeHVJQ0FnSUc5d1lXTnBkSGs2SURBN1hGeHVJQ0FnSUhCdmFXNTBaWEl0WlhabGJuUnpPaUJ1YjI1bE8xeGNibHhjYmlBZ0lDQW1PbTV2ZENndVZHOXZiRWxqYjI1ZmRHOW5aMnhsWDI5d1lYRjFaU2s2WTJobFkydGxaQ0FySUM1VWIyOXNTV052Ymw5ZmFXTnZiaUI3WEZ4dUlDQWdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRZblYwZEc5dUxXZHlZWGt0TWlrN1hGeHVJQ0FnSUNBZ0pqcGhZM1JwZG1VZ2UxeGNiaUFnSUNBZ0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdFluVjBkRzl1TFdkeVlYa3RNeWs3WEZ4dUlDQWdJQ0FnZlZ4Y2JpQWdJQ0I5WEZ4dVhGeHVJQ0FnSUNZNlptOWpkWE10ZG1semFXSnNaU0FySUM1VWIyOXNTV052Ymw5ZmFXTnZiaUI3WEZ4dUlDQWdJQ0FnWW05NExYTm9ZV1J2ZHpvZ01DQXdJREFnTW5CNElIWmhjaWd0TFdadlkzVnpMV2hwWjJoc2FXZG9kQzFqYjJ4dmNpazdYRnh1SUNBZ0lIMWNYRzVjWEc0Z0lDQWdKanBoWTNScGRtVWdLeUF1Vkc5dmJFbGpiMjVmWDJsamIyNGdlMXhjYmlBZ0lDQWdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXSjFkSFJ2YmkxbmNtRjVMVE1wTzF4Y2JpQWdJQ0I5WEZ4dUlDQjlYRnh1WEZ4dUlDQXVWRzl2YkVsamIyNWZkSGx3WlY5bWJHOWhkR2x1WnlCN1hGeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1ME8xeGNibHhjYmlBZ0lDQW1PbWh2ZG1WeUlIdGNYRzRnSUNBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjBjbUZ1YzNCaGNtVnVkRHRjWEc0Z0lDQWdmVnhjYmx4Y2JpQWdJQ0FtT21GamRHbDJaU0I3WEZ4dUlDQWdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZEhKaGJuTndZWEpsYm5RN1hGeHVJQ0FnSUgxY1hHNWNYRzRnSUNBZ0xsUnZiMnhKWTI5dVgxOXBZMjl1SUh0Y1hHNGdJQ0FnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFpZFhSMGIyNHRaM0poZVMweEtUdGNYRzRnSUNBZ0lDQW1PbWh2ZG1WeUlIdGNYRzRnSUNBZ0lDQWdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXSjFkSFJ2YmkxbmNtRjVMVElwTzF4Y2JpQWdJQ0FnSUgxY1hHNGdJQ0FnSUNBbU9tRmpkR2wyWlNCN1hGeHVJQ0FnSUNBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxaWRYUjBiMjR0WjNKaGVTMHpLVHRjWEc0Z0lDQWdJQ0I5WEZ4dVhGeHVJQ0FnSUNBZ2QybGtkR2c2SURKeVpXMDdYRnh1SUNBZ0lDQWdhR1ZwWjJoME9pQXlaVzA3WEZ4dUlDQWdJSDFjWEc0Z0lIMWNYRzVjWEc0Z0lDNVViMjlzU1dOdmJsOWZhMlY1WW1sdVpHbHVaeUI3WEZ4dUlDQWdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjWEc0Z0lDQWdZbTkwZEc5dE9pQXljSGc3WEZ4dUlDQWdJSEpwWjJoME9pQXpjSGc3WEZ4dUlDQWdJR1p2Ym5RdGMybDZaVG9nTUM0MVpXMDdYRnh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFyWlhsaWFXNWthVzVuTFdOdmJHOXlLVHRjWEc0Z0lDQWdabTl1ZEMxbVlXMXBiSGs2SUhaaGNpZ3RMWFZwTFdadmJuUXBPMXhjYmlBZ0lDQjFjMlZ5TFhObGJHVmpkRG9nYm05dVpUdGNYRzRnSUgxY1hHNWNYRzRnSUM4dklITm9jbWx1YXlCemFHRndaU0JwWTI5dWN5QnZiaUJ6YldGc2JDQjJhV1YzY0c5eWRITWdkRzhnYldGclpTQjBhR1Z0SUdacGRGeGNiaUFnUUcxbFpHbGhJQ2h0WVhndGQybGtkR2c2SURReU5YQjRLU0I3WEZ4dUlDQWdJQzVUYUdGd1pTQXVWRzl2YkVsamIyNWZYMmxqYjI0Z2UxeGNiaUFnSUNBZ0lIZHBaSFJvT2lBeWNtVnRPMXhjYmlBZ0lDQWdJR2hsYVdkb2REb2dNbkpsYlR0Y1hHNWNYRzRnSUNBZ0lDQnpkbWNnZTF4Y2JpQWdJQ0FnSUNBZ2FHVnBaMmgwT2lBd0xqaGxiVHRjWEc0Z0lDQWdJQ0I5WEZ4dUlDQWdJSDFjWEc0Z0lIMWNYRzVjWEc0Z0lDOHZJRzF2ZG1VZ2RHaGxJR3h2WTJzZ1luVjBkRzl1SUc5MWRDQnZaaUIwYUdVZ2QyRjVJRzl1SUhOdFlXeHNJSFpwWlhkd2IzSjBjMXhjYmlBZ0x5OGdhWFFnWW1WbmFXNXpJSFJ2SUdOdmJHeHBaR1VnZDJsMGFDQjBhR1VnUjJsMFNIVmlJR2xqYjI0Z1ltVm1iM0psSUhkbElITjNhWFJqYUNCMGJ5QnRiMkpwYkdVZ2JXOWtaVnhjYmlBZ1FHMWxaR2xoSUNodFlYZ3RkMmxrZEdnNklEYzJNSEI0S1NCN1hGeHVJQ0FnSUM1VWIyOXNTV052Ymk1VWIyOXNTV052Ymw5MGVYQmxYMlpzYjJGMGFXNW5JSHRjWEc0Z0lDQWdJQ0JrYVhOd2JHRjVPaUJwYm14cGJtVXRZbXh2WTJzN1hGeHVJQ0FnSUNBZ2NHOXphWFJwYjI0NklHRmljMjlzZFhSbE8xeGNiaUFnSUNBZ0lISnBaMmgwT2lBdE9IQjRPMXhjYmx4Y2JpQWdJQ0FnSUcxaGNtZHBiaTFzWldaME9pQXdPMXhjYmlBZ0lDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklESXdjSGdnTUNBd0lESXdjSGc3WEZ4dUlDQWdJQ0FnZWkxcGJtUmxlRG9nTVR0Y1hHNWNYRzRnSUNBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxaWRYUjBiMjR0WjNKaGVTMHhLVHRjWEc1Y1hHNGdJQ0FnSUNBbU9taHZkbVZ5SUh0Y1hHNGdJQ0FnSUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdKMWRIUnZiaTFuY21GNUxURXBPMXhjYmlBZ0lDQWdJSDFjWEc1Y1hHNGdJQ0FnSUNBbU9tRmpkR2wyWlNCN1hGeHVJQ0FnSUNBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxaWRYUjBiMjR0WjNKaGVTMHlLVHRjWEc0Z0lDQWdJQ0I5WEZ4dVhGeHVJQ0FnSUNBZ0xsUnZiMnhKWTI5dVgxOXBZMjl1SUh0Y1hHNGdJQ0FnSUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SUdsdWFHVnlhWFE3WEZ4dUlDQWdJQ0FnZlZ4Y2JseGNiaUFnSUNBZ0lITjJaeUI3WEZ4dUlDQWdJQ0FnSUNCd2IzTnBkR2x2YmpvZ2MzUmhkR2xqTzF4Y2JpQWdJQ0FnSUgxY1hHNGdJQ0FnZlZ4Y2JpQWdJQ0F1Vkc5dmJFbGpiMjR1Vkc5dmJFbGpiMjVmWDJ4cFluSmhjbmtnZTF4Y2JpQWdJQ0FnSUhSdmNEb2dNVEF3Y0hnN1hGeHVJQ0FnSUgxY1hHNWNYRzRnSUNBZ0xsUnZiMnhKWTI5dUxsUnZiMnhKWTI5dVgxOXNiMk5ySUh0Y1hHNGdJQ0FnSUNCdFlYSm5hVzR0YVc1c2FXNWxMV1Z1WkRvZ01EdGNYRzRnSUNBZ0lDQjBiM0E2SURZd2NIZzdYRnh1SUNBZ0lIMWNYRzRnSUNBZ0xsUnZiMnhKWTI5dUxsUnZiMnhKWTI5dVgxOXdaVzVOYjJSbElIdGNYRzRnSUNBZ0lDQnRZWEpuYVc0dGFXNXNhVzVsTFdWdVpEb2dNRHRjWEc0Z0lDQWdJQ0IwYjNBNklERTBNSEI0TzF4Y2JpQWdJQ0I5WEZ4dUlDQjlYRnh1WEZ4dUlDQXVkVzVzYjJOclpXUXRhV052YmlCN1hGeHVJQ0FnSURweWIyOTBXMlJwY2oxY1hGd2liSFJ5WEZ4Y0lsMGdKaUI3WEZ4dUlDQWdJQ0FnYkdWbWREb2dNbkI0TzF4Y2JpQWdJQ0I5WEZ4dVhGeHVJQ0FnSURweWIyOTBXMlJwY2oxY1hGd2ljblJzWEZ4Y0lsMGdKaUI3WEZ4dUlDQWdJQ0FnY21sbmFIUTZJREp3ZUR0Y1hHNGdJQ0FnZlZ4Y2JpQWdmVnhjYm4xY1hHNWNJbDBzWENKemIzVnlZMlZTYjI5MFhDSTZYQ0pjSW4xZEtUdGNiaTh2SUVWNGNHOXlkSE5jYm1WNGNHOXlkQ0JrWldaaGRXeDBJRjlmWDBOVFUxOU1UMEZFUlZKZlJWaFFUMUpVWDE5Zk8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvVG9vbEljb24uc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Ub29sYmFyLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Ub29sYmFyLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkZWZhdWx0XFxcIjogKCkgPT4gKF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vLyBJbXBvcnRzXFxuXFxuXFxudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKSgoX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0KCkpKTtcXG4vLyBNb2R1bGVcXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFxcXCIuZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGFpbmVyIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl90eXBlX3JhZGlvICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSxcXFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250YWluZXIgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgLlRvb2xJY29uX3R5cGVfY2hlY2tib3ggKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXFxcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGFpbmVyIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl90eXBlX3JhZGlvOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb24sXFxcXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGFpbmVyIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl90eXBlX2NoZWNrYm94OmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb24ge1xcXFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcXFxcbiAgLS1pY29uLWZpbGwtY29sb3I6ICNmZmZmZmY7XFxcXG4gIC0ta2V5YmluZGluZy1jb2xvcjogI2ZmZmZmZjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250YWluZXIgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgLlRvb2xJY29uX3R5cGVfcmFkaW86Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUsXFxcXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGFpbmVyIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl90eXBlX2NoZWNrYm94OmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXFxcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXIpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lciAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcXFxuICBib3R0b206IDRweDtcXFxcbiAgcmlnaHQ6IDRweDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250YWluZXIgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmc6bm90KC5pcy1tb2JpbGUpIC5Ub29sSWNvbl9faWNvbiB7XFxcXG4gIHBhZGRpbmc6IDFweDtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taXNsYW5kLWJnLWNvbG9yKTtcXFxcbiAgYm94LXNoYWRvdzogMXB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XFxcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXFxcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzIGVhc2UsIHRyYW5zZm9ybSAwLjVzIGVhc2U7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGFpbmVyIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl90eXBlX3JhZGlvOmZvY3VzLXdpdGhpbiArIC5Ub29sSWNvbl9faWNvbixcXFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250YWluZXIgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgLlRvb2xJY29uX3R5cGVfY2hlY2tib3g6Zm9jdXMtd2l0aGluICsgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGFpbmVyIC5Ub29sSWNvbl9faGlkZGVuIHtcXFxcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcXFxuICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lciAuVG9vbEljb24uVG9vbEljb25fX2xvY2sge1xcXFxuICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250YWluZXIgLlRvb2xJY29uLlRvb2xJY29uX19sb2NrLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcge1xcXFxuICBtYXJnaW4tbGVmdDogMC4xcmVtO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lciAuVG9vbEljb25fX2xpYnJhcnkge1xcXFxuICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1zcGFjZS1mYWN0b3IpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lci56ZW4tbW9kZSAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2ljb24ge1xcXFxuICBib3gtc2hhZG93OiBub25lO1xcXFxuICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGFpbmVyLnplbi1tb2RlIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl90eXBlX2NoZWNrYm94Om5vdCg6Y2hlY2tlZCk6bm90KDpob3Zlcik6bm90KDphY3RpdmUpICsgLlRvb2xJY29uX19pY29uIHN2ZyB7XFxcXG4gIGZpbGw6ICNhZGI1YmQ7XFxcXG4gIGNvbG9yOiAjYWRiNWJkO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyIHtcXFxcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1sZyk7XFxcXG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMDEpLCAxcHggMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyIC5Ub29sSWNvbjpob3ZlciB7XFxcXG4gIC0taWNvbi1maWxsLWNvbG9yOiB2YXIoXFxcXG4gICAgLS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0LW9mZnNldCxcXFxcbiAgICB2YXIoLS1jb2xvci1wcmltYXJ5KVxcXFxuICApO1xcXFxuICAtLWtleWJpbmRpbmctY29sb3I6IHZhcihcXFxcbiAgICAtLWNvbG9yLXByaW1hcnktY29udHJhc3Qtb2Zmc2V0LFxcXFxuICAgIHZhcigtLWNvbG9yLXByaW1hcnkpXFxcXG4gICk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXIgLlRvb2xJY29uOmFjdGl2ZSB7XFxcXG4gIC0taWNvbi1maWxsLWNvbG9yOiAjMjEyNTI5O1xcXFxuICAtLWtleWJpbmRpbmctY29sb3I6ICMyMTI1Mjk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXIgLlRvb2xJY29uIC5Ub29sSWNvbl9faWNvbiB7XFxcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcXFxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWxnKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhciAuVG9vbEljb24gLlRvb2xJY29uX3R5cGVfcmFkaW8gKyAuVG9vbEljb25fX2ljb246YWN0aXZlLFxcXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyIC5Ub29sSWNvbiAuVG9vbEljb25fdHlwZV9jaGVja2JveCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcXFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhciAuVG9vbEljb24gLlRvb2xJY29uX3R5cGVfcmFkaW86Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbixcXFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhciAuVG9vbEljb24gLlRvb2xJY29uX3R5cGVfY2hlY2tib3g6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbiB7XFxcXG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcXFxuICAtLWljb24tZmlsbC1jb2xvcjogI2ZmZmZmZjtcXFxcbiAgLS1rZXliaW5kaW5nLWNvbG9yOiAjZmZmZmZmO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyIC5Ub29sSWNvbiAuVG9vbEljb25fdHlwZV9yYWRpbzpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSxcXFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhciAuVG9vbEljb24gLlRvb2xJY29uX3R5cGVfY2hlY2tib3g6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcXFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWRhcmtlcik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXIgLlRvb2xJY29uIC5Ub29sSWNvbl9fa2V5YmluZGluZyB7XFxcXG4gIGJvdHRvbTogNHB4O1xcXFxuICByaWdodDogNHB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLnplbi1tb2RlIC5Ub29sSWNvbl9fa2V5YmluZGluZyxcXFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci56ZW4tbW9kZSAuSGludFZpZXdlciB7XFxcXG4gIGRpc3BsYXk6IG5vbmU7XFxcXG59XFxcXG4uZXhjYWxpZHJhdy50aGVtZS0tZGFyayAuQXBwLXRvb2xiYXIgLlRvb2xJY29uOmFjdGl2ZSB7XFxcXG4gIC0taWNvbi1maWxsLWNvbG9yOiAjZGVlMmU2O1xcXFxuICAtLWtleWJpbmRpbmctY29sb3I6ICNkZWUyZTY7XFxcXG59XFxcIiwgXFxcIlxcXCIse1xcXCJ2ZXJzaW9uXFxcIjozLFxcXCJzb3VyY2VzXFxcIjpbXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvVG9vbGJhci5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQUtJOztFQUNFLHNDQUFBO0FBSE47QUFLSTs7RUFDRSxnQ0FBQTtFQUNBLDBCQUFBO0VBQ0EsMkJBQUE7QUFGTjtBQUlJOztFQUNFLHVDQUFBO0FBRE47QUFLRTtFQUNFLFdBQUE7RUFDQSxVQUFBO0FBSEo7QUFhUTtFQUNFLFlBQUE7RUFDQSx3Q0FBQTtFQUNBLCtDQUFBO0VBQ0Esa0JBQUE7RUFDQSxxREFBQTtBQVhWO0FBaUJROztFQUVFLGtEQUFBO0FBZlY7QUFvQkk7RUFDRSwyQkFBQTtFQUNBLHdDQUFBO0VBQ0EsK0JBQUE7QUFsQk47QUFxQkk7RUFDRSxzQ0FBQTtBQW5CTjtBQW9CTTtFQUNFLG1CQUFBO0FBbEJSO0FBc0JJO0VBQ0Usd0NBQUE7QUFwQk47QUF5QlE7RUFDRSxnQkFBQTtFQUNBLHFCQUFBO0FBdkJWO0FBMkJZO0VBQ0UsYUN0Q0Y7RUR1Q0UsY0N2Q0Y7QURjWjtBQWlDRTtFQUNFLHNDQUFBO0VBQ0EsMEVBQUE7QUEvQko7QUFrQ007RUFDRTs7O0dBQUE7RUFJQTs7O0dBQUE7QUE3QlI7QUFrQ007RUFDRSwwQkFBQTtFQUNBLDJCQUFBO0FBaENSO0FBbUNNO0VBQ0UsdUJBQUE7RUFDQSxzQ0FBQTtBQWpDUjtBQW5FSTs7RUFDRSxzQ0FBQTtBQXNFTjtBQXBFSTs7RUFDRSxnQ0FBQTtFQUNBLDBCQUFBO0VBQ0EsMkJBQUE7QUF1RU47QUFyRUk7O0VBQ0UsdUNBQUE7QUF3RU47QUFwRUU7RUFDRSxXQUFBO0VBQ0EsVUFBQTtBQXNFSjtBQXNCTTs7RUFFRSxhQUFBO0FBcEJSO0FBeUJFO0VBQ0UsMEJBQUE7RUFDQSwyQkFBQTtBQXZCSlxcXCIsXFxcInNvdXJjZXNDb250ZW50XFxcIjpbXFxcIkBpbXBvcnQgXFxcXFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXFxcXFwiO1xcXFxuXFxcXG5AbWl4aW4gdG9vbGJhckJ1dHRvbkNvbG9yU3RhdGVzIHtcXFxcbiAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxcXG4gIC5Ub29sSWNvbl90eXBlX2NoZWNrYm94IHtcXFxcbiAgICAmICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcXFxcbiAgICB9XFxcXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcXFxuICAgICAgLS1pY29uLWZpbGwtY29sb3I6ICN7JG9jLXdoaXRlfTtcXFxcbiAgICAgIC0ta2V5YmluZGluZy1jb2xvcjogI3skb2Mtd2hpdGV9O1xcXFxuICAgIH1cXFxcbiAgICAmOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXFxcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktZGFya2VyKTtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcXFxuICAgIGJvdHRvbTogNHB4O1xcXFxuICAgIHJpZ2h0OiA0cHg7XFxcXG4gIH1cXFxcbn1cXFxcblxcXFxuLmV4Y2FsaWRyYXcge1xcXFxuICAuQXBwLXRvb2xiYXItY29udGFpbmVyIHtcXFxcbiAgICAuVG9vbEljb25fdHlwZV9mbG9hdGluZyB7XFxcXG4gICAgICBAaW5jbHVkZSB0b29sYmFyQnV0dG9uQ29sb3JTdGF0ZXM7XFxcXG5cXFxcbiAgICAgICY6bm90KC5pcy1tb2JpbGUpIHtcXFxcbiAgICAgICAgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgICAgICAgICBwYWRkaW5nOiAxcHg7XFxcXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taXNsYW5kLWJnLWNvbG9yKTtcXFxcbiAgICAgICAgICBib3gtc2hhZG93OiAxcHggM3B4IDRweCAwcHggcmdiKDAgMCAwIC8gMTUlKTtcXFxcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxcXG4gICAgICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzIGVhc2UsIHRyYW5zZm9ybSAwLjVzIGVhc2U7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgIH1cXFxcblxcXFxuICAgICAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxcXG4gICAgICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxcXG4gICAgICAgICY6Zm9jdXMtd2l0aGluICsgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgICAgICAgICAvLyBvdmVycmlkZSBmb3IgY3VzdG9tIGZsb2F0aW5nIGJ1dHRvbiBzaGFkb3dcXFxcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgfVxcXFxuICAgIH1cXFxcblxcXFxuICAgIC5Ub29sSWNvbl9faGlkZGVuIHtcXFxcbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXFxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxcXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50O1xcXFxuICAgIH1cXFxcblxcXFxuICAgIC5Ub29sSWNvbi5Ub29sSWNvbl9fbG9jayB7XFxcXG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXFxcbiAgICAgICYuVG9vbEljb25fdHlwZV9mbG9hdGluZyB7XFxcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjFyZW07XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgLlRvb2xJY29uX19saWJyYXJ5IHtcXFxcbiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLXNwYWNlLWZhY3Rvcik7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJi56ZW4tbW9kZSB7XFxcXG4gICAgICAuVG9vbEljb25fdHlwZV9mbG9hdGluZyB7XFxcXG4gICAgICAgIC5Ub29sSWNvbl9faWNvbiB7XFxcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXFxcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgLlRvb2xJY29uX3R5cGVfY2hlY2tib3g6bm90KDpjaGVja2VkKTpub3QoOmhvdmVyKTpub3QoOmFjdGl2ZSkge1xcXFxuICAgICAgICAgICYgKyAuVG9vbEljb25fX2ljb24ge1xcXFxuICAgICAgICAgICAgc3ZnIHtcXFxcbiAgICAgICAgICAgICAgZmlsbDogJG9jLWdyYXktNTtcXFxcbiAgICAgICAgICAgICAgY29sb3I6ICRvYy1ncmF5LTU7XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgICAgfVxcXFxuICAgICAgICB9XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLkFwcC10b29sYmFyIHtcXFxcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWxnKTtcXFxcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjAxKSwgMXB4IDFweCA1cHggcmdiKDAgMCAwIC8gMTUlKTtcXFxcblxcXFxuICAgIC5Ub29sSWNvbiB7XFxcXG4gICAgICAmOmhvdmVyIHtcXFxcbiAgICAgICAgLS1pY29uLWZpbGwtY29sb3I6IHZhcihcXFxcbiAgICAgICAgICAtLWNvbG9yLXByaW1hcnktY29udHJhc3Qtb2Zmc2V0LFxcXFxuICAgICAgICAgIHZhcigtLWNvbG9yLXByaW1hcnkpXFxcXG4gICAgICAgICk7XFxcXG4gICAgICAgIC0ta2V5YmluZGluZy1jb2xvcjogdmFyKFxcXFxuICAgICAgICAgIC0tY29sb3ItcHJpbWFyeS1jb250cmFzdC1vZmZzZXQsXFxcXG4gICAgICAgICAgdmFyKC0tY29sb3ItcHJpbWFyeSlcXFxcbiAgICAgICAgKTtcXFxcbiAgICAgIH1cXFxcbiAgICAgICY6YWN0aXZlIHtcXFxcbiAgICAgICAgLS1pY29uLWZpbGwtY29sb3I6ICN7JG9jLWdyYXktOX07XFxcXG4gICAgICAgIC0ta2V5YmluZGluZy1jb2xvcjogI3skb2MtZ3JheS05fTtcXFxcbiAgICAgIH1cXFxcblxcXFxuICAgICAgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbGcpO1xcXFxuICAgICAgfVxcXFxuXFxcXG4gICAgICBAaW5jbHVkZSB0b29sYmFyQnV0dG9uQ29sb3JTdGF0ZXM7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJi56ZW4tbW9kZSB7XFxcXG4gICAgICAuVG9vbEljb25fX2tleWJpbmRpbmcsXFxcXG4gICAgICAuSGludFZpZXdlciB7XFxcXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgJi50aGVtZS0tZGFyayAuQXBwLXRvb2xiYXIgLlRvb2xJY29uOmFjdGl2ZSB7XFxcXG4gICAgLS1pY29uLWZpbGwtY29sb3I6ICN7JG9jLWdyYXktM307XFxcXG4gICAgLS1rZXliaW5kaW5nLWNvbG9yOiAjeyRvYy1ncmF5LTN9O1xcXFxuICB9XFxcXG59XFxcXG5cXFwiLFxcXCIvL1xcXFxuLy9cXFxcbi8vICBcdUQ4MzVcdURERDYgXHVEODM1XHVEREUyIFx1RDgzNVx1RERERiBcdUQ4MzVcdURERTIgXHVEODM1XHVEREU1XFxcXG4vLyAgdiAxLjkuMVxcXFxuLy9cXFxcbi8vICBcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcXFxcblxcXFxuXFxcXG4vLyAgR2VuZXJhbFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2Mtd2hpdGU6ICAgICAgICAgI2ZmZmZmZjtcXFxcbiRvYy1ibGFjazogICAgICAgICAjMDAwMDAwO1xcXFxuXFxcXG5cXFxcbi8vICBHcmF5XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmF5LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmOGY5ZmEsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZjFmM2Y1LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2U5ZWNlZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNkZWUyZTYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjY2VkNGRhLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2FkYjViZCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM4NjhlOTYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNDk1MDU3LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzM0M2E0MCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMyMTI1MjlcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmF5LTA6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0yOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTM6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS01OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTY6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS04OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTk6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBSZWRcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXJlZC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmNWY1LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZTNlMyxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmM5YzksXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZhOGE4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmODc4NyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmZjZiNmIsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmE1MjUyLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2YwM2UzZSxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNlMDMxMzEsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjYzkyYTJhXFxcXG4pO1xcXFxuXFxcXG4kb2MtcmVkLTA6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTE6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTI6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTM6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTQ6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTU6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTY6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTc6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTg6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTk6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFBpbmtcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXBpbmstbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjBmNixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmRlZWIsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmNjMmQ3LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZhYTJjMSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmNzgzYWMsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZjA2NTk1LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2U2NDk4MCxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNkNjMzNmMsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjYzIyNTVjLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2E2MWU0ZFxcXFxuKTtcXFxcblxcXFxuJG9jLXBpbmstMDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtcGluay0xOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTI6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtcGluay00OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTU6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtcGluay03OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTg6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstOTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEdyYXBlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmFwZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjhmMGZjLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2YzZDlmYSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNlZWJlZmEsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZTU5OWY3LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2RhNzdmMixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNjYzVkZTgsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjYmU0YmRiLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2FlM2VjOSxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM5YzM2YjUsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjODYyZTljXFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JhcGUtMDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTE6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0yOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTQ6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS01OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTc6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS04OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtOTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBWaW9sZXRcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXZpb2xldC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjNmMGZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2U1ZGJmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNkMGJmZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjYjE5N2ZjLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzk3NzVmYSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM4NDVlZjcsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNzk1MGYyLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzcwNDhlOCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM2NzQxZDksXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjNWYzZGM0XFxcXG4pO1xcXFxuXFxcXG4kb2MtdmlvbGV0LTA6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTE6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTI6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTM6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTQ6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTU6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTY6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTc6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTg6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTk6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEluZGlnb1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtaW5kaWdvLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlZGYyZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZGJlNGZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2JhYzhmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM5MWE3ZmYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNzQ4ZmZjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzVjN2NmYSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM0YzZlZjUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNDI2M2ViLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzNiNWJkYixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMzNjRmYzdcXFxcbik7XFxcXG5cXFxcbiRvYy1pbmRpZ28tMDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tODogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tOTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQmx1ZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtYmx1ZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTdmNWZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2QwZWJmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNhNWQ4ZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNzRjMGZjLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzRkYWJmNyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMzMzlhZjAsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMjI4YmU2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzFjN2VkNixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMxOTcxYzIsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMTg2NGFiXFxcXG4pO1xcXFxuXFxcXG4kb2MtYmx1ZS0wOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTE6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0zOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTQ6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS02OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTc6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtODogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS05OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQ3lhblxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtY3lhbi1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTNmYWZjLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2M1ZjZmYSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICM5OWU5ZjIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNjZkOWU4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzNiYzlkYixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMyMmI4Y2YsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMTVhYWJmLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzEwOThhZCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMwYzg1OTksXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMGI3Mjg1XFxcXG4pO1xcXFxuXFxcXG4kb2MtY3lhbi0wOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTE6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0zOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTQ6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi02OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTc6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tODogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi05OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgVGVhbFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtdGVhbC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTZmY2Y1LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2MzZmFlOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICM5NmYyZDcsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNjNlNmJlLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzM4ZDlhOSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMyMGM5OTcsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMTJiODg2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzBjYTY3OCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMwOTkyNjgsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMDg3ZjViXFxcXG4pO1xcXFxuXFxcXG4kb2MtdGVhbC0wOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTE6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0zOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTQ6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC02OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTc6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtODogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC05OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgR3JlZW5cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyZWVuLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlYmZiZWUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZDNmOWQ4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2IyZjJiYixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM4Y2U5OWEsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNjlkYjdjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzUxY2Y2NixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM0MGMwNTcsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMzdiMjRkLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzJmOWU0NCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMyYjhhM2VcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmVlbi0wOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTI6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0zOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNDogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTU6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi02OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNzogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTg6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi05OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIExpbWVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWxpbWUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y0ZmNlMyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNlOWZhYzgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZDhmNWEyLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2MwZWI3NSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNhOWUzNGIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjOTRkODJkLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzgyYzkxZSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM3NGI4MTYsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjNjZhODBmLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzVjOTQwZFxcXFxuKTtcXFxcblxcXFxuJG9jLWxpbWUtMDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0xOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTI6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtbGltZS00OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTU6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtbGltZS03OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTg6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtOTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFllbGxvd1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MteWVsbG93LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY5ZGIsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZmM2JmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmZWM5OSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmUwNjYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmZkNDNiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZjYzQxOSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmYWIwMDUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjU5ZjAwLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2YwOGMwMCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNlNjc3MDBcXFxcbik7XFxcXG5cXFxcbiRvYy15ZWxsb3ctMDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctODogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctOTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgT3JhbmdlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1vcmFuZ2UtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjRlNixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmU4Y2MsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZkOGE4LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmYzA3OCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZmE5NGQsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmY5MjJiLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZkN2UxNCxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmNzY3MDcsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZTg1OTBjLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2Q5NDgwZlxcXFxuKTtcXFxcblxcXFxuJG9jLW9yYW5nZS0wOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0xOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0yOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0zOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS00OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS01OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS02OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS03OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS04OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS05OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBDb2xvciBsaXN0XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1jb2xvci1zcGVjdHJ1bTogICA5O1xcXFxuXFxcXG4kb2MtY29sb3ItbGlzdDogKFxcXFxuICAkb2MtZ3JheS1saXN0OiAgICAgIFxcXFxcXFwiZ3JheVxcXFxcXFwiLFxcXFxuICAkb2MtcmVkLWxpc3Q6ICAgICAgXFxcXFxcXCJyZWRcXFxcXFxcIixcXFxcbiAgJG9jLXBpbmstbGlzdDogICAgICBcXFxcXFxcInBpbmtcXFxcXFxcIixcXFxcbiAgJG9jLWdyYXBlLWxpc3Q6ICAgICAgXFxcXFxcXCJncmFwZVxcXFxcXFwiLFxcXFxuICAkb2MtdmlvbGV0LWxpc3Q6ICAgICAgXFxcXFxcXCJ2aW9sZXRcXFxcXFxcIixcXFxcbiAgJG9jLWluZGlnby1saXN0OiAgICAgIFxcXFxcXFwiaW5kaWdvXFxcXFxcXCIsXFxcXG4gICRvYy1ibHVlLWxpc3Q6ICAgICAgXFxcXFxcXCJibHVlXFxcXFxcXCIsXFxcXG4gICRvYy1jeWFuLWxpc3Q6ICAgICAgXFxcXFxcXCJjeWFuXFxcXFxcXCIsXFxcXG4gICRvYy10ZWFsLWxpc3Q6ICAgICAgXFxcXFxcXCJ0ZWFsXFxcXFxcXCIsXFxcXG4gICRvYy1ncmVlbi1saXN0OiAgICAgIFxcXFxcXFwiZ3JlZW5cXFxcXFxcIixcXFxcbiAgJG9jLWxpbWUtbGlzdDogICAgICBcXFxcXFxcImxpbWVcXFxcXFxcIixcXFxcbiAgJG9jLXllbGxvdy1saXN0OiAgICAgIFxcXFxcXFwieWVsbG93XFxcXFxcXCIsXFxcXG4gICRvYy1vcmFuZ2UtbGlzdDogICAgICBcXFxcXFxcIm9yYW5nZVxcXFxcXFwiXFxcXG4pO1xcXFxuXFxcIl0sXFxcInNvdXJjZVJvb3RcXFwiOlxcXCJcXFwifV0pO1xcbi8vIEV4cG9ydHNcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKF9fX0NTU19MT0FERVJfRVhQT1JUX19fKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlVYjI5c1ltRnlMbk5qYzNNdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3UVVGQlFUdEJRVU00U0R0QlFVTnFRanRCUVVNM1J5dzRRa0ZCT0VJc2RVZEJRVEpDTEVOQlFVTXNaMGhCUVhGRE8wRkJReTlHTzBGQlEwRXNhMUZCUVd0UkxESkRRVUV5UXl4SFFVRkhMRFJPUVVFMFRpeHhRMEZCY1VNc0swSkJRU3RDTEdkRFFVRm5ReXhIUVVGSExEQlBRVUV3VHl3MFEwRkJORU1zUjBGQlJ5eHZSa0ZCYjBZc1owSkJRV2RDTEdWQlFXVXNSMEZCUnl3NFJrRkJPRVlzYVVKQlFXbENMRFpEUVVFMlF5eHZSRUZCYjBRc2RVSkJRWFZDTERCRVFVRXdSQ3hIUVVGSExITlBRVUZ6VHl4MVJFRkJkVVFzUjBGQlJ5eDNSRUZCZDBRc1owTkJRV2RETERaRFFVRTJReXh2UTBGQmIwTXNSMEZCUnl3clJFRkJLMFFzTWtOQlFUSkRMRWRCUVVjc2MwWkJRWE5HTEhkQ1FVRjNRaXhIUVVGSExIbEVRVUY1UkN3MlEwRkJOa01zUjBGQlJ5eDFSa0ZCZFVZc2NVSkJRWEZDTERCQ1FVRXdRaXhIUVVGSExEUktRVUUwU2l4clFrRkJhMElzYlVKQlFXMUNMRWRCUVVjc05FSkJRVFJDTERKRFFVRXlReXdyUlVGQkswVXNSMEZCUnl3MFEwRkJORU1zYVVkQlFXbEhMR3RIUVVGclJ5eEhRVUZITERaRFFVRTJReXdyUWtGQkswSXNaME5CUVdkRExFZEJRVWNzYzBSQlFYTkVMRFJDUVVFMFFpd3lRMEZCTWtNc1IwRkJSeXd3UzBGQk1Fc3NNa05CUVRKRExFZEJRVWNzTkV0QlFUUkxMSEZEUVVGeFF5d3JRa0ZCSzBJc1owTkJRV2RETEVkQlFVY3NNRXhCUVRCTUxEUkRRVUUwUXl4SFFVRkhMRFJFUVVFMFJDeG5Ra0ZCWjBJc1pVRkJaU3hIUVVGSExESkhRVUV5Unl4clFrRkJhMElzUjBGQlJ5eDVSRUZCZVVRc0swSkJRU3RDTEdkRFFVRm5ReXhIUVVGSExFOUJRVThzWjB0QlFXZExMRmRCUVZjc1MwRkJTeXhOUVVGTkxGZEJRVmNzVjBGQlZ5eFhRVUZYTEV0QlFVc3NUVUZCVFN4WFFVRlhMRXRCUVVzc1MwRkJTeXhWUVVGVkxGVkJRVlVzUzBGQlN5eExRVUZMTEZWQlFWVXNWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhMUVVGTExFOUJRVThzVjBGQlZ5eExRVUZMTEUxQlFVMHNWMEZCVnl4WFFVRlhMRmRCUVZjc1RVRkJUU3hOUVVGTkxGZEJRVmNzVFVGQlRTeE5RVUZOTEZkQlFWY3NUVUZCVFN4TlFVRk5MRmRCUVZjc1RVRkJUU3hOUVVGTkxGZEJRVmNzVjBGQlZ5eE5RVUZOTEUxQlFVMHNWMEZCVnl4WlFVRlpMRXRCUVVzc1RVRkJUU3hYUVVGWExGZEJRVmNzVFVGQlRTeE5RVUZOTEU5QlFVOHNTMEZCU3l4UFFVRlBMRXRCUVVzc1RVRkJUU3hOUVVGTkxGZEJRVmNzVjBGQlZ5eE5RVUZOTEUxQlFVMHNWMEZCVnl4WFFVRlhMRTFCUVUwc1QwRkJUeXhYUVVGWExFMUJRVTBzVDBGQlR5eFhRVUZYTEZkQlFWY3NWMEZCVnl4TlFVRk5MRTlCUVU4c1YwRkJWeXhOUVVGTkxFMUJRVTBzVlVGQlZTeFZRVUZWTEUxQlFVMHNUMEZCVHl4VlFVRlZMRTFCUVUwc1RVRkJUU3hYUVVGWExGZEJRVmNzYVVWQlFXbEZMSEZEUVVGeFF5eHpSRUZCYzBRc2EwTkJRV3RETEN0RFFVRXJReXhQUVVGUExHMURRVUZ0UXl4NVEwRkJlVU1zTmtKQlFUWkNMRmRCUVZjc09FSkJRVGhDTEZkQlFWY3NUMEZCVHl3d1EwRkJNRU1zWjBSQlFXZEVMRTlCUVU4c1MwRkJTeXcyUWtGQk5rSXNhMEpCUVd0Q0xHbENRVUZwUWl4TFFVRkxMRWRCUVVjc2FVSkJRV2xDTERSQ1FVRTBRaXdyUWtGQkswSXNNRU5CUVRCRExEWkNRVUUyUWl3eVFrRkJNa0lzZVVKQlFYbENMSEZFUVVGeFJDeDVSRUZCZVVRc0swSkJRU3RDTEd0RlFVRnJSU3hYUVVGWExGTkJRVk1zWjBWQlFXZEZMRFJEUVVFMFF5eDNTRUZCZDBnc1YwRkJWeXhUUVVGVExFOUJRVThzTWtKQlFUSkNMRzlEUVVGdlF5eHBSRUZCYVVRc2QwTkJRWGRETEU5QlFVOHNhME5CUVd0RExDdERRVUVyUXl4clEwRkJhME1zT0VKQlFUaENMRk5CUVZNc1QwRkJUeXcwUWtGQk5FSXNhVVJCUVdsRUxFOUJRVThzYjBKQlFXOUNMR2xEUVVGcFF5d3lRa0ZCTWtJc05rSkJRVFpDTEd0RFFVRnJReXhYUVVGWExEQkZRVUV3UlN4cFEwRkJhVU1zYlVKQlFXMUNMR2xEUVVGcFF5eHJRMEZCYTBNc1pVRkJaU3hoUVVGaExGZEJRVmNzVTBGQlV5eFBRVUZQTEV0QlFVc3NiMEpCUVc5Q0xEWkRRVUUyUXl3NFJVRkJPRVVzYlVKQlFXMUNMR2xDUVVGcFFpeDVTRUZCZVVnc01FaEJRVEJJTEZOQlFWTXNhMEpCUVd0Q0xDdENRVUVyUWl4WlFVRlpMR2REUVVGblF5eFpRVUZaTEZOQlFWTXNNa0pCUVRKQ0xHdERRVUZyUXl4cFJFRkJhVVFzVTBGQlV5dzBRMEZCTkVNc1QwRkJUeXh2UWtGQmIwSXNiVVJCUVcxRUxIZENRVUYzUWl4VFFVRlRMRTlCUVU4c1MwRkJTeXh0UkVGQmJVUXNNa0pCUVRKQ0xGbEJRVmtzTkVKQlFUUkNMRmxCUVZrc1MwRkJTeXhIUVVGSExHdE1RVUZyVEN3MlFrRkJOa0lzTkZGQlFUUlJMRGhEUVVFNFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5d3dVVUZCTUZFc05FTkJRVFJETERCRFFVRXdReXd3UTBGQk1FTXNNRU5CUVRCRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc01FTkJRVEJETERSUlFVRTBVU3c0UTBGQk9FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNPRkZCUVRoUkxHZEVRVUZuUkN3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl4blVrRkJaMUlzYTBSQlFXdEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RTUVVGblVpeHJSRUZCYTBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc05GRkJRVFJSTERoRFFVRTRReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwVVVGQk5GRXNPRU5CUVRoRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUlJRVUUwVVN3NFEwRkJPRU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zT0ZGQlFUaFJMR2RFUVVGblJDdzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzBVVUZCTkZFc09FTkJRVGhETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETEdkU1FVRm5VaXhyUkVGQmEwUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMUpCUVdkU0xHdEVRVUZyUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4NVJrRkJlVVlzZFdSQlFYVmtMSEZDUVVGeFFqdEJRVU4yTVdwQ08wRkJRMEVzYVVWQlFXVXNkVUpCUVhWQ0xFVkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVViMjlzWW1GeUxuTmpjM00vT1dGa1lpSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2THlCSmJYQnZjblJ6WEc1cGJYQnZjblFnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmVTA5VlVrTkZUVUZRWDBsTlVFOVNWRjlmWHlCbWNtOXRJRndpTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZjMjkxY21ObFRXRndjeTVxYzF3aU8xeHVhVzF3YjNKMElGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgwbE5VRTlTVkY5Zlh5Qm1jbTl0SUZ3aUxpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDNKMWJuUnBiV1V2WVhCcExtcHpYQ0k3WEc1MllYSWdYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4Z1BTQmZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOUpUVkJQVWxSZlgxOG9YMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZVMDlWVWtORlRVRlFYMGxOVUU5U1ZGOWZYeWs3WEc0dkx5Qk5iMlIxYkdWY2JsOWZYME5UVTE5TVQwRkVSVkpmUlZoUVQxSlVYMTlmTG5CMWMyZ29XMjF2WkhWc1pTNXBaQ3dnWENJdVpYaGpZV3hwWkhKaGR5QXVRWEJ3TFhSdmIyeGlZWEl0WTI5dWRHRnBibVZ5SUM1VWIyOXNTV052Ymw5MGVYQmxYMlpzYjJGMGFXNW5JQzVVYjI5c1NXTnZibDkwZVhCbFgzSmhaR2x2SUNzZ0xsUnZiMnhKWTI5dVgxOXBZMjl1T21GamRHbDJaU3hjWEc0dVpYaGpZV3hwWkhKaGR5QXVRWEJ3TFhSdmIyeGlZWEl0WTI5dWRHRnBibVZ5SUM1VWIyOXNTV052Ymw5MGVYQmxYMlpzYjJGMGFXNW5JQzVVYjI5c1NXTnZibDkwZVhCbFgyTm9aV05yWW05NElDc2dMbFJ2YjJ4SlkyOXVYMTlwWTI5dU9tRmpkR2wyWlNCN1hGeHVJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFqYjJ4dmNpMXdjbWx0WVhKNUxXeHBaMmgwS1R0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xrRndjQzEwYjI5c1ltRnlMV052Ym5SaGFXNWxjaUF1Vkc5dmJFbGpiMjVmZEhsd1pWOW1iRzloZEdsdVp5QXVWRzl2YkVsamIyNWZkSGx3WlY5eVlXUnBienBqYUdWamEyVmtJQ3NnTGxSdmIyeEpZMjl1WDE5cFkyOXVMRnhjYmk1bGVHTmhiR2xrY21GM0lDNUJjSEF0ZEc5dmJHSmhjaTFqYjI1MFlXbHVaWElnTGxSdmIyeEpZMjl1WDNSNWNHVmZabXh2WVhScGJtY2dMbFJ2YjJ4SlkyOXVYM1I1Y0dWZlkyaGxZMnRpYjNnNlkyaGxZMnRsWkNBcklDNVViMjlzU1dOdmJsOWZhV052YmlCN1hGeHVJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFqYjJ4dmNpMXdjbWx0WVhKNUtUdGNYRzRnSUMwdGFXTnZiaTFtYVd4c0xXTnZiRzl5T2lBalptWm1abVptTzF4Y2JpQWdMUzFyWlhsaWFXNWthVzVuTFdOdmJHOXlPaUFqWm1abVptWm1PMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1UVhCd0xYUnZiMnhpWVhJdFkyOXVkR0ZwYm1WeUlDNVViMjlzU1dOdmJsOTBlWEJsWDJac2IyRjBhVzVuSUM1VWIyOXNTV052Ymw5MGVYQmxYM0poWkdsdk9tTm9aV05yWldRZ0t5QXVWRzl2YkVsamIyNWZYMmxqYjI0NllXTjBhWFpsTEZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVCY0hBdGRHOXZiR0poY2kxamIyNTBZV2x1WlhJZ0xsUnZiMnhKWTI5dVgzUjVjR1ZmWm14dllYUnBibWNnTGxSdmIyeEpZMjl1WDNSNWNHVmZZMmhsWTJ0aWIzZzZZMmhsWTJ0bFpDQXJJQzVVYjI5c1NXTnZibDlmYVdOdmJqcGhZM1JwZG1VZ2UxeGNiaUFnWW1GamEyZHliM1Z1WkRvZ2RtRnlLQzB0WTI5c2IzSXRjSEpwYldGeWVTMWtZWEpyWlhJcE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVRWEJ3TFhSdmIyeGlZWEl0WTI5dWRHRnBibVZ5SUM1VWIyOXNTV052Ymw5MGVYQmxYMlpzYjJGMGFXNW5JQzVVYjI5c1NXTnZibDlmYTJWNVltbHVaR2x1WnlCN1hGeHVJQ0JpYjNSMGIyMDZJRFJ3ZUR0Y1hHNGdJSEpwWjJoME9pQTBjSGc3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1QmNIQXRkRzl2YkdKaGNpMWpiMjUwWVdsdVpYSWdMbFJ2YjJ4SlkyOXVYM1I1Y0dWZlpteHZZWFJwYm1jNmJtOTBLQzVwY3kxdGIySnBiR1VwSUM1VWIyOXNTV052Ymw5ZmFXTnZiaUI3WEZ4dUlDQndZV1JrYVc1bk9pQXhjSGc3WEZ4dUlDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcGMyeGhibVF0WW1jdFkyOXNiM0lwTzF4Y2JpQWdZbTk0TFhOb1lXUnZkem9nTVhCNElETndlQ0EwY0hnZ01IQjRJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHhOU2s3WEZ4dUlDQmliM0prWlhJdGNtRmthWFZ6T2lBMU1DVTdYRnh1SUNCMGNtRnVjMmwwYVc5dU9pQmliM2d0YzJoaFpHOTNJREF1TlhNZ1pXRnpaU3dnZEhKaGJuTm1iM0p0SURBdU5YTWdaV0Z6WlR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xrRndjQzEwYjI5c1ltRnlMV052Ym5SaGFXNWxjaUF1Vkc5dmJFbGpiMjVmZEhsd1pWOW1iRzloZEdsdVp5QXVWRzl2YkVsamIyNWZkSGx3WlY5eVlXUnBienBtYjJOMWN5MTNhWFJvYVc0Z0t5QXVWRzl2YkVsamIyNWZYMmxqYjI0c1hGeHVMbVY0WTJGc2FXUnlZWGNnTGtGd2NDMTBiMjlzWW1GeUxXTnZiblJoYVc1bGNpQXVWRzl2YkVsamIyNWZkSGx3WlY5bWJHOWhkR2x1WnlBdVZHOXZiRWxqYjI1ZmRIbHdaVjlqYUdWamEySnZlRHBtYjJOMWN5MTNhWFJvYVc0Z0t5QXVWRzl2YkVsamIyNWZYMmxqYjI0Z2UxeGNiaUFnWW05NExYTm9ZV1J2ZHpvZ01DQXdJREFnTW5CNElIWmhjaWd0TFdadlkzVnpMV2hwWjJoc2FXZG9kQzFqYjJ4dmNpazdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVCY0hBdGRHOXZiR0poY2kxamIyNTBZV2x1WlhJZ0xsUnZiMnhKWTI5dVgxOW9hV1JrWlc0Z2UxeGNiaUFnWW05NExYTm9ZV1J2ZHpvZ2JtOXVaU0FoYVcxd2IzSjBZVzUwTzF4Y2JpQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkSEpoYm5Od1lYSmxiblFnSVdsdGNHOXlkR0Z1ZER0Y1hHNGdJSEJ2YVc1MFpYSXRaWFpsYm5Sek9pQnViMjVsSUNGcGJYQnZjblJoYm5RN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNUJjSEF0ZEc5dmJHSmhjaTFqYjI1MFlXbHVaWElnTGxSdmIyeEpZMjl1TGxSdmIyeEpZMjl1WDE5c2IyTnJJSHRjWEc0Z0lHMWhjbWRwYmkxcGJteHBibVV0Wlc1a09pQjJZWElvTFMxemNHRmpaUzFtWVdOMGIzSXBPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1UVhCd0xYUnZiMnhpWVhJdFkyOXVkR0ZwYm1WeUlDNVViMjlzU1dOdmJpNVViMjlzU1dOdmJsOWZiRzlqYXk1VWIyOXNTV052Ymw5MGVYQmxYMlpzYjJGMGFXNW5JSHRjWEc0Z0lHMWhjbWRwYmkxc1pXWjBPaUF3TGpGeVpXMDdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVCY0hBdGRHOXZiR0poY2kxamIyNTBZV2x1WlhJZ0xsUnZiMnhKWTI5dVgxOXNhV0p5WVhKNUlIdGNYRzRnSUcxaGNtZHBiaTFwYm14cGJtVXRjM1JoY25RNklIWmhjaWd0TFhOd1lXTmxMV1poWTNSdmNpazdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVCY0hBdGRHOXZiR0poY2kxamIyNTBZV2x1WlhJdWVtVnVMVzF2WkdVZ0xsUnZiMnhKWTI5dVgzUjVjR1ZmWm14dllYUnBibWNnTGxSdmIyeEpZMjl1WDE5cFkyOXVJSHRjWEc0Z0lHSnZlQzF6YUdGa2IzYzZJRzV2Ym1VN1hGeHVJQ0IwY21GdWMyWnZjbTA2SUhOallXeGxLREF1T1NrN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNUJjSEF0ZEc5dmJHSmhjaTFqYjI1MFlXbHVaWEl1ZW1WdUxXMXZaR1VnTGxSdmIyeEpZMjl1WDNSNWNHVmZabXh2WVhScGJtY2dMbFJ2YjJ4SlkyOXVYM1I1Y0dWZlkyaGxZMnRpYjNnNmJtOTBLRHBqYUdWamEyVmtLVHB1YjNRb09taHZkbVZ5S1RwdWIzUW9PbUZqZEdsMlpTa2dLeUF1Vkc5dmJFbGpiMjVmWDJsamIyNGdjM1puSUh0Y1hHNGdJR1pwYkd3NklDTmhaR0kxWW1RN1hGeHVJQ0JqYjJ4dmNqb2dJMkZrWWpWaVpEdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMa0Z3Y0MxMGIyOXNZbUZ5SUh0Y1hHNGdJR0p2Y21SbGNpMXlZV1JwZFhNNklIWmhjaWd0TFdKdmNtUmxjaTF5WVdScGRYTXRiR2NwTzF4Y2JpQWdZbTk0TFhOb1lXUnZkem9nTUNBd0lEQWdNWEI0SUhKblltRW9NQ3dnTUN3Z01Dd2dNQzR3TVNrc0lERndlQ0F4Y0hnZ05YQjRJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHhOU2s3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1QmNIQXRkRzl2YkdKaGNpQXVWRzl2YkVsamIyNDZhRzkyWlhJZ2UxeGNiaUFnTFMxcFkyOXVMV1pwYkd3dFkyOXNiM0k2SUhaaGNpaGNYRzRnSUNBZ0xTMWpiMnh2Y2kxd2NtbHRZWEo1TFdOdmJuUnlZWE4wTFc5bVpuTmxkQ3hjWEc0Z0lDQWdkbUZ5S0MwdFkyOXNiM0l0Y0hKcGJXRnllU2xjWEc0Z0lDazdYRnh1SUNBdExXdGxlV0pwYm1ScGJtY3RZMjlzYjNJNklIWmhjaWhjWEc0Z0lDQWdMUzFqYjJ4dmNpMXdjbWx0WVhKNUxXTnZiblJ5WVhOMExXOW1abk5sZEN4Y1hHNGdJQ0FnZG1GeUtDMHRZMjlzYjNJdGNISnBiV0Z5ZVNsY1hHNGdJQ2s3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1QmNIQXRkRzl2YkdKaGNpQXVWRzl2YkVsamIyNDZZV04wYVhabElIdGNYRzRnSUMwdGFXTnZiaTFtYVd4c0xXTnZiRzl5T2lBak1qRXlOVEk1TzF4Y2JpQWdMUzFyWlhsaWFXNWthVzVuTFdOdmJHOXlPaUFqTWpFeU5USTVPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1UVhCd0xYUnZiMnhpWVhJZ0xsUnZiMnhKWTI5dUlDNVViMjlzU1dOdmJsOWZhV052YmlCN1hGeHVJQ0JpWVdOclozSnZkVzVrT2lCMGNtRnVjM0JoY21WdWREdGNYRzRnSUdKdmNtUmxjaTF5WVdScGRYTTZJSFpoY2lndExXSnZjbVJsY2kxeVlXUnBkWE10YkdjcE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVRWEJ3TFhSdmIyeGlZWElnTGxSdmIyeEpZMjl1SUM1VWIyOXNTV052Ymw5MGVYQmxYM0poWkdsdklDc2dMbFJ2YjJ4SlkyOXVYMTlwWTI5dU9tRmpkR2wyWlN4Y1hHNHVaWGhqWVd4cFpISmhkeUF1UVhCd0xYUnZiMnhpWVhJZ0xsUnZiMnhKWTI5dUlDNVViMjlzU1dOdmJsOTBlWEJsWDJOb1pXTnJZbTk0SUNzZ0xsUnZiMnhKWTI5dVgxOXBZMjl1T21GamRHbDJaU0I3WEZ4dUlDQmlZV05yWjNKdmRXNWtPaUIyWVhJb0xTMWpiMnh2Y2kxd2NtbHRZWEo1TFd4cFoyaDBLVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGtGd2NDMTBiMjlzWW1GeUlDNVViMjlzU1dOdmJpQXVWRzl2YkVsamIyNWZkSGx3WlY5eVlXUnBienBqYUdWamEyVmtJQ3NnTGxSdmIyeEpZMjl1WDE5cFkyOXVMRnhjYmk1bGVHTmhiR2xrY21GM0lDNUJjSEF0ZEc5dmJHSmhjaUF1Vkc5dmJFbGpiMjRnTGxSdmIyeEpZMjl1WDNSNWNHVmZZMmhsWTJ0aWIzZzZZMmhsWTJ0bFpDQXJJQzVVYjI5c1NXTnZibDlmYVdOdmJpQjdYRnh1SUNCaVlXTnJaM0p2ZFc1a09pQjJZWElvTFMxamIyeHZjaTF3Y21sdFlYSjVLVHRjWEc0Z0lDMHRhV052YmkxbWFXeHNMV052Ykc5eU9pQWpabVptWm1abU8xeGNiaUFnTFMxclpYbGlhVzVrYVc1bkxXTnZiRzl5T2lBalptWm1abVptTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVFYQndMWFJ2YjJ4aVlYSWdMbFJ2YjJ4SlkyOXVJQzVVYjI5c1NXTnZibDkwZVhCbFgzSmhaR2x2T21Ob1pXTnJaV1FnS3lBdVZHOXZiRWxqYjI1ZlgybGpiMjQ2WVdOMGFYWmxMRnhjYmk1bGVHTmhiR2xrY21GM0lDNUJjSEF0ZEc5dmJHSmhjaUF1Vkc5dmJFbGpiMjRnTGxSdmIyeEpZMjl1WDNSNWNHVmZZMmhsWTJ0aWIzZzZZMmhsWTJ0bFpDQXJJQzVVYjI5c1NXTnZibDlmYVdOdmJqcGhZM1JwZG1VZ2UxeGNiaUFnWW1GamEyZHliM1Z1WkRvZ2RtRnlLQzB0WTI5c2IzSXRjSEpwYldGeWVTMWtZWEpyWlhJcE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVRWEJ3TFhSdmIyeGlZWElnTGxSdmIyeEpZMjl1SUM1VWIyOXNTV052Ymw5ZmEyVjVZbWx1WkdsdVp5QjdYRnh1SUNCaWIzUjBiMjA2SURSd2VEdGNYRzRnSUhKcFoyaDBPaUEwY0hnN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNUJjSEF0ZEc5dmJHSmhjaTU2Wlc0dGJXOWtaU0F1Vkc5dmJFbGpiMjVmWDJ0bGVXSnBibVJwYm1jc1hGeHVMbVY0WTJGc2FXUnlZWGNnTGtGd2NDMTBiMjlzWW1GeUxucGxiaTF0YjJSbElDNUlhVzUwVm1sbGQyVnlJSHRjWEc0Z0lHUnBjM0JzWVhrNklHNXZibVU3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzTG5Sb1pXMWxMUzFrWVhKcklDNUJjSEF0ZEc5dmJHSmhjaUF1Vkc5dmJFbGpiMjQ2WVdOMGFYWmxJSHRjWEc0Z0lDMHRhV052YmkxbWFXeHNMV052Ykc5eU9pQWpaR1ZsTW1VMk8xeGNiaUFnTFMxclpYbGlhVzVrYVc1bkxXTnZiRzl5T2lBalpHVmxNbVUyTzF4Y2JuMWNJaXdnWENKY0lpeDdYQ0oyWlhKemFXOXVYQ0k2TXl4Y0luTnZkWEpqWlhOY0lqcGJYQ0ozWldKd1lXTnJPaTh2TGk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDFSdmIyeGlZWEl1YzJOemMxd2lMRndpZDJWaWNHRmphem92THk0dkxpNHZMaTR2TGk0dmJtOWtaVjl0YjJSMWJHVnpMMjl3Wlc0dFkyOXNiM0l2YjNCbGJpMWpiMnh2Y2k1elkzTnpYQ0pkTEZ3aWJtRnRaWE5jSWpwYlhTeGNJbTFoY0hCcGJtZHpYQ0k2WENKQlFVdEpPenRGUVVORkxITkRRVUZCTzBGQlNFNDdRVUZMU1RzN1JVRkRSU3huUTBGQlFUdEZRVU5CTERCQ1FVRkJPMFZCUTBFc01rSkJRVUU3UVVGR1RqdEJRVWxKT3p0RlFVTkZMSFZEUVVGQk8wRkJSRTQ3UVVGTFJUdEZRVU5GTEZkQlFVRTdSVUZEUVN4VlFVRkJPMEZCU0VvN1FVRmhVVHRGUVVORkxGbEJRVUU3UlVGRFFTeDNRMEZCUVR0RlFVTkJMQ3REUVVGQk8wVkJRMEVzYTBKQlFVRTdSVUZEUVN4eFJFRkJRVHRCUVZoV08wRkJhVUpST3p0RlFVVkZMR3RFUVVGQk8wRkJabFk3UVVGdlFrazdSVUZEUlN3eVFrRkJRVHRGUVVOQkxIZERRVUZCTzBWQlEwRXNLMEpCUVVFN1FVRnNRazQ3UVVGeFFrazdSVUZEUlN4elEwRkJRVHRCUVc1Q1RqdEJRVzlDVFR0RlFVTkZMRzFDUVVGQk8wRkJiRUpTTzBGQmMwSkpPMFZCUTBVc2QwTkJRVUU3UVVGd1FrNDdRVUY1UWxFN1JVRkRSU3huUWtGQlFUdEZRVU5CTEhGQ1FVRkJPMEZCZGtKV08wRkJNa0paTzBWQlEwVXNZVU4wUTBZN1JVUjFRMFVzWTBOMlEwWTdRVVJqV2p0QlFXbERSVHRGUVVORkxITkRRVUZCTzBWQlEwRXNNRVZCUVVFN1FVRXZRa283UVVGclEwMDdSVUZEUlRzN08wZEJRVUU3UlVGSlFUczdPMGRCUVVFN1FVRTNRbEk3UVVGclEwMDdSVUZEUlN3d1FrRkJRVHRGUVVOQkxESkNRVUZCTzBGQmFFTlNPMEZCYlVOTk8wVkJRMFVzZFVKQlFVRTdSVUZEUVN4elEwRkJRVHRCUVdwRFVqdEJRVzVGU1RzN1JVRkRSU3h6UTBGQlFUdEJRWE5GVGp0QlFYQkZTVHM3UlVGRFJTeG5RMEZCUVR0RlFVTkJMREJDUVVGQk8wVkJRMEVzTWtKQlFVRTdRVUYxUlU0N1FVRnlSVWs3TzBWQlEwVXNkVU5CUVVFN1FVRjNSVTQ3UVVGd1JVVTdSVUZEUlN4WFFVRkJPMFZCUTBFc1ZVRkJRVHRCUVhORlNqdEJRWE5DVFRzN1JVRkZSU3hoUVVGQk8wRkJjRUpTTzBGQmVVSkZPMFZCUTBVc01FSkJRVUU3UlVGRFFTd3lRa0ZCUVR0QlFYWkNTbHdpTEZ3aWMyOTFjbU5sYzBOdmJuUmxiblJjSWpwYlhDSkFhVzF3YjNKMElGeGNYQ0p2Y0dWdUxXTnZiRzl5TDI5d1pXNHRZMjlzYjNJdWMyTnpjMXhjWENJN1hGeHVYRnh1UUcxcGVHbHVJSFJ2YjJ4aVlYSkNkWFIwYjI1RGIyeHZjbE4wWVhSbGN5QjdYRnh1SUNBdVZHOXZiRWxqYjI1ZmRIbHdaVjl5WVdScGJ5eGNYRzRnSUM1VWIyOXNTV052Ymw5MGVYQmxYMk5vWldOclltOTRJSHRjWEc0Z0lDQWdKaUFySUM1VWIyOXNTV052Ymw5ZmFXTnZianBoWTNScGRtVWdlMXhjYmlBZ0lDQWdJR0poWTJ0bmNtOTFibVE2SUhaaGNpZ3RMV052Ykc5eUxYQnlhVzFoY25rdGJHbG5hSFFwTzF4Y2JpQWdJQ0I5WEZ4dUlDQWdJQ1k2WTJobFkydGxaQ0FySUM1VWIyOXNTV052Ymw5ZmFXTnZiaUI3WEZ4dUlDQWdJQ0FnWW1GamEyZHliM1Z1WkRvZ2RtRnlLQzB0WTI5c2IzSXRjSEpwYldGeWVTazdYRnh1SUNBZ0lDQWdMUzFwWTI5dUxXWnBiR3d0WTI5c2IzSTZJQ043Skc5akxYZG9hWFJsZlR0Y1hHNGdJQ0FnSUNBdExXdGxlV0pwYm1ScGJtY3RZMjlzYjNJNklDTjdKRzlqTFhkb2FYUmxmVHRjWEc0Z0lDQWdmVnhjYmlBZ0lDQW1PbU5vWldOclpXUWdLeUF1Vkc5dmJFbGpiMjVmWDJsamIyNDZZV04wYVhabElIdGNYRzRnSUNBZ0lDQmlZV05yWjNKdmRXNWtPaUIyWVhJb0xTMWpiMnh2Y2kxd2NtbHRZWEo1TFdSaGNtdGxjaWs3WEZ4dUlDQWdJSDFjWEc0Z0lIMWNYRzVjWEc0Z0lDNVViMjlzU1dOdmJsOWZhMlY1WW1sdVpHbHVaeUI3WEZ4dUlDQWdJR0p2ZEhSdmJUb2dOSEI0TzF4Y2JpQWdJQ0J5YVdkb2REb2dOSEI0TzF4Y2JpQWdmVnhjYm4xY1hHNWNYRzR1WlhoallXeHBaSEpoZHlCN1hGeHVJQ0F1UVhCd0xYUnZiMnhpWVhJdFkyOXVkR0ZwYm1WeUlIdGNYRzRnSUNBZ0xsUnZiMnhKWTI5dVgzUjVjR1ZmWm14dllYUnBibWNnZTF4Y2JpQWdJQ0FnSUVCcGJtTnNkV1JsSUhSdmIyeGlZWEpDZFhSMGIyNURiMnh2Y2xOMFlYUmxjenRjWEc1Y1hHNGdJQ0FnSUNBbU9tNXZkQ2d1YVhNdGJXOWlhV3hsS1NCN1hGeHVJQ0FnSUNBZ0lDQXVWRzl2YkVsamIyNWZYMmxqYjI0Z2UxeGNiaUFnSUNBZ0lDQWdJQ0J3WVdSa2FXNW5PaUF4Y0hnN1hGeHVJQ0FnSUNBZ0lDQWdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXbHpiR0Z1WkMxaVp5MWpiMnh2Y2lrN1hGeHVJQ0FnSUNBZ0lDQWdJR0p2ZUMxemFHRmtiM2M2SURGd2VDQXpjSGdnTkhCNElEQndlQ0J5WjJJb01DQXdJREFnTHlBeE5TVXBPMXhjYmlBZ0lDQWdJQ0FnSUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUExTUNVN1hGeHVJQ0FnSUNBZ0lDQWdJSFJ5WVc1emFYUnBiMjQ2SUdKdmVDMXphR0ZrYjNjZ01DNDFjeUJsWVhObExDQjBjbUZ1YzJadmNtMGdNQzQxY3lCbFlYTmxPMXhjYmlBZ0lDQWdJQ0FnZlZ4Y2JpQWdJQ0FnSUgxY1hHNWNYRzRnSUNBZ0lDQXVWRzl2YkVsamIyNWZkSGx3WlY5eVlXUnBieXhjWEc0Z0lDQWdJQ0F1Vkc5dmJFbGpiMjVmZEhsd1pWOWphR1ZqYTJKdmVDQjdYRnh1SUNBZ0lDQWdJQ0FtT21adlkzVnpMWGRwZEdocGJpQXJJQzVVYjI5c1NXTnZibDlmYVdOdmJpQjdYRnh1SUNBZ0lDQWdJQ0FnSUM4dklHOTJaWEp5YVdSbElHWnZjaUJqZFhOMGIyMGdabXh2WVhScGJtY2dZblYwZEc5dUlITm9ZV1J2ZDF4Y2JpQWdJQ0FnSUNBZ0lDQmliM2d0YzJoaFpHOTNPaUF3SURBZ01DQXljSGdnZG1GeUtDMHRabTlqZFhNdGFHbG5hR3hwWjJoMExXTnZiRzl5S1R0Y1hHNGdJQ0FnSUNBZ0lIMWNYRzRnSUNBZ0lDQjlYRnh1SUNBZ0lIMWNYRzVjWEc0Z0lDQWdMbFJ2YjJ4SlkyOXVYMTlvYVdSa1pXNGdlMXhjYmlBZ0lDQWdJR0p2ZUMxemFHRmtiM2M2SUc1dmJtVWdJV2x0Y0c5eWRHRnVkRHRjWEc0Z0lDQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIwY21GdWMzQmhjbVZ1ZENBaGFXMXdiM0owWVc1ME8xeGNiaUFnSUNBZ0lIQnZhVzUwWlhJdFpYWmxiblJ6T2lCdWIyNWxJQ0ZwYlhCdmNuUmhiblE3WEZ4dUlDQWdJSDFjWEc1Y1hHNGdJQ0FnTGxSdmIyeEpZMjl1TGxSdmIyeEpZMjl1WDE5c2IyTnJJSHRjWEc0Z0lDQWdJQ0J0WVhKbmFXNHRhVzVzYVc1bExXVnVaRG9nZG1GeUtDMHRjM0JoWTJVdFptRmpkRzl5S1R0Y1hHNGdJQ0FnSUNBbUxsUnZiMnhKWTI5dVgzUjVjR1ZmWm14dllYUnBibWNnZTF4Y2JpQWdJQ0FnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJREF1TVhKbGJUdGNYRzRnSUNBZ0lDQjlYRnh1SUNBZ0lIMWNYRzVjWEc0Z0lDQWdMbFJ2YjJ4SlkyOXVYMTlzYVdKeVlYSjVJSHRjWEc0Z0lDQWdJQ0J0WVhKbmFXNHRhVzVzYVc1bExYTjBZWEowT2lCMllYSW9MUzF6Y0dGalpTMW1ZV04wYjNJcE8xeGNiaUFnSUNCOVhGeHVYRnh1SUNBZ0lDWXVlbVZ1TFcxdlpHVWdlMXhjYmlBZ0lDQWdJQzVVYjI5c1NXTnZibDkwZVhCbFgyWnNiMkYwYVc1bklIdGNYRzRnSUNBZ0lDQWdJQzVVYjI5c1NXTnZibDlmYVdOdmJpQjdYRnh1SUNBZ0lDQWdJQ0FnSUdKdmVDMXphR0ZrYjNjNklHNXZibVU3WEZ4dUlDQWdJQ0FnSUNBZ0lIUnlZVzV6Wm05eWJUb2djMk5oYkdVb01DNDVLVHRjWEc0Z0lDQWdJQ0FnSUgxY1hHNGdJQ0FnSUNBZ0lDNVViMjlzU1dOdmJsOTBlWEJsWDJOb1pXTnJZbTk0T201dmRDZzZZMmhsWTJ0bFpDazZibTkwS0Rwb2IzWmxjaWs2Ym05MEtEcGhZM1JwZG1VcElIdGNYRzRnSUNBZ0lDQWdJQ0FnSmlBcklDNVViMjlzU1dOdmJsOWZhV052YmlCN1hGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNabklIdGNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHWnBiR3c2SUNSdll5MW5jbUY1TFRVN1hGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyeHZjam9nSkc5akxXZHlZWGt0TlR0Y1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEZ4dUlDQWdJQ0FnSUNBZ0lIMWNYRzRnSUNBZ0lDQWdJSDFjWEc0Z0lDQWdJQ0I5WEZ4dUlDQWdJSDFjWEc0Z0lIMWNYRzVjWEc0Z0lDNUJjSEF0ZEc5dmJHSmhjaUI3WEZ4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklIWmhjaWd0TFdKdmNtUmxjaTF5WVdScGRYTXRiR2NwTzF4Y2JpQWdJQ0JpYjNndGMyaGhaRzkzT2lBd0lEQWdNQ0F4Y0hnZ2NtZGlZU2d3TENBd0xDQXdMQ0F3TGpBeEtTd2dNWEI0SURGd2VDQTFjSGdnY21kaUtEQWdNQ0F3SUM4Z01UVWxLVHRjWEc1Y1hHNGdJQ0FnTGxSdmIyeEpZMjl1SUh0Y1hHNGdJQ0FnSUNBbU9taHZkbVZ5SUh0Y1hHNGdJQ0FnSUNBZ0lDMHRhV052YmkxbWFXeHNMV052Ykc5eU9pQjJZWElvWEZ4dUlDQWdJQ0FnSUNBZ0lDMHRZMjlzYjNJdGNISnBiV0Z5ZVMxamIyNTBjbUZ6ZEMxdlptWnpaWFFzWEZ4dUlDQWdJQ0FnSUNBZ0lIWmhjaWd0TFdOdmJHOXlMWEJ5YVcxaGNua3BYRnh1SUNBZ0lDQWdJQ0FwTzF4Y2JpQWdJQ0FnSUNBZ0xTMXJaWGxpYVc1a2FXNW5MV052Ykc5eU9pQjJZWElvWEZ4dUlDQWdJQ0FnSUNBZ0lDMHRZMjlzYjNJdGNISnBiV0Z5ZVMxamIyNTBjbUZ6ZEMxdlptWnpaWFFzWEZ4dUlDQWdJQ0FnSUNBZ0lIWmhjaWd0TFdOdmJHOXlMWEJ5YVcxaGNua3BYRnh1SUNBZ0lDQWdJQ0FwTzF4Y2JpQWdJQ0FnSUgxY1hHNGdJQ0FnSUNBbU9tRmpkR2wyWlNCN1hGeHVJQ0FnSUNBZ0lDQXRMV2xqYjI0dFptbHNiQzFqYjJ4dmNqb2dJM3NrYjJNdFozSmhlUzA1ZlR0Y1hHNGdJQ0FnSUNBZ0lDMHRhMlY1WW1sdVpHbHVaeTFqYjJ4dmNqb2dJM3NrYjJNdFozSmhlUzA1ZlR0Y1hHNGdJQ0FnSUNCOVhGeHVYRnh1SUNBZ0lDQWdMbFJ2YjJ4SlkyOXVYMTlwWTI5dUlIdGNYRzRnSUNBZ0lDQWdJR0poWTJ0bmNtOTFibVE2SUhSeVlXNXpjR0Z5Wlc1ME8xeGNiaUFnSUNBZ0lDQWdZbTl5WkdWeUxYSmhaR2wxY3pvZ2RtRnlLQzB0WW05eVpHVnlMWEpoWkdsMWN5MXNaeWs3WEZ4dUlDQWdJQ0FnZlZ4Y2JseGNiaUFnSUNBZ0lFQnBibU5zZFdSbElIUnZiMnhpWVhKQ2RYUjBiMjVEYjJ4dmNsTjBZWFJsY3p0Y1hHNGdJQ0FnZlZ4Y2JseGNiaUFnSUNBbUxucGxiaTF0YjJSbElIdGNYRzRnSUNBZ0lDQXVWRzl2YkVsamIyNWZYMnRsZVdKcGJtUnBibWNzWEZ4dUlDQWdJQ0FnTGtocGJuUldhV1YzWlhJZ2UxeGNiaUFnSUNBZ0lDQWdaR2x6Y0d4aGVUb2dibTl1WlR0Y1hHNGdJQ0FnSUNCOVhGeHVJQ0FnSUgxY1hHNGdJSDFjWEc1Y1hHNGdJQ1l1ZEdobGJXVXRMV1JoY21zZ0xrRndjQzEwYjI5c1ltRnlJQzVVYjI5c1NXTnZianBoWTNScGRtVWdlMXhjYmlBZ0lDQXRMV2xqYjI0dFptbHNiQzFqYjJ4dmNqb2dJM3NrYjJNdFozSmhlUzB6ZlR0Y1hHNGdJQ0FnTFMxclpYbGlhVzVrYVc1bkxXTnZiRzl5T2lBamV5UnZZeTFuY21GNUxUTjlPMXhjYmlBZ2ZWeGNibjFjWEc1Y0lpeGNJaTh2WEZ4dUx5OWNYRzR2THlBZzhKMlhsaUR3blplaUlQQ2RsNThnOEoyWG9pRHduWmVsWEZ4dUx5OGdJSFlnTVM0NUxqRmNYRzR2TDF4Y2JpOHZJQ0RpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJSGlsSUhpbElIaWxJRmNYRzVjWEc1Y1hHNHZMeUFnUjJWdVpYSmhiRnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGQyaHBkR1U2SUNBZ0lDQWdJQ0FnSTJabVptWm1aanRjWEc0a2IyTXRZbXhoWTJzNklDQWdJQ0FnSUNBZ0l6QXdNREF3TUR0Y1hHNWNYRzVjWEc0dkx5QWdSM0poZVZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRaM0poZVMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tT0dZNVptRXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTm1NV1l6WmpVc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNObE9XVmpaV1lzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05rWldVeVpUWXNYRnh1SUNCY1hGd2lORnhjWENJNklDTmpaV1EwWkdFc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNOaFpHSTFZbVFzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ000TmpobE9UWXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTTBPVFV3TlRjc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNek5ETmhOREFzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ015TVRJMU1qbGNYRzRwTzF4Y2JseGNiaVJ2WXkxbmNtRjVMVEE2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMweE9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3RNam9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRNNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0TlRvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxUWTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzAzT2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE9Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVGs2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1VtVmtYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxeVpXUXRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalptWm1OV1kxTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWm1abE0yVXpMRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpabVpqT1dNNUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBalptWmhPR0U0TEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqWm1ZNE56ZzNMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpabVkyWWpaaUxGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBalptRTFNalV5TEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqWmpBelpUTmxMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpaVEF6TVRNeExGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBall6a3lZVEpoWEZ4dUtUdGNYRzVjWEc0a2IyTXRjbVZrTFRBNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE1Ub2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVE02SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MXlaV1F0TkRvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMWEpsWkMwMU9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUWTZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxeVpXUXROem9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxYSmxaQzA0T2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRrNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQlFhVzVyWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MXdhVzVyTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlptWmpCbU5peGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyWm1aR1ZsWWl4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJaall6SmtOeXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMlpoWVRKak1TeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0kyWTNPRE5oWXl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSTJZd05qVTVOU3hjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJMlUyTkRrNE1DeGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0kyUTJNek0yWXl4Y1hHNGdJRnhjWENJNFhGeGNJam9nSTJNeU1qVTFZeXhjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJMkUyTVdVMFpGeGNiaWs3WEZ4dVhGeHVKRzlqTFhCcGJtc3RNRG9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRFNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MHlPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0TXpvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUUTZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTAxT2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE5qb2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVGM2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkwNE9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3RPVG9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCSGNtRndaVnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdFozSmhjR1V0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaamhtTUdaakxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpqTmtPV1poTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWldWaVpXWmhMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpaVFU1T1dZM0xGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBalpHRTNOMll5TEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqWTJNMVpHVTRMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpZbVUwWW1SaUxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBallXVXpaV001TEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqT1dNek5tSTFMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpPRFl5WlRsalhGeHVLVHRjWEc1Y1hHNGtiMk10WjNKaGNHVXRNRG9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRaM0poY0dVdE1Ub2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdFozSmhjR1V0TWpvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10WjNKaGNHVXRNem9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRaM0poY0dVdE5Eb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdFozSmhjR1V0TlRvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10WjNKaGNHVXROam9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRaM0poY0dVdE56b2diV0Z3TFdkbGRDZ2tiMk10WjNKaGNHVXRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdFozSmhjR1V0T0RvZ2JXRndMV2RsZENna2IyTXRaM0poY0dVdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10WjNKaGNHVXRPVG9nYldGd0xXZGxkQ2drYjJNdFozSmhjR1V0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1ZtbHZiR1YwWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MTJhVzlzWlhRdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWmpObU1HWm1MRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpaVFZrWW1abUxGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalpEQmlabVptTEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWWpFNU4yWmpMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpPVGMzTldaaExGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBak9EUTFaV1kzTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqTnprMU1HWXlMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpOekEwT0dVNExGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak5qYzBNV1E1TEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTldZelpHTTBYRnh1S1R0Y1hHNWNYRzRrYjJNdGRtbHZiR1YwTFRBNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lNRnhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0TVRvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzB5T2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVE02SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXRORG9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMDFPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUWTZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE56b2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMwNE9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRrNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lPVnhjWENJcE8xeGNibHhjYmx4Y2JpOHZJQ0JKYm1ScFoyOWNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFdsdVpHbG5ieTFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTmxaR1l5Wm1Zc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNOa1ltVTBabVlzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05pWVdNNFptWXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTTVNV0UzWm1Zc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNNM05EaG1abU1zWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ00xWXpkalptRXNYRnh1SUNCY1hGd2lObHhjWENJNklDTTBZelpsWmpVc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNME1qWXpaV0lzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ016WWpWaVpHSXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTXpOalJtWXpkY1hHNHBPMXhjYmx4Y2JpUnZZeTFwYm1ScFoyOHRNRG9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MHhPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpGY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUSTZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE16b2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkwME9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRVNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0TmpvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTAzT2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVGc2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHRPVG9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lFSnNkV1ZjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXSnNkV1V0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaVGRtTldabUxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpEQmxZbVptTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWVRWa09HWm1MRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpOelJqTUdaakxGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBak5HUmhZbVkzTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqTXpNNVlXWXdMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpNakk0WW1VMkxGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak1XTTNaV1EyTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTVRrM01XTXlMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpNVGcyTkdGaVhGeHVLVHRjWEc1Y1hHNGtiMk10WW14MVpTMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0TVRvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUSTZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzB6T2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE5Eb2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVFU2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMwMk9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXROem9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRnNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10WW14MVpTMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUVONVlXNWNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFdONVlXNHRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalpUTm1ZV1pqTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWXpWbU5tWmhMRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpPVGxsT1dZeUxGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBak5qWmtPV1U0TEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqTTJKak9XUmlMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpNakppT0dObUxGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBak1UVmhZV0ptTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqTVRBNU9HRmtMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpNR000TlRrNUxGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBak1HSTNNamcxWEZ4dUtUdGNYRzVjWEc0a2IyTXRZM2xoYmkwd09pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHRNVG9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRJNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqSmNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0TkRvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxUVTZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTAyT2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE56b2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVGc2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkwNU9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRlJsWVd4Y1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMWFJsWVd3dGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWlRabVkyWTFMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpZek5tWVdVNExGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBak9UWm1NbVEzTEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqTmpObE5tSmxMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpNemhrT1dFNUxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBak1qQmpPVGszTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqTVRKaU9EZzJMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpNR05oTmpjNExGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak1EazVNalk0TEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTURnM1pqVmlYRnh1S1R0Y1hHNWNYRzRrYjJNdGRHVmhiQzB3T2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE1Ub2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVEk2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMwek9pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3RORG9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRVNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0TnpvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUZzZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzA1T2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lFZHlaV1Z1WEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MW5jbVZsYmkxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05sWW1aaVpXVXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTmtNMlk1WkRnc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNOaU1tWXlZbUlzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ000WTJVNU9XRXNYRnh1SUNCY1hGd2lORnhjWENJNklDTTJPV1JpTjJNc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNNMU1XTm1OallzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ00wTUdNd05UY3NYRnh1SUNCY1hGd2lOMXhjWENJNklDTXpOMkl5TkdRc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNeVpqbGxORFFzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ015WWpoaE0yVmNYRzRwTzF4Y2JseGNiaVJ2WXkxbmNtVmxiaTB3T2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFuY21WbGJpMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MW5jbVZsYmkweU9pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxbmNtVmxiaTB6T2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTFuY21WbGJpMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MW5jbVZsYmkwMU9pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxbmNtVmxiaTAyT2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFuY21WbGJpMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtVmxiaTFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MW5jbVZsYmkwNE9pQnRZWEF0WjJWMEtDUnZZeTFuY21WbGJpMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxbmNtVmxiaTA1T2lCdFlYQXRaMlYwS0NSdll5MW5jbVZsYmkxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQk1hVzFsWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MXNhVzFsTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlkwWm1ObE15eGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyVTVabUZqT0N4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJRNFpqVmhNaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMk13WldJM05TeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0kyRTVaVE0wWWl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXprMFpEZ3laQ3hjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJemd5WXpreFpTeGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6YzBZamd4Tml4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpZMllUZ3daaXhjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJelZqT1RRd1pGeGNiaWs3WEZ4dVhGeHVKRzlqTFd4cGJXVXRNRG9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRFNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0TXpvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUUTZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzAxT2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE5qb2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVGM2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMwNE9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXRPVG9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCWlpXeHNiM2RjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxYbGxiR3h2ZHkxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tWm1ZNVpHSXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTm1abVl6WW1Zc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNObVptVmpPVGtzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05tWm1Vd05qWXNYRnh1SUNCY1hGd2lORnhjWENJNklDTm1abVEwTTJJc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNObVkyTTBNVGtzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ05tWVdJd01EVXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTm1OVGxtTURBc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNObU1EaGpNREFzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ05sTmpjM01EQmNYRzRwTzF4Y2JseGNiaVJ2WXkxNVpXeHNiM2N0TURvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTB4T2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVEk2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3RNem9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MDBPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUVTZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE5qb2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkwM09pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRnNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0T1RvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRTl5WVc1blpWeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10YjNKaGJtZGxMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyWm1aalJsTml4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJabVpUaGpZeXhjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMlptWkRoaE9DeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0kyWm1ZekEzT0N4Y1hHNGdJRnhjWENJMFhGeGNJam9nSTJabVlUazBaQ3hjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJMlptT1RJeVlpeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0kyWmtOMlV4TkN4Y1hHNGdJRnhjWENJM1hGeGNJam9nSTJZM05qY3dOeXhjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJMlU0TlRrd1l5eGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0kyUTVORGd3Wmx4Y2JpazdYRnh1WEZ4dUpHOWpMVzl5WVc1blpTMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExURTZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE1qb2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMwek9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRRNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0TlRvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzAyT2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVGM2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXRPRG9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1EyOXNiM0lnYkdsemRGeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10WTI5c2IzSXRjM0JsWTNSeWRXMDZJQ0FnT1R0Y1hHNWNYRzRrYjJNdFkyOXNiM0l0YkdsemREb2dLRnhjYmlBZ0pHOWpMV2R5WVhrdGJHbHpkRG9nSUNBZ0lDQmNYRndpWjNKaGVWeGNYQ0lzWEZ4dUlDQWtiMk10Y21Wa0xXeHBjM1E2SUNBZ0lDQWdYRnhjSW5KbFpGeGNYQ0lzWEZ4dUlDQWtiMk10Y0dsdWF5MXNhWE4wT2lBZ0lDQWdJRnhjWENKd2FXNXJYRnhjSWl4Y1hHNGdJQ1J2WXkxbmNtRndaUzFzYVhOME9pQWdJQ0FnSUZ4Y1hDSm5jbUZ3WlZ4Y1hDSXNYRnh1SUNBa2IyTXRkbWx2YkdWMExXeHBjM1E2SUNBZ0lDQWdYRnhjSW5acGIyeGxkRnhjWENJc1hGeHVJQ0FrYjJNdGFXNWthV2R2TFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbWx1WkdsbmIxeGNYQ0lzWEZ4dUlDQWtiMk10WW14MVpTMXNhWE4wT2lBZ0lDQWdJRnhjWENKaWJIVmxYRnhjSWl4Y1hHNGdJQ1J2WXkxamVXRnVMV3hwYzNRNklDQWdJQ0FnWEZ4Y0ltTjVZVzVjWEZ3aUxGeGNiaUFnSkc5akxYUmxZV3d0YkdsemREb2dJQ0FnSUNCY1hGd2lkR1ZoYkZ4Y1hDSXNYRnh1SUNBa2IyTXRaM0psWlc0dGJHbHpkRG9nSUNBZ0lDQmNYRndpWjNKbFpXNWNYRndpTEZ4Y2JpQWdKRzlqTFd4cGJXVXRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWJHbHRaVnhjWENJc1hGeHVJQ0FrYjJNdGVXVnNiRzkzTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbmxsYkd4dmQxeGNYQ0lzWEZ4dUlDQWtiMk10YjNKaGJtZGxMV3hwYzNRNklDQWdJQ0FnWEZ4Y0ltOXlZVzVuWlZ4Y1hDSmNYRzRwTzF4Y2Jsd2lYU3hjSW5OdmRYSmpaVkp2YjNSY0lqcGNJbHdpZlYwcE8xeHVMeThnUlhod2IzSjBjMXh1Wlhod2IzSjBJR1JsWm1GMWJIUWdYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4N1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2NvbXBvbmVudHMvVG9vbGJhci5zY3NzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1Rvb2x0aXAuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1Rvb2x0aXAuc2NzcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8vIEltcG9ydHNcXG5cXG5cXG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpKChfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQoKSkpO1xcbi8vIE1vZHVsZVxcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXFxcIjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcXFxufVxcXFxuXFxcXG4uZXhjYWxpZHJhdy10b29sdGlwIHtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICB6LWluZGV4OiAxMDAwO1xcXFxuICBwYWRkaW5nOiA4cHg7XFxcXG4gIGJvcmRlci1yYWRpdXM6IDZweDtcXFxcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXFxcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxcXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcXFxcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcXFxcbiAgbGluZS1oZWlnaHQ6IDEuNTtcXFxcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcXFxuICBmb250LXNpemU6IDEzcHg7XFxcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxcXG4gIGNvbG9yOiAjZmZmZmZmO1xcXFxuICBkaXNwbGF5OiBub25lO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXctdG9vbHRpcC5leGNhbGlkcmF3LXRvb2x0aXAtLXZpc2libGUge1xcXFxuICBkaXNwbGF5OiBibG9jaztcXFxcbn1cXFxcblxcXFxuLmV4Y2FsaWRyYXctdG9vbHRpcC13cmFwcGVyIHtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbn1cXFxcblxcXFxuLmV4Y2FsaWRyYXctdG9vbHRpcC1pY29uIHtcXFxcbiAgd2lkdGg6IDAuOWVtO1xcXFxuICBoZWlnaHQ6IDAuOWVtO1xcXFxuICBtYXJnaW4tbGVmdDogNXB4O1xcXFxuICBtYXJnaW4tdG9wOiAxcHg7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG59XFxcXG4uZXhjYWxpZHJhdy0tbW9iaWxlLmV4Y2FsaWRyYXctdG9vbHRpcC1pY29uIHtcXFxcbiAgZGlzcGxheTogbm9uZTtcXFxcbn1cXFwiLCBcXFwiXFxcIix7XFxcInZlcnNpb25cXFwiOjMsXFxcInNvdXJjZXNcXFwiOltcXFwid2VicGFjazovLy4vLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1xcXCIsXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvVG9vbHRpcC5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQVVBO0VBQ0UsMkNBQUE7QUNURjs7QUFDQTtFQUNFLGtCQUFBO0VBQ0EsYUFBQTtFQUVBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLHNCQUFBO0VBQ0Esb0JBQUE7RUFDQSxxQkFBQTtFQUVBLG1CQ0RpQjtFREdqQixnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsY0NSaUI7RURVakIsYUFBQTtBQUZGO0FBSUU7RUFDRSxjQUFBO0FBRko7O0FBT0E7RUFDRSxhQUFBO0FBSkY7O0FBT0E7RUFDRSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGFBQUE7QUFKRjtBRC9CVztFQ3NDUCxhQUFBO0FBSkpcXFwiLFxcXCJzb3VyY2VzQ29udGVudFxcXCI6W1xcXCJAaW1wb3J0IFxcXFxcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFxcXFxcIjtcXFxcblxcXFxuQG1peGluIGlzTW9iaWxlKCkge1xcXFxuICBAYXQtcm9vdCAuZXhjYWxpZHJhdy0tbW9iaWxlI3smfSB7XFxcXG4gICAgQGNvbnRlbnQ7XFxcXG4gIH1cXFxcbn1cXFxcblxcXFxuJHRoZW1lLWZpbHRlcjogXFxcXFxcXCJpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZylcXFxcXFxcIjtcXFxcblxcXFxuOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiB1bnF1b3RlKCR0aGVtZS1maWx0ZXIpO1xcXFxufVxcXFxuXFxcIixcXFwiQGltcG9ydCBcXFxcXFxcIi4uL2Nzcy92YXJpYWJsZXMubW9kdWxlXFxcXFxcXCI7XFxcXG5cXFxcbi8vIGNvbnRhaW5lciBpbiBib2R5IHdoZXJlIHRoZSBhY3R1YWwgdG9vbHRpcCBpcyBhcHBlbmRlZCB0b1xcXFxuLmV4Y2FsaWRyYXctdG9vbHRpcCB7XFxcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgei1pbmRleDogMTAwMDtcXFxcblxcXFxuICBwYWRkaW5nOiA4cHg7XFxcXG4gIGJvcmRlci1yYWRpdXM6IDZweDtcXFxcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXFxcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxcXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcXFxcblxcXFxuICBiYWNrZ3JvdW5kOiAkb2MtYmxhY2s7XFxcXG5cXFxcbiAgbGluZS1oZWlnaHQ6IDEuNTtcXFxcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcXFxuICBmb250LXNpemU6IDEzcHg7XFxcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxcXG4gIGNvbG9yOiAkb2Mtd2hpdGU7XFxcXG5cXFxcbiAgZGlzcGxheTogbm9uZTtcXFxcblxcXFxuICAmLmV4Y2FsaWRyYXctdG9vbHRpcC0tdmlzaWJsZSB7XFxcXG4gICAgZGlzcGxheTogYmxvY2s7XFxcXG4gIH1cXFxcbn1cXFxcblxcXFxuLy8gd3JhcHMgdGhlIGVsZW1lbnQgd2Ugd2FudCB0byBhcHBseSB0aGUgdG9vbHRpcCB0b1xcXFxuLmV4Y2FsaWRyYXctdG9vbHRpcC13cmFwcGVyIHtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbn1cXFxcblxcXFxuLmV4Y2FsaWRyYXctdG9vbHRpcC1pY29uIHtcXFxcbiAgd2lkdGg6IDAuOWVtO1xcXFxuICBoZWlnaHQ6IDAuOWVtO1xcXFxuICBtYXJnaW4tbGVmdDogNXB4O1xcXFxuICBtYXJnaW4tdG9wOiAxcHg7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG5cXFxcbiAgQGluY2x1ZGUgaXNNb2JpbGUge1xcXFxuICAgIGRpc3BsYXk6IG5vbmU7XFxcXG4gIH1cXFxcbn1cXFxcblxcXCIsXFxcIi8vXFxcXG4vL1xcXFxuLy8gIFx1RDgzNVx1RERENiBcdUQ4MzVcdURERTIgXHVEODM1XHVERERGIFx1RDgzNVx1RERFMiBcdUQ4MzVcdURERTVcXFxcbi8vICB2IDEuOS4xXFxcXG4vL1xcXFxuLy8gIFx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVxcXFxuXFxcXG5cXFxcbi8vICBHZW5lcmFsXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy13aGl0ZTogICAgICAgICAjZmZmZmZmO1xcXFxuJG9jLWJsYWNrOiAgICAgICAgICMwMDAwMDA7XFxcXG5cXFxcblxcXFxuLy8gIEdyYXlcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyYXktbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y4ZjlmYSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmMWYzZjUsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZTllY2VmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2RlZTJlNixcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNjZWQ0ZGEsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjYWRiNWJkLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzg2OGU5NixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM0OTUwNTcsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMzQzYTQwLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzIxMjUyOVxcXFxuKTtcXFxcblxcXFxuJG9jLWdyYXktMDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0xOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTI6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS00OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTU6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS03OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTg6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktOTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFJlZFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtcmVkLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY1ZjUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZlM2UzLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmYzljOSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmE4YTgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmY4Nzg3LFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZmNmI2YixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmYTUyNTIsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjAzZTNlLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2UwMzEzMSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNjOTJhMmFcXFxcbik7XFxcXG5cXFxcbiRvYy1yZWQtMDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtMTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtMjogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtMzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNjogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtNzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1yZWQtODogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1yZWQtOTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgUGlua1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtcGluay1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmMGY2LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZGVlYixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmY2MyZDcsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmFhMmMxLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2Y3ODNhYyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmMDY1OTUsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZTY0OTgwLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Q2MzM2YyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNjMjI1NWMsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjYTYxZTRkXFxcXG4pO1xcXFxuXFxcXG4kb2MtcGluay0wOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTE6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtcGluay0zOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTQ6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtcGluay02OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTc6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstODogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtcGluay05OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgR3JhcGVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyYXBlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmOGYwZmMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZjNkOWZhLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2VlYmVmYSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNlNTk5ZjcsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZGE3N2YyLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2NjNWRlOCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNiZTRiZGIsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjYWUzZWM5LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzljMzZiNSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM4NjJlOWNcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmFwZS0wOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTI6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0zOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTU6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS02OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTg6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS05OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFZpb2xldFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtdmlvbGV0LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmM2YwZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZTVkYmZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2QwYmZmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNiMTk3ZmMsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjOTc3NWZhLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzg0NWVmNyxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM3OTUwZjIsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNzA0OGU4LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzY3NDFkOSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM1ZjNkYzRcXFxcbik7XFxcXG5cXFxcbiRvYy12aW9sZXQtMDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtMTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtMjogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtMzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNjogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtNzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtODogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy12aW9sZXQtOTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgSW5kaWdvXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1pbmRpZ28tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2VkZjJmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkYmU0ZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYmFjOGZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzkxYTdmZixcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM3NDhmZmMsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjNWM3Y2ZhLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzRjNmVmNSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM0MjYzZWIsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjM2I1YmRiLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzM2NGZjN1xcXFxuKTtcXFxcblxcXFxuJG9jLWluZGlnby0wOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby0xOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby0yOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby0zOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby00OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby01OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby02OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby03OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby04OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWluZGlnby05OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBCbHVlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ibHVlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlN2Y1ZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZDBlYmZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2E1ZDhmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM3NGMwZmMsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNGRhYmY3LFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzMzOWFmMCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICMyMjhiZTYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMWM3ZWQ2LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzE5NzFjMixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMxODY0YWJcXFxcbik7XFxcXG5cXFxcbiRvYy1ibHVlLTA6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0yOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTM6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS01OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTY6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS04OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTk6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBDeWFuXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1jeWFuLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlM2ZhZmMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjYzVmNmZhLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogIzk5ZTlmMixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM2NmQ5ZTgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjM2JjOWRiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzIyYjhjZixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICMxNWFhYmYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMTA5OGFkLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzBjODU5OSxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMwYjcyODVcXFxcbik7XFxcXG5cXFxcbiRvYy1jeWFuLTA6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0yOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTM6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi01OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTY6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi04OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTk6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBUZWFsXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy10ZWFsLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlNmZjZjUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjYzNmYWU4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogIzk2ZjJkNyxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM2M2U2YmUsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjMzhkOWE5LFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzIwYzk5NyxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICMxMmI4ODYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMGNhNjc4LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzA5OTI2OCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMwODdmNWJcXFxcbik7XFxcXG5cXFxcbiRvYy10ZWFsLTA6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0yOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTM6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC01OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTY6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC04OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTk6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBHcmVlblxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JlZW4tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ViZmJlZSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkM2Y5ZDgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYjJmMmJiLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzhjZTk5YSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM2OWRiN2MsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjNTFjZjY2LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzQwYzA1NyxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMzN2IyNGQsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMmY5ZTQ0LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzJiOGEzZVxcXFxuKTtcXFxcblxcXFxuJG9jLWdyZWVuLTA6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0xOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMjogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTM6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi00OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTY6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi03OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tODogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTk6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgTGltZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtbGltZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjRmY2UzLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2U5ZmFjOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNkOGY1YTIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjYzBlYjc1LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2E5ZTM0YixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM5NGQ4MmQsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjODJjOTFlLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzc0YjgxNixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM2NmE4MGYsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjNWM5NDBkXFxcXG4pO1xcXFxuXFxcXG4kb2MtbGltZS0wOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTE6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0zOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTQ6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtbGltZS02OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTc6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtODogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtbGltZS05OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgWWVsbG93XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy15ZWxsb3ctbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjlkYixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmYzYmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZlYzk5LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmZTA2NixcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZmQ0M2IsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmNjNDE5LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZhYjAwNSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmNTlmMDAsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZjA4YzAwLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2U2NzcwMFxcXFxuKTtcXFxcblxcXFxuJG9jLXllbGxvdy0wOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy0xOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy0yOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy0zOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy00OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy01OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy02OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy03OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy04OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXllbGxvdy05OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBPcmFuZ2VcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLW9yYW5nZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmNGU2LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZThjYyxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmQ4YTgsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZjMDc4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmYTk0ZCxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmZjkyMmIsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmQ3ZTE0LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Y3NjcwNyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNlODU5MGMsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjZDk0ODBmXFxcXG4pO1xcXFxuXFxcXG4kb2Mtb3JhbmdlLTA6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTE6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTI6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTM6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTQ6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTU6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTY6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTc6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTg6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2Mtb3JhbmdlLTk6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIENvbG9yIGxpc3RcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWNvbG9yLXNwZWN0cnVtOiAgIDk7XFxcXG5cXFxcbiRvYy1jb2xvci1saXN0OiAoXFxcXG4gICRvYy1ncmF5LWxpc3Q6ICAgICAgXFxcXFxcXCJncmF5XFxcXFxcXCIsXFxcXG4gICRvYy1yZWQtbGlzdDogICAgICBcXFxcXFxcInJlZFxcXFxcXFwiLFxcXFxuICAkb2MtcGluay1saXN0OiAgICAgIFxcXFxcXFwicGlua1xcXFxcXFwiLFxcXFxuICAkb2MtZ3JhcGUtbGlzdDogICAgICBcXFxcXFxcImdyYXBlXFxcXFxcXCIsXFxcXG4gICRvYy12aW9sZXQtbGlzdDogICAgICBcXFxcXFxcInZpb2xldFxcXFxcXFwiLFxcXFxuICAkb2MtaW5kaWdvLWxpc3Q6ICAgICAgXFxcXFxcXCJpbmRpZ29cXFxcXFxcIixcXFxcbiAgJG9jLWJsdWUtbGlzdDogICAgICBcXFxcXFxcImJsdWVcXFxcXFxcIixcXFxcbiAgJG9jLWN5YW4tbGlzdDogICAgICBcXFxcXFxcImN5YW5cXFxcXFxcIixcXFxcbiAgJG9jLXRlYWwtbGlzdDogICAgICBcXFxcXFxcInRlYWxcXFxcXFxcIixcXFxcbiAgJG9jLWdyZWVuLWxpc3Q6ICAgICAgXFxcXFxcXCJncmVlblxcXFxcXFwiLFxcXFxuICAkb2MtbGltZS1saXN0OiAgICAgIFxcXFxcXFwibGltZVxcXFxcXFwiLFxcXFxuICAkb2MteWVsbG93LWxpc3Q6ICAgICAgXFxcXFxcXCJ5ZWxsb3dcXFxcXFxcIixcXFxcbiAgJG9jLW9yYW5nZS1saXN0OiAgICAgIFxcXFxcXFwib3JhbmdlXFxcXFxcXCJcXFxcbik7XFxcXG5cXFwiXSxcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoX19fQ1NTX0xPQURFUl9FWFBPUlRfX18pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpOXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVViMjlzZEdsd0xuTmpjM011YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdRVUZCUVR0QlFVTTRTRHRCUVVOcVFqdEJRVU0zUnl3NFFrRkJPRUlzZFVkQlFUSkNMRU5CUVVNc1owaEJRWEZETzBGQlF5OUdPMEZCUTBFc2JVUkJRVzFFTEdkRVFVRm5SQ3hIUVVGSExIbENRVUY1UWl4MVFrRkJkVUlzYTBKQlFXdENMR2xDUVVGcFFpeDFRa0ZCZFVJc01rSkJRVEpDTEhsQ1FVRjVRaXd3UWtGQk1FSXNkMEpCUVhkQ0xIRkNRVUZ4UWl4MVFrRkJkVUlzYjBKQlFXOUNMSEZDUVVGeFFpeHRRa0ZCYlVJc2EwSkJRV3RDTEVkQlFVY3NiVVJCUVcxRUxHMUNRVUZ0UWl4SFFVRkhMR2xEUVVGcFF5eHJRa0ZCYTBJc1IwRkJSeXc0UWtGQk9FSXNhVUpCUVdsQ0xHdENRVUZyUWl4eFFrRkJjVUlzYjBKQlFXOUNMR3RDUVVGclFpeEhRVUZITEN0RFFVRXJReXhyUWtGQmEwSXNSMEZCUnl4UFFVRlBMRFpOUVVFMlRTeFhRVUZYTEUxQlFVMHNTMEZCU3l4WFFVRlhMRlZCUVZVc1ZVRkJWU3hYUVVGWExGZEJRVmNzVjBGQlZ5eFhRVUZYTEZsQlFWa3NXVUZCV1N4WFFVRlhMRlZCUVZVc1YwRkJWeXhYUVVGWExGZEJRVmNzUzBGQlN5eExRVUZMTEZWQlFWVXNUVUZCVFN4TFFVRkxMRlZCUVZVc1RVRkJUU3hMUVVGTExGVkJRVlVzVlVGQlZTeFhRVUZYTEZWQlFWVXNWVUZCVlN4TFFVRkxMRTFCUVUwc1YwRkJWeXhuUlVGQlowVXNkVUpCUVhWQ0xHdERRVUZyUXl4SlFVRkpMR1ZCUVdVc1MwRkJTeXhIUVVGSExITkVRVUZ6UkN4aFFVRmhMSGREUVVGM1F5eEhRVUZITEhsRFFVRjVReXgxUmtGQmRVWXNkVUpCUVhWQ0xHdENRVUZyUWl4dFFrRkJiVUlzZFVKQlFYVkNMREpDUVVFeVFpeDVRa0ZCZVVJc01FSkJRVEJDTERSQ1FVRTBRaXgxUWtGQmRVSXNkVUpCUVhWQ0xHOUNRVUZ2UWl4eFFrRkJjVUlzY1VKQlFYRkNMRzlDUVVGdlFpeHhRMEZCY1VNc2NVSkJRWEZDTEV0QlFVc3NSMEZCUnl4MVJrRkJkVVlzYTBKQlFXdENMRWRCUVVjc09FSkJRVGhDTEdsQ1FVRnBRaXhyUWtGQmEwSXNjVUpCUVhGQ0xHOUNRVUZ2UWl4clFrRkJhMElzZVVKQlFYbENMRzlDUVVGdlFpeExRVUZMTEVkQlFVY3NhMHhCUVd0TUxEWkNRVUUyUWl3MFVVRkJORkVzT0VOQlFUaERMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMREJSUVVFd1VTdzBRMEZCTkVNc01FTkJRVEJETERCRFFVRXdReXd3UTBGQk1FTXNNRU5CUVRCRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc05GRkJRVFJSTERoRFFVRTRReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXc0VVVGQk9GRXNaMFJCUVdkRUxEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExHZFNRVUZuVWl4clJFRkJhMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjFKQlFXZFNMR3RFUVVGclJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDdzBVVUZCTkZFc09FTkJRVGhETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSUlFVRTBVU3c0UTBGQk9FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORkZCUVRSUkxEaERRVUU0UXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3NFVVRkJPRkVzWjBSQlFXZEVMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRFJSUVVFMFVTdzRRMEZCT0VNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc1oxSkJRV2RTTEd0RVFVRnJSQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huVWtGQloxSXNhMFJCUVd0RUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxIbEdRVUY1Uml4MVpFRkJkV1FzY1VKQlFYRkNPMEZCUXpOMldUdEJRVU5CTEdsRlFVRmxMSFZDUVVGMVFpeEZRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZWRzl2YkhScGNDNXpZM056UHpZME9UTWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHk4Z1NXMXdiM0owYzF4dWFXMXdiM0owSUY5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDFOUFZWSkRSVTFCVUY5SlRWQlBVbFJmWDE4Z1puSnZiU0JjSWk0dUwzQmhZMnRoWjJWekwyVjRZMkZzYVdSeVlYY3ZibTlrWlY5dGIyUjFiR1Z6TDJOemN5MXNiMkZrWlhJdlpHbHpkQzl5ZFc1MGFXMWxMM052ZFhKalpVMWhjSE11YW5OY0lqdGNibWx0Y0c5eWRDQmZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOUpUVkJQVWxSZlgxOGdabkp2YlNCY0lpNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5eWRXNTBhVzFsTDJGd2FTNXFjMXdpTzF4dWRtRnlJRjlmWDBOVFUxOU1UMEZFUlZKZlJWaFFUMUpVWDE5ZklEMGdYMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZTVTFRVDFKVVgxOWZLRjlmWDBOVFUxOU1UMEZFUlZKZlFWQkpYMU5QVlZKRFJVMUJVRjlKVFZCUFVsUmZYMThwTzF4dUx5OGdUVzlrZFd4bFhHNWZYMTlEVTFOZlRFOUJSRVZTWDBWWVVFOVNWRjlmWHk1d2RYTm9LRnR0YjJSMWJHVXVhV1FzSUZ3aU9tVjRjRzl5ZENCN1hGeHVJQ0IwYUdWdFpVWnBiSFJsY2pvZ2FXNTJaWEowS0RrekpTa2dhSFZsTFhKdmRHRjBaU2d4T0RCa1pXY3BPMXhjYm4xY1hHNWNYRzR1WlhoallXeHBaSEpoZHkxMGIyOXNkR2x3SUh0Y1hHNGdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjWEc0Z0lIb3RhVzVrWlhnNklERXdNREE3WEZ4dUlDQndZV1JrYVc1bk9pQTRjSGc3WEZ4dUlDQmliM0prWlhJdGNtRmthWFZ6T2lBMmNIZzdYRnh1SUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXhjYmlBZ2NHOXBiblJsY2kxbGRtVnVkSE02SUc1dmJtVTdYRnh1SUNCM2IzSmtMWGR5WVhBNklHSnlaV0ZyTFhkdmNtUTdYRnh1SUNCaVlXTnJaM0p2ZFc1a09pQWpNREF3TURBd08xeGNiaUFnYkdsdVpTMW9aV2xuYUhRNklERXVOVHRjWEc0Z0lIUmxlSFF0WVd4cFoyNDZJR05sYm5SbGNqdGNYRzRnSUdadmJuUXRjMmw2WlRvZ01UTndlRHRjWEc0Z0lHWnZiblF0ZDJWcFoyaDBPaUExTURBN1hGeHVJQ0JqYjJ4dmNqb2dJMlptWm1abVpqdGNYRzRnSUdScGMzQnNZWGs2SUc1dmJtVTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNMWFJ2YjJ4MGFYQXVaWGhqWVd4cFpISmhkeTEwYjI5c2RHbHdMUzEyYVhOcFlteGxJSHRjWEc0Z0lHUnBjM0JzWVhrNklHSnNiMk5yTzF4Y2JuMWNYRzVjWEc0dVpYaGpZV3hwWkhKaGR5MTBiMjlzZEdsd0xYZHlZWEJ3WlhJZ2UxeGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNYRzU5WEZ4dVhGeHVMbVY0WTJGc2FXUnlZWGN0ZEc5dmJIUnBjQzFwWTI5dUlIdGNYRzRnSUhkcFpIUm9PaUF3TGpsbGJUdGNYRzRnSUdobGFXZG9kRG9nTUM0NVpXMDdYRnh1SUNCdFlYSm5hVzR0YkdWbWREb2dOWEI0TzF4Y2JpQWdiV0Z5WjJsdUxYUnZjRG9nTVhCNE8xeGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY3RMVzF2WW1sc1pTNWxlR05oYkdsa2NtRjNMWFJ2YjJ4MGFYQXRhV052YmlCN1hGeHVJQ0JrYVhOd2JHRjVPaUJ1YjI1bE8xeGNibjFjSWl3Z1hDSmNJaXg3WENKMlpYSnphVzl1WENJNk15eGNJbk52ZFhKalpYTmNJanBiWENKM1pXSndZV05yT2k4dkxpOHVMaTh1TGk5amMzTXZkbUZ5YVdGaWJHVnpMbTF2WkhWc1pTNXpZM056WENJc1hDSjNaV0p3WVdOck9pOHZMaTh1TGk4dUxpOWpiMjF3YjI1bGJuUnpMMVJ2YjJ4MGFYQXVjMk56YzF3aUxGd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwyOXdaVzR0WTI5c2IzSXZiM0JsYmkxamIyeHZjaTV6WTNOelhDSmRMRndpYm1GdFpYTmNJanBiWFN4Y0ltMWhjSEJwYm1kelhDSTZYQ0pCUVZWQk8wVkJRMFVzTWtOQlFVRTdRVU5VUmpzN1FVRkRRVHRGUVVORkxHdENRVUZCTzBWQlEwRXNZVUZCUVR0RlFVVkJMRmxCUVVFN1JVRkRRU3hyUWtGQlFUdEZRVU5CTEhOQ1FVRkJPMFZCUTBFc2IwSkJRVUU3UlVGRFFTeHhRa0ZCUVR0RlFVVkJMRzFDUTBScFFqdEZSRWRxUWl4blFrRkJRVHRGUVVOQkxHdENRVUZCTzBWQlEwRXNaVUZCUVR0RlFVTkJMR2RDUVVGQk8wVkJRMEVzWTBOU2FVSTdSVVJWYWtJc1lVRkJRVHRCUVVaR08wRkJTVVU3UlVGRFJTeGpRVUZCTzBGQlJrbzdPMEZCVDBFN1JVRkRSU3hoUVVGQk8wRkJTa1k3TzBGQlQwRTdSVUZEUlN4WlFVRkJPMFZCUTBFc1lVRkJRVHRGUVVOQkxHZENRVUZCTzBWQlEwRXNaVUZCUVR0RlFVTkJMR0ZCUVVFN1FVRktSanRCUkM5Q1Z6dEZRM05EVUN4aFFVRkJPMEZCU2twY0lpeGNJbk52ZFhKalpYTkRiMjUwWlc1MFhDSTZXMXdpUUdsdGNHOXlkQ0JjWEZ3aWIzQmxiaTFqYjJ4dmNpOXZjR1Z1TFdOdmJHOXlMbk5qYzNOY1hGd2lPMXhjYmx4Y2JrQnRhWGhwYmlCcGMwMXZZbWxzWlNncElIdGNYRzRnSUVCaGRDMXliMjkwSUM1bGVHTmhiR2xrY21GM0xTMXRiMkpwYkdVamV5WjlJSHRjWEc0Z0lDQWdRR052Ym5SbGJuUTdYRnh1SUNCOVhGeHVmVnhjYmx4Y2JpUjBhR1Z0WlMxbWFXeDBaWEk2SUZ4Y1hDSnBiblpsY25Rb09UTWxLU0JvZFdVdGNtOTBZWFJsS0RFNE1HUmxaeWxjWEZ3aU8xeGNibHhjYmpwbGVIQnZjblFnZTF4Y2JpQWdkR2hsYldWR2FXeDBaWEk2SUhWdWNYVnZkR1VvSkhSb1pXMWxMV1pwYkhSbGNpazdYRnh1ZlZ4Y2Jsd2lMRndpUUdsdGNHOXlkQ0JjWEZ3aUxpNHZZM056TDNaaGNtbGhZbXhsY3k1dGIyUjFiR1ZjWEZ3aU8xeGNibHhjYmk4dklHTnZiblJoYVc1bGNpQnBiaUJpYjJSNUlIZG9aWEpsSUhSb1pTQmhZM1IxWVd3Z2RHOXZiSFJwY0NCcGN5QmhjSEJsYm1SbFpDQjBiMXhjYmk1bGVHTmhiR2xrY21GM0xYUnZiMngwYVhBZ2UxeGNiaUFnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4Y2JpQWdlaTFwYm1SbGVEb2dNVEF3TUR0Y1hHNWNYRzRnSUhCaFpHUnBibWM2SURod2VEdGNYRzRnSUdKdmNtUmxjaTF5WVdScGRYTTZJRFp3ZUR0Y1hHNGdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hGeHVJQ0J3YjJsdWRHVnlMV1YyWlc1MGN6b2dibTl1WlR0Y1hHNGdJSGR2Y21RdGQzSmhjRG9nWW5KbFlXc3RkMjl5WkR0Y1hHNWNYRzRnSUdKaFkydG5jbTkxYm1RNklDUnZZeTFpYkdGamF6dGNYRzVjWEc0Z0lHeHBibVV0YUdWcFoyaDBPaUF4TGpVN1hGeHVJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEZ4dUlDQm1iMjUwTFhOcGVtVTZJREV6Y0hnN1hGeHVJQ0JtYjI1MExYZGxhV2RvZERvZ05UQXdPMXhjYmlBZ1kyOXNiM0k2SUNSdll5MTNhR2wwWlR0Y1hHNWNYRzRnSUdScGMzQnNZWGs2SUc1dmJtVTdYRnh1WEZ4dUlDQW1MbVY0WTJGc2FXUnlZWGN0ZEc5dmJIUnBjQzB0ZG1semFXSnNaU0I3WEZ4dUlDQWdJR1JwYzNCc1lYazZJR0pzYjJOck8xeGNiaUFnZlZ4Y2JuMWNYRzVjWEc0dkx5QjNjbUZ3Y3lCMGFHVWdaV3hsYldWdWRDQjNaU0IzWVc1MElIUnZJR0Z3Y0d4NUlIUm9aU0IwYjI5c2RHbHdJSFJ2WEZ4dUxtVjRZMkZzYVdSeVlYY3RkRzl2YkhScGNDMTNjbUZ3Y0dWeUlIdGNYRzRnSUdScGMzQnNZWGs2SUdac1pYZzdYRnh1ZlZ4Y2JseGNiaTVsZUdOaGJHbGtjbUYzTFhSdmIyeDBhWEF0YVdOdmJpQjdYRnh1SUNCM2FXUjBhRG9nTUM0NVpXMDdYRnh1SUNCb1pXbG5hSFE2SURBdU9XVnRPMXhjYmlBZ2JXRnlaMmx1TFd4bFpuUTZJRFZ3ZUR0Y1hHNGdJRzFoY21kcGJpMTBiM0E2SURGd2VEdGNYRzRnSUdScGMzQnNZWGs2SUdac1pYZzdYRnh1WEZ4dUlDQkFhVzVqYkhWa1pTQnBjMDF2WW1sc1pTQjdYRnh1SUNBZ0lHUnBjM0JzWVhrNklHNXZibVU3WEZ4dUlDQjlYRnh1ZlZ4Y2Jsd2lMRndpTHk5Y1hHNHZMMXhjYmk4dklDRHduWmVXSVBDZGw2SWc4SjJYbnlEd25aZWlJUENkbDZWY1hHNHZMeUFnZGlBeExqa3VNVnhjYmk4dlhGeHVMeThnSU9LVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnVnhjYmx4Y2JseGNiaTh2SUNCSFpXNWxjbUZzWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MTNhR2wwWlRvZ0lDQWdJQ0FnSUNBalptWm1abVptTzF4Y2JpUnZZeTFpYkdGamF6b2dJQ0FnSUNBZ0lDQWpNREF3TURBd08xeGNibHhjYmx4Y2JpOHZJQ0JIY21GNVhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFuY21GNUxXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJZNFpqbG1ZU3hjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMll4WmpObU5TeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyVTVaV05sWml4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJSbFpUSmxOaXhjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJMk5sWkRSa1lTeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0kyRmtZalZpWkN4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpnMk9HVTVOaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJelE1TlRBMU55eGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6TTBNMkUwTUN4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpJeE1qVXlPVnhjYmlrN1hGeHVYRnh1Skc5akxXZHlZWGt0TURvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxURTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzB5T2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE16b2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVFE2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMwMU9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3ROam9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRjNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0T1RvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQlNaV1JjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxYSmxaQzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1abVkxWmpVc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObVptVXpaVE1zWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05tWm1NNVl6a3NYRnh1SUNCY1hGd2lNMXhjWENJNklDTm1abUU0WVRnc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNObVpqZzNPRGNzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ05tWmpaaU5tSXNYRnh1SUNCY1hGd2lObHhjWENJNklDTm1ZVFV5TlRJc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNObU1ETmxNMlVzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ05sTURNeE16RXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTmpPVEpoTW1GY1hHNHBPMXhjYmx4Y2JpUnZZeTF5WldRdE1Eb2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVEk2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MXlaV1F0TXpvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMWEpsWkMwME9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUVTZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxeVpXUXROam9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxYSmxaQzAzT2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRnNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE9Ub2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRkJwYm10Y1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMWEJwYm1zdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWm1abU1HWTJMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpabVprWldWaUxGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalptTmpNbVEzTEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWm1GaE1tTXhMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpaamM0TTJGakxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBalpqQTJOVGsxTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqWlRZME9UZ3dMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpaRFl6TXpaakxGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBall6SXlOVFZqTEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqWVRZeFpUUmtYRnh1S1R0Y1hHNWNYRzRrYjJNdGNHbHVheTB3T2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE1Ub2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVEk2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkwek9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3RORG9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRVNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MDJPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0TnpvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUZzZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTA1T2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lFZHlZWEJsWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MW5jbUZ3WlMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tT0dZd1ptTXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTm1NMlE1Wm1Fc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNObFpXSmxabUVzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05sTlRrNVpqY3NYRnh1SUNCY1hGd2lORnhjWENJNklDTmtZVGMzWmpJc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNOall6VmtaVGdzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ05pWlRSaVpHSXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTmhaVE5sWXprc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNNVl6TTJZalVzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ000TmpKbE9XTmNYRzRwTzF4Y2JseGNiaVJ2WXkxbmNtRndaUzB3T2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMweU9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzB6T2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMwMU9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzAyT2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMwNE9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzA1T2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQldhVzlzWlhSY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMWFpwYjJ4bGRDMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObU0yWXdabVlzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05sTldSaVptWXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTmtNR0ptWm1Zc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNOaU1UazNabU1zWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ001TnpjMVptRXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTTRORFZsWmpjc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNNM09UVXdaaklzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ00zTURRNFpUZ3NYRnh1SUNCY1hGd2lPRnhjWENJNklDTTJOelF4WkRrc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNMVpqTmtZelJjWEc0cE8xeGNibHhjYmlSdll5MTJhVzlzWlhRdE1Eb2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMweE9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRJNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0TXpvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzAwT2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVFU2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXROam9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUZzZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE9Ub2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUVsdVpHbG5iMXhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGFXNWthV2R2TFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlZrWmpKbVppeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyUmlaVFJtWml4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJKaFl6aG1aaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJemt4WVRkbVppeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0l6YzBPR1ptWXl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXpWak4yTm1ZU3hjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJelJqTm1WbU5TeGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6UXlOak5sWWl4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpOaU5XSmtZaXhjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJek0yTkdaak4xeGNiaWs3WEZ4dVhGeHVKRzlqTFdsdVpHbG5ieTB3T2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVEU2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHRNam9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MHpPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUUTZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE5Ub2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkwMk9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRjNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0T0RvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTA1T2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdRbXgxWlZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRZbXgxWlMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05sTjJZMVptWXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTmtNR1ZpWm1Zc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNOaE5XUTRabVlzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ00zTkdNd1ptTXNYRnh1SUNCY1hGd2lORnhjWENJNklDTTBaR0ZpWmpjc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNNek16bGhaakFzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ015TWpoaVpUWXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTXhZemRsWkRZc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNeE9UY3hZeklzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ014T0RZMFlXSmNYRzRwTzF4Y2JseGNiaVJ2WXkxaWJIVmxMVEE2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMweE9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXRNam9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRNNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10WW14MVpTMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0TlRvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUWTZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzAzT2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE9Eb2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVGs2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1EzbGhibHhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdFkzbGhiaTFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTmxNMlpoWm1Nc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNOak5XWTJabUVzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ001T1dVNVpqSXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTTJObVE1WlRnc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNNelltTTVaR0lzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ015TW1JNFkyWXNYRnh1SUNCY1hGd2lObHhjWENJNklDTXhOV0ZoWW1Zc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNeE1EazRZV1FzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ013WXpnMU9Ua3NYRnh1SUNCY1hGd2lPVnhjWENJNklDTXdZamN5T0RWY1hHNHBPMXhjYmx4Y2JpUnZZeTFqZVdGdUxUQTZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTB4T2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE1qb2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVE02SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkwME9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHROVG9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRZNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0T0RvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxUazZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnVkdWaGJGeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10ZEdWaGJDMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObE5tWmpaalVzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05qTTJaaFpUZ3NYRnh1SUNCY1hGd2lNbHhjWENJNklDTTVObVl5WkRjc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNNMk0yVTJZbVVzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ016T0dRNVlUa3NYRnh1SUNCY1hGd2lOVnhjWENJNklDTXlNR001T1Rjc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNNeE1tSTRPRFlzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ013WTJFMk56Z3NYRnh1SUNCY1hGd2lPRnhjWENJNklDTXdPVGt5Tmpnc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNd09EZG1OV0pjWEc0cE8xeGNibHhjYmlSdll5MTBaV0ZzTFRBNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0TWpvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUTTZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzAwT2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE5Ub2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVFk2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMwM09pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3RPRG9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRrNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdSM0psWlc1Y1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV2R5WldWdUxXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJWaVptSmxaU3hjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlF6Wmpsa09DeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kySXlaakppWWl4Y1hHNGdJRnhjWENJelhGeGNJam9nSXpoalpUazVZU3hjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJelk1WkdJM1l5eGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0l6VXhZMlkyTml4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpRd1l6QTFOeXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJek0zWWpJMFpDeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6Sm1PV1UwTkN4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpKaU9HRXpaVnhjYmlrN1hGeHVYRnh1Skc5akxXZHlaV1Z1TFRBNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVEU2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUSTZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRNNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVFE2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUVTZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRZNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVGM2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUZzZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRrNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRXhwYldWY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV3hwYldVdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWmpSbVkyVXpMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpaVGxtWVdNNExGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalpEaG1OV0V5TEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWXpCbFlqYzFMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpZVGxsTXpSaUxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBak9UUmtPREprTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqT0RKak9URmxMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpOelJpT0RFMkxGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak5qWmhPREJtTEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTldNNU5EQmtYRnh1S1R0Y1hHNWNYRzRrYjJNdGJHbHRaUzB3T2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE1Ub2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVEk2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMwek9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXRORG9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRVNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0TnpvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUZzZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzA1T2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lGbGxiR3h2ZDF4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRlV1ZzYkc5M0xXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJabVpqbGtZaXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlptWmpOaVppeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyWm1aV001T1N4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJabVpUQTJOaXhjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJMlptWkRRellpeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0kyWmpZelF4T1N4Y1hHNGdJRnhjWENJMlhGeGNJam9nSTJaaFlqQXdOU3hjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJMlkxT1dZd01DeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0kyWXdPR013TUN4Y1hHNGdJRnhjWENJNVhGeGNJam9nSTJVMk56Y3dNRnhjYmlrN1hGeHVYRnh1Skc5akxYbGxiR3h2ZHkwd09pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRFNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0TWpvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTB6T2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVFE2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3ROVG9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MDJPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUYzZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE9Eb2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkwNU9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnVDNKaGJtZGxYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxdmNtRnVaMlV0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpabVptTkdVMkxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalptWmxPR05qTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWm1aa09HRTRMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpabVpqTURjNExGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBalptWmhPVFJrTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqWm1ZNU1qSmlMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpabVEzWlRFMExGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBalpqYzJOekEzTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqWlRnMU9UQmpMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpaRGswT0RCbVhGeHVLVHRjWEc1Y1hHNGtiMk10YjNKaGJtZGxMVEE2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXRNVG9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUTTZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE5Eb2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMwMU9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRZNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0TnpvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzA0T2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVGs2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQkRiMnh2Y2lCc2FYTjBYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxamIyeHZjaTF6Y0dWamRISjFiVG9nSUNBNU8xeGNibHhjYmlSdll5MWpiMnh2Y2kxc2FYTjBPaUFvWEZ4dUlDQWtiMk10WjNKaGVTMXNhWE4wT2lBZ0lDQWdJRnhjWENKbmNtRjVYRnhjSWl4Y1hHNGdJQ1J2WXkxeVpXUXRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWNtVmtYRnhjSWl4Y1hHNGdJQ1J2WXkxd2FXNXJMV3hwYzNRNklDQWdJQ0FnWEZ4Y0luQnBibXRjWEZ3aUxGeGNiaUFnSkc5akxXZHlZWEJsTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbWR5WVhCbFhGeGNJaXhjWEc0Z0lDUnZZeTEyYVc5c1pYUXRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWRtbHZiR1YwWEZ4Y0lpeGNYRzRnSUNSdll5MXBibVJwWjI4dGJHbHpkRG9nSUNBZ0lDQmNYRndpYVc1a2FXZHZYRnhjSWl4Y1hHNGdJQ1J2WXkxaWJIVmxMV3hwYzNRNklDQWdJQ0FnWEZ4Y0ltSnNkV1ZjWEZ3aUxGeGNiaUFnSkc5akxXTjVZVzR0YkdsemREb2dJQ0FnSUNCY1hGd2lZM2xoYmx4Y1hDSXNYRnh1SUNBa2IyTXRkR1ZoYkMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0owWldGc1hGeGNJaXhjWEc0Z0lDUnZZeTFuY21WbGJpMXNhWE4wT2lBZ0lDQWdJRnhjWENKbmNtVmxibHhjWENJc1hGeHVJQ0FrYjJNdGJHbHRaUzFzYVhOME9pQWdJQ0FnSUZ4Y1hDSnNhVzFsWEZ4Y0lpeGNYRzRnSUNSdll5MTVaV3hzYjNjdGJHbHpkRG9nSUNBZ0lDQmNYRndpZVdWc2JHOTNYRnhjSWl4Y1hHNGdJQ1J2WXkxdmNtRnVaMlV0YkdsemREb2dJQ0FnSUNCY1hGd2liM0poYm1kbFhGeGNJbHhjYmlrN1hGeHVYQ0pkTEZ3aWMyOTFjbU5sVW05dmRGd2lPbHdpWENKOVhTazdYRzR2THlCRmVIQnZjblJ6WEc1bGVIQnZjblFnWkdWbVlYVnNkQ0JmWDE5RFUxTmZURTlCUkVWU1gwVllVRTlTVkY5Zlh6dGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1Rvb2x0aXAuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Vc2VyTGlzdC5zY3NzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1VzZXJMaXN0LnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLy8gSW1wb3J0c1xcblxcblxcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkoKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCgpKSk7XFxuLy8gTW9kdWxlXFxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcXFwiLmV4Y2FsaWRyYXcgLlVzZXJMaXN0IHtcXFxcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxcXG4gIC8qZ2l0aHViIGNvcm5lciovXFxcXG4gIHBhZGRpbmc6IHZhcigtLXNwYWNlLWZhY3RvcikgdmFyKC0tc3BhY2UtZmFjdG9yKSB2YXIoLS1zcGFjZS1mYWN0b3IpIHZhcigtLXNwYWNlLWZhY3Rvcik7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGZsZXgtd3JhcDogd3JhcDtcXFxcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5Vc2VyTGlzdDplbXB0eSB7XFxcXG4gIGRpc3BsYXk6IG5vbmU7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuVXNlckxpc3QgPiAqIHtcXFxcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcXFxcbiAgbWFyZ2luOiAwIDAgdmFyKC0tc3BhY2UtZmFjdG9yKSB2YXIoLS1zcGFjZS1mYWN0b3IpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLlVzZXJMaXN0X21vYmlsZSB7XFxcXG4gIHBhZGRpbmc6IDA7XFxcXG4gIGp1c3RpZnktY29udGVudDogbm9ybWFsO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLlVzZXJMaXN0X21vYmlsZSA+ICoge1xcXFxuICBtYXJnaW46IDAgdmFyKC0tc3BhY2UtZmFjdG9yKSB2YXIoLS1zcGFjZS1mYWN0b3IpIDA7XFxcXG59XFxcIiwgXFxcIlxcXCIse1xcXCJ2ZXJzaW9uXFxcIjozLFxcXCJzb3VyY2VzXFxcIjpbXFxcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvVXNlckxpc3Quc2Nzc1xcXCJdLFxcXCJuYW1lc1xcXCI6W10sXFxcIm1hcHBpbmdzXFxcIjpcXFwiQUFDRTtFQUNFLG9CQUFBO0VBQ0EsZ0JBQUE7RUFDQSx3RkFBQTtFQUVBLGFBQUE7RUFDQSxlQUFBO0VBQ0EseUJBQUE7QUFESjtBQUdJO0VBQ0UsYUFBQTtBQUROO0FBS0U7RUFDRSxtQkFBQTtFQUNBLG1EQUFBO0FBSEo7QUFNRTtFQUNFLFVBQUE7RUFDQSx1QkFBQTtBQUpKO0FBT0U7RUFDRSxtREFBQTtBQUxKXFxcIixcXFwic291cmNlc0NvbnRlbnRcXFwiOltcXFwiLmV4Y2FsaWRyYXcge1xcXFxuICAuVXNlckxpc3Qge1xcXFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcXFxuICAgIC8qZ2l0aHViIGNvcm5lciovXFxcXG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2UtZmFjdG9yKSB2YXIoLS1zcGFjZS1mYWN0b3IpIHZhcigtLXNwYWNlLWZhY3RvcilcXFxcbiAgICAgIHZhcigtLXNwYWNlLWZhY3Rvcik7XFxcXG4gICAgZGlzcGxheTogZmxleDtcXFxcbiAgICBmbGV4LXdyYXA6IHdyYXA7XFxcXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXFxcblxcXFxuICAgICY6ZW1wdHkge1xcXFxuICAgICAgZGlzcGxheTogbm9uZTtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAuVXNlckxpc3QgPiAqIHtcXFxcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xcXFxuICAgIG1hcmdpbjogMCAwIHZhcigtLXNwYWNlLWZhY3RvcikgdmFyKC0tc3BhY2UtZmFjdG9yKTtcXFxcbiAgfVxcXFxuXFxcXG4gIC5Vc2VyTGlzdF9tb2JpbGUge1xcXFxuICAgIHBhZGRpbmc6IDA7XFxcXG4gICAganVzdGlmeS1jb250ZW50OiBub3JtYWw7XFxcXG4gIH1cXFxcblxcXFxuICAuVXNlckxpc3RfbW9iaWxlID4gKiB7XFxcXG4gICAgbWFyZ2luOiAwIHZhcigtLXNwYWNlLWZhY3RvcikgdmFyKC0tc3BhY2UtZmFjdG9yKSAwO1xcXFxuICB9XFxcXG59XFxcXG5cXFwiXSxcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoX19fQ1NTX0xPQURFUl9FWFBPUlRfX18pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN5RXVMMjV2WkdWZmJXOWtkV3hsY3k5d2IzTjBZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3o4L2NuVnNaVk5sZEZzeFhTNXlkV3hsYzFzd1hTNTFjMlZiTWwwaExpOXViMlJsWDIxdlpIVnNaWE12YzJGemN5MXNiMkZrWlhJdlpHbHpkQzlqYW5NdWFuTWhMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVZjMlZ5VEdsemRDNXpZM056TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPMEZCUVVFN1FVRkRPRWc3UVVGRGFrSTdRVUZETjBjc09FSkJRVGhDTEhWSFFVRXlRaXhEUVVGRExHZElRVUZ4UXp0QlFVTXZSanRCUVVOQkxHbEZRVUZwUlN4NVFrRkJlVUlzYTBoQlFXdElMR3RDUVVGclFpeHZRa0ZCYjBJc09FSkJRVGhDTEVkQlFVY3NLMEpCUVN0Q0xHdENRVUZyUWl4SFFVRkhMRFpDUVVFMlFpeDNRa0ZCZDBJc2QwUkJRWGRFTEVkQlFVY3NaME5CUVdkRExHVkJRV1VzTkVKQlFUUkNMRWRCUVVjc2IwTkJRVzlETEhkRVFVRjNSQ3hIUVVGSExFOUJRVThzYVVkQlFXbEhMRmRCUVZjc1YwRkJWeXhYUVVGWExGVkJRVlVzVlVGQlZTeFhRVUZYTEV0QlFVc3NTMEZCU3l4VlFVRlZMRXRCUVVzc1MwRkJTeXhYUVVGWExGZEJRVmNzUzBGQlN5eExRVUZMTEZWQlFWVXNWMEZCVnl4TFFVRkxMRXRCUVVzc1YwRkJWeXh6UTBGQmMwTXNaVUZCWlN3eVFrRkJNa0lzTmtoQlFUWklMRzlDUVVGdlFpeHpRa0ZCYzBJc1owTkJRV2RETEdsQ1FVRnBRaXh6UWtGQmMwSXNUMEZCVHl4TFFVRkxMSEZDUVVGeFFpd3dRa0ZCTUVJc01FUkJRVEJFTEV0QlFVc3NkMEpCUVhkQ0xHbENRVUZwUWl3NFFrRkJPRUlzUzBGQlN5dzBRa0ZCTkVJc01FUkJRVEJFTEV0QlFVc3NSMEZCUnl4eFFrRkJjVUk3UVVGRE15dERPMEZCUTBFc2FVVkJRV1VzZFVKQlFYVkNMRVZCUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlWYzJWeVRHbHpkQzV6WTNOelAyWXpaVGdpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUx5OGdTVzF3YjNKMGMxeHVhVzF3YjNKMElGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgxTlBWVkpEUlUxQlVGOUpUVkJQVWxSZlgxOGdabkp2YlNCY0lpNHVMM0JoWTJ0aFoyVnpMMlY0WTJGc2FXUnlZWGN2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5eWRXNTBhVzFsTDNOdmRYSmpaVTFoY0hNdWFuTmNJanRjYm1sdGNHOXlkQ0JmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlKVFZCUFVsUmZYMThnWm5KdmJTQmNJaTR1TDNCaFkydGhaMlZ6TDJWNFkyRnNhV1J5WVhjdmJtOWtaVjl0YjJSMWJHVnpMMk56Y3kxc2IyRmtaWEl2WkdsemRDOXlkVzUwYVcxbEwyRndhUzVxYzF3aU8xeHVkbUZ5SUY5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZJRDBnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmU1UxUVQxSlVYMTlmS0Y5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDFOUFZWSkRSVTFCVUY5SlRWQlBVbFJmWDE4cE8xeHVMeThnVFc5a2RXeGxYRzVmWDE5RFUxTmZURTlCUkVWU1gwVllVRTlTVkY5Zlh5NXdkWE5vS0Z0dGIyUjFiR1V1YVdRc0lGd2lMbVY0WTJGc2FXUnlZWGNnTGxWelpYSk1hWE4wSUh0Y1hHNGdJSEJ2YVc1MFpYSXRaWFpsYm5Sek9pQnViMjVsTzF4Y2JpQWdMeXBuYVhSb2RXSWdZMjl5Ym1WeUtpOWNYRzRnSUhCaFpHUnBibWM2SUhaaGNpZ3RMWE53WVdObExXWmhZM1J2Y2lrZ2RtRnlLQzB0YzNCaFkyVXRabUZqZEc5eUtTQjJZWElvTFMxemNHRmpaUzFtWVdOMGIzSXBJSFpoY2lndExYTndZV05sTFdaaFkzUnZjaWs3WEZ4dUlDQmthWE53YkdGNU9pQm1iR1Y0TzF4Y2JpQWdabXhsZUMxM2NtRndPaUIzY21Gd08xeGNiaUFnYW5WemRHbG1lUzFqYjI1MFpXNTBPaUJtYkdWNExXVnVaRHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGxWelpYSk1hWE4wT21WdGNIUjVJSHRjWEc0Z0lHUnBjM0JzWVhrNklHNXZibVU3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1VmMyVnlUR2x6ZENBK0lDb2dlMXhjYmlBZ2NHOXBiblJsY2kxbGRtVnVkSE02SUdGc2JEdGNYRzRnSUcxaGNtZHBiam9nTUNBd0lIWmhjaWd0TFhOd1lXTmxMV1poWTNSdmNpa2dkbUZ5S0MwdGMzQmhZMlV0Wm1GamRHOXlLVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGxWelpYSk1hWE4wWDIxdlltbHNaU0I3WEZ4dUlDQndZV1JrYVc1bk9pQXdPMXhjYmlBZ2FuVnpkR2xtZVMxamIyNTBaVzUwT2lCdWIzSnRZV3c3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1VmMyVnlUR2x6ZEY5dGIySnBiR1VnUGlBcUlIdGNYRzRnSUcxaGNtZHBiam9nTUNCMllYSW9MUzF6Y0dGalpTMW1ZV04wYjNJcElIWmhjaWd0TFhOd1lXTmxMV1poWTNSdmNpa2dNRHRjWEc1OVhDSXNJRndpWENJc2Uxd2lkbVZ5YzJsdmJsd2lPak1zWENKemIzVnlZMlZ6WENJNlcxd2lkMlZpY0dGamF6b3ZMeTR2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlWYzJWeVRHbHpkQzV6WTNOelhDSmRMRndpYm1GdFpYTmNJanBiWFN4Y0ltMWhjSEJwYm1kelhDSTZYQ0pCUVVORk8wVkJRMFVzYjBKQlFVRTdSVUZEUVN4blFrRkJRVHRGUVVOQkxIZEdRVUZCTzBWQlJVRXNZVUZCUVR0RlFVTkJMR1ZCUVVFN1JVRkRRU3g1UWtGQlFUdEJRVVJLTzBGQlIwazdSVUZEUlN4aFFVRkJPMEZCUkU0N1FVRkxSVHRGUVVORkxHMUNRVUZCTzBWQlEwRXNiVVJCUVVFN1FVRklTanRCUVUxRk8wVkJRMFVzVlVGQlFUdEZRVU5CTEhWQ1FVRkJPMEZCU2tvN1FVRlBSVHRGUVVORkxHMUVRVUZCTzBGQlRFcGNJaXhjSW5OdmRYSmpaWE5EYjI1MFpXNTBYQ0k2VzF3aUxtVjRZMkZzYVdSeVlYY2dlMXhjYmlBZ0xsVnpaWEpNYVhOMElIdGNYRzRnSUNBZ2NHOXBiblJsY2kxbGRtVnVkSE02SUc1dmJtVTdYRnh1SUNBZ0lDOHFaMmwwYUhWaUlHTnZjbTVsY2lvdlhGeHVJQ0FnSUhCaFpHUnBibWM2SUhaaGNpZ3RMWE53WVdObExXWmhZM1J2Y2lrZ2RtRnlLQzB0YzNCaFkyVXRabUZqZEc5eUtTQjJZWElvTFMxemNHRmpaUzFtWVdOMGIzSXBYRnh1SUNBZ0lDQWdkbUZ5S0MwdGMzQmhZMlV0Wm1GamRHOXlLVHRjWEc0Z0lDQWdaR2x6Y0d4aGVUb2dabXhsZUR0Y1hHNGdJQ0FnWm14bGVDMTNjbUZ3T2lCM2NtRndPMXhjYmlBZ0lDQnFkWE4wYVdaNUxXTnZiblJsYm5RNklHWnNaWGd0Wlc1a08xeGNibHhjYmlBZ0lDQW1PbVZ0Y0hSNUlIdGNYRzRnSUNBZ0lDQmthWE53YkdGNU9pQnViMjVsTzF4Y2JpQWdJQ0I5WEZ4dUlDQjlYRnh1WEZ4dUlDQXVWWE5sY2t4cGMzUWdQaUFxSUh0Y1hHNGdJQ0FnY0c5cGJuUmxjaTFsZG1WdWRITTZJR0ZzYkR0Y1hHNGdJQ0FnYldGeVoybHVPaUF3SURBZ2RtRnlLQzB0YzNCaFkyVXRabUZqZEc5eUtTQjJZWElvTFMxemNHRmpaUzFtWVdOMGIzSXBPMXhjYmlBZ2ZWeGNibHhjYmlBZ0xsVnpaWEpNYVhOMFgyMXZZbWxzWlNCN1hGeHVJQ0FnSUhCaFpHUnBibWM2SURBN1hGeHVJQ0FnSUdwMWMzUnBabmt0WTI5dWRHVnVkRG9nYm05eWJXRnNPMXhjYmlBZ2ZWeGNibHhjYmlBZ0xsVnpaWEpNYVhOMFgyMXZZbWxzWlNBK0lDb2dlMXhjYmlBZ0lDQnRZWEpuYVc0NklEQWdkbUZ5S0MwdGMzQmhZMlV0Wm1GamRHOXlLU0IyWVhJb0xTMXpjR0ZqWlMxbVlXTjBiM0lwSURBN1hGeHVJQ0I5WEZ4dWZWeGNibHdpWFN4Y0luTnZkWEpqWlZKdmIzUmNJanBjSWx3aWZWMHBPMXh1THk4Z1JYaHdiM0owYzF4dVpYaHdiM0owSUdSbFptRjFiSFFnWDE5ZlExTlRYMHhQUVVSRlVsOUZXRkJQVWxSZlgxODdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jb21wb25lbnRzL1VzZXJMaXN0LnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2Nzcy9hcHAuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY3NzL2FwcC5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8vIEltcG9ydHNcXG5cXG5cXG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpKChfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQoKSkpO1xcbi8vIE1vZHVsZVxcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXFxcIi52aXN1YWxseS1oaWRkZW4ge1xcXFxuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcXFxcbiAgaGVpZ2h0OiAxcHg7XFxcXG4gIHdpZHRoOiAxcHg7XFxcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxcXG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcXFxcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXFxcbiAgLyogYWRkZWQgbGluZSAqL1xcXFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcXFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcXFxufVxcXFxuXFxcXG4uTG9hZGluZ01lc3NhZ2Uge1xcXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gIHRvcDogMDtcXFxcbiAgcmlnaHQ6IDA7XFxcXG4gIGJvdHRvbTogMDtcXFxcbiAgbGVmdDogMDtcXFxcbiAgei1pbmRleDogOTk5O1xcXFxuICBkaXNwbGF5OiBmbGV4O1xcXFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXFxcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxcXG59XFxcXG5cXFxcbi5Mb2FkaW5nTWVzc2FnZSBzcGFuIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXFxcbiAgcGFkZGluZzogMC44ZW0gMS4yZW07XFxcXG4gIGNvbG9yOiB2YXIoLS1wb3B1cC10ZXh0LWNvbG9yKTtcXFxcbiAgZm9udC1zaXplOiAxLjNlbTtcXFxcbn1cXFwiLCBcXFwiXFxcIix7XFxcInZlcnNpb25cXFwiOjMsXFxcInNvdXJjZXNcXFwiOltcXFwid2VicGFjazovLy4vLi4vLi4vY3NzL2FwcC5zY3NzXFxcIl0sXFxcIm5hbWVzXFxcIjpbXSxcXFwibWFwcGluZ3NcXFwiOlxcXCJBQUFBO0VBQ0UsNkJBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsOEJBQUE7RUFDQSxtQkFBQTtFQUFxQixlQUFBO0VBQ3JCLHlCQUFBO1VBQUEsaUJBQUE7QUFFRjs7QUFDQTtFQUNFLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsT0FBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtFQUNBLG9CQUFBO0FBRUY7O0FBQ0E7RUFDRSxzQ0FBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7RUFDQSw4QkFBQTtFQUNBLGdCQUFBO0FBRUZcXFwiLFxcXCJzb3VyY2VzQ29udGVudFxcXCI6W1xcXCIudmlzdWFsbHktaGlkZGVuIHtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XFxcXG4gIGhlaWdodDogMXB4O1xcXFxuICB3aWR0aDogMXB4O1xcXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcXFxuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XFxcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qIGFkZGVkIGxpbmUgKi9cXFxcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxcXG59XFxcXG5cXFxcbi5Mb2FkaW5nTWVzc2FnZSB7XFxcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgdG9wOiAwO1xcXFxuICByaWdodDogMDtcXFxcbiAgYm90dG9tOiAwO1xcXFxuICBsZWZ0OiAwO1xcXFxuICB6LWluZGV4OiA5OTk7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcXFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXFxcbn1cXFxcblxcXFxuLkxvYWRpbmdNZXNzYWdlIHNwYW4ge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXFxcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcXFxuICBwYWRkaW5nOiAwLjhlbSAxLjJlbTtcXFxcbiAgY29sb3I6IHZhcigtLXBvcHVwLXRleHQtY29sb3IpO1xcXFxuICBmb250LXNpemU6IDEuM2VtO1xcXFxufVxcXFxuXFxcIl0sXFxcInNvdXJjZVJvb3RcXFwiOlxcXCJcXFwifV0pO1xcbi8vIEV4cG9ydHNcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKF9fX0NTU19MT0FERVJfRVhQT1JUX19fKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dkxpNHZZM056TDJGd2NDNXpZM056TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPMEZCUVVFN1FVRkRPRWc3UVVGRGFrSTdRVUZETjBjc09FSkJRVGhDTEhWSFFVRXlRaXhEUVVGRExHZElRVUZ4UXp0QlFVTXZSanRCUVVOQkxEUkVRVUUwUkN4clEwRkJhME1zWjBKQlFXZENMR1ZCUVdVc2NVSkJRWEZDTEcxRFFVRnRReXgzUWtGQmQwSXNhMFJCUVd0RUxEaENRVUU0UWl4SFFVRkhMSEZDUVVGeFFpeDFRa0ZCZFVJc1YwRkJWeXhoUVVGaExHTkJRV01zV1VGQldTeHBRa0ZCYVVJc2EwSkJRV3RDTEhkQ1FVRjNRaXcwUWtGQk5FSXNlVUpCUVhsQ0xFZEJRVWNzTUVKQlFUQkNMREpEUVVFeVF5eDFRa0ZCZFVJc2VVSkJRWGxDTEcxRFFVRnRReXh4UWtGQmNVSXNSMEZCUnl4UFFVRlBMSEZHUVVGeFJpeFhRVUZYTEZWQlFWVXNWVUZCVlN4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExGbEJRVmtzVjBGQlZ5eE5RVUZOTEV0QlFVc3NWMEZCVnl4VlFVRlZMRlZCUVZVc1ZVRkJWU3hWUVVGVkxGVkJRVlVzVlVGQlZTeFhRVUZYTEZkQlFWY3NWMEZCVnl4TlFVRk5MRXRCUVVzc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eFhRVUZYTERKRFFVRXlReXhyUTBGQmEwTXNaMEpCUVdkQ0xHVkJRV1VzY1VKQlFYRkNMRzFEUVVGdFF5eDVRa0ZCZVVJc2MwTkJRWE5ETEVkQlFVY3NjVUpCUVhGQ0xIVkNRVUYxUWl4WFFVRlhMR0ZCUVdFc1kwRkJZeXhaUVVGWkxHbENRVUZwUWl4clFrRkJhMElzZDBKQlFYZENMRFJDUVVFMFFpeDVRa0ZCZVVJc1IwRkJSeXd3UWtGQk1FSXNNa05CUVRKRExIVkNRVUYxUWl4NVFrRkJlVUlzYlVOQlFXMURMSEZDUVVGeFFpeEhRVUZITEhGQ1FVRnhRanRCUVVOb2NFUTdRVUZEUVN4cFJVRkJaU3gxUWtGQmRVSXNSVUZCUXlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWpjM012WVhCd0xuTmpjM00vT0RFMU15SmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2THlCSmJYQnZjblJ6WEc1cGJYQnZjblFnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmVTA5VlVrTkZUVUZRWDBsTlVFOVNWRjlmWHlCbWNtOXRJRndpTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZjMjkxY21ObFRXRndjeTVxYzF3aU8xeHVhVzF3YjNKMElGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgwbE5VRTlTVkY5Zlh5Qm1jbTl0SUZ3aUxpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDNKMWJuUnBiV1V2WVhCcExtcHpYQ0k3WEc1MllYSWdYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4Z1BTQmZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOUpUVkJQVWxSZlgxOG9YMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZVMDlWVWtORlRVRlFYMGxOVUU5U1ZGOWZYeWs3WEc0dkx5Qk5iMlIxYkdWY2JsOWZYME5UVTE5TVQwRkVSVkpmUlZoUVQxSlVYMTlmTG5CMWMyZ29XMjF2WkhWc1pTNXBaQ3dnWENJdWRtbHpkV0ZzYkhrdGFHbGtaR1Z1SUh0Y1hHNGdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaU0FoYVcxd2IzSjBZVzUwTzF4Y2JpQWdhR1ZwWjJoME9pQXhjSGc3WEZ4dUlDQjNhV1IwYURvZ01YQjRPMXhjYmlBZ2IzWmxjbVpzYjNjNklHaHBaR1JsYmp0Y1hHNGdJR05zYVhBNklISmxZM1FvTVhCNExDQXhjSGdzSURGd2VDd2dNWEI0S1R0Y1hHNGdJSGRvYVhSbExYTndZV05sT2lCdWIzZHlZWEE3WEZ4dUlDQXZLaUJoWkdSbFpDQnNhVzVsSUNvdlhGeHVJQ0F0ZDJWaWEybDBMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXhjYmlBZ0lDQWdJQ0FnSUNCMWMyVnlMWE5sYkdWamREb2dibTl1WlR0Y1hHNTlYRnh1WEZ4dUxreHZZV1JwYm1kTlpYTnpZV2RsSUh0Y1hHNGdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjWEc0Z0lIUnZjRG9nTUR0Y1hHNGdJSEpwWjJoME9pQXdPMXhjYmlBZ1ltOTBkRzl0T2lBd08xeGNiaUFnYkdWbWREb2dNRHRjWEc0Z0lIb3RhVzVrWlhnNklEazVPVHRjWEc0Z0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dUlDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXhjYmlBZ2FuVnpkR2xtZVMxamIyNTBaVzUwT2lCalpXNTBaWEk3WEZ4dUlDQndiMmx1ZEdWeUxXVjJaVzUwY3pvZ2JtOXVaVHRjWEc1OVhGeHVYRnh1TGt4dllXUnBibWROWlhOellXZGxJSE53WVc0Z2UxeGNiaUFnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRZblYwZEc5dUxXZHlZWGt0TVNrN1hGeHVJQ0JpYjNKa1pYSXRjbUZrYVhWek9pQTFjSGc3WEZ4dUlDQndZV1JrYVc1bk9pQXdMamhsYlNBeExqSmxiVHRjWEc0Z0lHTnZiRzl5T2lCMllYSW9MUzF3YjNCMWNDMTBaWGgwTFdOdmJHOXlLVHRjWEc0Z0lHWnZiblF0YzJsNlpUb2dNUzR6WlcwN1hGeHVmVndpTENCY0lsd2lMSHRjSW5abGNuTnBiMjVjSWpvekxGd2ljMjkxY21ObGMxd2lPbHRjSW5kbFluQmhZMnM2THk4dUx5NHVMeTR1TDJOemN5OWhjSEF1YzJOemMxd2lYU3hjSW01aGJXVnpYQ0k2VzEwc1hDSnRZWEJ3YVc1bmMxd2lPbHdpUVVGQlFUdEZRVU5GTERaQ1FVRkJPMFZCUTBFc1YwRkJRVHRGUVVOQkxGVkJRVUU3UlVGRFFTeG5Ra0ZCUVR0RlFVTkJMRGhDUVVGQk8wVkJRMEVzYlVKQlFVRTdSVUZCY1VJc1pVRkJRVHRGUVVOeVFpeDVRa0ZCUVR0VlFVRkJMR2xDUVVGQk8wRkJSVVk3TzBGQlEwRTdSVUZEUlN4clFrRkJRVHRGUVVOQkxFMUJRVUU3UlVGRFFTeFJRVUZCTzBWQlEwRXNVMEZCUVR0RlFVTkJMRTlCUVVFN1JVRkRRU3haUVVGQk8wVkJRMEVzWVVGQlFUdEZRVU5CTEcxQ1FVRkJPMFZCUTBFc2RVSkJRVUU3UlVGRFFTeHZRa0ZCUVR0QlFVVkdPenRCUVVOQk8wVkJRMFVzYzBOQlFVRTdSVUZEUVN4clFrRkJRVHRGUVVOQkxHOUNRVUZCTzBWQlEwRXNPRUpCUVVFN1JVRkRRU3huUWtGQlFUdEJRVVZHWENJc1hDSnpiM1Z5WTJWelEyOXVkR1Z1ZEZ3aU9sdGNJaTUyYVhOMVlXeHNlUzFvYVdSa1pXNGdlMXhjYmlBZ2NHOXphWFJwYjI0NklHRmljMjlzZFhSbElDRnBiWEJ2Y25SaGJuUTdYRnh1SUNCb1pXbG5hSFE2SURGd2VEdGNYRzRnSUhkcFpIUm9PaUF4Y0hnN1hGeHVJQ0J2ZG1WeVpteHZkem9nYUdsa1pHVnVPMXhjYmlBZ1kyeHBjRG9nY21WamRDZ3hjSGdzSURGd2VDd2dNWEI0TENBeGNIZ3BPMXhjYmlBZ2QyaHBkR1V0YzNCaFkyVTZJRzV2ZDNKaGNEc2dMeW9nWVdSa1pXUWdiR2x1WlNBcUwxeGNiaUFnZFhObGNpMXpaV3hsWTNRNklHNXZibVU3WEZ4dWZWeGNibHhjYmk1TWIyRmthVzVuVFdWemMyRm5aU0I3WEZ4dUlDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRnh1SUNCMGIzQTZJREE3WEZ4dUlDQnlhV2RvZERvZ01EdGNYRzRnSUdKdmRIUnZiVG9nTUR0Y1hHNGdJR3hsWm5RNklEQTdYRnh1SUNCNkxXbHVaR1Y0T2lBNU9UazdYRnh1SUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzRnSUdwMWMzUnBabmt0WTI5dWRHVnVkRG9nWTJWdWRHVnlPMXhjYmlBZ2NHOXBiblJsY2kxbGRtVnVkSE02SUc1dmJtVTdYRnh1ZlZ4Y2JseGNiaTVNYjJGa2FXNW5UV1Z6YzJGblpTQnpjR0Z1SUh0Y1hHNGdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXSjFkSFJ2YmkxbmNtRjVMVEVwTzF4Y2JpQWdZbTl5WkdWeUxYSmhaR2wxY3pvZ05YQjRPMXhjYmlBZ2NHRmtaR2x1WnpvZ01DNDRaVzBnTVM0eVpXMDdYRnh1SUNCamIyeHZjam9nZG1GeUtDMHRjRzl3ZFhBdGRHVjRkQzFqYjJ4dmNpazdYRnh1SUNCbWIyNTBMWE5wZW1VNklERXVNMlZ0TzF4Y2JuMWNYRzVjSWwwc1hDSnpiM1Z5WTJWU2IyOTBYQ0k2WENKY0luMWRLVHRjYmk4dklFVjRjRzl5ZEhOY2JtVjRjRzl5ZENCa1pXWmhkV3gwSUY5ZlgwTlRVMTlNVDBGRVJWSmZSVmhRVDFKVVgxOWZPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jc3MvYXBwLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2Nzcy9zdHlsZXMuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY3NzL3N0eWxlcy5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfZ2V0VXJsX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2dldFVybC5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfZ2V0VXJsX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2dldFVybF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fKTtcXG4vLyBJbXBvcnRzXFxuXFxuXFxuXFxudmFyIF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fID0gbmV3IFVSTCgvKiBhc3NldCBpbXBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB3aWR0aD1cXFwiMjkyLjRcXFwiIGhlaWdodD1cXFwiMjkyLjRcXFwiIHZpZXdCb3g9XFxcIjAgMCAyOTIgMjkyXFxcIj48cGF0aCBkPVxcXCJNMjg3IDE5N0wxNTkgNjljLTQtMy04LTUtMTMtNXMtOSAyLTEzIDVMNSAxOTdjLTMgNC01IDgtNSAxM3MyIDkgNSAxM2M0IDQgOCA1IDEzIDVoMjU2YzUgMCA5LTEgMTMtNXM1LTggNS0xMy0xLTktNS0xM3pcXFwiLz48L3N2Zz4gKi8gXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVxcXFxcXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFxcXFxcIiB3aWR0aD1cXFxcXFxcIjI5Mi40XFxcXFxcXCIgaGVpZ2h0PVxcXFxcXFwiMjkyLjRcXFxcXFxcIiB2aWV3Qm94PVxcXFxcXFwiMCAwIDI5MiAyOTJcXFxcXFxcIj48cGF0aCBkPVxcXFxcXFwiTTI4NyAxOTdMMTU5IDY5Yy00LTMtOC01LTEzLTVzLTkgMi0xMyA1TDUgMTk3Yy0zIDQtNSA4LTUgMTNzMiA5IDUgMTNjNCA0IDggNSAxMyA1aDI1NmM1IDAgOS0xIDEzLTVzNS04IDUtMTMtMS05LTUtMTN6XFxcXFxcXCIvPjwvc3ZnPlxcXCIpLCBfX3dlYnBhY2tfcmVxdWlyZV9fLmIpO1xcbnZhciBfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyA9IG5ldyBVUkwoLyogYXNzZXQgaW1wb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18oLyohIGRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgd2lkdGg9XFxcIjI5Mi40XFxcIiBoZWlnaHQ9XFxcIjI5Mi40XFxcIiB2aWV3Qm94PVxcXCIwIDAgMjkyIDI5MlxcXCI+PHBhdGggZmlsbD1cXFwiJTIzY2VkNGRhXFxcIiBkPVxcXCJNMjg3IDE5N0wxNTkgNjljLTQtMy04LTUtMTMtNXMtOSAyLTEzIDVMNSAxOTdjLTMgNC01IDgtNSAxM3MyIDkgNSAxM2M0IDQgOCA1IDEzIDVoMjU2YzUgMCA5LTEgMTMtNXM1LTggNS0xMy0xLTktNS0xM3pcXFwiLz48L3N2Zz4gKi8gXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVxcXFxcXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFxcXFxcIiB3aWR0aD1cXFxcXFxcIjI5Mi40XFxcXFxcXCIgaGVpZ2h0PVxcXFxcXFwiMjkyLjRcXFxcXFxcIiB2aWV3Qm94PVxcXFxcXFwiMCAwIDI5MiAyOTJcXFxcXFxcIj48cGF0aCBmaWxsPVxcXFxcXFwiJTIzY2VkNGRhXFxcXFxcXCIgZD1cXFxcXFxcIk0yODcgMTk3TDE1OSA2OWMtNC0zLTgtNS0xMy01cy05IDItMTMgNUw1IDE5N2MtMyA0LTUgOC01IDEzczIgOSA1IDEzYzQgNCA4IDUgMTMgNWgyNTZjNSAwIDktMSAxMy01czUtOCA1LTEzLTEtOS01LTEzelxcXFxcXFwiLz48L3N2Zz5cXFwiKSwgX193ZWJwYWNrX3JlcXVpcmVfXy5iKTtcXG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpKChfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQoKSkpO1xcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fID0gX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2dldFVybF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fX2RlZmF1bHQoKShfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMF9fXyk7XFxudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzFfX18gPSBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfZ2V0VXJsX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19fZGVmYXVsdCgpKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8xX19fKTtcXG4vLyBNb2R1bGVcXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFxcXCI6ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IGludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKTtcXFxcbn1cXFxcblxcXFxuOmV4cG9ydCB7XFxcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxcXG59XFxcXG5cXFxcbi5leGNhbGlkcmF3IHtcXFxcbiAgLS10aGVtZS1maWx0ZXI6IG5vbmU7XFxcXG4gIC0tYnV0dG9uLWRlc3RydWN0aXZlLWJnLWNvbG9yOiAjZmZlM2UzO1xcXFxuICAtLWJ1dHRvbi1kZXN0cnVjdGl2ZS1jb2xvcjogI2M5MmEyYTtcXFxcbiAgLS1idXR0b24tZ3JheS0xOiAjZTllY2VmO1xcXFxuICAtLWJ1dHRvbi1ncmF5LTI6ICNjZWQ0ZGE7XFxcXG4gIC0tYnV0dG9uLWdyYXktMzogI2FkYjViZDtcXFxcbiAgLS1idXR0b24tc3BlY2lhbC1hY3RpdmUtYmctY29sb3I6ICNlYmZiZWU7XFxcXG4gIC0tZGlhbG9nLWJvcmRlci1jb2xvcjogIzg2OGU5NjtcXFxcbiAgLS1kcm9wZG93bi1pY29uOiB1cmwoXFxcIiArIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzBfX18gKyBcXFwiKTtcXFxcbiAgLS1mb2N1cy1oaWdobGlnaHQtY29sb3I6ICNhNWQ4ZmY7XFxcXG4gIC0taWNvbi1maWxsLWNvbG9yOiAjMjEyNTI5O1xcXFxuICAtLWljb24tZ3JlZW4tZmlsbC1jb2xvcjogIzJiOGEzZTtcXFxcbiAgLS1kZWZhdWx0LWJnLWNvbG9yOiAjZmZmZmZmO1xcXFxuICAtLWlucHV0LWJnLWNvbG9yOiAjZmZmZmZmO1xcXFxuICAtLWlucHV0LWJvcmRlci1jb2xvcjogI2NlZDRkYTtcXFxcbiAgLS1pbnB1dC1ob3Zlci1iZy1jb2xvcjogI2YxZjNmNTtcXFxcbiAgLS1pbnB1dC1sYWJlbC1jb2xvcjogIzQ5NTA1NztcXFxcbiAgLS1pc2xhbmQtYmctY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Nik7XFxcXG4gIC0ta2V5YmluZGluZy1jb2xvcjogI2FkYjViZDtcXFxcbiAgLS1saW5rLWNvbG9yOiAjMWM3ZWQ2O1xcXFxuICAtLW92ZXJsYXktYmctY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44OCk7XFxcXG4gIC0tcG9wdXAtYmctY29sb3I6ICNmZmZmZmY7XFxcXG4gIC0tcG9wdXAtc2Vjb25kYXJ5LWJnLWNvbG9yOiAjZjFmM2Y1O1xcXFxuICAtLXBvcHVwLXRleHQtY29sb3I6ICMwMDAwMDA7XFxcXG4gIC0tcG9wdXAtdGV4dC1pbnZlcnRlZC1jb2xvcjogI2ZmZmZmZjtcXFxcbiAgLS1zYWI6IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcXFxcbiAgLS1zYWw6IGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCk7XFxcXG4gIC0tc2FyOiBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KTtcXFxcbiAgLS1zYXQ6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKTtcXFxcbiAgLS1zZWxlY3QtaGlnaGxpZ2h0LWNvbG9yOiAjMzM5YWYwO1xcXFxuICAtLXNoYWRvdy1pc2xhbmQ6IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMDEpLCAxcHggMXB4IDVweCByZ2IoMCAwIDAgLyAxMiUpO1xcXFxuICAtLXNwYWNlLWZhY3RvcjogMC4yNXJlbTtcXFxcbiAgLS10ZXh0LXByaW1hcnktY29sb3I6ICMzNDNhNDA7XFxcXG4gIC0tY29sb3ItcHJpbWFyeTogIzY5NjVkYjtcXFxcbiAgLS1jb2xvci1wcmltYXJ5LWRhcmtlcjogIzViNTdkMTtcXFxcbiAgLS1jb2xvci1wcmltYXJ5LWRhcmtlc3Q6ICM0YTQ3YjE7XFxcXG4gIC0tY29sb3ItcHJpbWFyeS1saWdodDogI2UyZTFmYztcXFxcbiAgLS1ib3JkZXItcmFkaXVzLW1kOiAwLjM3NXJlbTtcXFxcbiAgLS1ib3JkZXItcmFkaXVzLWxnOiAwLjVyZW07XFxcXG59XFxcXG4uZXhjYWxpZHJhdy50aGVtZS0tZGFyayB7XFxcXG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XFxcXG59XFxcXG4uZXhjYWxpZHJhdy50aGVtZS0tZGFyay50aGVtZS0tZGFyay1iYWNrZ3JvdW5kLW5vbmUge1xcXFxuICBiYWNrZ3JvdW5kOiBub25lO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcudGhlbWUtLWRhcmsge1xcXFxuICAtLXRoZW1lLWZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcXFxuICAtLWJ1dHRvbi1kZXN0cnVjdGl2ZS1iZy1jb2xvcjogIzVhMDAwMDtcXFxcbiAgLS1idXR0b24tZGVzdHJ1Y3RpdmUtY29sb3I6ICNmZmE4YTg7XFxcXG4gIC0tYnV0dG9uLWdyYXktMTogIzM2MzYzNjtcXFxcbiAgLS1idXR0b24tZ3JheS0yOiAjMjcyNzI3O1xcXFxuICAtLWJ1dHRvbi1ncmF5LTM6ICMyMjI7XFxcXG4gIC0tYnV0dG9uLXNwZWNpYWwtYWN0aXZlLWJnLWNvbG9yOiAjMjA0NjI0O1xcXFxuICAtLWRpYWxvZy1ib3JkZXItY29sb3I6ICMyMTI1Mjk7XFxcXG4gIC0tZHJvcGRvd24taWNvbjogdXJsKFxcXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fICsgXFxcIik7XFxcXG4gIC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yOiAjMjI4YmU2O1xcXFxuICAtLWljb24tZmlsbC1jb2xvcjogI2NlZDRkYTtcXFxcbiAgLS1pY29uLWdyZWVuLWZpbGwtY29sb3I6ICM2OWRiN2M7XFxcXG4gIC0tZGVmYXVsdC1iZy1jb2xvcjogIzEyMTIxMjtcXFxcbiAgLS1pbnB1dC1iZy1jb2xvcjogIzEyMTIxMjtcXFxcbiAgLS1pbnB1dC1ib3JkZXItY29sb3I6ICMyZTJlMmU7XFxcXG4gIC0taW5wdXQtaG92ZXItYmctY29sb3I6ICMxODE4MTg7XFxcXG4gIC0taW5wdXQtbGFiZWwtY29sb3I6ICNlOWVjZWY7XFxcXG4gIC0taXNsYW5kLWJnLWNvbG9yOiByZ2JhKDMwLCAzMCwgMzAsIDAuOTgpO1xcXFxuICAtLWtleWJpbmRpbmctY29sb3I6ICM4NjhlOTY7XFxcXG4gIC0tbGluay1jb2xvcjogIzRkYWJmNztcXFxcbiAgLS1vdmVybGF5LWJnLWNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuMTIpO1xcXFxuICAtLXBvcHVwLWJnLWNvbG9yOiAjMmMyYzJjO1xcXFxuICAtLXBvcHVwLXNlY29uZGFyeS1iZy1jb2xvcjogIzIyMjtcXFxcbiAgLS1wb3B1cC10ZXh0LWNvbG9yOiAjY2VkNGRhO1xcXFxuICAtLXBvcHVwLXRleHQtaW52ZXJ0ZWQtY29sb3I6ICMyYzJjMmM7XFxcXG4gIC0tc2VsZWN0LWhpZ2hsaWdodC1jb2xvcjogIzRkYWJmNztcXFxcbiAgLS1zaGFkb3ctaXNsYW5kOiAxcHggMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMyk7XFxcXG4gIC0tdGV4dC1wcmltYXJ5LWNvbG9yOiAjY2VkNGRhO1xcXFxuICAtLWNvbG9yLXByaW1hcnk6ICM1NjUwZjA7XFxcXG4gIC0tY29sb3ItcHJpbWFyeS1kYXJrZXI6ICM0YjQ2ZDg7XFxcXG4gIC0tY29sb3ItcHJpbWFyeS1kYXJrZXN0OiAjM2UzOWJlO1xcXFxuICAtLWNvbG9yLXByaW1hcnktbGlnaHQ6ICMzZjNkNjQ7XFxcXG59XFxcXG5cXFxcbjpyb290IHtcXFxcbiAgLS16SW5kZXgtY2FudmFzOiAxO1xcXFxuICAtLXpJbmRleC13eXNpd3lnOiAyO1xcXFxuICAtLXpJbmRleC1sYXllclVJOiAzO1xcXFxufVxcXFxuXFxcXG4uZXhjYWxpZHJhdyB7XFxcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXFxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXFxcbiAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIHRvcDogMDtcXFxcbiAgYm90dG9tOiAwO1xcXFxuICBsZWZ0OiAwO1xcXFxuICByaWdodDogMDtcXFxcbiAgaGVpZ2h0OiAxMDAlO1xcXFxuICB3aWR0aDogMTAwJTtcXFxcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXFxcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3OmZvY3VzIHtcXFxcbiAgb3V0bGluZTogbm9uZTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IGEge1xcXFxuICBmb250LXdlaWdodDogNTAwO1xcXFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxcXG4gIGNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IGE6aG92ZXIge1xcXFxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IGNhbnZhcyB7XFxcXG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcXFxcbiAgaW1hZ2UtcmVuZGVyaW5nOiBwaXhlbGF0ZWQ7XFxcXG4gIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcXFxcbiAgei1pbmRleDogdmFyKC0tekluZGV4LWNhbnZhcyk7XFxcXG59XFxcXG4uZXhjYWxpZHJhd19fY2FudmFzIHtcXFxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcudGhlbWUtLWRhcmsgY2FudmFzIHtcXFxcbiAgZmlsdGVyOiB2YXIoLS10aGVtZS1maWx0ZXIpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkZpeGVkU2lkZUNvbnRhaW5lciB7XFxcXG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zYXQsIDApO1xcXFxuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zYXIsIDApO1xcXFxuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc2FiLCAwKTtcXFxcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zYWwsIDApO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnBhbmVsUm93IHtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIHtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiBoMyxcXFxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiBsZWdlbmQsXFxcXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmNvbnRyb2wtbGFiZWwge1xcXFxuICBtYXJnaW4tdG9wOiAwLjMzM3JlbTtcXFxcbiAgbWFyZ2luLWJvdHRvbTogMC4zMzNyZW07XFxcXG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcXFxcbiAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcXFxuICBkaXNwbGF5OiBibG9jaztcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuY29udHJvbC1sYWJlbCBpbnB1dCB7XFxcXG4gIGRpc3BsYXk6IGJsb2NrO1xcXFxuICB3aWR0aDogMTAwJTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiBoMzpmaXJzdC1jaGlsZCxcXFxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiBsZWdlbmQ6Zmlyc3QtY2hpbGQsXFxcXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmNvbnRyb2wtbGFiZWw6Zmlyc3QtY2hpbGQge1xcXFxuICBtYXJnaW4tdG9wOiAwO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIGxlZ2VuZCB7XFxcXG4gIHBhZGRpbmc6IDA7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmljb25TZWxlY3RMaXN0IHtcXFxcbiAgZmxleC13cmFwOiB3cmFwO1xcXFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmJ1dHRvbkxpc3Qge1xcXFxuICBmbGV4LXdyYXA6IHdyYXA7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmJ1dHRvbkxpc3QgbGFiZWwge1xcXFxuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XFxcXG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcXFxcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIC5idXR0b25MaXN0IGlucHV0W3R5cGU9cmFkaW9dLFxcXFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIC5idXR0b25MaXN0IGlucHV0W3R5cGU9YnV0dG9uXSB7XFxcXG4gIG9wYWNpdHk6IDA7XFxcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmJ1dHRvbkxpc3QgLmljb25Sb3cge1xcXFxuICBtYXJnaW4tdG9wOiA4cHg7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmJ1dHRvbkxpc3QgLlRvb2xJY29uIHtcXFxcbiAgbWFyZ2luOiAwO1xcXFxuICBtYXJnaW4taW5saW5lLWVuZDogOHB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIC5idXR0b25MaXN0IC5Ub29sSWNvbjpmb2N1cyB7XFxcXG4gIG91dGxpbmU6IHRyYW5zcGFyZW50O1xcXFxuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuYnV0dG9uTGlzdCAuVG9vbEljb246aG92ZXIge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuYnV0dG9uTGlzdCAuVG9vbEljb246YWN0aXZlIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmJ1dHRvbkxpc3QgLlRvb2xJY29uOmRpc2FibGVkIHtcXFxcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuYnV0dG9uTGlzdCAuVG9vbEljb25fX2ljb24ge1xcXFxuICB3aWR0aDogMjhweDtcXFxcbiAgaGVpZ2h0OiAyOHB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIGZpZWxkc2V0IHtcXFxcbiAgbWFyZ2luOiAwO1xcXFxuICBtYXJnaW4tdG9wOiAwLjMzM3JlbTtcXFxcbiAgcGFkZGluZzogMDtcXFxcbiAgYm9yZGVyOiBub25lO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmRpdmlkZXIge1xcXFxuICB3aWR0aDogMXB4O1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xcXFxuICBtYXJnaW46IDFweDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5idXR0b25MaXN0IGxhYmVsOmZvY3VzLXdpdGhpbixcXFxcbi5leGNhbGlkcmF3IGlucHV0OmZvY3VzLXZpc2libGUge1xcXFxuICBvdXRsaW5lOiB0cmFuc3BhcmVudDtcXFxcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyBidXR0b24sXFxcXG4uZXhjYWxpZHJhdyAuYnV0dG9uTGlzdCBsYWJlbCB7XFxcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcXFxuICBib3JkZXI6IDA7XFxcXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpO1xcXFxuICBtYXJnaW46IDAuMTI1cmVtIDA7XFxcXG4gIHBhZGRpbmc6IDAuMjVyZW07XFxcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxcXG4gIGN1cnNvcjogcG9pbnRlcjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IGJ1dHRvbjpmb2N1cy12aXNpYmxlLFxcXFxuLmV4Y2FsaWRyYXcgLmJ1dHRvbkxpc3QgbGFiZWw6Zm9jdXMtdmlzaWJsZSB7XFxcXG4gIG91dGxpbmU6IHRyYW5zcGFyZW50O1xcXFxuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IGJ1dHRvbjpob3ZlcixcXFxcbi5leGNhbGlkcmF3IC5idXR0b25MaXN0IGxhYmVsOmhvdmVyIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyBidXR0b246YWN0aXZlLFxcXFxuLmV4Y2FsaWRyYXcgLmJ1dHRvbkxpc3QgbGFiZWw6YWN0aXZlIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyBidXR0b246ZGlzYWJsZWQsXFxcXG4uZXhjYWxpZHJhdyAuYnV0dG9uTGlzdCBsYWJlbDpkaXNhYmxlZCB7XFxcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuYWN0aXZlLFxcXFxuLmV4Y2FsaWRyYXcgLmJ1dHRvbkxpc3QgbGFiZWwuYWN0aXZlIHtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XFxcXG4gIC0taWNvbi1maWxsLWNvbG9yOiAjZmZmZmZmO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmFjdGl2ZTpob3ZlcixcXFxcbi5leGNhbGlkcmF3IC5idXR0b25MaXN0IGxhYmVsLmFjdGl2ZTpob3ZlciB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZGFya2VyKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5hY3RpdmU6YWN0aXZlLFxcXFxuLmV4Y2FsaWRyYXcgLmJ1dHRvbkxpc3QgbGFiZWwuYWN0aXZlOmFjdGl2ZSB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZGFya2VzdCk7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuYnV0dG9uTGlzdC5idXR0b25MaXN0SWNvbiBsYWJlbCB7XFxcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcXFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXFxcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5idXR0b25MaXN0LmJ1dHRvbkxpc3RJY29uIGxhYmVsIHN2ZyB7XFxcXG4gIHdpZHRoOiAzNXB4O1xcXFxuICBoZWlnaHQ6IDE0cHg7XFxcXG4gIHBhZGRpbmc6IDJweDtcXFxcbiAgb3BhY2l0eTogMC42O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmJ1dHRvbkxpc3QuYnV0dG9uTGlzdEljb24gbGFiZWwuYWN0aXZlIHN2ZyB7XFxcXG4gIG9wYWNpdHk6IDE7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQXBwLXRvcC1iYXIge1xcXFxuICB6LWluZGV4OiB2YXIoLS16SW5kZXgtbGF5ZXJVSSk7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQXBwLWJvdHRvbS1iYXIge1xcXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gIHRvcDogMDtcXFxcbiAgYm90dG9tOiAwO1xcXFxuICBsZWZ0OiAwO1xcXFxuICByaWdodDogMDtcXFxcbiAgLS1iYXItcGFkZGluZzogY2FsYyg0ICogdmFyKC0tc3BhY2UtZmFjdG9yKSk7XFxcXG4gIHBhZGRpbmctdG9wOiBtYXgodmFyKC0tYmFyLXBhZGRpbmcpLCB2YXIoLS1zYXQsMCkpO1xcXFxuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zYXIsIDApO1xcXFxuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc2FiLCAwKTtcXFxcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zYWwsIDApO1xcXFxuICB6LWluZGV4OiA0O1xcXFxuICBkaXNwbGF5OiBmbGV4O1xcXFxuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XFxcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkFwcC1ib3R0b20tYmFyID4gLklzbGFuZCB7XFxcXG4gIHdpZHRoOiAxMDAlO1xcXFxuICBtYXgtd2lkdGg6IDEwMCU7XFxcXG4gIG1pbi13aWR0aDogMTAwJTtcXFxcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXFxcbiAgbWF4LWhlaWdodDogMTAwJTtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXFxcbiAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQXBwLWJvdHRvbS1iYXIgPiAuSXNsYW5kIC5wYW5lbENvbHVtbiB7XFxcXG4gIHBhZGRpbmc6IDhweCA4cHggMCA4cHg7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXIge1xcXFxuICB3aWR0aDogMTAwJTtcXFxcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250ZW50IHtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcXFxuICBwYWRkaW5nOiA4cHg7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQXBwLW1vYmlsZS1tZW51IHtcXFxcbiAgd2lkdGg6IDEwMCU7XFxcXG4gIG92ZXJmbG93LXg6IHZpc2libGU7XFxcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxcXG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWJhci1wYWRkaW5nKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5BcHAtbWVudSB7XFxcXG4gIGRpc3BsYXk6IGdyaWQ7XFxcXG4gIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkFwcC1tZW51X3RvcCB7XFxcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtYXgtY29udGVudCBhdXRvO1xcXFxuICBncmlkLWdhcDogNHB4O1xcXFxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXFxcbiAgY3Vyc29yOiBkZWZhdWx0O1xcXFxuICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmxheWVyLXVpX193cmFwcGVyOm5vdCguZGlzYWJsZS1wb2ludGVyRXZlbnRzKSAuQXBwLW1lbnVfdG9wID4gKiB7XFxcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQXBwLW1lbnVfdG9wID4gKjpmaXJzdC1jaGlsZCB7XFxcXG4gIGp1c3RpZnktc2VsZjogZmxleC1zdGFydDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5BcHAtbWVudV90b3AgPiAqOmxhc3QtY2hpbGQge1xcXFxuICBqdXN0aWZ5LXNlbGY6IGZsZXgtZW5kO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkFwcC1tZW51X2JvdHRvbSB7XFxcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgYm90dG9tOiAwO1xcXFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbi1jb250ZW50IGF1dG8gbWluLWNvbnRlbnQ7XFxcXG4gIGdyaWQtZ2FwOiAxNXB4O1xcXFxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXFxcbiAgY3Vyc29yOiBkZWZhdWx0O1xcXFxuICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50O1xcXFxuICB6LWluZGV4OiAxMDA7XFxcXG59XFxcXG46cm9vdFtkaXI9bHRyXSAuZXhjYWxpZHJhdyAuQXBwLW1lbnVfYm90dG9tIHtcXFxcbiAgbGVmdDogMC4yNXJlbTtcXFxcbn1cXFxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC5BcHAtbWVudV9ib3R0b20ge1xcXFxuICByaWdodDogMC4yNXJlbTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5BcHAtbWVudV9ib3R0b20tLXRyYW5zaXRpb24tbGVmdCBzZWN0aW9uIHtcXFxcbiAgd2lkdGg6IDE4NXB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkFwcC1tZW51X2JvdHRvbSBzZWN0aW9uIHtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5BcHAtbWVudV9ib3R0b20gPiAqOmZpcnN0LWNoaWxkIHtcXFxcbiAganVzdGlmeS1zZWxmOiBmbGV4LXN0YXJ0O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkFwcC1tZW51X2JvdHRvbSA+ICo6bGFzdC1jaGlsZCB7XFxcXG4gIGp1c3RpZnktc2VsZjogZmxleC1lbmQ7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQXBwLW1lbnVfbGVmdCB7XFxcXG4gIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIGF1dG8gMWZyO1xcXFxuICBoZWlnaHQ6IDEwMCU7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuQXBwLW1lbnVfcmlnaHQge1xcXFxuICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcXFxcbiAgaGVpZ2h0OiAxMDAlO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLkFwcC1tZW51X19sZWZ0IHtcXFxcbiAgb3ZlcmZsb3cteTogYXV0bztcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5kcm9wZG93bi1zZWxlY3Qge1xcXFxuICBoZWlnaHQ6IDEuNXJlbTtcXFxcbiAgcGFkZGluZzogMDtcXFxcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDAuNXJlbTtcXFxcbiAgcGFkZGluZy1pbmxpbmUtZW5kOiAxLjVyZW07XFxcXG4gIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXFxcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXFxcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xcXFxuICBvdXRsaW5lOiBub25lO1xcXFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxcXG4gICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcXFxcbiAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tZHJvcGRvd24taWNvbik7XFxcXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxcXG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuN3JlbSB0b3AgNTAlLCAwIDA7XFxcXG4gIGJhY2tncm91bmQtc2l6ZTogMC42NWVtIGF1dG8sIDEwMCU7XFxcXG59XFxcXG46cm9vdFtkaXI9cnRsXSAuZXhjYWxpZHJhdyAuZHJvcGRvd24tc2VsZWN0IHtcXFxcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCAwLjdyZW0gdG9wIDUwJSwgMCAwO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmRyb3Bkb3duLXNlbGVjdDpmb2N1cyB7XFxcXG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1oaWdobGlnaHQtY29sb3IpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmRyb3Bkb3duLXNlbGVjdDpob3ZlciB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmRyb3Bkb3duLXNlbGVjdDphY3RpdmUge1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC56SW5kZXhCdXR0b24ge1xcXFxuICBtYXJnaW46IDA7XFxcXG4gIG1hcmdpbi1pbmxpbmUtZW5kOiA4cHg7XFxcXG4gIHBhZGRpbmc6IDVweDtcXFxcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnpJbmRleEJ1dHRvbiBzdmcge1xcXFxuICB3aWR0aDogMThweDtcXFxcbiAgaGVpZ2h0OiAxOHB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnNjcm9sbC1iYWNrLXRvLWNvbnRlbnQge1xcXFxuICBjb2xvcjogdmFyKC0tcG9wdXAtdGV4dC1jb2xvcik7XFxcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgbGVmdDogNTAlO1xcXFxuICBib3R0b206IDMwcHg7XFxcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcXFxcbiAgcGFkZGluZzogMTBweCAyMHB4O1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLmhlbHAtaWNvbiB7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGN1cnNvcjogcG9pbnRlcjtcXFxcbiAgZmlsbDogIzg2OGU5NjtcXFxcbiAgcGFkZGluZzogMDtcXFxcbiAgbWFyZ2luOiAwO1xcXFxuICBiYWNrZ3JvdW5kOiBub25lO1xcXFxuICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5oZWxwLWljb24gc3ZnIHtcXFxcbiAgd2lkdGg6IDEuNXJlbTtcXFxcbiAgaGVpZ2h0OiAxLjVyZW07XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuaGVscC1pY29uOmhvdmVyIHtcXFxcbiAgYmFja2dyb3VuZDogbm9uZTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC5yZXNldC16b29tLWJ1dHRvbiB7XFxcXG4gIHBhZGRpbmc6IDAuMmVtO1xcXFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXFxcbiAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxcXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS11aS1mb250KTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC51bmRvLXJlZG8tYnV0dG9ucyB7XFxcXG4gIGRpc3BsYXk6IGdyaWQ7XFxcXG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XFxcXG4gIGdhcDogMC40ZW07XFxcXG4gIG1hcmdpbi10b3A6IGF1dG87XFxcXG4gIG1hcmdpbi1ib3R0b206IGF1dG87XFxcXG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDAuNmVtO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXctLW1vYmlsZS5leGNhbGlkcmF3IGFzaWRlIHtcXFxcbiAgZGlzcGxheTogbm9uZTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuc2Nyb2xsLWJhY2stdG8tY29udGVudCB7XFxcXG4gIGJvdHRvbTogY2FsYyg4MHB4ICsgdmFyKC0tc2FiLCAwKSk7XFxcXG4gIHotaW5kZXg6IC0xO1xcXFxufVxcXFxuXFxcXG46cm9vdFtkaXI9cnRsXSAuZXhjYWxpZHJhdyAucnRsLW1pcnJvciB7XFxcXG4gIHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IC56ZW4tbW9kZS12aXNpYmlsaXR5IHtcXFxcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXFxcbiAgb3BhY2l0eTogMTtcXFxcbiAgaGVpZ2h0OiBhdXRvO1xcXFxuICB3aWR0aDogYXV0bztcXFxcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgLnplbi1tb2RlLXZpc2liaWxpdHkuemVuLW1vZGUtdmlzaWJpbGl0eS0taGlkZGVuIHtcXFxcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcXFxuICBvcGFjaXR5OiAwO1xcXFxuICBoZWlnaHQ6IDA7XFxcXG4gIHdpZHRoOiAwO1xcXFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XFxcXG59XFxcXG4uZXhjYWxpZHJhdyAuZGlzYWJsZS1wb2ludGVyRXZlbnRzIHtcXFxcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LmV4Y2FsaWRyYXctLXZpZXctbW9kZSAuQXBwLW1lbnUge1xcXFxuICBkaXNwbGF5OiBmbGV4O1xcXFxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxcXG59XFxcXG4uZXhjYWxpZHJhdyBpbnB1dFt0eXBlPXRleHRdLFxcXFxuLmV4Y2FsaWRyYXcgdGV4dGFyZWE6bm90KC5leGNhbGlkcmF3LXd5c2l3eWcpIHtcXFxcbiAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxcXG4gIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTtcXFxcbiAgcGFkZGluZzogMC43NXJlbTtcXFxcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXFxcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXFxcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5wdXQtYmctY29sb3IpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXcgaW5wdXRbdHlwZT10ZXh0XTpub3QoOmZvY3VzKTpob3ZlcixcXFxcbi5leGNhbGlkcmF3IHRleHRhcmVhOm5vdCguZXhjYWxpZHJhdy13eXNpd3lnKTpub3QoOmZvY3VzKTpob3ZlciB7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlucHV0LWhvdmVyLWJnLWNvbG9yKTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3IGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsXFxcXG4uZXhjYWxpZHJhdyB0ZXh0YXJlYTpub3QoLmV4Y2FsaWRyYXctd3lzaXd5Zyk6Zm9jdXMge1xcXFxuICBvdXRsaW5lOiBub25lO1xcXFxuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXFxcbn1cXFxcbkBtZWRpYSBwcmludCB7XFxcXG4gIC5leGNhbGlkcmF3IC5BcHAtYm90dG9tLWJhcixcXFxcbi5leGNhbGlkcmF3IC5GaXhlZFNpZGVDb250YWluZXIsXFxcXG4uZXhjYWxpZHJhdyAubGF5ZXItdWlfX3dyYXBwZXIge1xcXFxuICAgIGRpc3BsYXk6IG5vbmU7XFxcXG4gIH1cXFxcbn1cXFxcblxcXFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcge1xcXFxuICBtaW4taGVpZ2h0OiAxMDB2aDtcXFxcbiAgcGFkZGluZzogMjBweCAwO1xcXFxuICBvdmVyZmxvdzogYXV0bztcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7XFxcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7XFxcXG59XFxcXG4uRXJyb3JTcGxhc2guZXhjYWxpZHJhdyAuRXJyb3JTcGxhc2gtbWVzc2FnZUNvbnRhaW5lciB7XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcXFxuICBwYWRkaW5nOiA0MHB4O1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlM2UzO1xcXFxuICBib3JkZXI6IDNweCBzb2xpZCAjYzkyYTJhO1xcXFxufVxcXFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcgLkVycm9yU3BsYXNoLXBhcmFncmFwaCB7XFxcXG4gIG1hcmdpbjogMTVweCAwO1xcXFxuICBtYXgtd2lkdGg6IDYwMHB4O1xcXFxufVxcXFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcgLkVycm9yU3BsYXNoLXBhcmFncmFwaC5hbGlnbi1jZW50ZXIge1xcXFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxcXG59XFxcXG4uRXJyb3JTcGxhc2guZXhjYWxpZHJhdyAuYmlnZ2VyLFxcXFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcgLmJpZ2dlciBidXR0b24ge1xcXFxuICBmb250LXNpemU6IDEuMWVtO1xcXFxufVxcXFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcgLnNtYWxsZXIsXFxcXG4uRXJyb3JTcGxhc2guZXhjYWxpZHJhdyAuc21hbGxlciBidXR0b24ge1xcXFxuICBmb250LXNpemU6IDAuOWVtO1xcXFxufVxcXFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcgLkVycm9yU3BsYXNoLWRldGFpbHMge1xcXFxuICBkaXNwbGF5OiBmbGV4O1xcXFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcXFxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXFxcbn1cXFxcbi5FcnJvclNwbGFzaC5leGNhbGlkcmF3IC5FcnJvclNwbGFzaC1kZXRhaWxzIHRleHRhcmVhIHtcXFxcbiAgd2lkdGg6IDEwMCU7XFxcXG4gIG1hcmdpbjogMTBweCAwO1xcXFxuICBmb250LWZhbWlseTogXFxcXFxcXCJDYXNjYWRpYVxcXFxcXFwiO1xcXFxuICBmb250LXNpemU6IDAuOGVtO1xcXFxufVxcXCIsIFxcXCJcXFwiLHtcXFwidmVyc2lvblxcXCI6MyxcXFwic291cmNlc1xcXCI6W1xcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vY3NzL3N0eWxlcy5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vY3NzL3RoZW1lLnNjc3NcXFwiLFxcXCJ3ZWJwYWNrOi8vLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvb3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiXSxcXFwibmFtZXNcXFwiOltdLFxcXCJtYXBwaW5nc1xcXCI6XFxcIkFBVUE7RUFDRSwyQ0FBQTtBQ1RGOztBRFFBO0VBQ0UsMkNBQUE7QUNMRjs7QUNIQTtFQUNFLG9CQUFBO0VBQ0Esc0NBQUE7RUFDQSxtQ0FBQTtFQUNBLHdCQUFBO0VBQ0Es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QUE7VUFBQSxpQkFBQTtBQXJCRjtBQXVCRTtFQUNFLGFBQUE7RUFDQSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7RUFFQSxhQUFBO0VBQ0EseUJFM2ZPO0VGNGZQLHlCQUFBO0FBdEJKO0FBeUJFO0VBQ0UsY0FBQTtFQUNBLGdCQUFBO0FBdkJKO0FBeUJJO0VBQ0Usa0JBQUE7QUF2Qk47QUEyQkU7O0VBRUUsZ0JBQUE7QUF6Qko7QUE0QkU7O0VBRUUsZ0JBQUE7QUExQko7QUE2QkU7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSx1QkFBQTtBQTNCSjtBQTZCSTtFQUNFLFdBQUE7RUFDQSxjQUFBO0VBQ0EsdUJBQUE7RUFDQSxnQkFBQTtBQTNCTlxcXCIsXFxcInNvdXJjZXNDb250ZW50XFxcIjpbXFxcIkBpbXBvcnQgXFxcXFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXFxcXFwiO1xcXFxuXFxcXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXFxcbiAgICBAY29udGVudDtcXFxcbiAgfVxcXFxufVxcXFxuXFxcXG4kdGhlbWUtZmlsdGVyOiBcXFxcXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXFxcXFwiO1xcXFxuXFxcXG46ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxcXG59XFxcXG5cXFwiLFxcXCJAaW1wb3J0IFxcXFxcXFwiLi92YXJpYWJsZXMubW9kdWxlXFxcXFxcXCI7XFxcXG5AaW1wb3J0IFxcXFxcXFwiLi90aGVtZVxcXFxcXFwiO1xcXFxuXFxcXG46cm9vdCB7XFxcXG4gIC0tekluZGV4LWNhbnZhczogMTtcXFxcbiAgLS16SW5kZXgtd3lzaXd5ZzogMjtcXFxcbiAgLS16SW5kZXgtbGF5ZXJVSTogMztcXFxcbn1cXFxcblxcXFxuLmV4Y2FsaWRyYXcge1xcXFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxcXG4gIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnktY29sb3IpO1xcXFxuICBkaXNwbGF5OiBmbGV4O1xcXFxuICB0b3A6IDA7XFxcXG4gIGJvdHRvbTogMDtcXFxcbiAgbGVmdDogMDtcXFxcbiAgcmlnaHQ6IDA7XFxcXG4gIGhlaWdodDogMTAwJTtcXFxcbiAgd2lkdGg6IDEwMCU7XFxcXG5cXFxcbiAgJjpmb2N1cyB7XFxcXG4gICAgb3V0bGluZTogbm9uZTtcXFxcbiAgfVxcXFxuXFxcXG4gIC8vIHNlcnZlcyAyIHB1cnBvc2VzOlxcXFxuICAvLyAxLiBwcmV2ZW50IHNlbGVjdGluZyB0ZXh0IG91dHNpZGUgdGhlIGNvbXBvbmVudCB3aGVuIGRvdWJsZS1jbGlja2luZyBvclxcXFxuICAvLyAgICBkcmFnZ2luZyBpbnNpZGUgaXQgKGUuZy4gb24gY2FudmFzKVxcXFxuICAvLyAyLiBwcmV2ZW50IHNlbGVjdGluZyBVSSwgYm90aCBmcm9tIHRoZSBpbnNpZGUsIGFuZCBmcm9tIG91dHNpZGUgdGhlXFxcXG4gIC8vICAgIGNvbXBvbmVudCAoZS5nLiBpZiB5b3Ugc2VsZWN0IHRleHQgaW4gYSBzaWRlYmFyKVxcXFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXFxcblxcXFxuICBhIHtcXFxcbiAgICBmb250LXdlaWdodDogNTAwO1xcXFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXFxcbiAgICBjb2xvcjogdmFyKC0tbGluay1jb2xvcik7XFxcXG5cXFxcbiAgICAmOmhvdmVyIHtcXFxcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxuXFxcXG4gIGNhbnZhcyB7XFxcXG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xcXFxuXFxcXG4gICAgLy8gZm9sbG93aW5nIHByb3BzIGltcHJvdmUgYmx1cnJpbmVzcyBhdCBjZXJ0YWluIGRldmljZVBpeGVsUmF0aW9zLlxcXFxuICAgIC8vIEFGQUlLIGl0IGRvZXNuJ3QgYWZmZWN0IGV4cG9ydCAoaW4gZmFjdCwgZXhwb3J0IHNlZW1zIHNoYXJwIGVpdGhlciB3YXkpLlxcXFxuXFxcXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiBwaXhlbGF0ZWQ7IC8vIGNocm9taXVtXFxcXG4gICAgLy8gTk9URTogbXVzdCBiZSBkZWNsYXJlZCAqYWZ0ZXIqIHRoZSBhYm92ZVxcXFxuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlczsgLy8gRkZcXFxcblxcXFxuICAgIHotaW5kZXg6IHZhcigtLXpJbmRleC1jYW52YXMpO1xcXFxuXFxcXG4gICAgLy8gUmVtb3ZlIHRoZSBtYWluIGNhbnZhcyBmcm9tIGRvY3VtZW50IGZsb3cgdG8gYXZvaWQgcmVzaXplT2JzZXJ2ZXJcXFxcbiAgICAvLyBmZWVkYmFjayBsb29wIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL2V4Y2FsaWRyYXcvZXhjYWxpZHJhdy9wdWxsLzMzNzkpXFxcXG4gIH1cXFxcblxcXFxuICAmX19jYW52YXMge1xcXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgfVxcXFxuXFxcXG4gICYudGhlbWUtLWRhcmsge1xcXFxuICAgIC8vIFRoZSBwZXJjZW50YWdlIGlzIGluc3BpcmVkIGJ5XFxcXG4gICAgLy8gaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29sb3IvZGFyay10aGVtZS5odG1sI3Byb3BlcnRpZXMsIHdoaWNoXFxcXG4gICAgLy8gcmVjb21tZW5kcyBzdXJmYWNlIGNvbG9yIG9mICMxMjEyMTIsIDkzJSB5aWVsZHMgIzExMTExMSBmb3IgI0ZGRlxcXFxuXFxcXG4gICAgY2FudmFzIHtcXFxcbiAgICAgIGZpbHRlcjogdmFyKC0tdGhlbWUtZmlsdGVyKTtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAuRml4ZWRTaWRlQ29udGFpbmVyIHtcXFxcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tc2F0LCAwKTtcXFxcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zYXIsIDApO1xcXFxuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zYWIsIDApO1xcXFxuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc2FsLCAwKTtcXFxcbiAgfVxcXFxuXFxcXG4gIC5wYW5lbFJvdyB7XFxcXG4gICAgZGlzcGxheTogZmxleDtcXFxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxcXG4gIH1cXFxcblxcXFxuICAucGFuZWxDb2x1bW4ge1xcXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXFxcblxcXFxuICAgIGgzLFxcXFxuICAgIGxlZ2VuZCxcXFxcbiAgICAuY29udHJvbC1sYWJlbCB7XFxcXG4gICAgICBtYXJnaW4tdG9wOiAwLjMzM3JlbTtcXFxcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMzMzcmVtO1xcXFxuICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xcXFxuICAgICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxcXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcXFxcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xcXFxuICAgIH1cXFxcblxcXFxuICAgIC5jb250cm9sLWxhYmVsIGlucHV0IHtcXFxcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xcXFxuICAgICAgd2lkdGg6IDEwMCU7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgaDM6Zmlyc3QtY2hpbGQsXFxcXG4gICAgbGVnZW5kOmZpcnN0LWNoaWxkLFxcXFxuICAgIC5jb250cm9sLWxhYmVsOmZpcnN0LWNoaWxkIHtcXFxcbiAgICAgIG1hcmdpbi10b3A6IDA7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgbGVnZW5kIHtcXFxcbiAgICAgIHBhZGRpbmc6IDA7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgLmljb25TZWxlY3RMaXN0IHtcXFxcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcXFxcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAuYnV0dG9uTGlzdCB7XFxcXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XFxcXG5cXFxcbiAgICAgIGxhYmVsIHtcXFxcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xcXFxuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XFxcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXFxcbiAgICAgIH1cXFxcblxcXFxuICAgICAgaW5wdXRbdHlwZT1cXFxcXFxcInJhZGlvXFxcXFxcXCJdLFxcXFxuICAgICAgaW5wdXRbdHlwZT1cXFxcXFxcImJ1dHRvblxcXFxcXFwiXSB7XFxcXG4gICAgICAgIG9wYWNpdHk6IDA7XFxcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxcXG4gICAgICB9XFxcXG5cXFxcbiAgICAgIC5pY29uUm93IHtcXFxcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xcXFxuICAgICAgfVxcXFxuXFxcXG4gICAgICAuVG9vbEljb24ge1xcXFxuICAgICAgICBtYXJnaW46IDA7XFxcXG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA4cHg7XFxcXG5cXFxcbiAgICAgICAgJjpmb2N1cyB7XFxcXG4gICAgICAgICAgb3V0bGluZTogdHJhbnNwYXJlbnQ7XFxcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxcXG4gICAgICAgIH1cXFxcblxcXFxuICAgICAgICAmOmhvdmVyIHtcXFxcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXFxcbiAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgICY6YWN0aXZlIHtcXFxcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXFxcbiAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgICY6ZGlzYWJsZWQge1xcXFxuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgIH1cXFxcblxcXFxuICAgICAgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgICAgICAgd2lkdGg6IDI4cHg7XFxcXG4gICAgICAgIGhlaWdodDogMjhweDtcXFxcbiAgICAgIH1cXFxcbiAgICB9XFxcXG5cXFxcbiAgICBmaWVsZHNldCB7XFxcXG4gICAgICBtYXJnaW46IDA7XFxcXG4gICAgICBtYXJnaW4tdG9wOiAwLjMzM3JlbTtcXFxcbiAgICAgIHBhZGRpbmc6IDA7XFxcXG4gICAgICBib3JkZXI6IG5vbmU7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLmRpdmlkZXIge1xcXFxuICAgIHdpZHRoOiAxcHg7XFxcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9jLWdyYXktMjtcXFxcbiAgICBtYXJnaW46IDFweDtcXFxcbiAgfVxcXFxuXFxcXG4gIC5idXR0b25MaXN0IGxhYmVsOmZvY3VzLXdpdGhpbixcXFxcbiAgaW5wdXQ6Zm9jdXMtdmlzaWJsZSB7XFxcXG4gICAgb3V0bGluZTogdHJhbnNwYXJlbnQ7XFxcXG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxcXG4gIH1cXFxcblxcXFxuICBidXR0b24sXFxcXG4gIC5idXR0b25MaXN0IGxhYmVsIHtcXFxcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXFxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXFxcbiAgICBib3JkZXI6IDA7XFxcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7XFxcXG4gICAgbWFyZ2luOiAwLjEyNXJlbSAwO1xcXFxuICAgIHBhZGRpbmc6IDAuMjVyZW07XFxcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXFxcblxcXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXFxcblxcXFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxcXG4gICAgICBvdXRsaW5lOiB0cmFuc3BhcmVudDtcXFxcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1oaWdobGlnaHQtY29sb3IpO1xcXFxuICAgIH1cXFxcblxcXFxuICAgICY6aG92ZXIge1xcXFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJjphY3RpdmUge1xcXFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJjpkaXNhYmxlZCB7XFxcXG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxuXFxcXG4gIC5hY3RpdmUsXFxcXG4gIC5idXR0b25MaXN0IGxhYmVsLmFjdGl2ZSB7XFxcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XFxcXG5cXFxcbiAgICAtLWljb24tZmlsbC1jb2xvcjogI3skb2Mtd2hpdGV9O1xcXFxuXFxcXG4gICAgJjpob3ZlciB7XFxcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWRhcmtlcik7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJjphY3RpdmUge1xcXFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXN0KTtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAuYnV0dG9uTGlzdC5idXR0b25MaXN0SWNvbiB7XFxcXG4gICAgbGFiZWwge1xcXFxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXFxcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gICAgICBzdmcge1xcXFxuICAgICAgICB3aWR0aDogMzVweDtcXFxcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xcXFxuICAgICAgICBwYWRkaW5nOiAycHg7XFxcXG4gICAgICAgIG9wYWNpdHk6IDAuNjtcXFxcbiAgICAgIH1cXFxcbiAgICAgICYuYWN0aXZlIHN2ZyB7XFxcXG4gICAgICAgIG9wYWNpdHk6IDE7XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLkFwcC10b3AtYmFyIHtcXFxcbiAgICB6LWluZGV4OiB2YXIoLS16SW5kZXgtbGF5ZXJVSSk7XFxcXG4gICAgZGlzcGxheTogZmxleDtcXFxcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcXFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gIH1cXFxcblxcXFxuICAuQXBwLWJvdHRvbS1iYXIge1xcXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgICB0b3A6IDA7XFxcXG4gICAgYm90dG9tOiAwO1xcXFxuICAgIGxlZnQ6IDA7XFxcXG4gICAgcmlnaHQ6IDA7XFxcXG4gICAgLS1iYXItcGFkZGluZzogY2FsYyg0ICogdmFyKC0tc3BhY2UtZmFjdG9yKSk7XFxcXG4gICAgcGFkZGluZy10b3A6ICN7XFxcXFxcXCJtYXgodmFyKC0tYmFyLXBhZGRpbmcpLCB2YXIoLS1zYXQsMCkpXFxcXFxcXCJ9O1xcXFxuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXNhciwgMCk7XFxcXG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNhYiwgMCk7XFxcXG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zYWwsIDApO1xcXFxuICAgIHotaW5kZXg6IDQ7XFxcXG4gICAgZGlzcGxheTogZmxleDtcXFxcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XFxcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxcXG5cXFxcbiAgICA+IC5Jc2xhbmQge1xcXFxuICAgICAgd2lkdGg6IDEwMCU7XFxcXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XFxcXG4gICAgICBtaW4td2lkdGg6IDEwMCU7XFxcXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcXFxuICAgICAgbWF4LWhlaWdodDogMTAwJTtcXFxcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcXFxuICAgICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XFxcXG5cXFxcbiAgICAgIC5wYW5lbENvbHVtbiB7XFxcXG4gICAgICAgIHBhZGRpbmc6IDhweCA4cHggMCA4cHg7XFxcXG4gICAgICB9XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLkFwcC10b29sYmFyIHtcXFxcbiAgICB3aWR0aDogMTAwJTtcXFxcblxcXFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxcXG4gIH1cXFxcblxcXFxuICAuQXBwLXRvb2xiYXItY29udGVudCB7XFxcXG4gICAgZGlzcGxheTogZmxleDtcXFxcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXFxcbiAgICBwYWRkaW5nOiA4cHg7XFxcXG4gIH1cXFxcblxcXFxuICAuQXBwLW1vYmlsZS1tZW51IHtcXFxcbiAgICB3aWR0aDogMTAwJTtcXFxcbiAgICBvdmVyZmxvdy14OiB2aXNpYmxlO1xcXFxuICAgIG92ZXJmbG93LXk6IGF1dG87XFxcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXFxcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1iYXItcGFkZGluZyk7XFxcXG4gIH1cXFxcblxcXFxuICAuQXBwLW1lbnUge1xcXFxuICAgIGRpc3BsYXk6IGdyaWQ7XFxcXG4gICAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxcXG4gIH1cXFxcblxcXFxuICAuQXBwLW1lbnVfdG9wIHtcXFxcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWF4LWNvbnRlbnQgYXV0bztcXFxcbiAgICBncmlkLWdhcDogNHB4O1xcXFxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xcXFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXFxcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50O1xcXFxuICB9XFxcXG5cXFxcbiAgLmxheWVyLXVpX193cmFwcGVyOm5vdCguZGlzYWJsZS1wb2ludGVyRXZlbnRzKSAuQXBwLW1lbnVfdG9wID4gKiB7XFxcXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcXFxcbiAgfVxcXFxuXFxcXG4gIC5BcHAtbWVudV90b3AgPiAqOmZpcnN0LWNoaWxkIHtcXFxcbiAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtc3RhcnQ7XFxcXG4gIH1cXFxcblxcXFxuICAuQXBwLW1lbnVfdG9wID4gKjpsYXN0LWNoaWxkIHtcXFxcbiAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtZW5kO1xcXFxuICB9XFxcXG5cXFxcbiAgLkFwcC1tZW51X2JvdHRvbSB7XFxcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcXFxuICAgIGJvdHRvbTogMDtcXFxcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbi1jb250ZW50IGF1dG8gbWluLWNvbnRlbnQ7XFxcXG4gICAgZ3JpZC1nYXA6IDE1cHg7XFxcXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxcXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xcXFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XFxcXG4gICAgei1pbmRleDogMTAwO1xcXFxuXFxcXG4gICAgOnJvb3RbZGlyPVxcXFxcXFwibHRyXFxcXFxcXCJdICYge1xcXFxuICAgICAgbGVmdDogMC4yNXJlbTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICA6cm9vdFtkaXI9XFxcXFxcXCJydGxcXFxcXFxcIl0gJiB7XFxcXG4gICAgICByaWdodDogMC4yNXJlbTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAmLS10cmFuc2l0aW9uLWxlZnQge1xcXFxuICAgICAgc2VjdGlvbiB7XFxcXG4gICAgICAgIHdpZHRoOiAxODVweDtcXFxcbiAgICAgIH1cXFxcbiAgICB9XFxcXG5cXFxcbiAgICBzZWN0aW9uIHtcXFxcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLkFwcC1tZW51X2JvdHRvbSA+ICo6Zmlyc3QtY2hpbGQge1xcXFxuICAgIGp1c3RpZnktc2VsZjogZmxleC1zdGFydDtcXFxcbiAgfVxcXFxuXFxcXG4gIC5BcHAtbWVudV9ib3R0b20gPiAqOmxhc3QtY2hpbGQge1xcXFxuICAgIGp1c3RpZnktc2VsZjogZmxleC1lbmQ7XFxcXG4gIH1cXFxcblxcXFxuICAuQXBwLW1lbnVfbGVmdCB7XFxcXG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnIgYXV0byAxZnI7XFxcXG4gICAgaGVpZ2h0OiAxMDAlO1xcXFxuICB9XFxcXG5cXFxcbiAgLkFwcC1tZW51X3JpZ2h0IHtcXFxcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcXFxcbiAgICBoZWlnaHQ6IDEwMCU7XFxcXG4gIH1cXFxcblxcXFxuICAuQXBwLW1lbnVfX2xlZnQge1xcXFxuICAgIG92ZXJmbG93LXk6IGF1dG87XFxcXG4gIH1cXFxcblxcXFxuICAuZHJvcGRvd24tc2VsZWN0IHtcXFxcbiAgICBoZWlnaHQ6IDEuNXJlbTtcXFxcbiAgICBwYWRkaW5nOiAwO1xcXFxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwLjVyZW07XFxcXG4gICAgcGFkZGluZy1pbmxpbmUtZW5kOiAxLjVyZW07XFxcXG4gICAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXFxcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24tZ3JheS0yKTtcXFxcbiAgICBmb250LXNpemU6IDAuOHJlbTtcXFxcbiAgICBvdXRsaW5lOiBub25lO1xcXFxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XFxcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tZHJvcGRvd24taWNvbik7XFxcXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcXFxcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjdyZW0gdG9wIDUwJSwgMCAwO1xcXFxuXFxcXG4gICAgOnJvb3RbZGlyPVxcXFxcXFwicnRsXFxcXFxcXCJdICYge1xcXFxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCAwLjdyZW0gdG9wIDUwJSwgMCAwO1xcXFxuICAgIH1cXFxcblxcXFxuICAgIGJhY2tncm91bmQtc2l6ZTogMC42NWVtIGF1dG8sIDEwMCU7XFxcXG5cXFxcbiAgICAmOmZvY3VzIHtcXFxcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1oaWdobGlnaHQtY29sb3IpO1xcXFxuICAgIH1cXFxcblxcXFxuICAgICY6aG92ZXIge1xcXFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgJjphY3RpdmUge1xcXFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLnpJbmRleEJ1dHRvbiB7XFxcXG4gICAgbWFyZ2luOiAwO1xcXFxuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA4cHg7XFxcXG4gICAgcGFkZGluZzogNXB4O1xcXFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcXFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG5cXFxcbiAgICBzdmcge1xcXFxuICAgICAgd2lkdGg6IDE4cHg7XFxcXG4gICAgICBoZWlnaHQ6IDE4cHg7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLnNjcm9sbC1iYWNrLXRvLWNvbnRlbnQge1xcXFxuICAgIGNvbG9yOiB2YXIoLS1wb3B1cC10ZXh0LWNvbG9yKTtcXFxcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gICAgbGVmdDogNTAlO1xcXFxuICAgIGJvdHRvbTogMzBweDtcXFxcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XFxcXG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xcXFxuICB9XFxcXG5cXFxcbiAgLmhlbHAtaWNvbiB7XFxcXG4gICAgZGlzcGxheTogZmxleDtcXFxcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxcXG4gICAgZmlsbDogJG9jLWdyYXktNjtcXFxcbiAgICBwYWRkaW5nOiAwO1xcXFxuICAgIG1hcmdpbjogMDtcXFxcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcXFxuICAgIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcXFxuXFxcXG4gICAgc3ZnIHtcXFxcbiAgICAgIHdpZHRoOiAxLjVyZW07XFxcXG4gICAgICBoZWlnaHQ6IDEuNXJlbTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICAmOmhvdmVyIHtcXFxcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLnJlc2V0LXpvb20tYnV0dG9uIHtcXFxcbiAgICBwYWRkaW5nOiAwLjJlbTtcXFxcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXFxcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5LWNvbG9yKTtcXFxcbiAgICBmb250LWZhbWlseTogdmFyKC0tdWktZm9udCk7XFxcXG4gIH1cXFxcblxcXFxuICAudW5kby1yZWRvLWJ1dHRvbnMge1xcXFxuICAgIGRpc3BsYXk6IGdyaWQ7XFxcXG4gICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcXFxcbiAgICBnYXA6IDAuNGVtO1xcXFxuICAgIG1hcmdpbi10b3A6IGF1dG87XFxcXG4gICAgbWFyZ2luLWJvdHRvbTogYXV0bztcXFxcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwLjZlbTtcXFxcbiAgfVxcXFxuXFxcXG4gIEBpbmNsdWRlIGlzTW9iaWxlIHtcXFxcbiAgICBhc2lkZSB7XFxcXG4gICAgICBkaXNwbGF5OiBub25lO1xcXFxuICAgIH1cXFxcbiAgICAuc2Nyb2xsLWJhY2stdG8tY29udGVudCB7XFxcXG4gICAgICBib3R0b206IGNhbGMoODBweCArIHZhcigtLXNhYiwgMCkpO1xcXFxuICAgICAgei1pbmRleDogLTE7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLnJ0bC1taXJyb3Ige1xcXFxuICAgIDpyb290W2Rpcj1cXFxcXFxcInJ0bFxcXFxcXFwiXSAmIHtcXFxcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICAuemVuLW1vZGUtdmlzaWJpbGl0eSB7XFxcXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXFxcbiAgICBvcGFjaXR5OiAxO1xcXFxuICAgIGhlaWdodDogYXV0bztcXFxcbiAgICB3aWR0aDogYXV0bztcXFxcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XFxcXG5cXFxcbiAgICAmLnplbi1tb2RlLXZpc2liaWxpdHktLWhpZGRlbiB7XFxcXG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XFxcXG4gICAgICBvcGFjaXR5OiAwO1xcXFxuICAgICAgaGVpZ2h0OiAwO1xcXFxuICAgICAgd2lkdGg6IDA7XFxcXG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLmRpc2FibGUtcG9pbnRlckV2ZW50cyB7XFxcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcXFxcbiAgfVxcXFxuXFxcXG4gICYuZXhjYWxpZHJhdy0tdmlldy1tb2RlIHtcXFxcbiAgICAuQXBwLW1lbnUge1xcXFxuICAgICAgZGlzcGxheTogZmxleDtcXFxcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXFxcbiAgICB9XFxcXG4gIH1cXFxcblxcXFxuICBpbnB1dFt0eXBlPVxcXFxcXFwidGV4dFxcXFxcXFwiXSxcXFxcbiAgdGV4dGFyZWE6bm90KC5leGNhbGlkcmF3LXd5c2l3eWcpIHtcXFxcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5LWNvbG9yKTtcXFxcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7XFxcXG4gICAgcGFkZGluZzogMC43NXJlbTtcXFxcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcXFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNwYWNlLWZhY3Rvcik7XFxcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5wdXQtYmctY29sb3IpO1xcXFxuXFxcXG4gICAgJjpub3QoOmZvY3VzKSB7XFxcXG4gICAgICAmOmhvdmVyIHtcXFxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5wdXQtaG92ZXItYmctY29sb3IpO1xcXFxuICAgICAgfVxcXFxuICAgIH1cXFxcblxcXFxuICAgICY6Zm9jdXMge1xcXFxuICAgICAgb3V0bGluZTogbm9uZTtcXFxcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1oaWdobGlnaHQtY29sb3IpO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxuXFxcXG4gIEBtZWRpYSBwcmludCB7XFxcXG4gICAgLkFwcC1ib3R0b20tYmFyLFxcXFxuICAgIC5GaXhlZFNpZGVDb250YWluZXIsXFxcXG4gICAgLmxheWVyLXVpX193cmFwcGVyIHtcXFxcbiAgICAgIGRpc3BsYXk6IG5vbmU7XFxcXG4gICAgfVxcXFxuICB9XFxcXG59XFxcXG5cXFxcbi5FcnJvclNwbGFzaC5leGNhbGlkcmF3IHtcXFxcbiAgbWluLWhlaWdodDogMTAwdmg7XFxcXG4gIHBhZGRpbmc6IDIwcHggMDtcXFxcbiAgb3ZlcmZsb3c6IGF1dG87XFxcXG4gIGRpc3BsYXk6IGZsZXg7XFxcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcXFxuICB1c2VyLXNlbGVjdDogdGV4dDtcXFxcblxcXFxuICAuRXJyb3JTcGxhc2gtbWVzc2FnZUNvbnRhaW5lciB7XFxcXG4gICAgZGlzcGxheTogZmxleDtcXFxcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcXFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxcXG5cXFxcbiAgICBwYWRkaW5nOiA0MHB4O1xcXFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRvYy1yZWQtMTtcXFxcbiAgICBib3JkZXI6IDNweCBzb2xpZCAkb2MtcmVkLTk7XFxcXG4gIH1cXFxcblxcXFxuICAuRXJyb3JTcGxhc2gtcGFyYWdyYXBoIHtcXFxcbiAgICBtYXJnaW46IDE1cHggMDtcXFxcbiAgICBtYXgtd2lkdGg6IDYwMHB4O1xcXFxuXFxcXG4gICAgJi5hbGlnbi1jZW50ZXIge1xcXFxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xcXFxuICAgIH1cXFxcbiAgfVxcXFxuXFxcXG4gIC5iaWdnZXIsXFxcXG4gIC5iaWdnZXIgYnV0dG9uIHtcXFxcbiAgICBmb250LXNpemU6IDEuMWVtO1xcXFxuICB9XFxcXG5cXFxcbiAgLnNtYWxsZXIsXFxcXG4gIC5zbWFsbGVyIGJ1dHRvbiB7XFxcXG4gICAgZm9udC1zaXplOiAwLjllbTtcXFxcbiAgfVxcXFxuXFxcXG4gIC5FcnJvclNwbGFzaC1kZXRhaWxzIHtcXFxcbiAgICBkaXNwbGF5OiBmbGV4O1xcXFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxcXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxcXG5cXFxcbiAgICB0ZXh0YXJlYSB7XFxcXG4gICAgICB3aWR0aDogMTAwJTtcXFxcbiAgICAgIG1hcmdpbjogMTBweCAwO1xcXFxuICAgICAgZm9udC1mYW1pbHk6IFxcXFxcXFwiQ2FzY2FkaWFcXFxcXFxcIjtcXFxcbiAgICAgIGZvbnQtc2l6ZTogMC44ZW07XFxcXG4gICAgfVxcXFxuICB9XFxcXG59XFxcXG5cXFwiLFxcXCJAaW1wb3J0IFxcXFxcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFxcXFxcIjtcXFxcbkBpbXBvcnQgXFxcXFxcXCIuL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1xcXFxcXFwiO1xcXFxuXFxcXG4uZXhjYWxpZHJhdyB7XFxcXG4gIC0tdGhlbWUtZmlsdGVyOiBub25lO1xcXFxuICAtLWJ1dHRvbi1kZXN0cnVjdGl2ZS1iZy1jb2xvcjogI3skb2MtcmVkLTF9O1xcXFxuICAtLWJ1dHRvbi1kZXN0cnVjdGl2ZS1jb2xvcjogI3skb2MtcmVkLTl9O1xcXFxuICAtLWJ1dHRvbi1ncmF5LTE6ICN7JG9jLWdyYXktMn07XFxcXG4gIC0tYnV0dG9uLWdyYXktMjogI3skb2MtZ3JheS00fTtcXFxcbiAgLS1idXR0b24tZ3JheS0zOiAjeyRvYy1ncmF5LTV9O1xcXFxuICAtLWJ1dHRvbi1zcGVjaWFsLWFjdGl2ZS1iZy1jb2xvcjogI3skb2MtZ3JlZW4tMH07XFxcXG4gIC0tZGlhbG9nLWJvcmRlci1jb2xvcjogI3skb2MtZ3JheS02fTtcXFxcbiAgLS1kcm9wZG93bi1pY29uOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVxcXFxcXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFxcXFxcIiB3aWR0aD1cXFxcXFxcIjI5Mi40XFxcXFxcXCIgaGVpZ2h0PVxcXFxcXFwiMjkyLjRcXFxcXFxcIiB2aWV3Qm94PVxcXFxcXFwiMCAwIDI5MiAyOTJcXFxcXFxcIj48cGF0aCBkPVxcXFxcXFwiTTI4NyAxOTdMMTU5IDY5Yy00LTMtOC01LTEzLTVzLTkgMi0xMyA1TDUgMTk3Yy0zIDQtNSA4LTUgMTNzMiA5IDUgMTNjNCA0IDggNSAxMyA1aDI1NmM1IDAgOS0xIDEzLTVzNS04IDUtMTMtMS05LTUtMTN6XFxcXFxcXCIvPjwvc3ZnPicpO1xcXFxuICAtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcjogI3skb2MtYmx1ZS0yfTtcXFxcbiAgLS1pY29uLWZpbGwtY29sb3I6ICN7JG9jLWdyYXktOX07XFxcXG4gIC0taWNvbi1ncmVlbi1maWxsLWNvbG9yOiAjeyRvYy1ncmVlbi05fTtcXFxcbiAgLS1kZWZhdWx0LWJnLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxcXG4gIC0taW5wdXQtYmctY29sb3I6ICN7JG9jLXdoaXRlfTtcXFxcbiAgLS1pbnB1dC1ib3JkZXItY29sb3I6ICN7JG9jLWdyYXktNH07XFxcXG4gIC0taW5wdXQtaG92ZXItYmctY29sb3I6ICN7JG9jLWdyYXktMX07XFxcXG4gIC0taW5wdXQtbGFiZWwtY29sb3I6ICN7JG9jLWdyYXktN307XFxcXG4gIC0taXNsYW5kLWJnLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTYpO1xcXFxuICAtLWtleWJpbmRpbmctY29sb3I6ICN7JG9jLWdyYXktNX07XFxcXG4gIC0tbGluay1jb2xvcjogI3skb2MtYmx1ZS03fTtcXFxcbiAgLS1vdmVybGF5LWJnLWNvbG9yOiAje3RyYW5zcGFyZW50aXplKCRvYy13aGl0ZSwgMC4xMil9O1xcXFxuICAtLXBvcHVwLWJnLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxcXG4gIC0tcG9wdXAtc2Vjb25kYXJ5LWJnLWNvbG9yOiAjeyRvYy1ncmF5LTF9O1xcXFxuICAtLXBvcHVwLXRleHQtY29sb3I6ICN7JG9jLWJsYWNrfTtcXFxcbiAgLS1wb3B1cC10ZXh0LWludmVydGVkLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxcXG4gIC0tc2FiOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7XFxcXG4gIC0tc2FsOiBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpO1xcXFxuICAtLXNhcjogZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCk7XFxcXG4gIC0tc2F0OiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCk7XFxcXG4gIC0tc2VsZWN0LWhpZ2hsaWdodC1jb2xvcjogI3skb2MtYmx1ZS01fTtcXFxcbiAgLS1zaGFkb3ctaXNsYW5kOiAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjAxKSwgMXB4IDFweCA1cHggcmdiKDAgMCAwIC8gMTIlKTtcXFxcblxcXFxuICAtLXNwYWNlLWZhY3RvcjogMC4yNXJlbTtcXFxcbiAgLS10ZXh0LXByaW1hcnktY29sb3I6ICN7JG9jLWdyYXktOH07XFxcXG5cXFxcbiAgLS1jb2xvci1wcmltYXJ5OiAjNjk2NWRiO1xcXFxuICAtLWNvbG9yLXByaW1hcnktZGFya2VyOiAjNWI1N2QxO1xcXFxuICAtLWNvbG9yLXByaW1hcnktZGFya2VzdDogIzRhNDdiMTtcXFxcbiAgLS1jb2xvci1wcmltYXJ5LWxpZ2h0OiAjZTJlMWZjO1xcXFxuXFxcXG4gIC0tYm9yZGVyLXJhZGl1cy1tZDogMC4zNzVyZW07XFxcXG4gIC0tYm9yZGVyLXJhZGl1cy1sZzogMC41cmVtO1xcXFxuXFxcXG4gICYudGhlbWUtLWRhcmsge1xcXFxuICAgIGJhY2tncm91bmQ6ICRvYy1ibGFjaztcXFxcblxcXFxuICAgICYudGhlbWUtLWRhcmstYmFja2dyb3VuZC1ub25lIHtcXFxcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgJi50aGVtZS0tZGFyayB7XFxcXG4gICAgLS10aGVtZS1maWx0ZXI6ICN7JHRoZW1lLWZpbHRlcn07XFxcXG4gICAgLS1idXR0b24tZGVzdHJ1Y3RpdmUtYmctY29sb3I6ICM1YTAwMDA7XFxcXG4gICAgLS1idXR0b24tZGVzdHJ1Y3RpdmUtY29sb3I6ICN7JG9jLXJlZC0zfTtcXFxcbiAgICAtLWJ1dHRvbi1ncmF5LTE6ICMzNjM2MzY7XFxcXG4gICAgLS1idXR0b24tZ3JheS0yOiAjMjcyNzI3O1xcXFxuICAgIC0tYnV0dG9uLWdyYXktMzogIzIyMjtcXFxcbiAgICAtLWJ1dHRvbi1zcGVjaWFsLWFjdGl2ZS1iZy1jb2xvcjogIzIwNDYyNDtcXFxcbiAgICAtLWRpYWxvZy1ib3JkZXItY29sb3I6ICN7JG9jLWdyYXktOX07XFxcXG4gICAgLS1kcm9wZG93bi1pY29uOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVxcXFxcXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFxcXFxcIiB3aWR0aD1cXFxcXFxcIjI5Mi40XFxcXFxcXCIgaGVpZ2h0PVxcXFxcXFwiMjkyLjRcXFxcXFxcIiB2aWV3Qm94PVxcXFxcXFwiMCAwIDI5MiAyOTJcXFxcXFxcIj48cGF0aCBmaWxsPVxcXFxcXFwiJTIzY2VkNGRhXFxcXFxcXCIgZD1cXFxcXFxcIk0yODcgMTk3TDE1OSA2OWMtNC0zLTgtNS0xMy01cy05IDItMTMgNUw1IDE5N2MtMyA0LTUgOC01IDEzczIgOSA1IDEzYzQgNCA4IDUgMTMgNWgyNTZjNSAwIDktMSAxMy01czUtOCA1LTEzLTEtOS01LTEzelxcXFxcXFwiLz48L3N2Zz4nKTtcXFxcbiAgICAtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcjogI3skb2MtYmx1ZS02fTtcXFxcbiAgICAtLWljb24tZmlsbC1jb2xvcjogI3skb2MtZ3JheS00fTtcXFxcbiAgICAtLWljb24tZ3JlZW4tZmlsbC1jb2xvcjogI3skb2MtZ3JlZW4tNH07XFxcXG4gICAgLS1kZWZhdWx0LWJnLWNvbG9yOiAjMTIxMjEyO1xcXFxuICAgIC0taW5wdXQtYmctY29sb3I6ICMxMjEyMTI7XFxcXG4gICAgLS1pbnB1dC1ib3JkZXItY29sb3I6ICMyZTJlMmU7XFxcXG4gICAgLS1pbnB1dC1ob3Zlci1iZy1jb2xvcjogIzE4MTgxODtcXFxcbiAgICAtLWlucHV0LWxhYmVsLWNvbG9yOiAjeyRvYy1ncmF5LTJ9O1xcXFxuICAgIC0taXNsYW5kLWJnLWNvbG9yOiByZ2JhKDMwLCAzMCwgMzAsIDAuOTgpO1xcXFxuICAgIC0ta2V5YmluZGluZy1jb2xvcjogI3skb2MtZ3JheS02fTtcXFxcbiAgICAtLWxpbmstY29sb3I6ICN7JG9jLWJsdWUtNH07XFxcXG4gICAgLS1vdmVybGF5LWJnLWNvbG9yOiAje3RyYW5zcGFyZW50aXplKCRvYy1ncmF5LTgsIDAuODgpfTtcXFxcbiAgICAtLXBvcHVwLWJnLWNvbG9yOiAjMmMyYzJjO1xcXFxuICAgIC0tcG9wdXAtc2Vjb25kYXJ5LWJnLWNvbG9yOiAjMjIyO1xcXFxuICAgIC0tcG9wdXAtdGV4dC1jb2xvcjogI3skb2MtZ3JheS00fTtcXFxcbiAgICAtLXBvcHVwLXRleHQtaW52ZXJ0ZWQtY29sb3I6ICMyYzJjMmM7XFxcXG4gICAgLS1zZWxlY3QtaGlnaGxpZ2h0LWNvbG9yOiAjeyRvYy1ibHVlLTR9O1xcXFxuICAgIC0tc2hhZG93LWlzbGFuZDogMXB4IDFweCA1cHggI3t0cmFuc3BhcmVudGl6ZSgkb2MtYmxhY2ssIDAuNyl9O1xcXFxuICAgIC0tdGV4dC1wcmltYXJ5LWNvbG9yOiAjeyRvYy1ncmF5LTR9O1xcXFxuXFxcXG4gICAgLS1jb2xvci1wcmltYXJ5OiAjNTY1MGYwO1xcXFxuICAgIC0tY29sb3ItcHJpbWFyeS1kYXJrZXI6ICM0YjQ2ZDg7XFxcXG4gICAgLS1jb2xvci1wcmltYXJ5LWRhcmtlc3Q6ICMzZTM5YmU7XFxcXG4gICAgLS1jb2xvci1wcmltYXJ5LWxpZ2h0OiAjM2YzZDY0O1xcXFxuICB9XFxcXG59XFxcXG5cXFwiLFxcXCIvL1xcXFxuLy9cXFxcbi8vICBcdUQ4MzVcdURERDYgXHVEODM1XHVEREUyIFx1RDgzNVx1RERERiBcdUQ4MzVcdURERTIgXHVEODM1XHVEREU1XFxcXG4vLyAgdiAxLjkuMVxcXFxuLy9cXFxcbi8vICBcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcXFxcblxcXFxuXFxcXG4vLyAgR2VuZXJhbFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2Mtd2hpdGU6ICAgICAgICAgI2ZmZmZmZjtcXFxcbiRvYy1ibGFjazogICAgICAgICAjMDAwMDAwO1xcXFxuXFxcXG5cXFxcbi8vICBHcmF5XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmF5LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmOGY5ZmEsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZjFmM2Y1LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2U5ZWNlZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNkZWUyZTYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjY2VkNGRhLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2FkYjViZCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM4NjhlOTYsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNDk1MDU3LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzM0M2E0MCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMyMTI1MjlcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmF5LTA6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0yOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTM6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS01OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTY6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS04OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTk6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBSZWRcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXJlZC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmNWY1LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZTNlMyxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmM5YzksXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZhOGE4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmODc4NyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmZjZiNmIsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmE1MjUyLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2YwM2UzZSxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNlMDMxMzEsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjYzkyYTJhXFxcXG4pO1xcXFxuXFxcXG4kb2MtcmVkLTA6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTE6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTI6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTM6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTQ6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTU6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTY6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTc6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTg6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtcmVkLTk6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFBpbmtcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXBpbmstbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjBmNixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmRlZWIsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmNjMmQ3LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZhYTJjMSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmNzgzYWMsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZjA2NTk1LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2U2NDk4MCxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNkNjMzNmMsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjYzIyNTVjLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2E2MWU0ZFxcXFxuKTtcXFxcblxcXFxuJG9jLXBpbmstMDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtcGluay0xOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTI6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtcGluay00OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTU6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtcGluay03OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTg6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstOTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEdyYXBlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmFwZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjhmMGZjLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2YzZDlmYSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNlZWJlZmEsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZTU5OWY3LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2RhNzdmMixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNjYzVkZTgsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjYmU0YmRiLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2FlM2VjOSxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM5YzM2YjUsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjODYyZTljXFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JhcGUtMDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTE6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0yOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTQ6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS01OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTc6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS04OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtOTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBWaW9sZXRcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXZpb2xldC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjNmMGZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2U1ZGJmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNkMGJmZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjYjE5N2ZjLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzk3NzVmYSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM4NDVlZjcsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNzk1MGYyLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzcwNDhlOCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICM2NzQxZDksXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjNWYzZGM0XFxcXG4pO1xcXFxuXFxcXG4kb2MtdmlvbGV0LTA6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTE6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTI6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTM6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTQ6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTU6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTY6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTc6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTg6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtdmlvbGV0LTk6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEluZGlnb1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtaW5kaWdvLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlZGYyZmYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZGJlNGZmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2JhYzhmZixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM5MWE3ZmYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNzQ4ZmZjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzVjN2NmYSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM0YzZlZjUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNDI2M2ViLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzNiNWJkYixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMzNjRmYzdcXFxcbik7XFxcXG5cXFxcbiRvYy1pbmRpZ28tMDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tMzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tNzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tODogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1pbmRpZ28tOTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQmx1ZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtYmx1ZS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTdmNWZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2QwZWJmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNhNWQ4ZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNzRjMGZjLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzRkYWJmNyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMzMzlhZjAsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMjI4YmU2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzFjN2VkNixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMxOTcxYzIsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMTg2NGFiXFxcXG4pO1xcXFxuXFxcXG4kb2MtYmx1ZS0wOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTE6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0zOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTQ6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS02OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTc6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtODogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS05OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQ3lhblxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtY3lhbi1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTNmYWZjLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2M1ZjZmYSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICM5OWU5ZjIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNjZkOWU4LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzNiYzlkYixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMyMmI4Y2YsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMTVhYWJmLFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzEwOThhZCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMwYzg1OTksXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMGI3Mjg1XFxcXG4pO1xcXFxuXFxcXG4kb2MtY3lhbi0wOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTE6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0zOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTQ6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi02OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTc6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tODogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi05OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgVGVhbFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtdGVhbC1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZTZmY2Y1LFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2MzZmFlOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICM5NmYyZDcsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjNjNlNmJlLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzM4ZDlhOSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICMyMGM5OTcsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjMTJiODg2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzBjYTY3OCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMwOTkyNjgsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMDg3ZjViXFxcXG4pO1xcXFxuXFxcXG4kb2MtdGVhbC0wOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTE6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0zOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTQ6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC02OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTc6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtODogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC05OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgR3JlZW5cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWdyZWVuLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNlYmZiZWUsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZDNmOWQ4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2IyZjJiYixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICM4Y2U5OWEsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjNjlkYjdjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzUxY2Y2NixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM0MGMwNTcsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjMzdiMjRkLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzJmOWU0NCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICMyYjhhM2VcXFxcbik7XFxcXG5cXFxcbiRvYy1ncmVlbi0wOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTI6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0zOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNDogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTU6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi02OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNzogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTg6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi05OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIExpbWVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWxpbWUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y0ZmNlMyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNlOWZhYzgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZDhmNWEyLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2MwZWI3NSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNhOWUzNGIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjOTRkODJkLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzgyYzkxZSxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM3NGI4MTYsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjNjZhODBmLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzVjOTQwZFxcXFxuKTtcXFxcblxcXFxuJG9jLWxpbWUtMDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0xOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTI6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtbGltZS00OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTU6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtbGltZS03OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTg6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtOTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFllbGxvd1xcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MteWVsbG93LWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY5ZGIsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZmM2JmLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmZWM5OSxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmUwNjYsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmZkNDNiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZjYzQxOSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmYWIwMDUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjU5ZjAwLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2YwOGMwMCxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNlNjc3MDBcXFxcbik7XFxcXG5cXFxcbiRvYy15ZWxsb3ctMDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctMzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctNzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctODogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy15ZWxsb3ctOTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgT3JhbmdlXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1vcmFuZ2UtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjRlNixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmU4Y2MsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZkOGE4LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmYzA3OCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZmE5NGQsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmY5MjJiLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZkN2UxNCxcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmNzY3MDcsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZTg1OTBjLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2Q5NDgwZlxcXFxuKTtcXFxcblxcXFxuJG9jLW9yYW5nZS0wOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0xOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0yOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS0zOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS00OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS01OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS02OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS03OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS04OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLW9yYW5nZS05OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBDb2xvciBsaXN0XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1jb2xvci1zcGVjdHJ1bTogICA5O1xcXFxuXFxcXG4kb2MtY29sb3ItbGlzdDogKFxcXFxuICAkb2MtZ3JheS1saXN0OiAgICAgIFxcXFxcXFwiZ3JheVxcXFxcXFwiLFxcXFxuICAkb2MtcmVkLWxpc3Q6ICAgICAgXFxcXFxcXCJyZWRcXFxcXFxcIixcXFxcbiAgJG9jLXBpbmstbGlzdDogICAgICBcXFxcXFxcInBpbmtcXFxcXFxcIixcXFxcbiAgJG9jLWdyYXBlLWxpc3Q6ICAgICAgXFxcXFxcXCJncmFwZVxcXFxcXFwiLFxcXFxuICAkb2MtdmlvbGV0LWxpc3Q6ICAgICAgXFxcXFxcXCJ2aW9sZXRcXFxcXFxcIixcXFxcbiAgJG9jLWluZGlnby1saXN0OiAgICAgIFxcXFxcXFwiaW5kaWdvXFxcXFxcXCIsXFxcXG4gICRvYy1ibHVlLWxpc3Q6ICAgICAgXFxcXFxcXCJibHVlXFxcXFxcXCIsXFxcXG4gICRvYy1jeWFuLWxpc3Q6ICAgICAgXFxcXFxcXCJjeWFuXFxcXFxcXCIsXFxcXG4gICRvYy10ZWFsLWxpc3Q6ICAgICAgXFxcXFxcXCJ0ZWFsXFxcXFxcXCIsXFxcXG4gICRvYy1ncmVlbi1saXN0OiAgICAgIFxcXFxcXFwiZ3JlZW5cXFxcXFxcIixcXFxcbiAgJG9jLWxpbWUtbGlzdDogICAgICBcXFxcXFxcImxpbWVcXFxcXFxcIixcXFxcbiAgJG9jLXllbGxvdy1saXN0OiAgICAgIFxcXFxcXFwieWVsbG93XFxcXFxcXCIsXFxcXG4gICRvYy1vcmFuZ2UtbGlzdDogICAgICBcXFxcXFxcIm9yYW5nZVxcXFxcXFwiXFxcXG4pO1xcXFxuXFxcIl0sXFxcInNvdXJjZVJvb3RcXFwiOlxcXCJcXFwifV0pO1xcbi8vIEV4cG9ydHNcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKF9fX0NTU19MT0FERVJfRVhQT1JUX19fKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjeUV1TDI1dlpHVmZiVzlrZFd4bGN5OXdiM04wWTNOekxXeHZZV1JsY2k5a2FYTjBMMk5xY3k1cWN6OC9jblZzWlZObGRGc3hYUzV5ZFd4bGMxc3dYUzUxYzJWYk1sMGhMaTl1YjJSbFgyMXZaSFZzWlhNdmMyRnpjeTFzYjJGa1pYSXZaR2x6ZEM5amFuTXVhbk1oTGk0dkxpNHZZM056TDNOMGVXeGxjeTV6WTNOekxtcHpJaXdpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN1FVRkJRVHRCUVVNNFNEdEJRVU5xUWp0QlFVTlBPMEZCUTNCSUxEUkRRVUUwUXl3MmFrSkJRV3RTTzBGQlF6bFVMRFJEUVVFMFF5eHBiVUpCUVhGVE8wRkJRMnBXTERoQ1FVRTRRaXgxUjBGQk1rSXNRMEZCUXl4blNFRkJjVU03UVVGREwwWXNlVU5CUVhsRExEQkhRVUVyUWp0QlFVTjRSU3g1UTBGQmVVTXNNRWRCUVN0Q08wRkJRM2hGTzBGQlEwRXNiVVJCUVcxRUxHZEVRVUZuUkN4SFFVRkhMR0ZCUVdFc1owUkJRV2RFTEVkQlFVY3NhVUpCUVdsQ0xIbENRVUY1UWl3eVEwRkJNa01zZDBOQlFYZERMRFpDUVVFMlFpdzJRa0ZCTmtJc05rSkJRVFpDTERoRFFVRTRReXh0UTBGQmJVTXNjVVZCUVhGRkxIRkRRVUZ4UXl3clFrRkJLMElzY1VOQlFYRkRMR2REUVVGblF5dzRRa0ZCT0VJc2EwTkJRV3RETEc5RFFVRnZReXhwUTBGQmFVTXNhVVJCUVdsRUxHZERRVUZuUXl3d1FrRkJNRUlzYTBSQlFXdEVMRGhDUVVFNFFpeDNRMEZCZDBNc1owTkJRV2RETEhsRFFVRjVReXgxUTBGQmRVTXNjVU5CUVhGRExITkRRVUZ6UXl4dlEwRkJiME1zYzBOQlFYTkRMR2xHUVVGcFJpdzBRa0ZCTkVJc2EwTkJRV3RETERaQ1FVRTJRaXh2UTBGQmIwTXNjVU5CUVhGRExHMURRVUZ0UXl4cFEwRkJhVU1zSzBKQlFTdENMRWRCUVVjc01rSkJRVEpDTEhkQ1FVRjNRaXhIUVVGSExIVkVRVUYxUkN4eFFrRkJjVUlzUjBGQlJ5d3lRa0ZCTWtJc2JVUkJRVzFFTERKRFFVRXlReXgzUTBGQmQwTXNOa0pCUVRaQ0xEWkNRVUUyUWl3d1FrRkJNRUlzT0VOQlFUaERMRzFEUVVGdFF5eHhSVUZCY1VVc2NVTkJRWEZETEN0Q1FVRXJRaXh4UTBGQmNVTXNaME5CUVdkRExEaENRVUU0UWl4clEwRkJhME1zYjBOQlFXOURMR2xEUVVGcFF5dzRRMEZCT0VNc1owTkJRV2RETERCQ1FVRXdRaXdyUTBGQkswTXNPRUpCUVRoQ0xIRkRRVUZ4UXl4blEwRkJaME1zZVVOQlFYbERMSE5EUVVGelF5eHZSRUZCYjBRc2EwTkJRV3RETERaQ1FVRTJRaXh2UTBGQmIwTXNjVU5CUVhGRExHMURRVUZ0UXl4SFFVRkhMRmRCUVZjc2RVSkJRWFZDTEhkQ1FVRjNRaXgzUWtGQmQwSXNSMEZCUnl4cFFrRkJhVUlzZFVKQlFYVkNMSEZDUVVGeFFpeHhRMEZCY1VNc2EwSkJRV3RDTEZkQlFWY3NZMEZCWXl4WlFVRlpMR0ZCUVdFc2FVSkJRV2xDTEdkQ1FVRm5RaXc0UWtGQk9FSXNPRUpCUVRoQ0xFZEJRVWNzY1VKQlFYRkNMR3RDUVVGclFpeEhRVUZITEdsQ1FVRnBRaXh4UWtGQmNVSXNNRUpCUVRCQ0xEWkNRVUUyUWl4SFFVRkhMSFZDUVVGMVFpd3JRa0ZCSzBJc1IwRkJSeXh6UWtGQmMwSXNkVUpCUVhWQ0xDdENRVUVyUWl4elEwRkJjME1zYTBOQlFXdERMRWRCUVVjc2RVSkJRWFZDTEhWQ1FVRjFRaXhIUVVGSExHdERRVUZyUXl4blEwRkJaME1zUjBGQlJ5eHRRMEZCYlVNc0swSkJRU3RDTEdsRFFVRnBReXhyUTBGQmEwTXNaME5CUVdkRExFZEJRVWNzZVVKQlFYbENMR3RDUVVGclFpeHRRMEZCYlVNc1IwRkJSeXcwUWtGQk5FSXNhMEpCUVd0Q0xESkNRVUV5UWl4SFFVRkhMREpIUVVFeVJ5eDVRa0ZCZVVJc05FSkJRVFJDTEhWQ1FVRjFRaXh4UTBGQmNVTXNjMEpCUVhOQ0xHMUNRVUZ0UWl4SFFVRkhMR2xFUVVGcFJDeHRRa0ZCYlVJc1owSkJRV2RDTEVkQlFVY3NLMGxCUVN0SkxHdENRVUZyUWl4SFFVRkhMRzFEUVVGdFF5eGxRVUZsTEVkQlFVY3NORU5CUVRSRExHOUNRVUZ2UWl4MVFrRkJkVUlzUjBGQlJ5eDNRMEZCZDBNc2IwSkJRVzlDTEVkQlFVY3NPRU5CUVRoRExEQkNRVUV3UWl4MVFrRkJkVUlzTUVKQlFUQkNMRWRCUVVjc2IwaEJRVzlJTEdWQlFXVXNkVUpCUVhWQ0xIbENRVUY1UWl4SFFVRkhMR2xFUVVGcFJDeHZRa0ZCYjBJc1IwRkJSeXhyUkVGQmEwUXNZMEZCWXl3eVFrRkJNa0lzUjBGQlJ5eDNSRUZCZDBRc2VVSkJRWGxDTEhWRVFVRjFSQ3hIUVVGSExIZEVRVUYzUkN3eVEwRkJNa01zUjBGQlJ5eDVSRUZCZVVRc01rTkJRVEpETEVkQlFVY3NNa1JCUVRKRUxIZENRVUYzUWl4SFFVRkhMSGRFUVVGM1JDeG5Ra0ZCWjBJc2FVSkJRV2xDTEVkQlFVY3NjVU5CUVhGRExHTkJRV01zZVVKQlFYbENMR1ZCUVdVc2FVSkJRV2xDTEVkQlFVY3NkMEpCUVhkQ0xHVkJRV1VzT0VKQlFUaENMR2RDUVVGblFpeEhRVUZITEdkR1FVRm5SaXg1UWtGQmVVSXNkVVJCUVhWRUxFZEJRVWNzYzBSQlFYTkVMRGhDUVVFNFFpdzRRa0ZCT0VJc01rTkJRVEpETEdOQlFXTXNNa05CUVRKRExIVkNRVUYxUWl4eFFrRkJjVUlzZDBKQlFYZENMRzlDUVVGdlFpeEhRVUZITEd0R1FVRnJSaXg1UWtGQmVVSXNkVVJCUVhWRUxFZEJRVWNzYTBWQlFXdEZMREpEUVVFeVF5eEhRVUZITEc5RlFVRnZSU3d5UTBGQk1rTXNSMEZCUnl4M1JVRkJkMFVzZDBKQlFYZENMRWRCUVVjc09FUkJRVGhFTERKRFFVRXlReXdyUWtGQkswSXNSMEZCUnl3d1JVRkJNRVVzYTBSQlFXdEVMRWRCUVVjc05FVkJRVFJGTEcxRVFVRnRSQ3hIUVVGSExHZEVRVUZuUkN4NVFrRkJlVUlzTkVKQlFUUkNMSGRDUVVGM1FpeEhRVUZITEc5RVFVRnZSQ3huUWtGQlowSXNhVUpCUVdsQ0xHbENRVUZwUWl4cFFrRkJhVUlzUjBGQlJ5d3lSRUZCTWtRc1pVRkJaU3hIUVVGSExEUkNRVUUwUWl4dFEwRkJiVU1zYTBKQlFXdENMREpDUVVFeVFpeDNRa0ZCZDBJc1IwRkJSeXdyUWtGQkswSXNkVUpCUVhWQ0xGZEJRVmNzWTBGQll5eFpRVUZaTEdGQlFXRXNhVVJCUVdsRUxIVkVRVUYxUkN4cFEwRkJhVU1zYTBOQlFXdERMR2REUVVGblF5eGxRVUZsTEd0Q1FVRnJRaXd3UWtGQk1FSXNlVUpCUVhsQ0xFZEJRVWNzZVVOQlFYbERMR2RDUVVGblFpeHZRa0ZCYjBJc2IwSkJRVzlDTERKQ1FVRXlRaXh4UWtGQmNVSXNhMEpCUVd0Q0xESkNRVUV5UWl3MFFrRkJORUlzUjBGQlJ5eHpSRUZCYzBRc01rSkJRVEpDTEVkQlFVY3NORUpCUVRSQ0xHZENRVUZuUWl3eVFrRkJNa0lzUjBGQlJ5eHZRMEZCYjBNc2EwSkJRV3RDTEhkQ1FVRjNRaXh0UTBGQmJVTXNhVUpCUVdsQ0xFZEJRVWNzWjBOQlFXZERMR2RDUVVGblFpeDNRa0ZCZDBJc2NVSkJRWEZDTERKQ1FVRXlRaXh6UTBGQmMwTXNSMEZCUnl4NVFrRkJlVUlzYTBKQlFXdENMR3REUVVGclF5eEhRVUZITERaQ1FVRTJRaXhwUkVGQmFVUXNhMEpCUVd0Q0xEUkNRVUUwUWl4dlFrRkJiMElzYjBOQlFXOURMRWRCUVVjc1owWkJRV2RHTEhkQ1FVRjNRaXhIUVVGSExEWkRRVUUyUXl3MlFrRkJOa0lzUjBGQlJ5dzBRMEZCTkVNc01rSkJRVEpDTEVkQlFVY3NaME5CUVdkRExIVkNRVUYxUWl4alFVRmpMSGRFUVVGM1JDeHRRa0ZCYlVJc05FSkJRVFJDTEc5Q1FVRnZRaXh2UTBGQmIwTXNhVUpCUVdsQ0xFZEJRVWNzSzBOQlFTdERMR3RDUVVGclFpeEhRVUZITEN0RFFVRXJReXh0UWtGQmJVSXNSMEZCUnl4NVJFRkJlVVFzYVVKQlFXbENMRWRCUVVjc2QwTkJRWGRETEd0Q1FVRnJRaXhIUVVGSExHZEVRVUZuUkN3MlFrRkJOa0lzUjBGQlJ5d3JRMEZCSzBNc01rSkJRVEpDTEVkQlFVY3NPRUpCUVRoQ0xIRkRRVUZ4UXl4cFFrRkJhVUlzUjBGQlJ5d3JRa0ZCSzBJc05FSkJRVFJDTEdsQ1FVRnBRaXhIUVVGSExDdENRVUVyUWl4eFFrRkJjVUlzUjBGQlJ5eG5RMEZCWjBNc2JVSkJRVzFDTEdWQlFXVXNhVU5CUVdsRExDdENRVUVyUWl4clEwRkJhME1zTWtOQlFUSkRMSFZEUVVGMVF5d3lRMEZCTWtNc2MwSkJRWE5DTEd0Q1FVRnJRaXcyUWtGQk5rSXNOa0pCUVRaQ0xESkRRVUV5UXl4cFEwRkJhVU1zYlVSQlFXMUVMSFZEUVVGMVF5eEhRVUZITEN0RFFVRXJReXhyUkVGQmEwUXNSMEZCUnl4elEwRkJjME1zZFVSQlFYVkVMRWRCUVVjc2MwTkJRWE5ETERKRFFVRXlReXhIUVVGSExIVkRRVUYxUXl3eVEwRkJNa01zUjBGQlJ5dzJRa0ZCTmtJc1kwRkJZeXd5UWtGQk1rSXNhVUpCUVdsQ0xIbENRVUY1UWl4M1FrRkJkMElzTkVKQlFUUkNMRWRCUVVjc2FVTkJRV2xETEdkQ1FVRm5RaXhwUWtGQmFVSXNSMEZCUnl4MVEwRkJkVU1zYlVOQlFXMURMSFZDUVVGMVFpeGpRVUZqTEdsQ1FVRnBRaXhuUTBGQlowTXNkVUpCUVhWQ0xFZEJRVWNzTUVKQlFUQkNMR3RDUVVGclFpeHZRa0ZCYjBJc2EwSkJRV3RDTEdWQlFXVXNZMEZCWXl4eFFrRkJjVUlzYTBOQlFXdERMRWRCUVVjc09FSkJRVGhDTEd0Q1FVRnJRaXh0UWtGQmJVSXNSMEZCUnl4blEwRkJaME1zY1VKQlFYRkNMRWRCUVVjc2EwTkJRV3RETEcxQ1FVRnRRaXcwUWtGQk5FSXNjVU5CUVhGRExHZERRVUZuUXl4SFFVRkhMR3REUVVGclF5eHJRa0ZCYTBJc01rSkJRVEpDTEdWQlFXVXNjVUpCUVhGQ0xIZENRVUYzUWl3clFrRkJLMElzUjBGQlJ5eDNRMEZCZDBNc2EwSkJRV3RDTEVkQlFVY3NNRVJCUVRCRUxIVkRRVUYxUXl4blFrRkJaMElzUjBGQlJ5dzBRMEZCTkVNc01FSkJRVEJDTEVkQlFVY3NiME5CUVc5RExIZENRVUYzUWl4bFFVRmxMR2xDUVVGcFFpeG5Ra0ZCWjBJc05rSkJRVFpDTEVkQlFVY3NaMFZCUVdkRkxIVkNRVUYxUWl4bFFVRmxMR05CUVdNc1lVRkJZU3cyUWtGQk5rSXNSMEZCUnl4elEwRkJjME1zYjBOQlFXOURMRWRCUVVjc0swTkJRU3RETEd0Q1FVRnJRaXh0UTBGQmJVTXNSMEZCUnl4blJrRkJaMFlzY1VOQlFYRkRMR3RFUVVGclJDeHhRa0ZCY1VJc2QwSkJRWGRDTEhWRFFVRjFReXcwUTBGQk5FTXNSMEZCUnl4dlNFRkJiMGdzYTBSQlFXdEVMRWRCUVVjc05FWkJRVFJHTEd0Q1FVRnJRaXgxUkVGQmRVUXNSMEZCUnl4blFrRkJaMElzYjBkQlFXOUhMRzlDUVVGdlFpeExRVUZMTEVkQlFVY3NOa0pCUVRaQ0xITkNRVUZ6UWl4dlFrRkJiMElzYlVKQlFXMUNMR3RDUVVGclFpeDNRa0ZCZDBJc05FSkJRVFJDTERoQ1FVRTRRaXc0UWtGQk9FSXNSMEZCUnl4NVJFRkJlVVFzYTBKQlFXdENMREpDUVVFeVFpeDNRa0ZCZDBJc05FSkJRVFJDTEd0Q1FVRnJRaXc0UWtGQk9FSXNPRUpCUVRoQ0xFZEJRVWNzYTBSQlFXdEVMRzFDUVVGdFFpeHhRa0ZCY1VJc1IwRkJSeXdyUkVGQkswUXNkVUpCUVhWQ0xFZEJRVWNzTkVWQlFUUkZMSEZDUVVGeFFpeEhRVUZITERoRlFVRTRSU3h4UWtGQmNVSXNSMEZCUnl4blJFRkJaMFFzYTBKQlFXdENMREpDUVVFeVFpdzBRa0ZCTkVJc1IwRkJSeXg1UkVGQmVVUXNaMEpCUVdkQ0xHMUNRVUZ0UWl3NFFrRkJPRUlzY1VKQlFYRkNMRWRCUVVjc1QwRkJUeXgzVDBGQmQwOHNWMEZCVnl4TlFVRk5MRXRCUVVzc1YwRkJWeXhOUVVGTkxFdEJRVXNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NTMEZCU3l4TFFVRkxMRmxCUVZrc1QwRkJUeXhMUVVGTExGZEJRVmNzUzBGQlN5eExRVUZMTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhOUVVGTkxFMUJRVTBzVjBGQlZ5eFhRVUZYTEZkQlFWY3NUMEZCVHl4TlFVRk5MRmRCUVZjc1YwRkJWeXhYUVVGWExGVkJRVlVzVlVGQlZTeFZRVUZWTEZWQlFWVXNWVUZCVlN4VlFVRlZMRlZCUVZVc1YwRkJWeXhYUVVGWExFMUJRVTBzVFVGQlRTeFZRVUZWTEUxQlFVMHNUVUZCVFN4WFFVRlhMRmRCUVZjc1YwRkJWeXhOUVVGTkxFMUJRVTBzVjBGQlZ5eE5RVUZOTEUxQlFVMHNWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhOUVVGTkxFMUJRVTBzVjBGQlZ5eE5RVUZOTEUxQlFVMHNWMEZCVnl4TlFVRk5MRTFCUVUwc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eE5RVUZOTEUxQlFVMHNWVUZCVlN4WFFVRlhMRTFCUVUwc1RVRkJUU3hWUVVGVkxGZEJRVmNzVFVGQlRTeFJRVUZSTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhWUVVGVkxFMUJRVTBzVFVGQlRTeFZRVUZWTEZWQlFWVXNUVUZCVFN4UlFVRlJMRlZCUVZVc1RVRkJUU3hOUVVGTkxGVkJRVlVzVFVGQlRTeE5RVUZOTEZWQlFWVXNWMEZCVnl4TlFVRk5MRTFCUVUwc1ZVRkJWU3hOUVVGTkxFMUJRVTBzVjBGQlZ5eFhRVUZYTEZkQlFWY3NUVUZCVFN4UFFVRlBMRlZCUVZVc1YwRkJWeXhYUVVGWExFMUJRVTBzVFVGQlRTeFZRVUZWTEUxQlFVMHNUVUZCVFN4VlFVRlZMRmRCUVZjc1RVRkJUU3hOUVVGTkxGZEJRVmNzVjBGQlZ5eE5RVUZOTEUxQlFVMHNWMEZCVnl4TlFVRk5MRTFCUVUwc1YwRkJWeXhOUVVGTkxFMUJRVTBzVjBGQlZ5eE5RVUZOTEUxQlFVMHNWVUZCVlN4VlFVRlZMRTFCUVUwc1RVRkJUU3hWUVVGVkxGZEJRVmNzVlVGQlZTeFZRVUZWTEUxQlFVMHNUVUZCVFN4VlFVRlZMRmxCUVZrc1YwRkJWeXhOUVVGTkxFOUJRVThzVjBGQlZ5eFhRVUZYTEUxQlFVMHNUMEZCVHl4WFFVRlhMRmRCUVZjc1YwRkJWeXhWUVVGVkxGZEJRVmNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWVUZCVlN4TlFVRk5MRTlCUVU4c1YwRkJWeXhYUVVGWExFMUJRVTBzVDBGQlR5eFhRVUZYTEUxQlFVMHNUMEZCVHl4WFFVRlhMRTFCUVUwc1QwRkJUeXhYUVVGWExFMUJRVTBzVDBGQlR5eFhRVUZYTEZkQlFWY3NUVUZCVFN4UFFVRlBMRmRCUVZjc1RVRkJUU3hQUVVGUExGZEJRVmNzVFVGQlRTeE5RVUZOTEZkQlFWY3NWMEZCVnl4WFFVRlhMRTFCUVUwc1RVRkJUU3hWUVVGVkxGVkJRVlVzVlVGQlZTeFZRVUZWTEUxQlFVMHNUVUZCVFN4VlFVRlZMRTFCUVUwc1RVRkJUU3hYUVVGWExGVkJRVlVzVjBGQlZ5eFhRVUZYTEUxQlFVMHNUVUZCVFN4WFFVRlhMRlZCUVZVc1ZVRkJWU3hWUVVGVkxGVkJRVlVzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMRlZCUVZVc1ZVRkJWU3hYUVVGWExGZEJRVmNzVFVGQlRTeE5RVUZOTEZWQlFWVXNWVUZCVlN4VlFVRlZMRmRCUVZjc1YwRkJWeXhWUVVGVkxGZEJRVmNzVjBGQlZ5eE5RVUZOTEUxQlFVMHNWMEZCVnl4TlFVRk5MRTFCUVUwc1ZVRkJWU3hYUVVGWExFMUJRVTBzVFVGQlRTeFZRVUZWTEZkQlFWY3NWMEZCVnl4VlFVRlZMRTFCUVUwc1RVRkJUU3hWUVVGVkxGZEJRVmNzVjBGQlZ5eFhRVUZYTEZkQlFWY3NUVUZCVFN4TlFVRk5MRlZCUVZVc1YwRkJWeXhOUVVGTkxFMUJRVTBzVjBGQlZ5eFZRVUZWTEZkQlFWY3NWVUZCVlN4WFFVRlhMRTFCUVUwc1RVRkJUU3hYUVVGWExFMUJRVTBzVFVGQlRTeFhRVUZYTEUxQlFVMHNUVUZCVFN4WFFVRlhMRTFCUVUwc1RVRkJUU3hYUVVGWExGVkJRVlVzVjBGQlZ5eFZRVUZWTEZkQlFWY3NWVUZCVlN4WFFVRlhMRlZCUVZVc1RVRkJUU3hOUVVGTkxGVkJRVlVzVFVGQlRTeE5RVUZOTEZWQlFWVXNUVUZCVFN4TFFVRkxMRlZCUVZVc1RVRkJUU3hMUVVGTExGVkJRVlVzUzBGQlN5eExRVUZMTEZkQlFWY3NTMEZCU3l4TFFVRkxMRmRCUVZjc1MwRkJTeXhMUVVGTExGZEJRVmNzVlVGQlZTeExRVUZMTEV0QlFVc3NWMEZCVnl4VlFVRlZMRXRCUVVzc1MwRkJTeXhYUVVGWExFdEJRVXNzUzBGQlN5eFZRVUZWTEZWQlFWVXNWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eFZRVUZWTEZkQlFWY3NWMEZCVnl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExFdEJRVXNzUzBGQlN5eFhRVUZYTEV0QlFVc3NTMEZCU3l4WFFVRlhMRXRCUVVzc1MwRkJTeXhYUVVGWExFdEJRVXNzUzBGQlN5eFhRVUZYTEV0QlFVc3NTMEZCU3l4VlFVRlZMRmRCUVZjc1ZVRkJWU3hYUVVGWExGZEJRVmNzVjBGQlZ5eExRVUZMTEV0QlFVc3NWVUZCVlN4VlFVRlZMRXRCUVVzc1MwRkJTeXhYUVVGWExGZEJRVmNzVlVGQlZTeFZRVUZWTEZkQlFWY3NWMEZCVnl4TFFVRkxMRXRCUVVzc1ZVRkJWU3hWUVVGVkxGZEJRVmNzVjBGQlZ5eFZRVUZWTEZkQlFWY3NWMEZCVnl4TFFVRkxMRXRCUVVzc1ZVRkJWU3hWUVVGVkxFdEJRVXNzUzBGQlN5eFhRVUZYTEV0QlFVc3NTMEZCU3l4VlFVRlZMRmRCUVZjc1YwRkJWeXhYUVVGWExFdEJRVXNzUzBGQlN5eFZRVUZWTEZkQlFWY3NWVUZCVlN4WFFVRlhMRmRCUVZjc1YwRkJWeXhMUVVGTExFdEJRVXNzVlVGQlZTeExRVUZMTEV0QlFVc3NWMEZCVnl4VlFVRlZMRTFCUVUwc1MwRkJTeXhYUVVGWExFdEJRVXNzUzBGQlN5eFhRVUZYTEZWQlFWVXNWVUZCVlN4VlFVRlZMRmRCUVZjc1MwRkJTeXhMUVVGTExGZEJRVmNzVlVGQlZTeFZRVUZWTEZWQlFWVXNWMEZCVnl4TFFVRkxMRXRCUVVzc1YwRkJWeXhMUVVGTExFMUJRVTBzVlVGQlZTeFhRVUZYTEV0QlFVc3NUMEZCVHl4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExGZEJRVmNzVjBGQlZ5eE5RVUZOTEU5QlFVOHNWMEZCVnl4TlFVRk5MRTlCUVU4c1ZVRkJWU3hYUVVGWExFMUJRVTBzVFVGQlRTeFBRVUZQTEZWQlFWVXNUVUZCVFN4TlFVRk5MRTFCUVUwc1YwRkJWeXhWUVVGVkxGVkJRVlVzVlVGQlZTeFhRVUZYTEZkQlFWY3NWMEZCVnl4WFFVRlhMRTFCUVUwc1RVRkJUU3hWUVVGVkxGZEJRVmNzVjBGQlZ5eFhRVUZYTEZWQlFWVXNXVUZCV1N4WlFVRlpMRTFCUVUwc1RVRkJUU3hWUVVGVkxGZEJRVmNzVFVGQlRTeE5RVUZOTEZkQlFWY3NUVUZCVFN4UFFVRlBMRmRCUVZjc1RVRkJUU3hQUVVGUExGZEJRVmNzVFVGQlRTeE5RVUZOTEZWQlFWVXNWMEZCVnl4WFFVRlhMRTFCUVUwc1RVRkJUU3hWUVVGVkxGVkJRVlVzVjBGQlZ5eFhRVUZYTEdsRlFVRnBSU3gxUWtGQmRVSXNhME5CUVd0RExFbEJRVWtzWlVGQlpTeExRVUZMTEVkQlFVY3NjMFJCUVhORUxHRkJRV0VzZDBOQlFYZERMRWRCUVVjc2IwTkJRVzlETEhOQ1FVRnpRaXhYUVVGWExIVkNRVUYxUWl4M1FrRkJkMElzZDBKQlFYZENMRWRCUVVjc2FVSkJRV2xDTEhWQ1FVRjFRaXh4UWtGQmNVSXNjVU5CUVhGRExHdENRVUZyUWl4WFFVRlhMR05CUVdNc1dVRkJXU3hoUVVGaExHbENRVUZwUWl4blFrRkJaMElzWlVGQlpTeHZRa0ZCYjBJc1MwRkJTeXhuVkVGQloxUXNVMEZCVXl4MVFrRkJkVUlzTkVKQlFUUkNMQ3RDUVVFclFpeHBRa0ZCYVVJc2JVTkJRVzFETEU5QlFVOHNTMEZCU3l4alFVRmpMSGxDUVVGNVFpeG5UVUZCWjAwc2NVZEJRWEZITERKRFFVRXlReXhuUzBGQlowc3NhVUpCUVdsQ0xIbENRVUY1UWl4TFFVRkxMSEZDUVVGeFFpd3dUVUZCTUUwc2IwTkJRVzlETEU5QlFVOHNTMEZCU3l3eVFrRkJNa0lzYVVOQlFXbERMRzFEUVVGdFF5eHZRMEZCYjBNc2EwTkJRV3RETEV0QlFVc3NhVUpCUVdsQ0xHOUNRVUZ2UWl4eFEwRkJjVU1zUzBGQlN5eHZRa0ZCYjBJc2IwSkJRVzlDTERaQ1FVRTJRaXc0UTBGQk9FTXNOa0pCUVRaQ0xHZERRVUZuUXl3eVFrRkJNa0lzZVVOQlFYbERMREJDUVVFd1FpeDFRa0ZCZFVJc1QwRkJUeXc0UWtGQk9FSXNkVUpCUVhWQ0xHOUNRVUZ2UWl4UFFVRlBMR3RHUVVGclJpeHpRa0ZCYzBJc1QwRkJUeXhuUWtGQlowSXNiVUpCUVcxQ0xFOUJRVThzZVVKQlFYbENMSGRDUVVGM1Fpd3lRa0ZCTWtJc1QwRkJUeXh4UWtGQmNVSXNkMEpCUVhkQ0xHbENRVUZwUWl4blEwRkJaME1zTmtKQlFUWkNMR2REUVVGblF5eFRRVUZUTEdkRlFVRm5SU3h4UWtGQmNVSXNOa0pCUVRaQ0xDdENRVUVyUWl4VFFVRlRMRzlDUVVGdlFpd3dRa0ZCTUVJc1UwRkJVeXh4UWtGQmNVSXNiMEpCUVc5Q0xHbERRVUZwUXl4eFFrRkJjVUlzYVVOQlFXbERMQ3RFUVVFclJDeFhRVUZYTEhGQ1FVRnhRaXh0UkVGQmJVUXNWMEZCVnl4elFrRkJjMElzYlVSQlFXMUVMRmRCUVZjc2QwSkJRWGRDTEdkRFFVRm5ReXhYUVVGWExGTkJRVk1zTWtKQlFUSkNMSE5DUVVGelFpeDFRa0ZCZFVJc1UwRkJVeXhQUVVGUExHdENRVUZyUWl4clFrRkJhMElzTmtKQlFUWkNMRzFDUVVGdFFpeHhRa0ZCY1VJc1QwRkJUeXhMUVVGTExHZENRVUZuUWl4cFFrRkJhVUlzYlVOQlFXMURMR3RDUVVGclFpeExRVUZMTERoRVFVRTRSQ3d5UWtGQk1rSXNlVVJCUVhsRUxFdEJRVXNzYjBOQlFXOURMSGRDUVVGM1FpdzJRMEZCTmtNc1owSkJRV2RDTERaRFFVRTJReXg1UWtGQmVVSXNkVUpCUVhWQ0xEQkNRVUV3UWl4M1FrRkJkMElzZVVKQlFYbENMRFpDUVVFMlFpd3lSRUZCTWtRc1QwRkJUeXhwUWtGQmFVSXNLME5CUVN0RExFOUJRVThzYTBKQlFXdENMQ3REUVVFclF5eFBRVUZQTEc5Q1FVRnZRaXcwUWtGQk5FSXNUMEZCVHl4TFFVRkxMRFJEUVVFMFF5dzJRMEZCTmtNc05rSkJRVFpDTEZkQlFWY3NhVUpCUVdsQ0xITkVRVUZ6UkN4UFFVRlBMR3RDUVVGclFpeDFSRUZCZFVRc1QwRkJUeXhMUVVGTExHdERRVUZyUXl4aFFVRmhMRFpDUVVFMlFpeG5RMEZCWjBNc05FSkJRVFJDTEdGQlFXRXNjMEpCUVhOQ0xIVkNRVUYxUWl4MVFrRkJkVUlzZFVKQlFYVkNMRk5CUVZNc2MwSkJRWE5DTEhGQ1FVRnhRaXhUUVVGVExFOUJRVThzUzBGQlN5eHZRa0ZCYjBJc2NVTkJRWEZETEc5Q1FVRnZRaXcyUWtGQk5rSXNNRUpCUVRCQ0xFdEJRVXNzZFVKQlFYVkNMSGxDUVVGNVFpeGhRVUZoTEdkQ1FVRm5RaXhqUVVGakxHVkJRV1VzYlVSQlFXMUVMSEZDUVVGeFFpd3lRMEZCTWtNc2JVTkJRVzFETEc5RFFVRnZReXhyUTBGQmEwTXNhVUpCUVdsQ0xHOUNRVUZ2UWl3MFFrRkJORUlzTWtKQlFUSkNMRzFDUVVGdFFpeHZRa0ZCYjBJc2QwSkJRWGRDTEhkQ1FVRjNRaXdyUWtGQkswSXNlVUpCUVhsQ0xITkNRVUZ6UWl3clFrRkJLMElzWjBOQlFXZERMSGRDUVVGM1FpeHBRMEZCYVVNc1UwRkJVeXhQUVVGUExFdEJRVXNzYjBKQlFXOUNMR3RDUVVGclFpd3JRa0ZCSzBJc1MwRkJTeXcwUWtGQk5FSXNiMEpCUVc5Q0xEQkNRVUV3UWl4eFEwRkJjVU1zYlVKQlFXMUNMRXRCUVVzc2QwSkJRWGRDTEd0Q1FVRnJRaXd3UWtGQk1FSXNkVUpCUVhWQ0xEWkNRVUUyUWl4M1EwRkJkME1zUzBGQlN5eHBRa0ZCYVVJc2IwSkJRVzlDTEc5RFFVRnZReXhMUVVGTExIRkNRVUZ4UWl4dFJFRkJiVVFzYjBKQlFXOUNMRGhDUVVFNFFpeHpRa0ZCYzBJc2MwTkJRWE5ETEV0QlFVc3NkMFZCUVhkRkxEQkNRVUV3UWl4TFFVRkxMSEZEUVVGeFF5d3JRa0ZCSzBJc1MwRkJTeXh2UTBGQmIwTXNOa0pCUVRaQ0xFdEJRVXNzZDBKQlFYZENMSGxDUVVGNVFpeG5Ra0ZCWjBJc01FUkJRVEJFTEhGQ1FVRnhRaXc0UWtGQk9FSXNjMEpCUVhOQ0xITkRRVUZ6UXl4dFFrRkJiVUlzT0VKQlFUaENMSE5DUVVGelFpeFBRVUZQTERoQ1FVRTRRaXgxUWtGQmRVSXNUMEZCVHl3MFFrRkJORUlzYVVKQlFXbENMSFZDUVVGMVFpeFRRVUZUTEU5QlFVOHNhVUpCUVdsQ0xITkNRVUZ6UWl4UFFVRlBMRXRCUVVzc2QwTkJRWGRETEN0Q1FVRXJRaXhMUVVGTExIVkRRVUYxUXl3MlFrRkJOa0lzUzBGQlN5eHpRa0ZCYzBJc2RVTkJRWFZETEcxQ1FVRnRRaXhMUVVGTExIVkNRVUYxUWl3NFFrRkJPRUlzYlVKQlFXMUNMRXRCUVVzc2RVSkJRWFZDTEhWQ1FVRjFRaXhMUVVGTExIZENRVUYzUWl4eFFrRkJjVUlzYVVKQlFXbENMRzFEUVVGdFF5eHBRMEZCYVVNc2IwTkJRVzlETERaRFFVRTJReXg1UTBGQmVVTXNOa05CUVRaRExIZENRVUYzUWl4dlFrRkJiMElzZFVKQlFYVkNMRFpEUVVFMlF5eHRRMEZCYlVNc2NVUkJRWEZFTERoQ1FVRTRRaXh6UkVGQmMwUXNUMEZCVHl3eVEwRkJNa01zYVVKQlFXbENMREpFUVVFeVJDeFBRVUZQTEdsQ1FVRnBRaXdyUTBGQkswTXNUMEZCVHl4clFrRkJhMElzSzBOQlFTdERMRTlCUVU4c1MwRkJTeXh4UWtGQmNVSXNaMEpCUVdkQ0xEWkNRVUUyUWl4dFFrRkJiVUlzTWtKQlFUSkNMREJDUVVFd1FpdzRRa0ZCT0VJc1lVRkJZU3h2UWtGQmIwSXNjVUpCUVhGQ0xFOUJRVThzUzBGQlN5d3JRa0ZCSzBJc2NVTkJRWEZETEhsQ1FVRjVRaXhuUWtGQlowSXNiVUpCUVcxQ0xHdERRVUZyUXl4NVFrRkJlVUlzUzBGQlN5eHJRa0ZCYTBJc2IwSkJRVzlDTEhOQ1FVRnpRaXgxUWtGQmRVSXNhVUpCUVdsQ0xHZENRVUZuUWl4MVFrRkJkVUlzYjBOQlFXOURMR0ZCUVdFc2MwSkJRWE5DTEhWQ1FVRjFRaXhQUVVGUExHbENRVUZwUWl4NVFrRkJlVUlzVDBGQlR5eExRVUZMTERCQ1FVRXdRaXh4UWtGQmNVSXNPRUpCUVRoQ0xIVkRRVUYxUXl4clEwRkJhME1zUzBGQlN5d3dRa0ZCTUVJc2IwSkJRVzlDTERaQ1FVRTJRaXhwUWtGQmFVSXNkVUpCUVhWQ0xEQkNRVUV3UWl4cFEwRkJhVU1zUzBGQlN5eDVRa0ZCZVVJc1lVRkJZU3h6UWtGQmMwSXNUMEZCVHl3clFrRkJLMElzTWtOQlFUSkRMRzlDUVVGdlFpeFBRVUZQTEV0QlFVc3NiVUpCUVcxQ0xEUkNRVUUwUWl3NFFrRkJPRUlzVDBGQlR5eExRVUZMTERSQ1FVRTBRaXd3UWtGQk1FSXNhVUpCUVdsQ0xHMUNRVUZ0UWl4clFrRkJhMElzSzBKQlFTdENMSFZEUVVGMVF5d3lRa0ZCTWtJc2JVSkJRVzFDTEd0Q1FVRnJRaXhwUWtGQmFVSXNhVU5CUVdsRExFOUJRVThzUzBGQlN5dzRRa0ZCT0VJc2MwTkJRWE5ETEV0QlFVc3NLMEpCUVN0Q0xHbENRVUZwUWl4elFrRkJjMElzZFVOQlFYVkRMRTlCUVU4c1MwRkJTeXhyUlVGQmEwVXNkVU5CUVhWRExHOUVRVUZ2UkN4MVFrRkJkVUlzTUVKQlFUQkNMSGxEUVVGNVF5dzRRMEZCT0VNc2RVSkJRWFZDTEdsQ1FVRnBRaXgzUkVGQmQwUXNVMEZCVXl4UFFVRlBMR2xDUVVGcFFpeHpRa0ZCYzBJc01rUkJRVEpFTEU5QlFVOHNTMEZCU3l4dlFrRkJiMElzTUVWQlFUQkZMSE5DUVVGelFpeFBRVUZQTEV0QlFVc3NSMEZCUnl3MlFrRkJOa0lzYzBKQlFYTkNMRzlDUVVGdlFpeHRRa0ZCYlVJc2EwSkJRV3RDTEhkQ1FVRjNRaXcwUWtGQk5FSXNjMEpCUVhOQ0xIRkRRVUZ4UXl4dlFrRkJiMElzTmtKQlFUWkNMREJDUVVFd1FpdzRRa0ZCT0VJc2MwSkJRWE5DTEd0RFFVRnJReXhyUTBGQmEwTXNTMEZCU3l3NFFrRkJPRUlzY1VKQlFYRkNMSFZDUVVGMVFpeDNRa0ZCZDBJc01rSkJRVEpDTEU5QlFVOHNTMEZCU3l4clEwRkJhME1zZFVKQlFYVkNMRXRCUVVzc2IwTkJRVzlETEhWQ1FVRjFRaXhMUVVGTExEUkNRVUUwUWl4dlFrRkJiMElzTmtKQlFUWkNMRGhDUVVFNFFpeHJRa0ZCYTBJc2IwSkJRVzlDTEhWQ1FVRjFRaXhyUTBGQmEwTXNlVUpCUVhsQ0xFOUJRVThzUzBGQlN5eEhRVUZITERSRFFVRTBReXh6UTBGQmMwTXNhVUpCUVdsQ0xIbENRVUY1UWl4eFEwRkJjVU1zVjBGQlZ5eHJRMEZCYTBNc1YwRkJWeXgxUWtGQmRVSXNXVUZCV1N4MVFrRkJkVUlzV1VGQldTeDFRa0ZCZFVJc1dVRkJXU3gzUTBGQmQwTXNZVUZCWVN3MlFrRkJOa0lzV1VGQldTdzBVa0ZCTkZJc0swSkJRU3RDTEZsQlFWa3NlVUpCUVhsQ0xGbEJRVmtzSzBKQlFTdENMR0ZCUVdFc01FSkJRVEJDTEZkQlFWY3NkMEpCUVhkQ0xGZEJRVmNzTkVKQlFUUkNMRmxCUVZrc09FSkJRVGhDTEZsQlFWa3NNa0pCUVRKQ0xGbEJRVmtzYVVSQlFXbEVMREJDUVVFd1FpeFpRVUZaTEc5Q1FVRnZRaXhaUVVGWkxEQkNRVUV3UWl4cFEwRkJhVU1zZDBKQlFYZENMRmRCUVZjc2EwTkJRV3RETEZsQlFWa3NNRUpCUVRCQ0xGZEJRVmNzYlVOQlFXMURMRmRCUVZjc2RVTkJRWFZETEhGRFFVRnhReXh6UTBGQmMwTXNiME5CUVc5RExHZERRVUZuUXl4WlFVRlpMR2xHUVVGcFJpdzRRa0ZCT0VJc05FSkJRVFJDTEZsQlFWa3NLMEpCUVN0Q0xHOURRVUZ2UXl4eFEwRkJjVU1zYlVOQlFXMURMRzFEUVVGdFF5d3JRa0ZCSzBJc2NVSkJRWEZDTERSQ1FVRTBRaXgxUTBGQmRVTXNlVUpCUVhsQ0xFOUJRVThzUzBGQlN5eHhRa0ZCY1VJc2QwSkJRWGRDTEdWQlFXVXNOa05CUVRaRExHOURRVUZ2UXl4WFFVRlhMQ3RDUVVFclFpd3JRa0ZCSzBJc05FSkJRVFJDTEdkRVFVRm5SQ3dyUWtGQkswSXNXVUZCV1N4cFZFRkJhVlFzYVVOQlFXbERMRmxCUVZrc01rSkJRVEpDTEZsQlFWa3NhVU5CUVdsRExHRkJRV0VzYTBOQlFXdERMR2REUVVGblF5eHZRMEZCYjBNc2MwTkJRWE5ETERaQ1FVRTJRaXhaUVVGWkxHZEVRVUZuUkN3MFFrRkJORUlzV1VGQldTeHpRa0ZCYzBJc1dVRkJXU3cwUWtGQk5FSXNhME5CUVd0RExHZERRVUZuUXl4MVEwRkJkVU1zTkVKQlFUUkNMRmxCUVZrc01rTkJRVEpETEd0RFFVRnJReXhaUVVGWkxIRkRRVUZ4UXl4blEwRkJaME1zT0VKQlFUaENMRmxCUVZrc2FVTkJRV2xETEhORFFVRnpReXgxUTBGQmRVTXNjVU5CUVhGRExFdEJRVXNzUjBGQlJ5eHJURUZCYTB3c05rSkJRVFpDTERSUlFVRTBVU3c0UTBGQk9FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNNRkZCUVRCUkxEUkRRVUUwUXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc01FTkJRVEJETERCRFFVRXdReXd3UTBGQk1FTXNNRU5CUVRCRExEQkRRVUV3UXl3MFVVRkJORkVzT0VOQlFUaERMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRGhSUVVFNFVTeG5SRUZCWjBRc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc1oxSkJRV2RTTEd0RVFVRnJSQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huVWtGQloxSXNhMFJCUVd0RUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxEUlJRVUUwVVN3NFEwRkJPRU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkZGQlFUUlJMRGhEUVVFNFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBVVUZCTkZFc09FTkJRVGhETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERoUlFVRTRVU3huUkVGQlowUXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNORkZCUVRSUkxEaERRVUU0UXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl4blVrRkJaMUlzYTBSQlFXdEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RTUVVGblVpeHJSRUZCYTBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc2VVWkJRWGxHTEhWa1FVRjFaQ3h4UWtGQmNVSTdRVUZEYWlzMVF6dEJRVU5CTEdsRlFVRmxMSFZDUVVGMVFpeEZRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnpjeTl6ZEhsc1pYTXVjMk56Y3o4d1pEVTFJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4dklFbHRjRzl5ZEhOY2JtbHRjRzl5ZENCZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5VFQxVlNRMFZOUVZCZlNVMVFUMUpVWDE5ZklHWnliMjBnWENJdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2Y25WdWRHbHRaUzl6YjNWeVkyVk5ZWEJ6TG1welhDSTdYRzVwYlhCdmNuUWdYMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZTVTFRVDFKVVgxOWZJR1p5YjIwZ1hDSXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OWpjM010Ykc5aFpHVnlMMlJwYzNRdmNuVnVkR2x0WlM5aGNHa3Vhbk5jSWp0Y2JtbHRjRzl5ZENCZlgxOURVMU5mVEU5QlJFVlNYMGRGVkY5VlVreGZTVTFRVDFKVVgxOWZJR1p5YjIwZ1hDSXVMaTl3WVdOcllXZGxjeTlsZUdOaGJHbGtjbUYzTDI1dlpHVmZiVzlrZFd4bGN5OWpjM010Ykc5aFpHVnlMMlJwYzNRdmNuVnVkR2x0WlM5blpYUlZjbXd1YW5OY0lqdGNiblpoY2lCZlgxOURVMU5mVEU5QlJFVlNYMVZTVEY5SlRWQlBVbFJmTUY5Zlh5QTlJRzVsZHlCVlVrd29YQ0prWVhSaE9tbHRZV2RsTDNOMlp5dDRiV3dzUEhOMlp5QjRiV3h1Y3oxY1hGd2lhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtZGNYRndpSUhkcFpIUm9QVnhjWENJeU9USXVORnhjWENJZ2FHVnBaMmgwUFZ4Y1hDSXlPVEl1TkZ4Y1hDSWdkbWxsZDBKdmVEMWNYRndpTUNBd0lESTVNaUF5T1RKY1hGd2lQanh3WVhSb0lHUTlYRnhjSWsweU9EY2dNVGszVERFMU9TQTJPV010TkMwekxUZ3ROUzB4TXkwMWN5MDVJREl0TVRNZ05VdzFJREU1TjJNdE15QTBMVFVnT0MwMUlERXpjeklnT1NBMUlERXpZelFnTkNBNElEVWdNVE1nTldneU5UWmpOU0F3SURrdE1TQXhNeTAxY3pVdE9DQTFMVEV6TFRFdE9TMDFMVEV6ZWx4Y1hDSXZQand2YzNablBsd2lMQ0JwYlhCdmNuUXViV1YwWVM1MWNtd3BPMXh1ZG1GeUlGOWZYME5UVTE5TVQwRkVSVkpmVlZKTVgwbE5VRTlTVkY4eFgxOWZJRDBnYm1WM0lGVlNUQ2hjSW1SaGRHRTZhVzFoWjJVdmMzWm5LM2h0YkN3OGMzWm5JSGh0Ykc1elBWeGNYQ0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaMXhjWENJZ2QybGtkR2c5WEZ4Y0lqSTVNaTQwWEZ4Y0lpQm9aV2xuYUhROVhGeGNJakk1TWk0MFhGeGNJaUIyYVdWM1FtOTRQVnhjWENJd0lEQWdNamt5SURJNU1seGNYQ0krUEhCaGRHZ2dabWxzYkQxY1hGd2lKVEl6WTJWa05HUmhYRnhjSWlCa1BWeGNYQ0pOTWpnM0lERTVOMHd4TlRrZ05qbGpMVFF0TXkwNExUVXRNVE10TlhNdE9TQXlMVEV6SURWTU5TQXhPVGRqTFRNZ05DMDFJRGd0TlNBeE0zTXlJRGtnTlNBeE0yTTBJRFFnT0NBMUlERXpJRFZvTWpVMll6VWdNQ0E1TFRFZ01UTXROWE0xTFRnZ05TMHhNeTB4TFRrdE5TMHhNM3BjWEZ3aUx6NDhMM04yWno1Y0lpd2dhVzF3YjNKMExtMWxkR0V1ZFhKc0tUdGNiblpoY2lCZlgxOURVMU5mVEU5QlJFVlNYMFZZVUU5U1ZGOWZYeUE5SUY5ZlgwTlRVMTlNVDBGRVJWSmZRVkJKWDBsTlVFOVNWRjlmWHloZlgxOURVMU5mVEU5QlJFVlNYMEZRU1Y5VFQxVlNRMFZOUVZCZlNVMVFUMUpVWDE5ZktUdGNiblpoY2lCZlgxOURVMU5mVEU5QlJFVlNYMVZTVEY5U1JWQk1RVU5GVFVWT1ZGOHdYMTlmSUQwZ1gxOWZRMU5UWDB4UFFVUkZVbDlIUlZSZlZWSk1YMGxOVUU5U1ZGOWZYeWhmWDE5RFUxTmZURTlCUkVWU1gxVlNURjlKVFZCUFVsUmZNRjlmWHlrN1hHNTJZWElnWDE5ZlExTlRYMHhQUVVSRlVsOVZVa3hmVWtWUVRFRkRSVTFGVGxSZk1WOWZYeUE5SUY5ZlgwTlRVMTlNVDBGRVJWSmZSMFZVWDFWU1RGOUpUVkJQVWxSZlgxOG9YMTlmUTFOVFgweFBRVVJGVWw5VlVreGZTVTFRVDFKVVh6RmZYMThwTzF4dUx5OGdUVzlrZFd4bFhHNWZYMTlEVTFOZlRFOUJSRVZTWDBWWVVFOVNWRjlmWHk1d2RYTm9LRnR0YjJSMWJHVXVhV1FzSUZ3aU9tVjRjRzl5ZENCN1hGeHVJQ0IwYUdWdFpVWnBiSFJsY2pvZ2FXNTJaWEowS0RrekpTa2dhSFZsTFhKdmRHRjBaU2d4T0RCa1pXY3BPMXhjYm4xY1hHNWNYRzQ2Wlhod2IzSjBJSHRjWEc0Z0lIUm9aVzFsUm1sc2RHVnlPaUJwYm5abGNuUW9PVE1sS1NCb2RXVXRjbTkwWVhSbEtERTRNR1JsWnlrN1hGeHVmVnhjYmx4Y2JpNWxlR05oYkdsa2NtRjNJSHRjWEc0Z0lDMHRkR2hsYldVdFptbHNkR1Z5T2lCdWIyNWxPMXhjYmlBZ0xTMWlkWFIwYjI0dFpHVnpkSEoxWTNScGRtVXRZbWN0WTI5c2IzSTZJQ05tWm1VelpUTTdYRnh1SUNBdExXSjFkSFJ2Ymkxa1pYTjBjblZqZEdsMlpTMWpiMnh2Y2pvZ0kyTTVNbUV5WVR0Y1hHNGdJQzB0WW5WMGRHOXVMV2R5WVhrdE1Ub2dJMlU1WldObFpqdGNYRzRnSUMwdFluVjBkRzl1TFdkeVlYa3RNam9nSTJObFpEUmtZVHRjWEc0Z0lDMHRZblYwZEc5dUxXZHlZWGt0TXpvZ0kyRmtZalZpWkR0Y1hHNGdJQzB0WW5WMGRHOXVMWE53WldOcFlXd3RZV04wYVhabExXSm5MV052Ykc5eU9pQWpaV0ptWW1WbE8xeGNiaUFnTFMxa2FXRnNiMmN0WW05eVpHVnlMV052Ykc5eU9pQWpPRFk0WlRrMk8xeGNiaUFnTFMxa2NtOXdaRzkzYmkxcFkyOXVPaUIxY213b1hDSWdLeUJmWDE5RFUxTmZURTlCUkVWU1gxVlNURjlTUlZCTVFVTkZUVVZPVkY4d1gxOWZJQ3NnWENJcE8xeGNiaUFnTFMxbWIyTjFjeTFvYVdkb2JHbG5hSFF0WTI5c2IzSTZJQ05oTldRNFptWTdYRnh1SUNBdExXbGpiMjR0Wm1sc2JDMWpiMnh2Y2pvZ0l6SXhNalV5T1R0Y1hHNGdJQzB0YVdOdmJpMW5jbVZsYmkxbWFXeHNMV052Ykc5eU9pQWpNbUk0WVRObE8xeGNiaUFnTFMxa1pXWmhkV3gwTFdKbkxXTnZiRzl5T2lBalptWm1abVptTzF4Y2JpQWdMUzFwYm5CMWRDMWlaeTFqYjJ4dmNqb2dJMlptWm1abVpqdGNYRzRnSUMwdGFXNXdkWFF0WW05eVpHVnlMV052Ykc5eU9pQWpZMlZrTkdSaE8xeGNiaUFnTFMxcGJuQjFkQzFvYjNabGNpMWlaeTFqYjJ4dmNqb2dJMll4WmpObU5UdGNYRzRnSUMwdGFXNXdkWFF0YkdGaVpXd3RZMjlzYjNJNklDTTBPVFV3TlRjN1hGeHVJQ0F0TFdsemJHRnVaQzFpWnkxamIyeHZjam9nY21kaVlTZ3lOVFVzSURJMU5Td2dNalUxTENBd0xqazJLVHRjWEc0Z0lDMHRhMlY1WW1sdVpHbHVaeTFqYjJ4dmNqb2dJMkZrWWpWaVpEdGNYRzRnSUMwdGJHbHVheTFqYjJ4dmNqb2dJekZqTjJWa05qdGNYRzRnSUMwdGIzWmxjbXhoZVMxaVp5MWpiMnh2Y2pvZ2NtZGlZU2d5TlRVc0lESTFOU3dnTWpVMUxDQXdMamc0S1R0Y1hHNGdJQzB0Y0c5d2RYQXRZbWN0WTI5c2IzSTZJQ05tWm1abVptWTdYRnh1SUNBdExYQnZjSFZ3TFhObFkyOXVaR0Z5ZVMxaVp5MWpiMnh2Y2pvZ0kyWXhaak5tTlR0Y1hHNGdJQzB0Y0c5d2RYQXRkR1Y0ZEMxamIyeHZjam9nSXpBd01EQXdNRHRjWEc0Z0lDMHRjRzl3ZFhBdGRHVjRkQzFwYm5abGNuUmxaQzFqYjJ4dmNqb2dJMlptWm1abVpqdGNYRzRnSUMwdGMyRmlPaUJsYm5Zb2MyRm1aUzFoY21WaExXbHVjMlYwTFdKdmRIUnZiU2s3WEZ4dUlDQXRMWE5oYkRvZ1pXNTJLSE5oWm1VdFlYSmxZUzFwYm5ObGRDMXNaV1owS1R0Y1hHNGdJQzB0YzJGeU9pQmxibllvYzJGbVpTMWhjbVZoTFdsdWMyVjBMWEpwWjJoMEtUdGNYRzRnSUMwdGMyRjBPaUJsYm5Zb2MyRm1aUzFoY21WaExXbHVjMlYwTFhSdmNDazdYRnh1SUNBdExYTmxiR1ZqZEMxb2FXZG9iR2xuYUhRdFkyOXNiM0k2SUNNek16bGhaakE3WEZ4dUlDQXRMWE5vWVdSdmR5MXBjMnhoYm1RNklEQWdNQ0F3SURGd2VDQnlaMkpoS0RBc0lEQXNJREFzSURBdU1ERXBMQ0F4Y0hnZ01YQjRJRFZ3ZUNCeVoySW9NQ0F3SURBZ0x5QXhNaVVwTzF4Y2JpQWdMUzF6Y0dGalpTMW1ZV04wYjNJNklEQXVNalZ5WlcwN1hGeHVJQ0F0TFhSbGVIUXRjSEpwYldGeWVTMWpiMnh2Y2pvZ0l6TTBNMkUwTUR0Y1hHNGdJQzB0WTI5c2IzSXRjSEpwYldGeWVUb2dJelk1TmpWa1lqdGNYRzRnSUMwdFkyOXNiM0l0Y0hKcGJXRnllUzFrWVhKclpYSTZJQ00xWWpVM1pERTdYRnh1SUNBdExXTnZiRzl5TFhCeWFXMWhjbmt0WkdGeWEyVnpkRG9nSXpSaE5EZGlNVHRjWEc0Z0lDMHRZMjlzYjNJdGNISnBiV0Z5ZVMxc2FXZG9kRG9nSTJVeVpURm1ZenRjWEc0Z0lDMHRZbTl5WkdWeUxYSmhaR2wxY3kxdFpEb2dNQzR6TnpWeVpXMDdYRnh1SUNBdExXSnZjbVJsY2kxeVlXUnBkWE10YkdjNklEQXVOWEpsYlR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjdWRHaGxiV1V0TFdSaGNtc2dlMXhjYmlBZ1ltRmphMmR5YjNWdVpEb2dJekF3TURBd01EdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY3VkR2hsYldVdExXUmhjbXN1ZEdobGJXVXRMV1JoY21zdFltRmphMmR5YjNWdVpDMXViMjVsSUh0Y1hHNGdJR0poWTJ0bmNtOTFibVE2SUc1dmJtVTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNMblJvWlcxbExTMWtZWEpySUh0Y1hHNGdJQzB0ZEdobGJXVXRabWxzZEdWeU9pQnBiblpsY25Rb09UTWxLU0JvZFdVdGNtOTBZWFJsS0RFNE1HUmxaeWs3WEZ4dUlDQXRMV0oxZEhSdmJpMWtaWE4wY25WamRHbDJaUzFpWnkxamIyeHZjam9nSXpWaE1EQXdNRHRjWEc0Z0lDMHRZblYwZEc5dUxXUmxjM1J5ZFdOMGFYWmxMV052Ykc5eU9pQWpabVpoT0dFNE8xeGNiaUFnTFMxaWRYUjBiMjR0WjNKaGVTMHhPaUFqTXpZek5qTTJPMXhjYmlBZ0xTMWlkWFIwYjI0dFozSmhlUzB5T2lBak1qY3lOekkzTzF4Y2JpQWdMUzFpZFhSMGIyNHRaM0poZVMwek9pQWpNakl5TzF4Y2JpQWdMUzFpZFhSMGIyNHRjM0JsWTJsaGJDMWhZM1JwZG1VdFltY3RZMjlzYjNJNklDTXlNRFEyTWpRN1hGeHVJQ0F0TFdScFlXeHZaeTFpYjNKa1pYSXRZMjlzYjNJNklDTXlNVEkxTWprN1hGeHVJQ0F0TFdSeWIzQmtiM2R1TFdsamIyNDZJSFZ5YkNoY0lpQXJJRjlmWDBOVFUxOU1UMEZFUlZKZlZWSk1YMUpGVUV4QlEwVk5SVTVVWHpGZlgxOGdLeUJjSWlrN1hGeHVJQ0F0TFdadlkzVnpMV2hwWjJoc2FXZG9kQzFqYjJ4dmNqb2dJekl5T0dKbE5qdGNYRzRnSUMwdGFXTnZiaTFtYVd4c0xXTnZiRzl5T2lBalkyVmtOR1JoTzF4Y2JpQWdMUzFwWTI5dUxXZHlaV1Z1TFdacGJHd3RZMjlzYjNJNklDTTJPV1JpTjJNN1hGeHVJQ0F0TFdSbFptRjFiSFF0WW1jdFkyOXNiM0k2SUNNeE1qRXlNVEk3WEZ4dUlDQXRMV2x1Y0hWMExXSm5MV052Ykc5eU9pQWpNVEl4TWpFeU8xeGNiaUFnTFMxcGJuQjFkQzFpYjNKa1pYSXRZMjlzYjNJNklDTXlaVEpsTW1VN1hGeHVJQ0F0TFdsdWNIVjBMV2h2ZG1WeUxXSm5MV052Ykc5eU9pQWpNVGd4T0RFNE8xeGNiaUFnTFMxcGJuQjFkQzFzWVdKbGJDMWpiMnh2Y2pvZ0kyVTVaV05sWmp0Y1hHNGdJQzB0YVhOc1lXNWtMV0puTFdOdmJHOXlPaUJ5WjJKaEtETXdMQ0F6TUN3Z016QXNJREF1T1RncE8xeGNiaUFnTFMxclpYbGlhVzVrYVc1bkxXTnZiRzl5T2lBak9EWTRaVGsyTzF4Y2JpQWdMUzFzYVc1ckxXTnZiRzl5T2lBak5HUmhZbVkzTzF4Y2JpQWdMUzF2ZG1WeWJHRjVMV0puTFdOdmJHOXlPaUJ5WjJKaEtEVXlMQ0ExT0N3Z05qUXNJREF1TVRJcE8xeGNiaUFnTFMxd2IzQjFjQzFpWnkxamIyeHZjam9nSXpKak1tTXlZenRjWEc0Z0lDMHRjRzl3ZFhBdGMyVmpiMjVrWVhKNUxXSm5MV052Ykc5eU9pQWpNakl5TzF4Y2JpQWdMUzF3YjNCMWNDMTBaWGgwTFdOdmJHOXlPaUFqWTJWa05HUmhPMXhjYmlBZ0xTMXdiM0IxY0MxMFpYaDBMV2x1ZG1WeWRHVmtMV052Ykc5eU9pQWpNbU15WXpKak8xeGNiaUFnTFMxelpXeGxZM1F0YUdsbmFHeHBaMmgwTFdOdmJHOXlPaUFqTkdSaFltWTNPMXhjYmlBZ0xTMXphR0ZrYjNjdGFYTnNZVzVrT2lBeGNIZ2dNWEI0SURWd2VDQnlaMkpoS0RBc0lEQXNJREFzSURBdU15azdYRnh1SUNBdExYUmxlSFF0Y0hKcGJXRnllUzFqYjJ4dmNqb2dJMk5sWkRSa1lUdGNYRzRnSUMwdFkyOXNiM0l0Y0hKcGJXRnllVG9nSXpVMk5UQm1NRHRjWEc0Z0lDMHRZMjlzYjNJdGNISnBiV0Z5ZVMxa1lYSnJaWEk2SUNNMFlqUTJaRGc3WEZ4dUlDQXRMV052Ykc5eUxYQnlhVzFoY25rdFpHRnlhMlZ6ZERvZ0l6TmxNemxpWlR0Y1hHNGdJQzB0WTI5c2IzSXRjSEpwYldGeWVTMXNhV2RvZERvZ0l6Tm1NMlEyTkR0Y1hHNTlYRnh1WEZ4dU9uSnZiM1FnZTF4Y2JpQWdMUzE2U1c1a1pYZ3RZMkZ1ZG1Gek9pQXhPMXhjYmlBZ0xTMTZTVzVrWlhndGQzbHphWGQ1WnpvZ01qdGNYRzRnSUMwdGVrbHVaR1Y0TFd4aGVXVnlWVWs2SURNN1hGeHVmVnhjYmx4Y2JpNWxlR05oYkdsa2NtRjNJSHRjWEc0Z0lIQnZjMmwwYVc5dU9pQnlaV3hoZEdsMlpUdGNYRzRnSUc5MlpYSm1iRzkzT2lCb2FXUmtaVzQ3WEZ4dUlDQmpiMnh2Y2pvZ2RtRnlLQzB0ZEdWNGRDMXdjbWx0WVhKNUxXTnZiRzl5S1R0Y1hHNGdJR1JwYzNCc1lYazZJR1pzWlhnN1hGeHVJQ0IwYjNBNklEQTdYRnh1SUNCaWIzUjBiMjA2SURBN1hGeHVJQ0JzWldaME9pQXdPMXhjYmlBZ2NtbG5hSFE2SURBN1hGeHVJQ0JvWldsbmFIUTZJREV3TUNVN1hGeHVJQ0IzYVdSMGFEb2dNVEF3SlR0Y1hHNGdJQzEzWldKcmFYUXRkWE5sY2kxelpXeGxZM1E2SUc1dmJtVTdYRnh1SUNBZ0lDQWdJQ0FnSUhWelpYSXRjMlZzWldOME9pQnViMjVsTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHpwbWIyTjFjeUI3WEZ4dUlDQnZkWFJzYVc1bE9pQnViMjVsTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlCaElIdGNYRzRnSUdadmJuUXRkMlZwWjJoME9pQTFNREE3WEZ4dUlDQjBaWGgwTFdSbFkyOXlZWFJwYjI0NklHNXZibVU3WEZ4dUlDQmpiMnh2Y2pvZ2RtRnlLQzB0YkdsdWF5MWpiMnh2Y2lrN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lHRTZhRzkyWlhJZ2UxeGNiaUFnZEdWNGRDMWtaV052Y21GMGFXOXVPaUIxYm1SbGNteHBibVU3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUdOaGJuWmhjeUI3WEZ4dUlDQjBiM1ZqYUMxaFkzUnBiMjQ2SUc1dmJtVTdYRnh1SUNCcGJXRm5aUzF5Wlc1a1pYSnBibWM2SUhCcGVHVnNZWFJsWkR0Y1hHNGdJR2x0WVdkbExYSmxibVJsY21sdVp6b2dMVzF2ZWkxamNtbHpjQzFsWkdkbGN6dGNYRzRnSUhvdGFXNWtaWGc2SUhaaGNpZ3RMWHBKYm1SbGVDMWpZVzUyWVhNcE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGQxOWZZMkZ1ZG1GeklIdGNYRzRnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjdWRHaGxiV1V0TFdSaGNtc2dZMkZ1ZG1GeklIdGNYRzRnSUdacGJIUmxjam9nZG1GeUtDMHRkR2hsYldVdFptbHNkR1Z5S1R0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xrWnBlR1ZrVTJsa1pVTnZiblJoYVc1bGNpQjdYRnh1SUNCd1lXUmthVzVuTFhSdmNEb2dkbUZ5S0MwdGMyRjBMQ0F3S1R0Y1hHNGdJSEJoWkdScGJtY3RjbWxuYUhRNklIWmhjaWd0TFhOaGNpd2dNQ2s3WEZ4dUlDQndZV1JrYVc1bkxXSnZkSFJ2YlRvZ2RtRnlLQzB0YzJGaUxDQXdLVHRjWEc0Z0lIQmhaR1JwYm1jdGJHVm1kRG9nZG1GeUtDMHRjMkZzTENBd0tUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbkJoYm1Wc1VtOTNJSHRjWEc0Z0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dUlDQnFkWE4wYVdaNUxXTnZiblJsYm5RNklITndZV05sTFdKbGRIZGxaVzQ3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1d1lXNWxiRU52YkhWdGJpQjdYRnh1SUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG5CaGJtVnNRMjlzZFcxdUlHZ3pMRnhjYmk1bGVHTmhiR2xrY21GM0lDNXdZVzVsYkVOdmJIVnRiaUJzWldkbGJtUXNYRnh1TG1WNFkyRnNhV1J5WVhjZ0xuQmhibVZzUTI5c2RXMXVJQzVqYjI1MGNtOXNMV3hoWW1Wc0lIdGNYRzRnSUcxaGNtZHBiaTEwYjNBNklEQXVNek16Y21WdE8xeGNiaUFnYldGeVoybHVMV0p2ZEhSdmJUb2dNQzR6TXpOeVpXMDdYRnh1SUNCbWIyNTBMWE5wZW1VNklEQXVOelZ5WlcwN1hGeHVJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGRHVjRkQzF3Y21sdFlYSjVMV052Ykc5eUtUdGNYRzRnSUdadmJuUXRkMlZwWjJoME9pQmliMnhrTzF4Y2JpQWdaR2x6Y0d4aGVUb2dZbXh2WTJzN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNXdZVzVsYkVOdmJIVnRiaUF1WTI5dWRISnZiQzFzWVdKbGJDQnBibkIxZENCN1hGeHVJQ0JrYVhOd2JHRjVPaUJpYkc5amF6dGNYRzRnSUhkcFpIUm9PaUF4TURBbE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVjR0Z1Wld4RGIyeDFiVzRnYURNNlptbHljM1F0WTJocGJHUXNYRnh1TG1WNFkyRnNhV1J5WVhjZ0xuQmhibVZzUTI5c2RXMXVJR3hsWjJWdVpEcG1hWEp6ZEMxamFHbHNaQ3hjWEc0dVpYaGpZV3hwWkhKaGR5QXVjR0Z1Wld4RGIyeDFiVzRnTG1OdmJuUnliMnd0YkdGaVpXdzZabWx5YzNRdFkyaHBiR1FnZTF4Y2JpQWdiV0Z5WjJsdUxYUnZjRG9nTUR0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xuQmhibVZzUTI5c2RXMXVJR3hsWjJWdVpDQjdYRnh1SUNCd1lXUmthVzVuT2lBd08xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVjR0Z1Wld4RGIyeDFiVzRnTG1samIyNVRaV3hsWTNSTWFYTjBJSHRjWEc0Z0lHWnNaWGd0ZDNKaGNEb2dkM0poY0R0Y1hHNGdJSEJ2YzJsMGFXOXVPaUJ5Wld4aGRHbDJaVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG5CaGJtVnNRMjlzZFcxdUlDNWlkWFIwYjI1TWFYTjBJSHRjWEc0Z0lHWnNaWGd0ZDNKaGNEb2dkM0poY0R0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xuQmhibVZzUTI5c2RXMXVJQzVpZFhSMGIyNU1hWE4wSUd4aFltVnNJSHRjWEc0Z0lHMWhjbWRwYmkxeWFXZG9kRG9nTUM0eU5YSmxiVHRjWEc0Z0lHWnZiblF0YzJsNlpUb2dNQzQzTlhKbGJUdGNYRzRnSUdScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6dGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbkJoYm1Wc1EyOXNkVzF1SUM1aWRYUjBiMjVNYVhOMElHbHVjSFYwVzNSNWNHVTljbUZrYVc5ZExGeGNiaTVsZUdOaGJHbGtjbUYzSUM1d1lXNWxiRU52YkhWdGJpQXVZblYwZEc5dVRHbHpkQ0JwYm5CMWRGdDBlWEJsUFdKMWRIUnZibDBnZTF4Y2JpQWdiM0JoWTJsMGVUb2dNRHRjWEc0Z0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNYRzRnSUhCdmFXNTBaWEl0WlhabGJuUnpPaUJ1YjI1bE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVjR0Z1Wld4RGIyeDFiVzRnTG1KMWRIUnZia3hwYzNRZ0xtbGpiMjVTYjNjZ2UxeGNiaUFnYldGeVoybHVMWFJ2Y0RvZ09IQjRPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1Y0dGdVpXeERiMngxYlc0Z0xtSjFkSFJ2Ymt4cGMzUWdMbFJ2YjJ4SlkyOXVJSHRjWEc0Z0lHMWhjbWRwYmpvZ01EdGNYRzRnSUcxaGNtZHBiaTFwYm14cGJtVXRaVzVrT2lBNGNIZzdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzV3WVc1bGJFTnZiSFZ0YmlBdVluVjBkRzl1VEdsemRDQXVWRzl2YkVsamIyNDZabTlqZFhNZ2UxeGNiaUFnYjNWMGJHbHVaVG9nZEhKaGJuTndZWEpsYm5RN1hGeHVJQ0JpYjNndGMyaGhaRzkzT2lBd0lEQWdNQ0F5Y0hnZ2RtRnlLQzB0Wm05amRYTXRhR2xuYUd4cFoyaDBMV052Ykc5eUtUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbkJoYm1Wc1EyOXNkVzF1SUM1aWRYUjBiMjVNYVhOMElDNVViMjlzU1dOdmJqcG9iM1psY2lCN1hGeHVJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMWlkWFIwYjI0dFozSmhlUzB5S1R0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xuQmhibVZzUTI5c2RXMXVJQzVpZFhSMGIyNU1hWE4wSUM1VWIyOXNTV052YmpwaFkzUnBkbVVnZTF4Y2JpQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdFluVjBkRzl1TFdkeVlYa3RNeWs3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1d1lXNWxiRU52YkhWdGJpQXVZblYwZEc5dVRHbHpkQ0F1Vkc5dmJFbGpiMjQ2WkdsellXSnNaV1FnZTF4Y2JpQWdZM1Z5YzI5eU9pQnViM1F0WVd4c2IzZGxaRHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG5CaGJtVnNRMjlzZFcxdUlDNWlkWFIwYjI1TWFYTjBJQzVVYjI5c1NXTnZibDlmYVdOdmJpQjdYRnh1SUNCM2FXUjBhRG9nTWpod2VEdGNYRzRnSUdobGFXZG9kRG9nTWpod2VEdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbkJoYm1Wc1EyOXNkVzF1SUdacFpXeGtjMlYwSUh0Y1hHNGdJRzFoY21kcGJqb2dNRHRjWEc0Z0lHMWhjbWRwYmkxMGIzQTZJREF1TXpNemNtVnRPMXhjYmlBZ2NHRmtaR2x1WnpvZ01EdGNYRzRnSUdKdmNtUmxjam9nYm05dVpUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbVJwZG1sa1pYSWdlMXhjYmlBZ2QybGtkR2c2SURGd2VEdGNYRzRnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObE9XVmpaV1k3WEZ4dUlDQnRZWEpuYVc0NklERndlRHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG1KMWRIUnZia3hwYzNRZ2JHRmlaV3c2Wm05amRYTXRkMmwwYUdsdUxGeGNiaTVsZUdOaGJHbGtjbUYzSUdsdWNIVjBPbVp2WTNWekxYWnBjMmxpYkdVZ2UxeGNiaUFnYjNWMGJHbHVaVG9nZEhKaGJuTndZWEpsYm5RN1hGeHVJQ0JpYjNndGMyaGhaRzkzT2lBd0lEQWdNQ0F5Y0hnZ2RtRnlLQzB0Wm05amRYTXRhR2xuYUd4cFoyaDBMV052Ykc5eUtUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dZblYwZEc5dUxGeGNiaTVsZUdOaGJHbGtjbUYzSUM1aWRYUjBiMjVNYVhOMElHeGhZbVZzSUh0Y1hHNGdJQzEzWldKcmFYUXRkWE5sY2kxelpXeGxZM1E2SUc1dmJtVTdYRnh1SUNBZ0lDQWdJQ0FnSUhWelpYSXRjMlZzWldOME9pQnViMjVsTzF4Y2JpQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdFluVjBkRzl1TFdkeVlYa3RNU2s3WEZ4dUlDQmliM0prWlhJNklEQTdYRnh1SUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUIyWVhJb0xTMWliM0prWlhJdGNtRmthWFZ6TFcxa0tUdGNYRzRnSUcxaGNtZHBiam9nTUM0eE1qVnlaVzBnTUR0Y1hHNGdJSEJoWkdScGJtYzZJREF1TWpWeVpXMDdYRnh1SUNCM2FHbDBaUzF6Y0dGalpUb2dibTkzY21Gd08xeGNiaUFnWTNWeWMyOXlPaUJ3YjJsdWRHVnlPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUJpZFhSMGIyNDZabTlqZFhNdGRtbHphV0pzWlN4Y1hHNHVaWGhqWVd4cFpISmhkeUF1WW5WMGRHOXVUR2x6ZENCc1lXSmxiRHBtYjJOMWN5MTJhWE5wWW14bElIdGNYRzRnSUc5MWRHeHBibVU2SUhSeVlXNXpjR0Z5Wlc1ME8xeGNiaUFnWW05NExYTm9ZV1J2ZHpvZ01DQXdJREFnTW5CNElIWmhjaWd0TFdadlkzVnpMV2hwWjJoc2FXZG9kQzFqYjJ4dmNpazdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJR0oxZEhSdmJqcG9iM1psY2l4Y1hHNHVaWGhqWVd4cFpISmhkeUF1WW5WMGRHOXVUR2x6ZENCc1lXSmxiRHBvYjNabGNpQjdYRnh1SUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFpZFhSMGIyNHRaM0poZVMweUtUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dZblYwZEc5dU9tRmpkR2wyWlN4Y1hHNHVaWGhqWVd4cFpISmhkeUF1WW5WMGRHOXVUR2x6ZENCc1lXSmxiRHBoWTNScGRtVWdlMXhjYmlBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0WW5WMGRHOXVMV2R5WVhrdE15azdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJR0oxZEhSdmJqcGthWE5oWW14bFpDeGNYRzR1WlhoallXeHBaSEpoZHlBdVluVjBkRzl1VEdsemRDQnNZV0psYkRwa2FYTmhZbXhsWkNCN1hGeHVJQ0JqZFhKemIzSTZJRzV2ZEMxaGJHeHZkMlZrTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVlXTjBhWFpsTEZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVpZFhSMGIyNU1hWE4wSUd4aFltVnNMbUZqZEdsMlpTQjdYRnh1SUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFqYjJ4dmNpMXdjbWx0WVhKNUtUdGNYRzRnSUMwdGFXTnZiaTFtYVd4c0xXTnZiRzl5T2lBalptWm1abVptTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVlXTjBhWFpsT21odmRtVnlMRnhjYmk1bGVHTmhiR2xrY21GM0lDNWlkWFIwYjI1TWFYTjBJR3hoWW1Wc0xtRmpkR2wyWlRwb2IzWmxjaUI3WEZ4dUlDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxamIyeHZjaTF3Y21sdFlYSjVMV1JoY210bGNpazdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVoWTNScGRtVTZZV04wYVhabExGeGNiaTVsZUdOaGJHbGtjbUYzSUM1aWRYUjBiMjVNYVhOMElHeGhZbVZzTG1GamRHbDJaVHBoWTNScGRtVWdlMXhjYmlBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0WTI5c2IzSXRjSEpwYldGeWVTMWtZWEpyWlhOMEtUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbUoxZEhSdmJreHBjM1F1WW5WMGRHOXVUR2x6ZEVsamIyNGdiR0ZpWld3Z2UxeGNiaUFnWkdsemNHeGhlVG9nYVc1c2FXNWxMV1pzWlhnN1hGeHVJQ0JxZFhOMGFXWjVMV052Ym5SbGJuUTZJR05sYm5SbGNqdGNYRzRnSUdGc2FXZHVMV2wwWlcxek9pQmpaVzUwWlhJN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNWlkWFIwYjI1TWFYTjBMbUoxZEhSdmJreHBjM1JKWTI5dUlHeGhZbVZzSUhOMlp5QjdYRnh1SUNCM2FXUjBhRG9nTXpWd2VEdGNYRzRnSUdobGFXZG9kRG9nTVRSd2VEdGNYRzRnSUhCaFpHUnBibWM2SURKd2VEdGNYRzRnSUc5d1lXTnBkSGs2SURBdU5qdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbUoxZEhSdmJreHBjM1F1WW5WMGRHOXVUR2x6ZEVsamIyNGdiR0ZpWld3dVlXTjBhWFpsSUhOMlp5QjdYRnh1SUNCdmNHRmphWFI1T2lBeE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVRWEJ3TFhSdmNDMWlZWElnZTF4Y2JpQWdlaTFwYm1SbGVEb2dkbUZ5S0MwdGVrbHVaR1Y0TFd4aGVXVnlWVWtwTzF4Y2JpQWdaR2x6Y0d4aGVUb2dabXhsZUR0Y1hHNGdJR1pzWlhndFpHbHlaV04wYVc5dU9pQmpiMngxYlc0N1hGeHVJQ0JoYkdsbmJpMXBkR1Z0Y3pvZ1kyVnVkR1Z5TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVFYQndMV0p2ZEhSdmJTMWlZWElnZTF4Y2JpQWdjRzl6YVhScGIyNDZJR0ZpYzI5c2RYUmxPMXhjYmlBZ2RHOXdPaUF3TzF4Y2JpQWdZbTkwZEc5dE9pQXdPMXhjYmlBZ2JHVm1kRG9nTUR0Y1hHNGdJSEpwWjJoME9pQXdPMXhjYmlBZ0xTMWlZWEl0Y0dGa1pHbHVaem9nWTJGc1l5ZzBJQ29nZG1GeUtDMHRjM0JoWTJVdFptRmpkRzl5S1NrN1hGeHVJQ0J3WVdSa2FXNW5MWFJ2Y0RvZ2JXRjRLSFpoY2lndExXSmhjaTF3WVdSa2FXNW5LU3dnZG1GeUtDMHRjMkYwTERBcEtUdGNYRzRnSUhCaFpHUnBibWN0Y21sbmFIUTZJSFpoY2lndExYTmhjaXdnTUNrN1hGeHVJQ0J3WVdSa2FXNW5MV0p2ZEhSdmJUb2dkbUZ5S0MwdGMyRmlMQ0F3S1R0Y1hHNGdJSEJoWkdScGJtY3RiR1ZtZERvZ2RtRnlLQzB0YzJGc0xDQXdLVHRjWEc0Z0lIb3RhVzVrWlhnNklEUTdYRnh1SUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ1lXeHBaMjR0YVhSbGJYTTZJR1pzWlhndFpXNWtPMXhjYmlBZ2NHOXBiblJsY2kxbGRtVnVkSE02SUc1dmJtVTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVCY0hBdFltOTBkRzl0TFdKaGNpQStJQzVKYzJ4aGJtUWdlMXhjYmlBZ2QybGtkR2c2SURFd01DVTdYRnh1SUNCdFlYZ3RkMmxrZEdnNklERXdNQ1U3WEZ4dUlDQnRhVzR0ZDJsa2RHZzZJREV3TUNVN1hGeHVJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeGNiaUFnYldGNExXaGxhV2RvZERvZ01UQXdKVHRjWEc0Z0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dUlDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ1kyOXNkVzF1TzF4Y2JpQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHbHVhWFJwWVd3N1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNUJjSEF0WW05MGRHOXRMV0poY2lBK0lDNUpjMnhoYm1RZ0xuQmhibVZzUTI5c2RXMXVJSHRjWEc0Z0lIQmhaR1JwYm1jNklEaHdlQ0E0Y0hnZ01DQTRjSGc3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1QmNIQXRkRzl2YkdKaGNpQjdYRnh1SUNCM2FXUjBhRG9nTVRBd0pUdGNYRzRnSUdKdmVDMXphWHBwYm1jNklHSnZjbVJsY2kxaWIzZzdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVCY0hBdGRHOXZiR0poY2kxamIyNTBaVzUwSUh0Y1hHNGdJR1JwYzNCc1lYazZJR1pzWlhnN1hGeHVJQ0JoYkdsbmJpMXBkR1Z0Y3pvZ1kyVnVkR1Z5TzF4Y2JpQWdhblZ6ZEdsbWVTMWpiMjUwWlc1ME9pQnpjR0ZqWlMxaVpYUjNaV1Z1TzF4Y2JpQWdjR0ZrWkdsdVp6b2dPSEI0TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVFYQndMVzF2WW1sc1pTMXRaVzUxSUh0Y1hHNGdJSGRwWkhSb09pQXhNREFsTzF4Y2JpQWdiM1psY21ac2IzY3RlRG9nZG1semFXSnNaVHRjWEc0Z0lHOTJaWEptYkc5M0xYazZJR0YxZEc4N1hGeHVJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeGNiaUFnYldGeVoybHVMV0p2ZEhSdmJUb2dkbUZ5S0MwdFltRnlMWEJoWkdScGJtY3BPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1UVhCd0xXMWxiblVnZTF4Y2JpQWdaR2x6Y0d4aGVUb2daM0pwWkR0Y1hHNGdJR052Ykc5eU9pQjJZWElvTFMxcFkyOXVMV1pwYkd3dFkyOXNiM0lwTzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdVFYQndMVzFsYm5WZmRHOXdJSHRjWEc0Z0lHZHlhV1F0ZEdWdGNHeGhkR1V0WTI5c2RXMXVjem9nWVhWMGJ5QnRZWGd0WTI5dWRHVnVkQ0JoZFhSdk8xeGNiaUFnWjNKcFpDMW5ZWEE2SURSd2VEdGNYRzRnSUdGc2FXZHVMV2wwWlcxek9pQm1iR1Y0TFhOMFlYSjBPMXhjYmlBZ1kzVnljMjl5T2lCa1pXWmhkV3gwTzF4Y2JpQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHNXZibVVnSVdsdGNHOXlkR0Z1ZER0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xteGhlV1Z5TFhWcFgxOTNjbUZ3Y0dWeU9tNXZkQ2d1WkdsellXSnNaUzF3YjJsdWRHVnlSWFpsYm5SektTQXVRWEJ3TFcxbGJuVmZkRzl3SUQ0Z0tpQjdYRnh1SUNCd2IybHVkR1Z5TFdWMlpXNTBjem9nWVd4c08xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVRWEJ3TFcxbGJuVmZkRzl3SUQ0Z0tqcG1hWEp6ZEMxamFHbHNaQ0I3WEZ4dUlDQnFkWE4wYVdaNUxYTmxiR1k2SUdac1pYZ3RjM1JoY25RN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNUJjSEF0YldWdWRWOTBiM0FnUGlBcU9teGhjM1F0WTJocGJHUWdlMXhjYmlBZ2FuVnpkR2xtZVMxelpXeG1PaUJtYkdWNExXVnVaRHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGtGd2NDMXRaVzUxWDJKdmRIUnZiU0I3WEZ4dUlDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRnh1SUNCaWIzUjBiMjA2SURBN1hGeHVJQ0JuY21sa0xYUmxiWEJzWVhSbExXTnZiSFZ0Ym5NNklHMXBiaTFqYjI1MFpXNTBJR0YxZEc4Z2JXbHVMV052Ym5SbGJuUTdYRnh1SUNCbmNtbGtMV2RoY0RvZ01UVndlRHRjWEc0Z0lHRnNhV2R1TFdsMFpXMXpPaUJtYkdWNExYTjBZWEowTzF4Y2JpQWdZM1Z5YzI5eU9pQmtaV1poZFd4ME8xeGNiaUFnY0c5cGJuUmxjaTFsZG1WdWRITTZJRzV2Ym1VZ0lXbHRjRzl5ZEdGdWREdGNYRzRnSUhvdGFXNWtaWGc2SURFd01EdGNYRzU5WEZ4dU9uSnZiM1JiWkdseVBXeDBjbDBnTG1WNFkyRnNhV1J5WVhjZ0xrRndjQzF0Wlc1MVgySnZkSFJ2YlNCN1hGeHVJQ0JzWldaME9pQXdMakkxY21WdE8xeGNibjFjWEc0NmNtOXZkRnRrYVhJOWNuUnNYU0F1WlhoallXeHBaSEpoZHlBdVFYQndMVzFsYm5WZlltOTBkRzl0SUh0Y1hHNGdJSEpwWjJoME9pQXdMakkxY21WdE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVRWEJ3TFcxbGJuVmZZbTkwZEc5dExTMTBjbUZ1YzJsMGFXOXVMV3hsWm5RZ2MyVmpkR2x2YmlCN1hGeHVJQ0IzYVdSMGFEb2dNVGcxY0hnN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNUJjSEF0YldWdWRWOWliM1IwYjIwZ2MyVmpkR2x2YmlCN1hGeHVJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVRWEJ3TFcxbGJuVmZZbTkwZEc5dElENGdLanBtYVhKemRDMWphR2xzWkNCN1hGeHVJQ0JxZFhOMGFXWjVMWE5sYkdZNklHWnNaWGd0YzNSaGNuUTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVCY0hBdGJXVnVkVjlpYjNSMGIyMGdQaUFxT214aGMzUXRZMmhwYkdRZ2UxeGNiaUFnYW5WemRHbG1lUzF6Wld4bU9pQm1iR1Y0TFdWdVpEdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMa0Z3Y0MxdFpXNTFYMnhsWm5RZ2UxeGNiaUFnWjNKcFpDMTBaVzF3YkdGMFpTMXliM2R6T2lBeFpuSWdZWFYwYnlBeFpuSTdYRnh1SUNCb1pXbG5hSFE2SURFd01DVTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzVCY0hBdGJXVnVkVjl5YVdkb2RDQjdYRnh1SUNCbmNtbGtMWFJsYlhCc1lYUmxMWEp2ZDNNNklERm1janRjWEc0Z0lHaGxhV2RvZERvZ01UQXdKVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTGtGd2NDMXRaVzUxWDE5c1pXWjBJSHRjWEc0Z0lHOTJaWEptYkc5M0xYazZJR0YxZEc4N1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNWtjbTl3Wkc5M2JpMXpaV3hsWTNRZ2UxeGNiaUFnYUdWcFoyaDBPaUF4TGpWeVpXMDdYRnh1SUNCd1lXUmthVzVuT2lBd08xeGNiaUFnY0dGa1pHbHVaeTFwYm14cGJtVXRjM1JoY25RNklEQXVOWEpsYlR0Y1hHNGdJSEJoWkdScGJtY3RhVzVzYVc1bExXVnVaRG9nTVM0MWNtVnRPMXhjYmlBZ1kyOXNiM0k2SUhaaGNpZ3RMV2xqYjI0dFptbHNiQzFqYjJ4dmNpazdYRnh1SUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFpZFhSMGIyNHRaM0poZVMweEtUdGNYRzRnSUdKdmNtUmxjaTF5WVdScGRYTTZJSFpoY2lndExYTndZV05sTFdaaFkzUnZjaWs3WEZ4dUlDQmliM0prWlhJNklERndlQ0J6YjJ4cFpDQjJZWElvTFMxaWRYUjBiMjR0WjNKaGVTMHlLVHRjWEc0Z0lHWnZiblF0YzJsNlpUb2dNQzQ0Y21WdE8xeGNiaUFnYjNWMGJHbHVaVG9nYm05dVpUdGNYRzRnSUMxM1pXSnJhWFF0WVhCd1pXRnlZVzVqWlRvZ2JtOXVaVHRjWEc0Z0lDQWdJQ0FnSUNBZ1lYQndaV0Z5WVc1alpUb2dibTl1WlR0Y1hHNGdJR0poWTJ0bmNtOTFibVF0YVcxaFoyVTZJSFpoY2lndExXUnliM0JrYjNkdUxXbGpiMjRwTzF4Y2JpQWdZbUZqYTJkeWIzVnVaQzF5WlhCbFlYUTZJRzV2TFhKbGNHVmhkRHRjWEc0Z0lHSmhZMnRuY205MWJtUXRjRzl6YVhScGIyNDZJSEpwWjJoMElEQXVOM0psYlNCMGIzQWdOVEFsTENBd0lEQTdYRnh1SUNCaVlXTnJaM0p2ZFc1a0xYTnBlbVU2SURBdU5qVmxiU0JoZFhSdkxDQXhNREFsTzF4Y2JuMWNYRzQ2Y205dmRGdGthWEk5Y25Sc1hTQXVaWGhqWVd4cFpISmhkeUF1WkhKdmNHUnZkMjR0YzJWc1pXTjBJSHRjWEc0Z0lHSmhZMnRuY205MWJtUXRjRzl6YVhScGIyNDZJR3hsWm5RZ01DNDNjbVZ0SUhSdmNDQTFNQ1VzSURBZ01EdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbVJ5YjNCa2IzZHVMWE5sYkdWamREcG1iMk4xY3lCN1hGeHVJQ0JpYjNndGMyaGhaRzkzT2lBd0lEQWdNQ0F5Y0hnZ2RtRnlLQzB0Wm05amRYTXRhR2xuYUd4cFoyaDBMV052Ykc5eUtUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbVJ5YjNCa2IzZHVMWE5sYkdWamREcG9iM1psY2lCN1hGeHVJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMWlkWFIwYjI0dFozSmhlUzB5S1R0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ0xtUnliM0JrYjNkdUxYTmxiR1ZqZERwaFkzUnBkbVVnZTF4Y2JpQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdFluVjBkRzl1TFdkeVlYa3RNaWs3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzSUM1NlNXNWtaWGhDZFhSMGIyNGdlMXhjYmlBZ2JXRnlaMmx1T2lBd08xeGNiaUFnYldGeVoybHVMV2x1YkdsdVpTMWxibVE2SURod2VEdGNYRzRnSUhCaFpHUnBibWM2SURWd2VEdGNYRzRnSUdScGMzQnNZWGs2SUdsdWJHbHVaUzFtYkdWNE8xeGNiaUFnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y1hHNGdJR3AxYzNScFpua3RZMjl1ZEdWdWREb2dZMlZ1ZEdWeU8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVla2x1WkdWNFFuVjBkRzl1SUhOMlp5QjdYRnh1SUNCM2FXUjBhRG9nTVRod2VEdGNYRzRnSUdobGFXZG9kRG9nTVRod2VEdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dMbk5qY205c2JDMWlZV05yTFhSdkxXTnZiblJsYm5RZ2UxeGNiaUFnWTI5c2IzSTZJSFpoY2lndExYQnZjSFZ3TFhSbGVIUXRZMjlzYjNJcE8xeGNiaUFnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4Y2JpQWdiR1ZtZERvZ05UQWxPMXhjYmlBZ1ltOTBkRzl0T2lBek1IQjRPMXhjYmlBZ2RISmhibk5tYjNKdE9pQjBjbUZ1YzJ4aGRHVllLQzAxTUNVcE8xeGNiaUFnY0dGa1pHbHVaem9nTVRCd2VDQXlNSEI0TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdWFHVnNjQzFwWTI5dUlIdGNYRzRnSUdScGMzQnNZWGs2SUdac1pYZzdYRnh1SUNCamRYSnpiM0k2SUhCdmFXNTBaWEk3WEZ4dUlDQm1hV3hzT2lBak9EWTRaVGsyTzF4Y2JpQWdjR0ZrWkdsdVp6b2dNRHRjWEc0Z0lHMWhjbWRwYmpvZ01EdGNYRzRnSUdKaFkydG5jbTkxYm1RNklHNXZibVU3WEZ4dUlDQmpiMnh2Y2pvZ2RtRnlLQzB0YVdOdmJpMW1hV3hzTFdOdmJHOXlLVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGNnTG1obGJIQXRhV052YmlCemRtY2dlMXhjYmlBZ2QybGtkR2c2SURFdU5YSmxiVHRjWEc0Z0lHaGxhV2RvZERvZ01TNDFjbVZ0TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHlBdWFHVnNjQzFwWTI5dU9taHZkbVZ5SUh0Y1hHNGdJR0poWTJ0bmNtOTFibVE2SUc1dmJtVTdYRnh1ZlZ4Y2JpNWxlR05oYkdsa2NtRjNJQzV5WlhObGRDMTZiMjl0TFdKMWRIUnZiaUI3WEZ4dUlDQndZV1JrYVc1bk9pQXdMakpsYlR0Y1hHNGdJR0poWTJ0bmNtOTFibVE2SUhSeVlXNXpjR0Z5Wlc1ME8xeGNiaUFnWTI5c2IzSTZJSFpoY2lndExYUmxlSFF0Y0hKcGJXRnllUzFqYjJ4dmNpazdYRnh1SUNCbWIyNTBMV1poYldsc2VUb2dkbUZ5S0MwdGRXa3RabTl1ZENrN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lDNTFibVJ2TFhKbFpHOHRZblYwZEc5dWN5QjdYRnh1SUNCa2FYTndiR0Y1T2lCbmNtbGtPMXhjYmlBZ1ozSnBaQzFoZFhSdkxXWnNiM2M2SUdOdmJIVnRianRjWEc0Z0lHZGhjRG9nTUM0MFpXMDdYRnh1SUNCdFlYSm5hVzR0ZEc5d09pQmhkWFJ2TzF4Y2JpQWdiV0Z5WjJsdUxXSnZkSFJ2YlRvZ1lYVjBienRjWEc0Z0lHMWhjbWRwYmkxcGJteHBibVV0YzNSaGNuUTZJREF1Tm1WdE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5MHRiVzlpYVd4bExtVjRZMkZzYVdSeVlYY2dZWE5wWkdVZ2UxeGNiaUFnWkdsemNHeGhlVG9nYm05dVpUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY3RMVzF2WW1sc1pTNWxlR05oYkdsa2NtRjNJQzV6WTNKdmJHd3RZbUZqYXkxMGJ5MWpiMjUwWlc1MElIdGNYRzRnSUdKdmRIUnZiVG9nWTJGc1l5ZzRNSEI0SUNzZ2RtRnlLQzB0YzJGaUxDQXdLU2s3WEZ4dUlDQjZMV2x1WkdWNE9pQXRNVHRjWEc1OVhGeHVYRnh1T25KdmIzUmJaR2x5UFhKMGJGMGdMbVY0WTJGc2FXUnlZWGNnTG5KMGJDMXRhWEp5YjNJZ2UxeGNiaUFnZEhKaGJuTm1iM0p0T2lCelkyRnNaVmdvTFRFcE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVlbVZ1TFcxdlpHVXRkbWx6YVdKcGJHbDBlU0I3WEZ4dUlDQjJhWE5wWW1sc2FYUjVPaUIyYVhOcFlteGxPMXhjYmlBZ2IzQmhZMmwwZVRvZ01UdGNYRzRnSUdobGFXZG9kRG9nWVhWMGJ6dGNYRzRnSUhkcFpIUm9PaUJoZFhSdk8xeGNiaUFnZEhKaGJuTnBkR2x2YmpvZ2IzQmhZMmwwZVNBd0xqVnpPMXhjYm4xY1hHNHVaWGhqWVd4cFpISmhkeUF1ZW1WdUxXMXZaR1V0ZG1semFXSnBiR2wwZVM1NlpXNHRiVzlrWlMxMmFYTnBZbWxzYVhSNUxTMW9hV1JrWlc0Z2UxeGNiaUFnZG1semFXSnBiR2wwZVRvZ2FHbGtaR1Z1TzF4Y2JpQWdiM0JoWTJsMGVUb2dNRHRjWEc0Z0lHaGxhV2RvZERvZ01EdGNYRzRnSUhkcFpIUm9PaUF3TzF4Y2JpQWdkSEpoYm5OcGRHbHZiam9nYjNCaFkybDBlU0F3TGpWek8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5QXVaR2x6WVdKc1pTMXdiMmx1ZEdWeVJYWmxiblJ6SUh0Y1hHNGdJSEJ2YVc1MFpYSXRaWFpsYm5Sek9pQnViMjVsSUNGcGJYQnZjblJoYm5RN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0xtVjRZMkZzYVdSeVlYY3RMWFpwWlhjdGJXOWtaU0F1UVhCd0xXMWxiblVnZTF4Y2JpQWdaR2x6Y0d4aGVUb2dabXhsZUR0Y1hHNGdJR3AxYzNScFpua3RZMjl1ZEdWdWREb2djM0JoWTJVdFltVjBkMlZsYmp0Y1hHNTlYRnh1TG1WNFkyRnNhV1J5WVhjZ2FXNXdkWFJiZEhsd1pUMTBaWGgwWFN4Y1hHNHVaWGhqWVd4cFpISmhkeUIwWlhoMFlYSmxZVHB1YjNRb0xtVjRZMkZzYVdSeVlYY3RkM2x6YVhkNVp5a2dlMXhjYmlBZ1kyOXNiM0k2SUhaaGNpZ3RMWFJsZUhRdGNISnBiV0Z5ZVMxamIyeHZjaWs3WEZ4dUlDQmliM0prWlhJNklERXVOWEI0SUhOdmJHbGtJSFpoY2lndExXbHVjSFYwTFdKdmNtUmxjaTFqYjJ4dmNpazdYRnh1SUNCd1lXUmthVzVuT2lBd0xqYzFjbVZ0TzF4Y2JpQWdkMmhwZEdVdGMzQmhZMlU2SUc1dmQzSmhjRHRjWEc0Z0lHSnZjbVJsY2kxeVlXUnBkWE02SUhaaGNpZ3RMWE53WVdObExXWmhZM1J2Y2lrN1hGeHVJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXBibkIxZEMxaVp5MWpiMnh2Y2lrN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0lHbHVjSFYwVzNSNWNHVTlkR1Y0ZEYwNmJtOTBLRHBtYjJOMWN5azZhRzkyWlhJc1hGeHVMbVY0WTJGc2FXUnlZWGNnZEdWNGRHRnlaV0U2Ym05MEtDNWxlR05oYkdsa2NtRjNMWGQ1YzJsM2VXY3BPbTV2ZENnNlptOWpkWE1wT21odmRtVnlJSHRjWEc0Z0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdsdWNIVjBMV2h2ZG1WeUxXSm5MV052Ykc5eUtUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY2dhVzV3ZFhSYmRIbHdaVDEwWlhoMFhUcG1iMk4xY3l4Y1hHNHVaWGhqWVd4cFpISmhkeUIwWlhoMFlYSmxZVHB1YjNRb0xtVjRZMkZzYVdSeVlYY3RkM2x6YVhkNVp5azZabTlqZFhNZ2UxeGNiaUFnYjNWMGJHbHVaVG9nYm05dVpUdGNYRzRnSUdKdmVDMXphR0ZrYjNjNklEQWdNQ0F3SURKd2VDQjJZWElvTFMxbWIyTjFjeTFvYVdkb2JHbG5hSFF0WTI5c2IzSXBPMXhjYm4xY1hHNUFiV1ZrYVdFZ2NISnBiblFnZTF4Y2JpQWdMbVY0WTJGc2FXUnlZWGNnTGtGd2NDMWliM1IwYjIwdFltRnlMRnhjYmk1bGVHTmhiR2xrY21GM0lDNUdhWGhsWkZOcFpHVkRiMjUwWVdsdVpYSXNYRnh1TG1WNFkyRnNhV1J5WVhjZ0xteGhlV1Z5TFhWcFgxOTNjbUZ3Y0dWeUlIdGNYRzRnSUNBZ1pHbHpjR3hoZVRvZ2JtOXVaVHRjWEc0Z0lIMWNYRzU5WEZ4dVhGeHVMa1Z5Y205eVUzQnNZWE5vTG1WNFkyRnNhV1J5WVhjZ2UxeGNiaUFnYldsdUxXaGxhV2RvZERvZ01UQXdkbWc3WEZ4dUlDQndZV1JrYVc1bk9pQXlNSEI0SURBN1hGeHVJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNYRzRnSUdScGMzQnNZWGs2SUdac1pYZzdYRnh1SUNCaGJHbG5iaTFwZEdWdGN6b2dZMlZ1ZEdWeU8xeGNiaUFnYW5WemRHbG1lUzFqYjI1MFpXNTBPaUJqWlc1MFpYSTdYRnh1SUNBdGQyVmlhMmwwTFhWelpYSXRjMlZzWldOME9pQjBaWGgwTzF4Y2JpQWdJQ0FnSUNBZ0lDQjFjMlZ5TFhObGJHVmpkRG9nZEdWNGREdGNYRzU5WEZ4dUxrVnljbTl5VTNCc1lYTm9MbVY0WTJGc2FXUnlZWGNnTGtWeWNtOXlVM0JzWVhOb0xXMWxjM05oWjJWRGIyNTBZV2x1WlhJZ2UxeGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNYRzRnSUdac1pYZ3RaR2x5WldOMGFXOXVPaUJqYjJ4MWJXNDdYRnh1SUNCaGJHbG5iaTFwZEdWdGN6b2dZMlZ1ZEdWeU8xeGNiaUFnYW5WemRHbG1lUzFqYjI1MFpXNTBPaUJqWlc1MFpYSTdYRnh1SUNCd1lXUmthVzVuT2lBME1IQjRPMXhjYmlBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ0kyWm1aVE5sTXp0Y1hHNGdJR0p2Y21SbGNqb2dNM0I0SUhOdmJHbGtJQ05qT1RKaE1tRTdYRnh1ZlZ4Y2JpNUZjbkp2Y2xOd2JHRnphQzVsZUdOaGJHbGtjbUYzSUM1RmNuSnZjbE53YkdGemFDMXdZWEpoWjNKaGNHZ2dlMXhjYmlBZ2JXRnlaMmx1T2lBeE5YQjRJREE3WEZ4dUlDQnRZWGd0ZDJsa2RHZzZJRFl3TUhCNE8xeGNibjFjWEc0dVJYSnliM0pUY0d4aGMyZ3VaWGhqWVd4cFpISmhkeUF1UlhKeWIzSlRjR3hoYzJndGNHRnlZV2R5WVhCb0xtRnNhV2R1TFdObGJuUmxjaUI3WEZ4dUlDQjBaWGgwTFdGc2FXZHVPaUJqWlc1MFpYSTdYRnh1ZlZ4Y2JpNUZjbkp2Y2xOd2JHRnphQzVsZUdOaGJHbGtjbUYzSUM1aWFXZG5aWElzWEZ4dUxrVnljbTl5VTNCc1lYTm9MbVY0WTJGc2FXUnlZWGNnTG1KcFoyZGxjaUJpZFhSMGIyNGdlMXhjYmlBZ1ptOXVkQzF6YVhwbE9pQXhMakZsYlR0Y1hHNTlYRnh1TGtWeWNtOXlVM0JzWVhOb0xtVjRZMkZzYVdSeVlYY2dMbk50WVd4c1pYSXNYRnh1TGtWeWNtOXlVM0JzWVhOb0xtVjRZMkZzYVdSeVlYY2dMbk50WVd4c1pYSWdZblYwZEc5dUlIdGNYRzRnSUdadmJuUXRjMmw2WlRvZ01DNDVaVzA3WEZ4dWZWeGNiaTVGY25KdmNsTndiR0Z6YUM1bGVHTmhiR2xrY21GM0lDNUZjbkp2Y2xOd2JHRnphQzFrWlhSaGFXeHpJSHRjWEc0Z0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dUlDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ1kyOXNkVzF1TzF4Y2JpQWdZV3hwWjI0dGFYUmxiWE02SUdac1pYZ3RjM1JoY25RN1hGeHVmVnhjYmk1RmNuSnZjbE53YkdGemFDNWxlR05oYkdsa2NtRjNJQzVGY25KdmNsTndiR0Z6YUMxa1pYUmhhV3h6SUhSbGVIUmhjbVZoSUh0Y1hHNGdJSGRwWkhSb09pQXhNREFsTzF4Y2JpQWdiV0Z5WjJsdU9pQXhNSEI0SURBN1hGeHVJQ0JtYjI1MExXWmhiV2xzZVRvZ1hGeGNJa05oYzJOaFpHbGhYRnhjSWp0Y1hHNGdJR1p2Ym5RdGMybDZaVG9nTUM0NFpXMDdYRnh1ZlZ3aUxDQmNJbHdpTEh0Y0luWmxjbk5wYjI1Y0lqb3pMRndpYzI5MWNtTmxjMXdpT2x0Y0luZGxZbkJoWTJzNkx5OHVMeTR1THk0dUwyTnpjeTkyWVhKcFlXSnNaWE11Ylc5a2RXeGxMbk5qYzNOY0lpeGNJbmRsWW5CaFkyczZMeTh1THk0dUx5NHVMMk56Y3k5emRIbHNaWE11YzJOemMxd2lMRndpZDJWaWNHRmphem92THk0dkxpNHZMaTR2WTNOekwzUm9aVzFsTG5OamMzTmNJaXhjSW5kbFluQmhZMnM2THk4dUx5NHVMeTR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTl2Y0dWdUxXTnZiRzl5TDI5d1pXNHRZMjlzYjNJdWMyTnpjMXdpWFN4Y0ltNWhiV1Z6WENJNlcxMHNYQ0p0WVhCd2FXNW5jMXdpT2x3aVFVRlZRVHRGUVVORkxESkRRVUZCTzBGRFZFWTdPMEZFVVVFN1JVRkRSU3d5UTBGQlFUdEJRMHhHT3p0QlEwaEJPMFZCUTBVc2IwSkJRVUU3UlVGRFFTeHpRMEZCUVR0RlFVTkJMRzFEUVVGQk8wVkJRMEVzZDBKQlFVRTdSVUZEUVN4M1FrRkJRVHRGUVVOQkxIZENRVUZCTzBWQlEwRXNlVU5CUVVFN1JVRkRRU3c0UWtGQlFUdEZRVU5CTEhkRVFVRkJPMFZCUTBFc1owTkJRVUU3UlVGRFFTd3dRa0ZCUVR0RlFVTkJMR2REUVVGQk8wVkJRMEVzTWtKQlFVRTdSVUZEUVN4NVFrRkJRVHRGUVVOQkxEWkNRVUZCTzBWQlEwRXNLMEpCUVVFN1JVRkRRU3cwUWtGQlFUdEZRVU5CTERSRFFVRkJPMFZCUTBFc01rSkJRVUU3UlVGRFFTeHhRa0ZCUVR0RlFVTkJMRFpEUVVGQk8wVkJRMEVzZVVKQlFVRTdSVUZEUVN4dFEwRkJRVHRGUVVOQkxESkNRVUZCTzBWQlEwRXNiME5CUVVFN1JVRkRRU3hyUTBGQlFUdEZRVU5CTEdkRFFVRkJPMFZCUTBFc2FVTkJRVUU3UlVGRFFTd3JRa0ZCUVR0RlFVTkJMR2xEUVVGQk8wVkJRMEVzTkVWQlFVRTdSVUZGUVN4MVFrRkJRVHRGUVVOQkxEWkNRVUZCTzBWQlJVRXNkMEpCUVVFN1JVRkRRU3dyUWtGQlFUdEZRVU5CTEdkRFFVRkJPMFZCUTBFc09FSkJRVUU3UlVGRlFTdzBRa0ZCUVR0RlFVTkJMREJDUVVGQk8wRkVSMFk3UVVORVJUdEZRVU5GTEcxQ1EzQkRaVHRCUm5WRGJrSTdRVU5FU1R0RlFVTkZMR2RDUVVGQk8wRkVSMDQ3UVVORFJUdEZRVU5GTERoRFFVRkJPMFZCUTBFc2MwTkJRVUU3UlVGRFFTeHRRMEZCUVR0RlFVTkJMSGRDUVVGQk8wVkJRMEVzZDBKQlFVRTdSVUZEUVN4eFFrRkJRVHRGUVVOQkxIbERRVUZCTzBWQlEwRXNPRUpCUVVFN1JVRkRRU3gzUkVGQlFUdEZRVU5CTEdkRFFVRkJPMFZCUTBFc01FSkJRVUU3UlVGRFFTeG5RMEZCUVR0RlFVTkJMREpDUVVGQk8wVkJRMEVzZVVKQlFVRTdSVUZEUVN3MlFrRkJRVHRGUVVOQkxDdENRVUZCTzBWQlEwRXNORUpCUVVFN1JVRkRRU3g1UTBGQlFUdEZRVU5CTERKQ1FVRkJPMFZCUTBFc2NVSkJRVUU3UlVGRFFTd3dRMEZCUVR0RlFVTkJMSGxDUVVGQk8wVkJRMEVzWjBOQlFVRTdSVUZEUVN3eVFrRkJRVHRGUVVOQkxHOURRVUZCTzBWQlEwRXNhVU5CUVVFN1JVRkRRU3dyUTBGQlFUdEZRVU5CTERaQ1FVRkJPMFZCUlVFc2QwSkJRVUU3UlVGRFFTd3JRa0ZCUVR0RlFVTkJMR2REUVVGQk8wVkJRMEVzT0VKQlFVRTdRVVJCU2pzN1FVRnlSa0U3UlVGRFJTeHJRa0ZCUVR0RlFVTkJMRzFDUVVGQk8wVkJRMEVzYlVKQlFVRTdRVUYzUmtZN08wRkJja1pCTzBWQlEwVXNhMEpCUVVFN1JVRkRRU3huUWtGQlFUdEZRVU5CTEdkRFFVRkJPMFZCUTBFc1lVRkJRVHRGUVVOQkxFMUJRVUU3UlVGRFFTeFRRVUZCTzBWQlEwRXNUMEZCUVR0RlFVTkJMRkZCUVVFN1JVRkRRU3haUVVGQk8wVkJRMEVzVjBGQlFUdEZRVmRCTEhsQ1FVRkJPMVZCUVVFc2FVSkJRVUU3UVVFNFJVWTdRVUYyUmtVN1JVRkRSU3hoUVVGQk8wRkJlVVpLTzBGQkwwVkZPMFZCUTBVc1owSkJRVUU3UlVGRFFTeHhRa0ZCUVR0RlFVTkJMSGRDUVVGQk8wRkJhVVpLTzBGQkwwVkpPMFZCUTBVc01FSkJRVUU3UVVGcFJrNDdRVUUzUlVVN1JVRkRSU3hyUWtGQlFUdEZRVXRCTERCQ1FVRkJPMFZCUlVFc2FVTkJRVUU3UlVGRlFTdzJRa0ZCUVR0QlFYbEZTanRCUVc1RlJUdEZRVU5GTEd0Q1FVRkJPMEZCY1VWS08wRkJOMFJKTzBWQlEwVXNNa0pCUVVFN1FVRXJSRTQ3UVVFelJFVTdSVUZEUlN3d1FrRkJRVHRGUVVOQkxEUkNRVUZCTzBWQlEwRXNOa0pCUVVFN1JVRkRRU3d5UWtGQlFUdEJRVFpFU2p0QlFURkVSVHRGUVVORkxHRkJRVUU3UlVGRFFTdzRRa0ZCUVR0QlFUUkVTanRCUVhwRVJUdEZRVU5GTEdGQlFVRTdSVUZEUVN4elFrRkJRVHRCUVRKRVNqdEJRWHBFU1RzN08wVkJSMFVzYjBKQlFVRTdSVUZEUVN4MVFrRkJRVHRGUVVOQkxHdENRVUZCTzBWQlEwRXNaME5CUVVFN1JVRkRRU3hwUWtGQlFUdEZRVU5CTEdOQlFVRTdRVUV5UkU0N1FVRjRSRWs3UlVGRFJTeGpRVUZCTzBWQlEwRXNWMEZCUVR0QlFUQkVUanRCUVhaRVNUczdPMFZCUjBVc1lVRkJRVHRCUVhsRVRqdEJRWFJFU1R0RlFVTkZMRlZCUVVFN1FVRjNSRTQ3UVVGeVJFazdSVUZEUlN4bFFVRkJPMFZCUTBFc2EwSkJRVUU3UVVGMVJFNDdRVUZ3UkVrN1JVRkRSU3hsUVVGQk8wRkJjMFJPTzBGQmNFUk5PMFZCUTBVc2NVSkJRVUU3UlVGRFFTeHJRa0ZCUVR0RlFVTkJMSEZDUVVGQk8wRkJjMFJTTzBGQmJrUk5PenRGUVVWRkxGVkJRVUU3UlVGRFFTeHJRa0ZCUVR0RlFVTkJMRzlDUVVGQk8wRkJjVVJTTzBGQmJFUk5PMFZCUTBVc1pVRkJRVHRCUVc5RVVqdEJRV3BFVFR0RlFVTkZMRk5CUVVFN1JVRkRRU3h6UWtGQlFUdEJRVzFFVWp0QlFXcEVVVHRGUVVORkxHOUNRVUZCTzBWQlEwRXNhMFJCUVVFN1FVRnRSRlk3UVVGb1JGRTdSVUZEUlN4elEwRkJRVHRCUVd0RVZqdEJRUzlEVVR0RlFVTkZMSE5EUVVGQk8wRkJhVVJXTzBGQk9VTlJPMFZCUTBVc2JVSkJRVUU3UVVGblJGWTdRVUUxUTAwN1JVRkRSU3hYUVVGQk8wVkJRMEVzV1VGQlFUdEJRVGhEVWp0QlFURkRTVHRGUVVORkxGTkJRVUU3UlVGRFFTeHZRa0ZCUVR0RlFVTkJMRlZCUVVFN1JVRkRRU3haUVVGQk8wRkJORU5PTzBGQmVFTkZPMFZCUTBVc1ZVRkJRVHRGUVVOQkxIbENSV2hLVVR0RlJtbEtVaXhYUVVGQk8wRkJNRU5LTzBGQmRrTkZPenRGUVVWRkxHOUNRVUZCTzBWQlEwRXNhMFJCUVVFN1FVRjVRMG83UVVGMFEwVTdPMFZCUlVVc2VVSkJRVUU3VlVGQlFTeHBRa0ZCUVR0RlFVTkJMSE5EUVVGQk8wVkJRMEVzVTBGQlFUdEZRVU5CTEhORFFVRkJPMFZCUTBFc2EwSkJRVUU3UlVGRFFTeG5Ra0ZCUVR0RlFVTkJMRzFDUVVGQk8wVkJSVUVzWlVGQlFUdEJRWFZEU2p0QlFYSkRTVHM3UlVGRFJTeHZRa0ZCUVR0RlFVTkJMR3RFUVVGQk8wRkJkME5PTzBGQmNrTkpPenRGUVVORkxITkRRVUZCTzBGQmQwTk9PMEZCY2tOSk96dEZRVU5GTEhORFFVRkJPMEZCZDBOT08wRkJja05KT3p0RlFVTkZMRzFDUVVGQk8wRkJkME5PTzBGQmNFTkZPenRGUVVWRkxITkRRVUZCTzBWQlJVRXNNRUpCUVVFN1FVRnhRMG83UVVGdVEwazdPMFZCUTBVc05rTkJRVUU3UVVGelEwNDdRVUZ1UTBrN08wVkJRMFVzT0VOQlFVRTdRVUZ6UTA0N1FVRnFRMGs3UlVGRFJTeHZRa0ZCUVR0RlFVTkJMSFZDUVVGQk8wVkJRMEVzYlVKQlFVRTdRVUZ0UTA0N1FVRnNRMDA3UlVGRFJTeFhRVUZCTzBWQlEwRXNXVUZCUVR0RlFVTkJMRmxCUVVFN1JVRkRRU3haUVVGQk8wRkJiME5TTzBGQmJFTk5PMFZCUTBVc1ZVRkJRVHRCUVc5RFVqdEJRUzlDUlR0RlFVTkZMRGhDUVVGQk8wVkJRMEVzWVVGQlFUdEZRVU5CTEhOQ1FVRkJPMFZCUTBFc2JVSkJRVUU3UVVGcFEwbzdRVUU1UWtVN1JVRkRSU3hyUWtGQlFUdEZRVU5CTEUxQlFVRTdSVUZEUVN4VFFVRkJPMFZCUTBFc1QwRkJRVHRGUVVOQkxGRkJRVUU3UlVGRFFTdzBRMEZCUVR0RlFVTkJMR3RFUVVGQk8wVkJRMEVzTkVKQlFVRTdSVUZEUVN3MlFrRkJRVHRGUVVOQkxESkNRVUZCTzBWQlEwRXNWVUZCUVR0RlFVTkJMR0ZCUVVFN1JVRkRRU3h4UWtGQlFUdEZRVU5CTEc5Q1FVRkJPMEZCWjBOS08wRkJPVUpKTzBWQlEwVXNWMEZCUVR0RlFVTkJMR1ZCUVVFN1JVRkRRU3hsUVVGQk8wVkJRMEVzYzBKQlFVRTdSVUZEUVN4blFrRkJRVHRGUVVOQkxHRkJRVUU3UlVGRFFTeHpRa0ZCUVR0RlFVTkJMSFZDUVVGQk8wRkJaME5PTzBGQk9VSk5PMFZCUTBVc2MwSkJRVUU3UVVGblExSTdRVUV6UWtVN1JVRkRSU3hYUVVGQk8wVkJSVUVzYzBKQlFVRTdRVUUwUWtvN1FVRjZRa1U3UlVGRFJTeGhRVUZCTzBWQlEwRXNiVUpCUVVFN1JVRkRRU3c0UWtGQlFUdEZRVU5CTEZsQlFVRTdRVUV5UWtvN1FVRjRRa1U3UlVGRFJTeFhRVUZCTzBWQlEwRXNiVUpCUVVFN1JVRkRRU3huUWtGQlFUdEZRVU5CTEhOQ1FVRkJPMFZCUTBFc2FVTkJRVUU3UVVFd1FrbzdRVUYyUWtVN1JVRkRSU3hoUVVGQk8wVkJRMEVzTmtKQlFVRTdRVUY1UWtvN1FVRjBRa1U3UlVGRFJTdzBRMEZCUVR0RlFVTkJMR0ZCUVVFN1JVRkRRU3gxUWtGQlFUdEZRVU5CTEdWQlFVRTdSVUZEUVN3clFrRkJRVHRCUVhkQ1NqdEJRWEpDUlR0RlFVTkZMRzFDUVVGQk8wRkJkVUpLTzBGQmNFSkZPMFZCUTBVc2QwSkJRVUU3UVVGelFrbzdRVUZ1UWtVN1JVRkRSU3h6UWtGQlFUdEJRWEZDU2p0QlFXeENSVHRGUVVORkxHdENRVUZCTzBWQlEwRXNVMEZCUVR0RlFVTkJMRzFFUVVGQk8wVkJRMEVzWTBGQlFUdEZRVU5CTEhWQ1FVRkJPMFZCUTBFc1pVRkJRVHRGUVVOQkxDdENRVUZCTzBWQlEwRXNXVUZCUVR0QlFXOUNTanRCUVd4Q1NUdEZRVU5GTEdGQlFVRTdRVUZ2UWs0N1FVRnFRa2s3UlVGRFJTeGpRVUZCTzBGQmJVSk9PMEZCWmswN1JVRkRSU3haUVVGQk8wRkJhVUpTTzBGQllrazdSVUZEUlN4aFFVRkJPMEZCWlU0N1FVRllSVHRGUVVORkxIZENRVUZCTzBGQllVbzdRVUZXUlR0RlFVTkZMSE5DUVVGQk8wRkJXVW83UVVGVVJUdEZRVU5GTEdkRFFVRkJPMFZCUTBFc1dVRkJRVHRCUVZkS08wRkJVa1U3UlVGRFJTeDFRa0ZCUVR0RlFVTkJMRmxCUVVFN1FVRlZTanRCUVZCRk8wVkJRMFVzWjBKQlFVRTdRVUZUU2p0QlFVNUZPMFZCUTBVc1kwRkJRVHRGUVVOQkxGVkJRVUU3UlVGRFFTdzBRa0ZCUVR0RlFVTkJMREJDUVVGQk8wVkJRMEVzTmtKQlFVRTdSVUZEUVN4elEwRkJRVHRGUVVOQkxHdERRVUZCTzBWQlEwRXNjME5CUVVFN1JVRkRRU3hwUWtGQlFUdEZRVU5CTEdGQlFVRTdSVUZEUVN4M1FrRkJRVHRWUVVGQkxHZENRVUZCTzBWQlEwRXNjME5CUVVFN1JVRkRRU3cwUWtGQlFUdEZRVU5CTERoRFFVRkJPMFZCVFVFc2EwTkJRVUU3UVVGSFNqdEJRVkJKTzBWQlEwVXNOa05CUVVFN1FVRlRUanRCUVVwSk8wVkJRMFVzYTBSQlFVRTdRVUZOVGp0QlFVaEpPMFZCUTBVc2MwTkJRVUU3UVVGTFRqdEJRVVpKTzBWQlEwVXNjME5CUVVFN1FVRkpUanRCUVVGRk8wVkJRMFVzVTBGQlFUdEZRVU5CTEhOQ1FVRkJPMFZCUTBFc1dVRkJRVHRGUVVOQkxHOUNRVUZCTzBWQlEwRXNiVUpCUVVFN1JVRkRRU3gxUWtGQlFUdEJRVVZLTzBGQlFVazdSVUZEUlN4WFFVRkJPMFZCUTBFc1dVRkJRVHRCUVVWT08wRkJSVVU3UlVGRFJTdzRRa0ZCUVR0RlFVTkJMR3RDUVVGQk8wVkJRMEVzVTBGQlFUdEZRVU5CTEZsQlFVRTdSVUZEUVN3eVFrRkJRVHRGUVVOQkxHdENRVUZCTzBGQlFVbzdRVUZIUlR0RlFVTkZMR0ZCUVVFN1JVRkRRU3hsUVVGQk8wVkJRMEVzWVVWNldsRTdSVVl3V2xJc1ZVRkJRVHRGUVVOQkxGTkJRVUU3UlVGRFFTeG5Ra0ZCUVR0RlFVTkJMRFpDUVVGQk8wRkJSRW83UVVGSFNUdEZRVU5GTEdGQlFVRTdSVUZEUVN4alFVRkJPMEZCUkU0N1FVRkpTVHRGUVVORkxHZENRVUZCTzBGQlJrNDdRVUZOUlR0RlFVTkZMR05CUVVFN1JVRkRRU3gxUWtGQlFUdEZRVU5CTEdkRFFVRkJPMFZCUTBFc01rSkJRVUU3UVVGS1NqdEJRVTlGTzBWQlEwVXNZVUZCUVR0RlFVTkJMSE5DUVVGQk8wVkJRMEVzVlVGQlFUdEZRVU5CTEdkQ1FVRkJPMFZCUTBFc2JVSkJRVUU3UlVGRFFTd3dRa0ZCUVR0QlFVeEtPMEZCVTBrN1JVRkRSU3hoUVVGQk8wRkJVRTQ3UVVGVFNUdEZRVU5GTEd0RFFVRkJPMFZCUTBFc1YwRkJRVHRCUVZCT096dEJRVmxKTzBWQlEwVXNjVUpCUVVFN1FVRlVUanRCUVdGRk8wVkJRMFVzYlVKQlFVRTdSVUZEUVN4VlFVRkJPMFZCUTBFc1dVRkJRVHRGUVVOQkxGZEJRVUU3UlVGRFFTeDNRa0ZCUVR0QlFWaEtPMEZCWVVrN1JVRkRSU3hyUWtGQlFUdEZRVU5CTEZWQlFVRTdSVUZEUVN4VFFVRkJPMFZCUTBFc1VVRkJRVHRGUVVOQkxIZENRVUZCTzBGQldFNDdRVUZsUlR0RlFVTkZMQ3RDUVVGQk8wRkJZa283UVVGcFFrazdSVUZEUlN4aFFVRkJPMFZCUTBFc09FSkJRVUU3UVVGbVRqdEJRVzFDUlRzN1JVRkZSU3huUTBGQlFUdEZRVU5CTERaRFFVRkJPMFZCUTBFc1owSkJRVUU3UlVGRFFTeHRRa0ZCUVR0RlFVTkJMR3REUVVGQk8wVkJRMEVzZFVOQlFVRTdRVUZxUWtvN1FVRnZRazA3TzBWQlEwVXNOa05CUVVFN1FVRnFRbEk3UVVGeFFrazdPMFZCUTBVc1lVRkJRVHRGUVVOQkxHdEVRVUZCTzBGQmJFSk9PMEZCYzBKRk8wVkJRMFU3T3p0SlFVZEZMR0ZCUVVFN1JVRndRa283UVVGRFJqczdRVUYzUWtFN1JVRkRSU3hwUWtGQlFUdEZRVU5CTEdWQlFVRTdSVUZEUVN4alFVRkJPMFZCUTBFc1lVRkJRVHRGUVVOQkxHMUNRVUZCTzBWQlEwRXNkVUpCUVVFN1JVRkRRU3g1UWtGQlFUdFZRVUZCTEdsQ1FVRkJPMEZCY2tKR08wRkJkVUpGTzBWQlEwVXNZVUZCUVR0RlFVTkJMSE5DUVVGQk8wVkJRMEVzYlVKQlFVRTdSVUZEUVN4MVFrRkJRVHRGUVVWQkxHRkJRVUU3UlVGRFFTeDVRa1V6Wms4N1JVWTBabEFzZVVKQlFVRTdRVUYwUWtvN1FVRjVRa1U3UlVGRFJTeGpRVUZCTzBWQlEwRXNaMEpCUVVFN1FVRjJRa283UVVGNVFrazdSVUZEUlN4clFrRkJRVHRCUVhaQ1RqdEJRVEpDUlRzN1JVRkZSU3huUWtGQlFUdEJRWHBDU2p0QlFUUkNSVHM3UlVGRlJTeG5Ra0ZCUVR0QlFURkNTanRCUVRaQ1JUdEZRVU5GTEdGQlFVRTdSVUZEUVN4elFrRkJRVHRGUVVOQkxIVkNRVUZCTzBGQk0wSktPMEZCTmtKSk8wVkJRMFVzVjBGQlFUdEZRVU5CTEdOQlFVRTdSVUZEUVN4MVFrRkJRVHRGUVVOQkxHZENRVUZCTzBGQk0wSk9YQ0lzWENKemIzVnlZMlZ6UTI5dWRHVnVkRndpT2x0Y0lrQnBiWEJ2Y25RZ1hGeGNJbTl3Wlc0dFkyOXNiM0l2YjNCbGJpMWpiMnh2Y2k1elkzTnpYRnhjSWp0Y1hHNWNYRzVBYldsNGFXNGdhWE5OYjJKcGJHVW9LU0I3WEZ4dUlDQkFZWFF0Y205dmRDQXVaWGhqWVd4cFpISmhkeTB0Ylc5aWFXeGxJM3NtZlNCN1hGeHVJQ0FnSUVCamIyNTBaVzUwTzF4Y2JpQWdmVnhjYm4xY1hHNWNYRzRrZEdobGJXVXRabWxzZEdWeU9pQmNYRndpYVc1MlpYSjBLRGt6SlNrZ2FIVmxMWEp2ZEdGMFpTZ3hPREJrWldjcFhGeGNJanRjWEc1Y1hHNDZaWGh3YjNKMElIdGNYRzRnSUhSb1pXMWxSbWxzZEdWeU9pQjFibkYxYjNSbEtDUjBhR1Z0WlMxbWFXeDBaWElwTzF4Y2JuMWNYRzVjSWl4Y0lrQnBiWEJ2Y25RZ1hGeGNJaTR2ZG1GeWFXRmliR1Z6TG0xdlpIVnNaVnhjWENJN1hGeHVRR2x0Y0c5eWRDQmNYRndpTGk5MGFHVnRaVnhjWENJN1hGeHVYRnh1T25KdmIzUWdlMXhjYmlBZ0xTMTZTVzVrWlhndFkyRnVkbUZ6T2lBeE8xeGNiaUFnTFMxNlNXNWtaWGd0ZDNsemFYZDVaem9nTWp0Y1hHNGdJQzB0ZWtsdVpHVjRMV3hoZVdWeVZVazZJRE03WEZ4dWZWeGNibHhjYmk1bGVHTmhiR2xrY21GM0lIdGNYRzRnSUhCdmMybDBhVzl1T2lCeVpXeGhkR2wyWlR0Y1hHNGdJRzkyWlhKbWJHOTNPaUJvYVdSa1pXNDdYRnh1SUNCamIyeHZjam9nZG1GeUtDMHRkR1Y0ZEMxd2NtbHRZWEo1TFdOdmJHOXlLVHRjWEc0Z0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dUlDQjBiM0E2SURBN1hGeHVJQ0JpYjNSMGIyMDZJREE3WEZ4dUlDQnNaV1owT2lBd08xeGNiaUFnY21sbmFIUTZJREE3WEZ4dUlDQm9aV2xuYUhRNklERXdNQ1U3WEZ4dUlDQjNhV1IwYURvZ01UQXdKVHRjWEc1Y1hHNGdJQ1k2Wm05amRYTWdlMXhjYmlBZ0lDQnZkWFJzYVc1bE9pQnViMjVsTzF4Y2JpQWdmVnhjYmx4Y2JpQWdMeThnYzJWeWRtVnpJRElnY0hWeWNHOXpaWE02WEZ4dUlDQXZMeUF4TGlCd2NtVjJaVzUwSUhObGJHVmpkR2x1WnlCMFpYaDBJRzkxZEhOcFpHVWdkR2hsSUdOdmJYQnZibVZ1ZENCM2FHVnVJR1J2ZFdKc1pTMWpiR2xqYTJsdVp5QnZjbHhjYmlBZ0x5OGdJQ0FnWkhKaFoyZHBibWNnYVc1emFXUmxJR2wwSUNobExtY3VJRzl1SUdOaGJuWmhjeWxjWEc0Z0lDOHZJREl1SUhCeVpYWmxiblFnYzJWc1pXTjBhVzVuSUZWSkxDQmliM1JvSUdaeWIyMGdkR2hsSUdsdWMybGtaU3dnWVc1a0lHWnliMjBnYjNWMGMybGtaU0IwYUdWY1hHNGdJQzh2SUNBZ0lHTnZiWEJ2Ym1WdWRDQW9aUzVuTGlCcFppQjViM1VnYzJWc1pXTjBJSFJsZUhRZ2FXNGdZU0J6YVdSbFltRnlLVnhjYmlBZ2RYTmxjaTF6Wld4bFkzUTZJRzV2Ym1VN1hGeHVYRnh1SUNCaElIdGNYRzRnSUNBZ1ptOXVkQzEzWldsbmFIUTZJRFV3TUR0Y1hHNGdJQ0FnZEdWNGRDMWtaV052Y21GMGFXOXVPaUJ1YjI1bE8xeGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRiR2x1YXkxamIyeHZjaWs3WEZ4dVhGeHVJQ0FnSUNZNmFHOTJaWElnZTF4Y2JpQWdJQ0FnSUhSbGVIUXRaR1ZqYjNKaGRHbHZiam9nZFc1a1pYSnNhVzVsTzF4Y2JpQWdJQ0I5WEZ4dUlDQjlYRnh1WEZ4dUlDQmpZVzUyWVhNZ2UxeGNiaUFnSUNCMGIzVmphQzFoWTNScGIyNDZJRzV2Ym1VN1hGeHVYRnh1SUNBZ0lDOHZJR1p2Ykd4dmQybHVaeUJ3Y205d2N5QnBiWEJ5YjNabElHSnNkWEp5YVc1bGMzTWdZWFFnWTJWeWRHRnBiaUJrWlhacFkyVlFhWGhsYkZKaGRHbHZjeTVjWEc0Z0lDQWdMeThnUVVaQlNVc2dhWFFnWkc5bGMyNG5kQ0JoWm1abFkzUWdaWGh3YjNKMElDaHBiaUJtWVdOMExDQmxlSEJ2Y25RZ2MyVmxiWE1nYzJoaGNuQWdaV2wwYUdWeUlIZGhlU2t1WEZ4dVhGeHVJQ0FnSUdsdFlXZGxMWEpsYm1SbGNtbHVaem9nY0dsNFpXeGhkR1ZrT3lBdkx5QmphSEp2YldsMWJWeGNiaUFnSUNBdkx5Qk9UMVJGT2lCdGRYTjBJR0psSUdSbFkyeGhjbVZrSUNwaFpuUmxjaW9nZEdobElHRmliM1psWEZ4dUlDQWdJR2x0WVdkbExYSmxibVJsY21sdVp6b2dMVzF2ZWkxamNtbHpjQzFsWkdkbGN6c2dMeThnUmtaY1hHNWNYRzRnSUNBZ2VpMXBibVJsZURvZ2RtRnlLQzB0ZWtsdVpHVjRMV05oYm5aaGN5azdYRnh1WEZ4dUlDQWdJQzh2SUZKbGJXOTJaU0IwYUdVZ2JXRnBiaUJqWVc1MllYTWdabkp2YlNCa2IyTjFiV1Z1ZENCbWJHOTNJSFJ2SUdGMmIybGtJSEpsYzJsNlpVOWljMlZ5ZG1WeVhGeHVJQ0FnSUM4dklHWmxaV1JpWVdOcklHeHZiM0FnS0hObFpTQm9kSFJ3Y3pvdkwyZHBkR2gxWWk1amIyMHZaWGhqWVd4cFpISmhkeTlsZUdOaGJHbGtjbUYzTDNCMWJHd3ZNek0zT1NsY1hHNGdJSDFjWEc1Y1hHNGdJQ1pmWDJOaGJuWmhjeUI3WEZ4dUlDQWdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjWEc0Z0lIMWNYRzVjWEc0Z0lDWXVkR2hsYldVdExXUmhjbXNnZTF4Y2JpQWdJQ0F2THlCVWFHVWdjR1Z5WTJWdWRHRm5aU0JwY3lCcGJuTndhWEpsWkNCaWVWeGNiaUFnSUNBdkx5Qm9kSFJ3Y3pvdkwyMWhkR1Z5YVdGc0xtbHZMMlJsYzJsbmJpOWpiMnh2Y2k5a1lYSnJMWFJvWlcxbExtaDBiV3dqY0hKdmNHVnlkR2xsY3l3Z2QyaHBZMmhjWEc0Z0lDQWdMeThnY21WamIyMXRaVzVrY3lCemRYSm1ZV05sSUdOdmJHOXlJRzltSUNNeE1qRXlNVElzSURrekpTQjVhV1ZzWkhNZ0l6RXhNVEV4TVNCbWIzSWdJMFpHUmx4Y2JseGNiaUFnSUNCallXNTJZWE1nZTF4Y2JpQWdJQ0FnSUdacGJIUmxjam9nZG1GeUtDMHRkR2hsYldVdFptbHNkR1Z5S1R0Y1hHNGdJQ0FnZlZ4Y2JpQWdmVnhjYmx4Y2JpQWdMa1pwZUdWa1UybGtaVU52Ym5SaGFXNWxjaUI3WEZ4dUlDQWdJSEJoWkdScGJtY3RkRzl3T2lCMllYSW9MUzF6WVhRc0lEQXBPMXhjYmlBZ0lDQndZV1JrYVc1bkxYSnBaMmgwT2lCMllYSW9MUzF6WVhJc0lEQXBPMXhjYmlBZ0lDQndZV1JrYVc1bkxXSnZkSFJ2YlRvZ2RtRnlLQzB0YzJGaUxDQXdLVHRjWEc0Z0lDQWdjR0ZrWkdsdVp5MXNaV1owT2lCMllYSW9MUzF6WVd3c0lEQXBPMXhjYmlBZ2ZWeGNibHhjYmlBZ0xuQmhibVZzVW05M0lIdGNYRzRnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjWEc0Z0lDQWdhblZ6ZEdsbWVTMWpiMjUwWlc1ME9pQnpjR0ZqWlMxaVpYUjNaV1Z1TzF4Y2JpQWdmVnhjYmx4Y2JpQWdMbkJoYm1Wc1EyOXNkVzF1SUh0Y1hHNGdJQ0FnWkdsemNHeGhlVG9nWm14bGVEdGNYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjWEc1Y1hHNGdJQ0FnYURNc1hGeHVJQ0FnSUd4bFoyVnVaQ3hjWEc0Z0lDQWdMbU52Ym5SeWIyd3RiR0ZpWld3Z2UxeGNiaUFnSUNBZ0lHMWhjbWRwYmkxMGIzQTZJREF1TXpNemNtVnRPMXhjYmlBZ0lDQWdJRzFoY21kcGJpMWliM1IwYjIwNklEQXVNek16Y21WdE8xeGNiaUFnSUNBZ0lHWnZiblF0YzJsNlpUb2dNQzQzTlhKbGJUdGNYRzRnSUNBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0ZEdWNGRDMXdjbWx0WVhKNUxXTnZiRzl5S1R0Y1hHNGdJQ0FnSUNCbWIyNTBMWGRsYVdkb2REb2dZbTlzWkR0Y1hHNGdJQ0FnSUNCa2FYTndiR0Y1T2lCaWJHOWphenRjWEc0Z0lDQWdmVnhjYmx4Y2JpQWdJQ0F1WTI5dWRISnZiQzFzWVdKbGJDQnBibkIxZENCN1hGeHVJQ0FnSUNBZ1pHbHpjR3hoZVRvZ1lteHZZMnM3WEZ4dUlDQWdJQ0FnZDJsa2RHZzZJREV3TUNVN1hGeHVJQ0FnSUgxY1hHNWNYRzRnSUNBZ2FETTZabWx5YzNRdFkyaHBiR1FzWEZ4dUlDQWdJR3hsWjJWdVpEcG1hWEp6ZEMxamFHbHNaQ3hjWEc0Z0lDQWdMbU52Ym5SeWIyd3RiR0ZpWld3NlptbHljM1F0WTJocGJHUWdlMXhjYmlBZ0lDQWdJRzFoY21kcGJpMTBiM0E2SURBN1hGeHVJQ0FnSUgxY1hHNWNYRzRnSUNBZ2JHVm5aVzVrSUh0Y1hHNGdJQ0FnSUNCd1lXUmthVzVuT2lBd08xeGNiaUFnSUNCOVhGeHVYRnh1SUNBZ0lDNXBZMjl1VTJWc1pXTjBUR2x6ZENCN1hGeHVJQ0FnSUNBZ1pteGxlQzEzY21Gd09pQjNjbUZ3TzF4Y2JpQWdJQ0FnSUhCdmMybDBhVzl1T2lCeVpXeGhkR2wyWlR0Y1hHNGdJQ0FnZlZ4Y2JseGNiaUFnSUNBdVluVjBkRzl1VEdsemRDQjdYRnh1SUNBZ0lDQWdabXhsZUMxM2NtRndPaUIzY21Gd08xeGNibHhjYmlBZ0lDQWdJR3hoWW1Wc0lIdGNYRzRnSUNBZ0lDQWdJRzFoY21kcGJpMXlhV2RvZERvZ01DNHlOWEpsYlR0Y1hHNGdJQ0FnSUNBZ0lHWnZiblF0YzJsNlpUb2dNQzQzTlhKbGJUdGNYRzRnSUNBZ0lDQWdJR1JwYzNCc1lYazZJR2x1YkdsdVpTMWliRzlqYXp0Y1hHNGdJQ0FnSUNCOVhGeHVYRnh1SUNBZ0lDQWdhVzV3ZFhSYmRIbHdaVDFjWEZ3aWNtRmthVzljWEZ3aVhTeGNYRzRnSUNBZ0lDQnBibkIxZEZ0MGVYQmxQVnhjWENKaWRYUjBiMjVjWEZ3aVhTQjdYRnh1SUNBZ0lDQWdJQ0J2Y0dGamFYUjVPaUF3TzF4Y2JpQWdJQ0FnSUNBZ2NHOXphWFJwYjI0NklHRmljMjlzZFhSbE8xeGNiaUFnSUNBZ0lDQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHNXZibVU3WEZ4dUlDQWdJQ0FnZlZ4Y2JseGNiaUFnSUNBZ0lDNXBZMjl1VW05M0lIdGNYRzRnSUNBZ0lDQWdJRzFoY21kcGJpMTBiM0E2SURod2VEdGNYRzRnSUNBZ0lDQjlYRnh1WEZ4dUlDQWdJQ0FnTGxSdmIyeEpZMjl1SUh0Y1hHNGdJQ0FnSUNBZ0lHMWhjbWRwYmpvZ01EdGNYRzRnSUNBZ0lDQWdJRzFoY21kcGJpMXBibXhwYm1VdFpXNWtPaUE0Y0hnN1hGeHVYRnh1SUNBZ0lDQWdJQ0FtT21adlkzVnpJSHRjWEc0Z0lDQWdJQ0FnSUNBZ2IzVjBiR2x1WlRvZ2RISmhibk53WVhKbGJuUTdYRnh1SUNBZ0lDQWdJQ0FnSUdKdmVDMXphR0ZrYjNjNklEQWdNQ0F3SURKd2VDQjJZWElvTFMxbWIyTjFjeTFvYVdkb2JHbG5hSFF0WTI5c2IzSXBPMXhjYmlBZ0lDQWdJQ0FnZlZ4Y2JseGNiaUFnSUNBZ0lDQWdKanBvYjNabGNpQjdYRnh1SUNBZ0lDQWdJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV0oxZEhSdmJpMW5jbUY1TFRJcE8xeGNiaUFnSUNBZ0lDQWdmVnhjYmx4Y2JpQWdJQ0FnSUNBZ0pqcGhZM1JwZG1VZ2UxeGNiaUFnSUNBZ0lDQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMWlkWFIwYjI0dFozSmhlUzB6S1R0Y1hHNGdJQ0FnSUNBZ0lIMWNYRzVjWEc0Z0lDQWdJQ0FnSUNZNlpHbHpZV0pzWldRZ2UxeGNiaUFnSUNBZ0lDQWdJQ0JqZFhKemIzSTZJRzV2ZEMxaGJHeHZkMlZrTzF4Y2JpQWdJQ0FnSUNBZ2ZWeGNiaUFnSUNBZ0lIMWNYRzVjWEc0Z0lDQWdJQ0F1Vkc5dmJFbGpiMjVmWDJsamIyNGdlMXhjYmlBZ0lDQWdJQ0FnZDJsa2RHZzZJREk0Y0hnN1hGeHVJQ0FnSUNBZ0lDQm9aV2xuYUhRNklESTRjSGc3WEZ4dUlDQWdJQ0FnZlZ4Y2JpQWdJQ0I5WEZ4dVhGeHVJQ0FnSUdacFpXeGtjMlYwSUh0Y1hHNGdJQ0FnSUNCdFlYSm5hVzQ2SURBN1hGeHVJQ0FnSUNBZ2JXRnlaMmx1TFhSdmNEb2dNQzR6TXpOeVpXMDdYRnh1SUNBZ0lDQWdjR0ZrWkdsdVp6b2dNRHRjWEc0Z0lDQWdJQ0JpYjNKa1pYSTZJRzV2Ym1VN1hGeHVJQ0FnSUgxY1hHNGdJSDFjWEc1Y1hHNGdJQzVrYVhacFpHVnlJSHRjWEc0Z0lDQWdkMmxrZEdnNklERndlRHRjWEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dKRzlqTFdkeVlYa3RNanRjWEc0Z0lDQWdiV0Z5WjJsdU9pQXhjSGc3WEZ4dUlDQjlYRnh1WEZ4dUlDQXVZblYwZEc5dVRHbHpkQ0JzWVdKbGJEcG1iMk4xY3kxM2FYUm9hVzRzWEZ4dUlDQnBibkIxZERwbWIyTjFjeTEyYVhOcFlteGxJSHRjWEc0Z0lDQWdiM1YwYkdsdVpUb2dkSEpoYm5Od1lYSmxiblE3WEZ4dUlDQWdJR0p2ZUMxemFHRmtiM2M2SURBZ01DQXdJREp3ZUNCMllYSW9MUzFtYjJOMWN5MW9hV2RvYkdsbmFIUXRZMjlzYjNJcE8xeGNiaUFnZlZ4Y2JseGNiaUFnWW5WMGRHOXVMRnhjYmlBZ0xtSjFkSFJ2Ymt4cGMzUWdiR0ZpWld3Z2UxeGNiaUFnSUNCMWMyVnlMWE5sYkdWamREb2dibTl1WlR0Y1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRZblYwZEc5dUxXZHlZWGt0TVNrN1hGeHVJQ0FnSUdKdmNtUmxjam9nTUR0Y1hHNGdJQ0FnWW05eVpHVnlMWEpoWkdsMWN6b2dkbUZ5S0MwdFltOXlaR1Z5TFhKaFpHbDFjeTF0WkNrN1hGeHVJQ0FnSUcxaGNtZHBiam9nTUM0eE1qVnlaVzBnTUR0Y1hHNGdJQ0FnY0dGa1pHbHVaem9nTUM0eU5YSmxiVHRjWEc0Z0lDQWdkMmhwZEdVdGMzQmhZMlU2SUc1dmQzSmhjRHRjWEc1Y1hHNGdJQ0FnWTNWeWMyOXlPaUJ3YjJsdWRHVnlPMXhjYmx4Y2JpQWdJQ0FtT21adlkzVnpMWFpwYzJsaWJHVWdlMXhjYmlBZ0lDQWdJRzkxZEd4cGJtVTZJSFJ5WVc1emNHRnlaVzUwTzF4Y2JpQWdJQ0FnSUdKdmVDMXphR0ZrYjNjNklEQWdNQ0F3SURKd2VDQjJZWElvTFMxbWIyTjFjeTFvYVdkb2JHbG5hSFF0WTI5c2IzSXBPMXhjYmlBZ0lDQjlYRnh1WEZ4dUlDQWdJQ1k2YUc5MlpYSWdlMXhjYmlBZ0lDQWdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXSjFkSFJ2YmkxbmNtRjVMVElwTzF4Y2JpQWdJQ0I5WEZ4dVhGeHVJQ0FnSUNZNllXTjBhWFpsSUh0Y1hHNGdJQ0FnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFpZFhSMGIyNHRaM0poZVMwektUdGNYRzRnSUNBZ2ZWeGNibHhjYmlBZ0lDQW1PbVJwYzJGaWJHVmtJSHRjWEc0Z0lDQWdJQ0JqZFhKemIzSTZJRzV2ZEMxaGJHeHZkMlZrTzF4Y2JpQWdJQ0I5WEZ4dUlDQjlYRnh1WEZ4dUlDQXVZV04wYVhabExGeGNiaUFnTG1KMWRIUnZia3hwYzNRZ2JHRmlaV3d1WVdOMGFYWmxJSHRjWEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdFkyOXNiM0l0Y0hKcGJXRnllU2s3WEZ4dVhGeHVJQ0FnSUMwdGFXTnZiaTFtYVd4c0xXTnZiRzl5T2lBamV5UnZZeTEzYUdsMFpYMDdYRnh1WEZ4dUlDQWdJQ1k2YUc5MlpYSWdlMXhjYmlBZ0lDQWdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXTnZiRzl5TFhCeWFXMWhjbmt0WkdGeWEyVnlLVHRjWEc0Z0lDQWdmVnhjYmx4Y2JpQWdJQ0FtT21GamRHbDJaU0I3WEZ4dUlDQWdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRZMjlzYjNJdGNISnBiV0Z5ZVMxa1lYSnJaWE4wS1R0Y1hHNGdJQ0FnZlZ4Y2JpQWdmVnhjYmx4Y2JpQWdMbUoxZEhSdmJreHBjM1F1WW5WMGRHOXVUR2x6ZEVsamIyNGdlMXhjYmlBZ0lDQnNZV0psYkNCN1hGeHVJQ0FnSUNBZ1pHbHpjR3hoZVRvZ2FXNXNhVzVsTFdac1pYZzdYRnh1SUNBZ0lDQWdhblZ6ZEdsbWVTMWpiMjUwWlc1ME9pQmpaVzUwWlhJN1hGeHVJQ0FnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzRnSUNBZ0lDQnpkbWNnZTF4Y2JpQWdJQ0FnSUNBZ2QybGtkR2c2SURNMWNIZzdYRnh1SUNBZ0lDQWdJQ0JvWldsbmFIUTZJREUwY0hnN1hGeHVJQ0FnSUNBZ0lDQndZV1JrYVc1bk9pQXljSGc3WEZ4dUlDQWdJQ0FnSUNCdmNHRmphWFI1T2lBd0xqWTdYRnh1SUNBZ0lDQWdmVnhjYmlBZ0lDQWdJQ1l1WVdOMGFYWmxJSE4yWnlCN1hGeHVJQ0FnSUNBZ0lDQnZjR0ZqYVhSNU9pQXhPMXhjYmlBZ0lDQWdJSDFjWEc0Z0lDQWdmVnhjYmlBZ2ZWeGNibHhjYmlBZ0xrRndjQzEwYjNBdFltRnlJSHRjWEc0Z0lDQWdlaTFwYm1SbGVEb2dkbUZ5S0MwdGVrbHVaR1Y0TFd4aGVXVnlWVWtwTzF4Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeGNiaUFnSUNCbWJHVjRMV1JwY21WamRHbHZiam9nWTI5c2RXMXVPMXhjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXhjYmlBZ2ZWeGNibHhjYmlBZ0xrRndjQzFpYjNSMGIyMHRZbUZ5SUh0Y1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4Y2JpQWdJQ0IwYjNBNklEQTdYRnh1SUNBZ0lHSnZkSFJ2YlRvZ01EdGNYRzRnSUNBZ2JHVm1kRG9nTUR0Y1hHNGdJQ0FnY21sbmFIUTZJREE3WEZ4dUlDQWdJQzB0WW1GeUxYQmhaR1JwYm1jNklHTmhiR01vTkNBcUlIWmhjaWd0TFhOd1lXTmxMV1poWTNSdmNpa3BPMXhjYmlBZ0lDQndZV1JrYVc1bkxYUnZjRG9nSTN0Y1hGd2liV0Y0S0haaGNpZ3RMV0poY2kxd1lXUmthVzVuS1N3Z2RtRnlLQzB0YzJGMExEQXBLVnhjWENKOU8xeGNiaUFnSUNCd1lXUmthVzVuTFhKcFoyaDBPaUIyWVhJb0xTMXpZWElzSURBcE8xeGNiaUFnSUNCd1lXUmthVzVuTFdKdmRIUnZiVG9nZG1GeUtDMHRjMkZpTENBd0tUdGNYRzRnSUNBZ2NHRmtaR2x1Wnkxc1pXWjBPaUIyWVhJb0xTMXpZV3dzSURBcE8xeGNiaUFnSUNCNkxXbHVaR1Y0T2lBME8xeGNiaUFnSUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWm14bGVDMWxibVE3WEZ4dUlDQWdJSEJ2YVc1MFpYSXRaWFpsYm5Sek9pQnViMjVsTzF4Y2JseGNiaUFnSUNBK0lDNUpjMnhoYm1RZ2UxeGNiaUFnSUNBZ0lIZHBaSFJvT2lBeE1EQWxPMXhjYmlBZ0lDQWdJRzFoZUMxM2FXUjBhRG9nTVRBd0pUdGNYRzRnSUNBZ0lDQnRhVzR0ZDJsa2RHZzZJREV3TUNVN1hGeHVJQ0FnSUNBZ1ltOTRMWE5wZW1sdVp6b2dZbTl5WkdWeUxXSnZlRHRjWEc0Z0lDQWdJQ0J0WVhndGFHVnBaMmgwT2lBeE1EQWxPMXhjYmlBZ0lDQWdJR1JwYzNCc1lYazZJR1pzWlhnN1hGeHVJQ0FnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjWEc0Z0lDQWdJQ0J3YjJsdWRHVnlMV1YyWlc1MGN6b2dhVzVwZEdsaGJEdGNYRzVjWEc0Z0lDQWdJQ0F1Y0dGdVpXeERiMngxYlc0Z2UxeGNiaUFnSUNBZ0lDQWdjR0ZrWkdsdVp6b2dPSEI0SURod2VDQXdJRGh3ZUR0Y1hHNGdJQ0FnSUNCOVhGeHVJQ0FnSUgxY1hHNGdJSDFjWEc1Y1hHNGdJQzVCY0hBdGRHOXZiR0poY2lCN1hGeHVJQ0FnSUhkcFpIUm9PaUF4TURBbE8xeGNibHhjYmlBZ0lDQmliM2d0YzJsNmFXNW5PaUJpYjNKa1pYSXRZbTk0TzF4Y2JpQWdmVnhjYmx4Y2JpQWdMa0Z3Y0MxMGIyOXNZbUZ5TFdOdmJuUmxiblFnZTF4Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeGNiaUFnSUNCaGJHbG5iaTFwZEdWdGN6b2dZMlZ1ZEdWeU8xeGNiaUFnSUNCcWRYTjBhV1o1TFdOdmJuUmxiblE2SUhOd1lXTmxMV0psZEhkbFpXNDdYRnh1SUNBZ0lIQmhaR1JwYm1jNklEaHdlRHRjWEc0Z0lIMWNYRzVjWEc0Z0lDNUJjSEF0Ylc5aWFXeGxMVzFsYm5VZ2UxeGNiaUFnSUNCM2FXUjBhRG9nTVRBd0pUdGNYRzRnSUNBZ2IzWmxjbVpzYjNjdGVEb2dkbWx6YVdKc1pUdGNYRzRnSUNBZ2IzWmxjbVpzYjNjdGVUb2dZWFYwYnp0Y1hHNGdJQ0FnWW05NExYTnBlbWx1WnpvZ1ltOXlaR1Z5TFdKdmVEdGNYRzRnSUNBZ2JXRnlaMmx1TFdKdmRIUnZiVG9nZG1GeUtDMHRZbUZ5TFhCaFpHUnBibWNwTzF4Y2JpQWdmVnhjYmx4Y2JpQWdMa0Z3Y0MxdFpXNTFJSHRjWEc0Z0lDQWdaR2x6Y0d4aGVUb2daM0pwWkR0Y1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXbGpiMjR0Wm1sc2JDMWpiMnh2Y2lrN1hGeHVJQ0I5WEZ4dVhGeHVJQ0F1UVhCd0xXMWxiblZmZEc5d0lIdGNYRzRnSUNBZ1ozSnBaQzEwWlcxd2JHRjBaUzFqYjJ4MWJXNXpPaUJoZFhSdklHMWhlQzFqYjI1MFpXNTBJR0YxZEc4N1hGeHVJQ0FnSUdkeWFXUXRaMkZ3T2lBMGNIZzdYRnh1SUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJtYkdWNExYTjBZWEowTzF4Y2JpQWdJQ0JqZFhKemIzSTZJR1JsWm1GMWJIUTdYRnh1SUNBZ0lIQnZhVzUwWlhJdFpYWmxiblJ6T2lCdWIyNWxJQ0ZwYlhCdmNuUmhiblE3WEZ4dUlDQjlYRnh1WEZ4dUlDQXViR0Y1WlhJdGRXbGZYM2R5WVhCd1pYSTZibTkwS0M1a2FYTmhZbXhsTFhCdmFXNTBaWEpGZG1WdWRITXBJQzVCY0hBdGJXVnVkVjkwYjNBZ1BpQXFJSHRjWEc0Z0lDQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHRnNiRHRjWEc0Z0lIMWNYRzVjWEc0Z0lDNUJjSEF0YldWdWRWOTBiM0FnUGlBcU9tWnBjbk4wTFdOb2FXeGtJSHRjWEc0Z0lDQWdhblZ6ZEdsbWVTMXpaV3htT2lCbWJHVjRMWE4wWVhKME8xeGNiaUFnZlZ4Y2JseGNiaUFnTGtGd2NDMXRaVzUxWDNSdmNDQStJQ282YkdGemRDMWphR2xzWkNCN1hGeHVJQ0FnSUdwMWMzUnBabmt0YzJWc1pqb2dabXhsZUMxbGJtUTdYRnh1SUNCOVhGeHVYRnh1SUNBdVFYQndMVzFsYm5WZlltOTBkRzl0SUh0Y1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4Y2JpQWdJQ0JpYjNSMGIyMDZJREE3WEZ4dUlDQWdJR2R5YVdRdGRHVnRjR3hoZEdVdFkyOXNkVzF1Y3pvZ2JXbHVMV052Ym5SbGJuUWdZWFYwYnlCdGFXNHRZMjl1ZEdWdWREdGNYRzRnSUNBZ1ozSnBaQzFuWVhBNklERTFjSGc3WEZ4dUlDQWdJR0ZzYVdkdUxXbDBaVzF6T2lCbWJHVjRMWE4wWVhKME8xeGNiaUFnSUNCamRYSnpiM0k2SUdSbFptRjFiSFE3WEZ4dUlDQWdJSEJ2YVc1MFpYSXRaWFpsYm5Sek9pQnViMjVsSUNGcGJYQnZjblJoYm5RN1hGeHVJQ0FnSUhvdGFXNWtaWGc2SURFd01EdGNYRzVjWEc0Z0lDQWdPbkp2YjNSYlpHbHlQVnhjWENKc2RISmNYRndpWFNBbUlIdGNYRzRnSUNBZ0lDQnNaV1owT2lBd0xqSTFjbVZ0TzF4Y2JpQWdJQ0I5WEZ4dVhGeHVJQ0FnSURweWIyOTBXMlJwY2oxY1hGd2ljblJzWEZ4Y0lsMGdKaUI3WEZ4dUlDQWdJQ0FnY21sbmFIUTZJREF1TWpWeVpXMDdYRnh1SUNBZ0lIMWNYRzVjWEc0Z0lDQWdKaTB0ZEhKaGJuTnBkR2x2Ymkxc1pXWjBJSHRjWEc0Z0lDQWdJQ0J6WldOMGFXOXVJSHRjWEc0Z0lDQWdJQ0FnSUhkcFpIUm9PaUF4T0RWd2VEdGNYRzRnSUNBZ0lDQjlYRnh1SUNBZ0lIMWNYRzVjWEc0Z0lDQWdjMlZqZEdsdmJpQjdYRnh1SUNBZ0lDQWdaR2x6Y0d4aGVUb2dabXhsZUR0Y1hHNGdJQ0FnZlZ4Y2JpQWdmVnhjYmx4Y2JpQWdMa0Z3Y0MxdFpXNTFYMkp2ZEhSdmJTQStJQ282Wm1seWMzUXRZMmhwYkdRZ2UxeGNiaUFnSUNCcWRYTjBhV1o1TFhObGJHWTZJR1pzWlhndGMzUmhjblE3WEZ4dUlDQjlYRnh1WEZ4dUlDQXVRWEJ3TFcxbGJuVmZZbTkwZEc5dElENGdLanBzWVhOMExXTm9hV3hrSUh0Y1hHNGdJQ0FnYW5WemRHbG1lUzF6Wld4bU9pQm1iR1Y0TFdWdVpEdGNYRzRnSUgxY1hHNWNYRzRnSUM1QmNIQXRiV1Z1ZFY5c1pXWjBJSHRjWEc0Z0lDQWdaM0pwWkMxMFpXMXdiR0YwWlMxeWIzZHpPaUF4Wm5JZ1lYVjBieUF4Wm5JN1hGeHVJQ0FnSUdobGFXZG9kRG9nTVRBd0pUdGNYRzRnSUgxY1hHNWNYRzRnSUM1QmNIQXRiV1Z1ZFY5eWFXZG9kQ0I3WEZ4dUlDQWdJR2R5YVdRdGRHVnRjR3hoZEdVdGNtOTNjem9nTVdaeU8xeGNiaUFnSUNCb1pXbG5hSFE2SURFd01DVTdYRnh1SUNCOVhGeHVYRnh1SUNBdVFYQndMVzFsYm5WZlgyeGxablFnZTF4Y2JpQWdJQ0J2ZG1WeVpteHZkeTE1T2lCaGRYUnZPMXhjYmlBZ2ZWeGNibHhjYmlBZ0xtUnliM0JrYjNkdUxYTmxiR1ZqZENCN1hGeHVJQ0FnSUdobGFXZG9kRG9nTVM0MWNtVnRPMXhjYmlBZ0lDQndZV1JrYVc1bk9pQXdPMXhjYmlBZ0lDQndZV1JrYVc1bkxXbHViR2x1WlMxemRHRnlkRG9nTUM0MWNtVnRPMXhjYmlBZ0lDQndZV1JrYVc1bkxXbHViR2x1WlMxbGJtUTZJREV1TlhKbGJUdGNYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV2xqYjI0dFptbHNiQzFqYjJ4dmNpazdYRnh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdKMWRIUnZiaTFuY21GNUxURXBPMXhjYmlBZ0lDQmliM0prWlhJdGNtRmthWFZ6T2lCMllYSW9MUzF6Y0dGalpTMW1ZV04wYjNJcE8xeGNiaUFnSUNCaWIzSmtaWEk2SURGd2VDQnpiMnhwWkNCMllYSW9MUzFpZFhSMGIyNHRaM0poZVMweUtUdGNYRzRnSUNBZ1ptOXVkQzF6YVhwbE9pQXdMamh5WlcwN1hGeHVJQ0FnSUc5MWRHeHBibVU2SUc1dmJtVTdYRnh1SUNBZ0lHRndjR1ZoY21GdVkyVTZJRzV2Ym1VN1hGeHVJQ0FnSUdKaFkydG5jbTkxYm1RdGFXMWhaMlU2SUhaaGNpZ3RMV1J5YjNCa2IzZHVMV2xqYjI0cE8xeGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xYSmxjR1ZoZERvZ2JtOHRjbVZ3WldGME8xeGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xYQnZjMmwwYVc5dU9pQnlhV2RvZENBd0xqZHlaVzBnZEc5d0lEVXdKU3dnTUNBd08xeGNibHhjYmlBZ0lDQTZjbTl2ZEZ0a2FYSTlYRnhjSW5KMGJGeGNYQ0pkSUNZZ2UxeGNiaUFnSUNBZ0lHSmhZMnRuY205MWJtUXRjRzl6YVhScGIyNDZJR3hsWm5RZ01DNDNjbVZ0SUhSdmNDQTFNQ1VzSURBZ01EdGNYRzRnSUNBZ2ZWeGNibHhjYmlBZ0lDQmlZV05yWjNKdmRXNWtMWE5wZW1VNklEQXVOalZsYlNCaGRYUnZMQ0F4TURBbE8xeGNibHhjYmlBZ0lDQW1PbVp2WTNWeklIdGNYRzRnSUNBZ0lDQmliM2d0YzJoaFpHOTNPaUF3SURBZ01DQXljSGdnZG1GeUtDMHRabTlqZFhNdGFHbG5hR3hwWjJoMExXTnZiRzl5S1R0Y1hHNGdJQ0FnZlZ4Y2JseGNiaUFnSUNBbU9taHZkbVZ5SUh0Y1hHNGdJQ0FnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFpZFhSMGIyNHRaM0poZVMweUtUdGNYRzRnSUNBZ2ZWeGNibHhjYmlBZ0lDQW1PbUZqZEdsMlpTQjdYRnh1SUNBZ0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdFluVjBkRzl1TFdkeVlYa3RNaWs3WEZ4dUlDQWdJSDFjWEc0Z0lIMWNYRzVjWEc0Z0lDNTZTVzVrWlhoQ2RYUjBiMjRnZTF4Y2JpQWdJQ0J0WVhKbmFXNDZJREE3WEZ4dUlDQWdJRzFoY21kcGJpMXBibXhwYm1VdFpXNWtPaUE0Y0hnN1hGeHVJQ0FnSUhCaFpHUnBibWM2SURWd2VEdGNYRzRnSUNBZ1pHbHpjR3hoZVRvZ2FXNXNhVzVsTFdac1pYZzdYRnh1SUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJqWlc1MFpYSTdYRnh1SUNBZ0lHcDFjM1JwWm5rdFkyOXVkR1Z1ZERvZ1kyVnVkR1Z5TzF4Y2JseGNiaUFnSUNCemRtY2dlMXhjYmlBZ0lDQWdJSGRwWkhSb09pQXhPSEI0TzF4Y2JpQWdJQ0FnSUdobGFXZG9kRG9nTVRod2VEdGNYRzRnSUNBZ2ZWeGNiaUFnZlZ4Y2JseGNiaUFnTG5OamNtOXNiQzFpWVdOckxYUnZMV052Ym5SbGJuUWdlMXhjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0Y0c5d2RYQXRkR1Y0ZEMxamIyeHZjaWs3WEZ4dUlDQWdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjWEc0Z0lDQWdiR1ZtZERvZ05UQWxPMXhjYmlBZ0lDQmliM1IwYjIwNklETXdjSGc3WEZ4dUlDQWdJSFJ5WVc1elptOXliVG9nZEhKaGJuTnNZWFJsV0NndE5UQWxLVHRjWEc0Z0lDQWdjR0ZrWkdsdVp6b2dNVEJ3ZUNBeU1IQjRPMXhjYmlBZ2ZWeGNibHhjYmlBZ0xtaGxiSEF0YVdOdmJpQjdYRnh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dUlDQWdJR04xY25OdmNqb2djRzlwYm5SbGNqdGNYRzRnSUNBZ1ptbHNiRG9nSkc5akxXZHlZWGt0Tmp0Y1hHNGdJQ0FnY0dGa1pHbHVaem9nTUR0Y1hHNGdJQ0FnYldGeVoybHVPaUF3TzF4Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCdWIyNWxPMXhjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YVdOdmJpMW1hV3hzTFdOdmJHOXlLVHRjWEc1Y1hHNGdJQ0FnYzNabklIdGNYRzRnSUNBZ0lDQjNhV1IwYURvZ01TNDFjbVZ0TzF4Y2JpQWdJQ0FnSUdobGFXZG9kRG9nTVM0MWNtVnRPMXhjYmlBZ0lDQjlYRnh1WEZ4dUlDQWdJQ1k2YUc5MlpYSWdlMXhjYmlBZ0lDQWdJR0poWTJ0bmNtOTFibVE2SUc1dmJtVTdYRnh1SUNBZ0lIMWNYRzRnSUgxY1hHNWNYRzRnSUM1eVpYTmxkQzE2YjI5dExXSjFkSFJ2YmlCN1hGeHVJQ0FnSUhCaFpHUnBibWM2SURBdU1tVnRPMXhjYmlBZ0lDQmlZV05yWjNKdmRXNWtPaUIwY21GdWMzQmhjbVZ1ZER0Y1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExYUmxlSFF0Y0hKcGJXRnllUzFqYjJ4dmNpazdYRnh1SUNBZ0lHWnZiblF0Wm1GdGFXeDVPaUIyWVhJb0xTMTFhUzFtYjI1MEtUdGNYRzRnSUgxY1hHNWNYRzRnSUM1MWJtUnZMWEpsWkc4dFluVjBkRzl1Y3lCN1hGeHVJQ0FnSUdScGMzQnNZWGs2SUdkeWFXUTdYRnh1SUNBZ0lHZHlhV1F0WVhWMGJ5MW1iRzkzT2lCamIyeDFiVzQ3WEZ4dUlDQWdJR2RoY0RvZ01DNDBaVzA3WEZ4dUlDQWdJRzFoY21kcGJpMTBiM0E2SUdGMWRHODdYRnh1SUNBZ0lHMWhjbWRwYmkxaWIzUjBiMjA2SUdGMWRHODdYRnh1SUNBZ0lHMWhjbWRwYmkxcGJteHBibVV0YzNSaGNuUTZJREF1Tm1WdE8xeGNiaUFnZlZ4Y2JseGNiaUFnUUdsdVkyeDFaR1VnYVhOTmIySnBiR1VnZTF4Y2JpQWdJQ0JoYzJsa1pTQjdYRnh1SUNBZ0lDQWdaR2x6Y0d4aGVUb2dibTl1WlR0Y1hHNGdJQ0FnZlZ4Y2JpQWdJQ0F1YzJOeWIyeHNMV0poWTJzdGRHOHRZMjl1ZEdWdWRDQjdYRnh1SUNBZ0lDQWdZbTkwZEc5dE9pQmpZV3hqS0Rnd2NIZ2dLeUIyWVhJb0xTMXpZV0lzSURBcEtUdGNYRzRnSUNBZ0lDQjZMV2x1WkdWNE9pQXRNVHRjWEc0Z0lDQWdmVnhjYmlBZ2ZWeGNibHhjYmlBZ0xuSjBiQzF0YVhKeWIzSWdlMXhjYmlBZ0lDQTZjbTl2ZEZ0a2FYSTlYRnhjSW5KMGJGeGNYQ0pkSUNZZ2UxeGNiaUFnSUNBZ0lIUnlZVzV6Wm05eWJUb2djMk5oYkdWWUtDMHhLVHRjWEc0Z0lDQWdmVnhjYmlBZ2ZWeGNibHhjYmlBZ0xucGxiaTF0YjJSbExYWnBjMmxpYVd4cGRIa2dlMXhjYmlBZ0lDQjJhWE5wWW1sc2FYUjVPaUIyYVhOcFlteGxPMXhjYmlBZ0lDQnZjR0ZqYVhSNU9pQXhPMXhjYmlBZ0lDQm9aV2xuYUhRNklHRjFkRzg3WEZ4dUlDQWdJSGRwWkhSb09pQmhkWFJ2TzF4Y2JpQWdJQ0IwY21GdWMybDBhVzl1T2lCdmNHRmphWFI1SURBdU5YTTdYRnh1WEZ4dUlDQWdJQ1l1ZW1WdUxXMXZaR1V0ZG1semFXSnBiR2wwZVMwdGFHbGtaR1Z1SUh0Y1hHNGdJQ0FnSUNCMmFYTnBZbWxzYVhSNU9pQm9hV1JrWlc0N1hGeHVJQ0FnSUNBZ2IzQmhZMmwwZVRvZ01EdGNYRzRnSUNBZ0lDQm9aV2xuYUhRNklEQTdYRnh1SUNBZ0lDQWdkMmxrZEdnNklEQTdYRnh1SUNBZ0lDQWdkSEpoYm5OcGRHbHZiam9nYjNCaFkybDBlU0F3TGpWek8xeGNiaUFnSUNCOVhGeHVJQ0I5WEZ4dVhGeHVJQ0F1WkdsellXSnNaUzF3YjJsdWRHVnlSWFpsYm5SeklIdGNYRzRnSUNBZ2NHOXBiblJsY2kxbGRtVnVkSE02SUc1dmJtVWdJV2x0Y0c5eWRHRnVkRHRjWEc0Z0lIMWNYRzVjWEc0Z0lDWXVaWGhqWVd4cFpISmhkeTB0ZG1sbGR5MXRiMlJsSUh0Y1hHNGdJQ0FnTGtGd2NDMXRaVzUxSUh0Y1hHNGdJQ0FnSUNCa2FYTndiR0Y1T2lCbWJHVjRPMXhjYmlBZ0lDQWdJR3AxYzNScFpua3RZMjl1ZEdWdWREb2djM0JoWTJVdFltVjBkMlZsYmp0Y1hHNGdJQ0FnZlZ4Y2JpQWdmVnhjYmx4Y2JpQWdhVzV3ZFhSYmRIbHdaVDFjWEZ3aWRHVjRkRnhjWENKZExGeGNiaUFnZEdWNGRHRnlaV0U2Ym05MEtDNWxlR05oYkdsa2NtRjNMWGQ1YzJsM2VXY3BJSHRjWEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFhSbGVIUXRjSEpwYldGeWVTMWpiMnh2Y2lrN1hGeHVJQ0FnSUdKdmNtUmxjam9nTVM0MWNIZ2djMjlzYVdRZ2RtRnlLQzB0YVc1d2RYUXRZbTl5WkdWeUxXTnZiRzl5S1R0Y1hHNGdJQ0FnY0dGa1pHbHVaem9nTUM0M05YSmxiVHRjWEc0Z0lDQWdkMmhwZEdVdGMzQmhZMlU2SUc1dmQzSmhjRHRjWEc0Z0lDQWdZbTl5WkdWeUxYSmhaR2wxY3pvZ2RtRnlLQzB0YzNCaFkyVXRabUZqZEc5eUtUdGNYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YVc1d2RYUXRZbWN0WTI5c2IzSXBPMXhjYmx4Y2JpQWdJQ0FtT201dmRDZzZabTlqZFhNcElIdGNYRzRnSUNBZ0lDQW1PbWh2ZG1WeUlIdGNYRzRnSUNBZ0lDQWdJR0poWTJ0bmNtOTFibVF0WTI5c2IzSTZJSFpoY2lndExXbHVjSFYwTFdodmRtVnlMV0puTFdOdmJHOXlLVHRjWEc0Z0lDQWdJQ0I5WEZ4dUlDQWdJSDFjWEc1Y1hHNGdJQ0FnSmpwbWIyTjFjeUI3WEZ4dUlDQWdJQ0FnYjNWMGJHbHVaVG9nYm05dVpUdGNYRzRnSUNBZ0lDQmliM2d0YzJoaFpHOTNPaUF3SURBZ01DQXljSGdnZG1GeUtDMHRabTlqZFhNdGFHbG5hR3hwWjJoMExXTnZiRzl5S1R0Y1hHNGdJQ0FnZlZ4Y2JpQWdmVnhjYmx4Y2JpQWdRRzFsWkdsaElIQnlhVzUwSUh0Y1hHNGdJQ0FnTGtGd2NDMWliM1IwYjIwdFltRnlMRnhjYmlBZ0lDQXVSbWw0WldSVGFXUmxRMjl1ZEdGcGJtVnlMRnhjYmlBZ0lDQXViR0Y1WlhJdGRXbGZYM2R5WVhCd1pYSWdlMXhjYmlBZ0lDQWdJR1JwYzNCc1lYazZJRzV2Ym1VN1hGeHVJQ0FnSUgxY1hHNGdJSDFjWEc1OVhGeHVYRnh1TGtWeWNtOXlVM0JzWVhOb0xtVjRZMkZzYVdSeVlYY2dlMXhjYmlBZ2JXbHVMV2hsYVdkb2REb2dNVEF3ZG1nN1hGeHVJQ0J3WVdSa2FXNW5PaUF5TUhCNElEQTdYRnh1SUNCdmRtVnlabXh2ZHpvZ1lYVjBienRjWEc0Z0lHUnBjM0JzWVhrNklHWnNaWGc3WEZ4dUlDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXhjYmlBZ2FuVnpkR2xtZVMxamIyNTBaVzUwT2lCalpXNTBaWEk3WEZ4dUlDQjFjMlZ5TFhObGJHVmpkRG9nZEdWNGREdGNYRzVjWEc0Z0lDNUZjbkp2Y2xOd2JHRnphQzF0WlhOellXZGxRMjl1ZEdGcGJtVnlJSHRjWEc0Z0lDQWdaR2x6Y0d4aGVUb2dabXhsZUR0Y1hHNGdJQ0FnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNYRzRnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR05sYm5SbGNqdGNYRzRnSUNBZ2FuVnpkR2xtZVMxamIyNTBaVzUwT2lCalpXNTBaWEk3WEZ4dVhGeHVJQ0FnSUhCaFpHUnBibWM2SURRd2NIZzdYRnh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklDUnZZeTF5WldRdE1UdGNYRzRnSUNBZ1ltOXlaR1Z5T2lBemNIZ2djMjlzYVdRZ0pHOWpMWEpsWkMwNU8xeGNiaUFnZlZ4Y2JseGNiaUFnTGtWeWNtOXlVM0JzWVhOb0xYQmhjbUZuY21Gd2FDQjdYRnh1SUNBZ0lHMWhjbWRwYmpvZ01UVndlQ0F3TzF4Y2JpQWdJQ0J0WVhndGQybGtkR2c2SURZd01IQjRPMXhjYmx4Y2JpQWdJQ0FtTG1Gc2FXZHVMV05sYm5SbGNpQjdYRnh1SUNBZ0lDQWdkR1Y0ZEMxaGJHbG5iam9nWTJWdWRHVnlPMXhjYmlBZ0lDQjlYRnh1SUNCOVhGeHVYRnh1SUNBdVltbG5aMlZ5TEZ4Y2JpQWdMbUpwWjJkbGNpQmlkWFIwYjI0Z2UxeGNiaUFnSUNCbWIyNTBMWE5wZW1VNklERXVNV1Z0TzF4Y2JpQWdmVnhjYmx4Y2JpQWdMbk50WVd4c1pYSXNYRnh1SUNBdWMyMWhiR3hsY2lCaWRYUjBiMjRnZTF4Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SURBdU9XVnRPMXhjYmlBZ2ZWeGNibHhjYmlBZ0xrVnljbTl5VTNCc1lYTm9MV1JsZEdGcGJITWdlMXhjYmlBZ0lDQmthWE53YkdGNU9pQm1iR1Y0TzF4Y2JpQWdJQ0JtYkdWNExXUnBjbVZqZEdsdmJqb2dZMjlzZFcxdU8xeGNiaUFnSUNCaGJHbG5iaTFwZEdWdGN6b2dabXhsZUMxemRHRnlkRHRjWEc1Y1hHNGdJQ0FnZEdWNGRHRnlaV0VnZTF4Y2JpQWdJQ0FnSUhkcFpIUm9PaUF4TURBbE8xeGNiaUFnSUNBZ0lHMWhjbWRwYmpvZ01UQndlQ0F3TzF4Y2JpQWdJQ0FnSUdadmJuUXRabUZ0YVd4NU9pQmNYRndpUTJGelkyRmthV0ZjWEZ3aU8xeGNiaUFnSUNBZ0lHWnZiblF0YzJsNlpUb2dNQzQ0WlcwN1hGeHVJQ0FnSUgxY1hHNGdJSDFjWEc1OVhGeHVYQ0lzWENKQWFXMXdiM0owSUZ4Y1hDSnZjR1Z1TFdOdmJHOXlMMjl3Wlc0dFkyOXNiM0l1YzJOemMxeGNYQ0k3WEZ4dVFHbHRjRzl5ZENCY1hGd2lMaTkyWVhKcFlXSnNaWE11Ylc5a2RXeGxMbk5qYzNOY1hGd2lPMXhjYmx4Y2JpNWxlR05oYkdsa2NtRjNJSHRjWEc0Z0lDMHRkR2hsYldVdFptbHNkR1Z5T2lCdWIyNWxPMXhjYmlBZ0xTMWlkWFIwYjI0dFpHVnpkSEoxWTNScGRtVXRZbWN0WTI5c2IzSTZJQ043Skc5akxYSmxaQzB4ZlR0Y1hHNGdJQzB0WW5WMGRHOXVMV1JsYzNSeWRXTjBhWFpsTFdOdmJHOXlPaUFqZXlSdll5MXlaV1F0T1gwN1hGeHVJQ0F0TFdKMWRIUnZiaTFuY21GNUxURTZJQ043Skc5akxXZHlZWGt0TW4wN1hGeHVJQ0F0TFdKMWRIUnZiaTFuY21GNUxUSTZJQ043Skc5akxXZHlZWGt0TkgwN1hGeHVJQ0F0TFdKMWRIUnZiaTFuY21GNUxUTTZJQ043Skc5akxXZHlZWGt0TlgwN1hGeHVJQ0F0TFdKMWRIUnZiaTF6Y0dWamFXRnNMV0ZqZEdsMlpTMWlaeTFqYjJ4dmNqb2dJM3NrYjJNdFozSmxaVzR0TUgwN1hGeHVJQ0F0TFdScFlXeHZaeTFpYjNKa1pYSXRZMjlzYjNJNklDTjdKRzlqTFdkeVlYa3RObjA3WEZ4dUlDQXRMV1J5YjNCa2IzZHVMV2xqYjI0NklIVnliQ2duWkdGMFlUcHBiV0ZuWlM5emRtY3JlRzFzTER4emRtY2dlRzFzYm5NOVhGeGNJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5YRnhjSWlCM2FXUjBhRDFjWEZ3aU1qa3lMalJjWEZ3aUlHaGxhV2RvZEQxY1hGd2lNamt5TGpSY1hGd2lJSFpwWlhkQ2IzZzlYRnhjSWpBZ01DQXlPVElnTWpreVhGeGNJajQ4Y0dGMGFDQmtQVnhjWENKTk1qZzNJREU1TjB3eE5Ua2dOamxqTFRRdE15MDRMVFV0TVRNdE5YTXRPU0F5TFRFeklEVk1OU0F4T1RkakxUTWdOQzAxSURndE5TQXhNM015SURrZ05TQXhNMk0wSURRZ09DQTFJREV6SURWb01qVTJZelVnTUNBNUxURWdNVE10TlhNMUxUZ2dOUzB4TXkweExUa3ROUzB4TTNwY1hGd2lMejQ4TDNOMlp6NG5LVHRjWEc0Z0lDMHRabTlqZFhNdGFHbG5hR3hwWjJoMExXTnZiRzl5T2lBamV5UnZZeTFpYkhWbExUSjlPMXhjYmlBZ0xTMXBZMjl1TFdacGJHd3RZMjlzYjNJNklDTjdKRzlqTFdkeVlYa3RPWDA3WEZ4dUlDQXRMV2xqYjI0dFozSmxaVzR0Wm1sc2JDMWpiMnh2Y2pvZ0kzc2tiMk10WjNKbFpXNHRPWDA3WEZ4dUlDQXRMV1JsWm1GMWJIUXRZbWN0WTI5c2IzSTZJQ043Skc5akxYZG9hWFJsZlR0Y1hHNGdJQzB0YVc1d2RYUXRZbWN0WTI5c2IzSTZJQ043Skc5akxYZG9hWFJsZlR0Y1hHNGdJQzB0YVc1d2RYUXRZbTl5WkdWeUxXTnZiRzl5T2lBamV5UnZZeTFuY21GNUxUUjlPMXhjYmlBZ0xTMXBibkIxZEMxb2IzWmxjaTFpWnkxamIyeHZjam9nSTNza2IyTXRaM0poZVMweGZUdGNYRzRnSUMwdGFXNXdkWFF0YkdGaVpXd3RZMjlzYjNJNklDTjdKRzlqTFdkeVlYa3ROMzA3WEZ4dUlDQXRMV2x6YkdGdVpDMWlaeTFqYjJ4dmNqb2djbWRpWVNneU5UVXNJREkxTlN3Z01qVTFMQ0F3TGprMktUdGNYRzRnSUMwdGEyVjVZbWx1WkdsdVp5MWpiMnh2Y2pvZ0kzc2tiMk10WjNKaGVTMDFmVHRjWEc0Z0lDMHRiR2x1YXkxamIyeHZjam9nSTNza2IyTXRZbXgxWlMwM2ZUdGNYRzRnSUMwdGIzWmxjbXhoZVMxaVp5MWpiMnh2Y2pvZ0kzdDBjbUZ1YzNCaGNtVnVkR2w2WlNna2IyTXRkMmhwZEdVc0lEQXVNVElwZlR0Y1hHNGdJQzB0Y0c5d2RYQXRZbWN0WTI5c2IzSTZJQ043Skc5akxYZG9hWFJsZlR0Y1hHNGdJQzB0Y0c5d2RYQXRjMlZqYjI1a1lYSjVMV0puTFdOdmJHOXlPaUFqZXlSdll5MW5jbUY1TFRGOU8xeGNiaUFnTFMxd2IzQjFjQzEwWlhoMExXTnZiRzl5T2lBamV5UnZZeTFpYkdGamEzMDdYRnh1SUNBdExYQnZjSFZ3TFhSbGVIUXRhVzUyWlhKMFpXUXRZMjlzYjNJNklDTjdKRzlqTFhkb2FYUmxmVHRjWEc0Z0lDMHRjMkZpT2lCbGJuWW9jMkZtWlMxaGNtVmhMV2x1YzJWMExXSnZkSFJ2YlNrN1hGeHVJQ0F0TFhOaGJEb2daVzUyS0hOaFptVXRZWEpsWVMxcGJuTmxkQzFzWldaMEtUdGNYRzRnSUMwdGMyRnlPaUJsYm5Zb2MyRm1aUzFoY21WaExXbHVjMlYwTFhKcFoyaDBLVHRjWEc0Z0lDMHRjMkYwT2lCbGJuWW9jMkZtWlMxaGNtVmhMV2x1YzJWMExYUnZjQ2s3WEZ4dUlDQXRMWE5sYkdWamRDMW9hV2RvYkdsbmFIUXRZMjlzYjNJNklDTjdKRzlqTFdKc2RXVXROWDA3WEZ4dUlDQXRMWE5vWVdSdmR5MXBjMnhoYm1RNklEQWdNQ0F3SURGd2VDQnlaMkpoS0RBc0lEQXNJREFzSURBdU1ERXBMQ0F4Y0hnZ01YQjRJRFZ3ZUNCeVoySW9NQ0F3SURBZ0x5QXhNaVVwTzF4Y2JseGNiaUFnTFMxemNHRmpaUzFtWVdOMGIzSTZJREF1TWpWeVpXMDdYRnh1SUNBdExYUmxlSFF0Y0hKcGJXRnllUzFqYjJ4dmNqb2dJM3NrYjJNdFozSmhlUzA0ZlR0Y1hHNWNYRzRnSUMwdFkyOXNiM0l0Y0hKcGJXRnllVG9nSXpZNU5qVmtZanRjWEc0Z0lDMHRZMjlzYjNJdGNISnBiV0Z5ZVMxa1lYSnJaWEk2SUNNMVlqVTNaREU3WEZ4dUlDQXRMV052Ykc5eUxYQnlhVzFoY25rdFpHRnlhMlZ6ZERvZ0l6UmhORGRpTVR0Y1hHNGdJQzB0WTI5c2IzSXRjSEpwYldGeWVTMXNhV2RvZERvZ0kyVXlaVEZtWXp0Y1hHNWNYRzRnSUMwdFltOXlaR1Z5TFhKaFpHbDFjeTF0WkRvZ01DNHpOelZ5WlcwN1hGeHVJQ0F0TFdKdmNtUmxjaTF5WVdScGRYTXRiR2M2SURBdU5YSmxiVHRjWEc1Y1hHNGdJQ1l1ZEdobGJXVXRMV1JoY21zZ2UxeGNiaUFnSUNCaVlXTnJaM0p2ZFc1a09pQWtiMk10WW14aFkyczdYRnh1WEZ4dUlDQWdJQ1l1ZEdobGJXVXRMV1JoY21zdFltRmphMmR5YjNWdVpDMXViMjVsSUh0Y1hHNGdJQ0FnSUNCaVlXTnJaM0p2ZFc1a09pQnViMjVsTzF4Y2JpQWdJQ0I5WEZ4dUlDQjlYRnh1WEZ4dUlDQW1MblJvWlcxbExTMWtZWEpySUh0Y1hHNGdJQ0FnTFMxMGFHVnRaUzFtYVd4MFpYSTZJQ043SkhSb1pXMWxMV1pwYkhSbGNuMDdYRnh1SUNBZ0lDMHRZblYwZEc5dUxXUmxjM1J5ZFdOMGFYWmxMV0puTFdOdmJHOXlPaUFqTldFd01EQXdPMXhjYmlBZ0lDQXRMV0oxZEhSdmJpMWtaWE4wY25WamRHbDJaUzFqYjJ4dmNqb2dJM3NrYjJNdGNtVmtMVE45TzF4Y2JpQWdJQ0F0TFdKMWRIUnZiaTFuY21GNUxURTZJQ016TmpNMk16WTdYRnh1SUNBZ0lDMHRZblYwZEc5dUxXZHlZWGt0TWpvZ0l6STNNamN5Tnp0Y1hHNGdJQ0FnTFMxaWRYUjBiMjR0WjNKaGVTMHpPaUFqTWpJeU8xeGNiaUFnSUNBdExXSjFkSFJ2YmkxemNHVmphV0ZzTFdGamRHbDJaUzFpWnkxamIyeHZjam9nSXpJd05EWXlORHRjWEc0Z0lDQWdMUzFrYVdGc2IyY3RZbTl5WkdWeUxXTnZiRzl5T2lBamV5UnZZeTFuY21GNUxUbDlPMXhjYmlBZ0lDQXRMV1J5YjNCa2IzZHVMV2xqYjI0NklIVnliQ2duWkdGMFlUcHBiV0ZuWlM5emRtY3JlRzFzTER4emRtY2dlRzFzYm5NOVhGeGNJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5YRnhjSWlCM2FXUjBhRDFjWEZ3aU1qa3lMalJjWEZ3aUlHaGxhV2RvZEQxY1hGd2lNamt5TGpSY1hGd2lJSFpwWlhkQ2IzZzlYRnhjSWpBZ01DQXlPVElnTWpreVhGeGNJajQ4Y0dGMGFDQm1hV3hzUFZ4Y1hDSWxNak5qWldRMFpHRmNYRndpSUdROVhGeGNJazB5T0RjZ01UazNUREUxT1NBMk9XTXROQzB6TFRndE5TMHhNeTAxY3kwNUlESXRNVE1nTlV3MUlERTVOMk10TXlBMExUVWdPQzAxSURFemN6SWdPU0ExSURFell6UWdOQ0E0SURVZ01UTWdOV2d5TlRaak5TQXdJRGt0TVNBeE15MDFjelV0T0NBMUxURXpMVEV0T1MwMUxURXplbHhjWENJdlBqd3ZjM1puUGljcE8xeGNiaUFnSUNBdExXWnZZM1Z6TFdocFoyaHNhV2RvZEMxamIyeHZjam9nSTNza2IyTXRZbXgxWlMwMmZUdGNYRzRnSUNBZ0xTMXBZMjl1TFdacGJHd3RZMjlzYjNJNklDTjdKRzlqTFdkeVlYa3ROSDA3WEZ4dUlDQWdJQzB0YVdOdmJpMW5jbVZsYmkxbWFXeHNMV052Ykc5eU9pQWpleVJ2WXkxbmNtVmxiaTAwZlR0Y1hHNGdJQ0FnTFMxa1pXWmhkV3gwTFdKbkxXTnZiRzl5T2lBak1USXhNakV5TzF4Y2JpQWdJQ0F0TFdsdWNIVjBMV0puTFdOdmJHOXlPaUFqTVRJeE1qRXlPMXhjYmlBZ0lDQXRMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjam9nSXpKbE1tVXlaVHRjWEc0Z0lDQWdMUzFwYm5CMWRDMW9iM1psY2kxaVp5MWpiMnh2Y2pvZ0l6RTRNVGd4T0R0Y1hHNGdJQ0FnTFMxcGJuQjFkQzFzWVdKbGJDMWpiMnh2Y2pvZ0kzc2tiMk10WjNKaGVTMHlmVHRjWEc0Z0lDQWdMUzFwYzJ4aGJtUXRZbWN0WTI5c2IzSTZJSEpuWW1Fb016QXNJRE13TENBek1Dd2dNQzQ1T0NrN1hGeHVJQ0FnSUMwdGEyVjVZbWx1WkdsdVp5MWpiMnh2Y2pvZ0kzc2tiMk10WjNKaGVTMDJmVHRjWEc0Z0lDQWdMUzFzYVc1ckxXTnZiRzl5T2lBamV5UnZZeTFpYkhWbExUUjlPMXhjYmlBZ0lDQXRMVzkyWlhKc1lYa3RZbWN0WTI5c2IzSTZJQ043ZEhKaGJuTndZWEpsYm5ScGVtVW9KRzlqTFdkeVlYa3RPQ3dnTUM0NE9DbDlPMXhjYmlBZ0lDQXRMWEJ2Y0hWd0xXSm5MV052Ykc5eU9pQWpNbU15WXpKak8xeGNiaUFnSUNBdExYQnZjSFZ3TFhObFkyOXVaR0Z5ZVMxaVp5MWpiMnh2Y2pvZ0l6SXlNanRjWEc0Z0lDQWdMUzF3YjNCMWNDMTBaWGgwTFdOdmJHOXlPaUFqZXlSdll5MW5jbUY1TFRSOU8xeGNiaUFnSUNBdExYQnZjSFZ3TFhSbGVIUXRhVzUyWlhKMFpXUXRZMjlzYjNJNklDTXlZekpqTW1NN1hGeHVJQ0FnSUMwdGMyVnNaV04wTFdocFoyaHNhV2RvZEMxamIyeHZjam9nSTNza2IyTXRZbXgxWlMwMGZUdGNYRzRnSUNBZ0xTMXphR0ZrYjNjdGFYTnNZVzVrT2lBeGNIZ2dNWEI0SURWd2VDQWplM1J5WVc1emNHRnlaVzUwYVhwbEtDUnZZeTFpYkdGamF5d2dNQzQzS1gwN1hGeHVJQ0FnSUMwdGRHVjRkQzF3Y21sdFlYSjVMV052Ykc5eU9pQWpleVJ2WXkxbmNtRjVMVFI5TzF4Y2JseGNiaUFnSUNBdExXTnZiRzl5TFhCeWFXMWhjbms2SUNNMU5qVXdaakE3WEZ4dUlDQWdJQzB0WTI5c2IzSXRjSEpwYldGeWVTMWtZWEpyWlhJNklDTTBZalEyWkRnN1hGeHVJQ0FnSUMwdFkyOXNiM0l0Y0hKcGJXRnllUzFrWVhKclpYTjBPaUFqTTJVek9XSmxPMXhjYmlBZ0lDQXRMV052Ykc5eUxYQnlhVzFoY25rdGJHbG5hSFE2SUNNelpqTmtOalE3WEZ4dUlDQjlYRnh1ZlZ4Y2Jsd2lMRndpTHk5Y1hHNHZMMXhjYmk4dklDRHduWmVXSVBDZGw2SWc4SjJYbnlEd25aZWlJUENkbDZWY1hHNHZMeUFnZGlBeExqa3VNVnhjYmk4dlhGeHVMeThnSU9LVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnVnhjYmx4Y2JseGNiaTh2SUNCSFpXNWxjbUZzWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MTNhR2wwWlRvZ0lDQWdJQ0FnSUNBalptWm1abVptTzF4Y2JpUnZZeTFpYkdGamF6b2dJQ0FnSUNBZ0lDQWpNREF3TURBd08xeGNibHhjYmx4Y2JpOHZJQ0JIY21GNVhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFuY21GNUxXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJZNFpqbG1ZU3hjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMll4WmpObU5TeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyVTVaV05sWml4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJSbFpUSmxOaXhjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJMk5sWkRSa1lTeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0kyRmtZalZpWkN4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpnMk9HVTVOaXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJelE1TlRBMU55eGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6TTBNMkUwTUN4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpJeE1qVXlPVnhjYmlrN1hGeHVYRnh1Skc5akxXZHlZWGt0TURvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxURTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzB5T2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE16b2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVFE2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMwMU9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3ROam9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRjNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqZGNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0T1RvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQlNaV1JjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxYSmxaQzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1abVkxWmpVc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObVptVXpaVE1zWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05tWm1NNVl6a3NYRnh1SUNCY1hGd2lNMXhjWENJNklDTm1abUU0WVRnc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNObVpqZzNPRGNzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ05tWmpaaU5tSXNYRnh1SUNCY1hGd2lObHhjWENJNklDTm1ZVFV5TlRJc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNObU1ETmxNMlVzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ05sTURNeE16RXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTmpPVEpoTW1GY1hHNHBPMXhjYmx4Y2JpUnZZeTF5WldRdE1Eb2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVEk2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MXlaV1F0TXpvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMWEpsWkMwME9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUVTZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxeVpXUXROam9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxYSmxaQzAzT2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRnNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE9Ub2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRkJwYm10Y1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMWEJwYm1zdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWm1abU1HWTJMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpabVprWldWaUxGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalptTmpNbVEzTEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWm1GaE1tTXhMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpaamM0TTJGakxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBalpqQTJOVGsxTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqWlRZME9UZ3dMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpaRFl6TXpaakxGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBall6SXlOVFZqTEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqWVRZeFpUUmtYRnh1S1R0Y1hHNWNYRzRrYjJNdGNHbHVheTB3T2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE1Ub2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVEk2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkwek9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3RORG9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRVNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MDJPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0TnpvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUZzZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTA1T2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lFZHlZWEJsWEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MW5jbUZ3WlMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tT0dZd1ptTXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTm1NMlE1Wm1Fc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNObFpXSmxabUVzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05sTlRrNVpqY3NYRnh1SUNCY1hGd2lORnhjWENJNklDTmtZVGMzWmpJc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNOall6VmtaVGdzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ05pWlRSaVpHSXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTmhaVE5sWXprc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNNVl6TTJZalVzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ000TmpKbE9XTmNYRzRwTzF4Y2JseGNiaVJ2WXkxbmNtRndaUzB3T2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMweU9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzB6T2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMwMU9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzAyT2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMwNE9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzA1T2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQldhVzlzWlhSY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMWFpwYjJ4bGRDMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObU0yWXdabVlzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05sTldSaVptWXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTmtNR0ptWm1Zc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNOaU1UazNabU1zWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ001TnpjMVptRXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTTRORFZsWmpjc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNNM09UVXdaaklzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ00zTURRNFpUZ3NYRnh1SUNCY1hGd2lPRnhjWENJNklDTTJOelF4WkRrc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNMVpqTmtZelJjWEc0cE8xeGNibHhjYmlSdll5MTJhVzlzWlhRdE1Eb2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMweE9pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJakZjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRJNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0TXpvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzAwT2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqUmNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVFU2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXROam9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUZzZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE9Ub2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUVsdVpHbG5iMXhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGFXNWthV2R2TFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlZrWmpKbVppeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyUmlaVFJtWml4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJKaFl6aG1aaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJemt4WVRkbVppeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0l6YzBPR1ptWXl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXpWak4yTm1ZU3hjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJelJqTm1WbU5TeGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6UXlOak5sWWl4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpOaU5XSmtZaXhjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJek0yTkdaak4xeGNiaWs3WEZ4dVhGeHVKRzlqTFdsdVpHbG5ieTB3T2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVEU2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHRNam9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MHpPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxUUTZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE5Ub2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkwMk9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRjNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0T0RvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTA1T2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdRbXgxWlZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRZbXgxWlMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05sTjJZMVptWXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTmtNR1ZpWm1Zc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNOaE5XUTRabVlzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ00zTkdNd1ptTXNYRnh1SUNCY1hGd2lORnhjWENJNklDTTBaR0ZpWmpjc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNNek16bGhaakFzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ015TWpoaVpUWXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTXhZemRsWkRZc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNeE9UY3hZeklzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ014T0RZMFlXSmNYRzRwTzF4Y2JseGNiaVJ2WXkxaWJIVmxMVEE2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMweE9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXRNam9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRNNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10WW14MVpTMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0TlRvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUWTZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzAzT2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE9Eb2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVGs2SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1EzbGhibHhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdFkzbGhiaTFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTmxNMlpoWm1Nc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNOak5XWTJabUVzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ001T1dVNVpqSXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTTJObVE1WlRnc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNNelltTTVaR0lzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ015TW1JNFkyWXNYRnh1SUNCY1hGd2lObHhjWENJNklDTXhOV0ZoWW1Zc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNeE1EazRZV1FzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ013WXpnMU9Ua3NYRnh1SUNCY1hGd2lPVnhjWENJNklDTXdZamN5T0RWY1hHNHBPMXhjYmx4Y2JpUnZZeTFqZVdGdUxUQTZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTB4T2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE1qb2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVE02SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkwME9pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHROVG9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRZNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0T0RvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxUazZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnVkdWaGJGeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10ZEdWaGJDMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObE5tWmpaalVzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05qTTJaaFpUZ3NYRnh1SUNCY1hGd2lNbHhjWENJNklDTTVObVl5WkRjc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNNMk0yVTJZbVVzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ016T0dRNVlUa3NYRnh1SUNCY1hGd2lOVnhjWENJNklDTXlNR001T1Rjc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNNeE1tSTRPRFlzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ013WTJFMk56Z3NYRnh1SUNCY1hGd2lPRnhjWENJNklDTXdPVGt5Tmpnc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNd09EZG1OV0pjWEc0cE8xeGNibHhjYmlSdll5MTBaV0ZzTFRBNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0TWpvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUTTZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzAwT2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE5Ub2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVFk2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMwM09pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3RPRG9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRrNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdSM0psWlc1Y1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV2R5WldWdUxXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJWaVptSmxaU3hjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlF6Wmpsa09DeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kySXlaakppWWl4Y1hHNGdJRnhjWENJelhGeGNJam9nSXpoalpUazVZU3hjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJelk1WkdJM1l5eGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0l6VXhZMlkyTml4Y1hHNGdJRnhjWENJMlhGeGNJam9nSXpRd1l6QTFOeXhjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJek0zWWpJMFpDeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0l6Sm1PV1UwTkN4Y1hHNGdJRnhjWENJNVhGeGNJam9nSXpKaU9HRXpaVnhjYmlrN1hGeHVYRnh1Skc5akxXZHlaV1Z1TFRBNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVEU2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUSTZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRNNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVFE2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUVTZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRZNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVGM2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUZzZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRrNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRXhwYldWY1hHNHZMeUFnNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0FYRnh1WEZ4dUpHOWpMV3hwYldVdGJHbHpkRG9nS0Z4Y2JpQWdYRnhjSWpCY1hGd2lPaUFqWmpSbVkyVXpMRnhjYmlBZ1hGeGNJakZjWEZ3aU9pQWpaVGxtWVdNNExGeGNiaUFnWEZ4Y0lqSmNYRndpT2lBalpEaG1OV0V5TEZ4Y2JpQWdYRnhjSWpOY1hGd2lPaUFqWXpCbFlqYzFMRnhjYmlBZ1hGeGNJalJjWEZ3aU9pQWpZVGxsTXpSaUxGeGNiaUFnWEZ4Y0lqVmNYRndpT2lBak9UUmtPREprTEZ4Y2JpQWdYRnhjSWpaY1hGd2lPaUFqT0RKak9URmxMRnhjYmlBZ1hGeGNJamRjWEZ3aU9pQWpOelJpT0RFMkxGeGNiaUFnWEZ4Y0lqaGNYRndpT2lBak5qWmhPREJtTEZ4Y2JpQWdYRnhjSWpsY1hGd2lPaUFqTldNNU5EQmtYRnh1S1R0Y1hHNWNYRzRrYjJNdGJHbHRaUzB3T2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE1Ub2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVEk2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMwek9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSXpYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXRORG9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRVNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0TnpvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUZzZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJamhjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzA1T2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lGbGxiR3h2ZDF4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRlV1ZzYkc5M0xXeHBjM1E2SUNoY1hHNGdJRnhjWENJd1hGeGNJam9nSTJabVpqbGtZaXhjWEc0Z0lGeGNYQ0l4WEZ4Y0lqb2dJMlptWmpOaVppeGNYRzRnSUZ4Y1hDSXlYRnhjSWpvZ0kyWm1aV001T1N4Y1hHNGdJRnhjWENJelhGeGNJam9nSTJabVpUQTJOaXhjWEc0Z0lGeGNYQ0kwWEZ4Y0lqb2dJMlptWkRRellpeGNYRzRnSUZ4Y1hDSTFYRnhjSWpvZ0kyWmpZelF4T1N4Y1hHNGdJRnhjWENJMlhGeGNJam9nSTJaaFlqQXdOU3hjWEc0Z0lGeGNYQ0kzWEZ4Y0lqb2dJMlkxT1dZd01DeGNYRzRnSUZ4Y1hDSTRYRnhjSWpvZ0kyWXdPR013TUN4Y1hHNGdJRnhjWENJNVhGeGNJam9nSTJVMk56Y3dNRnhjYmlrN1hGeHVYRnh1Skc5akxYbGxiR3h2ZHkwd09pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRFNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0TWpvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTB6T2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVFE2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU5GeGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3ROVG9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MDJPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUYzZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE9Eb2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0k0WEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkwNU9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnVDNKaGJtZGxYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxdmNtRnVaMlV0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpabVptTkdVMkxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalptWmxPR05qTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWm1aa09HRTRMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpabVpqTURjNExGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBalptWmhPVFJrTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqWm1ZNU1qSmlMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpabVEzWlRFMExGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBalpqYzJOekEzTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqWlRnMU9UQmpMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpaRGswT0RCbVhGeHVLVHRjWEc1Y1hHNGtiMk10YjNKaGJtZGxMVEE2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU1GeGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXRNVG9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpKY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUTTZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE5Eb2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMwMU9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJalZjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRZNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0TnpvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzA0T2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVGs2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU9WeGNYQ0lwTzF4Y2JseGNibHhjYmk4dklDQkRiMnh2Y2lCc2FYTjBYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxamIyeHZjaTF6Y0dWamRISjFiVG9nSUNBNU8xeGNibHhjYmlSdll5MWpiMnh2Y2kxc2FYTjBPaUFvWEZ4dUlDQWtiMk10WjNKaGVTMXNhWE4wT2lBZ0lDQWdJRnhjWENKbmNtRjVYRnhjSWl4Y1hHNGdJQ1J2WXkxeVpXUXRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWNtVmtYRnhjSWl4Y1hHNGdJQ1J2WXkxd2FXNXJMV3hwYzNRNklDQWdJQ0FnWEZ4Y0luQnBibXRjWEZ3aUxGeGNiaUFnSkc5akxXZHlZWEJsTFd4cGMzUTZJQ0FnSUNBZ1hGeGNJbWR5WVhCbFhGeGNJaXhjWEc0Z0lDUnZZeTEyYVc5c1pYUXRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWRtbHZiR1YwWEZ4Y0lpeGNYRzRnSUNSdll5MXBibVJwWjI4dGJHbHpkRG9nSUNBZ0lDQmNYRndpYVc1a2FXZHZYRnhjSWl4Y1hHNGdJQ1J2WXkxaWJIVmxMV3hwYzNRNklDQWdJQ0FnWEZ4Y0ltSnNkV1ZjWEZ3aUxGeGNiaUFnSkc5akxXTjVZVzR0YkdsemREb2dJQ0FnSUNCY1hGd2lZM2xoYmx4Y1hDSXNYRnh1SUNBa2IyTXRkR1ZoYkMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0owWldGc1hGeGNJaXhjWEc0Z0lDUnZZeTFuY21WbGJpMXNhWE4wT2lBZ0lDQWdJRnhjWENKbmNtVmxibHhjWENJc1hGeHVJQ0FrYjJNdGJHbHRaUzFzYVhOME9pQWdJQ0FnSUZ4Y1hDSnNhVzFsWEZ4Y0lpeGNYRzRnSUNSdll5MTVaV3hzYjNjdGJHbHpkRG9nSUNBZ0lDQmNYRndpZVdWc2JHOTNYRnhjSWl4Y1hHNGdJQ1J2WXkxdmNtRnVaMlV0YkdsemREb2dJQ0FnSUNCY1hGd2liM0poYm1kbFhGeGNJbHhjYmlrN1hGeHVYQ0pkTEZ3aWMyOTFjbU5sVW05dmRGd2lPbHdpWENKOVhTazdYRzR2THlCRmVIQnZjblJ6WEc1bGVIQnZjblFnWkdWbVlYVnNkQ0JmWDE5RFUxTmZURTlCUkVWU1gwVllVRTlTVkY5Zlh6dGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jc3Mvc3R5bGVzLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzBdLnVzZVsyXSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkZWZhdWx0XFxcIjogKCkgPT4gKF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMgKi8gXFxcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vLyBJbXBvcnRzXFxuXFxuXFxudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX2FwaV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKSgoX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19kZWZhdWx0KCkpKTtcXG4vLyBNb2R1bGVcXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFxcXCJcXFwiLCBcXFwiXFxcIix7XFxcInZlcnNpb25cXFwiOjMsXFxcInNvdXJjZXNcXFwiOltdLFxcXCJuYW1lc1xcXCI6W10sXFxcIm1hcHBpbmdzXFxcIjpcXFwiXFxcIixcXFwic291cmNlUm9vdFxcXCI6XFxcIlxcXCJ9XSk7XFxuLy8gRXhwb3J0c1xcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLmxvY2FscyA9IHtcXG5cXHRcXFwidGhlbWVGaWx0ZXJcXFwiOiBcXFwiaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpXFxcIlxcbn07XFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9IChfX19DU1NfTE9BREVSX0VYUE9SVF9fXyk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUwyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk5dWIyUmxYMjF2WkhWc1pYTXZjMkZ6Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpNHZMaTR2WTNOekwzWmhjbWxoWW14bGN5NXRiMlIxYkdVdWMyTnpjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096dEJRVUZCTzBGQlF6aElPMEZCUTJwQ08wRkJRemRITERoQ1FVRTRRaXgxUjBGQk1rSXNRMEZCUXl4blNFRkJjVU03UVVGREwwWTdRVUZEUVN4cFJFRkJhVVFzYTBWQlFXdEZPMEZCUTI1SU8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRXNhVVZCUVdVc2RVSkJRWFZDTEVWQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WTNOekwzWmhjbWxoWW14bGN5NXRiMlIxYkdVdWMyTnpjejlsWmpSaklsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaTh2SUVsdGNHOXlkSE5jYm1sdGNHOXlkQ0JmWDE5RFUxTmZURTlCUkVWU1gwRlFTVjlUVDFWU1EwVk5RVkJmU1UxUVQxSlVYMTlmSUdaeWIyMGdYQ0l1TGk5d1lXTnJZV2RsY3k5bGVHTmhiR2xrY21GM0wyNXZaR1ZmYlc5a2RXeGxjeTlqYzNNdGJHOWhaR1Z5TDJScGMzUXZjblZ1ZEdsdFpTOXpiM1Z5WTJWTllYQnpMbXB6WENJN1hHNXBiWEJ2Y25RZ1gxOWZRMU5UWDB4UFFVUkZVbDlCVUVsZlNVMVFUMUpVWDE5ZklHWnliMjBnWENJdUxpOXdZV05yWVdkbGN5OWxlR05oYkdsa2NtRjNMMjV2WkdWZmJXOWtkV3hsY3k5amMzTXRiRzloWkdWeUwyUnBjM1F2Y25WdWRHbHRaUzloY0drdWFuTmNJanRjYm5aaGNpQmZYMTlEVTFOZlRFOUJSRVZTWDBWWVVFOVNWRjlmWHlBOUlGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgwbE5VRTlTVkY5Zlh5aGZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOVRUMVZTUTBWTlFWQmZTVTFRVDFKVVgxOWZLVHRjYmk4dklFMXZaSFZzWlZ4dVgxOWZRMU5UWDB4UFFVUkZVbDlGV0ZCUFVsUmZYMTh1Y0hWemFDaGJiVzlrZFd4bExtbGtMQ0JjSWx3aUxDQmNJbHdpTEh0Y0luWmxjbk5wYjI1Y0lqb3pMRndpYzI5MWNtTmxjMXdpT2x0ZExGd2libUZ0WlhOY0lqcGJYU3hjSW0xaGNIQnBibWR6WENJNlhDSmNJaXhjSW5OdmRYSmpaVkp2YjNSY0lqcGNJbHdpZlYwcE8xeHVMeThnUlhod2IzSjBjMXh1WDE5ZlExTlRYMHhQUVVSRlVsOUZXRkJQVWxSZlgxOHViRzlqWVd4eklEMGdlMXh1WEhSY0luUm9aVzFsUm1sc2RHVnlYQ0k2SUZ3aWFXNTJaWEowS0RrekpTa2dhSFZsTFhKdmRHRjBaU2d4T0RCa1pXY3BYQ0pjYm4wN1hHNWxlSEJ2Y25RZ1pHVm1ZWFZzZENCZlgxOURVMU5mVEU5QlJFVlNYMFZZVUU5U1ZGOWZYenRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vZWxlbWVudC9IeXBlcmxpbmsuc2Nzc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2VsZW1lbnQvSHlwZXJsaW5rLnNjc3MgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzICovIFxcXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9zb3VyY2VNYXBzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3BhY2thZ2VzX2V4Y2FsaWRyYXdfbm9kZV9tb2R1bGVzX2Nzc19sb2FkZXJfZGlzdF9ydW50aW1lX3NvdXJjZU1hcHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyAqLyBcXFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc19leGNhbGlkcmF3X25vZGVfbW9kdWxlc19jc3NfbG9hZGVyX2Rpc3RfcnVudGltZV9hcGlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8vIEltcG9ydHNcXG5cXG5cXG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfYXBpX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpKChfcGFja2FnZXNfZXhjYWxpZHJhd19ub2RlX21vZHVsZXNfY3NzX2xvYWRlcl9kaXN0X3J1bnRpbWVfc291cmNlTWFwc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQoKSkpO1xcbi8vIE1vZHVsZVxcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXFxcIjpleHBvcnQge1xcXFxuICB0aGVtZUZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcXFxufVxcXFxuXFxcXG4uZXhjYWxpZHJhdy1oeXBlcmxpbmtDb250YWluZXIge1xcXFxuICBkaXNwbGF5OiBmbGV4O1xcXFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcXFxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXFxcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMyk7XFxcXG4gIHotaW5kZXg6IDEwMDtcXFxcbiAgYmFja2dyb3VuZDogdmFyKC0taXNsYW5kLWJnLWNvbG9yKTtcXFxcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7XFxcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxcXG4gIG1pbi1oZWlnaHQ6IDQycHg7XFxcXG59XFxcXG4uZXhjYWxpZHJhdy1oeXBlcmxpbmtDb250YWluZXItaW5wdXQsXFxcXG4uZXhjYWxpZHJhdy1oeXBlcmxpbmtDb250YWluZXIgYnV0dG9uIHtcXFxcbiAgei1pbmRleDogMTAwO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXctaHlwZXJsaW5rQ29udGFpbmVyLWlucHV0LCAuZXhjYWxpZHJhdy1oeXBlcmxpbmtDb250YWluZXItbGluayB7XFxcXG4gIGhlaWdodDogMjRweDtcXFxcbiAgcGFkZGluZzogMCA4cHg7XFxcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcXFxuICBmb250LXNpemU6IDAuOXJlbTtcXFxcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXFxcbiAgZm9udC1mYW1pbHk6IHZhcigtLXVpLWZvbnQpO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXctaHlwZXJsaW5rQ29udGFpbmVyLWlucHV0IHtcXFxcbiAgd2lkdGg6IDE4cmVtO1xcXFxuICBib3JkZXI6IG5vbmU7XFxcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcXFxuICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5LWNvbG9yKTtcXFxcbiAgb3V0bGluZTogbm9uZTtcXFxcbiAgYm9yZGVyOiBub25lO1xcXFxuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxcXG59XFxcXG4uZXhjYWxpZHJhdy1oeXBlcmxpbmtDb250YWluZXItbGluayB7XFxcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcXFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcXFxuICBtYXgtd2lkdGg6IDE1cmVtO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXctaHlwZXJsaW5rQ29udGFpbmVyIGJ1dHRvbiB7XFxcXG4gIGNvbG9yOiAjMjI4YmU2O1xcXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcXFxuICBmb250LXdlaWdodDogNTAwO1xcXFxufVxcXFxuLmV4Y2FsaWRyYXctaHlwZXJsaW5rQ29udGFpbmVyIGJ1dHRvbi5leGNhbGlkcmF3LWh5cGVybGlua0NvbnRhaW5lci0tcmVtb3ZlIHtcXFxcbiAgY29sb3I6ICNjOTJhMmE7XFxcXG59XFxcXG4uZXhjYWxpZHJhdy1oeXBlcmxpbmtDb250YWluZXIgLmQtbm9uZSB7XFxcXG4gIGRpc3BsYXk6IG5vbmU7XFxcXG59XFxcXG4uZXhjYWxpZHJhdy1oeXBlcmxpbmtDb250YWluZXItLXJlbW92ZSAuVG9vbEljb25fX2ljb24gc3ZnIHtcXFxcbiAgY29sb3I6ICNmYTUyNTI7XFxcXG59XFxcXG4uZXhjYWxpZHJhdy1oeXBlcmxpbmtDb250YWluZXIgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgd2lkdGg6IDJyZW07XFxcXG4gIGhlaWdodDogMnJlbTtcXFxcbn1cXFxcbi5leGNhbGlkcmF3LWh5cGVybGlua0NvbnRhaW5lcl9fYnV0dG9ucyB7XFxcXG4gIGZsZXg6IDAgMCBhdXRvO1xcXFxufVxcXCIsIFxcXCJcXFwiLHtcXFwidmVyc2lvblxcXCI6MyxcXFwic291cmNlc1xcXCI6W1xcXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXFxcIixcXFwid2VicGFjazovLy4vLi4vLi4vZWxlbWVudC9IeXBlcmxpbmsuc2Nzc1xcXCIsXFxcIndlYnBhY2s6Ly8uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9vcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXCJdLFxcXCJuYW1lc1xcXCI6W10sXFxcIm1hcHBpbmdzXFxcIjpcXFwiQUFVQTtFQUNFLDJDQUFBO0FDVEY7O0FBQUE7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSw4QkFBQTtFQUNBLGtCQUFBO0VBQ0EsNENBQUE7RUFDQSxZQUFBO0VBQ0Esa0NBQUE7RUFDQSxzQ0FBQTtFQUNBLHNCQUFBO0VBRUEsZ0JBQUE7QUFFRjtBQUFFOztFQUVFLFlBQUE7QUFFSjtBQUNFO0VBRUUsWUFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSwyQkFBQTtBQUFKO0FBR0U7RUFDRSxZQUFBO0VBQ0EsWUFBQTtFQUNBLDZCQUFBO0VBQ0EsZ0NBQUE7RUFFQSxhQUFBO0VBQ0EsWUFBQTtFQUNBLDJCQUFBO0FBRko7QUFLRTtFQUNFLGdCQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0FBSEo7QUFNRTtFQUNFLGNDNEpRO0VEM0pSLHdDQUFBO0VBQ0EsZ0JBQUE7QUFKSjtBQUtJO0VBQ0UsY0NlSztBRGxCWDtBQU9FO0VBQ0UsYUFBQTtBQUxKO0FBUUU7RUFDRSxjQ0dPO0FEVFg7QUFTRTtFQUNFLFdBQUE7RUFDQSxZQUFBO0FBUEo7QUFVRTtFQUNFLGNBQUE7QUFSSlxcXCIsXFxcInNvdXJjZXNDb250ZW50XFxcIjpbXFxcIkBpbXBvcnQgXFxcXFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXFxcXFwiO1xcXFxuXFxcXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXFxcbiAgICBAY29udGVudDtcXFxcbiAgfVxcXFxufVxcXFxuXFxcXG4kdGhlbWUtZmlsdGVyOiBcXFxcXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXFxcXFwiO1xcXFxuXFxcXG46ZXhwb3J0IHtcXFxcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxcXG59XFxcXG5cXFwiLFxcXCJAaW1wb3J0IFxcXFxcXFwiLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGVcXFxcXFxcIjtcXFxcblxcXFxuLmV4Y2FsaWRyYXctaHlwZXJsaW5rQ29udGFpbmVyIHtcXFxcbiAgZGlzcGxheTogZmxleDtcXFxcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXFxcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxcXG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IDAgcmdiKDAgMCAwIC8gMzAlKTtcXFxcbiAgei1pbmRleDogMTAwO1xcXFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1pc2xhbmQtYmctY29sb3IpO1xcXFxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTtcXFxcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXFxcbiAgLy8gdG8gYWNjb3VudCBmb3IgTFMgZHVlIHRvIHJlbmRlcmluZyBpY29ucyBhZnRlciBuZXcgbGluayBjcmVhdGVkXFxcXG4gIG1pbi1oZWlnaHQ6IDQycHg7XFxcXG5cXFxcbiAgJi1pbnB1dCxcXFxcbiAgYnV0dG9uIHtcXFxcbiAgICB6LWluZGV4OiAxMDA7XFxcXG4gIH1cXFxcblxcXFxuICAmLWlucHV0LFxcXFxuICAmLWxpbmsge1xcXFxuICAgIGhlaWdodDogMjRweDtcXFxcbiAgICBwYWRkaW5nOiAwIDhweDtcXFxcbiAgICBsaW5lLWhlaWdodDogMjRweDtcXFxcbiAgICBmb250LXNpemU6IDAuOXJlbTtcXFxcbiAgICBmb250LXdlaWdodDogNTAwO1xcXFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS11aS1mb250KTtcXFxcbiAgfVxcXFxuXFxcXG4gICYtaW5wdXQge1xcXFxuICAgIHdpZHRoOiAxOHJlbTtcXFxcbiAgICBib3JkZXI6IG5vbmU7XFxcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxcXG4gICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxcXG5cXFxcbiAgICBvdXRsaW5lOiBub25lO1xcXFxuICAgIGJvcmRlcjogbm9uZTtcXFxcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxcXG4gIH1cXFxcblxcXFxuICAmLWxpbmsge1xcXFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxcXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXFxcbiAgICBtYXgtd2lkdGg6IDE1cmVtO1xcXFxuICB9XFxcXG5cXFxcbiAgYnV0dG9uIHtcXFxcbiAgICBjb2xvcjogJG9jLWJsdWUtNjtcXFxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcXFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxcXG4gICAgJi5leGNhbGlkcmF3LWh5cGVybGlua0NvbnRhaW5lci0tcmVtb3ZlIHtcXFxcbiAgICAgIGNvbG9yOiAkb2MtcmVkLTk7XFxcXG4gICAgfVxcXFxuICB9XFxcXG5cXFxcbiAgLmQtbm9uZSB7XFxcXG4gICAgZGlzcGxheTogbm9uZTtcXFxcbiAgfVxcXFxuXFxcXG4gICYtLXJlbW92ZSAuVG9vbEljb25fX2ljb24gc3ZnIHtcXFxcbiAgICBjb2xvcjogJG9jLXJlZC02O1xcXFxuICB9XFxcXG5cXFxcbiAgLlRvb2xJY29uX19pY29uIHtcXFxcbiAgICB3aWR0aDogMnJlbTtcXFxcbiAgICBoZWlnaHQ6IDJyZW07XFxcXG4gIH1cXFxcblxcXFxuICAmX19idXR0b25zIHtcXFxcbiAgICBmbGV4OiAwIDAgYXV0bztcXFxcbiAgfVxcXFxufVxcXFxuXFxcIixcXFwiLy9cXFxcbi8vXFxcXG4vLyAgXHVEODM1XHVEREQ2IFx1RDgzNVx1RERFMiBcdUQ4MzVcdUREREYgXHVEODM1XHVEREUyIFx1RDgzNVx1RERFNVxcXFxuLy8gIHYgMS45LjFcXFxcbi8vXFxcXG4vLyAgXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXFxcXG5cXFxcblxcXFxuLy8gIEdlbmVyYWxcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXdoaXRlOiAgICAgICAgICNmZmZmZmY7XFxcXG4kb2MtYmxhY2s6ICAgICAgICAgIzAwMDAwMDtcXFxcblxcXFxuXFxcXG4vLyAgR3JheVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JheS1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZjhmOWZhLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2YxZjNmNSxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNlOWVjZWYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZGVlMmU2LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2NlZDRkYSxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNhZGI1YmQsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjODY4ZTk2LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzQ5NTA1NyxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMzNDNhNDAsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMjEyNTI5XFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JheS0wOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTE6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktMjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS0zOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTQ6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktNTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS02OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmF5LTc6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXktODogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JheS05OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgUmVkXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1yZWQtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2ZmZjVmNSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmZmUzZTMsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZmZjOWM5LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2ZmYThhOCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNmZjg3ODcsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjZmY2YjZiLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2ZhNTI1MixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNmMDNlM2UsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjZTAzMTMxLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogI2M5MmEyYVxcXFxuKTtcXFxcblxcXFxuJG9jLXJlZC0wOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0xOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0yOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC0zOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXJlZC00OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC01OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC02OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC03OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC04OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXJlZC05OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBQaW5rXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1waW5rLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmYwZjYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZkZWViLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZjYzJkNyxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmYWEyYzEsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZjc4M2FjLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2YwNjU5NSxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNlNjQ5ODAsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZDYzMzZjLFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2MyMjU1YyxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNhNjFlNGRcXFxcbik7XFxcXG5cXFxcbiRvYy1waW5rLTA6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstMTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtcGluay0yOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTM6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtcGluay01OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTY6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXBpbmstNzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtcGluay04OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1waW5rLTk6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBHcmFwZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtZ3JhcGUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2Y4ZjBmYyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNmM2Q5ZmEsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZWViZWZhLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2U1OTlmNyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICNkYTc3ZjIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjY2M1ZGU4LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogI2JlNGJkYixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICNhZTNlYzksXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjOWMzNmI1LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzg2MmU5Y1xcXFxuKTtcXFxcblxcXFxuJG9jLWdyYXBlLTA6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS0xOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtMjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTM6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS00OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtNTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTY6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1ncmFwZS03OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtZ3JhcGUtODogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWdyYXBlLTk6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgVmlvbGV0XFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy12aW9sZXQtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2YzZjBmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNlNWRiZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjZDBiZmZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogI2IxOTdmYyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM5Nzc1ZmEsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjODQ1ZWY3LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzc5NTBmMixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICM3MDQ4ZTgsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjNjc0MWQ5LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzVmM2RjNFxcXFxuKTtcXFxcblxcXFxuJG9jLXZpb2xldC0wOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0xOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0yOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC0zOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC00OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI0XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC01OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC02OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC03OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI3XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC04OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXZpb2xldC05OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBJbmRpZ29cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWluZGlnby1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZWRmMmZmLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2RiZTRmZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNiYWM4ZmYsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjOTFhN2ZmLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzc0OGZmYyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM1YzdjZmEsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNGM2ZWY1LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzQyNjNlYixcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMzYjViZGIsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMzY0ZmM3XFxcXG4pO1xcXFxuXFxcXG4kb2MtaW5kaWdvLTA6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTE6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTI6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTM6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTQ6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTU6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTY6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTc6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTg6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtaW5kaWdvLTk6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEJsdWVcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWJsdWUtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2U3ZjVmZixcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNkMGViZmYsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjYTVkOGZmLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzc0YzBmYyxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICM0ZGFiZjcsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMzM5YWYwLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzIyOGJlNixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMxYzdlZDYsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMTk3MWMyLFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzE4NjRhYlxcXFxuKTtcXFxcblxcXFxuJG9jLWJsdWUtMDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS0xOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTI6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtMzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS00OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTU6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtNjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtYmx1ZS03OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ibHVlLTg6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWJsdWUtOTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEN5YW5cXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLWN5YW4tbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2UzZmFmYyxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNjNWY2ZmEsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjOTllOWYyLFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzY2ZDllOCxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICMzYmM5ZGIsXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMjJiOGNmLFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzE1YWFiZixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMxMDk4YWQsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMGM4NTk5LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzBiNzI4NVxcXFxuKTtcXFxcblxcXFxuJG9jLWN5YW4tMDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi0xOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTI6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tMzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi00OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTU6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tNjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtY3lhbi03OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1jeWFuLTg6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLWN5YW4tOTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIFRlYWxcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXRlYWwtbGlzdDogKFxcXFxuICBcXFxcXFxcIjBcXFxcXFxcIjogI2U2ZmNmNSxcXFxcbiAgXFxcXFxcXCIxXFxcXFxcXCI6ICNjM2ZhZTgsXFxcXG4gIFxcXFxcXFwiMlxcXFxcXFwiOiAjOTZmMmQ3LFxcXFxuICBcXFxcXFxcIjNcXFxcXFxcIjogIzYzZTZiZSxcXFxcbiAgXFxcXFxcXCI0XFxcXFxcXCI6ICMzOGQ5YTksXFxcXG4gIFxcXFxcXFwiNVxcXFxcXFwiOiAjMjBjOTk3LFxcXFxuICBcXFxcXFxcIjZcXFxcXFxcIjogIzEyYjg4NixcXFxcbiAgXFxcXFxcXCI3XFxcXFxcXCI6ICMwY2E2NzgsXFxcXG4gIFxcXFxcXFwiOFxcXFxcXFwiOiAjMDk5MjY4LFxcXFxuICBcXFxcXFxcIjlcXFxcXFxcIjogIzA4N2Y1YlxcXFxuKTtcXFxcblxcXFxuJG9jLXRlYWwtMDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC0xOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTI6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCIyXFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtMzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC00OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTU6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI1XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtNjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MtdGVhbC03OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy10ZWFsLTg6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcXFxcXCI4XFxcXFxcXCIpO1xcXFxuJG9jLXRlYWwtOTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIEdyZWVuXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1ncmVlbi1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZWJmYmVlLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2QzZjlkOCxcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNiMmYyYmIsXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjOGNlOTlhLFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogIzY5ZGI3YyxcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICM1MWNmNjYsXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjNDBjMDU3LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogIzM3YjI0ZCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICMyZjllNDQsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjMmI4YTNlXFxcXG4pO1xcXFxuXFxcXG4kb2MtZ3JlZW4tMDogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTE6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi0yOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tMzogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTQ6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi01OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tNjogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWdyZWVuLTc6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1ncmVlbi04OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MtZ3JlZW4tOTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBMaW1lXFxcXG4vLyAgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXFxcXG5cXFxcbiRvYy1saW1lLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmNGZjZTMsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZTlmYWM4LFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2Q4ZjVhMixcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNjMGViNzUsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjYTllMzRiLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogIzk0ZDgyZCxcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICM4MmM5MWUsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjNzRiODE2LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogIzY2YTgwZixcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICM1Yzk0MGRcXFxcbik7XFxcXG5cXFxcbiRvYy1saW1lLTA6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtMTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MtbGltZS0yOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTM6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCIzXFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MtbGltZS01OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTY6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI2XFxcXFxcXCIpO1xcXFxuJG9jLWxpbWUtNzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MtbGltZS04OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1saW1lLTk6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcXFxcXCI5XFxcXFxcXCIpO1xcXFxuXFxcXG5cXFxcbi8vICBZZWxsb3dcXFxcbi8vICBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcXFxcblxcXFxuJG9jLXllbGxvdy1saXN0OiAoXFxcXG4gIFxcXFxcXFwiMFxcXFxcXFwiOiAjZmZmOWRiLFxcXFxuICBcXFxcXFxcIjFcXFxcXFxcIjogI2ZmZjNiZixcXFxcbiAgXFxcXFxcXCIyXFxcXFxcXCI6ICNmZmVjOTksXFxcXG4gIFxcXFxcXFwiM1xcXFxcXFwiOiAjZmZlMDY2LFxcXFxuICBcXFxcXFxcIjRcXFxcXFxcIjogI2ZmZDQzYixcXFxcbiAgXFxcXFxcXCI1XFxcXFxcXCI6ICNmY2M0MTksXFxcXG4gIFxcXFxcXFwiNlxcXFxcXFwiOiAjZmFiMDA1LFxcXFxuICBcXFxcXFxcIjdcXFxcXFxcIjogI2Y1OWYwMCxcXFxcbiAgXFxcXFxcXCI4XFxcXFxcXCI6ICNmMDhjMDAsXFxcXG4gIFxcXFxcXFwiOVxcXFxcXFwiOiAjZTY3NzAwXFxcXG4pO1xcXFxuXFxcXG4kb2MteWVsbG93LTA6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTE6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTI6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjJcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTM6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjNcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTQ6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjRcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTU6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjVcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTY6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjZcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTc6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjdcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTg6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjhcXFxcXFxcIik7XFxcXG4kb2MteWVsbG93LTk6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFxcXFxcIjlcXFxcXFxcIik7XFxcXG5cXFxcblxcXFxuLy8gIE9yYW5nZVxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2Mtb3JhbmdlLWxpc3Q6IChcXFxcbiAgXFxcXFxcXCIwXFxcXFxcXCI6ICNmZmY0ZTYsXFxcXG4gIFxcXFxcXFwiMVxcXFxcXFwiOiAjZmZlOGNjLFxcXFxuICBcXFxcXFxcIjJcXFxcXFxcIjogI2ZmZDhhOCxcXFxcbiAgXFxcXFxcXCIzXFxcXFxcXCI6ICNmZmMwNzgsXFxcXG4gIFxcXFxcXFwiNFxcXFxcXFwiOiAjZmZhOTRkLFxcXFxuICBcXFxcXFxcIjVcXFxcXFxcIjogI2ZmOTIyYixcXFxcbiAgXFxcXFxcXCI2XFxcXFxcXCI6ICNmZDdlMTQsXFxcXG4gIFxcXFxcXFwiN1xcXFxcXFwiOiAjZjc2NzA3LFxcXFxuICBcXFxcXFxcIjhcXFxcXFxcIjogI2U4NTkwYyxcXFxcbiAgXFxcXFxcXCI5XFxcXFxcXCI6ICNkOTQ4MGZcXFxcbik7XFxcXG5cXFxcbiRvYy1vcmFuZ2UtMDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMVxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiMlxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtMzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiM1xcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNVxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiNlxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtNzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiN1xcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtODogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiOFxcXFxcXFwiKTtcXFxcbiRvYy1vcmFuZ2UtOTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXFxcXFwiOVxcXFxcXFwiKTtcXFxcblxcXFxuXFxcXG4vLyAgQ29sb3IgbGlzdFxcXFxuLy8gIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxcXFxuXFxcXG4kb2MtY29sb3Itc3BlY3RydW06ICAgOTtcXFxcblxcXFxuJG9jLWNvbG9yLWxpc3Q6IChcXFxcbiAgJG9jLWdyYXktbGlzdDogICAgICBcXFxcXFxcImdyYXlcXFxcXFxcIixcXFxcbiAgJG9jLXJlZC1saXN0OiAgICAgIFxcXFxcXFwicmVkXFxcXFxcXCIsXFxcXG4gICRvYy1waW5rLWxpc3Q6ICAgICAgXFxcXFxcXCJwaW5rXFxcXFxcXCIsXFxcXG4gICRvYy1ncmFwZS1saXN0OiAgICAgIFxcXFxcXFwiZ3JhcGVcXFxcXFxcIixcXFxcbiAgJG9jLXZpb2xldC1saXN0OiAgICAgIFxcXFxcXFwidmlvbGV0XFxcXFxcXCIsXFxcXG4gICRvYy1pbmRpZ28tbGlzdDogICAgICBcXFxcXFxcImluZGlnb1xcXFxcXFwiLFxcXFxuICAkb2MtYmx1ZS1saXN0OiAgICAgIFxcXFxcXFwiYmx1ZVxcXFxcXFwiLFxcXFxuICAkb2MtY3lhbi1saXN0OiAgICAgIFxcXFxcXFwiY3lhblxcXFxcXFwiLFxcXFxuICAkb2MtdGVhbC1saXN0OiAgICAgIFxcXFxcXFwidGVhbFxcXFxcXFwiLFxcXFxuICAkb2MtZ3JlZW4tbGlzdDogICAgICBcXFxcXFxcImdyZWVuXFxcXFxcXCIsXFxcXG4gICRvYy1saW1lLWxpc3Q6ICAgICAgXFxcXFxcXCJsaW1lXFxcXFxcXCIsXFxcXG4gICRvYy15ZWxsb3ctbGlzdDogICAgICBcXFxcXFxcInllbGxvd1xcXFxcXFwiLFxcXFxuICAkb2Mtb3JhbmdlLWxpc3Q6ICAgICAgXFxcXFxcXCJvcmFuZ2VcXFxcXFxcIlxcXFxuKTtcXFxcblxcXCJdLFxcXCJzb3VyY2VSb290XFxcIjpcXFwiXFxcIn1dKTtcXG4vLyBFeHBvcnRzXFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9IChfX19DU1NfTE9BREVSX0VYUE9SVF9fXyk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwyTnFjeTVxY3lFdUwyNXZaR1ZmYlc5a2RXeGxjeTl3YjNOMFkzTnpMV3h2WVdSbGNpOWthWE4wTDJOcWN5NXFjejgvY25Wc1pWTmxkRnN4WFM1eWRXeGxjMXN3WFM1MWMyVmJNbDBoTGk5dWIyUmxYMjF2WkhWc1pYTXZjMkZ6Y3kxc2IyRmtaWEl2WkdsemRDOWphbk11YW5NaExpNHZMaTR2Wld4bGJXVnVkQzlJZVhCbGNteHBibXN1YzJOemN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3p0QlFVRkJPMEZCUXpoSU8wRkJRMnBDTzBGQlF6ZEhMRGhDUVVFNFFpeDFSMEZCTWtJc1EwRkJReXhuU0VGQmNVTTdRVUZETDBZN1FVRkRRU3h0UkVGQmJVUXNaMFJCUVdkRUxFZEJRVWNzYjBOQlFXOURMR3RDUVVGclFpeDNRa0ZCZDBJc2JVTkJRVzFETEhWQ1FVRjFRaXhwUkVGQmFVUXNhVUpCUVdsQ0xIVkRRVUYxUXl3eVEwRkJNa01zTWtKQlFUSkNMSEZDUVVGeFFpeEhRVUZITEdkR1FVRm5SaXhwUWtGQmFVSXNSMEZCUnl3MlJVRkJOa1VzYVVKQlFXbENMRzFDUVVGdFFpeHpRa0ZCYzBJc2MwSkJRWE5DTEhGQ1FVRnhRaXhuUTBGQlowTXNSMEZCUnl4M1EwRkJkME1zYVVKQlFXbENMR2xDUVVGcFFpeHJRMEZCYTBNc2NVTkJRWEZETEd0Q1FVRnJRaXhwUWtGQmFVSXNaME5CUVdkRExFZEJRVWNzZFVOQlFYVkRMSEZDUVVGeFFpdzBRa0ZCTkVJc2QwSkJRWGRDTEhGQ1FVRnhRaXhIUVVGSExIbERRVUY1UXl4dFFrRkJiVUlzTmtOQlFUWkRMSEZDUVVGeFFpeEhRVUZITEN0RlFVRXJSU3h0UWtGQmJVSXNSMEZCUnl3d1EwRkJNRU1zYTBKQlFXdENMRWRCUVVjc09FUkJRVGhFTEcxQ1FVRnRRaXhIUVVGSExHdEVRVUZyUkN4blFrRkJaMElzYVVKQlFXbENMRWRCUVVjc01rTkJRVEpETEcxQ1FVRnRRaXhIUVVGSExFOUJRVThzTkUxQlFUUk5MRmRCUVZjc1RVRkJUU3hMUVVGTExGVkJRVlVzVjBGQlZ5eFhRVUZYTEZkQlFWY3NWMEZCVnl4VlFVRlZMRmRCUVZjc1YwRkJWeXhYUVVGWExGZEJRVmNzUzBGQlN5eE5RVUZOTEZWQlFWVXNTMEZCU3l4TFFVRkxMRlZCUVZVc1ZVRkJWU3hYUVVGWExGZEJRVmNzVjBGQlZ5eFhRVUZYTEV0QlFVc3NTMEZCU3l4VlFVRlZMRlZCUVZVc1YwRkJWeXhYUVVGWExGVkJRVlVzVlVGQlZTeFhRVUZYTEV0QlFVc3NTMEZCU3l4WFFVRlhMRmRCUVZjc1YwRkJWeXhYUVVGWExFdEJRVXNzUzBGQlN5eFhRVUZYTEZsQlFWa3NWMEZCVnl4TFFVRkxMRXRCUVVzc1ZVRkJWU3hOUVVGTkxFdEJRVXNzVlVGQlZTeExRVUZMTEV0QlFVc3NWVUZCVlN4TFFVRkxMRXRCUVVzc1ZVRkJWU3hWUVVGVkxFdEJRVXNzUzBGQlN5eFZRVUZWTEdkRlFVRm5SU3gxUWtGQmRVSXNhME5CUVd0RExFbEJRVWtzWlVGQlpTeExRVUZMTEVkQlFVY3NjMFJCUVhORUxHRkJRV0VzZDBOQlFYZERMRWRCUVVjc2VVTkJRWGxETEc5RFFVRnZReXhyUWtGQmEwSXNkMEpCUVhkQ0xHMURRVUZ0UXl4MVFrRkJkVUlzSzBOQlFTdERMR2xDUVVGcFFpeDFRMEZCZFVNc01rTkJRVEpETERKQ1FVRXlRaXd5UmtGQk1rWXNNRUpCUVRCQ0xHMUNRVUZ0UWl4TFFVRkxMREJDUVVFd1FpeHRRa0ZCYlVJc2NVSkJRWEZDTEhkQ1FVRjNRaXgzUWtGQmQwSXNkVUpCUVhWQ0xHdERRVUZyUXl4TFFVRkxMR1ZCUVdVc2JVSkJRVzFDTEcxQ1FVRnRRaXh2UTBGQmIwTXNkVU5CUVhWRExITkNRVUZ6UWl4dFFrRkJiVUlzYTBOQlFXdERMRXRCUVVzc1kwRkJZeXgxUWtGQmRVSXNPRUpCUVRoQ0xEQkNRVUV3UWl4MVFrRkJkVUlzUzBGQlN5eGpRVUZqTEhkQ1FVRjNRaXdyUTBGQkswTXNkVUpCUVhWQ0xDdERRVUVyUXl4NVFrRkJlVUlzVDBGQlR5eExRVUZMTEdWQlFXVXNiMEpCUVc5Q0xFdEJRVXNzY1VOQlFYRkRMSFZDUVVGMVFpeExRVUZMTEhWQ1FVRjFRaXhyUWtGQmEwSXNiVUpCUVcxQ0xFdEJRVXNzYTBKQlFXdENMSEZDUVVGeFFpeExRVUZMTEVkQlFVY3NhMHhCUVd0TUxEWkNRVUUyUWl3MFVVRkJORkVzT0VOQlFUaERMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMREJSUVVFd1VTdzBRMEZCTkVNc01FTkJRVEJETERCRFFVRXdReXd3UTBGQk1FTXNNRU5CUVRCRExEQkRRVUV3UXl3d1EwRkJNRU1zTUVOQlFUQkRMREJEUVVFd1F5d3dRMEZCTUVNc05GRkJRVFJSTERoRFFVRTRReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXc0VVVGQk9GRXNaMFJCUVdkRUxEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExHZFNRVUZuVWl4clJFRkJhMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjFKQlFXZFNMR3RFUVVGclJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDdzBVVUZCTkZFc09FTkJRVGhETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSUlFVRTBVU3c0UTBGQk9FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORkZCUVRSUkxEaERRVUU0UXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3NFVVRkJPRkVzWjBSQlFXZEVMRGhEUVVFNFF5dzRRMEZCT0VNc09FTkJRVGhETERoRFFVRTRReXc0UTBGQk9FTXNPRU5CUVRoRExEaERRVUU0UXl3NFEwRkJPRU1zT0VOQlFUaERMRFJSUVVFMFVTdzRRMEZCT0VNc05FTkJRVFJETERSRFFVRTBReXcwUTBGQk5FTXNORU5CUVRSRExEUkRRVUUwUXl3MFEwRkJORU1zTkVOQlFUUkRMRFJEUVVFMFF5dzBRMEZCTkVNc1oxSkJRV2RTTEd0RVFVRnJSQ3huUkVGQlowUXNaMFJCUVdkRUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huVWtGQloxSXNhMFJCUVd0RUxHZEVRVUZuUkN4blJFRkJaMFFzWjBSQlFXZEVMR2RFUVVGblJDeG5SRUZCWjBRc1owUkJRV2RFTEdkRVFVRm5SQ3huUkVGQlowUXNaMFJCUVdkRUxIbEdRVUY1Uml4MVpFRkJkV1FzY1VKQlFYRkNPMEZCUXpVMVlqdEJRVU5CTEdsRlFVRmxMSFZDUVVGMVFpeEZRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyVnNaVzFsYm5RdlNIbHdaWEpzYVc1ckxuTmpjM00vWVRNeFlTSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2THlCSmJYQnZjblJ6WEc1cGJYQnZjblFnWDE5ZlExTlRYMHhQUVVSRlVsOUJVRWxmVTA5VlVrTkZUVUZRWDBsTlVFOVNWRjlmWHlCbWNtOXRJRndpTGk0dmNHRmphMkZuWlhNdlpYaGpZV3hwWkhKaGR5OXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZjMjkxY21ObFRXRndjeTVxYzF3aU8xeHVhVzF3YjNKMElGOWZYME5UVTE5TVQwRkVSVkpmUVZCSlgwbE5VRTlTVkY5Zlh5Qm1jbTl0SUZ3aUxpNHZjR0ZqYTJGblpYTXZaWGhqWVd4cFpISmhkeTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDNKMWJuUnBiV1V2WVhCcExtcHpYQ0k3WEc1MllYSWdYMTlmUTFOVFgweFBRVVJGVWw5RldGQlBVbFJmWDE4Z1BTQmZYMTlEVTFOZlRFOUJSRVZTWDBGUVNWOUpUVkJQVWxSZlgxOG9YMTlmUTFOVFgweFBRVVJGVWw5QlVFbGZVMDlWVWtORlRVRlFYMGxOVUU5U1ZGOWZYeWs3WEc0dkx5Qk5iMlIxYkdWY2JsOWZYME5UVTE5TVQwRkVSVkpmUlZoUVQxSlVYMTlmTG5CMWMyZ29XMjF2WkhWc1pTNXBaQ3dnWENJNlpYaHdiM0owSUh0Y1hHNGdJSFJvWlcxbFJtbHNkR1Z5T2lCcGJuWmxjblFvT1RNbEtTQm9kV1V0Y205MFlYUmxLREU0TUdSbFp5azdYRnh1ZlZ4Y2JseGNiaTVsZUdOaGJHbGtjbUYzTFdoNWNHVnliR2x1YTBOdmJuUmhhVzVsY2lCN1hGeHVJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeGNiaUFnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y1hHNGdJR3AxYzNScFpua3RZMjl1ZEdWdWREb2djM0JoWTJVdFltVjBkMlZsYmp0Y1hHNGdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjWEc0Z0lHSnZlQzF6YUdGa2IzYzZJREJ3ZUNBeWNIZ2dOSEI0SURBZ2NtZGlZU2d3TENBd0xDQXdMQ0F3TGpNcE8xeGNiaUFnZWkxcGJtUmxlRG9nTVRBd08xeGNiaUFnWW1GamEyZHliM1Z1WkRvZ2RtRnlLQzB0YVhOc1lXNWtMV0puTFdOdmJHOXlLVHRjWEc0Z0lHSnZjbVJsY2kxeVlXUnBkWE02SUhaaGNpZ3RMV0p2Y21SbGNpMXlZV1JwZFhNdGJXUXBPMXhjYmlBZ1ltOTRMWE5wZW1sdVp6b2dZbTl5WkdWeUxXSnZlRHRjWEc0Z0lHMXBiaTFvWldsbmFIUTZJRFF5Y0hnN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0xXaDVjR1Z5YkdsdWEwTnZiblJoYVc1bGNpMXBibkIxZEN4Y1hHNHVaWGhqWVd4cFpISmhkeTFvZVhCbGNteHBibXREYjI1MFlXbHVaWElnWW5WMGRHOXVJSHRjWEc0Z0lIb3RhVzVrWlhnNklERXdNRHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGN0YUhsd1pYSnNhVzVyUTI5dWRHRnBibVZ5TFdsdWNIVjBMQ0F1WlhoallXeHBaSEpoZHkxb2VYQmxjbXhwYm10RGIyNTBZV2x1WlhJdGJHbHVheUI3WEZ4dUlDQm9aV2xuYUhRNklESTBjSGc3WEZ4dUlDQndZV1JrYVc1bk9pQXdJRGh3ZUR0Y1hHNGdJR3hwYm1VdGFHVnBaMmgwT2lBeU5IQjRPMXhjYmlBZ1ptOXVkQzF6YVhwbE9pQXdMamx5WlcwN1hGeHVJQ0JtYjI1MExYZGxhV2RvZERvZ05UQXdPMXhjYmlBZ1ptOXVkQzFtWVcxcGJIazZJSFpoY2lndExYVnBMV1p2Ym5RcE8xeGNibjFjWEc0dVpYaGpZV3hwWkhKaGR5MW9lWEJsY214cGJtdERiMjUwWVdsdVpYSXRhVzV3ZFhRZ2UxeGNiaUFnZDJsa2RHZzZJREU0Y21WdE8xeGNiaUFnWW05eVpHVnlPaUJ1YjI1bE8xeGNiaUFnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZEhKaGJuTndZWEpsYm5RN1hGeHVJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGRHVjRkQzF3Y21sdFlYSjVMV052Ykc5eUtUdGNYRzRnSUc5MWRHeHBibVU2SUc1dmJtVTdYRnh1SUNCaWIzSmtaWEk2SUc1dmJtVTdYRnh1SUNCaWIzZ3RjMmhoWkc5M09pQnViMjVsSUNGcGJYQnZjblJoYm5RN1hGeHVmVnhjYmk1bGVHTmhiR2xrY21GM0xXaDVjR1Z5YkdsdWEwTnZiblJoYVc1bGNpMXNhVzVySUh0Y1hHNGdJRzkyWlhKbWJHOTNPaUJvYVdSa1pXNDdYRnh1SUNCMFpYaDBMVzkyWlhKbWJHOTNPaUJsYkd4cGNITnBjenRjWEc0Z0lIZG9hWFJsTFhOd1lXTmxPaUJ1YjNkeVlYQTdYRnh1SUNCdFlYZ3RkMmxrZEdnNklERTFjbVZ0TzF4Y2JuMWNYRzR1WlhoallXeHBaSEpoZHkxb2VYQmxjbXhwYm10RGIyNTBZV2x1WlhJZ1luVjBkRzl1SUh0Y1hHNGdJR052Ykc5eU9pQWpNakk0WW1VMk8xeGNiaUFnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZEhKaGJuTndZWEpsYm5RZ0lXbHRjRzl5ZEdGdWREdGNYRzRnSUdadmJuUXRkMlZwWjJoME9pQTFNREE3WEZ4dWZWeGNiaTVsZUdOaGJHbGtjbUYzTFdoNWNHVnliR2x1YTBOdmJuUmhhVzVsY2lCaWRYUjBiMjR1WlhoallXeHBaSEpoZHkxb2VYQmxjbXhwYm10RGIyNTBZV2x1WlhJdExYSmxiVzkyWlNCN1hGeHVJQ0JqYjJ4dmNqb2dJMk01TW1FeVlUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY3RhSGx3WlhKc2FXNXJRMjl1ZEdGcGJtVnlJQzVrTFc1dmJtVWdlMXhjYmlBZ1pHbHpjR3hoZVRvZ2JtOXVaVHRjWEc1OVhGeHVMbVY0WTJGc2FXUnlZWGN0YUhsd1pYSnNhVzVyUTI5dWRHRnBibVZ5TFMxeVpXMXZkbVVnTGxSdmIyeEpZMjl1WDE5cFkyOXVJSE4yWnlCN1hGeHVJQ0JqYjJ4dmNqb2dJMlpoTlRJMU1qdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY3RhSGx3WlhKc2FXNXJRMjl1ZEdGcGJtVnlJQzVVYjI5c1NXTnZibDlmYVdOdmJpQjdYRnh1SUNCM2FXUjBhRG9nTW5KbGJUdGNYRzRnSUdobGFXZG9kRG9nTW5KbGJUdGNYRzU5WEZ4dUxtVjRZMkZzYVdSeVlYY3RhSGx3WlhKc2FXNXJRMjl1ZEdGcGJtVnlYMTlpZFhSMGIyNXpJSHRjWEc0Z0lHWnNaWGc2SURBZ01DQmhkWFJ2TzF4Y2JuMWNJaXdnWENKY0lpeDdYQ0oyWlhKemFXOXVYQ0k2TXl4Y0luTnZkWEpqWlhOY0lqcGJYQ0ozWldKd1lXTnJPaTh2TGk4dUxpOHVMaTlqYzNNdmRtRnlhV0ZpYkdWekxtMXZaSFZzWlM1elkzTnpYQ0lzWENKM1pXSndZV05yT2k4dkxpOHVMaTh1TGk5bGJHVnRaVzUwTDBoNWNHVnliR2x1YXk1elkzTnpYQ0lzWENKM1pXSndZV05yT2k4dkxpOHVMaTh1TGk4dUxpOXViMlJsWDIxdlpIVnNaWE12YjNCbGJpMWpiMnh2Y2k5dmNHVnVMV052Ykc5eUxuTmpjM05jSWwwc1hDSnVZVzFsYzF3aU9sdGRMRndpYldGd2NHbHVaM05jSWpwY0lrRkJWVUU3UlVGRFJTd3lRMEZCUVR0QlExUkdPenRCUVVGQk8wVkJRMFVzWVVGQlFUdEZRVU5CTEcxQ1FVRkJPMFZCUTBFc09FSkJRVUU3UlVGRFFTeHJRa0ZCUVR0RlFVTkJMRFJEUVVGQk8wVkJRMEVzV1VGQlFUdEZRVU5CTEd0RFFVRkJPMFZCUTBFc2MwTkJRVUU3UlVGRFFTeHpRa0ZCUVR0RlFVVkJMR2RDUVVGQk8wRkJSVVk3UVVGQlJUczdSVUZGUlN4WlFVRkJPMEZCUlVvN1FVRkRSVHRGUVVWRkxGbEJRVUU3UlVGRFFTeGpRVUZCTzBWQlEwRXNhVUpCUVVFN1JVRkRRU3hwUWtGQlFUdEZRVU5CTEdkQ1FVRkJPMFZCUTBFc01rSkJRVUU3UVVGQlNqdEJRVWRGTzBWQlEwVXNXVUZCUVR0RlFVTkJMRmxCUVVFN1JVRkRRU3cyUWtGQlFUdEZRVU5CTEdkRFFVRkJPMFZCUlVFc1lVRkJRVHRGUVVOQkxGbEJRVUU3UlVGRFFTd3lRa0ZCUVR0QlFVWktPMEZCUzBVN1JVRkRSU3huUWtGQlFUdEZRVU5CTEhWQ1FVRkJPMFZCUTBFc2JVSkJRVUU3UlVGRFFTeG5Ra0ZCUVR0QlFVaEtPMEZCVFVVN1JVRkRSU3hqUXpSS1VUdEZSRE5LVWl4M1EwRkJRVHRGUVVOQkxHZENRVUZCTzBGQlNrbzdRVUZMU1R0RlFVTkZMR05EWlVzN1FVUnNRbGc3UVVGUFJUdEZRVU5GTEdGQlFVRTdRVUZNU2p0QlFWRkZPMFZCUTBVc1kwTkhUenRCUkZSWU8wRkJVMFU3UlVGRFJTeFhRVUZCTzBWQlEwRXNXVUZCUVR0QlFWQktPMEZCVlVVN1JVRkRSU3hqUVVGQk8wRkJVa3BjSWl4Y0luTnZkWEpqWlhORGIyNTBaVzUwWENJNlcxd2lRR2x0Y0c5eWRDQmNYRndpYjNCbGJpMWpiMnh2Y2k5dmNHVnVMV052Ykc5eUxuTmpjM05jWEZ3aU8xeGNibHhjYmtCdGFYaHBiaUJwYzAxdlltbHNaU2dwSUh0Y1hHNGdJRUJoZEMxeWIyOTBJQzVsZUdOaGJHbGtjbUYzTFMxdGIySnBiR1VqZXlaOUlIdGNYRzRnSUNBZ1FHTnZiblJsYm5RN1hGeHVJQ0I5WEZ4dWZWeGNibHhjYmlSMGFHVnRaUzFtYVd4MFpYSTZJRnhjWENKcGJuWmxjblFvT1RNbEtTQm9kV1V0Y205MFlYUmxLREU0TUdSbFp5bGNYRndpTzF4Y2JseGNianBsZUhCdmNuUWdlMXhjYmlBZ2RHaGxiV1ZHYVd4MFpYSTZJSFZ1Y1hWdmRHVW9KSFJvWlcxbExXWnBiSFJsY2lrN1hGeHVmVnhjYmx3aUxGd2lRR2x0Y0c5eWRDQmNYRndpTGk0dlkzTnpMM1poY21saFlteGxjeTV0YjJSMWJHVmNYRndpTzF4Y2JseGNiaTVsZUdOaGJHbGtjbUYzTFdoNWNHVnliR2x1YTBOdmJuUmhhVzVsY2lCN1hGeHVJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeGNiaUFnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y1hHNGdJR3AxYzNScFpua3RZMjl1ZEdWdWREb2djM0JoWTJVdFltVjBkMlZsYmp0Y1hHNGdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjWEc0Z0lHSnZlQzF6YUdGa2IzYzZJREJ3ZUNBeWNIZ2dOSEI0SURBZ2NtZGlLREFnTUNBd0lDOGdNekFsS1R0Y1hHNGdJSG90YVc1a1pYZzZJREV3TUR0Y1hHNGdJR0poWTJ0bmNtOTFibVE2SUhaaGNpZ3RMV2x6YkdGdVpDMWlaeTFqYjJ4dmNpazdYRnh1SUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUIyWVhJb0xTMWliM0prWlhJdGNtRmthWFZ6TFcxa0tUdGNYRzRnSUdKdmVDMXphWHBwYm1jNklHSnZjbVJsY2kxaWIzZzdYRnh1SUNBdkx5QjBieUJoWTJOdmRXNTBJR1p2Y2lCTVV5QmtkV1VnZEc4Z2NtVnVaR1Z5YVc1bklHbGpiMjV6SUdGbWRHVnlJRzVsZHlCc2FXNXJJR055WldGMFpXUmNYRzRnSUcxcGJpMW9aV2xuYUhRNklEUXljSGc3WEZ4dVhGeHVJQ0FtTFdsdWNIVjBMRnhjYmlBZ1luVjBkRzl1SUh0Y1hHNGdJQ0FnZWkxcGJtUmxlRG9nTVRBd08xeGNiaUFnZlZ4Y2JseGNiaUFnSmkxcGJuQjFkQ3hjWEc0Z0lDWXRiR2x1YXlCN1hGeHVJQ0FnSUdobGFXZG9kRG9nTWpSd2VEdGNYRzRnSUNBZ2NHRmtaR2x1WnpvZ01DQTRjSGc3WEZ4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lBeU5IQjRPMXhjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJREF1T1hKbGJUdGNYRzRnSUNBZ1ptOXVkQzEzWldsbmFIUTZJRFV3TUR0Y1hHNGdJQ0FnWm05dWRDMW1ZVzFwYkhrNklIWmhjaWd0TFhWcExXWnZiblFwTzF4Y2JpQWdmVnhjYmx4Y2JpQWdKaTFwYm5CMWRDQjdYRnh1SUNBZ0lIZHBaSFJvT2lBeE9ISmxiVHRjWEc0Z0lDQWdZbTl5WkdWeU9pQnViMjVsTzF4Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIwY21GdWMzQmhjbVZ1ZER0Y1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExYUmxlSFF0Y0hKcGJXRnllUzFqYjJ4dmNpazdYRnh1WEZ4dUlDQWdJRzkxZEd4cGJtVTZJRzV2Ym1VN1hGeHVJQ0FnSUdKdmNtUmxjam9nYm05dVpUdGNYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeGNiaUFnZlZ4Y2JseGNiaUFnSmkxc2FXNXJJSHRjWEc0Z0lDQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNYRzRnSUNBZ2RHVjRkQzF2ZG1WeVpteHZkem9nWld4c2FYQnphWE03WEZ4dUlDQWdJSGRvYVhSbExYTndZV05sT2lCdWIzZHlZWEE3WEZ4dUlDQWdJRzFoZUMxM2FXUjBhRG9nTVRWeVpXMDdYRnh1SUNCOVhGeHVYRnh1SUNCaWRYUjBiMjRnZTF4Y2JpQWdJQ0JqYjJ4dmNqb2dKRzlqTFdKc2RXVXROanRjWEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkSEpoYm5Od1lYSmxiblFnSVdsdGNHOXlkR0Z1ZER0Y1hHNGdJQ0FnWm05dWRDMTNaV2xuYUhRNklEVXdNRHRjWEc0Z0lDQWdKaTVsZUdOaGJHbGtjbUYzTFdoNWNHVnliR2x1YTBOdmJuUmhhVzVsY2kwdGNtVnRiM1psSUh0Y1hHNGdJQ0FnSUNCamIyeHZjam9nSkc5akxYSmxaQzA1TzF4Y2JpQWdJQ0I5WEZ4dUlDQjlYRnh1WEZ4dUlDQXVaQzF1YjI1bElIdGNYRzRnSUNBZ1pHbHpjR3hoZVRvZ2JtOXVaVHRjWEc0Z0lIMWNYRzVjWEc0Z0lDWXRMWEpsYlc5MlpTQXVWRzl2YkVsamIyNWZYMmxqYjI0Z2MzWm5JSHRjWEc0Z0lDQWdZMjlzYjNJNklDUnZZeTF5WldRdE5qdGNYRzRnSUgxY1hHNWNYRzRnSUM1VWIyOXNTV052Ymw5ZmFXTnZiaUI3WEZ4dUlDQWdJSGRwWkhSb09pQXljbVZ0TzF4Y2JpQWdJQ0JvWldsbmFIUTZJREp5WlcwN1hGeHVJQ0I5WEZ4dVhGeHVJQ0FtWDE5aWRYUjBiMjV6SUh0Y1hHNGdJQ0FnWm14bGVEb2dNQ0F3SUdGMWRHODdYRnh1SUNCOVhGeHVmVnhjYmx3aUxGd2lMeTljWEc0dkwxeGNiaTh2SUNEd25aZVdJUENkbDZJZzhKMlhueUR3blplaUlQQ2RsNlZjWEc0dkx5QWdkaUF4TGprdU1WeGNiaTh2WEZ4dUx5OGdJT0tVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdlS1VnZUtVZ2VLVWdWeGNibHhjYmx4Y2JpOHZJQ0JIWlc1bGNtRnNYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxM2FHbDBaVG9nSUNBZ0lDQWdJQ0FqWm1abVptWm1PMXhjYmlSdll5MWliR0ZqYXpvZ0lDQWdJQ0FnSUNBak1EQXdNREF3TzF4Y2JseGNibHhjYmk4dklDQkhjbUY1WEZ4dUx5OGdJT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdGeGNibHhjYmlSdll5MW5jbUY1TFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlk0WmpsbVlTeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyWXhaak5tTlN4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJVNVpXTmxaaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMlJsWlRKbE5peGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0kyTmxaRFJrWVN4Y1hHNGdJRnhjWENJMVhGeGNJam9nSTJGa1lqVmlaQ3hjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJemcyT0dVNU5peGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6UTVOVEExTnl4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpNME0yRTBNQ3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJekl4TWpVeU9WeGNiaWs3WEZ4dVhGeHVKRzlqTFdkeVlYa3RNRG9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MW5jbUY1TFRFNklHMWhjQzFuWlhRb0pHOWpMV2R5WVhrdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10WjNKaGVTMHlPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRjVMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXZHlZWGt0TXpvZ2JXRndMV2RsZENna2IyTXRaM0poZVMxc2FYTjBMQ0JjWEZ3aU0xeGNYQ0lwTzF4Y2JpUnZZeTFuY21GNUxUUTZJRzFoY0MxblpYUW9KRzlqTFdkeVlYa3RiR2x6ZEN3Z1hGeGNJalJjWEZ3aUtUdGNYRzRrYjJNdFozSmhlUzAxT2lCdFlYQXRaMlYwS0NSdll5MW5jbUY1TFd4cGMzUXNJRnhjWENJMVhGeGNJaWs3WEZ4dUpHOWpMV2R5WVhrdE5qb2diV0Z3TFdkbGRDZ2tiMk10WjNKaGVTMXNhWE4wTENCY1hGd2lObHhjWENJcE8xeGNiaVJ2WXkxbmNtRjVMVGM2SUcxaGNDMW5aWFFvSkc5akxXZHlZWGt0YkdsemRDd2dYRnhjSWpkY1hGd2lLVHRjWEc0a2IyTXRaM0poZVMwNE9pQnRZWEF0WjJWMEtDUnZZeTFuY21GNUxXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFdkeVlYa3RPVG9nYldGd0xXZGxkQ2drYjJNdFozSmhlUzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCU1pXUmNYRzR2THlBZzRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBWEZ4dVhGeHVKRzlqTFhKbFpDMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObVptWTFaalVzWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05tWm1VelpUTXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTm1abU01WXprc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNObVptRTRZVGdzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ05tWmpnM09EY3NYRnh1SUNCY1hGd2lOVnhjWENJNklDTm1aalppTm1Jc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNObVlUVXlOVElzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ05tTURObE0yVXNYRnh1SUNCY1hGd2lPRnhjWENJNklDTmxNRE14TXpFc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNOak9USmhNbUZjWEc0cE8xeGNibHhjYmlSdll5MXlaV1F0TURvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMWEpsWkMweE9pQnRZWEF0WjJWMEtDUnZZeTF5WldRdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10Y21Wa0xUSTZJRzFoY0MxblpYUW9KRzlqTFhKbFpDMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxeVpXUXRNem9nYldGd0xXZGxkQ2drYjJNdGNtVmtMV3hwYzNRc0lGeGNYQ0l6WEZ4Y0lpazdYRnh1Skc5akxYSmxaQzAwT2lCdFlYQXRaMlYwS0NSdll5MXlaV1F0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRjbVZrTFRVNklHMWhjQzFuWlhRb0pHOWpMWEpsWkMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTF5WldRdE5qb2diV0Z3TFdkbGRDZ2tiMk10Y21Wa0xXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFhKbFpDMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxeVpXUXRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdGNtVmtMVGc2SUcxaGNDMW5aWFFvSkc5akxYSmxaQzFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MXlaV1F0T1RvZ2JXRndMV2RsZENna2IyTXRjbVZrTFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lGQnBibXRjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxYQnBibXN0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpabVptTUdZMkxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalptWmtaV1ZpTEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWm1Oak1tUTNMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpabUZoTW1NeExGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBalpqYzRNMkZqTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqWmpBMk5UazFMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpaVFkwT1Rnd0xGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBalpEWXpNelpqTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqWXpJeU5UVmpMRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpZVFl4WlRSa1hGeHVLVHRjWEc1Y1hHNGtiMk10Y0dsdWF5MHdPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxYQnBibXN0TVRvZ2JXRndMV2RsZENna2IyTXRjR2x1YXkxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTF3YVc1ckxUSTZJRzFoY0MxblpYUW9KRzlqTFhCcGJtc3RiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGNHbHVheTB6T2lCdFlYQXRaMlYwS0NSdll5MXdhVzVyTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMWEJwYm1zdE5Eb2diV0Z3TFdkbGRDZ2tiMk10Y0dsdWF5MXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxd2FXNXJMVFU2SUcxaGNDMW5aWFFvSkc5akxYQnBibXN0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRjR2x1YXkwMk9pQnRZWEF0WjJWMEtDUnZZeTF3YVc1ckxXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFhCcGJtc3ROem9nYldGd0xXZGxkQ2drYjJNdGNHbHVheTFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MXdhVzVyTFRnNklHMWhjQzFuWlhRb0pHOWpMWEJwYm1zdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10Y0dsdWF5MDVPaUJ0WVhBdFoyVjBLQ1J2WXkxd2FXNXJMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUVkeVlYQmxYRnh1THk4Z0lPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ0Z4Y2JseGNiaVJ2WXkxbmNtRndaUzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTm1PR1l3Wm1Nc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNObU0yUTVabUVzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05sWldKbFptRXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTmxOVGs1Wmpjc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNOa1lUYzNaaklzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ05qWXpWa1pUZ3NYRnh1SUNCY1hGd2lObHhjWENJNklDTmlaVFJpWkdJc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNOaFpUTmxZemtzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ001WXpNMllqVXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTTROakpsT1dOY1hHNHBPMXhjYmx4Y2JpUnZZeTFuY21Gd1pTMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMweE9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lNVnhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzB5T2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMHpPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTTF4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMwME9pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzAxT2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMDJPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpTmx4Y1hDSXBPMXhjYmlSdll5MW5jbUZ3WlMwM09pQnRZWEF0WjJWMEtDUnZZeTFuY21Gd1pTMXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxbmNtRndaUzA0T2lCdFlYQXRaMlYwS0NSdll5MW5jbUZ3WlMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFuY21Gd1pTMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxbmNtRndaUzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCV2FXOXNaWFJjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxYWnBiMnhsZEMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05tTTJZd1ptWXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTmxOV1JpWm1Zc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNOa01HSm1abVlzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ05pTVRrM1ptTXNYRnh1SUNCY1hGd2lORnhjWENJNklDTTVOemMxWm1Fc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNNNE5EVmxaamNzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ00zT1RVd1pqSXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTTNNRFE0WlRnc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNMk56UXhaRGtzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ00xWmpOa1l6UmNYRzRwTzF4Y2JseGNiaVJ2WXkxMmFXOXNaWFF0TURvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSXdYRnhjSWlrN1hGeHVKRzlqTFhacGIyeGxkQzB4T2lCdFlYQXRaMlYwS0NSdll5MTJhVzlzWlhRdGJHbHpkQ3dnWEZ4Y0lqRmNYRndpS1R0Y1hHNGtiMk10ZG1sdmJHVjBMVEk2SUcxaGNDMW5aWFFvSkc5akxYWnBiMnhsZEMxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTEyYVc5c1pYUXRNem9nYldGd0xXZGxkQ2drYjJNdGRtbHZiR1YwTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMWFpwYjJ4bGRDMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxMmFXOXNaWFF0YkdsemRDd2dYRnhjSWpSY1hGd2lLVHRjWEc0a2IyTXRkbWx2YkdWMExUVTZJRzFoY0MxblpYUW9KRzlqTFhacGIyeGxkQzFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MTJhVzlzWlhRdE5qb2diV0Z3TFdkbGRDZ2tiMk10ZG1sdmJHVjBMV3hwYzNRc0lGeGNYQ0kyWEZ4Y0lpazdYRnh1Skc5akxYWnBiMnhsZEMwM09pQnRZWEF0WjJWMEtDUnZZeTEyYVc5c1pYUXRiR2x6ZEN3Z1hGeGNJamRjWEZ3aUtUdGNYRzRrYjJNdGRtbHZiR1YwTFRnNklHMWhjQzFuWlhRb0pHOWpMWFpwYjJ4bGRDMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxMmFXOXNaWFF0T1RvZ2JXRndMV2RsZENna2IyTXRkbWx2YkdWMExXeHBjM1FzSUZ4Y1hDSTVYRnhjSWlrN1hGeHVYRnh1WEZ4dUx5OGdJRWx1WkdsbmIxeGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10YVc1a2FXZHZMV3hwYzNRNklDaGNYRzRnSUZ4Y1hDSXdYRnhjSWpvZ0kyVmtaakptWml4Y1hHNGdJRnhjWENJeFhGeGNJam9nSTJSaVpUUm1aaXhjWEc0Z0lGeGNYQ0l5WEZ4Y0lqb2dJMkpoWXpobVppeGNYRzRnSUZ4Y1hDSXpYRnhjSWpvZ0l6a3hZVGRtWml4Y1hHNGdJRnhjWENJMFhGeGNJam9nSXpjME9HWm1ZeXhjWEc0Z0lGeGNYQ0kxWEZ4Y0lqb2dJelZqTjJObVlTeGNYRzRnSUZ4Y1hDSTJYRnhjSWpvZ0l6UmpObVZtTlN4Y1hHNGdJRnhjWENJM1hGeGNJam9nSXpReU5qTmxZaXhjWEc0Z0lGeGNYQ0k0WEZ4Y0lqb2dJek5pTldKa1lpeGNYRzRnSUZ4Y1hDSTVYRnhjSWpvZ0l6TTJOR1pqTjF4Y2JpazdYRnh1WEZ4dUpHOWpMV2x1WkdsbmJ5MHdPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRhVzVrYVdkdkxURTZJRzFoY0MxblpYUW9KRzlqTFdsdVpHbG5ieTFzYVhOMExDQmNYRndpTVZ4Y1hDSXBPMXhjYmlSdll5MXBibVJwWjI4dE1qb2diV0Z3TFdkbGRDZ2tiMk10YVc1a2FXZHZMV3hwYzNRc0lGeGNYQ0l5WEZ4Y0lpazdYRnh1Skc5akxXbHVaR2xuYnkwek9pQnRZWEF0WjJWMEtDUnZZeTFwYm1ScFoyOHRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdGFXNWthV2R2TFRRNklHMWhjQzFuWlhRb0pHOWpMV2x1WkdsbmJ5MXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxcGJtUnBaMjh0TlRvZ2JXRndMV2RsZENna2IyTXRhVzVrYVdkdkxXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFdsdVpHbG5ieTAyT2lCdFlYQXRaMlYwS0NSdll5MXBibVJwWjI4dGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10YVc1a2FXZHZMVGM2SUcxaGNDMW5aWFFvSkc5akxXbHVaR2xuYnkxc2FYTjBMQ0JjWEZ3aU4xeGNYQ0lwTzF4Y2JpUnZZeTFwYm1ScFoyOHRPRG9nYldGd0xXZGxkQ2drYjJNdGFXNWthV2R2TFd4cGMzUXNJRnhjWENJNFhGeGNJaWs3WEZ4dUpHOWpMV2x1WkdsbmJ5MDVPaUJ0WVhBdFoyVjBLQ1J2WXkxcGJtUnBaMjh0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1FteDFaVnhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdFlteDFaUzFzYVhOME9pQW9YRnh1SUNCY1hGd2lNRnhjWENJNklDTmxOMlkxWm1Zc1hGeHVJQ0JjWEZ3aU1WeGNYQ0k2SUNOa01HVmlabVlzWEZ4dUlDQmNYRndpTWx4Y1hDSTZJQ05oTldRNFptWXNYRnh1SUNCY1hGd2lNMXhjWENJNklDTTNOR013Wm1Nc1hGeHVJQ0JjWEZ3aU5GeGNYQ0k2SUNNMFpHRmlaamNzWEZ4dUlDQmNYRndpTlZ4Y1hDSTZJQ016TXpsaFpqQXNYRnh1SUNCY1hGd2lObHhjWENJNklDTXlNamhpWlRZc1hGeHVJQ0JjWEZ3aU4xeGNYQ0k2SUNNeFl6ZGxaRFlzWEZ4dUlDQmNYRndpT0Z4Y1hDSTZJQ014T1RjeFl6SXNYRnh1SUNCY1hGd2lPVnhjWENJNklDTXhPRFkwWVdKY1hHNHBPMXhjYmx4Y2JpUnZZeTFpYkhWbExUQTZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJakJjWEZ3aUtUdGNYRzRrYjJNdFlteDFaUzB4T2lCdFlYQXRaMlYwS0NSdll5MWliSFZsTFd4cGMzUXNJRnhjWENJeFhGeGNJaWs3WEZ4dUpHOWpMV0pzZFdVdE1qb2diV0Z3TFdkbGRDZ2tiMk10WW14MVpTMXNhWE4wTENCY1hGd2lNbHhjWENJcE8xeGNiaVJ2WXkxaWJIVmxMVE02SUcxaGNDMW5aWFFvSkc5akxXSnNkV1V0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRZbXgxWlMwME9pQnRZWEF0WjJWMEtDUnZZeTFpYkhWbExXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFdKc2RXVXROVG9nYldGd0xXZGxkQ2drYjJNdFlteDFaUzFzYVhOMExDQmNYRndpTlZ4Y1hDSXBPMXhjYmlSdll5MWliSFZsTFRZNklHMWhjQzFuWlhRb0pHOWpMV0pzZFdVdGJHbHpkQ3dnWEZ4Y0lqWmNYRndpS1R0Y1hHNGtiMk10WW14MVpTMDNPaUJ0WVhBdFoyVjBLQ1J2WXkxaWJIVmxMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXSnNkV1V0T0RvZ2JXRndMV2RsZENna2IyTXRZbXgxWlMxc2FYTjBMQ0JjWEZ3aU9GeGNYQ0lwTzF4Y2JpUnZZeTFpYkhWbExUazZJRzFoY0MxblpYUW9KRzlqTFdKc2RXVXRiR2x6ZEN3Z1hGeGNJamxjWEZ3aUtUdGNYRzVjWEc1Y1hHNHZMeUFnUTNsaGJseGNiaTh2SUNEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSUJjWEc1Y1hHNGtiMk10WTNsaGJpMXNhWE4wT2lBb1hGeHVJQ0JjWEZ3aU1GeGNYQ0k2SUNObE0yWmhabU1zWEZ4dUlDQmNYRndpTVZ4Y1hDSTZJQ05qTldZMlptRXNYRnh1SUNCY1hGd2lNbHhjWENJNklDTTVPV1U1WmpJc1hGeHVJQ0JjWEZ3aU0xeGNYQ0k2SUNNMk5tUTVaVGdzWEZ4dUlDQmNYRndpTkZ4Y1hDSTZJQ016WW1NNVpHSXNYRnh1SUNCY1hGd2lOVnhjWENJNklDTXlNbUk0WTJZc1hGeHVJQ0JjWEZ3aU5seGNYQ0k2SUNNeE5XRmhZbVlzWEZ4dUlDQmNYRndpTjF4Y1hDSTZJQ014TURrNFlXUXNYRnh1SUNCY1hGd2lPRnhjWENJNklDTXdZemcxT1Rrc1hGeHVJQ0JjWEZ3aU9WeGNYQ0k2SUNNd1lqY3lPRFZjWEc0cE8xeGNibHhjYmlSdll5MWplV0Z1TFRBNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10WTNsaGJpMHhPaUJ0WVhBdFoyVjBLQ1J2WXkxamVXRnVMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxXTjVZVzR0TWpvZ2JXRndMV2RsZENna2IyTXRZM2xoYmkxc2FYTjBMQ0JjWEZ3aU1seGNYQ0lwTzF4Y2JpUnZZeTFqZVdGdUxUTTZJRzFoY0MxblpYUW9KRzlqTFdONVlXNHRiR2x6ZEN3Z1hGeGNJak5jWEZ3aUtUdGNYRzRrYjJNdFkzbGhiaTAwT2lCdFlYQXRaMlYwS0NSdll5MWplV0Z1TFd4cGMzUXNJRnhjWENJMFhGeGNJaWs3WEZ4dUpHOWpMV041WVc0dE5Ub2diV0Z3TFdkbGRDZ2tiMk10WTNsaGJpMXNhWE4wTENCY1hGd2lOVnhjWENJcE8xeGNiaVJ2WXkxamVXRnVMVFk2SUcxaGNDMW5aWFFvSkc5akxXTjVZVzR0YkdsemRDd2dYRnhjSWpaY1hGd2lLVHRjWEc0a2IyTXRZM2xoYmkwM09pQnRZWEF0WjJWMEtDUnZZeTFqZVdGdUxXeHBjM1FzSUZ4Y1hDSTNYRnhjSWlrN1hGeHVKRzlqTFdONVlXNHRPRG9nYldGd0xXZGxkQ2drYjJNdFkzbGhiaTFzYVhOMExDQmNYRndpT0Z4Y1hDSXBPMXhjYmlSdll5MWplV0Z1TFRrNklHMWhjQzFuWlhRb0pHOWpMV041WVc0dGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdWR1ZoYkZ4Y2JpOHZJQ0RpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJQmNYRzVjWEc0a2IyTXRkR1ZoYkMxc2FYTjBPaUFvWEZ4dUlDQmNYRndpTUZ4Y1hDSTZJQ05sTm1aalpqVXNYRnh1SUNCY1hGd2lNVnhjWENJNklDTmpNMlpoWlRnc1hGeHVJQ0JjWEZ3aU1seGNYQ0k2SUNNNU5tWXlaRGNzWEZ4dUlDQmNYRndpTTF4Y1hDSTZJQ00yTTJVMlltVXNYRnh1SUNCY1hGd2lORnhjWENJNklDTXpPR1E1WVRrc1hGeHVJQ0JjWEZ3aU5WeGNYQ0k2SUNNeU1HTTVPVGNzWEZ4dUlDQmNYRndpTmx4Y1hDSTZJQ014TW1JNE9EWXNYRnh1SUNCY1hGd2lOMXhjWENJNklDTXdZMkUyTnpnc1hGeHVJQ0JjWEZ3aU9GeGNYQ0k2SUNNd09Ua3lOamdzWEZ4dUlDQmNYRndpT1Z4Y1hDSTZJQ013T0RkbU5XSmNYRzRwTzF4Y2JseGNiaVJ2WXkxMFpXRnNMVEE2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpCY1hGd2lLVHRjWEc0a2IyTXRkR1ZoYkMweE9pQnRZWEF0WjJWMEtDUnZZeTEwWldGc0xXeHBjM1FzSUZ4Y1hDSXhYRnhjSWlrN1hGeHVKRzlqTFhSbFlXd3RNam9nYldGd0xXZGxkQ2drYjJNdGRHVmhiQzFzYVhOMExDQmNYRndpTWx4Y1hDSXBPMXhjYmlSdll5MTBaV0ZzTFRNNklHMWhjQzFuWlhRb0pHOWpMWFJsWVd3dGJHbHpkQ3dnWEZ4Y0lqTmNYRndpS1R0Y1hHNGtiMk10ZEdWaGJDMDBPaUJ0WVhBdFoyVjBLQ1J2WXkxMFpXRnNMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxYUmxZV3d0TlRvZ2JXRndMV2RsZENna2IyTXRkR1ZoYkMxc2FYTjBMQ0JjWEZ3aU5WeGNYQ0lwTzF4Y2JpUnZZeTEwWldGc0xUWTZJRzFoY0MxblpYUW9KRzlqTFhSbFlXd3RiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGRHVmhiQzAzT2lCdFlYQXRaMlYwS0NSdll5MTBaV0ZzTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMWFJsWVd3dE9Eb2diV0Z3TFdkbGRDZ2tiMk10ZEdWaGJDMXNhWE4wTENCY1hGd2lPRnhjWENJcE8xeGNiaVJ2WXkxMFpXRnNMVGs2SUcxaGNDMW5aWFFvSkc5akxYUmxZV3d0YkdsemRDd2dYRnhjSWpsY1hGd2lLVHRjWEc1Y1hHNWNYRzR2THlBZ1IzSmxaVzVjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXZHlaV1Z1TFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlZpWm1KbFpTeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyUXpaamxrT0N4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJJeVpqSmlZaXhjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJemhqWlRrNVlTeGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0l6WTVaR0kzWXl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSXpVeFkyWTJOaXhjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJelF3WXpBMU55eGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0l6TTNZakkwWkN4Y1hHNGdJRnhjWENJNFhGeGNJam9nSXpKbU9XVTBOQ3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJekppT0dFelpWeGNiaWs3WEZ4dVhGeHVKRzlqTFdkeVpXVnVMVEE2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJd1hGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxURTZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRJNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSXlYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVE02SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUUTZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0kwWEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRVNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSTFYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVFk2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJMlhGeGNJaWs3WEZ4dUpHOWpMV2R5WldWdUxUYzZJRzFoY0MxblpYUW9KRzlqTFdkeVpXVnVMV3hwYzNRc0lGeGNYQ0kzWEZ4Y0lpazdYRnh1Skc5akxXZHlaV1Z1TFRnNklHMWhjQzFuWlhRb0pHOWpMV2R5WldWdUxXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFdkeVpXVnVMVGs2SUcxaGNDMW5aWFFvSkc5akxXZHlaV1Z1TFd4cGMzUXNJRnhjWENJNVhGeGNJaWs3WEZ4dVhGeHVYRnh1THk4Z0lFeHBiV1ZjWEc0dkx5QWc0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQTRwU0E0cFNBNHBTQVhGeHVYRnh1Skc5akxXeHBiV1V0YkdsemREb2dLRnhjYmlBZ1hGeGNJakJjWEZ3aU9pQWpaalJtWTJVekxGeGNiaUFnWEZ4Y0lqRmNYRndpT2lBalpUbG1ZV000TEZ4Y2JpQWdYRnhjSWpKY1hGd2lPaUFqWkRobU5XRXlMRnhjYmlBZ1hGeGNJak5jWEZ3aU9pQWpZekJsWWpjMUxGeGNiaUFnWEZ4Y0lqUmNYRndpT2lBallUbGxNelJpTEZ4Y2JpQWdYRnhjSWpWY1hGd2lPaUFqT1RSa09ESmtMRnhjYmlBZ1hGeGNJalpjWEZ3aU9pQWpPREpqT1RGbExGeGNiaUFnWEZ4Y0lqZGNYRndpT2lBak56UmlPREUyTEZ4Y2JpQWdYRnhjSWpoY1hGd2lPaUFqTmpaaE9EQm1MRnhjYmlBZ1hGeGNJamxjWEZ3aU9pQWpOV001TkRCa1hGeHVLVHRjWEc1Y1hHNGtiMk10YkdsdFpTMHdPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0l3WEZ4Y0lpazdYRnh1Skc5akxXeHBiV1V0TVRvZ2JXRndMV2RsZENna2IyTXRiR2x0WlMxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTFzYVcxbExUSTZJRzFoY0MxblpYUW9KRzlqTFd4cGJXVXRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGJHbHRaUzB6T2lCdFlYQXRaMlYwS0NSdll5MXNhVzFsTFd4cGMzUXNJRnhjWENJelhGeGNJaWs3WEZ4dUpHOWpMV3hwYldVdE5Eb2diV0Z3TFdkbGRDZ2tiMk10YkdsdFpTMXNhWE4wTENCY1hGd2lORnhjWENJcE8xeGNiaVJ2WXkxc2FXMWxMVFU2SUcxaGNDMW5aWFFvSkc5akxXeHBiV1V0YkdsemRDd2dYRnhjSWpWY1hGd2lLVHRjWEc0a2IyTXRiR2x0WlMwMk9pQnRZWEF0WjJWMEtDUnZZeTFzYVcxbExXeHBjM1FzSUZ4Y1hDSTJYRnhjSWlrN1hGeHVKRzlqTFd4cGJXVXROem9nYldGd0xXZGxkQ2drYjJNdGJHbHRaUzFzYVhOMExDQmNYRndpTjF4Y1hDSXBPMXhjYmlSdll5MXNhVzFsTFRnNklHMWhjQzFuWlhRb0pHOWpMV3hwYldVdGJHbHpkQ3dnWEZ4Y0lqaGNYRndpS1R0Y1hHNGtiMk10YkdsdFpTMDVPaUJ0WVhBdFoyVjBLQ1J2WXkxc2FXMWxMV3hwYzNRc0lGeGNYQ0k1WEZ4Y0lpazdYRnh1WEZ4dVhGeHVMeThnSUZsbGJHeHZkMXhjYmk4dklDRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElEaWxJRGlsSURpbElCY1hHNWNYRzRrYjJNdGVXVnNiRzkzTFd4cGMzUTZJQ2hjWEc0Z0lGeGNYQ0l3WEZ4Y0lqb2dJMlptWmpsa1lpeGNYRzRnSUZ4Y1hDSXhYRnhjSWpvZ0kyWm1aak5pWml4Y1hHNGdJRnhjWENJeVhGeGNJam9nSTJabVpXTTVPU3hjWEc0Z0lGeGNYQ0l6WEZ4Y0lqb2dJMlptWlRBMk5peGNYRzRnSUZ4Y1hDSTBYRnhjSWpvZ0kyWm1aRFF6WWl4Y1hHNGdJRnhjWENJMVhGeGNJam9nSTJaall6UXhPU3hjWEc0Z0lGeGNYQ0kyWEZ4Y0lqb2dJMlpoWWpBd05TeGNYRzRnSUZ4Y1hDSTNYRnhjSWpvZ0kyWTFPV1l3TUN4Y1hHNGdJRnhjWENJNFhGeGNJam9nSTJZd09HTXdNQ3hjWEc0Z0lGeGNYQ0k1WEZ4Y0lqb2dJMlUyTnpjd01GeGNiaWs3WEZ4dVhGeHVKRzlqTFhsbGJHeHZkeTB3T2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqQmNYRndpS1R0Y1hHNGtiMk10ZVdWc2JHOTNMVEU2SUcxaGNDMW5aWFFvSkc5akxYbGxiR3h2ZHkxc2FYTjBMQ0JjWEZ3aU1WeGNYQ0lwTzF4Y2JpUnZZeTE1Wld4c2IzY3RNam9nYldGd0xXZGxkQ2drYjJNdGVXVnNiRzkzTFd4cGMzUXNJRnhjWENJeVhGeGNJaWs3WEZ4dUpHOWpMWGxsYkd4dmR5MHpPaUJ0WVhBdFoyVjBLQ1J2WXkxNVpXeHNiM2N0YkdsemRDd2dYRnhjSWpOY1hGd2lLVHRjWEc0a2IyTXRlV1ZzYkc5M0xUUTZJRzFoY0MxblpYUW9KRzlqTFhsbGJHeHZkeTFzYVhOMExDQmNYRndpTkZ4Y1hDSXBPMXhjYmlSdll5MTVaV3hzYjNjdE5Ub2diV0Z3TFdkbGRDZ2tiMk10ZVdWc2JHOTNMV3hwYzNRc0lGeGNYQ0kxWEZ4Y0lpazdYRnh1Skc5akxYbGxiR3h2ZHkwMk9pQnRZWEF0WjJWMEtDUnZZeTE1Wld4c2IzY3RiR2x6ZEN3Z1hGeGNJalpjWEZ3aUtUdGNYRzRrYjJNdGVXVnNiRzkzTFRjNklHMWhjQzFuWlhRb0pHOWpMWGxsYkd4dmR5MXNhWE4wTENCY1hGd2lOMXhjWENJcE8xeGNiaVJ2WXkxNVpXeHNiM2N0T0RvZ2JXRndMV2RsZENna2IyTXRlV1ZzYkc5M0xXeHBjM1FzSUZ4Y1hDSTRYRnhjSWlrN1hGeHVKRzlqTFhsbGJHeHZkeTA1T2lCdFlYQXRaMlYwS0NSdll5MTVaV3hzYjNjdGJHbHpkQ3dnWEZ4Y0lqbGNYRndpS1R0Y1hHNWNYRzVjWEc0dkx5QWdUM0poYm1kbFhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTF2Y21GdVoyVXRiR2x6ZERvZ0tGeGNiaUFnWEZ4Y0lqQmNYRndpT2lBalptWm1OR1UyTEZ4Y2JpQWdYRnhjSWpGY1hGd2lPaUFqWm1abE9HTmpMRnhjYmlBZ1hGeGNJakpjWEZ3aU9pQWpabVprT0dFNExGeGNiaUFnWEZ4Y0lqTmNYRndpT2lBalptWmpNRGM0TEZ4Y2JpQWdYRnhjSWpSY1hGd2lPaUFqWm1aaE9UUmtMRnhjYmlBZ1hGeGNJalZjWEZ3aU9pQWpabVk1TWpKaUxGeGNiaUFnWEZ4Y0lqWmNYRndpT2lBalptUTNaVEUwTEZ4Y2JpQWdYRnhjSWpkY1hGd2lPaUFqWmpjMk56QTNMRnhjYmlBZ1hGeGNJamhjWEZ3aU9pQWpaVGcxT1RCakxGeGNiaUFnWEZ4Y0lqbGNYRndpT2lBalpEazBPREJtWEZ4dUtUdGNYRzVjWEc0a2IyTXRiM0poYm1kbExUQTZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpTUZ4Y1hDSXBPMXhjYmlSdll5MXZjbUZ1WjJVdE1Ub2diV0Z3TFdkbGRDZ2tiMk10YjNKaGJtZGxMV3hwYzNRc0lGeGNYQ0l4WEZ4Y0lpazdYRnh1Skc5akxXOXlZVzVuWlMweU9pQnRZWEF0WjJWMEtDUnZZeTF2Y21GdVoyVXRiR2x6ZEN3Z1hGeGNJakpjWEZ3aUtUdGNYRzRrYjJNdGIzSmhibWRsTFRNNklHMWhjQzFuWlhRb0pHOWpMVzl5WVc1blpTMXNhWE4wTENCY1hGd2lNMXhjWENJcE8xeGNiaVJ2WXkxdmNtRnVaMlV0TkRvZ2JXRndMV2RsZENna2IyTXRiM0poYm1kbExXeHBjM1FzSUZ4Y1hDSTBYRnhjSWlrN1hGeHVKRzlqTFc5eVlXNW5aUzAxT2lCdFlYQXRaMlYwS0NSdll5MXZjbUZ1WjJVdGJHbHpkQ3dnWEZ4Y0lqVmNYRndpS1R0Y1hHNGtiMk10YjNKaGJtZGxMVFk2SUcxaGNDMW5aWFFvSkc5akxXOXlZVzVuWlMxc2FYTjBMQ0JjWEZ3aU5seGNYQ0lwTzF4Y2JpUnZZeTF2Y21GdVoyVXROem9nYldGd0xXZGxkQ2drYjJNdGIzSmhibWRsTFd4cGMzUXNJRnhjWENJM1hGeGNJaWs3WEZ4dUpHOWpMVzl5WVc1blpTMDRPaUJ0WVhBdFoyVjBLQ1J2WXkxdmNtRnVaMlV0YkdsemRDd2dYRnhjSWpoY1hGd2lLVHRjWEc0a2IyTXRiM0poYm1kbExUazZJRzFoY0MxblpYUW9KRzlqTFc5eVlXNW5aUzFzYVhOMExDQmNYRndpT1Z4Y1hDSXBPMXhjYmx4Y2JseGNiaTh2SUNCRGIyeHZjaUJzYVhOMFhGeHVMeThnSU9LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnT0tVZ09LVWdPS1VnRnhjYmx4Y2JpUnZZeTFqYjJ4dmNpMXpjR1ZqZEhKMWJUb2dJQ0E1TzF4Y2JseGNiaVJ2WXkxamIyeHZjaTFzYVhOME9pQW9YRnh1SUNBa2IyTXRaM0poZVMxc2FYTjBPaUFnSUNBZ0lGeGNYQ0puY21GNVhGeGNJaXhjWEc0Z0lDUnZZeTF5WldRdGJHbHpkRG9nSUNBZ0lDQmNYRndpY21Wa1hGeGNJaXhjWEc0Z0lDUnZZeTF3YVc1ckxXeHBjM1E2SUNBZ0lDQWdYRnhjSW5CcGJtdGNYRndpTEZ4Y2JpQWdKRzlqTFdkeVlYQmxMV3hwYzNRNklDQWdJQ0FnWEZ4Y0ltZHlZWEJsWEZ4Y0lpeGNYRzRnSUNSdll5MTJhVzlzWlhRdGJHbHpkRG9nSUNBZ0lDQmNYRndpZG1sdmJHVjBYRnhjSWl4Y1hHNGdJQ1J2WXkxcGJtUnBaMjh0YkdsemREb2dJQ0FnSUNCY1hGd2lhVzVrYVdkdlhGeGNJaXhjWEc0Z0lDUnZZeTFpYkhWbExXeHBjM1E2SUNBZ0lDQWdYRnhjSW1Kc2RXVmNYRndpTEZ4Y2JpQWdKRzlqTFdONVlXNHRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aVkzbGhibHhjWENJc1hGeHVJQ0FrYjJNdGRHVmhiQzFzYVhOME9pQWdJQ0FnSUZ4Y1hDSjBaV0ZzWEZ4Y0lpeGNYRzRnSUNSdll5MW5jbVZsYmkxc2FYTjBPaUFnSUNBZ0lGeGNYQ0puY21WbGJseGNYQ0lzWEZ4dUlDQWtiMk10YkdsdFpTMXNhWE4wT2lBZ0lDQWdJRnhjWENKc2FXMWxYRnhjSWl4Y1hHNGdJQ1J2WXkxNVpXeHNiM2N0YkdsemREb2dJQ0FnSUNCY1hGd2llV1ZzYkc5M1hGeGNJaXhjWEc0Z0lDUnZZeTF2Y21GdVoyVXRiR2x6ZERvZ0lDQWdJQ0JjWEZ3aWIzSmhibWRsWEZ4Y0lseGNiaWs3WEZ4dVhDSmRMRndpYzI5MWNtTmxVbTl2ZEZ3aU9sd2lYQ0o5WFNrN1hHNHZMeUJGZUhCdmNuUnpYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQmZYMTlEVTFOZlRFOUJSRVZTWDBWWVVFOVNWRjlmWHp0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL2VsZW1lbnQvSHlwZXJsaW5rLnNjc3NcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIlxcblxcbi8qXFxuICBNSVQgTGljZW5zZSBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocFxcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxcbiovXFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY3NzV2l0aE1hcHBpbmdUb1N0cmluZykge1xcbiAgdmFyIGxpc3QgPSBbXTsgLy8gcmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZXMgYXMgY3NzIHN0cmluZ1xcblxcbiAgbGlzdC50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcXG4gICAgICB2YXIgY29udGVudCA9IFxcXCJcXFwiO1xcbiAgICAgIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2YgaXRlbVs1XSAhPT0gXFxcInVuZGVmaW5lZFxcXCI7XFxuXFxuICAgICAgaWYgKGl0ZW1bNF0pIHtcXG4gICAgICAgIGNvbnRlbnQgKz0gXFxcIkBzdXBwb3J0cyAoXFxcIi5jb25jYXQoaXRlbVs0XSwgXFxcIikge1xcXCIpO1xcbiAgICAgIH1cXG5cXG4gICAgICBpZiAoaXRlbVsyXSkge1xcbiAgICAgICAgY29udGVudCArPSBcXFwiQG1lZGlhIFxcXCIuY29uY2F0KGl0ZW1bMl0sIFxcXCIge1xcXCIpO1xcbiAgICAgIH1cXG5cXG4gICAgICBpZiAobmVlZExheWVyKSB7XFxuICAgICAgICBjb250ZW50ICs9IFxcXCJAbGF5ZXJcXFwiLmNvbmNhdChpdGVtWzVdLmxlbmd0aCA+IDAgPyBcXFwiIFxcXCIuY29uY2F0KGl0ZW1bNV0pIDogXFxcIlxcXCIsIFxcXCIge1xcXCIpO1xcbiAgICAgIH1cXG5cXG4gICAgICBjb250ZW50ICs9IGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSk7XFxuXFxuICAgICAgaWYgKG5lZWRMYXllcikge1xcbiAgICAgICAgY29udGVudCArPSBcXFwifVxcXCI7XFxuICAgICAgfVxcblxcbiAgICAgIGlmIChpdGVtWzJdKSB7XFxuICAgICAgICBjb250ZW50ICs9IFxcXCJ9XFxcIjtcXG4gICAgICB9XFxuXFxuICAgICAgaWYgKGl0ZW1bNF0pIHtcXG4gICAgICAgIGNvbnRlbnQgKz0gXFxcIn1cXFwiO1xcbiAgICAgIH1cXG5cXG4gICAgICByZXR1cm4gY29udGVudDtcXG4gICAgfSkuam9pbihcXFwiXFxcIik7XFxuICB9OyAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxcblxcblxcbiAgbGlzdC5pID0gZnVuY3Rpb24gaShtb2R1bGVzLCBtZWRpYSwgZGVkdXBlLCBzdXBwb3J0cywgbGF5ZXIpIHtcXG4gICAgaWYgKHR5cGVvZiBtb2R1bGVzID09PSBcXFwic3RyaW5nXFxcIikge1xcbiAgICAgIG1vZHVsZXMgPSBbW251bGwsIG1vZHVsZXMsIHVuZGVmaW5lZF1dO1xcbiAgICB9XFxuXFxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XFxuXFxuICAgIGlmIChkZWR1cGUpIHtcXG4gICAgICBmb3IgKHZhciBrID0gMDsgayA8IHRoaXMubGVuZ3RoOyBrKyspIHtcXG4gICAgICAgIHZhciBpZCA9IHRoaXNba11bMF07XFxuXFxuICAgICAgICBpZiAoaWQgIT0gbnVsbCkge1xcbiAgICAgICAgICBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2lkXSA9IHRydWU7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIGZvciAodmFyIF9rID0gMDsgX2sgPCBtb2R1bGVzLmxlbmd0aDsgX2srKykge1xcbiAgICAgIHZhciBpdGVtID0gW10uY29uY2F0KG1vZHVsZXNbX2tdKTtcXG5cXG4gICAgICBpZiAoZGVkdXBlICYmIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaXRlbVswXV0pIHtcXG4gICAgICAgIGNvbnRpbnVlO1xcbiAgICAgIH1cXG5cXG4gICAgICBpZiAodHlwZW9mIGxheWVyICE9PSBcXFwidW5kZWZpbmVkXFxcIikge1xcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtWzVdID09PSBcXFwidW5kZWZpbmVkXFxcIikge1xcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICBpdGVtWzFdID0gXFxcIkBsYXllclxcXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFxcXCIgXFxcIi5jb25jYXQoaXRlbVs1XSkgOiBcXFwiXFxcIiwgXFxcIiB7XFxcIikuY29uY2F0KGl0ZW1bMV0sIFxcXCJ9XFxcIik7XFxuICAgICAgICAgIGl0ZW1bNV0gPSBsYXllcjtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuXFxuICAgICAgaWYgKG1lZGlhKSB7XFxuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcXG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgaXRlbVsxXSA9IFxcXCJAbWVkaWEgXFxcIi5jb25jYXQoaXRlbVsyXSwgXFxcIiB7XFxcIikuY29uY2F0KGl0ZW1bMV0sIFxcXCJ9XFxcIik7XFxuICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuXFxuICAgICAgaWYgKHN1cHBvcnRzKSB7XFxuICAgICAgICBpZiAoIWl0ZW1bNF0pIHtcXG4gICAgICAgICAgaXRlbVs0XSA9IFxcXCJcXFwiLmNvbmNhdChzdXBwb3J0cyk7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICBpdGVtWzFdID0gXFxcIkBzdXBwb3J0cyAoXFxcIi5jb25jYXQoaXRlbVs0XSwgXFxcIikge1xcXCIpLmNvbmNhdChpdGVtWzFdLCBcXFwifVxcXCIpO1xcbiAgICAgICAgICBpdGVtWzRdID0gc3VwcG9ydHM7XFxuICAgICAgICB9XFxuICAgICAgfVxcblxcbiAgICAgIGxpc3QucHVzaChpdGVtKTtcXG4gICAgfVxcbiAgfTtcXG5cXG4gIHJldHVybiBsaXN0O1xcbn07Ly8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk5dWIyUmxYMjF2WkhWc1pYTXZZM056TFd4dllXUmxjaTlrYVhOMEwzSjFiblJwYldVdllYQnBMbXB6TG1weklpd2liV0Z3Y0dsdVozTWlPaUpCUVVGaE96dEJRVVZpTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hwUWtGQmFVSTdPMEZCUldwQ08wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFc2NVUkJRWEZFTzBGQlEzSkVPenRCUVVWQk8wRkJRMEVzWjBSQlFXZEVPMEZCUTJoRU96dEJRVVZCTzBGQlEwRXNjVVpCUVhGR08wRkJRM0pHT3p0QlFVVkJPenRCUVVWQk8wRkJRMEVzY1VKQlFYRkNPMEZCUTNKQ096dEJRVVZCTzBGQlEwRXNjVUpCUVhGQ08wRkJRM0pDT3p0QlFVVkJPMEZCUTBFc2NVSkJRWEZDTzBGQlEzSkNPenRCUVVWQk8wRkJRMEVzUzBGQlN6dEJRVU5NTEV0QlFVczdPenRCUVVkTU8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPenRCUVVWQk8wRkJRMEVzYzBKQlFYTkNMR2xDUVVGcFFqdEJRVU4yUXpzN1FVRkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlFVVkJMSEZDUVVGeFFpeHhRa0ZCY1VJN1FVRkRNVU03TzBGQlJVRTdRVUZEUVR0QlFVTkJPenRCUVVWQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEZWQlFWVTdRVUZEVml4elJrRkJjMFlzY1VKQlFYRkNPMEZCUXpOSE8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hWUVVGVk8wRkJRMVlzYVVSQlFXbEVMSEZDUVVGeFFqdEJRVU4wUlR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFUdEJRVU5CTzBGQlEwRXNWVUZCVlR0QlFVTldMSE5FUVVGelJDeHhRa0ZCY1VJN1FVRkRNMFU3UVVGRFFUdEJRVU5CT3p0QlFVVkJPMEZCUTBFN1FVRkRRVHM3UVVGRlFUdEJRVU5CSWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR2Ym05a1pWOXRiMlIxYkdWekwyTnpjeTFzYjJGa1pYSXZaR2x6ZEM5eWRXNTBhVzFsTDJGd2FTNXFjejh5TkdaaUlsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbHdpZFhObElITjBjbWxqZEZ3aU8xeHVYRzR2S2x4dUlDQk5TVlFnVEdsalpXNXpaU0JvZEhSd09pOHZkM2QzTG05d1pXNXpiM1Z5WTJVdWIzSm5MMnhwWTJWdWMyVnpMMjFwZEMxc2FXTmxibk5sTG5Cb2NGeHVJQ0JCZFhSb2IzSWdWRzlpYVdGeklFdHZjSEJsY25NZ1FITnZhM0poWEc0cUwxeHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQm1kVzVqZEdsdmJpQW9ZM056VjJsMGFFMWhjSEJwYm1kVWIxTjBjbWx1WnlrZ2UxeHVJQ0IyWVhJZ2JHbHpkQ0E5SUZ0ZE95QXZMeUJ5WlhSMWNtNGdkR2hsSUd4cGMzUWdiMllnYlc5a2RXeGxjeUJoY3lCamMzTWdjM1J5YVc1blhHNWNiaUFnYkdsemRDNTBiMU4wY21sdVp5QTlJR1oxYm1OMGFXOXVJSFJ2VTNSeWFXNW5LQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG0xaGNDaG1kVzVqZEdsdmJpQW9hWFJsYlNrZ2UxeHVJQ0FnSUNBZ2RtRnlJR052Ym5SbGJuUWdQU0JjSWx3aU8xeHVJQ0FnSUNBZ2RtRnlJRzVsWldSTVlYbGxjaUE5SUhSNWNHVnZaaUJwZEdWdFd6VmRJQ0U5UFNCY0luVnVaR1ZtYVc1bFpGd2lPMXh1WEc0Z0lDQWdJQ0JwWmlBb2FYUmxiVnMwWFNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjUwWlc1MElDczlJRndpUUhOMWNIQnZjblJ6SUNoY0lpNWpiMjVqWVhRb2FYUmxiVnMwWFN3Z1hDSXBJSHRjSWlrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2hwZEdWdFd6SmRLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuUmxiblFnS3owZ1hDSkFiV1ZrYVdFZ1hDSXVZMjl1WTJGMEtHbDBaVzFiTWwwc0lGd2lJSHRjSWlrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2h1WldWa1RHRjVaWElwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVkR1Z1ZENBclBTQmNJa0JzWVhsbGNsd2lMbU52Ym1OaGRDaHBkR1Z0V3pWZExteGxibWQwYUNBK0lEQWdQeUJjSWlCY0lpNWpiMjVqWVhRb2FYUmxiVnMxWFNrZ09pQmNJbHdpTENCY0lpQjdYQ0lwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCamIyNTBaVzUwSUNzOUlHTnpjMWRwZEdoTllYQndhVzVuVkc5VGRISnBibWNvYVhSbGJTazdYRzVjYmlBZ0lDQWdJR2xtSUNodVpXVmtUR0Y1WlhJcElIdGNiaUFnSUNBZ0lDQWdZMjl1ZEdWdWRDQXJQU0JjSW4xY0lqdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdhV1lnS0dsMFpXMWJNbDBwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVkR1Z1ZENBclBTQmNJbjFjSWp0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2FXWWdLR2wwWlcxYk5GMHBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWRHVnVkQ0FyUFNCY0luMWNJanRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnY21WMGRYSnVJR052Ym5SbGJuUTdYRzRnSUNBZ2ZTa3VhbTlwYmloY0lsd2lLVHRjYmlBZ2ZUc2dMeThnYVcxd2IzSjBJR0VnYkdsemRDQnZaaUJ0YjJSMWJHVnpJR2x1ZEc4Z2RHaGxJR3hwYzNSY2JseHVYRzRnSUd4cGMzUXVhU0E5SUdaMWJtTjBhVzl1SUdrb2JXOWtkV3hsY3l3Z2JXVmthV0VzSUdSbFpIVndaU3dnYzNWd2NHOXlkSE1zSUd4aGVXVnlLU0I3WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUJ0YjJSMWJHVnpJRDA5UFNCY0luTjBjbWx1WjF3aUtTQjdYRzRnSUNBZ0lDQnRiMlIxYkdWeklEMGdXMXR1ZFd4c0xDQnRiMlIxYkdWekxDQjFibVJsWm1sdVpXUmRYVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjJZWElnWVd4eVpXRmtlVWx0Y0c5eWRHVmtUVzlrZFd4bGN5QTlJSHQ5TzF4dVhHNGdJQ0FnYVdZZ0tHUmxaSFZ3WlNrZ2UxeHVJQ0FnSUNBZ1ptOXlJQ2gyWVhJZ2F5QTlJREE3SUdzZ1BDQjBhR2x6TG14bGJtZDBhRHNnYXlzcktTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCcFpDQTlJSFJvYVhOYmExMWJNRjA3WEc1Y2JpQWdJQ0FnSUNBZ2FXWWdLR2xrSUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmhiSEpsWVdSNVNXMXdiM0owWldSTmIyUjFiR1Z6VzJsa1hTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCbWIzSWdLSFpoY2lCZmF5QTlJREE3SUY5cklEd2diVzlrZFd4bGN5NXNaVzVuZEdnN0lGOXJLeXNwSUh0Y2JpQWdJQ0FnSUhaaGNpQnBkR1Z0SUQwZ1cxMHVZMjl1WTJGMEtHMXZaSFZzWlhOYlgydGRLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tHUmxaSFZ3WlNBbUppQmhiSEpsWVdSNVNXMXdiM0owWldSTmIyUjFiR1Z6VzJsMFpXMWJNRjFkS1NCN1hHNGdJQ0FnSUNBZ0lHTnZiblJwYm5WbE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnBaaUFvZEhsd1pXOW1JR3hoZVdWeUlDRTlQU0JjSW5WdVpHVm1hVzVsWkZ3aUtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoMGVYQmxiMllnYVhSbGJWczFYU0E5UFQwZ1hDSjFibVJsWm1sdVpXUmNJaWtnZTF4dUlDQWdJQ0FnSUNBZ0lHbDBaVzFiTlYwZ1BTQnNZWGxsY2p0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBkR1Z0V3pGZElEMGdYQ0pBYkdGNVpYSmNJaTVqYjI1allYUW9hWFJsYlZzMVhTNXNaVzVuZEdnZ1BpQXdJRDhnWENJZ1hDSXVZMjl1WTJGMEtHbDBaVzFiTlYwcElEb2dYQ0pjSWl3Z1hDSWdlMXdpS1M1amIyNWpZWFFvYVhSbGJWc3hYU3dnWENKOVhDSXBPMXh1SUNBZ0lDQWdJQ0FnSUdsMFpXMWJOVjBnUFNCc1lYbGxjanRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCcFppQW9iV1ZrYVdFcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGcGRHVnRXekpkS1NCN1hHNGdJQ0FnSUNBZ0lDQWdhWFJsYlZzeVhTQTlJRzFsWkdsaE8xeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJR2wwWlcxYk1WMGdQU0JjSWtCdFpXUnBZU0JjSWk1amIyNWpZWFFvYVhSbGJWc3lYU3dnWENJZ2Uxd2lLUzVqYjI1allYUW9hWFJsYlZzeFhTd2dYQ0o5WENJcE8xeHVJQ0FnSUNBZ0lDQWdJR2wwWlcxYk1sMGdQU0J0WldScFlUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb2MzVndjRzl5ZEhNcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGcGRHVnRXelJkS1NCN1hHNGdJQ0FnSUNBZ0lDQWdhWFJsYlZzMFhTQTlJRndpWENJdVkyOXVZMkYwS0hOMWNIQnZjblJ6S1R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBkR1Z0V3pGZElEMGdYQ0pBYzNWd2NHOXlkSE1nS0Z3aUxtTnZibU5oZENocGRHVnRXelJkTENCY0lpa2dlMXdpS1M1amIyNWpZWFFvYVhSbGJWc3hYU3dnWENKOVhDSXBPMXh1SUNBZ0lDQWdJQ0FnSUdsMFpXMWJORjBnUFNCemRYQndiM0owY3p0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnNhWE4wTG5CMWMyZ29hWFJsYlNrN1hHNGdJQ0FnZlZ4dUlDQjlPMXh1WEc0Z0lISmxkSFZ5YmlCc2FYTjBPMXh1ZlRzaVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2dldFVybC5qcyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSkgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJcXG5cXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh1cmwsIG9wdGlvbnMpIHtcXG4gIGlmICghb3B0aW9ucykge1xcbiAgICBvcHRpb25zID0ge307XFxuICB9XFxuXFxuICBpZiAoIXVybCkge1xcbiAgICByZXR1cm4gdXJsO1xcbiAgfVxcblxcbiAgdXJsID0gU3RyaW5nKHVybC5fX2VzTW9kdWxlID8gdXJsLmRlZmF1bHQgOiB1cmwpOyAvLyBJZiB1cmwgaXMgYWxyZWFkeSB3cmFwcGVkIGluIHF1b3RlcywgcmVtb3ZlIHRoZW1cXG5cXG4gIGlmICgvXlsnXFxcIl0uKlsnXFxcIl0kLy50ZXN0KHVybCkpIHtcXG4gICAgdXJsID0gdXJsLnNsaWNlKDEsIC0xKTtcXG4gIH1cXG5cXG4gIGlmIChvcHRpb25zLmhhc2gpIHtcXG4gICAgdXJsICs9IG9wdGlvbnMuaGFzaDtcXG4gIH0gLy8gU2hvdWxkIHVybCBiZSB3cmFwcGVkP1xcbiAgLy8gU2VlIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTMvI3VybHNcXG5cXG5cXG4gIGlmICgvW1xcXCInKCkgXFxcXHRcXFxcbl18KCUyMCkvLnRlc3QodXJsKSB8fCBvcHRpb25zLm5lZWRRdW90ZXMpIHtcXG4gICAgcmV0dXJuIFxcXCJcXFxcXFxcIlxcXCIuY29uY2F0KHVybC5yZXBsYWNlKC9cXFwiL2csICdcXFxcXFxcXFxcXCInKS5yZXBsYWNlKC9cXFxcbi9nLCBcXFwiXFxcXFxcXFxuXFxcIiksIFxcXCJcXFxcXFxcIlxcXCIpO1xcbiAgfVxcblxcbiAgcmV0dXJuIHVybDtcXG59Oy8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpOXViMlJsWDIxdlpIVnNaWE12WTNOekxXeHZZV1JsY2k5a2FYTjBMM0oxYm5ScGJXVXZaMlYwVlhKc0xtcHpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSkJRVUZoT3p0QlFVVmlPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVRzN1FVRkZRU3h2UkVGQmIwUTdPMEZCUlhCRU8wRkJRMEU3UVVGRFFUczdRVUZGUVR0QlFVTkJPMEZCUTBFc1NVRkJTVHRCUVVOS096czdRVUZIUVR0QlFVTkJPMEZCUTBFN08wRkJSVUU3UVVGRFFTSXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUwyNXZaR1ZmYlc5a2RXeGxjeTlqYzNNdGJHOWhaR1Z5TDJScGMzUXZjblZ1ZEdsdFpTOW5aWFJWY213dWFuTS9NV1JsTlNKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SmNJblZ6WlNCemRISnBZM1JjSWp0Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQm1kVzVqZEdsdmJpQW9kWEpzTENCdmNIUnBiMjV6S1NCN1hHNGdJR2xtSUNnaGIzQjBhVzl1Y3lrZ2UxeHVJQ0FnSUc5d2RHbHZibk1nUFNCN2ZUdGNiaUFnZlZ4dVhHNGdJR2xtSUNnaGRYSnNLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIVnliRHRjYmlBZ2ZWeHVYRzRnSUhWeWJDQTlJRk4wY21sdVp5aDFjbXd1WDE5bGMwMXZaSFZzWlNBL0lIVnliQzVrWldaaGRXeDBJRG9nZFhKc0tUc2dMeThnU1dZZ2RYSnNJR2x6SUdGc2NtVmhaSGtnZDNKaGNIQmxaQ0JwYmlCeGRXOTBaWE1zSUhKbGJXOTJaU0IwYUdWdFhHNWNiaUFnYVdZZ0tDOWVXeWRjSWwwdUtsc25YQ0pkSkM4dWRHVnpkQ2gxY213cEtTQjdYRzRnSUNBZ2RYSnNJRDBnZFhKc0xuTnNhV05sS0RFc0lDMHhLVHRjYmlBZ2ZWeHVYRzRnSUdsbUlDaHZjSFJwYjI1ekxtaGhjMmdwSUh0Y2JpQWdJQ0IxY213Z0t6MGdiM0IwYVc5dWN5NW9ZWE5vTzF4dUlDQjlJQzh2SUZOb2IzVnNaQ0IxY213Z1ltVWdkM0poY0hCbFpEOWNiaUFnTHk4Z1UyVmxJR2gwZEhCek9pOHZaSEpoWm5SekxtTnpjM2RuTG05eVp5OWpjM010ZG1Gc2RXVnpMVE12STNWeWJITmNibHh1WEc0Z0lHbG1JQ2d2VzF3aUp5Z3BJRnhjZEZ4Y2JsMThLQ1V5TUNrdkxuUmxjM1FvZFhKc0tTQjhmQ0J2Y0hScGIyNXpMbTVsWldSUmRXOTBaWE1wSUh0Y2JpQWdJQ0J5WlhSMWNtNGdYQ0pjWEZ3aVhDSXVZMjl1WTJGMEtIVnliQzV5WlhCc1lXTmxLQzljSWk5bkxDQW5YRnhjWEZ3aUp5a3VjbVZ3YkdGalpTZ3ZYRnh1TDJjc0lGd2lYRnhjWEc1Y0lpa3NJRndpWEZ4Y0lsd2lLVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUIxY213N1hHNTlPeUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSkgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJcXG5cXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVtKSB7XFxuICB2YXIgY29udGVudCA9IGl0ZW1bMV07XFxuICB2YXIgY3NzTWFwcGluZyA9IGl0ZW1bM107XFxuXFxuICBpZiAoIWNzc01hcHBpbmcpIHtcXG4gICAgcmV0dXJuIGNvbnRlbnQ7XFxuICB9XFxuXFxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFxcXCJmdW5jdGlvblxcXCIpIHtcXG4gICAgdmFyIGJhc2U2NCA9IGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGNzc01hcHBpbmcpKSkpO1xcbiAgICB2YXIgZGF0YSA9IFxcXCJzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxcXFwiLmNvbmNhdChiYXNlNjQpO1xcbiAgICB2YXIgc291cmNlTWFwcGluZyA9IFxcXCIvKiMgXFxcIi5jb25jYXQoZGF0YSwgXFxcIiAqL1xcXCIpO1xcbiAgICB2YXIgc291cmNlVVJMcyA9IGNzc01hcHBpbmcuc291cmNlcy5tYXAoZnVuY3Rpb24gKHNvdXJjZSkge1xcbiAgICAgIHJldHVybiBcXFwiLyojIHNvdXJjZVVSTD1cXFwiLmNvbmNhdChjc3NNYXBwaW5nLnNvdXJjZVJvb3QgfHwgXFxcIlxcXCIpLmNvbmNhdChzb3VyY2UsIFxcXCIgKi9cXFwiKTtcXG4gICAgfSk7XFxuICAgIHJldHVybiBbY29udGVudF0uY29uY2F0KHNvdXJjZVVSTHMpLmNvbmNhdChbc291cmNlTWFwcGluZ10pLmpvaW4oXFxcIlxcXFxuXFxcIik7XFxuICB9XFxuXFxuICByZXR1cm4gW2NvbnRlbnRdLmpvaW4oXFxcIlxcXFxuXFxcIik7XFxufTsvLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTl1YjJSbFgyMXZaSFZzWlhNdlkzTnpMV3h2WVdSbGNpOWthWE4wTDNKMWJuUnBiV1V2YzI5MWNtTmxUV0Z3Y3k1cWN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaVFVRkJZVHM3UVVGRllqdEJRVU5CTzBGQlEwRTdPMEZCUlVFN1FVRkRRVHRCUVVOQk96dEJRVVZCTzBGQlEwRTdRVUZEUVN4MVJFRkJkVVFzWTBGQll6dEJRVU55UlR0QlFVTkJPMEZCUTBFN1FVRkRRU3hMUVVGTE8wRkJRMHc3UVVGRFFUczdRVUZGUVR0QlFVTkJJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHZibTlrWlY5dGIyUjFiR1Z6TDJOemN5MXNiMkZrWlhJdlpHbHpkQzl5ZFc1MGFXMWxMM052ZFhKalpVMWhjSE11YW5NL1lXWXhNaUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKY0luVnpaU0J6ZEhKcFkzUmNJanRjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCbWRXNWpkR2x2YmlBb2FYUmxiU2tnZTF4dUlDQjJZWElnWTI5dWRHVnVkQ0E5SUdsMFpXMWJNVjA3WEc0Z0lIWmhjaUJqYzNOTllYQndhVzVuSUQwZ2FYUmxiVnN6WFR0Y2JseHVJQ0JwWmlBb0lXTnpjMDFoY0hCcGJtY3BJSHRjYmlBZ0lDQnlaWFIxY200Z1kyOXVkR1Z1ZER0Y2JpQWdmVnh1WEc0Z0lHbG1JQ2gwZVhCbGIyWWdZblJ2WVNBOVBUMGdYQ0ptZFc1amRHbHZibHdpS1NCN1hHNGdJQ0FnZG1GeUlHSmhjMlUyTkNBOUlHSjBiMkVvZFc1bGMyTmhjR1VvWlc1amIyUmxWVkpKUTI5dGNHOXVaVzUwS0VwVFQwNHVjM1J5YVc1bmFXWjVLR056YzAxaGNIQnBibWNwS1NrcE8xeHVJQ0FnSUhaaGNpQmtZWFJoSUQwZ1hDSnpiM1Z5WTJWTllYQndhVzVuVlZKTVBXUmhkR0U2WVhCd2JHbGpZWFJwYjI0dmFuTnZianRqYUdGeWMyVjBQWFYwWmkwNE8ySmhjMlUyTkN4Y0lpNWpiMjVqWVhRb1ltRnpaVFkwS1R0Y2JpQWdJQ0IyWVhJZ2MyOTFjbU5sVFdGd2NHbHVaeUE5SUZ3aUx5b2pJRndpTG1OdmJtTmhkQ2hrWVhSaExDQmNJaUFxTDF3aUtUdGNiaUFnSUNCMllYSWdjMjkxY21ObFZWSk1jeUE5SUdOemMwMWhjSEJwYm1jdWMyOTFjbU5sY3k1dFlYQW9ablZ1WTNScGIyNGdLSE52ZFhKalpTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlGd2lMeW9qSUhOdmRYSmpaVlZTVEQxY0lpNWpiMjVqWVhRb1kzTnpUV0Z3Y0dsdVp5NXpiM1Z5WTJWU2IyOTBJSHg4SUZ3aVhDSXBMbU52Ym1OaGRDaHpiM1Z5WTJVc0lGd2lJQ292WENJcE8xeHVJQ0FnSUgwcE8xeHVJQ0FnSUhKbGRIVnliaUJiWTI5dWRHVnVkRjB1WTI5dVkyRjBLSE52ZFhKalpWVlNUSE1wTG1OdmJtTmhkQ2hiYzI5MWNtTmxUV0Z3Y0dsdVoxMHBMbXB2YVc0b1hDSmNYRzVjSWlrN1hHNGdJSDFjYmx4dUlDQnlaWFIxY200Z1cyTnZiblJsYm5SZExtcHZhVzRvWENKY1hHNWNJaWs3WEc1OU95SmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2FjdGlvbnMvYWN0aW9uQWRkVG9MaWJyYXJ5LnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2FjdGlvbnMvYWN0aW9uQWRkVG9MaWJyYXJ5LnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25BZGRUb0xpYnJhcnlcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25BZGRUb0xpYnJhcnkpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9yZWdpc3RlciAqLyBcXFwiLi4vLi4vYWN0aW9ucy9yZWdpc3Rlci50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lICovIFxcXCIuLi8uLi9zY2VuZS9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9uZXdFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L25ld0VsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvbmV3RWxlbWVudC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmFuZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9yYW5kb20gKi8gXFxcIi4uLy4uL3JhbmRvbS50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcblxcblxcblxcblxcblxcblxcbmNvbnN0IGFjdGlvbkFkZFRvTGlicmFyeSA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJhZGRUb0xpYnJhcnlcXFwiLFxcbiAgICBwZXJmb3JtOiAoZWxlbWVudHMsIGFwcFN0YXRlLCBfLCBhcHApID0+IHtcXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRTZWxlY3RlZEVsZW1lbnRzKSgoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldE5vbkRlbGV0ZWRFbGVtZW50cykoZWxlbWVudHMpLCBhcHBTdGF0ZSwgdHJ1ZSk7XFxuICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50cy5zb21lKChlbGVtZW50KSA9PiBlbGVtZW50LnR5cGUgPT09IFxcXCJpbWFnZVxcXCIpKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcXG4gICAgICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB7IGVycm9yTWVzc2FnZTogXFxcIlN1cHBvcnQgZm9yIGFkZGluZyBpbWFnZXMgdG8gdGhlIGxpYnJhcnkgY29taW5nIHNvb24hXFxcIiB9KSxcXG4gICAgICAgICAgICB9O1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIGFwcC5saWJyYXJ5XFxuICAgICAgICAgICAgLmxvYWRMaWJyYXJ5KClcXG4gICAgICAgICAgICAudGhlbigoaXRlbXMpID0+IHtcXG4gICAgICAgICAgICByZXR1cm4gYXBwLmxpYnJhcnkuc2F2ZUxpYnJhcnkoW1xcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBpZDogKDAsX3JhbmRvbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnJhbmRvbUlkKSgpLFxcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBcXFwidW5wdWJsaXNoZWRcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHM6IHNlbGVjdGVkRWxlbWVudHMubWFwKF9lbGVtZW50X25ld0VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5kZWVwQ29weUVsZW1lbnQpLFxcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZDogRGF0ZS5ub3coKSxcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgLi4uaXRlbXMsXFxuICAgICAgICAgICAgXSk7XFxuICAgICAgICB9KVxcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcXG4gICAgICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IGZhbHNlLFxcbiAgICAgICAgICAgICAgICBhcHBTdGF0ZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhcHBTdGF0ZSksIHsgdG9hc3RNZXNzYWdlOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnQpKFxcXCJ0b2FzdC5hZGRlZFRvTGlicmFyeVxcXCIpIH0pLFxcbiAgICAgICAgICAgIH07XFxuICAgICAgICB9KVxcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcXG4gICAgICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IGZhbHNlLFxcbiAgICAgICAgICAgICAgICBhcHBTdGF0ZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhcHBTdGF0ZSksIHsgZXJyb3JNZXNzYWdlOiBlcnJvci5tZXNzYWdlIH0pLFxcbiAgICAgICAgICAgIH07XFxuICAgICAgICB9KTtcXG4gICAgfSxcXG4gICAgY29udGV4dEl0ZW1MYWJlbDogXFxcImxhYmVscy5hZGRUb0xpYnJhcnlcXFwiLFxcbn0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNUJaR1JVYjB4cFluSmhjbmt1ZEhNdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3p0QlFVRnpRenRCUVVOVE8wRkJRMGs3UVVGRFN6dEJRVU51UWp0QlFVTlVPMEZCUlhKQ0xFMUJRVTBzYTBKQlFXdENMRWRCUVVjc2JVUkJRVkVzUTBGQlF6dEpRVU42UXl4SlFVRkpMRVZCUVVVc1kwRkJZenRKUVVOd1FpeFBRVUZQTEVWQlFVVXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0UlFVTjBReXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMREpFUVVGdFFpeERRVU14UXl3clJFRkJjVUlzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZETDBJc1VVRkJVU3hGUVVOU0xFbEJRVWtzUTBGRFRDeERRVUZETzFGQlEwWXNTVUZCU1N4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEV0QlFVc3NUMEZCVHl4RFFVRkRMRVZCUVVVN1dVRkRhRVVzVDBGQlR6dG5Ra0ZEVEN4bFFVRmxMRVZCUVVVc1MwRkJTenRuUWtGRGRFSXNVVUZCVVN4clEwRkRTQ3hSUVVGUkxFdEJRMWdzV1VGQldTeEZRVUZGTEhWRVFVRjFSQ3hIUVVOMFJUdGhRVU5HTEVOQlFVTTdVMEZEU0R0UlFVVkVMRTlCUVU4c1IwRkJSeXhEUVVGRExFOUJRVTg3WVVGRFppeFhRVUZYTEVWQlFVVTdZVUZEWWl4SlFVRkpMRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJUdFpRVU5rTEU5QlFVOHNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGWExFTkJRVU03WjBKQlF6ZENPMjlDUVVORkxFVkJRVVVzUlVGQlJTeHBSRUZCVVN4RlFVRkZPMjlDUVVOa0xFMUJRVTBzUlVGQlJTeGhRVUZoTzI5Q1FVTnlRaXhSUVVGUkxFVkJRVVVzWjBKQlFXZENMRU5CUVVNc1IwRkJSeXhEUVVGRExHZEZRVUZsTEVOQlFVTTdiMEpCUXk5RExFOUJRVThzUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RlFVRkZPMmxDUVVOd1FqdG5Ra0ZEUkN4SFFVRkhMRXRCUVVzN1lVRkRWQ3hEUVVGRExFTkJRVU03VVVGRFRDeERRVUZETEVOQlFVTTdZVUZEUkN4SlFVRkpMRU5CUVVNc1IwRkJSeXhGUVVGRk8xbEJRMVFzVDBGQlR6dG5Ra0ZEVEN4bFFVRmxMRVZCUVVVc1MwRkJTenRuUWtGRGRFSXNVVUZCVVN4clEwRkRTQ3hSUVVGUkxFdEJRMWdzV1VGQldTeEZRVUZGTEhkRFFVRkRMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNSMEZEZUVNN1lVRkRSaXhEUVVGRE8xRkJRMG9zUTBGQlF5eERRVUZETzJGQlEwUXNTMEZCU3l4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVU3V1VGRFppeFBRVUZQTzJkQ1FVTk1MR1ZCUVdVc1JVRkJSU3hMUVVGTE8yZENRVU4wUWl4UlFVRlJMR3REUVVOSUxGRkJRVkVzUzBGRFdDeFpRVUZaTEVWQlFVVXNTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkROVUk3WVVGRFJpeERRVUZETzFGQlEwb3NRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRVQ3hEUVVGRE8wbEJRMFFzWjBKQlFXZENMRVZCUVVVc2NVSkJRWEZDTzBOQlEzaERMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5aFkzUnBiMjV6TDJGamRHbHZia0ZrWkZSdlRHbGljbUZ5ZVM1MGN6ODBNekprSWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lISmxaMmx6ZEdWeUlIMGdabkp2YlNCY0lpNHZjbVZuYVhOMFpYSmNJanRjYm1sdGNHOXlkQ0I3SUdkbGRGTmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNZ2ZTQm1jbTl0SUZ3aUxpNHZjMk5sYm1WY0lqdGNibWx0Y0c5eWRDQjdJR2RsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3lCOUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MFhDSTdYRzVwYlhCdmNuUWdleUJrWldWd1EyOXdlVVZzWlcxbGJuUWdmU0JtY205dElGd2lMaTR2Wld4bGJXVnVkQzl1WlhkRmJHVnRaVzUwWENJN1hHNXBiWEJ2Y25RZ2V5QnlZVzVrYjIxSlpDQjlJR1p5YjIwZ1hDSXVMaTl5WVc1a2IyMWNJanRjYm1sdGNHOXlkQ0I3SUhRZ2ZTQm1jbTl0SUZ3aUxpNHZhVEU0Ymx3aU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1lXTjBhVzl1UVdSa1ZHOU1hV0p5WVhKNUlEMGdjbVZuYVhOMFpYSW9lMXh1SUNCdVlXMWxPaUJjSW1Ga1pGUnZUR2xpY21GeWVWd2lMRnh1SUNCd1pYSm1iM0p0T2lBb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQmZMQ0JoY0hBcElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCelpXeGxZM1JsWkVWc1pXMWxiblJ6SUQwZ1oyVjBVMlZzWldOMFpXUkZiR1Z0Wlc1MGN5aGNiaUFnSUNBZ0lHZGxkRTV2YmtSbGJHVjBaV1JGYkdWdFpXNTBjeWhsYkdWdFpXNTBjeWtzWEc0Z0lDQWdJQ0JoY0hCVGRHRjBaU3hjYmlBZ0lDQWdJSFJ5ZFdVc1hHNGdJQ0FnS1R0Y2JpQWdJQ0JwWmlBb2MyVnNaV04wWldSRmJHVnRaVzUwY3k1emIyMWxLQ2hsYkdWdFpXNTBLU0E5UGlCbGJHVnRaVzUwTG5SNWNHVWdQVDA5SUZ3aWFXMWhaMlZjSWlrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNBZ0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVRvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0FnSUdGd2NGTjBZWFJsT2lCN1hHNGdJQ0FnSUNBZ0lDQWdMaTR1WVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0FnSUNBZ1pYSnliM0pOWlhOellXZGxPaUJjSWxOMWNIQnZjblFnWm05eUlHRmtaR2x1WnlCcGJXRm5aWE1nZEc4Z2RHaGxJR3hwWW5KaGNua2dZMjl0YVc1bklITnZiMjRoWENJc1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCaGNIQXViR2xpY21GeWVWeHVJQ0FnSUNBZ0xteHZZV1JNYVdKeVlYSjVLQ2xjYmlBZ0lDQWdJQzUwYUdWdUtDaHBkR1Z0Y3lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZWEJ3TG14cFluSmhjbmt1YzJGMlpVeHBZbkpoY25rb1cxeHVJQ0FnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbGtPaUJ5WVc1a2IyMUpaQ2dwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM1JoZEhWek9pQmNJblZ1Y0hWaWJHbHphR1ZrWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBjem9nYzJWc1pXTjBaV1JGYkdWdFpXNTBjeTV0WVhBb1pHVmxjRU52Y0hsRmJHVnRaVzUwS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJR055WldGMFpXUTZJRVJoZEdVdWJtOTNLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0F1TGk1cGRHVnRjeXhjYmlBZ0lDQWdJQ0FnWFNrN1hHNGdJQ0FnSUNCOUtWeHVJQ0FnSUNBZ0xuUm9aVzRvS0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJXMXBkRlJ2U0dsemRHOXllVG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJQ0FnWVhCd1UzUmhkR1U2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQzR1TG1Gd2NGTjBZWFJsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkRzloYzNSTlpYTnpZV2RsT2lCMEtGd2lkRzloYzNRdVlXUmtaV1JVYjB4cFluSmhjbmxjSWlrc1hHNGdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUgwcFhHNGdJQ0FnSUNBdVkyRjBZMmdvS0dWeWNtOXlLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNBZ0lDQWdZMjl0YldsMFZHOUlhWE4wYjNKNU9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpUb2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0xpNHVZWEJ3VTNSaGRHVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCbGNuSnZjazFsYzNOaFoyVTZJR1Z5Y205eUxtMWxjM05oWjJVc1hHNGdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUgwcE8xeHVJQ0I5TEZ4dUlDQmpiMjUwWlhoMFNYUmxiVXhoWW1Wc09pQmNJbXhoWW1Wc2N5NWhaR1JVYjB4cFluSmhjbmxjSWl4Y2JuMHBPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9hY3Rpb25zL2FjdGlvbkFkZFRvTGlicmFyeS50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25BbGlnbi50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vYWN0aW9ucy9hY3Rpb25BbGlnbi50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkFsaWduVG9wXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uQWxpZ25Ub3ApLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkFsaWduQm90dG9tXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uQWxpZ25Cb3R0b20pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkFsaWduTGVmdFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvbkFsaWduTGVmdCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQWxpZ25SaWdodFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvbkFsaWduUmlnaHQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkFsaWduVmVydGljYWxseUNlbnRlcmVkXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uQWxpZ25WZXJ0aWNhbGx5Q2VudGVyZWQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkFsaWduSG9yaXpvbnRhbGx5Q2VudGVyZWRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25BbGlnbkhvcml6b250YWxseUNlbnRlcmVkKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYWxpZ25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2FsaWduICovIFxcXCIuLi8uLi9hbGlnbi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29tcG9uZW50cy9pY29ucyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9pY29ucy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1Rvb2xCdXR0b24udHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pMThuICovIFxcXCIuLi8uLi9pMThuLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9rZXlzICovIFxcXCIuLi8uLi9rZXlzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vc2NlbmUgKi8gXFxcIi4uLy4uL3NjZW5lL2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vdXRpbHMgKi8gXFxcIi4uLy4uL3V0aWxzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9yZWdpc3RlciAqLyBcXFwiLi4vLi4vYWN0aW9ucy9yZWdpc3Rlci50c1xcXCIpO1xcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcbmNvbnN0IGVuYWJsZUFjdGlvbkdyb3VwID0gKGVsZW1lbnRzLCBhcHBTdGF0ZSkgPT4gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uZ2V0U2VsZWN0ZWRFbGVtZW50cykoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKSwgYXBwU3RhdGUpLmxlbmd0aCA+IDE7XFxuY29uc3QgYWxpZ25TZWxlY3RlZEVsZW1lbnRzID0gKGVsZW1lbnRzLCBhcHBTdGF0ZSwgYWxpZ25tZW50KSA9PiB7XFxuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5nZXRTZWxlY3RlZEVsZW1lbnRzKSgoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmdldE5vbkRlbGV0ZWRFbGVtZW50cykoZWxlbWVudHMpLCBhcHBTdGF0ZSk7XFxuICAgIGNvbnN0IHVwZGF0ZWRFbGVtZW50cyA9ICgwLF9hbGlnbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmFsaWduRWxlbWVudHMpKHNlbGVjdGVkRWxlbWVudHMsIGFsaWdubWVudCk7XFxuICAgIGNvbnN0IHVwZGF0ZWRFbGVtZW50c01hcCA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmFycmF5VG9NYXApKHVwZGF0ZWRFbGVtZW50cyk7XFxuICAgIHJldHVybiBlbGVtZW50cy5tYXAoKGVsZW1lbnQpID0+IHVwZGF0ZWRFbGVtZW50c01hcC5nZXQoZWxlbWVudC5pZCkgfHwgZWxlbWVudCk7XFxufTtcXG5jb25zdCBhY3Rpb25BbGlnblRvcCA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJhbGlnblRvcFxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgYXBwU3RhdGUsXFxuICAgICAgICAgICAgZWxlbWVudHM6IGFsaWduU2VsZWN0ZWRFbGVtZW50cyhlbGVtZW50cywgYXBwU3RhdGUsIHtcXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IFxcXCJzdGFydFxcXCIsXFxuICAgICAgICAgICAgICAgIGF4aXM6IFxcXCJ5XFxcIixcXG4gICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBrZXlUZXN0OiAoZXZlbnQpID0+IGV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uS0VZUy5DVFJMX09SX0NNRF0gJiYgZXZlbnQuc2hpZnRLZXkgJiYgZXZlbnQua2V5ID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLktFWVMuQVJST1dfVVAsXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyBlbGVtZW50cywgYXBwU3RhdGUsIHVwZGF0ZURhdGEgfSkgPT4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uVG9vbEJ1dHRvbiwgeyBoaWRkZW46ICFlbmFibGVBY3Rpb25Hcm91cChlbGVtZW50cywgYXBwU3RhdGUpLCB0eXBlOiBcXFwiYnV0dG9uXFxcIiwgaWNvbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQWxpZ25Ub3BJY29uLCB7IHRoZW1lOiBhcHBTdGF0ZS50aGVtZSB9LCB2b2lkIDApLCBvbkNsaWNrOiAoKSA9PiB1cGRhdGVEYXRhKG51bGwpLCB0aXRsZTogYCR7KDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy50KShcXFwibGFiZWxzLmFsaWduVG9wXFxcIil9IFx1MjAxNCAkeygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK1NoaWZ0K1VwXFxcIil9YCwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnQpKFxcXCJsYWJlbHMuYWxpZ25Ub3BcXFwiKSwgdmlzaWJsZTogKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uaXNTb21lRWxlbWVudFNlbGVjdGVkKSgoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmdldE5vbkRlbGV0ZWRFbGVtZW50cykoZWxlbWVudHMpLCBhcHBTdGF0ZSkgfSwgdm9pZCAwKSksXFxufSk7XFxuY29uc3QgYWN0aW9uQWxpZ25Cb3R0b20gPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiYWxpZ25Cb3R0b21cXFwiLFxcbiAgICBwZXJmb3JtOiAoZWxlbWVudHMsIGFwcFN0YXRlKSA9PiB7XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGFwcFN0YXRlLFxcbiAgICAgICAgICAgIGVsZW1lbnRzOiBhbGlnblNlbGVjdGVkRWxlbWVudHMoZWxlbWVudHMsIGFwcFN0YXRlLCB7XFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcXFwiZW5kXFxcIixcXG4gICAgICAgICAgICAgICAgYXhpczogXFxcInlcXFwiLFxcbiAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogdHJ1ZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIGtleVRlc3Q6IChldmVudCkgPT4gZXZlbnRbX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5LRVlTLkNUUkxfT1JfQ01EXSAmJiBldmVudC5zaGlmdEtleSAmJiBldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uS0VZUy5BUlJPV19ET1dOLFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgZWxlbWVudHMsIGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLlRvb2xCdXR0b24sIHsgaGlkZGVuOiAhZW5hYmxlQWN0aW9uR3JvdXAoZWxlbWVudHMsIGFwcFN0YXRlKSwgdHlwZTogXFxcImJ1dHRvblxcXCIsIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkFsaWduQm90dG9tSWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSwgb25DbGljazogKCkgPT4gdXBkYXRlRGF0YShudWxsKSwgdGl0bGU6IGAkeygwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18udCkoXFxcImxhYmVscy5hbGlnbkJvdHRvbVxcXCIpfSBcdTIwMTQgJHsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtTaGlmdCtEb3duXFxcIil9YCwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnQpKFxcXCJsYWJlbHMuYWxpZ25Cb3R0b21cXFwiKSwgdmlzaWJsZTogKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uaXNTb21lRWxlbWVudFNlbGVjdGVkKSgoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmdldE5vbkRlbGV0ZWRFbGVtZW50cykoZWxlbWVudHMpLCBhcHBTdGF0ZSkgfSwgdm9pZCAwKSksXFxufSk7XFxuY29uc3QgYWN0aW9uQWxpZ25MZWZ0ID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImFsaWduTGVmdFxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgYXBwU3RhdGUsXFxuICAgICAgICAgICAgZWxlbWVudHM6IGFsaWduU2VsZWN0ZWRFbGVtZW50cyhlbGVtZW50cywgYXBwU3RhdGUsIHtcXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IFxcXCJzdGFydFxcXCIsXFxuICAgICAgICAgICAgICAgIGF4aXM6IFxcXCJ4XFxcIixcXG4gICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBrZXlUZXN0OiAoZXZlbnQpID0+IGV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uS0VZUy5DVFJMX09SX0NNRF0gJiYgZXZlbnQuc2hpZnRLZXkgJiYgZXZlbnQua2V5ID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLktFWVMuQVJST1dfTEVGVCxcXG4gICAgUGFuZWxDb21wb25lbnQ6ICh7IGVsZW1lbnRzLCBhcHBTdGF0ZSwgdXBkYXRlRGF0YSB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5Ub29sQnV0dG9uLCB7IGhpZGRlbjogIWVuYWJsZUFjdGlvbkdyb3VwKGVsZW1lbnRzLCBhcHBTdGF0ZSksIHR5cGU6IFxcXCJidXR0b25cXFwiLCBpY29uOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5BbGlnbkxlZnRJY29uLCB7IHRoZW1lOiBhcHBTdGF0ZS50aGVtZSB9LCB2b2lkIDApLCBvbkNsaWNrOiAoKSA9PiB1cGRhdGVEYXRhKG51bGwpLCB0aXRsZTogYCR7KDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy50KShcXFwibGFiZWxzLmFsaWduTGVmdFxcXCIpfSBcdTIwMTQgJHsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtTaGlmdCtMZWZ0XFxcIil9YCwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnQpKFxcXCJsYWJlbHMuYWxpZ25MZWZ0XFxcIiksIHZpc2libGU6ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmlzU29tZUVsZW1lbnRTZWxlY3RlZCkoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKSwgYXBwU3RhdGUpIH0sIHZvaWQgMCkpLFxcbn0pO1xcbmNvbnN0IGFjdGlvbkFsaWduUmlnaHQgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiYWxpZ25SaWdodFxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgYXBwU3RhdGUsXFxuICAgICAgICAgICAgZWxlbWVudHM6IGFsaWduU2VsZWN0ZWRFbGVtZW50cyhlbGVtZW50cywgYXBwU3RhdGUsIHtcXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IFxcXCJlbmRcXFwiLFxcbiAgICAgICAgICAgICAgICBheGlzOiBcXFwieFxcXCIsXFxuICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiB0cnVlLFxcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiBldmVudFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLktFWVMuQ1RSTF9PUl9DTURdICYmIGV2ZW50LnNoaWZ0S2V5ICYmIGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5LRVlTLkFSUk9XX1JJR0hULFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgZWxlbWVudHMsIGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLlRvb2xCdXR0b24sIHsgaGlkZGVuOiAhZW5hYmxlQWN0aW9uR3JvdXAoZWxlbWVudHMsIGFwcFN0YXRlKSwgdHlwZTogXFxcImJ1dHRvblxcXCIsIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkFsaWduUmlnaHRJY29uLCB7IHRoZW1lOiBhcHBTdGF0ZS50aGVtZSB9LCB2b2lkIDApLCBvbkNsaWNrOiAoKSA9PiB1cGRhdGVEYXRhKG51bGwpLCB0aXRsZTogYCR7KDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy50KShcXFwibGFiZWxzLmFsaWduUmlnaHRcXFwiKX0gXHUyMDE0ICR7KDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrU2hpZnQrUmlnaHRcXFwiKX1gLCBcXFwiYXJpYS1sYWJlbFxcXCI6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18udCkoXFxcImxhYmVscy5hbGlnblJpZ2h0XFxcIiksIHZpc2libGU6ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmlzU29tZUVsZW1lbnRTZWxlY3RlZCkoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKSwgYXBwU3RhdGUpIH0sIHZvaWQgMCkpLFxcbn0pO1xcbmNvbnN0IGFjdGlvbkFsaWduVmVydGljYWxseUNlbnRlcmVkID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImFsaWduVmVydGljYWxseUNlbnRlcmVkXFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSkgPT4ge1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBhcHBTdGF0ZSxcXG4gICAgICAgICAgICBlbGVtZW50czogYWxpZ25TZWxlY3RlZEVsZW1lbnRzKGVsZW1lbnRzLCBhcHBTdGF0ZSwge1xcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogXFxcImNlbnRlclxcXCIsXFxuICAgICAgICAgICAgICAgIGF4aXM6IFxcXCJ5XFxcIixcXG4gICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgZWxlbWVudHMsIGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLlRvb2xCdXR0b24sIHsgaGlkZGVuOiAhZW5hYmxlQWN0aW9uR3JvdXAoZWxlbWVudHMsIGFwcFN0YXRlKSwgdHlwZTogXFxcImJ1dHRvblxcXCIsIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkNlbnRlclZlcnRpY2FsbHlJY29uLCB7IHRoZW1lOiBhcHBTdGF0ZS50aGVtZSB9LCB2b2lkIDApLCBvbkNsaWNrOiAoKSA9PiB1cGRhdGVEYXRhKG51bGwpLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy50KShcXFwibGFiZWxzLmNlbnRlclZlcnRpY2FsbHlcXFwiKSwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnQpKFxcXCJsYWJlbHMuY2VudGVyVmVydGljYWxseVxcXCIpLCB2aXNpYmxlOiAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5pc1NvbWVFbGVtZW50U2VsZWN0ZWQpKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKShlbGVtZW50cyksIGFwcFN0YXRlKSB9LCB2b2lkIDApKSxcXG59KTtcXG5jb25zdCBhY3Rpb25BbGlnbkhvcml6b250YWxseUNlbnRlcmVkID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImFsaWduSG9yaXpvbnRhbGx5Q2VudGVyZWRcXFwiLFxcbiAgICBwZXJmb3JtOiAoZWxlbWVudHMsIGFwcFN0YXRlKSA9PiB7XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGFwcFN0YXRlLFxcbiAgICAgICAgICAgIGVsZW1lbnRzOiBhbGlnblNlbGVjdGVkRWxlbWVudHMoZWxlbWVudHMsIGFwcFN0YXRlLCB7XFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcXFwiY2VudGVyXFxcIixcXG4gICAgICAgICAgICAgICAgYXhpczogXFxcInhcXFwiLFxcbiAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogdHJ1ZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyBlbGVtZW50cywgYXBwU3RhdGUsIHVwZGF0ZURhdGEgfSkgPT4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uVG9vbEJ1dHRvbiwgeyBoaWRkZW46ICFlbmFibGVBY3Rpb25Hcm91cChlbGVtZW50cywgYXBwU3RhdGUpLCB0eXBlOiBcXFwiYnV0dG9uXFxcIiwgaWNvbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQ2VudGVySG9yaXpvbnRhbGx5SWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSwgb25DbGljazogKCkgPT4gdXBkYXRlRGF0YShudWxsKSwgdGl0bGU6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18udCkoXFxcImxhYmVscy5jZW50ZXJIb3Jpem9udGFsbHlcXFwiKSwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnQpKFxcXCJsYWJlbHMuY2VudGVySG9yaXpvbnRhbGx5XFxcIiksIHZpc2libGU6ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmlzU29tZUVsZW1lbnRTZWxlY3RlZCkoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKSwgYXBwU3RhdGUpIH0sIHZvaWQgMCkpLFxcbn0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNUJiR2xuYmk1MGMzZ3Vhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3pzN096czdRVUZCYjBRN1FVRlJka0k3UVVGRGVVSTdRVUZEU0R0QlFVVjJRanRCUVVOSE8wRkJRM1ZETzBGQlJXaENPMEZCUTJoQ08wRkJSWFJETEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzUTBGRGVFSXNVVUZCYzBNc1JVRkRkRU1zVVVGQmEwSXNSVUZEYkVJc1JVRkJSU3hEUVVGRExESkVRVUZ0UWl4RFFVRkRMQ3RFUVVGeFFpeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZGTDBVc1RVRkJUU3h4UWtGQmNVSXNSMEZCUnl4RFFVTTFRaXhSUVVGelF5eEZRVU4wUXl4UlFVRTBRaXhGUVVNMVFpeFRRVUZ2UWl4RlFVTndRaXhGUVVGRk8wbEJRMFlzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXd5UkVGQmJVSXNRMEZETVVNc0swUkJRWEZDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRVZCUXk5Q0xGRkJRVkVzUTBGRFZDeERRVUZETzBsQlJVWXNUVUZCVFN4bFFVRmxMRWRCUVVjc2NVUkJRV0VzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dEpRVVZ1UlN4TlFVRk5MR3RDUVVGclFpeEhRVUZITEd0RVFVRlZMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU03U1VGRmRrUXNUMEZCVHl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVOcVFpeERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlF6TkVMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEdOQlFXTXNSMEZCUnl4dFJFRkJVU3hEUVVGRE8wbEJRM0pETEVsQlFVa3NSVUZCUlN4VlFVRlZPMGxCUTJoQ0xFOUJRVThzUlVGQlJTeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUVVVc1JVRkJSVHRSUVVNNVFpeFBRVUZQTzFsQlEwd3NVVUZCVVR0WlFVTlNMRkZCUVZFc1JVRkJSU3h4UWtGQmNVSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRk8yZENRVU5zUkN4UlFVRlJMRVZCUVVVc1QwRkJUenRuUWtGRGFrSXNTVUZCU1N4RlFVRkZMRWRCUVVjN1lVRkRWaXhEUVVGRE8xbEJRMFlzWlVGQlpTeEZRVUZGTEVsQlFVazdVMEZEZEVJc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRFJDeFBRVUZQTEVWQlFVVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVOcVFpeExRVUZMTEVOQlFVTXNiVVJCUVdkQ0xFTkJRVU1zU1VGQlNTeExRVUZMTEVOQlFVTXNVVUZCVVN4SlFVRkpMRXRCUVVzc1EwRkJReXhIUVVGSExFdEJRVXNzWjBSQlFXRTdTVUZETVVVc1kwRkJZeXhGUVVGRkxFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZMRlZCUVZVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVU4wUkN4MVJFRkJReXc0UkVGQlZTeEpRVU5VTEUxQlFVMHNSVUZCUlN4RFFVRkRMR2xDUVVGcFFpeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRU5CUVVNc1JVRkRPVU1zU1VGQlNTeEZRVUZETEZGQlFWRXNSVUZEWWl4SlFVRkpMRVZCUVVVc2RVUkJRVU1zTWtSQlFWa3NTVUZCUXl4TFFVRkxMRVZCUVVVc1VVRkJVU3hEUVVGRExFdEJRVXNzVjBGQlNTeEZRVU0zUXl4UFFVRlBMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVTXZRaXhMUVVGTExFVkJRVVVzUjBGQlJ5eDNRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEUxQlFVMHNjMFJCUVdNc1EwRkRhRVFzYjBKQlFXOUNMRU5CUTNKQ0xFVkJRVVVzWjBKQlExTXNkME5CUVVNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RlFVTm9ReXhQUVVGUExFVkJRVVVzTmtSQlFYRkNMRU5CUVVNc0swUkJRWEZDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRVZCUVVVc1VVRkJVU3hEUVVGRExGZEJRM3BGTEVOQlEwZzdRMEZEUml4RFFVRkRMRU5CUVVNN1FVRkZTU3hOUVVGTkxHbENRVUZwUWl4SFFVRkhMRzFFUVVGUkxFTkJRVU03U1VGRGVFTXNTVUZCU1N4RlFVRkZMR0ZCUVdFN1NVRkRia0lzVDBGQlR5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hGUVVGRk8xRkJRemxDTEU5QlFVODdXVUZEVEN4UlFVRlJPMWxCUTFJc1VVRkJVU3hGUVVGRkxIRkNRVUZ4UWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVU3WjBKQlEyeEVMRkZCUVZFc1JVRkJSU3hMUVVGTE8yZENRVU5tTEVsQlFVa3NSVUZCUlN4SFFVRkhPMkZCUTFZc1EwRkJRenRaUVVOR0xHVkJRV1VzUlVGQlJTeEpRVUZKTzFOQlEzUkNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJRMFFzVDBGQlR5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkRha0lzUzBGQlN5eERRVUZETEcxRVFVRm5RaXhEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZETEZGQlFWRXNTVUZCU1N4TFFVRkxMRU5CUVVNc1IwRkJSeXhMUVVGTExHdEVRVUZsTzBsQlF6VkZMR05CUVdNc1JVRkJSU3hEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4VlFVRlZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGRGRFUXNkVVJCUVVNc09FUkJRVlVzU1VGRFZDeE5RVUZOTEVWQlFVVXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RFFVRkRMRVZCUXpsRExFbEJRVWtzUlVGQlF5eFJRVUZSTEVWQlEySXNTVUZCU1N4RlFVRkZMSFZFUVVGRExEaEVRVUZsTEVsQlFVTXNTMEZCU3l4RlFVRkZMRkZCUVZFc1EwRkJReXhMUVVGTExGZEJRVWtzUlVGRGFFUXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZETDBJc1MwRkJTeXhGUVVGRkxFZEJRVWNzZDBOQlFVTXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5eE5RVUZOTEhORVFVRmpMRU5CUTI1RUxITkNRVUZ6UWl4RFFVTjJRaXhGUVVGRkxHZENRVU5UTEhkRFFVRkRMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNSVUZEYmtNc1QwRkJUeXhGUVVGRkxEWkVRVUZ4UWl4RFFVRkRMQ3RFUVVGeFFpeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMRkZCUVZFc1EwRkJReXhYUVVONlJTeERRVU5JTzBOQlEwWXNRMEZCUXl4RFFVRkRPMEZCUlVrc1RVRkJUU3hsUVVGbExFZEJRVWNzYlVSQlFWRXNRMEZCUXp0SlFVTjBReXhKUVVGSkxFVkJRVVVzVjBGQlZ6dEpRVU5xUWl4UFFVRlBMRVZCUVVVc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVWQlFVVTdVVUZET1VJc1QwRkJUenRaUVVOTUxGRkJRVkU3V1VGRFVpeFJRVUZSTEVWQlFVVXNjVUpCUVhGQ0xFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlR0blFrRkRiRVFzVVVGQlVTeEZRVUZGTEU5QlFVODdaMEpCUTJwQ0xFbEJRVWtzUlVGQlJTeEhRVUZITzJGQlExWXNRMEZCUXp0WlFVTkdMR1ZCUVdVc1JVRkJSU3hKUVVGSk8xTkJRM1JDTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUTBRc1QwRkJUeXhGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZEYWtJc1MwRkJTeXhEUVVGRExHMUVRVUZuUWl4RFFVRkRMRWxCUVVrc1MwRkJTeXhEUVVGRExGRkJRVkVzU1VGQlNTeExRVUZMTEVOQlFVTXNSMEZCUnl4TFFVRkxMR3RFUVVGbE8wbEJRelZGTEdOQlFXTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFZRVUZWTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkRkRVFzZFVSQlFVTXNPRVJCUVZVc1NVRkRWQ3hOUVVGTkxFVkJRVVVzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeERRVUZETEVWQlF6bERMRWxCUVVrc1JVRkJReXhSUVVGUkxFVkJRMklzU1VGQlNTeEZRVUZGTEhWRVFVRkRMRFJFUVVGaExFbEJRVU1zUzBGQlN5eEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRmRCUVVrc1JVRkRPVU1zVDBGQlR5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGREwwSXNTMEZCU3l4RlFVRkZMRWRCUVVjc2QwTkJRVU1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhOUVVGTkxITkVRVUZqTEVOQlEycEVMSE5DUVVGelFpeERRVU4yUWl4RlFVRkZMR2RDUVVOVExIZERRVUZETEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUlVGRGFrTXNUMEZCVHl4RlFVRkZMRFpFUVVGeFFpeERRVUZETEN0RVFVRnhRaXhEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEZGQlFWRXNRMEZCUXl4WFFVTjZSU3hEUVVOSU8wTkJRMFlzUTBGQlF5eERRVUZETzBGQlJVa3NUVUZCVFN4blFrRkJaMElzUjBGQlJ5eHRSRUZCVVN4RFFVRkRPMGxCUTNaRExFbEJRVWtzUlVGQlJTeFpRVUZaTzBsQlEyeENMRTlCUVU4c1JVRkJSU3hEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVXNSVUZCUlR0UlFVTTVRaXhQUVVGUE8xbEJRMHdzVVVGQlVUdFpRVU5TTEZGQlFWRXNSVUZCUlN4eFFrRkJjVUlzUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZPMmRDUVVOc1JDeFJRVUZSTEVWQlFVVXNTMEZCU3p0blFrRkRaaXhKUVVGSkxFVkJRVVVzUjBGQlJ6dGhRVU5XTEVOQlFVTTdXVUZEUml4bFFVRmxMRVZCUVVVc1NVRkJTVHRUUVVOMFFpeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVTkVMRTlCUVU4c1JVRkJSU3hEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlEycENMRXRCUVVzc1EwRkJReXh0UkVGQlowSXNRMEZCUXl4SlFVRkpMRXRCUVVzc1EwRkJReXhSUVVGUkxFbEJRVWtzUzBGQlN5eERRVUZETEVkQlFVY3NTMEZCU3l4dFJFRkJaMEk3U1VGRE4wVXNZMEZCWXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEZWQlFWVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVOMFJDeDFSRUZCUXl3NFJFRkJWU3hKUVVOVUxFMUJRVTBzUlVGQlJTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVOQlFVTXNSVUZET1VNc1NVRkJTU3hGUVVGRExGRkJRVkVzUlVGRFlpeEpRVUZKTEVWQlFVVXNkVVJCUVVNc05rUkJRV01zU1VGQlF5eExRVUZMTEVWQlFVVXNVVUZCVVN4RFFVRkRMRXRCUVVzc1YwRkJTU3hGUVVNdlF5eFBRVUZQTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVU12UWl4TFFVRkxMRVZCUVVVc1IwRkJSeXgzUTBGQlF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFMUJRVTBzYzBSQlFXTXNRMEZEYkVRc2RVSkJRWFZDTEVOQlEzaENMRVZCUVVVc1owSkJRMU1zZDBOQlFVTXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eEZRVU5zUXl4UFFVRlBMRVZCUVVVc05rUkJRWEZDTEVOQlFVTXNLMFJCUVhGQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNVVUZCVVN4RFFVRkRMRmRCUTNwRkxFTkJRMGc3UTBGRFJpeERRVUZETEVOQlFVTTdRVUZGU1N4TlFVRk5MRFpDUVVFMlFpeEhRVUZITEcxRVFVRlJMRU5CUVVNN1NVRkRjRVFzU1VGQlNTeEZRVUZGTEhsQ1FVRjVRanRKUVVNdlFpeFBRVUZQTEVWQlFVVXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVU3VVVGRE9VSXNUMEZCVHp0WlFVTk1MRkZCUVZFN1dVRkRVaXhSUVVGUkxFVkJRVVVzY1VKQlFYRkNMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJUdG5Ra0ZEYkVRc1VVRkJVU3hGUVVGRkxGRkJRVkU3WjBKQlEyeENMRWxCUVVrc1JVRkJSU3hIUVVGSE8yRkJRMVlzUTBGQlF6dFpRVU5HTEdWQlFXVXNSVUZCUlN4SlFVRkpPMU5CUTNSQ0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlEwUXNZMEZCWXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEZWQlFWVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVOMFJDeDFSRUZCUXl3NFJFRkJWU3hKUVVOVUxFMUJRVTBzUlVGQlJTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVOQlFVTXNSVUZET1VNc1NVRkJTU3hGUVVGRExGRkJRVkVzUlVGRFlpeEpRVUZKTEVWQlFVVXNkVVJCUVVNc2JVVkJRVzlDTEVsQlFVTXNTMEZCU3l4RlFVRkZMRkZCUVZFc1EwRkJReXhMUVVGTExGZEJRVWtzUlVGRGNrUXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZETDBJc1MwRkJTeXhGUVVGRkxIZERRVUZETEVOQlFVTXNlVUpCUVhsQ0xFTkJRVU1zWjBKQlEzWkNMSGREUVVGRExFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1JVRkRlRU1zVDBGQlR5eEZRVUZGTERaRVFVRnhRaXhEUVVGRExDdEVRVUZ4UWl4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF5eFhRVU42UlN4RFFVTklPME5CUTBZc1EwRkJReXhEUVVGRE8wRkJSVWtzVFVGQlRTd3JRa0ZCSzBJc1IwRkJSeXh0UkVGQlVTeERRVUZETzBsQlEzUkVMRWxCUVVrc1JVRkJSU3d5UWtGQk1rSTdTVUZEYWtNc1QwRkJUeXhGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4RlFVRkZPMUZCUXpsQ0xFOUJRVTg3V1VGRFRDeFJRVUZSTzFsQlExSXNVVUZCVVN4RlFVRkZMSEZDUVVGeFFpeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUVVVN1owSkJRMnhFTEZGQlFWRXNSVUZCUlN4UlFVRlJPMmRDUVVOc1FpeEpRVUZKTEVWQlFVVXNSMEZCUnp0aFFVTldMRU5CUVVNN1dVRkRSaXhsUVVGbExFVkJRVVVzU1VGQlNUdFRRVU4wUWl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVORUxHTkJRV01zUlVGQlJTeERRVUZETEVWQlFVVXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hWUVVGVkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZEZEVRc2RVUkJRVU1zT0VSQlFWVXNTVUZEVkN4TlFVRk5MRVZCUVVVc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hEUVVGRExFVkJRemxETEVsQlFVa3NSVUZCUXl4UlFVRlJMRVZCUTJJc1NVRkJTU3hGUVVGRkxIVkVRVUZETEhGRlFVRnpRaXhKUVVGRExFdEJRVXNzUlVGQlJTeFJRVUZSTEVOQlFVTXNTMEZCU3l4WFFVRkpMRVZCUTNaRUxFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJReTlDTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExESkNRVUV5UWl4RFFVRkRMR2RDUVVONlFpeDNRMEZCUXl4RFFVRkRMREpDUVVFeVFpeERRVUZETEVWQlF6RkRMRTlCUVU4c1JVRkJSU3cyUkVGQmNVSXNRMEZCUXl3clJFRkJjVUlzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlN4UlFVRlJMRU5CUVVNc1YwRkRla1VzUTBGRFNEdERRVU5HTEVOQlFVTXNRMEZCUXlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWhZM1JwYjI1ekwyRmpkR2x2YmtGc2FXZHVMblJ6ZUQ5bU5XRXlJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUdGc2FXZHVSV3hsYldWdWRITXNJRUZzYVdkdWJXVnVkQ0I5SUdaeWIyMGdYQ0l1TGk5aGJHbG5ibHdpTzF4dWFXMXdiM0owSUh0Y2JpQWdRV3hwWjI1Q2IzUjBiMjFKWTI5dUxGeHVJQ0JCYkdsbmJreGxablJKWTI5dUxGeHVJQ0JCYkdsbmJsSnBaMmgwU1dOdmJpeGNiaUFnUVd4cFoyNVViM0JKWTI5dUxGeHVJQ0JEWlc1MFpYSkliM0pwZW05dWRHRnNiSGxKWTI5dUxGeHVJQ0JEWlc1MFpYSldaWEowYVdOaGJHeDVTV052Yml4Y2JuMGdabkp2YlNCY0lpNHVMMk52YlhCdmJtVnVkSE12YVdOdmJuTmNJanRjYm1sdGNHOXlkQ0I3SUZSdmIyeENkWFIwYjI0Z2ZTQm1jbTl0SUZ3aUxpNHZZMjl0Y0c5dVpXNTBjeTlVYjI5c1FuVjBkRzl1WENJN1hHNXBiWEJ2Y25RZ2V5Qm5aWFJPYjI1RVpXeGxkR1ZrUld4bGJXVnVkSE1nZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEZ3aU8xeHVhVzF3YjNKMElIc2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUWdmU0JtY205dElGd2lMaTR2Wld4bGJXVnVkQzkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnZENCOUlHWnliMjBnWENJdUxpOXBNVGh1WENJN1hHNXBiWEJ2Y25RZ2V5QkxSVmxUSUgwZ1puSnZiU0JjSWk0dUwydGxlWE5jSWp0Y2JtbHRjRzl5ZENCN0lHZGxkRk5sYkdWamRHVmtSV3hsYldWdWRITXNJR2x6VTI5dFpVVnNaVzFsYm5SVFpXeGxZM1JsWkNCOUlHWnliMjBnWENJdUxpOXpZMlZ1WlZ3aU8xeHVhVzF3YjNKMElIc2dRWEJ3VTNSaGRHVWdmU0JtY205dElGd2lMaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUdGeWNtRjVWRzlOWVhBc0lHZGxkRk5vYjNKMFkzVjBTMlY1SUgwZ1puSnZiU0JjSWk0dUwzVjBhV3h6WENJN1hHNXBiWEJ2Y25RZ2V5QnlaV2RwYzNSbGNpQjlJR1p5YjIwZ1hDSXVMM0psWjJsemRHVnlYQ0k3WEc1Y2JtTnZibk4wSUdWdVlXSnNaVUZqZEdsdmJrZHliM1Z3SUQwZ0tGeHVJQ0JsYkdWdFpXNTBjem9nY21WaFpHOXViSGtnUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFN4Y2JpQWdZWEJ3VTNSaGRHVTZJRUZ3Y0ZOMFlYUmxMRnh1S1NBOVBpQm5aWFJUWld4bFkzUmxaRVZzWlcxbGJuUnpLR2RsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3lobGJHVnRaVzUwY3lrc0lHRndjRk4wWVhSbEtTNXNaVzVuZEdnZ1BpQXhPMXh1WEc1amIyNXpkQ0JoYkdsbmJsTmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNZ1BTQW9YRzRnSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZExGeHVJQ0JoY0hCVGRHRjBaVG9nVW1WaFpHOXViSGs4UVhCd1UzUmhkR1UrTEZ4dUlDQmhiR2xuYm0xbGJuUTZJRUZzYVdkdWJXVnVkQ3hjYmlrZ1BUNGdlMXh1SUNCamIyNXpkQ0J6Wld4bFkzUmxaRVZzWlcxbGJuUnpJRDBnWjJWMFUyVnNaV04wWldSRmJHVnRaVzUwY3loY2JpQWdJQ0JuWlhST2IyNUVaV3hsZEdWa1JXeGxiV1Z1ZEhNb1pXeGxiV1Z1ZEhNcExGeHVJQ0FnSUdGd2NGTjBZWFJsTEZ4dUlDQXBPMXh1WEc0Z0lHTnZibk4wSUhWd1pHRjBaV1JGYkdWdFpXNTBjeUE5SUdGc2FXZHVSV3hsYldWdWRITW9jMlZzWldOMFpXUkZiR1Z0Wlc1MGN5d2dZV3hwWjI1dFpXNTBLVHRjYmx4dUlDQmpiMjV6ZENCMWNHUmhkR1ZrUld4bGJXVnVkSE5OWVhBZ1BTQmhjbkpoZVZSdlRXRndLSFZ3WkdGMFpXUkZiR1Z0Wlc1MGN5azdYRzVjYmlBZ2NtVjBkWEp1SUdWc1pXMWxiblJ6TG0xaGNDaGNiaUFnSUNBb1pXeGxiV1Z1ZENrZ1BUNGdkWEJrWVhSbFpFVnNaVzFsYm5SelRXRndMbWRsZENobGJHVnRaVzUwTG1sa0tTQjhmQ0JsYkdWdFpXNTBMRnh1SUNBcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR0ZqZEdsdmJrRnNhV2R1Vkc5d0lEMGdjbVZuYVhOMFpYSW9lMXh1SUNCdVlXMWxPaUJjSW1Gc2FXZHVWRzl3WENJc1hHNGdJSEJsY21admNtMDZJQ2hsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VwSUQwK0lIdGNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnWVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0JsYkdWdFpXNTBjem9nWVd4cFoyNVRaV3hsWTNSbFpFVnNaVzFsYm5SektHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTd2dlMXh1SUNBZ0lDQWdJQ0J3YjNOcGRHbHZiam9nWENKemRHRnlkRndpTEZ4dUlDQWdJQ0FnSUNCaGVHbHpPaUJjSW5sY0lpeGNiaUFnSUNBZ0lIMHBMRnh1SUNBZ0lDQWdZMjl0YldsMFZHOUlhWE4wYjNKNU9pQjBjblZsTEZ4dUlDQWdJSDA3WEc0Z0lIMHNYRzRnSUd0bGVWUmxjM1E2SUNobGRtVnVkQ2tnUFQ1Y2JpQWdJQ0JsZG1WdWRGdExSVmxUTGtOVVVreGZUMUpmUTAxRVhTQW1KaUJsZG1WdWRDNXphR2xtZEV0bGVTQW1KaUJsZG1WdWRDNXJaWGtnUFQwOUlFdEZXVk11UVZKU1QxZGZWVkFzWEc0Z0lGQmhibVZzUTI5dGNHOXVaVzUwT2lBb2V5QmxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXNJSFZ3WkdGMFpVUmhkR0VnZlNrZ1BUNGdLRnh1SUNBZ0lEeFViMjlzUW5WMGRHOXVYRzRnSUNBZ0lDQm9hV1JrWlc0OWV5RmxibUZpYkdWQlkzUnBiMjVIY205MWNDaGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXBmVnh1SUNBZ0lDQWdkSGx3WlQxY0ltSjFkSFJ2Ymx3aVhHNGdJQ0FnSUNCcFkyOXVQWHM4UVd4cFoyNVViM0JKWTI5dUlIUm9aVzFsUFh0aGNIQlRkR0YwWlM1MGFHVnRaWDBnTHo1OVhHNGdJQ0FnSUNCdmJrTnNhV05yUFhzb0tTQTlQaUIxY0dSaGRHVkVZWFJoS0c1MWJHd3BmVnh1SUNBZ0lDQWdkR2wwYkdVOWUyQWtlM1FvWENKc1lXSmxiSE11WVd4cFoyNVViM0JjSWlsOUlPS0FsQ0FrZTJkbGRGTm9iM0owWTNWMFMyVjVLRnh1SUNBZ0lDQWdJQ0JjSWtOMGNteFBja050WkN0VGFHbG1kQ3RWY0Z3aUxGeHVJQ0FnSUNBZ0tYMWdmVnh1SUNBZ0lDQWdZWEpwWVMxc1lXSmxiRDE3ZENoY0lteGhZbVZzY3k1aGJHbG5ibFJ2Y0Z3aUtYMWNiaUFnSUNBZ0lIWnBjMmxpYkdVOWUybHpVMjl0WlVWc1pXMWxiblJUWld4bFkzUmxaQ2huWlhST2IyNUVaV3hsZEdWa1JXeGxiV1Z1ZEhNb1pXeGxiV1Z1ZEhNcExDQmhjSEJUZEdGMFpTbDlYRzRnSUNBZ0x6NWNiaUFnS1N4Y2JuMHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdZV04wYVc5dVFXeHBaMjVDYjNSMGIyMGdQU0J5WldkcGMzUmxjaWg3WEc0Z0lHNWhiV1U2SUZ3aVlXeHBaMjVDYjNSMGIyMWNJaXhjYmlBZ2NHVnlabTl5YlRvZ0tHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTa2dQVDRnZTF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQmhjSEJUZEdGMFpTeGNiaUFnSUNBZ0lHVnNaVzFsYm5Sek9pQmhiR2xuYmxObGJHVmpkR1ZrUld4bGJXVnVkSE1vWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCN1hHNGdJQ0FnSUNBZ0lIQnZjMmwwYVc5dU9pQmNJbVZ1WkZ3aUxGeHVJQ0FnSUNBZ0lDQmhlR2x6T2lCY0lubGNJaXhjYmlBZ0lDQWdJSDBwTEZ4dUlDQWdJQ0FnWTI5dGJXbDBWRzlJYVhOMGIzSjVPaUIwY25WbExGeHVJQ0FnSUgwN1hHNGdJSDBzWEc0Z0lHdGxlVlJsYzNRNklDaGxkbVZ1ZENrZ1BUNWNiaUFnSUNCbGRtVnVkRnRMUlZsVExrTlVVa3hmVDFKZlEwMUVYU0FtSmlCbGRtVnVkQzV6YUdsbWRFdGxlU0FtSmlCbGRtVnVkQzVyWlhrZ1BUMDlJRXRGV1ZNdVFWSlNUMWRmUkU5WFRpeGNiaUFnVUdGdVpXeERiMjF3YjI1bGJuUTZJQ2g3SUdWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlN3Z2RYQmtZWFJsUkdGMFlTQjlLU0E5UGlBb1hHNGdJQ0FnUEZSdmIyeENkWFIwYjI1Y2JpQWdJQ0FnSUdocFpHUmxiajE3SVdWdVlXSnNaVUZqZEdsdmJrZHliM1Z3S0dWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlNsOVhHNGdJQ0FnSUNCMGVYQmxQVndpWW5WMGRHOXVYQ0pjYmlBZ0lDQWdJR2xqYjI0OWV6eEJiR2xuYmtKdmRIUnZiVWxqYjI0Z2RHaGxiV1U5ZTJGd2NGTjBZWFJsTG5Sb1pXMWxmU0F2UG4xY2JpQWdJQ0FnSUc5dVEyeHBZMnM5ZXlncElEMCtJSFZ3WkdGMFpVUmhkR0VvYm5Wc2JDbDlYRzRnSUNBZ0lDQjBhWFJzWlQxN1lDUjdkQ2hjSW14aFltVnNjeTVoYkdsbmJrSnZkSFJ2YlZ3aUtYMGc0b0NVSUNSN1oyVjBVMmh2Y25SamRYUkxaWGtvWEc0Z0lDQWdJQ0FnSUZ3aVEzUnliRTl5UTIxa0sxTm9hV1owSzBSdmQyNWNJaXhjYmlBZ0lDQWdJQ2w5WUgxY2JpQWdJQ0FnSUdGeWFXRXRiR0ZpWld3OWUzUW9YQ0pzWVdKbGJITXVZV3hwWjI1Q2IzUjBiMjFjSWlsOVhHNGdJQ0FnSUNCMmFYTnBZbXhsUFh0cGMxTnZiV1ZGYkdWdFpXNTBVMlZzWldOMFpXUW9aMlYwVG05dVJHVnNaWFJsWkVWc1pXMWxiblJ6S0dWc1pXMWxiblJ6S1N3Z1lYQndVM1JoZEdVcGZWeHVJQ0FnSUM4K1hHNGdJQ2tzWEc1OUtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHRmpkR2x2YmtGc2FXZHVUR1ZtZENBOUlISmxaMmx6ZEdWeUtIdGNiaUFnYm1GdFpUb2dYQ0poYkdsbmJreGxablJjSWl4Y2JpQWdjR1Z5Wm05eWJUb2dLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU2tnUFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0JoY0hCVGRHRjBaU3hjYmlBZ0lDQWdJR1ZzWlcxbGJuUnpPaUJoYkdsbmJsTmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQjdYRzRnSUNBZ0lDQWdJSEJ2YzJsMGFXOXVPaUJjSW5OMFlYSjBYQ0lzWEc0Z0lDQWdJQ0FnSUdGNGFYTTZJRndpZUZ3aUxGeHVJQ0FnSUNBZ2ZTa3NYRzRnSUNBZ0lDQmpiMjF0YVhSVWIwaHBjM1J2Y25rNklIUnlkV1VzWEc0Z0lDQWdmVHRjYmlBZ2ZTeGNiaUFnYTJWNVZHVnpkRG9nS0dWMlpXNTBLU0E5UGx4dUlDQWdJR1YyWlc1MFcwdEZXVk11UTFSU1RGOVBVbDlEVFVSZElDWW1JR1YyWlc1MExuTm9hV1owUzJWNUlDWW1JR1YyWlc1MExtdGxlU0E5UFQwZ1MwVlpVeTVCVWxKUFYxOU1SVVpVTEZ4dUlDQlFZVzVsYkVOdmJYQnZibVZ1ZERvZ0tIc2daV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxMQ0IxY0dSaGRHVkVZWFJoSUgwcElEMCtJQ2hjYmlBZ0lDQThWRzl2YkVKMWRIUnZibHh1SUNBZ0lDQWdhR2xrWkdWdVBYc2haVzVoWW14bFFXTjBhVzl1UjNKdmRYQW9aV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxLWDFjYmlBZ0lDQWdJSFI1Y0dVOVhDSmlkWFIwYjI1Y0lseHVJQ0FnSUNBZ2FXTnZiajE3UEVGc2FXZHVUR1ZtZEVsamIyNGdkR2hsYldVOWUyRndjRk4wWVhSbExuUm9aVzFsZlNBdlBuMWNiaUFnSUNBZ0lHOXVRMnhwWTJzOWV5Z3BJRDArSUhWd1pHRjBaVVJoZEdFb2JuVnNiQ2w5WEc0Z0lDQWdJQ0IwYVhSc1pUMTdZQ1I3ZENoY0lteGhZbVZzY3k1aGJHbG5ia3hsWm5SY0lpbDlJT0tBbENBa2UyZGxkRk5vYjNKMFkzVjBTMlY1S0Z4dUlDQWdJQ0FnSUNCY0lrTjBjbXhQY2tOdFpDdFRhR2xtZEN0TVpXWjBYQ0lzWEc0Z0lDQWdJQ0FwZldCOVhHNGdJQ0FnSUNCaGNtbGhMV3hoWW1Wc1BYdDBLRndpYkdGaVpXeHpMbUZzYVdkdVRHVm1kRndpS1gxY2JpQWdJQ0FnSUhacGMybGliR1U5ZTJselUyOXRaVVZzWlcxbGJuUlRaV3hsWTNSbFpDaG5aWFJPYjI1RVpXeGxkR1ZrUld4bGJXVnVkSE1vWld4bGJXVnVkSE1wTENCaGNIQlRkR0YwWlNsOVhHNGdJQ0FnTHo1Y2JpQWdLU3hjYm4wcE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1lXTjBhVzl1UVd4cFoyNVNhV2RvZENBOUlISmxaMmx6ZEdWeUtIdGNiaUFnYm1GdFpUb2dYQ0poYkdsbmJsSnBaMmgwWENJc1hHNGdJSEJsY21admNtMDZJQ2hsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VwSUQwK0lIdGNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnWVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0JsYkdWdFpXNTBjem9nWVd4cFoyNVRaV3hsWTNSbFpFVnNaVzFsYm5SektHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTd2dlMXh1SUNBZ0lDQWdJQ0J3YjNOcGRHbHZiam9nWENKbGJtUmNJaXhjYmlBZ0lDQWdJQ0FnWVhocGN6b2dYQ0o0WENJc1hHNGdJQ0FnSUNCOUtTeGNiaUFnSUNBZ0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVRvZ2RISjFaU3hjYmlBZ0lDQjlPMXh1SUNCOUxGeHVJQ0JyWlhsVVpYTjBPaUFvWlhabGJuUXBJRDArWEc0Z0lDQWdaWFpsYm5SYlMwVlpVeTVEVkZKTVgwOVNYME5OUkYwZ0ppWWdaWFpsYm5RdWMyaHBablJMWlhrZ0ppWWdaWFpsYm5RdWEyVjVJRDA5UFNCTFJWbFRMa0ZTVWs5WFgxSkpSMGhVTEZ4dUlDQlFZVzVsYkVOdmJYQnZibVZ1ZERvZ0tIc2daV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxMQ0IxY0dSaGRHVkVZWFJoSUgwcElEMCtJQ2hjYmlBZ0lDQThWRzl2YkVKMWRIUnZibHh1SUNBZ0lDQWdhR2xrWkdWdVBYc2haVzVoWW14bFFXTjBhVzl1UjNKdmRYQW9aV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxLWDFjYmlBZ0lDQWdJSFI1Y0dVOVhDSmlkWFIwYjI1Y0lseHVJQ0FnSUNBZ2FXTnZiajE3UEVGc2FXZHVVbWxuYUhSSlkyOXVJSFJvWlcxbFBYdGhjSEJUZEdGMFpTNTBhR1Z0WlgwZ0x6NTlYRzRnSUNBZ0lDQnZia05zYVdOclBYc29LU0E5UGlCMWNHUmhkR1ZFWVhSaEtHNTFiR3dwZlZ4dUlDQWdJQ0FnZEdsMGJHVTllMkFrZTNRb1hDSnNZV0psYkhNdVlXeHBaMjVTYVdkb2RGd2lLWDBnNG9DVUlDUjdaMlYwVTJodmNuUmpkWFJMWlhrb1hHNGdJQ0FnSUNBZ0lGd2lRM1J5YkU5eVEyMWtLMU5vYVdaMEsxSnBaMmgwWENJc1hHNGdJQ0FnSUNBcGZXQjlYRzRnSUNBZ0lDQmhjbWxoTFd4aFltVnNQWHQwS0Z3aWJHRmlaV3h6TG1Gc2FXZHVVbWxuYUhSY0lpbDlYRzRnSUNBZ0lDQjJhWE5wWW14bFBYdHBjMU52YldWRmJHVnRaVzUwVTJWc1pXTjBaV1FvWjJWMFRtOXVSR1ZzWlhSbFpFVnNaVzFsYm5SektHVnNaVzFsYm5SektTd2dZWEJ3VTNSaGRHVXBmVnh1SUNBZ0lDOCtYRzRnSUNrc1hHNTlLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR0ZqZEdsdmJrRnNhV2R1Vm1WeWRHbGpZV3hzZVVObGJuUmxjbVZrSUQwZ2NtVm5hWE4wWlhJb2UxeHVJQ0J1WVcxbE9pQmNJbUZzYVdkdVZtVnlkR2xqWVd4c2VVTmxiblJsY21Wa1hDSXNYRzRnSUhCbGNtWnZjbTA2SUNobGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVcElEMCtJSHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ1lYQndVM1JoZEdVc1hHNGdJQ0FnSUNCbGJHVnRaVzUwY3pvZ1lXeHBaMjVUWld4bFkzUmxaRVZzWlcxbGJuUnpLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU3dnZTF4dUlDQWdJQ0FnSUNCd2IzTnBkR2x2YmpvZ1hDSmpaVzUwWlhKY0lpeGNiaUFnSUNBZ0lDQWdZWGhwY3pvZ1hDSjVYQ0lzWEc0Z0lDQWdJQ0I5S1N4Y2JpQWdJQ0FnSUdOdmJXMXBkRlJ2U0dsemRHOXllVG9nZEhKMVpTeGNiaUFnSUNCOU8xeHVJQ0I5TEZ4dUlDQlFZVzVsYkVOdmJYQnZibVZ1ZERvZ0tIc2daV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxMQ0IxY0dSaGRHVkVZWFJoSUgwcElEMCtJQ2hjYmlBZ0lDQThWRzl2YkVKMWRIUnZibHh1SUNBZ0lDQWdhR2xrWkdWdVBYc2haVzVoWW14bFFXTjBhVzl1UjNKdmRYQW9aV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxLWDFjYmlBZ0lDQWdJSFI1Y0dVOVhDSmlkWFIwYjI1Y0lseHVJQ0FnSUNBZ2FXTnZiajE3UEVObGJuUmxjbFpsY25ScFkyRnNiSGxKWTI5dUlIUm9aVzFsUFh0aGNIQlRkR0YwWlM1MGFHVnRaWDBnTHo1OVhHNGdJQ0FnSUNCdmJrTnNhV05yUFhzb0tTQTlQaUIxY0dSaGRHVkVZWFJoS0c1MWJHd3BmVnh1SUNBZ0lDQWdkR2wwYkdVOWUzUW9YQ0pzWVdKbGJITXVZMlZ1ZEdWeVZtVnlkR2xqWVd4c2VWd2lLWDFjYmlBZ0lDQWdJR0Z5YVdFdGJHRmlaV3c5ZTNRb1hDSnNZV0psYkhNdVkyVnVkR1Z5Vm1WeWRHbGpZV3hzZVZ3aUtYMWNiaUFnSUNBZ0lIWnBjMmxpYkdVOWUybHpVMjl0WlVWc1pXMWxiblJUWld4bFkzUmxaQ2huWlhST2IyNUVaV3hsZEdWa1JXeGxiV1Z1ZEhNb1pXeGxiV1Z1ZEhNcExDQmhjSEJUZEdGMFpTbDlYRzRnSUNBZ0x6NWNiaUFnS1N4Y2JuMHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdZV04wYVc5dVFXeHBaMjVJYjNKcGVtOXVkR0ZzYkhsRFpXNTBaWEpsWkNBOUlISmxaMmx6ZEdWeUtIdGNiaUFnYm1GdFpUb2dYQ0poYkdsbmJraHZjbWw2YjI1MFlXeHNlVU5sYm5SbGNtVmtYQ0lzWEc0Z0lIQmxjbVp2Y20wNklDaGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXBJRDArSUh0Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdZWEJ3VTNSaGRHVXNYRzRnSUNBZ0lDQmxiR1Z0Wlc1MGN6b2dZV3hwWjI1VFpXeGxZM1JsWkVWc1pXMWxiblJ6S0dWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlN3Z2UxeHVJQ0FnSUNBZ0lDQndiM05wZEdsdmJqb2dYQ0pqWlc1MFpYSmNJaXhjYmlBZ0lDQWdJQ0FnWVhocGN6b2dYQ0o0WENJc1hHNGdJQ0FnSUNCOUtTeGNiaUFnSUNBZ0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVRvZ2RISjFaU3hjYmlBZ0lDQjlPMXh1SUNCOUxGeHVJQ0JRWVc1bGJFTnZiWEJ2Ym1WdWREb2dLSHNnWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCMWNHUmhkR1ZFWVhSaElIMHBJRDArSUNoY2JpQWdJQ0E4Vkc5dmJFSjFkSFJ2Ymx4dUlDQWdJQ0FnYUdsa1pHVnVQWHNoWlc1aFlteGxRV04wYVc5dVIzSnZkWEFvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsS1gxY2JpQWdJQ0FnSUhSNWNHVTlYQ0ppZFhSMGIyNWNJbHh1SUNBZ0lDQWdhV052YmoxN1BFTmxiblJsY2todmNtbDZiMjUwWVd4c2VVbGpiMjRnZEdobGJXVTllMkZ3Y0ZOMFlYUmxMblJvWlcxbGZTQXZQbjFjYmlBZ0lDQWdJRzl1UTJ4cFkyczlleWdwSUQwK0lIVndaR0YwWlVSaGRHRW9iblZzYkNsOVhHNGdJQ0FnSUNCMGFYUnNaVDE3ZENoY0lteGhZbVZzY3k1alpXNTBaWEpJYjNKcGVtOXVkR0ZzYkhsY0lpbDlYRzRnSUNBZ0lDQmhjbWxoTFd4aFltVnNQWHQwS0Z3aWJHRmlaV3h6TG1ObGJuUmxja2h2Y21sNmIyNTBZV3hzZVZ3aUtYMWNiaUFnSUNBZ0lIWnBjMmxpYkdVOWUybHpVMjl0WlVWc1pXMWxiblJUWld4bFkzUmxaQ2huWlhST2IyNUVaV3hsZEdWa1JXeGxiV1Z1ZEhNb1pXeGxiV1Z1ZEhNcExDQmhjSEJUZEdGMFpTbDlYRzRnSUNBZ0x6NWNiaUFnS1N4Y2JuMHBPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9hY3Rpb25zL2FjdGlvbkFsaWduLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25DYW52YXMudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9hY3Rpb25zL2FjdGlvbkNhbnZhcy50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25DaGFuZ2VWaWV3QmFja2dyb3VuZENvbG9yXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uQ2hhbmdlVmlld0JhY2tncm91bmRDb2xvciksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ2xlYXJDYW52YXNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25DbGVhckNhbnZhcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uWm9vbUluXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uWm9vbUluKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25ab29tT3V0XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uWm9vbU91dCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uUmVzZXRab29tXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uUmVzZXRab29tKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25ab29tVG9TZWxlY3RlZFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvblpvb21Ub1NlbGVjdGVkKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25ab29tVG9GaXRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25ab29tVG9GaXQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvblRvZ2dsZVRoZW1lXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uVG9nZ2xlVGhlbWUpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX0NvbG9yUGlja2VyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL0NvbG9yUGlja2VyICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0NvbG9yUGlja2VyLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29tcG9uZW50cy9pY29ucyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9pY29ucy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1Rvb2xCdXR0b24udHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX0RhcmtNb2RlVG9nZ2xlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL0RhcmtNb2RlVG9nZ2xlICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0RhcmtNb2RlVG9nZ2xlLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4va2V5cyAqLyBcXFwiLi4vLi4va2V5cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lICovIFxcXCIuLi8uLi9zY2VuZS9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfc2Nyb2xsX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vc2NlbmUvc2Nyb2xsICovIFxcXCIuLi8uLi9zY2VuZS9zY3JvbGwudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX3pvb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZS96b29tICovIFxcXCIuLi8uLi9zY2VuZS96b29tLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3JlZ2lzdGVyICovIFxcXCIuLi8uLi9hY3Rpb25zL3JlZ2lzdGVyLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX1Rvb2x0aXBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL1Rvb2x0aXAgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVG9vbHRpcC50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvbXV0YXRlRWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9tdXRhdGVFbGVtZW50LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hcHBTdGF0ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2FwcFN0YXRlICovIFxcXCIuLi8uLi9hcHBTdGF0ZS50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29tcG9uZW50c19DbGVhckNhbnZhc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbXBvbmVudHMvQ2xlYXJDYW52YXMgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvQ2xlYXJDYW52YXMudHN4XFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgYWN0aW9uQ2hhbmdlVmlld0JhY2tncm91bmRDb2xvciA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiY2hhbmdlVmlld0JhY2tncm91bmRDb2xvclxcXCIsXFxuICAgIHBlcmZvcm06IChfLCBhcHBTdGF0ZSwgdmFsdWUpID0+IHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB2YWx1ZSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiAhIXZhbHVlLnZpZXdCYWNrZ3JvdW5kQ29sb3IsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgYXBwU3RhdGUsIHVwZGF0ZURhdGEgfSkgPT4ge1xcbiAgICAgICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBzdHlsZTogeyBwb3NpdGlvbjogXFxcInJlbGF0aXZlXFxcIiB9IH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19Db2xvclBpY2tlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkNvbG9yUGlja2VyLCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLnQpKFxcXCJsYWJlbHMuY2FudmFzQmFja2dyb3VuZFxcXCIpLCB0eXBlOiBcXFwiY2FudmFzQmFja2dyb3VuZFxcXCIsIGNvbG9yOiBhcHBTdGF0ZS52aWV3QmFja2dyb3VuZENvbG9yLCBvbkNoYW5nZTogKGNvbG9yKSA9PiB1cGRhdGVEYXRhKHsgdmlld0JhY2tncm91bmRDb2xvcjogY29sb3IgfSksIGlzQWN0aXZlOiBhcHBTdGF0ZS5vcGVuUG9wdXAgPT09IFxcXCJjYW52YXNDb2xvclBpY2tlclxcXCIsIHNldEFjdGl2ZTogKGFjdGl2ZSkgPT4gdXBkYXRlRGF0YSh7IG9wZW5Qb3B1cDogYWN0aXZlID8gXFxcImNhbnZhc0NvbG9yUGlja2VyXFxcIiA6IG51bGwgfSksIFxcXCJkYXRhLXRlc3RpZFxcXCI6IFxcXCJjYW52YXMtYmFja2dyb3VuZC1waWNrZXJcXFwiIH0sIHZvaWQgMCkgfSksIHZvaWQgMCkpO1xcbiAgICB9LFxcbn0pO1xcbmNvbnN0IGFjdGlvbkNsZWFyQ2FudmFzID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJjbGVhckNhbnZhc1xcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUsIF8sIGFwcCkgPT4ge1xcbiAgICAgICAgYXBwLmltYWdlQ2FjaGUuY2xlYXIoKTtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgZWxlbWVudHM6IGVsZW1lbnRzLm1hcCgoZWxlbWVudCkgPT4gKDAsX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXy5uZXdFbGVtZW50V2l0aCkoZWxlbWVudCwgeyBpc0RlbGV0ZWQ6IHRydWUgfSkpLFxcbiAgICAgICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sICgwLF9hcHBTdGF0ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5nZXREZWZhdWx0QXBwU3RhdGUpKCkpLCB7IGZpbGVzOiB7fSwgdGhlbWU6IGFwcFN0YXRlLnRoZW1lLCBlbGVtZW50TG9ja2VkOiBhcHBTdGF0ZS5lbGVtZW50TG9ja2VkLCBwZW5Nb2RlOiBhcHBTdGF0ZS5wZW5Nb2RlLCBwZW5EZXRlY3RlZDogYXBwU3RhdGUucGVuRGV0ZWN0ZWQsIGV4cG9ydEJhY2tncm91bmQ6IGFwcFN0YXRlLmV4cG9ydEJhY2tncm91bmQsIGV4cG9ydEVtYmVkU2NlbmU6IGFwcFN0YXRlLmV4cG9ydEVtYmVkU2NlbmUsIGdyaWRTaXplOiBhcHBTdGF0ZS5ncmlkU2l6ZSwgc2hvd1N0YXRzOiBhcHBTdGF0ZS5zaG93U3RhdHMsIHBhc3RlRGlhbG9nOiBhcHBTdGF0ZS5wYXN0ZURpYWxvZywgZWxlbWVudFR5cGU6IGFwcFN0YXRlLmVsZW1lbnRUeXBlID09PSBcXFwiaW1hZ2VcXFwiID8gXFxcInNlbGVjdGlvblxcXCIgOiBhcHBTdGF0ZS5lbGVtZW50VHlwZSB9KSxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgdXBkYXRlRGF0YSB9KSA9PiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfQ2xlYXJDYW52YXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE3X19bXFxcImRlZmF1bHRcXFwiXSwgeyBvbkNvbmZpcm06IHVwZGF0ZURhdGEgfSwgdm9pZCAwKSxcXG59KTtcXG5jb25zdCBhY3Rpb25ab29tSW4gPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcInpvb21JblxcXCIsXFxuICAgIHBlcmZvcm06IChfZWxlbWVudHMsIGFwcFN0YXRlLCBfLCBhcHApID0+IHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCAoMCxfc2NlbmVfem9vbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5nZXRTdGF0ZUZvclpvb20pKHtcXG4gICAgICAgICAgICAgICAgdmlld3BvcnRYOiBhcHBTdGF0ZS53aWR0aCAvIDIgKyBhcHBTdGF0ZS5vZmZzZXRMZWZ0LFxcbiAgICAgICAgICAgICAgICB2aWV3cG9ydFk6IGFwcFN0YXRlLmhlaWdodCAvIDIgKyBhcHBTdGF0ZS5vZmZzZXRUb3AsXFxuICAgICAgICAgICAgICAgIG5leHRab29tOiAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5nZXROb3JtYWxpemVkWm9vbSkoYXBwU3RhdGUuem9vbS52YWx1ZSArIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5aT09NX1NURVApLFxcbiAgICAgICAgICAgIH0sIGFwcFN0YXRlKSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyB1cGRhdGVEYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLlRvb2xCdXR0b24sIHsgdHlwZTogXFxcImJ1dHRvblxcXCIsIGljb246IF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uem9vbUluLCB0aXRsZTogYCR7KDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy50KShcXFwiYnV0dG9ucy56b29tSW5cXFwiKX0gXHUyMDE0ICR7KDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kKytcXFwiKX1gLCBcXFwiYXJpYS1sYWJlbFxcXCI6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18udCkoXFxcImJ1dHRvbnMuem9vbUluXFxcIiksIG9uQ2xpY2s6ICgpID0+IHtcXG4gICAgICAgICAgICB1cGRhdGVEYXRhKG51bGwpO1xcbiAgICAgICAgfSwgc2l6ZTogXFxcInNtYWxsXFxcIiB9LCB2b2lkIDApKSxcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiAoZXZlbnQuY29kZSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5DT0RFUy5FUVVBTCB8fCBldmVudC5jb2RlID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLkNPREVTLk5VTV9BREQpICYmXFxuICAgICAgICAoZXZlbnRbX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5LRVlTLkNUUkxfT1JfQ01EXSB8fCBldmVudC5zaGlmdEtleSksXFxufSk7XFxuY29uc3QgYWN0aW9uWm9vbU91dCA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiem9vbU91dFxcXCIsXFxuICAgIHBlcmZvcm06IChfZWxlbWVudHMsIGFwcFN0YXRlLCBfLCBhcHApID0+IHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCAoMCxfc2NlbmVfem9vbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5nZXRTdGF0ZUZvclpvb20pKHtcXG4gICAgICAgICAgICAgICAgdmlld3BvcnRYOiBhcHBTdGF0ZS53aWR0aCAvIDIgKyBhcHBTdGF0ZS5vZmZzZXRMZWZ0LFxcbiAgICAgICAgICAgICAgICB2aWV3cG9ydFk6IGFwcFN0YXRlLmhlaWdodCAvIDIgKyBhcHBTdGF0ZS5vZmZzZXRUb3AsXFxuICAgICAgICAgICAgICAgIG5leHRab29tOiAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5nZXROb3JtYWxpemVkWm9vbSkoYXBwU3RhdGUuem9vbS52YWx1ZSAtIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5aT09NX1NURVApLFxcbiAgICAgICAgICAgIH0sIGFwcFN0YXRlKSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyB1cGRhdGVEYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLlRvb2xCdXR0b24sIHsgdHlwZTogXFxcImJ1dHRvblxcXCIsIGljb246IF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uem9vbU91dCwgdGl0bGU6IGAkeygwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18udCkoXFxcImJ1dHRvbnMuem9vbU91dFxcXCIpfSBcdTIwMTQgJHsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrLVxcXCIpfWAsIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy50KShcXFwiYnV0dG9ucy56b29tT3V0XFxcIiksIG9uQ2xpY2s6ICgpID0+IHtcXG4gICAgICAgICAgICB1cGRhdGVEYXRhKG51bGwpO1xcbiAgICAgICAgfSwgc2l6ZTogXFxcInNtYWxsXFxcIiB9LCB2b2lkIDApKSxcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiAoZXZlbnQuY29kZSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5DT0RFUy5NSU5VUyB8fCBldmVudC5jb2RlID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLkNPREVTLk5VTV9TVUJUUkFDVCkgJiZcXG4gICAgICAgIChldmVudFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLktFWVMuQ1RSTF9PUl9DTURdIHx8IGV2ZW50LnNoaWZ0S2V5KSxcXG59KTtcXG5jb25zdCBhY3Rpb25SZXNldFpvb20gPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcInJlc2V0Wm9vbVxcXCIsXFxuICAgIHBlcmZvcm06IChfZWxlbWVudHMsIGFwcFN0YXRlLCBfLCBhcHApID0+IHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCAoMCxfc2NlbmVfem9vbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5nZXRTdGF0ZUZvclpvb20pKHtcXG4gICAgICAgICAgICAgICAgdmlld3BvcnRYOiBhcHBTdGF0ZS53aWR0aCAvIDIgKyBhcHBTdGF0ZS5vZmZzZXRMZWZ0LFxcbiAgICAgICAgICAgICAgICB2aWV3cG9ydFk6IGFwcFN0YXRlLmhlaWdodCAvIDIgKyBhcHBTdGF0ZS5vZmZzZXRUb3AsXFxuICAgICAgICAgICAgICAgIG5leHRab29tOiAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5nZXROb3JtYWxpemVkWm9vbSkoMSksXFxuICAgICAgICAgICAgfSwgYXBwU3RhdGUpKSxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IGZhbHNlLFxcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAgUGFuZWxDb21wb25lbnQ6ICh7IHVwZGF0ZURhdGEsIGFwcFN0YXRlIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfVG9vbHRpcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy5Ub29sdGlwLCBPYmplY3QuYXNzaWduKHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18udCkoXFxcImJ1dHRvbnMucmVzZXRab29tXFxcIiksIHN0eWxlOiB7IGhlaWdodDogXFxcIjEwMCVcXFwiIH0gfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShfY29tcG9uZW50c19Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uVG9vbEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IHR5cGU6IFxcXCJidXR0b25cXFwiLCBjbGFzc05hbWU6IFxcXCJyZXNldC16b29tLWJ1dHRvblxcXCIsIHRpdGxlOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLnQpKFxcXCJidXR0b25zLnJlc2V0Wm9vbVxcXCIpLCBcXFwiYXJpYS1sYWJlbFxcXCI6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18udCkoXFxcImJ1dHRvbnMucmVzZXRab29tXFxcIiksIG9uQ2xpY2s6ICgpID0+IHtcXG4gICAgICAgICAgICAgICAgdXBkYXRlRGF0YShudWxsKTtcXG4gICAgICAgICAgICB9LCBzaXplOiBcXFwic21hbGxcXFwiIH0sIHsgY2hpbGRyZW46IFsoYXBwU3RhdGUuem9vbS52YWx1ZSAqIDEwMCkudG9GaXhlZCgwKSwgXFxcIiVcXFwiXSB9KSwgdm9pZCAwKSB9KSwgdm9pZCAwKSksXFxuICAgIGtleVRlc3Q6IChldmVudCkgPT4gKGV2ZW50LmNvZGUgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uQ09ERVMuWkVSTyB8fCBldmVudC5jb2RlID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLkNPREVTLk5VTV9aRVJPKSAmJlxcbiAgICAgICAgKGV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uS0VZUy5DVFJMX09SX0NNRF0gfHwgZXZlbnQuc2hpZnRLZXkpLFxcbn0pO1xcbmNvbnN0IHpvb21WYWx1ZVRvRml0Qm91bmRzT25WaWV3cG9ydCA9IChib3VuZHMsIHZpZXdwb3J0RGltZW5zaW9ucykgPT4ge1xcbiAgICBjb25zdCBbeDEsIHkxLCB4MiwgeTJdID0gYm91bmRzO1xcbiAgICBjb25zdCBjb21tb25Cb3VuZHNXaWR0aCA9IHgyIC0geDE7XFxuICAgIGNvbnN0IHpvb21WYWx1ZUZvcldpZHRoID0gdmlld3BvcnREaW1lbnNpb25zLndpZHRoIC8gY29tbW9uQm91bmRzV2lkdGg7XFxuICAgIGNvbnN0IGNvbW1vbkJvdW5kc0hlaWdodCA9IHkyIC0geTE7XFxuICAgIGNvbnN0IHpvb21WYWx1ZUZvckhlaWdodCA9IHZpZXdwb3J0RGltZW5zaW9ucy5oZWlnaHQgLyBjb21tb25Cb3VuZHNIZWlnaHQ7XFxuICAgIGNvbnN0IHNtYWxsZXN0Wm9vbVZhbHVlID0gTWF0aC5taW4oem9vbVZhbHVlRm9yV2lkdGgsIHpvb21WYWx1ZUZvckhlaWdodCk7XFxuICAgIGNvbnN0IHpvb21BZGp1c3RlZFRvU3RlcHMgPSBNYXRoLmZsb29yKHNtYWxsZXN0Wm9vbVZhbHVlIC8gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLlpPT01fU1RFUCkgKiBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uWk9PTV9TVEVQO1xcbiAgICBjb25zdCBjbGFtcGVkWm9vbVZhbHVlVG9GaXRFbGVtZW50cyA9IE1hdGgubWluKE1hdGgubWF4KHpvb21BZGp1c3RlZFRvU3RlcHMsIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5aT09NX1NURVApLCAxKTtcXG4gICAgcmV0dXJuIGNsYW1wZWRab29tVmFsdWVUb0ZpdEVsZW1lbnRzO1xcbn07XFxuY29uc3Qgem9vbVRvRml0RWxlbWVudHMgPSAoZWxlbWVudHMsIGFwcFN0YXRlLCB6b29tVG9TZWxlY3Rpb24pID0+IHtcXG4gICAgY29uc3Qgbm9uRGVsZXRlZEVsZW1lbnRzID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKTtcXG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLmdldFNlbGVjdGVkRWxlbWVudHMpKG5vbkRlbGV0ZWRFbGVtZW50cywgYXBwU3RhdGUpO1xcbiAgICBjb25zdCBjb21tb25Cb3VuZHMgPSB6b29tVG9TZWxlY3Rpb24gJiYgc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPiAwXFxuICAgICAgICA/ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uZ2V0Q29tbW9uQm91bmRzKShzZWxlY3RlZEVsZW1lbnRzKVxcbiAgICAgICAgOiAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmdldENvbW1vbkJvdW5kcykobm9uRGVsZXRlZEVsZW1lbnRzKTtcXG4gICAgY29uc3QgbmV3Wm9vbSA9IHtcXG4gICAgICAgIHZhbHVlOiB6b29tVmFsdWVUb0ZpdEJvdW5kc09uVmlld3BvcnQoY29tbW9uQm91bmRzLCB7XFxuICAgICAgICAgICAgd2lkdGg6IGFwcFN0YXRlLndpZHRoLFxcbiAgICAgICAgICAgIGhlaWdodDogYXBwU3RhdGUuaGVpZ2h0LFxcbiAgICAgICAgfSksXFxuICAgIH07XFxuICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSBjb21tb25Cb3VuZHM7XFxuICAgIGNvbnN0IGNlbnRlclggPSAoeDEgKyB4MikgLyAyO1xcbiAgICBjb25zdCBjZW50ZXJZID0gKHkxICsgeTIpIC8gMjtcXG4gICAgcmV0dXJuIHtcXG4gICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCAoMCxfc2NlbmVfc2Nyb2xsX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLmNlbnRlclNjcm9sbE9uKSh7XFxuICAgICAgICAgICAgc2NlbmVQb2ludDogeyB4OiBjZW50ZXJYLCB5OiBjZW50ZXJZIH0sXFxuICAgICAgICAgICAgdmlld3BvcnREaW1lbnNpb25zOiB7XFxuICAgICAgICAgICAgICAgIHdpZHRoOiBhcHBTdGF0ZS53aWR0aCxcXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhcHBTdGF0ZS5oZWlnaHQsXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB6b29tOiBuZXdab29tLFxcbiAgICAgICAgfSkpLCB7IHpvb206IG5ld1pvb20gfSksXFxuICAgICAgICBjb21taXRUb0hpc3Rvcnk6IGZhbHNlLFxcbiAgICB9O1xcbn07XFxuY29uc3QgYWN0aW9uWm9vbVRvU2VsZWN0ZWQgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcInpvb21Ub1NlbGVjdGlvblxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHpvb21Ub0ZpdEVsZW1lbnRzKGVsZW1lbnRzLCBhcHBTdGF0ZSwgdHJ1ZSksXFxuICAgIGtleVRlc3Q6IChldmVudCkgPT4gZXZlbnQuY29kZSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5DT0RFUy5UV08gJiZcXG4gICAgICAgIGV2ZW50LnNoaWZ0S2V5ICYmXFxuICAgICAgICAhZXZlbnQuYWx0S2V5ICYmXFxuICAgICAgICAhZXZlbnRbX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5LRVlTLkNUUkxfT1JfQ01EXSxcXG59KTtcXG5jb25zdCBhY3Rpb25ab29tVG9GaXQgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcInpvb21Ub0ZpdFxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHpvb21Ub0ZpdEVsZW1lbnRzKGVsZW1lbnRzLCBhcHBTdGF0ZSwgZmFsc2UpLFxcbiAgICBrZXlUZXN0OiAoZXZlbnQpID0+IGV2ZW50LmNvZGUgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uQ09ERVMuT05FICYmXFxuICAgICAgICBldmVudC5zaGlmdEtleSAmJlxcbiAgICAgICAgIWV2ZW50LmFsdEtleSAmJlxcbiAgICAgICAgIWV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uS0VZUy5DVFJMX09SX0NNRF0sXFxufSk7XFxuY29uc3QgYWN0aW9uVG9nZ2xlVGhlbWUgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcInRvZ2dsZVRoZW1lXFxcIixcXG4gICAgcGVyZm9ybTogKF8sIGFwcFN0YXRlLCB2YWx1ZSkgPT4ge1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBhcHBTdGF0ZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhcHBTdGF0ZSksIHsgdGhlbWU6IHZhbHVlIHx8IChhcHBTdGF0ZS50aGVtZSA9PT0gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLlRIRU1FLkxJR0hUID8gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLlRIRU1FLkRBUksgOiBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uVEhFTUUuTElHSFQpIH0pLFxcbiAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgYXBwU3RhdGUsIHVwZGF0ZURhdGEgfSkgPT4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IHN0eWxlOiB7IG1hcmdpbklubGluZVN0YXJ0OiBcXFwiMC4yNXJlbVxcXCIgfSB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfRGFya01vZGVUb2dnbGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5EYXJrTW9kZVRvZ2dsZSwgeyB2YWx1ZTogYXBwU3RhdGUudGhlbWUsIG9uQ2hhbmdlOiAodGhlbWUpID0+IHtcXG4gICAgICAgICAgICAgICAgdXBkYXRlRGF0YSh0aGVtZSk7XFxuICAgICAgICAgICAgfSB9LCB2b2lkIDApIH0pLCB2b2lkIDApKSxcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiBldmVudC5hbHRLZXkgJiYgZXZlbnQuc2hpZnRLZXkgJiYgZXZlbnQuY29kZSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5DT0RFUy5ELFxcbn0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNURZVzUyWVhNdWRITjRMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRCUVVGM1JEdEJRVU5HTzBGQlEwRTdRVUZEVVR0QlFVTmtPMEZCUTI5Q08wRkJSWGhETzBGQlExVTdRVUZETkVJN1FVRkRha0k3UVVGRFJEdEJRVVZPTzBGQlEwbzdRVUZEVlR0QlFVTlZPMEZCUTFRN1FVRkRSenRCUVVVM1F5eE5RVUZOTEN0Q1FVRXJRaXhIUVVGSExHOUVRVUZSTEVOQlFVTTdTVUZEZEVRc1NVRkJTU3hGUVVGRkxESkNRVUV5UWp0SlFVTnFReXhQUVVGUExFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVXNVVUZCVVN4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRk8xRkJRemxDTEU5QlFVODdXVUZEVEN4UlFVRlJMR3REUVVGUExGRkJRVkVzUjBGQlN5eExRVUZMTEVOQlFVVTdXVUZEYmtNc1pVRkJaU3hGUVVGRkxFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNiVUpCUVcxQ08xTkJRemRETEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUTBRc1kwRkJZeXhGUVVGRkxFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVVXNWVUZCVlN4RlFVRkZMRVZCUVVVc1JVRkJSVHRSUVVNelF5eFBRVUZQTEVOQlEwd3NPRVZCUVVzc1MwRkJTeXhGUVVGRkxFVkJRVVVzVVVGQlVTeEZRVUZGTEZWQlFWVXNSVUZCUlN4blFrRkRiRU1zZFVSQlFVTXNaMFZCUVZjc1NVRkRWaXhMUVVGTExFVkJRVVVzZDBOQlFVTXNRMEZCUXl4NVFrRkJlVUlzUTBGQlF5eEZRVU51UXl4SlFVRkpMRVZCUVVNc2EwSkJRV3RDTEVWQlEzWkNMRXRCUVVzc1JVRkJSU3hSUVVGUkxFTkJRVU1zYlVKQlFXMUNMRVZCUTI1RExGRkJRVkVzUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFVkJRVVVzYlVKQlFXMUNMRVZCUVVVc1MwRkJTeXhGUVVGRkxFTkJRVU1zUlVGREwwUXNVVUZCVVN4RlFVRkZMRkZCUVZFc1EwRkJReXhUUVVGVExFdEJRVXNzYlVKQlFXMUNMRVZCUTNCRUxGTkJRVk1zUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4RlFVRkZMRU5CUTNCQ0xGVkJRVlVzUTBGQlF5eEZRVUZGTEZOQlFWTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF5eHBRa0ZGY0VRc01FSkJRVEJDTEZkQlEzUkRMRmxCUTBVc1EwRkRVQ3hEUVVGRE8wbEJRMG9zUTBGQlF6dERRVU5HTEVOQlFVTXNRMEZCUXp0QlFVVkpMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NiMFJCUVZFc1EwRkJRenRKUVVONFF5eEpRVUZKTEVWQlFVVXNZVUZCWVR0SlFVTnVRaXhQUVVGUExFVkJRVVVzUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU4wUXl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETzFGQlEzWkNMRTlCUVU4N1dVRkRUQ3hSUVVGUkxFVkJRVVVzVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRkxFTkJRMnBETEhWRlFVRmpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzVTBGQlV5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUXpkRE8xbEJRMFFzVVVGQlVTeHJRMEZEU0N3NFJFRkJhMElzUlVGQlJTeExRVU4yUWl4TFFVRkxMRVZCUVVVc1JVRkJSU3hGUVVOVUxFdEJRVXNzUlVGQlJTeFJRVUZSTEVOQlFVTXNTMEZCU3l4RlFVTnlRaXhoUVVGaExFVkJRVVVzVVVGQlVTeERRVUZETEdGQlFXRXNSVUZEY2tNc1QwRkJUeXhGUVVGRkxGRkJRVkVzUTBGQlF5eFBRVUZQTEVWQlEzcENMRmRCUVZjc1JVRkJSU3hSUVVGUkxFTkJRVU1zVjBGQlZ5eEZRVU5xUXl4blFrRkJaMElzUlVGQlJTeFJRVUZSTEVOQlFVTXNaMEpCUVdkQ0xFVkJRek5ETEdkQ1FVRm5RaXhGUVVGRkxGRkJRVkVzUTBGQlF5eG5Ra0ZCWjBJc1JVRkRNME1zVVVGQlVTeEZRVUZGTEZGQlFWRXNRMEZCUXl4UlFVRlJMRVZCUXpOQ0xGTkJRVk1zUlVGQlJTeFJRVUZSTEVOQlFVTXNVMEZCVXl4RlFVTTNRaXhYUVVGWExFVkJRVVVzVVVGQlVTeERRVUZETEZkQlFWY3NSVUZEYWtNc1YwRkJWeXhGUVVOVUxGRkJRVkVzUTBGQlF5eFhRVUZYTEV0QlFVc3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRWRCUTNoRk8xbEJRMFFzWlVGQlpTeEZRVUZGTEVsQlFVazdVMEZEZEVJc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJDeGpRVUZqTEVWQlFVVXNRMEZCUXl4RlFVRkZMRlZCUVZVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eDFSRUZCUXl4blJVRkJWeXhKUVVGRExGTkJRVk1zUlVGQlJTeFZRVUZWTEZkQlFVazdRMEZETTBVc1EwRkJReXhEUVVGRE8wRkJSVWtzVFVGQlRTeFpRVUZaTEVkQlFVY3NiMFJCUVZFc1EwRkJRenRKUVVOdVF5eEpRVUZKTEVWQlFVVXNVVUZCVVR0SlFVTmtMRTlCUVU4c1JVRkJSU3hEUVVGRExGTkJRVk1zUlVGQlJTeFJRVUZSTEVWQlFVVXNRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRM1pETEU5QlFVODdXVUZEVEN4UlFVRlJMR3REUVVOSUxGRkJRVkVzUjBGRFVpdzJSRUZCWlN4RFFVTm9RanRuUWtGRFJTeFRRVUZUTEVWQlFVVXNVVUZCVVN4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETEZWQlFWVTdaMEpCUTI1RUxGTkJRVk1zUlVGQlJTeFJRVUZSTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zVTBGQlV6dG5Ra0ZEYmtRc1VVRkJVU3hGUVVGRkxIbEVRVUZwUWl4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eEhRVUZITEdsRVFVRlRMRU5CUVVNN1lVRkROMFFzUlVGRFJDeFJRVUZSTEVOQlExUXNRMEZEUmp0WlFVTkVMR1ZCUVdVc1JVRkJSU3hMUVVGTE8xTkJRM1pDTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUTBRc1kwRkJZeXhGUVVGRkxFTkJRVU1zUlVGQlJTeFZRVUZWTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkRiRU1zZFVSQlFVTXNPRVJCUVZVc1NVRkRWQ3hKUVVGSkxFVkJRVU1zVVVGQlVTeEZRVU5pTEVsQlFVa3NSVUZCUlN4eFJFRkJUU3hGUVVOYUxFdEJRVXNzUlVGQlJTeEhRVUZITEhkRFFVRkRMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4MVJFRkJZeXhEUVVGRExHRkJRV0VzUTBGQlF5eEZRVUZGTEdkQ1FVTjBSQ3gzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFVkJReTlDTEU5QlFVOHNSVUZCUlN4SFFVRkhMRVZCUVVVN1dVRkRXaXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEYmtJc1EwRkJReXhGUVVORUxFbEJRVWtzUlVGQlF5eFBRVUZQTEZkQlExb3NRMEZEU0R0SlFVTkVMRTlCUVU4c1JVRkJSU3hEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlEycENMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUzBGQlN5dzRRMEZCVnl4SlFVRkpMRXRCUVVzc1EwRkJReXhKUVVGSkxFdEJRVXNzWjBSQlFXRXNRMEZCUXp0UlFVTTFSQ3hEUVVGRExFdEJRVXNzUTBGQlF5eHRSRUZCWjBJc1EwRkJReXhKUVVGSkxFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTTdRMEZET1VNc1EwRkJReXhEUVVGRE8wRkJSVWtzVFVGQlRTeGhRVUZoTEVkQlFVY3NiMFJCUVZFc1EwRkJRenRKUVVOd1F5eEpRVUZKTEVWQlFVVXNVMEZCVXp0SlFVTm1MRTlCUVU4c1JVRkJSU3hEUVVGRExGTkJRVk1zUlVGQlJTeFJRVUZSTEVWQlFVVXNRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRM1pETEU5QlFVODdXVUZEVEN4UlFVRlJMR3REUVVOSUxGRkJRVkVzUjBGRFVpdzJSRUZCWlN4RFFVTm9RanRuUWtGRFJTeFRRVUZUTEVWQlFVVXNVVUZCVVN4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETEZWQlFWVTdaMEpCUTI1RUxGTkJRVk1zUlVGQlJTeFJRVUZSTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zVTBGQlV6dG5Ra0ZEYmtRc1VVRkJVU3hGUVVGRkxIbEVRVUZwUWl4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eEhRVUZITEdsRVFVRlRMRU5CUVVNN1lVRkROMFFzUlVGRFJDeFJRVUZSTEVOQlExUXNRMEZEUmp0WlFVTkVMR1ZCUVdVc1JVRkJSU3hMUVVGTE8xTkJRM1pDTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUTBRc1kwRkJZeXhGUVVGRkxFTkJRVU1zUlVGQlJTeFZRVUZWTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkRiRU1zZFVSQlFVTXNPRVJCUVZVc1NVRkRWQ3hKUVVGSkxFVkJRVU1zVVVGQlVTeEZRVU5pTEVsQlFVa3NSVUZCUlN4elJFRkJUeXhGUVVOaUxFdEJRVXNzUlVGQlJTeEhRVUZITEhkRFFVRkRMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNUVUZCVFN4MVJFRkJZeXhEUVVGRExHRkJRV0VzUTBGQlF5eEZRVUZGTEdkQ1FVTjJSQ3gzUTBGQlF5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExFVkJRMmhETEU5QlFVOHNSVUZCUlN4SFFVRkhMRVZCUVVVN1dVRkRXaXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEYmtJc1EwRkJReXhGUVVORUxFbEJRVWtzUlVGQlF5eFBRVUZQTEZkQlExb3NRMEZEU0R0SlFVTkVMRTlCUVU4c1JVRkJSU3hEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlEycENMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUzBGQlN5dzRRMEZCVnl4SlFVRkpMRXRCUVVzc1EwRkJReXhKUVVGSkxFdEJRVXNzY1VSQlFXdENMRU5CUVVNN1VVRkRha1VzUTBGQlF5eExRVUZMTEVOQlFVTXNiVVJCUVdkQ0xFTkJRVU1zU1VGQlNTeExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRPME5CUXpsRExFTkJRVU1zUTBGQlF6dEJRVVZKTEUxQlFVMHNaVUZCWlN4SFFVRkhMRzlFUVVGUkxFTkJRVU03U1VGRGRFTXNTVUZCU1N4RlFVRkZMRmRCUVZjN1NVRkRha0lzVDBGQlR5eEZRVUZGTEVOQlFVTXNVMEZCVXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVWQlFVVTdVVUZEZGtNc1QwRkJUenRaUVVOTUxGRkJRVkVzYTBOQlEwZ3NVVUZCVVN4SFFVTlNMRFpFUVVGbExFTkJRMmhDTzJkQ1FVTkZMRk5CUVZNc1JVRkJSU3hSUVVGUkxFTkJRVU1zUzBGQlN5eEhRVUZITEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1ZVRkJWVHRuUWtGRGJrUXNVMEZCVXl4RlFVRkZMRkZCUVZFc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEhRVUZITEZGQlFWRXNRMEZCUXl4VFFVRlRPMmRDUVVOdVJDeFJRVUZSTEVWQlFVVXNlVVJCUVdsQ0xFTkJRVU1zUTBGQlF5eERRVUZETzJGQlF5OUNMRVZCUTBRc1VVRkJVU3hEUVVOVUxFTkJRMFk3V1VGRFJDeGxRVUZsTEVWQlFVVXNTMEZCU3p0VFFVTjJRaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVU5FTEdOQlFXTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1ZVRkJWU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVTTFReXgxUkVGQlF5eDVSRUZCVHl4clFrRkJReXhMUVVGTExFVkJRVVVzZDBOQlFVTXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVVVzWjBKQlF5OUVMSGRFUVVGRExEaEVRVUZWTEd0Q1FVTlVMRWxCUVVrc1JVRkJReXhSUVVGUkxFVkJRMklzVTBGQlV5eEZRVUZETEcxQ1FVRnRRaXhGUVVNM1FpeExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4blFrRkRha0lzZDBOQlFVTXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eEZRVU5zUXl4UFFVRlBMRVZCUVVVc1IwRkJSeXhGUVVGRk8yZENRVU5hTEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVOdVFpeERRVUZETEVWQlEwUXNTVUZCU1N4RlFVRkRMRTlCUVU4c2FVSkJSVmdzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMR3RDUVVNMVFpeFpRVU5NTEVOQlExZzdTVUZEUkN4UFFVRlBMRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVU5xUWl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFdEJRVXNzTmtOQlFWVXNTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hMUVVGTExHbEVRVUZqTEVOQlFVTTdVVUZETlVRc1EwRkJReXhMUVVGTExFTkJRVU1zYlVSQlFXZENMRU5CUVVNc1NVRkJTU3hMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETzBOQlF6bERMRU5CUVVNc1EwRkJRenRCUVVWSUxFMUJRVTBzT0VKQlFUaENMRWRCUVVjc1EwRkRja01zVFVGQmQwTXNSVUZEZUVNc2EwSkJRWEZFTEVWQlEzSkVMRVZCUVVVN1NVRkRSaXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETzBsQlEyaERMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVOc1F5eE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExHdENRVUZyUWl4RFFVRkRMRXRCUVVzc1IwRkJSeXhwUWtGQmFVSXNRMEZCUXp0SlFVTjJSU3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRGJrTXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eHJRa0ZCYTBJc1EwRkJReXhOUVVGTkxFZEJRVWNzYTBKQlFXdENMRU5CUVVNN1NVRkRNVVVzVFVGQlRTeHBRa0ZCYVVJc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEdsQ1FVRnBRaXhGUVVGRkxHdENRVUZyUWl4RFFVRkRMRU5CUVVNN1NVRkRNVVVzVFVGQlRTeHRRa0ZCYlVJc1IwRkRka0lzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eHBSRUZCVXl4RFFVRkRMRWRCUVVjc2FVUkJRVk1zUTBGQlF6dEpRVU40UkN4TlFVRk5MRFpDUVVFMlFpeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUXpWRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNiVUpCUVcxQ0xFVkJRVVVzYVVSQlFWTXNRMEZCUXl4RlFVTjRReXhEUVVGRExFTkJRMFlzUTBGQlF6dEpRVU5HTEU5QlFVOHNOa0pCUVc5RUxFTkJRVU03UVVGRE9VUXNRMEZCUXl4RFFVRkRPMEZCUlVZc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnl4RFFVTjRRaXhSUVVGelF5eEZRVU4wUXl4UlFVRTBRaXhGUVVNMVFpeGxRVUYzUWl4RlFVTjRRaXhGUVVGRk8wbEJRMFlzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXdyUkVGQmNVSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRKUVVNelJDeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExESkVRVUZ0UWl4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRPMGxCUlRORkxFMUJRVTBzV1VGQldTeEhRVU5vUWl4bFFVRmxMRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNN1VVRkROVU1zUTBGQlF5eERRVUZETEhsRVFVRmxMRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdVVUZEYmtNc1EwRkJReXhEUVVGRExIbEVRVUZsTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dEpRVVV4UXl4TlFVRk5MRTlCUVU4c1IwRkJSenRSUVVOa0xFdEJRVXNzUlVGQlJTdzRRa0ZCT0VJc1EwRkJReXhaUVVGWkxFVkJRVVU3V1VGRGJFUXNTMEZCU3l4RlFVRkZMRkZCUVZFc1EwRkJReXhMUVVGTE8xbEJRM0pDTEUxQlFVMHNSVUZCUlN4UlFVRlJMRU5CUVVNc1RVRkJUVHRUUVVONFFpeERRVUZETzB0QlEwZ3NRMEZCUXp0SlFVVkdMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhaUVVGWkxFTkJRVU03U1VGRGRFTXNUVUZCVFN4UFFVRlBMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUXpsQ0xFMUJRVTBzVDBGQlR5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU01UWl4UFFVRlBPMUZCUTB3c1VVRkJVU3huUkVGRFNDeFJRVUZSTEVkQlExSXNPRVJCUVdNc1EwRkJRenRaUVVOb1FpeFZRVUZWTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1QwRkJUeXhGUVVGRkxFTkJRVU1zUlVGQlJTeFBRVUZQTEVWQlFVVTdXVUZEZEVNc2EwSkJRV3RDTEVWQlFVVTdaMEpCUTJ4Q0xFdEJRVXNzUlVGQlJTeFJRVUZSTEVOQlFVTXNTMEZCU3p0blFrRkRja0lzVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4TlFVRk5PMkZCUTNoQ08xbEJRMFFzU1VGQlNTeEZRVUZGTEU5QlFVODdVMEZEWkN4RFFVRkRMRXRCUTBZc1NVRkJTU3hGUVVGRkxFOUJRVThzUjBGRFpEdFJRVU5FTEdWQlFXVXNSVUZCUlN4TFFVRkxPMHRCUTNaQ0xFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MRzlDUVVGdlFpeEhRVUZITEc5RVFVRlJMRU5CUVVNN1NVRkRNME1zU1VGQlNTeEZRVUZGTEdsQ1FVRnBRanRKUVVOMlFpeFBRVUZQTEVWQlFVVXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVVzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXp0SlFVTTFSU3hQUVVGUExFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVTnFRaXhMUVVGTExFTkJRVU1zU1VGQlNTeExRVUZMTERSRFFVRlRPMUZCUTNoQ0xFdEJRVXNzUTBGQlF5eFJRVUZSTzFGQlEyUXNRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUVHRSUVVOaUxFTkJRVU1zUzBGQlN5eERRVUZETEcxRVFVRm5RaXhEUVVGRE8wTkJRek5DTEVOQlFVTXNRMEZCUXp0QlFVVkpMRTFCUVUwc1pVRkJaU3hIUVVGSExHOUVRVUZSTEVOQlFVTTdTVUZEZEVNc1NVRkJTU3hGUVVGRkxGZEJRVmM3U1VGRGFrSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEZRVUZGTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4TFFVRkxMRU5CUVVNN1NVRkROMFVzVDBGQlR5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkRha0lzUzBGQlN5eERRVUZETEVsQlFVa3NTMEZCU3l3MFEwRkJVenRSUVVONFFpeExRVUZMTEVOQlFVTXNVVUZCVVR0UlFVTmtMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTA3VVVGRFlpeERRVUZETEV0QlFVc3NRMEZCUXl4dFJFRkJaMElzUTBGQlF6dERRVU16UWl4RFFVRkRMRU5CUVVNN1FVRkZTU3hOUVVGTkxHbENRVUZwUWl4SFFVRkhMRzlFUVVGUkxFTkJRVU03U1VGRGVFTXNTVUZCU1N4RlFVRkZMR0ZCUVdFN1NVRkRia0lzVDBGQlR5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJUdFJRVU01UWl4UFFVRlBPMWxCUTB3c1VVRkJVU3hyUTBGRFNDeFJRVUZSTEV0QlExZ3NTMEZCU3l4RlFVTklMRXRCUVVzc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEV0QlFVc3NiVVJCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zYTBSQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc2JVUkJRVmNzUTBGQlF5eEhRVU4yUlR0WlFVTkVMR1ZCUVdVc1JVRkJSU3hMUVVGTE8xTkJRM1pDTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUTBRc1kwRkJZeXhGUVVGRkxFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVVXNWVUZCVlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRelZETERoRlFVRkxMRXRCUVVzc1JVRkJSU3hGUVVGRkxHbENRVUZwUWl4RlFVRkZMRk5CUVZNc1JVRkJSU3huUWtGRE1VTXNkVVJCUVVNc2MwVkJRV01zU1VGRFlpeExRVUZMTEVWQlFVVXNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkRja0lzVVVGQlVTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVN1owSkJRMnhDTEZWQlFWVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRaUVVOd1FpeERRVUZETEZkQlEwUXNXVUZEUlN4RFFVTlFPMGxCUTBRc1QwRkJUeXhGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eFJRVUZSTEVsQlFVa3NTMEZCU3l4RFFVRkRMRWxCUVVrc1MwRkJTeXd3UTBGQlR6dERRVU0zUlN4RFFVRkRMRU5CUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZV04wYVc5dWN5OWhZM1JwYjI1RFlXNTJZWE11ZEhONFB6VmtPRFFpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ1EyOXNiM0pRYVdOclpYSWdmU0JtY205dElGd2lMaTR2WTI5dGNHOXVaVzUwY3k5RGIyeHZjbEJwWTJ0bGNsd2lPMXh1YVcxd2IzSjBJSHNnZW05dmJVbHVMQ0I2YjI5dFQzVjBJSDBnWm5KdmJTQmNJaTR1TDJOdmJYQnZibVZ1ZEhNdmFXTnZibk5jSWp0Y2JtbHRjRzl5ZENCN0lGUnZiMnhDZFhSMGIyNGdmU0JtY205dElGd2lMaTR2WTI5dGNHOXVaVzUwY3k5VWIyOXNRblYwZEc5dVhDSTdYRzVwYlhCdmNuUWdleUJFWVhKclRXOWtaVlJ2WjJkc1pTQjlJR1p5YjIwZ1hDSXVMaTlqYjIxd2IyNWxiblJ6TDBSaGNtdE5iMlJsVkc5bloyeGxYQ0k3WEc1cGJYQnZjblFnZXlCVVNFVk5SU3dnV2s5UFRWOVRWRVZRSUgwZ1puSnZiU0JjSWk0dUwyTnZibk4wWVc1MGMxd2lPMXh1YVcxd2IzSjBJSHNnWjJWMFEyOXRiVzl1UW05MWJtUnpMQ0JuWlhST2IyNUVaV3hsZEdWa1JXeGxiV1Z1ZEhNZ2ZTQm1jbTl0SUZ3aUxpNHZaV3hsYldWdWRGd2lPMXh1YVcxd2IzSjBJSHNnUlhoallXeHBaSEpoZDBWc1pXMWxiblFnZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEM5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ2RDQjlJR1p5YjIwZ1hDSXVMaTlwTVRodVhDSTdYRzVwYlhCdmNuUWdleUJEVDBSRlV5d2dTMFZaVXlCOUlHWnliMjBnWENJdUxpOXJaWGx6WENJN1hHNXBiWEJ2Y25RZ2V5Qm5aWFJPYjNKdFlXeHBlbVZrV205dmJTd2daMlYwVTJWc1pXTjBaV1JGYkdWdFpXNTBjeUI5SUdaeWIyMGdYQ0l1TGk5elkyVnVaVndpTzF4dWFXMXdiM0owSUhzZ1kyVnVkR1Z5VTJOeWIyeHNUMjRnZlNCbWNtOXRJRndpTGk0dmMyTmxibVV2YzJOeWIyeHNYQ0k3WEc1cGJYQnZjblFnZXlCblpYUlRkR0YwWlVadmNscHZiMjBnZlNCbWNtOXRJRndpTGk0dmMyTmxibVV2ZW05dmJWd2lPMXh1YVcxd2IzSjBJSHNnUVhCd1UzUmhkR1VzSUU1dmNtMWhiR2w2WldSYWIyOXRWbUZzZFdVZ2ZTQm1jbTl0SUZ3aUxpNHZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdJR2RsZEZOb2IzSjBZM1YwUzJWNUlIMGdabkp2YlNCY0lpNHVMM1YwYVd4elhDSTdYRzVwYlhCdmNuUWdleUJ5WldkcGMzUmxjaUI5SUdaeWIyMGdYQ0l1TDNKbFoybHpkR1Z5WENJN1hHNXBiWEJ2Y25RZ2V5QlViMjlzZEdsd0lIMGdabkp2YlNCY0lpNHVMMk52YlhCdmJtVnVkSE12Vkc5dmJIUnBjRndpTzF4dWFXMXdiM0owSUhzZ2JtVjNSV3hsYldWdWRGZHBkR2dnZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEM5dGRYUmhkR1ZGYkdWdFpXNTBYQ0k3WEc1cGJYQnZjblFnZXlCblpYUkVaV1poZFd4MFFYQndVM1JoZEdVZ2ZTQm1jbTl0SUZ3aUxpNHZZWEJ3VTNSaGRHVmNJanRjYm1sdGNHOXlkQ0JEYkdWaGNrTmhiblpoY3lCbWNtOXRJRndpTGk0dlkyOXRjRzl1Wlc1MGN5OURiR1ZoY2tOaGJuWmhjMXdpTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWVdOMGFXOXVRMmhoYm1kbFZtbGxkMEpoWTJ0bmNtOTFibVJEYjJ4dmNpQTlJSEpsWjJsemRHVnlLSHRjYmlBZ2JtRnRaVG9nWENKamFHRnVaMlZXYVdWM1FtRmphMmR5YjNWdVpFTnZiRzl5WENJc1hHNGdJSEJsY21admNtMDZJQ2hmTENCaGNIQlRkR0YwWlN3Z2RtRnNkV1VwSUQwK0lIdGNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnWVhCd1UzUmhkR1U2SUhzZ0xpNHVZWEJ3VTNSaGRHVXNJQzR1TG5aaGJIVmxJSDBzWEc0Z0lDQWdJQ0JqYjIxdGFYUlViMGhwYzNSdmNuazZJQ0VoZG1Gc2RXVXVkbWxsZDBKaFkydG5jbTkxYm1SRGIyeHZjaXhjYmlBZ0lDQjlPMXh1SUNCOUxGeHVJQ0JRWVc1bGJFTnZiWEJ2Ym1WdWREb2dLSHNnWVhCd1UzUmhkR1VzSUhWd1pHRjBaVVJoZEdFZ2ZTa2dQVDRnZTF4dUlDQWdJSEpsZEhWeWJpQW9YRzRnSUNBZ0lDQThaR2wySUhOMGVXeGxQWHQ3SUhCdmMybDBhVzl1T2lCY0luSmxiR0YwYVhabFhDSWdmWDArWEc0Z0lDQWdJQ0FnSUR4RGIyeHZjbEJwWTJ0bGNseHVJQ0FnSUNBZ0lDQWdJR3hoWW1Wc1BYdDBLRndpYkdGaVpXeHpMbU5oYm5aaGMwSmhZMnRuY205MWJtUmNJaWw5WEc0Z0lDQWdJQ0FnSUNBZ2RIbHdaVDFjSW1OaGJuWmhjMEpoWTJ0bmNtOTFibVJjSWx4dUlDQWdJQ0FnSUNBZ0lHTnZiRzl5UFh0aGNIQlRkR0YwWlM1MmFXVjNRbUZqYTJkeWIzVnVaRU52Ykc5eWZWeHVJQ0FnSUNBZ0lDQWdJRzl1UTJoaGJtZGxQWHNvWTI5c2IzSXBJRDArSUhWd1pHRjBaVVJoZEdFb2V5QjJhV1YzUW1GamEyZHliM1Z1WkVOdmJHOXlPaUJqYjJ4dmNpQjlLWDFjYmlBZ0lDQWdJQ0FnSUNCcGMwRmpkR2wyWlQxN1lYQndVM1JoZEdVdWIzQmxibEJ2Y0hWd0lEMDlQU0JjSW1OaGJuWmhjME52Ykc5eVVHbGphMlZ5WENKOVhHNGdJQ0FnSUNBZ0lDQWdjMlYwUVdOMGFYWmxQWHNvWVdOMGFYWmxLU0E5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdkWEJrWVhSbFJHRjBZU2g3SUc5d1pXNVFiM0IxY0RvZ1lXTjBhWFpsSUQ4Z1hDSmpZVzUyWVhORGIyeHZjbEJwWTJ0bGNsd2lJRG9nYm5Wc2JDQjlLVnh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQmtZWFJoTFhSbGMzUnBaRDFjSW1OaGJuWmhjeTFpWVdOclozSnZkVzVrTFhCcFkydGxjbHdpWEc0Z0lDQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBOEwyUnBkajVjYmlBZ0lDQXBPMXh1SUNCOUxGeHVmU2s3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JoWTNScGIyNURiR1ZoY2tOaGJuWmhjeUE5SUhKbFoybHpkR1Z5S0h0Y2JpQWdibUZ0WlRvZ1hDSmpiR1ZoY2tOaGJuWmhjMXdpTEZ4dUlDQndaWEptYjNKdE9pQW9aV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxMQ0JmTENCaGNIQXBJRDArSUh0Y2JpQWdJQ0JoY0hBdWFXMWhaMlZEWVdOb1pTNWpiR1ZoY2lncE8xeHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0JsYkdWdFpXNTBjem9nWld4bGJXVnVkSE11YldGd0tDaGxiR1Z0Wlc1MEtTQTlQbHh1SUNBZ0lDQWdJQ0J1WlhkRmJHVnRaVzUwVjJsMGFDaGxiR1Z0Wlc1MExDQjdJR2x6UkdWc1pYUmxaRG9nZEhKMVpTQjlLU3hjYmlBZ0lDQWdJQ2tzWEc0Z0lDQWdJQ0JoY0hCVGRHRjBaVG9nZTF4dUlDQWdJQ0FnSUNBdUxpNW5aWFJFWldaaGRXeDBRWEJ3VTNSaGRHVW9LU3hjYmlBZ0lDQWdJQ0FnWm1sc1pYTTZJSHQ5TEZ4dUlDQWdJQ0FnSUNCMGFHVnRaVG9nWVhCd1UzUmhkR1V1ZEdobGJXVXNYRzRnSUNBZ0lDQWdJR1ZzWlcxbGJuUk1iMk5yWldRNklHRndjRk4wWVhSbExtVnNaVzFsYm5STWIyTnJaV1FzWEc0Z0lDQWdJQ0FnSUhCbGJrMXZaR1U2SUdGd2NGTjBZWFJsTG5CbGJrMXZaR1VzWEc0Z0lDQWdJQ0FnSUhCbGJrUmxkR1ZqZEdWa09pQmhjSEJUZEdGMFpTNXdaVzVFWlhSbFkzUmxaQ3hjYmlBZ0lDQWdJQ0FnWlhod2IzSjBRbUZqYTJkeWIzVnVaRG9nWVhCd1UzUmhkR1V1Wlhod2IzSjBRbUZqYTJkeWIzVnVaQ3hjYmlBZ0lDQWdJQ0FnWlhod2IzSjBSVzFpWldSVFkyVnVaVG9nWVhCd1UzUmhkR1V1Wlhod2IzSjBSVzFpWldSVFkyVnVaU3hjYmlBZ0lDQWdJQ0FnWjNKcFpGTnBlbVU2SUdGd2NGTjBZWFJsTG1keWFXUlRhWHBsTEZ4dUlDQWdJQ0FnSUNCemFHOTNVM1JoZEhNNklHRndjRk4wWVhSbExuTm9iM2RUZEdGMGN5eGNiaUFnSUNBZ0lDQWdjR0Z6ZEdWRWFXRnNiMmM2SUdGd2NGTjBZWFJsTG5CaGMzUmxSR2xoYkc5bkxGeHVJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MFZIbHdaVHBjYmlBZ0lDQWdJQ0FnSUNCaGNIQlRkR0YwWlM1bGJHVnRaVzUwVkhsd1pTQTlQVDBnWENKcGJXRm5aVndpSUQ4Z1hDSnpaV3hsWTNScGIyNWNJaUE2SUdGd2NGTjBZWFJsTG1Wc1pXMWxiblJVZVhCbExGeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVRvZ2RISjFaU3hjYmlBZ0lDQjlPMXh1SUNCOUxGeHVYRzRnSUZCaGJtVnNRMjl0Y0c5dVpXNTBPaUFvZXlCMWNHUmhkR1ZFWVhSaElIMHBJRDArSUR4RGJHVmhja05oYm5aaGN5QnZia052Ym1acGNtMDllM1Z3WkdGMFpVUmhkR0Y5SUM4K0xGeHVmU2s3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JoWTNScGIyNWFiMjl0U1c0Z1BTQnlaV2RwYzNSbGNpaDdYRzRnSUc1aGJXVTZJRndpZW05dmJVbHVYQ0lzWEc0Z0lIQmxjbVp2Y20wNklDaGZaV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxMQ0JmTENCaGNIQXBJRDArSUh0Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdZWEJ3VTNSaGRHVTZJSHRjYmlBZ0lDQWdJQ0FnTGk0dVlYQndVM1JoZEdVc1hHNGdJQ0FnSUNBZ0lDNHVMbWRsZEZOMFlYUmxSbTl5V205dmJTaGNiaUFnSUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJhV1YzY0c5eWRGZzZJR0Z3Y0ZOMFlYUmxMbmRwWkhSb0lDOGdNaUFySUdGd2NGTjBZWFJsTG05bVpuTmxkRXhsWm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyYVdWM2NHOXlkRms2SUdGd2NGTjBZWFJsTG1obGFXZG9kQ0F2SURJZ0t5QmhjSEJUZEdGMFpTNXZabVp6WlhSVWIzQXNYRzRnSUNBZ0lDQWdJQ0FnSUNCdVpYaDBXbTl2YlRvZ1oyVjBUbTl5YldGc2FYcGxaRnB2YjIwb1lYQndVM1JoZEdVdWVtOXZiUzUyWVd4MVpTQXJJRnBQVDAxZlUxUkZVQ2tzWEc0Z0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0JoY0hCVGRHRjBaU3hjYmlBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCamIyMXRhWFJVYjBocGMzUnZjbms2SUdaaGJITmxMRnh1SUNBZ0lIMDdYRzRnSUgwc1hHNGdJRkJoYm1Wc1EyOXRjRzl1Wlc1ME9pQW9leUIxY0dSaGRHVkVZWFJoSUgwcElEMCtJQ2hjYmlBZ0lDQThWRzl2YkVKMWRIUnZibHh1SUNBZ0lDQWdkSGx3WlQxY0ltSjFkSFJ2Ymx3aVhHNGdJQ0FnSUNCcFkyOXVQWHQ2YjI5dFNXNTlYRzRnSUNBZ0lDQjBhWFJzWlQxN1lDUjdkQ2hjSW1KMWRIUnZibk11ZW05dmJVbHVYQ0lwZlNEaWdKUWdKSHRuWlhSVGFHOXlkR04xZEV0bGVTaGNJa04wY214UGNrTnRaQ3NyWENJcGZXQjlYRzRnSUNBZ0lDQmhjbWxoTFd4aFltVnNQWHQwS0Z3aVluVjBkRzl1Y3k1NmIyOXRTVzVjSWlsOVhHNGdJQ0FnSUNCdmJrTnNhV05yUFhzb0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUhWd1pHRjBaVVJoZEdFb2JuVnNiQ2s3WEc0Z0lDQWdJQ0I5ZlZ4dUlDQWdJQ0FnYzJsNlpUMWNJbk50WVd4c1hDSmNiaUFnSUNBdlBseHVJQ0FwTEZ4dUlDQnJaWGxVWlhOME9pQW9aWFpsYm5RcElEMCtYRzRnSUNBZ0tHVjJaVzUwTG1OdlpHVWdQVDA5SUVOUFJFVlRMa1ZSVlVGTUlIeDhJR1YyWlc1MExtTnZaR1VnUFQwOUlFTlBSRVZUTGs1VlRWOUJSRVFwSUNZbVhHNGdJQ0FnS0dWMlpXNTBXMHRGV1ZNdVExUlNURjlQVWw5RFRVUmRJSHg4SUdWMlpXNTBMbk5vYVdaMFMyVjVLU3hjYm4wcE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1lXTjBhVzl1V205dmJVOTFkQ0E5SUhKbFoybHpkR1Z5S0h0Y2JpQWdibUZ0WlRvZ1hDSjZiMjl0VDNWMFhDSXNYRzRnSUhCbGNtWnZjbTA2SUNoZlpXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQmZMQ0JoY0hBcElEMCtJSHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ1lYQndVM1JoZEdVNklIdGNiaUFnSUNBZ0lDQWdMaTR1WVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0FnSUM0dUxtZGxkRk4wWVhSbFJtOXlXbTl2YlNoY2JpQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMmFXVjNjRzl5ZEZnNklHRndjRk4wWVhSbExuZHBaSFJvSUM4Z01pQXJJR0Z3Y0ZOMFlYUmxMbTltWm5ObGRFeGxablFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjJhV1YzY0c5eWRGazZJR0Z3Y0ZOMFlYUmxMbWhsYVdkb2RDQXZJRElnS3lCaGNIQlRkR0YwWlM1dlptWnpaWFJVYjNBc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhoMFdtOXZiVG9nWjJWMFRtOXliV0ZzYVhwbFpGcHZiMjBvWVhCd1UzUmhkR1V1ZW05dmJTNTJZV3gxWlNBdElGcFBUMDFmVTFSRlVDa3NYRzRnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpTeGNiaUFnSUNBZ0lDQWdLU3hjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0JqYjIxdGFYUlViMGhwYzNSdmNuazZJR1poYkhObExGeHVJQ0FnSUgwN1hHNGdJSDBzWEc0Z0lGQmhibVZzUTI5dGNHOXVaVzUwT2lBb2V5QjFjR1JoZEdWRVlYUmhJSDBwSUQwK0lDaGNiaUFnSUNBOFZHOXZiRUoxZEhSdmJseHVJQ0FnSUNBZ2RIbHdaVDFjSW1KMWRIUnZibHdpWEc0Z0lDQWdJQ0JwWTI5dVBYdDZiMjl0VDNWMGZWeHVJQ0FnSUNBZ2RHbDBiR1U5ZTJBa2UzUW9YQ0ppZFhSMGIyNXpMbnB2YjIxUGRYUmNJaWw5SU9LQWxDQWtlMmRsZEZOb2IzSjBZM1YwUzJWNUtGd2lRM1J5YkU5eVEyMWtLeTFjSWlsOVlIMWNiaUFnSUNBZ0lHRnlhV0V0YkdGaVpXdzllM1FvWENKaWRYUjBiMjV6TG5wdmIyMVBkWFJjSWlsOVhHNGdJQ0FnSUNCdmJrTnNhV05yUFhzb0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUhWd1pHRjBaVVJoZEdFb2JuVnNiQ2s3WEc0Z0lDQWdJQ0I5ZlZ4dUlDQWdJQ0FnYzJsNlpUMWNJbk50WVd4c1hDSmNiaUFnSUNBdlBseHVJQ0FwTEZ4dUlDQnJaWGxVWlhOME9pQW9aWFpsYm5RcElEMCtYRzRnSUNBZ0tHVjJaVzUwTG1OdlpHVWdQVDA5SUVOUFJFVlRMazFKVGxWVElIeDhJR1YyWlc1MExtTnZaR1VnUFQwOUlFTlBSRVZUTGs1VlRWOVRWVUpVVWtGRFZDa2dKaVpjYmlBZ0lDQW9aWFpsYm5SYlMwVlpVeTVEVkZKTVgwOVNYME5OUkYwZ2ZId2daWFpsYm5RdWMyaHBablJMWlhrcExGeHVmU2s3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JoWTNScGIyNVNaWE5sZEZwdmIyMGdQU0J5WldkcGMzUmxjaWg3WEc0Z0lHNWhiV1U2SUZ3aWNtVnpaWFJhYjI5dFhDSXNYRzRnSUhCbGNtWnZjbTA2SUNoZlpXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQmZMQ0JoY0hBcElEMCtJSHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ1lYQndVM1JoZEdVNklIdGNiaUFnSUNBZ0lDQWdMaTR1WVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0FnSUM0dUxtZGxkRk4wWVhSbFJtOXlXbTl2YlNoY2JpQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMmFXVjNjRzl5ZEZnNklHRndjRk4wWVhSbExuZHBaSFJvSUM4Z01pQXJJR0Z3Y0ZOMFlYUmxMbTltWm5ObGRFeGxablFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjJhV1YzY0c5eWRGazZJR0Z3Y0ZOMFlYUmxMbWhsYVdkb2RDQXZJRElnS3lCaGNIQlRkR0YwWlM1dlptWnpaWFJVYjNBc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhoMFdtOXZiVG9nWjJWMFRtOXliV0ZzYVhwbFpGcHZiMjBvTVNrc1hHNGdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnSUNCaGNIQlRkR0YwWlN4Y2JpQWdJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQmpiMjF0YVhSVWIwaHBjM1J2Y25rNklHWmhiSE5sTEZ4dUlDQWdJSDA3WEc0Z0lIMHNYRzRnSUZCaGJtVnNRMjl0Y0c5dVpXNTBPaUFvZXlCMWNHUmhkR1ZFWVhSaExDQmhjSEJUZEdGMFpTQjlLU0E5UGlBb1hHNGdJQ0FnUEZSdmIyeDBhWEFnYkdGaVpXdzllM1FvWENKaWRYUjBiMjV6TG5KbGMyVjBXbTl2YlZ3aUtYMGdjM1I1YkdVOWUzc2dhR1ZwWjJoME9pQmNJakV3TUNWY0lpQjlmVDVjYmlBZ0lDQWdJRHhVYjI5c1FuVjBkRzl1WEc0Z0lDQWdJQ0FnSUhSNWNHVTlYQ0ppZFhSMGIyNWNJbHh1SUNBZ0lDQWdJQ0JqYkdGemMwNWhiV1U5WENKeVpYTmxkQzE2YjI5dExXSjFkSFJ2Ymx3aVhHNGdJQ0FnSUNBZ0lIUnBkR3hsUFh0MEtGd2lZblYwZEc5dWN5NXlaWE5sZEZwdmIyMWNJaWw5WEc0Z0lDQWdJQ0FnSUdGeWFXRXRiR0ZpWld3OWUzUW9YQ0ppZFhSMGIyNXpMbkpsYzJWMFdtOXZiVndpS1gxY2JpQWdJQ0FnSUNBZ2IyNURiR2xqYXoxN0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lIVndaR0YwWlVSaGRHRW9iblZzYkNrN1hHNGdJQ0FnSUNBZ0lIMTlYRzRnSUNBZ0lDQWdJSE5wZW1VOVhDSnpiV0ZzYkZ3aVhHNGdJQ0FnSUNBK1hHNGdJQ0FnSUNBZ0lIc29ZWEJ3VTNSaGRHVXVlbTl2YlM1MllXeDFaU0FxSURFd01Da3VkRzlHYVhobFpDZ3dLWDBsWEc0Z0lDQWdJQ0E4TDFSdmIyeENkWFIwYjI0K1hHNGdJQ0FnUEM5VWIyOXNkR2x3UGx4dUlDQXBMRnh1SUNCclpYbFVaWE4wT2lBb1pYWmxiblFwSUQwK1hHNGdJQ0FnS0dWMlpXNTBMbU52WkdVZ1BUMDlJRU5QUkVWVExscEZVazhnZkh3Z1pYWmxiblF1WTI5a1pTQTlQVDBnUTA5RVJWTXVUbFZOWDFwRlVrOHBJQ1ltWEc0Z0lDQWdLR1YyWlc1MFcwdEZXVk11UTFSU1RGOVBVbDlEVFVSZElIeDhJR1YyWlc1MExuTm9hV1owUzJWNUtTeGNibjBwTzF4dVhHNWpiMjV6ZENCNmIyOXRWbUZzZFdWVWIwWnBkRUp2ZFc1a2MwOXVWbWxsZDNCdmNuUWdQU0FvWEc0Z0lHSnZkVzVrY3pvZ1cyNTFiV0psY2l3Z2JuVnRZbVZ5TENCdWRXMWlaWElzSUc1MWJXSmxjbDBzWEc0Z0lIWnBaWGR3YjNKMFJHbHRaVzV6YVc5dWN6b2dleUIzYVdSMGFEb2diblZ0WW1WeU95Qm9aV2xuYUhRNklHNTFiV0psY2lCOUxGeHVLU0E5UGlCN1hHNGdJR052Ym5OMElGdDRNU3dnZVRFc0lIZ3lMQ0I1TWwwZ1BTQmliM1Z1WkhNN1hHNGdJR052Ym5OMElHTnZiVzF2YmtKdmRXNWtjMWRwWkhSb0lEMGdlRElnTFNCNE1UdGNiaUFnWTI5dWMzUWdlbTl2YlZaaGJIVmxSbTl5VjJsa2RHZ2dQU0IyYVdWM2NHOXlkRVJwYldWdWMybHZibk11ZDJsa2RHZ2dMeUJqYjIxdGIyNUNiM1Z1WkhOWGFXUjBhRHRjYmlBZ1kyOXVjM1FnWTI5dGJXOXVRbTkxYm1SelNHVnBaMmgwSUQwZ2VUSWdMU0I1TVR0Y2JpQWdZMjl1YzNRZ2VtOXZiVlpoYkhWbFJtOXlTR1ZwWjJoMElEMGdkbWxsZDNCdmNuUkVhVzFsYm5OcGIyNXpMbWhsYVdkb2RDQXZJR052YlcxdmJrSnZkVzVrYzBobGFXZG9kRHRjYmlBZ1kyOXVjM1FnYzIxaGJHeGxjM1JhYjI5dFZtRnNkV1VnUFNCTllYUm9MbTFwYmloNmIyOXRWbUZzZFdWR2IzSlhhV1IwYUN3Z2VtOXZiVlpoYkhWbFJtOXlTR1ZwWjJoMEtUdGNiaUFnWTI5dWMzUWdlbTl2YlVGa2FuVnpkR1ZrVkc5VGRHVndjeUE5WEc0Z0lDQWdUV0YwYUM1bWJHOXZjaWh6YldGc2JHVnpkRnB2YjIxV1lXeDFaU0F2SUZwUFQwMWZVMVJGVUNrZ0tpQmFUMDlOWDFOVVJWQTdYRzRnSUdOdmJuTjBJR05zWVcxd1pXUmFiMjl0Vm1Gc2RXVlViMFpwZEVWc1pXMWxiblJ6SUQwZ1RXRjBhQzV0YVc0b1hHNGdJQ0FnVFdGMGFDNXRZWGdvZW05dmJVRmthblZ6ZEdWa1ZHOVRkR1Z3Y3l3Z1drOVBUVjlUVkVWUUtTeGNiaUFnSUNBeExGeHVJQ0FwTzF4dUlDQnlaWFIxY200Z1kyeGhiWEJsWkZwdmIyMVdZV3gxWlZSdlJtbDBSV3hsYldWdWRITWdZWE1nVG05eWJXRnNhWHBsWkZwdmIyMVdZV3gxWlR0Y2JuMDdYRzVjYm1OdmJuTjBJSHB2YjIxVWIwWnBkRVZzWlcxbGJuUnpJRDBnS0Z4dUlDQmxiR1Z0Wlc1MGN6b2djbVZoWkc5dWJIa2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYU3hjYmlBZ1lYQndVM1JoZEdVNklGSmxZV1J2Ym14NVBFRndjRk4wWVhSbFBpeGNiaUFnZW05dmJWUnZVMlZzWldOMGFXOXVPaUJpYjI5c1pXRnVMRnh1S1NBOVBpQjdYRzRnSUdOdmJuTjBJRzV2YmtSbGJHVjBaV1JGYkdWdFpXNTBjeUE5SUdkbGRFNXZia1JsYkdWMFpXUkZiR1Z0Wlc1MGN5aGxiR1Z0Wlc1MGN5azdYRzRnSUdOdmJuTjBJSE5sYkdWamRHVmtSV3hsYldWdWRITWdQU0JuWlhSVFpXeGxZM1JsWkVWc1pXMWxiblJ6S0c1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVcE8xeHVYRzRnSUdOdmJuTjBJR052YlcxdmJrSnZkVzVrY3lBOVhHNGdJQ0FnZW05dmJWUnZVMlZzWldOMGFXOXVJQ1ltSUhObGJHVmpkR1ZrUld4bGJXVnVkSE11YkdWdVozUm9JRDRnTUZ4dUlDQWdJQ0FnUHlCblpYUkRiMjF0YjI1Q2IzVnVaSE1vYzJWc1pXTjBaV1JGYkdWdFpXNTBjeWxjYmlBZ0lDQWdJRG9nWjJWMFEyOXRiVzl1UW05MWJtUnpLRzV2YmtSbGJHVjBaV1JGYkdWdFpXNTBjeWs3WEc1Y2JpQWdZMjl1YzNRZ2JtVjNXbTl2YlNBOUlIdGNiaUFnSUNCMllXeDFaVG9nZW05dmJWWmhiSFZsVkc5R2FYUkNiM1Z1WkhOUGJsWnBaWGR3YjNKMEtHTnZiVzF2YmtKdmRXNWtjeXdnZTF4dUlDQWdJQ0FnZDJsa2RHZzZJR0Z3Y0ZOMFlYUmxMbmRwWkhSb0xGeHVJQ0FnSUNBZ2FHVnBaMmgwT2lCaGNIQlRkR0YwWlM1b1pXbG5hSFFzWEc0Z0lDQWdmU2tzWEc0Z0lIMDdYRzVjYmlBZ1kyOXVjM1FnVzNneExDQjVNU3dnZURJc0lIa3lYU0E5SUdOdmJXMXZia0p2ZFc1a2N6dGNiaUFnWTI5dWMzUWdZMlZ1ZEdWeVdDQTlJQ2g0TVNBcklIZ3lLU0F2SURJN1hHNGdJR052Ym5OMElHTmxiblJsY2xrZ1BTQW9lVEVnS3lCNU1pa2dMeUF5TzF4dUlDQnlaWFIxY200Z2UxeHVJQ0FnSUdGd2NGTjBZWFJsT2lCN1hHNGdJQ0FnSUNBdUxpNWhjSEJUZEdGMFpTeGNiaUFnSUNBZ0lDNHVMbU5sYm5SbGNsTmpjbTlzYkU5dUtIdGNiaUFnSUNBZ0lDQWdjMk5sYm1WUWIybHVkRG9nZXlCNE9pQmpaVzUwWlhKWUxDQjVPaUJqWlc1MFpYSlpJSDBzWEc0Z0lDQWdJQ0FnSUhacFpYZHdiM0owUkdsdFpXNXphVzl1Y3pvZ2UxeHVJQ0FnSUNBZ0lDQWdJSGRwWkhSb09pQmhjSEJUZEdGMFpTNTNhV1IwYUN4Y2JpQWdJQ0FnSUNBZ0lDQm9aV2xuYUhRNklHRndjRk4wWVhSbExtaGxhV2RvZEN4Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdlbTl2YlRvZ2JtVjNXbTl2YlN4Y2JpQWdJQ0FnSUgwcExGeHVJQ0FnSUNBZ2VtOXZiVG9nYm1WM1dtOXZiU3hjYmlBZ0lDQjlMRnh1SUNBZ0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVRvZ1ptRnNjMlVzWEc0Z0lIMDdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWVdOMGFXOXVXbTl2YlZSdlUyVnNaV04wWldRZ1BTQnlaV2RwYzNSbGNpaDdYRzRnSUc1aGJXVTZJRndpZW05dmJWUnZVMlZzWldOMGFXOXVYQ0lzWEc0Z0lIQmxjbVp2Y20wNklDaGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXBJRDArSUhwdmIyMVViMFpwZEVWc1pXMWxiblJ6S0dWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlN3Z2RISjFaU2tzWEc0Z0lHdGxlVlJsYzNRNklDaGxkbVZ1ZENrZ1BUNWNiaUFnSUNCbGRtVnVkQzVqYjJSbElEMDlQU0JEVDBSRlV5NVVWMDhnSmlaY2JpQWdJQ0JsZG1WdWRDNXphR2xtZEV0bGVTQW1KbHh1SUNBZ0lDRmxkbVZ1ZEM1aGJIUkxaWGtnSmlaY2JpQWdJQ0FoWlhabGJuUmJTMFZaVXk1RFZGSk1YMDlTWDBOTlJGMHNYRzU5S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdGamRHbHZibHB2YjIxVWIwWnBkQ0E5SUhKbFoybHpkR1Z5S0h0Y2JpQWdibUZ0WlRvZ1hDSjZiMjl0Vkc5R2FYUmNJaXhjYmlBZ2NHVnlabTl5YlRvZ0tHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTa2dQVDRnZW05dmJWUnZSbWwwUld4bGJXVnVkSE1vWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCbVlXeHpaU2tzWEc0Z0lHdGxlVlJsYzNRNklDaGxkbVZ1ZENrZ1BUNWNiaUFnSUNCbGRtVnVkQzVqYjJSbElEMDlQU0JEVDBSRlV5NVBUa1VnSmlaY2JpQWdJQ0JsZG1WdWRDNXphR2xtZEV0bGVTQW1KbHh1SUNBZ0lDRmxkbVZ1ZEM1aGJIUkxaWGtnSmlaY2JpQWdJQ0FoWlhabGJuUmJTMFZaVXk1RFZGSk1YMDlTWDBOTlJGMHNYRzU5S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdGamRHbHZibFJ2WjJkc1pWUm9aVzFsSUQwZ2NtVm5hWE4wWlhJb2UxeHVJQ0J1WVcxbE9pQmNJblJ2WjJkc1pWUm9aVzFsWENJc1hHNGdJSEJsY21admNtMDZJQ2hmTENCaGNIQlRkR0YwWlN3Z2RtRnNkV1VwSUQwK0lIdGNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnWVhCd1UzUmhkR1U2SUh0Y2JpQWdJQ0FnSUNBZ0xpNHVZWEJ3VTNSaGRHVXNYRzRnSUNBZ0lDQWdJSFJvWlcxbE9seHVJQ0FnSUNBZ0lDQWdJSFpoYkhWbElIeDhJQ2hoY0hCVGRHRjBaUzUwYUdWdFpTQTlQVDBnVkVoRlRVVXVURWxIU0ZRZ1B5QlVTRVZOUlM1RVFWSkxJRG9nVkVoRlRVVXVURWxIU0ZRcExGeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVRvZ1ptRnNjMlVzWEc0Z0lDQWdmVHRjYmlBZ2ZTeGNiaUFnVUdGdVpXeERiMjF3YjI1bGJuUTZJQ2g3SUdGd2NGTjBZWFJsTENCMWNHUmhkR1ZFWVhSaElIMHBJRDArSUNoY2JpQWdJQ0E4WkdsMklITjBlV3hsUFh0N0lHMWhjbWRwYmtsdWJHbHVaVk4wWVhKME9pQmNJakF1TWpWeVpXMWNJaUI5ZlQ1Y2JpQWdJQ0FnSUR4RVlYSnJUVzlrWlZSdloyZHNaVnh1SUNBZ0lDQWdJQ0IyWVd4MVpUMTdZWEJ3VTNSaGRHVXVkR2hsYldWOVhHNGdJQ0FnSUNBZ0lHOXVRMmhoYm1kbFBYc29kR2hsYldVcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNCMWNHUmhkR1ZFWVhSaEtIUm9aVzFsS1R0Y2JpQWdJQ0FnSUNBZ2ZYMWNiaUFnSUNBZ0lDOCtYRzRnSUNBZ1BDOWthWFkrWEc0Z0lDa3NYRzRnSUd0bGVWUmxjM1E2SUNobGRtVnVkQ2tnUFQ0Z1pYWmxiblF1WVd4MFMyVjVJQ1ltSUdWMlpXNTBMbk5vYVdaMFMyVjVJQ1ltSUdWMlpXNTBMbU52WkdVZ1BUMDlJRU5QUkVWVExrUXNYRzU5S1R0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2FjdGlvbnMvYWN0aW9uQ2FudmFzLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25DbGlwYm9hcmQudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9hY3Rpb25zL2FjdGlvbkNsaXBib2FyZC50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25Db3B5XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uQ29weSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ3V0XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uQ3V0KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25Db3B5QXNTdmdcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25Db3B5QXNTdmcpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNvcHlBc1BuZ1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvbkNvcHlBc1BuZylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2tleXMgKi8gXFxcIi4uLy4uL2tleXMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3JlZ2lzdGVyICovIFxcXCIuLi8uLi9hY3Rpb25zL3JlZ2lzdGVyLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jbGlwYm9hcmRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NsaXBib2FyZCAqLyBcXFwiLi4vLi4vY2xpcGJvYXJkLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hY3Rpb25EZWxldGVTZWxlY3RlZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9hY3Rpb25EZWxldGVTZWxlY3RlZCAqLyBcXFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25EZWxldGVTZWxlY3RlZC50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX3NlbGVjdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vc2NlbmUvc2VsZWN0aW9uICovIFxcXCIuLi8uLi9zY2VuZS9zZWxlY3Rpb24udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2RhdGFfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2RhdGEvaW5kZXggKi8gXFxcIi4uLy4uL2RhdGEvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG52YXIgX19hd2FpdGVyID0gKHVuZGVmaW5lZCAmJiB1bmRlZmluZWQuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XFxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1xcXCJ0aHJvd1xcXCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XFxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XFxuICAgIH0pO1xcbn07XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgYWN0aW9uQ29weSA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJjb3B5XFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSwgXywgYXBwKSA9PiB7XFxuICAgICAgICAoMCxfY2xpcGJvYXJkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uY29weVRvQ2xpcGJvYXJkKSgoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmdldE5vbkRlbGV0ZWRFbGVtZW50cykoZWxlbWVudHMpLCBhcHBTdGF0ZSwgYXBwLmZpbGVzKTtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIGNvbnRleHRJdGVtTGFiZWw6IFxcXCJsYWJlbHMuY29weVxcXCIsXFxuICAgIC8vIGRvbid0IHN1cHBseSBhIHNob3J0Y3V0IHNpbmNlIHdlIGhhbmRsZSB0aGlzIGNvbmRpdGlvbmFsbHkgdmlhIG9uQ29weSBldmVudFxcbiAgICBrZXlUZXN0OiB1bmRlZmluZWQsXFxufSk7XFxuY29uc3QgYWN0aW9uQ3V0ID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImN1dFxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUsIGRhdGEsIGFwcCkgPT4ge1xcbiAgICAgICAgYWN0aW9uQ29weS5wZXJmb3JtKGVsZW1lbnRzLCBhcHBTdGF0ZSwgZGF0YSwgYXBwKTtcXG4gICAgICAgIHJldHVybiBfYWN0aW9uRGVsZXRlU2VsZWN0ZWRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5hY3Rpb25EZWxldGVTZWxlY3RlZC5wZXJmb3JtKGVsZW1lbnRzLCBhcHBTdGF0ZSk7XFxuICAgIH0sXFxuICAgIGNvbnRleHRJdGVtTGFiZWw6IFxcXCJsYWJlbHMuY3V0XFxcIixcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiBldmVudFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLktFWVMuQ1RSTF9PUl9DTURdICYmIGV2ZW50LmNvZGUgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQ09ERVMuWCxcXG59KTtcXG5jb25zdCBhY3Rpb25Db3B5QXNTdmcgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiY29weUFzU3ZnXFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSwgX2RhdGEsIGFwcCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XFxuICAgICAgICBpZiAoIWFwcC5jYW52YXMpIHtcXG4gICAgICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IGZhbHNlLFxcbiAgICAgICAgICAgIH07XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gKDAsX3NjZW5lX3NlbGVjdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmdldFNlbGVjdGVkRWxlbWVudHMpKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKShlbGVtZW50cyksIGFwcFN0YXRlLCB0cnVlKTtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgeWllbGQgKDAsX2RhdGFfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5leHBvcnRDYW52YXMpKFxcXCJjbGlwYm9hcmQtc3ZnXFxcIiwgc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGhcXG4gICAgICAgICAgICAgICAgPyBzZWxlY3RlZEVsZW1lbnRzXFxuICAgICAgICAgICAgICAgIDogKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKSwgYXBwU3RhdGUsIGFwcC5maWxlcywgYXBwU3RhdGUpO1xcbiAgICAgICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXFxuICAgICAgICAgICAgfTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xcbiAgICAgICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBlcnJvck1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UgfSksXFxuICAgICAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXFxuICAgICAgICAgICAgfTtcXG4gICAgICAgIH1cXG4gICAgfSksXFxuICAgIGNvbnRleHRJdGVtTGFiZWw6IFxcXCJsYWJlbHMuY29weUFzU3ZnXFxcIixcXG59KTtcXG5jb25zdCBhY3Rpb25Db3B5QXNQbmcgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiY29weUFzUG5nXFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSwgX2RhdGEsIGFwcCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XFxuICAgICAgICBpZiAoIWFwcC5jYW52YXMpIHtcXG4gICAgICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IGZhbHNlLFxcbiAgICAgICAgICAgIH07XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gKDAsX3NjZW5lX3NlbGVjdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmdldFNlbGVjdGVkRWxlbWVudHMpKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKShlbGVtZW50cyksIGFwcFN0YXRlLCB0cnVlKTtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgeWllbGQgKDAsX2RhdGFfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5leHBvcnRDYW52YXMpKFxcXCJjbGlwYm9hcmRcXFwiLCBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aFxcbiAgICAgICAgICAgICAgICA/IHNlbGVjdGVkRWxlbWVudHNcXG4gICAgICAgICAgICAgICAgOiAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmdldE5vbkRlbGV0ZWRFbGVtZW50cykoZWxlbWVudHMpLCBhcHBTdGF0ZSwgYXBwLmZpbGVzLCBhcHBTdGF0ZSk7XFxuICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB7IHRvYXN0TWVzc2FnZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy50KShcXFwidG9hc3QuY29weVRvQ2xpcGJvYXJkQXNQbmdcXFwiLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0U2VsZWN0aW9uOiBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18udCkoXFxcInRvYXN0LnNlbGVjdGlvblxcXCIpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy50KShcXFwidG9hc3QuY2FudmFzXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0Q29sb3JTY2hlbWU6IGFwcFN0YXRlLmV4cG9ydFdpdGhEYXJrTW9kZVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18udCkoXFxcImJ1dHRvbnMuZGFya01vZGVcXFwiKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18udCkoXFxcImJ1dHRvbnMubGlnaHRNb2RlXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICB9KSB9KSxcXG4gICAgICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcXG4gICAgICAgICAgICB9O1xcbiAgICAgICAgfVxcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XFxuICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB7IGVycm9yTWVzc2FnZTogZXJyb3IubWVzc2FnZSB9KSxcXG4gICAgICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcXG4gICAgICAgICAgICB9O1xcbiAgICAgICAgfVxcbiAgICB9KSxcXG4gICAgY29udGV4dEl0ZW1MYWJlbDogXFxcImxhYmVscy5jb3B5QXNQbmdcXFwiLFxcbiAgICBrZXlUZXN0OiAoZXZlbnQpID0+IGV2ZW50LmNvZGUgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQ09ERVMuQyAmJiBldmVudC5hbHRLZXkgJiYgZXZlbnQuc2hpZnRLZXksXFxufSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZV04wYVc5dWN5OWhZM1JwYjI1RGJHbHdZbTloY21RdWRITjRMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3p0QlFVRnpRenRCUVVOQk8wRkJRMU03UVVGRFpUdEJRVU5NTzBGQlExbzdRVUZEVFR0QlFVTjJRanRCUVVWeVFpeE5RVUZOTEZWQlFWVXNSMEZCUnl4dFJFRkJVU3hEUVVGRE8wbEJRMnBETEVsQlFVa3NSVUZCUlN4TlFVRk5PMGxCUTFvc1QwRkJUeXhGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVU3VVVGRGRFTXNNa1JCUVdVc1EwRkJReXdyUkVGQmNVSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUlhSRkxFOUJRVTg3V1VGRFRDeGxRVUZsTEVWQlFVVXNTMEZCU3p0VFFVTjJRaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVU5FTEdkQ1FVRm5RaXhGUVVGRkxHRkJRV0U3U1VGREwwSXNPRVZCUVRoRk8wbEJRemxGTEU5QlFVOHNSVUZCUlN4VFFVRlRPME5CUTI1Q0xFTkJRVU1zUTBGQlF6dEJRVVZKTEUxQlFVMHNVMEZCVXl4SFFVRkhMRzFFUVVGUkxFTkJRVU03U1VGRGFFTXNTVUZCU1N4RlFVRkZMRXRCUVVzN1NVRkRXQ3hQUVVGUExFVkJRVVVzUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZMRWxCUVVrc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU42UXl4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMnhFTEU5QlFVOHNLMFZCUVRSQ0xFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRPMGxCUXpGRUxFTkJRVU03U1VGRFJDeG5Ra0ZCWjBJc1JVRkJSU3haUVVGWk8wbEJRemxDTEU5QlFVOHNSVUZCUlN4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEcxRVFVRm5RaXhEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZETEVsQlFVa3NTMEZCU3l3d1EwRkJUenREUVVOMFJTeERRVUZETEVOQlFVTTdRVUZGU1N4TlFVRk5MR1ZCUVdVc1IwRkJSeXh0UkVGQlVTeERRVUZETzBsQlEzUkRMRWxCUVVrc1JVRkJSU3hYUVVGWE8wbEJRMnBDTEU5QlFVOHNSVUZCUlN4RFFVRlBMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMUZCUTJoRUxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RlFVRkZPMWxCUTJZc1QwRkJUenRuUWtGRFRDeGxRVUZsTEVWQlFVVXNTMEZCU3p0aFFVTjJRaXhEUVVGRE8xTkJRMGc3VVVGRFJDeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExIRkZRVUZ0UWl4RFFVTXhReXdyUkVGQmNVSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkRMMElzVVVGQlVTeEZRVU5TTEVsQlFVa3NRMEZEVEN4RFFVRkRPMUZCUTBZc1NVRkJTVHRaUVVOR0xFMUJRVTBzZVVSQlFWa3NRMEZEYUVJc1pVRkJaU3hGUVVObUxHZENRVUZuUWl4RFFVRkRMRTFCUVUwN1owSkJRM0pDTEVOQlFVTXNRMEZCUXl4blFrRkJaMEk3WjBKQlEyeENMRU5CUVVNc1EwRkJReXdyUkVGQmNVSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkRia01zVVVGQlVTeEZRVU5TTEVkQlFVY3NRMEZCUXl4TFFVRkxMRVZCUTFRc1VVRkJVU3hEUVVOVUxFTkJRVU03V1VGRFJpeFBRVUZQTzJkQ1FVTk1MR1ZCUVdVc1JVRkJSU3hMUVVGTE8yRkJRM1pDTEVOQlFVTTdVMEZEU0R0UlFVRkRMRTlCUVU4c1MwRkJWU3hGUVVGRk8xbEJRMjVDTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03V1VGRGNrSXNUMEZCVHp0blFrRkRUQ3hSUVVGUkxHdERRVU5JTEZGQlFWRXNTMEZEV0N4WlFVRlpMRVZCUVVVc1MwRkJTeXhEUVVGRExFOUJRVThzUjBGRE5VSTdaMEpCUTBRc1pVRkJaU3hGUVVGRkxFdEJRVXM3WVVGRGRrSXNRMEZCUXp0VFFVTklPMGxCUTBnc1EwRkJRenRKUVVORUxHZENRVUZuUWl4RlFVRkZMR3RDUVVGclFqdERRVU55UXl4RFFVRkRMRU5CUVVNN1FVRkZTU3hOUVVGTkxHVkJRV1VzUjBGQlJ5eHRSRUZCVVN4RFFVRkRPMGxCUTNSRExFbEJRVWtzUlVGQlJTeFhRVUZYTzBsQlEycENMRTlCUVU4c1JVRkJSU3hEUVVGUExGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRMmhFTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hGUVVGRk8xbEJRMllzVDBGQlR6dG5Ra0ZEVEN4bFFVRmxMRVZCUVVVc1MwRkJTenRoUVVOMlFpeERRVUZETzFOQlEwZzdVVUZEUkN4TlFVRk5MR2RDUVVGblFpeEhRVUZITEhGRlFVRnRRaXhEUVVNeFF5d3JSRUZCY1VJc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGREwwSXNVVUZCVVN4RlFVTlNMRWxCUVVrc1EwRkRUQ3hEUVVGRE8xRkJRMFlzU1VGQlNUdFpRVU5HTEUxQlFVMHNlVVJCUVZrc1EwRkRhRUlzVjBGQlZ5eEZRVU5ZTEdkQ1FVRm5RaXhEUVVGRExFMUJRVTA3WjBKQlEzSkNMRU5CUVVNc1EwRkJReXhuUWtGQlowSTdaMEpCUTJ4Q0xFTkJRVU1zUTBGQlF5d3JSRUZCY1VJc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGRGJrTXNVVUZCVVN4RlFVTlNMRWRCUVVjc1EwRkJReXhMUVVGTExFVkJRMVFzVVVGQlVTeERRVU5VTEVOQlFVTTdXVUZEUml4UFFVRlBPMmRDUVVOTUxGRkJRVkVzYTBOQlEwZ3NVVUZCVVN4TFFVTllMRmxCUVZrc1JVRkJSU3gzUTBGQlF5eERRVUZETERSQ1FVRTBRaXhGUVVGRk8zZENRVU0xUXl4bFFVRmxMRVZCUVVVc1owSkJRV2RDTEVOQlFVTXNUVUZCVFRzMFFrRkRkRU1zUTBGQlF5eERRVUZETEhkRFFVRkRMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTTdORUpCUTNSQ0xFTkJRVU1zUTBGQlF5eDNRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJRenQzUWtGRGNrSXNhVUpCUVdsQ0xFVkJRVVVzVVVGQlVTeERRVUZETEd0Q1FVRnJRanMwUWtGRE5VTXNRMEZCUXl4RFFVRkRMSGREUVVGRExFTkJRVU1zYTBKQlFXdENMRU5CUVVNN05FSkJRM1pDTEVOQlFVTXNRMEZCUXl4M1EwRkJReXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRPM0ZDUVVNelFpeERRVUZETEVkQlEwZzdaMEpCUTBRc1pVRkJaU3hGUVVGRkxFdEJRVXM3WVVGRGRrSXNRMEZCUXp0VFFVTklPMUZCUVVNc1QwRkJUeXhMUVVGVkxFVkJRVVU3V1VGRGJrSXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVU55UWl4UFFVRlBPMmRDUVVOTUxGRkJRVkVzYTBOQlEwZ3NVVUZCVVN4TFFVTllMRmxCUVZrc1JVRkJSU3hMUVVGTExFTkJRVU1zVDBGQlR5eEhRVU0xUWp0blFrRkRSQ3hsUVVGbExFVkJRVVVzUzBGQlN6dGhRVU4yUWl4RFFVRkRPMU5CUTBnN1NVRkRTQ3hEUVVGRE8wbEJRMFFzWjBKQlFXZENMRVZCUVVVc2EwSkJRV3RDTzBsQlEzQkRMRTlCUVU4c1JVRkJSU3hEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1MwRkJTeXd3UTBGQlR5eEpRVUZKTEV0QlFVc3NRMEZCUXl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExGRkJRVkU3UTBGRE4wVXNRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJGamRHbHZibk12WVdOMGFXOXVRMnhwY0dKdllYSmtMblJ6ZUQ4MFlqQXpJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUVOUFJFVlRMQ0JMUlZsVElIMGdabkp2YlNCY0lpNHVMMnRsZVhOY0lqdGNibWx0Y0c5eWRDQjdJSEpsWjJsemRHVnlJSDBnWm5KdmJTQmNJaTR2Y21WbmFYTjBaWEpjSWp0Y2JtbHRjRzl5ZENCN0lHTnZjSGxVYjBOc2FYQmliMkZ5WkNCOUlHWnliMjBnWENJdUxpOWpiR2x3WW05aGNtUmNJanRjYm1sdGNHOXlkQ0I3SUdGamRHbHZia1JsYkdWMFpWTmxiR1ZqZEdWa0lIMGdabkp2YlNCY0lpNHZZV04wYVc5dVJHVnNaWFJsVTJWc1pXTjBaV1JjSWp0Y2JtbHRjRzl5ZENCN0lHZGxkRk5sYkdWamRHVmtSV3hsYldWdWRITWdmU0JtY205dElGd2lMaTR2YzJObGJtVXZjMlZzWldOMGFXOXVYQ0k3WEc1cGJYQnZjblFnZXlCbGVIQnZjblJEWVc1MllYTWdmU0JtY205dElGd2lMaTR2WkdGMFlTOXBibVJsZUZ3aU8xeHVhVzF3YjNKMElIc2daMlYwVG05dVJHVnNaWFJsWkVWc1pXMWxiblJ6SUgwZ1puSnZiU0JjSWk0dUwyVnNaVzFsYm5SY0lqdGNibWx0Y0c5eWRDQjdJSFFnZlNCbWNtOXRJRndpTGk0dmFURTRibHdpTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWVdOMGFXOXVRMjl3ZVNBOUlISmxaMmx6ZEdWeUtIdGNiaUFnYm1GdFpUb2dYQ0pqYjNCNVhDSXNYRzRnSUhCbGNtWnZjbTA2SUNobGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVc0lGOHNJR0Z3Y0NrZ1BUNGdlMXh1SUNBZ0lHTnZjSGxVYjBOc2FYQmliMkZ5WkNoblpYUk9iMjVFWld4bGRHVmtSV3hsYldWdWRITW9aV3hsYldWdWRITXBMQ0JoY0hCVGRHRjBaU3dnWVhCd0xtWnBiR1Z6S1R0Y2JseHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0JqYjIxdGFYUlViMGhwYzNSdmNuazZJR1poYkhObExGeHVJQ0FnSUgwN1hHNGdJSDBzWEc0Z0lHTnZiblJsZUhSSmRHVnRUR0ZpWld3NklGd2liR0ZpWld4ekxtTnZjSGxjSWl4Y2JpQWdMeThnWkc5dUozUWdjM1Z3Y0d4NUlHRWdjMmh2Y25SamRYUWdjMmx1WTJVZ2QyVWdhR0Z1Wkd4bElIUm9hWE1nWTI5dVpHbDBhVzl1WVd4c2VTQjJhV0VnYjI1RGIzQjVJR1YyWlc1MFhHNGdJR3RsZVZSbGMzUTZJSFZ1WkdWbWFXNWxaQ3hjYm4wcE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1lXTjBhVzl1UTNWMElEMGdjbVZuYVhOMFpYSW9lMXh1SUNCdVlXMWxPaUJjSW1OMWRGd2lMRnh1SUNCd1pYSm1iM0p0T2lBb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQmtZWFJoTENCaGNIQXBJRDArSUh0Y2JpQWdJQ0JoWTNScGIyNURiM0I1TG5CbGNtWnZjbTBvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCa1lYUmhMQ0JoY0hBcE8xeHVJQ0FnSUhKbGRIVnliaUJoWTNScGIyNUVaV3hsZEdWVFpXeGxZM1JsWkM1d1pYSm1iM0p0S0dWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlNrN1hHNGdJSDBzWEc0Z0lHTnZiblJsZUhSSmRHVnRUR0ZpWld3NklGd2liR0ZpWld4ekxtTjFkRndpTEZ4dUlDQnJaWGxVWlhOME9pQW9aWFpsYm5RcElEMCtJR1YyWlc1MFcwdEZXVk11UTFSU1RGOVBVbDlEVFVSZElDWW1JR1YyWlc1MExtTnZaR1VnUFQwOUlFTlBSRVZUTGxnc1hHNTlLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR0ZqZEdsdmJrTnZjSGxCYzFOMlp5QTlJSEpsWjJsemRHVnlLSHRjYmlBZ2JtRnRaVG9nWENKamIzQjVRWE5UZG1kY0lpeGNiaUFnY0dWeVptOXliVG9nWVhONWJtTWdLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU3dnWDJSaGRHRXNJR0Z3Y0NrZ1BUNGdlMXh1SUNBZ0lHbG1JQ2doWVhCd0xtTmhiblpoY3lrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUNBZ1kyOXRiV2wwVkc5SWFYTjBiM0o1T2lCbVlXeHpaU3hjYmlBZ0lDQWdJSDA3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUhObGJHVmpkR1ZrUld4bGJXVnVkSE1nUFNCblpYUlRaV3hsWTNSbFpFVnNaVzFsYm5SektGeHVJQ0FnSUNBZ1oyVjBUbTl1UkdWc1pYUmxaRVZzWlcxbGJuUnpLR1ZzWlcxbGJuUnpLU3hjYmlBZ0lDQWdJR0Z3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdkSEoxWlN4Y2JpQWdJQ0FwTzF4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCaGQyRnBkQ0JsZUhCdmNuUkRZVzUyWVhNb1hHNGdJQ0FnSUNBZ0lGd2lZMnhwY0dKdllYSmtMWE4yWjF3aUxGeHVJQ0FnSUNBZ0lDQnpaV3hsWTNSbFpFVnNaVzFsYm5SekxteGxibWQwYUZ4dUlDQWdJQ0FnSUNBZ0lEOGdjMlZzWldOMFpXUkZiR1Z0Wlc1MGMxeHVJQ0FnSUNBZ0lDQWdJRG9nWjJWMFRtOXVSR1ZzWlhSbFpFVnNaVzFsYm5SektHVnNaVzFsYm5SektTeGNiaUFnSUNBZ0lDQWdZWEJ3VTNSaGRHVXNYRzRnSUNBZ0lDQWdJR0Z3Y0M1bWFXeGxjeXhjYmlBZ0lDQWdJQ0FnWVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnWTI5dGJXbDBWRzlJYVhOMGIzSjVPaUJtWVd4elpTeGNiaUFnSUNBZ0lIMDdYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pYSnliM0k2SUdGdWVTa2dlMXh1SUNBZ0lDQWdZMjl1YzI5c1pTNWxjbkp2Y2lobGNuSnZjaWs3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0JoY0hCVGRHRjBaVG9nZTF4dUlDQWdJQ0FnSUNBZ0lDNHVMbUZ3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdJQ0FnSUdWeWNtOXlUV1Z6YzJGblpUb2daWEp5YjNJdWJXVnpjMkZuWlN4Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdZMjl0YldsMFZHOUlhWE4wYjNKNU9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUgwN1hHNGdJQ0FnZlZ4dUlDQjlMRnh1SUNCamIyNTBaWGgwU1hSbGJVeGhZbVZzT2lCY0lteGhZbVZzY3k1amIzQjVRWE5UZG1kY0lpeGNibjBwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWVdOMGFXOXVRMjl3ZVVGelVHNW5JRDBnY21WbmFYTjBaWElvZTF4dUlDQnVZVzFsT2lCY0ltTnZjSGxCYzFCdVoxd2lMRnh1SUNCd1pYSm1iM0p0T2lCaGMzbHVZeUFvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCZlpHRjBZU3dnWVhCd0tTQTlQaUI3WEc0Z0lDQWdhV1lnS0NGaGNIQXVZMkZ1ZG1GektTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ0lDQmpiMjF0YVhSVWIwaHBjM1J2Y25rNklHWmhiSE5sTEZ4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ2MyVnNaV04wWldSRmJHVnRaVzUwY3lBOUlHZGxkRk5sYkdWamRHVmtSV3hsYldWdWRITW9YRzRnSUNBZ0lDQm5aWFJPYjI1RVpXeGxkR1ZrUld4bGJXVnVkSE1vWld4bGJXVnVkSE1wTEZ4dUlDQWdJQ0FnWVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0IwY25WbExGeHVJQ0FnSUNrN1hHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lHRjNZV2wwSUdWNGNHOXlkRU5oYm5aaGN5aGNiaUFnSUNBZ0lDQWdYQ0pqYkdsd1ltOWhjbVJjSWl4Y2JpQWdJQ0FnSUNBZ2MyVnNaV04wWldSRmJHVnRaVzUwY3k1c1pXNW5kR2hjYmlBZ0lDQWdJQ0FnSUNBL0lITmxiR1ZqZEdWa1JXeGxiV1Z1ZEhOY2JpQWdJQ0FnSUNBZ0lDQTZJR2RsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3lobGJHVnRaVzUwY3lrc1hHNGdJQ0FnSUNBZ0lHRndjRk4wWVhSbExGeHVJQ0FnSUNBZ0lDQmhjSEF1Wm1sc1pYTXNYRzRnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxPaUI3WEc0Z0lDQWdJQ0FnSUNBZ0xpNHVZWEJ3VTNSaGRHVXNYRzRnSUNBZ0lDQWdJQ0FnZEc5aGMzUk5aWE56WVdkbE9pQjBLRndpZEc5aGMzUXVZMjl3ZVZSdlEyeHBjR0p2WVhKa1FYTlFibWRjSWl3Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWlhod2IzSjBVMlZzWldOMGFXOXVPaUJ6Wld4bFkzUmxaRVZzWlcxbGJuUnpMbXhsYm1kMGFGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBL0lIUW9YQ0owYjJGemRDNXpaV3hsWTNScGIyNWNJaWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdPaUIwS0Z3aWRHOWhjM1F1WTJGdWRtRnpYQ0lwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdaWGh3YjNKMFEyOXNiM0pUWTJobGJXVTZJR0Z3Y0ZOMFlYUmxMbVY0Y0c5eWRGZHBkR2hFWVhKclRXOWtaVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQS9JSFFvWENKaWRYUjBiMjV6TG1SaGNtdE5iMlJsWENJcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSURvZ2RDaGNJbUoxZEhSdmJuTXViR2xuYUhSTmIyUmxYQ0lwTEZ4dUlDQWdJQ0FnSUNBZ0lIMHBMRnh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCamIyMXRhWFJVYjBocGMzUnZjbms2SUdaaGJITmxMRnh1SUNBZ0lDQWdmVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxjbkp2Y2pvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0JqYjI1emIyeGxMbVZ5Y205eUtHVnljbTl5S1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUdGd2NGTjBZWFJsT2lCN1hHNGdJQ0FnSUNBZ0lDQWdMaTR1WVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0FnSUNBZ1pYSnliM0pOWlhOellXZGxPaUJsY25KdmNpNXRaWE56WVdkbExGeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0JqYjIxdGFYUlViMGhwYzNSdmNuazZJR1poYkhObExGeHVJQ0FnSUNBZ2ZUdGNiaUFnSUNCOVhHNGdJSDBzWEc0Z0lHTnZiblJsZUhSSmRHVnRUR0ZpWld3NklGd2liR0ZpWld4ekxtTnZjSGxCYzFCdVoxd2lMRnh1SUNCclpYbFVaWE4wT2lBb1pYWmxiblFwSUQwK0lHVjJaVzUwTG1OdlpHVWdQVDA5SUVOUFJFVlRMa01nSmlZZ1pYWmxiblF1WVd4MFMyVjVJQ1ltSUdWMlpXNTBMbk5vYVdaMFMyVjVMRnh1ZlNrN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2FjdGlvbnMvYWN0aW9uQ2xpcGJvYXJkLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25EZWxldGVTZWxlY3RlZC50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vYWN0aW9ucy9hY3Rpb25EZWxldGVTZWxlY3RlZC50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkRlbGV0ZVNlbGVjdGVkXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uRGVsZXRlU2VsZWN0ZWQpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vc2NlbmUgKi8gXFxcIi4uLy4uL3NjZW5lL2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9rZXlzICovIFxcXCIuLi8uLi9rZXlzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbXBvbmVudHMvVG9vbEJ1dHRvbiAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29tcG9uZW50cy9pY29ucyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9pY29ucy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3JlZ2lzdGVyICovIFxcXCIuLi8uLi9hY3Rpb25zL3JlZ2lzdGVyLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvbXV0YXRlRWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9tdXRhdGVFbGVtZW50LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2dyb3VwcyAqLyBcXFwiLi4vLi4vZ3JvdXBzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X2xpbmVhckVsZW1lbnRFZGl0b3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L2xpbmVhckVsZW1lbnRFZGl0b3IgKi8gXFxcIi4uLy4uL2VsZW1lbnQvbGluZWFyRWxlbWVudEVkaXRvci50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC9iaW5kaW5nICovIFxcXCIuLi8uLi9lbGVtZW50L2JpbmRpbmcudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvdHlwZUNoZWNrcyAqLyBcXFwiLi4vLi4vZWxlbWVudC90eXBlQ2hlY2tzLnRzXFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgZGVsZXRlU2VsZWN0ZWRFbGVtZW50cyA9IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgcmV0dXJuIHtcXG4gICAgICAgIGVsZW1lbnRzOiBlbGVtZW50cy5tYXAoKGVsKSA9PiB7XFxuICAgICAgICAgICAgaWYgKGFwcFN0YXRlLnNlbGVjdGVkRWxlbWVudElkc1tlbC5pZF0pIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5uZXdFbGVtZW50V2l0aCkoZWwsIHsgaXNEZWxldGVkOiB0cnVlIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5pc0JvdW5kVG9Db250YWluZXIpKGVsKSAmJlxcbiAgICAgICAgICAgICAgICBhcHBTdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHNbZWwuY29udGFpbmVySWRdKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18ubmV3RWxlbWVudFdpdGgpKGVsLCB7IGlzRGVsZXRlZDogdHJ1ZSB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIGVsO1xcbiAgICAgICAgfSksXFxuICAgICAgICBhcHBTdGF0ZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhcHBTdGF0ZSksIHsgc2VsZWN0ZWRFbGVtZW50SWRzOiB7fSB9KSxcXG4gICAgfTtcXG59O1xcbmNvbnN0IGhhbmRsZUdyb3VwRWRpdGluZ1N0YXRlID0gKGFwcFN0YXRlLCBlbGVtZW50cykgPT4ge1xcbiAgICBpZiAoYXBwU3RhdGUuZWRpdGluZ0dyb3VwSWQpIHtcXG4gICAgICAgIGNvbnN0IHNpYmxpbmdFbGVtZW50cyA9ICgwLF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5nZXRFbGVtZW50c0luR3JvdXApKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKShlbGVtZW50cyksIGFwcFN0YXRlLmVkaXRpbmdHcm91cElkKTtcXG4gICAgICAgIGlmIChzaWJsaW5nRWxlbWVudHMubGVuZ3RoKSB7XFxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB7IHNlbGVjdGVkRWxlbWVudElkczogeyBbc2libGluZ0VsZW1lbnRzWzBdLmlkXTogdHJ1ZSB9IH0pO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiBhcHBTdGF0ZTtcXG59O1xcbmNvbnN0IGFjdGlvbkRlbGV0ZVNlbGVjdGVkID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImRlbGV0ZVNlbGVjdGVkRWxlbWVudHNcXFwiLFxcbiAgICBwZXJmb3JtOiAoZWxlbWVudHMsIGFwcFN0YXRlKSA9PiB7XFxuICAgICAgICBpZiAoYXBwU3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQpIHtcXG4gICAgICAgICAgICBjb25zdCB7IGVsZW1lbnRJZCwgc2VsZWN0ZWRQb2ludHNJbmRpY2VzLCBzdGFydEJpbmRpbmdFbGVtZW50LCBlbmRCaW5kaW5nRWxlbWVudCwgfSA9IGFwcFN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50O1xcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBfZWxlbWVudF9saW5lYXJFbGVtZW50RWRpdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLkxpbmVhckVsZW1lbnRFZGl0b3IuZ2V0RWxlbWVudChlbGVtZW50SWQpO1xcbiAgICAgICAgICAgIGlmICghZWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmIChcXG4gICAgICAgICAgICAvLyBjYXNlOiBubyBwb2ludCBzZWxlY3RlZCBcdTIxOTIgZGVsZXRlIHdob2xlIGVsZW1lbnRcXG4gICAgICAgICAgICBzZWxlY3RlZFBvaW50c0luZGljZXMgPT0gbnVsbCB8fFxcbiAgICAgICAgICAgICAgICAvLyBjYXNlOiBkZWxldGluZyBsYXN0IHJlbWFpbmluZyBwb2ludFxcbiAgICAgICAgICAgICAgICBlbGVtZW50LnBvaW50cy5sZW5ndGggPCAyKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRFbGVtZW50cyA9IGVsZW1lbnRzLmZpbHRlcigoZWwpID0+IGVsLmlkICE9PSBlbGVtZW50LmlkKTtcXG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dEFwcFN0YXRlID0gaGFuZGxlR3JvdXBFZGl0aW5nU3RhdGUoYXBwU3RhdGUsIG5leHRFbGVtZW50cyk7XFxuICAgICAgICAgICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50czogbmV4dEVsZW1lbnRzLFxcbiAgICAgICAgICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgbmV4dEFwcFN0YXRlKSwgeyBlZGl0aW5nTGluZWFyRWxlbWVudDogbnVsbCB9KSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXFxuICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIC8vIFdlIGNhbm5vdCBkbyB0aGlzIGluc2lkZSBgbW92ZVBvaW50YCBiZWNhdXNlIGl0IGlzIGFsc28gY2FsbGVkXFxuICAgICAgICAgICAgLy8gd2hlbiBkZWxldGluZyB0aGUgdW5jb21taXR0ZWQgcG9pbnQgKHdoaWNoIGhhc24ndCBjYXVzZWQgYW55IGJpbmRpbmcpXFxuICAgICAgICAgICAgY29uc3QgYmluZGluZyA9IHtcXG4gICAgICAgICAgICAgICAgc3RhcnRCaW5kaW5nRWxlbWVudDogKHNlbGVjdGVkUG9pbnRzSW5kaWNlcyA9PT0gbnVsbCB8fCBzZWxlY3RlZFBvaW50c0luZGljZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlbGVjdGVkUG9pbnRzSW5kaWNlcy5pbmNsdWRlcygwKSlcXG4gICAgICAgICAgICAgICAgICAgID8gbnVsbFxcbiAgICAgICAgICAgICAgICAgICAgOiBzdGFydEJpbmRpbmdFbGVtZW50LFxcbiAgICAgICAgICAgICAgICBlbmRCaW5kaW5nRWxlbWVudDogKHNlbGVjdGVkUG9pbnRzSW5kaWNlcyA9PT0gbnVsbCB8fCBzZWxlY3RlZFBvaW50c0luZGljZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlbGVjdGVkUG9pbnRzSW5kaWNlcy5pbmNsdWRlcyhlbGVtZW50LnBvaW50cy5sZW5ndGggLSAxKSlcXG4gICAgICAgICAgICAgICAgICAgID8gbnVsbFxcbiAgICAgICAgICAgICAgICAgICAgOiBlbmRCaW5kaW5nRWxlbWVudCxcXG4gICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIF9lbGVtZW50X2xpbmVhckVsZW1lbnRFZGl0b3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uTGluZWFyRWxlbWVudEVkaXRvci5kZWxldGVQb2ludHMoZWxlbWVudCwgc2VsZWN0ZWRQb2ludHNJbmRpY2VzKTtcXG4gICAgICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgICAgICBlbGVtZW50cyxcXG4gICAgICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB7IGVkaXRpbmdMaW5lYXJFbGVtZW50OiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQpLCBiaW5kaW5nKSwgeyBzZWxlY3RlZFBvaW50c0luZGljZXM6IChzZWxlY3RlZFBvaW50c0luZGljZXMgPT09IG51bGwgfHwgc2VsZWN0ZWRQb2ludHNJbmRpY2VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWxlY3RlZFBvaW50c0luZGljZXNbMF0pID4gMFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFtzZWxlY3RlZFBvaW50c0luZGljZXNbMF0gLSAxXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFswXSB9KSB9KSxcXG4gICAgICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiB0cnVlLFxcbiAgICAgICAgICAgIH07XFxuICAgICAgICB9XFxuICAgICAgICBsZXQgeyBlbGVtZW50czogbmV4dEVsZW1lbnRzLCBhcHBTdGF0ZTogbmV4dEFwcFN0YXRlIH0gPSBkZWxldGVTZWxlY3RlZEVsZW1lbnRzKGVsZW1lbnRzLCBhcHBTdGF0ZSk7XFxuICAgICAgICAoMCxfZWxlbWVudF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLmZpeEJpbmRpbmdzQWZ0ZXJEZWxldGlvbikobmV4dEVsZW1lbnRzLCBlbGVtZW50cy5maWx0ZXIoKHsgaWQgfSkgPT4gYXBwU3RhdGUuc2VsZWN0ZWRFbGVtZW50SWRzW2lkXSkpO1xcbiAgICAgICAgbmV4dEFwcFN0YXRlID0gaGFuZGxlR3JvdXBFZGl0aW5nU3RhdGUobmV4dEFwcFN0YXRlLCBuZXh0RWxlbWVudHMpO1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBlbGVtZW50czogbmV4dEVsZW1lbnRzLFxcbiAgICAgICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG5leHRBcHBTdGF0ZSksIHsgZWxlbWVudFR5cGU6IFxcXCJzZWxlY3Rpb25cXFwiLCBtdWx0aUVsZW1lbnQ6IG51bGwgfSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5pc1NvbWVFbGVtZW50U2VsZWN0ZWQpKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKShlbGVtZW50cyksIGFwcFN0YXRlKSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIGNvbnRleHRJdGVtTGFiZWw6IFxcXCJsYWJlbHMuZGVsZXRlXFxcIixcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiBldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uS0VZUy5CQUNLU1BBQ0UgfHwgZXZlbnQua2V5ID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLktFWVMuREVMRVRFLFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgZWxlbWVudHMsIGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLlRvb2xCdXR0b24sIHsgdHlwZTogXFxcImJ1dHRvblxcXCIsIGljb246IF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udHJhc2gsIHRpdGxlOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnQpKFxcXCJsYWJlbHMuZGVsZXRlXFxcIiksIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy50KShcXFwibGFiZWxzLmRlbGV0ZVxcXCIpLCBvbkNsaWNrOiAoKSA9PiB1cGRhdGVEYXRhKG51bGwpLCB2aXNpYmxlOiAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5pc1NvbWVFbGVtZW50U2VsZWN0ZWQpKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKShlbGVtZW50cyksIGFwcFN0YXRlKSB9LCB2b2lkIDApKSxcXG59KTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dllXTjBhVzl1Y3k5aFkzUnBiMjVFWld4bGRHVlRaV3hsWTNSbFpDNTBjM2d1YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPMEZCUVdsRU8wRkJRMnhDTzBGQlEzVkNPMEZCUTFZN1FVRkRhRUk3UVVGRFZUdEJRVU5oTzBGQlIwODdRVUZEV0R0QlFVTnpRanRCUVVOUU8wRkJRMGc3UVVGRk0wUXNUVUZCVFN4elFrRkJjMElzUjBGQlJ5eERRVU0zUWl4UlFVRnpReXhGUVVOMFF5eFJRVUZyUWl4RlFVTnNRaXhGUVVGRk8wbEJRMFlzVDBGQlR6dFJRVU5NTEZGQlFWRXNSVUZCUlN4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVTdXVUZETlVJc1NVRkJTU3hSUVVGUkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTzJkQ1FVTjBReXhQUVVGUExITkZRVUZqTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1UwRkJVeXhGUVVGRkxFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTTdZVUZEYUVRN1dVRkRSQ3hKUVVORkxIZEZRVUZyUWl4RFFVRkRMRVZCUVVVc1EwRkJRenRuUWtGRGRFSXNVVUZCVVN4RFFVRkRMR3RDUVVGclFpeERRVUZETEVWQlFVVXNRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkRNME03WjBKQlEwRXNUMEZCVHl4elJVRkJZeXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEZOQlFWTXNSVUZCUlN4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRE8yRkJRMmhFTzFsQlEwUXNUMEZCVHl4RlFVRkZMRU5CUVVNN1VVRkRXaXhEUVVGRExFTkJRVU03VVVGRFJpeFJRVUZSTEd0RFFVTklMRkZCUVZFc1MwRkRXQ3hyUWtGQmEwSXNSVUZCUlN4RlFVRkZMRWRCUTNaQ08wdEJRMFlzUTBGQlF6dEJRVU5LTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc2RVSkJRWFZDTEVkQlFVY3NRMEZET1VJc1VVRkJhMElzUlVGRGJFSXNVVUZCYzBNc1JVRkROVUlzUlVGQlJUdEpRVU5hTEVsQlFVa3NVVUZCVVN4RFFVRkRMR05CUVdNc1JVRkJSVHRSUVVNelFpeE5RVUZOTEdWQlFXVXNSMEZCUnl3eVJFRkJhMElzUTBGRGVFTXNLMFJCUVhGQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVWQlF5OUNMRkZCUVZFc1EwRkJReXhqUVVGbExFTkJRM3BDTEVOQlFVTTdVVUZEUml4SlFVRkpMR1ZCUVdVc1EwRkJReXhOUVVGTkxFVkJRVVU3V1VGRE1VSXNkVU5CUTBzc1VVRkJVU3hMUVVOWUxHdENRVUZyUWl4RlFVRkZMRVZCUVVVc1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1NVRkJTU3hGUVVGRkxFbEJRM0pFTzFOQlEwZzdTMEZEUmp0SlFVTkVMRTlCUVU4c1VVRkJVU3hEUVVGRE8wRkJRMnhDTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NiVVJCUVZFc1EwRkJRenRKUVVNelF5eEpRVUZKTEVWQlFVVXNkMEpCUVhkQ08wbEJRemxDTEU5QlFVOHNSVUZCUlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVVzUlVGQlJUdFJRVU01UWl4SlFVRkpMRkZCUVZFc1EwRkJReXh2UWtGQmIwSXNSVUZCUlR0WlFVTnFReXhOUVVGTkxFVkJRMG9zVTBGQlV5eEZRVU5VTEhGQ1FVRnhRaXhGUVVOeVFpeHRRa0ZCYlVJc1JVRkRia0lzYVVKQlFXbENMRWRCUTJ4Q0xFZEJRVWNzVVVGQlVTeERRVUZETEc5Q1FVRnZRaXhEUVVGRE8xbEJRMnhETEUxQlFVMHNUMEZCVHl4SFFVRkhMSGxHUVVFNFFpeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMWxCUXpGRUxFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVTdaMEpCUTFvc1QwRkJUeXhMUVVGTExFTkJRVU03WVVGRFpEdFpRVU5FTzFsQlEwVXNhVVJCUVdsRU8xbEJRMnBFTEhGQ1FVRnhRaXhKUVVGSkxFbEJRVWs3WjBKQlF6ZENMSE5EUVVGelF6dG5Ra0ZEZEVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVTjZRanRuUWtGRFFTeE5RVUZOTEZsQlFWa3NSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hMUVVGTExFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0blFrRkRia1VzVFVGQlRTeFpRVUZaTEVkQlFVY3NkVUpCUVhWQ0xFTkJRVU1zVVVGQlVTeEZRVUZGTEZsQlFWa3NRMEZCUXl4RFFVRkRPMmRDUVVWeVJTeFBRVUZQTzI5Q1FVTk1MRkZCUVZFc1JVRkJSU3haUVVGWk8yOUNRVU4wUWl4UlFVRlJMR3REUVVOSUxGbEJRVmtzUzBGRFppeHZRa0ZCYjBJc1JVRkJSU3hKUVVGSkxFZEJRek5DTzI5Q1FVTkVMR1ZCUVdVc1JVRkJSU3hMUVVGTE8ybENRVU4yUWl4RFFVRkRPMkZCUTBnN1dVRkZSQ3hwUlVGQmFVVTdXVUZEYWtVc2QwVkJRWGRGTzFsQlEzaEZMRTFCUVUwc1QwRkJUeXhIUVVGSE8yZENRVU5rTEcxQ1FVRnRRaXhGUVVGRkxITkNRVUZ4UWl4aFFVRnlRaXh4UWtGQmNVSXNkVUpCUVhKQ0xIRkNRVUZ4UWl4RFFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlEzSkVMRU5CUVVNc1EwRkJReXhKUVVGSk8yOUNRVU5PTEVOQlFVTXNRMEZCUXl4dFFrRkJiVUk3WjBKQlEzWkNMR2xDUVVGcFFpeEZRVUZGTEhOQ1FVRnhRaXhoUVVGeVFpeHhRa0ZCY1VJc2RVSkJRWEpDTEhGQ1FVRnhRaXhEUVVGRkxGRkJRVkVzUTBGRGFFUXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVU14UWp0dlFrRkRReXhEUVVGRExFTkJRVU1zU1VGQlNUdHZRa0ZEVGl4RFFVRkRMRU5CUVVNc2FVSkJRV2xDTzJGQlEzUkNMRU5CUVVNN1dVRkZSaXd5UmtGQlowTXNRMEZCUXl4UFFVRlBMRVZCUVVVc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0WlFVVnFSU3hQUVVGUE8yZENRVU5NTEZGQlFWRTdaMEpCUTFJc1VVRkJVU3hyUTBGRFNDeFJRVUZSTEV0QlExZ3NiMEpCUVc5Q0xHZEVRVU5tTEZGQlFWRXNRMEZCUXl4dlFrRkJiMElzUjBGRE4wSXNUMEZCVHl4TFFVTldMSEZDUVVGeFFpeEZRVU51UWl4elFrRkJjVUlzWVVGQmNrSXNjVUpCUVhGQ0xIVkNRVUZ5UWl4eFFrRkJjVUlzUTBGQlJ5eERRVUZETEVOQlFVTXNTVUZCUnl4RFFVRkRPelJDUVVNMVFpeERRVUZETEVOQlFVTXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN05FSkJRMmhETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVWYU8yZENRVU5FTEdWQlFXVXNSVUZCUlN4SlFVRkpPMkZCUTNSQ0xFTkJRVU03VTBGRFNEdFJRVU5FTEVsQlFVa3NSVUZCUlN4UlFVRlJMRVZCUVVVc1dVRkJXU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFpRVUZaTEVWQlFVVXNSMEZEY0VRc2MwSkJRWE5DTEVOQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRemRETERKRlFVRjNRaXhEUVVOMFFpeFpRVUZaTEVWQlExb3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVNM1JDeERRVUZETzFGQlJVWXNXVUZCV1N4SFFVRkhMSFZDUVVGMVFpeERRVUZETEZsQlFWa3NSVUZCUlN4WlFVRlpMRU5CUVVNc1EwRkJRenRSUVVWdVJTeFBRVUZQTzFsQlEwd3NVVUZCVVN4RlFVRkZMRmxCUVZrN1dVRkRkRUlzVVVGQlVTeHJRMEZEU0N4WlFVRlpMRXRCUTJZc1YwRkJWeXhGUVVGRkxGZEJRVmNzUlVGRGVFSXNXVUZCV1N4RlFVRkZMRWxCUVVrc1IwRkRia0k3V1VGRFJDeGxRVUZsTEVWQlFVVXNOa1JCUVhGQ0xFTkJRM0JETEN0RVFVRnhRaXhEUVVGRExGRkJRVkVzUTBGQlF5eEZRVU12UWl4UlFVRlJMRU5CUTFRN1UwRkRSaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVU5FTEdkQ1FVRm5RaXhGUVVGRkxHVkJRV1U3U1VGRGFrTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4TFFVRkxMR2xFUVVGakxFbEJRVWtzUzBGQlN5eERRVUZETEVkQlFVY3NTMEZCU3l3NFEwRkJWenRKUVVNM1JTeGpRVUZqTEVWQlFVVXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVVzVlVGQlZTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUTNSRUxIVkVRVUZETERoRVFVRlZMRWxCUTFRc1NVRkJTU3hGUVVGRExGRkJRVkVzUlVGRFlpeEpRVUZKTEVWQlFVVXNiMFJCUVVzc1JVRkRXQ3hMUVVGTExFVkJRVVVzZDBOQlFVTXNRMEZCUXl4bFFVRmxMRU5CUVVNc1owSkJRMklzZDBOQlFVTXNRMEZCUXl4bFFVRmxMRU5CUVVNc1JVRkRPVUlzVDBGQlR5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGREwwSXNUMEZCVHl4RlFVRkZMRFpFUVVGeFFpeERRVUZETEN0RVFVRnhRaXhEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEZGQlFWRXNRMEZCUXl4WFFVTjZSU3hEUVVOSU8wTkJRMFlzUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyRmpkR2x2Ym5NdllXTjBhVzl1UkdWc1pYUmxVMlZzWldOMFpXUXVkSE40UHpVek4yVWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnYVhOVGIyMWxSV3hsYldWdWRGTmxiR1ZqZEdWa0lIMGdabkp2YlNCY0lpNHVMM05qWlc1bFhDSTdYRzVwYlhCdmNuUWdleUJMUlZsVElIMGdabkp2YlNCY0lpNHVMMnRsZVhOY0lqdGNibWx0Y0c5eWRDQjdJRlJ2YjJ4Q2RYUjBiMjRnZlNCbWNtOXRJRndpTGk0dlkyOXRjRzl1Wlc1MGN5OVViMjlzUW5WMGRHOXVYQ0k3WEc1cGJYQnZjblFnZXlCMGNtRnphQ0I5SUdaeWIyMGdYQ0l1TGk5amIyMXdiMjVsYm5SekwybGpiMjV6WENJN1hHNXBiWEJ2Y25RZ2V5QjBJSDBnWm5KdmJTQmNJaTR1TDJreE9HNWNJanRjYm1sdGNHOXlkQ0I3SUhKbFoybHpkR1Z5SUgwZ1puSnZiU0JjSWk0dmNtVm5hWE4wWlhKY0lqdGNibWx0Y0c5eWRDQjdJR2RsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3lCOUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MFhDSTdYRzVwYlhCdmNuUWdleUJGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ0I5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwTDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCQmNIQlRkR0YwWlNCOUlHWnliMjBnWENJdUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dibVYzUld4bGJXVnVkRmRwZEdnZ2ZTQm1jbTl0SUZ3aUxpNHZaV3hsYldWdWRDOXRkWFJoZEdWRmJHVnRaVzUwWENJN1hHNXBiWEJ2Y25RZ2V5Qm5aWFJGYkdWdFpXNTBjMGx1UjNKdmRYQWdmU0JtY205dElGd2lMaTR2WjNKdmRYQnpYQ0k3WEc1cGJYQnZjblFnZXlCTWFXNWxZWEpGYkdWdFpXNTBSV1JwZEc5eUlIMGdabkp2YlNCY0lpNHVMMlZzWlcxbGJuUXZiR2x1WldGeVJXeGxiV1Z1ZEVWa2FYUnZjbHdpTzF4dWFXMXdiM0owSUhzZ1ptbDRRbWx1WkdsdVozTkJablJsY2tSbGJHVjBhVzl1SUgwZ1puSnZiU0JjSWk0dUwyVnNaVzFsYm5RdlltbHVaR2x1WjF3aU8xeHVhVzF3YjNKMElIc2dhWE5DYjNWdVpGUnZRMjl1ZEdGcGJtVnlJSDBnWm5KdmJTQmNJaTR1TDJWc1pXMWxiblF2ZEhsd1pVTm9aV05yYzF3aU8xeHVYRzVqYjI1emRDQmtaV3hsZEdWVFpXeGxZM1JsWkVWc1pXMWxiblJ6SUQwZ0tGeHVJQ0JsYkdWdFpXNTBjem9nY21WaFpHOXViSGtnUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFN4Y2JpQWdZWEJ3VTNSaGRHVTZJRUZ3Y0ZOMFlYUmxMRnh1S1NBOVBpQjdYRzRnSUhKbGRIVnliaUI3WEc0Z0lDQWdaV3hsYldWdWRITTZJR1ZzWlcxbGJuUnpMbTFoY0Nnb1pXd3BJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaGhjSEJUZEdGMFpTNXpaV3hsWTNSbFpFVnNaVzFsYm5SSlpITmJaV3d1YVdSZEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnVaWGRGYkdWdFpXNTBWMmwwYUNobGJDd2dleUJwYzBSbGJHVjBaV1E2SUhSeWRXVWdmU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JwWmlBb1hHNGdJQ0FnSUNBZ0lHbHpRbTkxYm1SVWIwTnZiblJoYVc1bGNpaGxiQ2tnSmlaY2JpQWdJQ0FnSUNBZ1lYQndVM1JoZEdVdWMyVnNaV04wWldSRmJHVnRaVzUwU1dSelcyVnNMbU52Ym5SaGFXNWxja2xrWFZ4dUlDQWdJQ0FnS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdVpYZEZiR1Z0Wlc1MFYybDBhQ2hsYkN3Z2V5QnBjMFJsYkdWMFpXUTZJSFJ5ZFdVZ2ZTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z1pXdzdYRzRnSUNBZ2ZTa3NYRzRnSUNBZ1lYQndVM1JoZEdVNklIdGNiaUFnSUNBZ0lDNHVMbUZ3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdjMlZzWldOMFpXUkZiR1Z0Wlc1MFNXUnpPaUI3ZlN4Y2JpQWdJQ0I5TEZ4dUlDQjlPMXh1ZlR0Y2JseHVZMjl1YzNRZ2FHRnVaR3hsUjNKdmRYQkZaR2wwYVc1blUzUmhkR1VnUFNBb1hHNGdJR0Z3Y0ZOMFlYUmxPaUJCY0hCVGRHRjBaU3hjYmlBZ1pXeGxiV1Z1ZEhNNklISmxZV1J2Ym14NUlFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMHNYRzRwT2lCQmNIQlRkR0YwWlNBOVBpQjdYRzRnSUdsbUlDaGhjSEJUZEdGMFpTNWxaR2wwYVc1blIzSnZkWEJKWkNrZ2UxeHVJQ0FnSUdOdmJuTjBJSE5wWW14cGJtZEZiR1Z0Wlc1MGN5QTlJR2RsZEVWc1pXMWxiblJ6U1c1SGNtOTFjQ2hjYmlBZ0lDQWdJR2RsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3lobGJHVnRaVzUwY3lrc1hHNGdJQ0FnSUNCaGNIQlRkR0YwWlM1bFpHbDBhVzVuUjNKdmRYQkpaQ0VzWEc0Z0lDQWdLVHRjYmlBZ0lDQnBaaUFvYzJsaWJHbHVaMFZzWlcxbGJuUnpMbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdMaTR1WVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0FnSUhObGJHVmpkR1ZrUld4bGJXVnVkRWxrY3pvZ2V5QmJjMmxpYkdsdVowVnNaVzFsYm5Seld6QmRMbWxrWFRvZ2RISjFaU0I5TEZ4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0I5WEc0Z0lIMWNiaUFnY21WMGRYSnVJR0Z3Y0ZOMFlYUmxPMXh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdGamRHbHZia1JsYkdWMFpWTmxiR1ZqZEdWa0lEMGdjbVZuYVhOMFpYSW9lMXh1SUNCdVlXMWxPaUJjSW1SbGJHVjBaVk5sYkdWamRHVmtSV3hsYldWdWRITmNJaXhjYmlBZ2NHVnlabTl5YlRvZ0tHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTa2dQVDRnZTF4dUlDQWdJR2xtSUNoaGNIQlRkR0YwWlM1bFpHbDBhVzVuVEdsdVpXRnlSV3hsYldWdWRDa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2UxeHVJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MFNXUXNYRzRnSUNBZ0lDQWdJSE5sYkdWamRHVmtVRzlwYm5SelNXNWthV05sY3l4Y2JpQWdJQ0FnSUNBZ2MzUmhjblJDYVc1a2FXNW5SV3hsYldWdWRDeGNiaUFnSUNBZ0lDQWdaVzVrUW1sdVpHbHVaMFZzWlcxbGJuUXNYRzRnSUNBZ0lDQjlJRDBnWVhCd1UzUmhkR1V1WldScGRHbHVaMHhwYm1WaGNrVnNaVzFsYm5RN1hHNGdJQ0FnSUNCamIyNXpkQ0JsYkdWdFpXNTBJRDBnVEdsdVpXRnlSV3hsYldWdWRFVmthWFJ2Y2k1blpYUkZiR1Z0Wlc1MEtHVnNaVzFsYm5SSlpDazdYRzRnSUNBZ0lDQnBaaUFvSVdWc1pXMWxiblFwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdhV1lnS0Z4dUlDQWdJQ0FnSUNBdkx5QmpZWE5sT2lCdWJ5QndiMmx1ZENCelpXeGxZM1JsWkNEaWhwSWdaR1ZzWlhSbElIZG9iMnhsSUdWc1pXMWxiblJjYmlBZ0lDQWdJQ0FnYzJWc1pXTjBaV1JRYjJsdWRITkpibVJwWTJWeklEMDlJRzUxYkd3Z2ZIeGNiaUFnSUNBZ0lDQWdMeThnWTJGelpUb2daR1ZzWlhScGJtY2diR0Z6ZENCeVpXMWhhVzVwYm1jZ2NHOXBiblJjYmlBZ0lDQWdJQ0FnWld4bGJXVnVkQzV3YjJsdWRITXViR1Z1WjNSb0lEd2dNbHh1SUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzVsZUhSRmJHVnRaVzUwY3lBOUlHVnNaVzFsYm5SekxtWnBiSFJsY2lnb1pXd3BJRDArSUdWc0xtbGtJQ0U5UFNCbGJHVnRaVzUwTG1sa0tUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JtVjRkRUZ3Y0ZOMFlYUmxJRDBnYUdGdVpHeGxSM0p2ZFhCRlpHbDBhVzVuVTNSaGRHVW9ZWEJ3VTNSaGRHVXNJRzVsZUhSRmJHVnRaVzUwY3lrN1hHNWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBjem9nYm1WNGRFVnNaVzFsYm5SekxGeHVJQ0FnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxPaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXVMaTV1WlhoMFFYQndVM1JoZEdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsWkdsMGFXNW5UR2x1WldGeVJXeGxiV1Z1ZERvZ2JuVnNiQ3hjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJR052YlcxcGRGUnZTR2x6ZEc5eWVUb2dabUZzYzJVc1hHNGdJQ0FnSUNBZ0lIMDdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQzh2SUZkbElHTmhibTV2ZENCa2J5QjBhR2x6SUdsdWMybGtaU0JnYlc5MlpWQnZhVzUwWUNCaVpXTmhkWE5sSUdsMElHbHpJR0ZzYzI4Z1kyRnNiR1ZrWEc0Z0lDQWdJQ0F2THlCM2FHVnVJR1JsYkdWMGFXNW5JSFJvWlNCMWJtTnZiVzFwZEhSbFpDQndiMmx1ZENBb2QyaHBZMmdnYUdGemJpZDBJR05oZFhObFpDQmhibmtnWW1sdVpHbHVaeWxjYmlBZ0lDQWdJR052Ym5OMElHSnBibVJwYm1jZ1BTQjdYRzRnSUNBZ0lDQWdJSE4wWVhKMFFtbHVaR2x1WjBWc1pXMWxiblE2SUhObGJHVmpkR1ZrVUc5cGJuUnpTVzVrYVdObGN6OHVhVzVqYkhWa1pYTW9NQ2xjYmlBZ0lDQWdJQ0FnSUNBL0lHNTFiR3hjYmlBZ0lDQWdJQ0FnSUNBNklITjBZWEowUW1sdVpHbHVaMFZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJR1Z1WkVKcGJtUnBibWRGYkdWdFpXNTBPaUJ6Wld4bFkzUmxaRkJ2YVc1MGMwbHVaR2xqWlhNL0xtbHVZMngxWkdWektGeHVJQ0FnSUNBZ0lDQWdJR1ZzWlcxbGJuUXVjRzlwYm5SekxteGxibWQwYUNBdElERXNYRzRnSUNBZ0lDQWdJQ2xjYmlBZ0lDQWdJQ0FnSUNBL0lHNTFiR3hjYmlBZ0lDQWdJQ0FnSUNBNklHVnVaRUpwYm1ScGJtZEZiR1Z0Wlc1MExGeHVJQ0FnSUNBZ2ZUdGNibHh1SUNBZ0lDQWdUR2x1WldGeVJXeGxiV1Z1ZEVWa2FYUnZjaTVrWld4bGRHVlFiMmx1ZEhNb1pXeGxiV1Z1ZEN3Z2MyVnNaV04wWldSUWIybHVkSE5KYm1ScFkyVnpLVHRjYmx4dUlDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnWld4bGJXVnVkSE1zWEc0Z0lDQWdJQ0FnSUdGd2NGTjBZWFJsT2lCN1hHNGdJQ0FnSUNBZ0lDQWdMaTR1WVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0FnSUNBZ1pXUnBkR2x1WjB4cGJtVmhja1ZzWlcxbGJuUTZJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDNHVMbUZ3Y0ZOMFlYUmxMbVZrYVhScGJtZE1hVzVsWVhKRmJHVnRaVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdMaTR1WW1sdVpHbHVaeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lITmxiR1ZqZEdWa1VHOXBiblJ6U1c1a2FXTmxjenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjMlZzWldOMFpXUlFiMmx1ZEhOSmJtUnBZMlZ6UHk1Yk1GMGdQaUF3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUHlCYmMyVnNaV04wWldSUWIybHVkSE5KYm1ScFkyVnpXekJkSUMwZ01WMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJRnN3WFN4Y2JpQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCamIyMXRhWFJVYjBocGMzUnZjbms2SUhSeWRXVXNYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMWNiaUFnSUNCc1pYUWdleUJsYkdWdFpXNTBjem9nYm1WNGRFVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpUb2dibVY0ZEVGd2NGTjBZWFJsSUgwZ1BWeHVJQ0FnSUNBZ1pHVnNaWFJsVTJWc1pXTjBaV1JGYkdWdFpXNTBjeWhsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VwTzF4dUlDQWdJR1pwZUVKcGJtUnBibWR6UVdaMFpYSkVaV3hsZEdsdmJpaGNiaUFnSUNBZ0lHNWxlSFJGYkdWdFpXNTBjeXhjYmlBZ0lDQWdJR1ZzWlcxbGJuUnpMbVpwYkhSbGNpZ29leUJwWkNCOUtTQTlQaUJoY0hCVGRHRjBaUzV6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE5iYVdSZEtTeGNiaUFnSUNBcE8xeHVYRzRnSUNBZ2JtVjRkRUZ3Y0ZOMFlYUmxJRDBnYUdGdVpHeGxSM0p2ZFhCRlpHbDBhVzVuVTNSaGRHVW9ibVY0ZEVGd2NGTjBZWFJsTENCdVpYaDBSV3hsYldWdWRITXBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lHVnNaVzFsYm5Sek9pQnVaWGgwUld4bGJXVnVkSE1zWEc0Z0lDQWdJQ0JoY0hCVGRHRjBaVG9nZTF4dUlDQWdJQ0FnSUNBdUxpNXVaWGgwUVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0FnSUdWc1pXMWxiblJVZVhCbE9pQmNJbk5sYkdWamRHbHZibHdpTEZ4dUlDQWdJQ0FnSUNCdGRXeDBhVVZzWlcxbGJuUTZJRzUxYkd3c1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ1kyOXRiV2wwVkc5SWFYTjBiM0o1T2lCcGMxTnZiV1ZGYkdWdFpXNTBVMlZzWldOMFpXUW9YRzRnSUNBZ0lDQWdJR2RsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3lobGJHVnRaVzUwY3lrc1hHNGdJQ0FnSUNBZ0lHRndjRk4wWVhSbExGeHVJQ0FnSUNBZ0tTeGNiaUFnSUNCOU8xeHVJQ0I5TEZ4dUlDQmpiMjUwWlhoMFNYUmxiVXhoWW1Wc09pQmNJbXhoWW1Wc2N5NWtaV3hsZEdWY0lpeGNiaUFnYTJWNVZHVnpkRG9nS0dWMlpXNTBLU0E5UGlCbGRtVnVkQzVyWlhrZ1BUMDlJRXRGV1ZNdVFrRkRTMU5RUVVORklIeDhJR1YyWlc1MExtdGxlU0E5UFQwZ1MwVlpVeTVFUlV4RlZFVXNYRzRnSUZCaGJtVnNRMjl0Y0c5dVpXNTBPaUFvZXlCbGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVc0lIVndaR0YwWlVSaGRHRWdmU2tnUFQ0Z0tGeHVJQ0FnSUR4VWIyOXNRblYwZEc5dVhHNGdJQ0FnSUNCMGVYQmxQVndpWW5WMGRHOXVYQ0pjYmlBZ0lDQWdJR2xqYjI0OWUzUnlZWE5vZlZ4dUlDQWdJQ0FnZEdsMGJHVTllM1FvWENKc1lXSmxiSE11WkdWc1pYUmxYQ0lwZlZ4dUlDQWdJQ0FnWVhKcFlTMXNZV0psYkQxN2RDaGNJbXhoWW1Wc2N5NWtaV3hsZEdWY0lpbDlYRzRnSUNBZ0lDQnZia05zYVdOclBYc29LU0E5UGlCMWNHUmhkR1ZFWVhSaEtHNTFiR3dwZlZ4dUlDQWdJQ0FnZG1semFXSnNaVDE3YVhOVGIyMWxSV3hsYldWdWRGTmxiR1ZqZEdWa0tHZGxkRTV2YmtSbGJHVjBaV1JGYkdWdFpXNTBjeWhsYkdWdFpXNTBjeWtzSUdGd2NGTjBZWFJsS1gxY2JpQWdJQ0F2UGx4dUlDQXBMRnh1ZlNrN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2FjdGlvbnMvYWN0aW9uRGVsZXRlU2VsZWN0ZWQudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9hY3Rpb25zL2FjdGlvbkRpc3RyaWJ1dGUudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vYWN0aW9ucy9hY3Rpb25EaXN0cmlidXRlLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkaXN0cmlidXRlSG9yaXpvbnRhbGx5XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZGlzdHJpYnV0ZUhvcml6b250YWxseSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGlzdHJpYnV0ZVZlcnRpY2FsbHlcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBkaXN0cmlidXRlVmVydGljYWxseSlcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbXBvbmVudHMvaWNvbnMgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvaWNvbnMudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbXBvbmVudHMvVG9vbEJ1dHRvbiAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZGlzaXRydWJ0ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZGlzaXRydWJ0ZSAqLyBcXFwiLi4vLi4vZGlzaXRydWJ0ZS50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4va2V5cyAqLyBcXFwiLi4vLi4va2V5cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lICovIFxcXCIuLi8uLi9zY2VuZS9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vcmVnaXN0ZXIgKi8gXFxcIi4uLy4uL2FjdGlvbnMvcmVnaXN0ZXIudHNcXFwiKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBlbmFibGVBY3Rpb25Hcm91cCA9IChlbGVtZW50cywgYXBwU3RhdGUpID0+ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmdldFNlbGVjdGVkRWxlbWVudHMpKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKShlbGVtZW50cyksIGFwcFN0YXRlKS5sZW5ndGggPiAxO1xcbmNvbnN0IGRpc3RyaWJ1dGVTZWxlY3RlZEVsZW1lbnRzID0gKGVsZW1lbnRzLCBhcHBTdGF0ZSwgZGlzdHJpYnV0aW9uKSA9PiB7XFxuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5nZXRTZWxlY3RlZEVsZW1lbnRzKSgoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmdldE5vbkRlbGV0ZWRFbGVtZW50cykoZWxlbWVudHMpLCBhcHBTdGF0ZSk7XFxuICAgIGNvbnN0IHVwZGF0ZWRFbGVtZW50cyA9ICgwLF9kaXNpdHJ1YnRlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZGlzdHJpYnV0ZUVsZW1lbnRzKShzZWxlY3RlZEVsZW1lbnRzLCBkaXN0cmlidXRpb24pO1xcbiAgICBjb25zdCB1cGRhdGVkRWxlbWVudHNNYXAgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5hcnJheVRvTWFwKSh1cGRhdGVkRWxlbWVudHMpO1xcbiAgICByZXR1cm4gZWxlbWVudHMubWFwKChlbGVtZW50KSA9PiB1cGRhdGVkRWxlbWVudHNNYXAuZ2V0KGVsZW1lbnQuaWQpIHx8IGVsZW1lbnQpO1xcbn07XFxuY29uc3QgZGlzdHJpYnV0ZUhvcml6b250YWxseSA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJkaXN0cmlidXRlSG9yaXpvbnRhbGx5XFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSkgPT4ge1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBhcHBTdGF0ZSxcXG4gICAgICAgICAgICBlbGVtZW50czogZGlzdHJpYnV0ZVNlbGVjdGVkRWxlbWVudHMoZWxlbWVudHMsIGFwcFN0YXRlLCB7XFxuICAgICAgICAgICAgICAgIHNwYWNlOiBcXFwiYmV0d2VlblxcXCIsXFxuICAgICAgICAgICAgICAgIGF4aXM6IFxcXCJ4XFxcIixcXG4gICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBrZXlUZXN0OiAoZXZlbnQpID0+IGV2ZW50LmFsdEtleSAmJiBldmVudC5jb2RlID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLkNPREVTLkgsXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyBlbGVtZW50cywgYXBwU3RhdGUsIHVwZGF0ZURhdGEgfSkgPT4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uVG9vbEJ1dHRvbiwgeyBoaWRkZW46ICFlbmFibGVBY3Rpb25Hcm91cChlbGVtZW50cywgYXBwU3RhdGUpLCB0eXBlOiBcXFwiYnV0dG9uXFxcIiwgaWNvbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRGlzdHJpYnV0ZUhvcml6b250YWxseUljb24sIHsgdGhlbWU6IGFwcFN0YXRlLnRoZW1lIH0sIHZvaWQgMCksIG9uQ2xpY2s6ICgpID0+IHVwZGF0ZURhdGEobnVsbCksIHRpdGxlOiBgJHsoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnQpKFxcXCJsYWJlbHMuZGlzdHJpYnV0ZUhvcml6b250YWxseVxcXCIpfSBcdTIwMTQgJHsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkFsdCtIXFxcIil9YCwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnQpKFxcXCJsYWJlbHMuZGlzdHJpYnV0ZUhvcml6b250YWxseVxcXCIpLCB2aXNpYmxlOiAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5pc1NvbWVFbGVtZW50U2VsZWN0ZWQpKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKShlbGVtZW50cyksIGFwcFN0YXRlKSB9LCB2b2lkIDApKSxcXG59KTtcXG5jb25zdCBkaXN0cmlidXRlVmVydGljYWxseSA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJkaXN0cmlidXRlVmVydGljYWxseVxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgYXBwU3RhdGUsXFxuICAgICAgICAgICAgZWxlbWVudHM6IGRpc3RyaWJ1dGVTZWxlY3RlZEVsZW1lbnRzKGVsZW1lbnRzLCBhcHBTdGF0ZSwge1xcbiAgICAgICAgICAgICAgICBzcGFjZTogXFxcImJldHdlZW5cXFwiLFxcbiAgICAgICAgICAgICAgICBheGlzOiBcXFwieVxcXCIsXFxuICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiB0cnVlLFxcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiBldmVudC5hbHRLZXkgJiYgZXZlbnQuY29kZSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5DT0RFUy5WLFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgZWxlbWVudHMsIGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlRvb2xCdXR0b24sIHsgaGlkZGVuOiAhZW5hYmxlQWN0aW9uR3JvdXAoZWxlbWVudHMsIGFwcFN0YXRlKSwgdHlwZTogXFxcImJ1dHRvblxcXCIsIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkRpc3RyaWJ1dGVWZXJ0aWNhbGx5SWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSwgb25DbGljazogKCkgPT4gdXBkYXRlRGF0YShudWxsKSwgdGl0bGU6IGAkeygwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18udCkoXFxcImxhYmVscy5kaXN0cmlidXRlVmVydGljYWxseVxcXCIpfSBcdTIwMTQgJHsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkFsdCtWXFxcIil9YCwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnQpKFxcXCJsYWJlbHMuZGlzdHJpYnV0ZVZlcnRpY2FsbHlcXFwiKSwgdmlzaWJsZTogKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uaXNTb21lRWxlbWVudFNlbGVjdGVkKSgoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmdldE5vbkRlbGV0ZWRFbGVtZW50cykoZWxlbWVudHMpLCBhcHBTdGF0ZSkgfSwgdm9pZCAwKSksXFxufSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZV04wYVc5dWN5OWhZM1JwYjI1RWFYTjBjbWxpZFhSbExuUnplQzVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3T3pzN08wRkJSelpDTzBGQlEzbENPMEZCUTFjN1FVRkRaRHRCUVVWMlFqdEJRVU5KTzBGQlEzTkRPMEZCUldoQ08wRkJRMmhDTzBGQlJYUkRMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NRMEZEZUVJc1VVRkJjME1zUlVGRGRFTXNVVUZCYTBJc1JVRkRiRUlzUlVGQlJTeERRVUZETERKRVFVRnRRaXhEUVVGRExDdEVRVUZ4UWl4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkZMMFVzVFVGQlRTd3dRa0ZCTUVJc1IwRkJSeXhEUVVOcVF5eFJRVUZ6UXl4RlFVTjBReXhSUVVFMFFpeEZRVU0xUWl4WlFVRXdRaXhGUVVNeFFpeEZRVUZGTzBsQlEwWXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5d3lSRUZCYlVJc1EwRkRNVU1zSzBSQlFYRkNMRU5CUVVNc1VVRkJVU3hEUVVGRExFVkJReTlDTEZGQlFWRXNRMEZEVkN4RFFVRkRPMGxCUlVZc1RVRkJUU3hsUVVGbExFZEJRVWNzSzBSQlFXdENMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNXVUZCV1N4RFFVRkRMRU5CUVVNN1NVRkZNMFVzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhyUkVGQlZTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRPMGxCUlhaRUxFOUJRVThzVVVGQlVTeERRVUZETEVkQlFVY3NRMEZEYWtJc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1QwRkJUeXhEUVVNelJDeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3h6UWtGQmMwSXNSMEZCUnl4dFJFRkJVU3hEUVVGRE8wbEJRemRETEVsQlFVa3NSVUZCUlN4M1FrRkJkMEk3U1VGRE9VSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEZRVUZGTzFGQlF6bENMRTlCUVU4N1dVRkRUQ3hSUVVGUk8xbEJRMUlzVVVGQlVTeEZRVUZGTERCQ1FVRXdRaXhEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVTdaMEpCUTNaRUxFdEJRVXNzUlVGQlJTeFRRVUZUTzJkQ1FVTm9RaXhKUVVGSkxFVkJRVVVzUjBGQlJ6dGhRVU5XTEVOQlFVTTdXVUZEUml4bFFVRmxMRVZCUVVVc1NVRkJTVHRUUVVOMFFpeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVTkVMRTlCUVU4c1JVRkJSU3hEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zU1VGQlNTeExRVUZMTERCRFFVRlBPMGxCUXpGRUxHTkJRV01zUlVGQlJTeERRVUZETEVWQlFVVXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hWUVVGVkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZEZEVRc2RVUkJRVU1zT0VSQlFWVXNTVUZEVkN4TlFVRk5MRVZCUVVVc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hEUVVGRExFVkJRemxETEVsQlFVa3NSVUZCUXl4UlFVRlJMRVZCUTJJc1NVRkJTU3hGUVVGRkxIVkVRVUZETEhsRlFVRXdRaXhKUVVGRExFdEJRVXNzUlVGQlJTeFJRVUZSTEVOQlFVTXNTMEZCU3l4WFFVRkpMRVZCUXpORUxFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJReTlDTEV0QlFVc3NSVUZCUlN4SFFVRkhMSGREUVVGRExFTkJRVU1zSzBKQlFTdENMRU5CUVVNc1RVRkJUU3h6UkVGQll5eERRVU01UkN4UFFVRlBMRU5CUTFJc1JVRkJSU3huUWtGRFV5eDNRMEZCUXl4RFFVRkRMQ3RDUVVFclFpeERRVUZETEVWQlF6bERMRTlCUVU4c1JVRkJSU3cyUkVGQmNVSXNRMEZCUXl3clJFRkJjVUlzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlN4UlFVRlJMRU5CUVVNc1YwRkRla1VzUTBGRFNEdERRVU5HTEVOQlFVTXNRMEZCUXp0QlFVVkpMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NiVVJCUVZFc1EwRkJRenRKUVVNelF5eEpRVUZKTEVWQlFVVXNjMEpCUVhOQ08wbEJRelZDTEU5QlFVOHNSVUZCUlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVVzUlVGQlJUdFJRVU01UWl4UFFVRlBPMWxCUTB3c1VVRkJVVHRaUVVOU0xGRkJRVkVzUlVGQlJTd3dRa0ZCTUVJc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTzJkQ1FVTjJSQ3hMUVVGTExFVkJRVVVzVTBGQlV6dG5Ra0ZEYUVJc1NVRkJTU3hGUVVGRkxFZEJRVWM3WVVGRFZpeERRVUZETzFsQlEwWXNaVUZCWlN4RlFVRkZMRWxCUVVrN1UwRkRkRUlzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZEUkN4UFFVRlBMRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExFbEJRVWtzUzBGQlN5d3dRMEZCVHp0SlFVTXhSQ3hqUVVGakxFVkJRVVVzUTBGQlF5eEZRVUZGTEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlEzUkVMSFZFUVVGRExEaEVRVUZWTEVsQlExUXNUVUZCVFN4RlFVRkZMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1EwRkJReXhGUVVNNVF5eEpRVUZKTEVWQlFVTXNVVUZCVVN4RlFVTmlMRWxCUVVrc1JVRkJSU3gxUkVGQlF5eDFSVUZCZDBJc1NVRkJReXhMUVVGTExFVkJRVVVzVVVGQlVTeERRVUZETEV0QlFVc3NWMEZCU1N4RlFVTjZSQ3hQUVVGUExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVNdlFpeExRVUZMTEVWQlFVVXNSMEZCUnl4M1EwRkJReXhEUVVGRExEWkNRVUUyUWl4RFFVRkRMRTFCUVUwc2MwUkJRV01zUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4blFrRkROMFFzZDBOQlFVTXNRMEZCUXl3MlFrRkJOa0lzUTBGQlF5eEZRVU0xUXl4UFFVRlBMRVZCUVVVc05rUkJRWEZDTEVOQlFVTXNLMFJCUVhGQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNVVUZCVVN4RFFVRkRMRmRCUTNwRkxFTkJRMGc3UTBGRFJpeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNUVhWE4wY21saWRYUmxMblJ6ZUQ5aFlUVmhJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3WEc0Z0lFUnBjM1J5YVdKMWRHVkliM0pwZW05dWRHRnNiSGxKWTI5dUxGeHVJQ0JFYVhOMGNtbGlkWFJsVm1WeWRHbGpZV3hzZVVsamIyNHNYRzU5SUdaeWIyMGdYQ0l1TGk5amIyMXdiMjVsYm5SekwybGpiMjV6WENJN1hHNXBiWEJ2Y25RZ2V5QlViMjlzUW5WMGRHOXVJSDBnWm5KdmJTQmNJaTR1TDJOdmJYQnZibVZ1ZEhNdlZHOXZiRUoxZEhSdmJsd2lPMXh1YVcxd2IzSjBJSHNnWkdsemRISnBZblYwWlVWc1pXMWxiblJ6TENCRWFYTjBjbWxpZFhScGIyNGdmU0JtY205dElGd2lMaTR2WkdsemFYUnlkV0owWlZ3aU8xeHVhVzF3YjNKMElIc2daMlYwVG05dVJHVnNaWFJsWkVWc1pXMWxiblJ6SUgwZ1puSnZiU0JjSWk0dUwyVnNaVzFsYm5SY0lqdGNibWx0Y0c5eWRDQjdJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBJSDBnWm5KdmJTQmNJaTR1TDJWc1pXMWxiblF2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUhRZ2ZTQm1jbTl0SUZ3aUxpNHZhVEU0Ymx3aU8xeHVhVzF3YjNKMElIc2dRMDlFUlZNZ2ZTQm1jbTl0SUZ3aUxpNHZhMlY1YzF3aU8xeHVhVzF3YjNKMElIc2daMlYwVTJWc1pXTjBaV1JGYkdWdFpXNTBjeXdnYVhOVGIyMWxSV3hsYldWdWRGTmxiR1ZqZEdWa0lIMGdabkp2YlNCY0lpNHVMM05qWlc1bFhDSTdYRzVwYlhCdmNuUWdleUJCY0hCVGRHRjBaU0I5SUdaeWIyMGdYQ0l1TGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1lYSnlZWGxVYjAxaGNDd2daMlYwVTJodmNuUmpkWFJMWlhrZ2ZTQm1jbTl0SUZ3aUxpNHZkWFJwYkhOY0lqdGNibWx0Y0c5eWRDQjdJSEpsWjJsemRHVnlJSDBnWm5KdmJTQmNJaTR2Y21WbmFYTjBaWEpjSWp0Y2JseHVZMjl1YzNRZ1pXNWhZbXhsUVdOMGFXOXVSM0p2ZFhBZ1BTQW9YRzRnSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZExGeHVJQ0JoY0hCVGRHRjBaVG9nUVhCd1UzUmhkR1VzWEc0cElEMCtJR2RsZEZObGJHVmpkR1ZrUld4bGJXVnVkSE1vWjJWMFRtOXVSR1ZzWlhSbFpFVnNaVzFsYm5SektHVnNaVzFsYm5SektTd2dZWEJ3VTNSaGRHVXBMbXhsYm1kMGFDQStJREU3WEc1Y2JtTnZibk4wSUdScGMzUnlhV0oxZEdWVFpXeGxZM1JsWkVWc1pXMWxiblJ6SUQwZ0tGeHVJQ0JsYkdWdFpXNTBjem9nY21WaFpHOXViSGtnUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFN4Y2JpQWdZWEJ3VTNSaGRHVTZJRkpsWVdSdmJteDVQRUZ3Y0ZOMFlYUmxQaXhjYmlBZ1pHbHpkSEpwWW5WMGFXOXVPaUJFYVhOMGNtbGlkWFJwYjI0c1hHNHBJRDArSUh0Y2JpQWdZMjl1YzNRZ2MyVnNaV04wWldSRmJHVnRaVzUwY3lBOUlHZGxkRk5sYkdWamRHVmtSV3hsYldWdWRITW9YRzRnSUNBZ1oyVjBUbTl1UkdWc1pYUmxaRVZzWlcxbGJuUnpLR1ZzWlcxbGJuUnpLU3hjYmlBZ0lDQmhjSEJUZEdGMFpTeGNiaUFnS1R0Y2JseHVJQ0JqYjI1emRDQjFjR1JoZEdWa1JXeGxiV1Z1ZEhNZ1BTQmthWE4wY21saWRYUmxSV3hsYldWdWRITW9jMlZzWldOMFpXUkZiR1Z0Wlc1MGN5d2daR2x6ZEhKcFluVjBhVzl1S1R0Y2JseHVJQ0JqYjI1emRDQjFjR1JoZEdWa1JXeGxiV1Z1ZEhOTllYQWdQU0JoY25KaGVWUnZUV0Z3S0hWd1pHRjBaV1JGYkdWdFpXNTBjeWs3WEc1Y2JpQWdjbVYwZFhKdUlHVnNaVzFsYm5SekxtMWhjQ2hjYmlBZ0lDQW9aV3hsYldWdWRDa2dQVDRnZFhCa1lYUmxaRVZzWlcxbGJuUnpUV0Z3TG1kbGRDaGxiR1Z0Wlc1MExtbGtLU0I4ZkNCbGJHVnRaVzUwTEZ4dUlDQXBPMXh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdScGMzUnlhV0oxZEdWSWIzSnBlbTl1ZEdGc2JIa2dQU0J5WldkcGMzUmxjaWg3WEc0Z0lHNWhiV1U2SUZ3aVpHbHpkSEpwWW5WMFpVaHZjbWw2YjI1MFlXeHNlVndpTEZ4dUlDQndaWEptYjNKdE9pQW9aV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxLU0E5UGlCN1hHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJR0Z3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdaV3hsYldWdWRITTZJR1JwYzNSeWFXSjFkR1ZUWld4bFkzUmxaRVZzWlcxbGJuUnpLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU3dnZTF4dUlDQWdJQ0FnSUNCemNHRmpaVG9nWENKaVpYUjNaV1Z1WENJc1hHNGdJQ0FnSUNBZ0lHRjRhWE02SUZ3aWVGd2lMRnh1SUNBZ0lDQWdmU2tzWEc0Z0lDQWdJQ0JqYjIxdGFYUlViMGhwYzNSdmNuazZJSFJ5ZFdVc1hHNGdJQ0FnZlR0Y2JpQWdmU3hjYmlBZ2EyVjVWR1Z6ZERvZ0tHVjJaVzUwS1NBOVBpQmxkbVZ1ZEM1aGJIUkxaWGtnSmlZZ1pYWmxiblF1WTI5a1pTQTlQVDBnUTA5RVJWTXVTQ3hjYmlBZ1VHRnVaV3hEYjIxd2IyNWxiblE2SUNoN0lHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTd2dkWEJrWVhSbFJHRjBZU0I5S1NBOVBpQW9YRzRnSUNBZ1BGUnZiMnhDZFhSMGIyNWNiaUFnSUNBZ0lHaHBaR1JsYmoxN0lXVnVZV0pzWlVGamRHbHZia2R5YjNWd0tHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTbDlYRzRnSUNBZ0lDQjBlWEJsUFZ3aVluVjBkRzl1WENKY2JpQWdJQ0FnSUdsamIyNDllenhFYVhOMGNtbGlkWFJsU0c5eWFYcHZiblJoYkd4NVNXTnZiaUIwYUdWdFpUMTdZWEJ3VTNSaGRHVXVkR2hsYldWOUlDOCtmVnh1SUNBZ0lDQWdiMjVEYkdsamF6MTdLQ2tnUFQ0Z2RYQmtZWFJsUkdGMFlTaHVkV3hzS1gxY2JpQWdJQ0FnSUhScGRHeGxQWHRnSkh0MEtGd2liR0ZpWld4ekxtUnBjM1J5YVdKMWRHVkliM0pwZW05dWRHRnNiSGxjSWlsOUlPS0FsQ0FrZTJkbGRGTm9iM0owWTNWMFMyVjVLRnh1SUNBZ0lDQWdJQ0JjSWtGc2RDdElYQ0lzWEc0Z0lDQWdJQ0FwZldCOVhHNGdJQ0FnSUNCaGNtbGhMV3hoWW1Wc1BYdDBLRndpYkdGaVpXeHpMbVJwYzNSeWFXSjFkR1ZJYjNKcGVtOXVkR0ZzYkhsY0lpbDlYRzRnSUNBZ0lDQjJhWE5wWW14bFBYdHBjMU52YldWRmJHVnRaVzUwVTJWc1pXTjBaV1FvWjJWMFRtOXVSR1ZzWlhSbFpFVnNaVzFsYm5SektHVnNaVzFsYm5SektTd2dZWEJ3VTNSaGRHVXBmVnh1SUNBZ0lDOCtYRzRnSUNrc1hHNTlLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR1JwYzNSeWFXSjFkR1ZXWlhKMGFXTmhiR3g1SUQwZ2NtVm5hWE4wWlhJb2UxeHVJQ0J1WVcxbE9pQmNJbVJwYzNSeWFXSjFkR1ZXWlhKMGFXTmhiR3g1WENJc1hHNGdJSEJsY21admNtMDZJQ2hsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VwSUQwK0lIdGNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnWVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0JsYkdWdFpXNTBjem9nWkdsemRISnBZblYwWlZObGJHVmpkR1ZrUld4bGJXVnVkSE1vWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCN1hHNGdJQ0FnSUNBZ0lITndZV05sT2lCY0ltSmxkSGRsWlc1Y0lpeGNiaUFnSUNBZ0lDQWdZWGhwY3pvZ1hDSjVYQ0lzWEc0Z0lDQWdJQ0I5S1N4Y2JpQWdJQ0FnSUdOdmJXMXBkRlJ2U0dsemRHOXllVG9nZEhKMVpTeGNiaUFnSUNCOU8xeHVJQ0I5TEZ4dUlDQnJaWGxVWlhOME9pQW9aWFpsYm5RcElEMCtJR1YyWlc1MExtRnNkRXRsZVNBbUppQmxkbVZ1ZEM1amIyUmxJRDA5UFNCRFQwUkZVeTVXTEZ4dUlDQlFZVzVsYkVOdmJYQnZibVZ1ZERvZ0tIc2daV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxMQ0IxY0dSaGRHVkVZWFJoSUgwcElEMCtJQ2hjYmlBZ0lDQThWRzl2YkVKMWRIUnZibHh1SUNBZ0lDQWdhR2xrWkdWdVBYc2haVzVoWW14bFFXTjBhVzl1UjNKdmRYQW9aV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxLWDFjYmlBZ0lDQWdJSFI1Y0dVOVhDSmlkWFIwYjI1Y0lseHVJQ0FnSUNBZ2FXTnZiajE3UEVScGMzUnlhV0oxZEdWV1pYSjBhV05oYkd4NVNXTnZiaUIwYUdWdFpUMTdZWEJ3VTNSaGRHVXVkR2hsYldWOUlDOCtmVnh1SUNBZ0lDQWdiMjVEYkdsamF6MTdLQ2tnUFQ0Z2RYQmtZWFJsUkdGMFlTaHVkV3hzS1gxY2JpQWdJQ0FnSUhScGRHeGxQWHRnSkh0MEtGd2liR0ZpWld4ekxtUnBjM1J5YVdKMWRHVldaWEowYVdOaGJHeDVYQ0lwZlNEaWdKUWdKSHRuWlhSVGFHOXlkR04xZEV0bGVTaGNJa0ZzZEN0V1hDSXBmV0I5WEc0Z0lDQWdJQ0JoY21saExXeGhZbVZzUFh0MEtGd2liR0ZpWld4ekxtUnBjM1J5YVdKMWRHVldaWEowYVdOaGJHeDVYQ0lwZlZ4dUlDQWdJQ0FnZG1semFXSnNaVDE3YVhOVGIyMWxSV3hsYldWdWRGTmxiR1ZqZEdWa0tHZGxkRTV2YmtSbGJHVjBaV1JGYkdWdFpXNTBjeWhsYkdWdFpXNTBjeWtzSUdGd2NGTjBZWFJsS1gxY2JpQWdJQ0F2UGx4dUlDQXBMRnh1ZlNrN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2FjdGlvbnMvYWN0aW9uRGlzdHJpYnV0ZS50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2FjdGlvbnMvYWN0aW9uRHVwbGljYXRlU2VsZWN0aW9uLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vYWN0aW9ucy9hY3Rpb25EdXBsaWNhdGVTZWxlY3Rpb24udHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uRHVwbGljYXRlU2VsZWN0aW9uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uRHVwbGljYXRlU2VsZWN0aW9uKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4va2V5cyAqLyBcXFwiLi4vLi4va2V5cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vcmVnaXN0ZXIgKi8gXFxcIi4uLy4uL2FjdGlvbnMvcmVnaXN0ZXIudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZSAqLyBcXFwiLi4vLi4vc2NlbmUvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1Rvb2xCdXR0b24udHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL2ljb25zICovIFxcXCIuLi8uLi9jb21wb25lbnRzL2ljb25zLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9saW5lYXJFbGVtZW50RWRpdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L2xpbmVhckVsZW1lbnRFZGl0b3IgKi8gXFxcIi4uLy4uL2VsZW1lbnQvbGluZWFyRWxlbWVudEVkaXRvci50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZ3JvdXBzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZ3JvdXBzICovIFxcXCIuLi8uLi9ncm91cHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvYmluZGluZyAqLyBcXFwiLi4vLi4vZWxlbWVudC9iaW5kaW5nLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF90ZXh0RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvdGV4dEVsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdGV4dEVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvdHlwZUNoZWNrcyAqLyBcXFwiLi4vLi4vZWxlbWVudC90eXBlQ2hlY2tzLnRzXFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgYWN0aW9uRHVwbGljYXRlU2VsZWN0aW9uID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImR1cGxpY2F0ZVNlbGVjdGlvblxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgICAgIC8vIGR1cGxpY2F0ZSBzZWxlY3RlZCBwb2ludChzKSBpZiBlZGl0aW5nIGEgbGluZVxcbiAgICAgICAgaWYgKGFwcFN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50KSB7XFxuICAgICAgICAgICAgY29uc3QgcmV0ID0gX2VsZW1lbnRfbGluZWFyRWxlbWVudEVkaXRvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLkxpbmVhckVsZW1lbnRFZGl0b3IuZHVwbGljYXRlU2VsZWN0ZWRQb2ludHMoYXBwU3RhdGUpO1xcbiAgICAgICAgICAgIGlmICghcmV0KSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgZWxlbWVudHMsXFxuICAgICAgICAgICAgICAgIGFwcFN0YXRlOiByZXQuYXBwU3RhdGUsXFxuICAgICAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogdHJ1ZSxcXG4gICAgICAgICAgICB9O1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZHVwbGljYXRlRWxlbWVudHMoZWxlbWVudHMsIGFwcFN0YXRlKSksIHsgY29tbWl0VG9IaXN0b3J5OiB0cnVlIH0pO1xcbiAgICB9LFxcbiAgICBjb250ZXh0SXRlbUxhYmVsOiBcXFwibGFiZWxzLmR1cGxpY2F0ZVNlbGVjdGlvblxcXCIsXFxuICAgIGtleVRlc3Q6IChldmVudCkgPT4gZXZlbnRbX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5LRVlTLkNUUkxfT1JfQ01EXSAmJiBldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uS0VZUy5ELFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgZWxlbWVudHMsIGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLlRvb2xCdXR0b24sIHsgdHlwZTogXFxcImJ1dHRvblxcXCIsIGljb246IF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uY2xvbmUsIHRpdGxlOiBgJHsoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLnQpKFxcXCJsYWJlbHMuZHVwbGljYXRlU2VsZWN0aW9uXFxcIil9IFx1MjAxNCAkeygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK0RcXFwiKX1gLCBcXFwiYXJpYS1sYWJlbFxcXCI6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18udCkoXFxcImxhYmVscy5kdXBsaWNhdGVTZWxlY3Rpb25cXFwiKSwgb25DbGljazogKCkgPT4gdXBkYXRlRGF0YShudWxsKSwgdmlzaWJsZTogKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uaXNTb21lRWxlbWVudFNlbGVjdGVkKSgoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmdldE5vbkRlbGV0ZWRFbGVtZW50cykoZWxlbWVudHMpLCBhcHBTdGF0ZSkgfSwgdm9pZCAwKSksXFxufSk7XFxuY29uc3QgZHVwbGljYXRlRWxlbWVudHMgPSAoZWxlbWVudHMsIGFwcFN0YXRlKSA9PiB7XFxuICAgIGNvbnN0IGdyb3VwSWRNYXAgPSBuZXcgTWFwKCk7XFxuICAgIGNvbnN0IG5ld0VsZW1lbnRzID0gW107XFxuICAgIGNvbnN0IG9sZEVsZW1lbnRzID0gW107XFxuICAgIGNvbnN0IG9sZElkVG9EdXBsaWNhdGVkSWQgPSBuZXcgTWFwKCk7XFxuICAgIGNvbnN0IGR1cGxpY2F0ZUFuZE9mZnNldEVsZW1lbnQgPSAoZWxlbWVudCkgPT4ge1xcbiAgICAgICAgY29uc3QgbmV3RWxlbWVudCA9ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZHVwbGljYXRlRWxlbWVudCkoYXBwU3RhdGUuZWRpdGluZ0dyb3VwSWQsIGdyb3VwSWRNYXAsIGVsZW1lbnQsIHtcXG4gICAgICAgICAgICB4OiBlbGVtZW50LnggKyBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fLkdSSURfU0laRSAvIDIsXFxuICAgICAgICAgICAgeTogZWxlbWVudC55ICsgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5HUklEX1NJWkUgLyAyLFxcbiAgICAgICAgfSk7XFxuICAgICAgICBvbGRJZFRvRHVwbGljYXRlZElkLnNldChlbGVtZW50LmlkLCBuZXdFbGVtZW50LmlkKTtcXG4gICAgICAgIG9sZEVsZW1lbnRzLnB1c2goZWxlbWVudCk7XFxuICAgICAgICBuZXdFbGVtZW50cy5wdXNoKG5ld0VsZW1lbnQpO1xcbiAgICAgICAgcmV0dXJuIG5ld0VsZW1lbnQ7XFxuICAgIH07XFxuICAgIGNvbnN0IGZpbmFsRWxlbWVudHMgPSBbXTtcXG4gICAgbGV0IGluZGV4ID0gMDtcXG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50SWRzID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uYXJyYXlUb01hcCkoKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uZ2V0U2VsZWN0ZWRFbGVtZW50cykoZWxlbWVudHMsIGFwcFN0YXRlLCB0cnVlKSk7XFxuICAgIHdoaWxlIChpbmRleCA8IGVsZW1lbnRzLmxlbmd0aCkge1xcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRzW2luZGV4XTtcXG4gICAgICAgIGlmIChzZWxlY3RlZEVsZW1lbnRJZHMuZ2V0KGVsZW1lbnQuaWQpKSB7XFxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuZ3JvdXBJZHMubGVuZ3RoKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwSWQgPSAoMCxfZ3JvdXBzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLmdldFNlbGVjdGVkR3JvdXBGb3JFbGVtZW50KShhcHBTdGF0ZSwgZWxlbWVudCk7XFxuICAgICAgICAgICAgICAgIC8vIGlmIGdyb3VwIHNlbGVjdGVkLCBkdXBsaWNhdGUgaXQgYXRvbWljYWxseVxcbiAgICAgICAgICAgICAgICBpZiAoZ3JvdXBJZCkge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBFbGVtZW50cyA9ICgwLF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uZ2V0RWxlbWVudHNJbkdyb3VwKShlbGVtZW50cywgZ3JvdXBJZCk7XFxuICAgICAgICAgICAgICAgICAgICBmaW5hbEVsZW1lbnRzLnB1c2goLi4uZ3JvdXBFbGVtZW50cywgLi4uZ3JvdXBFbGVtZW50cy5tYXAoKGVsZW1lbnQpID0+IGR1cGxpY2F0ZUFuZE9mZnNldEVsZW1lbnQoZWxlbWVudCkpKTtcXG4gICAgICAgICAgICAgICAgICAgIGluZGV4ID0gaW5kZXggKyBncm91cEVsZW1lbnRzLmxlbmd0aDtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGZpbmFsRWxlbWVudHMucHVzaChlbGVtZW50LCBkdXBsaWNhdGVBbmRPZmZzZXRFbGVtZW50KGVsZW1lbnQpKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgIGZpbmFsRWxlbWVudHMucHVzaChlbGVtZW50KTtcXG4gICAgICAgIH1cXG4gICAgICAgIGluZGV4Kys7XFxuICAgIH1cXG4gICAgKDAsX2VsZW1lbnRfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18uYmluZFRleHRUb1NoYXBlQWZ0ZXJEdXBsaWNhdGlvbikoZmluYWxFbGVtZW50cywgb2xkRWxlbWVudHMsIG9sZElkVG9EdXBsaWNhdGVkSWQpO1xcbiAgICAoMCxfZWxlbWVudF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLmZpeEJpbmRpbmdzQWZ0ZXJEdXBsaWNhdGlvbikoZmluYWxFbGVtZW50cywgb2xkRWxlbWVudHMsIG9sZElkVG9EdXBsaWNhdGVkSWQpO1xcbiAgICByZXR1cm4ge1xcbiAgICAgICAgZWxlbWVudHM6IGZpbmFsRWxlbWVudHMsXFxuICAgICAgICBhcHBTdGF0ZTogKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5zZWxlY3RHcm91cHNGb3JTZWxlY3RlZEVsZW1lbnRzKShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBzZWxlY3RlZEdyb3VwSWRzOiB7fSwgc2VsZWN0ZWRFbGVtZW50SWRzOiBuZXdFbGVtZW50cy5yZWR1Y2UoKGFjYywgZWxlbWVudCkgPT4ge1xcbiAgICAgICAgICAgICAgICBpZiAoISgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18uaXNCb3VuZFRvQ29udGFpbmVyKShlbGVtZW50KSkge1xcbiAgICAgICAgICAgICAgICAgICAgYWNjW2VsZW1lbnQuaWRdID0gdHJ1ZTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xcbiAgICAgICAgICAgIH0sIHt9KSB9KSwgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGZpbmFsRWxlbWVudHMpKSxcXG4gICAgfTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNUVkWEJzYVdOaGRHVlRaV3hsWTNScGIyNHVkSE40TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3T3pzN096czdPenM3TzBGQlFTdENPMEZCUTA4N1FVRkZLMEk3UVVGRFF6dEJRVU5vUWp0QlFVTldPMEZCUTJoQ08wRkJRekJDTzBGQlEyVTdRVUZMYkVRN1FVRkZPRU03UVVGRmVFSTdRVUZEWjBNN1FVRkRaRHRCUVVWd1JDeE5RVUZOTEhkQ1FVRjNRaXhIUVVGSExHMUVRVUZSTEVOQlFVTTdTVUZETDBNc1NVRkJTU3hGUVVGRkxHOUNRVUZ2UWp0SlFVTXhRaXhQUVVGUExFVkJRVVVzUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZMRVZCUVVVN1VVRkRPVUlzWjBSQlFXZEVPMUZCUTJoRUxFbEJRVWtzVVVGQlVTeERRVUZETEc5Q1FVRnZRaXhGUVVGRk8xbEJRMnBETEUxQlFVMHNSMEZCUnl4SFFVRkhMSEZIUVVFeVF5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMWxCUld4RkxFbEJRVWtzUTBGQlF5eEhRVUZITEVWQlFVVTdaMEpCUTFJc1QwRkJUeXhMUVVGTExFTkJRVU03WVVGRFpEdFpRVVZFTEU5QlFVODdaMEpCUTB3c1VVRkJVVHRuUWtGRFVpeFJRVUZSTEVWQlFVVXNSMEZCUnl4RFFVRkRMRkZCUVZFN1owSkJRM1JDTEdWQlFXVXNSVUZCUlN4SlFVRkpPMkZCUTNSQ0xFTkJRVU03VTBGRFNEdFJRVVZFTEhWRFFVTkxMR2xDUVVGcFFpeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRU5CUVVNc1MwRkRlRU1zWlVGQlpTeEZRVUZGTEVsQlFVa3NTVUZEY2tJN1NVRkRTaXhEUVVGRE8wbEJRMFFzWjBKQlFXZENMRVZCUVVVc01rSkJRVEpDTzBsQlF6ZERMRTlCUVU4c1JVRkJSU3hEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRzFFUVVGblFpeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRkRMRWRCUVVjc1MwRkJTeXg1UTBGQlRUdEpRVU51UlN4alFVRmpMRVZCUVVVc1EwRkJReXhGUVVGRkxGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVXNWVUZCVlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRM1JFTEhWRVFVRkRMRGhFUVVGVkxFbEJRMVFzU1VGQlNTeEZRVUZETEZGQlFWRXNSVUZEWWl4SlFVRkpMRVZCUVVVc2IwUkJRVXNzUlVGRFdDeExRVUZMTEVWQlFVVXNSMEZCUnl4M1EwRkJReXhEUVVGRExESkNRVUV5UWl4RFFVRkRMRTFCUVUwc2MwUkJRV01zUTBGRE1VUXNZVUZCWVN4RFFVTmtMRVZCUVVVc1owSkJRMU1zZDBOQlFVTXNRMEZCUXl3eVFrRkJNa0lzUTBGQlF5eEZRVU14UXl4UFFVRlBMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVTXZRaXhQUVVGUExFVkJRVVVzTmtSQlFYRkNMRU5CUVVNc0swUkJRWEZDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRVZCUVVVc1VVRkJVU3hEUVVGRExGZEJRM3BGTEVOQlEwZzdRMEZEUml4RFFVRkRMRU5CUVVNN1FVRkZTQ3hOUVVGTkxHbENRVUZwUWl4SFFVRkhMRU5CUTNoQ0xGRkJRWE5ETEVWQlEzUkRMRkZCUVd0Q0xFVkJRMHNzUlVGQlJUdEpRVU42UWl4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETzBsQlF6ZENMRTFCUVUwc1YwRkJWeXhIUVVGM1FpeEZRVUZGTEVOQlFVTTdTVUZETlVNc1RVRkJUU3hYUVVGWExFZEJRWGRDTEVWQlFVVXNRMEZCUXp0SlFVTTFReXhOUVVGTkxHMUNRVUZ0UWl4SFFVRkhMRWxCUVVrc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRmRFTXNUVUZCVFN4NVFrRkJlVUlzUjBGQlJ5eERRVUZETEU5QlFUQkNMRVZCUVVVc1JVRkJSVHRSUVVNdlJDeE5RVUZOTEZWQlFWVXNSMEZCUnl3d1JFRkJaMElzUTBGRGFrTXNVVUZCVVN4RFFVRkRMR05CUVdNc1JVRkRka0lzVlVGQlZTeEZRVU5XTEU5QlFVOHNSVUZEVUR0WlFVTkZMRU5CUVVNc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEd0RVFVRlRMRWRCUVVjc1EwRkJRenRaUVVNMVFpeERRVUZETEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNc1IwRkJSeXhyUkVGQlV5eEhRVUZITEVOQlFVTTdVMEZETjBJc1EwRkRSaXhEUVVGRE8xRkJRMFlzYlVKQlFXMUNMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEVWQlFVVXNWVUZCVlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRMjVFTEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRE1VSXNWMEZCVnl4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU0zUWl4UFFVRlBMRlZCUVZVc1EwRkJRenRKUVVOd1FpeERRVUZETEVOQlFVTTdTVUZGUml4TlFVRk5MR0ZCUVdFc1IwRkJkMElzUlVGQlJTeERRVUZETzBsQlJUbERMRWxCUVVrc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU5rTEUxQlFVMHNhMEpCUVd0Q0xFZEJRVWNzYTBSQlFWVXNRMEZEYmtNc01rUkJRVzFDTEVOQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRE9VTXNRMEZCUXp0SlFVTkdMRTlCUVU4c1MwRkJTeXhIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVWQlFVVTdVVUZET1VJc1RVRkJUU3hQUVVGUExFZEJRVWNzVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTJoRExFbEJRVWtzYTBKQlFXdENMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlR0WlFVTjBReXhKUVVGSkxFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RlFVRkZPMmRDUVVNelFpeE5RVUZOTEU5QlFVOHNSMEZCUnl4dlJVRkJNRUlzUTBGQlF5eFJRVUZSTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1owSkJRemxFTERaRFFVRTJRenRuUWtGRE4wTXNTVUZCU1N4UFFVRlBMRVZCUVVVN2IwSkJRMWdzVFVGQlRTeGhRVUZoTEVkQlFVY3NORVJCUVd0Q0xFTkJRVU1zVVVGQlVTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMjlDUVVNMVJDeGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVTm9RaXhIUVVGSExHRkJRV0VzUlVGRGFFSXNSMEZCUnl4aFFVRmhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZETDBJc2VVSkJRWGxDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUTI1RExFTkJRMFlzUTBGQlF6dHZRa0ZEUml4TFFVRkxMRWRCUVVjc1MwRkJTeXhIUVVGSExHRkJRV0VzUTBGQlF5eE5RVUZOTEVOQlFVTTdiMEpCUTNKRExGTkJRVk03YVVKQlExWTdZVUZEUmp0WlFVTkVMR0ZCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEhsQ1FVRjVRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdVMEZEYWtVN1lVRkJUVHRaUVVOTUxHRkJRV0VzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1UwRkROMEk3VVVGRFJDeExRVUZMTEVWQlFVVXNRMEZCUXp0TFFVTlVPMGxCUTBRc2MwWkJRU3RDTEVOQlF6ZENMR0ZCUVdFc1JVRkRZaXhYUVVGWExFVkJRMWdzYlVKQlFXMUNMRU5CUTNCQ0xFTkJRVU03U1VGRFJpdzRSVUZCTWtJc1EwRkJReXhoUVVGaExFVkJRVVVzVjBGQlZ5eEZRVUZGTEcxQ1FVRnRRaXhEUVVGRExFTkJRVU03U1VGRk4wVXNUMEZCVHp0UlFVTk1MRkZCUVZFc1JVRkJSU3hoUVVGaE8xRkJRM1pDTEZGQlFWRXNSVUZCUlN4NVJVRkJLMElzYVVOQlJXeERMRkZCUVZFc1MwRkRXQ3huUWtGQlowSXNSVUZCUlN4RlFVRkZMRVZCUTNCQ0xHdENRVUZyUWl4RlFVRkZMRmRCUVZjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNUMEZCVHl4RlFVRkZMRVZCUVVVN1owSkJRM1JFTEVsQlFVa3NRMEZCUXl4M1JVRkJhMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlR0dlFrRkRhRU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU03YVVKQlEzaENPMmRDUVVORUxFOUJRVThzUjBGQlJ5eERRVUZETzFsQlEySXNRMEZCUXl4RlFVRkZMRVZCUVZNc1EwRkJReXhMUVVWbUxDdEVRVUZ4UWl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVOeVF6dExRVU5HTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZV04wYVc5dWN5OWhZM1JwYjI1RWRYQnNhV05oZEdWVFpXeGxZM1JwYjI0dWRITjRQekUwTVdRaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dTMFZaVXlCOUlHWnliMjBnWENJdUxpOXJaWGx6WENJN1hHNXBiWEJ2Y25RZ2V5QnlaV2RwYzNSbGNpQjlJR1p5YjIwZ1hDSXVMM0psWjJsemRHVnlYQ0k3WEc1cGJYQnZjblFnZXlCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZENCOUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MEwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5QmtkWEJzYVdOaGRHVkZiR1Z0Wlc1MExDQm5aWFJPYjI1RVpXeGxkR1ZrUld4bGJXVnVkSE1nZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEZ3aU8xeHVhVzF3YjNKMElIc2daMlYwVTJWc1pXTjBaV1JGYkdWdFpXNTBjeXdnYVhOVGIyMWxSV3hsYldWdWRGTmxiR1ZqZEdWa0lIMGdabkp2YlNCY0lpNHVMM05qWlc1bFhDSTdYRzVwYlhCdmNuUWdleUJVYjI5c1FuVjBkRzl1SUgwZ1puSnZiU0JjSWk0dUwyTnZiWEJ2Ym1WdWRITXZWRzl2YkVKMWRIUnZibHdpTzF4dWFXMXdiM0owSUhzZ1kyeHZibVVnZlNCbWNtOXRJRndpTGk0dlkyOXRjRzl1Wlc1MGN5OXBZMjl1YzF3aU8xeHVhVzF3YjNKMElIc2dkQ0I5SUdaeWIyMGdYQ0l1TGk5cE1UaHVYQ0k3WEc1cGJYQnZjblFnZXlCaGNuSmhlVlJ2VFdGd0xDQm5aWFJUYUc5eWRHTjFkRXRsZVNCOUlHWnliMjBnWENJdUxpOTFkR2xzYzF3aU8xeHVhVzF3YjNKMElIc2dUR2x1WldGeVJXeGxiV1Z1ZEVWa2FYUnZjaUI5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwTDJ4cGJtVmhja1ZzWlcxbGJuUkZaR2wwYjNKY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUhObGJHVmpkRWR5YjNWd2MwWnZjbE5sYkdWamRHVmtSV3hsYldWdWRITXNYRzRnSUdkbGRGTmxiR1ZqZEdWa1IzSnZkWEJHYjNKRmJHVnRaVzUwTEZ4dUlDQm5aWFJGYkdWdFpXNTBjMGx1UjNKdmRYQXNYRzU5SUdaeWIyMGdYQ0l1TGk5bmNtOTFjSE5jSWp0Y2JtbHRjRzl5ZENCN0lFRndjRk4wWVhSbElIMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdleUJtYVhoQ2FXNWthVzVuYzBGbWRHVnlSSFZ3YkdsallYUnBiMjRnZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEM5aWFXNWthVzVuWENJN1hHNXBiWEJ2Y25RZ2V5QkJZM1JwYjI1U1pYTjFiSFFnZlNCbWNtOXRJRndpTGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1IxSkpSRjlUU1ZwRklIMGdabkp2YlNCY0lpNHVMMk52Ym5OMFlXNTBjMXdpTzF4dWFXMXdiM0owSUhzZ1ltbHVaRlJsZUhSVWIxTm9ZWEJsUVdaMFpYSkVkWEJzYVdOaGRHbHZiaUI5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwTDNSbGVIUkZiR1Z0Wlc1MFhDSTdYRzVwYlhCdmNuUWdleUJwYzBKdmRXNWtWRzlEYjI1MFlXbHVaWElnZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEM5MGVYQmxRMmhsWTJ0elhDSTdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmhZM1JwYjI1RWRYQnNhV05oZEdWVFpXeGxZM1JwYjI0Z1BTQnlaV2RwYzNSbGNpaDdYRzRnSUc1aGJXVTZJRndpWkhWd2JHbGpZWFJsVTJWc1pXTjBhVzl1WENJc1hHNGdJSEJsY21admNtMDZJQ2hsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VwSUQwK0lIdGNiaUFnSUNBdkx5QmtkWEJzYVdOaGRHVWdjMlZzWldOMFpXUWdjRzlwYm5Rb2N5a2dhV1lnWldScGRHbHVaeUJoSUd4cGJtVmNiaUFnSUNCcFppQW9ZWEJ3VTNSaGRHVXVaV1JwZEdsdVoweHBibVZoY2tWc1pXMWxiblFwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSEpsZENBOUlFeHBibVZoY2tWc1pXMWxiblJGWkdsMGIzSXVaSFZ3YkdsallYUmxVMlZzWldOMFpXUlFiMmx1ZEhNb1lYQndVM1JoZEdVcE8xeHVYRzRnSUNBZ0lDQnBaaUFvSVhKbGRDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNBZ0lHVnNaVzFsYm5SekxGeHVJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpUb2djbVYwTG1Gd2NGTjBZWFJsTEZ4dUlDQWdJQ0FnSUNCamIyMXRhWFJVYjBocGMzUnZjbms2SUhSeWRXVXNYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNBdUxpNWtkWEJzYVdOaGRHVkZiR1Z0Wlc1MGN5aGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXBMRnh1SUNBZ0lDQWdZMjl0YldsMFZHOUlhWE4wYjNKNU9pQjBjblZsTEZ4dUlDQWdJSDA3WEc0Z0lIMHNYRzRnSUdOdmJuUmxlSFJKZEdWdFRHRmlaV3c2SUZ3aWJHRmlaV3h6TG1SMWNHeHBZMkYwWlZObGJHVmpkR2x2Ymx3aUxGeHVJQ0JyWlhsVVpYTjBPaUFvWlhabGJuUXBJRDArSUdWMlpXNTBXMHRGV1ZNdVExUlNURjlQVWw5RFRVUmRJQ1ltSUdWMlpXNTBMbXRsZVNBOVBUMGdTMFZaVXk1RUxGeHVJQ0JRWVc1bGJFTnZiWEJ2Ym1WdWREb2dLSHNnWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCMWNHUmhkR1ZFWVhSaElIMHBJRDArSUNoY2JpQWdJQ0E4Vkc5dmJFSjFkSFJ2Ymx4dUlDQWdJQ0FnZEhsd1pUMWNJbUoxZEhSdmJsd2lYRzRnSUNBZ0lDQnBZMjl1UFh0amJHOXVaWDFjYmlBZ0lDQWdJSFJwZEd4bFBYdGdKSHQwS0Z3aWJHRmlaV3h6TG1SMWNHeHBZMkYwWlZObGJHVmpkR2x2Ymx3aUtYMGc0b0NVSUNSN1oyVjBVMmh2Y25SamRYUkxaWGtvWEc0Z0lDQWdJQ0FnSUZ3aVEzUnliRTl5UTIxa0swUmNJaXhjYmlBZ0lDQWdJQ2w5WUgxY2JpQWdJQ0FnSUdGeWFXRXRiR0ZpWld3OWUzUW9YQ0pzWVdKbGJITXVaSFZ3YkdsallYUmxVMlZzWldOMGFXOXVYQ0lwZlZ4dUlDQWdJQ0FnYjI1RGJHbGphejE3S0NrZ1BUNGdkWEJrWVhSbFJHRjBZU2h1ZFd4c0tYMWNiaUFnSUNBZ0lIWnBjMmxpYkdVOWUybHpVMjl0WlVWc1pXMWxiblJUWld4bFkzUmxaQ2huWlhST2IyNUVaV3hsZEdWa1JXeGxiV1Z1ZEhNb1pXeGxiV1Z1ZEhNcExDQmhjSEJUZEdGMFpTbDlYRzRnSUNBZ0x6NWNiaUFnS1N4Y2JuMHBPMXh1WEc1amIyNXpkQ0JrZFhCc2FXTmhkR1ZGYkdWdFpXNTBjeUE5SUNoY2JpQWdaV3hsYldWdWRITTZJSEpsWVdSdmJteDVJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTBzWEc0Z0lHRndjRk4wWVhSbE9pQkJjSEJUZEdGMFpTeGNiaWs2SUZCaGNuUnBZV3c4UVdOMGFXOXVVbVZ6ZFd4MFBpQTlQaUI3WEc0Z0lHTnZibk4wSUdkeWIzVndTV1JOWVhBZ1BTQnVaWGNnVFdGd0tDazdYRzRnSUdOdmJuTjBJRzVsZDBWc1pXMWxiblJ6T2lCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZElEMGdXMTA3WEc0Z0lHTnZibk4wSUc5c1pFVnNaVzFsYm5Sek9pQkZlR05oYkdsa2NtRjNSV3hsYldWdWRGdGRJRDBnVzEwN1hHNGdJR052Ym5OMElHOXNaRWxrVkc5RWRYQnNhV05oZEdWa1NXUWdQU0J1WlhjZ1RXRndLQ2s3WEc1Y2JpQWdZMjl1YzNRZ1pIVndiR2xqWVhSbFFXNWtUMlptYzJWMFJXeGxiV1Z1ZENBOUlDaGxiR1Z0Wlc1ME9pQkZlR05oYkdsa2NtRjNSV3hsYldWdWRDa2dQVDRnZTF4dUlDQWdJR052Ym5OMElHNWxkMFZzWlcxbGJuUWdQU0JrZFhCc2FXTmhkR1ZGYkdWdFpXNTBLRnh1SUNBZ0lDQWdZWEJ3VTNSaGRHVXVaV1JwZEdsdVowZHliM1Z3U1dRc1hHNGdJQ0FnSUNCbmNtOTFjRWxrVFdGd0xGeHVJQ0FnSUNBZ1pXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ2VEb2daV3hsYldWdWRDNTRJQ3NnUjFKSlJGOVRTVnBGSUM4Z01peGNiaUFnSUNBZ0lDQWdlVG9nWld4bGJXVnVkQzU1SUNzZ1IxSkpSRjlUU1ZwRklDOGdNaXhjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdLVHRjYmlBZ0lDQnZiR1JKWkZSdlJIVndiR2xqWVhSbFpFbGtMbk5sZENobGJHVnRaVzUwTG1sa0xDQnVaWGRGYkdWdFpXNTBMbWxrS1R0Y2JpQWdJQ0J2YkdSRmJHVnRaVzUwY3k1d2RYTm9LR1ZzWlcxbGJuUXBPMXh1SUNBZ0lHNWxkMFZzWlcxbGJuUnpMbkIxYzJnb2JtVjNSV3hsYldWdWRDazdYRzRnSUNBZ2NtVjBkWEp1SUc1bGQwVnNaVzFsYm5RN1hHNGdJSDA3WEc1Y2JpQWdZMjl1YzNRZ1ptbHVZV3hGYkdWdFpXNTBjem9nUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFNBOUlGdGRPMXh1WEc0Z0lHeGxkQ0JwYm1SbGVDQTlJREE3WEc0Z0lHTnZibk4wSUhObGJHVmpkR1ZrUld4bGJXVnVkRWxrY3lBOUlHRnljbUY1Vkc5TllYQW9YRzRnSUNBZ1oyVjBVMlZzWldOMFpXUkZiR1Z0Wlc1MGN5aGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXNJSFJ5ZFdVcExGeHVJQ0FwTzF4dUlDQjNhR2xzWlNBb2FXNWtaWGdnUENCbGJHVnRaVzUwY3k1c1pXNW5kR2dwSUh0Y2JpQWdJQ0JqYjI1emRDQmxiR1Z0Wlc1MElEMGdaV3hsYldWdWRITmJhVzVrWlhoZE8xeHVJQ0FnSUdsbUlDaHpaV3hsWTNSbFpFVnNaVzFsYm5SSlpITXVaMlYwS0dWc1pXMWxiblF1YVdRcEtTQjdYRzRnSUNBZ0lDQnBaaUFvWld4bGJXVnVkQzVuY205MWNFbGtjeTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaM0p2ZFhCSlpDQTlJR2RsZEZObGJHVmpkR1ZrUjNKdmRYQkdiM0pGYkdWdFpXNTBLR0Z3Y0ZOMFlYUmxMQ0JsYkdWdFpXNTBLVHRjYmlBZ0lDQWdJQ0FnTHk4Z2FXWWdaM0p2ZFhBZ2MyVnNaV04wWldRc0lHUjFjR3hwWTJGMFpTQnBkQ0JoZEc5dGFXTmhiR3g1WEc0Z0lDQWdJQ0FnSUdsbUlDaG5jbTkxY0Vsa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdaM0p2ZFhCRmJHVnRaVzUwY3lBOUlHZGxkRVZzWlcxbGJuUnpTVzVIY205MWNDaGxiR1Z0Wlc1MGN5d2daM0p2ZFhCSlpDazdYRzRnSUNBZ0lDQWdJQ0FnWm1sdVlXeEZiR1Z0Wlc1MGN5NXdkWE5vS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdMaTR1WjNKdmRYQkZiR1Z0Wlc1MGN5eGNiaUFnSUNBZ0lDQWdJQ0FnSUM0dUxtZHliM1Z3Uld4bGJXVnVkSE11YldGd0tDaGxiR1Z0Wlc1MEtTQTlQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmtkWEJzYVdOaGRHVkJibVJQWm1aelpYUkZiR1Z0Wlc1MEtHVnNaVzFsYm5RcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUdsdVpHVjRJRDBnYVc1a1pYZ2dLeUJuY205MWNFVnNaVzFsYm5SekxteGxibWQwYUR0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdabWx1WVd4RmJHVnRaVzUwY3k1d2RYTm9LR1ZzWlcxbGJuUXNJR1IxY0d4cFkyRjBaVUZ1WkU5bVpuTmxkRVZzWlcxbGJuUW9aV3hsYldWdWRDa3BPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCbWFXNWhiRVZzWlcxbGJuUnpMbkIxYzJnb1pXeGxiV1Z1ZENrN1hHNGdJQ0FnZlZ4dUlDQWdJR2x1WkdWNEt5czdYRzRnSUgxY2JpQWdZbWx1WkZSbGVIUlViMU5vWVhCbFFXWjBaWEpFZFhCc2FXTmhkR2x2YmloY2JpQWdJQ0JtYVc1aGJFVnNaVzFsYm5SekxGeHVJQ0FnSUc5c1pFVnNaVzFsYm5SekxGeHVJQ0FnSUc5c1pFbGtWRzlFZFhCc2FXTmhkR1ZrU1dRc1hHNGdJQ2s3WEc0Z0lHWnBlRUpwYm1ScGJtZHpRV1owWlhKRWRYQnNhV05oZEdsdmJpaG1hVzVoYkVWc1pXMWxiblJ6TENCdmJHUkZiR1Z0Wlc1MGN5d2diMnhrU1dSVWIwUjFjR3hwWTJGMFpXUkpaQ2s3WEc1Y2JpQWdjbVYwZFhKdUlIdGNiaUFnSUNCbGJHVnRaVzUwY3pvZ1ptbHVZV3hGYkdWdFpXNTBjeXhjYmlBZ0lDQmhjSEJUZEdGMFpUb2djMlZzWldOMFIzSnZkWEJ6Um05eVUyVnNaV04wWldSRmJHVnRaVzUwY3loY2JpQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0xpNHVZWEJ3VTNSaGRHVXNYRzRnSUNBZ0lDQWdJSE5sYkdWamRHVmtSM0p2ZFhCSlpITTZJSHQ5TEZ4dUlDQWdJQ0FnSUNCelpXeGxZM1JsWkVWc1pXMWxiblJKWkhNNklHNWxkMFZzWlcxbGJuUnpMbkpsWkhWalpTZ29ZV05qTENCbGJHVnRaVzUwS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tDRnBjMEp2ZFc1a1ZHOURiMjUwWVdsdVpYSW9aV3hsYldWdWRDa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHRmpZMXRsYkdWdFpXNTBMbWxrWFNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmhZMk03WEc0Z0lDQWdJQ0FnSUgwc0lIdDlJR0Z6SUdGdWVTa3NYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdaMlYwVG05dVJHVnNaWFJsWkVWc1pXMWxiblJ6S0dacGJtRnNSV3hsYldWdWRITXBMRnh1SUNBZ0lDa3NYRzRnSUgwN1hHNTlPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9hY3Rpb25zL2FjdGlvbkR1cGxpY2F0ZVNlbGVjdGlvbi50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2FjdGlvbnMvYWN0aW9uRXhwb3J0LnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vYWN0aW9ucy9hY3Rpb25FeHBvcnQudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ2hhbmdlUHJvamVjdE5hbWVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25DaGFuZ2VQcm9qZWN0TmFtZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ2hhbmdlRXhwb3J0U2NhbGVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25DaGFuZ2VFeHBvcnRTY2FsZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ2hhbmdlRXhwb3J0QmFja2dyb3VuZFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvbkNoYW5nZUV4cG9ydEJhY2tncm91bmQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNoYW5nZUV4cG9ydEVtYmVkU2NlbmVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25DaGFuZ2VFeHBvcnRFbWJlZFNjZW5lKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25TYXZlVG9BY3RpdmVGaWxlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uU2F2ZVRvQWN0aXZlRmlsZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uU2F2ZUZpbGVUb0Rpc2tcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25TYXZlRmlsZVRvRGlzayksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uTG9hZFNjZW5lXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uTG9hZFNjZW5lKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25FeHBvcnRXaXRoRGFya01vZGVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25FeHBvcnRXaXRoRGFya01vZGUpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hbmFseXRpY3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2FuYWx5dGljcyAqLyBcXFwiLi4vLi4vYW5hbHl0aWNzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL2ljb25zICovIFxcXCIuLi8uLi9jb21wb25lbnRzL2ljb25zLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29tcG9uZW50c19Qcm9qZWN0TmFtZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29tcG9uZW50cy9Qcm9qZWN0TmFtZSAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Qcm9qZWN0TmFtZS50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1Rvb2xCdXR0b24udHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX1Rvb2xJY29uX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbXBvbmVudHMvVG9vbEljb24uc2NzcyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Ub29sSWNvbi5zY3NzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX1Rvb2xJY29uX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfY29tcG9uZW50c19Ub29sSWNvbl9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29tcG9uZW50c19Ub29sdGlwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL1Rvb2x0aXAgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVG9vbHRpcC50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfRGFya01vZGVUb2dnbGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbXBvbmVudHMvRGFya01vZGVUb2dnbGUgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvRGFya01vZGVUb2dnbGUudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9kYXRhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9kYXRhICovIFxcXCIuLi8uLi9kYXRhL2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9kYXRhX3Jlc2F2ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZGF0YS9yZXNhdmUgKi8gXFxcIi4uLy4uL2RhdGEvcmVzYXZlLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29tcG9uZW50c19BcHBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL0FwcCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9BcHAudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4va2V5cyAqLyBcXFwiLi4vLi4va2V5cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3JlZ2lzdGVyICovIFxcXCIuLi8uLi9hY3Rpb25zL3JlZ2lzdGVyLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX0NoZWNrYm94SXRlbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbXBvbmVudHMvQ2hlY2tib3hJdGVtICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0NoZWNrYm94SXRlbS50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX2V4cG9ydF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lL2V4cG9ydCAqLyBcXFwiLi4vLi4vc2NlbmUvZXhwb3J0LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE3X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZSAqLyBcXFwiLi4vLi4vc2NlbmUvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE4X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX0FjdGl2ZUZpbGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE5X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL0FjdGl2ZUZpbGUgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvQWN0aXZlRmlsZS50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2RhdGFfYmxvYl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2RhdGEvYmxvYiAqLyBcXFwiLi4vLi4vZGF0YS9ibG9iLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9kYXRhX2ZpbGVzeXN0ZW1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIxX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9kYXRhL2ZpbGVzeXN0ZW0gKi8gXFxcIi4uLy4uL2RhdGEvZmlsZXN5c3RlbS50c1xcXCIpO1xcbnZhciBfX2F3YWl0ZXIgPSAodW5kZWZpbmVkICYmIHVuZGVmaW5lZC5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XFxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXFxcInRocm93XFxcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcXG4gICAgfSk7XFxufTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBhY3Rpb25DaGFuZ2VQcm9qZWN0TmFtZSA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiY2hhbmdlUHJvamVjdE5hbWVcXFwiLFxcbiAgICBwZXJmb3JtOiAoX2VsZW1lbnRzLCBhcHBTdGF0ZSwgdmFsdWUpID0+IHtcXG4gICAgICAgICgwLF9hbmFseXRpY3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50cmFja0V2ZW50KShcXFwiY2hhbmdlXFxcIiwgXFxcInRpdGxlXFxcIik7XFxuICAgICAgICByZXR1cm4geyBhcHBTdGF0ZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhcHBTdGF0ZSksIHsgbmFtZTogdmFsdWUgfSksIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UgfTtcXG4gICAgfSxcXG4gICAgUGFuZWxDb21wb25lbnQ6ICh7IGFwcFN0YXRlLCB1cGRhdGVEYXRhLCBhcHBQcm9wcyB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX1Byb2plY3ROYW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uUHJvamVjdE5hbWUsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMuZmlsZVRpdGxlXFxcIiksIHZhbHVlOiBhcHBTdGF0ZS5uYW1lIHx8IFxcXCJVbm5hbWVkXFxcIiwgb25DaGFuZ2U6IChuYW1lKSA9PiB1cGRhdGVEYXRhKG5hbWUpLCBpc05hbWVFZGl0YWJsZTogdHlwZW9mIGFwcFByb3BzLm5hbWUgPT09IFxcXCJ1bmRlZmluZWRcXFwiICYmICFhcHBTdGF0ZS52aWV3TW9kZUVuYWJsZWQgfSwgdm9pZCAwKSksXFxufSk7XFxuY29uc3QgYWN0aW9uQ2hhbmdlRXhwb3J0U2NhbGUgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImNoYW5nZUV4cG9ydFNjYWxlXFxcIixcXG4gICAgcGVyZm9ybTogKF9lbGVtZW50cywgYXBwU3RhdGUsIHZhbHVlKSA9PiB7XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBleHBvcnRTY2FsZTogdmFsdWUgfSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyBlbGVtZW50czogYWxsRWxlbWVudHMsIGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+IHtcXG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE4X18uZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKShhbGxFbGVtZW50cyk7XFxuICAgICAgICBjb25zdCBleHBvcnRTZWxlY3RlZCA9ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5pc1NvbWVFbGVtZW50U2VsZWN0ZWQpKGVsZW1lbnRzLCBhcHBTdGF0ZSk7XFxuICAgICAgICBjb25zdCBleHBvcnRlZEVsZW1lbnRzID0gZXhwb3J0U2VsZWN0ZWRcXG4gICAgICAgICAgICA/ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5nZXRTZWxlY3RlZEVsZW1lbnRzKShlbGVtZW50cywgYXBwU3RhdGUpXFxuICAgICAgICAgICAgOiBlbGVtZW50cztcXG4gICAgICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uRVhQT1JUX1NDQUxFUy5tYXAoKHMpID0+IHtcXG4gICAgICAgICAgICAgICAgY29uc3QgW3dpZHRoLCBoZWlnaHRdID0gKDAsX3NjZW5lX2V4cG9ydF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXy5nZXRFeHBvcnRTaXplKShleHBvcnRlZEVsZW1lbnRzLCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLkRFRkFVTFRfRVhQT1JUX1BBRERJTkcsIHMpO1xcbiAgICAgICAgICAgICAgICBjb25zdCBzY2FsZUJ1dHRvblRpdGxlID0gYCR7KDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImJ1dHRvbnMuc2NhbGVcXFwiKX0gJHtzfXggKCR7d2lkdGh9eCR7aGVpZ2h0fSlgO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uVG9vbEJ1dHRvbiwgeyBzaXplOiBcXFwic21hbGxcXFwiLCB0eXBlOiBcXFwicmFkaW9cXFwiLCBpY29uOiBgJHtzfXhgLCBuYW1lOiBcXFwiZXhwb3J0LWNhbnZhcy1zY2FsZVxcXCIsIHRpdGxlOiBzY2FsZUJ1dHRvblRpdGxlLCBcXFwiYXJpYS1sYWJlbFxcXCI6IHNjYWxlQnV0dG9uVGl0bGUsIGlkOiBcXFwiZXhwb3J0LWNhbnZhcy1zY2FsZVxcXCIsIGNoZWNrZWQ6IHMgPT09IGFwcFN0YXRlLmV4cG9ydFNjYWxlLCBvbkNoYW5nZTogKCkgPT4gdXBkYXRlRGF0YShzKSB9LCBzKSk7XFxuICAgICAgICAgICAgfSkgfSwgdm9pZCAwKSk7XFxuICAgIH0sXFxufSk7XFxuY29uc3QgYWN0aW9uQ2hhbmdlRXhwb3J0QmFja2dyb3VuZCA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiY2hhbmdlRXhwb3J0QmFja2dyb3VuZFxcXCIsXFxuICAgIHBlcmZvcm06IChfZWxlbWVudHMsIGFwcFN0YXRlLCB2YWx1ZSkgPT4ge1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBhcHBTdGF0ZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhcHBTdGF0ZSksIHsgZXhwb3J0QmFja2dyb3VuZDogdmFsdWUgfSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyBhcHBTdGF0ZSwgdXBkYXRlRGF0YSB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX0NoZWNrYm94SXRlbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy5DaGVja2JveEl0ZW0sIE9iamVjdC5hc3NpZ24oeyBjaGVja2VkOiBhcHBTdGF0ZS5leHBvcnRCYWNrZ3JvdW5kLCBvbkNoYW5nZTogKGNoZWNrZWQpID0+IHVwZGF0ZURhdGEoY2hlY2tlZCkgfSwgeyBjaGlsZHJlbjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy53aXRoQmFja2dyb3VuZFxcXCIpIH0pLCB2b2lkIDApKSxcXG59KTtcXG5jb25zdCBhY3Rpb25DaGFuZ2VFeHBvcnRFbWJlZFNjZW5lID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJjaGFuZ2VFeHBvcnRFbWJlZFNjZW5lXFxcIixcXG4gICAgcGVyZm9ybTogKF9lbGVtZW50cywgYXBwU3RhdGUsIHZhbHVlKSA9PiB7XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBleHBvcnRFbWJlZFNjZW5lOiB2YWx1ZSB9KSxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IGZhbHNlLFxcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAgUGFuZWxDb21wb25lbnQ6ICh7IGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKF9jb21wb25lbnRzX0NoZWNrYm94SXRlbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy5DaGVja2JveEl0ZW0sIE9iamVjdC5hc3NpZ24oeyBjaGVja2VkOiBhcHBTdGF0ZS5leHBvcnRFbWJlZFNjZW5lLCBvbkNoYW5nZTogKGNoZWNrZWQpID0+IHVwZGF0ZURhdGEoY2hlY2tlZCkgfSwgeyBjaGlsZHJlbjogWygwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMuZXhwb3J0RW1iZWRTY2VuZVxcXCIpLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfVG9vbHRpcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLlRvb2x0aXAsIE9iamVjdC5hc3NpZ24oeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5leHBvcnRFbWJlZFNjZW5lX2RldGFpbHNcXFwiKSwgbG9uZzogdHJ1ZSB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJleGNhbGlkcmF3LXRvb2x0aXAtaWNvblxcXCIgfSwgeyBjaGlsZHJlbjogX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5xdWVzdGlvbkNpcmNsZSB9KSwgdm9pZCAwKSB9KSwgdm9pZCAwKV0gfSksIHZvaWQgMCkpLFxcbn0pO1xcbmNvbnN0IGFjdGlvblNhdmVUb0FjdGl2ZUZpbGUgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcInNhdmVUb0FjdGl2ZUZpbGVcXFwiLFxcbiAgICBwZXJmb3JtOiAoZWxlbWVudHMsIGFwcFN0YXRlLCB2YWx1ZSwgYXBwKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgICAgIGNvbnN0IGZpbGVIYW5kbGVFeGlzdHMgPSAhIWFwcFN0YXRlLmZpbGVIYW5kbGU7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIGNvbnN0IHsgZmlsZUhhbmRsZSB9ID0gKDAsX2RhdGFfYmxvYl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjBfXy5pc0ltYWdlRmlsZUhhbmRsZSkoYXBwU3RhdGUuZmlsZUhhbmRsZSlcXG4gICAgICAgICAgICAgICAgPyB5aWVsZCAoMCxfZGF0YV9yZXNhdmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5yZXNhdmVBc0ltYWdlV2l0aFNjZW5lKShlbGVtZW50cywgYXBwU3RhdGUsIGFwcC5maWxlcylcXG4gICAgICAgICAgICAgICAgOiB5aWVsZCAoMCxfZGF0YV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLnNhdmVBc0pTT04pKGVsZW1lbnRzLCBhcHBTdGF0ZSwgYXBwLmZpbGVzKTtcXG4gICAgICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IGZhbHNlLFxcbiAgICAgICAgICAgICAgICBhcHBTdGF0ZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhcHBTdGF0ZSksIHsgZmlsZUhhbmRsZSwgdG9hc3RNZXNzYWdlOiBmaWxlSGFuZGxlRXhpc3RzXFxuICAgICAgICAgICAgICAgICAgICAgICAgPyAoZmlsZUhhbmRsZSA9PT0gbnVsbCB8fCBmaWxlSGFuZGxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaWxlSGFuZGxlLm5hbWUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcInRvYXN0LmZpbGVTYXZlZFRvRmlsZW5hbWVcXFwiKS5yZXBsYWNlKFxcXCJ7ZmlsZW5hbWV9XFxcIiwgYFxcXCIke2ZpbGVIYW5kbGUubmFtZX1cXFwiYClcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwidG9hc3QuZmlsZVNhdmVkXFxcIilcXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG51bGwgfSksXFxuICAgICAgICAgICAgfTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgICAgIGlmICgoZXJyb3IgPT09IG51bGwgfHwgZXJyb3IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVycm9yLm5hbWUpICE9PSBcXFwiQWJvcnRFcnJvclxcXCIpIHtcXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyb3IpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZXR1cm4geyBjb21taXRUb0hpc3Rvcnk6IGZhbHNlIH07XFxuICAgICAgICB9XFxuICAgIH0pLFxcbiAgICBrZXlUZXN0OiAoZXZlbnQpID0+IGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uS0VZUy5TICYmIGV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fLktFWVMuQ1RSTF9PUl9DTURdICYmICFldmVudC5zaGlmdEtleSxcXG4gICAgUGFuZWxDb21wb25lbnQ6ICh7IHVwZGF0ZURhdGEsIGFwcFN0YXRlIH0pID0+IHtcXG4gICAgICAgIHZhciBfYTtcXG4gICAgICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX0FjdGl2ZUZpbGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE5X18uQWN0aXZlRmlsZSwgeyBvblNhdmU6ICgpID0+IHVwZGF0ZURhdGEobnVsbCksIGZpbGVOYW1lOiAoX2EgPSBhcHBTdGF0ZS5maWxlSGFuZGxlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubmFtZSB9LCB2b2lkIDApKTtcXG4gICAgfSxcXG59KTtcXG5jb25zdCBhY3Rpb25TYXZlRmlsZVRvRGlzayA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwic2F2ZUZpbGVUb0Rpc2tcXFwiLFxcbiAgICBwZXJmb3JtOiAoZWxlbWVudHMsIGFwcFN0YXRlLCB2YWx1ZSwgYXBwKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgY29uc3QgeyBmaWxlSGFuZGxlIH0gPSB5aWVsZCAoMCxfZGF0YV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLnNhdmVBc0pTT04pKGVsZW1lbnRzLCBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBmaWxlSGFuZGxlOiBudWxsIH0pLCBhcHAuZmlsZXMpO1xcbiAgICAgICAgICAgIHJldHVybiB7IGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBmaWxlSGFuZGxlIH0pIH07XFxuICAgICAgICB9XFxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcXG4gICAgICAgICAgICBpZiAoKGVycm9yID09PSBudWxsIHx8IGVycm9yID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnJvci5uYW1lKSAhPT0gXFxcIkFib3J0RXJyb3JcXFwiKSB7XFxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGVycm9yKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIHsgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSB9O1xcbiAgICAgICAgfVxcbiAgICB9KSxcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiBldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fLktFWVMuUyAmJiBldmVudC5zaGlmdEtleSAmJiBldmVudFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5LRVlTLkNUUkxfT1JfQ01EXSxcXG4gICAgUGFuZWxDb21wb25lbnQ6ICh7IHVwZGF0ZURhdGEgfSkgPT4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uVG9vbEJ1dHRvbiwgeyB0eXBlOiBcXFwiYnV0dG9uXFxcIiwgaWNvbjogX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5zYXZlQXMsIHRpdGxlOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwiYnV0dG9ucy5zYXZlQXNcXFwiKSwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwiYnV0dG9ucy5zYXZlQXNcXFwiKSwgc2hvd0FyaWFMYWJlbDogKDAsX2NvbXBvbmVudHNfQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLnVzZUlzTW9iaWxlKSgpLCBoaWRkZW46ICFfZGF0YV9maWxlc3lzdGVtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMV9fLm5hdGl2ZUZpbGVTeXN0ZW1TdXBwb3J0ZWQsIG9uQ2xpY2s6ICgpID0+IHVwZGF0ZURhdGEobnVsbCksIFxcXCJkYXRhLXRlc3RpZFxcXCI6IFxcXCJzYXZlLWFzLWJ1dHRvblxcXCIgfSwgdm9pZCAwKSksXFxufSk7XFxuY29uc3QgYWN0aW9uTG9hZFNjZW5lID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJsb2FkU2NlbmVcXFwiLFxcbiAgICBwZXJmb3JtOiAoZWxlbWVudHMsIGFwcFN0YXRlLCBfLCBhcHApID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICBjb25zdCB7IGVsZW1lbnRzOiBsb2FkZWRFbGVtZW50cywgYXBwU3RhdGU6IGxvYWRlZEFwcFN0YXRlLCBmaWxlcywgfSA9IHlpZWxkICgwLF9kYXRhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18ubG9hZEZyb21KU09OKShhcHBTdGF0ZSwgZWxlbWVudHMpO1xcbiAgICAgICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgICAgIGVsZW1lbnRzOiBsb2FkZWRFbGVtZW50cyxcXG4gICAgICAgICAgICAgICAgYXBwU3RhdGU6IGxvYWRlZEFwcFN0YXRlLFxcbiAgICAgICAgICAgICAgICBmaWxlcyxcXG4gICAgICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiB0cnVlLFxcbiAgICAgICAgICAgIH07XFxuICAgICAgICB9XFxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcXG4gICAgICAgICAgICBpZiAoKGVycm9yID09PSBudWxsIHx8IGVycm9yID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnJvci5uYW1lKSA9PT0gXFxcIkFib3J0RXJyb3JcXFwiKSB7XFxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihlcnJvcik7XFxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgZWxlbWVudHMsXFxuICAgICAgICAgICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBlcnJvck1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UgfSksXFxuICAgICAgICAgICAgICAgIGZpbGVzOiBhcHAuZmlsZXMsXFxuICAgICAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXFxuICAgICAgICAgICAgfTtcXG4gICAgICAgIH1cXG4gICAgfSksXFxuICAgIGtleVRlc3Q6IChldmVudCkgPT4gZXZlbnRbX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uS0VZUy5DVFJMX09SX0NNRF0gJiYgZXZlbnQua2V5ID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5LRVlTLk8sXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyB1cGRhdGVEYXRhLCBhcHBTdGF0ZSB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5Ub29sQnV0dG9uLCB7IHR5cGU6IFxcXCJidXR0b25cXFwiLCBpY29uOiBfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmxvYWQsIHRpdGxlOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwiYnV0dG9ucy5sb2FkXFxcIiksIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImJ1dHRvbnMubG9hZFxcXCIpLCBzaG93QXJpYUxhYmVsOiAoMCxfY29tcG9uZW50c19BcHBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18udXNlSXNNb2JpbGUpKCksIG9uQ2xpY2s6IHVwZGF0ZURhdGEsIFxcXCJkYXRhLXRlc3RpZFxcXCI6IFxcXCJsb2FkLWJ1dHRvblxcXCIgfSwgdm9pZCAwKSksXFxufSk7XFxuY29uc3QgYWN0aW9uRXhwb3J0V2l0aERhcmtNb2RlID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJleHBvcnRXaXRoRGFya01vZGVcXFwiLFxcbiAgICBwZXJmb3JtOiAoX2VsZW1lbnRzLCBhcHBTdGF0ZSwgdmFsdWUpID0+IHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB7IGV4cG9ydFdpdGhEYXJrTW9kZTogdmFsdWUgfSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyBhcHBTdGF0ZSwgdXBkYXRlRGF0YSB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgc3R5bGU6IHtcXG4gICAgICAgICAgICBkaXNwbGF5OiBcXFwiZmxleFxcXCIsXFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFxcXCJmbGV4LWVuZFxcXCIsXFxuICAgICAgICAgICAgbWFyZ2luVG9wOiBcXFwiLTQ1cHhcXFwiLFxcbiAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogXFxcIjEwcHhcXFwiLFxcbiAgICAgICAgfSB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfRGFya01vZGVUb2dnbGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5EYXJrTW9kZVRvZ2dsZSwgeyB2YWx1ZTogYXBwU3RhdGUuZXhwb3J0V2l0aERhcmtNb2RlID8gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5USEVNRS5EQVJLIDogX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5USEVNRS5MSUdIVCwgb25DaGFuZ2U6ICh0aGVtZSkgPT4ge1xcbiAgICAgICAgICAgICAgICB1cGRhdGVEYXRhKHRoZW1lID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLlRIRU1FLkRBUkspO1xcbiAgICAgICAgICAgIH0sIHRpdGxlOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwibGFiZWxzLnRvZ2dsZUV4cG9ydENvbG9yU2NoZW1lXFxcIikgfSwgdm9pZCAwKSB9KSwgdm9pZCAwKSksXFxufSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZV04wYVc5dWN5OWhZM1JwYjI1RmVIQnZjblF1ZEhONExtcHpJaXdpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3TzBGQlFUQkRPMEZCUTNsQ08wRkJRMWc3UVVGRFJqdEJRVU5xUWp0QlFVTlhPMEZCUTJNN1FVRkRXRHRCUVVOTE8wRkJRelZDTzBGQlEyOUNPMEZCUTJwQ08wRkJRMDg3UVVGRGIwSTdRVUZEVmp0QlFVTTBRanRCUVVOT08wRkJRMjVDTzBGQlEwYzdRVUZEVER0QlFVTmpPMEZCUjNoRUxFMUJRVTBzZFVKQlFYVkNMRWRCUVVjc2IwUkJRVkVzUTBGQlF6dEpRVU01UXl4SlFVRkpMRVZCUVVVc2JVSkJRVzFDTzBsQlEzcENMRTlCUVU4c1JVRkJSU3hEUVVGRExGTkJRVk1zUlVGQlJTeFJRVUZSTEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVN1VVRkRkRU1zYzBSQlFWVXNRMEZCUXl4UlFVRlJMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRE9VSXNUMEZCVHl4RlFVRkZMRkZCUVZFc2EwTkJRVThzVVVGQlVTeExRVUZGTEVsQlFVa3NSVUZCUlN4TFFVRkxMRWRCUVVVc1JVRkJSU3hsUVVGbExFVkJRVVVzUzBGQlN5eEZRVUZGTEVOQlFVTTdTVUZETlVVc1EwRkJRenRKUVVORUxHTkJRV01zUlVGQlJTeERRVUZETEVWQlFVVXNVVUZCVVN4RlFVRkZMRlZCUVZVc1JVRkJSU3hSUVVGUkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZEZEVRc2RVUkJRVU1zWjBWQlFWY3NTVUZEVml4TFFVRkxMRVZCUVVVc2VVTkJRVU1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhGUVVNMVFpeExRVUZMTEVWQlFVVXNVVUZCVVN4RFFVRkRMRWxCUVVrc1NVRkJTU3hUUVVGVExFVkJRMnBETEZGQlFWRXNSVUZCUlN4RFFVRkRMRWxCUVZrc1JVRkJSU3hGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVTTFReXhqUVVGakxFVkJRMW9zVDBGQlR5eFJRVUZSTEVOQlFVTXNTVUZCU1N4TFFVRkxMRmRCUVZjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eGxRVUZsTEZkQlJXNUZMRU5CUTBnN1EwRkRSaXhEUVVGRExFTkJRVU03UVVGRlNTeE5RVUZOTEhWQ1FVRjFRaXhIUVVGSExHOUVRVUZSTEVOQlFVTTdTVUZET1VNc1NVRkJTU3hGUVVGRkxHMUNRVUZ0UWp0SlFVTjZRaXhQUVVGUExFVkJRVVVzUTBGQlF5eFRRVUZUTEVWQlFVVXNVVUZCVVN4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRk8xRkJRM1JETEU5QlFVODdXVUZEVEN4UlFVRlJMR3REUVVGUExGRkJRVkVzUzBGQlJTeFhRVUZYTEVWQlFVVXNTMEZCU3l4SFFVRkZPMWxCUXpkRExHVkJRV1VzUlVGQlJTeExRVUZMTzFOQlEzWkNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJRMFFzWTBGQll5eEZRVUZGTEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVVc1YwRkJWeXhGUVVGRkxGRkJRVkVzUlVGQlJTeFZRVUZWTEVWQlFVVXNSVUZCUlN4RlFVRkZPMUZCUTJ4RkxFMUJRVTBzVVVGQlVTeEhRVUZITEdkRlFVRnhRaXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzFGQlEzQkVMRTFCUVUwc1kwRkJZeXhIUVVGSExEaEVRVUZ4UWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU5xUlN4TlFVRk5MR2RDUVVGblFpeEhRVUZITEdOQlFXTTdXVUZEY2tNc1EwRkJReXhEUVVGRExEUkVRVUZ0UWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFTkJRVU03V1VGRGVrTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJRenRSUVVWaUxFOUJRVThzUTBGRFRDdzBTRUZEUnl3d1JFRkJhVUlzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVOMlFpeE5RVUZOTEVOQlFVTXNTMEZCU3l4RlFVRkZMRTFCUVUwc1EwRkJReXhIUVVGSExEWkVRVUZoTEVOQlEyNURMR2RDUVVGblFpeEZRVU5vUWl3clJFRkJjMElzUlVGRGRFSXNRMEZCUXl4RFFVTkdMRU5CUVVNN1owSkJSVVlzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhIUVVGSExIbERRVUZETEVOQlF6TkNMR1ZCUVdVc1EwRkRhRUlzU1VGQlNTeERRVUZETEUxQlFVMHNTMEZCU3l4SlFVRkpMRTFCUVUwc1IwRkJSeXhEUVVGRE8yZENRVVV2UWl4UFFVRlBMRU5CUTB3c2RVUkJRVU1zT0VSQlFWVXNTVUZGVkN4SlFVRkpMRVZCUVVNc1QwRkJUeXhGUVVOYUxFbEJRVWtzUlVGQlF5eFBRVUZQTEVWQlExb3NTVUZCU1N4RlFVRkZMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRMklzU1VGQlNTeEZRVUZETEhGQ1FVRnhRaXhGUVVNeFFpeExRVUZMTEVWQlFVVXNaMEpCUVdkQ0xHZENRVU5ZTEdkQ1FVRm5RaXhGUVVNMVFpeEZRVUZGTEVWQlFVTXNjVUpCUVhGQ0xFVkJRM2hDTEU5QlFVOHNSVUZCUlN4RFFVRkRMRXRCUVVzc1VVRkJVU3hEUVVGRExGZEJRVmNzUlVGRGJrTXNVVUZCVVN4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZVZUVJc1EwRkJReXhEUVZWT0xFTkJRMGdzUTBGQlF6dFpRVU5LTEVOQlFVTXNRMEZCUXl4WFFVTkVMRU5CUTBvc1EwRkJRenRKUVVOS0xFTkJRVU03UTBGRFJpeERRVUZETEVOQlFVTTdRVUZGU1N4TlFVRk5MRFJDUVVFMFFpeEhRVUZITEc5RVFVRlJMRU5CUVVNN1NVRkRia1FzU1VGQlNTeEZRVUZGTEhkQ1FVRjNRanRKUVVNNVFpeFBRVUZQTEVWQlFVVXNRMEZCUXl4VFFVRlRMRVZCUVVVc1VVRkJVU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTzFGQlEzUkRMRTlCUVU4N1dVRkRUQ3hSUVVGUkxHdERRVUZQTEZGQlFWRXNTMEZCUlN4blFrRkJaMElzUlVGQlJTeExRVUZMTEVkQlFVVTdXVUZEYkVRc1pVRkJaU3hGUVVGRkxFdEJRVXM3VTBGRGRrSXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkRSQ3hqUVVGakxFVkJRVVVzUTBGQlF5eEZRVUZGTEZGQlFWRXNSVUZCUlN4VlFVRlZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGRE5VTXNkVVJCUVVNc2JVVkJRVmtzYTBKQlExZ3NUMEZCVHl4RlFVRkZMRkZCUVZFc1EwRkJReXhuUWtGQlowSXNSVUZEYkVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVGRExHZENRVVY2UXl4NVEwRkJReXhEUVVGRExIVkNRVUYxUWl4RFFVRkRMRmxCUTJRc1EwRkRhRUk3UTBGRFJpeERRVUZETEVOQlFVTTdRVUZGU1N4TlFVRk5MRFJDUVVFMFFpeEhRVUZITEc5RVFVRlJMRU5CUVVNN1NVRkRia1FzU1VGQlNTeEZRVUZGTEhkQ1FVRjNRanRKUVVNNVFpeFBRVUZQTEVWQlFVVXNRMEZCUXl4VFFVRlRMRVZCUVVVc1VVRkJVU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTzFGQlEzUkRMRTlCUVU4N1dVRkRUQ3hSUVVGUkxHdERRVUZQTEZGQlFWRXNTMEZCUlN4blFrRkJaMElzUlVGQlJTeExRVUZMTEVkQlFVVTdXVUZEYkVRc1pVRkJaU3hGUVVGRkxFdEJRVXM3VTBGRGRrSXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkRSQ3hqUVVGakxFVkJRVVVzUTBGQlF5eEZRVUZGTEZGQlFWRXNSVUZCUlN4VlFVRlZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGRE5VTXNkMFJCUVVNc2JVVkJRVmtzYTBKQlExZ3NUMEZCVHl4RlFVRkZMRkZCUVZFc1EwRkJReXhuUWtGQlowSXNSVUZEYkVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVGRExHbENRVVY2UXl4NVEwRkJReXhEUVVGRExIbENRVUY1UWl4RFFVRkRMRVZCUXpkQ0xIVkVRVUZETEhkRVFVRlBMR3RDUVVGRExFdEJRVXNzUlVGQlJTeDVRMEZCUXl4RFFVRkRMR2xEUVVGcFF5eERRVUZETEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1owSkJRemxFTERoRlFVRkxMRk5CUVZNc1JVRkJReXg1UWtGQmVVSXNaMEpCUVVVc05rUkJRV01zV1VGQlR5eFpRVU4yUkN4aFFVTkhMRU5CUTJoQ08wTkJRMFlzUTBGQlF5eERRVUZETzBGQlJVa3NUVUZCVFN4elFrRkJjMElzUjBGQlJ5eHZSRUZCVVN4RFFVRkRPMGxCUXpkRExFbEJRVWtzUlVGQlJTeHJRa0ZCYTBJN1NVRkRlRUlzVDBGQlR5eEZRVUZGTEVOQlFVOHNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hMUVVGTExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVWQlFVVTdVVUZEYUVRc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExGVkJRVlVzUTBGQlF6dFJRVVV2UXl4SlFVRkpPMWxCUTBZc1RVRkJUU3hGUVVGRkxGVkJRVlVzUlVGQlJTeEhRVUZITERoRVFVRnBRaXhEUVVGRExGRkJRVkVzUTBGQlF5eFZRVUZWTEVOQlFVTTdaMEpCUXpORUxFTkJRVU1zUTBGQlF5eE5RVUZOTEc5RlFVRnpRaXhEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJRenRuUWtGRE4wUXNRMEZCUXl4RFFVRkRMRTFCUVUwc2FVUkJRVlVzUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVVZ3UkN4UFFVRlBPMmRDUVVOTUxHVkJRV1VzUlVGQlJTeExRVUZMTzJkQ1FVTjBRaXhSUVVGUkxHdERRVU5JTEZGQlFWRXNTMEZEV0N4VlFVRlZMRVZCUTFZc1dVRkJXU3hGUVVGRkxHZENRVUZuUWp0M1FrRkROVUlzUTBGQlF5eERRVUZETEZkQlFWVXNZVUZCVml4VlFVRlZMSFZDUVVGV0xGVkJRVlVzUTBGQlJTeEpRVUZKT3pSQ1FVTm9RaXhEUVVGRExFTkJRVU1zZVVOQlFVTXNRMEZCUXl3eVFrRkJNa0lzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZEY0VNc1dVRkJXU3hGUVVOYUxFbEJRVWtzVlVGQlZTeERRVUZETEVsQlFVa3NSMEZCUnl4RFFVTjJRanMwUWtGRFNDeERRVUZETEVOQlFVTXNlVU5CUVVNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXp0M1FrRkRlRUlzUTBGQlF5eERRVUZETEVsQlFVa3NSMEZEVkR0aFFVTkdMRU5CUVVNN1UwRkRTRHRSUVVGRExFOUJRVThzUzBGQlZTeEZRVUZGTzFsQlEyNUNMRWxCUVVrc1RVRkJTeXhoUVVGTUxFdEJRVXNzZFVKQlFVd3NTMEZCU3l4RFFVRkZMRWxCUVVrc1RVRkJTeXhaUVVGWkxFVkJRVVU3WjBKQlEyaERMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdZVUZEZEVJN2FVSkJRVTA3WjBKQlEwd3NUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dGhRVU55UWp0WlFVTkVMRTlCUVU4c1JVRkJSU3hsUVVGbExFVkJRVVVzUzBGQlN5eEZRVUZGTEVOQlFVTTdVMEZEYmtNN1NVRkRTQ3hEUVVGRE8wbEJRMFFzVDBGQlR5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkRha0lzUzBGQlN5eERRVUZETEVkQlFVY3NTMEZCU3l3d1EwRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHZSRUZCWjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRTdTVUZEY0VVc1kwRkJZeXhGUVVGRkxFTkJRVU1zUlVGQlJTeFZRVUZWTEVWQlFVVXNVVUZCVVN4RlFVRkZMRVZCUVVVc1JVRkJSVHM3VVVGQlF5eFJRVU0xUXl4MVJFRkJReXdyUkVGQlZTeEpRVU5VTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlF6bENMRkZCUVZFc1JVRkJSU3hqUVVGUkxFTkJRVU1zVlVGQlZTd3dRMEZCUlN4SlFVRkpMRmRCUTI1RExFTkJRMGc3UzBGQlFUdERRVU5HTEVOQlFVTXNRMEZCUXp0QlFVVkpMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NiMFJCUVZFc1EwRkJRenRKUVVNelF5eEpRVUZKTEVWQlFVVXNaMEpCUVdkQ08wbEJRM1JDTEU5QlFVOHNSVUZCUlN4RFFVRlBMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMUZCUTJoRUxFbEJRVWs3V1VGRFJpeE5RVUZOTEVWQlFVVXNWVUZCVlN4RlFVRkZMRWRCUVVjc1RVRkJUU3hwUkVGQlZTeERRVU55UXl4UlFVRlJMR3REUVVWSUxGRkJRVkVzUzBGRFdDeFZRVUZWTEVWQlFVVXNTVUZCU1N4TFFVVnNRaXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVU5XTEVOQlFVTTdXVUZEUml4UFFVRlBMRVZCUVVVc1pVRkJaU3hGUVVGRkxFdEJRVXNzUlVGQlJTeFJRVUZSTEd0RFFVRlBMRkZCUVZFc1MwRkJSU3hWUVVGVkxFZEJRVVVzUlVGQlJTeERRVUZETzFOQlF6RkZPMUZCUVVNc1QwRkJUeXhMUVVGVkxFVkJRVVU3V1VGRGJrSXNTVUZCU1N4TlFVRkxMR0ZCUVV3c1MwRkJTeXgxUWtGQlRDeExRVUZMTEVOQlFVVXNTVUZCU1N4TlFVRkxMRmxCUVZrc1JVRkJSVHRuUWtGRGFFTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dGhRVU4wUWp0cFFrRkJUVHRuUWtGRFRDeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yRkJRM0pDTzFsQlEwUXNUMEZCVHl4RlFVRkZMR1ZCUVdVc1JVRkJSU3hMUVVGTExFVkJRVVVzUTBGQlF6dFRRVU51UXp0SlFVTklMRU5CUVVNN1NVRkRSQ3hQUVVGUExFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVTnFRaXhMUVVGTExFTkJRVU1zUjBGQlJ5eExRVUZMTERCRFFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExGRkJRVkVzU1VGQlNTeExRVUZMTEVOQlFVTXNiMFJCUVdkQ0xFTkJRVU03U1VGRGJrVXNZMEZCWXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hWUVVGVkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZEYkVNc2RVUkJRVU1zT0VSQlFWVXNTVUZEVkN4SlFVRkpMRVZCUVVNc1VVRkJVU3hGUVVOaUxFbEJRVWtzUlVGQlJTeHhSRUZCVFN4RlFVTmFMRXRCUVVzc1JVRkJSU3g1UTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExHZENRVU5rTEhsRFFVRkRMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNSVUZETDBJc1lVRkJZU3hGUVVGRkxEWkVRVUZYTEVWQlFVVXNSVUZETlVJc1RVRkJUU3hGUVVGRkxFTkJRVU1zZDBWQlFYbENMRVZCUTJ4RExFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExHbENRVU51UWl4blFrRkJaMElzVjBGRE5VSXNRMEZEU0R0RFFVTkdMRU5CUVVNc1EwRkJRenRCUVVWSkxFMUJRVTBzWlVGQlpTeEhRVUZITEc5RVFVRlJMRU5CUVVNN1NVRkRkRU1zU1VGQlNTeEZRVUZGTEZkQlFWYzdTVUZEYWtJc1QwRkJUeXhGUVVGRkxFTkJRVThzVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVU3VVVGRE5VTXNTVUZCU1R0WlFVTkdMRTFCUVUwc1JVRkRTaXhSUVVGUkxFVkJRVVVzWTBGQll5eEZRVU40UWl4UlFVRlJMRVZCUVVVc1kwRkJZeXhGUVVONFFpeExRVUZMTEVkQlEwNHNSMEZCUnl4TlFVRk5MRzFFUVVGWkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRPMWxCUXpORExFOUJRVTg3WjBKQlEwd3NVVUZCVVN4RlFVRkZMR05CUVdNN1owSkJRM2hDTEZGQlFWRXNSVUZCUlN4alFVRmpPMmRDUVVONFFpeExRVUZMTzJkQ1FVTk1MR1ZCUVdVc1JVRkJSU3hKUVVGSk8yRkJRM1JDTEVOQlFVTTdVMEZEU0R0UlFVRkRMRTlCUVU4c1MwRkJWU3hGUVVGRk8xbEJRMjVDTEVsQlFVa3NUVUZCU3l4aFFVRk1MRXRCUVVzc2RVSkJRVXdzUzBGQlN5eERRVUZGTEVsQlFVa3NUVUZCU3l4WlFVRlpMRVZCUVVVN1owSkJRMmhETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03WjBKQlEzQkNMRTlCUVU4c1MwRkJTeXhEUVVGRE8yRkJRMlE3V1VGRFJDeFBRVUZQTzJkQ1FVTk1MRkZCUVZFN1owSkJRMUlzVVVGQlVTeHJRMEZCVHl4UlFVRlJMRXRCUVVVc1dVRkJXU3hGUVVGRkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVkQlFVVTdaMEpCUTNSRUxFdEJRVXNzUlVGQlJTeEhRVUZITEVOQlFVTXNTMEZCU3p0blFrRkRhRUlzWlVGQlpTeEZRVUZGTEV0QlFVczdZVUZEZGtJc1EwRkJRenRUUVVOSU8wbEJRMGdzUTBGQlF6dEpRVU5FTEU5QlFVOHNSVUZCUlN4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEc5RVFVRm5RaXhEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZETEVkQlFVY3NTMEZCU3l3d1EwRkJUVHRKUVVOdVJTeGpRVUZqTEVWQlFVVXNRMEZCUXl4RlFVRkZMRlZCUVZVc1JVRkJSU3hSUVVGUkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZETlVNc2RVUkJRVU1zT0VSQlFWVXNTVUZEVkN4SlFVRkpMRVZCUVVNc1VVRkJVU3hGUVVOaUxFbEJRVWtzUlVGQlJTeHRSRUZCU1N4RlFVTldMRXRCUVVzc1JVRkJSU3g1UTBGQlF5eERRVUZETEdOQlFXTXNRMEZCUXl4blFrRkRXaXg1UTBGQlF5eERRVUZETEdOQlFXTXNRMEZCUXl4RlFVTTNRaXhoUVVGaExFVkJRVVVzTmtSQlFWY3NSVUZCUlN4RlFVTTFRaXhQUVVGUExFVkJRVVVzVlVGQlZTeHBRa0ZEVUN4aFFVRmhMRmRCUTNwQ0xFTkJRMGc3UTBGRFJpeERRVUZETEVOQlFVTTdRVUZGU1N4TlFVRk5MSGRDUVVGM1FpeEhRVUZITEc5RVFVRlJMRU5CUVVNN1NVRkRMME1zU1VGQlNTeEZRVUZGTEc5Q1FVRnZRanRKUVVNeFFpeFBRVUZQTEVWQlFVVXNRMEZCUXl4VFFVRlRMRVZCUVVVc1VVRkJVU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTzFGQlEzUkRMRTlCUVU4N1dVRkRUQ3hSUVVGUkxHdERRVUZQTEZGQlFWRXNTMEZCUlN4clFrRkJhMElzUlVGQlJTeExRVUZMTEVkQlFVVTdXVUZEY0VRc1pVRkJaU3hGUVVGRkxFdEJRVXM3VTBGRGRrSXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkRSQ3hqUVVGakxFVkJRVVVzUTBGQlF5eEZRVUZGTEZGQlFWRXNSVUZCUlN4VlFVRlZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGRE5VTXNPRVZCUTBVc1MwRkJTeXhGUVVGRk8xbEJRMHdzVDBGQlR5eEZRVUZGTEUxQlFVMDdXVUZEWml4alFVRmpMRVZCUVVVc1ZVRkJWVHRaUVVNeFFpeFRRVUZUTEVWQlFVVXNUMEZCVHp0WlFVTnNRaXhaUVVGWkxFVkJRVVVzVFVGQlRUdFRRVU55UWl4blFrRkZSQ3gxUkVGQlF5eHpSVUZCWXl4SlFVTmlMRXRCUVVzc1JVRkJSU3hSUVVGUkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJReXhEUVVGRExHMUVRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRzlFUVVGWExFVkJRemRFTEZGQlFWRXNSVUZCUlN4RFFVRkRMRXRCUVZrc1JVRkJSU3hGUVVGRk8yZENRVU42UWl4VlFVRlZMRU5CUVVNc1MwRkJTeXhMUVVGTExHMUVRVUZWTEVOQlFVTXNRMEZCUXp0WlFVTnVReXhEUVVGRExFVkJRMFFzUzBGQlN5eEZRVUZGTEhsRFFVRkRMRU5CUVVNc1owTkJRV2RETEVOQlFVTXNWMEZETVVNc1dVRkRSU3hEUVVOUU8wTkJRMFlzUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyRmpkR2x2Ym5NdllXTjBhVzl1Ulhod2IzSjBMblJ6ZUQ4MlpqSmtJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUhSeVlXTnJSWFpsYm5RZ2ZTQm1jbTl0SUZ3aUxpNHZZVzVoYkhsMGFXTnpYQ0k3WEc1cGJYQnZjblFnZXlCc2IyRmtMQ0J4ZFdWemRHbHZia05wY21Oc1pTd2djMkYyWlVGeklIMGdabkp2YlNCY0lpNHVMMk52YlhCdmJtVnVkSE12YVdOdmJuTmNJanRjYm1sdGNHOXlkQ0I3SUZCeWIycGxZM1JPWVcxbElIMGdabkp2YlNCY0lpNHVMMk52YlhCdmJtVnVkSE12VUhKdmFtVmpkRTVoYldWY0lqdGNibWx0Y0c5eWRDQjdJRlJ2YjJ4Q2RYUjBiMjRnZlNCbWNtOXRJRndpTGk0dlkyOXRjRzl1Wlc1MGN5OVViMjlzUW5WMGRHOXVYQ0k3WEc1cGJYQnZjblFnWENJdUxpOWpiMjF3YjI1bGJuUnpMMVJ2YjJ4SlkyOXVMbk5qYzNOY0lqdGNibWx0Y0c5eWRDQjdJRlJ2YjJ4MGFYQWdmU0JtY205dElGd2lMaTR2WTI5dGNHOXVaVzUwY3k5VWIyOXNkR2x3WENJN1hHNXBiWEJ2Y25RZ2V5QkVZWEpyVFc5a1pWUnZaMmRzWlNCOUlHWnliMjBnWENJdUxpOWpiMjF3YjI1bGJuUnpMMFJoY210TmIyUmxWRzluWjJ4bFhDSTdYRzVwYlhCdmNuUWdleUJzYjJGa1JuSnZiVXBUVDA0c0lITmhkbVZCYzBwVFQwNGdmU0JtY205dElGd2lMaTR2WkdGMFlWd2lPMXh1YVcxd2IzSjBJSHNnY21WellYWmxRWE5KYldGblpWZHBkR2hUWTJWdVpTQjlJR1p5YjIwZ1hDSXVMaTlrWVhSaEwzSmxjMkYyWlZ3aU8xeHVhVzF3YjNKMElIc2dkQ0I5SUdaeWIyMGdYQ0l1TGk5cE1UaHVYQ0k3WEc1cGJYQnZjblFnZXlCMWMyVkpjMDF2WW1sc1pTQjlJR1p5YjIwZ1hDSXVMaTlqYjIxd2IyNWxiblJ6TDBGd2NGd2lPMXh1YVcxd2IzSjBJSHNnUzBWWlV5QjlJR1p5YjIwZ1hDSXVMaTlyWlhselhDSTdYRzVwYlhCdmNuUWdleUJ5WldkcGMzUmxjaUI5SUdaeWIyMGdYQ0l1TDNKbFoybHpkR1Z5WENJN1hHNXBiWEJ2Y25RZ2V5QkRhR1ZqYTJKdmVFbDBaVzBnZlNCbWNtOXRJRndpTGk0dlkyOXRjRzl1Wlc1MGN5OURhR1ZqYTJKdmVFbDBaVzFjSWp0Y2JtbHRjRzl5ZENCN0lHZGxkRVY0Y0c5eWRGTnBlbVVnZlNCbWNtOXRJRndpTGk0dmMyTmxibVV2Wlhod2IzSjBYQ0k3WEc1cGJYQnZjblFnZXlCRVJVWkJWVXhVWDBWWVVFOVNWRjlRUVVSRVNVNUhMQ0JGV0ZCUFVsUmZVME5CVEVWVExDQlVTRVZOUlNCOUlHWnliMjBnWENJdUxpOWpiMjV6ZEdGdWRITmNJanRjYm1sdGNHOXlkQ0I3SUdkbGRGTmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNc0lHbHpVMjl0WlVWc1pXMWxiblJUWld4bFkzUmxaQ0I5SUdaeWIyMGdYQ0l1TGk5elkyVnVaVndpTzF4dWFXMXdiM0owSUhzZ1oyVjBUbTl1UkdWc1pYUmxaRVZzWlcxbGJuUnpJSDBnWm5KdmJTQmNJaTR1TDJWc1pXMWxiblJjSWp0Y2JtbHRjRzl5ZENCN0lFRmpkR2wyWlVacGJHVWdmU0JtY205dElGd2lMaTR2WTI5dGNHOXVaVzUwY3k5QlkzUnBkbVZHYVd4bFhDSTdYRzVwYlhCdmNuUWdleUJwYzBsdFlXZGxSbWxzWlVoaGJtUnNaU0I5SUdaeWIyMGdYQ0l1TGk5a1lYUmhMMkpzYjJKY0lqdGNibWx0Y0c5eWRDQjdJRzVoZEdsMlpVWnBiR1ZUZVhOMFpXMVRkWEJ3YjNKMFpXUWdmU0JtY205dElGd2lMaTR2WkdGMFlTOW1hV3hsYzNsemRHVnRYQ0k3WEc1cGJYQnZjblFnZXlCVWFHVnRaU0I5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwTDNSNWNHVnpYQ0k3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JoWTNScGIyNURhR0Z1WjJWUWNtOXFaV04wVG1GdFpTQTlJSEpsWjJsemRHVnlLSHRjYmlBZ2JtRnRaVG9nWENKamFHRnVaMlZRY205cVpXTjBUbUZ0WlZ3aUxGeHVJQ0J3WlhKbWIzSnRPaUFvWDJWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlN3Z2RtRnNkV1VwSUQwK0lIdGNiaUFnSUNCMGNtRmphMFYyWlc1MEtGd2lZMmhoYm1kbFhDSXNJRndpZEdsMGJHVmNJaWs3WEc0Z0lDQWdjbVYwZFhKdUlIc2dZWEJ3VTNSaGRHVTZJSHNnTGk0dVlYQndVM1JoZEdVc0lHNWhiV1U2SUhaaGJIVmxJSDBzSUdOdmJXMXBkRlJ2U0dsemRHOXllVG9nWm1Gc2MyVWdmVHRjYmlBZ2ZTeGNiaUFnVUdGdVpXeERiMjF3YjI1bGJuUTZJQ2g3SUdGd2NGTjBZWFJsTENCMWNHUmhkR1ZFWVhSaExDQmhjSEJRY205d2N5QjlLU0E5UGlBb1hHNGdJQ0FnUEZCeWIycGxZM1JPWVcxbFhHNGdJQ0FnSUNCc1lXSmxiRDE3ZENoY0lteGhZbVZzY3k1bWFXeGxWR2wwYkdWY0lpbDlYRzRnSUNBZ0lDQjJZV3gxWlQxN1lYQndVM1JoZEdVdWJtRnRaU0I4ZkNCY0lsVnVibUZ0WldSY0luMWNiaUFnSUNBZ0lHOXVRMmhoYm1kbFBYc29ibUZ0WlRvZ2MzUnlhVzVuS1NBOVBpQjFjR1JoZEdWRVlYUmhLRzVoYldVcGZWeHVJQ0FnSUNBZ2FYTk9ZVzFsUldScGRHRmliR1U5ZTF4dUlDQWdJQ0FnSUNCMGVYQmxiMllnWVhCd1VISnZjSE11Ym1GdFpTQTlQVDBnWENKMWJtUmxabWx1WldSY0lpQW1KaUFoWVhCd1UzUmhkR1V1ZG1sbGQwMXZaR1ZGYm1GaWJHVmtYRzRnSUNBZ0lDQjlYRzRnSUNBZ0x6NWNiaUFnS1N4Y2JuMHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdZV04wYVc5dVEyaGhibWRsUlhod2IzSjBVMk5oYkdVZ1BTQnlaV2RwYzNSbGNpaDdYRzRnSUc1aGJXVTZJRndpWTJoaGJtZGxSWGh3YjNKMFUyTmhiR1ZjSWl4Y2JpQWdjR1Z5Wm05eWJUb2dLRjlsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VzSUhaaGJIVmxLU0E5UGlCN1hHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJR0Z3Y0ZOMFlYUmxPaUI3SUM0dUxtRndjRk4wWVhSbExDQmxlSEJ2Y25SVFkyRnNaVG9nZG1Gc2RXVWdmU3hjYmlBZ0lDQWdJR052YlcxcGRGUnZTR2x6ZEc5eWVUb2dabUZzYzJVc1hHNGdJQ0FnZlR0Y2JpQWdmU3hjYmlBZ1VHRnVaV3hEYjIxd2IyNWxiblE2SUNoN0lHVnNaVzFsYm5Sek9pQmhiR3hGYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VzSUhWd1pHRjBaVVJoZEdFZ2ZTa2dQVDRnZTF4dUlDQWdJR052Ym5OMElHVnNaVzFsYm5SeklEMGdaMlYwVG05dVJHVnNaWFJsWkVWc1pXMWxiblJ6S0dGc2JFVnNaVzFsYm5SektUdGNiaUFnSUNCamIyNXpkQ0JsZUhCdmNuUlRaV3hsWTNSbFpDQTlJR2x6VTI5dFpVVnNaVzFsYm5SVFpXeGxZM1JsWkNobGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVcE8xeHVJQ0FnSUdOdmJuTjBJR1Y0Y0c5eWRHVmtSV3hsYldWdWRITWdQU0JsZUhCdmNuUlRaV3hsWTNSbFpGeHVJQ0FnSUNBZ1B5Qm5aWFJUWld4bFkzUmxaRVZzWlcxbGJuUnpLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU2xjYmlBZ0lDQWdJRG9nWld4bGJXVnVkSE03WEc1Y2JpQWdJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lDQWdQRDVjYmlBZ0lDQWdJQ0FnZTBWWVVFOVNWRjlUUTBGTVJWTXViV0Z3S0NoektTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnVzNkcFpIUm9MQ0JvWldsbmFIUmRJRDBnWjJWMFJYaHdiM0owVTJsNlpTaGNiaUFnSUNBZ0lDQWdJQ0FnSUdWNGNHOXlkR1ZrUld4bGJXVnVkSE1zWEc0Z0lDQWdJQ0FnSUNBZ0lDQkVSVVpCVlV4VVgwVllVRTlTVkY5UVFVUkVTVTVITEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjeXhjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjMk5oYkdWQ2RYUjBiMjVVYVhSc1pTQTlJR0FrZTNRb1hHNGdJQ0FnSUNBZ0lDQWdJQ0JjSW1KMWRIUnZibk11YzJOaGJHVmNJaXhjYmlBZ0lDQWdJQ0FnSUNBcGZTQWtlM045ZUNBb0pIdDNhV1IwYUgxNEpIdG9aV2xuYUhSOUtXQTdYRzVjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdQRlJ2YjJ4Q2RYUjBiMjVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdhMlY1UFh0emZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCemFYcGxQVndpYzIxaGJHeGNJbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjBlWEJsUFZ3aWNtRmthVzljSWx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JwWTI5dVBYdGdKSHR6ZlhoZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCdVlXMWxQVndpWlhod2IzSjBMV05oYm5aaGN5MXpZMkZzWlZ3aVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhScGRHeGxQWHR6WTJGc1pVSjFkSFJ2YmxScGRHeGxmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmhjbWxoTFd4aFltVnNQWHR6WTJGc1pVSjFkSFJ2YmxScGRHeGxmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaRDFjSW1WNGNHOXlkQzFqWVc1MllYTXRjMk5oYkdWY0lseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamFHVmphMlZrUFh0eklEMDlQU0JoY0hCVGRHRjBaUzVsZUhCdmNuUlRZMkZzWlgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1RGFHRnVaMlU5ZXlncElEMCtJSFZ3WkdGMFpVUmhkR0VvY3lsOVhHNGdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJSDBwZlZ4dUlDQWdJQ0FnUEM4K1hHNGdJQ0FnS1R0Y2JpQWdmU3hjYm4wcE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1lXTjBhVzl1UTJoaGJtZGxSWGh3YjNKMFFtRmphMmR5YjNWdVpDQTlJSEpsWjJsemRHVnlLSHRjYmlBZ2JtRnRaVG9nWENKamFHRnVaMlZGZUhCdmNuUkNZV05yWjNKdmRXNWtYQ0lzWEc0Z0lIQmxjbVp2Y20wNklDaGZaV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxMQ0IyWVd4MVpTa2dQVDRnZTF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQmhjSEJUZEdGMFpUb2dleUF1TGk1aGNIQlRkR0YwWlN3Z1pYaHdiM0owUW1GamEyZHliM1Z1WkRvZ2RtRnNkV1VnZlN4Y2JpQWdJQ0FnSUdOdmJXMXBkRlJ2U0dsemRHOXllVG9nWm1Gc2MyVXNYRzRnSUNBZ2ZUdGNiaUFnZlN4Y2JpQWdVR0Z1Wld4RGIyMXdiMjVsYm5RNklDaDdJR0Z3Y0ZOMFlYUmxMQ0IxY0dSaGRHVkVZWFJoSUgwcElEMCtJQ2hjYmlBZ0lDQThRMmhsWTJ0aWIzaEpkR1Z0WEc0Z0lDQWdJQ0JqYUdWamEyVmtQWHRoY0hCVGRHRjBaUzVsZUhCdmNuUkNZV05yWjNKdmRXNWtmVnh1SUNBZ0lDQWdiMjVEYUdGdVoyVTlleWhqYUdWamEyVmtLU0E5UGlCMWNHUmhkR1ZFWVhSaEtHTm9aV05yWldRcGZWeHVJQ0FnSUQ1Y2JpQWdJQ0FnSUh0MEtGd2liR0ZpWld4ekxuZHBkR2hDWVdOclozSnZkVzVrWENJcGZWeHVJQ0FnSUR3dlEyaGxZMnRpYjNoSmRHVnRQbHh1SUNBcExGeHVmU2s3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JoWTNScGIyNURhR0Z1WjJWRmVIQnZjblJGYldKbFpGTmpaVzVsSUQwZ2NtVm5hWE4wWlhJb2UxeHVJQ0J1WVcxbE9pQmNJbU5vWVc1blpVVjRjRzl5ZEVWdFltVmtVMk5sYm1WY0lpeGNiaUFnY0dWeVptOXliVG9nS0Y5bGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVc0lIWmhiSFZsS1NBOVBpQjdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUdGd2NGTjBZWFJsT2lCN0lDNHVMbUZ3Y0ZOMFlYUmxMQ0JsZUhCdmNuUkZiV0psWkZOalpXNWxPaUIyWVd4MVpTQjlMRnh1SUNBZ0lDQWdZMjl0YldsMFZHOUlhWE4wYjNKNU9pQm1ZV3h6WlN4Y2JpQWdJQ0I5TzF4dUlDQjlMRnh1SUNCUVlXNWxiRU52YlhCdmJtVnVkRG9nS0hzZ1lYQndVM1JoZEdVc0lIVndaR0YwWlVSaGRHRWdmU2tnUFQ0Z0tGeHVJQ0FnSUR4RGFHVmphMkp2ZUVsMFpXMWNiaUFnSUNBZ0lHTm9aV05yWldROWUyRndjRk4wWVhSbExtVjRjRzl5ZEVWdFltVmtVMk5sYm1WOVhHNGdJQ0FnSUNCdmJrTm9ZVzVuWlQxN0tHTm9aV05yWldRcElEMCtJSFZ3WkdGMFpVUmhkR0VvWTJobFkydGxaQ2w5WEc0Z0lDQWdQbHh1SUNBZ0lDQWdlM1FvWENKc1lXSmxiSE11Wlhod2IzSjBSVzFpWldSVFkyVnVaVndpS1gxY2JpQWdJQ0FnSUR4VWIyOXNkR2x3SUd4aFltVnNQWHQwS0Z3aWJHRmlaV3h6TG1WNGNHOXlkRVZ0WW1Wa1UyTmxibVZmWkdWMFlXbHNjMXdpS1gwZ2JHOXVaejE3ZEhKMVpYMCtYRzRnSUNBZ0lDQWdJRHhrYVhZZ1kyeGhjM05PWVcxbFBWd2laWGhqWVd4cFpISmhkeTEwYjI5c2RHbHdMV2xqYjI1Y0lqNTdjWFZsYzNScGIyNURhWEpqYkdWOVBDOWthWFkrWEc0Z0lDQWdJQ0E4TDFSdmIyeDBhWEErWEc0Z0lDQWdQQzlEYUdWamEySnZlRWwwWlcwK1hHNGdJQ2tzWEc1OUtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHRmpkR2x2YmxOaGRtVlViMEZqZEdsMlpVWnBiR1VnUFNCeVpXZHBjM1JsY2loN1hHNGdJRzVoYldVNklGd2ljMkYyWlZSdlFXTjBhWFpsUm1sc1pWd2lMRnh1SUNCd1pYSm1iM0p0T2lCaGMzbHVZeUFvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCMllXeDFaU3dnWVhCd0tTQTlQaUI3WEc0Z0lDQWdZMjl1YzNRZ1ptbHNaVWhoYm1Sc1pVVjRhWE4wY3lBOUlDRWhZWEJ3VTNSaGRHVXVabWxzWlVoaGJtUnNaVHRjYmx4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCamIyNXpkQ0I3SUdacGJHVklZVzVrYkdVZ2ZTQTlJR2x6U1cxaFoyVkdhV3hsU0dGdVpHeGxLR0Z3Y0ZOMFlYUmxMbVpwYkdWSVlXNWtiR1VwWEc0Z0lDQWdJQ0FnSUQ4Z1lYZGhhWFFnY21WellYWmxRWE5KYldGblpWZHBkR2hUWTJWdVpTaGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXNJR0Z3Y0M1bWFXeGxjeWxjYmlBZ0lDQWdJQ0FnT2lCaGQyRnBkQ0J6WVhabFFYTktVMDlPS0dWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlN3Z1lYQndMbVpwYkdWektUdGNibHh1SUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdZMjl0YldsMFZHOUlhWE4wYjNKNU9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUNBZ1lYQndVM1JoZEdVNklIdGNiaUFnSUNBZ0lDQWdJQ0F1TGk1aGNIQlRkR0YwWlN4Y2JpQWdJQ0FnSUNBZ0lDQm1hV3hsU0dGdVpHeGxMRnh1SUNBZ0lDQWdJQ0FnSUhSdllYTjBUV1Z6YzJGblpUb2dabWxzWlVoaGJtUnNaVVY0YVhOMGMxeHVJQ0FnSUNBZ0lDQWdJQ0FnUHlCbWFXeGxTR0Z1Wkd4bFB5NXVZVzFsWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRDhnZENoY0luUnZZWE4wTG1acGJHVlRZWFpsWkZSdlJtbHNaVzVoYldWY0lpa3VjbVZ3YkdGalpTaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRndpZTJacGJHVnVZVzFsZlZ3aUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZRndpSkh0bWFXeGxTR0Z1Wkd4bExtNWhiV1Y5WENKZ0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ09pQjBLRndpZEc5aGMzUXVabWxzWlZOaGRtVmtYQ0lwWEc0Z0lDQWdJQ0FnSUNBZ0lDQTZJRzUxYkd3c1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMGdZMkYwWTJnZ0tHVnljbTl5T2lCaGJua3BJSHRjYmlBZ0lDQWdJR2xtSUNobGNuSnZjajh1Ym1GdFpTQWhQVDBnWENKQlltOXlkRVZ5Y205eVhDSXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMyOXNaUzVsY25KdmNpaGxjbkp2Y2lrN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCamIyNXpiMnhsTG5kaGNtNG9aWEp5YjNJcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhzZ1kyOXRiV2wwVkc5SWFYTjBiM0o1T2lCbVlXeHpaU0I5TzF4dUlDQWdJSDFjYmlBZ2ZTeGNiaUFnYTJWNVZHVnpkRG9nS0dWMlpXNTBLU0E5UGx4dUlDQWdJR1YyWlc1MExtdGxlU0E5UFQwZ1MwVlpVeTVUSUNZbUlHVjJaVzUwVzB0RldWTXVRMVJTVEY5UFVsOURUVVJkSUNZbUlDRmxkbVZ1ZEM1emFHbG1kRXRsZVN4Y2JpQWdVR0Z1Wld4RGIyMXdiMjVsYm5RNklDaDdJSFZ3WkdGMFpVUmhkR0VzSUdGd2NGTjBZWFJsSUgwcElEMCtJQ2hjYmlBZ0lDQThRV04wYVhabFJtbHNaVnh1SUNBZ0lDQWdiMjVUWVhabFBYc29LU0E5UGlCMWNHUmhkR1ZFWVhSaEtHNTFiR3dwZlZ4dUlDQWdJQ0FnWm1sc1pVNWhiV1U5ZTJGd2NGTjBZWFJsTG1acGJHVklZVzVrYkdVL0xtNWhiV1Y5WEc0Z0lDQWdMejVjYmlBZ0tTeGNibjBwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWVdOMGFXOXVVMkYyWlVacGJHVlViMFJwYzJzZ1BTQnlaV2RwYzNSbGNpaDdYRzRnSUc1aGJXVTZJRndpYzJGMlpVWnBiR1ZVYjBScGMydGNJaXhjYmlBZ2NHVnlabTl5YlRvZ1lYTjVibU1nS0dWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlN3Z2RtRnNkV1VzSUdGd2NDa2dQVDRnZTF4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCamIyNXpkQ0I3SUdacGJHVklZVzVrYkdVZ2ZTQTlJR0YzWVdsMElITmhkbVZCYzBwVFQwNG9YRzRnSUNBZ0lDQWdJR1ZzWlcxbGJuUnpMRnh1SUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0xpNHVZWEJ3VTNSaGRHVXNYRzRnSUNBZ0lDQWdJQ0FnWm1sc1pVaGhibVJzWlRvZ2JuVnNiQ3hjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ1lYQndMbVpwYkdWekxGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCN0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVRvZ1ptRnNjMlVzSUdGd2NGTjBZWFJsT2lCN0lDNHVMbUZ3Y0ZOMFlYUmxMQ0JtYVd4bFNHRnVaR3hsSUgwZ2ZUdGNiaUFnSUNCOUlHTmhkR05vSUNobGNuSnZjam9nWVc1NUtTQjdYRzRnSUNBZ0lDQnBaaUFvWlhKeWIzSS9MbTVoYldVZ0lUMDlJRndpUVdKdmNuUkZjbkp2Y2x3aUtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OdmJHVXVaWEp5YjNJb1pYSnliM0lwTzF4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMyOXNaUzUzWVhKdUtHVnljbTl5S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUI3SUdOdmJXMXBkRlJ2U0dsemRHOXllVG9nWm1Gc2MyVWdmVHRjYmlBZ0lDQjlYRzRnSUgwc1hHNGdJR3RsZVZSbGMzUTZJQ2hsZG1WdWRDa2dQVDVjYmlBZ0lDQmxkbVZ1ZEM1clpYa2dQVDA5SUV0RldWTXVVeUFtSmlCbGRtVnVkQzV6YUdsbWRFdGxlU0FtSmlCbGRtVnVkRnRMUlZsVExrTlVVa3hmVDFKZlEwMUVYU3hjYmlBZ1VHRnVaV3hEYjIxd2IyNWxiblE2SUNoN0lIVndaR0YwWlVSaGRHRWdmU2tnUFQ0Z0tGeHVJQ0FnSUR4VWIyOXNRblYwZEc5dVhHNGdJQ0FnSUNCMGVYQmxQVndpWW5WMGRHOXVYQ0pjYmlBZ0lDQWdJR2xqYjI0OWUzTmhkbVZCYzMxY2JpQWdJQ0FnSUhScGRHeGxQWHQwS0Z3aVluVjBkRzl1Y3k1ellYWmxRWE5jSWlsOVhHNGdJQ0FnSUNCaGNtbGhMV3hoWW1Wc1BYdDBLRndpWW5WMGRHOXVjeTV6WVhabFFYTmNJaWw5WEc0Z0lDQWdJQ0J6YUc5M1FYSnBZVXhoWW1Wc1BYdDFjMlZKYzAxdlltbHNaU2dwZlZ4dUlDQWdJQ0FnYUdsa1pHVnVQWHNoYm1GMGFYWmxSbWxzWlZONWMzUmxiVk4xY0hCdmNuUmxaSDFjYmlBZ0lDQWdJRzl1UTJ4cFkyczlleWdwSUQwK0lIVndaR0YwWlVSaGRHRW9iblZzYkNsOVhHNGdJQ0FnSUNCa1lYUmhMWFJsYzNScFpEMWNJbk5oZG1VdFlYTXRZblYwZEc5dVhDSmNiaUFnSUNBdlBseHVJQ0FwTEZ4dWZTazdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmhZM1JwYjI1TWIyRmtVMk5sYm1VZ1BTQnlaV2RwYzNSbGNpaDdYRzRnSUc1aGJXVTZJRndpYkc5aFpGTmpaVzVsWENJc1hHNGdJSEJsY21admNtMDZJR0Z6ZVc1aklDaGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXNJRjhzSUdGd2NDa2dQVDRnZTF4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCamIyNXpkQ0I3WEc0Z0lDQWdJQ0FnSUdWc1pXMWxiblJ6T2lCc2IyRmtaV1JGYkdWdFpXNTBjeXhjYmlBZ0lDQWdJQ0FnWVhCd1UzUmhkR1U2SUd4dllXUmxaRUZ3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdJQ0JtYVd4bGN5eGNiaUFnSUNBZ0lIMGdQU0JoZDJGcGRDQnNiMkZrUm5KdmJVcFRUMDRvWVhCd1UzUmhkR1VzSUdWc1pXMWxiblJ6S1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUdWc1pXMWxiblJ6T2lCc2IyRmtaV1JGYkdWdFpXNTBjeXhjYmlBZ0lDQWdJQ0FnWVhCd1UzUmhkR1U2SUd4dllXUmxaRUZ3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdJQ0JtYVd4bGN5eGNiaUFnSUNBZ0lDQWdZMjl0YldsMFZHOUlhWE4wYjNKNU9pQjBjblZsTEZ4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsY25KdmNqb2dZVzU1S1NCN1hHNGdJQ0FnSUNCcFppQW9aWEp5YjNJL0xtNWhiV1VnUFQwOUlGd2lRV0p2Y25SRmNuSnZjbHdpS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk52YkdVdWQyRnliaWhsY25KdmNpazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUdWc1pXMWxiblJ6TEZ4dUlDQWdJQ0FnSUNCaGNIQlRkR0YwWlRvZ2V5QXVMaTVoY0hCVGRHRjBaU3dnWlhKeWIzSk5aWE56WVdkbE9pQmxjbkp2Y2k1dFpYTnpZV2RsSUgwc1hHNGdJQ0FnSUNBZ0lHWnBiR1Z6T2lCaGNIQXVabWxzWlhNc1hHNGdJQ0FnSUNBZ0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVRvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0I5TzF4dUlDQWdJSDFjYmlBZ2ZTeGNiaUFnYTJWNVZHVnpkRG9nS0dWMlpXNTBLU0E5UGlCbGRtVnVkRnRMUlZsVExrTlVVa3hmVDFKZlEwMUVYU0FtSmlCbGRtVnVkQzVyWlhrZ1BUMDlJRXRGV1ZNdVR5eGNiaUFnVUdGdVpXeERiMjF3YjI1bGJuUTZJQ2g3SUhWd1pHRjBaVVJoZEdFc0lHRndjRk4wWVhSbElIMHBJRDArSUNoY2JpQWdJQ0E4Vkc5dmJFSjFkSFJ2Ymx4dUlDQWdJQ0FnZEhsd1pUMWNJbUoxZEhSdmJsd2lYRzRnSUNBZ0lDQnBZMjl1UFh0c2IyRmtmVnh1SUNBZ0lDQWdkR2wwYkdVOWUzUW9YQ0ppZFhSMGIyNXpMbXh2WVdSY0lpbDlYRzRnSUNBZ0lDQmhjbWxoTFd4aFltVnNQWHQwS0Z3aVluVjBkRzl1Y3k1c2IyRmtYQ0lwZlZ4dUlDQWdJQ0FnYzJodmQwRnlhV0ZNWVdKbGJEMTdkWE5sU1hOTmIySnBiR1VvS1gxY2JpQWdJQ0FnSUc5dVEyeHBZMnM5ZTNWd1pHRjBaVVJoZEdGOVhHNGdJQ0FnSUNCa1lYUmhMWFJsYzNScFpEMWNJbXh2WVdRdFluVjBkRzl1WENKY2JpQWdJQ0F2UGx4dUlDQXBMRnh1ZlNrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCaFkzUnBiMjVGZUhCdmNuUlhhWFJvUkdGeWEwMXZaR1VnUFNCeVpXZHBjM1JsY2loN1hHNGdJRzVoYldVNklGd2laWGh3YjNKMFYybDBhRVJoY210TmIyUmxYQ0lzWEc0Z0lIQmxjbVp2Y20wNklDaGZaV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxMQ0IyWVd4MVpTa2dQVDRnZTF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQmhjSEJUZEdGMFpUb2dleUF1TGk1aGNIQlRkR0YwWlN3Z1pYaHdiM0owVjJsMGFFUmhjbXROYjJSbE9pQjJZV3gxWlNCOUxGeHVJQ0FnSUNBZ1kyOXRiV2wwVkc5SWFYTjBiM0o1T2lCbVlXeHpaU3hjYmlBZ0lDQjlPMXh1SUNCOUxGeHVJQ0JRWVc1bGJFTnZiWEJ2Ym1WdWREb2dLSHNnWVhCd1UzUmhkR1VzSUhWd1pHRjBaVVJoZEdFZ2ZTa2dQVDRnS0Z4dUlDQWdJRHhrYVhaY2JpQWdJQ0FnSUhOMGVXeGxQWHQ3WEc0Z0lDQWdJQ0FnSUdScGMzQnNZWGs2SUZ3aVpteGxlRndpTEZ4dUlDQWdJQ0FnSUNCcWRYTjBhV1o1UTI5dWRHVnVkRG9nWENKbWJHVjRMV1Z1WkZ3aUxGeHVJQ0FnSUNBZ0lDQnRZWEpuYVc1VWIzQTZJRndpTFRRMWNIaGNJaXhjYmlBZ0lDQWdJQ0FnYldGeVoybHVRbTkwZEc5dE9pQmNJakV3Y0hoY0lpeGNiaUFnSUNBZ0lIMTlYRzRnSUNBZ1BseHVJQ0FnSUNBZ1BFUmhjbXROYjJSbFZHOW5aMnhsWEc0Z0lDQWdJQ0FnSUhaaGJIVmxQWHRoY0hCVGRHRjBaUzVsZUhCdmNuUlhhWFJvUkdGeWEwMXZaR1VnUHlCVVNFVk5SUzVFUVZKTElEb2dWRWhGVFVVdVRFbEhTRlI5WEc0Z0lDQWdJQ0FnSUc5dVEyaGhibWRsUFhzb2RHaGxiV1U2SUZSb1pXMWxLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdkWEJrWVhSbFJHRjBZU2gwYUdWdFpTQTlQVDBnVkVoRlRVVXVSRUZTU3lrN1hHNGdJQ0FnSUNBZ0lIMTlYRzRnSUNBZ0lDQWdJSFJwZEd4bFBYdDBLRndpYkdGaVpXeHpMblJ2WjJkc1pVVjRjRzl5ZEVOdmJHOXlVMk5vWlcxbFhDSXBmVnh1SUNBZ0lDQWdMejVjYmlBZ0lDQThMMlJwZGo1Y2JpQWdLU3hjYm4wcE8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2FjdGlvbnMvYWN0aW9uRXhwb3J0LnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25GaW5hbGl6ZS50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vYWN0aW9ucy9hY3Rpb25GaW5hbGl6ZS50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkZpbmFsaXplXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uRmluYWxpemUpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9rZXlzICovIFxcXCIuLi8uLi9rZXlzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vdXRpbHMgKi8gXFxcIi4uLy4uL3V0aWxzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbXBvbmVudHMvVG9vbEJ1dHRvbiAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29tcG9uZW50cy9pY29ucyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9pY29ucy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3JlZ2lzdGVyICovIFxcXCIuLi8uLi9hY3Rpb25zL3JlZ2lzdGVyLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvbXV0YXRlRWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9tdXRhdGVFbGVtZW50LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9tYXRoICovIFxcXCIuLi8uLi9tYXRoLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X2xpbmVhckVsZW1lbnRFZGl0b3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L2xpbmVhckVsZW1lbnRFZGl0b3IgKi8gXFxcIi4uLy4uL2VsZW1lbnQvbGluZWFyRWxlbWVudEVkaXRvci50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfU2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZS9TY2VuZSAqLyBcXFwiLi4vLi4vc2NlbmUvU2NlbmUudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvYmluZGluZyAqLyBcXFwiLi4vLi4vZWxlbWVudC9iaW5kaW5nLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L3R5cGVDaGVja3MgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdHlwZUNoZWNrcy50c1xcXCIpO1xcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcbmNvbnN0IGFjdGlvbkZpbmFsaXplID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImZpbmFsaXplXFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSwgXywgeyBjYW52YXMsIGZvY3VzQ29udGFpbmVyIH0pID0+IHtcXG4gICAgICAgIHZhciBfYTtcXG4gICAgICAgIGlmIChhcHBTdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudCkge1xcbiAgICAgICAgICAgIGNvbnN0IHsgZWxlbWVudElkLCBzdGFydEJpbmRpbmdFbGVtZW50LCBlbmRCaW5kaW5nRWxlbWVudCB9ID0gYXBwU3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQ7XFxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IF9lbGVtZW50X2xpbmVhckVsZW1lbnRFZGl0b3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uTGluZWFyRWxlbWVudEVkaXRvci5nZXRFbGVtZW50KGVsZW1lbnRJZCk7XFxuICAgICAgICAgICAgaWYgKGVsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgaWYgKCgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18uaXNCaW5kaW5nRWxlbWVudCkoZWxlbWVudCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X2JpbmRpbmdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uYmluZE9yVW5iaW5kTGluZWFyRWxlbWVudCkoZWxlbWVudCwgc3RhcnRCaW5kaW5nRWxlbWVudCwgZW5kQmluZGluZ0VsZW1lbnQpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50czogZWxlbWVudC5wb2ludHMubGVuZ3RoIDwgMiB8fCAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmlzSW52aXNpYmx5U21hbGxFbGVtZW50KShlbGVtZW50KVxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZWxlbWVudHMuZmlsdGVyKChlbCkgPT4gZWwuaWQgIT09IGVsZW1lbnQuaWQpXFxuICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXFxuICAgICAgICAgICAgICAgICAgICBhcHBTdGF0ZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhcHBTdGF0ZSksIHsgZWRpdGluZ0xpbmVhckVsZW1lbnQ6IG51bGwgfSksXFxuICAgICAgICAgICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXFxuICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgbGV0IG5ld0VsZW1lbnRzID0gZWxlbWVudHM7XFxuICAgICAgICBpZiAoYXBwU3RhdGUucGVuZGluZ0ltYWdlRWxlbWVudCkge1xcbiAgICAgICAgICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5tdXRhdGVFbGVtZW50KShhcHBTdGF0ZS5wZW5kaW5nSW1hZ2VFbGVtZW50LCB7IGlzRGVsZXRlZDogdHJ1ZSB9LCBmYWxzZSk7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAod2luZG93LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xcbiAgICAgICAgICAgIGZvY3VzQ29udGFpbmVyKCk7XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBtdWx0aVBvaW50RWxlbWVudCA9IGFwcFN0YXRlLm11bHRpRWxlbWVudFxcbiAgICAgICAgICAgID8gYXBwU3RhdGUubXVsdGlFbGVtZW50XFxuICAgICAgICAgICAgOiAoKF9hID0gYXBwU3RhdGUuZWRpdGluZ0VsZW1lbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50eXBlKSA9PT0gXFxcImZyZWVkcmF3XFxcIlxcbiAgICAgICAgICAgICAgICA/IGFwcFN0YXRlLmVkaXRpbmdFbGVtZW50XFxuICAgICAgICAgICAgICAgIDogbnVsbDtcXG4gICAgICAgIGlmIChtdWx0aVBvaW50RWxlbWVudCkge1xcbiAgICAgICAgICAgIC8vIHBlbiBhbmQgbW91c2UgaGF2ZSBob3ZlclxcbiAgICAgICAgICAgIGlmIChtdWx0aVBvaW50RWxlbWVudC50eXBlICE9PSBcXFwiZnJlZWRyYXdcXFwiICYmXFxuICAgICAgICAgICAgICAgIGFwcFN0YXRlLmxhc3RQb2ludGVyRG93bldpdGggIT09IFxcXCJ0b3VjaFxcXCIpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgeyBwb2ludHMsIGxhc3RDb21taXR0ZWRQb2ludCB9ID0gbXVsdGlQb2ludEVsZW1lbnQ7XFxuICAgICAgICAgICAgICAgIGlmICghbGFzdENvbW1pdHRlZFBvaW50IHx8XFxuICAgICAgICAgICAgICAgICAgICBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdICE9PSBsYXN0Q29tbWl0dGVkUG9pbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5tdXRhdGVFbGVtZW50KShtdWx0aVBvaW50RWxlbWVudCwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50czogbXVsdGlQb2ludEVsZW1lbnQucG9pbnRzLnNsaWNlKDAsIC0xKSxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICgoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmlzSW52aXNpYmx5U21hbGxFbGVtZW50KShtdWx0aVBvaW50RWxlbWVudCkpIHtcXG4gICAgICAgICAgICAgICAgbmV3RWxlbWVudHMgPSBuZXdFbGVtZW50cy5zbGljZSgwLCAtMSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIC8vIElmIHRoZSBtdWx0aSBwb2ludCBsaW5lIGNsb3NlcyB0aGUgbG9vcCxcXG4gICAgICAgICAgICAvLyBzZXQgdGhlIGxhc3QgcG9pbnQgdG8gZmlyc3QgcG9pbnQuXFxuICAgICAgICAgICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgbG9vcCByZW1haW5zIGNsb3NlZCBhdCBkaWZmZXJlbnQgc2NhbGVzLlxcbiAgICAgICAgICAgIGNvbnN0IGlzTG9vcCA9ICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uaXNQYXRoQUxvb3ApKG11bHRpUG9pbnRFbGVtZW50LnBvaW50cywgYXBwU3RhdGUuem9vbS52YWx1ZSk7XFxuICAgICAgICAgICAgaWYgKG11bHRpUG9pbnRFbGVtZW50LnR5cGUgPT09IFxcXCJsaW5lXFxcIiB8fFxcbiAgICAgICAgICAgICAgICBtdWx0aVBvaW50RWxlbWVudC50eXBlID09PSBcXFwiZnJlZWRyYXdcXFwiKSB7XFxuICAgICAgICAgICAgICAgIGlmIChpc0xvb3ApIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVQb2ludHMgPSBtdWx0aVBvaW50RWxlbWVudC5wb2ludHM7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdFBvaW50ID0gbGluZVBvaW50c1swXTtcXG4gICAgICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5tdXRhdGVFbGVtZW50KShtdWx0aVBvaW50RWxlbWVudCwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50czogbGluZVBvaW50cy5tYXAoKHBvaW50LCBpbmRleCkgPT4gaW5kZXggPT09IGxpbmVQb2ludHMubGVuZ3RoIC0gMVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFtmaXJzdFBvaW50WzBdLCBmaXJzdFBvaW50WzFdXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBvaW50KSxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICgoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLmlzQmluZGluZ0VsZW1lbnQpKG11bHRpUG9pbnRFbGVtZW50KSAmJlxcbiAgICAgICAgICAgICAgICAhaXNMb29wICYmXFxuICAgICAgICAgICAgICAgIG11bHRpUG9pbnRFbGVtZW50LnBvaW50cy5sZW5ndGggPiAxKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IFt4LCB5XSA9IF9lbGVtZW50X2xpbmVhckVsZW1lbnRFZGl0b3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uTGluZWFyRWxlbWVudEVkaXRvci5nZXRQb2ludEF0SW5kZXhHbG9iYWxDb29yZGluYXRlcyhtdWx0aVBvaW50RWxlbWVudCwgLTEpO1xcbiAgICAgICAgICAgICAgICAoMCxfZWxlbWVudF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fLm1heWJlQmluZExpbmVhckVsZW1lbnQpKG11bHRpUG9pbnRFbGVtZW50LCBhcHBTdGF0ZSwgX3NjZW5lX1NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fW1xcXCJkZWZhdWx0XFxcIl0uZ2V0U2NlbmUobXVsdGlQb2ludEVsZW1lbnQpLCB7IHgsIHkgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICghYXBwU3RhdGUuZWxlbWVudExvY2tlZCAmJiBhcHBTdGF0ZS5lbGVtZW50VHlwZSAhPT0gXFxcImZyZWVkcmF3XFxcIikge1xcbiAgICAgICAgICAgICAgICBhcHBTdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHNbbXVsdGlQb2ludEVsZW1lbnQuaWRdID0gdHJ1ZTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoKCFhcHBTdGF0ZS5lbGVtZW50TG9ja2VkICYmIGFwcFN0YXRlLmVsZW1lbnRUeXBlICE9PSBcXFwiZnJlZWRyYXdcXFwiKSB8fFxcbiAgICAgICAgICAgICFtdWx0aVBvaW50RWxlbWVudCkge1xcbiAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnJlc2V0Q3Vyc29yKShjYW52YXMpO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBlbGVtZW50czogbmV3RWxlbWVudHMsXFxuICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB7IGVsZW1lbnRUeXBlOiAoYXBwU3RhdGUuZWxlbWVudExvY2tlZCB8fCBhcHBTdGF0ZS5lbGVtZW50VHlwZSA9PT0gXFxcImZyZWVkcmF3XFxcIikgJiZcXG4gICAgICAgICAgICAgICAgICAgIG11bHRpUG9pbnRFbGVtZW50XFxuICAgICAgICAgICAgICAgICAgICA/IGFwcFN0YXRlLmVsZW1lbnRUeXBlXFxuICAgICAgICAgICAgICAgICAgICA6IFxcXCJzZWxlY3Rpb25cXFwiLCBkcmFnZ2luZ0VsZW1lbnQ6IG51bGwsIG11bHRpRWxlbWVudDogbnVsbCwgZWRpdGluZ0VsZW1lbnQ6IG51bGwsIHN0YXJ0Qm91bmRFbGVtZW50OiBudWxsLCBzdWdnZXN0ZWRCaW5kaW5nczogW10sIHNlbGVjdGVkRWxlbWVudElkczogbXVsdGlQb2ludEVsZW1lbnQgJiZcXG4gICAgICAgICAgICAgICAgICAgICFhcHBTdGF0ZS5lbGVtZW50TG9ja2VkICYmXFxuICAgICAgICAgICAgICAgICAgICBhcHBTdGF0ZS5lbGVtZW50VHlwZSAhPT0gXFxcImZyZWVkcmF3XFxcIlxcbiAgICAgICAgICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlLnNlbGVjdGVkRWxlbWVudElkcyksIHsgW211bHRpUG9pbnRFbGVtZW50LmlkXTogdHJ1ZSB9KSA6IGFwcFN0YXRlLnNlbGVjdGVkRWxlbWVudElkcywgcGVuZGluZ0ltYWdlRWxlbWVudDogbnVsbCB9KSxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IGFwcFN0YXRlLmVsZW1lbnRUeXBlID09PSBcXFwiZnJlZWRyYXdcXFwiLFxcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAga2V5VGVzdDogKGV2ZW50LCBhcHBTdGF0ZSkgPT4gKGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5LRVlTLkVTQ0FQRSAmJlxcbiAgICAgICAgKGFwcFN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50ICE9PSBudWxsIHx8XFxuICAgICAgICAgICAgKCFhcHBTdGF0ZS5kcmFnZ2luZ0VsZW1lbnQgJiYgYXBwU3RhdGUubXVsdGlFbGVtZW50ID09PSBudWxsKSkpIHx8XFxuICAgICAgICAoKGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5LRVlTLkVTQ0FQRSB8fCBldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uS0VZUy5FTlRFUikgJiZcXG4gICAgICAgICAgICBhcHBTdGF0ZS5tdWx0aUVsZW1lbnQgIT09IG51bGwpLFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgYXBwU3RhdGUsIHVwZGF0ZURhdGEgfSkgPT4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uVG9vbEJ1dHRvbiwgeyB0eXBlOiBcXFwiYnV0dG9uXFxcIiwgaWNvbjogX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5kb25lLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy50KShcXFwiYnV0dG9ucy5kb25lXFxcIiksIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy50KShcXFwiYnV0dG9ucy5kb25lXFxcIiksIG9uQ2xpY2s6IHVwZGF0ZURhdGEsIHZpc2libGU6IGFwcFN0YXRlLm11bHRpRWxlbWVudCAhPSBudWxsIH0sIHZvaWQgMCkpLFxcbn0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNUdhVzVoYkdsNlpTNTBjM2d1YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPenRCUVVFclFqdEJRVU56UWp0QlFVTmtPMEZCUTJVN1FVRkRXRHRCUVVObU8wRkJRMVU3UVVGRGJVSTdRVUZEYmtJN1FVRkRLMEk3UVVGRGJFTTdRVUZKVUR0QlFVTTJRanRCUVVWc1JDeE5RVUZOTEdOQlFXTXNSMEZCUnl4dFJFRkJVU3hEUVVGRE8wbEJRM0pETEVsQlFVa3NSVUZCUlN4VlFVRlZPMGxCUTJoQ0xFOUJRVThzUlVGQlJTeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEdOQlFXTXNSVUZCUlN4RlFVRkZMRVZCUVVVN08xRkJRemRFTEVsQlFVa3NVVUZCVVN4RFFVRkRMRzlDUVVGdlFpeEZRVUZGTzFsQlEycERMRTFCUVUwc1JVRkJSU3hUUVVGVExFVkJRVVVzYlVKQlFXMUNMRVZCUVVVc2FVSkJRV2xDTEVWQlFVVXNSMEZEZWtRc1VVRkJVU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRPMWxCUTJoRExFMUJRVTBzVDBGQlR5eEhRVUZITEhsR1FVRTRRaXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFsQlJURkVMRWxCUVVrc1QwRkJUeXhGUVVGRk8yZENRVU5ZTEVsQlFVa3NjMFZCUVdkQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVTdiMEpCUXpkQ0xEUkZRVUY1UWl4RFFVTjJRaXhQUVVGUExFVkJRMUFzYlVKQlFXMUNMRVZCUTI1Q0xHbENRVUZwUWl4RFFVTnNRaXhEUVVGRE8ybENRVU5JTzJkQ1FVTkVMRTlCUVU4N2IwSkJRMHdzVVVGQlVTeEZRVU5PTEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zU1VGQlNTeHBSVUZCZFVJc1EwRkJReXhQUVVGUExFTkJRVU03ZDBKQlF6TkVMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeExRVUZMTEU5QlFVOHNRMEZCUXl4RlFVRkZMRU5CUVVNN2QwSkJReTlETEVOQlFVTXNRMEZCUXl4VFFVRlRPMjlDUVVObUxGRkJRVkVzYTBOQlEwZ3NVVUZCVVN4TFFVTllMRzlDUVVGdlFpeEZRVUZGTEVsQlFVa3NSMEZETTBJN2IwSkJRMFFzWlVGQlpTeEZRVUZGTEVsQlFVazdhVUpCUTNSQ0xFTkJRVU03WVVGRFNEdFRRVU5HTzFGQlJVUXNTVUZCU1N4WFFVRlhMRWRCUVVjc1VVRkJVU3hEUVVGRE8xRkJSVE5DTEVsQlFVa3NVVUZCVVN4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTzFsQlEyaERMSEZGUVVGaExFTkJRVU1zVVVGQlVTeERRVUZETEcxQ1FVRnRRaXhGUVVGRkxFVkJRVVVzVTBGQlV5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xTkJRM3BGTzFGQlJVUXNTVUZCU1N4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExHRkJRV0VzV1VGQldTeFhRVUZYTEVWQlFVVTdXVUZEZUVRc1kwRkJZeXhGUVVGRkxFTkJRVU03VTBGRGJFSTdVVUZGUkN4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEZGQlFWRXNRMEZCUXl4WlFVRlpPMWxCUXpkRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNXVUZCV1R0WlFVTjJRaXhEUVVGRExFTkJRVU1zWlVGQlVTeERRVUZETEdOQlFXTXNNRU5CUVVVc1NVRkJTU3hOUVVGTExGVkJRVlU3WjBKQlF6bERMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zWTBGQll6dG5Ra0ZEZWtJc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF6dFJRVVZVTEVsQlFVa3NhVUpCUVdsQ0xFVkJRVVU3V1VGRGNrSXNNa0pCUVRKQ08xbEJRek5DTEVsQlEwVXNhVUpCUVdsQ0xFTkJRVU1zU1VGQlNTeExRVUZMTEZWQlFWVTdaMEpCUTNKRExGRkJRVkVzUTBGQlF5eHRRa0ZCYlVJc1MwRkJTeXhQUVVGUExFVkJRM2hETzJkQ1FVTkJMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1IwRkJSeXhwUWtGQmFVSXNRMEZCUXp0blFrRkRla1FzU1VGRFJTeERRVUZETEd0Q1FVRnJRanR2UWtGRGJrSXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEV0QlFVc3NhMEpCUVd0Q0xFVkJRMmhFTzI5Q1FVTkJMSEZGUVVGaExFTkJRVU1zYVVKQlFXbENMRVZCUVVVN2QwSkJReTlDTEUxQlFVMHNSVUZCUlN4cFFrRkJhVUlzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dHhRa0ZET1VNc1EwRkJReXhEUVVGRE8ybENRVU5LTzJGQlEwWTdXVUZEUkN4SlFVRkpMR2xGUVVGMVFpeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFVkJRVVU3WjBKQlF6bERMRmRCUVZjc1IwRkJSeXhYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yRkJRM2hETzFsQlJVUXNNa05CUVRKRE8xbEJRek5ETEhGRFFVRnhRenRaUVVOeVF5dzJSRUZCTmtRN1dVRkROMFFzVFVGQlRTeE5RVUZOTEVkQlFVY3NhMFJCUVZjc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTXhSU3hKUVVORkxHbENRVUZwUWl4RFFVRkRMRWxCUVVrc1MwRkJTeXhOUVVGTk8yZENRVU5xUXl4cFFrRkJhVUlzUTBGQlF5eEpRVUZKTEV0QlFVc3NWVUZCVlN4RlFVTnlRenRuUWtGRFFTeEpRVUZKTEUxQlFVMHNSVUZCUlR0dlFrRkRWaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhOUVVGTkxFTkJRVU03YjBKQlF6VkRMRTFCUVUwc1ZVRkJWU3hIUVVGSExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkRha01zY1VWQlFXRXNRMEZCUXl4cFFrRkJhVUlzUlVGQlJUdDNRa0ZETDBJc1RVRkJUU3hGUVVGRkxGVkJRVlVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGRGRFTXNTMEZCU3l4TFFVRkxMRlZCUVZVc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF6czBRa0ZETjBJc1EwRkJReXhEUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlZ6czBRa0ZETTBNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGRFZqdHhRa0ZEUml4RFFVRkRMRU5CUVVNN2FVSkJRMG83WVVGRFJqdFpRVVZFTEVsQlEwVXNjMFZCUVdkQ0xFTkJRVU1zYVVKQlFXbENMRU5CUVVNN1owSkJRMjVETEVOQlFVTXNUVUZCVFR0blFrRkRVQ3hwUWtGQmFVSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUlVGRGJrTTdaMEpCUTBFc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl3clIwRkJiMFFzUTBGRGFrVXNhVUpCUVdsQ0xFVkJRMnBDTEVOQlFVTXNRMEZCUXl4RFFVTklMRU5CUVVNN1owSkJRMFlzZVVWQlFYTkNMRU5CUTNCQ0xHbENRVUZwUWl4RlFVTnFRaXhSUVVGUkxFVkJRMUlzT0VSQlFXTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlJTeEZRVU5zUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGRFZDeERRVUZETzJGQlEwZzdXVUZGUkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExHRkJRV0VzU1VGQlNTeFJRVUZSTEVOQlFVTXNWMEZCVnl4TFFVRkxMRlZCUVZVc1JVRkJSVHRuUWtGRGJFVXNVVUZCVVN4RFFVRkRMR3RDUVVGclFpeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXp0aFFVTXhSRHRUUVVOR08xRkJSVVFzU1VGRFJTeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMR0ZCUVdFc1NVRkJTU3hSUVVGUkxFTkJRVU1zVjBGQlZ5eExRVUZMTEZWQlFWVXNRMEZCUXp0WlFVTm9SU3hEUVVGRExHbENRVUZwUWl4RlFVTnNRanRaUVVOQkxHMUVRVUZYTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1UwRkRja0k3VVVGRlJDeFBRVUZQTzFsQlEwd3NVVUZCVVN4RlFVRkZMRmRCUVZjN1dVRkRja0lzVVVGQlVTeHJRMEZEU0N4UlFVRlJMRXRCUTFnc1YwRkJWeXhGUVVOVUxFTkJRVU1zVVVGQlVTeERRVUZETEdGQlFXRXNTVUZCU1N4UlFVRlJMRU5CUVVNc1YwRkJWeXhMUVVGTExGVkJRVlVzUTBGQlF6dHZRa0ZETDBRc2FVSkJRV2xDTzI5Q1FVTm1MRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zVjBGQlZ6dHZRa0ZEZEVJc1EwRkJReXhEUVVGRExGZEJRVmNzUlVGRGFrSXNaVUZCWlN4RlFVRkZMRWxCUVVrc1JVRkRja0lzV1VGQldTeEZRVUZGTEVsQlFVa3NSVUZEYkVJc1kwRkJZeXhGUVVGRkxFbEJRVWtzUlVGRGNFSXNhVUpCUVdsQ0xFVkJRVVVzU1VGQlNTeEZRVU4yUWl4cFFrRkJhVUlzUlVGQlJTeEZRVUZGTEVWQlEzSkNMR3RDUVVGclFpeEZRVU5vUWl4cFFrRkJhVUk3YjBKQlEycENMRU5CUVVNc1VVRkJVU3hEUVVGRExHRkJRV0U3YjBKQlEzWkNMRkZCUVZFc1EwRkJReXhYUVVGWExFdEJRVXNzVlVGQlZUdHZRa0ZEYWtNc1EwRkJReXhwUTBGRFRTeFJRVUZSTEVOQlFVTXNhMEpCUVd0Q0xFdEJRemxDTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNTVUZCU1N4SlFVVm9ReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEd0Q1FVRnJRaXhGUVVOcVF5eHRRa0ZCYlVJc1JVRkJSU3hKUVVGSkxFZEJRekZDTzFsQlEwUXNaVUZCWlN4RlFVRkZMRkZCUVZFc1EwRkJReXhYUVVGWExFdEJRVXNzVlVGQlZUdFRRVU55UkN4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVORUxFOUJRVThzUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4UlFVRlJMRVZCUVVVc1JVRkJSU3hEUVVNelFpeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRXRCUVVzc09FTkJRVmM3VVVGRGVFSXNRMEZCUXl4UlFVRlJMRU5CUVVNc2IwSkJRVzlDTEV0QlFVc3NTVUZCU1R0WlFVTnlReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEdWQlFXVXNTVUZCU1N4UlFVRlJMRU5CUVVNc1dVRkJXU3hMUVVGTExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYmtVc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEV0QlFVc3NPRU5CUVZjc1NVRkJTU3hMUVVGTExFTkJRVU1zUjBGQlJ5eExRVUZMTERaRFFVRlZMRU5CUVVNN1dVRkRkRVFzVVVGQlVTeERRVUZETEZsQlFWa3NTMEZCU3l4SlFVRkpMRU5CUVVNN1NVRkRia01zWTBGQll5eEZRVUZGTEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlF6VkRMSFZFUVVGRExEaEVRVUZWTEVsQlExUXNTVUZCU1N4RlFVRkRMRkZCUVZFc1JVRkRZaXhKUVVGSkxFVkJRVVVzYlVSQlFVa3NSVUZEVml4TFFVRkxMRVZCUVVVc2QwTkJRVU1zUTBGQlF5eGpRVUZqTEVOQlFVTXNaMEpCUTFvc2QwTkJRVU1zUTBGQlF5eGpRVUZqTEVOQlFVTXNSVUZETjBJc1QwRkJUeXhGUVVGRkxGVkJRVlVzUlVGRGJrSXNUMEZCVHl4RlFVRkZMRkZCUVZFc1EwRkJReXhaUVVGWkxFbEJRVWtzU1VGQlNTeFhRVU4wUXl4RFFVTklPME5CUTBZc1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMkZqZEdsdmJuTXZZV04wYVc5dVJtbHVZV3hwZW1VdWRITjRQMlkwTUdJaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dTMFZaVXlCOUlHWnliMjBnWENJdUxpOXJaWGx6WENJN1hHNXBiWEJ2Y25RZ2V5QnBjMGx1ZG1semFXSnNlVk50WVd4c1JXeGxiV1Z1ZENCOUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MFhDSTdYRzVwYlhCdmNuUWdleUJ5WlhObGRFTjFjbk52Y2lCOUlHWnliMjBnWENJdUxpOTFkR2xzYzF3aU8xeHVhVzF3YjNKMElIc2dWRzl2YkVKMWRIUnZiaUI5SUdaeWIyMGdYQ0l1TGk5amIyMXdiMjVsYm5SekwxUnZiMnhDZFhSMGIyNWNJanRjYm1sdGNHOXlkQ0I3SUdSdmJtVWdmU0JtY205dElGd2lMaTR2WTI5dGNHOXVaVzUwY3k5cFkyOXVjMXdpTzF4dWFXMXdiM0owSUhzZ2RDQjlJR1p5YjIwZ1hDSXVMaTlwTVRodVhDSTdYRzVwYlhCdmNuUWdleUJ5WldkcGMzUmxjaUI5SUdaeWIyMGdYQ0l1TDNKbFoybHpkR1Z5WENJN1hHNXBiWEJ2Y25RZ2V5QnRkWFJoZEdWRmJHVnRaVzUwSUgwZ1puSnZiU0JjSWk0dUwyVnNaVzFsYm5RdmJYVjBZWFJsUld4bGJXVnVkRndpTzF4dWFXMXdiM0owSUhzZ2FYTlFZWFJvUVV4dmIzQWdmU0JtY205dElGd2lMaTR2YldGMGFGd2lPMXh1YVcxd2IzSjBJSHNnVEdsdVpXRnlSV3hsYldWdWRFVmthWFJ2Y2lCOUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MEwyeHBibVZoY2tWc1pXMWxiblJGWkdsMGIzSmNJanRjYm1sdGNHOXlkQ0JUWTJWdVpTQm1jbTl0SUZ3aUxpNHZjMk5sYm1VdlUyTmxibVZjSWp0Y2JtbHRjRzl5ZENCN1hHNGdJRzFoZVdKbFFtbHVaRXhwYm1WaGNrVnNaVzFsYm5Rc1hHNGdJR0pwYm1SUGNsVnVZbWx1WkV4cGJtVmhja1ZzWlcxbGJuUXNYRzU5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwTDJKcGJtUnBibWRjSWp0Y2JtbHRjRzl5ZENCN0lHbHpRbWx1WkdsdVowVnNaVzFsYm5RZ2ZTQm1jbTl0SUZ3aUxpNHZaV3hsYldWdWRDOTBlWEJsUTJobFkydHpYQ0k3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JoWTNScGIyNUdhVzVoYkdsNlpTQTlJSEpsWjJsemRHVnlLSHRjYmlBZ2JtRnRaVG9nWENKbWFXNWhiR2w2WlZ3aUxGeHVJQ0J3WlhKbWIzSnRPaUFvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCZkxDQjdJR05oYm5aaGN5d2dabTlqZFhORGIyNTBZV2x1WlhJZ2ZTa2dQVDRnZTF4dUlDQWdJR2xtSUNoaGNIQlRkR0YwWlM1bFpHbDBhVzVuVEdsdVpXRnlSV3hsYldWdWRDa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2V5QmxiR1Z0Wlc1MFNXUXNJSE4wWVhKMFFtbHVaR2x1WjBWc1pXMWxiblFzSUdWdVpFSnBibVJwYm1kRmJHVnRaVzUwSUgwZ1BWeHVJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpTNWxaR2wwYVc1blRHbHVaV0Z5Uld4bGJXVnVkRHRjYmlBZ0lDQWdJR052Ym5OMElHVnNaVzFsYm5RZ1BTQk1hVzVsWVhKRmJHVnRaVzUwUldScGRHOXlMbWRsZEVWc1pXMWxiblFvWld4bGJXVnVkRWxrS1R0Y2JseHVJQ0FnSUNBZ2FXWWdLR1ZzWlcxbGJuUXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHbHpRbWx1WkdsdVowVnNaVzFsYm5Rb1pXeGxiV1Z1ZENrcElIdGNiaUFnSUNBZ0lDQWdJQ0JpYVc1a1QzSlZibUpwYm1STWFXNWxZWEpGYkdWdFpXNTBLRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSE4wWVhKMFFtbHVaR2x1WjBWc1pXMWxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmxibVJDYVc1a2FXNW5SV3hsYldWdWRDeGNiaUFnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRITTZYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJHVnRaVzUwTG5CdmFXNTBjeTVzWlc1bmRHZ2dQQ0F5SUh4OElHbHpTVzUyYVhOcFlteDVVMjFoYkd4RmJHVnRaVzUwS0dWc1pXMWxiblFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRDhnWld4bGJXVnVkSE11Wm1sc2RHVnlLQ2hsYkNrZ1BUNGdaV3d1YVdRZ0lUMDlJR1ZzWlcxbGJuUXVhV1FwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRG9nZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnSUNBZ0lHRndjRk4wWVhSbE9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBdUxpNWhjSEJUZEdGMFpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUdWa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1ME9pQnVkV3hzTEZ4dUlDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQ0FnWTI5dGJXbDBWRzlJYVhOMGIzSjVPaUIwY25WbExGeHVJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lHeGxkQ0J1WlhkRmJHVnRaVzUwY3lBOUlHVnNaVzFsYm5Sek8xeHVYRzRnSUNBZ2FXWWdLR0Z3Y0ZOMFlYUmxMbkJsYm1ScGJtZEpiV0ZuWlVWc1pXMWxiblFwSUh0Y2JpQWdJQ0FnSUcxMWRHRjBaVVZzWlcxbGJuUW9ZWEJ3VTNSaGRHVXVjR1Z1WkdsdVowbHRZV2RsUld4bGJXVnVkQ3dnZXlCcGMwUmxiR1YwWldRNklIUnlkV1VnZlN3Z1ptRnNjMlVwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoM2FXNWtiM2N1Wkc5amRXMWxiblF1WVdOMGFYWmxSV3hsYldWdWRDQnBibk4wWVc1alpXOW1JRWhVVFV4RmJHVnRaVzUwS1NCN1hHNGdJQ0FnSUNCbWIyTjFjME52Ym5SaGFXNWxjaWdwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHMTFiSFJwVUc5cGJuUkZiR1Z0Wlc1MElEMGdZWEJ3VTNSaGRHVXViWFZzZEdsRmJHVnRaVzUwWEc0Z0lDQWdJQ0EvSUdGd2NGTjBZWFJsTG0xMWJIUnBSV3hsYldWdWRGeHVJQ0FnSUNBZ09pQmhjSEJUZEdGMFpTNWxaR2wwYVc1blJXeGxiV1Z1ZEQ4dWRIbHdaU0E5UFQwZ1hDSm1jbVZsWkhKaGQxd2lYRzRnSUNBZ0lDQS9JR0Z3Y0ZOMFlYUmxMbVZrYVhScGJtZEZiR1Z0Wlc1MFhHNGdJQ0FnSUNBNklHNTFiR3c3WEc1Y2JpQWdJQ0JwWmlBb2JYVnNkR2xRYjJsdWRFVnNaVzFsYm5RcElIdGNiaUFnSUNBZ0lDOHZJSEJsYmlCaGJtUWdiVzkxYzJVZ2FHRjJaU0JvYjNabGNseHVJQ0FnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdJQ0J0ZFd4MGFWQnZhVzUwUld4bGJXVnVkQzUwZVhCbElDRTlQU0JjSW1aeVpXVmtjbUYzWENJZ0ppWmNiaUFnSUNBZ0lDQWdZWEJ3VTNSaGRHVXViR0Z6ZEZCdmFXNTBaWEpFYjNkdVYybDBhQ0FoUFQwZ1hDSjBiM1ZqYUZ3aVhHNGdJQ0FnSUNBcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2V5QndiMmx1ZEhNc0lHeGhjM1JEYjIxdGFYUjBaV1JRYjJsdWRDQjlJRDBnYlhWc2RHbFFiMmx1ZEVWc1pXMWxiblE3WEc0Z0lDQWdJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lDQWdJQ0FoYkdGemRFTnZiVzFwZEhSbFpGQnZhVzUwSUh4OFhHNGdJQ0FnSUNBZ0lDQWdjRzlwYm5SelczQnZhVzUwY3k1c1pXNW5kR2dnTFNBeFhTQWhQVDBnYkdGemRFTnZiVzFwZEhSbFpGQnZhVzUwWEc0Z0lDQWdJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJRzExZEdGMFpVVnNaVzFsYm5Rb2JYVnNkR2xRYjJsdWRFVnNaVzFsYm5Rc0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhCdmFXNTBjem9nYlhWc2RHbFFiMmx1ZEVWc1pXMWxiblF1Y0c5cGJuUnpMbk5zYVdObEtEQXNJQzB4S1N4Y2JpQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tHbHpTVzUyYVhOcFlteDVVMjFoYkd4RmJHVnRaVzUwS0cxMWJIUnBVRzlwYm5SRmJHVnRaVzUwS1NrZ2UxeHVJQ0FnSUNBZ0lDQnVaWGRGYkdWdFpXNTBjeUE5SUc1bGQwVnNaVzFsYm5SekxuTnNhV05sS0RBc0lDMHhLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnTHk4Z1NXWWdkR2hsSUcxMWJIUnBJSEJ2YVc1MElHeHBibVVnWTJ4dmMyVnpJSFJvWlNCc2IyOXdMRnh1SUNBZ0lDQWdMeThnYzJWMElIUm9aU0JzWVhOMElIQnZhVzUwSUhSdklHWnBjbk4wSUhCdmFXNTBMbHh1SUNBZ0lDQWdMeThnVkdocGN5Qmxibk4xY21WeklIUm9ZWFFnYkc5dmNDQnlaVzFoYVc1eklHTnNiM05sWkNCaGRDQmthV1ptWlhKbGJuUWdjMk5oYkdWekxseHVJQ0FnSUNBZ1kyOXVjM1FnYVhOTWIyOXdJRDBnYVhOUVlYUm9RVXh2YjNBb2JYVnNkR2xRYjJsdWRFVnNaVzFsYm5RdWNHOXBiblJ6TENCaGNIQlRkR0YwWlM1NmIyOXRMblpoYkhWbEtUdGNiaUFnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnYlhWc2RHbFFiMmx1ZEVWc1pXMWxiblF1ZEhsd1pTQTlQVDBnWENKc2FXNWxYQ0lnZkh4Y2JpQWdJQ0FnSUNBZ2JYVnNkR2xRYjJsdWRFVnNaVzFsYm5RdWRIbHdaU0E5UFQwZ1hDSm1jbVZsWkhKaGQxd2lYRzRnSUNBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHbHpURzl2Y0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHeHBibVZRYjJsdWRITWdQU0J0ZFd4MGFWQnZhVzUwUld4bGJXVnVkQzV3YjJsdWRITTdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdabWx5YzNSUWIybHVkQ0E5SUd4cGJtVlFiMmx1ZEhOYk1GMDdYRzRnSUNBZ0lDQWdJQ0FnYlhWMFlYUmxSV3hsYldWdWRDaHRkV3gwYVZCdmFXNTBSV3hsYldWdWRDd2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NHOXBiblJ6T2lCc2FXNWxVRzlwYm5SekxtMWhjQ2dvY0c5cGJuUXNJR2x1WkdWNEtTQTlQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnBibVJsZUNBOVBUMGdiR2x1WlZCdmFXNTBjeTVzWlc1bmRHZ2dMU0F4WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUHlBb1cyWnBjbk4wVUc5cGJuUmJNRjBzSUdacGNuTjBVRzlwYm5SYk1WMWRJR0Z6SUdOdmJuTjBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRG9nY0c5cGJuUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBcExGeHVJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnYVhOQ2FXNWthVzVuUld4bGJXVnVkQ2h0ZFd4MGFWQnZhVzUwUld4bGJXVnVkQ2tnSmlaY2JpQWdJQ0FnSUNBZ0lXbHpURzl2Y0NBbUpseHVJQ0FnSUNBZ0lDQnRkV3gwYVZCdmFXNTBSV3hsYldWdWRDNXdiMmx1ZEhNdWJHVnVaM1JvSUQ0Z01WeHVJQ0FnSUNBZ0tTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElGdDRMQ0I1WFNBOUlFeHBibVZoY2tWc1pXMWxiblJGWkdsMGIzSXVaMlYwVUc5cGJuUkJkRWx1WkdWNFIyeHZZbUZzUTI5dmNtUnBibUYwWlhNb1hHNGdJQ0FnSUNBZ0lDQWdiWFZzZEdsUWIybHVkRVZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnTFRFc1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJRzFoZVdKbFFtbHVaRXhwYm1WaGNrVnNaVzFsYm5Rb1hHNGdJQ0FnSUNBZ0lDQWdiWFZzZEdsUWIybHVkRVZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnWVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0FnSUNBZ1UyTmxibVV1WjJWMFUyTmxibVVvYlhWc2RHbFFiMmx1ZEVWc1pXMWxiblFwSVN4Y2JpQWdJQ0FnSUNBZ0lDQjdJSGdzSUhrZ2ZTeGNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnYVdZZ0tDRmhjSEJUZEdGMFpTNWxiR1Z0Wlc1MFRHOWphMlZrSUNZbUlHRndjRk4wWVhSbExtVnNaVzFsYm5SVWVYQmxJQ0U5UFNCY0ltWnlaV1ZrY21GM1hDSXBJSHRjYmlBZ0lDQWdJQ0FnWVhCd1UzUmhkR1V1YzJWc1pXTjBaV1JGYkdWdFpXNTBTV1J6VzIxMWJIUnBVRzlwYm5SRmJHVnRaVzUwTG1sa1hTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ0tDRmhjSEJUZEdGMFpTNWxiR1Z0Wlc1MFRHOWphMlZrSUNZbUlHRndjRk4wWVhSbExtVnNaVzFsYm5SVWVYQmxJQ0U5UFNCY0ltWnlaV1ZrY21GM1hDSXBJSHg4WEc0Z0lDQWdJQ0FoYlhWc2RHbFFiMmx1ZEVWc1pXMWxiblJjYmlBZ0lDQXBJSHRjYmlBZ0lDQWdJSEpsYzJWMFEzVnljMjl5S0dOaGJuWmhjeWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lHVnNaVzFsYm5Sek9pQnVaWGRGYkdWdFpXNTBjeXhjYmlBZ0lDQWdJR0Z3Y0ZOMFlYUmxPaUI3WEc0Z0lDQWdJQ0FnSUM0dUxtRndjRk4wWVhSbExGeHVJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MFZIbHdaVHBjYmlBZ0lDQWdJQ0FnSUNBb1lYQndVM1JoZEdVdVpXeGxiV1Z1ZEV4dlkydGxaQ0I4ZkNCaGNIQlRkR0YwWlM1bGJHVnRaVzUwVkhsd1pTQTlQVDBnWENKbWNtVmxaSEpoZDF3aUtTQW1KbHh1SUNBZ0lDQWdJQ0FnSUcxMWJIUnBVRzlwYm5SRmJHVnRaVzUwWEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JR0Z3Y0ZOMFlYUmxMbVZzWlcxbGJuUlVlWEJsWEc0Z0lDQWdJQ0FnSUNBZ0lDQTZJRndpYzJWc1pXTjBhVzl1WENJc1hHNGdJQ0FnSUNBZ0lHUnlZV2RuYVc1blJXeGxiV1Z1ZERvZ2JuVnNiQ3hjYmlBZ0lDQWdJQ0FnYlhWc2RHbEZiR1Z0Wlc1ME9pQnVkV3hzTEZ4dUlDQWdJQ0FnSUNCbFpHbDBhVzVuUld4bGJXVnVkRG9nYm5Wc2JDeGNiaUFnSUNBZ0lDQWdjM1JoY25SQ2IzVnVaRVZzWlcxbGJuUTZJRzUxYkd3c1hHNGdJQ0FnSUNBZ0lITjFaMmRsYzNSbFpFSnBibVJwYm1kek9pQmJYU3hjYmlBZ0lDQWdJQ0FnYzJWc1pXTjBaV1JGYkdWdFpXNTBTV1J6T2x4dUlDQWdJQ0FnSUNBZ0lHMTFiSFJwVUc5cGJuUkZiR1Z0Wlc1MElDWW1YRzRnSUNBZ0lDQWdJQ0FnSVdGd2NGTjBZWFJsTG1Wc1pXMWxiblJNYjJOclpXUWdKaVpjYmlBZ0lDQWdJQ0FnSUNCaGNIQlRkR0YwWlM1bGJHVnRaVzUwVkhsd1pTQWhQVDBnWENKbWNtVmxaSEpoZDF3aVhHNGdJQ0FnSUNBZ0lDQWdJQ0EvSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdUxpNWhjSEJUZEdGMFpTNXpaV3hsWTNSbFpFVnNaVzFsYm5SSlpITXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdXMjExYkhScFVHOXBiblJGYkdWdFpXNTBMbWxrWFRvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ09pQmhjSEJUZEdGMFpTNXpaV3hsWTNSbFpFVnNaVzFsYm5SSlpITXNYRzRnSUNBZ0lDQWdJSEJsYm1ScGJtZEpiV0ZuWlVWc1pXMWxiblE2SUc1MWJHd3NYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdZMjl0YldsMFZHOUlhWE4wYjNKNU9pQmhjSEJUZEdGMFpTNWxiR1Z0Wlc1MFZIbHdaU0E5UFQwZ1hDSm1jbVZsWkhKaGQxd2lMRnh1SUNBZ0lIMDdYRzRnSUgwc1hHNGdJR3RsZVZSbGMzUTZJQ2hsZG1WdWRDd2dZWEJ3VTNSaGRHVXBJRDArWEc0Z0lDQWdLR1YyWlc1MExtdGxlU0E5UFQwZ1MwVlpVeTVGVTBOQlVFVWdKaVpjYmlBZ0lDQWdJQ2hoY0hCVGRHRjBaUzVsWkdsMGFXNW5UR2x1WldGeVJXeGxiV1Z1ZENBaFBUMGdiblZzYkNCOGZGeHVJQ0FnSUNBZ0lDQW9JV0Z3Y0ZOMFlYUmxMbVJ5WVdkbmFXNW5SV3hsYldWdWRDQW1KaUJoY0hCVGRHRjBaUzV0ZFd4MGFVVnNaVzFsYm5RZ1BUMDlJRzUxYkd3cEtTa2dmSHhjYmlBZ0lDQW9LR1YyWlc1MExtdGxlU0E5UFQwZ1MwVlpVeTVGVTBOQlVFVWdmSHdnWlhabGJuUXVhMlY1SUQwOVBTQkxSVmxUTGtWT1ZFVlNLU0FtSmx4dUlDQWdJQ0FnWVhCd1UzUmhkR1V1YlhWc2RHbEZiR1Z0Wlc1MElDRTlQU0J1ZFd4c0tTeGNiaUFnVUdGdVpXeERiMjF3YjI1bGJuUTZJQ2g3SUdGd2NGTjBZWFJsTENCMWNHUmhkR1ZFWVhSaElIMHBJRDArSUNoY2JpQWdJQ0E4Vkc5dmJFSjFkSFJ2Ymx4dUlDQWdJQ0FnZEhsd1pUMWNJbUoxZEhSdmJsd2lYRzRnSUNBZ0lDQnBZMjl1UFh0a2IyNWxmVnh1SUNBZ0lDQWdkR2wwYkdVOWUzUW9YQ0ppZFhSMGIyNXpMbVJ2Ym1WY0lpbDlYRzRnSUNBZ0lDQmhjbWxoTFd4aFltVnNQWHQwS0Z3aVluVjBkRzl1Y3k1a2IyNWxYQ0lwZlZ4dUlDQWdJQ0FnYjI1RGJHbGphejE3ZFhCa1lYUmxSR0YwWVgxY2JpQWdJQ0FnSUhacGMybGliR1U5ZTJGd2NGTjBZWFJsTG0xMWJIUnBSV3hsYldWdWRDQWhQU0J1ZFd4c2ZWeHVJQ0FnSUM4K1hHNGdJQ2tzWEc1OUtUdGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9hY3Rpb25zL2FjdGlvbkZpbmFsaXplLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25GbGlwLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9hY3Rpb25zL2FjdGlvbkZsaXAudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25GbGlwSG9yaXpvbnRhbFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvbkZsaXBIb3Jpem9udGFsKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25GbGlwVmVydGljYWxcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25GbGlwVmVydGljYWwpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9yZWdpc3RlciAqLyBcXFwiLi4vLi4vYWN0aW9ucy9yZWdpc3Rlci50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lICovIFxcXCIuLi8uLi9zY2VuZS9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L211dGF0ZUVsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvbXV0YXRlRWxlbWVudC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9yZXNpemVFbGVtZW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC9yZXNpemVFbGVtZW50cyAqLyBcXFwiLi4vLi4vZWxlbWVudC9yZXNpemVFbGVtZW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF90cmFuc2Zvcm1IYW5kbGVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L3RyYW5zZm9ybUhhbmRsZXMgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdHJhbnNmb3JtSGFuZGxlcy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L3R5cGVDaGVja3MgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdHlwZUNoZWNrcy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L2JpbmRpbmcgKi8gXFxcIi4uLy4uL2VsZW1lbnQvYmluZGluZy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9saW5lYXJFbGVtZW50RWRpdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L2xpbmVhckVsZW1lbnRFZGl0b3IgKi8gXFxcIi4uLy4uL2VsZW1lbnQvbGluZWFyRWxlbWVudEVkaXRvci50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcbmNvbnN0IGVuYWJsZUFjdGlvbkZsaXBIb3Jpem9udGFsID0gKGVsZW1lbnRzLCBhcHBTdGF0ZSkgPT4ge1xcbiAgICBjb25zdCBlbGlnaWJsZUVsZW1lbnRzID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0U2VsZWN0ZWRFbGVtZW50cykoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKSwgYXBwU3RhdGUpO1xcbiAgICByZXR1cm4gZWxpZ2libGVFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgZWxpZ2libGVFbGVtZW50c1swXS50eXBlICE9PSBcXFwidGV4dFxcXCI7XFxufTtcXG5jb25zdCBlbmFibGVBY3Rpb25GbGlwVmVydGljYWwgPSAoZWxlbWVudHMsIGFwcFN0YXRlKSA9PiB7XFxuICAgIGNvbnN0IGVsaWdpYmxlRWxlbWVudHMgPSAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRTZWxlY3RlZEVsZW1lbnRzKSgoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldE5vbkRlbGV0ZWRFbGVtZW50cykoZWxlbWVudHMpLCBhcHBTdGF0ZSk7XFxuICAgIHJldHVybiBlbGlnaWJsZUVsZW1lbnRzLmxlbmd0aCA9PT0gMTtcXG59O1xcbmNvbnN0IGFjdGlvbkZsaXBIb3Jpem9udGFsID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImZsaXBIb3Jpem9udGFsXFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSkgPT4ge1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBlbGVtZW50czogZmxpcFNlbGVjdGVkRWxlbWVudHMoZWxlbWVudHMsIGFwcFN0YXRlLCBcXFwiaG9yaXpvbnRhbFxcXCIpLFxcbiAgICAgICAgICAgIGFwcFN0YXRlLFxcbiAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogdHJ1ZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIGtleVRlc3Q6IChldmVudCkgPT4gZXZlbnQuc2hpZnRLZXkgJiYgZXZlbnQuY29kZSA9PT0gXFxcIktleUhcXFwiLFxcbiAgICBjb250ZXh0SXRlbUxhYmVsOiBcXFwibGFiZWxzLmZsaXBIb3Jpem9udGFsXFxcIixcXG4gICAgY29udGV4dEl0ZW1QcmVkaWNhdGU6IChlbGVtZW50cywgYXBwU3RhdGUpID0+IGVuYWJsZUFjdGlvbkZsaXBIb3Jpem9udGFsKGVsZW1lbnRzLCBhcHBTdGF0ZSksXFxufSk7XFxuY29uc3QgYWN0aW9uRmxpcFZlcnRpY2FsID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImZsaXBWZXJ0aWNhbFxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgZWxlbWVudHM6IGZsaXBTZWxlY3RlZEVsZW1lbnRzKGVsZW1lbnRzLCBhcHBTdGF0ZSwgXFxcInZlcnRpY2FsXFxcIiksXFxuICAgICAgICAgICAgYXBwU3RhdGUsXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiB0cnVlLFxcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiBldmVudC5zaGlmdEtleSAmJiBldmVudC5jb2RlID09PSBcXFwiS2V5VlxcXCIsXFxuICAgIGNvbnRleHRJdGVtTGFiZWw6IFxcXCJsYWJlbHMuZmxpcFZlcnRpY2FsXFxcIixcXG4gICAgY29udGV4dEl0ZW1QcmVkaWNhdGU6IChlbGVtZW50cywgYXBwU3RhdGUpID0+IGVuYWJsZUFjdGlvbkZsaXBWZXJ0aWNhbChlbGVtZW50cywgYXBwU3RhdGUpLFxcbn0pO1xcbmNvbnN0IGZsaXBTZWxlY3RlZEVsZW1lbnRzID0gKGVsZW1lbnRzLCBhcHBTdGF0ZSwgZmxpcERpcmVjdGlvbikgPT4ge1xcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0U2VsZWN0ZWRFbGVtZW50cykoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKSwgYXBwU3RhdGUpO1xcbiAgICAvLyByZW1vdmUgb25jZSB3ZSBhbGxvdyBmb3IgZ3JvdXBzIG9mIGVsZW1lbnRzIHRvIGJlIGZsaXBwZWRcXG4gICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID4gMSkge1xcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRzO1xcbiAgICB9XFxuICAgIGNvbnN0IHVwZGF0ZWRFbGVtZW50cyA9IGZsaXBFbGVtZW50cyhzZWxlY3RlZEVsZW1lbnRzLCBhcHBTdGF0ZSwgZmxpcERpcmVjdGlvbik7XFxuICAgIGNvbnN0IHVwZGF0ZWRFbGVtZW50c01hcCA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLmFycmF5VG9NYXApKHVwZGF0ZWRFbGVtZW50cyk7XFxuICAgIHJldHVybiBlbGVtZW50cy5tYXAoKGVsZW1lbnQpID0+IHVwZGF0ZWRFbGVtZW50c01hcC5nZXQoZWxlbWVudC5pZCkgfHwgZWxlbWVudCk7XFxufTtcXG5jb25zdCBmbGlwRWxlbWVudHMgPSAoZWxlbWVudHMsIGFwcFN0YXRlLCBmbGlwRGlyZWN0aW9uKSA9PiB7XFxuICAgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcXG4gICAgICAgIGZsaXBFbGVtZW50KGVsZW1lbnQsIGFwcFN0YXRlKTtcXG4gICAgICAgIC8vIElmIHZlcnRpY2FsIGZsaXAsIHJvdGF0ZSBhbiBleHRyYSAxODBcXG4gICAgICAgIGlmIChmbGlwRGlyZWN0aW9uID09PSBcXFwidmVydGljYWxcXFwiKSB7XFxuICAgICAgICAgICAgcm90YXRlRWxlbWVudChlbGVtZW50LCBNYXRoLlBJKTtcXG4gICAgICAgIH1cXG4gICAgfSk7XFxuICAgIHJldHVybiBlbGVtZW50cztcXG59O1xcbmNvbnN0IGZsaXBFbGVtZW50ID0gKGVsZW1lbnQsIGFwcFN0YXRlKSA9PiB7XFxuICAgIGNvbnN0IG9yaWdpbmFsWCA9IGVsZW1lbnQueDtcXG4gICAgY29uc3Qgb3JpZ2luYWxZID0gZWxlbWVudC55O1xcbiAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnQud2lkdGg7XFxuICAgIGNvbnN0IGhlaWdodCA9IGVsZW1lbnQuaGVpZ2h0O1xcbiAgICBjb25zdCBvcmlnaW5hbEFuZ2xlID0gKDAsX2VsZW1lbnRfcmVzaXplRWxlbWVudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5ub3JtYWxpemVBbmdsZSkoZWxlbWVudC5hbmdsZSk7XFxuICAgIGxldCBmaW5hbE9mZnNldFggPSAwO1xcbiAgICBpZiAoKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmlzTGluZWFyRWxlbWVudCkoZWxlbWVudCkgfHwgKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmlzRnJlZURyYXdFbGVtZW50KShlbGVtZW50KSkge1xcbiAgICAgICAgZmluYWxPZmZzZXRYID1cXG4gICAgICAgICAgICBlbGVtZW50LnBvaW50cy5yZWR1Y2UoKG1heCwgcG9pbnQpID0+IE1hdGgubWF4KG1heCwgcG9pbnRbMF0pLCAwKSAqIDIgLVxcbiAgICAgICAgICAgICAgICBlbGVtZW50LndpZHRoO1xcbiAgICB9XFxuICAgIC8vIFJvdGF0ZSBiYWNrIHRvIHplcm8sIGlmIG5lY2Vzc2FyeVxcbiAgICAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ubXV0YXRlRWxlbWVudCkoZWxlbWVudCwge1xcbiAgICAgICAgYW5nbGU6ICgwLF9lbGVtZW50X3Jlc2l6ZUVsZW1lbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18ubm9ybWFsaXplQW5nbGUpKDApLFxcbiAgICB9KTtcXG4gICAgLy8gRmxpcCB1bnJvdGF0ZWQgYnkgcHVsbGluZyBUcmFuc2Zvcm1IYW5kbGUgdG8gb3Bwb3NpdGUgc2lkZVxcbiAgICBjb25zdCB0cmFuc2Zvcm1IYW5kbGVzID0gKDAsX2VsZW1lbnRfdHJhbnNmb3JtSGFuZGxlc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFRyYW5zZm9ybUhhbmRsZXMpKGVsZW1lbnQsIGFwcFN0YXRlLnpvb20pO1xcbiAgICBsZXQgdXNpbmdOV0hhbmRsZSA9IHRydWU7XFxuICAgIGxldCBuZXdOQ29vcmRzWCA9IDA7XFxuICAgIGxldCBuSGFuZGxlID0gdHJhbnNmb3JtSGFuZGxlcy5udztcXG4gICAgaWYgKCFuSGFuZGxlKSB7XFxuICAgICAgICAvLyBVc2UgbmUgaGFuZGxlIGluc3RlYWRcXG4gICAgICAgIHVzaW5nTldIYW5kbGUgPSBmYWxzZTtcXG4gICAgICAgIG5IYW5kbGUgPSB0cmFuc2Zvcm1IYW5kbGVzLm5lO1xcbiAgICAgICAgaWYgKCFuSGFuZGxlKSB7XFxuICAgICAgICAgICAgKDAsX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLm11dGF0ZUVsZW1lbnQpKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgYW5nbGU6IG9yaWdpbmFsQW5nbGUsXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIGlmICgoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uaXNMaW5lYXJFbGVtZW50KShlbGVtZW50KSkge1xcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8IGVsZW1lbnQucG9pbnRzLmxlbmd0aDsgaW5kZXgrKykge1xcbiAgICAgICAgICAgIF9lbGVtZW50X2xpbmVhckVsZW1lbnRFZGl0b3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5MaW5lYXJFbGVtZW50RWRpdG9yLm1vdmVQb2ludHMoZWxlbWVudCwgW1xcbiAgICAgICAgICAgICAgICB7IGluZGV4LCBwb2ludDogWy1lbGVtZW50LnBvaW50c1tpbmRleF1bMF0sIGVsZW1lbnQucG9pbnRzW2luZGV4XVsxXV0gfSxcXG4gICAgICAgICAgICBdKTtcXG4gICAgICAgIH1cXG4gICAgICAgIF9lbGVtZW50X2xpbmVhckVsZW1lbnRFZGl0b3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5MaW5lYXJFbGVtZW50RWRpdG9yLm5vcm1hbGl6ZVBvaW50cyhlbGVtZW50KTtcXG4gICAgfVxcbiAgICBlbHNlIHtcXG4gICAgICAgIC8vIGNhbGN1bGF0ZSBuZXcgeC1jb29yZCBmb3IgdHJhbnNmb3JtYXRpb25cXG4gICAgICAgIG5ld05Db29yZHNYID0gdXNpbmdOV0hhbmRsZSA/IGVsZW1lbnQueCArIDIgKiB3aWR0aCA6IGVsZW1lbnQueCAtIDIgKiB3aWR0aDtcXG4gICAgICAgICgwLF9lbGVtZW50X3Jlc2l6ZUVsZW1lbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18ucmVzaXplU2luZ2xlRWxlbWVudCkoZWxlbWVudCwgdHJ1ZSwgZWxlbWVudCwgdXNpbmdOV0hhbmRsZSA/IFxcXCJud1xcXCIgOiBcXFwibmVcXFwiLCBmYWxzZSwgbmV3TkNvb3Jkc1gsIG5IYW5kbGVbMV0pO1xcbiAgICAgICAgLy8gZml4IHRoZSBzaXplIHRvIGFjY291bnQgZm9yIGhhbmRsZSBzaXplc1xcbiAgICAgICAgKDAsX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLm11dGF0ZUVsZW1lbnQpKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICB3aWR0aCxcXG4gICAgICAgICAgICBoZWlnaHQsXFxuICAgICAgICB9KTtcXG4gICAgfVxcbiAgICAvLyBSb3RhdGUgYnkgKDM2MCBkZWdyZWVzIC0gb3JpZ2luYWwgYW5nbGUpXFxuICAgIGxldCBhbmdsZSA9ICgwLF9lbGVtZW50X3Jlc2l6ZUVsZW1lbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18ubm9ybWFsaXplQW5nbGUpKDIgKiBNYXRoLlBJIC0gb3JpZ2luYWxBbmdsZSk7XFxuICAgIGlmIChhbmdsZSA8IDApIHtcXG4gICAgICAgIC8vIGNoZWNrLCBwcm9iYWJseSB1bm5lY2Vzc2FyeVxcbiAgICAgICAgYW5nbGUgPSAoMCxfZWxlbWVudF9yZXNpemVFbGVtZW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLm5vcm1hbGl6ZUFuZ2xlKShhbmdsZSArIDIgKiBNYXRoLlBJKTtcXG4gICAgfVxcbiAgICAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ubXV0YXRlRWxlbWVudCkoZWxlbWVudCwge1xcbiAgICAgICAgYW5nbGUsXFxuICAgIH0pO1xcbiAgICAvLyBNb3ZlIGJhY2sgdG8gb3JpZ2luYWwgc3BvdCB0byBhcHBlYXIgXFxcImZsaXBwZWQgaW4gcGxhY2VcXFwiXFxuICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5tdXRhdGVFbGVtZW50KShlbGVtZW50LCB7XFxuICAgICAgICB4OiBvcmlnaW5hbFggKyBmaW5hbE9mZnNldFgsXFxuICAgICAgICB5OiBvcmlnaW5hbFksXFxuICAgIH0pO1xcbiAgICAoMCxfZWxlbWVudF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18udXBkYXRlQm91bmRFbGVtZW50cykoZWxlbWVudCk7XFxufTtcXG5jb25zdCByb3RhdGVFbGVtZW50ID0gKGVsZW1lbnQsIHJvdGF0aW9uQW5nbGUpID0+IHtcXG4gICAgY29uc3Qgb3JpZ2luYWxYID0gZWxlbWVudC54O1xcbiAgICBjb25zdCBvcmlnaW5hbFkgPSBlbGVtZW50Lnk7XFxuICAgIGxldCBhbmdsZSA9ICgwLF9lbGVtZW50X3Jlc2l6ZUVsZW1lbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18ubm9ybWFsaXplQW5nbGUpKGVsZW1lbnQuYW5nbGUgKyByb3RhdGlvbkFuZ2xlKTtcXG4gICAgaWYgKGFuZ2xlIDwgMCkge1xcbiAgICAgICAgLy8gY2hlY2ssIHByb2JhYmx5IHVubmVjZXNzYXJ5XFxuICAgICAgICBhbmdsZSA9ICgwLF9lbGVtZW50X3Jlc2l6ZUVsZW1lbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18ubm9ybWFsaXplQW5nbGUpKDIgKiBNYXRoLlBJICsgYW5nbGUpO1xcbiAgICB9XFxuICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5tdXRhdGVFbGVtZW50KShlbGVtZW50LCB7XFxuICAgICAgICBhbmdsZSxcXG4gICAgfSk7XFxuICAgIC8vIE1vdmUgYmFjayB0byBvcmlnaW5hbCBzcG90XFxuICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5tdXRhdGVFbGVtZW50KShlbGVtZW50LCB7XFxuICAgICAgICB4OiBvcmlnaW5hbFgsXFxuICAgICAgICB5OiBvcmlnaW5hbFksXFxuICAgIH0pO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZV04wYVc5dWN5OWhZM1JwYjI1R2JHbHdMblJ6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3T3pzN096dEJRVUZ6UXp0QlFVTlRPMEZCUTBrN1FVRkRUVHRCUVVWMVFqdEJRVVZrTzBGQlExTTdRVUZEYkVJN1FVRkRXVHRCUVVNdlFqdEJRVVYwUXl4TlFVRk5MREJDUVVFd1FpeEhRVUZITEVOQlEycERMRkZCUVhORExFVkJRM1JETEZGQlFXdENMRVZCUTJ4Q0xFVkJRVVU3U1VGRFJpeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExESkVRVUZ0UWl4RFFVTXhReXdyUkVGQmNVSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkRMMElzVVVGQlVTeERRVU5VTEVOQlFVTTdTVUZEUml4UFFVRlBMR2RDUVVGblFpeERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hMUVVGTExFMUJRVTBzUTBGQlF6dEJRVU01UlN4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxIZENRVUYzUWl4SFFVRkhMRU5CUXk5Q0xGRkJRWE5ETEVWQlEzUkRMRkZCUVd0Q0xFVkJRMnhDTEVWQlFVVTdTVUZEUml4TlFVRk5MR2RDUVVGblFpeEhRVUZITERKRVFVRnRRaXhEUVVNeFF5d3JSRUZCY1VJc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGREwwSXNVVUZCVVN4RFFVTlVMRU5CUVVNN1NVRkRSaXhQUVVGUExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRGRrTXNRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3h2UWtGQmIwSXNSMEZCUnl4dFJFRkJVU3hEUVVGRE8wbEJRek5ETEVsQlFVa3NSVUZCUlN4blFrRkJaMEk3U1VGRGRFSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEZRVUZGTzFGQlF6bENMRTlCUVU4N1dVRkRUQ3hSUVVGUkxFVkJRVVVzYjBKQlFXOUNMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFpRVUZaTEVOQlFVTTdXVUZEYUVVc1VVRkJVVHRaUVVOU0xHVkJRV1VzUlVGQlJTeEpRVUZKTzFOQlEzUkNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJRMFFzVDBGQlR5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeEpRVUZKTEV0QlFVc3NRMEZCUXl4SlFVRkpMRXRCUVVzc1RVRkJUVHRKUVVNelJDeG5Ra0ZCWjBJc1JVRkJSU3gxUWtGQmRVSTdTVUZEZWtNc2IwSkJRVzlDTEVWQlFVVXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVVzUTBGRE0wTXNNRUpCUVRCQ0xFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNRMEZCUXp0RFFVTnFSQ3hEUVVGRExFTkJRVU03UVVGRlNTeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExHMUVRVUZSTEVOQlFVTTdTVUZEZWtNc1NVRkJTU3hGUVVGRkxHTkJRV003U1VGRGNFSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEZRVUZGTzFGQlF6bENMRTlCUVU4N1dVRkRUQ3hSUVVGUkxFVkJRVVVzYjBKQlFXOUNMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFZRVUZWTEVOQlFVTTdXVUZET1VRc1VVRkJVVHRaUVVOU0xHVkJRV1VzUlVGQlJTeEpRVUZKTzFOQlEzUkNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJRMFFzVDBGQlR5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeEpRVUZKTEV0QlFVc3NRMEZCUXl4SlFVRkpMRXRCUVVzc1RVRkJUVHRKUVVNelJDeG5Ra0ZCWjBJc1JVRkJSU3h4UWtGQmNVSTdTVUZEZGtNc2IwSkJRVzlDTEVWQlFVVXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVVzUTBGRE0wTXNkMEpCUVhkQ0xFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNRMEZCUXp0RFFVTXZReXhEUVVGRExFTkJRVU03UVVGRlNDeE5RVUZOTEc5Q1FVRnZRaXhIUVVGSExFTkJRek5DTEZGQlFYTkRMRVZCUTNSRExGRkJRVFJDTEVWQlF6VkNMR0ZCUVhkRExFVkJRM2hETEVWQlFVVTdTVUZEUml4TlFVRk5MR2RDUVVGblFpeEhRVUZITERKRVFVRnRRaXhEUVVNeFF5d3JSRUZCY1VJc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGREwwSXNVVUZCVVN4RFFVTlVMRU5CUVVNN1NVRkZSaXcwUkVGQk5FUTdTVUZETlVRc1NVRkJTU3huUWtGQlowSXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhGUVVGRk8xRkJReTlDTEU5QlFVOHNVVUZCVVN4RFFVRkRPMHRCUTJwQ08wbEJSVVFzVFVGQlRTeGxRVUZsTEVkQlFVY3NXVUZCV1N4RFFVTnNReXhuUWtGQlowSXNSVUZEYUVJc1VVRkJVU3hGUVVOU0xHRkJRV0VzUTBGRFpDeERRVUZETzBsQlJVWXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eHJSRUZCVlN4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRE8wbEJSWFpFTEU5QlFVOHNVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkRha0lzUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4RFFVRkRMR3RDUVVGclFpeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzVDBGQlR5eERRVU16UkN4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRE8wRkJSVVlzVFVGQlRTeFpRVUZaTEVkQlFVY3NRMEZEYmtJc1VVRkJlVU1zUlVGRGVrTXNVVUZCYTBJc1JVRkRiRUlzWVVGQmQwTXNSVUZEYmtJc1JVRkJSVHRKUVVOMlFpeFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVU3VVVGRE0wSXNWMEZCVnl4RFFVRkRMRTlCUVU4c1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU12UWl4M1EwRkJkME03VVVGRGVFTXNTVUZCU1N4aFFVRmhMRXRCUVVzc1ZVRkJWU3hGUVVGRk8xbEJRMmhETEdGQlFXRXNRMEZCUXl4UFFVRlBMRVZCUVVVc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFOQlEycERPMGxCUTBnc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFNDeFBRVUZQTEZGQlFWRXNRMEZCUXp0QlFVTnNRaXhEUVVGRExFTkJRVU03UVVGRlJpeE5RVUZOTEZkQlFWY3NSMEZCUnl4RFFVTnNRaXhQUVVGelF5eEZRVU4wUXl4UlFVRnJRaXhGUVVOc1FpeEZRVUZGTzBsQlEwWXNUVUZCVFN4VFFVRlRMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU0xUWl4TlFVRk5MRk5CUVZNc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6VkNMRTFCUVUwc1MwRkJTeXhIUVVGSExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTTdTVUZETlVJc1RVRkJUU3hOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXp0SlFVTTVRaXhOUVVGTkxHRkJRV0VzUjBGQlJ5eDFSVUZCWXl4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVVZ3UkN4SlFVRkpMRmxCUVZrc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGNrSXNTVUZCU1N4dlJVRkJaU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEhORlFVRnBRaXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzFGQlF6RkVMRmxCUVZrN1dVRkRWaXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU03WjBKQlEzSkZMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU03UzBGRGFrSTdTVUZGUkN4dlEwRkJiME03U1VGRGNFTXNjVVZCUVdFc1EwRkJReXhQUVVGUExFVkJRVVU3VVVGRGNrSXNTMEZCU3l4RlFVRkZMSFZGUVVGakxFTkJRVU1zUTBGQlF5eERRVUZETzB0QlEzcENMRU5CUVVNc1EwRkJRenRKUVVOSUxEWkVRVUUyUkR0SlFVTTNSQ3hOUVVGTkxHZENRVUZuUWl4SFFVRkhMRGhGUVVGdFFpeERRVUZETEU5QlFVOHNSVUZCUlN4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGNrVXNTVUZCU1N4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRE8wbEJRM3BDTEVsQlFVa3NWMEZCVnl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVOd1FpeEpRVUZKTEU5QlFVOHNSMEZCUnl4blFrRkJaMElzUTBGQlF5eEZRVUZGTEVOQlFVTTdTVUZEYkVNc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJUdFJRVU5hTEhkQ1FVRjNRanRSUVVONFFpeGhRVUZoTEVkQlFVY3NTMEZCU3l4RFFVRkRPMUZCUTNSQ0xFOUJRVThzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJReXhGUVVGRkxFTkJRVU03VVVGRE9VSXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSVHRaUVVOYUxIRkZRVUZoTEVOQlFVTXNUMEZCVHl4RlFVRkZPMmRDUVVOeVFpeExRVUZMTEVWQlFVVXNZVUZCWVR0aFFVTnlRaXhEUVVGRExFTkJRVU03V1VGRFNDeFBRVUZQTzFOQlExSTdTMEZEUmp0SlFVVkVMRWxCUVVrc2IwVkJRV1VzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlR0UlFVTTFRaXhMUVVGTExFbEJRVWtzUzBGQlN5eEhRVUZITEVOQlFVTXNSVUZCUlN4TFFVRkxMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVN1dVRkRNVVFzZDBaQlFUaENMRU5CUVVNc1QwRkJUeXhGUVVGRk8yZENRVU4wUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZPMkZCUTNoRkxFTkJRVU1zUTBGQlF6dFRRVU5LTzFGQlEwUXNOa1pCUVcxRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTMEZET1VNN1UwRkJUVHRSUVVOTUxESkRRVUV5UXp0UlFVTXpReXhYUVVGWExFZEJRVWNzWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXp0UlFVTTFSU3cwUlVGQmJVSXNRMEZEYWtJc1QwRkJUeXhGUVVOUUxFbEJRVWtzUlVGRFNpeFBRVUZQTEVWQlExQXNZVUZCWVN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSVUZETTBJc1MwRkJTeXhGUVVOTUxGZEJRVmNzUlVGRFdDeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUTFnc1EwRkJRenRSUVVOR0xESkRRVUV5UXp0UlFVTXpReXh4UlVGQllTeERRVUZETEU5QlFVOHNSVUZCUlR0WlFVTnlRaXhMUVVGTE8xbEJRMHdzVFVGQlRUdFRRVU5RTEVOQlFVTXNRMEZCUXp0TFFVTktPMGxCUlVRc01rTkJRVEpETzBsQlF6TkRMRWxCUVVrc1MwRkJTeXhIUVVGSExIVkZRVUZqTEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhGUVVGRkxFZEJRVWNzWVVGQllTeERRVUZETEVOQlFVTTdTVUZEZUVRc1NVRkJTU3hMUVVGTExFZEJRVWNzUTBGQlF5eEZRVUZGTzFGQlEySXNPRUpCUVRoQ08xRkJRemxDTEV0QlFVc3NSMEZCUnl4MVJVRkJZeXhEUVVGRExFdEJRVXNzUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8wdEJRemRETzBsQlEwUXNjVVZCUVdFc1EwRkJReXhQUVVGUExFVkJRVVU3VVVGRGNrSXNTMEZCU3p0TFFVTk9MRU5CUVVNc1EwRkJRenRKUVVWSUxEQkVRVUV3UkR0SlFVTXhSQ3h4UlVGQllTeERRVUZETEU5QlFVOHNSVUZCUlR0UlFVTnlRaXhEUVVGRExFVkJRVVVzVTBGQlV5eEhRVUZITEZsQlFWazdVVUZETTBJc1EwRkJReXhGUVVGRkxGTkJRVk03UzBGRFlpeERRVUZETEVOQlFVTTdTVUZGU0N4eFJVRkJiVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTXZRaXhEUVVGRExFTkJRVU03UVVGRlJpeE5RVUZOTEdGQlFXRXNSMEZCUnl4RFFVRkRMRTlCUVRCQ0xFVkJRVVVzWVVGQmNVSXNSVUZCUlN4RlFVRkZPMGxCUXpGRkxFMUJRVTBzVTBGQlV5eEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkROVUlzVFVGQlRTeFRRVUZUTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNMVFpeEpRVUZKTEV0QlFVc3NSMEZCUnl4MVJVRkJZeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVkQlFVY3NZVUZCWVN4RFFVRkRMRU5CUVVNN1NVRkRNVVFzU1VGQlNTeExRVUZMTEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUTJJc09FSkJRVGhDTzFGQlF6bENMRXRCUVVzc1IwRkJSeXgxUlVGQll5eERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1JVRkJSU3hIUVVGSExFdEJRVXNzUTBGQlF5eERRVUZETzB0QlF6ZERPMGxCUTBRc2NVVkJRV0VzUTBGQlF5eFBRVUZQTEVWQlFVVTdVVUZEY2tJc1MwRkJTenRMUVVOT0xFTkJRVU1zUTBGQlF6dEpRVVZJTERaQ1FVRTJRanRKUVVNM1FpeHhSVUZCWVN4RFFVRkRMRTlCUVU4c1JVRkJSVHRSUVVOeVFpeERRVUZETEVWQlFVVXNVMEZCVXp0UlFVTmFMRU5CUVVNc1JVRkJSU3hUUVVGVE8wdEJRMklzUTBGQlF5eERRVUZETzBGQlEwd3NRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJGamRHbHZibk12WVdOMGFXOXVSbXhwY0M1MGN6OHhZVGMxSWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lISmxaMmx6ZEdWeUlIMGdabkp2YlNCY0lpNHZjbVZuYVhOMFpYSmNJanRjYm1sdGNHOXlkQ0I3SUdkbGRGTmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNZ2ZTQm1jbTl0SUZ3aUxpNHZjMk5sYm1WY0lqdGNibWx0Y0c5eWRDQjdJR2RsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3lCOUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MFhDSTdYRzVwYlhCdmNuUWdleUJ0ZFhSaGRHVkZiR1Z0Wlc1MElIMGdabkp2YlNCY0lpNHVMMlZzWlcxbGJuUXZiWFYwWVhSbFJXeGxiV1Z1ZEZ3aU8xeHVhVzF3YjNKMElIc2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUXNJRTV2YmtSbGJHVjBaV1FnZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEM5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ2JtOXliV0ZzYVhwbFFXNW5iR1VzSUhKbGMybDZaVk5wYm1kc1pVVnNaVzFsYm5RZ2ZTQm1jbTl0SUZ3aUxpNHZaV3hsYldWdWRDOXlaWE5wZW1WRmJHVnRaVzUwYzF3aU8xeHVhVzF3YjNKMElIc2dRWEJ3VTNSaGRHVWdmU0JtY205dElGd2lMaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUdkbGRGUnlZVzV6Wm05eWJVaGhibVJzWlhNZ2ZTQm1jbTl0SUZ3aUxpNHZaV3hsYldWdWRDOTBjbUZ1YzJadmNtMUlZVzVrYkdWelhDSTdYRzVwYlhCdmNuUWdleUJwYzBaeVpXVkVjbUYzUld4bGJXVnVkQ3dnYVhOTWFXNWxZWEpGYkdWdFpXNTBJSDBnWm5KdmJTQmNJaTR1TDJWc1pXMWxiblF2ZEhsd1pVTm9aV05yYzF3aU8xeHVhVzF3YjNKMElIc2dkWEJrWVhSbFFtOTFibVJGYkdWdFpXNTBjeUI5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwTDJKcGJtUnBibWRjSWp0Y2JtbHRjRzl5ZENCN0lFeHBibVZoY2tWc1pXMWxiblJGWkdsMGIzSWdmU0JtY205dElGd2lMaTR2Wld4bGJXVnVkQzlzYVc1bFlYSkZiR1Z0Wlc1MFJXUnBkRzl5WENJN1hHNXBiWEJ2Y25RZ2V5QmhjbkpoZVZSdlRXRndJSDBnWm5KdmJTQmNJaTR1TDNWMGFXeHpYQ0k3WEc1Y2JtTnZibk4wSUdWdVlXSnNaVUZqZEdsdmJrWnNhWEJJYjNKcGVtOXVkR0ZzSUQwZ0tGeHVJQ0JsYkdWdFpXNTBjem9nY21WaFpHOXViSGtnUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFN4Y2JpQWdZWEJ3VTNSaGRHVTZJRUZ3Y0ZOMFlYUmxMRnh1S1NBOVBpQjdYRzRnSUdOdmJuTjBJR1ZzYVdkcFlteGxSV3hsYldWdWRITWdQU0JuWlhSVFpXeGxZM1JsWkVWc1pXMWxiblJ6S0Z4dUlDQWdJR2RsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3lobGJHVnRaVzUwY3lrc1hHNGdJQ0FnWVhCd1UzUmhkR1VzWEc0Z0lDazdYRzRnSUhKbGRIVnliaUJsYkdsbmFXSnNaVVZzWlcxbGJuUnpMbXhsYm1kMGFDQTlQVDBnTVNBbUppQmxiR2xuYVdKc1pVVnNaVzFsYm5Seld6QmRMblI1Y0dVZ0lUMDlJRndpZEdWNGRGd2lPMXh1ZlR0Y2JseHVZMjl1YzNRZ1pXNWhZbXhsUVdOMGFXOXVSbXhwY0ZabGNuUnBZMkZzSUQwZ0tGeHVJQ0JsYkdWdFpXNTBjem9nY21WaFpHOXViSGtnUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFN4Y2JpQWdZWEJ3VTNSaGRHVTZJRUZ3Y0ZOMFlYUmxMRnh1S1NBOVBpQjdYRzRnSUdOdmJuTjBJR1ZzYVdkcFlteGxSV3hsYldWdWRITWdQU0JuWlhSVFpXeGxZM1JsWkVWc1pXMWxiblJ6S0Z4dUlDQWdJR2RsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3lobGJHVnRaVzUwY3lrc1hHNGdJQ0FnWVhCd1UzUmhkR1VzWEc0Z0lDazdYRzRnSUhKbGRIVnliaUJsYkdsbmFXSnNaVVZzWlcxbGJuUnpMbXhsYm1kMGFDQTlQVDBnTVR0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmhZM1JwYjI1R2JHbHdTRzl5YVhwdmJuUmhiQ0E5SUhKbFoybHpkR1Z5S0h0Y2JpQWdibUZ0WlRvZ1hDSm1iR2x3U0c5eWFYcHZiblJoYkZ3aUxGeHVJQ0J3WlhKbWIzSnRPaUFvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsS1NBOVBpQjdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUdWc1pXMWxiblJ6T2lCbWJHbHdVMlZzWldOMFpXUkZiR1Z0Wlc1MGN5aGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXNJRndpYUc5eWFYcHZiblJoYkZ3aUtTeGNiaUFnSUNBZ0lHRndjRk4wWVhSbExGeHVJQ0FnSUNBZ1kyOXRiV2wwVkc5SWFYTjBiM0o1T2lCMGNuVmxMRnh1SUNBZ0lIMDdYRzRnSUgwc1hHNGdJR3RsZVZSbGMzUTZJQ2hsZG1WdWRDa2dQVDRnWlhabGJuUXVjMmhwWm5STFpYa2dKaVlnWlhabGJuUXVZMjlrWlNBOVBUMGdYQ0pMWlhsSVhDSXNYRzRnSUdOdmJuUmxlSFJKZEdWdFRHRmlaV3c2SUZ3aWJHRmlaV3h6TG1ac2FYQkliM0pwZW05dWRHRnNYQ0lzWEc0Z0lHTnZiblJsZUhSSmRHVnRVSEpsWkdsallYUmxPaUFvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsS1NBOVBseHVJQ0FnSUdWdVlXSnNaVUZqZEdsdmJrWnNhWEJJYjNKcGVtOXVkR0ZzS0dWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlNrc1hHNTlLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR0ZqZEdsdmJrWnNhWEJXWlhKMGFXTmhiQ0E5SUhKbFoybHpkR1Z5S0h0Y2JpQWdibUZ0WlRvZ1hDSm1iR2x3Vm1WeWRHbGpZV3hjSWl4Y2JpQWdjR1Z5Wm05eWJUb2dLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU2tnUFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0JsYkdWdFpXNTBjem9nWm14cGNGTmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQmNJblpsY25ScFkyRnNYQ0lwTEZ4dUlDQWdJQ0FnWVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0JqYjIxdGFYUlViMGhwYzNSdmNuazZJSFJ5ZFdVc1hHNGdJQ0FnZlR0Y2JpQWdmU3hjYmlBZ2EyVjVWR1Z6ZERvZ0tHVjJaVzUwS1NBOVBpQmxkbVZ1ZEM1emFHbG1kRXRsZVNBbUppQmxkbVZ1ZEM1amIyUmxJRDA5UFNCY0lrdGxlVlpjSWl4Y2JpQWdZMjl1ZEdWNGRFbDBaVzFNWVdKbGJEb2dYQ0pzWVdKbGJITXVabXhwY0ZabGNuUnBZMkZzWENJc1hHNGdJR052Ym5SbGVIUkpkR1Z0VUhKbFpHbGpZWFJsT2lBb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbEtTQTlQbHh1SUNBZ0lHVnVZV0pzWlVGamRHbHZia1pzYVhCV1pYSjBhV05oYkNobGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVcExGeHVmU2s3WEc1Y2JtTnZibk4wSUdac2FYQlRaV3hsWTNSbFpFVnNaVzFsYm5SeklEMGdLRnh1SUNCbGJHVnRaVzUwY3pvZ2NtVmhaRzl1YkhrZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTeGNiaUFnWVhCd1UzUmhkR1U2SUZKbFlXUnZibXg1UEVGd2NGTjBZWFJsUGl4Y2JpQWdabXhwY0VScGNtVmpkR2x2YmpvZ1hDSm9iM0pwZW05dWRHRnNYQ0lnZkNCY0luWmxjblJwWTJGc1hDSXNYRzRwSUQwK0lIdGNiaUFnWTI5dWMzUWdjMlZzWldOMFpXUkZiR1Z0Wlc1MGN5QTlJR2RsZEZObGJHVmpkR1ZrUld4bGJXVnVkSE1vWEc0Z0lDQWdaMlYwVG05dVJHVnNaWFJsWkVWc1pXMWxiblJ6S0dWc1pXMWxiblJ6S1N4Y2JpQWdJQ0JoY0hCVGRHRjBaU3hjYmlBZ0tUdGNibHh1SUNBdkx5QnlaVzF2ZG1VZ2IyNWpaU0IzWlNCaGJHeHZkeUJtYjNJZ1ozSnZkWEJ6SUc5bUlHVnNaVzFsYm5SeklIUnZJR0psSUdac2FYQndaV1JjYmlBZ2FXWWdLSE5sYkdWamRHVmtSV3hsYldWdWRITXViR1Z1WjNSb0lENGdNU2tnZTF4dUlDQWdJSEpsZEhWeWJpQmxiR1Z0Wlc1MGN6dGNiaUFnZlZ4dVhHNGdJR052Ym5OMElIVndaR0YwWldSRmJHVnRaVzUwY3lBOUlHWnNhWEJGYkdWdFpXNTBjeWhjYmlBZ0lDQnpaV3hsWTNSbFpFVnNaVzFsYm5SekxGeHVJQ0FnSUdGd2NGTjBZWFJsTEZ4dUlDQWdJR1pzYVhCRWFYSmxZM1JwYjI0c1hHNGdJQ2s3WEc1Y2JpQWdZMjl1YzNRZ2RYQmtZWFJsWkVWc1pXMWxiblJ6VFdGd0lEMGdZWEp5WVhsVWIwMWhjQ2gxY0dSaGRHVmtSV3hsYldWdWRITXBPMXh1WEc0Z0lISmxkSFZ5YmlCbGJHVnRaVzUwY3k1dFlYQW9YRzRnSUNBZ0tHVnNaVzFsYm5RcElEMCtJSFZ3WkdGMFpXUkZiR1Z0Wlc1MGMwMWhjQzVuWlhRb1pXeGxiV1Z1ZEM1cFpDa2dmSHdnWld4bGJXVnVkQ3hjYmlBZ0tUdGNibjA3WEc1Y2JtTnZibk4wSUdac2FYQkZiR1Z0Wlc1MGN5QTlJQ2hjYmlBZ1pXeGxiV1Z1ZEhNNklFNXZia1JsYkdWMFpXUThSWGhqWVd4cFpISmhkMFZzWlcxbGJuUStXMTBzWEc0Z0lHRndjRk4wWVhSbE9pQkJjSEJUZEdGMFpTeGNiaUFnWm14cGNFUnBjbVZqZEdsdmJqb2dYQ0pvYjNKcGVtOXVkR0ZzWENJZ2ZDQmNJblpsY25ScFkyRnNYQ0lzWEc0cE9pQkZlR05oYkdsa2NtRjNSV3hsYldWdWRGdGRJRDArSUh0Y2JpQWdaV3hsYldWdWRITXVabTl5UldGamFDZ29aV3hsYldWdWRDa2dQVDRnZTF4dUlDQWdJR1pzYVhCRmJHVnRaVzUwS0dWc1pXMWxiblFzSUdGd2NGTjBZWFJsS1R0Y2JpQWdJQ0F2THlCSlppQjJaWEowYVdOaGJDQm1iR2x3TENCeWIzUmhkR1VnWVc0Z1pYaDBjbUVnTVRnd1hHNGdJQ0FnYVdZZ0tHWnNhWEJFYVhKbFkzUnBiMjRnUFQwOUlGd2lkbVZ5ZEdsallXeGNJaWtnZTF4dUlDQWdJQ0FnY205MFlYUmxSV3hsYldWdWRDaGxiR1Z0Wlc1MExDQk5ZWFJvTGxCSktUdGNiaUFnSUNCOVhHNGdJSDBwTzF4dUlDQnlaWFIxY200Z1pXeGxiV1Z1ZEhNN1hHNTlPMXh1WEc1amIyNXpkQ0JtYkdsd1JXeGxiV1Z1ZENBOUlDaGNiaUFnWld4bGJXVnVkRG9nVG05dVJHVnNaWFJsWkR4RmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEQ0c1hHNGdJR0Z3Y0ZOMFlYUmxPaUJCY0hCVGRHRjBaU3hjYmlrZ1BUNGdlMXh1SUNCamIyNXpkQ0J2Y21sbmFXNWhiRmdnUFNCbGJHVnRaVzUwTG5nN1hHNGdJR052Ym5OMElHOXlhV2RwYm1Gc1dTQTlJR1ZzWlcxbGJuUXVlVHRjYmlBZ1kyOXVjM1FnZDJsa2RHZ2dQU0JsYkdWdFpXNTBMbmRwWkhSb08xeHVJQ0JqYjI1emRDQm9aV2xuYUhRZ1BTQmxiR1Z0Wlc1MExtaGxhV2RvZER0Y2JpQWdZMjl1YzNRZ2IzSnBaMmx1WVd4QmJtZHNaU0E5SUc1dmNtMWhiR2w2WlVGdVoyeGxLR1ZzWlcxbGJuUXVZVzVuYkdVcE8xeHVYRzRnSUd4bGRDQm1hVzVoYkU5bVpuTmxkRmdnUFNBd08xeHVJQ0JwWmlBb2FYTk1hVzVsWVhKRmJHVnRaVzUwS0dWc1pXMWxiblFwSUh4OElHbHpSbkpsWlVSeVlYZEZiR1Z0Wlc1MEtHVnNaVzFsYm5RcEtTQjdYRzRnSUNBZ1ptbHVZV3hQWm1aelpYUllJRDFjYmlBZ0lDQWdJR1ZzWlcxbGJuUXVjRzlwYm5SekxuSmxaSFZqWlNnb2JXRjRMQ0J3YjJsdWRDa2dQVDRnVFdGMGFDNXRZWGdvYldGNExDQndiMmx1ZEZzd1hTa3NJREFwSUNvZ01pQXRYRzRnSUNBZ0lDQmxiR1Z0Wlc1MExuZHBaSFJvTzF4dUlDQjlYRzVjYmlBZ0x5OGdVbTkwWVhSbElHSmhZMnNnZEc4Z2VtVnlieXdnYVdZZ2JtVmpaWE56WVhKNVhHNGdJRzExZEdGMFpVVnNaVzFsYm5Rb1pXeGxiV1Z1ZEN3Z2UxeHVJQ0FnSUdGdVoyeGxPaUJ1YjNKdFlXeHBlbVZCYm1kc1pTZ3dLU3hjYmlBZ2ZTazdYRzRnSUM4dklFWnNhWEFnZFc1eWIzUmhkR1ZrSUdKNUlIQjFiR3hwYm1jZ1ZISmhibk5tYjNKdFNHRnVaR3hsSUhSdklHOXdjRzl6YVhSbElITnBaR1ZjYmlBZ1kyOXVjM1FnZEhKaGJuTm1iM0p0U0dGdVpHeGxjeUE5SUdkbGRGUnlZVzV6Wm05eWJVaGhibVJzWlhNb1pXeGxiV1Z1ZEN3Z1lYQndVM1JoZEdVdWVtOXZiU2s3WEc0Z0lHeGxkQ0IxYzJsdVowNVhTR0Z1Wkd4bElEMGdkSEoxWlR0Y2JpQWdiR1YwSUc1bGQwNURiMjl5WkhOWUlEMGdNRHRjYmlBZ2JHVjBJRzVJWVc1a2JHVWdQU0IwY21GdWMyWnZjbTFJWVc1a2JHVnpMbTUzTzF4dUlDQnBaaUFvSVc1SVlXNWtiR1VwSUh0Y2JpQWdJQ0F2THlCVmMyVWdibVVnYUdGdVpHeGxJR2x1YzNSbFlXUmNiaUFnSUNCMWMybHVaMDVYU0dGdVpHeGxJRDBnWm1Gc2MyVTdYRzRnSUNBZ2JraGhibVJzWlNBOUlIUnlZVzV6Wm05eWJVaGhibVJzWlhNdWJtVTdYRzRnSUNBZ2FXWWdLQ0Z1U0dGdVpHeGxLU0I3WEc0Z0lDQWdJQ0J0ZFhSaGRHVkZiR1Z0Wlc1MEtHVnNaVzFsYm5Rc0lIdGNiaUFnSUNBZ0lDQWdZVzVuYkdVNklHOXlhV2RwYm1Gc1FXNW5iR1VzWEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JwWmlBb2FYTk1hVzVsWVhKRmJHVnRaVzUwS0dWc1pXMWxiblFwS1NCN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVc1a1pYZ2dQU0F4T3lCcGJtUmxlQ0E4SUdWc1pXMWxiblF1Y0c5cGJuUnpMbXhsYm1kMGFEc2dhVzVrWlhnckt5a2dlMXh1SUNBZ0lDQWdUR2x1WldGeVJXeGxiV1Z1ZEVWa2FYUnZjaTV0YjNabFVHOXBiblJ6S0dWc1pXMWxiblFzSUZ0Y2JpQWdJQ0FnSUNBZ2V5QnBibVJsZUN3Z2NHOXBiblE2SUZzdFpXeGxiV1Z1ZEM1d2IybHVkSE5iYVc1a1pYaGRXekJkTENCbGJHVnRaVzUwTG5CdmFXNTBjMXRwYm1SbGVGMWJNVjFkSUgwc1hHNGdJQ0FnSUNCZEtUdGNiaUFnSUNCOVhHNGdJQ0FnVEdsdVpXRnlSV3hsYldWdWRFVmthWFJ2Y2k1dWIzSnRZV3hwZW1WUWIybHVkSE1vWld4bGJXVnVkQ2s3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnTHk4Z1kyRnNZM1ZzWVhSbElHNWxkeUI0TFdOdmIzSmtJR1p2Y2lCMGNtRnVjMlp2Y20xaGRHbHZibHh1SUNBZ0lHNWxkMDVEYjI5eVpITllJRDBnZFhOcGJtZE9WMGhoYm1Sc1pTQS9JR1ZzWlcxbGJuUXVlQ0FySURJZ0tpQjNhV1IwYUNBNklHVnNaVzFsYm5RdWVDQXRJRElnS2lCM2FXUjBhRHRjYmlBZ0lDQnlaWE5wZW1WVGFXNW5iR1ZGYkdWdFpXNTBLRnh1SUNBZ0lDQWdaV3hsYldWdWRDeGNiaUFnSUNBZ0lIUnlkV1VzWEc0Z0lDQWdJQ0JsYkdWdFpXNTBMRnh1SUNBZ0lDQWdkWE5wYm1kT1YwaGhibVJzWlNBL0lGd2libmRjSWlBNklGd2libVZjSWl4Y2JpQWdJQ0FnSUdaaGJITmxMRnh1SUNBZ0lDQWdibVYzVGtOdmIzSmtjMWdzWEc0Z0lDQWdJQ0J1U0dGdVpHeGxXekZkTEZ4dUlDQWdJQ2s3WEc0Z0lDQWdMeThnWm1sNElIUm9aU0J6YVhwbElIUnZJR0ZqWTI5MWJuUWdabTl5SUdoaGJtUnNaU0J6YVhwbGMxeHVJQ0FnSUcxMWRHRjBaVVZzWlcxbGJuUW9aV3hsYldWdWRDd2dlMXh1SUNBZ0lDQWdkMmxrZEdnc1hHNGdJQ0FnSUNCb1pXbG5hSFFzWEc0Z0lDQWdmU2s3WEc0Z0lIMWNibHh1SUNBdkx5QlNiM1JoZEdVZ1lua2dLRE0yTUNCa1pXZHlaV1Z6SUMwZ2IzSnBaMmx1WVd3Z1lXNW5iR1VwWEc0Z0lHeGxkQ0JoYm1kc1pTQTlJRzV2Y20xaGJHbDZaVUZ1WjJ4bEtESWdLaUJOWVhSb0xsQkpJQzBnYjNKcFoybHVZV3hCYm1kc1pTazdYRzRnSUdsbUlDaGhibWRzWlNBOElEQXBJSHRjYmlBZ0lDQXZMeUJqYUdWamF5d2djSEp2WW1GaWJIa2dkVzV1WldObGMzTmhjbmxjYmlBZ0lDQmhibWRzWlNBOUlHNXZjbTFoYkdsNlpVRnVaMnhsS0dGdVoyeGxJQ3NnTWlBcUlFMWhkR2d1VUVrcE8xeHVJQ0I5WEc0Z0lHMTFkR0YwWlVWc1pXMWxiblFvWld4bGJXVnVkQ3dnZTF4dUlDQWdJR0Z1WjJ4bExGeHVJQ0I5S1R0Y2JseHVJQ0F2THlCTmIzWmxJR0poWTJzZ2RHOGdiM0pwWjJsdVlXd2djM0J2ZENCMGJ5QmhjSEJsWVhJZ1hDSm1iR2x3Y0dWa0lHbHVJSEJzWVdObFhDSmNiaUFnYlhWMFlYUmxSV3hsYldWdWRDaGxiR1Z0Wlc1MExDQjdYRzRnSUNBZ2VEb2diM0pwWjJsdVlXeFlJQ3NnWm1sdVlXeFBabVp6WlhSWUxGeHVJQ0FnSUhrNklHOXlhV2RwYm1Gc1dTeGNiaUFnZlNrN1hHNWNiaUFnZFhCa1lYUmxRbTkxYm1SRmJHVnRaVzUwY3lobGJHVnRaVzUwS1R0Y2JuMDdYRzVjYm1OdmJuTjBJSEp2ZEdGMFpVVnNaVzFsYm5RZ1BTQW9aV3hsYldWdWREb2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUXNJSEp2ZEdGMGFXOXVRVzVuYkdVNklHNTFiV0psY2lrZ1BUNGdlMXh1SUNCamIyNXpkQ0J2Y21sbmFXNWhiRmdnUFNCbGJHVnRaVzUwTG5nN1hHNGdJR052Ym5OMElHOXlhV2RwYm1Gc1dTQTlJR1ZzWlcxbGJuUXVlVHRjYmlBZ2JHVjBJR0Z1WjJ4bElEMGdibTl5YldGc2FYcGxRVzVuYkdVb1pXeGxiV1Z1ZEM1aGJtZHNaU0FySUhKdmRHRjBhVzl1UVc1bmJHVXBPMXh1SUNCcFppQW9ZVzVuYkdVZ1BDQXdLU0I3WEc0Z0lDQWdMeThnWTJobFkyc3NJSEJ5YjJKaFlteDVJSFZ1Ym1WalpYTnpZWEo1WEc0Z0lDQWdZVzVuYkdVZ1BTQnViM0p0WVd4cGVtVkJibWRzWlNneUlDb2dUV0YwYUM1UVNTQXJJR0Z1WjJ4bEtUdGNiaUFnZlZ4dUlDQnRkWFJoZEdWRmJHVnRaVzUwS0dWc1pXMWxiblFzSUh0Y2JpQWdJQ0JoYm1kc1pTeGNiaUFnZlNrN1hHNWNiaUFnTHk4Z1RXOTJaU0JpWVdOcklIUnZJRzl5YVdkcGJtRnNJSE53YjNSY2JpQWdiWFYwWVhSbFJXeGxiV1Z1ZENobGJHVnRaVzUwTENCN1hHNGdJQ0FnZURvZ2IzSnBaMmx1WVd4WUxGeHVJQ0FnSUhrNklHOXlhV2RwYm1Gc1dTeGNiaUFnZlNrN1hHNTlPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9hY3Rpb25zL2FjdGlvbkZsaXAudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2FjdGlvbnMvYWN0aW9uR3JvdXAudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2FjdGlvbnMvYWN0aW9uR3JvdXAudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25Hcm91cFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvbkdyb3VwKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25Vbmdyb3VwXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uVW5ncm91cClcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2tleXMgKi8gXFxcIi4uLy4uL2tleXMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi91dGlscyAqLyBcXFwiLi4vLi4vdXRpbHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3JlZ2lzdGVyICovIFxcXCIuLi8uLi9hY3Rpb25zL3JlZ2lzdGVyLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL2ljb25zICovIFxcXCIuLi8uLi9jb21wb25lbnRzL2ljb25zLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L211dGF0ZUVsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvbXV0YXRlRWxlbWVudC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lICovIFxcXCIuLi8uLi9zY2VuZS9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZ3JvdXBzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9ncm91cHMgKi8gXFxcIi4uLy4uL2dyb3Vwcy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmFuZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcmFuZG9tICovIFxcXCIuLi8uLi9yYW5kb20udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbXBvbmVudHMvVG9vbEJ1dHRvbiAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC90eXBlQ2hlY2tzICovIFxcXCIuLi8uLi9lbGVtZW50L3R5cGVDaGVja3MudHNcXFwiKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBhbGxFbGVtZW50c0luU2FtZUdyb3VwID0gKGVsZW1lbnRzKSA9PiB7XFxuICAgIGlmIChlbGVtZW50cy5sZW5ndGggPj0gMikge1xcbiAgICAgICAgY29uc3QgZ3JvdXBJZHMgPSBlbGVtZW50c1swXS5ncm91cElkcztcXG4gICAgICAgIGZvciAoY29uc3QgZ3JvdXBJZCBvZiBncm91cElkcykge1xcbiAgICAgICAgICAgIGlmIChlbGVtZW50cy5yZWR1Y2UoKGFjYywgZWxlbWVudCkgPT4gYWNjICYmICgwLF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5pc0VsZW1lbnRJbkdyb3VwKShlbGVtZW50LCBncm91cElkKSwgdHJ1ZSkpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiBmYWxzZTtcXG59O1xcbmNvbnN0IGVuYWJsZUFjdGlvbkdyb3VwID0gKGVsZW1lbnRzLCBhcHBTdGF0ZSkgPT4ge1xcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uZ2V0U2VsZWN0ZWRFbGVtZW50cykoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKSwgYXBwU3RhdGUsIHRydWUpO1xcbiAgICByZXR1cm4gKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID49IDIgJiYgIWFsbEVsZW1lbnRzSW5TYW1lR3JvdXAoc2VsZWN0ZWRFbGVtZW50cykpO1xcbn07XFxuY29uc3QgYWN0aW9uR3JvdXAgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiZ3JvdXBcXFwiLFxcbiAgICBwZXJmb3JtOiAoZWxlbWVudHMsIGFwcFN0YXRlKSA9PiB7XFxuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uZ2V0U2VsZWN0ZWRFbGVtZW50cykoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKSwgYXBwU3RhdGUsIHRydWUpO1xcbiAgICAgICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoIDwgMikge1xcbiAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZ3JvdXBcXG4gICAgICAgICAgICByZXR1cm4geyBhcHBTdGF0ZSwgZWxlbWVudHMsIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UgfTtcXG4gICAgICAgIH1cXG4gICAgICAgIC8vIGlmIGV2ZXJ5dGhpbmcgaXMgYWxyZWFkeSBncm91cGVkIGludG8gMSBncm91cCwgdGhlcmUgaXMgbm90aGluZyB0byBkb1xcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRHcm91cElkcyA9ICgwLF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5nZXRTZWxlY3RlZEdyb3VwSWRzKShhcHBTdGF0ZSk7XFxuICAgICAgICBpZiAoc2VsZWN0ZWRHcm91cElkcy5sZW5ndGggPT09IDEpIHtcXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEdyb3VwSWQgPSBzZWxlY3RlZEdyb3VwSWRzWzBdO1xcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRJZHNJbkdyb3VwID0gbmV3IFNldCgoMCxfZ3JvdXBzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uZ2V0RWxlbWVudHNJbkdyb3VwKShlbGVtZW50cywgc2VsZWN0ZWRHcm91cElkKS5tYXAoKGVsZW1lbnQpID0+IGVsZW1lbnQuaWQpKTtcXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRJZHMgPSBuZXcgU2V0KHNlbGVjdGVkRWxlbWVudHMubWFwKChlbGVtZW50KSA9PiBlbGVtZW50LmlkKSk7XFxuICAgICAgICAgICAgY29uc3QgY29tYmluZWRTZXQgPSBuZXcgU2V0KFtcXG4gICAgICAgICAgICAgICAgLi4uQXJyYXkuZnJvbShlbGVtZW50SWRzSW5Hcm91cCksXFxuICAgICAgICAgICAgICAgIC4uLkFycmF5LmZyb20oc2VsZWN0ZWRFbGVtZW50SWRzKSxcXG4gICAgICAgICAgICBdKTtcXG4gICAgICAgICAgICBpZiAoY29tYmluZWRTZXQuc2l6ZSA9PT0gZWxlbWVudElkc0luR3JvdXAuc2l6ZSkge1xcbiAgICAgICAgICAgICAgICAvLyBubyBpbmNyZW1lbnRhbCBpZHMgaW4gdGhlIHNlbGVjdGVkIGlkc1xcbiAgICAgICAgICAgICAgICByZXR1cm4geyBhcHBTdGF0ZSwgZWxlbWVudHMsIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UgfTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBuZXdHcm91cElkID0gKDAsX3JhbmRvbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5yYW5kb21JZCkoKTtcXG4gICAgICAgIGNvbnN0IHNlbGVjdEVsZW1lbnRJZHMgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5hcnJheVRvTWFwKShzZWxlY3RlZEVsZW1lbnRzKTtcXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRFbGVtZW50cyA9IGVsZW1lbnRzLm1hcCgoZWxlbWVudCkgPT4ge1xcbiAgICAgICAgICAgIGlmICghc2VsZWN0RWxlbWVudElkcy5nZXQoZWxlbWVudC5pZCkpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18ubmV3RWxlbWVudFdpdGgpKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgZ3JvdXBJZHM6ICgwLF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5hZGRUb0dyb3VwKShlbGVtZW50Lmdyb3VwSWRzLCBuZXdHcm91cElkLCBhcHBTdGF0ZS5lZGl0aW5nR3JvdXBJZCksXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9KTtcXG4gICAgICAgIC8vIGtlZXAgdGhlIHogb3JkZXIgd2l0aGluIHRoZSBncm91cCB0aGUgc2FtZSwgYnV0IG1vdmUgdGhlbVxcbiAgICAgICAgLy8gdG8gdGhlIHogb3JkZXIgb2YgdGhlIGhpZ2hlc3QgZWxlbWVudCBpbiB0aGUgbGF5ZXIgc3RhY2tcXG4gICAgICAgIGNvbnN0IGVsZW1lbnRzSW5Hcm91cCA9ICgwLF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5nZXRFbGVtZW50c0luR3JvdXApKHVwZGF0ZWRFbGVtZW50cywgbmV3R3JvdXBJZCk7XFxuICAgICAgICBjb25zdCBsYXN0RWxlbWVudEluR3JvdXAgPSBlbGVtZW50c0luR3JvdXBbZWxlbWVudHNJbkdyb3VwLmxlbmd0aCAtIDFdO1xcbiAgICAgICAgY29uc3QgbGFzdEdyb3VwRWxlbWVudEluZGV4ID0gdXBkYXRlZEVsZW1lbnRzLmxhc3RJbmRleE9mKGxhc3RFbGVtZW50SW5Hcm91cCk7XFxuICAgICAgICBjb25zdCBlbGVtZW50c0FmdGVyR3JvdXAgPSB1cGRhdGVkRWxlbWVudHMuc2xpY2UobGFzdEdyb3VwRWxlbWVudEluZGV4ICsgMSk7XFxuICAgICAgICBjb25zdCBlbGVtZW50c0JlZm9yZUdyb3VwID0gdXBkYXRlZEVsZW1lbnRzXFxuICAgICAgICAgICAgLnNsaWNlKDAsIGxhc3RHcm91cEVsZW1lbnRJbmRleClcXG4gICAgICAgICAgICAuZmlsdGVyKCh1cGRhdGVkRWxlbWVudCkgPT4gISgwLF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5pc0VsZW1lbnRJbkdyb3VwKSh1cGRhdGVkRWxlbWVudCwgbmV3R3JvdXBJZCkpO1xcbiAgICAgICAgY29uc3QgdXBkYXRlZEVsZW1lbnRzSW5PcmRlciA9IFtcXG4gICAgICAgICAgICAuLi5lbGVtZW50c0JlZm9yZUdyb3VwLFxcbiAgICAgICAgICAgIC4uLmVsZW1lbnRzSW5Hcm91cCxcXG4gICAgICAgICAgICAuLi5lbGVtZW50c0FmdGVyR3JvdXAsXFxuICAgICAgICBdO1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBhcHBTdGF0ZTogKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLnNlbGVjdEdyb3VwKShuZXdHcm91cElkLCBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBzZWxlY3RlZEdyb3VwSWRzOiB7fSB9KSwgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKHVwZGF0ZWRFbGVtZW50c0luT3JkZXIpKSxcXG4gICAgICAgICAgICBlbGVtZW50czogdXBkYXRlZEVsZW1lbnRzSW5PcmRlcixcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBjb250ZXh0SXRlbUxhYmVsOiBcXFwibGFiZWxzLmdyb3VwXFxcIixcXG4gICAgY29udGV4dEl0ZW1QcmVkaWNhdGU6IChlbGVtZW50cywgYXBwU3RhdGUpID0+IGVuYWJsZUFjdGlvbkdyb3VwKGVsZW1lbnRzLCBhcHBTdGF0ZSksXFxuICAgIGtleVRlc3Q6IChldmVudCkgPT4gIWV2ZW50LnNoaWZ0S2V5ICYmIGV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uS0VZUy5DVFJMX09SX0NNRF0gJiYgZXZlbnQuY29kZSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5DT0RFUy5HLFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgZWxlbWVudHMsIGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5Ub29sQnV0dG9uLCB7IGhpZGRlbjogIWVuYWJsZUFjdGlvbkdyb3VwKGVsZW1lbnRzLCBhcHBTdGF0ZSksIHR5cGU6IFxcXCJidXR0b25cXFwiLCBpY29uOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5Hcm91cEljb24sIHsgdGhlbWU6IGFwcFN0YXRlLnRoZW1lIH0sIHZvaWQgMCksIG9uQ2xpY2s6ICgpID0+IHVwZGF0ZURhdGEobnVsbCksIHRpdGxlOiBgJHsoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJsYWJlbHMuZ3JvdXBcXFwiKX0gXHUyMDE0ICR7KDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrR1xcXCIpfWAsIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwibGFiZWxzLmdyb3VwXFxcIiksIHZpc2libGU6ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmlzU29tZUVsZW1lbnRTZWxlY3RlZCkoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKSwgYXBwU3RhdGUpIH0sIHZvaWQgMCkpLFxcbn0pO1xcbmNvbnN0IGFjdGlvblVuZ3JvdXAgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwidW5ncm91cFxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgICAgIGNvbnN0IGdyb3VwSWRzID0gKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmdldFNlbGVjdGVkR3JvdXBJZHMpKGFwcFN0YXRlKTtcXG4gICAgICAgIGlmIChncm91cElkcy5sZW5ndGggPT09IDApIHtcXG4gICAgICAgICAgICByZXR1cm4geyBhcHBTdGF0ZSwgZWxlbWVudHMsIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UgfTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IGJvdW5kVGV4dEVsZW1lbnRJZHMgPSBbXTtcXG4gICAgICAgIGNvbnN0IG5leHRFbGVtZW50cyA9IGVsZW1lbnRzLm1hcCgoZWxlbWVudCkgPT4ge1xcbiAgICAgICAgICAgIGlmICgoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fLmlzQm91bmRUb0NvbnRhaW5lcikoZWxlbWVudCkpIHtcXG4gICAgICAgICAgICAgICAgYm91bmRUZXh0RWxlbWVudElkcy5wdXNoKGVsZW1lbnQuaWQpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjb25zdCBuZXh0R3JvdXBJZHMgPSAoMCxfZ3JvdXBzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18ucmVtb3ZlRnJvbVNlbGVjdGVkR3JvdXBzKShlbGVtZW50Lmdyb3VwSWRzLCBhcHBTdGF0ZS5zZWxlY3RlZEdyb3VwSWRzKTtcXG4gICAgICAgICAgICBpZiAobmV4dEdyb3VwSWRzLmxlbmd0aCA9PT0gZWxlbWVudC5ncm91cElkcy5sZW5ndGgpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18ubmV3RWxlbWVudFdpdGgpKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgZ3JvdXBJZHM6IG5leHRHcm91cElkcyxcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH0pO1xcbiAgICAgICAgY29uc3QgdXBkYXRlQXBwU3RhdGUgPSAoMCxfZ3JvdXBzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uc2VsZWN0R3JvdXBzRm9yU2VsZWN0ZWRFbGVtZW50cykoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhcHBTdGF0ZSksIHsgc2VsZWN0ZWRHcm91cElkczoge30gfSksICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKShuZXh0RWxlbWVudHMpKTtcXG4gICAgICAgIC8vIHJlbW92ZSBiaW5kZWQgdGV4dCBlbGVtZW50cyBmcm9tIHNlbGVjdGlvblxcbiAgICAgICAgYm91bmRUZXh0RWxlbWVudElkcy5mb3JFYWNoKChpZCkgPT4gKHVwZGF0ZUFwcFN0YXRlLnNlbGVjdGVkRWxlbWVudElkc1tpZF0gPSBmYWxzZSkpO1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBhcHBTdGF0ZTogdXBkYXRlQXBwU3RhdGUsXFxuICAgICAgICAgICAgZWxlbWVudHM6IG5leHRFbGVtZW50cyxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBrZXlUZXN0OiAoZXZlbnQpID0+IGV2ZW50LnNoaWZ0S2V5ICYmIGV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uS0VZUy5DVFJMX09SX0NNRF0gJiYgZXZlbnQuY29kZSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5DT0RFUy5HLFxcbiAgICBjb250ZXh0SXRlbUxhYmVsOiBcXFwibGFiZWxzLnVuZ3JvdXBcXFwiLFxcbiAgICBjb250ZXh0SXRlbVByZWRpY2F0ZTogKGVsZW1lbnRzLCBhcHBTdGF0ZSkgPT4gKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmdldFNlbGVjdGVkR3JvdXBJZHMpKGFwcFN0YXRlKS5sZW5ndGggPiAwLFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgZWxlbWVudHMsIGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5Ub29sQnV0dG9uLCB7IHR5cGU6IFxcXCJidXR0b25cXFwiLCBoaWRkZW46ICgwLF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5nZXRTZWxlY3RlZEdyb3VwSWRzKShhcHBTdGF0ZSkubGVuZ3RoID09PSAwLCBpY29uOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5Vbmdyb3VwSWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSwgb25DbGljazogKCkgPT4gdXBkYXRlRGF0YShudWxsKSwgdGl0bGU6IGAkeygwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy51bmdyb3VwXFxcIil9IFx1MjAxNCAkeygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK1NoaWZ0K0dcXFwiKX1gLCBcXFwiYXJpYS1sYWJlbFxcXCI6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy51bmdyb3VwXFxcIiksIHZpc2libGU6ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmlzU29tZUVsZW1lbnRTZWxlY3RlZCkoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKSwgYXBwU3RhdGUpIH0sIHZvaWQgMCkpLFxcbn0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNUhjbTkxY0M1MGMzZ3Vhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3pzN096dEJRVUZ6UXp0QlFVTldPMEZCUXpCQ08wRkJRMmhDTzBGQlEzVkNPMEZCUTBnN1FVRkRXVHRCUVZOdVJEdEJRVU5uUXp0QlFVTmtPMEZCUTJsQ08wRkJSMHM3UVVGRk0wUXNUVUZCVFN4elFrRkJjMElzUjBGQlJ5eERRVUZETEZGQlFYTkRMRVZCUVVVc1JVRkJSVHRKUVVONFJTeEpRVUZKTEZGQlFWRXNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhGUVVGRk8xRkJRM2hDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTTdVVUZEZEVNc1MwRkJTeXhOUVVGTkxFOUJRVThzU1VGQlNTeFJRVUZSTEVWQlFVVTdXVUZET1VJc1NVRkRSU3hSUVVGUkxFTkJRVU1zVFVGQlRTeERRVU5pTEVOQlFVTXNSMEZCUnl4RlFVRkZMRTlCUVU4c1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEhsRVFVRm5RaXhEUVVGRExFOUJRVThzUlVGQlJTeFBRVUZQTEVOQlFVTXNSVUZETTBRc1NVRkJTU3hEUVVOTUxFVkJRMFE3WjBKQlEwRXNUMEZCVHl4SlFVRkpMRU5CUVVNN1lVRkRZanRUUVVOR08wdEJRMFk3U1VGRFJDeFBRVUZQTEV0QlFVc3NRMEZCUXp0QlFVTm1MRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzYVVKQlFXbENMRWRCUVVjc1EwRkRlRUlzVVVGQmMwTXNSVUZEZEVNc1VVRkJhMElzUlVGRGJFSXNSVUZCUlR0SlFVTkdMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NNa1JCUVcxQ0xFTkJRekZETEN0RVFVRnhRaXhEUVVGRExGRkJRVkVzUTBGQlF5eEZRVU12UWl4UlFVRlJMRVZCUTFJc1NVRkJTU3hEUVVOTUxFTkJRVU03U1VGRFJpeFBRVUZQTEVOQlEwd3NaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRekZGTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxGZEJRVmNzUjBGQlJ5eHRSRUZCVVN4RFFVRkRPMGxCUTJ4RExFbEJRVWtzUlVGQlJTeFBRVUZQTzBsQlEySXNUMEZCVHl4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEZRVUZGTzFGQlF6bENMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NNa1JCUVcxQ0xFTkJRekZETEN0RVFVRnhRaXhEUVVGRExGRkJRVkVzUTBGQlF5eEZRVU12UWl4UlFVRlJMRVZCUTFJc1NVRkJTU3hEUVVOTUxFTkJRVU03VVVGRFJpeEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlFVVTdXVUZETDBJc2JVSkJRVzFDTzFsQlEyNUNMRTlCUVU4c1JVRkJSU3hSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEdWQlFXVXNSVUZCUlN4TFFVRkxMRVZCUVVVc1EwRkJRenRUUVVOMlJEdFJRVU5FTEhkRlFVRjNSVHRSUVVONFJTeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExEUkVRVUZ0UWl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRM1pFTEVsQlFVa3NaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeExRVUZMTEVOQlFVTXNSVUZCUlR0WlFVTnFReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU0xUXl4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVTXZRaXd5UkVGQmEwSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1pVRkJaU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVU12UXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNRMEZEZUVJc1EwRkRSaXhEUVVGRE8xbEJRMFlzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhKUVVGSkxFZEJRVWNzUTBGRGFFTXNaMEpCUVdkQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlF6bERMRU5CUVVNN1dVRkRSaXhOUVVGTkxGZEJRVmNzUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZCUXp0blFrRkRNVUlzUjBGQlJ5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETzJkQ1FVTm9ReXhIUVVGSExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU03WVVGRGJFTXNRMEZCUXl4RFFVRkRPMWxCUTBnc1NVRkJTU3hYUVVGWExFTkJRVU1zU1VGQlNTeExRVUZMTEdsQ1FVRnBRaXhEUVVGRExFbEJRVWtzUlVGQlJUdG5Ra0ZETDBNc2VVTkJRWGxETzJkQ1FVTjZReXhQUVVGUExFVkJRVVVzVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4bFFVRmxMRVZCUVVVc1MwRkJTeXhGUVVGRkxFTkJRVU03WVVGRGRrUTdVMEZEUmp0UlFVTkVMRTFCUVUwc1ZVRkJWU3hIUVVGSExHdEVRVUZSTEVWQlFVVXNRMEZCUXp0UlFVTTVRaXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMR3RFUVVGVkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJRenRSUVVOMFJDeE5RVUZOTEdWQlFXVXNSMEZCUnl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVTdXVUZETDBNc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVTdaMEpCUTNKRExFOUJRVThzVDBGQlR5eERRVUZETzJGQlEyaENPMWxCUTBRc1QwRkJUeXh6UlVGQll5eERRVUZETEU5QlFVOHNSVUZCUlR0blFrRkROMElzVVVGQlVTeEZRVUZGTEcxRVFVRlZMRU5CUTJ4Q0xFOUJRVThzUTBGQlF5eFJRVUZSTEVWQlEyaENMRlZCUVZVc1JVRkRWaXhSUVVGUkxFTkJRVU1zWTBGQll5eERRVU40UWp0aFFVTkdMRU5CUVVNc1EwRkJRenRSUVVOTUxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEwZ3NORVJCUVRSRU8xRkJRelZFTERKRVFVRXlSRHRSUVVNelJDeE5RVUZOTEdWQlFXVXNSMEZCUnl3eVJFRkJhMElzUTBGQlF5eGxRVUZsTEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRlRVVzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhsUVVGbExFTkJRVU1zWlVGQlpTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOMlJTeE5RVUZOTEhGQ1FVRnhRaXhIUVVONlFpeGxRVUZsTEVOQlFVTXNWMEZCVnl4RFFVRkRMR3RDUVVGclFpeERRVUZETEVOQlFVTTdVVUZEYkVRc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4bFFVRmxMRU5CUVVNc1MwRkJTeXhEUVVGRExIRkNRVUZ4UWl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRelZGTEUxQlFVMHNiVUpCUVcxQ0xFZEJRVWNzWlVGQlpUdGhRVU40UXl4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRkxIRkNRVUZ4UWl4RFFVRkRPMkZCUXk5Q0xFMUJRVTBzUTBGRFRDeERRVUZETEdOQlFXTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXg1UkVGQlowSXNRMEZCUXl4alFVRmpMRVZCUVVVc1ZVRkJWU3hEUVVGRExFTkJRMnhGTEVOQlFVTTdVVUZEU2l4TlFVRk5MSE5DUVVGelFpeEhRVUZITzFsQlF6ZENMRWRCUVVjc2JVSkJRVzFDTzFsQlEzUkNMRWRCUVVjc1pVRkJaVHRaUVVOc1FpeEhRVUZITEd0Q1FVRnJRanRUUVVOMFFpeERRVUZETzFGQlJVWXNUMEZCVHp0WlFVTk1MRkZCUVZFc1JVRkJSU3h2UkVGQlZ5eERRVU51UWl4VlFVRlZMR3REUVVOTUxGRkJRVkVzUzBGQlJTeG5Ra0ZCWjBJc1JVRkJSU3hGUVVGRkxFdEJRMjVETEN0RVFVRnhRaXhEUVVGRExITkNRVUZ6UWl4RFFVRkRMRU5CUXpsRE8xbEJRMFFzVVVGQlVTeEZRVUZGTEhOQ1FVRnpRanRaUVVOb1F5eGxRVUZsTEVWQlFVVXNTVUZCU1R0VFFVTjBRaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVU5FTEdkQ1FVRm5RaXhGUVVGRkxHTkJRV003U1VGRGFFTXNiMEpCUVc5Q0xFVkJRVVVzUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZMRVZCUVVVc1EwRkRNME1zYVVKQlFXbENMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUTBGQlF6dEpRVU4yUXl4UFFVRlBMRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVU5xUWl4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFbEJRVWtzUzBGQlN5eERRVUZETEcxRVFVRm5RaXhEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZETEVsQlFVa3NTMEZCU3l3d1EwRkJUenRKUVVOMFJTeGpRVUZqTEVWQlFVVXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVVzVlVGQlZTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUTNSRUxIVkVRVUZETEN0RVFVRlZMRWxCUTFRc1RVRkJUU3hGUVVGRkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUTBGQlF5eEZRVU01UXl4SlFVRkpMRVZCUVVNc1VVRkJVU3hGUVVOaUxFbEJRVWtzUlVGQlJTeDFSRUZCUXl4M1JFRkJVeXhKUVVGRExFdEJRVXNzUlVGQlJTeFJRVUZSTEVOQlFVTXNTMEZCU3l4WFFVRkpMRVZCUXpGRExFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJReTlDTEV0QlFVc3NSVUZCUlN4SFFVRkhMSGREUVVGRExFTkJRVU1zWTBGQll5eERRVUZETEUxQlFVMHNjMFJCUVdNc1EwRkJReXhoUVVGaExFTkJRVU1zUlVGQlJTeG5Ra0ZEY0VRc2QwTkJRVU1zUTBGQlF5eGpRVUZqTEVOQlFVTXNSVUZETjBJc1QwRkJUeXhGUVVGRkxEWkVRVUZ4UWl4RFFVRkRMQ3RFUVVGeFFpeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMRkZCUVZFc1EwRkJReXhYUVVNM1JDeERRVU5tTzBOQlEwWXNRMEZCUXl4RFFVRkRPMEZCUlVrc1RVRkJUU3hoUVVGaExFZEJRVWNzYlVSQlFWRXNRMEZCUXp0SlFVTndReXhKUVVGSkxFVkJRVVVzVTBGQlV6dEpRVU5tTEU5QlFVOHNSVUZCUlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVVzUlVGQlJUdFJRVU01UWl4TlFVRk5MRkZCUVZFc1IwRkJSeXcwUkVGQmJVSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVNdlF5eEpRVUZKTEZGQlFWRXNRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhGUVVGRk8xbEJRM3BDTEU5QlFVOHNSVUZCUlN4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxHVkJRV1VzUlVGQlJTeExRVUZMTEVWQlFVVXNRMEZCUXp0VFFVTjJSRHRSUVVWRUxFMUJRVTBzYlVKQlFXMUNMRWRCUVd0RExFVkJRVVVzUTBGQlF6dFJRVU01UkN4TlFVRk5MRmxCUVZrc1IwRkJSeXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVN1dVRkROVU1zU1VGQlNTeDNSVUZCYTBJc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdG5Ra0ZETDBJc2JVSkJRVzFDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dGhRVU4wUXp0WlFVTkVMRTFCUVUwc1dVRkJXU3hIUVVGSExHbEZRVUYzUWl4RFFVTXpReXhQUVVGUExFTkJRVU1zVVVGQlVTeEZRVU5vUWl4UlFVRlJMRU5CUVVNc1owSkJRV2RDTEVOQlF6RkNMRU5CUVVNN1dVRkRSaXhKUVVGSkxGbEJRVmtzUTBGQlF5eE5RVUZOTEV0QlFVc3NUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFVkJRVVU3WjBKQlEyNUVMRTlCUVU4c1QwRkJUeXhEUVVGRE8yRkJRMmhDTzFsQlEwUXNUMEZCVHl4elJVRkJZeXhEUVVGRExFOUJRVThzUlVGQlJUdG5Ra0ZETjBJc1VVRkJVU3hGUVVGRkxGbEJRVms3WVVGRGRrSXNRMEZCUXl4RFFVRkRPMUZCUTB3c1EwRkJReXhEUVVGRExFTkJRVU03VVVGRlNDeE5RVUZOTEdOQlFXTXNSMEZCUnl4M1JVRkJLMElzYVVOQlF5OURMRkZCUVZFc1MwRkJSU3huUWtGQlowSXNSVUZCUlN4RlFVRkZMRXRCUTI1RExDdEVRVUZ4UWl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVOd1F5eERRVUZETzFGQlJVWXNOa05CUVRaRE8xRkJRemRETEcxQ1FVRnRRaXhEUVVGRExFOUJRVThzUTBGRGVrSXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zWTBGQll5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4RFFVTjRSQ3hEUVVGRE8xRkJRMFlzVDBGQlR6dFpRVU5NTEZGQlFWRXNSVUZCUlN4alFVRmpPMWxCUlhoQ0xGRkJRVkVzUlVGQlJTeFpRVUZaTzFsQlEzUkNMR1ZCUVdVc1JVRkJSU3hKUVVGSk8xTkJRM1JDTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUTBRc1QwRkJUeXhGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZEYWtJc1MwRkJTeXhEUVVGRExGRkJRVkVzU1VGQlNTeExRVUZMTEVOQlFVTXNiVVJCUVdkQ0xFTkJRVU1zU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4TFFVRkxMREJEUVVGUE8wbEJRM0pGTEdkQ1FVRm5RaXhGUVVGRkxHZENRVUZuUWp0SlFVTnNReXh2UWtGQmIwSXNSVUZCUlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVVzUlVGQlJTeERRVU16UXl3MFJFRkJiVUlzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJRenRKUVVVeFF5eGpRVUZqTEVWQlFVVXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVVzVlVGQlZTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUTNSRUxIVkVRVUZETEN0RVFVRlZMRWxCUTFRc1NVRkJTU3hGUVVGRExGRkJRVkVzUlVGRFlpeE5RVUZOTEVWQlFVVXNORVJCUVcxQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNc1JVRkRiRVFzU1VGQlNTeEZRVUZGTEhWRVFVRkRMREJFUVVGWExFbEJRVU1zUzBGQlN5eEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRmRCUVVrc1JVRkROVU1zVDBGQlR5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGREwwSXNTMEZCU3l4RlFVRkZMRWRCUVVjc2QwTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxITkVRVUZqTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUlVGQlJTeG5Ra0ZETlVRc2QwTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhGUVVNdlFpeFBRVUZQTEVWQlFVVXNOa1JCUVhGQ0xFTkJRVU1zSzBSQlFYRkNMRU5CUVVNc1VVRkJVU3hEUVVGRExFVkJRVVVzVVVGQlVTeERRVUZETEZkQlF6ZEVMRU5CUTJZN1EwRkRSaXhEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dllXTjBhVzl1Y3k5aFkzUnBiMjVIY205MWNDNTBjM2cvTnpsbVppSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJEVDBSRlV5d2dTMFZaVXlCOUlHWnliMjBnWENJdUxpOXJaWGx6WENJN1hHNXBiWEJ2Y25RZ2V5QjBJSDBnWm5KdmJTQmNJaTR1TDJreE9HNWNJanRjYm1sdGNHOXlkQ0I3SUdGeWNtRjVWRzlOWVhBc0lHZGxkRk5vYjNKMFkzVjBTMlY1SUgwZ1puSnZiU0JjSWk0dUwzVjBhV3h6WENJN1hHNXBiWEJ2Y25RZ2V5QnlaV2RwYzNSbGNpQjlJR1p5YjIwZ1hDSXVMM0psWjJsemRHVnlYQ0k3WEc1cGJYQnZjblFnZXlCVmJtZHliM1Z3U1dOdmJpd2dSM0p2ZFhCSlkyOXVJSDBnWm5KdmJTQmNJaTR1TDJOdmJYQnZibVZ1ZEhNdmFXTnZibk5jSWp0Y2JtbHRjRzl5ZENCN0lHNWxkMFZzWlcxbGJuUlhhWFJvSUgwZ1puSnZiU0JjSWk0dUwyVnNaVzFsYm5RdmJYVjBZWFJsUld4bGJXVnVkRndpTzF4dWFXMXdiM0owSUhzZ1oyVjBVMlZzWldOMFpXUkZiR1Z0Wlc1MGN5d2dhWE5UYjIxbFJXeGxiV1Z1ZEZObGJHVmpkR1ZrSUgwZ1puSnZiU0JjSWk0dUwzTmpaVzVsWENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JuWlhSVFpXeGxZM1JsWkVkeWIzVndTV1J6TEZ4dUlDQnpaV3hsWTNSSGNtOTFjQ3hjYmlBZ2MyVnNaV04wUjNKdmRYQnpSbTl5VTJWc1pXTjBaV1JGYkdWdFpXNTBjeXhjYmlBZ1oyVjBSV3hsYldWdWRITkpia2R5YjNWd0xGeHVJQ0JoWkdSVWIwZHliM1Z3TEZ4dUlDQnlaVzF2ZG1WR2NtOXRVMlZzWldOMFpXUkhjbTkxY0hNc1hHNGdJR2x6Uld4bGJXVnVkRWx1UjNKdmRYQXNYRzU5SUdaeWIyMGdYQ0l1TGk5bmNtOTFjSE5jSWp0Y2JtbHRjRzl5ZENCN0lHZGxkRTV2YmtSbGJHVjBaV1JGYkdWdFpXNTBjeUI5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwWENJN1hHNXBiWEJ2Y25RZ2V5QnlZVzVrYjIxSlpDQjlJR1p5YjIwZ1hDSXVMaTl5WVc1a2IyMWNJanRjYm1sdGNHOXlkQ0I3SUZSdmIyeENkWFIwYjI0Z2ZTQm1jbTl0SUZ3aUxpNHZZMjl0Y0c5dVpXNTBjeTlVYjI5c1FuVjBkRzl1WENJN1hHNXBiWEJ2Y25RZ2V5QkZlR05oYkdsa2NtRjNSV3hsYldWdWRDd2dSWGhqWVd4cFpISmhkMVJsZUhSRmJHVnRaVzUwSUgwZ1puSnZiU0JjSWk0dUwyVnNaVzFsYm5RdmRIbHdaWE5jSWp0Y2JtbHRjRzl5ZENCN0lFRndjRk4wWVhSbElIMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdleUJwYzBKdmRXNWtWRzlEYjI1MFlXbHVaWElnZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEM5MGVYQmxRMmhsWTJ0elhDSTdYRzVjYm1OdmJuTjBJR0ZzYkVWc1pXMWxiblJ6U1c1VFlXMWxSM0p2ZFhBZ1BTQW9aV3hsYldWdWRITTZJSEpsWVdSdmJteDVJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTBwSUQwK0lIdGNiaUFnYVdZZ0tHVnNaVzFsYm5SekxteGxibWQwYUNBK1BTQXlLU0I3WEc0Z0lDQWdZMjl1YzNRZ1ozSnZkWEJKWkhNZ1BTQmxiR1Z0Wlc1MGMxc3dYUzVuY205MWNFbGtjenRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR2R5YjNWd1NXUWdiMllnWjNKdmRYQkpaSE1wSUh0Y2JpQWdJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lDQWdaV3hsYldWdWRITXVjbVZrZFdObEtGeHVJQ0FnSUNBZ0lDQWdJQ2hoWTJNc0lHVnNaVzFsYm5RcElEMCtJR0ZqWXlBbUppQnBjMFZzWlcxbGJuUkpia2R5YjNWd0tHVnNaVzFsYm5Rc0lHZHliM1Z3U1dRcExGeHVJQ0FnSUNBZ0lDQWdJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lDbGNiaUFnSUNBZ0lDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lIMWNiaUFnY21WMGRYSnVJR1poYkhObE8xeHVmVHRjYmx4dVkyOXVjM1FnWlc1aFlteGxRV04wYVc5dVIzSnZkWEFnUFNBb1hHNGdJR1ZzWlcxbGJuUnpPaUJ5WldGa2IyNXNlU0JGZUdOaGJHbGtjbUYzUld4bGJXVnVkRnRkTEZ4dUlDQmhjSEJUZEdGMFpUb2dRWEJ3VTNSaGRHVXNYRzRwSUQwK0lIdGNiaUFnWTI5dWMzUWdjMlZzWldOMFpXUkZiR1Z0Wlc1MGN5QTlJR2RsZEZObGJHVmpkR1ZrUld4bGJXVnVkSE1vWEc0Z0lDQWdaMlYwVG05dVJHVnNaWFJsWkVWc1pXMWxiblJ6S0dWc1pXMWxiblJ6S1N4Y2JpQWdJQ0JoY0hCVGRHRjBaU3hjYmlBZ0lDQjBjblZsTEZ4dUlDQXBPMXh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJSE5sYkdWamRHVmtSV3hsYldWdWRITXViR1Z1WjNSb0lENDlJRElnSmlZZ0lXRnNiRVZzWlcxbGJuUnpTVzVUWVcxbFIzSnZkWEFvYzJWc1pXTjBaV1JGYkdWdFpXNTBjeWxjYmlBZ0tUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JoWTNScGIyNUhjbTkxY0NBOUlISmxaMmx6ZEdWeUtIdGNiaUFnYm1GdFpUb2dYQ0puY205MWNGd2lMRnh1SUNCd1pYSm1iM0p0T2lBb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbEtTQTlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2MyVnNaV04wWldSRmJHVnRaVzUwY3lBOUlHZGxkRk5sYkdWamRHVmtSV3hsYldWdWRITW9YRzRnSUNBZ0lDQm5aWFJPYjI1RVpXeGxkR1ZrUld4bGJXVnVkSE1vWld4bGJXVnVkSE1wTEZ4dUlDQWdJQ0FnWVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0IwY25WbExGeHVJQ0FnSUNrN1hHNGdJQ0FnYVdZZ0tITmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNdWJHVnVaM1JvSUR3Z01pa2dlMXh1SUNBZ0lDQWdMeThnYm05MGFHbHVaeUIwYnlCbmNtOTFjRnh1SUNBZ0lDQWdjbVYwZFhKdUlIc2dZWEJ3VTNSaGRHVXNJR1ZzWlcxbGJuUnpMQ0JqYjIxdGFYUlViMGhwYzNSdmNuazZJR1poYkhObElIMDdYRzRnSUNBZ2ZWeHVJQ0FnSUM4dklHbG1JR1YyWlhKNWRHaHBibWNnYVhNZ1lXeHlaV0ZrZVNCbmNtOTFjR1ZrSUdsdWRHOGdNU0JuY205MWNDd2dkR2hsY21VZ2FYTWdibTkwYUdsdVp5QjBieUJrYjF4dUlDQWdJR052Ym5OMElITmxiR1ZqZEdWa1IzSnZkWEJKWkhNZ1BTQm5aWFJUWld4bFkzUmxaRWR5YjNWd1NXUnpLR0Z3Y0ZOMFlYUmxLVHRjYmlBZ0lDQnBaaUFvYzJWc1pXTjBaV1JIY205MWNFbGtjeTVzWlc1bmRHZ2dQVDA5SURFcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhObGJHVmpkR1ZrUjNKdmRYQkpaQ0E5SUhObGJHVmpkR1ZrUjNKdmRYQkpaSE5iTUYwN1hHNGdJQ0FnSUNCamIyNXpkQ0JsYkdWdFpXNTBTV1J6U1c1SGNtOTFjQ0E5SUc1bGR5QlRaWFFvWEc0Z0lDQWdJQ0FnSUdkbGRFVnNaVzFsYm5SelNXNUhjbTkxY0NobGJHVnRaVzUwY3l3Z2MyVnNaV04wWldSSGNtOTFjRWxrS1M1dFlYQW9YRzRnSUNBZ0lDQWdJQ0FnS0dWc1pXMWxiblFwSUQwK0lHVnNaVzFsYm5RdWFXUXNYRzRnSUNBZ0lDQWdJQ2tzWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnWTI5dWMzUWdjMlZzWldOMFpXUkZiR1Z0Wlc1MFNXUnpJRDBnYm1WM0lGTmxkQ2hjYmlBZ0lDQWdJQ0FnYzJWc1pXTjBaV1JGYkdWdFpXNTBjeTV0WVhBb0tHVnNaVzFsYm5RcElEMCtJR1ZzWlcxbGJuUXVhV1FwTEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR052YldKcGJtVmtVMlYwSUQwZ2JtVjNJRk5sZENoYlhHNGdJQ0FnSUNBZ0lDNHVMa0Z5Y21GNUxtWnliMjBvWld4bGJXVnVkRWxrYzBsdVIzSnZkWEFwTEZ4dUlDQWdJQ0FnSUNBdUxpNUJjbkpoZVM1bWNtOXRLSE5sYkdWamRHVmtSV3hsYldWdWRFbGtjeWtzWEc0Z0lDQWdJQ0JkS1R0Y2JpQWdJQ0FnSUdsbUlDaGpiMjFpYVc1bFpGTmxkQzV6YVhwbElEMDlQU0JsYkdWdFpXNTBTV1J6U1c1SGNtOTFjQzV6YVhwbEtTQjdYRzRnSUNBZ0lDQWdJQzh2SUc1dklHbHVZM0psYldWdWRHRnNJR2xrY3lCcGJpQjBhR1VnYzJWc1pXTjBaV1FnYVdSelhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCN0lHRndjRk4wWVhSbExDQmxiR1Z0Wlc1MGN5d2dZMjl0YldsMFZHOUlhWE4wYjNKNU9pQm1ZV3h6WlNCOU8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQnVaWGRIY205MWNFbGtJRDBnY21GdVpHOXRTV1FvS1R0Y2JpQWdJQ0JqYjI1emRDQnpaV3hsWTNSRmJHVnRaVzUwU1dSeklEMGdZWEp5WVhsVWIwMWhjQ2h6Wld4bFkzUmxaRVZzWlcxbGJuUnpLVHRjYmlBZ0lDQmpiMjV6ZENCMWNHUmhkR1ZrUld4bGJXVnVkSE1nUFNCbGJHVnRaVzUwY3k1dFlYQW9LR1ZzWlcxbGJuUXBJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hjMlZzWldOMFJXeGxiV1Z1ZEVsa2N5NW5aWFFvWld4bGJXVnVkQzVwWkNrcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHVnNaVzFsYm5RN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnYm1WM1JXeGxiV1Z1ZEZkcGRHZ29aV3hsYldWdWRDd2dlMXh1SUNBZ0lDQWdJQ0JuY205MWNFbGtjem9nWVdSa1ZHOUhjbTkxY0NoY2JpQWdJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MExtZHliM1Z3U1dSekxGeHVJQ0FnSUNBZ0lDQWdJRzVsZDBkeWIzVndTV1FzWEc0Z0lDQWdJQ0FnSUNBZ1lYQndVM1JoZEdVdVpXUnBkR2x1WjBkeWIzVndTV1FzWEc0Z0lDQWdJQ0FnSUNrc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOUtUdGNiaUFnSUNBdkx5QnJaV1Z3SUhSb1pTQjZJRzl5WkdWeUlIZHBkR2hwYmlCMGFHVWdaM0p2ZFhBZ2RHaGxJSE5oYldVc0lHSjFkQ0J0YjNabElIUm9aVzFjYmlBZ0lDQXZMeUIwYnlCMGFHVWdlaUJ2Y21SbGNpQnZaaUIwYUdVZ2FHbG5hR1Z6ZENCbGJHVnRaVzUwSUdsdUlIUm9aU0JzWVhsbGNpQnpkR0ZqYTF4dUlDQWdJR052Ym5OMElHVnNaVzFsYm5SelNXNUhjbTkxY0NBOUlHZGxkRVZzWlcxbGJuUnpTVzVIY205MWNDaDFjR1JoZEdWa1JXeGxiV1Z1ZEhNc0lHNWxkMGR5YjNWd1NXUXBPMXh1SUNBZ0lHTnZibk4wSUd4aGMzUkZiR1Z0Wlc1MFNXNUhjbTkxY0NBOUlHVnNaVzFsYm5SelNXNUhjbTkxY0Z0bGJHVnRaVzUwYzBsdVIzSnZkWEF1YkdWdVozUm9JQzBnTVYwN1hHNGdJQ0FnWTI5dWMzUWdiR0Z6ZEVkeWIzVndSV3hsYldWdWRFbHVaR1Y0SUQxY2JpQWdJQ0FnSUhWd1pHRjBaV1JGYkdWdFpXNTBjeTVzWVhOMFNXNWtaWGhQWmloc1lYTjBSV3hsYldWdWRFbHVSM0p2ZFhBcE8xeHVJQ0FnSUdOdmJuTjBJR1ZzWlcxbGJuUnpRV1owWlhKSGNtOTFjQ0E5SUhWd1pHRjBaV1JGYkdWdFpXNTBjeTV6YkdsalpTaHNZWE4wUjNKdmRYQkZiR1Z0Wlc1MFNXNWtaWGdnS3lBeEtUdGNiaUFnSUNCamIyNXpkQ0JsYkdWdFpXNTBjMEpsWm05eVpVZHliM1Z3SUQwZ2RYQmtZWFJsWkVWc1pXMWxiblJ6WEc0Z0lDQWdJQ0F1YzJ4cFkyVW9NQ3dnYkdGemRFZHliM1Z3Uld4bGJXVnVkRWx1WkdWNEtWeHVJQ0FnSUNBZ0xtWnBiSFJsY2loY2JpQWdJQ0FnSUNBZ0tIVndaR0YwWldSRmJHVnRaVzUwS1NBOVBpQWhhWE5GYkdWdFpXNTBTVzVIY205MWNDaDFjR1JoZEdWa1JXeGxiV1Z1ZEN3Z2JtVjNSM0p2ZFhCSlpDa3NYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUhWd1pHRjBaV1JGYkdWdFpXNTBjMGx1VDNKa1pYSWdQU0JiWEc0Z0lDQWdJQ0F1TGk1bGJHVnRaVzUwYzBKbFptOXlaVWR5YjNWd0xGeHVJQ0FnSUNBZ0xpNHVaV3hsYldWdWRITkpia2R5YjNWd0xGeHVJQ0FnSUNBZ0xpNHVaV3hsYldWdWRITkJablJsY2tkeWIzVndMRnh1SUNBZ0lGMDdYRzVjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ1lYQndVM1JoZEdVNklITmxiR1ZqZEVkeWIzVndLRnh1SUNBZ0lDQWdJQ0J1WlhkSGNtOTFjRWxrTEZ4dUlDQWdJQ0FnSUNCN0lDNHVMbUZ3Y0ZOMFlYUmxMQ0J6Wld4bFkzUmxaRWR5YjNWd1NXUnpPaUI3ZlNCOUxGeHVJQ0FnSUNBZ0lDQm5aWFJPYjI1RVpXeGxkR1ZrUld4bGJXVnVkSE1vZFhCa1lYUmxaRVZzWlcxbGJuUnpTVzVQY21SbGNpa3NYRzRnSUNBZ0lDQXBMRnh1SUNBZ0lDQWdaV3hsYldWdWRITTZJSFZ3WkdGMFpXUkZiR1Z0Wlc1MGMwbHVUM0prWlhJc1hHNGdJQ0FnSUNCamIyMXRhWFJVYjBocGMzUnZjbms2SUhSeWRXVXNYRzRnSUNBZ2ZUdGNiaUFnZlN4Y2JpQWdZMjl1ZEdWNGRFbDBaVzFNWVdKbGJEb2dYQ0pzWVdKbGJITXVaM0p2ZFhCY0lpeGNiaUFnWTI5dWRHVjRkRWwwWlcxUWNtVmthV05oZEdVNklDaGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXBJRDArWEc0Z0lDQWdaVzVoWW14bFFXTjBhVzl1UjNKdmRYQW9aV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxLU3hjYmlBZ2EyVjVWR1Z6ZERvZ0tHVjJaVzUwS1NBOVBseHVJQ0FnSUNGbGRtVnVkQzV6YUdsbWRFdGxlU0FtSmlCbGRtVnVkRnRMUlZsVExrTlVVa3hmVDFKZlEwMUVYU0FtSmlCbGRtVnVkQzVqYjJSbElEMDlQU0JEVDBSRlV5NUhMRnh1SUNCUVlXNWxiRU52YlhCdmJtVnVkRG9nS0hzZ1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQjFjR1JoZEdWRVlYUmhJSDBwSUQwK0lDaGNiaUFnSUNBOFZHOXZiRUoxZEhSdmJseHVJQ0FnSUNBZ2FHbGtaR1Z1UFhzaFpXNWhZbXhsUVdOMGFXOXVSM0p2ZFhBb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbEtYMWNiaUFnSUNBZ0lIUjVjR1U5WENKaWRYUjBiMjVjSWx4dUlDQWdJQ0FnYVdOdmJqMTdQRWR5YjNWd1NXTnZiaUIwYUdWdFpUMTdZWEJ3VTNSaGRHVXVkR2hsYldWOUlDOCtmVnh1SUNBZ0lDQWdiMjVEYkdsamF6MTdLQ2tnUFQ0Z2RYQmtZWFJsUkdGMFlTaHVkV3hzS1gxY2JpQWdJQ0FnSUhScGRHeGxQWHRnSkh0MEtGd2liR0ZpWld4ekxtZHliM1Z3WENJcGZTRGlnSlFnSkh0blpYUlRhRzl5ZEdOMWRFdGxlU2hjSWtOMGNteFBja050WkN0SFhDSXBmV0I5WEc0Z0lDQWdJQ0JoY21saExXeGhZbVZzUFh0MEtGd2liR0ZpWld4ekxtZHliM1Z3WENJcGZWeHVJQ0FnSUNBZ2RtbHphV0pzWlQxN2FYTlRiMjFsUld4bGJXVnVkRk5sYkdWamRHVmtLR2RsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3lobGJHVnRaVzUwY3lrc0lHRndjRk4wWVhSbEtYMWNiaUFnSUNBK1BDOVViMjlzUW5WMGRHOXVQbHh1SUNBcExGeHVmU2s3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JoWTNScGIyNVZibWR5YjNWd0lEMGdjbVZuYVhOMFpYSW9lMXh1SUNCdVlXMWxPaUJjSW5WdVozSnZkWEJjSWl4Y2JpQWdjR1Z5Wm05eWJUb2dLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR2R5YjNWd1NXUnpJRDBnWjJWMFUyVnNaV04wWldSSGNtOTFjRWxrY3loaGNIQlRkR0YwWlNrN1hHNGdJQ0FnYVdZZ0tHZHliM1Z3U1dSekxteGxibWQwYUNBOVBUMGdNQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSHNnWVhCd1UzUmhkR1VzSUdWc1pXMWxiblJ6TENCamIyMXRhWFJVYjBocGMzUnZjbms2SUdaaGJITmxJSDA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ1ltOTFibVJVWlhoMFJXeGxiV1Z1ZEVsa2N6b2dSWGhqWVd4cFpISmhkMVJsZUhSRmJHVnRaVzUwVzF3aWFXUmNJbDFiWFNBOUlGdGRPMXh1SUNBZ0lHTnZibk4wSUc1bGVIUkZiR1Z0Wlc1MGN5QTlJR1ZzWlcxbGJuUnpMbTFoY0Nnb1pXeGxiV1Z1ZENrZ1BUNGdlMXh1SUNBZ0lDQWdhV1lnS0dselFtOTFibVJVYjBOdmJuUmhhVzVsY2lobGJHVnRaVzUwS1NrZ2UxeHVJQ0FnSUNBZ0lDQmliM1Z1WkZSbGVIUkZiR1Z0Wlc1MFNXUnpMbkIxYzJnb1pXeGxiV1Z1ZEM1cFpDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQmpiMjV6ZENCdVpYaDBSM0p2ZFhCSlpITWdQU0J5WlcxdmRtVkdjbTl0VTJWc1pXTjBaV1JIY205MWNITW9YRzRnSUNBZ0lDQWdJR1ZzWlcxbGJuUXVaM0p2ZFhCSlpITXNYRzRnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxMbk5sYkdWamRHVmtSM0p2ZFhCSlpITXNYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdhV1lnS0c1bGVIUkhjbTkxY0Vsa2N5NXNaVzVuZEdnZ1BUMDlJR1ZzWlcxbGJuUXVaM0p2ZFhCSlpITXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmxiR1Z0Wlc1ME8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGQwVnNaVzFsYm5SWGFYUm9LR1ZzWlcxbGJuUXNJSHRjYmlBZ0lDQWdJQ0FnWjNKdmRYQkpaSE02SUc1bGVIUkhjbTkxY0Vsa2N5eGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdZMjl1YzNRZ2RYQmtZWFJsUVhCd1UzUmhkR1VnUFNCelpXeGxZM1JIY205MWNITkdiM0pUWld4bFkzUmxaRVZzWlcxbGJuUnpLRnh1SUNBZ0lDQWdleUF1TGk1aGNIQlRkR0YwWlN3Z2MyVnNaV04wWldSSGNtOTFjRWxrY3pvZ2UzMGdmU3hjYmlBZ0lDQWdJR2RsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3lodVpYaDBSV3hsYldWdWRITXBMRnh1SUNBZ0lDazdYRzVjYmlBZ0lDQXZMeUJ5WlcxdmRtVWdZbWx1WkdWa0lIUmxlSFFnWld4bGJXVnVkSE1nWm5KdmJTQnpaV3hsWTNScGIyNWNiaUFnSUNCaWIzVnVaRlJsZUhSRmJHVnRaVzUwU1dSekxtWnZja1ZoWTJnb1hHNGdJQ0FnSUNBb2FXUXBJRDArSUNoMWNHUmhkR1ZCY0hCVGRHRjBaUzV6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE5iYVdSZElEMGdabUZzYzJVcExGeHVJQ0FnSUNrN1hHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJR0Z3Y0ZOMFlYUmxPaUIxY0dSaGRHVkJjSEJUZEdGMFpTeGNibHh1SUNBZ0lDQWdaV3hsYldWdWRITTZJRzVsZUhSRmJHVnRaVzUwY3l4Y2JpQWdJQ0FnSUdOdmJXMXBkRlJ2U0dsemRHOXllVG9nZEhKMVpTeGNiaUFnSUNCOU8xeHVJQ0I5TEZ4dUlDQnJaWGxVWlhOME9pQW9aWFpsYm5RcElEMCtYRzRnSUNBZ1pYWmxiblF1YzJocFpuUkxaWGtnSmlZZ1pYWmxiblJiUzBWWlV5NURWRkpNWDA5U1gwTk5SRjBnSmlZZ1pYWmxiblF1WTI5a1pTQTlQVDBnUTA5RVJWTXVSeXhjYmlBZ1kyOXVkR1Y0ZEVsMFpXMU1ZV0psYkRvZ1hDSnNZV0psYkhNdWRXNW5jbTkxY0Z3aUxGeHVJQ0JqYjI1MFpYaDBTWFJsYlZCeVpXUnBZMkYwWlRvZ0tHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTa2dQVDVjYmlBZ0lDQm5aWFJUWld4bFkzUmxaRWR5YjNWd1NXUnpLR0Z3Y0ZOMFlYUmxLUzVzWlc1bmRHZ2dQaUF3TEZ4dVhHNGdJRkJoYm1Wc1EyOXRjRzl1Wlc1ME9pQW9leUJsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VzSUhWd1pHRjBaVVJoZEdFZ2ZTa2dQVDRnS0Z4dUlDQWdJRHhVYjI5c1FuVjBkRzl1WEc0Z0lDQWdJQ0IwZVhCbFBWd2lZblYwZEc5dVhDSmNiaUFnSUNBZ0lHaHBaR1JsYmoxN1oyVjBVMlZzWldOMFpXUkhjbTkxY0Vsa2N5aGhjSEJUZEdGMFpTa3ViR1Z1WjNSb0lEMDlQU0F3ZlZ4dUlDQWdJQ0FnYVdOdmJqMTdQRlZ1WjNKdmRYQkpZMjl1SUhSb1pXMWxQWHRoY0hCVGRHRjBaUzUwYUdWdFpYMGdMejU5WEc0Z0lDQWdJQ0J2YmtOc2FXTnJQWHNvS1NBOVBpQjFjR1JoZEdWRVlYUmhLRzUxYkd3cGZWeHVJQ0FnSUNBZ2RHbDBiR1U5ZTJBa2UzUW9YQ0pzWVdKbGJITXVkVzVuY205MWNGd2lLWDBnNG9DVUlDUjdaMlYwVTJodmNuUmpkWFJMWlhrb1hDSkRkSEpzVDNKRGJXUXJVMmhwWm5RclIxd2lLWDFnZlZ4dUlDQWdJQ0FnWVhKcFlTMXNZV0psYkQxN2RDaGNJbXhoWW1Wc2N5NTFibWR5YjNWd1hDSXBmVnh1SUNBZ0lDQWdkbWx6YVdKc1pUMTdhWE5UYjIxbFJXeGxiV1Z1ZEZObGJHVmpkR1ZrS0dkbGRFNXZia1JsYkdWMFpXUkZiR1Z0Wlc1MGN5aGxiR1Z0Wlc1MGN5a3NJR0Z3Y0ZOMFlYUmxLWDFjYmlBZ0lDQStQQzlVYjI5c1FuVjBkRzl1UGx4dUlDQXBMRnh1ZlNrN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2FjdGlvbnMvYWN0aW9uR3JvdXAudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9hY3Rpb25zL2FjdGlvbkhpc3RvcnkudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vYWN0aW9ucy9hY3Rpb25IaXN0b3J5LnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJjcmVhdGVVbmRvQWN0aW9uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY3JlYXRlVW5kb0FjdGlvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiY3JlYXRlUmVkb0FjdGlvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGNyZWF0ZVJlZG9BY3Rpb24pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL2ljb25zICovIFxcXCIuLi8uLi9jb21wb25lbnRzL2ljb25zLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29tcG9uZW50c19Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL1Rvb2xCdXR0b24gKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVG9vbEJ1dHRvbi50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2tleXMgKi8gXFxcIi4uLy4uL2tleXMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC9tdXRhdGVFbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L211dGF0ZUVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC9iaW5kaW5nICovIFxcXCIuLi8uLi9lbGVtZW50L2JpbmRpbmcudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi91dGlscyAqLyBcXFwiLi4vLi4vdXRpbHMudHNcXFwiKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCB3cml0ZURhdGEgPSAocHJldkVsZW1lbnRzLCBhcHBTdGF0ZSwgdXBkYXRlcikgPT4ge1xcbiAgICBjb25zdCBjb21taXRUb0hpc3RvcnkgPSBmYWxzZTtcXG4gICAgaWYgKCFhcHBTdGF0ZS5tdWx0aUVsZW1lbnQgJiZcXG4gICAgICAgICFhcHBTdGF0ZS5yZXNpemluZ0VsZW1lbnQgJiZcXG4gICAgICAgICFhcHBTdGF0ZS5lZGl0aW5nRWxlbWVudCAmJlxcbiAgICAgICAgIWFwcFN0YXRlLmRyYWdnaW5nRWxlbWVudCkge1xcbiAgICAgICAgY29uc3QgZGF0YSA9IHVwZGF0ZXIoKTtcXG4gICAgICAgIGlmIChkYXRhID09PSBudWxsKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHsgY29tbWl0VG9IaXN0b3J5IH07XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBwcmV2RWxlbWVudE1hcCA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmFycmF5VG9NYXApKHByZXZFbGVtZW50cyk7XFxuICAgICAgICBjb25zdCBuZXh0RWxlbWVudHMgPSBkYXRhLmVsZW1lbnRzO1xcbiAgICAgICAgY29uc3QgbmV4dEVsZW1lbnRNYXAgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5hcnJheVRvTWFwKShuZXh0RWxlbWVudHMpO1xcbiAgICAgICAgY29uc3QgZGVsZXRlZEVsZW1lbnRzID0gcHJldkVsZW1lbnRzLmZpbHRlcigocHJldkVsZW1lbnQpID0+ICFuZXh0RWxlbWVudE1hcC5oYXMocHJldkVsZW1lbnQuaWQpKTtcXG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gbmV4dEVsZW1lbnRzXFxuICAgICAgICAgICAgLm1hcCgobmV4dEVsZW1lbnQpID0+ICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5uZXdFbGVtZW50V2l0aCkocHJldkVsZW1lbnRNYXAuZ2V0KG5leHRFbGVtZW50LmlkKSB8fCBuZXh0RWxlbWVudCwgbmV4dEVsZW1lbnQpKVxcbiAgICAgICAgICAgIC5jb25jYXQoZGVsZXRlZEVsZW1lbnRzLm1hcCgocHJldkVsZW1lbnQpID0+ICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5uZXdFbGVtZW50V2l0aCkocHJldkVsZW1lbnQsIHsgaXNEZWxldGVkOiB0cnVlIH0pKSk7XFxuICAgICAgICAoMCxfZWxlbWVudF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uZml4QmluZGluZ3NBZnRlckRlbGV0aW9uKShlbGVtZW50cywgZGVsZXRlZEVsZW1lbnRzKTtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgZWxlbWVudHMsXFxuICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCBkYXRhLmFwcFN0YXRlKSxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3RvcnksXFxuICAgICAgICAgICAgc3luY0hpc3Rvcnk6IHRydWUsXFxuICAgICAgICB9O1xcbiAgICB9XFxuICAgIHJldHVybiB7IGNvbW1pdFRvSGlzdG9yeSB9O1xcbn07XFxuY29uc3QgY3JlYXRlVW5kb0FjdGlvbiA9IChoaXN0b3J5KSA9PiAoe1xcbiAgICBuYW1lOiBcXFwidW5kb1xcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHdyaXRlRGF0YShlbGVtZW50cywgYXBwU3RhdGUsICgpID0+IGhpc3RvcnkudW5kb09uY2UoKSksXFxuICAgIGtleVRlc3Q6IChldmVudCkgPT4gZXZlbnRbX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5LRVlTLkNUUkxfT1JfQ01EXSAmJlxcbiAgICAgICAgZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uS0VZUy5aICYmXFxuICAgICAgICAhZXZlbnQuc2hpZnRLZXksXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyB1cGRhdGVEYXRhLCBkYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlRvb2xCdXR0b24sIHsgdHlwZTogXFxcImJ1dHRvblxcXCIsIGljb246IF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udW5kbywgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnQpKFxcXCJidXR0b25zLnVuZG9cXFwiKSwgb25DbGljazogdXBkYXRlRGF0YSwgc2l6ZTogKGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS5zaXplKSB8fCBcXFwibWVkaXVtXFxcIiB9LCB2b2lkIDApKSxcXG4gICAgY29tbWl0VG9IaXN0b3J5OiAoKSA9PiBmYWxzZSxcXG59KTtcXG5jb25zdCBjcmVhdGVSZWRvQWN0aW9uID0gKGhpc3RvcnkpID0+ICh7XFxuICAgIG5hbWU6IFxcXCJyZWRvXFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSkgPT4gd3JpdGVEYXRhKGVsZW1lbnRzLCBhcHBTdGF0ZSwgKCkgPT4gaGlzdG9yeS5yZWRvT25jZSgpKSxcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiAoZXZlbnRbX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5LRVlTLkNUUkxfT1JfQ01EXSAmJlxcbiAgICAgICAgZXZlbnQuc2hpZnRLZXkgJiZcXG4gICAgICAgIGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLktFWVMuWikgfHxcXG4gICAgICAgIChfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmlzV2luZG93cyAmJiBldmVudC5jdHJsS2V5ICYmICFldmVudC5zaGlmdEtleSAmJiBldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uS0VZUy5ZKSxcXG4gICAgUGFuZWxDb21wb25lbnQ6ICh7IHVwZGF0ZURhdGEsIGRhdGEgfSkgPT4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uVG9vbEJ1dHRvbiwgeyB0eXBlOiBcXFwiYnV0dG9uXFxcIiwgaWNvbjogX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5yZWRvLCBcXFwiYXJpYS1sYWJlbFxcXCI6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udCkoXFxcImJ1dHRvbnMucmVkb1xcXCIpLCBvbkNsaWNrOiB1cGRhdGVEYXRhLCBzaXplOiAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhLnNpemUpIHx8IFxcXCJtZWRpdW1cXFwiIH0sIHZvaWQgMCkpLFxcbiAgICBjb21taXRUb0hpc3Rvcnk6ICgpID0+IGZhbHNlLFxcbn0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNUlhWE4wYjNKNUxuUnplQzVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3T3p0QlFVTnBSRHRCUVVOTE8wRkJRekZDTzBGQlNXTTdRVUZEWjBJN1FVRkRTVHRCUVVONFFqdEJRVVYwUXl4TlFVRk5MRk5CUVZNc1IwRkJSeXhEUVVOb1FpeFpRVUV3UXl4RlFVTXhReXhSUVVGclFpeEZRVU5zUWl4UFFVRnJReXhGUVVOd1FpeEZRVUZGTzBsQlEyaENMRTFCUVUwc1pVRkJaU3hIUVVGSExFdEJRVXNzUTBGQlF6dEpRVU01UWl4SlFVTkZMRU5CUVVNc1VVRkJVU3hEUVVGRExGbEJRVms3VVVGRGRFSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1pVRkJaVHRSUVVONlFpeERRVUZETEZGQlFWRXNRMEZCUXl4alFVRmpPMUZCUTNoQ0xFTkJRVU1zVVVGQlVTeERRVUZETEdWQlFXVXNSVUZEZWtJN1VVRkRRU3hOUVVGTkxFbEJRVWtzUjBGQlJ5eFBRVUZQTEVWQlFVVXNRMEZCUXp0UlFVTjJRaXhKUVVGSkxFbEJRVWtzUzBGQlN5eEpRVUZKTEVWQlFVVTdXVUZEYWtJc1QwRkJUeXhGUVVGRkxHVkJRV1VzUlVGQlJTeERRVUZETzFOQlF6VkNPMUZCUlVRc1RVRkJUU3hqUVVGakxFZEJRVWNzYTBSQlFWVXNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRSUVVOb1JDeE5RVUZOTEZsQlFWa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8xRkJRMjVETEUxQlFVMHNZMEZCWXl4SFFVRkhMR3RFUVVGVkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdVVUZGYUVRc1RVRkJUU3hsUVVGbExFZEJRVWNzV1VGQldTeERRVUZETEUxQlFVMHNRMEZEZWtNc1EwRkJReXhYUVVGWExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRWRCUVVjc1EwRkJReXhYUVVGWExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlEzSkVMRU5CUVVNN1VVRkRSaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eFpRVUZaTzJGQlF6RkNMRWRCUVVjc1EwRkJReXhEUVVGRExGZEJRVmNzUlVGQlJTeEZRVUZGTEVOQlEyNUNMSE5GUVVGakxFTkJRMW9zWTBGQll5eERRVUZETEVkQlFVY3NRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzVjBGQlZ5eEZRVU5xUkN4WFFVRlhMRU5CUTFvc1EwRkRSanRoUVVOQkxFMUJRVTBzUTBGRFRDeGxRVUZsTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1YwRkJWeXhGUVVGRkxFVkJRVVVzUTBGRGJFTXNjMFZCUVdNc1EwRkJReXhYUVVGWExFVkJRVVVzUlVGQlJTeFRRVUZUTEVWQlFVVXNTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkRha1FzUTBGRFJpeERRVUZETzFGQlEwb3NNRVZCUVhkQ0xFTkJRVU1zVVVGQlVTeEZRVUZGTEdWQlFXVXNRMEZCUXl4RFFVRkRPMUZCUlhCRUxFOUJRVTg3V1VGRFRDeFJRVUZSTzFsQlExSXNVVUZCVVN4clEwRkJUeXhSUVVGUkxFZEJRVXNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUlR0WlFVTXpReXhsUVVGbE8xbEJRMllzVjBGQlZ5eEZRVUZGTEVsQlFVazdVMEZEYkVJc1EwRkJRenRMUVVOSU8wbEJRMFFzVDBGQlR5eEZRVUZGTEdWQlFXVXNSVUZCUlN4RFFVRkRPMEZCUXpkQ0xFTkJRVU1zUTBGQlF6dEJRVWxMTEUxQlFVMHNaMEpCUVdkQ0xFZEJRV3RDTEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRek5FTEVsQlFVa3NSVUZCUlN4TlFVRk5PMGxCUTFvc1QwRkJUeXhGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4RlFVRkZMRU5CUXpsQ0xGTkJRVk1zUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXp0SlFVTjZSQ3hQUVVGUExFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVTnFRaXhMUVVGTExFTkJRVU1zYlVSQlFXZENMRU5CUVVNN1VVRkRka0lzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4WFFVRlhMRVZCUVVVc1MwRkJTeXg1UTBGQlRUdFJRVU5zUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUk8wbEJRMnBDTEdOQlFXTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVTjRReXgxUkVGQlF5dzRSRUZCVlN4SlFVTlVMRWxCUVVrc1JVRkJReXhSUVVGUkxFVkJRMklzU1VGQlNTeEZRVUZGTEcxRVFVRkpMR2RDUVVORkxIZERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRVZCUXpkQ0xFOUJRVThzUlVGQlJTeFZRVUZWTEVWQlEyNUNMRWxCUVVrc1JVRkJSU3hMUVVGSkxHRkJRVW9zU1VGQlNTeDFRa0ZCU2l4SlFVRkpMRU5CUVVVc1NVRkJTU3hMUVVGSkxGRkJRVkVzVjBGRE5VSXNRMEZEU0R0SlFVTkVMR1ZCUVdVc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eExRVUZMTzBOQlF6ZENMRU5CUVVNc1EwRkJRenRCUVVWSkxFMUJRVTBzWjBKQlFXZENMRWRCUVd0Q0xFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUXpORUxFbEJRVWtzUlVGQlJTeE5RVUZOTzBsQlExb3NUMEZCVHl4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEZRVUZGTEVOQlF6bENMRk5CUVZNc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF6dEpRVU42UkN4UFFVRlBMRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVU5xUWl4RFFVRkRMRXRCUVVzc1EwRkJReXh0UkVGQlowSXNRMEZCUXp0UlFVTjBRaXhMUVVGTExFTkJRVU1zVVVGQlVUdFJRVU5rTEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1YwRkJWeXhGUVVGRkxFdEJRVXNzZVVOQlFVMHNRMEZCUXp0UlFVTnlReXhEUVVGRExEUkRRVUZUTEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVsQlFVa3NTMEZCU3l4RFFVRkRMRWRCUVVjc1MwRkJTeXg1UTBGQlRTeERRVUZETzBsQlEzcEZMR05CUVdNc1JVRkJSU3hEUVVGRExFVkJRVVVzVlVGQlZTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVONFF5eDFSRUZCUXl3NFJFRkJWU3hKUVVOVUxFbEJRVWtzUlVGQlF5eFJRVUZSTEVWQlEySXNTVUZCU1N4RlFVRkZMRzFFUVVGSkxHZENRVU5GTEhkRFFVRkRMRU5CUVVNc1kwRkJZeXhEUVVGRExFVkJRemRDTEU5QlFVOHNSVUZCUlN4VlFVRlZMRVZCUTI1Q0xFbEJRVWtzUlVGQlJTeExRVUZKTEdGQlFVb3NTVUZCU1N4MVFrRkJTaXhKUVVGSkxFTkJRVVVzU1VGQlNTeExRVUZKTEZGQlFWRXNWMEZETlVJc1EwRkRTRHRKUVVORUxHVkJRV1VzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4TFFVRkxPME5CUXpkQ0xFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTloWTNScGIyNXpMMkZqZEdsdmJraHBjM1J2Y25rdWRITjRQemxtTkdNaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dRV04wYVc5dUxDQkJZM1JwYjI1U1pYTjFiSFFnZlNCbWNtOXRJRndpTGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ2RXNWtieXdnY21Wa2J5QjlJR1p5YjIwZ1hDSXVMaTlqYjIxd2IyNWxiblJ6TDJsamIyNXpYQ0k3WEc1cGJYQnZjblFnZXlCVWIyOXNRblYwZEc5dUlIMGdabkp2YlNCY0lpNHVMMk52YlhCdmJtVnVkSE12Vkc5dmJFSjFkSFJ2Ymx3aU8xeHVhVzF3YjNKMElIc2dkQ0I5SUdaeWIyMGdYQ0l1TGk5cE1UaHVYQ0k3WEc1cGJYQnZjblFnU0dsemRHOXllU3dnZXlCSWFYTjBiM0o1Ulc1MGNua2dmU0JtY205dElGd2lMaTR2YUdsemRHOXllVndpTzF4dWFXMXdiM0owSUhzZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5RZ2ZTQm1jbTl0SUZ3aUxpNHZaV3hsYldWdWRDOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dRWEJ3VTNSaGRHVWdmU0JtY205dElGd2lMaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUdselYybHVaRzkzY3l3Z1MwVlpVeUI5SUdaeWIyMGdYQ0l1TGk5clpYbHpYQ0k3WEc1cGJYQnZjblFnZXlCdVpYZEZiR1Z0Wlc1MFYybDBhQ0I5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwTDIxMWRHRjBaVVZzWlcxbGJuUmNJanRjYm1sdGNHOXlkQ0I3SUdacGVFSnBibVJwYm1kelFXWjBaWEpFWld4bGRHbHZiaUI5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwTDJKcGJtUnBibWRjSWp0Y2JtbHRjRzl5ZENCN0lHRnljbUY1Vkc5TllYQWdmU0JtY205dElGd2lMaTR2ZFhScGJITmNJanRjYmx4dVkyOXVjM1FnZDNKcGRHVkVZWFJoSUQwZ0tGeHVJQ0J3Y21WMlJXeGxiV1Z1ZEhNNklISmxZV1J2Ym14NUlFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMHNYRzRnSUdGd2NGTjBZWFJsT2lCQmNIQlRkR0YwWlN4Y2JpQWdkWEJrWVhSbGNqb2dLQ2tnUFQ0Z1NHbHpkRzl5ZVVWdWRISjVJSHdnYm5Wc2JDeGNiaWs2SUVGamRHbHZibEpsYzNWc2RDQTlQaUI3WEc0Z0lHTnZibk4wSUdOdmJXMXBkRlJ2U0dsemRHOXllU0E5SUdaaGJITmxPMXh1SUNCcFppQW9YRzRnSUNBZ0lXRndjRk4wWVhSbExtMTFiSFJwUld4bGJXVnVkQ0FtSmx4dUlDQWdJQ0ZoY0hCVGRHRjBaUzV5WlhOcGVtbHVaMFZzWlcxbGJuUWdKaVpjYmlBZ0lDQWhZWEJ3VTNSaGRHVXVaV1JwZEdsdVowVnNaVzFsYm5RZ0ppWmNiaUFnSUNBaFlYQndVM1JoZEdVdVpISmhaMmRwYm1kRmJHVnRaVzUwWEc0Z0lDa2dlMXh1SUNBZ0lHTnZibk4wSUdSaGRHRWdQU0IxY0dSaGRHVnlLQ2s3WEc0Z0lDQWdhV1lnS0dSaGRHRWdQVDA5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjdJR052YlcxcGRGUnZTR2x6ZEc5eWVTQjlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhCeVpYWkZiR1Z0Wlc1MFRXRndJRDBnWVhKeVlYbFViMDFoY0Nod2NtVjJSV3hsYldWdWRITXBPMXh1SUNBZ0lHTnZibk4wSUc1bGVIUkZiR1Z0Wlc1MGN5QTlJR1JoZEdFdVpXeGxiV1Z1ZEhNN1hHNGdJQ0FnWTI5dWMzUWdibVY0ZEVWc1pXMWxiblJOWVhBZ1BTQmhjbkpoZVZSdlRXRndLRzVsZUhSRmJHVnRaVzUwY3lrN1hHNWNiaUFnSUNCamIyNXpkQ0JrWld4bGRHVmtSV3hsYldWdWRITWdQU0J3Y21WMlJXeGxiV1Z1ZEhNdVptbHNkR1Z5S0Z4dUlDQWdJQ0FnS0hCeVpYWkZiR1Z0Wlc1MEtTQTlQaUFoYm1WNGRFVnNaVzFsYm5STllYQXVhR0Z6S0hCeVpYWkZiR1Z0Wlc1MExtbGtLU3hjYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUdWc1pXMWxiblJ6SUQwZ2JtVjRkRVZzWlcxbGJuUnpYRzRnSUNBZ0lDQXViV0Z3S0NodVpYaDBSV3hsYldWdWRDa2dQVDVjYmlBZ0lDQWdJQ0FnYm1WM1JXeGxiV1Z1ZEZkcGRHZ29YRzRnSUNBZ0lDQWdJQ0FnY0hKbGRrVnNaVzFsYm5STllYQXVaMlYwS0c1bGVIUkZiR1Z0Wlc1MExtbGtLU0I4ZkNCdVpYaDBSV3hsYldWdWRDeGNiaUFnSUNBZ0lDQWdJQ0J1WlhoMFJXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lDbGNiaUFnSUNBZ0lDNWpiMjVqWVhRb1hHNGdJQ0FnSUNBZ0lHUmxiR1YwWldSRmJHVnRaVzUwY3k1dFlYQW9LSEJ5WlhaRmJHVnRaVzUwS1NBOVBseHVJQ0FnSUNBZ0lDQWdJRzVsZDBWc1pXMWxiblJYYVhSb0tIQnlaWFpGYkdWdFpXNTBMQ0I3SUdselJHVnNaWFJsWkRvZ2RISjFaU0I5S1N4Y2JpQWdJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lDazdYRzRnSUNBZ1ptbDRRbWx1WkdsdVozTkJablJsY2tSbGJHVjBhVzl1S0dWc1pXMWxiblJ6TENCa1pXeGxkR1ZrUld4bGJXVnVkSE1wTzF4dVhHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJR1ZzWlcxbGJuUnpMRnh1SUNBZ0lDQWdZWEJ3VTNSaGRHVTZJSHNnTGk0dVlYQndVM1JoZEdVc0lDNHVMbVJoZEdFdVlYQndVM1JoZEdVZ2ZTeGNiaUFnSUNBZ0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVN4Y2JpQWdJQ0FnSUhONWJtTklhWE4wYjNKNU9pQjBjblZsTEZ4dUlDQWdJSDA3WEc0Z0lIMWNiaUFnY21WMGRYSnVJSHNnWTI5dGJXbDBWRzlJYVhOMGIzSjVJSDA3WEc1OU8xeHVYRzUwZVhCbElFRmpkR2x2YmtOeVpXRjBiM0lnUFNBb2FHbHpkRzl5ZVRvZ1NHbHpkRzl5ZVNrZ1BUNGdRV04wYVc5dU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1kzSmxZWFJsVlc1a2IwRmpkR2x2YmpvZ1FXTjBhVzl1UTNKbFlYUnZjaUE5SUNob2FYTjBiM0o1S1NBOVBpQW9lMXh1SUNCdVlXMWxPaUJjSW5WdVpHOWNJaXhjYmlBZ2NHVnlabTl5YlRvZ0tHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTa2dQVDVjYmlBZ0lDQjNjbWwwWlVSaGRHRW9aV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxMQ0FvS1NBOVBpQm9hWE4wYjNKNUxuVnVaRzlQYm1ObEtDa3BMRnh1SUNCclpYbFVaWE4wT2lBb1pYWmxiblFwSUQwK1hHNGdJQ0FnWlhabGJuUmJTMFZaVXk1RFZGSk1YMDlTWDBOTlJGMGdKaVpjYmlBZ0lDQmxkbVZ1ZEM1clpYa3VkRzlNYjNkbGNrTmhjMlVvS1NBOVBUMGdTMFZaVXk1YUlDWW1YRzRnSUNBZ0lXVjJaVzUwTG5Ob2FXWjBTMlY1TEZ4dUlDQlFZVzVsYkVOdmJYQnZibVZ1ZERvZ0tIc2dkWEJrWVhSbFJHRjBZU3dnWkdGMFlTQjlLU0E5UGlBb1hHNGdJQ0FnUEZSdmIyeENkWFIwYjI1Y2JpQWdJQ0FnSUhSNWNHVTlYQ0ppZFhSMGIyNWNJbHh1SUNBZ0lDQWdhV052YmoxN2RXNWtiMzFjYmlBZ0lDQWdJR0Z5YVdFdGJHRmlaV3c5ZTNRb1hDSmlkWFIwYjI1ekxuVnVaRzljSWlsOVhHNGdJQ0FnSUNCdmJrTnNhV05yUFh0MWNHUmhkR1ZFWVhSaGZWeHVJQ0FnSUNBZ2MybDZaVDE3WkdGMFlUOHVjMmw2WlNCOGZDQmNJbTFsWkdsMWJWd2lmVnh1SUNBZ0lDOCtYRzRnSUNrc1hHNGdJR052YlcxcGRGUnZTR2x6ZEc5eWVUb2dLQ2tnUFQ0Z1ptRnNjMlVzWEc1OUtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHTnlaV0YwWlZKbFpHOUJZM1JwYjI0NklFRmpkR2x2YmtOeVpXRjBiM0lnUFNBb2FHbHpkRzl5ZVNrZ1BUNGdLSHRjYmlBZ2JtRnRaVG9nWENKeVpXUnZYQ0lzWEc0Z0lIQmxjbVp2Y20wNklDaGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXBJRDArWEc0Z0lDQWdkM0pwZEdWRVlYUmhLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU3dnS0NrZ1BUNGdhR2x6ZEc5eWVTNXlaV1J2VDI1alpTZ3BLU3hjYmlBZ2EyVjVWR1Z6ZERvZ0tHVjJaVzUwS1NBOVBseHVJQ0FnSUNobGRtVnVkRnRMUlZsVExrTlVVa3hmVDFKZlEwMUVYU0FtSmx4dUlDQWdJQ0FnWlhabGJuUXVjMmhwWm5STFpYa2dKaVpjYmlBZ0lDQWdJR1YyWlc1MExtdGxlUzUwYjB4dmQyVnlRMkZ6WlNncElEMDlQU0JMUlZsVExsb3BJSHg4WEc0Z0lDQWdLR2x6VjJsdVpHOTNjeUFtSmlCbGRtVnVkQzVqZEhKc1MyVjVJQ1ltSUNGbGRtVnVkQzV6YUdsbWRFdGxlU0FtSmlCbGRtVnVkQzVyWlhrZ1BUMDlJRXRGV1ZNdVdTa3NYRzRnSUZCaGJtVnNRMjl0Y0c5dVpXNTBPaUFvZXlCMWNHUmhkR1ZFWVhSaExDQmtZWFJoSUgwcElEMCtJQ2hjYmlBZ0lDQThWRzl2YkVKMWRIUnZibHh1SUNBZ0lDQWdkSGx3WlQxY0ltSjFkSFJ2Ymx3aVhHNGdJQ0FnSUNCcFkyOXVQWHR5WldSdmZWeHVJQ0FnSUNBZ1lYSnBZUzFzWVdKbGJEMTdkQ2hjSW1KMWRIUnZibk11Y21Wa2Ixd2lLWDFjYmlBZ0lDQWdJRzl1UTJ4cFkyczllM1Z3WkdGMFpVUmhkR0Y5WEc0Z0lDQWdJQ0J6YVhwbFBYdGtZWFJoUHk1emFYcGxJSHg4SUZ3aWJXVmthWFZ0WENKOVhHNGdJQ0FnTHo1Y2JpQWdLU3hjYmlBZ1kyOXRiV2wwVkc5SWFYTjBiM0o1T2lBb0tTQTlQaUJtWVd4elpTeGNibjBwTzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vYWN0aW9ucy9hY3Rpb25IaXN0b3J5LnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25NZW51LnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2FjdGlvbnMvYWN0aW9uTWVudS50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uVG9nZ2xlQ2FudmFzTWVudVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvblRvZ2dsZUNhbnZhc01lbnUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvblRvZ2dsZUVkaXRNZW51XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uVG9nZ2xlRWRpdE1lbnUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkZ1bGxTY3JlZW5cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25GdWxsU2NyZWVuKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25TaG9ydGN1dHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25TaG9ydGN1dHMpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL2ljb25zICovIFxcXCIuLi8uLi9jb21wb25lbnRzL2ljb25zLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29tcG9uZW50c19Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL1Rvb2xCdXR0b24gKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVG9vbEJ1dHRvbi50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3JlZ2lzdGVyICovIFxcXCIuLi8uLi9hY3Rpb25zL3JlZ2lzdGVyLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vdXRpbHMgKi8gXFxcIi4uLy4uL3V0aWxzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9rZXlzICovIFxcXCIuLi8uLi9rZXlzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX0hlbHBJY29uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL0hlbHBJY29uICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0hlbHBJY29uLnRzeFxcXCIpO1xcblxcblxcblxcblxcblxcblxcblxcblxcblxcbmNvbnN0IGFjdGlvblRvZ2dsZUNhbnZhc01lbnUgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwidG9nZ2xlQ2FudmFzTWVudVxcXCIsXFxuICAgIHBlcmZvcm06IChfLCBhcHBTdGF0ZSkgPT4gKHtcXG4gICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBvcGVuTWVudTogYXBwU3RhdGUub3Blbk1lbnUgPT09IFxcXCJjYW52YXNcXFwiID8gbnVsbCA6IFxcXCJjYW52YXNcXFwiIH0pLFxcbiAgICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcXG4gICAgfSksXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyBhcHBTdGF0ZSwgdXBkYXRlRGF0YSB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5Ub29sQnV0dG9uLCB7IHR5cGU6IFxcXCJidXR0b25cXFwiLCBpY29uOiBfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLm1lbnUsIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy50KShcXFwiYnV0dG9ucy5tZW51XFxcIiksIG9uQ2xpY2s6IHVwZGF0ZURhdGEsIHNlbGVjdGVkOiBhcHBTdGF0ZS5vcGVuTWVudSA9PT0gXFxcImNhbnZhc1xcXCIgfSwgdm9pZCAwKSksXFxufSk7XFxuY29uc3QgYWN0aW9uVG9nZ2xlRWRpdE1lbnUgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwidG9nZ2xlRWRpdE1lbnVcXFwiLFxcbiAgICBwZXJmb3JtOiAoX2VsZW1lbnRzLCBhcHBTdGF0ZSkgPT4gKHtcXG4gICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBvcGVuTWVudTogYXBwU3RhdGUub3Blbk1lbnUgPT09IFxcXCJzaGFwZVxcXCIgPyBudWxsIDogXFxcInNoYXBlXFxcIiB9KSxcXG4gICAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXFxuICAgIH0pLFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgZWxlbWVudHMsIGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlRvb2xCdXR0b24sIHsgdmlzaWJsZTogKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5zaG93U2VsZWN0ZWRTaGFwZUFjdGlvbnMpKGFwcFN0YXRlLCAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmdldE5vbkRlbGV0ZWRFbGVtZW50cykoZWxlbWVudHMpKSwgdHlwZTogXFxcImJ1dHRvblxcXCIsIGljb246IF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ucGFsZXR0ZSwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnQpKFxcXCJidXR0b25zLmVkaXRcXFwiKSwgb25DbGljazogdXBkYXRlRGF0YSwgc2VsZWN0ZWQ6IGFwcFN0YXRlLm9wZW5NZW51ID09PSBcXFwic2hhcGVcXFwiIH0sIHZvaWQgMCkpLFxcbn0pO1xcbmNvbnN0IGFjdGlvbkZ1bGxTY3JlZW4gPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwidG9nZ2xlRnVsbFNjcmVlblxcXCIsXFxuICAgIHBlcmZvcm06ICgpID0+IHtcXG4gICAgICAgIGlmICghKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uaXNGdWxsU2NyZWVuKSgpKSB7XFxuICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uYWxsb3dGdWxsU2NyZWVuKSgpO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKCgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmlzRnVsbFNjcmVlbikoKSkge1xcbiAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmV4aXRGdWxsU2NyZWVuKSgpO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IGZhbHNlLFxcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiBldmVudC5jb2RlID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLkNPREVTLkYgJiYgIWV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uS0VZUy5DVFJMX09SX0NNRF0sXFxufSk7XFxuY29uc3QgYWN0aW9uU2hvcnRjdXRzID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcInRvZ2dsZVNob3J0Y3V0c1xcXCIsXFxuICAgIHBlcmZvcm06IChfZWxlbWVudHMsIGFwcFN0YXRlLCBfLCB7IGZvY3VzQ29udGFpbmVyIH0pID0+IHtcXG4gICAgICAgIGlmIChhcHBTdGF0ZS5zaG93SGVscERpYWxvZykge1xcbiAgICAgICAgICAgIGZvY3VzQ29udGFpbmVyKCk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBzaG93SGVscERpYWxvZzogIWFwcFN0YXRlLnNob3dIZWxwRGlhbG9nIH0pLFxcbiAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgdXBkYXRlRGF0YSB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX0hlbHBJY29uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uSGVscEljb24sIHsgdGl0bGU6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udCkoXFxcImhlbHBEaWFsb2cudGl0bGVcXFwiKSwgb25DbGljazogdXBkYXRlRGF0YSB9LCB2b2lkIDApKSxcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiBldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uS0VZUy5RVUVTVElPTl9NQVJLLFxcbn0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNU5aVzUxTG5SemVDNXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN096czdPenM3T3p0QlFVRnZSRHRCUVVORk8wRkJRekZDTzBGQlEybEVPMEZCUTNaRE8wRkJRMjFETzBGQlEyNURPMEZCUTFrN1FVRkZNME1zVFVGQlRTeHpRa0ZCYzBJc1IwRkJSeXh0UkVGQlVTeERRVUZETzBsQlF6ZERMRWxCUVVrc1JVRkJSU3hyUWtGQmEwSTdTVUZEZUVJc1QwRkJUeXhGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVUZGTEZGQlFWRXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVONlFpeFJRVUZSTEd0RFFVTklMRkZCUVZFc1MwRkRXQ3hSUVVGUkxFVkJRVVVzVVVGQlVTeERRVUZETEZGQlFWRXNTMEZCU3l4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4SFFVTXpSRHRSUVVORUxHVkJRV1VzUlVGQlJTeExRVUZMTzB0QlEzWkNMRU5CUVVNN1NVRkRSaXhqUVVGakxFVkJRVVVzUTBGQlF5eEZRVUZGTEZGQlFWRXNSVUZCUlN4VlFVRlZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGRE5VTXNkVVJCUVVNc09FUkJRVlVzU1VGRFZDeEpRVUZKTEVWQlFVTXNVVUZCVVN4RlFVTmlMRWxCUVVrc1JVRkJSU3h0UkVGQlNTeG5Ra0ZEUlN4M1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eEZRVU0zUWl4UFFVRlBMRVZCUVVVc1ZVRkJWU3hGUVVOdVFpeFJRVUZSTEVWQlFVVXNVVUZCVVN4RFFVRkRMRkZCUVZFc1MwRkJTeXhSUVVGUkxGZEJRM2hETEVOQlEwZzdRMEZEUml4RFFVRkRMRU5CUVVNN1FVRkZTU3hOUVVGTkxHOUNRVUZ2UWl4SFFVRkhMRzFFUVVGUkxFTkJRVU03U1VGRE0wTXNTVUZCU1N4RlFVRkZMR2RDUVVGblFqdEpRVU4wUWl4UFFVRlBMRVZCUVVVc1EwRkJReXhUUVVGVExFVkJRVVVzVVVGQlVTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTJwRExGRkJRVkVzYTBOQlEwZ3NVVUZCVVN4TFFVTllMRkZCUVZFc1JVRkJSU3hSUVVGUkxFTkJRVU1zVVVGQlVTeExRVUZMTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVkQlEzcEVPMUZCUTBRc1pVRkJaU3hGUVVGRkxFdEJRVXM3UzBGRGRrSXNRMEZCUXp0SlFVTkdMR05CUVdNc1JVRkJSU3hEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4VlFVRlZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGRGRFUXNkVVJCUVVNc09FUkJRVlVzU1VGRFZDeFBRVUZQTEVWQlFVVXNhMFZCUVhkQ0xFTkJReTlDTEZGQlFWRXNSVUZEVWl3clJFRkJjVUlzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZEYUVNc1JVRkRSQ3hKUVVGSkxFVkJRVU1zVVVGQlVTeEZRVU5pTEVsQlFVa3NSVUZCUlN4elJFRkJUeXhuUWtGRFJDeDNRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJReXhGUVVNM1FpeFBRVUZQTEVWQlFVVXNWVUZCVlN4RlFVTnVRaXhSUVVGUkxFVkJRVVVzVVVGQlVTeERRVUZETEZGQlFWRXNTMEZCU3l4UFFVRlBMRmRCUTNaRExFTkJRMGc3UTBGRFJpeERRVUZETEVOQlFVTTdRVUZGU1N4TlFVRk5MR2RDUVVGblFpeEhRVUZITEcxRVFVRlJMRU5CUVVNN1NVRkRka01zU1VGQlNTeEZRVUZGTEd0Q1FVRnJRanRKUVVONFFpeFBRVUZQTEVWQlFVVXNSMEZCUnl4RlFVRkZPMUZCUTFvc1NVRkJTU3hEUVVGRExHOUVRVUZaTEVWQlFVVXNSVUZCUlR0WlFVTnVRaXgxUkVGQlpTeEZRVUZGTEVOQlFVTTdVMEZEYmtJN1VVRkRSQ3hKUVVGSkxHOUVRVUZaTEVWQlFVVXNSVUZCUlR0WlFVTnNRaXh6UkVGQll5eEZRVUZGTEVOQlFVTTdVMEZEYkVJN1VVRkRSQ3hQUVVGUE8xbEJRMHdzWlVGQlpTeEZRVUZGTEV0QlFVczdVMEZEZGtJc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRFJDeFBRVUZQTEVWQlFVVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEV0QlFVc3NNRU5CUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eHRSRUZCWjBJc1EwRkJRenREUVVOMlJTeERRVUZETEVOQlFVTTdRVUZGU1N4TlFVRk5MR1ZCUVdVc1IwRkJSeXh0UkVGQlVTeERRVUZETzBsQlEzUkRMRWxCUVVrc1JVRkJSU3hwUWtGQmFVSTdTVUZEZGtJc1QwRkJUeXhGUVVGRkxFTkJRVU1zVTBGQlV5eEZRVUZGTEZGQlFWRXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hqUVVGakxFVkJRVVVzUlVGQlJTeEZRVUZGTzFGQlEzUkVMRWxCUVVrc1VVRkJVU3hEUVVGRExHTkJRV01zUlVGQlJUdFpRVU16UWl4alFVRmpMRVZCUVVVc1EwRkJRenRUUVVOc1FqdFJRVU5FTEU5QlFVODdXVUZEVEN4UlFVRlJMR3REUVVOSUxGRkJRVkVzUzBGRFdDeGpRVUZqTEVWQlFVVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1kwRkJZeXhIUVVONlF6dFpRVU5FTEdWQlFXVXNSVUZCUlN4TFFVRkxPMU5CUTNaQ0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlEwUXNZMEZCWXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hWUVVGVkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZEYkVNc2RVUkJRVU1zTUVSQlFWRXNTVUZCUXl4TFFVRkxMRVZCUVVVc2QwTkJRVU1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhGUVVGRkxFOUJRVThzUlVGQlJTeFZRVUZWTEZkQlFVa3NRMEZEYUVVN1NVRkRSQ3hQUVVGUExFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFdEJRVXNzY1VSQlFXdENPME5CUTNKRUxFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTloWTNScGIyNXpMMkZqZEdsdmJrMWxiblV1ZEhONFAyUmpNREVpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ2JXVnVkU3dnY0dGc1pYUjBaU0I5SUdaeWIyMGdYQ0l1TGk5amIyMXdiMjVsYm5SekwybGpiMjV6WENJN1hHNXBiWEJ2Y25RZ2V5QlViMjlzUW5WMGRHOXVJSDBnWm5KdmJTQmNJaTR1TDJOdmJYQnZibVZ1ZEhNdlZHOXZiRUoxZEhSdmJsd2lPMXh1YVcxd2IzSjBJSHNnZENCOUlHWnliMjBnWENJdUxpOXBNVGh1WENJN1hHNXBiWEJ2Y25RZ2V5QnphRzkzVTJWc1pXTjBaV1JUYUdGd1pVRmpkR2x2Ym5Nc0lHZGxkRTV2YmtSbGJHVjBaV1JGYkdWdFpXNTBjeUI5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwWENJN1hHNXBiWEJ2Y25RZ2V5QnlaV2RwYzNSbGNpQjlJR1p5YjIwZ1hDSXVMM0psWjJsemRHVnlYQ0k3WEc1cGJYQnZjblFnZXlCaGJHeHZkMFoxYkd4VFkzSmxaVzRzSUdWNGFYUkdkV3hzVTJOeVpXVnVMQ0JwYzBaMWJHeFRZM0psWlc0Z2ZTQm1jbTl0SUZ3aUxpNHZkWFJwYkhOY0lqdGNibWx0Y0c5eWRDQjdJRU5QUkVWVExDQkxSVmxUSUgwZ1puSnZiU0JjSWk0dUwydGxlWE5jSWp0Y2JtbHRjRzl5ZENCN0lFaGxiSEJKWTI5dUlIMGdabkp2YlNCY0lpNHVMMk52YlhCdmJtVnVkSE12U0dWc2NFbGpiMjVjSWp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdGamRHbHZibFJ2WjJkc1pVTmhiblpoYzAxbGJuVWdQU0J5WldkcGMzUmxjaWg3WEc0Z0lHNWhiV1U2SUZ3aWRHOW5aMnhsUTJGdWRtRnpUV1Z1ZFZ3aUxGeHVJQ0J3WlhKbWIzSnRPaUFvWHl3Z1lYQndVM1JoZEdVcElEMCtJQ2g3WEc0Z0lDQWdZWEJ3VTNSaGRHVTZJSHRjYmlBZ0lDQWdJQzR1TG1Gd2NGTjBZWFJsTEZ4dUlDQWdJQ0FnYjNCbGJrMWxiblU2SUdGd2NGTjBZWFJsTG05d1pXNU5aVzUxSUQwOVBTQmNJbU5oYm5aaGMxd2lJRDhnYm5Wc2JDQTZJRndpWTJGdWRtRnpYQ0lzWEc0Z0lDQWdmU3hjYmlBZ0lDQmpiMjF0YVhSVWIwaHBjM1J2Y25rNklHWmhiSE5sTEZ4dUlDQjlLU3hjYmlBZ1VHRnVaV3hEYjIxd2IyNWxiblE2SUNoN0lHRndjRk4wWVhSbExDQjFjR1JoZEdWRVlYUmhJSDBwSUQwK0lDaGNiaUFnSUNBOFZHOXZiRUoxZEhSdmJseHVJQ0FnSUNBZ2RIbHdaVDFjSW1KMWRIUnZibHdpWEc0Z0lDQWdJQ0JwWTI5dVBYdHRaVzUxZlZ4dUlDQWdJQ0FnWVhKcFlTMXNZV0psYkQxN2RDaGNJbUoxZEhSdmJuTXViV1Z1ZFZ3aUtYMWNiaUFnSUNBZ0lHOXVRMnhwWTJzOWUzVndaR0YwWlVSaGRHRjlYRzRnSUNBZ0lDQnpaV3hsWTNSbFpEMTdZWEJ3VTNSaGRHVXViM0JsYmsxbGJuVWdQVDA5SUZ3aVkyRnVkbUZ6WENKOVhHNGdJQ0FnTHo1Y2JpQWdLU3hjYm4wcE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1lXTjBhVzl1Vkc5bloyeGxSV1JwZEUxbGJuVWdQU0J5WldkcGMzUmxjaWg3WEc0Z0lHNWhiV1U2SUZ3aWRHOW5aMnhsUldScGRFMWxiblZjSWl4Y2JpQWdjR1Z5Wm05eWJUb2dLRjlsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VwSUQwK0lDaDdYRzRnSUNBZ1lYQndVM1JoZEdVNklIdGNiaUFnSUNBZ0lDNHVMbUZ3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdiM0JsYmsxbGJuVTZJR0Z3Y0ZOMFlYUmxMbTl3Wlc1TlpXNTFJRDA5UFNCY0luTm9ZWEJsWENJZ1B5QnVkV3hzSURvZ1hDSnphR0Z3WlZ3aUxGeHVJQ0FnSUgwc1hHNGdJQ0FnWTI5dGJXbDBWRzlJYVhOMGIzSjVPaUJtWVd4elpTeGNiaUFnZlNrc1hHNGdJRkJoYm1Wc1EyOXRjRzl1Wlc1ME9pQW9leUJsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VzSUhWd1pHRjBaVVJoZEdFZ2ZTa2dQVDRnS0Z4dUlDQWdJRHhVYjI5c1FuVjBkRzl1WEc0Z0lDQWdJQ0IyYVhOcFlteGxQWHR6YUc5M1UyVnNaV04wWldSVGFHRndaVUZqZEdsdmJuTW9YRzRnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdJQ0JuWlhST2IyNUVaV3hsZEdWa1JXeGxiV1Z1ZEhNb1pXeGxiV1Z1ZEhNcExGeHVJQ0FnSUNBZ0tYMWNiaUFnSUNBZ0lIUjVjR1U5WENKaWRYUjBiMjVjSWx4dUlDQWdJQ0FnYVdOdmJqMTdjR0ZzWlhSMFpYMWNiaUFnSUNBZ0lHRnlhV0V0YkdGaVpXdzllM1FvWENKaWRYUjBiMjV6TG1Wa2FYUmNJaWw5WEc0Z0lDQWdJQ0J2YmtOc2FXTnJQWHQxY0dSaGRHVkVZWFJoZlZ4dUlDQWdJQ0FnYzJWc1pXTjBaV1E5ZTJGd2NGTjBZWFJsTG05d1pXNU5aVzUxSUQwOVBTQmNJbk5vWVhCbFhDSjlYRzRnSUNBZ0x6NWNiaUFnS1N4Y2JuMHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdZV04wYVc5dVJuVnNiRk5qY21WbGJpQTlJSEpsWjJsemRHVnlLSHRjYmlBZ2JtRnRaVG9nWENKMGIyZG5iR1ZHZFd4c1UyTnlaV1Z1WENJc1hHNGdJSEJsY21admNtMDZJQ2dwSUQwK0lIdGNiaUFnSUNCcFppQW9JV2x6Um5Wc2JGTmpjbVZsYmlncEtTQjdYRzRnSUNBZ0lDQmhiR3h2ZDBaMWJHeFRZM0psWlc0b0tUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tHbHpSblZzYkZOamNtVmxiaWdwS1NCN1hHNGdJQ0FnSUNCbGVHbDBSblZzYkZOamNtVmxiaWdwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ1kyOXRiV2wwVkc5SWFYTjBiM0o1T2lCbVlXeHpaU3hjYmlBZ0lDQjlPMXh1SUNCOUxGeHVJQ0JyWlhsVVpYTjBPaUFvWlhabGJuUXBJRDArSUdWMlpXNTBMbU52WkdVZ1BUMDlJRU5QUkVWVExrWWdKaVlnSVdWMlpXNTBXMHRGV1ZNdVExUlNURjlQVWw5RFRVUmRMRnh1ZlNrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCaFkzUnBiMjVUYUc5eWRHTjFkSE1nUFNCeVpXZHBjM1JsY2loN1hHNGdJRzVoYldVNklGd2lkRzluWjJ4bFUyaHZjblJqZFhSelhDSXNYRzRnSUhCbGNtWnZjbTA2SUNoZlpXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQmZMQ0I3SUdadlkzVnpRMjl1ZEdGcGJtVnlJSDBwSUQwK0lIdGNiaUFnSUNCcFppQW9ZWEJ3VTNSaGRHVXVjMmh2ZDBobGJIQkVhV0ZzYjJjcElIdGNiaUFnSUNBZ0lHWnZZM1Z6UTI5dWRHRnBibVZ5S0NrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQmhjSEJUZEdGMFpUb2dlMXh1SUNBZ0lDQWdJQ0F1TGk1aGNIQlRkR0YwWlN4Y2JpQWdJQ0FnSUNBZ2MyaHZkMGhsYkhCRWFXRnNiMmM2SUNGaGNIQlRkR0YwWlM1emFHOTNTR1ZzY0VScFlXeHZaeXhjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0JqYjIxdGFYUlViMGhwYzNSdmNuazZJR1poYkhObExGeHVJQ0FnSUgwN1hHNGdJSDBzWEc0Z0lGQmhibVZzUTI5dGNHOXVaVzUwT2lBb2V5QjFjR1JoZEdWRVlYUmhJSDBwSUQwK0lDaGNiaUFnSUNBOFNHVnNjRWxqYjI0Z2RHbDBiR1U5ZTNRb1hDSm9aV3h3UkdsaGJHOW5MblJwZEd4bFhDSXBmU0J2YmtOc2FXTnJQWHQxY0dSaGRHVkVZWFJoZlNBdlBseHVJQ0FwTEZ4dUlDQnJaWGxVWlhOME9pQW9aWFpsYm5RcElEMCtJR1YyWlc1MExtdGxlU0E5UFQwZ1MwVlpVeTVSVlVWVFZFbFBUbDlOUVZKTExGeHVmU2s3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vYWN0aW9ucy9hY3Rpb25NZW51LnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25OYXZpZ2F0ZS50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vYWN0aW9ucy9hY3Rpb25OYXZpZ2F0ZS50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkdvVG9Db2xsYWJvcmF0b3JcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25Hb1RvQ29sbGFib3JhdG9yKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY2xpZW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY2xpZW50cyAqLyBcXFwiLi4vLi4vY2xpZW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29tcG9uZW50c19BdmF0YXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbXBvbmVudHMvQXZhdGFyICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0F2YXRhci50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX3Njcm9sbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vc2NlbmUvc2Nyb2xsICovIFxcXCIuLi8uLi9zY2VuZS9zY3JvbGwudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3JlZ2lzdGVyICovIFxcXCIuLi8uLi9hY3Rpb25zL3JlZ2lzdGVyLnRzXFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgYWN0aW9uR29Ub0NvbGxhYm9yYXRvciA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJnb1RvQ29sbGFib3JhdG9yXFxcIixcXG4gICAgcGVyZm9ybTogKF9lbGVtZW50cywgYXBwU3RhdGUsIHZhbHVlKSA9PiB7XFxuICAgICAgICBjb25zdCBwb2ludCA9IHZhbHVlO1xcbiAgICAgICAgaWYgKCFwb2ludCkge1xcbiAgICAgICAgICAgIHJldHVybiB7IGFwcFN0YXRlLCBjb21taXRUb0hpc3Rvcnk6IGZhbHNlIH07XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCAoMCxfc2NlbmVfc2Nyb2xsX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uY2VudGVyU2Nyb2xsT24pKHtcXG4gICAgICAgICAgICAgICAgc2NlbmVQb2ludDogcG9pbnQsXFxuICAgICAgICAgICAgICAgIHZpZXdwb3J0RGltZW5zaW9uczoge1xcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGFwcFN0YXRlLndpZHRoLFxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhcHBTdGF0ZS5oZWlnaHQsXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHpvb206IGFwcFN0YXRlLnpvb20sXFxuICAgICAgICAgICAgfSkpLCB7IFxcbiAgICAgICAgICAgICAgICAvLyBDbG9zZSBtb2JpbGUgbWVudVxcbiAgICAgICAgICAgICAgICBvcGVuTWVudTogYXBwU3RhdGUub3Blbk1lbnUgPT09IFxcXCJjYW52YXNcXFwiID8gbnVsbCA6IGFwcFN0YXRlLm9wZW5NZW51IH0pLFxcbiAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgYXBwU3RhdGUsIHVwZGF0ZURhdGEsIGRhdGEgfSkgPT4ge1xcbiAgICAgICAgY29uc3QgY2xpZW50SWQgPSBkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEuaWQ7XFxuICAgICAgICBpZiAoIWNsaWVudElkKSB7XFxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBjb2xsYWJvcmF0b3IgPSBhcHBTdGF0ZS5jb2xsYWJvcmF0b3JzLmdldChjbGllbnRJZCk7XFxuICAgICAgICBpZiAoIWNvbGxhYm9yYXRvcikge1xcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3QgeyBiYWNrZ3JvdW5kLCBzdHJva2UgfSA9ICgwLF9jbGllbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0Q2xpZW50Q29sb3JzKShjbGllbnRJZCwgYXBwU3RhdGUpO1xcbiAgICAgICAgY29uc3Qgc2hvcnROYW1lID0gKDAsX2NsaWVudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRDbGllbnRJbml0aWFscykoY29sbGFib3JhdG9yLnVzZXJuYW1lKTtcXG4gICAgICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX0F2YXRhcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkF2YXRhciwgT2JqZWN0LmFzc2lnbih7IGNvbG9yOiBiYWNrZ3JvdW5kLCBib3JkZXI6IHN0cm9rZSwgb25DbGljazogKCkgPT4gdXBkYXRlRGF0YShjb2xsYWJvcmF0b3IucG9pbnRlcikgfSwgeyBjaGlsZHJlbjogc2hvcnROYW1lIH0pLCB2b2lkIDApKTtcXG4gICAgfSxcXG59KTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dllXTjBhVzl1Y3k5aFkzUnBiMjVPWVhacFoyRjBaUzUwYzNndWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3p0QlFVRm5SVHRCUVVOc1FqdEJRVU5ITzBGQlJWZzdRVUZGTDBJc1RVRkJUU3h6UWtGQmMwSXNSMEZCUnl4dFJFRkJVU3hEUVVGRE8wbEJRemRETEVsQlFVa3NSVUZCUlN4clFrRkJhMEk3U1VGRGVFSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1UwRkJVeXhGUVVGRkxGRkJRVkVzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlR0UlFVTjBReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eExRVUZuUXl4RFFVRkRPMUZCUXk5RExFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlFVVTdXVUZEVml4UFFVRlBMRVZCUVVVc1VVRkJVU3hGUVVGRkxHVkJRV1VzUlVGQlJTeExRVUZMTEVWQlFVVXNRMEZCUXp0VFFVTTNRenRSUVVWRUxFOUJRVTg3V1VGRFRDeFJRVUZSTEdkRVFVTklMRkZCUVZFc1IwRkRVaXcyUkVGQll5eERRVUZETzJkQ1FVTm9RaXhWUVVGVkxFVkJRVVVzUzBGQlN6dG5Ra0ZEYWtJc2EwSkJRV3RDTEVWQlFVVTdiMEpCUTJ4Q0xFdEJRVXNzUlVGQlJTeFJRVUZSTEVOQlFVTXNTMEZCU3p0dlFrRkRja0lzVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4TlFVRk5PMmxDUVVONFFqdG5Ra0ZEUkN4SlFVRkpMRVZCUVVVc1VVRkJVU3hEUVVGRExFbEJRVWs3WVVGRGNFSXNRMEZCUXp0blFrRkRSaXh2UWtGQmIwSTdaMEpCUTNCQ0xGRkJRVkVzUlVGQlJTeFJRVUZSTEVOQlFVTXNVVUZCVVN4TFFVRkxMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1VVRkJVU3hIUVVOd1JUdFpRVU5FTEdWQlFXVXNSVUZCUlN4TFFVRkxPMU5CUTNaQ0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlEwUXNZMEZCWXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzVlVGQlZTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZMRVZCUVVVN1VVRkRha1FzVFVGQlRTeFJRVUZSTEVkQlFYVkNMRWxCUVVrc1lVRkJTaXhKUVVGSkxIVkNRVUZLTEVsQlFVa3NRMEZCUlN4RlFVRkZMRU5CUVVNN1VVRkRPVU1zU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlR0WlFVTmlMRTlCUVU4c1NVRkJTU3hEUVVGRE8xTkJRMkk3VVVGRlJDeE5RVUZOTEZsQlFWa3NSMEZCUnl4UlFVRlJMRU5CUVVNc1lVRkJZU3hEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVVXhSQ3hKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTzFsQlEycENMRTlCUVU4c1NVRkJTU3hEUVVGRE8xTkJRMkk3VVVGRlJDeE5RVUZOTEVWQlFVVXNWVUZCVlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hIUVVGSExIbEVRVUZsTEVOQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRMjVGTEUxQlFVMHNVMEZCVXl4SFFVRkhMREpFUVVGcFFpeERRVUZETEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVVelJDeFBRVUZQTEVOQlEwd3NkVVJCUVVNc2MwUkJRVTBzYTBKQlEwd3NTMEZCU3l4RlFVRkZMRlZCUVZVc1JVRkRha0lzVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZEWkN4UFFVRlBMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEZsQlFWa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1owSkJSVGxETEZOQlFWTXNXVUZEU0N4RFFVTldMRU5CUVVNN1NVRkRTaXhEUVVGRE8wTkJRMFlzUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyRmpkR2x2Ym5NdllXTjBhVzl1VG1GMmFXZGhkR1V1ZEhONFAySmpaVGdpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ1oyVjBRMnhwWlc1MFEyOXNiM0p6TENCblpYUkRiR2xsYm5SSmJtbDBhV0ZzY3lCOUlHWnliMjBnWENJdUxpOWpiR2xsYm5SelhDSTdYRzVwYlhCdmNuUWdleUJCZG1GMFlYSWdmU0JtY205dElGd2lMaTR2WTI5dGNHOXVaVzUwY3k5QmRtRjBZWEpjSWp0Y2JtbHRjRzl5ZENCN0lHTmxiblJsY2xOamNtOXNiRTl1SUgwZ1puSnZiU0JjSWk0dUwzTmpaVzVsTDNOamNtOXNiRndpTzF4dWFXMXdiM0owSUhzZ1EyOXNiR0ZpYjNKaGRHOXlJSDBnWm5KdmJTQmNJaTR1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCeVpXZHBjM1JsY2lCOUlHWnliMjBnWENJdUwzSmxaMmx6ZEdWeVhDSTdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmhZM1JwYjI1SGIxUnZRMjlzYkdGaWIzSmhkRzl5SUQwZ2NtVm5hWE4wWlhJb2UxeHVJQ0J1WVcxbE9pQmNJbWR2Vkc5RGIyeHNZV0p2Y21GMGIzSmNJaXhjYmlBZ2NHVnlabTl5YlRvZ0tGOWxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXNJSFpoYkhWbEtTQTlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2NHOXBiblFnUFNCMllXeDFaU0JoY3lCRGIyeHNZV0p2Y21GMGIzSmJYQ0p3YjJsdWRHVnlYQ0pkTzF4dUlDQWdJR2xtSUNnaGNHOXBiblFwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUI3SUdGd2NGTjBZWFJsTENCamIyMXRhWFJVYjBocGMzUnZjbms2SUdaaGJITmxJSDA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lHRndjRk4wWVhSbE9pQjdYRzRnSUNBZ0lDQWdJQzR1TG1Gd2NGTjBZWFJsTEZ4dUlDQWdJQ0FnSUNBdUxpNWpaVzUwWlhKVFkzSnZiR3hQYmloN1hHNGdJQ0FnSUNBZ0lDQWdjMk5sYm1WUWIybHVkRG9nY0c5cGJuUXNYRzRnSUNBZ0lDQWdJQ0FnZG1sbGQzQnZjblJFYVcxbGJuTnBiMjV6T2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IzYVdSMGFEb2dZWEJ3VTNSaGRHVXVkMmxrZEdnc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JvWldsbmFIUTZJR0Z3Y0ZOMFlYUmxMbWhsYVdkb2RDeGNiaUFnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lIcHZiMjA2SUdGd2NGTjBZWFJsTG5wdmIyMHNYRzRnSUNBZ0lDQWdJSDBwTEZ4dUlDQWdJQ0FnSUNBdkx5QkRiRzl6WlNCdGIySnBiR1VnYldWdWRWeHVJQ0FnSUNBZ0lDQnZjR1Z1VFdWdWRUb2dZWEJ3VTNSaGRHVXViM0JsYmsxbGJuVWdQVDA5SUZ3aVkyRnVkbUZ6WENJZ1B5QnVkV3hzSURvZ1lYQndVM1JoZEdVdWIzQmxiazFsYm5Vc1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ1kyOXRiV2wwVkc5SWFYTjBiM0o1T2lCbVlXeHpaU3hjYmlBZ0lDQjlPMXh1SUNCOUxGeHVJQ0JRWVc1bGJFTnZiWEJ2Ym1WdWREb2dLSHNnWVhCd1UzUmhkR1VzSUhWd1pHRjBaVVJoZEdFc0lHUmhkR0VnZlNrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUdOc2FXVnVkRWxrT2lCemRISnBibWNnZkNCMWJtUmxabWx1WldRZ1BTQmtZWFJoUHk1cFpEdGNiaUFnSUNCcFppQW9JV05zYVdWdWRFbGtLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQmpiMnhzWVdKdmNtRjBiM0lnUFNCaGNIQlRkR0YwWlM1amIyeHNZV0p2Y21GMGIzSnpMbWRsZENoamJHbGxiblJKWkNrN1hHNWNiaUFnSUNCcFppQW9JV052Ykd4aFltOXlZWFJ2Y2lrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnZXlCaVlXTnJaM0p2ZFc1a0xDQnpkSEp2YTJVZ2ZTQTlJR2RsZEVOc2FXVnVkRU52Ykc5eWN5aGpiR2xsYm5SSlpDd2dZWEJ3VTNSaGRHVXBPMXh1SUNBZ0lHTnZibk4wSUhOb2IzSjBUbUZ0WlNBOUlHZGxkRU5zYVdWdWRFbHVhWFJwWVd4ektHTnZiR3hoWW05eVlYUnZjaTUxYzJWeWJtRnRaU2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lDQWdQRUYyWVhSaGNseHVJQ0FnSUNBZ0lDQmpiMnh2Y2oxN1ltRmphMmR5YjNWdVpIMWNiaUFnSUNBZ0lDQWdZbTl5WkdWeVBYdHpkSEp2YTJWOVhHNGdJQ0FnSUNBZ0lHOXVRMnhwWTJzOWV5Z3BJRDArSUhWd1pHRjBaVVJoZEdFb1kyOXNiR0ZpYjNKaGRHOXlMbkJ2YVc1MFpYSXBmVnh1SUNBZ0lDQWdQbHh1SUNBZ0lDQWdJQ0I3YzJodmNuUk9ZVzFsZlZ4dUlDQWdJQ0FnUEM5QmRtRjBZWEkrWEc0Z0lDQWdLVHRjYmlBZ2ZTeGNibjBwTzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vYWN0aW9ucy9hY3Rpb25OYXZpZ2F0ZS50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2FjdGlvbnMvYWN0aW9uUHJvcGVydGllcy50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9hY3Rpb25zL2FjdGlvblByb3BlcnRpZXMudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNoYW5nZVN0cm9rZUNvbG9yXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uQ2hhbmdlU3Ryb2tlQ29sb3IpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNoYW5nZUJhY2tncm91bmRDb2xvclxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvbkNoYW5nZUJhY2tncm91bmRDb2xvciksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ2hhbmdlRmlsbFN0eWxlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uQ2hhbmdlRmlsbFN0eWxlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25DaGFuZ2VTdHJva2VXaWR0aFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvbkNoYW5nZVN0cm9rZVdpZHRoKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25DaGFuZ2VTbG9wcGluZXNzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uQ2hhbmdlU2xvcHBpbmVzcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ2hhbmdlU3Ryb2tlU3R5bGVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25DaGFuZ2VTdHJva2VTdHlsZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ2hhbmdlT3BhY2l0eVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvbkNoYW5nZU9wYWNpdHkpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNoYW5nZUZvbnRTaXplXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uQ2hhbmdlRm9udFNpemUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkRlY3JlYXNlRm9udFNpemVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25EZWNyZWFzZUZvbnRTaXplKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25JbmNyZWFzZUZvbnRTaXplXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uSW5jcmVhc2VGb250U2l6ZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ2hhbmdlRm9udEZhbWlseVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvbkNoYW5nZUZvbnRGYW1pbHkpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNoYW5nZVRleHRBbGlnblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvbkNoYW5nZVRleHRBbGlnbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ2hhbmdlU2hhcnBuZXNzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uQ2hhbmdlU2hhcnBuZXNzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25DaGFuZ2VBcnJvd2hlYWRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25DaGFuZ2VBcnJvd2hlYWQpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX0J1dHRvbkljb25TZWxlY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbXBvbmVudHMvQnV0dG9uSWNvblNlbGVjdCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9CdXR0b25JY29uU2VsZWN0LnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29tcG9uZW50c19Db2xvclBpY2tlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29tcG9uZW50cy9Db2xvclBpY2tlciAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Db2xvclBpY2tlci50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfSWNvblBpY2tlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29tcG9uZW50cy9JY29uUGlja2VyICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0ljb25QaWNrZXIudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL2ljb25zICovIFxcXCIuLi8uLi9jb21wb25lbnRzL2ljb25zLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L211dGF0ZUVsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvbXV0YXRlRWxlbWVudC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF90ZXh0RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC90ZXh0RWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC90ZXh0RWxlbWVudC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L3R5cGVDaGVja3MgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdHlwZUNoZWNrcy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9rZXlzICovIFxcXCIuLi8uLi9rZXlzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9yYW5kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9yYW5kb20gKi8gXFxcIi4uLy4uL3JhbmRvbS50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZSAqLyBcXFwiLi4vLi4vc2NlbmUvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX2NvbXBhcmlzb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vc2NlbmUvY29tcGFyaXNvbnMgKi8gXFxcIi4uLy4uL3NjZW5lL2NvbXBhcmlzb25zLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3JlZ2lzdGVyICovIFxcXCIuLi8uLi9hY3Rpb25zL3JlZ2lzdGVyLnRzXFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgRk9OVF9TSVpFX1JFTEFUSVZFX0lOQ1JFQVNFX1NURVAgPSAwLjE7XFxuY29uc3QgY2hhbmdlUHJvcGVydHkgPSAoZWxlbWVudHMsIGFwcFN0YXRlLCBjYWxsYmFjaywgaW5jbHVkZUJvdW5kVGV4dCA9IGZhbHNlKSA9PiB7XFxuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudElkcyA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXy5hcnJheVRvTWFwKSgoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18uZ2V0U2VsZWN0ZWRFbGVtZW50cykoZWxlbWVudHMsIGFwcFN0YXRlLCBpbmNsdWRlQm91bmRUZXh0KSk7XFxuICAgIHJldHVybiBlbGVtZW50cy5tYXAoKGVsZW1lbnQpID0+IHtcXG4gICAgICAgIHZhciBfYTtcXG4gICAgICAgIGlmIChzZWxlY3RlZEVsZW1lbnRJZHMuZ2V0KGVsZW1lbnQuaWQpIHx8XFxuICAgICAgICAgICAgZWxlbWVudC5pZCA9PT0gKChfYSA9IGFwcFN0YXRlLmVkaXRpbmdFbGVtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaWQpKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQpO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7XFxuICAgIH0pO1xcbn07XFxuY29uc3QgZ2V0Rm9ybVZhbHVlID0gZnVuY3Rpb24gKGVsZW1lbnRzLCBhcHBTdGF0ZSwgZ2V0QXR0cmlidXRlLCBkZWZhdWx0VmFsdWUpIHtcXG4gICAgdmFyIF9hLCBfYjtcXG4gICAgY29uc3QgZWRpdGluZ0VsZW1lbnQgPSBhcHBTdGF0ZS5lZGl0aW5nRWxlbWVudDtcXG4gICAgY29uc3Qgbm9uRGVsZXRlZEVsZW1lbnRzID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKTtcXG4gICAgcmV0dXJuICgoX2IgPSAoX2EgPSAoZWRpdGluZ0VsZW1lbnQgJiYgZ2V0QXR0cmlidXRlKGVkaXRpbmdFbGVtZW50KSkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICgoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18uaXNTb21lRWxlbWVudFNlbGVjdGVkKShub25EZWxldGVkRWxlbWVudHMsIGFwcFN0YXRlKVxcbiAgICAgICAgPyAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18uZ2V0Q29tbW9uQXR0cmlidXRlT2ZTZWxlY3RlZEVsZW1lbnRzKShub25EZWxldGVkRWxlbWVudHMsIGFwcFN0YXRlLCBnZXRBdHRyaWJ1dGUpXFxuICAgICAgICA6IGRlZmF1bHRWYWx1ZSkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG51bGwpO1xcbn07XFxuY29uc3Qgb2Zmc2V0RWxlbWVudEFmdGVyRm9udFJlc2l6ZSA9IChwcmV2RWxlbWVudCwgbmV4dEVsZW1lbnQpID0+IHtcXG4gICAgaWYgKCgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5pc0JvdW5kVG9Db250YWluZXIpKG5leHRFbGVtZW50KSkge1xcbiAgICAgICAgcmV0dXJuIG5leHRFbGVtZW50O1xcbiAgICB9XFxuICAgIHJldHVybiAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18ubXV0YXRlRWxlbWVudCkobmV4dEVsZW1lbnQsIHtcXG4gICAgICAgIHg6IHByZXZFbGVtZW50LnRleHRBbGlnbiA9PT0gXFxcImxlZnRcXFwiXFxuICAgICAgICAgICAgPyBwcmV2RWxlbWVudC54XFxuICAgICAgICAgICAgOiBwcmV2RWxlbWVudC54ICtcXG4gICAgICAgICAgICAgICAgKHByZXZFbGVtZW50LndpZHRoIC0gbmV4dEVsZW1lbnQud2lkdGgpIC9cXG4gICAgICAgICAgICAgICAgICAgIChwcmV2RWxlbWVudC50ZXh0QWxpZ24gPT09IFxcXCJjZW50ZXJcXFwiID8gMiA6IDEpLFxcbiAgICAgICAgLy8gY2VudGVyaW5nIHZlcnRpY2FsbHkgaXMgbm9uLXN0YW5kYXJkLCBidXQgZm9yIEV4Y2FsaWRyYXcgSSB0aGlua1xcbiAgICAgICAgLy8gaXQgbWFrZXMgc2Vuc2VcXG4gICAgICAgIHk6IHByZXZFbGVtZW50LnkgKyAocHJldkVsZW1lbnQuaGVpZ2h0IC0gbmV4dEVsZW1lbnQuaGVpZ2h0KSAvIDIsXFxuICAgIH0sIGZhbHNlKTtcXG59O1xcbmNvbnN0IGNoYW5nZUZvbnRTaXplID0gKGVsZW1lbnRzLCBhcHBTdGF0ZSwgZ2V0TmV3Rm9udFNpemUsIGZhbGxiYWNrVmFsdWUpID0+IHtcXG4gICAgY29uc3QgbmV3Rm9udFNpemVzID0gbmV3IFNldCgpO1xcbiAgICByZXR1cm4ge1xcbiAgICAgICAgZWxlbWVudHM6IGNoYW5nZVByb3BlcnR5KGVsZW1lbnRzLCBhcHBTdGF0ZSwgKG9sZEVsZW1lbnQpID0+IHtcXG4gICAgICAgICAgICBpZiAoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5pc1RleHRFbGVtZW50KShvbGRFbGVtZW50KSkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdGb250U2l6ZSA9IGdldE5ld0ZvbnRTaXplKG9sZEVsZW1lbnQpO1xcbiAgICAgICAgICAgICAgICBuZXdGb250U2l6ZXMuYWRkKG5ld0ZvbnRTaXplKTtcXG4gICAgICAgICAgICAgICAgbGV0IG5ld0VsZW1lbnQgPSAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18ubmV3RWxlbWVudFdpdGgpKG9sZEVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiBuZXdGb250U2l6ZSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18ucmVkcmF3VGV4dEJvdW5kaW5nQm94KShuZXdFbGVtZW50LCAoMCxfZWxlbWVudF90ZXh0RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmdldENvbnRhaW5lckVsZW1lbnQpKG9sZEVsZW1lbnQpLCBhcHBTdGF0ZSk7XFxuICAgICAgICAgICAgICAgIG5ld0VsZW1lbnQgPSBvZmZzZXRFbGVtZW50QWZ0ZXJGb250UmVzaXplKG9sZEVsZW1lbnQsIG5ld0VsZW1lbnQpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3RWxlbWVudDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIG9sZEVsZW1lbnQ7XFxuICAgICAgICB9LCB0cnVlKSxcXG4gICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBcXG4gICAgICAgICAgICAvLyB1cGRhdGUgc3RhdGUgb25seSBpZiB3ZSd2ZSBzZXQgYWxsIHNlbGVjdCB0ZXh0IGVsZW1lbnRzIHRvXFxuICAgICAgICAgICAgLy8gdGhlIHNhbWUgZm9udCBzaXplXFxuICAgICAgICAgICAgY3VycmVudEl0ZW1Gb250U2l6ZTogbmV3Rm9udFNpemVzLnNpemUgPT09IDFcXG4gICAgICAgICAgICAgICAgPyBbLi4ubmV3Rm9udFNpemVzXVswXVxcbiAgICAgICAgICAgICAgICA6IGZhbGxiYWNrVmFsdWUgIT09IG51bGwgJiYgZmFsbGJhY2tWYWx1ZSAhPT0gdm9pZCAwID8gZmFsbGJhY2tWYWx1ZSA6IGFwcFN0YXRlLmN1cnJlbnRJdGVtRm9udFNpemUgfSksXFxuICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXFxuICAgIH07XFxufTtcXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbmNvbnN0IGFjdGlvbkNoYW5nZVN0cm9rZUNvbG9yID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJjaGFuZ2VTdHJva2VDb2xvclxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUsIHZhbHVlKSA9PiB7XFxuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCAodmFsdWUuY3VycmVudEl0ZW1TdHJva2VDb2xvciAmJiB7XFxuICAgICAgICAgICAgZWxlbWVudHM6IGNoYW5nZVByb3BlcnR5KGVsZW1lbnRzLCBhcHBTdGF0ZSwgKGVsKSA9PiB7XFxuICAgICAgICAgICAgICAgIHJldHVybiAoMCxfc2NlbmVfY29tcGFyaXNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18uaGFzU3Ryb2tlQ29sb3IpKGVsLnR5cGUpXFxuICAgICAgICAgICAgICAgICAgICA/ICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5uZXdFbGVtZW50V2l0aCkoZWwsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VDb2xvcjogdmFsdWUuY3VycmVudEl0ZW1TdHJva2VDb2xvcixcXG4gICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICA6IGVsO1xcbiAgICAgICAgICAgIH0sIHRydWUpLFxcbiAgICAgICAgfSkpLCB7IGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgdmFsdWUpLCBjb21taXRUb0hpc3Rvcnk6ICEhdmFsdWUuY3VycmVudEl0ZW1TdHJva2VDb2xvciB9KTtcXG4gICAgfSxcXG4gICAgUGFuZWxDb21wb25lbnQ6ICh7IGVsZW1lbnRzLCBhcHBTdGF0ZSwgdXBkYXRlRGF0YSB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJoM1xcXCIsIE9iamVjdC5hc3NpZ24oeyBcXFwiYXJpYS1oaWRkZW5cXFwiOiBcXFwidHJ1ZVxcXCIgfSwgeyBjaGlsZHJlbjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5zdHJva2VcXFwiKSB9KSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX0NvbG9yUGlja2VyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQ29sb3JQaWNrZXIsIHsgdHlwZTogXFxcImVsZW1lbnRTdHJva2VcXFwiLCBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5zdHJva2VcXFwiKSwgY29sb3I6IGdldEZvcm1WYWx1ZShlbGVtZW50cywgYXBwU3RhdGUsIChlbGVtZW50KSA9PiBlbGVtZW50LnN0cm9rZUNvbG9yLCBhcHBTdGF0ZS5jdXJyZW50SXRlbVN0cm9rZUNvbG9yKSwgb25DaGFuZ2U6IChjb2xvcikgPT4gdXBkYXRlRGF0YSh7IGN1cnJlbnRJdGVtU3Ryb2tlQ29sb3I6IGNvbG9yIH0pLCBpc0FjdGl2ZTogYXBwU3RhdGUub3BlblBvcHVwID09PSBcXFwic3Ryb2tlQ29sb3JQaWNrZXJcXFwiLCBzZXRBY3RpdmU6IChhY3RpdmUpID0+IHVwZGF0ZURhdGEoeyBvcGVuUG9wdXA6IGFjdGl2ZSA/IFxcXCJzdHJva2VDb2xvclBpY2tlclxcXCIgOiBudWxsIH0pIH0sIHZvaWQgMCldIH0sIHZvaWQgMCkpLFxcbn0pO1xcbmNvbnN0IGFjdGlvbkNoYW5nZUJhY2tncm91bmRDb2xvciA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiY2hhbmdlQmFja2dyb3VuZENvbG9yXFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSwgdmFsdWUpID0+IHtcXG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sICh2YWx1ZS5jdXJyZW50SXRlbUJhY2tncm91bmRDb2xvciAmJiB7XFxuICAgICAgICAgICAgZWxlbWVudHM6IGNoYW5nZVByb3BlcnR5KGVsZW1lbnRzLCBhcHBTdGF0ZSwgKGVsKSA9PiAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18ubmV3RWxlbWVudFdpdGgpKGVsLCB7XFxuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdmFsdWUuY3VycmVudEl0ZW1CYWNrZ3JvdW5kQ29sb3IsXFxuICAgICAgICAgICAgfSkpLFxcbiAgICAgICAgfSkpLCB7IGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgdmFsdWUpLCBjb21taXRUb0hpc3Rvcnk6ICEhdmFsdWUuY3VycmVudEl0ZW1CYWNrZ3JvdW5kQ29sb3IgfSk7XFxuICAgIH0sXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyBlbGVtZW50cywgYXBwU3RhdGUsIHVwZGF0ZURhdGEgfSkgPT4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykocmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GcmFnbWVudCwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiaDNcXFwiLCBPYmplY3QuYXNzaWduKHsgXFxcImFyaWEtaGlkZGVuXFxcIjogXFxcInRydWVcXFwiIH0sIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMuYmFja2dyb3VuZFxcXCIpIH0pLCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfQ29sb3JQaWNrZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5Db2xvclBpY2tlciwgeyB0eXBlOiBcXFwiZWxlbWVudEJhY2tncm91bmRcXFwiLCBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5iYWNrZ3JvdW5kXFxcIiksIGNvbG9yOiBnZXRGb3JtVmFsdWUoZWxlbWVudHMsIGFwcFN0YXRlLCAoZWxlbWVudCkgPT4gZWxlbWVudC5iYWNrZ3JvdW5kQ29sb3IsIGFwcFN0YXRlLmN1cnJlbnRJdGVtQmFja2dyb3VuZENvbG9yKSwgb25DaGFuZ2U6IChjb2xvcikgPT4gdXBkYXRlRGF0YSh7IGN1cnJlbnRJdGVtQmFja2dyb3VuZENvbG9yOiBjb2xvciB9KSwgaXNBY3RpdmU6IGFwcFN0YXRlLm9wZW5Qb3B1cCA9PT0gXFxcImJhY2tncm91bmRDb2xvclBpY2tlclxcXCIsIHNldEFjdGl2ZTogKGFjdGl2ZSkgPT4gdXBkYXRlRGF0YSh7IG9wZW5Qb3B1cDogYWN0aXZlID8gXFxcImJhY2tncm91bmRDb2xvclBpY2tlclxcXCIgOiBudWxsIH0pIH0sIHZvaWQgMCldIH0sIHZvaWQgMCkpLFxcbn0pO1xcbmNvbnN0IGFjdGlvbkNoYW5nZUZpbGxTdHlsZSA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiY2hhbmdlRmlsbFN0eWxlXFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSwgdmFsdWUpID0+IHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgZWxlbWVudHM6IGNoYW5nZVByb3BlcnR5KGVsZW1lbnRzLCBhcHBTdGF0ZSwgKGVsKSA9PiAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18ubmV3RWxlbWVudFdpdGgpKGVsLCB7XFxuICAgICAgICAgICAgICAgIGZpbGxTdHlsZTogdmFsdWUsXFxuICAgICAgICAgICAgfSkpLFxcbiAgICAgICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBjdXJyZW50SXRlbUZpbGxTdHlsZTogdmFsdWUgfSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiB0cnVlLFxcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAgUGFuZWxDb21wb25lbnQ6ICh7IGVsZW1lbnRzLCBhcHBTdGF0ZSwgdXBkYXRlRGF0YSB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZmllbGRzZXRcXFwiLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJsZWdlbmRcXFwiLCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwibGFiZWxzLmZpbGxcXFwiKSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfQnV0dG9uSWNvblNlbGVjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkJ1dHRvbkljb25TZWxlY3QsIHsgb3B0aW9uczogW1xcbiAgICAgICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcXFwiaGFjaHVyZVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5oYWNodXJlXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uRmlsbEhhY2h1cmVJY29uLCB7IHRoZW1lOiBhcHBTdGF0ZS50aGVtZSB9LCB2b2lkIDApLFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXFxcImNyb3NzLWhhdGNoXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwibGFiZWxzLmNyb3NzSGF0Y2hcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5GaWxsQ3Jvc3NIYXRjaEljb24sIHsgdGhlbWU6IGFwcFN0YXRlLnRoZW1lIH0sIHZvaWQgMCksXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcXFwic29saWRcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMuc29saWRcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5GaWxsU29saWRJY29uLCB7IHRoZW1lOiBhcHBTdGF0ZS50aGVtZSB9LCB2b2lkIDApLFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgXSwgZ3JvdXA6IFxcXCJmaWxsXFxcIiwgdmFsdWU6IGdldEZvcm1WYWx1ZShlbGVtZW50cywgYXBwU3RhdGUsIChlbGVtZW50KSA9PiBlbGVtZW50LmZpbGxTdHlsZSwgYXBwU3RhdGUuY3VycmVudEl0ZW1GaWxsU3R5bGUpLCBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVEYXRhKHZhbHVlKTtcXG4gICAgICAgICAgICAgICAgfSB9LCB2b2lkIDApXSB9LCB2b2lkIDApKSxcXG59KTtcXG5jb25zdCBhY3Rpb25DaGFuZ2VTdHJva2VXaWR0aCA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiY2hhbmdlU3Ryb2tlV2lkdGhcXFwiLFxcbiAgICBwZXJmb3JtOiAoZWxlbWVudHMsIGFwcFN0YXRlLCB2YWx1ZSkgPT4ge1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBlbGVtZW50czogY2hhbmdlUHJvcGVydHkoZWxlbWVudHMsIGFwcFN0YXRlLCAoZWwpID0+ICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5uZXdFbGVtZW50V2l0aCkoZWwsIHtcXG4gICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IHZhbHVlLFxcbiAgICAgICAgICAgIH0pKSxcXG4gICAgICAgICAgICBhcHBTdGF0ZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhcHBTdGF0ZSksIHsgY3VycmVudEl0ZW1TdHJva2VXaWR0aDogdmFsdWUgfSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiB0cnVlLFxcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAgUGFuZWxDb21wb25lbnQ6ICh7IGVsZW1lbnRzLCBhcHBTdGF0ZSwgdXBkYXRlRGF0YSB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZmllbGRzZXRcXFwiLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJsZWdlbmRcXFwiLCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwibGFiZWxzLnN0cm9rZVdpZHRoXFxcIikgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX0J1dHRvbkljb25TZWxlY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5CdXR0b25JY29uU2VsZWN0LCB7IGdyb3VwOiBcXFwic3Ryb2tlLXdpZHRoXFxcIiwgb3B0aW9uczogW1xcbiAgICAgICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAxLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMudGhpblxcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlN0cm9rZVdpZHRoSWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUsIHN0cm9rZVdpZHRoOiAyIH0sIHZvaWQgMCksXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAyLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMuYm9sZFxcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlN0cm9rZVdpZHRoSWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUsIHN0cm9rZVdpZHRoOiA2IH0sIHZvaWQgMCksXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiA0LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMuZXh0cmFCb2xkXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uU3Ryb2tlV2lkdGhJY29uLCB7IHRoZW1lOiBhcHBTdGF0ZS50aGVtZSwgc3Ryb2tlV2lkdGg6IDEwIH0sIHZvaWQgMCksXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICBdLCB2YWx1ZTogZ2V0Rm9ybVZhbHVlKGVsZW1lbnRzLCBhcHBTdGF0ZSwgKGVsZW1lbnQpID0+IGVsZW1lbnQuc3Ryb2tlV2lkdGgsIGFwcFN0YXRlLmN1cnJlbnRJdGVtU3Ryb2tlV2lkdGgpLCBvbkNoYW5nZTogKHZhbHVlKSA9PiB1cGRhdGVEYXRhKHZhbHVlKSB9LCB2b2lkIDApXSB9LCB2b2lkIDApKSxcXG59KTtcXG5jb25zdCBhY3Rpb25DaGFuZ2VTbG9wcGluZXNzID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJjaGFuZ2VTbG9wcGluZXNzXFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSwgdmFsdWUpID0+IHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgZWxlbWVudHM6IGNoYW5nZVByb3BlcnR5KGVsZW1lbnRzLCBhcHBTdGF0ZSwgKGVsKSA9PiAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18ubmV3RWxlbWVudFdpdGgpKGVsLCB7XFxuICAgICAgICAgICAgICAgIHNlZWQ6ICgwLF9yYW5kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18ucmFuZG9tSW50ZWdlcikoKSxcXG4gICAgICAgICAgICAgICAgcm91Z2huZXNzOiB2YWx1ZSxcXG4gICAgICAgICAgICB9KSksXFxuICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB7IGN1cnJlbnRJdGVtUm91Z2huZXNzOiB2YWx1ZSB9KSxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgZWxlbWVudHMsIGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJmaWVsZHNldFxcXCIsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImxlZ2VuZFxcXCIsIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMuc2xvcHBpbmVzc1xcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19CdXR0b25JY29uU2VsZWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uQnV0dG9uSWNvblNlbGVjdCwgeyBncm91cDogXFxcInNsb3BwaW5lc3NcXFwiLCBvcHRpb25zOiBbXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IDAsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5hcmNoaXRlY3RcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5TbG9wcGluZXNzQXJjaGl0ZWN0SWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IDEsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5hcnRpc3RcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5TbG9wcGluZXNzQXJ0aXN0SWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IDIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5jYXJ0b29uaXN0XFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uU2xvcHBpbmVzc0NhcnRvb25pc3RJY29uLCB7IHRoZW1lOiBhcHBTdGF0ZS50aGVtZSB9LCB2b2lkIDApLFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgXSwgdmFsdWU6IGdldEZvcm1WYWx1ZShlbGVtZW50cywgYXBwU3RhdGUsIChlbGVtZW50KSA9PiBlbGVtZW50LnJvdWdobmVzcywgYXBwU3RhdGUuY3VycmVudEl0ZW1Sb3VnaG5lc3MpLCBvbkNoYW5nZTogKHZhbHVlKSA9PiB1cGRhdGVEYXRhKHZhbHVlKSB9LCB2b2lkIDApXSB9LCB2b2lkIDApKSxcXG59KTtcXG5jb25zdCBhY3Rpb25DaGFuZ2VTdHJva2VTdHlsZSA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiY2hhbmdlU3Ryb2tlU3R5bGVcXFwiLFxcbiAgICBwZXJmb3JtOiAoZWxlbWVudHMsIGFwcFN0YXRlLCB2YWx1ZSkgPT4ge1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBlbGVtZW50czogY2hhbmdlUHJvcGVydHkoZWxlbWVudHMsIGFwcFN0YXRlLCAoZWwpID0+ICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5uZXdFbGVtZW50V2l0aCkoZWwsIHtcXG4gICAgICAgICAgICAgICAgc3Ryb2tlU3R5bGU6IHZhbHVlLFxcbiAgICAgICAgICAgIH0pKSxcXG4gICAgICAgICAgICBhcHBTdGF0ZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhcHBTdGF0ZSksIHsgY3VycmVudEl0ZW1TdHJva2VTdHlsZTogdmFsdWUgfSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiB0cnVlLFxcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAgUGFuZWxDb21wb25lbnQ6ICh7IGVsZW1lbnRzLCBhcHBTdGF0ZSwgdXBkYXRlRGF0YSB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZmllbGRzZXRcXFwiLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJsZWdlbmRcXFwiLCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwibGFiZWxzLnN0cm9rZVN0eWxlXFxcIikgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX0J1dHRvbkljb25TZWxlY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5CdXR0b25JY29uU2VsZWN0LCB7IGdyb3VwOiBcXFwic3Ryb2tlU3R5bGVcXFwiLCBvcHRpb25zOiBbXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFxcXCJzb2xpZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5zdHJva2VTdHlsZV9zb2xpZFxcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlN0cm9rZVN0eWxlU29saWRJY29uLCB7IHRoZW1lOiBhcHBTdGF0ZS50aGVtZSB9LCB2b2lkIDApLFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXFxcImRhc2hlZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5zdHJva2VTdHlsZV9kYXNoZWRcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5TdHJva2VTdHlsZURhc2hlZEljb24sIHsgdGhlbWU6IGFwcFN0YXRlLnRoZW1lIH0sIHZvaWQgMCksXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcXFwiZG90dGVkXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwibGFiZWxzLnN0cm9rZVN0eWxlX2RvdHRlZFxcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlN0cm9rZVN0eWxlRG90dGVkSWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIF0sIHZhbHVlOiBnZXRGb3JtVmFsdWUoZWxlbWVudHMsIGFwcFN0YXRlLCAoZWxlbWVudCkgPT4gZWxlbWVudC5zdHJva2VTdHlsZSwgYXBwU3RhdGUuY3VycmVudEl0ZW1TdHJva2VTdHlsZSksIG9uQ2hhbmdlOiAodmFsdWUpID0+IHVwZGF0ZURhdGEodmFsdWUpIH0sIHZvaWQgMCldIH0sIHZvaWQgMCkpLFxcbn0pO1xcbmNvbnN0IGFjdGlvbkNoYW5nZU9wYWNpdHkgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImNoYW5nZU9wYWNpdHlcXFwiLFxcbiAgICBwZXJmb3JtOiAoZWxlbWVudHMsIGFwcFN0YXRlLCB2YWx1ZSkgPT4ge1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBlbGVtZW50czogY2hhbmdlUHJvcGVydHkoZWxlbWVudHMsIGFwcFN0YXRlLCAoZWwpID0+ICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5uZXdFbGVtZW50V2l0aCkoZWwsIHtcXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogdmFsdWUsXFxuICAgICAgICAgICAgfSkpLFxcbiAgICAgICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBjdXJyZW50SXRlbU9wYWNpdHk6IHZhbHVlIH0pLFxcbiAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogdHJ1ZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyBlbGVtZW50cywgYXBwU3RhdGUsIHVwZGF0ZURhdGEgfSkgPT4ge1xcbiAgICAgICAgdmFyIF9hO1xcbiAgICAgICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJsYWJlbFxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJjb250cm9sLWxhYmVsXFxcIiB9LCB7IGNoaWxkcmVuOiBbKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5vcGFjaXR5XFxcIiksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiaW5wdXRcXFwiLCB7IHR5cGU6IFxcXCJyYW5nZVxcXCIsIG1pbjogXFxcIjBcXFwiLCBtYXg6IFxcXCIxMDBcXFwiLCBzdGVwOiBcXFwiMTBcXFwiLCBvbkNoYW5nZTogKGV2ZW50KSA9PiB1cGRhdGVEYXRhKCtldmVudC50YXJnZXQudmFsdWUpLCBvbldoZWVsOiAoZXZlbnQpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU1RFUCA9IDEwO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE1BWCA9IDEwMDtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBNSU4gPSAwO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gK3RhcmdldC52YWx1ZTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGVsdGFZIDwgMCAmJiB2YWx1ZSA8IE1BWCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVEYXRhKHZhbHVlICsgU1RFUCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50LmRlbHRhWSA+IDAgJiYgdmFsdWUgPiBNSU4pIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlRGF0YSh2YWx1ZSAtIFNURVApO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0sIHZhbHVlOiAoX2EgPSBnZXRGb3JtVmFsdWUoZWxlbWVudHMsIGFwcFN0YXRlLCAoZWxlbWVudCkgPT4gZWxlbWVudC5vcGFjaXR5LCBhcHBTdGF0ZS5jdXJyZW50SXRlbU9wYWNpdHkpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB1bmRlZmluZWQgfSwgdm9pZCAwKV0gfSksIHZvaWQgMCkpO1xcbiAgICB9LFxcbn0pO1xcbmNvbnN0IGFjdGlvbkNoYW5nZUZvbnRTaXplID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJjaGFuZ2VGb250U2l6ZVxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUsIHZhbHVlKSA9PiB7XFxuICAgICAgICByZXR1cm4gY2hhbmdlRm9udFNpemUoZWxlbWVudHMsIGFwcFN0YXRlLCAoKSA9PiB2YWx1ZSwgdmFsdWUpO1xcbiAgICB9LFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgZWxlbWVudHMsIGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJmaWVsZHNldFxcXCIsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImxlZ2VuZFxcXCIsIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMuZm9udFNpemVcXFwiKSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfQnV0dG9uSWNvblNlbGVjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkJ1dHRvbkljb25TZWxlY3QsIHsgZ3JvdXA6IFxcXCJmb250LXNpemVcXFwiLCBvcHRpb25zOiBbXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IDE2LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMuc21hbGxcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5Gb250U2l6ZVNtYWxsSWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0SWQ6IFxcXCJmb250U2l6ZS1zbWFsbFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAyMCxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwibGFiZWxzLm1lZGl1bVxcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLkZvbnRTaXplTWVkaXVtSWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0SWQ6IFxcXCJmb250U2l6ZS1tZWRpdW1cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogMjgsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5sYXJnZVxcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLkZvbnRTaXplTGFyZ2VJY29uLCB7IHRoZW1lOiBhcHBTdGF0ZS50aGVtZSB9LCB2b2lkIDApLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RJZDogXFxcImZvbnRTaXplLWxhcmdlXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IDM2LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMudmVyeUxhcmdlXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uRm9udFNpemVFeHRyYUxhcmdlSWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0SWQ6IFxcXCJmb250U2l6ZS12ZXJ5TGFyZ2VcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgXSwgdmFsdWU6IGdldEZvcm1WYWx1ZShlbGVtZW50cywgYXBwU3RhdGUsIChlbGVtZW50KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5pc1RleHRFbGVtZW50KShlbGVtZW50KSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50LmZvbnRTaXplO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm91bmRUZXh0RWxlbWVudCA9ICgwLF9lbGVtZW50X3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uZ2V0Qm91bmRUZXh0RWxlbWVudCkoZWxlbWVudCk7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoYm91bmRUZXh0RWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3VuZFRleHRFbGVtZW50LmZvbnRTaXplO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XFxuICAgICAgICAgICAgICAgIH0sIGFwcFN0YXRlLmN1cnJlbnRJdGVtRm9udFNpemUgfHwgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLkRFRkFVTFRfRk9OVF9TSVpFKSwgb25DaGFuZ2U6ICh2YWx1ZSkgPT4gdXBkYXRlRGF0YSh2YWx1ZSkgfSwgdm9pZCAwKV0gfSwgdm9pZCAwKSksXFxufSk7XFxuY29uc3QgYWN0aW9uRGVjcmVhc2VGb250U2l6ZSA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiZGVjcmVhc2VGb250U2l6ZVxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUsIHZhbHVlKSA9PiB7XFxuICAgICAgICByZXR1cm4gY2hhbmdlRm9udFNpemUoZWxlbWVudHMsIGFwcFN0YXRlLCAoZWxlbWVudCkgPT4gTWF0aC5yb3VuZChcXG4gICAgICAgIC8vIGdldCBwcmV2aW91cyB2YWx1ZSBiZWZvcmUgcmVsYXRpdmUgaW5jcmVhc2UgKGRvZXNuJ3Qgd29yayBmdWxseVxcbiAgICAgICAgLy8gZHVlIHRvIHJvdW5kaW5nIGFuZCBmbG9hdCBwcmVjaXNpb24gaXNzdWVzKVxcbiAgICAgICAgKDEgLyAoMSArIEZPTlRfU0laRV9SRUxBVElWRV9JTkNSRUFTRV9TVEVQKSkgKiBlbGVtZW50LmZvbnRTaXplKSk7XFxuICAgIH0sXFxuICAgIGtleVRlc3Q6IChldmVudCkgPT4ge1xcbiAgICAgICAgcmV0dXJuIChldmVudFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5LRVlTLkNUUkxfT1JfQ01EXSAmJlxcbiAgICAgICAgICAgIGV2ZW50LnNoaWZ0S2V5ICYmXFxuICAgICAgICAgICAgLy8gS0VZUy5DT01NQSBuZWVkZWQgZm9yIE1hY09TXFxuICAgICAgICAgICAgKGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uS0VZUy5DSEVWUk9OX0xFRlQgfHwgZXZlbnQua2V5ID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5LRVlTLkNPTU1BKSk7XFxuICAgIH0sXFxufSk7XFxuY29uc3QgYWN0aW9uSW5jcmVhc2VGb250U2l6ZSA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiaW5jcmVhc2VGb250U2l6ZVxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUsIHZhbHVlKSA9PiB7XFxuICAgICAgICByZXR1cm4gY2hhbmdlRm9udFNpemUoZWxlbWVudHMsIGFwcFN0YXRlLCAoZWxlbWVudCkgPT4gTWF0aC5yb3VuZChlbGVtZW50LmZvbnRTaXplICogKDEgKyBGT05UX1NJWkVfUkVMQVRJVkVfSU5DUkVBU0VfU1RFUCkpKTtcXG4gICAgfSxcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiB7XFxuICAgICAgICByZXR1cm4gKGV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLktFWVMuQ1RSTF9PUl9DTURdICYmXFxuICAgICAgICAgICAgZXZlbnQuc2hpZnRLZXkgJiZcXG4gICAgICAgICAgICAvLyBLRVlTLlBFUklPRCBuZWVkZWQgZm9yIE1hY09TXFxuICAgICAgICAgICAgKGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uS0VZUy5DSEVWUk9OX1JJR0hUIHx8IGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uS0VZUy5QRVJJT0QpKTtcXG4gICAgfSxcXG59KTtcXG5jb25zdCBhY3Rpb25DaGFuZ2VGb250RmFtaWx5ID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJjaGFuZ2VGb250RmFtaWx5XFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSwgdmFsdWUpID0+IHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgZWxlbWVudHM6IGNoYW5nZVByb3BlcnR5KGVsZW1lbnRzLCBhcHBTdGF0ZSwgKG9sZEVsZW1lbnQpID0+IHtcXG4gICAgICAgICAgICAgICAgaWYgKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uaXNUZXh0RWxlbWVudCkob2xkRWxlbWVudCkpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0VsZW1lbnQgPSAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18ubmV3RWxlbWVudFdpdGgpKG9sZEVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5OiB2YWx1ZSxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5yZWRyYXdUZXh0Qm91bmRpbmdCb3gpKG5ld0VsZW1lbnQsICgwLF9lbGVtZW50X3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uZ2V0Q29udGFpbmVyRWxlbWVudCkob2xkRWxlbWVudCksIGFwcFN0YXRlKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdFbGVtZW50O1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJldHVybiBvbGRFbGVtZW50O1xcbiAgICAgICAgICAgIH0sIHRydWUpLFxcbiAgICAgICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBjdXJyZW50SXRlbUZvbnRGYW1pbHk6IHZhbHVlIH0pLFxcbiAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogdHJ1ZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyBlbGVtZW50cywgYXBwU3RhdGUsIHVwZGF0ZURhdGEgfSkgPT4ge1xcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IFtcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgIHZhbHVlOiBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uRk9OVF9GQU1JTFkuVmlyZ2lsLFxcbiAgICAgICAgICAgICAgICB0ZXh0OiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwibGFiZWxzLmhhbmREcmF3blxcXCIpLFxcbiAgICAgICAgICAgICAgICBpY29uOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5Gb250RmFtaWx5SGFuZERyYXduSWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSxcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgdmFsdWU6IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5GT05UX0ZBTUlMWS5IZWx2ZXRpY2EsXFxuICAgICAgICAgICAgICAgIHRleHQ6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMubm9ybWFsXFxcIiksXFxuICAgICAgICAgICAgICAgIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLkZvbnRGYW1pbHlOb3JtYWxJY29uLCB7IHRoZW1lOiBhcHBTdGF0ZS50aGVtZSB9LCB2b2lkIDApLFxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICB2YWx1ZTogX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLkZPTlRfRkFNSUxZLkNhc2NhZGlhLFxcbiAgICAgICAgICAgICAgICB0ZXh0OiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwibGFiZWxzLmNvZGVcXFwiKSxcXG4gICAgICAgICAgICAgICAgaWNvbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uRm9udEZhbWlseUNvZGVJY29uLCB7IHRoZW1lOiBhcHBTdGF0ZS50aGVtZSB9LCB2b2lkIDApLFxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICBdO1xcbiAgICAgICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJmaWVsZHNldFxcXCIsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImxlZ2VuZFxcXCIsIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMuZm9udEZhbWlseVxcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19CdXR0b25JY29uU2VsZWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uQnV0dG9uSWNvblNlbGVjdCwgeyBncm91cDogXFxcImZvbnQtZmFtaWx5XFxcIiwgb3B0aW9uczogb3B0aW9ucywgdmFsdWU6IGdldEZvcm1WYWx1ZShlbGVtZW50cywgYXBwU3RhdGUsIChlbGVtZW50KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uaXNUZXh0RWxlbWVudCkoZWxlbWVudCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuZm9udEZhbWlseTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm91bmRUZXh0RWxlbWVudCA9ICgwLF9lbGVtZW50X3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uZ2V0Qm91bmRUZXh0RWxlbWVudCkoZWxlbWVudCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJvdW5kVGV4dEVsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJvdW5kVGV4dEVsZW1lbnQuZm9udEZhbWlseTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XFxuICAgICAgICAgICAgICAgICAgICB9LCBhcHBTdGF0ZS5jdXJyZW50SXRlbUZvbnRGYW1pbHkgfHwgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLkRFRkFVTFRfRk9OVF9GQU1JTFkpLCBvbkNoYW5nZTogKHZhbHVlKSA9PiB1cGRhdGVEYXRhKHZhbHVlKSB9LCB2b2lkIDApXSB9LCB2b2lkIDApKTtcXG4gICAgfSxcXG59KTtcXG5jb25zdCBhY3Rpb25DaGFuZ2VUZXh0QWxpZ24gPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImNoYW5nZVRleHRBbGlnblxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUsIHZhbHVlKSA9PiB7XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGVsZW1lbnRzOiBjaGFuZ2VQcm9wZXJ0eShlbGVtZW50cywgYXBwU3RhdGUsIChvbGRFbGVtZW50KSA9PiB7XFxuICAgICAgICAgICAgICAgIGlmICgoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmlzVGV4dEVsZW1lbnQpKG9sZEVsZW1lbnQpKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdFbGVtZW50ID0gKDAsX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLm5ld0VsZW1lbnRXaXRoKShvbGRFbGVtZW50LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEFsaWduOiB2YWx1ZSxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5yZWRyYXdUZXh0Qm91bmRpbmdCb3gpKG5ld0VsZW1lbnQsICgwLF9lbGVtZW50X3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uZ2V0Q29udGFpbmVyRWxlbWVudCkob2xkRWxlbWVudCksIGFwcFN0YXRlKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdFbGVtZW50O1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJldHVybiBvbGRFbGVtZW50O1xcbiAgICAgICAgICAgIH0sIHRydWUpLFxcbiAgICAgICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBjdXJyZW50SXRlbVRleHRBbGlnbjogdmFsdWUgfSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiB0cnVlLFxcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAgUGFuZWxDb21wb25lbnQ6ICh7IGVsZW1lbnRzLCBhcHBTdGF0ZSwgdXBkYXRlRGF0YSB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZmllbGRzZXRcXFwiLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJsZWdlbmRcXFwiLCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwibGFiZWxzLnRleHRBbGlnblxcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19CdXR0b25JY29uU2VsZWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uQnV0dG9uSWNvblNlbGVjdCwgeyBncm91cDogXFxcInRleHQtYWxpZ25cXFwiLCBvcHRpb25zOiBbXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFxcXCJsZWZ0XFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwibGFiZWxzLmxlZnRcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5UZXh0QWxpZ25MZWZ0SWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFxcXCJjZW50ZXJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMuY2VudGVyXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uVGV4dEFsaWduQ2VudGVySWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFxcXCJyaWdodFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5yaWdodFxcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlRleHRBbGlnblJpZ2h0SWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIF0sIHZhbHVlOiBnZXRGb3JtVmFsdWUoZWxlbWVudHMsIGFwcFN0YXRlLCAoZWxlbWVudCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uaXNUZXh0RWxlbWVudCkoZWxlbWVudCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudC50ZXh0QWxpZ247XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBib3VuZFRleHRFbGVtZW50ID0gKDAsX2VsZW1lbnRfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5nZXRCb3VuZFRleHRFbGVtZW50KShlbGVtZW50KTtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChib3VuZFRleHRFbGVtZW50KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJvdW5kVGV4dEVsZW1lbnQudGV4dEFsaWduO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XFxuICAgICAgICAgICAgICAgIH0sIGFwcFN0YXRlLmN1cnJlbnRJdGVtVGV4dEFsaWduKSwgb25DaGFuZ2U6ICh2YWx1ZSkgPT4gdXBkYXRlRGF0YSh2YWx1ZSkgfSwgdm9pZCAwKV0gfSwgdm9pZCAwKSksXFxufSk7XFxuY29uc3QgYWN0aW9uQ2hhbmdlU2hhcnBuZXNzID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJjaGFuZ2VTaGFycG5lc3NcXFwiLFxcbiAgICBwZXJmb3JtOiAoZWxlbWVudHMsIGFwcFN0YXRlLCB2YWx1ZSkgPT4ge1xcbiAgICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudHMgPSAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18uZ2V0VGFyZ2V0RWxlbWVudHMpKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKShlbGVtZW50cyksIGFwcFN0YXRlKTtcXG4gICAgICAgIGNvbnN0IHNob3VsZFVwZGF0ZUZvck5vbkxpbmVhckVsZW1lbnRzID0gdGFyZ2V0RWxlbWVudHMubGVuZ3RoXFxuICAgICAgICAgICAgPyB0YXJnZXRFbGVtZW50cy5ldmVyeSgoZWwpID0+ICEoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uaXNMaW5lYXJFbGVtZW50KShlbCkpXFxuICAgICAgICAgICAgOiAhKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLmlzTGluZWFyRWxlbWVudFR5cGUpKGFwcFN0YXRlLmVsZW1lbnRUeXBlKTtcXG4gICAgICAgIGNvbnN0IHNob3VsZFVwZGF0ZUZvckxpbmVhckVsZW1lbnRzID0gdGFyZ2V0RWxlbWVudHMubGVuZ3RoXFxuICAgICAgICAgICAgPyB0YXJnZXRFbGVtZW50cy5ldmVyeShfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uaXNMaW5lYXJFbGVtZW50KVxcbiAgICAgICAgICAgIDogKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLmlzTGluZWFyRWxlbWVudFR5cGUpKGFwcFN0YXRlLmVsZW1lbnRUeXBlKTtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgZWxlbWVudHM6IGNoYW5nZVByb3BlcnR5KGVsZW1lbnRzLCBhcHBTdGF0ZSwgKGVsKSA9PiAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18ubmV3RWxlbWVudFdpdGgpKGVsLCB7XFxuICAgICAgICAgICAgICAgIHN0cm9rZVNoYXJwbmVzczogdmFsdWUsXFxuICAgICAgICAgICAgfSkpLFxcbiAgICAgICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBjdXJyZW50SXRlbVN0cm9rZVNoYXJwbmVzczogc2hvdWxkVXBkYXRlRm9yTm9uTGluZWFyRWxlbWVudHNcXG4gICAgICAgICAgICAgICAgICAgID8gdmFsdWVcXG4gICAgICAgICAgICAgICAgICAgIDogYXBwU3RhdGUuY3VycmVudEl0ZW1TdHJva2VTaGFycG5lc3MsIGN1cnJlbnRJdGVtTGluZWFyU3Ryb2tlU2hhcnBuZXNzOiBzaG91bGRVcGRhdGVGb3JMaW5lYXJFbGVtZW50c1xcbiAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZVxcbiAgICAgICAgICAgICAgICAgICAgOiBhcHBTdGF0ZS5jdXJyZW50SXRlbUxpbmVhclN0cm9rZVNoYXJwbmVzcyB9KSxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgZWxlbWVudHMsIGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJmaWVsZHNldFxcXCIsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImxlZ2VuZFxcXCIsIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMuZWRnZXNcXFwiKSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfQnV0dG9uSWNvblNlbGVjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkJ1dHRvbkljb25TZWxlY3QsIHsgZ3JvdXA6IFxcXCJlZGdlc1xcXCIsIG9wdGlvbnM6IFtcXG4gICAgICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXFxcInNoYXJwXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwibGFiZWxzLnNoYXJwXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uRWRnZVNoYXJwSWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFxcXCJyb3VuZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5yb3VuZFxcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLkVkZ2VSb3VuZEljb24sIHsgdGhlbWU6IGFwcFN0YXRlLnRoZW1lIH0sIHZvaWQgMCksXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICBdLCB2YWx1ZTogZ2V0Rm9ybVZhbHVlKGVsZW1lbnRzLCBhcHBTdGF0ZSwgKGVsZW1lbnQpID0+IGVsZW1lbnQuc3Ryb2tlU2hhcnBuZXNzLCAoKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLmNhbkNoYW5nZVNoYXJwbmVzcykoYXBwU3RhdGUuZWxlbWVudFR5cGUpICYmXFxuICAgICAgICAgICAgICAgICAgICAoKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLmlzTGluZWFyRWxlbWVudFR5cGUpKGFwcFN0YXRlLmVsZW1lbnRUeXBlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYXBwU3RhdGUuY3VycmVudEl0ZW1MaW5lYXJTdHJva2VTaGFycG5lc3NcXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGFwcFN0YXRlLmN1cnJlbnRJdGVtU3Ryb2tlU2hhcnBuZXNzKSkgfHxcXG4gICAgICAgICAgICAgICAgICAgIG51bGwpLCBvbkNoYW5nZTogKHZhbHVlKSA9PiB1cGRhdGVEYXRhKHZhbHVlKSB9LCB2b2lkIDApXSB9LCB2b2lkIDApKSxcXG59KTtcXG5jb25zdCBhY3Rpb25DaGFuZ2VBcnJvd2hlYWQgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImNoYW5nZUFycm93aGVhZFxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUsIHZhbHVlKSA9PiB7XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGVsZW1lbnRzOiBjaGFuZ2VQcm9wZXJ0eShlbGVtZW50cywgYXBwU3RhdGUsIChlbCkgPT4ge1xcbiAgICAgICAgICAgICAgICBpZiAoKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLmlzTGluZWFyRWxlbWVudCkoZWwpKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBvc2l0aW9uLCB0eXBlIH0gPSB2YWx1ZTtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA9PT0gXFxcInN0YXJ0XFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18ubmV3RWxlbWVudFdpdGgpKGVsLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0QXJyb3doZWFkOiB0eXBlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50O1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocG9zaXRpb24gPT09IFxcXCJlbmRcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9ICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5uZXdFbGVtZW50V2l0aCkoZWwsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kQXJyb3doZWFkOiB0eXBlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50O1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJldHVybiBlbDtcXG4gICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICBhcHBTdGF0ZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhcHBTdGF0ZSksIHsgW3ZhbHVlLnBvc2l0aW9uID09PSBcXFwic3RhcnRcXFwiXFxuICAgICAgICAgICAgICAgICAgICA/IFxcXCJjdXJyZW50SXRlbVN0YXJ0QXJyb3doZWFkXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgOiBcXFwiY3VycmVudEl0ZW1FbmRBcnJvd2hlYWRcXFwiXTogdmFsdWUudHlwZSB9KSxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgZWxlbWVudHMsIGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+IHtcXG4gICAgICAgIGNvbnN0IGlzUlRMID0gKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uZ2V0TGFuZ3VhZ2UpKCkucnRsO1xcbiAgICAgICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJmaWVsZHNldFxcXCIsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImxlZ2VuZFxcXCIsIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMuYXJyb3doZWFkc1xcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJpY29uU2VsZWN0TGlzdFxcXCIgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19JY29uUGlja2VyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uSWNvblBpY2tlciwgeyBsYWJlbDogXFxcImFycm93aGVhZF9zdGFydFxcXCIsIG9wdGlvbnM6IFtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwibGFiZWxzLmFycm93aGVhZF9ub25lXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uQXJyb3doZWFkTm9uZUljb24sIHsgdGhlbWU6IGFwcFN0YXRlLnRoZW1lIH0sIHZvaWQgMCksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5QmluZGluZzogXFxcInFcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXFxcImFycm93XFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwibGFiZWxzLmFycm93aGVhZF9hcnJvd1xcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5BcnJvd2hlYWRBcnJvd0ljb24sIHsgdGhlbWU6IGFwcFN0YXRlLnRoZW1lLCBmbGlwOiAhaXNSVEwgfSwgdm9pZCAwKSksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5QmluZGluZzogXFxcIndcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXFxcImJhclxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5hcnJvd2hlYWRfYmFyXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uQXJyb3doZWFkQmFySWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUsIGZsaXA6ICFpc1JUTCB9LCB2b2lkIDApLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleUJpbmRpbmc6IFxcXCJlXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFxcXCJkb3RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMuYXJyb3doZWFkX2RvdFxcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLkFycm93aGVhZERvdEljb24sIHsgdGhlbWU6IGFwcFN0YXRlLnRoZW1lLCBmbGlwOiAhaXNSVEwgfSwgdm9pZCAwKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlCaW5kaW5nOiBcXFwiclxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcXFwidHJpYW5nbGVcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnQpKFxcXCJsYWJlbHMuYXJyb3doZWFkX3RyaWFuZ2xlXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLkFycm93aGVhZFRyaWFuZ2xlSWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUsIGZsaXA6ICFpc1JUTCB9LCB2b2lkIDApKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlCaW5kaW5nOiBcXFwidFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCB2YWx1ZTogZ2V0Rm9ybVZhbHVlKGVsZW1lbnRzLCBhcHBTdGF0ZSwgKGVsZW1lbnQpID0+ICgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5pc0xpbmVhckVsZW1lbnQpKGVsZW1lbnQpICYmICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5jYW5IYXZlQXJyb3doZWFkcykoZWxlbWVudC50eXBlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBlbGVtZW50LnN0YXJ0QXJyb3doZWFkXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGFwcFN0YXRlLmN1cnJlbnRJdGVtU3RhcnRBcnJvd2hlYWQsIGFwcFN0YXRlLmN1cnJlbnRJdGVtU3RhcnRBcnJvd2hlYWQpLCBvbkNoYW5nZTogKHZhbHVlKSA9PiB1cGRhdGVEYXRhKHsgcG9zaXRpb246IFxcXCJzdGFydFxcXCIsIHR5cGU6IHZhbHVlIH0pIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19JY29uUGlja2VyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uSWNvblBpY2tlciwgeyBsYWJlbDogXFxcImFycm93aGVhZF9lbmRcXFwiLCBncm91cDogXFxcImFycm93aGVhZHNcXFwiLCBvcHRpb25zOiBbXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5hcnJvd2hlYWRfbm9uZVxcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleUJpbmRpbmc6IFxcXCJxXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5BcnJvd2hlYWROb25lSWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFxcXCJhcnJvd1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5hcnJvd2hlYWRfYXJyb3dcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlCaW5kaW5nOiBcXFwid1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLkFycm93aGVhZEFycm93SWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUsIGZsaXA6IGlzUlRMIH0sIHZvaWQgMCkpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXFxcImJhclxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5hcnJvd2hlYWRfYmFyXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5QmluZGluZzogXFxcImVcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLkFycm93aGVhZEJhckljb24sIHsgdGhlbWU6IGFwcFN0YXRlLnRoZW1lLCBmbGlwOiBpc1JUTCB9LCB2b2lkIDApLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXFxcImRvdFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udCkoXFxcImxhYmVscy5hcnJvd2hlYWRfZG90XFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5QmluZGluZzogXFxcInJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLkFycm93aGVhZERvdEljb24sIHsgdGhlbWU6IGFwcFN0YXRlLnRoZW1lLCBmbGlwOiBpc1JUTCB9LCB2b2lkIDApLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXFxcInRyaWFuZ2xlXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50KShcXFwibGFiZWxzLmFycm93aGVhZF90cmlhbmdsZVxcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5BcnJvd2hlYWRUcmlhbmdsZUljb24sIHsgdGhlbWU6IGFwcFN0YXRlLnRoZW1lLCBmbGlwOiBpc1JUTCB9LCB2b2lkIDApKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlCaW5kaW5nOiBcXFwidFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCB2YWx1ZTogZ2V0Rm9ybVZhbHVlKGVsZW1lbnRzLCBhcHBTdGF0ZSwgKGVsZW1lbnQpID0+ICgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5pc0xpbmVhckVsZW1lbnQpKGVsZW1lbnQpICYmICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5jYW5IYXZlQXJyb3doZWFkcykoZWxlbWVudC50eXBlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBlbGVtZW50LmVuZEFycm93aGVhZFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhcHBTdGF0ZS5jdXJyZW50SXRlbUVuZEFycm93aGVhZCwgYXBwU3RhdGUuY3VycmVudEl0ZW1FbmRBcnJvd2hlYWQpLCBvbkNoYW5nZTogKHZhbHVlKSA9PiB1cGRhdGVEYXRhKHsgcG9zaXRpb246IFxcXCJlbmRcXFwiLCB0eXBlOiB2YWx1ZSB9KSB9LCB2b2lkIDApXSB9KSwgdm9pZCAwKV0gfSwgdm9pZCAwKSk7XFxuICAgIH0sXFxufSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZV04wYVc5dWN5OWhZM1JwYjI1UWNtOXdaWEowYVdWekxuUnplQzVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dEJRVU5yUlR0QlFVTldPMEZCUTBZN1FVRTJRbnBDTzBGQlMxQTdRVUZMUmp0QlFVTnhSRHRCUVVsNlF6dEJRVXRFTzBGQlUxVTdRVUZEVmp0QlFVTlhPMEZCVVhoQ08wRkJRMjlETzBGQlEyaENPMEZCUTBFN1FVRkZkRU1zVFVGQlRTeG5RMEZCWjBNc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRk4wTXNUVUZCVFN4alFVRmpMRWRCUVVjc1EwRkRja0lzVVVGQmMwTXNSVUZEZEVNc1VVRkJhMElzUlVGRGJFSXNVVUZCTWtRc1JVRkRNMFFzWjBKQlFXZENMRWRCUVVjc1MwRkJTeXhGUVVONFFpeEZRVUZGTzBsQlEwWXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eHRSRUZCVlN4RFFVTnVReXcwUkVGQmJVSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxHZENRVUZuUWl4RFFVRkRMRU5CUXpGRUxFTkJRVU03U1VGRFJpeFBRVUZQTEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJUczdVVUZET1VJc1NVRkRSU3hyUWtGQmEwSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU5zUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hOUVVGTExHTkJRVkVzUTBGQlF5eGpRVUZqTERCRFFVRkZMRVZCUVVVc1IwRkRNVU03V1VGRFFTeFBRVUZQTEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRUUVVNeFFqdFJRVU5FTEU5QlFVOHNUMEZCVHl4RFFVRkRPMGxCUTJwQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwd3NRMEZCUXl4RFFVRkRPMEZCUlVZc1RVRkJUU3haUVVGWkxFZEJRVWNzVlVGRGJrSXNVVUZCYzBNc1JVRkRkRU1zVVVGQmEwSXNSVUZEYkVJc1dVRkJLME1zUlVGREwwTXNXVUZCWjBJN08wbEJSV2hDTEUxQlFVMHNZMEZCWXl4SFFVRkhMRkZCUVZFc1EwRkJReXhqUVVGakxFTkJRVU03U1VGREwwTXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5d3JSRUZCY1VJc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVU16UkN4UFFVRlBMRU5CUTB3c1lVRkJReXhqUVVGakxFbEJRVWtzV1VGQldTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRMRzFEUVVOb1JDeERRVUZETERoRVFVRnhRaXhEUVVGRExHdENRVUZyUWl4RlFVRkZMRkZCUVZFc1EwRkJRenRSUVVOc1JDeERRVUZETEVOQlFVTXNOa1ZCUVc5RExFTkJRMnhETEd0Q1FVRnJRaXhGUVVOc1FpeFJRVUZSTEVWQlExSXNXVUZCV1N4RFFVTmlPMUZCUTBnc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eHRRMEZEYWtJc1NVRkJTU3hEUVVOTUxFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MRFJDUVVFMFFpeEhRVUZITEVOQlEyNURMRmRCUVd0RExFVkJRMnhETEZkQlFXdERMRVZCUTJ4RExFVkJRVVU3U1VGRFJpeEpRVUZKTEhWRlFVRnJRaXhEUVVGRExGZEJRVmNzUTBGQlF5eEZRVUZGTzFGQlEyNURMRTlCUVU4c1YwRkJWeXhEUVVGRE8wdEJRM0JDTzBsQlEwUXNUMEZCVHl4eFJVRkJZU3hEUVVOc1FpeFhRVUZYTEVWQlExZzdVVUZEUlN4RFFVRkRMRVZCUTBNc1YwRkJWeXhEUVVGRExGTkJRVk1zUzBGQlN5eE5RVUZOTzFsQlF6bENMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dFpRVU5tTEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRuUWtGRFlpeERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRWRCUVVjc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF6dHZRa0ZEY2tNc1EwRkJReXhYUVVGWExFTkJRVU1zVTBGQlV5eExRVUZMTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY0VRc2JVVkJRVzFGTzFGQlEyNUZMR2xDUVVGcFFqdFJRVU5xUWl4RFFVRkRMRVZCUVVVc1YwRkJWeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEZkQlFWY3NRMEZCUXl4TlFVRk5MRWRCUVVjc1YwRkJWeXhEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTTdTMEZEYWtVc1JVRkRSQ3hMUVVGTExFTkJRMDRzUTBGQlF6dEJRVU5LTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc1kwRkJZeXhIUVVGSExFTkJRM0pDTEZGQlFYTkRMRVZCUTNSRExGRkJRV3RDTEVWQlEyeENMR05CUVRCRUxFVkJRekZFTEdGQlFXbEVMRVZCUTJwRUxFVkJRVVU3U1VGRFJpeE5RVUZOTEZsQlFWa3NSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJWU3hEUVVGRE8wbEJSWFpETEU5QlFVODdVVUZEVEN4UlFVRlJMRVZCUVVVc1kwRkJZeXhEUVVOMFFpeFJRVUZSTEVWQlExSXNVVUZCVVN4RlFVTlNMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFVkJRVVU3V1VGRFlpeEpRVUZKTEhWRVFVRmhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFVkJRVVU3WjBKQlF6ZENMRTFCUVUwc1YwRkJWeXhIUVVGSExHTkJRV01zUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0blFrRkRMME1zV1VGQldTeERRVUZETEVkQlFVY3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRuUWtGRk9VSXNTVUZCU1N4VlFVRlZMRWRCUVRCQ0xITkZRVUZqTEVOQlFVTXNWVUZCVlN4RlFVRkZPMjlDUVVOcVJTeFJRVUZSTEVWQlFVVXNWMEZCVnp0cFFrRkRkRUlzUTBGQlF5eERRVUZETzJkQ1FVTklMQ3RFUVVGeFFpeERRVU51UWl4VlFVRlZMRVZCUTFZc2VVVkJRVzFDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUXk5Q0xGRkJRVkVzUTBGRFZDeERRVUZETzJkQ1FVVkdMRlZCUVZVc1IwRkJSeXcwUWtGQk5FSXNRMEZCUXl4VlFVRlZMRVZCUVVVc1ZVRkJWU3hEUVVGRExFTkJRVU03WjBKQlJXeEZMRTlCUVU4c1ZVRkJWU3hEUVVGRE8yRkJRMjVDTzFsQlJVUXNUMEZCVHl4VlFVRlZMRU5CUVVNN1VVRkRjRUlzUTBGQlF5eEZRVU5FTEVsQlFVa3NRMEZEVER0UlFVTkVMRkZCUVZFc2EwTkJRMGdzVVVGQlVUdFpRVU5ZTERaRVFVRTJSRHRaUVVNM1JDeHhRa0ZCY1VJN1dVRkRja0lzYlVKQlFXMUNMRVZCUTJwQ0xGbEJRVmtzUTBGQlF5eEpRVUZKTEV0QlFVc3NRMEZCUXp0blFrRkRja0lzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEzUkNMRU5CUVVNc1EwRkJReXhoUVVGaExHRkJRV0lzWVVGQllTeGpRVUZpTEdGQlFXRXNSMEZCU1N4UlFVRlJMRU5CUVVNc2JVSkJRVzFDTEVkQlEzQkVPMUZCUTBRc1pVRkJaU3hGUVVGRkxFbEJRVWs3UzBGRGRFSXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJRenRCUVVWR0xHZEdRVUZuUmp0QlFVVjZSU3hOUVVGTkxIVkNRVUYxUWl4SFFVRkhMRzlFUVVGUkxFTkJRVU03U1VGRE9VTXNTVUZCU1N4RlFVRkZMRzFDUVVGdFFqdEpRVU42UWl4UFFVRlBMRVZCUVVVc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZPMUZCUTNKRExIVkRRVU5MTEVOQlFVTXNTMEZCU3l4RFFVRkRMSE5DUVVGelFpeEpRVUZKTzFsQlEyeERMRkZCUVZFc1JVRkJSU3hqUVVGakxFTkJRM1JDTEZGQlFWRXNSVUZEVWl4UlFVRlJMRVZCUTFJc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJUdG5Ra0ZEVEN4UFFVRlBMRzFGUVVGakxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXp0dlFrRkROVUlzUTBGQlF5eERRVUZETEhORlFVRmpMRU5CUVVNc1JVRkJSU3hGUVVGRk8zZENRVU5xUWl4WFFVRlhMRVZCUVVVc1MwRkJTeXhEUVVGRExITkNRVUZ6UWp0eFFrRkRNVU1zUTBGQlF6dHZRa0ZEU2l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRMVFzUTBGQlF5eEZRVU5FTEVsQlFVa3NRMEZEVER0VFFVTkdMRU5CUVVNc1MwRkRSaXhSUVVGUkxHdERRVU5JTEZGQlFWRXNSMEZEVWl4TFFVRkxMRWRCUlZZc1pVRkJaU3hGUVVGRkxFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNjMEpCUVhOQ0xFbEJReTlETzBsQlEwb3NRMEZCUXp0SlFVTkVMR05CUVdNc1JVRkJSU3hEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4VlFVRlZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGRGRFUXNPRWhCUTBVc05FWkJRV2RDTEUxQlFVMHNaMEpCUVVVc2VVTkJRVU1zUTBGQlF5eGxRVUZsTEVOQlFVTXNXVUZCVFN4RlFVTm9SQ3gxUkVGQlF5eG5SVUZCVnl4SlFVTldMRWxCUVVrc1JVRkJReXhsUVVGbExFVkJRM0JDTEV0QlFVc3NSVUZCUlN4NVEwRkJReXhEUVVGRExHVkJRV1VzUTBGQlF5eEZRVU42UWl4TFFVRkxMRVZCUVVVc1dVRkJXU3hEUVVOcVFpeFJRVUZSTEVWQlExSXNVVUZCVVN4RlFVTlNMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RlFVTm9ReXhSUVVGUkxFTkJRVU1zYzBKQlFYTkNMRU5CUTJoRExFVkJRMFFzVVVGQlVTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU1zUlVGQlJTeHpRa0ZCYzBJc1JVRkJSU3hMUVVGTExFVkJRVVVzUTBGQlF5eEZRVU5zUlN4UlFVRlJMRVZCUVVVc1VVRkJVU3hEUVVGRExGTkJRVk1zUzBGQlN5eHRRa0ZCYlVJc1JVRkRjRVFzVTBGQlV5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RlFVRkZMRVZCUVVVc1EwRkRjRUlzVlVGQlZTeERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEZkQlJXaEZMRmxCUTBRc1EwRkRTanREUVVOR0xFTkJRVU1zUTBGQlF6dEJRVVZKTEUxQlFVMHNNa0pCUVRKQ0xFZEJRVWNzYjBSQlFWRXNRMEZCUXp0SlFVTnNSQ3hKUVVGSkxFVkJRVVVzZFVKQlFYVkNPMGxCUXpkQ0xFOUJRVThzUlVGQlJTeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVU3VVVGRGNrTXNkVU5CUTBzc1EwRkJReXhMUVVGTExFTkJRVU1zTUVKQlFUQkNMRWxCUVVrN1dVRkRkRU1zVVVGQlVTeEZRVUZGTEdOQlFXTXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZEYkVRc2MwVkJRV01zUTBGQlF5eEZRVUZGTEVWQlFVVTdaMEpCUTJwQ0xHVkJRV1VzUlVGQlJTeExRVUZMTEVOQlFVTXNNRUpCUVRCQ08yRkJRMnhFTEVOQlFVTXNRMEZEU0R0VFFVTkdMRU5CUVVNc1MwRkRSaXhSUVVGUkxHdERRVU5JTEZGQlFWRXNSMEZEVWl4TFFVRkxMRWRCUlZZc1pVRkJaU3hGUVVGRkxFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNNRUpCUVRCQ0xFbEJRMjVFTzBsQlEwb3NRMEZCUXp0SlFVTkVMR05CUVdNc1JVRkJSU3hEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4VlFVRlZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGRGRFUXNPRWhCUTBVc05FWkJRV2RDTEUxQlFVMHNaMEpCUVVVc2VVTkJRVU1zUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhaUVVGTkxFVkJRM0JFTEhWRVFVRkRMR2RGUVVGWExFbEJRMVlzU1VGQlNTeEZRVUZETEcxQ1FVRnRRaXhGUVVONFFpeExRVUZMTEVWQlFVVXNlVU5CUVVNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RlFVTTNRaXhMUVVGTExFVkJRVVVzV1VGQldTeERRVU5xUWl4UlFVRlJMRVZCUTFJc1VVRkJVU3hGUVVOU0xFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1pVRkJaU3hGUVVOd1F5eFJRVUZSTEVOQlFVTXNNRUpCUVRCQ0xFTkJRM0JETEVWQlEwUXNVVUZCVVN4RlFVRkZMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNSVUZCUlN3d1FrRkJNRUlzUlVGQlJTeExRVUZMTEVWQlFVVXNRMEZCUXl4RlFVTjBSU3hSUVVGUkxFVkJRVVVzVVVGQlVTeERRVUZETEZOQlFWTXNTMEZCU3l4MVFrRkJkVUlzUlVGRGVFUXNVMEZCVXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hGUVVGRkxFVkJRVVVzUTBGRGNFSXNWVUZCVlN4RFFVRkRMRVZCUVVVc1UwRkJVeXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRmRCUlhCRkxGbEJRMFFzUTBGRFNqdERRVU5HTEVOQlFVTXNRMEZCUXp0QlFVVkpMRTFCUVUwc2NVSkJRWEZDTEVkQlFVY3NiMFJCUVZFc1EwRkJRenRKUVVNMVF5eEpRVUZKTEVWQlFVVXNhVUpCUVdsQ08wbEJRM1pDTEU5QlFVOHNSVUZCUlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVTdVVUZEY2tNc1QwRkJUenRaUVVOTUxGRkJRVkVzUlVGQlJTeGpRVUZqTEVOQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlEyeEVMSE5GUVVGakxFTkJRVU1zUlVGQlJTeEZRVUZGTzJkQ1FVTnFRaXhUUVVGVExFVkJRVVVzUzBGQlN6dGhRVU5xUWl4RFFVRkRMRU5CUTBnN1dVRkRSQ3hSUVVGUkxHdERRVUZQTEZGQlFWRXNTMEZCUlN4dlFrRkJiMElzUlVGQlJTeExRVUZMTEVkQlFVVTdXVUZEZEVRc1pVRkJaU3hGUVVGRkxFbEJRVWs3VTBGRGRFSXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkRSQ3hqUVVGakxFVkJRVVVzUTBGQlF5eEZRVUZGTEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlEzUkVMR2xHUVVORkxEWkZRVUZUTEhsRFFVRkRMRU5CUVVNc1lVRkJZU3hEUVVGRExGZEJRVlVzUlVGRGJrTXNkVVJCUVVNc01FVkJRV2RDTEVsQlEyWXNUMEZCVHl4RlFVRkZPMjlDUVVOUU8zZENRVU5GTEV0QlFVc3NSVUZCUlN4VFFVRlRPM2RDUVVOb1FpeEpRVUZKTEVWQlFVVXNlVU5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0M1FrRkRla0lzU1VGQlNTeEZRVUZGTEhWRVFVRkRMRGhFUVVGbExFbEJRVU1zUzBGQlN5eEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRmRCUVVrN2NVSkJRMnBFTzI5Q1FVTkVPM2RDUVVORkxFdEJRVXNzUlVGQlJTeGhRVUZoTzNkQ1FVTndRaXhKUVVGSkxFVkJRVVVzZVVOQlFVTXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF6dDNRa0ZETlVJc1NVRkJTU3hGUVVGRkxIVkVRVUZETEdsRlFVRnJRaXhKUVVGRExFdEJRVXNzUlVGQlJTeFJRVUZSTEVOQlFVTXNTMEZCU3l4WFFVRkpPM0ZDUVVOd1JEdHZRa0ZEUkR0M1FrRkRSU3hMUVVGTExFVkJRVVVzVDBGQlR6dDNRa0ZEWkN4SlFVRkpMRVZCUVVVc2VVTkJRVU1zUTBGQlF5eGpRVUZqTEVOQlFVTTdkMEpCUTNaQ0xFbEJRVWtzUlVGQlJTeDFSRUZCUXl3MFJFRkJZU3hKUVVGRExFdEJRVXNzUlVGQlJTeFJRVUZSTEVOQlFVTXNTMEZCU3l4WFFVRkpPM0ZDUVVNdlF6dHBRa0ZEUml4RlFVTkVMRXRCUVVzc1JVRkJReXhOUVVGTkxFVkJRMW9zUzBGQlN5eEZRVUZGTEZsQlFWa3NRMEZEYWtJc1VVRkJVU3hGUVVOU0xGRkJRVkVzUlVGRFVpeERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExGTkJRVk1zUlVGRE9VSXNVVUZCVVN4RFFVRkRMRzlDUVVGdlFpeERRVU01UWl4RlFVTkVMRkZCUVZFc1JVRkJSU3hEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTzI5Q1FVTnNRaXhWUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdaMEpCUTNCQ0xFTkJRVU1zVjBGRFJDeFpRVU5QTEVOQlExbzdRMEZEUml4RFFVRkRMRU5CUVVNN1FVRkZTU3hOUVVGTkxIVkNRVUYxUWl4SFFVRkhMRzlFUVVGUkxFTkJRVU03U1VGRE9VTXNTVUZCU1N4RlFVRkZMRzFDUVVGdFFqdEpRVU42UWl4UFFVRlBMRVZCUVVVc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZPMUZCUTNKRExFOUJRVTg3V1VGRFRDeFJRVUZSTEVWQlFVVXNZMEZCWXl4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVTnNSQ3h6UlVGQll5eERRVUZETEVWQlFVVXNSVUZCUlR0blFrRkRha0lzVjBGQlZ5eEZRVUZGTEV0QlFVczdZVUZEYmtJc1EwRkJReXhEUVVOSU8xbEJRMFFzVVVGQlVTeHJRMEZCVHl4UlFVRlJMRXRCUVVVc2MwSkJRWE5DTEVWQlFVVXNTMEZCU3l4SFFVRkZPMWxCUTNoRUxHVkJRV1VzUlVGQlJTeEpRVUZKTzFOQlEzUkNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJRMFFzWTBGQll5eEZRVUZGTEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxGVkJRVlVzUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVTjBSQ3hwUmtGRFJTdzJSVUZCVXl4NVEwRkJReXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRmRCUVZVc1JVRkRNVU1zZFVSQlFVTXNNRVZCUVdkQ0xFbEJRMllzUzBGQlN5eEZRVUZETEdOQlFXTXNSVUZEY0VJc1QwRkJUeXhGUVVGRk8yOUNRVU5RTzNkQ1FVTkZMRXRCUVVzc1JVRkJSU3hEUVVGRE8zZENRVU5TTEVsQlFVa3NSVUZCUlN4NVEwRkJReXhEUVVGRExHRkJRV0VzUTBGQlF6dDNRa0ZEZEVJc1NVRkJTU3hGUVVGRkxIVkVRVUZETERoRVFVRmxMRWxCUVVNc1MwRkJTeXhGUVVGRkxGRkJRVkVzUTBGQlF5eExRVUZMTEVWQlFVVXNWMEZCVnl4RlFVRkZMRU5CUVVNc1YwRkJTVHR4UWtGRGFrVTdiMEpCUTBRN2QwSkJRMFVzUzBGQlN5eEZRVUZGTEVOQlFVTTdkMEpCUTFJc1NVRkJTU3hGUVVGRkxIbERRVUZETEVOQlFVTXNZVUZCWVN4RFFVRkRPM2RDUVVOMFFpeEpRVUZKTEVWQlFVVXNkVVJCUVVNc09FUkJRV1VzU1VGQlF5eExRVUZMTEVWQlFVVXNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hYUVVGWExFVkJRVVVzUTBGQlF5eFhRVUZKTzNGQ1FVTnFSVHR2UWtGRFJEdDNRa0ZEUlN4TFFVRkxMRVZCUVVVc1EwRkJRenQzUWtGRFVpeEpRVUZKTEVWQlFVVXNlVU5CUVVNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXp0M1FrRkRNMElzU1VGQlNTeEZRVUZGTEhWRVFVRkRMRGhFUVVGbExFbEJRVU1zUzBGQlN5eEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRVZCUVVVc1YwRkJWeXhGUVVGRkxFVkJRVVVzVjBGQlNUdHhRa0ZEYkVVN2FVSkJRMFlzUlVGRFJDeExRVUZMTEVWQlFVVXNXVUZCV1N4RFFVTnFRaXhSUVVGUkxFVkJRMUlzVVVGQlVTeEZRVU5TTEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zVjBGQlZ5eEZRVU5vUXl4UlFVRlJMRU5CUVVNc2MwSkJRWE5DTEVOQlEyaERMRVZCUTBRc1VVRkJVU3hGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRM1JETEZsQlEwOHNRMEZEV2p0RFFVTkdMRU5CUVVNc1EwRkJRenRCUVVWSkxFMUJRVTBzYzBKQlFYTkNMRWRCUVVjc2IwUkJRVkVzUTBGQlF6dEpRVU0zUXl4SlFVRkpMRVZCUVVVc2EwSkJRV3RDTzBsQlEzaENMRTlCUVU4c1JVRkJSU3hEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVN1VVRkRja01zVDBGQlR6dFpRVU5NTEZGQlFWRXNSVUZCUlN4alFVRmpMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUTJ4RUxITkZRVUZqTEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVOcVFpeEpRVUZKTEVWQlFVVXNkVVJCUVdFc1JVRkJSVHRuUWtGRGNrSXNVMEZCVXl4RlFVRkZMRXRCUVVzN1lVRkRha0lzUTBGQlF5eERRVU5JTzFsQlEwUXNVVUZCVVN4clEwRkJUeXhSUVVGUkxFdEJRVVVzYjBKQlFXOUNMRVZCUVVVc1MwRkJTeXhIUVVGRk8xbEJRM1JFTEdWQlFXVXNSVUZCUlN4SlFVRkpPMU5CUTNSQ0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlEwUXNZMEZCWXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEZWQlFWVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVOMFJDeHBSa0ZEUlN3MlJVRkJVeXg1UTBGQlF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExGZEJRVlVzUlVGRGVrTXNkVVJCUVVNc01FVkJRV2RDTEVsQlEyWXNTMEZCU3l4RlFVRkRMRmxCUVZrc1JVRkRiRUlzVDBGQlR5eEZRVUZGTzI5Q1FVTlFPM2RDUVVORkxFdEJRVXNzUlVGQlJTeERRVUZETzNkQ1FVTlNMRWxCUVVrc1JVRkJSU3g1UTBGQlF5eERRVUZETEd0Q1FVRnJRaXhEUVVGRE8zZENRVU16UWl4SlFVRkpMRVZCUVVVc2RVUkJRVU1zYzBWQlFYVkNMRWxCUVVNc1MwRkJTeXhGUVVGRkxGRkJRVkVzUTBGQlF5eExRVUZMTEZkQlFVazdjVUpCUTNwRU8yOUNRVU5FTzNkQ1FVTkZMRXRCUVVzc1JVRkJSU3hEUVVGRE8zZENRVU5TTEVsQlFVa3NSVUZCUlN4NVEwRkJReXhEUVVGRExHVkJRV1VzUTBGQlF6dDNRa0ZEZUVJc1NVRkJTU3hGUVVGRkxIVkVRVUZETEcxRlFVRnZRaXhKUVVGRExFdEJRVXNzUlVGQlJTeFJRVUZSTEVOQlFVTXNTMEZCU3l4WFFVRkpPM0ZDUVVOMFJEdHZRa0ZEUkR0M1FrRkRSU3hMUVVGTExFVkJRVVVzUTBGQlF6dDNRa0ZEVWl4SlFVRkpMRVZCUVVVc2VVTkJRVU1zUTBGQlF5eHRRa0ZCYlVJc1EwRkJRenQzUWtGRE5VSXNTVUZCU1N4RlFVRkZMSFZFUVVGRExIVkZRVUYzUWl4SlFVRkRMRXRCUVVzc1JVRkJSU3hSUVVGUkxFTkJRVU1zUzBGQlN5eFhRVUZKTzNGQ1FVTXhSRHRwUWtGRFJpeEZRVU5FTEV0QlFVc3NSVUZCUlN4WlFVRlpMRU5CUTJwQ0xGRkJRVkVzUlVGRFVpeFJRVUZSTEVWQlExSXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eFRRVUZUTEVWQlF6bENMRkZCUVZFc1EwRkJReXh2UWtGQmIwSXNRMEZET1VJc1JVRkRSQ3hSUVVGUkxFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGRGRFTXNXVUZEVHl4RFFVTmFPME5CUTBZc1EwRkJReXhEUVVGRE8wRkJSVWtzVFVGQlRTeDFRa0ZCZFVJc1IwRkJSeXh2UkVGQlVTeERRVUZETzBsQlF6bERMRWxCUVVrc1JVRkJSU3h0UWtGQmJVSTdTVUZEZWtJc1QwRkJUeXhGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSVHRSUVVOeVF5eFBRVUZQTzFsQlEwd3NVVUZCVVN4RlFVRkZMR05CUVdNc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkRiRVFzYzBWQlFXTXNRMEZCUXl4RlFVRkZMRVZCUVVVN1owSkJRMnBDTEZkQlFWY3NSVUZCUlN4TFFVRkxPMkZCUTI1Q0xFTkJRVU1zUTBGRFNEdFpRVU5FTEZGQlFWRXNhME5CUVU4c1VVRkJVU3hMUVVGRkxITkNRVUZ6UWl4RlFVRkZMRXRCUVVzc1IwRkJSVHRaUVVONFJDeGxRVUZsTEVWQlFVVXNTVUZCU1R0VFFVTjBRaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVU5FTEdOQlFXTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFZRVUZWTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkRkRVFzYVVaQlEwVXNOa1ZCUVZNc2VVTkJRVU1zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhYUVVGVkxFVkJRekZETEhWRVFVRkRMREJGUVVGblFpeEpRVU5tTEV0QlFVc3NSVUZCUXl4aFFVRmhMRVZCUTI1Q0xFOUJRVThzUlVGQlJUdHZRa0ZEVUR0M1FrRkRSU3hMUVVGTExFVkJRVVVzVDBGQlR6dDNRa0ZEWkN4SlFVRkpMRVZCUVVVc2VVTkJRVU1zUTBGQlF5d3dRa0ZCTUVJc1EwRkJRenQzUWtGRGJrTXNTVUZCU1N4RlFVRkZMSFZFUVVGRExHMUZRVUZ2UWl4SlFVRkRMRXRCUVVzc1JVRkJSU3hSUVVGUkxFTkJRVU1zUzBGQlN5eFhRVUZKTzNGQ1FVTjBSRHR2UWtGRFJEdDNRa0ZEUlN4TFFVRkxMRVZCUVVVc1VVRkJVVHQzUWtGRFppeEpRVUZKTEVWQlFVVXNlVU5CUVVNc1EwRkJReXd5UWtGQk1rSXNRMEZCUXp0M1FrRkRjRU1zU1VGQlNTeEZRVUZGTEhWRVFVRkRMRzlGUVVGeFFpeEpRVUZETEV0QlFVc3NSVUZCUlN4UlFVRlJMRU5CUVVNc1MwRkJTeXhYUVVGSk8zRkNRVU4yUkR0dlFrRkRSRHQzUWtGRFJTeExRVUZMTEVWQlFVVXNVVUZCVVR0M1FrRkRaaXhKUVVGSkxFVkJRVVVzZVVOQlFVTXNRMEZCUXl3eVFrRkJNa0lzUTBGQlF6dDNRa0ZEY0VNc1NVRkJTU3hGUVVGRkxIVkVRVUZETEc5RlFVRnhRaXhKUVVGRExFdEJRVXNzUlVGQlJTeFJRVUZSTEVOQlFVTXNTMEZCU3l4WFFVRkpPM0ZDUVVOMlJEdHBRa0ZEUml4RlFVTkVMRXRCUVVzc1JVRkJSU3haUVVGWkxFTkJRMnBDTEZGQlFWRXNSVUZEVWl4UlFVRlJMRVZCUTFJc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4WFFVRlhMRVZCUTJoRExGRkJRVkVzUTBGQlF5eHpRa0ZCYzBJc1EwRkRhRU1zUlVGRFJDeFJRVUZSTEVWQlFVVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZEZEVNc1dVRkRUeXhEUVVOYU8wTkJRMFlzUTBGQlF5eERRVUZETzBGQlJVa3NUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eHZSRUZCVVN4RFFVRkRPMGxCUXpGRExFbEJRVWtzUlVGQlJTeGxRVUZsTzBsQlEzSkNMRTlCUVU4c1JVRkJSU3hEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVN1VVRkRja01zVDBGQlR6dFpRVU5NTEZGQlFWRXNSVUZCUlN4alFVRmpMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUTJ4RUxITkZRVUZqTEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVOcVFpeFBRVUZQTEVWQlFVVXNTMEZCU3p0aFFVTm1MRU5CUVVNc1EwRkRTRHRaUVVORUxGRkJRVkVzYTBOQlFVOHNVVUZCVVN4TFFVRkZMR3RDUVVGclFpeEZRVUZGTEV0QlFVc3NSMEZCUlR0WlFVTndSQ3hsUVVGbExFVkJRVVVzU1VGQlNUdFRRVU4wUWl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVORUxHTkJRV01zUlVGQlJTeERRVUZETEVWQlFVVXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hWUVVGVkxFVkJRVVVzUlVGQlJTeEZRVUZGT3p0UlFVRkRMRkZCUTNSRUxHbEdRVUZQTEZOQlFWTXNSVUZCUXl4bFFVRmxMR2xDUVVNM1FpeDVRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVWQlEzQkNMR3RGUVVORkxFbEJRVWtzUlVGQlF5eFBRVUZQTEVWQlExb3NSMEZCUnl4RlFVRkRMRWRCUVVjc1JVRkRVQ3hIUVVGSExFVkJRVU1zUzBGQlN5eEZRVU5VTEVsQlFVa3NSVUZCUXl4SlFVRkpMRVZCUTFRc1VVRkJVU3hGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVTndSQ3hQUVVGUExFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlR0M1FrRkRha0lzUzBGQlN5eERRVUZETEdWQlFXVXNSVUZCUlN4RFFVRkRPM2RDUVVONFFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4TFFVRkxMRU5CUVVNc1RVRkJNRUlzUTBGQlF6dDNRa0ZEYUVRc1RVRkJUU3hKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETzNkQ1FVTm9RaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEhRVUZITEVOQlFVTTdkMEpCUTJoQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXp0M1FrRkRaQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNN2QwSkJSVFZDTEVsQlFVa3NTMEZCU3l4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFbEJRVWtzUzBGQlN5eEhRVUZITEVkQlFVY3NSVUZCUlRzMFFrRkRia01zVlVGQlZTeERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenQ1UWtGRE1VSTdOa0pCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNTVUZCU1N4TFFVRkxMRWRCUVVjc1IwRkJSeXhGUVVGRk96UkNRVU14UXl4VlFVRlZMRU5CUVVNc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzNsQ1FVTXhRanR2UWtGRFNDeERRVUZETEVWQlEwUXNTMEZCU3l4RlFVTklMR3RDUVVGWkxFTkJRMVlzVVVGQlVTeEZRVU5TTEZGQlFWRXNSVUZEVWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNSVUZETlVJc1VVRkJVU3hEUVVGRExHdENRVUZyUWl4RFFVTTFRaXh0UTBGQlNTeFRRVUZUTEZkQlJXaENMR0ZCUTBrc1EwRkRWRHRMUVVGQk8wTkJRMFlzUTBGQlF5eERRVUZETzBGQlJVa3NUVUZCVFN4dlFrRkJiMElzUjBGQlJ5eHZSRUZCVVN4RFFVRkRPMGxCUXpORExFbEJRVWtzUlVGQlJTeG5Ra0ZCWjBJN1NVRkRkRUlzVDBGQlR5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJUdFJRVU55UXl4UFFVRlBMR05CUVdNc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRXRCUVVzc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU5vUlN4RFFVRkRPMGxCUTBRc1kwRkJZeXhGUVVGRkxFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZMRlZCUVZVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVU4wUkN4cFJrRkRSU3cyUlVGQlV5eDVRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEZkQlFWVXNSVUZEZGtNc2RVUkJRVU1zTUVWQlFXZENMRWxCUTJZc1MwRkJTeXhGUVVGRExGZEJRVmNzUlVGRGFrSXNUMEZCVHl4RlFVRkZPMjlDUVVOUU8zZENRVU5GTEV0QlFVc3NSVUZCUlN4RlFVRkZPM2RDUVVOVUxFbEJRVWtzUlVGQlJTeDVRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJRenQzUWtGRGRrSXNTVUZCU1N4RlFVRkZMSFZFUVVGRExHZEZRVUZwUWl4SlFVRkRMRXRCUVVzc1JVRkJSU3hSUVVGUkxFTkJRVU1zUzBGQlN5eFhRVUZKTzNkQ1FVTnNSQ3hOUVVGTkxFVkJRVVVzWjBKQlFXZENPM0ZDUVVONlFqdHZRa0ZEUkR0M1FrRkRSU3hMUVVGTExFVkJRVVVzUlVGQlJUdDNRa0ZEVkN4SlFVRkpMRVZCUVVVc2VVTkJRVU1zUTBGQlF5eGxRVUZsTEVOQlFVTTdkMEpCUTNoQ0xFbEJRVWtzUlVGQlJTeDFSRUZCUXl4cFJVRkJhMElzU1VGQlF5eExRVUZMTEVWQlFVVXNVVUZCVVN4RFFVRkRMRXRCUVVzc1YwRkJTVHQzUWtGRGJrUXNUVUZCVFN4RlFVRkZMR2xDUVVGcFFqdHhRa0ZETVVJN2IwSkJRMFE3ZDBKQlEwVXNTMEZCU3l4RlFVRkZMRVZCUVVVN2QwSkJRMVFzU1VGQlNTeEZRVUZGTEhsRFFVRkRMRU5CUVVNc1kwRkJZeXhEUVVGRE8zZENRVU4yUWl4SlFVRkpMRVZCUVVVc2RVUkJRVU1zWjBWQlFXbENMRWxCUVVNc1MwRkJTeXhGUVVGRkxGRkJRVkVzUTBGQlF5eExRVUZMTEZkQlFVazdkMEpCUTJ4RUxFMUJRVTBzUlVGQlJTeG5Ra0ZCWjBJN2NVSkJRM3BDTzI5Q1FVTkVPM2RDUVVORkxFdEJRVXNzUlVGQlJTeEZRVUZGTzNkQ1FVTlVMRWxCUVVrc1JVRkJSU3g1UTBGQlF5eERRVUZETEd0Q1FVRnJRaXhEUVVGRE8zZENRVU16UWl4SlFVRkpMRVZCUVVVc2RVUkJRVU1zY1VWQlFYTkNMRWxCUVVNc1MwRkJTeXhGUVVGRkxGRkJRVkVzUTBGQlF5eExRVUZMTEZkQlFVazdkMEpCUTNaRUxFMUJRVTBzUlVGQlJTeHZRa0ZCYjBJN2NVSkJRemRDTzJsQ1FVTkdMRVZCUTBRc1MwRkJTeXhGUVVGRkxGbEJRVmtzUTBGRGFrSXNVVUZCVVN4RlFVTlNMRkZCUVZFc1JVRkRVaXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTzI5Q1FVTldMRWxCUVVrc2RVUkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlR0M1FrRkRNVUlzVDBGQlR5eFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRPM0ZDUVVONlFqdHZRa0ZEUkN4TlFVRk5MR2RDUVVGblFpeEhRVUZITEhsRlFVRnRRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzI5Q1FVTjBSQ3hKUVVGSkxHZENRVUZuUWl4RlFVRkZPM2RDUVVOd1FpeFBRVUZQTEdkQ1FVRm5RaXhEUVVGRExGRkJRVkVzUTBGQlF6dHhRa0ZEYkVNN2IwSkJRMFFzVDBGQlR5eEpRVUZKTEVOQlFVTTdaMEpCUTJRc1EwRkJReXhGUVVORUxGRkJRVkVzUTBGQlF5eHRRa0ZCYlVJc1NVRkJTU3g1UkVGQmFVSXNRMEZEYkVRc1JVRkRSQ3hSUVVGUkxFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGRGRFTXNXVUZEVHl4RFFVTmFPME5CUTBZc1EwRkJReXhEUVVGRE8wRkJSVWtzVFVGQlRTeHpRa0ZCYzBJc1IwRkJSeXh2UkVGQlVTeERRVUZETzBsQlF6ZERMRWxCUVVrc1JVRkJSU3hyUWtGQmEwSTdTVUZEZUVJc1QwRkJUeXhGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSVHRSUVVOeVF5eFBRVUZQTEdOQlFXTXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZEY0VRc1NVRkJTU3hEUVVGRExFdEJRVXM3VVVGRFVpeHJSVUZCYTBVN1VVRkRiRVVzT0VOQlFUaERPMUZCUXpsRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMR2REUVVGblF5eERRVUZETEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1VVRkJVU3hEUVVOb1JTeERRVU5HTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUTBRc1QwRkJUeXhGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVTdVVUZEYWtJc1QwRkJUeXhEUVVOTUxFdEJRVXNzUTBGQlF5eHZSRUZCWjBJc1EwRkJRenRaUVVOMlFpeExRVUZMTEVOQlFVTXNVVUZCVVR0WlFVTmtMRGhDUVVFNFFqdFpRVU01UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFdEJRVXNzY1VSQlFXbENMRWxCUVVrc1MwRkJTeXhEUVVGRExFZEJRVWNzUzBGQlN5dzRRMEZCVlN4RFFVRkRMRU5CUXpsRUxFTkJRVU03U1VGRFNpeERRVUZETzBOQlEwWXNRMEZCUXl4RFFVRkRPMEZCUlVrc1RVRkJUU3h6UWtGQmMwSXNSMEZCUnl4dlJFRkJVU3hEUVVGRE8wbEJRemRETEVsQlFVa3NSVUZCUlN4clFrRkJhMEk3U1VGRGVFSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlR0UlFVTnlReXhQUVVGUExHTkJRV01zUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGRGNFUXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zVVVGQlVTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMR2REUVVGblF5eERRVUZETEVOQlFVTXNRMEZEZEVVc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRFJDeFBRVUZQTEVWQlFVVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSVHRSUVVOcVFpeFBRVUZQTEVOQlEwd3NTMEZCU3l4RFFVRkRMRzlFUVVGblFpeERRVUZETzFsQlEzWkNMRXRCUVVzc1EwRkJReXhSUVVGUk8xbEJRMlFzSzBKQlFTdENPMWxCUXk5Q0xFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NTMEZCU3l4elJFRkJhMElzU1VGQlNTeExRVUZMTEVOQlFVTXNSMEZCUnl4TFFVRkxMQ3REUVVGWExFTkJRVU1zUTBGRGFFVXNRMEZCUXp0SlFVTktMRU5CUVVNN1EwRkRSaXhEUVVGRExFTkJRVU03UVVGRlNTeE5RVUZOTEhOQ1FVRnpRaXhIUVVGSExHOUVRVUZSTEVOQlFVTTdTVUZETjBNc1NVRkJTU3hGUVVGRkxHdENRVUZyUWp0SlFVTjRRaXhQUVVGUExFVkJRVVVzUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRk8xRkJRM0pETEU5QlFVODdXVUZEVEN4UlFVRlJMRVZCUVVVc1kwRkJZeXhEUVVOMFFpeFJRVUZSTEVWQlExSXNVVUZCVVN4RlFVTlNMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFVkJRVVU3WjBKQlEySXNTVUZCU1N4MVJFRkJZU3hEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTzI5Q1FVTTNRaXhOUVVGTkxGVkJRVlVzUjBGQk1FSXNjMFZCUVdNc1EwRkRkRVFzVlVGQlZTeEZRVU5XTzNkQ1FVTkZMRlZCUVZVc1JVRkJSU3hMUVVGTE8zRkNRVU5zUWl4RFFVTkdMRU5CUVVNN2IwSkJRMFlzSzBSQlFYRkNMRU5CUTI1Q0xGVkJRVlVzUlVGRFZpeDVSVUZCYlVJc1EwRkJReXhWUVVGVkxFTkJRVU1zUlVGREwwSXNVVUZCVVN4RFFVTlVMRU5CUVVNN2IwSkJRMFlzVDBGQlR5eFZRVUZWTEVOQlFVTTdhVUpCUTI1Q08yZENRVVZFTEU5QlFVOHNWVUZCVlN4RFFVRkRPMWxCUTNCQ0xFTkJRVU1zUlVGRFJDeEpRVUZKTEVOQlEwdzdXVUZEUkN4UlFVRlJMR3REUVVOSUxGRkJRVkVzUzBGRFdDeHhRa0ZCY1VJc1JVRkJSU3hMUVVGTExFZEJRemRDTzFsQlEwUXNaVUZCWlN4RlFVRkZMRWxCUVVrN1UwRkRkRUlzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZEUkN4alFVRmpMRVZCUVVVc1EwRkJReXhGUVVGRkxGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVXNWVUZCVlN4RlFVRkZMRVZCUVVVc1JVRkJSVHRSUVVOeVJDeE5RVUZOTEU5QlFVOHNSMEZKVUR0WlFVTktPMmRDUVVORkxFdEJRVXNzUlVGQlJTd3dSRUZCYTBJN1owSkJRM3BDTEVsQlFVa3NSVUZCUlN4NVEwRkJReXhEUVVGRExHdENRVUZyUWl4RFFVRkRPMmRDUVVNelFpeEpRVUZKTEVWQlFVVXNkVVJCUVVNc2MwVkJRWFZDTEVsQlFVTXNTMEZCU3l4RlFVRkZMRkZCUVZFc1EwRkJReXhMUVVGTExGZEJRVWs3WVVGRGVrUTdXVUZEUkR0blFrRkRSU3hMUVVGTExFVkJRVVVzTmtSQlFYRkNPMmRDUVVNMVFpeEpRVUZKTEVWQlFVVXNlVU5CUVVNc1EwRkJReXhsUVVGbExFTkJRVU03WjBKQlEzaENMRWxCUVVrc1JVRkJSU3gxUkVGQlF5eHRSVUZCYjBJc1NVRkJReXhMUVVGTExFVkJRVVVzVVVGQlVTeERRVUZETEV0QlFVc3NWMEZCU1R0aFFVTjBSRHRaUVVORU8yZENRVU5GTEV0QlFVc3NSVUZCUlN3MFJFRkJiMEk3WjBKQlF6TkNMRWxCUVVrc1JVRkJSU3g1UTBGQlF5eERRVUZETEdGQlFXRXNRMEZCUXp0blFrRkRkRUlzU1VGQlNTeEZRVUZGTEhWRVFVRkRMR2xGUVVGclFpeEpRVUZETEV0QlFVc3NSVUZCUlN4UlFVRlJMRU5CUVVNc1MwRkJTeXhYUVVGSk8yRkJRM0JFTzFOQlEwWXNRMEZCUXp0UlFVVkdMRTlCUVU4c1EwRkRUQ3hwUmtGRFJTdzJSVUZCVXl4NVEwRkJReXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRmRCUVZVc1JVRkRla01zZFVSQlFVTXNNRVZCUVdkQ0xFbEJRMllzUzBGQlN5eEZRVUZETEdGQlFXRXNSVUZEYmtJc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGRGFFSXNTMEZCU3l4RlFVRkZMRmxCUVZrc1EwRkRha0lzVVVGQlVTeEZRVU5TTEZGQlFWRXNSVUZEVWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRk8zZENRVU5XTEVsQlFVa3NkVVJCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUczBRa0ZETVVJc1QwRkJUeXhQUVVGUExFTkJRVU1zVlVGQlZTeERRVUZETzNsQ1FVTXpRanQzUWtGRFJDeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExIbEZRVUZ0UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8zZENRVU4wUkN4SlFVRkpMR2RDUVVGblFpeEZRVUZGT3pSQ1FVTndRaXhQUVVGUExHZENRVUZuUWl4RFFVRkRMRlZCUVZVc1EwRkJRenQ1UWtGRGNFTTdkMEpCUTBRc1QwRkJUeXhKUVVGSkxFTkJRVU03YjBKQlEyUXNRMEZCUXl4RlFVTkVMRkZCUVZFc1EwRkJReXh4UWtGQmNVSXNTVUZCU1N3eVJFRkJiVUlzUTBGRGRFUXNSVUZEUkN4UlFVRlJMRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVUZETEZWQlFWVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkRkRU1zV1VGRFR5eERRVU5hTEVOQlFVTTdTVUZEU2l4RFFVRkRPME5CUTBZc1EwRkJReXhEUVVGRE8wRkJSVWtzVFVGQlRTeHhRa0ZCY1VJc1IwRkJSeXh2UkVGQlVTeERRVUZETzBsQlF6VkRMRWxCUVVrc1JVRkJSU3hwUWtGQmFVSTdTVUZEZGtJc1QwRkJUeXhGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSVHRSUVVOeVF5eFBRVUZQTzFsQlEwd3NVVUZCVVN4RlFVRkZMR05CUVdNc1EwRkRkRUlzVVVGQlVTeEZRVU5TTEZGQlFWRXNSVUZEVWl4RFFVRkRMRlZCUVZVc1JVRkJSU3hGUVVGRk8yZENRVU5pTEVsQlFVa3NkVVJCUVdFc1EwRkJReXhWUVVGVkxFTkJRVU1zUlVGQlJUdHZRa0ZETjBJc1RVRkJUU3hWUVVGVkxFZEJRVEJDTEhORlFVRmpMRU5CUTNSRUxGVkJRVlVzUlVGRFZqdDNRa0ZEUlN4VFFVRlRMRVZCUVVVc1MwRkJTenR4UWtGRGFrSXNRMEZEUml4RFFVRkRPMjlDUVVOR0xDdEVRVUZ4UWl4RFFVTnVRaXhWUVVGVkxFVkJRMVlzZVVWQlFXMUNMRU5CUVVNc1ZVRkJWU3hEUVVGRExFVkJReTlDTEZGQlFWRXNRMEZEVkN4RFFVRkRPMjlDUVVOR0xFOUJRVThzVlVGQlZTeERRVUZETzJsQ1FVTnVRanRuUWtGRlJDeFBRVUZQTEZWQlFWVXNRMEZCUXp0WlFVTndRaXhEUVVGRExFVkJRMFFzU1VGQlNTeERRVU5NTzFsQlEwUXNVVUZCVVN4clEwRkRTQ3hSUVVGUkxFdEJRMWdzYjBKQlFXOUNMRVZCUVVVc1MwRkJTeXhIUVVNMVFqdFpRVU5FTEdWQlFXVXNSVUZCUlN4SlFVRkpPMU5CUTNSQ0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlEwUXNZMEZCWXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEZWQlFWVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVOMFJDeHBSa0ZEUlN3MlJVRkJVeXg1UTBGQlF5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExGZEJRVlVzUlVGRGVFTXNkVVJCUVVNc01FVkJRV2RDTEVsQlEyWXNTMEZCU3l4RlFVRkRMRmxCUVZrc1JVRkRiRUlzVDBGQlR5eEZRVUZGTzI5Q1FVTlFPM2RDUVVORkxFdEJRVXNzUlVGQlJTeE5RVUZOTzNkQ1FVTmlMRWxCUVVrc1JVRkJSU3g1UTBGQlF5eERRVUZETEdGQlFXRXNRMEZCUXp0M1FrRkRkRUlzU1VGQlNTeEZRVUZGTEhWRVFVRkRMR2RGUVVGcFFpeEpRVUZETEV0QlFVc3NSVUZCUlN4UlFVRlJMRU5CUVVNc1MwRkJTeXhYUVVGSk8zRkNRVU51UkR0dlFrRkRSRHQzUWtGRFJTeExRVUZMTEVWQlFVVXNVVUZCVVR0M1FrRkRaaXhKUVVGSkxFVkJRVVVzZVVOQlFVTXNRMEZCUXl4bFFVRmxMRU5CUVVNN2QwSkJRM2hDTEVsQlFVa3NSVUZCUlN4MVJFRkJReXhyUlVGQmJVSXNTVUZCUXl4TFFVRkxMRVZCUVVVc1VVRkJVU3hEUVVGRExFdEJRVXNzVjBGQlNUdHhRa0ZEY2tRN2IwSkJRMFE3ZDBKQlEwVXNTMEZCU3l4RlFVRkZMRTlCUVU4N2QwSkJRMlFzU1VGQlNTeEZRVUZGTEhsRFFVRkRMRU5CUVVNc1kwRkJZeXhEUVVGRE8zZENRVU4yUWl4SlFVRkpMRVZCUVVVc2RVUkJRVU1zYVVWQlFXdENMRWxCUVVNc1MwRkJTeXhGUVVGRkxGRkJRVkVzUTBGQlF5eExRVUZMTEZkQlFVazdjVUpCUTNCRU8ybENRVU5HTEVWQlEwUXNTMEZCU3l4RlFVRkZMRmxCUVZrc1EwRkRha0lzVVVGQlVTeEZRVU5TTEZGQlFWRXNSVUZEVWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRk8yOUNRVU5XTEVsQlFVa3NkVVJCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdDNRa0ZETVVJc1QwRkJUeXhQUVVGUExFTkJRVU1zVTBGQlV5eERRVUZETzNGQ1FVTXhRanR2UWtGRFJDeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExIbEZRVUZ0UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8yOUNRVU4wUkN4SlFVRkpMR2RDUVVGblFpeEZRVUZGTzNkQ1FVTndRaXhQUVVGUExHZENRVUZuUWl4RFFVRkRMRk5CUVZNc1EwRkJRenR4UWtGRGJrTTdiMEpCUTBRc1QwRkJUeXhKUVVGSkxFTkJRVU03WjBKQlEyUXNRMEZCUXl4RlFVTkVMRkZCUVZFc1EwRkJReXh2UWtGQmIwSXNRMEZET1VJc1JVRkRSQ3hSUVVGUkxFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGRGRFTXNXVUZEVHl4RFFVTmFPME5CUTBZc1EwRkJReXhEUVVGRE8wRkJSVWtzVFVGQlRTeHhRa0ZCY1VJc1IwRkJSeXh2UkVGQlVTeERRVUZETzBsQlF6VkRMRWxCUVVrc1JVRkJSU3hwUWtGQmFVSTdTVUZEZGtJc1QwRkJUeXhGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSVHRSUVVOeVF5eE5RVUZOTEdOQlFXTXNSMEZCUnl3d1JFRkJhVUlzUTBGRGRFTXNLMFJCUVhGQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVWQlF5OUNMRkZCUVZFc1EwRkRWQ3hEUVVGRE8xRkJRMFlzVFVGQlRTeG5RMEZCWjBNc1IwRkJSeXhqUVVGakxFTkJRVU1zVFVGQlRUdFpRVU0xUkN4RFFVRkRMRU5CUVVNc1kwRkJZeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXh2UlVGQlpTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMWxCUTNCRUxFTkJRVU1zUTBGQlF5eERRVUZETEhkRlFVRnRRaXhEUVVGRExGRkJRVkVzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0UlFVTXZReXhOUVVGTkxEWkNRVUUyUWl4SFFVRkhMR05CUVdNc1EwRkJReXhOUVVGTk8xbEJRM3BFTEVOQlFVTXNRMEZCUXl4alFVRmpMRU5CUVVNc1MwRkJTeXhEUVVGRExHZEZRVUZsTEVOQlFVTTdXVUZEZGtNc1EwRkJReXhEUVVGRExIZEZRVUZ0UWl4RFFVRkRMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dFJRVU01UXl4UFFVRlBPMWxCUTB3c1VVRkJVU3hGUVVGRkxHTkJRV01zUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGRGJFUXNjMFZCUVdNc1EwRkJReXhGUVVGRkxFVkJRVVU3WjBKQlEycENMR1ZCUVdVc1JVRkJSU3hMUVVGTE8yRkJRM1pDTEVOQlFVTXNRMEZEU0R0WlFVTkVMRkZCUVZFc2EwTkJRMGdzVVVGQlVTeExRVU5ZTERCQ1FVRXdRaXhGUVVGRkxHZERRVUZuUXp0dlFrRkRNVVFzUTBGQlF5eERRVUZETEV0QlFVczdiMEpCUTFBc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5d3dRa0ZCTUVJc1JVRkRka01zWjBOQlFXZERMRVZCUVVVc05rSkJRVFpDTzI5Q1FVTTNSQ3hEUVVGRExFTkJRVU1zUzBGQlN6dHZRa0ZEVUN4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExHZERRVUZuUXl4SFFVTTVRenRaUVVORUxHVkJRV1VzUlVGQlJTeEpRVUZKTzFOQlEzUkNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJRMFFzWTBGQll5eEZRVUZGTEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxGVkJRVlVzUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVTjBSQ3hwUmtGRFJTdzJSVUZCVXl4NVEwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eFhRVUZWTEVWQlEzQkRMSFZFUVVGRExEQkZRVUZuUWl4SlFVTm1MRXRCUVVzc1JVRkJReXhQUVVGUExFVkJRMklzVDBGQlR5eEZRVUZGTzI5Q1FVTlFPM2RDUVVORkxFdEJRVXNzUlVGQlJTeFBRVUZQTzNkQ1FVTmtMRWxCUVVrc1JVRkJSU3g1UTBGQlF5eERRVUZETEdOQlFXTXNRMEZCUXp0M1FrRkRka0lzU1VGQlNTeEZRVUZGTEhWRVFVRkRMRFJFUVVGaExFbEJRVU1zUzBGQlN5eEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRmRCUVVrN2NVSkJReTlETzI5Q1FVTkVPM2RDUVVORkxFdEJRVXNzUlVGQlJTeFBRVUZQTzNkQ1FVTmtMRWxCUVVrc1JVRkJSU3g1UTBGQlF5eERRVUZETEdOQlFXTXNRMEZCUXp0M1FrRkRka0lzU1VGQlNTeEZRVUZGTEhWRVFVRkRMRFJFUVVGaExFbEJRVU1zUzBGQlN5eEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRmRCUVVrN2NVSkJReTlETzJsQ1FVTkdMRVZCUTBRc1MwRkJTeXhGUVVGRkxGbEJRVmtzUTBGRGFrSXNVVUZCVVN4RlFVTlNMRkZCUVZFc1JVRkRVaXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMR1ZCUVdVc1JVRkRjRU1zUTBGQlF5d3lSRUZCYTBJc1EwRkJReXhSUVVGUkxFTkJRVU1zVjBGQlZ5eERRVUZETzI5Q1FVTjJReXhEUVVGRExIZEZRVUZ0UWl4RFFVRkRMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU03ZDBKQlEzaERMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zWjBOQlFXZERPM2RDUVVNelF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMREJDUVVFd1FpeERRVUZETEVOQlFVTTdiMEpCUTNwRExFbEJRVWtzUTBGRFVDeEZRVU5FTEZGQlFWRXNSVUZCUlN4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVTjBReXhaUVVOUExFTkJRMW83UTBGRFJpeERRVUZETEVOQlFVTTdRVUZGU1N4TlFVRk5MSEZDUVVGeFFpeEhRVUZITEc5RVFVRlJMRU5CUVVNN1NVRkROVU1zU1VGQlNTeEZRVUZGTEdsQ1FVRnBRanRKUVVOMlFpeFBRVUZQTEVWQlFVVXNRMEZEVUN4UlFVRlJMRVZCUTFJc1VVRkJVU3hGUVVOU0xFdEJRWEZFTEVWQlEzSkVMRVZCUVVVN1VVRkRSaXhQUVVGUE8xbEJRMHdzVVVGQlVTeEZRVUZGTEdOQlFXTXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVTdaMEpCUTJ4RUxFbEJRVWtzYjBWQlFXVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSVHR2UWtGRGRrSXNUVUZCVFN4RlFVRkZMRkZCUVZFc1JVRkJSU3hKUVVGSkxFVkJRVVVzUjBGQlJ5eExRVUZMTEVOQlFVTTdiMEpCUldwRExFbEJRVWtzVVVGQlVTeExRVUZMTEU5QlFVOHNSVUZCUlR0M1FrRkRlRUlzVFVGQlRTeFBRVUZQTEVkQlFUUkNMSE5GUVVGakxFTkJRVU1zUlVGQlJTeEZRVUZGT3pSQ1FVTXhSQ3hqUVVGakxFVkJRVVVzU1VGQlNUdDVRa0ZEY2tJc1EwRkJReXhEUVVGRE8zZENRVU5JTEU5QlFVOHNUMEZCVHl4RFFVRkRPM0ZDUVVOb1FqdDVRa0ZCVFN4SlFVRkpMRkZCUVZFc1MwRkJTeXhMUVVGTExFVkJRVVU3ZDBKQlF6ZENMRTFCUVUwc1QwRkJUeXhIUVVFMFFpeHpSVUZCWXl4RFFVRkRMRVZCUVVVc1JVRkJSVHMwUWtGRE1VUXNXVUZCV1N4RlFVRkZMRWxCUVVrN2VVSkJRMjVDTEVOQlFVTXNRMEZCUXp0M1FrRkRTQ3hQUVVGUExFOUJRVThzUTBGQlF6dHhRa0ZEYUVJN2FVSkJRMFk3WjBKQlJVUXNUMEZCVHl4RlFVRkZMRU5CUVVNN1dVRkRXaXhEUVVGRExFTkJRVU03V1VGRFJpeFJRVUZSTEd0RFFVTklMRkZCUVZFc1MwRkRXQ3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEV0QlFVc3NUMEZCVHp0dlFrRkRla0lzUTBGQlF5eERRVUZETERKQ1FVRXlRanR2UWtGRE4wSXNRMEZCUXl4RFFVRkRMSGxDUVVGNVFpeERRVUZETEVWQlFVVXNTMEZCU3l4RFFVRkRMRWxCUVVrc1IwRkRNME03V1VGRFJDeGxRVUZsTEVWQlFVVXNTVUZCU1R0VFFVTjBRaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVU5FTEdOQlFXTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFZRVUZWTEVWQlFVVXNSVUZCUlN4RlFVRkZPMUZCUTNKRUxFMUJRVTBzUzBGQlN5eEhRVUZITEcxRVFVRlhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU03VVVGRmFFTXNUMEZCVHl4RFFVTk1MR2xHUVVORkxEWkZRVUZUTEhsRFFVRkRMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNWMEZCVlN4RlFVTjZReXdyUlVGQlN5eFRRVUZUTEVWQlFVTXNaMEpCUVdkQ0xHbENRVU0zUWl4MVJFRkJReXc0UkVGQlZTeEpRVU5VTEV0QlFVc3NSVUZCUXl4cFFrRkJhVUlzUlVGRGRrSXNUMEZCVHl4RlFVRkZPMmREUVVOUU8yOURRVU5GTEV0QlFVc3NSVUZCUlN4SlFVRkpPMjlEUVVOWUxFbEJRVWtzUlVGQlJTeDVRMEZCUXl4RFFVRkRMSFZDUVVGMVFpeERRVUZETzI5RFFVTm9ReXhKUVVGSkxFVkJRVVVzZFVSQlFVTXNaMFZCUVdsQ0xFbEJRVU1zUzBGQlN5eEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRmRCUVVrN2IwTkJRMnhFTEZWQlFWVXNSVUZCUlN4SFFVRkhPMmxEUVVOb1FqdG5RMEZEUkR0dlEwRkRSU3hMUVVGTExFVkJRVVVzVDBGQlR6dHZRMEZEWkN4SlFVRkpMRVZCUVVVc2VVTkJRVU1zUTBGQlF5eDNRa0ZCZDBJc1EwRkJRenR2UTBGRGFrTXNTVUZCU1N4RlFVRkZMRU5CUTBvc2RVUkJRVU1zYVVWQlFXdENMRWxCUVVNc1MwRkJTeXhGUVVGRkxGRkJRVkVzUTBGQlF5eExRVUZMTEVWQlFVVXNTVUZCU1N4RlFVRkZMRU5CUVVNc1MwRkJTeXhYUVVGSkxFTkJRelZFTzI5RFFVTkVMRlZCUVZVc1JVRkJSU3hIUVVGSE8ybERRVU5vUWp0blEwRkRSRHR2UTBGRFJTeExRVUZMTEVWQlFVVXNTMEZCU3p0dlEwRkRXaXhKUVVGSkxFVkJRVVVzZVVOQlFVTXNRMEZCUXl4elFrRkJjMElzUTBGQlF6dHZRMEZETDBJc1NVRkJTU3hGUVVGRkxIVkVRVUZETEN0RVFVRm5RaXhKUVVGRExFdEJRVXNzUlVGQlJTeFJRVUZSTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRExFdEJRVXNzVjBGQlNUdHZRMEZETDBRc1ZVRkJWU3hGUVVGRkxFZEJRVWM3YVVOQlEyaENPMmREUVVORU8yOURRVU5GTEV0QlFVc3NSVUZCUlN4TFFVRkxPMjlEUVVOYUxFbEJRVWtzUlVGQlJTeDVRMEZCUXl4RFFVRkRMSE5DUVVGelFpeERRVUZETzI5RFFVTXZRaXhKUVVGSkxFVkJRVVVzZFVSQlFVTXNLMFJCUVdkQ0xFbEJRVU1zUzBGQlN5eEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRVZCUVVVc1NVRkJTU3hGUVVGRkxFTkJRVU1zUzBGQlN5eFhRVUZKTzI5RFFVTXZSQ3hWUVVGVkxFVkJRVVVzUjBGQlJ6dHBRMEZEYUVJN1owTkJRMFE3YjBOQlEwVXNTMEZCU3l4RlFVRkZMRlZCUVZVN2IwTkJRMnBDTEVsQlFVa3NSVUZCUlN4NVEwRkJReXhEUVVGRExESkNRVUV5UWl4RFFVRkRPMjlEUVVOd1F5eEpRVUZKTEVWQlFVVXNRMEZEU2l4MVJFRkJReXh2UlVGQmNVSXNTVUZCUXl4TFFVRkxMRVZCUVVVc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVWQlFVVXNRMEZCUXl4TFFVRkxMRmRCUVVrc1EwRkRMMFE3YjBOQlEwUXNWVUZCVlN4RlFVRkZMRWRCUVVjN2FVTkJRMmhDT3paQ1FVTkdMRVZCUTBRc1MwRkJTeXhGUVVGRkxGbEJRVmtzUTBGRGFrSXNVVUZCVVN4RlFVTlNMRkZCUVZFc1JVRkRVaXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlExWXNiMFZCUVdVc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTd3dSRUZCYVVJc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETzJkRFFVTjZSQ3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEdOQlFXTTdaME5CUTNoQ0xFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNlVUpCUVhsQ0xFVkJRM2hETEZGQlFWRXNRMEZCUXl4NVFrRkJlVUlzUTBGRGJrTXNSVUZEUkN4UlFVRlJMRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlN4RFFVRkRMRmRCUTI1RkxFVkJRMFlzZFVSQlFVTXNPRVJCUVZVc1NVRkRWQ3hMUVVGTExFVkJRVU1zWlVGQlpTeEZRVU55UWl4TFFVRkxMRVZCUVVNc1dVRkJXU3hGUVVOc1FpeFBRVUZQTEVWQlFVVTdaME5CUTFBN2IwTkJRMFVzUzBGQlN5eEZRVUZGTEVsQlFVazdiME5CUTFnc1NVRkJTU3hGUVVGRkxIbERRVUZETEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU03YjBOQlEyaERMRlZCUVZVc1JVRkJSU3hIUVVGSE8yOURRVU5tTEVsQlFVa3NSVUZCUlN4MVJFRkJReXhuUlVGQmFVSXNTVUZCUXl4TFFVRkxMRVZCUVVVc1VVRkJVU3hEUVVGRExFdEJRVXNzVjBGQlNUdHBRMEZEYmtRN1owTkJRMFE3YjBOQlEwVXNTMEZCU3l4RlFVRkZMRTlCUVU4N2IwTkJRMlFzU1VGQlNTeEZRVUZGTEhsRFFVRkRMRU5CUVVNc2QwSkJRWGRDTEVOQlFVTTdiME5CUTJwRExGVkJRVlVzUlVGQlJTeEhRVUZITzI5RFFVTm1MRWxCUVVrc1JVRkJSU3hEUVVOS0xIVkVRVUZETEdsRlFVRnJRaXhKUVVGRExFdEJRVXNzUlVGQlJTeFJRVUZSTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWxCUVVrc1JVRkJSU3hMUVVGTExGZEJRVWtzUTBGRE0wUTdhVU5CUTBZN1owTkJRMFE3YjBOQlEwVXNTMEZCU3l4RlFVRkZMRXRCUVVzN2IwTkJRMW9zU1VGQlNTeEZRVUZGTEhsRFFVRkRMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTTdiME5CUXk5Q0xGVkJRVlVzUlVGQlJTeEhRVUZITzI5RFFVTm1MRWxCUVVrc1JVRkJSU3gxUkVGQlF5d3JSRUZCWjBJc1NVRkJReXhMUVVGTExFVkJRVVVzVVVGQlVTeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhYUVVGSk8ybERRVU12UkR0blEwRkRSRHR2UTBGRFJTeExRVUZMTEVWQlFVVXNTMEZCU3p0dlEwRkRXaXhKUVVGSkxFVkJRVVVzZVVOQlFVTXNRMEZCUXl4elFrRkJjMElzUTBGQlF6dHZRMEZETDBJc1ZVRkJWU3hGUVVGRkxFZEJRVWM3YjBOQlEyWXNTVUZCU1N4RlFVRkZMSFZFUVVGRExDdEVRVUZuUWl4SlFVRkRMRXRCUVVzc1JVRkJSU3hSUVVGUkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVsQlFVa3NSVUZCUlN4TFFVRkxMRmRCUVVrN2FVTkJReTlFTzJkRFFVTkVPMjlEUVVORkxFdEJRVXNzUlVGQlJTeFZRVUZWTzI5RFFVTnFRaXhKUVVGSkxFVkJRVVVzZVVOQlFVTXNRMEZCUXl3eVFrRkJNa0lzUTBGQlF6dHZRMEZEY0VNc1NVRkJTU3hGUVVGRkxFTkJRMG9zZFVSQlFVTXNiMFZCUVhGQ0xFbEJRVU1zUzBGQlN5eEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRVZCUVVVc1NVRkJTU3hGUVVGRkxFdEJRVXNzVjBGQlNTeERRVU01UkR0dlEwRkRSQ3hWUVVGVkxFVkJRVVVzUjBGQlJ6dHBRMEZEYUVJN05rSkJRMFlzUlVGRFJDeExRVUZMTEVWQlFVVXNXVUZCV1N4RFFVTnFRaXhSUVVGUkxFVkJRMUlzVVVGQlVTeEZRVU5TTEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkRWaXh2UlVGQlpTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMREJFUVVGcFFpeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNN1owTkJRM3BFTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1dVRkJXVHRuUTBGRGRFSXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXgxUWtGQmRVSXNSVUZEZEVNc1VVRkJVU3hEUVVGRExIVkNRVUYxUWl4RFFVTnFReXhGUVVORUxGRkJRVkVzUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhGUVVGRkxFTkJRVU1zVjBGRGFrVXNZVUZEUlN4WlFVTkhMRU5CUTFvc1EwRkJRenRKUVVOS0xFTkJRVU03UTBGRFJpeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNVFjbTl3WlhKMGFXVnpMblJ6ZUQ4NE5qa3pJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUVGd2NGTjBZWFJsSUgwZ1puSnZiU0JjSWk0dUx5NHVMM055WXk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1FuVjBkRzl1U1dOdmJsTmxiR1ZqZENCOUlHWnliMjBnWENJdUxpOWpiMjF3YjI1bGJuUnpMMEoxZEhSdmJrbGpiMjVUWld4bFkzUmNJanRjYm1sdGNHOXlkQ0I3SUVOdmJHOXlVR2xqYTJWeUlIMGdabkp2YlNCY0lpNHVMMk52YlhCdmJtVnVkSE12UTI5c2IzSlFhV05yWlhKY0lqdGNibWx0Y0c5eWRDQjdJRWxqYjI1UWFXTnJaWElnZlNCbWNtOXRJRndpTGk0dlkyOXRjRzl1Wlc1MGN5OUpZMjl1VUdsamEyVnlYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQkJjbkp2ZDJobFlXUkJjbkp2ZDBsamIyNHNYRzRnSUVGeWNtOTNhR1ZoWkVKaGNrbGpiMjRzWEc0Z0lFRnljbTkzYUdWaFpFUnZkRWxqYjI0c1hHNGdJRUZ5Y205M2FHVmhaRlJ5YVdGdVoyeGxTV052Yml4Y2JpQWdRWEp5YjNkb1pXRmtUbTl1WlVsamIyNHNYRzRnSUVWa1oyVlNiM1Z1WkVsamIyNHNYRzRnSUVWa1oyVlRhR0Z5Y0VsamIyNHNYRzRnSUVacGJHeERjbTl6YzBoaGRHTm9TV052Yml4Y2JpQWdSbWxzYkVoaFkyaDFjbVZKWTI5dUxGeHVJQ0JHYVd4c1UyOXNhV1JKWTI5dUxGeHVJQ0JHYjI1MFJtRnRhV3g1UTI5a1pVbGpiMjRzWEc0Z0lFWnZiblJHWVcxcGJIbElZVzVrUkhKaGQyNUpZMjl1TEZ4dUlDQkdiMjUwUm1GdGFXeDVUbTl5YldGc1NXTnZiaXhjYmlBZ1JtOXVkRk5wZW1WRmVIUnlZVXhoY21kbFNXTnZiaXhjYmlBZ1JtOXVkRk5wZW1WTVlYSm5aVWxqYjI0c1hHNGdJRVp2Ym5SVGFYcGxUV1ZrYVhWdFNXTnZiaXhjYmlBZ1JtOXVkRk5wZW1WVGJXRnNiRWxqYjI0c1hHNGdJRk5zYjNCd2FXNWxjM05CY21Ob2FYUmxZM1JKWTI5dUxGeHVJQ0JUYkc5d2NHbHVaWE56UVhKMGFYTjBTV052Yml4Y2JpQWdVMnh2Y0hCcGJtVnpjME5oY25SdmIyNXBjM1JKWTI5dUxGeHVJQ0JUZEhKdmEyVlRkSGxzWlVSaGMyaGxaRWxqYjI0c1hHNGdJRk4wY205clpWTjBlV3hsUkc5MGRHVmtTV052Yml4Y2JpQWdVM1J5YjJ0bFUzUjViR1ZUYjJ4cFpFbGpiMjRzWEc0Z0lGTjBjbTlyWlZkcFpIUm9TV052Yml4Y2JpQWdWR1Y0ZEVGc2FXZHVRMlZ1ZEdWeVNXTnZiaXhjYmlBZ1ZHVjRkRUZzYVdkdVRHVm1kRWxqYjI0c1hHNGdJRlJsZUhSQmJHbG5ibEpwWjJoMFNXTnZiaXhjYm4wZ1puSnZiU0JjSWk0dUwyTnZiWEJ2Ym1WdWRITXZhV052Ym5OY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUVSRlJrRlZURlJmUms5T1ZGOUdRVTFKVEZrc1hHNGdJRVJGUmtGVlRGUmZSazlPVkY5VFNWcEZMRnh1SUNCR1QwNVVYMFpCVFVsTVdTeGNibjBnWm5KdmJTQmNJaTR1TDJOdmJuTjBZVzUwYzF3aU8xeHVhVzF3YjNKMElIdGNiaUFnWjJWMFRtOXVSR1ZzWlhSbFpFVnNaVzFsYm5SekxGeHVJQ0JwYzFSbGVIUkZiR1Z0Wlc1MExGeHVJQ0J5WldSeVlYZFVaWGgwUW05MWJtUnBibWRDYjNnc1hHNTlJR1p5YjIwZ1hDSXVMaTlsYkdWdFpXNTBYQ0k3WEc1cGJYQnZjblFnZXlCdGRYUmhkR1ZGYkdWdFpXNTBMQ0J1WlhkRmJHVnRaVzUwVjJsMGFDQjlJR1p5YjIwZ1hDSXVMaTlsYkdWdFpXNTBMMjExZEdGMFpVVnNaVzFsYm5SY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUdkbGRFSnZkVzVrVkdWNGRFVnNaVzFsYm5Rc1hHNGdJR2RsZEVOdmJuUmhhVzVsY2tWc1pXMWxiblFzWEc1OUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MEwzUmxlSFJGYkdWdFpXNTBYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQnBjMEp2ZFc1a1ZHOURiMjUwWVdsdVpYSXNYRzRnSUdselRHbHVaV0Z5Uld4bGJXVnVkQ3hjYmlBZ2FYTk1hVzVsWVhKRmJHVnRaVzUwVkhsd1pTeGNibjBnWm5KdmJTQmNJaTR1TDJWc1pXMWxiblF2ZEhsd1pVTm9aV05yYzF3aU8xeHVhVzF3YjNKMElIdGNiaUFnUVhKeWIzZG9aV0ZrTEZ4dUlDQkZlR05oYkdsa2NtRjNSV3hsYldWdWRDeGNiaUFnUlhoallXeHBaSEpoZDB4cGJtVmhja1ZzWlcxbGJuUXNYRzRnSUVWNFkyRnNhV1J5WVhkVVpYaDBSV3hsYldWdWRDeGNiaUFnUm05dWRFWmhiV2xzZVZaaGJIVmxjeXhjYmlBZ1ZHVjRkRUZzYVdkdUxGeHVmU0JtY205dElGd2lMaTR2Wld4bGJXVnVkQzkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnWjJWMFRHRnVaM1ZoWjJVc0lIUWdmU0JtY205dElGd2lMaTR2YVRFNGJsd2lPMXh1YVcxd2IzSjBJSHNnUzBWWlV5QjlJR1p5YjIwZ1hDSXVMaTlyWlhselhDSTdYRzVwYlhCdmNuUWdleUJ5WVc1a2IyMUpiblJsWjJWeUlIMGdabkp2YlNCY0lpNHVMM0poYm1SdmJWd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1kyRnVRMmhoYm1kbFUyaGhjbkJ1WlhOekxGeHVJQ0JqWVc1SVlYWmxRWEp5YjNkb1pXRmtjeXhjYmlBZ1oyVjBRMjl0Ylc5dVFYUjBjbWxpZFhSbFQyWlRaV3hsWTNSbFpFVnNaVzFsYm5SekxGeHVJQ0JuWlhSVFpXeGxZM1JsWkVWc1pXMWxiblJ6TEZ4dUlDQm5aWFJVWVhKblpYUkZiR1Z0Wlc1MGN5eGNiaUFnYVhOVGIyMWxSV3hsYldWdWRGTmxiR1ZqZEdWa0xGeHVmU0JtY205dElGd2lMaTR2YzJObGJtVmNJanRjYm1sdGNHOXlkQ0I3SUdoaGMxTjBjbTlyWlVOdmJHOXlJSDBnWm5KdmJTQmNJaTR1TDNOalpXNWxMMk52YlhCaGNtbHpiMjV6WENJN1hHNXBiWEJ2Y25RZ2V5QmhjbkpoZVZSdlRXRndJSDBnWm5KdmJTQmNJaTR1TDNWMGFXeHpYQ0k3WEc1cGJYQnZjblFnZXlCeVpXZHBjM1JsY2lCOUlHWnliMjBnWENJdUwzSmxaMmx6ZEdWeVhDSTdYRzVjYm1OdmJuTjBJRVpQVGxSZlUwbGFSVjlTUlV4QlZFbFdSVjlKVGtOU1JVRlRSVjlUVkVWUUlEMGdNQzR4TzF4dVhHNWpiMjV6ZENCamFHRnVaMlZRY205d1pYSjBlU0E5SUNoY2JpQWdaV3hsYldWdWRITTZJSEpsWVdSdmJteDVJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTBzWEc0Z0lHRndjRk4wWVhSbE9pQkJjSEJUZEdGMFpTeGNiaUFnWTJGc2JHSmhZMnM2SUNobGJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZENrZ1BUNGdSWGhqWVd4cFpISmhkMFZzWlcxbGJuUXNYRzRnSUdsdVkyeDFaR1ZDYjNWdVpGUmxlSFFnUFNCbVlXeHpaU3hjYmlrZ1BUNGdlMXh1SUNCamIyNXpkQ0J6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE1nUFNCaGNuSmhlVlJ2VFdGd0tGeHVJQ0FnSUdkbGRGTmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQnBibU5zZFdSbFFtOTFibVJVWlhoMEtTeGNiaUFnS1R0Y2JpQWdjbVYwZFhKdUlHVnNaVzFsYm5SekxtMWhjQ2dvWld4bGJXVnVkQ2tnUFQ0Z2UxeHVJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lITmxiR1ZqZEdWa1JXeGxiV1Z1ZEVsa2N5NW5aWFFvWld4bGJXVnVkQzVwWkNrZ2ZIeGNiaUFnSUNBZ0lHVnNaVzFsYm5RdWFXUWdQVDA5SUdGd2NGTjBZWFJsTG1Wa2FYUnBibWRGYkdWdFpXNTBQeTVwWkZ4dUlDQWdJQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR05oYkd4aVlXTnJLR1ZzWlcxbGJuUXBPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWld4bGJXVnVkRHRjYmlBZ2ZTazdYRzU5TzF4dVhHNWpiMjV6ZENCblpYUkdiM0p0Vm1Gc2RXVWdQU0JtZFc1amRHbHZiaUE4VkQ0b1hHNGdJR1ZzWlcxbGJuUnpPaUJ5WldGa2IyNXNlU0JGZUdOaGJHbGtjbUYzUld4bGJXVnVkRnRkTEZ4dUlDQmhjSEJUZEdGMFpUb2dRWEJ3VTNSaGRHVXNYRzRnSUdkbGRFRjBkSEpwWW5WMFpUb2dLR1ZzWlcxbGJuUTZJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBLU0E5UGlCVUxGeHVJQ0JrWldaaGRXeDBWbUZzZFdVL09pQlVMRnh1S1RvZ1ZDQjhJRzUxYkd3Z2UxeHVJQ0JqYjI1emRDQmxaR2wwYVc1blJXeGxiV1Z1ZENBOUlHRndjRk4wWVhSbExtVmthWFJwYm1kRmJHVnRaVzUwTzF4dUlDQmpiMjV6ZENCdWIyNUVaV3hsZEdWa1JXeGxiV1Z1ZEhNZ1BTQm5aWFJPYjI1RVpXeGxkR1ZrUld4bGJXVnVkSE1vWld4bGJXVnVkSE1wTzF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUNobFpHbDBhVzVuUld4bGJXVnVkQ0FtSmlCblpYUkJkSFJ5YVdKMWRHVW9aV1JwZEdsdVowVnNaVzFsYm5RcEtTQS9QMXh1SUNBZ0lDaHBjMU52YldWRmJHVnRaVzUwVTJWc1pXTjBaV1FvYm05dVJHVnNaWFJsWkVWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlNsY2JpQWdJQ0FnSUQ4Z1oyVjBRMjl0Ylc5dVFYUjBjbWxpZFhSbFQyWlRaV3hsWTNSbFpFVnNaVzFsYm5SektGeHVJQ0FnSUNBZ0lDQWdJRzV2YmtSbGJHVjBaV1JGYkdWdFpXNTBjeXhjYmlBZ0lDQWdJQ0FnSUNCaGNIQlRkR0YwWlN4Y2JpQWdJQ0FnSUNBZ0lDQm5aWFJCZEhSeWFXSjFkR1VzWEc0Z0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSURvZ1pHVm1ZWFZzZEZaaGJIVmxLU0EvUDF4dUlDQWdJRzUxYkd4Y2JpQWdLVHRjYm4wN1hHNWNibU52Ym5OMElHOW1abk5sZEVWc1pXMWxiblJCWm5SbGNrWnZiblJTWlhOcGVtVWdQU0FvWEc0Z0lIQnlaWFpGYkdWdFpXNTBPaUJGZUdOaGJHbGtjbUYzVkdWNGRFVnNaVzFsYm5Rc1hHNGdJRzVsZUhSRmJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1ZHVjRkRVZzWlcxbGJuUXNYRzRwSUQwK0lIdGNiaUFnYVdZZ0tHbHpRbTkxYm1SVWIwTnZiblJoYVc1bGNpaHVaWGgwUld4bGJXVnVkQ2twSUh0Y2JpQWdJQ0J5WlhSMWNtNGdibVY0ZEVWc1pXMWxiblE3WEc0Z0lIMWNiaUFnY21WMGRYSnVJRzExZEdGMFpVVnNaVzFsYm5Rb1hHNGdJQ0FnYm1WNGRFVnNaVzFsYm5Rc1hHNGdJQ0FnZTF4dUlDQWdJQ0FnZURwY2JpQWdJQ0FnSUNBZ2NISmxka1ZzWlcxbGJuUXVkR1Y0ZEVGc2FXZHVJRDA5UFNCY0lteGxablJjSWx4dUlDQWdJQ0FnSUNBZ0lEOGdjSEpsZGtWc1pXMWxiblF1ZUZ4dUlDQWdJQ0FnSUNBZ0lEb2djSEpsZGtWc1pXMWxiblF1ZUNBclhHNGdJQ0FnSUNBZ0lDQWdJQ0FvY0hKbGRrVnNaVzFsYm5RdWQybGtkR2dnTFNCdVpYaDBSV3hsYldWdWRDNTNhV1IwYUNrZ0wxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBb2NISmxka1ZzWlcxbGJuUXVkR1Y0ZEVGc2FXZHVJRDA5UFNCY0ltTmxiblJsY2x3aUlEOGdNaUE2SURFcExGeHVJQ0FnSUNBZ0x5OGdZMlZ1ZEdWeWFXNW5JSFpsY25ScFkyRnNiSGtnYVhNZ2JtOXVMWE4wWVc1a1lYSmtMQ0JpZFhRZ1ptOXlJRVY0WTJGc2FXUnlZWGNnU1NCMGFHbHVhMXh1SUNBZ0lDQWdMeThnYVhRZ2JXRnJaWE1nYzJWdWMyVmNiaUFnSUNBZ0lIazZJSEJ5WlhaRmJHVnRaVzUwTG5rZ0t5QW9jSEpsZGtWc1pXMWxiblF1YUdWcFoyaDBJQzBnYm1WNGRFVnNaVzFsYm5RdWFHVnBaMmgwS1NBdklESXNYRzRnSUNBZ2ZTeGNiaUFnSUNCbVlXeHpaU3hjYmlBZ0tUdGNibjA3WEc1Y2JtTnZibk4wSUdOb1lXNW5aVVp2Ym5SVGFYcGxJRDBnS0Z4dUlDQmxiR1Z0Wlc1MGN6b2djbVZoWkc5dWJIa2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYU3hjYmlBZ1lYQndVM1JoZEdVNklFRndjRk4wWVhSbExGeHVJQ0JuWlhST1pYZEdiMjUwVTJsNlpUb2dLR1ZzWlcxbGJuUTZJRVY0WTJGc2FXUnlZWGRVWlhoMFJXeGxiV1Z1ZENrZ1BUNGdiblZ0WW1WeUxGeHVJQ0JtWVd4c1ltRmphMVpoYkhWbFB6b2dSWGhqWVd4cFpISmhkMVJsZUhSRmJHVnRaVzUwVzF3aVptOXVkRk5wZW1WY0lsMHNYRzRwSUQwK0lIdGNiaUFnWTI5dWMzUWdibVYzUm05dWRGTnBlbVZ6SUQwZ2JtVjNJRk5sZER4dWRXMWlaWEkrS0NrN1hHNWNiaUFnY21WMGRYSnVJSHRjYmlBZ0lDQmxiR1Z0Wlc1MGN6b2dZMmhoYm1kbFVISnZjR1Z5ZEhrb1hHNGdJQ0FnSUNCbGJHVnRaVzUwY3l4Y2JpQWdJQ0FnSUdGd2NGTjBZWFJsTEZ4dUlDQWdJQ0FnS0c5c1pFVnNaVzFsYm5RcElEMCtJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHbHpWR1Y0ZEVWc1pXMWxiblFvYjJ4a1JXeGxiV1Z1ZENrcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnVaWGRHYjI1MFUybDZaU0E5SUdkbGRFNWxkMFp2Ym5SVGFYcGxLRzlzWkVWc1pXMWxiblFwTzF4dUlDQWdJQ0FnSUNBZ0lHNWxkMFp2Ym5SVGFYcGxjeTVoWkdRb2JtVjNSbTl1ZEZOcGVtVXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ2JHVjBJRzVsZDBWc1pXMWxiblE2SUVWNFkyRnNhV1J5WVhkVVpYaDBSV3hsYldWdWRDQTlJRzVsZDBWc1pXMWxiblJYYVhSb0tHOXNaRVZzWlcxbGJuUXNJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnZiblJUYVhwbE9pQnVaWGRHYjI1MFUybDZaU3hjYmlBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0J5WldSeVlYZFVaWGgwUW05MWJtUnBibWRDYjNnb1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhkRmJHVnRaVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdaMlYwUTI5dWRHRnBibVZ5Uld4bGJXVnVkQ2h2YkdSRmJHVnRaVzUwS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdJQ0FnSUNrN1hHNWNiaUFnSUNBZ0lDQWdJQ0J1WlhkRmJHVnRaVzUwSUQwZ2IyWm1jMlYwUld4bGJXVnVkRUZtZEdWeVJtOXVkRkpsYzJsNlpTaHZiR1JGYkdWdFpXNTBMQ0J1WlhkRmJHVnRaVzUwS1R0Y2JseHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnVaWGRGYkdWdFpXNTBPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUc5c1pFVnNaVzFsYm5RN1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2RISjFaU3hjYmlBZ0lDQXBMRnh1SUNBZ0lHRndjRk4wWVhSbE9pQjdYRzRnSUNBZ0lDQXVMaTVoY0hCVGRHRjBaU3hjYmlBZ0lDQWdJQzh2SUhWd1pHRjBaU0J6ZEdGMFpTQnZibXg1SUdsbUlIZGxKM1psSUhObGRDQmhiR3dnYzJWc1pXTjBJSFJsZUhRZ1pXeGxiV1Z1ZEhNZ2RHOWNiaUFnSUNBZ0lDOHZJSFJvWlNCellXMWxJR1p2Ym5RZ2MybDZaVnh1SUNBZ0lDQWdZM1Z5Y21WdWRFbDBaVzFHYjI1MFUybDZaVHBjYmlBZ0lDQWdJQ0FnYm1WM1JtOXVkRk5wZW1WekxuTnBlbVVnUFQwOUlERmNiaUFnSUNBZ0lDQWdJQ0EvSUZzdUxpNXVaWGRHYjI1MFUybDZaWE5kV3pCZFhHNGdJQ0FnSUNBZ0lDQWdPaUJtWVd4c1ltRmphMVpoYkhWbElEOC9JR0Z3Y0ZOMFlYUmxMbU4xY25KbGJuUkpkR1Z0Um05dWRGTnBlbVVzWEc0Z0lDQWdmU3hjYmlBZ0lDQmpiMjF0YVhSVWIwaHBjM1J2Y25rNklIUnlkV1VzWEc0Z0lIMDdYRzU5TzF4dVhHNHZMeUF0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExWeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1lXTjBhVzl1UTJoaGJtZGxVM1J5YjJ0bFEyOXNiM0lnUFNCeVpXZHBjM1JsY2loN1hHNGdJRzVoYldVNklGd2lZMmhoYm1kbFUzUnliMnRsUTI5c2IzSmNJaXhjYmlBZ2NHVnlabTl5YlRvZ0tHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTd2dkbUZzZFdVcElEMCtJSHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ0xpNHVLSFpoYkhWbExtTjFjbkpsYm5SSmRHVnRVM1J5YjJ0bFEyOXNiM0lnSmlZZ2UxeHVJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MGN6b2dZMmhoYm1kbFVISnZjR1Z5ZEhrb1hHNGdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRITXNYRzRnSUNBZ0lDQWdJQ0FnWVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0FnSUNBZ0tHVnNLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdhR0Z6VTNSeWIydGxRMjlzYjNJb1pXd3VkSGx3WlNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnUHlCdVpYZEZiR1Z0Wlc1MFYybDBhQ2hsYkN3Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1J5YjJ0bFEyOXNiM0k2SUhaaGJIVmxMbU4xY25KbGJuUkpkR1Z0VTNSeWIydGxRMjlzYjNJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ09pQmxiRHRjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lDa3NYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJR0Z3Y0ZOMFlYUmxPaUI3WEc0Z0lDQWdJQ0FnSUM0dUxtRndjRk4wWVhSbExGeHVJQ0FnSUNBZ0lDQXVMaTUyWVd4MVpTeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQmpiMjF0YVhSVWIwaHBjM1J2Y25rNklDRWhkbUZzZFdVdVkzVnljbVZ1ZEVsMFpXMVRkSEp2YTJWRGIyeHZjaXhjYmlBZ0lDQjlPMXh1SUNCOUxGeHVJQ0JRWVc1bGJFTnZiWEJ2Ym1WdWREb2dLSHNnWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCMWNHUmhkR1ZFWVhSaElIMHBJRDArSUNoY2JpQWdJQ0E4UGx4dUlDQWdJQ0FnUEdneklHRnlhV0V0YUdsa1pHVnVQVndpZEhKMVpWd2lQbnQwS0Z3aWJHRmlaV3h6TG5OMGNtOXJaVndpS1gwOEwyZ3pQbHh1SUNBZ0lDQWdQRU52Ykc5eVVHbGphMlZ5WEc0Z0lDQWdJQ0FnSUhSNWNHVTlYQ0psYkdWdFpXNTBVM1J5YjJ0bFhDSmNiaUFnSUNBZ0lDQWdiR0ZpWld3OWUzUW9YQ0pzWVdKbGJITXVjM1J5YjJ0bFhDSXBmVnh1SUNBZ0lDQWdJQ0JqYjJ4dmNqMTdaMlYwUm05eWJWWmhiSFZsS0Z4dUlDQWdJQ0FnSUNBZ0lHVnNaVzFsYm5SekxGeHVJQ0FnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdJQ0FnSUNobGJHVnRaVzUwS1NBOVBpQmxiR1Z0Wlc1MExuTjBjbTlyWlVOdmJHOXlMRnh1SUNBZ0lDQWdJQ0FnSUdGd2NGTjBZWFJsTG1OMWNuSmxiblJKZEdWdFUzUnliMnRsUTI5c2IzSXNYRzRnSUNBZ0lDQWdJQ2w5WEc0Z0lDQWdJQ0FnSUc5dVEyaGhibWRsUFhzb1kyOXNiM0lwSUQwK0lIVndaR0YwWlVSaGRHRW9leUJqZFhKeVpXNTBTWFJsYlZOMGNtOXJaVU52Ykc5eU9pQmpiMnh2Y2lCOUtYMWNiaUFnSUNBZ0lDQWdhWE5CWTNScGRtVTllMkZ3Y0ZOMFlYUmxMbTl3Wlc1UWIzQjFjQ0E5UFQwZ1hDSnpkSEp2YTJWRGIyeHZjbEJwWTJ0bGNsd2lmVnh1SUNBZ0lDQWdJQ0J6WlhSQlkzUnBkbVU5ZXloaFkzUnBkbVVwSUQwK1hHNGdJQ0FnSUNBZ0lDQWdkWEJrWVhSbFJHRjBZU2g3SUc5d1pXNVFiM0IxY0RvZ1lXTjBhWFpsSUQ4Z1hDSnpkSEp2YTJWRGIyeHZjbEJwWTJ0bGNsd2lJRG9nYm5Wc2JDQjlLVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0F2UGx4dUlDQWdJRHd2UGx4dUlDQXBMRnh1ZlNrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCaFkzUnBiMjVEYUdGdVoyVkNZV05yWjNKdmRXNWtRMjlzYjNJZ1BTQnlaV2RwYzNSbGNpaDdYRzRnSUc1aGJXVTZJRndpWTJoaGJtZGxRbUZqYTJkeWIzVnVaRU52Ykc5eVhDSXNYRzRnSUhCbGNtWnZjbTA2SUNobGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVc0lIWmhiSFZsS1NBOVBpQjdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUM0dUxpaDJZV3gxWlM1amRYSnlaVzUwU1hSbGJVSmhZMnRuY205MWJtUkRiMnh2Y2lBbUppQjdYRzRnSUNBZ0lDQWdJR1ZzWlcxbGJuUnpPaUJqYUdGdVoyVlFjbTl3WlhKMGVTaGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXNJQ2hsYkNrZ1BUNWNiaUFnSUNBZ0lDQWdJQ0J1WlhkRmJHVnRaVzUwVjJsMGFDaGxiQ3dnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZbUZqYTJkeWIzVnVaRU52Ykc5eU9pQjJZV3gxWlM1amRYSnlaVzUwU1hSbGJVSmhZMnRuY205MWJtUkRiMnh2Y2l4Y2JpQWdJQ0FnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUgwcExGeHVJQ0FnSUNBZ1lYQndVM1JoZEdVNklIdGNiaUFnSUNBZ0lDQWdMaTR1WVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0FnSUM0dUxuWmhiSFZsTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUdOdmJXMXBkRlJ2U0dsemRHOXllVG9nSVNGMllXeDFaUzVqZFhKeVpXNTBTWFJsYlVKaFkydG5jbTkxYm1SRGIyeHZjaXhjYmlBZ0lDQjlPMXh1SUNCOUxGeHVJQ0JRWVc1bGJFTnZiWEJ2Ym1WdWREb2dLSHNnWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCMWNHUmhkR1ZFWVhSaElIMHBJRDArSUNoY2JpQWdJQ0E4UGx4dUlDQWdJQ0FnUEdneklHRnlhV0V0YUdsa1pHVnVQVndpZEhKMVpWd2lQbnQwS0Z3aWJHRmlaV3h6TG1KaFkydG5jbTkxYm1SY0lpbDlQQzlvTXo1Y2JpQWdJQ0FnSUR4RGIyeHZjbEJwWTJ0bGNseHVJQ0FnSUNBZ0lDQjBlWEJsUFZ3aVpXeGxiV1Z1ZEVKaFkydG5jbTkxYm1SY0lseHVJQ0FnSUNBZ0lDQnNZV0psYkQxN2RDaGNJbXhoWW1Wc2N5NWlZV05yWjNKdmRXNWtYQ0lwZlZ4dUlDQWdJQ0FnSUNCamIyeHZjajE3WjJWMFJtOXliVlpoYkhWbEtGeHVJQ0FnSUNBZ0lDQWdJR1ZzWlcxbGJuUnpMRnh1SUNBZ0lDQWdJQ0FnSUdGd2NGTjBZWFJsTEZ4dUlDQWdJQ0FnSUNBZ0lDaGxiR1Z0Wlc1MEtTQTlQaUJsYkdWdFpXNTBMbUpoWTJ0bmNtOTFibVJEYjJ4dmNpeGNiaUFnSUNBZ0lDQWdJQ0JoY0hCVGRHRjBaUzVqZFhKeVpXNTBTWFJsYlVKaFkydG5jbTkxYm1SRGIyeHZjaXhjYmlBZ0lDQWdJQ0FnS1gxY2JpQWdJQ0FnSUNBZ2IyNURhR0Z1WjJVOWV5aGpiMnh2Y2lrZ1BUNGdkWEJrWVhSbFJHRjBZU2g3SUdOMWNuSmxiblJKZEdWdFFtRmphMmR5YjNWdVpFTnZiRzl5T2lCamIyeHZjaUI5S1gxY2JpQWdJQ0FnSUNBZ2FYTkJZM1JwZG1VOWUyRndjRk4wWVhSbExtOXdaVzVRYjNCMWNDQTlQVDBnWENKaVlXTnJaM0p2ZFc1a1EyOXNiM0pRYVdOclpYSmNJbjFjYmlBZ0lDQWdJQ0FnYzJWMFFXTjBhWFpsUFhzb1lXTjBhWFpsS1NBOVBseHVJQ0FnSUNBZ0lDQWdJSFZ3WkdGMFpVUmhkR0VvZXlCdmNHVnVVRzl3ZFhBNklHRmpkR2wyWlNBL0lGd2lZbUZqYTJkeWIzVnVaRU52Ykc5eVVHbGphMlZ5WENJZ09pQnVkV3hzSUgwcFhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDOCtYRzRnSUNBZ1BDOCtYRzRnSUNrc1hHNTlLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR0ZqZEdsdmJrTm9ZVzVuWlVacGJHeFRkSGxzWlNBOUlISmxaMmx6ZEdWeUtIdGNiaUFnYm1GdFpUb2dYQ0pqYUdGdVoyVkdhV3hzVTNSNWJHVmNJaXhjYmlBZ2NHVnlabTl5YlRvZ0tHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTd2dkbUZzZFdVcElEMCtJSHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ1pXeGxiV1Z1ZEhNNklHTm9ZVzVuWlZCeWIzQmxjblI1S0dWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlN3Z0tHVnNLU0E5UGx4dUlDQWdJQ0FnSUNCdVpYZEZiR1Z0Wlc1MFYybDBhQ2hsYkN3Z2UxeHVJQ0FnSUNBZ0lDQWdJR1pwYkd4VGRIbHNaVG9nZG1Gc2RXVXNYRzRnSUNBZ0lDQWdJSDBwTEZ4dUlDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUdGd2NGTjBZWFJsT2lCN0lDNHVMbUZ3Y0ZOMFlYUmxMQ0JqZFhKeVpXNTBTWFJsYlVacGJHeFRkSGxzWlRvZ2RtRnNkV1VnZlN4Y2JpQWdJQ0FnSUdOdmJXMXBkRlJ2U0dsemRHOXllVG9nZEhKMVpTeGNiaUFnSUNCOU8xeHVJQ0I5TEZ4dUlDQlFZVzVsYkVOdmJYQnZibVZ1ZERvZ0tIc2daV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxMQ0IxY0dSaGRHVkVZWFJoSUgwcElEMCtJQ2hjYmlBZ0lDQThabWxsYkdSelpYUStYRzRnSUNBZ0lDQThiR1ZuWlc1a1BudDBLRndpYkdGaVpXeHpMbVpwYkd4Y0lpbDlQQzlzWldkbGJtUStYRzRnSUNBZ0lDQThRblYwZEc5dVNXTnZibE5sYkdWamRGeHVJQ0FnSUNBZ0lDQnZjSFJwYjI1elBYdGJYRzRnSUNBZ0lDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZzZFdVNklGd2lhR0ZqYUhWeVpWd2lMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHVjRkRG9nZENoY0lteGhZbVZzY3k1b1lXTm9kWEpsWENJcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdOdmJqb2dQRVpwYkd4SVlXTm9kWEpsU1dOdmJpQjBhR1Z0WlQxN1lYQndVM1JoZEdVdWRHaGxiV1Y5SUM4K0xGeHVJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVTZJRndpWTNKdmMzTXRhR0YwWTJoY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUhSbGVIUTZJSFFvWENKc1lXSmxiSE11WTNKdmMzTklZWFJqYUZ3aUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUdsamIyNDZJRHhHYVd4c1EzSnZjM05JWVhSamFFbGpiMjRnZEdobGJXVTllMkZ3Y0ZOMFlYUmxMblJvWlcxbGZTQXZQaXhjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsT2lCY0luTnZiR2xrWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwWlhoME9pQjBLRndpYkdGaVpXeHpMbk52Ykdsa1hDSXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2FXTnZiam9nUEVacGJHeFRiMnhwWkVsamIyNGdkR2hsYldVOWUyRndjRk4wWVhSbExuUm9aVzFsZlNBdlBpeGNiaUFnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCZGZWeHVJQ0FnSUNBZ0lDQm5jbTkxY0QxY0ltWnBiR3hjSWx4dUlDQWdJQ0FnSUNCMllXeDFaVDE3WjJWMFJtOXliVlpoYkhWbEtGeHVJQ0FnSUNBZ0lDQWdJR1ZzWlcxbGJuUnpMRnh1SUNBZ0lDQWdJQ0FnSUdGd2NGTjBZWFJsTEZ4dUlDQWdJQ0FnSUNBZ0lDaGxiR1Z0Wlc1MEtTQTlQaUJsYkdWdFpXNTBMbVpwYkd4VGRIbHNaU3hjYmlBZ0lDQWdJQ0FnSUNCaGNIQlRkR0YwWlM1amRYSnlaVzUwU1hSbGJVWnBiR3hUZEhsc1pTeGNiaUFnSUNBZ0lDQWdLWDFjYmlBZ0lDQWdJQ0FnYjI1RGFHRnVaMlU5ZXloMllXeDFaU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJSFZ3WkdGMFpVUmhkR0VvZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0I5ZlZ4dUlDQWdJQ0FnTHo1Y2JpQWdJQ0E4TDJacFpXeGtjMlYwUGx4dUlDQXBMRnh1ZlNrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCaFkzUnBiMjVEYUdGdVoyVlRkSEp2YTJWWGFXUjBhQ0E5SUhKbFoybHpkR1Z5S0h0Y2JpQWdibUZ0WlRvZ1hDSmphR0Z1WjJWVGRISnZhMlZYYVdSMGFGd2lMRnh1SUNCd1pYSm1iM0p0T2lBb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQjJZV3gxWlNrZ1BUNGdlMXh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCbGJHVnRaVzUwY3pvZ1kyaGhibWRsVUhKdmNHVnlkSGtvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENBb1pXd3BJRDArWEc0Z0lDQWdJQ0FnSUc1bGQwVnNaVzFsYm5SWGFYUm9LR1ZzTENCN1hHNGdJQ0FnSUNBZ0lDQWdjM1J5YjJ0bFYybGtkR2c2SUhaaGJIVmxMRnh1SUNBZ0lDQWdJQ0I5S1N4Y2JpQWdJQ0FnSUNrc1hHNGdJQ0FnSUNCaGNIQlRkR0YwWlRvZ2V5QXVMaTVoY0hCVGRHRjBaU3dnWTNWeWNtVnVkRWwwWlcxVGRISnZhMlZYYVdSMGFEb2dkbUZzZFdVZ2ZTeGNiaUFnSUNBZ0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVRvZ2RISjFaU3hjYmlBZ0lDQjlPMXh1SUNCOUxGeHVJQ0JRWVc1bGJFTnZiWEJ2Ym1WdWREb2dLSHNnWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCMWNHUmhkR1ZFWVhSaElIMHBJRDArSUNoY2JpQWdJQ0E4Wm1sbGJHUnpaWFErWEc0Z0lDQWdJQ0E4YkdWblpXNWtQbnQwS0Z3aWJHRmlaV3h6TG5OMGNtOXJaVmRwWkhSb1hDSXBmVHd2YkdWblpXNWtQbHh1SUNBZ0lDQWdQRUoxZEhSdmJrbGpiMjVUWld4bFkzUmNiaUFnSUNBZ0lDQWdaM0p2ZFhBOVhDSnpkSEp2YTJVdGQybGtkR2hjSWx4dUlDQWdJQ0FnSUNCdmNIUnBiMjV6UFh0YlhHNGdJQ0FnSUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1U2SURFc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwWlhoME9pQjBLRndpYkdGaVpXeHpMblJvYVc1Y0lpa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCcFkyOXVPaUE4VTNSeWIydGxWMmxrZEdoSlkyOXVJSFJvWlcxbFBYdGhjSEJUZEdGMFpTNTBhR1Z0WlgwZ2MzUnliMnRsVjJsa2RHZzlleko5SUM4K0xGeHVJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVTZJRElzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBaWGgwT2lCMEtGd2liR0ZpWld4ekxtSnZiR1JjSWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWTI5dU9pQThVM1J5YjJ0bFYybGtkR2hKWTI5dUlIUm9aVzFsUFh0aGNIQlRkR0YwWlM1MGFHVnRaWDBnYzNSeWIydGxWMmxrZEdnOWV6WjlJQzgrTEZ4dUlDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZzZFdVNklEUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCMFpYaDBPaUIwS0Z3aWJHRmlaV3h6TG1WNGRISmhRbTlzWkZ3aUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUdsamIyNDZJRHhUZEhKdmEyVlhhV1IwYUVsamIyNGdkR2hsYldVOWUyRndjRk4wWVhSbExuUm9aVzFsZlNCemRISnZhMlZYYVdSMGFEMTdNVEI5SUM4K0xGeHVJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUYxOVhHNGdJQ0FnSUNBZ0lIWmhiSFZsUFh0blpYUkdiM0p0Vm1Gc2RXVW9YRzRnSUNBZ0lDQWdJQ0FnWld4bGJXVnVkSE1zWEc0Z0lDQWdJQ0FnSUNBZ1lYQndVM1JoZEdVc1hHNGdJQ0FnSUNBZ0lDQWdLR1ZzWlcxbGJuUXBJRDArSUdWc1pXMWxiblF1YzNSeWIydGxWMmxrZEdnc1hHNGdJQ0FnSUNBZ0lDQWdZWEJ3VTNSaGRHVXVZM1Z5Y21WdWRFbDBaVzFUZEhKdmEyVlhhV1IwYUN4Y2JpQWdJQ0FnSUNBZ0tYMWNiaUFnSUNBZ0lDQWdiMjVEYUdGdVoyVTlleWgyWVd4MVpTa2dQVDRnZFhCa1lYUmxSR0YwWVNoMllXeDFaU2w5WEc0Z0lDQWdJQ0F2UGx4dUlDQWdJRHd2Wm1sbGJHUnpaWFErWEc0Z0lDa3NYRzU5S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdGamRHbHZia05vWVc1blpWTnNiM0J3YVc1bGMzTWdQU0J5WldkcGMzUmxjaWg3WEc0Z0lHNWhiV1U2SUZ3aVkyaGhibWRsVTJ4dmNIQnBibVZ6YzF3aUxGeHVJQ0J3WlhKbWIzSnRPaUFvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCMllXeDFaU2tnUFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0JsYkdWdFpXNTBjem9nWTJoaGJtZGxVSEp2Y0dWeWRIa29aV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxMQ0FvWld3cElEMCtYRzRnSUNBZ0lDQWdJRzVsZDBWc1pXMWxiblJYYVhSb0tHVnNMQ0I3WEc0Z0lDQWdJQ0FnSUNBZ2MyVmxaRG9nY21GdVpHOXRTVzUwWldkbGNpZ3BMRnh1SUNBZ0lDQWdJQ0FnSUhKdmRXZG9ibVZ6Y3pvZ2RtRnNkV1VzWEc0Z0lDQWdJQ0FnSUgwcExGeHVJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lHRndjRk4wWVhSbE9pQjdJQzR1TG1Gd2NGTjBZWFJsTENCamRYSnlaVzUwU1hSbGJWSnZkV2RvYm1WemN6b2dkbUZzZFdVZ2ZTeGNiaUFnSUNBZ0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVRvZ2RISjFaU3hjYmlBZ0lDQjlPMXh1SUNCOUxGeHVJQ0JRWVc1bGJFTnZiWEJ2Ym1WdWREb2dLSHNnWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCMWNHUmhkR1ZFWVhSaElIMHBJRDArSUNoY2JpQWdJQ0E4Wm1sbGJHUnpaWFErWEc0Z0lDQWdJQ0E4YkdWblpXNWtQbnQwS0Z3aWJHRmlaV3h6TG5Oc2IzQndhVzVsYzNOY0lpbDlQQzlzWldkbGJtUStYRzRnSUNBZ0lDQThRblYwZEc5dVNXTnZibE5sYkdWamRGeHVJQ0FnSUNBZ0lDQm5jbTkxY0QxY0luTnNiM0J3YVc1bGMzTmNJbHh1SUNBZ0lDQWdJQ0J2Y0hScGIyNXpQWHRiWEc0Z0lDQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVTZJREFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBaWGgwT2lCMEtGd2liR0ZpWld4ekxtRnlZMmhwZEdWamRGd2lLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHbGpiMjQ2SUR4VGJHOXdjR2x1WlhOelFYSmphR2wwWldOMFNXTnZiaUIwYUdWdFpUMTdZWEJ3VTNSaGRHVXVkR2hsYldWOUlDOCtMRnh1SUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1U2SURFc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwWlhoME9pQjBLRndpYkdGaVpXeHpMbUZ5ZEdsemRGd2lLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHbGpiMjQ2SUR4VGJHOXdjR2x1WlhOelFYSjBhWE4wU1dOdmJpQjBhR1Z0WlQxN1lYQndVM1JoZEdVdWRHaGxiV1Y5SUM4K0xGeHVJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVTZJRElzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBaWGgwT2lCMEtGd2liR0ZpWld4ekxtTmhjblJ2YjI1cGMzUmNJaWtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnBZMjl1T2lBOFUyeHZjSEJwYm1WemMwTmhjblJ2YjI1cGMzUkpZMjl1SUhSb1pXMWxQWHRoY0hCVGRHRjBaUzUwYUdWdFpYMGdMejRzWEc0Z0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdYWDFjYmlBZ0lDQWdJQ0FnZG1Gc2RXVTllMmRsZEVadmNtMVdZV3gxWlNoY2JpQWdJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MGN5eGNiaUFnSUNBZ0lDQWdJQ0JoY0hCVGRHRjBaU3hjYmlBZ0lDQWdJQ0FnSUNBb1pXeGxiV1Z1ZENrZ1BUNGdaV3hsYldWdWRDNXliM1ZuYUc1bGMzTXNYRzRnSUNBZ0lDQWdJQ0FnWVhCd1UzUmhkR1V1WTNWeWNtVnVkRWwwWlcxU2IzVm5hRzVsYzNNc1hHNGdJQ0FnSUNBZ0lDbDlYRzRnSUNBZ0lDQWdJRzl1UTJoaGJtZGxQWHNvZG1Gc2RXVXBJRDArSUhWd1pHRjBaVVJoZEdFb2RtRnNkV1VwZlZ4dUlDQWdJQ0FnTHo1Y2JpQWdJQ0E4TDJacFpXeGtjMlYwUGx4dUlDQXBMRnh1ZlNrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCaFkzUnBiMjVEYUdGdVoyVlRkSEp2YTJWVGRIbHNaU0E5SUhKbFoybHpkR1Z5S0h0Y2JpQWdibUZ0WlRvZ1hDSmphR0Z1WjJWVGRISnZhMlZUZEhsc1pWd2lMRnh1SUNCd1pYSm1iM0p0T2lBb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQjJZV3gxWlNrZ1BUNGdlMXh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCbGJHVnRaVzUwY3pvZ1kyaGhibWRsVUhKdmNHVnlkSGtvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENBb1pXd3BJRDArWEc0Z0lDQWdJQ0FnSUc1bGQwVnNaVzFsYm5SWGFYUm9LR1ZzTENCN1hHNGdJQ0FnSUNBZ0lDQWdjM1J5YjJ0bFUzUjViR1U2SUhaaGJIVmxMRnh1SUNBZ0lDQWdJQ0I5S1N4Y2JpQWdJQ0FnSUNrc1hHNGdJQ0FnSUNCaGNIQlRkR0YwWlRvZ2V5QXVMaTVoY0hCVGRHRjBaU3dnWTNWeWNtVnVkRWwwWlcxVGRISnZhMlZUZEhsc1pUb2dkbUZzZFdVZ2ZTeGNiaUFnSUNBZ0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVRvZ2RISjFaU3hjYmlBZ0lDQjlPMXh1SUNCOUxGeHVJQ0JRWVc1bGJFTnZiWEJ2Ym1WdWREb2dLSHNnWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCMWNHUmhkR1ZFWVhSaElIMHBJRDArSUNoY2JpQWdJQ0E4Wm1sbGJHUnpaWFErWEc0Z0lDQWdJQ0E4YkdWblpXNWtQbnQwS0Z3aWJHRmlaV3h6TG5OMGNtOXJaVk4wZVd4bFhDSXBmVHd2YkdWblpXNWtQbHh1SUNBZ0lDQWdQRUoxZEhSdmJrbGpiMjVUWld4bFkzUmNiaUFnSUNBZ0lDQWdaM0p2ZFhBOVhDSnpkSEp2YTJWVGRIbHNaVndpWEc0Z0lDQWdJQ0FnSUc5d2RHbHZibk05ZTF0Y2JpQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaVG9nWENKemIyeHBaRndpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkR1Y0ZERvZ2RDaGNJbXhoWW1Wc2N5NXpkSEp2YTJWVGRIbHNaVjl6YjJ4cFpGd2lLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHbGpiMjQ2SUR4VGRISnZhMlZUZEhsc1pWTnZiR2xrU1dOdmJpQjBhR1Z0WlQxN1lYQndVM1JoZEdVdWRHaGxiV1Y5SUM4K0xGeHVJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVTZJRndpWkdGemFHVmtYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBaWGgwT2lCMEtGd2liR0ZpWld4ekxuTjBjbTlyWlZOMGVXeGxYMlJoYzJobFpGd2lLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHbGpiMjQ2SUR4VGRISnZhMlZUZEhsc1pVUmhjMmhsWkVsamIyNGdkR2hsYldVOWUyRndjRk4wWVhSbExuUm9aVzFsZlNBdlBpeGNiaUFnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGJIVmxPaUJjSW1SdmRIUmxaRndpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkR1Y0ZERvZ2RDaGNJbXhoWW1Wc2N5NXpkSEp2YTJWVGRIbHNaVjlrYjNSMFpXUmNJaWtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnBZMjl1T2lBOFUzUnliMnRsVTNSNWJHVkViM1IwWldSSlkyOXVJSFJvWlcxbFBYdGhjSEJUZEdGMFpTNTBhR1Z0WlgwZ0x6NHNYRzRnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ1hYMWNiaUFnSUNBZ0lDQWdkbUZzZFdVOWUyZGxkRVp2Y20xV1lXeDFaU2hjYmlBZ0lDQWdJQ0FnSUNCbGJHVnRaVzUwY3l4Y2JpQWdJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpTeGNiaUFnSUNBZ0lDQWdJQ0FvWld4bGJXVnVkQ2tnUFQ0Z1pXeGxiV1Z1ZEM1emRISnZhMlZUZEhsc1pTeGNiaUFnSUNBZ0lDQWdJQ0JoY0hCVGRHRjBaUzVqZFhKeVpXNTBTWFJsYlZOMGNtOXJaVk4wZVd4bExGeHVJQ0FnSUNBZ0lDQXBmVnh1SUNBZ0lDQWdJQ0J2YmtOb1lXNW5aVDE3S0haaGJIVmxLU0E5UGlCMWNHUmhkR1ZFWVhSaEtIWmhiSFZsS1gxY2JpQWdJQ0FnSUM4K1hHNGdJQ0FnUEM5bWFXVnNaSE5sZEQ1Y2JpQWdLU3hjYm4wcE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1lXTjBhVzl1UTJoaGJtZGxUM0JoWTJsMGVTQTlJSEpsWjJsemRHVnlLSHRjYmlBZ2JtRnRaVG9nWENKamFHRnVaMlZQY0dGamFYUjVYQ0lzWEc0Z0lIQmxjbVp2Y20wNklDaGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXNJSFpoYkhWbEtTQTlQaUI3WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lHVnNaVzFsYm5Sek9pQmphR0Z1WjJWUWNtOXdaWEowZVNobGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVc0lDaGxiQ2tnUFQ1Y2JpQWdJQ0FnSUNBZ2JtVjNSV3hsYldWdWRGZHBkR2dvWld3c0lIdGNiaUFnSUNBZ0lDQWdJQ0J2Y0dGamFYUjVPaUIyWVd4MVpTeGNiaUFnSUNBZ0lDQWdmU2tzWEc0Z0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnWVhCd1UzUmhkR1U2SUhzZ0xpNHVZWEJ3VTNSaGRHVXNJR04xY25KbGJuUkpkR1Z0VDNCaFkybDBlVG9nZG1Gc2RXVWdmU3hjYmlBZ0lDQWdJR052YlcxcGRGUnZTR2x6ZEc5eWVUb2dkSEoxWlN4Y2JpQWdJQ0I5TzF4dUlDQjlMRnh1SUNCUVlXNWxiRU52YlhCdmJtVnVkRG9nS0hzZ1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQjFjR1JoZEdWRVlYUmhJSDBwSUQwK0lDaGNiaUFnSUNBOGJHRmlaV3dnWTJ4aGMzTk9ZVzFsUFZ3aVkyOXVkSEp2YkMxc1lXSmxiRndpUGx4dUlDQWdJQ0FnZTNRb1hDSnNZV0psYkhNdWIzQmhZMmwwZVZ3aUtYMWNiaUFnSUNBZ0lEeHBibkIxZEZ4dUlDQWdJQ0FnSUNCMGVYQmxQVndpY21GdVoyVmNJbHh1SUNBZ0lDQWdJQ0J0YVc0OVhDSXdYQ0pjYmlBZ0lDQWdJQ0FnYldGNFBWd2lNVEF3WENKY2JpQWdJQ0FnSUNBZ2MzUmxjRDFjSWpFd1hDSmNiaUFnSUNBZ0lDQWdiMjVEYUdGdVoyVTlleWhsZG1WdWRDa2dQVDRnZFhCa1lYUmxSR0YwWVNnclpYWmxiblF1ZEdGeVoyVjBMblpoYkhWbEtYMWNiaUFnSUNBZ0lDQWdiMjVYYUdWbGJEMTdLR1YyWlc1MEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ1pYWmxiblF1YzNSdmNGQnliM0JoWjJGMGFXOXVLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnZEdGeVoyVjBJRDBnWlhabGJuUXVkR0Z5WjJWMElHRnpJRWhVVFV4SmJuQjFkRVZzWlcxbGJuUTdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdVMVJGVUNBOUlERXdPMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRTFCV0NBOUlERXdNRHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JOU1U0Z1BTQXdPMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSFpoYkhWbElEMGdLM1JoY21kbGRDNTJZV3gxWlR0Y2JseHVJQ0FnSUNBZ0lDQWdJR2xtSUNobGRtVnVkQzVrWld4MFlWa2dQQ0F3SUNZbUlIWmhiSFZsSUR3Z1RVRllLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjFjR1JoZEdWRVlYUmhLSFpoYkhWbElDc2dVMVJGVUNrN1hHNGdJQ0FnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2hsZG1WdWRDNWtaV3gwWVZrZ1BpQXdJQ1ltSUhaaGJIVmxJRDRnVFVsT0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMWNHUmhkR1ZFWVhSaEtIWmhiSFZsSUMwZ1UxUkZVQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlmVnh1SUNBZ0lDQWdJQ0IyWVd4MVpUMTdYRzRnSUNBZ0lDQWdJQ0FnWjJWMFJtOXliVlpoYkhWbEtGeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4bGJXVnVkSE1zWEc0Z0lDQWdJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNobGJHVnRaVzUwS1NBOVBpQmxiR1Z0Wlc1MExtOXdZV05wZEhrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JoY0hCVGRHRjBaUzVqZFhKeVpXNTBTWFJsYlU5d1lXTnBkSGtzWEc0Z0lDQWdJQ0FnSUNBZ0tTQS9QeUIxYm1SbFptbHVaV1JjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnTHo1Y2JpQWdJQ0E4TDJ4aFltVnNQbHh1SUNBcExGeHVmU2s3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JoWTNScGIyNURhR0Z1WjJWR2IyNTBVMmw2WlNBOUlISmxaMmx6ZEdWeUtIdGNiaUFnYm1GdFpUb2dYQ0pqYUdGdVoyVkdiMjUwVTJsNlpWd2lMRnh1SUNCd1pYSm1iM0p0T2lBb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQjJZV3gxWlNrZ1BUNGdlMXh1SUNBZ0lISmxkSFZ5YmlCamFHRnVaMlZHYjI1MFUybDZaU2hsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VzSUNncElEMCtJSFpoYkhWbExDQjJZV3gxWlNrN1hHNGdJSDBzWEc0Z0lGQmhibVZzUTI5dGNHOXVaVzUwT2lBb2V5QmxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXNJSFZ3WkdGMFpVUmhkR0VnZlNrZ1BUNGdLRnh1SUNBZ0lEeG1hV1ZzWkhObGRENWNiaUFnSUNBZ0lEeHNaV2RsYm1RK2UzUW9YQ0pzWVdKbGJITXVabTl1ZEZOcGVtVmNJaWw5UEM5c1pXZGxibVErWEc0Z0lDQWdJQ0E4UW5WMGRHOXVTV052YmxObGJHVmpkRnh1SUNBZ0lDQWdJQ0JuY205MWNEMWNJbVp2Ym5RdGMybDZaVndpWEc0Z0lDQWdJQ0FnSUc5d2RHbHZibk05ZTF0Y2JpQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaVG9nTVRZc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwWlhoME9pQjBLRndpYkdGaVpXeHpMbk50WVd4c1hDSXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2FXTnZiam9nUEVadmJuUlRhWHBsVTIxaGJHeEpZMjl1SUhSb1pXMWxQWHRoY0hCVGRHRjBaUzUwYUdWdFpYMGdMejRzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBaWE4wU1dRNklGd2labTl1ZEZOcGVtVXRjMjFoYkd4Y0lpeGNiaUFnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGJIVmxPaUF5TUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJsZUhRNklIUW9YQ0pzWVdKbGJITXViV1ZrYVhWdFhDSXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2FXTnZiam9nUEVadmJuUlRhWHBsVFdWa2FYVnRTV052YmlCMGFHVnRaVDE3WVhCd1UzUmhkR1V1ZEdobGJXVjlJQzgrTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkR1Z6ZEVsa09pQmNJbVp2Ym5SVGFYcGxMVzFsWkdsMWJWd2lMRnh1SUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1U2SURJNExGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdWNGREb2dkQ2hjSW14aFltVnNjeTVzWVhKblpWd2lLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHbGpiMjQ2SUR4R2IyNTBVMmw2WlV4aGNtZGxTV052YmlCMGFHVnRaVDE3WVhCd1UzUmhkR1V1ZEdobGJXVjlJQzgrTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkR1Z6ZEVsa09pQmNJbVp2Ym5SVGFYcGxMV3hoY21kbFhDSXNYRzRnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaVG9nTXpZc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwWlhoME9pQjBLRndpYkdGaVpXeHpMblpsY25sTVlYSm5aVndpS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xqYjI0NklEeEdiMjUwVTJsNlpVVjRkSEpoVEdGeVoyVkpZMjl1SUhSb1pXMWxQWHRoY0hCVGRHRjBaUzUwYUdWdFpYMGdMejRzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBaWE4wU1dRNklGd2labTl1ZEZOcGVtVXRkbVZ5ZVV4aGNtZGxYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdYWDFjYmlBZ0lDQWdJQ0FnZG1Gc2RXVTllMmRsZEVadmNtMVdZV3gxWlNoY2JpQWdJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MGN5eGNiaUFnSUNBZ0lDQWdJQ0JoY0hCVGRHRjBaU3hjYmlBZ0lDQWdJQ0FnSUNBb1pXeGxiV1Z1ZENrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR2x6VkdWNGRFVnNaVzFsYm5Rb1pXeGxiV1Z1ZENrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdWc1pXMWxiblF1Wm05dWRGTnBlbVU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JpYjNWdVpGUmxlSFJGYkdWdFpXNTBJRDBnWjJWMFFtOTFibVJVWlhoMFJXeGxiV1Z1ZENobGJHVnRaVzUwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoaWIzVnVaRlJsZUhSRmJHVnRaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJpYjNWdVpGUmxlSFJGYkdWdFpXNTBMbVp2Ym5SVGFYcGxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnSUNCaGNIQlRkR0YwWlM1amRYSnlaVzUwU1hSbGJVWnZiblJUYVhwbElIeDhJRVJGUmtGVlRGUmZSazlPVkY5VFNWcEZMRnh1SUNBZ0lDQWdJQ0FwZlZ4dUlDQWdJQ0FnSUNCdmJrTm9ZVzVuWlQxN0tIWmhiSFZsS1NBOVBpQjFjR1JoZEdWRVlYUmhLSFpoYkhWbEtYMWNiaUFnSUNBZ0lDOCtYRzRnSUNBZ1BDOW1hV1ZzWkhObGRENWNiaUFnS1N4Y2JuMHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdZV04wYVc5dVJHVmpjbVZoYzJWR2IyNTBVMmw2WlNBOUlISmxaMmx6ZEdWeUtIdGNiaUFnYm1GdFpUb2dYQ0prWldOeVpXRnpaVVp2Ym5SVGFYcGxYQ0lzWEc0Z0lIQmxjbVp2Y20wNklDaGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXNJSFpoYkhWbEtTQTlQaUI3WEc0Z0lDQWdjbVYwZFhKdUlHTm9ZVzVuWlVadmJuUlRhWHBsS0dWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlN3Z0tHVnNaVzFsYm5RcElEMCtYRzRnSUNBZ0lDQk5ZWFJvTG5KdmRXNWtLRnh1SUNBZ0lDQWdJQ0F2THlCblpYUWdjSEpsZG1sdmRYTWdkbUZzZFdVZ1ltVm1iM0psSUhKbGJHRjBhWFpsSUdsdVkzSmxZWE5sSUNoa2IyVnpiaWQwSUhkdmNtc2dablZzYkhsY2JpQWdJQ0FnSUNBZ0x5OGdaSFZsSUhSdklISnZkVzVrYVc1bklHRnVaQ0JtYkc5aGRDQndjbVZqYVhOcGIyNGdhWE56ZFdWektWeHVJQ0FnSUNBZ0lDQW9NU0F2SUNneElDc2dSazlPVkY5VFNWcEZYMUpGVEVGVVNWWkZYMGxPUTFKRlFWTkZYMU5VUlZBcEtTQXFJR1ZzWlcxbGJuUXVabTl1ZEZOcGVtVXNYRzRnSUNBZ0lDQXBMRnh1SUNBZ0lDazdYRzRnSUgwc1hHNGdJR3RsZVZSbGMzUTZJQ2hsZG1WdWRDa2dQVDRnZTF4dUlDQWdJSEpsZEhWeWJpQW9YRzRnSUNBZ0lDQmxkbVZ1ZEZ0TFJWbFRMa05VVWt4ZlQxSmZRMDFFWFNBbUpseHVJQ0FnSUNBZ1pYWmxiblF1YzJocFpuUkxaWGtnSmlaY2JpQWdJQ0FnSUM4dklFdEZXVk11UTA5TlRVRWdibVZsWkdWa0lHWnZjaUJOWVdOUFUxeHVJQ0FnSUNBZ0tHVjJaVzUwTG10bGVTQTlQVDBnUzBWWlV5NURTRVZXVWs5T1gweEZSbFFnZkh3Z1pYWmxiblF1YTJWNUlEMDlQU0JMUlZsVExrTlBUVTFCS1Z4dUlDQWdJQ2s3WEc0Z0lIMHNYRzU5S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdGamRHbHZia2x1WTNKbFlYTmxSbTl1ZEZOcGVtVWdQU0J5WldkcGMzUmxjaWg3WEc0Z0lHNWhiV1U2SUZ3aWFXNWpjbVZoYzJWR2IyNTBVMmw2WlZ3aUxGeHVJQ0J3WlhKbWIzSnRPaUFvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCMllXeDFaU2tnUFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUJqYUdGdVoyVkdiMjUwVTJsNlpTaGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXNJQ2hsYkdWdFpXNTBLU0E5UGx4dUlDQWdJQ0FnVFdGMGFDNXliM1Z1WkNobGJHVnRaVzUwTG1admJuUlRhWHBsSUNvZ0tERWdLeUJHVDA1VVgxTkpXa1ZmVWtWTVFWUkpWa1ZmU1U1RFVrVkJVMFZmVTFSRlVDa3BMRnh1SUNBZ0lDazdYRzRnSUgwc1hHNGdJR3RsZVZSbGMzUTZJQ2hsZG1WdWRDa2dQVDRnZTF4dUlDQWdJSEpsZEhWeWJpQW9YRzRnSUNBZ0lDQmxkbVZ1ZEZ0TFJWbFRMa05VVWt4ZlQxSmZRMDFFWFNBbUpseHVJQ0FnSUNBZ1pYWmxiblF1YzJocFpuUkxaWGtnSmlaY2JpQWdJQ0FnSUM4dklFdEZXVk11VUVWU1NVOUVJRzVsWldSbFpDQm1iM0lnVFdGalQxTmNiaUFnSUNBZ0lDaGxkbVZ1ZEM1clpYa2dQVDA5SUV0RldWTXVRMGhGVmxKUFRsOVNTVWRJVkNCOGZDQmxkbVZ1ZEM1clpYa2dQVDA5SUV0RldWTXVVRVZTU1U5RUtWeHVJQ0FnSUNrN1hHNGdJSDBzWEc1OUtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHRmpkR2x2YmtOb1lXNW5aVVp2Ym5SR1lXMXBiSGtnUFNCeVpXZHBjM1JsY2loN1hHNGdJRzVoYldVNklGd2lZMmhoYm1kbFJtOXVkRVpoYldsc2VWd2lMRnh1SUNCd1pYSm1iM0p0T2lBb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQjJZV3gxWlNrZ1BUNGdlMXh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCbGJHVnRaVzUwY3pvZ1kyaGhibWRsVUhKdmNHVnlkSGtvWEc0Z0lDQWdJQ0FnSUdWc1pXMWxiblJ6TEZ4dUlDQWdJQ0FnSUNCaGNIQlRkR0YwWlN4Y2JpQWdJQ0FnSUNBZ0tHOXNaRVZzWlcxbGJuUXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvYVhOVVpYaDBSV3hsYldWdWRDaHZiR1JGYkdWdFpXNTBLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JtVjNSV3hsYldWdWREb2dSWGhqWVd4cFpISmhkMVJsZUhSRmJHVnRaVzUwSUQwZ2JtVjNSV3hsYldWdWRGZHBkR2dvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRzlzWkVWc1pXMWxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JtYjI1MFJtRnRhV3g1T2lCMllXeDFaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpXUnlZWGRVWlhoMFFtOTFibVJwYm1kQ2IzZ29YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHNWxkMFZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHZGxkRU52Ym5SaGFXNWxja1ZzWlcxbGJuUW9iMnhrUld4bGJXVnVkQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ1WlhkRmJHVnRaVzUwTzF4dUlDQWdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ2YkdSRmJHVnRaVzUwTzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQjBjblZsTEZ4dUlDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUdGd2NGTjBZWFJsT2lCN1hHNGdJQ0FnSUNBZ0lDNHVMbUZ3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdJQ0JqZFhKeVpXNTBTWFJsYlVadmJuUkdZVzFwYkhrNklIWmhiSFZsTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUdOdmJXMXBkRlJ2U0dsemRHOXllVG9nZEhKMVpTeGNiaUFnSUNCOU8xeHVJQ0I5TEZ4dUlDQlFZVzVsYkVOdmJYQnZibVZ1ZERvZ0tIc2daV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxMQ0IxY0dSaGRHVkVZWFJoSUgwcElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCdmNIUnBiMjV6T2lCN1hHNGdJQ0FnSUNCMllXeDFaVG9nUm05dWRFWmhiV2xzZVZaaGJIVmxjenRjYmlBZ0lDQWdJSFJsZUhRNklITjBjbWx1Wnp0Y2JpQWdJQ0FnSUdsamIyNDZJRXBUV0M1RmJHVnRaVzUwTzF4dUlDQWdJSDFiWFNBOUlGdGNiaUFnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdkbUZzZFdVNklFWlBUbFJmUmtGTlNVeFpMbFpwY21kcGJDeGNiaUFnSUNBZ0lDQWdkR1Y0ZERvZ2RDaGNJbXhoWW1Wc2N5NW9ZVzVrUkhKaGQyNWNJaWtzWEc0Z0lDQWdJQ0FnSUdsamIyNDZJRHhHYjI1MFJtRnRhV3g1U0dGdVpFUnlZWGR1U1dOdmJpQjBhR1Z0WlQxN1lYQndVM1JoZEdVdWRHaGxiV1Y5SUM4K0xGeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdkbUZzZFdVNklFWlBUbFJmUmtGTlNVeFpMa2hsYkhabGRHbGpZU3hjYmlBZ0lDQWdJQ0FnZEdWNGREb2dkQ2hjSW14aFltVnNjeTV1YjNKdFlXeGNJaWtzWEc0Z0lDQWdJQ0FnSUdsamIyNDZJRHhHYjI1MFJtRnRhV3g1VG05eWJXRnNTV052YmlCMGFHVnRaVDE3WVhCd1UzUmhkR1V1ZEdobGJXVjlJQzgrTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ2RtRnNkV1U2SUVaUFRsUmZSa0ZOU1V4WkxrTmhjMk5oWkdsaExGeHVJQ0FnSUNBZ0lDQjBaWGgwT2lCMEtGd2liR0ZpWld4ekxtTnZaR1ZjSWlrc1hHNGdJQ0FnSUNBZ0lHbGpiMjQ2SUR4R2IyNTBSbUZ0YVd4NVEyOWtaVWxqYjI0Z2RHaGxiV1U5ZTJGd2NGTjBZWFJsTG5Sb1pXMWxmU0F2UGl4Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnWFR0Y2JseHVJQ0FnSUhKbGRIVnliaUFvWEc0Z0lDQWdJQ0E4Wm1sbGJHUnpaWFErWEc0Z0lDQWdJQ0FnSUR4c1pXZGxibVErZTNRb1hDSnNZV0psYkhNdVptOXVkRVpoYldsc2VWd2lLWDA4TDJ4bFoyVnVaRDVjYmlBZ0lDQWdJQ0FnUEVKMWRIUnZia2xqYjI1VFpXeGxZM1E4Um05dWRFWmhiV2xzZVZaaGJIVmxjeUI4SUdaaGJITmxQbHh1SUNBZ0lDQWdJQ0FnSUdkeWIzVndQVndpWm05dWRDMW1ZVzFwYkhsY0lseHVJQ0FnSUNBZ0lDQWdJRzl3ZEdsdmJuTTllMjl3ZEdsdmJuTjlYRzRnSUNBZ0lDQWdJQ0FnZG1Gc2RXVTllMmRsZEVadmNtMVdZV3gxWlNoY2JpQWdJQ0FnSUNBZ0lDQWdJR1ZzWlcxbGJuUnpMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lYQndVM1JoZEdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FvWld4bGJXVnVkQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9hWE5VWlhoMFJXeGxiV1Z1ZENobGJHVnRaVzUwS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbGJHVnRaVzUwTG1admJuUkdZVzFwYkhrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdZbTkxYm1SVVpYaDBSV3hsYldWdWRDQTlJR2RsZEVKdmRXNWtWR1Y0ZEVWc1pXMWxiblFvWld4bGJXVnVkQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoaWIzVnVaRlJsZUhSRmJHVnRaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdKdmRXNWtWR1Y0ZEVWc1pXMWxiblF1Wm05dWRFWmhiV2xzZVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpTNWpkWEp5Wlc1MFNYUmxiVVp2Ym5SR1lXMXBiSGtnZkh3Z1JFVkdRVlZNVkY5R1QwNVVYMFpCVFVsTVdTeGNiaUFnSUNBZ0lDQWdJQ0FwZlZ4dUlDQWdJQ0FnSUNBZ0lHOXVRMmhoYm1kbFBYc29kbUZzZFdVcElEMCtJSFZ3WkdGMFpVUmhkR0VvZG1Gc2RXVXBmVnh1SUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnUEM5bWFXVnNaSE5sZEQ1Y2JpQWdJQ0FwTzF4dUlDQjlMRnh1ZlNrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCaFkzUnBiMjVEYUdGdVoyVlVaWGgwUVd4cFoyNGdQU0J5WldkcGMzUmxjaWg3WEc0Z0lHNWhiV1U2SUZ3aVkyaGhibWRsVkdWNGRFRnNhV2R1WENJc1hHNGdJSEJsY21admNtMDZJQ2hsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VzSUhaaGJIVmxLU0E5UGlCN1hHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJR1ZzWlcxbGJuUnpPaUJqYUdGdVoyVlFjbTl3WlhKMGVTaGNiaUFnSUNBZ0lDQWdaV3hsYldWdWRITXNYRzRnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdJQ0FvYjJ4a1JXeGxiV1Z1ZENrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaHBjMVJsZUhSRmJHVnRaVzUwS0c5c1pFVnNaVzFsYm5RcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J1WlhkRmJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1ZHVjRkRVZzWlcxbGJuUWdQU0J1WlhkRmJHVnRaVzUwVjJsMGFDaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2IyeGtSV3hsYldWdWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUmxlSFJCYkdsbmJqb2dkbUZzZFdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVZrY21GM1ZHVjRkRUp2ZFc1a2FXNW5RbTk0S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J1WlhkRmJHVnRaVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JuWlhSRGIyNTBZV2x1WlhKRmJHVnRaVzUwS0c5c1pFVnNaVzFsYm5RcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCaGNIQlRkR0YwWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2JtVjNSV3hsYldWdWREdGNiaUFnSUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2IyeGtSV3hsYldWdWREdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnZEhKMVpTeGNiaUFnSUNBZ0lDa3NYRzRnSUNBZ0lDQmhjSEJUZEdGMFpUb2dlMXh1SUNBZ0lDQWdJQ0F1TGk1aGNIQlRkR0YwWlN4Y2JpQWdJQ0FnSUNBZ1kzVnljbVZ1ZEVsMFpXMVVaWGgwUVd4cFoyNDZJSFpoYkhWbExGeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVRvZ2RISjFaU3hjYmlBZ0lDQjlPMXh1SUNCOUxGeHVJQ0JRWVc1bGJFTnZiWEJ2Ym1WdWREb2dLSHNnWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCMWNHUmhkR1ZFWVhSaElIMHBJRDArSUNoY2JpQWdJQ0E4Wm1sbGJHUnpaWFErWEc0Z0lDQWdJQ0E4YkdWblpXNWtQbnQwS0Z3aWJHRmlaV3h6TG5SbGVIUkJiR2xuYmx3aUtYMDhMMnhsWjJWdVpENWNiaUFnSUNBZ0lEeENkWFIwYjI1SlkyOXVVMlZzWldOMFBGUmxlSFJCYkdsbmJpQjhJR1poYkhObFBseHVJQ0FnSUNBZ0lDQm5jbTkxY0QxY0luUmxlSFF0WVd4cFoyNWNJbHh1SUNBZ0lDQWdJQ0J2Y0hScGIyNXpQWHRiWEc0Z0lDQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVTZJRndpYkdWbWRGd2lMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHVjRkRG9nZENoY0lteGhZbVZzY3k1c1pXWjBYQ0lwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdhV052YmpvZ1BGUmxlSFJCYkdsbmJreGxablJKWTI5dUlIUm9aVzFsUFh0aGNIQlRkR0YwWlM1MGFHVnRaWDBnTHo0c1hHNGdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVd4MVpUb2dYQ0pqWlc1MFpYSmNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lIUmxlSFE2SUhRb1hDSnNZV0psYkhNdVkyVnVkR1Z5WENJcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdOdmJqb2dQRlJsZUhSQmJHbG5ia05sYm5SbGNrbGpiMjRnZEdobGJXVTllMkZ3Y0ZOMFlYUmxMblJvWlcxbGZTQXZQaXhjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsT2lCY0luSnBaMmgwWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwWlhoME9pQjBLRndpYkdGaVpXeHpMbkpwWjJoMFhDSXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2FXTnZiam9nUEZSbGVIUkJiR2xuYmxKcFoyaDBTV052YmlCMGFHVnRaVDE3WVhCd1UzUmhkR1V1ZEdobGJXVjlJQzgrTEZ4dUlDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJRjE5WEc0Z0lDQWdJQ0FnSUhaaGJIVmxQWHRuWlhSR2IzSnRWbUZzZFdVb1hHNGdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRITXNYRzRnSUNBZ0lDQWdJQ0FnWVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0FnSUNBZ0tHVnNaVzFsYm5RcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwYzFSbGVIUkZiR1Z0Wlc1MEtHVnNaVzFsYm5RcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbGJHVnRaVzUwTG5SbGVIUkJiR2xuYmp0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdKdmRXNWtWR1Y0ZEVWc1pXMWxiblFnUFNCblpYUkNiM1Z1WkZSbGVIUkZiR1Z0Wlc1MEtHVnNaVzFsYm5RcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHSnZkVzVrVkdWNGRFVnNaVzFsYm5RcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdKdmRXNWtWR1Y0ZEVWc1pXMWxiblF1ZEdWNGRFRnNhV2R1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpTNWpkWEp5Wlc1MFNYUmxiVlJsZUhSQmJHbG5iaXhjYmlBZ0lDQWdJQ0FnS1gxY2JpQWdJQ0FnSUNBZ2IyNURhR0Z1WjJVOWV5aDJZV3gxWlNrZ1BUNGdkWEJrWVhSbFJHRjBZU2gyWVd4MVpTbDlYRzRnSUNBZ0lDQXZQbHh1SUNBZ0lEd3ZabWxsYkdSelpYUStYRzRnSUNrc1hHNTlLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR0ZqZEdsdmJrTm9ZVzVuWlZOb1lYSndibVZ6Y3lBOUlISmxaMmx6ZEdWeUtIdGNiaUFnYm1GdFpUb2dYQ0pqYUdGdVoyVlRhR0Z5Y0c1bGMzTmNJaXhjYmlBZ2NHVnlabTl5YlRvZ0tHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTd2dkbUZzZFdVcElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCMFlYSm5aWFJGYkdWdFpXNTBjeUE5SUdkbGRGUmhjbWRsZEVWc1pXMWxiblJ6S0Z4dUlDQWdJQ0FnWjJWMFRtOXVSR1ZzWlhSbFpFVnNaVzFsYm5SektHVnNaVzFsYm5SektTeGNiaUFnSUNBZ0lHRndjRk4wWVhSbExGeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdjMmh2ZFd4a1ZYQmtZWFJsUm05eVRtOXVUR2x1WldGeVJXeGxiV1Z1ZEhNZ1BTQjBZWEpuWlhSRmJHVnRaVzUwY3k1c1pXNW5kR2hjYmlBZ0lDQWdJRDhnZEdGeVoyVjBSV3hsYldWdWRITXVaWFpsY25rb0tHVnNLU0E5UGlBaGFYTk1hVzVsWVhKRmJHVnRaVzUwS0dWc0tTbGNiaUFnSUNBZ0lEb2dJV2x6VEdsdVpXRnlSV3hsYldWdWRGUjVjR1VvWVhCd1UzUmhkR1V1Wld4bGJXVnVkRlI1Y0dVcE8xeHVJQ0FnSUdOdmJuTjBJSE5vYjNWc1pGVndaR0YwWlVadmNreHBibVZoY2tWc1pXMWxiblJ6SUQwZ2RHRnlaMlYwUld4bGJXVnVkSE11YkdWdVozUm9YRzRnSUNBZ0lDQS9JSFJoY21kbGRFVnNaVzFsYm5SekxtVjJaWEo1S0dselRHbHVaV0Z5Uld4bGJXVnVkQ2xjYmlBZ0lDQWdJRG9nYVhOTWFXNWxZWEpGYkdWdFpXNTBWSGx3WlNoaGNIQlRkR0YwWlM1bGJHVnRaVzUwVkhsd1pTazdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUdWc1pXMWxiblJ6T2lCamFHRnVaMlZRY205d1pYSjBlU2hsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VzSUNobGJDa2dQVDVjYmlBZ0lDQWdJQ0FnYm1WM1JXeGxiV1Z1ZEZkcGRHZ29aV3dzSUh0Y2JpQWdJQ0FnSUNBZ0lDQnpkSEp2YTJWVGFHRnljRzVsYzNNNklIWmhiSFZsTEZ4dUlDQWdJQ0FnSUNCOUtTeGNiaUFnSUNBZ0lDa3NYRzRnSUNBZ0lDQmhjSEJUZEdGMFpUb2dlMXh1SUNBZ0lDQWdJQ0F1TGk1aGNIQlRkR0YwWlN4Y2JpQWdJQ0FnSUNBZ1kzVnljbVZ1ZEVsMFpXMVRkSEp2YTJWVGFHRnljRzVsYzNNNklITm9iM1ZzWkZWd1pHRjBaVVp2Y2s1dmJreHBibVZoY2tWc1pXMWxiblJ6WEc0Z0lDQWdJQ0FnSUNBZ1B5QjJZV3gxWlZ4dUlDQWdJQ0FnSUNBZ0lEb2dZWEJ3VTNSaGRHVXVZM1Z5Y21WdWRFbDBaVzFUZEhKdmEyVlRhR0Z5Y0c1bGMzTXNYRzRnSUNBZ0lDQWdJR04xY25KbGJuUkpkR1Z0VEdsdVpXRnlVM1J5YjJ0bFUyaGhjbkJ1WlhOek9pQnphRzkxYkdSVmNHUmhkR1ZHYjNKTWFXNWxZWEpGYkdWdFpXNTBjMXh1SUNBZ0lDQWdJQ0FnSUQ4Z2RtRnNkV1ZjYmlBZ0lDQWdJQ0FnSUNBNklHRndjRk4wWVhSbExtTjFjbkpsYm5SSmRHVnRUR2x1WldGeVUzUnliMnRsVTJoaGNuQnVaWE56TEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUdOdmJXMXBkRlJ2U0dsemRHOXllVG9nZEhKMVpTeGNiaUFnSUNCOU8xeHVJQ0I5TEZ4dUlDQlFZVzVsYkVOdmJYQnZibVZ1ZERvZ0tIc2daV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxMQ0IxY0dSaGRHVkVZWFJoSUgwcElEMCtJQ2hjYmlBZ0lDQThabWxsYkdSelpYUStYRzRnSUNBZ0lDQThiR1ZuWlc1a1BudDBLRndpYkdGaVpXeHpMbVZrWjJWelhDSXBmVHd2YkdWblpXNWtQbHh1SUNBZ0lDQWdQRUoxZEhSdmJrbGpiMjVUWld4bFkzUmNiaUFnSUNBZ0lDQWdaM0p2ZFhBOVhDSmxaR2RsYzF3aVhHNGdJQ0FnSUNBZ0lHOXdkR2x2Ym5NOWUxdGNiaUFnSUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZV3gxWlRvZ1hDSnphR0Z5Y0Z3aUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdWNGREb2dkQ2hjSW14aFltVnNjeTV6YUdGeWNGd2lLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHbGpiMjQ2SUR4RlpHZGxVMmhoY25CSlkyOXVJSFJvWlcxbFBYdGhjSEJUZEdGMFpTNTBhR1Z0WlgwZ0x6NHNYRzRnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaVG9nWENKeWIzVnVaRndpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkR1Y0ZERvZ2RDaGNJbXhoWW1Wc2N5NXliM1Z1WkZ3aUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUdsamIyNDZJRHhGWkdkbFVtOTFibVJKWTI5dUlIUm9aVzFsUFh0aGNIQlRkR0YwWlM1MGFHVnRaWDBnTHo0c1hHNGdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnWFgxY2JpQWdJQ0FnSUNBZ2RtRnNkV1U5ZTJkbGRFWnZjbTFXWVd4MVpTaGNiaUFnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBjeXhjYmlBZ0lDQWdJQ0FnSUNCaGNIQlRkR0YwWlN4Y2JpQWdJQ0FnSUNBZ0lDQW9aV3hsYldWdWRDa2dQVDRnWld4bGJXVnVkQzV6ZEhKdmEyVlRhR0Z5Y0c1bGMzTXNYRzRnSUNBZ0lDQWdJQ0FnS0dOaGJrTm9ZVzVuWlZOb1lYSndibVZ6Y3loaGNIQlRkR0YwWlM1bGJHVnRaVzUwVkhsd1pTa2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDaHBjMHhwYm1WaGNrVnNaVzFsYm5SVWVYQmxLR0Z3Y0ZOMFlYUmxMbVZzWlcxbGJuUlVlWEJsS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0EvSUdGd2NGTjBZWFJsTG1OMWNuSmxiblJKZEdWdFRHbHVaV0Z5VTNSeWIydGxVMmhoY25CdVpYTnpYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEb2dZWEJ3VTNSaGRHVXVZM1Z5Y21WdWRFbDBaVzFUZEhKdmEyVlRhR0Z5Y0c1bGMzTXBLU0I4ZkZ4dUlDQWdJQ0FnSUNBZ0lDQWdiblZzYkN4Y2JpQWdJQ0FnSUNBZ0tYMWNiaUFnSUNBZ0lDQWdiMjVEYUdGdVoyVTlleWgyWVd4MVpTa2dQVDRnZFhCa1lYUmxSR0YwWVNoMllXeDFaU2w5WEc0Z0lDQWdJQ0F2UGx4dUlDQWdJRHd2Wm1sbGJHUnpaWFErWEc0Z0lDa3NYRzU5S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdGamRHbHZia05vWVc1blpVRnljbTkzYUdWaFpDQTlJSEpsWjJsemRHVnlLSHRjYmlBZ2JtRnRaVG9nWENKamFHRnVaMlZCY25KdmQyaGxZV1JjSWl4Y2JpQWdjR1Z5Wm05eWJUb2dLRnh1SUNBZ0lHVnNaVzFsYm5SekxGeHVJQ0FnSUdGd2NGTjBZWFJsTEZ4dUlDQWdJSFpoYkhWbE9pQjdJSEJ2YzJsMGFXOXVPaUJjSW5OMFlYSjBYQ0lnZkNCY0ltVnVaRndpT3lCMGVYQmxPaUJCY25KdmQyaGxZV1FnZlN4Y2JpQWdLU0E5UGlCN1hHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJR1ZzWlcxbGJuUnpPaUJqYUdGdVoyVlFjbTl3WlhKMGVTaGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXNJQ2hsYkNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTk1hVzVsWVhKRmJHVnRaVzUwS0dWc0tTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSHNnY0c5emFYUnBiMjRzSUhSNWNHVWdmU0E5SUhaaGJIVmxPMXh1WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLSEJ2YzJsMGFXOXVJRDA5UFNCY0luTjBZWEowWENJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR1ZzWlcxbGJuUTZJRVY0WTJGc2FXUnlZWGRNYVc1bFlYSkZiR1Z0Wlc1MElEMGdibVYzUld4bGJXVnVkRmRwZEdnb1pXd3NJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1JoY25SQmNuSnZkMmhsWVdRNklIUjVjR1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbGJHVnRaVzUwTzF4dUlDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9jRzl6YVhScGIyNGdQVDA5SUZ3aVpXNWtYQ0lwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHVnNaVzFsYm5RNklFVjRZMkZzYVdSeVlYZE1hVzVsWVhKRmJHVnRaVzUwSUQwZ2JtVjNSV3hsYldWdWRGZHBkR2dvWld3c0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1pXNWtRWEp5YjNkb1pXRmtPaUIwZVhCbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdaV3hsYldWdWREdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1pXdzdYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJR0Z3Y0ZOMFlYUmxPaUI3WEc0Z0lDQWdJQ0FnSUM0dUxtRndjRk4wWVhSbExGeHVJQ0FnSUNBZ0lDQmJkbUZzZFdVdWNHOXphWFJwYjI0Z1BUMDlJRndpYzNSaGNuUmNJbHh1SUNBZ0lDQWdJQ0FnSUQ4Z1hDSmpkWEp5Wlc1MFNYUmxiVk4wWVhKMFFYSnliM2RvWldGa1hDSmNiaUFnSUNBZ0lDQWdJQ0E2SUZ3aVkzVnljbVZ1ZEVsMFpXMUZibVJCY25KdmQyaGxZV1JjSWwwNklIWmhiSFZsTG5SNWNHVXNYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdZMjl0YldsMFZHOUlhWE4wYjNKNU9pQjBjblZsTEZ4dUlDQWdJSDA3WEc0Z0lIMHNYRzRnSUZCaGJtVnNRMjl0Y0c5dVpXNTBPaUFvZXlCbGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVc0lIVndaR0YwWlVSaGRHRWdmU2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR2x6VWxSTUlEMGdaMlYwVEdGdVozVmhaMlVvS1M1eWRHdzdYRzVjYmlBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ1BHWnBaV3hrYzJWMFBseHVJQ0FnSUNBZ0lDQThiR1ZuWlc1a1BudDBLRndpYkdGaVpXeHpMbUZ5Y205M2FHVmhaSE5jSWlsOVBDOXNaV2RsYm1RK1hHNGdJQ0FnSUNBZ0lEeGthWFlnWTJ4aGMzTk9ZVzFsUFZ3aWFXTnZibE5sYkdWamRFeHBjM1JjSWo1Y2JpQWdJQ0FnSUNBZ0lDQThTV052YmxCcFkydGxjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2JHRmlaV3c5WENKaGNuSnZkMmhsWVdSZmMzUmhjblJjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdiM0IwYVc5dWN6MTdXMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkbUZzZFdVNklHNTFiR3dzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdWNGREb2dkQ2hjSW14aFltVnNjeTVoY25KdmQyaGxZV1JmYm05dVpWd2lLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWTI5dU9pQThRWEp5YjNkb1pXRmtUbTl1WlVsamIyNGdkR2hsYldVOWUyRndjRk4wWVhSbExuUm9aVzFsZlNBdlBpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnJaWGxDYVc1a2FXNW5PaUJjSW5GY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsT2lCY0ltRnljbTkzWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHVjRkRG9nZENoY0lteGhZbVZzY3k1aGNuSnZkMmhsWVdSZllYSnliM2RjSWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXTnZiam9nS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BFRnljbTkzYUdWaFpFRnljbTkzU1dOdmJpQjBhR1Z0WlQxN1lYQndVM1JoZEdVdWRHaGxiV1Y5SUdac2FYQTlleUZwYzFKVVRIMGdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd0bGVVSnBibVJwYm1jNklGd2lkMXdpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVTZJRndpWW1GeVhDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR1Y0ZERvZ2RDaGNJbXhoWW1Wc2N5NWhjbkp2ZDJobFlXUmZZbUZ5WENJcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbGpiMjQ2SUR4QmNuSnZkMmhsWVdSQ1lYSkpZMjl1SUhSb1pXMWxQWHRoY0hCVGRHRjBaUzUwYUdWdFpYMGdabXhwY0QxN0lXbHpVbFJNZlNBdlBpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnJaWGxDYVc1a2FXNW5PaUJjSW1WY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsT2lCY0ltUnZkRndpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSbGVIUTZJSFFvWENKc1lXSmxiSE11WVhKeWIzZG9aV0ZrWDJSdmRGd2lLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWTI5dU9pQThRWEp5YjNkb1pXRmtSRzkwU1dOdmJpQjBhR1Z0WlQxN1lYQndVM1JoZEdVdWRHaGxiV1Y5SUdac2FYQTlleUZwYzFKVVRIMGdMejRzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYTJWNVFtbHVaR2x1WnpvZ1hDSnlYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyWVd4MVpUb2dYQ0owY21saGJtZHNaVndpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSbGVIUTZJSFFvWENKc1lXSmxiSE11WVhKeWIzZG9aV0ZrWDNSeWFXRnVaMnhsWENJcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbGpiMjQ2SUNoY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeEJjbkp2ZDJobFlXUlVjbWxoYm1kc1pVbGpiMjRnZEdobGJXVTllMkZ3Y0ZOMFlYUmxMblJvWlcxbGZTQm1iR2x3UFhzaGFYTlNWRXg5SUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnJaWGxDYVc1a2FXNW5PaUJjSW5SY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUYxOVhHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVd4MVpUMTdaMlYwUm05eWJWWmhiSFZsUEVGeWNtOTNhR1ZoWkNCOElHNTFiR3crS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBjeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdZWEJ3VTNSaGRHVXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDaGxiR1Z0Wlc1MEtTQTlQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x6VEdsdVpXRnlSV3hsYldWdWRDaGxiR1Z0Wlc1MEtTQW1KaUJqWVc1SVlYWmxRWEp5YjNkb1pXRmtjeWhsYkdWdFpXNTBMblI1Y0dVcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQS9JR1ZzWlcxbGJuUXVjM1JoY25SQmNuSnZkMmhsWVdSY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEb2dZWEJ3VTNSaGRHVXVZM1Z5Y21WdWRFbDBaVzFUZEdGeWRFRnljbTkzYUdWaFpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1lYQndVM1JoZEdVdVkzVnljbVZ1ZEVsMFpXMVRkR0Z5ZEVGeWNtOTNhR1ZoWkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ2w5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnZia05vWVc1blpUMTdLSFpoYkhWbEtTQTlQaUIxY0dSaGRHVkVZWFJoS0hzZ2NHOXphWFJwYjI0NklGd2ljM1JoY25SY0lpd2dkSGx3WlRvZ2RtRnNkV1VnZlNsOVhHNGdJQ0FnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ0FnSUNBOFNXTnZibEJwWTJ0bGNseHVJQ0FnSUNBZ0lDQWdJQ0FnYkdGaVpXdzlYQ0poY25KdmQyaGxZV1JmWlc1a1hDSmNiaUFnSUNBZ0lDQWdJQ0FnSUdkeWIzVndQVndpWVhKeWIzZG9aV0ZrYzF3aVhHNGdJQ0FnSUNBZ0lDQWdJQ0J2Y0hScGIyNXpQWHRiWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IyWVd4MVpUb2diblZzYkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMFpYaDBPaUIwS0Z3aWJHRmlaV3h6TG1GeWNtOTNhR1ZoWkY5dWIyNWxYQ0lwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd0bGVVSnBibVJwYm1jNklGd2ljVndpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsamIyNDZJRHhCY25KdmQyaGxZV1JPYjI1bFNXTnZiaUIwYUdWdFpUMTdZWEJ3VTNSaGRHVXVkR2hsYldWOUlDOCtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkbUZzZFdVNklGd2lZWEp5YjNkY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBaWGgwT2lCMEtGd2liR0ZpWld4ekxtRnljbTkzYUdWaFpGOWhjbkp2ZDF3aUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnJaWGxDYVc1a2FXNW5PaUJjSW5kY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBZMjl1T2lBb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThRWEp5YjNkb1pXRmtRWEp5YjNkSlkyOXVJSFJvWlcxbFBYdGhjSEJUZEdGMFpTNTBhR1Z0WlgwZ1pteHBjRDE3YVhOU1ZFeDlJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGJIVmxPaUJjSW1KaGNsd2lMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJsZUhRNklIUW9YQ0pzWVdKbGJITXVZWEp5YjNkb1pXRmtYMkpoY2x3aUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnJaWGxDYVc1a2FXNW5PaUJjSW1WY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBZMjl1T2lBOFFYSnliM2RvWldGa1FtRnlTV052YmlCMGFHVnRaVDE3WVhCd1UzUmhkR1V1ZEdobGJXVjlJR1pzYVhBOWUybHpVbFJNZlNBdlBpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsT2lCY0ltUnZkRndpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSbGVIUTZJSFFvWENKc1lXSmxiSE11WVhKeWIzZG9aV0ZrWDJSdmRGd2lLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JyWlhsQ2FXNWthVzVuT2lCY0luSmNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWTI5dU9pQThRWEp5YjNkb1pXRmtSRzkwU1dOdmJpQjBhR1Z0WlQxN1lYQndVM1JoZEdVdWRHaGxiV1Y5SUdac2FYQTllMmx6VWxSTWZTQXZQaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbE9pQmNJblJ5YVdGdVoyeGxYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdWNGREb2dkQ2hjSW14aFltVnNjeTVoY25KdmQyaGxZV1JmZEhKcFlXNW5iR1ZjSWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXTnZiam9nS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BFRnljbTkzYUdWaFpGUnlhV0Z1WjJ4bFNXTnZiaUIwYUdWdFpUMTdZWEJ3VTNSaGRHVXVkR2hsYldWOUlHWnNhWEE5ZTJselVsUk1mU0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2EyVjVRbWx1WkdsdVp6b2dYQ0owWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JkZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZzZFdVOWUyZGxkRVp2Y20xV1lXeDFaVHhCY25KdmQyaGxZV1FnZkNCdWRXeHNQaWhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRITXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHRndjRk4wWVhSbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBb1pXeGxiV1Z1ZENrZ1BUNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBjMHhwYm1WaGNrVnNaVzFsYm5Rb1pXeGxiV1Z1ZENrZ0ppWWdZMkZ1U0dGMlpVRnljbTkzYUdWaFpITW9aV3hsYldWdWRDNTBlWEJsS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1B5QmxiR1Z0Wlc1MExtVnVaRUZ5Y205M2FHVmhaRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnT2lCaGNIQlRkR0YwWlM1amRYSnlaVzUwU1hSbGJVVnVaRUZ5Y205M2FHVmhaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdZWEJ3VTNSaGRHVXVZM1Z5Y21WdWRFbDBaVzFGYm1SQmNuSnZkMmhsWVdRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVEYUdGdVoyVTlleWgyWVd4MVpTa2dQVDRnZFhCa1lYUmxSR0YwWVNoN0lIQnZjMmwwYVc5dU9pQmNJbVZ1WkZ3aUxDQjBlWEJsT2lCMllXeDFaU0I5S1gxY2JpQWdJQ0FnSUNBZ0lDQXZQbHh1SUNBZ0lDQWdJQ0E4TDJScGRqNWNiaUFnSUNBZ0lEd3ZabWxsYkdSelpYUStYRzRnSUNBZ0tUdGNiaUFnZlN4Y2JuMHBPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9hY3Rpb25zL2FjdGlvblByb3BlcnRpZXMudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9hY3Rpb25zL2FjdGlvblNlbGVjdEFsbC50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9hY3Rpb25zL2FjdGlvblNlbGVjdEFsbC50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uU2VsZWN0QWxsXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uU2VsZWN0QWxsKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4va2V5cyAqLyBcXFwiLi4vLi4va2V5cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vcmVnaXN0ZXIgKi8gXFxcIi4uLy4uL2FjdGlvbnMvcmVnaXN0ZXIudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZ3JvdXBzICovIFxcXCIuLi8uLi9ncm91cHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvaW5kZXgudHNcXFwiKTtcXG5cXG5cXG5cXG5cXG5jb25zdCBhY3Rpb25TZWxlY3RBbGwgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwic2VsZWN0QWxsXFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSkgPT4ge1xcbiAgICAgICAgaWYgKGFwcFN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50KSB7XFxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBhcHBTdGF0ZTogKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnNlbGVjdEdyb3Vwc0ZvclNlbGVjdGVkRWxlbWVudHMpKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB7IGVkaXRpbmdHcm91cElkOiBudWxsLCBzZWxlY3RlZEVsZW1lbnRJZHM6IGVsZW1lbnRzLnJlZHVjZSgobWFwLCBlbGVtZW50KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoIWVsZW1lbnQuaXNEZWxldGVkICYmXFxuICAgICAgICAgICAgICAgICAgICAgICAgISgoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmlzVGV4dEVsZW1lbnQpKGVsZW1lbnQpICYmIGVsZW1lbnQuY29udGFpbmVySWQpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwW2VsZW1lbnQuaWRdID0gdHJ1ZTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXA7XFxuICAgICAgICAgICAgICAgIH0sIHt9KSB9KSwgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiB0cnVlLFxcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAgY29udGV4dEl0ZW1MYWJlbDogXFxcImxhYmVscy5zZWxlY3RBbGxcXFwiLFxcbiAgICBrZXlUZXN0OiAoZXZlbnQpID0+IGV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uS0VZUy5DVFJMX09SX0NNRF0gJiYgZXZlbnQua2V5ID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLktFWVMuQSxcXG59KTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dllXTjBhVzl1Y3k5aFkzUnBiMjVUWld4bFkzUkJiR3d1ZEhNdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3UVVGQkswSTdRVUZEVHp0QlFVTnpRanRCUVVOTk8wRkJSVE5FTEUxQlFVMHNaVUZCWlN4SFFVRkhMRzFFUVVGUkxFTkJRVU03U1VGRGRFTXNTVUZCU1N4RlFVRkZMRmRCUVZjN1NVRkRha0lzVDBGQlR5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hGUVVGRk8xRkJRemxDTEVsQlFVa3NVVUZCVVN4RFFVRkRMRzlDUVVGdlFpeEZRVUZGTzFsQlEycERMRTlCUVU4c1MwRkJTeXhEUVVGRE8xTkJRMlE3VVVGRFJDeFBRVUZQTzFsQlEwd3NVVUZCVVN4RlFVRkZMSGRGUVVFclFpeHBRMEZGYkVNc1VVRkJVU3hMUVVOWUxHTkJRV01zUlVGQlJTeEpRVUZKTEVWQlEzQkNMR3RDUVVGclFpeEZRVUZGTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzVDBGQlR5eEZRVUZGTEVWQlFVVTdiMEpCUTI1RUxFbEJRMFVzUTBGQlF5eFBRVUZQTEVOQlFVTXNVMEZCVXp0M1FrRkRiRUlzUTBGQlF5eERRVUZETEhWRVFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4RlFVTm9SRHQzUWtGRFFTeEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF6dHhRa0ZEZUVJN2IwSkJRMFFzVDBGQlR5eEhRVUZITEVOQlFVTTdaMEpCUTJJc1EwRkJReXhGUVVGRkxFVkJRVk1zUTBGQlF5eExRVVZtTEN0RVFVRnhRaXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVU5vUXp0WlFVTkVMR1ZCUVdVc1JVRkJSU3hKUVVGSk8xTkJRM1JDTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUTBRc1owSkJRV2RDTEVWQlFVVXNhMEpCUVd0Q08wbEJRM0JETEU5QlFVOHNSVUZCUlN4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEcxRVFVRm5RaXhEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZETEVkQlFVY3NTMEZCU3l4NVEwRkJUVHREUVVOd1JTeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNVRaV3hsWTNSQmJHd3VkSE0vWlRnM05DSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJMUlZsVElIMGdabkp2YlNCY0lpNHVMMnRsZVhOY0lqdGNibWx0Y0c5eWRDQjdJSEpsWjJsemRHVnlJSDBnWm5KdmJTQmNJaTR2Y21WbmFYTjBaWEpjSWp0Y2JtbHRjRzl5ZENCN0lITmxiR1ZqZEVkeWIzVndjMFp2Y2xObGJHVmpkR1ZrUld4bGJXVnVkSE1nZlNCbWNtOXRJRndpTGk0dlozSnZkWEJ6WENJN1hHNXBiWEJ2Y25RZ2V5Qm5aWFJPYjI1RVpXeGxkR1ZrUld4bGJXVnVkSE1zSUdselZHVjRkRVZzWlcxbGJuUWdmU0JtY205dElGd2lMaTR2Wld4bGJXVnVkRndpTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWVdOMGFXOXVVMlZzWldOMFFXeHNJRDBnY21WbmFYTjBaWElvZTF4dUlDQnVZVzFsT2lCY0luTmxiR1ZqZEVGc2JGd2lMRnh1SUNCd1pYSm1iM0p0T2lBb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbEtTQTlQaUI3WEc0Z0lDQWdhV1lnS0dGd2NGTjBZWFJsTG1Wa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1MEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCaGNIQlRkR0YwWlRvZ2MyVnNaV04wUjNKdmRYQnpSbTl5VTJWc1pXTjBaV1JGYkdWdFpXNTBjeWhjYmlBZ0lDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNBZ0lDNHVMbUZ3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdJQ0FnSUdWa2FYUnBibWRIY205MWNFbGtPaUJ1ZFd4c0xGeHVJQ0FnSUNBZ0lDQWdJSE5sYkdWamRHVmtSV3hsYldWdWRFbGtjem9nWld4bGJXVnVkSE11Y21Wa2RXTmxLQ2h0WVhBc0lHVnNaVzFsYm5RcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJV1ZzWlcxbGJuUXVhWE5FWld4bGRHVmtJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0VvYVhOVVpYaDBSV3hsYldWdWRDaGxiR1Z0Wlc1MEtTQW1KaUJsYkdWdFpXNTBMbU52Ym5SaGFXNWxja2xrS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRzFoY0Z0bGJHVnRaVzUwTG1sa1hTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2JXRndPMXh1SUNBZ0lDQWdJQ0FnSUgwc0lIdDlJR0Z6SUdGdWVTa3NYRzRnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUdkbGRFNXZia1JsYkdWMFpXUkZiR1Z0Wlc1MGN5aGxiR1Z0Wlc1MGN5a3NYRzRnSUNBZ0lDQXBMRnh1SUNBZ0lDQWdZMjl0YldsMFZHOUlhWE4wYjNKNU9pQjBjblZsTEZ4dUlDQWdJSDA3WEc0Z0lIMHNYRzRnSUdOdmJuUmxlSFJKZEdWdFRHRmlaV3c2SUZ3aWJHRmlaV3h6TG5ObGJHVmpkRUZzYkZ3aUxGeHVJQ0JyWlhsVVpYTjBPaUFvWlhabGJuUXBJRDArSUdWMlpXNTBXMHRGV1ZNdVExUlNURjlQVWw5RFRVUmRJQ1ltSUdWMlpXNTBMbXRsZVNBOVBUMGdTMFZaVXk1QkxGeHVmU2s3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vYWN0aW9ucy9hY3Rpb25TZWxlY3RBbGwudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2FjdGlvbnMvYWN0aW9uU3R5bGVzLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2FjdGlvbnMvYWN0aW9uU3R5bGVzLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJjb3BpZWRTdHlsZXNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBjb3BpZWRTdHlsZXMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNvcHlTdHlsZXNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25Db3B5U3R5bGVzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25QYXN0ZVN0eWxlc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvblBhc3RlU3R5bGVzKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4va2V5cyAqLyBcXFwiLi4vLi4va2V5cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vcmVnaXN0ZXIgKi8gXFxcIi4uLy4uL2FjdGlvbnMvcmVnaXN0ZXIudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC9tdXRhdGVFbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L211dGF0ZUVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29uc3RhbnRzICovIFxcXCIuLi8uLi9jb25zdGFudHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvdGV4dEVsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdGV4dEVsZW1lbnQudHNcXFwiKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG4vLyBgY29waWVkU3R5bGVzYCBpcyBleHBvcnRlZCBvbmx5IGZvciB0ZXN0cy5cXG5sZXQgY29waWVkU3R5bGVzID0gXFxcInt9XFxcIjtcXG5jb25zdCBhY3Rpb25Db3B5U3R5bGVzID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImNvcHlTdHlsZXNcXFwiLFxcbiAgICBwZXJmb3JtOiAoZWxlbWVudHMsIGFwcFN0YXRlKSA9PiB7XFxuICAgICAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudHMuZmluZCgoZWwpID0+IGFwcFN0YXRlLnNlbGVjdGVkRWxlbWVudElkc1tlbC5pZF0pO1xcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcXG4gICAgICAgICAgICBjb3BpZWRTdHlsZXMgPSBKU09OLnN0cmluZ2lmeShlbGVtZW50KTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB7IHRvYXN0TWVzc2FnZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwidG9hc3QuY29weVN0eWxlc1xcXCIpIH0pLFxcbiAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBjb250ZXh0SXRlbUxhYmVsOiBcXFwibGFiZWxzLmNvcHlTdHlsZXNcXFwiLFxcbiAgICBrZXlUZXN0OiAoZXZlbnQpID0+IGV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uS0VZUy5DVFJMX09SX0NNRF0gJiYgZXZlbnQuYWx0S2V5ICYmIGV2ZW50LmNvZGUgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uQ09ERVMuQyxcXG59KTtcXG5jb25zdCBhY3Rpb25QYXN0ZVN0eWxlcyA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJwYXN0ZVN0eWxlc1xcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgICAgIGNvbnN0IHBhc3RlZEVsZW1lbnQgPSBKU09OLnBhcnNlKGNvcGllZFN0eWxlcyk7XFxuICAgICAgICBpZiAoISgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uaXNFeGNhbGlkcmF3RWxlbWVudCkocGFzdGVkRWxlbWVudCkpIHtcXG4gICAgICAgICAgICByZXR1cm4geyBlbGVtZW50cywgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSB9O1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBlbGVtZW50czogZWxlbWVudHMubWFwKChlbGVtZW50KSA9PiB7XFxuICAgICAgICAgICAgICAgIGlmIChhcHBTdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHNbZWxlbWVudC5pZF0pIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0VsZW1lbnQgPSAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18ubmV3RWxlbWVudFdpdGgpKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHBhc3RlZEVsZW1lbnQgPT09IG51bGwgfHwgcGFzdGVkRWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFzdGVkRWxlbWVudC5iYWNrZ3JvdW5kQ29sb3IsXFxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IHBhc3RlZEVsZW1lbnQgPT09IG51bGwgfHwgcGFzdGVkRWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFzdGVkRWxlbWVudC5zdHJva2VXaWR0aCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VDb2xvcjogcGFzdGVkRWxlbWVudCA9PT0gbnVsbCB8fCBwYXN0ZWRFbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXN0ZWRFbGVtZW50LnN0cm9rZUNvbG9yLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVN0eWxlOiBwYXN0ZWRFbGVtZW50ID09PSBudWxsIHx8IHBhc3RlZEVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhc3RlZEVsZW1lbnQuc3Ryb2tlU3R5bGUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbFN0eWxlOiBwYXN0ZWRFbGVtZW50ID09PSBudWxsIHx8IHBhc3RlZEVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhc3RlZEVsZW1lbnQuZmlsbFN0eWxlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IHBhc3RlZEVsZW1lbnQgPT09IG51bGwgfHwgcGFzdGVkRWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFzdGVkRWxlbWVudC5vcGFjaXR5LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdWdobmVzczogcGFzdGVkRWxlbWVudCA9PT0gbnVsbCB8fCBwYXN0ZWRFbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXN0ZWRFbGVtZW50LnJvdWdobmVzcyxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uaXNUZXh0RWxlbWVudCkobmV3RWxlbWVudCkgJiYgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5pc1RleHRFbGVtZW50KShlbGVtZW50KSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5tdXRhdGVFbGVtZW50KShuZXdFbGVtZW50LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAocGFzdGVkRWxlbWVudCA9PT0gbnVsbCB8fCBwYXN0ZWRFbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXN0ZWRFbGVtZW50LmZvbnRTaXplKSB8fCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uREVGQVVMVF9GT05UX1NJWkUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk6IChwYXN0ZWRFbGVtZW50ID09PSBudWxsIHx8IHBhc3RlZEVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhc3RlZEVsZW1lbnQuZm9udEZhbWlseSkgfHwgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLkRFRkFVTFRfRk9OVF9GQU1JTFksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogKHBhc3RlZEVsZW1lbnQgPT09IG51bGwgfHwgcGFzdGVkRWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFzdGVkRWxlbWVudC50ZXh0QWxpZ24pIHx8IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5ERUZBVUxUX1RFWFRfQUxJR04sXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5yZWRyYXdUZXh0Qm91bmRpbmdCb3gpKGVsZW1lbnQsICgwLF9lbGVtZW50X3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uZ2V0Q29udGFpbmVyRWxlbWVudCkoZWxlbWVudCksIGFwcFN0YXRlKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdFbGVtZW50O1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50O1xcbiAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogdHJ1ZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIGNvbnRleHRJdGVtTGFiZWw6IFxcXCJsYWJlbHMucGFzdGVTdHlsZXNcXFwiLFxcbiAgICBrZXlUZXN0OiAoZXZlbnQpID0+IGV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uS0VZUy5DVFJMX09SX0NNRF0gJiYgZXZlbnQuYWx0S2V5ICYmIGV2ZW50LmNvZGUgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uQ09ERVMuVixcXG59KTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dllXTjBhVzl1Y3k5aFkzUnBiMjVUZEhsc1pYTXVkSE11YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3p0QlFVbHZRanRCUVVOclFqdEJRVU5XTzBGQlExVTdRVUZEYlVNN1FVRkxia1E3UVVGRGRVTTdRVUZGTjBRc05rTkJRVFpETzBGQlEzUkRMRWxCUVVrc1dVRkJXU3hIUVVGWExFbEJRVWtzUTBGQlF6dEJRVVZvUXl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEcxRVFVRlJMRU5CUVVNN1NVRkRka01zU1VGQlNTeEZRVUZGTEZsQlFWazdTVUZEYkVJc1QwRkJUeXhGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4RlFVRkZPMUZCUXpsQ0xFMUJRVTBzVDBGQlR5eEhRVUZITEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNeFJTeEpRVUZKTEU5QlFVOHNSVUZCUlR0WlFVTllMRmxCUVZrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMU5CUTNoRE8xRkJRMFFzVDBGQlR6dFpRVU5NTEZGQlFWRXNhME5CUTBnc1VVRkJVU3hMUVVOWUxGbEJRVmtzUlVGQlJTeDNRMEZCUXl4RFFVRkRMR3RDUVVGclFpeERRVUZETEVkQlEzQkRPMWxCUTBRc1pVRkJaU3hGUVVGRkxFdEJRVXM3VTBGRGRrSXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkRSQ3huUWtGQlowSXNSVUZCUlN4dFFrRkJiVUk3U1VGRGNrTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGRGFrSXNTMEZCU3l4RFFVRkRMRzFFUVVGblFpeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRkRMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zU1VGQlNTeExRVUZMTERCRFFVRlBPME5CUTNCRkxFTkJRVU1zUTBGQlF6dEJRVVZKTEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzYlVSQlFWRXNRMEZCUXp0SlFVTjRReXhKUVVGSkxFVkJRVVVzWVVGQllUdEpRVU51UWl4UFFVRlBMRVZCUVVVc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVWQlFVVTdVVUZET1VJc1RVRkJUU3hoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRSUVVNdlF5eEpRVUZKTEVOQlFVTXNOa1JCUVcxQ0xFTkJRVU1zWVVGQllTeERRVUZETEVWQlFVVTdXVUZEZGtNc1QwRkJUeXhGUVVGRkxGRkJRVkVzUlVGQlJTeGxRVUZsTEVWQlFVVXNTMEZCU3l4RlFVRkZMRU5CUVVNN1UwRkROME03VVVGRFJDeFBRVUZQTzFsQlEwd3NVVUZCVVN4RlFVRkZMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlR0blFrRkRha01zU1VGQlNTeFJRVUZSTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZPMjlDUVVNelF5eE5RVUZOTEZWQlFWVXNSMEZCUnl4elJVRkJZeXhEUVVGRExFOUJRVThzUlVGQlJUdDNRa0ZEZWtNc1pVRkJaU3hGUVVGRkxHRkJRV0VzWVVGQllpeGhRVUZoTEhWQ1FVRmlMR0ZCUVdFc1EwRkJSU3hsUVVGbE8zZENRVU12UXl4WFFVRlhMRVZCUVVVc1lVRkJZU3hoUVVGaUxHRkJRV0VzZFVKQlFXSXNZVUZCWVN4RFFVRkZMRmRCUVZjN2QwSkJRM1pETEZkQlFWY3NSVUZCUlN4aFFVRmhMR0ZCUVdJc1lVRkJZU3gxUWtGQllpeGhRVUZoTEVOQlFVVXNWMEZCVnp0M1FrRkRka01zVjBGQlZ5eEZRVUZGTEdGQlFXRXNZVUZCWWl4aFFVRmhMSFZDUVVGaUxHRkJRV0VzUTBGQlJTeFhRVUZYTzNkQ1FVTjJReXhUUVVGVExFVkJRVVVzWVVGQllTeGhRVUZpTEdGQlFXRXNkVUpCUVdJc1lVRkJZU3hEUVVGRkxGTkJRVk03ZDBKQlEyNURMRTlCUVU4c1JVRkJSU3hoUVVGaExHRkJRV0lzWVVGQllTeDFRa0ZCWWl4aFFVRmhMRU5CUVVVc1QwRkJUenQzUWtGREwwSXNVMEZCVXl4RlFVRkZMR0ZCUVdFc1lVRkJZaXhoUVVGaExIVkNRVUZpTEdGQlFXRXNRMEZCUlN4VFFVRlRPM0ZDUVVOd1F5eERRVUZETEVOQlFVTTdiMEpCUTBnc1NVRkJTU3gxUkVGQllTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMSFZFUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVTdkMEpCUTNaRUxIRkZRVUZoTEVOQlFVTXNWVUZCVlN4RlFVRkZPelJDUVVONFFpeFJRVUZSTEVWQlFVVXNZMEZCWVN4aFFVRmlMR0ZCUVdFc2RVSkJRV0lzWVVGQllTeERRVUZGTEZGQlFWRXNTMEZCU1N4NVJFRkJhVUk3TkVKQlEzUkVMRlZCUVZVc1JVRkJSU3hqUVVGaExHRkJRV0lzWVVGQllTeDFRa0ZCWWl4aFFVRmhMRU5CUVVVc1ZVRkJWU3hMUVVGSkxESkVRVUZ0UWpzMFFrRkROVVFzVTBGQlV5eEZRVUZGTEdOQlFXRXNZVUZCWWl4aFFVRmhMSFZDUVVGaUxHRkJRV0VzUTBGQlJTeFRRVUZUTEV0QlFVa3NNRVJCUVd0Q08zbENRVU14UkN4RFFVRkRMRU5CUVVNN2QwSkJSVWdzSzBSQlFYRkNMRU5CUTI1Q0xFOUJRVThzUlVGRFVDeDVSVUZCYlVJc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGRE5VSXNVVUZCVVN4RFFVTlVMRU5CUVVNN2NVSkJRMGc3YjBKQlEwUXNUMEZCVHl4VlFVRlZMRU5CUVVNN2FVSkJRMjVDTzJkQ1FVTkVMRTlCUVU4c1QwRkJUeXhEUVVGRE8xbEJRMnBDTEVOQlFVTXNRMEZCUXp0WlFVTkdMR1ZCUVdVc1JVRkJSU3hKUVVGSk8xTkJRM1JDTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUTBRc1owSkJRV2RDTEVWQlFVVXNiMEpCUVc5Q08wbEJRM1JETEU5QlFVOHNSVUZCUlN4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRMnBDTEV0QlFVc3NRMEZCUXl4dFJFRkJaMElzUTBGQlF5eEpRVUZKTEV0QlFVc3NRMEZCUXl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExFbEJRVWtzUzBGQlN5d3dRMEZCVHp0RFFVTndSU3hEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dllXTjBhVzl1Y3k5aFkzUnBiMjVUZEhsc1pYTXVkSE0vT0RBMk1pSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMXh1SUNCcGMxUmxlSFJGYkdWdFpXNTBMRnh1SUNCcGMwVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MExGeHVJQ0J5WldSeVlYZFVaWGgwUW05MWJtUnBibWRDYjNnc1hHNTlJR1p5YjIwZ1hDSXVMaTlsYkdWdFpXNTBYQ0k3WEc1cGJYQnZjblFnZXlCRFQwUkZVeXdnUzBWWlV5QjlJR1p5YjIwZ1hDSXVMaTlyWlhselhDSTdYRzVwYlhCdmNuUWdleUIwSUgwZ1puSnZiU0JjSWk0dUwya3hPRzVjSWp0Y2JtbHRjRzl5ZENCN0lISmxaMmx6ZEdWeUlIMGdabkp2YlNCY0lpNHZjbVZuYVhOMFpYSmNJanRjYm1sdGNHOXlkQ0I3SUcxMWRHRjBaVVZzWlcxbGJuUXNJRzVsZDBWc1pXMWxiblJYYVhSb0lIMGdabkp2YlNCY0lpNHVMMlZzWlcxbGJuUXZiWFYwWVhSbFJXeGxiV1Z1ZEZ3aU8xeHVhVzF3YjNKMElIdGNiaUFnUkVWR1FWVk1WRjlHVDA1VVgxTkpXa1VzWEc0Z0lFUkZSa0ZWVEZSZlJrOU9WRjlHUVUxSlRGa3NYRzRnSUVSRlJrRlZURlJmVkVWWVZGOUJURWxIVGl4Y2JuMGdabkp2YlNCY0lpNHVMMk52Ym5OMFlXNTBjMXdpTzF4dWFXMXdiM0owSUhzZ1oyVjBRMjl1ZEdGcGJtVnlSV3hsYldWdWRDQjlJR1p5YjIwZ1hDSXVMaTlsYkdWdFpXNTBMM1JsZUhSRmJHVnRaVzUwWENJN1hHNWNiaTh2SUdCamIzQnBaV1JUZEhsc1pYTmdJR2x6SUdWNGNHOXlkR1ZrSUc5dWJIa2dabTl5SUhSbGMzUnpMbHh1Wlhod2IzSjBJR3hsZENCamIzQnBaV1JUZEhsc1pYTTZJSE4wY21sdVp5QTlJRndpZTMxY0lqdGNibHh1Wlhod2IzSjBJR052Ym5OMElHRmpkR2x2YmtOdmNIbFRkSGxzWlhNZ1BTQnlaV2RwYzNSbGNpaDdYRzRnSUc1aGJXVTZJRndpWTI5d2VWTjBlV3hsYzF3aUxGeHVJQ0J3WlhKbWIzSnRPaUFvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsS1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnWld4bGJXVnVkQ0E5SUdWc1pXMWxiblJ6TG1acGJtUW9LR1ZzS1NBOVBpQmhjSEJUZEdGMFpTNXpaV3hsWTNSbFpFVnNaVzFsYm5SSlpITmJaV3d1YVdSZEtUdGNiaUFnSUNCcFppQW9aV3hsYldWdWRDa2dlMXh1SUNBZ0lDQWdZMjl3YVdWa1UzUjViR1Z6SUQwZ1NsTlBUaTV6ZEhKcGJtZHBabmtvWld4bGJXVnVkQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCaGNIQlRkR0YwWlRvZ2UxeHVJQ0FnSUNBZ0lDQXVMaTVoY0hCVGRHRjBaU3hjYmlBZ0lDQWdJQ0FnZEc5aGMzUk5aWE56WVdkbE9pQjBLRndpZEc5aGMzUXVZMjl3ZVZOMGVXeGxjMXdpS1N4Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCamIyMXRhWFJVYjBocGMzUnZjbms2SUdaaGJITmxMRnh1SUNBZ0lIMDdYRzRnSUgwc1hHNGdJR052Ym5SbGVIUkpkR1Z0VEdGaVpXdzZJRndpYkdGaVpXeHpMbU52Y0hsVGRIbHNaWE5jSWl4Y2JpQWdhMlY1VkdWemREb2dLR1YyWlc1MEtTQTlQbHh1SUNBZ0lHVjJaVzUwVzB0RldWTXVRMVJTVEY5UFVsOURUVVJkSUNZbUlHVjJaVzUwTG1Gc2RFdGxlU0FtSmlCbGRtVnVkQzVqYjJSbElEMDlQU0JEVDBSRlV5NURMRnh1ZlNrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCaFkzUnBiMjVRWVhOMFpWTjBlV3hsY3lBOUlISmxaMmx6ZEdWeUtIdGNiaUFnYm1GdFpUb2dYQ0p3WVhOMFpWTjBlV3hsYzF3aUxGeHVJQ0J3WlhKbWIzSnRPaUFvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsS1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnY0dGemRHVmtSV3hsYldWdWRDQTlJRXBUVDA0dWNHRnljMlVvWTI5d2FXVmtVM1I1YkdWektUdGNiaUFnSUNCcFppQW9JV2x6UlhoallXeHBaSEpoZDBWc1pXMWxiblFvY0dGemRHVmtSV3hsYldWdWRDa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjdJR1ZzWlcxbGJuUnpMQ0JqYjIxdGFYUlViMGhwYzNSdmNuazZJR1poYkhObElIMDdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0JsYkdWdFpXNTBjem9nWld4bGJXVnVkSE11YldGd0tDaGxiR1Z0Wlc1MEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUdsbUlDaGhjSEJUZEdGMFpTNXpaV3hsWTNSbFpFVnNaVzFsYm5SSlpITmJaV3hsYldWdWRDNXBaRjBwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdVpYZEZiR1Z0Wlc1MElEMGdibVYzUld4bGJXVnVkRmRwZEdnb1pXeGxiV1Z1ZEN3Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWW1GamEyZHliM1Z1WkVOdmJHOXlPaUJ3WVhOMFpXUkZiR1Z0Wlc1MFB5NWlZV05yWjNKdmRXNWtRMjlzYjNJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZEhKdmEyVlhhV1IwYURvZ2NHRnpkR1ZrUld4bGJXVnVkRDh1YzNSeWIydGxWMmxrZEdnc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZEhKdmEyVkRiMnh2Y2pvZ2NHRnpkR1ZrUld4bGJXVnVkRDh1YzNSeWIydGxRMjlzYjNJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZEhKdmEyVlRkSGxzWlRvZ2NHRnpkR1ZrUld4bGJXVnVkRDh1YzNSeWIydGxVM1I1YkdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JtYVd4c1UzUjViR1U2SUhCaGMzUmxaRVZzWlcxbGJuUS9MbVpwYkd4VGRIbHNaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXdZV05wZEhrNklIQmhjM1JsWkVWc1pXMWxiblEvTG05d1lXTnBkSGtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnliM1ZuYUc1bGMzTTZJSEJoYzNSbFpFVnNaVzFsYm5RL0xuSnZkV2RvYm1WemN5eGNiaUFnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvYVhOVVpYaDBSV3hsYldWdWRDaHVaWGRGYkdWdFpXNTBLU0FtSmlCcGMxUmxlSFJGYkdWdFpXNTBLR1ZzWlcxbGJuUXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnRkWFJoZEdWRmJHVnRaVzUwS0c1bGQwVnNaVzFsYm5Rc0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1ptOXVkRk5wZW1VNklIQmhjM1JsWkVWc1pXMWxiblEvTG1admJuUlRhWHBsSUh4OElFUkZSa0ZWVEZSZlJrOU9WRjlUU1ZwRkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCbWIyNTBSbUZ0YVd4NU9pQndZWE4wWldSRmJHVnRaVzUwUHk1bWIyNTBSbUZ0YVd4NUlIeDhJRVJGUmtGVlRGUmZSazlPVkY5R1FVMUpURmtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFJsZUhSQmJHbG5iam9nY0dGemRHVmtSV3hsYldWdWREOHVkR1Y0ZEVGc2FXZHVJSHg4SUVSRlJrRlZURlJmVkVWWVZGOUJURWxIVGl4Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WldSeVlYZFVaWGgwUW05MWJtUnBibWRDYjNnb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc1pXMWxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR2RsZEVOdmJuUmhhVzVsY2tWc1pXMWxiblFvWld4bGJXVnVkQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1bGQwVnNaVzFsYm5RN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHVnNaVzFsYm5RN1hHNGdJQ0FnSUNCOUtTeGNiaUFnSUNBZ0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVRvZ2RISjFaU3hjYmlBZ0lDQjlPMXh1SUNCOUxGeHVJQ0JqYjI1MFpYaDBTWFJsYlV4aFltVnNPaUJjSW14aFltVnNjeTV3WVhOMFpWTjBlV3hsYzF3aUxGeHVJQ0JyWlhsVVpYTjBPaUFvWlhabGJuUXBJRDArWEc0Z0lDQWdaWFpsYm5SYlMwVlpVeTVEVkZKTVgwOVNYME5OUkYwZ0ppWWdaWFpsYm5RdVlXeDBTMlY1SUNZbUlHVjJaVzUwTG1OdlpHVWdQVDA5SUVOUFJFVlRMbFlzWEc1OUtUdGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9hY3Rpb25zL2FjdGlvblN0eWxlcy50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25Ub2dnbGVHcmlkTW9kZS50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vYWN0aW9ucy9hY3Rpb25Ub2dnbGVHcmlkTW9kZS50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvblRvZ2dsZUdyaWRNb2RlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uVG9nZ2xlR3JpZE1vZGUpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9rZXlzICovIFxcXCIuLi8uLi9rZXlzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9yZWdpc3RlciAqLyBcXFwiLi4vLi4vYWN0aW9ucy9yZWdpc3Rlci50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYW5hbHl0aWNzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9hbmFseXRpY3MgKi8gXFxcIi4uLy4uL2FuYWx5dGljcy50c1xcXCIpO1xcblxcblxcblxcblxcbmNvbnN0IGFjdGlvblRvZ2dsZUdyaWRNb2RlID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImdyaWRNb2RlXFxcIixcXG4gICAgcGVyZm9ybShlbGVtZW50cywgYXBwU3RhdGUpIHtcXG4gICAgICAgICgwLF9hbmFseXRpY3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy50cmFja0V2ZW50KShcXFwidmlld1xcXCIsIFxcXCJtb2RlXFxcIiwgXFxcImdyaWRcXFwiKTtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB7IGdyaWRTaXplOiB0aGlzLmNoZWNrZWQoYXBwU3RhdGUpID8gbnVsbCA6IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5HUklEX1NJWkUgfSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIGNoZWNrZWQ6IChhcHBTdGF0ZSkgPT4gYXBwU3RhdGUuZ3JpZFNpemUgIT09IG51bGwsXFxuICAgIGNvbnRleHRJdGVtTGFiZWw6IFxcXCJsYWJlbHMuc2hvd0dyaWRcXFwiLFxcbiAgICBrZXlUZXN0OiAoZXZlbnQpID0+IGV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uS0VZUy5DVFJMX09SX0NNRF0gJiYgZXZlbnQuY29kZSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5DT0RFUy5RVU9URSxcXG59KTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dllXTjBhVzl1Y3k5aFkzUnBiMjVVYjJkbmJHVkhjbWxrVFc5a1pTNTBjM2d1YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdRVUZCYzBNN1FVRkRRVHRCUVVOSE8wRkJSVU03UVVGRmJrTXNUVUZCVFN4dlFrRkJiMElzUjBGQlJ5eHRSRUZCVVN4RFFVRkRPMGxCUXpORExFbEJRVWtzUlVGQlJTeFZRVUZWTzBsQlEyaENMRTlCUVU4c1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVUdFJRVU40UWl4elJFRkJWU3hEUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRia01zVDBGQlR6dFpRVU5NTEZGQlFWRXNhME5CUTBnc1VVRkJVU3hMUVVOWUxGRkJRVkVzUlVGQlJTeEpRVUZKTEVOQlFVTXNUMEZCVVN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMR2xFUVVGVExFZEJRM0pFTzFsQlEwUXNaVUZCWlN4RlFVRkZMRXRCUVVzN1UwRkRka0lzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZEUkN4UFFVRlBMRVZCUVVVc1EwRkJReXhSUVVGclFpeEZRVUZGTEVWQlFVVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1VVRkJVU3hMUVVGTExFbEJRVWs3U1VGRE0wUXNaMEpCUVdkQ0xFVkJRVVVzYVVKQlFXbENPMGxCUTI1RExFOUJRVThzUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExHMUVRVUZuUWl4RFFVRkRMRWxCUVVrc1MwRkJTeXhEUVVGRExFbEJRVWtzUzBGQlN5dzRRMEZCVnp0RFFVTXhSU3hEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dllXTjBhVzl1Y3k5aFkzUnBiMjVVYjJkbmJHVkhjbWxrVFc5a1pTNTBjM2cvTVRrell5SmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJEVDBSRlV5d2dTMFZaVXlCOUlHWnliMjBnWENJdUxpOXJaWGx6WENJN1hHNXBiWEJ2Y25RZ2V5QnlaV2RwYzNSbGNpQjlJR1p5YjIwZ1hDSXVMM0psWjJsemRHVnlYQ0k3WEc1cGJYQnZjblFnZXlCSFVrbEVYMU5KV2tVZ2ZTQm1jbTl0SUZ3aUxpNHZZMjl1YzNSaGJuUnpYQ0k3WEc1cGJYQnZjblFnZXlCQmNIQlRkR0YwWlNCOUlHWnliMjBnWENJdUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dkSEpoWTJ0RmRtVnVkQ0I5SUdaeWIyMGdYQ0l1TGk5aGJtRnNlWFJwWTNOY0lqdGNibHh1Wlhod2IzSjBJR052Ym5OMElHRmpkR2x2YmxSdloyZHNaVWR5YVdSTmIyUmxJRDBnY21WbmFYTjBaWElvZTF4dUlDQnVZVzFsT2lCY0ltZHlhV1JOYjJSbFhDSXNYRzRnSUhCbGNtWnZjbTBvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsS1NCN1hHNGdJQ0FnZEhKaFkydEZkbVZ1ZENoY0luWnBaWGRjSWl3Z1hDSnRiMlJsWENJc0lGd2laM0pwWkZ3aUtUdGNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnWVhCd1UzUmhkR1U2SUh0Y2JpQWdJQ0FnSUNBZ0xpNHVZWEJ3VTNSaGRHVXNYRzRnSUNBZ0lDQWdJR2R5YVdSVGFYcGxPaUIwYUdsekxtTm9aV05yWldRaEtHRndjRk4wWVhSbEtTQS9JRzUxYkd3Z09pQkhVa2xFWDFOSldrVXNYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdZMjl0YldsMFZHOUlhWE4wYjNKNU9pQm1ZV3h6WlN4Y2JpQWdJQ0I5TzF4dUlDQjlMRnh1SUNCamFHVmphMlZrT2lBb1lYQndVM1JoZEdVNklFRndjRk4wWVhSbEtTQTlQaUJoY0hCVGRHRjBaUzVuY21sa1UybDZaU0FoUFQwZ2JuVnNiQ3hjYmlBZ1kyOXVkR1Y0ZEVsMFpXMU1ZV0psYkRvZ1hDSnNZV0psYkhNdWMyaHZkMGR5YVdSY0lpeGNiaUFnYTJWNVZHVnpkRG9nS0dWMlpXNTBLU0E5UGlCbGRtVnVkRnRMUlZsVExrTlVVa3hmVDFKZlEwMUVYU0FtSmlCbGRtVnVkQzVqYjJSbElEMDlQU0JEVDBSRlV5NVJWVTlVUlN4Y2JuMHBPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9hY3Rpb25zL2FjdGlvblRvZ2dsZUdyaWRNb2RlLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25Ub2dnbGVTdGF0cy50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vYWN0aW9ucy9hY3Rpb25Ub2dnbGVTdGF0cy50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvblRvZ2dsZVN0YXRzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uVG9nZ2xlU3RhdHMpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9yZWdpc3RlciAqLyBcXFwiLi4vLi4vYWN0aW9ucy9yZWdpc3Rlci50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4va2V5cyAqLyBcXFwiLi4vLi4va2V5cy50c1xcXCIpO1xcblxcblxcbmNvbnN0IGFjdGlvblRvZ2dsZVN0YXRzID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcInN0YXRzXFxcIixcXG4gICAgcGVyZm9ybShlbGVtZW50cywgYXBwU3RhdGUpIHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB7IHNob3dTdGF0czogIXRoaXMuY2hlY2tlZChhcHBTdGF0ZSkgfSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIGNoZWNrZWQ6IChhcHBTdGF0ZSkgPT4gYXBwU3RhdGUuc2hvd1N0YXRzLFxcbiAgICBjb250ZXh0SXRlbUxhYmVsOiBcXFwic3RhdHMudGl0bGVcXFwiLFxcbiAgICBrZXlUZXN0OiAoZXZlbnQpID0+ICFldmVudFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLktFWVMuQ1RSTF9PUl9DTURdICYmIGV2ZW50LmFsdEtleSAmJiBldmVudC5jb2RlID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkNPREVTLlNMQVNILFxcbn0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNVViMmRuYkdWVGRHRjBjeTUwYzNndWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPMEZCUVhORE8wRkJRMEU3UVVGRkwwSXNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eHRSRUZCVVN4RFFVRkRPMGxCUTNoRExFbEJRVWtzUlVGQlJTeFBRVUZQTzBsQlEySXNUMEZCVHl4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUk8xRkJRM2hDTEU5QlFVODdXVUZEVEN4UlFVRlJMR3REUVVOSUxGRkJRVkVzUzBGRFdDeFRRVUZUTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJVU3hEUVVGRExGRkJRVkVzUTBGQlF5eEhRVU53UXp0WlFVTkVMR1ZCUVdVc1JVRkJSU3hMUVVGTE8xTkJRM1pDTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUTBRc1QwRkJUeXhGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1UwRkJVenRKUVVONlF5eG5Ra0ZCWjBJc1JVRkJSU3hoUVVGaE8wbEJReTlDTEU5QlFVOHNSVUZCUlN4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRMnBDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRzFFUVVGblFpeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRkRMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zU1VGQlNTeExRVUZMTERoRFFVRlhPME5CUTNwRkxFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTloWTNScGIyNXpMMkZqZEdsdmJsUnZaMmRzWlZOMFlYUnpMblJ6ZUQ4ek1ERmhJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUhKbFoybHpkR1Z5SUgwZ1puSnZiU0JjSWk0dmNtVm5hWE4wWlhKY0lqdGNibWx0Y0c5eWRDQjdJRU5QUkVWVExDQkxSVmxUSUgwZ1puSnZiU0JjSWk0dUwydGxlWE5jSWp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdGamRHbHZibFJ2WjJkc1pWTjBZWFJ6SUQwZ2NtVm5hWE4wWlhJb2UxeHVJQ0J1WVcxbE9pQmNJbk4wWVhSelhDSXNYRzRnSUhCbGNtWnZjbTBvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsS1NCN1hHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJR0Z3Y0ZOMFlYUmxPaUI3WEc0Z0lDQWdJQ0FnSUM0dUxtRndjRk4wWVhSbExGeHVJQ0FnSUNBZ0lDQnphRzkzVTNSaGRITTZJQ0YwYUdsekxtTm9aV05yWldRaEtHRndjRk4wWVhSbEtTeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQmpiMjF0YVhSVWIwaHBjM1J2Y25rNklHWmhiSE5sTEZ4dUlDQWdJSDA3WEc0Z0lIMHNYRzRnSUdOb1pXTnJaV1E2SUNoaGNIQlRkR0YwWlNrZ1BUNGdZWEJ3VTNSaGRHVXVjMmh2ZDFOMFlYUnpMRnh1SUNCamIyNTBaWGgwU1hSbGJVeGhZbVZzT2lCY0luTjBZWFJ6TG5ScGRHeGxYQ0lzWEc0Z0lHdGxlVlJsYzNRNklDaGxkbVZ1ZENrZ1BUNWNiaUFnSUNBaFpYWmxiblJiUzBWWlV5NURWRkpNWDA5U1gwTk5SRjBnSmlZZ1pYWmxiblF1WVd4MFMyVjVJQ1ltSUdWMlpXNTBMbU52WkdVZ1BUMDlJRU5QUkVWVExsTk1RVk5JTEZ4dWZTazdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9hY3Rpb25zL2FjdGlvblRvZ2dsZVN0YXRzLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25Ub2dnbGVWaWV3TW9kZS50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vYWN0aW9ucy9hY3Rpb25Ub2dnbGVWaWV3TW9kZS50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvblRvZ2dsZVZpZXdNb2RlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uVG9nZ2xlVmlld01vZGUpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9rZXlzICovIFxcXCIuLi8uLi9rZXlzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9yZWdpc3RlciAqLyBcXFwiLi4vLi4vYWN0aW9ucy9yZWdpc3Rlci50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYW5hbHl0aWNzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9hbmFseXRpY3MgKi8gXFxcIi4uLy4uL2FuYWx5dGljcy50c1xcXCIpO1xcblxcblxcblxcbmNvbnN0IGFjdGlvblRvZ2dsZVZpZXdNb2RlID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcInZpZXdNb2RlXFxcIixcXG4gICAgcGVyZm9ybShlbGVtZW50cywgYXBwU3RhdGUpIHtcXG4gICAgICAgICgwLF9hbmFseXRpY3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50cmFja0V2ZW50KShcXFwidmlld1xcXCIsIFxcXCJtb2RlXFxcIiwgXFxcInZpZXdcXFwiKTtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB7IHZpZXdNb2RlRW5hYmxlZDogIXRoaXMuY2hlY2tlZChhcHBTdGF0ZSkgfSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIGNoZWNrZWQ6IChhcHBTdGF0ZSkgPT4gYXBwU3RhdGUudmlld01vZGVFbmFibGVkLFxcbiAgICBjb250ZXh0SXRlbUxhYmVsOiBcXFwibGFiZWxzLnZpZXdNb2RlXFxcIixcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiAhZXZlbnRbX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5LRVlTLkNUUkxfT1JfQ01EXSAmJiBldmVudC5hbHRLZXkgJiYgZXZlbnQuY29kZSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5DT0RFUy5SLFxcbn0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNVViMmRuYkdWV2FXVjNUVzlrWlM1MGMzZ3Vhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3p0QlFVRnpRenRCUVVOQk8wRkJRMGs3UVVGRmJrTXNUVUZCVFN4dlFrRkJiMElzUjBGQlJ5eHRSRUZCVVN4RFFVRkRPMGxCUXpORExFbEJRVWtzUlVGQlJTeFZRVUZWTzBsQlEyaENMRTlCUVU4c1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVUdFJRVU40UWl4elJFRkJWU3hEUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRia01zVDBGQlR6dFpRVU5NTEZGQlFWRXNhME5CUTBnc1VVRkJVU3hMUVVOWUxHVkJRV1VzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlJMRU5CUVVNc1VVRkJVU3hEUVVGRExFZEJRekZETzFsQlEwUXNaVUZCWlN4RlFVRkZMRXRCUVVzN1UwRkRka0lzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZEUkN4UFFVRlBMRVZCUVVVc1EwRkJReXhSUVVGUkxFVkJRVVVzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4bFFVRmxPMGxCUXk5RExHZENRVUZuUWl4RlFVRkZMR2xDUVVGcFFqdEpRVU51UXl4UFFVRlBMRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVU5xUWl4RFFVRkRMRXRCUVVzc1EwRkJReXh0UkVGQlowSXNRMEZCUXl4SlFVRkpMRXRCUVVzc1EwRkJReXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEVsQlFVa3NTMEZCU3l3d1EwRkJUenREUVVOeVJTeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNVViMmRuYkdWV2FXVjNUVzlrWlM1MGMzZy9NekZsWlNKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QkRUMFJGVXl3Z1MwVlpVeUI5SUdaeWIyMGdYQ0l1TGk5clpYbHpYQ0k3WEc1cGJYQnZjblFnZXlCeVpXZHBjM1JsY2lCOUlHWnliMjBnWENJdUwzSmxaMmx6ZEdWeVhDSTdYRzVwYlhCdmNuUWdleUIwY21GamEwVjJaVzUwSUgwZ1puSnZiU0JjSWk0dUwyRnVZV3g1ZEdsamMxd2lPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdZV04wYVc5dVZHOW5aMnhsVm1sbGQwMXZaR1VnUFNCeVpXZHBjM1JsY2loN1hHNGdJRzVoYldVNklGd2lkbWxsZDAxdlpHVmNJaXhjYmlBZ2NHVnlabTl5YlNobGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVcElIdGNiaUFnSUNCMGNtRmphMFYyWlc1MEtGd2lkbWxsZDF3aUxDQmNJbTF2WkdWY0lpd2dYQ0oyYVdWM1hDSXBPMXh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCaGNIQlRkR0YwWlRvZ2UxeHVJQ0FnSUNBZ0lDQXVMaTVoY0hCVGRHRjBaU3hjYmlBZ0lDQWdJQ0FnZG1sbGQwMXZaR1ZGYm1GaWJHVmtPaUFoZEdocGN5NWphR1ZqYTJWa0lTaGhjSEJUZEdGMFpTa3NYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdZMjl0YldsMFZHOUlhWE4wYjNKNU9pQm1ZV3h6WlN4Y2JpQWdJQ0I5TzF4dUlDQjlMRnh1SUNCamFHVmphMlZrT2lBb1lYQndVM1JoZEdVcElEMCtJR0Z3Y0ZOMFlYUmxMblpwWlhkTmIyUmxSVzVoWW14bFpDeGNiaUFnWTI5dWRHVjRkRWwwWlcxTVlXSmxiRG9nWENKc1lXSmxiSE11ZG1sbGQwMXZaR1ZjSWl4Y2JpQWdhMlY1VkdWemREb2dLR1YyWlc1MEtTQTlQbHh1SUNBZ0lDRmxkbVZ1ZEZ0TFJWbFRMa05VVWt4ZlQxSmZRMDFFWFNBbUppQmxkbVZ1ZEM1aGJIUkxaWGtnSmlZZ1pYWmxiblF1WTI5a1pTQTlQVDBnUTA5RVJWTXVVaXhjYm4wcE8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2FjdGlvbnMvYWN0aW9uVG9nZ2xlVmlld01vZGUudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9hY3Rpb25zL2FjdGlvblRvZ2dsZVplbk1vZGUudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vYWN0aW9ucy9hY3Rpb25Ub2dnbGVaZW5Nb2RlLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25Ub2dnbGVaZW5Nb2RlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uVG9nZ2xlWmVuTW9kZSlcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2tleXMgKi8gXFxcIi4uLy4uL2tleXMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3JlZ2lzdGVyICovIFxcXCIuLi8uLi9hY3Rpb25zL3JlZ2lzdGVyLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hbmFseXRpY3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2FuYWx5dGljcyAqLyBcXFwiLi4vLi4vYW5hbHl0aWNzLnRzXFxcIik7XFxuXFxuXFxuXFxuY29uc3QgYWN0aW9uVG9nZ2xlWmVuTW9kZSA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJ6ZW5Nb2RlXFxcIixcXG4gICAgcGVyZm9ybShlbGVtZW50cywgYXBwU3RhdGUpIHtcXG4gICAgICAgICgwLF9hbmFseXRpY3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50cmFja0V2ZW50KShcXFwidmlld1xcXCIsIFxcXCJtb2RlXFxcIiwgXFxcInplblxcXCIpO1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBhcHBTdGF0ZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhcHBTdGF0ZSksIHsgemVuTW9kZUVuYWJsZWQ6ICF0aGlzLmNoZWNrZWQoYXBwU3RhdGUpIH0pLFxcbiAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBjaGVja2VkOiAoYXBwU3RhdGUpID0+IGFwcFN0YXRlLnplbk1vZGVFbmFibGVkLFxcbiAgICBjb250ZXh0SXRlbUxhYmVsOiBcXFwiYnV0dG9ucy56ZW5Nb2RlXFxcIixcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiAhZXZlbnRbX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5LRVlTLkNUUkxfT1JfQ01EXSAmJiBldmVudC5hbHRLZXkgJiYgZXZlbnQuY29kZSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5DT0RFUy5aLFxcbn0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNVViMmRuYkdWYVpXNU5iMlJsTG5SemVDNXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3TzBGQlFYTkRPMEZCUTBFN1FVRkRTVHRCUVVWdVF5eE5RVUZOTEcxQ1FVRnRRaXhIUVVGSExHMUVRVUZSTEVOQlFVTTdTVUZETVVNc1NVRkJTU3hGUVVGRkxGTkJRVk03U1VGRFppeFBRVUZQTEVOQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFN1VVRkRlRUlzYzBSQlFWVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlJXeERMRTlCUVU4N1dVRkRUQ3hSUVVGUkxHdERRVU5JTEZGQlFWRXNTMEZEV0N4alFVRmpMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlVTeERRVUZETEZGQlFWRXNRMEZCUXl4SFFVTjZRenRaUVVORUxHVkJRV1VzUlVGQlJTeExRVUZMTzFOQlEzWkNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJRMFFzVDBGQlR5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVVc1EwRkJReXhSUVVGUkxFTkJRVU1zWTBGQll6dEpRVU01UXl4blFrRkJaMElzUlVGQlJTeHBRa0ZCYVVJN1NVRkRia01zVDBGQlR5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkRha0lzUTBGQlF5eExRVUZMTEVOQlFVTXNiVVJCUVdkQ0xFTkJRVU1zU1VGQlNTeExRVUZMTEVOQlFVTXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXhKUVVGSkxFdEJRVXNzTUVOQlFVODdRMEZEY2tVc1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMkZqZEdsdmJuTXZZV04wYVc5dVZHOW5aMnhsV21WdVRXOWtaUzUwYzNnL09HTmxOaUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZXlCRFQwUkZVeXdnUzBWWlV5QjlJR1p5YjIwZ1hDSXVMaTlyWlhselhDSTdYRzVwYlhCdmNuUWdleUJ5WldkcGMzUmxjaUI5SUdaeWIyMGdYQ0l1TDNKbFoybHpkR1Z5WENJN1hHNXBiWEJ2Y25RZ2V5QjBjbUZqYTBWMlpXNTBJSDBnWm5KdmJTQmNJaTR1TDJGdVlXeDVkR2xqYzF3aU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1lXTjBhVzl1Vkc5bloyeGxXbVZ1VFc5a1pTQTlJSEpsWjJsemRHVnlLSHRjYmlBZ2JtRnRaVG9nWENKNlpXNU5iMlJsWENJc1hHNGdJSEJsY21admNtMG9aV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxLU0I3WEc0Z0lDQWdkSEpoWTJ0RmRtVnVkQ2hjSW5acFpYZGNJaXdnWENKdGIyUmxYQ0lzSUZ3aWVtVnVYQ0lwTzF4dVhHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJR0Z3Y0ZOMFlYUmxPaUI3WEc0Z0lDQWdJQ0FnSUM0dUxtRndjRk4wWVhSbExGeHVJQ0FnSUNBZ0lDQjZaVzVOYjJSbFJXNWhZbXhsWkRvZ0lYUm9hWE11WTJobFkydGxaQ0VvWVhCd1UzUmhkR1VwTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUdOdmJXMXBkRlJ2U0dsemRHOXllVG9nWm1Gc2MyVXNYRzRnSUNBZ2ZUdGNiaUFnZlN4Y2JpQWdZMmhsWTJ0bFpEb2dLR0Z3Y0ZOMFlYUmxLU0E5UGlCaGNIQlRkR0YwWlM1NlpXNU5iMlJsUlc1aFlteGxaQ3hjYmlBZ1kyOXVkR1Y0ZEVsMFpXMU1ZV0psYkRvZ1hDSmlkWFIwYjI1ekxucGxiazF2WkdWY0lpeGNiaUFnYTJWNVZHVnpkRG9nS0dWMlpXNTBLU0E5UGx4dUlDQWdJQ0ZsZG1WdWRGdExSVmxUTGtOVVVreGZUMUpmUTAxRVhTQW1KaUJsZG1WdWRDNWhiSFJMWlhrZ0ppWWdaWFpsYm5RdVkyOWtaU0E5UFQwZ1EwOUVSVk11V2l4Y2JuMHBPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9hY3Rpb25zL2FjdGlvblRvZ2dsZVplbk1vZGUudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9hY3Rpb25zL2FjdGlvblVuYmluZFRleHQudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vYWN0aW9ucy9hY3Rpb25VbmJpbmRUZXh0LnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25VbmJpbmRUZXh0XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYWN0aW9uVW5iaW5kVGV4dClcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC9tdXRhdGVFbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L211dGF0ZUVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvdGV4dEVsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdGV4dEVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZSAqLyBcXFwiLi4vLi4vc2NlbmUvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi91dGlscyAqLyBcXFwiLi4vLi4vdXRpbHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3JlZ2lzdGVyICovIFxcXCIuLi8uLi9hY3Rpb25zL3JlZ2lzdGVyLnRzXFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgYWN0aW9uVW5iaW5kVGV4dCA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJ1bmJpbmRUZXh0XFxcIixcXG4gICAgY29udGV4dEl0ZW1MYWJlbDogXFxcImxhYmVscy51bmJpbmRUZXh0XFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSkgPT4ge1xcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmdldFNlbGVjdGVkRWxlbWVudHMpKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKShlbGVtZW50cyksIGFwcFN0YXRlKTtcXG4gICAgICAgIHNlbGVjdGVkRWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xcbiAgICAgICAgICAgIHZhciBfYTtcXG4gICAgICAgICAgICBjb25zdCBib3VuZFRleHRFbGVtZW50ID0gKDAsX2VsZW1lbnRfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXRCb3VuZFRleHRFbGVtZW50KShlbGVtZW50KTtcXG4gICAgICAgICAgICBpZiAoYm91bmRUZXh0RWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQsIGJhc2VsaW5lIH0gPSAoMCxfZWxlbWVudF90ZXh0RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLm1lYXN1cmVUZXh0KShib3VuZFRleHRFbGVtZW50Lm9yaWdpbmFsVGV4dCwgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uZ2V0Rm9udFN0cmluZykoYm91bmRUZXh0RWxlbWVudCkpO1xcbiAgICAgICAgICAgICAgICAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ubXV0YXRlRWxlbWVudCkoYm91bmRUZXh0RWxlbWVudCwge1xcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySWQ6IG51bGwsXFxuICAgICAgICAgICAgICAgICAgICB3aWR0aCxcXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCxcXG4gICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lLFxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogYm91bmRUZXh0RWxlbWVudC5vcmlnaW5hbFRleHQsXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ubXV0YXRlRWxlbWVudCkoZWxlbWVudCwge1xcbiAgICAgICAgICAgICAgICAgICAgYm91bmRFbGVtZW50czogKF9hID0gZWxlbWVudC5ib3VuZEVsZW1lbnRzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZmlsdGVyKChlbGUpID0+IGVsZS5pZCAhPT0gYm91bmRUZXh0RWxlbWVudC5pZCksXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBlbGVtZW50cyxcXG4gICAgICAgICAgICBhcHBTdGF0ZSxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbn0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVdOMGFXOXVjeTloWTNScGIyNVZibUpwYm1SVVpYaDBMblJ6ZUM1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3TzBGQlFXMUVPMEZCUTAwN1FVRkRhVUk3UVVGRk0wSTdRVUZEVGp0QlFVTklPMEZCUlM5Q0xFMUJRVTBzWjBKQlFXZENMRWRCUVVjc2JVUkJRVkVzUTBGQlF6dEpRVU4yUXl4SlFVRkpMRVZCUVVVc1dVRkJXVHRKUVVOc1FpeG5Ra0ZCWjBJc1JVRkJSU3h0UWtGQmJVSTdTVUZEY2tNc1QwRkJUeXhGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4RlFVRkZPMUZCUXpsQ0xFMUJRVTBzWjBKQlFXZENMRWRCUVVjc01rUkJRVzFDTEVOQlF6RkRMQ3RFUVVGeFFpeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVTXZRaXhSUVVGUkxFTkJRMVFzUTBGQlF6dFJRVU5HTEdkQ1FVRm5RaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZPenRaUVVOdVF5eE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExIbEZRVUZ0UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xbEJRM1JFTEVsQlFVa3NaMEpCUVdkQ0xFVkJRVVU3WjBKQlEzQkNMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEZGQlFWRXNSVUZCUlN4SFFVRkhMR2xGUVVGWExFTkJRemRETEdkQ1FVRm5RaXhEUVVGRExGbEJRVmtzUlVGRE4wSXNjVVJCUVdFc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVTm9ReXhEUVVGRE8yZENRVU5HTEhGRlFVRmhMRU5CUVVNc1owSkJRWGxETEVWQlFVVTdiMEpCUTNaRUxGZEJRVmNzUlVGQlJTeEpRVUZKTzI5Q1FVTnFRaXhMUVVGTE8yOUNRVU5NTEUxQlFVMDdiMEpCUTA0c1VVRkJVVHR2UWtGRFVpeEpRVUZKTEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU1zV1VGQldUdHBRa0ZEY0VNc1EwRkJReXhEUVVGRE8yZENRVU5JTEhGRlFVRmhMRU5CUVVNc1QwRkJUeXhGUVVGRk8yOUNRVU55UWl4aFFVRmhMRVZCUVVVc1lVRkJUeXhEUVVGRExHRkJRV0VzTUVOQlFVVXNUVUZCVFN4RFFVTXhReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1MwRkJTeXhuUWtGQlowSXNRMEZCUXl4RlFVRkZMRU5CUTNoRE8ybENRVU5HTEVOQlFVTXNRMEZCUXp0aFFVTktPMUZCUTBnc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRFNDeFBRVUZQTzFsQlEwd3NVVUZCVVR0WlFVTlNMRkZCUVZFN1dVRkRVaXhsUVVGbExFVkJRVVVzU1VGQlNUdFRRVU4wUWl4RFFVRkRPMGxCUTBvc1EwRkJRenREUVVOR0xFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTloWTNScGIyNXpMMkZqZEdsdmJsVnVZbWx1WkZSbGVIUXVkSE40UHpWbU9XTWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnWjJWMFRtOXVSR1ZzWlhSbFpFVnNaVzFsYm5SeklIMGdabkp2YlNCY0lpNHVMMlZzWlcxbGJuUmNJanRjYm1sdGNHOXlkQ0I3SUcxMWRHRjBaVVZzWlcxbGJuUWdmU0JtY205dElGd2lMaTR2Wld4bGJXVnVkQzl0ZFhSaGRHVkZiR1Z0Wlc1MFhDSTdYRzVwYlhCdmNuUWdleUJuWlhSQ2IzVnVaRlJsZUhSRmJHVnRaVzUwTENCdFpXRnpkWEpsVkdWNGRDQjlJR1p5YjIwZ1hDSXVMaTlsYkdWdFpXNTBMM1JsZUhSRmJHVnRaVzUwWENJN1hHNXBiWEJ2Y25RZ2V5QkZlR05oYkdsa2NtRjNWR1Y0ZEVWc1pXMWxiblFnZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEM5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1oyVjBVMlZzWldOMFpXUkZiR1Z0Wlc1MGN5QjlJR1p5YjIwZ1hDSXVMaTl6WTJWdVpWd2lPMXh1YVcxd2IzSjBJSHNnWjJWMFJtOXVkRk4wY21sdVp5QjlJR1p5YjIwZ1hDSXVMaTkxZEdsc2Mxd2lPMXh1YVcxd2IzSjBJSHNnY21WbmFYTjBaWElnZlNCbWNtOXRJRndpTGk5eVpXZHBjM1JsY2x3aU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1lXTjBhVzl1Vlc1aWFXNWtWR1Y0ZENBOUlISmxaMmx6ZEdWeUtIdGNiaUFnYm1GdFpUb2dYQ0oxYm1KcGJtUlVaWGgwWENJc1hHNGdJR052Ym5SbGVIUkpkR1Z0VEdGaVpXdzZJRndpYkdGaVpXeHpMblZ1WW1sdVpGUmxlSFJjSWl4Y2JpQWdjR1Z5Wm05eWJUb2dLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSE5sYkdWamRHVmtSV3hsYldWdWRITWdQU0JuWlhSVFpXeGxZM1JsWkVWc1pXMWxiblJ6S0Z4dUlDQWdJQ0FnWjJWMFRtOXVSR1ZzWlhSbFpFVnNaVzFsYm5SektHVnNaVzFsYm5SektTeGNiaUFnSUNBZ0lHRndjRk4wWVhSbExGeHVJQ0FnSUNrN1hHNGdJQ0FnYzJWc1pXTjBaV1JGYkdWdFpXNTBjeTVtYjNKRllXTm9LQ2hsYkdWdFpXNTBLU0E5UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0JpYjNWdVpGUmxlSFJGYkdWdFpXNTBJRDBnWjJWMFFtOTFibVJVWlhoMFJXeGxiV1Z1ZENobGJHVnRaVzUwS1R0Y2JpQWdJQ0FnSUdsbUlDaGliM1Z1WkZSbGVIUkZiR1Z0Wlc1MEtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIc2dkMmxrZEdnc0lHaGxhV2RvZEN3Z1ltRnpaV3hwYm1VZ2ZTQTlJRzFsWVhOMWNtVlVaWGgwS0Z4dUlDQWdJQ0FnSUNBZ0lHSnZkVzVrVkdWNGRFVnNaVzFsYm5RdWIzSnBaMmx1WVd4VVpYaDBMRnh1SUNBZ0lDQWdJQ0FnSUdkbGRFWnZiblJUZEhKcGJtY29ZbTkxYm1SVVpYaDBSV3hsYldWdWRDa3NYRzRnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUcxMWRHRjBaVVZzWlcxbGJuUW9ZbTkxYm1SVVpYaDBSV3hsYldWdWRDQmhjeUJGZUdOaGJHbGtjbUYzVkdWNGRFVnNaVzFsYm5Rc0lIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1MFlXbHVaWEpKWkRvZ2JuVnNiQ3hjYmlBZ0lDQWdJQ0FnSUNCM2FXUjBhQ3hjYmlBZ0lDQWdJQ0FnSUNCb1pXbG5hSFFzWEc0Z0lDQWdJQ0FnSUNBZ1ltRnpaV3hwYm1Vc1hHNGdJQ0FnSUNBZ0lDQWdkR1Y0ZERvZ1ltOTFibVJVWlhoMFJXeGxiV1Z1ZEM1dmNtbG5hVzVoYkZSbGVIUXNYRzRnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNCdGRYUmhkR1ZGYkdWdFpXNTBLR1ZzWlcxbGJuUXNJSHRjYmlBZ0lDQWdJQ0FnSUNCaWIzVnVaRVZzWlcxbGJuUnpPaUJsYkdWdFpXNTBMbUp2ZFc1a1JXeGxiV1Z1ZEhNL0xtWnBiSFJsY2loY2JpQWdJQ0FnSUNBZ0lDQWdJQ2hsYkdVcElEMCtJR1ZzWlM1cFpDQWhQVDBnWW05MWJtUlVaWGgwUld4bGJXVnVkQzVwWkN4Y2JpQWdJQ0FnSUNBZ0lDQXBMRnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdaV3hsYldWdWRITXNYRzRnSUNBZ0lDQmhjSEJUZEdGMFpTeGNiaUFnSUNBZ0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVRvZ2RISjFaU3hjYmlBZ0lDQjlPMXh1SUNCOUxGeHVmU2s3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vYWN0aW9ucy9hY3Rpb25VbmJpbmRUZXh0LnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25aaW5kZXgudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9hY3Rpb25zL2FjdGlvblppbmRleC50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25TZW5kQmFja3dhcmRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhY3Rpb25TZW5kQmFja3dhcmQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkJyaW5nRm9yd2FyZFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvbkJyaW5nRm9yd2FyZCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uU2VuZFRvQmFja1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvblNlbmRUb0JhY2spLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkJyaW5nVG9Gcm9udFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvbkJyaW5nVG9Gcm9udClcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0ICovIFxcXCJyZWFjdFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfemluZGV4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi96aW5kZXggKi8gXFxcIi4uLy4uL3ppbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4va2V5cyAqLyBcXFwiLi4vLi4va2V5cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vcmVnaXN0ZXIgKi8gXFxcIi4uLy4uL2FjdGlvbnMvcmVnaXN0ZXIudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbXBvbmVudHMvaWNvbnMgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvaWNvbnMudHN4XFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgYWN0aW9uU2VuZEJhY2t3YXJkID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcInNlbmRCYWNrd2FyZFxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgZWxlbWVudHM6ICgwLF96aW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5tb3ZlT25lTGVmdCkoZWxlbWVudHMsIGFwcFN0YXRlKSxcXG4gICAgICAgICAgICBhcHBTdGF0ZSxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBjb250ZXh0SXRlbUxhYmVsOiBcXFwibGFiZWxzLnNlbmRCYWNrd2FyZFxcXCIsXFxuICAgIGtleVByaW9yaXR5OiA0MCxcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiBldmVudFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLktFWVMuQ1RSTF9PUl9DTURdICYmXFxuICAgICAgICAhZXZlbnQuc2hpZnRLZXkgJiZcXG4gICAgICAgIGV2ZW50LmNvZGUgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uQ09ERVMuQlJBQ0tFVF9MRUZULFxcbiAgICBQYW5lbENvbXBvbmVudDogKHsgdXBkYXRlRGF0YSwgYXBwU3RhdGUgfSkgPT4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiYnV0dG9uXFxcIiwgT2JqZWN0LmFzc2lnbih7IHR5cGU6IFxcXCJidXR0b25cXFwiLCBjbGFzc05hbWU6IFxcXCJ6SW5kZXhCdXR0b25cXFwiLCBvbkNsaWNrOiAoKSA9PiB1cGRhdGVEYXRhKG51bGwpLCB0aXRsZTogYCR7KDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwibGFiZWxzLnNlbmRCYWNrd2FyZFxcXCIpfSBcdTIwMTQgJHsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtbXFxcIil9YCB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5TZW5kQmFja3dhcmRJY29uLCB7IHRoZW1lOiBhcHBTdGF0ZS50aGVtZSB9LCB2b2lkIDApIH0pLCB2b2lkIDApKSxcXG59KTtcXG5jb25zdCBhY3Rpb25CcmluZ0ZvcndhcmQgPSAoMCxfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwiYnJpbmdGb3J3YXJkXFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSkgPT4ge1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBlbGVtZW50czogKDAsX3ppbmRleF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLm1vdmVPbmVSaWdodCkoZWxlbWVudHMsIGFwcFN0YXRlKSxcXG4gICAgICAgICAgICBhcHBTdGF0ZSxcXG4gICAgICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBjb250ZXh0SXRlbUxhYmVsOiBcXFwibGFiZWxzLmJyaW5nRm9yd2FyZFxcXCIsXFxuICAgIGtleVByaW9yaXR5OiA0MCxcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiBldmVudFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLktFWVMuQ1RSTF9PUl9DTURdICYmXFxuICAgICAgICAhZXZlbnQuc2hpZnRLZXkgJiZcXG4gICAgICAgIGV2ZW50LmNvZGUgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uQ09ERVMuQlJBQ0tFVF9SSUdIVCxcXG4gICAgUGFuZWxDb21wb25lbnQ6ICh7IHVwZGF0ZURhdGEsIGFwcFN0YXRlIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImJ1dHRvblxcXCIsIE9iamVjdC5hc3NpZ24oeyB0eXBlOiBcXFwiYnV0dG9uXFxcIiwgY2xhc3NOYW1lOiBcXFwiekluZGV4QnV0dG9uXFxcIiwgb25DbGljazogKCkgPT4gdXBkYXRlRGF0YShudWxsKSwgdGl0bGU6IGAkeygwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcImxhYmVscy5icmluZ0ZvcndhcmRcXFwiKX0gXHUyMDE0ICR7KDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrXVxcXCIpfWAgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uQnJpbmdGb3J3YXJkSWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSB9KSwgdm9pZCAwKSksXFxufSk7XFxuY29uc3QgYWN0aW9uU2VuZFRvQmFjayA9ICgwLF9yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnJlZ2lzdGVyKSh7XFxuICAgIG5hbWU6IFxcXCJzZW5kVG9CYWNrXFxcIixcXG4gICAgcGVyZm9ybTogKGVsZW1lbnRzLCBhcHBTdGF0ZSkgPT4ge1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBlbGVtZW50czogKDAsX3ppbmRleF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLm1vdmVBbGxMZWZ0KShlbGVtZW50cywgYXBwU3RhdGUpLFxcbiAgICAgICAgICAgIGFwcFN0YXRlLFxcbiAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogdHJ1ZSxcXG4gICAgICAgIH07XFxuICAgIH0sXFxuICAgIGNvbnRleHRJdGVtTGFiZWw6IFxcXCJsYWJlbHMuc2VuZFRvQmFja1xcXCIsXFxuICAgIGtleVRlc3Q6IChldmVudCkgPT4gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5pc0RhcndpblxcbiAgICAgICAgPyBldmVudFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLktFWVMuQ1RSTF9PUl9DTURdICYmXFxuICAgICAgICAgICAgZXZlbnQuYWx0S2V5ICYmXFxuICAgICAgICAgICAgZXZlbnQuY29kZSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5DT0RFUy5CUkFDS0VUX0xFRlRcXG4gICAgICAgIDogZXZlbnRbX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5LRVlTLkNUUkxfT1JfQ01EXSAmJlxcbiAgICAgICAgICAgIGV2ZW50LnNoaWZ0S2V5ICYmXFxuICAgICAgICAgICAgZXZlbnQuY29kZSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5DT0RFUy5CUkFDS0VUX0xFRlQsXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyB1cGRhdGVEYXRhLCBhcHBTdGF0ZSB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJidXR0b25cXFwiLCBPYmplY3QuYXNzaWduKHsgdHlwZTogXFxcImJ1dHRvblxcXCIsIGNsYXNzTmFtZTogXFxcInpJbmRleEJ1dHRvblxcXCIsIG9uQ2xpY2s6ICgpID0+IHVwZGF0ZURhdGEobnVsbCksIHRpdGxlOiBgJHsoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJsYWJlbHMuc2VuZFRvQmFja1xcXCIpfSBcdTIwMTQgJHtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmlzRGFyd2luXFxuICAgICAgICAgICAgPyAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtBbHQrW1xcXCIpXFxuICAgICAgICAgICAgOiAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtTaGlmdCtbXFxcIil9YCB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5TZW5kVG9CYWNrSWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSB9KSwgdm9pZCAwKSksXFxufSk7XFxuY29uc3QgYWN0aW9uQnJpbmdUb0Zyb250ID0gKDAsX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18ucmVnaXN0ZXIpKHtcXG4gICAgbmFtZTogXFxcImJyaW5nVG9Gcm9udFxcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgZWxlbWVudHM6ICgwLF96aW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5tb3ZlQWxsUmlnaHQpKGVsZW1lbnRzLCBhcHBTdGF0ZSksXFxuICAgICAgICAgICAgYXBwU3RhdGUsXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiB0cnVlLFxcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAgY29udGV4dEl0ZW1MYWJlbDogXFxcImxhYmVscy5icmluZ1RvRnJvbnRcXFwiLFxcbiAgICBrZXlUZXN0OiAoZXZlbnQpID0+IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uaXNEYXJ3aW5cXG4gICAgICAgID8gZXZlbnRbX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5LRVlTLkNUUkxfT1JfQ01EXSAmJlxcbiAgICAgICAgICAgIGV2ZW50LmFsdEtleSAmJlxcbiAgICAgICAgICAgIGV2ZW50LmNvZGUgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uQ09ERVMuQlJBQ0tFVF9SSUdIVFxcbiAgICAgICAgOiBldmVudFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLktFWVMuQ1RSTF9PUl9DTURdICYmXFxuICAgICAgICAgICAgZXZlbnQuc2hpZnRLZXkgJiZcXG4gICAgICAgICAgICBldmVudC5jb2RlID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkNPREVTLkJSQUNLRVRfUklHSFQsXFxuICAgIFBhbmVsQ29tcG9uZW50OiAoeyB1cGRhdGVEYXRhLCBhcHBTdGF0ZSB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJidXR0b25cXFwiLCBPYmplY3QuYXNzaWduKHsgdHlwZTogXFxcImJ1dHRvblxcXCIsIGNsYXNzTmFtZTogXFxcInpJbmRleEJ1dHRvblxcXCIsIG9uQ2xpY2s6IChldmVudCkgPT4gdXBkYXRlRGF0YShudWxsKSwgdGl0bGU6IGAkeygwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcImxhYmVscy5icmluZ1RvRnJvbnRcXFwiKX0gXHUyMDE0ICR7X2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5pc0RhcndpblxcbiAgICAgICAgICAgID8gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrQWx0K11cXFwiKVxcbiAgICAgICAgICAgIDogKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrU2hpZnQrXVxcXCIpfWAgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uQnJpbmdUb0Zyb250SWNvbiwgeyB0aGVtZTogYXBwU3RhdGUudGhlbWUgfSwgdm9pZCAwKSB9KSwgdm9pZCAwKSksXFxufSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZV04wYVc5dWN5OWhZM1JwYjI1YWFXNWtaWGd1ZEhONExtcHpJaXdpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN096czdPenM3TzBGQlFUQkNPMEZCVFZBN1FVRkROa0k3UVVGRGNFSTdRVUZEWXp0QlFVTktPMEZCVFZRN1FVRkZkRUlzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXh0UkVGQlVTeERRVUZETzBsQlEzcERMRWxCUVVrc1JVRkJSU3hqUVVGak8wbEJRM0JDTEU5QlFVOHNSVUZCUlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVVzUlVGQlJUdFJRVU01UWl4UFFVRlBPMWxCUTB3c1VVRkJVU3hGUVVGRkxHOUVRVUZYTEVOQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1EwRkJRenRaUVVONlF5eFJRVUZSTzFsQlExSXNaVUZCWlN4RlFVRkZMRWxCUVVrN1UwRkRkRUlzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZEUkN4blFrRkJaMElzUlVGQlJTeHhRa0ZCY1VJN1NVRkRka01zVjBGQlZ5eEZRVUZGTEVWQlFVVTdTVUZEWml4UFFVRlBMRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVU5xUWl4TFFVRkxMRU5CUVVNc2JVUkJRV2RDTEVOQlFVTTdVVUZEZGtJc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVUdFJRVU5tTEV0QlFVc3NRMEZCUXl4SlFVRkpMRXRCUVVzc2NVUkJRV3RDTzBsQlEyNURMR05CUVdNc1JVRkJSU3hEUVVGRExFVkJRVVVzVlVGQlZTeEZRVUZGTEZGQlFWRXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVNMVF5eHBSa0ZEUlN4SlFVRkpMRVZCUVVNc1VVRkJVU3hGUVVOaUxGTkJRVk1zUlVGQlF5eGpRVUZqTEVWQlEzaENMRTlCUVU4c1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUXk5Q0xFdEJRVXNzUlVGQlJTeEhRVUZITEhkRFFVRkRMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNUVUZCVFN4elJFRkJZeXhEUVVGRExHRkJRV0VzUTBGQlF5eEZRVUZGTEdkQ1FVVjJSU3gxUkVGQlF5d3JSRUZCWjBJc1NVRkJReXhMUVVGTExFVkJRVVVzVVVGQlVTeERRVUZETEV0QlFVc3NWMEZCU1N4WlFVTndReXhEUVVOV08wTkJRMFlzUTBGQlF5eERRVUZETzBGQlJVa3NUVUZCVFN4clFrRkJhMElzUjBGQlJ5eHRSRUZCVVN4RFFVRkRPMGxCUTNwRExFbEJRVWtzUlVGQlJTeGpRVUZqTzBsQlEzQkNMRTlCUVU4c1JVRkJSU3hEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVXNSVUZCUlR0UlFVTTVRaXhQUVVGUE8xbEJRMHdzVVVGQlVTeEZRVUZGTEhGRVFVRlpMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUTBGQlF6dFpRVU14UXl4UlFVRlJPMWxCUTFJc1pVRkJaU3hGUVVGRkxFbEJRVWs3VTBGRGRFSXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkRSQ3huUWtGQlowSXNSVUZCUlN4eFFrRkJjVUk3U1VGRGRrTXNWMEZCVnl4RlFVRkZMRVZCUVVVN1NVRkRaaXhQUVVGUExFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVTnFRaXhMUVVGTExFTkJRVU1zYlVSQlFXZENMRU5CUVVNN1VVRkRka0lzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVR0UlFVTm1MRXRCUVVzc1EwRkJReXhKUVVGSkxFdEJRVXNzYzBSQlFXMUNPMGxCUTNCRExHTkJRV01zUlVGQlJTeERRVUZETEVWQlFVVXNWVUZCVlN4RlFVRkZMRkZCUVZFc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVU0xUXl4cFJrRkRSU3hKUVVGSkxFVkJRVU1zVVVGQlVTeEZRVU5pTEZOQlFWTXNSVUZCUXl4alFVRmpMRVZCUTNoQ0xFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJReTlDTEV0QlFVc3NSVUZCUlN4SFFVRkhMSGREUVVGRExFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1RVRkJUU3h6UkVGQll5eERRVUZETEdGQlFXRXNRMEZCUXl4RlFVRkZMR2RDUVVWMlJTeDFSRUZCUXl3clJFRkJaMElzU1VGQlF5eExRVUZMTEVWQlFVVXNVVUZCVVN4RFFVRkRMRXRCUVVzc1YwRkJTU3haUVVOd1F5eERRVU5XTzBOQlEwWXNRMEZCUXl4RFFVRkRPMEZCUlVrc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4dFJFRkJVU3hEUVVGRE8wbEJRM1pETEVsQlFVa3NSVUZCUlN4WlFVRlpPMGxCUTJ4Q0xFOUJRVThzUlVGQlJTeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUVVVc1JVRkJSVHRSUVVNNVFpeFBRVUZQTzFsQlEwd3NVVUZCVVN4RlFVRkZMRzlFUVVGWExFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNRMEZCUXp0WlFVTjZReXhSUVVGUk8xbEJRMUlzWlVGQlpTeEZRVUZGTEVsQlFVazdVMEZEZEVJc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRFJDeG5Ra0ZCWjBJc1JVRkJSU3h0UWtGQmJVSTdTVUZEY2tNc1QwRkJUeXhGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZEYWtJc01rTkJRVkU3VVVGRFRpeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRzFFUVVGblFpeERRVUZETzFsQlEzWkNMRXRCUVVzc1EwRkJReXhOUVVGTk8xbEJRMW9zUzBGQlN5eERRVUZETEVsQlFVa3NTMEZCU3l4eFJFRkJhMEk3VVVGRGJrTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXh0UkVGQlowSXNRMEZCUXp0WlFVTjJRaXhMUVVGTExFTkJRVU1zVVVGQlVUdFpRVU5rTEV0QlFVc3NRMEZCUXl4SlFVRkpMRXRCUVVzc2NVUkJRV3RDTzBsQlEzWkRMR05CUVdNc1JVRkJSU3hEUVVGRExFVkJRVVVzVlVGQlZTeEZRVUZGTEZGQlFWRXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVNMVF5eHBSa0ZEUlN4SlFVRkpMRVZCUVVNc1VVRkJVU3hGUVVOaUxGTkJRVk1zUlVGQlF5eGpRVUZqTEVWQlEzaENMRTlCUVU4c1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUXk5Q0xFdEJRVXNzUlVGQlJTeEhRVUZITEhkRFFVRkRMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNUVUZET1VJc01rTkJRVkU3V1VGRFRpeERRVUZETEVOQlFVTXNjMFJCUVdNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXp0WlFVTnVReXhEUVVGRExFTkJRVU1zYzBSQlFXTXNRMEZCUXl4dFFrRkJiVUlzUTBGRGVFTXNSVUZCUlN4blFrRkZSaXgxUkVGQlF5dzJSRUZCWXl4SlFVRkRMRXRCUVVzc1JVRkJSU3hSUVVGUkxFTkJRVU1zUzBGQlN5eFhRVUZKTEZsQlEyeERMRU5CUTFZN1EwRkRSaXhEUVVGRExFTkJRVU03UVVGRlNTeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExHMUVRVUZSTEVOQlFVTTdTVUZEZWtNc1NVRkJTU3hGUVVGRkxHTkJRV003U1VGRGNFSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEZRVUZGTzFGQlF6bENMRTlCUVU4N1dVRkRUQ3hSUVVGUkxFVkJRVVVzY1VSQlFWa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hEUVVGRE8xbEJRekZETEZGQlFWRTdXVUZEVWl4bFFVRmxMRVZCUVVVc1NVRkJTVHRUUVVOMFFpeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVTkVMR2RDUVVGblFpeEZRVUZGTEhGQ1FVRnhRanRKUVVOMlF5eFBRVUZQTEVWQlFVVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVOcVFpd3lRMEZCVVR0UlFVTk9MRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zYlVSQlFXZENMRU5CUVVNN1dVRkRka0lzUzBGQlN5eERRVUZETEUxQlFVMDdXVUZEV2l4TFFVRkxMRU5CUVVNc1NVRkJTU3hMUVVGTExITkVRVUZ0UWp0UlFVTndReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEcxRVFVRm5RaXhEUVVGRE8xbEJRM1pDTEV0QlFVc3NRMEZCUXl4UlFVRlJPMWxCUTJRc1MwRkJTeXhEUVVGRExFbEJRVWtzUzBGQlN5eHpSRUZCYlVJN1NVRkRlRU1zWTBGQll5eEZRVUZGTEVOQlFVTXNSVUZCUlN4VlFVRlZMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlF6VkRMR2xHUVVORkxFbEJRVWtzUlVGQlF5eFJRVUZSTEVWQlEySXNVMEZCVXl4RlFVRkRMR05CUVdNc1JVRkRlRUlzVDBGQlR5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlEzQkRMRXRCUVVzc1JVRkJSU3hIUVVGSExIZERRVUZETEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zVFVGRGFFTXNNa05CUVZFN1dVRkRUaXhEUVVGRExFTkJRVU1zYzBSQlFXTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF6dFpRVU51UXl4RFFVRkRMRU5CUVVNc2MwUkJRV01zUTBGQlF5eHRRa0ZCYlVJc1EwRkRlRU1zUlVGQlJTeG5Ra0ZGUml4MVJFRkJReXdyUkVGQlowSXNTVUZCUXl4TFFVRkxMRVZCUVVVc1VVRkJVU3hEUVVGRExFdEJRVXNzVjBGQlNTeFpRVU53UXl4RFFVTldPME5CUTBZc1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMkZqZEdsdmJuTXZZV04wYVc5dVdtbHVaR1Y0TG5SemVEOWtaRFJoSWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCU1pXRmpkQ0JtY205dElGd2ljbVZoWTNSY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUcxdmRtVlBibVZNWldaMExGeHVJQ0J0YjNabFQyNWxVbWxuYUhRc1hHNGdJRzF2ZG1WQmJHeE1aV1owTEZ4dUlDQnRiM1psUVd4c1VtbG5hSFFzWEc1OUlHWnliMjBnWENJdUxpOTZhVzVrWlhoY0lqdGNibWx0Y0c5eWRDQjdJRXRGV1ZNc0lHbHpSR0Z5ZDJsdUxDQkRUMFJGVXlCOUlHWnliMjBnWENJdUxpOXJaWGx6WENJN1hHNXBiWEJ2Y25RZ2V5QjBJSDBnWm5KdmJTQmNJaTR1TDJreE9HNWNJanRjYm1sdGNHOXlkQ0I3SUdkbGRGTm9iM0owWTNWMFMyVjVJSDBnWm5KdmJTQmNJaTR1TDNWMGFXeHpYQ0k3WEc1cGJYQnZjblFnZXlCeVpXZHBjM1JsY2lCOUlHWnliMjBnWENJdUwzSmxaMmx6ZEdWeVhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCVFpXNWtRbUZqYTNkaGNtUkpZMjl1TEZ4dUlDQkNjbWx1WjFSdlJuSnZiblJKWTI5dUxGeHVJQ0JUWlc1a1ZHOUNZV05yU1dOdmJpeGNiaUFnUW5KcGJtZEdiM0ozWVhKa1NXTnZiaXhjYm4wZ1puSnZiU0JjSWk0dUwyTnZiWEJ2Ym1WdWRITXZhV052Ym5OY0lqdGNibHh1Wlhod2IzSjBJR052Ym5OMElHRmpkR2x2YmxObGJtUkNZV05yZDJGeVpDQTlJSEpsWjJsemRHVnlLSHRjYmlBZ2JtRnRaVG9nWENKelpXNWtRbUZqYTNkaGNtUmNJaXhjYmlBZ2NHVnlabTl5YlRvZ0tHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTa2dQVDRnZTF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQmxiR1Z0Wlc1MGN6b2diVzkyWlU5dVpVeGxablFvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsS1N4Y2JpQWdJQ0FnSUdGd2NGTjBZWFJsTEZ4dUlDQWdJQ0FnWTI5dGJXbDBWRzlJYVhOMGIzSjVPaUIwY25WbExGeHVJQ0FnSUgwN1hHNGdJSDBzWEc0Z0lHTnZiblJsZUhSSmRHVnRUR0ZpWld3NklGd2liR0ZpWld4ekxuTmxibVJDWVdOcmQyRnlaRndpTEZ4dUlDQnJaWGxRY21sdmNtbDBlVG9nTkRBc1hHNGdJR3RsZVZSbGMzUTZJQ2hsZG1WdWRDa2dQVDVjYmlBZ0lDQmxkbVZ1ZEZ0TFJWbFRMa05VVWt4ZlQxSmZRMDFFWFNBbUpseHVJQ0FnSUNGbGRtVnVkQzV6YUdsbWRFdGxlU0FtSmx4dUlDQWdJR1YyWlc1MExtTnZaR1VnUFQwOUlFTlBSRVZUTGtKU1FVTkxSVlJmVEVWR1ZDeGNiaUFnVUdGdVpXeERiMjF3YjI1bGJuUTZJQ2g3SUhWd1pHRjBaVVJoZEdFc0lHRndjRk4wWVhSbElIMHBJRDArSUNoY2JpQWdJQ0E4WW5WMGRHOXVYRzRnSUNBZ0lDQjBlWEJsUFZ3aVluVjBkRzl1WENKY2JpQWdJQ0FnSUdOc1lYTnpUbUZ0WlQxY0lucEpibVJsZUVKMWRIUnZibHdpWEc0Z0lDQWdJQ0J2YmtOc2FXTnJQWHNvS1NBOVBpQjFjR1JoZEdWRVlYUmhLRzUxYkd3cGZWeHVJQ0FnSUNBZ2RHbDBiR1U5ZTJBa2UzUW9YQ0pzWVdKbGJITXVjMlZ1WkVKaFkydDNZWEprWENJcGZTRGlnSlFnSkh0blpYUlRhRzl5ZEdOMWRFdGxlU2hjSWtOMGNteFBja050WkN0YlhDSXBmV0I5WEc0Z0lDQWdQbHh1SUNBZ0lDQWdQRk5sYm1SQ1lXTnJkMkZ5WkVsamIyNGdkR2hsYldVOWUyRndjRk4wWVhSbExuUm9aVzFsZlNBdlBseHVJQ0FnSUR3dlluVjBkRzl1UGx4dUlDQXBMRnh1ZlNrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCaFkzUnBiMjVDY21sdVowWnZjbmRoY21RZ1BTQnlaV2RwYzNSbGNpaDdYRzRnSUc1aGJXVTZJRndpWW5KcGJtZEdiM0ozWVhKa1hDSXNYRzRnSUhCbGNtWnZjbTA2SUNobGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVcElEMCtJSHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ1pXeGxiV1Z1ZEhNNklHMXZkbVZQYm1WU2FXZG9kQ2hsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VwTEZ4dUlDQWdJQ0FnWVhCd1UzUmhkR1VzWEc0Z0lDQWdJQ0JqYjIxdGFYUlViMGhwYzNSdmNuazZJSFJ5ZFdVc1hHNGdJQ0FnZlR0Y2JpQWdmU3hjYmlBZ1kyOXVkR1Y0ZEVsMFpXMU1ZV0psYkRvZ1hDSnNZV0psYkhNdVluSnBibWRHYjNKM1lYSmtYQ0lzWEc0Z0lHdGxlVkJ5YVc5eWFYUjVPaUEwTUN4Y2JpQWdhMlY1VkdWemREb2dLR1YyWlc1MEtTQTlQbHh1SUNBZ0lHVjJaVzUwVzB0RldWTXVRMVJTVEY5UFVsOURUVVJkSUNZbVhHNGdJQ0FnSVdWMlpXNTBMbk5vYVdaMFMyVjVJQ1ltWEc0Z0lDQWdaWFpsYm5RdVkyOWtaU0E5UFQwZ1EwOUVSVk11UWxKQlEwdEZWRjlTU1VkSVZDeGNiaUFnVUdGdVpXeERiMjF3YjI1bGJuUTZJQ2g3SUhWd1pHRjBaVVJoZEdFc0lHRndjRk4wWVhSbElIMHBJRDArSUNoY2JpQWdJQ0E4WW5WMGRHOXVYRzRnSUNBZ0lDQjBlWEJsUFZ3aVluVjBkRzl1WENKY2JpQWdJQ0FnSUdOc1lYTnpUbUZ0WlQxY0lucEpibVJsZUVKMWRIUnZibHdpWEc0Z0lDQWdJQ0J2YmtOc2FXTnJQWHNvS1NBOVBpQjFjR1JoZEdWRVlYUmhLRzUxYkd3cGZWeHVJQ0FnSUNBZ2RHbDBiR1U5ZTJBa2UzUW9YQ0pzWVdKbGJITXVZbkpwYm1kR2IzSjNZWEprWENJcGZTRGlnSlFnSkh0blpYUlRhRzl5ZEdOMWRFdGxlU2hjSWtOMGNteFBja050WkN0ZFhDSXBmV0I5WEc0Z0lDQWdQbHh1SUNBZ0lDQWdQRUp5YVc1blJtOXlkMkZ5WkVsamIyNGdkR2hsYldVOWUyRndjRk4wWVhSbExuUm9aVzFsZlNBdlBseHVJQ0FnSUR3dlluVjBkRzl1UGx4dUlDQXBMRnh1ZlNrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCaFkzUnBiMjVUWlc1a1ZHOUNZV05ySUQwZ2NtVm5hWE4wWlhJb2UxeHVJQ0J1WVcxbE9pQmNJbk5sYm1SVWIwSmhZMnRjSWl4Y2JpQWdjR1Z5Wm05eWJUb2dLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU2tnUFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0JsYkdWdFpXNTBjem9nYlc5MlpVRnNiRXhsWm5Rb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbEtTeGNiaUFnSUNBZ0lHRndjRk4wWVhSbExGeHVJQ0FnSUNBZ1kyOXRiV2wwVkc5SWFYTjBiM0o1T2lCMGNuVmxMRnh1SUNBZ0lIMDdYRzRnSUgwc1hHNGdJR052Ym5SbGVIUkpkR1Z0VEdGaVpXdzZJRndpYkdGaVpXeHpMbk5sYm1SVWIwSmhZMnRjSWl4Y2JpQWdhMlY1VkdWemREb2dLR1YyWlc1MEtTQTlQbHh1SUNBZ0lHbHpSR0Z5ZDJsdVhHNGdJQ0FnSUNBL0lHVjJaVzUwVzB0RldWTXVRMVJTVEY5UFVsOURUVVJkSUNZbVhHNGdJQ0FnSUNBZ0lHVjJaVzUwTG1Gc2RFdGxlU0FtSmx4dUlDQWdJQ0FnSUNCbGRtVnVkQzVqYjJSbElEMDlQU0JEVDBSRlV5NUNVa0ZEUzBWVVgweEZSbFJjYmlBZ0lDQWdJRG9nWlhabGJuUmJTMFZaVXk1RFZGSk1YMDlTWDBOTlJGMGdKaVpjYmlBZ0lDQWdJQ0FnWlhabGJuUXVjMmhwWm5STFpYa2dKaVpjYmlBZ0lDQWdJQ0FnWlhabGJuUXVZMjlrWlNBOVBUMGdRMDlFUlZNdVFsSkJRMHRGVkY5TVJVWlVMRnh1SUNCUVlXNWxiRU52YlhCdmJtVnVkRG9nS0hzZ2RYQmtZWFJsUkdGMFlTd2dZWEJ3VTNSaGRHVWdmU2tnUFQ0Z0tGeHVJQ0FnSUR4aWRYUjBiMjVjYmlBZ0lDQWdJSFI1Y0dVOVhDSmlkWFIwYjI1Y0lseHVJQ0FnSUNBZ1kyeGhjM05PWVcxbFBWd2lla2x1WkdWNFFuVjBkRzl1WENKY2JpQWdJQ0FnSUc5dVEyeHBZMnM5ZXlncElEMCtJSFZ3WkdGMFpVUmhkR0VvYm5Wc2JDbDlYRzRnSUNBZ0lDQjBhWFJzWlQxN1lDUjdkQ2hjSW14aFltVnNjeTV6Wlc1a1ZHOUNZV05yWENJcGZTRGlnSlFnSkh0Y2JpQWdJQ0FnSUNBZ2FYTkVZWEozYVc1Y2JpQWdJQ0FnSUNBZ0lDQS9JR2RsZEZOb2IzSjBZM1YwUzJWNUtGd2lRM1J5YkU5eVEyMWtLMEZzZEN0YlhDSXBYRzRnSUNBZ0lDQWdJQ0FnT2lCblpYUlRhRzl5ZEdOMWRFdGxlU2hjSWtOMGNteFBja050WkN0VGFHbG1kQ3RiWENJcFhHNGdJQ0FnSUNCOVlIMWNiaUFnSUNBK1hHNGdJQ0FnSUNBOFUyVnVaRlJ2UW1GamEwbGpiMjRnZEdobGJXVTllMkZ3Y0ZOMFlYUmxMblJvWlcxbGZTQXZQbHh1SUNBZ0lEd3ZZblYwZEc5dVBseHVJQ0FwTEZ4dWZTazdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmhZM1JwYjI1Q2NtbHVaMVJ2Um5KdmJuUWdQU0J5WldkcGMzUmxjaWg3WEc0Z0lHNWhiV1U2SUZ3aVluSnBibWRVYjBaeWIyNTBYQ0lzWEc0Z0lIQmxjbVp2Y20wNklDaGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXBJRDArSUh0Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdaV3hsYldWdWRITTZJRzF2ZG1WQmJHeFNhV2RvZENobGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVcExGeHVJQ0FnSUNBZ1lYQndVM1JoZEdVc1hHNGdJQ0FnSUNCamIyMXRhWFJVYjBocGMzUnZjbms2SUhSeWRXVXNYRzRnSUNBZ2ZUdGNiaUFnZlN4Y2JpQWdZMjl1ZEdWNGRFbDBaVzFNWVdKbGJEb2dYQ0pzWVdKbGJITXVZbkpwYm1kVWIwWnliMjUwWENJc1hHNGdJR3RsZVZSbGMzUTZJQ2hsZG1WdWRDa2dQVDVjYmlBZ0lDQnBjMFJoY25kcGJseHVJQ0FnSUNBZ1B5QmxkbVZ1ZEZ0TFJWbFRMa05VVWt4ZlQxSmZRMDFFWFNBbUpseHVJQ0FnSUNBZ0lDQmxkbVZ1ZEM1aGJIUkxaWGtnSmlaY2JpQWdJQ0FnSUNBZ1pYWmxiblF1WTI5a1pTQTlQVDBnUTA5RVJWTXVRbEpCUTB0RlZGOVNTVWRJVkZ4dUlDQWdJQ0FnT2lCbGRtVnVkRnRMUlZsVExrTlVVa3hmVDFKZlEwMUVYU0FtSmx4dUlDQWdJQ0FnSUNCbGRtVnVkQzV6YUdsbWRFdGxlU0FtSmx4dUlDQWdJQ0FnSUNCbGRtVnVkQzVqYjJSbElEMDlQU0JEVDBSRlV5NUNVa0ZEUzBWVVgxSkpSMGhVTEZ4dUlDQlFZVzVsYkVOdmJYQnZibVZ1ZERvZ0tIc2dkWEJrWVhSbFJHRjBZU3dnWVhCd1UzUmhkR1VnZlNrZ1BUNGdLRnh1SUNBZ0lEeGlkWFIwYjI1Y2JpQWdJQ0FnSUhSNWNHVTlYQ0ppZFhSMGIyNWNJbHh1SUNBZ0lDQWdZMnhoYzNOT1lXMWxQVndpZWtsdVpHVjRRblYwZEc5dVhDSmNiaUFnSUNBZ0lHOXVRMnhwWTJzOWV5aGxkbVZ1ZENrZ1BUNGdkWEJrWVhSbFJHRjBZU2h1ZFd4c0tYMWNiaUFnSUNBZ0lIUnBkR3hsUFh0Z0pIdDBLRndpYkdGaVpXeHpMbUp5YVc1blZHOUdjbTl1ZEZ3aUtYMGc0b0NVSUNSN1hHNGdJQ0FnSUNBZ0lHbHpSR0Z5ZDJsdVhHNGdJQ0FnSUNBZ0lDQWdQeUJuWlhSVGFHOXlkR04xZEV0bGVTaGNJa04wY214UGNrTnRaQ3RCYkhRclhWd2lLVnh1SUNBZ0lDQWdJQ0FnSURvZ1oyVjBVMmh2Y25SamRYUkxaWGtvWENKRGRISnNUM0pEYldRclUyaHBablFyWFZ3aUtWeHVJQ0FnSUNBZ2ZXQjlYRzRnSUNBZ1BseHVJQ0FnSUNBZ1BFSnlhVzVuVkc5R2NtOXVkRWxqYjI0Z2RHaGxiV1U5ZTJGd2NGTjBZWFJsTG5Sb1pXMWxmU0F2UGx4dUlDQWdJRHd2WW5WMGRHOXVQbHh1SUNBcExGeHVmU2s3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vYWN0aW9ucy9hY3Rpb25aaW5kZXgudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9hY3Rpb25zL2luZGV4LnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vYWN0aW9ucy9pbmRleC50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25EZWxldGVTZWxlY3RlZFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9hY3Rpb25EZWxldGVTZWxlY3RlZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmFjdGlvbkRlbGV0ZVNlbGVjdGVkKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25CcmluZ0ZvcndhcmRcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uWmluZGV4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uYWN0aW9uQnJpbmdGb3J3YXJkKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25CcmluZ1RvRnJvbnRcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uWmluZGV4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uYWN0aW9uQnJpbmdUb0Zyb250KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25TZW5kQmFja3dhcmRcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uWmluZGV4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uYWN0aW9uU2VuZEJhY2t3YXJkKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25TZW5kVG9CYWNrXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvblppbmRleF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmFjdGlvblNlbmRUb0JhY2spLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvblNlbGVjdEFsbFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9hY3Rpb25TZWxlY3RBbGxfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5hY3Rpb25TZWxlY3RBbGwpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkR1cGxpY2F0ZVNlbGVjdGlvblxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9hY3Rpb25EdXBsaWNhdGVTZWxlY3Rpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5hY3Rpb25EdXBsaWNhdGVTZWxlY3Rpb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNoYW5nZVN0cm9rZUNvbG9yXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvblByb3BlcnRpZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25DaGFuZ2VTdHJva2VDb2xvciksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ2hhbmdlQmFja2dyb3VuZENvbG9yXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvblByb3BlcnRpZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25DaGFuZ2VCYWNrZ3JvdW5kQ29sb3IpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNoYW5nZVN0cm9rZVdpZHRoXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvblByb3BlcnRpZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25DaGFuZ2VTdHJva2VXaWR0aCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ2hhbmdlRmlsbFN0eWxlXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvblByb3BlcnRpZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25DaGFuZ2VGaWxsU3R5bGUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNoYW5nZVNsb3BwaW5lc3NcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uUHJvcGVydGllc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvbkNoYW5nZVNsb3BwaW5lc3MpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNoYW5nZU9wYWNpdHlcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uUHJvcGVydGllc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvbkNoYW5nZU9wYWNpdHkpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNoYW5nZUZvbnRTaXplXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvblByb3BlcnRpZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25DaGFuZ2VGb250U2l6ZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ2hhbmdlRm9udEZhbWlseVxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9hY3Rpb25Qcm9wZXJ0aWVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYWN0aW9uQ2hhbmdlRm9udEZhbWlseSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ2hhbmdlVGV4dEFsaWduXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvblByb3BlcnRpZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25DaGFuZ2VUZXh0QWxpZ24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNoYW5nZVZpZXdCYWNrZ3JvdW5kQ29sb3JcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uQ2FudmFzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uYWN0aW9uQ2hhbmdlVmlld0JhY2tncm91bmRDb2xvciksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ2xlYXJDYW52YXNcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uQ2FudmFzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uYWN0aW9uQ2xlYXJDYW52YXMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvblpvb21JblxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9hY3Rpb25DYW52YXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5hY3Rpb25ab29tSW4pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvblpvb21PdXRcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uQ2FudmFzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uYWN0aW9uWm9vbU91dCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uUmVzZXRab29tXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbkNhbnZhc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmFjdGlvblJlc2V0Wm9vbSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uWm9vbVRvRml0XFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbkNhbnZhc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmFjdGlvblpvb21Ub0ZpdCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uVG9nZ2xlVGhlbWVcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uQ2FudmFzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uYWN0aW9uVG9nZ2xlVGhlbWUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkZpbmFsaXplXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbkZpbmFsaXplX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uYWN0aW9uRmluYWxpemUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNoYW5nZVByb2plY3ROYW1lXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbkV4cG9ydF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmFjdGlvbkNoYW5nZVByb2plY3ROYW1lKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25DaGFuZ2VFeHBvcnRCYWNrZ3JvdW5kXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbkV4cG9ydF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmFjdGlvbkNoYW5nZUV4cG9ydEJhY2tncm91bmQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvblNhdmVUb0FjdGl2ZUZpbGVcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uRXhwb3J0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uYWN0aW9uU2F2ZVRvQWN0aXZlRmlsZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uU2F2ZUZpbGVUb0Rpc2tcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uRXhwb3J0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uYWN0aW9uU2F2ZUZpbGVUb0Rpc2spLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkxvYWRTY2VuZVxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9hY3Rpb25FeHBvcnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5hY3Rpb25Mb2FkU2NlbmUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNvcHlTdHlsZXNcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uU3R5bGVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uYWN0aW9uQ29weVN0eWxlcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uUGFzdGVTdHlsZXNcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uU3R5bGVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uYWN0aW9uUGFzdGVTdHlsZXMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvblRvZ2dsZUNhbnZhc01lbnVcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uTWVudV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLmFjdGlvblRvZ2dsZUNhbnZhc01lbnUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvblRvZ2dsZUVkaXRNZW51XFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbk1lbnVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5hY3Rpb25Ub2dnbGVFZGl0TWVudSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uRnVsbFNjcmVlblxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9hY3Rpb25NZW51X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uYWN0aW9uRnVsbFNjcmVlbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uU2hvcnRjdXRzXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbk1lbnVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5hY3Rpb25TaG9ydGN1dHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkdyb3VwXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbkdyb3VwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLmFjdGlvbkdyb3VwKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25Vbmdyb3VwXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbkdyb3VwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLmFjdGlvblVuZ3JvdXApLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkdvVG9Db2xsYWJvcmF0b3JcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uTmF2aWdhdGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uYWN0aW9uR29Ub0NvbGxhYm9yYXRvciksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQWRkVG9MaWJyYXJ5XFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbkFkZFRvTGlicmFyeV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5hY3Rpb25BZGRUb0xpYnJhcnkpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkFsaWduVG9wXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbkFsaWduX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLmFjdGlvbkFsaWduVG9wKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25BbGlnbkJvdHRvbVxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9hY3Rpb25BbGlnbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5hY3Rpb25BbGlnbkJvdHRvbSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQWxpZ25MZWZ0XFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbkFsaWduX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLmFjdGlvbkFsaWduTGVmdCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQWxpZ25SaWdodFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9hY3Rpb25BbGlnbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5hY3Rpb25BbGlnblJpZ2h0KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25BbGlnblZlcnRpY2FsbHlDZW50ZXJlZFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9hY3Rpb25BbGlnbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5hY3Rpb25BbGlnblZlcnRpY2FsbHlDZW50ZXJlZCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQWxpZ25Ib3Jpem9udGFsbHlDZW50ZXJlZFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9hY3Rpb25BbGlnbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5hY3Rpb25BbGlnbkhvcml6b250YWxseUNlbnRlcmVkKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkaXN0cmlidXRlSG9yaXpvbnRhbGx5XFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbkRpc3RyaWJ1dGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18uZGlzdHJpYnV0ZUhvcml6b250YWxseSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGlzdHJpYnV0ZVZlcnRpY2FsbHlcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uRGlzdHJpYnV0ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy5kaXN0cmlidXRlVmVydGljYWxseSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uRmxpcEhvcml6b250YWxcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uRmxpcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXy5hY3Rpb25GbGlwSG9yaXpvbnRhbCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uRmxpcFZlcnRpY2FsXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbkZsaXBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE1X18uYWN0aW9uRmxpcFZlcnRpY2FsKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25Db3B5XFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbkNsaXBib2FyZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5hY3Rpb25Db3B5KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25DdXRcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYWN0aW9uQ2xpcGJvYXJkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmFjdGlvbkN1dCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uQ29weUFzUG5nXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvbkNsaXBib2FyZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5hY3Rpb25Db3B5QXNQbmcpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvbkNvcHlBc1N2Z1xcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9hY3Rpb25DbGlwYm9hcmRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uYWN0aW9uQ29weUFzU3ZnKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25Ub2dnbGVHcmlkTW9kZVxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9hY3Rpb25Ub2dnbGVHcmlkTW9kZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5hY3Rpb25Ub2dnbGVHcmlkTW9kZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uVG9nZ2xlWmVuTW9kZVxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9hY3Rpb25Ub2dnbGVaZW5Nb2RlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOF9fLmFjdGlvblRvZ2dsZVplbk1vZGUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFjdGlvblRvZ2dsZVN0YXRzXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvblRvZ2dsZVN0YXRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOV9fLmFjdGlvblRvZ2dsZVN0YXRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhY3Rpb25VbmJpbmRUZXh0XFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2FjdGlvblVuYmluZFRleHRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIwX18uYWN0aW9uVW5iaW5kVGV4dCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uTGlua1xcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9lbGVtZW50X0h5cGVybGlua19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjFfXy5hY3Rpb25MaW5rKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYWN0aW9uRGVsZXRlU2VsZWN0ZWRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vYWN0aW9uRGVsZXRlU2VsZWN0ZWQgKi8gXFxcIi4uLy4uL2FjdGlvbnMvYWN0aW9uRGVsZXRlU2VsZWN0ZWQudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hY3Rpb25aaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vYWN0aW9uWmluZGV4ICovIFxcXCIuLi8uLi9hY3Rpb25zL2FjdGlvblppbmRleC50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FjdGlvblNlbGVjdEFsbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9hY3Rpb25TZWxlY3RBbGwgKi8gXFxcIi4uLy4uL2FjdGlvbnMvYWN0aW9uU2VsZWN0QWxsLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hY3Rpb25EdXBsaWNhdGVTZWxlY3Rpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vYWN0aW9uRHVwbGljYXRlU2VsZWN0aW9uICovIFxcXCIuLi8uLi9hY3Rpb25zL2FjdGlvbkR1cGxpY2F0ZVNlbGVjdGlvbi50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FjdGlvblByb3BlcnRpZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vYWN0aW9uUHJvcGVydGllcyAqLyBcXFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25Qcm9wZXJ0aWVzLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYWN0aW9uQ2FudmFzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2FjdGlvbkNhbnZhcyAqLyBcXFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25DYW52YXMudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hY3Rpb25GaW5hbGl6ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9hY3Rpb25GaW5hbGl6ZSAqLyBcXFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25GaW5hbGl6ZS50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FjdGlvbkV4cG9ydF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9hY3Rpb25FeHBvcnQgKi8gXFxcIi4uLy4uL2FjdGlvbnMvYWN0aW9uRXhwb3J0LnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYWN0aW9uU3R5bGVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2FjdGlvblN0eWxlcyAqLyBcXFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25TdHlsZXMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FjdGlvbk1lbnVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vYWN0aW9uTWVudSAqLyBcXFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25NZW51LnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYWN0aW9uR3JvdXBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2FjdGlvbkdyb3VwICovIFxcXCIuLi8uLi9hY3Rpb25zL2FjdGlvbkdyb3VwLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYWN0aW9uTmF2aWdhdGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2FjdGlvbk5hdmlnYXRlICovIFxcXCIuLi8uLi9hY3Rpb25zL2FjdGlvbk5hdmlnYXRlLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYWN0aW9uQWRkVG9MaWJyYXJ5X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9hY3Rpb25BZGRUb0xpYnJhcnkgKi8gXFxcIi4uLy4uL2FjdGlvbnMvYWN0aW9uQWRkVG9MaWJyYXJ5LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hY3Rpb25BbGlnbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vYWN0aW9uQWxpZ24gKi8gXFxcIi4uLy4uL2FjdGlvbnMvYWN0aW9uQWxpZ24udHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hY3Rpb25EaXN0cmlidXRlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9hY3Rpb25EaXN0cmlidXRlICovIFxcXCIuLi8uLi9hY3Rpb25zL2FjdGlvbkRpc3RyaWJ1dGUudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hY3Rpb25GbGlwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9hY3Rpb25GbGlwICovIFxcXCIuLi8uLi9hY3Rpb25zL2FjdGlvbkZsaXAudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FjdGlvbkNsaXBib2FyZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vYWN0aW9uQ2xpcGJvYXJkICovIFxcXCIuLi8uLi9hY3Rpb25zL2FjdGlvbkNsaXBib2FyZC50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FjdGlvblRvZ2dsZUdyaWRNb2RlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9hY3Rpb25Ub2dnbGVHcmlkTW9kZSAqLyBcXFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25Ub2dnbGVHcmlkTW9kZS50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FjdGlvblRvZ2dsZVplbk1vZGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE4X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2FjdGlvblRvZ2dsZVplbk1vZGUgKi8gXFxcIi4uLy4uL2FjdGlvbnMvYWN0aW9uVG9nZ2xlWmVuTW9kZS50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FjdGlvblRvZ2dsZVN0YXRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9hY3Rpb25Ub2dnbGVTdGF0cyAqLyBcXFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25Ub2dnbGVTdGF0cy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FjdGlvblVuYmluZFRleHRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIwX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2FjdGlvblVuYmluZFRleHQgKi8gXFxcIi4uLy4uL2FjdGlvbnMvYWN0aW9uVW5iaW5kVGV4dC50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfSHlwZXJsaW5rX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC9IeXBlcmxpbmsgKi8gXFxcIi4uLy4uL2VsZW1lbnQvSHlwZXJsaW5rLnRzeFxcXCIpO1xcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVdOMGFXOXVjeTlwYm1SbGVDNTBjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRCUVVFNFJEdEJRVTEwUXp0QlFVTTBRanRCUVVOclFqdEJRVmN4UXp0QlFWVktPMEZCUlRCQ08wRkJVVEZDTzBGQlJUWkRPMEZCVFM5RE8wRkJSWEZETzBGQlJVUTdRVUZGUVR0QlFWTnVRenRCUVV0TE8wRkJSVFJETzBGQlR6ZERPMEZCUlcxRE8wRkJRMFk3UVVGRlNqdEJRVU5HTzBGQlEwb2lMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WVdOMGFXOXVjeTlwYm1SbGVDNTBjejh3TWpRMUlsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbVY0Y0c5eWRDQjdJR0ZqZEdsdmJrUmxiR1YwWlZObGJHVmpkR1ZrSUgwZ1puSnZiU0JjSWk0dllXTjBhVzl1UkdWc1pYUmxVMlZzWldOMFpXUmNJanRjYm1WNGNHOXlkQ0I3WEc0Z0lHRmpkR2x2YmtKeWFXNW5SbTl5ZDJGeVpDeGNiaUFnWVdOMGFXOXVRbkpwYm1kVWIwWnliMjUwTEZ4dUlDQmhZM1JwYjI1VFpXNWtRbUZqYTNkaGNtUXNYRzRnSUdGamRHbHZibE5sYm1SVWIwSmhZMnNzWEc1OUlHWnliMjBnWENJdUwyRmpkR2x2YmxwcGJtUmxlRndpTzF4dVpYaHdiM0owSUhzZ1lXTjBhVzl1VTJWc1pXTjBRV3hzSUgwZ1puSnZiU0JjSWk0dllXTjBhVzl1VTJWc1pXTjBRV3hzWENJN1hHNWxlSEJ2Y25RZ2V5QmhZM1JwYjI1RWRYQnNhV05oZEdWVFpXeGxZM1JwYjI0Z2ZTQm1jbTl0SUZ3aUxpOWhZM1JwYjI1RWRYQnNhV05oZEdWVFpXeGxZM1JwYjI1Y0lqdGNibVY0Y0c5eWRDQjdYRzRnSUdGamRHbHZia05vWVc1blpWTjBjbTlyWlVOdmJHOXlMRnh1SUNCaFkzUnBiMjVEYUdGdVoyVkNZV05yWjNKdmRXNWtRMjlzYjNJc1hHNGdJR0ZqZEdsdmJrTm9ZVzVuWlZOMGNtOXJaVmRwWkhSb0xGeHVJQ0JoWTNScGIyNURhR0Z1WjJWR2FXeHNVM1I1YkdVc1hHNGdJR0ZqZEdsdmJrTm9ZVzVuWlZOc2IzQndhVzVsYzNNc1hHNGdJR0ZqZEdsdmJrTm9ZVzVuWlU5d1lXTnBkSGtzWEc0Z0lHRmpkR2x2YmtOb1lXNW5aVVp2Ym5SVGFYcGxMRnh1SUNCaFkzUnBiMjVEYUdGdVoyVkdiMjUwUm1GdGFXeDVMRnh1SUNCaFkzUnBiMjVEYUdGdVoyVlVaWGgwUVd4cFoyNHNYRzU5SUdaeWIyMGdYQ0l1TDJGamRHbHZibEJ5YjNCbGNuUnBaWE5jSWp0Y2JseHVaWGh3YjNKMElIdGNiaUFnWVdOMGFXOXVRMmhoYm1kbFZtbGxkMEpoWTJ0bmNtOTFibVJEYjJ4dmNpeGNiaUFnWVdOMGFXOXVRMnhsWVhKRFlXNTJZWE1zWEc0Z0lHRmpkR2x2YmxwdmIyMUpiaXhjYmlBZ1lXTjBhVzl1V205dmJVOTFkQ3hjYmlBZ1lXTjBhVzl1VW1WelpYUmFiMjl0TEZ4dUlDQmhZM1JwYjI1YWIyOXRWRzlHYVhRc1hHNGdJR0ZqZEdsdmJsUnZaMmRzWlZSb1pXMWxMRnh1ZlNCbWNtOXRJRndpTGk5aFkzUnBiMjVEWVc1MllYTmNJanRjYmx4dVpYaHdiM0owSUhzZ1lXTjBhVzl1Um1sdVlXeHBlbVVnZlNCbWNtOXRJRndpTGk5aFkzUnBiMjVHYVc1aGJHbDZaVndpTzF4dVhHNWxlSEJ2Y25RZ2UxeHVJQ0JoWTNScGIyNURhR0Z1WjJWUWNtOXFaV04wVG1GdFpTeGNiaUFnWVdOMGFXOXVRMmhoYm1kbFJYaHdiM0owUW1GamEyZHliM1Z1WkN4Y2JpQWdZV04wYVc5dVUyRjJaVlJ2UVdOMGFYWmxSbWxzWlN4Y2JpQWdZV04wYVc5dVUyRjJaVVpwYkdWVWIwUnBjMnNzWEc0Z0lHRmpkR2x2Ymt4dllXUlRZMlZ1WlN4Y2JuMGdabkp2YlNCY0lpNHZZV04wYVc5dVJYaHdiM0owWENJN1hHNWNibVY0Y0c5eWRDQjdJR0ZqZEdsdmJrTnZjSGxUZEhsc1pYTXNJR0ZqZEdsdmJsQmhjM1JsVTNSNWJHVnpJSDBnWm5KdmJTQmNJaTR2WVdOMGFXOXVVM1I1YkdWelhDSTdYRzVsZUhCdmNuUWdlMXh1SUNCaFkzUnBiMjVVYjJkbmJHVkRZVzUyWVhOTlpXNTFMRnh1SUNCaFkzUnBiMjVVYjJkbmJHVkZaR2wwVFdWdWRTeGNiaUFnWVdOMGFXOXVSblZzYkZOamNtVmxiaXhjYmlBZ1lXTjBhVzl1VTJodmNuUmpkWFJ6TEZ4dWZTQm1jbTl0SUZ3aUxpOWhZM1JwYjI1TlpXNTFYQ0k3WEc1Y2JtVjRjRzl5ZENCN0lHRmpkR2x2YmtkeWIzVndMQ0JoWTNScGIyNVZibWR5YjNWd0lIMGdabkp2YlNCY0lpNHZZV04wYVc5dVIzSnZkWEJjSWp0Y2JseHVaWGh3YjNKMElIc2dZV04wYVc5dVIyOVViME52Ykd4aFltOXlZWFJ2Y2lCOUlHWnliMjBnWENJdUwyRmpkR2x2Yms1aGRtbG5ZWFJsWENJN1hHNWNibVY0Y0c5eWRDQjdJR0ZqZEdsdmJrRmtaRlJ2VEdsaWNtRnllU0I5SUdaeWIyMGdYQ0l1TDJGamRHbHZia0ZrWkZSdlRHbGljbUZ5ZVZ3aU8xeHVYRzVsZUhCdmNuUWdlMXh1SUNCaFkzUnBiMjVCYkdsbmJsUnZjQ3hjYmlBZ1lXTjBhVzl1UVd4cFoyNUNiM1IwYjIwc1hHNGdJR0ZqZEdsdmJrRnNhV2R1VEdWbWRDeGNiaUFnWVdOMGFXOXVRV3hwWjI1U2FXZG9kQ3hjYmlBZ1lXTjBhVzl1UVd4cFoyNVdaWEowYVdOaGJHeDVRMlZ1ZEdWeVpXUXNYRzRnSUdGamRHbHZia0ZzYVdkdVNHOXlhWHB2Ym5SaGJHeDVRMlZ1ZEdWeVpXUXNYRzU5SUdaeWIyMGdYQ0l1TDJGamRHbHZia0ZzYVdkdVhDSTdYRzVjYm1WNGNHOXlkQ0I3WEc0Z0lHUnBjM1J5YVdKMWRHVkliM0pwZW05dWRHRnNiSGtzWEc0Z0lHUnBjM1J5YVdKMWRHVldaWEowYVdOaGJHeDVMRnh1ZlNCbWNtOXRJRndpTGk5aFkzUnBiMjVFYVhOMGNtbGlkWFJsWENJN1hHNWNibVY0Y0c5eWRDQjdJR0ZqZEdsdmJrWnNhWEJJYjNKcGVtOXVkR0ZzTENCaFkzUnBiMjVHYkdsd1ZtVnlkR2xqWVd3Z2ZTQm1jbTl0SUZ3aUxpOWhZM1JwYjI1R2JHbHdYQ0k3WEc1Y2JtVjRjRzl5ZENCN1hHNGdJR0ZqZEdsdmJrTnZjSGtzWEc0Z0lHRmpkR2x2YmtOMWRDeGNiaUFnWVdOMGFXOXVRMjl3ZVVGelVHNW5MRnh1SUNCaFkzUnBiMjVEYjNCNVFYTlRkbWNzWEc1OUlHWnliMjBnWENJdUwyRmpkR2x2YmtOc2FYQmliMkZ5WkZ3aU8xeHVYRzVsZUhCdmNuUWdleUJoWTNScGIyNVViMmRuYkdWSGNtbGtUVzlrWlNCOUlHWnliMjBnWENJdUwyRmpkR2x2YmxSdloyZHNaVWR5YVdSTmIyUmxYQ0k3WEc1bGVIQnZjblFnZXlCaFkzUnBiMjVVYjJkbmJHVmFaVzVOYjJSbElIMGdabkp2YlNCY0lpNHZZV04wYVc5dVZHOW5aMnhsV21WdVRXOWtaVndpTzF4dVhHNWxlSEJ2Y25RZ2V5QmhZM1JwYjI1VWIyZG5iR1ZUZEdGMGN5QjlJR1p5YjIwZ1hDSXVMMkZqZEdsdmJsUnZaMmRzWlZOMFlYUnpYQ0k3WEc1bGVIQnZjblFnZXlCaFkzUnBiMjVWYm1KcGJtUlVaWGgwSUgwZ1puSnZiU0JjSWk0dllXTjBhVzl1Vlc1aWFXNWtWR1Y0ZEZ3aU8xeHVaWGh3YjNKMElIc2dZV04wYVc5dVRHbHVheUI5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwTDBoNWNHVnliR2x1YTF3aU8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2FjdGlvbnMvaW5kZXgudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2FjdGlvbnMvbWFuYWdlci50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9hY3Rpb25zL21hbmFnZXIudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkFjdGlvbk1hbmFnZXJcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBBY3Rpb25NYW5hZ2VyKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbnN0YW50cyAqLyBcXFwiLi4vLi4vY29uc3RhbnRzLnRzXFxcIik7XFxuXFxuXFxuXFxuY2xhc3MgQWN0aW9uTWFuYWdlciB7XFxuICAgIGNvbnN0cnVjdG9yKHVwZGF0ZXIsIGdldEFwcFN0YXRlLCBnZXRFbGVtZW50c0luY2x1ZGluZ0RlbGV0ZWQsIGFwcCkge1xcbiAgICAgICAgdGhpcy5hY3Rpb25zID0ge307XFxuICAgICAgICAvKipcXG4gICAgICAgICAqIEBwYXJhbSBkYXRhIGFkZGl0aW9uYWwgZGF0YSBzZW50IHRvIHRoZSBQYW5lbENvbXBvbmVudFxcbiAgICAgICAgICovXFxuICAgICAgICB0aGlzLnJlbmRlckFjdGlvbiA9IChuYW1lLCBkYXRhKSA9PiB7XFxuICAgICAgICAgICAgY29uc3QgY2FudmFzQWN0aW9ucyA9IHRoaXMuYXBwLnByb3BzLlVJT3B0aW9ucy5jYW52YXNBY3Rpb25zO1xcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGlvbnNbbmFtZV0gJiZcXG4gICAgICAgICAgICAgICAgXFxcIlBhbmVsQ29tcG9uZW50XFxcIiBpbiB0aGlzLmFjdGlvbnNbbmFtZV0gJiZcXG4gICAgICAgICAgICAgICAgKG5hbWUgaW4gY2FudmFzQWN0aW9uc1xcbiAgICAgICAgICAgICAgICAgICAgPyBjYW52YXNBY3Rpb25zW25hbWVdXFxuICAgICAgICAgICAgICAgICAgICA6IHRydWUpKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWN0aW9uc1tuYW1lXTtcXG4gICAgICAgICAgICAgICAgY29uc3QgUGFuZWxDb21wb25lbnQgPSBhY3Rpb24uUGFuZWxDb21wb25lbnQ7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZURhdGEgPSAoZm9ybVN0YXRlKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZXIoYWN0aW9uLnBlcmZvcm0odGhpcy5nZXRFbGVtZW50c0luY2x1ZGluZ0RlbGV0ZWQoKSwgdGhpcy5nZXRBcHBTdGF0ZSgpLCBmb3JtU3RhdGUsIHRoaXMuYXBwKSk7XFxuICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFBhbmVsQ29tcG9uZW50LCB7IGVsZW1lbnRzOiB0aGlzLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpLCBhcHBTdGF0ZTogdGhpcy5nZXRBcHBTdGF0ZSgpLCB1cGRhdGVEYXRhOiB1cGRhdGVEYXRhLCBhcHBQcm9wczogdGhpcy5hcHAucHJvcHMsIGRhdGE6IGRhdGEgfSwgdm9pZCAwKSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xcbiAgICAgICAgfTtcXG4gICAgICAgIHRoaXMudXBkYXRlciA9IChhY3Rpb25SZXN1bHQpID0+IHtcXG4gICAgICAgICAgICBpZiAoYWN0aW9uUmVzdWx0ICYmIFxcXCJ0aGVuXFxcIiBpbiBhY3Rpb25SZXN1bHQpIHtcXG4gICAgICAgICAgICAgICAgYWN0aW9uUmVzdWx0LnRoZW4oKGFjdGlvblJlc3VsdCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZXIoYWN0aW9uUmVzdWx0KTtcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlcihhY3Rpb25SZXN1bHQpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmdldEFwcFN0YXRlID0gZ2V0QXBwU3RhdGU7XFxuICAgICAgICB0aGlzLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCA9IGdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZDtcXG4gICAgICAgIHRoaXMuYXBwID0gYXBwO1xcbiAgICB9XFxuICAgIHJlZ2lzdGVyQWN0aW9uKGFjdGlvbikge1xcbiAgICAgICAgdGhpcy5hY3Rpb25zW2FjdGlvbi5uYW1lXSA9IGFjdGlvbjtcXG4gICAgfVxcbiAgICByZWdpc3RlckFsbChhY3Rpb25zKSB7XFxuICAgICAgICBhY3Rpb25zLmZvckVhY2goKGFjdGlvbikgPT4gdGhpcy5yZWdpc3RlckFjdGlvbihhY3Rpb24pKTtcXG4gICAgfVxcbiAgICBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XFxuICAgICAgICBjb25zdCBjYW52YXNBY3Rpb25zID0gdGhpcy5hcHAucHJvcHMuVUlPcHRpb25zLmNhbnZhc0FjdGlvbnM7XFxuICAgICAgICBjb25zdCBkYXRhID0gT2JqZWN0LnZhbHVlcyh0aGlzLmFjdGlvbnMpXFxuICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IChiLmtleVByaW9yaXR5IHx8IDApIC0gKGEua2V5UHJpb3JpdHkgfHwgMCkpXFxuICAgICAgICAgICAgLmZpbHRlcigoYWN0aW9uKSA9PiAoYWN0aW9uLm5hbWUgaW4gY2FudmFzQWN0aW9uc1xcbiAgICAgICAgICAgID8gY2FudmFzQWN0aW9uc1thY3Rpb24ubmFtZV1cXG4gICAgICAgICAgICA6IHRydWUpICYmXFxuICAgICAgICAgICAgYWN0aW9uLmtleVRlc3QgJiZcXG4gICAgICAgICAgICBhY3Rpb24ua2V5VGVzdChldmVudCwgdGhpcy5nZXRBcHBTdGF0ZSgpLCB0aGlzLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpKSk7XFxuICAgICAgICBpZiAoZGF0YS5sZW5ndGggPT09IDApIHtcXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCB7IHZpZXdNb2RlRW5hYmxlZCB9ID0gdGhpcy5nZXRBcHBTdGF0ZSgpO1xcbiAgICAgICAgaWYgKHZpZXdNb2RlRW5hYmxlZCkge1xcbiAgICAgICAgICAgIGlmICghT2JqZWN0LnZhbHVlcyhfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uTU9ERVMpLmluY2x1ZGVzKGRhdGFbMF0ubmFtZSkpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XFxuICAgICAgICB0aGlzLnVwZGF0ZXIoZGF0YVswXS5wZXJmb3JtKHRoaXMuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCksIHRoaXMuZ2V0QXBwU3RhdGUoKSwgbnVsbCwgdGhpcy5hcHApKTtcXG4gICAgICAgIHJldHVybiB0cnVlO1xcbiAgICB9XFxuICAgIGV4ZWN1dGVBY3Rpb24oYWN0aW9uKSB7XFxuICAgICAgICB0aGlzLnVwZGF0ZXIoYWN0aW9uLnBlcmZvcm0odGhpcy5nZXRFbGVtZW50c0luY2x1ZGluZ0RlbGV0ZWQoKSwgdGhpcy5nZXRBcHBTdGF0ZSgpLCBudWxsLCB0aGlzLmFwcCkpO1xcbiAgICB9XFxufVxcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVdOMGFXOXVjeTl0WVc1aFoyVnlMblJ6ZUM1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3UVVGQk1FSTdRVUZYVnp0QlFVVTVRaXhOUVVGTkxHRkJRV0U3U1VGVGVFSXNXVUZEUlN4UFFVRnJRaXhGUVVOc1FpeFhRVUV5UWl4RlFVTXpRaXd5UWtGQkswUXNSVUZETDBRc1IwRkJkVUk3VVVGYWVrSXNXVUZCVHl4SFFVRkhMRVZCUVhkRExFTkJRVU03VVVGelJtNUVPenRYUVVWSE8xRkJRMGdzYVVKQlFWa3NSMEZCUnl4RFFVRkRMRWxCUVdkQ0xFVkJRVVVzU1VGQmEwTXNSVUZCUlN4RlFVRkZPMWxCUTNSRkxFMUJRVTBzWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eGhRVUZoTEVOQlFVTTdXVUZGTjBRc1NVRkRSU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXp0blFrRkRiRUlzWjBKQlFXZENMRWxCUVVrc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTTdaMEpCUTNSRExFTkJRVU1zU1VGQlNTeEpRVUZKTEdGQlFXRTdiMEpCUTNCQ0xFTkJRVU1zUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCYTBNc1EwRkJRenR2UWtGRGJrUXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVOVU8yZENRVU5CTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUTJ4RExFMUJRVTBzWTBGQll5eEhRVUZITEUxQlFVMHNRMEZCUXl4alFVRmxMRU5CUVVNN1owSkJRemxETEUxQlFVMHNWVUZCVlN4SFFVRkhMRU5CUVVNc1UwRkJaU3hGUVVGRkxFVkJRVVU3YjBKQlEzSkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRMVlzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZEV2l4SlFVRkpMRU5CUVVNc01rSkJRVEpDTEVWQlFVVXNSVUZEYkVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUlVGQlJTeEZRVU5zUWl4VFFVRlRMRVZCUTFRc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGRFZDeERRVU5HTEVOQlFVTTdaMEpCUTBvc1EwRkJReXhEUVVGRE8yZENRVVZHTEU5QlFVOHNRMEZEVEN4MVJFRkJReXhqUVVGakxFbEJRMklzVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl3eVFrRkJNa0lzUlVGQlJTeEZRVU0xUXl4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExGZEJRVmNzUlVGQlJTeEZRVU0xUWl4VlFVRlZMRVZCUVVVc1ZVRkJWU3hGUVVOMFFpeFJRVUZSTEVWQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFVkJRM2hDTEVsQlFVa3NSVUZCUlN4SlFVRkpMRmRCUTFZc1EwRkRTQ3hEUVVGRE8yRkJRMGc3V1VGRlJDeFBRVUZQTEVsQlFVa3NRMEZCUXp0UlFVTmtMRU5CUVVNc1EwRkJRenRSUVRsSFFTeEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMRU5CUVVNc1dVRkJXU3hGUVVGRkxFVkJRVVU3V1VGRE9VSXNTVUZCU1N4WlFVRlpMRWxCUVVrc1RVRkJUU3hKUVVGSkxGbEJRVmtzUlVGQlJUdG5Ra0ZETVVNc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEZsQlFWa3NSVUZCUlN4RlFVRkZPMjlDUVVOcVF5eFBRVUZQTEU5QlFVOHNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRuUWtGREwwSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1lVRkRTanRwUWtGQlRUdG5Ra0ZEVEN4UFFVRlBMRTlCUVU4c1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dGhRVU01UWp0UlFVTklMRU5CUVVNc1EwRkJRenRSUVVOR0xFbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NWMEZCVnl4RFFVRkRPMUZCUXk5Q0xFbEJRVWtzUTBGQlF5d3lRa0ZCTWtJc1IwRkJSeXd5UWtGQk1rSXNRMEZCUXp0UlFVTXZSQ3hKUVVGSkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXp0SlFVTnFRaXhEUVVGRE8wbEJSVVFzWTBGQll5eERRVUZETEUxQlFXTTdVVUZETTBJc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRE8wbEJRM0pETEVOQlFVTTdTVUZGUkN4WFFVRlhMRU5CUVVNc1QwRkJNRUk3VVVGRGNFTXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6TkVMRU5CUVVNN1NVRkZSQ3hoUVVGaExFTkJRVU1zUzBGQk1FTTdVVUZEZEVRc1RVRkJUU3hoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExHRkJRV0VzUTBGQlF6dFJRVU0zUkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNN1lVRkRja01zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWMEZCVnl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVNelJDeE5RVUZOTEVOQlEwd3NRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVOVUxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NTVUZCU1N4aFFVRmhPMWxCUXpOQ0xFTkJRVU1zUTBGQlF5eGhRVUZoTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVd0RExFTkJRVU03V1VGRE1VUXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJRenRaUVVOVUxFMUJRVTBzUTBGQlF5eFBRVUZQTzFsQlEyUXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkRXaXhMUVVGTExFVkJRMHdzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlN4RlFVTnNRaXhKUVVGSkxFTkJRVU1zTWtKQlFUSkNMRVZCUVVVc1EwRkRia01zUTBGRFNpeERRVUZETzFGQlJVb3NTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU1zUlVGQlJUdFpRVU55UWl4UFFVRlBMRXRCUVVzc1EwRkJRenRUUVVOa08xRkJRMFFzVFVGQlRTeEZRVUZGTEdWQlFXVXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFJRVU12UXl4SlFVRkpMR1ZCUVdVc1JVRkJSVHRaUVVOdVFpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXcyUTBGQlN5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlR0blFrRkRhRVFzVDBGQlR5eExRVUZMTEVOQlFVTTdZVUZEWkR0VFFVTkdPMUZCUlVRc1MwRkJTeXhEUVVGRExHTkJRV01zUlVGQlJTeERRVUZETzFGQlEzWkNMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRMVlzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkRZaXhKUVVGSkxFTkJRVU1zTWtKQlFUSkNMRVZCUVVVc1JVRkRiRU1zU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlN4RlFVTnNRaXhKUVVGSkxFVkJRMG9zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZEVkN4RFFVTkdMRU5CUVVNN1VVRkRSaXhQUVVGUExFbEJRVWtzUTBGQlF6dEpRVU5rTEVOQlFVTTdTVUZGUkN4aFFVRmhMRU5CUVVNc1RVRkJZenRSUVVNeFFpeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVTldMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRMW9zU1VGQlNTeERRVUZETERKQ1FVRXlRaXhGUVVGRkxFVkJRMnhETEVsQlFVa3NRMEZCUXl4WFFVRlhMRVZCUVVVc1JVRkRiRUlzU1VGQlNTeEZRVU5LTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUTFRc1EwRkRSaXhEUVVGRE8wbEJRMG9zUTBGQlF6dERRWGxEUmlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWhZM1JwYjI1ekwyMWhibUZuWlhJdWRITjRQMlJoT0dVaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElGSmxZV04wSUdaeWIyMGdYQ0p5WldGamRGd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1FXTjBhVzl1TEZ4dUlDQkJZM1JwYjI1elRXRnVZV2RsY2tsdWRHVnlabUZqWlN4Y2JpQWdWWEJrWVhSbGNrWnVMRnh1SUNCQlkzUnBiMjVPWVcxbExGeHVJQ0JCWTNScGIyNVNaWE4xYkhRc1hHNGdJRkJoYm1Wc1EyOXRjRzl1Wlc1MFVISnZjSE1zWEc1OUlHWnliMjBnWENJdUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5QkZlR05oYkdsa2NtRjNSV3hsYldWdWRDQjlJR1p5YjIwZ1hDSXVMaTlsYkdWdFpXNTBMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdleUJCY0hCRGJHRnpjMUJ5YjNCbGNuUnBaWE1zSUVGd2NGTjBZWFJsSUgwZ1puSnZiU0JjSWk0dUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5Qk5UMFJGVXlCOUlHWnliMjBnWENJdUxpOWpiMjV6ZEdGdWRITmNJanRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRUZqZEdsdmJrMWhibUZuWlhJZ2FXMXdiR1Z0Wlc1MGN5QkJZM1JwYjI1elRXRnVZV2RsY2tsdWRHVnlabUZqWlNCN1hHNGdJR0ZqZEdsdmJuTWdQU0I3ZlNCaGN5QkJZM1JwYjI1elRXRnVZV2RsY2tsdWRHVnlabUZqWlZ0Y0ltRmpkR2x2Ym5OY0lsMDdYRzVjYmlBZ2RYQmtZWFJsY2pvZ0tHRmpkR2x2YmxKbGMzVnNkRG9nUVdOMGFXOXVVbVZ6ZFd4MElId2dVSEp2YldselpUeEJZM1JwYjI1U1pYTjFiSFErS1NBOVBpQjJiMmxrTzF4dVhHNGdJR2RsZEVGd2NGTjBZWFJsT2lBb0tTQTlQaUJTWldGa2IyNXNlVHhCY0hCVGRHRjBaVDQ3WEc0Z0lHZGxkRVZzWlcxbGJuUnpTVzVqYkhWa2FXNW5SR1ZzWlhSbFpEb2dLQ2tnUFQ0Z2NtVmhaRzl1YkhrZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhUdGNiaUFnWVhCd09pQkJjSEJEYkdGemMxQnliM0JsY25ScFpYTTdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9YRzRnSUNBZ2RYQmtZWFJsY2pvZ1ZYQmtZWFJsY2tadUxGeHVJQ0FnSUdkbGRFRndjRk4wWVhSbE9pQW9LU0E5UGlCQmNIQlRkR0YwWlN4Y2JpQWdJQ0JuWlhSRmJHVnRaVzUwYzBsdVkyeDFaR2x1WjBSbGJHVjBaV1E2SUNncElEMCtJSEpsWVdSdmJteDVJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTBzWEc0Z0lDQWdZWEJ3T2lCQmNIQkRiR0Z6YzFCeWIzQmxjblJwWlhNc1hHNGdJQ2tnZTF4dUlDQWdJSFJvYVhNdWRYQmtZWFJsY2lBOUlDaGhZM1JwYjI1U1pYTjFiSFFwSUQwK0lIdGNiaUFnSUNBZ0lHbG1JQ2hoWTNScGIyNVNaWE4xYkhRZ0ppWWdYQ0owYUdWdVhDSWdhVzRnWVdOMGFXOXVVbVZ6ZFd4MEtTQjdYRzRnSUNBZ0lDQWdJR0ZqZEdsdmJsSmxjM1ZzZEM1MGFHVnVLQ2hoWTNScGIyNVNaWE4xYkhRcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZFhCa1lYUmxjaWhoWTNScGIyNVNaWE4xYkhRcE8xeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjFjR1JoZEdWeUtHRmpkR2x2YmxKbGMzVnNkQ2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVHRjYmlBZ0lDQjBhR2x6TG1kbGRFRndjRk4wWVhSbElEMGdaMlYwUVhCd1UzUmhkR1U3WEc0Z0lDQWdkR2hwY3k1blpYUkZiR1Z0Wlc1MGMwbHVZMngxWkdsdVowUmxiR1YwWldRZ1BTQm5aWFJGYkdWdFpXNTBjMGx1WTJ4MVpHbHVaMFJsYkdWMFpXUTdYRzRnSUNBZ2RHaHBjeTVoY0hBZ1BTQmhjSEE3WEc0Z0lIMWNibHh1SUNCeVpXZHBjM1JsY2tGamRHbHZiaWhoWTNScGIyNDZJRUZqZEdsdmJpa2dlMXh1SUNBZ0lIUm9hWE11WVdOMGFXOXVjMXRoWTNScGIyNHVibUZ0WlYwZ1BTQmhZM1JwYjI0N1hHNGdJSDFjYmx4dUlDQnlaV2RwYzNSbGNrRnNiQ2hoWTNScGIyNXpPaUJ5WldGa2IyNXNlU0JCWTNScGIyNWJYU2tnZTF4dUlDQWdJR0ZqZEdsdmJuTXVabTl5UldGamFDZ29ZV04wYVc5dUtTQTlQaUIwYUdsekxuSmxaMmx6ZEdWeVFXTjBhVzl1S0dGamRHbHZiaWtwTzF4dUlDQjlYRzVjYmlBZ2FHRnVaR3hsUzJWNVJHOTNiaWhsZG1WdWREb2dVbVZoWTNRdVMyVjVZbTloY21SRmRtVnVkQ0I4SUV0bGVXSnZZWEprUlhabGJuUXBJSHRjYmlBZ0lDQmpiMjV6ZENCallXNTJZWE5CWTNScGIyNXpJRDBnZEdocGN5NWhjSEF1Y0hKdmNITXVWVWxQY0hScGIyNXpMbU5oYm5aaGMwRmpkR2x2Ym5NN1hHNGdJQ0FnWTI5dWMzUWdaR0YwWVNBOUlFOWlhbVZqZEM1MllXeDFaWE1vZEdocGN5NWhZM1JwYjI1ektWeHVJQ0FnSUNBZ0xuTnZjblFvS0dFc0lHSXBJRDArSUNoaUxtdGxlVkJ5YVc5eWFYUjVJSHg4SURBcElDMGdLR0V1YTJWNVVISnBiM0pwZEhrZ2ZId2dNQ2twWEc0Z0lDQWdJQ0F1Wm1sc2RHVnlLRnh1SUNBZ0lDQWdJQ0FvWVdOMGFXOXVLU0E5UGx4dUlDQWdJQ0FnSUNBZ0lDaGhZM1JwYjI0dWJtRnRaU0JwYmlCallXNTJZWE5CWTNScGIyNXpYRzRnSUNBZ0lDQWdJQ0FnSUNBL0lHTmhiblpoYzBGamRHbHZibk5iWVdOMGFXOXVMbTVoYldVZ1lYTWdhMlY1YjJZZ2RIbHdaVzltSUdOaGJuWmhjMEZqZEdsdmJuTmRYRzRnSUNBZ0lDQWdJQ0FnSUNBNklIUnlkV1VwSUNZbVhHNGdJQ0FnSUNBZ0lDQWdZV04wYVc5dUxtdGxlVlJsYzNRZ0ppWmNiaUFnSUNBZ0lDQWdJQ0JoWTNScGIyNHVhMlY1VkdWemRDaGNiaUFnSUNBZ0lDQWdJQ0FnSUdWMlpXNTBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVuWlhSQmNIQlRkR0YwWlNncExGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NW5aWFJGYkdWdFpXNTBjMGx1WTJ4MVpHbHVaMFJsYkdWMFpXUW9LU3hjYmlBZ0lDQWdJQ0FnSUNBcExGeHVJQ0FnSUNBZ0tUdGNibHh1SUNBZ0lHbG1JQ2hrWVhSaExteGxibWQwYUNBOVBUMGdNQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQjdJSFpwWlhkTmIyUmxSVzVoWW14bFpDQjlJRDBnZEdocGN5NW5aWFJCY0hCVGRHRjBaU2dwTzF4dUlDQWdJR2xtSUNoMmFXVjNUVzlrWlVWdVlXSnNaV1FwSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hUMkpxWldOMExuWmhiSFZsY3loTlQwUkZVeWt1YVc1amJIVmtaWE1vWkdGMFlWc3dYUzV1WVcxbEtTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnWlhabGJuUXVjSEpsZG1WdWRFUmxabUYxYkhRb0tUdGNiaUFnSUNCMGFHbHpMblZ3WkdGMFpYSW9YRzRnSUNBZ0lDQmtZWFJoV3pCZExuQmxjbVp2Y20wb1hHNGdJQ0FnSUNBZ0lIUm9hWE11WjJWMFJXeGxiV1Z1ZEhOSmJtTnNkV1JwYm1kRVpXeGxkR1ZrS0Nrc1hHNGdJQ0FnSUNBZ0lIUm9hWE11WjJWMFFYQndVM1JoZEdVb0tTeGNiaUFnSUNBZ0lDQWdiblZzYkN4Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVoY0hBc1hHNGdJQ0FnSUNBcExGeHVJQ0FnSUNrN1hHNGdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJSDFjYmx4dUlDQmxlR1ZqZFhSbFFXTjBhVzl1S0dGamRHbHZiam9nUVdOMGFXOXVLU0I3WEc0Z0lDQWdkR2hwY3k1MWNHUmhkR1Z5S0Z4dUlDQWdJQ0FnWVdOMGFXOXVMbkJsY21admNtMG9YRzRnSUNBZ0lDQWdJSFJvYVhNdVoyVjBSV3hsYldWdWRITkpibU5zZFdScGJtZEVaV3hsZEdWa0tDa3NYRzRnSUNBZ0lDQWdJSFJvYVhNdVoyVjBRWEJ3VTNSaGRHVW9LU3hjYmlBZ0lDQWdJQ0FnYm5Wc2JDeGNiaUFnSUNBZ0lDQWdkR2hwY3k1aGNIQXNYRzRnSUNBZ0lDQXBMRnh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUhCaGNtRnRJR1JoZEdFZ1lXUmthWFJwYjI1aGJDQmtZWFJoSUhObGJuUWdkRzhnZEdobElGQmhibVZzUTI5dGNHOXVaVzUwWEc0Z0lDQXFMMXh1SUNCeVpXNWtaWEpCWTNScGIyNGdQU0FvYm1GdFpUb2dRV04wYVc5dVRtRnRaU3dnWkdGMFlUODZJRkJoYm1Wc1EyOXRjRzl1Wlc1MFVISnZjSE5iWENKa1lYUmhYQ0pkS1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnWTJGdWRtRnpRV04wYVc5dWN5QTlJSFJvYVhNdVlYQndMbkJ5YjNCekxsVkpUM0IwYVc5dWN5NWpZVzUyWVhOQlkzUnBiMjV6TzF4dVhHNGdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ2RHaHBjeTVoWTNScGIyNXpXMjVoYldWZElDWW1YRzRnSUNBZ0lDQmNJbEJoYm1Wc1EyOXRjRzl1Wlc1MFhDSWdhVzRnZEdocGN5NWhZM1JwYjI1elcyNWhiV1ZkSUNZbVhHNGdJQ0FnSUNBb2JtRnRaU0JwYmlCallXNTJZWE5CWTNScGIyNXpYRzRnSUNBZ0lDQWdJRDhnWTJGdWRtRnpRV04wYVc5dWMxdHVZVzFsSUdGeklHdGxlVzltSUhSNWNHVnZaaUJqWVc1MllYTkJZM1JwYjI1elhWeHVJQ0FnSUNBZ0lDQTZJSFJ5ZFdVcFhHNGdJQ0FnS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JoWTNScGIyNGdQU0IwYUdsekxtRmpkR2x2Ym5OYmJtRnRaVjA3WEc0Z0lDQWdJQ0JqYjI1emRDQlFZVzVsYkVOdmJYQnZibVZ1ZENBOUlHRmpkR2x2Ymk1UVlXNWxiRU52YlhCdmJtVnVkQ0U3WEc0Z0lDQWdJQ0JqYjI1emRDQjFjR1JoZEdWRVlYUmhJRDBnS0dadmNtMVRkR0YwWlQ4NklHRnVlU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5Wd1pHRjBaWElvWEc0Z0lDQWdJQ0FnSUNBZ1lXTjBhVzl1TG5CbGNtWnZjbTBvWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1kbGRFVnNaVzFsYm5SelNXNWpiSFZrYVc1blJHVnNaWFJsWkNncExGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NW5aWFJCY0hCVGRHRjBaU2dwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5YlZOMFlYUmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVoY0hBc1hHNGdJQ0FnSUNBZ0lDQWdLU3hjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUgwN1hHNWNiaUFnSUNBZ0lISmxkSFZ5YmlBb1hHNGdJQ0FnSUNBZ0lEeFFZVzVsYkVOdmJYQnZibVZ1ZEZ4dUlDQWdJQ0FnSUNBZ0lHVnNaVzFsYm5SelBYdDBhR2x6TG1kbGRFVnNaVzFsYm5SelNXNWpiSFZrYVc1blJHVnNaWFJsWkNncGZWeHVJQ0FnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxQWHQwYUdsekxtZGxkRUZ3Y0ZOMFlYUmxLQ2w5WEc0Z0lDQWdJQ0FnSUNBZ2RYQmtZWFJsUkdGMFlUMTdkWEJrWVhSbFJHRjBZWDFjYmlBZ0lDQWdJQ0FnSUNCaGNIQlFjbTl3Y3oxN2RHaHBjeTVoY0hBdWNISnZjSE45WEc0Z0lDQWdJQ0FnSUNBZ1pHRjBZVDE3WkdGMFlYMWNiaUFnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lIMDdYRzU5WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vYWN0aW9ucy9tYW5hZ2VyLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vYWN0aW9ucy9yZWdpc3Rlci50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2FjdGlvbnMvcmVnaXN0ZXIudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvbnMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJlZ2lzdGVyXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcmVnaXN0ZXIpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxubGV0IGFjdGlvbnMgPSBbXTtcXG5jb25zdCByZWdpc3RlciA9IChhY3Rpb24pID0+IHtcXG4gICAgYWN0aW9ucyA9IGFjdGlvbnMuY29uY2F0KGFjdGlvbik7XFxuICAgIHJldHVybiBhY3Rpb247XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dllXTjBhVzl1Y3k5eVpXZHBjM1JsY2k1MGN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenRCUVVWUExFbEJRVWtzVDBGQlR5eEhRVUZ6UWl4RlFVRkZMRU5CUVVNN1FVRkZjRU1zVFVGQlRTeFJRVUZSTEVkQlFVY3NRMEZCYlVJc1RVRkJVeXhGUVVGRkxFVkJRVVU3U1VGRGRFUXNUMEZCVHl4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZEYWtNc1QwRkJUeXhOUVVWT0xFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WVdOMGFXOXVjeTl5WldkcGMzUmxjaTUwY3o4eFpHWTRJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUVGamRHbHZiaUI5SUdaeWIyMGdYQ0l1TDNSNWNHVnpYQ0k3WEc1Y2JtVjRjRzl5ZENCc1pYUWdZV04wYVc5dWN6b2djbVZoWkc5dWJIa2dRV04wYVc5dVcxMGdQU0JiWFR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUhKbFoybHpkR1Z5SUQwZ1BGUWdaWGgwWlc1a2N5QkJZM1JwYjI0K0tHRmpkR2x2YmpvZ1ZDa2dQVDRnZTF4dUlDQmhZM1JwYjI1eklEMGdZV04wYVc5dWN5NWpiMjVqWVhRb1lXTjBhVzl1S1R0Y2JpQWdjbVYwZFhKdUlHRmpkR2x2YmlCaGN5QlVJQ1lnZTF4dUlDQWdJR3RsZVZSbGMzUS9PaUIxYm10dWIzZHVJR1Y0ZEdWdVpITWdWRnRjSW10bGVWUmxjM1JjSWwwZ1B5QnVaWFpsY2lBNklGUmJYQ0pyWlhsVVpYTjBYQ0pkTzF4dUlDQjlPMXh1ZlR0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2FjdGlvbnMvcmVnaXN0ZXIudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2FjdGlvbnMvc2hvcnRjdXRzLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2FjdGlvbnMvc2hvcnRjdXRzLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRTaG9ydGN1dEZyb21TaG9ydGN1dE5hbWVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRTaG9ydGN1dEZyb21TaG9ydGN1dE5hbWUpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pMThuICovIFxcXCIuLi8uLi9pMThuLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9rZXlzICovIFxcXCIuLi8uLi9rZXlzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vdXRpbHMgKi8gXFxcIi4uLy4uL3V0aWxzLnRzXFxcIik7XFxuXFxuXFxuXFxuY29uc3Qgc2hvcnRjdXRNYXAgPSB7XFxuICAgIGN1dDogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK1hcXFwiKV0sXFxuICAgIGNvcHk6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtDXFxcIildLFxcbiAgICBwYXN0ZTogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK1ZcXFwiKV0sXFxuICAgIGNvcHlTdHlsZXM6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtBbHQrQ1xcXCIpXSxcXG4gICAgcGFzdGVTdHlsZXM6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtBbHQrVlxcXCIpXSxcXG4gICAgc2VsZWN0QWxsOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrQVxcXCIpXSxcXG4gICAgZGVsZXRlU2VsZWN0ZWRFbGVtZW50czogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldFNob3J0Y3V0S2V5KShcXFwiRGVsXFxcIildLFxcbiAgICBkdXBsaWNhdGVTZWxlY3Rpb246IFtcXG4gICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK0RcXFwiKSxcXG4gICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldFNob3J0Y3V0S2V5KShgQWx0KyR7KDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy50KShcXFwiaGVscERpYWxvZy5kcmFnXFxcIil9YCksXFxuICAgIF0sXFxuICAgIHNlbmRCYWNrd2FyZDogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK1tcXFwiKV0sXFxuICAgIGJyaW5nRm9yd2FyZDogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK11cXFwiKV0sXFxuICAgIHNlbmRUb0JhY2s6IFtcXG4gICAgICAgIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaXNEYXJ3aW5cXG4gICAgICAgICAgICA/ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK0FsdCtbXFxcIilcXG4gICAgICAgICAgICA6ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK1NoaWZ0K1tcXFwiKSxcXG4gICAgXSxcXG4gICAgYnJpbmdUb0Zyb250OiBbXFxuICAgICAgICBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmlzRGFyd2luXFxuICAgICAgICAgICAgPyAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtBbHQrXVxcXCIpXFxuICAgICAgICAgICAgOiAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtTaGlmdCtdXFxcIiksXFxuICAgIF0sXFxuICAgIGNvcHlBc1BuZzogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldFNob3J0Y3V0S2V5KShcXFwiU2hpZnQrQWx0K0NcXFwiKV0sXFxuICAgIGNvcHlBc1N2ZzogW10sXFxuICAgIGdyb3VwOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrR1xcXCIpXSxcXG4gICAgdW5ncm91cDogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK1NoaWZ0K0dcXFwiKV0sXFxuICAgIGdyaWRNb2RlOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrJ1xcXCIpXSxcXG4gICAgemVuTW9kZTogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldFNob3J0Y3V0S2V5KShcXFwiQWx0K1pcXFwiKV0sXFxuICAgIHN0YXRzOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJBbHQrL1xcXCIpXSxcXG4gICAgYWRkVG9MaWJyYXJ5OiBbXSxcXG4gICAgZmxpcEhvcml6b250YWw6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXRTaG9ydGN1dEtleSkoXFxcIlNoaWZ0K0hcXFwiKV0sXFxuICAgIGZsaXBWZXJ0aWNhbDogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldFNob3J0Y3V0S2V5KShcXFwiU2hpZnQrVlxcXCIpXSxcXG4gICAgdmlld01vZGU6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkFsdCtSXFxcIildLFxcbiAgICBsaW5rOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrS1xcXCIpXSxcXG59O1xcbmNvbnN0IGdldFNob3J0Y3V0RnJvbVNob3J0Y3V0TmFtZSA9IChuYW1lKSA9PiB7XFxuICAgIGNvbnN0IHNob3J0Y3V0cyA9IHNob3J0Y3V0TWFwW25hbWVdO1xcbiAgICAvLyBpZiBtdWx0aXBsZSBzaG9ydGN1dHMgYXZhaWxpYWJsZSwgdGFrZSB0aGUgZmlyc3Qgb25lXFxuICAgIHJldHVybiBzaG9ydGN1dHMgJiYgc2hvcnRjdXRzLmxlbmd0aCA+IDAgPyBzaG9ydGN1dHNbMF0gOiBcXFwiXFxcIjtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVdOMGFXOXVjeTl6YUc5eWRHTjFkSE11ZEhNdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenRCUVVFMFFqdEJRVU5QTzBGQlEwODdRVUUwUWpGRExFMUJRVTBzVjBGQlZ5eEhRVUZ0UXp0SlFVTnNSQ3hIUVVGSExFVkJRVVVzUTBGQlF5eHpSRUZCWXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8wbEJRM0JETEVsQlFVa3NSVUZCUlN4RFFVRkRMSE5FUVVGakxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTTdTVUZEY2tNc1MwRkJTeXhGUVVGRkxFTkJRVU1zYzBSQlFXTXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJRenRKUVVOMFF5eFZRVUZWTEVWQlFVVXNRMEZCUXl4elJFRkJZeXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1NVRkRMME1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNjMFJCUVdNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMGxCUTJoRUxGTkJRVk1zUlVGQlJTeERRVUZETEhORVFVRmpMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03U1VGRE1VTXNjMEpCUVhOQ0xFVkJRVVVzUTBGQlF5eHpSRUZCWXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJReTlETEd0Q1FVRnJRaXhGUVVGRk8xRkJRMnhDTEhORVFVRmpMRU5CUVVNc1lVRkJZU3hEUVVGRE8xRkJRemRDTEhORVFVRmpMRU5CUVVNc1QwRkJUeXgzUTBGQlF5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExFVkJRVVVzUTBGQlF6dExRVU01UXp0SlFVTkVMRmxCUVZrc1JVRkJSU3hEUVVGRExITkVRVUZqTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1NVRkROME1zV1VGQldTeEZRVUZGTEVOQlFVTXNjMFJCUVdNc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dEpRVU0zUXl4VlFVRlZMRVZCUVVVN1VVRkRWaXd5UTBGQlVUdFpRVU5PTEVOQlFVTXNRMEZCUXl4elJFRkJZeXhEUVVGRExHbENRVUZwUWl4RFFVRkRPMWxCUTI1RExFTkJRVU1zUTBGQlF5eHpSRUZCWXl4RFFVRkRMRzFDUVVGdFFpeERRVUZETzB0QlEzaERPMGxCUTBRc1dVRkJXU3hGUVVGRk8xRkJRMW9zTWtOQlFWRTdXVUZEVGl4RFFVRkRMRU5CUVVNc2MwUkJRV01zUTBGQlF5eHBRa0ZCYVVJc1EwRkJRenRaUVVOdVF5eERRVUZETEVOQlFVTXNjMFJCUVdNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXp0TFFVTjRRenRKUVVORUxGTkJRVk1zUlVGQlJTeERRVUZETEhORVFVRmpMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03U1VGRE1VTXNVMEZCVXl4RlFVRkZMRVZCUVVVN1NVRkRZaXhMUVVGTExFVkJRVVVzUTBGQlF5eHpSRUZCWXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8wbEJRM1JETEU5QlFVOHNSVUZCUlN4RFFVRkRMSE5FUVVGakxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJRenRKUVVNNVF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4elJFRkJZeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzBsQlEzcERMRTlCUVU4c1JVRkJSU3hEUVVGRExITkVRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRiRU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNjMFJCUVdNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU5vUXl4WlFVRlpMRVZCUVVVc1JVRkJSVHRKUVVOb1FpeGpRVUZqTEVWQlFVVXNRMEZCUXl4elJFRkJZeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzBsQlF6TkRMRmxCUVZrc1JVRkJSU3hEUVVGRExITkVRVUZqTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1NVRkRla01zVVVGQlVTeEZRVUZGTEVOQlFVTXNjMFJCUVdNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU51UXl4SlFVRkpMRVZCUVVVc1EwRkJReXh6UkVGQll5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRPME5CUTNSRExFTkJRVU03UVVGRlN5eE5RVUZOTERKQ1FVRXlRaXhIUVVGSExFTkJRVU1zU1VGQmEwSXNSVUZCUlN4RlFVRkZPMGxCUTJoRkxFMUJRVTBzVTBGQlV5eEhRVUZITEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVOd1F5eDFSRUZCZFVRN1NVRkRka1FzVDBGQlR5eFRRVUZUTEVsQlFVa3NVMEZCVXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETzBGQlF5OUVMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5aFkzUnBiMjV6TDNOb2IzSjBZM1YwY3k1MGN6ODVaVEJoSWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lIUWdmU0JtY205dElGd2lMaTR2YVRFNGJsd2lPMXh1YVcxd2IzSjBJSHNnYVhORVlYSjNhVzRnZlNCbWNtOXRJRndpTGk0dmEyVjVjMXdpTzF4dWFXMXdiM0owSUhzZ1oyVjBVMmh2Y25SamRYUkxaWGtnZlNCbWNtOXRJRndpTGk0dmRYUnBiSE5jSWp0Y2JseHVaWGh3YjNKMElIUjVjR1VnVTJodmNuUmpkWFJPWVcxbElEMWNiaUFnZkNCY0ltTjFkRndpWEc0Z0lId2dYQ0pqYjNCNVhDSmNiaUFnZkNCY0luQmhjM1JsWENKY2JpQWdmQ0JjSW1OdmNIbFRkSGxzWlhOY0lseHVJQ0I4SUZ3aWNHRnpkR1ZUZEhsc1pYTmNJbHh1SUNCOElGd2ljMlZzWldOMFFXeHNYQ0pjYmlBZ2ZDQmNJbVJsYkdWMFpWTmxiR1ZqZEdWa1JXeGxiV1Z1ZEhOY0lseHVJQ0I4SUZ3aVpIVndiR2xqWVhSbFUyVnNaV04wYVc5dVhDSmNiaUFnZkNCY0luTmxibVJDWVdOcmQyRnlaRndpWEc0Z0lId2dYQ0ppY21sdVowWnZjbmRoY21SY0lseHVJQ0I4SUZ3aWMyVnVaRlJ2UW1GamExd2lYRzRnSUh3Z1hDSmljbWx1WjFSdlJuSnZiblJjSWx4dUlDQjhJRndpWTI5d2VVRnpVRzVuWENKY2JpQWdmQ0JjSW1OdmNIbEJjMU4yWjF3aVhHNGdJSHdnWENKbmNtOTFjRndpWEc0Z0lId2dYQ0oxYm1keWIzVndYQ0pjYmlBZ2ZDQmNJbWR5YVdSTmIyUmxYQ0pjYmlBZ2ZDQmNJbnBsYmsxdlpHVmNJbHh1SUNCOElGd2ljM1JoZEhOY0lseHVJQ0I4SUZ3aVlXUmtWRzlNYVdKeVlYSjVYQ0pjYmlBZ2ZDQmNJblpwWlhkTmIyUmxYQ0pjYmlBZ2ZDQmNJbVpzYVhCSWIzSnBlbTl1ZEdGc1hDSmNiaUFnZkNCY0ltWnNhWEJXWlhKMGFXTmhiRndpWEc0Z0lId2dYQ0pzYVc1clhDSTdYRzVjYm1OdmJuTjBJSE5vYjNKMFkzVjBUV0Z3T2lCU1pXTnZjbVE4VTJodmNuUmpkWFJPWVcxbExDQnpkSEpwYm1kYlhUNGdQU0I3WEc0Z0lHTjFkRG9nVzJkbGRGTm9iM0owWTNWMFMyVjVLRndpUTNSeWJFOXlRMjFrSzFoY0lpbGRMRnh1SUNCamIzQjVPaUJiWjJWMFUyaHZjblJqZFhSTFpYa29YQ0pEZEhKc1QzSkRiV1FyUTF3aUtWMHNYRzRnSUhCaGMzUmxPaUJiWjJWMFUyaHZjblJqZFhSTFpYa29YQ0pEZEhKc1QzSkRiV1FyVmx3aUtWMHNYRzRnSUdOdmNIbFRkSGxzWlhNNklGdG5aWFJUYUc5eWRHTjFkRXRsZVNoY0lrTjBjbXhQY2tOdFpDdEJiSFFyUTF3aUtWMHNYRzRnSUhCaGMzUmxVM1I1YkdWek9pQmJaMlYwVTJodmNuUmpkWFJMWlhrb1hDSkRkSEpzVDNKRGJXUXJRV3gwSzFaY0lpbGRMRnh1SUNCelpXeGxZM1JCYkd3NklGdG5aWFJUYUc5eWRHTjFkRXRsZVNoY0lrTjBjbXhQY2tOdFpDdEJYQ0lwWFN4Y2JpQWdaR1ZzWlhSbFUyVnNaV04wWldSRmJHVnRaVzUwY3pvZ1cyZGxkRk5vYjNKMFkzVjBTMlY1S0Z3aVJHVnNYQ0lwWFN4Y2JpQWdaSFZ3YkdsallYUmxVMlZzWldOMGFXOXVPaUJiWEc0Z0lDQWdaMlYwVTJodmNuUmpkWFJMWlhrb1hDSkRkSEpzVDNKRGJXUXJSRndpS1N4Y2JpQWdJQ0JuWlhSVGFHOXlkR04xZEV0bGVTaGdRV3gwS3lSN2RDaGNJbWhsYkhCRWFXRnNiMmN1WkhKaFoxd2lLWDFnS1N4Y2JpQWdYU3hjYmlBZ2MyVnVaRUpoWTJ0M1lYSmtPaUJiWjJWMFUyaHZjblJqZFhSTFpYa29YQ0pEZEhKc1QzSkRiV1FyVzF3aUtWMHNYRzRnSUdKeWFXNW5SbTl5ZDJGeVpEb2dXMmRsZEZOb2IzSjBZM1YwUzJWNUtGd2lRM1J5YkU5eVEyMWtLMTFjSWlsZExGeHVJQ0J6Wlc1a1ZHOUNZV05yT2lCYlhHNGdJQ0FnYVhORVlYSjNhVzVjYmlBZ0lDQWdJRDhnWjJWMFUyaHZjblJqZFhSTFpYa29YQ0pEZEhKc1QzSkRiV1FyUVd4MEsxdGNJaWxjYmlBZ0lDQWdJRG9nWjJWMFUyaHZjblJqZFhSTFpYa29YQ0pEZEhKc1QzSkRiV1FyVTJocFpuUXJXMXdpS1N4Y2JpQWdYU3hjYmlBZ1luSnBibWRVYjBaeWIyNTBPaUJiWEc0Z0lDQWdhWE5FWVhKM2FXNWNiaUFnSUNBZ0lEOGdaMlYwVTJodmNuUmpkWFJMWlhrb1hDSkRkSEpzVDNKRGJXUXJRV3gwSzExY0lpbGNiaUFnSUNBZ0lEb2daMlYwVTJodmNuUmpkWFJMWlhrb1hDSkRkSEpzVDNKRGJXUXJVMmhwWm5RclhWd2lLU3hjYmlBZ1hTeGNiaUFnWTI5d2VVRnpVRzVuT2lCYloyVjBVMmh2Y25SamRYUkxaWGtvWENKVGFHbG1kQ3RCYkhRclExd2lLVjBzWEc0Z0lHTnZjSGxCYzFOMlp6b2dXMTBzWEc0Z0lHZHliM1Z3T2lCYloyVjBVMmh2Y25SamRYUkxaWGtvWENKRGRISnNUM0pEYldRclIxd2lLVjBzWEc0Z0lIVnVaM0p2ZFhBNklGdG5aWFJUYUc5eWRHTjFkRXRsZVNoY0lrTjBjbXhQY2tOdFpDdFRhR2xtZEN0SFhDSXBYU3hjYmlBZ1ozSnBaRTF2WkdVNklGdG5aWFJUYUc5eWRHTjFkRXRsZVNoY0lrTjBjbXhQY2tOdFpDc25YQ0lwWFN4Y2JpQWdlbVZ1VFc5a1pUb2dXMmRsZEZOb2IzSjBZM1YwUzJWNUtGd2lRV3gwSzFwY0lpbGRMRnh1SUNCemRHRjBjem9nVzJkbGRGTm9iM0owWTNWMFMyVjVLRndpUVd4MEt5OWNJaWxkTEZ4dUlDQmhaR1JVYjB4cFluSmhjbms2SUZ0ZExGeHVJQ0JtYkdsd1NHOXlhWHB2Ym5SaGJEb2dXMmRsZEZOb2IzSjBZM1YwUzJWNUtGd2lVMmhwWm5RclNGd2lLVjBzWEc0Z0lHWnNhWEJXWlhKMGFXTmhiRG9nVzJkbGRGTm9iM0owWTNWMFMyVjVLRndpVTJocFpuUXJWbHdpS1Ywc1hHNGdJSFpwWlhkTmIyUmxPaUJiWjJWMFUyaHZjblJqZFhSTFpYa29YQ0pCYkhRclVsd2lLVjBzWEc0Z0lHeHBibXM2SUZ0blpYUlRhRzl5ZEdOMWRFdGxlU2hjSWtOMGNteFBja050WkN0TFhDSXBYU3hjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCblpYUlRhRzl5ZEdOMWRFWnliMjFUYUc5eWRHTjFkRTVoYldVZ1BTQW9ibUZ0WlRvZ1UyaHZjblJqZFhST1lXMWxLU0E5UGlCN1hHNGdJR052Ym5OMElITm9iM0owWTNWMGN5QTlJSE5vYjNKMFkzVjBUV0Z3VzI1aGJXVmRPMXh1SUNBdkx5QnBaaUJ0ZFd4MGFYQnNaU0J6YUc5eWRHTjFkSE1nWVhaaGFXeHBZV0pzWlN3Z2RHRnJaU0IwYUdVZ1ptbHljM1FnYjI1bFhHNGdJSEpsZEhWeWJpQnphRzl5ZEdOMWRITWdKaVlnYzJodmNuUmpkWFJ6TG14bGJtZDBhQ0ErSURBZ1B5QnphRzl5ZEdOMWRITmJNRjBnT2lCY0lsd2lPMXh1ZlR0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2FjdGlvbnMvc2hvcnRjdXRzLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9hbGlnbi50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9hbGlnbi50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWxpZ25FbGVtZW50c1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFsaWduRWxlbWVudHMpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vZWxlbWVudC9tdXRhdGVFbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L211dGF0ZUVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2VsZW1lbnQvYm91bmRzICovIFxcXCIuLi8uLi9lbGVtZW50L2JvdW5kcy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZ3JvdXBzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2dyb3VwcyAqLyBcXFwiLi4vLi4vZ3JvdXBzLnRzXFxcIik7XFxuXFxuXFxuXFxuY29uc3QgYWxpZ25FbGVtZW50cyA9IChzZWxlY3RlZEVsZW1lbnRzLCBhbGlnbm1lbnQpID0+IHtcXG4gICAgY29uc3QgZ3JvdXBzID0gKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldE1heGltdW1Hcm91cHMpKHNlbGVjdGVkRWxlbWVudHMpO1xcbiAgICBjb25zdCBzZWxlY3Rpb25Cb3VuZGluZ0JveCA9ICgwLF9lbGVtZW50X2JvdW5kc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmdldENvbW1vbkJvdW5kaW5nQm94KShzZWxlY3RlZEVsZW1lbnRzKTtcXG4gICAgcmV0dXJuIGdyb3Vwcy5mbGF0TWFwKChncm91cCkgPT4ge1xcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSBjYWxjdWxhdGVUcmFuc2xhdGlvbihncm91cCwgc2VsZWN0aW9uQm91bmRpbmdCb3gsIGFsaWdubWVudCk7XFxuICAgICAgICByZXR1cm4gZ3JvdXAubWFwKChlbGVtZW50KSA9PiAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubmV3RWxlbWVudFdpdGgpKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICB4OiBlbGVtZW50LnggKyB0cmFuc2xhdGlvbi54LFxcbiAgICAgICAgICAgIHk6IGVsZW1lbnQueSArIHRyYW5zbGF0aW9uLnksXFxuICAgICAgICB9KSk7XFxuICAgIH0pO1xcbn07XFxuY29uc3QgY2FsY3VsYXRlVHJhbnNsYXRpb24gPSAoZ3JvdXAsIHNlbGVjdGlvbkJvdW5kaW5nQm94LCB7IGF4aXMsIHBvc2l0aW9uIH0pID0+IHtcXG4gICAgY29uc3QgZ3JvdXBCb3VuZGluZ0JveCA9ICgwLF9lbGVtZW50X2JvdW5kc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmdldENvbW1vbkJvdW5kaW5nQm94KShncm91cCk7XFxuICAgIGNvbnN0IFttaW4sIG1heF0gPSBheGlzID09PSBcXFwieFxcXCIgPyBbXFxcIm1pblhcXFwiLCBcXFwibWF4WFxcXCJdIDogW1xcXCJtaW5ZXFxcIiwgXFxcIm1heFlcXFwiXTtcXG4gICAgY29uc3Qgbm9UcmFuc2xhdGlvbiA9IHsgeDogMCwgeTogMCB9O1xcbiAgICBpZiAocG9zaXRpb24gPT09IFxcXCJzdGFydFxcXCIpIHtcXG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG5vVHJhbnNsYXRpb24pLCB7IFtheGlzXTogc2VsZWN0aW9uQm91bmRpbmdCb3hbbWluXSAtIGdyb3VwQm91bmRpbmdCb3hbbWluXSB9KTtcXG4gICAgfVxcbiAgICBlbHNlIGlmIChwb3NpdGlvbiA9PT0gXFxcImVuZFxcXCIpIHtcXG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG5vVHJhbnNsYXRpb24pLCB7IFtheGlzXTogc2VsZWN0aW9uQm91bmRpbmdCb3hbbWF4XSAtIGdyb3VwQm91bmRpbmdCb3hbbWF4XSB9KTtcXG4gICAgfSAvLyBlbHNlIGlmIChwb3NpdGlvbiA9PT0gXFxcImNlbnRlclxcXCIpIHtcXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgbm9UcmFuc2xhdGlvbiksIHsgW2F4aXNdOiAoc2VsZWN0aW9uQm91bmRpbmdCb3hbbWluXSArIHNlbGVjdGlvbkJvdW5kaW5nQm94W21heF0pIC8gMiAtXFxuICAgICAgICAgICAgKGdyb3VwQm91bmRpbmdCb3hbbWluXSArIGdyb3VwQm91bmRpbmdCb3hbbWF4XSkgLyAyIH0pO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZV3hwWjI0dWRITXVhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3p0QlFVTjVSRHRCUVVOSk8wRkJRMnBDTzBGQlQzSkRMRTFCUVUwc1lVRkJZU3hIUVVGSExFTkJRek5DTEdkQ1FVRnhReXhGUVVOeVF5eFRRVUZ2UWl4RlFVTkRMRVZCUVVVN1NVRkRka0lzVFVGQlRTeE5RVUZOTEVkQlFUQkNMSGxFUVVGblFpeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU03U1VGRmVrVXNUVUZCVFN4dlFrRkJiMElzUjBGQlJ5eHhSVUZCYjBJc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRPMGxCUlhCRkxFOUJRVThzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRk8xRkJRemxDTEUxQlFVMHNWMEZCVnl4SFFVRkhMRzlDUVVGdlFpeERRVU4wUXl4TFFVRkxMRVZCUTB3c2IwSkJRVzlDTEVWQlEzQkNMRk5CUVZNc1EwRkRWaXhEUVVGRE8xRkJRMFlzVDBGQlR5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGRE0wSXNjMFZCUVdNc1EwRkJReXhQUVVGUExFVkJRVVU3V1VGRGRFSXNRMEZCUXl4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRExFZEJRVWNzVjBGQlZ5eERRVUZETEVOQlFVTTdXVUZETlVJc1EwRkJReXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NWMEZCVnl4RFFVRkRMRU5CUVVNN1UwRkROMElzUTBGQlF5eERRVU5JTEVOQlFVTTdTVUZEU2l4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOTUxFTkJRVU1zUTBGQlF6dEJRVVZHTEUxQlFVMHNiMEpCUVc5Q0xFZEJRVWNzUTBGRE0wSXNTMEZCTUVJc1JVRkRNVUlzYjBKQlFYbENMRVZCUTNwQ0xFVkJRVVVzU1VGQlNTeEZRVUZGTEZGQlFWRXNSVUZCWVN4RlFVTklMRVZCUVVVN1NVRkROVUlzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXh4UlVGQmIwSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVWeVJDeE5RVUZOTEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhIUVVOa0xFbEJRVWtzUzBGQlN5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVVZ5UkN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRE8wbEJRM0pETEVsQlFVa3NVVUZCVVN4TFFVRkxMRTlCUVU4c1JVRkJSVHRSUVVONFFpeDFRMEZEU3l4aFFVRmhMRXRCUTJoQ0xFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNiMEpCUVc5Q0xFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NaMEpCUVdkQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlEzcEVPMHRCUTBnN1UwRkJUU3hKUVVGSkxGRkJRVkVzUzBGQlN5eExRVUZMTEVWQlFVVTdVVUZETjBJc2RVTkJRMHNzWVVGQllTeExRVU5vUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxHOUNRVUZ2UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExHZENRVUZuUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVONlJEdExRVU5JTEVOQlFVTXNiME5CUVc5RE8wbEJRM1JETEhWRFFVTkxMR0ZCUVdFc1MwRkRhRUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZEU2l4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRzlDUVVGdlFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJRenRaUVVNelJDeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVTnlSRHRCUVVOS0xFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTloYkdsbmJpNTBjejgwTm1FMUlsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBJSDBnWm5KdmJTQmNJaTR2Wld4bGJXVnVkQzkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnYm1WM1JXeGxiV1Z1ZEZkcGRHZ2dmU0JtY205dElGd2lMaTlsYkdWdFpXNTBMMjExZEdGMFpVVnNaVzFsYm5SY0lqdGNibWx0Y0c5eWRDQjdJRUp2ZUN3Z1oyVjBRMjl0Ylc5dVFtOTFibVJwYm1kQ2IzZ2dmU0JtY205dElGd2lMaTlsYkdWdFpXNTBMMkp2ZFc1a2Mxd2lPMXh1YVcxd2IzSjBJSHNnWjJWMFRXRjRhVzExYlVkeWIzVndjeUI5SUdaeWIyMGdYQ0l1TDJkeWIzVndjMXdpTzF4dVhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFRnNhV2R1YldWdWRDQjdYRzRnSUhCdmMybDBhVzl1T2lCY0luTjBZWEowWENJZ2ZDQmNJbU5sYm5SbGNsd2lJSHdnWENKbGJtUmNJanRjYmlBZ1lYaHBjem9nWENKNFhDSWdmQ0JjSW5sY0lqdGNibjFjYmx4dVpYaHdiM0owSUdOdmJuTjBJR0ZzYVdkdVJXeGxiV1Z1ZEhNZ1BTQW9YRzRnSUhObGJHVmpkR1ZrUld4bGJXVnVkSE02SUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzEwc1hHNGdJR0ZzYVdkdWJXVnVkRG9nUVd4cFoyNXRaVzUwTEZ4dUtUb2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYU0E5UGlCN1hHNGdJR052Ym5OMElHZHliM1Z3Y3pvZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhWdGRJRDBnWjJWMFRXRjRhVzExYlVkeWIzVndjeWh6Wld4bFkzUmxaRVZzWlcxbGJuUnpLVHRjYmx4dUlDQmpiMjV6ZENCelpXeGxZM1JwYjI1Q2IzVnVaR2x1WjBKdmVDQTlJR2RsZEVOdmJXMXZia0p2ZFc1a2FXNW5RbTk0S0hObGJHVmpkR1ZrUld4bGJXVnVkSE1wTzF4dVhHNGdJSEpsZEhWeWJpQm5jbTkxY0hNdVpteGhkRTFoY0Nnb1ozSnZkWEFwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0IwY21GdWMyeGhkR2x2YmlBOUlHTmhiR04xYkdGMFpWUnlZVzV6YkdGMGFXOXVLRnh1SUNBZ0lDQWdaM0p2ZFhBc1hHNGdJQ0FnSUNCelpXeGxZM1JwYjI1Q2IzVnVaR2x1WjBKdmVDeGNiaUFnSUNBZ0lHRnNhV2R1YldWdWRDeGNiaUFnSUNBcE8xeHVJQ0FnSUhKbGRIVnliaUJuY205MWNDNXRZWEFvS0dWc1pXMWxiblFwSUQwK1hHNGdJQ0FnSUNCdVpYZEZiR1Z0Wlc1MFYybDBhQ2hsYkdWdFpXNTBMQ0I3WEc0Z0lDQWdJQ0FnSUhnNklHVnNaVzFsYm5RdWVDQXJJSFJ5WVc1emJHRjBhVzl1TG5nc1hHNGdJQ0FnSUNBZ0lIazZJR1ZzWlcxbGJuUXVlU0FySUhSeVlXNXpiR0YwYVc5dUxua3NYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQXBPMXh1SUNCOUtUdGNibjA3WEc1Y2JtTnZibk4wSUdOaGJHTjFiR0YwWlZSeVlXNXpiR0YwYVc5dUlEMGdLRnh1SUNCbmNtOTFjRG9nUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFN4Y2JpQWdjMlZzWldOMGFXOXVRbTkxYm1ScGJtZENiM2c2SUVKdmVDeGNiaUFnZXlCaGVHbHpMQ0J3YjNOcGRHbHZiaUI5T2lCQmJHbG5ibTFsYm5Rc1hHNHBPaUI3SUhnNklHNTFiV0psY2pzZ2VUb2diblZ0WW1WeUlIMGdQVDRnZTF4dUlDQmpiMjV6ZENCbmNtOTFjRUp2ZFc1a2FXNW5RbTk0SUQwZ1oyVjBRMjl0Ylc5dVFtOTFibVJwYm1kQ2IzZ29aM0p2ZFhBcE8xeHVYRzRnSUdOdmJuTjBJRnR0YVc0c0lHMWhlRjA2SUZ0Y0ltMXBibGhjSWlCOElGd2liV2x1V1Z3aUxDQmNJbTFoZUZoY0lpQjhJRndpYldGNFdWd2lYU0E5WEc0Z0lDQWdZWGhwY3lBOVBUMGdYQ0o0WENJZ1B5QmJYQ0p0YVc1WVhDSXNJRndpYldGNFdGd2lYU0E2SUZ0Y0ltMXBibGxjSWl3Z1hDSnRZWGhaWENKZE8xeHVYRzRnSUdOdmJuTjBJRzV2VkhKaGJuTnNZWFJwYjI0Z1BTQjdJSGc2SURBc0lIazZJREFnZlR0Y2JpQWdhV1lnS0hCdmMybDBhVzl1SUQwOVBTQmNJbk4wWVhKMFhDSXBJSHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ0xpNHVibTlVY21GdWMyeGhkR2x2Yml4Y2JpQWdJQ0FnSUZ0aGVHbHpYVG9nYzJWc1pXTjBhVzl1UW05MWJtUnBibWRDYjNoYmJXbHVYU0F0SUdkeWIzVndRbTkxYm1ScGJtZENiM2hiYldsdVhTeGNiaUFnSUNCOU8xeHVJQ0I5SUdWc2MyVWdhV1lnS0hCdmMybDBhVzl1SUQwOVBTQmNJbVZ1WkZ3aUtTQjdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUM0dUxtNXZWSEpoYm5Oc1lYUnBiMjRzWEc0Z0lDQWdJQ0JiWVhocGMxMDZJSE5sYkdWamRHbHZia0p2ZFc1a2FXNW5RbTk0VzIxaGVGMGdMU0JuY205MWNFSnZkVzVrYVc1blFtOTRXMjFoZUYwc1hHNGdJQ0FnZlR0Y2JpQWdmU0F2THlCbGJITmxJR2xtSUNod2IzTnBkR2x2YmlBOVBUMGdYQ0pqWlc1MFpYSmNJaWtnZTF4dUlDQnlaWFIxY200Z2UxeHVJQ0FnSUM0dUxtNXZWSEpoYm5Oc1lYUnBiMjRzWEc0Z0lDQWdXMkY0YVhOZE9seHVJQ0FnSUNBZ0tITmxiR1ZqZEdsdmJrSnZkVzVrYVc1blFtOTRXMjFwYmwwZ0t5QnpaV3hsWTNScGIyNUNiM1Z1WkdsdVowSnZlRnR0WVhoZEtTQXZJRElnTFZ4dUlDQWdJQ0FnS0dkeWIzVndRbTkxYm1ScGJtZENiM2hiYldsdVhTQXJJR2R5YjNWd1FtOTFibVJwYm1kQ2IzaGJiV0Y0WFNrZ0x5QXlMRnh1SUNCOU8xeHVmVHRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vYWxpZ24udHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2FuYWx5dGljcy50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vYW5hbHl0aWNzLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwidHJhY2tFdmVudFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHRyYWNrRXZlbnQpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxudmFyIF9hLCBfYjtcXG5jb25zdCB0cmFja0V2ZW50ID0gdHlwZW9mIHByb2Nlc3MgIT09IFxcXCJ1bmRlZmluZWRcXFwiICYmXFxuICAgICgoX2EgPSAoe1xcXCJSRUFDVF9BUFBfQkFDS0VORF9WMl9HRVRfVVJMXFxcIjpcXFwiaHR0cHM6Ly9qc29uLWRldi5leGNhbGlkcmF3LmNvbS9hcGkvdjIvXFxcIixcXFwiUkVBQ1RfQVBQX0JBQ0tFTkRfVjJfUE9TVF9VUkxcXFwiOlxcXCJodHRwczovL2pzb24tZGV2LmV4Y2FsaWRyYXcuY29tL2FwaS92Mi9wb3N0L1xcXCIsXFxcIlJFQUNUX0FQUF9MSUJSQVJZX1VSTFxcXCI6XFxcImh0dHBzOi8vbGlicmFyaWVzLmV4Y2FsaWRyYXcuY29tXFxcIixcXFwiUkVBQ1RfQVBQX0xJQlJBUllfQkFDS0VORFxcXCI6XFxcImh0dHBzOi8vdXMtY2VudHJhbDEtZXhjYWxpZHJhdy1yb29tLXBlcnNpc3RlbmNlLmNsb3VkZnVuY3Rpb25zLm5ldC9saWJyYXJpZXNcXFwiLFxcXCJSRUFDVF9BUFBfU09DS0VUX1NFUlZFUl9VUkxcXFwiOlxcXCJodHRwOi8vbG9jYWxob3N0OjMwMDJcXFwiLFxcXCJSRUFDVF9BUFBfRklSRUJBU0VfQ09ORklHXFxcIjpcXFwie1xcXFxcXFwiYXBpS2V5XFxcXFxcXCI6XFxcXFxcXCJBSXphU3lDTWt4QTYwWElXOEticU1ZTDdlZEM0cVQ1bDRxSFgyaDhcXFxcXFxcIixcXFxcXFxcImF1dGhEb21haW5cXFxcXFxcIjpcXFxcXFxcImV4Y2FsaWRyYXctb3NzLWRldi5maXJlYmFzZWFwcC5jb21cXFxcXFxcIixcXFxcXFxcInByb2plY3RJZFxcXFxcXFwiOlxcXFxcXFwiZXhjYWxpZHJhdy1vc3MtZGV2XFxcXFxcXCIsXFxcXFxcXCJzdG9yYWdlQnVja2V0XFxcXFxcXCI6XFxcXFxcXCJleGNhbGlkcmF3LW9zcy1kZXYuYXBwc3BvdC5jb21cXFxcXFxcIixcXFxcXFxcIm1lc3NhZ2luZ1NlbmRlcklkXFxcXFxcXCI6XFxcXFxcXCI2NjQ1NTk1MTI2NzdcXFxcXFxcIixcXFxcXFxcImFwcElkXFxcXFxcXCI6XFxcXFxcXCIxOjY2NDU1OTUxMjY3Nzp3ZWI6YTM4NTE4MWYyOTI4ZDMyOGE3YWE4Y1xcXFxcXFwifVxcXCJ9KSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLlJFQUNUX0FQUF9HT09HTEVfQU5BTFlUSUNTX0lEKSAmJlxcbiAgICB0eXBlb2Ygd2luZG93ICE9PSBcXFwidW5kZWZpbmVkXFxcIiAmJlxcbiAgICB3aW5kb3cuZ3RhZ1xcbiAgICA/IChjYXRlZ29yeSwgbmFtZSwgbGFiZWwsIHZhbHVlKSA9PiB7XFxuICAgICAgICB3aW5kb3cuZ3RhZyhcXFwiZXZlbnRcXFwiLCBuYW1lLCB7XFxuICAgICAgICAgICAgZXZlbnRfY2F0ZWdvcnk6IGNhdGVnb3J5LFxcbiAgICAgICAgICAgIGV2ZW50X2xhYmVsOiBsYWJlbCxcXG4gICAgICAgICAgICB2YWx1ZSxcXG4gICAgICAgIH0pO1xcbiAgICB9XFxuICAgIDogdHlwZW9mIHByb2Nlc3MgIT09IFxcXCJ1bmRlZmluZWRcXFwiICYmICgoX2IgPSAoe1xcXCJSRUFDVF9BUFBfQkFDS0VORF9WMl9HRVRfVVJMXFxcIjpcXFwiaHR0cHM6Ly9qc29uLWRldi5leGNhbGlkcmF3LmNvbS9hcGkvdjIvXFxcIixcXFwiUkVBQ1RfQVBQX0JBQ0tFTkRfVjJfUE9TVF9VUkxcXFwiOlxcXCJodHRwczovL2pzb24tZGV2LmV4Y2FsaWRyYXcuY29tL2FwaS92Mi9wb3N0L1xcXCIsXFxcIlJFQUNUX0FQUF9MSUJSQVJZX1VSTFxcXCI6XFxcImh0dHBzOi8vbGlicmFyaWVzLmV4Y2FsaWRyYXcuY29tXFxcIixcXFwiUkVBQ1RfQVBQX0xJQlJBUllfQkFDS0VORFxcXCI6XFxcImh0dHBzOi8vdXMtY2VudHJhbDEtZXhjYWxpZHJhdy1yb29tLXBlcnNpc3RlbmNlLmNsb3VkZnVuY3Rpb25zLm5ldC9saWJyYXJpZXNcXFwiLFxcXCJSRUFDVF9BUFBfU09DS0VUX1NFUlZFUl9VUkxcXFwiOlxcXCJodHRwOi8vbG9jYWxob3N0OjMwMDJcXFwiLFxcXCJSRUFDVF9BUFBfRklSRUJBU0VfQ09ORklHXFxcIjpcXFwie1xcXFxcXFwiYXBpS2V5XFxcXFxcXCI6XFxcXFxcXCJBSXphU3lDTWt4QTYwWElXOEticU1ZTDdlZEM0cVQ1bDRxSFgyaDhcXFxcXFxcIixcXFxcXFxcImF1dGhEb21haW5cXFxcXFxcIjpcXFxcXFxcImV4Y2FsaWRyYXctb3NzLWRldi5maXJlYmFzZWFwcC5jb21cXFxcXFxcIixcXFxcXFxcInByb2plY3RJZFxcXFxcXFwiOlxcXFxcXFwiZXhjYWxpZHJhdy1vc3MtZGV2XFxcXFxcXCIsXFxcXFxcXCJzdG9yYWdlQnVja2V0XFxcXFxcXCI6XFxcXFxcXCJleGNhbGlkcmF3LW9zcy1kZXYuYXBwc3BvdC5jb21cXFxcXFxcIixcXFxcXFxcIm1lc3NhZ2luZ1NlbmRlcklkXFxcXFxcXCI6XFxcXFxcXCI2NjQ1NTk1MTI2NzdcXFxcXFxcIixcXFxcXFxcImFwcElkXFxcXFxcXCI6XFxcXFxcXCIxOjY2NDU1OTUxMjY3Nzp3ZWI6YTM4NTE4MWYyOTI4ZDMyOGE3YWE4Y1xcXFxcXFwifVxcXCJ9KSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLkpFU1RfV09SS0VSX0lEKVxcbiAgICAgICAgPyAoY2F0ZWdvcnksIG5hbWUsIGxhYmVsLCB2YWx1ZSkgPT4geyB9XFxuICAgICAgICA6IChjYXRlZ29yeSwgbmFtZSwgbGFiZWwsIHZhbHVlKSA9PiB7XFxuICAgICAgICAgICAgLy8gVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgdG8gdHJhY2sgbG9jYWxseVxcbiAgICAgICAgICAgIC8vIGNvbnNvbGUuaW5mbyhcXFwiVHJhY2sgRXZlbnRcXFwiLCBjYXRlZ29yeSwgbmFtZSwgbGFiZWwsIHZhbHVlKTtcXG4gICAgICAgIH07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZVzVoYkhsMGFXTnpMblJ6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN08wRkJRVThzVFVGQlRTeFZRVUZWTEVkQlEzSkNMRTlCUVU4c1QwRkJUeXhMUVVGTExGZEJRVmM3UzBGRE9VSXNiWE5DUVVGWExEQkRRVUZGTERaQ1FVRTJRanRKUVVNeFF5eFBRVUZQTEUxQlFVMHNTMEZCU3l4WFFVRlhPMGxCUXpkQ0xFMUJRVTBzUTBGQlF5eEpRVUZKTzBsQlExUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJaMElzUlVGQlJTeEpRVUZaTEVWQlFVVXNTMEZCWXl4RlFVRkZMRXRCUVdNc1JVRkJSU3hGUVVGRk8xRkJRMnBGTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJUdFpRVU42UWl4alFVRmpMRVZCUVVVc1VVRkJVVHRaUVVONFFpeFhRVUZYTEVWQlFVVXNTMEZCU3p0WlFVTnNRaXhMUVVGTE8xTkJRMDRzUTBGQlF5eERRVUZETzBsQlEwd3NRMEZCUXp0SlFVTklMRU5CUVVNc1EwRkJReXhQUVVGUExFOUJRVThzUzBGQlN5eFhRVUZYTEV0QlFVa3NiWE5DUVVGWExEQkRRVUZGTEdOQlFXTTdVVUZETDBRc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlowSXNSVUZCUlN4SlFVRlpMRVZCUVVVc1MwRkJZeXhGUVVGRkxFdEJRV01zUlVGQlJTeEZRVUZGTEVkQlFVVXNRMEZCUXp0UlFVTjRSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZuUWl4RlFVRkZMRWxCUVZrc1JVRkJSU3hMUVVGakxFVkJRVVVzUzBGQll5eEZRVUZGTEVWQlFVVTdXVUZEYWtVc01rTkJRVEpETzFsQlF6TkRMRFpFUVVFMlJEdFJRVU12UkN4RFFVRkRMRU5CUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZVzVoYkhsMGFXTnpMblJ6UHpWbU1HTWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpWlhod2IzSjBJR052Ym5OMElIUnlZV05yUlhabGJuUWdQVnh1SUNCMGVYQmxiMllnY0hKdlkyVnpjeUFoUFQwZ1hDSjFibVJsWm1sdVpXUmNJaUFtSmx4dUlDQndjbTlqWlhOekxtVnVkajh1VWtWQlExUmZRVkJRWDBkUFQwZE1SVjlCVGtGTVdWUkpRMU5mU1VRZ0ppWmNiaUFnZEhsd1pXOW1JSGRwYm1SdmR5QWhQVDBnWENKMWJtUmxabWx1WldSY0lpQW1KbHh1SUNCM2FXNWtiM2N1WjNSaFoxeHVJQ0FnSUQ4Z0tHTmhkR1ZuYjNKNU9pQnpkSEpwYm1jc0lHNWhiV1U2SUhOMGNtbHVaeXdnYkdGaVpXdy9PaUJ6ZEhKcGJtY3NJSFpoYkhWbFB6b2diblZ0WW1WeUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUhkcGJtUnZkeTVuZEdGbktGd2laWFpsYm5SY0lpd2dibUZ0WlN3Z2UxeHVJQ0FnSUNBZ0lDQWdJR1YyWlc1MFgyTmhkR1ZuYjNKNU9pQmpZWFJsWjI5eWVTeGNiaUFnSUNBZ0lDQWdJQ0JsZG1WdWRGOXNZV0psYkRvZ2JHRmlaV3dzWEc0Z0lDQWdJQ0FnSUNBZ2RtRnNkV1VzWEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSURvZ2RIbHdaVzltSUhCeWIyTmxjM01nSVQwOUlGd2lkVzVrWldacGJtVmtYQ0lnSmlZZ2NISnZZMlZ6Y3k1bGJuWS9Ma3BGVTFSZlYwOVNTMFZTWDBsRVhHNGdJQ0FnUHlBb1kyRjBaV2R2Y25rNklITjBjbWx1Wnl3Z2JtRnRaVG9nYzNSeWFXNW5MQ0JzWVdKbGJEODZJSE4wY21sdVp5d2dkbUZzZFdVL09pQnVkVzFpWlhJcElEMCtJSHQ5WEc0Z0lDQWdPaUFvWTJGMFpXZHZjbms2SUhOMGNtbHVaeXdnYm1GdFpUb2djM1J5YVc1bkxDQnNZV0psYkQ4NklITjBjbWx1Wnl3Z2RtRnNkV1UvT2lCdWRXMWlaWElwSUQwK0lIdGNiaUFnSUNBZ0lDQWdMeThnVlc1amIyMXRaVzUwSUhSb1pTQnVaWGgwSUd4cGJtVWdkRzhnZEhKaFkyc2diRzlqWVd4c2VWeHVJQ0FnSUNBZ0lDQXZMeUJqYjI1emIyeGxMbWx1Wm04b1hDSlVjbUZqYXlCRmRtVnVkRndpTENCallYUmxaMjl5ZVN3Z2JtRnRaU3dnYkdGaVpXd3NJSFpoYkhWbEtUdGNiaUFnSUNBZ0lIMDdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9hbmFseXRpY3MudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2FwcFN0YXRlLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2FwcFN0YXRlLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXREZWZhdWx0QXBwU3RhdGVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXREZWZhdWx0QXBwU3RhdGUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImNsZWFyQXBwU3RhdGVGb3JMb2NhbFN0b3JhZ2VcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBjbGVhckFwcFN0YXRlRm9yTG9jYWxTdG9yYWdlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJjbGVhbkFwcFN0YXRlRm9yRXhwb3J0XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY2xlYW5BcHBTdGF0ZUZvckV4cG9ydCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiY2xlYXJBcHBTdGF0ZUZvckRhdGFiYXNlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY2xlYXJBcHBTdGF0ZUZvckRhdGFiYXNlKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBvcGVuLWNvbG9yICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvb3Blbi1jb2xvci9vcGVuLWNvbG9yLmpzb25cXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9pMThuICovIFxcXCIuLi8uLi9pMThuLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi91dGlscyAqLyBcXFwiLi4vLi4vdXRpbHMudHNcXFwiKTtcXG5cXG5cXG5cXG5cXG5jb25zdCBkZWZhdWx0RXhwb3J0U2NhbGUgPSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRVhQT1JUX1NDQUxFUy5pbmNsdWRlcyhkZXZpY2VQaXhlbFJhdGlvKVxcbiAgICA/IGRldmljZVBpeGVsUmF0aW9cXG4gICAgOiAxO1xcbmNvbnN0IGdldERlZmF1bHRBcHBTdGF0ZSA9ICgpID0+IHtcXG4gICAgcmV0dXJuIHtcXG4gICAgICAgIHRoZW1lOiBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uVEhFTUUuTElHSFQsXFxuICAgICAgICBjb2xsYWJvcmF0b3JzOiBuZXcgTWFwKCksXFxuICAgICAgICBjdXJyZW50Q2hhcnRUeXBlOiBcXFwiYmFyXFxcIixcXG4gICAgICAgIGN1cnJlbnRJdGVtQmFja2dyb3VuZENvbG9yOiBcXFwidHJhbnNwYXJlbnRcXFwiLFxcbiAgICAgICAgY3VycmVudEl0ZW1FbmRBcnJvd2hlYWQ6IFxcXCJhcnJvd1xcXCIsXFxuICAgICAgICBjdXJyZW50SXRlbUZpbGxTdHlsZTogXFxcImhhY2h1cmVcXFwiLFxcbiAgICAgICAgY3VycmVudEl0ZW1Gb250RmFtaWx5OiBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uREVGQVVMVF9GT05UX0ZBTUlMWSxcXG4gICAgICAgIGN1cnJlbnRJdGVtRm9udFNpemU6IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5ERUZBVUxUX0ZPTlRfU0laRSxcXG4gICAgICAgIGN1cnJlbnRJdGVtTGluZWFyU3Ryb2tlU2hhcnBuZXNzOiBcXFwicm91bmRcXFwiLFxcbiAgICAgICAgY3VycmVudEl0ZW1PcGFjaXR5OiAxMDAsXFxuICAgICAgICBjdXJyZW50SXRlbVJvdWdobmVzczogMSxcXG4gICAgICAgIGN1cnJlbnRJdGVtU3RhcnRBcnJvd2hlYWQ6IG51bGwsXFxuICAgICAgICBjdXJyZW50SXRlbVN0cm9rZUNvbG9yOiBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uYmxhY2ssXFxuICAgICAgICBjdXJyZW50SXRlbVN0cm9rZVNoYXJwbmVzczogXFxcInNoYXJwXFxcIixcXG4gICAgICAgIGN1cnJlbnRJdGVtU3Ryb2tlU3R5bGU6IFxcXCJzb2xpZFxcXCIsXFxuICAgICAgICBjdXJyZW50SXRlbVN0cm9rZVdpZHRoOiAxLFxcbiAgICAgICAgY3VycmVudEl0ZW1UZXh0QWxpZ246IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5ERUZBVUxUX1RFWFRfQUxJR04sXFxuICAgICAgICBjdXJzb3JCdXR0b246IFxcXCJ1cFxcXCIsXFxuICAgICAgICBkcmFnZ2luZ0VsZW1lbnQ6IG51bGwsXFxuICAgICAgICBlZGl0aW5nRWxlbWVudDogbnVsbCxcXG4gICAgICAgIGVkaXRpbmdHcm91cElkOiBudWxsLFxcbiAgICAgICAgZWRpdGluZ0xpbmVhckVsZW1lbnQ6IG51bGwsXFxuICAgICAgICBlbGVtZW50TG9ja2VkOiBmYWxzZSxcXG4gICAgICAgIGVsZW1lbnRUeXBlOiBcXFwic2VsZWN0aW9uXFxcIixcXG4gICAgICAgIHBlbk1vZGU6IGZhbHNlLFxcbiAgICAgICAgcGVuRGV0ZWN0ZWQ6IGZhbHNlLFxcbiAgICAgICAgZXJyb3JNZXNzYWdlOiBudWxsLFxcbiAgICAgICAgZXhwb3J0QmFja2dyb3VuZDogdHJ1ZSxcXG4gICAgICAgIGV4cG9ydFNjYWxlOiBkZWZhdWx0RXhwb3J0U2NhbGUsXFxuICAgICAgICBleHBvcnRFbWJlZFNjZW5lOiBmYWxzZSxcXG4gICAgICAgIGV4cG9ydFdpdGhEYXJrTW9kZTogZmFsc2UsXFxuICAgICAgICBmaWxlSGFuZGxlOiBudWxsLFxcbiAgICAgICAgZ3JpZFNpemU6IG51bGwsXFxuICAgICAgICBpc0JpbmRpbmdFbmFibGVkOiB0cnVlLFxcbiAgICAgICAgaXNMaWJyYXJ5T3BlbjogZmFsc2UsXFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxcbiAgICAgICAgaXNSZXNpemluZzogZmFsc2UsXFxuICAgICAgICBpc1JvdGF0aW5nOiBmYWxzZSxcXG4gICAgICAgIGxhc3RQb2ludGVyRG93bldpdGg6IFxcXCJtb3VzZVxcXCIsXFxuICAgICAgICBtdWx0aUVsZW1lbnQ6IG51bGwsXFxuICAgICAgICBuYW1lOiBgJHsoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJsYWJlbHMudW50aXRsZWRcXFwiKX0tJHsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5nZXREYXRlVGltZSkoKX1gLFxcbiAgICAgICAgb3Blbk1lbnU6IG51bGwsXFxuICAgICAgICBvcGVuUG9wdXA6IG51bGwsXFxuICAgICAgICBwYXN0ZURpYWxvZzogeyBzaG93bjogZmFsc2UsIGRhdGE6IG51bGwgfSxcXG4gICAgICAgIHByZXZpb3VzU2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcXG4gICAgICAgIHJlc2l6aW5nRWxlbWVudDogbnVsbCxcXG4gICAgICAgIHNjcm9sbGVkT3V0c2lkZTogZmFsc2UsXFxuICAgICAgICBzY3JvbGxYOiAwLFxcbiAgICAgICAgc2Nyb2xsWTogMCxcXG4gICAgICAgIHNlbGVjdGVkRWxlbWVudElkczoge30sXFxuICAgICAgICBzZWxlY3RlZEdyb3VwSWRzOiB7fSxcXG4gICAgICAgIHNlbGVjdGlvbkVsZW1lbnQ6IG51bGwsXFxuICAgICAgICBzaG91bGRDYWNoZUlnbm9yZVpvb206IGZhbHNlLFxcbiAgICAgICAgc2hvd0hlbHBEaWFsb2c6IGZhbHNlLFxcbiAgICAgICAgc2hvd1N0YXRzOiBmYWxzZSxcXG4gICAgICAgIHN0YXJ0Qm91bmRFbGVtZW50OiBudWxsLFxcbiAgICAgICAgc3VnZ2VzdGVkQmluZGluZ3M6IFtdLFxcbiAgICAgICAgdG9hc3RNZXNzYWdlOiBudWxsLFxcbiAgICAgICAgdmlld0JhY2tncm91bmRDb2xvcjogb3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLndoaXRlLFxcbiAgICAgICAgemVuTW9kZUVuYWJsZWQ6IGZhbHNlLFxcbiAgICAgICAgem9vbToge1xcbiAgICAgICAgICAgIHZhbHVlOiAxLFxcbiAgICAgICAgfSxcXG4gICAgICAgIHZpZXdNb2RlRW5hYmxlZDogZmFsc2UsXFxuICAgICAgICBwZW5kaW5nSW1hZ2VFbGVtZW50OiBudWxsLFxcbiAgICAgICAgc2hvd0h5cGVybGlua1BvcHVwOiBmYWxzZSxcXG4gICAgfTtcXG59O1xcbi8qKlxcbiAqIENvbmZpZyBjb250YWluaW5nIGFsbCBBcHBTdGF0ZSBrZXlzLiBVc2VkIHRvIGRldGVybWluZSB3aGV0aGVyIGdpdmVuIHN0YXRlXFxuICogIHByb3Agc2hvdWxkIGJlIHN0cmlwcGVkIHdoZW4gZXhwb3J0aW5nIHRvIGdpdmVuIHN0b3JhZ2UgdHlwZS5cXG4gKi9cXG5jb25zdCBBUFBfU1RBVEVfU1RPUkFHRV9DT05GID0gKChjb25maWcpID0+IGNvbmZpZykoe1xcbiAgICB0aGVtZTogeyBicm93c2VyOiB0cnVlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIGNvbGxhYm9yYXRvcnM6IHsgYnJvd3NlcjogZmFsc2UsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgY3VycmVudENoYXJ0VHlwZTogeyBicm93c2VyOiB0cnVlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIGN1cnJlbnRJdGVtQmFja2dyb3VuZENvbG9yOiB7IGJyb3dzZXI6IHRydWUsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgY3VycmVudEl0ZW1FbmRBcnJvd2hlYWQ6IHsgYnJvd3NlcjogdHJ1ZSwgZXhwb3J0OiBmYWxzZSwgc2VydmVyOiBmYWxzZSB9LFxcbiAgICBjdXJyZW50SXRlbUZpbGxTdHlsZTogeyBicm93c2VyOiB0cnVlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIGN1cnJlbnRJdGVtRm9udEZhbWlseTogeyBicm93c2VyOiB0cnVlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIGN1cnJlbnRJdGVtRm9udFNpemU6IHsgYnJvd3NlcjogdHJ1ZSwgZXhwb3J0OiBmYWxzZSwgc2VydmVyOiBmYWxzZSB9LFxcbiAgICBjdXJyZW50SXRlbUxpbmVhclN0cm9rZVNoYXJwbmVzczoge1xcbiAgICAgICAgYnJvd3NlcjogdHJ1ZSxcXG4gICAgICAgIGV4cG9ydDogZmFsc2UsXFxuICAgICAgICBzZXJ2ZXI6IGZhbHNlLFxcbiAgICB9LFxcbiAgICBjdXJyZW50SXRlbU9wYWNpdHk6IHsgYnJvd3NlcjogdHJ1ZSwgZXhwb3J0OiBmYWxzZSwgc2VydmVyOiBmYWxzZSB9LFxcbiAgICBjdXJyZW50SXRlbVJvdWdobmVzczogeyBicm93c2VyOiB0cnVlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIGN1cnJlbnRJdGVtU3RhcnRBcnJvd2hlYWQ6IHsgYnJvd3NlcjogdHJ1ZSwgZXhwb3J0OiBmYWxzZSwgc2VydmVyOiBmYWxzZSB9LFxcbiAgICBjdXJyZW50SXRlbVN0cm9rZUNvbG9yOiB7IGJyb3dzZXI6IHRydWUsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgY3VycmVudEl0ZW1TdHJva2VTaGFycG5lc3M6IHsgYnJvd3NlcjogdHJ1ZSwgZXhwb3J0OiBmYWxzZSwgc2VydmVyOiBmYWxzZSB9LFxcbiAgICBjdXJyZW50SXRlbVN0cm9rZVN0eWxlOiB7IGJyb3dzZXI6IHRydWUsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgY3VycmVudEl0ZW1TdHJva2VXaWR0aDogeyBicm93c2VyOiB0cnVlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIGN1cnJlbnRJdGVtVGV4dEFsaWduOiB7IGJyb3dzZXI6IHRydWUsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgY3Vyc29yQnV0dG9uOiB7IGJyb3dzZXI6IHRydWUsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgZHJhZ2dpbmdFbGVtZW50OiB7IGJyb3dzZXI6IGZhbHNlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIGVkaXRpbmdFbGVtZW50OiB7IGJyb3dzZXI6IGZhbHNlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIGVkaXRpbmdHcm91cElkOiB7IGJyb3dzZXI6IHRydWUsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgZWRpdGluZ0xpbmVhckVsZW1lbnQ6IHsgYnJvd3NlcjogZmFsc2UsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgZWxlbWVudExvY2tlZDogeyBicm93c2VyOiB0cnVlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIGVsZW1lbnRUeXBlOiB7IGJyb3dzZXI6IHRydWUsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgcGVuTW9kZTogeyBicm93c2VyOiBmYWxzZSwgZXhwb3J0OiBmYWxzZSwgc2VydmVyOiBmYWxzZSB9LFxcbiAgICBwZW5EZXRlY3RlZDogeyBicm93c2VyOiBmYWxzZSwgZXhwb3J0OiBmYWxzZSwgc2VydmVyOiBmYWxzZSB9LFxcbiAgICBlcnJvck1lc3NhZ2U6IHsgYnJvd3NlcjogZmFsc2UsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgZXhwb3J0QmFja2dyb3VuZDogeyBicm93c2VyOiB0cnVlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIGV4cG9ydEVtYmVkU2NlbmU6IHsgYnJvd3NlcjogdHJ1ZSwgZXhwb3J0OiBmYWxzZSwgc2VydmVyOiBmYWxzZSB9LFxcbiAgICBleHBvcnRTY2FsZTogeyBicm93c2VyOiB0cnVlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIGV4cG9ydFdpdGhEYXJrTW9kZTogeyBicm93c2VyOiB0cnVlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIGZpbGVIYW5kbGU6IHsgYnJvd3NlcjogZmFsc2UsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgZ3JpZFNpemU6IHsgYnJvd3NlcjogdHJ1ZSwgZXhwb3J0OiB0cnVlLCBzZXJ2ZXI6IHRydWUgfSxcXG4gICAgaGVpZ2h0OiB7IGJyb3dzZXI6IGZhbHNlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIGlzQmluZGluZ0VuYWJsZWQ6IHsgYnJvd3NlcjogZmFsc2UsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgaXNMaWJyYXJ5T3BlbjogeyBicm93c2VyOiBmYWxzZSwgZXhwb3J0OiBmYWxzZSwgc2VydmVyOiBmYWxzZSB9LFxcbiAgICBpc0xvYWRpbmc6IHsgYnJvd3NlcjogZmFsc2UsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgaXNSZXNpemluZzogeyBicm93c2VyOiBmYWxzZSwgZXhwb3J0OiBmYWxzZSwgc2VydmVyOiBmYWxzZSB9LFxcbiAgICBpc1JvdGF0aW5nOiB7IGJyb3dzZXI6IGZhbHNlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIGxhc3RQb2ludGVyRG93bldpdGg6IHsgYnJvd3NlcjogdHJ1ZSwgZXhwb3J0OiBmYWxzZSwgc2VydmVyOiBmYWxzZSB9LFxcbiAgICBtdWx0aUVsZW1lbnQ6IHsgYnJvd3NlcjogZmFsc2UsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgbmFtZTogeyBicm93c2VyOiB0cnVlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIG9mZnNldExlZnQ6IHsgYnJvd3NlcjogZmFsc2UsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgb2Zmc2V0VG9wOiB7IGJyb3dzZXI6IGZhbHNlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIG9wZW5NZW51OiB7IGJyb3dzZXI6IHRydWUsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgb3BlblBvcHVwOiB7IGJyb3dzZXI6IGZhbHNlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIHBhc3RlRGlhbG9nOiB7IGJyb3dzZXI6IGZhbHNlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIHByZXZpb3VzU2VsZWN0ZWRFbGVtZW50SWRzOiB7IGJyb3dzZXI6IHRydWUsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgcmVzaXppbmdFbGVtZW50OiB7IGJyb3dzZXI6IGZhbHNlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIHNjcm9sbGVkT3V0c2lkZTogeyBicm93c2VyOiB0cnVlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIHNjcm9sbFg6IHsgYnJvd3NlcjogdHJ1ZSwgZXhwb3J0OiBmYWxzZSwgc2VydmVyOiBmYWxzZSB9LFxcbiAgICBzY3JvbGxZOiB7IGJyb3dzZXI6IHRydWUsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgc2VsZWN0ZWRFbGVtZW50SWRzOiB7IGJyb3dzZXI6IHRydWUsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgc2VsZWN0ZWRHcm91cElkczogeyBicm93c2VyOiB0cnVlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIHNlbGVjdGlvbkVsZW1lbnQ6IHsgYnJvd3NlcjogZmFsc2UsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgc2hvdWxkQ2FjaGVJZ25vcmVab29tOiB7IGJyb3dzZXI6IHRydWUsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgc2hvd0hlbHBEaWFsb2c6IHsgYnJvd3NlcjogZmFsc2UsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgc2hvd1N0YXRzOiB7IGJyb3dzZXI6IHRydWUsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgc3RhcnRCb3VuZEVsZW1lbnQ6IHsgYnJvd3NlcjogZmFsc2UsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgc3VnZ2VzdGVkQmluZGluZ3M6IHsgYnJvd3NlcjogZmFsc2UsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgdG9hc3RNZXNzYWdlOiB7IGJyb3dzZXI6IGZhbHNlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IHsgYnJvd3NlcjogdHJ1ZSwgZXhwb3J0OiB0cnVlLCBzZXJ2ZXI6IHRydWUgfSxcXG4gICAgd2lkdGg6IHsgYnJvd3NlcjogZmFsc2UsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgemVuTW9kZUVuYWJsZWQ6IHsgYnJvd3NlcjogdHJ1ZSwgZXhwb3J0OiBmYWxzZSwgc2VydmVyOiBmYWxzZSB9LFxcbiAgICB6b29tOiB7IGJyb3dzZXI6IHRydWUsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgdmlld01vZGVFbmFibGVkOiB7IGJyb3dzZXI6IGZhbHNlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxuICAgIHBlbmRpbmdJbWFnZUVsZW1lbnQ6IHsgYnJvd3NlcjogZmFsc2UsIGV4cG9ydDogZmFsc2UsIHNlcnZlcjogZmFsc2UgfSxcXG4gICAgc2hvd0h5cGVybGlua1BvcHVwOiB7IGJyb3dzZXI6IGZhbHNlLCBleHBvcnQ6IGZhbHNlLCBzZXJ2ZXI6IGZhbHNlIH0sXFxufSk7XFxuY29uc3QgX2NsZWFyQXBwU3RhdGVGb3JTdG9yYWdlID0gKGFwcFN0YXRlLCBleHBvcnRUeXBlKSA9PiB7XFxuICAgIGNvbnN0IHN0YXRlRm9yRXhwb3J0ID0ge307XFxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGFwcFN0YXRlKSkge1xcbiAgICAgICAgY29uc3QgcHJvcENvbmZpZyA9IEFQUF9TVEFURV9TVE9SQUdFX0NPTkZba2V5XTtcXG4gICAgICAgIGlmIChwcm9wQ29uZmlnID09PSBudWxsIHx8IHByb3BDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHByb3BDb25maWdbZXhwb3J0VHlwZV0pIHtcXG4gICAgICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSBhcHBTdGF0ZVtrZXldO1xcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvMzE0NDVcXG4gICAgICAgICAgICBzdGF0ZUZvckV4cG9ydFtrZXldID0gbmV4dFZhbHVlO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiBzdGF0ZUZvckV4cG9ydDtcXG59O1xcbmNvbnN0IGNsZWFyQXBwU3RhdGVGb3JMb2NhbFN0b3JhZ2UgPSAoYXBwU3RhdGUpID0+IHtcXG4gICAgcmV0dXJuIF9jbGVhckFwcFN0YXRlRm9yU3RvcmFnZShhcHBTdGF0ZSwgXFxcImJyb3dzZXJcXFwiKTtcXG59O1xcbmNvbnN0IGNsZWFuQXBwU3RhdGVGb3JFeHBvcnQgPSAoYXBwU3RhdGUpID0+IHtcXG4gICAgcmV0dXJuIF9jbGVhckFwcFN0YXRlRm9yU3RvcmFnZShhcHBTdGF0ZSwgXFxcImV4cG9ydFxcXCIpO1xcbn07XFxuY29uc3QgY2xlYXJBcHBTdGF0ZUZvckRhdGFiYXNlID0gKGFwcFN0YXRlKSA9PiB7XFxuICAgIHJldHVybiBfY2xlYXJBcHBTdGF0ZUZvclN0b3JhZ2UoYXBwU3RhdGUsIFxcXCJzZXJ2ZXJcXFwiKTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WVhCd1UzUmhkR1V1ZEhNdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3pzN1FVRkJORUk3UVVGUFVEdEJRVU5OTzBGQlJWYzdRVUZGZEVNc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl3NFJFRkJjMElzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJRenRKUVVOcVJTeERRVUZETEVOQlFVTXNaMEpCUVdkQ08wbEJRMnhDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkZReXhOUVVGTkxHdENRVUZyUWl4SFFVRkhMRWRCUjJoRExFVkJRVVU3U1VGRFJpeFBRVUZQTzFGQlEwd3NTMEZCU3l4RlFVRkZMRzFFUVVGWE8xRkJRMnhDTEdGQlFXRXNSVUZCUlN4SlFVRkpMRWRCUVVjc1JVRkJSVHRSUVVONFFpeG5Ra0ZCWjBJc1JVRkJSU3hMUVVGTE8xRkJRM1pDTERCQ1FVRXdRaXhGUVVGRkxHRkJRV0U3VVVGRGVrTXNkVUpCUVhWQ0xFVkJRVVVzVDBGQlR6dFJRVU5vUXl4dlFrRkJiMElzUlVGQlJTeFRRVUZUTzFGQlF5OUNMSEZDUVVGeFFpeEZRVUZGTERKRVFVRnRRanRSUVVNeFF5eHRRa0ZCYlVJc1JVRkJSU3g1UkVGQmFVSTdVVUZEZEVNc1owTkJRV2RETEVWQlFVVXNUMEZCVHp0UlFVTjZReXhyUWtGQmEwSXNSVUZCUlN4SFFVRkhPMUZCUTNaQ0xHOUNRVUZ2UWl4RlFVRkZMRU5CUVVNN1VVRkRka0lzZVVKQlFYbENMRVZCUVVVc1NVRkJTVHRSUVVNdlFpeHpRa0ZCYzBJc1JVRkJSU3cyUTBGQlVUdFJRVU5vUXl3d1FrRkJNRUlzUlVGQlJTeFBRVUZQTzFGQlEyNURMSE5DUVVGelFpeEZRVUZGTEU5QlFVODdVVUZETDBJc2MwSkJRWE5DTEVWQlFVVXNRMEZCUXp0UlFVTjZRaXh2UWtGQmIwSXNSVUZCUlN3d1JFRkJhMEk3VVVGRGVFTXNXVUZCV1N4RlFVRkZMRWxCUVVrN1VVRkRiRUlzWlVGQlpTeEZRVUZGTEVsQlFVazdVVUZEY2tJc1kwRkJZeXhGUVVGRkxFbEJRVWs3VVVGRGNFSXNZMEZCWXl4RlFVRkZMRWxCUVVrN1VVRkRjRUlzYjBKQlFXOUNMRVZCUVVVc1NVRkJTVHRSUVVNeFFpeGhRVUZoTEVWQlFVVXNTMEZCU3p0UlFVTndRaXhYUVVGWExFVkJRVVVzVjBGQlZ6dFJRVU40UWl4UFFVRlBMRVZCUVVVc1MwRkJTenRSUVVOa0xGZEJRVmNzUlVGQlJTeExRVUZMTzFGQlEyeENMRmxCUVZrc1JVRkJSU3hKUVVGSk8xRkJRMnhDTEdkQ1FVRm5RaXhGUVVGRkxFbEJRVWs3VVVGRGRFSXNWMEZCVnl4RlFVRkZMR3RDUVVGclFqdFJRVU12UWl4blFrRkJaMElzUlVGQlJTeExRVUZMTzFGQlEzWkNMR3RDUVVGclFpeEZRVUZGTEV0QlFVczdVVUZEZWtJc1ZVRkJWU3hGUVVGRkxFbEJRVWs3VVVGRGFFSXNVVUZCVVN4RlFVRkZMRWxCUVVrN1VVRkRaQ3huUWtGQlowSXNSVUZCUlN4SlFVRkpPMUZCUTNSQ0xHRkJRV0VzUlVGQlJTeExRVUZMTzFGQlEzQkNMRk5CUVZNc1JVRkJSU3hMUVVGTE8xRkJRMmhDTEZWQlFWVXNSVUZCUlN4TFFVRkxPMUZCUTJwQ0xGVkJRVlVzUlVGQlJTeExRVUZMTzFGQlEycENMRzFDUVVGdFFpeEZRVUZGTEU5QlFVODdVVUZETlVJc1dVRkJXU3hGUVVGRkxFbEJRVWs3VVVGRGJFSXNTVUZCU1N4RlFVRkZMRWRCUVVjc2QwTkJRVU1zUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhKUVVGSkxHMUVRVUZYTEVWQlFVVXNSVUZCUlR0UlFVTm9SQ3hSUVVGUkxFVkJRVVVzU1VGQlNUdFJRVU5rTEZOQlFWTXNSVUZCUlN4SlFVRkpPMUZCUTJZc1YwRkJWeXhGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRk8xRkJRM3BETERCQ1FVRXdRaXhGUVVGRkxFVkJRVVU3VVVGRE9VSXNaVUZCWlN4RlFVRkZMRWxCUVVrN1VVRkRja0lzWlVGQlpTeEZRVUZGTEV0QlFVczdVVUZEZEVJc1QwRkJUeXhGUVVGRkxFTkJRVU03VVVGRFZpeFBRVUZQTEVWQlFVVXNRMEZCUXp0UlFVTldMR3RDUVVGclFpeEZRVUZGTEVWQlFVVTdVVUZEZEVJc1owSkJRV2RDTEVWQlFVVXNSVUZCUlR0UlFVTndRaXhuUWtGQlowSXNSVUZCUlN4SlFVRkpPMUZCUTNSQ0xIRkNRVUZ4UWl4RlFVRkZMRXRCUVVzN1VVRkROVUlzWTBGQll5eEZRVUZGTEV0QlFVczdVVUZEY2tJc1UwRkJVeXhGUVVGRkxFdEJRVXM3VVVGRGFFSXNhVUpCUVdsQ0xFVkJRVVVzU1VGQlNUdFJRVU4yUWl4cFFrRkJhVUlzUlVGQlJTeEZRVUZGTzFGQlEzSkNMRmxCUVZrc1JVRkJSU3hKUVVGSk8xRkJRMnhDTEcxQ1FVRnRRaXhGUVVGRkxEWkRRVUZSTzFGQlF6ZENMR05CUVdNc1JVRkJSU3hMUVVGTE8xRkJRM0pDTEVsQlFVa3NSVUZCUlR0WlFVTktMRXRCUVVzc1JVRkJSU3hEUVVGM1FqdFRRVU5vUXp0UlFVTkVMR1ZCUVdVc1JVRkJSU3hMUVVGTE8xRkJRM1JDTEcxQ1FVRnRRaXhGUVVGRkxFbEJRVWs3VVVGRGVrSXNhMEpCUVd0Q0xFVkJRVVVzUzBGQlN6dExRVU14UWl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRE8wRkJSVVk3T3p0SFFVZEhPMEZCUTBnc1RVRkJUU3h6UWtGQmMwSXNSMEZCUnl4RFFVRkRMRU5CVlRsQ0xFMUJRVzFGTEVWQlFVVXNSVUZCUlN4RFFVTjJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVU5TTEV0QlFVc3NSVUZCUlN4RlFVRkZMRTlCUVU4c1JVRkJSU3hKUVVGSkxFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1MwRkJTeXhGUVVGRk8wbEJRM1JFTEdGQlFXRXNSVUZCUlN4RlFVRkZMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1MwRkJTeXhGUVVGRk8wbEJReTlFTEdkQ1FVRm5RaXhGUVVGRkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVsQlFVa3NSVUZCUlN4TlFVRk5MRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVTdTVUZEYWtVc01FSkJRVEJDTEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSVHRKUVVNelJTeDFRa0ZCZFVJc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeEpRVUZKTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTzBsQlEzaEZMRzlDUVVGdlFpeEZRVUZGTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVN1NVRkRja1VzY1VKQlFYRkNMRVZCUVVVc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJUdEpRVU4wUlN4dFFrRkJiVUlzUlVGQlJTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZPMGxCUTNCRkxHZERRVUZuUXl4RlFVRkZPMUZCUTJoRExFOUJRVThzUlVGQlJTeEpRVUZKTzFGQlEySXNUVUZCVFN4RlFVRkZMRXRCUVVzN1VVRkRZaXhOUVVGTkxFVkJRVVVzUzBGQlN6dExRVU5rTzBsQlEwUXNhMEpCUVd0Q0xFVkJRVVVzUlVGQlJTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlR0SlFVTnVSU3h2UWtGQmIwSXNSVUZCUlN4RlFVRkZMRTlCUVU4c1JVRkJSU3hKUVVGSkxFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1MwRkJTeXhGUVVGRk8wbEJRM0pGTEhsQ1FVRjVRaXhGUVVGRkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVsQlFVa3NSVUZCUlN4TlFVRk5MRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVTdTVUZETVVVc2MwSkJRWE5DTEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSVHRKUVVOMlJTd3dRa0ZCTUVJc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeEpRVUZKTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTzBsQlF6TkZMSE5DUVVGelFpeEZRVUZGTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVN1NVRkRka1VzYzBKQlFYTkNMRVZCUVVVc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJUdEpRVU4yUlN4dlFrRkJiMElzUlVGQlJTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZPMGxCUTNKRkxGbEJRVmtzUlVGQlJTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZPMGxCUXpkRUxHVkJRV1VzUlVGQlJTeEZRVUZGTEU5QlFVOHNSVUZCUlN4TFFVRkxMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZPMGxCUTJwRkxHTkJRV01zUlVGQlJTeEZRVUZGTEU5QlFVOHNSVUZCUlN4TFFVRkxMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZPMGxCUTJoRkxHTkJRV01zUlVGQlJTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZPMGxCUXk5RUxHOUNRVUZ2UWl4RlFVRkZMRVZCUVVVc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVU3U1VGRGRFVXNZVUZCWVN4RlFVRkZMRVZCUVVVc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVU3U1VGRE9VUXNWMEZCVnl4RlFVRkZMRVZCUVVVc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVU3U1VGRE5VUXNUMEZCVHl4RlFVRkZMRVZCUVVVc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVU3U1VGRGVrUXNWMEZCVnl4RlFVRkZMRVZCUVVVc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVU3U1VGRE4wUXNXVUZCV1N4RlFVRkZMRVZCUVVVc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVU3U1VGRE9VUXNaMEpCUVdkQ0xFVkJRVVVzUlVGQlJTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlR0SlFVTnFSU3huUWtGQlowSXNSVUZCUlN4RlFVRkZMRTlCUVU4c1JVRkJSU3hKUVVGSkxFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1MwRkJTeXhGUVVGRk8wbEJRMnBGTEZkQlFWY3NSVUZCUlN4RlFVRkZMRTlCUVU4c1JVRkJSU3hKUVVGSkxFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1MwRkJTeXhGUVVGRk8wbEJRelZFTEd0Q1FVRnJRaXhGUVVGRkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVsQlFVa3NSVUZCUlN4TlFVRk5MRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVTdTVUZEYmtVc1ZVRkJWU3hGUVVGRkxFVkJRVVVzVDBGQlR5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVTdTVUZETlVRc1VVRkJVU3hGUVVGRkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVsQlFVa3NSVUZCUlN4TlFVRk5MRVZCUVVVc1NVRkJTU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEpRVUZKTEVWQlFVVTdTVUZEZGtRc1RVRkJUU3hGUVVGRkxFVkJRVVVzVDBGQlR5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVTdTVUZEZUVRc1owSkJRV2RDTEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSVHRKUVVOc1JTeGhRVUZoTEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSVHRKUVVNdlJDeFRRVUZUTEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSVHRKUVVNelJDeFZRVUZWTEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSVHRKUVVNMVJDeFZRVUZWTEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSVHRKUVVNMVJDeHRRa0ZCYlVJc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeEpRVUZKTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTzBsQlEzQkZMRmxCUVZrc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTzBsQlF6bEVMRWxCUVVrc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeEpRVUZKTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTzBsQlEzSkVMRlZCUVZVc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTzBsQlF6VkVMRk5CUVZNc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTzBsQlF6TkVMRkZCUVZFc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeEpRVUZKTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTzBsQlEzcEVMRk5CUVZNc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTzBsQlF6TkVMRmRCUVZjc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTzBsQlF6ZEVMREJDUVVFd1FpeEZRVUZGTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVN1NVRkRNMFVzWlVGQlpTeEZRVUZGTEVWQlFVVXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVN1NVRkRha1VzWlVGQlpTeEZRVUZGTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVN1NVRkRhRVVzVDBGQlR5eEZRVUZGTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVN1NVRkRlRVFzVDBGQlR5eEZRVUZGTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVN1NVRkRlRVFzYTBKQlFXdENMRVZCUVVVc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJUdEpRVU51UlN4blFrRkJaMElzUlVGQlJTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZPMGxCUTJwRkxHZENRVUZuUWl4RlFVRkZMRVZCUVVVc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVU3U1VGRGJFVXNjVUpCUVhGQ0xFVkJRVVVzUlVGQlJTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlR0SlFVTjBSU3hqUVVGakxFVkJRVVVzUlVGQlJTeFBRVUZQTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlR0SlFVTm9SU3hUUVVGVExFVkJRVVVzUlVGQlJTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlR0SlFVTXhSQ3hwUWtGQmFVSXNSVUZCUlN4RlFVRkZMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1MwRkJTeXhGUVVGRk8wbEJRMjVGTEdsQ1FVRnBRaXhGUVVGRkxFVkJRVVVzVDBGQlR5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVTdTVUZEYmtVc1dVRkJXU3hGUVVGRkxFVkJRVVVzVDBGQlR5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVTdTVUZET1VRc2JVSkJRVzFDTEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEpRVUZKTEVWQlFVVXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJSVHRKUVVOc1JTeExRVUZMTEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSVHRKUVVOMlJDeGpRVUZqTEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSVHRKUVVNdlJDeEpRVUZKTEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSVHRKUVVOeVJDeGxRVUZsTEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSVHRKUVVOcVJTeHRRa0ZCYlVJc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTzBsQlEzSkZMR3RDUVVGclFpeEZRVUZGTEVWQlFVVXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVN1EwRkRja1VzUTBGQlF5eERRVUZETzBGQlJVZ3NUVUZCVFN4M1FrRkJkMElzUjBGQlJ5eERRVWN2UWl4UlFVRXlRaXhGUVVNelFpeFZRVUZ6UWl4RlFVTjBRaXhGUVVGRk8wbEJUVVlzVFVGQlRTeGpRVUZqTEVkQlFVY3NSVUZCYjBRc1EwRkJRenRKUVVNMVJTeExRVUZMTEUxQlFVMHNSMEZCUnl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUU0UWl4RlFVRkZPMUZCUTNCRkxFMUJRVTBzVlVGQlZTeEhRVUZITEhOQ1FVRnpRaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlF5OURMRWxCUVVrc1ZVRkJWU3hoUVVGV0xGVkJRVlVzZFVKQlFWWXNWVUZCVlN4RFFVRkhMRlZCUVZVc1EwRkJReXhGUVVGRk8xbEJRelZDTEUxQlFVMHNVMEZCVXl4SFFVRkhMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVVZvUXl4MVJFRkJkVVE3V1VGRGRFUXNZMEZCYzBJc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTTdVMEZETVVNN1MwRkRSanRKUVVORUxFOUJRVThzWTBGQll5eERRVUZETzBGQlEzaENMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzTkVKQlFUUkNMRWRCUVVjc1EwRkJReXhSUVVFeVFpeEZRVUZGTEVWQlFVVTdTVUZETVVVc1QwRkJUeXgzUWtGQmQwSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03UVVGRGRrUXNRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3h6UWtGQmMwSXNSMEZCUnl4RFFVRkRMRkZCUVRKQ0xFVkJRVVVzUlVGQlJUdEpRVU53UlN4UFFVRlBMSGRDUVVGM1FpeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVOMFJDeERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MSGRDUVVGM1FpeEhRVUZITEVOQlFVTXNVVUZCTWtJc1JVRkJSU3hGUVVGRk8wbEJRM1JGTEU5QlFVOHNkMEpCUVhkQ0xFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRPMEZCUTNSRUxFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTloY0hCVGRHRjBaUzUwY3o4NE16aG1JbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0J2WXlCbWNtOXRJRndpYjNCbGJpMWpiMnh2Y2x3aU8xeHVhVzF3YjNKMElIdGNiaUFnUkVWR1FWVk1WRjlHVDA1VVgwWkJUVWxNV1N4Y2JpQWdSRVZHUVZWTVZGOUdUMDVVWDFOSldrVXNYRzRnSUVSRlJrRlZURlJmVkVWWVZGOUJURWxIVGl4Y2JpQWdSVmhRVDFKVVgxTkRRVXhGVXl4Y2JpQWdWRWhGVFVVc1hHNTlJR1p5YjIwZ1hDSXVMMk52Ym5OMFlXNTBjMXdpTzF4dWFXMXdiM0owSUhzZ2RDQjlJR1p5YjIwZ1hDSXVMMmt4T0c1Y0lqdGNibWx0Y0c5eWRDQjdJRUZ3Y0ZOMFlYUmxMQ0JPYjNKdFlXeHBlbVZrV205dmJWWmhiSFZsSUgwZ1puSnZiU0JjSWk0dmRIbHdaWE5jSWp0Y2JtbHRjRzl5ZENCN0lHZGxkRVJoZEdWVWFXMWxJSDBnWm5KdmJTQmNJaTR2ZFhScGJITmNJanRjYmx4dVkyOXVjM1FnWkdWbVlYVnNkRVY0Y0c5eWRGTmpZV3hsSUQwZ1JWaFFUMUpVWDFORFFVeEZVeTVwYm1Oc2RXUmxjeWhrWlhacFkyVlFhWGhsYkZKaGRHbHZLVnh1SUNBL0lHUmxkbWxqWlZCcGVHVnNVbUYwYVc5Y2JpQWdPaUF4TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWjJWMFJHVm1ZWFZzZEVGd2NGTjBZWFJsSUQwZ0tDazZJRTl0YVhROFhHNGdJRUZ3Y0ZOMFlYUmxMRnh1SUNCY0ltOW1abk5sZEZSdmNGd2lJSHdnWENKdlptWnpaWFJNWldaMFhDSWdmQ0JjSW5kcFpIUm9YQ0lnZkNCY0ltaGxhV2RvZEZ3aVhHNCtJRDArSUh0Y2JpQWdjbVYwZFhKdUlIdGNiaUFnSUNCMGFHVnRaVG9nVkVoRlRVVXVURWxIU0ZRc1hHNGdJQ0FnWTI5c2JHRmliM0poZEc5eWN6b2dibVYzSUUxaGNDZ3BMRnh1SUNBZ0lHTjFjbkpsYm5SRGFHRnlkRlI1Y0dVNklGd2lZbUZ5WENJc1hHNGdJQ0FnWTNWeWNtVnVkRWwwWlcxQ1lXTnJaM0p2ZFc1a1EyOXNiM0k2SUZ3aWRISmhibk53WVhKbGJuUmNJaXhjYmlBZ0lDQmpkWEp5Wlc1MFNYUmxiVVZ1WkVGeWNtOTNhR1ZoWkRvZ1hDSmhjbkp2ZDF3aUxGeHVJQ0FnSUdOMWNuSmxiblJKZEdWdFJtbHNiRk4wZVd4bE9pQmNJbWhoWTJoMWNtVmNJaXhjYmlBZ0lDQmpkWEp5Wlc1MFNYUmxiVVp2Ym5SR1lXMXBiSGs2SUVSRlJrRlZURlJmUms5T1ZGOUdRVTFKVEZrc1hHNGdJQ0FnWTNWeWNtVnVkRWwwWlcxR2IyNTBVMmw2WlRvZ1JFVkdRVlZNVkY5R1QwNVVYMU5KV2tVc1hHNGdJQ0FnWTNWeWNtVnVkRWwwWlcxTWFXNWxZWEpUZEhKdmEyVlRhR0Z5Y0c1bGMzTTZJRndpY205MWJtUmNJaXhjYmlBZ0lDQmpkWEp5Wlc1MFNYUmxiVTl3WVdOcGRIazZJREV3TUN4Y2JpQWdJQ0JqZFhKeVpXNTBTWFJsYlZKdmRXZG9ibVZ6Y3pvZ01TeGNiaUFnSUNCamRYSnlaVzUwU1hSbGJWTjBZWEowUVhKeWIzZG9aV0ZrT2lCdWRXeHNMRnh1SUNBZ0lHTjFjbkpsYm5SSmRHVnRVM1J5YjJ0bFEyOXNiM0k2SUc5akxtSnNZV05yTEZ4dUlDQWdJR04xY25KbGJuUkpkR1Z0VTNSeWIydGxVMmhoY25CdVpYTnpPaUJjSW5Ob1lYSndYQ0lzWEc0Z0lDQWdZM1Z5Y21WdWRFbDBaVzFUZEhKdmEyVlRkSGxzWlRvZ1hDSnpiMnhwWkZ3aUxGeHVJQ0FnSUdOMWNuSmxiblJKZEdWdFUzUnliMnRsVjJsa2RHZzZJREVzWEc0Z0lDQWdZM1Z5Y21WdWRFbDBaVzFVWlhoMFFXeHBaMjQ2SUVSRlJrRlZURlJmVkVWWVZGOUJURWxIVGl4Y2JpQWdJQ0JqZFhKemIzSkNkWFIwYjI0NklGd2lkWEJjSWl4Y2JpQWdJQ0JrY21GbloybHVaMFZzWlcxbGJuUTZJRzUxYkd3c1hHNGdJQ0FnWldScGRHbHVaMFZzWlcxbGJuUTZJRzUxYkd3c1hHNGdJQ0FnWldScGRHbHVaMGR5YjNWd1NXUTZJRzUxYkd3c1hHNGdJQ0FnWldScGRHbHVaMHhwYm1WaGNrVnNaVzFsYm5RNklHNTFiR3dzWEc0Z0lDQWdaV3hsYldWdWRFeHZZMnRsWkRvZ1ptRnNjMlVzWEc0Z0lDQWdaV3hsYldWdWRGUjVjR1U2SUZ3aWMyVnNaV04wYVc5dVhDSXNYRzRnSUNBZ2NHVnVUVzlrWlRvZ1ptRnNjMlVzWEc0Z0lDQWdjR1Z1UkdWMFpXTjBaV1E2SUdaaGJITmxMRnh1SUNBZ0lHVnljbTl5VFdWemMyRm5aVG9nYm5Wc2JDeGNiaUFnSUNCbGVIQnZjblJDWVdOclozSnZkVzVrT2lCMGNuVmxMRnh1SUNBZ0lHVjRjRzl5ZEZOallXeGxPaUJrWldaaGRXeDBSWGh3YjNKMFUyTmhiR1VzWEc0Z0lDQWdaWGh3YjNKMFJXMWlaV1JUWTJWdVpUb2dabUZzYzJVc1hHNGdJQ0FnWlhod2IzSjBWMmwwYUVSaGNtdE5iMlJsT2lCbVlXeHpaU3hjYmlBZ0lDQm1hV3hsU0dGdVpHeGxPaUJ1ZFd4c0xGeHVJQ0FnSUdkeWFXUlRhWHBsT2lCdWRXeHNMRnh1SUNBZ0lHbHpRbWx1WkdsdVowVnVZV0pzWldRNklIUnlkV1VzWEc0Z0lDQWdhWE5NYVdKeVlYSjVUM0JsYmpvZ1ptRnNjMlVzWEc0Z0lDQWdhWE5NYjJGa2FXNW5PaUJtWVd4elpTeGNiaUFnSUNCcGMxSmxjMmw2YVc1bk9pQm1ZV3h6WlN4Y2JpQWdJQ0JwYzFKdmRHRjBhVzVuT2lCbVlXeHpaU3hjYmlBZ0lDQnNZWE4wVUc5cGJuUmxja1J2ZDI1WGFYUm9PaUJjSW0xdmRYTmxYQ0lzWEc0Z0lDQWdiWFZzZEdsRmJHVnRaVzUwT2lCdWRXeHNMRnh1SUNBZ0lHNWhiV1U2SUdBa2UzUW9YQ0pzWVdKbGJITXVkVzUwYVhSc1pXUmNJaWw5TFNSN1oyVjBSR0YwWlZScGJXVW9LWDFnTEZ4dUlDQWdJRzl3Wlc1TlpXNTFPaUJ1ZFd4c0xGeHVJQ0FnSUc5d1pXNVFiM0IxY0RvZ2JuVnNiQ3hjYmlBZ0lDQndZWE4wWlVScFlXeHZaem9nZXlCemFHOTNiam9nWm1Gc2MyVXNJR1JoZEdFNklHNTFiR3dnZlN4Y2JpQWdJQ0J3Y21WMmFXOTFjMU5sYkdWamRHVmtSV3hsYldWdWRFbGtjem9nZTMwc1hHNGdJQ0FnY21WemFYcHBibWRGYkdWdFpXNTBPaUJ1ZFd4c0xGeHVJQ0FnSUhOamNtOXNiR1ZrVDNWMGMybGtaVG9nWm1Gc2MyVXNYRzRnSUNBZ2MyTnliMnhzV0RvZ01DeGNiaUFnSUNCelkzSnZiR3haT2lBd0xGeHVJQ0FnSUhObGJHVmpkR1ZrUld4bGJXVnVkRWxrY3pvZ2UzMHNYRzRnSUNBZ2MyVnNaV04wWldSSGNtOTFjRWxrY3pvZ2UzMHNYRzRnSUNBZ2MyVnNaV04wYVc5dVJXeGxiV1Z1ZERvZ2JuVnNiQ3hjYmlBZ0lDQnphRzkxYkdSRFlXTm9aVWxuYm05eVpWcHZiMjA2SUdaaGJITmxMRnh1SUNBZ0lITm9iM2RJWld4d1JHbGhiRzluT2lCbVlXeHpaU3hjYmlBZ0lDQnphRzkzVTNSaGRITTZJR1poYkhObExGeHVJQ0FnSUhOMFlYSjBRbTkxYm1SRmJHVnRaVzUwT2lCdWRXeHNMRnh1SUNBZ0lITjFaMmRsYzNSbFpFSnBibVJwYm1kek9pQmJYU3hjYmlBZ0lDQjBiMkZ6ZEUxbGMzTmhaMlU2SUc1MWJHd3NYRzRnSUNBZ2RtbGxkMEpoWTJ0bmNtOTFibVJEYjJ4dmNqb2diMk11ZDJocGRHVXNYRzRnSUNBZ2VtVnVUVzlrWlVWdVlXSnNaV1E2SUdaaGJITmxMRnh1SUNBZ0lIcHZiMjA2SUh0Y2JpQWdJQ0FnSUhaaGJIVmxPaUF4SUdGeklFNXZjbTFoYkdsNlpXUmFiMjl0Vm1Gc2RXVXNYRzRnSUNBZ2ZTeGNiaUFnSUNCMmFXVjNUVzlrWlVWdVlXSnNaV1E2SUdaaGJITmxMRnh1SUNBZ0lIQmxibVJwYm1kSmJXRm5aVVZzWlcxbGJuUTZJRzUxYkd3c1hHNGdJQ0FnYzJodmQwaDVjR1Z5YkdsdWExQnZjSFZ3T2lCbVlXeHpaU3hjYmlBZ2ZUdGNibjA3WEc1Y2JpOHFLbHh1SUNvZ1EyOXVabWxuSUdOdmJuUmhhVzVwYm1jZ1lXeHNJRUZ3Y0ZOMFlYUmxJR3RsZVhNdUlGVnpaV1FnZEc4Z1pHVjBaWEp0YVc1bElIZG9aWFJvWlhJZ1oybDJaVzRnYzNSaGRHVmNiaUFxSUNCd2NtOXdJSE5vYjNWc1pDQmlaU0J6ZEhKcGNIQmxaQ0IzYUdWdUlHVjRjRzl5ZEdsdVp5QjBieUJuYVhabGJpQnpkRzl5WVdkbElIUjVjR1V1WEc0Z0tpOWNibU52Ym5OMElFRlFVRjlUVkVGVVJWOVRWRTlTUVVkRlgwTlBUa1lnUFNBb1BGeHVJQ0JXWVd4MVpYTWdaWGgwWlc1a2N5QjdYRzRnSUNBZ0x5b3FJSGRvWlhSb1pYSWdkRzhnYTJWbGNDQjNhR1Z1SUhOMGIzSnBibWNnZEc4Z1luSnZkM05sY2lCemRHOXlZV2RsSUNoc2IyTmhiRk4wYjNKaFoyVXZTVVJDS1NBcUwxeHVJQ0FnSUdKeWIzZHpaWEk2SUdKdmIyeGxZVzQ3WEc0Z0lDQWdMeW9xSUhkb1pYUm9aWElnZEc4Z2EyVmxjQ0IzYUdWdUlHVjRjRzl5ZEdsdVp5QjBieUJtYVd4bEwyUmhkR0ZpWVhObElDb3ZYRzRnSUNBZ1pYaHdiM0owT2lCaWIyOXNaV0Z1TzF4dUlDQWdJQzhxS2lCelpYSjJaWElnS0hOb1lYSmxUR2x1YXk5amIyeHNZV0l2TGk0dUtTQXFMMXh1SUNBZ0lITmxjblpsY2pvZ1ltOXZiR1ZoYmp0Y2JpQWdmU3hjYmlBZ1ZDQmxlSFJsYm1SeklGSmxZMjl5WkR4clpYbHZaaUJCY0hCVGRHRjBaU3dnVm1Gc2RXVnpQaXhjYmo0b1kyOXVabWxuT2lCN0lGdExJR2x1SUd0bGVXOW1JRlJkT2lCTElHVjRkR1Z1WkhNZ2EyVjViMllnUVhCd1UzUmhkR1VnUHlCVVcwdGRJRG9nYm1WMlpYSWdmU2tnUFQ1Y2JpQWdZMjl1Wm1sbktTaDdYRzRnSUhSb1pXMWxPaUI3SUdKeWIzZHpaWEk2SUhSeWRXVXNJR1Y0Y0c5eWREb2dabUZzYzJVc0lITmxjblpsY2pvZ1ptRnNjMlVnZlN4Y2JpQWdZMjlzYkdGaWIzSmhkRzl5Y3pvZ2V5QmljbTkzYzJWeU9pQm1ZV3h6WlN3Z1pYaHdiM0owT2lCbVlXeHpaU3dnYzJWeWRtVnlPaUJtWVd4elpTQjlMRnh1SUNCamRYSnlaVzUwUTJoaGNuUlVlWEJsT2lCN0lHSnliM2R6WlhJNklIUnlkV1VzSUdWNGNHOXlkRG9nWm1Gc2MyVXNJSE5sY25abGNqb2dabUZzYzJVZ2ZTeGNiaUFnWTNWeWNtVnVkRWwwWlcxQ1lXTnJaM0p2ZFc1a1EyOXNiM0k2SUhzZ1luSnZkM05sY2pvZ2RISjFaU3dnWlhod2IzSjBPaUJtWVd4elpTd2djMlZ5ZG1WeU9pQm1ZV3h6WlNCOUxGeHVJQ0JqZFhKeVpXNTBTWFJsYlVWdVpFRnljbTkzYUdWaFpEb2dleUJpY205M2MyVnlPaUIwY25WbExDQmxlSEJ2Y25RNklHWmhiSE5sTENCelpYSjJaWEk2SUdaaGJITmxJSDBzWEc0Z0lHTjFjbkpsYm5SSmRHVnRSbWxzYkZOMGVXeGxPaUI3SUdKeWIzZHpaWEk2SUhSeWRXVXNJR1Y0Y0c5eWREb2dabUZzYzJVc0lITmxjblpsY2pvZ1ptRnNjMlVnZlN4Y2JpQWdZM1Z5Y21WdWRFbDBaVzFHYjI1MFJtRnRhV3g1T2lCN0lHSnliM2R6WlhJNklIUnlkV1VzSUdWNGNHOXlkRG9nWm1Gc2MyVXNJSE5sY25abGNqb2dabUZzYzJVZ2ZTeGNiaUFnWTNWeWNtVnVkRWwwWlcxR2IyNTBVMmw2WlRvZ2V5QmljbTkzYzJWeU9pQjBjblZsTENCbGVIQnZjblE2SUdaaGJITmxMQ0J6WlhKMlpYSTZJR1poYkhObElIMHNYRzRnSUdOMWNuSmxiblJKZEdWdFRHbHVaV0Z5VTNSeWIydGxVMmhoY25CdVpYTnpPaUI3WEc0Z0lDQWdZbkp2ZDNObGNqb2dkSEoxWlN4Y2JpQWdJQ0JsZUhCdmNuUTZJR1poYkhObExGeHVJQ0FnSUhObGNuWmxjam9nWm1Gc2MyVXNYRzRnSUgwc1hHNGdJR04xY25KbGJuUkpkR1Z0VDNCaFkybDBlVG9nZXlCaWNtOTNjMlZ5T2lCMGNuVmxMQ0JsZUhCdmNuUTZJR1poYkhObExDQnpaWEoyWlhJNklHWmhiSE5sSUgwc1hHNGdJR04xY25KbGJuUkpkR1Z0VW05MVoyaHVaWE56T2lCN0lHSnliM2R6WlhJNklIUnlkV1VzSUdWNGNHOXlkRG9nWm1Gc2MyVXNJSE5sY25abGNqb2dabUZzYzJVZ2ZTeGNiaUFnWTNWeWNtVnVkRWwwWlcxVGRHRnlkRUZ5Y205M2FHVmhaRG9nZXlCaWNtOTNjMlZ5T2lCMGNuVmxMQ0JsZUhCdmNuUTZJR1poYkhObExDQnpaWEoyWlhJNklHWmhiSE5sSUgwc1hHNGdJR04xY25KbGJuUkpkR1Z0VTNSeWIydGxRMjlzYjNJNklIc2dZbkp2ZDNObGNqb2dkSEoxWlN3Z1pYaHdiM0owT2lCbVlXeHpaU3dnYzJWeWRtVnlPaUJtWVd4elpTQjlMRnh1SUNCamRYSnlaVzUwU1hSbGJWTjBjbTlyWlZOb1lYSndibVZ6Y3pvZ2V5QmljbTkzYzJWeU9pQjBjblZsTENCbGVIQnZjblE2SUdaaGJITmxMQ0J6WlhKMlpYSTZJR1poYkhObElIMHNYRzRnSUdOMWNuSmxiblJKZEdWdFUzUnliMnRsVTNSNWJHVTZJSHNnWW5KdmQzTmxjam9nZEhKMVpTd2daWGh3YjNKME9pQm1ZV3h6WlN3Z2MyVnlkbVZ5T2lCbVlXeHpaU0I5TEZ4dUlDQmpkWEp5Wlc1MFNYUmxiVk4wY205clpWZHBaSFJvT2lCN0lHSnliM2R6WlhJNklIUnlkV1VzSUdWNGNHOXlkRG9nWm1Gc2MyVXNJSE5sY25abGNqb2dabUZzYzJVZ2ZTeGNiaUFnWTNWeWNtVnVkRWwwWlcxVVpYaDBRV3hwWjI0NklIc2dZbkp2ZDNObGNqb2dkSEoxWlN3Z1pYaHdiM0owT2lCbVlXeHpaU3dnYzJWeWRtVnlPaUJtWVd4elpTQjlMRnh1SUNCamRYSnpiM0pDZFhSMGIyNDZJSHNnWW5KdmQzTmxjam9nZEhKMVpTd2daWGh3YjNKME9pQm1ZV3h6WlN3Z2MyVnlkbVZ5T2lCbVlXeHpaU0I5TEZ4dUlDQmtjbUZuWjJsdVowVnNaVzFsYm5RNklIc2dZbkp2ZDNObGNqb2dabUZzYzJVc0lHVjRjRzl5ZERvZ1ptRnNjMlVzSUhObGNuWmxjam9nWm1Gc2MyVWdmU3hjYmlBZ1pXUnBkR2x1WjBWc1pXMWxiblE2SUhzZ1luSnZkM05sY2pvZ1ptRnNjMlVzSUdWNGNHOXlkRG9nWm1Gc2MyVXNJSE5sY25abGNqb2dabUZzYzJVZ2ZTeGNiaUFnWldScGRHbHVaMGR5YjNWd1NXUTZJSHNnWW5KdmQzTmxjam9nZEhKMVpTd2daWGh3YjNKME9pQm1ZV3h6WlN3Z2MyVnlkbVZ5T2lCbVlXeHpaU0I5TEZ4dUlDQmxaR2wwYVc1blRHbHVaV0Z5Uld4bGJXVnVkRG9nZXlCaWNtOTNjMlZ5T2lCbVlXeHpaU3dnWlhod2IzSjBPaUJtWVd4elpTd2djMlZ5ZG1WeU9pQm1ZV3h6WlNCOUxGeHVJQ0JsYkdWdFpXNTBURzlqYTJWa09pQjdJR0p5YjNkelpYSTZJSFJ5ZFdVc0lHVjRjRzl5ZERvZ1ptRnNjMlVzSUhObGNuWmxjam9nWm1Gc2MyVWdmU3hjYmlBZ1pXeGxiV1Z1ZEZSNWNHVTZJSHNnWW5KdmQzTmxjam9nZEhKMVpTd2daWGh3YjNKME9pQm1ZV3h6WlN3Z2MyVnlkbVZ5T2lCbVlXeHpaU0I5TEZ4dUlDQndaVzVOYjJSbE9pQjdJR0p5YjNkelpYSTZJR1poYkhObExDQmxlSEJ2Y25RNklHWmhiSE5sTENCelpYSjJaWEk2SUdaaGJITmxJSDBzWEc0Z0lIQmxia1JsZEdWamRHVmtPaUI3SUdKeWIzZHpaWEk2SUdaaGJITmxMQ0JsZUhCdmNuUTZJR1poYkhObExDQnpaWEoyWlhJNklHWmhiSE5sSUgwc1hHNGdJR1Z5Y205eVRXVnpjMkZuWlRvZ2V5QmljbTkzYzJWeU9pQm1ZV3h6WlN3Z1pYaHdiM0owT2lCbVlXeHpaU3dnYzJWeWRtVnlPaUJtWVd4elpTQjlMRnh1SUNCbGVIQnZjblJDWVdOclozSnZkVzVrT2lCN0lHSnliM2R6WlhJNklIUnlkV1VzSUdWNGNHOXlkRG9nWm1Gc2MyVXNJSE5sY25abGNqb2dabUZzYzJVZ2ZTeGNiaUFnWlhod2IzSjBSVzFpWldSVFkyVnVaVG9nZXlCaWNtOTNjMlZ5T2lCMGNuVmxMQ0JsZUhCdmNuUTZJR1poYkhObExDQnpaWEoyWlhJNklHWmhiSE5sSUgwc1hHNGdJR1Y0Y0c5eWRGTmpZV3hsT2lCN0lHSnliM2R6WlhJNklIUnlkV1VzSUdWNGNHOXlkRG9nWm1Gc2MyVXNJSE5sY25abGNqb2dabUZzYzJVZ2ZTeGNiaUFnWlhod2IzSjBWMmwwYUVSaGNtdE5iMlJsT2lCN0lHSnliM2R6WlhJNklIUnlkV1VzSUdWNGNHOXlkRG9nWm1Gc2MyVXNJSE5sY25abGNqb2dabUZzYzJVZ2ZTeGNiaUFnWm1sc1pVaGhibVJzWlRvZ2V5QmljbTkzYzJWeU9pQm1ZV3h6WlN3Z1pYaHdiM0owT2lCbVlXeHpaU3dnYzJWeWRtVnlPaUJtWVd4elpTQjlMRnh1SUNCbmNtbGtVMmw2WlRvZ2V5QmljbTkzYzJWeU9pQjBjblZsTENCbGVIQnZjblE2SUhSeWRXVXNJSE5sY25abGNqb2dkSEoxWlNCOUxGeHVJQ0JvWldsbmFIUTZJSHNnWW5KdmQzTmxjam9nWm1Gc2MyVXNJR1Y0Y0c5eWREb2dabUZzYzJVc0lITmxjblpsY2pvZ1ptRnNjMlVnZlN4Y2JpQWdhWE5DYVc1a2FXNW5SVzVoWW14bFpEb2dleUJpY205M2MyVnlPaUJtWVd4elpTd2daWGh3YjNKME9pQm1ZV3h6WlN3Z2MyVnlkbVZ5T2lCbVlXeHpaU0I5TEZ4dUlDQnBjMHhwWW5KaGNubFBjR1Z1T2lCN0lHSnliM2R6WlhJNklHWmhiSE5sTENCbGVIQnZjblE2SUdaaGJITmxMQ0J6WlhKMlpYSTZJR1poYkhObElIMHNYRzRnSUdselRHOWhaR2x1WnpvZ2V5QmljbTkzYzJWeU9pQm1ZV3h6WlN3Z1pYaHdiM0owT2lCbVlXeHpaU3dnYzJWeWRtVnlPaUJtWVd4elpTQjlMRnh1SUNCcGMxSmxjMmw2YVc1bk9pQjdJR0p5YjNkelpYSTZJR1poYkhObExDQmxlSEJ2Y25RNklHWmhiSE5sTENCelpYSjJaWEk2SUdaaGJITmxJSDBzWEc0Z0lHbHpVbTkwWVhScGJtYzZJSHNnWW5KdmQzTmxjam9nWm1Gc2MyVXNJR1Y0Y0c5eWREb2dabUZzYzJVc0lITmxjblpsY2pvZ1ptRnNjMlVnZlN4Y2JpQWdiR0Z6ZEZCdmFXNTBaWEpFYjNkdVYybDBhRG9nZXlCaWNtOTNjMlZ5T2lCMGNuVmxMQ0JsZUhCdmNuUTZJR1poYkhObExDQnpaWEoyWlhJNklHWmhiSE5sSUgwc1hHNGdJRzExYkhScFJXeGxiV1Z1ZERvZ2V5QmljbTkzYzJWeU9pQm1ZV3h6WlN3Z1pYaHdiM0owT2lCbVlXeHpaU3dnYzJWeWRtVnlPaUJtWVd4elpTQjlMRnh1SUNCdVlXMWxPaUI3SUdKeWIzZHpaWEk2SUhSeWRXVXNJR1Y0Y0c5eWREb2dabUZzYzJVc0lITmxjblpsY2pvZ1ptRnNjMlVnZlN4Y2JpQWdiMlptYzJWMFRHVm1kRG9nZXlCaWNtOTNjMlZ5T2lCbVlXeHpaU3dnWlhod2IzSjBPaUJtWVd4elpTd2djMlZ5ZG1WeU9pQm1ZV3h6WlNCOUxGeHVJQ0J2Wm1aelpYUlViM0E2SUhzZ1luSnZkM05sY2pvZ1ptRnNjMlVzSUdWNGNHOXlkRG9nWm1Gc2MyVXNJSE5sY25abGNqb2dabUZzYzJVZ2ZTeGNiaUFnYjNCbGJrMWxiblU2SUhzZ1luSnZkM05sY2pvZ2RISjFaU3dnWlhod2IzSjBPaUJtWVd4elpTd2djMlZ5ZG1WeU9pQm1ZV3h6WlNCOUxGeHVJQ0J2Y0dWdVVHOXdkWEE2SUhzZ1luSnZkM05sY2pvZ1ptRnNjMlVzSUdWNGNHOXlkRG9nWm1Gc2MyVXNJSE5sY25abGNqb2dabUZzYzJVZ2ZTeGNiaUFnY0dGemRHVkVhV0ZzYjJjNklIc2dZbkp2ZDNObGNqb2dabUZzYzJVc0lHVjRjRzl5ZERvZ1ptRnNjMlVzSUhObGNuWmxjam9nWm1Gc2MyVWdmU3hjYmlBZ2NISmxkbWx2ZFhOVFpXeGxZM1JsWkVWc1pXMWxiblJKWkhNNklIc2dZbkp2ZDNObGNqb2dkSEoxWlN3Z1pYaHdiM0owT2lCbVlXeHpaU3dnYzJWeWRtVnlPaUJtWVd4elpTQjlMRnh1SUNCeVpYTnBlbWx1WjBWc1pXMWxiblE2SUhzZ1luSnZkM05sY2pvZ1ptRnNjMlVzSUdWNGNHOXlkRG9nWm1Gc2MyVXNJSE5sY25abGNqb2dabUZzYzJVZ2ZTeGNiaUFnYzJOeWIyeHNaV1JQZFhSemFXUmxPaUI3SUdKeWIzZHpaWEk2SUhSeWRXVXNJR1Y0Y0c5eWREb2dabUZzYzJVc0lITmxjblpsY2pvZ1ptRnNjMlVnZlN4Y2JpQWdjMk55YjJ4c1dEb2dleUJpY205M2MyVnlPaUIwY25WbExDQmxlSEJ2Y25RNklHWmhiSE5sTENCelpYSjJaWEk2SUdaaGJITmxJSDBzWEc0Z0lITmpjbTlzYkZrNklIc2dZbkp2ZDNObGNqb2dkSEoxWlN3Z1pYaHdiM0owT2lCbVlXeHpaU3dnYzJWeWRtVnlPaUJtWVd4elpTQjlMRnh1SUNCelpXeGxZM1JsWkVWc1pXMWxiblJKWkhNNklIc2dZbkp2ZDNObGNqb2dkSEoxWlN3Z1pYaHdiM0owT2lCbVlXeHpaU3dnYzJWeWRtVnlPaUJtWVd4elpTQjlMRnh1SUNCelpXeGxZM1JsWkVkeWIzVndTV1J6T2lCN0lHSnliM2R6WlhJNklIUnlkV1VzSUdWNGNHOXlkRG9nWm1Gc2MyVXNJSE5sY25abGNqb2dabUZzYzJVZ2ZTeGNiaUFnYzJWc1pXTjBhVzl1Uld4bGJXVnVkRG9nZXlCaWNtOTNjMlZ5T2lCbVlXeHpaU3dnWlhod2IzSjBPaUJtWVd4elpTd2djMlZ5ZG1WeU9pQm1ZV3h6WlNCOUxGeHVJQ0J6YUc5MWJHUkRZV05vWlVsbmJtOXlaVnB2YjIwNklIc2dZbkp2ZDNObGNqb2dkSEoxWlN3Z1pYaHdiM0owT2lCbVlXeHpaU3dnYzJWeWRtVnlPaUJtWVd4elpTQjlMRnh1SUNCemFHOTNTR1ZzY0VScFlXeHZaem9nZXlCaWNtOTNjMlZ5T2lCbVlXeHpaU3dnWlhod2IzSjBPaUJtWVd4elpTd2djMlZ5ZG1WeU9pQm1ZV3h6WlNCOUxGeHVJQ0J6YUc5M1UzUmhkSE02SUhzZ1luSnZkM05sY2pvZ2RISjFaU3dnWlhod2IzSjBPaUJtWVd4elpTd2djMlZ5ZG1WeU9pQm1ZV3h6WlNCOUxGeHVJQ0J6ZEdGeWRFSnZkVzVrUld4bGJXVnVkRG9nZXlCaWNtOTNjMlZ5T2lCbVlXeHpaU3dnWlhod2IzSjBPaUJtWVd4elpTd2djMlZ5ZG1WeU9pQm1ZV3h6WlNCOUxGeHVJQ0J6ZFdkblpYTjBaV1JDYVc1a2FXNW5jem9nZXlCaWNtOTNjMlZ5T2lCbVlXeHpaU3dnWlhod2IzSjBPaUJtWVd4elpTd2djMlZ5ZG1WeU9pQm1ZV3h6WlNCOUxGeHVJQ0IwYjJGemRFMWxjM05oWjJVNklIc2dZbkp2ZDNObGNqb2dabUZzYzJVc0lHVjRjRzl5ZERvZ1ptRnNjMlVzSUhObGNuWmxjam9nWm1Gc2MyVWdmU3hjYmlBZ2RtbGxkMEpoWTJ0bmNtOTFibVJEYjJ4dmNqb2dleUJpY205M2MyVnlPaUIwY25WbExDQmxlSEJ2Y25RNklIUnlkV1VzSUhObGNuWmxjam9nZEhKMVpTQjlMRnh1SUNCM2FXUjBhRG9nZXlCaWNtOTNjMlZ5T2lCbVlXeHpaU3dnWlhod2IzSjBPaUJtWVd4elpTd2djMlZ5ZG1WeU9pQm1ZV3h6WlNCOUxGeHVJQ0I2Wlc1TmIyUmxSVzVoWW14bFpEb2dleUJpY205M2MyVnlPaUIwY25WbExDQmxlSEJ2Y25RNklHWmhiSE5sTENCelpYSjJaWEk2SUdaaGJITmxJSDBzWEc0Z0lIcHZiMjA2SUhzZ1luSnZkM05sY2pvZ2RISjFaU3dnWlhod2IzSjBPaUJtWVd4elpTd2djMlZ5ZG1WeU9pQm1ZV3h6WlNCOUxGeHVJQ0IyYVdWM1RXOWtaVVZ1WVdKc1pXUTZJSHNnWW5KdmQzTmxjam9nWm1Gc2MyVXNJR1Y0Y0c5eWREb2dabUZzYzJVc0lITmxjblpsY2pvZ1ptRnNjMlVnZlN4Y2JpQWdjR1Z1WkdsdVowbHRZV2RsUld4bGJXVnVkRG9nZXlCaWNtOTNjMlZ5T2lCbVlXeHpaU3dnWlhod2IzSjBPaUJtWVd4elpTd2djMlZ5ZG1WeU9pQm1ZV3h6WlNCOUxGeHVJQ0J6YUc5M1NIbHdaWEpzYVc1clVHOXdkWEE2SUhzZ1luSnZkM05sY2pvZ1ptRnNjMlVzSUdWNGNHOXlkRG9nWm1Gc2MyVXNJSE5sY25abGNqb2dabUZzYzJVZ2ZTeGNibjBwTzF4dVhHNWpiMjV6ZENCZlkyeGxZWEpCY0hCVGRHRjBaVVp2Y2xOMGIzSmhaMlVnUFNBOFhHNGdJRVY0Y0c5eWRGUjVjR1VnWlhoMFpXNWtjeUJjSW1WNGNHOXlkRndpSUh3Z1hDSmljbTkzYzJWeVhDSWdmQ0JjSW5ObGNuWmxjbHdpTEZ4dVBpaGNiaUFnWVhCd1UzUmhkR1U2SUZCaGNuUnBZV3c4UVhCd1UzUmhkR1UrTEZ4dUlDQmxlSEJ2Y25SVWVYQmxPaUJGZUhCdmNuUlVlWEJsTEZ4dUtTQTlQaUI3WEc0Z0lIUjVjR1VnUlhod2IzSjBZV0pzWlV0bGVYTWdQU0I3WEc0Z0lDQWdXMHNnYVc0Z2EyVjViMllnZEhsd1pXOW1JRUZRVUY5VFZFRlVSVjlUVkU5U1FVZEZYME5QVGtaZE9pQjBlWEJsYjJZZ1FWQlFYMU5VUVZSRlgxTlVUMUpCUjBWZlEwOU9SbHRMWFZ0RmVIQnZjblJVZVhCbFhTQmxlSFJsYm1SeklIUnlkV1ZjYmlBZ0lDQWdJRDhnUzF4dUlDQWdJQ0FnT2lCdVpYWmxjanRjYmlBZ2ZWdHJaWGx2WmlCMGVYQmxiMllnUVZCUVgxTlVRVlJGWDFOVVQxSkJSMFZmUTA5T1JsMDdYRzRnSUdOdmJuTjBJSE4wWVhSbFJtOXlSWGh3YjNKMElEMGdlMzBnWVhNZ2V5QmJTeUJwYmlCRmVIQnZjblJoWW14bFMyVjVjMTAvT2lCMGVYQmxiMllnWVhCd1UzUmhkR1ZiUzEwZ2ZUdGNiaUFnWm05eUlDaGpiMjV6ZENCclpYa2diMllnVDJKcVpXTjBMbXRsZVhNb1lYQndVM1JoZEdVcElHRnpJQ2hyWlhsdlppQjBlWEJsYjJZZ1lYQndVM1JoZEdVcFcxMHBJSHRjYmlBZ0lDQmpiMjV6ZENCd2NtOXdRMjl1Wm1sbklEMGdRVkJRWDFOVVFWUkZYMU5VVDFKQlIwVmZRMDlPUmx0clpYbGRPMXh1SUNBZ0lHbG1JQ2h3Y205d1EyOXVabWxuUHk1YlpYaHdiM0owVkhsd1pWMHBJSHRjYmlBZ0lDQWdJR052Ym5OMElHNWxlSFJXWVd4MVpTQTlJR0Z3Y0ZOMFlYUmxXMnRsZVYwN1hHNWNiaUFnSUNBZ0lDOHZJR2gwZEhCek9pOHZaMmwwYUhWaUxtTnZiUzl0YVdOeWIzTnZablF2Vkhsd1pWTmpjbWx3ZEM5cGMzTjFaWE12TXpFME5EVmNiaUFnSUNBZ0lDaHpkR0YwWlVadmNrVjRjRzl5ZENCaGN5QmhibmtwVzJ0bGVWMGdQU0J1WlhoMFZtRnNkV1U3WEc0Z0lDQWdmVnh1SUNCOVhHNGdJSEpsZEhWeWJpQnpkR0YwWlVadmNrVjRjRzl5ZER0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmpiR1ZoY2tGd2NGTjBZWFJsUm05eVRHOWpZV3hUZEc5eVlXZGxJRDBnS0dGd2NGTjBZWFJsT2lCUVlYSjBhV0ZzUEVGd2NGTjBZWFJsUGlrZ1BUNGdlMXh1SUNCeVpYUjFjbTRnWDJOc1pXRnlRWEJ3VTNSaGRHVkdiM0pUZEc5eVlXZGxLR0Z3Y0ZOMFlYUmxMQ0JjSW1KeWIzZHpaWEpjSWlrN1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdZMnhsWVc1QmNIQlRkR0YwWlVadmNrVjRjRzl5ZENBOUlDaGhjSEJUZEdGMFpUb2dVR0Z5ZEdsaGJEeEJjSEJUZEdGMFpUNHBJRDArSUh0Y2JpQWdjbVYwZFhKdUlGOWpiR1ZoY2tGd2NGTjBZWFJsUm05eVUzUnZjbUZuWlNoaGNIQlRkR0YwWlN3Z1hDSmxlSEJ2Y25SY0lpazdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWTJ4bFlYSkJjSEJUZEdGMFpVWnZja1JoZEdGaVlYTmxJRDBnS0dGd2NGTjBZWFJsT2lCUVlYSjBhV0ZzUEVGd2NGTjBZWFJsUGlrZ1BUNGdlMXh1SUNCeVpYUjFjbTRnWDJOc1pXRnlRWEJ3VTNSaGRHVkdiM0pUZEc5eVlXZGxLR0Z3Y0ZOMFlYUmxMQ0JjSW5ObGNuWmxjbHdpS1R0Y2JuMDdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9hcHBTdGF0ZS50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY2hhcnRzLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jaGFydHMudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJOT1RfU1BSRUFEU0hFRVRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBOT1RfU1BSRUFEU0hFRVQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlZBTElEX1NQUkVBRFNIRUVUXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gVkFMSURfU1BSRUFEU0hFRVQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInRyeVBhcnNlU3ByZWFkc2hlZXRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB0cnlQYXJzZVNwcmVhZHNoZWV0KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJyZW5kZXJTcHJlYWRzaGVldFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJlbmRlclNwcmVhZHNoZWV0KVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29sb3JzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2NvbG9ycyAqLyBcXFwiLi4vLi4vY29sb3JzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vY29uc3RhbnRzICovIFxcXCIuLi8uLi9jb25zdGFudHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vZWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmFuZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3JhbmRvbSAqLyBcXFwiLi4vLi4vcmFuZG9tLnRzXFxcIik7XFxuXFxuXFxuXFxuXFxuY29uc3QgQkFSX1dJRFRIID0gMzI7XFxuY29uc3QgQkFSX0dBUCA9IDEyO1xcbmNvbnN0IEJBUl9IRUlHSFQgPSAyNTY7XFxuY29uc3QgR1JJRF9PUEFDSVRZID0gNTA7XFxuY29uc3QgTk9UX1NQUkVBRFNIRUVUID0gXFxcIk5PVF9TUFJFQURTSEVFVFxcXCI7XFxuY29uc3QgVkFMSURfU1BSRUFEU0hFRVQgPSBcXFwiVkFMSURfU1BSRUFEU0hFRVRcXFwiO1xcbmNvbnN0IHRyeVBhcnNlTnVtYmVyID0gKHMpID0+IHtcXG4gICAgY29uc3QgbWF0Y2ggPSAvXlskXHUyMEFDXHUwMEEzXHUwMEE1XHUyMEE5XT8oWzAtOSxdKyhcXFxcLlswLTldKyk/KSQvLmV4ZWMocyk7XFxuICAgIGlmICghbWF0Y2gpIHtcXG4gICAgICAgIHJldHVybiBudWxsO1xcbiAgICB9XFxuICAgIHJldHVybiBwYXJzZUZsb2F0KG1hdGNoWzFdLnJlcGxhY2UoLywvZywgXFxcIlxcXCIpKTtcXG59O1xcbmNvbnN0IGlzTnVtZXJpY0NvbHVtbiA9IChsaW5lcywgY29sdW1uSW5kZXgpID0+IGxpbmVzLnNsaWNlKDEpLmV2ZXJ5KChsaW5lKSA9PiB0cnlQYXJzZU51bWJlcihsaW5lW2NvbHVtbkluZGV4XSkgIT09IG51bGwpO1xcbmNvbnN0IHRyeVBhcnNlQ2VsbHMgPSAoY2VsbHMpID0+IHtcXG4gICAgY29uc3QgbnVtQ29scyA9IGNlbGxzWzBdLmxlbmd0aDtcXG4gICAgaWYgKG51bUNvbHMgPiAyKSB7XFxuICAgICAgICByZXR1cm4geyB0eXBlOiBOT1RfU1BSRUFEU0hFRVQsIHJlYXNvbjogXFxcIk1vcmUgdGhhbiAyIGNvbHVtbnNcXFwiIH07XFxuICAgIH1cXG4gICAgaWYgKG51bUNvbHMgPT09IDEpIHtcXG4gICAgICAgIGlmICghaXNOdW1lcmljQ29sdW1uKGNlbGxzLCAwKSkge1xcbiAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IE5PVF9TUFJFQURTSEVFVCwgcmVhc29uOiBcXFwiVmFsdWUgaXMgbm90IG51bWVyaWNcXFwiIH07XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBoYXNIZWFkZXIgPSB0cnlQYXJzZU51bWJlcihjZWxsc1swXVswXSkgPT09IG51bGw7XFxuICAgICAgICBjb25zdCB2YWx1ZXMgPSAoaGFzSGVhZGVyID8gY2VsbHMuc2xpY2UoMSkgOiBjZWxscykubWFwKChsaW5lKSA9PiB0cnlQYXJzZU51bWJlcihsaW5lWzBdKSk7XFxuICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA8IDIpIHtcXG4gICAgICAgICAgICByZXR1cm4geyB0eXBlOiBOT1RfU1BSRUFEU0hFRVQsIHJlYXNvbjogXFxcIkxlc3MgdGhhbiB0d28gcm93c1xcXCIgfTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgdHlwZTogVkFMSURfU1BSRUFEU0hFRVQsXFxuICAgICAgICAgICAgc3ByZWFkc2hlZXQ6IHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGhhc0hlYWRlciA/IGNlbGxzWzBdWzBdIDogbnVsbCxcXG4gICAgICAgICAgICAgICAgbGFiZWxzOiBudWxsLFxcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IHZhbHVlcyxcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgfTtcXG4gICAgfVxcbiAgICBjb25zdCB2YWx1ZUNvbHVtbkluZGV4ID0gaXNOdW1lcmljQ29sdW1uKGNlbGxzLCAwKSA/IDAgOiAxO1xcbiAgICBpZiAoIWlzTnVtZXJpY0NvbHVtbihjZWxscywgdmFsdWVDb2x1bW5JbmRleCkpIHtcXG4gICAgICAgIHJldHVybiB7IHR5cGU6IE5PVF9TUFJFQURTSEVFVCwgcmVhc29uOiBcXFwiVmFsdWUgaXMgbm90IG51bWVyaWNcXFwiIH07XFxuICAgIH1cXG4gICAgY29uc3QgbGFiZWxDb2x1bW5JbmRleCA9ICh2YWx1ZUNvbHVtbkluZGV4ICsgMSkgJSAyO1xcbiAgICBjb25zdCBoYXNIZWFkZXIgPSB0cnlQYXJzZU51bWJlcihjZWxsc1swXVt2YWx1ZUNvbHVtbkluZGV4XSkgPT09IG51bGw7XFxuICAgIGNvbnN0IHJvd3MgPSBoYXNIZWFkZXIgPyBjZWxscy5zbGljZSgxKSA6IGNlbGxzO1xcbiAgICBpZiAocm93cy5sZW5ndGggPCAyKSB7XFxuICAgICAgICByZXR1cm4geyB0eXBlOiBOT1RfU1BSRUFEU0hFRVQsIHJlYXNvbjogXFxcIkxlc3MgdGhhbiAyIHJvd3NcXFwiIH07XFxuICAgIH1cXG4gICAgcmV0dXJuIHtcXG4gICAgICAgIHR5cGU6IFZBTElEX1NQUkVBRFNIRUVULFxcbiAgICAgICAgc3ByZWFkc2hlZXQ6IHtcXG4gICAgICAgICAgICB0aXRsZTogaGFzSGVhZGVyID8gY2VsbHNbMF1bdmFsdWVDb2x1bW5JbmRleF0gOiBudWxsLFxcbiAgICAgICAgICAgIGxhYmVsczogcm93cy5tYXAoKHJvdykgPT4gcm93W2xhYmVsQ29sdW1uSW5kZXhdKSxcXG4gICAgICAgICAgICB2YWx1ZXM6IHJvd3MubWFwKChyb3cpID0+IHRyeVBhcnNlTnVtYmVyKHJvd1t2YWx1ZUNvbHVtbkluZGV4XSkpLFxcbiAgICAgICAgfSxcXG4gICAgfTtcXG59O1xcbmNvbnN0IHRyYW5zcG9zZUNlbGxzID0gKGNlbGxzKSA9PiB7XFxuICAgIGNvbnN0IG5leHRDZWxscyA9IFtdO1xcbiAgICBmb3IgKGxldCBjb2wgPSAwOyBjb2wgPCBjZWxsc1swXS5sZW5ndGg7IGNvbCsrKSB7XFxuICAgICAgICBjb25zdCBuZXh0Q2VsbFJvdyA9IFtdO1xcbiAgICAgICAgZm9yIChsZXQgcm93ID0gMDsgcm93IDwgY2VsbHMubGVuZ3RoOyByb3crKykge1xcbiAgICAgICAgICAgIG5leHRDZWxsUm93LnB1c2goY2VsbHNbcm93XVtjb2xdKTtcXG4gICAgICAgIH1cXG4gICAgICAgIG5leHRDZWxscy5wdXNoKG5leHRDZWxsUm93KTtcXG4gICAgfVxcbiAgICByZXR1cm4gbmV4dENlbGxzO1xcbn07XFxuY29uc3QgdHJ5UGFyc2VTcHJlYWRzaGVldCA9ICh0ZXh0KSA9PiB7XFxuICAgIC8vIENvcHkvcGFzdGUgZnJvbSBleGNlbCwgc3ByZWFkaHNlZXRzLCB0c3YsIGNzdi5cXG4gICAgLy8gRm9yIG5vdyB3ZSBvbmx5IGFjY2VwdCAyIGNvbHVtbnMgd2l0aCBhbiBvcHRpb25hbCBoZWFkZXJcXG4gICAgLy8gQ2hlY2sgZm9yIHRhYiBzZXBhcmF0ZWQgdmFsdWVzXFxuICAgIGxldCBsaW5lcyA9IHRleHRcXG4gICAgICAgIC50cmltKClcXG4gICAgICAgIC5zcGxpdChcXFwiXFxcXG5cXFwiKVxcbiAgICAgICAgLm1hcCgobGluZSkgPT4gbGluZS50cmltKCkuc3BsaXQoXFxcIlxcXFx0XFxcIikpO1xcbiAgICAvLyBDaGVjayBmb3IgY29tbWEgc2VwYXJhdGVkIGZpbGVzXFxuICAgIGlmIChsaW5lcy5sZW5ndGggJiYgbGluZXNbMF0ubGVuZ3RoICE9PSAyKSB7XFxuICAgICAgICBsaW5lcyA9IHRleHRcXG4gICAgICAgICAgICAudHJpbSgpXFxuICAgICAgICAgICAgLnNwbGl0KFxcXCJcXFxcblxcXCIpXFxuICAgICAgICAgICAgLm1hcCgobGluZSkgPT4gbGluZS50cmltKCkuc3BsaXQoXFxcIixcXFwiKSk7XFxuICAgIH1cXG4gICAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMCkge1xcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogTk9UX1NQUkVBRFNIRUVULCByZWFzb246IFxcXCJObyB2YWx1ZXNcXFwiIH07XFxuICAgIH1cXG4gICAgY29uc3QgbnVtQ29sc0ZpcnN0TGluZSA9IGxpbmVzWzBdLmxlbmd0aDtcXG4gICAgY29uc3QgaXNTcHJlYWRzaGVldCA9IGxpbmVzLmV2ZXJ5KChsaW5lKSA9PiBsaW5lLmxlbmd0aCA9PT0gbnVtQ29sc0ZpcnN0TGluZSk7XFxuICAgIGlmICghaXNTcHJlYWRzaGVldCkge1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICB0eXBlOiBOT1RfU1BSRUFEU0hFRVQsXFxuICAgICAgICAgICAgcmVhc29uOiBcXFwiQWxsIHJvd3MgZG9uJ3QgaGF2ZSBzYW1lIG51bWJlciBvZiBjb2x1bW5zXFxcIixcXG4gICAgICAgIH07XFxuICAgIH1cXG4gICAgY29uc3QgcmVzdWx0ID0gdHJ5UGFyc2VDZWxscyhsaW5lcyk7XFxuICAgIGlmIChyZXN1bHQudHlwZSAhPT0gVkFMSURfU1BSRUFEU0hFRVQpIHtcXG4gICAgICAgIGNvbnN0IHRyYW5zcG9zZWRSZXN1bHRzID0gdHJ5UGFyc2VDZWxscyh0cmFuc3Bvc2VDZWxscyhsaW5lcykpO1xcbiAgICAgICAgaWYgKHRyYW5zcG9zZWRSZXN1bHRzLnR5cGUgPT09IFZBTElEX1NQUkVBRFNIRUVUKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zcG9zZWRSZXN1bHRzO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiByZXN1bHQ7XFxufTtcXG5jb25zdCBiZ0NvbG9ycyA9IF9jb2xvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1tcXFwiZGVmYXVsdFxcXCJdLmVsZW1lbnRCYWNrZ3JvdW5kLnNsaWNlKDIsIF9jb2xvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1tcXFwiZGVmYXVsdFxcXCJdLmVsZW1lbnRCYWNrZ3JvdW5kLmxlbmd0aCk7XFxuLy8gUHV0IGFsbCB0aGUgY29tbW9uIHByb3BlcnRpZXMgaGVyZSBzbyB3aGVuIHRoZSB3aG9sZSBjaGFydCBpcyBzZWxlY3RlZFxcbi8vIHRoZSBwcm9wZXJ0aWVzIGRpYWxvZyBzaG93cyB0aGUgY29ycmVjdCBzZWxlY3RlZCB2YWx1ZXNcXG5jb25zdCBjb21tb25Qcm9wcyA9IHtcXG4gICAgZmlsbFN0eWxlOiBcXFwiaGFjaHVyZVxcXCIsXFxuICAgIGZvbnRGYW1pbHk6IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5ERUZBVUxUX0ZPTlRfRkFNSUxZLFxcbiAgICBmb250U2l6ZTogX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkRFRkFVTFRfRk9OVF9TSVpFLFxcbiAgICBvcGFjaXR5OiAxMDAsXFxuICAgIHJvdWdobmVzczogMSxcXG4gICAgc3Ryb2tlQ29sb3I6IF9jb2xvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1tcXFwiZGVmYXVsdFxcXCJdLmVsZW1lbnRTdHJva2VbMF0sXFxuICAgIHN0cm9rZVNoYXJwbmVzczogXFxcInNoYXJwXFxcIixcXG4gICAgc3Ryb2tlU3R5bGU6IFxcXCJzb2xpZFxcXCIsXFxuICAgIHN0cm9rZVdpZHRoOiAxLFxcbiAgICB2ZXJ0aWNhbEFsaWduOiBcXFwibWlkZGxlXFxcIixcXG59O1xcbmNvbnN0IGdldENoYXJ0RGltZW50aW9ucyA9IChzcHJlYWRzaGVldCkgPT4ge1xcbiAgICBjb25zdCBjaGFydFdpZHRoID0gKEJBUl9XSURUSCArIEJBUl9HQVApICogc3ByZWFkc2hlZXQudmFsdWVzLmxlbmd0aCArIEJBUl9HQVA7XFxuICAgIGNvbnN0IGNoYXJ0SGVpZ2h0ID0gQkFSX0hFSUdIVCArIEJBUl9HQVAgKiAyO1xcbiAgICByZXR1cm4geyBjaGFydFdpZHRoLCBjaGFydEhlaWdodCB9O1xcbn07XFxuY29uc3QgY2hhcnRYTGFiZWxzID0gKHNwcmVhZHNoZWV0LCB4LCB5LCBncm91cElkLCBiYWNrZ3JvdW5kQ29sb3IpID0+IHtcXG4gICAgdmFyIF9hO1xcbiAgICByZXR1cm4gKCgoX2EgPSBzcHJlYWRzaGVldC5sYWJlbHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5tYXAoKGxhYmVsLCBpbmRleCkgPT4ge1xcbiAgICAgICAgcmV0dXJuICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ubmV3VGV4dEVsZW1lbnQpKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IGdyb3VwSWRzOiBbZ3JvdXBJZF0sIGJhY2tncm91bmRDb2xvciB9LCBjb21tb25Qcm9wcyksIHsgdGV4dDogbGFiZWwubGVuZ3RoID4gOCA/IGAke2xhYmVsLnNsaWNlKDAsIDUpfS4uLmAgOiBsYWJlbCwgeDogeCArIGluZGV4ICogKEJBUl9XSURUSCArIEJBUl9HQVApICsgQkFSX0dBUCAqIDIsIHk6IHkgKyBCQVJfR0FQIC8gMiwgd2lkdGg6IEJBUl9XSURUSCwgYW5nbGU6IDUuODcsIGZvbnRTaXplOiAxNiwgdGV4dEFsaWduOiBcXFwiY2VudGVyXFxcIiwgdmVydGljYWxBbGlnbjogXFxcInRvcFxcXCIgfSkpO1xcbiAgICB9KSkgfHwgW10pO1xcbn07XFxuY29uc3QgY2hhcnRZTGFiZWxzID0gKHNwcmVhZHNoZWV0LCB4LCB5LCBncm91cElkLCBiYWNrZ3JvdW5kQ29sb3IpID0+IHtcXG4gICAgY29uc3QgbWluWUxhYmVsID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5uZXdUZXh0RWxlbWVudCkoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsgZ3JvdXBJZHM6IFtncm91cElkXSwgYmFja2dyb3VuZENvbG9yIH0sIGNvbW1vblByb3BzKSwgeyB4OiB4IC0gQkFSX0dBUCwgeTogeSAtIEJBUl9HQVAsIHRleHQ6IFxcXCIwXFxcIiwgdGV4dEFsaWduOiBcXFwicmlnaHRcXFwiIH0pKTtcXG4gICAgY29uc3QgbWF4WUxhYmVsID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5uZXdUZXh0RWxlbWVudCkoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsgZ3JvdXBJZHM6IFtncm91cElkXSwgYmFja2dyb3VuZENvbG9yIH0sIGNvbW1vblByb3BzKSwgeyB4OiB4IC0gQkFSX0dBUCwgeTogeSAtIEJBUl9IRUlHSFQgLSBtaW5ZTGFiZWwuaGVpZ2h0IC8gMiwgdGV4dDogTWF0aC5tYXgoLi4uc3ByZWFkc2hlZXQudmFsdWVzKS50b0xvY2FsZVN0cmluZygpLCB0ZXh0QWxpZ246IFxcXCJyaWdodFxcXCIgfSkpO1xcbiAgICByZXR1cm4gW21pbllMYWJlbCwgbWF4WUxhYmVsXTtcXG59O1xcbmNvbnN0IGNoYXJ0TGluZXMgPSAoc3ByZWFkc2hlZXQsIHgsIHksIGdyb3VwSWQsIGJhY2tncm91bmRDb2xvcikgPT4ge1xcbiAgICBjb25zdCB7IGNoYXJ0V2lkdGgsIGNoYXJ0SGVpZ2h0IH0gPSBnZXRDaGFydERpbWVudGlvbnMoc3ByZWFkc2hlZXQpO1xcbiAgICBjb25zdCB4TGluZSA9ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ubmV3TGluZWFyRWxlbWVudCkoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsgYmFja2dyb3VuZENvbG9yLCBncm91cElkczogW2dyb3VwSWRdIH0sIGNvbW1vblByb3BzKSwgeyB0eXBlOiBcXFwibGluZVxcXCIsIHgsXFxuICAgICAgICB5LCBzdGFydEFycm93aGVhZDogbnVsbCwgZW5kQXJyb3doZWFkOiBudWxsLCB3aWR0aDogY2hhcnRXaWR0aCwgcG9pbnRzOiBbXFxuICAgICAgICAgICAgWzAsIDBdLFxcbiAgICAgICAgICAgIFtjaGFydFdpZHRoLCAwXSxcXG4gICAgICAgIF0gfSkpO1xcbiAgICBjb25zdCB5TGluZSA9ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ubmV3TGluZWFyRWxlbWVudCkoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsgYmFja2dyb3VuZENvbG9yLCBncm91cElkczogW2dyb3VwSWRdIH0sIGNvbW1vblByb3BzKSwgeyB0eXBlOiBcXFwibGluZVxcXCIsIHgsXFxuICAgICAgICB5LCBzdGFydEFycm93aGVhZDogbnVsbCwgZW5kQXJyb3doZWFkOiBudWxsLCBoZWlnaHQ6IGNoYXJ0SGVpZ2h0LCBwb2ludHM6IFtcXG4gICAgICAgICAgICBbMCwgMF0sXFxuICAgICAgICAgICAgWzAsIC1jaGFydEhlaWdodF0sXFxuICAgICAgICBdIH0pKTtcXG4gICAgY29uc3QgbWF4TGluZSA9ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ubmV3TGluZWFyRWxlbWVudCkoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsgYmFja2dyb3VuZENvbG9yLCBncm91cElkczogW2dyb3VwSWRdIH0sIGNvbW1vblByb3BzKSwgeyB0eXBlOiBcXFwibGluZVxcXCIsIHgsIHk6IHkgLSBCQVJfSEVJR0hUIC0gQkFSX0dBUCwgc3RhcnRBcnJvd2hlYWQ6IG51bGwsIGVuZEFycm93aGVhZDogbnVsbCwgc3Ryb2tlU3R5bGU6IFxcXCJkb3R0ZWRcXFwiLCB3aWR0aDogY2hhcnRXaWR0aCwgb3BhY2l0eTogR1JJRF9PUEFDSVRZLCBwb2ludHM6IFtcXG4gICAgICAgICAgICBbMCwgMF0sXFxuICAgICAgICAgICAgW2NoYXJ0V2lkdGgsIDBdLFxcbiAgICAgICAgXSB9KSk7XFxuICAgIHJldHVybiBbeExpbmUsIHlMaW5lLCBtYXhMaW5lXTtcXG59O1xcbi8vIEZvciB0aGUgbWF0aHMgYmVoaW5kIGl0IGh0dHBzOi8vZXhjYWxpZHJhdy5jb20vI2pzb249NjMyMDg2NDM3MDg4NDYwOCxPXzV4ZkQtQWdoMzJ0eXRIcFJKeDFnXFxuY29uc3QgY2hhcnRCYXNlRWxlbWVudHMgPSAoc3ByZWFkc2hlZXQsIHgsIHksIGdyb3VwSWQsIGJhY2tncm91bmRDb2xvciwgZGVidWcpID0+IHtcXG4gICAgY29uc3QgeyBjaGFydFdpZHRoLCBjaGFydEhlaWdodCB9ID0gZ2V0Q2hhcnREaW1lbnRpb25zKHNwcmVhZHNoZWV0KTtcXG4gICAgY29uc3QgdGl0bGUgPSBzcHJlYWRzaGVldC50aXRsZVxcbiAgICAgICAgPyAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLm5ld1RleHRFbGVtZW50KShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oeyBiYWNrZ3JvdW5kQ29sb3IsIGdyb3VwSWRzOiBbZ3JvdXBJZF0gfSwgY29tbW9uUHJvcHMpLCB7IHRleHQ6IHNwcmVhZHNoZWV0LnRpdGxlLCB4OiB4ICsgY2hhcnRXaWR0aCAvIDIsIHk6IHkgLSBCQVJfSEVJR0hUIC0gQkFSX0dBUCAqIDIgLSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uREVGQVVMVF9GT05UX1NJWkUsIHN0cm9rZVNoYXJwbmVzczogXFxcInNoYXJwXFxcIiwgc3Ryb2tlU3R5bGU6IFxcXCJzb2xpZFxcXCIsIHRleHRBbGlnbjogXFxcImNlbnRlclxcXCIgfSkpXFxuICAgICAgICA6IG51bGw7XFxuICAgIGNvbnN0IGRlYnVnUmVjdCA9IGRlYnVnXFxuICAgICAgICA/ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ubmV3RWxlbWVudCkoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsgYmFja2dyb3VuZENvbG9yLCBncm91cElkczogW2dyb3VwSWRdIH0sIGNvbW1vblByb3BzKSwgeyB0eXBlOiBcXFwicmVjdGFuZ2xlXFxcIiwgeCwgeTogeSAtIGNoYXJ0SGVpZ2h0LCB3aWR0aDogY2hhcnRXaWR0aCwgaGVpZ2h0OiBjaGFydEhlaWdodCwgc3Ryb2tlQ29sb3I6IF9jb2xvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1tcXFwiZGVmYXVsdFxcXCJdLmVsZW1lbnRTdHJva2VbMF0sIGZpbGxTdHlsZTogXFxcInNvbGlkXFxcIiwgb3BhY2l0eTogNiB9KSlcXG4gICAgICAgIDogbnVsbDtcXG4gICAgcmV0dXJuIFtcXG4gICAgICAgIC4uLihkZWJ1Z1JlY3QgPyBbZGVidWdSZWN0XSA6IFtdKSxcXG4gICAgICAgIC4uLih0aXRsZSA/IFt0aXRsZV0gOiBbXSksXFxuICAgICAgICAuLi5jaGFydFhMYWJlbHMoc3ByZWFkc2hlZXQsIHgsIHksIGdyb3VwSWQsIGJhY2tncm91bmRDb2xvciksXFxuICAgICAgICAuLi5jaGFydFlMYWJlbHMoc3ByZWFkc2hlZXQsIHgsIHksIGdyb3VwSWQsIGJhY2tncm91bmRDb2xvciksXFxuICAgICAgICAuLi5jaGFydExpbmVzKHNwcmVhZHNoZWV0LCB4LCB5LCBncm91cElkLCBiYWNrZ3JvdW5kQ29sb3IpLFxcbiAgICBdO1xcbn07XFxuY29uc3QgY2hhcnRUeXBlQmFyID0gKHNwcmVhZHNoZWV0LCB4LCB5KSA9PiB7XFxuICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KC4uLnNwcmVhZHNoZWV0LnZhbHVlcyk7XFxuICAgIGNvbnN0IGdyb3VwSWQgPSAoMCxfcmFuZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ucmFuZG9tSWQpKCk7XFxuICAgIGNvbnN0IGJhY2tncm91bmRDb2xvciA9IGJnQ29sb3JzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGJnQ29sb3JzLmxlbmd0aCldO1xcbiAgICBjb25zdCBiYXJzID0gc3ByZWFkc2hlZXQudmFsdWVzLm1hcCgodmFsdWUsIGluZGV4KSA9PiB7XFxuICAgICAgICBjb25zdCBiYXJIZWlnaHQgPSAodmFsdWUgLyBtYXgpICogQkFSX0hFSUdIVDtcXG4gICAgICAgIHJldHVybiAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLm5ld0VsZW1lbnQpKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IGJhY2tncm91bmRDb2xvciwgZ3JvdXBJZHM6IFtncm91cElkXSB9LCBjb21tb25Qcm9wcyksIHsgdHlwZTogXFxcInJlY3RhbmdsZVxcXCIsIHg6IHggKyBpbmRleCAqIChCQVJfV0lEVEggKyBCQVJfR0FQKSArIEJBUl9HQVAsIHk6IHkgLSBiYXJIZWlnaHQgLSBCQVJfR0FQLCB3aWR0aDogQkFSX1dJRFRILCBoZWlnaHQ6IGJhckhlaWdodCB9KSk7XFxuICAgIH0pO1xcbiAgICByZXR1cm4gW1xcbiAgICAgICAgLi4uYmFycyxcXG4gICAgICAgIC4uLmNoYXJ0QmFzZUVsZW1lbnRzKHNwcmVhZHNoZWV0LCB4LCB5LCBncm91cElkLCBiYWNrZ3JvdW5kQ29sb3IsIFxcXCJkZXZlbG9wbWVudFxcXCIgPT09IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5FTlYuREVWRUxPUE1FTlQpLFxcbiAgICBdO1xcbn07XFxuY29uc3QgY2hhcnRUeXBlTGluZSA9IChzcHJlYWRzaGVldCwgeCwgeSkgPT4ge1xcbiAgICBjb25zdCBtYXggPSBNYXRoLm1heCguLi5zcHJlYWRzaGVldC52YWx1ZXMpO1xcbiAgICBjb25zdCBncm91cElkID0gKDAsX3JhbmRvbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnJhbmRvbUlkKSgpO1xcbiAgICBjb25zdCBiYWNrZ3JvdW5kQ29sb3IgPSBiZ0NvbG9yc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBiZ0NvbG9ycy5sZW5ndGgpXTtcXG4gICAgbGV0IGluZGV4ID0gMDtcXG4gICAgY29uc3QgcG9pbnRzID0gW107XFxuICAgIGZvciAoY29uc3QgdmFsdWUgb2Ygc3ByZWFkc2hlZXQudmFsdWVzKSB7XFxuICAgICAgICBjb25zdCBjeCA9IGluZGV4ICogKEJBUl9XSURUSCArIEJBUl9HQVApO1xcbiAgICAgICAgY29uc3QgY3kgPSAtKHZhbHVlIC8gbWF4KSAqIEJBUl9IRUlHSFQ7XFxuICAgICAgICBwb2ludHMucHVzaChbY3gsIGN5XSk7XFxuICAgICAgICBpbmRleCsrO1xcbiAgICB9XFxuICAgIGNvbnN0IG1heFggPSBNYXRoLm1heCguLi5wb2ludHMubWFwKChlbGVtZW50KSA9PiBlbGVtZW50WzBdKSk7XFxuICAgIGNvbnN0IG1heFkgPSBNYXRoLm1heCguLi5wb2ludHMubWFwKChlbGVtZW50KSA9PiBlbGVtZW50WzFdKSk7XFxuICAgIGNvbnN0IG1pblggPSBNYXRoLm1pbiguLi5wb2ludHMubWFwKChlbGVtZW50KSA9PiBlbGVtZW50WzBdKSk7XFxuICAgIGNvbnN0IG1pblkgPSBNYXRoLm1pbiguLi5wb2ludHMubWFwKChlbGVtZW50KSA9PiBlbGVtZW50WzFdKSk7XFxuICAgIGNvbnN0IGxpbmUgPSAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLm5ld0xpbmVhckVsZW1lbnQpKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IGJhY2tncm91bmRDb2xvciwgZ3JvdXBJZHM6IFtncm91cElkXSB9LCBjb21tb25Qcm9wcyksIHsgdHlwZTogXFxcImxpbmVcXFwiLCB4OiB4ICsgQkFSX0dBUCArIEJBUl9XSURUSCAvIDIsIHk6IHkgLSBCQVJfR0FQLCBzdGFydEFycm93aGVhZDogbnVsbCwgZW5kQXJyb3doZWFkOiBudWxsLCBoZWlnaHQ6IG1heFkgLSBtaW5ZLCB3aWR0aDogbWF4WCAtIG1pblgsIHN0cm9rZVdpZHRoOiAyLCBwb2ludHM6IHBvaW50cyB9KSk7XFxuICAgIGNvbnN0IGRvdHMgPSBzcHJlYWRzaGVldC52YWx1ZXMubWFwKCh2YWx1ZSwgaW5kZXgpID0+IHtcXG4gICAgICAgIGNvbnN0IGN4ID0gaW5kZXggKiAoQkFSX1dJRFRIICsgQkFSX0dBUCkgKyBCQVJfR0FQIC8gMjtcXG4gICAgICAgIGNvbnN0IGN5ID0gLSh2YWx1ZSAvIG1heCkgKiBCQVJfSEVJR0hUICsgQkFSX0dBUCAvIDI7XFxuICAgICAgICByZXR1cm4gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5uZXdFbGVtZW50KShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oeyBiYWNrZ3JvdW5kQ29sb3IsIGdyb3VwSWRzOiBbZ3JvdXBJZF0gfSwgY29tbW9uUHJvcHMpLCB7IGZpbGxTdHlsZTogXFxcInNvbGlkXFxcIiwgc3Ryb2tlV2lkdGg6IDIsIHR5cGU6IFxcXCJlbGxpcHNlXFxcIiwgeDogeCArIGN4ICsgQkFSX1dJRFRIIC8gMiwgeTogeSArIGN5IC0gQkFSX0dBUCAqIDIsIHdpZHRoOiBCQVJfR0FQLCBoZWlnaHQ6IEJBUl9HQVAgfSkpO1xcbiAgICB9KTtcXG4gICAgY29uc3QgbGluZXMgPSBzcHJlYWRzaGVldC52YWx1ZXMubWFwKCh2YWx1ZSwgaW5kZXgpID0+IHtcXG4gICAgICAgIGNvbnN0IGN4ID0gaW5kZXggKiAoQkFSX1dJRFRIICsgQkFSX0dBUCkgKyBCQVJfR0FQIC8gMjtcXG4gICAgICAgIGNvbnN0IGN5ID0gKHZhbHVlIC8gbWF4KSAqIEJBUl9IRUlHSFQgKyBCQVJfR0FQIC8gMiArIEJBUl9HQVA7XFxuICAgICAgICByZXR1cm4gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5uZXdMaW5lYXJFbGVtZW50KShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oeyBiYWNrZ3JvdW5kQ29sb3IsIGdyb3VwSWRzOiBbZ3JvdXBJZF0gfSwgY29tbW9uUHJvcHMpLCB7IHR5cGU6IFxcXCJsaW5lXFxcIiwgeDogeCArIGN4ICsgQkFSX1dJRFRIIC8gMiArIEJBUl9HQVAgLyAyLCB5OiB5IC0gY3ksIHN0YXJ0QXJyb3doZWFkOiBudWxsLCBlbmRBcnJvd2hlYWQ6IG51bGwsIGhlaWdodDogY3ksIHN0cm9rZVN0eWxlOiBcXFwiZG90dGVkXFxcIiwgb3BhY2l0eTogR1JJRF9PUEFDSVRZLCBwb2ludHM6IFtcXG4gICAgICAgICAgICAgICAgWzAsIDBdLFxcbiAgICAgICAgICAgICAgICBbMCwgY3ldLFxcbiAgICAgICAgICAgIF0gfSkpO1xcbiAgICB9KTtcXG4gICAgcmV0dXJuIFtcXG4gICAgICAgIC4uLmNoYXJ0QmFzZUVsZW1lbnRzKHNwcmVhZHNoZWV0LCB4LCB5LCBncm91cElkLCBiYWNrZ3JvdW5kQ29sb3IsIFxcXCJkZXZlbG9wbWVudFxcXCIgPT09IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5FTlYuREVWRUxPUE1FTlQpLFxcbiAgICAgICAgbGluZSxcXG4gICAgICAgIC4uLmxpbmVzLFxcbiAgICAgICAgLi4uZG90cyxcXG4gICAgXTtcXG59O1xcbmNvbnN0IHJlbmRlclNwcmVhZHNoZWV0ID0gKGNoYXJ0VHlwZSwgc3ByZWFkc2hlZXQsIHgsIHkpID0+IHtcXG4gICAgaWYgKGNoYXJ0VHlwZSA9PT0gXFxcImxpbmVcXFwiKSB7XFxuICAgICAgICByZXR1cm4gY2hhcnRUeXBlTGluZShzcHJlYWRzaGVldCwgeCwgeSk7XFxuICAgIH1cXG4gICAgcmV0dXJuIGNoYXJ0VHlwZUJhcihzcHJlYWRzaGVldCwgeCwgeSk7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyaGhjblJ6TG5SekxtcHpJaXdpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN08wRkJRVGhDTzBGQlF6UkRPMEZCUTBRN1FVRkZja003UVVGSmNFTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1JVRkJSU3hEUVVGRE8wRkJRM0pDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRVZCUVVVc1EwRkJRenRCUVVOdVFpeE5RVUZOTEZWQlFWVXNSMEZCUnl4SFFVRkhMRU5CUVVNN1FVRkRka0lzVFVGQlRTeFpRVUZaTEVkQlFVY3NSVUZCUlN4RFFVRkRPMEZCVVdwQ0xFMUJRVTBzWlVGQlpTeEhRVUZITEdsQ1FVRnBRaXhEUVVGRE8wRkJRekZETEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzYlVKQlFXMUNMRU5CUVVNN1FVRk5ja1FzVFVGQlRTeGpRVUZqTEVkQlFVY3NRMEZCUXl4RFFVRlRMRVZCUVdsQ0xFVkJRVVU3U1VGRGJFUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1owTkJRV2RETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM1pFTEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVN1VVRkRWaXhQUVVGUExFbEJRVWtzUTBGQlF6dExRVU5pTzBsQlEwUXNUMEZCVHl4VlFVRlZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5vUkN4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxHVkJRV1VzUjBGQlJ5eERRVUZETEV0QlFXbENMRVZCUVVVc1YwRkJiVUlzUlVGQlJTeEZRVUZGTEVOQlEycEZMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFdEJRVXNzU1VGQlNTeERRVUZETEVOQlFVTTdRVUZGTjBVc1RVRkJUU3hoUVVGaExFZEJRVWNzUTBGQlF5eExRVUZwUWl4RlFVRXdRaXhGUVVGRk8wbEJRMnhGTEUxQlFVMHNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZGYUVNc1NVRkJTU3hQUVVGUExFZEJRVWNzUTBGQlF5eEZRVUZGTzFGQlEyWXNUMEZCVHl4RlFVRkZMRWxCUVVrc1JVRkJSU3hsUVVGbExFVkJRVVVzVFVGQlRTeEZRVUZGTEhGQ1FVRnhRaXhGUVVGRkxFTkJRVU03UzBGRGFrVTdTVUZGUkN4SlFVRkpMRTlCUVU4c1MwRkJTeXhEUVVGRExFVkJRVVU3VVVGRGFrSXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVTdXVUZET1VJc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeGxRVUZsTEVWQlFVVXNUVUZCVFN4RlFVRkZMSE5DUVVGelFpeEZRVUZGTEVOQlFVTTdVMEZEYkVVN1VVRkZSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eGpRVUZqTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NTVUZCU1N4RFFVRkRPMUZCUTNaRUxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVNdlJDeGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRM2hDTEVOQlFVTTdVVUZGUml4SlFVRkpMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzFsQlEzSkNMRTlCUVU4c1JVRkJSU3hKUVVGSkxFVkJRVVVzWlVGQlpTeEZRVUZGTEUxQlFVMHNSVUZCUlN4dlFrRkJiMElzUlVGQlJTeERRVUZETzFOQlEyaEZPMUZCUlVRc1QwRkJUenRaUVVOTUxFbEJRVWtzUlVGQlJTeHBRa0ZCYVVJN1dVRkRka0lzVjBGQlZ5eEZRVUZGTzJkQ1FVTllMRXRCUVVzc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1R0blFrRkRja01zVFVGQlRTeEZRVUZGTEVsQlFVazdaMEpCUTFvc1RVRkJUU3hGUVVGRkxFMUJRV3RDTzJGQlF6TkNPMU5CUTBZc1EwRkJRenRMUVVOSU8wbEJSVVFzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhsUVVGbExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVXpSQ3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEV0QlFVc3NSVUZCUlN4blFrRkJaMElzUTBGQlF5eEZRVUZGTzFGQlF6ZERMRTlCUVU4c1JVRkJSU3hKUVVGSkxFVkJRVVVzWlVGQlpTeEZRVUZGTEUxQlFVMHNSVUZCUlN4elFrRkJjMElzUlVGQlJTeERRVUZETzB0QlEyeEZPMGxCUlVRc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RFFVRkRMR2RDUVVGblFpeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVOd1JDeE5RVUZOTEZOQlFWTXNSMEZCUnl4alFVRmpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUzBGQlN5eEpRVUZKTEVOQlFVTTdTVUZEZEVVc1RVRkJUU3hKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1NVRkZhRVFzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1JVRkJSVHRSUVVOdVFpeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMR1ZCUVdVc1JVRkJSU3hOUVVGTkxFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1EwRkJRenRMUVVNNVJEdEpRVVZFTEU5QlFVODdVVUZEVEN4SlFVRkpMRVZCUVVVc2FVSkJRV2xDTzFGQlEzWkNMRmRCUVZjc1JVRkJSVHRaUVVOWUxFdEJRVXNzUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTzFsQlEzQkVMRTFCUVUwc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJRenRaUVVOb1JDeE5RVUZOTEVWQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWRCUVVjc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkZMRU5CUVVNN1UwRkRiRVU3UzBGRFJpeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRPMEZCUlVZc1RVRkJUU3hqUVVGakxFZEJRVWNzUTBGQlF5eExRVUZwUWl4RlFVRkZMRVZCUVVVN1NVRkRNME1zVFVGQlRTeFRRVUZUTEVkQlFXVXNSVUZCUlN4RFFVRkRPMGxCUTJwRExFdEJRVXNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRemxETEUxQlFVMHNWMEZCVnl4SFFVRmhMRVZCUVVVc1EwRkJRenRSUVVOcVF5eExRVUZMTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFZEJRVWNzUzBGQlN5eERRVUZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRaUVVNelF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUTI1RE8xRkJRMFFzVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRMUVVNM1FqdEpRVU5FTEU5QlFVOHNVMEZCVXl4RFFVRkRPMEZCUTI1Q0xFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNiVUpCUVcxQ0xFZEJRVWNzUTBGQlF5eEpRVUZaTEVWQlFUQkNMRVZCUVVVN1NVRkRNVVVzYVVSQlFXbEVPMGxCUTJwRUxESkVRVUV5UkR0SlFVVXpSQ3hwUTBGQmFVTTdTVUZEYWtNc1NVRkJTU3hMUVVGTExFZEJRVWNzU1VGQlNUdFRRVU5pTEVsQlFVa3NSVUZCUlR0VFFVTk9MRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU03VTBGRFdDeEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVV4UXl4clEwRkJhME03U1VGRGJFTXNTVUZCU1N4TFFVRkxMRU5CUVVNc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhGUVVGRk8xRkJRM3BETEV0QlFVc3NSMEZCUnl4SlFVRkpPMkZCUTFRc1NVRkJTU3hGUVVGRk8yRkJRMDRzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXp0aFFVTllMRWRCUVVjc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMHRCUXpGRE8wbEJSVVFzU1VGQlNTeExRVUZMTEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNc1JVRkJSVHRSUVVOMFFpeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMR1ZCUVdVc1JVRkJSU3hOUVVGTkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEVOQlFVTTdTMEZEZGtRN1NVRkZSQ3hOUVVGTkxHZENRVUZuUWl4SFFVRkhMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEZWtNc1RVRkJUU3hoUVVGaExFZEJRVWNzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNTMEZCU3l4blFrRkJaMElzUTBGQlF5eERRVUZETzBsQlJUbEZMRWxCUVVrc1EwRkJReXhoUVVGaExFVkJRVVU3VVVGRGJFSXNUMEZCVHp0WlFVTk1MRWxCUVVrc1JVRkJSU3hsUVVGbE8xbEJRM0pDTEUxQlFVMHNSVUZCUlN3MFEwRkJORU03VTBGRGNrUXNRMEZCUXp0TFFVTklPMGxCUlVRc1RVRkJUU3hOUVVGTkxFZEJRVWNzWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUTNCRExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NTMEZCU3l4cFFrRkJhVUlzUlVGQlJUdFJRVU55UXl4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEdGQlFXRXNRMEZCUXl4alFVRmpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU12UkN4SlFVRkpMR2xDUVVGcFFpeERRVUZETEVsQlFVa3NTMEZCU3l4cFFrRkJhVUlzUlVGQlJUdFpRVU5vUkN4UFFVRlBMR2xDUVVGcFFpeERRVUZETzFOQlF6RkNPMHRCUTBZN1NVRkRSQ3hQUVVGUExFMUJRVTBzUTBGQlF6dEJRVU5vUWl4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eDFSVUZCT0VJc1EwRkROME1zUTBGQlF5eEZRVU5FTEhkRlFVRXJRaXhEUVVOb1F5eERRVUZETzBGQlJVWXNlVVZCUVhsRk8wRkJRM3BGTERCRVFVRXdSRHRCUVVNeFJDeE5RVUZOTEZkQlFWY3NSMEZCUnp0SlFVTnNRaXhUUVVGVExFVkJRVVVzVTBGQlV6dEpRVU53UWl4VlFVRlZMRVZCUVVVc01rUkJRVzFDTzBsQlF5OUNMRkZCUVZFc1JVRkJSU3g1UkVGQmFVSTdTVUZETTBJc1QwRkJUeXhGUVVGRkxFZEJRVWM3U1VGRFdpeFRRVUZUTEVWQlFVVXNRMEZCUXp0SlFVTmFMRmRCUVZjc1JVRkJSU3huUlVGQmRVSTdTVUZEY0VNc1pVRkJaU3hGUVVGRkxFOUJRVTg3U1VGRGVFSXNWMEZCVnl4RlFVRkZMRTlCUVU4N1NVRkRjRUlzVjBGQlZ5eEZRVUZGTEVOQlFVTTdTVUZEWkN4aFFVRmhMRVZCUVVVc1VVRkJVVHREUVVObUxFTkJRVU03UVVGRldDeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExFTkJRVU1zVjBGQmQwSXNSVUZCUlN4RlFVRkZPMGxCUTNSRUxFMUJRVTBzVlVGQlZTeEhRVU5rTEVOQlFVTXNVMEZCVXl4SFFVRkhMRTlCUVU4c1EwRkJReXhIUVVGSExGZEJRVmNzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4SFFVRkhMRTlCUVU4c1EwRkJRenRKUVVNNVJDeE5RVUZOTEZkQlFWY3NSMEZCUnl4VlFVRlZMRWRCUVVjc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU0zUXl4UFFVRlBMRVZCUVVVc1ZVRkJWU3hGUVVGRkxGZEJRVmNzUlVGQlJTeERRVUZETzBGQlEzSkRMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzV1VGQldTeEhRVUZITEVOQlEyNUNMRmRCUVhkQ0xFVkJRM2hDTEVOQlFWTXNSVUZEVkN4RFFVRlRMRVZCUTFRc1QwRkJaU3hGUVVObUxHVkJRWFZDTEVWQlExSXNSVUZCUlRzN1NVRkRha0lzVDBGQlR5eERRVU5NTEd0Q1FVRlhMRU5CUVVNc1RVRkJUU3d3UTBGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVU3VVVGRGRrTXNUMEZCVHl4M1JFRkJZeXdyUWtGRGJrSXNVVUZCVVN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRMjVDTEdWQlFXVXNTVUZEV2l4WFFVRlhMRXRCUTJRc1NVRkJTU3hGUVVGRkxFdEJRVXNzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSVUZETVVRc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eExRVUZMTEVkQlFVY3NRMEZCUXl4VFFVRlRMRWRCUVVjc1QwRkJUeXhEUVVGRExFZEJRVWNzVDBGQlR5eEhRVUZITEVOQlFVTXNSVUZEYkVRc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFBRVUZQTEVkQlFVY3NRMEZCUXl4RlFVTnNRaXhMUVVGTExFVkJRVVVzVTBGQlV5eEZRVU5vUWl4TFFVRkxMRVZCUVVVc1NVRkJTU3hGUVVOWUxGRkJRVkVzUlVGQlJTeEZRVUZGTEVWQlExb3NVMEZCVXl4RlFVRkZMRkZCUVZFc1JVRkRia0lzWVVGQllTeEZRVUZGTEV0QlFVc3NTVUZEY0VJc1EwRkJRenRKUVVOTUxFTkJRVU1zUTBGQlF5eExRVUZKTEVWQlFVVXNRMEZEVkN4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRE8wRkJSVVlzVFVGQlRTeFpRVUZaTEVkQlFVY3NRMEZEYmtJc1YwRkJkMElzUlVGRGVFSXNRMEZCVXl4RlFVTlVMRU5CUVZNc1JVRkRWQ3hQUVVGbExFVkJRMllzWlVGQmRVSXNSVUZEVWl4RlFVRkZPMGxCUTJwQ0xFMUJRVTBzVTBGQlV5eEhRVUZITEhkRVFVRmpMQ3RDUVVNNVFpeFJRVUZSTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkRia0lzWlVGQlpTeEpRVU5hTEZkQlFWY3NTMEZEWkN4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFOUJRVThzUlVGRFpDeERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRTlCUVU4c1JVRkRaQ3hKUVVGSkxFVkJRVVVzUjBGQlJ5eEZRVU5VTEZOQlFWTXNSVUZCUlN4UFFVRlBMRWxCUTJ4Q0xFTkJRVU03U1VGRlNDeE5RVUZOTEZOQlFWTXNSMEZCUnl4M1JFRkJZeXdyUWtGRE9VSXNVVUZCVVN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRMjVDTEdWQlFXVXNTVUZEV2l4WFFVRlhMRXRCUTJRc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFBRVUZQTEVWQlEyUXNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhWUVVGVkxFZEJRVWNzVTBGQlV5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRVZCUTNoRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1YwRkJWeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEdOQlFXTXNSVUZCUlN4RlFVTjBSQ3hUUVVGVExFVkJRVVVzVDBGQlR5eEpRVU5zUWl4RFFVRkRPMGxCUlVnc1QwRkJUeXhEUVVGRExGTkJRVk1zUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXp0QlFVTm9ReXhEUVVGRExFTkJRVU03UVVGRlJpeE5RVUZOTEZWQlFWVXNSMEZCUnl4RFFVTnFRaXhYUVVGM1FpeEZRVU40UWl4RFFVRlRMRVZCUTFRc1EwRkJVeXhGUVVOVUxFOUJRV1VzUlVGRFppeGxRVUYxUWl4RlFVTlNMRVZCUVVVN1NVRkRha0lzVFVGQlRTeEZRVUZGTEZWQlFWVXNSVUZCUlN4WFFVRlhMRVZCUVVVc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRKUVVOd1JTeE5RVUZOTEV0QlFVc3NSMEZCUnl3d1JFRkJaMElzSzBKQlF6VkNMR1ZCUVdVc1JVRkRaaXhSUVVGUkxFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZEYUVJc1YwRkJWeXhMUVVOa0xFbEJRVWtzUlVGQlJTeE5RVUZOTEVWQlExb3NRMEZCUXp0UlFVTkVMRU5CUVVNc1JVRkRSQ3hqUVVGakxFVkJRVVVzU1VGQlNTeEZRVU53UWl4WlFVRlpMRVZCUVVVc1NVRkJTU3hGUVVOc1FpeExRVUZMTEVWQlFVVXNWVUZCVlN4RlFVTnFRaXhOUVVGTkxFVkJRVVU3V1VGRFRpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkRUaXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETEVOQlFVTTdVMEZEYUVJc1NVRkRSQ3hEUVVGRE8wbEJSVWdzVFVGQlRTeExRVUZMTEVkQlFVY3NNRVJCUVdkQ0xDdENRVU0xUWl4bFFVRmxMRVZCUTJZc1VVRkJVU3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlEyaENMRmRCUVZjc1MwRkRaQ3hKUVVGSkxFVkJRVVVzVFVGQlRTeEZRVU5hTEVOQlFVTTdVVUZEUkN4RFFVRkRMRVZCUTBRc1kwRkJZeXhGUVVGRkxFbEJRVWtzUlVGRGNFSXNXVUZCV1N4RlFVRkZMRWxCUVVrc1JVRkRiRUlzVFVGQlRTeEZRVUZGTEZkQlFWY3NSVUZEYmtJc1RVRkJUU3hGUVVGRk8xbEJRMDRzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMWxCUTA0c1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eFhRVUZYTEVOQlFVTTdVMEZEYkVJc1NVRkRSQ3hEUVVGRE8wbEJSVWdzVFVGQlRTeFBRVUZQTEVkQlFVY3NNRVJCUVdkQ0xDdENRVU01UWl4bFFVRmxMRVZCUTJZc1VVRkJVU3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlEyaENMRmRCUVZjc1MwRkRaQ3hKUVVGSkxFVkJRVVVzVFVGQlRTeEZRVU5hTEVOQlFVTXNSVUZEUkN4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExGVkJRVlVzUjBGQlJ5eFBRVUZQTEVWQlF6TkNMR05CUVdNc1JVRkJSU3hKUVVGSkxFVkJRM0JDTEZsQlFWa3NSVUZCUlN4SlFVRkpMRVZCUTJ4Q0xGZEJRVmNzUlVGQlJTeFJRVUZSTEVWQlEzSkNMRXRCUVVzc1JVRkJSU3hWUVVGVkxFVkJRMnBDTEU5QlFVOHNSVUZCUlN4WlFVRlpMRVZCUTNKQ0xFMUJRVTBzUlVGQlJUdFpRVU5PTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRaUVVOT0xFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTXNRMEZCUXp0VFFVTm9RaXhKUVVORUxFTkJRVU03U1VGRlNDeFBRVUZQTEVOQlFVTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU5xUXl4RFFVRkRMRU5CUVVNN1FVRkZSaXdyUmtGQkswWTdRVUZETDBZc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnl4RFFVTjRRaXhYUVVGM1FpeEZRVU40UWl4RFFVRlRMRVZCUTFRc1EwRkJVeXhGUVVOVUxFOUJRV1VzUlVGRFppeGxRVUYxUWl4RlFVTjJRaXhMUVVGbExFVkJRMEVzUlVGQlJUdEpRVU5xUWl4TlFVRk5MRVZCUVVVc1ZVRkJWU3hGUVVGRkxGZEJRVmNzUlVGQlJTeEhRVUZITEd0Q1FVRnJRaXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzBsQlJYQkZMRTFCUVUwc1MwRkJTeXhIUVVGSExGZEJRVmNzUTBGQlF5eExRVUZMTzFGQlF6ZENMRU5CUVVNc1EwRkJReXgzUkVGQll5d3JRa0ZEV2l4bFFVRmxMRVZCUTJZc1VVRkJVU3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlEyaENMRmRCUVZjc1MwRkRaQ3hKUVVGSkxFVkJRVVVzVjBGQlZ5eERRVUZETEV0QlFVc3NSVUZEZGtJc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFZRVUZWTEVkQlFVY3NRMEZCUXl4RlFVTnlRaXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEZWQlFWVXNSMEZCUnl4UFFVRlBMRWRCUVVjc1EwRkJReXhIUVVGSExIbEVRVUZwUWl4RlFVTnVSQ3hsUVVGbExFVkJRVVVzVDBGQlR5eEZRVU40UWl4WFFVRlhMRVZCUVVVc1QwRkJUeXhGUVVOd1FpeFRRVUZUTEVWQlFVVXNVVUZCVVN4SlFVTnVRanRSUVVOS0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdTVUZGVkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhMUVVGTE8xRkJRM0pDTEVOQlFVTXNRMEZCUXl4dlJFRkJWU3dyUWtGRFVpeGxRVUZsTEVWQlEyWXNVVUZCVVN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRMmhDTEZkQlFWY3NTMEZEWkN4SlFVRkpMRVZCUVVVc1YwRkJWeXhGUVVOcVFpeERRVUZETEVWQlEwUXNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhYUVVGWExFVkJRMnhDTEV0QlFVc3NSVUZCUlN4VlFVRlZMRVZCUTJwQ0xFMUJRVTBzUlVGQlJTeFhRVUZYTEVWQlEyNUNMRmRCUVZjc1JVRkJSU3huUlVGQmRVSXNSVUZEY0VNc1UwRkJVeXhGUVVGRkxFOUJRVThzUlVGRGJFSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1NVRkRWanRSUVVOS0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdTVUZGVkN4UFFVRlBPMUZCUTB3c1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETzFGQlEycERMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dFJRVU42UWl4SFFVRkhMRmxCUVZrc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4UFFVRlBMRVZCUVVVc1pVRkJaU3hEUVVGRE8xRkJRelZFTEVkQlFVY3NXVUZCV1N4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEU5QlFVOHNSVUZCUlN4bFFVRmxMRU5CUVVNN1VVRkROVVFzUjBGQlJ5eFZRVUZWTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzVDBGQlR5eEZRVUZGTEdWQlFXVXNRMEZCUXp0TFFVTXpSQ3hEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETzBGQlJVWXNUVUZCVFN4WlFVRlpMRWRCUVVjc1EwRkRia0lzVjBGQmQwSXNSVUZEZUVJc1EwRkJVeXhGUVVOVUxFTkJRVk1zUlVGRFRTeEZRVUZGTzBsQlEycENMRTFCUVUwc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRE5VTXNUVUZCVFN4UFFVRlBMRWRCUVVjc2FVUkJRVkVzUlVGQlJTeERRVUZETzBsQlF6TkNMRTFCUVUwc1pVRkJaU3hIUVVGSExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVVNVJTeE5RVUZOTEVsQlFVa3NSMEZCUnl4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSVHRSUVVOdVJDeE5RVUZOTEZOQlFWTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1IwRkJSeXhIUVVGSExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTTdVVUZETjBNc1QwRkJUeXh2UkVGQlZTd3JRa0ZEWml4bFFVRmxMRVZCUTJZc1VVRkJVU3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlEyaENMRmRCUVZjc1MwRkRaQ3hKUVVGSkxFVkJRVVVzVjBGQlZ5eEZRVU5xUWl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFdEJRVXNzUjBGQlJ5eERRVUZETEZOQlFWTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1IwRkJSeXhQUVVGUExFVkJRemxETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1UwRkJVeXhIUVVGSExFOUJRVThzUlVGRE1VSXNTMEZCU3l4RlFVRkZMRk5CUVZNc1JVRkRhRUlzVFVGQlRTeEZRVUZGTEZOQlFWTXNTVUZEYWtJc1EwRkJRenRKUVVOTUxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJVZ3NUMEZCVHp0UlFVTk1MRWRCUVVjc1NVRkJTVHRSUVVOUUxFZEJRVWNzYVVKQlFXbENMRU5CUTJ4Q0xGZEJRVmNzUlVGRFdDeERRVUZETEVWQlEwUXNRMEZCUXl4RlFVTkVMRTlCUVU4c1JVRkRVQ3hsUVVGbExFVkJRMllzWVVGQmIwSXNTMEZCU3l4MVJFRkJaU3hEUVVONlF6dExRVU5HTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxHRkJRV0VzUjBGQlJ5eERRVU53UWl4WFFVRjNRaXhGUVVONFFpeERRVUZUTEVWQlExUXNRMEZCVXl4RlFVTk5MRVZCUVVVN1NVRkRha0lzVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExGZEJRVmNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0SlFVTTFReXhOUVVGTkxFOUJRVThzUjBGQlJ5eHBSRUZCVVN4RlFVRkZMRU5CUVVNN1NVRkRNMElzVFVGQlRTeGxRVUZsTEVkQlFVY3NVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJUbEZMRWxCUVVrc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU5rTEUxQlFVMHNUVUZCVFN4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVOc1FpeExRVUZMTEUxQlFVMHNTMEZCU3l4SlFVRkpMRmRCUVZjc1EwRkJReXhOUVVGTkxFVkJRVVU3VVVGRGRFTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1MwRkJTeXhIUVVGSExFTkJRVU1zVTBGQlV5eEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNwRExFMUJRVTBzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRWRCUVVjc1IwRkJSeXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETzFGQlEzWkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOMFFpeExRVUZMTEVWQlFVVXNRMEZCUXp0TFFVTlVPMGxCUlVRc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZET1VRc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZET1VRc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZET1VRc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGT1VRc1RVRkJUU3hKUVVGSkxFZEJRVWNzTUVSQlFXZENMQ3RDUVVNelFpeGxRVUZsTEVWQlEyWXNVVUZCVVN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRMmhDTEZkQlFWY3NTMEZEWkN4SlFVRkpMRVZCUVVVc1RVRkJUU3hGUVVOYUxFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NUMEZCVHl4SFFVRkhMRk5CUVZNc1IwRkJSeXhEUVVGRExFVkJRemxDTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1QwRkJUeXhGUVVOa0xHTkJRV01zUlVGQlJTeEpRVUZKTEVWQlEzQkNMRmxCUVZrc1JVRkJSU3hKUVVGSkxFVkJRMnhDTEUxQlFVMHNSVUZCUlN4SlFVRkpMRWRCUVVjc1NVRkJTU3hGUVVOdVFpeExRVUZMTEVWQlFVVXNTVUZCU1N4SFFVRkhMRWxCUVVrc1JVRkRiRUlzVjBGQlZ5eEZRVUZGTEVOQlFVTXNSVUZEWkN4TlFVRk5MRVZCUVVVc1RVRkJZU3hKUVVOeVFpeERRVUZETzBsQlJVZ3NUVUZCVFN4SlFVRkpMRWRCUVVjc1YwRkJWeXhEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVU3VVVGRGJrUXNUVUZCVFN4RlFVRkZMRWRCUVVjc1MwRkJTeXhIUVVGSExFTkJRVU1zVTBGQlV5eEhRVUZITEU5QlFVOHNRMEZCUXl4SFFVRkhMRTlCUVU4c1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGRrUXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExFdEJRVXNzUjBGQlJ5eEhRVUZITEVOQlFVTXNSMEZCUnl4VlFVRlZMRWRCUVVjc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU55UkN4UFFVRlBMRzlFUVVGVkxDdENRVU5tTEdWQlFXVXNSVUZEWml4UlFVRlJMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGRGFFSXNWMEZCVnl4TFFVTmtMRk5CUVZNc1JVRkJSU3hQUVVGUExFVkJRMnhDTEZkQlFWY3NSVUZCUlN4RFFVRkRMRVZCUTJRc1NVRkJTU3hGUVVGRkxGTkJRVk1zUlVGRFppeERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhUUVVGVExFZEJRVWNzUTBGQlF5eEZRVU42UWl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eFBRVUZQTEVkQlFVY3NRMEZCUXl4RlFVTjJRaXhMUVVGTExFVkJRVVVzVDBGQlR5eEZRVU5rTEUxQlFVMHNSVUZCUlN4UFFVRlBMRWxCUTJZc1EwRkJRenRKUVVOTUxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJVZ3NUVUZCVFN4TFFVRkxMRWRCUVVjc1YwRkJWeXhEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVU3VVVGRGNFUXNUVUZCVFN4RlFVRkZMRWRCUVVjc1MwRkJTeXhIUVVGSExFTkJRVU1zVTBGQlV5eEhRVUZITEU5QlFVOHNRMEZCUXl4SFFVRkhMRTlCUVU4c1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGRrUXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhMUVVGTExFZEJRVWNzUjBGQlJ5eERRVUZETEVkQlFVY3NWVUZCVlN4SFFVRkhMRTlCUVU4c1IwRkJSeXhEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETzFGQlF6bEVMRTlCUVU4c01FUkJRV2RDTEN0Q1FVTnlRaXhsUVVGbExFVkJRMllzVVVGQlVTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUTJoQ0xGZEJRVmNzUzBGRFpDeEpRVUZKTEVWQlFVVXNUVUZCVFN4RlFVTmFMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEZOQlFWTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1QwRkJUeXhIUVVGSExFTkJRVU1zUlVGRGRrTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRMVFzWTBGQll5eEZRVUZGTEVsQlFVa3NSVUZEY0VJc1dVRkJXU3hGUVVGRkxFbEJRVWtzUlVGRGJFSXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkRWaXhYUVVGWExFVkJRVVVzVVVGQlVTeEZRVU55UWl4UFFVRlBMRVZCUVVVc1dVRkJXU3hGUVVOeVFpeE5RVUZOTEVWQlFVVTdaMEpCUTA0c1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzJkQ1FVTk9MRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF6dGhRVU5TTEVsQlEwUXNRMEZCUXp0SlFVTk1MRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSVWdzVDBGQlR6dFJRVU5NTEVkQlFVY3NhVUpCUVdsQ0xFTkJRMnhDTEZkQlFWY3NSVUZEV0N4RFFVRkRMRVZCUTBRc1EwRkJReXhGUVVORUxFOUJRVThzUlVGRFVDeGxRVUZsTEVWQlEyWXNZVUZCYjBJc1MwRkJTeXgxUkVGQlpTeERRVU42UXp0UlFVTkVMRWxCUVVrN1VVRkRTaXhIUVVGSExFdEJRVXM3VVVGRFVpeEhRVUZITEVsQlFVazdTMEZEVWl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRE8wRkJSVXNzVFVGQlRTeHBRa0ZCYVVJc1IwRkJSeXhEUVVNdlFpeFRRVUZwUWl4RlFVTnFRaXhYUVVGM1FpeEZRVU40UWl4RFFVRlRMRVZCUTFRc1EwRkJVeXhGUVVOTkxFVkJRVVU3U1VGRGFrSXNTVUZCU1N4VFFVRlRMRXRCUVVzc1RVRkJUU3hGUVVGRk8xRkJRM2hDTEU5QlFVOHNZVUZCWVN4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdTMEZEZWtNN1NVRkRSQ3hQUVVGUExGbEJRVmtzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM3BETEVOQlFVTXNRMEZCUXlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWphR0Z5ZEhNdWRITS9NbVZpWmlKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ1kyOXNiM0p6SUdaeWIyMGdYQ0l1TDJOdmJHOXljMXdpTzF4dWFXMXdiM0owSUhzZ1JFVkdRVlZNVkY5R1QwNVVYMFpCVFVsTVdTd2dSRVZHUVZWTVZGOUdUMDVVWDFOSldrVXNJRVZPVmlCOUlHWnliMjBnWENJdUwyTnZibk4wWVc1MGMxd2lPMXh1YVcxd2IzSjBJSHNnYm1WM1JXeGxiV1Z1ZEN3Z2JtVjNUR2x1WldGeVJXeGxiV1Z1ZEN3Z2JtVjNWR1Y0ZEVWc1pXMWxiblFnZlNCbWNtOXRJRndpTGk5bGJHVnRaVzUwWENJN1hHNXBiWEJ2Y25RZ2V5Qk9iMjVFWld4bGRHVmtSWGhqWVd4cFpISmhkMFZzWlcxbGJuUWdmU0JtY205dElGd2lMaTlsYkdWdFpXNTBMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdleUJ5WVc1a2IyMUpaQ0I5SUdaeWIyMGdYQ0l1TDNKaGJtUnZiVndpTzF4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JEYUdGeWRFVnNaVzFsYm5SeklEMGdjbVZoWkc5dWJIa2dUbTl1UkdWc1pYUmxaRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTA3WEc1Y2JtTnZibk4wSUVKQlVsOVhTVVJVU0NBOUlETXlPMXh1WTI5dWMzUWdRa0ZTWDBkQlVDQTlJREV5TzF4dVkyOXVjM1FnUWtGU1gwaEZTVWRJVkNBOUlESTFOanRjYm1OdmJuTjBJRWRTU1VSZlQxQkJRMGxVV1NBOUlEVXdPMXh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUZOd2NtVmhaSE5vWldWMElIdGNiaUFnZEdsMGJHVTZJSE4wY21sdVp5QjhJRzUxYkd3N1hHNGdJR3hoWW1Wc2N6b2djM1J5YVc1blcxMGdmQ0J1ZFd4c08xeHVJQ0IyWVd4MVpYTTZJRzUxYldKbGNsdGRPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnVGs5VVgxTlFVa1ZCUkZOSVJVVlVJRDBnWENKT1QxUmZVMUJTUlVGRVUwaEZSVlJjSWp0Y2JtVjRjRzl5ZENCamIyNXpkQ0JXUVV4SlJGOVRVRkpGUVVSVFNFVkZWQ0E5SUZ3aVZrRk1TVVJmVTFCU1JVRkVVMGhGUlZSY0lqdGNibHh1ZEhsd1pTQlFZWEp6WlZOd2NtVmhaSE5vWldWMFVtVnpkV3gwSUQxY2JpQWdmQ0I3SUhSNWNHVTZJSFI1Y0dWdlppQk9UMVJmVTFCU1JVRkVVMGhGUlZRN0lISmxZWE52YmpvZ2MzUnlhVzVuSUgxY2JpQWdmQ0I3SUhSNWNHVTZJSFI1Y0dWdlppQldRVXhKUkY5VFVGSkZRVVJUU0VWRlZEc2djM0J5WldGa2MyaGxaWFE2SUZOd2NtVmhaSE5vWldWMElIMDdYRzVjYm1OdmJuTjBJSFJ5ZVZCaGNuTmxUblZ0WW1WeUlEMGdLSE02SUhOMGNtbHVaeWs2SUc1MWJXSmxjaUI4SUc1MWJHd2dQVDRnZTF4dUlDQmpiMjV6ZENCdFlYUmphQ0E5SUM5ZVd5VGlncXpDbzhLbDRvS3BYVDhvV3pBdE9TeGRLeWhjWEM1Yk1DMDVYU3NwUHlra0x5NWxlR1ZqS0hNcE8xeHVJQ0JwWmlBb0lXMWhkR05vS1NCN1hHNGdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUhCaGNuTmxSbXh2WVhRb2JXRjBZMmhiTVYwdWNtVndiR0ZqWlNndkxDOW5MQ0JjSWx3aUtTazdYRzU5TzF4dVhHNWpiMjV6ZENCcGMwNTFiV1Z5YVdORGIyeDFiVzRnUFNBb2JHbHVaWE02SUhOMGNtbHVaMXRkVzEwc0lHTnZiSFZ0YmtsdVpHVjRPaUJ1ZFcxaVpYSXBJRDArWEc0Z0lHeHBibVZ6TG5Oc2FXTmxLREVwTG1WMlpYSjVLQ2hzYVc1bEtTQTlQaUIwY25sUVlYSnpaVTUxYldKbGNpaHNhVzVsVzJOdmJIVnRia2x1WkdWNFhTa2dJVDA5SUc1MWJHd3BPMXh1WEc1amIyNXpkQ0IwY25sUVlYSnpaVU5sYkd4eklEMGdLR05sYkd4ek9pQnpkSEpwYm1kYlhWdGRLVG9nVUdGeWMyVlRjSEpsWVdSemFHVmxkRkpsYzNWc2RDQTlQaUI3WEc0Z0lHTnZibk4wSUc1MWJVTnZiSE1nUFNCalpXeHNjMXN3WFM1c1pXNW5kR2c3WEc1Y2JpQWdhV1lnS0c1MWJVTnZiSE1nUGlBeUtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhzZ2RIbHdaVG9nVGs5VVgxTlFVa1ZCUkZOSVJVVlVMQ0J5WldGemIyNDZJRndpVFc5eVpTQjBhR0Z1SURJZ1kyOXNkVzF1YzF3aUlIMDdYRzRnSUgxY2JseHVJQ0JwWmlBb2JuVnRRMjlzY3lBOVBUMGdNU2tnZTF4dUlDQWdJR2xtSUNnaGFYTk9kVzFsY21salEyOXNkVzF1S0dObGJHeHpMQ0F3S1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2RIbHdaVG9nVGs5VVgxTlFVa1ZCUkZOSVJVVlVMQ0J5WldGemIyNDZJRndpVm1Gc2RXVWdhWE1nYm05MElHNTFiV1Z5YVdOY0lpQjlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUdoaGMwaGxZV1JsY2lBOUlIUnllVkJoY25ObFRuVnRZbVZ5S0dObGJHeHpXekJkV3pCZEtTQTlQVDBnYm5Wc2JEdGNiaUFnSUNCamIyNXpkQ0IyWVd4MVpYTWdQU0FvYUdGelNHVmhaR1Z5SUQ4Z1kyVnNiSE11YzJ4cFkyVW9NU2tnT2lCalpXeHNjeWt1YldGd0tDaHNhVzVsS1NBOVBseHVJQ0FnSUNBZ2RISjVVR0Z5YzJWT2RXMWlaWElvYkdsdVpWc3dYU2tzWEc0Z0lDQWdLVHRjYmx4dUlDQWdJR2xtSUNoMllXeDFaWE11YkdWdVozUm9JRHdnTWlrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2RIbHdaVG9nVGs5VVgxTlFVa1ZCUkZOSVJVVlVMQ0J5WldGemIyNDZJRndpVEdWemN5QjBhR0Z1SUhSM2J5QnliM2R6WENJZ2ZUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnZEhsd1pUb2dWa0ZNU1VSZlUxQlNSVUZFVTBoRlJWUXNYRzRnSUNBZ0lDQnpjSEpsWVdSemFHVmxkRG9nZTF4dUlDQWdJQ0FnSUNCMGFYUnNaVG9nYUdGelNHVmhaR1Z5SUQ4Z1kyVnNiSE5iTUYxYk1GMGdPaUJ1ZFd4c0xGeHVJQ0FnSUNBZ0lDQnNZV0psYkhNNklHNTFiR3dzWEc0Z0lDQWdJQ0FnSUhaaGJIVmxjem9nZG1Gc2RXVnpJR0Z6SUc1MWJXSmxjbHRkTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0I5TzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnZG1Gc2RXVkRiMngxYlc1SmJtUmxlQ0E5SUdselRuVnRaWEpwWTBOdmJIVnRiaWhqWld4c2N5d2dNQ2tnUHlBd0lEb2dNVHRjYmx4dUlDQnBaaUFvSVdselRuVnRaWEpwWTBOdmJIVnRiaWhqWld4c2N5d2dkbUZzZFdWRGIyeDFiVzVKYm1SbGVDa3BJSHRjYmlBZ0lDQnlaWFIxY200Z2V5QjBlWEJsT2lCT1QxUmZVMUJTUlVGRVUwaEZSVlFzSUhKbFlYTnZiam9nWENKV1lXeDFaU0JwY3lCdWIzUWdiblZ0WlhKcFkxd2lJSDA3WEc0Z0lIMWNibHh1SUNCamIyNXpkQ0JzWVdKbGJFTnZiSFZ0YmtsdVpHVjRJRDBnS0haaGJIVmxRMjlzZFcxdVNXNWtaWGdnS3lBeEtTQWxJREk3WEc0Z0lHTnZibk4wSUdoaGMwaGxZV1JsY2lBOUlIUnllVkJoY25ObFRuVnRZbVZ5S0dObGJHeHpXekJkVzNaaGJIVmxRMjlzZFcxdVNXNWtaWGhkS1NBOVBUMGdiblZzYkR0Y2JpQWdZMjl1YzNRZ2NtOTNjeUE5SUdoaGMwaGxZV1JsY2lBL0lHTmxiR3h6TG5Oc2FXTmxLREVwSURvZ1kyVnNiSE03WEc1Y2JpQWdhV1lnS0hKdmQzTXViR1Z1WjNSb0lEd2dNaWtnZTF4dUlDQWdJSEpsZEhWeWJpQjdJSFI1Y0dVNklFNVBWRjlUVUZKRlFVUlRTRVZGVkN3Z2NtVmhjMjl1T2lCY0lreGxjM01nZEdoaGJpQXlJSEp2ZDNOY0lpQjlPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJSHRjYmlBZ0lDQjBlWEJsT2lCV1FVeEpSRjlUVUZKRlFVUlRTRVZGVkN4Y2JpQWdJQ0J6Y0hKbFlXUnphR1ZsZERvZ2UxeHVJQ0FnSUNBZ2RHbDBiR1U2SUdoaGMwaGxZV1JsY2lBL0lHTmxiR3h6V3pCZFczWmhiSFZsUTI5c2RXMXVTVzVrWlhoZElEb2diblZzYkN4Y2JpQWdJQ0FnSUd4aFltVnNjem9nY205M2N5NXRZWEFvS0hKdmR5a2dQVDRnY205M1cyeGhZbVZzUTI5c2RXMXVTVzVrWlhoZEtTeGNiaUFnSUNBZ0lIWmhiSFZsY3pvZ2NtOTNjeTV0WVhBb0tISnZkeWtnUFQ0Z2RISjVVR0Z5YzJWT2RXMWlaWElvY205M1czWmhiSFZsUTI5c2RXMXVTVzVrWlhoZEtTRXBMRnh1SUNBZ0lIMHNYRzRnSUgwN1hHNTlPMXh1WEc1amIyNXpkQ0IwY21GdWMzQnZjMlZEWld4c2N5QTlJQ2hqWld4c2N6b2djM1J5YVc1blcxMWJYU2tnUFQ0Z2UxeHVJQ0JqYjI1emRDQnVaWGgwUTJWc2JITTZJSE4wY21sdVoxdGRXMTBnUFNCYlhUdGNiaUFnWm05eUlDaHNaWFFnWTI5c0lEMGdNRHNnWTI5c0lEd2dZMlZzYkhOYk1GMHViR1Z1WjNSb095QmpiMndyS3lrZ2UxeHVJQ0FnSUdOdmJuTjBJRzVsZUhSRFpXeHNVbTkzT2lCemRISnBibWRiWFNBOUlGdGRPMXh1SUNBZ0lHWnZjaUFvYkdWMElISnZkeUE5SURBN0lISnZkeUE4SUdObGJHeHpMbXhsYm1kMGFEc2djbTkzS3lzcElIdGNiaUFnSUNBZ0lHNWxlSFJEWld4c1VtOTNMbkIxYzJnb1kyVnNiSE5iY205M1hWdGpiMnhkS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdibVY0ZEVObGJHeHpMbkIxYzJnb2JtVjRkRU5sYkd4U2IzY3BPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQnVaWGgwUTJWc2JITTdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnZEhKNVVHRnljMlZUY0hKbFlXUnphR1ZsZENBOUlDaDBaWGgwT2lCemRISnBibWNwT2lCUVlYSnpaVk53Y21WaFpITm9aV1YwVW1WemRXeDBJRDArSUh0Y2JpQWdMeThnUTI5d2VTOXdZWE4wWlNCbWNtOXRJR1Y0WTJWc0xDQnpjSEpsWVdSb2MyVmxkSE1zSUhSemRpd2dZM04yTGx4dUlDQXZMeUJHYjNJZ2JtOTNJSGRsSUc5dWJIa2dZV05qWlhCMElESWdZMjlzZFcxdWN5QjNhWFJvSUdGdUlHOXdkR2x2Ym1Gc0lHaGxZV1JsY2x4dVhHNGdJQzh2SUVOb1pXTnJJR1p2Y2lCMFlXSWdjMlZ3WVhKaGRHVmtJSFpoYkhWbGMxeHVJQ0JzWlhRZ2JHbHVaWE1nUFNCMFpYaDBYRzRnSUNBZ0xuUnlhVzBvS1Z4dUlDQWdJQzV6Y0d4cGRDaGNJbHhjYmx3aUtWeHVJQ0FnSUM1dFlYQW9LR3hwYm1VcElEMCtJR3hwYm1VdWRISnBiU2dwTG5Od2JHbDBLRndpWEZ4MFhDSXBLVHRjYmx4dUlDQXZMeUJEYUdWamF5Qm1iM0lnWTI5dGJXRWdjMlZ3WVhKaGRHVmtJR1pwYkdWelhHNGdJR2xtSUNoc2FXNWxjeTVzWlc1bmRHZ2dKaVlnYkdsdVpYTmJNRjB1YkdWdVozUm9JQ0U5UFNBeUtTQjdYRzRnSUNBZ2JHbHVaWE1nUFNCMFpYaDBYRzRnSUNBZ0lDQXVkSEpwYlNncFhHNGdJQ0FnSUNBdWMzQnNhWFFvWENKY1hHNWNJaWxjYmlBZ0lDQWdJQzV0WVhBb0tHeHBibVVwSUQwK0lHeHBibVV1ZEhKcGJTZ3BMbk53YkdsMEtGd2lMRndpS1NrN1hHNGdJSDFjYmx4dUlDQnBaaUFvYkdsdVpYTXViR1Z1WjNSb0lEMDlQU0F3S1NCN1hHNGdJQ0FnY21WMGRYSnVJSHNnZEhsd1pUb2dUazlVWDFOUVVrVkJSRk5JUlVWVUxDQnlaV0Z6YjI0NklGd2lUbThnZG1Gc2RXVnpYQ0lnZlR0Y2JpQWdmVnh1WEc0Z0lHTnZibk4wSUc1MWJVTnZiSE5HYVhKemRFeHBibVVnUFNCc2FXNWxjMXN3WFM1c1pXNW5kR2c3WEc0Z0lHTnZibk4wSUdselUzQnlaV0ZrYzJobFpYUWdQU0JzYVc1bGN5NWxkbVZ5ZVNnb2JHbHVaU2tnUFQ0Z2JHbHVaUzVzWlc1bmRHZ2dQVDA5SUc1MWJVTnZiSE5HYVhKemRFeHBibVVwTzF4dVhHNGdJR2xtSUNnaGFYTlRjSEpsWVdSemFHVmxkQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQjBlWEJsT2lCT1QxUmZVMUJTUlVGRVUwaEZSVlFzWEc0Z0lDQWdJQ0J5WldGemIyNDZJRndpUVd4c0lISnZkM01nWkc5dUozUWdhR0YyWlNCellXMWxJRzUxYldKbGNpQnZaaUJqYjJ4MWJXNXpYQ0lzWEc0Z0lDQWdmVHRjYmlBZ2ZWeHVYRzRnSUdOdmJuTjBJSEpsYzNWc2RDQTlJSFJ5ZVZCaGNuTmxRMlZzYkhNb2JHbHVaWE1wTzF4dUlDQnBaaUFvY21WemRXeDBMblI1Y0dVZ0lUMDlJRlpCVEVsRVgxTlFVa1ZCUkZOSVJVVlVLU0I3WEc0Z0lDQWdZMjl1YzNRZ2RISmhibk53YjNObFpGSmxjM1ZzZEhNZ1BTQjBjbmxRWVhKelpVTmxiR3h6S0hSeVlXNXpjRzl6WlVObGJHeHpLR3hwYm1WektTazdYRzRnSUNBZ2FXWWdLSFJ5WVc1emNHOXpaV1JTWlhOMWJIUnpMblI1Y0dVZ1BUMDlJRlpCVEVsRVgxTlFVa1ZCUkZOSVJVVlVLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkSEpoYm5Od2IzTmxaRkpsYzNWc2RITTdYRzRnSUNBZ2ZWeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc1OU8xeHVYRzVqYjI1emRDQmlaME52Ykc5eWN5QTlJR052Ykc5eWN5NWxiR1Z0Wlc1MFFtRmphMmR5YjNWdVpDNXpiR2xqWlNoY2JpQWdNaXhjYmlBZ1kyOXNiM0p6TG1Wc1pXMWxiblJDWVdOclozSnZkVzVrTG14bGJtZDBhQ3hjYmlrN1hHNWNiaTh2SUZCMWRDQmhiR3dnZEdobElHTnZiVzF2YmlCd2NtOXdaWEowYVdWeklHaGxjbVVnYzI4Z2QyaGxiaUIwYUdVZ2QyaHZiR1VnWTJoaGNuUWdhWE1nYzJWc1pXTjBaV1JjYmk4dklIUm9aU0J3Y205d1pYSjBhV1Z6SUdScFlXeHZaeUJ6YUc5M2N5QjBhR1VnWTI5eWNtVmpkQ0J6Wld4bFkzUmxaQ0IyWVd4MVpYTmNibU52Ym5OMElHTnZiVzF2YmxCeWIzQnpJRDBnZTF4dUlDQm1hV3hzVTNSNWJHVTZJRndpYUdGamFIVnlaVndpTEZ4dUlDQm1iMjUwUm1GdGFXeDVPaUJFUlVaQlZVeFVYMFpQVGxSZlJrRk5TVXhaTEZ4dUlDQm1iMjUwVTJsNlpUb2dSRVZHUVZWTVZGOUdUMDVVWDFOSldrVXNYRzRnSUc5d1lXTnBkSGs2SURFd01DeGNiaUFnY205MVoyaHVaWE56T2lBeExGeHVJQ0J6ZEhKdmEyVkRiMnh2Y2pvZ1kyOXNiM0p6TG1Wc1pXMWxiblJUZEhKdmEyVmJNRjBzWEc0Z0lITjBjbTlyWlZOb1lYSndibVZ6Y3pvZ1hDSnphR0Z5Y0Z3aUxGeHVJQ0J6ZEhKdmEyVlRkSGxzWlRvZ1hDSnpiMnhwWkZ3aUxGeHVJQ0J6ZEhKdmEyVlhhV1IwYURvZ01TeGNiaUFnZG1WeWRHbGpZV3hCYkdsbmJqb2dYQ0p0YVdSa2JHVmNJaXhjYm4wZ1lYTWdZMjl1YzNRN1hHNWNibU52Ym5OMElHZGxkRU5vWVhKMFJHbHRaVzUwYVc5dWN5QTlJQ2h6Y0hKbFlXUnphR1ZsZERvZ1UzQnlaV0ZrYzJobFpYUXBJRDArSUh0Y2JpQWdZMjl1YzNRZ1kyaGhjblJYYVdSMGFDQTlYRzRnSUNBZ0tFSkJVbDlYU1VSVVNDQXJJRUpCVWw5SFFWQXBJQ29nYzNCeVpXRmtjMmhsWlhRdWRtRnNkV1Z6TG14bGJtZDBhQ0FySUVKQlVsOUhRVkE3WEc0Z0lHTnZibk4wSUdOb1lYSjBTR1ZwWjJoMElEMGdRa0ZTWDBoRlNVZElWQ0FySUVKQlVsOUhRVkFnS2lBeU8xeHVJQ0J5WlhSMWNtNGdleUJqYUdGeWRGZHBaSFJvTENCamFHRnlkRWhsYVdkb2RDQjlPMXh1ZlR0Y2JseHVZMjl1YzNRZ1kyaGhjblJZVEdGaVpXeHpJRDBnS0Z4dUlDQnpjSEpsWVdSemFHVmxkRG9nVTNCeVpXRmtjMmhsWlhRc1hHNGdJSGc2SUc1MWJXSmxjaXhjYmlBZ2VUb2diblZ0WW1WeUxGeHVJQ0JuY205MWNFbGtPaUJ6ZEhKcGJtY3NYRzRnSUdKaFkydG5jbTkxYm1SRGIyeHZjam9nYzNSeWFXNW5MRnh1S1RvZ1EyaGhjblJGYkdWdFpXNTBjeUE5UGlCN1hHNGdJSEpsZEhWeWJpQW9YRzRnSUNBZ2MzQnlaV0ZrYzJobFpYUXViR0ZpWld4elB5NXRZWEFvS0d4aFltVnNMQ0JwYm1SbGVDa2dQVDRnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzVsZDFSbGVIUkZiR1Z0Wlc1MEtIdGNiaUFnSUNBZ0lDQWdaM0p2ZFhCSlpITTZJRnRuY205MWNFbGtYU3hjYmlBZ0lDQWdJQ0FnWW1GamEyZHliM1Z1WkVOdmJHOXlMRnh1SUNBZ0lDQWdJQ0F1TGk1amIyMXRiMjVRY205d2N5eGNiaUFnSUNBZ0lDQWdkR1Y0ZERvZ2JHRmlaV3d1YkdWdVozUm9JRDRnT0NBL0lHQWtlMnhoWW1Wc0xuTnNhV05sS0RBc0lEVXBmUzR1TG1BZ09pQnNZV0psYkN4Y2JpQWdJQ0FnSUNBZ2VEb2dlQ0FySUdsdVpHVjRJQ29nS0VKQlVsOVhTVVJVU0NBcklFSkJVbDlIUVZBcElDc2dRa0ZTWDBkQlVDQXFJRElzWEc0Z0lDQWdJQ0FnSUhrNklIa2dLeUJDUVZKZlIwRlFJQzhnTWl4Y2JpQWdJQ0FnSUNBZ2QybGtkR2c2SUVKQlVsOVhTVVJVU0N4Y2JpQWdJQ0FnSUNBZ1lXNW5iR1U2SURVdU9EY3NYRzRnSUNBZ0lDQWdJR1p2Ym5SVGFYcGxPaUF4Tml4Y2JpQWdJQ0FnSUNBZ2RHVjRkRUZzYVdkdU9pQmNJbU5sYm5SbGNsd2lMRnh1SUNBZ0lDQWdJQ0IyWlhKMGFXTmhiRUZzYVdkdU9pQmNJblJ2Y0Z3aUxGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZTa2dmSHdnVzExY2JpQWdLVHRjYm4wN1hHNWNibU52Ym5OMElHTm9ZWEowV1V4aFltVnNjeUE5SUNoY2JpQWdjM0J5WldGa2MyaGxaWFE2SUZOd2NtVmhaSE5vWldWMExGeHVJQ0I0T2lCdWRXMWlaWElzWEc0Z0lIazZJRzUxYldKbGNpeGNiaUFnWjNKdmRYQkpaRG9nYzNSeWFXNW5MRnh1SUNCaVlXTnJaM0p2ZFc1a1EyOXNiM0k2SUhOMGNtbHVaeXhjYmlrNklFTm9ZWEowUld4bGJXVnVkSE1nUFQ0Z2UxeHVJQ0JqYjI1emRDQnRhVzVaVEdGaVpXd2dQU0J1WlhkVVpYaDBSV3hsYldWdWRDaDdYRzRnSUNBZ1ozSnZkWEJKWkhNNklGdG5jbTkxY0Vsa1hTeGNiaUFnSUNCaVlXTnJaM0p2ZFc1a1EyOXNiM0lzWEc0Z0lDQWdMaTR1WTI5dGJXOXVVSEp2Y0hNc1hHNGdJQ0FnZURvZ2VDQXRJRUpCVWw5SFFWQXNYRzRnSUNBZ2VUb2dlU0F0SUVKQlVsOUhRVkFzWEc0Z0lDQWdkR1Y0ZERvZ1hDSXdYQ0lzWEc0Z0lDQWdkR1Y0ZEVGc2FXZHVPaUJjSW5KcFoyaDBYQ0lzWEc0Z0lIMHBPMXh1WEc0Z0lHTnZibk4wSUcxaGVGbE1ZV0psYkNBOUlHNWxkMVJsZUhSRmJHVnRaVzUwS0h0Y2JpQWdJQ0JuY205MWNFbGtjem9nVzJkeWIzVndTV1JkTEZ4dUlDQWdJR0poWTJ0bmNtOTFibVJEYjJ4dmNpeGNiaUFnSUNBdUxpNWpiMjF0YjI1UWNtOXdjeXhjYmlBZ0lDQjRPaUI0SUMwZ1FrRlNYMGRCVUN4Y2JpQWdJQ0I1T2lCNUlDMGdRa0ZTWDBoRlNVZElWQ0F0SUcxcGJsbE1ZV0psYkM1b1pXbG5hSFFnTHlBeUxGeHVJQ0FnSUhSbGVIUTZJRTFoZEdndWJXRjRLQzR1TG5Od2NtVmhaSE5vWldWMExuWmhiSFZsY3lrdWRHOU1iMk5oYkdWVGRISnBibWNvS1N4Y2JpQWdJQ0IwWlhoMFFXeHBaMjQ2SUZ3aWNtbG5hSFJjSWl4Y2JpQWdmU2s3WEc1Y2JpQWdjbVYwZFhKdUlGdHRhVzVaVEdGaVpXd3NJRzFoZUZsTVlXSmxiRjA3WEc1OU8xeHVYRzVqYjI1emRDQmphR0Z5ZEV4cGJtVnpJRDBnS0Z4dUlDQnpjSEpsWVdSemFHVmxkRG9nVTNCeVpXRmtjMmhsWlhRc1hHNGdJSGc2SUc1MWJXSmxjaXhjYmlBZ2VUb2diblZ0WW1WeUxGeHVJQ0JuY205MWNFbGtPaUJ6ZEhKcGJtY3NYRzRnSUdKaFkydG5jbTkxYm1SRGIyeHZjam9nYzNSeWFXNW5MRnh1S1RvZ1EyaGhjblJGYkdWdFpXNTBjeUE5UGlCN1hHNGdJR052Ym5OMElIc2dZMmhoY25SWGFXUjBhQ3dnWTJoaGNuUklaV2xuYUhRZ2ZTQTlJR2RsZEVOb1lYSjBSR2x0Wlc1MGFXOXVjeWh6Y0hKbFlXUnphR1ZsZENrN1hHNGdJR052Ym5OMElIaE1hVzVsSUQwZ2JtVjNUR2x1WldGeVJXeGxiV1Z1ZENoN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkVOdmJHOXlMRnh1SUNBZ0lHZHliM1Z3U1dSek9pQmJaM0p2ZFhCSlpGMHNYRzRnSUNBZ0xpNHVZMjl0Ylc5dVVISnZjSE1zWEc0Z0lDQWdkSGx3WlRvZ1hDSnNhVzVsWENJc1hHNGdJQ0FnZUN4Y2JpQWdJQ0I1TEZ4dUlDQWdJSE4wWVhKMFFYSnliM2RvWldGa09pQnVkV3hzTEZ4dUlDQWdJR1Z1WkVGeWNtOTNhR1ZoWkRvZ2JuVnNiQ3hjYmlBZ0lDQjNhV1IwYURvZ1kyaGhjblJYYVdSMGFDeGNiaUFnSUNCd2IybHVkSE02SUZ0Y2JpQWdJQ0FnSUZzd0xDQXdYU3hjYmlBZ0lDQWdJRnRqYUdGeWRGZHBaSFJvTENBd1hTeGNiaUFnSUNCZExGeHVJQ0I5S1R0Y2JseHVJQ0JqYjI1emRDQjVUR2x1WlNBOUlHNWxkMHhwYm1WaGNrVnNaVzFsYm5Rb2UxeHVJQ0FnSUdKaFkydG5jbTkxYm1SRGIyeHZjaXhjYmlBZ0lDQm5jbTkxY0Vsa2N6b2dXMmR5YjNWd1NXUmRMRnh1SUNBZ0lDNHVMbU52YlcxdmJsQnliM0J6TEZ4dUlDQWdJSFI1Y0dVNklGd2liR2x1WlZ3aUxGeHVJQ0FnSUhnc1hHNGdJQ0FnZVN4Y2JpQWdJQ0J6ZEdGeWRFRnljbTkzYUdWaFpEb2diblZzYkN4Y2JpQWdJQ0JsYm1SQmNuSnZkMmhsWVdRNklHNTFiR3dzWEc0Z0lDQWdhR1ZwWjJoME9pQmphR0Z5ZEVobGFXZG9kQ3hjYmlBZ0lDQndiMmx1ZEhNNklGdGNiaUFnSUNBZ0lGc3dMQ0F3WFN4Y2JpQWdJQ0FnSUZzd0xDQXRZMmhoY25SSVpXbG5hSFJkTEZ4dUlDQWdJRjBzWEc0Z0lIMHBPMXh1WEc0Z0lHTnZibk4wSUcxaGVFeHBibVVnUFNCdVpYZE1hVzVsWVhKRmJHVnRaVzUwS0h0Y2JpQWdJQ0JpWVdOclozSnZkVzVrUTI5c2IzSXNYRzRnSUNBZ1ozSnZkWEJKWkhNNklGdG5jbTkxY0Vsa1hTeGNiaUFnSUNBdUxpNWpiMjF0YjI1UWNtOXdjeXhjYmlBZ0lDQjBlWEJsT2lCY0lteHBibVZjSWl4Y2JpQWdJQ0I0TEZ4dUlDQWdJSGs2SUhrZ0xTQkNRVkpmU0VWSlIwaFVJQzBnUWtGU1gwZEJVQ3hjYmlBZ0lDQnpkR0Z5ZEVGeWNtOTNhR1ZoWkRvZ2JuVnNiQ3hjYmlBZ0lDQmxibVJCY25KdmQyaGxZV1E2SUc1MWJHd3NYRzRnSUNBZ2MzUnliMnRsVTNSNWJHVTZJRndpWkc5MGRHVmtYQ0lzWEc0Z0lDQWdkMmxrZEdnNklHTm9ZWEowVjJsa2RHZ3NYRzRnSUNBZ2IzQmhZMmwwZVRvZ1IxSkpSRjlQVUVGRFNWUlpMRnh1SUNBZ0lIQnZhVzUwY3pvZ1cxeHVJQ0FnSUNBZ1d6QXNJREJkTEZ4dUlDQWdJQ0FnVzJOb1lYSjBWMmxrZEdnc0lEQmRMRnh1SUNBZ0lGMHNYRzRnSUgwcE8xeHVYRzRnSUhKbGRIVnliaUJiZUV4cGJtVXNJSGxNYVc1bExDQnRZWGhNYVc1bFhUdGNibjA3WEc1Y2JpOHZJRVp2Y2lCMGFHVWdiV0YwYUhNZ1ltVm9hVzVrSUdsMElHaDBkSEJ6T2k4dlpYaGpZV3hwWkhKaGR5NWpiMjB2STJwemIyNDlOak15TURnMk5ETTNNRGc0TkRZd09DeFBYelY0WmtRdFFXZG9NekowZVhSSWNGSktlREZuWEc1amIyNXpkQ0JqYUdGeWRFSmhjMlZGYkdWdFpXNTBjeUE5SUNoY2JpQWdjM0J5WldGa2MyaGxaWFE2SUZOd2NtVmhaSE5vWldWMExGeHVJQ0I0T2lCdWRXMWlaWElzWEc0Z0lIazZJRzUxYldKbGNpeGNiaUFnWjNKdmRYQkpaRG9nYzNSeWFXNW5MRnh1SUNCaVlXTnJaM0p2ZFc1a1EyOXNiM0k2SUhOMGNtbHVaeXhjYmlBZ1pHVmlkV2MvT2lCaWIyOXNaV0Z1TEZ4dUtUb2dRMmhoY25SRmJHVnRaVzUwY3lBOVBpQjdYRzRnSUdOdmJuTjBJSHNnWTJoaGNuUlhhV1IwYUN3Z1kyaGhjblJJWldsbmFIUWdmU0E5SUdkbGRFTm9ZWEowUkdsdFpXNTBhVzl1Y3loemNISmxZV1J6YUdWbGRDazdYRzVjYmlBZ1kyOXVjM1FnZEdsMGJHVWdQU0J6Y0hKbFlXUnphR1ZsZEM1MGFYUnNaVnh1SUNBZ0lEOGdibVYzVkdWNGRFVnNaVzFsYm5Rb2UxeHVJQ0FnSUNBZ0lDQmlZV05yWjNKdmRXNWtRMjlzYjNJc1hHNGdJQ0FnSUNBZ0lHZHliM1Z3U1dSek9pQmJaM0p2ZFhCSlpGMHNYRzRnSUNBZ0lDQWdJQzR1TG1OdmJXMXZibEJ5YjNCekxGeHVJQ0FnSUNBZ0lDQjBaWGgwT2lCemNISmxZV1J6YUdWbGRDNTBhWFJzWlN4Y2JpQWdJQ0FnSUNBZ2VEb2dlQ0FySUdOb1lYSjBWMmxrZEdnZ0x5QXlMRnh1SUNBZ0lDQWdJQ0I1T2lCNUlDMGdRa0ZTWDBoRlNVZElWQ0F0SUVKQlVsOUhRVkFnS2lBeUlDMGdSRVZHUVZWTVZGOUdUMDVVWDFOSldrVXNYRzRnSUNBZ0lDQWdJSE4wY205clpWTm9ZWEp3Ym1WemN6b2dYQ0p6YUdGeWNGd2lMRnh1SUNBZ0lDQWdJQ0J6ZEhKdmEyVlRkSGxzWlRvZ1hDSnpiMnhwWkZ3aUxGeHVJQ0FnSUNBZ0lDQjBaWGgwUVd4cFoyNDZJRndpWTJWdWRHVnlYQ0lzWEc0Z0lDQWdJQ0I5S1Z4dUlDQWdJRG9nYm5Wc2JEdGNibHh1SUNCamIyNXpkQ0JrWldKMVoxSmxZM1FnUFNCa1pXSjFaMXh1SUNBZ0lEOGdibVYzUld4bGJXVnVkQ2g3WEc0Z0lDQWdJQ0FnSUdKaFkydG5jbTkxYm1SRGIyeHZjaXhjYmlBZ0lDQWdJQ0FnWjNKdmRYQkpaSE02SUZ0bmNtOTFjRWxrWFN4Y2JpQWdJQ0FnSUNBZ0xpNHVZMjl0Ylc5dVVISnZjSE1zWEc0Z0lDQWdJQ0FnSUhSNWNHVTZJRndpY21WamRHRnVaMnhsWENJc1hHNGdJQ0FnSUNBZ0lIZ3NYRzRnSUNBZ0lDQWdJSGs2SUhrZ0xTQmphR0Z5ZEVobGFXZG9kQ3hjYmlBZ0lDQWdJQ0FnZDJsa2RHZzZJR05vWVhKMFYybGtkR2dzWEc0Z0lDQWdJQ0FnSUdobGFXZG9kRG9nWTJoaGNuUklaV2xuYUhRc1hHNGdJQ0FnSUNBZ0lITjBjbTlyWlVOdmJHOXlPaUJqYjJ4dmNuTXVaV3hsYldWdWRGTjBjbTlyWlZzd1hTeGNiaUFnSUNBZ0lDQWdabWxzYkZOMGVXeGxPaUJjSW5OdmJHbGtYQ0lzWEc0Z0lDQWdJQ0FnSUc5d1lXTnBkSGs2SURZc1hHNGdJQ0FnSUNCOUtWeHVJQ0FnSURvZ2JuVnNiRHRjYmx4dUlDQnlaWFIxY200Z1cxeHVJQ0FnSUM0dUxpaGtaV0oxWjFKbFkzUWdQeUJiWkdWaWRXZFNaV04wWFNBNklGdGRLU3hjYmlBZ0lDQXVMaTRvZEdsMGJHVWdQeUJiZEdsMGJHVmRJRG9nVzEwcExGeHVJQ0FnSUM0dUxtTm9ZWEowV0V4aFltVnNjeWh6Y0hKbFlXUnphR1ZsZEN3Z2VDd2dlU3dnWjNKdmRYQkpaQ3dnWW1GamEyZHliM1Z1WkVOdmJHOXlLU3hjYmlBZ0lDQXVMaTVqYUdGeWRGbE1ZV0psYkhNb2MzQnlaV0ZrYzJobFpYUXNJSGdzSUhrc0lHZHliM1Z3U1dRc0lHSmhZMnRuY205MWJtUkRiMnh2Y2lrc1hHNGdJQ0FnTGk0dVkyaGhjblJNYVc1bGN5aHpjSEpsWVdSemFHVmxkQ3dnZUN3Z2VTd2daM0p2ZFhCSlpDd2dZbUZqYTJkeWIzVnVaRU52Ykc5eUtTeGNiaUFnWFR0Y2JuMDdYRzVjYm1OdmJuTjBJR05vWVhKMFZIbHdaVUpoY2lBOUlDaGNiaUFnYzNCeVpXRmtjMmhsWlhRNklGTndjbVZoWkhOb1pXVjBMRnh1SUNCNE9pQnVkVzFpWlhJc1hHNGdJSGs2SUc1MWJXSmxjaXhjYmlrNklFTm9ZWEowUld4bGJXVnVkSE1nUFQ0Z2UxeHVJQ0JqYjI1emRDQnRZWGdnUFNCTllYUm9MbTFoZUNndUxpNXpjSEpsWVdSemFHVmxkQzUyWVd4MVpYTXBPMXh1SUNCamIyNXpkQ0JuY205MWNFbGtJRDBnY21GdVpHOXRTV1FvS1R0Y2JpQWdZMjl1YzNRZ1ltRmphMmR5YjNWdVpFTnZiRzl5SUQwZ1ltZERiMnh2Y25OYlRXRjBhQzVtYkc5dmNpaE5ZWFJvTG5KaGJtUnZiU2dwSUNvZ1ltZERiMnh2Y25NdWJHVnVaM1JvS1YwN1hHNWNiaUFnWTI5dWMzUWdZbUZ5Y3lBOUlITndjbVZoWkhOb1pXVjBMblpoYkhWbGN5NXRZWEFvS0haaGJIVmxMQ0JwYm1SbGVDa2dQVDRnZTF4dUlDQWdJR052Ym5OMElHSmhja2hsYVdkb2RDQTlJQ2gyWVd4MVpTQXZJRzFoZUNrZ0tpQkNRVkpmU0VWSlIwaFVPMXh1SUNBZ0lISmxkSFZ5YmlCdVpYZEZiR1Z0Wlc1MEtIdGNiaUFnSUNBZ0lHSmhZMnRuY205MWJtUkRiMnh2Y2l4Y2JpQWdJQ0FnSUdkeWIzVndTV1J6T2lCYlozSnZkWEJKWkYwc1hHNGdJQ0FnSUNBdUxpNWpiMjF0YjI1UWNtOXdjeXhjYmlBZ0lDQWdJSFI1Y0dVNklGd2ljbVZqZEdGdVoyeGxYQ0lzWEc0Z0lDQWdJQ0I0T2lCNElDc2dhVzVrWlhnZ0tpQW9Ra0ZTWDFkSlJGUklJQ3NnUWtGU1gwZEJVQ2tnS3lCQ1FWSmZSMEZRTEZ4dUlDQWdJQ0FnZVRvZ2VTQXRJR0poY2tobGFXZG9kQ0F0SUVKQlVsOUhRVkFzWEc0Z0lDQWdJQ0IzYVdSMGFEb2dRa0ZTWDFkSlJGUklMRnh1SUNBZ0lDQWdhR1ZwWjJoME9pQmlZWEpJWldsbmFIUXNYRzRnSUNBZ2ZTazdYRzRnSUgwcE8xeHVYRzRnSUhKbGRIVnliaUJiWEc0Z0lDQWdMaTR1WW1GeWN5eGNiaUFnSUNBdUxpNWphR0Z5ZEVKaGMyVkZiR1Z0Wlc1MGN5aGNiaUFnSUNBZ0lITndjbVZoWkhOb1pXVjBMRnh1SUNBZ0lDQWdlQ3hjYmlBZ0lDQWdJSGtzWEc0Z0lDQWdJQ0JuY205MWNFbGtMRnh1SUNBZ0lDQWdZbUZqYTJkeWIzVnVaRU52Ykc5eUxGeHVJQ0FnSUNBZ2NISnZZMlZ6Y3k1bGJuWXVUazlFUlY5RlRsWWdQVDA5SUVWT1ZpNUVSVlpGVEU5UVRVVk9WQ3hjYmlBZ0lDQXBMRnh1SUNCZE8xeHVmVHRjYmx4dVkyOXVjM1FnWTJoaGNuUlVlWEJsVEdsdVpTQTlJQ2hjYmlBZ2MzQnlaV0ZrYzJobFpYUTZJRk53Y21WaFpITm9aV1YwTEZ4dUlDQjRPaUJ1ZFcxaVpYSXNYRzRnSUhrNklHNTFiV0psY2l4Y2JpazZJRU5vWVhKMFJXeGxiV1Z1ZEhNZ1BUNGdlMXh1SUNCamIyNXpkQ0J0WVhnZ1BTQk5ZWFJvTG0xaGVDZ3VMaTV6Y0hKbFlXUnphR1ZsZEM1MllXeDFaWE1wTzF4dUlDQmpiMjV6ZENCbmNtOTFjRWxrSUQwZ2NtRnVaRzl0U1dRb0tUdGNiaUFnWTI5dWMzUWdZbUZqYTJkeWIzVnVaRU52Ykc5eUlEMGdZbWREYjJ4dmNuTmJUV0YwYUM1bWJHOXZjaWhOWVhSb0xuSmhibVJ2YlNncElDb2dZbWREYjJ4dmNuTXViR1Z1WjNSb0tWMDdYRzVjYmlBZ2JHVjBJR2x1WkdWNElEMGdNRHRjYmlBZ1kyOXVjM1FnY0c5cGJuUnpJRDBnVzEwN1hHNGdJR1p2Y2lBb1kyOXVjM1FnZG1Gc2RXVWdiMllnYzNCeVpXRmtjMmhsWlhRdWRtRnNkV1Z6S1NCN1hHNGdJQ0FnWTI5dWMzUWdZM2dnUFNCcGJtUmxlQ0FxSUNoQ1FWSmZWMGxFVkVnZ0t5QkNRVkpmUjBGUUtUdGNiaUFnSUNCamIyNXpkQ0JqZVNBOUlDMG9kbUZzZFdVZ0x5QnRZWGdwSUNvZ1FrRlNYMGhGU1VkSVZEdGNiaUFnSUNCd2IybHVkSE11Y0hWemFDaGJZM2dzSUdONVhTazdYRzRnSUNBZ2FXNWtaWGdyS3p0Y2JpQWdmVnh1WEc0Z0lHTnZibk4wSUcxaGVGZ2dQU0JOWVhSb0xtMWhlQ2d1TGk1d2IybHVkSE11YldGd0tDaGxiR1Z0Wlc1MEtTQTlQaUJsYkdWdFpXNTBXekJkS1NrN1hHNGdJR052Ym5OMElHMWhlRmtnUFNCTllYUm9MbTFoZUNndUxpNXdiMmx1ZEhNdWJXRndLQ2hsYkdWdFpXNTBLU0E5UGlCbGJHVnRaVzUwV3pGZEtTazdYRzRnSUdOdmJuTjBJRzFwYmxnZ1BTQk5ZWFJvTG0xcGJpZ3VMaTV3YjJsdWRITXViV0Z3S0NobGJHVnRaVzUwS1NBOVBpQmxiR1Z0Wlc1MFd6QmRLU2s3WEc0Z0lHTnZibk4wSUcxcGJsa2dQU0JOWVhSb0xtMXBiaWd1TGk1d2IybHVkSE11YldGd0tDaGxiR1Z0Wlc1MEtTQTlQaUJsYkdWdFpXNTBXekZkS1NrN1hHNWNiaUFnWTI5dWMzUWdiR2x1WlNBOUlHNWxkMHhwYm1WaGNrVnNaVzFsYm5Rb2UxeHVJQ0FnSUdKaFkydG5jbTkxYm1SRGIyeHZjaXhjYmlBZ0lDQm5jbTkxY0Vsa2N6b2dXMmR5YjNWd1NXUmRMRnh1SUNBZ0lDNHVMbU52YlcxdmJsQnliM0J6TEZ4dUlDQWdJSFI1Y0dVNklGd2liR2x1WlZ3aUxGeHVJQ0FnSUhnNklIZ2dLeUJDUVZKZlIwRlFJQ3NnUWtGU1gxZEpSRlJJSUM4Z01peGNiaUFnSUNCNU9pQjVJQzBnUWtGU1gwZEJVQ3hjYmlBZ0lDQnpkR0Z5ZEVGeWNtOTNhR1ZoWkRvZ2JuVnNiQ3hjYmlBZ0lDQmxibVJCY25KdmQyaGxZV1E2SUc1MWJHd3NYRzRnSUNBZ2FHVnBaMmgwT2lCdFlYaFpJQzBnYldsdVdTeGNiaUFnSUNCM2FXUjBhRG9nYldGNFdDQXRJRzFwYmxnc1hHNGdJQ0FnYzNSeWIydGxWMmxrZEdnNklESXNYRzRnSUNBZ2NHOXBiblJ6T2lCd2IybHVkSE1nWVhNZ1lXNTVMRnh1SUNCOUtUdGNibHh1SUNCamIyNXpkQ0JrYjNSeklEMGdjM0J5WldGa2MyaGxaWFF1ZG1Gc2RXVnpMbTFoY0Nnb2RtRnNkV1VzSUdsdVpHVjRLU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdZM2dnUFNCcGJtUmxlQ0FxSUNoQ1FWSmZWMGxFVkVnZ0t5QkNRVkpmUjBGUUtTQXJJRUpCVWw5SFFWQWdMeUF5TzF4dUlDQWdJR052Ym5OMElHTjVJRDBnTFNoMllXeDFaU0F2SUcxaGVDa2dLaUJDUVZKZlNFVkpSMGhVSUNzZ1FrRlNYMGRCVUNBdklESTdYRzRnSUNBZ2NtVjBkWEp1SUc1bGQwVnNaVzFsYm5Rb2UxeHVJQ0FnSUNBZ1ltRmphMmR5YjNWdVpFTnZiRzl5TEZ4dUlDQWdJQ0FnWjNKdmRYQkpaSE02SUZ0bmNtOTFjRWxrWFN4Y2JpQWdJQ0FnSUM0dUxtTnZiVzF2YmxCeWIzQnpMRnh1SUNBZ0lDQWdabWxzYkZOMGVXeGxPaUJjSW5OdmJHbGtYQ0lzWEc0Z0lDQWdJQ0J6ZEhKdmEyVlhhV1IwYURvZ01peGNiaUFnSUNBZ0lIUjVjR1U2SUZ3aVpXeHNhWEJ6WlZ3aUxGeHVJQ0FnSUNBZ2VEb2dlQ0FySUdONElDc2dRa0ZTWDFkSlJGUklJQzhnTWl4Y2JpQWdJQ0FnSUhrNklIa2dLeUJqZVNBdElFSkJVbDlIUVZBZ0tpQXlMRnh1SUNBZ0lDQWdkMmxrZEdnNklFSkJVbDlIUVZBc1hHNGdJQ0FnSUNCb1pXbG5hSFE2SUVKQlVsOUhRVkFzWEc0Z0lDQWdmU2s3WEc0Z0lIMHBPMXh1WEc0Z0lHTnZibk4wSUd4cGJtVnpJRDBnYzNCeVpXRmtjMmhsWlhRdWRtRnNkV1Z6TG0xaGNDZ29kbUZzZFdVc0lHbHVaR1Y0S1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnWTNnZ1BTQnBibVJsZUNBcUlDaENRVkpmVjBsRVZFZ2dLeUJDUVZKZlIwRlFLU0FySUVKQlVsOUhRVkFnTHlBeU8xeHVJQ0FnSUdOdmJuTjBJR041SUQwZ0tIWmhiSFZsSUM4Z2JXRjRLU0FxSUVKQlVsOUlSVWxIU0ZRZ0t5QkNRVkpmUjBGUUlDOGdNaUFySUVKQlVsOUhRVkE3WEc0Z0lDQWdjbVYwZFhKdUlHNWxkMHhwYm1WaGNrVnNaVzFsYm5Rb2UxeHVJQ0FnSUNBZ1ltRmphMmR5YjNWdVpFTnZiRzl5TEZ4dUlDQWdJQ0FnWjNKdmRYQkpaSE02SUZ0bmNtOTFjRWxrWFN4Y2JpQWdJQ0FnSUM0dUxtTnZiVzF2YmxCeWIzQnpMRnh1SUNBZ0lDQWdkSGx3WlRvZ1hDSnNhVzVsWENJc1hHNGdJQ0FnSUNCNE9pQjRJQ3NnWTNnZ0t5QkNRVkpmVjBsRVZFZ2dMeUF5SUNzZ1FrRlNYMGRCVUNBdklESXNYRzRnSUNBZ0lDQjVPaUI1SUMwZ1kza3NYRzRnSUNBZ0lDQnpkR0Z5ZEVGeWNtOTNhR1ZoWkRvZ2JuVnNiQ3hjYmlBZ0lDQWdJR1Z1WkVGeWNtOTNhR1ZoWkRvZ2JuVnNiQ3hjYmlBZ0lDQWdJR2hsYVdkb2REb2dZM2tzWEc0Z0lDQWdJQ0J6ZEhKdmEyVlRkSGxzWlRvZ1hDSmtiM1IwWldSY0lpeGNiaUFnSUNBZ0lHOXdZV05wZEhrNklFZFNTVVJmVDFCQlEwbFVXU3hjYmlBZ0lDQWdJSEJ2YVc1MGN6b2dXMXh1SUNBZ0lDQWdJQ0JiTUN3Z01GMHNYRzRnSUNBZ0lDQWdJRnN3TENCamVWMHNYRzRnSUNBZ0lDQmRMRnh1SUNBZ0lIMHBPMXh1SUNCOUtUdGNibHh1SUNCeVpYUjFjbTRnVzF4dUlDQWdJQzR1TG1Ob1lYSjBRbUZ6WlVWc1pXMWxiblJ6S0Z4dUlDQWdJQ0FnYzNCeVpXRmtjMmhsWlhRc1hHNGdJQ0FnSUNCNExGeHVJQ0FnSUNBZ2VTeGNiaUFnSUNBZ0lHZHliM1Z3U1dRc1hHNGdJQ0FnSUNCaVlXTnJaM0p2ZFc1a1EyOXNiM0lzWEc0Z0lDQWdJQ0J3Y205alpYTnpMbVZ1ZGk1T1QwUkZYMFZPVmlBOVBUMGdSVTVXTGtSRlZrVk1UMUJOUlU1VUxGeHVJQ0FnSUNrc1hHNGdJQ0FnYkdsdVpTeGNiaUFnSUNBdUxpNXNhVzVsY3l4Y2JpQWdJQ0F1TGk1a2IzUnpMRnh1SUNCZE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJSEpsYm1SbGNsTndjbVZoWkhOb1pXVjBJRDBnS0Z4dUlDQmphR0Z5ZEZSNWNHVTZJSE4wY21sdVp5eGNiaUFnYzNCeVpXRmtjMmhsWlhRNklGTndjbVZoWkhOb1pXVjBMRnh1SUNCNE9pQnVkVzFpWlhJc1hHNGdJSGs2SUc1MWJXSmxjaXhjYmlrNklFTm9ZWEowUld4bGJXVnVkSE1nUFQ0Z2UxeHVJQ0JwWmlBb1kyaGhjblJVZVhCbElEMDlQU0JjSW14cGJtVmNJaWtnZTF4dUlDQWdJSEpsZEhWeWJpQmphR0Z5ZEZSNWNHVk1hVzVsS0hOd2NtVmhaSE5vWldWMExDQjRMQ0I1S1R0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnWTJoaGNuUlVlWEJsUW1GeUtITndjbVZoWkhOb1pXVjBMQ0I0TENCNUtUdGNibjA3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY2hhcnRzLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jbGllbnRzLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY2xpZW50cy50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRDbGllbnRDb2xvcnNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRDbGllbnRDb2xvcnMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldENsaWVudEluaXRpYWxzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0Q2xpZW50SW5pdGlhbHMpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb2xvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vY29sb3JzICovIFxcXCIuLi8uLi9jb2xvcnMudHNcXFwiKTtcXG5cXG5jb25zdCBnZXRDbGllbnRDb2xvcnMgPSAoY2xpZW50SWQsIGFwcFN0YXRlKSA9PiB7XFxuICAgIGlmIChhcHBTdGF0ZSA9PT0gbnVsbCB8fCBhcHBTdGF0ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogYXBwU3RhdGUuY29sbGFib3JhdG9ycykge1xcbiAgICAgICAgY29uc3QgY3VycmVudFVzZXIgPSBhcHBTdGF0ZS5jb2xsYWJvcmF0b3JzLmdldChjbGllbnRJZCk7XFxuICAgICAgICBpZiAoY3VycmVudFVzZXIgPT09IG51bGwgfHwgY3VycmVudFVzZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN1cnJlbnRVc2VyLmNvbG9yKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRVc2VyLmNvbG9yO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIC8vIE5haXZlIHdheSBvZiBnZXR0aW5nIGFuIGludGVnZXIgb3V0IG9mIHRoZSBjbGllbnRJZFxcbiAgICBjb25zdCBzdW0gPSBjbGllbnRJZC5zcGxpdChcXFwiXFxcIikucmVkdWNlKChhLCBzdHIpID0+IGEgKyBzdHIuY2hhckNvZGVBdCgwKSwgMCk7XFxuICAgIC8vIFNraXAgdHJhbnNwYXJlbnQgYmFja2dyb3VuZC5cXG4gICAgY29uc3QgYmFja2dyb3VuZHMgPSBfY29sb3JzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bXFxcImRlZmF1bHRcXFwiXS5lbGVtZW50QmFja2dyb3VuZC5zbGljZSgxKTtcXG4gICAgY29uc3Qgc3Ryb2tlcyA9IF9jb2xvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1tcXFwiZGVmYXVsdFxcXCJdLmVsZW1lbnRTdHJva2Uuc2xpY2UoMSk7XFxuICAgIHJldHVybiB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kc1tzdW0gJSBiYWNrZ3JvdW5kcy5sZW5ndGhdLFxcbiAgICAgICAgc3Ryb2tlOiBzdHJva2VzW3N1bSAlIHN0cm9rZXMubGVuZ3RoXSxcXG4gICAgfTtcXG59O1xcbmNvbnN0IGdldENsaWVudEluaXRpYWxzID0gKHVzZXJuYW1lKSA9PiB7XFxuICAgIGlmICghdXNlcm5hbWUpIHtcXG4gICAgICAgIHJldHVybiBcXFwiP1xcXCI7XFxuICAgIH1cXG4gICAgY29uc3QgbmFtZXMgPSB1c2VybmFtZS50cmltKCkuc3BsaXQoXFxcIiBcXFwiKTtcXG4gICAgaWYgKG5hbWVzLmxlbmd0aCA8IDIpIHtcXG4gICAgICAgIHJldHVybiBuYW1lc1swXS5zdWJzdHJpbmcoMCwgMikudG9VcHBlckNhc2UoKTtcXG4gICAgfVxcbiAgICBjb25zdCBmaXJzdE5hbWUgPSBuYW1lc1swXTtcXG4gICAgY29uc3QgbGFzdE5hbWUgPSBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXTtcXG4gICAgcmV0dXJuIChmaXJzdE5hbWVbMF0gKyBsYXN0TmFtZVswXSkudG9VcHBlckNhc2UoKTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTJ4cFpXNTBjeTUwY3k1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdRVUZCT0VJN1FVRkhka0lzVFVGQlRTeGxRVUZsTEVkQlFVY3NRMEZCUXl4UlFVRm5RaXhGUVVGRkxGRkJRV3RDTEVWQlFVVXNSVUZCUlR0SlFVTjBSU3hKUVVGSkxGRkJRVkVzWVVGQlVpeFJRVUZSTEhWQ1FVRlNMRkZCUVZFc1EwRkJSU3hoUVVGaExFVkJRVVU3VVVGRE0wSXNUVUZCVFN4WFFVRlhMRWRCUVVjc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkRla1FzU1VGQlNTeFhRVUZYTEdGQlFWZ3NWMEZCVnl4MVFrRkJXQ3hYUVVGWExFTkJRVVVzUzBGQlN5eEZRVUZGTzFsQlEzUkNMRTlCUVU4c1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF6dFRRVU14UWp0TFFVTkdPMGxCUTBRc2MwUkJRWE5FTzBsQlEzUkVMRTFCUVUwc1IwRkJSeXhIUVVGSExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRk5VVXNLMEpCUVN0Q08wbEJReTlDTEUxQlFVMHNWMEZCVnl4SFFVRkhMSFZGUVVFNFFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNSRUxFMUJRVTBzVDBGQlR5eEhRVUZITEcxRlFVRXdRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6bERMRTlCUVU4N1VVRkRUQ3hWUVVGVkxFVkJRVVVzVjBGQlZ5eERRVUZETEVkQlFVY3NSMEZCUnl4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVGRE8xRkJRMnBFTEUxQlFVMHNSVUZCUlN4UFFVRlBMRU5CUVVNc1IwRkJSeXhIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTTdTMEZEZEVNc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzUTBGQlF5eFJRVUYzUWl4RlFVRkZMRVZCUVVVN1NVRkROVVFzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlR0UlFVTmlMRTlCUVU4c1IwRkJSeXhEUVVGRE8wdEJRMW83U1VGRFJDeE5RVUZOTEV0QlFVc3NSMEZCUnl4UlFVRlJMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUlhwRExFbEJRVWtzUzBGQlN5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRVZCUVVVN1VVRkRjRUlzVDBGQlR5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJRenRMUVVNdlF6dEpRVVZFTEUxQlFVMHNVMEZCVXl4SFFVRkhMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU16UWl4TlFVRk5MRkZCUVZFc1IwRkJSeXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWNlF5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8wRkJRM0JFTEVOQlFVTXNRMEZCUXlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWpiR2xsYm5SekxuUnpQemRpT0RnaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElHTnZiRzl5Y3lCbWNtOXRJRndpTGk5amIyeHZjbk5jSWp0Y2JtbHRjRzl5ZENCN0lFRndjRk4wWVhSbElIMGdabkp2YlNCY0lpNHZkSGx3WlhOY0lqdGNibHh1Wlhod2IzSjBJR052Ym5OMElHZGxkRU5zYVdWdWRFTnZiRzl5Y3lBOUlDaGpiR2xsYm5SSlpEb2djM1J5YVc1bkxDQmhjSEJUZEdGMFpUb2dRWEJ3VTNSaGRHVXBJRDArSUh0Y2JpQWdhV1lnS0dGd2NGTjBZWFJsUHk1amIyeHNZV0p2Y21GMGIzSnpLU0I3WEc0Z0lDQWdZMjl1YzNRZ1kzVnljbVZ1ZEZWelpYSWdQU0JoY0hCVGRHRjBaUzVqYjJ4c1lXSnZjbUYwYjNKekxtZGxkQ2hqYkdsbGJuUkpaQ2s3WEc0Z0lDQWdhV1lnS0dOMWNuSmxiblJWYzJWeVB5NWpiMnh2Y2lrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdOMWNuSmxiblJWYzJWeUxtTnZiRzl5TzF4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0F2THlCT1lXbDJaU0IzWVhrZ2IyWWdaMlYwZEdsdVp5QmhiaUJwYm5SbFoyVnlJRzkxZENCdlppQjBhR1VnWTJ4cFpXNTBTV1JjYmlBZ1kyOXVjM1FnYzNWdElEMGdZMnhwWlc1MFNXUXVjM0JzYVhRb1hDSmNJaWt1Y21Wa2RXTmxLQ2hoTENCemRISXBJRDArSUdFZ0t5QnpkSEl1WTJoaGNrTnZaR1ZCZENnd0tTd2dNQ2s3WEc1Y2JpQWdMeThnVTJ0cGNDQjBjbUZ1YzNCaGNtVnVkQ0JpWVdOclozSnZkVzVrTGx4dUlDQmpiMjV6ZENCaVlXTnJaM0p2ZFc1a2N5QTlJR052Ykc5eWN5NWxiR1Z0Wlc1MFFtRmphMmR5YjNWdVpDNXpiR2xqWlNneEtUdGNiaUFnWTI5dWMzUWdjM1J5YjJ0bGN5QTlJR052Ykc5eWN5NWxiR1Z0Wlc1MFUzUnliMnRsTG5Oc2FXTmxLREVwTzF4dUlDQnlaWFIxY200Z2UxeHVJQ0FnSUdKaFkydG5jbTkxYm1RNklHSmhZMnRuY205MWJtUnpXM04xYlNBbElHSmhZMnRuY205MWJtUnpMbXhsYm1kMGFGMHNYRzRnSUNBZ2MzUnliMnRsT2lCemRISnZhMlZ6VzNOMWJTQWxJSE4wY205clpYTXViR1Z1WjNSb1hTeGNiaUFnZlR0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm5aWFJEYkdsbGJuUkpibWwwYVdGc2N5QTlJQ2gxYzJWeWJtRnRaVDg2SUhOMGNtbHVaeUI4SUc1MWJHd3BJRDArSUh0Y2JpQWdhV1lnS0NGMWMyVnlibUZ0WlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJjSWo5Y0lqdGNiaUFnZlZ4dUlDQmpiMjV6ZENCdVlXMWxjeUE5SUhWelpYSnVZVzFsTG5SeWFXMG9LUzV6Y0d4cGRDaGNJaUJjSWlrN1hHNWNiaUFnYVdZZ0tHNWhiV1Z6TG14bGJtZDBhQ0E4SURJcElIdGNiaUFnSUNCeVpYUjFjbTRnYm1GdFpYTmJNRjB1YzNWaWMzUnlhVzVuS0RBc0lESXBMblJ2VlhCd1pYSkRZWE5sS0NrN1hHNGdJSDFjYmx4dUlDQmpiMjV6ZENCbWFYSnpkRTVoYldVZ1BTQnVZVzFsYzFzd1hUdGNiaUFnWTI5dWMzUWdiR0Z6ZEU1aGJXVWdQU0J1WVcxbGMxdHVZVzFsY3k1c1pXNW5kR2dnTFNBeFhUdGNibHh1SUNCeVpYUjFjbTRnS0dacGNuTjBUbUZ0WlZzd1hTQXJJR3hoYzNST1lXMWxXekJkS1M1MGIxVndjR1Z5UTJGelpTZ3BPMXh1ZlR0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NsaWVudHMudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NsaXBib2FyZC50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY2xpcGJvYXJkLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZFJlYWRUZXh0XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZFJlYWRUZXh0KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJwcm9iYWJseVN1cHBvcnRzQ2xpcGJvYXJkV3JpdGVUZXh0XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZFdyaXRlVGV4dCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZEJsb2JcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBwcm9iYWJseVN1cHBvcnRzQ2xpcGJvYXJkQmxvYiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiY29weVRvQ2xpcGJvYXJkXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY29weVRvQ2xpcGJvYXJkKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJwYXJzZUNsaXBib2FyZFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHBhcnNlQ2xpcGJvYXJkKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJjb3B5QmxvYlRvQ2xpcGJvYXJkQXNQbmdcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBjb3B5QmxvYlRvQ2xpcGJvYXJkQXNQbmcpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImNvcHlUZXh0VG9TeXN0ZW1DbGlwYm9hcmRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBjb3B5VGV4dFRvU3lzdGVtQ2xpcGJvYXJkKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vc2NlbmUgKi8gXFxcIi4uLy4uL3NjZW5lL2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2VuZV9leHBvcnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vc2NlbmUvZXhwb3J0ICovIFxcXCIuLi8uLi9zY2VuZS9leHBvcnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NoYXJ0c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9jaGFydHMgKi8gXFxcIi4uLy4uL2NoYXJ0cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2NvbnN0YW50cyAqLyBcXFwiLi4vLi4vY29uc3RhbnRzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vZWxlbWVudC90eXBlQ2hlY2tzICovIFxcXCIuLi8uLi9lbGVtZW50L3R5cGVDaGVja3MudHNcXFwiKTtcXG52YXIgX19hd2FpdGVyID0gKHVuZGVmaW5lZCAmJiB1bmRlZmluZWQuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XFxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1xcXCJ0aHJvd1xcXCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XFxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XFxuICAgIH0pO1xcbn07XFxuXFxuXFxuXFxuXFxuXFxubGV0IENMSVBCT0FSRCA9IFxcXCJcXFwiO1xcbmxldCBQUkVGRVJfQVBQX0NMSVBCT0FSRCA9IGZhbHNlO1xcbmNvbnN0IHByb2JhYmx5U3VwcG9ydHNDbGlwYm9hcmRSZWFkVGV4dCA9IFxcXCJjbGlwYm9hcmRcXFwiIGluIG5hdmlnYXRvciAmJiBcXFwicmVhZFRleHRcXFwiIGluIG5hdmlnYXRvci5jbGlwYm9hcmQ7XFxuY29uc3QgcHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZFdyaXRlVGV4dCA9IFxcXCJjbGlwYm9hcmRcXFwiIGluIG5hdmlnYXRvciAmJiBcXFwid3JpdGVUZXh0XFxcIiBpbiBuYXZpZ2F0b3IuY2xpcGJvYXJkO1xcbmNvbnN0IHByb2JhYmx5U3VwcG9ydHNDbGlwYm9hcmRCbG9iID0gXFxcImNsaXBib2FyZFxcXCIgaW4gbmF2aWdhdG9yICYmXFxuICAgIFxcXCJ3cml0ZVxcXCIgaW4gbmF2aWdhdG9yLmNsaXBib2FyZCAmJlxcbiAgICBcXFwiQ2xpcGJvYXJkSXRlbVxcXCIgaW4gd2luZG93ICYmXFxuICAgIFxcXCJ0b0Jsb2JcXFwiIGluIEhUTUxDYW52YXNFbGVtZW50LnByb3RvdHlwZTtcXG5jb25zdCBjbGlwYm9hcmRDb250YWluc0VsZW1lbnRzID0gKGNvbnRlbnRzKSA9PiB7XFxuICAgIGlmIChbXFxuICAgICAgICBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uRVhQT1JUX0RBVEFfVFlQRVMuZXhjYWxpZHJhdyxcXG4gICAgICAgIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5FWFBPUlRfREFUQV9UWVBFUy5leGNhbGlkcmF3Q2xpcGJvYXJkLFxcbiAgICBdLmluY2x1ZGVzKGNvbnRlbnRzID09PSBudWxsIHx8IGNvbnRlbnRzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb250ZW50cy50eXBlKSAmJlxcbiAgICAgICAgQXJyYXkuaXNBcnJheShjb250ZW50cy5lbGVtZW50cykpIHtcXG4gICAgICAgIHJldHVybiB0cnVlO1xcbiAgICB9XFxuICAgIHJldHVybiBmYWxzZTtcXG59O1xcbmNvbnN0IGNvcHlUb0NsaXBib2FyZCA9IChlbGVtZW50cywgYXBwU3RhdGUsIGZpbGVzKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgLy8gc2VsZWN0IGJpbmRlZCB0ZXh0IGVsZW1lbnRzIHdoZW4gY29weWluZ1xcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2V0U2VsZWN0ZWRFbGVtZW50cykoZWxlbWVudHMsIGFwcFN0YXRlLCB0cnVlKTtcXG4gICAgY29uc3QgY29udGVudHMgPSB7XFxuICAgICAgICB0eXBlOiBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uRVhQT1JUX0RBVEFfVFlQRVMuZXhjYWxpZHJhd0NsaXBib2FyZCxcXG4gICAgICAgIGVsZW1lbnRzOiBzZWxlY3RlZEVsZW1lbnRzLFxcbiAgICAgICAgZmlsZXM6IHNlbGVjdGVkRWxlbWVudHMucmVkdWNlKChhY2MsIGVsZW1lbnQpID0+IHtcXG4gICAgICAgICAgICBpZiAoKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmlzSW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnQpKGVsZW1lbnQpICYmIGZpbGVzW2VsZW1lbnQuZmlsZUlkXSkge1xcbiAgICAgICAgICAgICAgICBhY2NbZWxlbWVudC5maWxlSWRdID0gZmlsZXNbZWxlbWVudC5maWxlSWRdO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZXR1cm4gYWNjO1xcbiAgICAgICAgfSwge30pLFxcbiAgICB9O1xcbiAgICBjb25zdCBqc29uID0gSlNPTi5zdHJpbmdpZnkoY29udGVudHMpO1xcbiAgICBDTElQQk9BUkQgPSBqc29uO1xcbiAgICB0cnkge1xcbiAgICAgICAgUFJFRkVSX0FQUF9DTElQQk9BUkQgPSBmYWxzZTtcXG4gICAgICAgIHlpZWxkIGNvcHlUZXh0VG9TeXN0ZW1DbGlwYm9hcmQoanNvbik7XFxuICAgIH1cXG4gICAgY2F0Y2ggKGVycm9yKSB7XFxuICAgICAgICBQUkVGRVJfQVBQX0NMSVBCT0FSRCA9IHRydWU7XFxuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcXG4gICAgfVxcbn0pO1xcbmNvbnN0IGdldEFwcENsaXBib2FyZCA9ICgpID0+IHtcXG4gICAgaWYgKCFDTElQQk9BUkQpIHtcXG4gICAgICAgIHJldHVybiB7fTtcXG4gICAgfVxcbiAgICB0cnkge1xcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoQ0xJUEJPQVJEKTtcXG4gICAgfVxcbiAgICBjYXRjaCAoZXJyb3IpIHtcXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xcbiAgICAgICAgcmV0dXJuIHt9O1xcbiAgICB9XFxufTtcXG5jb25zdCBwYXJzZVBvdGVudGlhbFNwcmVhZHNoZWV0ID0gKHRleHQpID0+IHtcXG4gICAgY29uc3QgcmVzdWx0ID0gKDAsX2NoYXJ0c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnRyeVBhcnNlU3ByZWFkc2hlZXQpKHRleHQpO1xcbiAgICBpZiAocmVzdWx0LnR5cGUgPT09IF9jaGFydHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5WQUxJRF9TUFJFQURTSEVFVCkge1xcbiAgICAgICAgcmV0dXJuIHsgc3ByZWFkc2hlZXQ6IHJlc3VsdC5zcHJlYWRzaGVldCB9O1xcbiAgICB9XFxuICAgIHJldHVybiBudWxsO1xcbn07XFxuLyoqXFxuICogUmV0cmlldmVzIGNvbnRlbnQgZnJvbSBzeXN0ZW0gY2xpcGJvYXJkIChlaXRoZXIgZnJvbSBDbGlwYm9hcmRFdmVudCBvclxcbiAqICB2aWEgYXN5bmMgY2xpcGJvYXJkIEFQSSBpZiBzdXBwb3J0ZWQpXFxuICovXFxuY29uc3QgZ2V0U3lzdGVtQ2xpcGJvYXJkID0gKGV2ZW50KSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgdmFyIF9hO1xcbiAgICB0cnkge1xcbiAgICAgICAgY29uc3QgdGV4dCA9IGV2ZW50XFxuICAgICAgICAgICAgPyAoX2EgPSBldmVudC5jbGlwYm9hcmREYXRhKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0RGF0YShcXFwidGV4dC9wbGFpblxcXCIpLnRyaW0oKVxcbiAgICAgICAgICAgIDogcHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZFJlYWRUZXh0ICYmXFxuICAgICAgICAgICAgICAgICh5aWVsZCBuYXZpZ2F0b3IuY2xpcGJvYXJkLnJlYWRUZXh0KCkpO1xcbiAgICAgICAgcmV0dXJuIHRleHQgfHwgXFxcIlxcXCI7XFxuICAgIH1cXG4gICAgY2F0Y2ggKF9iKSB7XFxuICAgICAgICByZXR1cm4gXFxcIlxcXCI7XFxuICAgIH1cXG59KTtcXG4vKipcXG4gKiBBdHRlbXBzIHRvIHBhcnNlIGNsaXBib2FyZC4gUHJlZmVycyBzeXN0ZW0gY2xpcGJvYXJkLlxcbiAqL1xcbmNvbnN0IHBhcnNlQ2xpcGJvYXJkID0gKGV2ZW50KSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgY29uc3Qgc3lzdGVtQ2xpcGJvYXJkID0geWllbGQgZ2V0U3lzdGVtQ2xpcGJvYXJkKGV2ZW50KTtcXG4gICAgLy8gaWYgc3lzdGVtIGNsaXBib2FyZCBlbXB0eSwgY291bGRuJ3QgYmUgcmVzb2x2ZWQsIG9yIGNvbnRhaW5zIHByZXZpb3VzbHlcXG4gICAgLy8gY29waWVkIGV4Y2FsaWRyYXcgc2NlbmUgYXMgU1ZHLCBmYWxsIGJhY2sgdG8gcHJldmlvdXNseSBjb3BpZWQgZXhjYWxpZHJhd1xcbiAgICAvLyBlbGVtZW50c1xcbiAgICBpZiAoIXN5c3RlbUNsaXBib2FyZCB8fCBzeXN0ZW1DbGlwYm9hcmQuaW5jbHVkZXMoX3NjZW5lX2V4cG9ydF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlNWR19FWFBPUlRfVEFHKSkge1xcbiAgICAgICAgcmV0dXJuIGdldEFwcENsaXBib2FyZCgpO1xcbiAgICB9XFxuICAgIC8vIGlmIHN5c3RlbSBjbGlwYm9hcmQgY29udGFpbnMgc3ByZWFkc2hlZXQsIHVzZSBpdCBldmVuIHRob3VnaCBpdCdzXFxuICAgIC8vIHRlY2huaWNhbGx5IHBvc3NpYmxlIGl0J3Mgc3RhbGVyIHRoYW4gaW4tYXBwIGNsaXBib2FyZFxcbiAgICBjb25zdCBzcHJlYWRzaGVldFJlc3VsdCA9IHBhcnNlUG90ZW50aWFsU3ByZWFkc2hlZXQoc3lzdGVtQ2xpcGJvYXJkKTtcXG4gICAgaWYgKHNwcmVhZHNoZWV0UmVzdWx0KSB7XFxuICAgICAgICByZXR1cm4gc3ByZWFkc2hlZXRSZXN1bHQ7XFxuICAgIH1cXG4gICAgY29uc3QgYXBwQ2xpcGJvYXJkRGF0YSA9IGdldEFwcENsaXBib2FyZCgpO1xcbiAgICB0cnkge1xcbiAgICAgICAgY29uc3Qgc3lzdGVtQ2xpcGJvYXJkRGF0YSA9IEpTT04ucGFyc2Uoc3lzdGVtQ2xpcGJvYXJkKTtcXG4gICAgICAgIGlmIChjbGlwYm9hcmRDb250YWluc0VsZW1lbnRzKHN5c3RlbUNsaXBib2FyZERhdGEpKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgZWxlbWVudHM6IHN5c3RlbUNsaXBib2FyZERhdGEuZWxlbWVudHMsXFxuICAgICAgICAgICAgICAgIGZpbGVzOiBzeXN0ZW1DbGlwYm9hcmREYXRhLmZpbGVzLFxcbiAgICAgICAgICAgIH07XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gYXBwQ2xpcGJvYXJkRGF0YTtcXG4gICAgfVxcbiAgICBjYXRjaCAoX2MpIHtcXG4gICAgICAgIC8vIHN5c3RlbSBjbGlwYm9hcmQgZG9lc24ndCBjb250YWluIGV4Y2FsaWRyYXcgZWxlbWVudHMgXHUyMTkyIHJldHVybiBwbGFpbnRleHRcXG4gICAgICAgIC8vIHVubGVzcyB3ZSBzZXQgYSBmbGFnIHRvIHByZWZlciBpbi1hcHAgY2xpcGJvYXJkIGJlY2F1c2UgYnJvd3NlciBkaWRuJ3RcXG4gICAgICAgIC8vIHN1cHBvcnQgc3RvcmluZyB0byBzeXN0ZW0gY2xpcGJvYXJkIG9uIGNvcHlcXG4gICAgICAgIHJldHVybiBQUkVGRVJfQVBQX0NMSVBCT0FSRCAmJiBhcHBDbGlwYm9hcmREYXRhLmVsZW1lbnRzXFxuICAgICAgICAgICAgPyBhcHBDbGlwYm9hcmREYXRhXFxuICAgICAgICAgICAgOiB7IHRleHQ6IHN5c3RlbUNsaXBib2FyZCB9O1xcbiAgICB9XFxufSk7XFxuY29uc3QgY29weUJsb2JUb0NsaXBib2FyZEFzUG5nID0gKGJsb2IpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICB5aWVsZCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlKFtcXG4gICAgICAgIG5ldyB3aW5kb3cuQ2xpcGJvYXJkSXRlbSh7IFtfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uTUlNRV9UWVBFUy5wbmddOiBibG9iIH0pLFxcbiAgICBdKTtcXG59KTtcXG5jb25zdCBjb3B5VGV4dFRvU3lzdGVtQ2xpcGJvYXJkID0gKHRleHQpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICBsZXQgY29waWVkID0gZmFsc2U7XFxuICAgIGlmIChwcm9iYWJseVN1cHBvcnRzQ2xpcGJvYXJkV3JpdGVUZXh0KSB7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIC8vIE5PVEU6IGRvZXNuJ3Qgd29yayBvbiBGRiBvbiBub24tSFRUUFMgZG9tYWlucywgb3Igd2hlbiBkb2N1bWVudFxcbiAgICAgICAgICAgIC8vIG5vdCBmb2N1c2VkXFxuICAgICAgICAgICAgeWllbGQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dCB8fCBcXFwiXFxcIik7XFxuICAgICAgICAgICAgY29waWVkID0gdHJ1ZTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIC8vIE5vdGUgdGhhdCBleGVjQ29tbWFuZCBkb2Vzbid0IGFsbG93IGNvcHlpbmcgZW1wdHkgc3RyaW5ncywgc28gaWYgd2UncmVcXG4gICAgLy8gY2xlYXJpbmcgY2xpcGJvYXJkIHVzaW5nIHRoaXMgQVBJLCB3ZSBtdXN0IGNvcHkgYXQgbGVhc3QgYW4gZW1wdHkgY2hhclxcbiAgICBpZiAoIWNvcGllZCAmJiAhY29weVRleHRWaWFFeGVjQ29tbWFuZCh0ZXh0IHx8IFxcXCIgXFxcIikpIHtcXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcXFwiY291bGRuJ3QgY29weVxcXCIpO1xcbiAgICB9XFxufSk7XFxuLy8gYWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS96ZW5vcm9jaGEvY2xpcGJvYXJkLmpzL2Jsb2IvY2U3OWYxNzBhYTY1NWM0MDhiNmFhYjMzYzk0NzJlOGU0ZmE1MmUxOS9zcmMvY2xpcGJvYXJkLWFjdGlvbi5qcyNMNDhcXG5jb25zdCBjb3B5VGV4dFZpYUV4ZWNDb21tYW5kID0gKHRleHQpID0+IHtcXG4gICAgY29uc3QgaXNSVEwgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKFxcXCJkaXJcXFwiKSA9PT0gXFxcInJ0bFxcXCI7XFxuICAgIGNvbnN0IHRleHRhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcXFwidGV4dGFyZWFcXFwiKTtcXG4gICAgdGV4dGFyZWEuc3R5bGUuYm9yZGVyID0gXFxcIjBcXFwiO1xcbiAgICB0ZXh0YXJlYS5zdHlsZS5wYWRkaW5nID0gXFxcIjBcXFwiO1xcbiAgICB0ZXh0YXJlYS5zdHlsZS5tYXJnaW4gPSBcXFwiMFxcXCI7XFxuICAgIHRleHRhcmVhLnN0eWxlLnBvc2l0aW9uID0gXFxcImFic29sdXRlXFxcIjtcXG4gICAgdGV4dGFyZWEuc3R5bGVbaXNSVEwgPyBcXFwicmlnaHRcXFwiIDogXFxcImxlZnRcXFwiXSA9IFxcXCItOTk5OXB4XFxcIjtcXG4gICAgY29uc3QgeVBvc2l0aW9uID0gd2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7XFxuICAgIHRleHRhcmVhLnN0eWxlLnRvcCA9IGAke3lQb3NpdGlvbn1weGA7XFxuICAgIC8vIFByZXZlbnQgem9vbWluZyBvbiBpT1NcXG4gICAgdGV4dGFyZWEuc3R5bGUuZm9udFNpemUgPSBcXFwiMTJwdFxcXCI7XFxuICAgIHRleHRhcmVhLnNldEF0dHJpYnV0ZShcXFwicmVhZG9ubHlcXFwiLCBcXFwiXFxcIik7XFxuICAgIHRleHRhcmVhLnZhbHVlID0gdGV4dDtcXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXh0YXJlYSk7XFxuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XFxuICAgIHRyeSB7XFxuICAgICAgICB0ZXh0YXJlYS5zZWxlY3QoKTtcXG4gICAgICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDAsIHRleHRhcmVhLnZhbHVlLmxlbmd0aCk7XFxuICAgICAgICBzdWNjZXNzID0gZG9jdW1lbnQuZXhlY0NvbW1hbmQoXFxcImNvcHlcXFwiKTtcXG4gICAgfVxcbiAgICBjYXRjaCAoZXJyb3IpIHtcXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xcbiAgICB9XFxuICAgIHRleHRhcmVhLnJlbW92ZSgpO1xcbiAgICByZXR1cm4gc3VjY2VzcztcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTJ4cGNHSnZZWEprTG5SekxtcHpJaXdpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRCUVVrNFF6dEJRVVZGTzBGQlF5dENPMEZCUTI1Q08wRkJRMHM3UVVGblFtcEZMRWxCUVVrc1UwRkJVeXhIUVVGSExFVkJRVVVzUTBGQlF6dEJRVU51UWl4SlFVRkpMRzlDUVVGdlFpeEhRVUZITEV0QlFVc3NRMEZCUXp0QlFVVXhRaXhOUVVGTkxHbERRVUZwUXl4SFFVTTFReXhYUVVGWExFbEJRVWtzVTBGQlV5eEpRVUZKTEZWQlFWVXNTVUZCU1N4VFFVRlRMRU5CUVVNc1UwRkJVeXhEUVVGRE8wRkJSWHBFTEUxQlFVMHNhME5CUVd0RExFZEJRemRETEZkQlFWY3NTVUZCU1N4VFFVRlRMRWxCUVVrc1YwRkJWeXhKUVVGSkxGTkJRVk1zUTBGQlF5eFRRVUZUTEVOQlFVTTdRVUZGTVVRc1RVRkJUU3cyUWtGQk5rSXNSMEZEZUVNc1YwRkJWeXhKUVVGSkxGTkJRVk03U1VGRGVFSXNUMEZCVHl4SlFVRkpMRk5CUVZNc1EwRkJReXhUUVVGVE8wbEJRemxDTEdWQlFXVXNTVUZCU1N4TlFVRk5PMGxCUTNwQ0xGRkJRVkVzU1VGQlNTeHBRa0ZCYVVJc1EwRkJReXhUUVVGVExFTkJRVU03UVVGRk1VTXNUVUZCVFN4NVFrRkJlVUlzUjBGQlJ5eERRVU5vUXl4UlFVRmhMRVZCUTNWRUxFVkJRVVU3U1VGRGRFVXNTVUZEUlR0UlFVTkZMRzlGUVVFMFFqdFJRVU0xUWl3MlJVRkJjVU03UzBGRGRFTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1VVRkJVU3hoUVVGU0xGRkJRVkVzZFVKQlFWSXNVVUZCVVN4RFFVRkZMRWxCUVVrc1EwRkJRenRSUVVNeFFpeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGRGFFTTdVVUZEUVN4UFFVRlBMRWxCUVVrc1EwRkJRenRMUVVOaU8wbEJRMFFzVDBGQlR5eExRVUZMTEVOQlFVTTdRVUZEWml4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxHVkJRV1VzUjBGQlJ5eERRVU0zUWl4UlFVRm5SQ3hGUVVOb1JDeFJRVUZyUWl4RlFVTnNRaXhMUVVGclFpeEZRVU5zUWl4RlFVRkZPMGxCUTBZc01rTkJRVEpETzBsQlF6TkRMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NNa1JCUVcxQ0xFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVOMlJTeE5RVUZOTEZGQlFWRXNSMEZCYzBJN1VVRkRiRU1zU1VGQlNTeEZRVUZGTERaRlFVRnhRenRSUVVNelF5eFJRVUZSTEVWQlFVVXNaMEpCUVdkQ08xRkJRekZDTEV0QlFVc3NSVUZCUlN4blFrRkJaMElzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFVkJRVVU3V1VGRE9VTXNTVUZCU1N3NFJVRkJlVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTzJkQ1FVTXZSQ3hIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdZVUZETjBNN1dVRkRSQ3hQUVVGUExFZEJRVWNzUTBGQlF6dFJRVU5pTEVOQlFVTXNSVUZCUlN4RlFVRnBRaXhEUVVGRE8wdEJRM1JDTEVOQlFVTTdTVUZEUml4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMGxCUTNSRExGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTTdTVUZEYWtJc1NVRkJTVHRSUVVOR0xHOUNRVUZ2UWl4SFFVRkhMRXRCUVVzc1EwRkJRenRSUVVNM1FpeE5RVUZOTEhsQ1FVRjVRaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzB0QlEzWkRPMGxCUVVNc1QwRkJUeXhMUVVGVkxFVkJRVVU3VVVGRGJrSXNiMEpCUVc5Q0xFZEJRVWNzU1VGQlNTeERRVUZETzFGQlF6VkNMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdTMEZEZEVJN1FVRkRTQ3hEUVVGRExFVkJRVU03UVVGRlJpeE5RVUZOTEdWQlFXVXNSMEZCUnl4SFFVRXJRaXhGUVVGRk8wbEJRM1pFTEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVN1VVRkRaQ3hQUVVGUExFVkJRVVVzUTBGQlF6dExRVU5ZTzBsQlJVUXNTVUZCU1R0UlFVTkdMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0TFFVTTVRanRKUVVGRExFOUJRVThzUzBGQlZTeEZRVUZGTzFGQlEyNUNMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEY2tJc1QwRkJUeXhGUVVGRkxFTkJRVU03UzBGRFdEdEJRVU5JTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc2VVSkJRWGxDTEVkQlFVY3NRMEZEYUVNc1NVRkJXU3hGUVVOdlJDeEZRVUZGTzBsQlEyeEZMRTFCUVUwc1RVRkJUU3hIUVVGSExEUkVRVUZ0UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRM3BETEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1MwRkJTeXh6UkVGQmFVSXNSVUZCUlR0UlFVTnlReXhQUVVGUExFVkJRVVVzVjBGQlZ5eEZRVUZGTEUxQlFVMHNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJRenRMUVVNMVF6dEpRVU5FTEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJRc1EwRkJReXhEUVVGRE8wRkJSVVk3T3p0SFFVZEhPMEZCUTBnc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4RFFVTjZRaXhMUVVFMFFpeEZRVU5ZTEVWQlFVVTdPMGxCUTI1Q0xFbEJRVWs3VVVGRFJpeE5RVUZOTEVsQlFVa3NSMEZCUnl4TFFVRkxPMWxCUTJoQ0xFTkJRVU1zUTBGQlF5eFhRVUZMTEVOQlFVTXNZVUZCWVN3d1EwRkJSU3hQUVVGUExFTkJRVU1zV1VGQldTeEZRVUZGTEVsQlFVa3NSVUZCUlR0WlFVTnVSQ3hEUVVGRExFTkJRVU1zYVVOQlFXbERPMmRDUVVOcVF5eERRVUZETEUxQlFVMHNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlJUTkRMRTlCUVU4c1NVRkJTU3hKUVVGSkxFVkJRVVVzUTBGQlF6dExRVU51UWp0SlFVRkRMRmRCUVUwN1VVRkRUaXhQUVVGUExFVkJRVVVzUTBGQlF6dExRVU5ZTzBGQlEwZ3NRMEZCUXl4RlFVRkRPMEZCUlVZN08wZEJSVWM3UVVGRFNTeE5RVUZOTEdOQlFXTXNSMEZCUnl4RFFVTTFRaXhMUVVFMFFpeEZRVU5LTEVWQlFVVTdTVUZETVVJc1RVRkJUU3hsUVVGbExFZEJRVWNzVFVGQlRTeHJRa0ZCYTBJc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVVY0UkN3d1JVRkJNRVU3U1VGRE1VVXNORVZCUVRSRk8wbEJRelZGTEZkQlFWYzdTVUZEV0N4SlFVRkpMRU5CUVVNc1pVRkJaU3hKUVVGSkxHVkJRV1VzUTBGQlF5eFJRVUZSTEVOQlFVTXNlVVJCUVdNc1EwRkJReXhGUVVGRk8xRkJRMmhGTEU5QlFVOHNaVUZCWlN4RlFVRkZMRU5CUVVNN1MwRkRNVUk3U1VGRlJDeHZSVUZCYjBVN1NVRkRjRVVzZVVSQlFYbEVPMGxCUTNwRUxFMUJRVTBzYVVKQlFXbENMRWRCUVVjc2VVSkJRWGxDTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNN1NVRkRja1VzU1VGQlNTeHBRa0ZCYVVJc1JVRkJSVHRSUVVOeVFpeFBRVUZQTEdsQ1FVRnBRaXhEUVVGRE8wdEJRekZDTzBsQlJVUXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eGxRVUZsTEVWQlFVVXNRMEZCUXp0SlFVVXpReXhKUVVGSk8xRkJRMFlzVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRPMUZCUTNoRUxFbEJRVWtzZVVKQlFYbENMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNSVUZCUlR0WlFVTnNSQ3hQUVVGUE8yZENRVU5NTEZGQlFWRXNSVUZCUlN4dFFrRkJiVUlzUTBGQlF5eFJRVUZSTzJkQ1FVTjBReXhMUVVGTExFVkJRVVVzYlVKQlFXMUNMRU5CUVVNc1MwRkJTenRoUVVOcVF5eERRVUZETzFOQlEwZzdVVUZEUkN4UFFVRlBMR2RDUVVGblFpeERRVUZETzB0QlEzcENPMGxCUVVNc1YwRkJUVHRSUVVOT0xEQkZRVUV3UlR0UlFVTXhSU3g1UlVGQmVVVTdVVUZEZWtVc09FTkJRVGhETzFGQlF6bERMRTlCUVU4c2IwSkJRVzlDTEVsQlFVa3NaMEpCUVdkQ0xFTkJRVU1zVVVGQlVUdFpRVU4wUkN4RFFVRkRMRU5CUVVNc1owSkJRV2RDTzFsQlEyeENMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUlVGQlJTeGxRVUZsTEVWQlFVVXNRMEZCUXp0TFFVTXZRanRCUVVOSUxFTkJRVU1zUlVGQlF6dEJRVVZMTEUxQlFVMHNkMEpCUVhkQ0xFZEJRVWNzUTBGQlR5eEpRVUZWTEVWQlFVVXNSVUZCUlR0SlFVTXpSQ3hOUVVGTkxGTkJRVk1zUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUXpsQ0xFbEJRVWtzVFVGQlRTeERRVUZETEdGQlFXRXNRMEZCUXl4RlFVRkZMRU5CUVVNc2MwUkJRV01zUTBGQlF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVRkRPMHRCUTNKRUxFTkJRVU1zUTBGQlF6dEJRVU5NTEVOQlFVTXNSVUZCUXp0QlFVVkxMRTFCUVUwc2VVSkJRWGxDTEVkQlFVY3NRMEZCVHl4SlFVRnRRaXhGUVVGRkxFVkJRVVU3U1VGRGNrVXNTVUZCU1N4TlFVRk5MRWRCUVVjc1MwRkJTeXhEUVVGRE8wbEJRMjVDTEVsQlFVa3NhME5CUVd0RExFVkJRVVU3VVVGRGRFTXNTVUZCU1R0WlFVTkdMR3RGUVVGclJUdFpRVU5zUlN4alFVRmpPMWxCUTJRc1RVRkJUU3hUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRGFFUXNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJRenRUUVVObU8xRkJRVU1zVDBGQlR5eExRVUZWTEVWQlFVVTdXVUZEYmtJc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0VFFVTjBRanRMUVVOR08wbEJSVVFzZVVWQlFYbEZPMGxCUTNwRkxIbEZRVUY1UlR0SlFVTjZSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUTI1RUxFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNN1MwRkRiRU03UVVGRFNDeERRVUZETEVWQlFVTTdRVUZGUml4dFNVRkJiVWs3UVVGRGJra3NUVUZCVFN4elFrRkJjMElzUjBGQlJ5eERRVUZETEVsQlFWa3NSVUZCUlN4RlFVRkZPMGxCUXpsRExFMUJRVTBzUzBGQlN5eEhRVUZITEZGQlFWRXNRMEZCUXl4bFFVRmxMRU5CUVVNc1dVRkJXU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEV0QlFVc3NRMEZCUXp0SlFVVnlSU3hOUVVGTkxGRkJRVkVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNZVUZCWVN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wbEJSWEJFTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hIUVVGSExFZEJRVWNzUTBGQlF6dEpRVU0xUWl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUjBGQlJ5eEhRVUZITEVOQlFVTTdTVUZETjBJc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4RFFVRkRPMGxCUXpWQ0xGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4SFFVRkhMRlZCUVZVc1EwRkJRenRKUVVOeVF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU03U1VGRGNrUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1RVRkJUU3hEUVVGRExGZEJRVmNzU1VGQlNTeFJRVUZSTEVOQlFVTXNaVUZCWlN4RFFVRkRMRk5CUVZNc1EwRkJRenRKUVVNelJTeFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1IwRkJSeXhIUVVGSExGTkJRVk1zU1VGQlNTeERRVUZETzBsQlEzUkRMSGxDUVVGNVFqdEpRVU42UWl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUjBGQlJ5eE5RVUZOTEVOQlFVTTdTVUZGYWtNc1VVRkJVU3hEUVVGRExGbEJRVmtzUTBGQlF5eFZRVUZWTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRkRU1zVVVGQlVTeERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNN1NVRkZkRUlzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03U1VGRmNFTXNTVUZCU1N4UFFVRlBMRWRCUVVjc1MwRkJTeXhEUVVGRE8wbEJSWEJDTEVsQlFVazdVVUZEUml4UlFVRlJMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03VVVGRGJFSXNVVUZCVVN4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTXNSVUZCUlN4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlJYSkVMRTlCUVU4c1IwRkJSeXhSUVVGUkxFTkJRVU1zVjBGQlZ5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMHRCUTNoRE8wbEJRVU1zVDBGQlR5eExRVUZWTEVWQlFVVTdVVUZEYmtJc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0TFFVTjBRanRKUVVWRUxGRkJRVkVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0SlFVVnNRaXhQUVVGUExFOUJRVThzUTBGQlF6dEJRVU5xUWl4RFFVRkRMRU5CUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZMnhwY0dKdllYSmtMblJ6UHpjeVlUUWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHRjYmlBZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5Rc1hHNGdJRTV2YmtSbGJHVjBaV1JGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ3hjYm4wZ1puSnZiU0JjSWk0dlpXeGxiV1Z1ZEM5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1oyVjBVMlZzWldOMFpXUkZiR1Z0Wlc1MGN5QjlJR1p5YjIwZ1hDSXVMM05qWlc1bFhDSTdYRzVwYlhCdmNuUWdleUJCY0hCVGRHRjBaU3dnUW1sdVlYSjVSbWxzWlhNZ2ZTQm1jbTl0SUZ3aUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dVMVpIWDBWWVVFOVNWRjlVUVVjZ2ZTQm1jbTl0SUZ3aUxpOXpZMlZ1WlM5bGVIQnZjblJjSWp0Y2JtbHRjRzl5ZENCN0lIUnllVkJoY25ObFUzQnlaV0ZrYzJobFpYUXNJRk53Y21WaFpITm9aV1YwTENCV1FVeEpSRjlUVUZKRlFVUlRTRVZGVkNCOUlHWnliMjBnWENJdUwyTm9ZWEowYzF3aU8xeHVhVzF3YjNKMElIc2dSVmhRVDFKVVgwUkJWRUZmVkZsUVJWTXNJRTFKVFVWZlZGbFFSVk1nZlNCbWNtOXRJRndpTGk5amIyNXpkR0Z1ZEhOY0lqdGNibWx0Y0c5eWRDQjdJR2x6U1c1cGRHbGhiR2w2WldSSmJXRm5aVVZzWlcxbGJuUWdmU0JtY205dElGd2lMaTlsYkdWdFpXNTBMM1I1Y0dWRGFHVmphM05jSWp0Y2JseHVkSGx3WlNCRmJHVnRaVzUwYzBOc2FYQmliMkZ5WkNBOUlIdGNiaUFnZEhsd1pUb2dkSGx3Wlc5bUlFVllVRTlTVkY5RVFWUkJYMVJaVUVWVExtVjRZMkZzYVdSeVlYZERiR2x3WW05aGNtUTdYRzRnSUdWc1pXMWxiblJ6T2lCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZE8xeHVJQ0JtYVd4bGN6b2dRbWx1WVhKNVJtbHNaWE1nZkNCMWJtUmxabWx1WldRN1hHNTlPMXh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVOc2FYQmliMkZ5WkVSaGRHRWdlMXh1SUNCemNISmxZV1J6YUdWbGREODZJRk53Y21WaFpITm9aV1YwTzF4dUlDQmxiR1Z0Wlc1MGN6ODZJSEpsWVdSdmJteDVJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTA3WEc0Z0lHWnBiR1Z6UHpvZ1FtbHVZWEo1Um1sc1pYTTdYRzRnSUhSbGVIUS9PaUJ6ZEhKcGJtYzdYRzRnSUdWeWNtOXlUV1Z6YzJGblpUODZJSE4wY21sdVp6dGNibjFjYmx4dWJHVjBJRU5NU1ZCQ1QwRlNSQ0E5SUZ3aVhDSTdYRzVzWlhRZ1VGSkZSa1ZTWDBGUVVGOURURWxRUWs5QlVrUWdQU0JtWVd4elpUdGNibHh1Wlhod2IzSjBJR052Ym5OMElIQnliMkpoWW14NVUzVndjRzl5ZEhORGJHbHdZbTloY21SU1pXRmtWR1Y0ZENBOVhHNGdJRndpWTJ4cGNHSnZZWEprWENJZ2FXNGdibUYyYVdkaGRHOXlJQ1ltSUZ3aWNtVmhaRlJsZUhSY0lpQnBiaUJ1WVhacFoyRjBiM0l1WTJ4cGNHSnZZWEprTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnY0hKdlltRmliSGxUZFhCd2IzSjBjME5zYVhCaWIyRnlaRmR5YVhSbFZHVjRkQ0E5WEc0Z0lGd2lZMnhwY0dKdllYSmtYQ0lnYVc0Z2JtRjJhV2RoZEc5eUlDWW1JRndpZDNKcGRHVlVaWGgwWENJZ2FXNGdibUYyYVdkaGRHOXlMbU5zYVhCaWIyRnlaRHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJSEJ5YjJKaFlteDVVM1Z3Y0c5eWRITkRiR2x3WW05aGNtUkNiRzlpSUQxY2JpQWdYQ0pqYkdsd1ltOWhjbVJjSWlCcGJpQnVZWFpwWjJGMGIzSWdKaVpjYmlBZ1hDSjNjbWwwWlZ3aUlHbHVJRzVoZG1sbllYUnZjaTVqYkdsd1ltOWhjbVFnSmlaY2JpQWdYQ0pEYkdsd1ltOWhjbVJKZEdWdFhDSWdhVzRnZDJsdVpHOTNJQ1ltWEc0Z0lGd2lkRzlDYkc5aVhDSWdhVzRnU0ZSTlRFTmhiblpoYzBWc1pXMWxiblF1Y0hKdmRHOTBlWEJsTzF4dVhHNWpiMjV6ZENCamJHbHdZbTloY21SRGIyNTBZV2x1YzBWc1pXMWxiblJ6SUQwZ0tGeHVJQ0JqYjI1MFpXNTBjem9nWVc1NUxGeHVLVG9nWTI5dWRHVnVkSE1nYVhNZ2V5QmxiR1Z0Wlc1MGN6b2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYVHNnWm1sc1pYTS9PaUJDYVc1aGNubEdhV3hsY3lCOUlEMCtJSHRjYmlBZ2FXWWdLRnh1SUNBZ0lGdGNiaUFnSUNBZ0lFVllVRTlTVkY5RVFWUkJYMVJaVUVWVExtVjRZMkZzYVdSeVlYY3NYRzRnSUNBZ0lDQkZXRkJQVWxSZlJFRlVRVjlVV1ZCRlV5NWxlR05oYkdsa2NtRjNRMnhwY0dKdllYSmtMRnh1SUNBZ0lGMHVhVzVqYkhWa1pYTW9ZMjl1ZEdWdWRITS9MblI1Y0dVcElDWW1YRzRnSUNBZ1FYSnlZWGt1YVhOQmNuSmhlU2hqYjI1MFpXNTBjeTVsYkdWdFpXNTBjeWxjYmlBZ0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUgxY2JpQWdjbVYwZFhKdUlHWmhiSE5sTzF4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHTnZjSGxVYjBOc2FYQmliMkZ5WkNBOUlHRnplVzVqSUNoY2JpQWdaV3hsYldWdWRITTZJSEpsWVdSdmJteDVJRTV2YmtSbGJHVjBaV1JGZUdOaGJHbGtjbUYzUld4bGJXVnVkRnRkTEZ4dUlDQmhjSEJUZEdGMFpUb2dRWEJ3VTNSaGRHVXNYRzRnSUdacGJHVnpPaUJDYVc1aGNubEdhV3hsY3l4Y2Jpa2dQVDRnZTF4dUlDQXZMeUJ6Wld4bFkzUWdZbWx1WkdWa0lIUmxlSFFnWld4bGJXVnVkSE1nZDJobGJpQmpiM0I1YVc1blhHNGdJR052Ym5OMElITmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNZ1BTQm5aWFJUWld4bFkzUmxaRVZzWlcxbGJuUnpLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU3dnZEhKMVpTazdYRzRnSUdOdmJuTjBJR052Ym5SbGJuUnpPaUJGYkdWdFpXNTBjME5zYVhCaWIyRnlaQ0E5SUh0Y2JpQWdJQ0IwZVhCbE9pQkZXRkJQVWxSZlJFRlVRVjlVV1ZCRlV5NWxlR05oYkdsa2NtRjNRMnhwY0dKdllYSmtMRnh1SUNBZ0lHVnNaVzFsYm5Sek9pQnpaV3hsWTNSbFpFVnNaVzFsYm5SekxGeHVJQ0FnSUdacGJHVnpPaUJ6Wld4bFkzUmxaRVZzWlcxbGJuUnpMbkpsWkhWalpTZ29ZV05qTENCbGJHVnRaVzUwS1NBOVBpQjdYRzRnSUNBZ0lDQnBaaUFvYVhOSmJtbDBhV0ZzYVhwbFpFbHRZV2RsUld4bGJXVnVkQ2hsYkdWdFpXNTBLU0FtSmlCbWFXeGxjMXRsYkdWdFpXNTBMbVpwYkdWSlpGMHBJSHRjYmlBZ0lDQWdJQ0FnWVdOalcyVnNaVzFsYm5RdVptbHNaVWxrWFNBOUlHWnBiR1Z6VzJWc1pXMWxiblF1Wm1sc1pVbGtYVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQmhZMk03WEc0Z0lDQWdmU3dnZTMwZ1lYTWdRbWx1WVhKNVJtbHNaWE1wTEZ4dUlDQjlPMXh1SUNCamIyNXpkQ0JxYzI5dUlEMGdTbE5QVGk1emRISnBibWRwWm5rb1kyOXVkR1Z1ZEhNcE8xeHVJQ0JEVEVsUVFrOUJVa1FnUFNCcWMyOXVPMXh1SUNCMGNua2dlMXh1SUNBZ0lGQlNSVVpGVWw5QlVGQmZRMHhKVUVKUFFWSkVJRDBnWm1Gc2MyVTdYRzRnSUNBZ1lYZGhhWFFnWTI5d2VWUmxlSFJVYjFONWMzUmxiVU5zYVhCaWIyRnlaQ2hxYzI5dUtUdGNiaUFnZlNCallYUmphQ0FvWlhKeWIzSTZJR0Z1ZVNrZ2UxeHVJQ0FnSUZCU1JVWkZVbDlCVUZCZlEweEpVRUpQUVZKRUlEMGdkSEoxWlR0Y2JpQWdJQ0JqYjI1emIyeGxMbVZ5Y205eUtHVnljbTl5S1R0Y2JpQWdmVnh1ZlR0Y2JseHVZMjl1YzNRZ1oyVjBRWEJ3UTJ4cGNHSnZZWEprSUQwZ0tDazZJRkJoY25ScFlXdzhSV3hsYldWdWRITkRiR2x3WW05aGNtUStJRDArSUh0Y2JpQWdhV1lnS0NGRFRFbFFRazlCVWtRcElIdGNiaUFnSUNCeVpYUjFjbTRnZTMwN1hHNGdJSDFjYmx4dUlDQjBjbmtnZTF4dUlDQWdJSEpsZEhWeWJpQktVMDlPTG5CaGNuTmxLRU5NU1ZCQ1QwRlNSQ2s3WEc0Z0lIMGdZMkYwWTJnZ0tHVnljbTl5T2lCaGJua3BJSHRjYmlBZ0lDQmpiMjV6YjJ4bExtVnljbTl5S0dWeWNtOXlLVHRjYmlBZ0lDQnlaWFIxY200Z2UzMDdYRzRnSUgxY2JuMDdYRzVjYm1OdmJuTjBJSEJoY25ObFVHOTBaVzUwYVdGc1UzQnlaV0ZrYzJobFpYUWdQU0FvWEc0Z0lIUmxlSFE2SUhOMGNtbHVaeXhjYmlrNklIc2djM0J5WldGa2MyaGxaWFE2SUZOd2NtVmhaSE5vWldWMElIMGdmQ0I3SUdWeWNtOXlUV1Z6YzJGblpUb2djM1J5YVc1bklIMGdmQ0J1ZFd4c0lEMCtJSHRjYmlBZ1kyOXVjM1FnY21WemRXeDBJRDBnZEhKNVVHRnljMlZUY0hKbFlXUnphR1ZsZENoMFpYaDBLVHRjYmlBZ2FXWWdLSEpsYzNWc2RDNTBlWEJsSUQwOVBTQldRVXhKUkY5VFVGSkZRVVJUU0VWRlZDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCN0lITndjbVZoWkhOb1pXVjBPaUJ5WlhOMWJIUXVjM0J5WldGa2MyaGxaWFFnZlR0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnYm5Wc2JEdGNibjA3WEc1Y2JpOHFLbHh1SUNvZ1VtVjBjbWxsZG1WeklHTnZiblJsYm5RZ1puSnZiU0J6ZVhOMFpXMGdZMnhwY0dKdllYSmtJQ2hsYVhSb1pYSWdabkp2YlNCRGJHbHdZbTloY21SRmRtVnVkQ0J2Y2x4dUlDb2dJSFpwWVNCaGMzbHVZeUJqYkdsd1ltOWhjbVFnUVZCSklHbG1JSE4xY0hCdmNuUmxaQ2xjYmlBcUwxeHVZMjl1YzNRZ1oyVjBVM2x6ZEdWdFEyeHBjR0p2WVhKa0lEMGdZWE41Ym1NZ0tGeHVJQ0JsZG1WdWREb2dRMnhwY0dKdllYSmtSWFpsYm5RZ2ZDQnVkV3hzTEZ4dUtUb2dVSEp2YldselpUeHpkSEpwYm1jK0lEMCtJSHRjYmlBZ2RISjVJSHRjYmlBZ0lDQmpiMjV6ZENCMFpYaDBJRDBnWlhabGJuUmNiaUFnSUNBZ0lEOGdaWFpsYm5RdVkyeHBjR0p2WVhKa1JHRjBZVDh1WjJWMFJHRjBZU2hjSW5SbGVIUXZjR3hoYVc1Y0lpa3VkSEpwYlNncFhHNGdJQ0FnSUNBNklIQnliMkpoWW14NVUzVndjRzl5ZEhORGJHbHdZbTloY21SU1pXRmtWR1Y0ZENBbUpseHVJQ0FnSUNBZ0lDQW9ZWGRoYVhRZ2JtRjJhV2RoZEc5eUxtTnNhWEJpYjJGeVpDNXlaV0ZrVkdWNGRDZ3BLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQjBaWGgwSUh4OElGd2lYQ0k3WEc0Z0lIMGdZMkYwWTJnZ2UxeHVJQ0FnSUhKbGRIVnliaUJjSWx3aU8xeHVJQ0I5WEc1OU8xeHVYRzR2S2lwY2JpQXFJRUYwZEdWdGNITWdkRzhnY0dGeWMyVWdZMnhwY0dKdllYSmtMaUJRY21WbVpYSnpJSE41YzNSbGJTQmpiR2x3WW05aGNtUXVYRzRnS2k5Y2JtVjRjRzl5ZENCamIyNXpkQ0J3WVhKelpVTnNhWEJpYjJGeVpDQTlJR0Z6ZVc1aklDaGNiaUFnWlhabGJuUTZJRU5zYVhCaWIyRnlaRVYyWlc1MElId2diblZzYkN4Y2JpazZJRkJ5YjIxcGMyVThRMnhwY0dKdllYSmtSR0YwWVQ0Z1BUNGdlMXh1SUNCamIyNXpkQ0J6ZVhOMFpXMURiR2x3WW05aGNtUWdQU0JoZDJGcGRDQm5aWFJUZVhOMFpXMURiR2x3WW05aGNtUW9aWFpsYm5RcE8xeHVYRzRnSUM4dklHbG1JSE41YzNSbGJTQmpiR2x3WW05aGNtUWdaVzF3ZEhrc0lHTnZkV3hrYmlkMElHSmxJSEpsYzI5c2RtVmtMQ0J2Y2lCamIyNTBZV2x1Y3lCd2NtVjJhVzkxYzJ4NVhHNGdJQzh2SUdOdmNHbGxaQ0JsZUdOaGJHbGtjbUYzSUhOalpXNWxJR0Z6SUZOV1J5d2dabUZzYkNCaVlXTnJJSFJ2SUhCeVpYWnBiM1Z6YkhrZ1kyOXdhV1ZrSUdWNFkyRnNhV1J5WVhkY2JpQWdMeThnWld4bGJXVnVkSE5jYmlBZ2FXWWdLQ0Z6ZVhOMFpXMURiR2x3WW05aGNtUWdmSHdnYzNsemRHVnRRMnhwY0dKdllYSmtMbWx1WTJ4MVpHVnpLRk5XUjE5RldGQlBVbFJmVkVGSEtTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCblpYUkJjSEJEYkdsd1ltOWhjbVFvS1R0Y2JpQWdmVnh1WEc0Z0lDOHZJR2xtSUhONWMzUmxiU0JqYkdsd1ltOWhjbVFnWTI5dWRHRnBibk1nYzNCeVpXRmtjMmhsWlhRc0lIVnpaU0JwZENCbGRtVnVJSFJvYjNWbmFDQnBkQ2R6WEc0Z0lDOHZJSFJsWTJodWFXTmhiR3g1SUhCdmMzTnBZbXhsSUdsMEozTWdjM1JoYkdWeUlIUm9ZVzRnYVc0dFlYQndJR05zYVhCaWIyRnlaRnh1SUNCamIyNXpkQ0J6Y0hKbFlXUnphR1ZsZEZKbGMzVnNkQ0E5SUhCaGNuTmxVRzkwWlc1MGFXRnNVM0J5WldGa2MyaGxaWFFvYzNsemRHVnRRMnhwY0dKdllYSmtLVHRjYmlBZ2FXWWdLSE53Y21WaFpITm9aV1YwVW1WemRXeDBLU0I3WEc0Z0lDQWdjbVYwZFhKdUlITndjbVZoWkhOb1pXVjBVbVZ6ZFd4ME8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ1lYQndRMnhwY0dKdllYSmtSR0YwWVNBOUlHZGxkRUZ3Y0VOc2FYQmliMkZ5WkNncE8xeHVYRzRnSUhSeWVTQjdYRzRnSUNBZ1kyOXVjM1FnYzNsemRHVnRRMnhwY0dKdllYSmtSR0YwWVNBOUlFcFRUMDR1Y0dGeWMyVW9jM2x6ZEdWdFEyeHBjR0p2WVhKa0tUdGNiaUFnSUNCcFppQW9ZMnhwY0dKdllYSmtRMjl1ZEdGcGJuTkZiR1Z0Wlc1MGN5aHplWE4wWlcxRGJHbHdZbTloY21SRVlYUmhLU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnWld4bGJXVnVkSE02SUhONWMzUmxiVU5zYVhCaWIyRnlaRVJoZEdFdVpXeGxiV1Z1ZEhNc1hHNGdJQ0FnSUNBZ0lHWnBiR1Z6T2lCemVYTjBaVzFEYkdsd1ltOWhjbVJFWVhSaExtWnBiR1Z6TEZ4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHRndjRU5zYVhCaWIyRnlaRVJoZEdFN1hHNGdJSDBnWTJGMFkyZ2dlMXh1SUNBZ0lDOHZJSE41YzNSbGJTQmpiR2x3WW05aGNtUWdaRzlsYzI0bmRDQmpiMjUwWVdsdUlHVjRZMkZzYVdSeVlYY2daV3hsYldWdWRITWc0b2FTSUhKbGRIVnliaUJ3YkdGcGJuUmxlSFJjYmlBZ0lDQXZMeUIxYm14bGMzTWdkMlVnYzJWMElHRWdabXhoWnlCMGJ5QndjbVZtWlhJZ2FXNHRZWEJ3SUdOc2FYQmliMkZ5WkNCaVpXTmhkWE5sSUdKeWIzZHpaWElnWkdsa2JpZDBYRzRnSUNBZ0x5OGdjM1Z3Y0c5eWRDQnpkRzl5YVc1bklIUnZJSE41YzNSbGJTQmpiR2x3WW05aGNtUWdiMjRnWTI5d2VWeHVJQ0FnSUhKbGRIVnliaUJRVWtWR1JWSmZRVkJRWDBOTVNWQkNUMEZTUkNBbUppQmhjSEJEYkdsd1ltOWhjbVJFWVhSaExtVnNaVzFsYm5SelhHNGdJQ0FnSUNBL0lHRndjRU5zYVhCaWIyRnlaRVJoZEdGY2JpQWdJQ0FnSURvZ2V5QjBaWGgwT2lCemVYTjBaVzFEYkdsd1ltOWhjbVFnZlR0Y2JpQWdmVnh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdOdmNIbENiRzlpVkc5RGJHbHdZbTloY21SQmMxQnVaeUE5SUdGemVXNWpJQ2hpYkc5aU9pQkNiRzlpS1NBOVBpQjdYRzRnSUdGM1lXbDBJRzVoZG1sbllYUnZjaTVqYkdsd1ltOWhjbVF1ZDNKcGRHVW9XMXh1SUNBZ0lHNWxkeUIzYVc1a2IzY3VRMnhwY0dKdllYSmtTWFJsYlNoN0lGdE5TVTFGWDFSWlVFVlRMbkJ1WjEwNklHSnNiMklnZlNrc1hHNGdJRjBwTzF4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHTnZjSGxVWlhoMFZHOVRlWE4wWlcxRGJHbHdZbTloY21RZ1BTQmhjM2x1WXlBb2RHVjRkRG9nYzNSeWFXNW5JSHdnYm5Wc2JDa2dQVDRnZTF4dUlDQnNaWFFnWTI5d2FXVmtJRDBnWm1Gc2MyVTdYRzRnSUdsbUlDaHdjbTlpWVdKc2VWTjFjSEJ2Y25SelEyeHBjR0p2WVhKa1YzSnBkR1ZVWlhoMEtTQjdYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQzh2SUU1UFZFVTZJR1J2WlhOdUozUWdkMjl5YXlCdmJpQkdSaUJ2YmlCdWIyNHRTRlJVVUZNZ1pHOXRZV2x1Y3l3Z2IzSWdkMmhsYmlCa2IyTjFiV1Z1ZEZ4dUlDQWdJQ0FnTHk4Z2JtOTBJR1p2WTNWelpXUmNiaUFnSUNBZ0lHRjNZV2wwSUc1aGRtbG5ZWFJ2Y2k1amJHbHdZbTloY21RdWQzSnBkR1ZVWlhoMEtIUmxlSFFnZkh3Z1hDSmNJaWs3WEc0Z0lDQWdJQ0JqYjNCcFpXUWdQU0IwY25WbE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNtOXlPaUJoYm5rcElIdGNiaUFnSUNBZ0lHTnZibk52YkdVdVpYSnliM0lvWlhKeWIzSXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzh2SUU1dmRHVWdkR2hoZENCbGVHVmpRMjl0YldGdVpDQmtiMlZ6YmlkMElHRnNiRzkzSUdOdmNIbHBibWNnWlcxd2RIa2djM1J5YVc1bmN5d2djMjhnYVdZZ2QyVW5jbVZjYmlBZ0x5OGdZMnhsWVhKcGJtY2dZMnhwY0dKdllYSmtJSFZ6YVc1bklIUm9hWE1nUVZCSkxDQjNaU0J0ZFhOMElHTnZjSGtnWVhRZ2JHVmhjM1FnWVc0Z1pXMXdkSGtnWTJoaGNseHVJQ0JwWmlBb0lXTnZjR2xsWkNBbUppQWhZMjl3ZVZSbGVIUldhV0ZGZUdWalEyOXRiV0Z1WkNoMFpYaDBJSHg4SUZ3aUlGd2lLU2tnZTF4dUlDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGNJbU52ZFd4a2JpZDBJR052Y0hsY0lpazdYRzRnSUgxY2JuMDdYRzVjYmk4dklHRmtZWEIwWldRZ1puSnZiU0JvZEhSd2N6b3ZMMmRwZEdoMVlpNWpiMjB2ZW1WdWIzSnZZMmhoTDJOc2FYQmliMkZ5WkM1cWN5OWliRzlpTDJObE56bG1NVGN3WVdFMk5UVmpOREE0WWpaaFlXSXpNMk01TkRjeVpUaGxOR1poTlRKbE1Ua3ZjM0pqTDJOc2FYQmliMkZ5WkMxaFkzUnBiMjR1YW5NalREUTRYRzVqYjI1emRDQmpiM0I1VkdWNGRGWnBZVVY0WldORGIyMXRZVzVrSUQwZ0tIUmxlSFE2SUhOMGNtbHVaeWtnUFQ0Z2UxeHVJQ0JqYjI1emRDQnBjMUpVVENBOUlHUnZZM1Z0Wlc1MExtUnZZM1Z0Wlc1MFJXeGxiV1Z1ZEM1blpYUkJkSFJ5YVdKMWRHVW9YQ0prYVhKY0lpa2dQVDA5SUZ3aWNuUnNYQ0k3WEc1Y2JpQWdZMjl1YzNRZ2RHVjRkR0Z5WldFZ1BTQmtiMk4xYldWdWRDNWpjbVZoZEdWRmJHVnRaVzUwS0Z3aWRHVjRkR0Z5WldGY0lpazdYRzVjYmlBZ2RHVjRkR0Z5WldFdWMzUjViR1V1WW05eVpHVnlJRDBnWENJd1hDSTdYRzRnSUhSbGVIUmhjbVZoTG5OMGVXeGxMbkJoWkdScGJtY2dQU0JjSWpCY0lqdGNiaUFnZEdWNGRHRnlaV0V1YzNSNWJHVXViV0Z5WjJsdUlEMGdYQ0l3WENJN1hHNGdJSFJsZUhSaGNtVmhMbk4wZVd4bExuQnZjMmwwYVc5dUlEMGdYQ0poWW5OdmJIVjBaVndpTzF4dUlDQjBaWGgwWVhKbFlTNXpkSGxzWlZ0cGMxSlVUQ0EvSUZ3aWNtbG5hSFJjSWlBNklGd2liR1ZtZEZ3aVhTQTlJRndpTFRrNU9UbHdlRndpTzF4dUlDQmpiMjV6ZENCNVVHOXphWFJwYjI0Z1BTQjNhVzVrYjNjdWNHRm5aVmxQWm1aelpYUWdmSHdnWkc5amRXMWxiblF1Wkc5amRXMWxiblJGYkdWdFpXNTBMbk5qY205c2JGUnZjRHRjYmlBZ2RHVjRkR0Z5WldFdWMzUjViR1V1ZEc5d0lEMGdZQ1I3ZVZCdmMybDBhVzl1ZlhCNFlEdGNiaUFnTHk4Z1VISmxkbVZ1ZENCNmIyOXRhVzVuSUc5dUlHbFBVMXh1SUNCMFpYaDBZWEpsWVM1emRIbHNaUzVtYjI1MFUybDZaU0E5SUZ3aU1USndkRndpTzF4dVhHNGdJSFJsZUhSaGNtVmhMbk5sZEVGMGRISnBZblYwWlNoY0luSmxZV1J2Ym14NVhDSXNJRndpWENJcE8xeHVJQ0IwWlhoMFlYSmxZUzUyWVd4MVpTQTlJSFJsZUhRN1hHNWNiaUFnWkc5amRXMWxiblF1WW05a2VTNWhjSEJsYm1SRGFHbHNaQ2gwWlhoMFlYSmxZU2s3WEc1Y2JpQWdiR1YwSUhOMVkyTmxjM01nUFNCbVlXeHpaVHRjYmx4dUlDQjBjbmtnZTF4dUlDQWdJSFJsZUhSaGNtVmhMbk5sYkdWamRDZ3BPMXh1SUNBZ0lIUmxlSFJoY21WaExuTmxkRk5sYkdWamRHbHZibEpoYm1kbEtEQXNJSFJsZUhSaGNtVmhMblpoYkhWbExteGxibWQwYUNrN1hHNWNiaUFnSUNCemRXTmpaWE56SUQwZ1pHOWpkVzFsYm5RdVpYaGxZME52YlcxaGJtUW9YQ0pqYjNCNVhDSXBPMXh1SUNCOUlHTmhkR05vSUNobGNuSnZjam9nWVc1NUtTQjdYRzRnSUNBZ1kyOXVjMjlzWlM1bGNuSnZjaWhsY25KdmNpazdYRzRnSUgxY2JseHVJQ0IwWlhoMFlYSmxZUzV5WlcxdmRtVW9LVHRjYmx4dUlDQnlaWFIxY200Z2MzVmpZMlZ6Y3p0Y2JuMDdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jbGlwYm9hcmQudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbG9ycy50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29sb3JzLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgb3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgb3Blbi1jb2xvciAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5qc29uXFxcIik7XFxuXFxuY29uc3Qgc2hhZGVzID0gKGluZGV4KSA9PiBbXFxuICAgIG9wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5yZWRbaW5kZXhdLFxcbiAgICBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucGlua1tpbmRleF0sXFxuICAgIG9wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5ncmFwZVtpbmRleF0sXFxuICAgIG9wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy52aW9sZXRbaW5kZXhdLFxcbiAgICBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uaW5kaWdvW2luZGV4XSxcXG4gICAgb3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmJsdWVbaW5kZXhdLFxcbiAgICBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3lhbltpbmRleF0sXFxuICAgIG9wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy50ZWFsW2luZGV4XSxcXG4gICAgb3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmdyZWVuW2luZGV4XSxcXG4gICAgb3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmxpbWVbaW5kZXhdLFxcbiAgICBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ueWVsbG93W2luZGV4XSxcXG4gICAgb3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm9yYW5nZVtpbmRleF0sXFxuXTtcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKHtcXG4gICAgY2FudmFzQmFja2dyb3VuZDogW29wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy53aGl0ZSwgb3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmdyYXlbMF0sIG9wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5ncmF5WzFdLCAuLi5zaGFkZXMoMCldLFxcbiAgICBlbGVtZW50QmFja2dyb3VuZDogW1xcXCJ0cmFuc3BhcmVudFxcXCIsIG9wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5ncmF5WzRdLCBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ3JheVs2XSwgLi4uc2hhZGVzKDYpXSxcXG4gICAgZWxlbWVudFN0cm9rZTogW29wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5ibGFjaywgb3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmdyYXlbOF0sIG9wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5ncmF5WzddLCAuLi5zaGFkZXMoOSldLFxcbn0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5c2IzSnpMblJ6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN08wRkJRVFJDTzBGQlJUVkNMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUzBGQllTeEZRVUZGTEVWQlFVVXNRMEZCUXp0SlFVTm9ReXd5UTBGQlRTeERRVUZETEV0QlFVc3NRMEZCUXp0SlFVTmlMRFJEUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETzBsQlEyUXNOa05CUVZFc1EwRkJReXhMUVVGTExFTkJRVU03U1VGRFppdzRRMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVOb1FpdzRRMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVOb1FpdzBRMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVOa0xEUkRRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRPMGxCUTJRc05FTkJRVThzUTBGQlF5eExRVUZMTEVOQlFVTTdTVUZEWkN3MlEwRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF6dEpRVU5tTERSRFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRMlFzT0VOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1NVRkRhRUlzT0VOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1EwRkRha0lzUTBGQlF6dEJRVVZHTEdsRlFVRmxPMGxCUTJJc1owSkJRV2RDTEVWQlFVVXNRMEZCUXl3MlEwRkJVU3hGUVVGRkxDdERRVUZWTEVWQlFVVXNLME5CUVZVc1JVRkJSU3hIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnNSU3hwUWtGQmFVSXNSVUZCUlN4RFFVRkRMR0ZCUVdFc1JVRkJSU3dyUTBGQlZTeEZRVUZGTEN0RFFVRlZMRVZCUVVVc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZUVVc1lVRkJZU3hGUVVGRkxFTkJRVU1zTmtOQlFWRXNSVUZCUlN3clEwRkJWU3hGUVVGRkxDdERRVUZWTEVWQlFVVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UTBGRGFFVXNSVUZCUXlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWpiMnh2Y25NdWRITS9OV1UyWWlKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2IyTWdabkp2YlNCY0ltOXdaVzR0WTI5c2IzSmNJanRjYmx4dVkyOXVjM1FnYzJoaFpHVnpJRDBnS0dsdVpHVjRPaUJ1ZFcxaVpYSXBJRDArSUZ0Y2JpQWdiMk11Y21Wa1cybHVaR1Y0WFN4Y2JpQWdiMk11Y0dsdWExdHBibVJsZUYwc1hHNGdJRzlqTG1keVlYQmxXMmx1WkdWNFhTeGNiaUFnYjJNdWRtbHZiR1YwVzJsdVpHVjRYU3hjYmlBZ2IyTXVhVzVrYVdkdlcybHVaR1Y0WFN4Y2JpQWdiMk11WW14MVpWdHBibVJsZUYwc1hHNGdJRzlqTG1ONVlXNWJhVzVrWlhoZExGeHVJQ0J2WXk1MFpXRnNXMmx1WkdWNFhTeGNiaUFnYjJNdVozSmxaVzViYVc1a1pYaGRMRnh1SUNCdll5NXNhVzFsVzJsdVpHVjRYU3hjYmlBZ2IyTXVlV1ZzYkc5M1cybHVaR1Y0WFN4Y2JpQWdiMk11YjNKaGJtZGxXMmx1WkdWNFhTeGNibDA3WEc1Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUh0Y2JpQWdZMkZ1ZG1GelFtRmphMmR5YjNWdVpEb2dXMjlqTG5kb2FYUmxMQ0J2WXk1bmNtRjVXekJkTENCdll5NW5jbUY1V3pGZExDQXVMaTV6YUdGa1pYTW9NQ2xkTEZ4dUlDQmxiR1Z0Wlc1MFFtRmphMmR5YjNWdVpEb2dXMXdpZEhKaGJuTndZWEpsYm5SY0lpd2diMk11WjNKaGVWczBYU3dnYjJNdVozSmhlVnMyWFN3Z0xpNHVjMmhoWkdWektEWXBYU3hjYmlBZ1pXeGxiV1Z1ZEZOMGNtOXJaVG9nVzI5akxtSnNZV05yTENCdll5NW5jbUY1V3poZExDQnZZeTVuY21GNVd6ZGRMQ0F1TGk1emFHRmtaWE1vT1NsZExGeHVmVHRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29sb3JzLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0FjdGlvbnMudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9BY3Rpb25zLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJTZWxlY3RlZFNoYXBlQWN0aW9uc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFNlbGVjdGVkU2hhcGVBY3Rpb25zKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJTaGFwZXNTd2l0Y2hlclxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFNoYXBlc1N3aXRjaGVyKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJab29tQWN0aW9uc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFpvb21BY3Rpb25zKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pMThuICovIFxcXCIuLi8uLi9pMThuLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX0FwcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29tcG9uZW50cy9BcHAgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvQXBwLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lICovIFxcXCIuLi8uLi9zY2VuZS9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2hhcGVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zaGFwZXMgKi8gXFxcIi4uLy4uL3NoYXBlcy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi91dGlscyAqLyBcXFwiLi4vLi4vdXRpbHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1N0YWNrX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1N0YWNrICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1N0YWNrLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Ub29sQnV0dG9uICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1Rvb2xCdXR0b24udHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2VuZV9jb21wYXJpc29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lL2NvbXBhcmlzb25zICovIFxcXCIuLi8uLi9zY2VuZS9jb21wYXJpc29ucy50c1xcXCIpO1xcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcbmNvbnN0IFNlbGVjdGVkU2hhcGVBY3Rpb25zID0gKHsgYXBwU3RhdGUsIGVsZW1lbnRzLCByZW5kZXJBY3Rpb24sIGVsZW1lbnRUeXBlLCB9KSA9PiB7XFxuICAgIHZhciBfYTtcXG4gICAgY29uc3QgdGFyZ2V0RWxlbWVudHMgPSAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRUYXJnZXRFbGVtZW50cykoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKSwgYXBwU3RhdGUpO1xcbiAgICBjb25zdCBpc0VkaXRpbmcgPSBCb29sZWFuKGFwcFN0YXRlLmVkaXRpbmdFbGVtZW50KTtcXG4gICAgY29uc3QgaXNNb2JpbGUgPSAoMCxfY29tcG9uZW50c19BcHBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy51c2VJc01vYmlsZSkoKTtcXG4gICAgY29uc3QgaXNSVEwgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKFxcXCJkaXJcXFwiKSA9PT0gXFxcInJ0bFxcXCI7XFxuICAgIGNvbnN0IHNob3dGaWxsSWNvbnMgPSAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5oYXNCYWNrZ3JvdW5kKShlbGVtZW50VHlwZSkgfHxcXG4gICAgICAgIHRhcmdldEVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmhhc0JhY2tncm91bmQpKGVsZW1lbnQudHlwZSkgJiYgISgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmlzVHJhbnNwYXJlbnQpKGVsZW1lbnQuYmFja2dyb3VuZENvbG9yKSk7XFxuICAgIGNvbnN0IHNob3dDaGFuZ2VCYWNrZ3JvdW5kSWNvbnMgPSAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5oYXNCYWNrZ3JvdW5kKShlbGVtZW50VHlwZSkgfHxcXG4gICAgICAgIHRhcmdldEVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmhhc0JhY2tncm91bmQpKGVsZW1lbnQudHlwZSkpO1xcbiAgICBsZXQgY29tbW9uU2VsZWN0ZWRUeXBlID0gKChfYSA9IHRhcmdldEVsZW1lbnRzWzBdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudHlwZSkgfHwgbnVsbDtcXG4gICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRhcmdldEVsZW1lbnRzKSB7XFxuICAgICAgICBpZiAoZWxlbWVudC50eXBlICE9PSBjb21tb25TZWxlY3RlZFR5cGUpIHtcXG4gICAgICAgICAgICBjb21tb25TZWxlY3RlZFR5cGUgPSBudWxsO1xcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcInBhbmVsQ29sdW1uXFxcIiB9LCB7IGNoaWxkcmVuOiBbKCgoMCxfc2NlbmVfY29tcGFyaXNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uaGFzU3Ryb2tlQ29sb3IpKGVsZW1lbnRUeXBlKSAmJlxcbiAgICAgICAgICAgICAgICBlbGVtZW50VHlwZSAhPT0gXFxcImltYWdlXFxcIiAmJlxcbiAgICAgICAgICAgICAgICBjb21tb25TZWxlY3RlZFR5cGUgIT09IFxcXCJpbWFnZVxcXCIpIHx8XFxuICAgICAgICAgICAgICAgIHRhcmdldEVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+ICgwLF9zY2VuZV9jb21wYXJpc29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5oYXNTdHJva2VDb2xvcikoZWxlbWVudC50eXBlKSkpICYmXFxuICAgICAgICAgICAgICAgIHJlbmRlckFjdGlvbihcXFwiY2hhbmdlU3Ryb2tlQ29sb3JcXFwiKSwgc2hvd0NoYW5nZUJhY2tncm91bmRJY29ucyAmJiByZW5kZXJBY3Rpb24oXFxcImNoYW5nZUJhY2tncm91bmRDb2xvclxcXCIpLCBzaG93RmlsbEljb25zICYmIHJlbmRlckFjdGlvbihcXFwiY2hhbmdlRmlsbFN0eWxlXFxcIiksICgoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5oYXNTdHJva2VXaWR0aCkoZWxlbWVudFR5cGUpIHx8XFxuICAgICAgICAgICAgICAgIHRhcmdldEVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmhhc1N0cm9rZVdpZHRoKShlbGVtZW50LnR5cGUpKSkgJiZcXG4gICAgICAgICAgICAgICAgcmVuZGVyQWN0aW9uKFxcXCJjaGFuZ2VTdHJva2VXaWR0aFxcXCIpLCAoZWxlbWVudFR5cGUgPT09IFxcXCJmcmVlZHJhd1xcXCIgfHxcXG4gICAgICAgICAgICAgICAgdGFyZ2V0RWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT4gZWxlbWVudC50eXBlID09PSBcXFwiZnJlZWRyYXdcXFwiKSkgJiZcXG4gICAgICAgICAgICAgICAgcmVuZGVyQWN0aW9uKFxcXCJjaGFuZ2VTdHJva2VTaGFwZVxcXCIpLCAoKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uaGFzU3Ryb2tlU3R5bGUpKGVsZW1lbnRUeXBlKSB8fFxcbiAgICAgICAgICAgICAgICB0YXJnZXRFbGVtZW50cy5zb21lKChlbGVtZW50KSA9PiAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5oYXNTdHJva2VTdHlsZSkoZWxlbWVudC50eXBlKSkpICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtyZW5kZXJBY3Rpb24oXFxcImNoYW5nZVN0cm9rZVN0eWxlXFxcIiksIHJlbmRlckFjdGlvbihcXFwiY2hhbmdlU2xvcHBpbmVzc1xcXCIpXSB9LCB2b2lkIDApKSwgKCgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmNhbkNoYW5nZVNoYXJwbmVzcykoZWxlbWVudFR5cGUpIHx8XFxuICAgICAgICAgICAgICAgIHRhcmdldEVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmNhbkNoYW5nZVNoYXJwbmVzcykoZWxlbWVudC50eXBlKSkpICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkocmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GcmFnbWVudCwgeyBjaGlsZHJlbjogcmVuZGVyQWN0aW9uKFxcXCJjaGFuZ2VTaGFycG5lc3NcXFwiKSB9LCB2b2lkIDApKSwgKCgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmhhc1RleHQpKGVsZW1lbnRUeXBlKSB8fFxcbiAgICAgICAgICAgICAgICB0YXJnZXRFbGVtZW50cy5zb21lKChlbGVtZW50KSA9PiAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5oYXNUZXh0KShlbGVtZW50LnR5cGUpKSkgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykocmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GcmFnbWVudCwgeyBjaGlsZHJlbjogW3JlbmRlckFjdGlvbihcXFwiY2hhbmdlRm9udFNpemVcXFwiKSwgcmVuZGVyQWN0aW9uKFxcXCJjaGFuZ2VGb250RmFtaWx5XFxcIiksIHJlbmRlckFjdGlvbihcXFwiY2hhbmdlVGV4dEFsaWduXFxcIildIH0sIHZvaWQgMCkpLCAoKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uY2FuSGF2ZUFycm93aGVhZHMpKGVsZW1lbnRUeXBlKSB8fFxcbiAgICAgICAgICAgICAgICB0YXJnZXRFbGVtZW50cy5zb21lKChlbGVtZW50KSA9PiAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5jYW5IYXZlQXJyb3doZWFkcykoZWxlbWVudC50eXBlKSkpICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkocmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GcmFnbWVudCwgeyBjaGlsZHJlbjogcmVuZGVyQWN0aW9uKFxcXCJjaGFuZ2VBcnJvd2hlYWRcXFwiKSB9LCB2b2lkIDApKSwgcmVuZGVyQWN0aW9uKFxcXCJjaGFuZ2VPcGFjaXR5XFxcIiksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImZpZWxkc2V0XFxcIiwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwibGVnZW5kXFxcIiwgeyBjaGlsZHJlbjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy50KShcXFwibGFiZWxzLmxheWVyc1xcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJidXR0b25MaXN0XFxcIiB9LCB7IGNoaWxkcmVuOiBbcmVuZGVyQWN0aW9uKFxcXCJzZW5kVG9CYWNrXFxcIiksIHJlbmRlckFjdGlvbihcXFwic2VuZEJhY2t3YXJkXFxcIiksIHJlbmRlckFjdGlvbihcXFwiYnJpbmdUb0Zyb250XFxcIiksIHJlbmRlckFjdGlvbihcXFwiYnJpbmdGb3J3YXJkXFxcIildIH0pLCB2b2lkIDApXSB9LCB2b2lkIDApLCB0YXJnZXRFbGVtZW50cy5sZW5ndGggPiAxICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJmaWVsZHNldFxcXCIsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImxlZ2VuZFxcXCIsIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udCkoXFxcImxhYmVscy5hbGlnblxcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJidXR0b25MaXN0XFxcIiB9LCB7IGNoaWxkcmVuOiBbaXNSVEwgPyAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbcmVuZGVyQWN0aW9uKFxcXCJhbGlnblJpZ2h0XFxcIiksIHJlbmRlckFjdGlvbihcXFwiYWxpZ25Ib3Jpem9udGFsbHlDZW50ZXJlZFxcXCIpLCByZW5kZXJBY3Rpb24oXFxcImFsaWduTGVmdFxcXCIpXSB9LCB2b2lkIDApKSA6ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtyZW5kZXJBY3Rpb24oXFxcImFsaWduTGVmdFxcXCIpLCByZW5kZXJBY3Rpb24oXFxcImFsaWduSG9yaXpvbnRhbGx5Q2VudGVyZWRcXFwiKSwgcmVuZGVyQWN0aW9uKFxcXCJhbGlnblJpZ2h0XFxcIildIH0sIHZvaWQgMCkpLCB0YXJnZXRFbGVtZW50cy5sZW5ndGggPiAyICYmXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJBY3Rpb24oXFxcImRpc3RyaWJ1dGVIb3Jpem9udGFsbHlcXFwiKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcImljb25Sb3dcXFwiIH0sIHsgY2hpbGRyZW46IFtyZW5kZXJBY3Rpb24oXFxcImFsaWduVG9wXFxcIiksIHJlbmRlckFjdGlvbihcXFwiYWxpZ25WZXJ0aWNhbGx5Q2VudGVyZWRcXFwiKSwgcmVuZGVyQWN0aW9uKFxcXCJhbGlnbkJvdHRvbVxcXCIpLCB0YXJnZXRFbGVtZW50cy5sZW5ndGggPiAyICYmXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckFjdGlvbihcXFwiZGlzdHJpYnV0ZVZlcnRpY2FsbHlcXFwiKV0gfSksIHZvaWQgMCldIH0pLCB2b2lkIDApXSB9LCB2b2lkIDApKSwgIWlzRWRpdGluZyAmJiB0YXJnZXRFbGVtZW50cy5sZW5ndGggPiAwICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJmaWVsZHNldFxcXCIsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImxlZ2VuZFxcXCIsIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udCkoXFxcImxhYmVscy5hY3Rpb25zXFxcIikgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcImJ1dHRvbkxpc3RcXFwiIH0sIHsgY2hpbGRyZW46IFshaXNNb2JpbGUgJiYgcmVuZGVyQWN0aW9uKFxcXCJkdXBsaWNhdGVTZWxlY3Rpb25cXFwiKSwgIWlzTW9iaWxlICYmIHJlbmRlckFjdGlvbihcXFwiZGVsZXRlU2VsZWN0ZWRFbGVtZW50c1xcXCIpLCByZW5kZXJBY3Rpb24oXFxcImdyb3VwXFxcIiksIHJlbmRlckFjdGlvbihcXFwidW5ncm91cFxcXCIpLCB0YXJnZXRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgcmVuZGVyQWN0aW9uKFxcXCJsaW5rXFxcIildIH0pLCB2b2lkIDApXSB9LCB2b2lkIDApKV0gfSksIHZvaWQgMCkpO1xcbn07XFxuY29uc3QgU2hhcGVzU3dpdGNoZXIgPSAoeyBjYW52YXMsIGVsZW1lbnRUeXBlLCBzZXRBcHBTdGF0ZSwgb25JbWFnZUFjdGlvbiwgfSkgPT4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50LCB7IGNoaWxkcmVuOiBfc2hhcGVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uU0hBUEVTLm1hcCgoeyB2YWx1ZSwgaWNvbiwga2V5IH0sIGluZGV4KSA9PiB7XFxuICAgICAgICBjb25zdCBsYWJlbCA9ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udCkoYHRvb2xCYXIuJHt2YWx1ZX1gKTtcXG4gICAgICAgIGNvbnN0IGxldHRlciA9IGtleSAmJiAodHlwZW9mIGtleSA9PT0gXFxcInN0cmluZ1xcXCIgPyBrZXkgOiBrZXlbMF0pO1xcbiAgICAgICAgY29uc3Qgc2hvcnRjdXQgPSBsZXR0ZXJcXG4gICAgICAgICAgICA/IGAkeygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmNhcGl0YWxpemVTdHJpbmcpKGxldHRlcil9ICR7KDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy50KShcXFwiaGVscERpYWxvZy5vclxcXCIpfSAke2luZGV4ICsgMX1gXFxuICAgICAgICAgICAgOiBgJHtpbmRleCArIDF9YDtcXG4gICAgICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uVG9vbEJ1dHRvbiwgeyBjbGFzc05hbWU6IFxcXCJTaGFwZVxcXCIsIHR5cGU6IFxcXCJyYWRpb1xcXCIsIGljb246IGljb24sIGNoZWNrZWQ6IGVsZW1lbnRUeXBlID09PSB2YWx1ZSwgbmFtZTogXFxcImVkaXRvci1jdXJyZW50LXNoYXBlXFxcIiwgdGl0bGU6IGAkeygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmNhcGl0YWxpemVTdHJpbmcpKGxhYmVsKX0gXHUyMDE0ICR7c2hvcnRjdXR9YCwga2V5QmluZGluZ0xhYmVsOiBgJHtpbmRleCArIDF9YCwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5jYXBpdGFsaXplU3RyaW5nKShsYWJlbCksIFxcXCJhcmlhLWtleXNob3J0Y3V0c1xcXCI6IHNob3J0Y3V0LCBcXFwiZGF0YS10ZXN0aWRcXFwiOiB2YWx1ZSwgb25DaGFuZ2U6ICh7IHBvaW50ZXJUeXBlIH0pID0+IHtcXG4gICAgICAgICAgICAgICAgc2V0QXBwU3RhdGUoe1xcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFR5cGU6IHZhbHVlLFxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlFbGVtZW50OiBudWxsLFxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLnNldEN1cnNvckZvclNoYXBlKShjYW52YXMsIHZhbHVlKTtcXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBcXFwiaW1hZ2VcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICBvbkltYWdlQWN0aW9uKHsgcG9pbnRlclR5cGUgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9IH0sIHZhbHVlKSk7XFxuICAgIH0pIH0sIHZvaWQgMCkpO1xcbmNvbnN0IFpvb21BY3Rpb25zID0gKHsgcmVuZGVyQWN0aW9uLCB6b29tLCB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9TdGFja19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fW1xcXCJkZWZhdWx0XFxcIl0uQ29sLCBPYmplY3QuYXNzaWduKHsgZ2FwOiAxIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoX1N0YWNrX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X19bXFxcImRlZmF1bHRcXFwiXS5Sb3csIE9iamVjdC5hc3NpZ24oeyBnYXA6IDEsIGFsaWduOiBcXFwiY2VudGVyXFxcIiB9LCB7IGNoaWxkcmVuOiBbcmVuZGVyQWN0aW9uKFxcXCJ6b29tT3V0XFxcIiksIHJlbmRlckFjdGlvbihcXFwiem9vbUluXFxcIiksIHJlbmRlckFjdGlvbihcXFwicmVzZXRab29tXFxcIildIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUJZM1JwYjI1ekxuUnplQzVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3T3pzN096czdPMEZCUVRCQ08wRkJSWGxDTzBGQlJYWkNPMEZCUTI5Q08wRkJVemxDTzBGQlEybENPMEZCUlRKRE8wRkJRMnhFTzBGQlEyTTdRVUZEV1R0QlFVVXZReXhOUVVGTkxHOUNRVUZ2UWl4SFFVRkhMRU5CUVVNc1JVRkRia01zVVVGQlVTeEZRVU5TTEZGQlFWRXNSVUZEVWl4WlFVRlpMRVZCUTFvc1YwRkJWeXhIUVUxYUxFVkJRVVVzUlVGQlJUczdTVUZEU0N4TlFVRk5MR05CUVdNc1IwRkJSeXg1UkVGQmFVSXNRMEZEZEVNc0swUkJRWEZDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRVZCUXk5Q0xGRkJRVkVzUTBGRFZDeERRVUZETzBsQlEwWXNUVUZCVFN4VFFVRlRMRWRCUVVjc1QwRkJUeXhEUVVGRExGRkJRVkVzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXp0SlFVTnVSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5dzBSRUZCVnl4RlFVRkZMRU5CUVVNN1NVRkRMMElzVFVGQlRTeExRVUZMTEVkQlFVY3NVVUZCVVN4RFFVRkRMR1ZCUVdVc1EwRkJReXhaUVVGWkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NTMEZCU3l4RFFVRkRPMGxCUlhKRkxFMUJRVTBzWVVGQllTeEhRVU5xUWl4eFJFRkJZU3hEUVVGRExGZEJRVmNzUTBGQlF6dFJRVU14UWl4alFVRmpMRU5CUVVNc1NVRkJTU3hEUVVOcVFpeERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZMRU5CUTFZc2NVUkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXh4UkVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkRla1VzUTBGQlF6dEpRVU5LTEUxQlFVMHNlVUpCUVhsQ0xFZEJRemRDTEhGRVFVRmhMRU5CUVVNc1YwRkJWeXhEUVVGRE8xRkJRekZDTEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeERRVUZETEhGRVFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGYUVVc1NVRkJTU3hyUWtGQmEwSXNSMEZCYTBJc2NVSkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNNRU5CUVVVc1NVRkJTU3hMUVVGSkxFbEJRVWtzUTBGQlF6dEpRVVY0UlN4TFFVRkxMRTFCUVUwc1QwRkJUeXhKUVVGSkxHTkJRV01zUlVGQlJUdFJRVU53UXl4SlFVRkpMRTlCUVU4c1EwRkJReXhKUVVGSkxFdEJRVXNzYTBKQlFXdENMRVZCUVVVN1dVRkRka01zYTBKQlFXdENMRWRCUVVjc1NVRkJTU3hEUVVGRE8xbEJRekZDTEUxQlFVMDdVMEZEVUR0TFFVTkdPMGxCUlVRc1QwRkJUeXhEUVVOTUxDdEZRVUZMTEZOQlFWTXNSVUZCUXl4aFFVRmhMR2xDUVVONlFpeERRVUZETEVOQlFVTXNiVVZCUVdNc1EwRkJReXhYUVVGWExFTkJRVU03WjBKQlF6VkNMRmRCUVZjc1MwRkJTeXhQUVVGUE8yZENRVU4yUWl4clFrRkJhMElzUzBGQlN5eFBRVUZQTEVOQlFVTTdaMEpCUXk5Q0xHTkJRV01zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hEUVVGRExHMUZRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlF5OUVMRmxCUVZrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RlFVTnNReXg1UWtGQmVVSXNTVUZCU1N4WlFVRlpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNSVUZEYkVVc1lVRkJZU3hKUVVGSkxGbEJRVmtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhGUVVWb1JDeERRVUZETEhORVFVRmpMRU5CUVVNc1YwRkJWeXhEUVVGRE8yZENRVU16UWl4alFVRmpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZCUXl4elJFRkJZeXhEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVNdlJDeFpRVUZaTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUlVGRmJFTXNRMEZCUXl4WFFVRlhMRXRCUVVzc1ZVRkJWVHRuUWtGRE1VSXNZMEZCWXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1MwRkJTeXhWUVVGVkxFTkJRVU1zUTBGQlF6dG5Ra0ZET1VRc1dVRkJXU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRVZCUld4RExFTkJRVU1zYzBSQlFXTXNRMEZCUXl4WFFVRlhMRU5CUVVNN1owSkJRek5DTEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeERRVUZETEhORVFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVTnVSU3c0U0VGRFJ5eFpRVUZaTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUlVGRGFrTXNXVUZCV1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEZsQlEyaERMRU5CUTBvc1JVRkZRU3hEUVVGRExEQkVRVUZyUWl4RFFVRkRMRmRCUVZjc1EwRkJRenRuUWtGREwwSXNZMEZCWXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNNRVJCUVd0Q0xFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVOMlJTdzBTRUZCUnl4WlFVRlpMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNWMEZCU1N4RFFVTjJReXhGUVVWQkxFTkJRVU1zSzBOQlFVOHNRMEZCUXl4WFFVRlhMRU5CUVVNN1owSkJRM0JDTEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeERRVUZETEN0RFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVTTFSQ3c0U0VGRFJ5eFpRVUZaTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUlVGRk9VSXNXVUZCV1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEVWQlJXaERMRmxCUVZrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4WlFVTXZRaXhEUVVOS0xFVkJSVUVzUTBGQlF5eDVSRUZCYVVJc1EwRkJReXhYUVVGWExFTkJRVU03WjBKQlF6bENMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4RFFVRkRMSGxFUVVGcFFpeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGRGRFVXNORWhCUVVjc1dVRkJXU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRmRCUVVrc1EwRkRka01zUlVGRlFTeFpRVUZaTEVOQlFVTXNaVUZCWlN4RFFVRkRMRVZCUlRsQ0xHbEdRVU5GTERaRlFVRlRMSGREUVVGRExFTkJRVU1zWlVGQlpTeERRVUZETEZkQlFWVXNSVUZEY2tNc0swVkJRVXNzVTBGQlV5eEZRVUZETEZsQlFWa3NhVUpCUTNoQ0xGbEJRVmtzUTBGQlF5eFpRVUZaTEVOQlFVTXNSVUZETVVJc1dVRkJXU3hEUVVGRExHTkJRV01zUTBGQlF5eEZRVU0xUWl4WlFVRlpMRU5CUVVNc1kwRkJZeXhEUVVGRExFVkJRelZDTEZsQlFWa3NRMEZCUXl4alFVRmpMRU5CUVVNc1lVRkRla0lzV1VGRFJ5eEZRVVZXTEdOQlFXTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRelZDTEdsR1FVTkZMRFpGUVVGVExIZERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRmRCUVZVc1JVRkRjRU1zSzBWQlFVc3NVMEZCVXl4RlFVRkRMRmxCUVZrc2FVSkJTM2hDTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkRVQ3c0U0VGRFJ5eFpRVUZaTEVOQlFVTXNXVUZCV1N4RFFVRkRMRVZCUXpGQ0xGbEJRVmtzUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhGUVVONlF5eFpRVUZaTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmxCUTNwQ0xFTkJRMG9zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZEUml3NFNFRkRSeXhaUVVGWkxFTkJRVU1zVjBGQlZ5eERRVUZETEVWQlEzcENMRmxCUVZrc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4RlFVTjZReXhaUVVGWkxFTkJRVU1zV1VGQldTeERRVUZETEZsQlF6RkNMRU5CUTBvc1JVRkRRU3hqUVVGakxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTTdaME5CUTNoQ0xGbEJRVmtzUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhGUVVONFF5d3JSVUZCU3l4VFFVRlRMRVZCUVVNc1UwRkJVeXhwUWtGRGNrSXNXVUZCV1N4RFFVRkRMRlZCUVZVc1EwRkJReXhGUVVONFFpeFpRVUZaTEVOQlFVTXNlVUpCUVhsQ0xFTkJRVU1zUlVGRGRrTXNXVUZCV1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhGUVVNelFpeGpRVUZqTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNN2QwTkJRM2hDTEZsQlFWa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eGhRVU5zUXl4aFFVTkdMRmxCUTBjc1EwRkRXaXhGUVVOQkxFTkJRVU1zVTBGQlV5eEpRVUZKTEdOQlFXTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRekZETEdsR1FVTkZMRFpGUVVGVExIZERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVjBGQlZTeEZRVU4wUXl3clJVRkJTeXhUUVVGVExFVkJRVU1zV1VGQldTeHBRa0ZEZUVJc1EwRkJReXhSUVVGUkxFbEJRVWtzV1VGQldTeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFVkJReTlETEVOQlFVTXNVVUZCVVN4SlFVRkpMRmxCUVZrc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4RlFVTnVSQ3haUVVGWkxFTkJRVU1zVDBGQlR5eERRVUZETEVWQlEzSkNMRmxCUVZrc1EwRkJReXhUUVVGVExFTkJRVU1zUlVGRGRrSXNZMEZCWXl4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEUxQlFVMHNRMEZCUXl4aFFVTm9SQ3haUVVOSExFTkJRMW9zWVVGRFJ5eERRVU5RTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxHTkJRV01zUjBGQlJ5eERRVUZETEVWQlF6ZENMRTFCUVUwc1JVRkRUaXhYUVVGWExFVkJRMWdzVjBGQlZ5eEZRVU5ZTEdGQlFXRXNSMEZOWkN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVOS0xEUklRVU5ITEN0RFFVRlZMRU5CUVVNc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQlJTeEpRVUZKTEVWQlFVVXNSMEZCUnl4RlFVRkZMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVU3VVVGRE1VTXNUVUZCVFN4TFFVRkxMRWRCUVVjc2QwTkJRVU1zUTBGQlF5eFhRVUZYTEV0QlFVc3NSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRjRU1zVFVGQlRTeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFdEJRVXNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXk5RUxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMDdXVUZEY2tJc1EwRkJReXhEUVVGRExFZEJRVWNzZDBSQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzZDBOQlFVTXNRMEZCUXl4bFFVRmxMRU5CUVVNc1NVRkJTU3hMUVVGTExFZEJRVWNzUTBGQlF5eEZRVUZGTzFsQlEyeEZMRU5CUVVNc1EwRkJReXhIUVVGSExFdEJRVXNzUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXp0UlFVTnVRaXhQUVVGUExFTkJRMHdzZFVSQlFVTXNiVVJCUVZVc1NVRkRWQ3hUUVVGVExFVkJRVU1zVDBGQlR5eEZRVVZxUWl4SlFVRkpMRVZCUVVNc1QwRkJUeXhGUVVOYUxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlExWXNUMEZCVHl4RlFVRkZMRmRCUVZjc1MwRkJTeXhMUVVGTExFVkJRemxDTEVsQlFVa3NSVUZCUXl4elFrRkJjMElzUlVGRE0wSXNTMEZCU3l4RlFVRkZMRWRCUVVjc2QwUkJRV2RDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1VVRkJVU3hGUVVGRkxFVkJRMnBFTEdWQlFXVXNSVUZCUlN4SFFVRkhMRXRCUVVzc1IwRkJSeXhEUVVGRExFVkJRVVVzWjBKQlEyNUNMSGRFUVVGblFpeERRVUZETEV0QlFVc3NRMEZCUXl4MVFrRkRhRUlzVVVGQlVTeHBRa0ZEWkN4TFFVRkxMRVZCUTJ4Q0xGRkJRVkVzUlVGQlJTeERRVUZETEVWQlFVVXNWMEZCVnl4RlFVRkZMRVZCUVVVc1JVRkJSVHRuUWtGRE5VSXNWMEZCVnl4RFFVRkRPMjlDUVVOV0xGZEJRVmNzUlVGQlJTeExRVUZMTzI5Q1FVTnNRaXhaUVVGWkxFVkJRVVVzU1VGQlNUdHZRa0ZEYkVJc2EwSkJRV3RDTEVWQlFVVXNSVUZCUlR0cFFrRkRka0lzUTBGQlF5eERRVUZETzJkQ1FVTklMSGxFUVVGcFFpeERRVUZETEUxQlFVMHNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRuUWtGRGFrTXNTVUZCU1N4TFFVRkxMRXRCUVVzc1QwRkJUeXhGUVVGRk8yOUNRVU55UWl4aFFVRmhMRU5CUVVNc1JVRkJSU3hYUVVGWExFVkJRVVVzUTBGQlF5eERRVUZETzJsQ1FVTm9RenRaUVVOSUxFTkJRVU1zU1VGd1Fra3NTMEZCU3l4RFFYRkNWaXhEUVVOSUxFTkJRVU03U1VGRFNpeERRVUZETEVOQlFVTXNWMEZEUkN4RFFVTktMRU5CUVVNN1FVRkZTeXhOUVVGTkxGZEJRVmNzUjBGQlJ5eERRVUZETEVWQlF6RkNMRmxCUVZrc1JVRkRXaXhKUVVGSkxFZEJTVXdzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZEU2l4MVJFRkJReXhyUkVGQlV5eHJRa0ZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhuUWtGRFppeDNSRUZCUXl4clJFRkJVeXhyUWtGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJReXhSUVVGUkxHbENRVU01UWl4WlFVRlpMRU5CUVVNc1UwRkJVeXhEUVVGRExFVkJRM1pDTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkRkRUlzV1VGQldTeERRVUZETEZkQlFWY3NRMEZCUXl4aFFVTm9RaXhaUVVOR0xFTkJRMklzUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDBGamRHbHZibk11ZEhONFAySXhNallpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUZKbFlXTjBJR1p5YjIwZ1hDSnlaV0ZqZEZ3aU8xeHVhVzF3YjNKMElIc2dRV04wYVc5dVRXRnVZV2RsY2lCOUlHWnliMjBnWENJdUxpOWhZM1JwYjI1ekwyMWhibUZuWlhKY0lqdGNibWx0Y0c5eWRDQjdJR2RsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3lCOUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MFhDSTdYRzVwYlhCdmNuUWdleUJGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ3dnVUc5cGJuUmxjbFI1Y0dVZ2ZTQm1jbTl0SUZ3aUxpNHZaV3hsYldWdWRDOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dkQ0I5SUdaeWIyMGdYQ0l1TGk5cE1UaHVYQ0k3WEc1cGJYQnZjblFnZXlCMWMyVkpjMDF2WW1sc1pTQjlJR1p5YjIwZ1hDSXVMaTlqYjIxd2IyNWxiblJ6TDBGd2NGd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1kyRnVRMmhoYm1kbFUyaGhjbkJ1WlhOekxGeHVJQ0JqWVc1SVlYWmxRWEp5YjNkb1pXRmtjeXhjYmlBZ1oyVjBWR0Z5WjJWMFJXeGxiV1Z1ZEhNc1hHNGdJR2hoYzBKaFkydG5jbTkxYm1Rc1hHNGdJR2hoYzFOMGNtOXJaVk4wZVd4bExGeHVJQ0JvWVhOVGRISnZhMlZYYVdSMGFDeGNiaUFnYUdGelZHVjRkQ3hjYm4wZ1puSnZiU0JjSWk0dUwzTmpaVzVsWENJN1hHNXBiWEJ2Y25RZ2V5QlRTRUZRUlZNZ2ZTQm1jbTl0SUZ3aUxpNHZjMmhoY0dWelhDSTdYRzVwYlhCdmNuUWdleUJCY0hCVGRHRjBaU3dnV205dmJTQjlJR1p5YjIwZ1hDSXVMaTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnWTJGd2FYUmhiR2w2WlZOMGNtbHVaeXdnYVhOVWNtRnVjM0JoY21WdWRDd2djMlYwUTNWeWMyOXlSbTl5VTJoaGNHVWdmU0JtY205dElGd2lMaTR2ZFhScGJITmNJanRjYm1sdGNHOXlkQ0JUZEdGamF5Qm1jbTl0SUZ3aUxpOVRkR0ZqYTF3aU8xeHVhVzF3YjNKMElIc2dWRzl2YkVKMWRIUnZiaUI5SUdaeWIyMGdYQ0l1TDFSdmIyeENkWFIwYjI1Y0lqdGNibWx0Y0c5eWRDQjdJR2hoYzFOMGNtOXJaVU52Ykc5eUlIMGdabkp2YlNCY0lpNHVMM05qWlc1bEwyTnZiWEJoY21semIyNXpYQ0k3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JUWld4bFkzUmxaRk5vWVhCbFFXTjBhVzl1Y3lBOUlDaDdYRzRnSUdGd2NGTjBZWFJsTEZ4dUlDQmxiR1Z0Wlc1MGN5eGNiaUFnY21WdVpHVnlRV04wYVc5dUxGeHVJQ0JsYkdWdFpXNTBWSGx3WlN4Y2JuMDZJSHRjYmlBZ1lYQndVM1JoZEdVNklFRndjRk4wWVhSbE8xeHVJQ0JsYkdWdFpXNTBjem9nY21WaFpHOXViSGtnUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFR0Y2JpQWdjbVZ1WkdWeVFXTjBhVzl1T2lCQlkzUnBiMjVOWVc1aFoyVnlXMXdpY21WdVpHVnlRV04wYVc5dVhDSmRPMXh1SUNCbGJHVnRaVzUwVkhsd1pUb2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYQ0owZVhCbFhDSmRPMXh1ZlNrZ1BUNGdlMXh1SUNCamIyNXpkQ0IwWVhKblpYUkZiR1Z0Wlc1MGN5QTlJR2RsZEZSaGNtZGxkRVZzWlcxbGJuUnpLRnh1SUNBZ0lHZGxkRTV2YmtSbGJHVjBaV1JGYkdWdFpXNTBjeWhsYkdWdFpXNTBjeWtzWEc0Z0lDQWdZWEJ3VTNSaGRHVXNYRzRnSUNrN1hHNGdJR052Ym5OMElHbHpSV1JwZEdsdVp5QTlJRUp2YjJ4bFlXNG9ZWEJ3VTNSaGRHVXVaV1JwZEdsdVowVnNaVzFsYm5RcE8xeHVJQ0JqYjI1emRDQnBjMDF2WW1sc1pTQTlJSFZ6WlVselRXOWlhV3hsS0NrN1hHNGdJR052Ym5OMElHbHpVbFJNSUQwZ1pHOWpkVzFsYm5RdVpHOWpkVzFsYm5SRmJHVnRaVzUwTG1kbGRFRjBkSEpwWW5WMFpTaGNJbVJwY2x3aUtTQTlQVDBnWENKeWRHeGNJanRjYmx4dUlDQmpiMjV6ZENCemFHOTNSbWxzYkVsamIyNXpJRDFjYmlBZ0lDQm9ZWE5DWVdOclozSnZkVzVrS0dWc1pXMWxiblJVZVhCbEtTQjhmRnh1SUNBZ0lIUmhjbWRsZEVWc1pXMWxiblJ6TG5OdmJXVW9YRzRnSUNBZ0lDQW9aV3hsYldWdWRDa2dQVDVjYmlBZ0lDQWdJQ0FnYUdGelFtRmphMmR5YjNWdVpDaGxiR1Z0Wlc1MExuUjVjR1VwSUNZbUlDRnBjMVJ5WVc1emNHRnlaVzUwS0dWc1pXMWxiblF1WW1GamEyZHliM1Z1WkVOdmJHOXlLU3hjYmlBZ0lDQXBPMXh1SUNCamIyNXpkQ0J6YUc5M1EyaGhibWRsUW1GamEyZHliM1Z1WkVsamIyNXpJRDFjYmlBZ0lDQm9ZWE5DWVdOclozSnZkVzVrS0dWc1pXMWxiblJVZVhCbEtTQjhmRnh1SUNBZ0lIUmhjbWRsZEVWc1pXMWxiblJ6TG5OdmJXVW9LR1ZzWlcxbGJuUXBJRDArSUdoaGMwSmhZMnRuY205MWJtUW9aV3hsYldWdWRDNTBlWEJsS1NrN1hHNWNiaUFnYkdWMElHTnZiVzF2YmxObGJHVmpkR1ZrVkhsd1pUb2djM1J5YVc1bklId2diblZzYkNBOUlIUmhjbWRsZEVWc1pXMWxiblJ6V3pCZFB5NTBlWEJsSUh4OElHNTFiR3c3WEc1Y2JpQWdabTl5SUNoamIyNXpkQ0JsYkdWdFpXNTBJRzltSUhSaGNtZGxkRVZzWlcxbGJuUnpLU0I3WEc0Z0lDQWdhV1lnS0dWc1pXMWxiblF1ZEhsd1pTQWhQVDBnWTI5dGJXOXVVMlZzWldOMFpXUlVlWEJsS1NCN1hHNGdJQ0FnSUNCamIyMXRiMjVUWld4bFkzUmxaRlI1Y0dVZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNBOFpHbDJJR05zWVhOelRtRnRaVDFjSW5CaGJtVnNRMjlzZFcxdVhDSStYRzRnSUNBZ0lDQjdLQ2hvWVhOVGRISnZhMlZEYjJ4dmNpaGxiR1Z0Wlc1MFZIbHdaU2tnSmlaY2JpQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEZSNWNHVWdJVDA5SUZ3aWFXMWhaMlZjSWlBbUpseHVJQ0FnSUNBZ0lDQmpiMjF0YjI1VFpXeGxZM1JsWkZSNWNHVWdJVDA5SUZ3aWFXMWhaMlZjSWlrZ2ZIeGNiaUFnSUNBZ0lDQWdkR0Z5WjJWMFJXeGxiV1Z1ZEhNdWMyOXRaU2dvWld4bGJXVnVkQ2tnUFQ0Z2FHRnpVM1J5YjJ0bFEyOXNiM0lvWld4bGJXVnVkQzUwZVhCbEtTa3BJQ1ltWEc0Z0lDQWdJQ0FnSUhKbGJtUmxja0ZqZEdsdmJpaGNJbU5vWVc1blpWTjBjbTlyWlVOdmJHOXlYQ0lwZlZ4dUlDQWdJQ0FnZTNOb2IzZERhR0Z1WjJWQ1lXTnJaM0p2ZFc1a1NXTnZibk1nSmlZZ2NtVnVaR1Z5UVdOMGFXOXVLRndpWTJoaGJtZGxRbUZqYTJkeWIzVnVaRU52Ykc5eVhDSXBmVnh1SUNBZ0lDQWdlM05vYjNkR2FXeHNTV052Ym5NZ0ppWWdjbVZ1WkdWeVFXTjBhVzl1S0Z3aVkyaGhibWRsUm1sc2JGTjBlV3hsWENJcGZWeHVYRzRnSUNBZ0lDQjdLR2hoYzFOMGNtOXJaVmRwWkhSb0tHVnNaVzFsYm5SVWVYQmxLU0I4ZkZ4dUlDQWdJQ0FnSUNCMFlYSm5aWFJGYkdWdFpXNTBjeTV6YjIxbEtDaGxiR1Z0Wlc1MEtTQTlQaUJvWVhOVGRISnZhMlZYYVdSMGFDaGxiR1Z0Wlc1MExuUjVjR1VwS1NrZ0ppWmNiaUFnSUNBZ0lDQWdjbVZ1WkdWeVFXTjBhVzl1S0Z3aVkyaGhibWRsVTNSeWIydGxWMmxrZEdoY0lpbDlYRzVjYmlBZ0lDQWdJSHNvWld4bGJXVnVkRlI1Y0dVZ1BUMDlJRndpWm5KbFpXUnlZWGRjSWlCOGZGeHVJQ0FnSUNBZ0lDQjBZWEpuWlhSRmJHVnRaVzUwY3k1emIyMWxLQ2hsYkdWdFpXNTBLU0E5UGlCbGJHVnRaVzUwTG5SNWNHVWdQVDA5SUZ3aVpuSmxaV1J5WVhkY0lpa3BJQ1ltWEc0Z0lDQWdJQ0FnSUhKbGJtUmxja0ZqZEdsdmJpaGNJbU5vWVc1blpWTjBjbTlyWlZOb1lYQmxYQ0lwZlZ4dVhHNGdJQ0FnSUNCN0tHaGhjMU4wY205clpWTjBlV3hsS0dWc1pXMWxiblJVZVhCbEtTQjhmRnh1SUNBZ0lDQWdJQ0IwWVhKblpYUkZiR1Z0Wlc1MGN5NXpiMjFsS0NobGJHVnRaVzUwS1NBOVBpQm9ZWE5UZEhKdmEyVlRkSGxzWlNobGJHVnRaVzUwTG5SNWNHVXBLU2tnSmlZZ0tGeHVJQ0FnSUNBZ0lDQThQbHh1SUNBZ0lDQWdJQ0FnSUh0eVpXNWtaWEpCWTNScGIyNG9YQ0pqYUdGdVoyVlRkSEp2YTJWVGRIbHNaVndpS1gxY2JpQWdJQ0FnSUNBZ0lDQjdjbVZ1WkdWeVFXTjBhVzl1S0Z3aVkyaGhibWRsVTJ4dmNIQnBibVZ6YzF3aUtYMWNiaUFnSUNBZ0lDQWdQQzgrWEc0Z0lDQWdJQ0FwZlZ4dVhHNGdJQ0FnSUNCN0tHTmhia05vWVc1blpWTm9ZWEp3Ym1WemN5aGxiR1Z0Wlc1MFZIbHdaU2tnZkh4Y2JpQWdJQ0FnSUNBZ2RHRnlaMlYwUld4bGJXVnVkSE11YzI5dFpTZ29aV3hsYldWdWRDa2dQVDRnWTJGdVEyaGhibWRsVTJoaGNuQnVaWE56S0dWc1pXMWxiblF1ZEhsd1pTa3BLU0FtSmlBb1hHNGdJQ0FnSUNBZ0lEdytlM0psYm1SbGNrRmpkR2x2YmloY0ltTm9ZVzVuWlZOb1lYSndibVZ6YzF3aUtYMDhMejVjYmlBZ0lDQWdJQ2w5WEc1Y2JpQWdJQ0FnSUhzb2FHRnpWR1Y0ZENobGJHVnRaVzUwVkhsd1pTa2dmSHhjYmlBZ0lDQWdJQ0FnZEdGeVoyVjBSV3hsYldWdWRITXVjMjl0WlNnb1pXeGxiV1Z1ZENrZ1BUNGdhR0Z6VkdWNGRDaGxiR1Z0Wlc1MExuUjVjR1VwS1NrZ0ppWWdLRnh1SUNBZ0lDQWdJQ0E4UGx4dUlDQWdJQ0FnSUNBZ0lIdHlaVzVrWlhKQlkzUnBiMjRvWENKamFHRnVaMlZHYjI1MFUybDZaVndpS1gxY2JseHVJQ0FnSUNBZ0lDQWdJSHR5Wlc1a1pYSkJZM1JwYjI0b1hDSmphR0Z1WjJWR2IyNTBSbUZ0YVd4NVhDSXBmVnh1WEc0Z0lDQWdJQ0FnSUNBZ2UzSmxibVJsY2tGamRHbHZiaWhjSW1Ob1lXNW5aVlJsZUhSQmJHbG5ibHdpS1gxY2JpQWdJQ0FnSUNBZ1BDOCtYRzRnSUNBZ0lDQXBmVnh1WEc0Z0lDQWdJQ0I3S0dOaGJraGhkbVZCY25KdmQyaGxZV1J6S0dWc1pXMWxiblJVZVhCbEtTQjhmRnh1SUNBZ0lDQWdJQ0IwWVhKblpYUkZiR1Z0Wlc1MGN5NXpiMjFsS0NobGJHVnRaVzUwS1NBOVBpQmpZVzVJWVhabFFYSnliM2RvWldGa2N5aGxiR1Z0Wlc1MExuUjVjR1VwS1NrZ0ppWWdLRnh1SUNBZ0lDQWdJQ0E4UG50eVpXNWtaWEpCWTNScGIyNG9YQ0pqYUdGdVoyVkJjbkp2ZDJobFlXUmNJaWw5UEM4K1hHNGdJQ0FnSUNBcGZWeHVYRzRnSUNBZ0lDQjdjbVZ1WkdWeVFXTjBhVzl1S0Z3aVkyaGhibWRsVDNCaFkybDBlVndpS1gxY2JseHVJQ0FnSUNBZ1BHWnBaV3hrYzJWMFBseHVJQ0FnSUNBZ0lDQThiR1ZuWlc1a1BudDBLRndpYkdGaVpXeHpMbXhoZVdWeWMxd2lLWDA4TDJ4bFoyVnVaRDVjYmlBZ0lDQWdJQ0FnUEdScGRpQmpiR0Z6YzA1aGJXVTlYQ0ppZFhSMGIyNU1hWE4wWENJK1hHNGdJQ0FnSUNBZ0lDQWdlM0psYm1SbGNrRmpkR2x2YmloY0luTmxibVJVYjBKaFkydGNJaWw5WEc0Z0lDQWdJQ0FnSUNBZ2UzSmxibVJsY2tGamRHbHZiaWhjSW5ObGJtUkNZV05yZDJGeVpGd2lLWDFjYmlBZ0lDQWdJQ0FnSUNCN2NtVnVaR1Z5UVdOMGFXOXVLRndpWW5KcGJtZFViMFp5YjI1MFhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUh0eVpXNWtaWEpCWTNScGIyNG9YQ0ppY21sdVowWnZjbmRoY21SY0lpbDlYRzRnSUNBZ0lDQWdJRHd2WkdsMlBseHVJQ0FnSUNBZ1BDOW1hV1ZzWkhObGRENWNibHh1SUNBZ0lDQWdlM1JoY21kbGRFVnNaVzFsYm5SekxteGxibWQwYUNBK0lERWdKaVlnS0Z4dUlDQWdJQ0FnSUNBOFptbGxiR1J6WlhRK1hHNGdJQ0FnSUNBZ0lDQWdQR3hsWjJWdVpENTdkQ2hjSW14aFltVnNjeTVoYkdsbmJsd2lLWDA4TDJ4bFoyVnVaRDVjYmlBZ0lDQWdJQ0FnSUNBOFpHbDJJR05zWVhOelRtRnRaVDFjSW1KMWRIUnZia3hwYzNSY0lqNWNiaUFnSUNBZ0lDQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2MzZGhjQ0IwYUdseklHOXlaR1Z5SUdadmNpQlNWRXdnYzI4Z2RHaGxJR0oxZEhSdmJpQndiM05wZEdsdmJuTWdZV3gzWVhseklHMWhkR05vSUhSb1pXbHlJR0ZqZEdsdmJseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QW9hUzVsTGlCMGFHVWdiR1ZtZEcxdmMzUWdZblYwZEc5dUlHRnNhV2R1Y3lCc1pXWjBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZTJselVsUk1JRDhnS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0E4UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUh0eVpXNWtaWEpCWTNScGIyNG9YQ0poYkdsbmJsSnBaMmgwWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIdHlaVzVrWlhKQlkzUnBiMjRvWENKaGJHbG5ia2h2Y21sNmIyNTBZV3hzZVVObGJuUmxjbVZrWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIdHlaVzVrWlhKQlkzUnBiMjRvWENKaGJHbG5ia3hsWm5SY0lpbDlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0tTQTZJQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQRDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I3Y21WdVpHVnlRV04wYVc5dUtGd2lZV3hwWjI1TVpXWjBYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUh0eVpXNWtaWEpCWTNScGIyNG9YQ0poYkdsbmJraHZjbWw2YjI1MFlXeHNlVU5sYm5SbGNtVmtYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUh0eVpXNWtaWEpCWTNScGIyNG9YQ0poYkdsbmJsSnBaMmgwWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEx6NWNiaUFnSUNBZ0lDQWdJQ0FnSUNsOVhHNGdJQ0FnSUNBZ0lDQWdJQ0I3ZEdGeVoyVjBSV3hsYldWdWRITXViR1Z1WjNSb0lENGdNaUFtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J5Wlc1a1pYSkJZM1JwYjI0b1hDSmthWE4wY21saWRYUmxTRzl5YVhwdmJuUmhiR3g1WENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnUEdScGRpQmpiR0Z6YzA1aGJXVTlYQ0pwWTI5dVVtOTNYQ0krWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSHR5Wlc1a1pYSkJZM1JwYjI0b1hDSmhiR2xuYmxSdmNGd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdlM0psYm1SbGNrRmpkR2x2YmloY0ltRnNhV2R1Vm1WeWRHbGpZV3hzZVVObGJuUmxjbVZrWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCN2NtVnVaR1Z5UVdOMGFXOXVLRndpWVd4cFoyNUNiM1IwYjIxY0lpbDlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIdDBZWEpuWlhSRmJHVnRaVzUwY3k1c1pXNW5kR2dnUGlBeUlDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ1WkdWeVFXTjBhVzl1S0Z3aVpHbHpkSEpwWW5WMFpWWmxjblJwWTJGc2JIbGNJaWw5WEc0Z0lDQWdJQ0FnSUNBZ0lDQThMMlJwZGo1Y2JpQWdJQ0FnSUNBZ0lDQThMMlJwZGo1Y2JpQWdJQ0FnSUNBZ1BDOW1hV1ZzWkhObGRENWNiaUFnSUNBZ0lDbDlYRzRnSUNBZ0lDQjdJV2x6UldScGRHbHVaeUFtSmlCMFlYSm5aWFJGYkdWdFpXNTBjeTVzWlc1bmRHZ2dQaUF3SUNZbUlDaGNiaUFnSUNBZ0lDQWdQR1pwWld4a2MyVjBQbHh1SUNBZ0lDQWdJQ0FnSUR4c1pXZGxibVErZTNRb1hDSnNZV0psYkhNdVlXTjBhVzl1YzF3aUtYMDhMMnhsWjJWdVpENWNiaUFnSUNBZ0lDQWdJQ0E4WkdsMklHTnNZWE56VG1GdFpUMWNJbUoxZEhSdmJreHBjM1JjSWo1Y2JpQWdJQ0FnSUNBZ0lDQWdJSHNoYVhOTmIySnBiR1VnSmlZZ2NtVnVaR1Z5UVdOMGFXOXVLRndpWkhWd2JHbGpZWFJsVTJWc1pXTjBhVzl1WENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZXlGcGMwMXZZbWxzWlNBbUppQnlaVzVrWlhKQlkzUnBiMjRvWENKa1pXeGxkR1ZUWld4bFkzUmxaRVZzWlcxbGJuUnpYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdlM0psYm1SbGNrRmpkR2x2YmloY0ltZHliM1Z3WENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZTNKbGJtUmxja0ZqZEdsdmJpaGNJblZ1WjNKdmRYQmNJaWw5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjdkR0Z5WjJWMFJXeGxiV1Z1ZEhNdWJHVnVaM1JvSUQwOVBTQXhJQ1ltSUhKbGJtUmxja0ZqZEdsdmJpaGNJbXhwYm10Y0lpbDlYRzRnSUNBZ0lDQWdJQ0FnUEM5a2FYWStYRzRnSUNBZ0lDQWdJRHd2Wm1sbGJHUnpaWFErWEc0Z0lDQWdJQ0FwZlZ4dUlDQWdJRHd2WkdsMlBseHVJQ0FwTzF4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElGTm9ZWEJsYzFOM2FYUmphR1Z5SUQwZ0tIdGNiaUFnWTJGdWRtRnpMRnh1SUNCbGJHVnRaVzUwVkhsd1pTeGNiaUFnYzJWMFFYQndVM1JoZEdVc1hHNGdJRzl1U1cxaFoyVkJZM1JwYjI0c1hHNTlPaUI3WEc0Z0lHTmhiblpoY3pvZ1NGUk5URU5oYm5aaGMwVnNaVzFsYm5RZ2ZDQnVkV3hzTzF4dUlDQmxiR1Z0Wlc1MFZIbHdaVG9nUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWENKMGVYQmxYQ0pkTzF4dUlDQnpaWFJCY0hCVGRHRjBaVG9nVW1WaFkzUXVRMjl0Y0c5dVpXNTBQR0Z1ZVN3Z1FYQndVM1JoZEdVK1cxd2ljMlYwVTNSaGRHVmNJbDA3WEc0Z0lHOXVTVzFoWjJWQlkzUnBiMjQ2SUNoa1lYUmhPaUI3SUhCdmFXNTBaWEpVZVhCbE9pQlFiMmx1ZEdWeVZIbHdaU0I4SUc1MWJHd2dmU2tnUFQ0Z2RtOXBaRHRjYm4wcElEMCtJQ2hjYmlBZ1BENWNiaUFnSUNCN1UwaEJVRVZUTG0xaGNDZ29leUIyWVd4MVpTd2dhV052Yml3Z2EyVjVJSDBzSUdsdVpHVjRLU0E5UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0JzWVdKbGJDQTlJSFFvWUhSdmIyeENZWEl1Skh0MllXeDFaWDFnS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR3hsZEhSbGNpQTlJR3RsZVNBbUppQW9kSGx3Wlc5bUlHdGxlU0E5UFQwZ1hDSnpkSEpwYm1kY0lpQS9JR3RsZVNBNklHdGxlVnN3WFNrN1hHNGdJQ0FnSUNCamIyNXpkQ0J6YUc5eWRHTjFkQ0E5SUd4bGRIUmxjbHh1SUNBZ0lDQWdJQ0EvSUdBa2UyTmhjR2wwWVd4cGVtVlRkSEpwYm1jb2JHVjBkR1Z5S1gwZ0pIdDBLRndpYUdWc2NFUnBZV3h2Wnk1dmNsd2lLWDBnSkh0cGJtUmxlQ0FySURGOVlGeHVJQ0FnSUNBZ0lDQTZJR0FrZTJsdVpHVjRJQ3NnTVgxZ08xeHVJQ0FnSUNBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FnSUNBZ1BGUnZiMnhDZFhSMGIyNWNiaUFnSUNBZ0lDQWdJQ0JqYkdGemMwNWhiV1U5WENKVGFHRndaVndpWEc0Z0lDQWdJQ0FnSUNBZ2EyVjVQWHQyWVd4MVpYMWNiaUFnSUNBZ0lDQWdJQ0IwZVhCbFBWd2ljbUZrYVc5Y0lseHVJQ0FnSUNBZ0lDQWdJR2xqYjI0OWUybGpiMjU5WEc0Z0lDQWdJQ0FnSUNBZ1kyaGxZMnRsWkQxN1pXeGxiV1Z1ZEZSNWNHVWdQVDA5SUhaaGJIVmxmVnh1SUNBZ0lDQWdJQ0FnSUc1aGJXVTlYQ0psWkdsMGIzSXRZM1Z5Y21WdWRDMXphR0Z3WlZ3aVhHNGdJQ0FnSUNBZ0lDQWdkR2wwYkdVOWUyQWtlMk5oY0dsMFlXeHBlbVZUZEhKcGJtY29iR0ZpWld3cGZTRGlnSlFnSkh0emFHOXlkR04xZEgxZ2ZWeHVJQ0FnSUNBZ0lDQWdJR3RsZVVKcGJtUnBibWRNWVdKbGJEMTdZQ1I3YVc1a1pYZ2dLeUF4ZldCOVhHNGdJQ0FnSUNBZ0lDQWdZWEpwWVMxc1lXSmxiRDE3WTJGd2FYUmhiR2w2WlZOMGNtbHVaeWhzWVdKbGJDbDlYRzRnSUNBZ0lDQWdJQ0FnWVhKcFlTMXJaWGx6YUc5eWRHTjFkSE05ZTNOb2IzSjBZM1YwZlZ4dUlDQWdJQ0FnSUNBZ0lHUmhkR0V0ZEdWemRHbGtQWHQyWVd4MVpYMWNiaUFnSUNBZ0lDQWdJQ0J2YmtOb1lXNW5aVDE3S0hzZ2NHOXBiblJsY2xSNWNHVWdmU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYzJWMFFYQndVM1JoZEdVb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJHVnRaVzUwVkhsd1pUb2dkbUZzZFdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUcxMWJIUnBSV3hsYldWdWREb2diblZzYkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJWc1pXTjBaV1JGYkdWdFpXNTBTV1J6T2lCN2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYzJWMFEzVnljMjl5Um05eVUyaGhjR1VvWTJGdWRtRnpMQ0IyWVd4MVpTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kbUZzZFdVZ1BUMDlJRndpYVcxaFoyVmNJaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtsdFlXZGxRV04wYVc5dUtIc2djRzlwYm5SbGNsUjVjR1VnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2ZYMWNiaUFnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmU2w5WEc0Z0lEd3ZQbHh1S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUZwdmIyMUJZM1JwYjI1eklEMGdLSHRjYmlBZ2NtVnVaR1Z5UVdOMGFXOXVMRnh1SUNCNmIyOXRMRnh1ZlRvZ2UxeHVJQ0J5Wlc1a1pYSkJZM1JwYjI0NklFRmpkR2x2YmsxaGJtRm5aWEpiWENKeVpXNWtaWEpCWTNScGIyNWNJbDA3WEc0Z0lIcHZiMjA2SUZwdmIyMDdYRzU5S1NBOVBpQW9YRzRnSUR4VGRHRmpheTVEYjJ3Z1oyRndQWHN4ZlQ1Y2JpQWdJQ0E4VTNSaFkyc3VVbTkzSUdkaGNEMTdNWDBnWVd4cFoyNDlYQ0pqWlc1MFpYSmNJajVjYmlBZ0lDQWdJSHR5Wlc1a1pYSkJZM1JwYjI0b1hDSjZiMjl0VDNWMFhDSXBmVnh1SUNBZ0lDQWdlM0psYm1SbGNrRmpkR2x2YmloY0lucHZiMjFKYmx3aUtYMWNiaUFnSUNBZ0lIdHlaVzVrWlhKQlkzUnBiMjRvWENKeVpYTmxkRnB2YjIxY0lpbDlYRzRnSUNBZ1BDOVRkR0ZqYXk1U2IzYytYRzRnSUR3dlUzUmhZMnN1UTI5c1BseHVLVHRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9BY3Rpb25zLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9BY3RpdmVGaWxlLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvQWN0aXZlRmlsZS50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiQWN0aXZlRmlsZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEFjdGl2ZUZpbGUpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX1N0YWNrX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL1N0YWNrICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1N0YWNrLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29tcG9uZW50c19Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL1Rvb2xCdXR0b24gKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVG9vbEJ1dHRvbi50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbXBvbmVudHMvaWNvbnMgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvaWNvbnMudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pMThuICovIFxcXCIuLi8uLi9pMThuLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9BY3RpdmVGaWxlX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vQWN0aXZlRmlsZS5zY3NzICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0FjdGl2ZUZpbGUuc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfQWN0aXZlRmlsZV9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX0FjdGl2ZUZpbGVfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBBY3RpdmVGaWxlID0gKHsgZmlsZU5hbWUsIG9uU2F2ZSB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShfY29tcG9uZW50c19TdGFja19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fW1xcXCJkZWZhdWx0XFxcIl0uUm93LCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiQWN0aXZlRmlsZVxcXCIsIGdhcDogMSwgYWxpZ246IFxcXCJjZW50ZXJcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJzcGFuXFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcIkFjdGl2ZUZpbGVfX2ZpbGVOYW1lXFxcIiB9LCB7IGNoaWxkcmVuOiBbX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5maWxlLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInNwYW5cXFwiLCB7IGNoaWxkcmVuOiBmaWxlTmFtZSB9LCB2b2lkIDApXSB9KSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5Ub29sQnV0dG9uLCB7IHR5cGU6IFxcXCJpY29uXFxcIiwgaWNvbjogX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5zYXZlLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwiYnV0dG9ucy5zYXZlXFxcIiksIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwiYnV0dG9ucy5zYXZlXFxcIiksIG9uQ2xpY2s6IG9uU2F2ZSwgXFxcImRhdGEtdGVzdGlkXFxcIjogXFxcInNhdmUtYnV0dG9uXFxcIiB9LCB2b2lkIDApXSB9KSwgdm9pZCAwKSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlCWTNScGRtVkdhV3hsTG5SemVDNXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN096czdRVUZCZDBNN1FVRkRZenRCUVVOTU8wRkJRM0pDTzBGQlJVUTdRVUZQY0VJc1RVRkJUU3hWUVVGVkxFZEJRVWNzUTBGQlF5eEZRVUZGTEZGQlFWRXNSVUZCUlN4TlFVRk5MRVZCUVcxQ0xFVkJRVVVzUlVGQlJTeERRVUZETEVOQlEyNUZMSGRFUVVGRExEWkVRVUZUTEd0Q1FVRkRMRk5CUVZNc1JVRkJReXhaUVVGWkxFVkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVVNc1VVRkJVU3hwUWtGRGRFUXNaMFpCUVUwc1UwRkJVeXhGUVVGRExITkNRVUZ6UWl4cFFrRkRia01zYlVSQlFVa3NSVUZEVEN3eVJVRkJUeXhSUVVGUkxGZEJRVkVzWVVGRGJFSXNSVUZEVUN4MVJFRkJReXc0UkVGQlZTeEpRVU5VTEVsQlFVa3NSVUZCUXl4TlFVRk5MRVZCUTFnc1NVRkJTU3hGUVVGRkxHMUVRVUZKTEVWQlExWXNTMEZCU3l4RlFVRkZMSGREUVVGRExFTkJRVU1zWTBGQll5eERRVUZETEdkQ1FVTmFMSGREUVVGRExFTkJRVU1zWTBGQll5eERRVUZETEVWQlF6ZENMRTlCUVU4c1JVRkJSU3hOUVVGTkxHbENRVU5JTEdGQlFXRXNWMEZEZWtJc1lVRkRVU3hEUVVOaUxFTkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUJZM1JwZG1WR2FXeGxMblJ6ZUQ5aE5UUTVJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0JUZEdGamF5Qm1jbTl0SUZ3aUxpNHZZMjl0Y0c5dVpXNTBjeTlUZEdGamExd2lPMXh1YVcxd2IzSjBJSHNnVkc5dmJFSjFkSFJ2YmlCOUlHWnliMjBnWENJdUxpOWpiMjF3YjI1bGJuUnpMMVJ2YjJ4Q2RYUjBiMjVjSWp0Y2JtbHRjRzl5ZENCN0lITmhkbVVzSUdacGJHVWdmU0JtY205dElGd2lMaTR2WTI5dGNHOXVaVzUwY3k5cFkyOXVjMXdpTzF4dWFXMXdiM0owSUhzZ2RDQjlJR1p5YjIwZ1hDSXVMaTlwTVRodVhDSTdYRzVjYm1sdGNHOXlkQ0JjSWk0dlFXTjBhWFpsUm1sc1pTNXpZM056WENJN1hHNWNiblI1Y0dVZ1FXTjBhWFpsUm1sc1pWQnliM0J6SUQwZ2UxeHVJQ0JtYVd4bFRtRnRaVDg2SUhOMGNtbHVaenRjYmlBZ2IyNVRZWFpsT2lBb0tTQTlQaUIyYjJsa08xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRUZqZEdsMlpVWnBiR1VnUFNBb2V5Qm1hV3hsVG1GdFpTd2diMjVUWVhabElIMDZJRUZqZEdsMlpVWnBiR1ZRY205d2N5a2dQVDRnS0Z4dUlDQThVM1JoWTJzdVVtOTNJR05zWVhOelRtRnRaVDFjSWtGamRHbDJaVVpwYkdWY0lpQm5ZWEE5ZXpGOUlHRnNhV2R1UFZ3aVkyVnVkR1Z5WENJK1hHNGdJQ0FnUEhOd1lXNGdZMnhoYzNOT1lXMWxQVndpUVdOMGFYWmxSbWxzWlY5ZlptbHNaVTVoYldWY0lqNWNiaUFnSUNBZ0lIdG1hV3hsZlZ4dUlDQWdJQ0FnUEhOd1lXNCtlMlpwYkdWT1lXMWxmVHd2YzNCaGJqNWNiaUFnSUNBOEwzTndZVzQrWEc0Z0lDQWdQRlJ2YjJ4Q2RYUjBiMjVjYmlBZ0lDQWdJSFI1Y0dVOVhDSnBZMjl1WENKY2JpQWdJQ0FnSUdsamIyNDllM05oZG1WOVhHNGdJQ0FnSUNCMGFYUnNaVDE3ZENoY0ltSjFkSFJ2Ym5NdWMyRjJaVndpS1gxY2JpQWdJQ0FnSUdGeWFXRXRiR0ZpWld3OWUzUW9YQ0ppZFhSMGIyNXpMbk5oZG1WY0lpbDlYRzRnSUNBZ0lDQnZia05zYVdOclBYdHZibE5oZG1WOVhHNGdJQ0FnSUNCa1lYUmhMWFJsYzNScFpEMWNJbk5oZG1VdFluVjBkRzl1WENKY2JpQWdJQ0F2UGx4dUlDQThMMU4wWVdOckxsSnZkejVjYmlrN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvQWN0aXZlRmlsZS50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvQXBwLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9BcHAudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwidXNlSXNNb2JpbGVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB1c2VJc01vYmlsZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwidXNlRXhjYWxpZHJhd0NvbnRhaW5lclxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHVzZUV4Y2FsaWRyYXdDb250YWluZXIpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdCAqLyBcXFwicmVhY3RcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcm91Z2hqc19iaW5fcm91Z2hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJvdWdoanMvYmluL3JvdWdoICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vcm91Z2guanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgY2xzeCAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nsc3gvZGlzdC9jbHN4Lm0uanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgbmFub2lkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80N19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgbmFub2lkICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbmFub2lkL2luZGV4LmRldi5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vYWN0aW9ucyAqLyBcXFwiLi4vLi4vYWN0aW9ucy9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYWN0aW9uc19hY3Rpb25IaXN0b3J5X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9hY3Rpb25zL2FjdGlvbkhpc3RvcnkgKi8gXFxcIi4uLy4uL2FjdGlvbnMvYWN0aW9uSGlzdG9yeS50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FjdGlvbnNfbWFuYWdlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vYWN0aW9ucy9tYW5hZ2VyICovIFxcXCIuLi8uLi9hY3Rpb25zL21hbmFnZXIudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hY3Rpb25zX3JlZ2lzdGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9hY3Rpb25zL3JlZ2lzdGVyICovIFxcXCIuLi8uLi9hY3Rpb25zL3JlZ2lzdGVyLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hbmFseXRpY3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2FuYWx5dGljcyAqLyBcXFwiLi4vLi4vYW5hbHl0aWNzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hcHBTdGF0ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vYXBwU3RhdGUgKi8gXFxcIi4uLy4uL2FwcFN0YXRlLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jbGlwYm9hcmRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jbGlwYm9hcmQgKi8gXFxcIi4uLy4uL2NsaXBib2FyZC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29uc3RhbnRzICovIFxcXCIuLi8uLi9jb25zdGFudHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2RhdGFfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9kYXRhICovIFxcXCIuLi8uLi9kYXRhL2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9kYXRhX2pzb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9kYXRhL2pzb24gKi8gXFxcIi4uLy4uL2RhdGEvanNvbi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZGF0YV9saWJyYXJ5X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZGF0YS9saWJyYXJ5ICovIFxcXCIuLi8uLi9kYXRhL2xpYnJhcnkudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2RhdGFfcmVzdG9yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2RhdGEvcmVzdG9yZSAqLyBcXFwiLi4vLi4vZGF0YS9yZXN0b3JlLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC9iaW5kaW5nICovIFxcXCIuLi8uLi9lbGVtZW50L2JpbmRpbmcudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfbGluZWFyRWxlbWVudEVkaXRvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMThfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvbGluZWFyRWxlbWVudEVkaXRvciAqLyBcXFwiLi4vLi4vZWxlbWVudC9saW5lYXJFbGVtZW50RWRpdG9yLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE5X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L211dGF0ZUVsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvbXV0YXRlRWxlbWVudC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9uZXdFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC9uZXdFbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L25ld0VsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvdHlwZUNoZWNrcyAqLyBcXFwiLi4vLi4vZWxlbWVudC90eXBlQ2hlY2tzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9nZXN0dXJlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZ2VzdHVyZSAqLyBcXFwiLi4vLi4vZ2VzdHVyZS50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZ3JvdXBzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZ3JvdXBzICovIFxcXCIuLi8uLi9ncm91cHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hpc3RvcnlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI0X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9oaXN0b3J5ICovIFxcXCIuLi8uLi9oaXN0b3J5LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2tleXMgKi8gXFxcIi4uLy4uL2tleXMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI3X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9tYXRoICovIFxcXCIuLi8uLi9tYXRoLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9yZW5kZXJlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3JlbmRlcmVyICovIFxcXCIuLi8uLi9yZW5kZXJlci9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmVuZGVyZXJfcmVuZGVyRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3JlbmRlcmVyL3JlbmRlckVsZW1lbnQgKi8gXFxcIi4uLy4uL3JlbmRlcmVyL3JlbmRlckVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vc2NlbmUgKi8gXFxcIi4uLy4uL3NjZW5lL2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2VuZV9TY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lL1NjZW5lICovIFxcXCIuLi8uLi9zY2VuZS9TY2VuZS50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfem9vbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lL3pvb20gKi8gXFxcIi4uLy4uL3NjZW5lL3pvb20udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NoYXBlc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NoYXBlcyAqLyBcXFwiLi4vLi4vc2hhcGVzLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi91dGlscyAqLyBcXFwiLi4vLi4vdXRpbHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0NvbnRleHRNZW51X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Db250ZXh0TWVudSAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Db250ZXh0TWVudS50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0xheWVyVUlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM2X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0xheWVyVUkgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvTGF5ZXJVSS50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1N0YXRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9TdGF0cyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9TdGF0cy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1RvYXN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zOF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Ub2FzdCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Ub2FzdC50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FjdGlvbnNfYWN0aW9uVG9nZ2xlVmlld01vZGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM5X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9hY3Rpb25zL2FjdGlvblRvZ2dsZVZpZXdNb2RlICovIFxcXCIuLi8uLi9hY3Rpb25zL2FjdGlvblRvZ2dsZVZpZXdNb2RlLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZGF0YV9ibG9iX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80MF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZGF0YS9ibG9iICovIFxcXCIuLi8uLi9kYXRhL2Jsb2IudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfaW1hZ2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQxX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L2ltYWdlICovIFxcXCIuLi8uLi9lbGVtZW50L2ltYWdlLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIGxvZGFzaF90aHJvdHRsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNDJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIGxvZGFzaC50aHJvdHRsZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2xvZGFzaC50aHJvdHRsZS9pbmRleC5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBsb2Rhc2hfdGhyb3R0bGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQyX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4obG9kYXNoX3Rocm90dGxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80Ml9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2RhdGFfZmlsZXN5c3RlbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNDNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2RhdGEvZmlsZXN5c3RlbSAqLyBcXFwiLi4vLi4vZGF0YS9maWxlc3lzdGVtLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80NF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC90ZXh0RWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC90ZXh0RWxlbWVudC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9jb2xsaXNpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQ1X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L2NvbGxpc2lvbiAqLyBcXFwiLi4vLi4vZWxlbWVudC9jb2xsaXNpb24udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfSHlwZXJsaW5rX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80Nl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC9IeXBlcmxpbmsgKi8gXFxcIi4uLy4uL2VsZW1lbnQvSHlwZXJsaW5rLnRzeFxcXCIpO1xcbnZhciBfX2F3YWl0ZXIgPSAodW5kZWZpbmVkICYmIHVuZGVmaW5lZC5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XFxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXFxcInRocm93XFxcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcXG4gICAgfSk7XFxufTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBJc01vYmlsZUNvbnRleHQgPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5jcmVhdGVDb250ZXh0KGZhbHNlKTtcXG5jb25zdCB1c2VJc01vYmlsZSA9ICgpID0+ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udXNlQ29udGV4dCkoSXNNb2JpbGVDb250ZXh0KTtcXG5jb25zdCBFeGNhbGlkcmF3Q29udGFpbmVyQ29udGV4dCA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLmNyZWF0ZUNvbnRleHQoeyBjb250YWluZXI6IG51bGwsIGlkOiBudWxsIH0pO1xcbmNvbnN0IHVzZUV4Y2FsaWRyYXdDb250YWluZXIgPSAoKSA9PiAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZUNvbnRleHQpKEV4Y2FsaWRyYXdDb250YWluZXJDb250ZXh0KTtcXG5sZXQgZGlkVGFwVHdpY2UgPSBmYWxzZTtcXG5sZXQgdGFwcGVkVHdpY2VUaW1lciA9IDA7XFxubGV0IGN1cnNvclggPSAwO1xcbmxldCBjdXJzb3JZID0gMDtcXG5sZXQgaXNIb2xkaW5nU3BhY2UgPSBmYWxzZTtcXG5sZXQgaXNQYW5uaW5nID0gZmFsc2U7XFxubGV0IGlzRHJhZ2dpbmdTY3JvbGxCYXIgPSBmYWxzZTtcXG5sZXQgY3VycmVudFNjcm9sbEJhcnMgPSB7IGhvcml6b250YWw6IG51bGwsIHZlcnRpY2FsOiBudWxsIH07XFxubGV0IHRvdWNoVGltZW91dCA9IDA7XFxubGV0IGludmFsaWRhdGVDb250ZXh0TWVudSA9IGZhbHNlO1xcbmxldCBsYXN0UG9pbnRlclVwID0gbnVsbDtcXG5jb25zdCBnZXN0dXJlID0ge1xcbiAgICBwb2ludGVyczogbmV3IE1hcCgpLFxcbiAgICBsYXN0Q2VudGVyOiBudWxsLFxcbiAgICBpbml0aWFsRGlzdGFuY2U6IG51bGwsXFxuICAgIGluaXRpYWxTY2FsZTogbnVsbCxcXG59O1xcbmNsYXNzIEFwcCBleHRlbmRzIChyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5Db21wb25lbnQpIHtcXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcXG4gICAgICAgIHZhciBfYTtcXG4gICAgICAgIHN1cGVyKHByb3BzKTtcXG4gICAgICAgIHRoaXMuY2FudmFzID0gbnVsbDtcXG4gICAgICAgIHRoaXMucmMgPSBudWxsO1xcbiAgICAgICAgdGhpcy51bm1vdW50ZWQgPSBmYWxzZTtcXG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBmYWxzZTtcXG4gICAgICAgIHRoaXMuZXhjYWxpZHJhd0NvbnRhaW5lclJlZiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLmNyZWF0ZVJlZigpO1xcbiAgICAgICAgdGhpcy5maWxlcyA9IHt9O1xcbiAgICAgICAgdGhpcy5pbWFnZUNhY2hlID0gbmV3IE1hcCgpO1xcbiAgICAgICAgdGhpcy5sYXN0UG9pbnRlckRvd24gPSBudWxsO1xcbiAgICAgICAgdGhpcy5sYXN0UG9pbnRlclVwID0gbnVsbDtcXG4gICAgICAgIHRoaXMuY29udGV4dE1lbnVPcGVuID0gZmFsc2U7XFxuICAgICAgICB0aGlzLmZvY3VzQ29udGFpbmVyID0gKCkgPT4ge1xcbiAgICAgICAgICAgIHZhciBfYTtcXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5hdXRvRm9jdXMpIHtcXG4gICAgICAgICAgICAgICAgKF9hID0gdGhpcy5leGNhbGlkcmF3Q29udGFpbmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cygpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmdldFNjZW5lRWxlbWVudHNJbmNsdWRpbmdEZWxldGVkID0gKCkgPT4ge1xcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNjZW5lLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpO1xcbiAgICAgICAgfTtcXG4gICAgICAgIHRoaXMuZ2V0U2NlbmVFbGVtZW50cyA9ICgpID0+IHtcXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zY2VuZS5nZXRFbGVtZW50cygpO1xcbiAgICAgICAgfTtcXG4gICAgICAgIHRoaXMuc3luY0FjdGlvblJlc3VsdCA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy53aXRoQmF0Y2hlZFVwZGF0ZXMpKChhY3Rpb25SZXN1bHQpID0+IHtcXG4gICAgICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZjtcXG4gICAgICAgICAgICAvLyBTaW5jZSBjb250ZXh0IG1lbnUgY2xvc2VzIHdoZW4gYWN0aW9uIHRyaWdnZXJlZCBzbyBzZXR0aW5nIHRvIGZhbHNlXFxuICAgICAgICAgICAgdGhpcy5jb250ZXh0TWVudU9wZW4gPSBmYWxzZTtcXG4gICAgICAgICAgICBpZiAodGhpcy51bm1vdW50ZWQgfHwgYWN0aW9uUmVzdWx0ID09PSBmYWxzZSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGxldCBlZGl0aW5nRWxlbWVudCA9IG51bGw7XFxuICAgICAgICAgICAgaWYgKGFjdGlvblJlc3VsdC5lbGVtZW50cykge1xcbiAgICAgICAgICAgICAgICBhY3Rpb25SZXN1bHQuZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKCgoX2EgPSB0aGlzLnN0YXRlLmVkaXRpbmdFbGVtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaWQpID09PSBlbGVtZW50LmlkICYmXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5lZGl0aW5nRWxlbWVudCAhPT0gZWxlbWVudCAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmlzTm9uRGVsZXRlZEVsZW1lbnQpKGVsZW1lbnQpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGluZ0VsZW1lbnQgPSBlbGVtZW50O1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgdGhpcy5zY2VuZS5yZXBsYWNlQWxsRWxlbWVudHMoYWN0aW9uUmVzdWx0LmVsZW1lbnRzKTtcXG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvblJlc3VsdC5jb21taXRUb0hpc3RvcnkpIHtcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeS5yZXN1bWVSZWNvcmRpbmcoKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoYWN0aW9uUmVzdWx0LmZpbGVzKSB7XFxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZXMgPSBhY3Rpb25SZXN1bHQucmVwbGFjZUZpbGVzXFxuICAgICAgICAgICAgICAgICAgICA/IGFjdGlvblJlc3VsdC5maWxlc1xcbiAgICAgICAgICAgICAgICAgICAgOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZmlsZXMpLCBhY3Rpb25SZXN1bHQuZmlsZXMpO1xcbiAgICAgICAgICAgICAgICB0aGlzLmFkZE5ld0ltYWdlc1RvSW1hZ2VDYWNoZSgpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoYWN0aW9uUmVzdWx0LmFwcFN0YXRlIHx8IGVkaXRpbmdFbGVtZW50KSB7XFxuICAgICAgICAgICAgICAgIGlmIChhY3Rpb25SZXN1bHQuY29tbWl0VG9IaXN0b3J5KSB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnkucmVzdW1lUmVjb3JkaW5nKCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgbGV0IHZpZXdNb2RlRW5hYmxlZCA9ICgoX2EgPSBhY3Rpb25SZXN1bHQgPT09IG51bGwgfHwgYWN0aW9uUmVzdWx0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhY3Rpb25SZXN1bHQuYXBwU3RhdGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS52aWV3TW9kZUVuYWJsZWQpIHx8IGZhbHNlO1xcbiAgICAgICAgICAgICAgICBsZXQgemVuTW9kZUVuYWJsZWQgPSAoKF9iID0gYWN0aW9uUmVzdWx0ID09PSBudWxsIHx8IGFjdGlvblJlc3VsdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aW9uUmVzdWx0LmFwcFN0YXRlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuemVuTW9kZUVuYWJsZWQpIHx8IGZhbHNlO1xcbiAgICAgICAgICAgICAgICBsZXQgZ3JpZFNpemUgPSAoKF9jID0gYWN0aW9uUmVzdWx0ID09PSBudWxsIHx8IGFjdGlvblJlc3VsdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aW9uUmVzdWx0LmFwcFN0YXRlKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuZ3JpZFNpemUpIHx8IG51bGw7XFxuICAgICAgICAgICAgICAgIGxldCB0aGVtZSA9ICgoX2QgPSBhY3Rpb25SZXN1bHQgPT09IG51bGwgfHwgYWN0aW9uUmVzdWx0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhY3Rpb25SZXN1bHQuYXBwU3RhdGUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50aGVtZSkgfHwgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5USEVNRS5MSUdIVDtcXG4gICAgICAgICAgICAgICAgbGV0IG5hbWUgPSAoX2YgPSAoX2UgPSBhY3Rpb25SZXN1bHQgPT09IG51bGwgfHwgYWN0aW9uUmVzdWx0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhY3Rpb25SZXN1bHQuYXBwU3RhdGUpID09PSBudWxsIHx8IF9lID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZS5uYW1lKSAhPT0gbnVsbCAmJiBfZiAhPT0gdm9pZCAwID8gX2YgOiB0aGlzLnN0YXRlLm5hbWU7XFxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy52aWV3TW9kZUVuYWJsZWQgIT09IFxcXCJ1bmRlZmluZWRcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICB2aWV3TW9kZUVuYWJsZWQgPSB0aGlzLnByb3BzLnZpZXdNb2RlRW5hYmxlZDtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMuemVuTW9kZUVuYWJsZWQgIT09IFxcXCJ1bmRlZmluZWRcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICB6ZW5Nb2RlRW5hYmxlZCA9IHRoaXMucHJvcHMuemVuTW9kZUVuYWJsZWQ7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLmdyaWRNb2RlRW5hYmxlZCAhPT0gXFxcInVuZGVmaW5lZFxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgIGdyaWRTaXplID0gdGhpcy5wcm9wcy5ncmlkTW9kZUVuYWJsZWQgPyBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkdSSURfU0laRSA6IG51bGw7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLnRoZW1lICE9PSBcXFwidW5kZWZpbmVkXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgdGhlbWUgPSB0aGlzLnByb3BzLnRoZW1lO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5uYW1lICE9PSBcXFwidW5kZWZpbmVkXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHRoaXMucHJvcHMubmFtZTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKChzdGF0ZSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xcbiAgICAgICAgICAgICAgICAgICAgLy8gdXNpbmcgT2JqZWN0LmFzc2lnbiBpbnN0ZWFkIG9mIHNwcmVhZCB0byBmb29sIFRTIDQuMi4yKyBpbnRvXFxuICAgICAgICAgICAgICAgICAgICAvLyByZWdhcmRpbmcgdGhlIHJlc3VsdGluZyB0eXBlIGFzIG5vdCBjb250YWluaW5nIHVuZGVmaW5lZFxcbiAgICAgICAgICAgICAgICAgICAgLy8gKHdoaWNoIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbiB3aWxsIG5ldmVyIGNvbnRhaW4pXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihhY3Rpb25SZXN1bHQuYXBwU3RhdGUgfHwge30sIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBlZGl0aW5nRWxlbWVudDogZWRpdGluZ0VsZW1lbnQgfHwgKChfYSA9IGFjdGlvblJlc3VsdC5hcHBTdGF0ZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmVkaXRpbmdFbGVtZW50KSB8fCBudWxsLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdNb2RlRW5hYmxlZCxcXG4gICAgICAgICAgICAgICAgICAgICAgICB6ZW5Nb2RlRW5hYmxlZCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkU2l6ZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGVtZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lLFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH0sICgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3Rpb25SZXN1bHQuc3luY0hpc3RvcnkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpc3Rvcnkuc2V0Q3VycmVudFN0YXRlKHRoaXMuc3RhdGUsIHRoaXMuc2NlbmUuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCkpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KTtcXG4gICAgICAgIC8vIExpZmVjeWNsZVxcbiAgICAgICAgdGhpcy5vbkJsdXIgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18ud2l0aEJhdGNoZWRVcGRhdGVzKSgoKSA9PiB7XFxuICAgICAgICAgICAgaXNIb2xkaW5nU3BhY2UgPSBmYWxzZTtcXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNCaW5kaW5nRW5hYmxlZDogdHJ1ZSB9KTtcXG4gICAgICAgIH0pO1xcbiAgICAgICAgdGhpcy5vblVubG9hZCA9ICgpID0+IHtcXG4gICAgICAgICAgICB0aGlzLm9uQmx1cigpO1xcbiAgICAgICAgfTtcXG4gICAgICAgIHRoaXMuZGlzYWJsZUV2ZW50ID0gKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLm9uRm9udExvYWRlZCA9ICgpID0+IHtcXG4gICAgICAgICAgICB0aGlzLnNjZW5lLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpLmZvckVhY2goKGVsZW1lbnQpID0+IHtcXG4gICAgICAgICAgICAgICAgaWYgKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmlzVGV4dEVsZW1lbnQpKGVsZW1lbnQpKSB7XFxuICAgICAgICAgICAgICAgICAgICAoMCxfcmVuZGVyZXJfcmVuZGVyRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjlfXy5pbnZhbGlkYXRlU2hhcGVGb3JFbGVtZW50KShlbGVtZW50KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIHRoaXMub25TY2VuZVVwZGF0ZWQoKTtcXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmltcG9ydExpYnJhcnlGcm9tVXJsID0gKHVybCwgdG9rZW4pID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhhc2guaW5jbHVkZXMoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5VUkxfSEFTSF9LRVlTLmFkZExpYnJhcnkpKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc2ggPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpKTtcXG4gICAgICAgICAgICAgICAgaGFzaC5kZWxldGUoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5VUkxfSEFTSF9LRVlTLmFkZExpYnJhcnkpO1xcbiAgICAgICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uQVBQX05BTUUsIGAjJHtoYXNoLnRvU3RyaW5nKCl9YCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guaW5jbHVkZXMoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5VUkxfUVVFUllfS0VZUy5hZGRMaWJyYXJ5KSkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBxdWVyeSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XFxuICAgICAgICAgICAgICAgIHF1ZXJ5LmRlbGV0ZShfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLlVSTF9RVUVSWV9LRVlTLmFkZExpYnJhcnkpO1xcbiAgICAgICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uQVBQX05BTUUsIGA/JHtxdWVyeS50b1N0cmluZygpfWApO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0geWllbGQgZmV0Y2goZGVjb2RlVVJJQ29tcG9uZW50KHVybCkpO1xcbiAgICAgICAgICAgICAgICBjb25zdCBibG9iID0geWllbGQgcmVxdWVzdC5ibG9iKCk7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHlpZWxkIGJsb2IudGV4dCgpKTtcXG4gICAgICAgICAgICAgICAgaWYgKCEoMCxfZGF0YV9qc29uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLmlzVmFsaWRMaWJyYXJ5KShqc29uKSkge1xcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaWYgKHRva2VuID09PSB0aGlzLmlkIHx8XFxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuY29uZmlybSgoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjVfXy50KShcXFwiYWxlcnRzLmNvbmZpcm1BZGRMaWJyYXJ5XFxcIiwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bVNoYXBlczogKGpzb24ubGlicmFyeUl0ZW1zIHx8IGpzb24ubGlicmFyeSB8fCBbXSkubGVuZ3RoLFxcbiAgICAgICAgICAgICAgICAgICAgfSkpKSB7XFxuICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLmxpYnJhcnkuaW1wb3J0TGlicmFyeShibG9iLCBcXFwicHVibGlzaGVkXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAvLyBoYWNrIHRvIHJlcmVuZGVyIHRoZSBsaWJyYXJ5IGl0ZW1zIGFmdGVyIGltcG9ydFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuaXNMaWJyYXJ5T3Blbikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBpc0xpYnJhcnlPcGVuOiBmYWxzZSB9KTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBpc0xpYnJhcnlPcGVuOiB0cnVlIH0pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgICAgICAgICB3aW5kb3cuYWxlcnQoKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI1X18udCkoXFxcImFsZXJ0cy5lcnJvckxvYWRpbmdMaWJyYXJ5XFxcIikpO1xcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZmluYWxseSB7XFxuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNDb250YWluZXIoKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KTtcXG4gICAgICAgIHRoaXMucmVzZXRIaXN0b3J5ID0gKCkgPT4ge1xcbiAgICAgICAgICAgIHRoaXMuaGlzdG9yeS5jbGVhcigpO1xcbiAgICAgICAgfTtcXG4gICAgICAgIC8qKlxcbiAgICAgICAgICogUmVzZXRzIHNjZW5lICYgaGlzdG9yeS5cXG4gICAgICAgICAqICEgRG8gbm90IHVzZSB0byBjbGVhciBzY2VuZSB1c2VyIGFjdGlvbiAhXFxuICAgICAgICAgKi9cXG4gICAgICAgIHRoaXMucmVzZXRTY2VuZSA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy53aXRoQmF0Y2hlZFVwZGF0ZXMpKChvcHRzKSA9PiB7XFxuICAgICAgICAgICAgdGhpcy5zY2VuZS5yZXBsYWNlQWxsRWxlbWVudHMoW10pO1xcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKHN0YXRlKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCAoMCxfYXBwU3RhdGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5nZXREZWZhdWx0QXBwU3RhdGUpKCkpLCB7IGlzTG9hZGluZzogKG9wdHMgPT09IG51bGwgfHwgb3B0cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0cy5yZXNldExvYWRpbmdTdGF0ZSkgPyBmYWxzZSA6IHN0YXRlLmlzTG9hZGluZywgdGhlbWU6IHRoaXMuc3RhdGUudGhlbWUgfSkpKTtcXG4gICAgICAgICAgICB0aGlzLnJlc2V0SGlzdG9yeSgpO1xcbiAgICAgICAgfSk7XFxuICAgICAgICB0aGlzLmluaXRpYWxpemVTY2VuZSA9ICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgICAgICAgICBpZiAoXFxcImxhdW5jaFF1ZXVlXFxcIiBpbiB3aW5kb3cgJiYgXFxcIkxhdW5jaFBhcmFtc1xcXCIgaW4gd2luZG93KSB7XFxuICAgICAgICAgICAgICAgIHdpbmRvdy5sYXVuY2hRdWV1ZS5zZXRDb25zdW1lcigobGF1bmNoUGFyYW1zKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoIWxhdW5jaFBhcmFtcy5maWxlcy5sZW5ndGgpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlSGFuZGxlID0gbGF1bmNoUGFyYW1zLmZpbGVzWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvYiA9IHlpZWxkIGZpbGVIYW5kbGUuZ2V0RmlsZSgpO1xcbiAgICAgICAgICAgICAgICAgICAgYmxvYi5oYW5kbGUgPSBmaWxlSGFuZGxlO1xcbiAgICAgICAgICAgICAgICAgICAgKDAsX2RhdGFfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18ubG9hZEZyb21CbG9iKShibG9iLCB0aGlzLnN0YXRlLCB0aGlzLnNjZW5lLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKChzY2VuZSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3luY0FjdGlvblJlc3VsdChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHNjZW5lKSwgeyBhcHBTdGF0ZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCAoc2NlbmUuYXBwU3RhdGUgfHwgdGhpcy5zdGF0ZSkpLCB7IGlzTG9hZGluZzogZmFsc2UgfSksIGNvbW1pdFRvSGlzdG9yeTogdHJ1ZSB9KSk7XFxuICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNMb2FkaW5nOiBmYWxzZSwgZXJyb3JNZXNzYWdlOiBlcnJvci5tZXNzYWdlIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH0pKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0YXRlLmlzTG9hZGluZykge1xcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNMb2FkaW5nOiB0cnVlIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBsZXQgaW5pdGlhbERhdGEgPSBudWxsO1xcbiAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgIGluaXRpYWxEYXRhID0gKHlpZWxkIHRoaXMucHJvcHMuaW5pdGlhbERhdGEpIHx8IG51bGw7XFxuICAgICAgICAgICAgICAgIGlmIChpbml0aWFsRGF0YSA9PT0gbnVsbCB8fCBpbml0aWFsRGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogaW5pdGlhbERhdGEubGlicmFyeUl0ZW1zKSB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpYnJhcnlJdGVtc0Zyb21TdG9yYWdlID0gKDAsX2RhdGFfcmVzdG9yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXy5yZXN0b3JlTGlicmFyeUl0ZW1zKShpbml0aWFsRGF0YS5saWJyYXJ5SXRlbXMsIFxcXCJ1bnB1Ymxpc2hlZFxcXCIpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcXG4gICAgICAgICAgICAgICAgaW5pdGlhbERhdGEgPSB7XFxuICAgICAgICAgICAgICAgICAgICBhcHBTdGF0ZToge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZTogZXJyb3IubWVzc2FnZSB8fFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiRW5jb3VudGVyZWQgYW4gZXJyb3IgZHVyaW5nIGltcG9ydGluZyBvciByZXN0b3Jpbmcgc2NlbmUgZGF0YVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjb25zdCBzY2VuZSA9ICgwLF9kYXRhX3Jlc3RvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE1X18ucmVzdG9yZSkoaW5pdGlhbERhdGEsIG51bGwsIG51bGwpO1xcbiAgICAgICAgICAgIHNjZW5lLmFwcFN0YXRlID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzY2VuZS5hcHBTdGF0ZSksIHsgZWxlbWVudFR5cGU6IHNjZW5lLmFwcFN0YXRlLmVsZW1lbnRUeXBlID09PSBcXFwiaW1hZ2VcXFwiXFxuICAgICAgICAgICAgICAgICAgICA/IFxcXCJzZWxlY3Rpb25cXFwiXFxuICAgICAgICAgICAgICAgICAgICA6IHNjZW5lLmFwcFN0YXRlLmVsZW1lbnRUeXBlLCBpc0xvYWRpbmc6IGZhbHNlIH0pO1xcbiAgICAgICAgICAgIGlmIChpbml0aWFsRGF0YSA9PT0gbnVsbCB8fCBpbml0aWFsRGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogaW5pdGlhbERhdGEuc2Nyb2xsVG9Db250ZW50KSB7XFxuICAgICAgICAgICAgICAgIHNjZW5lLmFwcFN0YXRlID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzY2VuZS5hcHBTdGF0ZSksICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzBfXy5jYWxjdWxhdGVTY3JvbGxDZW50ZXIpKHNjZW5lLmVsZW1lbnRzLCBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHNjZW5lLmFwcFN0YXRlKSwgeyB3aWR0aDogdGhpcy5zdGF0ZS53aWR0aCwgaGVpZ2h0OiB0aGlzLnN0YXRlLmhlaWdodCwgb2Zmc2V0VG9wOiB0aGlzLnN0YXRlLm9mZnNldFRvcCwgb2Zmc2V0TGVmdDogdGhpcy5zdGF0ZS5vZmZzZXRMZWZ0IH0pLCBudWxsKSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHRoaXMucmVzZXRIaXN0b3J5KCk7XFxuICAgICAgICAgICAgdGhpcy5zeW5jQWN0aW9uUmVzdWx0KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc2NlbmUpLCB7IGNvbW1pdFRvSGlzdG9yeTogdHJ1ZSB9KSk7XFxuICAgICAgICAgICAgY29uc3QgbGlicmFyeVVybCA9IFxcbiAgICAgICAgICAgIC8vIGN1cnJlbnRcXG4gICAgICAgICAgICBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpKS5nZXQoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5VUkxfSEFTSF9LRVlTLmFkZExpYnJhcnkpIHx8XFxuICAgICAgICAgICAgICAgIC8vIGxlZ2FjeSwga2VwdCBmb3IgY29tcGF0IHJlYXNvbnNcXG4gICAgICAgICAgICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5nZXQoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5VUkxfUVVFUllfS0VZUy5hZGRMaWJyYXJ5KTtcXG4gICAgICAgICAgICBpZiAobGlicmFyeVVybCkge1xcbiAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLmltcG9ydExpYnJhcnlGcm9tVXJsKGxpYnJhcnlVcmwpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcbiAgICAgICAgdGhpcy5vblJlc2l6ZSA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy53aXRoQmF0Y2hlZFVwZGF0ZXMpKCgpID0+IHtcXG4gICAgICAgICAgICB0aGlzLnNjZW5lXFxuICAgICAgICAgICAgICAgIC5nZXRFbGVtZW50c0luY2x1ZGluZ0RlbGV0ZWQoKVxcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZWxlbWVudCkgPT4gKDAsX3JlbmRlcmVyX3JlbmRlckVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI5X18uaW52YWxpZGF0ZVNoYXBlRm9yRWxlbWVudCkoZWxlbWVudCkpO1xcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe30pO1xcbiAgICAgICAgfSk7XFxuICAgICAgICB0aGlzLm9uU2Nyb2xsID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLmRlYm91bmNlKSgoKSA9PiB7XFxuICAgICAgICAgICAgY29uc3QgeyBvZmZzZXRUb3AsIG9mZnNldExlZnQgfSA9IHRoaXMuZ2V0Q2FudmFzT2Zmc2V0cygpO1xcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKHN0YXRlKSA9PiB7XFxuICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5vZmZzZXRMZWZ0ID09PSBvZmZzZXRMZWZ0ICYmIHN0YXRlLm9mZnNldFRvcCA9PT0gb2Zmc2V0VG9wKSB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICByZXR1cm4geyBvZmZzZXRUb3AsIG9mZnNldExlZnQgfTtcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH0sIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uU0NST0xMX1RJTUVPVVQpO1xcbiAgICAgICAgLy8gQ29weS9wYXN0ZVxcbiAgICAgICAgdGhpcy5vbkN1dCA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy53aXRoQmF0Y2hlZFVwZGF0ZXMpKChldmVudCkgPT4ge1xcbiAgICAgICAgICAgIHZhciBfYTtcXG4gICAgICAgICAgICBjb25zdCBpc0V4Y2FsaWRyYXdBY3RpdmUgPSAoX2EgPSB0aGlzLmV4Y2FsaWRyYXdDb250YWluZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO1xcbiAgICAgICAgICAgIGlmICghaXNFeGNhbGlkcmF3QWN0aXZlIHx8ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5pc1dyaXRhYmxlRWxlbWVudCkoZXZlbnQudGFyZ2V0KSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHRoaXMuY3V0QWxsKCk7XFxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcXG4gICAgICAgIH0pO1xcbiAgICAgICAgdGhpcy5vbkNvcHkgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18ud2l0aEJhdGNoZWRVcGRhdGVzKSgoZXZlbnQpID0+IHtcXG4gICAgICAgICAgICB2YXIgX2E7XFxuICAgICAgICAgICAgY29uc3QgaXNFeGNhbGlkcmF3QWN0aXZlID0gKF9hID0gdGhpcy5leGNhbGlkcmF3Q29udGFpbmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtcXG4gICAgICAgICAgICBpZiAoIWlzRXhjYWxpZHJhd0FjdGl2ZSB8fCAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uaXNXcml0YWJsZUVsZW1lbnQpKGV2ZW50LnRhcmdldCkpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB0aGlzLmNvcHlBbGwoKTtcXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xcbiAgICAgICAgfSk7XFxuICAgICAgICB0aGlzLmN1dEFsbCA9ICgpID0+IHtcXG4gICAgICAgICAgICB0aGlzLmNvcHlBbGwoKTtcXG4gICAgICAgICAgICB0aGlzLmFjdGlvbk1hbmFnZXIuZXhlY3V0ZUFjdGlvbihfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvbkRlbGV0ZVNlbGVjdGVkKTtcXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmNvcHlBbGwgPSAoKSA9PiB7XFxuICAgICAgICAgICAgKDAsX2NsaXBib2FyZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5jb3B5VG9DbGlwYm9hcmQpKHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKSwgdGhpcy5zdGF0ZSwgdGhpcy5maWxlcyk7XFxuICAgICAgICB9O1xcbiAgICAgICAgdGhpcy5vblRhcFN0YXJ0ID0gKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgLy8gZml4IGZvciBBcHBsZSBQZW5jaWwgU2NyaWJibGVcXG4gICAgICAgICAgICAvLyBPbiBBbmRyb2lkLCBwcmV2ZW50aW5nIHRoZSBldmVudCB3b3VsZCBkaXNhYmxlIGNvbnRleHRNZW51IG9uIHRhcC1ob2xkXFxuICAgICAgICAgICAgaWYgKCFfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjZfXy5pc0FuZHJvaWQpIHtcXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKCFkaWRUYXBUd2ljZSkge1xcbiAgICAgICAgICAgICAgICBkaWRUYXBUd2ljZSA9IHRydWU7XFxuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0YXBwZWRUd2ljZVRpbWVyKTtcXG4gICAgICAgICAgICAgICAgdGFwcGVkVHdpY2VUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KEFwcC5yZXNldFRhcFR3aWNlLCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLlRBUF9UV0lDRV9USU1FT1VUKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAvLyBpbnNlcnQgdGV4dCBvbmx5IGlmIHdlIHRhcHBlZCB0d2ljZSB3aXRoIGEgc2luZ2xlIGZpbmdlclxcbiAgICAgICAgICAgIC8vIGV2ZW50LnRvdWNoZXMubGVuZ3RoID09PSAxIHdpbGwgYWxzbyBwcmV2ZW50IGluc2VydGluZyB0ZXh0IHdoZW4gdXNlcidzIHpvb21pbmdcXG4gICAgICAgICAgICBpZiAoZGlkVGFwVHdpY2UgJiYgZXZlbnQudG91Y2hlcy5sZW5ndGggPT09IDEpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgW3RvdWNoXSA9IGV2ZW50LnRvdWNoZXM7XFxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcXG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVDYW52YXNEb3VibGVDbGljayh7XFxuICAgICAgICAgICAgICAgICAgICBjbGllbnRYOiB0b3VjaC5jbGllbnRYLFxcbiAgICAgICAgICAgICAgICAgICAgY2xpZW50WTogdG91Y2guY2xpZW50WSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIGRpZFRhcFR3aWNlID0gZmFsc2U7XFxuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0YXBwZWRUd2ljZVRpbWVyKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNl9fLmlzQW5kcm9pZCkge1xcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlcy5sZW5ndGggPT09IDIpIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRJZHM6IHt9LFxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9O1xcbiAgICAgICAgdGhpcy5vblRhcEVuZCA9IChldmVudCkgPT4ge1xcbiAgICAgICAgICAgIHRoaXMucmVzZXRDb250ZXh0TWVudVRpbWVyKCk7XFxuICAgICAgICAgICAgaWYgKGV2ZW50LnRvdWNoZXMubGVuZ3RoID4gMCkge1xcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcXG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudElkczogdGhpcy5zdGF0ZS5wcmV2aW91c1NlbGVjdGVkRWxlbWVudElkcyxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICBnZXN0dXJlLnBvaW50ZXJzLmNsZWFyKCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfTtcXG4gICAgICAgIHRoaXMucGFzdGVGcm9tQ2xpcGJvYXJkID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLndpdGhCYXRjaGVkVXBkYXRlcykoKGV2ZW50KSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XFxuICAgICAgICAgICAgdmFyIF9iLCBfYztcXG4gICAgICAgICAgICAvLyAjNjg2XFxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcXG4gICAgICAgICAgICBjb25zdCBpc0V4Y2FsaWRyYXdBY3RpdmUgPSAoX2IgPSB0aGlzLmV4Y2FsaWRyYXdDb250YWluZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNvbnRhaW5zKHRhcmdldCk7XFxuICAgICAgICAgICAgaWYgKCFpc0V4Y2FsaWRyYXdBY3RpdmUpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VW5kZXJDdXJzb3IgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KGN1cnNvclgsIGN1cnNvclkpO1xcbiAgICAgICAgICAgIGlmIChcXG4gICAgICAgICAgICAvLyBpZiBubyBDbGlwYm9hcmRFdmVudCBzdXBwbGllZCwgYXNzdW1lIHdlJ3JlIHBhc3RpbmcgdmlhIGNvbnRleHRNZW51XFxuICAgICAgICAgICAgLy8gdGh1cyB0aGVzZSBjaGVja3MgZG9uJ3QgbWFrZSBzZW5zZVxcbiAgICAgICAgICAgIGV2ZW50ICYmXFxuICAgICAgICAgICAgICAgICghKGVsZW1lbnRVbmRlckN1cnNvciBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50KSB8fFxcbiAgICAgICAgICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLmlzV3JpdGFibGVFbGVtZW50KSh0YXJnZXQpKSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIC8vIG11c3QgYmUgY2FsbGVkIGluIHRoZSBzYW1lIGZyYW1lICh0aHVzIGJlZm9yZSBhbnkgYXdhaXRzKSBhcyB0aGUgcGFzdGVcXG4gICAgICAgICAgICAvLyBldmVudCBlbHNlIHNvbWUgYnJvd3NlcnMgKEZGLi4uKSB3aWxsIGNsZWFyIHRoZSBjbGlwYm9hcmREYXRhXFxuICAgICAgICAgICAgLy8gKHNvbWV0aGluZyBzb21ldGhpbmcgc2VjdXJpdHkpXFxuICAgICAgICAgICAgbGV0IGZpbGUgPSAoX2MgPSBldmVudCA9PT0gbnVsbCB8fCBldmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXZlbnQuY2xpcGJvYXJkRGF0YSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmZpbGVzWzBdO1xcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCAoMCxfY2xpcGJvYXJkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnBhcnNlQ2xpcGJvYXJkKShldmVudCk7XFxuICAgICAgICAgICAgaWYgKCFmaWxlICYmIGRhdGEudGV4dCkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcgPSBkYXRhLnRleHQudHJpbSgpO1xcbiAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLnN0YXJ0c1dpdGgoXFxcIjxzdmdcXFwiKSAmJiBzdHJpbmcuZW5kc1dpdGgoXFxcIjwvc3ZnPlxcXCIpKSB7XFxuICAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmUgU1ZHIHZhbGlkYXRpb24vbm9ybWFsaXphdGlvbiB3aGljaCB3aWxsIGJlIGRvbmUgZHVyaW5nIGltYWdlXFxuICAgICAgICAgICAgICAgICAgICAvLyBpbml0aWFsaXphdGlvblxcbiAgICAgICAgICAgICAgICAgICAgZmlsZSA9ICgwLF9kYXRhX2Jsb2JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQwX18uU1ZHU3RyaW5nVG9GaWxlKShzdHJpbmcpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIC8vIHByZWZlciBzcHJlYWRzaGVldCBkYXRhIG92ZXIgaW1hZ2UgZmlsZSAoTVMgT2ZmaWNlL0xpYnJlIE9mZmljZSlcXG4gICAgICAgICAgICBpZiAoKDAsX2RhdGFfYmxvYl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNDBfXy5pc1N1cHBvcnRlZEltYWdlRmlsZSkoZmlsZSkgJiYgIWRhdGEuc3ByZWFkc2hlZXQpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgeyB4OiBzY2VuZVgsIHk6IHNjZW5lWSB9ID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnZpZXdwb3J0Q29vcmRzVG9TY2VuZUNvb3JkcykoeyBjbGllbnRYOiBjdXJzb3JYLCBjbGllbnRZOiBjdXJzb3JZIH0sIHRoaXMuc3RhdGUpO1xcbiAgICAgICAgICAgICAgICBjb25zdCBpbWFnZUVsZW1lbnQgPSB0aGlzLmNyZWF0ZUltYWdlRWxlbWVudCh7IHNjZW5lWCwgc2NlbmVZIH0pO1xcbiAgICAgICAgICAgICAgICB0aGlzLmluc2VydEltYWdlRWxlbWVudChpbWFnZUVsZW1lbnQsIGZpbGUpO1xcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVJbWFnZURpbWVuc2lvbnMoaW1hZ2VFbGVtZW50KTtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNlbGVjdGVkRWxlbWVudElkczogeyBbaW1hZ2VFbGVtZW50LmlkXTogdHJ1ZSB9IH0pO1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUGFzdGUpIHtcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICgoeWllbGQgdGhpcy5wcm9wcy5vblBhc3RlKGRhdGEsIGV2ZW50KSkgPT09IGZhbHNlKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKGRhdGEuZXJyb3JNZXNzYWdlKSB7XFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvck1lc3NhZ2U6IGRhdGEuZXJyb3JNZXNzYWdlIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIGlmIChkYXRhLnNwcmVhZHNoZWV0KSB7XFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICAgICAgcGFzdGVEaWFsb2c6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBkYXRhLnNwcmVhZHNoZWV0LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3duOiB0cnVlLFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2UgaWYgKGRhdGEuZWxlbWVudHMpIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRFbGVtZW50c0Zyb21QYXN0ZU9yTGlicmFyeSh7XFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50czogZGF0YS5lbGVtZW50cyxcXG4gICAgICAgICAgICAgICAgICAgIGZpbGVzOiBkYXRhLmZpbGVzIHx8IG51bGwsXFxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogXFxcImN1cnNvclxcXCIsXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIGlmIChkYXRhLnRleHQpIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRUZXh0RnJvbVBhc3RlKGRhdGEudGV4dCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0U2hhcGVUb29sKFxcXCJzZWxlY3Rpb25cXFwiKTtcXG4gICAgICAgICAgICBldmVudCA9PT0gbnVsbCB8fCBldmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXZlbnQucHJldmVudERlZmF1bHQoKTtcXG4gICAgICAgIH0pKTtcXG4gICAgICAgIHRoaXMuYWRkRWxlbWVudHNGcm9tUGFzdGVPckxpYnJhcnkgPSAob3B0cykgPT4ge1xcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gKDAsX2RhdGFfcmVzdG9yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXy5yZXN0b3JlRWxlbWVudHMpKG9wdHMuZWxlbWVudHMsIG51bGwpO1xcbiAgICAgICAgICAgIGNvbnN0IFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXSA9ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmdldENvbW1vbkJvdW5kcykoZWxlbWVudHMpO1xcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzQ2VudGVyWCA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5kaXN0YW5jZSkobWluWCwgbWF4WCkgLyAyO1xcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzQ2VudGVyWSA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5kaXN0YW5jZSkobWluWSwgbWF4WSkgLyAyO1xcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudFggPSB0eXBlb2Ygb3B0cy5wb3NpdGlvbiA9PT0gXFxcIm9iamVjdFxcXCJcXG4gICAgICAgICAgICAgICAgPyBvcHRzLnBvc2l0aW9uLmNsaWVudFhcXG4gICAgICAgICAgICAgICAgOiBvcHRzLnBvc2l0aW9uID09PSBcXFwiY3Vyc29yXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgPyBjdXJzb3JYXFxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc3RhdGUud2lkdGggLyAyICsgdGhpcy5zdGF0ZS5vZmZzZXRMZWZ0O1xcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudFkgPSB0eXBlb2Ygb3B0cy5wb3NpdGlvbiA9PT0gXFxcIm9iamVjdFxcXCJcXG4gICAgICAgICAgICAgICAgPyBvcHRzLnBvc2l0aW9uLmNsaWVudFlcXG4gICAgICAgICAgICAgICAgOiBvcHRzLnBvc2l0aW9uID09PSBcXFwiY3Vyc29yXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgPyBjdXJzb3JZXFxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc3RhdGUuaGVpZ2h0IC8gMiArIHRoaXMuc3RhdGUub2Zmc2V0VG9wO1xcbiAgICAgICAgICAgIGNvbnN0IHsgeCwgeSB9ID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnZpZXdwb3J0Q29vcmRzVG9TY2VuZUNvb3JkcykoeyBjbGllbnRYLCBjbGllbnRZIH0sIHRoaXMuc3RhdGUpO1xcbiAgICAgICAgICAgIGNvbnN0IGR4ID0geCAtIGVsZW1lbnRzQ2VudGVyWDtcXG4gICAgICAgICAgICBjb25zdCBkeSA9IHkgLSBlbGVtZW50c0NlbnRlclk7XFxuICAgICAgICAgICAgY29uc3QgZ3JvdXBJZE1hcCA9IG5ldyBNYXAoKTtcXG4gICAgICAgICAgICBjb25zdCBbZ3JpZFgsIGdyaWRZXSA9ICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yN19fLmdldEdyaWRQb2ludCkoZHgsIGR5LCB0aGlzLnN0YXRlLmdyaWRTaXplKTtcXG4gICAgICAgICAgICBjb25zdCBvbGRJZFRvRHVwbGljYXRlZElkID0gbmV3IE1hcCgpO1xcbiAgICAgICAgICAgIGNvbnN0IG5ld0VsZW1lbnRzID0gZWxlbWVudHMubWFwKChlbGVtZW50KSA9PiB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0VsZW1lbnQgPSAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5kdXBsaWNhdGVFbGVtZW50KSh0aGlzLnN0YXRlLmVkaXRpbmdHcm91cElkLCBncm91cElkTWFwLCBlbGVtZW50LCB7XFxuICAgICAgICAgICAgICAgICAgICB4OiBlbGVtZW50LnggKyBncmlkWCAtIG1pblgsXFxuICAgICAgICAgICAgICAgICAgICB5OiBlbGVtZW50LnkgKyBncmlkWSAtIG1pblksXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICBvbGRJZFRvRHVwbGljYXRlZElkLnNldChlbGVtZW50LmlkLCBuZXdFbGVtZW50LmlkKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld0VsZW1lbnQ7XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgKDAsX2VsZW1lbnRfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQ0X18uYmluZFRleHRUb1NoYXBlQWZ0ZXJEdXBsaWNhdGlvbikobmV3RWxlbWVudHMsIGVsZW1lbnRzLCBvbGRJZFRvRHVwbGljYXRlZElkKTtcXG4gICAgICAgICAgICBjb25zdCBuZXh0RWxlbWVudHMgPSBbXFxuICAgICAgICAgICAgICAgIC4uLnRoaXMuc2NlbmUuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCksXFxuICAgICAgICAgICAgICAgIC4uLm5ld0VsZW1lbnRzLFxcbiAgICAgICAgICAgIF07XFxuICAgICAgICAgICAgKDAsX2VsZW1lbnRfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5maXhCaW5kaW5nc0FmdGVyRHVwbGljYXRpb24pKG5leHRFbGVtZW50cywgZWxlbWVudHMsIG9sZElkVG9EdXBsaWNhdGVkSWQpO1xcbiAgICAgICAgICAgIGlmIChvcHRzLmZpbGVzKSB7XFxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZXMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZmlsZXMpLCBvcHRzLmZpbGVzKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgdGhpcy5zY2VuZS5yZXBsYWNlQWxsRWxlbWVudHMobmV4dEVsZW1lbnRzKTtcXG4gICAgICAgICAgICB0aGlzLmhpc3RvcnkucmVzdW1lUmVjb3JkaW5nKCk7XFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSgoMCxfZ3JvdXBzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yM19fLnNlbGVjdEdyb3Vwc0ZvclNlbGVjdGVkRWxlbWVudHMpKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zdGF0ZSksIHsgaXNMaWJyYXJ5T3BlbjogZmFsc2UsIHNlbGVjdGVkRWxlbWVudElkczogbmV3RWxlbWVudHMucmVkdWNlKChtYXAsIGVsZW1lbnQpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICghKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjFfXy5pc0JvdW5kVG9Db250YWluZXIpKGVsZW1lbnQpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwW2VsZW1lbnQuaWRdID0gdHJ1ZTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXA7XFxuICAgICAgICAgICAgICAgIH0sIHt9KSwgc2VsZWN0ZWRHcm91cElkczoge30gfSksIHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKSksICgpID0+IHtcXG4gICAgICAgICAgICAgICAgaWYgKG9wdHMuZmlsZXMpIHtcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkTmV3SW1hZ2VzVG9JbWFnZUNhY2hlKCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB0aGlzLnNlbGVjdFNoYXBlVG9vbChcXFwic2VsZWN0aW9uXFxcIik7XFxuICAgICAgICB9O1xcbiAgICAgICAgLy8gQ29sbGFib3JhdGlvblxcbiAgICAgICAgdGhpcy5zZXRBcHBTdGF0ZSA9IChvYmopID0+IHtcXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKG9iaik7XFxuICAgICAgICB9O1xcbiAgICAgICAgdGhpcy5yZW1vdmVQb2ludGVyID0gKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgaWYgKHRvdWNoVGltZW91dCkge1xcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0Q29udGV4dE1lbnVUaW1lcigpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBnZXN0dXJlLnBvaW50ZXJzLmRlbGV0ZShldmVudC5wb2ludGVySWQpO1xcbiAgICAgICAgfTtcXG4gICAgICAgIHRoaXMudG9nZ2xlTG9jayA9ICgpID0+IHtcXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKChwcmV2U3RhdGUpID0+IHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRMb2NrZWQ6ICFwcmV2U3RhdGUuZWxlbWVudExvY2tlZCxcXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRUeXBlOiBwcmV2U3RhdGUuZWxlbWVudExvY2tlZFxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXFxcInNlbGVjdGlvblxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHByZXZTdGF0ZS5lbGVtZW50VHlwZSxcXG4gICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLnRvZ2dsZVBlbk1vZGUgPSAoKSA9PiB7XFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSgocHJldlN0YXRlKSA9PiB7XFxuICAgICAgICAgICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgICAgICAgICBwZW5Nb2RlOiAhcHJldlN0YXRlLnBlbk1vZGUsXFxuICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9O1xcbiAgICAgICAgdGhpcy50b2dnbGVaZW5Nb2RlID0gKCkgPT4ge1xcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uTWFuYWdlci5leGVjdXRlQWN0aW9uKF9hY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYWN0aW9uVG9nZ2xlWmVuTW9kZSk7XFxuICAgICAgICB9O1xcbiAgICAgICAgdGhpcy50b2dnbGVTdGF0cyA9ICgpID0+IHtcXG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGUuc2hvd1N0YXRzKSB7XFxuICAgICAgICAgICAgICAgICgwLF9hbmFseXRpY3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy50cmFja0V2ZW50KShcXFwiZGlhbG9nXFxcIiwgXFxcInN0YXRzXFxcIik7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uTWFuYWdlci5leGVjdXRlQWN0aW9uKF9hY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYWN0aW9uVG9nZ2xlU3RhdHMpO1xcbiAgICAgICAgfTtcXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9Db250ZW50ID0gKHRhcmdldCA9IHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKSkgPT4ge1xcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoT2JqZWN0LmFzc2lnbih7fSwgKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmNhbGN1bGF0ZVNjcm9sbENlbnRlcikoQXJyYXkuaXNBcnJheSh0YXJnZXQpID8gdGFyZ2V0IDogW3RhcmdldF0sIHRoaXMuc3RhdGUsIHRoaXMuY2FudmFzKSkpO1xcbiAgICAgICAgfTtcXG4gICAgICAgIHRoaXMuY2xlYXJUb2FzdCA9ICgpID0+IHtcXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgdG9hc3RNZXNzYWdlOiBudWxsIH0pO1xcbiAgICAgICAgfTtcXG4gICAgICAgIHRoaXMuc2V0VG9hc3RNZXNzYWdlID0gKHRvYXN0TWVzc2FnZSkgPT4ge1xcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyB0b2FzdE1lc3NhZ2UgfSk7XFxuICAgICAgICB9O1xcbiAgICAgICAgdGhpcy5yZXN0b3JlRmlsZUZyb21TaGFyZSA9ICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICBjb25zdCB3ZWJTaGFyZVRhcmdldENhY2hlID0geWllbGQgY2FjaGVzLm9wZW4oXFxcIndlYi1zaGFyZS10YXJnZXRcXFwiKTtcXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZSA9IHlpZWxkIHdlYlNoYXJlVGFyZ2V0Q2FjaGUubWF0Y2goXFxcInNoYXJlZC1maWxlXFxcIik7XFxuICAgICAgICAgICAgICAgIGlmIChmaWxlKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9iID0geWllbGQgZmlsZS5ibG9iKCk7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRGaWxlVG9DYW52YXMoYmxvYik7XFxuICAgICAgICAgICAgICAgICAgICB5aWVsZCB3ZWJTaGFyZVRhcmdldENhY2hlLmRlbGV0ZShcXFwic2hhcmVkLWZpbGVcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkFQUF9OQU1FLCB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXJyb3JNZXNzYWdlOiBlcnJvci5tZXNzYWdlIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcbiAgICAgICAgLyoqIGFkZHMgc3VwcGxpZWQgZmlsZXMgdG8gZXhpc3RpbmcgZmlsZXMgaW4gdGhlIGFwcFN0YXRlICovXFxuICAgICAgICB0aGlzLmFkZEZpbGVzID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLndpdGhCYXRjaGVkVXBkYXRlcykoKGZpbGVzKSA9PiB7XFxuICAgICAgICAgICAgY29uc3QgZmlsZXNNYXAgPSBmaWxlcy5yZWR1Y2UoKGFjYywgZmlsZURhdGEpID0+IHtcXG4gICAgICAgICAgICAgICAgYWNjLnNldChmaWxlRGF0YS5pZCwgZmlsZURhdGEpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xcbiAgICAgICAgICAgIH0sIG5ldyBNYXAoKSk7XFxuICAgICAgICAgICAgdGhpcy5maWxlcyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5maWxlcyksIE9iamVjdC5mcm9tRW50cmllcyhmaWxlc01hcCkpO1xcbiAgICAgICAgICAgIHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XFxuICAgICAgICAgICAgICAgIGlmICgoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMV9fLmlzSW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnQpKGVsZW1lbnQpICYmXFxuICAgICAgICAgICAgICAgICAgICBmaWxlc01hcC5oYXMoZWxlbWVudC5maWxlSWQpKSB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmltYWdlQ2FjaGUuZGVsZXRlKGVsZW1lbnQuZmlsZUlkKTtcXG4gICAgICAgICAgICAgICAgICAgICgwLF9yZW5kZXJlcl9yZW5kZXJFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yOV9fLmludmFsaWRhdGVTaGFwZUZvckVsZW1lbnQpKGVsZW1lbnQpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgdGhpcy5zY2VuZS5pbmZvcm1NdXRhdGlvbigpO1xcbiAgICAgICAgICAgIHRoaXMuYWRkTmV3SW1hZ2VzVG9JbWFnZUNhY2hlKCk7XFxuICAgICAgICB9KTtcXG4gICAgICAgIHRoaXMudXBkYXRlU2NlbmUgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18ud2l0aEJhdGNoZWRVcGRhdGVzKSgoc2NlbmVEYXRhKSA9PiB7XFxuICAgICAgICAgICAgaWYgKHNjZW5lRGF0YS5jb21taXRUb0hpc3RvcnkpIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5LnJlc3VtZVJlY29yZGluZygpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoc2NlbmVEYXRhLmFwcFN0YXRlKSB7XFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoc2NlbmVEYXRhLmFwcFN0YXRlKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHNjZW5lRGF0YS5lbGVtZW50cykge1xcbiAgICAgICAgICAgICAgICB0aGlzLnNjZW5lLnJlcGxhY2VBbGxFbGVtZW50cyhzY2VuZURhdGEuZWxlbWVudHMpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoc2NlbmVEYXRhLmNvbGxhYm9yYXRvcnMpIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbGxhYm9yYXRvcnM6IHNjZW5lRGF0YS5jb2xsYWJvcmF0b3JzIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoc2NlbmVEYXRhLmxpYnJhcnlJdGVtcykge1xcbiAgICAgICAgICAgICAgICB0aGlzLmxpYnJhcnkuc2F2ZUxpYnJhcnkoKDAsX2RhdGFfcmVzdG9yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXy5yZXN0b3JlTGlicmFyeUl0ZW1zKShzY2VuZURhdGEubGlicmFyeUl0ZW1zLCBcXFwidW5wdWJsaXNoZWRcXFwiKSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgICAgICB0aGlzLm9uU2NlbmVVcGRhdGVkID0gKCkgPT4ge1xcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe30pO1xcbiAgICAgICAgfTtcXG4gICAgICAgIHRoaXMudXBkYXRlQ3VycmVudEN1cnNvclBvc2l0aW9uID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLndpdGhCYXRjaGVkVXBkYXRlcykoKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgY3Vyc29yWCA9IGV2ZW50LmNsaWVudFg7XFxuICAgICAgICAgICAgY3Vyc29yWSA9IGV2ZW50LmNsaWVudFk7XFxuICAgICAgICB9KTtcXG4gICAgICAgIC8vIElucHV0IGhhbmRsaW5nXFxuICAgICAgICB0aGlzLm9uS2V5RG93biA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy53aXRoQmF0Y2hlZFVwZGF0ZXMpKChldmVudCkgPT4ge1xcbiAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSBgZXZlbnQua2V5YCB3aGVuIENhcHNMb2NrIGlzIHByZXNzZWQgIzIzNzJcXG4gICAgICAgICAgICBpZiAoXFxcIlByb3h5XFxcIiBpbiB3aW5kb3cgJiZcXG4gICAgICAgICAgICAgICAgKCghZXZlbnQuc2hpZnRLZXkgJiYgL15bQS1aXSQvLnRlc3QoZXZlbnQua2V5KSkgfHxcXG4gICAgICAgICAgICAgICAgICAgIChldmVudC5zaGlmdEtleSAmJiAvXlthLXpdJC8udGVzdChldmVudC5rZXkpKSkpIHtcXG4gICAgICAgICAgICAgICAgZXZlbnQgPSBuZXcgUHJveHkoZXZlbnQsIHtcXG4gICAgICAgICAgICAgICAgICAgIGdldChldiwgcHJvcCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZXZbcHJvcF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXFxcImZ1bmN0aW9uXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmaXggZm9yIFByb3hpZXMgaGlqYWNraW5nIGB0aGlzYFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuYmluZChldik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9wID09PSBcXFwia2V5XFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IC8vIENhcHNMb2NrIGludmVydHMgY2FwaXRhbGl6YXRpb24gYmFzZWQgb24gU2hpZnRLZXksIHNvIGludmVydFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXQgYmFja1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc2hpZnRLZXlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGV2LmtleS50b1VwcGVyQ2FzZSgpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBldi5rZXkudG9Mb3dlckNhc2UoKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlO1xcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICgoKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLmlzV3JpdGFibGVFbGVtZW50KShldmVudC50YXJnZXQpICYmIGV2ZW50LmtleSAhPT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI2X18uS0VZUy5FU0NBUEUpIHx8XFxuICAgICAgICAgICAgICAgIC8vIGNhc2U6IHVzaW5nIGFycm93cyB0byBtb3ZlIGJldHdlZW4gYnV0dG9uc1xcbiAgICAgICAgICAgICAgICAoKDAsX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI2X18uaXNBcnJvd0tleSkoZXZlbnQua2V5KSAmJiAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uaXNJbnB1dExpa2UpKGV2ZW50LnRhcmdldCkpKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI2X18uS0VZUy5RVUVTVElPTl9NQVJLKSB7XFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICAgICAgc2hvd0hlbHBEaWFsb2c6IHRydWUsXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAodGhpcy5hY3Rpb25NYW5hZ2VyLmhhbmRsZUtleURvd24oZXZlbnQpKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUudmlld01vZGVFbmFibGVkKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKGV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNl9fLktFWVMuQ1RSTF9PUl9DTURdICYmIHRoaXMuc3RhdGUuaXNCaW5kaW5nRW5hYmxlZCkge1xcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNCaW5kaW5nRW5hYmxlZDogZmFsc2UgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmIChldmVudC5jb2RlID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjZfXy5DT0RFUy5aRVJPKSB7XFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBpc0xpYnJhcnlPcGVuOiAhdGhpcy5zdGF0ZS5pc0xpYnJhcnlPcGVuIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoKDAsX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI2X18uaXNBcnJvd0tleSkoZXZlbnQua2V5KSkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBzdGVwID0gKHRoaXMuc3RhdGUuZ3JpZFNpemUgJiZcXG4gICAgICAgICAgICAgICAgICAgIChldmVudC5zaGlmdEtleVxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FTEVNRU5UX1RSQU5TTEFURV9BTU9VTlRcXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc3RhdGUuZ3JpZFNpemUpKSB8fFxcbiAgICAgICAgICAgICAgICAgICAgKGV2ZW50LnNoaWZ0S2V5XFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVMRU1FTlRfU0hJRlRfVFJBTlNMQVRFX0FNT1VOVFxcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FTEVNRU5UX1RSQU5TTEFURV9BTU9VTlQpO1xcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmdldFNlbGVjdGVkRWxlbWVudHMpKHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKSwgdGhpcy5zdGF0ZSwgdHJ1ZSk7XFxuICAgICAgICAgICAgICAgIGxldCBvZmZzZXRYID0gMDtcXG4gICAgICAgICAgICAgICAgbGV0IG9mZnNldFkgPSAwO1xcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjZfXy5LRVlTLkFSUk9XX0xFRlQpIHtcXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldFggPSAtc3RlcDtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNl9fLktFWVMuQVJST1dfUklHSFQpIHtcXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldFggPSBzdGVwO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI2X18uS0VZUy5BUlJPV19VUCkge1xcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WSA9IC1zdGVwO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI2X18uS0VZUy5BUlJPV19ET1dOKSB7XFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXRZID0gc3RlcDtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE5X18ubXV0YXRlRWxlbWVudCkoZWxlbWVudCwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IGVsZW1lbnQueCArIG9mZnNldFgsXFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogZWxlbWVudC55ICsgb2Zmc2V0WSxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy51cGRhdGVCb3VuZEVsZW1lbnRzKShlbGVtZW50LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc2ltdWx0YW5lb3VzbHlVcGRhdGVkOiBzZWxlY3RlZEVsZW1lbnRzLFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB0aGlzLm1heWJlU3VnZ2VzdEJpbmRpbmdGb3JBbGwoc2VsZWN0ZWRFbGVtZW50cyk7XFxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI2X18uS0VZUy5FTlRFUikge1xcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmdldFNlbGVjdGVkRWxlbWVudHMpKHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKSwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJlxcbiAgICAgICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjFfXy5pc0xpbmVhckVsZW1lbnQpKHNlbGVjdGVkRWxlbWVudHNbMF0pKSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQgfHxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50LmVsZW1lbnRJZCAhPT0gc2VsZWN0ZWRFbGVtZW50c1swXS5pZCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeS5yZXN1bWVSZWNvcmRpbmcoKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGluZ0xpbmVhckVsZW1lbnQ6IG5ldyBfZWxlbWVudF9saW5lYXJFbGVtZW50RWRpdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOF9fLkxpbmVhckVsZW1lbnRFZGl0b3Ioc2VsZWN0ZWRFbGVtZW50c1swXSwgdGhpcy5zY2VuZSksXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiZcXG4gICAgICAgICAgICAgICAgICAgICEoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMV9fLmlzTGluZWFyRWxlbWVudCkoc2VsZWN0ZWRFbGVtZW50c1swXSkpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudCA9IHNlbGVjdGVkRWxlbWVudHNbMF07XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0VGV4dEVkaXRpbmcoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjZW5lWDogc2VsZWN0ZWRFbGVtZW50LnggKyBzZWxlY3RlZEVsZW1lbnQud2lkdGggLyAyLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjZW5lWTogc2VsZWN0ZWRFbGVtZW50LnkgKyBzZWxlY3RlZEVsZW1lbnQuaGVpZ2h0IC8gMixcXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRCaW5kOiB0cnVlLFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2UgaWYgKCFldmVudC5jdHJsS2V5ICYmXFxuICAgICAgICAgICAgICAgICFldmVudC5hbHRLZXkgJiZcXG4gICAgICAgICAgICAgICAgIWV2ZW50Lm1ldGFLZXkgJiZcXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5kcmFnZ2luZ0VsZW1lbnQgPT09IG51bGwpIHtcXG4gICAgICAgICAgICAgICAgY29uc3Qgc2hhcGUgPSAoMCxfc2hhcGVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zM19fLmZpbmRTaGFwZUJ5S2V5KShldmVudC5rZXkpO1xcbiAgICAgICAgICAgICAgICBpZiAoc2hhcGUpIHtcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0U2hhcGVUb29sKHNoYXBlKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNl9fLktFWVMuUSkge1xcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGVMb2NrKCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI2X18uS0VZUy5TUEFDRSAmJiBnZXN0dXJlLnBvaW50ZXJzLnNpemUgPT09IDApIHtcXG4gICAgICAgICAgICAgICAgaXNIb2xkaW5nU3BhY2UgPSB0cnVlO1xcbiAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uc2V0Q3Vyc29yKSh0aGlzLmNhbnZhcywgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5DVVJTT1JfVFlQRS5HUkFCQklORyk7XFxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNl9fLktFWVMuRyB8fCBldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNl9fLktFWVMuUykge1xcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmdldFNlbGVjdGVkRWxlbWVudHMpKHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKSwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmVsZW1lbnRUeXBlID09PSBcXFwic2VsZWN0aW9uXFxcIiAmJlxcbiAgICAgICAgICAgICAgICAgICAgIXNlbGVjdGVkRWxlbWVudHMubGVuZ3RoKSB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI2X18uS0VZUy5HICYmXFxuICAgICAgICAgICAgICAgICAgICAoKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmhhc0JhY2tncm91bmQpKHRoaXMuc3RhdGUuZWxlbWVudFR5cGUpIHx8XFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50cy5zb21lKChlbGVtZW50KSA9PiAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzMwX18uaGFzQmFja2dyb3VuZCkoZWxlbWVudC50eXBlKSkpKSB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgb3BlblBvcHVwOiBcXFwiYmFja2dyb3VuZENvbG9yUGlja2VyXFxcIiB9KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjZfXy5LRVlTLlMpIHtcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBvcGVuUG9wdXA6IFxcXCJzdHJva2VDb2xvclBpY2tlclxcXCIgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KTtcXG4gICAgICAgIHRoaXMub25LZXlVcCA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy53aXRoQmF0Y2hlZFVwZGF0ZXMpKChldmVudCkgPT4ge1xcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNl9fLktFWVMuU1BBQ0UpIHtcXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUudmlld01vZGVFbmFibGVkKSB7XFxuICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uc2V0Q3Vyc29yKSh0aGlzLmNhbnZhcywgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5DVVJTT1JfVFlQRS5HUkFCKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLnN0YXRlLmVsZW1lbnRUeXBlID09PSBcXFwic2VsZWN0aW9uXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnJlc2V0Q3Vyc29yKSh0aGlzLmNhbnZhcyk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uc2V0Q3Vyc29yRm9yU2hhcGUpKHRoaXMuY2FudmFzLCB0aGlzLnN0YXRlLmVsZW1lbnRUeXBlKTtcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudElkczoge30sXFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRHcm91cElkczoge30sXFxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGluZ0dyb3VwSWQ6IG51bGwsXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBpc0hvbGRpbmdTcGFjZSA9IGZhbHNlO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoIWV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNl9fLktFWVMuQ1RSTF9PUl9DTURdICYmICF0aGlzLnN0YXRlLmlzQmluZGluZ0VuYWJsZWQpIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzQmluZGluZ0VuYWJsZWQ6IHRydWUgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICgoMCxfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjZfXy5pc0Fycm93S2V5KShldmVudC5rZXkpKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzMwX18uZ2V0U2VsZWN0ZWRFbGVtZW50cykodGhpcy5zY2VuZS5nZXRFbGVtZW50cygpLCB0aGlzLnN0YXRlKTtcXG4gICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5pc0JpbmRpbmdFbmFibGVkKSh0aGlzLnN0YXRlKVxcbiAgICAgICAgICAgICAgICAgICAgPyAoMCxfZWxlbWVudF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xN19fLmJpbmRPclVuYmluZFNlbGVjdGVkRWxlbWVudHMpKHNlbGVjdGVkRWxlbWVudHMpXFxuICAgICAgICAgICAgICAgICAgICA6ICgwLF9lbGVtZW50X2JpbmRpbmdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE3X18udW5iaW5kTGluZWFyRWxlbWVudHMpKHNlbGVjdGVkRWxlbWVudHMpO1xcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc3VnZ2VzdGVkQmluZGluZ3M6IFtdIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcbiAgICAgICAgdGhpcy5vbkdlc3R1cmVTdGFydCA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy53aXRoQmF0Y2hlZFVwZGF0ZXMpKChldmVudCkgPT4ge1xcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudElkczoge30sXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgZ2VzdHVyZS5pbml0aWFsU2NhbGUgPSB0aGlzLnN0YXRlLnpvb20udmFsdWU7XFxuICAgICAgICB9KTtcXG4gICAgICAgIHRoaXMub25HZXN0dXJlQ2hhbmdlID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLndpdGhCYXRjaGVkVXBkYXRlcykoKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcXG4gICAgICAgICAgICAvLyBvbkdlc3R1cmVDaGFuZ2Ugb25seSBoYXMgem9vbSBmYWN0b3IgYnV0IG5vdCB0aGUgY2VudGVyLlxcbiAgICAgICAgICAgIC8vIElmIHdlJ3JlIG9uIGlQYWQgb3IgaVBob25lLCB0aGVuIHdlIHJlY29nbml6ZSBtdWx0aS10b3VjaCBhbmQgd2lsbFxcbiAgICAgICAgICAgIC8vIHpvb20gaW4gYXQgdGhlIHJpZ2h0IGxvY2F0aW9uIG9uIHRoZSB0b3VjaE1vdmUgaGFuZGxlciBhbHJlYWR5LlxcbiAgICAgICAgICAgIC8vIE9uIE1hY2Jvb2ssIHdlIGRvbid0IGhhdmUgdGhvc2UgZXZlbnRzIHNvIHdpbGwgem9vbSBpbiBhdCB0aGVcXG4gICAgICAgICAgICAvLyBjdXJyZW50IGxvY2F0aW9uIGluc3RlYWQuXFxuICAgICAgICAgICAgaWYgKGdlc3R1cmUucG9pbnRlcnMuc2l6ZSA+PSAyKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY29uc3QgaW5pdGlhbFNjYWxlID0gZ2VzdHVyZS5pbml0aWFsU2NhbGU7XFxuICAgICAgICAgICAgaWYgKGluaXRpYWxTY2FsZSkge1xcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKChzdGF0ZSkgPT4gKE9iamVjdC5hc3NpZ24oe30sICgwLF9zY2VuZV96b29tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMl9fLmdldFN0YXRlRm9yWm9vbSkoe1xcbiAgICAgICAgICAgICAgICAgICAgdmlld3BvcnRYOiBjdXJzb3JYLFxcbiAgICAgICAgICAgICAgICAgICAgdmlld3BvcnRZOiBjdXJzb3JZLFxcbiAgICAgICAgICAgICAgICAgICAgbmV4dFpvb206ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzBfXy5nZXROb3JtYWxpemVkWm9vbSkoaW5pdGlhbFNjYWxlICogZXZlbnQuc2NhbGUpLFxcbiAgICAgICAgICAgICAgICB9LCBzdGF0ZSkpKSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgICAgICB0aGlzLm9uR2VzdHVyZUVuZCA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy53aXRoQmF0Y2hlZFVwZGF0ZXMpKChldmVudCkgPT4ge1xcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgIHByZXZpb3VzU2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50SWRzOiB0aGlzLnN0YXRlLnByZXZpb3VzU2VsZWN0ZWRFbGVtZW50SWRzLFxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIGdlc3R1cmUuaW5pdGlhbFNjYWxlID0gbnVsbDtcXG4gICAgICAgIH0pO1xcbiAgICAgICAgdGhpcy5zdGFydFRleHRFZGl0aW5nID0gKHsgc2NlbmVYLCBzY2VuZVksIHNob3VsZEJpbmQsIGluc2VydEF0UGFyZW50Q2VudGVyID0gdHJ1ZSwgfSkgPT4ge1xcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XFxuICAgICAgICAgICAgbGV0IHBhcmVudENlbnRlclBvc2l0aW9uID0gaW5zZXJ0QXRQYXJlbnRDZW50ZXIgJiZcXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRUZXh0V3lzaXd5Z1NuYXBwZWRUb0NlbnRlclBvc2l0aW9uKHNjZW5lWCwgc2NlbmVZLCB0aGlzLnN0YXRlLCB0aGlzLmNhbnZhcywgd2luZG93LmRldmljZVBpeGVsUmF0aW8pO1xcbiAgICAgICAgICAgIC8vIGJpbmQgdG8gY29udGFpbmVyIHdoZW4gc2hvdWxkQmluZCBpcyB0cnVlIG9yXFxuICAgICAgICAgICAgLy8gY2xpY2tlZCBvbiBjZW50ZXIgb2YgY29udGFpbmVyXFxuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gc2hvdWxkQmluZCB8fCBwYXJlbnRDZW50ZXJQb3NpdGlvblxcbiAgICAgICAgICAgICAgICA/ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzBfXy5nZXRFbGVtZW50Q29udGFpbmluZ1Bvc2l0aW9uKSh0aGlzLnNjZW5lLmdldEVsZW1lbnRzKCkuZmlsdGVyKChlbGUpID0+ICEoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5pc1RleHRFbGVtZW50KShlbGUpKSwgc2NlbmVYLCBzY2VuZVkpXFxuICAgICAgICAgICAgICAgIDogbnVsbDtcXG4gICAgICAgICAgICBsZXQgZXhpc3RpbmdUZXh0RWxlbWVudCA9IHRoaXMuZ2V0VGV4dEVsZW1lbnRBdFBvc2l0aW9uKHNjZW5lWCwgc2NlbmVZKTtcXG4gICAgICAgICAgICAvLyBjb25zaWRlciBib3VuZGVkIHRleHQgZWxlbWVudCBpZiBjb250YWluZXIgcHJlc2VudFxcbiAgICAgICAgICAgIGlmIChjb250YWluZXIpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgYm91bmRUZXh0RWxlbWVudElkID0gKDAsX2VsZW1lbnRfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQ0X18uZ2V0Qm91bmRUZXh0RWxlbWVudElkKShjb250YWluZXIpO1xcbiAgICAgICAgICAgICAgICBpZiAoYm91bmRUZXh0RWxlbWVudElkKSB7XFxuICAgICAgICAgICAgICAgICAgICBleGlzdGluZ1RleHRFbGVtZW50ID0gdGhpcy5zY2VuZS5nZXRFbGVtZW50KGJvdW5kVGV4dEVsZW1lbnRJZCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKCFleGlzdGluZ1RleHRFbGVtZW50ICYmIGNvbnRhaW5lcikge1xcbiAgICAgICAgICAgICAgICBjb25zdCBmb250U3RyaW5nID0ge1xcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1Gb250U2l6ZSxcXG4gICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1Gb250RmFtaWx5LFxcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICBjb25zdCBtaW5XaWR0aCA9ICgwLF9lbGVtZW50X3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80NF9fLmdldEFwcHJveE1pbkxpbmVXaWR0aCkoKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLmdldEZvbnRTdHJpbmcpKGZvbnRTdHJpbmcpKTtcXG4gICAgICAgICAgICAgICAgY29uc3QgbWluSGVpZ2h0ID0gKDAsX2VsZW1lbnRfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQ0X18uZ2V0QXBwcm94TWluTGluZUhlaWdodCkoKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLmdldEZvbnRTdHJpbmcpKGZvbnRTdHJpbmcpKTtcXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3SGVpZ2h0ID0gTWF0aC5tYXgoY29udGFpbmVyLmhlaWdodCwgbWluSGVpZ2h0KTtcXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3V2lkdGggPSBNYXRoLm1heChjb250YWluZXIud2lkdGgsIG1pbldpZHRoKTtcXG4gICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTlfXy5tdXRhdGVFbGVtZW50KShjb250YWluZXIsIHsgaGVpZ2h0OiBuZXdIZWlnaHQsIHdpZHRoOiBuZXdXaWR0aCB9KTtcXG4gICAgICAgICAgICAgICAgc2NlbmVYID0gY29udGFpbmVyLnggKyBuZXdXaWR0aCAvIDI7XFxuICAgICAgICAgICAgICAgIHNjZW5lWSA9IGNvbnRhaW5lci55ICsgbmV3SGVpZ2h0IC8gMjtcXG4gICAgICAgICAgICAgICAgaWYgKHBhcmVudENlbnRlclBvc2l0aW9uKSB7XFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRDZW50ZXJQb3NpdGlvbiA9IHRoaXMuZ2V0VGV4dFd5c2l3eWdTbmFwcGVkVG9DZW50ZXJQb3NpdGlvbihzY2VuZVgsIHNjZW5lWSwgdGhpcy5zdGF0ZSwgdGhpcy5jYW52YXMsIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZXhpc3RpbmdUZXh0RWxlbWVudFxcbiAgICAgICAgICAgICAgICA/IGV4aXN0aW5nVGV4dEVsZW1lbnRcXG4gICAgICAgICAgICAgICAgOiAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5uZXdUZXh0RWxlbWVudCkoe1xcbiAgICAgICAgICAgICAgICAgICAgeDogcGFyZW50Q2VudGVyUG9zaXRpb25cXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHBhcmVudENlbnRlclBvc2l0aW9uLmVsZW1lbnRDZW50ZXJYXFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzY2VuZVgsXFxuICAgICAgICAgICAgICAgICAgICB5OiBwYXJlbnRDZW50ZXJQb3NpdGlvblxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gcGFyZW50Q2VudGVyUG9zaXRpb24uZWxlbWVudENlbnRlcllcXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNjZW5lWSxcXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZUNvbG9yOiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtU3Ryb2tlQ29sb3IsXFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1CYWNrZ3JvdW5kQ29sb3IsXFxuICAgICAgICAgICAgICAgICAgICBmaWxsU3R5bGU6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1GaWxsU3R5bGUsXFxuICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbVN0cm9rZVdpZHRoLFxcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlU3R5bGU6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1TdHJva2VTdHlsZSxcXG4gICAgICAgICAgICAgICAgICAgIHJvdWdobmVzczogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbVJvdWdobmVzcyxcXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1PcGFjaXR5LFxcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlU2hhcnBuZXNzOiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtU3Ryb2tlU2hhcnBuZXNzLFxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogXFxcIlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbUZvbnRTaXplLFxcbiAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseTogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbUZvbnRGYW1pbHksXFxuICAgICAgICAgICAgICAgICAgICB0ZXh0QWxpZ246IHBhcmVudENlbnRlclBvc2l0aW9uXFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcXFwiY2VudGVyXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbVRleHRBbGlnbixcXG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ246IHBhcmVudENlbnRlclBvc2l0aW9uXFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcXFwibWlkZGxlXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5ERUZBVUxUX1ZFUlRJQ0FMX0FMSUdOLFxcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySWQ6IChfYSA9IGNvbnRhaW5lciA9PT0gbnVsbCB8fCBjb250YWluZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbnRhaW5lci5pZCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdW5kZWZpbmVkLFxcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBJZHM6IChfYiA9IGNvbnRhaW5lciA9PT0gbnVsbCB8fCBjb250YWluZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbnRhaW5lci5ncm91cElkcykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogW10sXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlZGl0aW5nRWxlbWVudDogZWxlbWVudCB9KTtcXG4gICAgICAgICAgICBpZiAoZXhpc3RpbmdUZXh0RWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICAvLyBpZiB0ZXh0IGVsZW1lbnQgaXMgbm8gbG9uZ2VyIGNlbnRlcmVkIHRvIGEgY29udGFpbmVyLCByZXNldFxcbiAgICAgICAgICAgICAgICAvLyB2ZXJ0aWNhbEFsaWduIHRvIGRlZmF1bHQgYmVjYXVzZSBpdCdzIGN1cnJlbnRseSBpbnRlcm5hbC1vbmx5XFxuICAgICAgICAgICAgICAgIGlmICghcGFyZW50Q2VudGVyUG9zaXRpb24gfHwgZWxlbWVudC50ZXh0QWxpZ24gIT09IFxcXCJjZW50ZXJcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOV9fLm11dGF0ZUVsZW1lbnQpKGVsZW1lbnQsIHsgdmVydGljYWxBbGlnbjogX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5ERUZBVUxUX1ZFUlRJQ0FMX0FMSUdOIH0pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICB0aGlzLnNjZW5lLnJlcGxhY2VBbGxFbGVtZW50cyhbXFxuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnNjZW5lLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpLFxcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCxcXG4gICAgICAgICAgICAgICAgXSk7XFxuICAgICAgICAgICAgICAgIC8vIGNhc2U6IGNyZWF0aW5nIG5ldyB0ZXh0IG5vdCBjZW50ZXJlZCB0byBwYXJlbnQgZWxlbWVuZW50IFx1MjE5MiBvZmZzZXQgWVxcbiAgICAgICAgICAgICAgICAvLyBzbyB0aGF0IHRoZSB0ZXh0IGlzIGNlbnRlcmVkIHRvIGN1cnNvciBwb3NpdGlvblxcbiAgICAgICAgICAgICAgICBpZiAoIXBhcmVudENlbnRlclBvc2l0aW9uKSB7XFxuICAgICAgICAgICAgICAgICAgICAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOV9fLm11dGF0ZUVsZW1lbnQpKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiBlbGVtZW50LnkgLSBlbGVtZW50LmJhc2VsaW5lIC8gMixcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICBlZGl0aW5nRWxlbWVudDogZWxlbWVudCxcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB0aGlzLmhhbmRsZVRleHRXeXNpd3lnKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgaXNFeGlzdGluZ0VsZW1lbnQ6ICEhZXhpc3RpbmdUZXh0RWxlbWVudCxcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmhhbmRsZUNhbnZhc0RvdWJsZUNsaWNrID0gKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgLy8gY2FzZTogZG91YmxlLWNsaWNraW5nIHdpdGggYXJyb3cvbGluZSB0b29sIHNlbGVjdGVkIHdvdWxkIGJvdGggY3JlYXRlXFxuICAgICAgICAgICAgLy8gdGV4dCBhbmQgZW50ZXIgbXVsdGlFbGVtZW50IG1vZGVcXG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5tdWx0aUVsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAvLyB3ZSBzaG91bGQgb25seSBiZSBhYmxlIHRvIGRvdWJsZSBjbGljayB3aGVuIG1vZGUgaXMgc2VsZWN0aW9uXFxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuZWxlbWVudFR5cGUgIT09IFxcXCJzZWxlY3Rpb25cXFwiKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzBfXy5nZXRTZWxlY3RlZEVsZW1lbnRzKSh0aGlzLnNjZW5lLmdldEVsZW1lbnRzKCksIHRoaXMuc3RhdGUpO1xcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMV9fLmlzTGluZWFyRWxlbWVudCkoc2VsZWN0ZWRFbGVtZW50c1swXSkpIHtcXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50IHx8XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50LmVsZW1lbnRJZCAhPT0gc2VsZWN0ZWRFbGVtZW50c1swXS5pZCkge1xcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5LnJlc3VtZVJlY29yZGluZygpO1xcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGluZ0xpbmVhckVsZW1lbnQ6IG5ldyBfZWxlbWVudF9saW5lYXJFbGVtZW50RWRpdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOF9fLkxpbmVhckVsZW1lbnRFZGl0b3Ioc2VsZWN0ZWRFbGVtZW50c1swXSwgdGhpcy5zY2VuZSksXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5yZXNldEN1cnNvcikodGhpcy5jYW52YXMpO1xcbiAgICAgICAgICAgIGxldCB7IHg6IHNjZW5lWCwgeTogc2NlbmVZIH0gPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18udmlld3BvcnRDb29yZHNUb1NjZW5lQ29vcmRzKShldmVudCwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRHcm91cElkcyA9ICgwLF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIzX18uZ2V0U2VsZWN0ZWRHcm91cElkcykodGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkR3JvdXBJZHMubGVuZ3RoID4gMCkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBoaXRFbGVtZW50ID0gdGhpcy5nZXRFbGVtZW50QXRQb3NpdGlvbihzY2VuZVgsIHNjZW5lWSk7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkR3JvdXBJZCA9IGhpdEVsZW1lbnQgJiZcXG4gICAgICAgICAgICAgICAgICAgICgwLF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIzX18uZ2V0U2VsZWN0ZWRHcm91cElkRm9yRWxlbWVudCkoaGl0RWxlbWVudCwgdGhpcy5zdGF0ZS5zZWxlY3RlZEdyb3VwSWRzKTtcXG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkR3JvdXBJZCkge1xcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSgocHJldlN0YXRlKSA9PiAoMCxfZ3JvdXBzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yM19fLnNlbGVjdEdyb3Vwc0ZvclNlbGVjdGVkRWxlbWVudHMpKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldlN0YXRlKSwgeyBlZGl0aW5nR3JvdXBJZDogc2VsZWN0ZWRHcm91cElkLCBzZWxlY3RlZEVsZW1lbnRJZHM6IHsgW2hpdEVsZW1lbnQuaWRdOiB0cnVlIH0sIHNlbGVjdGVkR3JvdXBJZHM6IHt9IH0pLCB0aGlzLnNjZW5lLmdldEVsZW1lbnRzKCkpKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18ucmVzZXRDdXJzb3IpKHRoaXMuY2FudmFzKTtcXG4gICAgICAgICAgICBpZiAoIWV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNl9fLktFWVMuQ1RSTF9PUl9DTURdICYmICF0aGlzLnN0YXRlLnZpZXdNb2RlRW5hYmxlZCkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmdldFNlbGVjdGVkRWxlbWVudHMpKHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKSwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSkge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50ID0gc2VsZWN0ZWRFbGVtZW50c1swXTtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbkJpbmRUZXh0ID0gKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjFfXy5oYXNCb3VuZFRleHRFbGVtZW50KShzZWxlY3RlZEVsZW1lbnQpO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhbkJpbmRUZXh0KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NlbmVYID0gc2VsZWN0ZWRFbGVtZW50LnggKyBzZWxlY3RlZEVsZW1lbnQud2lkdGggLyAyO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjZW5lWSA9IHNlbGVjdGVkRWxlbWVudC55ICsgc2VsZWN0ZWRFbGVtZW50LmhlaWdodCAvIDI7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFRleHRFZGl0aW5nKHtcXG4gICAgICAgICAgICAgICAgICAgIHNjZW5lWCxcXG4gICAgICAgICAgICAgICAgICAgIHNjZW5lWSxcXG4gICAgICAgICAgICAgICAgICAgIHNob3VsZEJpbmQ6IGZhbHNlLFxcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QXRQYXJlbnRDZW50ZXI6ICFldmVudC5hbHRLZXksXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmdldEVsZW1lbnRMaW5rQXRQb3NpdGlvbiA9IChzY2VuZVBvaW50ZXIsIGhpdEVsZW1lbnQpID0+IHtcXG4gICAgICAgICAgICAvLyBSZXZlcnNpbmcgc28gd2UgdHJhdmVyc2UgdGhlIGVsZW1lbnRzIGluIGRlY3JlYXNpbmcgb3JkZXJcXG4gICAgICAgICAgICAvLyBvZiB6LWluZGV4XFxuICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLnNjZW5lLmdldEVsZW1lbnRzKCkuc2xpY2UoKS5yZXZlcnNlKCk7XFxuICAgICAgICAgICAgbGV0IGhpdEVsZW1lbnRJbmRleCA9IEluZmluaXR5O1xcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50cy5maW5kKChlbGVtZW50LCBpbmRleCkgPT4ge1xcbiAgICAgICAgICAgICAgICBpZiAoaGl0RWxlbWVudCAmJiBlbGVtZW50LmlkID09PSBoaXRFbGVtZW50LmlkKSB7XFxuICAgICAgICAgICAgICAgICAgICBoaXRFbGVtZW50SW5kZXggPSBpbmRleDtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICByZXR1cm4gKGVsZW1lbnQubGluayAmJlxcbiAgICAgICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfSHlwZXJsaW5rX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80Nl9fLmlzUG9pbnRIaXR0aW5nTGlua0ljb24pKGVsZW1lbnQsIHRoaXMuc3RhdGUsIFtzY2VuZVBvaW50ZXIueCwgc2NlbmVQb2ludGVyLnldLCB0aGlzLmlzTW9iaWxlKSAmJlxcbiAgICAgICAgICAgICAgICAgICAgaW5kZXggPD0gaGl0RWxlbWVudEluZGV4KTtcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLnJlZGlyZWN0VG9MaW5rID0gKGV2ZW50LCBpc1RvdWNoU2NyZWVuKSA9PiB7XFxuICAgICAgICAgICAgY29uc3QgZHJhZ2dlZERpc3RhbmNlID0gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI3X18uZGlzdGFuY2UyZCkodGhpcy5sYXN0UG9pbnRlckRvd24uY2xpZW50WCwgdGhpcy5sYXN0UG9pbnRlckRvd24uY2xpZW50WSwgdGhpcy5sYXN0UG9pbnRlclVwLmNsaWVudFgsIHRoaXMubGFzdFBvaW50ZXJVcC5jbGllbnRZKTtcXG4gICAgICAgICAgICBpZiAoIXRoaXMuaGl0TGlua0VsZW1lbnQgfHxcXG4gICAgICAgICAgICAgICAgLy8gRm9yIHRvdWNoIHNjcmVlbiBhbGxvdyBkcmFnZ2luZyB0aHJlc2hvbGQgZWxzZSBzdHJpY3QgY2hlY2tcXG4gICAgICAgICAgICAgICAgKGlzVG91Y2hTY3JlZW4gJiYgZHJhZ2dlZERpc3RhbmNlID4gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5EUkFHR0lOR19USFJFU0hPTEQpIHx8XFxuICAgICAgICAgICAgICAgICghaXNUb3VjaFNjcmVlbiAmJiBkcmFnZ2VkRGlzdGFuY2UgIT09IDApKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY29uc3QgbGFzdFBvaW50ZXJEb3duQ29vcmRzID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnZpZXdwb3J0Q29vcmRzVG9TY2VuZUNvb3JkcykodGhpcy5sYXN0UG9pbnRlckRvd24sIHRoaXMuc3RhdGUpO1xcbiAgICAgICAgICAgIGNvbnN0IGxhc3RQb2ludGVyRG93bkhpdHRpbmdMaW5rSWNvbiA9ICgwLF9lbGVtZW50X0h5cGVybGlua19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNDZfXy5pc1BvaW50SGl0dGluZ0xpbmtJY29uKSh0aGlzLmhpdExpbmtFbGVtZW50LCB0aGlzLnN0YXRlLCBbbGFzdFBvaW50ZXJEb3duQ29vcmRzLngsIGxhc3RQb2ludGVyRG93bkNvb3Jkcy55XSwgdGhpcy5pc01vYmlsZSk7XFxuICAgICAgICAgICAgY29uc3QgbGFzdFBvaW50ZXJVcENvb3JkcyA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy52aWV3cG9ydENvb3Jkc1RvU2NlbmVDb29yZHMpKHRoaXMubGFzdFBvaW50ZXJVcCwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgY29uc3QgbGFzdFBvaW50ZXJVcEhpdHRpbmdMaW5rSWNvbiA9ICgwLF9lbGVtZW50X0h5cGVybGlua19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNDZfXy5pc1BvaW50SGl0dGluZ0xpbmtJY29uKSh0aGlzLmhpdExpbmtFbGVtZW50LCB0aGlzLnN0YXRlLCBbbGFzdFBvaW50ZXJVcENvb3Jkcy54LCBsYXN0UG9pbnRlclVwQ29vcmRzLnldLCB0aGlzLmlzTW9iaWxlKTtcXG4gICAgICAgICAgICBpZiAobGFzdFBvaW50ZXJEb3duSGl0dGluZ0xpbmtJY29uICYmIGxhc3RQb2ludGVyVXBIaXR0aW5nTGlua0ljb24pIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgdXJsID0gdGhpcy5oaXRMaW5rRWxlbWVudC5saW5rO1xcbiAgICAgICAgICAgICAgICBpZiAodXJsKSB7XFxuICAgICAgICAgICAgICAgICAgICBsZXQgY3VzdG9tRXZlbnQ7XFxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkxpbmtPcGVuKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tRXZlbnQgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18ud3JhcEV2ZW50KShfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULkVYQ0FMSURSQVdfTElOSywgZXZlbnQubmF0aXZlRXZlbnQpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25MaW5rT3Blbih0aGlzLmhpdExpbmtFbGVtZW50LCBjdXN0b21FdmVudCk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBpZiAoIShjdXN0b21FdmVudCA9PT0gbnVsbCB8fCBjdXN0b21FdmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3VzdG9tRXZlbnQuZGVmYXVsdFByZXZlbnRlZCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSAoMCxfZWxlbWVudF9IeXBlcmxpbmtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQ2X18uaXNMb2NhbExpbmspKHVybCkgPyBcXFwiX3NlbGZcXFwiIDogXFxcIl9ibGFua1xcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3V2luZG93ID0gd2luZG93Lm9wZW4odW5kZWZpbmVkLCB0YXJnZXQpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vbWF0aGlhc2J5bmVucy5naXRodWIuaW8vcmVsLW5vb3BlbmVyL1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdXaW5kb3cpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3V2luZG93Lm9wZW5lciA9IG51bGw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1dpbmRvdy5sb2NhdGlvbiA9ICgwLF9lbGVtZW50X0h5cGVybGlua19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNDZfXy5ub3JtYWxpemVMaW5rKSh1cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmhhbmRsZUNhbnZhc1BvaW50ZXJNb3ZlID0gKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgdGhpcy5zYXZlUG9pbnRlcihldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZLCB0aGlzLnN0YXRlLmN1cnNvckJ1dHRvbik7XFxuICAgICAgICAgICAgaWYgKGdlc3R1cmUucG9pbnRlcnMuaGFzKGV2ZW50LnBvaW50ZXJJZCkpIHtcXG4gICAgICAgICAgICAgICAgZ2VzdHVyZS5wb2ludGVycy5zZXQoZXZlbnQucG9pbnRlcklkLCB7XFxuICAgICAgICAgICAgICAgICAgICB4OiBldmVudC5jbGllbnRYLFxcbiAgICAgICAgICAgICAgICAgICAgeTogZXZlbnQuY2xpZW50WSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnN0IGluaXRpYWxTY2FsZSA9IGdlc3R1cmUuaW5pdGlhbFNjYWxlO1xcbiAgICAgICAgICAgIGlmIChnZXN0dXJlLnBvaW50ZXJzLnNpemUgPT09IDIgJiZcXG4gICAgICAgICAgICAgICAgZ2VzdHVyZS5sYXN0Q2VudGVyICYmXFxuICAgICAgICAgICAgICAgIGluaXRpYWxTY2FsZSAmJlxcbiAgICAgICAgICAgICAgICBnZXN0dXJlLmluaXRpYWxEaXN0YW5jZSkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBjZW50ZXIgPSAoMCxfZ2VzdHVyZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjJfXy5nZXRDZW50ZXIpKGdlc3R1cmUucG9pbnRlcnMpO1xcbiAgICAgICAgICAgICAgICBjb25zdCBkZWx0YVggPSBjZW50ZXIueCAtIGdlc3R1cmUubGFzdENlbnRlci54O1xcbiAgICAgICAgICAgICAgICBjb25zdCBkZWx0YVkgPSBjZW50ZXIueSAtIGdlc3R1cmUubGFzdENlbnRlci55O1xcbiAgICAgICAgICAgICAgICBnZXN0dXJlLmxhc3RDZW50ZXIgPSBjZW50ZXI7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gKDAsX2dlc3R1cmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIyX18uZ2V0RGlzdGFuY2UpKEFycmF5LmZyb20oZ2VzdHVyZS5wb2ludGVycy52YWx1ZXMoKSkpO1xcbiAgICAgICAgICAgICAgICBjb25zdCBzY2FsZUZhY3RvciA9IHRoaXMuc3RhdGUuZWxlbWVudFR5cGUgPT09IFxcXCJmcmVlZHJhd1xcXCIgJiYgdGhpcy5zdGF0ZS5wZW5Nb2RlXFxuICAgICAgICAgICAgICAgICAgICA/IDFcXG4gICAgICAgICAgICAgICAgICAgIDogZGlzdGFuY2UgLyBnZXN0dXJlLmluaXRpYWxEaXN0YW5jZTtcXG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dFpvb20gPSBzY2FsZUZhY3RvclxcbiAgICAgICAgICAgICAgICAgICAgPyAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzMwX18uZ2V0Tm9ybWFsaXplZFpvb20pKGluaXRpYWxTY2FsZSAqIHNjYWxlRmFjdG9yKVxcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnN0YXRlLnpvb20udmFsdWU7XFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKHN0YXRlKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCB6b29tU3RhdGUgPSAoMCxfc2NlbmVfem9vbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzJfXy5nZXRTdGF0ZUZvclpvb20pKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydFg6IGNlbnRlci54LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdwb3J0WTogY2VudGVyLnksXFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFpvb20sXFxuICAgICAgICAgICAgICAgICAgICB9LCBzdGF0ZSk7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHpvb206IHpvb21TdGF0ZS56b29tLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFg6IHpvb21TdGF0ZS5zY3JvbGxYICsgZGVsdGFYIC8gbmV4dFpvb20sXFxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsWTogem9vbVN0YXRlLnNjcm9sbFkgKyBkZWx0YVkgLyBuZXh0Wm9vbSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRDYWNoZUlnbm9yZVpvb206IHRydWUsXFxuICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldFNob3VsZENhY2hlSWdub3JlWm9vbURlYm91bmNlZCgpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgZ2VzdHVyZS5sYXN0Q2VudGVyID1cXG4gICAgICAgICAgICAgICAgICAgIGdlc3R1cmUuaW5pdGlhbERpc3RhbmNlID1cXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXN0dXJlLmluaXRpYWxTY2FsZSA9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmIChpc0hvbGRpbmdTcGFjZSB8fCBpc1Bhbm5pbmcgfHwgaXNEcmFnZ2luZ1Njcm9sbEJhcikge1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnN0IGlzUG9pbnRlck92ZXJTY3JvbGxCYXJzID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmlzT3ZlclNjcm9sbEJhcnMpKGN1cnJlbnRTY3JvbGxCYXJzLCBldmVudC5jbGllbnRYIC0gdGhpcy5zdGF0ZS5vZmZzZXRMZWZ0LCBldmVudC5jbGllbnRZIC0gdGhpcy5zdGF0ZS5vZmZzZXRUb3ApO1xcbiAgICAgICAgICAgIGNvbnN0IGlzT3ZlclNjcm9sbEJhciA9IGlzUG9pbnRlck92ZXJTY3JvbGxCYXJzLmlzT3ZlckVpdGhlcjtcXG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGUuZHJhZ2dpbmdFbGVtZW50ICYmICF0aGlzLnN0YXRlLm11bHRpRWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICBpZiAoaXNPdmVyU2Nyb2xsQmFyKSB7XFxuICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18ucmVzZXRDdXJzb3IpKHRoaXMuY2FudmFzKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5zZXRDdXJzb3JGb3JTaGFwZSkodGhpcy5jYW52YXMsIHRoaXMuc3RhdGUuZWxlbWVudFR5cGUpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnN0IHNjZW5lUG9pbnRlciA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy52aWV3cG9ydENvb3Jkc1RvU2NlbmVDb29yZHMpKGV2ZW50LCB0aGlzLnN0YXRlKTtcXG4gICAgICAgICAgICBjb25zdCB7IHg6IHNjZW5lUG9pbnRlclgsIHk6IHNjZW5lUG9pbnRlclkgfSA9IHNjZW5lUG9pbnRlcjtcXG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudCAmJlxcbiAgICAgICAgICAgICAgICAhdGhpcy5zdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudC5pc0RyYWdnaW5nKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGVkaXRpbmdMaW5lYXJFbGVtZW50ID0gX2VsZW1lbnRfbGluZWFyRWxlbWVudEVkaXRvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMThfXy5MaW5lYXJFbGVtZW50RWRpdG9yLmhhbmRsZVBvaW50ZXJNb3ZlKGV2ZW50LCBzY2VuZVBvaW50ZXJYLCBzY2VuZVBvaW50ZXJZLCB0aGlzLnN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50LCB0aGlzLnN0YXRlLmdyaWRTaXplKTtcXG4gICAgICAgICAgICAgICAgaWYgKGVkaXRpbmdMaW5lYXJFbGVtZW50ICE9PSB0aGlzLnN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50KSB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZWRpdGluZ0xpbmVhckVsZW1lbnQgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaWYgKGVkaXRpbmdMaW5lYXJFbGVtZW50Lmxhc3RVbmNvbW1pdHRlZFBvaW50ICE9IG51bGwpIHtcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWF5YmVTdWdnZXN0QmluZGluZ0F0Q3Vyc29yKHNjZW5lUG9pbnRlcik7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc3VnZ2VzdGVkQmluZGluZ3M6IFtdIH0pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICgoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMV9fLmlzQmluZGluZ0VsZW1lbnRUeXBlKSh0aGlzLnN0YXRlLmVsZW1lbnRUeXBlKSkge1xcbiAgICAgICAgICAgICAgICAvLyBIb3ZlcmluZyB3aXRoIGEgc2VsZWN0ZWQgdG9vbCBvciBjcmVhdGluZyBuZXcgbGluZWFyIGVsZW1lbnQgdmlhIGNsaWNrXFxuICAgICAgICAgICAgICAgIC8vIGFuZCBwb2ludFxcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRyYWdnaW5nRWxlbWVudCB9ID0gdGhpcy5zdGF0ZTtcXG4gICAgICAgICAgICAgICAgaWYgKCgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIxX18uaXNCaW5kaW5nRWxlbWVudCkoZHJhZ2dpbmdFbGVtZW50KSkge1xcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXliZVN1Z2dlc3RCaW5kaW5nc0ZvckxpbmVhckVsZW1lbnRBdENvb3JkcyhkcmFnZ2luZ0VsZW1lbnQsIFtzY2VuZVBvaW50ZXJdLCB0aGlzLnN0YXRlLnN0YXJ0Qm91bmRFbGVtZW50KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWF5YmVTdWdnZXN0QmluZGluZ0F0Q3Vyc29yKHNjZW5lUG9pbnRlcik7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUubXVsdGlFbGVtZW50KSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHsgbXVsdGlFbGVtZW50IH0gPSB0aGlzLnN0YXRlO1xcbiAgICAgICAgICAgICAgICBjb25zdCB7IHg6IHJ4LCB5OiByeSB9ID0gbXVsdGlFbGVtZW50O1xcbiAgICAgICAgICAgICAgICBjb25zdCB7IHBvaW50cywgbGFzdENvbW1pdHRlZFBvaW50IH0gPSBtdWx0aUVsZW1lbnQ7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RQb2ludCA9IHBvaW50c1twb2ludHMubGVuZ3RoIC0gMV07XFxuICAgICAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5zZXRDdXJzb3JGb3JTaGFwZSkodGhpcy5jYW52YXMsIHRoaXMuc3RhdGUuZWxlbWVudFR5cGUpO1xcbiAgICAgICAgICAgICAgICBpZiAobGFzdFBvaW50ID09PSBsYXN0Q29tbWl0dGVkUG9pbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIGhhdmVuJ3QgeWV0IGNyZWF0ZWQgYSB0ZW1wIHBvaW50IGFuZCB3ZSdyZSBiZXlvbmQgY29tbWl0LXpvbmVcXG4gICAgICAgICAgICAgICAgICAgIC8vIHRocmVzaG9sZCwgYWRkIGEgcG9pbnRcXG4gICAgICAgICAgICAgICAgICAgIGlmICgoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjdfXy5kaXN0YW5jZTJkKShzY2VuZVBvaW50ZXJYIC0gcngsIHNjZW5lUG9pbnRlclkgLSByeSwgbGFzdFBvaW50WzBdLCBsYXN0UG9pbnRbMV0pID49IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uTElORV9DT05GSVJNX1RIUkVTSE9MRCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE5X18ubXV0YXRlRWxlbWVudCkobXVsdGlFbGVtZW50LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50czogWy4uLnBvaW50cywgW3NjZW5lUG9pbnRlclggLSByeCwgc2NlbmVQb2ludGVyWSAtIHJ5XV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uc2V0Q3Vyc29yKSh0aGlzLmNhbnZhcywgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5DVVJTT1JfVFlQRS5QT0lOVEVSKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGlzIGJyYW5jaCwgd2UncmUgaW5zaWRlIHRoZSBjb21taXQgem9uZSwgYW5kIG5vIHVuY29tbWl0dGVkXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcG9pbnQgZXhpc3RzLiBUaHVzIGRvIG5vdGhpbmcgKGRvbid0IGFkZC9yZW1vdmUgcG9pbnRzKS5cXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwb2ludHMubGVuZ3RoID4gMiAmJlxcbiAgICAgICAgICAgICAgICAgICAgbGFzdENvbW1pdHRlZFBvaW50ICYmXFxuICAgICAgICAgICAgICAgICAgICAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjdfXy5kaXN0YW5jZTJkKShzY2VuZVBvaW50ZXJYIC0gcngsIHNjZW5lUG9pbnRlclkgLSByeSwgbGFzdENvbW1pdHRlZFBvaW50WzBdLCBsYXN0Q29tbWl0dGVkUG9pbnRbMV0pIDwgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5MSU5FX0NPTkZJUk1fVEhSRVNIT0xEKSB7XFxuICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uc2V0Q3Vyc29yKSh0aGlzLmNhbnZhcywgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5DVVJTT1JfVFlQRS5QT0lOVEVSKTtcXG4gICAgICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE5X18ubXV0YXRlRWxlbWVudCkobXVsdGlFbGVtZW50LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzOiBwb2ludHMuc2xpY2UoMCwgLTEpLFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI3X18uaXNQYXRoQUxvb3ApKHBvaW50cywgdGhpcy5zdGF0ZS56b29tLnZhbHVlKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5zZXRDdXJzb3IpKHRoaXMuY2FudmFzLCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkNVUlNPUl9UWVBFLlBPSU5URVIpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIGxhc3QgdW5jb21taXR0ZWQgcG9pbnRcXG4gICAgICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE5X18ubXV0YXRlRWxlbWVudCkobXVsdGlFbGVtZW50LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzOiBbXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnBvaW50cy5zbGljZSgwLCAtMSksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY2VuZVBvaW50ZXJYIC0gcngsIHNjZW5lUG9pbnRlclkgLSByeV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY29uc3QgaGFzRGVzZWxlY3RlZEJ1dHRvbiA9IEJvb2xlYW4oZXZlbnQuYnV0dG9ucyk7XFxuICAgICAgICAgICAgaWYgKGhhc0Rlc2VsZWN0ZWRCdXR0b24gfHxcXG4gICAgICAgICAgICAgICAgKHRoaXMuc3RhdGUuZWxlbWVudFR5cGUgIT09IFxcXCJzZWxlY3Rpb25cXFwiICYmXFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmVsZW1lbnRUeXBlICE9PSBcXFwidGV4dFxcXCIpKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLnNjZW5lLmdldEVsZW1lbnRzKCk7XFxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzBfXy5nZXRTZWxlY3RlZEVsZW1lbnRzKShlbGVtZW50cywgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmXFxuICAgICAgICAgICAgICAgICFpc092ZXJTY3JvbGxCYXIgJiZcXG4gICAgICAgICAgICAgICAgIXRoaXMuc3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFdpdGhUcmFuc2Zvcm1IYW5kbGVUeXBlID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uZ2V0RWxlbWVudFdpdGhUcmFuc2Zvcm1IYW5kbGVUeXBlKShlbGVtZW50cywgdGhpcy5zdGF0ZSwgc2NlbmVQb2ludGVyWCwgc2NlbmVQb2ludGVyWSwgdGhpcy5zdGF0ZS56b29tLCBldmVudC5wb2ludGVyVHlwZSk7XFxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50V2l0aFRyYW5zZm9ybUhhbmRsZVR5cGUgJiZcXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRXaXRoVHJhbnNmb3JtSGFuZGxlVHlwZS50cmFuc2Zvcm1IYW5kbGVUeXBlKSB7XFxuICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uc2V0Q3Vyc29yKSh0aGlzLmNhbnZhcywgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uZ2V0Q3Vyc29yRm9yUmVzaXppbmdFbGVtZW50KShlbGVtZW50V2l0aFRyYW5zZm9ybUhhbmRsZVR5cGUpKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA+IDEgJiYgIWlzT3ZlclNjcm9sbEJhcikge1xcbiAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1IYW5kbGVUeXBlID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uZ2V0VHJhbnNmb3JtSGFuZGxlVHlwZUZyb21Db29yZHMpKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmdldENvbW1vbkJvdW5kcykoc2VsZWN0ZWRFbGVtZW50cyksIHNjZW5lUG9pbnRlclgsIHNjZW5lUG9pbnRlclksIHRoaXMuc3RhdGUuem9vbSwgZXZlbnQucG9pbnRlclR5cGUpO1xcbiAgICAgICAgICAgICAgICBpZiAodHJhbnNmb3JtSGFuZGxlVHlwZSkge1xcbiAgICAgICAgICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnNldEN1cnNvcikodGhpcy5jYW52YXMsICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmdldEN1cnNvckZvclJlc2l6aW5nRWxlbWVudCkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybUhhbmRsZVR5cGUsXFxuICAgICAgICAgICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY29uc3QgaGl0RWxlbWVudCA9IHRoaXMuZ2V0RWxlbWVudEF0UG9zaXRpb24oc2NlbmVQb2ludGVyLngsIHNjZW5lUG9pbnRlci55KTtcXG4gICAgICAgICAgICB0aGlzLmhpdExpbmtFbGVtZW50ID0gdGhpcy5nZXRFbGVtZW50TGlua0F0UG9zaXRpb24oc2NlbmVQb2ludGVyLCBoaXRFbGVtZW50KTtcXG4gICAgICAgICAgICBpZiAodGhpcy5oaXRMaW5rRWxlbWVudCAmJlxcbiAgICAgICAgICAgICAgICAhdGhpcy5zdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHNbdGhpcy5oaXRMaW5rRWxlbWVudC5pZF0pIHtcXG4gICAgICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnNldEN1cnNvcikodGhpcy5jYW52YXMsIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uQ1VSU09SX1RZUEUuUE9JTlRFUik7XFxuICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X0h5cGVybGlua19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNDZfXy5zaG93SHlwZXJsaW5rVG9vbHRpcCkodGhpcy5oaXRMaW5rRWxlbWVudCwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAoMCxfZWxlbWVudF9IeXBlcmxpbmtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQ2X18uaGlkZUh5cGVybGlua1Rvb2xpcCkoKTtcXG4gICAgICAgICAgICAgICAgaWYgKGhpdEVsZW1lbnQgJiZcXG4gICAgICAgICAgICAgICAgICAgIGhpdEVsZW1lbnQubGluayAmJlxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHNbaGl0RWxlbWVudC5pZF0gJiZcXG4gICAgICAgICAgICAgICAgICAgICF0aGlzLmNvbnRleHRNZW51T3BlbiAmJlxcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuc3RhdGUuc2hvd0h5cGVybGlua1BvcHVwKSB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd0h5cGVybGlua1BvcHVwOiBcXFwiaW5mb1xcXCIgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuZWxlbWVudFR5cGUgPT09IFxcXCJ0ZXh0XFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnNldEN1cnNvcikodGhpcy5jYW52YXMsICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmlzVGV4dEVsZW1lbnQpKGhpdEVsZW1lbnQpID8gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5DVVJTT1JfVFlQRS5URVhUIDogX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5DVVJTT1JfVFlQRS5DUk9TU0hBSVIpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuc3RhdGUudmlld01vZGVFbmFibGVkKSB7XFxuICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uc2V0Q3Vyc29yKSh0aGlzLmNhbnZhcywgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5DVVJTT1JfVFlQRS5HUkFCKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChpc092ZXJTY3JvbGxCYXIpIHtcXG4gICAgICAgICAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5zZXRDdXJzb3IpKHRoaXMuY2FudmFzLCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkNVUlNPUl9UWVBFLkFVVE8pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuc3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBfZWxlbWVudF9saW5lYXJFbGVtZW50RWRpdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOF9fLkxpbmVhckVsZW1lbnRFZGl0b3IuZ2V0RWxlbWVudCh0aGlzLnN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50LmVsZW1lbnRJZCk7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X2NvbGxpc2lvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNDVfXy5pc0hpdHRpbmdFbGVtZW50Tm90Q29uc2lkZXJpbmdCb3VuZGluZ0JveCkoZWxlbWVudCwgdGhpcy5zdGF0ZSwgW1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2VuZVBvaW50ZXIueCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NlbmVQb2ludGVyLnksXFxuICAgICAgICAgICAgICAgICAgICAgICAgXSkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uc2V0Q3Vyc29yKSh0aGlzLmNhbnZhcywgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5DVVJTT1JfVFlQRS5NT1ZFKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5zZXRDdXJzb3IpKHRoaXMuY2FudmFzLCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkNVUlNPUl9UWVBFLkFVVE8pO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKFxcbiAgICAgICAgICAgICAgICAvLyBpZiB1c2luZyBjbWQvY3RybCwgd2UncmUgbm90IGRyYWdnaW5nXFxuICAgICAgICAgICAgICAgICFldmVudFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjZfXy5LRVlTLkNUUkxfT1JfQ01EXSAmJlxcbiAgICAgICAgICAgICAgICAgICAgKGhpdEVsZW1lbnQgfHxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzSGl0dGluZ0NvbW1vbkJvdW5kaW5nQm94T2ZTZWxlY3RlZEVsZW1lbnRzKHNjZW5lUG9pbnRlciwgc2VsZWN0ZWRFbGVtZW50cykpKSB7XFxuICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uc2V0Q3Vyc29yKSh0aGlzLmNhbnZhcywgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5DVVJTT1JfVFlQRS5NT1ZFKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5zZXRDdXJzb3IpKHRoaXMuY2FudmFzLCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkNVUlNPUl9UWVBFLkFVVE8pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfTtcXG4gICAgICAgIC8vIHNldCB0b3VjaCBtb3ZpbmcgZm9yIG1vYmlsZSBjb250ZXh0IG1lbnVcXG4gICAgICAgIHRoaXMuaGFuZGxlVG91Y2hNb3ZlID0gKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgaW52YWxpZGF0ZUNvbnRleHRNZW51ID0gdHJ1ZTtcXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmhhbmRsZUNhbnZhc1BvaW50ZXJEb3duID0gKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgLy8gcmVtb3ZlIGFueSBhY3RpdmUgc2VsZWN0aW9uIHdoZW4gd2Ugc3RhcnQgdG8gaW50ZXJhY3Qgd2l0aCBjYW52YXNcXG4gICAgICAgICAgICAvLyAobWFpbmx5LCB3ZSBjYXJlIGFib3V0IHJlbW92aW5nIHNlbGVjdGlvbiBvdXRzaWRlIHRoZSBjb21wb25lbnQgd2hpY2hcXG4gICAgICAgICAgICAvLyAgd291bGQgcHJldmVudCBvdXIgY29weSBoYW5kbGluZyBvdGhlcndpc2UpXFxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7XFxuICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiA9PT0gbnVsbCB8fCBzZWxlY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlbGVjdGlvbi5hbmNob3JOb2RlKSB7XFxuICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgdGhpcy5tYXliZU9wZW5Db250ZXh0TWVudUFmdGVyUG9pbnRlckRvd25PblRvdWNoRGV2aWNlcyhldmVudCk7XFxuICAgICAgICAgICAgdGhpcy5tYXliZUNsZWFudXBBZnRlck1pc3NpbmdQb2ludGVyVXAoZXZlbnQpO1xcbiAgICAgICAgICAgIC8vZmlyZXMgb25seSBvbmNlLCBpZiBwZW4gaXMgZGV0ZWN0ZWQsIHBlbk1vZGUgaXMgZW5hYmxlZFxcbiAgICAgICAgICAgIC8vdGhlIHVzZXIgY2FuIGRpc2FibGUgdGhpcyBieSB0b2dnbGluZyB0aGUgcGVuTW9kZSBidXR0b25cXG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGUucGVuRGV0ZWN0ZWQgJiYgZXZlbnQucG9pbnRlclR5cGUgPT09IFxcXCJwZW5cXFwiKSB7XFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKHByZXZTdGF0ZSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwZW5Nb2RlOiB0cnVlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlbkRldGVjdGVkOiB0cnVlLFxcbiAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmIChpc1Bhbm5pbmcpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB0aGlzLmxhc3RQb2ludGVyRG93biA9IGV2ZW50O1xcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICBsYXN0UG9pbnRlckRvd25XaXRoOiBldmVudC5wb2ludGVyVHlwZSxcXG4gICAgICAgICAgICAgICAgY3Vyc29yQnV0dG9uOiBcXFwiZG93blxcXCIsXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgdGhpcy5zYXZlUG9pbnRlcihldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZLCBcXFwiZG93blxcXCIpO1xcbiAgICAgICAgICAgIGlmICh0aGlzLmhhbmRsZUNhbnZhc1BhblVzaW5nV2hlZWxPclNwYWNlRHJhZyhldmVudCkpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAvLyBvbmx5IGhhbmRsZSBsZWZ0IG1vdXNlIGJ1dHRvbiBvciB0b3VjaFxcbiAgICAgICAgICAgIGlmIChldmVudC5idXR0b24gIT09IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uUE9JTlRFUl9CVVRUT04uTUFJTiAmJlxcbiAgICAgICAgICAgICAgICBldmVudC5idXR0b24gIT09IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uUE9JTlRFUl9CVVRUT04uVE9VQ0gpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUdlc3R1cmVPblBvaW50ZXJEb3duKGV2ZW50KTtcXG4gICAgICAgICAgICAvLyBkb24ndCBzZWxlY3Qgd2hpbGUgcGFubmluZ1xcbiAgICAgICAgICAgIGlmIChnZXN0dXJlLnBvaW50ZXJzLnNpemUgPiAxKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgLy8gU3RhdGUgZm9yIHRoZSBkdXJhdGlvbiBvZiBhIHBvaW50ZXIgaW50ZXJhY3Rpb24sIHdoaWNoIHN0YXJ0cyB3aXRoIGFcXG4gICAgICAgICAgICAvLyBwb2ludGVyRG93biBldmVudCwgZW5kcyB3aXRoIGEgcG9pbnRlclVwIGV2ZW50IChvciBhbm90aGVyIHBvaW50ZXJEb3duKVxcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ZXJEb3duU3RhdGUgPSB0aGlzLmluaXRpYWxQb2ludGVyRG93blN0YXRlKGV2ZW50KTtcXG4gICAgICAgICAgICBpZiAodGhpcy5oYW5kbGVEcmFnZ2luZ1Njcm9sbEJhcihldmVudCwgcG9pbnRlckRvd25TdGF0ZSkpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAvLyBTaW5jZSBjb250ZXh0IG1lbnUgY2xvc2VzIG9uIHBvaW50ZXIgZG93biBzbyBzZXR0aW5nIHRvIGZhbHNlXFxuICAgICAgICAgICAgdGhpcy5jb250ZXh0TWVudU9wZW4gPSBmYWxzZTtcXG4gICAgICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uSWZOb3RVc2luZ1NlbGVjdGlvbigpO1xcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQmluZGluZ0VuYWJsZWRPblBvaW50ZXJNb3ZlKGV2ZW50KTtcXG4gICAgICAgICAgICBpZiAodGhpcy5oYW5kbGVTZWxlY3Rpb25PblBvaW50ZXJEb3duKGV2ZW50LCBwb2ludGVyRG93blN0YXRlKSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnN0IGFsbG93T25Qb2ludGVyRG93biA9ICF0aGlzLnN0YXRlLnBlbk1vZGUgfHxcXG4gICAgICAgICAgICAgICAgZXZlbnQucG9pbnRlclR5cGUgIT09IFxcXCJ0b3VjaFxcXCIgfHxcXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5lbGVtZW50VHlwZSA9PT0gXFxcInNlbGVjdGlvblxcXCIgfHxcXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5lbGVtZW50VHlwZSA9PT0gXFxcInRleHRcXFwiIHx8XFxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZWxlbWVudFR5cGUgPT09IFxcXCJpbWFnZVxcXCI7XFxuICAgICAgICAgICAgaWYgKCFhbGxvd09uUG9pbnRlckRvd24pIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5lbGVtZW50VHlwZSA9PT0gXFxcInRleHRcXFwiKSB7XFxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlVGV4dE9uUG9pbnRlckRvd24oZXZlbnQsIHBvaW50ZXJEb3duU3RhdGUpO1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuc3RhdGUuZWxlbWVudFR5cGUgPT09IFxcXCJhcnJvd1xcXCIgfHxcXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5lbGVtZW50VHlwZSA9PT0gXFxcImxpbmVcXFwiKSB7XFxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlTGluZWFyRWxlbWVudE9uUG9pbnRlckRvd24oZXZlbnQsIHRoaXMuc3RhdGUuZWxlbWVudFR5cGUsIHBvaW50ZXJEb3duU3RhdGUpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLnN0YXRlLmVsZW1lbnRUeXBlID09PSBcXFwiaW1hZ2VcXFwiKSB7XFxuICAgICAgICAgICAgICAgIC8vIHJlc2V0IGltYWdlIHByZXZpZXcgb24gcG9pbnRlcmRvd25cXG4gICAgICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnNldEN1cnNvcikodGhpcy5jYW52YXMsIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uQ1VSU09SX1RZUEUuQ1JPU1NIQUlSKTtcXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnN0YXRlLnBlbmRpbmdJbWFnZUVsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcXG4gICAgICAgICAgICAgICAgICAgIGRyYWdnaW5nRWxlbWVudDogdGhpcy5zdGF0ZS5wZW5kaW5nSW1hZ2VFbGVtZW50LFxcbiAgICAgICAgICAgICAgICAgICAgZWRpdGluZ0VsZW1lbnQ6IHRoaXMuc3RhdGUucGVuZGluZ0ltYWdlRWxlbWVudCxcXG4gICAgICAgICAgICAgICAgICAgIHBlbmRpbmdJbWFnZUVsZW1lbnQ6IG51bGwsXFxuICAgICAgICAgICAgICAgICAgICBtdWx0aUVsZW1lbnQ6IG51bGwsXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICBjb25zdCB7IHgsIHkgfSA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy52aWV3cG9ydENvb3Jkc1RvU2NlbmVDb29yZHMpKGV2ZW50LCB0aGlzLnN0YXRlKTtcXG4gICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTlfXy5tdXRhdGVFbGVtZW50KSh0aGlzLnN0YXRlLnBlbmRpbmdJbWFnZUVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgICAgIHgsXFxuICAgICAgICAgICAgICAgICAgICB5LFxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5zdGF0ZS5lbGVtZW50VHlwZSA9PT0gXFxcImZyZWVkcmF3XFxcIikge1xcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUZyZWVEcmF3RWxlbWVudE9uUG9pbnRlckRvd24oZXZlbnQsIHRoaXMuc3RhdGUuZWxlbWVudFR5cGUsIHBvaW50ZXJEb3duU3RhdGUpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHZW5lcmljRWxlbWVudE9uUG9pbnRlckRvd24odGhpcy5zdGF0ZS5lbGVtZW50VHlwZSwgcG9pbnRlckRvd25TdGF0ZSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnN0IG9uUG9pbnRlck1vdmUgPSB0aGlzLm9uUG9pbnRlck1vdmVGcm9tUG9pbnRlckRvd25IYW5kbGVyKHBvaW50ZXJEb3duU3RhdGUpO1xcbiAgICAgICAgICAgIGNvbnN0IG9uUG9pbnRlclVwID0gdGhpcy5vblBvaW50ZXJVcEZyb21Qb2ludGVyRG93bkhhbmRsZXIocG9pbnRlckRvd25TdGF0ZSk7XFxuICAgICAgICAgICAgY29uc3Qgb25LZXlEb3duID0gdGhpcy5vbktleURvd25Gcm9tUG9pbnRlckRvd25IYW5kbGVyKHBvaW50ZXJEb3duU3RhdGUpO1xcbiAgICAgICAgICAgIGNvbnN0IG9uS2V5VXAgPSB0aGlzLm9uS2V5VXBGcm9tUG9pbnRlckRvd25IYW5kbGVyKHBvaW50ZXJEb3duU3RhdGUpO1xcbiAgICAgICAgICAgIGxhc3RQb2ludGVyVXAgPSBvblBvaW50ZXJVcDtcXG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGUudmlld01vZGVFbmFibGVkKSB7XFxuICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuUE9JTlRFUl9NT1ZFLCBvblBvaW50ZXJNb3ZlKTtcXG4gICAgICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5QT0lOVEVSX1VQLCBvblBvaW50ZXJVcCk7XFxuICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuS0VZRE9XTiwgb25LZXlEb3duKTtcXG4gICAgICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5LRVlVUCwgb25LZXlVcCk7XFxuICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUuZXZlbnRMaXN0ZW5lcnMub25Nb3ZlID0gb25Qb2ludGVyTW92ZTtcXG4gICAgICAgICAgICAgICAgcG9pbnRlckRvd25TdGF0ZS5ldmVudExpc3RlbmVycy5vblVwID0gb25Qb2ludGVyVXA7XFxuICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUuZXZlbnRMaXN0ZW5lcnMub25LZXlVcCA9IG9uS2V5VXA7XFxuICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUuZXZlbnRMaXN0ZW5lcnMub25LZXlEb3duID0gb25LZXlEb3duO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmhhbmRsZUNhbnZhc1BvaW50ZXJVcCA9IChldmVudCkgPT4ge1xcbiAgICAgICAgICAgIHRoaXMubGFzdFBvaW50ZXJVcCA9IGV2ZW50O1xcbiAgICAgICAgICAgIGNvbnN0IGlzVG91Y2hTY3JlZW4gPSBbXFxcInBlblxcXCIsIFxcXCJ0b3VjaFxcXCJdLmluY2x1ZGVzKGV2ZW50LnBvaW50ZXJUeXBlKTtcXG4gICAgICAgICAgICBpZiAoaXNUb3VjaFNjcmVlbikge1xcbiAgICAgICAgICAgICAgICBjb25zdCBzY2VuZVBvaW50ZXIgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18udmlld3BvcnRDb29yZHNUb1NjZW5lQ29vcmRzKSh7IGNsaWVudFg6IGV2ZW50LmNsaWVudFgsIGNsaWVudFk6IGV2ZW50LmNsaWVudFkgfSwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGhpdEVsZW1lbnQgPSB0aGlzLmdldEVsZW1lbnRBdFBvc2l0aW9uKHNjZW5lUG9pbnRlci54LCBzY2VuZVBvaW50ZXIueSk7XFxuICAgICAgICAgICAgICAgIHRoaXMuaGl0TGlua0VsZW1lbnQgPSB0aGlzLmdldEVsZW1lbnRMaW5rQXRQb3NpdGlvbihzY2VuZVBvaW50ZXIsIGhpdEVsZW1lbnQpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAodGhpcy5oaXRMaW5rRWxlbWVudCAmJlxcbiAgICAgICAgICAgICAgICAhdGhpcy5zdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHNbdGhpcy5oaXRMaW5rRWxlbWVudC5pZF0pIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFRvTGluayhldmVudCwgaXNUb3VjaFNjcmVlbik7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlUG9pbnRlcihldmVudCk7XFxuICAgICAgICB9O1xcbiAgICAgICAgdGhpcy5tYXliZU9wZW5Db250ZXh0TWVudUFmdGVyUG9pbnRlckRvd25PblRvdWNoRGV2aWNlcyA9IChldmVudCkgPT4ge1xcbiAgICAgICAgICAgIC8vIGRlYWwgd2l0aCBvcGVuaW5nIGNvbnRleHQgbWVudSBvbiB0b3VjaCBkZXZpY2VzXFxuICAgICAgICAgICAgaWYgKGV2ZW50LnBvaW50ZXJUeXBlID09PSBcXFwidG91Y2hcXFwiKSB7XFxuICAgICAgICAgICAgICAgIGludmFsaWRhdGVDb250ZXh0TWVudSA9IGZhbHNlO1xcbiAgICAgICAgICAgICAgICBpZiAodG91Y2hUaW1lb3V0KSB7XFxuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSdzIGFscmVhZHkgYSB0b3VjaFRpbWVvdXQsIHRoaXMgbWVhbnMgdGhhdCB0aGVyZSdzIGFub3RoZXJcXG4gICAgICAgICAgICAgICAgICAgIC8vIHRvdWNoIGRvd24gYW5kIHdlIGFyZSBkb2luZyBhbm90aGVyIHRvdWNoLCBzbyB3ZSBzaG91bGRuJ3Qgb3BlbiB0aGVcXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnRleHQgbWVudS5cXG4gICAgICAgICAgICAgICAgICAgIGludmFsaWRhdGVDb250ZXh0TWVudSA9IHRydWU7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAvLyBvcGVuIHRoZSBjb250ZXh0IG1lbnUgd2l0aCB0aGUgZmlyc3QgdG91Y2gncyBjbGllbnRYIGFuZCBjbGllbnRZXFxuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgdG91Y2ggaXMgbm90IG1vdmluZ1xcbiAgICAgICAgICAgICAgICAgICAgdG91Y2hUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvdWNoVGltZW91dCA9IDA7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpbnZhbGlkYXRlQ29udGV4dE1lbnUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVDYW52YXNDb250ZXh0TWVudShldmVudCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfSwgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5UT1VDSF9DVFhfTUVOVV9USU1FT1VUKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLnJlc2V0Q29udGV4dE1lbnVUaW1lciA9ICgpID0+IHtcXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodG91Y2hUaW1lb3V0KTtcXG4gICAgICAgICAgICB0b3VjaFRpbWVvdXQgPSAwO1xcbiAgICAgICAgICAgIGludmFsaWRhdGVDb250ZXh0TWVudSA9IGZhbHNlO1xcbiAgICAgICAgfTtcXG4gICAgICAgIC8vIFJldHVybnMgd2hldGhlciB0aGUgZXZlbnQgaXMgYSBwYW5uaW5nXFxuICAgICAgICB0aGlzLmhhbmRsZUNhbnZhc1BhblVzaW5nV2hlZWxPclNwYWNlRHJhZyA9IChldmVudCkgPT4ge1xcbiAgICAgICAgICAgIGlmICghKGdlc3R1cmUucG9pbnRlcnMuc2l6ZSA9PT0gMCAmJlxcbiAgICAgICAgICAgICAgICAoZXZlbnQuYnV0dG9uID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLlBPSU5URVJfQlVUVE9OLldIRUVMIHx8XFxuICAgICAgICAgICAgICAgICAgICAoZXZlbnQuYnV0dG9uID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLlBPSU5URVJfQlVUVE9OLk1BSU4gJiYgaXNIb2xkaW5nU3BhY2UpIHx8XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnZpZXdNb2RlRW5hYmxlZCkpIHx8XFxuICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmlzVGV4dEVsZW1lbnQpKHRoaXMuc3RhdGUuZWRpdGluZ0VsZW1lbnQpKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaXNQYW5uaW5nID0gdHJ1ZTtcXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xcbiAgICAgICAgICAgIGxldCBuZXh0UGFzdGVQcmV2ZW50ZWQgPSBmYWxzZTtcXG4gICAgICAgICAgICBjb25zdCBpc0xpbnV4ID0gL0xpbnV4Ly50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IucGxhdGZvcm0pO1xcbiAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5zZXRDdXJzb3IpKHRoaXMuY2FudmFzLCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkNVUlNPUl9UWVBFLkdSQUJCSU5HKTtcXG4gICAgICAgICAgICBsZXQgeyBjbGllbnRYOiBsYXN0WCwgY2xpZW50WTogbGFzdFkgfSA9IGV2ZW50O1xcbiAgICAgICAgICAgIGNvbnN0IG9uUG9pbnRlck1vdmUgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18ud2l0aEJhdGNoZWRVcGRhdGVzVGhyb3R0bGVkKSgoZXZlbnQpID0+IHtcXG4gICAgICAgICAgICAgICAgY29uc3QgZGVsdGFYID0gbGFzdFggLSBldmVudC5jbGllbnRYO1xcbiAgICAgICAgICAgICAgICBjb25zdCBkZWx0YVkgPSBsYXN0WSAtIGV2ZW50LmNsaWVudFk7XFxuICAgICAgICAgICAgICAgIGxhc3RYID0gZXZlbnQuY2xpZW50WDtcXG4gICAgICAgICAgICAgICAgbGFzdFkgPSBldmVudC5jbGllbnRZO1xcbiAgICAgICAgICAgICAgICAvKlxcbiAgICAgICAgICAgICAgICAgKiBQcmV2ZW50IHBhc3RlIGV2ZW50IGlmIHdlIG1vdmUgd2hpbGUgbWlkZGxlIGNsaWNraW5nIG9uIExpbnV4LlxcbiAgICAgICAgICAgICAgICAgKiBTZWUgaXNzdWUgIzEzODMuXFxuICAgICAgICAgICAgICAgICAqL1xcbiAgICAgICAgICAgICAgICBpZiAoaXNMaW51eCAmJlxcbiAgICAgICAgICAgICAgICAgICAgIW5leHRQYXN0ZVByZXZlbnRlZCAmJlxcbiAgICAgICAgICAgICAgICAgICAgKE1hdGguYWJzKGRlbHRhWCkgPiAxIHx8IE1hdGguYWJzKGRlbHRhWSkgPiAxKSkge1xcbiAgICAgICAgICAgICAgICAgICAgbmV4dFBhc3RlUHJldmVudGVkID0gdHJ1ZTtcXG4gICAgICAgICAgICAgICAgICAgIC8qIFByZXZlbnQgdGhlIG5leHQgcGFzdGUgZXZlbnQgKi9cXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZlbnROZXh0UGFzdGUgPSAoZXZlbnQpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5QQVNURSwgcHJldmVudE5leHRQYXN0ZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XFxuICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgLypcXG4gICAgICAgICAgICAgICAgICAgICAqIFJlZW5hYmxlIG5leHQgcGFzdGUgaW4gY2FzZSBvZiBkaXNhYmxlZCBtaWRkbGUgY2xpY2sgcGFzdGUgZm9yXFxuICAgICAgICAgICAgICAgICAgICAgKiBhbnkgcmVhc29uOlxcbiAgICAgICAgICAgICAgICAgICAgICogLSByaWd0aCBjbGljayBwYXN0ZVxcbiAgICAgICAgICAgICAgICAgICAgICogLSBlbXB0eSBjbGlwYm9hcmRcXG4gICAgICAgICAgICAgICAgICAgICAqL1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5hYmxlTmV4dFBhc3RlID0gKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5QQVNURSwgcHJldmVudE5leHRQYXN0ZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuUE9JTlRFUl9VUCwgZW5hYmxlTmV4dFBhc3RlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAxMDApO1xcbiAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULlBBU1RFLCBwcmV2ZW50TmV4dFBhc3RlKTtcXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuUE9JTlRFUl9VUCwgZW5hYmxlTmV4dFBhc3RlKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbFg6IHRoaXMuc3RhdGUuc2Nyb2xsWCAtIGRlbHRhWCAvIHRoaXMuc3RhdGUuem9vbS52YWx1ZSxcXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbFk6IHRoaXMuc3RhdGUuc2Nyb2xsWSAtIGRlbHRhWSAvIHRoaXMuc3RhdGUuem9vbS52YWx1ZSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgY29uc3QgdGVhcmRvd24gPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18ud2l0aEJhdGNoZWRVcGRhdGVzKSgobGFzdFBvaW50ZXJVcCA9ICgpID0+IHtcXG4gICAgICAgICAgICAgICAgbGFzdFBvaW50ZXJVcCA9IG51bGw7XFxuICAgICAgICAgICAgICAgIGlzUGFubmluZyA9IGZhbHNlO1xcbiAgICAgICAgICAgICAgICBpZiAoIWlzSG9sZGluZ1NwYWNlKSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS52aWV3TW9kZUVuYWJsZWQpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uc2V0Q3Vyc29yKSh0aGlzLmNhbnZhcywgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5DVVJTT1JfVFlQRS5HUkFCKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5zZXRDdXJzb3JGb3JTaGFwZSkodGhpcy5jYW52YXMsIHRoaXMuc3RhdGUuZWxlbWVudFR5cGUpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yQnV0dG9uOiBcXFwidXBcXFwiLFxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgdGhpcy5zYXZlUG9pbnRlcihldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZLCBcXFwidXBcXFwiKTtcXG4gICAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5QT0lOVEVSX01PVkUsIG9uUG9pbnRlck1vdmUpO1xcbiAgICAgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULlBPSU5URVJfVVAsIHRlYXJkb3duKTtcXG4gICAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5CTFVSLCB0ZWFyZG93bik7XFxuICAgICAgICAgICAgICAgIG9uUG9pbnRlck1vdmUuZmx1c2goKTtcXG4gICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5CTFVSLCB0ZWFyZG93bik7XFxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5QT0lOVEVSX01PVkUsIG9uUG9pbnRlck1vdmUsIHtcXG4gICAgICAgICAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULlBPSU5URVJfVVAsIHRlYXJkb3duKTtcXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uSWZOb3RVc2luZ1NlbGVjdGlvbiA9ICgpID0+IHtcXG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5lbGVtZW50VHlwZSAhPT0gXFxcInNlbGVjdGlvblxcXCIpIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRJZHM6IHt9LFxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRHcm91cElkczoge30sXFxuICAgICAgICAgICAgICAgICAgICBlZGl0aW5nR3JvdXBJZDogbnVsbCxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfTtcXG4gICAgICAgIC8qKlxcbiAgICAgICAgICogQHJldHVybnMgd2hldGhlciB0aGUgcG9pbnRlciBldmVudCBoYXMgYmVlbiBjb21wbGV0ZWx5IGhhbmRsZWRcXG4gICAgICAgICAqL1xcbiAgICAgICAgdGhpcy5oYW5kbGVTZWxlY3Rpb25PblBvaW50ZXJEb3duID0gKGV2ZW50LCBwb2ludGVyRG93blN0YXRlKSA9PiB7XFxuICAgICAgICAgICAgdmFyIF9hO1xcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmVsZW1lbnRUeXBlID09PSBcXFwic2VsZWN0aW9uXFxcIikge1xcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKTtcXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzBfXy5nZXRTZWxlY3RlZEVsZW1lbnRzKShlbGVtZW50cywgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhdGhpcy5zdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFdpdGhUcmFuc2Zvcm1IYW5kbGVUeXBlID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uZ2V0RWxlbWVudFdpdGhUcmFuc2Zvcm1IYW5kbGVUeXBlKShlbGVtZW50cywgdGhpcy5zdGF0ZSwgcG9pbnRlckRvd25TdGF0ZS5vcmlnaW4ueCwgcG9pbnRlckRvd25TdGF0ZS5vcmlnaW4ueSwgdGhpcy5zdGF0ZS56b29tLCBldmVudC5wb2ludGVyVHlwZSk7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudFdpdGhUcmFuc2Zvcm1IYW5kbGVUeXBlICE9IG51bGwpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaXppbmdFbGVtZW50OiBlbGVtZW50V2l0aFRyYW5zZm9ybUhhbmRsZVR5cGUuZWxlbWVudCxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyRG93blN0YXRlLnJlc2l6ZS5oYW5kbGVUeXBlID1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudFdpdGhUcmFuc2Zvcm1IYW5kbGVUeXBlLnRyYW5zZm9ybUhhbmRsZVR5cGU7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPiAxKSB7XFxuICAgICAgICAgICAgICAgICAgICBwb2ludGVyRG93blN0YXRlLnJlc2l6ZS5oYW5kbGVUeXBlID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uZ2V0VHJhbnNmb3JtSGFuZGxlVHlwZUZyb21Db29yZHMpKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmdldENvbW1vbkJvdW5kcykoc2VsZWN0ZWRFbGVtZW50cyksIHBvaW50ZXJEb3duU3RhdGUub3JpZ2luLngsIHBvaW50ZXJEb3duU3RhdGUub3JpZ2luLnksIHRoaXMuc3RhdGUuem9vbSwgZXZlbnQucG9pbnRlclR5cGUpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGlmIChwb2ludGVyRG93blN0YXRlLnJlc2l6ZS5oYW5kbGVUeXBlKSB7XFxuICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uc2V0Q3Vyc29yKSh0aGlzLmNhbnZhcywgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uZ2V0Q3Vyc29yRm9yUmVzaXppbmdFbGVtZW50KSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtSGFuZGxlVHlwZTogcG9pbnRlckRvd25TdGF0ZS5yZXNpemUuaGFuZGxlVHlwZSxcXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcXG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUucmVzaXplLmlzUmVzaXppbmcgPSB0cnVlO1xcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRlckRvd25TdGF0ZS5yZXNpemUub2Zmc2V0ID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnR1cGxlVG9Db29ycykoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uZ2V0UmVzaXplT2Zmc2V0WFkpKHBvaW50ZXJEb3duU3RhdGUucmVzaXplLmhhbmRsZVR5cGUsIHNlbGVjdGVkRWxlbWVudHMsIHBvaW50ZXJEb3duU3RhdGUub3JpZ2luLngsIHBvaW50ZXJEb3duU3RhdGUub3JpZ2luLnkpKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIxX18uaXNMaW5lYXJFbGVtZW50KShzZWxlY3RlZEVsZW1lbnRzWzBdKSAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudHNbMF0ucG9pbnRzLmxlbmd0aCA9PT0gMikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUucmVzaXplLmFycm93RGlyZWN0aW9uID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uZ2V0UmVzaXplQXJyb3dEaXJlY3Rpb24pKHBvaW50ZXJEb3duU3RhdGUucmVzaXplLmhhbmRsZVR5cGUsIHNlbGVjdGVkRWxlbWVudHNbMF0pO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXQgPSBfZWxlbWVudF9saW5lYXJFbGVtZW50RWRpdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOF9fLkxpbmVhckVsZW1lbnRFZGl0b3IuaGFuZGxlUG9pbnRlckRvd24oZXZlbnQsIHRoaXMuc3RhdGUsIChhcHBTdGF0ZSkgPT4gdGhpcy5zZXRTdGF0ZShhcHBTdGF0ZSksIHRoaXMuaGlzdG9yeSwgcG9pbnRlckRvd25TdGF0ZS5vcmlnaW4pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQuaGl0RWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyRG93blN0YXRlLmhpdC5lbGVtZW50ID0gcmV0LmhpdEVsZW1lbnQ7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQuZGlkQWRkUG9pbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgLy8gaGl0RWxlbWVudCBtYXkgYWxyZWFkeSBiZSBzZXQgYWJvdmUsIHNvIGNoZWNrIGZpcnN0XFxuICAgICAgICAgICAgICAgICAgICBwb2ludGVyRG93blN0YXRlLmhpdC5lbGVtZW50ID1cXG4gICAgICAgICAgICAgICAgICAgICAgICAoX2EgPSBwb2ludGVyRG93blN0YXRlLmhpdC5lbGVtZW50KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLmdldEVsZW1lbnRBdFBvc2l0aW9uKHBvaW50ZXJEb3duU3RhdGUub3JpZ2luLngsIHBvaW50ZXJEb3duU3RhdGUub3JpZ2luLnkpO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBvaW50ZXJEb3duU3RhdGUuaGl0LmVsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBFYXJseSByZXR1cm4gaWYgcG9pbnRlciBpcyBoaXR0aW5nIGxpbmsgaWNvblxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoMCxfZWxlbWVudF9IeXBlcmxpbmtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQ2X18uaXNQb2ludEhpdHRpbmdMaW5rSWNvbikocG9pbnRlckRvd25TdGF0ZS5oaXQuZWxlbWVudCwgdGhpcy5zdGF0ZSwgW3BvaW50ZXJEb3duU3RhdGUub3JpZ2luLngsIHBvaW50ZXJEb3duU3RhdGUub3JpZ2luLnldLCB0aGlzLmlzTW9iaWxlKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUuaGl0Lmhhc0hpdEVsZW1lbnRJbnNpZGUgPVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCxfZWxlbWVudF9jb2xsaXNpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQ1X18uaXNIaXR0aW5nRWxlbWVudE5vdENvbnNpZGVyaW5nQm91bmRpbmdCb3gpKHBvaW50ZXJEb3duU3RhdGUuaGl0LmVsZW1lbnQsIHRoaXMuc3RhdGUsIFtwb2ludGVyRG93blN0YXRlLm9yaWdpbi54LCBwb2ludGVyRG93blN0YXRlLm9yaWdpbi55XSk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAvLyBGb3Igb3ZlcmxhcHBlZCBlbGVtZW50cyBvbmUgcG9zaXRpb24gbWF5IGhpdFxcbiAgICAgICAgICAgICAgICAgICAgLy8gbXVsdGlwbGUgZWxlbWVudHNcXG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUuaGl0LmFsbEhpdEVsZW1lbnRzID0gdGhpcy5nZXRFbGVtZW50c0F0UG9zaXRpb24ocG9pbnRlckRvd25TdGF0ZS5vcmlnaW4ueCwgcG9pbnRlckRvd25TdGF0ZS5vcmlnaW4ueSk7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoaXRFbGVtZW50ID0gcG9pbnRlckRvd25TdGF0ZS5oaXQuZWxlbWVudDtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvbWVIaXRFbGVtZW50SXNTZWxlY3RlZCA9IHBvaW50ZXJEb3duU3RhdGUuaGl0LmFsbEhpdEVsZW1lbnRzLnNvbWUoKGVsZW1lbnQpID0+IHRoaXMuaXNBU2VsZWN0ZWRFbGVtZW50KGVsZW1lbnQpKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmICgoaGl0RWxlbWVudCA9PT0gbnVsbCB8fCAhc29tZUhpdEVsZW1lbnRJc1NlbGVjdGVkKSAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgICFldmVudC5zaGlmdEtleSAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgICFwb2ludGVyRG93blN0YXRlLmhpdC5oYXNIaXRDb21tb25Cb3VuZGluZ0JveE9mU2VsZWN0ZWRFbGVtZW50cykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oaGl0RWxlbWVudCk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRJZHM6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aGlzLnN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50LmVsZW1lbnRJZF06IHRydWUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgY2xpY2sgb24gc29tZXRoaW5nXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChoaXRFbGVtZW50ICE9IG51bGwpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvbiBDTUQvQ1RSTCwgZHJpbGwgZG93biB0byBoaXQgZWxlbWVudCByZWdhcmRsZXNzIG9mIGdyb3VwcyBldGMuXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNl9fLktFWVMuQ1RSTF9PUl9DTURdKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5zdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHNbaGl0RWxlbWVudC5pZF0pIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUuaGl0Lndhc0FkZGVkVG9TZWxlY3Rpb24gPSB0cnVlO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKHByZXZTdGF0ZSkgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjNfXy5lZGl0R3JvdXBGb3JTZWxlY3RlZEVsZW1lbnQpKHByZXZTdGF0ZSwgaGl0RWxlbWVudCkpLCB7IHByZXZpb3VzU2VsZWN0ZWRFbGVtZW50SWRzOiB0aGlzLnN0YXRlLnNlbGVjdGVkRWxlbWVudElkcyB9KSkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIG5vdCBjb21wbGV0ZWx5IGhhbmRsZWQgc28gYXMgdG8gYWxsb3cgZHJhZ2dpbmcgZXRjLlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlc2VsZWN0IGlmIGl0ZW0gaXMgc2VsZWN0ZWRcXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBzaGlmdCBpcyBub3QgY2xpY2tlZCwgdGhpcyB3aWxsIGFsd2F5cyByZXR1cm4gdHJ1ZVxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgaXQgd2lsbCB0cmlnZ2VyIHNlbGVjdGlvbiBiYXNlZCBvbiBjdXJyZW50XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RhdGUgb2YgdGhlIGJveFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5zdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHNbaGl0RWxlbWVudC5pZF0pIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgZ3JvdXAsIGV4aXRpbmcgZWRpdGluZyBtb2RlIGFuZCBkZXNlbGVjdCB0aGUgZ3JvdXAuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmVkaXRpbmdHcm91cElkICYmXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjNfXy5pc0VsZW1lbnRJbkdyb3VwKShoaXRFbGVtZW50LCB0aGlzLnN0YXRlLmVkaXRpbmdHcm91cElkKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEdyb3VwSWRzOiB7fSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZGl0aW5nR3JvdXBJZDogbnVsbCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkZCBoaXQgZWxlbWVudCB0byBzZWxlY3Rpb24uIEF0IHRoaXMgcG9pbnQgaWYgd2UncmUgbm90IGhvbGRpbmdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU0hJRlQgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgZWxlbWVudChzKSB3ZXJlIGRlc2VsZWN0ZWQgYWJvdmVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKG1ha2Ugc3VyZSB5b3UgdXNlIHNldFN0YXRlIHVwZGF0ZXIgdG8gdXNlIGxhdGVzdCBzdGF0ZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzb21lSGl0RWxlbWVudElzU2VsZWN0ZWQgJiZcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFwb2ludGVyRG93blN0YXRlLmhpdC5oYXNIaXRDb21tb25Cb3VuZGluZ0JveE9mU2VsZWN0ZWRFbGVtZW50cykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSgocHJldlN0YXRlKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgwLF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIzX18uc2VsZWN0R3JvdXBzRm9yU2VsZWN0ZWRFbGVtZW50cykoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcmV2U3RhdGUpLCB7IHNlbGVjdGVkRWxlbWVudElkczogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcmV2U3RhdGUuc2VsZWN0ZWRFbGVtZW50SWRzKSwgeyBbaGl0RWxlbWVudC5pZF06IHRydWUgfSksIHNob3dIeXBlcmxpbmtQb3B1cDogaGl0RWxlbWVudC5saW5rID8gXFxcImluZm9cXFwiIDogZmFsc2UgfSksIHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUuaGl0Lndhc0FkZGVkVG9TZWxlY3Rpb24gPSB0cnVlO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTZWxlY3RlZEVsZW1lbnRJZHM6IHRoaXMuc3RhdGUuc2VsZWN0ZWRFbGVtZW50SWRzLFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgICAgfTtcXG4gICAgICAgIHRoaXMuaGFuZGxlVGV4dE9uUG9pbnRlckRvd24gPSAoZXZlbnQsIHBvaW50ZXJEb3duU3RhdGUpID0+IHtcXG4gICAgICAgICAgICAvLyBpZiB3ZSdyZSBjdXJyZW50bHkgc3RpbGwgZWRpdGluZyB0ZXh0LCBjbGlja2luZyBvdXRzaWRlXFxuICAgICAgICAgICAgLy8gc2hvdWxkIG9ubHkgZmluYWxpemUgaXQsIG5vdCBjcmVhdGUgYW5vdGhlciAoaXJyZXNwZWN0aXZlXFxuICAgICAgICAgICAgLy8gb2Ygc3RhdGUuZWxlbWVudExvY2tlZClcXG4gICAgICAgICAgICBpZiAoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uaXNUZXh0RWxlbWVudCkodGhpcy5zdGF0ZS5lZGl0aW5nRWxlbWVudCkpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBsZXQgc2NlbmVYID0gcG9pbnRlckRvd25TdGF0ZS5vcmlnaW4ueDtcXG4gICAgICAgICAgICBsZXQgc2NlbmVZID0gcG9pbnRlckRvd25TdGF0ZS5vcmlnaW4ueTtcXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5nZXRFbGVtZW50QXRQb3NpdGlvbihzY2VuZVgsIHNjZW5lWSwge1xcbiAgICAgICAgICAgICAgICBpbmNsdWRlQm91bmRUZXh0RWxlbWVudDogdHJ1ZSxcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICBjb25zdCBjYW5CaW5kVGV4dCA9ICgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIxX18uaGFzQm91bmRUZXh0RWxlbWVudCkoZWxlbWVudCk7XFxuICAgICAgICAgICAgaWYgKGNhbkJpbmRUZXh0KSB7XFxuICAgICAgICAgICAgICAgIHNjZW5lWCA9IGVsZW1lbnQueCArIGVsZW1lbnQud2lkdGggLyAyO1xcbiAgICAgICAgICAgICAgICBzY2VuZVkgPSBlbGVtZW50LnkgKyBlbGVtZW50LmhlaWdodCAvIDI7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUZXh0RWRpdGluZyh7XFxuICAgICAgICAgICAgICAgIHNjZW5lWCxcXG4gICAgICAgICAgICAgICAgc2NlbmVZLFxcbiAgICAgICAgICAgICAgICBzaG91bGRCaW5kOiBmYWxzZSxcXG4gICAgICAgICAgICAgICAgaW5zZXJ0QXRQYXJlbnRDZW50ZXI6ICFldmVudC5hbHRLZXksXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnJlc2V0Q3Vyc29yKSh0aGlzLmNhbnZhcyk7XFxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0YXRlLmVsZW1lbnRMb2NrZWQpIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50VHlwZTogXFxcInNlbGVjdGlvblxcXCIsXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmhhbmRsZUZyZWVEcmF3RWxlbWVudE9uUG9pbnRlckRvd24gPSAoZXZlbnQsIGVsZW1lbnRUeXBlLCBwb2ludGVyRG93blN0YXRlKSA9PiB7XFxuICAgICAgICAgICAgLy8gQmVnaW4gYSBtYXJrIGNhcHR1cmUuIFRoaXMgZG9lcyBub3QgaGF2ZSB0byB1cGRhdGUgc3RhdGUgeWV0LlxcbiAgICAgICAgICAgIGNvbnN0IFtncmlkWCwgZ3JpZFldID0gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI3X18uZ2V0R3JpZFBvaW50KShwb2ludGVyRG93blN0YXRlLm9yaWdpbi54LCBwb2ludGVyRG93blN0YXRlLm9yaWdpbi55LCBudWxsKTtcXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gKDAsX2VsZW1lbnRfbmV3RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjBfXy5uZXdGcmVlRHJhd0VsZW1lbnQpKHtcXG4gICAgICAgICAgICAgICAgdHlwZTogZWxlbWVudFR5cGUsXFxuICAgICAgICAgICAgICAgIHg6IGdyaWRYLFxcbiAgICAgICAgICAgICAgICB5OiBncmlkWSxcXG4gICAgICAgICAgICAgICAgc3Ryb2tlQ29sb3I6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1TdHJva2VDb2xvcixcXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtQmFja2dyb3VuZENvbG9yLFxcbiAgICAgICAgICAgICAgICBmaWxsU3R5bGU6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1GaWxsU3R5bGUsXFxuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtU3Ryb2tlV2lkdGgsXFxuICAgICAgICAgICAgICAgIHN0cm9rZVN0eWxlOiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtU3Ryb2tlU3R5bGUsXFxuICAgICAgICAgICAgICAgIHJvdWdobmVzczogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbVJvdWdobmVzcyxcXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbU9wYWNpdHksXFxuICAgICAgICAgICAgICAgIHN0cm9rZVNoYXJwbmVzczogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbUxpbmVhclN0cm9rZVNoYXJwbmVzcyxcXG4gICAgICAgICAgICAgICAgc2ltdWxhdGVQcmVzc3VyZTogZXZlbnQucHJlc3N1cmUgPT09IDAuNSxcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKChwcmV2U3RhdGUpID0+ICh7XFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudElkczogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcmV2U3RhdGUuc2VsZWN0ZWRFbGVtZW50SWRzKSwgeyBbZWxlbWVudC5pZF06IGZhbHNlIH0pLFxcbiAgICAgICAgICAgIH0pKTtcXG4gICAgICAgICAgICBjb25zdCBwcmVzc3VyZXMgPSBlbGVtZW50LnNpbXVsYXRlUHJlc3N1cmVcXG4gICAgICAgICAgICAgICAgPyBlbGVtZW50LnByZXNzdXJlc1xcbiAgICAgICAgICAgICAgICA6IFsuLi5lbGVtZW50LnByZXNzdXJlcywgZXZlbnQucHJlc3N1cmVdO1xcbiAgICAgICAgICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE5X18ubXV0YXRlRWxlbWVudCkoZWxlbWVudCwge1xcbiAgICAgICAgICAgICAgICBwb2ludHM6IFtbMCwgMF1dLFxcbiAgICAgICAgICAgICAgICBwcmVzc3VyZXMsXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgY29uc3QgYm91bmRFbGVtZW50ID0gKDAsX2VsZW1lbnRfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5nZXRIb3ZlcmVkRWxlbWVudEZvckJpbmRpbmcpKHBvaW50ZXJEb3duU3RhdGUub3JpZ2luLCB0aGlzLnNjZW5lKTtcXG4gICAgICAgICAgICB0aGlzLnNjZW5lLnJlcGxhY2VBbGxFbGVtZW50cyhbXFxuICAgICAgICAgICAgICAgIC4uLnRoaXMuc2NlbmUuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCksXFxuICAgICAgICAgICAgICAgIGVsZW1lbnQsXFxuICAgICAgICAgICAgXSk7XFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgIGRyYWdnaW5nRWxlbWVudDogZWxlbWVudCxcXG4gICAgICAgICAgICAgICAgZWRpdGluZ0VsZW1lbnQ6IGVsZW1lbnQsXFxuICAgICAgICAgICAgICAgIHN0YXJ0Qm91bmRFbGVtZW50OiBib3VuZEVsZW1lbnQsXFxuICAgICAgICAgICAgICAgIHN1Z2dlc3RlZEJpbmRpbmdzOiBbXSxcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmNyZWF0ZUltYWdlRWxlbWVudCA9ICh7IHNjZW5lWCwgc2NlbmVZLCB9KSA9PiB7XFxuICAgICAgICAgICAgY29uc3QgW2dyaWRYLCBncmlkWV0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjdfXy5nZXRHcmlkUG9pbnQpKHNjZW5lWCwgc2NlbmVZLCB0aGlzLnN0YXRlLmdyaWRTaXplKTtcXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18ubmV3SW1hZ2VFbGVtZW50KSh7XFxuICAgICAgICAgICAgICAgIHR5cGU6IFxcXCJpbWFnZVxcXCIsXFxuICAgICAgICAgICAgICAgIHg6IGdyaWRYLFxcbiAgICAgICAgICAgICAgICB5OiBncmlkWSxcXG4gICAgICAgICAgICAgICAgc3Ryb2tlQ29sb3I6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1TdHJva2VDb2xvcixcXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtQmFja2dyb3VuZENvbG9yLFxcbiAgICAgICAgICAgICAgICBmaWxsU3R5bGU6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1GaWxsU3R5bGUsXFxuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtU3Ryb2tlV2lkdGgsXFxuICAgICAgICAgICAgICAgIHN0cm9rZVN0eWxlOiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtU3Ryb2tlU3R5bGUsXFxuICAgICAgICAgICAgICAgIHJvdWdobmVzczogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbVJvdWdobmVzcyxcXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbU9wYWNpdHksXFxuICAgICAgICAgICAgICAgIHN0cm9rZVNoYXJwbmVzczogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbUxpbmVhclN0cm9rZVNoYXJwbmVzcyxcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudDtcXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmhhbmRsZUxpbmVhckVsZW1lbnRPblBvaW50ZXJEb3duID0gKGV2ZW50LCBlbGVtZW50VHlwZSwgcG9pbnRlckRvd25TdGF0ZSkgPT4ge1xcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLm11bHRpRWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICBjb25zdCB7IG11bHRpRWxlbWVudCB9ID0gdGhpcy5zdGF0ZTtcXG4gICAgICAgICAgICAgICAgLy8gZmluYWxpemUgaWYgY29tcGxldGluZyBhIGxvb3BcXG4gICAgICAgICAgICAgICAgaWYgKG11bHRpRWxlbWVudC50eXBlID09PSBcXFwibGluZVxcXCIgJiZcXG4gICAgICAgICAgICAgICAgICAgICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yN19fLmlzUGF0aEFMb29wKShtdWx0aUVsZW1lbnQucG9pbnRzLCB0aGlzLnN0YXRlLnpvb20udmFsdWUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOV9fLm11dGF0ZUVsZW1lbnQpKG11bHRpRWxlbWVudCwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RDb21taXR0ZWRQb2ludDogbXVsdGlFbGVtZW50LnBvaW50c1ttdWx0aUVsZW1lbnQucG9pbnRzLmxlbmd0aCAtIDFdLFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbk1hbmFnZXIuZXhlY3V0ZUFjdGlvbihfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvbkZpbmFsaXplKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBjb25zdCB7IHg6IHJ4LCB5OiByeSwgbGFzdENvbW1pdHRlZFBvaW50IH0gPSBtdWx0aUVsZW1lbnQ7XFxuICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIGluc2lkZSBjb21taXQgem9uZSBcdTIxOTIgZmluYWxpemUgYXJyb3dcXG4gICAgICAgICAgICAgICAgaWYgKG11bHRpRWxlbWVudC5wb2ludHMubGVuZ3RoID4gMSAmJlxcbiAgICAgICAgICAgICAgICAgICAgbGFzdENvbW1pdHRlZFBvaW50ICYmXFxuICAgICAgICAgICAgICAgICAgICAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjdfXy5kaXN0YW5jZTJkKShwb2ludGVyRG93blN0YXRlLm9yaWdpbi54IC0gcngsIHBvaW50ZXJEb3duU3RhdGUub3JpZ2luLnkgLSByeSwgbGFzdENvbW1pdHRlZFBvaW50WzBdLCBsYXN0Q29tbWl0dGVkUG9pbnRbMV0pIDwgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5MSU5FX0NPTkZJUk1fVEhSRVNIT0xEKSB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbk1hbmFnZXIuZXhlY3V0ZUFjdGlvbihfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvbkZpbmFsaXplKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKChwcmV2U3RhdGUpID0+ICh7XFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRJZHM6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldlN0YXRlLnNlbGVjdGVkRWxlbWVudElkcyksIHsgW211bHRpRWxlbWVudC5pZF06IHRydWUgfSksXFxuICAgICAgICAgICAgICAgIH0pKTtcXG4gICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSBjb21taXQgem9uZSBcdTIxOTIgdXBkYXRlIHJlZmVyZW5jZSBmb3IgbGFzdCBjb21taXR0ZWRcXG4gICAgICAgICAgICAgICAgLy8gcG9pbnRcXG4gICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTlfXy5tdXRhdGVFbGVtZW50KShtdWx0aUVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgICAgIGxhc3RDb21taXR0ZWRQb2ludDogbXVsdGlFbGVtZW50LnBvaW50c1ttdWx0aUVsZW1lbnQucG9pbnRzLmxlbmd0aCAtIDFdLFxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnNldEN1cnNvcikodGhpcy5jYW52YXMsIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uQ1VSU09SX1RZUEUuUE9JTlRFUik7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICBjb25zdCBbZ3JpZFgsIGdyaWRZXSA9ICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yN19fLmdldEdyaWRQb2ludCkocG9pbnRlckRvd25TdGF0ZS5vcmlnaW4ueCwgcG9pbnRlckRvd25TdGF0ZS5vcmlnaW4ueSwgdGhpcy5zdGF0ZS5ncmlkU2l6ZSk7XFxuICAgICAgICAgICAgICAgIC8qIElmIGFycm93IGlzIHByZS1hcnJvd2hlYWRzLCBpdCB3aWxsIGhhdmUgdW5kZWZpbmVkIGZvciBib3RoIHN0YXJ0IGFuZCBlbmQgYXJyb3doZWFkcy5cXG4gICAgICAgICAgICAgICAgSWYgc28sIHdlIHdhbnQgaXQgdG8gYmUgbnVsbCBmb3Igc3RhcnQgYW5kIFxcXCJhcnJvd1xcXCIgZm9yIGVuZC4gSWYgdGhlIGxpbmVhciBpdGVtIGlzIG5vdFxcbiAgICAgICAgICAgICAgICBhbiBhcnJvdywgd2Ugd2FudCBpdCB0byBiZSBudWxsIGZvciBib3RoLiBPdGhlcndpc2UsIHdlIHdhbnQgaXQgdG8gdXNlIHRoZVxcbiAgICAgICAgICAgICAgICB2YWx1ZXMgZnJvbSBhcHBTdGF0ZS4gKi9cXG4gICAgICAgICAgICAgICAgY29uc3QgeyBjdXJyZW50SXRlbVN0YXJ0QXJyb3doZWFkLCBjdXJyZW50SXRlbUVuZEFycm93aGVhZCB9ID0gdGhpcy5zdGF0ZTtcXG4gICAgICAgICAgICAgICAgY29uc3QgW3N0YXJ0QXJyb3doZWFkLCBlbmRBcnJvd2hlYWRdID0gZWxlbWVudFR5cGUgPT09IFxcXCJhcnJvd1xcXCJcXG4gICAgICAgICAgICAgICAgICAgID8gW2N1cnJlbnRJdGVtU3RhcnRBcnJvd2hlYWQsIGN1cnJlbnRJdGVtRW5kQXJyb3doZWFkXVxcbiAgICAgICAgICAgICAgICAgICAgOiBbbnVsbCwgbnVsbF07XFxuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5uZXdMaW5lYXJFbGVtZW50KSh7XFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBlbGVtZW50VHlwZSxcXG4gICAgICAgICAgICAgICAgICAgIHg6IGdyaWRYLFxcbiAgICAgICAgICAgICAgICAgICAgeTogZ3JpZFksXFxuICAgICAgICAgICAgICAgICAgICBzdHJva2VDb2xvcjogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbVN0cm9rZUNvbG9yLFxcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtQmFja2dyb3VuZENvbG9yLFxcbiAgICAgICAgICAgICAgICAgICAgZmlsbFN0eWxlOiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtRmlsbFN0eWxlLFxcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1TdHJva2VXaWR0aCxcXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZVN0eWxlOiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtU3Ryb2tlU3R5bGUsXFxuICAgICAgICAgICAgICAgICAgICByb3VnaG5lc3M6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1Sb3VnaG5lc3MsXFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtT3BhY2l0eSxcXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZVNoYXJwbmVzczogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbUxpbmVhclN0cm9rZVNoYXJwbmVzcyxcXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0QXJyb3doZWFkLFxcbiAgICAgICAgICAgICAgICAgICAgZW5kQXJyb3doZWFkLFxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSgocHJldlN0YXRlKSA9PiAoe1xcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50SWRzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHByZXZTdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHMpLCB7IFtlbGVtZW50LmlkXTogZmFsc2UgfSksXFxuICAgICAgICAgICAgICAgIH0pKTtcXG4gICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTlfXy5tdXRhdGVFbGVtZW50KShlbGVtZW50LCB7XFxuICAgICAgICAgICAgICAgICAgICBwb2ludHM6IFsuLi5lbGVtZW50LnBvaW50cywgWzAsIDBdXSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGJvdW5kRWxlbWVudCA9ICgwLF9lbGVtZW50X2JpbmRpbmdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE3X18uZ2V0SG92ZXJlZEVsZW1lbnRGb3JCaW5kaW5nKShwb2ludGVyRG93blN0YXRlLm9yaWdpbiwgdGhpcy5zY2VuZSk7XFxuICAgICAgICAgICAgICAgIHRoaXMuc2NlbmUucmVwbGFjZUFsbEVsZW1lbnRzKFtcXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuc2NlbmUuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCksXFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LFxcbiAgICAgICAgICAgICAgICBdKTtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgICAgICBkcmFnZ2luZ0VsZW1lbnQ6IGVsZW1lbnQsXFxuICAgICAgICAgICAgICAgICAgICBlZGl0aW5nRWxlbWVudDogZWxlbWVudCxcXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0Qm91bmRFbGVtZW50OiBib3VuZEVsZW1lbnQsXFxuICAgICAgICAgICAgICAgICAgICBzdWdnZXN0ZWRCaW5kaW5nczogW10sXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmNyZWF0ZUdlbmVyaWNFbGVtZW50T25Qb2ludGVyRG93biA9IChlbGVtZW50VHlwZSwgcG9pbnRlckRvd25TdGF0ZSkgPT4ge1xcbiAgICAgICAgICAgIGNvbnN0IFtncmlkWCwgZ3JpZFldID0gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI3X18uZ2V0R3JpZFBvaW50KShwb2ludGVyRG93blN0YXRlLm9yaWdpbi54LCBwb2ludGVyRG93blN0YXRlLm9yaWdpbi55LCB0aGlzLnN0YXRlLmdyaWRTaXplKTtcXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18ubmV3RWxlbWVudCkoe1xcbiAgICAgICAgICAgICAgICB0eXBlOiBlbGVtZW50VHlwZSxcXG4gICAgICAgICAgICAgICAgeDogZ3JpZFgsXFxuICAgICAgICAgICAgICAgIHk6IGdyaWRZLFxcbiAgICAgICAgICAgICAgICBzdHJva2VDb2xvcjogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbVN0cm9rZUNvbG9yLFxcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1CYWNrZ3JvdW5kQ29sb3IsXFxuICAgICAgICAgICAgICAgIGZpbGxTdHlsZTogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbUZpbGxTdHlsZSxcXG4gICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1TdHJva2VXaWR0aCxcXG4gICAgICAgICAgICAgICAgc3Ryb2tlU3R5bGU6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1TdHJva2VTdHlsZSxcXG4gICAgICAgICAgICAgICAgcm91Z2huZXNzOiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtUm91Z2huZXNzLFxcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtT3BhY2l0eSxcXG4gICAgICAgICAgICAgICAgc3Ryb2tlU2hhcnBuZXNzOiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtU3Ryb2tlU2hhcnBuZXNzLFxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IFxcXCJzZWxlY3Rpb25cXFwiKSB7XFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uRWxlbWVudDogZWxlbWVudCxcXG4gICAgICAgICAgICAgICAgICAgIGRyYWdnaW5nRWxlbWVudDogZWxlbWVudCxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICB0aGlzLnNjZW5lLnJlcGxhY2VBbGxFbGVtZW50cyhbXFxuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnNjZW5lLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpLFxcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCxcXG4gICAgICAgICAgICAgICAgXSk7XFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlFbGVtZW50OiBudWxsLFxcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dpbmdFbGVtZW50OiBlbGVtZW50LFxcbiAgICAgICAgICAgICAgICAgICAgZWRpdGluZ0VsZW1lbnQ6IGVsZW1lbnQsXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmluaXRpYWxpemVJbWFnZSA9ICh7IGltYWdlRmlsZSwgaW1hZ2VFbGVtZW50OiBfaW1hZ2VFbGVtZW50LCBzaG93Q3Vyc29ySW1hZ2VQcmV2aWV3ID0gZmFsc2UsIH0pID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgICAgICAgICB2YXIgX2QsIF9lLCBfZiwgX2c7XFxuICAgICAgICAgICAgLy8gYXQgdGhpcyBwb2ludCB0aGlzIHNob3VsZCBiZSBndWFyYW50ZWVkIGltYWdlIGZpbGUsIGJ1dCB3ZSBkbyB0aGlzIGNoZWNrXFxuICAgICAgICAgICAgLy8gdG8gc2F0aXNmeSBUUyBkb3duIHRoZSBsaW5lXFxuICAgICAgICAgICAgaWYgKCEoMCxfZGF0YV9ibG9iX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80MF9fLmlzU3VwcG9ydGVkSW1hZ2VGaWxlKShpbWFnZUZpbGUpKSB7XFxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjVfXy50KShcXFwiZXJyb3JzLnVuc3VwcG9ydGVkRmlsZVR5cGVcXFwiKSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnN0IG1pbWVUeXBlID0gaW1hZ2VGaWxlLnR5cGU7XFxuICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnNldEN1cnNvcikodGhpcy5jYW52YXMsIFxcXCJ3YWl0XFxcIik7XFxuICAgICAgICAgICAgaWYgKG1pbWVUeXBlID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLk1JTUVfVFlQRVMuc3ZnKSB7XFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICBpbWFnZUZpbGUgPSAoMCxfZGF0YV9ibG9iX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80MF9fLlNWR1N0cmluZ1RvRmlsZSkoeWllbGQgKDAsX2VsZW1lbnRfaW1hZ2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQxX18ubm9ybWFsaXplU1ZHKSh5aWVsZCBpbWFnZUZpbGUudGV4dCgpKSwgaW1hZ2VGaWxlLm5hbWUpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGVycm9yKTtcXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjVfXy50KShcXFwiZXJyb3JzLnN2Z0ltYWdlSW5zZXJ0RXJyb3JcXFwiKSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgLy8gZ2VuZXJhdGUgaW1hZ2UgaWQgKGJ5IGRlZmF1bHQgdGhlIGZpbGUgZGlnZXN0KSBiZWZvcmUgYW55XFxuICAgICAgICAgICAgLy8gcmVzaXppbmcvY29tcHJlc3Npb24gdGFrZXMgcGxhY2UgdG8ga2VlcCBpdCBtb3JlIHBvcnRhYmxlXFxuICAgICAgICAgICAgY29uc3QgZmlsZUlkID0geWllbGQgKCgoX2UgPSAoX2QgPSB0aGlzLnByb3BzKS5nZW5lcmF0ZUlkRm9yRmlsZSkgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLmNhbGwoX2QsIGltYWdlRmlsZSkpIHx8ICgwLF9kYXRhX2Jsb2JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQwX18uZ2VuZXJhdGVJZEZyb21GaWxlKShpbWFnZUZpbGUpKTtcXG4gICAgICAgICAgICBpZiAoIWZpbGVJZCkge1xcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXFxcIkNvdWxkbid0IGdlbmVyYXRlIGZpbGUgaWQgb3IgdGhlIHN1cHBsaWVkIGBnZW5lcmF0ZUlkRm9yRmlsZWAgZGlkbid0IHJlc29sdmUgdG8gb25lLlxcXCIpO1xcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI1X18udCkoXFxcImVycm9ycy5pbWFnZUluc2VydEVycm9yXFxcIikpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ0ZpbGVEYXRhID0gdGhpcy5maWxlc1tmaWxlSWRdO1xcbiAgICAgICAgICAgIGlmICghKGV4aXN0aW5nRmlsZURhdGEgPT09IG51bGwgfHwgZXhpc3RpbmdGaWxlRGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhpc3RpbmdGaWxlRGF0YS5kYXRhVVJMKSkge1xcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VGaWxlID0geWllbGQgKDAsX2RhdGFfYmxvYl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNDBfXy5yZXNpemVJbWFnZUZpbGUpKGltYWdlRmlsZSwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heFdpZHRoT3JIZWlnaHQ6IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uREVGQVVMVF9NQVhfSU1BR0VfV0lEVEhfT1JfSEVJR0hULFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxcXCJlcnJvciB0cnlpbmcgdG8gcmVzaW5nIGltYWdlIGZpbGUgb24gaW5zZXJ0aW9uXFxcIiwgZXJyb3IpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGlmIChpbWFnZUZpbGUuc2l6ZSA+IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uTUFYX0FMTE9XRURfRklMRV9CWVRFUykge1xcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNV9fLnQpKFxcXCJlcnJvcnMuZmlsZVRvb0JpZ1xcXCIsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhTaXplOiBgJHtNYXRoLnRydW5jKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uTUFYX0FMTE9XRURfRklMRV9CWVRFUyAvIDEwMjQgLyAxMDI0KX1NQmAsXFxuICAgICAgICAgICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHNob3dDdXJzb3JJbWFnZVByZXZpZXcpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YVVSTCA9IChfZiA9IHRoaXMuZmlsZXNbZmlsZUlkXSkgPT09IG51bGwgfHwgX2YgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9mLmRhdGFVUkw7XFxuICAgICAgICAgICAgICAgIC8vIG9wdGltaXphdGlvbiBzbyB0aGF0IHdlIGRvbid0IHVubmVjZXNzYXJpbHkgcmVzaXplIHRoZSBvcmlnaW5hbFxcbiAgICAgICAgICAgICAgICAvLyBmdWxsLXNpemUgZmlsZSBmb3IgY3Vyc29yIHByZXZpZXdcXG4gICAgICAgICAgICAgICAgLy8gKGl0J3MgbXVjaCBmYXN0ZXIgdG8gY29udmVydCB0aGUgcmVzaXplZCBkYXRhVVJMIHRvIEZpbGUpXFxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc2l6ZWRGaWxlID0gZGF0YVVSTCAmJiAoMCxfZGF0YV9ibG9iX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80MF9fLmRhdGFVUkxUb0ZpbGUpKGRhdGFVUkwpO1xcbiAgICAgICAgICAgICAgICB0aGlzLnNldEltYWdlUHJldmlld0N1cnNvcihyZXNpemVkRmlsZSB8fCBpbWFnZUZpbGUpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjb25zdCBkYXRhVVJMID0gKChfZyA9IHRoaXMuZmlsZXNbZmlsZUlkXSkgPT09IG51bGwgfHwgX2cgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9nLmRhdGFVUkwpIHx8ICh5aWVsZCAoMCxfZGF0YV9ibG9iX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80MF9fLmdldERhdGFVUkwpKGltYWdlRmlsZSkpO1xcbiAgICAgICAgICAgIGNvbnN0IGltYWdlRWxlbWVudCA9ICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE5X18ubXV0YXRlRWxlbWVudCkoX2ltYWdlRWxlbWVudCwge1xcbiAgICAgICAgICAgICAgICBmaWxlSWQsXFxuICAgICAgICAgICAgfSwgZmFsc2UpO1xcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XFxuICAgICAgICAgICAgICAgIHZhciBfaCwgX2o7XFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0aGlzLmZpbGVzKSwgeyBbZmlsZUlkXToge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW1lVHlwZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGZpbGVJZCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVVSTCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZDogRGF0ZS5ub3coKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IH0pO1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FjaGVkSW1hZ2VEYXRhID0gdGhpcy5pbWFnZUNhY2hlLmdldChmaWxlSWQpO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjYWNoZWRJbWFnZURhdGEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZE5ld0ltYWdlc1RvSW1hZ2VDYWNoZSgpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoaXMudXBkYXRlSW1hZ2VDYWNoZShbaW1hZ2VFbGVtZW50XSk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBpZiAoKGNhY2hlZEltYWdlRGF0YSA9PT0gbnVsbCB8fCBjYWNoZWRJbWFnZURhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNhY2hlZEltYWdlRGF0YS5pbWFnZSkgaW5zdGFuY2VvZiBQcm9taXNlKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgY2FjaGVkSW1hZ2VEYXRhLmltYWdlO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgaWYgKCgoX2ggPSB0aGlzLnN0YXRlLnBlbmRpbmdJbWFnZUVsZW1lbnQpID09PSBudWxsIHx8IF9oID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfaC5pZCkgIT09IGltYWdlRWxlbWVudC5pZCAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgICgoX2ogPSB0aGlzLnN0YXRlLmRyYWdnaW5nRWxlbWVudCkgPT09IG51bGwgfHwgX2ogPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9qLmlkKSAhPT0gaW1hZ2VFbGVtZW50LmlkKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplSW1hZ2VEaW1lbnNpb25zKGltYWdlRWxlbWVudCwgdHJ1ZSk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGltYWdlRWxlbWVudCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI1X18udCkoXFxcImVycm9ycy5pbWFnZUluc2VydEVycm9yXFxcIikpKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBmaW5hbGx5IHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICghc2hvd0N1cnNvckltYWdlUHJldmlldykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5yZXNldEN1cnNvcikodGhpcy5jYW52YXMpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSkpO1xcbiAgICAgICAgfSk7XFxuICAgICAgICAvKipcXG4gICAgICAgICAqIGluc2VydHMgaW1hZ2UgaW50byBlbGVtZW50cyBhcnJheSBhbmQgcmVyZW5kZXJzXFxuICAgICAgICAgKi9cXG4gICAgICAgIHRoaXMuaW5zZXJ0SW1hZ2VFbGVtZW50ID0gKGltYWdlRWxlbWVudCwgaW1hZ2VGaWxlLCBzaG93Q3Vyc29ySW1hZ2VQcmV2aWV3KSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XFxuICAgICAgICAgICAgdGhpcy5zY2VuZS5yZXBsYWNlQWxsRWxlbWVudHMoW1xcbiAgICAgICAgICAgICAgICAuLi50aGlzLnNjZW5lLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpLFxcbiAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQsXFxuICAgICAgICAgICAgXSk7XFxuICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgeWllbGQgdGhpcy5pbml0aWFsaXplSW1hZ2Uoe1xcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VGaWxlLFxcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LFxcbiAgICAgICAgICAgICAgICAgICAgc2hvd0N1cnNvckltYWdlUHJldmlldyxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgICAgICAgICAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOV9fLm11dGF0ZUVsZW1lbnQpKGltYWdlRWxlbWVudCwge1xcbiAgICAgICAgICAgICAgICAgICAgaXNEZWxldGVkOiB0cnVlLFxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25NYW5hZ2VyLmV4ZWN1dGVBY3Rpb24oX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25GaW5hbGl6ZSk7XFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBlcnJvci5tZXNzYWdlIHx8ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNV9fLnQpKFxcXCJlcnJvcnMuaW1hZ2VJbnNlcnRFcnJvclxcXCIpLFxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KTtcXG4gICAgICAgIHRoaXMuc2V0SW1hZ2VQcmV2aWV3Q3Vyc29yID0gKGltYWdlRmlsZSkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICAgICAgICAgIC8vIG11c3RuJ3QgYmUgbGFyZ2VyIHRoYW4gMTI4IHB4XFxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0NTU19CYXNpY19Vc2VyX0ludGVyZmFjZS9Vc2luZ19VUkxfdmFsdWVzX2Zvcl90aGVfY3Vyc29yX3Byb3BlcnR5XFxuICAgICAgICAgICAgY29uc3QgY3Vyc29ySW1hZ2VTaXplUHggPSA5NjtcXG4gICAgICAgICAgICBjb25zdCBpbWFnZVByZXZpZXcgPSB5aWVsZCAoMCxfZGF0YV9ibG9iX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80MF9fLnJlc2l6ZUltYWdlRmlsZSkoaW1hZ2VGaWxlLCB7XFxuICAgICAgICAgICAgICAgIG1heFdpZHRoT3JIZWlnaHQ6IGN1cnNvckltYWdlU2l6ZVB4LFxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIGxldCBwcmV2aWV3RGF0YVVSTCA9IHlpZWxkICgwLF9kYXRhX2Jsb2JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQwX18uZ2V0RGF0YVVSTCkoaW1hZ2VQcmV2aWV3KTtcXG4gICAgICAgICAgICAvLyBTVkcgY2Fubm90IGJlIHJlc2l6ZWQgdmlhIGByZXNpemVJbWFnZUZpbGVgIHNvIHdlIHJlc2l6ZSBieSByZW5kZXJpbmcgdG9cXG4gICAgICAgICAgICAvLyBhIHNtYWxsIGNhbnZhc1xcbiAgICAgICAgICAgIGlmIChpbWFnZUZpbGUudHlwZSA9PT0gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5NSU1FX1RZUEVTLnN2Zykge1xcbiAgICAgICAgICAgICAgICBjb25zdCBpbWcgPSB5aWVsZCAoMCxfZWxlbWVudF9pbWFnZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNDFfXy5sb2FkSFRNTEltYWdlRWxlbWVudCkocHJldmlld0RhdGFVUkwpO1xcbiAgICAgICAgICAgICAgICBsZXQgaGVpZ2h0ID0gTWF0aC5taW4oaW1nLmhlaWdodCwgY3Vyc29ySW1hZ2VTaXplUHgpO1xcbiAgICAgICAgICAgICAgICBsZXQgd2lkdGggPSBoZWlnaHQgKiAoaW1nLndpZHRoIC8gaW1nLmhlaWdodCk7XFxuICAgICAgICAgICAgICAgIGlmICh3aWR0aCA+IGN1cnNvckltYWdlU2l6ZVB4KSB7XFxuICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IGN1cnNvckltYWdlU2l6ZVB4O1xcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0ID0gd2lkdGggKiAoaW1nLmhlaWdodCAvIGltZy53aWR0aCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcXFwiY2FudmFzXFxcIik7XFxuICAgICAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XFxuICAgICAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoO1xcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoXFxcIjJkXFxcIik7XFxuICAgICAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltZywgMCwgMCwgd2lkdGgsIGhlaWdodCk7XFxuICAgICAgICAgICAgICAgIHByZXZpZXdEYXRhVVJMID0gY2FudmFzLnRvRGF0YVVSTChfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLk1JTUVfVFlQRVMuc3ZnKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUucGVuZGluZ0ltYWdlRWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uc2V0Q3Vyc29yKSh0aGlzLmNhbnZhcywgYHVybCgke3ByZXZpZXdEYXRhVVJMfSkgNCA0LCBhdXRvYCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgICAgICB0aGlzLm9uSW1hZ2VBY3Rpb24gPSAoeyBpbnNlcnRPbkNhbnZhc0RpcmVjdGx5IH0gPSB7IGluc2VydE9uQ2FudmFzRGlyZWN0bHk6IGZhbHNlIH0pID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBjbGllbnRYID0gdGhpcy5zdGF0ZS53aWR0aCAvIDIgKyB0aGlzLnN0YXRlLm9mZnNldExlZnQ7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGNsaWVudFkgPSB0aGlzLnN0YXRlLmhlaWdodCAvIDIgKyB0aGlzLnN0YXRlLm9mZnNldFRvcDtcXG4gICAgICAgICAgICAgICAgY29uc3QgeyB4LCB5IH0gPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18udmlld3BvcnRDb29yZHNUb1NjZW5lQ29vcmRzKSh7IGNsaWVudFgsIGNsaWVudFkgfSwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlRmlsZSA9IHlpZWxkICgwLF9kYXRhX2ZpbGVzeXN0ZW1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQzX18uZmlsZU9wZW4pKHtcXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcXFwiSW1hZ2VcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogW1xcXCJqcGdcXFwiLCBcXFwicG5nXFxcIiwgXFxcInN2Z1xcXCIsIFxcXCJnaWZcXFwiXSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlRWxlbWVudCA9IHRoaXMuY3JlYXRlSW1hZ2VFbGVtZW50KHtcXG4gICAgICAgICAgICAgICAgICAgIHNjZW5lWDogeCxcXG4gICAgICAgICAgICAgICAgICAgIHNjZW5lWTogeSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIGlmIChpbnNlcnRPbkNhbnZhc0RpcmVjdGx5KSB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydEltYWdlRWxlbWVudChpbWFnZUVsZW1lbnQsIGltYWdlRmlsZSk7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVJbWFnZURpbWVuc2lvbnMoaW1hZ2VFbGVtZW50KTtcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudElkczogeyBbaW1hZ2VFbGVtZW50LmlkXTogdHJ1ZSB9LFxcbiAgICAgICAgICAgICAgICAgICAgfSwgKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uTWFuYWdlci5leGVjdXRlQWN0aW9uKF9hY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYWN0aW9uRmluYWxpemUpO1xcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nSW1hZ2VFbGVtZW50OiBpbWFnZUVsZW1lbnQsXFxuICAgICAgICAgICAgICAgICAgICB9LCAoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRJbWFnZUVsZW1lbnQoaW1hZ2VFbGVtZW50LCBpbWFnZUZpbGUsIFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNob3dDdXJzb3JJbWFnZVByZXZpZXcgKi8gdHJ1ZSk7XFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yLm5hbWUgIT09IFxcXCJBYm9ydEVycm9yXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyb3IpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICAgICAgcGVuZGluZ0ltYWdlRWxlbWVudDogbnVsbCxcXG4gICAgICAgICAgICAgICAgICAgIGVkaXRpbmdFbGVtZW50OiBudWxsLFxcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFR5cGU6IFxcXCJzZWxlY3Rpb25cXFwiLFxcbiAgICAgICAgICAgICAgICB9LCAoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbk1hbmFnZXIuZXhlY3V0ZUFjdGlvbihfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvbkZpbmFsaXplKTtcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgICAgICB0aGlzLmluaXRpYWxpemVJbWFnZURpbWVuc2lvbnMgPSAoaW1hZ2VFbGVtZW50LCBmb3JjZU5hdHVyYWxTaXplID0gZmFsc2UpID0+IHtcXG4gICAgICAgICAgICB2YXIgX2E7XFxuICAgICAgICAgICAgY29uc3QgaW1hZ2UgPSAoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMV9fLmlzSW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnQpKGltYWdlRWxlbWVudCkgJiZcXG4gICAgICAgICAgICAgICAgKChfYSA9IHRoaXMuaW1hZ2VDYWNoZS5nZXQoaW1hZ2VFbGVtZW50LmZpbGVJZCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pbWFnZSk7XFxuICAgICAgICAgICAgaWYgKCFpbWFnZSB8fCBpbWFnZSBpbnN0YW5jZW9mIFByb21pc2UpIHtcXG4gICAgICAgICAgICAgICAgaWYgKGltYWdlRWxlbWVudC53aWR0aCA8IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRFJBR0dJTkdfVEhSRVNIT0xEIC8gdGhpcy5zdGF0ZS56b29tLnZhbHVlICYmXFxuICAgICAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaGVpZ2h0IDwgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5EUkFHR0lOR19USFJFU0hPTEQgLyB0aGlzLnN0YXRlLnpvb20udmFsdWUpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyU2l6ZSA9IDEwMCAvIHRoaXMuc3RhdGUuem9vbS52YWx1ZTtcXG4gICAgICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE5X18ubXV0YXRlRWxlbWVudCkoaW1hZ2VFbGVtZW50LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgeDogaW1hZ2VFbGVtZW50LnggLSBwbGFjZWhvbGRlclNpemUgLyAyLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHk6IGltYWdlRWxlbWVudC55IC0gcGxhY2Vob2xkZXJTaXplIC8gMixcXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcGxhY2Vob2xkZXJTaXplLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogcGxhY2Vob2xkZXJTaXplLFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoZm9yY2VOYXR1cmFsU2l6ZSB8fFxcbiAgICAgICAgICAgICAgICAvLyBpZiB1c2VyLWNyZWF0ZWQgYm91bmRpbmcgYm94IGlzIGJlbG93IHRocmVzaG9sZCwgYXNzdW1lIHRoZVxcbiAgICAgICAgICAgICAgICAvLyBpbnRlbnRpb24gd2FzIHRvIGNsaWNrIGluc3RlYWQgb2YgZHJhZywgYW5kIHVzZSB0aGUgaW1hZ2Unc1xcbiAgICAgICAgICAgICAgICAvLyBpbnRyaW5zaWMgc2l6ZVxcbiAgICAgICAgICAgICAgICAoaW1hZ2VFbGVtZW50LndpZHRoIDwgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5EUkFHR0lOR19USFJFU0hPTEQgLyB0aGlzLnN0YXRlLnpvb20udmFsdWUgJiZcXG4gICAgICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5oZWlnaHQgPCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkRSQUdHSU5HX1RIUkVTSE9MRCAvIHRoaXMuc3RhdGUuem9vbS52YWx1ZSkpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgbWluSGVpZ2h0ID0gTWF0aC5tYXgodGhpcy5zdGF0ZS5oZWlnaHQgLSAxMjAsIDE2MCk7XFxuICAgICAgICAgICAgICAgIC8vIG1heCA2NSUgb2YgY2FudmFzIGhlaWdodCwgY2xhbXBlZCB0byA8MzAwcHgsIHZoIC0gMTIwcHg+XFxuICAgICAgICAgICAgICAgIGNvbnN0IG1heEhlaWdodCA9IE1hdGgubWluKG1pbkhlaWdodCwgTWF0aC5mbG9vcih0aGlzLnN0YXRlLmhlaWdodCAqIDAuNSkgLyB0aGlzLnN0YXRlLnpvb20udmFsdWUpO1xcbiAgICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBNYXRoLm1pbihpbWFnZS5uYXR1cmFsSGVpZ2h0LCBtYXhIZWlnaHQpO1xcbiAgICAgICAgICAgICAgICBjb25zdCB3aWR0aCA9IGhlaWdodCAqIChpbWFnZS5uYXR1cmFsV2lkdGggLyBpbWFnZS5uYXR1cmFsSGVpZ2h0KTtcXG4gICAgICAgICAgICAgICAgLy8gYWRkIGN1cnJlbnQgaW1hZ2VFbGVtZW50IHdpZHRoL2hlaWdodCB0byBhY2NvdW50IGZvciBwcmV2aW91cyBjZW50ZXJpbmdcXG4gICAgICAgICAgICAgICAgLy8gb2YgdGhlIHBsYWNob2xkZXIgaW1hZ2VcXG4gICAgICAgICAgICAgICAgY29uc3QgeCA9IGltYWdlRWxlbWVudC54ICsgaW1hZ2VFbGVtZW50LndpZHRoIC8gMiAtIHdpZHRoIC8gMjtcXG4gICAgICAgICAgICAgICAgY29uc3QgeSA9IGltYWdlRWxlbWVudC55ICsgaW1hZ2VFbGVtZW50LmhlaWdodCAvIDIgLSBoZWlnaHQgLyAyO1xcbiAgICAgICAgICAgICAgICAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOV9fLm11dGF0ZUVsZW1lbnQpKGltYWdlRWxlbWVudCwgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICAvKiogdXBkYXRlcyBpbWFnZSBjYWNoZSwgcmVmcmVzaGluZyB1cGRhdGVkIGVsZW1lbnRzIGFuZC9vciBzZXR0aW5nIHN0YXR1c1xcbiAgICAgICAgICAgIHRvIGVycm9yIGZvciBpbWFnZXMgdGhhdCBmYWlsIGR1cmluZyA8aW1nPiBlbGVtZW50IGNyZWF0aW9uICovXFxuICAgICAgICB0aGlzLnVwZGF0ZUltYWdlQ2FjaGUgPSAoZWxlbWVudHMsIGZpbGVzID0gdGhpcy5maWxlcykgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICAgICAgICAgIGNvbnN0IHsgdXBkYXRlZEZpbGVzLCBlcnJvcmVkRmlsZXMgfSA9IHlpZWxkICgwLF9lbGVtZW50X2ltYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80MV9fLnVwZGF0ZUltYWdlQ2FjaGUpKHtcXG4gICAgICAgICAgICAgICAgaW1hZ2VDYWNoZTogdGhpcy5pbWFnZUNhY2hlLFxcbiAgICAgICAgICAgICAgICBmaWxlSWRzOiBlbGVtZW50cy5tYXAoKGVsZW1lbnQpID0+IGVsZW1lbnQuZmlsZUlkKSxcXG4gICAgICAgICAgICAgICAgZmlsZXMsXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgaWYgKHVwZGF0ZWRGaWxlcy5zaXplIHx8IGVycm9yZWRGaWxlcy5zaXplKSB7XFxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBlbGVtZW50cykge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRGaWxlcy5oYXMoZWxlbWVudC5maWxlSWQpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgKDAsX3JlbmRlcmVyX3JlbmRlckVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI5X18uaW52YWxpZGF0ZVNoYXBlRm9yRWxlbWVudCkoZWxlbWVudCk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKGVycm9yZWRGaWxlcy5zaXplKSB7XFxuICAgICAgICAgICAgICAgIHRoaXMuc2NlbmUucmVwbGFjZUFsbEVsZW1lbnRzKHRoaXMuc2NlbmUuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCkubWFwKChlbGVtZW50KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjFfXy5pc0luaXRpYWxpemVkSW1hZ2VFbGVtZW50KShlbGVtZW50KSAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yZWRGaWxlcy5oYXMoZWxlbWVudC5maWxlSWQpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE5X18ubmV3RWxlbWVudFdpdGgpKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBcXFwiZXJyb3JcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7XFxuICAgICAgICAgICAgICAgIH0pKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIHsgdXBkYXRlZEZpbGVzLCBlcnJvcmVkRmlsZXMgfTtcXG4gICAgICAgIH0pO1xcbiAgICAgICAgLyoqIGFkZHMgbmV3IGltYWdlcyB0byBpbWFnZUNhY2hlIGFuZCByZS1yZW5kZXJzIGlmIG5lZWRlZCAqL1xcbiAgICAgICAgdGhpcy5hZGROZXdJbWFnZXNUb0ltYWdlQ2FjaGUgPSAoaW1hZ2VFbGVtZW50cyA9ICgwLF9lbGVtZW50X2ltYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80MV9fLmdldEluaXRpYWxpemVkSW1hZ2VFbGVtZW50cykodGhpcy5zY2VuZS5nZXRFbGVtZW50cygpKSwgZmlsZXMgPSB0aGlzLmZpbGVzKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XFxuICAgICAgICAgICAgY29uc3QgdW5jYWNoZWRJbWFnZUVsZW1lbnRzID0gaW1hZ2VFbGVtZW50cy5maWx0ZXIoKGVsZW1lbnQpID0+ICFlbGVtZW50LmlzRGVsZXRlZCAmJiAhdGhpcy5pbWFnZUNhY2hlLmhhcyhlbGVtZW50LmZpbGVJZCkpO1xcbiAgICAgICAgICAgIGlmICh1bmNhY2hlZEltYWdlRWxlbWVudHMubGVuZ3RoKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHsgdXBkYXRlZEZpbGVzIH0gPSB5aWVsZCB0aGlzLnVwZGF0ZUltYWdlQ2FjaGUodW5jYWNoZWRJbWFnZUVsZW1lbnRzLCBmaWxlcyk7XFxuICAgICAgICAgICAgICAgIGlmICh1cGRhdGVkRmlsZXMuc2l6ZSkge1xcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY2VuZS5pbmZvcm1NdXRhdGlvbigpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgICAgICAvKiogZ2VuZXJhbGx5IHlvdSBzaG91bGQgdXNlIGBhZGROZXdJbWFnZXNUb0ltYWdlQ2FjaGUoKWAgZGlyZWN0bHkgaWYgeW91IG5lZWRcXG4gICAgICAgICAqICB0byByZW5kZXIgbmV3IGltYWdlcy4gVGhpcyBpcyBqdXN0IGEgZmFpbHNhZmUgICovXFxuICAgICAgICB0aGlzLnNjaGVkdWxlSW1hZ2VSZWZyZXNoID0gbG9kYXNoX3Rocm90dGxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80Ml9fX2RlZmF1bHQoKSgoKSA9PiB7XFxuICAgICAgICAgICAgdGhpcy5hZGROZXdJbWFnZXNUb0ltYWdlQ2FjaGUoKTtcXG4gICAgICAgIH0sIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uSU1BR0VfUkVOREVSX1RJTUVPVVQpO1xcbiAgICAgICAgdGhpcy51cGRhdGVCaW5kaW5nRW5hYmxlZE9uUG9pbnRlck1vdmUgPSAoZXZlbnQpID0+IHtcXG4gICAgICAgICAgICBjb25zdCBzaG91bGRFbmFibGVCaW5kaW5nID0gKDAsX2VsZW1lbnRfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5zaG91bGRFbmFibGVCaW5kaW5nRm9yUG9pbnRlckV2ZW50KShldmVudCk7XFxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuaXNCaW5kaW5nRW5hYmxlZCAhPT0gc2hvdWxkRW5hYmxlQmluZGluZykge1xcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNCaW5kaW5nRW5hYmxlZDogc2hvdWxkRW5hYmxlQmluZGluZyB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9O1xcbiAgICAgICAgdGhpcy5tYXliZVN1Z2dlc3RCaW5kaW5nQXRDdXJzb3IgPSAocG9pbnRlckNvb3JkcykgPT4ge1xcbiAgICAgICAgICAgIGNvbnN0IGhvdmVyZWRCaW5kYWJsZUVsZW1lbnQgPSAoMCxfZWxlbWVudF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xN19fLmdldEhvdmVyZWRFbGVtZW50Rm9yQmluZGluZykocG9pbnRlckNvb3JkcywgdGhpcy5zY2VuZSk7XFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgIHN1Z2dlc3RlZEJpbmRpbmdzOiBob3ZlcmVkQmluZGFibGVFbGVtZW50ICE9IG51bGwgPyBbaG92ZXJlZEJpbmRhYmxlRWxlbWVudF0gOiBbXSxcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLm1heWJlU3VnZ2VzdEJpbmRpbmdzRm9yTGluZWFyRWxlbWVudEF0Q29vcmRzID0gKGxpbmVhckVsZW1lbnQsIFxcbiAgICAgICAgLyoqIHNjZW5lIGNvb3JkcyAqL1xcbiAgICAgICAgcG9pbnRlckNvb3JkcywgXFxuICAgICAgICAvLyBEdXJpbmcgbGluZSBjcmVhdGlvbiB0aGUgc3RhcnQgYmluZGluZyBoYXNuJ3QgYmVlbiB3cml0dGVuIHlldFxcbiAgICAgICAgLy8gaW50byBgbGluZWFyRWxlbWVudGBcXG4gICAgICAgIG9wcG9zaXRlQmluZGluZ0JvdW5kRWxlbWVudCkgPT4ge1xcbiAgICAgICAgICAgIGlmICghcG9pbnRlckNvb3Jkcy5sZW5ndGgpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjb25zdCBzdWdnZXN0ZWRCaW5kaW5ncyA9IHBvaW50ZXJDb29yZHMucmVkdWNlKChhY2MsIGNvb3JkcykgPT4ge1xcbiAgICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkQmluZGFibGVFbGVtZW50ID0gKDAsX2VsZW1lbnRfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5nZXRIb3ZlcmVkRWxlbWVudEZvckJpbmRpbmcpKGNvb3JkcywgdGhpcy5zY2VuZSk7XFxuICAgICAgICAgICAgICAgIGlmIChob3ZlcmVkQmluZGFibGVFbGVtZW50ICE9IG51bGwgJiZcXG4gICAgICAgICAgICAgICAgICAgICEoMCxfZWxlbWVudF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xN19fLmlzTGluZWFyRWxlbWVudFNpbXBsZUFuZEFscmVhZHlCb3VuZCkobGluZWFyRWxlbWVudCwgb3Bwb3NpdGVCaW5kaW5nQm91bmRFbGVtZW50ID09PSBudWxsIHx8IG9wcG9zaXRlQmluZGluZ0JvdW5kRWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3Bwb3NpdGVCaW5kaW5nQm91bmRFbGVtZW50LmlkLCBob3ZlcmVkQmluZGFibGVFbGVtZW50KSkge1xcbiAgICAgICAgICAgICAgICAgICAgYWNjLnB1c2goaG92ZXJlZEJpbmRhYmxlRWxlbWVudCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcXG4gICAgICAgICAgICB9LCBbXSk7XFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHN1Z2dlc3RlZEJpbmRpbmdzIH0pO1xcbiAgICAgICAgfTtcXG4gICAgICAgIHRoaXMuaGFuZGxlQ2FudmFzUmVmID0gKGNhbnZhcykgPT4ge1xcbiAgICAgICAgICAgIHZhciBfYSwgX2IsIF9jO1xcbiAgICAgICAgICAgIC8vIGNhbnZhcyBpcyBudWxsIHdoZW4gdW5tb3VudGluZ1xcbiAgICAgICAgICAgIGlmIChjYW52YXMgIT09IG51bGwpIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5jYW52YXMgPSBjYW52YXM7XFxuICAgICAgICAgICAgICAgIHRoaXMucmMgPSByb3VnaGpzX2Jpbl9yb3VnaF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fW1xcXCJkZWZhdWx0XFxcIl0uY2FudmFzKHRoaXMuY2FudmFzKTtcXG4gICAgICAgICAgICAgICAgdGhpcy5jYW52YXMuYWRkRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULldIRUVMLCB0aGlzLmhhbmRsZVdoZWVsLCB7XFxuICAgICAgICAgICAgICAgICAgICBwYXNzaXZlOiBmYWxzZSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5UT1VDSF9TVEFSVCwgdGhpcy5vblRhcFN0YXJ0KTtcXG4gICAgICAgICAgICAgICAgdGhpcy5jYW52YXMuYWRkRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULlRPVUNIX0VORCwgdGhpcy5vblRhcEVuZCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAoX2EgPSB0aGlzLmNhbnZhcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5XSEVFTCwgdGhpcy5oYW5kbGVXaGVlbCk7XFxuICAgICAgICAgICAgICAgIChfYiA9IHRoaXMuY2FudmFzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IucmVtb3ZlRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULlRPVUNIX1NUQVJULCB0aGlzLm9uVGFwU3RhcnQpO1xcbiAgICAgICAgICAgICAgICAoX2MgPSB0aGlzLmNhbnZhcykgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5UT1VDSF9FTkQsIHRoaXMub25UYXBFbmQpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmhhbmRsZUFwcE9uRHJvcCA9IChldmVudCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICAgICAgICAgIHZhciBfaywgX2w7XFxuICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZSA9IGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlc1swXTtcXG4gICAgICAgICAgICAgICAgaWYgKCgwLF9kYXRhX2Jsb2JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQwX18uaXNTdXBwb3J0ZWRJbWFnZUZpbGUpKGZpbGUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAvLyBmaXJzdCBhdHRlbXB0IHRvIGRlY29kZSBzY2VuZSBmcm9tIHRoZSBpbWFnZSBpZiBpdCdzIGVtYmVkZGVkXFxuICAgICAgICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gICAgICAgICAgICAgICAgICAgIGlmICgoZmlsZSA9PT0gbnVsbCB8fCBmaWxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaWxlLnR5cGUpID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLk1JTUVfVFlQRVMucG5nIHx8IChmaWxlID09PSBudWxsIHx8IGZpbGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpbGUudHlwZSkgPT09IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uTUlNRV9UWVBFUy5zdmcpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2RhdGFfZmlsZXN5c3RlbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNDNfXy5uYXRpdmVGaWxlU3lzdGVtU3VwcG9ydGVkKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBvbmx5IHdvcmsgYXMgb2YgQ2hyb21lIDg2LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCBjYW4gYmUgc2FmZWx5IGlnbm9yZWQgb24gb2xkZXIgcmVsZWFzZXMuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGV2ZW50LmRhdGFUcmFuc2Zlci5pdGVtc1swXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLmhhbmRsZSA9IHlpZWxkIGl0ZW0uZ2V0QXNGaWxlU3lzdGVtSGFuZGxlKCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyb3IubmFtZSwgZXJyb3IubWVzc2FnZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2NlbmUgPSB5aWVsZCAoMCxfZGF0YV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5sb2FkRnJvbUJsb2IpKGZpbGUsIHRoaXMuc3RhdGUsIHRoaXMuc2NlbmUuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN5bmNBY3Rpb25SZXN1bHQoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzY2VuZSksIHsgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgKHNjZW5lLmFwcFN0YXRlIHx8IHRoaXMuc3RhdGUpKSwgeyBpc0xvYWRpbmc6IGZhbHNlIH0pLCByZXBsYWNlRmlsZXM6IHRydWUsIGNvbW1pdFRvSGlzdG9yeTogdHJ1ZSB9KSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvci5uYW1lICE9PSBcXFwiRW5jb2RpbmdFcnJvclxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgbm8gc2NlbmUgaXMgZW1iZWRkZWQgb3Igd2UgZmFpbCBmb3Igd2hhdGV2ZXIgcmVhc29uLCBmYWxsIGJhY2tcXG4gICAgICAgICAgICAgICAgICAgIC8vIHRvIGltcG9ydGluZyBhcyByZWd1bGFyIGltYWdlXFxuICAgICAgICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgeDogc2NlbmVYLCB5OiBzY2VuZVkgfSA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy52aWV3cG9ydENvb3Jkc1RvU2NlbmVDb29yZHMpKGV2ZW50LCB0aGlzLnN0YXRlKTtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlRWxlbWVudCA9IHRoaXMuY3JlYXRlSW1hZ2VFbGVtZW50KHsgc2NlbmVYLCBzY2VuZVkgfSk7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydEltYWdlRWxlbWVudChpbWFnZUVsZW1lbnQsIGZpbGUpO1xcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplSW1hZ2VEaW1lbnNpb25zKGltYWdlRWxlbWVudCk7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2VsZWN0ZWRFbGVtZW50SWRzOiB7IFtpbWFnZUVsZW1lbnQuaWRdOiB0cnVlIH0gfSk7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNldFN0YXRlKHtcXG4gICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZzogZmFsc2UsXFxuICAgICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjb25zdCBsaWJyYXJ5U2hhcGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5NSU1FX1RZUEVTLmV4Y2FsaWRyYXdsaWIpO1xcbiAgICAgICAgICAgIGlmIChsaWJyYXJ5U2hhcGVzICE9PSBcXFwiXFxcIikge1xcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEVsZW1lbnRzRnJvbVBhc3RlT3JMaWJyYXJ5KHtcXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzOiBKU09OLnBhcnNlKGxpYnJhcnlTaGFwZXMpLFxcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGV2ZW50LFxcbiAgICAgICAgICAgICAgICAgICAgZmlsZXM6IG51bGwsXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnN0IGZpbGUgPSAoX2sgPSBldmVudC5kYXRhVHJhbnNmZXIpID09PSBudWxsIHx8IF9rID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfay5maWxlc1swXTtcXG4gICAgICAgICAgICBpZiAoKGZpbGUgPT09IG51bGwgfHwgZmlsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmlsZS50eXBlKSA9PT0gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5NSU1FX1RZUEVTLmV4Y2FsaWRyYXdsaWIgfHxcXG4gICAgICAgICAgICAgICAgKChfbCA9IGZpbGUgPT09IG51bGwgfHwgZmlsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmlsZS5uYW1lKSA9PT0gbnVsbCB8fCBfbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2wuZW5kc1dpdGgoXFxcIi5leGNhbGlkcmF3bGliXFxcIikpKSB7XFxuICAgICAgICAgICAgICAgIHRoaXMubGlicmFyeVxcbiAgICAgICAgICAgICAgICAgICAgLmltcG9ydExpYnJhcnkoZmlsZSlcXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIC8vIENsb3NlIGFuZCB0aGVuIG9wZW4gdG8gZ2V0IHRoZSBsaWJyYXJpZXMgdXBkYXRlZFxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzTGlicmFyeU9wZW46IGZhbHNlIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzTGlicmFyeU9wZW46IHRydWUgfSk7XFxuICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB0aGlzLnNldFN0YXRlKHsgaXNMb2FkaW5nOiBmYWxzZSwgZXJyb3JNZXNzYWdlOiBlcnJvci5tZXNzYWdlIH0pKTtcXG4gICAgICAgICAgICAgICAgLy8gZGVmYXVsdDogYXNzdW1lIGFuIEV4Y2FsaWRyYXcgZmlsZSByZWdhcmRsZXNzIG9mIGV4dGVuc2lvbi9NaW1lVHlwZVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzTG9hZGluZzogdHJ1ZSB9KTtcXG4gICAgICAgICAgICAgICAgaWYgKF9kYXRhX2ZpbGVzeXN0ZW1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQzX18ubmF0aXZlRmlsZVN5c3RlbVN1cHBvcnRlZCkge1xcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgb25seSB3b3JrIGFzIG9mIENocm9tZSA4NixcXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgY2FuIGJlIHNhZmVseSBpZ25vcmVkIG9uIG9sZGVyIHJlbGVhc2VzLlxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBldmVudC5kYXRhVHJhbnNmZXIuaXRlbXNbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5oYW5kbGUgPSB5aWVsZCBpdGVtLmdldEFzRmlsZVN5c3RlbUhhbmRsZSgpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGVycm9yLm5hbWUsIGVycm9yLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHlpZWxkIHRoaXMubG9hZEZpbGVUb0NhbnZhcyhmaWxlKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KTtcXG4gICAgICAgIHRoaXMubG9hZEZpbGVUb0NhbnZhcyA9IChmaWxlKSA9PiB7XFxuICAgICAgICAgICAgKDAsX2RhdGFfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18ubG9hZEZyb21CbG9iKShmaWxlLCB0aGlzLnN0YXRlLCB0aGlzLnNjZW5lLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpKVxcbiAgICAgICAgICAgICAgICAudGhlbigoc2NlbmUpID0+IHtcXG4gICAgICAgICAgICAgICAgdGhpcy5zeW5jQWN0aW9uUmVzdWx0KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc2NlbmUpLCB7IGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIChzY2VuZS5hcHBTdGF0ZSB8fCB0aGlzLnN0YXRlKSksIHsgaXNMb2FkaW5nOiBmYWxzZSB9KSwgcmVwbGFjZUZpbGVzOiB0cnVlLCBjb21taXRUb0hpc3Rvcnk6IHRydWUgfSkpO1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzTG9hZGluZzogZmFsc2UsIGVycm9yTWVzc2FnZTogZXJyb3IubWVzc2FnZSB9KTtcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmhhbmRsZUNhbnZhc0NvbnRleHRNZW51ID0gKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcXG4gICAgICAgICAgICBpZiAoKGV2ZW50Lm5hdGl2ZUV2ZW50LnBvaW50ZXJUeXBlID09PSBcXFwidG91Y2hcXFwiIHx8XFxuICAgICAgICAgICAgICAgIChldmVudC5uYXRpdmVFdmVudC5wb2ludGVyVHlwZSA9PT0gXFxcInBlblxcXCIgJiZcXG4gICAgICAgICAgICAgICAgICAgIC8vIGFsd2F5cyBhbGxvdyBpZiB1c2VyIHVzZXMgYSBwZW4gc2Vjb25kYXJ5IGJ1dHRvblxcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuYnV0dG9uICE9PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLlBPSU5URVJfQlVUVE9OLlNFQ09OREFSWSkpICYmXFxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZWxlbWVudFR5cGUgIT09IFxcXCJzZWxlY3Rpb25cXFwiKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY29uc3QgeyB4LCB5IH0gPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18udmlld3BvcnRDb29yZHNUb1NjZW5lQ29vcmRzKShldmVudCwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0RWxlbWVudEF0UG9zaXRpb24oeCwgeSwgeyBwcmVmZXJTZWxlY3RlZDogdHJ1ZSB9KTtcXG4gICAgICAgICAgICBjb25zdCB0eXBlID0gZWxlbWVudCA/IFxcXCJlbGVtZW50XFxcIiA6IFxcXCJjYW52YXNcXFwiO1xcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZXhjYWxpZHJhd0NvbnRhaW5lclJlZi5jdXJyZW50O1xcbiAgICAgICAgICAgIGNvbnN0IHsgdG9wOiBvZmZzZXRUb3AsIGxlZnQ6IG9mZnNldExlZnQgfSA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcXG4gICAgICAgICAgICBjb25zdCBsZWZ0ID0gZXZlbnQuY2xpZW50WCAtIG9mZnNldExlZnQ7XFxuICAgICAgICAgICAgY29uc3QgdG9wID0gZXZlbnQuY2xpZW50WSAtIG9mZnNldFRvcDtcXG4gICAgICAgICAgICBpZiAoZWxlbWVudCAmJiAhdGhpcy5zdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHNbZWxlbWVudC5pZF0pIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNlbGVjdGVkRWxlbWVudElkczogeyBbZWxlbWVudC5pZF06IHRydWUgfSB9LCAoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVuQ29udGV4dE1lbnUoeyB0b3AsIGxlZnQgfSwgdHlwZSk7XFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlbkNvbnRleHRNZW51KHsgdG9wLCBsZWZ0IH0sIHR5cGUpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLm1heWJlRHJhZ05ld0dlbmVyaWNFbGVtZW50ID0gKHBvaW50ZXJEb3duU3RhdGUsIGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgdmFyIF9hO1xcbiAgICAgICAgICAgIGNvbnN0IGRyYWdnaW5nRWxlbWVudCA9IHRoaXMuc3RhdGUuZHJhZ2dpbmdFbGVtZW50O1xcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ZXJDb29yZHMgPSBwb2ludGVyRG93blN0YXRlLmxhc3RDb29yZHM7XFxuICAgICAgICAgICAgaWYgKCFkcmFnZ2luZ0VsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoZHJhZ2dpbmdFbGVtZW50LnR5cGUgPT09IFxcXCJzZWxlY3Rpb25cXFwiKSB7XFxuICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmRyYWdOZXdFbGVtZW50KShkcmFnZ2luZ0VsZW1lbnQsIHRoaXMuc3RhdGUuZWxlbWVudFR5cGUsIHBvaW50ZXJEb3duU3RhdGUub3JpZ2luLngsIHBvaW50ZXJEb3duU3RhdGUub3JpZ2luLnksIHBvaW50ZXJDb29yZHMueCwgcG9pbnRlckNvb3Jkcy55LCAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uZGlzdGFuY2UpKHBvaW50ZXJEb3duU3RhdGUub3JpZ2luLngsIHBvaW50ZXJDb29yZHMueCksICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5kaXN0YW5jZSkocG9pbnRlckRvd25TdGF0ZS5vcmlnaW4ueSwgcG9pbnRlckNvb3Jkcy55KSwgKDAsX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI2X18uc2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbykoZXZlbnQpLCAoMCxfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjZfXy5zaG91bGRSZXNpemVGcm9tQ2VudGVyKShldmVudCkpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgW2dyaWRYLCBncmlkWV0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjdfXy5nZXRHcmlkUG9pbnQpKHBvaW50ZXJDb29yZHMueCwgcG9pbnRlckNvb3Jkcy55LCB0aGlzLnN0YXRlLmdyaWRTaXplKTtcXG4gICAgICAgICAgICAgICAgY29uc3QgaW1hZ2UgPSAoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMV9fLmlzSW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnQpKGRyYWdnaW5nRWxlbWVudCkgJiZcXG4gICAgICAgICAgICAgICAgICAgICgoX2EgPSB0aGlzLmltYWdlQ2FjaGUuZ2V0KGRyYWdnaW5nRWxlbWVudC5maWxlSWQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaW1hZ2UpO1xcbiAgICAgICAgICAgICAgICBjb25zdCBhc3BlY3RSYXRpbyA9IGltYWdlICYmICEoaW1hZ2UgaW5zdGFuY2VvZiBQcm9taXNlKVxcbiAgICAgICAgICAgICAgICAgICAgPyBpbWFnZS53aWR0aCAvIGltYWdlLmhlaWdodFxcbiAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xcbiAgICAgICAgICAgICAgICAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5kcmFnTmV3RWxlbWVudCkoZHJhZ2dpbmdFbGVtZW50LCB0aGlzLnN0YXRlLmVsZW1lbnRUeXBlLCBwb2ludGVyRG93blN0YXRlLm9yaWdpbkluR3JpZC54LCBwb2ludGVyRG93blN0YXRlLm9yaWdpbkluR3JpZC55LCBncmlkWCwgZ3JpZFksICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5kaXN0YW5jZSkocG9pbnRlckRvd25TdGF0ZS5vcmlnaW5JbkdyaWQueCwgZ3JpZFgpLCAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uZGlzdGFuY2UpKHBvaW50ZXJEb3duU3RhdGUub3JpZ2luSW5HcmlkLnksIGdyaWRZKSwgKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjFfXy5pc0ltYWdlRWxlbWVudCkoZHJhZ2dpbmdFbGVtZW50KVxcbiAgICAgICAgICAgICAgICAgICAgPyAhKDAsX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI2X18uc2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbykoZXZlbnQpXFxuICAgICAgICAgICAgICAgICAgICA6ICgwLF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNl9fLnNob3VsZE1haW50YWluQXNwZWN0UmF0aW8pKGV2ZW50KSwgKDAsX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI2X18uc2hvdWxkUmVzaXplRnJvbUNlbnRlcikoZXZlbnQpLCBhc3BlY3RSYXRpbyk7XFxuICAgICAgICAgICAgICAgIHRoaXMubWF5YmVTdWdnZXN0QmluZGluZ0ZvckFsbChbZHJhZ2dpbmdFbGVtZW50XSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfTtcXG4gICAgICAgIHRoaXMubWF5YmVIYW5kbGVSZXNpemUgPSAocG9pbnRlckRvd25TdGF0ZSwgZXZlbnQpID0+IHtcXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmdldFNlbGVjdGVkRWxlbWVudHMpKHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKSwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtSGFuZGxlVHlwZSA9IHBvaW50ZXJEb3duU3RhdGUucmVzaXplLmhhbmRsZVR5cGU7XFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgIC8vIFRPRE86IHJlbmFtZSB0aGlzIHN0YXRlIGZpZWxkIHRvIFxcXCJpc1NjYWxpbmdcXFwiIHRvIGRpc3Rpbmd1aXNoXFxuICAgICAgICAgICAgICAgIC8vIGl0IGZyb20gdGhlIGdlbmVyaWMgXFxcImlzUmVzaXppbmdcXFwiIHdoaWNoIGluY2x1ZGVzIHNjYWxpbmcgYW5kXFxuICAgICAgICAgICAgICAgIC8vIHJvdGF0aW5nXFxuICAgICAgICAgICAgICAgIGlzUmVzaXppbmc6IHRyYW5zZm9ybUhhbmRsZVR5cGUgJiYgdHJhbnNmb3JtSGFuZGxlVHlwZSAhPT0gXFxcInJvdGF0aW9uXFxcIixcXG4gICAgICAgICAgICAgICAgaXNSb3RhdGluZzogdHJhbnNmb3JtSGFuZGxlVHlwZSA9PT0gXFxcInJvdGF0aW9uXFxcIixcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICBjb25zdCBwb2ludGVyQ29vcmRzID0gcG9pbnRlckRvd25TdGF0ZS5sYXN0Q29vcmRzO1xcbiAgICAgICAgICAgIGNvbnN0IFtyZXNpemVYLCByZXNpemVZXSA9ICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yN19fLmdldEdyaWRQb2ludCkocG9pbnRlckNvb3Jkcy54IC0gcG9pbnRlckRvd25TdGF0ZS5yZXNpemUub2Zmc2V0LngsIHBvaW50ZXJDb29yZHMueSAtIHBvaW50ZXJEb3duU3RhdGUucmVzaXplLm9mZnNldC55LCB0aGlzLnN0YXRlLmdyaWRTaXplKTtcXG4gICAgICAgICAgICBpZiAoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18udHJhbnNmb3JtRWxlbWVudHMpKHBvaW50ZXJEb3duU3RhdGUsIHRyYW5zZm9ybUhhbmRsZVR5cGUsIHNlbGVjdGVkRWxlbWVudHMsIHBvaW50ZXJEb3duU3RhdGUucmVzaXplLmFycm93RGlyZWN0aW9uLCAoMCxfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjZfXy5zaG91bGRSb3RhdGVXaXRoRGlzY3JldGVBbmdsZSkoZXZlbnQpLCAoMCxfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjZfXy5zaG91bGRSZXNpemVGcm9tQ2VudGVyKShldmVudCksIHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmICgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIxX18uaXNJbWFnZUVsZW1lbnQpKHNlbGVjdGVkRWxlbWVudHNbMF0pXFxuICAgICAgICAgICAgICAgID8gISgwLF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNl9fLnNob3VsZE1haW50YWluQXNwZWN0UmF0aW8pKGV2ZW50KVxcbiAgICAgICAgICAgICAgICA6ICgwLF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNl9fLnNob3VsZE1haW50YWluQXNwZWN0UmF0aW8pKGV2ZW50KSwgcmVzaXplWCwgcmVzaXplWSwgcG9pbnRlckRvd25TdGF0ZS5yZXNpemUuY2VudGVyLngsIHBvaW50ZXJEb3duU3RhdGUucmVzaXplLmNlbnRlci55KSkge1xcbiAgICAgICAgICAgICAgICB0aGlzLm1heWJlU3VnZ2VzdEJpbmRpbmdGb3JBbGwoc2VsZWN0ZWRFbGVtZW50cyk7XFxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgICAgICB9O1xcbiAgICAgICAgLyoqIEBwcml2YXRlIHVzZSB0aGlzLmhhbmRsZUNhbnZhc0NvbnRleHRNZW51ICovXFxuICAgICAgICB0aGlzLl9vcGVuQ29udGV4dE1lbnUgPSAoeyBsZWZ0LCB0b3AsIH0sIHR5cGUpID0+IHtcXG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5zaG93SHlwZXJsaW5rUG9wdXApIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNob3dIeXBlcmxpbmtQb3B1cDogZmFsc2UgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHRoaXMuY29udGV4dE1lbnVPcGVuID0gdHJ1ZTtcXG4gICAgICAgICAgICBjb25zdCBtYXliZUdyb3VwQWN0aW9uID0gX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25Hcm91cC5jb250ZXh0SXRlbVByZWRpY2F0ZSh0aGlzLmFjdGlvbk1hbmFnZXIuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCksIHRoaXMuYWN0aW9uTWFuYWdlci5nZXRBcHBTdGF0ZSgpKTtcXG4gICAgICAgICAgICBjb25zdCBtYXliZVVuZ3JvdXBBY3Rpb24gPSBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvblVuZ3JvdXAuY29udGV4dEl0ZW1QcmVkaWNhdGUodGhpcy5hY3Rpb25NYW5hZ2VyLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpLCB0aGlzLmFjdGlvbk1hbmFnZXIuZ2V0QXBwU3RhdGUoKSk7XFxuICAgICAgICAgICAgY29uc3QgbWF5YmVGbGlwSG9yaXpvbnRhbCA9IF9hY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYWN0aW9uRmxpcEhvcml6b250YWwuY29udGV4dEl0ZW1QcmVkaWNhdGUodGhpcy5hY3Rpb25NYW5hZ2VyLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpLCB0aGlzLmFjdGlvbk1hbmFnZXIuZ2V0QXBwU3RhdGUoKSk7XFxuICAgICAgICAgICAgY29uc3QgbWF5YmVGbGlwVmVydGljYWwgPSBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvbkZsaXBWZXJ0aWNhbC5jb250ZXh0SXRlbVByZWRpY2F0ZSh0aGlzLmFjdGlvbk1hbmFnZXIuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCksIHRoaXMuYWN0aW9uTWFuYWdlci5nZXRBcHBTdGF0ZSgpKTtcXG4gICAgICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSBcXFwic2VwYXJhdG9yXFxcIjtcXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKTtcXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gW107XFxuICAgICAgICAgICAgaWYgKF9jbGlwYm9hcmRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18ucHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZEJsb2IgJiYgZWxlbWVudHMubGVuZ3RoID4gMCkge1xcbiAgICAgICAgICAgICAgICBvcHRpb25zLnB1c2goX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25Db3B5QXNQbmcpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoX2NsaXBib2FyZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5wcm9iYWJseVN1cHBvcnRzQ2xpcGJvYXJkV3JpdGVUZXh0ICYmIGVsZW1lbnRzLmxlbmd0aCA+IDApIHtcXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5wdXNoKF9hY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYWN0aW9uQ29weUFzU3ZnKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHR5cGUgPT09IFxcXCJjYW52YXNcXFwiKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdNb2RlT3B0aW9ucyA9IFtcXG4gICAgICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXFxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgdGhpcy5wcm9wcy5ncmlkTW9kZUVuYWJsZWQgPT09IFxcXCJ1bmRlZmluZWRcXFwiICYmXFxuICAgICAgICAgICAgICAgICAgICAgICAgX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25Ub2dnbGVHcmlkTW9kZSxcXG4gICAgICAgICAgICAgICAgICAgIHR5cGVvZiB0aGlzLnByb3BzLnplbk1vZGVFbmFibGVkID09PSBcXFwidW5kZWZpbmVkXFxcIiAmJiBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvblRvZ2dsZVplbk1vZGUsXFxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgdGhpcy5wcm9wcy52aWV3TW9kZUVuYWJsZWQgPT09IFxcXCJ1bmRlZmluZWRcXFwiICYmXFxuICAgICAgICAgICAgICAgICAgICAgICAgX2FjdGlvbnNfYWN0aW9uVG9nZ2xlVmlld01vZGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM5X18uYWN0aW9uVG9nZ2xlVmlld01vZGUsXFxuICAgICAgICAgICAgICAgICAgICBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvblRvZ2dsZVN0YXRzLFxcbiAgICAgICAgICAgICAgICBdO1xcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS52aWV3TW9kZUVuYWJsZWQpIHtcXG4gICAgICAgICAgICAgICAgICAgIF9Db250ZXh0TWVudV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzVfX1tcXFwiZGVmYXVsdFxcXCJdLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHZpZXdNb2RlT3B0aW9ucyxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3AsXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25NYW5hZ2VyOiB0aGlzLmFjdGlvbk1hbmFnZXIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwU3RhdGU6IHRoaXMuc3RhdGUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyOiB0aGlzLmV4Y2FsaWRyYXdDb250YWluZXJSZWYuY3VycmVudCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cyxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgX0NvbnRleHRNZW51X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNV9fW1xcXCJkZWZhdWx0XFxcIl0ucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogW1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTW9iaWxlICYmXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkICYmIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFxcXCJwYXN0ZVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtOiAoZWxlbWVudHMsIGFwcFN0YXRlcykgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFzdGVGcm9tQ2xpcGJvYXJkKG51bGwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0SXRlbUxhYmVsOiBcXFwibGFiZWxzLnBhc3RlXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc01vYmlsZSAmJiBuYXZpZ2F0b3IuY2xpcGJvYXJkICYmIHNlcGFyYXRvcixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2NsaXBib2FyZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5wcm9iYWJseVN1cHBvcnRzQ2xpcGJvYXJkQmxvYiAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubGVuZ3RoID4gMCAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25Db3B5QXNQbmcsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jbGlwYm9hcmRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18ucHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZFdyaXRlVGV4dCAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubGVuZ3RoID4gMCAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25Db3B5QXNTdmcsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoX2NsaXBib2FyZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5wcm9iYWJseVN1cHBvcnRzQ2xpcGJvYXJkQmxvYiAmJiBlbGVtZW50cy5sZW5ndGggPiAwKSB8fFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9jbGlwYm9hcmRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18ucHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZFdyaXRlVGV4dCAmJiBlbGVtZW50cy5sZW5ndGggPiAwKSkgJiZcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcGFyYXRvcixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25TZWxlY3RBbGwsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcGFyYXRvcixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHRoaXMucHJvcHMuZ3JpZE1vZGVFbmFibGVkID09PSBcXFwidW5kZWZpbmVkXFxcIiAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25Ub2dnbGVHcmlkTW9kZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHRoaXMucHJvcHMuemVuTW9kZUVuYWJsZWQgPT09IFxcXCJ1bmRlZmluZWRcXFwiICYmXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvblRvZ2dsZVplbk1vZGUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiB0aGlzLnByb3BzLnZpZXdNb2RlRW5hYmxlZCA9PT0gXFxcInVuZGVmaW5lZFxcXCIgJiZcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hY3Rpb25zX2FjdGlvblRvZ2dsZVZpZXdNb2RlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zOV9fLmFjdGlvblRvZ2dsZVZpZXdNb2RlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvblRvZ2dsZVN0YXRzLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uTWFuYWdlcjogdGhpcy5hY3Rpb25NYW5hZ2VyLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcFN0YXRlOiB0aGlzLnN0YXRlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcjogdGhpcy5leGNhbGlkcmF3Q29udGFpbmVyUmVmLmN1cnJlbnQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMsXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlID09PSBcXFwiZWxlbWVudFxcXCIpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudHNXaXRoVW5iaW5kZWRUZXh0ID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmdldFNlbGVjdGVkRWxlbWVudHMpKGVsZW1lbnRzLCB0aGlzLnN0YXRlKS5zb21lKChlbGVtZW50KSA9PiAhKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjFfXy5oYXNCb3VuZFRleHRFbGVtZW50KShlbGVtZW50KSk7XFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnZpZXdNb2RlRW5hYmxlZCkge1xcbiAgICAgICAgICAgICAgICAgICAgX0NvbnRleHRNZW51X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNV9fW1xcXCJkZWZhdWx0XFxcIl0ucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogW25hdmlnYXRvci5jbGlwYm9hcmQgJiYgX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25Db3B5LCAuLi5vcHRpb25zXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3AsXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25NYW5hZ2VyOiB0aGlzLmFjdGlvbk1hbmFnZXIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwU3RhdGU6IHRoaXMuc3RhdGUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyOiB0aGlzLmV4Y2FsaWRyYXdDb250YWluZXJSZWYuY3VycmVudCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cyxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgX0NvbnRleHRNZW51X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNV9fW1xcXCJkZWZhdWx0XFxcIl0ucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogW1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTW9iaWxlICYmIF9hY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYWN0aW9uQ3V0LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTW9iaWxlICYmIG5hdmlnYXRvci5jbGlwYm9hcmQgJiYgX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25Db3B5LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTW9iaWxlICYmXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkICYmIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFxcXCJwYXN0ZVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtOiAoZWxlbWVudHMsIGFwcFN0YXRlcykgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFzdGVGcm9tQ2xpcGJvYXJkKG51bGwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0SXRlbUxhYmVsOiBcXFwibGFiZWxzLnBhc3RlXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc01vYmlsZSAmJiBzZXBhcmF0b3IsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcGFyYXRvcixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25Db3B5U3R5bGVzLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvblBhc3RlU3R5bGVzLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXBhcmF0b3IsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heWJlR3JvdXBBY3Rpb24gJiYgX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25Hcm91cCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWVsZW1lbnRzV2l0aFVuYmluZGVkVGV4dCAmJiBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvblVuYmluZFRleHQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heWJlVW5ncm91cEFjdGlvbiAmJiBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvblVuZ3JvdXAsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXliZUdyb3VwQWN0aW9uIHx8IG1heWJlVW5ncm91cEFjdGlvbikgJiYgc2VwYXJhdG9yLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvbkFkZFRvTGlicmFyeSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VwYXJhdG9yLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvblNlbmRCYWNrd2FyZCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25CcmluZ0ZvcndhcmQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYWN0aW9uU2VuZFRvQmFjayxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25CcmluZ1RvRnJvbnQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcGFyYXRvcixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF5YmVGbGlwSG9yaXpvbnRhbCAmJiBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvbkZsaXBIb3Jpem9udGFsLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXliZUZsaXBWZXJ0aWNhbCAmJiBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvbkZsaXBWZXJ0aWNhbCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1heWJlRmxpcEhvcml6b250YWwgfHwgbWF5YmVGbGlwVmVydGljYWwpICYmIHNlcGFyYXRvcixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25MaW5rLmNvbnRleHRJdGVtUHJlZGljYXRlKGVsZW1lbnRzLCB0aGlzLnN0YXRlKSAmJiBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvbkxpbmssXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYWN0aW9uRHVwbGljYXRlU2VsZWN0aW9uLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvbkRlbGV0ZVNlbGVjdGVkLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uTWFuYWdlcjogdGhpcy5hY3Rpb25NYW5hZ2VyLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcFN0YXRlOiB0aGlzLnN0YXRlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcjogdGhpcy5leGNhbGlkcmF3Q29udGFpbmVyUmVmLmN1cnJlbnQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMsXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLmhhbmRsZVdoZWVsID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLndpdGhCYXRjaGVkVXBkYXRlcykoKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcXG4gICAgICAgICAgICBpZiAoaXNQYW5uaW5nKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY29uc3QgeyBkZWx0YVgsIGRlbHRhWSB9ID0gZXZlbnQ7XFxuICAgICAgICAgICAgY29uc3QgeyBzZWxlY3RlZEVsZW1lbnRJZHMsIHByZXZpb3VzU2VsZWN0ZWRFbGVtZW50SWRzIH0gPSB0aGlzLnN0YXRlO1xcbiAgICAgICAgICAgIC8vIG5vdGUgdGhhdCBldmVudC5jdHJsS2V5IGlzIG5lY2Vzc2FyeSB0byBoYW5kbGUgcGluY2ggem9vbWluZ1xcbiAgICAgICAgICAgIGlmIChldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXkpIHtcXG4gICAgICAgICAgICAgICAgY29uc3Qgc2lnbiA9IE1hdGguc2lnbihkZWx0YVkpO1xcbiAgICAgICAgICAgICAgICBjb25zdCBNQVhfU1RFUCA9IDEwO1xcbiAgICAgICAgICAgICAgICBsZXQgZGVsdGEgPSBNYXRoLmFicyhkZWx0YVkpO1xcbiAgICAgICAgICAgICAgICBpZiAoZGVsdGEgPiBNQVhfU1RFUCkge1xcbiAgICAgICAgICAgICAgICAgICAgZGVsdGEgPSBNQVhfU1RFUDtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBkZWx0YSAqPSBzaWduO1xcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMocHJldmlvdXNTZWxlY3RlZEVsZW1lbnRJZHMpLmxlbmd0aCAhPT0gMCkge1xcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudElkczogcHJldmlvdXNTZWxlY3RlZEVsZW1lbnRJZHMsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgIH0sIDEwMDApO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGxldCBuZXdab29tID0gdGhpcy5zdGF0ZS56b29tLnZhbHVlIC0gZGVsdGEgLyAxMDA7XFxuICAgICAgICAgICAgICAgIC8vIGluY3JlYXNlIHpvb20gc3RlcHMgdGhlIG1vcmUgem9vbWVkLWluIHdlIGFyZSAoYXBwbGllcyB0byA+MTAwJSBvbmx5KVxcbiAgICAgICAgICAgICAgICBuZXdab29tICs9IE1hdGgubG9nMTAoTWF0aC5tYXgoMSwgdGhpcy5zdGF0ZS56b29tLnZhbHVlKSkgKiAtc2lnbjtcXG4gICAgICAgICAgICAgICAgLy8gcm91bmQgdG8gbmVhcmVzdCBzdGVwXFxuICAgICAgICAgICAgICAgIG5ld1pvb20gPSBNYXRoLnJvdW5kKG5ld1pvb20gKiBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLlpPT01fU1RFUCAqIDEwMCkgLyAoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5aT09NX1NURVAgKiAxMDApO1xcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKChzdGF0ZSkgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgKDAsX3NjZW5lX3pvb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzMyX18uZ2V0U3RhdGVGb3Jab29tKSh7XFxuICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydFg6IGN1cnNvclgsXFxuICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydFk6IGN1cnNvclksXFxuICAgICAgICAgICAgICAgICAgICBuZXh0Wm9vbTogKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmdldE5vcm1hbGl6ZWRab29tKShuZXdab29tKSxcXG4gICAgICAgICAgICAgICAgfSwgc3RhdGUpKSwgeyBzZWxlY3RlZEVsZW1lbnRJZHM6IHt9LCBwcmV2aW91c1NlbGVjdGVkRWxlbWVudElkczogT2JqZWN0LmtleXMoc2VsZWN0ZWRFbGVtZW50SWRzKS5sZW5ndGggIT09IDBcXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlbGVjdGVkRWxlbWVudElkc1xcbiAgICAgICAgICAgICAgICAgICAgICAgIDogcHJldmlvdXNTZWxlY3RlZEVsZW1lbnRJZHMsIHNob3VsZENhY2hlSWdub3JlWm9vbTogdHJ1ZSB9KSkpO1xcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0U2hvdWxkQ2FjaGVJZ25vcmVab29tRGVib3VuY2VkKCk7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgLy8gc2Nyb2xsIGhvcml6b250YWxseSB3aGVuIHNoaWZ0IHByZXNzZWRcXG4gICAgICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSgoeyB6b29tLCBzY3JvbGxYIH0pID0+ICh7XFxuICAgICAgICAgICAgICAgICAgICAvLyBvbiBNYWMsIHNoaWZ0K3doZWVsIHRlbmRzIHRvIHJlc3VsdCBpbiBkZWx0YVhcXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbFg6IHNjcm9sbFggLSAoZGVsdGFZIHx8IGRlbHRhWCkgLyB6b29tLnZhbHVlLFxcbiAgICAgICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSgoeyB6b29tLCBzY3JvbGxYLCBzY3JvbGxZIH0pID0+ICh7XFxuICAgICAgICAgICAgICAgIHNjcm9sbFg6IHNjcm9sbFggLSBkZWx0YVggLyB6b29tLnZhbHVlLFxcbiAgICAgICAgICAgICAgICBzY3JvbGxZOiBzY3JvbGxZIC0gZGVsdGFZIC8gem9vbS52YWx1ZSxcXG4gICAgICAgICAgICB9KSk7XFxuICAgICAgICB9KTtcXG4gICAgICAgIHRoaXMuc2F2ZVBvaW50ZXIgPSAoeCwgeSwgYnV0dG9uKSA9PiB7XFxuICAgICAgICAgICAgdmFyIF9hLCBfYjtcXG4gICAgICAgICAgICBpZiAoIXggfHwgIXkpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjb25zdCBwb2ludGVyID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnZpZXdwb3J0Q29vcmRzVG9TY2VuZUNvb3JkcykoeyBjbGllbnRYOiB4LCBjbGllbnRZOiB5IH0sIHRoaXMuc3RhdGUpO1xcbiAgICAgICAgICAgIGlmIChpc05hTihwb2ludGVyLngpIHx8IGlzTmFOKHBvaW50ZXIueSkpIHtcXG4gICAgICAgICAgICAgICAgLy8gc29tZXRpbWVzIHRoZSBwb2ludGVyIGdvZXMgb2ZmIHNjcmVlblxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLnByb3BzKS5vblBvaW50ZXJVcGRhdGUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCB7XFxuICAgICAgICAgICAgICAgIHBvaW50ZXIsXFxuICAgICAgICAgICAgICAgIGJ1dHRvbixcXG4gICAgICAgICAgICAgICAgcG9pbnRlcnNNYXA6IGdlc3R1cmUucG9pbnRlcnMsXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9O1xcbiAgICAgICAgdGhpcy5yZXNldFNob3VsZENhY2hlSWdub3JlWm9vbURlYm91bmNlZCA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5kZWJvdW5jZSkoKCkgPT4ge1xcbiAgICAgICAgICAgIGlmICghdGhpcy51bm1vdW50ZWQpIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNob3VsZENhY2hlSWdub3JlWm9vbTogZmFsc2UgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSwgMzAwKTtcXG4gICAgICAgIHRoaXMudXBkYXRlRE9NUmVjdCA9IChjYikgPT4ge1xcbiAgICAgICAgICAgIHZhciBfYTtcXG4gICAgICAgICAgICBpZiAoKF9hID0gdGhpcy5leGNhbGlkcmF3Q29udGFpbmVyUmVmKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY3VycmVudCkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBleGNhbGlkcmF3Q29udGFpbmVyID0gdGhpcy5leGNhbGlkcmF3Q29udGFpbmVyUmVmLmN1cnJlbnQ7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgbGVmdDogb2Zmc2V0TGVmdCwgdG9wOiBvZmZzZXRUb3AsIH0gPSBleGNhbGlkcmF3Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xcbiAgICAgICAgICAgICAgICBjb25zdCB7IHdpZHRoOiBjdXJyZW50V2lkdGgsIGhlaWdodDogY3VycmVudEhlaWdodCwgb2Zmc2V0VG9wOiBjdXJyZW50T2Zmc2V0VG9wLCBvZmZzZXRMZWZ0OiBjdXJyZW50T2Zmc2V0TGVmdCwgfSA9IHRoaXMuc3RhdGU7XFxuICAgICAgICAgICAgICAgIGlmICh3aWR0aCA9PT0gY3VycmVudFdpZHRoICYmXFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQgPT09IGN1cnJlbnRIZWlnaHQgJiZcXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnQgPT09IGN1cnJlbnRPZmZzZXRMZWZ0ICYmXFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3AgPT09IGN1cnJlbnRPZmZzZXRUb3ApIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChjYikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNiKCk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgICAgICB3aWR0aCxcXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCxcXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnQsXFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3AsXFxuICAgICAgICAgICAgICAgIH0sICgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGNiICYmIGNiKCk7XFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICB0aGlzLnJlZnJlc2ggPSAoKSA9PiB7XFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZShPYmplY3QuYXNzaWduKHt9LCB0aGlzLmdldENhbnZhc09mZnNldHMoKSkpO1xcbiAgICAgICAgfTtcXG4gICAgICAgIGNvbnN0IGRlZmF1bHRBcHBTdGF0ZSA9ICgwLF9hcHBTdGF0ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLmdldERlZmF1bHRBcHBTdGF0ZSkoKTtcXG4gICAgICAgIGNvbnN0IHsgZXhjYWxpZHJhd1JlZiwgdmlld01vZGVFbmFibGVkID0gZmFsc2UsIHplbk1vZGVFbmFibGVkID0gZmFsc2UsIGdyaWRNb2RlRW5hYmxlZCA9IGZhbHNlLCB0aGVtZSA9IGRlZmF1bHRBcHBTdGF0ZS50aGVtZSwgbmFtZSA9IGRlZmF1bHRBcHBTdGF0ZS5uYW1lLCB9ID0gcHJvcHM7XFxuICAgICAgICB0aGlzLnN0YXRlID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdEFwcFN0YXRlKSwgeyB0aGVtZSwgaXNMb2FkaW5nOiB0cnVlIH0pLCB0aGlzLmdldENhbnZhc09mZnNldHMoKSksIHsgdmlld01vZGVFbmFibGVkLFxcbiAgICAgICAgICAgIHplbk1vZGVFbmFibGVkLCBncmlkU2l6ZTogZ3JpZE1vZGVFbmFibGVkID8gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5HUklEX1NJWkUgOiBudWxsLCBuYW1lLCB3aWR0aDogd2luZG93LmlubmVyV2lkdGgsIGhlaWdodDogd2luZG93LmlubmVySGVpZ2h0LCBzaG93SHlwZXJsaW5rUG9wdXA6IGZhbHNlIH0pO1xcbiAgICAgICAgdGhpcy5pZCA9ICgwLG5hbm9pZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNDdfXy5uYW5vaWQpKCk7XFxuICAgICAgICBpZiAoZXhjYWxpZHJhd1JlZikge1xcbiAgICAgICAgICAgIGNvbnN0IHJlYWR5UHJvbWlzZSA9IChcXFwiY3VycmVudFxcXCIgaW4gZXhjYWxpZHJhd1JlZiAmJiAoKF9hID0gZXhjYWxpZHJhd1JlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVhZHlQcm9taXNlKSkgfHxcXG4gICAgICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnJlc29sdmFibGVQcm9taXNlKSgpO1xcbiAgICAgICAgICAgIGNvbnN0IGFwaSA9IHtcXG4gICAgICAgICAgICAgICAgcmVhZHk6IHRydWUsXFxuICAgICAgICAgICAgICAgIHJlYWR5UHJvbWlzZSxcXG4gICAgICAgICAgICAgICAgdXBkYXRlU2NlbmU6IHRoaXMudXBkYXRlU2NlbmUsXFxuICAgICAgICAgICAgICAgIGFkZEZpbGVzOiB0aGlzLmFkZEZpbGVzLFxcbiAgICAgICAgICAgICAgICByZXNldFNjZW5lOiB0aGlzLnJlc2V0U2NlbmUsXFxuICAgICAgICAgICAgICAgIGdldFNjZW5lRWxlbWVudHNJbmNsdWRpbmdEZWxldGVkOiB0aGlzLmdldFNjZW5lRWxlbWVudHNJbmNsdWRpbmdEZWxldGVkLFxcbiAgICAgICAgICAgICAgICBoaXN0b3J5OiB7XFxuICAgICAgICAgICAgICAgICAgICBjbGVhcjogdGhpcy5yZXNldEhpc3RvcnksXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHNjcm9sbFRvQ29udGVudDogdGhpcy5zY3JvbGxUb0NvbnRlbnQsXFxuICAgICAgICAgICAgICAgIGdldFNjZW5lRWxlbWVudHM6IHRoaXMuZ2V0U2NlbmVFbGVtZW50cyxcXG4gICAgICAgICAgICAgICAgZ2V0QXBwU3RhdGU6ICgpID0+IHRoaXMuc3RhdGUsXFxuICAgICAgICAgICAgICAgIGdldEZpbGVzOiAoKSA9PiB0aGlzLmZpbGVzLFxcbiAgICAgICAgICAgICAgICByZWZyZXNoOiB0aGlzLnJlZnJlc2gsXFxuICAgICAgICAgICAgICAgIGltcG9ydExpYnJhcnk6IHRoaXMuaW1wb3J0TGlicmFyeUZyb21VcmwsXFxuICAgICAgICAgICAgICAgIHNldFRvYXN0TWVzc2FnZTogdGhpcy5zZXRUb2FzdE1lc3NhZ2UsXFxuICAgICAgICAgICAgICAgIGlkOiB0aGlzLmlkLFxcbiAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgaWYgKHR5cGVvZiBleGNhbGlkcmF3UmVmID09PSBcXFwiZnVuY3Rpb25cXFwiKSB7XFxuICAgICAgICAgICAgICAgIGV4Y2FsaWRyYXdSZWYoYXBpKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgIGV4Y2FsaWRyYXdSZWYuY3VycmVudCA9IGFwaTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmVhZHlQcm9taXNlLnJlc29sdmUoYXBpKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHRoaXMuZXhjYWxpZHJhd0NvbnRhaW5lclZhbHVlID0ge1xcbiAgICAgICAgICAgIGNvbnRhaW5lcjogdGhpcy5leGNhbGlkcmF3Q29udGFpbmVyUmVmLmN1cnJlbnQsXFxuICAgICAgICAgICAgaWQ6IHRoaXMuaWQsXFxuICAgICAgICB9O1xcbiAgICAgICAgdGhpcy5zY2VuZSA9IG5ldyBfc2NlbmVfU2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzMxX19bXFxcImRlZmF1bHRcXFwiXSgpO1xcbiAgICAgICAgdGhpcy5saWJyYXJ5ID0gbmV3IF9kYXRhX2xpYnJhcnlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X19bXFxcImRlZmF1bHRcXFwiXSh0aGlzKTtcXG4gICAgICAgIHRoaXMuaGlzdG9yeSA9IG5ldyBfaGlzdG9yeV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjRfX1tcXFwiZGVmYXVsdFxcXCJdKCk7XFxuICAgICAgICB0aGlzLmFjdGlvbk1hbmFnZXIgPSBuZXcgX2FjdGlvbnNfbWFuYWdlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLkFjdGlvbk1hbmFnZXIodGhpcy5zeW5jQWN0aW9uUmVzdWx0LCAoKSA9PiB0aGlzLnN0YXRlLCAoKSA9PiB0aGlzLnNjZW5lLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpLCB0aGlzKTtcXG4gICAgICAgIHRoaXMuYWN0aW9uTWFuYWdlci5yZWdpc3RlckFsbChfYWN0aW9uc19yZWdpc3Rlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmFjdGlvbnMpO1xcbiAgICAgICAgdGhpcy5hY3Rpb25NYW5hZ2VyLnJlZ2lzdGVyQWN0aW9uKCgwLF9hY3Rpb25zX2FjdGlvbkhpc3RvcnlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5jcmVhdGVVbmRvQWN0aW9uKSh0aGlzLmhpc3RvcnkpKTtcXG4gICAgICAgIHRoaXMuYWN0aW9uTWFuYWdlci5yZWdpc3RlckFjdGlvbigoMCxfYWN0aW9uc19hY3Rpb25IaXN0b3J5X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uY3JlYXRlUmVkb0FjdGlvbikodGhpcy5oaXN0b3J5KSk7XFxuICAgIH1cXG4gICAgcmVuZGVyQ2FudmFzKCkge1xcbiAgICAgICAgY29uc3QgY2FudmFzU2NhbGUgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcXG4gICAgICAgIGNvbnN0IHsgd2lkdGg6IGNhbnZhc0RPTVdpZHRoLCBoZWlnaHQ6IGNhbnZhc0RPTUhlaWdodCwgdmlld01vZGVFbmFibGVkLCB9ID0gdGhpcy5zdGF0ZTtcXG4gICAgICAgIGNvbnN0IGNhbnZhc1dpZHRoID0gY2FudmFzRE9NV2lkdGggKiBjYW52YXNTY2FsZTtcXG4gICAgICAgIGNvbnN0IGNhbnZhc0hlaWdodCA9IGNhbnZhc0RPTUhlaWdodCAqIGNhbnZhc1NjYWxlO1xcbiAgICAgICAgaWYgKHZpZXdNb2RlRW5hYmxlZCkge1xcbiAgICAgICAgICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJjYW52YXNcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiZXhjYWxpZHJhd19fY2FudmFzXFxcIiwgc3R5bGU6IHtcXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYW52YXNET01XaWR0aCxcXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogY2FudmFzRE9NSGVpZ2h0LFxcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkNVUlNPUl9UWVBFLkdSQUIsXFxuICAgICAgICAgICAgICAgIH0sIHdpZHRoOiBjYW52YXNXaWR0aCwgaGVpZ2h0OiBjYW52YXNIZWlnaHQsIHJlZjogdGhpcy5oYW5kbGVDYW52YXNSZWYsIG9uQ29udGV4dE1lbnU6IHRoaXMuaGFuZGxlQ2FudmFzQ29udGV4dE1lbnUsIG9uUG9pbnRlck1vdmU6IHRoaXMuaGFuZGxlQ2FudmFzUG9pbnRlck1vdmUsIG9uUG9pbnRlclVwOiB0aGlzLmhhbmRsZUNhbnZhc1BvaW50ZXJVcCwgb25Qb2ludGVyQ2FuY2VsOiB0aGlzLnJlbW92ZVBvaW50ZXIsIG9uVG91Y2hNb3ZlOiB0aGlzLmhhbmRsZVRvdWNoTW92ZSwgb25Qb2ludGVyRG93bjogdGhpcy5oYW5kbGVDYW52YXNQb2ludGVyRG93biB9LCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjVfXy50KShcXFwibGFiZWxzLmRyYXdpbmdDYW52YXNcXFwiKSB9KSwgdm9pZCAwKSk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiY2FudmFzXFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcImV4Y2FsaWRyYXdfX2NhbnZhc1xcXCIsIHN0eWxlOiB7XFxuICAgICAgICAgICAgICAgIHdpZHRoOiBjYW52YXNET01XaWR0aCxcXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBjYW52YXNET01IZWlnaHQsXFxuICAgICAgICAgICAgfSwgd2lkdGg6IGNhbnZhc1dpZHRoLCBoZWlnaHQ6IGNhbnZhc0hlaWdodCwgcmVmOiB0aGlzLmhhbmRsZUNhbnZhc1JlZiwgb25Db250ZXh0TWVudTogdGhpcy5oYW5kbGVDYW52YXNDb250ZXh0TWVudSwgb25Qb2ludGVyRG93bjogdGhpcy5oYW5kbGVDYW52YXNQb2ludGVyRG93biwgb25Eb3VibGVDbGljazogdGhpcy5oYW5kbGVDYW52YXNEb3VibGVDbGljaywgb25Qb2ludGVyTW92ZTogdGhpcy5oYW5kbGVDYW52YXNQb2ludGVyTW92ZSwgb25Qb2ludGVyVXA6IHRoaXMuaGFuZGxlQ2FudmFzUG9pbnRlclVwLCBvblBvaW50ZXJDYW5jZWw6IHRoaXMucmVtb3ZlUG9pbnRlciwgb25Ub3VjaE1vdmU6IHRoaXMuaGFuZGxlVG91Y2hNb3ZlIH0sIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNV9fLnQpKFxcXCJsYWJlbHMuZHJhd2luZ0NhbnZhc1xcXCIpIH0pLCB2b2lkIDApKTtcXG4gICAgfVxcbiAgICByZW5kZXIoKSB7XFxuICAgICAgICB2YXIgX2EsIF9iO1xcbiAgICAgICAgY29uc3QgeyB6ZW5Nb2RlRW5hYmxlZCwgdmlld01vZGVFbmFibGVkIH0gPSB0aGlzLnN0YXRlO1xcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50ID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmdldFNlbGVjdGVkRWxlbWVudHMpKHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKSwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICBjb25zdCB7IG9uQ29sbGFiQnV0dG9uQ2xpY2ssIHJlbmRlclRvcFJpZ2h0VUksIHJlbmRlckZvb3RlciwgcmVuZGVyQ3VzdG9tU3RhdHMsIH0gPSB0aGlzLnByb3BzO1xcbiAgICAgICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6ICgwLGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1tcXFwiZGVmYXVsdFxcXCJdKShcXFwiZXhjYWxpZHJhdyBleGNhbGlkcmF3LWNvbnRhaW5lclxcXCIsIHtcXG4gICAgICAgICAgICAgICAgXFxcImV4Y2FsaWRyYXctLXZpZXctbW9kZVxcXCI6IHZpZXdNb2RlRW5hYmxlZCxcXG4gICAgICAgICAgICAgICAgXFxcImV4Y2FsaWRyYXctLW1vYmlsZVxcXCI6IHRoaXMuaXNNb2JpbGUsXFxuICAgICAgICAgICAgfSksIHJlZjogdGhpcy5leGNhbGlkcmF3Q29udGFpbmVyUmVmLCBvbkRyb3A6IHRoaXMuaGFuZGxlQXBwT25Ecm9wLCB0YWJJbmRleDogMCwgb25LZXlEb3duOiB0aGlzLnByb3BzLmhhbmRsZUtleWJvYXJkR2xvYmFsbHkgPyB1bmRlZmluZWQgOiB0aGlzLm9uS2V5RG93biB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoRXhjYWxpZHJhd0NvbnRhaW5lckNvbnRleHQuUHJvdmlkZXIsIE9iamVjdC5hc3NpZ24oeyB2YWx1ZTogdGhpcy5leGNhbGlkcmF3Q29udGFpbmVyVmFsdWUgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShJc01vYmlsZUNvbnRleHQuUHJvdmlkZXIsIE9iamVjdC5hc3NpZ24oeyB2YWx1ZTogdGhpcy5pc01vYmlsZSB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9MYXllclVJX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNl9fW1xcXCJkZWZhdWx0XFxcIl0sIHsgY2FudmFzOiB0aGlzLmNhbnZhcywgYXBwU3RhdGU6IHRoaXMuc3RhdGUsIGZpbGVzOiB0aGlzLmZpbGVzLCBzZXRBcHBTdGF0ZTogdGhpcy5zZXRBcHBTdGF0ZSwgYWN0aW9uTWFuYWdlcjogdGhpcy5hY3Rpb25NYW5hZ2VyLCBlbGVtZW50czogdGhpcy5zY2VuZS5nZXRFbGVtZW50cygpLCBvbkNvbGxhYkJ1dHRvbkNsaWNrOiBvbkNvbGxhYkJ1dHRvbkNsaWNrLCBvbkxvY2tUb2dnbGU6IHRoaXMudG9nZ2xlTG9jaywgb25QZW5Nb2RlVG9nZ2xlOiB0aGlzLnRvZ2dsZVBlbk1vZGUsIG9uSW5zZXJ0RWxlbWVudHM6IChlbGVtZW50cykgPT4gdGhpcy5hZGRFbGVtZW50c0Zyb21QYXN0ZU9yTGlicmFyeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcXFwiY2VudGVyXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzOiBudWxsLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgemVuTW9kZUVuYWJsZWQ6IHplbk1vZGVFbmFibGVkLCB0b2dnbGVaZW5Nb2RlOiB0aGlzLnRvZ2dsZVplbk1vZGUsIGxhbmdDb2RlOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjVfXy5nZXRMYW5ndWFnZSkoKS5jb2RlLCBpc0NvbGxhYm9yYXRpbmc6IHRoaXMucHJvcHMuaXNDb2xsYWJvcmF0aW5nLCByZW5kZXJUb3BSaWdodFVJOiByZW5kZXJUb3BSaWdodFVJLCByZW5kZXJDdXN0b21Gb290ZXI6IHJlbmRlckZvb3Rlciwgdmlld01vZGVFbmFibGVkOiB2aWV3TW9kZUVuYWJsZWQsIHNob3dFeGl0WmVuTW9kZUJ0bjogdHlwZW9mICgoX2EgPSB0aGlzLnByb3BzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuemVuTW9kZUVuYWJsZWQpID09PSBcXFwidW5kZWZpbmVkXFxcIiAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgemVuTW9kZUVuYWJsZWQsIHNob3dUaGVtZUJ0bjogdHlwZW9mICgoX2IgPSB0aGlzLnByb3BzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IudGhlbWUpID09PSBcXFwidW5kZWZpbmVkXFxcIiAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5VSU9wdGlvbnMuY2FudmFzQWN0aW9ucy50aGVtZSwgbGlicmFyeVJldHVyblVybDogdGhpcy5wcm9wcy5saWJyYXJ5UmV0dXJuVXJsLCBVSU9wdGlvbnM6IHRoaXMucHJvcHMuVUlPcHRpb25zLCBmb2N1c0NvbnRhaW5lcjogdGhpcy5mb2N1c0NvbnRhaW5lciwgbGlicmFyeTogdGhpcy5saWJyYXJ5LCBpZDogdGhpcy5pZCwgb25JbWFnZUFjdGlvbjogdGhpcy5vbkltYWdlQWN0aW9uIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgeyBjbGFzc05hbWU6IFxcXCJleGNhbGlkcmF3LXRleHRFZGl0b3JDb250YWluZXJcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgeyBjbGFzc05hbWU6IFxcXCJleGNhbGlkcmF3LWNvbnRleHRNZW51Q29udGFpbmVyXFxcIiB9LCB2b2lkIDApLCBzZWxlY3RlZEVsZW1lbnQubGVuZ3RoID09PSAxICYmIHRoaXMuc3RhdGUuc2hvd0h5cGVybGlua1BvcHVwICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2VsZW1lbnRfSHlwZXJsaW5rX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80Nl9fLkh5cGVybGluaywgeyBlbGVtZW50OiBzZWxlY3RlZEVsZW1lbnRbMF0sIGFwcFN0YXRlOiB0aGlzLnN0YXRlLCBzZXRBcHBTdGF0ZTogdGhpcy5zZXRBcHBTdGF0ZSwgb25MaW5rT3BlbjogdGhpcy5wcm9wcy5vbkxpbmtPcGVuIH0sIHNlbGVjdGVkRWxlbWVudFswXS5pZCkpLCB0aGlzLnN0YXRlLnNob3dTdGF0cyAmJiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9TdGF0c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzdfXy5TdGF0cywgeyBhcHBTdGF0ZTogdGhpcy5zdGF0ZSwgc2V0QXBwU3RhdGU6IHRoaXMuc2V0QXBwU3RhdGUsIGVsZW1lbnRzOiB0aGlzLnNjZW5lLmdldEVsZW1lbnRzKCksIG9uQ2xvc2U6IHRoaXMudG9nZ2xlU3RhdHMsIHJlbmRlckN1c3RvbVN0YXRzOiByZW5kZXJDdXN0b21TdGF0cyB9LCB2b2lkIDApKSwgdGhpcy5zdGF0ZS50b2FzdE1lc3NhZ2UgIT09IG51bGwgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfVG9hc3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM4X18uVG9hc3QsIHsgbWVzc2FnZTogdGhpcy5zdGF0ZS50b2FzdE1lc3NhZ2UsIGNsZWFyVG9hc3Q6IHRoaXMuY2xlYXJUb2FzdCB9LCB2b2lkIDApKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJtYWluXFxcIiwgeyBjaGlsZHJlbjogdGhpcy5yZW5kZXJDYW52YXMoKSB9LCB2b2lkIDApXSB9KSwgdm9pZCAwKSB9KSwgdm9pZCAwKSB9KSwgdm9pZCAwKSk7XFxuICAgIH1cXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XFxuICAgICAgICB2YXIgX2EsIF9iO1xcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgICAgICAgICB0aGlzLnVubW91bnRlZCA9IGZhbHNlO1xcbiAgICAgICAgICAgIHRoaXMuZXhjYWxpZHJhd0NvbnRhaW5lclZhbHVlLmNvbnRhaW5lciA9XFxuICAgICAgICAgICAgICAgIHRoaXMuZXhjYWxpZHJhd0NvbnRhaW5lclJlZi5jdXJyZW50O1xcbiAgICAgICAgICAgIGlmIChcXFwiZGV2ZWxvcG1lbnRcXFwiID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVOVi5URVNUIHx8XFxuICAgICAgICAgICAgICAgIFxcXCJkZXZlbG9wbWVudFxcXCIgPT09IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRU5WLkRFVkVMT1BNRU5UKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHNldFN0YXRlID0gdGhpcy5zZXRTdGF0ZS5iaW5kKHRoaXMpO1xcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh3aW5kb3cuaCwge1xcbiAgICAgICAgICAgICAgICAgICAgc3RhdGU6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OiAoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YXRlO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAgc2V0U3RhdGU6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICguLi5hcmdzKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNldFN0YXRlKC4uLmFyZ3MpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAgYXBwOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgIGhpc3Rvcnk6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuaGlzdG9yeSxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB0aGlzLnNjZW5lLmFkZENhbGxiYWNrKHRoaXMub25TY2VuZVVwZGF0ZWQpO1xcbiAgICAgICAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnMoKTtcXG4gICAgICAgICAgICBpZiAodGhpcy5leGNhbGlkcmF3Q29udGFpbmVyUmVmLmN1cnJlbnQpIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c0NvbnRhaW5lcigpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoXFxcIlJlc2l6ZU9ic2VydmVyXFxcIiBpbiB3aW5kb3cgJiYgKChfYSA9IHRoaXMuZXhjYWxpZHJhd0NvbnRhaW5lclJlZikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmN1cnJlbnQpKSB7XFxuICAgICAgICAgICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgLy8gY29tcHV0ZSBpc01vYmlsZSBzdGF0ZVxcbiAgICAgICAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMuZXhjYWxpZHJhd0NvbnRhaW5lclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc01vYmlsZSA9XFxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggPCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLk1RX01BWF9XSURUSF9QT1JUUkFJVCB8fFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGVpZ2h0IDwgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5NUV9NQVhfSEVJR0hUX0xBTkRTQ0FQRSAmJiB3aWR0aCA8IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uTVFfTUFYX1dJRFRIX0xBTkRTQ0FQRSk7XFxuICAgICAgICAgICAgICAgICAgICAvLyByZWZyZXNoIG9mZnNldHNcXG4gICAgICAgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVET01SZWN0KCk7XFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAoX2IgPSB0aGlzLnJlc2l6ZU9ic2VydmVyKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Iub2JzZXJ2ZSh0aGlzLmV4Y2FsaWRyYXdDb250YWluZXJSZWYuY3VycmVudCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2UgaWYgKHdpbmRvdy5tYXRjaE1lZGlhKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IG1lZGlhUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYShgKG1heC13aWR0aDogJHtfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLk1RX01BWF9XSURUSF9QT1JUUkFJVH1weCksIChtYXgtaGVpZ2h0OiAke19jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uTVFfTUFYX0hFSUdIVF9MQU5EU0NBUEV9cHgpIGFuZCAobWF4LXdpZHRoOiAke19jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uTVFfTUFYX1dJRFRIX0xBTkRTQ0FQRX1weClgKTtcXG4gICAgICAgICAgICAgICAgY29uc3QgaGFuZGxlciA9ICgpID0+ICh0aGlzLmlzTW9iaWxlID0gbWVkaWFRdWVyeS5tYXRjaGVzKTtcXG4gICAgICAgICAgICAgICAgbWVkaWFRdWVyeS5hZGRMaXN0ZW5lcihoYW5kbGVyKTtcXG4gICAgICAgICAgICAgICAgdGhpcy5kZXRhY2hJc01vYmlsZU1xSGFuZGxlciA9ICgpID0+IG1lZGlhUXVlcnkucmVtb3ZlTGlzdGVuZXIoaGFuZGxlcik7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaC5zbGljZSgxKSk7XFxuICAgICAgICAgICAgaWYgKHNlYXJjaFBhcmFtcy5oYXMoXFxcIndlYi1zaGFyZS10YXJnZXRcXFwiKSkge1xcbiAgICAgICAgICAgICAgICAvLyBPYnRhaW4gYSBmaWxlIHRoYXQgd2FzIHNoYXJlZCB2aWEgdGhlIFdlYiBTaGFyZSBUYXJnZXQgQVBJLlxcbiAgICAgICAgICAgICAgICB0aGlzLnJlc3RvcmVGaWxlRnJvbVNoYXJlKCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZURPTVJlY3QodGhpcy5pbml0aWFsaXplU2NlbmUpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcbiAgICB9XFxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xcbiAgICAgICAgdmFyIF9hO1xcbiAgICAgICAgdGhpcy5maWxlcyA9IHt9O1xcbiAgICAgICAgdGhpcy5pbWFnZUNhY2hlLmNsZWFyKCk7XFxuICAgICAgICAoX2EgPSB0aGlzLnJlc2l6ZU9ic2VydmVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzY29ubmVjdCgpO1xcbiAgICAgICAgdGhpcy51bm1vdW50ZWQgPSB0cnVlO1xcbiAgICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVycygpO1xcbiAgICAgICAgdGhpcy5zY2VuZS5kZXN0cm95KCk7XFxuICAgICAgICBjbGVhclRpbWVvdXQodG91Y2hUaW1lb3V0KTtcXG4gICAgICAgIHRvdWNoVGltZW91dCA9IDA7XFxuICAgIH1cXG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcnMoKSB7XFxuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XFxuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuUE9JTlRFUl9VUCwgdGhpcy5yZW1vdmVQb2ludGVyKTtcXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5DT1BZLCB0aGlzLm9uQ29weSk7XFxuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuUEFTVEUsIHRoaXMucGFzdGVGcm9tQ2xpcGJvYXJkKTtcXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5DVVQsIHRoaXMub25DdXQpO1xcbiAgICAgICAgKF9hID0gdGhpcy5uZWFyZXN0U2Nyb2xsYWJsZUNvbnRhaW5lcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5TQ1JPTEwsIHRoaXMub25TY3JvbGwpO1xcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULktFWURPV04sIHRoaXMub25LZXlEb3duLCBmYWxzZSk7XFxuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuTU9VU0VfTU9WRSwgdGhpcy51cGRhdGVDdXJyZW50Q3Vyc29yUG9zaXRpb24sIGZhbHNlKTtcXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5LRVlVUCwgdGhpcy5vbktleVVwKTtcXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuUkVTSVpFLCB0aGlzLm9uUmVzaXplLCBmYWxzZSk7XFxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULlVOTE9BRCwgdGhpcy5vblVubG9hZCwgZmFsc2UpO1xcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5CTFVSLCB0aGlzLm9uQmx1ciwgZmFsc2UpO1xcbiAgICAgICAgKF9iID0gdGhpcy5leGNhbGlkcmF3Q29udGFpbmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5yZW1vdmVFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuRFJBR19PVkVSLCB0aGlzLmRpc2FibGVFdmVudCwgZmFsc2UpO1xcbiAgICAgICAgKF9jID0gdGhpcy5leGNhbGlkcmF3Q29udGFpbmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5yZW1vdmVFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuRFJPUCwgdGhpcy5kaXNhYmxlRXZlbnQsIGZhbHNlKTtcXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5HRVNUVVJFX1NUQVJULCB0aGlzLm9uR2VzdHVyZVN0YXJ0LCBmYWxzZSk7XFxuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuR0VTVFVSRV9DSEFOR0UsIHRoaXMub25HZXN0dXJlQ2hhbmdlLCBmYWxzZSk7XFxuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuR0VTVFVSRV9FTkQsIHRoaXMub25HZXN0dXJlRW5kLCBmYWxzZSk7XFxuICAgICAgICAoX2QgPSB0aGlzLmRldGFjaElzTW9iaWxlTXFIYW5kbGVyKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QuY2FsbCh0aGlzKTtcXG4gICAgfVxcbiAgICBhZGRFdmVudExpc3RlbmVycygpIHtcXG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcXG4gICAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcnMoKTtcXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5QT0lOVEVSX1VQLCB0aGlzLnJlbW92ZVBvaW50ZXIpOyAvLyAjMzU1M1xcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULkNPUFksIHRoaXMub25Db3B5KTtcXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmhhbmRsZUtleWJvYXJkR2xvYmFsbHkpIHtcXG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuS0VZRE9XTiwgdGhpcy5vbktleURvd24sIGZhbHNlKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5LRVlVUCwgdGhpcy5vbktleVVwLCB7IHBhc3NpdmU6IHRydWUgfSk7XFxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuTU9VU0VfTU9WRSwgdGhpcy51cGRhdGVDdXJyZW50Q3Vyc29yUG9zaXRpb24pO1xcbiAgICAgICAgLy8gcmVyZW5kZXIgdGV4dCBlbGVtZW50cyBvbiBmb250IGxvYWQgdG8gZml4ICM2MzcgJiYgIzE1NTNcXG4gICAgICAgIChfYiA9IChfYSA9IGRvY3VtZW50LmZvbnRzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYWRkRXZlbnRMaXN0ZW5lcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIFxcXCJsb2FkaW5nZG9uZVxcXCIsIHRoaXMub25Gb250TG9hZGVkKTtcXG4gICAgICAgIC8vIFNhZmFyaS1vbmx5IGRlc2t0b3AgcGluY2ggem9vbVxcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULkdFU1RVUkVfU1RBUlQsIHRoaXMub25HZXN0dXJlU3RhcnQsIGZhbHNlKTtcXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5HRVNUVVJFX0NIQU5HRSwgdGhpcy5vbkdlc3R1cmVDaGFuZ2UsIGZhbHNlKTtcXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5HRVNUVVJFX0VORCwgdGhpcy5vbkdlc3R1cmVFbmQsIGZhbHNlKTtcXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnZpZXdNb2RlRW5hYmxlZCkge1xcbiAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgIH1cXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5QQVNURSwgdGhpcy5wYXN0ZUZyb21DbGlwYm9hcmQpO1xcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULkNVVCwgdGhpcy5vbkN1dCk7XFxuICAgICAgICBpZiAodGhpcy5wcm9wcy5kZXRlY3RTY3JvbGwpIHtcXG4gICAgICAgICAgICB0aGlzLm5lYXJlc3RTY3JvbGxhYmxlQ29udGFpbmVyID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLmdldE5lYXJlc3RTY3JvbGxhYmxlQ29udGFpbmVyKSh0aGlzLmV4Y2FsaWRyYXdDb250YWluZXJSZWYuY3VycmVudCk7XFxuICAgICAgICAgICAgdGhpcy5uZWFyZXN0U2Nyb2xsYWJsZUNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuU0NST0xMLCB0aGlzLm9uU2Nyb2xsKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuUkVTSVpFLCB0aGlzLm9uUmVzaXplLCBmYWxzZSk7XFxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULlVOTE9BRCwgdGhpcy5vblVubG9hZCwgZmFsc2UpO1xcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5CTFVSLCB0aGlzLm9uQmx1ciwgZmFsc2UpO1xcbiAgICAgICAgKF9jID0gdGhpcy5leGNhbGlkcmF3Q29udGFpbmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5hZGRFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuRFJBR19PVkVSLCB0aGlzLmRpc2FibGVFdmVudCwgZmFsc2UpO1xcbiAgICAgICAgKF9kID0gdGhpcy5leGNhbGlkcmF3Q29udGFpbmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5hZGRFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuRFJPUCwgdGhpcy5kaXNhYmxlRXZlbnQsIGZhbHNlKTtcXG4gICAgfVxcbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUpIHtcXG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xcbiAgICAgICAgLy8gSGlkZSBoeXBlcmxpbmsgcG9wdXAgaWYgc2hvd24gd2hlbiBlbGVtZW50IHR5cGUgaXMgbm90IHNlbGVjdGlvblxcbiAgICAgICAgaWYgKHByZXZTdGF0ZS5lbGVtZW50VHlwZSA9PT0gXFxcInNlbGVjdGlvblxcXCIgJiZcXG4gICAgICAgICAgICB0aGlzLnN0YXRlLmVsZW1lbnRUeXBlICE9PSBcXFwic2VsZWN0aW9uXFxcIiAmJlxcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuc2hvd0h5cGVybGlua1BvcHVwKSB7XFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNob3dIeXBlcmxpbmtQb3B1cDogZmFsc2UgfSk7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAocHJldlByb3BzLmxhbmdDb2RlICE9PSB0aGlzLnByb3BzLmxhbmdDb2RlKSB7XFxuICAgICAgICAgICAgdGhpcy51cGRhdGVMYW5ndWFnZSgpO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKHByZXZQcm9wcy52aWV3TW9kZUVuYWJsZWQgIT09IHRoaXMucHJvcHMudmlld01vZGVFbmFibGVkKSB7XFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZpZXdNb2RlRW5hYmxlZDogISF0aGlzLnByb3BzLnZpZXdNb2RlRW5hYmxlZCB9KTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChwcmV2U3RhdGUudmlld01vZGVFbmFibGVkICE9PSB0aGlzLnN0YXRlLnZpZXdNb2RlRW5hYmxlZCkge1xcbiAgICAgICAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnMoKTtcXG4gICAgICAgICAgICB0aGlzLmRlc2VsZWN0RWxlbWVudHMoKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChwcmV2UHJvcHMuemVuTW9kZUVuYWJsZWQgIT09IHRoaXMucHJvcHMuemVuTW9kZUVuYWJsZWQpIHtcXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgemVuTW9kZUVuYWJsZWQ6ICEhdGhpcy5wcm9wcy56ZW5Nb2RlRW5hYmxlZCB9KTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChwcmV2UHJvcHMudGhlbWUgIT09IHRoaXMucHJvcHMudGhlbWUgJiYgdGhpcy5wcm9wcy50aGVtZSkge1xcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyB0aGVtZTogdGhpcy5wcm9wcy50aGVtZSB9KTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChwcmV2UHJvcHMuZ3JpZE1vZGVFbmFibGVkICE9PSB0aGlzLnByb3BzLmdyaWRNb2RlRW5hYmxlZCkge1xcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICBncmlkU2l6ZTogdGhpcy5wcm9wcy5ncmlkTW9kZUVuYWJsZWQgPyBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkdSSURfU0laRSA6IG51bGwsXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAodGhpcy5wcm9wcy5uYW1lICYmIHByZXZQcm9wcy5uYW1lICE9PSB0aGlzLnByb3BzLm5hbWUpIHtcXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5wcm9wcy5uYW1lLFxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfVxcbiAgICAgICAgKF9hID0gdGhpcy5leGNhbGlkcmF3Q29udGFpbmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jbGFzc0xpc3QudG9nZ2xlKFxcXCJ0aGVtZS0tZGFya1xcXCIsIHRoaXMuc3RhdGUudGhlbWUgPT09IFxcXCJkYXJrXFxcIik7XFxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudCAmJlxcbiAgICAgICAgICAgICF0aGlzLnN0YXRlLnNlbGVjdGVkRWxlbWVudElkc1t0aGlzLnN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50LmVsZW1lbnRJZF0pIHtcXG4gICAgICAgICAgICAvLyBkZWZlciBzbyB0aGF0IHRoZSBjb21taXRUb0hpc3RvcnkgZmxhZyBpc24ndCByZXNldCB2aWEgY3VycmVudCB1cGRhdGVcXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcXG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25NYW5hZ2VyLmV4ZWN1dGVBY3Rpb24oX2FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hY3Rpb25GaW5hbGl6ZSk7XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCB7IG11bHRpRWxlbWVudCB9ID0gcHJldlN0YXRlO1xcbiAgICAgICAgaWYgKHByZXZTdGF0ZS5lbGVtZW50VHlwZSAhPT0gdGhpcy5zdGF0ZS5lbGVtZW50VHlwZSAmJlxcbiAgICAgICAgICAgIG11bHRpRWxlbWVudCAhPSBudWxsICYmXFxuICAgICAgICAgICAgKDAsX2VsZW1lbnRfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5pc0JpbmRpbmdFbmFibGVkKSh0aGlzLnN0YXRlKSAmJlxcbiAgICAgICAgICAgICgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIxX18uaXNCaW5kaW5nRWxlbWVudCkobXVsdGlFbGVtZW50KSkge1xcbiAgICAgICAgICAgICgwLF9lbGVtZW50X2JpbmRpbmdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE3X18ubWF5YmVCaW5kTGluZWFyRWxlbWVudCkobXVsdGlFbGVtZW50LCB0aGlzLnN0YXRlLCB0aGlzLnNjZW5lLCAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18udHVwbGVUb0Nvb3JzKShfZWxlbWVudF9saW5lYXJFbGVtZW50RWRpdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOF9fLkxpbmVhckVsZW1lbnRFZGl0b3IuZ2V0UG9pbnRBdEluZGV4R2xvYmFsQ29vcmRpbmF0ZXMobXVsdGlFbGVtZW50LCAtMSkpKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IGN1cnNvckJ1dHRvbiA9IHt9O1xcbiAgICAgICAgY29uc3QgcG9pbnRlclZpZXdwb3J0Q29vcmRzID0ge307XFxuICAgICAgICBjb25zdCByZW1vdGVTZWxlY3RlZEVsZW1lbnRJZHMgPSB7fTtcXG4gICAgICAgIGNvbnN0IHBvaW50ZXJVc2VybmFtZXMgPSB7fTtcXG4gICAgICAgIGNvbnN0IHBvaW50ZXJVc2VyU3RhdGVzID0ge307XFxuICAgICAgICB0aGlzLnN0YXRlLmNvbGxhYm9yYXRvcnMuZm9yRWFjaCgodXNlciwgc29ja2V0SWQpID0+IHtcXG4gICAgICAgICAgICBpZiAodXNlci5zZWxlY3RlZEVsZW1lbnRJZHMpIHtcXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpZCBvZiBPYmplY3Qua2V5cyh1c2VyLnNlbGVjdGVkRWxlbWVudElkcykpIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICghKGlkIGluIHJlbW90ZVNlbGVjdGVkRWxlbWVudElkcykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdGVTZWxlY3RlZEVsZW1lbnRJZHNbaWRdID0gW107XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICByZW1vdGVTZWxlY3RlZEVsZW1lbnRJZHNbaWRdLnB1c2goc29ja2V0SWQpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICghdXNlci5wb2ludGVyKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHVzZXIudXNlcm5hbWUpIHtcXG4gICAgICAgICAgICAgICAgcG9pbnRlclVzZXJuYW1lc1tzb2NrZXRJZF0gPSB1c2VyLnVzZXJuYW1lO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAodXNlci51c2VyU3RhdGUpIHtcXG4gICAgICAgICAgICAgICAgcG9pbnRlclVzZXJTdGF0ZXNbc29ja2V0SWRdID0gdXNlci51c2VyU3RhdGU7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHBvaW50ZXJWaWV3cG9ydENvb3Jkc1tzb2NrZXRJZF0gPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uc2NlbmVDb29yZHNUb1ZpZXdwb3J0Q29vcmRzKSh7XFxuICAgICAgICAgICAgICAgIHNjZW5lWDogdXNlci5wb2ludGVyLngsXFxuICAgICAgICAgICAgICAgIHNjZW5lWTogdXNlci5wb2ludGVyLnksXFxuICAgICAgICAgICAgfSwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgY3Vyc29yQnV0dG9uW3NvY2tldElkXSA9IHVzZXIuYnV0dG9uO1xcbiAgICAgICAgfSk7XFxuICAgICAgICBjb25zdCByZW5kZXJpbmdFbGVtZW50cyA9IHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKS5maWx0ZXIoKGVsZW1lbnQpID0+IHtcXG4gICAgICAgICAgICBpZiAoKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjFfXy5pc0ltYWdlRWxlbWVudCkoZWxlbWVudCkpIHtcXG4gICAgICAgICAgICAgICAgaWYgKFxcbiAgICAgICAgICAgICAgICAvLyBub3QgcGxhY2VkIG9uIGNhbnZhcyB5ZXQgKGJ1dCBpbiBlbGVtZW50cyBhcnJheSlcXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5wZW5kaW5nSW1hZ2VFbGVtZW50ICYmXFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlkID09PSB0aGlzLnN0YXRlLnBlbmRpbmdJbWFnZUVsZW1lbnQuaWQpIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAvLyBkb24ndCByZW5kZXIgdGV4dCBlbGVtZW50IHRoYXQncyBiZWluZyBjdXJyZW50bHkgZWRpdGVkIChpdCdzXFxuICAgICAgICAgICAgLy8gcmVuZGVyZWQgb24gcmVtb3RlIG9ubHkpXFxuICAgICAgICAgICAgcmV0dXJuICghdGhpcy5zdGF0ZS5lZGl0aW5nRWxlbWVudCB8fFxcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmVkaXRpbmdFbGVtZW50LnR5cGUgIT09IFxcXCJ0ZXh0XFxcIiB8fFxcbiAgICAgICAgICAgICAgICBlbGVtZW50LmlkICE9PSB0aGlzLnN0YXRlLmVkaXRpbmdFbGVtZW50LmlkKTtcXG4gICAgICAgIH0pO1xcbiAgICAgICAgY29uc3QgeyBhdExlYXN0T25lVmlzaWJsZUVsZW1lbnQsIHNjcm9sbEJhcnMgfSA9ICgwLF9yZW5kZXJlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjhfXy5yZW5kZXJTY2VuZSkocmVuZGVyaW5nRWxlbWVudHMsIHRoaXMuc3RhdGUsIHRoaXMuc3RhdGUuc2VsZWN0aW9uRWxlbWVudCwgd2luZG93LmRldmljZVBpeGVsUmF0aW8sIHRoaXMucmMsIHRoaXMuY2FudmFzLCB7XFxuICAgICAgICAgICAgc2Nyb2xsWDogdGhpcy5zdGF0ZS5zY3JvbGxYLFxcbiAgICAgICAgICAgIHNjcm9sbFk6IHRoaXMuc3RhdGUuc2Nyb2xsWSxcXG4gICAgICAgICAgICB2aWV3QmFja2dyb3VuZENvbG9yOiB0aGlzLnN0YXRlLnZpZXdCYWNrZ3JvdW5kQ29sb3IsXFxuICAgICAgICAgICAgem9vbTogdGhpcy5zdGF0ZS56b29tLFxcbiAgICAgICAgICAgIHJlbW90ZVBvaW50ZXJWaWV3cG9ydENvb3JkczogcG9pbnRlclZpZXdwb3J0Q29vcmRzLFxcbiAgICAgICAgICAgIHJlbW90ZVBvaW50ZXJCdXR0b246IGN1cnNvckJ1dHRvbixcXG4gICAgICAgICAgICByZW1vdGVTZWxlY3RlZEVsZW1lbnRJZHMsXFxuICAgICAgICAgICAgcmVtb3RlUG9pbnRlclVzZXJuYW1lczogcG9pbnRlclVzZXJuYW1lcyxcXG4gICAgICAgICAgICByZW1vdGVQb2ludGVyVXNlclN0YXRlczogcG9pbnRlclVzZXJTdGF0ZXMsXFxuICAgICAgICAgICAgc2hvdWxkQ2FjaGVJZ25vcmVab29tOiB0aGlzLnN0YXRlLnNob3VsZENhY2hlSWdub3JlWm9vbSxcXG4gICAgICAgICAgICB0aGVtZTogdGhpcy5zdGF0ZS50aGVtZSxcXG4gICAgICAgICAgICBpbWFnZUNhY2hlOiB0aGlzLmltYWdlQ2FjaGUsXFxuICAgICAgICAgICAgaXNFeHBvcnRpbmc6IGZhbHNlLFxcbiAgICAgICAgICAgIHJlbmRlclNjcm9sbGJhcnM6ICF0aGlzLmlzTW9iaWxlLFxcbiAgICAgICAgfSk7XFxuICAgICAgICBpZiAoc2Nyb2xsQmFycykge1xcbiAgICAgICAgICAgIGN1cnJlbnRTY3JvbGxCYXJzID0gc2Nyb2xsQmFycztcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IHNjcm9sbGVkT3V0c2lkZSA9IFxcbiAgICAgICAgLy8gaGlkZSB3aGVuIGVkaXRpbmcgdGV4dFxcbiAgICAgICAgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uaXNUZXh0RWxlbWVudCkodGhpcy5zdGF0ZS5lZGl0aW5nRWxlbWVudClcXG4gICAgICAgICAgICA/IGZhbHNlXFxuICAgICAgICAgICAgOiAhYXRMZWFzdE9uZVZpc2libGVFbGVtZW50ICYmIHJlbmRlcmluZ0VsZW1lbnRzLmxlbmd0aCA+IDA7XFxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5zY3JvbGxlZE91dHNpZGUgIT09IHNjcm9sbGVkT3V0c2lkZSkge1xcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzY3JvbGxlZE91dHNpZGUgfSk7XFxuICAgICAgICB9XFxuICAgICAgICB0aGlzLmhpc3RvcnkucmVjb3JkKHRoaXMuc3RhdGUsIHRoaXMuc2NlbmUuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCkpO1xcbiAgICAgICAgdGhpcy5zY2hlZHVsZUltYWdlUmVmcmVzaCgpO1xcbiAgICAgICAgLy8gRG8gbm90IG5vdGlmeSBjb25zdW1lcnMgaWYgd2UncmUgc3RpbGwgbG9hZGluZyB0aGUgc2NlbmUuIEFtb25nIG90aGVyXFxuICAgICAgICAvLyBwb3RlbnRpYWwgaXNzdWVzLCB0aGlzIGZpeGVzIGEgY2FzZSB3aGVyZSB0aGUgdGFiIGlzbid0IGZvY3VzZWQgZHVyaW5nXFxuICAgICAgICAvLyBpbml0LCB3aGljaCB3b3VsZCB0cmlnZ2VyIG9uQ2hhbmdlIHdpdGggZW1wdHkgZWxlbWVudHMsIHdoaWNoIHdvdWxkIHRoZW5cXG4gICAgICAgIC8vIG92ZXJyaWRlIHdoYXRldmVyIGlzIGluIGxvY2FsU3RvcmFnZSBjdXJyZW50bHkuXFxuICAgICAgICBpZiAoIXRoaXMuc3RhdGUuaXNMb2FkaW5nKSB7XFxuICAgICAgICAgICAgKF9jID0gKF9iID0gdGhpcy5wcm9wcykub25DaGFuZ2UpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5jYWxsKF9iLCB0aGlzLnNjZW5lLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpLCB0aGlzLnN0YXRlLCB0aGlzLmZpbGVzKTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBzdGF0aWMgcmVzZXRUYXBUd2ljZSgpIHtcXG4gICAgICAgIGRpZFRhcFR3aWNlID0gZmFsc2U7XFxuICAgIH1cXG4gICAgYWRkVGV4dEZyb21QYXN0ZSh0ZXh0KSB7XFxuICAgICAgICBjb25zdCB7IHgsIHkgfSA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy52aWV3cG9ydENvb3Jkc1RvU2NlbmVDb29yZHMpKHsgY2xpZW50WDogY3Vyc29yWCwgY2xpZW50WTogY3Vyc29yWSB9LCB0aGlzLnN0YXRlKTtcXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5uZXdUZXh0RWxlbWVudCkoe1xcbiAgICAgICAgICAgIHgsXFxuICAgICAgICAgICAgeSxcXG4gICAgICAgICAgICBzdHJva2VDb2xvcjogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbVN0cm9rZUNvbG9yLFxcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbUJhY2tncm91bmRDb2xvcixcXG4gICAgICAgICAgICBmaWxsU3R5bGU6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1GaWxsU3R5bGUsXFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1TdHJva2VXaWR0aCxcXG4gICAgICAgICAgICBzdHJva2VTdHlsZTogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbVN0cm9rZVN0eWxlLFxcbiAgICAgICAgICAgIHJvdWdobmVzczogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbVJvdWdobmVzcyxcXG4gICAgICAgICAgICBvcGFjaXR5OiB0aGlzLnN0YXRlLmN1cnJlbnRJdGVtT3BhY2l0eSxcXG4gICAgICAgICAgICBzdHJva2VTaGFycG5lc3M6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1TdHJva2VTaGFycG5lc3MsXFxuICAgICAgICAgICAgdGV4dCxcXG4gICAgICAgICAgICBmb250U2l6ZTogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbUZvbnRTaXplLFxcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6IHRoaXMuc3RhdGUuY3VycmVudEl0ZW1Gb250RmFtaWx5LFxcbiAgICAgICAgICAgIHRleHRBbGlnbjogdGhpcy5zdGF0ZS5jdXJyZW50SXRlbVRleHRBbGlnbixcXG4gICAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkRFRkFVTFRfVkVSVElDQUxfQUxJR04sXFxuICAgICAgICB9KTtcXG4gICAgICAgIHRoaXMuc2NlbmUucmVwbGFjZUFsbEVsZW1lbnRzKFtcXG4gICAgICAgICAgICAuLi50aGlzLnNjZW5lLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpLFxcbiAgICAgICAgICAgIGVsZW1lbnQsXFxuICAgICAgICBdKTtcXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzZWxlY3RlZEVsZW1lbnRJZHM6IHsgW2VsZW1lbnQuaWRdOiB0cnVlIH0gfSk7XFxuICAgICAgICB0aGlzLmhpc3RvcnkucmVzdW1lUmVjb3JkaW5nKCk7XFxuICAgIH1cXG4gICAgc2VsZWN0U2hhcGVUb29sKGVsZW1lbnRUeXBlKSB7XFxuICAgICAgICBpZiAoIWlzSG9sZGluZ1NwYWNlKSB7XFxuICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnNldEN1cnNvckZvclNoYXBlKSh0aGlzLmNhbnZhcywgZWxlbWVudFR5cGUpO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKCgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5pc1Rvb2xJY29uKShkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkge1xcbiAgICAgICAgICAgIHRoaXMuZm9jdXNDb250YWluZXIoKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmICghKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjFfXy5pc0xpbmVhckVsZW1lbnRUeXBlKShlbGVtZW50VHlwZSkpIHtcXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc3VnZ2VzdGVkQmluZGluZ3M6IFtdIH0pO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKGVsZW1lbnRUeXBlID09PSBcXFwiaW1hZ2VcXFwiKSB7XFxuICAgICAgICAgICAgdGhpcy5vbkltYWdlQWN0aW9uKCk7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoZWxlbWVudFR5cGUgIT09IFxcXCJzZWxlY3Rpb25cXFwiKSB7XFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgIGVsZW1lbnRUeXBlLFxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRJZHM6IHt9LFxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEdyb3VwSWRzOiB7fSxcXG4gICAgICAgICAgICAgICAgZWRpdGluZ0dyb3VwSWQ6IG51bGwsXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZWxlbWVudFR5cGUgfSk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgaGFuZGxlVGV4dFd5c2l3eWcoZWxlbWVudCwgeyBpc0V4aXN0aW5nRWxlbWVudCA9IGZhbHNlLCB9KSB7XFxuICAgICAgICBjb25zdCB1cGRhdGVFbGVtZW50ID0gKHRleHQsIG9yaWdpbmFsVGV4dCwgaXNEZWxldGVkKSA9PiB7XFxuICAgICAgICAgICAgdGhpcy5zY2VuZS5yZXBsYWNlQWxsRWxlbWVudHMoW1xcbiAgICAgICAgICAgICAgICAuLi50aGlzLnNjZW5lLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpLm1hcCgoX2VsZW1lbnQpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChfZWxlbWVudC5pZCA9PT0gZWxlbWVudC5pZCAmJiAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5pc1RleHRFbGVtZW50KShfZWxlbWVudCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18udXBkYXRlVGV4dEVsZW1lbnQpKF9lbGVtZW50LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVsZXRlZCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxUZXh0LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9lbGVtZW50O1xcbiAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICBdKTtcXG4gICAgICAgIH07XFxuICAgICAgICAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy50ZXh0V3lzaXd5Zykoe1xcbiAgICAgICAgICAgIGlkOiBlbGVtZW50LmlkLFxcbiAgICAgICAgICAgIGNhbnZhczogdGhpcy5jYW52YXMsXFxuICAgICAgICAgICAgZ2V0Vmlld3BvcnRDb29yZHM6ICh4LCB5KSA9PiB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHsgeDogdmlld3BvcnRYLCB5OiB2aWV3cG9ydFkgfSA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5zY2VuZUNvb3Jkc1RvVmlld3BvcnRDb29yZHMpKHtcXG4gICAgICAgICAgICAgICAgICAgIHNjZW5lWDogeCxcXG4gICAgICAgICAgICAgICAgICAgIHNjZW5lWTogeSxcXG4gICAgICAgICAgICAgICAgfSwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgICAgIHJldHVybiBbXFxuICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydFggLSB0aGlzLnN0YXRlLm9mZnNldExlZnQsXFxuICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydFkgLSB0aGlzLnN0YXRlLm9mZnNldFRvcCxcXG4gICAgICAgICAgICAgICAgXTtcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18ud2l0aEJhdGNoZWRVcGRhdGVzKSgodGV4dCkgPT4ge1xcbiAgICAgICAgICAgICAgICB1cGRhdGVFbGVtZW50KHRleHQsIHRleHQsIGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgaWYgKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmlzTm9uRGVsZXRlZEVsZW1lbnQpKGVsZW1lbnQpKSB7XFxuICAgICAgICAgICAgICAgICAgICAoMCxfZWxlbWVudF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xN19fLnVwZGF0ZUJvdW5kRWxlbWVudHMpKGVsZW1lbnQpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgb25TdWJtaXQ6ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy53aXRoQmF0Y2hlZFVwZGF0ZXMpKCh7IHRleHQsIHZpYUtleWJvYXJkLCBvcmlnaW5hbFRleHQgfSkgPT4ge1xcbiAgICAgICAgICAgICAgICBjb25zdCBpc0RlbGV0ZWQgPSAhdGV4dC50cmltKCk7XFxuICAgICAgICAgICAgICAgIHVwZGF0ZUVsZW1lbnQodGV4dCwgb3JpZ2luYWxUZXh0LCBpc0RlbGV0ZWQpO1xcbiAgICAgICAgICAgICAgICAvLyBzZWxlY3QgdGhlIGNyZWF0ZWQgdGV4dCBlbGVtZW50IG9ubHkgaWYgc3VibWl0dGluZyB2aWEga2V5Ym9hcmRcXG4gICAgICAgICAgICAgICAgLy8gKHdoZW4gc3VibWl0dGluZyB2aWEgY2xpY2sgaXQgc2hvdWxkIGFjdCBhcyBzaWduYWwgdG8gZGVzZWxlY3QpXFxuICAgICAgICAgICAgICAgIGlmICghaXNEZWxldGVkICYmIHZpYUtleWJvYXJkKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50SWRUb1NlbGVjdCA9IGVsZW1lbnQuY29udGFpbmVySWRcXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGVsZW1lbnQuY29udGFpbmVySWRcXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGVsZW1lbnQuaWQ7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKChwcmV2U3RhdGUpID0+ICh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50SWRzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHByZXZTdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHMpLCB7IFtlbGVtZW50SWRUb1NlbGVjdF06IHRydWUgfSksXFxuICAgICAgICAgICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaWYgKGlzRGVsZXRlZCkge1xcbiAgICAgICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5maXhCaW5kaW5nc0FmdGVyRGVsZXRpb24pKHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKSwgW2VsZW1lbnRdKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBpZiAoIWlzRGVsZXRlZCB8fCBpc0V4aXN0aW5nRWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5LnJlc3VtZVJlY29yZGluZygpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dpbmdFbGVtZW50OiBudWxsLFxcbiAgICAgICAgICAgICAgICAgICAgZWRpdGluZ0VsZW1lbnQ6IG51bGwsXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5lbGVtZW50TG9ja2VkKSB7XFxuICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uc2V0Q3Vyc29yRm9yU2hhcGUpKHRoaXMuY2FudmFzLCB0aGlzLnN0YXRlLmVsZW1lbnRUeXBlKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzQ29udGFpbmVyKCk7XFxuICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgZWxlbWVudCxcXG4gICAgICAgICAgICBleGNhbGlkcmF3Q29udGFpbmVyOiB0aGlzLmV4Y2FsaWRyYXdDb250YWluZXJSZWYuY3VycmVudCxcXG4gICAgICAgICAgICBhcHA6IHRoaXMsXFxuICAgICAgICB9KTtcXG4gICAgICAgIC8vIGRlc2VsZWN0IGFsbCBvdGhlciBlbGVtZW50cyB3aGVuIGluc2VydGluZyB0ZXh0XFxuICAgICAgICB0aGlzLmRlc2VsZWN0RWxlbWVudHMoKTtcXG4gICAgICAgIC8vIGRvIGFuIGluaXRpYWwgdXBkYXRlIHRvIHJlLWluaXRpYWxpemUgZWxlbWVudCBwb3NpdGlvbiBzaW5jZSB3ZSB3ZXJlXFxuICAgICAgICAvLyBtb2RpZnlpbmcgZWxlbWVudCdzIHgveSBmb3Igc2FrZSBvZiBlZGl0b3IgKGNhc2U6IHN5bmNpbmcgdG8gcmVtb3RlKVxcbiAgICAgICAgdXBkYXRlRWxlbWVudChlbGVtZW50LnRleHQsIGVsZW1lbnQub3JpZ2luYWxUZXh0LCBmYWxzZSk7XFxuICAgIH1cXG4gICAgZGVzZWxlY3RFbGVtZW50cygpIHtcXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudElkczoge30sXFxuICAgICAgICAgICAgc2VsZWN0ZWRHcm91cElkczoge30sXFxuICAgICAgICAgICAgZWRpdGluZ0dyb3VwSWQ6IG51bGwsXFxuICAgICAgICB9KTtcXG4gICAgfVxcbiAgICBnZXRUZXh0RWxlbWVudEF0UG9zaXRpb24oeCwgeSkge1xcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0RWxlbWVudEF0UG9zaXRpb24oeCwgeSwge1xcbiAgICAgICAgICAgIGluY2x1ZGVCb3VuZFRleHRFbGVtZW50OiB0cnVlLFxcbiAgICAgICAgfSk7XFxuICAgICAgICBpZiAoZWxlbWVudCAmJiAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5pc1RleHRFbGVtZW50KShlbGVtZW50KSAmJiAhZWxlbWVudC5pc0RlbGV0ZWQpIHtcXG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudDtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiBudWxsO1xcbiAgICB9XFxuICAgIGdldEVsZW1lbnRBdFBvc2l0aW9uKHgsIHksIG9wdHMpIHtcXG4gICAgICAgIGNvbnN0IGFsbEhpdEVsZW1lbnRzID0gdGhpcy5nZXRFbGVtZW50c0F0UG9zaXRpb24oeCwgeSwgb3B0cyA9PT0gbnVsbCB8fCBvcHRzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRzLmluY2x1ZGVCb3VuZFRleHRFbGVtZW50KTtcXG4gICAgICAgIGlmIChhbGxIaXRFbGVtZW50cy5sZW5ndGggPiAxKSB7XFxuICAgICAgICAgICAgaWYgKG9wdHMgPT09IG51bGwgfHwgb3B0cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0cy5wcmVmZXJTZWxlY3RlZCkge1xcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IGFsbEhpdEVsZW1lbnRzLmxlbmd0aCAtIDE7IGluZGV4ID4gLTE7IGluZGV4LS0pIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnNlbGVjdGVkRWxlbWVudElkc1thbGxIaXRFbGVtZW50c1tpbmRleF0uaWRdKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFsbEhpdEVsZW1lbnRzW2luZGV4XTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50V2l0aEhpZ2hlc3RaSW5kZXggPSBhbGxIaXRFbGVtZW50c1thbGxIaXRFbGVtZW50cy5sZW5ndGggLSAxXTtcXG4gICAgICAgICAgICAvLyBJZiB3ZSdyZSBoaXR0aW5nIGVsZW1lbnQgd2l0aCBoaWdoZXN0IHotaW5kZXggb25seSBvbiBpdHMgYm91bmRpbmcgYm94XFxuICAgICAgICAgICAgLy8gd2hpbGUgYWxzbyBoaXR0aW5nIG90aGVyIGVsZW1lbnQgZmlndXJlLCB0aGUgbGF0dGVyIHNob3VsZCBiZSBjb25zaWRlcmVkLlxcbiAgICAgICAgICAgIHJldHVybiAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5pc0hpdHRpbmdFbGVtZW50Qm91bmRpbmdCb3hXaXRob3V0SGl0dGluZ0VsZW1lbnQpKGVsZW1lbnRXaXRoSGlnaGVzdFpJbmRleCwgdGhpcy5zdGF0ZSwgeCwgeSlcXG4gICAgICAgICAgICAgICAgPyBhbGxIaXRFbGVtZW50c1thbGxIaXRFbGVtZW50cy5sZW5ndGggLSAyXVxcbiAgICAgICAgICAgICAgICA6IGVsZW1lbnRXaXRoSGlnaGVzdFpJbmRleDtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChhbGxIaXRFbGVtZW50cy5sZW5ndGggPT09IDEpIHtcXG4gICAgICAgICAgICByZXR1cm4gYWxsSGl0RWxlbWVudHNbMF07XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gbnVsbDtcXG4gICAgfVxcbiAgICBnZXRFbGVtZW50c0F0UG9zaXRpb24oeCwgeSwgaW5jbHVkZUJvdW5kVGV4dEVsZW1lbnQgPSBmYWxzZSkge1xcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBpbmNsdWRlQm91bmRUZXh0RWxlbWVudFxcbiAgICAgICAgICAgID8gdGhpcy5zY2VuZS5nZXRFbGVtZW50cygpXFxuICAgICAgICAgICAgOiB0aGlzLnNjZW5lXFxuICAgICAgICAgICAgICAgIC5nZXRFbGVtZW50cygpXFxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGVsZW1lbnQpID0+ICEoKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uaXNUZXh0RWxlbWVudCkoZWxlbWVudCkgJiYgZWxlbWVudC5jb250YWluZXJJZCkpO1xcbiAgICAgICAgcmV0dXJuICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzBfXy5nZXRFbGVtZW50c0F0UG9zaXRpb24pKGVsZW1lbnRzLCAoZWxlbWVudCkgPT4gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uaGl0VGVzdCkoZWxlbWVudCwgdGhpcy5zdGF0ZSwgeCwgeSkpO1xcbiAgICB9XFxuICAgIG1heWJlQ2xlYW51cEFmdGVyTWlzc2luZ1BvaW50ZXJVcChldmVudCkge1xcbiAgICAgICAgaWYgKGxhc3RQb2ludGVyVXAgIT09IG51bGwpIHtcXG4gICAgICAgICAgICAvLyBVbmZvcnR1bmF0ZWx5LCBzb21ldGltZXMgd2UgZG9uJ3QgZ2V0IGEgcG9pbnRlcnVwIGFmdGVyIGEgcG9pbnRlcmRvd24sXFxuICAgICAgICAgICAgLy8gdGhpcyBjYW4gaGFwcGVuIHdoZW4gYSBjb250ZXh0dWFsIG1lbnUgb3IgYWxlcnQgaXMgdHJpZ2dlcmVkLiBJbiBvcmRlciB0byBhdm9pZFxcbiAgICAgICAgICAgIC8vIGJlaW5nIGluIGEgd2VpcmQgc3RhdGUsIHdlIGNsZWFuIHVwIG9uIHRoZSBuZXh0IHBvaW50ZXJkb3duXFxuICAgICAgICAgICAgbGFzdFBvaW50ZXJVcChldmVudCk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgdXBkYXRlR2VzdHVyZU9uUG9pbnRlckRvd24oZXZlbnQpIHtcXG4gICAgICAgIGdlc3R1cmUucG9pbnRlcnMuc2V0KGV2ZW50LnBvaW50ZXJJZCwge1xcbiAgICAgICAgICAgIHg6IGV2ZW50LmNsaWVudFgsXFxuICAgICAgICAgICAgeTogZXZlbnQuY2xpZW50WSxcXG4gICAgICAgIH0pO1xcbiAgICAgICAgaWYgKGdlc3R1cmUucG9pbnRlcnMuc2l6ZSA9PT0gMikge1xcbiAgICAgICAgICAgIGdlc3R1cmUubGFzdENlbnRlciA9ICgwLF9nZXN0dXJlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMl9fLmdldENlbnRlcikoZ2VzdHVyZS5wb2ludGVycyk7XFxuICAgICAgICAgICAgZ2VzdHVyZS5pbml0aWFsU2NhbGUgPSB0aGlzLnN0YXRlLnpvb20udmFsdWU7XFxuICAgICAgICAgICAgZ2VzdHVyZS5pbml0aWFsRGlzdGFuY2UgPSAoMCxfZ2VzdHVyZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjJfXy5nZXREaXN0YW5jZSkoQXJyYXkuZnJvbShnZXN0dXJlLnBvaW50ZXJzLnZhbHVlcygpKSk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgaW5pdGlhbFBvaW50ZXJEb3duU3RhdGUoZXZlbnQpIHtcXG4gICAgICAgIGNvbnN0IG9yaWdpbiA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy52aWV3cG9ydENvb3Jkc1RvU2NlbmVDb29yZHMpKGV2ZW50LCB0aGlzLnN0YXRlKTtcXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzMwX18uZ2V0U2VsZWN0ZWRFbGVtZW50cykodGhpcy5zY2VuZS5nZXRFbGVtZW50cygpLCB0aGlzLnN0YXRlKTtcXG4gICAgICAgIGNvbnN0IFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXSA9ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmdldENvbW1vbkJvdW5kcykoc2VsZWN0ZWRFbGVtZW50cyk7XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIG9yaWdpbixcXG4gICAgICAgICAgICB3aXRoQ21kT3JDdHJsOiBldmVudFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjZfXy5LRVlTLkNUUkxfT1JfQ01EXSxcXG4gICAgICAgICAgICBvcmlnaW5JbkdyaWQ6ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy50dXBsZVRvQ29vcnMpKCgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yN19fLmdldEdyaWRQb2ludCkob3JpZ2luLngsIG9yaWdpbi55LCB0aGlzLnN0YXRlLmdyaWRTaXplKSksXFxuICAgICAgICAgICAgc2Nyb2xsYmFyczogKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmlzT3ZlclNjcm9sbEJhcnMpKGN1cnJlbnRTY3JvbGxCYXJzLCBldmVudC5jbGllbnRYIC0gdGhpcy5zdGF0ZS5vZmZzZXRMZWZ0LCBldmVudC5jbGllbnRZIC0gdGhpcy5zdGF0ZS5vZmZzZXRUb3ApLFxcbiAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gZHVwbGljYXRlIGJlY2F1c2Ugd2UnbGwgYmUgdXBkYXRpbmcgdGhpcyBzdGF0ZVxcbiAgICAgICAgICAgIGxhc3RDb29yZHM6IE9iamVjdC5hc3NpZ24oe30sIG9yaWdpbiksXFxuICAgICAgICAgICAgb3JpZ2luYWxFbGVtZW50czogdGhpcy5zY2VuZS5nZXRFbGVtZW50cygpLnJlZHVjZSgoYWNjLCBlbGVtZW50KSA9PiB7XFxuICAgICAgICAgICAgICAgIGFjYy5zZXQoZWxlbWVudC5pZCwgKDAsX2VsZW1lbnRfbmV3RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjBfXy5kZWVwQ29weUVsZW1lbnQpKGVsZW1lbnQpKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcXG4gICAgICAgICAgICB9LCBuZXcgTWFwKCkpLFxcbiAgICAgICAgICAgIHJlc2l6ZToge1xcbiAgICAgICAgICAgICAgICBoYW5kbGVUeXBlOiBmYWxzZSxcXG4gICAgICAgICAgICAgICAgaXNSZXNpemluZzogZmFsc2UsXFxuICAgICAgICAgICAgICAgIG9mZnNldDogeyB4OiAwLCB5OiAwIH0sXFxuICAgICAgICAgICAgICAgIGFycm93RGlyZWN0aW9uOiBcXFwib3JpZ2luXFxcIixcXG4gICAgICAgICAgICAgICAgY2VudGVyOiB7IHg6IChtYXhYICsgbWluWCkgLyAyLCB5OiAobWF4WSArIG1pblkpIC8gMiB9LFxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgaGl0OiB7XFxuICAgICAgICAgICAgICAgIGVsZW1lbnQ6IG51bGwsXFxuICAgICAgICAgICAgICAgIGFsbEhpdEVsZW1lbnRzOiBbXSxcXG4gICAgICAgICAgICAgICAgd2FzQWRkZWRUb1NlbGVjdGlvbjogZmFsc2UsXFxuICAgICAgICAgICAgICAgIGhhc0JlZW5EdXBsaWNhdGVkOiBmYWxzZSxcXG4gICAgICAgICAgICAgICAgaGFzSGl0Q29tbW9uQm91bmRpbmdCb3hPZlNlbGVjdGVkRWxlbWVudHM6IHRoaXMuaXNIaXR0aW5nQ29tbW9uQm91bmRpbmdCb3hPZlNlbGVjdGVkRWxlbWVudHMob3JpZ2luLCBzZWxlY3RlZEVsZW1lbnRzKSxcXG4gICAgICAgICAgICAgICAgaGFzSGl0RWxlbWVudEluc2lkZTogZmFsc2UsXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICBkcmFnOiB7XFxuICAgICAgICAgICAgICAgIGhhc09jY3VycmVkOiBmYWxzZSxcXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiBudWxsLFxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgZXZlbnRMaXN0ZW5lcnM6IHtcXG4gICAgICAgICAgICAgICAgb25Nb3ZlOiBudWxsLFxcbiAgICAgICAgICAgICAgICBvblVwOiBudWxsLFxcbiAgICAgICAgICAgICAgICBvbktleVVwOiBudWxsLFxcbiAgICAgICAgICAgICAgICBvbktleURvd246IG51bGwsXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICBib3hTZWxlY3Rpb246IHtcXG4gICAgICAgICAgICAgICAgaGFzT2NjdXJyZWQ6IGZhbHNlLFxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICB9O1xcbiAgICB9XFxuICAgIC8vIFJldHVybnMgd2hldGhlciB0aGUgZXZlbnQgaXMgYSBkcmFnZ2luZyBhIHNjcm9sbGJhclxcbiAgICBoYW5kbGVEcmFnZ2luZ1Njcm9sbEJhcihldmVudCwgcG9pbnRlckRvd25TdGF0ZSkge1xcbiAgICAgICAgaWYgKCEocG9pbnRlckRvd25TdGF0ZS5zY3JvbGxiYXJzLmlzT3ZlckVpdGhlciAmJiAhdGhpcy5zdGF0ZS5tdWx0aUVsZW1lbnQpKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgICAgfVxcbiAgICAgICAgaXNEcmFnZ2luZ1Njcm9sbEJhciA9IHRydWU7XFxuICAgICAgICBwb2ludGVyRG93blN0YXRlLmxhc3RDb29yZHMueCA9IGV2ZW50LmNsaWVudFg7XFxuICAgICAgICBwb2ludGVyRG93blN0YXRlLmxhc3RDb29yZHMueSA9IGV2ZW50LmNsaWVudFk7XFxuICAgICAgICBjb25zdCBvblBvaW50ZXJNb3ZlID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLndpdGhCYXRjaGVkVXBkYXRlc1Rocm90dGxlZCkoKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xcbiAgICAgICAgICAgIGlmICghKHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUG9pbnRlck1vdmVPdmVyU2Nyb2xsYmFycyhldmVudCwgcG9pbnRlckRvd25TdGF0ZSk7XFxuICAgICAgICB9KTtcXG4gICAgICAgIGNvbnN0IG9uUG9pbnRlclVwID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLndpdGhCYXRjaGVkVXBkYXRlcykoKCkgPT4ge1xcbiAgICAgICAgICAgIGlzRHJhZ2dpbmdTY3JvbGxCYXIgPSBmYWxzZTtcXG4gICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18uc2V0Q3Vyc29yRm9yU2hhcGUpKHRoaXMuY2FudmFzLCB0aGlzLnN0YXRlLmVsZW1lbnRUeXBlKTtcXG4gICAgICAgICAgICBsYXN0UG9pbnRlclVwID0gbnVsbDtcXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcXG4gICAgICAgICAgICAgICAgY3Vyc29yQnV0dG9uOiBcXFwidXBcXFwiLFxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIHRoaXMuc2F2ZVBvaW50ZXIoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSwgXFxcInVwXFxcIik7XFxuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5QT0lOVEVSX01PVkUsIG9uUG9pbnRlck1vdmUpO1xcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuUE9JTlRFUl9VUCwgb25Qb2ludGVyVXApO1xcbiAgICAgICAgICAgIG9uUG9pbnRlck1vdmUuZmx1c2goKTtcXG4gICAgICAgIH0pO1xcbiAgICAgICAgbGFzdFBvaW50ZXJVcCA9IG9uUG9pbnRlclVwO1xcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5QT0lOVEVSX01PVkUsIG9uUG9pbnRlck1vdmUpO1xcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FVkVOVC5QT0lOVEVSX1VQLCBvblBvaW50ZXJVcCk7XFxuICAgICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgfVxcbiAgICBpc0FTZWxlY3RlZEVsZW1lbnQoaGl0RWxlbWVudCkge1xcbiAgICAgICAgcmV0dXJuIGhpdEVsZW1lbnQgIT0gbnVsbCAmJiB0aGlzLnN0YXRlLnNlbGVjdGVkRWxlbWVudElkc1toaXRFbGVtZW50LmlkXTtcXG4gICAgfVxcbiAgICBpc0hpdHRpbmdDb21tb25Cb3VuZGluZ0JveE9mU2VsZWN0ZWRFbGVtZW50cyhwb2ludCwgc2VsZWN0ZWRFbGVtZW50cykge1xcbiAgICAgICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoIDwgMikge1xcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICAgIH1cXG4gICAgICAgIC8vIEhvdyBtYW55IHBpeGVscyBvZmYgdGhlIHNoYXBlIGJvdW5kYXJ5IHdlIHN0aWxsIGNvbnNpZGVyIGEgaGl0XFxuICAgICAgICBjb25zdCB0aHJlc2hvbGQgPSAxMCAvIHRoaXMuc3RhdGUuem9vbS52YWx1ZTtcXG4gICAgICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5nZXRDb21tb25Cb3VuZHMpKHNlbGVjdGVkRWxlbWVudHMpO1xcbiAgICAgICAgcmV0dXJuIChwb2ludC54ID4geDEgLSB0aHJlc2hvbGQgJiZcXG4gICAgICAgICAgICBwb2ludC54IDwgeDIgKyB0aHJlc2hvbGQgJiZcXG4gICAgICAgICAgICBwb2ludC55ID4geTEgLSB0aHJlc2hvbGQgJiZcXG4gICAgICAgICAgICBwb2ludC55IDwgeTIgKyB0aHJlc2hvbGQpO1xcbiAgICB9XFxuICAgIG9uS2V5RG93bkZyb21Qb2ludGVyRG93bkhhbmRsZXIocG9pbnRlckRvd25TdGF0ZSkge1xcbiAgICAgICAgcmV0dXJuICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy53aXRoQmF0Y2hlZFVwZGF0ZXMpKChldmVudCkgPT4ge1xcbiAgICAgICAgICAgIGlmICh0aGlzLm1heWJlSGFuZGxlUmVzaXplKHBvaW50ZXJEb3duU3RhdGUsIGV2ZW50KSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHRoaXMubWF5YmVEcmFnTmV3R2VuZXJpY0VsZW1lbnQocG9pbnRlckRvd25TdGF0ZSwgZXZlbnQpO1xcbiAgICAgICAgfSk7XFxuICAgIH1cXG4gICAgb25LZXlVcEZyb21Qb2ludGVyRG93bkhhbmRsZXIocG9pbnRlckRvd25TdGF0ZSkge1xcbiAgICAgICAgcmV0dXJuICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy53aXRoQmF0Y2hlZFVwZGF0ZXMpKChldmVudCkgPT4ge1xcbiAgICAgICAgICAgIC8vIFByZXZlbnRzIGZvY3VzIGZyb20gZXNjYXBpbmcgZXhjYWxpZHJhdyB0YWJcXG4gICAgICAgICAgICBldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNl9fLktFWVMuQUxUICYmIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XFxuICAgICAgICAgICAgaWYgKHRoaXMubWF5YmVIYW5kbGVSZXNpemUocG9pbnRlckRvd25TdGF0ZSwgZXZlbnQpKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgdGhpcy5tYXliZURyYWdOZXdHZW5lcmljRWxlbWVudChwb2ludGVyRG93blN0YXRlLCBldmVudCk7XFxuICAgICAgICB9KTtcXG4gICAgfVxcbiAgICBvblBvaW50ZXJNb3ZlRnJvbVBvaW50ZXJEb3duSGFuZGxlcihwb2ludGVyRG93blN0YXRlKSB7XFxuICAgICAgICByZXR1cm4gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLndpdGhCYXRjaGVkVXBkYXRlc1Rocm90dGxlZCkoKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgdmFyIF9hLCBfYjtcXG4gICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGluaXRpYWxpemUgZHJhZ09mZnNldFhZIG9ubHkgYWZ0ZXIgd2UndmUgdXBkYXRlZFxcbiAgICAgICAgICAgIC8vIGBzdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHNgIG9uIHBvaW50ZXJEb3duLiBEb2luZyBpdCBoZXJlIGluIHBvaW50ZXJNb3ZlXFxuICAgICAgICAgICAgLy8gZXZlbnQgaGFuZGxlciBzaG91bGQgaG9wZWZ1bGx5IGVuc3VyZSB3ZSdyZSBhbHJlYWR5IHdvcmtpbmcgd2l0aFxcbiAgICAgICAgICAgIC8vIHRoZSB1cGRhdGVkIHN0YXRlLlxcbiAgICAgICAgICAgIGlmIChwb2ludGVyRG93blN0YXRlLmRyYWcub2Zmc2V0ID09PSBudWxsKSB7XFxuICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUuZHJhZy5vZmZzZXQgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18udHVwbGVUb0Nvb3JzKSgoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5nZXREcmFnT2Zmc2V0WFkpKCgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzBfXy5nZXRTZWxlY3RlZEVsZW1lbnRzKSh0aGlzLnNjZW5lLmdldEVsZW1lbnRzKCksIHRoaXMuc3RhdGUpLCBwb2ludGVyRG93blN0YXRlLm9yaWdpbi54LCBwb2ludGVyRG93blN0YXRlLm9yaWdpbi55KSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcXG4gICAgICAgICAgICBpZiAoISh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAodGhpcy5oYW5kbGVQb2ludGVyTW92ZU92ZXJTY3JvbGxiYXJzKGV2ZW50LCBwb2ludGVyRG93blN0YXRlKSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ZXJDb29yZHMgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18udmlld3BvcnRDb29yZHNUb1NjZW5lQ29vcmRzKShldmVudCwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgY29uc3QgW2dyaWRYLCBncmlkWV0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjdfXy5nZXRHcmlkUG9pbnQpKHBvaW50ZXJDb29yZHMueCwgcG9pbnRlckNvb3Jkcy55LCB0aGlzLnN0YXRlLmdyaWRTaXplKTtcXG4gICAgICAgICAgICAvLyBmb3IgYXJyb3dzL2xpbmVzLCBkb24ndCBzdGFydCBkcmFnZ2luZyB1bnRpbCBhIGdpdmVuIHRocmVzaG9sZFxcbiAgICAgICAgICAgIC8vIHRvIGVuc3VyZSB3ZSBkb24ndCBjcmVhdGUgYSAyLXBvaW50IGFycm93IGJ5IG1pc3Rha2Ugd2hlblxcbiAgICAgICAgICAgIC8vIHVzZXIgY2xpY2tzIG1vdXNlIGluIGEgd2F5IHRoYXQgaXQgbW92ZXMgYSB0aW55IGJpdCAodGh1c1xcbiAgICAgICAgICAgIC8vIHRyaWdnZXJpbmcgcG9pbnRlcm1vdmUpXFxuICAgICAgICAgICAgaWYgKCFwb2ludGVyRG93blN0YXRlLmRyYWcuaGFzT2NjdXJyZWQgJiZcXG4gICAgICAgICAgICAgICAgKHRoaXMuc3RhdGUuZWxlbWVudFR5cGUgPT09IFxcXCJhcnJvd1xcXCIgfHxcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZWxlbWVudFR5cGUgPT09IFxcXCJsaW5lXFxcIikpIHtcXG4gICAgICAgICAgICAgICAgaWYgKCgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yN19fLmRpc3RhbmNlMmQpKHBvaW50ZXJDb29yZHMueCwgcG9pbnRlckNvb3Jkcy55LCBwb2ludGVyRG93blN0YXRlLm9yaWdpbi54LCBwb2ludGVyRG93blN0YXRlLm9yaWdpbi55KSA8IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRFJBR0dJTkdfVEhSRVNIT0xEKSB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHBvaW50ZXJEb3duU3RhdGUucmVzaXplLmlzUmVzaXppbmcpIHtcXG4gICAgICAgICAgICAgICAgcG9pbnRlckRvd25TdGF0ZS5sYXN0Q29vcmRzLnggPSBwb2ludGVyQ29vcmRzLng7XFxuICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUubGFzdENvb3Jkcy55ID0gcG9pbnRlckNvb3Jkcy55O1xcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXliZUhhbmRsZVJlc2l6ZShwb2ludGVyRG93blN0YXRlLCBldmVudCkpIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50KSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGRpZERyYWcgPSBfZWxlbWVudF9saW5lYXJFbGVtZW50RWRpdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOF9fLkxpbmVhckVsZW1lbnRFZGl0b3IuaGFuZGxlUG9pbnREcmFnZ2luZyh0aGlzLnN0YXRlLCAoYXBwU3RhdGUpID0+IHRoaXMuc2V0U3RhdGUoYXBwU3RhdGUpLCBwb2ludGVyQ29vcmRzLngsIHBvaW50ZXJDb29yZHMueSwgKGVsZW1lbnQsIHBvaW50c1NjZW5lQ29vcmRzKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1heWJlU3VnZ2VzdEJpbmRpbmdzRm9yTGluZWFyRWxlbWVudEF0Q29vcmRzKGVsZW1lbnQsIHBvaW50c1NjZW5lQ29vcmRzKTtcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIGlmIChkaWREcmFnKSB7XFxuICAgICAgICAgICAgICAgICAgICBwb2ludGVyRG93blN0YXRlLmxhc3RDb29yZHMueCA9IHBvaW50ZXJDb29yZHMueDtcXG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUubGFzdENvb3Jkcy55ID0gcG9pbnRlckNvb3Jkcy55O1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnN0IGhhc0hpdEFTZWxlY3RlZEVsZW1lbnQgPSBwb2ludGVyRG93blN0YXRlLmhpdC5hbGxIaXRFbGVtZW50cy5zb21lKChlbGVtZW50KSA9PiB0aGlzLmlzQVNlbGVjdGVkRWxlbWVudChlbGVtZW50KSk7XFxuICAgICAgICAgICAgaWYgKChoYXNIaXRBU2VsZWN0ZWRFbGVtZW50IHx8XFxuICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUuaGl0Lmhhc0hpdENvbW1vbkJvdW5kaW5nQm94T2ZTZWxlY3RlZEVsZW1lbnRzKSAmJlxcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGFsbG93cyBmb3IgYm94LXNlbGVjdGluZyBwb2ludHMgd2hlbiBjbGlja2luZyBpbnNpZGUgdGhlXFxuICAgICAgICAgICAgICAgIC8vIGxpbmUncyBib3VuZGluZyBib3hcXG4gICAgICAgICAgICAgICAgKCF0aGlzLnN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50IHx8ICFldmVudC5zaGlmdEtleSkgJiZcXG4gICAgICAgICAgICAgICAgLy8gYm94LXNlbGVjdGluZyB3aXRob3V0IHNoaWZ0IHdoZW4gZWRpdGluZyBsaW5lLCBub3QgY2xpY2tpbmcgb24gYSBsaW5lXFxuICAgICAgICAgICAgICAgICghdGhpcy5zdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudCB8fFxcbiAgICAgICAgICAgICAgICAgICAgKChfYSA9IHRoaXMuc3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5lbGVtZW50SWQpICE9PVxcbiAgICAgICAgICAgICAgICAgICAgICAgICgoX2IgPSBwb2ludGVyRG93blN0YXRlLmhpdC5lbGVtZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuaWQpIHx8XFxuICAgICAgICAgICAgICAgICAgICBwb2ludGVyRG93blN0YXRlLmhpdC5oYXNIaXRFbGVtZW50SW5zaWRlKSkge1xcbiAgICAgICAgICAgICAgICAvLyBNYXJraW5nIHRoYXQgY2xpY2sgd2FzIHVzZWQgZm9yIGRyYWdnaW5nIHRvIGNoZWNrXFxuICAgICAgICAgICAgICAgIC8vIGlmIGVsZW1lbnRzIHNob3VsZCBiZSBkZXNlbGVjdGVkIG9uIHBvaW50ZXJ1cFxcbiAgICAgICAgICAgICAgICBwb2ludGVyRG93blN0YXRlLmRyYWcuaGFzT2NjdXJyZWQgPSB0cnVlO1xcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmdldFNlbGVjdGVkRWxlbWVudHMpKHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKSwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgICAgIC8vIHByZXZlbnQgZHJhZ2dpbmcgZXZlbiBpZiB3ZSdyZSBubyBsb25nZXIgaG9sZGluZyBjbWQvY3RybCBvdGhlcndpc2VcXG4gICAgICAgICAgICAgICAgLy8gaXQgd291bGQgaGF2ZSB3ZWlyZCByZXN1bHRzIChzdHVmZiBqdW1waW5nIGFsbCBvdmVyIHRoZSBzY3JlZW4pXFxuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA+IDAgJiYgIXBvaW50ZXJEb3duU3RhdGUud2l0aENtZE9yQ3RybCkge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW2RyYWdYLCBkcmFnWV0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjdfXy5nZXRHcmlkUG9pbnQpKHBvaW50ZXJDb29yZHMueCAtIHBvaW50ZXJEb3duU3RhdGUuZHJhZy5vZmZzZXQueCwgcG9pbnRlckNvb3Jkcy55IC0gcG9pbnRlckRvd25TdGF0ZS5kcmFnLm9mZnNldC55LCB0aGlzLnN0YXRlLmdyaWRTaXplKTtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtkcmFnRGlzdGFuY2VYLCBkcmFnRGlzdGFuY2VZXSA9IFtcXG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmFicyhwb2ludGVyQ29vcmRzLnggLSBwb2ludGVyRG93blN0YXRlLm9yaWdpbi54KSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmFicyhwb2ludGVyQ29vcmRzLnkgLSBwb2ludGVyRG93blN0YXRlLm9yaWdpbi55KSxcXG4gICAgICAgICAgICAgICAgICAgIF07XFxuICAgICAgICAgICAgICAgICAgICAvLyBXZSBvbmx5IGRyYWcgaW4gb25lIGRpcmVjdGlvbiBpZiBzaGlmdCBpcyBwcmVzc2VkXFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBsb2NrRGlyZWN0aW9uID0gZXZlbnQuc2hpZnRLZXk7XFxuICAgICAgICAgICAgICAgICAgICAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5kcmFnU2VsZWN0ZWRFbGVtZW50cykocG9pbnRlckRvd25TdGF0ZSwgc2VsZWN0ZWRFbGVtZW50cywgZHJhZ1gsIGRyYWdZLCBsb2NrRGlyZWN0aW9uLCBkcmFnRGlzdGFuY2VYLCBkcmFnRGlzdGFuY2VZLCB0aGlzLnN0YXRlKTtcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWF5YmVTdWdnZXN0QmluZGluZ0ZvckFsbChzZWxlY3RlZEVsZW1lbnRzKTtcXG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIGR1cGxpY2F0ZSB0aGUgc2VsZWN0ZWQgZWxlbWVudCBpZiBhbHQgaXMgcHJlc3NlZCBvbiBwb2ludGVyIG1vdmVcXG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5hbHRLZXkgJiYgIXBvaW50ZXJEb3duU3RhdGUuaGl0Lmhhc0JlZW5EdXBsaWNhdGVkKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTW92ZSB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGVsZW1lbnRzIHRvIHRoZSB0b3Agb2YgdGhlIHogaW5kZXggc3RhY2ssIGFuZFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHB1dCB0aGUgZHVwbGljYXRlcyB3aGVyZSB0aGUgc2VsZWN0ZWQgZWxlbWVudHMgdXNlZCB0byBiZS5cXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAodGhlIG9yaWdpbiBwb2ludCB3aGVyZSB0aGUgZHJhZ2dpbmcgc3RhcnRlZClcXG4gICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyRG93blN0YXRlLmhpdC5oYXNCZWVuRHVwbGljYXRlZCA9IHRydWU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dEVsZW1lbnRzID0gW107XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudHNUb0FwcGVuZCA9IFtdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwSWRNYXAgPSBuZXcgTWFwKCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2xkSWRUb0R1cGxpY2F0ZWRJZCA9IG5ldyBNYXAoKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaXRFbGVtZW50ID0gcG9pbnRlckRvd25TdGF0ZS5oaXQuZWxlbWVudDtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuc2NlbmUuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50SWRzID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmdldFNlbGVjdGVkRWxlbWVudHMpKGVsZW1lbnRzLCB0aGlzLnN0YXRlLCB0cnVlKS5tYXAoKGVsZW1lbnQpID0+IGVsZW1lbnQuaWQpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBlbGVtZW50cykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50SWRzLmluY2x1ZGVzKGVsZW1lbnQuaWQpIHx8XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXNlOiB0aGUgc3RhdGUuc2VsZWN0ZWRFbGVtZW50SWRzIG1pZ2h0IG5vdCBoYXZlIGJlZW5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZWQgeWV0IGJ5IHRoZSB0aW1lIHRoaXMgbW91c2Vtb3ZlIGV2ZW50IGlzIGZpcmVkXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWxlbWVudC5pZCA9PT0gKGhpdEVsZW1lbnQgPT09IG51bGwgfHwgaGl0RWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogaGl0RWxlbWVudC5pZCkgJiZcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyRG93blN0YXRlLmhpdC53YXNBZGRlZFRvU2VsZWN0aW9uKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZHVwbGljYXRlZEVsZW1lbnQgPSAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5kdXBsaWNhdGVFbGVtZW50KSh0aGlzLnN0YXRlLmVkaXRpbmdHcm91cElkLCBncm91cElkTWFwLCBlbGVtZW50KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFtvcmlnaW5EcmFnWCwgb3JpZ2luRHJhZ1ldID0gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI3X18uZ2V0R3JpZFBvaW50KShwb2ludGVyRG93blN0YXRlLm9yaWdpbi54IC0gcG9pbnRlckRvd25TdGF0ZS5kcmFnLm9mZnNldC54LCBwb2ludGVyRG93blN0YXRlLm9yaWdpbi55IC0gcG9pbnRlckRvd25TdGF0ZS5kcmFnLm9mZnNldC55LCB0aGlzLnN0YXRlLmdyaWRTaXplKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE5X18ubXV0YXRlRWxlbWVudCkoZHVwbGljYXRlZEVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiBkdXBsaWNhdGVkRWxlbWVudC54ICsgKG9yaWdpbkRyYWdYIC0gZHJhZ1gpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IGR1cGxpY2F0ZWRFbGVtZW50LnkgKyAob3JpZ2luRHJhZ1kgLSBkcmFnWSksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRFbGVtZW50cy5wdXNoKGR1cGxpY2F0ZWRFbGVtZW50KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzVG9BcHBlbmQucHVzaChlbGVtZW50KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZElkVG9EdXBsaWNhdGVkSWQuc2V0KGVsZW1lbnQuaWQsIGR1cGxpY2F0ZWRFbGVtZW50LmlkKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRFbGVtZW50cy5wdXNoKGVsZW1lbnQpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRTY2VuZUVsZW1lbnRzID0gWy4uLm5leHRFbGVtZW50cywgLi4uZWxlbWVudHNUb0FwcGVuZF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzQ0X18uYmluZFRleHRUb1NoYXBlQWZ0ZXJEdXBsaWNhdGlvbikobmV4dEVsZW1lbnRzLCBlbGVtZW50c1RvQXBwZW5kLCBvbGRJZFRvRHVwbGljYXRlZElkKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAoMCxfZWxlbWVudF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xN19fLmZpeEJpbmRpbmdzQWZ0ZXJEdXBsaWNhdGlvbikobmV4dFNjZW5lRWxlbWVudHMsIGVsZW1lbnRzVG9BcHBlbmQsIG9sZElkVG9EdXBsaWNhdGVkSWQsIFxcXCJkdXBsaWNhdGVzU2VydmVBc09sZFxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2NlbmUucmVwbGFjZUFsbEVsZW1lbnRzKG5leHRTY2VuZUVsZW1lbnRzKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAvLyBJdCBpcyB2ZXJ5IGltcG9ydGFudCB0byByZWFkIHRoaXMuc3RhdGUgd2l0aGluIGVhY2ggbW92ZSBldmVudCxcXG4gICAgICAgICAgICAvLyBvdGhlcndpc2Ugd2Ugd291bGQgcmVhZCBhIHN0YWxlIG9uZSFcXG4gICAgICAgICAgICBjb25zdCBkcmFnZ2luZ0VsZW1lbnQgPSB0aGlzLnN0YXRlLmRyYWdnaW5nRWxlbWVudDtcXG4gICAgICAgICAgICBpZiAoIWRyYWdnaW5nRWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmIChkcmFnZ2luZ0VsZW1lbnQudHlwZSA9PT0gXFxcImZyZWVkcmF3XFxcIikge1xcbiAgICAgICAgICAgICAgICBjb25zdCBwb2ludHMgPSBkcmFnZ2luZ0VsZW1lbnQucG9pbnRzO1xcbiAgICAgICAgICAgICAgICBjb25zdCBkeCA9IHBvaW50ZXJDb29yZHMueCAtIGRyYWdnaW5nRWxlbWVudC54O1xcbiAgICAgICAgICAgICAgICBjb25zdCBkeSA9IHBvaW50ZXJDb29yZHMueSAtIGRyYWdnaW5nRWxlbWVudC55O1xcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0UG9pbnQgPSBwb2ludHMubGVuZ3RoID4gMCAmJiBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdO1xcbiAgICAgICAgICAgICAgICBjb25zdCBkaXNjYXJkUG9pbnQgPSBsYXN0UG9pbnQgJiYgbGFzdFBvaW50WzBdID09PSBkeCAmJiBsYXN0UG9pbnRbMV0gPT09IGR5O1xcbiAgICAgICAgICAgICAgICBpZiAoIWRpc2NhcmRQb2ludCkge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJlc3N1cmVzID0gZHJhZ2dpbmdFbGVtZW50LnNpbXVsYXRlUHJlc3N1cmVcXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGRyYWdnaW5nRWxlbWVudC5wcmVzc3VyZXNcXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFsuLi5kcmFnZ2luZ0VsZW1lbnQucHJlc3N1cmVzLCBldmVudC5wcmVzc3VyZV07XFxuICAgICAgICAgICAgICAgICAgICAoMCxfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOV9fLm11dGF0ZUVsZW1lbnQpKGRyYWdnaW5nRWxlbWVudCwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50czogWy4uLnBvaW50cywgW2R4LCBkeV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlcyxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2UgaWYgKCgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIxX18uaXNMaW5lYXJFbGVtZW50KShkcmFnZ2luZ0VsZW1lbnQpKSB7XFxuICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUuZHJhZy5oYXNPY2N1cnJlZCA9IHRydWU7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHBvaW50cyA9IGRyYWdnaW5nRWxlbWVudC5wb2ludHM7XFxuICAgICAgICAgICAgICAgIGxldCBkeCA9IGdyaWRYIC0gZHJhZ2dpbmdFbGVtZW50Lng7XFxuICAgICAgICAgICAgICAgIGxldCBkeSA9IGdyaWRZIC0gZHJhZ2dpbmdFbGVtZW50Lnk7XFxuICAgICAgICAgICAgICAgIGlmICgoMCxfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjZfXy5zaG91bGRSb3RhdGVXaXRoRGlzY3JldGVBbmdsZSkoZXZlbnQpICYmIHBvaW50cy5sZW5ndGggPT09IDIpIHtcXG4gICAgICAgICAgICAgICAgICAgICh7IHdpZHRoOiBkeCwgaGVpZ2h0OiBkeSB9ID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uZ2V0UGVyZmVjdEVsZW1lbnRTaXplKSh0aGlzLnN0YXRlLmVsZW1lbnRUeXBlLCBkeCwgZHkpKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBpZiAocG9pbnRzLmxlbmd0aCA9PT0gMSkge1xcbiAgICAgICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTlfXy5tdXRhdGVFbGVtZW50KShkcmFnZ2luZ0VsZW1lbnQsIHsgcG9pbnRzOiBbLi4ucG9pbnRzLCBbZHgsIGR5XV0gfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocG9pbnRzLmxlbmd0aCA+IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE5X18ubXV0YXRlRWxlbWVudCkoZHJhZ2dpbmdFbGVtZW50LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzOiBbLi4ucG9pbnRzLnNsaWNlKDAsIC0xKSwgW2R4LCBkeV1dLFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaWYgKCgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIxX18uaXNCaW5kaW5nRWxlbWVudCkoZHJhZ2dpbmdFbGVtZW50KSkge1xcbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiBjcmVhdGluZyBhIGxpbmVhciBlbGVtZW50IGJ5IGRyYWdnaW5nXFxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1heWJlU3VnZ2VzdEJpbmRpbmdzRm9yTGluZWFyRWxlbWVudEF0Q29vcmRzKGRyYWdnaW5nRWxlbWVudCwgW3BvaW50ZXJDb29yZHNdLCB0aGlzLnN0YXRlLnN0YXJ0Qm91bmRFbGVtZW50KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgcG9pbnRlckRvd25TdGF0ZS5sYXN0Q29vcmRzLnggPSBwb2ludGVyQ29vcmRzLng7XFxuICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUubGFzdENvb3Jkcy55ID0gcG9pbnRlckNvb3Jkcy55O1xcbiAgICAgICAgICAgICAgICB0aGlzLm1heWJlRHJhZ05ld0dlbmVyaWNFbGVtZW50KHBvaW50ZXJEb3duU3RhdGUsIGV2ZW50KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuZWxlbWVudFR5cGUgPT09IFxcXCJzZWxlY3Rpb25cXFwiKSB7XFxuICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUuYm94U2VsZWN0aW9uLmhhc09jY3VycmVkID0gdHJ1ZTtcXG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLnNjZW5lLmdldEVsZW1lbnRzKCk7XFxuICAgICAgICAgICAgICAgIGlmICghZXZlbnQuc2hpZnRLZXkgJiZcXG4gICAgICAgICAgICAgICAgICAgIC8vIGFsbG93cyBmb3IgYm94LXNlbGVjdGluZyBwb2ludHMgKHdpdGhvdXQgc2hpZnQpXFxuICAgICAgICAgICAgICAgICAgICAhdGhpcy5zdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudCAmJlxcbiAgICAgICAgICAgICAgICAgICAgKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmlzU29tZUVsZW1lbnRTZWxlY3RlZCkoZWxlbWVudHMsIHRoaXMuc3RhdGUpKSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAocG9pbnRlckRvd25TdGF0ZS53aXRoQ21kT3JDdHJsICYmIHBvaW50ZXJEb3duU3RhdGUuaGl0LmVsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKChwcmV2U3RhdGUpID0+ICgwLF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIzX18uc2VsZWN0R3JvdXBzRm9yU2VsZWN0ZWRFbGVtZW50cykoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcmV2U3RhdGUpLCB7IHNlbGVjdGVkRWxlbWVudElkczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BvaW50ZXJEb3duU3RhdGUuaGl0LmVsZW1lbnQuaWRdOiB0cnVlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IH0pLCB0aGlzLnNjZW5lLmdldEVsZW1lbnRzKCkpKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRJZHM6IHt9LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEdyb3VwSWRzOiB7fSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGluZ0dyb3VwSWQ6IG51bGwsXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgLy8gYm94LXNlbGVjdCBsaW5lIGVkaXRvciBwb2ludHNcXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgIF9lbGVtZW50X2xpbmVhckVsZW1lbnRFZGl0b3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE4X18uTGluZWFyRWxlbWVudEVkaXRvci5oYW5kbGVCb3hTZWxlY3Rpb24oZXZlbnQsIHRoaXMuc3RhdGUsIHRoaXMuc2V0U3RhdGUuYmluZCh0aGlzKSk7XFxuICAgICAgICAgICAgICAgICAgICAvLyByZWd1bGFyIGJveC1zZWxlY3RcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzV2l0aGluU2VsZWN0aW9uID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLmdldEVsZW1lbnRzV2l0aGluU2VsZWN0aW9uKShlbGVtZW50cywgZHJhZ2dpbmdFbGVtZW50KTtcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKHByZXZTdGF0ZSkgPT4gKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjNfXy5zZWxlY3RHcm91cHNGb3JTZWxlY3RlZEVsZW1lbnRzKShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHByZXZTdGF0ZSksIHsgc2VsZWN0ZWRFbGVtZW50SWRzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldlN0YXRlLnNlbGVjdGVkRWxlbWVudElkcyksIGVsZW1lbnRzV2l0aGluU2VsZWN0aW9uLnJlZHVjZSgobWFwLCBlbGVtZW50KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcFtlbGVtZW50LmlkXSA9IHRydWU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXA7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwge30pKSwgKHBvaW50ZXJEb3duU3RhdGUuaGl0LmVsZW1lbnRcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB1c2luZyBjdHJsL2NtZCwgc2VsZWN0IHRoZSBoaXRFbGVtZW50IG9ubHkgaWYgd2VcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhdmVuJ3QgYm94LXNlbGVjdGVkIGFueXRoaW5nIGVsc2VcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwb2ludGVyRG93blN0YXRlLmhpdC5lbGVtZW50LmlkXTogIWVsZW1lbnRzV2l0aGluU2VsZWN0aW9uLmxlbmd0aCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG51bGwpKSwgc2hvd0h5cGVybGlua1BvcHVwOiBlbGVtZW50c1dpdGhpblNlbGVjdGlvbi5sZW5ndGggPT09IDEgJiZcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHNXaXRoaW5TZWxlY3Rpb25bMF0ubGlua1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFxcXCJpbmZvXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZhbHNlIH0pLCB0aGlzLnNjZW5lLmdldEVsZW1lbnRzKCkpKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcbiAgICB9XFxuICAgIC8vIFJldHVybnMgd2hldGhlciB0aGUgcG9pbnRlciBtb3ZlIGhhcHBlbmVkIG92ZXIgZWl0aGVyIHNjcm9sbGJhclxcbiAgICBoYW5kbGVQb2ludGVyTW92ZU92ZXJTY3JvbGxiYXJzKGV2ZW50LCBwb2ludGVyRG93blN0YXRlKSB7XFxuICAgICAgICBpZiAocG9pbnRlckRvd25TdGF0ZS5zY3JvbGxiYXJzLmlzT3Zlckhvcml6b250YWwpIHtcXG4gICAgICAgICAgICBjb25zdCB4ID0gZXZlbnQuY2xpZW50WDtcXG4gICAgICAgICAgICBjb25zdCBkeCA9IHggLSBwb2ludGVyRG93blN0YXRlLmxhc3RDb29yZHMueDtcXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcXG4gICAgICAgICAgICAgICAgc2Nyb2xsWDogdGhpcy5zdGF0ZS5zY3JvbGxYIC0gZHggLyB0aGlzLnN0YXRlLnpvb20udmFsdWUsXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgcG9pbnRlckRvd25TdGF0ZS5sYXN0Q29vcmRzLnggPSB4O1xcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKHBvaW50ZXJEb3duU3RhdGUuc2Nyb2xsYmFycy5pc092ZXJWZXJ0aWNhbCkge1xcbiAgICAgICAgICAgIGNvbnN0IHkgPSBldmVudC5jbGllbnRZO1xcbiAgICAgICAgICAgIGNvbnN0IGR5ID0geSAtIHBvaW50ZXJEb3duU3RhdGUubGFzdENvb3Jkcy55O1xcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICBzY3JvbGxZOiB0aGlzLnN0YXRlLnNjcm9sbFkgLSBkeSAvIHRoaXMuc3RhdGUuem9vbS52YWx1ZSxcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICBwb2ludGVyRG93blN0YXRlLmxhc3RDb29yZHMueSA9IHk7XFxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgIH1cXG4gICAgb25Qb2ludGVyVXBGcm9tUG9pbnRlckRvd25IYW5kbGVyKHBvaW50ZXJEb3duU3RhdGUpIHtcXG4gICAgICAgIHJldHVybiAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18ud2l0aEJhdGNoZWRVcGRhdGVzKSgoY2hpbGRFdmVudCkgPT4ge1xcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XFxuICAgICAgICAgICAgY29uc3QgeyBkcmFnZ2luZ0VsZW1lbnQsIHJlc2l6aW5nRWxlbWVudCwgbXVsdGlFbGVtZW50LCBlbGVtZW50VHlwZSwgZWxlbWVudExvY2tlZCwgaXNSZXNpemluZywgaXNSb3RhdGluZywgfSA9IHRoaXMuc3RhdGU7XFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgIGlzUmVzaXppbmc6IGZhbHNlLFxcbiAgICAgICAgICAgICAgICBpc1JvdGF0aW5nOiBmYWxzZSxcXG4gICAgICAgICAgICAgICAgcmVzaXppbmdFbGVtZW50OiBudWxsLFxcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25FbGVtZW50OiBudWxsLFxcbiAgICAgICAgICAgICAgICBjdXJzb3JCdXR0b246IFxcXCJ1cFxcXCIsXFxuICAgICAgICAgICAgICAgIC8vIHRleHQgZWxlbWVudHMgYXJlIHJlc2V0IG9uIGZpbmFsaXplLCBhbmQgcmVzZXR0aW5nIG9uIHBvaW50ZXJ1cFxcbiAgICAgICAgICAgICAgICAvLyBtYXkgY2F1c2UgaXNzdWVzIHdpdGggZG91YmxlIHRhcHNcXG4gICAgICAgICAgICAgICAgZWRpdGluZ0VsZW1lbnQ6IG11bHRpRWxlbWVudCB8fCAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5pc1RleHRFbGVtZW50KSh0aGlzLnN0YXRlLmVkaXRpbmdFbGVtZW50KVxcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmVkaXRpbmdFbGVtZW50XFxuICAgICAgICAgICAgICAgICAgICA6IG51bGwsXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgdGhpcy5zYXZlUG9pbnRlcihjaGlsZEV2ZW50LmNsaWVudFgsIGNoaWxkRXZlbnQuY2xpZW50WSwgXFxcInVwXFxcIik7XFxuICAgICAgICAgICAgLy8gSGFuZGxlIGVuZCBvZiBkcmFnZ2luZyBhIHBvaW50IG9mIGEgbGluZWFyIGVsZW1lbnQsIG1pZ2h0IGNsb3NlIGEgbG9vcFxcbiAgICAgICAgICAgIC8vIGFuZCBzZXRzIGJpbmRpbmcgZWxlbWVudFxcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50KSB7XFxuICAgICAgICAgICAgICAgIGlmICghcG9pbnRlckRvd25TdGF0ZS5ib3hTZWxlY3Rpb24uaGFzT2NjdXJyZWQgJiZcXG4gICAgICAgICAgICAgICAgICAgICgoKF9iID0gKF9hID0gcG9pbnRlckRvd25TdGF0ZS5oaXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5lbGVtZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuaWQpICE9PVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQuZWxlbWVudElkIHx8XFxuICAgICAgICAgICAgICAgICAgICAgICAgIXBvaW50ZXJEb3duU3RhdGUuaGl0Lmhhc0hpdEVsZW1lbnRJbnNpZGUpKSB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbk1hbmFnZXIuZXhlY3V0ZUFjdGlvbihfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvbkZpbmFsaXplKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVkaXRpbmdMaW5lYXJFbGVtZW50ID0gX2VsZW1lbnRfbGluZWFyRWxlbWVudEVkaXRvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMThfXy5MaW5lYXJFbGVtZW50RWRpdG9yLmhhbmRsZVBvaW50ZXJVcChjaGlsZEV2ZW50LCB0aGlzLnN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50LCB0aGlzLnN0YXRlKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChlZGl0aW5nTGluZWFyRWxlbWVudCAhPT0gdGhpcy5zdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZGl0aW5nTGluZWFyRWxlbWVudCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdGVkQmluZGluZ3M6IFtdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGxhc3RQb2ludGVyVXAgPSBudWxsO1xcbiAgICAgICAgICAgIGlmIChwb2ludGVyRG93blN0YXRlLmV2ZW50TGlzdGVuZXJzLm9uTW92ZSkge1xcbiAgICAgICAgICAgICAgICBwb2ludGVyRG93blN0YXRlLmV2ZW50TGlzdGVuZXJzLm9uTW92ZS5mbHVzaCgpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULlBPSU5URVJfTU9WRSwgcG9pbnRlckRvd25TdGF0ZS5ldmVudExpc3RlbmVycy5vbk1vdmUpO1xcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uRVZFTlQuUE9JTlRFUl9VUCwgcG9pbnRlckRvd25TdGF0ZS5ldmVudExpc3RlbmVycy5vblVwKTtcXG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULktFWURPV04sIHBvaW50ZXJEb3duU3RhdGUuZXZlbnRMaXN0ZW5lcnMub25LZXlEb3duKTtcXG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVWRU5ULktFWVVQLCBwb2ludGVyRG93blN0YXRlLmV2ZW50TGlzdGVuZXJzLm9uS2V5VXApO1xcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnBlbmRpbmdJbWFnZUVsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHBlbmRpbmdJbWFnZUVsZW1lbnQ6IG51bGwgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICgoZHJhZ2dpbmdFbGVtZW50ID09PSBudWxsIHx8IGRyYWdnaW5nRWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZHJhZ2dpbmdFbGVtZW50LnR5cGUpID09PSBcXFwiZnJlZWRyYXdcXFwiKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHBvaW50ZXJDb29yZHMgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18udmlld3BvcnRDb29yZHNUb1NjZW5lQ29vcmRzKShjaGlsZEV2ZW50LCB0aGlzLnN0YXRlKTtcXG4gICAgICAgICAgICAgICAgY29uc3QgcG9pbnRzID0gZHJhZ2dpbmdFbGVtZW50LnBvaW50cztcXG4gICAgICAgICAgICAgICAgbGV0IGR4ID0gcG9pbnRlckNvb3Jkcy54IC0gZHJhZ2dpbmdFbGVtZW50Lng7XFxuICAgICAgICAgICAgICAgIGxldCBkeSA9IHBvaW50ZXJDb29yZHMueSAtIGRyYWdnaW5nRWxlbWVudC55O1xcbiAgICAgICAgICAgICAgICAvLyBBbGxvd3MgZG90cyB0byBhdm9pZCBiZWluZyBmbGFnZ2VkIGFzIGluZmluaXRlbHkgc21hbGxcXG4gICAgICAgICAgICAgICAgaWYgKGR4ID09PSBwb2ludHNbMF1bMF0gJiYgZHkgPT09IHBvaW50c1swXVsxXSkge1xcbiAgICAgICAgICAgICAgICAgICAgZHkgKz0gMC4wMDAxO1xcbiAgICAgICAgICAgICAgICAgICAgZHggKz0gMC4wMDAxO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGNvbnN0IHByZXNzdXJlcyA9IGRyYWdnaW5nRWxlbWVudC5zaW11bGF0ZVByZXNzdXJlXFxuICAgICAgICAgICAgICAgICAgICA/IFtdXFxuICAgICAgICAgICAgICAgICAgICA6IFsuLi5kcmFnZ2luZ0VsZW1lbnQucHJlc3N1cmVzLCBjaGlsZEV2ZW50LnByZXNzdXJlXTtcXG4gICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTlfXy5tdXRhdGVFbGVtZW50KShkcmFnZ2luZ0VsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgICAgIHBvaW50czogWy4uLnBvaW50cywgW2R4LCBkeV1dLFxcbiAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmVzLFxcbiAgICAgICAgICAgICAgICAgICAgbGFzdENvbW1pdHRlZFBvaW50OiBbZHgsIGR5XSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uTWFuYWdlci5leGVjdXRlQWN0aW9uKF9hY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYWN0aW9uRmluYWxpemUpO1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICgoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMV9fLmlzSW1hZ2VFbGVtZW50KShkcmFnZ2luZ0VsZW1lbnQpKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlRWxlbWVudCA9IGRyYWdnaW5nRWxlbWVudDtcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUltYWdlRGltZW5zaW9ucyhpbWFnZUVsZW1lbnQpO1xcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNlbGVjdGVkRWxlbWVudElkczogeyBbaW1hZ2VFbGVtZW50LmlkXTogdHJ1ZSB9IH0sICgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbk1hbmFnZXIuZXhlY3V0ZUFjdGlvbihfYWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFjdGlvbkZpbmFsaXplKTtcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjZW5lLnJlcGxhY2VBbGxFbGVtZW50cyh0aGlzLnNjZW5lXFxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpXFxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoZWwpID0+IGVsLmlkICE9PSBpbWFnZUVsZW1lbnQuaWQpKTtcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uTWFuYWdlci5leGVjdXRlQWN0aW9uKF9hY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYWN0aW9uRmluYWxpemUpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKCgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIxX18uaXNMaW5lYXJFbGVtZW50KShkcmFnZ2luZ0VsZW1lbnQpKSB7XFxuICAgICAgICAgICAgICAgIGlmIChkcmFnZ2luZ0VsZW1lbnQucG9pbnRzLmxlbmd0aCA+IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeS5yZXN1bWVSZWNvcmRpbmcoKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBjb25zdCBwb2ludGVyQ29vcmRzID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnZpZXdwb3J0Q29vcmRzVG9TY2VuZUNvb3JkcykoY2hpbGRFdmVudCwgdGhpcy5zdGF0ZSk7XFxuICAgICAgICAgICAgICAgIGlmICghcG9pbnRlckRvd25TdGF0ZS5kcmFnLmhhc09jY3VycmVkICYmXFxuICAgICAgICAgICAgICAgICAgICBkcmFnZ2luZ0VsZW1lbnQgJiZcXG4gICAgICAgICAgICAgICAgICAgICFtdWx0aUVsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE5X18ubXV0YXRlRWxlbWVudCkoZHJhZ2dpbmdFbGVtZW50LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzOiBbXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmRyYWdnaW5nRWxlbWVudC5wb2ludHMsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJDb29yZHMueCAtIGRyYWdnaW5nRWxlbWVudC54LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlckNvb3Jkcy55IC0gZHJhZ2dpbmdFbGVtZW50LnksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlFbGVtZW50OiBkcmFnZ2luZ0VsZW1lbnQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGluZ0VsZW1lbnQ6IHRoaXMuc3RhdGUuZHJhZ2dpbmdFbGVtZW50LFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocG9pbnRlckRvd25TdGF0ZS5kcmFnLmhhc09jY3VycmVkICYmICFtdWx0aUVsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICgoMCxfZWxlbWVudF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xN19fLmlzQmluZGluZ0VuYWJsZWQpKHRoaXMuc3RhdGUpICYmXFxuICAgICAgICAgICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjFfXy5pc0JpbmRpbmdFbGVtZW50KShkcmFnZ2luZ0VsZW1lbnQpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5tYXliZUJpbmRMaW5lYXJFbGVtZW50KShkcmFnZ2luZ0VsZW1lbnQsIHRoaXMuc3RhdGUsIHRoaXMuc2NlbmUsIHBvaW50ZXJDb29yZHMpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHN1Z2dlc3RlZEJpbmRpbmdzOiBbXSwgc3RhcnRCb3VuZEVsZW1lbnQ6IG51bGwgfSk7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoIWVsZW1lbnRMb2NrZWQpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzM0X18ucmVzZXRDdXJzb3IpKHRoaXMuY2FudmFzKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKChwcmV2U3RhdGUpID0+ICh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdnaW5nRWxlbWVudDogbnVsbCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudFR5cGU6IFxcXCJzZWxlY3Rpb25cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRJZHM6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldlN0YXRlLnNlbGVjdGVkRWxlbWVudElkcyksIHsgW3RoaXMuc3RhdGUuZHJhZ2dpbmdFbGVtZW50LmlkXTogdHJ1ZSB9KSxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKChwcmV2U3RhdGUpID0+ICh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdnaW5nRWxlbWVudDogbnVsbCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50SWRzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHByZXZTdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHMpLCB7IFt0aGlzLnN0YXRlLmRyYWdnaW5nRWxlbWVudC5pZF06IHRydWUgfSksXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKGVsZW1lbnRUeXBlICE9PSBcXFwic2VsZWN0aW9uXFxcIiAmJlxcbiAgICAgICAgICAgICAgICBkcmFnZ2luZ0VsZW1lbnQgJiZcXG4gICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uaXNJbnZpc2libHlTbWFsbEVsZW1lbnQpKGRyYWdnaW5nRWxlbWVudCkpIHtcXG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGludmlzaWJsZSBlbGVtZW50IHdoaWNoIHdhcyBhZGRlZCBpbiBvblBvaW50ZXJEb3duXFxuICAgICAgICAgICAgICAgIHRoaXMuc2NlbmUucmVwbGFjZUFsbEVsZW1lbnRzKHRoaXMuc2NlbmUuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCkuc2xpY2UoMCwgLTEpKTtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgICAgICBkcmFnZ2luZ0VsZW1lbnQ6IG51bGwsXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmIChkcmFnZ2luZ0VsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTlfXy5tdXRhdGVFbGVtZW50KShkcmFnZ2luZ0VsZW1lbnQsICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmdldE5vcm1hbGl6ZWREaW1lbnNpb25zKShkcmFnZ2luZ0VsZW1lbnQpKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHJlc2l6aW5nRWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnkucmVzdW1lUmVjb3JkaW5nKCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmIChyZXNpemluZ0VsZW1lbnQgJiYgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uaXNJbnZpc2libHlTbWFsbEVsZW1lbnQpKHJlc2l6aW5nRWxlbWVudCkpIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5zY2VuZS5yZXBsYWNlQWxsRWxlbWVudHModGhpcy5zY2VuZVxcbiAgICAgICAgICAgICAgICAgICAgLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpXFxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChlbCkgPT4gZWwuaWQgIT09IHJlc2l6aW5nRWxlbWVudC5pZCkpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAvLyBDb2RlIGJlbG93IGhhbmRsZXMgc2VsZWN0aW9uIHdoZW4gZWxlbWVudChzKSB3ZXJlbid0XFxuICAgICAgICAgICAgLy8gZHJhZyBvciBhZGRlZCB0byBzZWxlY3Rpb24gb24gcG9pbnRlciBkb3duIHBoYXNlLlxcbiAgICAgICAgICAgIGNvbnN0IGhpdEVsZW1lbnQgPSBwb2ludGVyRG93blN0YXRlLmhpdC5lbGVtZW50O1xcbiAgICAgICAgICAgIGlmIChoaXRFbGVtZW50ICYmXFxuICAgICAgICAgICAgICAgICFwb2ludGVyRG93blN0YXRlLmRyYWcuaGFzT2NjdXJyZWQgJiZcXG4gICAgICAgICAgICAgICAgIXBvaW50ZXJEb3duU3RhdGUuaGl0Lndhc0FkZGVkVG9TZWxlY3Rpb24gJiZcXG4gICAgICAgICAgICAgICAgLy8gaWYgd2UncmUgZWRpdGluZyBhIGxpbmUsIHBvaW50ZXJ1cCBzaG91bGRuJ3Qgc3dpdGNoIHNlbGVjdGlvbiBpZlxcbiAgICAgICAgICAgICAgICAvLyBib3ggc2VsZWN0ZWRcXG4gICAgICAgICAgICAgICAgKCF0aGlzLnN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50IHx8XFxuICAgICAgICAgICAgICAgICAgICAhcG9pbnRlckRvd25TdGF0ZS5ib3hTZWxlY3Rpb24uaGFzT2NjdXJyZWQpKSB7XFxuICAgICAgICAgICAgICAgIC8vIHdoZW4gaW5zaWRlIGxpbmUgZWRpdG9yLCBzaGlmdCBzZWxlY3RzIHBvaW50cyBpbnN0ZWFkXFxuICAgICAgICAgICAgICAgIGlmIChjaGlsZEV2ZW50LnNoaWZ0S2V5ICYmICF0aGlzLnN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50KSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHNbaGl0RWxlbWVudC5pZF0pIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjNfXy5pc1NlbGVjdGVkVmlhR3JvdXApKHRoaXMuc3RhdGUsIGhpdEVsZW1lbnQpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gdW5zZWxlY3QgYWxsIGdyb3VwcyBoaXRFbGVtZW50IGlzIHBhcnQgb2ZcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXMgd2VsbCBhcyBhbGwgZWxlbWVudHMgdGhhdCBhcmUgcGFydCBvZiB0aGUgZ3JvdXBzXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhpdEVsZW1lbnQgaXMgcGFydCBvZlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpZHNPZlNlbGVjdGVkRWxlbWVudHNUaGF0QXJlSW5Hcm91cHMgPSBoaXRFbGVtZW50Lmdyb3VwSWRzXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmxhdE1hcCgoZ3JvdXBJZCkgPT4gKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjNfXy5nZXRFbGVtZW50c0luR3JvdXApKHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKSwgZ3JvdXBJZCkpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChlbGVtZW50KSA9PiAoeyBbZWxlbWVudC5pZF06IGZhbHNlIH0pKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlZHVjZSgocHJldklkLCBhY2MpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHByZXZJZCksIGFjYykpLCB7fSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKF9wcmV2U3RhdGUpID0+ICh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEdyb3VwSWRzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIF9wcmV2U3RhdGUuc2VsZWN0ZWRFbGVtZW50SWRzKSwgaGl0RWxlbWVudC5ncm91cElkc1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGdJZCkgPT4gKHsgW2dJZF06IGZhbHNlIH0pKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKHByZXYsIGFjYykgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldiksIGFjYykpLCB7fSkpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50SWRzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIF9wcmV2U3RhdGUuc2VsZWN0ZWRFbGVtZW50SWRzKSwgaWRzT2ZTZWxlY3RlZEVsZW1lbnRzVGhhdEFyZUluR3JvdXBzKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGVsZW1lbnQgZnJvbSBzZWxlY3Rpb24gd2hpbGVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8ga2VlcGluZyBwcmV2IGVsZW1lbnRzIHNlbGVjdGVkXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKHByZXZTdGF0ZSkgPT4gKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjNfXy5zZWxlY3RHcm91cHNGb3JTZWxlY3RlZEVsZW1lbnRzKShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHByZXZTdGF0ZSksIHsgc2VsZWN0ZWRFbGVtZW50SWRzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHByZXZTdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHMpLCB7IFtoaXRFbGVtZW50LmlkXTogZmFsc2UgfSkgfSksIHRoaXMuc2NlbmUuZ2V0RWxlbWVudHMoKSkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZCBlbGVtZW50IHRvIHNlbGVjdGlvbiB3aGlsZVxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGtlZXBpbmcgcHJldiBlbGVtZW50cyBzZWxlY3RlZFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKF9wcmV2U3RhdGUpID0+ICh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudElkczogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBfcHJldlN0YXRlLnNlbGVjdGVkRWxlbWVudElkcyksIHsgW2hpdEVsZW1lbnQuaWRdOiB0cnVlIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKHByZXZTdGF0ZSkgPT4gKE9iamVjdC5hc3NpZ24oe30sICgwLF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIzX18uc2VsZWN0R3JvdXBzRm9yU2VsZWN0ZWRFbGVtZW50cykoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcmV2U3RhdGUpLCB7IHNlbGVjdGVkRWxlbWVudElkczogeyBbaGl0RWxlbWVudC5pZF06IHRydWUgfSB9KSwgdGhpcy5zY2VuZS5nZXRFbGVtZW50cygpKSkpKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQgJiZcXG4gICAgICAgICAgICAgICAgIXBvaW50ZXJEb3duU3RhdGUuZHJhZy5oYXNPY2N1cnJlZCAmJlxcbiAgICAgICAgICAgICAgICAhdGhpcy5zdGF0ZS5pc1Jlc2l6aW5nICYmXFxuICAgICAgICAgICAgICAgICgoaGl0RWxlbWVudCAmJlxcbiAgICAgICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uaXNIaXR0aW5nRWxlbWVudEJvdW5kaW5nQm94V2l0aG91dEhpdHRpbmdFbGVtZW50KShoaXRFbGVtZW50LCB0aGlzLnN0YXRlLCBwb2ludGVyRG93blN0YXRlLm9yaWdpbi54LCBwb2ludGVyRG93blN0YXRlLm9yaWdpbi55KSkgfHxcXG4gICAgICAgICAgICAgICAgICAgICghaGl0RWxlbWVudCAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJEb3duU3RhdGUuaGl0Lmhhc0hpdENvbW1vbkJvdW5kaW5nQm94T2ZTZWxlY3RlZEVsZW1lbnRzKSkpIHtcXG4gICAgICAgICAgICAgICAgLy8gRGVzZWxlY3Qgc2VsZWN0ZWQgZWxlbWVudHNcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRJZHM6IHt9LFxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRHcm91cElkczoge30sXFxuICAgICAgICAgICAgICAgICAgICBlZGl0aW5nR3JvdXBJZDogbnVsbCxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKCFlbGVtZW50TG9ja2VkICYmIGVsZW1lbnRUeXBlICE9PSBcXFwiZnJlZWRyYXdcXFwiICYmIGRyYWdnaW5nRWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKChwcmV2U3RhdGUpID0+ICh7XFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRJZHM6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldlN0YXRlLnNlbGVjdGVkRWxlbWVudElkcyksIHsgW2RyYWdnaW5nRWxlbWVudC5pZF06IHRydWUgfSksXFxuICAgICAgICAgICAgICAgIH0pKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKGVsZW1lbnRUeXBlICE9PSBcXFwic2VsZWN0aW9uXFxcIiB8fFxcbiAgICAgICAgICAgICAgICAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzMwX18uaXNTb21lRWxlbWVudFNlbGVjdGVkKSh0aGlzLnNjZW5lLmdldEVsZW1lbnRzKCksIHRoaXMuc3RhdGUpKSB7XFxuICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeS5yZXN1bWVSZWNvcmRpbmcoKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHBvaW50ZXJEb3duU3RhdGUuZHJhZy5oYXNPY2N1cnJlZCB8fCBpc1Jlc2l6aW5nIHx8IGlzUm90YXRpbmcpIHtcXG4gICAgICAgICAgICAgICAgKCgwLF9lbGVtZW50X2JpbmRpbmdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE3X18uaXNCaW5kaW5nRW5hYmxlZCkodGhpcy5zdGF0ZSlcXG4gICAgICAgICAgICAgICAgICAgID8gX2VsZW1lbnRfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5iaW5kT3JVbmJpbmRTZWxlY3RlZEVsZW1lbnRzXFxuICAgICAgICAgICAgICAgICAgICA6IF9lbGVtZW50X2JpbmRpbmdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE3X18udW5iaW5kTGluZWFyRWxlbWVudHMpKCgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzBfXy5nZXRTZWxlY3RlZEVsZW1lbnRzKSh0aGlzLnNjZW5lLmdldEVsZW1lbnRzKCksIHRoaXMuc3RhdGUpKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKCFlbGVtZW50TG9ja2VkICYmIGVsZW1lbnRUeXBlICE9PSBcXFwiZnJlZWRyYXdcXFwiKSB7XFxuICAgICAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzRfXy5yZXNldEN1cnNvcikodGhpcy5jYW52YXMpO1xcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcXG4gICAgICAgICAgICAgICAgICAgIGRyYWdnaW5nRWxlbWVudDogbnVsbCxcXG4gICAgICAgICAgICAgICAgICAgIHN1Z2dlc3RlZEJpbmRpbmdzOiBbXSxcXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRUeXBlOiBcXFwic2VsZWN0aW9uXFxcIixcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcXG4gICAgICAgICAgICAgICAgICAgIGRyYWdnaW5nRWxlbWVudDogbnVsbCxcXG4gICAgICAgICAgICAgICAgICAgIHN1Z2dlc3RlZEJpbmRpbmdzOiBbXSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgIH1cXG4gICAgbWF5YmVTdWdnZXN0QmluZGluZ0ZvckFsbChzZWxlY3RlZEVsZW1lbnRzKSB7XFxuICAgICAgICBjb25zdCBzdWdnZXN0ZWRCaW5kaW5ncyA9ICgwLF9lbGVtZW50X2JpbmRpbmdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE3X18uZ2V0RWxpZ2libGVFbGVtZW50c0ZvckJpbmRpbmcpKHNlbGVjdGVkRWxlbWVudHMpO1xcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHN1Z2dlc3RlZEJpbmRpbmdzIH0pO1xcbiAgICB9XFxuICAgIGNsZWFyU2VsZWN0aW9uKGhpdEVsZW1lbnQpIHtcXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoKHByZXZTdGF0ZSkgPT4gKHtcXG4gICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRJZHM6IHt9LFxcbiAgICAgICAgICAgIHNlbGVjdGVkR3JvdXBJZHM6IHt9LFxcbiAgICAgICAgICAgIC8vIENvbnRpbnVlIGVkaXRpbmcgdGhlIHNhbWUgZ3JvdXAgaWYgdGhlIHVzZXIgc2VsZWN0ZWQgYSBkaWZmZXJlbnRcXG4gICAgICAgICAgICAvLyBlbGVtZW50IGZyb20gaXRcXG4gICAgICAgICAgICBlZGl0aW5nR3JvdXBJZDogcHJldlN0YXRlLmVkaXRpbmdHcm91cElkICYmXFxuICAgICAgICAgICAgICAgIGhpdEVsZW1lbnQgIT0gbnVsbCAmJlxcbiAgICAgICAgICAgICAgICAoMCxfZ3JvdXBzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yM19fLmlzRWxlbWVudEluR3JvdXApKGhpdEVsZW1lbnQsIHByZXZTdGF0ZS5lZGl0aW5nR3JvdXBJZClcXG4gICAgICAgICAgICAgICAgPyBwcmV2U3RhdGUuZWRpdGluZ0dyb3VwSWRcXG4gICAgICAgICAgICAgICAgOiBudWxsLFxcbiAgICAgICAgfSkpO1xcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XFxuICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcXG4gICAgICAgICAgICBwcmV2aW91c1NlbGVjdGVkRWxlbWVudElkczogdGhpcy5zdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHMsXFxuICAgICAgICB9KTtcXG4gICAgfVxcbiAgICBnZXRUZXh0V3lzaXd5Z1NuYXBwZWRUb0NlbnRlclBvc2l0aW9uKHgsIHksIGFwcFN0YXRlLCBjYW52YXMsIHNjYWxlKSB7XFxuICAgICAgICBjb25zdCBlbGVtZW50Q2xpY2tlZEluc2lkZSA9ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzBfXy5nZXRFbGVtZW50Q29udGFpbmluZ1Bvc2l0aW9uKSh0aGlzLnNjZW5lXFxuICAgICAgICAgICAgLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpXFxuICAgICAgICAgICAgLmZpbHRlcigoZWxlbWVudCkgPT4gISgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmlzVGV4dEVsZW1lbnQpKGVsZW1lbnQpKSwgeCwgeSk7XFxuICAgICAgICBpZiAoZWxlbWVudENsaWNrZWRJbnNpZGUpIHtcXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50Q2VudGVyWCA9IGVsZW1lbnRDbGlja2VkSW5zaWRlLnggKyBlbGVtZW50Q2xpY2tlZEluc2lkZS53aWR0aCAvIDI7XFxuICAgICAgICAgICAgY29uc3QgZWxlbWVudENlbnRlclkgPSBlbGVtZW50Q2xpY2tlZEluc2lkZS55ICsgZWxlbWVudENsaWNrZWRJbnNpZGUuaGVpZ2h0IC8gMjtcXG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZVRvQ2VudGVyID0gTWF0aC5oeXBvdCh4IC0gZWxlbWVudENlbnRlclgsIHkgLSBlbGVtZW50Q2VudGVyWSk7XFxuICAgICAgICAgICAgY29uc3QgaXNTbmFwcGVkVG9DZW50ZXIgPSBkaXN0YW5jZVRvQ2VudGVyIDwgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5URVhUX1RPX0NFTlRFUl9TTkFQX1RIUkVTSE9MRDtcXG4gICAgICAgICAgICBpZiAoaXNTbmFwcGVkVG9DZW50ZXIpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgeyB4OiB2aWV3cG9ydFgsIHk6IHZpZXdwb3J0WSB9ID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zNF9fLnNjZW5lQ29vcmRzVG9WaWV3cG9ydENvb3JkcykoeyBzY2VuZVg6IGVsZW1lbnRDZW50ZXJYLCBzY2VuZVk6IGVsZW1lbnRDZW50ZXJZIH0sIGFwcFN0YXRlKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdmlld3BvcnRYLCB2aWV3cG9ydFksIGVsZW1lbnRDZW50ZXJYLCBlbGVtZW50Q2VudGVyWSB9O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBnZXRDYW52YXNPZmZzZXRzKCkge1xcbiAgICAgICAgdmFyIF9hO1xcbiAgICAgICAgaWYgKChfYSA9IHRoaXMuZXhjYWxpZHJhd0NvbnRhaW5lclJlZikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmN1cnJlbnQpIHtcXG4gICAgICAgICAgICBjb25zdCBleGNhbGlkcmF3Q29udGFpbmVyID0gdGhpcy5leGNhbGlkcmF3Q29udGFpbmVyUmVmLmN1cnJlbnQ7XFxuICAgICAgICAgICAgY29uc3QgeyBsZWZ0LCB0b3AgfSA9IGV4Y2FsaWRyYXdDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XFxuICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgb2Zmc2V0TGVmdDogbGVmdCxcXG4gICAgICAgICAgICAgICAgb2Zmc2V0VG9wOiB0b3AsXFxuICAgICAgICAgICAgfTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgb2Zmc2V0TGVmdDogMCxcXG4gICAgICAgICAgICBvZmZzZXRUb3A6IDAsXFxuICAgICAgICB9O1xcbiAgICB9XFxuICAgIHVwZGF0ZUxhbmd1YWdlKCkge1xcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50TGFuZyA9IF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNV9fLmxhbmd1YWdlcy5maW5kKChsYW5nKSA9PiBsYW5nLmNvZGUgPT09IHRoaXMucHJvcHMubGFuZ0NvZGUpIHx8XFxuICAgICAgICAgICAgICAgIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNV9fLmRlZmF1bHRMYW5nO1xcbiAgICAgICAgICAgIHlpZWxkICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNV9fLnNldExhbmd1YWdlKShjdXJyZW50TGFuZyk7XFxuICAgICAgICAgICAgdGhpcy5zZXRBcHBTdGF0ZSh7fSk7XFxuICAgICAgICB9KTtcXG4gICAgfVxcbn1cXG5BcHAuZGVmYXVsdFByb3BzID0ge1xcbiAgICAvLyBuZWVkZWQgZm9yIHRlc3RzIHRvIHBhc3Mgc2luY2Ugd2UgZGlyZWN0bHkgcmVuZGVyIEFwcCBpbiBtYW55IHRlc3RzXFxuICAgIFVJT3B0aW9uczogX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5ERUZBVUxUX1VJX09QVElPTlMsXFxufTtcXG5pZiAoXFxcImRldmVsb3BtZW50XFxcIiA9PT0gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5FTlYuVEVTVCB8fFxcbiAgICBcXFwiZGV2ZWxvcG1lbnRcXFwiID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkVOVi5ERVZFTE9QTUVOVCkge1xcbiAgICB3aW5kb3cuaCA9IHdpbmRvdy5oIHx8IHt9O1xcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh3aW5kb3cuaCwge1xcbiAgICAgICAgZWxlbWVudHM6IHtcXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXFxuICAgICAgICAgICAgZ2V0KCkge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcHAuc2NlbmUuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCk7XFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICBzZXQoZWxlbWVudHMpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBwLnNjZW5lLnJlcGxhY2VBbGxFbGVtZW50cyhlbGVtZW50cyk7XFxuICAgICAgICAgICAgfSxcXG4gICAgICAgIH0sXFxuICAgIH0pO1xcbn1cXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKEFwcCk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlCY0hBdWRITjRMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRCUVVFd1F6dEJRVVZLTzBGQlEyUTdRVUZEVVR0QlFUSkNXanRCUVVNd1JEdEJRVU16UWp0QlFVTk1PMEZCUlVvN1FVRkRUenRCUVUwelFqdEJRVFpDUVR0QlFVTnBRanRCUVVOUE8wRkJRMUk3UVVGRE1FTTdRVUV3UWpWRU8wRkJZVkU3UVVGRGVVTTdRVUZEU1R0QlFVTkhPMEZCVlRkRE8wRkJZM0ZDTzBGQlUycERPMEZCUTJNN1FVRkROa003UVVGVE4wUTdRVUZESzBNN1FVRkRkRUk3UVVGRE5FSTdRVUZYY0VRN1FVRkRhVUk3UVVGRllUdEJRVU5NTzBGQmFVTjZRanRCUVVNMlF6dEJRVU12UWp0QlFVTkJPMEZCUTBFN1FVRkRkVU03UVVGUmFrUTdRVUZOU1R0QlFVTmhPMEZCUTJ0RE8wRkJUWHBETzBGQlEybEVPMEZCVVc1RU8wRkJSVGxDTEUxQlFVMHNaVUZCWlN4SFFVRkhMREJFUVVGdFFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUXpWRExFMUJRVTBzVjBGQlZ5eEhRVUZITEVkQlFVY3NSVUZCUlN4RFFVRkRMR2xFUVVGVkxFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTTdRVUZETjBRc1RVRkJUU3d3UWtGQk1FSXNSMEZCUnl3d1JFRkJiVUlzUTBGSGJrUXNSVUZCUlN4VFFVRlRMRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUXpOQ0xFMUJRVTBzYzBKQlFYTkNMRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRM3BETEdsRVFVRlZMRU5CUVVNc01FSkJRVEJDTEVOQlFVTXNRMEZCUXp0QlFVVjZReXhKUVVGSkxGZEJRVmNzUjBGQldTeExRVUZMTEVOQlFVTTdRVUZEYWtNc1NVRkJTU3huUWtGQlowSXNSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkRla0lzU1VGQlNTeFBRVUZQTEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUTJoQ0xFbEJRVWtzVDBGQlR5eEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTm9RaXhKUVVGSkxHTkJRV01zUjBGQldTeExRVUZMTEVOQlFVTTdRVUZEY0VNc1NVRkJTU3hUUVVGVExFZEJRVmtzUzBGQlN5eERRVUZETzBGQlF5OUNMRWxCUVVrc2JVSkJRVzFDTEVkQlFWa3NTMEZCU3l4RFFVRkRPMEZCUTNwRExFbEJRVWtzYVVKQlFXbENMRWRCUVdVc1JVRkJSU3hWUVVGVkxFVkJRVVVzU1VGQlNTeEZRVUZGTEZGQlFWRXNSVUZCUlN4SlFVRkpMRVZCUVVVc1EwRkJRenRCUVVONlJTeEpRVUZKTEZsQlFWa3NSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkRja0lzU1VGQlNTeHhRa0ZCY1VJc1IwRkJSeXhMUVVGTExFTkJRVU03UVVGRmJFTXNTVUZCU1N4aFFVRmhMRWRCUVd0RExFbEJRVWtzUTBGQlF6dEJRVU40UkN4TlFVRk5MRTlCUVU4c1IwRkJXVHRKUVVOMlFpeFJRVUZSTEVWQlFVVXNTVUZCU1N4SFFVRkhMRVZCUVVVN1NVRkRia0lzVlVGQlZTeEZRVUZGTEVsQlFVazdTVUZEYUVJc1pVRkJaU3hGUVVGRkxFbEJRVWs3U1VGRGNrSXNXVUZCV1N4RlFVRkZMRWxCUVVrN1EwRkRia0lzUTBGQlF6dEJRVVZHTEUxQlFVMHNSMEZCU1N4VFFVRlJMSGRFUVVGdFF6dEpRVzFEYmtRc1dVRkJXU3hMUVVGbE96dFJRVU42UWl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGdVEyWXNWMEZCVFN4SFFVRnBReXhKUVVGSkxFTkJRVU03VVVGRE5VTXNUMEZCUlN4SFFVRjFRaXhKUVVGSkxFTkJRVU03VVVGRE9VSXNZMEZCVXl4SFFVRlpMRXRCUVVzc1EwRkJRenRSUVVVelFpeGhRVUZSTEVkQlFVY3NTMEZCU3l4RFFVRkRPMUZCUjFRc01rSkJRWE5DTEVkQlFVY3NjMFJCUVdVc1JVRkJhMElzUTBGQlF6dFJRVzFDTlVRc1ZVRkJTeXhIUVVGblFpeEZRVUZGTEVOQlFVTTdVVUZEZUVJc1pVRkJWU3hIUVVGeFF5eEpRVUZKTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUjJoRkxHOUNRVUZsTEVkQlFXbEVMRWxCUVVrc1EwRkJRenRSUVVOeVJTeHJRa0ZCWVN4SFFVRXdSQ3hKUVVGSkxFTkJRVU03VVVGRE5VVXNiMEpCUVdVc1IwRkJXU3hMUVVGTExFTkJRVU03VVVFNFR6RkNMRzFDUVVGakxFZEJRWGxETEVkQlFVY3NSVUZCUlRzN1dVRkRha1VzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1JVRkJSVHRuUWtGRGVFSXNWVUZCU1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEU5QlFVOHNNRU5CUVVVc1MwRkJTeXhGUVVGRkxFTkJRVU03WVVGRE9VTTdVVUZEU0N4RFFVRkRMRU5CUVVNN1VVRkZTeXh4UTBGQlowTXNSMEZCUnl4SFFVRkhMRVZCUVVVN1dVRkROME1zVDBGQlR5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMREpDUVVFeVFpeEZRVUZGTEVOQlFVTTdVVUZEYkVRc1EwRkJReXhEUVVGRE8xRkJSVXNzY1VKQlFXZENMRWRCUVVjc1IwRkJSeXhGUVVGRk8xbEJRemRDTEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFJRVU5zUXl4RFFVRkRMRU5CUVVNN1VVRkZUU3h4UWtGQlowSXNSMEZCUnl3eVJFRkJhMElzUTBGRE0wTXNRMEZCUXl4WlFVRXdRaXhGUVVGRkxFVkJRVVU3TzFsQlF6ZENMSE5GUVVGelJUdFpRVU4wUlN4SlFVRkpMRU5CUVVNc1pVRkJaU3hIUVVGSExFdEJRVXNzUTBGQlF6dFpRVU0zUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhUUVVGVExFbEJRVWtzV1VGQldTeExRVUZMTEV0QlFVc3NSVUZCUlR0blFrRkROVU1zVDBGQlR6dGhRVU5TTzFsQlJVUXNTVUZCU1N4alFVRmpMRWRCUVhORExFbEJRVWtzUTBGQlF6dFpRVU0zUkN4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFVkJRVVU3WjBKQlEzcENMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVN08yOUNRVU40UXl4SlFVTkZMRmRCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWTBGQll5d3dRMEZCUlN4RlFVRkZMRTFCUVVzc1QwRkJUeXhEUVVGRExFVkJRVVU3ZDBKQlF6VkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWTBGQll5eExRVUZMTEU5QlFVODdkMEpCUTNKRExEaEVRVUZ0UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVNMVFqdDNRa0ZEUVN4alFVRmpMRWRCUVVjc1QwRkJUeXhEUVVGRE8zRkNRVU14UWp0blFrRkRTQ3hEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEU0N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dG5Ra0ZEY2tRc1NVRkJTU3haUVVGWkxFTkJRVU1zWlVGQlpTeEZRVUZGTzI5Q1FVTm9ReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEdWQlFXVXNSVUZCUlN4RFFVRkRPMmxDUVVOb1F6dGhRVU5HTzFsQlJVUXNTVUZCU1N4WlFVRlpMRU5CUVVNc1MwRkJTeXhGUVVGRk8yZENRVU4wUWl4SlFVRkpMRU5CUVVNc1MwRkJTeXhIUVVGSExGbEJRVmtzUTBGQlF5eFpRVUZaTzI5Q1FVTndReXhEUVVGRExFTkJRVU1zV1VGQldTeERRVUZETEV0QlFVczdiMEpCUTNCQ0xFTkJRVU1zYVVOQlFVMHNTVUZCU1N4RFFVRkRMRXRCUVVzc1IwRkJTeXhaUVVGWkxFTkJRVU1zUzBGQlN5eERRVUZGTEVOQlFVTTdaMEpCUXpkRExFbEJRVWtzUTBGQlF5eDNRa0ZCZDBJc1JVRkJSU3hEUVVGRE8yRkJRMnBETzFsQlJVUXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hKUVVGSkxHTkJRV01zUlVGQlJUdG5Ra0ZETTBNc1NVRkJTU3haUVVGWkxFTkJRVU1zWlVGQlpTeEZRVUZGTzI5Q1FVTm9ReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEdWQlFXVXNSVUZCUlN4RFFVRkRPMmxDUVVOb1F6dG5Ra0ZGUkN4SlFVRkpMR1ZCUVdVc1IwRkJSeXh0UWtGQldTeGhRVUZhTEZsQlFWa3NkVUpCUVZvc1dVRkJXU3hEUVVGRkxGRkJRVkVzTUVOQlFVVXNaVUZCWlN4TFFVRkpMRXRCUVVzc1EwRkJRenRuUWtGRGRrVXNTVUZCU1N4alFVRmpMRWRCUVVjc2JVSkJRVmtzWVVGQldpeFpRVUZaTEhWQ1FVRmFMRmxCUVZrc1EwRkJSU3hSUVVGUkxEQkRRVUZGTEdOQlFXTXNTMEZCU1N4TFFVRkxMRU5CUVVNN1owSkJRM0pGTEVsQlFVa3NVVUZCVVN4SFFVRkhMRzFDUVVGWkxHRkJRVm9zV1VGQldTeDFRa0ZCV2l4WlFVRlpMRU5CUVVVc1VVRkJVU3d3UTBGQlJTeFJRVUZSTEV0QlFVa3NTVUZCU1N4RFFVRkRPMmRDUVVONFJDeEpRVUZKTEV0QlFVc3NSMEZCUnl4dFFrRkJXU3hoUVVGYUxGbEJRVmtzZFVKQlFWb3NXVUZCV1N4RFFVRkZMRkZCUVZFc01FTkJRVVVzUzBGQlN5eExRVUZKTEc5RVFVRlhMRU5CUVVNN1owSkJRM3BFTEVsQlFVa3NTVUZCU1N4SFFVRkhMSGRDUVVGWkxHRkJRVm9zV1VGQldTeDFRa0ZCV2l4WlFVRlpMRU5CUVVVc1VVRkJVU3d3UTBGQlJTeEpRVUZKTEcxRFFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETzJkQ1FVTXpSQ3hKUVVGSkxFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4bFFVRmxMRXRCUVVzc1YwRkJWeXhGUVVGRk8yOUNRVU55UkN4bFFVRmxMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlFVTTdhVUpCUXpsRE8yZENRVVZFTEVsQlFVa3NUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHTkJRV01zUzBGQlN5eFhRVUZYTEVWQlFVVTdiMEpCUTNCRUxHTkJRV01zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR05CUVdNc1EwRkJRenRwUWtGRE5VTTdaMEpCUlVRc1NVRkJTU3hQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNaVUZCWlN4TFFVRkxMRmRCUVZjc1JVRkJSVHR2UWtGRGNrUXNVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTXNRMEZCUXl4clJFRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdhVUpCUXpGRU8yZENRVVZFTEVsQlFVa3NUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUzBGQlN5eFhRVUZYTEVWQlFVVTdiMEpCUXpORExFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJRenRwUWtGRE1VSTdaMEpCUlVRc1NVRkJTU3hQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4TFFVRkxMRmRCUVZjc1JVRkJSVHR2UWtGRE1VTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETzJsQ1FVTjRRanRuUWtGRFJDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVTllMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVU3TzI5Q1FVTlNMQ3RFUVVFclJEdHZRa0ZETDBRc01rUkJRVEpFTzI5Q1FVTXpSQ3h6UkVGQmMwUTdiMEpCUTNSRUxFOUJRVThzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1VVRkJVU3hKUVVGSkxFVkJRVVVzUlVGQlJUdDNRa0ZEYUVRc1kwRkJZeXhGUVVOYUxHTkJRV01zUzBGQlNTeHJRa0ZCV1N4RFFVRkRMRkZCUVZFc01FTkJRVVVzWTBGQll5eExRVUZKTEVsQlFVazdkMEpCUTJwRkxHVkJRV1U3ZDBKQlEyWXNZMEZCWXp0M1FrRkRaQ3hSUVVGUk8zZENRVU5TTEV0QlFVczdkMEpCUTB3c1NVRkJTVHR4UWtGRFRDeERRVUZETEVOQlFVTTdaMEpCUTB3c1EwRkJReXhGUVVORUxFZEJRVWNzUlVGQlJUdHZRa0ZEU0N4SlFVRkpMRmxCUVZrc1EwRkJReXhYUVVGWExFVkJRVVU3ZDBKQlF6VkNMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zWlVGQlpTeERRVU14UWl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVOV0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNNa0pCUVRKQ0xFVkJRVVVzUTBGRGVrTXNRMEZCUXp0eFFrRkRTRHRuUWtGRFNDeERRVUZETEVOQlEwWXNRMEZCUXp0aFFVTklPMUZCUTBnc1EwRkJReXhEUVVOR0xFTkJRVU03VVVGRlJpeFpRVUZaTzFGQlJVb3NWMEZCVFN4SFFVRkhMREpFUVVGclFpeERRVUZETEVkQlFVY3NSVUZCUlR0WlFVTjJReXhqUVVGakxFZEJRVWNzUzBGQlN5eERRVUZETzFsQlEzWkNMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeG5Ra0ZCWjBJc1JVRkJSU3hKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlF6VkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJSVXNzWVVGQlVTeEhRVUZITEVkQlFVY3NSVUZCUlR0WlFVTjBRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdVVUZEYUVJc1EwRkJReXhEUVVGRE8xRkJSVTBzYVVKQlFWa3NSMEZCYTBJc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJUdFpRVU01UXl4TFFVRkxMRU5CUVVNc1kwRkJZeXhGUVVGRkxFTkJRVU03VVVGRGVrSXNRMEZCUXl4RFFVRkRPMUZCUlUwc2FVSkJRVmtzUjBGQlJ5eEhRVUZITEVWQlFVVTdXVUZETVVJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5d3lRa0ZCTWtJc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZPMmRDUVVNelJDeEpRVUZKTEhkRVFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVU3YjBKQlF6RkNMRzFHUVVGNVFpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMmxDUVVOd1F6dFpRVU5JTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTBnc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeERRVUZETzFGQlEzaENMRU5CUVVNc1EwRkJRenRSUVVWTkxIbENRVUZ2UWl4SFFVRkhMRU5CUVU4c1IwRkJWeXhGUVVGRkxFdEJRWEZDTEVWQlFVVXNSVUZCUlR0WlFVTXhSU3hKUVVGSkxFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhwUlVGQmQwSXNRMEZCUXl4RlFVRkZPMmRDUVVNelJDeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMR1ZCUVdVc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEYUVVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eHBSVUZCZDBJc1EwRkJReXhEUVVGRE8yZENRVU4wUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQlF5eEZRVUZGTEVWQlFVVXNhVVJCUVZFc1JVRkJSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1lVRkRiRVU3YVVKQlFVMHNTVUZCU1N4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNhMFZCUVhsQ0xFTkJRVU1zUlVGQlJUdG5Ra0ZEY2tVc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeGxRVUZsTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dG5Ra0ZETVVRc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eHJSVUZCZVVJc1EwRkJReXhEUVVGRE8yZENRVU40UXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQlF5eEZRVUZGTEVWQlFVVXNhVVJCUVZFc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1lVRkRia1U3V1VGRlJDeEpRVUZKTzJkQ1FVTkdMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzUzBGQlN5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTNKRUxFMUJRVTBzU1VGQlNTeEhRVUZITEUxQlFVMHNUMEZCVHl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8yZENRVU5zUXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU03WjBKQlF6TkRMRWxCUVVrc1EwRkJReXd5UkVGQll5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZPMjlDUVVONlFpeE5RVUZOTEVsQlFVa3NTMEZCU3l4RlFVRkZMRU5CUVVNN2FVSkJRMjVDTzJkQ1FVTkVMRWxCUTBVc1MwRkJTeXhMUVVGTExFbEJRVWtzUTBGQlF5eEZRVUZGTzI5Q1FVTnFRaXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVU5hTEhsRFFVRkRMRU5CUVVNc01FSkJRVEJDTEVWQlFVVTdkMEpCUXpWQ0xGTkJRVk1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRWxCUVVrc1NVRkJTU3hEUVVGRExFOUJRVThzU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4TlFVRk5PM0ZDUVVNMVJDeERRVUZETEVOQlEwZ3NSVUZEUkR0dlFrRkRRU3hOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dHZRa0ZEY0VRc2EwUkJRV3RFTzI5Q1FVTnNSQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4RlFVRkZPM2RDUVVNMVFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRVZCUVVVc1lVRkJZU3hGUVVGRkxFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTTdjVUpCUTNwRE8yOUNRVU5FTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSU3hoUVVGaExFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXp0cFFrRkRlRU03WVVGRFJqdFpRVUZETEU5QlFVOHNTMEZCVlN4RlFVRkZPMmRDUVVOdVFpeE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMSGxEUVVGRExFTkJRVU1zTkVKQlFUUkNMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU01UXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzJGQlEzUkNPMjlDUVVGVE8yZENRVU5TTEVsQlFVa3NRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenRoUVVOMlFqdFJRVU5JTEVOQlFVTXNSVUZCUXp0UlFVVk5MR2xDUVVGWkxFZEJRVWNzUjBGQlJ5eEZRVUZGTzFsQlF6RkNMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUZEZGtJc1EwRkJReXhEUVVGRE8xRkJSVVk3T3p0WFFVZEhPMUZCUTBzc1pVRkJWU3hIUVVGSExESkVRVUZyUWl4RFFVTnlReXhEUVVGRExFbEJRWEZETEVWQlFVVXNSVUZCUlR0WlFVTjRReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFsQlEyeERMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMR2xEUVVOd1FpdzJSRUZCYTBJc1JVRkJSU3hMUVVOMlFpeFRRVUZUTEVWQlFVVXNTMEZCU1N4aFFVRktMRWxCUVVrc2RVSkJRVW9zU1VGQlNTeERRVUZGTEdsQ1FVRnBRaXhGUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFVkJRelZFTEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzU1VGRGRrSXNRMEZCUXl4RFFVRkRPMWxCUTBvc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzFGQlEzUkNMRU5CUVVNc1EwRkRSaXhEUVVGRE8xRkJSVTBzYjBKQlFXVXNSMEZCUnl4SFFVRlRMRVZCUVVVN1dVRkRia01zU1VGQlNTeGhRVUZoTEVsQlFVa3NUVUZCVFN4SlFVRkpMR05CUVdNc1NVRkJTU3hOUVVGTkxFVkJRVVU3WjBKQlEzUkVMRTFCUVdNc1EwRkJReXhYUVVGWExFTkJRVU1zVjBGQlZ5eERRVU55UXl4RFFVRlBMRmxCUVRoQ0xFVkJRVVVzUlVGQlJUdHZRa0ZEZGtNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RlFVRkZPM2RDUVVNNVFpeFBRVUZQTzNGQ1FVTlNPMjlDUVVORUxFMUJRVTBzVlVGQlZTeEhRVUZITEZsQlFWa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlEzcERMRTFCUVUwc1NVRkJTU3hIUVVGVExFMUJRVTBzVlVGQlZTeERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMjlDUVVNNVF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRlZCUVZVc1EwRkJRenR2UWtGRGVrSXNiMFJCUVZrc1EwRkRWaXhKUVVGSkxFVkJRMG9zU1VGQlNTeERRVUZETEV0QlFVc3NSVUZEVml4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExESkNRVUV5UWl4RlFVRkZMRU5CUTNwRE8zbENRVU5GTEVsQlFVa3NRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRk8zZENRVU5rTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzYVVOQlEyaENMRXRCUVVzc1MwRkRVaXhSUVVGUkxHdERRVU5JTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlEycERMRk5CUVZNc1JVRkJSU3hMUVVGTExFdEJSV3hDTEdWQlFXVXNSVUZCUlN4SlFVRkpMRWxCUTNKQ0xFTkJRVU03YjBKQlEwd3NRMEZCUXl4RFFVRkRPM2xDUVVORUxFdEJRVXNzUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZPM2RDUVVObUxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlN4VFFVRlRMRVZCUVVVc1MwRkJTeXhGUVVGRkxGbEJRVmtzUlVGQlJTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1EwRkJRenR2UWtGRGJrVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRMUFzUTBGQlF5eEZRVU5HTEVOQlFVTTdZVUZEU0R0WlFVVkVMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNSVUZCUlR0blFrRkRla0lzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETzJGQlEzQkRPMWxCUTBRc1NVRkJTU3hYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETzFsQlEzWkNMRWxCUVVrN1owSkJRMFlzVjBGQlZ5eEhRVUZITEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXp0blFrRkRja1FzU1VGQlNTeFhRVUZYTEdGQlFWZ3NWMEZCVnl4MVFrRkJXQ3hYUVVGWExFTkJRVVVzV1VGQldTeEZRVUZGTzI5Q1FVTTNRaXhKUVVGSkxFTkJRVU1zZFVKQlFYVkNMRWRCUVVjc2JVVkJRVzFDTEVOQlEyaEVMRmRCUVZjc1EwRkJReXhaUVVGWkxFVkJRM2hDTEdGQlFXRXNRMEZEUlN4RFFVRkRPMmxDUVVOdVFqdGhRVU5HTzFsQlFVTXNUMEZCVHl4TFFVRlZMRVZCUVVVN1owSkJRMjVDTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03WjBKQlEzSkNMRmRCUVZjc1IwRkJSenR2UWtGRFdpeFJRVUZSTEVWQlFVVTdkMEpCUTFJc1dVRkJXU3hGUVVOV0xFdEJRVXNzUTBGQlF5eFBRVUZQT3pSQ1FVTmlMQ3RFUVVFclJEdHhRa0ZEYkVVN2FVSkJRMFlzUTBGQlF6dGhRVU5JTzFsQlJVUXNUVUZCVFN4TFFVRkxMRWRCUVVjc2RVUkJRVThzUTBGQlF5eFhRVUZYTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8xbEJSUzlETEV0QlFVc3NRMEZCUXl4UlFVRlJMRzFEUVVOVUxFdEJRVXNzUTBGQlF5eFJRVUZSTEV0QlEycENMRmRCUVZjc1JVRkRWQ3hMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEZkQlFWY3NTMEZCU3l4UFFVRlBPMjlDUVVOd1F5eERRVUZETEVOQlFVTXNWMEZCVnp0dlFrRkRZaXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRVZCUTJoRExGTkJRVk1zUlVGQlJTeExRVUZMTEVkQlEycENMRU5CUVVNN1dVRkRSaXhKUVVGSkxGZEJRVmNzWVVGQldDeFhRVUZYTEhWQ1FVRllMRmRCUVZjc1EwRkJSU3hsUVVGbExFVkJRVVU3WjBKQlEyaERMRXRCUVVzc1EwRkJReXhSUVVGUkxHMURRVU5VTEV0QlFVc3NRMEZCUXl4UlFVRlJMRWRCUTJRc09FUkJRWEZDTEVOQlEzUkNMRXRCUVVzc1EwRkJReXhSUVVGUkxHdERRVVZVTEV0QlFVc3NRMEZCUXl4UlFVRlJMRXRCUTJwQ0xFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1JVRkRka0lzVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hGUVVONlFpeFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFVkJReTlDTEZWQlFWVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGVkJRVlVzUzBGRmJrTXNTVUZCU1N4RFFVTk1MRU5CUTBZc1EwRkJRenRoUVVOSU8xbEJSVVFzU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMWxCUTNCQ0xFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc2FVTkJRMmhDTEV0QlFVc3NTMEZEVWl4bFFVRmxMRVZCUVVVc1NVRkJTU3hKUVVOeVFpeERRVUZETzFsQlJVZ3NUVUZCVFN4VlFVRlZPMWxCUTJRc1ZVRkJWVHRaUVVOV0xFbEJRVWtzWlVGQlpTeERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkRjRVFzYVVWQlFYZENMRU5CUTNwQ08yZENRVU5FTEd0RFFVRnJRenRuUWtGRGJFTXNTVUZCU1N4bFFVRmxMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUXpkRExHdEZRVUY1UWl4RFFVTXhRaXhEUVVGRE8xbEJSVW9zU1VGQlNTeFZRVUZWTEVWQlFVVTdaMEpCUTJRc1RVRkJUU3hKUVVGSkxFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03WVVGRE4wTTdVVUZEU0N4RFFVRkRMRVZCUVVNN1VVRjFSazBzWVVGQlVTeEhRVUZITERKRVFVRnJRaXhEUVVGRExFZEJRVWNzUlVGQlJUdFpRVU42UXl4SlFVRkpMRU5CUVVNc1MwRkJTenRwUWtGRFVDd3lRa0ZCTWtJc1JVRkJSVHRwUWtGRE4wSXNUMEZCVHl4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGQlF5eHRSa0ZCZVVJc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlF6VkVMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEY0VJc1EwRkJReXhEUVVGRExFTkJRVU03VVVGMVUwc3NZVUZCVVN4SFFVRkhMR2xFUVVGUkxFTkJRVU1zUjBGQlJ5eEZRVUZGTzFsQlF5OUNMRTFCUVUwc1JVRkJSU3hUUVVGVExFVkJRVVVzVlVGQlZTeEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEVOQlFVTTdXVUZETVVRc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZPMmRDUVVOMFFpeEpRVUZKTEV0QlFVc3NRMEZCUXl4VlFVRlZMRXRCUVVzc1ZVRkJWU3hKUVVGSkxFdEJRVXNzUTBGQlF5eFRRVUZUTEV0QlFVc3NVMEZCVXl4RlFVRkZPMjlDUVVOd1JTeFBRVUZQTEVsQlFVa3NRMEZCUXp0cFFrRkRZanRuUWtGRFJDeFBRVUZQTEVWQlFVVXNVMEZCVXl4RlFVRkZMRlZCUVZVc1JVRkJSU3hEUVVGRE8xbEJRMjVETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTB3c1EwRkJReXhGUVVGRkxIVkVRVUZqTEVOQlFVTXNRMEZCUXp0UlFVVnVRaXhoUVVGaE8xRkJSVXdzVlVGQlN5eEhRVUZITERKRVFVRnJRaXhEUVVGRExFTkJRVU1zUzBGQmNVSXNSVUZCUlN4RlFVRkZPenRaUVVNelJDeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExGVkJRVWtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhQUVVGUExEQkRRVUZGTEZGQlFWRXNRMEZEZEVVc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGRGRrSXNRMEZCUXp0WlFVTkdMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNTVUZCU1N3d1JFRkJhVUlzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVN1owSkJRekZFTEU5QlFVODdZVUZEVWp0WlFVTkVMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFpRVU5rTEV0QlFVc3NRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenRSUVVONlFpeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVkxMRmRCUVUwc1IwRkJSeXd5UkVGQmEwSXNRMEZCUXl4RFFVRkRMRXRCUVhGQ0xFVkJRVVVzUlVGQlJUczdXVUZETlVRc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4VlFVRkpMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNUMEZCVHl3d1EwRkJSU3hSUVVGUkxFTkJRM1JGTEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUTNaQ0xFTkJRVU03V1VGRFJpeEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFbEJRVWtzTUVSQlFXbENMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTzJkQ1FVTXhSQ3hQUVVGUE8yRkJRMUk3V1VGRFJDeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1dVRkRaaXhMUVVGTExFTkJRVU1zWTBGQll5eEZRVUZGTEVOQlFVTTdVVUZEZWtJc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRlN5eFhRVUZOTEVkQlFVY3NSMEZCUnl4RlFVRkZPMWxCUTNCQ0xFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0WlFVTm1MRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zWVVGQllTeERRVUZETERCRVFVRnZRaXhEUVVGRExFTkJRVU03VVVGRGVrUXNRMEZCUXl4RFFVRkRPMUZCUlUwc1dVRkJUeXhIUVVGSExFZEJRVWNzUlVGQlJUdFpRVU55UWl3MFJFRkJaU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RlFVRkZMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRjRVVzUTBGQlF5eERRVUZETzFGQlRVMHNaVUZCVlN4SFFVRkhMRU5CUVVNc1MwRkJhVUlzUlVGQlJTeEZRVUZGTzFsQlEzcERMR2REUVVGblF6dFpRVU5vUXl4NVJVRkJlVVU3V1VGRGVrVXNTVUZCU1N4RFFVRkRMRFpEUVVGVExFVkJRVVU3WjBKQlEyUXNTMEZCU3l4RFFVRkRMR05CUVdNc1JVRkJSU3hEUVVGRE8yRkJRM2hDTzFsQlJVUXNTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSVHRuUWtGRGFFSXNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenRuUWtGRGJrSXNXVUZCV1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTTdaMEpCUXk5Q0xHZENRVUZuUWl4SFFVRkhMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRMnhETEVkQlFVY3NRMEZCUXl4aFFVRmhMRVZCUTJwQ0xEQkVRVUZwUWl4RFFVTnNRaXhEUVVGRE8yZENRVU5HTEU5QlFVODdZVUZEVWp0WlFVTkVMREpFUVVFeVJEdFpRVU16UkN4clJrRkJhMFk3V1VGRGJFWXNTVUZCU1N4WFFVRlhMRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEV0QlFVc3NRMEZCUXl4RlFVRkZPMmRDUVVNM1F5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF6dG5Ra0ZET1VJc1lVRkJZVHRuUWtGRFlpeEpRVUZKTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU03YjBKQlF6TkNMRTlCUVU4c1JVRkJSU3hMUVVGTExFTkJRVU1zVDBGQlR6dHZRa0ZEZEVJc1QwRkJUeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFBRVUZQTzJsQ1FVTjJRaXhEUVVGRExFTkJRVU03WjBKQlEwZ3NWMEZCVnl4SFFVRkhMRXRCUVVzc1EwRkJRenRuUWtGRGNFSXNXVUZCV1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTTdZVUZEYUVNN1dVRkRSQ3hKUVVGSkxEWkRRVUZUTEVWQlFVVTdaMEpCUTJJc1MwRkJTeXhEUVVGRExHTkJRV01zUlVGQlJTeERRVUZETzJGQlEzaENPMWxCUlVRc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRVZCUVVVN1owSkJRemxDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN2IwSkJRMW9zYTBKQlFXdENMRVZCUVVVc1JVRkJSVHRwUWtGRGRrSXNRMEZCUXl4RFFVRkRPMkZCUTBvN1VVRkRTQ3hEUVVGRExFTkJRVU03VVVGRlRTeGhRVUZSTEVkQlFVY3NRMEZCUXl4TFFVRnBRaXhGUVVGRkxFVkJRVVU3V1VGRGRrTXNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeEZRVUZGTEVOQlFVTTdXVUZETjBJc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRVZCUVVVN1owSkJRelZDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN2IwSkJRMW9zTUVKQlFUQkNMRVZCUVVVc1JVRkJSVHR2UWtGRE9VSXNhMEpCUVd0Q0xFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl3d1FrRkJNRUk3YVVKQlF6RkVMRU5CUVVNc1EwRkJRenRoUVVOS08ybENRVUZOTzJkQ1FVTk1MRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdZVUZETVVJN1VVRkRTQ3hEUVVGRExFTkJRVU03VVVGRlRTeDFRa0ZCYTBJc1IwRkJSeXd5UkVGQmEwSXNRMEZETjBNc1EwRkJUeXhMUVVFMFFpeEZRVUZGTEVWQlFVVTdPMWxCUTNKRExFOUJRVTg3V1VGRFVDeE5RVUZOTEUxQlFVMHNSMEZCUnl4UlFVRlJMRU5CUVVNc1lVRkJZU3hEUVVGRE8xbEJRM1JETEUxQlFVMHNhMEpCUVd0Q0xFZEJRM1JDTEZWQlFVa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eFBRVUZQTERCRFFVRkZMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFpRVU40UkN4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVTdaMEpCUTNaQ0xFOUJRVTg3WVVGRFVqdFpRVVZFTEUxQlFVMHNhMEpCUVd0Q0xFZEJRVWNzVVVGQlVTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFOUJRVThzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0WlFVTjJSVHRaUVVORkxITkZRVUZ6UlR0WlFVTjBSU3h4UTBGQmNVTTdXVUZEY2tNc1MwRkJTenRuUWtGRFRDeERRVUZETEVOQlFVTXNRMEZCUXl4clFrRkJhMElzV1VGQldTeHBRa0ZCYVVJc1EwRkJRenR2UWtGRGFrUXNNRVJCUVdsQ0xFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSVUZETlVJN1owSkJRMEVzVDBGQlR6dGhRVU5TTzFsQlJVUXNlVVZCUVhsRk8xbEJRM3BGTEdkRlFVRm5SVHRaUVVOb1JTeHBRMEZCYVVNN1dVRkRha01zU1VGQlNTeEpRVUZKTEVkQlFVY3NWMEZCU3l4aFFVRk1MRXRCUVVzc2RVSkJRVXdzUzBGQlN5eERRVUZGTEdGQlFXRXNNRU5CUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlJURkRMRTFCUVUwc1NVRkJTU3hIUVVGSExFMUJRVTBzTWtSQlFXTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRaUVVWNlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4SlFVRkpMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVU3WjBKQlEzUkNMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1owSkJRMmhETEVsQlFVa3NUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRk8yOUNRVU14UkN4elJVRkJjMFU3YjBKQlEzUkZMR2xDUVVGcFFqdHZRa0ZEYWtJc1NVRkJTU3hIUVVGSExEUkVRVUZsTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN2FVSkJRMmhETzJGQlEwWTdXVUZGUkN4dFJVRkJiVVU3V1VGRGJrVXNTVUZCU1N4cFJVRkJiMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVU3WjBKQlEyNUVMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4TlFVRk5MRVZCUVVVc1IwRkJSeXh2UlVGQk1rSXNRMEZETVVRc1JVRkJSU3hQUVVGUExFVkJRVVVzVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZCUlN4UFFVRlBMRVZCUVVVc1JVRkRkRU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZEV0N4RFFVRkRPMmRDUVVWR0xFMUJRVTBzV1VGQldTeEhRVUZITEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJReXhEUVVGRE8yZENRVU5xUlN4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNXVUZCV1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8yZENRVU0xUXl4SlFVRkpMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1owSkJRemRETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4RlFVRkZMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRmJrVXNUMEZCVHp0aFFVTlNPMWxCUlVRc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNSVUZCUlR0blFrRkRkRUlzU1VGQlNUdHZRa0ZEUml4SlFVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUzBGQlN5eExRVUZMTEVWQlFVVTdkMEpCUTNKRUxFOUJRVTg3Y1VKQlExSTdhVUpCUTBZN1owSkJRVU1zVDBGQlR5eExRVUZWTEVWQlFVVTdiMEpCUTI1Q0xFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN2FVSkJRM1JDTzJGQlEwWTdXVUZEUkN4SlFVRkpMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVU3WjBKQlEzSkNMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRExFTkJRVU03WVVGRGNFUTdhVUpCUVUwc1NVRkJTU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTzJkQ1FVTXpRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzI5Q1FVTmFMRmRCUVZjc1JVRkJSVHQzUWtGRFdDeEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRmRCUVZjN2QwSkJRM1JDTEV0QlFVc3NSVUZCUlN4SlFVRkpPM0ZDUVVOYU8ybENRVU5HTEVOQlFVTXNRMEZCUXp0aFFVTktPMmxDUVVGTkxFbEJRVWtzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlR0blFrRkRlRUlzU1VGQlNTeERRVUZETERaQ1FVRTJRaXhEUVVGRE8yOUNRVU5xUXl4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkU3YjBKQlEzWkNMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eEpRVUZKTEVsQlFVazdiMEpCUTNwQ0xGRkJRVkVzUlVGQlJTeFJRVUZSTzJsQ1FVTnVRaXhEUVVGRExFTkJRVU03WVVGRFNqdHBRa0ZCVFN4SlFVRkpMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVU3WjBKQlEzQkNMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03WVVGRGJFTTdXVUZEUkN4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzFsQlEyeERMRXRCUVVzc1lVRkJUQ3hMUVVGTExIVkNRVUZNTEV0QlFVc3NRMEZCUlN4alFVRmpMRVZCUVVVc1EwRkJRenRSUVVNeFFpeERRVUZETEVWQlEwWXNRMEZCUXp0UlFVVk5MR3REUVVFMlFpeEhRVUZITEVOQlFVTXNTVUZKZUVNc1JVRkJSU3hGUVVGRk8xbEJRMGdzVFVGQlRTeFJRVUZSTEVkQlFVY3NLMFJCUVdVc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMWxCUTNSRUxFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5d3dSRUZCWlN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xbEJSVE5FTEUxQlFVMHNaVUZCWlN4SFFVRkhMR2xFUVVGUkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOcVJDeE5RVUZOTEdWQlFXVXNSMEZCUnl4cFJFRkJVU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkZha1FzVFVGQlRTeFBRVUZQTEVkQlExZ3NUMEZCVHl4SlFVRkpMRU5CUVVNc1VVRkJVU3hMUVVGTExGRkJRVkU3WjBKQlF5OUNMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVODdaMEpCUTNaQ0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4TFFVRkxMRkZCUVZFN2IwSkJRelZDTEVOQlFVTXNRMEZCUXl4UFFVRlBPMjlDUVVOVUxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNN1dVRkRia1FzVFVGQlRTeFBRVUZQTEVkQlExZ3NUMEZCVHl4SlFVRkpMRU5CUVVNc1VVRkJVU3hMUVVGTExGRkJRVkU3WjBKQlF5OUNMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVODdaMEpCUTNaQ0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4TFFVRkxMRkZCUVZFN2IwSkJRelZDTEVOQlFVTXNRMEZCUXl4UFFVRlBPMjlDUVVOVUxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNN1dVRkZia1FzVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJSeXh2UlVGQk1rSXNRMEZETVVNc1JVRkJSU3hQUVVGUExFVkJRVVVzVDBGQlR5eEZRVUZGTEVWQlEzQkNMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRMWdzUTBGQlF6dFpRVVZHTEUxQlFVMHNSVUZCUlN4SFFVRkhMRU5CUVVNc1IwRkJSeXhsUVVGbExFTkJRVU03V1VGREwwSXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhIUVVGSExHVkJRV1VzUTBGQlF6dFpRVU12UWl4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETzFsQlJUZENMRTFCUVUwc1EwRkJReXhMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEVkQlFVY3NiMFJCUVZrc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03V1VGRmFrVXNUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eEpRVUZKTEVkQlFVY3NSVUZCUlN4RFFVRkRPMWxCUTNSRExFMUJRVTBzVjBGQlZ5eEhRVUZITEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJUdG5Ra0ZETTBNc1RVRkJUU3hWUVVGVkxFZEJRVWNzTWtSQlFXZENMRU5CUTJwRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZMEZCWXl4RlFVTjZRaXhWUVVGVkxFVkJRMVlzVDBGQlR5eEZRVU5RTzI5Q1FVTkZMRU5CUVVNc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEV0QlFVc3NSMEZCUnl4SlFVRkpPMjlDUVVNelFpeERRVUZETEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNc1IwRkJSeXhMUVVGTExFZEJRVWNzU1VGQlNUdHBRa0ZETlVJc1EwRkRSaXhEUVVGRE8yZENRVU5HTEcxQ1FVRnRRaXhEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RlFVRkZMRlZCUVZVc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYmtRc1QwRkJUeXhWUVVGVkxFTkJRVU03V1VGRGNFSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRTQ3h6UmtGQkswSXNRMEZCUXl4WFFVRlhMRVZCUVVVc1VVRkJVU3hGUVVGRkxHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNN1dVRkROVVVzVFVGQlRTeFpRVUZaTEVkQlFVYzdaMEpCUTI1Q0xFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl3eVFrRkJNa0lzUlVGQlJUdG5Ra0ZETTBNc1IwRkJSeXhYUVVGWE8yRkJRMllzUTBGQlF6dFpRVU5HTERoRlFVRXlRaXhEUVVGRExGbEJRVmtzUlVGQlJTeFJRVUZSTEVWQlFVVXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dFpRVVY2UlN4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVU3WjBKQlEyUXNTVUZCU1N4RFFVRkRMRXRCUVVzc2JVTkJRVkVzU1VGQlNTeERRVUZETEV0QlFVc3NSMEZCU3l4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRkxFTkJRVU03WVVGREwwTTdXVUZGUkN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xbEJRelZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU03V1VGREwwSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkRXQ3g1UlVGQkswSXNhVU5CUlhoQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEV0QlEySXNZVUZCWVN4RlFVRkZMRXRCUVVzc1JVRkRjRUlzYTBKQlFXdENMRVZCUVVVc1YwRkJWeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4UFFVRlBMRVZCUVVVc1JVRkJSVHR2UWtGRGRFUXNTVUZCU1N4RFFVRkRMSGRGUVVGclFpeERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZPM2RDUVVOb1F5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF6dHhRa0ZEZUVJN2IwSkJRMFFzVDBGQlR5eEhRVUZITEVOQlFVTTdaMEpCUTJJc1EwRkJReXhGUVVGRkxFVkJRVk1zUTBGQlF5eEZRVU5pTEdkQ1FVRm5RaXhGUVVGRkxFVkJRVVVzUzBGRmRFSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGRGVrSXNSVUZEUkN4SFFVRkhMRVZCUVVVN1owSkJRMGdzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZPMjlDUVVOa0xFbEJRVWtzUTBGQlF5eDNRa0ZCZDBJc1JVRkJSU3hEUVVGRE8ybENRVU5xUXp0WlFVTklMRU5CUVVNc1EwRkRSaXhEUVVGRE8xbEJRMFlzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRSUVVOd1F5eERRVUZETEVOQlFVTTdVVUZyUTBZc1owSkJRV2RDTzFGQlJXaENMR2RDUVVGWExFZEJRVWNzUTBGQlF5eEhRVUZSTEVWQlFVVXNSVUZCUlR0WlFVTjZRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNKQ0xFTkJRVU1zUTBGQlF6dFJRVVZHTEd0Q1FVRmhMRWRCUVVjc1EwRkJReXhMUVVGeFJDeEZRVUZGTEVWQlFVVTdXVUZEZUVVc1NVRkJTU3haUVVGWkxFVkJRVVU3WjBKQlEyaENMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNSVUZCUlN4RFFVRkRPMkZCUXpsQ08xbEJSVVFzVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlF6TkRMRU5CUVVNc1EwRkJRenRSUVVWR0xHVkJRVlVzUjBGQlJ5eEhRVUZITEVWQlFVVTdXVUZEYUVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RlFVRkZPMmRDUVVNeFFpeFBRVUZQTzI5Q1FVTk1MR0ZCUVdFc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eGhRVUZoTzI5Q1FVTjJReXhYUVVGWExFVkJRVVVzVTBGQlV5eERRVUZETEdGQlFXRTdkMEpCUTJ4RExFTkJRVU1zUTBGQlF5eFhRVUZYTzNkQ1FVTmlMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zVjBGQlZ6dHBRa0ZETVVJc1EwRkJRenRaUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEwd3NRMEZCUXl4RFFVRkRPMUZCUlVZc2EwSkJRV0VzUjBGQlJ5eEhRVUZITEVWQlFVVTdXVUZEYmtJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RlFVRkZPMmRDUVVNeFFpeFBRVUZQTzI5Q1FVTk1MRTlCUVU4c1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTzJsQ1FVTTFRaXhEUVVGRE8xbEJRMG9zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEVEN4RFFVRkRMRU5CUVVNN1VVRkZSaXhyUWtGQllTeEhRVUZITEVkQlFVY3NSVUZCUlR0WlFVTnVRaXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEdGQlFXRXNRMEZCUXl4NVJFRkJiVUlzUTBGQlF5eERRVUZETzFGQlEzaEVMRU5CUVVNc1EwRkJRenRSUVVWR0xHZENRVUZYTEVkQlFVY3NSMEZCUnl4RlFVRkZPMWxCUTJwQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1JVRkJSVHRuUWtGRGVrSXNjMFJCUVZVc1EwRkJReXhSUVVGUkxFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdZVUZETDBJN1dVRkRSQ3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEdGQlFXRXNRMEZCUXl4MVJFRkJhVUlzUTBGQlF5eERRVUZETzFGQlEzUkVMRU5CUVVNc1EwRkJRenRSUVVWR0xHOUNRVUZsTEVkQlFVY3NRMEZEYUVJc1UwRkZiVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1JVRkRNMFFzUlVGQlJUdFpRVU5HTEVsQlFVa3NRMEZCUXl4UlFVRlJMRzFDUVVOU0xEaEVRVUZ4UWl4RFFVTjBRaXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUTNwRExFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlExWXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkRXaXhGUVVORUxFTkJRVU03VVVGRFRDeERRVUZETEVOQlFVTTdVVUZGUml4bFFVRlZMRWRCUVVjc1IwRkJSeXhGUVVGRk8xbEJRMmhDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSU3haUVVGWkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTjRReXhEUVVGRExFTkJRVU03VVVGRlJpeHZRa0ZCWlN4SFFVRkhMRU5CUVVNc1dVRkJiMElzUlVGQlJTeEZRVUZGTzFsQlEzcERMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTJ4RExFTkJRVU1zUTBGQlF6dFJRVVZHTEhsQ1FVRnZRaXhIUVVGSExFZEJRVk1zUlVGQlJUdFpRVU5vUXl4SlFVRkpPMmRDUVVOR0xFMUJRVTBzYlVKQlFXMUNMRWRCUVVjc1RVRkJUU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFTkJRVU03WjBKQlJXeEZMRTFCUVUwc1NVRkJTU3hIUVVGSExFMUJRVTBzYlVKQlFXMUNMRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzJkQ1FVTTFSQ3hKUVVGSkxFbEJRVWtzUlVGQlJUdHZRa0ZEVWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0dlFrRkRMMElzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzI5Q1FVTTFRaXhOUVVGTkxHMUNRVUZ0UWl4RFFVRkRMRTFCUVUwc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dHZRa0ZEYUVRc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RlFVRkZMR2xFUVVGUkxFVkJRVVVzVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRwUWtGRGRrVTdZVUZEUmp0WlFVRkRMRTlCUVU4c1MwRkJWU3hGUVVGRk8yZENRVU51UWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFVkJRVVVzV1VGQldTeEZRVUZGTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJReXhEUVVGRE8yRkJRMmhFTzFGQlEwZ3NRMEZCUXl4RlFVRkRPMUZCUlVZc05FUkJRVFJFTzFGQlEzSkVMR0ZCUVZFc1IwRkJkME1zTWtSQlFXdENMRU5CUTNaRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVTdXVUZEVWl4TlFVRk5MRkZCUVZFc1IwRkJSeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRkZCUVZFc1JVRkJSU3hGUVVGRk8yZENRVU01UXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEVWQlFVVXNVVUZCVVN4RFFVRkRMRU5CUVVNN1owSkJReTlDTEU5QlFVOHNSMEZCUnl4RFFVRkRPMWxCUTJJc1EwRkJReXhGUVVGRkxFbEJRVWtzUjBGQlJ5eEZRVUV3UWl4RFFVRkRMRU5CUVVNN1dVRkZkRU1zU1VGQlNTeERRVUZETEV0QlFVc3NiVU5CUVZFc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlN5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRkxFTkJRVU03V1VGRmFFVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSVHRuUWtGRE0wTXNTVUZEUlN3clJVRkJlVUlzUTBGQlF5eFBRVUZQTEVOQlFVTTdiMEpCUTJ4RExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVNMVFqdHZRa0ZEUVN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN2IwSkJRM1pETEcxR1FVRjVRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJsQ1FVTndRenRaUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEwZ3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhqUVVGakxFVkJRVVVzUTBGQlF6dFpRVVUxUWl4SlFVRkpMRU5CUVVNc2QwSkJRWGRDTEVWQlFVVXNRMEZCUXp0UlFVTnNReXhEUVVGRExFTkJRMFlzUTBGQlF6dFJRVVZMTEdkQ1FVRlhMRWRCUVVjc01rUkJRV3RDTEVOQlEzSkRMRU5CUVRKQ0xGTkJUVEZDTEVWQlFVVXNSVUZCUlR0WlFVTklMRWxCUVVrc1UwRkJVeXhEUVVGRExHVkJRV1VzUlVGQlJUdG5Ra0ZETjBJc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eGxRVUZsTEVWQlFVVXNRMEZCUXp0aFFVTm9RenRaUVVWRUxFbEJRVWtzVTBGQlV5eERRVUZETEZGQlFWRXNSVUZCUlR0blFrRkRkRUlzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03WVVGRGJrTTdXVUZGUkN4SlFVRkpMRk5CUVZNc1EwRkJReXhSUVVGUkxFVkJRVVU3WjBKQlEzUkNMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzJGQlEyNUVPMWxCUlVRc1NVRkJTU3hUUVVGVExFTkJRVU1zWVVGQllTeEZRVUZGTzJkQ1FVTXpRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNZVUZCWVN4RlFVRkZMRk5CUVZNc1EwRkJReXhoUVVGaExFVkJRVVVzUTBGQlF5eERRVUZETzJGQlF6TkVPMWxCUlVRc1NVRkJTU3hUUVVGVExFTkJRVU1zV1VGQldTeEZRVUZGTzJkQ1FVTXhRaXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEZkQlFWY3NRMEZEZEVJc2JVVkJRVzFDTEVOQlFVTXNVMEZCVXl4RFFVRkRMRmxCUVZrc1JVRkJSU3hoUVVGaExFTkJRVU1zUTBGRE0wUXNRMEZCUXp0aFFVTklPMUZCUTBnc1EwRkJReXhEUVVOR0xFTkJRVU03VVVGRlRTeHRRa0ZCWXl4SFFVRkhMRWRCUVVjc1JVRkJSVHRaUVVNMVFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM0JDTEVOQlFVTXNRMEZCUXp0UlFVVk5MR2REUVVFeVFpeEhRVUZITERKRVFVRnJRaXhEUVVOMFJDeERRVUZETEV0QlFXbENMRVZCUVVVc1JVRkJSVHRaUVVOd1FpeFBRVUZQTEVkQlFVY3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJRenRaUVVONFFpeFBRVUZQTEVkQlFVY3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJRenRSUVVNeFFpeERRVUZETEVOQlEwWXNRMEZCUXp0UlFVVkdMR2xDUVVGcFFqdFJRVVZVTEdOQlFWTXNSMEZCUnl3eVJFRkJhMElzUTBGRGNFTXNRMEZCUXl4TFFVRXdReXhGUVVGRkxFVkJRVVU3V1VGRE4wTXNkVVJCUVhWRU8xbEJRM1pFTEVsQlEwVXNUMEZCVHl4SlFVRkpMRTFCUVUwN1owSkJRMnBDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFbEJRVWtzVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03YjBKQlF6ZERMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzU1VGQlNTeFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlEyaEVPMmRDUVVOQkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRVZCUVVVN2IwSkJRM1pDTEVkQlFVY3NRMEZCUXl4RlFVRlBMRVZCUVVVc1NVRkJTVHQzUWtGRFppeE5RVUZOTEV0QlFVc3NSMEZCUnl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03ZDBKQlEzWkNMRWxCUVVrc1QwRkJUeXhMUVVGTExFdEJRVXNzVlVGQlZTeEZRVUZGT3pSQ1FVTXZRaXh0UTBGQmJVTTdORUpCUTI1RExFOUJRVThzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenQ1UWtGRGRrSTdkMEpCUTBRc1QwRkJUeXhKUVVGSkxFdEJRVXNzUzBGQlN6czBRa0ZEYmtJc1EwRkJReXhEUVVGRExDdEVRVUVyUkR0blEwRkRMMFFzVlVGQlZUdG5RMEZEVml4TFFVRkxMRU5CUVVNc1VVRkJVVHR2UTBGRFpDeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhYUVVGWExFVkJRVVU3YjBOQlEzUkNMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEZkQlFWY3NSVUZCUlRzMFFrRkRlRUlzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0dlFrRkRXaXhEUVVGRE8ybENRVU5HTEVOQlFVTXNRMEZCUXp0aFFVTktPMWxCUlVRc1NVRkRSU3hEUVVGRExEQkVRVUZwUWl4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeExRVUZMTEVOQlFVTXNSMEZCUnl4TFFVRkxMQ3REUVVGWExFTkJRVU03WjBKQlF6bEVMRFpEUVVFMlF6dG5Ra0ZETjBNc1EwRkJReXhyUkVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3h2UkVGQlZ5eERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhGUVVOd1JEdG5Ra0ZEUVN4UFFVRlBPMkZCUTFJN1dVRkZSQ3hKUVVGSkxFdEJRVXNzUTBGQlF5eEhRVUZITEV0QlFVc3NjMFJCUVd0Q0xFVkJRVVU3WjBKQlEzQkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU03YjBKQlExb3NZMEZCWXl4RlFVRkZMRWxCUVVrN2FVSkJRM0pDTEVOQlFVTXNRMEZCUXp0aFFVTktPMWxCUlVRc1NVRkJTU3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEdGQlFXRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSVHRuUWtGRE0wTXNUMEZCVHp0aFFVTlNPMWxCUlVRc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdWQlFXVXNSVUZCUlR0blFrRkRPVUlzVDBGQlR6dGhRVU5TTzFsQlJVUXNTVUZCU1N4TFFVRkxMRU5CUVVNc2IwUkJRV2RDTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHZENRVUZuUWl4RlFVRkZPMmRDUVVNeFJDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkJRenRoUVVNMVF6dFpRVVZFTEVsQlFVa3NTMEZCU3l4RFFVRkRMRWxCUVVrc1MwRkJTeXc0UTBGQlZTeEZRVUZGTzJkQ1FVTTNRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNZVUZCWVN4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGhRVUZoTEVWQlFVVXNRMEZCUXl4RFFVRkRPMkZCUXpkRU8xbEJSVVFzU1VGQlNTeHJSRUZCVlN4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJUdG5Ra0ZEZWtJc1RVRkJUU3hKUVVGSkxFZEJRMUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFN2IwSkJRMnhDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFN2QwSkJRMklzUTBGQlF5eERRVUZETEdsRlFVRjNRanQzUWtGRE1VSXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdiMEpCUXpOQ0xFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRTdkMEpCUTJJc1EwRkJReXhEUVVGRExIVkZRVUU0UWp0M1FrRkRhRU1zUTBGQlF5eERRVUZETEdsRlFVRjNRaXhEUVVGRExFTkJRVU03WjBKQlJXaERMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NORVJCUVcxQ0xFTkJRekZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFVkJRM2hDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUTFZc1NVRkJTU3hEUVVOTUxFTkJRVU03WjBKQlJVWXNTVUZCU1N4UFFVRlBMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU5vUWl4SlFVRkpMRTlCUVU4c1IwRkJSeXhEUVVGRExFTkJRVU03WjBKQlJXaENMRWxCUVVrc1MwRkJTeXhEUVVGRExFZEJRVWNzUzBGQlN5eHRSRUZCWlN4RlFVRkZPMjlDUVVOcVF5eFBRVUZQTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNN2FVSkJRMnBDTzNGQ1FVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExFZEJRVWNzUzBGQlN5eHZSRUZCWjBJc1JVRkJSVHR2UWtGRGVrTXNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJRenRwUWtGRGFFSTdjVUpCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zUjBGQlJ5eExRVUZMTEdsRVFVRmhMRVZCUVVVN2IwSkJRM1JETEU5QlFVOHNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJRenRwUWtGRGFrSTdjVUpCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zUjBGQlJ5eExRVUZMTEcxRVFVRmxMRVZCUVVVN2IwSkJRM2hETEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNN2FVSkJRMmhDTzJkQ1FVVkVMR2RDUVVGblFpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRk8yOUNRVU51UXl4elJVRkJZU3hEUVVGRExFOUJRVThzUlVGQlJUdDNRa0ZEY2tJc1EwRkJReXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NUMEZCVHp0M1FrRkRkRUlzUTBGQlF5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1QwRkJUenR4UWtGRGRrSXNRMEZCUXl4RFFVRkRPMjlDUVVWSUxITkZRVUZ0UWl4RFFVRkRMRTlCUVU4c1JVRkJSVHQzUWtGRE0wSXNjVUpCUVhGQ0xFVkJRVVVzWjBKQlFXZENPM0ZDUVVONFF5eERRVUZETEVOQlFVTTdaMEpCUTB3c1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlJVZ3NTVUZCU1N4RFFVRkRMSGxDUVVGNVFpeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU03WjBKQlJXcEVMRXRCUVVzc1EwRkJReXhqUVVGakxFVkJRVVVzUTBGQlF6dGhRVU40UWp0cFFrRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eEhRVUZITEV0QlFVc3NPRU5CUVZVc1JVRkJSVHRuUWtGRGJrTXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5dzBSRUZCYlVJc1EwRkRNVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1JVRkRlRUlzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZEV0N4RFFVRkRPMmRDUVVWR0xFbEJRMFVzWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU03YjBKQlF6ZENMSEZGUVVGbExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGRGNFTTdiMEpCUTBFc1NVRkRSU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNiMEpCUVc5Q08zZENRVU5vUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRk5CUVZNc1MwRkJTeXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRM0JGTzNkQ1FVTkJMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zWlVGQlpTeEZRVUZGTEVOQlFVTTdkMEpCUXk5Q0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdORUpCUTFvc2IwSkJRVzlDTEVWQlFVVXNTVUZCU1N3NFJVRkJiVUlzUTBGRE0wTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVWQlEyNUNMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRMWc3ZVVKQlEwWXNRMEZCUXl4RFFVRkRPM0ZDUVVOS08ybENRVU5HTzNGQ1FVRk5MRWxCUTB3c1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNN2IwSkJRemRDTEVOQlFVTXNjVVZCUVdVc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVOeVF6dHZRa0ZEUVN4TlFVRk5MR1ZCUVdVc1IwRkJSeXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRk5VTXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETzNkQ1FVTndRaXhOUVVGTkxFVkJRVVVzWlVGQlpTeERRVUZETEVOQlFVTXNSMEZCUnl4bFFVRmxMRU5CUVVNc1MwRkJTeXhIUVVGSExFTkJRVU03ZDBKQlEzSkVMRTFCUVUwc1JVRkJSU3hsUVVGbExFTkJRVU1zUTBGQlF5eEhRVUZITEdWQlFXVXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJRenQzUWtGRGRFUXNWVUZCVlN4RlFVRkZMRWxCUVVrN2NVSkJRMnBDTEVOQlFVTXNRMEZCUXp0dlFrRkRTQ3hMUVVGTExFTkJRVU1zWTBGQll5eEZRVUZGTEVOQlFVTTdiMEpCUTNaQ0xFOUJRVTg3YVVKQlExSTdZVUZEUmp0cFFrRkJUU3hKUVVOTUxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVODdaMEpCUTJRc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRUdG5Ra0ZEWWl4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUE8yZENRVU5rTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaU3hMUVVGTExFbEJRVWtzUlVGRGJrTTdaMEpCUTBFc1RVRkJUU3hMUVVGTExFZEJRVWNzZDBSQlFXTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03WjBKQlEzaERMRWxCUVVrc1MwRkJTeXhGUVVGRk8yOUNRVU5VTEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03YVVKQlF6ZENPM0ZDUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEVkQlFVY3NTMEZCU3l3d1EwRkJUU3hGUVVGRk8yOUNRVU12UWl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU03YVVKQlEyNUNPMkZCUTBZN1dVRkRSQ3hKUVVGSkxFdEJRVXNzUTBGQlF5eEhRVUZITEV0QlFVc3NPRU5CUVZVc1NVRkJTU3hQUVVGUExFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRkRMRVZCUVVVN1owSkJRek5FTEdOQlFXTXNSMEZCUnl4SlFVRkpMRU5CUVVNN1owSkJRM1JDTEd0RVFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTdzJSRUZCYjBJc1EwRkJReXhEUVVGRE8yZENRVU0zUXl4TFFVRkxMRU5CUVVNc1kwRkJZeXhGUVVGRkxFTkJRVU03WVVGRGVFSTdXVUZGUkN4SlFVRkpMRXRCUVVzc1EwRkJReXhIUVVGSExFdEJRVXNzTUVOQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc1IwRkJSeXhMUVVGTExEQkRRVUZOTEVWQlFVVTdaMEpCUTJoRUxFMUJRVTBzWjBKQlFXZENMRWRCUVVjc05FUkJRVzFDTEVOQlF6RkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVWQlEzaENMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRMWdzUTBGQlF6dG5Ra0ZEUml4SlFVTkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eExRVUZMTEZkQlFWYzdiMEpCUTNSRExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hGUVVONFFqdHZRa0ZEUVN4UFFVRlBPMmxDUVVOU08yZENRVVZFTEVsQlEwVXNTMEZCU3l4RFFVRkRMRWRCUVVjc1MwRkJTeXd3UTBGQlRUdHZRa0ZEY0VJc1EwRkJReXh6UkVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRE8zZENRVU53UXl4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hEUVVGRExITkVRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGRGJFVTdiMEpCUTBFc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEZOQlFWTXNSVUZCUlN4MVFrRkJkVUlzUlVGQlJTeERRVUZETEVOQlFVTTdhVUpCUTNaRU8yZENRVU5FTEVsQlFVa3NTMEZCU3l4RFFVRkRMRWRCUVVjc1MwRkJTeXd3UTBGQlRTeEZRVUZGTzI5Q1FVTjRRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRzFDUVVGdFFpeEZRVUZGTEVOQlFVTXNRMEZCUXp0cFFrRkRia1E3WVVGRFJqdFJRVU5JTEVOQlFVTXNRMEZEUml4RFFVRkRPMUZCUlUwc1dVRkJUeXhIUVVGSExESkVRVUZyUWl4RFFVRkRMRU5CUVVNc1MwRkJiMElzUlVGQlJTeEZRVUZGTzFsQlF6VkVMRWxCUVVrc1MwRkJTeXhEUVVGRExFZEJRVWNzUzBGQlN5dzRRMEZCVlN4RlFVRkZPMmRDUVVNMVFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaU3hGUVVGRk8yOUNRVU01UWl4clJFRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNlVVJCUVdkQ0xFTkJRVU1zUTBGQlF6dHBRa0ZETVVNN2NVSkJRVTBzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1MwRkJTeXhYUVVGWExFVkJRVVU3YjBKQlEycEVMRzlFUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMmxDUVVNeFFqdHhRa0ZCVFR0dlFrRkRUQ3d3UkVGQmFVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN2IwSkJRM1pFTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN2QwSkJRMW9zYTBKQlFXdENMRVZCUVVVc1JVRkJSVHQzUWtGRGRFSXNaMEpCUVdkQ0xFVkJRVVVzUlVGQlJUdDNRa0ZEY0VJc1kwRkJZeXhGUVVGRkxFbEJRVWs3Y1VKQlEzSkNMRU5CUVVNc1EwRkJRenRwUWtGRFNqdG5Ra0ZEUkN4alFVRmpMRWRCUVVjc1MwRkJTeXhEUVVGRE8yRkJRM2hDTzFsQlEwUXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXh2UkVGQlowSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSVHRuUWtGRE5VUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxHZENRVUZuUWl4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU03WVVGRE0wTTdXVUZEUkN4SlFVRkpMR3RFUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZPMmRDUVVONlFpeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExEUkVRVUZ0UWl4RFFVTXhReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4RlFVTjRRaXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVU5ZTEVOQlFVTTdaMEpCUTBZc2JVVkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJRenR2UWtGRE1VSXNRMEZCUXl4RFFVRkRMQ3RGUVVFMFFpeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8yOUNRVU5vUkN4RFFVRkRMRU5CUVVNc2RVVkJRVzlDTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dG5Ra0ZETTBNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEdsQ1FVRnBRaXhGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdZVUZETVVNN1VVRkRTQ3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVEpDU3l4dFFrRkJZeXhIUVVGSExESkVRVUZyUWl4RFFVRkRMRU5CUVVNc1MwRkJiVUlzUlVGQlJTeEZRVUZGTzFsQlEyeEZMRXRCUVVzc1EwRkJReXhqUVVGakxFVkJRVVVzUTBGQlF6dFpRVU4yUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8yZENRVU5hTEd0Q1FVRnJRaXhGUVVGRkxFVkJRVVU3WVVGRGRrSXNRMEZCUXl4RFFVRkRPMWxCUTBnc1QwRkJUeXhEUVVGRExGbEJRVmtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU03VVVGREwwTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZTeXh2UWtGQlpTeEhRVUZITERKRVFVRnJRaXhEUVVGRExFTkJRVU1zUzBGQmJVSXNSVUZCUlN4RlFVRkZPMWxCUTI1RkxFdEJRVXNzUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0WlFVVjJRaXd5UkVGQk1rUTdXVUZETTBRc2NVVkJRWEZGTzFsQlEzSkZMR3RGUVVGclJUdFpRVU5zUlN4blJVRkJaMFU3V1VGRGFFVXNORUpCUVRSQ08xbEJRelZDTEVsQlFVa3NUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eEZRVUZGTzJkQ1FVTTVRaXhQUVVGUE8yRkJRMUk3V1VGRlJDeE5RVUZOTEZsQlFWa3NSMEZCUnl4UFFVRlBMRU5CUVVNc1dVRkJXU3hEUVVGRE8xbEJRekZETEVsQlFVa3NXVUZCV1N4RlFVRkZPMmRDUVVOb1FpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eHRRa0ZEY0VJc05rUkJRV1VzUTBGRGFFSTdiMEpCUTBVc1UwRkJVeXhGUVVGRkxFOUJRVTg3YjBKQlEyeENMRk5CUVZNc1JVRkJSU3hQUVVGUE8yOUNRVU5zUWl4UlFVRlJMRVZCUVVVc01FUkJRV2xDTEVOQlFVTXNXVUZCV1N4SFFVRkhMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU03YVVKQlEzaEVMRVZCUTBRc1MwRkJTeXhEUVVOT0xFVkJRMFFzUTBGQlF5eERRVUZETzJGQlEwdzdVVUZEU0N4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWTExHbENRVUZaTEVkQlFVY3NNa1JCUVd0Q0xFTkJRVU1zUTBGQlF5eExRVUZ0UWl4RlFVRkZMRVZCUVVVN1dVRkRhRVVzUzBGQlN5eERRVUZETEdOQlFXTXNSVUZCUlN4RFFVRkRPMWxCUTNaQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdaMEpCUTFvc01FSkJRVEJDTEVWQlFVVXNSVUZCUlR0blFrRkRPVUlzYTBKQlFXdENMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5d3dRa0ZCTUVJN1lVRkRNVVFzUTBGQlF5eERRVUZETzFsQlEwZ3NUMEZCVHl4RFFVRkRMRmxCUVZrc1IwRkJSeXhKUVVGSkxFTkJRVU03VVVGRE9VSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRnJURXNzY1VKQlFXZENMRWRCUVVjc1EwRkJReXhGUVVNeFFpeE5RVUZOTEVWQlEwNHNUVUZCVFN4RlFVTk9MRlZCUVZVc1JVRkRWaXh2UWtGQmIwSXNSMEZCUnl4SlFVRkpMRWRCVXpWQ0xFVkJRVVVzUlVGQlJUczdXVUZEU0N4SlFVRkpMRzlDUVVGdlFpeEhRVU4wUWl4dlFrRkJiMEk3WjBKQlEzQkNMRWxCUVVrc1EwRkJReXh4UTBGQmNVTXNRMEZEZUVNc1RVRkJUU3hGUVVOT0xFMUJRVTBzUlVGRFRpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVTldMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRMWdzVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVONFFpeERRVUZETzFsQlJVb3NLME5CUVN0RE8xbEJReTlETEdsRFFVRnBRenRaUVVOcVF5eE5RVUZOTEZOQlFWTXNSMEZEWWl4VlFVRlZMRWxCUVVrc2IwSkJRVzlDTzJkQ1FVTm9ReXhEUVVGRExFTkJRVU1zY1VWQlFUUkNMRU5CUXpGQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMSGRFUVVGaExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZETjBRc1RVRkJUU3hGUVVOT0xFMUJRVTBzUTBGRFVEdG5Ra0ZEU0N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRE8xbEJSVmdzU1VGQlNTeHRRa0ZCYlVJc1IwRkJSeXhKUVVGSkxFTkJRVU1zZDBKQlFYZENMRU5CUVVNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzFsQlJYaEZMSEZFUVVGeFJEdFpRVU55UkN4SlFVRkpMRk5CUVZNc1JVRkJSVHRuUWtGRFlpeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExEUkZRVUZ4UWl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8yZENRVU0xUkN4SlFVRkpMR3RDUVVGclFpeEZRVUZGTzI5Q1FVTjBRaXh0UWtGQmJVSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGVkJRVlVzUTBGRGVrTXNhMEpCUVd0Q0xFTkJRMDBzUTBGQlF6dHBRa0ZETlVJN1lVRkRSanRaUVVORUxFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1NVRkJTU3hUUVVGVExFVkJRVVU3WjBKQlEzSkRMRTFCUVUwc1ZVRkJWU3hIUVVGSE8yOUNRVU5xUWl4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eHRRa0ZCYlVJN2IwSkJRM2hETEZWQlFWVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExIRkNRVUZ4UWp0cFFrRkROME1zUTBGQlF6dG5Ra0ZEUml4TlFVRk5MRkZCUVZFc1IwRkJSeXcwUlVGQmNVSXNRMEZCUXl4elJFRkJZU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTJ4RkxFMUJRVTBzVTBGQlV5eEhRVUZITERaRlFVRnpRaXhEUVVGRExITkVRVUZoTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGNFVXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRE8yZENRVU40UkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU03WjBKQlEzSkVMSE5GUVVGaExFTkJRVU1zVTBGQlV5eEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRk5CUVZNc1JVRkJSU3hMUVVGTExFVkJRVVVzVVVGQlVTeEZRVUZGTEVOQlFVTXNRMEZCUXp0blFrRkRha1VzVFVGQlRTeEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1VVRkJVU3hIUVVGSExFTkJRVU1zUTBGQlF6dG5Ra0ZEY0VNc1RVRkJUU3hIUVVGSExGTkJRVk1zUTBGQlF5eERRVUZETEVkQlFVY3NVMEZCVXl4SFFVRkhMRU5CUVVNc1EwRkJRenRuUWtGRGNrTXNTVUZCU1N4dlFrRkJiMElzUlVGQlJUdHZRa0ZEZUVJc2IwSkJRVzlDTEVkQlFVY3NTVUZCU1N4RFFVRkRMSEZEUVVGeFF5eERRVU12UkN4TlFVRk5MRVZCUTA0c1RVRkJUU3hGUVVOT0xFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlExWXNTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkRXQ3hOUVVGTkxFTkJRVU1zWjBKQlFXZENMRU5CUTNoQ0xFTkJRVU03YVVKQlEwZzdZVUZEUmp0WlFVVkVMRTFCUVUwc1QwRkJUeXhIUVVGSExHMUNRVUZ0UWp0blFrRkRha01zUTBGQlF5eERRVUZETEcxQ1FVRnRRanRuUWtGRGNrSXNRMEZCUXl4RFFVRkRMSGxFUVVGakxFTkJRVU03YjBKQlEySXNRMEZCUXl4RlFVRkZMRzlDUVVGdlFqdDNRa0ZEY2tJc1EwRkJReXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMR05CUVdNN2QwSkJRM0pETEVOQlFVTXNRMEZCUXl4TlFVRk5PMjlDUVVOV0xFTkJRVU1zUlVGQlJTeHZRa0ZCYjBJN2QwSkJRM0pDTEVOQlFVTXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5eGpRVUZqTzNkQ1FVTnlReXhEUVVGRExFTkJRVU1zVFVGQlRUdHZRa0ZEVml4WFFVRlhMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eHpRa0ZCYzBJN2IwSkJRemxETEdWQlFXVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExEQkNRVUV3UWp0dlFrRkRkRVFzVTBGQlV5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2IwSkJRVzlDTzI5Q1FVTXhReXhYUVVGWExFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4elFrRkJjMEk3YjBKQlF6bERMRmRCUVZjc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEhOQ1FVRnpRanR2UWtGRE9VTXNVMEZCVXl4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYjBKQlFXOUNPMjlDUVVNeFF5eFBRVUZQTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhyUWtGQmEwSTdiMEpCUTNSRExHVkJRV1VzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMREJDUVVFd1FqdHZRa0ZEZEVRc1NVRkJTU3hGUVVGRkxFVkJRVVU3YjBKQlExSXNVVUZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYlVKQlFXMUNPMjlDUVVONFF5eFZRVUZWTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXh4UWtGQmNVSTdiMEpCUXpWRExGTkJRVk1zUlVGQlJTeHZRa0ZCYjBJN2QwSkJRemRDTEVOQlFVTXNRMEZCUXl4UlFVRlJPM2RDUVVOV0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRzlDUVVGdlFqdHZRa0ZEYmtNc1lVRkJZU3hGUVVGRkxHOUNRVUZ2UWp0M1FrRkRha01zUTBGQlF5eERRVUZETEZGQlFWRTdkMEpCUTFZc1EwRkJReXhEUVVGRExDdEVRVUZ6UWp0dlFrRkRNVUlzVjBGQlZ5eEZRVUZGTEdWQlFWTXNZVUZCVkN4VFFVRlRMSFZDUVVGVUxGTkJRVk1zUTBGQlJTeEZRVUZGTEcxRFFVRkpMRk5CUVZNN2IwSkJRM1pETEZGQlFWRXNSVUZCUlN4bFFVRlRMR0ZCUVZRc1UwRkJVeXgxUWtGQlZDeFRRVUZUTEVOQlFVVXNVVUZCVVN4dFEwRkJTU3hGUVVGRk8ybENRVU53UXl4RFFVRkRMRU5CUVVNN1dVRkZVQ3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNZMEZCWXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRk0wTXNTVUZCU1N4dFFrRkJiVUlzUlVGQlJUdG5Ra0ZEZGtJc09FUkJRVGhFTzJkQ1FVTTVSQ3huUlVGQlowVTdaMEpCUTJoRkxFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1NVRkJTU3hQUVVGUExFTkJRVU1zVTBGQlV5eExRVUZMTEZGQlFWRXNSVUZCUlR0dlFrRkRNMFFzYzBWQlFXRXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hoUVVGaExFVkJRVVVzSzBSQlFYTkNMRVZCUVVVc1EwRkJReXhEUVVGRE8ybENRVU51UlR0aFFVTkdPMmxDUVVGTk8yZENRVU5NTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTTdiMEpCUXpWQ0xFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl3eVFrRkJNa0lzUlVGQlJUdHZRa0ZETTBNc1QwRkJUenRwUWtGRFVpeERRVUZETEVOQlFVTTdaMEpCUlVnc2MwVkJRWE5GTzJkQ1FVTjBSU3hyUkVGQmEwUTdaMEpCUTJ4RUxFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1JVRkJSVHR2UWtGRGVrSXNjMFZCUVdFc1EwRkJReXhQUVVGUExFVkJRVVU3ZDBKQlEzSkNMRU5CUVVNc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4UlFVRlJMRWRCUVVjc1EwRkJRenR4UWtGRGNFTXNRMEZCUXl4RFFVRkRPMmxDUVVOS08yRkJRMFk3V1VGRlJDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMmRDUVVOYUxHTkJRV01zUlVGQlJTeFBRVUZQTzJGQlEzaENMRU5CUVVNc1EwRkJRenRaUVVWSUxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhQUVVGUExFVkJRVVU3WjBKQlF6bENMR2xDUVVGcFFpeEZRVUZGTEVOQlFVTXNRMEZCUXl4dFFrRkJiVUk3WVVGRGVrTXNRMEZCUXl4RFFVRkRPMUZCUTB3c1EwRkJReXhEUVVGRE8xRkJSVTBzTkVKQlFYVkNMRWRCUVVjc1EwRkRhRU1zUzBGQk1FTXNSVUZETVVNc1JVRkJSVHRaUVVOR0xIZEZRVUYzUlR0WlFVTjRSU3h0UTBGQmJVTTdXVUZEYmtNc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZsQlFWa3NSVUZCUlR0blFrRkRNMElzVDBGQlR6dGhRVU5TTzFsQlEwUXNaMFZCUVdkRk8xbEJRMmhGTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFdEJRVXNzVjBGQlZ5eEZRVUZGTzJkQ1FVTXhReXhQUVVGUE8yRkJRMUk3V1VGRlJDeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExEUkVRVUZ0UWl4RFFVTXhReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4RlFVTjRRaXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVU5ZTEVOQlFVTTdXVUZGUml4SlFVRkpMR2RDUVVGblFpeERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRWxCUVVrc2NVVkJRV1VzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTzJkQ1FVTjZSU3hKUVVORkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4dlFrRkJiMEk3YjBKQlEyaERMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1UwRkJVeXhMUVVGTExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGRGNFVTdiMEpCUTBFc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eGxRVUZsTEVWQlFVVXNRMEZCUXp0dlFrRkRMMElzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0M1FrRkRXaXh2UWtGQmIwSXNSVUZCUlN4SlFVRkpMRGhGUVVGdFFpeERRVU16UXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZEYmtJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGRFdEdHhRa0ZEUml4RFFVRkRMRU5CUVVNN2FVSkJRMG83WjBKQlEwUXNUMEZCVHp0aFFVTlNPMWxCUlVRc2IwUkJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkZla0lzU1VGQlNTeEZRVUZGTEVOQlFVTXNSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFMUJRVTBzUlVGQlJTeEhRVUZITEc5RlFVRXlRaXhEUVVONFJDeExRVUZMTEVWQlEwd3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkRXQ3hEUVVGRE8xbEJSVVlzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXcyUkVGQmJVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03V1VGRmVrUXNTVUZCU1N4blFrRkJaMElzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZPMmRDUVVNdlFpeE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNUVUZCVFN4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8yZENRVVUzUkN4TlFVRk5MR1ZCUVdVc1IwRkRia0lzVlVGQlZUdHZRa0ZEVml4elJVRkJORUlzUTBGQlF5eFZRVUZWTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRPMmRDUVVWNFJTeEpRVUZKTEdWQlFXVXNSVUZCUlR0dlFrRkRia0lzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hGUVVGRkxFTkJRekZDTEhsRlFVRXJRaXhwUTBGRmVFSXNVMEZCVXl4TFFVTmFMR05CUVdNc1JVRkJSU3hsUVVGbExFVkJReTlDTEd0Q1FVRnJRaXhGUVVGRkxFVkJRVVVzUTBGQlF5eFZRVUZYTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRemxETEdkQ1FVRm5RaXhGUVVGRkxFVkJRVVVzUzBGRmRFSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGRGVrSXNRMEZEUml4RFFVRkRPMjlDUVVOR0xFOUJRVTg3YVVKQlExSTdZVUZEUmp0WlFVVkVMRzlFUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUTNwQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNiMFJCUVdkQ0xFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaU3hGUVVGRk8yZENRVU16UkN4TlFVRk5MR2RDUVVGblFpeEhRVUZITERSRVFVRnRRaXhEUVVNeFF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1JVRkJSU3hGUVVONFFpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVTllMRU5CUVVNN1owSkJRMFlzU1VGQlNTeG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF5eEZRVUZGTzI5Q1FVTnFReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZETlVNc1RVRkJUU3hYUVVGWExFZEJRVWNzZVVWQlFXMUNMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU03YjBKQlEzcEVMRWxCUVVrc1YwRkJWeXhGUVVGRk8zZENRVU5tTEUxQlFVMHNSMEZCUnl4bFFVRmxMRU5CUVVNc1EwRkJReXhIUVVGSExHVkJRV1VzUTBGQlF5eExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRPM2RDUVVOMlJDeE5RVUZOTEVkQlFVY3NaVUZCWlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhsUVVGbExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0eFFrRkRla1E3YVVKQlEwWTdaMEpCUTBRc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRPMjlDUVVOd1FpeE5RVUZOTzI5Q1FVTk9MRTFCUVUwN2IwSkJRMDRzVlVGQlZTeEZRVUZGTEV0QlFVczdiMEpCUTJwQ0xHOUNRVUZ2UWl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTA3YVVKQlEzQkRMRU5CUVVNc1EwRkJRenRoUVVOS08xRkJRMGdzUTBGQlF5eERRVUZETzFGQlJVMHNOa0pCUVhkQ0xFZEJRVWNzUTBGRGFrTXNXVUZCWjBRc1JVRkRhRVFzVlVGQk9FTXNSVUZEWml4RlFVRkZPMWxCUTJwRExEUkVRVUUwUkR0WlFVTTFSQ3hoUVVGaE8xbEJRMklzVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRaUVVNMVJDeEpRVUZKTEdWQlFXVXNSMEZCUnl4UlFVRlJMRU5CUVVNN1dVRkZMMElzVDBGQlR5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTzJkQ1FVTjBReXhKUVVGSkxGVkJRVlVzU1VGQlNTeFBRVUZQTEVOQlFVTXNSVUZCUlN4TFFVRkxMRlZCUVZVc1EwRkJReXhGUVVGRkxFVkJRVVU3YjBKQlF6bERMR1ZCUVdVc1IwRkJSeXhMUVVGTExFTkJRVU03YVVKQlEzcENPMmRDUVVORUxFOUJRVThzUTBGRFRDeFBRVUZQTEVOQlFVTXNTVUZCU1R0dlFrRkRXaXd5UlVGQmMwSXNRMEZEY0VJc1QwRkJUeXhGUVVOUUxFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlExWXNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhGUVVGRkxGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZEYUVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGRFpEdHZRa0ZEUkN4TFFVRkxMRWxCUVVrc1pVRkJaU3hEUVVONlFpeERRVUZETzFsQlEwb3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRUQ3hEUVVGRExFTkJRVU03VVVGRlRTeHRRa0ZCWXl4SFFVRkhMRU5CUTNaQ0xFdEJRVFJETEVWQlF6VkRMR0ZCUVhOQ0xFVkJRM1JDTEVWQlFVVTdXVUZEUml4TlFVRk5MR1ZCUVdVc1IwRkJSeXhyUkVGQlZTeERRVU5vUXl4SlFVRkpMRU5CUVVNc1pVRkJaMElzUTBGQlF5eFBRVUZQTEVWQlF6ZENMRWxCUVVrc1EwRkJReXhsUVVGblFpeERRVUZETEU5QlFVOHNSVUZETjBJc1NVRkJTU3hEUVVGRExHRkJRV01zUTBGQlF5eFBRVUZQTEVWQlF6TkNMRWxCUVVrc1EwRkJReXhoUVVGakxFTkJRVU1zVDBGQlR5eERRVU0xUWl4RFFVRkRPMWxCUTBZc1NVRkRSU3hEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTzJkQ1FVTndRaXc0UkVGQk9FUTdaMEpCUXpsRUxFTkJRVU1zWVVGQllTeEpRVUZKTEdWQlFXVXNSMEZCUnl3eVJFRkJhMElzUTBGQlF6dG5Ra0ZEZGtRc1EwRkJReXhEUVVGRExHRkJRV0VzU1VGQlNTeGxRVUZsTEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUTNwRE8yZENRVU5CTEU5QlFVODdZVUZEVWp0WlFVTkVMRTFCUVUwc2NVSkJRWEZDTEVkQlFVY3NiMFZCUVRKQ0xFTkJRM1pFTEVsQlFVa3NRMEZCUXl4bFFVRm5RaXhGUVVOeVFpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVTllMRU5CUVVNN1dVRkRSaXhOUVVGTkxEaENRVUU0UWl4SFFVRkhMREpGUVVGelFpeERRVU16UkN4SlFVRkpMRU5CUVVNc1kwRkJaU3hGUVVOd1FpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVTldMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXl4RlFVRkZMSEZDUVVGeFFpeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVTnNSQ3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVU5rTEVOQlFVTTdXVUZEUml4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEc5RlFVRXlRaXhEUVVOeVJDeEpRVUZKTEVOQlFVTXNZVUZCWXl4RlFVTnVRaXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVU5ZTEVOQlFVTTdXVUZEUml4TlFVRk5MRFJDUVVFMFFpeEhRVUZITERKRlFVRnpRaXhEUVVONlJDeEpRVUZKTEVOQlFVTXNZMEZCWlN4RlFVTndRaXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVU5XTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF5eEZRVUZGTEcxQ1FVRnRRaXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVU01UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVOa0xFTkJRVU03V1VGRFJpeEpRVUZKTERoQ1FVRTRRaXhKUVVGSkxEUkNRVUUwUWl4RlFVRkZPMmRDUVVOc1JTeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFbEJRVWtzUTBGQlF6dG5Ra0ZEY2tNc1NVRkJTU3hIUVVGSExFVkJRVVU3YjBKQlExQXNTVUZCU1N4WFFVRlhMRU5CUVVNN2IwSkJRMmhDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhWUVVGVkxFVkJRVVU3ZDBKQlEzcENMRmRCUVZjc1IwRkJSeXhyUkVGQlV5eERRVUZETERoRVFVRnhRaXhGUVVGRkxFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0M1FrRkRiRVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXp0eFFrRkRla1E3YjBKQlEwUXNTVUZCU1N4RFFVRkRMRmxCUVZjc1lVRkJXQ3hYUVVGWExIVkNRVUZZTEZkQlFWY3NRMEZCUlN4blFrRkJaMElzUjBGQlJUdDNRa0ZEYkVNc1RVRkJUU3hOUVVGTkxFZEJRVWNzWjBWQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNN2QwSkJRM0pFTEUxQlFVMHNVMEZCVXl4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPM2RDUVVOcVJDeG5SRUZCWjBRN2QwSkJRMmhFTEVsQlFVa3NVMEZCVXl4RlFVRkZPelJDUVVOaUxGTkJRVk1zUTBGQlF5eE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRPelJDUVVONFFpeFRRVUZUTEVOQlFVTXNVVUZCVVN4SFFVRkhMR3RGUVVGaExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdlVUpCUTNwRE8zRkNRVU5HTzJsQ1FVTkdPMkZCUTBZN1VVRkRTQ3hEUVVGRExFTkJRVU03VVVGRlRTdzBRa0ZCZFVJc1IwRkJSeXhEUVVOb1F5eExRVUUwUXl4RlFVTTFReXhGUVVGRk8xbEJRMFlzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFpRVVY0UlN4SlFVRkpMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1JVRkJSVHRuUWtGRGVrTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNSVUZCUlR0dlFrRkRjRU1zUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXl4UFFVRlBPMjlDUVVOb1FpeERRVUZETEVWQlFVVXNTMEZCU3l4RFFVRkRMRTlCUVU4N2FVSkJRMnBDTEVOQlFVTXNRMEZCUXp0aFFVTktPMWxCUlVRc1RVRkJUU3haUVVGWkxFZEJRVWNzVDBGQlR5eERRVUZETEZsQlFWa3NRMEZCUXp0WlFVTXhReXhKUVVORkxFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4TFFVRkxMRU5CUVVNN1owSkJRek5DTEU5QlFVOHNRMEZCUXl4VlFVRlZPMmRDUVVOc1FpeFpRVUZaTzJkQ1FVTmFMRTlCUVU4c1EwRkJReXhsUVVGbExFVkJRM1pDTzJkQ1FVTkJMRTFCUVUwc1RVRkJUU3hIUVVGSExHOUVRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8yZENRVU16UXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU12UXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU12UXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hIUVVGSExFMUJRVTBzUTBGQlF6dG5Ra0ZGTlVJc1RVRkJUU3hSUVVGUkxFZEJRVWNzYzBSQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU53UlN4TlFVRk5MRmRCUVZjc1IwRkRaaXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NTMEZCU3l4VlFVRlZMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTzI5Q1FVTjZSQ3hEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZEU0N4RFFVRkRMRU5CUVVNc1VVRkJVU3hIUVVGSExFOUJRVThzUTBGQlF5eGxRVUZsTEVOQlFVTTdaMEpCUlhwRExFMUJRVTBzVVVGQlVTeEhRVUZITEZkQlFWYzdiMEpCUXpGQ0xFTkJRVU1zUTBGQlF5d3dSRUZCYVVJc1EwRkJReXhaUVVGWkxFZEJRVWNzVjBGQlZ5eERRVUZETzI5Q1FVTXZReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8yZENRVVV4UWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVTdiMEpCUTNSQ0xFMUJRVTBzVTBGQlV5eEhRVUZITERaRVFVRmxMRU5CUXk5Q08zZENRVU5GTEZOQlFWTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenQzUWtGRGJrSXNVMEZCVXl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8zZENRVU51UWl4UlFVRlJPM0ZDUVVOVUxFVkJRMFFzUzBGQlN5eERRVU5PTEVOQlFVTTdiMEpCUlVZc1QwRkJUenQzUWtGRFRDeEpRVUZKTEVWQlFVVXNVMEZCVXl4RFFVRkRMRWxCUVVrN2QwSkJRM0JDTEU5QlFVOHNSVUZCUlN4VFFVRlRMRU5CUVVNc1QwRkJUeXhIUVVGSExFMUJRVTBzUjBGQlJ5eFJRVUZSTzNkQ1FVTTVReXhQUVVGUExFVkJRVVVzVTBGQlV5eERRVUZETEU5QlFVOHNSMEZCUnl4TlFVRk5MRWRCUVVjc1VVRkJVVHQzUWtGRE9VTXNjVUpCUVhGQ0xFVkJRVVVzU1VGQlNUdHhRa0ZETlVJc1EwRkJRenRuUWtGRFNpeERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRTQ3hKUVVGSkxFTkJRVU1zYlVOQlFXMURMRVZCUVVVc1EwRkJRenRoUVVNMVF6dHBRa0ZCVFR0blFrRkRUQ3hQUVVGUExFTkJRVU1zVlVGQlZUdHZRa0ZEYUVJc1QwRkJUeXhEUVVGRExHVkJRV1U3ZDBKQlEzWkNMRTlCUVU4c1EwRkJReXhaUVVGWk96UkNRVU5zUWl4SlFVRkpMRU5CUVVNN1lVRkRWanRaUVVWRUxFbEJRVWtzWTBGQll5eEpRVUZKTEZOQlFWTXNTVUZCU1N4dFFrRkJiVUlzUlVGQlJUdG5Ra0ZEZEVRc1QwRkJUenRoUVVOU08xbEJSVVFzVFVGQlRTeDFRa0ZCZFVJc1IwRkJSeXg1UkVGQlowSXNRMEZET1VNc2FVSkJRV2xDTEVWQlEycENMRXRCUVVzc1EwRkJReXhQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VlFVRlZMRVZCUTNKRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRM0pETEVOQlFVTTdXVUZEUml4TlFVRk5MR1ZCUVdVc1IwRkJSeXgxUWtGQmRVSXNRMEZCUXl4WlFVRlpMRU5CUVVNN1dVRkROMFFzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WlFVRlpMRVZCUVVVN1owSkJRek5FTEVsQlFVa3NaVUZCWlN4RlFVRkZPMjlDUVVOdVFpeHZSRUZCVnl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dHBRa0ZETVVJN2NVSkJRVTA3YjBKQlEwd3NNRVJCUVdsQ0xFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzJsQ1FVTjRSRHRoUVVOR08xbEJSVVFzVFVGQlRTeFpRVUZaTEVkQlFVY3NiMFZCUVRKQ0xFTkJRVU1zUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRaUVVOd1JTeE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMR0ZCUVdFc1JVRkJSU3hEUVVGRExFVkJRVVVzWVVGQllTeEZRVUZGTEVkQlFVY3NXVUZCV1N4RFFVRkRPMWxCUlRWRUxFbEJRMFVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4dlFrRkJiMEk3WjBKQlF5OUNMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhWUVVGVkxFVkJRek5ETzJkQ1FVTkJMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NaMGRCUVhGRExFTkJRMmhGTEV0QlFVc3NSVUZEVEN4aFFVRmhMRVZCUTJJc1lVRkJZU3hGUVVOaUxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNiMEpCUVc5Q0xFVkJReTlDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVOd1FpeERRVUZETzJkQ1FVTkdMRWxCUVVrc2IwSkJRVzlDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXh2UWtGQmIwSXNSVUZCUlR0dlFrRkROVVFzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMRzlDUVVGdlFpeEZRVUZGTEVOQlFVTXNRMEZCUXp0cFFrRkRla003WjBKQlEwUXNTVUZCU1N4dlFrRkJiMElzUTBGQlF5eHZRa0ZCYjBJc1NVRkJTU3hKUVVGSkxFVkJRVVU3YjBKQlEzSkVMRWxCUVVrc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRwUWtGRGFFUTdjVUpCUVUwN2IwSkJRMHdzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMR2xDUVVGcFFpeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN2FVSkJRekZETzJGQlEwWTdXVUZGUkN4SlFVRkpMREJGUVVGdlFpeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVVU3WjBKQlEyaEVMSGxGUVVGNVJUdG5Ra0ZEZWtVc1dVRkJXVHRuUWtGRFdpeE5RVUZOTEVWQlFVVXNaVUZCWlN4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF6dG5Ra0ZEZGtNc1NVRkJTU3h6UlVGQlowSXNRMEZCUXl4bFFVRmxMRU5CUVVNc1JVRkJSVHR2UWtGRGNrTXNTVUZCU1N4RFFVRkRMRFJEUVVFMFF5eERRVU12UXl4bFFVRmxMRVZCUTJZc1EwRkJReXhaUVVGWkxFTkJRVU1zUlVGRFpDeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeERRVU0zUWl4RFFVRkRPMmxDUVVOSU8zRkNRVUZOTzI5Q1FVTk1MRWxCUVVrc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRwUWtGRGFFUTdZVUZEUmp0WlFVVkVMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFpRVUZaTEVWQlFVVTdaMEpCUXpOQ0xFMUJRVTBzUlVGQlJTeFpRVUZaTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8yZENRVU53UXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRWRCUVVjc1dVRkJXU3hEUVVGRE8yZENRVVYwUXl4TlFVRk5MRVZCUVVVc1RVRkJUU3hGUVVGRkxHdENRVUZyUWl4RlFVRkZMRWRCUVVjc1dVRkJXU3hEUVVGRE8yZENRVU53UkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRk5VTXNNRVJCUVdsQ0xFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzJkQ1FVVjJSQ3hKUVVGSkxGTkJRVk1zUzBGQlN5eHJRa0ZCYTBJc1JVRkJSVHR2UWtGRGNFTXNjMFZCUVhORk8yOUNRVU4wUlN4NVFrRkJlVUk3YjBKQlEzcENMRWxCUTBVc2EwUkJRVlVzUTBGRFVpeGhRVUZoTEVkQlFVY3NSVUZCUlN4RlFVTnNRaXhoUVVGaExFZEJRVWNzUlVGQlJTeEZRVU5zUWl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRMW9zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVTmlMRWxCUVVrc0swUkJRWE5DTEVWQlF6TkNPM2RDUVVOQkxITkZRVUZoTEVOQlFVTXNXVUZCV1N4RlFVRkZPelJDUVVNeFFpeE5RVUZOTEVWQlFVVXNRMEZCUXl4SFFVRkhMRTFCUVUwc1JVRkJSU3hEUVVGRExHRkJRV0VzUjBGQlJ5eEZRVUZGTEVWQlFVVXNZVUZCWVN4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8zbENRVU01UkN4RFFVRkRMRU5CUVVNN2NVSkJRMG83ZVVKQlFVMDdkMEpCUTB3c2EwUkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRFJFUVVGdFFpeERRVUZETEVOQlFVTTdkMEpCUXpWRExHMUZRVUZ0UlR0M1FrRkRia1VzTWtSQlFUSkVPM0ZDUVVNMVJEdHBRa0ZEUmp0eFFrRkJUU3hKUVVOTUxFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXp0dlFrRkRha0lzYTBKQlFXdENPMjlDUVVOc1FpeHJSRUZCVlN4RFFVTlNMR0ZCUVdFc1IwRkJSeXhGUVVGRkxFVkJRMnhDTEdGQlFXRXNSMEZCUnl4RlFVRkZMRVZCUTJ4Q0xHdENRVUZyUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVOeVFpeHJRa0ZCYTBJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGRGRFSXNSMEZCUnl3clJFRkJjMElzUlVGRE1VSTdiMEpCUTBFc2EwUkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRFJFUVVGdFFpeERRVUZETEVOQlFVTTdiMEpCUXpWRExITkZRVUZoTEVOQlFVTXNXVUZCV1N4RlFVRkZPM2RDUVVNeFFpeE5RVUZOTEVWQlFVVXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdjVUpCUXpWQ0xFTkJRVU1zUTBGQlF6dHBRa0ZEU2p0eFFrRkJUVHR2UWtGRFRDeEpRVUZKTEcxRVFVRlhMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRk8zZENRVU01UXl4clJFRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNORVJCUVcxQ0xFTkJRVU1zUTBGQlF6dHhRa0ZETjBNN2IwSkJRMFFzWjBOQlFXZERPMjlDUVVOb1F5eHpSVUZCWVN4RFFVRkRMRmxCUVZrc1JVRkJSVHQzUWtGRE1VSXNUVUZCVFN4RlFVRkZPelJDUVVOT0xFZEJRVWNzVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03TkVKQlEzUkNMRU5CUVVNc1lVRkJZU3hIUVVGSExFVkJRVVVzUlVGQlJTeGhRVUZoTEVkQlFVY3NSVUZCUlN4RFFVRkRPM2xDUVVONlF6dHhRa0ZEUml4RFFVRkRMRU5CUVVNN2FVSkJRMG83WjBKQlJVUXNUMEZCVHp0aFFVTlNPMWxCUlVRc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFsQlEyNUVMRWxCUTBVc2JVSkJRVzFDTzJkQ1FVTnVRaXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4TFFVRkxMRmRCUVZjN2IwSkJRM0pETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhMUVVGTExFMUJRVTBzUTBGQlF5eEZRVU53UXp0blFrRkRRU3hQUVVGUE8yRkJRMUk3V1VGRlJDeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETzFsQlJURkRMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NORVJCUVcxQ0xFTkJRVU1zVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRaUVVOdVJTeEpRVU5GTEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETzJkQ1FVTTNRaXhEUVVGRExHVkJRV1U3WjBKQlEyaENMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eHZRa0ZCYjBJc1JVRkRhRU03WjBKQlEwRXNUVUZCVFN3NFFrRkJPRUlzUjBGQlJ5dzBSVUZCYVVNc1EwRkRkRVVzVVVGQlVTeEZRVU5TTEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUTFZc1lVRkJZU3hGUVVOaUxHRkJRV0VzUlVGRFlpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1JVRkRaaXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVU5zUWl4RFFVRkRPMmRDUVVOR0xFbEJRMFVzT0VKQlFUaENPMjlDUVVNNVFpdzRRa0ZCT0VJc1EwRkJReXh0UWtGQmJVSXNSVUZEYkVRN2IwSkJRMEVzYTBSQlFWTXNRMEZEVUN4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVOWUxITkZRVUV5UWl4RFFVRkRMRGhDUVVFNFFpeERRVUZETEVOQlF6VkVMRU5CUVVNN2IwSkJRMFlzVDBGQlR6dHBRa0ZEVWp0aFFVTkdPMmxDUVVGTkxFbEJRVWtzWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEdWQlFXVXNSVUZCUlR0blFrRkRNVVFzVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXd5UlVGQlowTXNRMEZETVVRc01FUkJRV1VzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhGUVVOcVF5eGhRVUZoTEVWQlEySXNZVUZCWVN4RlFVTmlMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEZRVU5tTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUTJ4Q0xFTkJRVU03WjBKQlEwWXNTVUZCU1N4dFFrRkJiVUlzUlVGQlJUdHZRa0ZEZGtJc2EwUkJRVk1zUTBGRFVDeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVTllMSE5GUVVFeVFpeERRVUZETzNkQ1FVTXhRaXh0UWtGQmJVSTdjVUpCUTNCQ0xFTkJRVU1zUTBGRFNDeERRVUZETzI5Q1FVTkdMRTlCUVU4N2FVSkJRMUk3WVVGRFJqdFpRVVZFTEUxQlFVMHNWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXh2UWtGQmIwSXNRMEZETVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUlVGRFpDeFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVTm1MRU5CUVVNN1dVRkRSaXhKUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEVsQlFVa3NRMEZCUXl4M1FrRkJkMElzUTBGRGFrUXNXVUZCV1N4RlFVTmFMRlZCUVZVc1EwRkRXQ3hEUVVGRE8xbEJSVVlzU1VGRFJTeEpRVUZKTEVOQlFVTXNZMEZCWXp0blFrRkRia0lzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR3RDUVVGclFpeERRVUZETEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRM1JFTzJkQ1FVTkJMR3RFUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN3MFJFRkJiVUlzUTBGQlF5eERRVUZETzJkQ1FVTTFReXg1UlVGQmIwSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0aFFVTjJSRHRwUWtGQlRUdG5Ra0ZEVEN4M1JVRkJiVUlzUlVGQlJTeERRVUZETzJkQ1FVTjBRaXhKUVVORkxGVkJRVlU3YjBKQlExWXNWVUZCVlN4RFFVRkRMRWxCUVVrN2IwSkJRMllzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eFZRVUZWTEVOQlFVTXNSVUZCUlN4RFFVRkRPMjlDUVVNMVF5eERRVUZETEVsQlFVa3NRMEZCUXl4bFFVRmxPMjlDUVVOeVFpeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2EwSkJRV3RDTEVWQlF6bENPMjlDUVVOQkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeE5RVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRPMmxDUVVNdlF6dG5Ra0ZEUkN4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eExRVUZMTEUxQlFVMHNSVUZCUlR0dlFrRkRja01zYTBSQlFWTXNRMEZEVUN4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVOWUxIZEVRVUZoTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExIbEVRVUZuUWl4RFFVRkRMRU5CUVVNc1EwRkJReXc0UkVGQmNVSXNRMEZEY2tVc1EwRkJRenRwUWtGRFNEdHhRa0ZCVFN4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWlVGQlpTeEZRVUZGTzI5Q1FVTnlReXhyUkVGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc2VVUkJRV2RDTEVOQlFVTXNRMEZCUXp0cFFrRkRNVU03Y1VKQlFVMHNTVUZCU1N4bFFVRmxMRVZCUVVVN2IwSkJRekZDTEd0RVFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeDVSRUZCWjBJc1EwRkJReXhEUVVGRE8ybENRVU14UXp0eFFrRkJUU3hKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNiMEpCUVc5Q0xFVkJRVVU3YjBKQlF6RkRMRTFCUVUwc1QwRkJUeXhIUVVGSExIbEdRVUU0UWl4RFFVTTFReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExGTkJRVk1zUTBGRE1VTXNRMEZCUXp0dlFrRkZSaXhKUVVORkxFOUJRVTg3ZDBKQlExQXNPRVpCUVhsRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVN05FSkJRemRFTEZsQlFWa3NRMEZCUXl4RFFVRkRPelJDUVVOa0xGbEJRVmtzUTBGQlF5eERRVUZETzNsQ1FVTm1MRU5CUVVNc1JVRkRSanQzUWtGRFFTeHJSRUZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzZVVSQlFXZENMRU5CUVVNc1EwRkJRenR4UWtGRE1VTTdlVUpCUVUwN2QwSkJRMHdzYTBSQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxIbEVRVUZuUWl4RFFVRkRMRU5CUVVNN2NVSkJRekZETzJsQ1FVTkdPM0ZDUVVGTk8yZENRVU5NTEhkRFFVRjNRenRuUWtGRGVFTXNRMEZCUXl4TFFVRkxMRU5CUVVNc2IwUkJRV2RDTEVOQlFVTTdiMEpCUTNoQ0xFTkJRVU1zVlVGQlZUdDNRa0ZEVkN4SlFVRkpMRU5CUVVNc05FTkJRVFJETEVOQlF5OURMRmxCUVZrc1JVRkRXaXhuUWtGQlowSXNRMEZEYWtJc1EwRkJReXhGUVVOS08yOUNRVU5CTEd0RVFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeDVSRUZCWjBJc1EwRkJReXhEUVVGRE8ybENRVU14UXp0eFFrRkJUVHR2UWtGRFRDeHJSRUZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzZVVSQlFXZENMRU5CUVVNc1EwRkJRenRwUWtGRE1VTTdZVUZEUmp0UlFVTklMRU5CUVVNc1EwRkJRenRSUVVWR0xESkRRVUV5UXp0UlFVTnVReXh2UWtGQlpTeEhRVUZITEVOQlFVTXNTMEZCTUVNc1JVRkJSU3hGUVVGRk8xbEJRM1pGTEhGQ1FVRnhRaXhIUVVGSExFbEJRVWtzUTBGQlF6dFJRVU12UWl4RFFVRkRMRU5CUVVNN1VVRkZUU3cwUWtGQmRVSXNSMEZCUnl4RFFVTm9ReXhMUVVFMFF5eEZRVU0xUXl4RlFVRkZPMWxCUTBZc2IwVkJRVzlGTzFsQlEzQkZMSGRGUVVGM1JUdFpRVU40UlN3NFEwRkJPRU03V1VGRE9VTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1VVRkJVU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzFsQlF6RkRMRWxCUVVrc1UwRkJVeXhoUVVGVUxGTkJRVk1zZFVKQlFWUXNVMEZCVXl4RFFVRkZMRlZCUVZVc1JVRkJSVHRuUWtGRGVrSXNVMEZCVXl4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRE8yRkJRemRDTzFsQlEwUXNTVUZCU1N4RFFVRkRMR3RFUVVGclJDeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUXk5RUxFbEJRVWtzUTBGQlF5eHBRMEZCYVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVVU1UXl4NVJFRkJlVVE3V1VGRGVrUXNNRVJCUVRCRU8xbEJRekZFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzU1VGQlNTeExRVUZMTEVOQlFVTXNWMEZCVnl4TFFVRkxMRXRCUVVzc1JVRkJSVHRuUWtGRE1VUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEZRVUZGTzI5Q1FVTXhRaXhQUVVGUE8zZENRVU5NTEU5QlFVOHNSVUZCUlN4SlFVRkpPM2RDUVVOaUxGZEJRVmNzUlVGQlJTeEpRVUZKTzNGQ1FVTnNRaXhEUVVGRE8yZENRVU5LTEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTBvN1dVRkZSQ3hKUVVGSkxGTkJRVk1zUlVGQlJUdG5Ra0ZEWWl4UFFVRlBPMkZCUTFJN1dVRkRSQ3hKUVVGSkxFTkJRVU1zWlVGQlpTeEhRVUZITEV0QlFVc3NRMEZCUXp0WlFVTTNRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzJkQ1FVTmFMRzFDUVVGdFFpeEZRVUZGTEV0QlFVc3NRMEZCUXl4WFFVRlhPMmRDUVVOMFF5eFpRVUZaTEVWQlFVVXNUVUZCVFR0aFFVTnlRaXhEUVVGRExFTkJRVU03V1VGRFNDeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUzBGQlN5eERRVUZETEU5QlFVOHNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRaUVVWMlJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4dlEwRkJiME1zUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlR0blFrRkRjRVFzVDBGQlR6dGhRVU5TTzFsQlJVUXNlVU5CUVhsRE8xbEJRM3BETEVsQlEwVXNTMEZCU3l4RFFVRkRMRTFCUVUwc1MwRkJTeXcwUkVGQmJVSTdaMEpCUTNCRExFdEJRVXNzUTBGQlF5eE5RVUZOTEV0QlFVc3NOa1JCUVc5Q0xFVkJRM0pETzJkQ1FVTkJMRTlCUVU4N1lVRkRVanRaUVVWRUxFbEJRVWtzUTBGQlF5d3dRa0ZCTUVJc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVVYyUXl3MlFrRkJOa0k3V1VGRE4wSXNTVUZCU1N4UFFVRlBMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETEVWQlFVVTdaMEpCUXpkQ0xFOUJRVTg3WVVGRFVqdFpRVVZFTEhWRlFVRjFSVHRaUVVOMlJTd3dSVUZCTUVVN1dVRkRNVVVzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03V1VGRk4wUXNTVUZCU1N4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNTMEZCU3l4RlFVRkZMR2RDUVVGblFpeERRVUZETEVWQlFVVTdaMEpCUTNwRUxFOUJRVTg3WVVGRFVqdFpRVVZFTEdkRlFVRm5SVHRaUVVOb1JTeEpRVUZKTEVOQlFVTXNaVUZCWlN4SFFVRkhMRXRCUVVzc1EwRkJRenRaUVVNM1FpeEpRVUZKTEVOQlFVTXNhVU5CUVdsRExFVkJRVVVzUTBGQlF6dFpRVU42UXl4SlFVRkpMRU5CUVVNc2FVTkJRV2xETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1dVRkZPVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNORUpCUVRSQ0xFTkJRVU1zUzBGQlN5eEZRVUZGTEdkQ1FVRm5RaXhEUVVGRExFVkJRVVU3WjBKQlF6bEVMRTlCUVU4N1lVRkRVanRaUVVWRUxFMUJRVTBzYTBKQlFXdENMRWRCUTNSQ0xFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBPMmRDUVVOdVFpeExRVUZMTEVOQlFVTXNWMEZCVnl4TFFVRkxMRTlCUVU4N1owSkJRemRDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhMUVVGTExGZEJRVmM3WjBKQlEzUkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eExRVUZMTEUxQlFVMDdaMEpCUTJwRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4TFFVRkxMRTlCUVU4c1EwRkJRenRaUVVWeVF5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVU3WjBKQlEzWkNMRTlCUVU4N1lVRkRVanRaUVVWRUxFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRXRCUVVzc1RVRkJUU3hGUVVGRk8yZENRVU55UXl4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNTMEZCU3l4RlFVRkZMR2RDUVVGblFpeERRVUZETEVOQlFVTTdaMEpCUTNSRUxFOUJRVTg3WVVGRFVqdHBRa0ZCVFN4SlFVTk1MRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eExRVUZMTEU5QlFVODdaMEpCUTJ4RExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4TFFVRkxMRTFCUVUwc1JVRkRha003WjBKQlEwRXNTVUZCU1N4RFFVRkRMR2REUVVGblF5eERRVU51UXl4TFFVRkxMRVZCUTB3c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVWQlEzUkNMR2RDUVVGblFpeERRVU5xUWl4RFFVRkRPMkZCUTBnN2FVSkJRVTBzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1MwRkJTeXhQUVVGUExFVkJRVVU3WjBKQlF6ZERMSEZEUVVGeFF6dG5Ra0ZEY2tNc2EwUkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRGhFUVVGeFFpeERRVUZETEVOQlFVTTdaMEpCUlRsRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTzI5Q1FVTnVReXhQUVVGUE8ybENRVU5TTzJkQ1FVVkVMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU03YjBKQlExb3NaVUZCWlN4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYlVKQlFXMUNPMjlDUVVNdlF5eGpRVUZqTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXh0UWtGQmJVSTdiMEpCUXpsRExHMUNRVUZ0UWl4RlFVRkZMRWxCUVVrN2IwSkJRM3BDTEZsQlFWa3NSVUZCUlN4SlFVRkpPMmxDUVVOdVFpeERRVUZETEVOQlFVTTdaMEpCUlVnc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSMEZCUnl4dlJVRkJNa0lzUTBGQlF5eExRVUZMTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yZENRVU5vUlN4elJVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFVkJRVVU3YjBKQlF6VkRMRU5CUVVNN2IwSkJRMFFzUTBGQlF6dHBRa0ZEUml4RFFVRkRMRU5CUVVNN1lVRkRTanRwUWtGQlRTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhMUVVGTExGVkJRVlVzUlVGQlJUdG5Ra0ZEYUVRc1NVRkJTU3hEUVVGRExHdERRVUZyUXl4RFFVTnlReXhMUVVGTExFVkJRMHdzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUTNSQ0xHZENRVUZuUWl4RFFVTnFRaXhEUVVGRE8yRkJRMGc3YVVKQlFVMDdaMEpCUTB3c1NVRkJTU3hEUVVGRExHbERRVUZwUXl4RFFVTndReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NSVUZEZEVJc1owSkJRV2RDTEVOQlEycENMRU5CUVVNN1lVRkRTRHRaUVVWRUxFMUJRVTBzWVVGQllTeEhRVU5xUWl4SlFVRkpMRU5CUVVNc2JVTkJRVzFETEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dFpRVVUzUkN4TlFVRk5MRmRCUVZjc1IwRkRaaXhKUVVGSkxFTkJRVU1zYVVOQlFXbERMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0WlFVVXpSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNLMEpCUVN0Q0xFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJRenRaUVVONlJTeE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc05rSkJRVFpDTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dFpRVVZ5UlN4aFFVRmhMRWRCUVVjc1YwRkJWeXhEUVVGRE8xbEJSVFZDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHVkJRV1VzUlVGQlJUdG5Ra0ZETDBJc1RVRkJUU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMREpFUVVGclFpeEZRVUZGTEdGQlFXRXNRMEZCUXl4RFFVRkRPMmRDUVVNelJDeE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zZVVSQlFXZENMRVZCUVVVc1YwRkJWeXhEUVVGRExFTkJRVU03WjBKQlEzWkVMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4elJFRkJZU3hGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZETzJkQ1FVTnNSQ3hOUVVGTkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc2IwUkJRVmNzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0blFrRkRPVU1zWjBKQlFXZENMRU5CUVVNc1kwRkJZeXhEUVVGRExFMUJRVTBzUjBGQlJ5eGhRVUZoTEVOQlFVTTdaMEpCUTNaRUxHZENRVUZuUWl4RFFVRkRMR05CUVdNc1EwRkJReXhKUVVGSkxFZEJRVWNzVjBGQlZ5eERRVUZETzJkQ1FVTnVSQ3huUWtGQlowSXNRMEZCUXl4alFVRmpMRU5CUVVNc1QwRkJUeXhIUVVGSExFOUJRVThzUTBGQlF6dG5Ra0ZEYkVRc1owSkJRV2RDTEVOQlFVTXNZMEZCWXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhUUVVGVExFTkJRVU03WVVGRGRrUTdVVUZEU0N4RFFVRkRMRU5CUVVNN1VVRkZUU3d3UWtGQmNVSXNSMEZCUnl4RFFVTTVRaXhMUVVFMFF5eEZRVU0xUXl4RlFVRkZPMWxCUTBZc1NVRkJTU3hEUVVGRExHRkJRV0VzUjBGQlJ5eExRVUZMTEVOQlFVTTdXVUZETTBJc1RVRkJUU3hoUVVGaExFZEJRVWNzUTBGQlF5eExRVUZMTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0WlFVTnVSU3hKUVVGSkxHRkJRV0VzUlVGQlJUdG5Ra0ZEYWtJc1RVRkJUU3haUVVGWkxFZEJRVWNzYjBWQlFUSkNMRU5CUXpsRExFVkJRVVVzVDBGQlR5eEZRVUZGTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1QwRkJUeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZEYkVRc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGRFdDeERRVUZETzJkQ1FVTkdMRTFCUVUwc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1EwRkRNVU1zV1VGQldTeERRVUZETEVOQlFVTXNSVUZEWkN4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVObUxFTkJRVU03WjBKQlEwWXNTVUZCU1N4RFFVRkRMR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zZDBKQlFYZENMRU5CUTJwRUxGbEJRVmtzUlVGRFdpeFZRVUZWTEVOQlExZ3NRMEZCUXp0aFFVTklPMWxCUTBRc1NVRkRSU3hKUVVGSkxFTkJRVU1zWTBGQll6dG5Ra0ZEYmtJc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUTNSRU8yZENRVU5CTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1MwRkJTeXhGUVVGRkxHRkJRV0VzUTBGQlF5eERRVUZETzJGQlF6TkRPMWxCUlVRc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTTFRaXhEUVVGRExFTkJRVU03VVVGRlRTeDFSRUZCYTBRc1IwRkJSeXhEUVVNelJDeExRVUUwUXl4RlFVTjBReXhGUVVGRk8xbEJRMUlzYTBSQlFXdEVPMWxCUTJ4RUxFbEJRVWtzUzBGQlN5eERRVUZETEZkQlFWY3NTMEZCU3l4UFFVRlBMRVZCUVVVN1owSkJRMnBETEhGQ1FVRnhRaXhIUVVGSExFdEJRVXNzUTBGQlF6dG5Ra0ZGT1VJc1NVRkJTU3haUVVGWkxFVkJRVVU3YjBKQlEyaENMSEZGUVVGeFJUdHZRa0ZEY2tVc2MwVkJRWE5GTzI5Q1FVTjBSU3huUWtGQlowSTdiMEpCUTJoQ0xIRkNRVUZ4UWl4SFFVRkhMRWxCUVVrc1EwRkJRenRwUWtGRE9VSTdjVUpCUVUwN2IwSkJRMHdzYlVWQlFXMUZPMjlDUVVOdVJTdzJRa0ZCTmtJN2IwSkJRemRDTEZsQlFWa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFZEJRVWNzUlVGQlJUdDNRa0ZEY0VNc1dVRkJXU3hIUVVGSExFTkJRVU1zUTBGQlF6dDNRa0ZEYWtJc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RlFVRkZPelJDUVVNeFFpeEpRVUZKTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdlVUpCUTNKRE8yOUNRVU5JTEVOQlFVTXNSVUZCUlN3clJFRkJjMElzUTBGQlF5eERRVUZETzJsQ1FVTTFRanRoUVVOR08xRkJRMGdzUTBGQlF5eERRVUZETzFGQlJVMHNNRUpCUVhGQ0xFZEJRVWNzUjBGQlJ5eEZRVUZGTzFsQlEyNURMRmxCUVZrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFpRVU16UWl4WlFVRlpMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMnBDTEhGQ1FVRnhRaXhIUVVGSExFdEJRVXNzUTBGQlF6dFJRVU5vUXl4RFFVRkRMRU5CUVVNN1VVRmhSaXg1UTBGQmVVTTdVVUZEYWtNc2VVTkJRVzlETEVkQlFVY3NRMEZETjBNc1MwRkJORU1zUlVGRGJrTXNSVUZCUlR0WlFVTllMRWxCUTBVc1EwRkJReXhEUVVORExFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4TFFVRkxMRU5CUVVNN1owSkJRek5DTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1MwRkJTeXcyUkVGQmIwSTdiMEpCUTNCRExFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNTMEZCU3l3MFJFRkJiVUlzU1VGQlNTeGpRVUZqTEVOQlFVTTdiMEpCUTNoRUxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUXpsQ08yZENRVU5FTEhkRVFVRmhMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGpRVUZqTEVOQlFVTXNSVUZEZUVNN1owSkJRMEVzVDBGQlR5eExRVUZMTEVOQlFVTTdZVUZEWkR0WlFVTkVMRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU03V1VGRGFrSXNTMEZCU3l4RFFVRkRMR05CUVdNc1JVRkJSU3hEUVVGRE8xbEJSWFpDTEVsQlFVa3NhMEpCUVd0Q0xFZEJRVWNzUzBGQlN5eERRVUZETzFsQlF5OUNMRTFCUVUwc1QwRkJUeXhIUVVGSExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFpRVVY0UkN4clJFRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNOa1JCUVc5Q0xFTkJRVU1zUTBGQlF6dFpRVU0zUXl4SlFVRkpMRVZCUVVVc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeFBRVUZQTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWRCUVVjc1MwRkJTeXhEUVVGRE8xbEJReTlETEUxQlFVMHNZVUZCWVN4SFFVRkhMRzlGUVVFeVFpeERRVUZETEVOQlFVTXNTMEZCYlVJc1JVRkJSU3hGUVVGRk8yZENRVU40UlN4TlFVRk5MRTFCUVUwc1IwRkJSeXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXp0blFrRkRja01zVFVGQlRTeE5RVUZOTEVkQlFVY3NTMEZCU3l4SFFVRkhMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU03WjBKQlEzSkRMRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETzJkQ1FVTjBRaXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXp0blFrRkZkRUk3T3p0dFFrRkhSenRuUWtGRFNDeEpRVU5GTEU5QlFVODdiMEpCUTFBc1EwRkJReXhyUWtGQmEwSTdiMEpCUTI1Q0xFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGRE9VTTdiMEpCUTBFc2EwSkJRV3RDTEVkQlFVY3NTVUZCU1N4RFFVRkRPMjlDUVVVeFFpeHJRMEZCYTBNN2IwSkJRMnhETEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzUTBGQlF5eExRVUZ4UWl4RlFVRkZMRVZCUVVVN2QwSkJRMnBFTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNiMFJCUVZjc1JVRkJSU3huUWtGQlowSXNRMEZCUXl4RFFVRkRPM2RDUVVOcVJTeExRVUZMTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNN2IwSkJRekZDTEVOQlFVTXNRMEZCUXp0dlFrRkZSanM3T3pzN2RVSkJTMGM3YjBKQlEwZ3NUVUZCVFN4bFFVRmxMRWRCUVVjc1IwRkJSeXhGUVVGRk8zZENRVU16UWl4VlFVRlZMRU5CUVVNc1IwRkJSeXhGUVVGRk96UkNRVU5rTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNiMFJCUVZjc1JVRkJSU3huUWtGQlowSXNRMEZCUXl4RFFVRkRPelJDUVVOcVJTeE5RVUZOTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zZVVSQlFXZENMRVZCUVVVc1pVRkJaU3hEUVVGRExFTkJRVU03ZDBKQlEyaEZMRU5CUVVNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dHZRa0ZEVml4RFFVRkRMRU5CUVVNN2IwSkJSVVlzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eHZSRUZCVnl4RlFVRkZMR2RDUVVGblFpeERRVUZETEVOQlFVTTdiMEpCUXpsRUxFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXg1UkVGQlowSXNSVUZCUlN4bFFVRmxMRU5CUVVNc1EwRkJRenRwUWtGRE5VUTdaMEpCUlVRc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dHZRa0ZEV2l4UFFVRlBMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVkQlFVY3NUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVczdiMEpCUXpWRUxFOUJRVThzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTenRwUWtGRE4wUXNRMEZCUXl4RFFVRkRPMWxCUTB3c1EwRkJReXhEUVVGRExFTkJRVU03V1VGRFNDeE5RVUZOTEZGQlFWRXNSMEZCUnl3eVJFRkJhMElzUTBGRGFrTXNRMEZCUXl4aFFVRmhMRWRCUVVjc1IwRkJSeXhGUVVGRk8yZENRVU53UWl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRE8yZENRVU55UWl4VFFVRlRMRWRCUVVjc1MwRkJTeXhEUVVGRE8yZENRVU5zUWl4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVGRk8yOUNRVU51UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWlVGQlpTeEZRVUZGTzNkQ1FVTTVRaXhyUkVGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc2VVUkJRV2RDTEVOQlFVTXNRMEZCUXp0eFFrRkRNVU03ZVVKQlFVMDdkMEpCUTB3c01FUkJRV2xDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPM0ZDUVVONFJEdHBRa0ZEUmp0blFrRkRSQ3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzI5Q1FVTmFMRmxCUVZrc1JVRkJSU3hKUVVGSk8ybENRVU51UWl4RFFVRkRMRU5CUVVNN1owSkJRMGdzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1owSkJRM0pFTEUxQlFVMHNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5d3lSRUZCYTBJc1JVRkJSU3hoUVVGaExFTkJRVU1zUTBGQlF6dG5Ra0ZET1VRc1RVRkJUU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMSGxFUVVGblFpeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRPMmRDUVVOMlJDeE5RVUZOTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zYlVSQlFWVXNSVUZCUlN4UlFVRlJMRU5CUVVNc1EwRkJRenRuUWtGRGFrUXNZVUZCWVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJRM2hDTEVOQlFVTXNRMEZCUXl4RFFVTklMRU5CUVVNN1dVRkRSaXhOUVVGTkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc2JVUkJRVlVzUlVGQlJTeFJRVUZSTEVOQlFVTXNRMEZCUXp0WlFVTTVReXhOUVVGTkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc01rUkJRV3RDTEVWQlFVVXNZVUZCWVN4RlFVRkZPMmRDUVVONlJDeFBRVUZQTEVWQlFVVXNTVUZCU1R0aFFVTmtMRU5CUVVNc1EwRkJRenRaUVVOSUxFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXg1UkVGQlowSXNSVUZCUlN4UlFVRlJMRU5CUVVNc1EwRkJRenRaUVVOd1JDeFBRVUZQTEVsQlFVa3NRMEZCUXp0UlFVTmtMRU5CUVVNc1EwRkJRenRSUVRKSVRTeHpRMEZCYVVNc1IwRkJSeXhIUVVGVExFVkJRVVU3V1VGRGNrUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUzBGQlN5eFhRVUZYTEVWQlFVVTdaMEpCUXpGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdiMEpCUTFvc2EwSkJRV3RDTEVWQlFVVXNSVUZCUlR0dlFrRkRkRUlzWjBKQlFXZENMRVZCUVVVc1JVRkJSVHR2UWtGRGNFSXNZMEZCWXl4RlFVRkZMRWxCUVVrN2FVSkJRM0pDTEVOQlFVTXNRMEZCUXp0aFFVTktPMUZCUTBnc1EwRkJReXhEUVVGRE8xRkJSVVk3TzFkQlJVYzdVVUZEU3l4cFEwRkJORUlzUjBGQlJ5eERRVU55UXl4TFFVRTBReXhGUVVNMVF5eG5Ra0ZCYTBNc1JVRkRla0lzUlVGQlJUczdXVUZEV0N4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eExRVUZMTEZkQlFWY3NSVUZCUlR0blFrRkRNVU1zVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dG5Ra0ZETVVNc1RVRkJUU3huUWtGQlowSXNSMEZCUnl3MFJFRkJiVUlzUTBGQlF5eFJRVUZSTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yZENRVU51UlN4SlFVRkpMR2RDUVVGblFpeERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEc5Q1FVRnZRaXhGUVVGRk8yOUNRVU55UlN4TlFVRk5MRGhDUVVFNFFpeEhRVU5zUXl3MFJVRkJhVU1zUTBGREwwSXNVVUZCVVN4RlFVTlNMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRMVlzWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGRGVrSXNaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSVUZEZWtJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVWQlEyWXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkRiRUlzUTBGQlF6dHZRa0ZEU2l4SlFVRkpMRGhDUVVFNFFpeEpRVUZKTEVsQlFVa3NSVUZCUlR0M1FrRkRNVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXpzMFFrRkRXaXhsUVVGbExFVkJRVVVzT0VKQlFUaENMRU5CUVVNc1QwRkJUenQ1UWtGRGVFUXNRMEZCUXl4RFFVRkRPM2RDUVVOSUxHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhWUVVGVk96UkNRVU5vUXl3NFFrRkJPRUlzUTBGQlF5eHRRa0ZCYlVJc1EwRkJRenR4UWtGRGRFUTdhVUpCUTBZN2NVSkJRVTBzU1VGQlNTeG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzI5Q1FVTjBReXhuUWtGQlowSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hIUVVGSExESkZRVUZuUXl4RFFVTnVSU3d3UkVGQlpTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFVkJRMnBETEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVWQlEzcENMR2RDUVVGblFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRVZCUTNwQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RlFVTm1MRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRMnhDTEVOQlFVTTdhVUpCUTBnN1owSkJRMFFzU1VGQlNTeG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFTkJRVU1zVlVGQlZTeEZRVUZGTzI5Q1FVTjBReXhyUkVGQlV5eERRVU5RTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUTFnc2MwVkJRVEpDTEVOQlFVTTdkMEpCUXpGQ0xHMUNRVUZ0UWl4RlFVRkZMR2RDUVVGblFpeERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRlZPM0ZDUVVONFJDeERRVUZETEVOQlEwZ3NRMEZCUXp0dlFrRkRSaXhuUWtGQlowSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF6dHZRa0ZETVVNc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1IwRkJSeXh4UkVGQldTeERRVU16UXl3MFJFRkJhVUlzUTBGRFppeG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFTkJRVU1zVlVGQlZTeEZRVU5zUXl4blFrRkJaMElzUlVGRGFFSXNaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSVUZEZWtJc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkRNVUlzUTBGRFJpeERRVUZETzI5Q1FVTkdMRWxCUTBVc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNN2QwSkJRemRDTEhGRlFVRmxMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2QwSkJRM0JETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhGUVVOMlF6dDNRa0ZEUVN4blFrRkJaMElzUTBGQlF5eE5RVUZOTEVOQlFVTXNZMEZCWXl4SFFVRkhMR3RGUVVGMVFpeERRVU01UkN4blFrRkJaMElzUTBGQlF5eE5RVUZOTEVOQlFVTXNWVUZCVlN4RlFVTnNReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkRjRUlzUTBGQlF6dHhRa0ZEU0R0cFFrRkRSanR4UWtGQlRUdHZRa0ZEVEN4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYjBKQlFXOUNMRVZCUVVVN2QwSkJRMjVETEUxQlFVMHNSMEZCUnl4SFFVRkhMR2RIUVVGeFF5eERRVU12UXl4TFFVRkxMRVZCUTB3c1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGRFZpeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZEY2tNc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGRFdpeG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFTkJRM2hDTEVOQlFVTTdkMEpCUTBZc1NVRkJTU3hIUVVGSExFTkJRVU1zVlVGQlZTeEZRVUZGT3pSQ1FVTnNRaXhuUWtGQlowSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhIUVVGSExFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTTdlVUpCUXk5RE8zZENRVU5FTEVsQlFVa3NSMEZCUnl4RFFVRkRMRmRCUVZjc1JVRkJSVHMwUWtGRGJrSXNUMEZCVHl4SlFVRkpMRU5CUVVNN2VVSkJRMkk3Y1VKQlEwWTdiMEpCUTBRc2MwUkJRWE5FTzI5Q1FVTjBSQ3huUWtGQlowSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUenQzUWtGRE1VSXNjMEpCUVdkQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNiVU5CUXpWQ0xFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1EwRkRka0lzWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGRGVrSXNaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZETVVJc1EwRkJRenR2UWtGRlNpeEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVWQlFVVTdkMEpCUTJoRExDdERRVUVyUXp0M1FrRkRMME1zU1VGRFJTd3lSVUZCYzBJc1EwRkRjRUlzWjBKQlFXZENMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUlVGRE5VSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkRWaXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRVVVzWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVU4wUkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVOa0xFVkJRMFE3TkVKQlEwRXNUMEZCVHl4TFFVRkxMRU5CUVVNN2VVSkJRMlE3ZDBKQlEwUXNaMEpCUVdkQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEcxQ1FVRnRRanMwUWtGRGRFTXNPRVpCUVhsRExFTkJRM1pETEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVWQlF6VkNMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRMVlzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZEZGtRc1EwRkJRenR4UWtGRFREdHZRa0ZGUkN3clEwRkJLME03YjBKQlF5OURMRzlDUVVGdlFqdHZRa0ZEY0VJc1owSkJRV2RDTEVOQlFVTXNSMEZCUnl4RFFVRkRMR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRU5CUXpsRUxHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRM3BDTEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlF6RkNMRU5CUVVNN2IwSkJSVVlzVFVGQlRTeFZRVUZWTEVkQlFVY3NaMEpCUVdkQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXp0dlFrRkRhRVFzVFVGQlRTeDNRa0ZCZDBJc1IwRkROVUlzWjBKQlFXZENMRU5CUVVNc1IwRkJSeXhEUVVGRExHTkJRV01zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hEUVVOdVJDeEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlEycERMRU5CUVVNN2IwSkJRMG9zU1VGRFJTeERRVUZETEZWQlFWVXNTMEZCU3l4SlFVRkpMRWxCUVVrc1EwRkJReXgzUWtGQmQwSXNRMEZCUXp0M1FrRkRiRVFzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVR0M1FrRkRaaXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRWRCUVVjc1EwRkJReXg1UTBGQmVVTXNSVUZETDBRN2QwSkJRMEVzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenR4UWtGRGFrTTdiMEpCUlVRc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEc5Q1FVRnZRaXhGUVVGRk8zZENRVU51UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE96UkNRVU5hTEd0Q1FVRnJRaXhGUVVGRk8yZERRVU5zUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1UwRkJVeXhEUVVGRExFVkJRVVVzU1VGQlNUczJRa0ZEYkVRN2VVSkJRMFlzUTBGQlF5eERRVUZETzNkQ1FVTklMREpDUVVFeVFqdHhRa0ZETlVJN2VVSkJRVTBzU1VGQlNTeFZRVUZWTEVsQlFVa3NTVUZCU1N4RlFVRkZPM2RDUVVNM1FpeHRSVUZCYlVVN2QwSkJRMjVGTEVsQlFVa3NTMEZCU3l4RFFVRkRMRzlFUVVGblFpeERRVUZETEVWQlFVVTdORUpCUXpOQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR3RDUVVGclFpeERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSVHRuUTBGRGFrUXNaMEpCUVdkQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEcxQ1FVRnRRaXhIUVVGSExFbEJRVWtzUTBGQlF6czJRa0ZEYWtRN05FSkJRMFFzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hGUVVGRkxFTkJRVU1zYVVOQlEzaENMSEZGUVVFeVFpeERRVUZETEZOQlFWTXNSVUZCUlN4VlFVRlZMRU5CUVVNc1MwRkRja1FzTUVKQlFUQkNMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eHJRa0ZCYTBJc1NVRkRla1FzUTBGQlF5eERRVUZET3pSQ1FVTktMRGhFUVVFNFJEczBRa0ZET1VRc1QwRkJUeXhMUVVGTExFTkJRVU03ZVVKQlEyUTdkMEpCUlVRc0swSkJRU3RDTzNkQ1FVTXZRaXgzUkVGQmQwUTdkMEpCUTNoRUxIZEVRVUYzUkR0M1FrRkRlRVFzYlVKQlFXMUNPM2RDUVVOdVFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVU3TkVKQlEycEVMRzlHUVVGdlJqczBRa0ZEY0VZc1NVRkRSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdOQlFXTTdaME5CUTNwQ0xFTkJRVU1zTUVSQlFXZENMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZMEZCWXl4RFFVRkRMRVZCUTNoRU8yZERRVU5CTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN2IwTkJRMW9zYTBKQlFXdENMRVZCUVVVc1JVRkJSVHR2UTBGRGRFSXNaMEpCUVdkQ0xFVkJRVVVzUlVGQlJUdHZRMEZEY0VJc1kwRkJZeXhGUVVGRkxFbEJRVWs3YVVOQlEzSkNMRU5CUVVNc1EwRkJRenMyUWtGRFNqczBRa0ZGUkN4dFJVRkJiVVU3TkVKQlEyNUZMR2xGUVVGcFJUczBRa0ZEYWtVc01rUkJRVEpFT3pSQ1FVTXpSQ3hKUVVORkxFTkJRVU1zZDBKQlFYZENPMmREUVVONlFpeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUTBGQlF5eDVRMEZCZVVNc1JVRkRMMFE3WjBOQlEwRXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEZRVUZGTzI5RFFVTXhRaXhQUVVGUExIbEZRVUVyUWl4cFEwRkZMMElzVTBGQlV5eExRVU5hTEd0Q1FVRnJRaXhyUTBGRFlpeFRRVUZUTEVOQlFVTXNhMEpCUVd0Q0xFdEJReTlDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFbEJRVWtzUzBGRmRrSXNhMEpCUVd0Q0xFVkJRVVVzVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEV0QlJYUkVMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlEzcENMRU5CUVVNN1owTkJRMG9zUTBGQlF5eERRVUZETEVOQlFVTTdaME5CUTBnc1owSkJRV2RDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRzFDUVVGdFFpeEhRVUZITEVsQlFVa3NRMEZCUXpzMlFrRkRha1E3ZVVKQlEwWTdjVUpCUTBZN2IwSkJSVVFzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0M1FrRkRXaXd3UWtGQk1FSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHdENRVUZyUWp0eFFrRkRNVVFzUTBGQlF5eERRVUZETzJsQ1FVTktPMkZCUTBZN1dVRkRSQ3hQUVVGUExFdEJRVXNzUTBGQlF6dFJRVU5tTEVOQlFVTXNRMEZCUXp0UlFYbENUU3cwUWtGQmRVSXNSMEZCUnl4RFFVTm9ReXhMUVVFMFF5eEZRVU0xUXl4blFrRkJhME1zUlVGRE5VSXNSVUZCUlR0WlFVTlNMREJFUVVFd1JEdFpRVU14UkN3MFJFRkJORVE3V1VGRE5VUXNNRUpCUVRCQ08xbEJRekZDTEVsQlFVa3NkMFJCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdOQlFXTXNRMEZCUXl4RlFVRkZPMmRDUVVNMVF5eFBRVUZQTzJGQlExSTdXVUZEUkN4SlFVRkpMRTFCUVUwc1IwRkJSeXhuUWtGQlowSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM1pETEVsQlFVa3NUVUZCVFN4SFFVRkhMR2RDUVVGblFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkZka01zVFVGQlRTeFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeERRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVVN1owSkJRM2hFTEhWQ1FVRjFRaXhGUVVGRkxFbEJRVWs3WVVGRE9VSXNRMEZCUXl4RFFVRkRPMWxCUlVnc1RVRkJUU3hYUVVGWExFZEJRVWNzZVVWQlFXMUNMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRGFrUXNTVUZCU1N4WFFVRlhMRVZCUVVVN1owSkJRMllzVFVGQlRTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUTNaRExFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETzJGQlEzcERPMWxCUTBRc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRPMmRDUVVOd1FpeE5RVUZOTzJkQ1FVTk9MRTFCUVUwN1owSkJRMDRzVlVGQlZTeEZRVUZGTEV0QlFVczdaMEpCUTJwQ0xHOUNRVUZ2UWl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTA3WVVGRGNFTXNRMEZCUXl4RFFVRkRPMWxCUlVnc2IwUkJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRla0lzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hGUVVGRk8yZENRVU0zUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8yOUNRVU5hTEZkQlFWY3NSVUZCUlN4WFFVRlhPMmxDUVVONlFpeERRVUZETEVOQlFVTTdZVUZEU2p0UlFVTklMRU5CUVVNc1EwRkJRenRSUVVWTkxIVkRRVUZyUXl4SFFVRkhMRU5CUXpORExFdEJRVFJETEVWQlF6VkRMRmRCUVRoRExFVkJRemxETEdkQ1FVRnJReXhGUVVOc1F5eEZRVUZGTzFsQlEwWXNaMFZCUVdkRk8xbEJRMmhGTEUxQlFVMHNRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhEUVVGRExFZEJRVWNzYjBSQlFWa3NRMEZEYWtNc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkRla0lzWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGRGVrSXNTVUZCU1N4RFFVTk1MRU5CUVVNN1dVRkZSaXhOUVVGTkxFOUJRVThzUjBGQlJ5eDNSVUZCYTBJc1EwRkJRenRuUWtGRGFrTXNTVUZCU1N4RlFVRkZMRmRCUVZjN1owSkJRMnBDTEVOQlFVTXNSVUZCUlN4TFFVRkxPMmRDUVVOU0xFTkJRVU1zUlVGQlJTeExRVUZMTzJkQ1FVTlNMRmRCUVZjc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEhOQ1FVRnpRanRuUWtGRE9VTXNaVUZCWlN4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zTUVKQlFUQkNPMmRDUVVOMFJDeFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXh2UWtGQmIwSTdaMEpCUXpGRExGZEJRVmNzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMSE5DUVVGelFqdG5Ra0ZET1VNc1YwRkJWeXhGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNjMEpCUVhOQ08yZENRVU01UXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eHZRa0ZCYjBJN1owSkJRekZETEU5QlFVOHNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHdENRVUZyUWp0blFrRkRkRU1zWlVGQlpTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1owTkJRV2RETzJkQ1FVTTFSQ3huUWtGQlowSXNSVUZCUlN4TFFVRkxMRU5CUVVNc1VVRkJVU3hMUVVGTExFZEJRVWM3WVVGRGVrTXNRMEZCUXl4RFFVRkRPMWxCUlVnc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRE5VSXNhMEpCUVd0Q0xHdERRVU5pTEZOQlFWTXNRMEZCUXl4clFrRkJhMElzUzBGREwwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUzBGQlN5eEhRVU53UWp0aFFVTkdMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJSVW9zVFVGQlRTeFRRVUZUTEVkQlFVY3NUMEZCVHl4RFFVRkRMR2RDUVVGblFqdG5Ra0ZEZUVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eFRRVUZUTzJkQ1FVTnVRaXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4VFFVRlRMRVZCUVVVc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFsQlJUTkRMSE5GUVVGaExFTkJRVU1zVDBGQlR5eEZRVUZGTzJkQ1FVTnlRaXhOUVVGTkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGFFSXNVMEZCVXp0aFFVTldMRU5CUVVNc1EwRkJRenRaUVVWSUxFMUJRVTBzV1VGQldTeEhRVUZITERoRlFVRXlRaXhEUVVNNVF5eG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFVkJRM1pDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUTFnc1EwRkJRenRaUVVOR0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU03WjBKQlF6VkNMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5d3lRa0ZCTWtJc1JVRkJSVHRuUWtGRE0wTXNUMEZCVHp0aFFVTlNMRU5CUVVNc1EwRkJRenRaUVVOSUxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdaMEpCUTFvc1pVRkJaU3hGUVVGRkxFOUJRVTg3WjBKQlEzaENMR05CUVdNc1JVRkJSU3hQUVVGUE8yZENRVU4yUWl4cFFrRkJhVUlzUlVGQlJTeFpRVUZaTzJkQ1FVTXZRaXhwUWtGQmFVSXNSVUZCUlN4RlFVRkZPMkZCUTNSQ0xFTkJRVU1zUTBGQlF6dFJRVU5NTEVOQlFVTXNRMEZCUXp0UlFVVk5MSFZDUVVGclFpeEhRVUZITEVOQlFVTXNSVUZETlVJc1RVRkJUU3hGUVVOT0xFMUJRVTBzUjBGSlVDeEZRVUZGTEVWQlFVVTdXVUZEU0N4TlFVRk5MRU5CUVVNc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eEhRVUZITEc5RVFVRlpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xbEJSWHBGTEUxQlFVMHNUMEZCVHl4SFFVRkhMREJFUVVGbExFTkJRVU03WjBKQlF6bENMRWxCUVVrc1JVRkJSU3hQUVVGUE8yZENRVU5pTEVOQlFVTXNSVUZCUlN4TFFVRkxPMmRDUVVOU0xFTkJRVU1zUlVGQlJTeExRVUZMTzJkQ1FVTlNMRmRCUVZjc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEhOQ1FVRnpRanRuUWtGRE9VTXNaVUZCWlN4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zTUVKQlFUQkNPMmRDUVVOMFJDeFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXh2UWtGQmIwSTdaMEpCUXpGRExGZEJRVmNzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMSE5DUVVGelFqdG5Ra0ZET1VNc1YwRkJWeXhGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNjMEpCUVhOQ08yZENRVU01UXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eHZRa0ZCYjBJN1owSkJRekZETEU5QlFVOHNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHdENRVUZyUWp0blFrRkRkRU1zWlVGQlpTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1owTkJRV2RETzJGQlF6ZEVMRU5CUVVNc1EwRkJRenRaUVVWSUxFOUJRVThzVDBGQlR5eERRVUZETzFGQlEycENMRU5CUVVNc1EwRkJRenRSUVVWTkxIRkRRVUZuUXl4SFFVRkhMRU5CUTNwRExFdEJRVFJETEVWQlF6VkRMRmRCUVRSRExFVkJRelZETEdkQ1FVRnJReXhGUVVNMVFpeEZRVUZGTzFsQlExSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGbEJRVmtzUlVGQlJUdG5Ra0ZETTBJc1RVRkJUU3hGUVVGRkxGbEJRVmtzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNN1owSkJSWEJETEdkRFFVRm5RenRuUWtGRGFFTXNTVUZEUlN4WlFVRlpMRU5CUVVNc1NVRkJTU3hMUVVGTExFMUJRVTA3YjBKQlF6VkNMRzFFUVVGWExFTkJRVU1zV1VGQldTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZEZGtRN2IwSkJRMEVzYzBWQlFXRXNRMEZCUXl4WlFVRlpMRVZCUVVVN2QwSkJRekZDTEd0Q1FVRnJRaXhGUVVOb1FpeFpRVUZaTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmxCUVZrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0eFFrRkRkRVFzUTBGQlF5eERRVUZETzI5Q1FVTklMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zWVVGQllTeERRVUZETEc5RVFVRmpMRU5CUVVNc1EwRkJRenR2UWtGRGFrUXNUMEZCVHp0cFFrRkRVanRuUWtGRlJDeE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxFZEJRVWNzV1VGQldTeERRVUZETzJkQ1FVVXhSQ3dyUTBGQkswTTdaMEpCUXk5RExFbEJRMFVzV1VGQldTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJRenR2UWtGRE9VSXNhMEpCUVd0Q08yOUNRVU5zUWl4clJFRkJWU3hEUVVOU0xHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVU01UWl4blFrRkJaMElzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkRPVUlzYTBKQlFXdENMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRM0pDTEd0Q1FVRnJRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVU4wUWl4SFFVRkhMQ3RFUVVGelFpeEZRVU14UWp0dlFrRkRRU3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEdGQlFXRXNRMEZCUXl4dlJFRkJZeXhEUVVGRExFTkJRVU03YjBKQlEycEVMRTlCUVU4N2FVSkJRMUk3WjBKQlJVUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0dlFrRkROVUlzYTBKQlFXdENMR3REUVVOaUxGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJc1MwRkRMMElzUTBGQlF5eFpRVUZaTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1NVRkJTU3hIUVVONFFqdHBRa0ZEUml4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRFNpeHhSVUZCY1VVN1owSkJRM0pGTEZGQlFWRTdaMEpCUTFJc2MwVkJRV0VzUTBGQlF5eFpRVUZaTEVWQlFVVTdiMEpCUXpGQ0xHdENRVUZyUWl4RlFVRkZMRmxCUVZrc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRE8ybENRVU40UlN4RFFVRkRMRU5CUVVNN1owSkJRMGdzYTBSQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxEUkVRVUZ0UWl4RFFVRkRMRU5CUVVNN1lVRkROME03YVVKQlFVMDdaMEpCUTB3c1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNSMEZCUnl4dlJFRkJXU3hEUVVOcVF5eG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVU42UWl4blFrRkJaMElzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RlFVTjZRaXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZEY0VJc1EwRkJRenRuUWtGRlJqczdPM2REUVVkM1FqdG5Ra0ZGZUVJc1RVRkJUU3hGUVVGRkxIbENRVUY1UWl4RlFVRkZMSFZDUVVGMVFpeEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJRenRuUWtGRE1VVXNUVUZCVFN4RFFVRkRMR05CUVdNc1JVRkJSU3haUVVGWkxFTkJRVU1zUjBGRGJFTXNWMEZCVnl4TFFVRkxMRTlCUVU4N2IwSkJRM0pDTEVOQlFVTXNRMEZCUXl4RFFVRkRMSGxDUVVGNVFpeEZRVUZGTEhWQ1FVRjFRaXhEUVVGRE8yOUNRVU4wUkN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUlc1Q0xFMUJRVTBzVDBGQlR5eEhRVUZITERKRVFVRm5RaXhEUVVGRE8yOUNRVU12UWl4SlFVRkpMRVZCUVVVc1YwRkJWenR2UWtGRGFrSXNRMEZCUXl4RlFVRkZMRXRCUVVzN2IwSkJRMUlzUTBGQlF5eEZRVUZGTEV0QlFVczdiMEpCUTFJc1YwRkJWeXhGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNjMEpCUVhOQ08yOUNRVU01UXl4bFFVRmxMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5d3dRa0ZCTUVJN2IwSkJRM1JFTEZOQlFWTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHOUNRVUZ2UWp0dlFrRkRNVU1zVjBGQlZ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2MwSkJRWE5DTzI5Q1FVTTVReXhYUVVGWExFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4elFrRkJjMEk3YjBKQlF6bERMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEc5Q1FVRnZRanR2UWtGRE1VTXNUMEZCVHl4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYTBKQlFXdENPMjlDUVVOMFF5eGxRVUZsTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhuUTBGQlowTTdiMEpCUXpWRUxHTkJRV003YjBKQlEyUXNXVUZCV1R0cFFrRkRZaXhEUVVGRExFTkJRVU03WjBKQlEwZ3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0dlFrRkROVUlzYTBKQlFXdENMR3REUVVOaUxGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJc1MwRkRMMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhIUVVOd1FqdHBRa0ZEUml4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRFNpeHpSVUZCWVN4RFFVRkRMRTlCUVU4c1JVRkJSVHR2UWtGRGNrSXNUVUZCVFN4RlFVRkZMRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8ybENRVU53UXl4RFFVRkRMRU5CUVVNN1owSkJRMGdzVFVGQlRTeFpRVUZaTEVkQlFVY3NPRVZCUVRKQ0xFTkJRemxETEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUlVGRGRrSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkRXQ3hEUVVGRE8yZENRVU5HTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTTdiMEpCUXpWQ0xFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl3eVFrRkJNa0lzUlVGQlJUdHZRa0ZETTBNc1QwRkJUenRwUWtGRFVpeERRVUZETEVOQlFVTTdaMEpCUTBnc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dHZRa0ZEV2l4bFFVRmxMRVZCUVVVc1QwRkJUenR2UWtGRGVFSXNZMEZCWXl4RlFVRkZMRTlCUVU4N2IwSkJRM1pDTEdsQ1FVRnBRaXhGUVVGRkxGbEJRVms3YjBKQlF5OUNMR2xDUVVGcFFpeEZRVUZGTEVWQlFVVTdhVUpCUTNSQ0xFTkJRVU1zUTBGQlF6dGhRVU5LTzFGQlEwZ3NRMEZCUXl4RFFVRkRPMUZCUlUwc2MwTkJRV2xETEVkQlFVY3NRMEZETVVNc1YwRkJOa01zUlVGRE4wTXNaMEpCUVd0RExFVkJRelZDTEVWQlFVVTdXVUZEVWl4TlFVRk5MRU5CUVVNc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eEhRVUZITEc5RVFVRlpMRU5CUTJwRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRM3BDTEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVWQlEzcENMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVU53UWl4RFFVRkRPMWxCUTBZc1RVRkJUU3hQUVVGUExFZEJRVWNzY1VSQlFWVXNRMEZCUXp0blFrRkRla0lzU1VGQlNTeEZRVUZGTEZkQlFWYzdaMEpCUTJwQ0xFTkJRVU1zUlVGQlJTeExRVUZMTzJkQ1FVTlNMRU5CUVVNc1JVRkJSU3hMUVVGTE8yZENRVU5TTEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExITkNRVUZ6UWp0blFrRkRPVU1zWlVGQlpTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc01FSkJRVEJDTzJkQ1FVTjBSQ3hUUVVGVExFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4dlFrRkJiMEk3WjBKQlF6RkRMRmRCUVZjc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEhOQ1FVRnpRanRuUWtGRE9VTXNWMEZCVnl4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYzBKQlFYTkNPMmRDUVVNNVF5eFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXh2UWtGQmIwSTdaMEpCUXpGRExFOUJRVThzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR3RDUVVGclFqdG5Ra0ZEZEVNc1pVRkJaU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNNRUpCUVRCQ08yRkJRM1pFTEVOQlFVTXNRMEZCUXp0WlFVVklMRWxCUVVrc1QwRkJUeXhEUVVGRExFbEJRVWtzUzBGQlN5eFhRVUZYTEVWQlFVVTdaMEpCUTJoRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdiMEpCUTFvc1owSkJRV2RDTEVWQlFVVXNUMEZCVHp0dlFrRkRla0lzWlVGQlpTeEZRVUZGTEU5QlFVODdhVUpCUTNwQ0xFTkJRVU1zUTBGQlF6dGhRVU5LTzJsQ1FVRk5PMmRDUVVOTUxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU03YjBKQlF6VkNMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5d3lRa0ZCTWtJc1JVRkJSVHR2UWtGRE0wTXNUMEZCVHp0cFFrRkRVaXhEUVVGRExFTkJRVU03WjBKQlEwZ3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJRenR2UWtGRFdpeFpRVUZaTEVWQlFVVXNTVUZCU1R0dlFrRkRiRUlzWlVGQlpTeEZRVUZGTEU5QlFVODdiMEpCUTNoQ0xHTkJRV01zUlVGQlJTeFBRVUZQTzJsQ1FVTjRRaXhEUVVGRExFTkJRVU03WVVGRFNqdFJRVU5JTEVOQlFVTXNRMEZCUXp0UlFUaDJRazBzYjBKQlFXVXNSMEZCUnl4RFFVRlBMRVZCUXk5Q0xGTkJRVk1zUlVGRFZDeFpRVUZaTEVWQlFVVXNZVUZCWVN4RlFVTXpRaXh6UWtGQmMwSXNSMEZCUnl4TFFVRkxMRWRCU3k5Q0xFVkJRVVVzUlVGQlJUczdXVUZEU0N3eVJVRkJNa1U3V1VGRE0wVXNPRUpCUVRoQ08xbEJRemxDTEVsQlFVa3NRMEZCUXl4cFJVRkJiMElzUTBGQlF5eFRRVUZUTEVOQlFVTXNSVUZCUlR0blFrRkRjRU1zVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4NVEwRkJReXhEUVVGRExEUkNRVUUwUWl4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVOc1JEdFpRVU5FTEUxQlFVMHNVVUZCVVN4SFFVRkhMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGRmFFTXNhMFJCUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUlM5Q0xFbEJRVWtzVVVGQlVTeExRVUZMTEhWRVFVRmpMRVZCUVVVN1owSkJReTlDTEVsQlFVazdiMEpCUTBZc1UwRkJVeXhIUVVGSExEUkVRVUZsTEVOQlEzcENMRTFCUVUwc05rUkJRVmtzUTBGQlF5eE5RVUZOTEZOQlFWTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhGUVVNeFF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVTm1MRU5CUVVNN2FVSkJRMGc3WjBKQlFVTXNUMEZCVHl4TFFVRlZMRVZCUVVVN2IwSkJRMjVDTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03YjBKQlEzQkNMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zZVVOQlFVTXNRMEZCUXl3MFFrRkJORUlzUTBGQlF5eERRVUZETEVOQlFVTTdhVUpCUTJ4RU8yRkJRMFk3V1VGRlJDdzBSRUZCTkVRN1dVRkROVVFzTkVSQlFUUkVPMWxCUXpWRUxFMUJRVTBzVFVGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMR2RDUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZETEdsQ1FVRnBRaXh0UkVGRGFrUXNVMEZCVXl4RFFVTlZMRXRCUVVrc0swUkJRV3RDTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVWNFJDeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZPMmRDUVVOWUxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlExWXNjMFpCUVhOR0xFTkJRM1pHTEVOQlFVTTdaMEpCUTBZc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eDVRMEZCUXl4RFFVRkRMSGxDUVVGNVFpeERRVUZETEVOQlFVTXNRMEZCUXp0aFFVTXZRenRaUVVWRUxFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0WlFVTTFReXhKUVVGSkxFTkJRVU1zYVVKQlFXZENMR0ZCUVdoQ0xHZENRVUZuUWl4MVFrRkJhRUlzWjBKQlFXZENMRU5CUVVVc1QwRkJUeXhIUVVGRk8yZENRVU01UWl4SlFVRkpPMjlDUVVOR0xGTkJRVk1zUjBGQlJ5eE5RVUZOTERSRVFVRmxMRU5CUVVNc1UwRkJVeXhGUVVGRk8zZENRVU16UXl4blFrRkJaMElzUlVGQlJTd3dSVUZCYVVNN2NVSkJRM0JFTEVOQlFVTXNRMEZCUXp0cFFrRkRTanRuUWtGQlF5eFBRVUZQTEV0QlFWVXNSVUZCUlR0dlFrRkRia0lzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4blJFRkJaMFFzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0cFFrRkRlRVU3WjBKQlJVUXNTVUZCU1N4VFFVRlRMRU5CUVVNc1NVRkJTU3hIUVVGSExDdEVRVUZ6UWl4RlFVRkZPMjlDUVVNelF5eE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVTmlMSGxEUVVGRExFTkJRVU1zYlVKQlFXMUNMRVZCUVVVN2QwSkJRM0pDTEU5QlFVOHNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zSzBSQlFYTkNMRWRCUVVjc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTzNGQ1FVTnFSU3hEUVVGRExFTkJRMGdzUTBGQlF6dHBRa0ZEU0R0aFFVTkdPMWxCUlVRc1NVRkJTU3h6UWtGQmMwSXNSVUZCUlR0blFrRkRNVUlzVFVGQlRTeFBRVUZQTEVkQlFVY3NWVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zTUVOQlFVVXNUMEZCVHl4RFFVRkRPMmRDUVVNMVF5eHJSVUZCYTBVN1owSkJRMnhGTEc5RFFVRnZRenRuUWtGRGNFTXNORVJCUVRSRU8yZENRVU0xUkN4TlFVRk5MRmRCUVZjc1IwRkJSeXhQUVVGUExFbEJRVWtzTUVSQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRuUWtGRmRFUXNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEZkQlFWY3NTVUZCU1N4VFFVRlRMRU5CUVVNc1EwRkJRenRoUVVOMFJEdFpRVVZFTEUxQlFVMHNUMEZCVHl4SFFVTllMRmRCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETERCRFFVRkZMRTlCUVU4c1MwRkJTU3hEUVVGRExFMUJRVTBzZFVSQlFWVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJSUzlFTEUxQlFVMHNXVUZCV1N4SFFVRkhMSE5GUVVGaExFTkJRMmhETEdGQlFXRXNSVUZEWWp0blFrRkRSU3hOUVVGTk8yRkJRMUFzUlVGRFJDeExRVUZMTEVOQlF6SkRMRU5CUVVNN1dVRkZia1FzVDBGQlR5eEpRVUZKTEU5QlFVOHNRMEZEYUVJc1EwRkJUeXhQUVVGUExFVkJRVVVzVFVGQlRTeEZRVUZGTEVWQlFVVTdPMmRDUVVONFFpeEpRVUZKTzI5Q1FVTkdMRWxCUVVrc1EwRkJReXhMUVVGTExHMURRVU5NTEVsQlFVa3NRMEZCUXl4TFFVRkxMRXRCUTJJc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJUczBRa0ZEVWl4UlFVRlJPelJDUVVOU0xFVkJRVVVzUlVGQlJTeE5RVUZOT3pSQ1FVTldMRTlCUVU4N05FSkJRMUFzVDBGQlR5eEZRVUZGTEVsQlFVa3NRMEZCUXl4SFFVRkhMRVZCUVVVN2VVSkJRM0JDTEVkQlEwWXNRMEZCUXp0dlFrRkRSaXhOUVVGTkxHVkJRV1VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dHZRa0ZEY0VRc1NVRkJTU3hEUVVGRExHVkJRV1VzUlVGQlJUdDNRa0ZEY0VJc1NVRkJTU3hEUVVGRExIZENRVUYzUWl4RlFVRkZMRU5CUVVNN2QwSkJRMmhETEUxQlFVMHNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJRenR4UWtGRE4wTTdiMEpCUTBRc1NVRkJTU3huUWtGQlpTeGhRVUZtTEdWQlFXVXNkVUpCUVdZc1pVRkJaU3hEUVVGRkxFdEJRVXNzWVVGQldTeFBRVUZQTEVWQlFVVTdkMEpCUXpkRExFMUJRVTBzWlVGQlpTeERRVUZETEV0QlFVc3NRMEZCUXp0eFFrRkROMEk3YjBKQlEwUXNTVUZEUlN4WFFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHMUNRVUZ0UWl3d1EwRkJSU3hGUVVGRkxFMUJRVXNzV1VGQldTeERRVUZETEVWQlFVVTdkMEpCUTNSRUxGZEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNaVUZCWlN3d1EwRkJSU3hGUVVGRkxFMUJRVXNzV1VGQldTeERRVUZETEVWQlFVVXNSVUZEYkVRN2QwSkJRMEVzU1VGQlNTeERRVUZETEhsQ1FVRjVRaXhEUVVGRExGbEJRVmtzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0eFFrRkRjRVE3YjBKQlEwUXNUMEZCVHl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8ybENRVU4yUWp0blFrRkJReXhQUVVGUExFdEJRVlVzUlVGQlJUdHZRa0ZEYmtJc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0dlFrRkRja0lzVFVGQlRTeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRkRMSGxEUVVGRExFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YVVKQlEycEVPM2RDUVVGVE8yOUNRVU5TTEVsQlFVa3NRMEZCUXl4elFrRkJjMElzUlVGQlJUdDNRa0ZETTBJc2IwUkJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN2NVSkJRekZDTzJsQ1FVTkdPMWxCUTBnc1EwRkJReXhGUVVOR0xFTkJRVU03VVVGRFNpeERRVUZETEVWQlFVTTdVVUZGUmpzN1YwRkZSenRSUVVOTExIVkNRVUZyUWl4SFFVRkhMRU5CUXpOQ0xGbEJRVzlETEVWQlEzQkRMRk5CUVdVc1JVRkRaaXh6UWtGQlowTXNSVUZEYUVNc1JVRkJSVHRaUVVOR0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU03WjBKQlF6VkNMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5d3lRa0ZCTWtJc1JVRkJSVHRuUWtGRE0wTXNXVUZCV1R0aFFVTmlMRU5CUVVNc1EwRkJRenRaUVVWSUxFbEJRVWs3WjBKQlEwWXNUVUZCVFN4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRE8yOUNRVU42UWl4VFFVRlRPMjlDUVVOVUxGbEJRVms3YjBKQlExb3NjMEpCUVhOQ08ybENRVU4yUWl4RFFVRkRMRU5CUVVNN1lVRkRTanRaUVVGRExFOUJRVThzUzBGQlZTeEZRVUZGTzJkQ1FVTnVRaXh6UlVGQllTeERRVUZETEZsQlFWa3NSVUZCUlR0dlFrRkRNVUlzVTBGQlV5eEZRVUZGTEVsQlFVazdhVUpCUTJoQ0xFTkJRVU1zUTBGQlF6dG5Ra0ZEU0N4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExHRkJRV0VzUTBGQlF5eHZSRUZCWXl4RFFVRkRMRU5CUVVNN1owSkJRMnBFTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN2IwSkJRMW9zV1VGQldTeEZRVUZGTEV0QlFVc3NRMEZCUXl4UFFVRlBMRWxCUVVrc2VVTkJRVU1zUTBGQlF5eDVRa0ZCZVVJc1EwRkJRenRwUWtGRE5VUXNRMEZCUXl4RFFVRkRPMkZCUTBvN1VVRkRTQ3hEUVVGRExFVkJRVU03VVVGRlRTd3dRa0ZCY1VJc1IwRkJSeXhEUVVGUExGTkJRV1VzUlVGQlJTeEZRVUZGTzFsQlEzaEVMR2REUVVGblF6dFpRVU5vUXl4eFNFRkJjVWc3V1VGRGNrZ3NUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZGTjBJc1RVRkJUU3haUVVGWkxFZEJRVWNzVFVGQlRTdzBSRUZCWlN4RFFVRkRMRk5CUVZNc1JVRkJSVHRuUWtGRGNFUXNaMEpCUVdkQ0xFVkJRVVVzYVVKQlFXbENPMkZCUTNCRExFTkJRVU1zUTBGQlF6dFpRVVZJTEVsQlFVa3NZMEZCWXl4SFFVRkhMRTFCUVUwc2RVUkJRVlVzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0WlFVVndSQ3d5UlVGQk1rVTdXVUZETTBVc2FVSkJRV2xDTzFsQlEycENMRWxCUVVrc1UwRkJVeXhEUVVGRExFbEJRVWtzUzBGQlN5eDFSRUZCWXl4RlFVRkZPMmRDUVVOeVF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4TlFVRk5MSEZGUVVGdlFpeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRPMmRDUVVWMlJDeEpRVUZKTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVWQlFVVXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF6dG5Ra0ZEY2tRc1NVRkJTU3hMUVVGTExFZEJRVWNzVFVGQlRTeEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1IwRkJSeXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdaMEpCUlRsRExFbEJRVWtzUzBGQlN5eEhRVUZITEdsQ1FVRnBRaXhGUVVGRk8yOUNRVU0zUWl4TFFVRkxMRWRCUVVjc2FVSkJRV2xDTEVOQlFVTTdiMEpCUXpGQ0xFMUJRVTBzUjBGQlJ5eExRVUZMTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hIUVVGSExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0cFFrRkRNME03WjBKQlJVUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0blFrRkRhRVFzVFVGQlRTeERRVUZETEUxQlFVMHNSMEZCUnl4TlFVRk5MRU5CUVVNN1owSkJRM1pDTEUxQlFVMHNRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8yZENRVU55UWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUlN4RFFVRkRPMmRDUVVWNlF5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRuUWtGRk5VTXNZMEZCWXl4SFFVRkhMRTFCUVUwc1EwRkJReXhUUVVGVExFTkJRVU1zZFVSQlFXTXNRMEZCV1N4RFFVRkRPMkZCUXpsRU8xbEJSVVFzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTzJkQ1FVTnNReXhyUkVGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhqUVVGakxHRkJRV0VzUTBGQlF5eERRVUZETzJGQlF6VkVPMUZCUTBnc1EwRkJReXhGUVVGRE8xRkJSVTBzYTBKQlFXRXNSMEZCUnl4RFFVTjBRaXhGUVVGRkxITkNRVUZ6UWl4RlFVRkZMRWRCUVVjc1JVRkJSU3h6UWtGQmMwSXNSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkRPVVFzUlVGQlJUdFpRVU5HTEVsQlFVazdaMEpCUTBZc1RVRkJUU3hQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVRkRPMmRDUVVNM1JDeE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU03WjBKQlJUZEVMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVY3NiMFZCUVRKQ0xFTkJRekZETEVWQlFVVXNUMEZCVHl4RlFVRkZMRTlCUVU4c1JVRkJSU3hGUVVOd1FpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVTllMRU5CUVVNN1owSkJSVVlzVFVGQlRTeFRRVUZUTEVkQlFVY3NUVUZCVFN3eVJFRkJVU3hEUVVGRE8yOUNRVU12UWl4WFFVRlhMRVZCUVVVc1QwRkJUenR2UWtGRGNFSXNWVUZCVlN4RlFVRkZMRU5CUVVNc1MwRkJTeXhGUVVGRkxFdEJRVXNzUlVGQlJTeExRVUZMTEVWQlFVVXNTMEZCU3l4RFFVRkRPMmxDUVVONlF5eERRVUZETEVOQlFVTTdaMEpCUlVnc1RVRkJUU3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVGRE8yOUNRVU16UXl4TlFVRk5MRVZCUVVVc1EwRkJRenR2UWtGRFZDeE5RVUZOTEVWQlFVVXNRMEZCUXp0cFFrRkRWaXhEUVVGRExFTkJRVU03WjBKQlJVZ3NTVUZCU1N4elFrRkJjMElzUlVGQlJUdHZRa0ZETVVJc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RFFVRkRMRmxCUVZrc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dHZRa0ZEYWtRc1NVRkJTU3hEUVVGRExIbENRVUY1UWl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8yOUNRVU0zUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVOWU8zZENRVU5GTEd0Q1FVRnJRaXhGUVVGRkxFVkJRVVVzUTBGQlF5eFpRVUZaTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1NVRkJTU3hGUVVGRk8zRkNRVU5vUkN4RlFVTkVMRWRCUVVjc1JVRkJSVHQzUWtGRFNDeEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMR0ZCUVdFc1EwRkJReXh2UkVGQll5eERRVUZETEVOQlFVTTdiMEpCUTI1RUxFTkJRVU1zUTBGRFJpeERRVUZETzJsQ1FVTklPM0ZDUVVGTk8yOUNRVU5NTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUTFnN2QwSkJRMFVzYlVKQlFXMUNMRVZCUVVVc1dVRkJXVHR4UWtGRGJFTXNSVUZEUkN4SFFVRkhMRVZCUVVVN2QwSkJRMGdzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVOeVFpeFpRVUZaTEVWQlExb3NVMEZCVXp0M1FrRkRWQ3cwUWtGQk5FSXNRMEZCUXl4SlFVRkpMRU5CUTJ4RExFTkJRVU03YjBKQlEwb3NRMEZCUXl4RFFVTkdMRU5CUVVNN2FVSkJRMGc3WVVGRFJqdFpRVUZETEU5QlFVOHNTMEZCVlN4RlFVRkZPMmRDUVVOdVFpeEpRVUZKTEV0QlFVc3NRMEZCUXl4SlFVRkpMRXRCUVVzc1dVRkJXU3hGUVVGRk8yOUNRVU12UWl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzJsQ1FVTjBRanR4UWtGQlRUdHZRa0ZEVEN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzJsQ1FVTnlRanRuUWtGRFJDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVTllPMjlDUVVORkxHMUNRVUZ0UWl4RlFVRkZMRWxCUVVrN2IwSkJRM3BDTEdOQlFXTXNSVUZCUlN4SlFVRkpPMjlDUVVOd1FpeFhRVUZYTEVWQlFVVXNWMEZCVnp0cFFrRkRla0lzUlVGRFJDeEhRVUZITEVWQlFVVTdiMEpCUTBnc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eGhRVUZoTEVOQlFVTXNiMFJCUVdNc1EwRkJReXhEUVVGRE8yZENRVU51UkN4RFFVRkRMRU5CUTBZc1EwRkJRenRoUVVOSU8xRkJRMGdzUTBGQlF5eEZRVUZETzFGQlJVMHNPRUpCUVhsQ0xFZEJRVWNzUTBGRGJFTXNXVUZCYjBNc1JVRkRjRU1zWjBKQlFXZENMRWRCUVVjc1MwRkJTeXhGUVVONFFpeEZRVUZGT3p0WlFVTkdMRTFCUVUwc1MwRkJTeXhIUVVOVUxDdEZRVUY1UWl4RFFVRkRMRmxCUVZrc1EwRkJRenRwUWtGRGRrTXNWVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zV1VGQldTeERRVUZETEUxQlFVMHNRMEZCUXl3d1EwRkJSU3hMUVVGTExFVkJRVU03V1VGRmJFUXNTVUZCU1N4RFFVRkRMRXRCUVVzc1NVRkJTU3hMUVVGTExGbEJRVmtzVDBGQlR5eEZRVUZGTzJkQ1FVTjBReXhKUVVORkxGbEJRVmtzUTBGQlF5eExRVUZMTEVkQlFVY3NNa1JCUVd0Q0xFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTenR2UWtGREwwUXNXVUZCV1N4RFFVRkRMRTFCUVUwc1IwRkJSeXd5UkVGQmEwSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlEyaEZPMjlDUVVOQkxFMUJRVTBzWlVGQlpTeEhRVUZITEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTTdiMEpCUTNCRUxITkZRVUZoTEVOQlFVTXNXVUZCV1N4RlFVRkZPM2RDUVVNeFFpeERRVUZETEVWQlFVVXNXVUZCV1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhsUVVGbExFZEJRVWNzUTBGQlF6dDNRa0ZEZGtNc1EwRkJReXhGUVVGRkxGbEJRVmtzUTBGQlF5eERRVUZETEVkQlFVY3NaVUZCWlN4SFFVRkhMRU5CUVVNN2QwSkJRM1pETEV0QlFVc3NSVUZCUlN4bFFVRmxPM2RDUVVOMFFpeE5RVUZOTEVWQlFVVXNaVUZCWlR0eFFrRkRlRUlzUTBGQlF5eERRVUZETzJsQ1FVTktPMmRDUVVWRUxFOUJRVTg3WVVGRFVqdFpRVVZFTEVsQlEwVXNaMEpCUVdkQ08yZENRVU5vUWl3NFJFRkJPRVE3WjBKQlF6bEVMRGhFUVVFNFJEdG5Ra0ZET1VRc2FVSkJRV2xDTzJkQ1FVTnFRaXhEUVVGRExGbEJRVmtzUTBGQlF5eExRVUZMTEVkQlFVY3NNa1JCUVd0Q0xFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTenR2UWtGRE9VUXNXVUZCV1N4RFFVRkRMRTFCUVUwc1IwRkJSeXd5UkVGQmEwSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZEYmtVN1owSkJRMEVzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNSMEZCUnl4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03WjBKQlEzcEVMREpFUVVFeVJEdG5Ra0ZETTBRc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZEZUVJc1UwRkJVeXhGUVVOVUxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVU0xUkN4RFFVRkRPMmRDUVVWR0xFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXp0blFrRkRlRVFzVFVGQlRTeExRVUZMTEVkQlFVY3NUVUZCVFN4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExGbEJRVmtzUjBGQlJ5eExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1owSkJSV3hGTERCRlFVRXdSVHRuUWtGRE1VVXNNRUpCUVRCQ08yZENRVU14UWl4TlFVRk5MRU5CUVVNc1IwRkJSeXhaUVVGWkxFTkJRVU1zUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXhIUVVGSExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUXpsRUxFMUJRVTBzUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVkQlFVY3NUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenRuUWtGRmFFVXNjMFZCUVdFc1EwRkJReXhaUVVGWkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUTBGQlF5eERRVUZETzJGQlEzUkVPMUZCUTBnc1EwRkJReXhEUVVGRE8xRkJSVVk3TUVWQlEydEZPMUZCUXpGRUxIRkNRVUZuUWl4SFFVRkhMRU5CUTNwQ0xGRkJRWE5FTEVWQlEzUkVMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVU5zUWl4RlFVRkZPMWxCUTBZc1RVRkJUU3hGUVVGRkxGbEJRVmtzUlVGQlJTeFpRVUZaTEVWQlFVVXNSMEZCUnl4TlFVRk5MR2xGUVVGcFFpeERRVUZETzJkQ1FVTTNSQ3hWUVVGVkxFVkJRVVVzU1VGQlNTeERRVUZETEZWQlFWVTdaMEpCUXpOQ0xFOUJRVThzUlVGQlJTeFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRPMmRDUVVOc1JDeExRVUZMTzJGQlEwNHNRMEZCUXl4RFFVRkRPMWxCUTBnc1NVRkJTU3haUVVGWkxFTkJRVU1zU1VGQlNTeEpRVUZKTEZsQlFWa3NRMEZCUXl4SlFVRkpMRVZCUVVVN1owSkJRekZETEV0QlFVc3NUVUZCVFN4UFFVRlBMRWxCUVVrc1VVRkJVU3hGUVVGRk8yOUNRVU01UWl4SlFVRkpMRmxCUVZrc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZPM2RDUVVOd1F5eHRSa0ZCZVVJc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dHhRa0ZEY0VNN2FVSkJRMFk3WVVGRFJqdFpRVU5FTEVsQlFVa3NXVUZCV1N4RFFVRkRMRWxCUVVrc1JVRkJSVHRuUWtGRGNrSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhyUWtGQmEwSXNRMEZETTBJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5d3lRa0ZCTWtJc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZPMjlDUVVOMlJDeEpRVU5GTEN0RlFVRjVRaXhEUVVGRExFOUJRVThzUTBGQlF6dDNRa0ZEYkVNc1dVRkJXU3hEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUTJoRE8zZENRVU5CTEU5QlFVOHNkVVZCUVdNc1EwRkJReXhQUVVGUExFVkJRVVU3TkVKQlF6ZENMRTFCUVUwc1JVRkJSU3hQUVVGUE8zbENRVU5vUWl4RFFVRkRMRU5CUVVNN2NVSkJRMG83YjBKQlEwUXNUMEZCVHl4UFFVRlBMRU5CUVVNN1owSkJRMnBDTEVOQlFVTXNRMEZCUXl4RFFVTklMRU5CUVVNN1lVRkRTRHRaUVVWRUxFOUJRVThzUlVGQlJTeFpRVUZaTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNN1VVRkRlRU1zUTBGQlF5eEZRVUZETzFGQlJVWXNOa1JCUVRaRU8xRkJRM0pFTERaQ1FVRjNRaXhIUVVGSExFTkJRMnBETEdkQ1FVRnhSQ3cwUlVGQk1rSXNRMEZET1VVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZEZWtJc1JVRkRSQ3hSUVVGeFFpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVTXZRaXhGUVVGRk8xbEJRMFlzVFVGQlRTeHhRa0ZCY1VJc1IwRkJSeXhoUVVGaExFTkJRVU1zVFVGQlRTeERRVU5vUkN4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNVMEZCVXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVONFJTeERRVUZETzFsQlJVWXNTVUZCU1N4eFFrRkJjVUlzUTBGQlF5eE5RVUZOTEVWQlFVVTdaMEpCUTJoRExFMUJRVTBzUlVGQlJTeFpRVUZaTEVWQlFVVXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZEYkVRc2NVSkJRWEZDTEVWQlEzSkNMRXRCUVVzc1EwRkRUaXhEUVVGRE8yZENRVU5HTEVsQlFVa3NXVUZCV1N4RFFVRkRMRWxCUVVrc1JVRkJSVHR2UWtGRGNrSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhqUVVGakxFVkJRVVVzUTBGQlF6dHBRa0ZETjBJN1lVRkRSanRSUVVOSUxFTkJRVU1zUlVGQlF6dFJRVVZHT3paRVFVTnhSRHRSUVVNM1F5eDVRa0ZCYjBJc1IwRkJSeXgxUkVGQlVTeERRVUZETEVkQlFVY3NSVUZCUlR0WlFVTXpReXhKUVVGSkxFTkJRVU1zZDBKQlFYZENMRVZCUVVVc1EwRkJRenRSUVVOc1F5eERRVUZETEVWQlFVVXNOa1JCUVc5Q0xFTkJRVU1zUTBGQlF6dFJRVVZxUWl4elEwRkJhVU1zUjBGQlJ5eERRVU14UXl4TFFVRTBReXhGUVVNMVF5eEZRVUZGTzFsQlEwWXNUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eHhSa0ZCYTBNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVU4wUlN4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWjBKQlFXZENMRXRCUVVzc2JVSkJRVzFDTEVWQlFVVTdaMEpCUTNaRUxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlN4blFrRkJaMElzUlVGQlJTeHRRa0ZCYlVJc1JVRkJSU3hEUVVGRExFTkJRVU03WVVGRE1VUTdVVUZEU0N4RFFVRkRMRU5CUVVNN1VVRkZUU3huUTBGQk1rSXNSMEZCUnl4RFFVRkRMR0ZCUjNSRExFVkJRVkVzUlVGQlJUdFpRVU5VTEUxQlFVMHNjMEpCUVhOQ0xFZEJRVWNzT0VWQlFUSkNMRU5CUTNoRUxHRkJRV0VzUlVGRFlpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVTllMRU5CUVVNN1dVRkRSaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzJkQ1FVTmFMR2xDUVVGcFFpeEZRVU5tTEhOQ1FVRnpRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4elFrRkJjMElzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZPMkZCUTJwRkxFTkJRVU1zUTBGQlF6dFJRVU5NTEVOQlFVTXNRMEZCUXp0UlFVVk5MR2xFUVVFMFF5eEhRVUZITEVOQlEzSkVMR0ZCUVd0RU8xRkJRMnhFTEcxQ1FVRnRRanRSUVVOdVFpeGhRVWRITzFGQlEwZ3NhVVZCUVdsRk8xRkJRMnBGTEhWQ1FVRjFRanRSUVVOMlFpd3lRa0ZCT0VRc1JVRkRlRVFzUlVGQlJUdFpRVU5TTEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1RVRkJUU3hGUVVGRk8yZENRVU42UWl4UFFVRlBPMkZCUTFJN1dVRkZSQ3hOUVVGTkxHbENRVUZwUWl4SFFVRkhMR0ZCUVdFc1EwRkJReXhOUVVGTkxFTkJRelZETEVOQlFVTXNSMEZCTkVNc1JVRkJSU3hOUVVGTkxFVkJRVVVzUlVGQlJUdG5Ra0ZEZGtRc1RVRkJUU3h6UWtGQmMwSXNSMEZCUnl3NFJVRkJNa0lzUTBGRGVFUXNUVUZCVFN4RlFVTk9MRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRMWdzUTBGQlF6dG5Ra0ZEUml4SlFVTkZMSE5DUVVGelFpeEpRVUZKTEVsQlFVazdiMEpCUXpsQ0xFTkJRVU1zZFVaQlFXOURMRU5CUTI1RExHRkJRV0VzUlVGRFlpd3lRa0ZCTWtJc1lVRkJNMElzTWtKQlFUSkNMSFZDUVVFelFpd3lRa0ZCTWtJc1EwRkJSU3hGUVVGRkxFVkJReTlDTEhOQ1FVRnpRaXhEUVVOMlFpeEZRVU5FTzI5Q1FVTkJMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1EwRkJRenRwUWtGRGJFTTdaMEpCUTBRc1QwRkJUeXhIUVVGSExFTkJRVU03V1VGRFlpeERRVUZETEVWQlEwUXNSVUZCUlN4RFFVTklMRU5CUVVNN1dVRkZSaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzWkRMRU5CUVVNc1EwRkJRenRSUVRSQ1RTeHZRa0ZCWlN4SFFVRkhMRU5CUVVNc1RVRkJlVUlzUlVGQlJTeEZRVUZGT3p0WlFVTjBSQ3hwUTBGQmFVTTdXVUZEYWtNc1NVRkJTU3hOUVVGTkxFdEJRVXNzU1VGQlNTeEZRVUZGTzJkQ1FVTnVRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXp0blFrRkRja0lzU1VGQlNTeERRVUZETEVWQlFVVXNSMEZCUnl4blJVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0blFrRkZjRU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUTBGQlF5eHZSRUZCVnl4RlFVRkZMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVU3YjBKQlF6RkVMRTlCUVU4c1JVRkJSU3hMUVVGTE8ybENRVU5tTEVOQlFVTXNRMEZCUXp0blFrRkRTQ3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExEQkVRVUZwUWl4RlFVRkZMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYWtVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXgzUkVGQlpTeEZRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRoUVVNNVJEdHBRa0ZCVFR0blFrRkRUQ3hWUVVGSkxFTkJRVU1zVFVGQlRTd3dRMEZCUlN4dFFrRkJiVUlzUTBGQlF5eHZSRUZCVnl4RlFVRkZMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dG5Ra0ZEYUVVc1ZVRkJTU3hEUVVGRExFMUJRVTBzTUVOQlFVVXNiVUpCUVcxQ0xFTkJRVU1zTUVSQlFXbENMRVZCUVVVc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzJkQ1FVTnlSU3hWUVVGSkxFTkJRVU1zVFVGQlRTd3dRMEZCUlN4dFFrRkJiVUlzUTBGQlF5eDNSRUZCWlN4RlFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dGhRVU5zUlR0UlFVTklMRU5CUVVNc1EwRkJRenRSUVVWTkxHOUNRVUZsTEVkQlFVY3NRMEZCVHl4TFFVRnpReXhGUVVGRkxFVkJRVVU3TzFsQlEzcEZMRWxCUVVrN1owSkJRMFlzVFVGQlRTeEpRVUZKTEVkQlFVY3NTMEZCU3l4RFFVRkRMRmxCUVZrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUlhwRExFbEJRVWtzYVVWQlFXOUNMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3YjBKQlF6bENMR2RGUVVGblJUdHZRa0ZEYUVVc2QwVkJRWGRGTzI5Q1FVVjRSU3hKUVVGSkxFdEJRVWtzWVVGQlNpeEpRVUZKTEhWQ1FVRktMRWxCUVVrc1EwRkJSU3hKUVVGSkxFMUJRVXNzZFVSQlFXTXNTVUZCU1N4TFFVRkpMR0ZCUVVvc1NVRkJTU3gxUWtGQlNpeEpRVUZKTEVOQlFVVXNTVUZCU1N4TlFVRkxMSFZFUVVGakxFVkJRVVU3ZDBKQlEyeEZMRWxCUVVrN05FSkJRMFlzU1VGQlNTeDNSVUZCZVVJc1JVRkJSVHRuUTBGRE4wSXNTVUZCU1R0dlEwRkRSaXgxUTBGQmRVTTdiME5CUTNaRExDdERRVUVyUXp0dlEwRkRMME1zVFVGQlRTeEpRVUZKTEVkQlFVY3NTMEZCU3l4RFFVRkRMRmxCUVZrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiME5CUTNoRExFbEJRVmtzUTBGQlF5eE5RVUZOTEVkQlFVY3NUVUZEY2tJc1NVRkRSQ3hEUVVGRExIRkNRVUZ4UWl4RlFVRkZMRU5CUVVNN2FVTkJRek5DTzJkRFFVRkRMRTlCUVU4c1MwRkJWU3hGUVVGRk8yOURRVU51UWl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVWQlFVVXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8ybERRVU42UXpzMlFrRkRSanMwUWtGRlJDeE5RVUZOTEV0QlFVc3NSMEZCUnl4TlFVRk5MRzlFUVVGWkxFTkJRemxDTEVsQlFVa3NSVUZEU2l4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVOV0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNNa0pCUVRKQ0xFVkJRVVVzUTBGRGVrTXNRMEZCUXpzMFFrRkRSaXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMR2xEUVVOb1FpeExRVUZMTEV0QlExSXNVVUZCVVN4clEwRkRTQ3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVOcVF5eFRRVUZUTEVWQlFVVXNTMEZCU3l4TFFVVnNRaXhaUVVGWkxFVkJRVVVzU1VGQlNTeEZRVU5zUWl4bFFVRmxMRVZCUVVVc1NVRkJTU3hKUVVOeVFpeERRVUZET3pSQ1FVTklMRTlCUVU4N2VVSkJRMUk3ZDBKQlFVTXNUMEZCVHl4TFFVRlZMRVZCUVVVN05FSkJRMjVDTEVsQlFVa3NTMEZCU3l4RFFVRkRMRWxCUVVrc1MwRkJTeXhsUVVGbExFVkJRVVU3WjBOQlEyeERMRTFCUVUwc1MwRkJTeXhEUVVGRE96WkNRVU5pTzNsQ1FVTkdPM0ZDUVVOR08yOUNRVVZFTEc5RlFVRnZSVHR2UWtGRGNFVXNaME5CUVdkRE8yOUNRVU5vUXl4M1JVRkJkMFU3YjBKQlJYaEZMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4TlFVRk5MRVZCUVVVc1IwRkJSeXh2UlVGQk1rSXNRMEZETVVRc1MwRkJTeXhGUVVOTUxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlExZ3NRMEZCUXp0dlFrRkZSaXhOUVVGTkxGbEJRVmtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUlVGQlJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJRenR2UWtGRGFrVXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEZsQlFWa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenR2UWtGRE5VTXNTVUZCU1N4RFFVRkRMSGxDUVVGNVFpeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMjlDUVVNM1F5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNSVUZCUlN4RFFVRkRMRmxCUVZrc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEpRVUZKTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN2IwSkJSVzVGTEU5QlFVODdhVUpCUTFJN1lVRkRSanRaUVVGRExFOUJRVThzUzBGQlZTeEZRVUZGTzJkQ1FVTnVRaXhQUVVGUExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdiMEpCUTI1Q0xGTkJRVk1zUlVGQlJTeExRVUZMTzI5Q1FVTm9RaXhaUVVGWkxFVkJRVVVzUzBGQlN5eERRVUZETEU5QlFVODdhVUpCUXpWQ0xFTkJRVU1zUTBGQlF6dGhRVU5LTzFsQlJVUXNUVUZCVFN4aFFVRmhMRWRCUVVjc1MwRkJTeXhEUVVGRExGbEJRVmtzUTBGQlF5eFBRVUZQTEVOQlFVTXNhVVZCUVhkQ0xFTkJRVU1zUTBGQlF6dFpRVU16UlN4SlFVRkpMR0ZCUVdFc1MwRkJTeXhGUVVGRkxFVkJRVVU3WjBKQlEzaENMRWxCUVVrc1EwRkJReXcyUWtGQk5rSXNRMEZCUXp0dlFrRkRha01zVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRE8yOUNRVU51UXl4UlFVRlJMRVZCUVVVc1MwRkJTenR2UWtGRFppeExRVUZMTEVWQlFVVXNTVUZCU1R0cFFrRkRXaXhEUVVGRExFTkJRVU03WjBKQlEwZ3NUMEZCVHp0aFFVTlNPMWxCUlVRc1RVRkJUU3hKUVVGSkxFZEJRVWNzVjBGQlN5eERRVUZETEZsQlFWa3NNRU5CUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlF6RkRMRWxCUTBVc1MwRkJTU3hoUVVGS0xFbEJRVWtzZFVKQlFVb3NTVUZCU1N4RFFVRkZMRWxCUVVrc1RVRkJTeXhwUlVGQmQwSTdhVUpCUTNaRExGVkJRVWtzWVVGQlNpeEpRVUZKTEhWQ1FVRktMRWxCUVVrc1EwRkJSU3hKUVVGSkxEQkRRVUZGTEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eEhRVU4wUXp0blFrRkRRU3hKUVVGSkxFTkJRVU1zVDBGQlR6dHhRa0ZEVkN4aFFVRmhMRU5CUVVNc1NVRkJTU3hEUVVGRE8zRkNRVU51UWl4SlFVRkpMRU5CUVVNc1IwRkJSeXhGUVVGRk8yOUNRVU5VTEcxRVFVRnRSRHR2UWtGRGJrUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxHRkJRV0VzUlVGQlJTeExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRPMjlDUVVONFF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRVZCUVVVc1lVRkJZU3hGUVVGRkxFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTTdaMEpCUTNwRExFTkJRVU1zUTBGQlF6dHhRa0ZEUkN4TFFVRkxMRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVU5tTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSU3hUUVVGVExFVkJRVVVzUzBGQlN5eEZRVUZGTEZsQlFWa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zUTBGRGFrVXNRMEZCUXp0blFrRkRTaXh6UlVGQmMwVTdZVUZEZGtVN2FVSkJRVTA3WjBKQlEwd3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxGTkJRVk1zUlVGQlJTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMmRDUVVOdVF5eEpRVUZKTEhkRlFVRjVRaXhGUVVGRk8yOUNRVU0zUWl4SlFVRkpPM2RDUVVOR0xIVkRRVUYxUXp0M1FrRkRka01zSzBOQlFTdERPM2RDUVVNdlF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4TFFVRkxMRU5CUVVNc1dVRkJXU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0M1FrRkRlRU1zU1VGQldTeERRVUZETEUxQlFVMHNSMEZCUnl4TlFVRlBMRWxCUVZrc1EwRkJReXh4UWtGQmNVSXNSVUZCUlN4RFFVRkRPM0ZDUVVOd1JUdHZRa0ZCUXl4UFFVRlBMRXRCUVZVc1JVRkJSVHQzUWtGRGJrSXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEZRVUZGTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenR4UWtGRGVrTTdhVUpCUTBZN1owSkJRMFFzVFVGQlRTeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdZVUZEYmtNN1VVRkRTQ3hEUVVGRExFVkJRVU03VVVGRlJpeHhRa0ZCWjBJc1IwRkJSeXhEUVVGRExFbEJRVlVzUlVGQlJTeEZRVUZGTzFsQlEyaERMRzlFUVVGWkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5d3lRa0ZCTWtJc1JVRkJSU3hEUVVGRE8ybENRVU55UlN4SlFVRkpMRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJUdG5Ra0ZEWkN4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEdsRFFVTm9RaXhMUVVGTExFdEJRMUlzVVVGQlVTeHJRMEZEU0N4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVTnFReXhUUVVGVExFVkJRVVVzUzBGQlN5eExRVVZzUWl4WlFVRlpMRVZCUVVVc1NVRkJTU3hGUVVOc1FpeGxRVUZsTEVWQlFVVXNTVUZCU1N4SlFVTnlRaXhEUVVGRE8xbEJRMHdzUTBGQlF5eERRVUZETzJsQ1FVTkVMRXRCUVVzc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTzJkQ1FVTm1MRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeFRRVUZUTEVWQlFVVXNTMEZCU3l4RlFVRkZMRmxCUVZrc1JVRkJSU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNRMEZCUXp0WlFVTnVSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5RTEVOQlFVTXNRMEZCUXp0UlFVVk5MRFJDUVVGMVFpeEhRVUZITEVOQlEyaERMRXRCUVRSRExFVkJRelZETEVWQlFVVTdXVUZEUml4TFFVRkxMRU5CUVVNc1kwRkJZeXhGUVVGRkxFTkJRVU03V1VGRmRrSXNTVUZEUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU1zVjBGQlZ5eExRVUZMTEU5QlFVODdaMEpCUTNoRExFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4WFFVRlhMRXRCUVVzc1MwRkJTenR2UWtGRGRFTXNiVVJCUVcxRU8yOUNRVU51UkN4TFFVRkxMRU5CUVVNc1RVRkJUU3hMUVVGTExHbEZRVUYzUWl4RFFVRkRMRU5CUVVNN1owSkJReTlETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhMUVVGTExGZEJRVmNzUlVGRGRFTTdaMEpCUTBFc1QwRkJUenRoUVVOU08xbEJSVVFzVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJSeXh2UlVGQk1rSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEyaEZMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNZMEZCWXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRk1VVXNUVUZCVFN4SlFVRkpMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJRenRaUVVVMVF5eE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNUMEZCVVN4RFFVRkRPMWxCUTNaRUxFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNVMEZCVXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hWUVVGVkxFVkJRVVVzUjBGRGVFTXNVMEZCVXl4RFFVRkRMSEZDUVVGeFFpeEZRVUZGTEVOQlFVTTdXVUZEY0VNc1RVRkJUU3hKUVVGSkxFZEJRVWNzUzBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4VlFVRlZMRU5CUVVNN1dVRkRlRU1zVFVGQlRTeEhRVUZITEVkQlFVY3NTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhUUVVGVExFTkJRVU03V1VGRmRFTXNTVUZCU1N4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlR0blFrRkRla1FzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzU1VGQlNTeEZRVUZGTEVWQlFVVXNSVUZCUlN4SFFVRkhMRVZCUVVVN2IwSkJRMnBGTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dG5Ra0ZETjBNc1EwRkJReXhEUVVGRExFTkJRVU03WVVGRFNqdHBRa0ZCVFR0blFrRkRUQ3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzU1VGQlNTeEZRVUZGTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1lVRkROVU03VVVGRFNDeERRVUZETEVOQlFVTTdVVUZGVFN3clFrRkJNRUlzUjBGQlJ5eERRVU51UXl4blFrRkJhME1zUlVGRGJFTXNTMEZCYVVNc1JVRkRNMElzUlVGQlJUczdXVUZEVWl4TlFVRk5MR1ZCUVdVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdWQlFXVXNRMEZCUXp0WlFVTnVSQ3hOUVVGTkxHRkJRV0VzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJReXhWUVVGVkxFTkJRVU03V1VGRGJFUXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1JVRkJSVHRuUWtGRGNFSXNUMEZCVHp0aFFVTlNPMWxCUTBRc1NVRkJTU3hsUVVGbExFTkJRVU1zU1VGQlNTeExRVUZMTEZkQlFWY3NSVUZCUlR0blFrRkRlRU1zZVVSQlFXTXNRMEZEV2l4bFFVRmxMRVZCUTJZc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVWQlEzUkNMR2RDUVVGblFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRVZCUTNwQ0xHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRM3BDTEdGQlFXRXNRMEZCUXl4RFFVRkRMRVZCUTJZc1lVRkJZU3hEUVVGRExFTkJRVU1zUlVGRFppeHBSRUZCVVN4RFFVRkRMR2RDUVVGblFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRVZCUVVVc1lVRkJZU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVU53UkN4cFJFRkJVU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRVVVzWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVTndSQ3hwUlVGQmVVSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkRhRU1zT0VSQlFYTkNMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRemxDTEVOQlFVTTdZVUZEU0R0cFFrRkJUVHRuUWtGRFRDeE5RVUZOTEVOQlFVTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhIUVVGSExHOUVRVUZaTEVOQlEycERMR0ZCUVdFc1EwRkJReXhEUVVGRExFVkJRMllzWVVGQllTeERRVUZETEVOQlFVTXNSVUZEWml4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGRGNFSXNRMEZCUXp0blFrRkZSaXhOUVVGTkxFdEJRVXNzUjBGRFZDd3JSVUZCZVVJc1EwRkJReXhsUVVGbExFTkJRVU03Y1VKQlF6RkRMRlZCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEdWQlFXVXNRMEZCUXl4TlFVRk5MRU5CUVVNc01FTkJRVVVzUzBGQlN5eEZRVUZETzJkQ1FVTnlSQ3hOUVVGTkxGZEJRVmNzUjBGRFppeExRVUZMTEVsQlFVa3NRMEZCUXl4RFFVRkRMRXRCUVVzc1dVRkJXU3hQUVVGUExFTkJRVU03YjBKQlEyeERMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEhRVUZITEV0QlFVc3NRMEZCUXl4TlFVRk5PMjlDUVVNMVFpeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMmRDUVVWWUxIbEVRVUZqTEVOQlExb3NaVUZCWlN4RlFVTm1MRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eEZRVU4wUWl4blFrRkJaMElzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RlFVTXZRaXhuUWtGQlowSXNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhGUVVNdlFpeExRVUZMTEVWQlEwd3NTMEZCU3l4RlFVTk1MR2xFUVVGUkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUlVGQlJTeExRVUZMTEVOQlFVTXNSVUZEYUVRc2FVUkJRVkVzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RlFVTm9SQ3h2UlVGQll5eERRVUZETEdWQlFXVXNRMEZCUXp0dlFrRkROMElzUTBGQlF5eERRVUZETEVOQlFVTXNhVVZCUVhsQ0xFTkJRVU1zUzBGQlN5eERRVUZETzI5Q1FVTnVReXhEUVVGRExFTkJRVU1zYVVWQlFYbENMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRM0JETERoRVFVRnpRaXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVU0zUWl4WFFVRlhMRU5CUTFvc1EwRkJRenRuUWtGRlJpeEpRVUZKTEVOQlFVTXNlVUpCUVhsQ0xFTkJRVU1zUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTI1RU8xRkJRMGdzUTBGQlF5eERRVUZETzFGQlJVMHNjMEpCUVdsQ0xFZEJRVWNzUTBGRE1VSXNaMEpCUVd0RExFVkJRMnhETEV0QlFXbERMRVZCUTNoQ0xFVkJRVVU3V1VGRFdDeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExEUkVRVUZ0UWl4RFFVTXhReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4RlFVTjRRaXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVU5ZTEVOQlFVTTdXVUZEUml4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTTdXVUZETDBRc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dG5Ra0ZEV2l3NFJFRkJPRVE3WjBKQlF6bEVMRGhFUVVFNFJEdG5Ra0ZET1VRc1YwRkJWenRuUWtGRFdDeFZRVUZWTEVWQlFVVXNiVUpCUVcxQ0xFbEJRVWtzYlVKQlFXMUNMRXRCUVVzc1ZVRkJWVHRuUWtGRGNrVXNWVUZCVlN4RlFVRkZMRzFDUVVGdFFpeExRVUZMTEZWQlFWVTdZVUZETDBNc1EwRkJReXhEUVVGRE8xbEJRMGdzVFVGQlRTeGhRVUZoTEVkQlFVY3NaMEpCUVdkQ0xFTkJRVU1zVlVGQlZTeERRVUZETzFsQlEyeEVMRTFCUVUwc1EwRkJReXhQUVVGUExFVkJRVVVzVDBGQlR5eERRVUZETEVkQlFVY3NiMFJCUVZrc1EwRkRja01zWVVGQllTeERRVUZETEVOQlFVTXNSMEZCUnl4blFrRkJaMElzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkRiRVFzWVVGQllTeERRVUZETEVOQlFVTXNSMEZCUnl4blFrRkJaMElzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkRiRVFzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUTNCQ0xFTkJRVU03V1VGRFJpeEpRVU5GTERSRVFVRnBRaXhEUVVObUxHZENRVUZuUWl4RlFVTm9RaXh0UWtGQmJVSXNSVUZEYmtJc1owSkJRV2RDTEVWQlEyaENMR2RDUVVGblFpeERRVUZETEUxQlFVMHNRMEZCUXl4alFVRmpMRVZCUTNSRExIRkZRVUUyUWl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVOd1F5dzRSRUZCYzBJc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGRE4wSXNaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeExRVUZMTEVOQlFVTXNTVUZCU1N4dlJVRkJZeXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU5zUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhwUlVGQmVVSXNRMEZCUXl4TFFVRkxMRU5CUVVNN1owSkJRMjVETEVOQlFVTXNRMEZCUXl4cFJVRkJlVUlzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZEY0VNc1QwRkJUeXhGUVVOUUxFOUJRVThzUlVGRFVDeG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSVUZEYUVNc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRMnBETEVWQlEwUTdaMEpCUTBFc1NVRkJTU3hEUVVGRExIbENRVUY1UWl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTTdaMEpCUTJwRUxFOUJRVThzU1VGQlNTeERRVUZETzJGQlEySTdXVUZEUkN4UFFVRlBMRXRCUVVzc1EwRkJRenRSUVVObUxFTkJRVU1zUTBGQlF6dFJRVVZHTEdkRVFVRm5SRHRSUVVONFF5eHhRa0ZCWjBJc1IwRkJSeXhEUVVONlFpeEZRVU5GTEVsQlFVa3NSVUZEU2l4SFFVRkhMRWRCU1Vvc1JVRkRSQ3hKUVVFd1FpeEZRVU14UWl4RlFVRkZPMWxCUTBZc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEd0Q1FVRnJRaXhGUVVGRk8yZENRVU5xUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF6dGhRVU01UXp0WlFVTkVMRWxCUVVrc1EwRkJReXhsUVVGbExFZEJRVWNzU1VGQlNTeERRVUZETzFsQlF6VkNMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NjMFZCUVdsRExFTkJRM2hFTEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc01rSkJRVEpDTEVWQlFVVXNSVUZEYUVRc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZEYWtNc1EwRkJRenRaUVVWR0xFMUJRVTBzYTBKQlFXdENMRWRCUVVjc2QwVkJRVzFETEVOQlF6VkVMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zTWtKQlFUSkNMRVZCUVVVc1JVRkRhRVFzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkRha01zUTBGQlF6dFpRVVZHTEUxQlFVMHNiVUpCUVcxQ0xFZEJRVWNzSzBWQlFUQkRMRU5CUTNCRkxFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNNa0pCUVRKQ0xFVkJRVVVzUlVGRGFFUXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGRGFrTXNRMEZCUXp0WlFVVkdMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NOa1ZCUVhkRExFTkJRMmhGTEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc01rSkJRVEpDTEVWQlFVVXNSVUZEYUVRc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZEYWtNc1EwRkJRenRaUVVWR0xFMUJRVTBzVTBGQlV5eEhRVUZITEZkQlFWY3NRMEZCUXp0WlFVVTVRaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8xbEJSVEZETEUxQlFVMHNUMEZCVHl4SFFVRjNRaXhGUVVGRkxFTkJRVU03V1VGRGVFTXNTVUZCU1N4elJVRkJOa0lzU1VGQlNTeFJRVUZSTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1JVRkJSVHRuUWtGRGVFUXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXh4UkVGQlpTeERRVUZETEVOQlFVTTdZVUZETDBJN1dVRkZSQ3hKUVVGSkxESkZRVUZyUXl4SlFVRkpMRkZCUVZFc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzJkQ1FVTTNSQ3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEhGRVFVRmxMRU5CUVVNc1EwRkJRenRoUVVNdlFqdFpRVU5FTEVsQlFVa3NTVUZCU1N4TFFVRkxMRkZCUVZFc1JVRkJSVHRuUWtGRGNrSXNUVUZCVFN4bFFVRmxMRWRCUVVjN2IwSkJRM1JDTEVkQlFVY3NUMEZCVHp0dlFrRkRWaXhQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNaVUZCWlN4TFFVRkxMRmRCUVZjN2QwSkJReTlETERCRVFVRnZRanR2UWtGRGRFSXNUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHTkJRV01zUzBGQlN5eFhRVUZYTEVsQlFVa3NlVVJCUVcxQ08yOUNRVU4yUlN4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWlVGQlpTeExRVUZMTEZkQlFWYzdkMEpCUXk5RExHZEdRVUZ2UWp0dlFrRkRkRUlzZFVSQlFXbENPMmxDUVVOc1FpeERRVUZETzJkQ1FVVkdMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVWQlFVVTdiMEpCUXpsQ0xEQkVRVUZuUWl4RFFVRkRPM2RDUVVObUxFOUJRVThzUlVGQlJTeGxRVUZsTzNkQ1FVTjRRaXhIUVVGSE8zZENRVU5JTEVsQlFVazdkMEpCUTBvc1lVRkJZU3hGUVVGRkxFbEJRVWtzUTBGQlF5eGhRVUZoTzNkQ1FVTnFReXhSUVVGUkxFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVczdkMEpCUTNCQ0xGTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zVDBGQlVUdDNRa0ZETDBNc1VVRkJVVHR4UWtGRFZDeERRVUZETEVOQlFVTTdhVUpCUTBvN2NVSkJRVTA3YjBKQlEwd3NNRVJCUVdkQ0xFTkJRVU03ZDBKQlEyWXNUMEZCVHl4RlFVRkZPelJDUVVOUUxFbEJRVWtzUTBGQlF5eFJRVUZSTzJkRFFVTllMRk5CUVZNc1EwRkJReXhUUVVGVExFbEJRVWs3WjBOQlEzSkNMRWxCUVVrc1JVRkJSU3hQUVVGUE8yZERRVU5pTEU5QlFVOHNSVUZCUlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hUUVVGVExFVkJRVVVzUlVGQlJUdHZRMEZETDBJc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8yOURRVU01UWl4UFFVRlBPM2REUVVOTUxHVkJRV1VzUlVGQlJTeExRVUZMTzNGRFFVTjJRaXhEUVVGRE8yZERRVU5LTEVOQlFVTTdaME5CUTBRc1owSkJRV2RDTEVWQlFVVXNZMEZCWXpzMlFrRkRha003TkVKQlEwZ3NTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTU3hUUVVGVExFTkJRVU1zVTBGQlV5eEpRVUZKTEZOQlFWTTdORUpCUTJwRUxITkZRVUUyUWp0blEwRkRNMElzVVVGQlVTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRPMmREUVVOdVFpeHhSRUZCWlRzMFFrRkRha0lzTWtWQlFXdERPMmREUVVOb1F5eFJRVUZSTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNN1owTkJRMjVDTEhGRVFVRmxPelJDUVVOcVFpeERRVUZETEVOQlFVTXNjMFZCUVRaQ0xFbEJRVWtzVVVGQlVTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNN1owTkJRM0pFTEVOQlFVTXNNa1ZCUVd0RExFbEJRVWtzVVVGQlVTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUTBGRE5VUXNVMEZCVXpzMFFrRkRXQ3h4UkVGQlpUczBRa0ZEWml4VFFVRlRPelJDUVVOVUxFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4bFFVRmxMRXRCUVVzc1YwRkJWenRuUTBGREwwTXNNRVJCUVc5Q096UkNRVU4wUWl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWTBGQll5eExRVUZMTEZkQlFWYzdaME5CUXpsRExIbEVRVUZ0UWpzMFFrRkRja0lzVDBGQlR5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1MwRkJTeXhYUVVGWE8yZERRVU12UXl4blJrRkJiMEk3TkVKQlEzUkNMSFZFUVVGcFFqdDVRa0ZEYkVJN2QwSkJRMFFzUjBGQlJ6dDNRa0ZEU0N4SlFVRkpPM2RDUVVOS0xHRkJRV0VzUlVGQlJTeEpRVUZKTEVOQlFVTXNZVUZCWVR0M1FrRkRha01zVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxPM2RDUVVOd1FpeFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEU5QlFWRTdkMEpCUXk5RExGRkJRVkU3Y1VKQlExUXNRMEZCUXl4RFFVRkRPMmxDUVVOS08yRkJRMFk3YVVKQlFVMHNTVUZCU1N4SlFVRkpMRXRCUVVzc1UwRkJVeXhGUVVGRk8yZENRVU0zUWl4TlFVRk5MSGRDUVVGM1FpeEhRVUZITERSRVFVRnRRaXhEUVVOc1JDeFJRVUZSTEVWQlExSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkRXQ3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXg1UlVGQmJVSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU51UkN4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWlVGQlpTeEZRVUZGTzI5Q1FVTTVRaXd3UkVGQlowSXNRMEZCUXp0M1FrRkRaaXhQUVVGUExFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNVMEZCVXl4SlFVRkpMR2RFUVVGVkxFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTTdkMEpCUTNoRUxFZEJRVWM3ZDBKQlEwZ3NTVUZCU1R0M1FrRkRTaXhoUVVGaExFVkJRVVVzU1VGQlNTeERRVUZETEdGQlFXRTdkMEpCUTJwRExGRkJRVkVzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3p0M1FrRkRjRUlzVTBGQlV5eEZRVUZGTEVsQlFVa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eFBRVUZSTzNkQ1FVTXZReXhSUVVGUk8zRkNRVU5VTEVOQlFVTXNRMEZCUXp0cFFrRkRTanR4UWtGQlRUdHZRa0ZEVEN3d1JFRkJaMElzUTBGQlF6dDNRa0ZEWml4UFFVRlBMRVZCUVVVN05FSkJRMUFzU1VGQlNTeERRVUZETEZGQlFWRXNTVUZCU1N3clEwRkJVenMwUWtGRE1VSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTU3hUUVVGVExFTkJRVU1zVTBGQlV5eEpRVUZKTEdkRVFVRlZPelJDUVVOc1JDeEpRVUZKTEVOQlFVTXNVVUZCVVR0blEwRkRXQ3hUUVVGVExFTkJRVU1zVTBGQlV5eEpRVUZKTzJkRFFVTnlRaXhKUVVGSkxFVkJRVVVzVDBGQlR6dG5RMEZEWWl4UFFVRlBMRVZCUVVVc1EwRkJReXhSUVVGUkxFVkJRVVVzVTBGQlV5eEZRVUZGTEVWQlFVVTdiME5CUXk5Q0xFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dHZRMEZET1VJc1QwRkJUenQzUTBGRFRDeGxRVUZsTEVWQlFVVXNTMEZCU3p0eFEwRkRka0lzUTBGQlF6dG5RMEZEU2l4RFFVRkRPMmREUVVORUxHZENRVUZuUWl4RlFVRkZMR05CUVdNN05rSkJRMnBET3pSQ1FVTklMRWxCUVVrc1EwRkJReXhSUVVGUkxFbEJRVWtzVTBGQlV6czBRa0ZETVVJc1IwRkJSeXhQUVVGUE96UkNRVU5XTEZOQlFWTTdORUpCUTFRc2MwUkJRV2RDT3pSQ1FVTm9RaXgxUkVGQmFVSTdORUpCUTJwQ0xGTkJRVk03TkVKQlExUXNaMEpCUVdkQ0xFbEJRVWtzYVVSQlFWYzdORUpCUXk5Q0xFTkJRVU1zZDBKQlFYZENMRWxCUVVrc2MwUkJRV2RDT3pSQ1FVTTNReXhyUWtGQmEwSXNTVUZCU1N4dFJFRkJZVHMwUWtGRGJrTXNRMEZCUXl4blFrRkJaMElzU1VGQlNTeHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxGTkJRVk03TkVKQlEzSkVMSGRFUVVGclFqczBRa0ZEYkVJc1UwRkJVenMwUWtGRFZDeDNSRUZCYTBJN05FSkJRMnhDTEhkRVFVRnJRanMwUWtGRGJFSXNjMFJCUVdkQ096UkNRVU5vUWl4M1JFRkJhMEk3TkVKQlEyeENMRk5CUVZNN05FSkJRMVFzYlVKQlFXMUNMRWxCUVVrc01FUkJRVzlDT3pSQ1FVTXpReXhwUWtGQmFVSXNTVUZCU1N4M1JFRkJhMEk3TkVKQlEzWkRMRU5CUVVNc2JVSkJRVzFDTEVsQlFVa3NhVUpCUVdsQ0xFTkJRVU1zU1VGQlNTeFRRVUZUT3pSQ1FVTjJSQ3h4UlVGQkswSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEdkRVFVRlZPelJDUVVOdVJTdzRSRUZCZDBJN05FSkJRM2hDTERCRVFVRnZRanQ1UWtGRGNrSTdkMEpCUTBRc1IwRkJSenQzUWtGRFNDeEpRVUZKTzNkQ1FVTktMR0ZCUVdFc1JVRkJSU3hKUVVGSkxFTkJRVU1zWVVGQllUdDNRa0ZEYWtNc1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTzNkQ1FVTndRaXhUUVVGVExFVkJRVVVzU1VGQlNTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFOUJRVkU3ZDBKQlF5OURMRkZCUVZFN2NVSkJRMVFzUTBGQlF5eERRVUZETzJsQ1FVTktPMkZCUTBZN1VVRkRTQ3hEUVVGRExFTkJRVU03VVVGRlRTeG5Ra0ZCVnl4SFFVRkhMREpFUVVGclFpeERRVUZETEVOQlFVTXNTMEZCYVVJc1JVRkJSU3hGUVVGRk8xbEJRemRFTEV0QlFVc3NRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenRaUVVWMlFpeEpRVUZKTEZOQlFWTXNSVUZCUlR0blFrRkRZaXhQUVVGUE8yRkJRMUk3V1VGRlJDeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJSU3hIUVVGSExFdEJRVXNzUTBGQlF6dFpRVU5xUXl4TlFVRk5MRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNNRUpCUVRCQ0xFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRPMWxCUTNSRkxDdEVRVUVyUkR0WlFVTXZSQ3hKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1JVRkJSVHRuUWtGRGJFTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0blFrRkRMMElzVFVGQlRTeFJRVUZSTEVkQlFVY3NSVUZCUlN4RFFVRkRPMmRDUVVOd1FpeEpRVUZKTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzJkQ1FVTTNRaXhKUVVGSkxFdEJRVXNzUjBGQlJ5eFJRVUZSTEVWQlFVVTdiMEpCUTNCQ0xFdEJRVXNzUjBGQlJ5eFJRVUZSTEVOQlFVTTdhVUpCUTJ4Q08yZENRVU5FTEV0QlFVc3NTVUZCU1N4SlFVRkpMRU5CUVVNN1owSkJRMlFzU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMREJDUVVFd1FpeERRVUZETEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNc1JVRkJSVHR2UWtGRGVFUXNWVUZCVlN4RFFVRkRMRWRCUVVjc1JVRkJSVHQzUWtGRFpDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPelJDUVVOYUxHdENRVUZyUWl4RlFVRkZMREJDUVVFd1FqczBRa0ZET1VNc01FSkJRVEJDTEVWQlFVVXNSVUZCUlR0NVFrRkRMMElzUTBGQlF5eERRVUZETzI5Q1FVTk1MRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dHBRa0ZEVmp0blFrRkZSQ3hKUVVGSkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFZEJRVWNzUzBGQlN5eEhRVUZITEVkQlFVY3NRMEZCUXp0blFrRkRiRVFzZDBWQlFYZEZPMmRDUVVONFJTeFBRVUZQTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRE8yZENRVU5zUlN4M1FrRkJkMEk3WjBKQlEzaENMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4clJFRkJVeXhIUVVGSExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNhMFJCUVZNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dG5Ra0ZGY0VVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUVVNc2FVTkJRM0JDTERaRVFVRmxMRU5CUTJoQ08yOUNRVU5GTEZOQlFWTXNSVUZCUlN4UFFVRlBPMjlDUVVOc1FpeFRRVUZUTEVWQlFVVXNUMEZCVHp0dlFrRkRiRUlzVVVGQlVTeEZRVUZGTERCRVFVRnBRaXhEUVVGRExFOUJRVThzUTBGQlF6dHBRa0ZEY2tNc1JVRkRSQ3hMUVVGTExFTkJRMDRzUzBGRFJDeHJRa0ZCYTBJc1JVRkJSU3hGUVVGRkxFVkJRM1JDTERCQ1FVRXdRaXhGUVVONFFpeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNN2QwSkJRekZETEVOQlFVTXNRMEZCUXl4clFrRkJhMEk3ZDBKQlEzQkNMRU5CUVVNc1EwRkJReXd3UWtGQk1FSXNSVUZEYUVNc2NVSkJRWEZDTEVWQlFVVXNTVUZCU1N4SlFVTXpRaXhEUVVGRExFTkJRVU03WjBKQlEwb3NTVUZCU1N4RFFVRkRMRzFEUVVGdFF5eEZRVUZGTEVOQlFVTTdaMEpCUXpORExFOUJRVTg3WVVGRFVqdFpRVVZFTEhsRFFVRjVRenRaUVVONlF5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UlFVRlJMRVZCUVVVN1owSkJRMnhDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenR2UWtGRGNFTXNaMFJCUVdkRU8yOUNRVU5vUkN4UFFVRlBMRVZCUVVVc1QwRkJUeXhIUVVGSExFTkJRVU1zVFVGQlRTeEpRVUZKTEUxQlFVMHNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTE8ybENRVU51UkN4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRFNpeFBRVUZQTzJGQlExSTdXVUZGUkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVWQlFVVXNUMEZCVHl4RlFVRkZMRTlCUVU4c1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzJkQ1FVTTNReXhQUVVGUExFVkJRVVVzVDBGQlR5eEhRVUZITEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTenRuUWtGRGRFTXNUMEZCVHl4RlFVRkZMRTlCUVU4c1IwRkJSeXhOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVczdZVUZEZGtNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRFRpeERRVUZETEVOQlFVTXNRMEZCUXp0UlFYRkRTeXhuUWtGQlZ5eEhRVUZITEVOQlFVTXNRMEZCVXl4RlFVRkZMRU5CUVZNc1JVRkJSU3hOUVVGeFFpeEZRVUZGTEVWQlFVVTdPMWxCUTNCRkxFbEJRVWtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRVZCUVVVN1owSkJRMW9zVDBGQlR6dGhRVU5TTzFsQlEwUXNUVUZCVFN4UFFVRlBMRWRCUVVjc2IwVkJRVEpDTEVOQlEzcERMRVZCUVVVc1QwRkJUeXhGUVVGRkxFTkJRVU1zUlVGQlJTeFBRVUZQTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUXpGQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlExZ3NRMEZCUXp0WlFVVkdMRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTzJkQ1FVTjRReXgzUTBGQmQwTTdZVUZEZWtNN1dVRkZSQ3huUWtGQlNTeERRVUZETEV0QlFVc3NSVUZCUXl4bFFVRmxMRzFFUVVGSE8yZENRVU16UWl4UFFVRlBPMmRDUVVOUUxFMUJRVTA3WjBKQlEwNHNWMEZCVnl4RlFVRkZMRTlCUVU4c1EwRkJReXhSUVVGUk8yRkJRemxDTEVOQlFVTXNRMEZCUXp0UlFVTk1MRU5CUVVNc1EwRkJRenRSUVVWTkxIZERRVUZ0UXl4SFFVRkhMR2xFUVVGUkxFTkJRVU1zUjBGQlJ5eEZRVUZGTzFsQlF6RkVMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTzJkQ1FVTnVRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNjVUpCUVhGQ0xFVkJRVVVzUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXp0aFFVTnFSRHRSUVVOSUxFTkJRVU1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVVkJMR3RDUVVGaExFZEJRVWNzUTBGQlF5eEZRVUZsTEVWQlFVVXNSVUZCUlRzN1dVRkRNVU1zU1VGQlNTeFZRVUZKTEVOQlFVTXNjMEpCUVhOQ0xEQkRRVUZGTEU5QlFVOHNSVUZCUlR0blFrRkRlRU1zVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXhKUVVGSkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1QwRkJUeXhEUVVGRE8yZENRVU5vUlN4TlFVRk5MRVZCUTBvc1MwRkJTeXhGUVVOTUxFMUJRVTBzUlVGRFRpeEpRVUZKTEVWQlFVVXNWVUZCVlN4RlFVTm9RaXhIUVVGSExFVkJRVVVzVTBGQlV5eEhRVU5tTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zY1VKQlFYRkNMRVZCUVVVc1EwRkJRenRuUWtGRGFFUXNUVUZCVFN4RlFVTktMRXRCUVVzc1JVRkJSU3haUVVGWkxFVkJRMjVDTEUxQlFVMHNSVUZCUlN4aFFVRmhMRVZCUTNKQ0xGTkJRVk1zUlVGQlJTeG5Ra0ZCWjBJc1JVRkRNMElzVlVGQlZTeEZRVUZGTEdsQ1FVRnBRaXhIUVVNNVFpeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNN1owSkJSV1lzU1VGRFJTeExRVUZMTEV0QlFVc3NXVUZCV1R0dlFrRkRkRUlzVFVGQlRTeExRVUZMTEdGQlFXRTdiMEpCUTNoQ0xGVkJRVlVzUzBGQlN5eHBRa0ZCYVVJN2IwSkJRMmhETEZOQlFWTXNTMEZCU3l4blFrRkJaMElzUlVGRE9VSTdiMEpCUTBFc1NVRkJTU3hGUVVGRkxFVkJRVVU3ZDBKQlEwNHNSVUZCUlN4RlFVRkZMRU5CUVVNN2NVSkJRMDQ3YjBKQlEwUXNUMEZCVHp0cFFrRkRVanRuUWtGRlJDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVTllPMjlDUVVORkxFdEJRVXM3YjBKQlEwd3NUVUZCVFR0dlFrRkRUaXhWUVVGVk8yOUNRVU5XTEZOQlFWTTdhVUpCUTFZc1JVRkRSQ3hIUVVGSExFVkJRVVU3YjBKQlEwZ3NSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRE8yZENRVU5pTEVOQlFVTXNRMEZEUml4RFFVRkRPMkZCUTBnN1VVRkRTQ3hEUVVGRExFTkJRVU03VVVGRlN5eFpRVUZQTEVkQlFVY3NSMEZCUnl4RlFVRkZPMWxCUTNCQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEcxQ1FVRk5MRWxCUVVrc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4RlFVRkhMRU5CUVVNN1VVRkRhRVFzUTBGQlF5eERRVUZETzFGQmNtMUxRU3hOUVVGTkxHVkJRV1VzUjBGQlJ5dzJSRUZCYTBJc1JVRkJSU3hEUVVGRE8xRkJRemRETEUxQlFVMHNSVUZEU2l4aFFVRmhMRVZCUTJJc1pVRkJaU3hIUVVGSExFdEJRVXNzUlVGRGRrSXNZMEZCWXl4SFFVRkhMRXRCUVVzc1JVRkRkRUlzWlVGQlpTeEhRVUZITEV0QlFVc3NSVUZEZGtJc1MwRkJTeXhIUVVGSExHVkJRV1VzUTBGQlF5eExRVUZMTEVWQlF6ZENMRWxCUVVrc1IwRkJSeXhsUVVGbExFTkJRVU1zU1VGQlNTeEhRVU0xUWl4SFFVRkhMRXRCUVVzc1EwRkJRenRSUVVOV0xFbEJRVWtzUTBGQlF5eExRVUZMTEN0RVFVTk1MR1ZCUVdVc1MwRkRiRUlzUzBGQlN5eEZRVU5NTEZOQlFWTXNSVUZCUlN4SlFVRkpMRXRCUTFvc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMRXRCUXpGQ0xHVkJRV1U3V1VGRFppeGpRVUZqTEVWQlEyUXNVVUZCVVN4RlFVRkZMR1ZCUVdVc1EwRkJReXhEUVVGRExFTkJRVU1zYTBSQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVNMVF5eEpRVUZKTEVWQlEwb3NTMEZCU3l4RlFVRkZMRTFCUVUwc1EwRkJReXhWUVVGVkxFVkJRM2hDTEUxQlFVMHNSVUZCUlN4TlFVRk5MRU5CUVVNc1YwRkJWeXhGUVVNeFFpeHJRa0ZCYTBJc1JVRkJSU3hMUVVGTExFZEJRekZDTEVOQlFVTTdVVUZGUml4SlFVRkpMRU5CUVVNc1JVRkJSU3hIUVVGSExDdERRVUZOTEVWQlFVVXNRMEZCUXp0UlFVVnVRaXhKUVVGSkxHRkJRV0VzUlVGQlJUdFpRVU5xUWl4TlFVRk5MRmxCUVZrc1IwRkRhRUlzUTBGQlF5eFRRVUZUTEVsQlFVa3NZVUZCWVN4TFFVRkpMRzFDUVVGaExFTkJRVU1zVDBGQlR5d3dRMEZCUlN4WlFVRlpMRVZCUVVNN1owSkJRMjVGTERCRVFVRnBRaXhGUVVFeVFpeERRVUZETzFsQlJTOURMRTFCUVUwc1IwRkJSeXhIUVVFMFFqdG5Ra0ZEYmtNc1MwRkJTeXhGUVVGRkxFbEJRVWs3WjBKQlExZ3NXVUZCV1R0blFrRkRXaXhYUVVGWExFVkJRVVVzU1VGQlNTeERRVUZETEZkQlFWYzdaMEpCUXpkQ0xGRkJRVkVzUlVGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVR0blFrRkRka0lzVlVGQlZTeEZRVUZGTEVsQlFVa3NRMEZCUXl4VlFVRlZPMmRDUVVNelFpeG5RMEZCWjBNc1JVRkJSU3hKUVVGSkxFTkJRVU1zWjBOQlFXZERPMmRDUVVOMlJTeFBRVUZQTEVWQlFVVTdiMEpCUTFBc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFpRVUZaTzJsQ1FVTjZRanRuUWtGRFJDeGxRVUZsTEVWQlFVVXNTVUZCU1N4RFFVRkRMR1ZCUVdVN1owSkJRM0pETEdkQ1FVRm5RaXhGUVVGRkxFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJN1owSkJRM1pETEZkQlFWY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN6dG5Ra0ZETjBJc1VVRkJVU3hGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxPMmRDUVVNeFFpeFBRVUZQTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTlCUVU4N1owSkJRM0pDTEdGQlFXRXNSVUZCUlN4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTzJkQ1FVTjRReXhsUVVGbExFVkJRVVVzU1VGQlNTeERRVUZETEdWQlFXVTdaMEpCUTNKRExFVkJRVVVzUlVGQlJTeEpRVUZKTEVOQlFVTXNSVUZCUlR0aFFVTklMRU5CUVVNN1dVRkRXQ3hKUVVGSkxFOUJRVThzWVVGQllTeExRVUZMTEZWQlFWVXNSVUZCUlR0blFrRkRka01zWVVGQllTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMkZCUTNCQ08ybENRVUZOTzJkQ1FVTk1MR0ZCUVdFc1EwRkJReXhQUVVGUExFZEJRVWNzUjBGQlJ5eERRVUZETzJGQlF6ZENPMWxCUTBRc1dVRkJXU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0VFFVTXpRanRSUVVWRUxFbEJRVWtzUTBGQlF5eDNRa0ZCZDBJc1IwRkJSenRaUVVNNVFpeFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEU5QlFVODdXVUZET1VNc1JVRkJSU3hGUVVGRkxFbEJRVWtzUTBGQlF5eEZRVUZGTzFOQlExb3NRMEZCUXp0UlFVVkdMRWxCUVVrc1EwRkJReXhMUVVGTExFZEJRVWNzU1VGQlNTeHhSRUZCU3l4RlFVRkZMRU5CUVVNN1VVRkRla0lzU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4SlFVRkpMSE5FUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEYWtNc1NVRkJTU3hEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEdsRVFVRlBMRVZCUVVVc1EwRkJRenRSUVVNM1FpeEpRVUZKTEVOQlFVTXNZVUZCWVN4SFFVRkhMRWxCUVVrc01rUkJRV0VzUTBGRGNFTXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeEZRVU55UWl4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVU5vUWl4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETERKQ1FVRXlRaXhGUVVGRkxFVkJRemxETEVsQlFVa3NRMEZEVEN4RFFVRkRPMUZCUTBZc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFhRVUZYTEVOQlFVTXNjMFJCUVU4c1EwRkJReXhEUVVGRE8xRkJSWGhETEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1kwRkJZeXhEUVVGRExIZEZRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEyeEZMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zWTBGQll5eERRVUZETEhkRlFVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNCRkxFTkJRVU03U1VGRlR5eFpRVUZaTzFGQlEyeENMRTFCUVUwc1YwRkJWeXhIUVVGSExFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJRenRSUVVNMVF5eE5RVUZOTEVWQlEwb3NTMEZCU3l4RlFVRkZMR05CUVdNc1JVRkRja0lzVFVGQlRTeEZRVUZGTEdWQlFXVXNSVUZEZGtJc1pVRkJaU3hIUVVOb1FpeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNN1VVRkRaaXhOUVVGTkxGZEJRVmNzUjBGQlJ5eGpRVUZqTEVkQlFVY3NWMEZCVnl4RFFVRkRPMUZCUTJwRUxFMUJRVTBzV1VGQldTeEhRVUZITEdWQlFXVXNSMEZCUnl4WFFVRlhMRU5CUVVNN1VVRkRia1FzU1VGQlNTeGxRVUZsTEVWQlFVVTdXVUZEYmtJc1QwRkJUeXhEUVVOTUxHbEdRVU5GTEZOQlFWTXNSVUZCUXl4dlFrRkJiMElzUlVGRE9VSXNTMEZCU3l4RlFVRkZPMjlDUVVOTUxFdEJRVXNzUlVGQlJTeGpRVUZqTzI5Q1FVTnlRaXhOUVVGTkxFVkJRVVVzWlVGQlpUdHZRa0ZEZGtJc1RVRkJUU3hGUVVGRkxIbEVRVUZuUWp0cFFrRkRla0lzUlVGRFJDeExRVUZMTEVWQlFVVXNWMEZCVnl4RlFVTnNRaXhOUVVGTkxFVkJRVVVzV1VGQldTeEZRVU53UWl4SFFVRkhMRVZCUVVVc1NVRkJTU3hEUVVGRExHVkJRV1VzUlVGRGVrSXNZVUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNSVUZETTBNc1lVRkJZU3hGUVVGRkxFbEJRVWtzUTBGQlF5eDFRa0ZCZFVJc1JVRkRNME1zVjBGQlZ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUlVGRGRrTXNaVUZCWlN4RlFVRkZMRWxCUVVrc1EwRkJReXhoUVVGaExFVkJRMjVETEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1pVRkJaU3hGUVVOcVF5eGhRVUZoTEVWQlFVVXNTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeG5Ra0ZGTVVNc2VVTkJRVU1zUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhaUVVOdVFpeERRVU5XTEVOQlFVTTdVMEZEU0R0UlFVTkVMRTlCUVU4c1EwRkRUQ3hwUmtGRFJTeFRRVUZUTEVWQlFVTXNiMEpCUVc5Q0xFVkJRemxDTEV0QlFVc3NSVUZCUlR0blFrRkRUQ3hMUVVGTExFVkJRVVVzWTBGQll6dG5Ra0ZEY2tJc1RVRkJUU3hGUVVGRkxHVkJRV1U3WVVGRGVFSXNSVUZEUkN4TFFVRkxMRVZCUVVVc1YwRkJWeXhGUVVOc1FpeE5RVUZOTEVWQlFVVXNXVUZCV1N4RlFVTndRaXhIUVVGSExFVkJRVVVzU1VGQlNTeERRVUZETEdWQlFXVXNSVUZEZWtJc1lVRkJZU3hGUVVGRkxFbEJRVWtzUTBGQlF5eDFRa0ZCZFVJc1JVRkRNME1zWVVGQllTeEZRVUZGTEVsQlFVa3NRMEZCUXl4MVFrRkJkVUlzUlVGRE0wTXNZVUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNSVUZETTBNc1lVRkJZU3hGUVVGRkxFbEJRVWtzUTBGQlF5eDFRa0ZCZFVJc1JVRkRNME1zVjBGQlZ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUlVGRGRrTXNaVUZCWlN4RlFVRkZMRWxCUVVrc1EwRkJReXhoUVVGaExFVkJRMjVETEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1pVRkJaU3huUWtGRmFFTXNlVU5CUVVNc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4WlFVTnVRaXhEUVVOV0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVMHNUVUZCVFRzN1VVRkRXQ3hOUVVGTkxFVkJRVVVzWTBGQll5eEZRVUZGTEdWQlFXVXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU03VVVGRGRrUXNUVUZCVFN4bFFVRmxMRWRCUVVjc05FUkJRVzFDTEVOQlEzcERMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVWQlEzaENMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRMWdzUTBGQlF6dFJRVU5HTEUxQlFVMHNSVUZEU2l4dFFrRkJiVUlzUlVGRGJrSXNaMEpCUVdkQ0xFVkJRMmhDTEZsQlFWa3NSVUZEV2l4cFFrRkJhVUlzUjBGRGJFSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJSV1lzVDBGQlR5eERRVU5NTERoRlFVTkZMRk5CUVZNc1JVRkJSU3huUkVGQlNTeERRVUZETEdsRFFVRnBReXhGUVVGRk8yZENRVU5xUkN4MVFrRkJkVUlzUlVGQlJTeGxRVUZsTzJkQ1FVTjRReXh2UWtGQmIwSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVVHRoUVVOd1F5eERRVUZETEVWQlEwWXNSMEZCUnl4RlFVRkZMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNSVUZEYUVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVWQlF6VkNMRkZCUVZFc1JVRkJSU3hEUVVGRExFVkJRMWdzVTBGQlV5eEZRVU5RTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNaMEpCUjJoRkxIVkVRVUZETERCQ1FVRXdRaXhEUVVGRExGRkJRVkVzYTBKQlEyeERMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zZDBKQlFYZENMR2RDUVVWd1F5eDNSRUZCUXl4bFFVRmxMRU5CUVVNc1VVRkJVU3hyUWtGQlF5eExRVUZMTEVWQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFc2FVSkJRelZETEhWRVFVRkRMR2xFUVVGUExFbEJRMDRzVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUTI1Q0xGRkJRVkVzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVTndRaXhMUVVGTExFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NSVUZEYWtJc1YwRkJWeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVWQlF6ZENMR0ZCUVdFc1JVRkJSU3hKUVVGSkxFTkJRVU1zWVVGQllTeEZRVU5xUXl4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVWQlFVVXNSVUZEYkVNc2JVSkJRVzFDTEVWQlFVVXNiVUpCUVcxQ0xFVkJRM2hETEZsQlFWa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVNM1FpeGxRVUZsTEVWQlFVVXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1JVRkRia01zWjBKQlFXZENMRVZCUVVVc1EwRkJReXhSUVVGUkxFVkJRVVVzUlVGQlJTeERRVU0zUWl4SlFVRkpMRU5CUVVNc05rSkJRVFpDTEVOQlFVTTdaME5CUTJwRExGRkJRVkU3WjBOQlExSXNVVUZCVVN4RlFVRkZMRkZCUVZFN1owTkJRMnhDTEV0QlFVc3NSVUZCUlN4SlFVRkpPelpDUVVOYUxFTkJRVU1zUlVGRlNpeGpRVUZqTEVWQlFVVXNZMEZCWXl4RlFVTTVRaXhoUVVGaExFVkJRVVVzU1VGQlNTeERRVUZETEdGQlFXRXNSVUZEYWtNc1VVRkJVU3hGUVVGRkxHMUVRVUZYTEVWQlFVVXNRMEZCUXl4SlFVRkpMRVZCUXpWQ0xHVkJRV1VzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1JVRkRNME1zWjBKQlFXZENMRVZCUVVVc1owSkJRV2RDTEVWQlEyeERMR3RDUVVGclFpeEZRVUZGTEZsQlFWa3NSVUZEYUVNc1pVRkJaU3hGUVVGRkxHVkJRV1VzUlVGRGFFTXNhMEpCUVd0Q0xFVkJRMmhDTEU5QlFVOHNWMEZCU1N4RFFVRkRMRXRCUVVzc01FTkJRVVVzWTBGQll5eE5RVUZMTEZkQlFWYzdaME5CUTJwRUxHTkJRV01zUlVGRmFFSXNXVUZCV1N4RlFVTldMRTlCUVU4c1YwRkJTU3hEUVVGRExFdEJRVXNzTUVOQlFVVXNTMEZCU3l4TlFVRkxMRmRCUVZjN1owTkJRM2hETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExHRkJRV0VzUTBGQlF5eExRVUZMTEVWQlJURkRMR2RDUVVGblFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1owSkJRV2RDTEVWQlF6ZERMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNSVUZETDBJc1kwRkJZeXhGUVVGRkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVWQlEyNURMRTlCUVU4c1JVRkJSU3hKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVU55UWl4RlFVRkZMRVZCUVVVc1NVRkJTU3hEUVVGRExFVkJRVVVzUlVGRFdDeGhRVUZoTEVWQlFVVXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1YwRkRha01zUlVGRFJpeG5SVUZCU3l4VFFVRlRMRVZCUVVNc1owTkJRV2RETEZkQlFVY3NSVUZEYkVRc1owVkJRVXNzVTBGQlV5eEZRVUZETEdsRFFVRnBReXhYUVVGSExFVkJRMnhFTEdWQlFXVXNRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNhMEpCUVd0Q0xFbEJRVWtzUTBGRGFFVXNkVVJCUVVNc01FUkJRVk1zU1VGRlVpeFBRVUZQTEVWQlFVVXNaVUZCWlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVNelFpeFJRVUZSTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkRjRUlzVjBGQlZ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4WFFVRlhMRVZCUXpkQ0xGVkJRVlVzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRlZCUVZVc1NVRktOVUlzWlVGQlpTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkxNVUlzUTBGRFNDeEZRVU5CTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhKUVVGSkxFTkJRM1pDTEhWRVFVRkRMREJEUVVGTExFbEJRMG9zVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUTNCQ0xGZEJRVmNzUlVGQlJTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RlFVTTNRaXhSUVVGUkxFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1JVRkRiRU1zVDBGQlR5eEZRVUZGTEVsQlFVa3NRMEZCUXl4WFFVRlhMRVZCUTNwQ0xHbENRVUZwUWl4RlFVRkZMR2xDUVVGcFFpeFhRVU53UXl4RFFVTklMRVZCUTBFc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFpRVUZaTEV0QlFVc3NTVUZCU1N4SlFVRkpMRU5CUTI1RExIVkVRVUZETERCRFFVRkxMRWxCUTBvc1QwRkJUeXhGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNXVUZCV1N4RlFVTm9ReXhWUVVGVkxFVkJRVVVzU1VGQlNTeERRVUZETEZWQlFWVXNWMEZETTBJc1EwRkRTQ3hGUVVORUxESkZRVUZQTEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVc1YwRkJVU3hoUVVOVUxGbEJRMU1zV1VGRGJFTXNRMEZEVUN4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVhGVFdTeHBRa0ZCYVVJN096dFpRVU0xUWl4SlFVRkpMRU5CUVVNc1UwRkJVeXhIUVVGSExFdEJRVXNzUTBGQlF6dFpRVU4yUWl4SlFVRkpMRU5CUVVNc2QwSkJRWGRDTEVOQlFVTXNVMEZCVXp0blFrRkRja01zU1VGQlNTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFOUJRVThzUTBGQlF6dFpRVVYwUXl4SlFVTkZMR0ZCUVc5Q0xFdEJRVXNzYVVSQlFWRTdaMEpCUTJwRExHRkJRVzlDTEV0QlFVc3NkMFJCUVdVc1JVRkRlRU03WjBKQlEwRXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1owSkJRekZETEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RlFVRkZPMjlDUVVOb1F5eExRVUZMTEVWQlFVVTdkMEpCUTB3c1dVRkJXU3hGUVVGRkxFbEJRVWs3ZDBKQlEyeENMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVU3TkVKQlExSXNUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8zZENRVU53UWl4RFFVRkRPM0ZDUVVOR08yOUNRVU5FTEZGQlFWRXNSVUZCUlR0M1FrRkRVaXhaUVVGWkxFVkJRVVVzU1VGQlNUdDNRa0ZEYkVJc1MwRkJTeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEpRVUZwUXl4RlFVRkZMRVZCUVVVN05FSkJRemxETEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzNkQ1FVTm9ReXhEUVVGRE8zRkNRVU5HTzI5Q1FVTkVMRWRCUVVjc1JVRkJSVHQzUWtGRFNDeFpRVUZaTEVWQlFVVXNTVUZCU1R0M1FrRkRiRUlzUzBGQlN5eEZRVUZGTEVsQlFVazdjVUpCUTFvN2IwSkJRMFFzVDBGQlR5eEZRVUZGTzNkQ1FVTlFMRmxCUVZrc1JVRkJSU3hKUVVGSk8zZENRVU5zUWl4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExFOUJRVTg3Y1VKQlEzQkNPMmxDUVVOR0xFTkJRVU1zUTBGQlF6dGhRVU5LTzFsQlJVUXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRPMWxCUXpWRExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hEUVVGRE8xbEJSWHBDTEVsQlFVa3NTVUZCU1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEU5QlFVOHNSVUZCUlR0blFrRkRka01zU1VGQlNTeERRVUZETEdOQlFXTXNSVUZCUlN4RFFVRkRPMkZCUTNaQ08xbEJSVVFzU1VGQlNTeG5Ra0ZCWjBJc1NVRkJTU3hOUVVGTkxFdEJRVWtzVlVGQlNTeERRVUZETEhOQ1FVRnpRaXd3UTBGQlJTeFBRVUZQTEVkQlFVVTdaMEpCUTNSRkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NTVUZCU1N4alFVRmpMRU5CUVVNc1IwRkJSeXhGUVVGRk8yOUNRVU0xUXl4NVFrRkJlVUk3YjBKQlEzcENMSGRGUVVGM1JUdHZRa0ZEZUVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNSMEZEY2tJc1NVRkJTU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRTlCUVZFc1EwRkJReXh4UWtGQmNVSXNSVUZCUlN4RFFVRkRPMjlDUVVNdlJDeEpRVUZKTEVOQlFVTXNVVUZCVVR0M1FrRkRXQ3hMUVVGTExFZEJRVWNzT0VSQlFYRkNPelJDUVVNM1FpeERRVUZETEUxQlFVMHNSMEZCUnl4blJVRkJkVUlzU1VGQlNTeExRVUZMTEVkQlFVY3NLMFJCUVhOQ0xFTkJRVU1zUTBGQlF6dHZRa0ZEZGtVc2EwSkJRV3RDTzI5Q1FVTnNRaXgzUlVGQmQwVTdiMEpCUTNoRkxFbEJRVWtzUTBGQlF5eGhRVUZoTEVWQlFVVXNRMEZCUXp0blFrRkRka0lzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTBnc1ZVRkJTU3hEUVVGRExHTkJRV01zTUVOQlFVVXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRoUVVOdVJUdHBRa0ZCVFN4SlFVRkpMRTFCUVUwc1EwRkJReXhWUVVGVkxFVkJRVVU3WjBKQlF6VkNMRTFCUVUwc1ZVRkJWU3hIUVVGSExFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlEyeERMR1ZCUVdVc09FUkJRWEZDTEhGQ1FVRnhRaXhuUlVGQmRVSXNkVUpCUVhWQ0xDdEVRVUZ6UWl4TFFVRkxMRU5CUTI1SkxFTkJRVU03WjBKQlEwWXNUVUZCVFN4UFFVRlBMRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4SFFVRkhMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dG5Ra0ZETTBRc1ZVRkJWU3hEUVVGRExGZEJRVmNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0blFrRkRhRU1zU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhIUVVGSExFZEJRVWNzUlVGQlJTeERRVUZETEZWQlFWVXNRMEZCUXl4alFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03WVVGRGVrVTdXVUZGUkN4TlFVRk5MRmxCUVZrc1IwRkJSeXhKUVVGSkxHVkJRV1VzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVVXhSU3hKUVVGSkxGbEJRVmtzUTBGQlF5eEhRVUZITEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUlVGQlJUdG5Ra0ZEZUVNc09FUkJRVGhFTzJkQ1FVTTVSQ3hKUVVGSkxFTkJRVU1zYjBKQlFXOUNMRVZCUVVVc1EwRkJRenRoUVVNM1FqdHBRa0ZCVFR0blFrRkRUQ3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJRenRoUVVNeFF6czdTMEZEUmp0SlFVVk5MRzlDUVVGdlFqczdVVUZEZWtJc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZEYUVJc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXp0UlFVTjRRaXhWUVVGSkxFTkJRVU1zWTBGQll5d3dRMEZCUlN4VlFVRlZMRVZCUVVVc1EwRkJRenRSUVVOc1F5eEpRVUZKTEVOQlFVTXNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVOMFFpeEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFVkJRVVVzUTBGQlF6dFJRVU0xUWl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzFGQlEzSkNMRmxCUVZrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVU16UWl4WlFVRlpMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRMjVDTEVOQlFVTTdTVUZUVHl4dlFrRkJiMEk3TzFGQlF6RkNMRkZCUVZFc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4NVJFRkJaMElzUlVGQlJTeEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1VVRkRia1VzVVVGQlVTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExHMUVRVUZWTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRM1JFTEZGQlFWRXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eHZSRUZCVnl4RlFVRkZMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMUZCUTI1RkxGRkJRVkVzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhyUkVGQlV5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVOd1JDeFZRVUZKTEVOQlFVTXNNRUpCUVRCQ0xEQkRRVUZGTEcxQ1FVRnRRaXhEUVVOc1JDeHhSRUZCV1N4RlFVTmFMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRMlFzUTBGQlF6dFJRVU5HTEZGQlFWRXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eHpSRUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEYmtVc1VVRkJVU3hEUVVGRExHMUNRVUZ0UWl4RFFVTXhRaXg1UkVGQlowSXNSVUZEYUVJc1NVRkJTU3hEUVVGRExESkNRVUV5UWl4RlFVTm9ReXhMUVVGTExFTkJRMDRzUTBGQlF6dFJRVU5HTEZGQlFWRXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eHZSRUZCVnl4RlFVRkZMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU40UkN4TlFVRk5MRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNjVVJCUVZrc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUXk5RUxFMUJRVTBzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXh4UkVGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGREwwUXNUVUZCVFN4RFFVRkRMRzFDUVVGdFFpeERRVUZETEcxRVFVRlZMRVZCUVVVc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTXpSQ3hWUVVGSkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1QwRkJUeXd3UTBGQlJTeHRRa0ZCYlVJc1EwRkRkRVFzZDBSQlFXVXNSVUZEWml4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVOcVFpeExRVUZMTEVOQlEwNHNRMEZCUXp0UlFVTkdMRlZCUVVrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4UFFVRlBMREJEUVVGRkxHMUNRVUZ0UWl4RFFVTjBSQ3h0UkVGQlZTeEZRVU5XTEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUTJwQ0xFdEJRVXNzUTBGRFRpeERRVUZETzFGQlJVWXNVVUZCVVN4RFFVRkRMRzFDUVVGdFFpeERRVU14UWl3MFJFRkJiVUlzUlVGRGJrSXNTVUZCU1N4RFFVRkRMR05CUVhGQ0xFVkJRekZDTEV0QlFVc3NRMEZEVGl4RFFVRkRPMUZCUTBZc1VVRkJVU3hEUVVGRExHMUNRVUZ0UWl4RFFVTXhRaXcyUkVGQmIwSXNSVUZEY0VJc1NVRkJTU3hEUVVGRExHVkJRWE5DTEVWQlF6TkNMRXRCUVVzc1EwRkRUaXhEUVVGRE8xRkJRMFlzVVVGQlVTeERRVUZETEcxQ1FVRnRRaXhEUVVNeFFpd3dSRUZCYVVJc1JVRkRha0lzU1VGQlNTeERRVUZETEZsQlFXMUNMRVZCUTNoQ0xFdEJRVXNzUTBGRFRpeERRVUZETzFGQlJVWXNWVUZCU1N4RFFVRkRMSFZDUVVGMVFpd3JRMEZCTlVJc1NVRkJTU3hEUVVFMFFpeERRVUZETzBsQlEyNURMRU5CUVVNN1NVRkZUeXhwUWtGQmFVSTdPMUZCUTNaQ0xFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1JVRkJSU3hEUVVGRE8xRkJRelZDTEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eDVSRUZCWjBJc1JVRkJSU3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJPMUZCUTNwRkxGRkJRVkVzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXh0UkVGQlZTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVOdVJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2MwSkJRWE5DTEVWQlFVVTdXVUZEY2tNc1VVRkJVU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMSE5FUVVGaExFVkJRVVVzU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRUUVVOcVJUdFJRVU5FTEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eHZSRUZCVnl4RlFVRkZMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVONFJTeFJRVUZSTEVOQlFVTXNaMEpCUVdkQ0xFTkJRM1pDTEhsRVFVRm5RaXhGUVVOb1FpeEpRVUZKTEVOQlFVTXNNa0pCUVRKQ0xFTkJRMnBETEVOQlFVTTdVVUZEUml3eVJFRkJNa1E3VVVGRE0wUXNiMEpCUVZFc1EwRkJReXhMUVVGTExEQkRRVUZGTEdkQ1FVRm5RaXh0UkVGQlJ5eGhRVUZoTEVWQlFVVXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xRkJRM0pGTEdsRFFVRnBRenRSUVVOcVF5eFJRVUZSTEVOQlFVTXNaMEpCUVdkQ0xFTkJRM1pDTERSRVFVRnRRaXhGUVVOdVFpeEpRVUZKTEVOQlFVTXNZMEZCY1VJc1JVRkRNVUlzUzBGQlN5eERRVU5PTEVOQlFVTTdVVUZEUml4UlFVRlJMRU5CUVVNc1owSkJRV2RDTEVOQlEzWkNMRFpFUVVGdlFpeEZRVU53UWl4SlFVRkpMRU5CUVVNc1pVRkJjMElzUlVGRE0wSXNTMEZCU3l4RFFVTk9MRU5CUVVNN1VVRkRSaXhSUVVGUkxFTkJRVU1zWjBKQlFXZENMRU5CUTNaQ0xEQkVRVUZwUWl4RlFVTnFRaXhKUVVGSkxFTkJRVU1zV1VGQmJVSXNSVUZEZUVJc1MwRkJTeXhEUVVOT0xFTkJRVU03VVVGRFJpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaU3hGUVVGRk8xbEJRemxDTEU5QlFVODdVMEZEVWp0UlFVVkVMRkZCUVZFc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4dlJFRkJWeXhGUVVGRkxFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRE8xRkJRMmhGTEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eHJSRUZCVXl4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU5xUkN4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zV1VGQldTeEZRVUZGTzFsQlF6TkNMRWxCUVVrc1EwRkJReXd3UWtGQk1FSXNSMEZCUnl4elJVRkJOa0lzUTBGRE4wUXNTVUZCU1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEU5QlFWRXNRMEZEY2tNc1EwRkJRenRaUVVOR0xFbEJRVWtzUTBGQlF5d3dRa0ZCTUVJc1EwRkJReXhuUWtGQlowSXNRMEZET1VNc2NVUkJRVmtzUlVGRFdpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVTmtMRU5CUVVNN1UwRkRTRHRSUVVORUxFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXh4UkVGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRE5VUXNUVUZCVFN4RFFVRkRMR2RDUVVGblFpeERRVUZETEhGRVFVRlpMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTTFSQ3hOUVVGTkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc2JVUkJRVlVzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRM2hFTEZWQlFVa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eFBRVUZQTERCRFFVRkZMR2RDUVVGblFpeERRVU51UkN4M1JFRkJaU3hGUVVObUxFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlEycENMRXRCUVVzc1EwRkRUaXhEUVVGRE8xRkJRMFlzVlVGQlNTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFOUJRVThzTUVOQlFVVXNaMEpCUVdkQ0xFTkJRMjVFTEcxRVFVRlZMRVZCUTFZc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGRGFrSXNTMEZCU3l4RFFVTk9MRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzYTBKQlFXdENMRU5CUVVNc1UwRkJiVUlzUlVGQlJTeFRRVUZ0UWpzN1VVRkRla1FzYlVWQlFXMUZPMUZCUTI1RkxFbEJRMFVzVTBGQlV5eERRVUZETEZkQlFWY3NTMEZCU3l4WFFVRlhPMWxCUTNKRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4TFFVRkxMRmRCUVZjN1dVRkRkRU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4clFrRkJhMElzUlVGRE4wSTdXVUZEUVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFRRVU01UXp0UlFVTkVMRWxCUVVrc1UwRkJVeXhEUVVGRExGRkJRVkVzUzBGQlN5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1JVRkJSVHRaUVVNNVF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNN1UwRkRka0k3VVVGRlJDeEpRVUZKTEZOQlFWTXNRMEZCUXl4bFFVRmxMRXRCUVVzc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVWQlFVVTdXVUZETlVRc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEdWQlFXVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVWQlFVVXNRMEZCUXl4RFFVRkRPMU5CUTJ4Rk8xRkJSVVFzU1VGQlNTeFRRVUZUTEVOQlFVTXNaVUZCWlN4TFFVRkxMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWlVGQlpTeEZRVUZGTzFsQlF6VkVMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4RFFVRkRPMWxCUTNwQ0xFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hEUVVGRE8xTkJRM3BDTzFGQlJVUXNTVUZCU1N4VFFVRlRMRU5CUVVNc1kwRkJZeXhMUVVGTExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZMEZCWXl4RlFVRkZPMWxCUXpGRUxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlN4alFVRmpMRVZCUVVVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNc1EwRkJRenRUUVVOb1JUdFJRVVZFTEVsQlFVa3NVMEZCVXl4RFFVRkRMRXRCUVVzc1MwRkJTeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUlVGQlJUdFpRVU0xUkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFVkJRVVVzUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFRRVU0xUXp0UlFVVkVMRWxCUVVrc1UwRkJVeXhEUVVGRExHVkJRV1VzUzBGQlN5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1JVRkJSVHRaUVVNMVJDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMmRDUVVOYUxGRkJRVkVzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRExFTkJRVU1zYTBSQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTVHRoUVVONFJDeERRVUZETEVOQlFVTTdVMEZEU2p0UlFVVkVMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVsQlFVa3NVMEZCVXl4RFFVRkRMRWxCUVVrc1MwRkJTeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NSVUZCUlR0WlFVTjZSQ3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzJkQ1FVTmFMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVazdZVUZEZEVJc1EwRkJReXhEUVVGRE8xTkJRMG83VVVGRlJDeFZRVUZKTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zVDBGQlR5d3dRMEZCUlN4VFFVRlRMRU5CUVVNc1RVRkJUU3hEUVVOdVJDeGhRVUZoTEVWQlEySXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFdEJRVXNzVFVGQlRTeERRVU0xUWl4RFFVRkRPMUZCUlVZc1NVRkRSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEc5Q1FVRnZRanRaUVVNdlFpeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4VFFVRlRMRU5CUVVNc1JVRkRla1U3V1VGRFFTeDNSVUZCZDBVN1dVRkRlRVVzVlVGQlZTeERRVUZETEVkQlFVY3NSVUZCUlR0blFrRkRaQ3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEdGQlFXRXNRMEZCUXl4dlJFRkJZeXhEUVVGRExFTkJRVU03V1VGRGJrUXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkRTanRSUVVORUxFMUJRVTBzUlVGQlJTeFpRVUZaTEVWQlFVVXNSMEZCUnl4VFFVRlRMRU5CUVVNN1VVRkRia01zU1VGRFJTeFRRVUZUTEVOQlFVTXNWMEZCVnl4TFFVRkxMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ6dFpRVU5vUkN4WlFVRlpMRWxCUVVrc1NVRkJTVHRaUVVOd1FpeHRSVUZCWjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETzFsQlF6VkNMSE5GUVVGblFpeERRVUZETEZsQlFWa3NRMEZCUXl4RlFVTTVRanRaUVVOQkxIbEZRVUZ6UWl4RFFVTndRaXhaUVVGWkxFVkJRMW9zU1VGQlNTeERRVUZETEV0QlFVc3NSVUZEVml4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVOV0xIRkVRVUZaTEVOQlExWXNLMGRCUVc5RUxFTkJRMnhFTEZsQlFWa3NSVUZEV2l4RFFVRkRMRU5CUVVNc1EwRkRTQ3hEUVVOR0xFTkJRMFlzUTBGQlF6dFRRVU5JTzFGQlJVUXNUVUZCVFN4WlFVRlpMRWRCUldRc1JVRkJSU3hEUVVGRE8xRkJRMUFzVFVGQlRTeHhRa0ZCY1VJc1IwRkRla0lzUlVGQlJTeERRVUZETzFGQlEwd3NUVUZCVFN4M1FrRkJkMElzUjBGRE5VSXNSVUZCUlN4RFFVRkRPMUZCUTB3c1RVRkJUU3huUWtGQlowSXNSMEZCTmtJc1JVRkJSU3hEUVVGRE8xRkJRM1JFTEUxQlFVMHNhVUpCUVdsQ0xFZEJRVFpDTEVWQlFVVXNRMEZCUXp0UlFVTjJSQ3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVWQlFVVTdXVUZEYkVRc1NVRkJTU3hKUVVGSkxFTkJRVU1zYTBKQlFXdENMRVZCUVVVN1owSkJRek5DTEV0QlFVc3NUVUZCVFN4RlFVRkZMRWxCUVVrc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUlVGQlJUdHZRa0ZEY2tRc1NVRkJTU3hEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEhkQ1FVRjNRaXhEUVVGRExFVkJRVVU3ZDBKQlEzSkRMSGRDUVVGM1FpeERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenR4UWtGRGJrTTdiMEpCUTBRc2QwSkJRWGRDTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzJsQ1FVTTNRenRoUVVOR08xbEJRMFFzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVN1owSkJRMnBDTEU5QlFVODdZVUZEVWp0WlFVTkVMRWxCUVVrc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJUdG5Ra0ZEYWtJc1owSkJRV2RDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dGhRVU0xUXp0WlFVTkVMRWxCUVVrc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJUdG5Ra0ZEYkVJc2FVSkJRV2xDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF6dGhRVU01UXp0WlFVTkVMSEZDUVVGeFFpeERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRzlGUVVFeVFpeERRVU16UkR0blFrRkRSU3hOUVVGTkxFVkJRVVVzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMmRDUVVOMFFpeE5RVUZOTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8yRkJRM1pDTEVWQlEwUXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkRXQ3hEUVVGRE8xbEJRMFlzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGRGRrTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRTQ3hOUVVGTkxHbENRVUZwUWl4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVU3V1VGRGNFVXNTVUZCU1N4dlJVRkJZeXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzJkQ1FVTXpRanRuUWtGRFJTeHRSRUZCYlVRN1owSkJRMjVFTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTzI5Q1FVTTVRaXhQUVVGUExFTkJRVU1zUlVGQlJTeExRVUZMTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNSVUZCUlN4RlFVTm9SRHR2UWtGRFFTeFBRVUZQTEV0QlFVc3NRMEZCUXp0cFFrRkRaRHRoUVVOR08xbEJRMFFzWjBWQlFXZEZPMWxCUTJoRkxESkNRVUV5UWp0WlFVTXpRaXhQUVVGUExFTkJRMHdzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR05CUVdNN1owSkJRekZDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1kwRkJZeXhEUVVGRExFbEJRVWtzUzBGQlN5eE5RVUZOTzJkQ1FVTjZReXhQUVVGUExFTkJRVU1zUlVGQlJTeExRVUZMTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1kwRkJZeXhEUVVGRExFVkJRVVVzUTBGRE5VTXNRMEZCUXp0UlFVTktMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzVFVGQlRTeEZRVUZGTEhkQ1FVRjNRaXhGUVVGRkxGVkJRVlVzUlVGQlJTeEhRVUZITEhWRVFVRlhMRU5CUXpGRUxHbENRVUZwUWl4RlFVTnFRaXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVU5XTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1owSkJRV2RDTEVWQlF6TkNMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNSVUZEZGtJc1NVRkJTU3hEUVVGRExFVkJRVWNzUlVGRFVpeEpRVUZKTEVOQlFVTXNUVUZCVHl4RlFVTmFPMWxCUTBVc1QwRkJUeXhGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHp0WlFVTXpRaXhQUVVGUExFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBPMWxCUXpOQ0xHMUNRVUZ0UWl4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYlVKQlFXMUNPMWxCUTI1RUxFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrN1dVRkRja0lzTWtKQlFUSkNMRVZCUVVVc2NVSkJRWEZDTzFsQlEyeEVMRzFDUVVGdFFpeEZRVUZGTEZsQlFWazdXVUZEYWtNc2QwSkJRWGRDTzFsQlEzaENMSE5DUVVGelFpeEZRVUZGTEdkQ1FVRm5RanRaUVVONFF5eDFRa0ZCZFVJc1JVRkJSU3hwUWtGQmFVSTdXVUZETVVNc2NVSkJRWEZDTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXh4UWtGQmNVSTdXVUZEZGtRc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3p0WlFVTjJRaXhWUVVGVkxFVkJRVVVzU1VGQlNTeERRVUZETEZWQlFWVTdXVUZETTBJc1YwRkJWeXhGUVVGRkxFdEJRVXM3V1VGRGJFSXNaMEpCUVdkQ0xFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVR0VFFVTnFReXhEUVVOR0xFTkJRVU03VVVGRlJpeEpRVUZKTEZWQlFWVXNSVUZCUlR0WlFVTmtMR2xDUVVGcFFpeEhRVUZITEZWQlFWVXNRMEZCUXp0VFFVTm9RenRSUVVORUxFMUJRVTBzWlVGQlpUdFJRVU51UWl4NVFrRkJlVUk3VVVGRGVrSXNkMFJCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdOQlFXTXNRMEZCUXp0WlFVTjBReXhEUVVGRExFTkJRVU1zUzBGQlN6dFpRVU5RTEVOQlFVTXNRMEZCUXl4RFFVRkRMSGRDUVVGM1FpeEpRVUZKTEdsQ1FVRnBRaXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEYUVVc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdWQlFXVXNTMEZCU3l4bFFVRmxMRVZCUVVVN1dVRkRiRVFzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMR1ZCUVdVc1JVRkJSU3hEUVVGRExFTkJRVU03VTBGRGNFTTdVVUZGUkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zTWtKQlFUSkNMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSVEZGTEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUlVGQlJTeERRVUZETzFGQlJUVkNMSGRGUVVGM1JUdFJRVU40UlN4NVJVRkJlVVU3VVVGRGVrVXNNa1ZCUVRKRk8xRkJRek5GTEd0RVFVRnJSRHRSUVVOc1JDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFVkJRVVU3V1VGRGVrSXNaMEpCUVVrc1EwRkJReXhMUVVGTExFVkJRVU1zVVVGQlVTeHRSRUZEYWtJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5d3lRa0ZCTWtJc1JVRkJSU3hGUVVONFF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVTldMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRMWdzUTBGQlF6dFRRVU5JTzBsQlEwZ3NRMEZCUXp0SlFUWkRUeXhOUVVGTkxFTkJRVU1zWVVGQllUdFJRVU14UWl4WFFVRlhMRWRCUVVjc1MwRkJTeXhEUVVGRE8wbEJRM1JDTEVOQlFVTTdTVUVyVGs4c1owSkJRV2RDTEVOQlFVTXNTVUZCVXp0UlFVTm9ReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkhMRzlGUVVFeVFpeERRVU14UXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hQUVVGUExFVkJRVVVzVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZCUlN4RlFVTjBReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVU5ZTEVOQlFVTTdVVUZGUml4TlFVRk5MRTlCUVU4c1IwRkJSeXg1UkVGQll5eERRVUZETzFsQlF6ZENMRU5CUVVNN1dVRkRSQ3hEUVVGRE8xbEJRMFFzVjBGQlZ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2MwSkJRWE5DTzFsQlF6bERMR1ZCUVdVc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETERCQ1FVRXdRanRaUVVOMFJDeFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXh2UWtGQmIwSTdXVUZETVVNc1YwRkJWeXhGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNjMEpCUVhOQ08xbEJRemxETEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExITkNRVUZ6UWp0WlFVTTVReXhUUVVGVExFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4dlFrRkJiMEk3V1VGRE1VTXNUMEZCVHl4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYTBKQlFXdENPMWxCUTNSRExHVkJRV1VzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMREJDUVVFd1FqdFpRVU4wUkN4SlFVRkpPMWxCUTBvc1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNiVUpCUVcxQ08xbEJRM2hETEZWQlFWVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExIRkNRVUZ4UWp0WlFVTTFReXhUUVVGVExFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4dlFrRkJiMEk3V1VGRE1VTXNZVUZCWVN4RlFVRkZMQ3RFUVVGelFqdFRRVU4wUXl4RFFVRkRMRU5CUVVNN1VVRkZTQ3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEd0Q1FVRnJRaXhEUVVGRE8xbEJRelZDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXd5UWtGQk1rSXNSVUZCUlR0WlFVTXpReXhQUVVGUE8xTkJRMUlzUTBGQlF5eERRVUZETzFGQlEwZ3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxHdENRVUZyUWl4RlFVRkZMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRemxFTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU03U1VGRGFrTXNRMEZCUXp0SlFUWlhUeXhsUVVGbExFTkJRVU1zVjBGQmIwTTdVVUZETVVRc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJUdFpRVU51UWl3d1JFRkJhVUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVGRE8xTkJRemRETzFGQlEwUXNTVUZCU1N4dFJFRkJWU3hEUVVGRExGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNSVUZCUlR0WlFVTjBReXhKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTEVOQlFVTTdVMEZEZGtJN1VVRkRSQ3hKUVVGSkxFTkJRVU1zZVVWQlFXMUNMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVVU3V1VGRGNrTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxHbENRVUZwUWl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU03VTBGRE1VTTdVVUZEUkN4SlFVRkpMRmRCUVZjc1MwRkJTeXhQUVVGUExFVkJRVVU3V1VGRE0wSXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1JVRkJSU3hEUVVGRE8xTkJRM1JDTzFGQlEwUXNTVUZCU1N4WFFVRlhMRXRCUVVzc1YwRkJWeXhGUVVGRk8xbEJReTlDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN1owSkJRMW9zVjBGQlZ6dG5Ra0ZEV0N4clFrRkJhMElzUlVGQlJTeEZRVUZGTzJkQ1FVTjBRaXhuUWtGQlowSXNSVUZCUlN4RlFVRkZPMmRDUVVOd1FpeGpRVUZqTEVWQlFVVXNTVUZCU1R0aFFVTnlRaXhEUVVGRExFTkJRVU03VTBGRFNqdGhRVUZOTzFsQlEwd3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxGZEJRVmNzUlVGQlJTeERRVUZETEVOQlFVTTdVMEZEYUVNN1NVRkRTQ3hEUVVGRE8wbEJPRU5QTEdsQ1FVRnBRaXhEUVVOMlFpeFBRVUU0UWl4RlFVTTVRaXhGUVVORkxHbENRVUZwUWl4SFFVRkhMRXRCUVVzc1IwRkhNVUk3VVVGRlJDeE5RVUZOTEdGQlFXRXNSMEZCUnl4RFFVTndRaXhKUVVGWkxFVkJRMW9zV1VGQmIwSXNSVUZEY0VJc1UwRkJhMElzUlVGRGJFSXNSVUZCUlR0WlFVTkdMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYTBKQlFXdENMRU5CUVVNN1owSkJRelZDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXd5UWtGQk1rSXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTzI5Q1FVTXpSQ3hKUVVGSkxGRkJRVkVzUTBGQlF5eEZRVUZGTEV0QlFVc3NUMEZCVHl4RFFVRkRMRVZCUVVVc1NVRkJTU3gzUkVGQllTeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZPM2RDUVVONlJDeFBRVUZQTERSRVFVRnBRaXhEUVVGRExGRkJRVkVzUlVGQlJUczBRa0ZEYWtNc1NVRkJTVHMwUWtGRFNpeFRRVUZUT3pSQ1FVTlVMRmxCUVZrN2VVSkJRMklzUTBGQlF5eERRVUZETzNGQ1FVTktPMjlDUVVORUxFOUJRVThzVVVGQlVTeERRVUZETzJkQ1FVTnNRaXhEUVVGRExFTkJRVU03WVVGRFNDeERRVUZETEVOQlFVTTdVVUZEVEN4RFFVRkRMRU5CUVVNN1VVRkZSaXh6UkVGQlZ5eERRVUZETzFsQlExWXNSVUZCUlN4RlFVRkZMRTlCUVU4c1EwRkJReXhGUVVGRk8xbEJRMlFzVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5PMWxCUTI1Q0xHbENRVUZwUWl4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzJkQ1FVTXhRaXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEZOQlFWTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1UwRkJVeXhGUVVGRkxFZEJRVWNzYjBWQlFUSkNMRU5CUTJoRk8yOUNRVU5GTEUxQlFVMHNSVUZCUlN4RFFVRkRPMjlDUVVOVUxFMUJRVTBzUlVGQlJTeERRVUZETzJsQ1FVTldMRVZCUTBRc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGRFdDeERRVUZETzJkQ1FVTkdMRTlCUVU4N2IwSkJRMHdzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1ZVRkJWVHR2UWtGRGFrTXNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV6dHBRa0ZEYWtNc1EwRkJRenRaUVVOS0xFTkJRVU03V1VGRFJDeFJRVUZSTEVWQlFVVXNNa1JCUVd0Q0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUlR0blFrRkRjRU1zWVVGQllTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03WjBKQlEycERMRWxCUVVrc09FUkJRVzFDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVN2IwSkJRMmhETEhORlFVRnRRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJsQ1FVTTVRanRaUVVOSUxFTkJRVU1zUTBGQlF6dFpRVU5HTEZGQlFWRXNSVUZCUlN3eVJFRkJhMElzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RlFVRkZMRmRCUVZjc1JVRkJSU3haUVVGWkxFVkJRVVVzUlVGQlJTeEZRVUZGTzJkQ1FVTnVSU3hOUVVGTkxGTkJRVk1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRuUWtGREwwSXNZVUZCWVN4RFFVRkRMRWxCUVVrc1JVRkJSU3haUVVGWkxFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTTdaMEpCUXpkRExHdEZRVUZyUlR0blFrRkRiRVVzYTBWQlFXdEZPMmRDUVVOc1JTeEpRVUZKTEVOQlFVTXNVMEZCVXl4SlFVRkpMRmRCUVZjc1JVRkJSVHR2UWtGRE4wSXNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eFBRVUZQTEVOQlFVTXNWMEZCVnp0M1FrRkRNME1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4WFFVRlhPM2RDUVVOeVFpeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJRenR2UWtGRFppeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzNkQ1FVTTFRaXhyUWtGQmEwSXNhME5CUTJJc1UwRkJVeXhEUVVGRExHdENRVUZyUWl4TFFVTXZRaXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRVZCUVVVc1NVRkJTU3hIUVVNeFFqdHhRa0ZEUml4RFFVRkRMRU5CUVVNc1EwRkJRenRwUWtGRFREdG5Ra0ZEUkN4SlFVRkpMRk5CUVZNc1JVRkJSVHR2UWtGRFlpd3lSVUZCZDBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dHBRa0ZETDBRN1owSkJRMFFzU1VGQlNTeERRVUZETEZOQlFWTXNTVUZCU1N4cFFrRkJhVUlzUlVGQlJUdHZRa0ZEYmtNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eGxRVUZsTEVWQlFVVXNRMEZCUXp0cFFrRkRhRU03WjBKQlJVUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJRenR2UWtGRFdpeGxRVUZsTEVWQlFVVXNTVUZCU1R0dlFrRkRja0lzWTBGQll5eEZRVUZGTEVsQlFVazdhVUpCUTNKQ0xFTkJRVU1zUTBGQlF6dG5Ra0ZEU0N4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeEZRVUZGTzI5Q1FVTTFRaXd3UkVGQmFVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN2FVSkJRM2hFTzJkQ1FVVkVMRWxCUVVrc1EwRkJReXhqUVVGakxFVkJRVVVzUTBGQlF6dFpRVU40UWl4RFFVRkRMRU5CUVVNN1dVRkRSaXhQUVVGUE8xbEJRMUFzYlVKQlFXMUNMRVZCUVVVc1NVRkJTU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRTlCUVU4N1dVRkRlRVFzUjBGQlJ5eEZRVUZGTEVsQlFVazdVMEZEVml4RFFVRkRMRU5CUVVNN1VVRkRTQ3hyUkVGQmEwUTdVVUZEYkVRc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMRU5CUVVNN1VVRkZlRUlzZFVWQlFYVkZPMUZCUTNaRkxIVkZRVUYxUlR0UlFVTjJSU3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1dVRkJXU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBsQlF6TkVMRU5CUVVNN1NVRkZUeXhuUWtGQlowSTdVVUZEZEVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dFpRVU5hTEd0Q1FVRnJRaXhGUVVGRkxFVkJRVVU3V1VGRGRFSXNaMEpCUVdkQ0xFVkJRVVVzUlVGQlJUdFpRVU53UWl4alFVRmpMRVZCUVVVc1NVRkJTVHRUUVVOeVFpeERRVUZETEVOQlFVTTdTVUZEVEN4RFFVRkRPMGxCUlU4c2QwSkJRWGRDTEVOQlF6bENMRU5CUVZNc1JVRkRWQ3hEUVVGVE8xRkJSVlFzVFVGQlRTeFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVN1dVRkRPVU1zZFVKQlFYVkNMRVZCUVVVc1NVRkJTVHRUUVVNNVFpeERRVUZETEVOQlFVTTdVVUZGU0N4SlFVRkpMRTlCUVU4c1NVRkJTU3gzUkVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExGTkJRVk1zUlVGQlJUdFpRVU16UkN4UFFVRlBMRTlCUVU4c1EwRkJRenRUUVVOb1FqdFJRVU5FTEU5QlFVOHNTVUZCU1N4RFFVRkRPMGxCUTJRc1EwRkJRenRKUVVWUExHOUNRVUZ2UWl4RFFVTXhRaXhEUVVGVExFVkJRMVFzUTBGQlV5eEZRVU5VTEVsQlMwTTdVVUZGUkN4TlFVRk5MR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRU5CUXk5RExFTkJRVU1zUlVGRFJDeERRVUZETEVWQlEwUXNTVUZCU1N4aFFVRktMRWxCUVVrc2RVSkJRVW9zU1VGQlNTeERRVUZGTEhWQ1FVRjFRaXhEUVVNNVFpeERRVUZETzFGQlEwWXNTVUZCU1N4alFVRmpMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUlVGQlJUdFpRVU0zUWl4SlFVRkpMRWxCUVVrc1lVRkJTaXhKUVVGSkxIVkNRVUZLTEVsQlFVa3NRMEZCUlN4alFVRmpMRVZCUVVVN1owSkJRM2hDTEV0QlFVc3NTVUZCU1N4TFFVRkxMRWRCUVVjc1kwRkJZeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlFVVXNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTzI5Q1FVTXZSQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zWTBGQll5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRk8zZENRVU16UkN4UFFVRlBMR05CUVdNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dHhRa0ZET1VJN2FVSkJRMFk3WVVGRFJqdFpRVU5FTEUxQlFVMHNkMEpCUVhkQ0xFZEJRelZDTEdOQlFXTXNRMEZCUXl4alFVRmpMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlF6VkRMSGxGUVVGNVJUdFpRVU42UlN3MFJVRkJORVU3V1VGRE5VVXNUMEZCVHl3eVJrRkJaMFFzUTBGRGNrUXNkMEpCUVhkQ0xFVkJRM2hDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUTFZc1EwRkJReXhGUVVORUxFTkJRVU1zUTBGRFJqdG5Ra0ZEUXl4RFFVRkRMRU5CUVVNc1kwRkJZeXhEUVVGRExHTkJRV01zUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRPMmRDUVVNelF5eERRVUZETEVOQlFVTXNkMEpCUVhkQ0xFTkJRVU03VTBGRE9VSTdVVUZEUkN4SlFVRkpMR05CUVdNc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF5eEZRVUZGTzFsQlF5OUNMRTlCUVU4c1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFOQlF6RkNPMUZCUTBRc1QwRkJUeXhKUVVGSkxFTkJRVU03U1VGRFpDeERRVUZETzBsQlJVOHNjVUpCUVhGQ0xFTkJRek5DTEVOQlFWTXNSVUZEVkN4RFFVRlRMRVZCUTFRc01FSkJRVzFETEV0QlFVczdVVUZGZUVNc1RVRkJUU3hSUVVGUkxFZEJRVWNzZFVKQlFYVkNPMWxCUTNSRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1JVRkJSVHRaUVVNeFFpeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzN2FVSkJRMUFzVjBGQlZ5eEZRVUZGTzJsQ1FVTmlMRTFCUVUwc1EwRkRUQ3hEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMSGRFUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NUMEZCVHl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVNNVJDeERRVUZETzFGQlJWSXNUMEZCVHl3NFJFRkJjVUlzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hEUVVOcVJDeHJSRUZCVHl4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkRia01zUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZuZWtKUExHbERRVUZwUXl4RFFVTjJReXhMUVVFMFF6dFJRVVUxUXl4SlFVRkpMR0ZCUVdFc1MwRkJTeXhKUVVGSkxFVkJRVVU3V1VGRE1VSXNlVVZCUVhsRk8xbEJRM3BGTEd0R1FVRnJSanRaUVVOc1JpdzRSRUZCT0VRN1dVRkRPVVFzWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMU5CUTNSQ08wbEJRMGdzUTBGQlF6dEpRVzFIVHl3d1FrRkJNRUlzUTBGRGFFTXNTMEZCTkVNN1VVRkZOVU1zVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUlVGQlJUdFpRVU53UXl4RFFVRkRMRVZCUVVVc1MwRkJTeXhEUVVGRExFOUJRVTg3V1VGRGFFSXNRMEZCUXl4RlFVRkZMRXRCUVVzc1EwRkJReXhQUVVGUE8xTkJRMnBDTEVOQlFVTXNRMEZCUXp0UlFVVklMRWxCUVVrc1QwRkJUeXhEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEV0QlFVc3NRMEZCUXl4RlFVRkZPMWxCUXk5Q0xFOUJRVThzUTBGQlF5eFZRVUZWTEVkQlFVY3NiMFJCUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdXVUZEYWtRc1QwRkJUeXhEUVVGRExGbEJRVmtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU03V1VGRE4wTXNUMEZCVHl4RFFVRkRMR1ZCUVdVc1IwRkJSeXh6UkVGQlZ5eERRVU51UXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkRkRU1zUTBGQlF6dFRRVU5JTzBsQlEwZ3NRMEZCUXp0SlFVVlBMSFZDUVVGMVFpeERRVU0zUWl4TFFVRTBRenRSUVVVMVF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4dlJVRkJNa0lzUTBGQlF5eExRVUZMTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRemxFTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzTkVSQlFXMUNMRU5CUXpGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RlFVRkZMRVZCUTNoQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlExZ3NRMEZCUXp0UlFVTkdMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1IwRkJSeXd3UkVGQlpTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU03VVVGRmJrVXNUMEZCVHp0WlFVTk1MRTFCUVUwN1dVRkRUaXhoUVVGaExFVkJRVVVzUzBGQlN5eERRVUZETEc5RVFVRm5RaXhEUVVGRE8xbEJRM1JETEZsQlFWa3NSVUZCUlN4eFJFRkJXU3hEUVVONFFpeHZSRUZCV1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVU4wUkR0WlFVTkVMRlZCUVZVc1JVRkJSU3g1UkVGQlowSXNRMEZETVVJc2FVSkJRV2xDTEVWQlEycENMRXRCUVVzc1EwRkJReXhQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VlFVRlZMRVZCUTNKRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRM0pETzFsQlEwUXNORVJCUVRSRU8xbEJRelZFTEZWQlFWVXNiMEpCUVU4c1RVRkJUU3hEUVVGRk8xbEJRM3BDTEdkQ1FVRm5RaXhGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEU5QlFVOHNSVUZCUlN4RlFVRkZPMmRDUVVOcVJTeEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFVkJRVVVzY1VWQlFXVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU01UXl4UFFVRlBMRWRCUVVjc1EwRkJRenRaUVVOaUxFTkJRVU1zUlVGQlJTeEpRVUZKTEVkQlFVY3NSVUZCTUVNc1EwRkJRenRaUVVOeVJDeE5RVUZOTEVWQlFVVTdaMEpCUTA0c1ZVRkJWU3hGUVVGRkxFdEJRVXM3WjBKQlEycENMRlZCUVZVc1JVRkJSU3hMUVVGTE8yZENRVU5xUWl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVN1owSkJRM1JDTEdOQlFXTXNSVUZCUlN4UlFVRlJPMmRDUVVONFFpeE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVN1lVRkRka1E3V1VGRFJDeEhRVUZITEVWQlFVVTdaMEpCUTBnc1QwRkJUeXhGUVVGRkxFbEJRVWs3WjBKQlEySXNZMEZCWXl4RlFVRkZMRVZCUVVVN1owSkJRMnhDTEcxQ1FVRnRRaXhGUVVGRkxFdEJRVXM3WjBKQlF6RkNMR2xDUVVGcFFpeEZRVUZGTEV0QlFVczdaMEpCUTNoQ0xIbERRVUY1UXl4RlFVTjJReXhKUVVGSkxFTkJRVU1zTkVOQlFUUkRMRU5CUXk5RExFMUJRVTBzUlVGRFRpeG5Ra0ZCWjBJc1EwRkRha0k3WjBKQlEwZ3NiVUpCUVcxQ0xFVkJRVVVzUzBGQlN6dGhRVU16UWp0WlFVTkVMRWxCUVVrc1JVRkJSVHRuUWtGRFNpeFhRVUZYTEVWQlFVVXNTMEZCU3p0blFrRkRiRUlzVFVGQlRTeEZRVUZGTEVsQlFVazdZVUZEWWp0WlFVTkVMR05CUVdNc1JVRkJSVHRuUWtGRFpDeE5RVUZOTEVWQlFVVXNTVUZCU1R0blFrRkRXaXhKUVVGSkxFVkJRVVVzU1VGQlNUdG5Ra0ZEVml4UFFVRlBMRVZCUVVVc1NVRkJTVHRuUWtGRFlpeFRRVUZUTEVWQlFVVXNTVUZCU1R0aFFVTm9RanRaUVVORUxGbEJRVmtzUlVGQlJUdG5Ra0ZEV2l4WFFVRlhMRVZCUVVVc1MwRkJTenRoUVVOdVFqdFRRVU5HTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc2MwUkJRWE5FTzBsQlF6bERMSFZDUVVGMVFpeERRVU0zUWl4TFFVRTBReXhGUVVNMVF5eG5Ra0ZCYTBNN1VVRkZiRU1zU1VGRFJTeERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVlVGQlZTeERRVUZETEZsQlFWa3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zV1VGQldTeERRVUZETEVWQlEzWkZPMWxCUTBFc1QwRkJUeXhMUVVGTExFTkJRVU03VTBGRFpEdFJRVU5FTEcxQ1FVRnRRaXhIUVVGSExFbEJRVWtzUTBGQlF6dFJRVU16UWl4blFrRkJaMElzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4SFFVRkhMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU03VVVGRE9VTXNaMEpCUVdkQ0xFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRE8xRkJRemxETEUxQlFVMHNZVUZCWVN4SFFVRkhMRzlGUVVFeVFpeERRVUZETEVOQlFVTXNTMEZCYlVJc1JVRkJSU3hGUVVGRk8xbEJRM2hGTEUxQlFVMHNUVUZCVFN4SFFVRkhMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU03V1VGRE5VSXNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3haUVVGWkxGZEJRVmNzUTBGQlF5eEZRVUZGTzJkQ1FVTndReXhQUVVGUE8yRkJRMUk3V1VGRlJDeEpRVUZKTEVOQlFVTXNLMEpCUVN0Q0xFTkJRVU1zUzBGQlN5eEZRVUZGTEdkQ1FVRm5RaXhEUVVGRExFTkJRVU03VVVGRGFFVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZTQ3hOUVVGTkxGZEJRVmNzUjBGQlJ5d3lSRUZCYTBJc1EwRkJReXhIUVVGSExFVkJRVVU3V1VGRE1VTXNiVUpCUVcxQ0xFZEJRVWNzUzBGQlN5eERRVUZETzFsQlF6VkNMREJFUVVGcFFpeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0WlFVTjJSQ3hoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETzFsQlEzSkNMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU03WjBKQlExb3NXVUZCV1N4RlFVRkZMRWxCUVVrN1lVRkRia0lzUTBGQlF5eERRVUZETzFsQlEwZ3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03V1VGRGNrUXNUVUZCVFN4RFFVRkRMRzFDUVVGdFFpeERRVUZETERKRVFVRnJRaXhGUVVGRkxHRkJRV0VzUTBGQlF5eERRVUZETzFsQlF6bEVMRTFCUVUwc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4NVJFRkJaMElzUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXp0WlFVTXhSQ3hoUVVGaExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUZEZUVJc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRlNDeGhRVUZoTEVkQlFVY3NWMEZCVnl4RFFVRkRPMUZCUlRWQ0xFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXd5UkVGQmEwSXNSVUZCUlN4aFFVRmhMRU5CUVVNc1EwRkJRenRSUVVNelJDeE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zZVVSQlFXZENMRVZCUVVVc1YwRkJWeXhEUVVGRExFTkJRVU03VVVGRGRrUXNUMEZCVHl4SlFVRkpMRU5CUVVNN1NVRkRaQ3hEUVVGRE8wbEJhVTVQTEd0Q1FVRnJRaXhEUVVGRExGVkJRVzlETzFGQlF6ZEVMRTlCUVU4c1ZVRkJWU3hKUVVGSkxFbEJRVWtzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR3RDUVVGclFpeERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVNMVJTeERRVUZETzBsQlJVOHNORU5CUVRSRExFTkJRMnhFTEV0QlFYbERMRVZCUTNwRExHZENRVUU0UXp0UlFVVTVReXhKUVVGSkxHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVU3V1VGREwwSXNUMEZCVHl4TFFVRkxMRU5CUVVNN1UwRkRaRHRSUVVWRUxHbEZRVUZwUlR0UlFVTnFSU3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETzFGQlF6ZERMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXd3UkVGQlpTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU03VVVGRE0wUXNUMEZCVHl4RFFVTk1MRXRCUVVzc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEZOQlFWTTdXVUZEZUVJc1MwRkJTeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NVMEZCVXp0WlFVTjRRaXhMUVVGTExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4VFFVRlRPMWxCUTNoQ0xFdEJRVXNzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRk5CUVZNc1EwRkRla0lzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZyVWs4c0swSkJRU3RDTEVOQlEzSkRMR2RDUVVGclF6dFJRVVZzUXl4UFFVRlBMREpFUVVGclFpeERRVUZETEVOQlFVTXNTMEZCYjBJc1JVRkJSU3hGUVVGRk8xbEJRMnBFTEVsQlFVa3NTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEdkQ1FVRm5RaXhGUVVGRkxFdEJRVXNzUTBGQlF5eEZRVUZGTzJkQ1FVTnVSQ3hQUVVGUE8yRkJRMUk3V1VGRFJDeEpRVUZKTEVOQlFVTXNNRUpCUVRCQ0xFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRE0wUXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRUQ3hEUVVGRE8wbEJSVThzTmtKQlFUWkNMRU5CUTI1RExHZENRVUZyUXp0UlFVVnNReXhQUVVGUExESkVRVUZyUWl4RFFVRkRMRU5CUVVNc1MwRkJiMElzUlVGQlJTeEZRVUZGTzFsQlEycEVMRGhEUVVFNFF6dFpRVU01UXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhMUVVGTExEUkRRVUZSTEVsQlFVa3NTMEZCU3l4RFFVRkRMR05CUVdNc1JVRkJSU3hEUVVGRE8xbEJRMnBFTEVsQlFVa3NTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEdkQ1FVRm5RaXhGUVVGRkxFdEJRVXNzUTBGQlF5eEZRVUZGTzJkQ1FVTnVSQ3hQUVVGUE8yRkJRMUk3V1VGRFJDeEpRVUZKTEVOQlFVTXNNRUpCUVRCQ0xFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRE0wUXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRUQ3hEUVVGRE8wbEJSVThzYlVOQlFXMURMRU5CUTNwRExHZENRVUZyUXp0UlFVVnNReXhQUVVGUExHOUZRVUV5UWl4RFFVRkRMRU5CUVVNc1MwRkJiVUlzUlVGQlJTeEZRVUZGT3p0WlFVTjZSQ3c0UkVGQk9FUTdXVUZET1VRc01FVkJRVEJGTzFsQlF6RkZMRzFGUVVGdFJUdFpRVU51UlN4eFFrRkJjVUk3V1VGRGNrSXNTVUZCU1N4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4TFFVRkxMRWxCUVVrc1JVRkJSVHRuUWtGRGVrTXNaMEpCUVdkQ0xFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4eFJFRkJXU3hEUVVONlF5d3dSRUZCWlN4RFFVTmlMRFJFUVVGdFFpeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVTjZSQ3huUWtGQlowSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhGUVVONlFpeG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVU14UWl4RFFVTkdMRU5CUVVNN1lVRkRTRHRaUVVWRUxFMUJRVTBzVFVGQlRTeEhRVUZITEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNN1dVRkROVUlzU1VGQlNTeERRVUZETEVOQlFVTXNUVUZCVFN4WlFVRlpMRmRCUVZjc1EwRkJReXhGUVVGRk8yZENRVU53UXl4UFFVRlBPMkZCUTFJN1dVRkZSQ3hKUVVGSkxFbEJRVWtzUTBGQlF5d3JRa0ZCSzBJc1EwRkJReXhMUVVGTExFVkJRVVVzWjBKQlFXZENMRU5CUVVNc1JVRkJSVHRuUWtGRGFrVXNUMEZCVHp0aFFVTlNPMWxCUlVRc1RVRkJUU3hoUVVGaExFZEJRVWNzYjBWQlFUSkNMRU5CUVVNc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTnlSU3hOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEV0QlFVc3NRMEZCUXl4SFFVRkhMRzlFUVVGWkxFTkJRMnBETEdGQlFXRXNRMEZCUXl4RFFVRkRMRVZCUTJZc1lVRkJZU3hEUVVGRExFTkJRVU1zUlVGRFppeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkRjRUlzUTBGQlF6dFpRVVZHTEdsRlFVRnBSVHRaUVVOcVJTdzBSRUZCTkVRN1dVRkROVVFzTkVSQlFUUkVPMWxCUXpWRUxEQkNRVUV3UWp0WlFVTXhRaXhKUVVORkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmM3WjBKQlEyeERMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEV0QlFVc3NUMEZCVHp0dlFrRkRha01zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRXRCUVVzc1RVRkJUU3hEUVVGRExFVkJRM0JETzJkQ1FVTkJMRWxCUTBVc2EwUkJRVlVzUTBGRFVpeGhRVUZoTEVOQlFVTXNRMEZCUXl4RlFVTm1MR0ZCUVdFc1EwRkJReXhEUVVGRExFVkJRMllzWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGRGVrSXNaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZETVVJc1IwRkJSeXd5UkVGQmEwSXNSVUZEZEVJN2IwSkJRMEVzVDBGQlR6dHBRa0ZEVWp0aFFVTkdPMWxCUlVRc1NVRkJTU3huUWtGQlowSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hGUVVGRk8yZENRVU4wUXl4blFrRkJaMElzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4SFFVRkhMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEyaEVMR2RDUVVGblFpeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRWRCUVVjc1lVRkJZU3hEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEYUVRc1NVRkJTU3hKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNTMEZCU3l4RFFVRkRMRVZCUVVVN2IwSkJRMjVFTEU5QlFVOHNTVUZCU1N4RFFVRkRPMmxDUVVOaU8yRkJRMFk3V1VGRlJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2IwSkJRVzlDTEVWQlFVVTdaMEpCUTI1RExFMUJRVTBzVDBGQlR5eEhRVUZITEd0SFFVRjFReXhEUVVOeVJDeEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVTldMRU5CUVVNc1VVRkJVU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVOeVF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4RlFVTm1MR0ZCUVdFc1EwRkJReXhEUVVGRExFVkJRMllzUTBGQlF5eFBRVUZQTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzUlVGQlJUdHZRa0ZETjBJc1NVRkJTU3hEUVVGRExEUkRRVUUwUXl4RFFVTXZReXhQUVVGUExFVkJRMUFzYVVKQlFXbENMRU5CUTJ4Q0xFTkJRVU03WjBKQlEwb3NRMEZCUXl4RFFVTkdMRU5CUVVNN1owSkJSVVlzU1VGQlNTeFBRVUZQTEVWQlFVVTdiMEpCUTFnc1owSkJRV2RDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhoUVVGaExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTm9SQ3huUWtGQlowSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhIUVVGSExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTJoRUxFOUJRVTg3YVVKQlExSTdZVUZEUmp0WlFVVkVMRTFCUVUwc2MwSkJRWE5DTEVkQlFVY3NaMEpCUVdkQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUTNKRkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUXpsRExFTkJRVU03V1VGRlJpeEpRVU5GTEVOQlFVTXNjMEpCUVhOQ08yZENRVU55UWl4blFrRkJaMElzUTBGQlF5eEhRVUZITEVOQlFVTXNlVU5CUVhsRExFTkJRVU03WjBKQlEycEZMR2RGUVVGblJUdG5Ra0ZEYUVVc2MwSkJRWE5DTzJkQ1FVTjBRaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4dlFrRkJiMElzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNN1owSkJRM0pFTEhkRlFVRjNSVHRuUWtGRGVFVXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYjBKQlFXOUNPMjlDUVVNdlFpeFhRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRzlDUVVGdlFpd3dRMEZCUlN4VFFVRlRPM2xDUVVONFF5eHpRa0ZCWjBJc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5d3dRMEZCUlN4RlFVRkZPMjlDUVVOc1F5eG5Ra0ZCWjBJc1EwRkJReXhIUVVGSExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1JVRkRNME03WjBKQlEwRXNiMFJCUVc5RU8yZENRVU53UkN4blJFRkJaMFE3WjBKQlEyaEVMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRE8yZENRVU42UXl4TlFVRk5MR2RDUVVGblFpeEhRVUZITERSRVFVRnRRaXhEUVVNeFF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1JVRkJSU3hGUVVONFFpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVTllMRU5CUVVNN1owSkJRMFlzYzBWQlFYTkZPMmRDUVVOMFJTeHJSVUZCYTBVN1owSkJRMnhGTEVsQlFVa3NaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEdGQlFXRXNSVUZCUlR0dlFrRkRiRVVzVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1IwRkJSeXh2UkVGQldTeERRVU5xUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhIUVVGSExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVU5vUkN4aFFVRmhMRU5CUVVNc1EwRkJReXhIUVVGSExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVU5vUkN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGRGNFSXNRMEZCUXp0dlFrRkZSaXhOUVVGTkxFTkJRVU1zWVVGQllTeEZRVUZGTEdGQlFXRXNRMEZCUXl4SFFVRkhPM2RDUVVOeVF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dDNRa0ZEY2tRc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4SFFVRkhMR2RDUVVGblFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRM1JFTEVOQlFVTTdiMEpCUlVZc2IwUkJRVzlFTzI5Q1FVTndSQ3hOUVVGTkxHRkJRV0VzUjBGQlJ5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRPMjlDUVVWeVF5d3JSRUZCYjBJc1EwRkRiRUlzWjBKQlFXZENMRVZCUTJoQ0xHZENRVUZuUWl4RlFVTm9RaXhMUVVGTExFVkJRMHdzUzBGQlN5eEZRVU5NTEdGQlFXRXNSVUZEWWl4aFFVRmhMRVZCUTJJc1lVRkJZU3hGUVVOaUxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlExZ3NRMEZCUXp0dlFrRkRSaXhKUVVGSkxFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0dlFrRkZha1FzYzBWQlFYTkZPMjlDUVVOMFJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SFFVRkhMRU5CUVVNc2FVSkJRV2xDTEVWQlFVVTdkMEpCUXpORUxEUkZRVUUwUlR0M1FrRkROVVVzTmtSQlFUWkVPM2RDUVVNM1JDeG5SRUZCWjBRN2QwSkJSV2hFTEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUTBGQlF5eHBRa0ZCYVVJc1IwRkJSeXhKUVVGSkxFTkJRVU03ZDBKQlJUbERMRTFCUVUwc1dVRkJXU3hIUVVGSExFVkJRVVVzUTBGQlF6dDNRa0ZEZUVJc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RlFVRkZMRU5CUVVNN2QwSkJRelZDTEUxQlFVMHNWVUZCVlN4SFFVRkhMRWxCUVVrc1IwRkJSeXhGUVVGRkxFTkJRVU03ZDBKQlF6ZENMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NTVUZCU1N4SFFVRkhMRVZCUVVVc1EwRkJRenQzUWtGRGRFTXNUVUZCVFN4VlFVRlZMRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJRenQzUWtGRGFFUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5d3lRa0ZCTWtJc1JVRkJSU3hEUVVGRE8zZENRVU14UkN4TlFVRk5MR3RDUVVGclFpeEhRVU4wUWl3MFJFRkJiVUlzUTBGQlF5eFJRVUZSTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlEycEVMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVTjRRaXhEUVVGRE8zZENRVVZLTEV0QlFVc3NUVUZCVFN4UFFVRlBMRWxCUVVrc1VVRkJVU3hGUVVGRk96UkNRVU01UWl4SlFVTkZMR3RDUVVGclFpeERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRE8yZERRVU4yUXl4NVJFRkJlVVE3WjBOQlEzcEVMSGRFUVVGM1JEdG5RMEZEZUVRc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeE5RVUZMTEZWQlFWVXNZVUZCVml4VlFVRlZMSFZDUVVGV0xGVkJRVlVzUTBGQlJTeEZRVUZGTzI5RFFVTTFRaXhuUWtGQlowSXNRMEZCUXl4SFFVRkhMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNSVUZETTBNN1owTkJRMEVzVFVGQlRTeHBRa0ZCYVVJc1IwRkJSeXd5UkVGQlowSXNRMEZEZUVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGpRVUZqTEVWQlEzcENMRlZCUVZVc1JVRkRWaXhQUVVGUExFTkJRMUlzUTBGQlF6dG5RMEZEUml4TlFVRk5MRU5CUVVNc1YwRkJWeXhGUVVGRkxGZEJRVmNzUTBGQlF5eEhRVUZITEc5RVFVRlpMRU5CUXpkRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVWQlF6RkVMR2RDUVVGblFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRekZFTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVOd1FpeERRVUZETzJkRFFVTkdMSE5GUVVGaExFTkJRVU1zYVVKQlFXbENMRVZCUVVVN2IwTkJReTlDTEVOQlFVTXNSVUZCUlN4cFFrRkJhVUlzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4WFFVRlhMRWRCUVVjc1MwRkJTeXhEUVVGRE8yOURRVU01UXl4RFFVRkRMRVZCUVVVc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1YwRkJWeXhIUVVGSExFdEJRVXNzUTBGQlF6dHBRMEZETDBNc1EwRkJReXhEUVVGRE8yZERRVU5JTEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXp0blEwRkRja01zWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJkRFFVTXZRaXh0UWtGQmJVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzUlVGQlJTeHBRa0ZCYVVJc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6czJRa0ZETTBRN2FVTkJRVTA3WjBOQlEwd3NXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6czJRa0ZETlVJN2VVSkJRMFk3ZDBKQlEwUXNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eERRVUZETEVkQlFVY3NXVUZCV1N4RlFVRkZMRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0M1FrRkRha1VzYzBaQlFTdENMRU5CUXpkQ0xGbEJRVmtzUlVGRFdpeG5Ra0ZCWjBJc1JVRkRhRUlzYlVKQlFXMUNMRU5CUTNCQ0xFTkJRVU03ZDBKQlEwWXNPRVZCUVRKQ0xFTkJRM3BDTEdsQ1FVRnBRaXhGUVVOcVFpeG5Ra0ZCWjBJc1JVRkRhRUlzYlVKQlFXMUNMRVZCUTI1Q0xITkNRVUZ6UWl4RFFVTjJRaXhEUVVGRE8zZENRVU5HTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF6dHhRa0ZEYkVRN2IwSkJRMFFzVDBGQlR6dHBRa0ZEVWp0aFFVTkdPMWxCUlVRc2EwVkJRV3RGTzFsQlEyeEZMSFZEUVVGMVF6dFpRVU4yUXl4TlFVRk5MR1ZCUVdVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdWQlFXVXNRMEZCUXp0WlFVTnVSQ3hKUVVGSkxFTkJRVU1zWlVGQlpTeEZRVUZGTzJkQ1FVTndRaXhQUVVGUE8yRkJRMUk3V1VGRlJDeEpRVUZKTEdWQlFXVXNRMEZCUXl4SlFVRkpMRXRCUVVzc1ZVRkJWU3hGUVVGRk8yZENRVU4yUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhsUVVGbExFTkJRVU1zVFVGQlRTeERRVUZETzJkQ1FVTjBReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eGhRVUZoTEVOQlFVTXNRMEZCUXl4SFFVRkhMR1ZCUVdVc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlF5OURMRTFCUVUwc1JVRkJSU3hIUVVGSExHRkJRV0VzUTBGQlF5eERRVUZETEVkQlFVY3NaVUZCWlN4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRkwwTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1RVRkJUU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTJwRkxFMUJRVTBzV1VGQldTeEhRVU5vUWl4VFFVRlRMRWxCUVVrc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNTVUZCU1N4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETzJkQ1FVVXhSQ3hKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTzI5Q1FVTnFRaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eGxRVUZsTEVOQlFVTXNaMEpCUVdkQ08zZENRVU5vUkN4RFFVRkRMRU5CUVVNc1pVRkJaU3hEUVVGRExGTkJRVk03ZDBKQlF6TkNMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzWlVGQlpTeERRVUZETEZOQlFWTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03YjBKQlJXNUVMSE5GUVVGaExFTkJRVU1zWlVGQlpTeEZRVUZGTzNkQ1FVTTNRaXhOUVVGTkxFVkJRVVVzUTBGQlF5eEhRVUZITEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dDNRa0ZETjBJc1UwRkJVenR4UWtGRFZpeERRVUZETEVOQlFVTTdhVUpCUTBvN1lVRkRSanRwUWtGQlRTeEpRVUZKTEhGRlFVRmxMRU5CUVVNc1pVRkJaU3hEUVVGRExFVkJRVVU3WjBKQlF6TkRMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRE8yZENRVU42UXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhsUVVGbExFTkJRVU1zVFVGQlRTeERRVUZETzJkQ1FVTjBReXhKUVVGSkxFVkJRVVVzUjBGQlJ5eExRVUZMTEVkQlFVY3NaVUZCWlN4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGJrTXNTVUZCU1N4RlFVRkZMRWRCUVVjc1MwRkJTeXhIUVVGSExHVkJRV1VzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUlc1RExFbEJRVWtzY1VWQlFUWkNMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRVZCUVVVN2IwSkJReTlFTEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEZRVUZGTEVWQlFVVXNSMEZCUnl4blJVRkJjVUlzUTBGRGFFUXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRM1JDTEVWQlFVVXNSVUZEUml4RlFVRkZMRU5CUTBnc1EwRkJReXhEUVVGRE8ybENRVU5LTzJkQ1FVVkVMRWxCUVVrc1RVRkJUU3hEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETEVWQlFVVTdiMEpCUTNaQ0xITkZRVUZoTEVOQlFVTXNaVUZCWlN4RlFVRkZMRVZCUVVVc1RVRkJUU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdhVUpCUTI1Rk8zRkNRVUZOTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVU3YjBKQlF6VkNMSE5GUVVGaExFTkJRVU1zWlVGQlpTeEZRVUZGTzNkQ1FVTTNRaXhOUVVGTkxFVkJRVVVzUTBGQlF5eEhRVUZITEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU03Y1VKQlF6TkRMRU5CUVVNc1EwRkJRenRwUWtGRFNqdG5Ra0ZGUkN4SlFVRkpMSE5GUVVGblFpeERRVUZETEdWQlFXVXNRMEZCUXl4RlFVRkZPMjlDUVVOeVF5dzJRMEZCTmtNN2IwSkJRemRETEVsQlFVa3NRMEZCUXl3MFEwRkJORU1zUTBGREwwTXNaVUZCWlN4RlFVTm1MRU5CUVVNc1lVRkJZU3hEUVVGRExFVkJRMllzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4cFFrRkJhVUlzUTBGRE4wSXNRMEZCUXp0cFFrRkRTRHRoUVVOR08ybENRVUZOTzJkQ1FVTk1MR2RDUVVGblFpeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRWRCUVVjc1lVRkJZU3hEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEYUVRc1owSkJRV2RDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhoUVVGaExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTm9SQ3hKUVVGSkxFTkJRVU1zTUVKQlFUQkNMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1lVRkRNVVE3V1VGRlJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhMUVVGTExGZEJRVmNzUlVGQlJUdG5Ra0ZETVVNc1owSkJRV2RDTEVOQlFVTXNXVUZCV1N4RFFVRkRMRmRCUVZjc1IwRkJSeXhKUVVGSkxFTkJRVU03WjBKQlJXcEVMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1owSkJRekZETEVsQlEwVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVVHR2UWtGRFppeHJSRUZCYTBRN2IwSkJRMnhFTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXh2UWtGQmIwSTdiMEpCUTJoRExEaEVRVUZ4UWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6TkRPMjlDUVVOQkxFbEJRVWtzWjBKQlFXZENMRU5CUVVNc1lVRkJZU3hKUVVGSkxHZENRVUZuUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFVkJRVVU3ZDBKQlEyeEZMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSVUZCUlN4RFFVTXhRaXg1UlVGQkswSXNhVU5CUlhoQ0xGTkJRVk1zUzBGRFdpeHJRa0ZCYTBJc1JVRkJSVHRuUTBGRGJFSXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVVN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFbEJRVWs3TmtKQlEzcERMRXRCUlVnc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZEZWtJc1EwRkRSaXhEUVVGRE8zRkNRVU5JTzNsQ1FVRk5PM2RDUVVOTUxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdORUpCUTFvc2EwSkJRV3RDTEVWQlFVVXNSVUZCUlRzMFFrRkRkRUlzWjBKQlFXZENMRVZCUVVVc1JVRkJSVHMwUWtGRGNFSXNZMEZCWXl4RlFVRkZMRWxCUVVrN2VVSkJRM0pDTEVOQlFVTXNRMEZCUXp0eFFrRkRTanRwUWtGRFJqdG5Ra0ZEUkN4blEwRkJaME03WjBKQlEyaERMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eHZRa0ZCYjBJc1JVRkJSVHR2UWtGRGJrTXNhVWRCUVhORExFTkJRM0JETEV0QlFVc3NSVUZEVEN4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVOV0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVONlFpeERRVUZETzI5Q1FVTkdMSEZDUVVGeFFqdHBRa0ZEZEVJN2NVSkJRVTA3YjBKQlEwd3NUVUZCVFN4MVFrRkJkVUlzUjBGQlJ5eHRSVUZCTUVJc1EwRkRlRVFzVVVGQlVTeEZRVU5TTEdWQlFXVXNRMEZEYUVJc1EwRkJRenR2UWtGRFJpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVVzUTBGRE1VSXNlVVZCUVN0Q0xHbERRVVY0UWl4VFFVRlRMRXRCUTFvc2EwSkJRV3RDTEdkRVFVTmlMRk5CUVZNc1EwRkJReXhyUWtGQmEwSXNSMEZETlVJc2RVSkJRWFZDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFOUJRVThzUlVGQlJTeEZRVUZGT3pSQ1FVTnFSQ3hIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJRenMwUWtGRGRrSXNUMEZCVHl4SFFVRkhMRU5CUVVNN2QwSkJRMklzUTBGQlF5eEZRVUZGTEVWQlFWTXNRMEZCUXl4SFFVTldMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4N05FSkJRemxDTEVOQlFVTXNRMEZCUXp0blEwRkRSU3h6UkVGQmMwUTdaME5CUTNSRUxIRkRRVUZ4UXp0blEwRkRja01zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVTXZRaXhEUVVGRExIVkNRVUYxUWl4RFFVRkRMRTFCUVUwN05rSkJRMnhET3pSQ1FVTklMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGRldDeHJRa0ZCYTBJc1JVRkRhRUlzZFVKQlFYVkNMRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU03TkVKQlEzQkRMSFZDUVVGMVFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrN05FSkJRemRDTEVOQlFVTXNRMEZCUXl4TlFVRk5PelJDUVVOU0xFTkJRVU1zUTBGQlF5eExRVUZMTEV0QlJXSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGRGVrSXNRMEZEUml4RFFVRkRPMmxDUVVOSU8yRkJRMFk3VVVGRFNDeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTk1MRU5CUVVNN1NVRkZSQ3hyUlVGQmEwVTdTVUZETVVRc0swSkJRU3RDTEVOQlEzSkRMRXRCUVcxQ0xFVkJRMjVDTEdkQ1FVRnJRenRSUVVWc1F5eEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExGVkJRVlVzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSVHRaUVVOb1JDeE5RVUZOTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRE8xbEJRM2hDTEUxQlFVMHNSVUZCUlN4SFFVRkhMRU5CUVVNc1IwRkJSeXhuUWtGQlowSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRemRETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN1owSkJRMW9zVDBGQlR5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhIUVVGSExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTE8yRkJRM3BFTEVOQlFVTXNRMEZCUXp0WlFVTklMR2RDUVVGblFpeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMnhETEU5QlFVOHNTVUZCU1N4RFFVRkRPMU5CUTJJN1VVRkZSQ3hKUVVGSkxHZENRVUZuUWl4RFFVRkRMRlZCUVZVc1EwRkJReXhqUVVGakxFVkJRVVU3V1VGRE9VTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF6dFpRVU40UWl4TlFVRk5MRVZCUVVVc1IwRkJSeXhEUVVGRExFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU0zUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8yZENRVU5hTEU5QlFVOHNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUjBGQlJ5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN6dGhRVU42UkN4RFFVRkRMRU5CUVVNN1dVRkRTQ3huUWtGQlowSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU5zUXl4UFFVRlBMRWxCUVVrc1EwRkJRenRUUVVOaU8xRkJRMFFzVDBGQlR5eExRVUZMTEVOQlFVTTdTVUZEWml4RFFVRkRPMGxCUlU4c2FVTkJRV2xETEVOQlEzWkRMR2RDUVVGclF6dFJRVVZzUXl4UFFVRlBMREpFUVVGclFpeERRVUZETEVOQlFVTXNWVUZCZDBJc1JVRkJSU3hGUVVGRk96dFpRVU55UkN4TlFVRk5MRVZCUTBvc1pVRkJaU3hGUVVObUxHVkJRV1VzUlVGRFppeFpRVUZaTEVWQlExb3NWMEZCVnl4RlFVTllMR0ZCUVdFc1JVRkRZaXhWUVVGVkxFVkJRMVlzVlVGQlZTeEhRVU5ZTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJRenRaUVVWbUxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdaMEpCUTFvc1ZVRkJWU3hGUVVGRkxFdEJRVXM3WjBKQlEycENMRlZCUVZVc1JVRkJSU3hMUVVGTE8yZENRVU5xUWl4bFFVRmxMRVZCUVVVc1NVRkJTVHRuUWtGRGNrSXNaMEpCUVdkQ0xFVkJRVVVzU1VGQlNUdG5Ra0ZEZEVJc1dVRkJXU3hGUVVGRkxFbEJRVWs3WjBKQlEyeENMR3RGUVVGclJUdG5Ra0ZEYkVVc2IwTkJRVzlETzJkQ1FVTndReXhqUVVGakxFVkJRMW9zV1VGQldTeEpRVUZKTEhkRVFVRmhMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGpRVUZqTEVOQlFVTTdiMEpCUTNSRUxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR05CUVdNN2IwSkJRek5DTEVOQlFVTXNRMEZCUXl4SlFVRkpPMkZCUTFnc1EwRkJReXhEUVVGRE8xbEJSVWdzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1QwRkJUeXhGUVVGRkxGVkJRVlVzUTBGQlF5eFBRVUZQTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkZMMFFzZVVWQlFYbEZPMWxCUTNwRkxESkNRVUV5UWp0WlFVTXpRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNiMEpCUVc5Q0xFVkJRVVU3WjBKQlEyNURMRWxCUTBVc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4WlFVRlpMRU5CUVVNc1YwRkJWenR2UWtGRE1VTXNRMEZCUXl3MlFrRkJaMElzUTBGQlF5eEhRVUZITERCRFFVRkZMRTlCUVU4c01FTkJRVVVzUlVGQlJUdDNRa0ZEYUVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhUUVVGVE8zZENRVU42UXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVkQlFVY3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eEZRVU0xUXp0dlFrRkRRU3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEdGQlFXRXNRMEZCUXl4dlJFRkJZeXhEUVVGRExFTkJRVU03YVVKQlEyeEVPM0ZDUVVGTk8yOUNRVU5NTEUxQlFVMHNiMEpCUVc5Q0xFZEJRVWNzT0VaQlFXMURMRU5CUXpsRUxGVkJRVlVzUlVGRFZpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRzlDUVVGdlFpeEZRVU12UWl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVOWUxFTkJRVU03YjBKQlEwWXNTVUZCU1N4dlFrRkJiMElzUzBGQlN5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRzlDUVVGdlFpeEZRVUZGTzNkQ1FVTTFSQ3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZET3pSQ1FVTmFMRzlDUVVGdlFqczBRa0ZEY0VJc2FVSkJRV2xDTEVWQlFVVXNSVUZCUlR0NVFrRkRkRUlzUTBGQlF5eERRVUZETzNGQ1FVTktPMmxDUVVOR08yRkJRMFk3V1VGRlJDeGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRPMWxCUlhKQ0xFbEJRVWtzWjBKQlFXZENMRU5CUVVNc1kwRkJZeXhEUVVGRExFMUJRVTBzUlVGQlJUdG5Ra0ZETVVNc1owSkJRV2RDTEVOQlFVTXNZMEZCWXl4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dGhRVU5vUkR0WlFVVkVMRTFCUVUwc1EwRkJReXh0UWtGQmJVSXNRMEZEZUVJc01rUkJRV3RDTEVWQlEyeENMR2RDUVVGblFpeERRVUZETEdOQlFXTXNRMEZCUXl4TlFVRlBMRU5CUTNoRExFTkJRVU03V1VGRFJpeE5RVUZOTEVOQlFVTXNiVUpCUVcxQ0xFTkJRM2hDTEhsRVFVRm5RaXhGUVVOb1FpeG5Ra0ZCWjBJc1EwRkJReXhqUVVGakxFTkJRVU1zU1VGQlN5eERRVU4wUXl4RFFVRkRPMWxCUTBZc1RVRkJUU3hEUVVGRExHMUNRVUZ0UWl4RFFVTjRRaXh6UkVGQllTeEZRVU5pTEdkQ1FVRm5RaXhEUVVGRExHTkJRV01zUTBGQlF5eFRRVUZWTEVOQlF6TkRMRU5CUVVNN1dVRkRSaXhOUVVGTkxFTkJRVU1zYlVKQlFXMUNMRU5CUTNoQ0xHOUVRVUZYTEVWQlExZ3NaMEpCUVdkQ0xFTkJRVU1zWTBGQll5eERRVUZETEU5QlFWRXNRMEZEZWtNc1EwRkJRenRaUVVWR0xFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4dFFrRkJiVUlzUlVGQlJUdG5Ra0ZEYkVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEcxQ1FVRnRRaXhGUVVGRkxFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTTdZVUZET1VNN1dVRkZSQ3hKUVVGSkxHZENRVUZsTEdGQlFXWXNaVUZCWlN4MVFrRkJaaXhsUVVGbExFTkJRVVVzU1VGQlNTeE5RVUZMTEZWQlFWVXNSVUZCUlR0blFrRkRlRU1zVFVGQlRTeGhRVUZoTEVkQlFVY3NiMFZCUVRKQ0xFTkJReTlETEZWQlFWVXNSVUZEVml4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVOWUxFTkJRVU03WjBKQlJVWXNUVUZCVFN4TlFVRk5MRWRCUVVjc1pVRkJaU3hEUVVGRExFMUJRVTBzUTBGQlF6dG5Ra0ZEZEVNc1NVRkJTU3hGUVVGRkxFZEJRVWNzWVVGQllTeERRVUZETEVOQlFVTXNSMEZCUnl4bFFVRmxMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU0zUXl4SlFVRkpMRVZCUVVVc1IwRkJSeXhoUVVGaExFTkJRVU1zUTBGQlF5eEhRVUZITEdWQlFXVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJSVGRETEhsRVFVRjVSRHRuUWtGRGVrUXNTVUZCU1N4RlFVRkZMRXRCUVVzc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1MwRkJTeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVN2IwSkJRemxETEVWQlFVVXNTVUZCU1N4TlFVRk5MRU5CUVVNN2IwSkJRMklzUlVGQlJTeEpRVUZKTEUxQlFVMHNRMEZCUXp0cFFrRkRaRHRuUWtGRlJDeE5RVUZOTEZOQlFWTXNSMEZCUnl4bFFVRmxMRU5CUVVNc1owSkJRV2RDTzI5Q1FVTm9SQ3hEUVVGRExFTkJRVU1zUlVGQlJUdHZRa0ZEU2l4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExHVkJRV1VzUTBGQlF5eFRRVUZUTEVWQlFVVXNWVUZCVlN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8yZENRVVY0UkN4elJVRkJZU3hEUVVGRExHVkJRV1VzUlVGQlJUdHZRa0ZETjBJc1RVRkJUU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU03YjBKQlF6ZENMRk5CUVZNN2IwSkJRMVFzYTBKQlFXdENMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETzJsQ1FVTTNRaXhEUVVGRExFTkJRVU03WjBKQlJVZ3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhoUVVGaExFTkJRVU1zYjBSQlFXTXNRMEZCUXl4RFFVRkRPMmRDUVVWcVJDeFBRVUZQTzJGQlExSTdXVUZEUkN4SlFVRkpMRzlGUVVGakxFTkJRVU1zWlVGQlpTeERRVUZETEVWQlFVVTdaMEpCUTI1RExFMUJRVTBzV1VGQldTeEhRVUZITEdWQlFXVXNRMEZCUXp0blFrRkRja01zU1VGQlNUdHZRa0ZEUml4SlFVRkpMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN2IwSkJRemRETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUTFnc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4RlFVRkZMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZMRVZCUTI1RUxFZEJRVWNzUlVGQlJUdDNRa0ZEU0N4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExHRkJRV0VzUTBGQlF5eHZSRUZCWXl4RFFVRkRMRU5CUVVNN2IwSkJRMjVFTEVOQlFVTXNRMEZEUml4RFFVRkRPMmxDUVVOSU8yZENRVUZETEU5QlFVOHNTMEZCVlN4RlFVRkZPMjlDUVVOdVFpeFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yOUNRVU55UWl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHdENRVUZyUWl4RFFVTXpRaXhKUVVGSkxFTkJRVU1zUzBGQlN6dDVRa0ZEVUN3eVFrRkJNa0lzUlVGQlJUdDVRa0ZETjBJc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hMUVVGTExGbEJRVmtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZETjBNc1EwRkJRenR2UWtGRFJpeEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMR0ZCUVdFc1EwRkJReXh2UkVGQll5eERRVUZETEVOQlFVTTdhVUpCUTJ4RU8yZENRVU5FTEU5QlFVODdZVUZEVWp0WlFVVkVMRWxCUVVrc2NVVkJRV1VzUTBGQlF5eGxRVUZsTEVOQlFVTXNSVUZCUlR0blFrRkRjRU1zU1VGQlNTeGxRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzI5Q1FVTjBReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEdWQlFXVXNSVUZCUlN4RFFVRkRPMmxDUVVOb1F6dG5Ra0ZEUkN4TlFVRk5MR0ZCUVdFc1IwRkJSeXh2UlVGQk1rSXNRMEZETDBNc1ZVRkJWU3hGUVVOV0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlExZ3NRMEZCUXp0blFrRkZSaXhKUVVORkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmM3YjBKQlEyeERMR1ZCUVdVN2IwSkJRMllzUTBGQlF5eFpRVUZaTEVWQlEySTdiMEpCUTBFc2MwVkJRV0VzUTBGQlF5eGxRVUZsTEVWQlFVVTdkMEpCUXpkQ0xFMUJRVTBzUlVGQlJUczBRa0ZEVGl4SFFVRkhMR1ZCUVdVc1EwRkJReXhOUVVGTk96UkNRVU42UWp0blEwRkRSU3hoUVVGaExFTkJRVU1zUTBGQlF5eEhRVUZITEdWQlFXVXNRMEZCUXl4RFFVRkRPMmREUVVOdVF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4SFFVRkhMR1ZCUVdVc1EwRkJReXhEUVVGRE96WkNRVU53UXp0NVFrRkRSanR4UWtGRFJpeERRVUZETEVOQlFVTTdiMEpCUTBnc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dDNRa0ZEV2l4WlFVRlpMRVZCUVVVc1pVRkJaVHQzUWtGRE4wSXNZMEZCWXl4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWlVGQlpUdHhRa0ZETTBNc1EwRkJReXhEUVVGRE8ybENRVU5LTzNGQ1FVRk5MRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJUdHZRa0ZETjBRc1NVRkRSU3h0UlVGQlowSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8zZENRVU0xUWl4elJVRkJaMElzUTBGQlF5eGxRVUZsTEVOQlFVTXNSVUZEYWtNN2QwSkJRMEVzZVVWQlFYTkNMRU5CUTNCQ0xHVkJRV1VzUlVGRFppeEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVTldMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRMVlzWVVGQllTeERRVU5rTEVOQlFVTTdjVUpCUTBnN2IwSkJRMFFzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMR2xDUVVGcFFpeEZRVUZGTEVWQlFVVXNSVUZCUlN4cFFrRkJhVUlzUlVGQlJTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMjlDUVVOc1JTeEpRVUZKTEVOQlFVTXNZVUZCWVN4RlFVRkZPM2RDUVVOc1FpeHZSRUZCVnl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dDNRa0ZEZWtJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenMwUWtGRE5VSXNaVUZCWlN4RlFVRkZMRWxCUVVrN05FSkJRM0pDTEZkQlFWY3NSVUZCUlN4WFFVRlhPelJDUVVONFFpeHJRa0ZCYTBJc2EwTkJRMklzVTBGQlV5eERRVUZETEd0Q1FVRnJRaXhMUVVNdlFpeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaMElzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpMRWRCUTNaRE8zbENRVU5HTEVOQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVOTU8zbENRVUZOTzNkQ1FVTk1MRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN05FSkJRelZDTEdWQlFXVXNSVUZCUlN4SlFVRkpPelJDUVVOeVFpeHJRa0ZCYTBJc2EwTkJRMklzVTBGQlV5eERRVUZETEd0Q1FVRnJRaXhMUVVNdlFpeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaMElzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpMRWRCUTNaRE8zbENRVU5HTEVOQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVOTU8ybENRVU5HTzJkQ1FVTkVMRTlCUVU4N1lVRkRVanRaUVVWRUxFbEJRMFVzVjBGQlZ5eExRVUZMTEZkQlFWYzdaMEpCUXpOQ0xHVkJRV1U3WjBKQlEyWXNhMFZCUVhWQ0xFTkJRVU1zWlVGQlpTeERRVUZETEVWQlEzaERPMmRDUVVOQkxEUkVRVUUwUkR0blFrRkROVVFzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4clFrRkJhMElzUTBGRE0wSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXd5UWtGQk1rSXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZEZEVRc1EwRkJRenRuUWtGRFJpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMjlDUVVOYUxHVkJRV1VzUlVGQlJTeEpRVUZKTzJsQ1FVTjBRaXhEUVVGRExFTkJRVU03WjBKQlEwZ3NUMEZCVHp0aFFVTlNPMWxCUlVRc1NVRkJTU3hsUVVGbExFVkJRVVU3WjBKQlEyNUNMSE5GUVVGaExFTkJRMWdzWlVGQlpTeEZRVU5tTEd0RlFVRjFRaXhEUVVGRExHVkJRV1VzUTBGQlF5eERRVU42UXl4RFFVRkRPMkZCUTBnN1dVRkZSQ3hKUVVGSkxHVkJRV1VzUlVGQlJUdG5Ra0ZEYmtJc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eGxRVUZsTEVWQlFVVXNRMEZCUXp0aFFVTm9RenRaUVVWRUxFbEJRVWtzWlVGQlpTeEpRVUZKTEd0RlFVRjFRaXhEUVVGRExHVkJRV1VzUTBGQlF5eEZRVUZGTzJkQ1FVTXZSQ3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEd0Q1FVRnJRaXhEUVVNelFpeEpRVUZKTEVOQlFVTXNTMEZCU3p0eFFrRkRVQ3d5UWtGQk1rSXNSVUZCUlR0eFFrRkROMElzVFVGQlRTeERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeExRVUZMTEdWQlFXVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkRhRVFzUTBGQlF6dGhRVU5JTzFsQlJVUXNkVVJCUVhWRU8xbEJRM1pFTEc5RVFVRnZSRHRaUVVOd1JDeE5RVUZOTEZWQlFWVXNSMEZCUnl4blFrRkJaMElzUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRPMWxCUTJoRUxFbEJRMFVzVlVGQlZUdG5Ra0ZEVml4RFFVRkRMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhPMmRDUVVOc1F5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUTBGQlF5eHRRa0ZCYlVJN1owSkJRM3BETEcxRlFVRnRSVHRuUWtGRGJrVXNaVUZCWlR0blFrRkRaaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4dlFrRkJiMEk3YjBKQlF5OUNMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNXVUZCV1N4RFFVRkRMRmRCUVZjc1EwRkJReXhGUVVNM1F6dG5Ra0ZEUVN4M1JFRkJkMFE3WjBKQlEzaEVMRWxCUVVrc1ZVRkJWU3hEUVVGRExGRkJRVkVzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2IwSkJRVzlDTEVWQlFVVTdiMEpCUXpORUxFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eFZRVUZWTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVN2QwSkJRMmhFTEVsQlFVa3NORVJCUVd0Q0xFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlN4VlFVRlZMRU5CUVVNc1JVRkJSVHMwUWtGRE9VTXNkVVJCUVhWRU96UkNRVU4yUkN4elJFRkJjMFE3TkVKQlEzUkVMSGRDUVVGM1FqczBRa0ZEZUVJc1RVRkJUU3h2UTBGQmIwTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1VVRkJVVHRwUTBGRE4wUXNUMEZCVHl4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGRGJrSXNORVJCUVd0Q0xFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGRGRFUTdhVU5CUTBFc1IwRkJSeXhEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkJRenRwUTBGRE0wTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNhVU5CUVUwc1RVRkJUU3hIUVVGTExFZEJRVWNzUlVGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPelJDUVVWNFJDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzJkRFFVTTNRaXhuUWtGQlowSXNhME5CUTFnc1ZVRkJWU3hEUVVGRExHdENRVUZyUWl4SFFVTTNRaXhWUVVGVkxFTkJRVU1zVVVGQlVUdHhRMEZEYmtJc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRPM0ZEUVVOb1F5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eHBRMEZCVFN4SlFVRkpMRWRCUVVzc1IwRkJSeXhGUVVGSExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlEzQkVPMmREUVVORUxHdENRVUZyUWl4clEwRkRZaXhWUVVGVkxFTkJRVU1zYTBKQlFXdENMRWRCUXpkQ0xHOURRVUZ2UXl4RFFVTjRRenMyUWtGRFJpeERRVUZETEVOQlFVTXNRMEZCUXp0NVFrRkRURHMyUWtGQlRUczBRa0ZEVEN4elEwRkJjME03TkVKQlEzUkRMR2xEUVVGcFF6czBRa0ZEYWtNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RlFVRkZMRU5CUXpGQ0xIbEZRVUVyUWl4cFEwRkZlRUlzVTBGQlV5eExRVU5hTEd0Q1FVRnJRaXhyUTBGRFlpeFRRVUZUTEVOQlFVTXNhMEpCUVd0Q0xFdEJReTlDTEVOQlFVTXNWVUZCVnl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFdEJRVXNzVVVGSE0wSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGRGVrSXNRMEZEUml4RFFVRkRPM2xDUVVOSU8zRkNRVU5HTzNsQ1FVRk5PM2RDUVVOTUxHbERRVUZwUXp0M1FrRkRha01zYVVOQlFXbERPM2RDUVVWcVF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZET3pSQ1FVTTNRaXhyUWtGQmEwSXNhME5CUTJJc1ZVRkJWU3hEUVVGRExHdENRVUZyUWl4TFFVTm9ReXhEUVVGRExGVkJRVmNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpMRWRCUTNaQ08zbENRVU5HTEVOQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVOTU8ybENRVU5HTzNGQ1FVRk5PMjlDUVVOTUxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1JVRkJSU3hEUVVGRExHMUNRVU40UWl4NVJVRkJLMElzYVVOQlJUTkNMRk5CUVZNc1MwRkRXaXhyUWtGQmEwSXNSVUZCUlN4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4TFFVVXZReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVTjZRaXhGUVVORUxFTkJRVU1zUTBGQlF6dHBRa0ZEVER0aFFVTkdPMWxCUlVRc1NVRkRSU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNiMEpCUVc5Q08yZENRVU5vUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhPMmRDUVVOc1F5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1ZVRkJWVHRuUWtGRGRFSXNRMEZCUXl4RFFVRkRMRlZCUVZVN2IwSkJRMVlzTWtaQlFXZEVMRU5CUXpsRExGVkJRVlVzUlVGRFZpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVTldMR2RDUVVGblFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRVZCUTNwQ0xHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRekZDTEVOQlFVTTdiMEpCUTBZc1EwRkJReXhEUVVGRExGVkJRVlU3ZDBKQlExWXNaMEpCUVdkQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEhsRFFVRjVReXhEUVVGRExFTkJRVU1zUlVGRGNFVTdaMEpCUTBFc05rSkJRVFpDTzJkQ1FVTTNRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzI5Q1FVTmFMR3RDUVVGclFpeEZRVUZGTEVWQlFVVTdiMEpCUTNSQ0xHZENRVUZuUWl4RlFVRkZMRVZCUVVVN2IwSkJRM0JDTEdOQlFXTXNSVUZCUlN4SlFVRkpPMmxDUVVOeVFpeERRVUZETEVOQlFVTTdaMEpCUlVnc1QwRkJUenRoUVVOU08xbEJSVVFzU1VGQlNTeERRVUZETEdGQlFXRXNTVUZCU1N4WFFVRlhMRXRCUVVzc1ZVRkJWU3hKUVVGSkxHVkJRV1VzUlVGQlJUdG5Ra0ZEYmtVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenR2UWtGRE5VSXNhMEpCUVd0Q0xHdERRVU5pTEZOQlFWTXNRMEZCUXl4clFrRkJhMElzUzBGREwwSXNRMEZCUXl4bFFVRmxMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzU1VGQlNTeEhRVU16UWp0cFFrRkRSaXhEUVVGRExFTkJRVU1zUTBGQlF6dGhRVU5NTzFsQlJVUXNTVUZEUlN4WFFVRlhMRXRCUVVzc1YwRkJWenRuUWtGRE0wSXNPRVJCUVhGQ0xFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6TkVPMmRDUVVOQkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNN1lVRkRhRU03V1VGRlJDeEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVsQlFVa3NWVUZCVlN4SlFVRkpMRlZCUVZVc1JVRkJSVHRuUWtGRGFrVXNRMEZCUXl4dFJVRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRPMjlDUVVNelFpeERRVUZETEVOQlFVTXNNa1ZCUVRSQ08yOUNRVU01UWl4RFFVRkRMRU5CUVVNc2JVVkJRVzlDTEVOQlFVTXNRMEZEZGtJc05FUkJRVzFDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUXpGRUxFTkJRVU03WVVGRFNEdFpRVVZFTEVsQlFVa3NRMEZCUXl4aFFVRmhMRWxCUVVrc1YwRkJWeXhMUVVGTExGVkJRVlVzUlVGQlJUdG5Ra0ZEYUVRc2IwUkJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1owSkJRM3BDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN2IwSkJRMW9zWlVGQlpTeEZRVUZGTEVsQlFVazdiMEpCUTNKQ0xHbENRVUZwUWl4RlFVRkZMRVZCUVVVN2IwSkJRM0pDTEZkQlFWY3NSVUZCUlN4WFFVRlhPMmxDUVVONlFpeERRVUZETEVOQlFVTTdZVUZEU2p0cFFrRkJUVHRuUWtGRFRDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMjlDUVVOYUxHVkJRV1VzUlVGQlJTeEpRVUZKTzI5Q1FVTnlRaXhwUWtGQmFVSXNSVUZCUlN4RlFVRkZPMmxDUVVOMFFpeERRVUZETEVOQlFVTTdZVUZEU2p0UlFVTklMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMHdzUTBGQlF6dEpRWE5pVHl4NVFrRkJlVUlzUTBGREwwSXNaMEpCUVdsRU8xRkJSV3BFTEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzWjBaQlFUWkNMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0UlFVTXhSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzUTBGQlF5eERRVUZETzBsQlEzWkRMRU5CUVVNN1NVRkZUeXhqUVVGakxFTkJRVU1zVlVGQmIwTTdVVUZEZWtRc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRaUVVNMVFpeHJRa0ZCYTBJc1JVRkJSU3hGUVVGRk8xbEJRM1JDTEdkQ1FVRm5RaXhGUVVGRkxFVkJRVVU3V1VGRGNFSXNiVVZCUVcxRk8xbEJRMjVGTEd0Q1FVRnJRanRaUVVOc1FpeGpRVUZqTEVWQlExb3NVMEZCVXl4RFFVRkRMR05CUVdNN1owSkJRM2hDTEZWQlFWVXNTVUZCU1N4SlFVRkpPMmRDUVVOc1Fpd3dSRUZCWjBJc1EwRkJReXhWUVVGVkxFVkJRVVVzVTBGQlV5eERRVUZETEdOQlFXTXNRMEZCUXp0blFrRkRjRVFzUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4alFVRmpPMmRDUVVNeFFpeERRVUZETEVOQlFVTXNTVUZCU1R0VFFVTllMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMG9zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0WlFVTmFMR3RDUVVGclFpeEZRVUZGTEVWQlFVVTdXVUZEZEVJc01FSkJRVEJDTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhyUWtGQmEwSTdVMEZETVVRc1EwRkJReXhEUVVGRE8wbEJRMHdzUTBGQlF6dEpRV2xvUWs4c2NVTkJRWEZETEVOQlF6TkRMRU5CUVZNc1JVRkRWQ3hEUVVGVExFVkJRMVFzVVVGQmEwSXNSVUZEYkVJc1RVRkJaME1zUlVGRGFFTXNTMEZCWVR0UlFVVmlMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NjVVZCUVRSQ0xFTkJRM1pFTEVsQlFVa3NRMEZCUXl4TFFVRkxPMkZCUTFBc01rSkJRVEpDTEVWQlFVVTdZVUZETjBJc1RVRkJUU3hEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMSGRFUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNSVUZETDBNc1EwRkJReXhGUVVORUxFTkJRVU1zUTBGRFJpeERRVUZETzFGQlEwWXNTVUZCU1N4dlFrRkJiMElzUlVGQlJUdFpRVU40UWl4TlFVRk5MR05CUVdNc1IwRkRiRUlzYjBKQlFXOUNMRU5CUVVNc1EwRkJReXhIUVVGSExHOUNRVUZ2UWl4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRE1VUXNUVUZCVFN4alFVRmpMRWRCUTJ4Q0xHOUNRVUZ2UWl4RFFVRkRMRU5CUVVNc1IwRkJSeXh2UWtGQmIwSXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRek5FTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZEYWtNc1EwRkJReXhIUVVGSExHTkJRV01zUlVGRGJFSXNRMEZCUXl4SFFVRkhMR05CUVdNc1EwRkRia0lzUTBGQlF6dFpRVU5HTEUxQlFVMHNhVUpCUVdsQ0xFZEJRM0pDTEdkQ1FVRm5RaXhIUVVGSExITkZRVUUyUWl4RFFVRkRPMWxCUTI1RUxFbEJRVWtzYVVKQlFXbENMRVZCUVVVN1owSkJRM0pDTEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1UwRkJVeXhGUVVGRkxFTkJRVU1zUlVGQlJTeFRRVUZUTEVWQlFVVXNSMEZCUnl4dlJVRkJNa0lzUTBGRGFFVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1kwRkJZeXhGUVVGRkxFMUJRVTBzUlVGQlJTeGpRVUZqTEVWQlFVVXNSVUZEYkVRc1VVRkJVU3hEUVVOVUxFTkJRVU03WjBKQlEwWXNUMEZCVHl4RlFVRkZMRk5CUVZNc1JVRkJSU3hUUVVGVExFVkJRVVVzWTBGQll5eEZRVUZGTEdOQlFXTXNSVUZCUlN4RFFVRkRPMkZCUTJwRk8xTkJRMFk3U1VGRFNDeERRVUZETzBsQk1FVlBMR2RDUVVGblFqczdVVUZEZEVJc1NVRkJTU3hWUVVGSkxFTkJRVU1zYzBKQlFYTkNMREJEUVVGRkxFOUJRVThzUlVGQlJUdFpRVU40UXl4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEVsQlFVa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eFBRVUZQTEVOQlFVTTdXVUZEYUVVc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4dFFrRkJiVUlzUTBGQlF5eHhRa0ZCY1VJc1JVRkJSU3hEUVVGRE8xbEJRMnhGTEU5QlFVODdaMEpCUTB3c1ZVRkJWU3hGUVVGRkxFbEJRVWs3WjBKQlEyaENMRk5CUVZNc1JVRkJSU3hIUVVGSE8yRkJRMllzUTBGQlF6dFRRVU5JTzFGQlEwUXNUMEZCVHp0WlFVTk1MRlZCUVZVc1JVRkJSU3hEUVVGRE8xbEJRMklzVTBGQlV5eEZRVUZGTEVOQlFVTTdVMEZEWWl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWaExHTkJRV003TzFsQlF6RkNMRTFCUVUwc1YwRkJWeXhIUVVObUxHdEVRVUZqTEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEV0QlFVc3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU03WjBKQlF6TkVMQ3REUVVGWExFTkJRVU03V1VGRFpDeE5RVUZOTEcxRVFVRlhMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03V1VGREwwSXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU4yUWl4RFFVRkRPMHRCUVVFN08wRkJkbkJMWVN4blFrRkJXU3hIUVVGelFqdEpRVU01UXl4elJVRkJjMFU3U1VGRGRFVXNVMEZCVXl4RlFVRkZMREpFUVVGclFqdERRVU01UWl4RFFVRkRPMEZCZFhGTFNpeEpRVU5GTEdGQlFXOUNMRXRCUVVzc2FVUkJRVkU3U1VGRGFrTXNZVUZCYjBJc1MwRkJTeXgzUkVGQlpTeEZRVU40UXp0SlFVTkJMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNTVUZCU3l4RlFVRnJRaXhEUVVGRE8wbEJSVE5ETEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RlFVRkZPMUZCUTJoRExGRkJRVkVzUlVGQlJUdFpRVU5TTEZsQlFWa3NSVUZCUlN4SlFVRkpPMWxCUTJ4Q0xFZEJRVWM3WjBKQlEwUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5d3lRa0ZCTWtJc1JVRkJSU3hEUVVGRE8xbEJRM1JFTEVOQlFVTTdXVUZEUkN4SFFVRkhMRU5CUVVNc1VVRkJOa0k3WjBKQlF5OUNMRTlCUVU4c1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdXVUZEY2tRc1EwRkJRenRUUVVOR08wdEJRMFlzUTBGQlF5eERRVUZETzBOQlEwbzdRVUZEUkN4cFJVRkJaU3hIUVVGSExFVkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUJjSEF1ZEhONFB6QXdOekFpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUZKbFlXTjBMQ0I3SUhWelpVTnZiblJsZUhRZ2ZTQm1jbTl0SUZ3aWNtVmhZM1JjSWp0Y2JtbHRjRzl5ZENCN0lGSnZkV2RvUTJGdWRtRnpJSDBnWm5KdmJTQmNJbkp2ZFdkb2FuTXZZbWx1TDJOaGJuWmhjMXdpTzF4dWFXMXdiM0owSUhKdmRXZG9JR1p5YjIwZ1hDSnliM1ZuYUdwekwySnBiaTl5YjNWbmFGd2lPMXh1YVcxd2IzSjBJR05zYzNnZ1puSnZiU0JjSW1Oc2MzaGNJanRjYm1sdGNHOXlkQ0I3SUc1aGJtOXBaQ0I5SUdaeWIyMGdYQ0p1WVc1dmFXUmNJanRjYmx4dWFXMXdiM0owSUh0Y2JpQWdZV04wYVc5dVFXUmtWRzlNYVdKeVlYSjVMRnh1SUNCaFkzUnBiMjVDY21sdVowWnZjbmRoY21Rc1hHNGdJR0ZqZEdsdmJrSnlhVzVuVkc5R2NtOXVkQ3hjYmlBZ1lXTjBhVzl1UTI5d2VTeGNiaUFnWVdOMGFXOXVRMjl3ZVVGelVHNW5MRnh1SUNCaFkzUnBiMjVEYjNCNVFYTlRkbWNzWEc0Z0lHRmpkR2x2YmtOdmNIbFRkSGxzWlhNc1hHNGdJR0ZqZEdsdmJrTjFkQ3hjYmlBZ1lXTjBhVzl1UkdWc1pYUmxVMlZzWldOMFpXUXNYRzRnSUdGamRHbHZia1IxY0d4cFkyRjBaVk5sYkdWamRHbHZiaXhjYmlBZ1lXTjBhVzl1Um1sdVlXeHBlbVVzWEc0Z0lHRmpkR2x2Ymtac2FYQkliM0pwZW05dWRHRnNMRnh1SUNCaFkzUnBiMjVHYkdsd1ZtVnlkR2xqWVd3c1hHNGdJR0ZqZEdsdmJrZHliM1Z3TEZ4dUlDQmhZM1JwYjI1UVlYTjBaVk4wZVd4bGN5eGNiaUFnWVdOMGFXOXVVMlZzWldOMFFXeHNMRnh1SUNCaFkzUnBiMjVUWlc1a1FtRmphM2RoY21Rc1hHNGdJR0ZqZEdsdmJsTmxibVJVYjBKaFkyc3NYRzRnSUdGamRHbHZibFJ2WjJkc1pVZHlhV1JOYjJSbExGeHVJQ0JoWTNScGIyNVViMmRuYkdWVGRHRjBjeXhjYmlBZ1lXTjBhVzl1Vkc5bloyeGxXbVZ1VFc5a1pTeGNiaUFnWVdOMGFXOXVWVzVpYVc1a1ZHVjRkQ3hjYmlBZ1lXTjBhVzl1Vlc1bmNtOTFjQ3hjYmlBZ1lXTjBhVzl1VEdsdWF5eGNibjBnWm5KdmJTQmNJaTR1TDJGamRHbHZibk5jSWp0Y2JtbHRjRzl5ZENCN0lHTnlaV0YwWlZKbFpHOUJZM1JwYjI0c0lHTnlaV0YwWlZWdVpHOUJZM1JwYjI0Z2ZTQm1jbTl0SUZ3aUxpNHZZV04wYVc5dWN5OWhZM1JwYjI1SWFYTjBiM0o1WENJN1hHNXBiWEJ2Y25RZ2V5QkJZM1JwYjI1TllXNWhaMlZ5SUgwZ1puSnZiU0JjSWk0dUwyRmpkR2x2Ym5NdmJXRnVZV2RsY2x3aU8xeHVhVzF3YjNKMElIc2dZV04wYVc5dWN5QjlJR1p5YjIwZ1hDSXVMaTloWTNScGIyNXpMM0psWjJsemRHVnlYQ0k3WEc1cGJYQnZjblFnZXlCQlkzUnBiMjVTWlhOMWJIUWdmU0JtY205dElGd2lMaTR2WVdOMGFXOXVjeTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnZEhKaFkydEZkbVZ1ZENCOUlHWnliMjBnWENJdUxpOWhibUZzZVhScFkzTmNJanRjYm1sdGNHOXlkQ0I3SUdkbGRFUmxabUYxYkhSQmNIQlRkR0YwWlNCOUlHWnliMjBnWENJdUxpOWhjSEJUZEdGMFpWd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1kyOXdlVlJ2UTJ4cGNHSnZZWEprTEZ4dUlDQndZWEp6WlVOc2FYQmliMkZ5WkN4Y2JpQWdjSEp2WW1GaWJIbFRkWEJ3YjNKMGMwTnNhWEJpYjJGeVpFSnNiMklzWEc0Z0lIQnliMkpoWW14NVUzVndjRzl5ZEhORGJHbHdZbTloY21SWGNtbDBaVlJsZUhRc1hHNTlJR1p5YjIwZ1hDSXVMaTlqYkdsd1ltOWhjbVJjSWp0Y2JtbHRjRzl5ZENCN1hHNGdJRUZRVUY5T1FVMUZMRnh1SUNCRFZWSlRUMUpmVkZsUVJTeGNiaUFnUkVWR1FWVk1WRjlOUVZoZlNVMUJSMFZmVjBsRVZFaGZUMUpmU0VWSlIwaFVMRnh1SUNCRVJVWkJWVXhVWDFWSlgwOVFWRWxQVGxNc1hHNGdJRVJGUmtGVlRGUmZWa1ZTVkVsRFFVeGZRVXhKUjA0c1hHNGdJRVJTUVVkSFNVNUhYMVJJVWtWVFNFOU1SQ3hjYmlBZ1JVeEZUVVZPVkY5VFNFbEdWRjlVVWtGT1UweEJWRVZmUVUxUFZVNVVMRnh1SUNCRlRFVk5SVTVVWDFSU1FVNVRURUZVUlY5QlRVOVZUbFFzWEc0Z0lFVk9WaXhjYmlBZ1JWWkZUbFFzWEc0Z0lFZFNTVVJmVTBsYVJTeGNiaUFnU1UxQlIwVmZVa1ZPUkVWU1gxUkpUVVZQVlZRc1hHNGdJRXhKVGtWZlEwOU9Sa2xTVFY5VVNGSkZVMGhQVEVRc1hHNGdJRTFCV0Y5QlRFeFBWMFZFWDBaSlRFVmZRbGxVUlZNc1hHNGdJRTFKVFVWZlZGbFFSVk1zWEc0Z0lFMVJYMDFCV0Y5SVJVbEhTRlJmVEVGT1JGTkRRVkJGTEZ4dUlDQk5VVjlOUVZoZlYwbEVWRWhmVEVGT1JGTkRRVkJGTEZ4dUlDQk5VVjlOUVZoZlYwbEVWRWhmVUU5U1ZGSkJTVlFzWEc0Z0lGQlBTVTVVUlZKZlFsVlVWRTlPTEZ4dUlDQlRRMUpQVEV4ZlZFbE5SVTlWVkN4Y2JpQWdWRUZRWDFSWFNVTkZYMVJKVFVWUFZWUXNYRzRnSUZSRldGUmZWRTlmUTBWT1ZFVlNYMU5PUVZCZlZFaFNSVk5JVDB4RUxGeHVJQ0JVU0VWTlJTeGNiaUFnVkU5VlEwaGZRMVJZWDAxRlRsVmZWRWxOUlU5VlZDeGNiaUFnVlZKTVgwaEJVMGhmUzBWWlV5eGNiaUFnVlZKTVgxRlZSVkpaWDB0RldWTXNYRzRnSUZwUFQwMWZVMVJGVUN4Y2JuMGdabkp2YlNCY0lpNHVMMk52Ym5OMFlXNTBjMXdpTzF4dWFXMXdiM0owSUhzZ2JHOWhaRVp5YjIxQ2JHOWlJSDBnWm5KdmJTQmNJaTR1TDJSaGRHRmNJanRjYm1sdGNHOXlkQ0I3SUdselZtRnNhV1JNYVdKeVlYSjVJSDBnWm5KdmJTQmNJaTR1TDJSaGRHRXZhbk52Ymx3aU8xeHVhVzF3YjNKMElFeHBZbkpoY25rZ1puSnZiU0JjSWk0dUwyUmhkR0V2YkdsaWNtRnllVndpTzF4dWFXMXdiM0owSUhzZ2NtVnpkRzl5WlN3Z2NtVnpkRzl5WlVWc1pXMWxiblJ6TENCeVpYTjBiM0psVEdsaWNtRnllVWwwWlcxeklIMGdabkp2YlNCY0lpNHVMMlJoZEdFdmNtVnpkRzl5WlZ3aU8xeHVhVzF3YjNKMElIdGNiaUFnWkhKaFowNWxkMFZzWlcxbGJuUXNYRzRnSUdSeVlXZFRaV3hsWTNSbFpFVnNaVzFsYm5SekxGeHVJQ0JrZFhCc2FXTmhkR1ZGYkdWdFpXNTBMRnh1SUNCblpYUkRiMjF0YjI1Q2IzVnVaSE1zWEc0Z0lHZGxkRU4xY25OdmNrWnZjbEpsYzJsNmFXNW5SV3hsYldWdWRDeGNiaUFnWjJWMFJISmhaMDltWm5ObGRGaFpMRnh1SUNCblpYUkZiR1Z0Wlc1MFYybDBhRlJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1VzWEc0Z0lHZGxkRTV2Y20xaGJHbDZaV1JFYVcxbGJuTnBiMjV6TEZ4dUlDQm5aWFJRWlhKbVpXTjBSV3hsYldWdWRGTnBlbVVzWEc0Z0lHZGxkRkpsYzJsNlpVRnljbTkzUkdseVpXTjBhVzl1TEZ4dUlDQm5aWFJTWlhOcGVtVlBabVp6WlhSWVdTeGNiaUFnWjJWMFZISmhibk5tYjNKdFNHRnVaR3hsVkhsd1pVWnliMjFEYjI5eVpITXNYRzRnSUdocGRGUmxjM1FzWEc0Z0lHbHpTR2wwZEdsdVowVnNaVzFsYm5SQ2IzVnVaR2x1WjBKdmVGZHBkR2h2ZFhSSWFYUjBhVzVuUld4bGJXVnVkQ3hjYmlBZ2FYTkpiblpwYzJsaWJIbFRiV0ZzYkVWc1pXMWxiblFzWEc0Z0lHbHpUbTl1UkdWc1pYUmxaRVZzWlcxbGJuUXNYRzRnSUdselZHVjRkRVZzWlcxbGJuUXNYRzRnSUc1bGQwVnNaVzFsYm5Rc1hHNGdJRzVsZDB4cGJtVmhja1ZzWlcxbGJuUXNYRzRnSUc1bGQxUmxlSFJGYkdWdFpXNTBMRnh1SUNCdVpYZEpiV0ZuWlVWc1pXMWxiblFzWEc0Z0lIUmxlSFJYZVhOcGQzbG5MRnh1SUNCMGNtRnVjMlp2Y20xRmJHVnRaVzUwY3l4Y2JpQWdkWEJrWVhSbFZHVjRkRVZzWlcxbGJuUXNYRzU5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwWENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JpYVc1a1QzSlZibUpwYm1SVFpXeGxZM1JsWkVWc1pXMWxiblJ6TEZ4dUlDQm1hWGhDYVc1a2FXNW5jMEZtZEdWeVJHVnNaWFJwYjI0c1hHNGdJR1pwZUVKcGJtUnBibWR6UVdaMFpYSkVkWEJzYVdOaGRHbHZiaXhjYmlBZ1oyVjBSV3hwWjJsaWJHVkZiR1Z0Wlc1MGMwWnZja0pwYm1ScGJtY3NYRzRnSUdkbGRFaHZkbVZ5WldSRmJHVnRaVzUwUm05eVFtbHVaR2x1Wnl4Y2JpQWdhWE5DYVc1a2FXNW5SVzVoWW14bFpDeGNiaUFnYVhOTWFXNWxZWEpGYkdWdFpXNTBVMmx0Y0d4bFFXNWtRV3h5WldGa2VVSnZkVzVrTEZ4dUlDQnRZWGxpWlVKcGJtUk1hVzVsWVhKRmJHVnRaVzUwTEZ4dUlDQnphRzkxYkdSRmJtRmliR1ZDYVc1a2FXNW5SbTl5VUc5cGJuUmxja1YyWlc1MExGeHVJQ0IxYm1KcGJtUk1hVzVsWVhKRmJHVnRaVzUwY3l4Y2JpQWdkWEJrWVhSbFFtOTFibVJGYkdWdFpXNTBjeXhjYm4wZ1puSnZiU0JjSWk0dUwyVnNaVzFsYm5RdlltbHVaR2x1WjF3aU8xeHVhVzF3YjNKMElIc2dUR2x1WldGeVJXeGxiV1Z1ZEVWa2FYUnZjaUI5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwTDJ4cGJtVmhja1ZzWlcxbGJuUkZaR2wwYjNKY0lqdGNibWx0Y0c5eWRDQjdJRzExZEdGMFpVVnNaVzFsYm5Rc0lHNWxkMFZzWlcxbGJuUlhhWFJvSUgwZ1puSnZiU0JjSWk0dUwyVnNaVzFsYm5RdmJYVjBZWFJsUld4bGJXVnVkRndpTzF4dWFXMXdiM0owSUhzZ1pHVmxjRU52Y0hsRmJHVnRaVzUwTENCdVpYZEdjbVZsUkhKaGQwVnNaVzFsYm5RZ2ZTQm1jbTl0SUZ3aUxpNHZaV3hsYldWdWRDOXVaWGRGYkdWdFpXNTBYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQm9ZWE5DYjNWdVpGUmxlSFJGYkdWdFpXNTBMRnh1SUNCcGMwSnBibVJwYm1kRmJHVnRaVzUwTEZ4dUlDQnBjMEpwYm1ScGJtZEZiR1Z0Wlc1MFZIbHdaU3hjYmlBZ2FYTkNiM1Z1WkZSdlEyOXVkR0ZwYm1WeUxGeHVJQ0JwYzBsdFlXZGxSV3hsYldWdWRDeGNiaUFnYVhOSmJtbDBhV0ZzYVhwbFpFbHRZV2RsUld4bGJXVnVkQ3hjYmlBZ2FYTk1hVzVsWVhKRmJHVnRaVzUwTEZ4dUlDQnBjMHhwYm1WaGNrVnNaVzFsYm5SVWVYQmxMRnh1ZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEM5MGVYQmxRMmhsWTJ0elhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCRmVHTmhiR2xrY21GM1FtbHVaR0ZpYkdWRmJHVnRaVzUwTEZ4dUlDQkZlR05oYkdsa2NtRjNSV3hsYldWdWRDeGNiaUFnUlhoallXeHBaSEpoZDBaeVpXVkVjbUYzUld4bGJXVnVkQ3hjYmlBZ1JYaGpZV3hwWkhKaGQwZGxibVZ5YVdORmJHVnRaVzUwTEZ4dUlDQkZlR05oYkdsa2NtRjNUR2x1WldGeVJXeGxiV1Z1ZEN4Y2JpQWdSWGhqWVd4cFpISmhkMVJsZUhSRmJHVnRaVzUwTEZ4dUlDQk9iMjVFWld4bGRHVmtMRnh1SUNCSmJtbDBhV0ZzYVhwbFpFVjRZMkZzYVdSeVlYZEpiV0ZuWlVWc1pXMWxiblFzWEc0Z0lFVjRZMkZzYVdSeVlYZEpiV0ZuWlVWc1pXMWxiblFzWEc0Z0lFWnBiR1ZKWkN4Y2JpQWdUbTl1UkdWc1pYUmxaRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBMRnh1ZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEM5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1oyVjBRMlZ1ZEdWeUxDQm5aWFJFYVhOMFlXNWpaU0I5SUdaeWIyMGdYQ0l1TGk5blpYTjBkWEpsWENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JsWkdsMFIzSnZkWEJHYjNKVFpXeGxZM1JsWkVWc1pXMWxiblFzWEc0Z0lHZGxkRVZzWlcxbGJuUnpTVzVIY205MWNDeGNiaUFnWjJWMFUyVnNaV04wWldSSGNtOTFjRWxrUm05eVJXeGxiV1Z1ZEN4Y2JpQWdaMlYwVTJWc1pXTjBaV1JIY205MWNFbGtjeXhjYmlBZ2FYTkZiR1Z0Wlc1MFNXNUhjbTkxY0N4Y2JpQWdhWE5UWld4bFkzUmxaRlpwWVVkeWIzVndMRnh1SUNCelpXeGxZM1JIY205MWNITkdiM0pUWld4bFkzUmxaRVZzWlcxbGJuUnpMRnh1ZlNCbWNtOXRJRndpTGk0dlozSnZkWEJ6WENJN1hHNXBiWEJ2Y25RZ1NHbHpkRzl5ZVNCbWNtOXRJRndpTGk0dmFHbHpkRzl5ZVZ3aU8xeHVhVzF3YjNKMElIc2daR1ZtWVhWc2RFeGhibWNzSUdkbGRFeGhibWQxWVdkbExDQnNZVzVuZFdGblpYTXNJSE5sZEV4aGJtZDFZV2RsTENCMElIMGdabkp2YlNCY0lpNHVMMmt4T0c1Y0lqdGNibWx0Y0c5eWRDQjdYRzRnSUVOUFJFVlRMRnh1SUNCemFHOTFiR1JTWlhOcGVtVkdjbTl0UTJWdWRHVnlMRnh1SUNCemFHOTFiR1JOWVdsdWRHRnBia0Z6Y0dWamRGSmhkR2x2TEZ4dUlDQnphRzkxYkdSU2IzUmhkR1ZYYVhSb1JHbHpZM0psZEdWQmJtZHNaU3hjYmlBZ2FYTkJjbkp2ZDB0bGVTeGNiaUFnUzBWWlV5eGNiaUFnYVhOQmJtUnliMmxrTEZ4dWZTQm1jbTl0SUZ3aUxpNHZhMlY1YzF3aU8xeHVhVzF3YjNKMElIc2daR2x6ZEdGdVkyVXlaQ3dnWjJWMFIzSnBaRkJ2YVc1MExDQnBjMUJoZEdoQlRHOXZjQ0I5SUdaeWIyMGdYQ0l1TGk5dFlYUm9YQ0k3WEc1cGJYQnZjblFnZXlCeVpXNWtaWEpUWTJWdVpTQjlJR1p5YjIwZ1hDSXVMaTl5Wlc1a1pYSmxjbHdpTzF4dWFXMXdiM0owSUhzZ2FXNTJZV3hwWkdGMFpWTm9ZWEJsUm05eVJXeGxiV1Z1ZENCOUlHWnliMjBnWENJdUxpOXlaVzVrWlhKbGNpOXlaVzVrWlhKRmJHVnRaVzUwWENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JqWVd4amRXeGhkR1ZUWTNKdmJHeERaVzUwWlhJc1hHNGdJR2RsZEVWc1pXMWxiblJEYjI1MFlXbHVhVzVuVUc5emFYUnBiMjRzWEc0Z0lHZGxkRVZzWlcxbGJuUnpRWFJRYjNOcGRHbHZiaXhjYmlBZ1oyVjBSV3hsYldWdWRITlhhWFJvYVc1VFpXeGxZM1JwYjI0c1hHNGdJR2RsZEU1dmNtMWhiR2w2WldSYWIyOXRMRnh1SUNCblpYUlRaV3hsWTNSbFpFVnNaVzFsYm5SekxGeHVJQ0JvWVhOQ1lXTnJaM0p2ZFc1a0xGeHVJQ0JwYzA5MlpYSlRZM0p2Ykd4Q1lYSnpMRnh1SUNCcGMxTnZiV1ZGYkdWdFpXNTBVMlZzWldOMFpXUXNYRzU5SUdaeWIyMGdYQ0l1TGk5elkyVnVaVndpTzF4dWFXMXdiM0owSUZOalpXNWxJR1p5YjIwZ1hDSXVMaTl6WTJWdVpTOVRZMlZ1WlZ3aU8xeHVhVzF3YjNKMElIc2dVbVZ1WkdWeVEyOXVabWxuTENCVFkzSnZiR3hDWVhKeklIMGdabkp2YlNCY0lpNHVMM05qWlc1bEwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5Qm5aWFJUZEdGMFpVWnZjbHB2YjIwZ2ZTQm1jbTl0SUZ3aUxpNHZjMk5sYm1VdmVtOXZiVndpTzF4dWFXMXdiM0owSUhzZ1ptbHVaRk5vWVhCbFFubExaWGtnZlNCbWNtOXRJRndpTGk0dmMyaGhjR1Z6WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JCY0hCRGJHRnpjMUJ5YjNCbGNuUnBaWE1zWEc0Z0lFRndjRkJ5YjNCekxGeHVJQ0JCY0hCVGRHRjBaU3hjYmlBZ1FtbHVZWEo1Um1sc1pVUmhkR0VzWEc0Z0lFUmhkR0ZWVWt3c1hHNGdJRVY0WTJGc2FXUnlZWGRKYlhCbGNtRjBhWFpsUVZCSkxGeHVJQ0JDYVc1aGNubEdhV3hsY3l4Y2JpQWdSMlZ6ZEhWeVpTeGNiaUFnUjJWemRIVnlaVVYyWlc1MExGeHVJQ0JNYVdKeVlYSjVTWFJsYlhNc1hHNGdJRkJ2YVc1MFpYSkViM2R1VTNSaGRHVXNYRzRnSUZOalpXNWxSR0YwWVN4Y2JuMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCa1pXSnZkVzVqWlN4Y2JpQWdaR2x6ZEdGdVkyVXNYRzRnSUdkbGRFWnZiblJUZEhKcGJtY3NYRzRnSUdkbGRFNWxZWEpsYzNSVFkzSnZiR3hoWW14bFEyOXVkR0ZwYm1WeUxGeHVJQ0JwYzBsdWNIVjBUR2xyWlN4Y2JpQWdhWE5VYjI5c1NXTnZiaXhjYmlBZ2FYTlhjbWwwWVdKc1pVVnNaVzFsYm5Rc1hHNGdJSEpsYzJWMFEzVnljMjl5TEZ4dUlDQnlaWE52YkhaaFlteGxVSEp2YldselpTeGNiaUFnYzJObGJtVkRiMjl5WkhOVWIxWnBaWGR3YjNKMFEyOXZjbVJ6TEZ4dUlDQnpaWFJEZFhKemIzSXNYRzRnSUhObGRFTjFjbk52Y2tadmNsTm9ZWEJsTEZ4dUlDQjBkWEJzWlZSdlEyOXZjbk1zWEc0Z0lIWnBaWGR3YjNKMFEyOXZjbVJ6Vkc5VFkyVnVaVU52YjNKa2N5eGNiaUFnZDJsMGFFSmhkR05vWldSVmNHUmhkR1Z6TEZ4dUlDQjNjbUZ3UlhabGJuUXNYRzRnSUhkcGRHaENZWFJqYUdWa1ZYQmtZWFJsYzFSb2NtOTBkR3hsWkN4Y2JuMGdabkp2YlNCY0lpNHVMM1YwYVd4elhDSTdYRzVwYlhCdmNuUWdRMjl1ZEdWNGRFMWxiblVzSUhzZ1EyOXVkR1Y0ZEUxbGJuVlBjSFJwYjI0Z2ZTQm1jbTl0SUZ3aUxpOURiMjUwWlhoMFRXVnVkVndpTzF4dWFXMXdiM0owSUV4aGVXVnlWVWtnWm5KdmJTQmNJaTR2VEdGNVpYSlZTVndpTzF4dWFXMXdiM0owSUhzZ1UzUmhkSE1nZlNCbWNtOXRJRndpTGk5VGRHRjBjMXdpTzF4dWFXMXdiM0owSUhzZ1ZHOWhjM1FnZlNCbWNtOXRJRndpTGk5VWIyRnpkRndpTzF4dWFXMXdiM0owSUhzZ1lXTjBhVzl1Vkc5bloyeGxWbWxsZDAxdlpHVWdmU0JtY205dElGd2lMaTR2WVdOMGFXOXVjeTloWTNScGIyNVViMmRuYkdWV2FXVjNUVzlrWlZ3aU8xeHVhVzF3YjNKMElIdGNiaUFnWkdGMFlWVlNURlJ2Um1sc1pTeGNiaUFnWjJWdVpYSmhkR1ZKWkVaeWIyMUdhV3hsTEZ4dUlDQm5aWFJFWVhSaFZWSk1MRnh1SUNCcGMxTjFjSEJ2Y25SbFpFbHRZV2RsUm1sc1pTeGNiaUFnY21WemFYcGxTVzFoWjJWR2FXeGxMRnh1SUNCVFZrZFRkSEpwYm1kVWIwWnBiR1VzWEc1OUlHWnliMjBnWENJdUxpOWtZWFJoTDJKc2IySmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lHZGxkRWx1YVhScFlXeHBlbVZrU1cxaFoyVkZiR1Z0Wlc1MGN5eGNiaUFnYkc5aFpFaFVUVXhKYldGblpVVnNaVzFsYm5Rc1hHNGdJRzV2Y20xaGJHbDZaVk5XUnl4Y2JpQWdkWEJrWVhSbFNXMWhaMlZEWVdOb1pTQmhjeUJmZFhCa1lYUmxTVzFoWjJWRFlXTm9aU3hjYm4wZ1puSnZiU0JjSWk0dUwyVnNaVzFsYm5RdmFXMWhaMlZjSWp0Y2JtbHRjRzl5ZENCMGFISnZkSFJzWlNCbWNtOXRJRndpYkc5a1lYTm9MblJvY205MGRHeGxYQ0k3WEc1cGJYQnZjblFnZXlCbWFXeGxUM0JsYml3Z2JtRjBhWFpsUm1sc1pWTjVjM1JsYlZOMWNIQnZjblJsWkNCOUlHWnliMjBnWENJdUxpOWtZWFJoTDJacGJHVnplWE4wWlcxY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUdKcGJtUlVaWGgwVkc5VGFHRndaVUZtZEdWeVJIVndiR2xqWVhScGIyNHNYRzRnSUdkbGRFRndjSEp2ZUUxcGJreHBibVZJWldsbmFIUXNYRzRnSUdkbGRFRndjSEp2ZUUxcGJreHBibVZYYVdSMGFDeGNiaUFnWjJWMFFtOTFibVJVWlhoMFJXeGxiV1Z1ZEVsa0xGeHVmU0JtY205dElGd2lMaTR2Wld4bGJXVnVkQzkwWlhoMFJXeGxiV1Z1ZEZ3aU8xeHVhVzF3YjNKMElIc2dhWE5JYVhSMGFXNW5SV3hsYldWdWRFNXZkRU52Ym5OcFpHVnlhVzVuUW05MWJtUnBibWRDYjNnZ2ZTQm1jbTl0SUZ3aUxpNHZaV3hsYldWdWRDOWpiMnhzYVhOcGIyNWNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lHNXZjbTFoYkdsNlpVeHBibXNzWEc0Z0lITm9iM2RJZVhCbGNteHBibXRVYjI5c2RHbHdMRnh1SUNCb2FXUmxTSGx3WlhKc2FXNXJWRzl2Ykdsd0xGeHVJQ0JJZVhCbGNteHBibXNzWEc0Z0lHbHpVRzlwYm5SSWFYUjBhVzVuVEdsdWEwbGpiMjRzWEc0Z0lHbHpURzlqWVd4TWFXNXJMRnh1ZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEM5SWVYQmxjbXhwYm10Y0lqdGNibHh1WTI5dWMzUWdTWE5OYjJKcGJHVkRiMjUwWlhoMElEMGdVbVZoWTNRdVkzSmxZWFJsUTI5dWRHVjRkQ2htWVd4elpTazdYRzVsZUhCdmNuUWdZMjl1YzNRZ2RYTmxTWE5OYjJKcGJHVWdQU0FvS1NBOVBpQjFjMlZEYjI1MFpYaDBLRWx6VFc5aWFXeGxRMjl1ZEdWNGRDazdYRzVqYjI1emRDQkZlR05oYkdsa2NtRjNRMjl1ZEdGcGJtVnlRMjl1ZEdWNGRDQTlJRkpsWVdOMExtTnlaV0YwWlVOdmJuUmxlSFE4ZTF4dUlDQmpiMjUwWVdsdVpYSTZJRWhVVFV4RWFYWkZiR1Z0Wlc1MElId2diblZzYkR0Y2JpQWdhV1E2SUhOMGNtbHVaeUI4SUc1MWJHdzdYRzU5UGloN0lHTnZiblJoYVc1bGNqb2diblZzYkN3Z2FXUTZJRzUxYkd3Z2ZTazdYRzVsZUhCdmNuUWdZMjl1YzNRZ2RYTmxSWGhqWVd4cFpISmhkME52Ym5SaGFXNWxjaUE5SUNncElEMCtYRzRnSUhWelpVTnZiblJsZUhRb1JYaGpZV3hwWkhKaGQwTnZiblJoYVc1bGNrTnZiblJsZUhRcE8xeHVYRzVzWlhRZ1pHbGtWR0Z3VkhkcFkyVTZJR0p2YjJ4bFlXNGdQU0JtWVd4elpUdGNibXhsZENCMFlYQndaV1JVZDJsalpWUnBiV1Z5SUQwZ01EdGNibXhsZENCamRYSnpiM0pZSUQwZ01EdGNibXhsZENCamRYSnpiM0paSUQwZ01EdGNibXhsZENCcGMwaHZiR1JwYm1kVGNHRmpaVG9nWW05dmJHVmhiaUE5SUdaaGJITmxPMXh1YkdWMElHbHpVR0Z1Ym1sdVp6b2dZbTl2YkdWaGJpQTlJR1poYkhObE8xeHViR1YwSUdselJISmhaMmRwYm1kVFkzSnZiR3hDWVhJNklHSnZiMnhsWVc0Z1BTQm1ZV3h6WlR0Y2JteGxkQ0JqZFhKeVpXNTBVMk55YjJ4c1FtRnljem9nVTJOeWIyeHNRbUZ5Y3lBOUlIc2dhRzl5YVhwdmJuUmhiRG9nYm5Wc2JDd2dkbVZ5ZEdsallXdzZJRzUxYkd3Z2ZUdGNibXhsZENCMGIzVmphRlJwYldWdmRYUWdQU0F3TzF4dWJHVjBJR2x1ZG1Gc2FXUmhkR1ZEYjI1MFpYaDBUV1Z1ZFNBOUlHWmhiSE5sTzF4dVhHNXNaWFFnYkdGemRGQnZhVzUwWlhKVmNEb2dLQ2hsZG1WdWREb2dZVzU1S1NBOVBpQjJiMmxrS1NCOElHNTFiR3dnUFNCdWRXeHNPMXh1WTI5dWMzUWdaMlZ6ZEhWeVpUb2dSMlZ6ZEhWeVpTQTlJSHRjYmlBZ2NHOXBiblJsY25NNklHNWxkeUJOWVhBb0tTeGNiaUFnYkdGemRFTmxiblJsY2pvZ2JuVnNiQ3hjYmlBZ2FXNXBkR2xoYkVScGMzUmhibU5sT2lCdWRXeHNMRnh1SUNCcGJtbDBhV0ZzVTJOaGJHVTZJRzUxYkd3c1hHNTlPMXh1WEc1amJHRnpjeUJCY0hBZ1pYaDBaVzVrY3lCU1pXRmpkQzVEYjIxd2IyNWxiblE4UVhCd1VISnZjSE1zSUVGd2NGTjBZWFJsUGlCN1hHNGdJR05oYm5aaGN6b2dRWEJ3UTJ4aGMzTlFjbTl3WlhKMGFXVnpXMXdpWTJGdWRtRnpYQ0pkSUQwZ2JuVnNiRHRjYmlBZ2NtTTZJRkp2ZFdkb1EyRnVkbUZ6SUh3Z2JuVnNiQ0E5SUc1MWJHdzdYRzRnSUhWdWJXOTFiblJsWkRvZ1ltOXZiR1ZoYmlBOUlHWmhiSE5sTzF4dUlDQmhZM1JwYjI1TllXNWhaMlZ5T2lCQlkzUnBiMjVOWVc1aFoyVnlPMXh1SUNCcGMwMXZZbWxzWlNBOUlHWmhiSE5sTzF4dUlDQmtaWFJoWTJoSmMwMXZZbWxzWlUxeFNHRnVaR3hsY2o4NklDZ3BJRDArSUhadmFXUTdYRzVjYmlBZ2NISnBkbUYwWlNCbGVHTmhiR2xrY21GM1EyOXVkR0ZwYm1WeVVtVm1JRDBnVW1WaFkzUXVZM0psWVhSbFVtVm1QRWhVVFV4RWFYWkZiR1Z0Wlc1MFBpZ3BPMXh1WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nWkdWbVlYVnNkRkJ5YjNCek9pQlFZWEowYVdGc1BFRndjRkJ5YjNCelBpQTlJSHRjYmlBZ0lDQXZMeUJ1WldWa1pXUWdabTl5SUhSbGMzUnpJSFJ2SUhCaGMzTWdjMmx1WTJVZ2QyVWdaR2x5WldOMGJIa2djbVZ1WkdWeUlFRndjQ0JwYmlCdFlXNTVJSFJsYzNSelhHNGdJQ0FnVlVsUGNIUnBiMjV6T2lCRVJVWkJWVXhVWDFWSlgwOVFWRWxQVGxNc1hHNGdJSDA3WEc1Y2JpQWdjSEpwZG1GMFpTQnpZMlZ1WlRvZ1UyTmxibVU3WEc0Z0lIQnlhWFpoZEdVZ2NtVnphWHBsVDJKelpYSjJaWEk2SUZKbGMybDZaVTlpYzJWeWRtVnlJSHdnZFc1a1pXWnBibVZrTzF4dUlDQndjbWwyWVhSbElHNWxZWEpsYzNSVFkzSnZiR3hoWW14bFEyOXVkR0ZwYm1WeU9pQklWRTFNUld4bGJXVnVkQ0I4SUVSdlkzVnRaVzUwSUh3Z2RXNWtaV1pwYm1Wa08xeHVJQ0J3ZFdKc2FXTWdiR2xpY21GeWVUb2dRWEJ3UTJ4aGMzTlFjbTl3WlhKMGFXVnpXMXdpYkdsaWNtRnllVndpWFR0Y2JpQWdjSFZpYkdsaklHeHBZbkpoY25sSmRHVnRjMFp5YjIxVGRHOXlZV2RsT2lCTWFXSnlZWEo1U1hSbGJYTWdmQ0IxYm1SbFptbHVaV1E3WEc0Z0lIQnlhWFpoZEdVZ2FXUTZJSE4wY21sdVp6dGNiaUFnY0hKcGRtRjBaU0JvYVhOMGIzSjVPaUJJYVhOMGIzSjVPMXh1SUNCd2NtbDJZWFJsSUdWNFkyRnNhV1J5WVhkRGIyNTBZV2x1WlhKV1lXeDFaVG9nZTF4dUlDQWdJR052Ym5SaGFXNWxjam9nU0ZSTlRFUnBka1ZzWlcxbGJuUWdmQ0J1ZFd4c08xeHVJQ0FnSUdsa09pQnpkSEpwYm1jN1hHNGdJSDA3WEc1Y2JpQWdjSFZpYkdsaklHWnBiR1Z6T2lCQ2FXNWhjbmxHYVd4bGN5QTlJSHQ5TzF4dUlDQndkV0pzYVdNZ2FXMWhaMlZEWVdOb1pUb2dRWEJ3UTJ4aGMzTlFjbTl3WlhKMGFXVnpXMXdpYVcxaFoyVkRZV05vWlZ3aVhTQTlJRzVsZHlCTllYQW9LVHRjYmx4dUlDQm9hWFJNYVc1clJXeGxiV1Z1ZEQ4NklFNXZia1JsYkdWMFpXUkZlR05oYkdsa2NtRjNSV3hsYldWdWREdGNiaUFnYkdGemRGQnZhVzUwWlhKRWIzZHVPaUJTWldGamRDNVFiMmx1ZEdWeVJYWmxiblE4U0ZSTlRFTmhiblpoYzBWc1pXMWxiblErSUh3Z2JuVnNiQ0E5SUc1MWJHdzdYRzRnSUd4aGMzUlFiMmx1ZEdWeVZYQTZJRkpsWVdOMExsQnZhVzUwWlhKRmRtVnVkRHhJVkUxTVJXeGxiV1Z1ZEQ0Z2ZDQlFiMmx1ZEdWeVJYWmxiblFnZkNCdWRXeHNJRDBnYm5Wc2JEdGNiaUFnWTI5dWRHVjRkRTFsYm5WUGNHVnVPaUJpYjI5c1pXRnVJRDBnWm1Gc2MyVTdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9jSEp2Y0hNNklFRndjRkJ5YjNCektTQjdYRzRnSUNBZ2MzVndaWElvY0hKdmNITXBPMXh1SUNBZ0lHTnZibk4wSUdSbFptRjFiSFJCY0hCVGRHRjBaU0E5SUdkbGRFUmxabUYxYkhSQmNIQlRkR0YwWlNncE8xeHVJQ0FnSUdOdmJuTjBJSHRjYmlBZ0lDQWdJR1Y0WTJGc2FXUnlZWGRTWldZc1hHNGdJQ0FnSUNCMmFXVjNUVzlrWlVWdVlXSnNaV1FnUFNCbVlXeHpaU3hjYmlBZ0lDQWdJSHBsYmsxdlpHVkZibUZpYkdWa0lEMGdabUZzYzJVc1hHNGdJQ0FnSUNCbmNtbGtUVzlrWlVWdVlXSnNaV1FnUFNCbVlXeHpaU3hjYmlBZ0lDQWdJSFJvWlcxbElEMGdaR1ZtWVhWc2RFRndjRk4wWVhSbExuUm9aVzFsTEZ4dUlDQWdJQ0FnYm1GdFpTQTlJR1JsWm1GMWJIUkJjSEJUZEdGMFpTNXVZVzFsTEZ4dUlDQWdJSDBnUFNCd2NtOXdjenRjYmlBZ0lDQjBhR2x6TG5OMFlYUmxJRDBnZTF4dUlDQWdJQ0FnTGk0dVpHVm1ZWFZzZEVGd2NGTjBZWFJsTEZ4dUlDQWdJQ0FnZEdobGJXVXNYRzRnSUNBZ0lDQnBjMHh2WVdScGJtYzZJSFJ5ZFdVc1hHNGdJQ0FnSUNBdUxpNTBhR2x6TG1kbGRFTmhiblpoYzA5bVpuTmxkSE1vS1N4Y2JpQWdJQ0FnSUhacFpYZE5iMlJsUlc1aFlteGxaQ3hjYmlBZ0lDQWdJSHBsYmsxdlpHVkZibUZpYkdWa0xGeHVJQ0FnSUNBZ1ozSnBaRk5wZW1VNklHZHlhV1JOYjJSbFJXNWhZbXhsWkNBL0lFZFNTVVJmVTBsYVJTQTZJRzUxYkd3c1hHNGdJQ0FnSUNCdVlXMWxMRnh1SUNBZ0lDQWdkMmxrZEdnNklIZHBibVJ2ZHk1cGJtNWxjbGRwWkhSb0xGeHVJQ0FnSUNBZ2FHVnBaMmgwT2lCM2FXNWtiM2N1YVc1dVpYSklaV2xuYUhRc1hHNGdJQ0FnSUNCemFHOTNTSGx3WlhKc2FXNXJVRzl3ZFhBNklHWmhiSE5sTEZ4dUlDQWdJSDA3WEc1Y2JpQWdJQ0IwYUdsekxtbGtJRDBnYm1GdWIybGtLQ2s3WEc1Y2JpQWdJQ0JwWmlBb1pYaGpZV3hwWkhKaGQxSmxaaWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjbVZoWkhsUWNtOXRhWE5sSUQxY2JpQWdJQ0FnSUNBZ0tGd2lZM1Z5Y21WdWRGd2lJR2x1SUdWNFkyRnNhV1J5WVhkU1pXWWdKaVlnWlhoallXeHBaSEpoZDFKbFppNWpkWEp5Wlc1MFB5NXlaV0ZrZVZCeWIyMXBjMlVwSUh4OFhHNGdJQ0FnSUNBZ0lISmxjMjlzZG1GaWJHVlFjbTl0YVhObFBFVjRZMkZzYVdSeVlYZEpiWEJsY21GMGFYWmxRVkJKUGlncE8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCaGNHazZJRVY0WTJGc2FXUnlZWGRKYlhCbGNtRjBhWFpsUVZCSklEMGdlMXh1SUNBZ0lDQWdJQ0J5WldGa2VUb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ2NtVmhaSGxRY205dGFYTmxMRnh1SUNBZ0lDQWdJQ0IxY0dSaGRHVlRZMlZ1WlRvZ2RHaHBjeTUxY0dSaGRHVlRZMlZ1WlN4Y2JpQWdJQ0FnSUNBZ1lXUmtSbWxzWlhNNklIUm9hWE11WVdSa1JtbHNaWE1zWEc0Z0lDQWdJQ0FnSUhKbGMyVjBVMk5sYm1VNklIUm9hWE11Y21WelpYUlRZMlZ1WlN4Y2JpQWdJQ0FnSUNBZ1oyVjBVMk5sYm1WRmJHVnRaVzUwYzBsdVkyeDFaR2x1WjBSbGJHVjBaV1E2SUhSb2FYTXVaMlYwVTJObGJtVkZiR1Z0Wlc1MGMwbHVZMngxWkdsdVowUmxiR1YwWldRc1hHNGdJQ0FnSUNBZ0lHaHBjM1J2Y25rNklIdGNiaUFnSUNBZ0lDQWdJQ0JqYkdWaGNqb2dkR2hwY3k1eVpYTmxkRWhwYzNSdmNua3NYRzRnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUhOamNtOXNiRlJ2UTI5dWRHVnVkRG9nZEdocGN5NXpZM0p2Ykd4VWIwTnZiblJsYm5Rc1hHNGdJQ0FnSUNBZ0lHZGxkRk5qWlc1bFJXeGxiV1Z1ZEhNNklIUm9hWE11WjJWMFUyTmxibVZGYkdWdFpXNTBjeXhjYmlBZ0lDQWdJQ0FnWjJWMFFYQndVM1JoZEdVNklDZ3BJRDArSUhSb2FYTXVjM1JoZEdVc1hHNGdJQ0FnSUNBZ0lHZGxkRVpwYkdWek9pQW9LU0E5UGlCMGFHbHpMbVpwYkdWekxGeHVJQ0FnSUNBZ0lDQnlaV1p5WlhOb09pQjBhR2x6TG5KbFpuSmxjMmdzWEc0Z0lDQWdJQ0FnSUdsdGNHOXlkRXhwWW5KaGNuazZJSFJvYVhNdWFXMXdiM0owVEdsaWNtRnllVVp5YjIxVmNtd3NYRzRnSUNBZ0lDQWdJSE5sZEZSdllYTjBUV1Z6YzJGblpUb2dkR2hwY3k1elpYUlViMkZ6ZEUxbGMzTmhaMlVzWEc0Z0lDQWdJQ0FnSUdsa09pQjBhR2x6TG1sa0xGeHVJQ0FnSUNBZ2ZTQmhjeUJqYjI1emREdGNiaUFnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdaWGhqWVd4cFpISmhkMUpsWmlBOVBUMGdYQ0ptZFc1amRHbHZibHdpS1NCN1hHNGdJQ0FnSUNBZ0lHVjRZMkZzYVdSeVlYZFNaV1lvWVhCcEtUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHVjRZMkZzYVdSeVlYZFNaV1l1WTNWeWNtVnVkQ0E5SUdGd2FUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxZV1I1VUhKdmJXbHpaUzV5WlhOdmJIWmxLR0Z3YVNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZEdocGN5NWxlR05oYkdsa2NtRjNRMjl1ZEdGcGJtVnlWbUZzZFdVZ1BTQjdYRzRnSUNBZ0lDQmpiMjUwWVdsdVpYSTZJSFJvYVhNdVpYaGpZV3hwWkhKaGQwTnZiblJoYVc1bGNsSmxaaTVqZFhKeVpXNTBMRnh1SUNBZ0lDQWdhV1E2SUhSb2FYTXVhV1FzWEc0Z0lDQWdmVHRjYmx4dUlDQWdJSFJvYVhNdWMyTmxibVVnUFNCdVpYY2dVMk5sYm1Vb0tUdGNiaUFnSUNCMGFHbHpMbXhwWW5KaGNua2dQU0J1WlhjZ1RHbGljbUZ5ZVNoMGFHbHpLVHRjYmlBZ0lDQjBhR2x6TG1ocGMzUnZjbmtnUFNCdVpYY2dTR2x6ZEc5eWVTZ3BPMXh1SUNBZ0lIUm9hWE11WVdOMGFXOXVUV0Z1WVdkbGNpQTlJRzVsZHlCQlkzUnBiMjVOWVc1aFoyVnlLRnh1SUNBZ0lDQWdkR2hwY3k1emVXNWpRV04wYVc5dVVtVnpkV3gwTEZ4dUlDQWdJQ0FnS0NrZ1BUNGdkR2hwY3k1emRHRjBaU3hjYmlBZ0lDQWdJQ2dwSUQwK0lIUm9hWE11YzJObGJtVXVaMlYwUld4bGJXVnVkSE5KYm1Oc2RXUnBibWRFWld4bGRHVmtLQ2tzWEc0Z0lDQWdJQ0IwYUdsekxGeHVJQ0FnSUNrN1hHNGdJQ0FnZEdocGN5NWhZM1JwYjI1TllXNWhaMlZ5TG5KbFoybHpkR1Z5UVd4c0tHRmpkR2x2Ym5NcE8xeHVYRzRnSUNBZ2RHaHBjeTVoWTNScGIyNU5ZVzVoWjJWeUxuSmxaMmx6ZEdWeVFXTjBhVzl1S0dOeVpXRjBaVlZ1Wkc5QlkzUnBiMjRvZEdocGN5NW9hWE4wYjNKNUtTazdYRzRnSUNBZ2RHaHBjeTVoWTNScGIyNU5ZVzVoWjJWeUxuSmxaMmx6ZEdWeVFXTjBhVzl1S0dOeVpXRjBaVkpsWkc5QlkzUnBiMjRvZEdocGN5NW9hWE4wYjNKNUtTazdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJSEpsYm1SbGNrTmhiblpoY3lncElIdGNiaUFnSUNCamIyNXpkQ0JqWVc1MllYTlRZMkZzWlNBOUlIZHBibVJ2ZHk1a1pYWnBZMlZRYVhobGJGSmhkR2x2TzF4dUlDQWdJR052Ym5OMElIdGNiaUFnSUNBZ0lIZHBaSFJvT2lCallXNTJZWE5FVDAxWGFXUjBhQ3hjYmlBZ0lDQWdJR2hsYVdkb2REb2dZMkZ1ZG1GelJFOU5TR1ZwWjJoMExGeHVJQ0FnSUNBZ2RtbGxkMDF2WkdWRmJtRmliR1ZrTEZ4dUlDQWdJSDBnUFNCMGFHbHpMbk4wWVhSbE8xeHVJQ0FnSUdOdmJuTjBJR05oYm5aaGMxZHBaSFJvSUQwZ1kyRnVkbUZ6UkU5TlYybGtkR2dnS2lCallXNTJZWE5UWTJGc1pUdGNiaUFnSUNCamIyNXpkQ0JqWVc1MllYTklaV2xuYUhRZ1BTQmpZVzUyWVhORVQwMUlaV2xuYUhRZ0tpQmpZVzUyWVhOVFkyRnNaVHRjYmlBZ0lDQnBaaUFvZG1sbGQwMXZaR1ZGYm1GaWJHVmtLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lDQWdJQ0E4WTJGdWRtRnpYRzRnSUNBZ0lDQWdJQ0FnWTJ4aGMzTk9ZVzFsUFZ3aVpYaGpZV3hwWkhKaGQxOWZZMkZ1ZG1GelhDSmNiaUFnSUNBZ0lDQWdJQ0J6ZEhsc1pUMTdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2QybGtkR2c2SUdOaGJuWmhjMFJQVFZkcFpIUm9MRnh1SUNBZ0lDQWdJQ0FnSUNBZ2FHVnBaMmgwT2lCallXNTJZWE5FVDAxSVpXbG5hSFFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmpkWEp6YjNJNklFTlZVbE5QVWw5VVdWQkZMa2RTUVVJc1hHNGdJQ0FnSUNBZ0lDQWdmWDFjYmlBZ0lDQWdJQ0FnSUNCM2FXUjBhRDE3WTJGdWRtRnpWMmxrZEdoOVhHNGdJQ0FnSUNBZ0lDQWdhR1ZwWjJoMFBYdGpZVzUyWVhOSVpXbG5hSFI5WEc0Z0lDQWdJQ0FnSUNBZ2NtVm1QWHQwYUdsekxtaGhibVJzWlVOaGJuWmhjMUpsWm4xY2JpQWdJQ0FnSUNBZ0lDQnZia052Ym5SbGVIUk5aVzUxUFh0MGFHbHpMbWhoYm1Sc1pVTmhiblpoYzBOdmJuUmxlSFJOWlc1MWZWeHVJQ0FnSUNBZ0lDQWdJRzl1VUc5cGJuUmxjazF2ZG1VOWUzUm9hWE11YUdGdVpHeGxRMkZ1ZG1GelVHOXBiblJsY2sxdmRtVjlYRzRnSUNBZ0lDQWdJQ0FnYjI1UWIybHVkR1Z5VlhBOWUzUm9hWE11YUdGdVpHeGxRMkZ1ZG1GelVHOXBiblJsY2xWd2ZWeHVJQ0FnSUNBZ0lDQWdJRzl1VUc5cGJuUmxja05oYm1ObGJEMTdkR2hwY3k1eVpXMXZkbVZRYjJsdWRHVnlmVnh1SUNBZ0lDQWdJQ0FnSUc5dVZHOTFZMmhOYjNabFBYdDBhR2x6TG1oaGJtUnNaVlJ2ZFdOb1RXOTJaWDFjYmlBZ0lDQWdJQ0FnSUNCdmJsQnZhVzUwWlhKRWIzZHVQWHQwYUdsekxtaGhibVJzWlVOaGJuWmhjMUJ2YVc1MFpYSkViM2R1ZlZ4dUlDQWdJQ0FnSUNBK1hHNGdJQ0FnSUNBZ0lDQWdlM1FvWENKc1lXSmxiSE11WkhKaGQybHVaME5oYm5aaGMxd2lLWDFjYmlBZ0lDQWdJQ0FnUEM5allXNTJZWE0rWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ1BHTmhiblpoYzF4dUlDQWdJQ0FnSUNCamJHRnpjMDVoYldVOVhDSmxlR05oYkdsa2NtRjNYMTlqWVc1MllYTmNJbHh1SUNBZ0lDQWdJQ0J6ZEhsc1pUMTdlMXh1SUNBZ0lDQWdJQ0FnSUhkcFpIUm9PaUJqWVc1MllYTkVUMDFYYVdSMGFDeGNiaUFnSUNBZ0lDQWdJQ0JvWldsbmFIUTZJR05oYm5aaGMwUlBUVWhsYVdkb2RDeGNiaUFnSUNBZ0lDQWdmWDFjYmlBZ0lDQWdJQ0FnZDJsa2RHZzllMk5oYm5aaGMxZHBaSFJvZlZ4dUlDQWdJQ0FnSUNCb1pXbG5hSFE5ZTJOaGJuWmhjMGhsYVdkb2RIMWNiaUFnSUNBZ0lDQWdjbVZtUFh0MGFHbHpMbWhoYm1Sc1pVTmhiblpoYzFKbFpuMWNiaUFnSUNBZ0lDQWdiMjVEYjI1MFpYaDBUV1Z1ZFQxN2RHaHBjeTVvWVc1a2JHVkRZVzUyWVhORGIyNTBaWGgwVFdWdWRYMWNiaUFnSUNBZ0lDQWdiMjVRYjJsdWRHVnlSRzkzYmoxN2RHaHBjeTVvWVc1a2JHVkRZVzUyWVhOUWIybHVkR1Z5Ukc5M2JuMWNiaUFnSUNBZ0lDQWdiMjVFYjNWaWJHVkRiR2xqYXoxN2RHaHBjeTVvWVc1a2JHVkRZVzUyWVhORWIzVmliR1ZEYkdsamEzMWNiaUFnSUNBZ0lDQWdiMjVRYjJsdWRHVnlUVzkyWlQxN2RHaHBjeTVvWVc1a2JHVkRZVzUyWVhOUWIybHVkR1Z5VFc5MlpYMWNiaUFnSUNBZ0lDQWdiMjVRYjJsdWRHVnlWWEE5ZTNSb2FYTXVhR0Z1Wkd4bFEyRnVkbUZ6VUc5cGJuUmxjbFZ3ZlZ4dUlDQWdJQ0FnSUNCdmJsQnZhVzUwWlhKRFlXNWpaV3c5ZTNSb2FYTXVjbVZ0YjNabFVHOXBiblJsY24xY2JpQWdJQ0FnSUNBZ2IyNVViM1ZqYUUxdmRtVTllM1JvYVhNdWFHRnVaR3hsVkc5MVkyaE5iM1psZlZ4dUlDQWdJQ0FnUGx4dUlDQWdJQ0FnSUNCN2RDaGNJbXhoWW1Wc2N5NWtjbUYzYVc1blEyRnVkbUZ6WENJcGZWeHVJQ0FnSUNBZ1BDOWpZVzUyWVhNK1hHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCeVpXNWtaWElvS1NCN1hHNGdJQ0FnWTI5dWMzUWdleUI2Wlc1TmIyUmxSVzVoWW14bFpDd2dkbWxsZDAxdlpHVkZibUZpYkdWa0lIMGdQU0IwYUdsekxuTjBZWFJsTzF4dUlDQWdJR052Ym5OMElITmxiR1ZqZEdWa1JXeGxiV1Z1ZENBOUlHZGxkRk5sYkdWamRHVmtSV3hsYldWdWRITW9YRzRnSUNBZ0lDQjBhR2x6TG5OalpXNWxMbWRsZEVWc1pXMWxiblJ6S0Nrc1hHNGdJQ0FnSUNCMGFHbHpMbk4wWVhSbExGeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdlMXh1SUNBZ0lDQWdiMjVEYjJ4c1lXSkNkWFIwYjI1RGJHbGpheXhjYmlBZ0lDQWdJSEpsYm1SbGNsUnZjRkpwWjJoMFZVa3NYRzRnSUNBZ0lDQnlaVzVrWlhKR2IyOTBaWElzWEc0Z0lDQWdJQ0J5Wlc1a1pYSkRkWE4wYjIxVGRHRjBjeXhjYmlBZ0lDQjlJRDBnZEdocGN5NXdjbTl3Y3p0Y2JseHVJQ0FnSUhKbGRIVnliaUFvWEc0Z0lDQWdJQ0E4WkdsMlhHNGdJQ0FnSUNBZ0lHTnNZWE56VG1GdFpUMTdZMnh6ZUNoY0ltVjRZMkZzYVdSeVlYY2daWGhqWVd4cFpISmhkeTFqYjI1MFlXbHVaWEpjSWl3Z2UxeHVJQ0FnSUNBZ0lDQWdJRndpWlhoallXeHBaSEpoZHkwdGRtbGxkeTF0YjJSbFhDSTZJSFpwWlhkTmIyUmxSVzVoWW14bFpDeGNiaUFnSUNBZ0lDQWdJQ0JjSW1WNFkyRnNhV1J5WVhjdExXMXZZbWxzWlZ3aU9pQjBhR2x6TG1selRXOWlhV3hsTEZ4dUlDQWdJQ0FnSUNCOUtYMWNiaUFnSUNBZ0lDQWdjbVZtUFh0MGFHbHpMbVY0WTJGc2FXUnlZWGREYjI1MFlXbHVaWEpTWldaOVhHNGdJQ0FnSUNBZ0lHOXVSSEp2Y0QxN2RHaHBjeTVvWVc1a2JHVkJjSEJQYmtSeWIzQjlYRzRnSUNBZ0lDQWdJSFJoWWtsdVpHVjRQWHN3ZlZ4dUlDQWdJQ0FnSUNCdmJrdGxlVVJ2ZDI0OWUxeHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdWNISnZjSE11YUdGdVpHeGxTMlY1WW05aGNtUkhiRzlpWVd4c2VTQS9JSFZ1WkdWbWFXNWxaQ0E2SUhSb2FYTXViMjVMWlhsRWIzZHVYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJRDVjYmlBZ0lDQWdJQ0FnUEVWNFkyRnNhV1J5WVhkRGIyNTBZV2x1WlhKRGIyNTBaWGgwTGxCeWIzWnBaR1Z5WEc0Z0lDQWdJQ0FnSUNBZ2RtRnNkV1U5ZTNSb2FYTXVaWGhqWVd4cFpISmhkME52Ym5SaGFXNWxjbFpoYkhWbGZWeHVJQ0FnSUNBZ0lDQStYRzRnSUNBZ0lDQWdJQ0FnUEVselRXOWlhV3hsUTI5dWRHVjRkQzVRY205MmFXUmxjaUIyWVd4MVpUMTdkR2hwY3k1cGMwMXZZbWxzWlgwK1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4VEdGNVpYSlZTVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZVzUyWVhNOWUzUm9hWE11WTJGdWRtRnpmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpUMTdkR2hwY3k1emRHRjBaWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdabWxzWlhNOWUzUm9hWE11Wm1sc1pYTjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxkRUZ3Y0ZOMFlYUmxQWHQwYUdsekxuTmxkRUZ3Y0ZOMFlYUmxmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmhZM1JwYjI1TllXNWhaMlZ5UFh0MGFHbHpMbUZqZEdsdmJrMWhibUZuWlhKOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc1pXMWxiblJ6UFh0MGFHbHpMbk5qWlc1bExtZGxkRVZzWlcxbGJuUnpLQ2w5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UTI5c2JHRmlRblYwZEc5dVEyeHBZMnM5ZTI5dVEyOXNiR0ZpUW5WMGRHOXVRMnhwWTJ0OVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVRHOWphMVJ2WjJkc1pUMTdkR2hwY3k1MGIyZG5iR1ZNYjJOcmZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJsQmxiazF2WkdWVWIyZG5iR1U5ZTNSb2FYTXVkRzluWjJ4bFVHVnVUVzlrWlgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1SmJuTmxjblJGYkdWdFpXNTBjejE3S0dWc1pXMWxiblJ6S1NBOVBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WVdSa1JXeGxiV1Z1ZEhOR2NtOXRVR0Z6ZEdWUGNreHBZbkpoY25rb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRITXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3YjNOcGRHbHZiam9nWENKalpXNTBaWEpjSWl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHWnBiR1Z6T2lCdWRXeHNMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDBwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdlbVZ1VFc5a1pVVnVZV0pzWldROWUzcGxiazF2WkdWRmJtRmliR1ZrZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0IwYjJkbmJHVmFaVzVOYjJSbFBYdDBhR2x6TG5SdloyZHNaVnBsYmsxdlpHVjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGhibWREYjJSbFBYdG5aWFJNWVc1bmRXRm5aU2dwTG1OdlpHVjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHbHpRMjlzYkdGaWIzSmhkR2x1WnoxN2RHaHBjeTV3Y205d2N5NXBjME52Ykd4aFltOXlZWFJwYm1kOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGJtUmxjbFJ2Y0ZKcFoyaDBWVWs5ZTNKbGJtUmxjbFJ2Y0ZKcFoyaDBWVWw5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYm1SbGNrTjFjM1J2YlVadmIzUmxjajE3Y21WdVpHVnlSbTl2ZEdWeWZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCMmFXVjNUVzlrWlVWdVlXSnNaV1E5ZTNacFpYZE5iMlJsUlc1aFlteGxaSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjMmh2ZDBWNGFYUmFaVzVOYjJSbFFuUnVQWHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwZVhCbGIyWWdkR2hwY3k1d2NtOXdjejh1ZW1WdVRXOWtaVVZ1WVdKc1pXUWdQVDA5SUZ3aWRXNWtaV1pwYm1Wa1hDSWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I2Wlc1TmIyUmxSVzVoWW14bFpGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhOb2IzZFVhR1Z0WlVKMGJqMTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkSGx3Wlc5bUlIUm9hWE11Y0hKdmNITS9MblJvWlcxbElEMDlQU0JjSW5WdVpHVm1hVzVsWkZ3aUlDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1d2NtOXdjeTVWU1U5d2RHbHZibk11WTJGdWRtRnpRV04wYVc5dWN5NTBhR1Z0WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR3hwWW5KaGNubFNaWFIxY201VmNtdzllM1JvYVhNdWNISnZjSE11YkdsaWNtRnllVkpsZEhWeWJsVnliSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdWVWxQY0hScGIyNXpQWHQwYUdsekxuQnliM0J6TGxWSlQzQjBhVzl1YzMxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWm05amRYTkRiMjUwWVdsdVpYSTllM1JvYVhNdVptOWpkWE5EYjI1MFlXbHVaWEo5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR3hwWW5KaGNuazllM1JvYVhNdWJHbGljbUZ5ZVgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdROWUzUm9hWE11YVdSOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVNXMWhaMlZCWTNScGIyNDllM1JvYVhNdWIyNUpiV0ZuWlVGamRHbHZibjFjYmlBZ0lDQWdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBOFpHbDJJR05zWVhOelRtRnRaVDFjSW1WNFkyRnNhV1J5WVhjdGRHVjRkRVZrYVhSdmNrTnZiblJoYVc1bGNsd2lJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQThaR2wySUdOc1lYTnpUbUZ0WlQxY0ltVjRZMkZzYVdSeVlYY3RZMjl1ZEdWNGRFMWxiblZEYjI1MFlXbHVaWEpjSWlBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnZTNObGJHVmpkR1ZrUld4bGJXVnVkQzVzWlc1bmRHZ2dQVDA5SURFZ0ppWWdkR2hwY3k1emRHRjBaUzV6YUc5M1NIbHdaWEpzYVc1clVHOXdkWEFnSmlZZ0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFNIbHdaWEpzYVc1clhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2EyVjVQWHR6Wld4bFkzUmxaRVZzWlcxbGJuUmJNRjB1YVdSOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEQxN2MyVnNaV04wWldSRmJHVnRaVzUwV3pCZGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHRndjRk4wWVhSbFBYdDBhR2x6TG5OMFlYUmxmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5sZEVGd2NGTjBZWFJsUFh0MGFHbHpMbk5sZEVGd2NGTjBZWFJsZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVRHbHVhMDl3Wlc0OWUzUm9hWE11Y0hKdmNITXViMjVNYVc1clQzQmxibjFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lDbDlYRzRnSUNBZ0lDQWdJQ0FnSUNCN2RHaHBjeTV6ZEdGMFpTNXphRzkzVTNSaGRITWdKaVlnS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0E4VTNSaGRITmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpUMTdkR2hwY3k1emRHRjBaWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6WlhSQmNIQlRkR0YwWlQxN2RHaHBjeTV6WlhSQmNIQlRkR0YwWlgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJHVnRaVzUwY3oxN2RHaHBjeTV6WTJWdVpTNW5aWFJGYkdWdFpXNTBjeWdwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVEyeHZjMlU5ZTNSb2FYTXVkRzluWjJ4bFUzUmhkSE45WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WdVpHVnlRM1Z6ZEc5dFUzUmhkSE05ZTNKbGJtUmxja04xYzNSdmJWTjBZWFJ6ZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIdDBhR2x6TG5OMFlYUmxMblJ2WVhOMFRXVnpjMkZuWlNBaFBUMGdiblZzYkNBbUppQW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEeFViMkZ6ZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxbGMzTmhaMlU5ZTNSb2FYTXVjM1JoZEdVdWRHOWhjM1JOWlhOellXZGxmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05zWldGeVZHOWhjM1E5ZTNSb2FYTXVZMnhsWVhKVWIyRnpkSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lDbDlYRzRnSUNBZ0lDQWdJQ0FnSUNBOGJXRnBiajU3ZEdocGN5NXlaVzVrWlhKRFlXNTJZWE1vS1gwOEwyMWhhVzQrWEc0Z0lDQWdJQ0FnSUNBZ1BDOUpjMDF2WW1sc1pVTnZiblJsZUhRdVVISnZkbWxrWlhJK1hHNGdJQ0FnSUNBZ0lEd3ZSWGhqWVd4cFpISmhkME52Ym5SaGFXNWxja052Ym5SbGVIUXVVSEp2ZG1sa1pYSStYRzRnSUNBZ0lDQThMMlJwZGo1Y2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdadlkzVnpRMjl1ZEdGcGJtVnlPaUJCY0hCRGJHRnpjMUJ5YjNCbGNuUnBaWE5iWENKbWIyTjFjME52Ym5SaGFXNWxjbHdpWFNBOUlDZ3BJRDArSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTV3Y205d2N5NWhkWFJ2Um05amRYTXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVpYaGpZV3hwWkhKaGQwTnZiblJoYVc1bGNsSmxaaTVqZFhKeVpXNTBQeTVtYjJOMWN5Z3BPMXh1SUNBZ0lIMWNiaUFnZlR0Y2JseHVJQ0J3ZFdKc2FXTWdaMlYwVTJObGJtVkZiR1Z0Wlc1MGMwbHVZMngxWkdsdVowUmxiR1YwWldRZ1BTQW9LU0E5UGlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWMyTmxibVV1WjJWMFJXeGxiV1Z1ZEhOSmJtTnNkV1JwYm1kRVpXeGxkR1ZrS0NrN1hHNGdJSDA3WEc1Y2JpQWdjSFZpYkdsaklHZGxkRk5qWlc1bFJXeGxiV1Z1ZEhNZ1BTQW9LU0E5UGlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWMyTmxibVV1WjJWMFJXeGxiV1Z1ZEhNb0tUdGNiaUFnZlR0Y2JseHVJQ0J3Y21sMllYUmxJSE41Ym1OQlkzUnBiMjVTWlhOMWJIUWdQU0IzYVhSb1FtRjBZMmhsWkZWd1pHRjBaWE1vWEc0Z0lDQWdLR0ZqZEdsdmJsSmxjM1ZzZERvZ1FXTjBhVzl1VW1WemRXeDBLU0E5UGlCN1hHNGdJQ0FnSUNBdkx5QlRhVzVqWlNCamIyNTBaWGgwSUcxbGJuVWdZMnh2YzJWeklIZG9aVzRnWVdOMGFXOXVJSFJ5YVdkblpYSmxaQ0J6YnlCelpYUjBhVzVuSUhSdklHWmhiSE5sWEc0Z0lDQWdJQ0IwYUdsekxtTnZiblJsZUhSTlpXNTFUM0JsYmlBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11ZFc1dGIzVnVkR1ZrSUh4OElHRmpkR2x2YmxKbGMzVnNkQ0E5UFQwZ1ptRnNjMlVwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCc1pYUWdaV1JwZEdsdVowVnNaVzFsYm5RNklFRndjRk4wWVhSbFcxd2laV1JwZEdsdVowVnNaVzFsYm5SY0lsMGdmQ0J1ZFd4c0lEMGdiblZzYkR0Y2JpQWdJQ0FnSUdsbUlDaGhZM1JwYjI1U1pYTjFiSFF1Wld4bGJXVnVkSE1wSUh0Y2JpQWdJQ0FnSUNBZ1lXTjBhVzl1VW1WemRXeDBMbVZzWlcxbGJuUnpMbVp2Y2tWaFkyZ29LR1ZzWlcxbGJuUXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMbVZrYVhScGJtZEZiR1Z0Wlc1MFB5NXBaQ0E5UFQwZ1pXeGxiV1Z1ZEM1cFpDQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6ZEdGMFpTNWxaR2wwYVc1blJXeGxiV1Z1ZENBaFBUMGdaV3hsYldWdWRDQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FYTk9iMjVFWld4bGRHVmtSV3hsYldWdWRDaGxiR1Z0Wlc1MEtWeHVJQ0FnSUNBZ0lDQWdJQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaV1JwZEdsdVowVnNaVzFsYm5RZ1BTQmxiR1Z0Wlc1ME8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJObGJtVXVjbVZ3YkdGalpVRnNiRVZzWlcxbGJuUnpLR0ZqZEdsdmJsSmxjM1ZzZEM1bGJHVnRaVzUwY3lrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hoWTNScGIyNVNaWE4xYkhRdVkyOXRiV2wwVkc5SWFYTjBiM0o1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1b2FYTjBiM0o1TG5KbGMzVnRaVkpsWTI5eVpHbHVaeWdwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2hoWTNScGIyNVNaWE4xYkhRdVptbHNaWE1wSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVtYVd4bGN5QTlJR0ZqZEdsdmJsSmxjM1ZzZEM1eVpYQnNZV05sUm1sc1pYTmNiaUFnSUNBZ0lDQWdJQ0EvSUdGamRHbHZibEpsYzNWc2RDNW1hV3hsYzF4dUlDQWdJQ0FnSUNBZ0lEb2dleUF1TGk1MGFHbHpMbVpwYkdWekxDQXVMaTVoWTNScGIyNVNaWE4xYkhRdVptbHNaWE1nZlR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVoWkdST1pYZEpiV0ZuWlhOVWIwbHRZV2RsUTJGamFHVW9LVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnYVdZZ0tHRmpkR2x2YmxKbGMzVnNkQzVoY0hCVGRHRjBaU0I4ZkNCbFpHbDBhVzVuUld4bGJXVnVkQ2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9ZV04wYVc5dVVtVnpkV3gwTG1OdmJXMXBkRlJ2U0dsemRHOXllU2tnZTF4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11YUdsemRHOXllUzV5WlhOMWJXVlNaV052Y21ScGJtY29LVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHeGxkQ0IyYVdWM1RXOWtaVVZ1WVdKc1pXUWdQU0JoWTNScGIyNVNaWE4xYkhRL0xtRndjRk4wWVhSbFB5NTJhV1YzVFc5a1pVVnVZV0pzWldRZ2ZId2dabUZzYzJVN1hHNGdJQ0FnSUNBZ0lHeGxkQ0I2Wlc1TmIyUmxSVzVoWW14bFpDQTlJR0ZqZEdsdmJsSmxjM1ZzZEQ4dVlYQndVM1JoZEdVL0xucGxiazF2WkdWRmJtRmliR1ZrSUh4OElHWmhiSE5sTzF4dUlDQWdJQ0FnSUNCc1pYUWdaM0pwWkZOcGVtVWdQU0JoWTNScGIyNVNaWE4xYkhRL0xtRndjRk4wWVhSbFB5NW5jbWxrVTJsNlpTQjhmQ0J1ZFd4c08xeHVJQ0FnSUNBZ0lDQnNaWFFnZEdobGJXVWdQU0JoWTNScGIyNVNaWE4xYkhRL0xtRndjRk4wWVhSbFB5NTBhR1Z0WlNCOGZDQlVTRVZOUlM1TVNVZElWRHRjYmlBZ0lDQWdJQ0FnYkdWMElHNWhiV1VnUFNCaFkzUnBiMjVTWlhOMWJIUS9MbUZ3Y0ZOMFlYUmxQeTV1WVcxbElEOC9JSFJvYVhNdWMzUmhkR1V1Ym1GdFpUdGNiaUFnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUIwYUdsekxuQnliM0J6TG5acFpYZE5iMlJsUlc1aFlteGxaQ0FoUFQwZ1hDSjFibVJsWm1sdVpXUmNJaWtnZTF4dUlDQWdJQ0FnSUNBZ0lIWnBaWGROYjJSbFJXNWhZbXhsWkNBOUlIUm9hWE11Y0hKdmNITXVkbWxsZDAxdlpHVkZibUZpYkdWa08xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCMGFHbHpMbkJ5YjNCekxucGxiazF2WkdWRmJtRmliR1ZrSUNFOVBTQmNJblZ1WkdWbWFXNWxaRndpS1NCN1hHNGdJQ0FnSUNBZ0lDQWdlbVZ1VFc5a1pVVnVZV0pzWldRZ1BTQjBhR2x6TG5CeWIzQnpMbnBsYmsxdlpHVkZibUZpYkdWa08xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCMGFHbHpMbkJ5YjNCekxtZHlhV1JOYjJSbFJXNWhZbXhsWkNBaFBUMGdYQ0oxYm1SbFptbHVaV1JjSWlrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2R5YVdSVGFYcGxJRDBnZEdocGN5NXdjbTl3Y3k1bmNtbGtUVzlrWlVWdVlXSnNaV1FnUHlCSFVrbEVYMU5KV2tVZ09pQnVkV3hzTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUIwYUdsekxuQnliM0J6TG5Sb1pXMWxJQ0U5UFNCY0luVnVaR1ZtYVc1bFpGd2lLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaGxiV1VnUFNCMGFHbHpMbkJ5YjNCekxuUm9aVzFsTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUIwYUdsekxuQnliM0J6TG01aGJXVWdJVDA5SUZ3aWRXNWtaV1pwYm1Wa1hDSXBJSHRjYmlBZ0lDQWdJQ0FnSUNCdVlXMWxJRDBnZEdocGN5NXdjbTl3Y3k1dVlXMWxPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9YRzRnSUNBZ0lDQWdJQ0FnS0hOMFlYUmxLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCMWMybHVaeUJQWW1wbFkzUXVZWE56YVdkdUlHbHVjM1JsWVdRZ2IyWWdjM0J5WldGa0lIUnZJR1p2YjJ3Z1ZGTWdOQzR5TGpJcklHbHVkRzljYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJSEpsWjJGeVpHbHVaeUIwYUdVZ2NtVnpkV3gwYVc1bklIUjVjR1VnWVhNZ2JtOTBJR052Ym5SaGFXNXBibWNnZFc1a1pXWnBibVZrWEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUFvZDJocFkyZ2dkR2hsSUdadmJHeHZkMmx1WnlCbGVIQnlaWE56YVc5dUlIZHBiR3dnYm1WMlpYSWdZMjl1ZEdGcGJpbGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJQWW1wbFkzUXVZWE56YVdkdUtHRmpkR2x2YmxKbGMzVnNkQzVoY0hCVGRHRjBaU0I4ZkNCN2ZTd2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmxaR2wwYVc1blJXeGxiV1Z1ZERwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbFpHbDBhVzVuUld4bGJXVnVkQ0I4ZkNCaFkzUnBiMjVTWlhOMWJIUXVZWEJ3VTNSaGRHVS9MbVZrYVhScGJtZEZiR1Z0Wlc1MElIeDhJRzUxYkd3c1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhacFpYZE5iMlJsUlc1aFlteGxaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdlbVZ1VFc5a1pVVnVZV0pzWldRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdkeWFXUlRhWHBsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdWdFpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2JtRnRaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdLQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHRmpkR2x2YmxKbGMzVnNkQzV6ZVc1alNHbHpkRzl5ZVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbWhwYzNSdmNua3VjMlYwUTNWeWNtVnVkRk4wWVhSbEtGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YzNSaGRHVXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1elkyVnVaUzVuWlhSRmJHVnRaVzUwYzBsdVkyeDFaR2x1WjBSbGJHVjBaV1FvS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHNYRzRnSUNrN1hHNWNiaUFnTHk4Z1RHbG1aV041WTJ4bFhHNWNiaUFnY0hKcGRtRjBaU0J2YmtKc2RYSWdQU0IzYVhSb1FtRjBZMmhsWkZWd1pHRjBaWE1vS0NrZ1BUNGdlMXh1SUNBZ0lHbHpTRzlzWkdsdVoxTndZV05sSUQwZ1ptRnNjMlU3WEc0Z0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN0lHbHpRbWx1WkdsdVowVnVZV0pzWldRNklIUnlkV1VnZlNrN1hHNGdJSDBwTzF4dVhHNGdJSEJ5YVhaaGRHVWdiMjVWYm14dllXUWdQU0FvS1NBOVBpQjdYRzRnSUNBZ2RHaHBjeTV2YmtKc2RYSW9LVHRjYmlBZ2ZUdGNibHh1SUNCd2NtbDJZWFJsSUdScGMyRmliR1ZGZG1WdWREb2dSWFpsYm5STWFYTjBaVzVsY2lBOUlDaGxkbVZ1ZENrZ1BUNGdlMXh1SUNBZ0lHVjJaVzUwTG5CeVpYWmxiblJFWldaaGRXeDBLQ2s3WEc0Z0lIMDdYRzVjYmlBZ2NISnBkbUYwWlNCdmJrWnZiblJNYjJGa1pXUWdQU0FvS1NBOVBpQjdYRzRnSUNBZ2RHaHBjeTV6WTJWdVpTNW5aWFJGYkdWdFpXNTBjMGx1WTJ4MVpHbHVaMFJsYkdWMFpXUW9LUzVtYjNKRllXTm9LQ2hsYkdWdFpXNTBLU0E5UGlCN1hHNGdJQ0FnSUNCcFppQW9hWE5VWlhoMFJXeGxiV1Z1ZENobGJHVnRaVzUwS1NrZ2UxeHVJQ0FnSUNBZ0lDQnBiblpoYkdsa1lYUmxVMmhoY0dWR2IzSkZiR1Z0Wlc1MEtHVnNaVzFsYm5RcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwcE8xeHVJQ0FnSUhSb2FYTXViMjVUWTJWdVpWVndaR0YwWldRb0tUdGNiaUFnZlR0Y2JseHVJQ0J3Y21sMllYUmxJR2x0Y0c5eWRFeHBZbkpoY25sR2NtOXRWWEpzSUQwZ1lYTjVibU1nS0hWeWJEb2djM1J5YVc1bkxDQjBiMnRsYmo4NklITjBjbWx1WnlCOElHNTFiR3dwSUQwK0lIdGNiaUFnSUNCcFppQW9kMmx1Wkc5M0xteHZZMkYwYVc5dUxtaGhjMmd1YVc1amJIVmtaWE1vVlZKTVgwaEJVMGhmUzBWWlV5NWhaR1JNYVdKeVlYSjVLU2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdhR0Z6YUNBOUlHNWxkeUJWVWt4VFpXRnlZMmhRWVhKaGJYTW9kMmx1Wkc5M0xteHZZMkYwYVc5dUxtaGhjMmd1YzJ4cFkyVW9NU2twTzF4dUlDQWdJQ0FnYUdGemFDNWtaV3hsZEdVb1ZWSk1YMGhCVTBoZlMwVlpVeTVoWkdSTWFXSnlZWEo1S1R0Y2JpQWdJQ0FnSUhkcGJtUnZkeTVvYVhOMGIzSjVMbkpsY0d4aFkyVlRkR0YwWlNoN2ZTd2dRVkJRWDA1QlRVVXNJR0FqSkh0b1lYTm9MblJ2VTNSeWFXNW5LQ2w5WUNrN1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNoM2FXNWtiM2N1Ykc5allYUnBiMjR1YzJWaGNtTm9MbWx1WTJ4MVpHVnpLRlZTVEY5UlZVVlNXVjlMUlZsVExtRmtaRXhwWW5KaGNua3BLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnhkV1Z5ZVNBOUlHNWxkeUJWVWt4VFpXRnlZMmhRWVhKaGJYTW9kMmx1Wkc5M0xteHZZMkYwYVc5dUxuTmxZWEpqYUNrN1hHNGdJQ0FnSUNCeGRXVnllUzVrWld4bGRHVW9WVkpNWDFGVlJWSlpYMHRGV1ZNdVlXUmtUR2xpY21GeWVTazdYRzRnSUNBZ0lDQjNhVzVrYjNjdWFHbHpkRzl5ZVM1eVpYQnNZV05sVTNSaGRHVW9lMzBzSUVGUVVGOU9RVTFGTENCZ1B5UjdjWFZsY25rdWRHOVRkSEpwYm1jb0tYMWdLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjbVZ4ZFdWemRDQTlJR0YzWVdsMElHWmxkR05vS0dSbFkyOWtaVlZTU1VOdmJYQnZibVZ1ZENoMWNtd3BLVHRjYmlBZ0lDQWdJR052Ym5OMElHSnNiMklnUFNCaGQyRnBkQ0J5WlhGMVpYTjBMbUpzYjJJb0tUdGNiaUFnSUNBZ0lHTnZibk4wSUdwemIyNGdQU0JLVTA5T0xuQmhjbk5sS0dGM1lXbDBJR0pzYjJJdWRHVjRkQ2dwS1R0Y2JpQWdJQ0FnSUdsbUlDZ2hhWE5XWVd4cFpFeHBZbkpoY25rb2FuTnZiaWtwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9YRzRnSUNBZ0lDQWdJSFJ2YTJWdUlEMDlQU0IwYUdsekxtbGtJSHg4WEc0Z0lDQWdJQ0FnSUhkcGJtUnZkeTVqYjI1bWFYSnRLRnh1SUNBZ0lDQWdJQ0FnSUhRb1hDSmhiR1Z5ZEhNdVkyOXVabWx5YlVGa1pFeHBZbkpoY25sY0lpd2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JuVnRVMmhoY0dWek9pQW9hbk52Ymk1c2FXSnlZWEo1U1hSbGJYTWdmSHdnYW5OdmJpNXNhV0p5WVhKNUlIeDhJRnRkS1M1c1pXNW5kR2dzWEc0Z0lDQWdJQ0FnSUNBZ2ZTa3NYRzRnSUNBZ0lDQWdJQ2xjYmlBZ0lDQWdJQ2tnZTF4dUlDQWdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHBZbkpoY25rdWFXMXdiM0owVEdsaWNtRnllU2hpYkc5aUxDQmNJbkIxWW14cGMyaGxaRndpS1R0Y2JpQWdJQ0FnSUNBZ0x5OGdhR0ZqYXlCMGJ5QnlaWEpsYm1SbGNpQjBhR1VnYkdsaWNtRnllU0JwZEdWdGN5QmhablJsY2lCcGJYQnZjblJjYmlBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11YzNSaGRHVXVhWE5NYVdKeVlYSjVUM0JsYmlrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2V5QnBjMHhwWW5KaGNubFBjR1Z1T2lCbVlXeHpaU0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0hzZ2FYTk1hV0p5WVhKNVQzQmxiam9nZEhKMVpTQjlLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlJR05oZEdOb0lDaGxjbkp2Y2pvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0IzYVc1a2IzY3VZV3hsY25Rb2RDaGNJbUZzWlhKMGN5NWxjbkp2Y2t4dllXUnBibWRNYVdKeVlYSjVYQ0lwS1R0Y2JpQWdJQ0FnSUdOdmJuTnZiR1V1WlhKeWIzSW9aWEp5YjNJcE8xeHVJQ0FnSUgwZ1ptbHVZV3hzZVNCN1hHNGdJQ0FnSUNCMGFHbHpMbVp2WTNWelEyOXVkR0ZwYm1WeUtDazdYRzRnSUNBZ2ZWeHVJQ0I5TzF4dVhHNGdJSEJ5YVhaaGRHVWdjbVZ6WlhSSWFYTjBiM0o1SUQwZ0tDa2dQVDRnZTF4dUlDQWdJSFJvYVhNdWFHbHpkRzl5ZVM1amJHVmhjaWdwTzF4dUlDQjlPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWE5sZEhNZ2MyTmxibVVnSmlCb2FYTjBiM0o1TGx4dUlDQWdLaUFoSUVSdklHNXZkQ0IxYzJVZ2RHOGdZMnhsWVhJZ2MyTmxibVVnZFhObGNpQmhZM1JwYjI0Z0lWeHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQnlaWE5sZEZOalpXNWxJRDBnZDJsMGFFSmhkR05vWldSVmNHUmhkR1Z6S0Z4dUlDQWdJQ2h2Y0hSelB6b2dleUJ5WlhObGRFeHZZV1JwYm1kVGRHRjBaVG9nWW05dmJHVmhiaUI5S1NBOVBpQjdYRzRnSUNBZ0lDQjBhR2x6TG5OalpXNWxMbkpsY0d4aFkyVkJiR3hGYkdWdFpXNTBjeWhiWFNrN1hHNGdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLQ2h6ZEdGMFpTa2dQVDRnS0h0Y2JpQWdJQ0FnSUNBZ0xpNHVaMlYwUkdWbVlYVnNkRUZ3Y0ZOMFlYUmxLQ2tzWEc0Z0lDQWdJQ0FnSUdselRHOWhaR2x1WnpvZ2IzQjBjejh1Y21WelpYUk1iMkZrYVc1blUzUmhkR1VnUHlCbVlXeHpaU0E2SUhOMFlYUmxMbWx6VEc5aFpHbHVaeXhjYmlBZ0lDQWdJQ0FnZEdobGJXVTZJSFJvYVhNdWMzUmhkR1V1ZEdobGJXVXNYRzRnSUNBZ0lDQjlLU2s3WEc0Z0lDQWdJQ0IwYUdsekxuSmxjMlYwU0dsemRHOXllU2dwTzF4dUlDQWdJSDBzWEc0Z0lDazdYRzVjYmlBZ2NISnBkbUYwWlNCcGJtbDBhV0ZzYVhwbFUyTmxibVVnUFNCaGMzbHVZeUFvS1NBOVBpQjdYRzRnSUNBZ2FXWWdLRndpYkdGMWJtTm9VWFZsZFdWY0lpQnBiaUIzYVc1a2IzY2dKaVlnWENKTVlYVnVZMmhRWVhKaGJYTmNJaUJwYmlCM2FXNWtiM2NwSUh0Y2JpQWdJQ0FnSUNoM2FXNWtiM2NnWVhNZ1lXNTVLUzVzWVhWdVkyaFJkV1YxWlM1elpYUkRiMjV6ZFcxbGNpaGNiaUFnSUNBZ0lDQWdZWE41Ym1NZ0tHeGhkVzVqYUZCaGNtRnRjem9nZXlCbWFXeGxjem9nWVc1NVcxMGdmU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJR2xtSUNnaGJHRjFibU5vVUdGeVlXMXpMbVpwYkdWekxteGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCbWFXeGxTR0Z1Wkd4bElEMGdiR0YxYm1Ob1VHRnlZVzF6TG1acGJHVnpXekJkTzF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUdKc2IySTZJRUpzYjJJZ1BTQmhkMkZwZENCbWFXeGxTR0Z1Wkd4bExtZGxkRVpwYkdVb0tUdGNiaUFnSUNBZ0lDQWdJQ0JpYkc5aUxtaGhibVJzWlNBOUlHWnBiR1ZJWVc1a2JHVTdYRzRnSUNBZ0lDQWdJQ0FnYkc5aFpFWnliMjFDYkc5aUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnWW14dllpeGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVjM1JoZEdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuTmpaVzVsTG1kbGRFVnNaVzFsYm5SelNXNWpiSFZrYVc1blJHVnNaWFJsWkNncExGeHVJQ0FnSUNBZ0lDQWdJQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDNTBhR1Z1S0NoelkyVnVaU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbk41Ym1OQlkzUnBiMjVTWlhOMWJIUW9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzR1TG5OalpXNWxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxPaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdUxpNG9jMk5sYm1VdVlYQndVM1JoZEdVZ2ZId2dkR2hwY3k1emRHRjBaU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGMweHZZV1JwYm1jNklHWmhiSE5sTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXRiV2wwVkc5SWFYTjBiM0o1T2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHBYRzRnSUNBZ0lDQWdJQ0FnSUNBdVkyRjBZMmdvS0dWeWNtOXlLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9leUJwYzB4dllXUnBibWM2SUdaaGJITmxMQ0JsY25KdmNrMWxjM05oWjJVNklHVnljbTl5TG0xbGMzTmhaMlVnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLQ0YwYUdsekxuTjBZWFJsTG1selRHOWhaR2x1WnlrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3SUdselRHOWhaR2x1WnpvZ2RISjFaU0I5S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdiR1YwSUdsdWFYUnBZV3hFWVhSaElEMGdiblZzYkR0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ2FXNXBkR2xoYkVSaGRHRWdQU0FvWVhkaGFYUWdkR2hwY3k1d2NtOXdjeTVwYm1sMGFXRnNSR0YwWVNrZ2ZId2diblZzYkR0Y2JpQWdJQ0FnSUdsbUlDaHBibWwwYVdGc1JHRjBZVDh1YkdsaWNtRnllVWwwWlcxektTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWJHbGljbUZ5ZVVsMFpXMXpSbkp2YlZOMGIzSmhaMlVnUFNCeVpYTjBiM0psVEdsaWNtRnllVWwwWlcxektGeHVJQ0FnSUNBZ0lDQWdJR2x1YVhScFlXeEVZWFJoTG14cFluSmhjbmxKZEdWdGN5eGNiaUFnSUNBZ0lDQWdJQ0JjSW5WdWNIVmliR2x6YUdWa1hDSXNYRzRnSUNBZ0lDQWdJQ2tnWVhNZ1RHbGljbUZ5ZVVsMFpXMXpPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMGdZMkYwWTJnZ0tHVnljbTl5T2lCaGJua3BJSHRjYmlBZ0lDQWdJR052Ym5OdmJHVXVaWEp5YjNJb1pYSnliM0lwTzF4dUlDQWdJQ0FnYVc1cGRHbGhiRVJoZEdFZ1BTQjdYRzRnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxPaUI3WEc0Z0lDQWdJQ0FnSUNBZ1pYSnliM0pOWlhOellXZGxPbHh1SUNBZ0lDQWdJQ0FnSUNBZ1pYSnliM0l1YldWemMyRm5aU0I4ZkZ4dUlDQWdJQ0FnSUNBZ0lDQWdYQ0pGYm1OdmRXNTBaWEpsWkNCaGJpQmxjbkp2Y2lCa2RYSnBibWNnYVcxd2IzSjBhVzVuSUc5eUlISmxjM1J2Y21sdVp5QnpZMlZ1WlNCa1lYUmhYQ0lzWEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCOU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJSE5qWlc1bElEMGdjbVZ6ZEc5eVpTaHBibWwwYVdGc1JHRjBZU3dnYm5Wc2JDd2diblZzYkNrN1hHNWNiaUFnSUNCelkyVnVaUzVoY0hCVGRHRjBaU0E5SUh0Y2JpQWdJQ0FnSUM0dUxuTmpaVzVsTG1Gd2NGTjBZWFJsTEZ4dUlDQWdJQ0FnWld4bGJXVnVkRlI1Y0dVNlhHNGdJQ0FnSUNBZ0lITmpaVzVsTG1Gd2NGTjBZWFJsTG1Wc1pXMWxiblJVZVhCbElEMDlQU0JjSW1sdFlXZGxYQ0pjYmlBZ0lDQWdJQ0FnSUNBL0lGd2ljMlZzWldOMGFXOXVYQ0pjYmlBZ0lDQWdJQ0FnSUNBNklITmpaVzVsTG1Gd2NGTjBZWFJsTG1Wc1pXMWxiblJVZVhCbExGeHVJQ0FnSUNBZ2FYTk1iMkZrYVc1bk9pQm1ZV3h6WlN4Y2JpQWdJQ0I5TzF4dUlDQWdJR2xtSUNocGJtbDBhV0ZzUkdGMFlUOHVjMk55YjJ4c1ZHOURiMjUwWlc1MEtTQjdYRzRnSUNBZ0lDQnpZMlZ1WlM1aGNIQlRkR0YwWlNBOUlIdGNiaUFnSUNBZ0lDQWdMaTR1YzJObGJtVXVZWEJ3VTNSaGRHVXNYRzRnSUNBZ0lDQWdJQzR1TG1OaGJHTjFiR0YwWlZOamNtOXNiRU5sYm5SbGNpaGNiaUFnSUNBZ0lDQWdJQ0J6WTJWdVpTNWxiR1Z0Wlc1MGN5eGNiaUFnSUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXVMaTV6WTJWdVpTNWhjSEJUZEdGMFpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhkcFpIUm9PaUIwYUdsekxuTjBZWFJsTG5kcFpIUm9MRnh1SUNBZ0lDQWdJQ0FnSUNBZ2FHVnBaMmgwT2lCMGFHbHpMbk4wWVhSbExtaGxhV2RvZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJRzltWm5ObGRGUnZjRG9nZEdocGN5NXpkR0YwWlM1dlptWnpaWFJVYjNBc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2Wm1aelpYUk1aV1owT2lCMGFHbHpMbk4wWVhSbExtOW1abk5sZEV4bFpuUXNYRzRnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQnVkV3hzTEZ4dUlDQWdJQ0FnSUNBcExGeHVJQ0FnSUNBZ2ZUdGNiaUFnSUNCOVhHNWNiaUFnSUNCMGFHbHpMbkpsYzJWMFNHbHpkRzl5ZVNncE8xeHVJQ0FnSUhSb2FYTXVjM2x1WTBGamRHbHZibEpsYzNWc2RDaDdYRzRnSUNBZ0lDQXVMaTV6WTJWdVpTeGNiaUFnSUNBZ0lHTnZiVzFwZEZSdlNHbHpkRzl5ZVRvZ2RISjFaU3hjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJR052Ym5OMElHeHBZbkpoY25sVmNtd2dQVnh1SUNBZ0lDQWdMeThnWTNWeWNtVnVkRnh1SUNBZ0lDQWdibVYzSUZWU1RGTmxZWEpqYUZCaGNtRnRjeWgzYVc1a2IzY3ViRzlqWVhScGIyNHVhR0Z6YUM1emJHbGpaU2d4S1NrdVoyVjBLRnh1SUNBZ0lDQWdJQ0JWVWt4ZlNFRlRTRjlMUlZsVExtRmtaRXhwWW5KaGNua3NYRzRnSUNBZ0lDQXBJSHg4WEc0Z0lDQWdJQ0F2THlCc1pXZGhZM2tzSUd0bGNIUWdabTl5SUdOdmJYQmhkQ0J5WldGemIyNXpYRzRnSUNBZ0lDQnVaWGNnVlZKTVUyVmhjbU5vVUdGeVlXMXpLSGRwYm1SdmR5NXNiMk5oZEdsdmJpNXpaV0Z5WTJncExtZGxkQ2hjYmlBZ0lDQWdJQ0FnVlZKTVgxRlZSVkpaWDB0RldWTXVZV1JrVEdsaWNtRnllU3hjYmlBZ0lDQWdJQ2s3WEc1Y2JpQWdJQ0JwWmlBb2JHbGljbUZ5ZVZWeWJDa2dlMXh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVwYlhCdmNuUk1hV0p5WVhKNVJuSnZiVlZ5YkNoc2FXSnlZWEo1VlhKc0tUdGNiaUFnSUNCOVhHNGdJSDA3WEc1Y2JpQWdjSFZpYkdsaklHRnplVzVqSUdOdmJYQnZibVZ1ZEVScFpFMXZkVzUwS0NrZ2UxeHVJQ0FnSUhSb2FYTXVkVzV0YjNWdWRHVmtJRDBnWm1Gc2MyVTdYRzRnSUNBZ2RHaHBjeTVsZUdOaGJHbGtjbUYzUTI5dWRHRnBibVZ5Vm1Gc2RXVXVZMjl1ZEdGcGJtVnlJRDFjYmlBZ0lDQWdJSFJvYVhNdVpYaGpZV3hwWkhKaGQwTnZiblJoYVc1bGNsSmxaaTVqZFhKeVpXNTBPMXh1WEc0Z0lDQWdhV1lnS0Z4dUlDQWdJQ0FnY0hKdlkyVnpjeTVsYm5ZdVRrOUVSVjlGVGxZZ1BUMDlJRVZPVmk1VVJWTlVJSHg4WEc0Z0lDQWdJQ0J3Y205alpYTnpMbVZ1ZGk1T1QwUkZYMFZPVmlBOVBUMGdSVTVXTGtSRlZrVk1UMUJOUlU1VVhHNGdJQ0FnS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J6WlhSVGRHRjBaU0E5SUhSb2FYTXVjMlYwVTNSaGRHVXVZbWx1WkNoMGFHbHpLVHRjYmlBZ0lDQWdJRTlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowYVdWektIZHBibVJ2ZHk1b0xDQjdYRzRnSUNBZ0lDQWdJSE4wWVhSbE9pQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dVptbG5kWEpoWW14bE9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lHZGxkRG9nS0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjM1JoZEdVN1hHNGdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2MyVjBVM1JoZEdVNklIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1bWFXZDFjbUZpYkdVNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUNBZ2RtRnNkV1U2SUNndUxpNWhjbWR6T2lCUVlYSmhiV1YwWlhKelBIUjVjR1Z2WmlCelpYUlRkR0YwWlQ0cElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk5sZEZOMFlYUmxLQzR1TG1GeVozTXBPMXh1SUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJR0Z3Y0RvZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym1acFozVnlZV0pzWlRvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnSUNCMllXeDFaVG9nZEdocGN5eGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnYUdsemRHOXllVG9nZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibVpwWjNWeVlXSnNaVG9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdJQ0IyWVd4MVpUb2dkR2hwY3k1b2FYTjBiM0o1TEZ4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHBjeTV6WTJWdVpTNWhaR1JEWVd4c1ltRmpheWgwYUdsekxtOXVVMk5sYm1WVmNHUmhkR1ZrS1R0Y2JpQWdJQ0IwYUdsekxtRmtaRVYyWlc1MFRHbHpkR1Z1WlhKektDazdYRzVjYmlBZ0lDQnBaaUFvZEdocGN5NWxlR05oYkdsa2NtRjNRMjl1ZEdGcGJtVnlVbVZtTG1OMWNuSmxiblFwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVabTlqZFhORGIyNTBZV2x1WlhJb0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9YQ0pTWlhOcGVtVlBZbk5sY25abGNsd2lJR2x1SUhkcGJtUnZkeUFtSmlCMGFHbHpMbVY0WTJGc2FXUnlZWGREYjI1MFlXbHVaWEpTWldZL0xtTjFjbkpsYm5RcElIdGNiaUFnSUNBZ0lIUm9hWE11Y21WemFYcGxUMkp6WlhKMlpYSWdQU0J1WlhjZ1VtVnphWHBsVDJKelpYSjJaWElvS0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0F2THlCamIyMXdkWFJsSUdselRXOWlhV3hsSUhOMFlYUmxYRzRnSUNBZ0lDQWdJQzh2SUMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMVnh1SUNBZ0lDQWdJQ0JqYjI1emRDQjdJSGRwWkhSb0xDQm9aV2xuYUhRZ2ZTQTlYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NWxlR05oYkdsa2NtRjNRMjl1ZEdGcGJtVnlVbVZtTG1OMWNuSmxiblFoTG1kbGRFSnZkVzVrYVc1blEyeHBaVzUwVW1WamRDZ3BPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtbHpUVzlpYVd4bElEMWNiaUFnSUNBZ0lDQWdJQ0IzYVdSMGFDQThJRTFSWDAxQldGOVhTVVJVU0Y5UVQxSlVVa0ZKVkNCOGZGeHVJQ0FnSUNBZ0lDQWdJQ2hvWldsbmFIUWdQQ0JOVVY5TlFWaGZTRVZKUjBoVVgweEJUa1JUUTBGUVJTQW1KaUIzYVdSMGFDQThJRTFSWDAxQldGOVhTVVJVU0Y5TVFVNUVVME5CVUVVcE8xeHVJQ0FnSUNBZ0lDQXZMeUJ5WldaeVpYTm9JRzltWm5ObGRITmNiaUFnSUNBZ0lDQWdMeThnTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRYRzRnSUNBZ0lDQWdJSFJvYVhNdWRYQmtZWFJsUkU5TlVtVmpkQ2dwTzF4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCMGFHbHpMbkpsYzJsNlpVOWljMlZ5ZG1WeVB5NXZZbk5sY25abEtIUm9hWE11WlhoallXeHBaSEpoZDBOdmJuUmhhVzVsY2xKbFppNWpkWEp5Wlc1MEtUdGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tIZHBibVJ2ZHk1dFlYUmphRTFsWkdsaEtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCdFpXUnBZVkYxWlhKNUlEMGdkMmx1Wkc5M0xtMWhkR05vVFdWa2FXRW9YRzRnSUNBZ0lDQWdJR0FvYldGNExYZHBaSFJvT2lBa2UwMVJYMDFCV0Y5WFNVUlVTRjlRVDFKVVVrRkpWSDF3ZUNrc0lDaHRZWGd0YUdWcFoyaDBPaUFrZTAxUlgwMUJXRjlJUlVsSFNGUmZURUZPUkZORFFWQkZmWEI0S1NCaGJtUWdLRzFoZUMxM2FXUjBhRG9nSkh0TlVWOU5RVmhmVjBsRVZFaGZURUZPUkZORFFWQkZmWEI0S1dBc1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYUdGdVpHeGxjaUE5SUNncElEMCtJQ2gwYUdsekxtbHpUVzlpYVd4bElEMGdiV1ZrYVdGUmRXVnllUzV0WVhSamFHVnpLVHRjYmlBZ0lDQWdJRzFsWkdsaFVYVmxjbmt1WVdSa1RHbHpkR1Z1WlhJb2FHRnVaR3hsY2lrN1hHNGdJQ0FnSUNCMGFHbHpMbVJsZEdGamFFbHpUVzlpYVd4bFRYRklZVzVrYkdWeUlEMGdLQ2tnUFQ0Z2JXVmthV0ZSZFdWeWVTNXlaVzF2ZG1WTWFYTjBaVzVsY2lob1lXNWtiR1Z5S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQnpaV0Z5WTJoUVlYSmhiWE1nUFNCdVpYY2dWVkpNVTJWaGNtTm9VR0Z5WVcxektIZHBibVJ2ZHk1c2IyTmhkR2x2Ymk1elpXRnlZMmd1YzJ4cFkyVW9NU2twTzF4dVhHNGdJQ0FnYVdZZ0tITmxZWEpqYUZCaGNtRnRjeTVvWVhNb1hDSjNaV0l0YzJoaGNtVXRkR0Z5WjJWMFhDSXBLU0I3WEc0Z0lDQWdJQ0F2THlCUFluUmhhVzRnWVNCbWFXeGxJSFJvWVhRZ2QyRnpJSE5vWVhKbFpDQjJhV0VnZEdobElGZGxZaUJUYUdGeVpTQlVZWEpuWlhRZ1FWQkpMbHh1SUNBZ0lDQWdkR2hwY3k1eVpYTjBiM0psUm1sc1pVWnliMjFUYUdGeVpTZ3BPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCMGFHbHpMblZ3WkdGMFpVUlBUVkpsWTNRb2RHaHBjeTVwYm1sMGFXRnNhWHBsVTJObGJtVXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QmpiMjF3YjI1bGJuUlhhV3hzVlc1dGIzVnVkQ2dwSUh0Y2JpQWdJQ0IwYUdsekxtWnBiR1Z6SUQwZ2UzMDdYRzRnSUNBZ2RHaHBjeTVwYldGblpVTmhZMmhsTG1Oc1pXRnlLQ2s3WEc0Z0lDQWdkR2hwY3k1eVpYTnBlbVZQWW5ObGNuWmxjajh1WkdselkyOXVibVZqZENncE8xeHVJQ0FnSUhSb2FYTXVkVzV0YjNWdWRHVmtJRDBnZEhKMVpUdGNiaUFnSUNCMGFHbHpMbkpsYlc5MlpVVjJaVzUwVEdsemRHVnVaWEp6S0NrN1hHNGdJQ0FnZEdocGN5NXpZMlZ1WlM1a1pYTjBjbTk1S0NrN1hHNGdJQ0FnWTJ4bFlYSlVhVzFsYjNWMEtIUnZkV05vVkdsdFpXOTFkQ2s3WEc0Z0lDQWdkRzkxWTJoVWFXMWxiM1YwSUQwZ01EdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdiMjVTWlhOcGVtVWdQU0IzYVhSb1FtRjBZMmhsWkZWd1pHRjBaWE1vS0NrZ1BUNGdlMXh1SUNBZ0lIUm9hWE11YzJObGJtVmNiaUFnSUNBZ0lDNW5aWFJGYkdWdFpXNTBjMGx1WTJ4MVpHbHVaMFJsYkdWMFpXUW9LVnh1SUNBZ0lDQWdMbVp2Y2tWaFkyZ29LR1ZzWlcxbGJuUXBJRDArSUdsdWRtRnNhV1JoZEdWVGFHRndaVVp2Y2tWc1pXMWxiblFvWld4bGJXVnVkQ2twTzF4dUlDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2UzMHBPMXh1SUNCOUtUdGNibHh1SUNCd2NtbDJZWFJsSUhKbGJXOTJaVVYyWlc1MFRHbHpkR1Z1WlhKektDa2dlMXh1SUNBZ0lHUnZZM1Z0Wlc1MExuSmxiVzkyWlVWMlpXNTBUR2x6ZEdWdVpYSW9SVlpGVGxRdVVFOUpUbFJGVWw5VlVDd2dkR2hwY3k1eVpXMXZkbVZRYjJsdWRHVnlLVHRjYmlBZ0lDQmtiMk4xYldWdWRDNXlaVzF2ZG1WRmRtVnVkRXhwYzNSbGJtVnlLRVZXUlU1VUxrTlBVRmtzSUhSb2FYTXViMjVEYjNCNUtUdGNiaUFnSUNCa2IyTjFiV1Z1ZEM1eVpXMXZkbVZGZG1WdWRFeHBjM1JsYm1WeUtFVldSVTVVTGxCQlUxUkZMQ0IwYUdsekxuQmhjM1JsUm5KdmJVTnNhWEJpYjJGeVpDazdYRzRnSUNBZ1pHOWpkVzFsYm5RdWNtVnRiM1psUlhabGJuUk1hWE4wWlc1bGNpaEZWa1ZPVkM1RFZWUXNJSFJvYVhNdWIyNURkWFFwTzF4dUlDQWdJSFJvYVhNdWJtVmhjbVZ6ZEZOamNtOXNiR0ZpYkdWRGIyNTBZV2x1WlhJL0xuSmxiVzkyWlVWMlpXNTBUR2x6ZEdWdVpYSW9YRzRnSUNBZ0lDQkZWa1ZPVkM1VFExSlBURXdzWEc0Z0lDQWdJQ0IwYUdsekxtOXVVMk55YjJ4c0xGeHVJQ0FnSUNrN1hHNGdJQ0FnWkc5amRXMWxiblF1Y21WdGIzWmxSWFpsYm5STWFYTjBaVzVsY2loRlZrVk9WQzVMUlZsRVQxZE9MQ0IwYUdsekxtOXVTMlY1Ukc5M2Jpd2dabUZzYzJVcE8xeHVJQ0FnSUdSdlkzVnRaVzUwTG5KbGJXOTJaVVYyWlc1MFRHbHpkR1Z1WlhJb1hHNGdJQ0FnSUNCRlZrVk9WQzVOVDFWVFJWOU5UMVpGTEZ4dUlDQWdJQ0FnZEdocGN5NTFjR1JoZEdWRGRYSnlaVzUwUTNWeWMyOXlVRzl6YVhScGIyNHNYRzRnSUNBZ0lDQm1ZV3h6WlN4Y2JpQWdJQ0FwTzF4dUlDQWdJR1J2WTNWdFpXNTBMbkpsYlc5MlpVVjJaVzUwVEdsemRHVnVaWElvUlZaRlRsUXVTMFZaVlZBc0lIUm9hWE11YjI1TFpYbFZjQ2s3WEc0Z0lDQWdkMmx1Wkc5M0xuSmxiVzkyWlVWMlpXNTBUR2x6ZEdWdVpYSW9SVlpGVGxRdVVrVlRTVnBGTENCMGFHbHpMbTl1VW1WemFYcGxMQ0JtWVd4elpTazdYRzRnSUNBZ2QybHVaRzkzTG5KbGJXOTJaVVYyWlc1MFRHbHpkR1Z1WlhJb1JWWkZUbFF1VlU1TVQwRkVMQ0IwYUdsekxtOXVWVzVzYjJGa0xDQm1ZV3h6WlNrN1hHNGdJQ0FnZDJsdVpHOTNMbkpsYlc5MlpVVjJaVzUwVEdsemRHVnVaWElvUlZaRlRsUXVRa3hWVWl3Z2RHaHBjeTV2YmtKc2RYSXNJR1poYkhObEtUdGNiaUFnSUNCMGFHbHpMbVY0WTJGc2FXUnlZWGREYjI1MFlXbHVaWEpTWldZdVkzVnljbVZ1ZEQ4dWNtVnRiM1psUlhabGJuUk1hWE4wWlc1bGNpaGNiaUFnSUNBZ0lFVldSVTVVTGtSU1FVZGZUMVpGVWl4Y2JpQWdJQ0FnSUhSb2FYTXVaR2x6WVdKc1pVVjJaVzUwTEZ4dUlDQWdJQ0FnWm1Gc2MyVXNYRzRnSUNBZ0tUdGNiaUFnSUNCMGFHbHpMbVY0WTJGc2FXUnlZWGREYjI1MFlXbHVaWEpTWldZdVkzVnljbVZ1ZEQ4dWNtVnRiM1psUlhabGJuUk1hWE4wWlc1bGNpaGNiaUFnSUNBZ0lFVldSVTVVTGtSU1QxQXNYRzRnSUNBZ0lDQjBhR2x6TG1ScGMyRmliR1ZGZG1WdWRDeGNiaUFnSUNBZ0lHWmhiSE5sTEZ4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0JrYjJOMWJXVnVkQzV5WlcxdmRtVkZkbVZ1ZEV4cGMzUmxibVZ5S0Z4dUlDQWdJQ0FnUlZaRlRsUXVSMFZUVkZWU1JWOVRWRUZTVkN4Y2JpQWdJQ0FnSUhSb2FYTXViMjVIWlhOMGRYSmxVM1JoY25RZ1lYTWdZVzU1TEZ4dUlDQWdJQ0FnWm1Gc2MyVXNYRzRnSUNBZ0tUdGNiaUFnSUNCa2IyTjFiV1Z1ZEM1eVpXMXZkbVZGZG1WdWRFeHBjM1JsYm1WeUtGeHVJQ0FnSUNBZ1JWWkZUbFF1UjBWVFZGVlNSVjlEU0VGT1IwVXNYRzRnSUNBZ0lDQjBhR2x6TG05dVIyVnpkSFZ5WlVOb1lXNW5aU0JoY3lCaGJua3NYRzRnSUNBZ0lDQm1ZV3h6WlN4Y2JpQWdJQ0FwTzF4dUlDQWdJR1J2WTNWdFpXNTBMbkpsYlc5MlpVVjJaVzUwVEdsemRHVnVaWElvWEc0Z0lDQWdJQ0JGVmtWT1ZDNUhSVk5VVlZKRlgwVk9SQ3hjYmlBZ0lDQWdJSFJvYVhNdWIyNUhaWE4wZFhKbFJXNWtJR0Z6SUdGdWVTeGNiaUFnSUNBZ0lHWmhiSE5sTEZ4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0IwYUdsekxtUmxkR0ZqYUVselRXOWlhV3hsVFhGSVlXNWtiR1Z5UHk0b0tUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZV1JrUlhabGJuUk1hWE4wWlc1bGNuTW9LU0I3WEc0Z0lDQWdkR2hwY3k1eVpXMXZkbVZGZG1WdWRFeHBjM1JsYm1WeWN5Z3BPMXh1SUNBZ0lHUnZZM1Z0Wlc1MExtRmtaRVYyWlc1MFRHbHpkR1Z1WlhJb1JWWkZUbFF1VUU5SlRsUkZVbDlWVUN3Z2RHaHBjeTV5WlcxdmRtVlFiMmx1ZEdWeUtUc2dMeThnSXpNMU5UTmNiaUFnSUNCa2IyTjFiV1Z1ZEM1aFpHUkZkbVZ1ZEV4cGMzUmxibVZ5S0VWV1JVNVVMa05QVUZrc0lIUm9hWE11YjI1RGIzQjVLVHRjYmlBZ0lDQnBaaUFvZEdocGN5NXdjbTl3Y3k1b1lXNWtiR1ZMWlhsaWIyRnlaRWRzYjJKaGJHeDVLU0I3WEc0Z0lDQWdJQ0JrYjJOMWJXVnVkQzVoWkdSRmRtVnVkRXhwYzNSbGJtVnlLRVZXUlU1VUxrdEZXVVJQVjA0c0lIUm9hWE11YjI1TFpYbEViM2R1TENCbVlXeHpaU2s3WEc0Z0lDQWdmVnh1SUNBZ0lHUnZZM1Z0Wlc1MExtRmtaRVYyWlc1MFRHbHpkR1Z1WlhJb1JWWkZUbFF1UzBWWlZWQXNJSFJvYVhNdWIyNUxaWGxWY0N3Z2V5QndZWE56YVhabE9pQjBjblZsSUgwcE8xeHVJQ0FnSUdSdlkzVnRaVzUwTG1Ga1pFVjJaVzUwVEdsemRHVnVaWElvWEc0Z0lDQWdJQ0JGVmtWT1ZDNU5UMVZUUlY5TlQxWkZMRnh1SUNBZ0lDQWdkR2hwY3k1MWNHUmhkR1ZEZFhKeVpXNTBRM1Z5YzI5eVVHOXphWFJwYjI0c1hHNGdJQ0FnS1R0Y2JpQWdJQ0F2THlCeVpYSmxibVJsY2lCMFpYaDBJR1ZzWlcxbGJuUnpJRzl1SUdadmJuUWdiRzloWkNCMGJ5Qm1hWGdnSXpZek55QW1KaUFqTVRVMU0xeHVJQ0FnSUdSdlkzVnRaVzUwTG1admJuUnpQeTVoWkdSRmRtVnVkRXhwYzNSbGJtVnlQeTRvWENKc2IyRmthVzVuWkc5dVpWd2lMQ0IwYUdsekxtOXVSbTl1ZEV4dllXUmxaQ2s3WEc0Z0lDQWdMeThnVTJGbVlYSnBMVzl1YkhrZ1pHVnphM1J2Y0NCd2FXNWphQ0I2YjI5dFhHNGdJQ0FnWkc5amRXMWxiblF1WVdSa1JYWmxiblJNYVhOMFpXNWxjaWhjYmlBZ0lDQWdJRVZXUlU1VUxrZEZVMVJWVWtWZlUxUkJVbFFzWEc0Z0lDQWdJQ0IwYUdsekxtOXVSMlZ6ZEhWeVpWTjBZWEowSUdGeklHRnVlU3hjYmlBZ0lDQWdJR1poYkhObExGeHVJQ0FnSUNrN1hHNGdJQ0FnWkc5amRXMWxiblF1WVdSa1JYWmxiblJNYVhOMFpXNWxjaWhjYmlBZ0lDQWdJRVZXUlU1VUxrZEZVMVJWVWtWZlEwaEJUa2RGTEZ4dUlDQWdJQ0FnZEdocGN5NXZia2RsYzNSMWNtVkRhR0Z1WjJVZ1lYTWdZVzU1TEZ4dUlDQWdJQ0FnWm1Gc2MyVXNYRzRnSUNBZ0tUdGNiaUFnSUNCa2IyTjFiV1Z1ZEM1aFpHUkZkbVZ1ZEV4cGMzUmxibVZ5S0Z4dUlDQWdJQ0FnUlZaRlRsUXVSMFZUVkZWU1JWOUZUa1FzWEc0Z0lDQWdJQ0IwYUdsekxtOXVSMlZ6ZEhWeVpVVnVaQ0JoY3lCaGJua3NYRzRnSUNBZ0lDQm1ZV3h6WlN4Y2JpQWdJQ0FwTzF4dUlDQWdJR2xtSUNoMGFHbHpMbk4wWVhSbExuWnBaWGROYjJSbFJXNWhZbXhsWkNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJSDFjYmx4dUlDQWdJR1J2WTNWdFpXNTBMbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSW9SVlpGVGxRdVVFRlRWRVVzSUhSb2FYTXVjR0Z6ZEdWR2NtOXRRMnhwY0dKdllYSmtLVHRjYmlBZ0lDQmtiMk4xYldWdWRDNWhaR1JGZG1WdWRFeHBjM1JsYm1WeUtFVldSVTVVTGtOVlZDd2dkR2hwY3k1dmJrTjFkQ2s3WEc0Z0lDQWdhV1lnS0hSb2FYTXVjSEp2Y0hNdVpHVjBaV04wVTJOeWIyeHNLU0I3WEc0Z0lDQWdJQ0IwYUdsekxtNWxZWEpsYzNSVFkzSnZiR3hoWW14bFEyOXVkR0ZwYm1WeUlEMGdaMlYwVG1WaGNtVnpkRk5qY205c2JHRmliR1ZEYjI1MFlXbHVaWElvWEc0Z0lDQWdJQ0FnSUhSb2FYTXVaWGhqWVd4cFpISmhkME52Ym5SaGFXNWxjbEpsWmk1amRYSnlaVzUwSVN4Y2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCMGFHbHpMbTVsWVhKbGMzUlRZM0p2Ykd4aFlteGxRMjl1ZEdGcGJtVnlMbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSW9YRzRnSUNBZ0lDQWdJRVZXUlU1VUxsTkRVazlNVEN4Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV2YmxOamNtOXNiQ3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lIZHBibVJ2ZHk1aFpHUkZkbVZ1ZEV4cGMzUmxibVZ5S0VWV1JVNVVMbEpGVTBsYVJTd2dkR2hwY3k1dmJsSmxjMmw2WlN3Z1ptRnNjMlVwTzF4dUlDQWdJSGRwYm1SdmR5NWhaR1JGZG1WdWRFeHBjM1JsYm1WeUtFVldSVTVVTGxWT1RFOUJSQ3dnZEdocGN5NXZibFZ1Ykc5aFpDd2dabUZzYzJVcE8xeHVJQ0FnSUhkcGJtUnZkeTVoWkdSRmRtVnVkRXhwYzNSbGJtVnlLRVZXUlU1VUxrSk1WVklzSUhSb2FYTXViMjVDYkhWeUxDQm1ZV3h6WlNrN1hHNGdJQ0FnZEdocGN5NWxlR05oYkdsa2NtRjNRMjl1ZEdGcGJtVnlVbVZtTG1OMWNuSmxiblEvTG1Ga1pFVjJaVzUwVEdsemRHVnVaWElvWEc0Z0lDQWdJQ0JGVmtWT1ZDNUVVa0ZIWDA5V1JWSXNYRzRnSUNBZ0lDQjBhR2x6TG1ScGMyRmliR1ZGZG1WdWRDeGNiaUFnSUNBZ0lHWmhiSE5sTEZ4dUlDQWdJQ2s3WEc0Z0lDQWdkR2hwY3k1bGVHTmhiR2xrY21GM1EyOXVkR0ZwYm1WeVVtVm1MbU4xY25KbGJuUS9MbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSW9YRzRnSUNBZ0lDQkZWa1ZPVkM1RVVrOVFMRnh1SUNBZ0lDQWdkR2hwY3k1a2FYTmhZbXhsUlhabGJuUXNYRzRnSUNBZ0lDQm1ZV3h6WlN4Y2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1kyOXRjRzl1Wlc1MFJHbGtWWEJrWVhSbEtIQnlaWFpRY205d2N6b2dRWEJ3VUhKdmNITXNJSEJ5WlhaVGRHRjBaVG9nUVhCd1UzUmhkR1VwSUh0Y2JpQWdJQ0F2THlCSWFXUmxJR2g1Y0dWeWJHbHVheUJ3YjNCMWNDQnBaaUJ6YUc5M2JpQjNhR1Z1SUdWc1pXMWxiblFnZEhsd1pTQnBjeUJ1YjNRZ2MyVnNaV04wYVc5dVhHNGdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ2NISmxkbE4wWVhSbExtVnNaVzFsYm5SVWVYQmxJRDA5UFNCY0luTmxiR1ZqZEdsdmJsd2lJQ1ltWEc0Z0lDQWdJQ0IwYUdsekxuTjBZWFJsTG1Wc1pXMWxiblJVZVhCbElDRTlQU0JjSW5ObGJHVmpkR2x2Ymx3aUlDWW1YRzRnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMbk5vYjNkSWVYQmxjbXhwYm10UWIzQjFjRnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN0lITm9iM2RJZVhCbGNteHBibXRRYjNCMWNEb2dabUZzYzJVZ2ZTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHdjbVYyVUhKdmNITXViR0Z1WjBOdlpHVWdJVDA5SUhSb2FYTXVjSEp2Y0hNdWJHRnVaME52WkdVcElIdGNiaUFnSUNBZ0lIUm9hWE11ZFhCa1lYUmxUR0Z1WjNWaFoyVW9LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvY0hKbGRsQnliM0J6TG5acFpYZE5iMlJsUlc1aFlteGxaQ0FoUFQwZ2RHaHBjeTV3Y205d2N5NTJhV1YzVFc5a1pVVnVZV0pzWldRcElIdGNiaUFnSUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZXlCMmFXVjNUVzlrWlVWdVlXSnNaV1E2SUNFaGRHaHBjeTV3Y205d2N5NTJhV1YzVFc5a1pVVnVZV0pzWldRZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLSEJ5WlhaVGRHRjBaUzUyYVdWM1RXOWtaVVZ1WVdKc1pXUWdJVDA5SUhSb2FYTXVjM1JoZEdVdWRtbGxkMDF2WkdWRmJtRmliR1ZrS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSnpLQ2s3WEc0Z0lDQWdJQ0IwYUdsekxtUmxjMlZzWldOMFJXeGxiV1Z1ZEhNb0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9jSEpsZGxCeWIzQnpMbnBsYmsxdlpHVkZibUZpYkdWa0lDRTlQU0IwYUdsekxuQnliM0J6TG5wbGJrMXZaR1ZGYm1GaWJHVmtLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIc2dlbVZ1VFc5a1pVVnVZV0pzWldRNklDRWhkR2hwY3k1d2NtOXdjeTU2Wlc1TmIyUmxSVzVoWW14bFpDQjlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvY0hKbGRsQnliM0J6TG5Sb1pXMWxJQ0U5UFNCMGFHbHpMbkJ5YjNCekxuUm9aVzFsSUNZbUlIUm9hWE11Y0hKdmNITXVkR2hsYldVcElIdGNiaUFnSUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZXlCMGFHVnRaVG9nZEdocGN5NXdjbTl3Y3k1MGFHVnRaU0I5S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2NISmxkbEJ5YjNCekxtZHlhV1JOYjJSbFJXNWhZbXhsWkNBaFBUMGdkR2hwY3k1d2NtOXdjeTVuY21sa1RXOWtaVVZ1WVdKc1pXUXBJSHRjYmlBZ0lDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2UxeHVJQ0FnSUNBZ0lDQm5jbWxrVTJsNlpUb2dkR2hwY3k1d2NtOXdjeTVuY21sa1RXOWtaVVZ1WVdKc1pXUWdQeUJIVWtsRVgxTkpXa1VnT2lCdWRXeHNMRnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0hSb2FYTXVjSEp2Y0hNdWJtRnRaU0FtSmlCd2NtVjJVSEp2Y0hNdWJtRnRaU0FoUFQwZ2RHaHBjeTV3Y205d2N5NXVZVzFsS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLSHRjYmlBZ0lDQWdJQ0FnYm1GdFpUb2dkR2hwY3k1d2NtOXdjeTV1WVcxbExGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHBjeTVsZUdOaGJHbGtjbUYzUTI5dWRHRnBibVZ5VW1WbUxtTjFjbkpsYm5RL0xtTnNZWE56VEdsemRDNTBiMmRuYkdVb1hHNGdJQ0FnSUNCY0luUm9aVzFsTFMxa1lYSnJYQ0lzWEc0Z0lDQWdJQ0IwYUdsekxuTjBZWFJsTG5Sb1pXMWxJRDA5UFNCY0ltUmhjbXRjSWl4Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ2RHaHBjeTV6ZEdGMFpTNWxaR2wwYVc1blRHbHVaV0Z5Uld4bGJXVnVkQ0FtSmx4dUlDQWdJQ0FnSVhSb2FYTXVjM1JoZEdVdWMyVnNaV04wWldSRmJHVnRaVzUwU1dSelczUm9hWE11YzNSaGRHVXVaV1JwZEdsdVoweHBibVZoY2tWc1pXMWxiblF1Wld4bGJXVnVkRWxrWFZ4dUlDQWdJQ2tnZTF4dUlDQWdJQ0FnTHk4Z1pHVm1aWElnYzI4Z2RHaGhkQ0IwYUdVZ1kyOXRiV2wwVkc5SWFYTjBiM0o1SUdac1lXY2dhWE51SjNRZ2NtVnpaWFFnZG1saElHTjFjbkpsYm5RZ2RYQmtZWFJsWEc0Z0lDQWdJQ0J6WlhSVWFXMWxiM1YwS0NncElEMCtJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWhZM1JwYjI1TllXNWhaMlZ5TG1WNFpXTjFkR1ZCWTNScGIyNG9ZV04wYVc5dVJtbHVZV3hwZW1VcE8xeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJSHNnYlhWc2RHbEZiR1Z0Wlc1MElIMGdQU0J3Y21WMlUzUmhkR1U3WEc0Z0lDQWdhV1lnS0Z4dUlDQWdJQ0FnY0hKbGRsTjBZWFJsTG1Wc1pXMWxiblJVZVhCbElDRTlQU0IwYUdsekxuTjBZWFJsTG1Wc1pXMWxiblJVZVhCbElDWW1YRzRnSUNBZ0lDQnRkV3gwYVVWc1pXMWxiblFnSVQwZ2JuVnNiQ0FtSmx4dUlDQWdJQ0FnYVhOQ2FXNWthVzVuUlc1aFlteGxaQ2gwYUdsekxuTjBZWFJsS1NBbUpseHVJQ0FnSUNBZ2FYTkNhVzVrYVc1blJXeGxiV1Z1ZENodGRXeDBhVVZzWlcxbGJuUXBYRzRnSUNBZ0tTQjdYRzRnSUNBZ0lDQnRZWGxpWlVKcGJtUk1hVzVsWVhKRmJHVnRaVzUwS0Z4dUlDQWdJQ0FnSUNCdGRXeDBhVVZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJSFJvYVhNdWMzUmhkR1VzWEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMk5sYm1Vc1hHNGdJQ0FnSUNBZ0lIUjFjR3hsVkc5RGIyOXljeWhjYmlBZ0lDQWdJQ0FnSUNCTWFXNWxZWEpGYkdWdFpXNTBSV1JwZEc5eUxtZGxkRkJ2YVc1MFFYUkpibVJsZUVkc2IySmhiRU52YjNKa2FXNWhkR1Z6S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdiWFZzZEdsRmJHVnRaVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdMVEVzWEc0Z0lDQWdJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lDQWdLU3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ1kzVnljMjl5UW5WMGRHOXVPaUI3WEc0Z0lDQWdJQ0JiYVdRNklITjBjbWx1WjEwNklITjBjbWx1WnlCOElIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCOUlEMGdlMzA3WEc0Z0lDQWdZMjl1YzNRZ2NHOXBiblJsY2xacFpYZHdiM0owUTI5dmNtUnpPaUJTWlc1a1pYSkRiMjVtYVdkYlhDSnlaVzF2ZEdWUWIybHVkR1Z5Vm1sbGQzQnZjblJEYjI5eVpITmNJbDBnUFZ4dUlDQWdJQ0FnZTMwN1hHNGdJQ0FnWTI5dWMzUWdjbVZ0YjNSbFUyVnNaV04wWldSRmJHVnRaVzUwU1dSek9pQlNaVzVrWlhKRGIyNW1hV2RiWENKeVpXMXZkR1ZUWld4bFkzUmxaRVZzWlcxbGJuUkpaSE5jSWwwZ1BWeHVJQ0FnSUNBZ2UzMDdYRzRnSUNBZ1kyOXVjM1FnY0c5cGJuUmxjbFZ6WlhKdVlXMWxjem9nZXlCYmFXUTZJSE4wY21sdVoxMDZJSE4wY21sdVp5QjlJRDBnZTMwN1hHNGdJQ0FnWTI5dWMzUWdjRzlwYm5SbGNsVnpaWEpUZEdGMFpYTTZJSHNnVzJsa09pQnpkSEpwYm1kZE9pQnpkSEpwYm1jZ2ZTQTlJSHQ5TzF4dUlDQWdJSFJvYVhNdWMzUmhkR1V1WTI5c2JHRmliM0poZEc5eWN5NW1iM0pGWVdOb0tDaDFjMlZ5TENCemIyTnJaWFJKWkNrZ1BUNGdlMXh1SUNBZ0lDQWdhV1lnS0hWelpYSXVjMlZzWldOMFpXUkZiR1Z0Wlc1MFNXUnpLU0I3WEc0Z0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2FXUWdiMllnVDJKcVpXTjBMbXRsZVhNb2RYTmxjaTV6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE1wS1NCN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0NFb2FXUWdhVzRnY21WdGIzUmxVMlZzWldOMFpXUkZiR1Z0Wlc1MFNXUnpLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVZ0YjNSbFUyVnNaV04wWldSRmJHVnRaVzUwU1dSelcybGtYU0E5SUZ0ZE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCeVpXMXZkR1ZUWld4bFkzUmxaRVZzWlcxbGJuUkpaSE5iYVdSZExuQjFjMmdvYzI5amEyVjBTV1FwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9JWFZ6WlhJdWNHOXBiblJsY2lrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9kWE5sY2k1MWMyVnlibUZ0WlNrZ2UxeHVJQ0FnSUNBZ0lDQndiMmx1ZEdWeVZYTmxjbTVoYldWelczTnZZMnRsZEVsa1hTQTlJSFZ6WlhJdWRYTmxjbTVoYldVN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9kWE5sY2k1MWMyVnlVM1JoZEdVcElIdGNiaUFnSUNBZ0lDQWdjRzlwYm5SbGNsVnpaWEpUZEdGMFpYTmJjMjlqYTJWMFNXUmRJRDBnZFhObGNpNTFjMlZ5VTNSaGRHVTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQndiMmx1ZEdWeVZtbGxkM0J2Y25SRGIyOXlaSE5iYzI5amEyVjBTV1JkSUQwZ2MyTmxibVZEYjI5eVpITlViMVpwWlhkd2IzSjBRMjl2Y21SektGeHVJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnYzJObGJtVllPaUIxYzJWeUxuQnZhVzUwWlhJdWVDeGNiaUFnSUNBZ0lDQWdJQ0J6WTJWdVpWazZJSFZ6WlhJdWNHOXBiblJsY2k1NUxGeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0IwYUdsekxuTjBZWFJsTEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUdOMWNuTnZja0oxZEhSdmJsdHpiMk5yWlhSSlpGMGdQU0IxYzJWeUxtSjFkSFJ2Ymp0Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0JqYjI1emRDQnlaVzVrWlhKcGJtZEZiR1Z0Wlc1MGN5QTlJSFJvYVhNdWMyTmxibVV1WjJWMFJXeGxiV1Z1ZEhNb0tTNW1hV3gwWlhJb0tHVnNaVzFsYm5RcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNocGMwbHRZV2RsUld4bGJXVnVkQ2hsYkdWdFpXNTBLU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9YRzRnSUNBZ0lDQWdJQ0FnTHk4Z2JtOTBJSEJzWVdObFpDQnZiaUJqWVc1MllYTWdlV1YwSUNoaWRYUWdhVzRnWld4bGJXVnVkSE1nWVhKeVlYa3BYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NXpkR0YwWlM1d1pXNWthVzVuU1cxaFoyVkZiR1Z0Wlc1MElDWW1YRzRnSUNBZ0lDQWdJQ0FnWld4bGJXVnVkQzVwWkNBOVBUMGdkR2hwY3k1emRHRjBaUzV3Wlc1a2FXNW5TVzFoWjJWRmJHVnRaVzUwTG1sa1hHNGdJQ0FnSUNBZ0lDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdMeThnWkc5dUozUWdjbVZ1WkdWeUlIUmxlSFFnWld4bGJXVnVkQ0IwYUdGMEozTWdZbVZwYm1jZ1kzVnljbVZ1ZEd4NUlHVmthWFJsWkNBb2FYUW5jMXh1SUNBZ0lDQWdMeThnY21WdVpHVnlaV1FnYjI0Z2NtVnRiM1JsSUc5dWJIa3BYRzRnSUNBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ0lDQWhkR2hwY3k1emRHRjBaUzVsWkdsMGFXNW5SV3hsYldWdWRDQjhmRnh1SUNBZ0lDQWdJQ0IwYUdsekxuTjBZWFJsTG1Wa2FYUnBibWRGYkdWdFpXNTBMblI1Y0dVZ0lUMDlJRndpZEdWNGRGd2lJSHg4WEc0Z0lDQWdJQ0FnSUdWc1pXMWxiblF1YVdRZ0lUMDlJSFJvYVhNdWMzUmhkR1V1WldScGRHbHVaMFZzWlcxbGJuUXVhV1JjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmU2s3WEc0Z0lDQWdZMjl1YzNRZ2V5QmhkRXhsWVhOMFQyNWxWbWx6YVdKc1pVVnNaVzFsYm5Rc0lITmpjbTlzYkVKaGNuTWdmU0E5SUhKbGJtUmxjbE5qWlc1bEtGeHVJQ0FnSUNBZ2NtVnVaR1Z5YVc1blJXeGxiV1Z1ZEhNc1hHNGdJQ0FnSUNCMGFHbHpMbk4wWVhSbExGeHVJQ0FnSUNBZ2RHaHBjeTV6ZEdGMFpTNXpaV3hsWTNScGIyNUZiR1Z0Wlc1MExGeHVJQ0FnSUNBZ2QybHVaRzkzTG1SbGRtbGpaVkJwZUdWc1VtRjBhVzhzWEc0Z0lDQWdJQ0IwYUdsekxuSmpJU3hjYmlBZ0lDQWdJSFJvYVhNdVkyRnVkbUZ6SVN4Y2JpQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ2MyTnliMnhzV0RvZ2RHaHBjeTV6ZEdGMFpTNXpZM0p2Ykd4WUxGeHVJQ0FnSUNBZ0lDQnpZM0p2Ykd4Wk9pQjBhR2x6TG5OMFlYUmxMbk5qY205c2JGa3NYRzRnSUNBZ0lDQWdJSFpwWlhkQ1lXTnJaM0p2ZFc1a1EyOXNiM0k2SUhSb2FYTXVjM1JoZEdVdWRtbGxkMEpoWTJ0bmNtOTFibVJEYjJ4dmNpeGNiaUFnSUNBZ0lDQWdlbTl2YlRvZ2RHaHBjeTV6ZEdGMFpTNTZiMjl0TEZ4dUlDQWdJQ0FnSUNCeVpXMXZkR1ZRYjJsdWRHVnlWbWxsZDNCdmNuUkRiMjl5WkhNNklIQnZhVzUwWlhKV2FXVjNjRzl5ZEVOdmIzSmtjeXhjYmlBZ0lDQWdJQ0FnY21WdGIzUmxVRzlwYm5SbGNrSjFkSFJ2YmpvZ1kzVnljMjl5UW5WMGRHOXVMRnh1SUNBZ0lDQWdJQ0J5WlcxdmRHVlRaV3hsWTNSbFpFVnNaVzFsYm5SSlpITXNYRzRnSUNBZ0lDQWdJSEpsYlc5MFpWQnZhVzUwWlhKVmMyVnlibUZ0WlhNNklIQnZhVzUwWlhKVmMyVnlibUZ0WlhNc1hHNGdJQ0FnSUNBZ0lISmxiVzkwWlZCdmFXNTBaWEpWYzJWeVUzUmhkR1Z6T2lCd2IybHVkR1Z5VlhObGNsTjBZWFJsY3l4Y2JpQWdJQ0FnSUNBZ2MyaHZkV3hrUTJGamFHVkpaMjV2Y21WYWIyOXRPaUIwYUdsekxuTjBZWFJsTG5Ob2IzVnNaRU5oWTJobFNXZHViM0psV205dmJTeGNiaUFnSUNBZ0lDQWdkR2hsYldVNklIUm9hWE11YzNSaGRHVXVkR2hsYldVc1hHNGdJQ0FnSUNBZ0lHbHRZV2RsUTJGamFHVTZJSFJvYVhNdWFXMWhaMlZEWVdOb1pTeGNiaUFnSUNBZ0lDQWdhWE5GZUhCdmNuUnBibWM2SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0J5Wlc1a1pYSlRZM0p2Ykd4aVlYSnpPaUFoZEdocGN5NXBjMDF2WW1sc1pTeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHbG1JQ2h6WTNKdmJHeENZWEp6S1NCN1hHNGdJQ0FnSUNCamRYSnlaVzUwVTJOeWIyeHNRbUZ5Y3lBOUlITmpjbTlzYkVKaGNuTTdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJSE5qY205c2JHVmtUM1YwYzJsa1pTQTlYRzRnSUNBZ0lDQXZMeUJvYVdSbElIZG9aVzRnWldScGRHbHVaeUIwWlhoMFhHNGdJQ0FnSUNCcGMxUmxlSFJGYkdWdFpXNTBLSFJvYVhNdWMzUmhkR1V1WldScGRHbHVaMFZzWlcxbGJuUXBYRzRnSUNBZ0lDQWdJRDhnWm1Gc2MyVmNiaUFnSUNBZ0lDQWdPaUFoWVhSTVpXRnpkRTl1WlZacGMybGliR1ZGYkdWdFpXNTBJQ1ltSUhKbGJtUmxjbWx1WjBWc1pXMWxiblJ6TG14bGJtZDBhQ0ErSURBN1hHNGdJQ0FnYVdZZ0tIUm9hWE11YzNSaGRHVXVjMk55YjJ4c1pXUlBkWFJ6YVdSbElDRTlQU0J6WTNKdmJHeGxaRTkxZEhOcFpHVXBJSHRjYmlBZ0lDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2V5QnpZM0p2Ykd4bFpFOTFkSE5wWkdVZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHBjeTVvYVhOMGIzSjVMbkpsWTI5eVpDaDBhR2x6TG5OMFlYUmxMQ0IwYUdsekxuTmpaVzVsTG1kbGRFVnNaVzFsYm5SelNXNWpiSFZrYVc1blJHVnNaWFJsWkNncEtUdGNibHh1SUNBZ0lIUm9hWE11YzJOb1pXUjFiR1ZKYldGblpWSmxabkpsYzJnb0tUdGNibHh1SUNBZ0lDOHZJRVJ2SUc1dmRDQnViM1JwWm5rZ1kyOXVjM1Z0WlhKeklHbG1JSGRsSjNKbElITjBhV3hzSUd4dllXUnBibWNnZEdobElITmpaVzVsTGlCQmJXOXVaeUJ2ZEdobGNseHVJQ0FnSUM4dklIQnZkR1Z1ZEdsaGJDQnBjM04xWlhNc0lIUm9hWE1nWm1sNFpYTWdZU0JqWVhObElIZG9aWEpsSUhSb1pTQjBZV0lnYVhOdUozUWdabTlqZFhObFpDQmtkWEpwYm1kY2JpQWdJQ0F2THlCcGJtbDBMQ0IzYUdsamFDQjNiM1ZzWkNCMGNtbG5aMlZ5SUc5dVEyaGhibWRsSUhkcGRHZ2daVzF3ZEhrZ1pXeGxiV1Z1ZEhNc0lIZG9hV05vSUhkdmRXeGtJSFJvWlc1Y2JpQWdJQ0F2THlCdmRtVnljbWxrWlNCM2FHRjBaWFpsY2lCcGN5QnBiaUJzYjJOaGJGTjBiM0poWjJVZ1kzVnljbVZ1ZEd4NUxseHVJQ0FnSUdsbUlDZ2hkR2hwY3k1emRHRjBaUzVwYzB4dllXUnBibWNwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjSEp2Y0hNdWIyNURhR0Z1WjJVL0xpaGNiaUFnSUNBZ0lDQWdkR2hwY3k1elkyVnVaUzVuWlhSRmJHVnRaVzUwYzBsdVkyeDFaR2x1WjBSbGJHVjBaV1FvS1N4Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6ZEdGMFpTeGNiaUFnSUNBZ0lDQWdkR2hwY3k1bWFXeGxjeXhjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J2YmxOamNtOXNiQ0E5SUdSbFltOTFibU5sS0NncElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHOW1abk5sZEZSdmNDd2diMlptYzJWMFRHVm1kQ0I5SUQwZ2RHaHBjeTVuWlhSRFlXNTJZWE5QWm1aelpYUnpLQ2s3WEc0Z0lDQWdkR2hwY3k1elpYUlRkR0YwWlNnb2MzUmhkR1VwSUQwK0lIdGNiaUFnSUNBZ0lHbG1JQ2h6ZEdGMFpTNXZabVp6WlhSTVpXWjBJRDA5UFNCdlptWnpaWFJNWldaMElDWW1JSE4wWVhSbExtOW1abk5sZEZSdmNDQTlQVDBnYjJabWMyVjBWRzl3S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlIc2diMlptYzJWMFZHOXdMQ0J2Wm1aelpYUk1aV1owSUgwN1hHNGdJQ0FnZlNrN1hHNGdJSDBzSUZORFVrOU1URjlVU1UxRlQxVlVLVHRjYmx4dUlDQXZMeUJEYjNCNUwzQmhjM1JsWEc1Y2JpQWdjSEpwZG1GMFpTQnZia04xZENBOUlIZHBkR2hDWVhSamFHVmtWWEJrWVhSbGN5Z29aWFpsYm5RNklFTnNhWEJpYjJGeVpFVjJaVzUwS1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnYVhORmVHTmhiR2xrY21GM1FXTjBhWFpsSUQwZ2RHaHBjeTVsZUdOaGJHbGtjbUYzUTI5dWRHRnBibVZ5VW1WbUxtTjFjbkpsYm5RL0xtTnZiblJoYVc1ektGeHVJQ0FnSUNBZ1pHOWpkVzFsYm5RdVlXTjBhWFpsUld4bGJXVnVkQ3hjYmlBZ0lDQXBPMXh1SUNBZ0lHbG1JQ2doYVhORmVHTmhiR2xrY21GM1FXTjBhWFpsSUh4OElHbHpWM0pwZEdGaWJHVkZiR1Z0Wlc1MEtHVjJaVzUwTG5SaGNtZGxkQ2twSUh0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzRnSUNBZ2RHaHBjeTVqZFhSQmJHd29LVHRjYmlBZ0lDQmxkbVZ1ZEM1d2NtVjJaVzUwUkdWbVlYVnNkQ2dwTzF4dUlDQjlLVHRjYmx4dUlDQndjbWwyWVhSbElHOXVRMjl3ZVNBOUlIZHBkR2hDWVhSamFHVmtWWEJrWVhSbGN5Z29aWFpsYm5RNklFTnNhWEJpYjJGeVpFVjJaVzUwS1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnYVhORmVHTmhiR2xrY21GM1FXTjBhWFpsSUQwZ2RHaHBjeTVsZUdOaGJHbGtjbUYzUTI5dWRHRnBibVZ5VW1WbUxtTjFjbkpsYm5RL0xtTnZiblJoYVc1ektGeHVJQ0FnSUNBZ1pHOWpkVzFsYm5RdVlXTjBhWFpsUld4bGJXVnVkQ3hjYmlBZ0lDQXBPMXh1SUNBZ0lHbG1JQ2doYVhORmVHTmhiR2xrY21GM1FXTjBhWFpsSUh4OElHbHpWM0pwZEdGaWJHVkZiR1Z0Wlc1MEtHVjJaVzUwTG5SaGNtZGxkQ2twSUh0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzRnSUNBZ2RHaHBjeTVqYjNCNVFXeHNLQ2s3WEc0Z0lDQWdaWFpsYm5RdWNISmxkbVZ1ZEVSbFptRjFiSFFvS1R0Y2JpQWdmU2s3WEc1Y2JpQWdjSEpwZG1GMFpTQmpkWFJCYkd3Z1BTQW9LU0E5UGlCN1hHNGdJQ0FnZEdocGN5NWpiM0I1UVd4c0tDazdYRzRnSUNBZ2RHaHBjeTVoWTNScGIyNU5ZVzVoWjJWeUxtVjRaV04xZEdWQlkzUnBiMjRvWVdOMGFXOXVSR1ZzWlhSbFUyVnNaV04wWldRcE8xeHVJQ0I5TzF4dVhHNGdJSEJ5YVhaaGRHVWdZMjl3ZVVGc2JDQTlJQ2dwSUQwK0lIdGNiaUFnSUNCamIzQjVWRzlEYkdsd1ltOWhjbVFvZEdocGN5NXpZMlZ1WlM1blpYUkZiR1Z0Wlc1MGN5Z3BMQ0IwYUdsekxuTjBZWFJsTENCMGFHbHpMbVpwYkdWektUdGNiaUFnZlR0Y2JseHVJQ0J3Y21sMllYUmxJSE4wWVhScFl5QnlaWE5sZEZSaGNGUjNhV05sS0NrZ2UxeHVJQ0FnSUdScFpGUmhjRlIzYVdObElEMGdabUZzYzJVN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHOXVWR0Z3VTNSaGNuUWdQU0FvWlhabGJuUTZJRlJ2ZFdOb1JYWmxiblFwSUQwK0lIdGNiaUFnSUNBdkx5Qm1hWGdnWm05eUlFRndjR3hsSUZCbGJtTnBiQ0JUWTNKcFltSnNaVnh1SUNBZ0lDOHZJRTl1SUVGdVpISnZhV1FzSUhCeVpYWmxiblJwYm1jZ2RHaGxJR1YyWlc1MElIZHZkV3hrSUdScGMyRmliR1VnWTI5dWRHVjRkRTFsYm5VZ2IyNGdkR0Z3TFdodmJHUmNiaUFnSUNCcFppQW9JV2x6UVc1a2NtOXBaQ2tnZTF4dUlDQWdJQ0FnWlhabGJuUXVjSEpsZG1WdWRFUmxabUYxYkhRb0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9JV1JwWkZSaGNGUjNhV05sS1NCN1hHNGdJQ0FnSUNCa2FXUlVZWEJVZDJsalpTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNCamJHVmhjbFJwYldWdmRYUW9kR0Z3Y0dWa1ZIZHBZMlZVYVcxbGNpazdYRzRnSUNBZ0lDQjBZWEJ3WldSVWQybGpaVlJwYldWeUlEMGdkMmx1Wkc5M0xuTmxkRlJwYldWdmRYUW9YRzRnSUNBZ0lDQWdJRUZ3Y0M1eVpYTmxkRlJoY0ZSM2FXTmxMRnh1SUNBZ0lDQWdJQ0JVUVZCZlZGZEpRMFZmVkVsTlJVOVZWQ3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVJQ0FnSUM4dklHbHVjMlZ5ZENCMFpYaDBJRzl1YkhrZ2FXWWdkMlVnZEdGd2NHVmtJSFIzYVdObElIZHBkR2dnWVNCemFXNW5iR1VnWm1sdVoyVnlYRzRnSUNBZ0x5OGdaWFpsYm5RdWRHOTFZMmhsY3k1c1pXNW5kR2dnUFQwOUlERWdkMmxzYkNCaGJITnZJSEJ5WlhabGJuUWdhVzV6WlhKMGFXNW5JSFJsZUhRZ2QyaGxiaUIxYzJWeUozTWdlbTl2YldsdVoxeHVJQ0FnSUdsbUlDaGthV1JVWVhCVWQybGpaU0FtSmlCbGRtVnVkQzUwYjNWamFHVnpMbXhsYm1kMGFDQTlQVDBnTVNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnVzNSdmRXTm9YU0E5SUdWMlpXNTBMblJ2ZFdOb1pYTTdYRzRnSUNBZ0lDQXZMeUJBZEhNdGFXZHViM0psWEc0Z0lDQWdJQ0IwYUdsekxtaGhibVJzWlVOaGJuWmhjMFJ2ZFdKc1pVTnNhV05yS0h0Y2JpQWdJQ0FnSUNBZ1kyeHBaVzUwV0RvZ2RHOTFZMmd1WTJ4cFpXNTBXQ3hjYmlBZ0lDQWdJQ0FnWTJ4cFpXNTBXVG9nZEc5MVkyZ3VZMnhwWlc1MFdTeGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdaR2xrVkdGd1ZIZHBZMlVnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJR05zWldGeVZHbHRaVzkxZENoMFlYQndaV1JVZDJsalpWUnBiV1Z5S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0dselFXNWtjbTlwWkNrZ2UxeHVJQ0FnSUNBZ1pYWmxiblF1Y0hKbGRtVnVkRVJsWm1GMWJIUW9LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvWlhabGJuUXVkRzkxWTJobGN5NXNaVzVuZEdnZ1BUMDlJRElwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9lMXh1SUNBZ0lDQWdJQ0J6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE02SUh0OUxGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVJQ0I5TzF4dVhHNGdJSEJ5YVhaaGRHVWdiMjVVWVhCRmJtUWdQU0FvWlhabGJuUTZJRlJ2ZFdOb1JYWmxiblFwSUQwK0lIdGNiaUFnSUNCMGFHbHpMbkpsYzJWMFEyOXVkR1Y0ZEUxbGJuVlVhVzFsY2lncE8xeHVJQ0FnSUdsbUlDaGxkbVZ1ZEM1MGIzVmphR1Z6TG14bGJtZDBhQ0ErSURBcElIdGNiaUFnSUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnSUNCd2NtVjJhVzkxYzFObGJHVmpkR1ZrUld4bGJXVnVkRWxrY3pvZ2UzMHNYRzRnSUNBZ0lDQWdJSE5sYkdWamRHVmtSV3hsYldWdWRFbGtjem9nZEdocGN5NXpkR0YwWlM1d2NtVjJhVzkxYzFObGJHVmpkR1ZrUld4bGJXVnVkRWxrY3l4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0JuWlhOMGRYSmxMbkJ2YVc1MFpYSnpMbU5zWldGeUtDazdYRzRnSUNBZ2ZWeHVJQ0I5TzF4dVhHNGdJSEJ5YVhaaGRHVWdjR0Z6ZEdWR2NtOXRRMnhwY0dKdllYSmtJRDBnZDJsMGFFSmhkR05vWldSVmNHUmhkR1Z6S0Z4dUlDQWdJR0Z6ZVc1aklDaGxkbVZ1ZERvZ1EyeHBjR0p2WVhKa1JYWmxiblFnZkNCdWRXeHNLU0E5UGlCN1hHNGdJQ0FnSUNBdkx5QWpOamcyWEc0Z0lDQWdJQ0JqYjI1emRDQjBZWEpuWlhRZ1BTQmtiMk4xYldWdWRDNWhZM1JwZG1WRmJHVnRaVzUwTzF4dUlDQWdJQ0FnWTI5dWMzUWdhWE5GZUdOaGJHbGtjbUYzUVdOMGFYWmxJRDFjYmlBZ0lDQWdJQ0FnZEdocGN5NWxlR05oYkdsa2NtRjNRMjl1ZEdGcGJtVnlVbVZtTG1OMWNuSmxiblEvTG1OdmJuUmhhVzV6S0hSaGNtZGxkQ2s3WEc0Z0lDQWdJQ0JwWmlBb0lXbHpSWGhqWVd4cFpISmhkMEZqZEdsMlpTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR052Ym5OMElHVnNaVzFsYm5SVmJtUmxja04xY25OdmNpQTlJR1J2WTNWdFpXNTBMbVZzWlcxbGJuUkdjbTl0VUc5cGJuUW9ZM1Z5YzI5eVdDd2dZM1Z5YzI5eVdTazdYRzRnSUNBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0FnSUM4dklHbG1JRzV2SUVOc2FYQmliMkZ5WkVWMlpXNTBJSE4xY0hCc2FXVmtMQ0JoYzNOMWJXVWdkMlVuY21VZ2NHRnpkR2x1WnlCMmFXRWdZMjl1ZEdWNGRFMWxiblZjYmlBZ0lDQWdJQ0FnTHk4Z2RHaDFjeUIwYUdWelpTQmphR1ZqYTNNZ1pHOXVKM1FnYldGclpTQnpaVzV6WlZ4dUlDQWdJQ0FnSUNCbGRtVnVkQ0FtSmx4dUlDQWdJQ0FnSUNBb0lTaGxiR1Z0Wlc1MFZXNWtaWEpEZFhKemIzSWdhVzV6ZEdGdVkyVnZaaUJJVkUxTVEyRnVkbUZ6Uld4bGJXVnVkQ2tnZkh4Y2JpQWdJQ0FnSUNBZ0lDQnBjMWR5YVhSaFlteGxSV3hsYldWdWRDaDBZWEpuWlhRcEtWeHVJQ0FnSUNBZ0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdMeThnYlhWemRDQmlaU0JqWVd4c1pXUWdhVzRnZEdobElITmhiV1VnWm5KaGJXVWdLSFJvZFhNZ1ltVm1iM0psSUdGdWVTQmhkMkZwZEhNcElHRnpJSFJvWlNCd1lYTjBaVnh1SUNBZ0lDQWdMeThnWlhabGJuUWdaV3h6WlNCemIyMWxJR0p5YjNkelpYSnpJQ2hHUmk0dUxpa2dkMmxzYkNCamJHVmhjaUIwYUdVZ1kyeHBjR0p2WVhKa1JHRjBZVnh1SUNBZ0lDQWdMeThnS0hOdmJXVjBhR2x1WnlCemIyMWxkR2hwYm1jZ2MyVmpkWEpwZEhrcFhHNGdJQ0FnSUNCc1pYUWdabWxzWlNBOUlHVjJaVzUwUHk1amJHbHdZbTloY21SRVlYUmhQeTVtYVd4bGMxc3dYVHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdaR0YwWVNBOUlHRjNZV2wwSUhCaGNuTmxRMnhwY0dKdllYSmtLR1YyWlc1MEtUdGNibHh1SUNBZ0lDQWdhV1lnS0NGbWFXeGxJQ1ltSUdSaGRHRXVkR1Y0ZENrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCemRISnBibWNnUFNCa1lYUmhMblJsZUhRdWRISnBiU2dwTzF4dUlDQWdJQ0FnSUNCcFppQW9jM1J5YVc1bkxuTjBZWEowYzFkcGRHZ29YQ0k4YzNablhDSXBJQ1ltSUhOMGNtbHVaeTVsYm1SelYybDBhQ2hjSWp3dmMzWm5QbHdpS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQzh2SUdsbmJtOXlaU0JUVmtjZ2RtRnNhV1JoZEdsdmJpOXViM0p0WVd4cGVtRjBhVzl1SUhkb2FXTm9JSGRwYkd3Z1ltVWdaRzl1WlNCa2RYSnBibWNnYVcxaFoyVmNiaUFnSUNBZ0lDQWdJQ0F2THlCcGJtbDBhV0ZzYVhwaGRHbHZibHh1SUNBZ0lDQWdJQ0FnSUdacGJHVWdQU0JUVmtkVGRISnBibWRVYjBacGJHVW9jM1J5YVc1bktUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0F2THlCd2NtVm1aWElnYzNCeVpXRmtjMmhsWlhRZ1pHRjBZU0J2ZG1WeUlHbHRZV2RsSUdacGJHVWdLRTFUSUU5bVptbGpaUzlNYVdKeVpTQlBabVpwWTJVcFhHNGdJQ0FnSUNCcFppQW9hWE5UZFhCd2IzSjBaV1JKYldGblpVWnBiR1VvWm1sc1pTa2dKaVlnSVdSaGRHRXVjM0J5WldGa2MyaGxaWFFwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZXlCNE9pQnpZMlZ1WlZnc0lIazZJSE5qWlc1bFdTQjlJRDBnZG1sbGQzQnZjblJEYjI5eVpITlViMU5qWlc1bFEyOXZjbVJ6S0Z4dUlDQWdJQ0FnSUNBZ0lIc2dZMnhwWlc1MFdEb2dZM1Z5YzI5eVdDd2dZMnhwWlc1MFdUb2dZM1Z5YzI5eVdTQjlMRnh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVjM1JoZEdVc1hHNGdJQ0FnSUNBZ0lDazdYRzVjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhVzFoWjJWRmJHVnRaVzUwSUQwZ2RHaHBjeTVqY21WaGRHVkpiV0ZuWlVWc1pXMWxiblFvZXlCelkyVnVaVmdzSUhOalpXNWxXU0I5S1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVwYm5ObGNuUkpiV0ZuWlVWc1pXMWxiblFvYVcxaFoyVkZiR1Z0Wlc1MExDQm1hV3hsS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVwYm1sMGFXRnNhWHBsU1cxaFoyVkVhVzFsYm5OcGIyNXpLR2x0WVdkbFJXeGxiV1Z1ZENrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZXlCelpXeGxZM1JsWkVWc1pXMWxiblJKWkhNNklIc2dXMmx0WVdkbFJXeGxiV1Z1ZEM1cFpGMDZJSFJ5ZFdVZ2ZTQjlLVHRjYmx4dUlDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdsbUlDaDBhR2x6TG5CeWIzQnpMbTl1VUdGemRHVXBJSHRjYmlBZ0lDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb0tHRjNZV2wwSUhSb2FYTXVjSEp2Y0hNdWIyNVFZWE4wWlNoa1lYUmhMQ0JsZG1WdWRDa3BJRDA5UFNCbVlXeHpaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlNCallYUmphQ0FvWlhKeWIzSTZJR0Z1ZVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OdmJHVXVaWEp5YjNJb1pYSnliM0lwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9aR0YwWVM1bGNuSnZjazFsYzNOaFoyVXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdJR1Z5Y205eVRXVnpjMkZuWlRvZ1pHRjBZUzVsY25KdmNrMWxjM05oWjJVZ2ZTazdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLR1JoZEdFdWMzQnlaV0ZrYzJobFpYUXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQWdJQ0FnY0dGemRHVkVhV0ZzYjJjNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdSaGRHRTZJR1JoZEdFdWMzQnlaV0ZrYzJobFpYUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCemFHOTNiam9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCcFppQW9aR0YwWVM1bGJHVnRaVzUwY3lrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG1Ga1pFVnNaVzFsYm5SelJuSnZiVkJoYzNSbFQzSk1hV0p5WVhKNUtIdGNiaUFnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBjem9nWkdGMFlTNWxiR1Z0Wlc1MGN5eGNiaUFnSUNBZ0lDQWdJQ0JtYVd4bGN6b2daR0YwWVM1bWFXeGxjeUI4ZkNCdWRXeHNMRnh1SUNBZ0lDQWdJQ0FnSUhCdmMybDBhVzl1T2lCY0ltTjFjbk52Y2x3aUxGeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDBnWld4elpTQnBaaUFvWkdGMFlTNTBaWGgwS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WVdSa1ZHVjRkRVp5YjIxUVlYTjBaU2hrWVhSaExuUmxlSFFwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnZEdocGN5NXpaV3hsWTNSVGFHRndaVlJ2YjJ3b1hDSnpaV3hsWTNScGIyNWNJaWs3WEc0Z0lDQWdJQ0JsZG1WdWREOHVjSEpsZG1WdWRFUmxabUYxYkhRb0tUdGNiaUFnSUNCOUxGeHVJQ0FwTzF4dVhHNGdJSEJ5YVhaaGRHVWdZV1JrUld4bGJXVnVkSE5HY205dFVHRnpkR1ZQY2t4cFluSmhjbmtnUFNBb2IzQjBjem9nZTF4dUlDQWdJR1ZzWlcxbGJuUnpPaUJ5WldGa2IyNXNlU0JGZUdOaGJHbGtjbUYzUld4bGJXVnVkRnRkTzF4dUlDQWdJR1pwYkdWek9pQkNhVzVoY25sR2FXeGxjeUI4SUc1MWJHdzdYRzRnSUNBZ2NHOXphWFJwYjI0NklIc2dZMnhwWlc1MFdEb2diblZ0WW1WeU95QmpiR2xsYm5SWk9pQnVkVzFpWlhJZ2ZTQjhJRndpWTNWeWMyOXlYQ0lnZkNCY0ltTmxiblJsY2x3aU8xeHVJQ0I5S1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnWld4bGJXVnVkSE1nUFNCeVpYTjBiM0psUld4bGJXVnVkSE1vYjNCMGN5NWxiR1Z0Wlc1MGN5d2diblZzYkNrN1hHNGdJQ0FnWTI5dWMzUWdXMjFwYmxnc0lHMXBibGtzSUcxaGVGZ3NJRzFoZUZsZElEMGdaMlYwUTI5dGJXOXVRbTkxYm1SektHVnNaVzFsYm5SektUdGNibHh1SUNBZ0lHTnZibk4wSUdWc1pXMWxiblJ6UTJWdWRHVnlXQ0E5SUdScGMzUmhibU5sS0cxcGJsZ3NJRzFoZUZncElDOGdNanRjYmlBZ0lDQmpiMjV6ZENCbGJHVnRaVzUwYzBObGJuUmxjbGtnUFNCa2FYTjBZVzVqWlNodGFXNVpMQ0J0WVhoWktTQXZJREk3WEc1Y2JpQWdJQ0JqYjI1emRDQmpiR2xsYm5SWUlEMWNiaUFnSUNBZ0lIUjVjR1Z2WmlCdmNIUnpMbkJ2YzJsMGFXOXVJRDA5UFNCY0ltOWlhbVZqZEZ3aVhHNGdJQ0FnSUNBZ0lEOGdiM0IwY3k1d2IzTnBkR2x2Ymk1amJHbGxiblJZWEc0Z0lDQWdJQ0FnSURvZ2IzQjBjeTV3YjNOcGRHbHZiaUE5UFQwZ1hDSmpkWEp6YjNKY0lseHVJQ0FnSUNBZ0lDQS9JR04xY25OdmNsaGNiaUFnSUNBZ0lDQWdPaUIwYUdsekxuTjBZWFJsTG5kcFpIUm9JQzhnTWlBcklIUm9hWE11YzNSaGRHVXViMlptYzJWMFRHVm1kRHRjYmlBZ0lDQmpiMjV6ZENCamJHbGxiblJaSUQxY2JpQWdJQ0FnSUhSNWNHVnZaaUJ2Y0hSekxuQnZjMmwwYVc5dUlEMDlQU0JjSW05aWFtVmpkRndpWEc0Z0lDQWdJQ0FnSUQ4Z2IzQjBjeTV3YjNOcGRHbHZiaTVqYkdsbGJuUlpYRzRnSUNBZ0lDQWdJRG9nYjNCMGN5NXdiM05wZEdsdmJpQTlQVDBnWENKamRYSnpiM0pjSWx4dUlDQWdJQ0FnSUNBL0lHTjFjbk52Y2xsY2JpQWdJQ0FnSUNBZ09pQjBhR2x6TG5OMFlYUmxMbWhsYVdkb2RDQXZJRElnS3lCMGFHbHpMbk4wWVhSbExtOW1abk5sZEZSdmNEdGNibHh1SUNBZ0lHTnZibk4wSUhzZ2VDd2dlU0I5SUQwZ2RtbGxkM0J2Y25SRGIyOXlaSE5VYjFOalpXNWxRMjl2Y21SektGeHVJQ0FnSUNBZ2V5QmpiR2xsYm5SWUxDQmpiR2xsYm5SWklIMHNYRzRnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMRnh1SUNBZ0lDazdYRzVjYmlBZ0lDQmpiMjV6ZENCa2VDQTlJSGdnTFNCbGJHVnRaVzUwYzBObGJuUmxjbGc3WEc0Z0lDQWdZMjl1YzNRZ1pIa2dQU0I1SUMwZ1pXeGxiV1Z1ZEhORFpXNTBaWEpaTzF4dUlDQWdJR052Ym5OMElHZHliM1Z3U1dSTllYQWdQU0J1WlhjZ1RXRndLQ2s3WEc1Y2JpQWdJQ0JqYjI1emRDQmJaM0pwWkZnc0lHZHlhV1JaWFNBOUlHZGxkRWR5YVdSUWIybHVkQ2hrZUN3Z1pIa3NJSFJvYVhNdWMzUmhkR1V1WjNKcFpGTnBlbVVwTzF4dVhHNGdJQ0FnWTI5dWMzUWdiMnhrU1dSVWIwUjFjR3hwWTJGMFpXUkpaQ0E5SUc1bGR5Qk5ZWEFvS1R0Y2JpQWdJQ0JqYjI1emRDQnVaWGRGYkdWdFpXNTBjeUE5SUdWc1pXMWxiblJ6TG0xaGNDZ29aV3hsYldWdWRDa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdibVYzUld4bGJXVnVkQ0E5SUdSMWNHeHBZMkYwWlVWc1pXMWxiblFvWEc0Z0lDQWdJQ0FnSUhSb2FYTXVjM1JoZEdVdVpXUnBkR2x1WjBkeWIzVndTV1FzWEc0Z0lDQWdJQ0FnSUdkeWIzVndTV1JOWVhBc1hHNGdJQ0FnSUNBZ0lHVnNaVzFsYm5Rc1hHNGdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0I0T2lCbGJHVnRaVzUwTG5nZ0t5Qm5jbWxrV0NBdElHMXBibGdzWEc0Z0lDQWdJQ0FnSUNBZ2VUb2daV3hsYldWdWRDNTVJQ3NnWjNKcFpGa2dMU0J0YVc1WkxGeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJRzlzWkVsa1ZHOUVkWEJzYVdOaGRHVmtTV1F1YzJWMEtHVnNaVzFsYm5RdWFXUXNJRzVsZDBWc1pXMWxiblF1YVdRcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGQwVnNaVzFsYm5RN1hHNGdJQ0FnZlNrN1hHNGdJQ0FnWW1sdVpGUmxlSFJVYjFOb1lYQmxRV1owWlhKRWRYQnNhV05oZEdsdmJpaHVaWGRGYkdWdFpXNTBjeXdnWld4bGJXVnVkSE1zSUc5c1pFbGtWRzlFZFhCc2FXTmhkR1ZrU1dRcE8xeHVJQ0FnSUdOdmJuTjBJRzVsZUhSRmJHVnRaVzUwY3lBOUlGdGNiaUFnSUNBZ0lDNHVMblJvYVhNdWMyTmxibVV1WjJWMFJXeGxiV1Z1ZEhOSmJtTnNkV1JwYm1kRVpXeGxkR1ZrS0Nrc1hHNGdJQ0FnSUNBdUxpNXVaWGRGYkdWdFpXNTBjeXhjYmlBZ0lDQmRPMXh1SUNBZ0lHWnBlRUpwYm1ScGJtZHpRV1owWlhKRWRYQnNhV05oZEdsdmJpaHVaWGgwUld4bGJXVnVkSE1zSUdWc1pXMWxiblJ6TENCdmJHUkpaRlJ2UkhWd2JHbGpZWFJsWkVsa0tUdGNibHh1SUNBZ0lHbG1JQ2h2Y0hSekxtWnBiR1Z6S1NCN1hHNGdJQ0FnSUNCMGFHbHpMbVpwYkdWeklEMGdleUF1TGk1MGFHbHpMbVpwYkdWekxDQXVMaTV2Y0hSekxtWnBiR1Z6SUgwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZEdocGN5NXpZMlZ1WlM1eVpYQnNZV05sUVd4c1JXeGxiV1Z1ZEhNb2JtVjRkRVZzWlcxbGJuUnpLVHRjYmlBZ0lDQjBhR2x6TG1ocGMzUnZjbmt1Y21WemRXMWxVbVZqYjNKa2FXNW5LQ2s3WEc0Z0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoY2JpQWdJQ0FnSUhObGJHVmpkRWR5YjNWd2MwWnZjbE5sYkdWamRHVmtSV3hsYldWdWRITW9YRzRnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNBdUxpNTBhR2x6TG5OMFlYUmxMRnh1SUNBZ0lDQWdJQ0FnSUdselRHbGljbUZ5ZVU5d1pXNDZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQWdJSE5sYkdWamRHVmtSV3hsYldWdWRFbGtjem9nYm1WM1JXeGxiV1Z1ZEhNdWNtVmtkV05sS0NodFlYQXNJR1ZzWlcxbGJuUXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnaGFYTkNiM1Z1WkZSdlEyOXVkR0ZwYm1WeUtHVnNaVzFsYm5RcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHMWhjRnRsYkdWdFpXNTBMbWxrWFNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYldGd08xeHVJQ0FnSUNBZ0lDQWdJSDBzSUh0OUlHRnpJR0Z1ZVNrc1hHNGdJQ0FnSUNBZ0lDQWdjMlZzWldOMFpXUkhjbTkxY0Vsa2N6b2dlMzBzWEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJObGJtVXVaMlYwUld4bGJXVnVkSE1vS1N4Y2JpQWdJQ0FnSUNrc1hHNGdJQ0FnSUNBb0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUdsbUlDaHZjSFJ6TG1acGJHVnpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTVoWkdST1pYZEpiV0ZuWlhOVWIwbHRZV2RsUTJGamFHVW9LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FwTzF4dUlDQWdJSFJvYVhNdWMyVnNaV04wVTJoaGNHVlViMjlzS0Z3aWMyVnNaV04wYVc5dVhDSXBPMXh1SUNCOU8xeHVYRzRnSUhCeWFYWmhkR1VnWVdSa1ZHVjRkRVp5YjIxUVlYTjBaU2gwWlhoME9pQmhibmtwSUh0Y2JpQWdJQ0JqYjI1emRDQjdJSGdzSUhrZ2ZTQTlJSFpwWlhkd2IzSjBRMjl2Y21SelZHOVRZMlZ1WlVOdmIzSmtjeWhjYmlBZ0lDQWdJSHNnWTJ4cFpXNTBXRG9nWTNWeWMyOXlXQ3dnWTJ4cFpXNTBXVG9nWTNWeWMyOXlXU0I5TEZ4dUlDQWdJQ0FnZEdocGN5NXpkR0YwWlN4Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWTI5dWMzUWdaV3hsYldWdWRDQTlJRzVsZDFSbGVIUkZiR1Z0Wlc1MEtIdGNiaUFnSUNBZ0lIZ3NYRzRnSUNBZ0lDQjVMRnh1SUNBZ0lDQWdjM1J5YjJ0bFEyOXNiM0k2SUhSb2FYTXVjM1JoZEdVdVkzVnljbVZ1ZEVsMFpXMVRkSEp2YTJWRGIyeHZjaXhjYmlBZ0lDQWdJR0poWTJ0bmNtOTFibVJEYjJ4dmNqb2dkR2hwY3k1emRHRjBaUzVqZFhKeVpXNTBTWFJsYlVKaFkydG5jbTkxYm1SRGIyeHZjaXhjYmlBZ0lDQWdJR1pwYkd4VGRIbHNaVG9nZEdocGN5NXpkR0YwWlM1amRYSnlaVzUwU1hSbGJVWnBiR3hUZEhsc1pTeGNiaUFnSUNBZ0lITjBjbTlyWlZkcFpIUm9PaUIwYUdsekxuTjBZWFJsTG1OMWNuSmxiblJKZEdWdFUzUnliMnRsVjJsa2RHZ3NYRzRnSUNBZ0lDQnpkSEp2YTJWVGRIbHNaVG9nZEdocGN5NXpkR0YwWlM1amRYSnlaVzUwU1hSbGJWTjBjbTlyWlZOMGVXeGxMRnh1SUNBZ0lDQWdjbTkxWjJodVpYTnpPaUIwYUdsekxuTjBZWFJsTG1OMWNuSmxiblJKZEdWdFVtOTFaMmh1WlhOekxGeHVJQ0FnSUNBZ2IzQmhZMmwwZVRvZ2RHaHBjeTV6ZEdGMFpTNWpkWEp5Wlc1MFNYUmxiVTl3WVdOcGRIa3NYRzRnSUNBZ0lDQnpkSEp2YTJWVGFHRnljRzVsYzNNNklIUm9hWE11YzNSaGRHVXVZM1Z5Y21WdWRFbDBaVzFUZEhKdmEyVlRhR0Z5Y0c1bGMzTXNYRzRnSUNBZ0lDQjBaWGgwTEZ4dUlDQWdJQ0FnWm05dWRGTnBlbVU2SUhSb2FYTXVjM1JoZEdVdVkzVnljbVZ1ZEVsMFpXMUdiMjUwVTJsNlpTeGNiaUFnSUNBZ0lHWnZiblJHWVcxcGJIazZJSFJvYVhNdWMzUmhkR1V1WTNWeWNtVnVkRWwwWlcxR2IyNTBSbUZ0YVd4NUxGeHVJQ0FnSUNBZ2RHVjRkRUZzYVdkdU9pQjBhR2x6TG5OMFlYUmxMbU4xY25KbGJuUkpkR1Z0VkdWNGRFRnNhV2R1TEZ4dUlDQWdJQ0FnZG1WeWRHbGpZV3hCYkdsbmJqb2dSRVZHUVZWTVZGOVdSVkpVU1VOQlRGOUJURWxIVGl4Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUhSb2FYTXVjMk5sYm1VdWNtVndiR0ZqWlVGc2JFVnNaVzFsYm5SektGdGNiaUFnSUNBZ0lDNHVMblJvYVhNdWMyTmxibVV1WjJWMFJXeGxiV1Z1ZEhOSmJtTnNkV1JwYm1kRVpXeGxkR1ZrS0Nrc1hHNGdJQ0FnSUNCbGJHVnRaVzUwTEZ4dUlDQWdJRjBwTzF4dUlDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2V5QnpaV3hsWTNSbFpFVnNaVzFsYm5SSlpITTZJSHNnVzJWc1pXMWxiblF1YVdSZE9pQjBjblZsSUgwZ2ZTazdYRzRnSUNBZ2RHaHBjeTVvYVhOMGIzSjVMbkpsYzNWdFpWSmxZMjl5WkdsdVp5Z3BPMXh1SUNCOVhHNWNiaUFnTHk4Z1EyOXNiR0ZpYjNKaGRHbHZibHh1WEc0Z0lITmxkRUZ3Y0ZOMFlYUmxJRDBnS0c5aWFqb2dZVzU1S1NBOVBpQjdYRzRnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2h2WW1vcE8xeHVJQ0I5TzF4dVhHNGdJSEpsYlc5MlpWQnZhVzUwWlhJZ1BTQW9aWFpsYm5RNklGSmxZV04wTGxCdmFXNTBaWEpGZG1WdWREeElWRTFNUld4bGJXVnVkRDRnZkNCUWIybHVkR1Z5UlhabGJuUXBJRDArSUh0Y2JpQWdJQ0JwWmlBb2RHOTFZMmhVYVcxbGIzVjBLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuSmxjMlYwUTI5dWRHVjRkRTFsYm5WVWFXMWxjaWdwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2RsYzNSMWNtVXVjRzlwYm5SbGNuTXVaR1ZzWlhSbEtHVjJaVzUwTG5CdmFXNTBaWEpKWkNrN1hHNGdJSDA3WEc1Y2JpQWdkRzluWjJ4bFRHOWpheUE5SUNncElEMCtJSHRjYmlBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0Nod2NtVjJVM1JoZEdVcElEMCtJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQWdJR1ZzWlcxbGJuUk1iMk5yWldRNklDRndjbVYyVTNSaGRHVXVaV3hsYldWdWRFeHZZMnRsWkN4Y2JpQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEZSNWNHVTZJSEJ5WlhaVGRHRjBaUzVsYkdWdFpXNTBURzlqYTJWa1hHNGdJQ0FnSUNBZ0lDQWdQeUJjSW5ObGJHVmpkR2x2Ymx3aVhHNGdJQ0FnSUNBZ0lDQWdPaUJ3Y21WMlUzUmhkR1V1Wld4bGJXVnVkRlI1Y0dVc1hHNGdJQ0FnSUNCOU8xeHVJQ0FnSUgwcE8xeHVJQ0I5TzF4dVhHNGdJSFJ2WjJkc1pWQmxiazF2WkdVZ1BTQW9LU0E5UGlCN1hHNGdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTZ29jSEpsZGxOMFlYUmxLU0E5UGlCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnSUNCd1pXNU5iMlJsT2lBaGNISmxkbE4wWVhSbExuQmxiazF2WkdVc1hHNGdJQ0FnSUNCOU8xeHVJQ0FnSUgwcE8xeHVJQ0I5TzF4dVhHNGdJSFJ2WjJkc1pWcGxiazF2WkdVZ1BTQW9LU0E5UGlCN1hHNGdJQ0FnZEdocGN5NWhZM1JwYjI1TllXNWhaMlZ5TG1WNFpXTjFkR1ZCWTNScGIyNG9ZV04wYVc5dVZHOW5aMnhsV21WdVRXOWtaU2s3WEc0Z0lIMDdYRzVjYmlBZ2RHOW5aMnhsVTNSaGRITWdQU0FvS1NBOVBpQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxuTjBZWFJsTG5Ob2IzZFRkR0YwY3lrZ2UxeHVJQ0FnSUNBZ2RISmhZMnRGZG1WdWRDaGNJbVJwWVd4dloxd2lMQ0JjSW5OMFlYUnpYQ0lwTzF4dUlDQWdJSDFjYmlBZ0lDQjBhR2x6TG1GamRHbHZiazFoYm1GblpYSXVaWGhsWTNWMFpVRmpkR2x2YmloaFkzUnBiMjVVYjJkbmJHVlRkR0YwY3lrN1hHNGdJSDA3WEc1Y2JpQWdjMk55YjJ4c1ZHOURiMjUwWlc1MElEMGdLRnh1SUNBZ0lIUmhjbWRsZERwY2JpQWdJQ0FnSUh3Z1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SY2JpQWdJQ0FnSUh3Z2NtVmhaRzl1YkhrZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTQTlJSFJvYVhNdWMyTmxibVV1WjJWMFJXeGxiV1Z1ZEhNb0tTeGNiaUFnS1NBOVBpQjdYRzRnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0F1TGk1allXeGpkV3hoZEdWVFkzSnZiR3hEWlc1MFpYSW9YRzRnSUNBZ0lDQWdJRUZ5Y21GNUxtbHpRWEp5WVhrb2RHRnlaMlYwS1NBL0lIUmhjbWRsZENBNklGdDBZWEpuWlhSZExGeHVJQ0FnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMRnh1SUNBZ0lDQWdJQ0IwYUdsekxtTmhiblpoY3l4Y2JpQWdJQ0FnSUNrc1hHNGdJQ0FnZlNrN1hHNGdJSDA3WEc1Y2JpQWdZMnhsWVhKVWIyRnpkQ0E5SUNncElEMCtJSHRjYmlBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0hzZ2RHOWhjM1JOWlhOellXZGxPaUJ1ZFd4c0lIMHBPMXh1SUNCOU8xeHVYRzRnSUhObGRGUnZZWE4wVFdWemMyRm5aU0E5SUNoMGIyRnpkRTFsYzNOaFoyVTZJSE4wY21sdVp5a2dQVDRnZTF4dUlDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2V5QjBiMkZ6ZEUxbGMzTmhaMlVnZlNrN1hHNGdJSDA3WEc1Y2JpQWdjbVZ6ZEc5eVpVWnBiR1ZHY205dFUyaGhjbVVnUFNCaGMzbHVZeUFvS1NBOVBpQjdYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJR052Ym5OMElIZGxZbE5vWVhKbFZHRnlaMlYwUTJGamFHVWdQU0JoZDJGcGRDQmpZV05vWlhNdWIzQmxiaWhjSW5kbFlpMXphR0Z5WlMxMFlYSm5aWFJjSWlrN1hHNWNiaUFnSUNBZ0lHTnZibk4wSUdacGJHVWdQU0JoZDJGcGRDQjNaV0pUYUdGeVpWUmhjbWRsZEVOaFkyaGxMbTFoZEdOb0tGd2ljMmhoY21Wa0xXWnBiR1ZjSWlrN1hHNGdJQ0FnSUNCcFppQW9abWxzWlNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCaWJHOWlJRDBnWVhkaGFYUWdabWxzWlM1aWJHOWlLQ2s3WEc0Z0lDQWdJQ0FnSUhSb2FYTXViRzloWkVacGJHVlViME5oYm5aaGN5aGliRzlpS1R0Y2JpQWdJQ0FnSUNBZ1lYZGhhWFFnZDJWaVUyaGhjbVZVWVhKblpYUkRZV05vWlM1a1pXeGxkR1VvWENKemFHRnlaV1F0Wm1sc1pWd2lLVHRjYmlBZ0lDQWdJQ0FnZDJsdVpHOTNMbWhwYzNSdmNua3VjbVZ3YkdGalpWTjBZWFJsS0c1MWJHd3NJRUZRVUY5T1FVMUZMQ0IzYVc1a2IzY3ViRzlqWVhScGIyNHVjR0YwYUc1aGJXVXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMGdZMkYwWTJnZ0tHVnljbTl5T2lCaGJua3BJSHRjYmlBZ0lDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2V5Qmxjbkp2Y2sxbGMzTmhaMlU2SUdWeWNtOXlMbTFsYzNOaFoyVWdmU2s3WEc0Z0lDQWdmVnh1SUNCOU8xeHVYRzRnSUM4cUtpQmhaR1J6SUhOMWNIQnNhV1ZrSUdacGJHVnpJSFJ2SUdWNGFYTjBhVzVuSUdacGJHVnpJR2x1SUhSb1pTQmhjSEJUZEdGMFpTQXFMMXh1SUNCd2RXSnNhV01nWVdSa1JtbHNaWE02SUVWNFkyRnNhV1J5WVhkSmJYQmxjbUYwYVhabFFWQkpXMXdpWVdSa1JtbHNaWE5jSWwwZ1BTQjNhWFJvUW1GMFkyaGxaRlZ3WkdGMFpYTW9YRzRnSUNBZ0tHWnBiR1Z6S1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCbWFXeGxjMDFoY0NBOUlHWnBiR1Z6TG5KbFpIVmpaU2dvWVdOakxDQm1hV3hsUkdGMFlTa2dQVDRnZTF4dUlDQWdJQ0FnSUNCaFkyTXVjMlYwS0dacGJHVkVZWFJoTG1sa0xDQm1hV3hsUkdGMFlTazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmhZMk03WEc0Z0lDQWdJQ0I5TENCdVpYY2dUV0Z3UEVacGJHVkpaQ3dnUW1sdVlYSjVSbWxzWlVSaGRHRStLQ2twTzF4dVhHNGdJQ0FnSUNCMGFHbHpMbVpwYkdWeklEMGdleUF1TGk1MGFHbHpMbVpwYkdWekxDQXVMaTVQWW1wbFkzUXVabkp2YlVWdWRISnBaWE1vWm1sc1pYTk5ZWEFwSUgwN1hHNWNiaUFnSUNBZ0lIUm9hWE11YzJObGJtVXVaMlYwUld4bGJXVnVkSE1vS1M1bWIzSkZZV05vS0NobGJHVnRaVzUwS1NBOVBpQjdYRzRnSUNBZ0lDQWdJR2xtSUNoY2JpQWdJQ0FnSUNBZ0lDQnBjMGx1YVhScFlXeHBlbVZrU1cxaFoyVkZiR1Z0Wlc1MEtHVnNaVzFsYm5RcElDWW1YRzRnSUNBZ0lDQWdJQ0FnWm1sc1pYTk5ZWEF1YUdGektHVnNaVzFsYm5RdVptbHNaVWxrS1Z4dUlDQWdJQ0FnSUNBcElIdGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxtbHRZV2RsUTJGamFHVXVaR1ZzWlhSbEtHVnNaVzFsYm5RdVptbHNaVWxrS1R0Y2JpQWdJQ0FnSUNBZ0lDQnBiblpoYkdsa1lYUmxVMmhoY0dWR2IzSkZiR1Z0Wlc1MEtHVnNaVzFsYm5RcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSFJvYVhNdWMyTmxibVV1YVc1bWIzSnRUWFYwWVhScGIyNG9LVHRjYmx4dUlDQWdJQ0FnZEdocGN5NWhaR1JPWlhkSmJXRm5aWE5VYjBsdFlXZGxRMkZqYUdVb0tUdGNiaUFnSUNCOUxGeHVJQ0FwTzF4dVhHNGdJSEIxWW14cFl5QjFjR1JoZEdWVFkyVnVaU0E5SUhkcGRHaENZWFJqYUdWa1ZYQmtZWFJsY3loY2JpQWdJQ0E4U3lCbGVIUmxibVJ6SUd0bGVXOW1JRUZ3Y0ZOMFlYUmxQaWh6WTJWdVpVUmhkR0U2SUh0Y2JpQWdJQ0FnSUdWc1pXMWxiblJ6UHpvZ1UyTmxibVZFWVhSaFcxd2laV3hsYldWdWRITmNJbDA3WEc0Z0lDQWdJQ0JoY0hCVGRHRjBaVDg2SUZCcFkyczhRWEJ3VTNSaGRHVXNJRXMrSUh3Z2JuVnNiRHRjYmlBZ0lDQWdJR052Ykd4aFltOXlZWFJ2Y25NL09pQlRZMlZ1WlVSaGRHRmJYQ0pqYjJ4c1lXSnZjbUYwYjNKelhDSmRPMXh1SUNBZ0lDQWdZMjl0YldsMFZHOUlhWE4wYjNKNVB6b2dVMk5sYm1WRVlYUmhXMXdpWTI5dGJXbDBWRzlJYVhOMGIzSjVYQ0pkTzF4dUlDQWdJQ0FnYkdsaWNtRnllVWwwWlcxelB6b2dVMk5sYm1WRVlYUmhXMXdpYkdsaWNtRnllVWwwWlcxelhDSmRPMXh1SUNBZ0lIMHBJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaHpZMlZ1WlVSaGRHRXVZMjl0YldsMFZHOUlhWE4wYjNKNUtTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWFHbHpkRzl5ZVM1eVpYTjFiV1ZTWldOdmNtUnBibWNvS1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2FXWWdLSE5qWlc1bFJHRjBZUzVoY0hCVGRHRjBaU2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLSE5qWlc1bFJHRjBZUzVoY0hCVGRHRjBaU2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdsbUlDaHpZMlZ1WlVSaGRHRXVaV3hsYldWdWRITXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpZMlZ1WlM1eVpYQnNZV05sUVd4c1JXeGxiV1Z1ZEhNb2MyTmxibVZFWVhSaExtVnNaVzFsYm5SektUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdhV1lnS0hOalpXNWxSR0YwWVM1amIyeHNZV0p2Y21GMGIzSnpLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9leUJqYjJ4c1lXSnZjbUYwYjNKek9pQnpZMlZ1WlVSaGRHRXVZMjlzYkdGaWIzSmhkRzl5Y3lCOUtUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdhV1lnS0hOalpXNWxSR0YwWVM1c2FXSnlZWEo1U1hSbGJYTXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXNhV0p5WVhKNUxuTmhkbVZNYVdKeVlYSjVLRnh1SUNBZ0lDQWdJQ0FnSUhKbGMzUnZjbVZNYVdKeVlYSjVTWFJsYlhNb2MyTmxibVZFWVhSaExteHBZbkpoY25sSmRHVnRjeXdnWENKMWJuQjFZbXhwYzJobFpGd2lLU3hjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5TEZ4dUlDQXBPMXh1WEc0Z0lIQnlhWFpoZEdVZ2IyNVRZMlZ1WlZWd1pHRjBaV1FnUFNBb0tTQTlQaUI3WEc0Z0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN2ZTazdYRzRnSUgwN1hHNWNiaUFnY0hKcGRtRjBaU0IxY0dSaGRHVkRkWEp5Wlc1MFEzVnljMjl5VUc5emFYUnBiMjRnUFNCM2FYUm9RbUYwWTJobFpGVndaR0YwWlhNb1hHNGdJQ0FnS0dWMlpXNTBPaUJOYjNWelpVVjJaVzUwS1NBOVBpQjdYRzRnSUNBZ0lDQmpkWEp6YjNKWUlEMGdaWFpsYm5RdVkyeHBaVzUwV0R0Y2JpQWdJQ0FnSUdOMWNuTnZjbGtnUFNCbGRtVnVkQzVqYkdsbGJuUlpPMXh1SUNBZ0lIMHNYRzRnSUNrN1hHNWNiaUFnTHk4Z1NXNXdkWFFnYUdGdVpHeHBibWRjYmx4dUlDQndjbWwyWVhSbElHOXVTMlY1Ukc5M2JpQTlJSGRwZEdoQ1lYUmphR1ZrVlhCa1lYUmxjeWhjYmlBZ0lDQW9aWFpsYm5RNklGSmxZV04wTGt0bGVXSnZZWEprUlhabGJuUWdmQ0JMWlhsaWIyRnlaRVYyWlc1MEtTQTlQaUI3WEc0Z0lDQWdJQ0F2THlCdWIzSnRZV3hwZW1VZ1lHVjJaVzUwTG10bGVXQWdkMmhsYmlCRFlYQnpURzlqYXlCcGN5QndjbVZ6YzJWa0lDTXlNemN5WEc0Z0lDQWdJQ0JwWmlBb1hHNGdJQ0FnSUNBZ0lGd2lVSEp2ZUhsY0lpQnBiaUIzYVc1a2IzY2dKaVpjYmlBZ0lDQWdJQ0FnS0NnaFpYWmxiblF1YzJocFpuUkxaWGtnSmlZZ0wxNWJRUzFhWFNRdkxuUmxjM1FvWlhabGJuUXVhMlY1S1NrZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0FvWlhabGJuUXVjMmhwWm5STFpYa2dKaVlnTDE1YllTMTZYU1F2TG5SbGMzUW9aWFpsYm5RdWEyVjVLU2twWEc0Z0lDQWdJQ0FwSUh0Y2JpQWdJQ0FnSUNBZ1pYWmxiblFnUFNCdVpYY2dVSEp2ZUhrb1pYWmxiblFzSUh0Y2JpQWdJQ0FnSUNBZ0lDQm5aWFFvWlhZNklHRnVlU3dnY0hKdmNDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnZG1Gc2RXVWdQU0JsZGx0d2NtOXdYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdkbUZzZFdVZ1BUMDlJRndpWm5WdVkzUnBiMjVjSWlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5Qm1hWGdnWm05eUlGQnliM2hwWlhNZ2FHbHFZV05yYVc1bklHQjBhR2x6WUZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkbUZzZFdVdVltbHVaQ2hsZGlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NISnZjQ0E5UFQwZ1hDSnJaWGxjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0EvSUM4dklFTmhjSE5NYjJOcklHbHVkbVZ5ZEhNZ1kyRndhWFJoYkdsNllYUnBiMjRnWW1GelpXUWdiMjRnVTJocFpuUkxaWGtzSUhOdklHbHVkbVZ5ZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklHbDBJR0poWTJ0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGRtVnVkQzV6YUdsbWRFdGxlVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRDhnWlhZdWEyVjVMblJ2VlhCd1pYSkRZWE5sS0NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBNklHVjJMbXRsZVM1MGIweHZkMlZ5UTJGelpTZ3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEb2dkbUZzZFdVN1hHNGdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnS0dselYzSnBkR0ZpYkdWRmJHVnRaVzUwS0dWMlpXNTBMblJoY21kbGRDa2dKaVlnWlhabGJuUXVhMlY1SUNFOVBTQkxSVmxUTGtWVFEwRlFSU2tnZkh4Y2JpQWdJQ0FnSUNBZ0x5OGdZMkZ6WlRvZ2RYTnBibWNnWVhKeWIzZHpJSFJ2SUcxdmRtVWdZbVYwZDJWbGJpQmlkWFIwYjI1elhHNGdJQ0FnSUNBZ0lDaHBjMEZ5Y205M1MyVjVLR1YyWlc1MExtdGxlU2tnSmlZZ2FYTkpibkIxZEV4cGEyVW9aWFpsYm5RdWRHRnlaMlYwS1NsY2JpQWdJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2hsZG1WdWRDNXJaWGtnUFQwOUlFdEZXVk11VVZWRlUxUkpUMDVmVFVGU1N5a2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdJQ0J6YUc5M1NHVnNjRVJwWVd4dlp6b2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbUZqZEdsdmJrMWhibUZuWlhJdWFHRnVaR3hsUzJWNVJHOTNiaWhsZG1WdWRDa3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb2RHaHBjeTV6ZEdGMFpTNTJhV1YzVFc5a1pVVnVZV0pzWldRcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnBaaUFvWlhabGJuUmJTMFZaVXk1RFZGSk1YMDlTWDBOTlJGMGdKaVlnZEdocGN5NXpkR0YwWlM1cGMwSnBibVJwYm1kRmJtRmliR1ZrS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZXlCcGMwSnBibVJwYm1kRmJtRmliR1ZrT2lCbVlXeHpaU0I5S1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2FXWWdLR1YyWlc1MExtTnZaR1VnUFQwOUlFTlBSRVZUTGxwRlVrOHBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdJR2x6VEdsaWNtRnllVTl3Wlc0NklDRjBhR2x6TG5OMFlYUmxMbWx6VEdsaWNtRnllVTl3Wlc0Z2ZTazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR2xtSUNocGMwRnljbTkzUzJWNUtHVjJaVzUwTG10bGVTa3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjM1JsY0NBOVhHNGdJQ0FnSUNBZ0lDQWdLSFJvYVhNdWMzUmhkR1V1WjNKcFpGTnBlbVVnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ2hsZG1WdWRDNXphR2xtZEV0bGVWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBL0lFVk1SVTFGVGxSZlZGSkJUbE5NUVZSRlgwRk5UMVZPVkZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0E2SUhSb2FYTXVjM1JoZEdVdVozSnBaRk5wZW1VcEtTQjhmRnh1SUNBZ0lDQWdJQ0FnSUNobGRtVnVkQzV6YUdsbWRFdGxlVnh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QkZURVZOUlU1VVgxTklTVVpVWDFSU1FVNVRURUZVUlY5QlRVOVZUbFJjYmlBZ0lDQWdJQ0FnSUNBZ0lEb2dSVXhGVFVWT1ZGOVVVa0ZPVTB4QlZFVmZRVTFQVlU1VUtUdGNibHh1SUNBZ0lDQWdJQ0JqYjI1emRDQnpaV3hsWTNSbFpFVnNaVzFsYm5SeklEMGdaMlYwVTJWc1pXTjBaV1JGYkdWdFpXNTBjeWhjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbk5qWlc1bExtZGxkRVZzWlcxbGJuUnpLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV6ZEdGMFpTeGNiaUFnSUNBZ0lDQWdJQ0IwY25WbExGeHVJQ0FnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0FnSUd4bGRDQnZabVp6WlhSWUlEMGdNRHRjYmlBZ0lDQWdJQ0FnYkdWMElHOW1abk5sZEZrZ1BTQXdPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaGxkbVZ1ZEM1clpYa2dQVDA5SUV0RldWTXVRVkpTVDFkZlRFVkdWQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHOW1abk5sZEZnZ1BTQXRjM1JsY0R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaGxkbVZ1ZEM1clpYa2dQVDA5SUV0RldWTXVRVkpTVDFkZlVrbEhTRlFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnZabVp6WlhSWUlEMGdjM1JsY0R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaGxkbVZ1ZEM1clpYa2dQVDA5SUV0RldWTXVRVkpTVDFkZlZWQXBJSHRjYmlBZ0lDQWdJQ0FnSUNCdlptWnpaWFJaSUQwZ0xYTjBaWEE3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0JwWmlBb1pYWmxiblF1YTJWNUlEMDlQU0JMUlZsVExrRlNVazlYWDBSUFYwNHBJSHRjYmlBZ0lDQWdJQ0FnSUNCdlptWnpaWFJaSUQwZ2MzUmxjRHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lITmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNdVptOXlSV0ZqYUNnb1pXeGxiV1Z1ZENrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUcxMWRHRjBaVVZzWlcxbGJuUW9aV3hsYldWdWRDd2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2VEb2daV3hsYldWdWRDNTRJQ3NnYjJabWMyVjBXQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIazZJR1ZzWlcxbGJuUXVlU0FySUc5bVpuTmxkRmtzWEc0Z0lDQWdJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJQ0FnSUNCMWNHUmhkR1ZDYjNWdVpFVnNaVzFsYm5SektHVnNaVzFsYm5Rc0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhOcGJYVnNkR0Z1Wlc5MWMyeDVWWEJrWVhSbFpEb2djMlZzWldOMFpXUkZiR1Z0Wlc1MGN5eGNiaUFnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJQ0FnZEdocGN5NXRZWGxpWlZOMVoyZGxjM1JDYVc1a2FXNW5SbTl5UVd4c0tITmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNcE8xeHVYRzRnSUNBZ0lDQWdJR1YyWlc1MExuQnlaWFpsYm5SRVpXWmhkV3gwS0NrN1hHNGdJQ0FnSUNCOUlHVnNjMlVnYVdZZ0tHVjJaVzUwTG10bGVTQTlQVDBnUzBWWlV5NUZUbFJGVWlrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCelpXeGxZM1JsWkVWc1pXMWxiblJ6SUQwZ1oyVjBVMlZzWldOMFpXUkZiR1Z0Wlc1MGN5aGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxuTmpaVzVsTG1kbGRFVnNaVzFsYm5SektDa3NYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NXpkR0YwWlN4Y2JpQWdJQ0FnSUNBZ0tUdGNibHh1SUNBZ0lDQWdJQ0JwWmlBb1hHNGdJQ0FnSUNBZ0lDQWdjMlZzWldOMFpXUkZiR1Z0Wlc1MGN5NXNaVzVuZEdnZ1BUMDlJREVnSmlaY2JpQWdJQ0FnSUNBZ0lDQnBjMHhwYm1WaGNrVnNaVzFsYm5Rb2MyVnNaV04wWldSRmJHVnRaVzUwYzFzd1hTbGNiaUFnSUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lYUm9hWE11YzNSaGRHVXVaV1JwZEdsdVoweHBibVZoY2tWc1pXMWxiblFnZkh4Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMzUmhkR1V1WldScGRHbHVaMHhwYm1WaGNrVnNaVzFsYm5RdVpXeGxiV1Z1ZEVsa0lDRTlQU0J6Wld4bFkzUmxaRVZzWlcxbGJuUnpXekJkTG1sa1hHNGdJQ0FnSUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1ocGMzUnZjbmt1Y21WemRXMWxVbVZqYjNKa2FXNW5LQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWldScGRHbHVaMHhwYm1WaGNrVnNaVzFsYm5RNklHNWxkeUJNYVc1bFlYSkZiR1Z0Wlc1MFJXUnBkRzl5S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhObGJHVmpkR1ZrUld4bGJXVnVkSE5iTUYwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WTJWdVpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoY2JpQWdJQ0FnSUNBZ0lDQnpaV3hsWTNSbFpFVnNaVzFsYm5SekxteGxibWQwYUNBOVBUMGdNU0FtSmx4dUlDQWdJQ0FnSUNBZ0lDRnBjMHhwYm1WaGNrVnNaVzFsYm5Rb2MyVnNaV04wWldSRmJHVnRaVzUwYzFzd1hTbGNiaUFnSUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzJWc1pXTjBaV1JGYkdWdFpXNTBJRDBnYzJWc1pXTjBaV1JGYkdWdFpXNTBjMXN3WFR0Y2JseHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMzUmhjblJVWlhoMFJXUnBkR2x1WnloN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6WTJWdVpWZzZJSE5sYkdWamRHVmtSV3hsYldWdWRDNTRJQ3NnYzJWc1pXTjBaV1JGYkdWdFpXNTBMbmRwWkhSb0lDOGdNaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lITmpaVzVsV1RvZ2MyVnNaV04wWldSRmJHVnRaVzUwTG5rZ0t5QnpaV3hsWTNSbFpFVnNaVzFsYm5RdWFHVnBaMmgwSUM4Z01peGNiaUFnSUNBZ0lDQWdJQ0FnSUhOb2IzVnNaRUpwYm1RNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnWlhabGJuUXVjSEpsZG1WdWRFUmxabUYxYkhRb0tUdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBnWld4elpTQnBaaUFvWEc0Z0lDQWdJQ0FnSUNGbGRtVnVkQzVqZEhKc1MyVjVJQ1ltWEc0Z0lDQWdJQ0FnSUNGbGRtVnVkQzVoYkhSTFpYa2dKaVpjYmlBZ0lDQWdJQ0FnSVdWMlpXNTBMbTFsZEdGTFpYa2dKaVpjYmlBZ0lDQWdJQ0FnZEdocGN5NXpkR0YwWlM1a2NtRm5aMmx1WjBWc1pXMWxiblFnUFQwOUlHNTFiR3hjYmlBZ0lDQWdJQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6YUdGd1pTQTlJR1pwYm1SVGFHRndaVUo1UzJWNUtHVjJaVzUwTG10bGVTazdYRzRnSUNBZ0lDQWdJR2xtSUNoemFHRndaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11YzJWc1pXTjBVMmhoY0dWVWIyOXNLSE5vWVhCbEtUdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2hsZG1WdWRDNXJaWGtnUFQwOUlFdEZXVk11VVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdWRHOW5aMnhsVEc5amF5Z3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JwWmlBb1pYWmxiblF1YTJWNUlEMDlQU0JMUlZsVExsTlFRVU5GSUNZbUlHZGxjM1IxY21VdWNHOXBiblJsY25NdWMybDZaU0E5UFQwZ01Da2dlMXh1SUNBZ0lDQWdJQ0JwYzBodmJHUnBibWRUY0dGalpTQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lITmxkRU4xY25OdmNpaDBhR2x6TG1OaGJuWmhjeXdnUTFWU1UwOVNYMVJaVUVVdVIxSkJRa0pKVGtjcE8xeHVJQ0FnSUNBZ0lDQmxkbVZ1ZEM1d2NtVjJaVzUwUkdWbVlYVnNkQ2dwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCcFppQW9aWFpsYm5RdWEyVjVJRDA5UFNCTFJWbFRMa2NnZkh3Z1pYWmxiblF1YTJWNUlEMDlQU0JMUlZsVExsTXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjMlZzWldOMFpXUkZiR1Z0Wlc1MGN5QTlJR2RsZEZObGJHVmpkR1ZrUld4bGJXVnVkSE1vWEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WTJWdVpTNW5aWFJGYkdWdFpXNTBjeWdwTEZ4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11YzNSaGRHVXNYRzRnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxuTjBZWFJsTG1Wc1pXMWxiblJVZVhCbElEMDlQU0JjSW5ObGJHVmpkR2x2Ymx3aUlDWW1YRzRnSUNBZ0lDQWdJQ0FnSVhObGJHVmpkR1ZrUld4bGJXVnVkSE11YkdWdVozUm9YRzRnSUNBZ0lDQWdJQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJR2xtSUNoY2JpQWdJQ0FnSUNBZ0lDQmxkbVZ1ZEM1clpYa2dQVDA5SUV0RldWTXVSeUFtSmx4dUlDQWdJQ0FnSUNBZ0lDaG9ZWE5DWVdOclozSnZkVzVrS0hSb2FYTXVjM1JoZEdVdVpXeGxiV1Z1ZEZSNWNHVXBJSHg4WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpaV3hsWTNSbFpFVnNaVzFsYm5SekxuTnZiV1VvS0dWc1pXMWxiblFwSUQwK0lHaGhjMEpoWTJ0bmNtOTFibVFvWld4bGJXVnVkQzUwZVhCbEtTa3BYRzRnSUNBZ0lDQWdJQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZXlCdmNHVnVVRzl3ZFhBNklGd2lZbUZqYTJkeWIzVnVaRU52Ykc5eVVHbGphMlZ5WENJZ2ZTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tHVjJaVzUwTG10bGVTQTlQVDBnUzBWWlV5NVRLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3SUc5d1pXNVFiM0IxY0RvZ1hDSnpkSEp2YTJWRGIyeHZjbEJwWTJ0bGNsd2lJSDBwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnZlN4Y2JpQWdLVHRjYmx4dUlDQndjbWwyWVhSbElHOXVTMlY1VlhBZ1BTQjNhWFJvUW1GMFkyaGxaRlZ3WkdGMFpYTW9LR1YyWlc1ME9pQkxaWGxpYjJGeVpFVjJaVzUwS1NBOVBpQjdYRzRnSUNBZ2FXWWdLR1YyWlc1MExtdGxlU0E5UFQwZ1MwVlpVeTVUVUVGRFJTa2dlMXh1SUNBZ0lDQWdhV1lnS0hSb2FYTXVjM1JoZEdVdWRtbGxkMDF2WkdWRmJtRmliR1ZrS1NCN1hHNGdJQ0FnSUNBZ0lITmxkRU4xY25OdmNpaDBhR2x6TG1OaGJuWmhjeXdnUTFWU1UwOVNYMVJaVUVVdVIxSkJRaWs3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0hSb2FYTXVjM1JoZEdVdVpXeGxiV1Z1ZEZSNWNHVWdQVDA5SUZ3aWMyVnNaV04wYVc5dVhDSXBJSHRjYmlBZ0lDQWdJQ0FnY21WelpYUkRkWEp6YjNJb2RHaHBjeTVqWVc1MllYTXBPMXh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdjMlYwUTNWeWMyOXlSbTl5VTJoaGNHVW9kR2hwY3k1allXNTJZWE1zSUhSb2FYTXVjM1JoZEdVdVpXeGxiV1Z1ZEZSNWNHVXBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdJQ0J6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE02SUh0OUxGeHVJQ0FnSUNBZ0lDQWdJSE5sYkdWamRHVmtSM0p2ZFhCSlpITTZJSHQ5TEZ4dUlDQWdJQ0FnSUNBZ0lHVmthWFJwYm1kSGNtOTFjRWxrT2lCdWRXeHNMRnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdselNHOXNaR2x1WjFOd1lXTmxJRDBnWm1Gc2MyVTdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDZ2haWFpsYm5SYlMwVlpVeTVEVkZKTVgwOVNYME5OUkYwZ0ppWWdJWFJvYVhNdWMzUmhkR1V1YVhOQ2FXNWthVzVuUlc1aFlteGxaQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdJR2x6UW1sdVpHbHVaMFZ1WVdKc1pXUTZJSFJ5ZFdVZ2ZTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHBjMEZ5Y205M1MyVjVLR1YyWlc1MExtdGxlU2twSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE5sYkdWamRHVmtSV3hsYldWdWRITWdQU0JuWlhSVFpXeGxZM1JsWkVWc1pXMWxiblJ6S0Z4dUlDQWdJQ0FnSUNCMGFHbHpMbk5qWlc1bExtZGxkRVZzWlcxbGJuUnpLQ2tzWEc0Z0lDQWdJQ0FnSUhSb2FYTXVjM1JoZEdVc1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2FYTkNhVzVrYVc1blJXNWhZbXhsWkNoMGFHbHpMbk4wWVhSbEtWeHVJQ0FnSUNBZ0lDQS9JR0pwYm1SUGNsVnVZbWx1WkZObGJHVmpkR1ZrUld4bGJXVnVkSE1vYzJWc1pXTjBaV1JGYkdWdFpXNTBjeWxjYmlBZ0lDQWdJQ0FnT2lCMWJtSnBibVJNYVc1bFlYSkZiR1Z0Wlc1MGN5aHpaV3hsWTNSbFpFVnNaVzFsYm5SektUdGNiaUFnSUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZXlCemRXZG5aWE4wWldSQ2FXNWthVzVuY3pvZ1cxMGdmU2s3WEc0Z0lDQWdmVnh1SUNCOUtUdGNibHh1SUNCd2NtbDJZWFJsSUhObGJHVmpkRk5vWVhCbFZHOXZiQ2hsYkdWdFpXNTBWSGx3WlRvZ1FYQndVM1JoZEdWYlhDSmxiR1Z0Wlc1MFZIbHdaVndpWFNrZ2UxeHVJQ0FnSUdsbUlDZ2hhWE5JYjJ4a2FXNW5VM0JoWTJVcElIdGNiaUFnSUNBZ0lITmxkRU4xY25OdmNrWnZjbE5vWVhCbEtIUm9hWE11WTJGdWRtRnpMQ0JsYkdWdFpXNTBWSGx3WlNrN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNocGMxUnZiMnhKWTI5dUtHUnZZM1Z0Wlc1MExtRmpkR2wyWlVWc1pXMWxiblFwS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbVp2WTNWelEyOXVkR0ZwYm1WeUtDazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDZ2hhWE5NYVc1bFlYSkZiR1Z0Wlc1MFZIbHdaU2hsYkdWdFpXNTBWSGx3WlNrcElIdGNiaUFnSUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZXlCemRXZG5aWE4wWldSQ2FXNWthVzVuY3pvZ1cxMGdmU2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hsYkdWdFpXNTBWSGx3WlNBOVBUMGdYQ0pwYldGblpWd2lLU0I3WEc0Z0lDQWdJQ0IwYUdsekxtOXVTVzFoWjJWQlkzUnBiMjRvS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0dWc1pXMWxiblJVZVhCbElDRTlQU0JjSW5ObGJHVmpkR2x2Ymx3aUtTQjdYRzRnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0h0Y2JpQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEZSNWNHVXNYRzRnSUNBZ0lDQWdJSE5sYkdWamRHVmtSV3hsYldWdWRFbGtjem9nZTMwc1hHNGdJQ0FnSUNBZ0lITmxiR1ZqZEdWa1IzSnZkWEJKWkhNNklIdDlMRnh1SUNBZ0lDQWdJQ0JsWkdsMGFXNW5SM0p2ZFhCSlpEb2diblZzYkN4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIc2daV3hsYldWdWRGUjVjR1VnZlNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCdmJrZGxjM1IxY21WVGRHRnlkQ0E5SUhkcGRHaENZWFJqYUdWa1ZYQmtZWFJsY3lnb1pYWmxiblE2SUVkbGMzUjFjbVZGZG1WdWRDa2dQVDRnZTF4dUlDQWdJR1YyWlc1MExuQnlaWFpsYm5SRVpXWmhkV3gwS0NrN1hHNGdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQnpaV3hsWTNSbFpFVnNaVzFsYm5SSlpITTZJSHQ5TEZ4dUlDQWdJSDBwTzF4dUlDQWdJR2RsYzNSMWNtVXVhVzVwZEdsaGJGTmpZV3hsSUQwZ2RHaHBjeTV6ZEdGMFpTNTZiMjl0TG5aaGJIVmxPMXh1SUNCOUtUdGNibHh1SUNCd2NtbDJZWFJsSUc5dVIyVnpkSFZ5WlVOb1lXNW5aU0E5SUhkcGRHaENZWFJqYUdWa1ZYQmtZWFJsY3lnb1pYWmxiblE2SUVkbGMzUjFjbVZGZG1WdWRDa2dQVDRnZTF4dUlDQWdJR1YyWlc1MExuQnlaWFpsYm5SRVpXWmhkV3gwS0NrN1hHNWNiaUFnSUNBdkx5QnZia2RsYzNSMWNtVkRhR0Z1WjJVZ2IyNXNlU0JvWVhNZ2VtOXZiU0JtWVdOMGIzSWdZblYwSUc1dmRDQjBhR1VnWTJWdWRHVnlMbHh1SUNBZ0lDOHZJRWxtSUhkbEozSmxJRzl1SUdsUVlXUWdiM0lnYVZCb2IyNWxMQ0IwYUdWdUlIZGxJSEpsWTI5bmJtbDZaU0J0ZFd4MGFTMTBiM1ZqYUNCaGJtUWdkMmxzYkZ4dUlDQWdJQzh2SUhwdmIyMGdhVzRnWVhRZ2RHaGxJSEpwWjJoMElHeHZZMkYwYVc5dUlHOXVJSFJvWlNCMGIzVmphRTF2ZG1VZ2FHRnVaR3hsY2lCaGJISmxZV1I1TGx4dUlDQWdJQzh2SUU5dUlFMWhZMkp2YjJzc0lIZGxJR1J2YmlkMElHaGhkbVVnZEdodmMyVWdaWFpsYm5SeklITnZJSGRwYkd3Z2VtOXZiU0JwYmlCaGRDQjBhR1ZjYmlBZ0lDQXZMeUJqZFhKeVpXNTBJR3h2WTJGMGFXOXVJR2x1YzNSbFlXUXVYRzRnSUNBZ2FXWWdLR2RsYzNSMWNtVXVjRzlwYm5SbGNuTXVjMmw2WlNBK1BTQXlLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYVc1cGRHbGhiRk5qWVd4bElEMGdaMlZ6ZEhWeVpTNXBibWwwYVdGc1UyTmhiR1U3WEc0Z0lDQWdhV1lnS0dsdWFYUnBZV3hUWTJGc1pTa2dlMXh1SUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNnb2MzUmhkR1VwSUQwK0lDaDdYRzRnSUNBZ0lDQWdJQzR1TG1kbGRGTjBZWFJsUm05eVdtOXZiU2hjYmlBZ0lDQWdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyYVdWM2NHOXlkRmc2SUdOMWNuTnZjbGdzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjJhV1YzY0c5eWRGazZJR04xY25OdmNsa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCdVpYaDBXbTl2YlRvZ1oyVjBUbTl5YldGc2FYcGxaRnB2YjIwb2FXNXBkR2xoYkZOallXeGxJQ29nWlhabGJuUXVjMk5oYkdVcExGeHVJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ2MzUmhkR1VzWEc0Z0lDQWdJQ0FnSUNrc1hHNGdJQ0FnSUNCOUtTazdYRzRnSUNBZ2ZWeHVJQ0I5S1R0Y2JseHVJQ0J3Y21sMllYUmxJRzl1UjJWemRIVnlaVVZ1WkNBOUlIZHBkR2hDWVhSamFHVmtWWEJrWVhSbGN5Z29aWFpsYm5RNklFZGxjM1IxY21WRmRtVnVkQ2tnUFQ0Z2UxeHVJQ0FnSUdWMlpXNTBMbkJ5WlhabGJuUkVaV1poZFd4MEtDazdYRzRnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0J3Y21WMmFXOTFjMU5sYkdWamRHVmtSV3hsYldWdWRFbGtjem9nZTMwc1hHNGdJQ0FnSUNCelpXeGxZM1JsWkVWc1pXMWxiblJKWkhNNklIUm9hWE11YzNSaGRHVXVjSEpsZG1sdmRYTlRaV3hsWTNSbFpFVnNaVzFsYm5SSlpITXNYRzRnSUNBZ2ZTazdYRzRnSUNBZ1oyVnpkSFZ5WlM1cGJtbDBhV0ZzVTJOaGJHVWdQU0J1ZFd4c08xeHVJQ0I5S1R0Y2JseHVJQ0J3Y21sMllYUmxJR2hoYm1Sc1pWUmxlSFJYZVhOcGQzbG5LRnh1SUNBZ0lHVnNaVzFsYm5RNklFVjRZMkZzYVdSeVlYZFVaWGgwUld4bGJXVnVkQ3hjYmlBZ0lDQjdYRzRnSUNBZ0lDQnBjMFY0YVhOMGFXNW5SV3hsYldWdWRDQTlJR1poYkhObExGeHVJQ0FnSUgwNklIdGNiaUFnSUNBZ0lHbHpSWGhwYzNScGJtZEZiR1Z0Wlc1MFB6b2dZbTl2YkdWaGJqdGNiaUFnSUNCOUxGeHVJQ0FwSUh0Y2JpQWdJQ0JqYjI1emRDQjFjR1JoZEdWRmJHVnRaVzUwSUQwZ0tGeHVJQ0FnSUNBZ2RHVjRkRG9nYzNSeWFXNW5MRnh1SUNBZ0lDQWdiM0pwWjJsdVlXeFVaWGgwT2lCemRISnBibWNzWEc0Z0lDQWdJQ0JwYzBSbGJHVjBaV1E2SUdKdmIyeGxZVzRzWEc0Z0lDQWdLU0E5UGlCN1hHNGdJQ0FnSUNCMGFHbHpMbk5qWlc1bExuSmxjR3hoWTJWQmJHeEZiR1Z0Wlc1MGN5aGJYRzRnSUNBZ0lDQWdJQzR1TG5Sb2FYTXVjMk5sYm1VdVoyVjBSV3hsYldWdWRITkpibU5zZFdScGJtZEVaV3hsZEdWa0tDa3ViV0Z3S0NoZlpXeGxiV1Z1ZENrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaGZaV3hsYldWdWRDNXBaQ0E5UFQwZ1pXeGxiV1Z1ZEM1cFpDQW1KaUJwYzFSbGVIUkZiR1Z0Wlc1MEtGOWxiR1Z0Wlc1MEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhWd1pHRjBaVlJsZUhSRmJHVnRaVzUwS0Y5bGJHVnRaVzUwTENCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhSbGVIUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHbHpSR1ZzWlhSbFpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2IzSnBaMmx1WVd4VVpYaDBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCZlpXeGxiV1Z1ZER0Y2JpQWdJQ0FnSUNBZ2ZTa3NYRzRnSUNBZ0lDQmRLVHRjYmlBZ0lDQjlPMXh1WEc0Z0lDQWdkR1Y0ZEZkNWMybDNlV2NvZTF4dUlDQWdJQ0FnYVdRNklHVnNaVzFsYm5RdWFXUXNYRzRnSUNBZ0lDQmpZVzUyWVhNNklIUm9hWE11WTJGdWRtRnpMRnh1SUNBZ0lDQWdaMlYwVm1sbGQzQnZjblJEYjI5eVpITTZJQ2g0TENCNUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSHNnZURvZ2RtbGxkM0J2Y25SWUxDQjVPaUIyYVdWM2NHOXlkRmtnZlNBOUlITmpaVzVsUTI5dmNtUnpWRzlXYVdWM2NHOXlkRU52YjNKa2N5aGNiaUFnSUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpZMlZ1WlZnNklIZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNCelkyVnVaVms2SUhrc1hHNGdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbk4wWVhSbExGeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdXMXh1SUNBZ0lDQWdJQ0FnSUhacFpYZHdiM0owV0NBdElIUm9hWE11YzNSaGRHVXViMlptYzJWMFRHVm1kQ3hjYmlBZ0lDQWdJQ0FnSUNCMmFXVjNjRzl5ZEZrZ0xTQjBhR2x6TG5OMFlYUmxMbTltWm5ObGRGUnZjQ3hjYmlBZ0lDQWdJQ0FnWFR0Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCdmJrTm9ZVzVuWlRvZ2QybDBhRUpoZEdOb1pXUlZjR1JoZEdWektDaDBaWGgwS1NBOVBpQjdYRzRnSUNBZ0lDQWdJSFZ3WkdGMFpVVnNaVzFsYm5Rb2RHVjRkQ3dnZEdWNGRDd2dabUZzYzJVcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYVhOT2IyNUVaV3hsZEdWa1JXeGxiV1Z1ZENobGJHVnRaVzUwS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFZ3WkdGMFpVSnZkVzVrUld4bGJXVnVkSE1vWld4bGJXVnVkQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwcExGeHVJQ0FnSUNBZ2IyNVRkV0p0YVhRNklIZHBkR2hDWVhSamFHVmtWWEJrWVhSbGN5Z29leUIwWlhoMExDQjJhV0ZMWlhsaWIyRnlaQ3dnYjNKcFoybHVZV3hVWlhoMElIMHBJRDArSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYVhORVpXeGxkR1ZrSUQwZ0lYUmxlSFF1ZEhKcGJTZ3BPMXh1SUNBZ0lDQWdJQ0IxY0dSaGRHVkZiR1Z0Wlc1MEtIUmxlSFFzSUc5eWFXZHBibUZzVkdWNGRDd2dhWE5FWld4bGRHVmtLVHRjYmlBZ0lDQWdJQ0FnTHk4Z2MyVnNaV04wSUhSb1pTQmpjbVZoZEdWa0lIUmxlSFFnWld4bGJXVnVkQ0J2Ym14NUlHbG1JSE4xWW0xcGRIUnBibWNnZG1saElHdGxlV0p2WVhKa1hHNGdJQ0FnSUNBZ0lDOHZJQ2gzYUdWdUlITjFZbTFwZEhScGJtY2dkbWxoSUdOc2FXTnJJR2wwSUhOb2IzVnNaQ0JoWTNRZ1lYTWdjMmxuYm1Gc0lIUnZJR1JsYzJWc1pXTjBLVnh1SUNBZ0lDQWdJQ0JwWmlBb0lXbHpSR1ZzWlhSbFpDQW1KaUIyYVdGTFpYbGliMkZ5WkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHVnNaVzFsYm5SSlpGUnZVMlZzWldOMElEMGdaV3hsYldWdWRDNWpiMjUwWVdsdVpYSkpaRnh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QmxiR1Z0Wlc1MExtTnZiblJoYVc1bGNrbGtYRzRnSUNBZ0lDQWdJQ0FnSUNBNklHVnNaVzFsYm5RdWFXUTdYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTZ29jSEpsZGxOMFlYUmxLU0E5UGlBb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYzJWc1pXTjBaV1JGYkdWdFpXNTBTV1J6T2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUM0dUxuQnlaWFpUZEdGMFpTNXpaV3hsWTNSbFpFVnNaVzFsYm5SSlpITXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lGdGxiR1Z0Wlc1MFNXUlViMU5sYkdWamRGMDZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lIMHBLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9hWE5FWld4bGRHVmtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1ptbDRRbWx1WkdsdVozTkJablJsY2tSbGJHVjBhVzl1S0hSb2FYTXVjMk5sYm1VdVoyVjBSV3hsYldWdWRITW9LU3dnVzJWc1pXMWxiblJkS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnBaaUFvSVdselJHVnNaWFJsWkNCOGZDQnBjMFY0YVhOMGFXNW5SV3hsYldWdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVhR2x6ZEc5eWVTNXlaWE4xYldWU1pXTnZjbVJwYm1jb0tUdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9lMXh1SUNBZ0lDQWdJQ0FnSUdSeVlXZG5hVzVuUld4bGJXVnVkRG9nYm5Wc2JDeGNiaUFnSUNBZ0lDQWdJQ0JsWkdsMGFXNW5SV3hsYldWdWREb2diblZzYkN4Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbk4wWVhSbExtVnNaVzFsYm5STWIyTnJaV1FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnpaWFJEZFhKemIzSkdiM0pUYUdGd1pTaDBhR2x6TG1OaGJuWmhjeXdnZEdocGN5NXpkR0YwWlM1bGJHVnRaVzUwVkhsd1pTazdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCMGFHbHpMbVp2WTNWelEyOXVkR0ZwYm1WeUtDazdYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJR1ZzWlcxbGJuUXNYRzRnSUNBZ0lDQmxlR05oYkdsa2NtRjNRMjl1ZEdGcGJtVnlPaUIwYUdsekxtVjRZMkZzYVdSeVlYZERiMjUwWVdsdVpYSlNaV1l1WTNWeWNtVnVkQ3hjYmlBZ0lDQWdJR0Z3Y0RvZ2RHaHBjeXhjYmlBZ0lDQjlLVHRjYmlBZ0lDQXZMeUJrWlhObGJHVmpkQ0JoYkd3Z2IzUm9aWElnWld4bGJXVnVkSE1nZDJobGJpQnBibk5sY25ScGJtY2dkR1Y0ZEZ4dUlDQWdJSFJvYVhNdVpHVnpaV3hsWTNSRmJHVnRaVzUwY3lncE8xeHVYRzRnSUNBZ0x5OGdaRzhnWVc0Z2FXNXBkR2xoYkNCMWNHUmhkR1VnZEc4Z2NtVXRhVzVwZEdsaGJHbDZaU0JsYkdWdFpXNTBJSEJ2YzJsMGFXOXVJSE5wYm1ObElIZGxJSGRsY21WY2JpQWdJQ0F2THlCdGIyUnBabmxwYm1jZ1pXeGxiV1Z1ZENkeklIZ3ZlU0JtYjNJZ2MyRnJaU0J2WmlCbFpHbDBiM0lnS0dOaGMyVTZJSE41Ym1OcGJtY2dkRzhnY21WdGIzUmxLVnh1SUNBZ0lIVndaR0YwWlVWc1pXMWxiblFvWld4bGJXVnVkQzUwWlhoMExDQmxiR1Z0Wlc1MExtOXlhV2RwYm1Gc1ZHVjRkQ3dnWm1Gc2MyVXBPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JrWlhObGJHVmpkRVZzWlcxbGJuUnpLQ2tnZTF4dUlDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2UxeHVJQ0FnSUNBZ2MyVnNaV04wWldSRmJHVnRaVzUwU1dSek9pQjdmU3hjYmlBZ0lDQWdJSE5sYkdWamRHVmtSM0p2ZFhCSlpITTZJSHQ5TEZ4dUlDQWdJQ0FnWldScGRHbHVaMGR5YjNWd1NXUTZJRzUxYkd3c1hHNGdJQ0FnZlNrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHZGxkRlJsZUhSRmJHVnRaVzUwUVhSUWIzTnBkR2x2YmloY2JpQWdJQ0I0T2lCdWRXMWlaWElzWEc0Z0lDQWdlVG9nYm5WdFltVnlMRnh1SUNBcE9pQk9iMjVFWld4bGRHVmtQRVY0WTJGc2FXUnlZWGRVWlhoMFJXeGxiV1Z1ZEQ0Z2ZDQnVkV3hzSUh0Y2JpQWdJQ0JqYjI1emRDQmxiR1Z0Wlc1MElEMGdkR2hwY3k1blpYUkZiR1Z0Wlc1MFFYUlFiM05wZEdsdmJpaDRMQ0I1TENCN1hHNGdJQ0FnSUNCcGJtTnNkV1JsUW05MWJtUlVaWGgwUld4bGJXVnVkRG9nZEhKMVpTeGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lHbG1JQ2hsYkdWdFpXNTBJQ1ltSUdselZHVjRkRVZzWlcxbGJuUW9aV3hsYldWdWRDa2dKaVlnSVdWc1pXMWxiblF1YVhORVpXeGxkR1ZrS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWld4bGJXVnVkRHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR2RsZEVWc1pXMWxiblJCZEZCdmMybDBhVzl1S0Z4dUlDQWdJSGc2SUc1MWJXSmxjaXhjYmlBZ0lDQjVPaUJ1ZFcxaVpYSXNYRzRnSUNBZ2IzQjBjejg2SUh0Y2JpQWdJQ0FnSUM4cUtpQnBaaUIwY25WbExDQnlaWFIxY201eklIUm9aU0JtYVhKemRDQnpaV3hsWTNSbFpDQmxiR1Z0Wlc1MElDaDNhWFJvSUdocFoyaGxjM1FnZWkxcGJtUmxlQ2xjYmlBZ0lDQWdJQ0FnYjJZZ1lXeHNJR2hwZENCbGJHVnRaVzUwY3lBcUwxeHVJQ0FnSUNBZ2NISmxabVZ5VTJWc1pXTjBaV1EvT2lCaWIyOXNaV0Z1TzF4dUlDQWdJQ0FnYVc1amJIVmtaVUp2ZFc1a1ZHVjRkRVZzWlcxbGJuUS9PaUJpYjI5c1pXRnVPMXh1SUNBZ0lIMHNYRzRnSUNrNklFNXZia1JsYkdWMFpXUThSWGhqWVd4cFpISmhkMFZzWlcxbGJuUStJSHdnYm5Wc2JDQjdYRzRnSUNBZ1kyOXVjM1FnWVd4c1NHbDBSV3hsYldWdWRITWdQU0IwYUdsekxtZGxkRVZzWlcxbGJuUnpRWFJRYjNOcGRHbHZiaWhjYmlBZ0lDQWdJSGdzWEc0Z0lDQWdJQ0I1TEZ4dUlDQWdJQ0FnYjNCMGN6OHVhVzVqYkhWa1pVSnZkVzVrVkdWNGRFVnNaVzFsYm5Rc1hHNGdJQ0FnS1R0Y2JpQWdJQ0JwWmlBb1lXeHNTR2wwUld4bGJXVnVkSE11YkdWdVozUm9JRDRnTVNrZ2UxeHVJQ0FnSUNBZ2FXWWdLRzl3ZEhNL0xuQnlaV1psY2xObGJHVmpkR1ZrS1NCN1hHNGdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHbHVaR1Y0SUQwZ1lXeHNTR2wwUld4bGJXVnVkSE11YkdWdVozUm9JQzBnTVRzZ2FXNWtaWGdnUGlBdE1Uc2dhVzVrWlhndExTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG5OMFlYUmxMbk5sYkdWamRHVmtSV3hsYldWdWRFbGtjMXRoYkd4SWFYUkZiR1Z0Wlc1MGMxdHBibVJsZUYwdWFXUmRLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1lXeHNTR2wwUld4bGJXVnVkSE5iYVc1a1pYaGRPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1kyOXVjM1FnWld4bGJXVnVkRmRwZEdoSWFXZG9aWE4wV2tsdVpHVjRJRDFjYmlBZ0lDQWdJQ0FnWVd4c1NHbDBSV3hsYldWdWRITmJZV3hzU0dsMFJXeGxiV1Z1ZEhNdWJHVnVaM1JvSUMwZ01WMDdYRzRnSUNBZ0lDQXZMeUJKWmlCM1pTZHlaU0JvYVhSMGFXNW5JR1ZzWlcxbGJuUWdkMmwwYUNCb2FXZG9aWE4wSUhvdGFXNWtaWGdnYjI1c2VTQnZiaUJwZEhNZ1ltOTFibVJwYm1jZ1ltOTRYRzRnSUNBZ0lDQXZMeUIzYUdsc1pTQmhiSE52SUdocGRIUnBibWNnYjNSb1pYSWdaV3hsYldWdWRDQm1hV2QxY21Vc0lIUm9aU0JzWVhSMFpYSWdjMmh2ZFd4a0lHSmxJR052Ym5OcFpHVnlaV1F1WEc0Z0lDQWdJQ0J5WlhSMWNtNGdhWE5JYVhSMGFXNW5SV3hsYldWdWRFSnZkVzVrYVc1blFtOTRWMmwwYUc5MWRFaHBkSFJwYm1kRmJHVnRaVzUwS0Z4dUlDQWdJQ0FnSUNCbGJHVnRaVzUwVjJsMGFFaHBaMmhsYzNSYVNXNWtaWGdzWEc0Z0lDQWdJQ0FnSUhSb2FYTXVjM1JoZEdVc1hHNGdJQ0FnSUNBZ0lIZ3NYRzRnSUNBZ0lDQWdJSGtzWEc0Z0lDQWdJQ0FwWEc0Z0lDQWdJQ0FnSUQ4Z1lXeHNTR2wwUld4bGJXVnVkSE5iWVd4c1NHbDBSV3hsYldWdWRITXViR1Z1WjNSb0lDMGdNbDFjYmlBZ0lDQWdJQ0FnT2lCbGJHVnRaVzUwVjJsMGFFaHBaMmhsYzNSYVNXNWtaWGc3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hoYkd4SWFYUkZiR1Z0Wlc1MGN5NXNaVzVuZEdnZ1BUMDlJREVwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJoYkd4SWFYUkZiR1Z0Wlc1MGMxc3dYVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR2RsZEVWc1pXMWxiblJ6UVhSUWIzTnBkR2x2YmloY2JpQWdJQ0I0T2lCdWRXMWlaWElzWEc0Z0lDQWdlVG9nYm5WdFltVnlMRnh1SUNBZ0lHbHVZMngxWkdWQ2IzVnVaRlJsZUhSRmJHVnRaVzUwT2lCaWIyOXNaV0Z1SUQwZ1ptRnNjMlVzWEc0Z0lDazZJRTV2YmtSbGJHVjBaV1E4UlhoallXeHBaSEpoZDBWc1pXMWxiblErVzEwZ2UxeHVJQ0FnSUdOdmJuTjBJR1ZzWlcxbGJuUnpJRDBnYVc1amJIVmtaVUp2ZFc1a1ZHVjRkRVZzWlcxbGJuUmNiaUFnSUNBZ0lEOGdkR2hwY3k1elkyVnVaUzVuWlhSRmJHVnRaVzUwY3lncFhHNGdJQ0FnSUNBNklIUm9hWE11YzJObGJtVmNiaUFnSUNBZ0lDQWdJQ0F1WjJWMFJXeGxiV1Z1ZEhNb0tWeHVJQ0FnSUNBZ0lDQWdJQzVtYVd4MFpYSW9YRzRnSUNBZ0lDQWdJQ0FnSUNBb1pXeGxiV1Z1ZENrZ1BUNGdJU2hwYzFSbGVIUkZiR1Z0Wlc1MEtHVnNaVzFsYm5RcElDWW1JR1ZzWlcxbGJuUXVZMjl1ZEdGcGJtVnlTV1FwTEZ4dUlDQWdJQ0FnSUNBZ0lDazdYRzVjYmlBZ0lDQnlaWFIxY200Z1oyVjBSV3hsYldWdWRITkJkRkJ2YzJsMGFXOXVLR1ZzWlcxbGJuUnpMQ0FvWld4bGJXVnVkQ2tnUFQ1Y2JpQWdJQ0FnSUdocGRGUmxjM1FvWld4bGJXVnVkQ3dnZEdocGN5NXpkR0YwWlN3Z2VDd2dlU2tzWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnYzNSaGNuUlVaWGgwUldScGRHbHVaeUE5SUNoN1hHNGdJQ0FnYzJObGJtVllMRnh1SUNBZ0lITmpaVzVsV1N4Y2JpQWdJQ0J6YUc5MWJHUkNhVzVrTEZ4dUlDQWdJR2x1YzJWeWRFRjBVR0Z5Wlc1MFEyVnVkR1Z5SUQwZ2RISjFaU3hjYmlBZ2ZUb2dlMXh1SUNBZ0lDOHFLaUJZSUhCdmMybDBhVzl1SUhSdklHbHVjMlZ5ZENCMFpYaDBJR0YwSUNvdlhHNGdJQ0FnYzJObGJtVllPaUJ1ZFcxaVpYSTdYRzRnSUNBZ0x5b3FJRmtnY0c5emFYUnBiMjRnZEc4Z2FXNXpaWEowSUhSbGVIUWdZWFFnS2k5Y2JpQWdJQ0J6WTJWdVpWazZJRzUxYldKbGNqdGNiaUFnSUNCemFHOTFiR1JDYVc1a09pQmliMjlzWldGdU8xeHVJQ0FnSUM4cUtpQjNhR1YwYUdWeUlIUnZJR0YwZEdWdGNIUWdkRzhnYVc1elpYSjBJR0YwSUdWc1pXMWxiblFnWTJWdWRHVnlJR2xtSUdGd2NHeHBZMkZpYkdVZ0tpOWNiaUFnSUNCcGJuTmxjblJCZEZCaGNtVnVkRU5sYm5SbGNqODZJR0p2YjJ4bFlXNDdYRzRnSUgwcElEMCtJSHRjYmlBZ0lDQnNaWFFnY0dGeVpXNTBRMlZ1ZEdWeVVHOXphWFJwYjI0Z1BWeHVJQ0FnSUNBZ2FXNXpaWEowUVhSUVlYSmxiblJEWlc1MFpYSWdKaVpjYmlBZ0lDQWdJSFJvYVhNdVoyVjBWR1Y0ZEZkNWMybDNlV2RUYm1Gd2NHVmtWRzlEWlc1MFpYSlFiM05wZEdsdmJpaGNiaUFnSUNBZ0lDQWdjMk5sYm1WWUxGeHVJQ0FnSUNBZ0lDQnpZMlZ1WlZrc1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzNSaGRHVXNYRzRnSUNBZ0lDQWdJSFJvYVhNdVkyRnVkbUZ6TEZ4dUlDQWdJQ0FnSUNCM2FXNWtiM2N1WkdWMmFXTmxVR2w0Wld4U1lYUnBieXhjYmlBZ0lDQWdJQ2s3WEc1Y2JpQWdJQ0F2THlCaWFXNWtJSFJ2SUdOdmJuUmhhVzVsY2lCM2FHVnVJSE5vYjNWc1pFSnBibVFnYVhNZ2RISjFaU0J2Y2x4dUlDQWdJQzh2SUdOc2FXTnJaV1FnYjI0Z1kyVnVkR1Z5SUc5bUlHTnZiblJoYVc1bGNseHVJQ0FnSUdOdmJuTjBJR052Ym5SaGFXNWxjaUE5WEc0Z0lDQWdJQ0J6YUc5MWJHUkNhVzVrSUh4OElIQmhjbVZ1ZEVObGJuUmxjbEJ2YzJsMGFXOXVYRzRnSUNBZ0lDQWdJRDhnWjJWMFJXeGxiV1Z1ZEVOdmJuUmhhVzVwYm1kUWIzTnBkR2x2YmloY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMyTmxibVV1WjJWMFJXeGxiV1Z1ZEhNb0tTNW1hV3gwWlhJb0tHVnNaU2tnUFQ0Z0lXbHpWR1Y0ZEVWc1pXMWxiblFvWld4bEtTa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCelkyVnVaVmdzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnpZMlZ1WlZrc1hHNGdJQ0FnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdJQ0E2SUc1MWJHdzdYRzVjYmlBZ0lDQnNaWFFnWlhocGMzUnBibWRVWlhoMFJXeGxiV1Z1ZENBOUlIUm9hWE11WjJWMFZHVjRkRVZzWlcxbGJuUkJkRkJ2YzJsMGFXOXVLSE5qWlc1bFdDd2djMk5sYm1WWktUdGNibHh1SUNBZ0lDOHZJR052Ym5OcFpHVnlJR0p2ZFc1a1pXUWdkR1Y0ZENCbGJHVnRaVzUwSUdsbUlHTnZiblJoYVc1bGNpQndjbVZ6Wlc1MFhHNGdJQ0FnYVdZZ0tHTnZiblJoYVc1bGNpa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1ltOTFibVJVWlhoMFJXeGxiV1Z1ZEVsa0lEMGdaMlYwUW05MWJtUlVaWGgwUld4bGJXVnVkRWxrS0dOdmJuUmhhVzVsY2lrN1hHNGdJQ0FnSUNCcFppQW9ZbTkxYm1SVVpYaDBSV3hsYldWdWRFbGtLU0I3WEc0Z0lDQWdJQ0FnSUdWNGFYTjBhVzVuVkdWNGRFVnNaVzFsYm5RZ1BTQjBhR2x6TG5OalpXNWxMbWRsZEVWc1pXMWxiblFvWEc0Z0lDQWdJQ0FnSUNBZ1ltOTFibVJVWlhoMFJXeGxiV1Z1ZEVsa0xGeHVJQ0FnSUNBZ0lDQXBJR0Z6SUVWNFkyRnNhV1J5WVhkVVpYaDBSV3hsYldWdWREdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tDRmxlR2x6ZEdsdVoxUmxlSFJGYkdWdFpXNTBJQ1ltSUdOdmJuUmhhVzVsY2lrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWm05dWRGTjBjbWx1WnlBOUlIdGNiaUFnSUNBZ0lDQWdabTl1ZEZOcGVtVTZJSFJvYVhNdWMzUmhkR1V1WTNWeWNtVnVkRWwwWlcxR2IyNTBVMmw2WlN4Y2JpQWdJQ0FnSUNBZ1ptOXVkRVpoYldsc2VUb2dkR2hwY3k1emRHRjBaUzVqZFhKeVpXNTBTWFJsYlVadmJuUkdZVzFwYkhrc1hHNGdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ1kyOXVjM1FnYldsdVYybGtkR2dnUFNCblpYUkJjSEJ5YjNoTmFXNU1hVzVsVjJsa2RHZ29aMlYwUm05dWRGTjBjbWx1WnlobWIyNTBVM1J5YVc1bktTazdYRzRnSUNBZ0lDQmpiMjV6ZENCdGFXNUlaV2xuYUhRZ1BTQm5aWFJCY0hCeWIzaE5hVzVNYVc1bFNHVnBaMmgwS0dkbGRFWnZiblJUZEhKcGJtY29abTl1ZEZOMGNtbHVaeWtwTzF4dUlDQWdJQ0FnWTI5dWMzUWdibVYzU0dWcFoyaDBJRDBnVFdGMGFDNXRZWGdvWTI5dWRHRnBibVZ5TG1obGFXZG9kQ3dnYldsdVNHVnBaMmgwS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJRzVsZDFkcFpIUm9JRDBnVFdGMGFDNXRZWGdvWTI5dWRHRnBibVZ5TG5kcFpIUm9MQ0J0YVc1WGFXUjBhQ2s3WEc0Z0lDQWdJQ0J0ZFhSaGRHVkZiR1Z0Wlc1MEtHTnZiblJoYVc1bGNpd2dleUJvWldsbmFIUTZJRzVsZDBobGFXZG9kQ3dnZDJsa2RHZzZJRzVsZDFkcFpIUm9JSDBwTzF4dUlDQWdJQ0FnYzJObGJtVllJRDBnWTI5dWRHRnBibVZ5TG5nZ0t5QnVaWGRYYVdSMGFDQXZJREk3WEc0Z0lDQWdJQ0J6WTJWdVpWa2dQU0JqYjI1MFlXbHVaWEl1ZVNBcklHNWxkMGhsYVdkb2RDQXZJREk3WEc0Z0lDQWdJQ0JwWmlBb2NHRnlaVzUwUTJWdWRHVnlVRzl6YVhScGIyNHBJSHRjYmlBZ0lDQWdJQ0FnY0dGeVpXNTBRMlZ1ZEdWeVVHOXphWFJwYjI0Z1BTQjBhR2x6TG1kbGRGUmxlSFJYZVhOcGQzbG5VMjVoY0hCbFpGUnZRMlZ1ZEdWeVVHOXphWFJwYjI0b1hHNGdJQ0FnSUNBZ0lDQWdjMk5sYm1WWUxGeHVJQ0FnSUNBZ0lDQWdJSE5qWlc1bFdTeGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxuTjBZWFJsTEZ4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11WTJGdWRtRnpMRnh1SUNBZ0lDQWdJQ0FnSUhkcGJtUnZkeTVrWlhacFkyVlFhWGhsYkZKaGRHbHZMRnh1SUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHVnNaVzFsYm5RZ1BTQmxlR2x6ZEdsdVoxUmxlSFJGYkdWdFpXNTBYRzRnSUNBZ0lDQS9JR1Y0YVhOMGFXNW5WR1Y0ZEVWc1pXMWxiblJjYmlBZ0lDQWdJRG9nYm1WM1ZHVjRkRVZzWlcxbGJuUW9lMXh1SUNBZ0lDQWdJQ0FnSUhnNklIQmhjbVZ1ZEVObGJuUmxjbEJ2YzJsMGFXOXVYRzRnSUNBZ0lDQWdJQ0FnSUNBL0lIQmhjbVZ1ZEVObGJuUmxjbEJ2YzJsMGFXOXVMbVZzWlcxbGJuUkRaVzUwWlhKWVhHNGdJQ0FnSUNBZ0lDQWdJQ0E2SUhOalpXNWxXQ3hjYmlBZ0lDQWdJQ0FnSUNCNU9pQndZWEpsYm5SRFpXNTBaWEpRYjNOcGRHbHZibHh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QndZWEpsYm5SRFpXNTBaWEpRYjNOcGRHbHZiaTVsYkdWdFpXNTBRMlZ1ZEdWeVdWeHVJQ0FnSUNBZ0lDQWdJQ0FnT2lCelkyVnVaVmtzWEc0Z0lDQWdJQ0FnSUNBZ2MzUnliMnRsUTI5c2IzSTZJSFJvYVhNdWMzUmhkR1V1WTNWeWNtVnVkRWwwWlcxVGRISnZhMlZEYjJ4dmNpeGNiaUFnSUNBZ0lDQWdJQ0JpWVdOclozSnZkVzVrUTI5c2IzSTZJSFJvYVhNdWMzUmhkR1V1WTNWeWNtVnVkRWwwWlcxQ1lXTnJaM0p2ZFc1a1EyOXNiM0lzWEc0Z0lDQWdJQ0FnSUNBZ1ptbHNiRk4wZVd4bE9pQjBhR2x6TG5OMFlYUmxMbU4xY25KbGJuUkpkR1Z0Um1sc2JGTjBlV3hsTEZ4dUlDQWdJQ0FnSUNBZ0lITjBjbTlyWlZkcFpIUm9PaUIwYUdsekxuTjBZWFJsTG1OMWNuSmxiblJKZEdWdFUzUnliMnRsVjJsa2RHZ3NYRzRnSUNBZ0lDQWdJQ0FnYzNSeWIydGxVM1I1YkdVNklIUm9hWE11YzNSaGRHVXVZM1Z5Y21WdWRFbDBaVzFUZEhKdmEyVlRkSGxzWlN4Y2JpQWdJQ0FnSUNBZ0lDQnliM1ZuYUc1bGMzTTZJSFJvYVhNdWMzUmhkR1V1WTNWeWNtVnVkRWwwWlcxU2IzVm5hRzVsYzNNc1hHNGdJQ0FnSUNBZ0lDQWdiM0JoWTJsMGVUb2dkR2hwY3k1emRHRjBaUzVqZFhKeVpXNTBTWFJsYlU5d1lXTnBkSGtzWEc0Z0lDQWdJQ0FnSUNBZ2MzUnliMnRsVTJoaGNuQnVaWE56T2lCMGFHbHpMbk4wWVhSbExtTjFjbkpsYm5SSmRHVnRVM1J5YjJ0bFUyaGhjbkJ1WlhOekxGeHVJQ0FnSUNBZ0lDQWdJSFJsZUhRNklGd2lYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ1ptOXVkRk5wZW1VNklIUm9hWE11YzNSaGRHVXVZM1Z5Y21WdWRFbDBaVzFHYjI1MFUybDZaU3hjYmlBZ0lDQWdJQ0FnSUNCbWIyNTBSbUZ0YVd4NU9pQjBhR2x6TG5OMFlYUmxMbU4xY25KbGJuUkpkR1Z0Um05dWRFWmhiV2xzZVN4Y2JpQWdJQ0FnSUNBZ0lDQjBaWGgwUVd4cFoyNDZJSEJoY21WdWRFTmxiblJsY2xCdmMybDBhVzl1WEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JRndpWTJWdWRHVnlYQ0pjYmlBZ0lDQWdJQ0FnSUNBZ0lEb2dkR2hwY3k1emRHRjBaUzVqZFhKeVpXNTBTWFJsYlZSbGVIUkJiR2xuYml4Y2JpQWdJQ0FnSUNBZ0lDQjJaWEowYVdOaGJFRnNhV2R1T2lCd1lYSmxiblJEWlc1MFpYSlFiM05wZEdsdmJseHVJQ0FnSUNBZ0lDQWdJQ0FnUHlCY0ltMXBaR1JzWlZ3aVhHNGdJQ0FnSUNBZ0lDQWdJQ0E2SUVSRlJrRlZURlJmVmtWU1ZFbERRVXhmUVV4SlIwNHNYRzRnSUNBZ0lDQWdJQ0FnWTI5dWRHRnBibVZ5U1dRNklHTnZiblJoYVc1bGNqOHVhV1FnUHo4Z2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ0lDQWdJR2R5YjNWd1NXUnpPaUJqYjI1MFlXbHVaWEkvTG1keWIzVndTV1J6SUQ4L0lGdGRMRnh1SUNBZ0lDQWdJQ0I5S1R0Y2JseHVJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9leUJsWkdsMGFXNW5SV3hsYldWdWREb2daV3hsYldWdWRDQjlLVHRjYmx4dUlDQWdJR2xtSUNobGVHbHpkR2x1WjFSbGVIUkZiR1Z0Wlc1MEtTQjdYRzRnSUNBZ0lDQXZMeUJwWmlCMFpYaDBJR1ZzWlcxbGJuUWdhWE1nYm04Z2JHOXVaMlZ5SUdObGJuUmxjbVZrSUhSdklHRWdZMjl1ZEdGcGJtVnlMQ0J5WlhObGRGeHVJQ0FnSUNBZ0x5OGdkbVZ5ZEdsallXeEJiR2xuYmlCMGJ5QmtaV1poZFd4MElHSmxZMkYxYzJVZ2FYUW5jeUJqZFhKeVpXNTBiSGtnYVc1MFpYSnVZV3d0YjI1c2VWeHVJQ0FnSUNBZ2FXWWdLQ0Z3WVhKbGJuUkRaVzUwWlhKUWIzTnBkR2x2YmlCOGZDQmxiR1Z0Wlc1MExuUmxlSFJCYkdsbmJpQWhQVDBnWENKalpXNTBaWEpjSWlrZ2UxeHVJQ0FnSUNBZ0lDQnRkWFJoZEdWRmJHVnRaVzUwS0dWc1pXMWxiblFzSUhzZ2RtVnlkR2xqWVd4QmJHbG5iam9nUkVWR1FWVk1WRjlXUlZKVVNVTkJURjlCVEVsSFRpQjlLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV6WTJWdVpTNXlaWEJzWVdObFFXeHNSV3hsYldWdWRITW9XMXh1SUNBZ0lDQWdJQ0F1TGk1MGFHbHpMbk5qWlc1bExtZGxkRVZzWlcxbGJuUnpTVzVqYkhWa2FXNW5SR1ZzWlhSbFpDZ3BMRnh1SUNBZ0lDQWdJQ0JsYkdWdFpXNTBMRnh1SUNBZ0lDQWdYU2s3WEc1Y2JpQWdJQ0FnSUM4dklHTmhjMlU2SUdOeVpXRjBhVzVuSUc1bGR5QjBaWGgwSUc1dmRDQmpaVzUwWlhKbFpDQjBieUJ3WVhKbGJuUWdaV3hsYldWdVpXNTBJT0tHa2lCdlptWnpaWFFnV1Z4dUlDQWdJQ0FnTHk4Z2MyOGdkR2hoZENCMGFHVWdkR1Y0ZENCcGN5QmpaVzUwWlhKbFpDQjBieUJqZFhKemIzSWdjRzl6YVhScGIyNWNiaUFnSUNBZ0lHbG1JQ2doY0dGeVpXNTBRMlZ1ZEdWeVVHOXphWFJwYjI0cElIdGNiaUFnSUNBZ0lDQWdiWFYwWVhSbFJXeGxiV1Z1ZENobGJHVnRaVzUwTENCN1hHNGdJQ0FnSUNBZ0lDQWdlVG9nWld4bGJXVnVkQzU1SUMwZ1pXeGxiV1Z1ZEM1aVlYTmxiR2x1WlNBdklESXNYRzRnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2UxeHVJQ0FnSUNBZ1pXUnBkR2x1WjBWc1pXMWxiblE2SUdWc1pXMWxiblFzWEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0IwYUdsekxtaGhibVJzWlZSbGVIUlhlWE5wZDNsbktHVnNaVzFsYm5Rc0lIdGNiaUFnSUNBZ0lHbHpSWGhwYzNScGJtZEZiR1Z0Wlc1ME9pQWhJV1Y0YVhOMGFXNW5WR1Y0ZEVWc1pXMWxiblFzWEc0Z0lDQWdmU2s3WEc0Z0lIMDdYRzVjYmlBZ2NISnBkbUYwWlNCb1lXNWtiR1ZEWVc1MllYTkViM1ZpYkdWRGJHbGpheUE5SUNoY2JpQWdJQ0JsZG1WdWREb2dVbVZoWTNRdVRXOTFjMlZGZG1WdWREeElWRTFNUTJGdWRtRnpSV3hsYldWdWRENHNYRzRnSUNrZ1BUNGdlMXh1SUNBZ0lDOHZJR05oYzJVNklHUnZkV0pzWlMxamJHbGphMmx1WnlCM2FYUm9JR0Z5Y205M0wyeHBibVVnZEc5dmJDQnpaV3hsWTNSbFpDQjNiM1ZzWkNCaWIzUm9JR055WldGMFpWeHVJQ0FnSUM4dklIUmxlSFFnWVc1a0lHVnVkR1Z5SUcxMWJIUnBSV3hsYldWdWRDQnRiMlJsWEc0Z0lDQWdhV1lnS0hSb2FYTXVjM1JoZEdVdWJYVnNkR2xGYkdWdFpXNTBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVJQ0FnSUM4dklIZGxJSE5vYjNWc1pDQnZibXg1SUdKbElHRmliR1VnZEc4Z1pHOTFZbXhsSUdOc2FXTnJJSGRvWlc0Z2JXOWtaU0JwY3lCelpXeGxZM1JwYjI1Y2JpQWdJQ0JwWmlBb2RHaHBjeTV6ZEdGMFpTNWxiR1Z0Wlc1MFZIbHdaU0FoUFQwZ1hDSnpaV3hsWTNScGIyNWNJaWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhObGJHVmpkR1ZrUld4bGJXVnVkSE1nUFNCblpYUlRaV3hsWTNSbFpFVnNaVzFsYm5SektGeHVJQ0FnSUNBZ2RHaHBjeTV6WTJWdVpTNW5aWFJGYkdWdFpXNTBjeWdwTEZ4dUlDQWdJQ0FnZEdocGN5NXpkR0YwWlN4Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnYVdZZ0tITmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNdWJHVnVaM1JvSUQwOVBTQXhJQ1ltSUdselRHbHVaV0Z5Uld4bGJXVnVkQ2h6Wld4bFkzUmxaRVZzWlcxbGJuUnpXekJkS1NrZ2UxeHVJQ0FnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdJQ0FoZEdocGN5NXpkR0YwWlM1bFpHbDBhVzVuVEdsdVpXRnlSV3hsYldWdWRDQjhmRnh1SUNBZ0lDQWdJQ0IwYUdsekxuTjBZWFJsTG1Wa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1MExtVnNaVzFsYm5SSlpDQWhQVDBnYzJWc1pXTjBaV1JGYkdWdFpXNTBjMXN3WFM1cFpGeHVJQ0FnSUNBZ0tTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWFHbHpkRzl5ZVM1eVpYTjFiV1ZTWldOdmNtUnBibWNvS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0FnSUNBZ1pXUnBkR2x1WjB4cGJtVmhja1ZzWlcxbGJuUTZJRzVsZHlCTWFXNWxZWEpGYkdWdFpXNTBSV1JwZEc5eUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzJWc1pXTjBaV1JGYkdWdFpXNTBjMXN3WFN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMyTmxibVVzWEc0Z0lDQWdJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVnpaWFJEZFhKemIzSW9kR2hwY3k1allXNTJZWE1wTzF4dVhHNGdJQ0FnYkdWMElIc2dlRG9nYzJObGJtVllMQ0I1T2lCelkyVnVaVmtnZlNBOUlIWnBaWGR3YjNKMFEyOXZjbVJ6Vkc5VFkyVnVaVU52YjNKa2N5aGNiaUFnSUNBZ0lHVjJaVzUwTEZ4dUlDQWdJQ0FnZEdocGN5NXpkR0YwWlN4Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWTI5dWMzUWdjMlZzWldOMFpXUkhjbTkxY0Vsa2N5QTlJR2RsZEZObGJHVmpkR1ZrUjNKdmRYQkpaSE1vZEdocGN5NXpkR0YwWlNrN1hHNWNiaUFnSUNCcFppQW9jMlZzWldOMFpXUkhjbTkxY0Vsa2N5NXNaVzVuZEdnZ1BpQXdLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQm9hWFJGYkdWdFpXNTBJRDBnZEdocGN5NW5aWFJGYkdWdFpXNTBRWFJRYjNOcGRHbHZiaWh6WTJWdVpWZ3NJSE5qWlc1bFdTazdYRzVjYmlBZ0lDQWdJR052Ym5OMElITmxiR1ZqZEdWa1IzSnZkWEJKWkNBOVhHNGdJQ0FnSUNBZ0lHaHBkRVZzWlcxbGJuUWdKaVpjYmlBZ0lDQWdJQ0FnWjJWMFUyVnNaV04wWldSSGNtOTFjRWxrUm05eVJXeGxiV1Z1ZENob2FYUkZiR1Z0Wlc1MExDQjBhR2x6TG5OMFlYUmxMbk5sYkdWamRHVmtSM0p2ZFhCSlpITXBPMXh1WEc0Z0lDQWdJQ0JwWmlBb2MyVnNaV04wWldSSGNtOTFjRWxrS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvS0hCeVpYWlRkR0YwWlNrZ1BUNWNiaUFnSUNBZ0lDQWdJQ0J6Wld4bFkzUkhjbTkxY0hOR2IzSlRaV3hsWTNSbFpFVnNaVzFsYm5SektGeHVJQ0FnSUNBZ0lDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0F1TGk1d2NtVjJVM1JoZEdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdWa2FYUnBibWRIY205MWNFbGtPaUJ6Wld4bFkzUmxaRWR5YjNWd1NXUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxiR1ZqZEdWa1JXeGxiV1Z1ZEVsa2N6b2dleUJiYUdsMFJXeGxiV1Z1ZENFdWFXUmRPaUIwY25WbElIMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxiR1ZqZEdWa1IzSnZkWEJKWkhNNklIdDlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVjMk5sYm1VdVoyVjBSV3hsYldWdWRITW9LU3hjYmlBZ0lDQWdJQ0FnSUNBcExGeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVnpaWFJEZFhKemIzSW9kR2hwY3k1allXNTJZWE1wTzF4dUlDQWdJR2xtSUNnaFpYWmxiblJiUzBWWlV5NURWRkpNWDA5U1gwTk5SRjBnSmlZZ0lYUm9hWE11YzNSaGRHVXVkbWxsZDAxdlpHVkZibUZpYkdWa0tTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCelpXeGxZM1JsWkVWc1pXMWxiblJ6SUQwZ1oyVjBVMlZzWldOMFpXUkZiR1Z0Wlc1MGN5aGNiaUFnSUNBZ0lDQWdkR2hwY3k1elkyVnVaUzVuWlhSRmJHVnRaVzUwY3lncExGeHVJQ0FnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJR2xtSUNoelpXeGxZM1JsWkVWc1pXMWxiblJ6TG14bGJtZDBhQ0E5UFQwZ01Ta2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnpaV3hsWTNSbFpFVnNaVzFsYm5RZ1BTQnpaV3hsWTNSbFpFVnNaVzFsYm5Seld6QmRPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmpZVzVDYVc1a1ZHVjRkQ0E5SUdoaGMwSnZkVzVrVkdWNGRFVnNaVzFsYm5Rb2MyVnNaV04wWldSRmJHVnRaVzUwS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLR05oYmtKcGJtUlVaWGgwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjMk5sYm1WWUlEMGdjMlZzWldOMFpXUkZiR1Z0Wlc1MExuZ2dLeUJ6Wld4bFkzUmxaRVZzWlcxbGJuUXVkMmxrZEdnZ0x5QXlPMXh1SUNBZ0lDQWdJQ0FnSUhOalpXNWxXU0E5SUhObGJHVmpkR1ZrUld4bGJXVnVkQzU1SUNzZ2MyVnNaV04wWldSRmJHVnRaVzUwTG1obGFXZG9kQ0F2SURJN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lIUm9hWE11YzNSaGNuUlVaWGgwUldScGRHbHVaeWg3WEc0Z0lDQWdJQ0FnSUhOalpXNWxXQ3hjYmlBZ0lDQWdJQ0FnYzJObGJtVlpMRnh1SUNBZ0lDQWdJQ0J6YUc5MWJHUkNhVzVrT2lCbVlXeHpaU3hjYmlBZ0lDQWdJQ0FnYVc1elpYSjBRWFJRWVhKbGJuUkRaVzUwWlhJNklDRmxkbVZ1ZEM1aGJIUkxaWGtzWEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5WEc0Z0lIMDdYRzVjYmlBZ2NISnBkbUYwWlNCblpYUkZiR1Z0Wlc1MFRHbHVhMEYwVUc5emFYUnBiMjRnUFNBb1hHNGdJQ0FnYzJObGJtVlFiMmx1ZEdWeU9pQlNaV0ZrYjI1c2VUeDdJSGc2SUc1MWJXSmxjanNnZVRvZ2JuVnRZbVZ5SUgwK0xGeHVJQ0FnSUdocGRFVnNaVzFsYm5RNklFNXZia1JsYkdWMFpXUkZlR05oYkdsa2NtRjNSV3hsYldWdWRDQjhJRzUxYkd3c1hHNGdJQ2s2SUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwSUh3Z2RXNWtaV1pwYm1Wa0lEMCtJSHRjYmlBZ0lDQXZMeUJTWlhabGNuTnBibWNnYzI4Z2QyVWdkSEpoZG1WeWMyVWdkR2hsSUdWc1pXMWxiblJ6SUdsdUlHUmxZM0psWVhOcGJtY2diM0prWlhKY2JpQWdJQ0F2THlCdlppQjZMV2x1WkdWNFhHNGdJQ0FnWTI5dWMzUWdaV3hsYldWdWRITWdQU0IwYUdsekxuTmpaVzVsTG1kbGRFVnNaVzFsYm5SektDa3VjMnhwWTJVb0tTNXlaWFpsY25ObEtDazdYRzRnSUNBZ2JHVjBJR2hwZEVWc1pXMWxiblJKYm1SbGVDQTlJRWx1Wm1sdWFYUjVPMXh1WEc0Z0lDQWdjbVYwZFhKdUlHVnNaVzFsYm5SekxtWnBibVFvS0dWc1pXMWxiblFzSUdsdVpHVjRLU0E5UGlCN1hHNGdJQ0FnSUNCcFppQW9hR2wwUld4bGJXVnVkQ0FtSmlCbGJHVnRaVzUwTG1sa0lEMDlQU0JvYVhSRmJHVnRaVzUwTG1sa0tTQjdYRzRnSUNBZ0lDQWdJR2hwZEVWc1pXMWxiblJKYm1SbGVDQTlJR2x1WkdWNE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEM1c2FXNXJJQ1ltWEc0Z0lDQWdJQ0FnSUdselVHOXBiblJJYVhSMGFXNW5UR2x1YTBsamIyNG9YRzRnSUNBZ0lDQWdJQ0FnWld4bGJXVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbk4wWVhSbExGeHVJQ0FnSUNBZ0lDQWdJRnR6WTJWdVpWQnZhVzUwWlhJdWVDd2djMk5sYm1WUWIybHVkR1Z5TG5sZExGeHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdWFYTk5iMkpwYkdVc1hHNGdJQ0FnSUNBZ0lDa2dKaVpjYmlBZ0lDQWdJQ0FnYVc1a1pYZ2dQRDBnYUdsMFJXeGxiV1Z1ZEVsdVpHVjRYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMHBPMXh1SUNCOU8xeHVYRzRnSUhCeWFYWmhkR1VnY21Wa2FYSmxZM1JVYjB4cGJtc2dQU0FvWEc0Z0lDQWdaWFpsYm5RNklGSmxZV04wTGxCdmFXNTBaWEpGZG1WdWREeElWRTFNUTJGdWRtRnpSV3hsYldWdWRENHNYRzRnSUNBZ2FYTlViM1ZqYUZOamNtVmxiam9nWW05dmJHVmhiaXhjYmlBZ0tTQTlQaUI3WEc0Z0lDQWdZMjl1YzNRZ1pISmhaMmRsWkVScGMzUmhibU5sSUQwZ1pHbHpkR0Z1WTJVeVpDaGNiaUFnSUNBZ0lIUm9hWE11YkdGemRGQnZhVzUwWlhKRWIzZHVJUzVqYkdsbGJuUllMRnh1SUNBZ0lDQWdkR2hwY3k1c1lYTjBVRzlwYm5SbGNrUnZkMjRoTG1Oc2FXVnVkRmtzWEc0Z0lDQWdJQ0IwYUdsekxteGhjM1JRYjJsdWRHVnlWWEFoTG1Oc2FXVnVkRmdzWEc0Z0lDQWdJQ0IwYUdsekxteGhjM1JRYjJsdWRHVnlWWEFoTG1Oc2FXVnVkRmtzWEc0Z0lDQWdLVHRjYmlBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0FoZEdocGN5NW9hWFJNYVc1clJXeGxiV1Z1ZENCOGZGeHVJQ0FnSUNBZ0x5OGdSbTl5SUhSdmRXTm9JSE5qY21WbGJpQmhiR3h2ZHlCa2NtRm5aMmx1WnlCMGFISmxjMmh2YkdRZ1pXeHpaU0J6ZEhKcFkzUWdZMmhsWTJ0Y2JpQWdJQ0FnSUNocGMxUnZkV05vVTJOeVpXVnVJQ1ltSUdSeVlXZG5aV1JFYVhOMFlXNWpaU0ErSUVSU1FVZEhTVTVIWDFSSVVrVlRTRTlNUkNrZ2ZIeGNiaUFnSUNBZ0lDZ2hhWE5VYjNWamFGTmpjbVZsYmlBbUppQmtjbUZuWjJWa1JHbHpkR0Z1WTJVZ0lUMDlJREFwWEc0Z0lDQWdLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJR3hoYzNSUWIybHVkR1Z5Ukc5M2JrTnZiM0prY3lBOUlIWnBaWGR3YjNKMFEyOXZjbVJ6Vkc5VFkyVnVaVU52YjNKa2N5aGNiaUFnSUNBZ0lIUm9hWE11YkdGemRGQnZhVzUwWlhKRWIzZHVJU3hjYmlBZ0lDQWdJSFJvYVhNdWMzUmhkR1VzWEc0Z0lDQWdLVHRjYmlBZ0lDQmpiMjV6ZENCc1lYTjBVRzlwYm5SbGNrUnZkMjVJYVhSMGFXNW5UR2x1YTBsamIyNGdQU0JwYzFCdmFXNTBTR2wwZEdsdVoweHBibXRKWTI5dUtGeHVJQ0FnSUNBZ2RHaHBjeTVvYVhSTWFXNXJSV3hsYldWdWRDRXNYRzRnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMRnh1SUNBZ0lDQWdXMnhoYzNSUWIybHVkR1Z5Ukc5M2JrTnZiM0prY3k1NExDQnNZWE4wVUc5cGJuUmxja1J2ZDI1RGIyOXlaSE11ZVYwc1hHNGdJQ0FnSUNCMGFHbHpMbWx6VFc5aWFXeGxMRnh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnYkdGemRGQnZhVzUwWlhKVmNFTnZiM0prY3lBOUlIWnBaWGR3YjNKMFEyOXZjbVJ6Vkc5VFkyVnVaVU52YjNKa2N5aGNiaUFnSUNBZ0lIUm9hWE11YkdGemRGQnZhVzUwWlhKVmNDRXNYRzRnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMRnh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnYkdGemRGQnZhVzUwWlhKVmNFaHBkSFJwYm1kTWFXNXJTV052YmlBOUlHbHpVRzlwYm5SSWFYUjBhVzVuVEdsdWEwbGpiMjRvWEc0Z0lDQWdJQ0IwYUdsekxtaHBkRXhwYm10RmJHVnRaVzUwSVN4Y2JpQWdJQ0FnSUhSb2FYTXVjM1JoZEdVc1hHNGdJQ0FnSUNCYmJHRnpkRkJ2YVc1MFpYSlZjRU52YjNKa2N5NTRMQ0JzWVhOMFVHOXBiblJsY2xWd1EyOXZjbVJ6TG5sZExGeHVJQ0FnSUNBZ2RHaHBjeTVwYzAxdlltbHNaU3hjYmlBZ0lDQXBPMXh1SUNBZ0lHbG1JQ2hzWVhOMFVHOXBiblJsY2tSdmQyNUlhWFIwYVc1blRHbHVhMGxqYjI0Z0ppWWdiR0Z6ZEZCdmFXNTBaWEpWY0VocGRIUnBibWRNYVc1clNXTnZiaWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdkWEpzSUQwZ2RHaHBjeTVvYVhSTWFXNXJSV3hsYldWdWRDNXNhVzVyTzF4dUlDQWdJQ0FnYVdZZ0tIVnliQ2tnZTF4dUlDQWdJQ0FnSUNCc1pYUWdZM1Z6ZEc5dFJYWmxiblE3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG5CeWIzQnpMbTl1VEdsdWEwOXdaVzRwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpkWE4wYjIxRmRtVnVkQ0E5SUhkeVlYQkZkbVZ1ZENoRlZrVk9WQzVGV0VOQlRFbEVVa0ZYWDB4SlRrc3NJR1YyWlc1MExtNWhkR2wyWlVWMlpXNTBLVHRjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbkJ5YjNCekxtOXVUR2x1YTA5d1pXNG9kR2hwY3k1b2FYUk1hVzVyUld4bGJXVnVkQ3dnWTNWemRHOXRSWFpsYm5RcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR2xtSUNnaFkzVnpkRzl0UlhabGJuUS9MbVJsWm1GMWJIUlFjbVYyWlc1MFpXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0IwWVhKblpYUWdQU0JwYzB4dlkyRnNUR2x1YXloMWNtd3BJRDhnWENKZmMyVnNabHdpSURvZ1hDSmZZbXhoYm10Y0lqdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnVaWGRYYVc1a2IzY2dQU0IzYVc1a2IzY3ViM0JsYmloMWJtUmxabWx1WldRc0lIUmhjbWRsZENrN1hHNGdJQ0FnSUNBZ0lDQWdMeThnYUhSMGNITTZMeTl0WVhSb2FXRnpZbmx1Wlc1ekxtZHBkR2gxWWk1cGJ5OXlaV3d0Ym05dmNHVnVaWEl2WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLRzVsZDFkcGJtUnZkeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdibVYzVjJsdVpHOTNMbTl3Wlc1bGNpQTlJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhkWGFXNWtiM2N1Ykc5allYUnBiMjRnUFNCdWIzSnRZV3hwZW1WTWFXNXJLSFZ5YkNrN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNCOU8xeHVYRzRnSUhCeWFYWmhkR1VnYUdGdVpHeGxRMkZ1ZG1GelVHOXBiblJsY2sxdmRtVWdQU0FvWEc0Z0lDQWdaWFpsYm5RNklGSmxZV04wTGxCdmFXNTBaWEpGZG1WdWREeElWRTFNUTJGdWRtRnpSV3hsYldWdWRENHNYRzRnSUNrZ1BUNGdlMXh1SUNBZ0lIUm9hWE11YzJGMlpWQnZhVzUwWlhJb1pYWmxiblF1WTJ4cFpXNTBXQ3dnWlhabGJuUXVZMnhwWlc1MFdTd2dkR2hwY3k1emRHRjBaUzVqZFhKemIzSkNkWFIwYjI0cE8xeHVYRzRnSUNBZ2FXWWdLR2RsYzNSMWNtVXVjRzlwYm5SbGNuTXVhR0Z6S0dWMlpXNTBMbkJ2YVc1MFpYSkpaQ2twSUh0Y2JpQWdJQ0FnSUdkbGMzUjFjbVV1Y0c5cGJuUmxjbk11YzJWMEtHVjJaVzUwTG5CdmFXNTBaWEpKWkN3Z2UxeHVJQ0FnSUNBZ0lDQjRPaUJsZG1WdWRDNWpiR2xsYm5SWUxGeHVJQ0FnSUNBZ0lDQjVPaUJsZG1WdWRDNWpiR2xsYm5SWkxGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYVc1cGRHbGhiRk5qWVd4bElEMGdaMlZ6ZEhWeVpTNXBibWwwYVdGc1UyTmhiR1U3WEc0Z0lDQWdhV1lnS0Z4dUlDQWdJQ0FnWjJWemRIVnlaUzV3YjJsdWRHVnljeTV6YVhwbElEMDlQU0F5SUNZbVhHNGdJQ0FnSUNCblpYTjBkWEpsTG14aGMzUkRaVzUwWlhJZ0ppWmNiaUFnSUNBZ0lHbHVhWFJwWVd4VFkyRnNaU0FtSmx4dUlDQWdJQ0FnWjJWemRIVnlaUzVwYm1sMGFXRnNSR2x6ZEdGdVkyVmNiaUFnSUNBcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdObGJuUmxjaUE5SUdkbGRFTmxiblJsY2loblpYTjBkWEpsTG5CdmFXNTBaWEp6S1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR1JsYkhSaFdDQTlJR05sYm5SbGNpNTRJQzBnWjJWemRIVnlaUzVzWVhOMFEyVnVkR1Z5TG5nN1hHNGdJQ0FnSUNCamIyNXpkQ0JrWld4MFlWa2dQU0JqWlc1MFpYSXVlU0F0SUdkbGMzUjFjbVV1YkdGemRFTmxiblJsY2k1NU8xeHVJQ0FnSUNBZ1oyVnpkSFZ5WlM1c1lYTjBRMlZ1ZEdWeUlEMGdZMlZ1ZEdWeU8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCa2FYTjBZVzVqWlNBOUlHZGxkRVJwYzNSaGJtTmxLRUZ5Y21GNUxtWnliMjBvWjJWemRIVnlaUzV3YjJsdWRHVnljeTUyWVd4MVpYTW9LU2twTzF4dUlDQWdJQ0FnWTI5dWMzUWdjMk5oYkdWR1lXTjBiM0lnUFZ4dUlDQWdJQ0FnSUNCMGFHbHpMbk4wWVhSbExtVnNaVzFsYm5SVWVYQmxJRDA5UFNCY0ltWnlaV1ZrY21GM1hDSWdKaVlnZEdocGN5NXpkR0YwWlM1d1pXNU5iMlJsWEc0Z0lDQWdJQ0FnSUNBZ1B5QXhYRzRnSUNBZ0lDQWdJQ0FnT2lCa2FYTjBZVzVqWlNBdklHZGxjM1IxY21VdWFXNXBkR2xoYkVScGMzUmhibU5sTzF4dVhHNGdJQ0FnSUNCamIyNXpkQ0J1WlhoMFdtOXZiU0E5SUhOallXeGxSbUZqZEc5eVhHNGdJQ0FnSUNBZ0lEOGdaMlYwVG05eWJXRnNhWHBsWkZwdmIyMG9hVzVwZEdsaGJGTmpZV3hsSUNvZ2MyTmhiR1ZHWVdOMGIzSXBYRzRnSUNBZ0lDQWdJRG9nZEdocGN5NXpkR0YwWlM1NmIyOXRMblpoYkhWbE8xeHVYRzRnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0NoemRHRjBaU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCNmIyOXRVM1JoZEdVZ1BTQm5aWFJUZEdGMFpVWnZjbHB2YjIwb1hHNGdJQ0FnSUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RtbGxkM0J2Y25SWU9pQmpaVzUwWlhJdWVDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhacFpYZHdiM0owV1RvZ1kyVnVkR1Z5TG5rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhoMFdtOXZiU3hjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJSE4wWVhSbExGeHVJQ0FnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUNBZ2VtOXZiVG9nZW05dmJWTjBZWFJsTG5wdmIyMHNYRzRnSUNBZ0lDQWdJQ0FnYzJOeWIyeHNXRG9nZW05dmJWTjBZWFJsTG5OamNtOXNiRmdnS3lCa1pXeDBZVmdnTHlCdVpYaDBXbTl2YlN4Y2JpQWdJQ0FnSUNBZ0lDQnpZM0p2Ykd4Wk9pQjZiMjl0VTNSaGRHVXVjMk55YjJ4c1dTQXJJR1JsYkhSaFdTQXZJRzVsZUhSYWIyOXRMRnh1SUNBZ0lDQWdJQ0FnSUhOb2IzVnNaRU5oWTJobFNXZHViM0psV205dmJUb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdkR2hwY3k1eVpYTmxkRk5vYjNWc1pFTmhZMmhsU1dkdWIzSmxXbTl2YlVSbFltOTFibU5sWkNncE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0JuWlhOMGRYSmxMbXhoYzNSRFpXNTBaWElnUFZ4dUlDQWdJQ0FnSUNCblpYTjBkWEpsTG1sdWFYUnBZV3hFYVhOMFlXNWpaU0E5WEc0Z0lDQWdJQ0FnSUdkbGMzUjFjbVV1YVc1cGRHbGhiRk5qWVd4bElEMWNiaUFnSUNBZ0lDQWdJQ0J1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHBjMGh2YkdScGJtZFRjR0ZqWlNCOGZDQnBjMUJoYm01cGJtY2dmSHdnYVhORWNtRm5aMmx1WjFOamNtOXNiRUpoY2lrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHbHpVRzlwYm5SbGNrOTJaWEpUWTNKdmJHeENZWEp6SUQwZ2FYTlBkbVZ5VTJOeWIyeHNRbUZ5Y3loY2JpQWdJQ0FnSUdOMWNuSmxiblJUWTNKdmJHeENZWEp6TEZ4dUlDQWdJQ0FnWlhabGJuUXVZMnhwWlc1MFdDQXRJSFJvYVhNdWMzUmhkR1V1YjJabWMyVjBUR1ZtZEN4Y2JpQWdJQ0FnSUdWMlpXNTBMbU5zYVdWdWRGa2dMU0IwYUdsekxuTjBZWFJsTG05bVpuTmxkRlJ2Y0N4Y2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElHbHpUM1psY2xOamNtOXNiRUpoY2lBOUlHbHpVRzlwYm5SbGNrOTJaWEpUWTNKdmJHeENZWEp6TG1selQzWmxja1ZwZEdobGNqdGNiaUFnSUNCcFppQW9JWFJvYVhNdWMzUmhkR1V1WkhKaFoyZHBibWRGYkdWdFpXNTBJQ1ltSUNGMGFHbHpMbk4wWVhSbExtMTFiSFJwUld4bGJXVnVkQ2tnZTF4dUlDQWdJQ0FnYVdZZ0tHbHpUM1psY2xOamNtOXNiRUpoY2lrZ2UxeHVJQ0FnSUNBZ0lDQnlaWE5sZEVOMWNuTnZjaWgwYUdsekxtTmhiblpoY3lrN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCelpYUkRkWEp6YjNKR2IzSlRhR0Z3WlNoMGFHbHpMbU5oYm5aaGN5d2dkR2hwY3k1emRHRjBaUzVsYkdWdFpXNTBWSGx3WlNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdjMk5sYm1WUWIybHVkR1Z5SUQwZ2RtbGxkM0J2Y25SRGIyOXlaSE5VYjFOalpXNWxRMjl2Y21SektHVjJaVzUwTENCMGFHbHpMbk4wWVhSbEtUdGNiaUFnSUNCamIyNXpkQ0I3SUhnNklITmpaVzVsVUc5cGJuUmxjbGdzSUhrNklITmpaVzVsVUc5cGJuUmxjbGtnZlNBOUlITmpaVzVsVUc5cGJuUmxjanRjYmx4dUlDQWdJR2xtSUNoY2JpQWdJQ0FnSUhSb2FYTXVjM1JoZEdVdVpXUnBkR2x1WjB4cGJtVmhja1ZzWlcxbGJuUWdKaVpjYmlBZ0lDQWdJQ0YwYUdsekxuTjBZWFJsTG1Wa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1MExtbHpSSEpoWjJkcGJtZGNiaUFnSUNBcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdWa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1MElEMGdUR2x1WldGeVJXeGxiV1Z1ZEVWa2FYUnZjaTVvWVc1a2JHVlFiMmx1ZEdWeVRXOTJaU2hjYmlBZ0lDQWdJQ0FnWlhabGJuUXNYRzRnSUNBZ0lDQWdJSE5qWlc1bFVHOXBiblJsY2xnc1hHNGdJQ0FnSUNBZ0lITmpaVzVsVUc5cGJuUmxjbGtzWEc0Z0lDQWdJQ0FnSUhSb2FYTXVjM1JoZEdVdVpXUnBkR2x1WjB4cGJtVmhja1ZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJSFJvYVhNdWMzUmhkR1V1WjNKcFpGTnBlbVVzWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnYVdZZ0tHVmthWFJwYm1kTWFXNWxZWEpGYkdWdFpXNTBJQ0U5UFNCMGFHbHpMbk4wWVhSbExtVmthWFJwYm1kTWFXNWxZWEpGYkdWdFpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9leUJsWkdsMGFXNW5UR2x1WldGeVJXeGxiV1Z1ZENCOUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHbG1JQ2hsWkdsMGFXNW5UR2x1WldGeVJXeGxiV1Z1ZEM1c1lYTjBWVzVqYjIxdGFYUjBaV1JRYjJsdWRDQWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWJXRjVZbVZUZFdkblpYTjBRbWx1WkdsdVowRjBRM1Z5YzI5eUtITmpaVzVsVUc5cGJuUmxjaWs3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIc2djM1ZuWjJWemRHVmtRbWx1WkdsdVozTTZJRnRkSUgwcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHBjMEpwYm1ScGJtZEZiR1Z0Wlc1MFZIbHdaU2gwYUdsekxuTjBZWFJsTG1Wc1pXMWxiblJVZVhCbEtTa2dlMXh1SUNBZ0lDQWdMeThnU0c5MlpYSnBibWNnZDJsMGFDQmhJSE5sYkdWamRHVmtJSFJ2YjJ3Z2IzSWdZM0psWVhScGJtY2dibVYzSUd4cGJtVmhjaUJsYkdWdFpXNTBJSFpwWVNCamJHbGphMXh1SUNBZ0lDQWdMeThnWVc1a0lIQnZhVzUwWEc0Z0lDQWdJQ0JqYjI1emRDQjdJR1J5WVdkbmFXNW5SV3hsYldWdWRDQjlJRDBnZEdocGN5NXpkR0YwWlR0Y2JpQWdJQ0FnSUdsbUlDaHBjMEpwYm1ScGJtZEZiR1Z0Wlc1MEtHUnlZV2RuYVc1blJXeGxiV1Z1ZENrcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1dFlYbGlaVk4xWjJkbGMzUkNhVzVrYVc1bmMwWnZja3hwYm1WaGNrVnNaVzFsYm5SQmRFTnZiM0prY3loY2JpQWdJQ0FnSUNBZ0lDQmtjbUZuWjJsdVowVnNaVzFsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdXM05qWlc1bFVHOXBiblJsY2wwc1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1emRHRjBaUzV6ZEdGeWRFSnZkVzVrUld4bGJXVnVkQ3hjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXViV0Y1WW1WVGRXZG5aWE4wUW1sdVpHbHVaMEYwUTNWeWMyOXlLSE5qWlc1bFVHOXBiblJsY2lrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tIUm9hWE11YzNSaGRHVXViWFZzZEdsRmJHVnRaVzUwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0I3SUcxMWJIUnBSV3hsYldWdWRDQjlJRDBnZEdocGN5NXpkR0YwWlR0Y2JpQWdJQ0FnSUdOdmJuTjBJSHNnZURvZ2NuZ3NJSGs2SUhKNUlIMGdQU0J0ZFd4MGFVVnNaVzFsYm5RN1hHNWNiaUFnSUNBZ0lHTnZibk4wSUhzZ2NHOXBiblJ6TENCc1lYTjBRMjl0YldsMGRHVmtVRzlwYm5RZ2ZTQTlJRzExYkhScFJXeGxiV1Z1ZER0Y2JpQWdJQ0FnSUdOdmJuTjBJR3hoYzNSUWIybHVkQ0E5SUhCdmFXNTBjMXR3YjJsdWRITXViR1Z1WjNSb0lDMGdNVjA3WEc1Y2JpQWdJQ0FnSUhObGRFTjFjbk52Y2tadmNsTm9ZWEJsS0hSb2FYTXVZMkZ1ZG1GekxDQjBhR2x6TG5OMFlYUmxMbVZzWlcxbGJuUlVlWEJsS1R0Y2JseHVJQ0FnSUNBZ2FXWWdLR3hoYzNSUWIybHVkQ0E5UFQwZ2JHRnpkRU52YlcxcGRIUmxaRkJ2YVc1MEtTQjdYRzRnSUNBZ0lDQWdJQzh2SUdsbUlIZGxJR2hoZG1WdUozUWdlV1YwSUdOeVpXRjBaV1FnWVNCMFpXMXdJSEJ2YVc1MElHRnVaQ0IzWlNkeVpTQmlaWGx2Ym1RZ1kyOXRiV2wwTFhwdmJtVmNiaUFnSUNBZ0lDQWdMeThnZEdoeVpYTm9iMnhrTENCaFpHUWdZU0J3YjJsdWRGeHVJQ0FnSUNBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0FnSUNBZ1pHbHpkR0Z1WTJVeVpDaGNiaUFnSUNBZ0lDQWdJQ0FnSUhOalpXNWxVRzlwYm5SbGNsZ2dMU0J5ZUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSE5qWlc1bFVHOXBiblJsY2xrZ0xTQnllU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGhjM1JRYjJsdWRGc3dYU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGhjM1JRYjJsdWRGc3hYU3hjYmlBZ0lDQWdJQ0FnSUNBcElENDlJRXhKVGtWZlEwOU9Sa2xTVFY5VVNGSkZVMGhQVEVSY2JpQWdJQ0FnSUNBZ0tTQjdYRzRnSUNBZ0lDQWdJQ0FnYlhWMFlYUmxSV3hsYldWdWRDaHRkV3gwYVVWc1pXMWxiblFzSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJ2YVc1MGN6b2dXeTR1TG5CdmFXNTBjeXdnVzNOalpXNWxVRzlwYm5SbGNsZ2dMU0J5ZUN3Z2MyTmxibVZRYjJsdWRHVnlXU0F0SUhKNVhWMHNYRzRnSUNBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdjMlYwUTNWeWMyOXlLSFJvYVhNdVkyRnVkbUZ6TENCRFZWSlRUMUpmVkZsUVJTNVFUMGxPVkVWU0tUdGNiaUFnSUNBZ0lDQWdJQ0F2THlCcGJpQjBhR2x6SUdKeVlXNWphQ3dnZDJVbmNtVWdhVzV6YVdSbElIUm9aU0JqYjIxdGFYUWdlbTl1WlN3Z1lXNWtJRzV2SUhWdVkyOXRiV2wwZEdWa1hHNGdJQ0FnSUNBZ0lDQWdMeThnY0c5cGJuUWdaWGhwYzNSekxpQlVhSFZ6SUdSdklHNXZkR2hwYm1jZ0tHUnZiaWQwSUdGa1pDOXlaVzF2ZG1VZ2NHOXBiblJ6S1M1Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaGNiaUFnSUNBZ0lDQWdjRzlwYm5SekxteGxibWQwYUNBK0lESWdKaVpjYmlBZ0lDQWdJQ0FnYkdGemRFTnZiVzFwZEhSbFpGQnZhVzUwSUNZbVhHNGdJQ0FnSUNBZ0lHUnBjM1JoYm1ObE1tUW9YRzRnSUNBZ0lDQWdJQ0FnYzJObGJtVlFiMmx1ZEdWeVdDQXRJSEo0TEZ4dUlDQWdJQ0FnSUNBZ0lITmpaVzVsVUc5cGJuUmxjbGtnTFNCeWVTeGNiaUFnSUNBZ0lDQWdJQ0JzWVhOMFEyOXRiV2wwZEdWa1VHOXBiblJiTUYwc1hHNGdJQ0FnSUNBZ0lDQWdiR0Z6ZEVOdmJXMXBkSFJsWkZCdmFXNTBXekZkTEZ4dUlDQWdJQ0FnSUNBcElEd2dURWxPUlY5RFQwNUdTVkpOWDFSSVVrVlRTRTlNUkZ4dUlDQWdJQ0FnS1NCN1hHNGdJQ0FnSUNBZ0lITmxkRU4xY25OdmNpaDBhR2x6TG1OaGJuWmhjeXdnUTFWU1UwOVNYMVJaVUVVdVVFOUpUbFJGVWlrN1hHNGdJQ0FnSUNBZ0lHMTFkR0YwWlVWc1pXMWxiblFvYlhWc2RHbEZiR1Z0Wlc1MExDQjdYRzRnSUNBZ0lDQWdJQ0FnY0c5cGJuUnpPaUJ3YjJsdWRITXVjMnhwWTJVb01Dd2dMVEVwTEZ4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwYzFCaGRHaEJURzl2Y0Nod2IybHVkSE1zSUhSb2FYTXVjM1JoZEdVdWVtOXZiUzUyWVd4MVpTa3BJSHRjYmlBZ0lDQWdJQ0FnSUNCelpYUkRkWEp6YjNJb2RHaHBjeTVqWVc1MllYTXNJRU5WVWxOUFVsOVVXVkJGTGxCUFNVNVVSVklwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDOHZJSFZ3WkdGMFpTQnNZWE4wSUhWdVkyOXRiV2wwZEdWa0lIQnZhVzUwWEc0Z0lDQWdJQ0FnSUcxMWRHRjBaVVZzWlcxbGJuUW9iWFZzZEdsRmJHVnRaVzUwTENCN1hHNGdJQ0FnSUNBZ0lDQWdjRzlwYm5Sek9pQmJYRzRnSUNBZ0lDQWdJQ0FnSUNBdUxpNXdiMmx1ZEhNdWMyeHBZMlVvTUN3Z0xURXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1czTmpaVzVsVUc5cGJuUmxjbGdnTFNCeWVDd2djMk5sYm1WUWIybHVkR1Z5V1NBdElISjVYU3hjYmlBZ0lDQWdJQ0FnSUNCZExGeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUdoaGMwUmxjMlZzWldOMFpXUkNkWFIwYjI0Z1BTQkNiMjlzWldGdUtHVjJaVzUwTG1KMWRIUnZibk1wTzF4dUlDQWdJR2xtSUNoY2JpQWdJQ0FnSUdoaGMwUmxjMlZzWldOMFpXUkNkWFIwYjI0Z2ZIeGNiaUFnSUNBZ0lDaDBhR2x6TG5OMFlYUmxMbVZzWlcxbGJuUlVlWEJsSUNFOVBTQmNJbk5sYkdWamRHbHZibHdpSUNZbVhHNGdJQ0FnSUNBZ0lIUm9hWE11YzNSaGRHVXVaV3hsYldWdWRGUjVjR1VnSVQwOUlGd2lkR1Y0ZEZ3aUtWeHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHVnNaVzFsYm5SeklEMGdkR2hwY3k1elkyVnVaUzVuWlhSRmJHVnRaVzUwY3lncE8xeHVYRzRnSUNBZ1kyOXVjM1FnYzJWc1pXTjBaV1JGYkdWdFpXNTBjeUE5SUdkbGRGTmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNb1pXeGxiV1Z1ZEhNc0lIUm9hWE11YzNSaGRHVXBPMXh1SUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJSE5sYkdWamRHVmtSV3hsYldWdWRITXViR1Z1WjNSb0lEMDlQU0F4SUNZbVhHNGdJQ0FnSUNBaGFYTlBkbVZ5VTJOeWIyeHNRbUZ5SUNZbVhHNGdJQ0FnSUNBaGRHaHBjeTV6ZEdGMFpTNWxaR2wwYVc1blRHbHVaV0Z5Uld4bGJXVnVkRnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1pXeGxiV1Z1ZEZkcGRHaFVjbUZ1YzJadmNtMUlZVzVrYkdWVWVYQmxJRDBnWjJWMFJXeGxiV1Z1ZEZkcGRHaFVjbUZ1YzJadmNtMUlZVzVrYkdWVWVYQmxLRnh1SUNBZ0lDQWdJQ0JsYkdWdFpXNTBjeXhjYmlBZ0lDQWdJQ0FnZEdocGN5NXpkR0YwWlN4Y2JpQWdJQ0FnSUNBZ2MyTmxibVZRYjJsdWRHVnlXQ3hjYmlBZ0lDQWdJQ0FnYzJObGJtVlFiMmx1ZEdWeVdTeGNiaUFnSUNBZ0lDQWdkR2hwY3k1emRHRjBaUzU2YjI5dExGeHVJQ0FnSUNBZ0lDQmxkbVZ1ZEM1d2IybHVkR1Z5Vkhsd1pTeGNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0FnSUdWc1pXMWxiblJYYVhSb1ZISmhibk5tYjNKdFNHRnVaR3hsVkhsd1pTQW1KbHh1SUNBZ0lDQWdJQ0JsYkdWdFpXNTBWMmwwYUZSeVlXNXpabTl5YlVoaGJtUnNaVlI1Y0dVdWRISmhibk5tYjNKdFNHRnVaR3hsVkhsd1pWeHVJQ0FnSUNBZ0tTQjdYRzRnSUNBZ0lDQWdJSE5sZEVOMWNuTnZjaWhjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbU5oYm5aaGN5eGNiaUFnSUNBZ0lDQWdJQ0JuWlhSRGRYSnpiM0pHYjNKU1pYTnBlbWx1WjBWc1pXMWxiblFvWld4bGJXVnVkRmRwZEdoVWNtRnVjMlp2Y20xSVlXNWtiR1ZVZVhCbEtTeGNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMGdaV3h6WlNCcFppQW9jMlZzWldOMFpXUkZiR1Z0Wlc1MGN5NXNaVzVuZEdnZ1BpQXhJQ1ltSUNGcGMwOTJaWEpUWTNKdmJHeENZWElwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSFJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1VnUFNCblpYUlVjbUZ1YzJadmNtMUlZVzVrYkdWVWVYQmxSbkp2YlVOdmIzSmtjeWhjYmlBZ0lDQWdJQ0FnWjJWMFEyOXRiVzl1UW05MWJtUnpLSE5sYkdWamRHVmtSV3hsYldWdWRITXBMRnh1SUNBZ0lDQWdJQ0J6WTJWdVpWQnZhVzUwWlhKWUxGeHVJQ0FnSUNBZ0lDQnpZMlZ1WlZCdmFXNTBaWEpaTEZ4dUlDQWdJQ0FnSUNCMGFHbHpMbk4wWVhSbExucHZiMjBzWEc0Z0lDQWdJQ0FnSUdWMlpXNTBMbkJ2YVc1MFpYSlVlWEJsTEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUdsbUlDaDBjbUZ1YzJadmNtMUlZVzVrYkdWVWVYQmxLU0I3WEc0Z0lDQWdJQ0FnSUhObGRFTjFjbk52Y2loY2JpQWdJQ0FnSUNBZ0lDQjBhR2x6TG1OaGJuWmhjeXhjYmlBZ0lDQWdJQ0FnSUNCblpYUkRkWEp6YjNKR2IzSlNaWE5wZW1sdVowVnNaVzFsYm5Rb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEhKaGJuTm1iM0p0U0dGdVpHeGxWSGx3WlN4Y2JpQWdJQ0FnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHaHBkRVZzWlcxbGJuUWdQU0IwYUdsekxtZGxkRVZzWlcxbGJuUkJkRkJ2YzJsMGFXOXVLRnh1SUNBZ0lDQWdjMk5sYm1WUWIybHVkR1Z5TG5nc1hHNGdJQ0FnSUNCelkyVnVaVkJ2YVc1MFpYSXVlU3hjYmlBZ0lDQXBPMXh1SUNBZ0lIUm9hWE11YUdsMFRHbHVhMFZzWlcxbGJuUWdQU0IwYUdsekxtZGxkRVZzWlcxbGJuUk1hVzVyUVhSUWIzTnBkR2x2YmloY2JpQWdJQ0FnSUhOalpXNWxVRzlwYm5SbGNpeGNiaUFnSUNBZ0lHaHBkRVZzWlcxbGJuUXNYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJSFJvYVhNdWFHbDBUR2x1YTBWc1pXMWxiblFnSmlaY2JpQWdJQ0FnSUNGMGFHbHpMbk4wWVhSbExuTmxiR1ZqZEdWa1JXeGxiV1Z1ZEVsa2MxdDBhR2x6TG1ocGRFeHBibXRGYkdWdFpXNTBMbWxrWFZ4dUlDQWdJQ2tnZTF4dUlDQWdJQ0FnYzJWMFEzVnljMjl5S0hSb2FYTXVZMkZ1ZG1GekxDQkRWVkpUVDFKZlZGbFFSUzVRVDBsT1ZFVlNLVHRjYmlBZ0lDQWdJSE5vYjNkSWVYQmxjbXhwYm10VWIyOXNkR2x3S0hSb2FYTXVhR2wwVEdsdWEwVnNaVzFsYm5Rc0lIUm9hWE11YzNSaGRHVXBPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCb2FXUmxTSGx3WlhKc2FXNXJWRzl2Ykdsd0tDazdYRzRnSUNBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0FnSUdocGRFVnNaVzFsYm5RZ0ppWmNiaUFnSUNBZ0lDQWdhR2wwUld4bGJXVnVkQzVzYVc1cklDWW1YRzRnSUNBZ0lDQWdJSFJvYVhNdWMzUmhkR1V1YzJWc1pXTjBaV1JGYkdWdFpXNTBTV1J6VzJocGRFVnNaVzFsYm5RdWFXUmRJQ1ltWEc0Z0lDQWdJQ0FnSUNGMGFHbHpMbU52Ym5SbGVIUk5aVzUxVDNCbGJpQW1KbHh1SUNBZ0lDQWdJQ0FoZEdocGN5NXpkR0YwWlM1emFHOTNTSGx3WlhKc2FXNXJVRzl3ZFhCY2JpQWdJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0hzZ2MyaHZkMGg1Y0dWeWJHbHVhMUJ2Y0hWd09pQmNJbWx1Wm05Y0lpQjlLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbk4wWVhSbExtVnNaVzFsYm5SVWVYQmxJRDA5UFNCY0luUmxlSFJjSWlrZ2UxeHVJQ0FnSUNBZ0lDQnpaWFJEZFhKemIzSW9YRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NWpZVzUyWVhNc1hHNGdJQ0FnSUNBZ0lDQWdhWE5VWlhoMFJXeGxiV1Z1ZENob2FYUkZiR1Z0Wlc1MEtTQS9JRU5WVWxOUFVsOVVXVkJGTGxSRldGUWdPaUJEVlZKVFQxSmZWRmxRUlM1RFVrOVRVMGhCU1ZJc1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLSFJvYVhNdWMzUmhkR1V1ZG1sbGQwMXZaR1ZGYm1GaWJHVmtLU0I3WEc0Z0lDQWdJQ0FnSUhObGRFTjFjbk52Y2loMGFHbHpMbU5oYm5aaGN5d2dRMVZTVTA5U1gxUlpVRVV1UjFKQlFpazdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLR2x6VDNabGNsTmpjbTlzYkVKaGNpa2dlMXh1SUNBZ0lDQWdJQ0J6WlhSRGRYSnpiM0lvZEdocGN5NWpZVzUyWVhNc0lFTlZVbE5QVWw5VVdWQkZMa0ZWVkU4cE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaDBhR2x6TG5OMFlYUmxMbVZrYVhScGJtZE1hVzVsWVhKRmJHVnRaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdWc1pXMWxiblFnUFNCTWFXNWxZWEpGYkdWdFpXNTBSV1JwZEc5eUxtZGxkRVZzWlcxbGJuUW9YRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NXpkR0YwWlM1bFpHbDBhVzVuVEdsdVpXRnlSV3hsYldWdWRDNWxiR1Z0Wlc1MFNXUXNYRzRnSUNBZ0lDQWdJQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdJQ0FnSUdWc1pXMWxiblFnSmlaY2JpQWdJQ0FnSUNBZ0lDQnBjMGhwZEhScGJtZEZiR1Z0Wlc1MFRtOTBRMjl1YzJsa1pYSnBibWRDYjNWdVpHbHVaMEp2ZUNobGJHVnRaVzUwTENCMGFHbHpMbk4wWVhSbExDQmJYRzRnSUNBZ0lDQWdJQ0FnSUNCelkyVnVaVkJ2YVc1MFpYSXVlQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lITmpaVzVsVUc5cGJuUmxjaTU1TEZ4dUlDQWdJQ0FnSUNBZ0lGMHBYRzRnSUNBZ0lDQWdJQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lITmxkRU4xY25OdmNpaDBhR2x6TG1OaGJuWmhjeXdnUTFWU1UwOVNYMVJaVUVVdVRVOVdSU2s3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ2MyVjBRM1Z5YzI5eUtIUm9hWE11WTJGdWRtRnpMQ0JEVlZKVFQxSmZWRmxRUlM1QlZWUlBLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNCbGJITmxJR2xtSUNoY2JpQWdJQ0FnSUNBZ0x5OGdhV1lnZFhOcGJtY2dZMjFrTDJOMGNtd3NJSGRsSjNKbElHNXZkQ0JrY21GbloybHVaMXh1SUNBZ0lDQWdJQ0FoWlhabGJuUmJTMFZaVXk1RFZGSk1YMDlTWDBOTlJGMGdKaVpjYmlBZ0lDQWdJQ0FnS0docGRFVnNaVzFsYm5RZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxtbHpTR2wwZEdsdVowTnZiVzF2YmtKdmRXNWthVzVuUW05NFQyWlRaV3hsWTNSbFpFVnNaVzFsYm5SektGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzJObGJtVlFiMmx1ZEdWeUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzJWc1pXTjBaV1JGYkdWdFpXNTBjeXhjYmlBZ0lDQWdJQ0FnSUNBcEtWeHVJQ0FnSUNBZ0tTQjdYRzRnSUNBZ0lDQWdJSE5sZEVOMWNuTnZjaWgwYUdsekxtTmhiblpoY3l3Z1ExVlNVMDlTWDFSWlVFVXVUVTlXUlNrN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCelpYUkRkWEp6YjNJb2RHaHBjeTVqWVc1MllYTXNJRU5WVWxOUFVsOVVXVkJGTGtGVlZFOHBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlR0Y2JseHVJQ0F2THlCelpYUWdkRzkxWTJnZ2JXOTJhVzVuSUdadmNpQnRiMkpwYkdVZ1kyOXVkR1Y0ZENCdFpXNTFYRzRnSUhCeWFYWmhkR1VnYUdGdVpHeGxWRzkxWTJoTmIzWmxJRDBnS0dWMlpXNTBPaUJTWldGamRDNVViM1ZqYUVWMlpXNTBQRWhVVFV4RFlXNTJZWE5GYkdWdFpXNTBQaWtnUFQ0Z2UxeHVJQ0FnSUdsdWRtRnNhV1JoZEdWRGIyNTBaWGgwVFdWdWRTQTlJSFJ5ZFdVN1hHNGdJSDA3WEc1Y2JpQWdjSEpwZG1GMFpTQm9ZVzVrYkdWRFlXNTJZWE5RYjJsdWRHVnlSRzkzYmlBOUlDaGNiaUFnSUNCbGRtVnVkRG9nVW1WaFkzUXVVRzlwYm5SbGNrVjJaVzUwUEVoVVRVeERZVzUyWVhORmJHVnRaVzUwUGl4Y2JpQWdLU0E5UGlCN1hHNGdJQ0FnTHk4Z2NtVnRiM1psSUdGdWVTQmhZM1JwZG1VZ2MyVnNaV04wYVc5dUlIZG9aVzRnZDJVZ2MzUmhjblFnZEc4Z2FXNTBaWEpoWTNRZ2QybDBhQ0JqWVc1MllYTmNiaUFnSUNBdkx5QW9iV0ZwYm14NUxDQjNaU0JqWVhKbElHRmliM1YwSUhKbGJXOTJhVzVuSUhObGJHVmpkR2x2YmlCdmRYUnphV1JsSUhSb1pTQmpiMjF3YjI1bGJuUWdkMmhwWTJoY2JpQWdJQ0F2THlBZ2QyOTFiR1FnY0hKbGRtVnVkQ0J2ZFhJZ1kyOXdlU0JvWVc1a2JHbHVaeUJ2ZEdobGNuZHBjMlVwWEc0Z0lDQWdZMjl1YzNRZ2MyVnNaV04wYVc5dUlEMGdaRzlqZFcxbGJuUXVaMlYwVTJWc1pXTjBhVzl1S0NrN1hHNGdJQ0FnYVdZZ0tITmxiR1ZqZEdsdmJqOHVZVzVqYUc5eVRtOWtaU2tnZTF4dUlDQWdJQ0FnYzJWc1pXTjBhVzl1TG5KbGJXOTJaVUZzYkZKaGJtZGxjeWdwTzF4dUlDQWdJSDFjYmlBZ0lDQjBhR2x6TG0xaGVXSmxUM0JsYmtOdmJuUmxlSFJOWlc1MVFXWjBaWEpRYjJsdWRHVnlSRzkzYms5dVZHOTFZMmhFWlhacFkyVnpLR1YyWlc1MEtUdGNiaUFnSUNCMGFHbHpMbTFoZVdKbFEyeGxZVzUxY0VGbWRHVnlUV2x6YzJsdVoxQnZhVzUwWlhKVmNDaGxkbVZ1ZENrN1hHNWNiaUFnSUNBdkwyWnBjbVZ6SUc5dWJIa2diMjVqWlN3Z2FXWWdjR1Z1SUdseklHUmxkR1ZqZEdWa0xDQndaVzVOYjJSbElHbHpJR1Z1WVdKc1pXUmNiaUFnSUNBdkwzUm9aU0IxYzJWeUlHTmhiaUJrYVhOaFlteGxJSFJvYVhNZ1lua2dkRzluWjJ4cGJtY2dkR2hsSUhCbGJrMXZaR1VnWW5WMGRHOXVYRzRnSUNBZ2FXWWdLQ0YwYUdsekxuTjBZWFJsTG5CbGJrUmxkR1ZqZEdWa0lDWW1JR1YyWlc1MExuQnZhVzUwWlhKVWVYQmxJRDA5UFNCY0luQmxibHdpS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLQ2h3Y21WMlUzUmhkR1VwSUQwK0lIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdJQ0J3Wlc1TmIyUmxPaUIwY25WbExGeHVJQ0FnSUNBZ0lDQWdJSEJsYmtSbGRHVmpkR1ZrT2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHbHpVR0Z1Ym1sdVp5a2dlMXh1SUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUgxY2JpQWdJQ0IwYUdsekxteGhjM1JRYjJsdWRHVnlSRzkzYmlBOUlHVjJaVzUwTzF4dUlDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2UxeHVJQ0FnSUNBZ2JHRnpkRkJ2YVc1MFpYSkViM2R1VjJsMGFEb2daWFpsYm5RdWNHOXBiblJsY2xSNWNHVXNYRzRnSUNBZ0lDQmpkWEp6YjNKQ2RYUjBiMjQ2SUZ3aVpHOTNibHdpTEZ4dUlDQWdJSDBwTzF4dUlDQWdJSFJvYVhNdWMyRjJaVkJ2YVc1MFpYSW9aWFpsYm5RdVkyeHBaVzUwV0N3Z1pYWmxiblF1WTJ4cFpXNTBXU3dnWENKa2IzZHVYQ0lwTzF4dVhHNGdJQ0FnYVdZZ0tIUm9hWE11YUdGdVpHeGxRMkZ1ZG1GelVHRnVWWE5wYm1kWGFHVmxiRTl5VTNCaFkyVkVjbUZuS0dWMlpXNTBLU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJRzl1YkhrZ2FHRnVaR3hsSUd4bFpuUWdiVzkxYzJVZ1luVjBkRzl1SUc5eUlIUnZkV05vWEc0Z0lDQWdhV1lnS0Z4dUlDQWdJQ0FnWlhabGJuUXVZblYwZEc5dUlDRTlQU0JRVDBsT1ZFVlNYMEpWVkZSUFRpNU5RVWxPSUNZbVhHNGdJQ0FnSUNCbGRtVnVkQzVpZFhSMGIyNGdJVDA5SUZCUFNVNVVSVkpmUWxWVVZFOU9MbFJQVlVOSVhHNGdJQ0FnS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkR2hwY3k1MWNHUmhkR1ZIWlhOMGRYSmxUMjVRYjJsdWRHVnlSRzkzYmlobGRtVnVkQ2s3WEc1Y2JpQWdJQ0F2THlCa2IyNG5kQ0J6Wld4bFkzUWdkMmhwYkdVZ2NHRnVibWx1WjF4dUlDQWdJR2xtSUNoblpYTjBkWEpsTG5CdmFXNTBaWEp6TG5OcGVtVWdQaUF4S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnVTNSaGRHVWdabTl5SUhSb1pTQmtkWEpoZEdsdmJpQnZaaUJoSUhCdmFXNTBaWElnYVc1MFpYSmhZM1JwYjI0c0lIZG9hV05vSUhOMFlYSjBjeUIzYVhSb0lHRmNiaUFnSUNBdkx5QndiMmx1ZEdWeVJHOTNiaUJsZG1WdWRDd2daVzVrY3lCM2FYUm9JR0VnY0c5cGJuUmxjbFZ3SUdWMlpXNTBJQ2h2Y2lCaGJtOTBhR1Z5SUhCdmFXNTBaWEpFYjNkdUtWeHVJQ0FnSUdOdmJuTjBJSEJ2YVc1MFpYSkViM2R1VTNSaGRHVWdQU0IwYUdsekxtbHVhWFJwWVd4UWIybHVkR1Z5Ukc5M2JsTjBZWFJsS0dWMlpXNTBLVHRjYmx4dUlDQWdJR2xtSUNoMGFHbHpMbWhoYm1Sc1pVUnlZV2RuYVc1blUyTnliMnhzUW1GeUtHVjJaVzUwTENCd2IybHVkR1Z5Ukc5M2JsTjBZWFJsS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUZOcGJtTmxJR052Ym5SbGVIUWdiV1Z1ZFNCamJHOXpaWE1nYjI0Z2NHOXBiblJsY2lCa2IzZHVJSE52SUhObGRIUnBibWNnZEc4Z1ptRnNjMlZjYmlBZ0lDQjBhR2x6TG1OdmJuUmxlSFJOWlc1MVQzQmxiaUE5SUdaaGJITmxPMXh1SUNBZ0lIUm9hWE11WTJ4bFlYSlRaV3hsWTNScGIyNUpaazV2ZEZWemFXNW5VMlZzWldOMGFXOXVLQ2s3WEc0Z0lDQWdkR2hwY3k1MWNHUmhkR1ZDYVc1a2FXNW5SVzVoWW14bFpFOXVVRzlwYm5SbGNrMXZkbVVvWlhabGJuUXBPMXh1WEc0Z0lDQWdhV1lnS0hSb2FYTXVhR0Z1Wkd4bFUyVnNaV04wYVc5dVQyNVFiMmx1ZEdWeVJHOTNiaWhsZG1WdWRDd2djRzlwYm5SbGNrUnZkMjVUZEdGMFpTa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0JoYkd4dmQwOXVVRzlwYm5SbGNrUnZkMjRnUFZ4dUlDQWdJQ0FnSVhSb2FYTXVjM1JoZEdVdWNHVnVUVzlrWlNCOGZGeHVJQ0FnSUNBZ1pYWmxiblF1Y0c5cGJuUmxjbFI1Y0dVZ0lUMDlJRndpZEc5MVkyaGNJaUI4ZkZ4dUlDQWdJQ0FnZEdocGN5NXpkR0YwWlM1bGJHVnRaVzUwVkhsd1pTQTlQVDBnWENKelpXeGxZM1JwYjI1Y0lpQjhmRnh1SUNBZ0lDQWdkR2hwY3k1emRHRjBaUzVsYkdWdFpXNTBWSGx3WlNBOVBUMGdYQ0owWlhoMFhDSWdmSHhjYmlBZ0lDQWdJSFJvYVhNdWMzUmhkR1V1Wld4bGJXVnVkRlI1Y0dVZ1BUMDlJRndpYVcxaFoyVmNJanRjYmx4dUlDQWdJR2xtSUNnaFlXeHNiM2RQYmxCdmFXNTBaWEpFYjNkdUtTQjdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tIUm9hWE11YzNSaGRHVXVaV3hsYldWdWRGUjVjR1VnUFQwOUlGd2lkR1Y0ZEZ3aUtTQjdYRzRnSUNBZ0lDQjBhR2x6TG1oaGJtUnNaVlJsZUhSUGJsQnZhVzUwWlhKRWIzZHVLR1YyWlc1MExDQndiMmx1ZEdWeVJHOTNibE4wWVhSbEtUdGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0I5SUdWc2MyVWdhV1lnS0Z4dUlDQWdJQ0FnZEdocGN5NXpkR0YwWlM1bGJHVnRaVzUwVkhsd1pTQTlQVDBnWENKaGNuSnZkMXdpSUh4OFhHNGdJQ0FnSUNCMGFHbHpMbk4wWVhSbExtVnNaVzFsYm5SVWVYQmxJRDA5UFNCY0lteHBibVZjSWx4dUlDQWdJQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NW9ZVzVrYkdWTWFXNWxZWEpGYkdWdFpXNTBUMjVRYjJsdWRHVnlSRzkzYmloY2JpQWdJQ0FnSUNBZ1pYWmxiblFzWEc0Z0lDQWdJQ0FnSUhSb2FYTXVjM1JoZEdVdVpXeGxiV1Z1ZEZSNWNHVXNYRzRnSUNBZ0lDQWdJSEJ2YVc1MFpYSkViM2R1VTNSaGRHVXNYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMGdaV3h6WlNCcFppQW9kR2hwY3k1emRHRjBaUzVsYkdWdFpXNTBWSGx3WlNBOVBUMGdYQ0pwYldGblpWd2lLU0I3WEc0Z0lDQWdJQ0F2THlCeVpYTmxkQ0JwYldGblpTQndjbVYyYVdWM0lHOXVJSEJ2YVc1MFpYSmtiM2R1WEc0Z0lDQWdJQ0J6WlhSRGRYSnpiM0lvZEdocGN5NWpZVzUyWVhNc0lFTlZVbE5QVWw5VVdWQkZMa05TVDFOVFNFRkpVaWs3WEc1Y2JpQWdJQ0FnSUdsbUlDZ2hkR2hwY3k1emRHRjBaUzV3Wlc1a2FXNW5TVzFoWjJWRmJHVnRaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0FnSUdSeVlXZG5hVzVuUld4bGJXVnVkRG9nZEdocGN5NXpkR0YwWlM1d1pXNWthVzVuU1cxaFoyVkZiR1Z0Wlc1MExGeHVJQ0FnSUNBZ0lDQmxaR2wwYVc1blJXeGxiV1Z1ZERvZ2RHaHBjeTV6ZEdGMFpTNXdaVzVrYVc1blNXMWhaMlZGYkdWdFpXNTBMRnh1SUNBZ0lDQWdJQ0J3Wlc1a2FXNW5TVzFoWjJWRmJHVnRaVzUwT2lCdWRXeHNMRnh1SUNBZ0lDQWdJQ0J0ZFd4MGFVVnNaVzFsYm5RNklHNTFiR3dzWEc0Z0lDQWdJQ0I5S1R0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnZXlCNExDQjVJSDBnUFNCMmFXVjNjRzl5ZEVOdmIzSmtjMVJ2VTJObGJtVkRiMjl5WkhNb1pYWmxiblFzSUhSb2FYTXVjM1JoZEdVcE8xeHVJQ0FnSUNBZ2JYVjBZWFJsUld4bGJXVnVkQ2gwYUdsekxuTjBZWFJsTG5CbGJtUnBibWRKYldGblpVVnNaVzFsYm5Rc0lIdGNiaUFnSUNBZ0lDQWdlQ3hjYmlBZ0lDQWdJQ0FnZVN4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb2RHaHBjeTV6ZEdGMFpTNWxiR1Z0Wlc1MFZIbHdaU0E5UFQwZ1hDSm1jbVZsWkhKaGQxd2lLU0I3WEc0Z0lDQWdJQ0IwYUdsekxtaGhibVJzWlVaeVpXVkVjbUYzUld4bGJXVnVkRTl1VUc5cGJuUmxja1J2ZDI0b1hHNGdJQ0FnSUNBZ0lHVjJaVzUwTEZ4dUlDQWdJQ0FnSUNCMGFHbHpMbk4wWVhSbExtVnNaVzFsYm5SVWVYQmxMRnh1SUNBZ0lDQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVqY21WaGRHVkhaVzVsY21salJXeGxiV1Z1ZEU5dVVHOXBiblJsY2tSdmQyNG9YRzRnSUNBZ0lDQWdJSFJvYVhNdWMzUmhkR1V1Wld4bGJXVnVkRlI1Y0dVc1hHNGdJQ0FnSUNBZ0lIQnZhVzUwWlhKRWIzZHVVM1JoZEdVc1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJRzl1VUc5cGJuUmxjazF2ZG1VZ1BWeHVJQ0FnSUNBZ2RHaHBjeTV2YmxCdmFXNTBaWEpOYjNabFJuSnZiVkJ2YVc1MFpYSkViM2R1U0dGdVpHeGxjaWh3YjJsdWRHVnlSRzkzYmxOMFlYUmxLVHRjYmx4dUlDQWdJR052Ym5OMElHOXVVRzlwYm5SbGNsVndJRDFjYmlBZ0lDQWdJSFJvYVhNdWIyNVFiMmx1ZEdWeVZYQkdjbTl0VUc5cGJuUmxja1J2ZDI1SVlXNWtiR1Z5S0hCdmFXNTBaWEpFYjNkdVUzUmhkR1VwTzF4dVhHNGdJQ0FnWTI5dWMzUWdiMjVMWlhsRWIzZHVJRDBnZEdocGN5NXZia3RsZVVSdmQyNUdjbTl0VUc5cGJuUmxja1J2ZDI1SVlXNWtiR1Z5S0hCdmFXNTBaWEpFYjNkdVUzUmhkR1VwTzF4dUlDQWdJR052Ym5OMElHOXVTMlY1VlhBZ1BTQjBhR2x6TG05dVMyVjVWWEJHY205dFVHOXBiblJsY2tSdmQyNUlZVzVrYkdWeUtIQnZhVzUwWlhKRWIzZHVVM1JoZEdVcE8xeHVYRzRnSUNBZ2JHRnpkRkJ2YVc1MFpYSlZjQ0E5SUc5dVVHOXBiblJsY2xWd08xeHVYRzRnSUNBZ2FXWWdLQ0YwYUdsekxuTjBZWFJsTG5acFpYZE5iMlJsUlc1aFlteGxaQ2tnZTF4dUlDQWdJQ0FnZDJsdVpHOTNMbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSW9SVlpGVGxRdVVFOUpUbFJGVWw5TlQxWkZMQ0J2YmxCdmFXNTBaWEpOYjNabEtUdGNiaUFnSUNBZ0lIZHBibVJ2ZHk1aFpHUkZkbVZ1ZEV4cGMzUmxibVZ5S0VWV1JVNVVMbEJQU1U1VVJWSmZWVkFzSUc5dVVHOXBiblJsY2xWd0tUdGNiaUFnSUNBZ0lIZHBibVJ2ZHk1aFpHUkZkbVZ1ZEV4cGMzUmxibVZ5S0VWV1JVNVVMa3RGV1VSUFYwNHNJRzl1UzJWNVJHOTNiaWs3WEc0Z0lDQWdJQ0IzYVc1a2IzY3VZV1JrUlhabGJuUk1hWE4wWlc1bGNpaEZWa1ZPVkM1TFJWbFZVQ3dnYjI1TFpYbFZjQ2s3WEc0Z0lDQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbVYyWlc1MFRHbHpkR1Z1WlhKekxtOXVUVzkyWlNBOUlHOXVVRzlwYm5SbGNrMXZkbVU3WEc0Z0lDQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbVYyWlc1MFRHbHpkR1Z1WlhKekxtOXVWWEFnUFNCdmJsQnZhVzUwWlhKVmNEdGNiaUFnSUNBZ0lIQnZhVzUwWlhKRWIzZHVVM1JoZEdVdVpYWmxiblJNYVhOMFpXNWxjbk11YjI1TFpYbFZjQ0E5SUc5dVMyVjVWWEE3WEc0Z0lDQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbVYyWlc1MFRHbHpkR1Z1WlhKekxtOXVTMlY1Ukc5M2JpQTlJRzl1UzJWNVJHOTNianRjYmlBZ0lDQjlYRzRnSUgwN1hHNWNiaUFnY0hKcGRtRjBaU0JvWVc1a2JHVkRZVzUyWVhOUWIybHVkR1Z5VlhBZ1BTQW9YRzRnSUNBZ1pYWmxiblE2SUZKbFlXTjBMbEJ2YVc1MFpYSkZkbVZ1ZER4SVZFMU1RMkZ1ZG1GelJXeGxiV1Z1ZEQ0c1hHNGdJQ2tnUFQ0Z2UxeHVJQ0FnSUhSb2FYTXViR0Z6ZEZCdmFXNTBaWEpWY0NBOUlHVjJaVzUwTzF4dUlDQWdJR052Ym5OMElHbHpWRzkxWTJoVFkzSmxaVzRnUFNCYlhDSndaVzVjSWl3Z1hDSjBiM1ZqYUZ3aVhTNXBibU5zZFdSbGN5aGxkbVZ1ZEM1d2IybHVkR1Z5Vkhsd1pTazdYRzRnSUNBZ2FXWWdLR2x6Vkc5MVkyaFRZM0psWlc0cElIdGNiaUFnSUNBZ0lHTnZibk4wSUhOalpXNWxVRzlwYm5SbGNpQTlJSFpwWlhkd2IzSjBRMjl2Y21SelZHOVRZMlZ1WlVOdmIzSmtjeWhjYmlBZ0lDQWdJQ0FnZXlCamJHbGxiblJZT2lCbGRtVnVkQzVqYkdsbGJuUllMQ0JqYkdsbGJuUlpPaUJsZG1WdWRDNWpiR2xsYm5SWklIMHNYRzRnSUNBZ0lDQWdJSFJvYVhNdWMzUmhkR1VzWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnWTI5dWMzUWdhR2wwUld4bGJXVnVkQ0E5SUhSb2FYTXVaMlYwUld4bGJXVnVkRUYwVUc5emFYUnBiMjRvWEc0Z0lDQWdJQ0FnSUhOalpXNWxVRzlwYm5SbGNpNTRMRnh1SUNBZ0lDQWdJQ0J6WTJWdVpWQnZhVzUwWlhJdWVTeGNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQjBhR2x6TG1ocGRFeHBibXRGYkdWdFpXNTBJRDBnZEdocGN5NW5aWFJGYkdWdFpXNTBUR2x1YTBGMFVHOXphWFJwYjI0b1hHNGdJQ0FnSUNBZ0lITmpaVzVsVUc5cGJuUmxjaXhjYmlBZ0lDQWdJQ0FnYUdsMFJXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoY2JpQWdJQ0FnSUhSb2FYTXVhR2wwVEdsdWEwVnNaVzFsYm5RZ0ppWmNiaUFnSUNBZ0lDRjBhR2x6TG5OMFlYUmxMbk5sYkdWamRHVmtSV3hsYldWdWRFbGtjMXQwYUdsekxtaHBkRXhwYm10RmJHVnRaVzUwTG1sa1hWeHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV5WldScGNtVmpkRlJ2VEdsdWF5aGxkbVZ1ZEN3Z2FYTlViM1ZqYUZOamNtVmxiaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkR2hwY3k1eVpXMXZkbVZRYjJsdWRHVnlLR1YyWlc1MEtUdGNiaUFnZlR0Y2JseHVJQ0J3Y21sMllYUmxJRzFoZVdKbFQzQmxia052Ym5SbGVIUk5aVzUxUVdaMFpYSlFiMmx1ZEdWeVJHOTNiazl1Vkc5MVkyaEVaWFpwWTJWeklEMGdLRnh1SUNBZ0lHVjJaVzUwT2lCU1pXRmpkQzVRYjJsdWRHVnlSWFpsYm5ROFNGUk5URU5oYm5aaGMwVnNaVzFsYm5RK0xGeHVJQ0FwT2lCMmIybGtJRDArSUh0Y2JpQWdJQ0F2THlCa1pXRnNJSGRwZEdnZ2IzQmxibWx1WnlCamIyNTBaWGgwSUcxbGJuVWdiMjRnZEc5MVkyZ2daR1YyYVdObGMxeHVJQ0FnSUdsbUlDaGxkbVZ1ZEM1d2IybHVkR1Z5Vkhsd1pTQTlQVDBnWENKMGIzVmphRndpS1NCN1hHNGdJQ0FnSUNCcGJuWmhiR2xrWVhSbFEyOXVkR1Y0ZEUxbGJuVWdQU0JtWVd4elpUdGNibHh1SUNBZ0lDQWdhV1lnS0hSdmRXTm9WR2x0Wlc5MWRDa2dlMXh1SUNBZ0lDQWdJQ0F2THlCSlppQjBhR1Z5WlNkeklHRnNjbVZoWkhrZ1lTQjBiM1ZqYUZScGJXVnZkWFFzSUhSb2FYTWdiV1ZoYm5NZ2RHaGhkQ0IwYUdWeVpTZHpJR0Z1YjNSb1pYSmNiaUFnSUNBZ0lDQWdMeThnZEc5MVkyZ2daRzkzYmlCaGJtUWdkMlVnWVhKbElHUnZhVzVuSUdGdWIzUm9aWElnZEc5MVkyZ3NJSE52SUhkbElITm9iM1ZzWkc0bmRDQnZjR1Z1SUhSb1pWeHVJQ0FnSUNBZ0lDQXZMeUJqYjI1MFpYaDBJRzFsYm5VdVhHNGdJQ0FnSUNBZ0lHbHVkbUZzYVdSaGRHVkRiMjUwWlhoMFRXVnVkU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQXZMeUJ2Y0dWdUlIUm9aU0JqYjI1MFpYaDBJRzFsYm5VZ2QybDBhQ0IwYUdVZ1ptbHljM1FnZEc5MVkyZ25jeUJqYkdsbGJuUllJR0Z1WkNCamJHbGxiblJaWEc0Z0lDQWdJQ0FnSUM4dklHbG1JSFJvWlNCMGIzVmphQ0JwY3lCdWIzUWdiVzkyYVc1blhHNGdJQ0FnSUNBZ0lIUnZkV05vVkdsdFpXOTFkQ0E5SUhkcGJtUnZkeTV6WlhSVWFXMWxiM1YwS0NncElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNCMGIzVmphRlJwYldWdmRYUWdQU0F3TzF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2doYVc1MllXeHBaR0YwWlVOdmJuUmxlSFJOWlc1MUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbWhoYm1Sc1pVTmhiblpoYzBOdmJuUmxlSFJOWlc1MUtHVjJaVzUwS1R0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDBzSUZSUFZVTklYME5VV0Y5TlJVNVZYMVJKVFVWUFZWUXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlR0Y2JseHVJQ0J3Y21sMllYUmxJSEpsYzJWMFEyOXVkR1Y0ZEUxbGJuVlVhVzFsY2lBOUlDZ3BJRDArSUh0Y2JpQWdJQ0JqYkdWaGNsUnBiV1Z2ZFhRb2RHOTFZMmhVYVcxbGIzVjBLVHRjYmlBZ0lDQjBiM1ZqYUZScGJXVnZkWFFnUFNBd08xeHVJQ0FnSUdsdWRtRnNhV1JoZEdWRGIyNTBaWGgwVFdWdWRTQTlJR1poYkhObE8xeHVJQ0I5TzF4dVhHNGdJSEJ5YVhaaGRHVWdiV0Y1WW1WRGJHVmhiblZ3UVdaMFpYSk5hWE56YVc1blVHOXBiblJsY2xWd0tGeHVJQ0FnSUdWMlpXNTBPaUJTWldGamRDNVFiMmx1ZEdWeVJYWmxiblE4U0ZSTlRFTmhiblpoYzBWc1pXMWxiblErTEZ4dUlDQXBPaUIyYjJsa0lIdGNiaUFnSUNCcFppQW9iR0Z6ZEZCdmFXNTBaWEpWY0NBaFBUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0x5OGdWVzVtYjNKMGRXNWhkR1ZzZVN3Z2MyOXRaWFJwYldWeklIZGxJR1J2YmlkMElHZGxkQ0JoSUhCdmFXNTBaWEoxY0NCaFpuUmxjaUJoSUhCdmFXNTBaWEprYjNkdUxGeHVJQ0FnSUNBZ0x5OGdkR2hwY3lCallXNGdhR0Z3Y0dWdUlIZG9aVzRnWVNCamIyNTBaWGgwZFdGc0lHMWxiblVnYjNJZ1lXeGxjblFnYVhNZ2RISnBaMmRsY21Wa0xpQkpiaUJ2Y21SbGNpQjBieUJoZG05cFpGeHVJQ0FnSUNBZ0x5OGdZbVZwYm1jZ2FXNGdZU0IzWldseVpDQnpkR0YwWlN3Z2QyVWdZMnhsWVc0Z2RYQWdiMjRnZEdobElHNWxlSFFnY0c5cGJuUmxjbVJ2ZDI1Y2JpQWdJQ0FnSUd4aGMzUlFiMmx1ZEdWeVZYQW9aWFpsYm5RcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHZJRkpsZEhWeWJuTWdkMmhsZEdobGNpQjBhR1VnWlhabGJuUWdhWE1nWVNCd1lXNXVhVzVuWEc0Z0lIQnlhWFpoZEdVZ2FHRnVaR3hsUTJGdWRtRnpVR0Z1VlhOcGJtZFhhR1ZsYkU5eVUzQmhZMlZFY21GbklEMGdLRnh1SUNBZ0lHVjJaVzUwT2lCU1pXRmpkQzVRYjJsdWRHVnlSWFpsYm5ROFNGUk5URU5oYm5aaGMwVnNaVzFsYm5RK0xGeHVJQ0FwT2lCaWIyOXNaV0Z1SUQwK0lIdGNiaUFnSUNCcFppQW9YRzRnSUNBZ0lDQWhLRnh1SUNBZ0lDQWdJQ0JuWlhOMGRYSmxMbkJ2YVc1MFpYSnpMbk5wZW1VZ1BUMDlJREFnSmlaY2JpQWdJQ0FnSUNBZ0tHVjJaVzUwTG1KMWRIUnZiaUE5UFQwZ1VFOUpUbFJGVWw5Q1ZWUlVUMDR1VjBoRlJVd2dmSHhjYmlBZ0lDQWdJQ0FnSUNBb1pYWmxiblF1WW5WMGRHOXVJRDA5UFNCUVQwbE9WRVZTWDBKVlZGUlBUaTVOUVVsT0lDWW1JR2x6U0c5c1pHbHVaMU53WVdObEtTQjhmRnh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVjM1JoZEdVdWRtbGxkMDF2WkdWRmJtRmliR1ZrS1Z4dUlDQWdJQ0FnS1NCOGZGeHVJQ0FnSUNBZ2FYTlVaWGgwUld4bGJXVnVkQ2gwYUdsekxuTjBZWFJsTG1Wa2FYUnBibWRGYkdWdFpXNTBLVnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJSDFjYmlBZ0lDQnBjMUJoYm01cGJtY2dQU0IwY25WbE8xeHVJQ0FnSUdWMlpXNTBMbkJ5WlhabGJuUkVaV1poZFd4MEtDazdYRzVjYmlBZ0lDQnNaWFFnYm1WNGRGQmhjM1JsVUhKbGRtVnVkR1ZrSUQwZ1ptRnNjMlU3WEc0Z0lDQWdZMjl1YzNRZ2FYTk1hVzUxZUNBOUlDOU1hVzUxZUM4dWRHVnpkQ2gzYVc1a2IzY3VibUYyYVdkaGRHOXlMbkJzWVhSbWIzSnRLVHRjYmx4dUlDQWdJSE5sZEVOMWNuTnZjaWgwYUdsekxtTmhiblpoY3l3Z1ExVlNVMDlTWDFSWlVFVXVSMUpCUWtKSlRrY3BPMXh1SUNBZ0lHeGxkQ0I3SUdOc2FXVnVkRmc2SUd4aGMzUllMQ0JqYkdsbGJuUlpPaUJzWVhOMFdTQjlJRDBnWlhabGJuUTdYRzRnSUNBZ1kyOXVjM1FnYjI1UWIybHVkR1Z5VFc5MlpTQTlJSGRwZEdoQ1lYUmphR1ZrVlhCa1lYUmxjMVJvY205MGRHeGxaQ2dvWlhabGJuUTZJRkJ2YVc1MFpYSkZkbVZ1ZENrZ1BUNGdlMXh1SUNBZ0lDQWdZMjl1YzNRZ1pHVnNkR0ZZSUQwZ2JHRnpkRmdnTFNCbGRtVnVkQzVqYkdsbGJuUllPMXh1SUNBZ0lDQWdZMjl1YzNRZ1pHVnNkR0ZaSUQwZ2JHRnpkRmtnTFNCbGRtVnVkQzVqYkdsbGJuUlpPMXh1SUNBZ0lDQWdiR0Z6ZEZnZ1BTQmxkbVZ1ZEM1amJHbGxiblJZTzF4dUlDQWdJQ0FnYkdGemRGa2dQU0JsZG1WdWRDNWpiR2xsYm5SWk8xeHVYRzRnSUNBZ0lDQXZLbHh1SUNBZ0lDQWdJQ29nVUhKbGRtVnVkQ0J3WVhOMFpTQmxkbVZ1ZENCcFppQjNaU0J0YjNabElIZG9hV3hsSUcxcFpHUnNaU0JqYkdsamEybHVaeUJ2YmlCTWFXNTFlQzVjYmlBZ0lDQWdJQ0FxSUZObFpTQnBjM04xWlNBak1UTTRNeTVjYmlBZ0lDQWdJQ0FxTDF4dUlDQWdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ0lDQnBjMHhwYm5WNElDWW1YRzRnSUNBZ0lDQWdJQ0Z1WlhoMFVHRnpkR1ZRY21WMlpXNTBaV1FnSmlaY2JpQWdJQ0FnSUNBZ0tFMWhkR2d1WVdKektHUmxiSFJoV0NrZ1BpQXhJSHg4SUUxaGRHZ3VZV0p6S0dSbGJIUmhXU2tnUGlBeEtWeHVJQ0FnSUNBZ0tTQjdYRzRnSUNBZ0lDQWdJRzVsZUhSUVlYTjBaVkJ5WlhabGJuUmxaQ0E5SUhSeWRXVTdYRzVjYmlBZ0lDQWdJQ0FnTHlvZ1VISmxkbVZ1ZENCMGFHVWdibVY0ZENCd1lYTjBaU0JsZG1WdWRDQXFMMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQndjbVYyWlc1MFRtVjRkRkJoYzNSbElEMGdLR1YyWlc1ME9pQkRiR2x3WW05aGNtUkZkbVZ1ZENrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdSdlkzVnRaVzUwTG1KdlpIa3VjbVZ0YjNabFJYWmxiblJNYVhOMFpXNWxjaWhGVmtWT1ZDNVFRVk5VUlN3Z2NISmxkbVZ1ZEU1bGVIUlFZWE4wWlNrN1hHNGdJQ0FnSUNBZ0lDQWdaWFpsYm5RdWMzUnZjRkJ5YjNCaFoyRjBhVzl1S0NrN1hHNGdJQ0FnSUNBZ0lIMDdYRzVjYmlBZ0lDQWdJQ0FnTHlwY2JpQWdJQ0FnSUNBZ0lDb2dVbVZsYm1GaWJHVWdibVY0ZENCd1lYTjBaU0JwYmlCallYTmxJRzltSUdScGMyRmliR1ZrSUcxcFpHUnNaU0JqYkdsamF5QndZWE4wWlNCbWIzSmNiaUFnSUNBZ0lDQWdJQ29nWVc1NUlISmxZWE52YmpwY2JpQWdJQ0FnSUNBZ0lDb2dMU0J5YVdkMGFDQmpiR2xqYXlCd1lYTjBaVnh1SUNBZ0lDQWdJQ0FnS2lBdElHVnRjSFI1SUdOc2FYQmliMkZ5WkZ4dUlDQWdJQ0FnSUNBZ0tpOWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1pXNWhZbXhsVG1WNGRGQmhjM1JsSUQwZ0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lITmxkRlJwYldWdmRYUW9LQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWkc5amRXMWxiblF1WW05a2VTNXlaVzF2ZG1WRmRtVnVkRXhwYzNSbGJtVnlLRVZXUlU1VUxsQkJVMVJGTENCd2NtVjJaVzUwVG1WNGRGQmhjM1JsS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSGRwYm1SdmR5NXlaVzF2ZG1WRmRtVnVkRXhwYzNSbGJtVnlLRVZXUlU1VUxsQlBTVTVVUlZKZlZWQXNJR1Z1WVdKc1pVNWxlSFJRWVhOMFpTazdYRzRnSUNBZ0lDQWdJQ0FnZlN3Z01UQXdLVHRjYmlBZ0lDQWdJQ0FnZlR0Y2JseHVJQ0FnSUNBZ0lDQmtiMk4xYldWdWRDNWliMlI1TG1Ga1pFVjJaVzUwVEdsemRHVnVaWElvUlZaRlRsUXVVRUZUVkVVc0lIQnlaWFpsYm5ST1pYaDBVR0Z6ZEdVcE8xeHVJQ0FnSUNBZ0lDQjNhVzVrYjNjdVlXUmtSWFpsYm5STWFYTjBaVzVsY2loRlZrVk9WQzVRVDBsT1ZFVlNYMVZRTENCbGJtRmliR1ZPWlhoMFVHRnpkR1VwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLSHRjYmlBZ0lDQWdJQ0FnYzJOeWIyeHNXRG9nZEdocGN5NXpkR0YwWlM1elkzSnZiR3hZSUMwZ1pHVnNkR0ZZSUM4Z2RHaHBjeTV6ZEdGMFpTNTZiMjl0TG5aaGJIVmxMRnh1SUNBZ0lDQWdJQ0J6WTNKdmJHeFpPaUIwYUdsekxuTjBZWFJsTG5OamNtOXNiRmtnTFNCa1pXeDBZVmtnTHlCMGFHbHpMbk4wWVhSbExucHZiMjB1ZG1Gc2RXVXNYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQmpiMjV6ZENCMFpXRnlaRzkzYmlBOUlIZHBkR2hDWVhSamFHVmtWWEJrWVhSbGN5aGNiaUFnSUNBZ0lDaHNZWE4wVUc5cGJuUmxjbFZ3SUQwZ0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNCc1lYTjBVRzlwYm5SbGNsVndJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdhWE5RWVc1dWFXNW5JRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJR2xtSUNnaGFYTkliMnhrYVc1blUzQmhZMlVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NXpkR0YwWlM1MmFXVjNUVzlrWlVWdVlXSnNaV1FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSE5sZEVOMWNuTnZjaWgwYUdsekxtTmhiblpoY3l3Z1ExVlNVMDlTWDFSWlVFVXVSMUpCUWlrN1hHNGdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhObGRFTjFjbk52Y2tadmNsTm9ZWEJsS0hSb2FYTXVZMkZ1ZG1GekxDQjBhR2x6TG5OMFlYUmxMbVZzWlcxbGJuUlVlWEJsS1R0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQWdJQ0FnWTNWeWMyOXlRblYwZEc5dU9pQmNJblZ3WENJc1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmhkbVZRYjJsdWRHVnlLR1YyWlc1MExtTnNhV1Z1ZEZnc0lHVjJaVzUwTG1Oc2FXVnVkRmtzSUZ3aWRYQmNJaWs3WEc0Z0lDQWdJQ0FnSUhkcGJtUnZkeTV5WlcxdmRtVkZkbVZ1ZEV4cGMzUmxibVZ5S0VWV1JVNVVMbEJQU1U1VVJWSmZUVTlXUlN3Z2IyNVFiMmx1ZEdWeVRXOTJaU2s3WEc0Z0lDQWdJQ0FnSUhkcGJtUnZkeTV5WlcxdmRtVkZkbVZ1ZEV4cGMzUmxibVZ5S0VWV1JVNVVMbEJQU1U1VVJWSmZWVkFzSUhSbFlYSmtiM2R1S1R0Y2JpQWdJQ0FnSUNBZ2QybHVaRzkzTG5KbGJXOTJaVVYyWlc1MFRHbHpkR1Z1WlhJb1JWWkZUbFF1UWt4VlVpd2dkR1ZoY21SdmQyNHBPMXh1SUNBZ0lDQWdJQ0J2YmxCdmFXNTBaWEpOYjNabExtWnNkWE5vS0NrN1hHNGdJQ0FnSUNCOUtTeGNiaUFnSUNBcE8xeHVJQ0FnSUhkcGJtUnZkeTVoWkdSRmRtVnVkRXhwYzNSbGJtVnlLRVZXUlU1VUxrSk1WVklzSUhSbFlYSmtiM2R1S1R0Y2JpQWdJQ0IzYVc1a2IzY3VZV1JrUlhabGJuUk1hWE4wWlc1bGNpaEZWa1ZPVkM1UVQwbE9WRVZTWDAxUFZrVXNJRzl1VUc5cGJuUmxjazF2ZG1Vc0lIdGNiaUFnSUNBZ0lIQmhjM05wZG1VNklIUnlkV1VzWEc0Z0lDQWdmU2s3WEc0Z0lDQWdkMmx1Wkc5M0xtRmtaRVYyWlc1MFRHbHpkR1Z1WlhJb1JWWkZUbFF1VUU5SlRsUkZVbDlWVUN3Z2RHVmhjbVJ2ZDI0cE8xeHVJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0I5TzF4dVhHNGdJSEJ5YVhaaGRHVWdkWEJrWVhSbFIyVnpkSFZ5WlU5dVVHOXBiblJsY2tSdmQyNG9YRzRnSUNBZ1pYWmxiblE2SUZKbFlXTjBMbEJ2YVc1MFpYSkZkbVZ1ZER4SVZFMU1RMkZ1ZG1GelJXeGxiV1Z1ZEQ0c1hHNGdJQ2s2SUhadmFXUWdlMXh1SUNBZ0lHZGxjM1IxY21VdWNHOXBiblJsY25NdWMyVjBLR1YyWlc1MExuQnZhVzUwWlhKSlpDd2dlMXh1SUNBZ0lDQWdlRG9nWlhabGJuUXVZMnhwWlc1MFdDeGNiaUFnSUNBZ0lIazZJR1YyWlc1MExtTnNhV1Z1ZEZrc1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCcFppQW9aMlZ6ZEhWeVpTNXdiMmx1ZEdWeWN5NXphWHBsSUQwOVBTQXlLU0I3WEc0Z0lDQWdJQ0JuWlhOMGRYSmxMbXhoYzNSRFpXNTBaWElnUFNCblpYUkRaVzUwWlhJb1oyVnpkSFZ5WlM1d2IybHVkR1Z5Y3lrN1hHNGdJQ0FnSUNCblpYTjBkWEpsTG1sdWFYUnBZV3hUWTJGc1pTQTlJSFJvYVhNdWMzUmhkR1V1ZW05dmJTNTJZV3gxWlR0Y2JpQWdJQ0FnSUdkbGMzUjFjbVV1YVc1cGRHbGhiRVJwYzNSaGJtTmxJRDBnWjJWMFJHbHpkR0Z1WTJVb1hHNGdJQ0FnSUNBZ0lFRnljbUY1TG1aeWIyMG9aMlZ6ZEhWeVpTNXdiMmx1ZEdWeWN5NTJZV3gxWlhNb0tTa3NYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdhVzVwZEdsaGJGQnZhVzUwWlhKRWIzZHVVM1JoZEdVb1hHNGdJQ0FnWlhabGJuUTZJRkpsWVdOMExsQnZhVzUwWlhKRmRtVnVkRHhJVkUxTVEyRnVkbUZ6Uld4bGJXVnVkRDRzWEc0Z0lDazZJRkJ2YVc1MFpYSkViM2R1VTNSaGRHVWdlMXh1SUNBZ0lHTnZibk4wSUc5eWFXZHBiaUE5SUhacFpYZHdiM0owUTI5dmNtUnpWRzlUWTJWdVpVTnZiM0prY3lobGRtVnVkQ3dnZEdocGN5NXpkR0YwWlNrN1hHNGdJQ0FnWTI5dWMzUWdjMlZzWldOMFpXUkZiR1Z0Wlc1MGN5QTlJR2RsZEZObGJHVmpkR1ZrUld4bGJXVnVkSE1vWEc0Z0lDQWdJQ0IwYUdsekxuTmpaVzVsTG1kbGRFVnNaVzFsYm5SektDa3NYRzRnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMRnh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnVzIxcGJsZ3NJRzFwYmxrc0lHMWhlRmdzSUcxaGVGbGRJRDBnWjJWMFEyOXRiVzl1UW05MWJtUnpLSE5sYkdWamRHVmtSV3hsYldWdWRITXBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lHOXlhV2RwYml4Y2JpQWdJQ0FnSUhkcGRHaERiV1JQY2tOMGNtdzZJR1YyWlc1MFcwdEZXVk11UTFSU1RGOVBVbDlEVFVSZExGeHVJQ0FnSUNBZ2IzSnBaMmx1U1c1SGNtbGtPaUIwZFhCc1pWUnZRMjl2Y25Nb1hHNGdJQ0FnSUNBZ0lHZGxkRWR5YVdSUWIybHVkQ2h2Y21sbmFXNHVlQ3dnYjNKcFoybHVMbmtzSUhSb2FYTXVjM1JoZEdVdVozSnBaRk5wZW1VcExGeHVJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lITmpjbTlzYkdKaGNuTTZJR2x6VDNabGNsTmpjbTlzYkVKaGNuTW9YRzRnSUNBZ0lDQWdJR04xY25KbGJuUlRZM0p2Ykd4Q1lYSnpMRnh1SUNBZ0lDQWdJQ0JsZG1WdWRDNWpiR2xsYm5SWUlDMGdkR2hwY3k1emRHRjBaUzV2Wm1aelpYUk1aV1owTEZ4dUlDQWdJQ0FnSUNCbGRtVnVkQzVqYkdsbGJuUlpJQzBnZEdocGN5NXpkR0YwWlM1dlptWnpaWFJVYjNBc1hHNGdJQ0FnSUNBcExGeHVJQ0FnSUNBZ0x5OGdkMlVnYm1WbFpDQjBieUJrZFhCc2FXTmhkR1VnWW1WallYVnpaU0IzWlNkc2JDQmlaU0IxY0dSaGRHbHVaeUIwYUdseklITjBZWFJsWEc0Z0lDQWdJQ0JzWVhOMFEyOXZjbVJ6T2lCN0lDNHVMbTl5YVdkcGJpQjlMRnh1SUNBZ0lDQWdiM0pwWjJsdVlXeEZiR1Z0Wlc1MGN6b2dkR2hwY3k1elkyVnVaUzVuWlhSRmJHVnRaVzUwY3lncExuSmxaSFZqWlNnb1lXTmpMQ0JsYkdWdFpXNTBLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lHRmpZeTV6WlhRb1pXeGxiV1Z1ZEM1cFpDd2daR1ZsY0VOdmNIbEZiR1Z0Wlc1MEtHVnNaVzFsYm5RcEtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHRmpZenRjYmlBZ0lDQWdJSDBzSUc1bGR5Qk5ZWEFvS1NCaGN5QlFiMmx1ZEdWeVJHOTNibE4wWVhSbFcxd2liM0pwWjJsdVlXeEZiR1Z0Wlc1MGMxd2lYU2tzWEc0Z0lDQWdJQ0J5WlhOcGVtVTZJSHRjYmlBZ0lDQWdJQ0FnYUdGdVpHeGxWSGx3WlRvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0FnSUdselVtVnphWHBwYm1jNklHWmhiSE5sTEZ4dUlDQWdJQ0FnSUNCdlptWnpaWFE2SUhzZ2VEb2dNQ3dnZVRvZ01DQjlMRnh1SUNBZ0lDQWdJQ0JoY25KdmQwUnBjbVZqZEdsdmJqb2dYQ0p2Y21sbmFXNWNJaXhjYmlBZ0lDQWdJQ0FnWTJWdWRHVnlPaUI3SUhnNklDaHRZWGhZSUNzZ2JXbHVXQ2tnTHlBeUxDQjVPaUFvYldGNFdTQXJJRzFwYmxrcElDOGdNaUI5TEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUdocGREb2dlMXh1SUNBZ0lDQWdJQ0JsYkdWdFpXNTBPaUJ1ZFd4c0xGeHVJQ0FnSUNBZ0lDQmhiR3hJYVhSRmJHVnRaVzUwY3pvZ1cxMHNYRzRnSUNBZ0lDQWdJSGRoYzBGa1pHVmtWRzlUWld4bFkzUnBiMjQ2SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0JvWVhOQ1pXVnVSSFZ3YkdsallYUmxaRG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJR2hoYzBocGRFTnZiVzF2YmtKdmRXNWthVzVuUW05NFQyWlRaV3hsWTNSbFpFVnNaVzFsYm5Sek9seHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdWFYTklhWFIwYVc1blEyOXRiVzl1UW05MWJtUnBibWRDYjNoUFpsTmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNb1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2Y21sbmFXNHNYRzRnSUNBZ0lDQWdJQ0FnSUNCelpXeGxZM1JsWkVWc1pXMWxiblJ6TEZ4dUlDQWdJQ0FnSUNBZ0lDa3NYRzRnSUNBZ0lDQWdJR2hoYzBocGRFVnNaVzFsYm5SSmJuTnBaR1U2SUdaaGJITmxMRnh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJR1J5WVdjNklIdGNiaUFnSUNBZ0lDQWdhR0Z6VDJOamRYSnlaV1E2SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0J2Wm1aelpYUTZJRzUxYkd3c1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ1pYWmxiblJNYVhOMFpXNWxjbk02SUh0Y2JpQWdJQ0FnSUNBZ2IyNU5iM1psT2lCdWRXeHNMRnh1SUNBZ0lDQWdJQ0J2YmxWd09pQnVkV3hzTEZ4dUlDQWdJQ0FnSUNCdmJrdGxlVlZ3T2lCdWRXeHNMRnh1SUNBZ0lDQWdJQ0J2Ymt0bGVVUnZkMjQ2SUc1MWJHd3NYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdZbTk0VTJWc1pXTjBhVzl1T2lCN1hHNGdJQ0FnSUNBZ0lHaGhjMDlqWTNWeWNtVmtPaUJtWVd4elpTeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJQzh2SUZKbGRIVnlibk1nZDJobGRHaGxjaUIwYUdVZ1pYWmxiblFnYVhNZ1lTQmtjbUZuWjJsdVp5QmhJSE5qY205c2JHSmhjbHh1SUNCd2NtbDJZWFJsSUdoaGJtUnNaVVJ5WVdkbmFXNW5VMk55YjJ4c1FtRnlLRnh1SUNBZ0lHVjJaVzUwT2lCU1pXRmpkQzVRYjJsdWRHVnlSWFpsYm5ROFNGUk5URU5oYm5aaGMwVnNaVzFsYm5RK0xGeHVJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1U2SUZCdmFXNTBaWEpFYjNkdVUzUmhkR1VzWEc0Z0lDazZJR0p2YjJ4bFlXNGdlMXh1SUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0VvY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzV6WTNKdmJHeGlZWEp6TG1selQzWmxja1ZwZEdobGNpQW1KaUFoZEdocGN5NXpkR0YwWlM1dGRXeDBhVVZzWlcxbGJuUXBYRzRnSUNBZ0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdmVnh1SUNBZ0lHbHpSSEpoWjJkcGJtZFRZM0p2Ykd4Q1lYSWdQU0IwY25WbE8xeHVJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YkdGemRFTnZiM0prY3k1NElEMGdaWFpsYm5RdVkyeHBaVzUwV0R0Y2JpQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbXhoYzNSRGIyOXlaSE11ZVNBOUlHVjJaVzUwTG1Oc2FXVnVkRms3WEc0Z0lDQWdZMjl1YzNRZ2IyNVFiMmx1ZEdWeVRXOTJaU0E5SUhkcGRHaENZWFJqYUdWa1ZYQmtZWFJsYzFSb2NtOTBkR3hsWkNnb1pYWmxiblE2SUZCdmFXNTBaWEpGZG1WdWRDa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdkR0Z5WjJWMElEMGdaWFpsYm5RdWRHRnlaMlYwTzF4dUlDQWdJQ0FnYVdZZ0tDRW9kR0Z5WjJWMElHbHVjM1JoYm1ObGIyWWdTRlJOVEVWc1pXMWxiblFwS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2RHaHBjeTVvWVc1a2JHVlFiMmx1ZEdWeVRXOTJaVTkyWlhKVFkzSnZiR3hpWVhKektHVjJaVzUwTENCd2IybHVkR1Z5Ukc5M2JsTjBZWFJsS1R0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUdOdmJuTjBJRzl1VUc5cGJuUmxjbFZ3SUQwZ2QybDBhRUpoZEdOb1pXUlZjR1JoZEdWektDZ3BJRDArSUh0Y2JpQWdJQ0FnSUdselJISmhaMmRwYm1kVFkzSnZiR3hDWVhJZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUhObGRFTjFjbk52Y2tadmNsTm9ZWEJsS0hSb2FYTXVZMkZ1ZG1GekxDQjBhR2x6TG5OMFlYUmxMbVZzWlcxbGJuUlVlWEJsS1R0Y2JpQWdJQ0FnSUd4aGMzUlFiMmx1ZEdWeVZYQWdQU0J1ZFd4c08xeHVJQ0FnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0FnSUdOMWNuTnZja0oxZEhSdmJqb2dYQ0oxY0Z3aUxGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjBhR2x6TG5OaGRtVlFiMmx1ZEdWeUtHVjJaVzUwTG1Oc2FXVnVkRmdzSUdWMlpXNTBMbU5zYVdWdWRGa3NJRndpZFhCY0lpazdYRzRnSUNBZ0lDQjNhVzVrYjNjdWNtVnRiM1psUlhabGJuUk1hWE4wWlc1bGNpaEZWa1ZPVkM1UVQwbE9WRVZTWDAxUFZrVXNJRzl1VUc5cGJuUmxjazF2ZG1VcE8xeHVJQ0FnSUNBZ2QybHVaRzkzTG5KbGJXOTJaVVYyWlc1MFRHbHpkR1Z1WlhJb1JWWkZUbFF1VUU5SlRsUkZVbDlWVUN3Z2IyNVFiMmx1ZEdWeVZYQXBPMXh1SUNBZ0lDQWdiMjVRYjJsdWRHVnlUVzkyWlM1bWJIVnphQ2dwTzF4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnYkdGemRGQnZhVzUwWlhKVmNDQTlJRzl1VUc5cGJuUmxjbFZ3TzF4dVhHNGdJQ0FnZDJsdVpHOTNMbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSW9SVlpGVGxRdVVFOUpUbFJGVWw5TlQxWkZMQ0J2YmxCdmFXNTBaWEpOYjNabEtUdGNiaUFnSUNCM2FXNWtiM2N1WVdSa1JYWmxiblJNYVhOMFpXNWxjaWhGVmtWT1ZDNVFUMGxPVkVWU1gxVlFMQ0J2YmxCdmFXNTBaWEpWY0NrN1hHNGdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHTnNaV0Z5VTJWc1pXTjBhVzl1U1daT2IzUlZjMmx1WjFObGJHVmpkR2x2YmlBOUlDZ3BPaUIyYjJsa0lEMCtJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NXpkR0YwWlM1bGJHVnRaVzUwVkhsd1pTQWhQVDBnWENKelpXeGxZM1JwYjI1Y0lpa2dlMXh1SUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNBZ0lITmxiR1ZqZEdWa1JXeGxiV1Z1ZEVsa2N6b2dlMzBzWEc0Z0lDQWdJQ0FnSUhObGJHVmpkR1ZrUjNKdmRYQkpaSE02SUh0OUxGeHVJQ0FnSUNBZ0lDQmxaR2wwYVc1blIzSnZkWEJKWkRvZ2JuVnNiQ3hjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDFjYmlBZ2ZUdGNibHh1SUNBdktpcGNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2QyaGxkR2hsY2lCMGFHVWdjRzlwYm5SbGNpQmxkbVZ1ZENCb1lYTWdZbVZsYmlCamIyMXdiR1YwWld4NUlHaGhibVJzWldSY2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ2FHRnVaR3hsVTJWc1pXTjBhVzl1VDI1UWIybHVkR1Z5Ukc5M2JpQTlJQ2hjYmlBZ0lDQmxkbVZ1ZERvZ1VtVmhZM1F1VUc5cGJuUmxja1YyWlc1MFBFaFVUVXhEWVc1MllYTkZiR1Z0Wlc1MFBpeGNiaUFnSUNCd2IybHVkR1Z5Ukc5M2JsTjBZWFJsT2lCUWIybHVkR1Z5Ukc5M2JsTjBZWFJsTEZ4dUlDQXBPaUJpYjI5c1pXRnVJRDArSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTV6ZEdGMFpTNWxiR1Z0Wlc1MFZIbHdaU0E5UFQwZ1hDSnpaV3hsWTNScGIyNWNJaWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdaV3hsYldWdWRITWdQU0IwYUdsekxuTmpaVzVsTG1kbGRFVnNaVzFsYm5SektDazdYRzRnSUNBZ0lDQmpiMjV6ZENCelpXeGxZM1JsWkVWc1pXMWxiblJ6SUQwZ1oyVjBVMlZzWldOMFpXUkZiR1Z0Wlc1MGN5aGxiR1Z0Wlc1MGN5d2dkR2hwY3k1emRHRjBaU2s3WEc0Z0lDQWdJQ0JwWmlBb2MyVnNaV04wWldSRmJHVnRaVzUwY3k1c1pXNW5kR2dnUFQwOUlERWdKaVlnSVhSb2FYTXVjM1JoZEdVdVpXUnBkR2x1WjB4cGJtVmhja1ZzWlcxbGJuUXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaV3hsYldWdWRGZHBkR2hVY21GdWMyWnZjbTFJWVc1a2JHVlVlWEJsSUQxY2JpQWdJQ0FnSUNBZ0lDQm5aWFJGYkdWdFpXNTBWMmwwYUZSeVlXNXpabTl5YlVoaGJtUnNaVlI1Y0dVb1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBjeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YzNSaGRHVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCd2IybHVkR1Z5Ukc5M2JsTjBZWFJsTG05eWFXZHBiaTU0TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjRzlwYm5SbGNrUnZkMjVUZEdGMFpTNXZjbWxuYVc0dWVTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVjM1JoZEdVdWVtOXZiU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHVjJaVzUwTG5CdmFXNTBaWEpVZVhCbExGeHVJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaGxiR1Z0Wlc1MFYybDBhRlJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1VnSVQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVZ6YVhwcGJtZEZiR1Z0Wlc1ME9pQmxiR1Z0Wlc1MFYybDBhRlJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1V1Wld4bGJXVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbkpsYzJsNlpTNW9ZVzVrYkdWVWVYQmxJRDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNaVzFsYm5SWGFYUm9WSEpoYm5ObWIzSnRTR0Z1Wkd4bFZIbHdaUzUwY21GdWMyWnZjbTFJWVc1a2JHVlVlWEJsTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUlHVnNjMlVnYVdZZ0tITmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNdWJHVnVaM1JvSUQ0Z01Ta2dlMXh1SUNBZ0lDQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbkpsYzJsNlpTNW9ZVzVrYkdWVWVYQmxJRDBnWjJWMFZISmhibk5tYjNKdFNHRnVaR3hsVkhsd1pVWnliMjFEYjI5eVpITW9YRzRnSUNBZ0lDQWdJQ0FnWjJWMFEyOXRiVzl1UW05MWJtUnpLSE5sYkdWamRHVmtSV3hsYldWdWRITXBMRnh1SUNBZ0lDQWdJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YjNKcFoybHVMbmdzWEc0Z0lDQWdJQ0FnSUNBZ2NHOXBiblJsY2tSdmQyNVRkR0YwWlM1dmNtbG5hVzR1ZVN4Y2JpQWdJQ0FnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMbnB2YjIwc1hHNGdJQ0FnSUNBZ0lDQWdaWFpsYm5RdWNHOXBiblJsY2xSNWNHVXNYRzRnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JwWmlBb2NHOXBiblJsY2tSdmQyNVRkR0YwWlM1eVpYTnBlbVV1YUdGdVpHeGxWSGx3WlNrZ2UxeHVJQ0FnSUNBZ0lDQnpaWFJEZFhKemIzSW9YRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NWpZVzUyWVhNc1hHNGdJQ0FnSUNBZ0lDQWdaMlYwUTNWeWMyOXlSbTl5VW1WemFYcHBibWRGYkdWdFpXNTBLSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUnlZVzV6Wm05eWJVaGhibVJzWlZSNWNHVTZJSEJ2YVc1MFpYSkViM2R1VTNSaGRHVXVjbVZ6YVhwbExtaGhibVJzWlZSNWNHVXNYRzRnSUNBZ0lDQWdJQ0FnZlNrc1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJSEJ2YVc1MFpYSkViM2R1VTNSaGRHVXVjbVZ6YVhwbExtbHpVbVZ6YVhwcGJtY2dQU0IwY25WbE8xeHVJQ0FnSUNBZ0lDQndiMmx1ZEdWeVJHOTNibE4wWVhSbExuSmxjMmw2WlM1dlptWnpaWFFnUFNCMGRYQnNaVlJ2UTI5dmNuTW9YRzRnSUNBZ0lDQWdJQ0FnWjJWMFVtVnphWHBsVDJabWMyVjBXRmtvWEc0Z0lDQWdJQ0FnSUNBZ0lDQndiMmx1ZEdWeVJHOTNibE4wWVhSbExuSmxjMmw2WlM1b1lXNWtiR1ZVZVhCbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzJWc1pXTjBaV1JGYkdWdFpXNTBjeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lIQnZhVzUwWlhKRWIzZHVVM1JoZEdVdWIzSnBaMmx1TG5nc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbTl5YVdkcGJpNTVMRnh1SUNBZ0lDQWdJQ0FnSUNrc1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJR2xtSUNoY2JpQWdJQ0FnSUNBZ0lDQnpaV3hsWTNSbFpFVnNaVzFsYm5SekxteGxibWQwYUNBOVBUMGdNU0FtSmx4dUlDQWdJQ0FnSUNBZ0lHbHpUR2x1WldGeVJXeGxiV1Z1ZENoelpXeGxZM1JsWkVWc1pXMWxiblJ6V3pCZEtTQW1KbHh1SUNBZ0lDQWdJQ0FnSUhObGJHVmpkR1ZrUld4bGJXVnVkSE5iTUYwdWNHOXBiblJ6TG14bGJtZDBhQ0E5UFQwZ01seHVJQ0FnSUNBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnSUNCd2IybHVkR1Z5Ukc5M2JsTjBZWFJsTG5KbGMybDZaUzVoY25KdmQwUnBjbVZqZEdsdmJpQTlJR2RsZEZKbGMybDZaVUZ5Y205M1JHbHlaV04wYVc5dUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzV5WlhOcGVtVXVhR0Z1Wkd4bFZIbHdaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lITmxiR1ZqZEdWa1JXeGxiV1Z1ZEhOYk1GMHNYRzRnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWMzUmhkR1V1WldScGRHbHVaMHhwYm1WaGNrVnNaVzFsYm5RcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnlaWFFnUFNCTWFXNWxZWEpGYkdWdFpXNTBSV1JwZEc5eUxtaGhibVJzWlZCdmFXNTBaWEpFYjNkdUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnWlhabGJuUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbk4wWVhSbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnS0dGd2NGTjBZWFJsS1NBOVBpQjBhR2x6TG5ObGRGTjBZWFJsS0dGd2NGTjBZWFJsS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWFHbHpkRzl5ZVN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJ2YVc1MFpYSkViM2R1VTNSaGRHVXViM0pwWjJsdUxGeHVJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLSEpsZEM1b2FYUkZiR1Z0Wlc1MEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCd2IybHVkR1Z5Ukc5M2JsTjBZWFJsTG1ocGRDNWxiR1Z0Wlc1MElEMGdjbVYwTG1ocGRFVnNaVzFsYm5RN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUdsbUlDaHlaWFF1Wkdsa1FXUmtVRzlwYm5RcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBdkx5Qm9hWFJGYkdWdFpXNTBJRzFoZVNCaGJISmxZV1I1SUdKbElITmxkQ0JoWW05MlpTd2djMjhnWTJobFkyc2dabWx5YzNSY2JpQWdJQ0FnSUNBZ2NHOXBiblJsY2tSdmQyNVRkR0YwWlM1b2FYUXVaV3hsYldWdWRDQTlYRzRnSUNBZ0lDQWdJQ0FnY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzVvYVhRdVpXeGxiV1Z1ZENBL1AxeHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdVoyVjBSV3hsYldWdWRFRjBVRzl6YVhScGIyNG9YRzRnSUNBZ0lDQWdJQ0FnSUNCd2IybHVkR1Z5Ukc5M2JsTjBZWFJsTG05eWFXZHBiaTU0TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjRzlwYm5SbGNrUnZkMjVUZEdGMFpTNXZjbWxuYVc0dWVTeGNiaUFnSUNBZ0lDQWdJQ0FwTzF4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2h3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbWhwZEM1bGJHVnRaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdMeThnUldGeWJIa2djbVYwZFhKdUlHbG1JSEJ2YVc1MFpYSWdhWE1nYUdsMGRHbHVaeUJzYVc1cklHbGpiMjVjYmlBZ0lDQWdJQ0FnSUNCcFppQW9YRzRnSUNBZ0lDQWdJQ0FnSUNCcGMxQnZhVzUwU0dsMGRHbHVaMHhwYm10SlkyOXVLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQndiMmx1ZEdWeVJHOTNibE4wWVhSbExtaHBkQzVsYkdWdFpXNTBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmJjRzlwYm5SbGNrUnZkMjVUZEdGMFpTNXZjbWxuYVc0dWVDd2djRzlwYm5SbGNrUnZkMjVUZEdGMFpTNXZjbWxuYVc0dWVWMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YVhOTmIySnBiR1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQXBYRzRnSUNBZ0lDQWdJQ0FnS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YUdsMExtaGhjMGhwZEVWc1pXMWxiblJKYm5OcFpHVWdQVnh1SUNBZ0lDQWdJQ0FnSUNBZ2FYTklhWFIwYVc1blJXeGxiV1Z1ZEU1dmRFTnZibk5wWkdWeWFXNW5RbTkxYm1ScGJtZENiM2dvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSEJ2YVc1MFpYSkViM2R1VTNSaGRHVXVhR2wwTG1Wc1pXMWxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMzUmhkR1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRnR3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbTl5YVdkcGJpNTRMQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbTl5YVdkcGJpNTVYU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNBdkx5QkdiM0lnYjNabGNteGhjSEJsWkNCbGJHVnRaVzUwY3lCdmJtVWdjRzl6YVhScGIyNGdiV0Y1SUdocGRGeHVJQ0FnSUNBZ0lDQXZMeUJ0ZFd4MGFYQnNaU0JsYkdWdFpXNTBjMXh1SUNBZ0lDQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbWhwZEM1aGJHeElhWFJGYkdWdFpXNTBjeUE5SUhSb2FYTXVaMlYwUld4bGJXVnVkSE5CZEZCdmMybDBhVzl1S0Z4dUlDQWdJQ0FnSUNBZ0lIQnZhVzUwWlhKRWIzZHVVM1JoZEdVdWIzSnBaMmx1TG5nc1hHNGdJQ0FnSUNBZ0lDQWdjRzlwYm5SbGNrUnZkMjVUZEdGMFpTNXZjbWxuYVc0dWVTeGNiaUFnSUNBZ0lDQWdLVHRjYmx4dUlDQWdJQ0FnSUNCamIyNXpkQ0JvYVhSRmJHVnRaVzUwSUQwZ2NHOXBiblJsY2tSdmQyNVRkR0YwWlM1b2FYUXVaV3hsYldWdWREdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MyOXRaVWhwZEVWc1pXMWxiblJKYzFObGJHVmpkR1ZrSUQxY2JpQWdJQ0FnSUNBZ0lDQndiMmx1ZEdWeVJHOTNibE4wWVhSbExtaHBkQzVoYkd4SWFYUkZiR1Z0Wlc1MGN5NXpiMjFsS0NobGJHVnRaVzUwS1NBOVBseHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXBjMEZUWld4bFkzUmxaRVZzWlcxbGJuUW9aV3hsYldWdWRDa3NYRzRnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdJQ0FnSUNob2FYUkZiR1Z0Wlc1MElEMDlQU0J1ZFd4c0lIeDhJQ0Z6YjIxbFNHbDBSV3hsYldWdWRFbHpVMlZzWldOMFpXUXBJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lXVjJaVzUwTG5Ob2FXWjBTMlY1SUNZbVhHNGdJQ0FnSUNBZ0lDQWdJWEJ2YVc1MFpYSkViM2R1VTNSaGRHVXVhR2wwTG1oaGMwaHBkRU52YlcxdmJrSnZkVzVrYVc1blFtOTRUMlpUWld4bFkzUmxaRVZzWlcxbGJuUnpYRzRnSUNBZ0lDQWdJQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11WTJ4bFlYSlRaV3hsWTNScGIyNG9hR2wwUld4bGJXVnVkQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NXpkR0YwWlM1bFpHbDBhVzVuVEdsdVpXRnlSV3hsYldWdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MyVnNaV04wWldSRmJHVnRaVzUwU1dSek9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lGdDBhR2x6TG5OMFlYUmxMbVZrYVhScGJtZE1hVzVsWVhKRmJHVnRaVzUwTG1Wc1pXMWxiblJKWkYwNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQzh2SUVsbUlIZGxJR05zYVdOcklHOXVJSE52YldWMGFHbHVaMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0docGRFVnNaVzFsYm5RZ0lUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQzh2SUc5dUlFTk5SQzlEVkZKTUxDQmtjbWxzYkNCa2IzZHVJSFJ2SUdocGRDQmxiR1Z0Wlc1MElISmxaMkZ5Wkd4bGMzTWdiMllnWjNKdmRYQnpJR1YwWXk1Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvWlhabGJuUmJTMFZaVXk1RFZGSk1YMDlTWDBOTlJGMHBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2doZEdocGN5NXpkR0YwWlM1elpXeGxZM1JsWkVWc1pXMWxiblJKWkhOYmFHbDBSV3hsYldWdWRDNXBaRjBwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzVvYVhRdWQyRnpRV1JrWldSVWIxTmxiR1ZqZEdsdmJpQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0Nod2NtVjJVM1JoZEdVcElEMCtJQ2g3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQzR1TG1Wa2FYUkhjbTkxY0VadmNsTmxiR1ZqZEdWa1JXeGxiV1Z1ZENod2NtVjJVM1JoZEdVc0lHaHBkRVZzWlcxbGJuUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQndjbVYyYVc5MWMxTmxiR1ZqZEdWa1JXeGxiV1Z1ZEVsa2N6b2dkR2hwY3k1emRHRjBaUzV6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE1zWEc0Z0lDQWdJQ0FnSUNBZ0lDQjlLU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJ0WVhKcklHRnpJRzV2ZENCamIyMXdiR1YwWld4NUlHaGhibVJzWldRZ2MyOGdZWE1nZEc4Z1lXeHNiM2NnWkhKaFoyZHBibWNnWlhSakxseHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNBZ0lDOHZJR1JsYzJWc1pXTjBJR2xtSUdsMFpXMGdhWE1nYzJWc1pXTjBaV1JjYmlBZ0lDQWdJQ0FnSUNBdkx5QnBaaUJ6YUdsbWRDQnBjeUJ1YjNRZ1kyeHBZMnRsWkN3Z2RHaHBjeUIzYVd4c0lHRnNkMkY1Y3lCeVpYUjFjbTRnZEhKMVpWeHVJQ0FnSUNBZ0lDQWdJQzh2SUc5MGFHVnlkMmx6WlN3Z2FYUWdkMmxzYkNCMGNtbG5aMlZ5SUhObGJHVmpkR2x2YmlCaVlYTmxaQ0J2YmlCamRYSnlaVzUwWEc0Z0lDQWdJQ0FnSUNBZ0x5OGdjM1JoZEdVZ2IyWWdkR2hsSUdKdmVGeHVJQ0FnSUNBZ0lDQWdJR2xtSUNnaGRHaHBjeTV6ZEdGMFpTNXpaV3hsWTNSbFpFVnNaVzFsYm5SSlpITmJhR2wwUld4bGJXVnVkQzVwWkYwcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHbG1JSGRsSUdGeVpTQmpkWEp5Wlc1MGJIa2daV1JwZEdsdVp5QmhJR2R5YjNWd0xDQmxlR2wwYVc1bklHVmthWFJwYm1jZ2JXOWtaU0JoYm1RZ1pHVnpaV3hsWTNRZ2RHaGxJR2R5YjNWd0xseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbk4wWVhSbExtVmthWFJwYm1kSGNtOTFjRWxrSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNGcGMwVnNaVzFsYm5SSmJrZHliM1Z3S0docGRFVnNaVzFsYm5Rc0lIUm9hWE11YzNSaGRHVXVaV1JwZEdsdVowZHliM1Z3U1dRcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMlZzWldOMFpXUkZiR1Z0Wlc1MFNXUnpPaUI3ZlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCelpXeGxZM1JsWkVkeWIzVndTV1J6T2lCN2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxaR2wwYVc1blIzSnZkWEJKWkRvZ2JuVnNiQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJRUZrWkNCb2FYUWdaV3hsYldWdWRDQjBieUJ6Wld4bFkzUnBiMjR1SUVGMElIUm9hWE1nY0c5cGJuUWdhV1lnZDJVbmNtVWdibTkwSUdodmJHUnBibWRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJRk5JU1VaVUlIUm9aU0J3Y21WMmFXOTFjMng1SUhObGJHVmpkR1ZrSUdWc1pXMWxiblFvY3lrZ2QyVnlaU0JrWlhObGJHVmpkR1ZrSUdGaWIzWmxYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QW9iV0ZyWlNCemRYSmxJSGx2ZFNCMWMyVWdjMlYwVTNSaGRHVWdkWEJrWVhSbGNpQjBieUIxYzJVZ2JHRjBaWE4wSUhOMFlYUmxLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWhjMjl0WlVocGRFVnNaVzFsYm5SSmMxTmxiR1ZqZEdWa0lDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDRndiMmx1ZEdWeVJHOTNibE4wWVhSbExtaHBkQzVvWVhOSWFYUkRiMjF0YjI1Q2IzVnVaR2x1WjBKdmVFOW1VMlZzWldOMFpXUkZiR1Z0Wlc1MGMxeHVJQ0FnSUNBZ0lDQWdJQ0FnS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9LSEJ5WlhaVGRHRjBaU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCelpXeGxZM1JIY205MWNITkdiM0pUWld4bFkzUmxaRVZzWlcxbGJuUnpLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXVMaTV3Y21WMlUzUmhkR1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxiR1ZqZEdWa1JXeGxiV1Z1ZEVsa2N6b2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDNHVMbkJ5WlhaVGRHRjBaUzV6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE1zWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdXMmhwZEVWc1pXMWxiblF1YVdSZE9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemFHOTNTSGx3WlhKc2FXNXJVRzl3ZFhBNklHaHBkRVZzWlcxbGJuUXViR2x1YXlBL0lGd2lhVzVtYjF3aUlEb2dabUZzYzJVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpZMlZ1WlM1blpYUkZiR1Z0Wlc1MGN5Z3BMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbWhwZEM1M1lYTkJaR1JsWkZSdlUyVnNaV04wYVc5dUlEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdJQ0J3Y21WMmFXOTFjMU5sYkdWamRHVmtSV3hsYldWdWRFbGtjem9nZEdocGN5NXpkR0YwWlM1elpXeGxZM1JsWkVWc1pXMWxiblJKWkhNc1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUgwN1hHNWNiaUFnY0hKcGRtRjBaU0JwYzBGVFpXeGxZM1JsWkVWc1pXMWxiblFvYUdsMFJXeGxiV1Z1ZERvZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5RZ2ZDQnVkV3hzS1RvZ1ltOXZiR1ZoYmlCN1hHNGdJQ0FnY21WMGRYSnVJR2hwZEVWc1pXMWxiblFnSVQwZ2JuVnNiQ0FtSmlCMGFHbHpMbk4wWVhSbExuTmxiR1ZqZEdWa1JXeGxiV1Z1ZEVsa2MxdG9hWFJGYkdWdFpXNTBMbWxrWFR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2FYTklhWFIwYVc1blEyOXRiVzl1UW05MWJtUnBibWRDYjNoUFpsTmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNb1hHNGdJQ0FnY0c5cGJuUTZJRkpsWVdSdmJteDVQSHNnZURvZ2JuVnRZbVZ5T3lCNU9pQnVkVzFpWlhJZ2ZUNHNYRzRnSUNBZ2MyVnNaV04wWldSRmJHVnRaVzUwY3pvZ2NtVmhaRzl1YkhrZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTeGNiaUFnS1RvZ1ltOXZiR1ZoYmlCN1hHNGdJQ0FnYVdZZ0tITmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNdWJHVnVaM1JvSUR3Z01pa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUVodmR5QnRZVzU1SUhCcGVHVnNjeUJ2Wm1ZZ2RHaGxJSE5vWVhCbElHSnZkVzVrWVhKNUlIZGxJSE4wYVd4c0lHTnZibk5wWkdWeUlHRWdhR2wwWEc0Z0lDQWdZMjl1YzNRZ2RHaHlaWE5vYjJ4a0lEMGdNVEFnTHlCMGFHbHpMbk4wWVhSbExucHZiMjB1ZG1Gc2RXVTdYRzRnSUNBZ1kyOXVjM1FnVzNneExDQjVNU3dnZURJc0lIa3lYU0E5SUdkbGRFTnZiVzF2YmtKdmRXNWtjeWh6Wld4bFkzUmxaRVZzWlcxbGJuUnpLVHRjYmlBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ2NHOXBiblF1ZUNBK0lIZ3hJQzBnZEdoeVpYTm9iMnhrSUNZbVhHNGdJQ0FnSUNCd2IybHVkQzU0SUR3Z2VESWdLeUIwYUhKbGMyaHZiR1FnSmlaY2JpQWdJQ0FnSUhCdmFXNTBMbmtnUGlCNU1TQXRJSFJvY21WemFHOXNaQ0FtSmx4dUlDQWdJQ0FnY0c5cGJuUXVlU0E4SUhreUlDc2dkR2h5WlhOb2IyeGtYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdhR0Z1Wkd4bFZHVjRkRTl1VUc5cGJuUmxja1J2ZDI0Z1BTQW9YRzRnSUNBZ1pYWmxiblE2SUZKbFlXTjBMbEJ2YVc1MFpYSkZkbVZ1ZER4SVZFMU1RMkZ1ZG1GelJXeGxiV1Z1ZEQ0c1hHNGdJQ0FnY0c5cGJuUmxja1J2ZDI1VGRHRjBaVG9nVUc5cGJuUmxja1J2ZDI1VGRHRjBaU3hjYmlBZ0tUb2dkbTlwWkNBOVBpQjdYRzRnSUNBZ0x5OGdhV1lnZDJVbmNtVWdZM1Z5Y21WdWRHeDVJSE4wYVd4c0lHVmthWFJwYm1jZ2RHVjRkQ3dnWTJ4cFkydHBibWNnYjNWMGMybGtaVnh1SUNBZ0lDOHZJSE5vYjNWc1pDQnZibXg1SUdacGJtRnNhWHBsSUdsMExDQnViM1FnWTNKbFlYUmxJR0Z1YjNSb1pYSWdLR2x5Y21WemNHVmpkR2wyWlZ4dUlDQWdJQzh2SUc5bUlITjBZWFJsTG1Wc1pXMWxiblJNYjJOclpXUXBYRzRnSUNBZ2FXWWdLR2x6VkdWNGRFVnNaVzFsYm5Rb2RHaHBjeTV6ZEdGMFpTNWxaR2wwYVc1blJXeGxiV1Z1ZENrcElIdGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0I5WEc0Z0lDQWdiR1YwSUhOalpXNWxXQ0E5SUhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YjNKcFoybHVMbmc3WEc0Z0lDQWdiR1YwSUhOalpXNWxXU0E5SUhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YjNKcFoybHVMbms3WEc1Y2JpQWdJQ0JqYjI1emRDQmxiR1Z0Wlc1MElEMGdkR2hwY3k1blpYUkZiR1Z0Wlc1MFFYUlFiM05wZEdsdmJpaHpZMlZ1WlZnc0lITmpaVzVsV1N3Z2UxeHVJQ0FnSUNBZ2FXNWpiSFZrWlVKdmRXNWtWR1Y0ZEVWc1pXMWxiblE2SUhSeWRXVXNYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQmpiMjV6ZENCallXNUNhVzVrVkdWNGRDQTlJR2hoYzBKdmRXNWtWR1Y0ZEVWc1pXMWxiblFvWld4bGJXVnVkQ2s3WEc0Z0lDQWdhV1lnS0dOaGJrSnBibVJVWlhoMEtTQjdYRzRnSUNBZ0lDQnpZMlZ1WlZnZ1BTQmxiR1Z0Wlc1MExuZ2dLeUJsYkdWdFpXNTBMbmRwWkhSb0lDOGdNanRjYmlBZ0lDQWdJSE5qWlc1bFdTQTlJR1ZzWlcxbGJuUXVlU0FySUdWc1pXMWxiblF1YUdWcFoyaDBJQzhnTWp0Y2JpQWdJQ0I5WEc0Z0lDQWdkR2hwY3k1emRHRnlkRlJsZUhSRlpHbDBhVzVuS0h0Y2JpQWdJQ0FnSUhOalpXNWxXQ3hjYmlBZ0lDQWdJSE5qWlc1bFdTeGNiaUFnSUNBZ0lITm9iM1ZzWkVKcGJtUTZJR1poYkhObExGeHVJQ0FnSUNBZ2FXNXpaWEowUVhSUVlYSmxiblJEWlc1MFpYSTZJQ0ZsZG1WdWRDNWhiSFJMWlhrc1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCeVpYTmxkRU4xY25OdmNpaDBhR2x6TG1OaGJuWmhjeWs3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbk4wWVhSbExtVnNaVzFsYm5STWIyTnJaV1FwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9lMXh1SUNBZ0lDQWdJQ0JsYkdWdFpXNTBWSGx3WlRvZ1hDSnpaV3hsWTNScGIyNWNJaXhjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDFjYmlBZ2ZUdGNibHh1SUNCd2NtbDJZWFJsSUdoaGJtUnNaVVp5WldWRWNtRjNSV3hsYldWdWRFOXVVRzlwYm5SbGNrUnZkMjRnUFNBb1hHNGdJQ0FnWlhabGJuUTZJRkpsWVdOMExsQnZhVzUwWlhKRmRtVnVkRHhJVkUxTVEyRnVkbUZ6Uld4bGJXVnVkRDRzWEc0Z0lDQWdaV3hsYldWdWRGUjVjR1U2SUVWNFkyRnNhV1J5WVhkR2NtVmxSSEpoZDBWc1pXMWxiblJiWENKMGVYQmxYQ0pkTEZ4dUlDQWdJSEJ2YVc1MFpYSkViM2R1VTNSaGRHVTZJRkJ2YVc1MFpYSkViM2R1VTNSaGRHVXNYRzRnSUNrZ1BUNGdlMXh1SUNBZ0lDOHZJRUpsWjJsdUlHRWdiV0Z5YXlCallYQjBkWEpsTGlCVWFHbHpJR1J2WlhNZ2JtOTBJR2hoZG1VZ2RHOGdkWEJrWVhSbElITjBZWFJsSUhsbGRDNWNiaUFnSUNCamIyNXpkQ0JiWjNKcFpGZ3NJR2R5YVdSWlhTQTlJR2RsZEVkeWFXUlFiMmx1ZENoY2JpQWdJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YjNKcFoybHVMbmdzWEc0Z0lDQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbTl5YVdkcGJpNTVMRnh1SUNBZ0lDQWdiblZzYkN4Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWTI5dWMzUWdaV3hsYldWdWRDQTlJRzVsZDBaeVpXVkVjbUYzUld4bGJXVnVkQ2g3WEc0Z0lDQWdJQ0IwZVhCbE9pQmxiR1Z0Wlc1MFZIbHdaU3hjYmlBZ0lDQWdJSGc2SUdkeWFXUllMRnh1SUNBZ0lDQWdlVG9nWjNKcFpGa3NYRzRnSUNBZ0lDQnpkSEp2YTJWRGIyeHZjam9nZEdocGN5NXpkR0YwWlM1amRYSnlaVzUwU1hSbGJWTjBjbTlyWlVOdmJHOXlMRnh1SUNBZ0lDQWdZbUZqYTJkeWIzVnVaRU52Ykc5eU9pQjBhR2x6TG5OMFlYUmxMbU4xY25KbGJuUkpkR1Z0UW1GamEyZHliM1Z1WkVOdmJHOXlMRnh1SUNBZ0lDQWdabWxzYkZOMGVXeGxPaUIwYUdsekxuTjBZWFJsTG1OMWNuSmxiblJKZEdWdFJtbHNiRk4wZVd4bExGeHVJQ0FnSUNBZ2MzUnliMnRsVjJsa2RHZzZJSFJvYVhNdWMzUmhkR1V1WTNWeWNtVnVkRWwwWlcxVGRISnZhMlZYYVdSMGFDeGNiaUFnSUNBZ0lITjBjbTlyWlZOMGVXeGxPaUIwYUdsekxuTjBZWFJsTG1OMWNuSmxiblJKZEdWdFUzUnliMnRsVTNSNWJHVXNYRzRnSUNBZ0lDQnliM1ZuYUc1bGMzTTZJSFJvYVhNdWMzUmhkR1V1WTNWeWNtVnVkRWwwWlcxU2IzVm5hRzVsYzNNc1hHNGdJQ0FnSUNCdmNHRmphWFI1T2lCMGFHbHpMbk4wWVhSbExtTjFjbkpsYm5SSmRHVnRUM0JoWTJsMGVTeGNiaUFnSUNBZ0lITjBjbTlyWlZOb1lYSndibVZ6Y3pvZ2RHaHBjeTV6ZEdGMFpTNWpkWEp5Wlc1MFNYUmxiVXhwYm1WaGNsTjBjbTlyWlZOb1lYSndibVZ6Y3l4Y2JpQWdJQ0FnSUhOcGJYVnNZWFJsVUhKbGMzTjFjbVU2SUdWMlpXNTBMbkJ5WlhOemRYSmxJRDA5UFNBd0xqVXNYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0Nod2NtVjJVM1JoZEdVcElEMCtJQ2g3WEc0Z0lDQWdJQ0J6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE02SUh0Y2JpQWdJQ0FnSUNBZ0xpNHVjSEpsZGxOMFlYUmxMbk5sYkdWamRHVmtSV3hsYldWdWRFbGtjeXhjYmlBZ0lDQWdJQ0FnVzJWc1pXMWxiblF1YVdSZE9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnZlNrcE8xeHVYRzRnSUNBZ1kyOXVjM1FnY0hKbGMzTjFjbVZ6SUQwZ1pXeGxiV1Z1ZEM1emFXMTFiR0YwWlZCeVpYTnpkWEpsWEc0Z0lDQWdJQ0EvSUdWc1pXMWxiblF1Y0hKbGMzTjFjbVZ6WEc0Z0lDQWdJQ0E2SUZzdUxpNWxiR1Z0Wlc1MExuQnlaWE56ZFhKbGN5d2daWFpsYm5RdWNISmxjM04xY21WZE8xeHVYRzRnSUNBZ2JYVjBZWFJsUld4bGJXVnVkQ2hsYkdWdFpXNTBMQ0I3WEc0Z0lDQWdJQ0J3YjJsdWRITTZJRnRiTUN3Z01GMWRMRnh1SUNBZ0lDQWdjSEpsYzNOMWNtVnpMRnh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdZMjl1YzNRZ1ltOTFibVJGYkdWdFpXNTBJRDBnWjJWMFNHOTJaWEpsWkVWc1pXMWxiblJHYjNKQ2FXNWthVzVuS0Z4dUlDQWdJQ0FnY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzV2Y21sbmFXNHNYRzRnSUNBZ0lDQjBhR2x6TG5OalpXNWxMRnh1SUNBZ0lDazdYRzRnSUNBZ2RHaHBjeTV6WTJWdVpTNXlaWEJzWVdObFFXeHNSV3hsYldWdWRITW9XMXh1SUNBZ0lDQWdMaTR1ZEdocGN5NXpZMlZ1WlM1blpYUkZiR1Z0Wlc1MGMwbHVZMngxWkdsdVowUmxiR1YwWldRb0tTeGNiaUFnSUNBZ0lHVnNaVzFsYm5Rc1hHNGdJQ0FnWFNrN1hHNGdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQmtjbUZuWjJsdVowVnNaVzFsYm5RNklHVnNaVzFsYm5Rc1hHNGdJQ0FnSUNCbFpHbDBhVzVuUld4bGJXVnVkRG9nWld4bGJXVnVkQ3hjYmlBZ0lDQWdJSE4wWVhKMFFtOTFibVJGYkdWdFpXNTBPaUJpYjNWdVpFVnNaVzFsYm5Rc1hHNGdJQ0FnSUNCemRXZG5aWE4wWldSQ2FXNWthVzVuY3pvZ1cxMHNYRzRnSUNBZ2ZTazdYRzRnSUgwN1hHNWNiaUFnY0hKcGRtRjBaU0JqY21WaGRHVkpiV0ZuWlVWc1pXMWxiblFnUFNBb2UxeHVJQ0FnSUhOalpXNWxXQ3hjYmlBZ0lDQnpZMlZ1WlZrc1hHNGdJSDA2SUh0Y2JpQWdJQ0J6WTJWdVpWZzZJRzUxYldKbGNqdGNiaUFnSUNCelkyVnVaVms2SUc1MWJXSmxjanRjYmlBZ2ZTa2dQVDRnZTF4dUlDQWdJR052Ym5OMElGdG5jbWxrV0N3Z1ozSnBaRmxkSUQwZ1oyVjBSM0pwWkZCdmFXNTBLSE5qWlc1bFdDd2djMk5sYm1WWkxDQjBhR2x6TG5OMFlYUmxMbWR5YVdSVGFYcGxLVHRjYmx4dUlDQWdJR052Ym5OMElHVnNaVzFsYm5RZ1BTQnVaWGRKYldGblpVVnNaVzFsYm5Rb2UxeHVJQ0FnSUNBZ2RIbHdaVG9nWENKcGJXRm5aVndpTEZ4dUlDQWdJQ0FnZURvZ1ozSnBaRmdzWEc0Z0lDQWdJQ0I1T2lCbmNtbGtXU3hjYmlBZ0lDQWdJSE4wY205clpVTnZiRzl5T2lCMGFHbHpMbk4wWVhSbExtTjFjbkpsYm5SSmRHVnRVM1J5YjJ0bFEyOXNiM0lzWEc0Z0lDQWdJQ0JpWVdOclozSnZkVzVrUTI5c2IzSTZJSFJvYVhNdWMzUmhkR1V1WTNWeWNtVnVkRWwwWlcxQ1lXTnJaM0p2ZFc1a1EyOXNiM0lzWEc0Z0lDQWdJQ0JtYVd4c1UzUjViR1U2SUhSb2FYTXVjM1JoZEdVdVkzVnljbVZ1ZEVsMFpXMUdhV3hzVTNSNWJHVXNYRzRnSUNBZ0lDQnpkSEp2YTJWWGFXUjBhRG9nZEdocGN5NXpkR0YwWlM1amRYSnlaVzUwU1hSbGJWTjBjbTlyWlZkcFpIUm9MRnh1SUNBZ0lDQWdjM1J5YjJ0bFUzUjViR1U2SUhSb2FYTXVjM1JoZEdVdVkzVnljbVZ1ZEVsMFpXMVRkSEp2YTJWVGRIbHNaU3hjYmlBZ0lDQWdJSEp2ZFdkb2JtVnpjem9nZEdocGN5NXpkR0YwWlM1amRYSnlaVzUwU1hSbGJWSnZkV2RvYm1WemN5eGNiaUFnSUNBZ0lHOXdZV05wZEhrNklIUm9hWE11YzNSaGRHVXVZM1Z5Y21WdWRFbDBaVzFQY0dGamFYUjVMRnh1SUNBZ0lDQWdjM1J5YjJ0bFUyaGhjbkJ1WlhOek9pQjBhR2x6TG5OMFlYUmxMbU4xY25KbGJuUkpkR1Z0VEdsdVpXRnlVM1J5YjJ0bFUyaGhjbkJ1WlhOekxGeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUdWc1pXMWxiblE3WEc0Z0lIMDdYRzVjYmlBZ2NISnBkbUYwWlNCb1lXNWtiR1ZNYVc1bFlYSkZiR1Z0Wlc1MFQyNVFiMmx1ZEdWeVJHOTNiaUE5SUNoY2JpQWdJQ0JsZG1WdWREb2dVbVZoWTNRdVVHOXBiblJsY2tWMlpXNTBQRWhVVFV4RFlXNTJZWE5GYkdWdFpXNTBQaXhjYmlBZ0lDQmxiR1Z0Wlc1MFZIbHdaVG9nUlhoallXeHBaSEpoZDB4cGJtVmhja1ZzWlcxbGJuUmJYQ0owZVhCbFhDSmRMRnh1SUNBZ0lIQnZhVzUwWlhKRWIzZHVVM1JoZEdVNklGQnZhVzUwWlhKRWIzZHVVM1JoZEdVc1hHNGdJQ2s2SUhadmFXUWdQVDRnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbk4wWVhSbExtMTFiSFJwUld4bGJXVnVkQ2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdleUJ0ZFd4MGFVVnNaVzFsYm5RZ2ZTQTlJSFJvYVhNdWMzUmhkR1U3WEc1Y2JpQWdJQ0FnSUM4dklHWnBibUZzYVhwbElHbG1JR052YlhCc1pYUnBibWNnWVNCc2IyOXdYRzRnSUNBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0FnSUcxMWJIUnBSV3hsYldWdWRDNTBlWEJsSUQwOVBTQmNJbXhwYm1WY0lpQW1KbHh1SUNBZ0lDQWdJQ0JwYzFCaGRHaEJURzl2Y0NodGRXeDBhVVZzWlcxbGJuUXVjRzlwYm5SekxDQjBhR2x6TG5OMFlYUmxMbnB2YjIwdWRtRnNkV1VwWEc0Z0lDQWdJQ0FwSUh0Y2JpQWdJQ0FnSUNBZ2JYVjBZWFJsUld4bGJXVnVkQ2h0ZFd4MGFVVnNaVzFsYm5Rc0lIdGNiaUFnSUNBZ0lDQWdJQ0JzWVhOMFEyOXRiV2wwZEdWa1VHOXBiblE2WEc0Z0lDQWdJQ0FnSUNBZ0lDQnRkV3gwYVVWc1pXMWxiblF1Y0c5cGJuUnpXMjExYkhScFJXeGxiV1Z1ZEM1d2IybHVkSE11YkdWdVozUm9JQzBnTVYwc1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtRmpkR2x2YmsxaGJtRm5aWEl1WlhobFkzVjBaVUZqZEdsdmJpaGhZM1JwYjI1R2FXNWhiR2w2WlNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1kyOXVjM1FnZXlCNE9pQnllQ3dnZVRvZ2Nua3NJR3hoYzNSRGIyMXRhWFIwWldSUWIybHVkQ0I5SUQwZ2JYVnNkR2xGYkdWdFpXNTBPMXh1WEc0Z0lDQWdJQ0F2THlCamJHbGphMmx1WnlCcGJuTnBaR1VnWTI5dGJXbDBJSHB2Ym1VZzRvYVNJR1pwYm1Gc2FYcGxJR0Z5Y205M1hHNGdJQ0FnSUNCcFppQW9YRzRnSUNBZ0lDQWdJRzExYkhScFJXeGxiV1Z1ZEM1d2IybHVkSE11YkdWdVozUm9JRDRnTVNBbUpseHVJQ0FnSUNBZ0lDQnNZWE4wUTI5dGJXbDBkR1ZrVUc5cGJuUWdKaVpjYmlBZ0lDQWdJQ0FnWkdsemRHRnVZMlV5WkNoY2JpQWdJQ0FnSUNBZ0lDQndiMmx1ZEdWeVJHOTNibE4wWVhSbExtOXlhV2RwYmk1NElDMGdjbmdzWEc0Z0lDQWdJQ0FnSUNBZ2NHOXBiblJsY2tSdmQyNVRkR0YwWlM1dmNtbG5hVzR1ZVNBdElISjVMRnh1SUNBZ0lDQWdJQ0FnSUd4aGMzUkRiMjF0YVhSMFpXUlFiMmx1ZEZzd1hTeGNiaUFnSUNBZ0lDQWdJQ0JzWVhOMFEyOXRiV2wwZEdWa1VHOXBiblJiTVYwc1hHNGdJQ0FnSUNBZ0lDa2dQQ0JNU1U1RlgwTlBUa1pKVWsxZlZFaFNSVk5JVDB4RVhHNGdJQ0FnSUNBcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1aFkzUnBiMjVOWVc1aFoyVnlMbVY0WldOMWRHVkJZM1JwYjI0b1lXTjBhVzl1Um1sdVlXeHBlbVVwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9LSEJ5WlhaVGRHRjBaU2tnUFQ0Z0tIdGNiaUFnSUNBZ0lDQWdjMlZzWldOMFpXUkZiR1Z0Wlc1MFNXUnpPaUI3WEc0Z0lDQWdJQ0FnSUNBZ0xpNHVjSEpsZGxOMFlYUmxMbk5sYkdWamRHVmtSV3hsYldWdWRFbGtjeXhjYmlBZ0lDQWdJQ0FnSUNCYmJYVnNkR2xGYkdWdFpXNTBMbWxrWFRvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUgwcEtUdGNiaUFnSUNBZ0lDOHZJR05zYVdOcmFXNW5JRzkxZEhOcFpHVWdZMjl0YldsMElIcHZibVVnNG9hU0lIVndaR0YwWlNCeVpXWmxjbVZ1WTJVZ1ptOXlJR3hoYzNRZ1kyOXRiV2wwZEdWa1hHNGdJQ0FnSUNBdkx5QndiMmx1ZEZ4dUlDQWdJQ0FnYlhWMFlYUmxSV3hsYldWdWRDaHRkV3gwYVVWc1pXMWxiblFzSUh0Y2JpQWdJQ0FnSUNBZ2JHRnpkRU52YlcxcGRIUmxaRkJ2YVc1ME9pQnRkV3gwYVVWc1pXMWxiblF1Y0c5cGJuUnpXMjExYkhScFJXeGxiV1Z1ZEM1d2IybHVkSE11YkdWdVozUm9JQzBnTVYwc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lITmxkRU4xY25OdmNpaDBhR2x6TG1OaGJuWmhjeXdnUTFWU1UwOVNYMVJaVUVVdVVFOUpUbFJGVWlrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR052Ym5OMElGdG5jbWxrV0N3Z1ozSnBaRmxkSUQwZ1oyVjBSM0pwWkZCdmFXNTBLRnh1SUNBZ0lDQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbTl5YVdkcGJpNTRMRnh1SUNBZ0lDQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbTl5YVdkcGJpNTVMRnh1SUNBZ0lDQWdJQ0IwYUdsekxuTjBZWFJsTG1keWFXUlRhWHBsTEZ4dUlDQWdJQ0FnS1R0Y2JseHVJQ0FnSUNBZ0x5b2dTV1lnWVhKeWIzY2dhWE1nY0hKbExXRnljbTkzYUdWaFpITXNJR2wwSUhkcGJHd2dhR0YyWlNCMWJtUmxabWx1WldRZ1ptOXlJR0p2ZEdnZ2MzUmhjblFnWVc1a0lHVnVaQ0JoY25KdmQyaGxZV1J6TGx4dUlDQWdJQ0FnU1dZZ2MyOHNJSGRsSUhkaGJuUWdhWFFnZEc4Z1ltVWdiblZzYkNCbWIzSWdjM1JoY25RZ1lXNWtJRndpWVhKeWIzZGNJaUJtYjNJZ1pXNWtMaUJKWmlCMGFHVWdiR2x1WldGeUlHbDBaVzBnYVhNZ2JtOTBYRzRnSUNBZ0lDQmhiaUJoY25KdmR5d2dkMlVnZDJGdWRDQnBkQ0IwYnlCaVpTQnVkV3hzSUdadmNpQmliM1JvTGlCUGRHaGxjbmRwYzJVc0lIZGxJSGRoYm5RZ2FYUWdkRzhnZFhObElIUm9aVnh1SUNBZ0lDQWdkbUZzZFdWeklHWnliMjBnWVhCd1UzUmhkR1V1SUNvdlhHNWNiaUFnSUNBZ0lHTnZibk4wSUhzZ1kzVnljbVZ1ZEVsMFpXMVRkR0Z5ZEVGeWNtOTNhR1ZoWkN3Z1kzVnljbVZ1ZEVsMFpXMUZibVJCY25KdmQyaGxZV1FnZlNBOUlIUm9hWE11YzNSaGRHVTdYRzRnSUNBZ0lDQmpiMjV6ZENCYmMzUmhjblJCY25KdmQyaGxZV1FzSUdWdVpFRnljbTkzYUdWaFpGMGdQVnh1SUNBZ0lDQWdJQ0JsYkdWdFpXNTBWSGx3WlNBOVBUMGdYQ0poY25KdmQxd2lYRzRnSUNBZ0lDQWdJQ0FnUHlCYlkzVnljbVZ1ZEVsMFpXMVRkR0Z5ZEVGeWNtOTNhR1ZoWkN3Z1kzVnljbVZ1ZEVsMFpXMUZibVJCY25KdmQyaGxZV1JkWEc0Z0lDQWdJQ0FnSUNBZ09pQmJiblZzYkN3Z2JuVnNiRjA3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJR1ZzWlcxbGJuUWdQU0J1WlhkTWFXNWxZWEpGYkdWdFpXNTBLSHRjYmlBZ0lDQWdJQ0FnZEhsd1pUb2daV3hsYldWdWRGUjVjR1VzWEc0Z0lDQWdJQ0FnSUhnNklHZHlhV1JZTEZ4dUlDQWdJQ0FnSUNCNU9pQm5jbWxrV1N4Y2JpQWdJQ0FnSUNBZ2MzUnliMnRsUTI5c2IzSTZJSFJvYVhNdWMzUmhkR1V1WTNWeWNtVnVkRWwwWlcxVGRISnZhMlZEYjJ4dmNpeGNiaUFnSUNBZ0lDQWdZbUZqYTJkeWIzVnVaRU52Ykc5eU9pQjBhR2x6TG5OMFlYUmxMbU4xY25KbGJuUkpkR1Z0UW1GamEyZHliM1Z1WkVOdmJHOXlMRnh1SUNBZ0lDQWdJQ0JtYVd4c1UzUjViR1U2SUhSb2FYTXVjM1JoZEdVdVkzVnljbVZ1ZEVsMFpXMUdhV3hzVTNSNWJHVXNYRzRnSUNBZ0lDQWdJSE4wY205clpWZHBaSFJvT2lCMGFHbHpMbk4wWVhSbExtTjFjbkpsYm5SSmRHVnRVM1J5YjJ0bFYybGtkR2dzWEc0Z0lDQWdJQ0FnSUhOMGNtOXJaVk4wZVd4bE9pQjBhR2x6TG5OMFlYUmxMbU4xY25KbGJuUkpkR1Z0VTNSeWIydGxVM1I1YkdVc1hHNGdJQ0FnSUNBZ0lISnZkV2RvYm1WemN6b2dkR2hwY3k1emRHRjBaUzVqZFhKeVpXNTBTWFJsYlZKdmRXZG9ibVZ6Y3l4Y2JpQWdJQ0FnSUNBZ2IzQmhZMmwwZVRvZ2RHaHBjeTV6ZEdGMFpTNWpkWEp5Wlc1MFNYUmxiVTl3WVdOcGRIa3NYRzRnSUNBZ0lDQWdJSE4wY205clpWTm9ZWEp3Ym1WemN6b2dkR2hwY3k1emRHRjBaUzVqZFhKeVpXNTBTWFJsYlV4cGJtVmhjbE4wY205clpWTm9ZWEp3Ym1WemN5eGNiaUFnSUNBZ0lDQWdjM1JoY25SQmNuSnZkMmhsWVdRc1hHNGdJQ0FnSUNBZ0lHVnVaRUZ5Y205M2FHVmhaQ3hjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTZ29jSEpsZGxOMFlYUmxLU0E5UGlBb2UxeHVJQ0FnSUNBZ0lDQnpaV3hsWTNSbFpFVnNaVzFsYm5SSlpITTZJSHRjYmlBZ0lDQWdJQ0FnSUNBdUxpNXdjbVYyVTNSaGRHVXVjMlZzWldOMFpXUkZiR1Z0Wlc1MFNXUnpMRnh1SUNBZ0lDQWdJQ0FnSUZ0bGJHVnRaVzUwTG1sa1hUb2dabUZzYzJVc1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQjlLU2s3WEc0Z0lDQWdJQ0J0ZFhSaGRHVkZiR1Z0Wlc1MEtHVnNaVzFsYm5Rc0lIdGNiaUFnSUNBZ0lDQWdjRzlwYm5Sek9pQmJMaTR1Wld4bGJXVnVkQzV3YjJsdWRITXNJRnN3TENBd1hWMHNYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJR052Ym5OMElHSnZkVzVrUld4bGJXVnVkQ0E5SUdkbGRFaHZkbVZ5WldSRmJHVnRaVzUwUm05eVFtbHVaR2x1WnloY2JpQWdJQ0FnSUNBZ2NHOXBiblJsY2tSdmQyNVRkR0YwWlM1dmNtbG5hVzRzWEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMk5sYm1Vc1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2RHaHBjeTV6WTJWdVpTNXlaWEJzWVdObFFXeHNSV3hsYldWdWRITW9XMXh1SUNBZ0lDQWdJQ0F1TGk1MGFHbHpMbk5qWlc1bExtZGxkRVZzWlcxbGJuUnpTVzVqYkhWa2FXNW5SR1ZzWlhSbFpDZ3BMRnh1SUNBZ0lDQWdJQ0JsYkdWdFpXNTBMRnh1SUNBZ0lDQWdYU2s3WEc0Z0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdaSEpoWjJkcGJtZEZiR1Z0Wlc1ME9pQmxiR1Z0Wlc1MExGeHVJQ0FnSUNBZ0lDQmxaR2wwYVc1blJXeGxiV1Z1ZERvZ1pXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUNBZ2MzUmhjblJDYjNWdVpFVnNaVzFsYm5RNklHSnZkVzVrUld4bGJXVnVkQ3hjYmlBZ0lDQWdJQ0FnYzNWbloyVnpkR1ZrUW1sdVpHbHVaM002SUZ0ZExGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVJQ0I5TzF4dVhHNGdJSEJ5YVhaaGRHVWdZM0psWVhSbFIyVnVaWEpwWTBWc1pXMWxiblJQYmxCdmFXNTBaWEpFYjNkdUlEMGdLRnh1SUNBZ0lHVnNaVzFsYm5SVWVYQmxPaUJGZUdOaGJHbGtjbUYzUjJWdVpYSnBZMFZzWlcxbGJuUmJYQ0owZVhCbFhDSmRMRnh1SUNBZ0lIQnZhVzUwWlhKRWIzZHVVM1JoZEdVNklGQnZhVzUwWlhKRWIzZHVVM1JoZEdVc1hHNGdJQ2s2SUhadmFXUWdQVDRnZTF4dUlDQWdJR052Ym5OMElGdG5jbWxrV0N3Z1ozSnBaRmxkSUQwZ1oyVjBSM0pwWkZCdmFXNTBLRnh1SUNBZ0lDQWdjRzlwYm5SbGNrUnZkMjVUZEdGMFpTNXZjbWxuYVc0dWVDeGNiaUFnSUNBZ0lIQnZhVzUwWlhKRWIzZHVVM1JoZEdVdWIzSnBaMmx1TG5rc1hHNGdJQ0FnSUNCMGFHbHpMbk4wWVhSbExtZHlhV1JUYVhwbExGeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdaV3hsYldWdWRDQTlJRzVsZDBWc1pXMWxiblFvZTF4dUlDQWdJQ0FnZEhsd1pUb2daV3hsYldWdWRGUjVjR1VzWEc0Z0lDQWdJQ0I0T2lCbmNtbGtXQ3hjYmlBZ0lDQWdJSGs2SUdkeWFXUlpMRnh1SUNBZ0lDQWdjM1J5YjJ0bFEyOXNiM0k2SUhSb2FYTXVjM1JoZEdVdVkzVnljbVZ1ZEVsMFpXMVRkSEp2YTJWRGIyeHZjaXhjYmlBZ0lDQWdJR0poWTJ0bmNtOTFibVJEYjJ4dmNqb2dkR2hwY3k1emRHRjBaUzVqZFhKeVpXNTBTWFJsYlVKaFkydG5jbTkxYm1SRGIyeHZjaXhjYmlBZ0lDQWdJR1pwYkd4VGRIbHNaVG9nZEdocGN5NXpkR0YwWlM1amRYSnlaVzUwU1hSbGJVWnBiR3hUZEhsc1pTeGNiaUFnSUNBZ0lITjBjbTlyWlZkcFpIUm9PaUIwYUdsekxuTjBZWFJsTG1OMWNuSmxiblJKZEdWdFUzUnliMnRsVjJsa2RHZ3NYRzRnSUNBZ0lDQnpkSEp2YTJWVGRIbHNaVG9nZEdocGN5NXpkR0YwWlM1amRYSnlaVzUwU1hSbGJWTjBjbTlyWlZOMGVXeGxMRnh1SUNBZ0lDQWdjbTkxWjJodVpYTnpPaUIwYUdsekxuTjBZWFJsTG1OMWNuSmxiblJKZEdWdFVtOTFaMmh1WlhOekxGeHVJQ0FnSUNBZ2IzQmhZMmwwZVRvZ2RHaHBjeTV6ZEdGMFpTNWpkWEp5Wlc1MFNYUmxiVTl3WVdOcGRIa3NYRzRnSUNBZ0lDQnpkSEp2YTJWVGFHRnljRzVsYzNNNklIUm9hWE11YzNSaGRHVXVZM1Z5Y21WdWRFbDBaVzFUZEhKdmEyVlRhR0Z5Y0c1bGMzTXNYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQnBaaUFvWld4bGJXVnVkQzUwZVhCbElEMDlQU0JjSW5ObGJHVmpkR2x2Ymx3aUtTQjdYRzRnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0h0Y2JpQWdJQ0FnSUNBZ2MyVnNaV04wYVc5dVJXeGxiV1Z1ZERvZ1pXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUNBZ1pISmhaMmRwYm1kRmJHVnRaVzUwT2lCbGJHVnRaVzUwTEZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSFJvYVhNdWMyTmxibVV1Y21Wd2JHRmpaVUZzYkVWc1pXMWxiblJ6S0Z0Y2JpQWdJQ0FnSUNBZ0xpNHVkR2hwY3k1elkyVnVaUzVuWlhSRmJHVnRaVzUwYzBsdVkyeDFaR2x1WjBSbGJHVjBaV1FvS1N4Y2JpQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUYwcE8xeHVJQ0FnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0FnSUcxMWJIUnBSV3hsYldWdWREb2diblZzYkN4Y2JpQWdJQ0FnSUNBZ1pISmhaMmRwYm1kRmJHVnRaVzUwT2lCbGJHVnRaVzUwTEZ4dUlDQWdJQ0FnSUNCbFpHbDBhVzVuUld4bGJXVnVkRG9nWld4bGJXVnVkQ3hjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDFjYmlBZ2ZUdGNibHh1SUNCd2NtbDJZWFJsSUc5dVMyVjVSRzkzYmtaeWIyMVFiMmx1ZEdWeVJHOTNia2hoYm1Sc1pYSW9YRzRnSUNBZ2NHOXBiblJsY2tSdmQyNVRkR0YwWlRvZ1VHOXBiblJsY2tSdmQyNVRkR0YwWlN4Y2JpQWdLVG9nS0dWMlpXNTBPaUJMWlhsaWIyRnlaRVYyWlc1MEtTQTlQaUIyYjJsa0lIdGNiaUFnSUNCeVpYUjFjbTRnZDJsMGFFSmhkR05vWldSVmNHUmhkR1Z6S0NobGRtVnVkRG9nUzJWNVltOWhjbVJGZG1WdWRDa2dQVDRnZTF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11YldGNVltVklZVzVrYkdWU1pYTnBlbVVvY0c5cGJuUmxja1J2ZDI1VGRHRjBaU3dnWlhabGJuUXBLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSFJvYVhNdWJXRjVZbVZFY21GblRtVjNSMlZ1WlhKcFkwVnNaVzFsYm5Rb2NHOXBiblJsY2tSdmQyNVRkR0YwWlN3Z1pYWmxiblFwTzF4dUlDQWdJSDBwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCdmJrdGxlVlZ3Um5KdmJWQnZhVzUwWlhKRWIzZHVTR0Z1Wkd4bGNpaGNiaUFnSUNCd2IybHVkR1Z5Ukc5M2JsTjBZWFJsT2lCUWIybHVkR1Z5Ukc5M2JsTjBZWFJsTEZ4dUlDQXBPaUFvWlhabGJuUTZJRXRsZVdKdllYSmtSWFpsYm5RcElEMCtJSFp2YVdRZ2UxeHVJQ0FnSUhKbGRIVnliaUIzYVhSb1FtRjBZMmhsWkZWd1pHRjBaWE1vS0dWMlpXNTBPaUJMWlhsaWIyRnlaRVYyWlc1MEtTQTlQaUI3WEc0Z0lDQWdJQ0F2THlCUWNtVjJaVzUwY3lCbWIyTjFjeUJtY205dElHVnpZMkZ3YVc1bklHVjRZMkZzYVdSeVlYY2dkR0ZpWEc0Z0lDQWdJQ0JsZG1WdWRDNXJaWGtnUFQwOUlFdEZXVk11UVV4VUlDWW1JR1YyWlc1MExuQnlaWFpsYm5SRVpXWmhkV3gwS0NrN1hHNGdJQ0FnSUNCcFppQW9kR2hwY3k1dFlYbGlaVWhoYm1Sc1pWSmxjMmw2WlNod2IybHVkR1Z5Ukc5M2JsTjBZWFJsTENCbGRtVnVkQ2twSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnZEdocGN5NXRZWGxpWlVSeVlXZE9aWGRIWlc1bGNtbGpSV3hsYldWdWRDaHdiMmx1ZEdWeVJHOTNibE4wWVhSbExDQmxkbVZ1ZENrN1hHNGdJQ0FnZlNrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHOXVVRzlwYm5SbGNrMXZkbVZHY205dFVHOXBiblJsY2tSdmQyNUlZVzVrYkdWeUtGeHVJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1U2SUZCdmFXNTBaWEpFYjNkdVUzUmhkR1VzWEc0Z0lDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCM2FYUm9RbUYwWTJobFpGVndaR0YwWlhOVWFISnZkSFJzWldRb0tHVjJaVzUwT2lCUWIybHVkR1Z5UlhabGJuUXBJRDArSUh0Y2JpQWdJQ0FnSUM4dklGZGxJRzVsWldRZ2RHOGdhVzVwZEdsaGJHbDZaU0JrY21GblQyWm1jMlYwV0ZrZ2IyNXNlU0JoWm5SbGNpQjNaU2QyWlNCMWNHUmhkR1ZrWEc0Z0lDQWdJQ0F2THlCZ2MzUmhkR1V1YzJWc1pXTjBaV1JGYkdWdFpXNTBTV1J6WUNCdmJpQndiMmx1ZEdWeVJHOTNiaTRnUkc5cGJtY2dhWFFnYUdWeVpTQnBiaUJ3YjJsdWRHVnlUVzkyWlZ4dUlDQWdJQ0FnTHk4Z1pYWmxiblFnYUdGdVpHeGxjaUJ6YUc5MWJHUWdhRzl3WldaMWJHeDVJR1Z1YzNWeVpTQjNaU2R5WlNCaGJISmxZV1I1SUhkdmNtdHBibWNnZDJsMGFGeHVJQ0FnSUNBZ0x5OGdkR2hsSUhWd1pHRjBaV1FnYzNSaGRHVXVYRzRnSUNBZ0lDQnBaaUFvY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzVrY21GbkxtOW1abk5sZENBOVBUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQndiMmx1ZEdWeVJHOTNibE4wWVhSbExtUnlZV2N1YjJabWMyVjBJRDBnZEhWd2JHVlViME52YjNKektGeHVJQ0FnSUNBZ0lDQWdJR2RsZEVSeVlXZFBabVp6WlhSWVdTaGNiaUFnSUNBZ0lDQWdJQ0FnSUdkbGRGTmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNb2RHaHBjeTV6WTJWdVpTNW5aWFJGYkdWdFpXNTBjeWdwTENCMGFHbHpMbk4wWVhSbEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YjNKcFoybHVMbmdzWEc0Z0lDQWdJQ0FnSUNBZ0lDQndiMmx1ZEdWeVJHOTNibE4wWVhSbExtOXlhV2RwYmk1NUxGeHVJQ0FnSUNBZ0lDQWdJQ2tzWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHTnZibk4wSUhSaGNtZGxkQ0E5SUdWMlpXNTBMblJoY21kbGREdGNiaUFnSUNBZ0lHbG1JQ2doS0hSaGNtZGxkQ0JwYm5OMFlXNWpaVzltSUVoVVRVeEZiR1Z0Wlc1MEtTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbWhoYm1Sc1pWQnZhVzUwWlhKTmIzWmxUM1psY2xOamNtOXNiR0poY25Nb1pYWmxiblFzSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1VwS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1kyOXVjM1FnY0c5cGJuUmxja052YjNKa2N5QTlJSFpwWlhkd2IzSjBRMjl2Y21SelZHOVRZMlZ1WlVOdmIzSmtjeWhsZG1WdWRDd2dkR2hwY3k1emRHRjBaU2s3WEc0Z0lDQWdJQ0JqYjI1emRDQmJaM0pwWkZnc0lHZHlhV1JaWFNBOUlHZGxkRWR5YVdSUWIybHVkQ2hjYmlBZ0lDQWdJQ0FnY0c5cGJuUmxja052YjNKa2N5NTRMRnh1SUNBZ0lDQWdJQ0J3YjJsdWRHVnlRMjl2Y21Sekxua3NYRzRnSUNBZ0lDQWdJSFJvYVhNdWMzUmhkR1V1WjNKcFpGTnBlbVVzWEc0Z0lDQWdJQ0FwTzF4dVhHNGdJQ0FnSUNBdkx5Qm1iM0lnWVhKeWIzZHpMMnhwYm1WekxDQmtiMjRuZENCemRHRnlkQ0JrY21GbloybHVaeUIxYm5ScGJDQmhJR2RwZG1WdUlIUm9jbVZ6YUc5c1pGeHVJQ0FnSUNBZ0x5OGdkRzhnWlc1emRYSmxJSGRsSUdSdmJpZDBJR055WldGMFpTQmhJREl0Y0c5cGJuUWdZWEp5YjNjZ1lua2diV2x6ZEdGclpTQjNhR1Z1WEc0Z0lDQWdJQ0F2THlCMWMyVnlJR05zYVdOcmN5QnRiM1Z6WlNCcGJpQmhJSGRoZVNCMGFHRjBJR2wwSUcxdmRtVnpJR0VnZEdsdWVTQmlhWFFnS0hSb2RYTmNiaUFnSUNBZ0lDOHZJSFJ5YVdkblpYSnBibWNnY0c5cGJuUmxjbTF2ZG1VcFhHNGdJQ0FnSUNCcFppQW9YRzRnSUNBZ0lDQWdJQ0Z3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbVJ5WVdjdWFHRnpUMk5qZFhKeVpXUWdKaVpjYmlBZ0lDQWdJQ0FnS0hSb2FYTXVjM1JoZEdVdVpXeGxiV1Z1ZEZSNWNHVWdQVDA5SUZ3aVlYSnliM2RjSWlCOGZGeHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMzUmhkR1V1Wld4bGJXVnVkRlI1Y0dVZ1BUMDlJRndpYkdsdVpWd2lLVnh1SUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lDQWdJQ0JrYVhOMFlXNWpaVEprS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdjRzlwYm5SbGNrTnZiM0prY3k1NExGeHVJQ0FnSUNBZ0lDQWdJQ0FnY0c5cGJuUmxja052YjNKa2N5NTVMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NHOXBiblJsY2tSdmQyNVRkR0YwWlM1dmNtbG5hVzR1ZUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJ2YVc1MFpYSkViM2R1VTNSaGRHVXViM0pwWjJsdUxua3NYRzRnSUNBZ0lDQWdJQ0FnS1NBOElFUlNRVWRIU1U1SFgxUklVa1ZUU0U5TVJGeHVJQ0FnSUNBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2FXWWdLSEJ2YVc1MFpYSkViM2R1VTNSaGRHVXVjbVZ6YVhwbExtbHpVbVZ6YVhwcGJtY3BJSHRjYmlBZ0lDQWdJQ0FnY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzVzWVhOMFEyOXZjbVJ6TG5nZ1BTQndiMmx1ZEdWeVEyOXZjbVJ6TG5nN1hHNGdJQ0FnSUNBZ0lIQnZhVzUwWlhKRWIzZHVVM1JoZEdVdWJHRnpkRU52YjNKa2N5NTVJRDBnY0c5cGJuUmxja052YjNKa2N5NTVPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTV0WVhsaVpVaGhibVJzWlZKbGMybDZaU2h3YjJsdWRHVnlSRzkzYmxOMFlYUmxMQ0JsZG1WdWRDa3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb2RHaHBjeTV6ZEdGMFpTNWxaR2wwYVc1blRHbHVaV0Z5Uld4bGJXVnVkQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JrYVdSRWNtRm5JRDBnVEdsdVpXRnlSV3hsYldWdWRFVmthWFJ2Y2k1b1lXNWtiR1ZRYjJsdWRFUnlZV2RuYVc1bktGeHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMzUmhkR1VzWEc0Z0lDQWdJQ0FnSUNBZ0tHRndjRk4wWVhSbEtTQTlQaUIwYUdsekxuTmxkRk4wWVhSbEtHRndjRk4wWVhSbEtTeGNiaUFnSUNBZ0lDQWdJQ0J3YjJsdWRHVnlRMjl2Y21SekxuZ3NYRzRnSUNBZ0lDQWdJQ0FnY0c5cGJuUmxja052YjNKa2N5NTVMRnh1SUNBZ0lDQWdJQ0FnSUNobGJHVnRaVzUwTENCd2IybHVkSE5UWTJWdVpVTnZiM0prY3lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV0WVhsaVpWTjFaMmRsYzNSQ2FXNWthVzVuYzBadmNreHBibVZoY2tWc1pXMWxiblJCZEVOdmIzSmtjeWhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2NHOXBiblJ6VTJObGJtVkRiMjl5WkhNc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2FXWWdLR1JwWkVSeVlXY3BJSHRjYmlBZ0lDQWdJQ0FnSUNCd2IybHVkR1Z5Ukc5M2JsTjBZWFJsTG14aGMzUkRiMjl5WkhNdWVDQTlJSEJ2YVc1MFpYSkRiMjl5WkhNdWVEdGNiaUFnSUNBZ0lDQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbXhoYzNSRGIyOXlaSE11ZVNBOUlIQnZhVzUwWlhKRGIyOXlaSE11ZVR0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdZMjl1YzNRZ2FHRnpTR2wwUVZObGJHVmpkR1ZrUld4bGJXVnVkQ0E5SUhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YUdsMExtRnNiRWhwZEVWc1pXMWxiblJ6TG5OdmJXVW9YRzRnSUNBZ0lDQWdJQ2hsYkdWdFpXNTBLU0E5UGlCMGFHbHpMbWx6UVZObGJHVmpkR1ZrUld4bGJXVnVkQ2hsYkdWdFpXNTBLU3hjYmlBZ0lDQWdJQ2s3WEc1Y2JpQWdJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lDQWdLR2hoYzBocGRFRlRaV3hsWTNSbFpFVnNaVzFsYm5RZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbWhwZEM1b1lYTklhWFJEYjIxdGIyNUNiM1Z1WkdsdVowSnZlRTltVTJWc1pXTjBaV1JGYkdWdFpXNTBjeWtnSmlaY2JpQWdJQ0FnSUNBZ0x5OGdkR2hwY3lCaGJHeHZkM01nWm05eUlHSnZlQzF6Wld4bFkzUnBibWNnY0c5cGJuUnpJSGRvWlc0Z1kyeHBZMnRwYm1jZ2FXNXphV1JsSUhSb1pWeHVJQ0FnSUNBZ0lDQXZMeUJzYVc1bEozTWdZbTkxYm1ScGJtY2dZbTk0WEc0Z0lDQWdJQ0FnSUNnaGRHaHBjeTV6ZEdGMFpTNWxaR2wwYVc1blRHbHVaV0Z5Uld4bGJXVnVkQ0I4ZkNBaFpYWmxiblF1YzJocFpuUkxaWGtwSUNZbVhHNGdJQ0FnSUNBZ0lDOHZJR0p2ZUMxelpXeGxZM1JwYm1jZ2QybDBhRzkxZENCemFHbG1kQ0IzYUdWdUlHVmthWFJwYm1jZ2JHbHVaU3dnYm05MElHTnNhV05yYVc1bklHOXVJR0VnYkdsdVpWeHVJQ0FnSUNBZ0lDQW9JWFJvYVhNdWMzUmhkR1V1WldScGRHbHVaMHhwYm1WaGNrVnNaVzFsYm5RZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxuTjBZWFJsTG1Wa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1MFB5NWxiR1Z0Wlc1MFNXUWdJVDA5WEc0Z0lDQWdJQ0FnSUNBZ0lDQndiMmx1ZEdWeVJHOTNibE4wWVhSbExtaHBkQzVsYkdWdFpXNTBQeTVwWkNCOGZGeHVJQ0FnSUNBZ0lDQWdJSEJ2YVc1MFpYSkViM2R1VTNSaGRHVXVhR2wwTG1oaGMwaHBkRVZzWlcxbGJuUkpibk5wWkdVcFhHNGdJQ0FnSUNBcElIdGNiaUFnSUNBZ0lDQWdMeThnVFdGeWEybHVaeUIwYUdGMElHTnNhV05ySUhkaGN5QjFjMlZrSUdadmNpQmtjbUZuWjJsdVp5QjBieUJqYUdWamExeHVJQ0FnSUNBZ0lDQXZMeUJwWmlCbGJHVnRaVzUwY3lCemFHOTFiR1FnWW1VZ1pHVnpaV3hsWTNSbFpDQnZiaUJ3YjJsdWRHVnlkWEJjYmlBZ0lDQWdJQ0FnY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzVrY21GbkxtaGhjMDlqWTNWeWNtVmtJRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MyVnNaV04wWldSRmJHVnRaVzUwY3lBOUlHZGxkRk5sYkdWamRHVmtSV3hsYldWdWRITW9YRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NXpZMlZ1WlM1blpYUkZiR1Z0Wlc1MGN5Z3BMRnh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVjM1JoZEdVc1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQzh2SUhCeVpYWmxiblFnWkhKaFoyZHBibWNnWlhabGJpQnBaaUIzWlNkeVpTQnVieUJzYjI1blpYSWdhRzlzWkdsdVp5QmpiV1F2WTNSeWJDQnZkR2hsY25kcGMyVmNiaUFnSUNBZ0lDQWdMeThnYVhRZ2QyOTFiR1FnYUdGMlpTQjNaV2x5WkNCeVpYTjFiSFJ6SUNoemRIVm1aaUJxZFcxd2FXNW5JR0ZzYkNCdmRtVnlJSFJvWlNCelkzSmxaVzRwWEc0Z0lDQWdJQ0FnSUdsbUlDaHpaV3hsWTNSbFpFVnNaVzFsYm5SekxteGxibWQwYUNBK0lEQWdKaVlnSVhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1ZDJsMGFFTnRaRTl5UTNSeWJDa2dlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRnRrY21GbldDd2daSEpoWjFsZElEMGdaMlYwUjNKcFpGQnZhVzUwS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdjRzlwYm5SbGNrTnZiM0prY3k1NElDMGdjRzlwYm5SbGNrUnZkMjVUZEdGMFpTNWtjbUZuTG05bVpuTmxkQzU0TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjRzlwYm5SbGNrTnZiM0prY3k1NUlDMGdjRzlwYm5SbGNrUnZkMjVUZEdGMFpTNWtjbUZuTG05bVpuTmxkQzU1TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1emRHRjBaUzVuY21sa1UybDZaU3hjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdXMlJ5WVdkRWFYTjBZVzVqWlZnc0lHUnlZV2RFYVhOMFlXNWpaVmxkSUQwZ1cxeHVJQ0FnSUNBZ0lDQWdJQ0FnVFdGMGFDNWhZbk1vY0c5cGJuUmxja052YjNKa2N5NTRJQzBnY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzV2Y21sbmFXNHVlQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQk5ZWFJvTG1GaWN5aHdiMmx1ZEdWeVEyOXZjbVJ6TG5rZ0xTQndiMmx1ZEdWeVJHOTNibE4wWVhSbExtOXlhV2RwYmk1NUtTeGNiaUFnSUNBZ0lDQWdJQ0JkTzF4dVhHNGdJQ0FnSUNBZ0lDQWdMeThnVjJVZ2IyNXNlU0JrY21GbklHbHVJRzl1WlNCa2FYSmxZM1JwYjI0Z2FXWWdjMmhwWm5RZ2FYTWdjSEpsYzNObFpGeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHeHZZMnRFYVhKbFkzUnBiMjRnUFNCbGRtVnVkQzV6YUdsbWRFdGxlVHRjYmx4dUlDQWdJQ0FnSUNBZ0lHUnlZV2RUWld4bFkzUmxaRVZzWlcxbGJuUnpLRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NHOXBiblJsY2tSdmQyNVRkR0YwWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSE5sYkdWamRHVmtSV3hsYldWdWRITXNYRzRnSUNBZ0lDQWdJQ0FnSUNCa2NtRm5XQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHUnlZV2RaTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiRzlqYTBScGNtVmpkR2x2Yml4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1J5WVdkRWFYTjBZVzVqWlZnc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrY21GblJHbHpkR0Z1WTJWWkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpkR0YwWlN4Y2JpQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXViV0Y1WW1WVGRXZG5aWE4wUW1sdVpHbHVaMFp2Y2tGc2JDaHpaV3hsWTNSbFpFVnNaVzFsYm5SektUdGNibHh1SUNBZ0lDQWdJQ0FnSUM4dklGZGxJR1IxY0d4cFkyRjBaU0IwYUdVZ2MyVnNaV04wWldRZ1pXeGxiV1Z1ZENCcFppQmhiSFFnYVhNZ2NISmxjM05sWkNCdmJpQndiMmx1ZEdWeUlHMXZkbVZjYmlBZ0lDQWdJQ0FnSUNCcFppQW9aWFpsYm5RdVlXeDBTMlY1SUNZbUlDRndiMmx1ZEdWeVJHOTNibE4wWVhSbExtaHBkQzVvWVhOQ1pXVnVSSFZ3YkdsallYUmxaQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnVFc5MlpTQjBhR1VnWTNWeWNtVnVkR3g1SUhObGJHVmpkR1ZrSUdWc1pXMWxiblJ6SUhSdklIUm9aU0IwYjNBZ2IyWWdkR2hsSUhvZ2FXNWtaWGdnYzNSaFkyc3NJR0Z1WkZ4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnY0hWMElIUm9aU0JrZFhCc2FXTmhkR1Z6SUhkb1pYSmxJSFJvWlNCelpXeGxZM1JsWkNCbGJHVnRaVzUwY3lCMWMyVmtJSFJ2SUdKbExseHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z0tIUm9aU0J2Y21sbmFXNGdjRzlwYm5RZ2QyaGxjbVVnZEdobElHUnlZV2RuYVc1bklITjBZWEowWldRcFhHNWNiaUFnSUNBZ0lDQWdJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YUdsMExtaGhjMEpsWlc1RWRYQnNhV05oZEdWa0lEMGdkSEoxWlR0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdibVY0ZEVWc1pXMWxiblJ6SUQwZ1cxMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JsYkdWdFpXNTBjMVJ2UVhCd1pXNWtJRDBnVzEwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQm5jbTkxY0Vsa1RXRndJRDBnYm1WM0lFMWhjQ2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2IyeGtTV1JVYjBSMWNHeHBZMkYwWldSSlpDQTlJRzVsZHlCTllYQW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdocGRFVnNaVzFsYm5RZ1BTQndiMmx1ZEdWeVJHOTNibE4wWVhSbExtaHBkQzVsYkdWdFpXNTBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWld4bGJXVnVkSE1nUFNCMGFHbHpMbk5qWlc1bExtZGxkRVZzWlcxbGJuUnpTVzVqYkhWa2FXNW5SR1ZzWlhSbFpDZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzJWc1pXTjBaV1JGYkdWdFpXNTBTV1J6T2lCQmNuSmhlVHhGZUdOaGJHbGtjbUYzUld4bGJXVnVkRnRjSW1sa1hDSmRQaUE5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR2RsZEZObGJHVmpkR1ZrUld4bGJXVnVkSE1vWld4bGJXVnVkSE1zSUhSb2FYTXVjM1JoZEdVc0lIUnlkV1VwTG0xaGNDaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQW9aV3hsYldWdWRDa2dQVDRnWld4bGJXVnVkQzVwWkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCbGJHVnRaVzUwSUc5bUlHVnNaVzFsYm5SektTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE11YVc1amJIVmtaWE1vWld4bGJXVnVkQzVwWkNrZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJqWVhObE9pQjBhR1VnYzNSaGRHVXVjMlZzWldOMFpXUkZiR1Z0Wlc1MFNXUnpJRzFwWjJoMElHNXZkQ0JvWVhabElHSmxaVzVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCMWNHUmhkR1ZrSUhsbGRDQmllU0IwYUdVZ2RHbHRaU0IwYUdseklHMXZkWE5sYlc5MlpTQmxkbVZ1ZENCcGN5Qm1hWEpsWkZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNobGJHVnRaVzUwTG1sa0lEMDlQU0JvYVhSRmJHVnRaVzUwUHk1cFpDQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzVvYVhRdWQyRnpRV1JrWldSVWIxTmxiR1ZqZEdsdmJpbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1pIVndiR2xqWVhSbFpFVnNaVzFsYm5RZ1BTQmtkWEJzYVdOaGRHVkZiR1Z0Wlc1MEtGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1emRHRjBaUzVsWkdsMGFXNW5SM0p2ZFhCSlpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2R5YjNWd1NXUk5ZWEFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJHVnRaVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnVzI5eWFXZHBia1J5WVdkWUxDQnZjbWxuYVc1RWNtRm5XVjBnUFNCblpYUkhjbWxrVUc5cGJuUW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbTl5YVdkcGJpNTRJQzBnY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzVrY21GbkxtOW1abk5sZEM1NExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjRzlwYm5SbGNrUnZkMjVUZEdGMFpTNXZjbWxuYVc0dWVTQXRJSEJ2YVc1MFpYSkViM2R1VTNSaGRHVXVaSEpoWnk1dlptWnpaWFF1ZVN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YzNSaGRHVXVaM0pwWkZOcGVtVXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J0ZFhSaGRHVkZiR1Z0Wlc1MEtHUjFjR3hwWTJGMFpXUkZiR1Z0Wlc1MExDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I0T2lCa2RYQnNhV05oZEdWa1JXeGxiV1Z1ZEM1NElDc2dLRzl5YVdkcGJrUnlZV2RZSUMwZ1pISmhaMWdwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2VUb2daSFZ3YkdsallYUmxaRVZzWlcxbGJuUXVlU0FySUNodmNtbG5hVzVFY21GbldTQXRJR1J5WVdkWktTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J1WlhoMFJXeGxiV1Z1ZEhNdWNIVnphQ2hrZFhCc2FXTmhkR1ZrUld4bGJXVnVkQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4bGJXVnVkSE5VYjBGd2NHVnVaQzV3ZFhOb0tHVnNaVzFsYm5RcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXNaRWxrVkc5RWRYQnNhV05oZEdWa1NXUXVjMlYwS0dWc1pXMWxiblF1YVdRc0lHUjFjR3hwWTJGMFpXUkZiR1Z0Wlc1MExtbGtLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnVaWGgwUld4bGJXVnVkSE11Y0hWemFDaGxiR1Z0Wlc1MEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JtVjRkRk5qWlc1bFJXeGxiV1Z1ZEhNZ1BTQmJMaTR1Ym1WNGRFVnNaVzFsYm5SekxDQXVMaTVsYkdWdFpXNTBjMVJ2UVhCd1pXNWtYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHSnBibVJVWlhoMFZHOVRhR0Z3WlVGbWRHVnlSSFZ3YkdsallYUnBiMjRvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRzVsZUhSRmJHVnRaVzUwY3l4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4bGJXVnVkSE5VYjBGd2NHVnVaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdiMnhrU1dSVWIwUjFjR3hwWTJGMFpXUkpaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCbWFYaENhVzVrYVc1bmMwRm1kR1Z5UkhWd2JHbGpZWFJwYjI0b1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUc1bGVIUlRZMlZ1WlVWc1pXMWxiblJ6TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBjMVJ2UVhCd1pXNWtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnZiR1JKWkZSdlJIVndiR2xqWVhSbFpFbGtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmNJbVIxY0d4cFkyRjBaWE5UWlhKMlpVRnpUMnhrWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1elkyVnVaUzV5WlhCc1lXTmxRV3hzUld4bGJXVnVkSE1vYm1WNGRGTmpaVzVsUld4bGJXVnVkSE1wTzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnTHk4Z1NYUWdhWE1nZG1WeWVTQnBiWEJ2Y25SaGJuUWdkRzhnY21WaFpDQjBhR2x6TG5OMFlYUmxJSGRwZEdocGJpQmxZV05vSUcxdmRtVWdaWFpsYm5Rc1hHNGdJQ0FnSUNBdkx5QnZkR2hsY25kcGMyVWdkMlVnZDI5MWJHUWdjbVZoWkNCaElITjBZV3hsSUc5dVpTRmNiaUFnSUNBZ0lHTnZibk4wSUdSeVlXZG5hVzVuUld4bGJXVnVkQ0E5SUhSb2FYTXVjM1JoZEdVdVpISmhaMmRwYm1kRmJHVnRaVzUwTzF4dUlDQWdJQ0FnYVdZZ0tDRmtjbUZuWjJsdVowVnNaVzFsYm5RcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnBaaUFvWkhKaFoyZHBibWRGYkdWdFpXNTBMblI1Y0dVZ1BUMDlJRndpWm5KbFpXUnlZWGRjSWlrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCd2IybHVkSE1nUFNCa2NtRm5aMmx1WjBWc1pXMWxiblF1Y0c5cGJuUnpPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmtlQ0E5SUhCdmFXNTBaWEpEYjI5eVpITXVlQ0F0SUdSeVlXZG5hVzVuUld4bGJXVnVkQzU0TzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JrZVNBOUlIQnZhVzUwWlhKRGIyOXlaSE11ZVNBdElHUnlZV2RuYVc1blJXeGxiV1Z1ZEM1NU8xeHVYRzRnSUNBZ0lDQWdJR052Ym5OMElHeGhjM1JRYjJsdWRDQTlJSEJ2YVc1MGN5NXNaVzVuZEdnZ1BpQXdJQ1ltSUhCdmFXNTBjMXR3YjJsdWRITXViR1Z1WjNSb0lDMGdNVjA3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1JwYzJOaGNtUlFiMmx1ZENBOVhHNGdJQ0FnSUNBZ0lDQWdiR0Z6ZEZCdmFXNTBJQ1ltSUd4aGMzUlFiMmx1ZEZzd1hTQTlQVDBnWkhnZ0ppWWdiR0Z6ZEZCdmFXNTBXekZkSUQwOVBTQmtlVHRjYmx4dUlDQWdJQ0FnSUNCcFppQW9JV1JwYzJOaGNtUlFiMmx1ZENrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElIQnlaWE56ZFhKbGN5QTlJR1J5WVdkbmFXNW5SV3hsYldWdWRDNXphVzExYkdGMFpWQnlaWE56ZFhKbFhHNGdJQ0FnSUNBZ0lDQWdJQ0EvSUdSeVlXZG5hVzVuUld4bGJXVnVkQzV3Y21WemMzVnlaWE5jYmlBZ0lDQWdJQ0FnSUNBZ0lEb2dXeTR1TG1SeVlXZG5hVzVuUld4bGJXVnVkQzV3Y21WemMzVnlaWE1zSUdWMlpXNTBMbkJ5WlhOemRYSmxYVHRjYmx4dUlDQWdJQ0FnSUNBZ0lHMTFkR0YwWlVWc1pXMWxiblFvWkhKaFoyZHBibWRGYkdWdFpXNTBMQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQndiMmx1ZEhNNklGc3VMaTV3YjJsdWRITXNJRnRrZUN3Z1pIbGRYU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIQnlaWE56ZFhKbGN5eGNiaUFnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaHBjMHhwYm1WaGNrVnNaVzFsYm5Rb1pISmhaMmRwYm1kRmJHVnRaVzUwS1NrZ2UxeHVJQ0FnSUNBZ0lDQndiMmx1ZEdWeVJHOTNibE4wWVhSbExtUnlZV2N1YUdGelQyTmpkWEp5WldRZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3YjJsdWRITWdQU0JrY21GbloybHVaMFZzWlcxbGJuUXVjRzlwYm5Sek8xeHVJQ0FnSUNBZ0lDQnNaWFFnWkhnZ1BTQm5jbWxrV0NBdElHUnlZV2RuYVc1blJXeGxiV1Z1ZEM1NE8xeHVJQ0FnSUNBZ0lDQnNaWFFnWkhrZ1BTQm5jbWxrV1NBdElHUnlZV2RuYVc1blJXeGxiV1Z1ZEM1NU8xeHVYRzRnSUNBZ0lDQWdJR2xtSUNoemFHOTFiR1JTYjNSaGRHVlhhWFJvUkdselkzSmxkR1ZCYm1kc1pTaGxkbVZ1ZENrZ0ppWWdjRzlwYm5SekxteGxibWQwYUNBOVBUMGdNaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDaDdJSGRwWkhSb09pQmtlQ3dnYUdWcFoyaDBPaUJrZVNCOUlEMGdaMlYwVUdWeVptVmpkRVZzWlcxbGJuUlRhWHBsS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1emRHRjBaUzVsYkdWdFpXNTBWSGx3WlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1I0TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdaSGtzWEc0Z0lDQWdJQ0FnSUNBZ0tTazdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCcFppQW9jRzlwYm5SekxteGxibWQwYUNBOVBUMGdNU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHMTFkR0YwWlVWc1pXMWxiblFvWkhKaFoyZHBibWRGYkdWdFpXNTBMQ0I3SUhCdmFXNTBjem9nV3k0dUxuQnZhVzUwY3l3Z1cyUjRMQ0JrZVYxZElIMHBPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0hCdmFXNTBjeTVzWlc1bmRHZ2dQaUF4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdiWFYwWVhSbFJXeGxiV1Z1ZENoa2NtRm5aMmx1WjBWc1pXMWxiblFzSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJ2YVc1MGN6b2dXeTR1TG5CdmFXNTBjeTV6YkdsalpTZ3dMQ0F0TVNrc0lGdGtlQ3dnWkhsZFhTeGNiaUFnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJR2xtSUNocGMwSnBibVJwYm1kRmJHVnRaVzUwS0dSeVlXZG5hVzVuUld4bGJXVnVkQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJYYUdWdUlHTnlaV0YwYVc1bklHRWdiR2x1WldGeUlHVnNaVzFsYm5RZ1lua2daSEpoWjJkcGJtZGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxtMWhlV0psVTNWbloyVnpkRUpwYm1ScGJtZHpSbTl5VEdsdVpXRnlSV3hsYldWdWRFRjBRMjl2Y21SektGeHVJQ0FnSUNBZ0lDQWdJQ0FnWkhKaFoyZHBibWRGYkdWdFpXNTBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1czQnZhVzUwWlhKRGIyOXlaSE5kTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1emRHRjBaUzV6ZEdGeWRFSnZkVzVrUld4bGJXVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQndiMmx1ZEdWeVJHOTNibE4wWVhSbExteGhjM1JEYjI5eVpITXVlQ0E5SUhCdmFXNTBaWEpEYjI5eVpITXVlRHRjYmlBZ0lDQWdJQ0FnY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzVzWVhOMFEyOXZjbVJ6TG5rZ1BTQndiMmx1ZEdWeVEyOXZjbVJ6TG5rN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YldGNVltVkVjbUZuVG1WM1IyVnVaWEpwWTBWc1pXMWxiblFvY0c5cGJuUmxja1J2ZDI1VGRHRjBaU3dnWlhabGJuUXBPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb2RHaHBjeTV6ZEdGMFpTNWxiR1Z0Wlc1MFZIbHdaU0E5UFQwZ1hDSnpaV3hsWTNScGIyNWNJaWtnZTF4dUlDQWdJQ0FnSUNCd2IybHVkR1Z5Ukc5M2JsTjBZWFJsTG1KdmVGTmxiR1ZqZEdsdmJpNW9ZWE5QWTJOMWNuSmxaQ0E5SUhSeWRXVTdYRzVjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaV3hsYldWdWRITWdQU0IwYUdsekxuTmpaVzVsTG1kbGRFVnNaVzFsYm5SektDazdYRzRnSUNBZ0lDQWdJR2xtSUNoY2JpQWdJQ0FnSUNBZ0lDQWhaWFpsYm5RdWMyaHBablJMWlhrZ0ppWmNiaUFnSUNBZ0lDQWdJQ0F2THlCaGJHeHZkM01nWm05eUlHSnZlQzF6Wld4bFkzUnBibWNnY0c5cGJuUnpJQ2gzYVhSb2IzVjBJSE5vYVdaMEtWeHVJQ0FnSUNBZ0lDQWdJQ0YwYUdsekxuTjBZWFJsTG1Wa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1MElDWW1YRzRnSUNBZ0lDQWdJQ0FnYVhOVGIyMWxSV3hsYldWdWRGTmxiR1ZqZEdWa0tHVnNaVzFsYm5SekxDQjBhR2x6TG5OMFlYUmxLVnh1SUNBZ0lDQWdJQ0FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzUzYVhSb1EyMWtUM0pEZEhKc0lDWW1JSEJ2YVc1MFpYSkViM2R1VTNSaGRHVXVhR2wwTG1Wc1pXMWxiblFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb0tIQnlaWFpUZEdGMFpTa2dQVDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjMlZzWldOMFIzSnZkWEJ6Um05eVUyVnNaV04wWldSRmJHVnRaVzUwY3loY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXVMaTV3Y21WMlUzUmhkR1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCelpXeGxZM1JsWkVWc1pXMWxiblJKWkhNNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnVzNCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YUdsMExtVnNaVzFsYm5RaExtbGtYVG9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbk5qWlc1bExtZGxkRVZzWlcxbGJuUnpLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJWc1pXTjBaV1JGYkdWdFpXNTBTV1J6T2lCN2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2MyVnNaV04wWldSSGNtOTFjRWxrY3pvZ2UzMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHVmthWFJwYm1kSGNtOTFjRWxrT2lCdWRXeHNMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDOHZJR0p2ZUMxelpXeGxZM1FnYkdsdVpTQmxaR2wwYjNJZ2NHOXBiblJ6WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG5OMFlYUmxMbVZrYVhScGJtZE1hVzVsWVhKRmJHVnRaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdUR2x1WldGeVJXeGxiV1Z1ZEVWa2FYUnZjaTVvWVc1a2JHVkNiM2hUWld4bFkzUnBiMjRvWEc0Z0lDQWdJQ0FnSUNBZ0lDQmxkbVZ1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMzUmhkR1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsTG1KcGJtUW9kR2hwY3lrc1hHNGdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QnlaV2QxYkdGeUlHSnZlQzF6Wld4bFkzUmNiaUFnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQmxiR1Z0Wlc1MGMxZHBkR2hwYmxObGJHVmpkR2x2YmlBOUlHZGxkRVZzWlcxbGJuUnpWMmwwYUdsdVUyVnNaV04wYVc5dUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4bGJXVnVkSE1zWEc0Z0lDQWdJQ0FnSUNBZ0lDQmtjbUZuWjJsdVowVnNaVzFsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLQ2h3Y21WMlUzUmhkR1VwSUQwK1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6Wld4bFkzUkhjbTkxY0hOR2IzSlRaV3hsWTNSbFpFVnNaVzFsYm5SektGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0xpNHVjSEpsZGxOMFlYUmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5sYkdWamRHVmtSV3hsYldWdWRFbGtjem9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0xpNHVjSEpsZGxOMFlYUmxMbk5sYkdWamRHVmtSV3hsYldWdWRFbGtjeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM0dUxtVnNaVzFsYm5SelYybDBhR2x1VTJWc1pXTjBhVzl1TG5KbFpIVmpaU2dvYldGd0xDQmxiR1Z0Wlc1MEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHMWhjRnRsYkdWdFpXNTBMbWxrWFNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCdFlYQTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5TENCN2ZTQmhjeUJoYm5rcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMaTR1S0hCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YUdsMExtVnNaVzFsYm5SY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQeUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCcFppQjFjMmx1WnlCamRISnNMMk50WkN3Z2MyVnNaV04wSUhSb1pTQm9hWFJGYkdWdFpXNTBJRzl1YkhrZ2FXWWdkMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUdoaGRtVnVKM1FnWW05NExYTmxiR1ZqZEdWa0lHRnVlWFJvYVc1bklHVnNjMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRnR3YjJsdWRHVnlSRzkzYmxOMFlYUmxMbWhwZEM1bGJHVnRaVzUwTG1sa1hUcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJV1ZzWlcxbGJuUnpWMmwwYUdsdVUyVnNaV04wYVc5dUxteGxibWQwYUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEb2diblZzYkNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnphRzkzU0hsd1pYSnNhVzVyVUc5d2RYQTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBjMWRwZEdocGJsTmxiR1ZqZEdsdmJpNXNaVzVuZEdnZ1BUMDlJREVnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNaVzFsYm5SelYybDBhR2x1VTJWc1pXTjBhVzl1V3pCZExteHBibXRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1B5QmNJbWx1Wm05Y0lseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E2SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5OalpXNWxMbWRsZEVWc1pXMWxiblJ6S0Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVYRzRnSUM4dklGSmxkSFZ5Ym5NZ2QyaGxkR2hsY2lCMGFHVWdjRzlwYm5SbGNpQnRiM1psSUdoaGNIQmxibVZrSUc5MlpYSWdaV2wwYUdWeUlITmpjbTlzYkdKaGNseHVJQ0J3Y21sMllYUmxJR2hoYm1Sc1pWQnZhVzUwWlhKTmIzWmxUM1psY2xOamNtOXNiR0poY25Nb1hHNGdJQ0FnWlhabGJuUTZJRkJ2YVc1MFpYSkZkbVZ1ZEN4Y2JpQWdJQ0J3YjJsdWRHVnlSRzkzYmxOMFlYUmxPaUJRYjJsdWRHVnlSRzkzYmxOMFlYUmxMRnh1SUNBcE9pQmliMjlzWldGdUlIdGNiaUFnSUNCcFppQW9jRzlwYm5SbGNrUnZkMjVUZEdGMFpTNXpZM0p2Ykd4aVlYSnpMbWx6VDNabGNraHZjbWw2YjI1MFlXd3BJSHRjYmlBZ0lDQWdJR052Ym5OMElIZ2dQU0JsZG1WdWRDNWpiR2xsYm5SWU8xeHVJQ0FnSUNBZ1kyOXVjM1FnWkhnZ1BTQjRJQzBnY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzVzWVhOMFEyOXZjbVJ6TG5nN1hHNGdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLSHRjYmlBZ0lDQWdJQ0FnYzJOeWIyeHNXRG9nZEdocGN5NXpkR0YwWlM1elkzSnZiR3hZSUMwZ1pIZ2dMeUIwYUdsekxuTjBZWFJsTG5wdmIyMHVkbUZzZFdVc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIQnZhVzUwWlhKRWIzZHVVM1JoZEdVdWJHRnpkRU52YjNKa2N5NTRJRDBnZUR0Y2JpQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHdiMmx1ZEdWeVJHOTNibE4wWVhSbExuTmpjbTlzYkdKaGNuTXVhWE5QZG1WeVZtVnlkR2xqWVd3cElIdGNiaUFnSUNBZ0lHTnZibk4wSUhrZ1BTQmxkbVZ1ZEM1amJHbGxiblJaTzF4dUlDQWdJQ0FnWTI5dWMzUWdaSGtnUFNCNUlDMGdjRzlwYm5SbGNrUnZkMjVUZEdGMFpTNXNZWE4wUTI5dmNtUnpMbms3WEc0Z0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdjMk55YjJ4c1dUb2dkR2hwY3k1emRHRjBaUzV6WTNKdmJHeFpJQzBnWkhrZ0x5QjBhR2x6TG5OMFlYUmxMbnB2YjIwdWRtRnNkV1VzWEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YkdGemRFTnZiM0prY3k1NUlEMGdlVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBjblZsTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUc5dVVHOXBiblJsY2xWd1JuSnZiVkJ2YVc1MFpYSkViM2R1U0dGdVpHeGxjaWhjYmlBZ0lDQndiMmx1ZEdWeVJHOTNibE4wWVhSbE9pQlFiMmx1ZEdWeVJHOTNibE4wWVhSbExGeHVJQ0FwT2lBb1pYWmxiblE2SUZCdmFXNTBaWEpGZG1WdWRDa2dQVDRnZG05cFpDQjdYRzRnSUNBZ2NtVjBkWEp1SUhkcGRHaENZWFJqYUdWa1ZYQmtZWFJsY3lnb1kyaHBiR1JGZG1WdWREb2dVRzlwYm5SbGNrVjJaVzUwS1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCN1hHNGdJQ0FnSUNBZ0lHUnlZV2RuYVc1blJXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUNBZ2NtVnphWHBwYm1kRmJHVnRaVzUwTEZ4dUlDQWdJQ0FnSUNCdGRXeDBhVVZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJR1ZzWlcxbGJuUlVlWEJsTEZ4dUlDQWdJQ0FnSUNCbGJHVnRaVzUwVEc5amEyVmtMRnh1SUNBZ0lDQWdJQ0JwYzFKbGMybDZhVzVuTEZ4dUlDQWdJQ0FnSUNCcGMxSnZkR0YwYVc1bkxGeHVJQ0FnSUNBZ2ZTQTlJSFJvYVhNdWMzUmhkR1U3WEc1Y2JpQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9lMXh1SUNBZ0lDQWdJQ0JwYzFKbGMybDZhVzVuT2lCbVlXeHpaU3hjYmlBZ0lDQWdJQ0FnYVhOU2IzUmhkR2x1WnpvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0FnSUhKbGMybDZhVzVuUld4bGJXVnVkRG9nYm5Wc2JDeGNiaUFnSUNBZ0lDQWdjMlZzWldOMGFXOXVSV3hsYldWdWREb2diblZzYkN4Y2JpQWdJQ0FnSUNBZ1kzVnljMjl5UW5WMGRHOXVPaUJjSW5Wd1hDSXNYRzRnSUNBZ0lDQWdJQzh2SUhSbGVIUWdaV3hsYldWdWRITWdZWEpsSUhKbGMyVjBJRzl1SUdacGJtRnNhWHBsTENCaGJtUWdjbVZ6WlhSMGFXNW5JRzl1SUhCdmFXNTBaWEoxY0Z4dUlDQWdJQ0FnSUNBdkx5QnRZWGtnWTJGMWMyVWdhWE56ZFdWeklIZHBkR2dnWkc5MVlteGxJSFJoY0hOY2JpQWdJQ0FnSUNBZ1pXUnBkR2x1WjBWc1pXMWxiblE2WEc0Z0lDQWdJQ0FnSUNBZ2JYVnNkR2xGYkdWdFpXNTBJSHg4SUdselZHVjRkRVZzWlcxbGJuUW9kR2hwY3k1emRHRjBaUzVsWkdsMGFXNW5SV3hsYldWdWRDbGNiaUFnSUNBZ0lDQWdJQ0FnSUQ4Z2RHaHBjeTV6ZEdGMFpTNWxaR2wwYVc1blJXeGxiV1Z1ZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdPaUJ1ZFd4c0xGeHVJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJSFJvYVhNdWMyRjJaVkJ2YVc1MFpYSW9ZMmhwYkdSRmRtVnVkQzVqYkdsbGJuUllMQ0JqYUdsc1pFVjJaVzUwTG1Oc2FXVnVkRmtzSUZ3aWRYQmNJaWs3WEc1Y2JpQWdJQ0FnSUM4dklFaGhibVJzWlNCbGJtUWdiMllnWkhKaFoyZHBibWNnWVNCd2IybHVkQ0J2WmlCaElHeHBibVZoY2lCbGJHVnRaVzUwTENCdGFXZG9kQ0JqYkc5elpTQmhJR3h2YjNCY2JpQWdJQ0FnSUM4dklHRnVaQ0J6WlhSeklHSnBibVJwYm1jZ1pXeGxiV1Z1ZEZ4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11YzNSaGRHVXVaV1JwZEdsdVoweHBibVZoY2tWc1pXMWxiblFwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdJQ0FnSUNGd2IybHVkR1Z5Ukc5M2JsTjBZWFJsTG1KdmVGTmxiR1ZqZEdsdmJpNW9ZWE5QWTJOMWNuSmxaQ0FtSmx4dUlDQWdJQ0FnSUNBZ0lDaHdiMmx1ZEdWeVJHOTNibE4wWVhSbExtaHBkRDh1Wld4bGJXVnVkRDh1YVdRZ0lUMDlYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbk4wWVhSbExtVmthWFJwYm1kTWFXNWxZWEpGYkdWdFpXNTBMbVZzWlcxbGJuUkpaQ0I4ZkZ4dUlDQWdJQ0FnSUNBZ0lDQWdJWEJ2YVc1MFpYSkViM2R1VTNSaGRHVXVhR2wwTG1oaGMwaHBkRVZzWlcxbGJuUkpibk5wWkdVcFhHNGdJQ0FnSUNBZ0lDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVZV04wYVc5dVRXRnVZV2RsY2k1bGVHVmpkWFJsUVdOMGFXOXVLR0ZqZEdsdmJrWnBibUZzYVhwbEtUdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQmxaR2wwYVc1blRHbHVaV0Z5Uld4bGJXVnVkQ0E5SUV4cGJtVmhja1ZzWlcxbGJuUkZaR2wwYjNJdWFHRnVaR3hsVUc5cGJuUmxjbFZ3S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdZMmhwYkdSRmRtVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YzNSaGRHVXVaV1JwZEdsdVoweHBibVZoY2tWc1pXMWxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMRnh1SUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dWa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1MElDRTlQU0IwYUdsekxuTjBZWFJsTG1Wa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1MEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdaV1JwZEdsdVoweHBibVZoY2tWc1pXMWxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSE4xWjJkbGMzUmxaRUpwYm1ScGJtZHpPaUJiWFN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JzWVhOMFVHOXBiblJsY2xWd0lEMGdiblZzYkR0Y2JseHVJQ0FnSUNBZ2FXWWdLSEJ2YVc1MFpYSkViM2R1VTNSaGRHVXVaWFpsYm5STWFYTjBaVzVsY25NdWIyNU5iM1psS1NCN1hHNGdJQ0FnSUNBZ0lIQnZhVzUwWlhKRWIzZHVVM1JoZEdVdVpYWmxiblJNYVhOMFpXNWxjbk11YjI1TmIzWmxMbVpzZFhOb0tDazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJSGRwYm1SdmR5NXlaVzF2ZG1WRmRtVnVkRXhwYzNSbGJtVnlLRnh1SUNBZ0lDQWdJQ0JGVmtWT1ZDNVFUMGxPVkVWU1gwMVBWa1VzWEc0Z0lDQWdJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1WlhabGJuUk1hWE4wWlc1bGNuTXViMjVOYjNabElTeGNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQjNhVzVrYjNjdWNtVnRiM1psUlhabGJuUk1hWE4wWlc1bGNpaGNiaUFnSUNBZ0lDQWdSVlpGVGxRdVVFOUpUbFJGVWw5VlVDeGNiaUFnSUNBZ0lDQWdjRzlwYm5SbGNrUnZkMjVUZEdGMFpTNWxkbVZ1ZEV4cGMzUmxibVZ5Y3k1dmJsVndJU3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0IzYVc1a2IzY3VjbVZ0YjNabFJYWmxiblJNYVhOMFpXNWxjaWhjYmlBZ0lDQWdJQ0FnUlZaRlRsUXVTMFZaUkU5WFRpeGNiaUFnSUNBZ0lDQWdjRzlwYm5SbGNrUnZkMjVUZEdGMFpTNWxkbVZ1ZEV4cGMzUmxibVZ5Y3k1dmJrdGxlVVJ2ZDI0aExGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lIZHBibVJ2ZHk1eVpXMXZkbVZGZG1WdWRFeHBjM1JsYm1WeUtGeHVJQ0FnSUNBZ0lDQkZWa1ZPVkM1TFJWbFZVQ3hjYmlBZ0lDQWdJQ0FnY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzVsZG1WdWRFeHBjM1JsYm1WeWN5NXZia3RsZVZWd0lTeGNiaUFnSUNBZ0lDazdYRzVjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbk4wWVhSbExuQmxibVJwYm1kSmJXRm5aVVZzWlcxbGJuUXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdJSEJsYm1ScGJtZEpiV0ZuWlVWc1pXMWxiblE2SUc1MWJHd2dmU2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdsbUlDaGtjbUZuWjJsdVowVnNaVzFsYm5RL0xuUjVjR1VnUFQwOUlGd2labkpsWldSeVlYZGNJaWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3YjJsdWRHVnlRMjl2Y21SeklEMGdkbWxsZDNCdmNuUkRiMjl5WkhOVWIxTmpaVzVsUTI5dmNtUnpLRnh1SUNBZ0lDQWdJQ0FnSUdOb2FXeGtSWFpsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1emRHRjBaU3hjYmlBZ0lDQWdJQ0FnS1R0Y2JseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCd2IybHVkSE1nUFNCa2NtRm5aMmx1WjBWc1pXMWxiblF1Y0c5cGJuUnpPMXh1SUNBZ0lDQWdJQ0JzWlhRZ1pIZ2dQU0J3YjJsdWRHVnlRMjl2Y21SekxuZ2dMU0JrY21GbloybHVaMFZzWlcxbGJuUXVlRHRjYmlBZ0lDQWdJQ0FnYkdWMElHUjVJRDBnY0c5cGJuUmxja052YjNKa2N5NTVJQzBnWkhKaFoyZHBibWRGYkdWdFpXNTBMbms3WEc1Y2JpQWdJQ0FnSUNBZ0x5OGdRV3hzYjNkeklHUnZkSE1nZEc4Z1lYWnZhV1FnWW1WcGJtY2dabXhoWjJkbFpDQmhjeUJwYm1acGJtbDBaV3g1SUhOdFlXeHNYRzRnSUNBZ0lDQWdJR2xtSUNoa2VDQTlQVDBnY0c5cGJuUnpXekJkV3pCZElDWW1JR1I1SUQwOVBTQndiMmx1ZEhOYk1GMWJNVjBwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmtlU0FyUFNBd0xqQXdNREU3WEc0Z0lDQWdJQ0FnSUNBZ1pIZ2dLejBnTUM0d01EQXhPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY0hKbGMzTjFjbVZ6SUQwZ1pISmhaMmRwYm1kRmJHVnRaVzUwTG5OcGJYVnNZWFJsVUhKbGMzTjFjbVZjYmlBZ0lDQWdJQ0FnSUNBL0lGdGRYRzRnSUNBZ0lDQWdJQ0FnT2lCYkxpNHVaSEpoWjJkcGJtZEZiR1Z0Wlc1MExuQnlaWE56ZFhKbGN5d2dZMmhwYkdSRmRtVnVkQzV3Y21WemMzVnlaVjA3WEc1Y2JpQWdJQ0FnSUNBZ2JYVjBZWFJsUld4bGJXVnVkQ2hrY21GbloybHVaMFZzWlcxbGJuUXNJSHRjYmlBZ0lDQWdJQ0FnSUNCd2IybHVkSE02SUZzdUxpNXdiMmx1ZEhNc0lGdGtlQ3dnWkhsZFhTeGNiaUFnSUNBZ0lDQWdJQ0J3Y21WemMzVnlaWE1zWEc0Z0lDQWdJQ0FnSUNBZ2JHRnpkRU52YlcxcGRIUmxaRkJ2YVc1ME9pQmJaSGdzSUdSNVhTeGNiaUFnSUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVoWTNScGIyNU5ZVzVoWjJWeUxtVjRaV04xZEdWQlkzUnBiMjRvWVdOMGFXOXVSbWx1WVd4cGVtVXBPMXh1WEc0Z0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR2xtSUNocGMwbHRZV2RsUld4bGJXVnVkQ2hrY21GbloybHVaMFZzWlcxbGJuUXBLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR2x0WVdkbFJXeGxiV1Z1ZENBOUlHUnlZV2RuYVc1blJXeGxiV1Z1ZER0Y2JpQWdJQ0FnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbWx1YVhScFlXeHBlbVZKYldGblpVUnBiV1Z1YzJsdmJuTW9hVzFoWjJWRmJHVnRaVzUwS1R0Y2JpQWdJQ0FnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdleUJ6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE02SUhzZ1cybHRZV2RsUld4bGJXVnVkQzVwWkYwNklIUnlkV1VnZlNCOUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnS0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1GamRHbHZiazFoYm1GblpYSXVaWGhsWTNWMFpVRmpkR2x2YmloaFkzUnBiMjVHYVc1aGJHbDZaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lIMGdZMkYwWTJnZ0tHVnljbTl5T2lCaGJua3BJSHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpiMnhsTG1WeWNtOXlLR1Z5Y205eUtUdGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxuTmpaVzVsTG5KbGNHeGhZMlZCYkd4RmJHVnRaVzUwY3loY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMyTmxibVZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdMbWRsZEVWc1pXMWxiblJ6U1c1amJIVmthVzVuUkdWc1pYUmxaQ2dwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQzVtYVd4MFpYSW9LR1ZzS1NBOVBpQmxiQzVwWkNBaFBUMGdhVzFoWjJWRmJHVnRaVzUwTG1sa0tTeGNiaUFnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11WVdOMGFXOXVUV0Z1WVdkbGNpNWxlR1ZqZFhSbFFXTjBhVzl1S0dGamRHbHZia1pwYm1Gc2FYcGxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdsbUlDaHBjMHhwYm1WaGNrVnNaVzFsYm5Rb1pISmhaMmRwYm1kRmJHVnRaVzUwS1NrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvWkhKaFoyZHBibWRGYkdWdFpXNTBJUzV3YjJsdWRITXViR1Z1WjNSb0lENGdNU2tnZTF4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11YUdsemRHOXllUzV5WlhOMWJXVlNaV052Y21ScGJtY29LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3YjJsdWRHVnlRMjl2Y21SeklEMGdkbWxsZDNCdmNuUkRiMjl5WkhOVWIxTmpaVzVsUTI5dmNtUnpLRnh1SUNBZ0lDQWdJQ0FnSUdOb2FXeGtSWFpsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1emRHRjBaU3hjYmlBZ0lDQWdJQ0FnS1R0Y2JseHVJQ0FnSUNBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0FnSUNBZ0lYQnZhVzUwWlhKRWIzZHVVM1JoZEdVdVpISmhaeTVvWVhOUFkyTjFjbkpsWkNBbUpseHVJQ0FnSUNBZ0lDQWdJR1J5WVdkbmFXNW5SV3hsYldWdWRDQW1KbHh1SUNBZ0lDQWdJQ0FnSUNGdGRXeDBhVVZzWlcxbGJuUmNiaUFnSUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2JYVjBZWFJsUld4bGJXVnVkQ2hrY21GbloybHVaMFZzWlcxbGJuUXNJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIQnZhVzUwY3pvZ1cxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBdUxpNWtjbUZuWjJsdVowVnNaVzFsYm5RdWNHOXBiblJ6TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JiWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0c5cGJuUmxja052YjNKa2N5NTRJQzBnWkhKaFoyZHBibWRGYkdWdFpXNTBMbmdzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0c5cGJuUmxja052YjNKa2N5NTVJQzBnWkhKaFoyZHBibWRGYkdWdFpXNTBMbmtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRjBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmRMRnh1SUNBZ0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYlhWc2RHbEZiR1Z0Wlc1ME9pQmtjbUZuWjJsdVowVnNaVzFsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsWkdsMGFXNW5SV3hsYldWdWREb2dkR2hwY3k1emRHRjBaUzVrY21GbloybHVaMFZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9jRzlwYm5SbGNrUnZkMjVUZEdGMFpTNWtjbUZuTG1oaGMwOWpZM1Z5Y21Wa0lDWW1JQ0Z0ZFd4MGFVVnNaVzFsYm5RcElIdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwYzBKcGJtUnBibWRGYm1GaWJHVmtLSFJvYVhNdWMzUmhkR1VwSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwYzBKcGJtUnBibWRGYkdWdFpXNTBLR1J5WVdkbmFXNW5SV3hsYldWdWRDbGNiaUFnSUNBZ0lDQWdJQ0FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRzFoZVdKbFFtbHVaRXhwYm1WaGNrVnNaVzFsYm5Rb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdSeVlXZG5hVzVuUld4bGJXVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1emRHRjBaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1elkyVnVaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjRzlwYm5SbGNrTnZiM0prY3l4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2V5QnpkV2RuWlhOMFpXUkNhVzVrYVc1bmN6b2dXMTBzSUhOMFlYSjBRbTkxYm1SRmJHVnRaVzUwT2lCdWRXeHNJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2doWld4bGJXVnVkRXh2WTJ0bFpDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnpaWFJEZFhKemIzSW9kR2hwY3k1allXNTJZWE1wTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNnb2NISmxkbE4wWVhSbEtTQTlQaUFvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JrY21GbloybHVaMFZzWlcxbGJuUTZJRzUxYkd3c1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc1pXMWxiblJVZVhCbE9pQmNJbk5sYkdWamRHbHZibHdpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE02SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdUxpNXdjbVYyVTNSaGRHVXVjMlZzWldOMFpXUkZiR1Z0Wlc1MFNXUnpMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRnQwYUdsekxuTjBZWFJsTG1SeVlXZG5hVzVuUld4bGJXVnVkQ0V1YVdSZE9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdmU2twTzF4dUlDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtDaHdjbVYyVTNSaGRHVXBJRDArSUNoN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdSeVlXZG5hVzVuUld4bGJXVnVkRG9nYm5Wc2JDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2MyVnNaV04wWldSRmJHVnRaVzUwU1dSek9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMaTR1Y0hKbGRsTjBZWFJsTG5ObGJHVmpkR1ZrUld4bGJXVnVkRWxrY3l4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCYmRHaHBjeTV6ZEdGMFpTNWtjbUZuWjJsdVowVnNaVzFsYm5RaExtbGtYVG9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUgwcEtUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCcFppQW9YRzRnSUNBZ0lDQWdJR1ZzWlcxbGJuUlVlWEJsSUNFOVBTQmNJbk5sYkdWamRHbHZibHdpSUNZbVhHNGdJQ0FnSUNBZ0lHUnlZV2RuYVc1blJXeGxiV1Z1ZENBbUpseHVJQ0FnSUNBZ0lDQnBjMGx1ZG1semFXSnNlVk50WVd4c1JXeGxiV1Z1ZENoa2NtRm5aMmx1WjBWc1pXMWxiblFwWEc0Z0lDQWdJQ0FwSUh0Y2JpQWdJQ0FnSUNBZ0x5OGdjbVZ0YjNabElHbHVkbWx6YVdKc1pTQmxiR1Z0Wlc1MElIZG9hV05vSUhkaGN5QmhaR1JsWkNCcGJpQnZibEJ2YVc1MFpYSkViM2R1WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMk5sYm1VdWNtVndiR0ZqWlVGc2JFVnNaVzFsYm5SektGeHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMyTmxibVV1WjJWMFJXeGxiV1Z1ZEhOSmJtTnNkV1JwYm1kRVpXeGxkR1ZrS0NrdWMyeHBZMlVvTUN3Z0xURXBMRnh1SUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLSHRjYmlBZ0lDQWdJQ0FnSUNCa2NtRm5aMmx1WjBWc1pXMWxiblE2SUc1MWJHd3NYRzRnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdsbUlDaGtjbUZuWjJsdVowVnNaVzFsYm5RcElIdGNiaUFnSUNBZ0lDQWdiWFYwWVhSbFJXeGxiV1Z1ZENoY2JpQWdJQ0FnSUNBZ0lDQmtjbUZuWjJsdVowVnNaVzFsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdaMlYwVG05eWJXRnNhWHBsWkVScGJXVnVjMmx2Ym5Nb1pISmhaMmRwYm1kRmJHVnRaVzUwS1N4Y2JpQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdhV1lnS0hKbGMybDZhVzVuUld4bGJXVnVkQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbWhwYzNSdmNua3VjbVZ6ZFcxbFVtVmpiM0prYVc1bktDazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR2xtSUNoeVpYTnBlbWx1WjBWc1pXMWxiblFnSmlZZ2FYTkpiblpwYzJsaWJIbFRiV0ZzYkVWc1pXMWxiblFvY21WemFYcHBibWRGYkdWdFpXNTBLU2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5qWlc1bExuSmxjR3hoWTJWQmJHeEZiR1Z0Wlc1MGN5aGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxuTmpaVzVsWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVaMlYwUld4bGJXVnVkSE5KYm1Oc2RXUnBibWRFWld4bGRHVmtLQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDNW1hV3gwWlhJb0tHVnNLU0E5UGlCbGJDNXBaQ0FoUFQwZ2NtVnphWHBwYm1kRmJHVnRaVzUwTG1sa0tTeGNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnTHk4Z1EyOWtaU0JpWld4dmR5Qm9ZVzVrYkdWeklITmxiR1ZqZEdsdmJpQjNhR1Z1SUdWc1pXMWxiblFvY3lrZ2QyVnlaVzRuZEZ4dUlDQWdJQ0FnTHk4Z1pISmhaeUJ2Y2lCaFpHUmxaQ0IwYnlCelpXeGxZM1JwYjI0Z2IyNGdjRzlwYm5SbGNpQmtiM2R1SUhCb1lYTmxMbHh1SUNBZ0lDQWdZMjl1YzNRZ2FHbDBSV3hsYldWdWRDQTlJSEJ2YVc1MFpYSkViM2R1VTNSaGRHVXVhR2wwTG1Wc1pXMWxiblE3WEc0Z0lDQWdJQ0JwWmlBb1hHNGdJQ0FnSUNBZ0lHaHBkRVZzWlcxbGJuUWdKaVpjYmlBZ0lDQWdJQ0FnSVhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1WkhKaFp5NW9ZWE5QWTJOMWNuSmxaQ0FtSmx4dUlDQWdJQ0FnSUNBaGNHOXBiblJsY2tSdmQyNVRkR0YwWlM1b2FYUXVkMkZ6UVdSa1pXUlViMU5sYkdWamRHbHZiaUFtSmx4dUlDQWdJQ0FnSUNBdkx5QnBaaUIzWlNkeVpTQmxaR2wwYVc1bklHRWdiR2x1WlN3Z2NHOXBiblJsY25Wd0lITm9iM1ZzWkc0bmRDQnpkMmwwWTJnZ2MyVnNaV04wYVc5dUlHbG1YRzRnSUNBZ0lDQWdJQzh2SUdKdmVDQnpaV3hsWTNSbFpGeHVJQ0FnSUNBZ0lDQW9JWFJvYVhNdWMzUmhkR1V1WldScGRHbHVaMHhwYm1WaGNrVnNaVzFsYm5RZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0FoY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzVpYjNoVFpXeGxZM1JwYjI0dWFHRnpUMk5qZFhKeVpXUXBYRzRnSUNBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnTHk4Z2QyaGxiaUJwYm5OcFpHVWdiR2x1WlNCbFpHbDBiM0lzSUhOb2FXWjBJSE5sYkdWamRITWdjRzlwYm5SeklHbHVjM1JsWVdSY2JpQWdJQ0FnSUNBZ2FXWWdLR05vYVd4a1JYWmxiblF1YzJocFpuUkxaWGtnSmlZZ0lYUm9hWE11YzNSaGRHVXVaV1JwZEdsdVoweHBibVZoY2tWc1pXMWxiblFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NXpkR0YwWlM1elpXeGxZM1JsWkVWc1pXMWxiblJKWkhOYmFHbDBSV3hsYldWdWRDNXBaRjBwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocGMxTmxiR1ZqZEdWa1ZtbGhSM0p2ZFhBb2RHaHBjeTV6ZEdGMFpTd2dhR2wwUld4bGJXVnVkQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1YyVWdkMkZ1ZENCMGJ5QjFibk5sYkdWamRDQmhiR3dnWjNKdmRYQnpJR2hwZEVWc1pXMWxiblFnYVhNZ2NHRnlkQ0J2Wmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCaGN5QjNaV3hzSUdGeklHRnNiQ0JsYkdWdFpXNTBjeUIwYUdGMElHRnlaU0J3WVhKMElHOW1JSFJvWlNCbmNtOTFjSE5jYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnYUdsMFJXeGxiV1Z1ZENCcGN5QndZWEowSUc5bVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR2xrYzA5bVUyVnNaV04wWldSRmJHVnRaVzUwYzFSb1lYUkJjbVZKYmtkeWIzVndjeUE5SUdocGRFVnNaVzFsYm5RdVozSnZkWEJKWkhOY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdVpteGhkRTFoY0Nnb1ozSnZkWEJKWkNrZ1BUNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2RsZEVWc1pXMWxiblJ6U1c1SGNtOTFjQ2gwYUdsekxuTmpaVzVsTG1kbGRFVnNaVzFsYm5SektDa3NJR2R5YjNWd1NXUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F1YldGd0tDaGxiR1Z0Wlc1MEtTQTlQaUFvZXlCYlpXeGxiV1Z1ZEM1cFpGMDZJR1poYkhObElIMHBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzV5WldSMVkyVW9LSEJ5WlhaSlpDd2dZV05qS1NBOVBpQW9leUF1TGk1d2NtVjJTV1FzSUM0dUxtRmpZeUI5S1N3Z2UzMHBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb0tGOXdjbVYyVTNSaGRHVXBJRDArSUNoN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyVnNaV04wWldSSGNtOTFjRWxrY3pvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMaTR1WDNCeVpYWlRkR0YwWlM1elpXeGxZM1JsWkVWc1pXMWxiblJKWkhNc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXVMaTVvYVhSRmJHVnRaVzUwTG1keWIzVndTV1J6WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDNXRZWEFvS0dkSlpDa2dQVDRnS0hzZ1cyZEpaRjA2SUdaaGJITmxJSDBwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXVjbVZrZFdObEtDaHdjbVYyTENCaFkyTXBJRDArSUNoN0lDNHVMbkJ5WlhZc0lDNHVMbUZqWXlCOUtTd2dlMzBwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyVnNaV04wWldSRmJHVnRaVzUwU1dSek9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F1TGk1ZmNISmxkbE4wWVhSbExuTmxiR1ZqZEdWa1JXeGxiV1Z1ZEVsa2N5eGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzR1TG1sa2MwOW1VMlZzWldOMFpXUkZiR1Z0Wlc1MGMxUm9ZWFJCY21WSmJrZHliM1Z3Y3l4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUtTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCeVpXMXZkbVVnWld4bGJXVnVkQ0JtY205dElITmxiR1ZqZEdsdmJpQjNhR2xzWlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCclpXVndhVzVuSUhCeVpYWWdaV3hsYldWdWRITWdjMlZzWldOMFpXUmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2dvY0hKbGRsTjBZWFJsS1NBOVBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxiR1ZqZEVkeWIzVndjMFp2Y2xObGJHVmpkR1ZrUld4bGJXVnVkSE1vWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzR1TG5CeVpYWlRkR0YwWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMlZzWldOMFpXUkZiR1Z0Wlc1MFNXUnpPaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMaTR1Y0hKbGRsTjBZWFJsTG5ObGJHVmpkR1ZrUld4bGJXVnVkRWxrY3l4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JiYUdsMFJXeGxiV1Z1ZENFdWFXUmRPaUJtWVd4elpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuTmpaVzVsTG1kbGRFVnNaVzFsYm5SektDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdZV1JrSUdWc1pXMWxiblFnZEc4Z2MyVnNaV04wYVc5dUlIZG9hV3hsWEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJyWldWd2FXNW5JSEJ5WlhZZ1pXeGxiV1Z1ZEhNZ2MyVnNaV04wWldSY2JseHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTZ29YM0J5WlhaVGRHRjBaU2tnUFQ0Z0tIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2MyVnNaV04wWldSRmJHVnRaVzUwU1dSek9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMaTR1WDNCeVpYWlRkR0YwWlM1elpXeGxZM1JsWkVWc1pXMWxiblJKWkhNc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1cyaHBkRVZzWlcxbGJuUWhMbWxrWFRvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHBLVHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNnb2NISmxkbE4wWVhSbEtTQTlQaUFvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdMaTR1YzJWc1pXTjBSM0p2ZFhCelJtOXlVMlZzWldOMFpXUkZiR1Z0Wlc1MGN5aGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDNHVMbkJ5WlhaVGRHRjBaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE02SUhzZ1cyaHBkRVZzWlcxbGJuUXVhV1JkT2lCMGNuVmxJSDBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMyTmxibVV1WjJWMFJXeGxiV1Z1ZEhNb0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNrc1hHNGdJQ0FnSUNBZ0lDQWdmU2twTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnSVhSb2FYTXVjM1JoZEdVdVpXUnBkR2x1WjB4cGJtVmhja1ZzWlcxbGJuUWdKaVpjYmlBZ0lDQWdJQ0FnSVhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1WkhKaFp5NW9ZWE5QWTJOMWNuSmxaQ0FtSmx4dUlDQWdJQ0FnSUNBaGRHaHBjeTV6ZEdGMFpTNXBjMUpsYzJsNmFXNW5JQ1ltWEc0Z0lDQWdJQ0FnSUNnb2FHbDBSV3hsYldWdWRDQW1KbHh1SUNBZ0lDQWdJQ0FnSUdselNHbDBkR2x1WjBWc1pXMWxiblJDYjNWdVpHbHVaMEp2ZUZkcGRHaHZkWFJJYVhSMGFXNW5SV3hsYldWdWRDaGNiaUFnSUNBZ0lDQWdJQ0FnSUdocGRFVnNaVzFsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuTjBZWFJsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjRzlwYm5SbGNrUnZkMjVUZEdGMFpTNXZjbWxuYVc0dWVDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YjNKcFoybHVMbmtzWEc0Z0lDQWdJQ0FnSUNBZ0tTa2dmSHhjYmlBZ0lDQWdJQ0FnSUNBb0lXaHBkRVZzWlcxbGJuUWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lIQnZhVzUwWlhKRWIzZHVVM1JoZEdVdWFHbDBMbWhoYzBocGRFTnZiVzF2YmtKdmRXNWthVzVuUW05NFQyWlRaV3hsWTNSbFpFVnNaVzFsYm5SektTbGNiaUFnSUNBZ0lDa2dlMXh1SUNBZ0lDQWdJQ0F2THlCRVpYTmxiR1ZqZENCelpXeGxZM1JsWkNCbGJHVnRaVzUwYzF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLSHRjYmlBZ0lDQWdJQ0FnSUNCelpXeGxZM1JsWkVWc1pXMWxiblJKWkhNNklIdDlMRnh1SUNBZ0lDQWdJQ0FnSUhObGJHVmpkR1ZrUjNKdmRYQkpaSE02SUh0OUxGeHVJQ0FnSUNBZ0lDQWdJR1ZrYVhScGJtZEhjbTkxY0Vsa09pQnVkV3hzTEZ4dUlDQWdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR2xtSUNnaFpXeGxiV1Z1ZEV4dlkydGxaQ0FtSmlCbGJHVnRaVzUwVkhsd1pTQWhQVDBnWENKbWNtVmxaSEpoZDF3aUlDWW1JR1J5WVdkbmFXNW5SV3hsYldWdWRDa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtDaHdjbVYyVTNSaGRHVXBJRDArSUNoN1hHNGdJQ0FnSUNBZ0lDQWdjMlZzWldOMFpXUkZiR1Z0Wlc1MFNXUnpPaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXVMaTV3Y21WMlUzUmhkR1V1YzJWc1pXTjBaV1JGYkdWdFpXNTBTV1J6TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdXMlJ5WVdkbmFXNW5SV3hsYldWdWRDNXBaRjA2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2ZTa3BPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb1hHNGdJQ0FnSUNBZ0lHVnNaVzFsYm5SVWVYQmxJQ0U5UFNCY0luTmxiR1ZqZEdsdmJsd2lJSHg4WEc0Z0lDQWdJQ0FnSUdselUyOXRaVVZzWlcxbGJuUlRaV3hsWTNSbFpDaDBhR2x6TG5OalpXNWxMbWRsZEVWc1pXMWxiblJ6S0Nrc0lIUm9hWE11YzNSaGRHVXBYRzRnSUNBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NW9hWE4wYjNKNUxuSmxjM1Z0WlZKbFkyOXlaR2x1WnlncE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnBaaUFvY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzVrY21GbkxtaGhjMDlqWTNWeWNtVmtJSHg4SUdselVtVnphWHBwYm1jZ2ZId2dhWE5TYjNSaGRHbHVaeWtnZTF4dUlDQWdJQ0FnSUNBb2FYTkNhVzVrYVc1blJXNWhZbXhsWkNoMGFHbHpMbk4wWVhSbEtWeHVJQ0FnSUNBZ0lDQWdJRDhnWW1sdVpFOXlWVzVpYVc1a1UyVnNaV04wWldSRmJHVnRaVzUwYzF4dUlDQWdJQ0FnSUNBZ0lEb2dkVzVpYVc1a1RHbHVaV0Z5Uld4bGJXVnVkSE1wS0Z4dUlDQWdJQ0FnSUNBZ0lHZGxkRk5sYkdWamRHVmtSV3hsYldWdWRITW9kR2hwY3k1elkyVnVaUzVuWlhSRmJHVnRaVzUwY3lncExDQjBhR2x6TG5OMFlYUmxLU3hjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2FXWWdLQ0ZsYkdWdFpXNTBURzlqYTJWa0lDWW1JR1ZzWlcxbGJuUlVlWEJsSUNFOVBTQmNJbVp5WldWa2NtRjNYQ0lwSUh0Y2JpQWdJQ0FnSUNBZ2NtVnpaWFJEZFhKemIzSW9kR2hwY3k1allXNTJZWE1wTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLSHRjYmlBZ0lDQWdJQ0FnSUNCa2NtRm5aMmx1WjBWc1pXMWxiblE2SUc1MWJHd3NYRzRnSUNBZ0lDQWdJQ0FnYzNWbloyVnpkR1ZrUW1sdVpHbHVaM002SUZ0ZExGeHVJQ0FnSUNBZ0lDQWdJR1ZzWlcxbGJuUlVlWEJsT2lCY0luTmxiR1ZqZEdsdmJsd2lMRnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9lMXh1SUNBZ0lDQWdJQ0FnSUdSeVlXZG5hVzVuUld4bGJXVnVkRG9nYm5Wc2JDeGNiaUFnSUNBZ0lDQWdJQ0J6ZFdkblpYTjBaV1JDYVc1a2FXNW5jem9nVzEwc1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHBPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JwYm1sMGFXRnNhWHBsU1cxaFoyVWdQU0JoYzNsdVl5QW9lMXh1SUNBZ0lHbHRZV2RsUm1sc1pTeGNiaUFnSUNCcGJXRm5aVVZzWlcxbGJuUTZJRjlwYldGblpVVnNaVzFsYm5Rc1hHNGdJQ0FnYzJodmQwTjFjbk52Y2tsdFlXZGxVSEpsZG1sbGR5QTlJR1poYkhObExGeHVJQ0I5T2lCN1hHNGdJQ0FnYVcxaFoyVkdhV3hsT2lCR2FXeGxPMXh1SUNBZ0lHbHRZV2RsUld4bGJXVnVkRG9nUlhoallXeHBaSEpoZDBsdFlXZGxSV3hsYldWdWREdGNiaUFnSUNCemFHOTNRM1Z5YzI5eVNXMWhaMlZRY21WMmFXVjNQem9nWW05dmJHVmhianRjYmlBZ2ZTa2dQVDRnZTF4dUlDQWdJQzh2SUdGMElIUm9hWE1nY0c5cGJuUWdkR2hwY3lCemFHOTFiR1FnWW1VZ1ozVmhjbUZ1ZEdWbFpDQnBiV0ZuWlNCbWFXeGxMQ0JpZFhRZ2QyVWdaRzhnZEdocGN5QmphR1ZqYTF4dUlDQWdJQzh2SUhSdklITmhkR2x6Wm5rZ1ZGTWdaRzkzYmlCMGFHVWdiR2x1WlZ4dUlDQWdJR2xtSUNnaGFYTlRkWEJ3YjNKMFpXUkpiV0ZuWlVacGJHVW9hVzFoWjJWR2FXeGxLU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLSFFvWENKbGNuSnZjbk11ZFc1emRYQndiM0owWldSR2FXeGxWSGx3WlZ3aUtTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJRzFwYldWVWVYQmxJRDBnYVcxaFoyVkdhV3hsTG5SNWNHVTdYRzVjYmlBZ0lDQnpaWFJEZFhKemIzSW9kR2hwY3k1allXNTJZWE1zSUZ3aWQyRnBkRndpS1R0Y2JseHVJQ0FnSUdsbUlDaHRhVzFsVkhsd1pTQTlQVDBnVFVsTlJWOVVXVkJGVXk1emRtY3BJSHRjYmlBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lHbHRZV2RsUm1sc1pTQTlJRk5XUjFOMGNtbHVaMVJ2Um1sc1pTaGNiaUFnSUNBZ0lDQWdJQ0JoZDJGcGRDQnViM0p0WVd4cGVtVlRWa2NvWVhkaGFYUWdhVzFoWjJWR2FXeGxMblJsZUhRb0tTa3NYRzRnSUNBZ0lDQWdJQ0FnYVcxaFoyVkdhV3hsTG01aGJXVXNYRzRnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0I5SUdOaGRHTm9JQ2hsY25KdmNqb2dZVzU1S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk52YkdVdWQyRnliaWhsY25KdmNpazdYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaDBLRndpWlhKeWIzSnpMbk4yWjBsdFlXZGxTVzV6WlhKMFJYSnliM0pjSWlrcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklHZGxibVZ5WVhSbElHbHRZV2RsSUdsa0lDaGllU0JrWldaaGRXeDBJSFJvWlNCbWFXeGxJR1JwWjJWemRDa2dZbVZtYjNKbElHRnVlVnh1SUNBZ0lDOHZJSEpsYzJsNmFXNW5MMk52YlhCeVpYTnphVzl1SUhSaGEyVnpJSEJzWVdObElIUnZJR3RsWlhBZ2FYUWdiVzl5WlNCd2IzSjBZV0pzWlZ4dUlDQWdJR052Ym5OMElHWnBiR1ZKWkNBOUlHRjNZV2wwSUNnb2RHaHBjeTV3Y205d2N5NW5aVzVsY21GMFpVbGtSbTl5Um1sc1pUOHVLRnh1SUNBZ0lDQWdhVzFoWjJWR2FXeGxMRnh1SUNBZ0lDa2dZWE1nVUhKdmJXbHpaVHhHYVd4bFNXUStLU0I4ZkNCblpXNWxjbUYwWlVsa1JuSnZiVVpwYkdVb2FXMWhaMlZHYVd4bEtTazdYRzVjYmlBZ0lDQnBaaUFvSVdacGJHVkpaQ2tnZTF4dUlDQWdJQ0FnWTI5dWMyOXNaUzUzWVhKdUtGeHVJQ0FnSUNBZ0lDQmNJa052ZFd4a2JpZDBJR2RsYm1WeVlYUmxJR1pwYkdVZ2FXUWdiM0lnZEdobElITjFjSEJzYVdWa0lHQm5aVzVsY21GMFpVbGtSbTl5Um1sc1pXQWdaR2xrYmlkMElISmxjMjlzZG1VZ2RHOGdiMjVsTGx3aUxGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loMEtGd2laWEp5YjNKekxtbHRZV2RsU1c1elpYSjBSWEp5YjNKY0lpa3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUdWNGFYTjBhVzVuUm1sc1pVUmhkR0VnUFNCMGFHbHpMbVpwYkdWelcyWnBiR1ZKWkYwN1hHNGdJQ0FnYVdZZ0tDRmxlR2x6ZEdsdVowWnBiR1ZFWVhSaFB5NWtZWFJoVlZKTUtTQjdYRzRnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNCcGJXRm5aVVpwYkdVZ1BTQmhkMkZwZENCeVpYTnBlbVZKYldGblpVWnBiR1VvYVcxaFoyVkdhV3hsTENCN1hHNGdJQ0FnSUNBZ0lDQWdiV0Y0VjJsa2RHaFBja2hsYVdkb2REb2dSRVZHUVZWTVZGOU5RVmhmU1UxQlIwVmZWMGxFVkVoZlQxSmZTRVZKUjBoVUxGeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDBnWTJGMFkyZ2dLR1Z5Y205eU9pQmhibmtwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjMjlzWlM1bGNuSnZjaWhjSW1WeWNtOXlJSFJ5ZVdsdVp5QjBieUJ5WlhOcGJtY2dhVzFoWjJVZ1ptbHNaU0J2YmlCcGJuTmxjblJwYjI1Y0lpd2daWEp5YjNJcE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnBaaUFvYVcxaFoyVkdhV3hsTG5OcGVtVWdQaUJOUVZoZlFVeE1UMWRGUkY5R1NVeEZYMEpaVkVWVEtTQjdYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGNiaUFnSUNBZ0lDQWdJQ0IwS0Z3aVpYSnliM0p6TG1acGJHVlViMjlDYVdkY0lpd2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JXRjRVMmw2WlRvZ1lDUjdUV0YwYUM1MGNuVnVZeWhOUVZoZlFVeE1UMWRGUkY5R1NVeEZYMEpaVkVWVElDOGdNVEF5TkNBdklERXdNalFwZlUxQ1lDeGNiaUFnSUNBZ0lDQWdJQ0I5S1N4Y2JpQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9jMmh2ZDBOMWNuTnZja2x0WVdkbFVISmxkbWxsZHlrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWkdGMFlWVlNUQ0E5SUhSb2FYTXVabWxzWlhOYlptbHNaVWxrWFQ4dVpHRjBZVlZTVER0Y2JpQWdJQ0FnSUM4dklHOXdkR2x0YVhwaGRHbHZiaUJ6YnlCMGFHRjBJSGRsSUdSdmJpZDBJSFZ1Ym1WalpYTnpZWEpwYkhrZ2NtVnphWHBsSUhSb1pTQnZjbWxuYVc1aGJGeHVJQ0FnSUNBZ0x5OGdablZzYkMxemFYcGxJR1pwYkdVZ1ptOXlJR04xY25OdmNpQndjbVYyYVdWM1hHNGdJQ0FnSUNBdkx5QW9hWFFuY3lCdGRXTm9JR1poYzNSbGNpQjBieUJqYjI1MlpYSjBJSFJvWlNCeVpYTnBlbVZrSUdSaGRHRlZVa3dnZEc4Z1JtbHNaU2xjYmlBZ0lDQWdJR052Ym5OMElISmxjMmw2WldSR2FXeGxJRDBnWkdGMFlWVlNUQ0FtSmlCa1lYUmhWVkpNVkc5R2FXeGxLR1JoZEdGVlVrd3BPMXh1WEc0Z0lDQWdJQ0IwYUdsekxuTmxkRWx0WVdkbFVISmxkbWxsZDBOMWNuTnZjaWh5WlhOcGVtVmtSbWxzWlNCOGZDQnBiV0ZuWlVacGJHVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUdSaGRHRlZVa3dnUFZ4dUlDQWdJQ0FnZEdocGN5NW1hV3hsYzF0bWFXeGxTV1JkUHk1a1lYUmhWVkpNSUh4OElDaGhkMkZwZENCblpYUkVZWFJoVlZKTUtHbHRZV2RsUm1sc1pTa3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ2FXMWhaMlZGYkdWdFpXNTBJRDBnYlhWMFlYUmxSV3hsYldWdWRDaGNiaUFnSUNBZ0lGOXBiV0ZuWlVWc1pXMWxiblFzWEc0Z0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUdacGJHVkpaQ3hjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0JtWVd4elpTeGNiaUFnSUNBcElHRnpJRTV2YmtSbGJHVjBaV1E4U1c1cGRHbGhiR2w2WldSRmVHTmhiR2xrY21GM1NXMWhaMlZGYkdWdFpXNTBQanRjYmx4dUlDQWdJSEpsZEhWeWJpQnVaWGNnVUhKdmJXbHpaVHhPYjI1RVpXeGxkR1ZrUEVsdWFYUnBZV3hwZW1Wa1JYaGpZV3hwWkhKaGQwbHRZV2RsUld4bGJXVnVkRDQrS0Z4dUlDQWdJQ0FnWVhONWJtTWdLSEpsYzI5c2RtVXNJSEpsYW1WamRDa2dQVDRnZTF4dUlDQWdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVabWxzWlhNZ1BTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBdUxpNTBhR2x6TG1acGJHVnpMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1cyWnBiR1ZKWkYwNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2JXbHRaVlI1Y0dVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdsa09pQm1hV3hsU1dRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdSaGRHRlZVa3dzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR055WldGMFpXUTZJRVJoZEdVdWJtOTNLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUgwN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1kyRmphR1ZrU1cxaFoyVkVZWFJoSUQwZ2RHaHBjeTVwYldGblpVTmhZMmhsTG1kbGRDaG1hV3hsU1dRcE8xeHVJQ0FnSUNBZ0lDQWdJR2xtSUNnaFkyRmphR1ZrU1cxaFoyVkVZWFJoS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtRmtaRTVsZDBsdFlXZGxjMVJ2U1cxaFoyVkRZV05vWlNncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1MWNHUmhkR1ZKYldGblpVTmhZMmhsS0Z0cGJXRm5aVVZzWlcxbGJuUmRLVHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dOaFkyaGxaRWx0WVdkbFJHRjBZVDh1YVcxaFoyVWdhVzV6ZEdGdVkyVnZaaUJRY205dGFYTmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmhkMkZwZENCallXTm9aV1JKYldGblpVUmhkR0V1YVcxaFoyVTdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YzNSaGRHVXVjR1Z1WkdsdVowbHRZV2RsUld4bGJXVnVkRDh1YVdRZ0lUMDlJR2x0WVdkbFJXeGxiV1Z1ZEM1cFpDQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6ZEdGMFpTNWtjbUZuWjJsdVowVnNaVzFsYm5RL0xtbGtJQ0U5UFNCcGJXRm5aVVZzWlcxbGJuUXVhV1JjYmlBZ0lDQWdJQ0FnSUNBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhVzVwZEdsaGJHbDZaVWx0WVdkbFJHbHRaVzV6YVc5dWN5aHBiV0ZuWlVWc1pXMWxiblFzSUhSeWRXVXBPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQnlaWE52YkhabEtHbHRZV2RsUld4bGJXVnVkQ2s3WEc0Z0lDQWdJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNtOXlPaUJoYm5rcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emIyeGxMbVZ5Y205eUtHVnljbTl5S1R0Y2JpQWdJQ0FnSUNBZ0lDQnlaV3BsWTNRb2JtVjNJRVZ5Y205eUtIUW9YQ0psY25KdmNuTXVhVzFoWjJWSmJuTmxjblJGY25KdmNsd2lLU2twTzF4dUlDQWdJQ0FnSUNCOUlHWnBibUZzYkhrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2xtSUNnaGMyaHZkME4xY25OdmNrbHRZV2RsVUhKbGRtbGxkeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVZ6WlhSRGRYSnpiM0lvZEdocGN5NWpZVzUyWVhNcE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FwTzF4dUlDQjlPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQnBibk5sY25SeklHbHRZV2RsSUdsdWRHOGdaV3hsYldWdWRITWdZWEp5WVhrZ1lXNWtJSEpsY21WdVpHVnljMXh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JwYm5ObGNuUkpiV0ZuWlVWc1pXMWxiblFnUFNCaGMzbHVZeUFvWEc0Z0lDQWdhVzFoWjJWRmJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1NXMWhaMlZGYkdWdFpXNTBMRnh1SUNBZ0lHbHRZV2RsUm1sc1pUb2dSbWxzWlN4Y2JpQWdJQ0J6YUc5M1EzVnljMjl5U1cxaFoyVlFjbVYyYVdWM1B6b2dZbTl2YkdWaGJpeGNiaUFnS1NBOVBpQjdYRzRnSUNBZ2RHaHBjeTV6WTJWdVpTNXlaWEJzWVdObFFXeHNSV3hsYldWdWRITW9XMXh1SUNBZ0lDQWdMaTR1ZEdocGN5NXpZMlZ1WlM1blpYUkZiR1Z0Wlc1MGMwbHVZMngxWkdsdVowUmxiR1YwWldRb0tTeGNiaUFnSUNBZ0lHbHRZV2RsUld4bGJXVnVkQ3hjYmlBZ0lDQmRLVHRjYmx4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxtbHVhWFJwWVd4cGVtVkpiV0ZuWlNoN1hHNGdJQ0FnSUNBZ0lHbHRZV2RsUm1sc1pTeGNiaUFnSUNBZ0lDQWdhVzFoWjJWRmJHVnRaVzUwTEZ4dUlDQWdJQ0FnSUNCemFHOTNRM1Z5YzI5eVNXMWhaMlZRY21WMmFXVjNMRnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmU0JqWVhSamFDQW9aWEp5YjNJNklHRnVlU2tnZTF4dUlDQWdJQ0FnYlhWMFlYUmxSV3hsYldWdWRDaHBiV0ZuWlVWc1pXMWxiblFzSUh0Y2JpQWdJQ0FnSUNBZ2FYTkVaV3hsZEdWa09pQjBjblZsTEZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCMGFHbHpMbUZqZEdsdmJrMWhibUZuWlhJdVpYaGxZM1YwWlVGamRHbHZiaWhoWTNScGIyNUdhVzVoYkdsNlpTazdYRzRnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0h0Y2JpQWdJQ0FnSUNBZ1pYSnliM0pOWlhOellXZGxPaUJsY25KdmNpNXRaWE56WVdkbElIeDhJSFFvWENKbGNuSnZjbk11YVcxaFoyVkpibk5sY25SRmNuSnZjbHdpS1N4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgxY2JpQWdmVHRjYmx4dUlDQndjbWwyWVhSbElITmxkRWx0WVdkbFVISmxkbWxsZDBOMWNuTnZjaUE5SUdGemVXNWpJQ2hwYldGblpVWnBiR1U2SUVacGJHVXBJRDArSUh0Y2JpQWdJQ0F2THlCdGRYTjBiaWQwSUdKbElHeGhjbWRsY2lCMGFHRnVJREV5T0NCd2VGeHVJQ0FnSUM4dklHaDBkSEJ6T2k4dlpHVjJaV3h2Y0dWeUxtMXZlbWxzYkdFdWIzSm5MMlZ1TFZWVEwyUnZZM012VjJWaUwwTlRVeTlEVTFOZlFtRnphV05mVlhObGNsOUpiblJsY21aaFkyVXZWWE5wYm1kZlZWSk1YM1poYkhWbGMxOW1iM0pmZEdobFgyTjFjbk52Y2w5d2NtOXdaWEowZVZ4dUlDQWdJR052Ym5OMElHTjFjbk52Y2tsdFlXZGxVMmw2WlZCNElEMGdPVFk3WEc1Y2JpQWdJQ0JqYjI1emRDQnBiV0ZuWlZCeVpYWnBaWGNnUFNCaGQyRnBkQ0J5WlhOcGVtVkpiV0ZuWlVacGJHVW9hVzFoWjJWR2FXeGxMQ0I3WEc0Z0lDQWdJQ0J0WVhoWGFXUjBhRTl5U0dWcFoyaDBPaUJqZFhKemIzSkpiV0ZuWlZOcGVtVlFlQ3hjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJR3hsZENCd2NtVjJhV1YzUkdGMFlWVlNUQ0E5SUdGM1lXbDBJR2RsZEVSaGRHRlZVa3dvYVcxaFoyVlFjbVYyYVdWM0tUdGNibHh1SUNBZ0lDOHZJRk5XUnlCallXNXViM1FnWW1VZ2NtVnphWHBsWkNCMmFXRWdZSEpsYzJsNlpVbHRZV2RsUm1sc1pXQWdjMjhnZDJVZ2NtVnphWHBsSUdKNUlISmxibVJsY21sdVp5QjBiMXh1SUNBZ0lDOHZJR0VnYzIxaGJHd2dZMkZ1ZG1GelhHNGdJQ0FnYVdZZ0tHbHRZV2RsUm1sc1pTNTBlWEJsSUQwOVBTQk5TVTFGWDFSWlVFVlRMbk4yWnlrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYVcxbklEMGdZWGRoYVhRZ2JHOWhaRWhVVFV4SmJXRm5aVVZzWlcxbGJuUW9jSEpsZG1sbGQwUmhkR0ZWVWt3cE8xeHVYRzRnSUNBZ0lDQnNaWFFnYUdWcFoyaDBJRDBnVFdGMGFDNXRhVzRvYVcxbkxtaGxhV2RvZEN3Z1kzVnljMjl5U1cxaFoyVlRhWHBsVUhncE8xeHVJQ0FnSUNBZ2JHVjBJSGRwWkhSb0lEMGdhR1ZwWjJoMElDb2dLR2x0Wnk1M2FXUjBhQ0F2SUdsdFp5NW9aV2xuYUhRcE8xeHVYRzRnSUNBZ0lDQnBaaUFvZDJsa2RHZ2dQaUJqZFhKemIzSkpiV0ZuWlZOcGVtVlFlQ2tnZTF4dUlDQWdJQ0FnSUNCM2FXUjBhQ0E5SUdOMWNuTnZja2x0WVdkbFUybDZaVkI0TzF4dUlDQWdJQ0FnSUNCb1pXbG5hSFFnUFNCM2FXUjBhQ0FxSUNocGJXY3VhR1ZwWjJoMElDOGdhVzFuTG5kcFpIUm9LVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnWTI5dWMzUWdZMkZ1ZG1GeklEMGdaRzlqZFcxbGJuUXVZM0psWVhSbFJXeGxiV1Z1ZENoY0ltTmhiblpoYzF3aUtUdGNiaUFnSUNBZ0lHTmhiblpoY3k1b1pXbG5hSFFnUFNCb1pXbG5hSFE3WEc0Z0lDQWdJQ0JqWVc1MllYTXVkMmxrZEdnZ1BTQjNhV1IwYUR0Y2JpQWdJQ0FnSUdOdmJuTjBJR052Ym5SbGVIUWdQU0JqWVc1MllYTXVaMlYwUTI5dWRHVjRkQ2hjSWpKa1hDSXBJVHRjYmx4dUlDQWdJQ0FnWTI5dWRHVjRkQzVrY21GM1NXMWhaMlVvYVcxbkxDQXdMQ0F3TENCM2FXUjBhQ3dnYUdWcFoyaDBLVHRjYmx4dUlDQWdJQ0FnY0hKbGRtbGxkMFJoZEdGVlVrd2dQU0JqWVc1MllYTXVkRzlFWVhSaFZWSk1LRTFKVFVWZlZGbFFSVk11YzNabktTQmhjeUJFWVhSaFZWSk1PMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2gwYUdsekxuTjBZWFJsTG5CbGJtUnBibWRKYldGblpVVnNaVzFsYm5RcElIdGNiaUFnSUNBZ0lITmxkRU4xY25OdmNpaDBhR2x6TG1OaGJuWmhjeXdnWUhWeWJDZ2tlM0J5WlhacFpYZEVZWFJoVlZKTWZTa2dOQ0EwTENCaGRYUnZZQ2s3WEc0Z0lDQWdmVnh1SUNCOU8xeHVYRzRnSUhCeWFYWmhkR1VnYjI1SmJXRm5aVUZqZEdsdmJpQTlJR0Z6ZVc1aklDaGNiaUFnSUNCN0lHbHVjMlZ5ZEU5dVEyRnVkbUZ6UkdseVpXTjBiSGtnZlNBOUlIc2dhVzV6WlhKMFQyNURZVzUyWVhORWFYSmxZM1JzZVRvZ1ptRnNjMlVnZlN4Y2JpQWdLU0E5UGlCN1hHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lHTnZibk4wSUdOc2FXVnVkRmdnUFNCMGFHbHpMbk4wWVhSbExuZHBaSFJvSUM4Z01pQXJJSFJvYVhNdWMzUmhkR1V1YjJabWMyVjBUR1ZtZER0Y2JpQWdJQ0FnSUdOdmJuTjBJR05zYVdWdWRGa2dQU0IwYUdsekxuTjBZWFJsTG1obGFXZG9kQ0F2SURJZ0t5QjBhR2x6TG5OMFlYUmxMbTltWm5ObGRGUnZjRHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdleUI0TENCNUlIMGdQU0IyYVdWM2NHOXlkRU52YjNKa2MxUnZVMk5sYm1WRGIyOXlaSE1vWEc0Z0lDQWdJQ0FnSUhzZ1kyeHBaVzUwV0N3Z1kyeHBaVzUwV1NCOUxGeHVJQ0FnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMRnh1SUNBZ0lDQWdLVHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdhVzFoWjJWR2FXeGxJRDBnWVhkaGFYUWdabWxzWlU5d1pXNG9lMXh1SUNBZ0lDQWdJQ0JrWlhOamNtbHdkR2x2YmpvZ1hDSkpiV0ZuWlZ3aUxGeHVJQ0FnSUNBZ0lDQmxlSFJsYm5OcGIyNXpPaUJiWENKcWNHZGNJaXdnWENKd2JtZGNJaXdnWENKemRtZGNJaXdnWENKbmFXWmNJbDBzWEc0Z0lDQWdJQ0I5S1R0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnYVcxaFoyVkZiR1Z0Wlc1MElEMGdkR2hwY3k1amNtVmhkR1ZKYldGblpVVnNaVzFsYm5Rb2UxeHVJQ0FnSUNBZ0lDQnpZMlZ1WlZnNklIZ3NYRzRnSUNBZ0lDQWdJSE5qWlc1bFdUb2dlU3hjYmlBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnSUNCcFppQW9hVzV6WlhKMFQyNURZVzUyWVhORWFYSmxZM1JzZVNrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG1sdWMyVnlkRWx0WVdkbFJXeGxiV1Z1ZENocGJXRm5aVVZzWlcxbGJuUXNJR2x0WVdkbFJtbHNaU2s3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVhVzVwZEdsaGJHbDZaVWx0WVdkbFJHbHRaVzV6YVc5dWN5aHBiV0ZuWlVWc1pXMWxiblFwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZOMFlYUmxLRnh1SUNBZ0lDQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSE5sYkdWamRHVmtSV3hsYldWdWRFbGtjem9nZXlCYmFXMWhaMlZGYkdWdFpXNTBMbWxrWFRvZ2RISjFaU0I5TEZ4dUlDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQ0FnS0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVoWTNScGIyNU5ZVzVoWjJWeUxtVjRaV04xZEdWQlkzUnBiMjRvWVdOMGFXOXVSbWx1WVd4cGVtVXBPMXh1SUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0Z4dUlDQWdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhCbGJtUnBibWRKYldGblpVVnNaVzFsYm5RNklHbHRZV2RsUld4bGJXVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJQ2dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhVzV6WlhKMFNXMWhaMlZGYkdWdFpXNTBLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnBiV0ZuWlVWc1pXMWxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR2x0WVdkbFJtbHNaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdMeW9nYzJodmQwTjFjbk52Y2tsdFlXZGxVSEpsZG1sbGR5QXFMeUIwY25WbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBnWTJGMFkyZ2dLR1Z5Y205eU9pQmhibmtwSUh0Y2JpQWdJQ0FnSUdsbUlDaGxjbkp2Y2k1dVlXMWxJQ0U5UFNCY0lrRmliM0owUlhKeWIzSmNJaWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpiMnhsTG1WeWNtOXlLR1Z5Y205eUtUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHTnZibk52YkdVdWQyRnliaWhsY25KdmNpazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0Z4dUlDQWdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDQWdjR1Z1WkdsdVowbHRZV2RsUld4bGJXVnVkRG9nYm5Wc2JDeGNiaUFnSUNBZ0lDQWdJQ0JsWkdsMGFXNW5SV3hsYldWdWREb2diblZzYkN4Y2JpQWdJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MFZIbHdaVG9nWENKelpXeGxZM1JwYjI1Y0lpeGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnS0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVZV04wYVc5dVRXRnVZV2RsY2k1bGVHVmpkWFJsUVdOMGFXOXVLR0ZqZEdsdmJrWnBibUZzYVhwbEtUdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNCOU8xeHVYRzRnSUhCeWFYWmhkR1VnYVc1cGRHbGhiR2w2WlVsdFlXZGxSR2x0Wlc1emFXOXVjeUE5SUNoY2JpQWdJQ0JwYldGblpVVnNaVzFsYm5RNklFVjRZMkZzYVdSeVlYZEpiV0ZuWlVWc1pXMWxiblFzWEc0Z0lDQWdabTl5WTJWT1lYUjFjbUZzVTJsNlpTQTlJR1poYkhObExGeHVJQ0FwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0JwYldGblpTQTlYRzRnSUNBZ0lDQnBjMGx1YVhScFlXeHBlbVZrU1cxaFoyVkZiR1Z0Wlc1MEtHbHRZV2RsUld4bGJXVnVkQ2tnSmlaY2JpQWdJQ0FnSUhSb2FYTXVhVzFoWjJWRFlXTm9aUzVuWlhRb2FXMWhaMlZGYkdWdFpXNTBMbVpwYkdWSlpDay9MbWx0WVdkbE8xeHVYRzRnSUNBZ2FXWWdLQ0ZwYldGblpTQjhmQ0JwYldGblpTQnBibk4wWVc1alpXOW1JRkJ5YjIxcGMyVXBJSHRjYmlBZ0lDQWdJR2xtSUNoY2JpQWdJQ0FnSUNBZ2FXMWhaMlZGYkdWdFpXNTBMbmRwWkhSb0lEd2dSRkpCUjBkSlRrZGZWRWhTUlZOSVQweEVJQzhnZEdocGN5NXpkR0YwWlM1NmIyOXRMblpoYkhWbElDWW1YRzRnSUNBZ0lDQWdJR2x0WVdkbFJXeGxiV1Z1ZEM1b1pXbG5hSFFnUENCRVVrRkhSMGxPUjE5VVNGSkZVMGhQVEVRZ0x5QjBhR2x6TG5OMFlYUmxMbnB2YjIwdWRtRnNkV1ZjYmlBZ0lDQWdJQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3YkdGalpXaHZiR1JsY2xOcGVtVWdQU0F4TURBZ0x5QjBhR2x6TG5OMFlYUmxMbnB2YjIwdWRtRnNkV1U3WEc0Z0lDQWdJQ0FnSUcxMWRHRjBaVVZzWlcxbGJuUW9hVzFoWjJWRmJHVnRaVzUwTENCN1hHNGdJQ0FnSUNBZ0lDQWdlRG9nYVcxaFoyVkZiR1Z0Wlc1MExuZ2dMU0J3YkdGalpXaHZiR1JsY2xOcGVtVWdMeUF5TEZ4dUlDQWdJQ0FnSUNBZ0lIazZJR2x0WVdkbFJXeGxiV1Z1ZEM1NUlDMGdjR3hoWTJWb2IyeGtaWEpUYVhwbElDOGdNaXhjYmlBZ0lDQWdJQ0FnSUNCM2FXUjBhRG9nY0d4aFkyVm9iMnhrWlhKVGFYcGxMRnh1SUNBZ0lDQWdJQ0FnSUdobGFXZG9kRG9nY0d4aFkyVm9iMnhrWlhKVGFYcGxMRnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoY2JpQWdJQ0FnSUdadmNtTmxUbUYwZFhKaGJGTnBlbVVnZkh4Y2JpQWdJQ0FnSUM4dklHbG1JSFZ6WlhJdFkzSmxZWFJsWkNCaWIzVnVaR2x1WnlCaWIzZ2dhWE1nWW1Wc2IzY2dkR2h5WlhOb2IyeGtMQ0JoYzNOMWJXVWdkR2hsWEc0Z0lDQWdJQ0F2THlCcGJuUmxiblJwYjI0Z2QyRnpJSFJ2SUdOc2FXTnJJR2x1YzNSbFlXUWdiMllnWkhKaFp5d2dZVzVrSUhWelpTQjBhR1VnYVcxaFoyVW5jMXh1SUNBZ0lDQWdMeThnYVc1MGNtbHVjMmxqSUhOcGVtVmNiaUFnSUNBZ0lDaHBiV0ZuWlVWc1pXMWxiblF1ZDJsa2RHZ2dQQ0JFVWtGSFIwbE9SMTlVU0ZKRlUwaFBURVFnTHlCMGFHbHpMbk4wWVhSbExucHZiMjB1ZG1Gc2RXVWdKaVpjYmlBZ0lDQWdJQ0FnYVcxaFoyVkZiR1Z0Wlc1MExtaGxhV2RvZENBOElFUlNRVWRIU1U1SFgxUklVa1ZUU0U5TVJDQXZJSFJvYVhNdWMzUmhkR1V1ZW05dmJTNTJZV3gxWlNsY2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJRzFwYmtobGFXZG9kQ0E5SUUxaGRHZ3ViV0Y0S0hSb2FYTXVjM1JoZEdVdWFHVnBaMmgwSUMwZ01USXdMQ0F4TmpBcE8xeHVJQ0FnSUNBZ0x5OGdiV0Y0SURZMUpTQnZaaUJqWVc1MllYTWdhR1ZwWjJoMExDQmpiR0Z0Y0dWa0lIUnZJRHd6TURCd2VDd2dkbWdnTFNBeE1qQndlRDVjYmlBZ0lDQWdJR052Ym5OMElHMWhlRWhsYVdkb2RDQTlJRTFoZEdndWJXbHVLRnh1SUNBZ0lDQWdJQ0J0YVc1SVpXbG5hSFFzWEc0Z0lDQWdJQ0FnSUUxaGRHZ3VabXh2YjNJb2RHaHBjeTV6ZEdGMFpTNW9aV2xuYUhRZ0tpQXdMalVwSUM4Z2RHaHBjeTV6ZEdGMFpTNTZiMjl0TG5aaGJIVmxMRnh1SUNBZ0lDQWdLVHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdhR1ZwWjJoMElEMGdUV0YwYUM1dGFXNG9hVzFoWjJVdWJtRjBkWEpoYkVobGFXZG9kQ3dnYldGNFNHVnBaMmgwS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJSGRwWkhSb0lEMGdhR1ZwWjJoMElDb2dLR2x0WVdkbExtNWhkSFZ5WVd4WGFXUjBhQ0F2SUdsdFlXZGxMbTVoZEhWeVlXeElaV2xuYUhRcE8xeHVYRzRnSUNBZ0lDQXZMeUJoWkdRZ1kzVnljbVZ1ZENCcGJXRm5aVVZzWlcxbGJuUWdkMmxrZEdndmFHVnBaMmgwSUhSdklHRmpZMjkxYm5RZ1ptOXlJSEJ5WlhacGIzVnpJR05sYm5SbGNtbHVaMXh1SUNBZ0lDQWdMeThnYjJZZ2RHaGxJSEJzWVdOb2IyeGtaWElnYVcxaFoyVmNiaUFnSUNBZ0lHTnZibk4wSUhnZ1BTQnBiV0ZuWlVWc1pXMWxiblF1ZUNBcklHbHRZV2RsUld4bGJXVnVkQzUzYVdSMGFDQXZJRElnTFNCM2FXUjBhQ0F2SURJN1hHNGdJQ0FnSUNCamIyNXpkQ0I1SUQwZ2FXMWhaMlZGYkdWdFpXNTBMbmtnS3lCcGJXRm5aVVZzWlcxbGJuUXVhR1ZwWjJoMElDOGdNaUF0SUdobGFXZG9kQ0F2SURJN1hHNWNiaUFnSUNBZ0lHMTFkR0YwWlVWc1pXMWxiblFvYVcxaFoyVkZiR1Z0Wlc1MExDQjdJSGdzSUhrc0lIZHBaSFJvTENCb1pXbG5hSFFnZlNrN1hHNGdJQ0FnZlZ4dUlDQjlPMXh1WEc0Z0lDOHFLaUIxY0dSaGRHVnpJR2x0WVdkbElHTmhZMmhsTENCeVpXWnlaWE5vYVc1bklIVndaR0YwWldRZ1pXeGxiV1Z1ZEhNZ1lXNWtMMjl5SUhObGRIUnBibWNnYzNSaGRIVnpYRzRnSUNBZ0lDQjBieUJsY25KdmNpQm1iM0lnYVcxaFoyVnpJSFJvWVhRZ1ptRnBiQ0JrZFhKcGJtY2dQR2x0Wno0Z1pXeGxiV1Z1ZENCamNtVmhkR2x2YmlBcUwxeHVJQ0J3Y21sMllYUmxJSFZ3WkdGMFpVbHRZV2RsUTJGamFHVWdQU0JoYzNsdVl5QW9YRzRnSUNBZ1pXeGxiV1Z1ZEhNNklISmxZV1J2Ym14NUlFbHVhWFJwWVd4cGVtVmtSWGhqWVd4cFpISmhkMGx0WVdkbFJXeGxiV1Z1ZEZ0ZExGeHVJQ0FnSUdacGJHVnpJRDBnZEdocGN5NW1hV3hsY3l4Y2JpQWdLU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdleUIxY0dSaGRHVmtSbWxzWlhNc0lHVnljbTl5WldSR2FXeGxjeUI5SUQwZ1lYZGhhWFFnWDNWd1pHRjBaVWx0WVdkbFEyRmphR1VvZTF4dUlDQWdJQ0FnYVcxaFoyVkRZV05vWlRvZ2RHaHBjeTVwYldGblpVTmhZMmhsTEZ4dUlDQWdJQ0FnWm1sc1pVbGtjem9nWld4bGJXVnVkSE11YldGd0tDaGxiR1Z0Wlc1MEtTQTlQaUJsYkdWdFpXNTBMbVpwYkdWSlpDa3NYRzRnSUNBZ0lDQm1hV3hsY3l4Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0JwWmlBb2RYQmtZWFJsWkVacGJHVnpMbk5wZW1VZ2ZId2daWEp5YjNKbFpFWnBiR1Z6TG5OcGVtVXBJSHRjYmlBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnWld4bGJXVnVkQ0J2WmlCbGJHVnRaVzUwY3lrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvZFhCa1lYUmxaRVpwYkdWekxtaGhjeWhsYkdWdFpXNTBMbVpwYkdWSlpDa3BJSHRjYmlBZ0lDQWdJQ0FnSUNCcGJuWmhiR2xrWVhSbFUyaGhjR1ZHYjNKRmJHVnRaVzUwS0dWc1pXMWxiblFwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNobGNuSnZjbVZrUm1sc1pYTXVjMmw2WlNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV6WTJWdVpTNXlaWEJzWVdObFFXeHNSV3hsYldWdWRITW9YRzRnSUNBZ0lDQWdJSFJvYVhNdWMyTmxibVV1WjJWMFJXeGxiV1Z1ZEhOSmJtTnNkV1JwYm1kRVpXeGxkR1ZrS0NrdWJXRndLQ2hsYkdWdFpXNTBLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdhWE5KYm1sMGFXRnNhWHBsWkVsdFlXZGxSV3hsYldWdWRDaGxiR1Z0Wlc1MEtTQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ1pYSnliM0psWkVacGJHVnpMbWhoY3lobGJHVnRaVzUwTG1acGJHVkpaQ2xjYmlBZ0lDQWdJQ0FnSUNBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ1WlhkRmJHVnRaVzUwVjJsMGFDaGxiR1Z0Wlc1MExDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lITjBZWFIxY3pvZ1hDSmxjbkp2Y2x3aUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJsYkdWdFpXNTBPMXh1SUNBZ0lDQWdJQ0I5S1N4Y2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSHNnZFhCa1lYUmxaRVpwYkdWekxDQmxjbkp2Y21Wa1JtbHNaWE1nZlR0Y2JpQWdmVHRjYmx4dUlDQXZLaW9nWVdSa2N5QnVaWGNnYVcxaFoyVnpJSFJ2SUdsdFlXZGxRMkZqYUdVZ1lXNWtJSEpsTFhKbGJtUmxjbk1nYVdZZ2JtVmxaR1ZrSUNvdlhHNGdJSEJ5YVhaaGRHVWdZV1JrVG1WM1NXMWhaMlZ6Vkc5SmJXRm5aVU5oWTJobElEMGdZWE41Ym1NZ0tGeHVJQ0FnSUdsdFlXZGxSV3hsYldWdWRITTZJRWx1YVhScFlXeHBlbVZrUlhoallXeHBaSEpoZDBsdFlXZGxSV3hsYldWdWRGdGRJRDBnWjJWMFNXNXBkR2xoYkdsNlpXUkpiV0ZuWlVWc1pXMWxiblJ6S0Z4dUlDQWdJQ0FnZEdocGN5NXpZMlZ1WlM1blpYUkZiR1Z0Wlc1MGN5Z3BMRnh1SUNBZ0lDa3NYRzRnSUNBZ1ptbHNaWE02SUVKcGJtRnllVVpwYkdWeklEMGdkR2hwY3k1bWFXeGxjeXhjYmlBZ0tTQTlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2RXNWpZV05vWldSSmJXRm5aVVZzWlcxbGJuUnpJRDBnYVcxaFoyVkZiR1Z0Wlc1MGN5NW1hV3gwWlhJb1hHNGdJQ0FnSUNBb1pXeGxiV1Z1ZENrZ1BUNGdJV1ZzWlcxbGJuUXVhWE5FWld4bGRHVmtJQ1ltSUNGMGFHbHpMbWx0WVdkbFEyRmphR1V1YUdGektHVnNaVzFsYm5RdVptbHNaVWxrS1N4Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnYVdZZ0tIVnVZMkZqYUdWa1NXMWhaMlZGYkdWdFpXNTBjeTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJR052Ym5OMElIc2dkWEJrWVhSbFpFWnBiR1Z6SUgwZ1BTQmhkMkZwZENCMGFHbHpMblZ3WkdGMFpVbHRZV2RsUTJGamFHVW9YRzRnSUNBZ0lDQWdJSFZ1WTJGamFHVmtTVzFoWjJWRmJHVnRaVzUwY3l4Y2JpQWdJQ0FnSUNBZ1ptbHNaWE1zWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnYVdZZ0tIVndaR0YwWldSR2FXeGxjeTV6YVhwbEtTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWMyTmxibVV1YVc1bWIzSnRUWFYwWVhScGIyNG9LVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgwN1hHNWNiaUFnTHlvcUlHZGxibVZ5WVd4c2VTQjViM1VnYzJodmRXeGtJSFZ6WlNCZ1lXUmtUbVYzU1cxaFoyVnpWRzlKYldGblpVTmhZMmhsS0NsZ0lHUnBjbVZqZEd4NUlHbG1JSGx2ZFNCdVpXVmtYRzRnSUNBcUlDQjBieUJ5Wlc1a1pYSWdibVYzSUdsdFlXZGxjeTRnVkdocGN5QnBjeUJxZFhOMElHRWdabUZwYkhOaFptVWdJQ292WEc0Z0lIQnlhWFpoZEdVZ2MyTm9aV1IxYkdWSmJXRm5aVkpsWm5KbGMyZ2dQU0IwYUhKdmRIUnNaU2dvS1NBOVBpQjdYRzRnSUNBZ2RHaHBjeTVoWkdST1pYZEpiV0ZuWlhOVWIwbHRZV2RsUTJGamFHVW9LVHRjYmlBZ2ZTd2dTVTFCUjBWZlVrVk9SRVZTWDFSSlRVVlBWVlFwTzF4dVhHNGdJSEJ5YVhaaGRHVWdkWEJrWVhSbFFtbHVaR2x1WjBWdVlXSnNaV1JQYmxCdmFXNTBaWEpOYjNabElEMGdLRnh1SUNBZ0lHVjJaVzUwT2lCU1pXRmpkQzVRYjJsdWRHVnlSWFpsYm5ROFNGUk5URU5oYm5aaGMwVnNaVzFsYm5RK0xGeHVJQ0FwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0J6YUc5MWJHUkZibUZpYkdWQ2FXNWthVzVuSUQwZ2MyaHZkV3hrUlc1aFlteGxRbWx1WkdsdVowWnZjbEJ2YVc1MFpYSkZkbVZ1ZENobGRtVnVkQ2s3WEc0Z0lDQWdhV1lnS0hSb2FYTXVjM1JoZEdVdWFYTkNhVzVrYVc1blJXNWhZbXhsWkNBaFBUMGdjMmh2ZFd4a1JXNWhZbXhsUW1sdVpHbHVaeWtnZTF4dUlDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdJR2x6UW1sdVpHbHVaMFZ1WVdKc1pXUTZJSE5vYjNWc1pFVnVZV0pzWlVKcGJtUnBibWNnZlNrN1hHNGdJQ0FnZlZ4dUlDQjlPMXh1WEc0Z0lIQnlhWFpoZEdVZ2JXRjVZbVZUZFdkblpYTjBRbWx1WkdsdVowRjBRM1Z5YzI5eUlEMGdLSEJ2YVc1MFpYSkRiMjl5WkhNNklIdGNiaUFnSUNCNE9pQnVkVzFpWlhJN1hHNGdJQ0FnZVRvZ2JuVnRZbVZ5TzF4dUlDQjlLVG9nZG05cFpDQTlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2FHOTJaWEpsWkVKcGJtUmhZbXhsUld4bGJXVnVkQ0E5SUdkbGRFaHZkbVZ5WldSRmJHVnRaVzUwUm05eVFtbHVaR2x1WnloY2JpQWdJQ0FnSUhCdmFXNTBaWEpEYjI5eVpITXNYRzRnSUNBZ0lDQjBhR2x6TG5OalpXNWxMRnh1SUNBZ0lDazdYRzRnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0J6ZFdkblpYTjBaV1JDYVc1a2FXNW5jenBjYmlBZ0lDQWdJQ0FnYUc5MlpYSmxaRUpwYm1SaFlteGxSV3hsYldWdWRDQWhQU0J1ZFd4c0lEOGdXMmh2ZG1WeVpXUkNhVzVrWVdKc1pVVnNaVzFsYm5SZElEb2dXMTBzWEc0Z0lDQWdmU2s3WEc0Z0lIMDdYRzVjYmlBZ2NISnBkbUYwWlNCdFlYbGlaVk4xWjJkbGMzUkNhVzVrYVc1bmMwWnZja3hwYm1WaGNrVnNaVzFsYm5SQmRFTnZiM0prY3lBOUlDaGNiaUFnSUNCc2FXNWxZWEpGYkdWdFpXNTBPaUJPYjI1RVpXeGxkR1ZrUEVWNFkyRnNhV1J5WVhkTWFXNWxZWEpGYkdWdFpXNTBQaXhjYmlBZ0lDQXZLaW9nYzJObGJtVWdZMjl2Y21SeklDb3ZYRzRnSUNBZ2NHOXBiblJsY2tOdmIzSmtjem9nZTF4dUlDQWdJQ0FnZURvZ2JuVnRZbVZ5TzF4dUlDQWdJQ0FnZVRvZ2JuVnRZbVZ5TzF4dUlDQWdJSDFiWFN4Y2JpQWdJQ0F2THlCRWRYSnBibWNnYkdsdVpTQmpjbVZoZEdsdmJpQjBhR1VnYzNSaGNuUWdZbWx1WkdsdVp5Qm9ZWE51SjNRZ1ltVmxiaUIzY21sMGRHVnVJSGxsZEZ4dUlDQWdJQzh2SUdsdWRHOGdZR3hwYm1WaGNrVnNaVzFsYm5SZ1hHNGdJQ0FnYjNCd2IzTnBkR1ZDYVc1a2FXNW5RbTkxYm1SRmJHVnRaVzUwUHpvZ1JYaGpZV3hwWkhKaGQwSnBibVJoWW14bFJXeGxiV1Z1ZENCOElHNTFiR3dzWEc0Z0lDazZJSFp2YVdRZ1BUNGdlMXh1SUNBZ0lHbG1JQ2doY0c5cGJuUmxja052YjNKa2N5NXNaVzVuZEdncElIdGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQnpkV2RuWlhOMFpXUkNhVzVrYVc1bmN5QTlJSEJ2YVc1MFpYSkRiMjl5WkhNdWNtVmtkV05sS0Z4dUlDQWdJQ0FnS0dGall6b2dUbTl1UkdWc1pYUmxaRHhGZUdOaGJHbGtjbUYzUW1sdVpHRmliR1ZGYkdWdFpXNTBQbHRkTENCamIyOXlaSE1wSUQwK0lIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2FHOTJaWEpsWkVKcGJtUmhZbXhsUld4bGJXVnVkQ0E5SUdkbGRFaHZkbVZ5WldSRmJHVnRaVzUwUm05eVFtbHVaR2x1WnloY2JpQWdJQ0FnSUNBZ0lDQmpiMjl5WkhNc1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1elkyVnVaU3hjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdJQ0FnSUdodmRtVnlaV1JDYVc1a1lXSnNaVVZzWlcxbGJuUWdJVDBnYm5Wc2JDQW1KbHh1SUNBZ0lDQWdJQ0FnSUNGcGMweHBibVZoY2tWc1pXMWxiblJUYVcxd2JHVkJibVJCYkhKbFlXUjVRbTkxYm1Rb1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzYVc1bFlYSkZiR1Z0Wlc1MExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYjNCd2IzTnBkR1ZDYVc1a2FXNW5RbTkxYm1SRmJHVnRaVzUwUHk1cFpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdodmRtVnlaV1JDYVc1a1lXSnNaVVZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnSUNBcElIdGNiaUFnSUNBZ0lDQWdJQ0JoWTJNdWNIVnphQ2hvYjNabGNtVmtRbWx1WkdGaWJHVkZiR1Z0Wlc1MEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZV05qTzF4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUZ0ZExGeHVJQ0FnSUNrN1hHNWNiaUFnSUNCMGFHbHpMbk5sZEZOMFlYUmxLSHNnYzNWbloyVnpkR1ZrUW1sdVpHbHVaM01nZlNrN1hHNGdJSDA3WEc1Y2JpQWdjSEpwZG1GMFpTQnRZWGxpWlZOMVoyZGxjM1JDYVc1a2FXNW5SbTl5UVd4c0tGeHVJQ0FnSUhObGJHVmpkR1ZrUld4bGJXVnVkSE02SUU1dmJrUmxiR1YwWldROFJYaGpZV3hwWkhKaGQwVnNaVzFsYm5RK1cxMHNYRzRnSUNrNklIWnZhV1FnZTF4dUlDQWdJR052Ym5OMElITjFaMmRsYzNSbFpFSnBibVJwYm1keklEMGdaMlYwUld4cFoybGliR1ZGYkdWdFpXNTBjMFp2Y2tKcGJtUnBibWNvYzJWc1pXTjBaV1JGYkdWdFpXNTBjeWs3WEc0Z0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN0lITjFaMmRsYzNSbFpFSnBibVJwYm1keklIMHBPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JqYkdWaGNsTmxiR1ZqZEdsdmJpaG9hWFJGYkdWdFpXNTBPaUJGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ0I4SUc1MWJHd3BPaUIyYjJsa0lIdGNiaUFnSUNCMGFHbHpMbk5sZEZOMFlYUmxLQ2h3Y21WMlUzUmhkR1VwSUQwK0lDaDdYRzRnSUNBZ0lDQnpaV3hsWTNSbFpFVnNaVzFsYm5SSlpITTZJSHQ5TEZ4dUlDQWdJQ0FnYzJWc1pXTjBaV1JIY205MWNFbGtjem9nZTMwc1hHNGdJQ0FnSUNBdkx5QkRiMjUwYVc1MVpTQmxaR2wwYVc1bklIUm9aU0J6WVcxbElHZHliM1Z3SUdsbUlIUm9aU0IxYzJWeUlITmxiR1ZqZEdWa0lHRWdaR2xtWm1WeVpXNTBYRzRnSUNBZ0lDQXZMeUJsYkdWdFpXNTBJR1p5YjIwZ2FYUmNiaUFnSUNBZ0lHVmthWFJwYm1kSGNtOTFjRWxrT2x4dUlDQWdJQ0FnSUNCd2NtVjJVM1JoZEdVdVpXUnBkR2x1WjBkeWIzVndTV1FnSmlaY2JpQWdJQ0FnSUNBZ2FHbDBSV3hsYldWdWRDQWhQU0J1ZFd4c0lDWW1YRzRnSUNBZ0lDQWdJR2x6Uld4bGJXVnVkRWx1UjNKdmRYQW9hR2wwUld4bGJXVnVkQ3dnY0hKbGRsTjBZWFJsTG1Wa2FYUnBibWRIY205MWNFbGtLVnh1SUNBZ0lDQWdJQ0FnSUQ4Z2NISmxkbE4wWVhSbExtVmthWFJwYm1kSGNtOTFjRWxrWEc0Z0lDQWdJQ0FnSUNBZ09pQnVkV3hzTEZ4dUlDQWdJSDBwS1R0Y2JpQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lITmxiR1ZqZEdWa1JXeGxiV1Z1ZEVsa2N6b2dlMzBzWEc0Z0lDQWdJQ0J3Y21WMmFXOTFjMU5sYkdWamRHVmtSV3hsYldWdWRFbGtjem9nZEdocGN5NXpkR0YwWlM1elpXeGxZM1JsWkVWc1pXMWxiblJKWkhNc1hHNGdJQ0FnZlNrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHaGhibVJzWlVOaGJuWmhjMUpsWmlBOUlDaGpZVzUyWVhNNklFaFVUVXhEWVc1MllYTkZiR1Z0Wlc1MEtTQTlQaUI3WEc0Z0lDQWdMeThnWTJGdWRtRnpJR2x6SUc1MWJHd2dkMmhsYmlCMWJtMXZkVzUwYVc1blhHNGdJQ0FnYVdZZ0tHTmhiblpoY3lBaFBUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVqWVc1MllYTWdQU0JqWVc1MllYTTdYRzRnSUNBZ0lDQjBhR2x6TG5KaklEMGdjbTkxWjJndVkyRnVkbUZ6S0hSb2FYTXVZMkZ1ZG1GektUdGNibHh1SUNBZ0lDQWdkR2hwY3k1allXNTJZWE11WVdSa1JYWmxiblJNYVhOMFpXNWxjaWhGVmtWT1ZDNVhTRVZGVEN3Z2RHaHBjeTVvWVc1a2JHVlhhR1ZsYkN3Z2UxeHVJQ0FnSUNBZ0lDQndZWE56YVhabE9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2RHaHBjeTVqWVc1MllYTXVZV1JrUlhabGJuUk1hWE4wWlc1bGNpaEZWa1ZPVkM1VVQxVkRTRjlUVkVGU1ZDd2dkR2hwY3k1dmJsUmhjRk4wWVhKMEtUdGNiaUFnSUNBZ0lIUm9hWE11WTJGdWRtRnpMbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSW9SVlpGVGxRdVZFOVZRMGhmUlU1RUxDQjBhR2x6TG05dVZHRndSVzVrS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdkR2hwY3k1allXNTJZWE0vTG5KbGJXOTJaVVYyWlc1MFRHbHpkR1Z1WlhJb1JWWkZUbFF1VjBoRlJVd3NJSFJvYVhNdWFHRnVaR3hsVjJobFpXd3BPMXh1SUNBZ0lDQWdkR2hwY3k1allXNTJZWE0vTG5KbGJXOTJaVVYyWlc1MFRHbHpkR1Z1WlhJb1JWWkZUbFF1VkU5VlEwaGZVMVJCVWxRc0lIUm9hWE11YjI1VVlYQlRkR0Z5ZENrN1hHNGdJQ0FnSUNCMGFHbHpMbU5oYm5aaGN6OHVjbVZ0YjNabFJYWmxiblJNYVhOMFpXNWxjaWhGVmtWT1ZDNVVUMVZEU0Y5RlRrUXNJSFJvYVhNdWIyNVVZWEJGYm1RcE8xeHVJQ0FnSUgxY2JpQWdmVHRjYmx4dUlDQndjbWwyWVhSbElHaGhibVJzWlVGd2NFOXVSSEp2Y0NBOUlHRnplVzVqSUNobGRtVnVkRG9nVW1WaFkzUXVSSEpoWjBWMlpXNTBQRWhVVFV4RWFYWkZiR1Z0Wlc1MFBpa2dQVDRnZTF4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCamIyNXpkQ0JtYVd4bElEMGdaWFpsYm5RdVpHRjBZVlJ5WVc1elptVnlMbVpwYkdWeld6QmRPMXh1WEc0Z0lDQWdJQ0JwWmlBb2FYTlRkWEJ3YjNKMFpXUkpiV0ZuWlVacGJHVW9abWxzWlNrcElIdGNiaUFnSUNBZ0lDQWdMeThnWm1seWMzUWdZWFIwWlcxd2RDQjBieUJrWldOdlpHVWdjMk5sYm1VZ1puSnZiU0IwYUdVZ2FXMWhaMlVnYVdZZ2FYUW5jeUJsYldKbFpHUmxaRnh1SUNBZ0lDQWdJQ0F2THlBdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzFjYmx4dUlDQWdJQ0FnSUNCcFppQW9abWxzWlQ4dWRIbHdaU0E5UFQwZ1RVbE5SVjlVV1ZCRlV5NXdibWNnZkh3Z1ptbHNaVDh1ZEhsd1pTQTlQVDBnVFVsTlJWOVVXVkJGVXk1emRtY3BJSHRjYmlBZ0lDQWdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzVoZEdsMlpVWnBiR1ZUZVhOMFpXMVRkWEJ3YjNKMFpXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QlVhR2x6SUhkcGJHd2diMjVzZVNCM2IzSnJJR0Z6SUc5bUlFTm9jbTl0WlNBNE5peGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJpZFhRZ1kyRnVJR0psSUhOaFptVnNlU0JwWjI1dmNtVmtJRzl1SUc5c1pHVnlJSEpsYkdWaGMyVnpMbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHbDBaVzBnUFNCbGRtVnVkQzVrWVhSaFZISmhibk5tWlhJdWFYUmxiWE5iTUYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tHWnBiR1VnWVhNZ1lXNTVLUzVvWVc1a2JHVWdQU0JoZDJGcGRDQW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwZEdWdElHRnpJR0Z1ZVZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNrdVoyVjBRWE5HYVd4bFUzbHpkR1Z0U0dGdVpHeGxLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSDBnWTJGMFkyZ2dLR1Z5Y205eU9pQmhibmtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpiMnhsTG5kaGNtNG9aWEp5YjNJdWJtRnRaU3dnWlhKeWIzSXViV1Z6YzJGblpTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjMk5sYm1VZ1BTQmhkMkZwZENCc2IyRmtSbkp2YlVKc2IySW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHWnBiR1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMzUmhkR1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMyTmxibVV1WjJWMFJXeGxiV1Z1ZEhOSmJtTnNkV1JwYm1kRVpXeGxkR1ZrS0Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1emVXNWpRV04wYVc5dVVtVnpkV3gwS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnTGk0dWMyTmxibVVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxPaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTGk0dUtITmpaVzVsTG1Gd2NGTjBZWFJsSUh4OElIUm9hWE11YzNSaGRHVXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x6VEc5aFpHbHVaem9nWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjR3hoWTJWR2FXeGxjem9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXRiV2wwVkc5SWFYTjBiM0o1T2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUNBZ2ZTQmpZWFJqYUNBb1pYSnliM0k2SUdGdWVTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR1Z5Y205eUxtNWhiV1VnSVQwOUlGd2lSVzVqYjJScGJtZEZjbkp2Y2x3aUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9jbTkzSUdWeWNtOXlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDOHZJR2xtSUc1dklITmpaVzVsSUdseklHVnRZbVZrWkdWa0lHOXlJSGRsSUdaaGFXd2dabTl5SUhkb1lYUmxkbVZ5SUhKbFlYTnZiaXdnWm1Gc2JDQmlZV05yWEc0Z0lDQWdJQ0FnSUM4dklIUnZJR2x0Y0c5eWRHbHVaeUJoY3lCeVpXZDFiR0Z5SUdsdFlXZGxYRzRnSUNBZ0lDQWdJQzh2SUMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMVnh1WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSHNnZURvZ2MyTmxibVZZTENCNU9pQnpZMlZ1WlZrZ2ZTQTlJSFpwWlhkd2IzSjBRMjl2Y21SelZHOVRZMlZ1WlVOdmIzSmtjeWhjYmlBZ0lDQWdJQ0FnSUNCbGRtVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbk4wWVhSbExGeHVJQ0FnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR2x0WVdkbFJXeGxiV1Z1ZENBOUlIUm9hWE11WTNKbFlYUmxTVzFoWjJWRmJHVnRaVzUwS0hzZ2MyTmxibVZZTENCelkyVnVaVmtnZlNrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YVc1elpYSjBTVzFoWjJWRmJHVnRaVzUwS0dsdFlXZGxSV3hsYldWdWRDd2dabWxzWlNrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YVc1cGRHbGhiR2w2WlVsdFlXZGxSR2x0Wlc1emFXOXVjeWhwYldGblpVVnNaVzFsYm5RcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0hzZ2MyVnNaV04wWldSRmJHVnRaVzUwU1dSek9pQjdJRnRwYldGblpVVnNaVzFsYm5RdWFXUmRPaUIwY25WbElIMGdmU2s3WEc1Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBnWTJGMFkyZ2dLR1Z5Y205eU9pQmhibmtwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdhWE5NYjJGa2FXNW5PaUJtWVd4elpTeGNiaUFnSUNBZ0lDQWdaWEp5YjNKTlpYTnpZV2RsT2lCbGNuSnZjaTV0WlhOellXZGxMRnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2JHbGljbUZ5ZVZOb1lYQmxjeUE5SUdWMlpXNTBMbVJoZEdGVWNtRnVjMlpsY2k1blpYUkVZWFJoS0UxSlRVVmZWRmxRUlZNdVpYaGpZV3hwWkhKaGQyeHBZaWs3WEc0Z0lDQWdhV1lnS0d4cFluSmhjbmxUYUdGd1pYTWdJVDA5SUZ3aVhDSXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVlXUmtSV3hsYldWdWRITkdjbTl0VUdGemRHVlBja3hwWW5KaGNua29lMXh1SUNBZ0lDQWdJQ0JsYkdWdFpXNTBjem9nU2xOUFRpNXdZWEp6WlNoc2FXSnlZWEo1VTJoaGNHVnpLU3hjYmlBZ0lDQWdJQ0FnY0c5emFYUnBiMjQ2SUdWMlpXNTBMRnh1SUNBZ0lDQWdJQ0JtYVd4bGN6b2diblZzYkN4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHWnBiR1VnUFNCbGRtVnVkQzVrWVhSaFZISmhibk5tWlhJL0xtWnBiR1Z6V3pCZE8xeHVJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lHWnBiR1UvTG5SNWNHVWdQVDA5SUUxSlRVVmZWRmxRUlZNdVpYaGpZV3hwWkhKaGQyeHBZaUI4ZkZ4dUlDQWdJQ0FnWm1sc1pUOHVibUZ0WlQ4dVpXNWtjMWRwZEdnb1hDSXVaWGhqWVd4cFpISmhkMnhwWWx3aUtWeHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVzYVdKeVlYSjVYRzRnSUNBZ0lDQWdJQzVwYlhCdmNuUk1hV0p5WVhKNUtHWnBiR1VwWEc0Z0lDQWdJQ0FnSUM1MGFHVnVLQ2dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0F2THlCRGJHOXpaU0JoYm1RZ2RHaGxiaUJ2Y0dWdUlIUnZJR2RsZENCMGFHVWdiR2xpY21GeWFXVnpJSFZ3WkdGMFpXUmNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIc2dhWE5NYVdKeVlYSjVUM0JsYmpvZ1ptRnNjMlVnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN0lHbHpUR2xpY21GeWVVOXdaVzQ2SUhSeWRXVWdmU2s3WEc0Z0lDQWdJQ0FnSUgwcFhHNGdJQ0FnSUNBZ0lDNWpZWFJqYUNnb1pYSnliM0lwSUQwK1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN0lHbHpURzloWkdsdVp6b2dabUZzYzJVc0lHVnljbTl5VFdWemMyRm5aVG9nWlhKeWIzSXViV1Z6YzJGblpTQjlLU3hjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUM4dklHUmxabUYxYkhRNklHRnpjM1Z0WlNCaGJpQkZlR05oYkdsa2NtRjNJR1pwYkdVZ2NtVm5ZWEprYkdWemN5QnZaaUJsZUhSbGJuTnBiMjR2VFdsdFpWUjVjR1ZjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3SUdselRHOWhaR2x1WnpvZ2RISjFaU0I5S1R0Y2JpQWdJQ0FnSUdsbUlDaHVZWFJwZG1WR2FXeGxVM2x6ZEdWdFUzVndjRzl5ZEdWa0tTQjdYRzRnSUNBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lDQWdMeThnVkdocGN5QjNhV3hzSUc5dWJIa2dkMjl5YXlCaGN5QnZaaUJEYUhKdmJXVWdPRFlzWEc0Z0lDQWdJQ0FnSUNBZ0x5OGdZblYwSUdOaGJpQmlaU0J6WVdabGJIa2dhV2R1YjNKbFpDQnZiaUJ2YkdSbGNpQnlaV3hsWVhObGN5NWNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnBkR1Z0SUQwZ1pYWmxiblF1WkdGMFlWUnlZVzV6Wm1WeUxtbDBaVzF6V3pCZE8xeHVJQ0FnSUNBZ0lDQWdJQ2htYVd4bElHRnpJR0Z1ZVNrdWFHRnVaR3hsSUQwZ1lYZGhhWFFnS0dsMFpXMGdZWE1nWVc1NUtTNW5aWFJCYzBacGJHVlRlWE4wWlcxSVlXNWtiR1VvS1R0Y2JpQWdJQ0FnSUNBZ2ZTQmpZWFJqYUNBb1pYSnliM0k2SUdGdWVTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTnZiR1V1ZDJGeWJpaGxjbkp2Y2k1dVlXMWxMQ0JsY25KdmNpNXRaWE56WVdkbEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJGa1JtbHNaVlJ2UTJGdWRtRnpLR1pwYkdVcE8xeHVJQ0FnSUgxY2JpQWdmVHRjYmx4dUlDQnNiMkZrUm1sc1pWUnZRMkZ1ZG1GeklEMGdLR1pwYkdVNklFSnNiMklwSUQwK0lIdGNiaUFnSUNCc2IyRmtSbkp2YlVKc2IySW9abWxzWlN3Z2RHaHBjeTV6ZEdGMFpTd2dkR2hwY3k1elkyVnVaUzVuWlhSRmJHVnRaVzUwYzBsdVkyeDFaR2x1WjBSbGJHVjBaV1FvS1NsY2JpQWdJQ0FnSUM1MGFHVnVLQ2h6WTJWdVpTa2dQVDRnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbk41Ym1OQlkzUnBiMjVTWlhOMWJIUW9lMXh1SUNBZ0lDQWdJQ0FnSUM0dUxuTmpaVzVsTEZ4dUlDQWdJQ0FnSUNBZ0lHRndjRk4wWVhSbE9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBdUxpNG9jMk5sYm1VdVlYQndVM1JoZEdVZ2ZId2dkR2hwY3k1emRHRjBaU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnBjMHh2WVdScGJtYzZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ2NtVndiR0ZqWlVacGJHVnpPaUIwY25WbExGeHVJQ0FnSUNBZ0lDQWdJR052YlcxcGRGUnZTR2x6ZEc5eWVUb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlLVnh1SUNBZ0lDQWdMbU5oZEdOb0tDaGxjbkp2Y2lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIc2dhWE5NYjJGa2FXNW5PaUJtWVd4elpTd2daWEp5YjNKTlpYTnpZV2RsT2lCbGNuSnZjaTV0WlhOellXZGxJSDBwTzF4dUlDQWdJQ0FnZlNrN1hHNGdJSDA3WEc1Y2JpQWdjSEpwZG1GMFpTQm9ZVzVrYkdWRFlXNTJZWE5EYjI1MFpYaDBUV1Z1ZFNBOUlDaGNiaUFnSUNCbGRtVnVkRG9nVW1WaFkzUXVVRzlwYm5SbGNrVjJaVzUwUEVoVVRVeERZVzUyWVhORmJHVnRaVzUwUGl4Y2JpQWdLU0E5UGlCN1hHNGdJQ0FnWlhabGJuUXVjSEpsZG1WdWRFUmxabUYxYkhRb0tUdGNibHh1SUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ2hsZG1WdWRDNXVZWFJwZG1WRmRtVnVkQzV3YjJsdWRHVnlWSGx3WlNBOVBUMGdYQ0owYjNWamFGd2lJSHg4WEc0Z0lDQWdJQ0FnSUNobGRtVnVkQzV1WVhScGRtVkZkbVZ1ZEM1d2IybHVkR1Z5Vkhsd1pTQTlQVDBnWENKd1pXNWNJaUFtSmx4dUlDQWdJQ0FnSUNBZ0lDOHZJR0ZzZDJGNWN5QmhiR3h2ZHlCcFppQjFjMlZ5SUhWelpYTWdZU0J3Wlc0Z2MyVmpiMjVrWVhKNUlHSjFkSFJ2Ymx4dUlDQWdJQ0FnSUNBZ0lHVjJaVzUwTG1KMWRIUnZiaUFoUFQwZ1VFOUpUbFJGVWw5Q1ZWUlVUMDR1VTBWRFQwNUVRVkpaS1NrZ0ppWmNiaUFnSUNBZ0lIUm9hWE11YzNSaGRHVXVaV3hsYldWdWRGUjVjR1VnSVQwOUlGd2ljMlZzWldOMGFXOXVYQ0pjYmlBZ0lDQXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0I3SUhnc0lIa2dmU0E5SUhacFpYZHdiM0owUTI5dmNtUnpWRzlUWTJWdVpVTnZiM0prY3lobGRtVnVkQ3dnZEdocGN5NXpkR0YwWlNrN1hHNGdJQ0FnWTI5dWMzUWdaV3hsYldWdWRDQTlJSFJvYVhNdVoyVjBSV3hsYldWdWRFRjBVRzl6YVhScGIyNG9lQ3dnZVN3Z2V5QndjbVZtWlhKVFpXeGxZM1JsWkRvZ2RISjFaU0I5S1R0Y2JseHVJQ0FnSUdOdmJuTjBJSFI1Y0dVZ1BTQmxiR1Z0Wlc1MElEOGdYQ0psYkdWdFpXNTBYQ0lnT2lCY0ltTmhiblpoYzF3aU8xeHVYRzRnSUNBZ1kyOXVjM1FnWTI5dWRHRnBibVZ5SUQwZ2RHaHBjeTVsZUdOaGJHbGtjbUYzUTI5dWRHRnBibVZ5VW1WbUxtTjFjbkpsYm5RaE8xeHVJQ0FnSUdOdmJuTjBJSHNnZEc5d09pQnZabVp6WlhSVWIzQXNJR3hsWm5RNklHOW1abk5sZEV4bFpuUWdmU0E5WEc0Z0lDQWdJQ0JqYjI1MFlXbHVaWEl1WjJWMFFtOTFibVJwYm1kRGJHbGxiblJTWldOMEtDazdYRzRnSUNBZ1kyOXVjM1FnYkdWbWRDQTlJR1YyWlc1MExtTnNhV1Z1ZEZnZ0xTQnZabVp6WlhSTVpXWjBPMXh1SUNBZ0lHTnZibk4wSUhSdmNDQTlJR1YyWlc1MExtTnNhV1Z1ZEZrZ0xTQnZabVp6WlhSVWIzQTdYRzVjYmlBZ0lDQnBaaUFvWld4bGJXVnVkQ0FtSmlBaGRHaHBjeTV6ZEdGMFpTNXpaV3hsWTNSbFpFVnNaVzFsYm5SSlpITmJaV3hsYldWdWRDNXBaRjBwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9leUJ6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE02SUhzZ1cyVnNaVzFsYm5RdWFXUmRPaUIwY25WbElIMGdmU3dnS0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0IwYUdsekxsOXZjR1Z1UTI5dWRHVjRkRTFsYm5Vb2V5QjBiM0FzSUd4bFpuUWdmU3dnZEhsd1pTazdYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVmYjNCbGJrTnZiblJsZUhSTlpXNTFLSHNnZEc5d0xDQnNaV1owSUgwc0lIUjVjR1VwTzF4dUlDQWdJSDFjYmlBZ2ZUdGNibHh1SUNCd2NtbDJZWFJsSUcxaGVXSmxSSEpoWjA1bGQwZGxibVZ5YVdORmJHVnRaVzUwSUQwZ0tGeHVJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1U2SUZCdmFXNTBaWEpFYjNkdVUzUmhkR1VzWEc0Z0lDQWdaWFpsYm5RNklFMXZkWE5sUlhabGJuUWdmQ0JMWlhsaWIyRnlaRVYyWlc1MExGeHVJQ0FwT2lCMmIybGtJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQmtjbUZuWjJsdVowVnNaVzFsYm5RZ1BTQjBhR2x6TG5OMFlYUmxMbVJ5WVdkbmFXNW5SV3hsYldWdWREdGNiaUFnSUNCamIyNXpkQ0J3YjJsdWRHVnlRMjl2Y21SeklEMGdjRzlwYm5SbGNrUnZkMjVUZEdGMFpTNXNZWE4wUTI5dmNtUnpPMXh1SUNBZ0lHbG1JQ2doWkhKaFoyZHBibWRGYkdWdFpXNTBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaGtjbUZuWjJsdVowVnNaVzFsYm5RdWRIbHdaU0E5UFQwZ1hDSnpaV3hsWTNScGIyNWNJaWtnZTF4dUlDQWdJQ0FnWkhKaFowNWxkMFZzWlcxbGJuUW9YRzRnSUNBZ0lDQWdJR1J5WVdkbmFXNW5SV3hsYldWdWRDeGNiaUFnSUNBZ0lDQWdkR2hwY3k1emRHRjBaUzVsYkdWdFpXNTBWSGx3WlN4Y2JpQWdJQ0FnSUNBZ2NHOXBiblJsY2tSdmQyNVRkR0YwWlM1dmNtbG5hVzR1ZUN4Y2JpQWdJQ0FnSUNBZ2NHOXBiblJsY2tSdmQyNVRkR0YwWlM1dmNtbG5hVzR1ZVN4Y2JpQWdJQ0FnSUNBZ2NHOXBiblJsY2tOdmIzSmtjeTU0TEZ4dUlDQWdJQ0FnSUNCd2IybHVkR1Z5UTI5dmNtUnpMbmtzWEc0Z0lDQWdJQ0FnSUdScGMzUmhibU5sS0hCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YjNKcFoybHVMbmdzSUhCdmFXNTBaWEpEYjI5eVpITXVlQ2tzWEc0Z0lDQWdJQ0FnSUdScGMzUmhibU5sS0hCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YjNKcFoybHVMbmtzSUhCdmFXNTBaWEpEYjI5eVpITXVlU2tzWEc0Z0lDQWdJQ0FnSUhOb2IzVnNaRTFoYVc1MFlXbHVRWE53WldOMFVtRjBhVzhvWlhabGJuUXBMRnh1SUNBZ0lDQWdJQ0J6YUc5MWJHUlNaWE5wZW1WR2NtOXRRMlZ1ZEdWeUtHVjJaVzUwS1N4Y2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR052Ym5OMElGdG5jbWxrV0N3Z1ozSnBaRmxkSUQwZ1oyVjBSM0pwWkZCdmFXNTBLRnh1SUNBZ0lDQWdJQ0J3YjJsdWRHVnlRMjl2Y21SekxuZ3NYRzRnSUNBZ0lDQWdJSEJ2YVc1MFpYSkRiMjl5WkhNdWVTeGNiaUFnSUNBZ0lDQWdkR2hwY3k1emRHRjBaUzVuY21sa1UybDZaU3hjYmlBZ0lDQWdJQ2s3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJR2x0WVdkbElEMWNiaUFnSUNBZ0lDQWdhWE5KYm1sMGFXRnNhWHBsWkVsdFlXZGxSV3hsYldWdWRDaGtjbUZuWjJsdVowVnNaVzFsYm5RcElDWW1YRzRnSUNBZ0lDQWdJSFJvYVhNdWFXMWhaMlZEWVdOb1pTNW5aWFFvWkhKaFoyZHBibWRGYkdWdFpXNTBMbVpwYkdWSlpDay9MbWx0WVdkbE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWVhOd1pXTjBVbUYwYVc4Z1BWeHVJQ0FnSUNBZ0lDQnBiV0ZuWlNBbUppQWhLR2x0WVdkbElHbHVjM1JoYm1ObGIyWWdVSEp2YldselpTbGNiaUFnSUNBZ0lDQWdJQ0EvSUdsdFlXZGxMbmRwWkhSb0lDOGdhVzFoWjJVdWFHVnBaMmgwWEc0Z0lDQWdJQ0FnSUNBZ09pQnVkV3hzTzF4dVhHNGdJQ0FnSUNCa2NtRm5UbVYzUld4bGJXVnVkQ2hjYmlBZ0lDQWdJQ0FnWkhKaFoyZHBibWRGYkdWdFpXNTBMRnh1SUNBZ0lDQWdJQ0IwYUdsekxuTjBZWFJsTG1Wc1pXMWxiblJVZVhCbExGeHVJQ0FnSUNBZ0lDQndiMmx1ZEdWeVJHOTNibE4wWVhSbExtOXlhV2RwYmtsdVIzSnBaQzU0TEZ4dUlDQWdJQ0FnSUNCd2IybHVkR1Z5Ukc5M2JsTjBZWFJsTG05eWFXZHBia2x1UjNKcFpDNTVMRnh1SUNBZ0lDQWdJQ0JuY21sa1dDeGNiaUFnSUNBZ0lDQWdaM0pwWkZrc1hHNGdJQ0FnSUNBZ0lHUnBjM1JoYm1ObEtIQnZhVzUwWlhKRWIzZHVVM1JoZEdVdWIzSnBaMmx1U1c1SGNtbGtMbmdzSUdkeWFXUllLU3hjYmlBZ0lDQWdJQ0FnWkdsemRHRnVZMlVvY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzV2Y21sbmFXNUpia2R5YVdRdWVTd2daM0pwWkZrcExGeHVJQ0FnSUNBZ0lDQnBjMGx0WVdkbFJXeGxiV1Z1ZENoa2NtRm5aMmx1WjBWc1pXMWxiblFwWEc0Z0lDQWdJQ0FnSUNBZ1B5QWhjMmh2ZFd4a1RXRnBiblJoYVc1QmMzQmxZM1JTWVhScGJ5aGxkbVZ1ZENsY2JpQWdJQ0FnSUNBZ0lDQTZJSE5vYjNWc1pFMWhhVzUwWVdsdVFYTndaV04wVW1GMGFXOG9aWFpsYm5RcExGeHVJQ0FnSUNBZ0lDQnphRzkxYkdSU1pYTnBlbVZHY205dFEyVnVkR1Z5S0dWMlpXNTBLU3hjYmlBZ0lDQWdJQ0FnWVhOd1pXTjBVbUYwYVc4c1hHNGdJQ0FnSUNBcE8xeHVYRzRnSUNBZ0lDQjBhR2x6TG0xaGVXSmxVM1ZuWjJWemRFSnBibVJwYm1kR2IzSkJiR3dvVzJSeVlXZG5hVzVuUld4bGJXVnVkRjBwTzF4dUlDQWdJSDFjYmlBZ2ZUdGNibHh1SUNCd2NtbDJZWFJsSUcxaGVXSmxTR0Z1Wkd4bFVtVnphWHBsSUQwZ0tGeHVJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1U2SUZCdmFXNTBaWEpFYjNkdVUzUmhkR1VzWEc0Z0lDQWdaWFpsYm5RNklFMXZkWE5sUlhabGJuUWdmQ0JMWlhsaWIyRnlaRVYyWlc1MExGeHVJQ0FwT2lCaWIyOXNaV0Z1SUQwK0lIdGNiaUFnSUNCamIyNXpkQ0J6Wld4bFkzUmxaRVZzWlcxbGJuUnpJRDBnWjJWMFUyVnNaV04wWldSRmJHVnRaVzUwY3loY2JpQWdJQ0FnSUhSb2FYTXVjMk5sYm1VdVoyVjBSV3hsYldWdWRITW9LU3hjYmlBZ0lDQWdJSFJvYVhNdWMzUmhkR1VzWEc0Z0lDQWdLVHRjYmlBZ0lDQmpiMjV6ZENCMGNtRnVjMlp2Y20xSVlXNWtiR1ZVZVhCbElEMGdjRzlwYm5SbGNrUnZkMjVUZEdGMFpTNXlaWE5wZW1VdWFHRnVaR3hsVkhsd1pUdGNiaUFnSUNCMGFHbHpMbk5sZEZOMFlYUmxLSHRjYmlBZ0lDQWdJQzh2SUZSUFJFODZJSEpsYm1GdFpTQjBhR2x6SUhOMFlYUmxJR1pwWld4a0lIUnZJRndpYVhOVFkyRnNhVzVuWENJZ2RHOGdaR2x6ZEdsdVozVnBjMmhjYmlBZ0lDQWdJQzh2SUdsMElHWnliMjBnZEdobElHZGxibVZ5YVdNZ1hDSnBjMUpsYzJsNmFXNW5YQ0lnZDJocFkyZ2dhVzVqYkhWa1pYTWdjMk5oYkdsdVp5QmhibVJjYmlBZ0lDQWdJQzh2SUhKdmRHRjBhVzVuWEc0Z0lDQWdJQ0JwYzFKbGMybDZhVzVuT2lCMGNtRnVjMlp2Y20xSVlXNWtiR1ZVZVhCbElDWW1JSFJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1VnSVQwOUlGd2ljbTkwWVhScGIyNWNJaXhjYmlBZ0lDQWdJR2x6VW05MFlYUnBibWM2SUhSeVlXNXpabTl5YlVoaGJtUnNaVlI1Y0dVZ1BUMDlJRndpY205MFlYUnBiMjVjSWl4Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0JqYjI1emRDQndiMmx1ZEdWeVEyOXZjbVJ6SUQwZ2NHOXBiblJsY2tSdmQyNVRkR0YwWlM1c1lYTjBRMjl2Y21Sek8xeHVJQ0FnSUdOdmJuTjBJRnR5WlhOcGVtVllMQ0J5WlhOcGVtVlpYU0E5SUdkbGRFZHlhV1JRYjJsdWRDaGNiaUFnSUNBZ0lIQnZhVzUwWlhKRGIyOXlaSE11ZUNBdElIQnZhVzUwWlhKRWIzZHVVM1JoZEdVdWNtVnphWHBsTG05bVpuTmxkQzU0TEZ4dUlDQWdJQ0FnY0c5cGJuUmxja052YjNKa2N5NTVJQzBnY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzV5WlhOcGVtVXViMlptYzJWMExua3NYRzRnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMbWR5YVdSVGFYcGxMRnh1SUNBZ0lDazdYRzRnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdkSEpoYm5ObWIzSnRSV3hsYldWdWRITW9YRzRnSUNBZ0lDQWdJSEJ2YVc1MFpYSkViM2R1VTNSaGRHVXNYRzRnSUNBZ0lDQWdJSFJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1VzWEc0Z0lDQWdJQ0FnSUhObGJHVmpkR1ZrUld4bGJXVnVkSE1zWEc0Z0lDQWdJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1Y21WemFYcGxMbUZ5Y205M1JHbHlaV04wYVc5dUxGeHVJQ0FnSUNBZ0lDQnphRzkxYkdSU2IzUmhkR1ZYYVhSb1JHbHpZM0psZEdWQmJtZHNaU2hsZG1WdWRDa3NYRzRnSUNBZ0lDQWdJSE5vYjNWc1pGSmxjMmw2WlVaeWIyMURaVzUwWlhJb1pYWmxiblFwTEZ4dUlDQWdJQ0FnSUNCelpXeGxZM1JsWkVWc1pXMWxiblJ6TG14bGJtZDBhQ0E5UFQwZ01TQW1KaUJwYzBsdFlXZGxSV3hsYldWdWRDaHpaV3hsWTNSbFpFVnNaVzFsYm5Seld6QmRLVnh1SUNBZ0lDQWdJQ0FnSUQ4Z0lYTm9iM1ZzWkUxaGFXNTBZV2x1UVhOd1pXTjBVbUYwYVc4b1pYWmxiblFwWEc0Z0lDQWdJQ0FnSUNBZ09pQnphRzkxYkdSTllXbHVkR0ZwYmtGemNHVmpkRkpoZEdsdktHVjJaVzUwS1N4Y2JpQWdJQ0FnSUNBZ2NtVnphWHBsV0N4Y2JpQWdJQ0FnSUNBZ2NtVnphWHBsV1N4Y2JpQWdJQ0FnSUNBZ2NHOXBiblJsY2tSdmQyNVRkR0YwWlM1eVpYTnBlbVV1WTJWdWRHVnlMbmdzWEc0Z0lDQWdJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1Y21WemFYcGxMbU5sYm5SbGNpNTVMRnh1SUNBZ0lDQWdLVnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdkR2hwY3k1dFlYbGlaVk4xWjJkbGMzUkNhVzVrYVc1blJtOXlRV3hzS0hObGJHVmpkR1ZrUld4bGJXVnVkSE1wTzF4dUlDQWdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdmVHRjYmx4dUlDQXZLaW9nUUhCeWFYWmhkR1VnZFhObElIUm9hWE11YUdGdVpHeGxRMkZ1ZG1GelEyOXVkR1Y0ZEUxbGJuVWdLaTljYmlBZ2NISnBkbUYwWlNCZmIzQmxia052Ym5SbGVIUk5aVzUxSUQwZ0tGeHVJQ0FnSUh0Y2JpQWdJQ0FnSUd4bFpuUXNYRzRnSUNBZ0lDQjBiM0FzWEc0Z0lDQWdmVG9nZTF4dUlDQWdJQ0FnYkdWbWREb2diblZ0WW1WeU8xeHVJQ0FnSUNBZ2RHOXdPaUJ1ZFcxaVpYSTdYRzRnSUNBZ2ZTeGNiaUFnSUNCMGVYQmxPaUJjSW1OaGJuWmhjMXdpSUh3Z1hDSmxiR1Z0Wlc1MFhDSXNYRzRnSUNrZ1BUNGdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxuTjBZWFJsTG5Ob2IzZEllWEJsY214cGJtdFFiM0IxY0NrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3SUhOb2IzZEllWEJsY214cGJtdFFiM0IxY0RvZ1ptRnNjMlVnZlNrN1hHNGdJQ0FnZlZ4dUlDQWdJSFJvYVhNdVkyOXVkR1Y0ZEUxbGJuVlBjR1Z1SUQwZ2RISjFaVHRjYmlBZ0lDQmpiMjV6ZENCdFlYbGlaVWR5YjNWd1FXTjBhVzl1SUQwZ1lXTjBhVzl1UjNKdmRYQXVZMjl1ZEdWNGRFbDBaVzFRY21Wa2FXTmhkR1VoS0Z4dUlDQWdJQ0FnZEdocGN5NWhZM1JwYjI1TllXNWhaMlZ5TG1kbGRFVnNaVzFsYm5SelNXNWpiSFZrYVc1blJHVnNaWFJsWkNncExGeHVJQ0FnSUNBZ2RHaHBjeTVoWTNScGIyNU5ZVzVoWjJWeUxtZGxkRUZ3Y0ZOMFlYUmxLQ2tzWEc0Z0lDQWdLVHRjYmx4dUlDQWdJR052Ym5OMElHMWhlV0psVlc1bmNtOTFjRUZqZEdsdmJpQTlJR0ZqZEdsdmJsVnVaM0p2ZFhBdVkyOXVkR1Y0ZEVsMFpXMVFjbVZrYVdOaGRHVWhLRnh1SUNBZ0lDQWdkR2hwY3k1aFkzUnBiMjVOWVc1aFoyVnlMbWRsZEVWc1pXMWxiblJ6U1c1amJIVmthVzVuUkdWc1pYUmxaQ2dwTEZ4dUlDQWdJQ0FnZEdocGN5NWhZM1JwYjI1TllXNWhaMlZ5TG1kbGRFRndjRk4wWVhSbEtDa3NYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHTnZibk4wSUcxaGVXSmxSbXhwY0VodmNtbDZiMjUwWVd3Z1BTQmhZM1JwYjI1R2JHbHdTRzl5YVhwdmJuUmhiQzVqYjI1MFpYaDBTWFJsYlZCeVpXUnBZMkYwWlNFb1hHNGdJQ0FnSUNCMGFHbHpMbUZqZEdsdmJrMWhibUZuWlhJdVoyVjBSV3hsYldWdWRITkpibU5zZFdScGJtZEVaV3hsZEdWa0tDa3NYRzRnSUNBZ0lDQjBhR2x6TG1GamRHbHZiazFoYm1GblpYSXVaMlYwUVhCd1UzUmhkR1VvS1N4Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWTI5dWMzUWdiV0Y1WW1WR2JHbHdWbVZ5ZEdsallXd2dQU0JoWTNScGIyNUdiR2x3Vm1WeWRHbGpZV3d1WTI5dWRHVjRkRWwwWlcxUWNtVmthV05oZEdVaEtGeHVJQ0FnSUNBZ2RHaHBjeTVoWTNScGIyNU5ZVzVoWjJWeUxtZGxkRVZzWlcxbGJuUnpTVzVqYkhWa2FXNW5SR1ZzWlhSbFpDZ3BMRnh1SUNBZ0lDQWdkR2hwY3k1aFkzUnBiMjVOWVc1aFoyVnlMbWRsZEVGd2NGTjBZWFJsS0Nrc1hHNGdJQ0FnS1R0Y2JseHVJQ0FnSUdOdmJuTjBJSE5sY0dGeVlYUnZjaUE5SUZ3aWMyVndZWEpoZEc5eVhDSTdYRzVjYmlBZ0lDQmpiMjV6ZENCbGJHVnRaVzUwY3lBOUlIUm9hWE11YzJObGJtVXVaMlYwUld4bGJXVnVkSE1vS1R0Y2JseHVJQ0FnSUdOdmJuTjBJRzl3ZEdsdmJuTTZJRU52Ym5SbGVIUk5aVzUxVDNCMGFXOXVXMTBnUFNCYlhUdGNiaUFnSUNCcFppQW9jSEp2WW1GaWJIbFRkWEJ3YjNKMGMwTnNhWEJpYjJGeVpFSnNiMklnSmlZZ1pXeGxiV1Z1ZEhNdWJHVnVaM1JvSUQ0Z01Da2dlMXh1SUNBZ0lDQWdiM0IwYVc5dWN5NXdkWE5vS0dGamRHbHZia052Y0hsQmMxQnVaeWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0hCeWIySmhZbXg1VTNWd2NHOXlkSE5EYkdsd1ltOWhjbVJYY21sMFpWUmxlSFFnSmlZZ1pXeGxiV1Z1ZEhNdWJHVnVaM1JvSUQ0Z01Da2dlMXh1SUNBZ0lDQWdiM0IwYVc5dWN5NXdkWE5vS0dGamRHbHZia052Y0hsQmMxTjJaeWs3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2gwZVhCbElEMDlQU0JjSW1OaGJuWmhjMXdpS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0IyYVdWM1RXOWtaVTl3ZEdsdmJuTWdQU0JiWEc0Z0lDQWdJQ0FnSUM0dUxtOXdkR2x2Ym5Nc1hHNGdJQ0FnSUNBZ0lIUjVjR1Z2WmlCMGFHbHpMbkJ5YjNCekxtZHlhV1JOYjJSbFJXNWhZbXhsWkNBOVBUMGdYQ0oxYm1SbFptbHVaV1JjSWlBbUpseHVJQ0FnSUNBZ0lDQWdJR0ZqZEdsdmJsUnZaMmRzWlVkeWFXUk5iMlJsTEZ4dUlDQWdJQ0FnSUNCMGVYQmxiMllnZEdocGN5NXdjbTl3Y3k1NlpXNU5iMlJsUlc1aFlteGxaQ0E5UFQwZ1hDSjFibVJsWm1sdVpXUmNJaUFtSmlCaFkzUnBiMjVVYjJkbmJHVmFaVzVOYjJSbExGeHVJQ0FnSUNBZ0lDQjBlWEJsYjJZZ2RHaHBjeTV3Y205d2N5NTJhV1YzVFc5a1pVVnVZV0pzWldRZ1BUMDlJRndpZFc1a1pXWnBibVZrWENJZ0ppWmNiaUFnSUNBZ0lDQWdJQ0JoWTNScGIyNVViMmRuYkdWV2FXVjNUVzlrWlN4Y2JpQWdJQ0FnSUNBZ1lXTjBhVzl1Vkc5bloyeGxVM1JoZEhNc1hHNGdJQ0FnSUNCZE8xeHVYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NXpkR0YwWlM1MmFXVjNUVzlrWlVWdVlXSnNaV1FwSUh0Y2JpQWdJQ0FnSUNBZ1EyOXVkR1Y0ZEUxbGJuVXVjSFZ6YUNoN1hHNGdJQ0FnSUNBZ0lDQWdiM0IwYVc5dWN6b2dkbWxsZDAxdlpHVlBjSFJwYjI1ekxGeHVJQ0FnSUNBZ0lDQWdJSFJ2Y0N4Y2JpQWdJQ0FnSUNBZ0lDQnNaV1owTEZ4dUlDQWdJQ0FnSUNBZ0lHRmpkR2x2YmsxaGJtRm5aWEk2SUhSb2FYTXVZV04wYVc5dVRXRnVZV2RsY2l4Y2JpQWdJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpUb2dkR2hwY3k1emRHRjBaU3hjYmlBZ0lDQWdJQ0FnSUNCamIyNTBZV2x1WlhJNklIUm9hWE11WlhoallXeHBaSEpoZDBOdmJuUmhhVzVsY2xKbFppNWpkWEp5Wlc1MElTeGNiaUFnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBjeXhjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCRGIyNTBaWGgwVFdWdWRTNXdkWE5vS0h0Y2JpQWdJQ0FnSUNBZ0lDQnZjSFJwYjI1ek9pQmJYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbWx6VFc5aWFXeGxJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRzVoZG1sbllYUnZjaTVqYkdsd1ltOWhjbVFnSmlZZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHNWhiV1U2SUZ3aWNHRnpkR1ZjSWl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCd1pYSm1iM0p0T2lBb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbGN5a2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV3WVhOMFpVWnliMjFEYkdsd1ltOWhjbVFvYm5Wc2JDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyMXRhWFJVYjBocGMzUnZjbms2SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZiblJsZUhSSmRHVnRUR0ZpWld3NklGd2liR0ZpWld4ekxuQmhjM1JsWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtbHpUVzlpYVd4bElDWW1JRzVoZG1sbllYUnZjaTVqYkdsd1ltOWhjbVFnSmlZZ2MyVndZWEpoZEc5eUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnY0hKdlltRmliSGxUZFhCd2IzSjBjME5zYVhCaWIyRnlaRUpzYjJJZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEhNdWJHVnVaM1JvSUQ0Z01DQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmhZM1JwYjI1RGIzQjVRWE5RYm1jc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3Y205aVlXSnNlVk4xY0hCdmNuUnpRMnhwY0dKdllYSmtWM0pwZEdWVVpYaDBJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzWlcxbGJuUnpMbXhsYm1kMGFDQStJREFnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWVdOMGFXOXVRMjl3ZVVGelUzWm5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ0tDaHdjbTlpWVdKc2VWTjFjSEJ2Y25SelEyeHBjR0p2WVhKa1FteHZZaUFtSmlCbGJHVnRaVzUwY3k1c1pXNW5kR2dnUGlBd0tTQjhmRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQW9jSEp2WW1GaWJIbFRkWEJ3YjNKMGMwTnNhWEJpYjJGeVpGZHlhWFJsVkdWNGRDQW1KaUJsYkdWdFpXNTBjeTVzWlc1bmRHZ2dQaUF3S1NrZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2MyVndZWEpoZEc5eUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnWVdOMGFXOXVVMlZzWldOMFFXeHNMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MyVndZWEpoZEc5eUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEhsd1pXOW1JSFJvYVhNdWNISnZjSE11WjNKcFpFMXZaR1ZGYm1GaWJHVmtJRDA5UFNCY0luVnVaR1ZtYVc1bFpGd2lJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR0ZqZEdsdmJsUnZaMmRzWlVkeWFXUk5iMlJsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkSGx3Wlc5bUlIUm9hWE11Y0hKdmNITXVlbVZ1VFc5a1pVVnVZV0pzWldRZ1BUMDlJRndpZFc1a1pXWnBibVZrWENJZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1lXTjBhVzl1Vkc5bloyeGxXbVZ1VFc5a1pTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhSNWNHVnZaaUIwYUdsekxuQnliM0J6TG5acFpYZE5iMlJsUlc1aFlteGxaQ0E5UFQwZ1hDSjFibVJsWm1sdVpXUmNJaUFtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JoWTNScGIyNVViMmRuYkdWV2FXVjNUVzlrWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR0ZqZEdsdmJsUnZaMmRzWlZOMFlYUnpMRnh1SUNBZ0lDQWdJQ0FnSUYwc1hHNGdJQ0FnSUNBZ0lDQWdkRzl3TEZ4dUlDQWdJQ0FnSUNBZ0lHeGxablFzWEc0Z0lDQWdJQ0FnSUNBZ1lXTjBhVzl1VFdGdVlXZGxjam9nZEdocGN5NWhZM1JwYjI1TllXNWhaMlZ5TEZ4dUlDQWdJQ0FnSUNBZ0lHRndjRk4wWVhSbE9pQjBhR2x6TG5OMFlYUmxMRnh1SUNBZ0lDQWdJQ0FnSUdOdmJuUmhhVzVsY2pvZ2RHaHBjeTVsZUdOaGJHbGtjbUYzUTI5dWRHRnBibVZ5VW1WbUxtTjFjbkpsYm5RaExGeHVJQ0FnSUNBZ0lDQWdJR1ZzWlcxbGJuUnpMRnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5SUdWc2MyVWdhV1lnS0hSNWNHVWdQVDA5SUZ3aVpXeGxiV1Z1ZEZ3aUtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCbGJHVnRaVzUwYzFkcGRHaFZibUpwYm1SbFpGUmxlSFFnUFNCblpYUlRaV3hsWTNSbFpFVnNaVzFsYm5SektGeHVJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MGN5eGNiaUFnSUNBZ0lDQWdkR2hwY3k1emRHRjBaU3hjYmlBZ0lDQWdJQ2t1YzI5dFpTZ29aV3hsYldWdWRDa2dQVDRnSVdoaGMwSnZkVzVrVkdWNGRFVnNaVzFsYm5Rb1pXeGxiV1Z1ZENrcE8xeHVJQ0FnSUNBZ2FXWWdLSFJvYVhNdWMzUmhkR1V1ZG1sbGQwMXZaR1ZGYm1GaWJHVmtLU0I3WEc0Z0lDQWdJQ0FnSUVOdmJuUmxlSFJOWlc1MUxuQjFjMmdvZTF4dUlDQWdJQ0FnSUNBZ0lHOXdkR2x2Ym5NNklGdHVZWFpwWjJGMGIzSXVZMnhwY0dKdllYSmtJQ1ltSUdGamRHbHZia052Y0hrc0lDNHVMbTl3ZEdsdmJuTmRMRnh1SUNBZ0lDQWdJQ0FnSUhSdmNDeGNiaUFnSUNBZ0lDQWdJQ0JzWldaMExGeHVJQ0FnSUNBZ0lDQWdJR0ZqZEdsdmJrMWhibUZuWlhJNklIUm9hWE11WVdOMGFXOXVUV0Z1WVdkbGNpeGNiaUFnSUNBZ0lDQWdJQ0JoY0hCVGRHRjBaVG9nZEdocGN5NXpkR0YwWlN4Y2JpQWdJQ0FnSUNBZ0lDQmpiMjUwWVdsdVpYSTZJSFJvYVhNdVpYaGpZV3hwWkhKaGQwTnZiblJoYVc1bGNsSmxaaTVqZFhKeVpXNTBJU3hjYmlBZ0lDQWdJQ0FnSUNCbGJHVnRaVzUwY3l4Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQkRiMjUwWlhoMFRXVnVkUzV3ZFhOb0tIdGNiaUFnSUNBZ0lDQWdJQ0J2Y0hScGIyNXpPaUJiWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1selRXOWlhV3hsSUNZbUlHRmpkR2x2YmtOMWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhWE5OYjJKcGJHVWdKaVlnYm1GMmFXZGhkRzl5TG1Oc2FYQmliMkZ5WkNBbUppQmhZM1JwYjI1RGIzQjVMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVwYzAxdlltbHNaU0FtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J1WVhacFoyRjBiM0l1WTJ4cGNHSnZZWEprSUNZbUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnVZVzFsT2lCY0luQmhjM1JsWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NHVnlabTl5YlRvZ0tHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpYTXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11Y0dGemRHVkdjbTl0UTJ4cGNHSnZZWEprS0c1MWJHd3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXRiV2wwVkc5SWFYTjBiM0o1T2lCbVlXeHpaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlhoMFNYUmxiVXhoWW1Wc09pQmNJbXhoWW1Wc2N5NXdZWE4wWlZ3aUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXBjMDF2WW1sc1pTQW1KaUJ6WlhCaGNtRjBiM0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVMaTV2Y0hScGIyNXpMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MyVndZWEpoZEc5eUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnWVdOMGFXOXVRMjl3ZVZOMGVXeGxjeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHRmpkR2x2YmxCaGMzUmxVM1I1YkdWekxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzJWd1lYSmhkRzl5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiV0Y1WW1WSGNtOTFjRUZqZEdsdmJpQW1KaUJoWTNScGIyNUhjbTkxY0N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0ZsYkdWdFpXNTBjMWRwZEdoVmJtSnBibVJsWkZSbGVIUWdKaVlnWVdOMGFXOXVWVzVpYVc1a1ZHVjRkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHMWhlV0psVlc1bmNtOTFjRUZqZEdsdmJpQW1KaUJoWTNScGIyNVZibWR5YjNWd0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnS0cxaGVXSmxSM0p2ZFhCQlkzUnBiMjRnZkh3Z2JXRjVZbVZWYm1keWIzVndRV04wYVc5dUtTQW1KaUJ6WlhCaGNtRjBiM0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmhZM1JwYjI1QlpHUlViMHhwWW5KaGNua3NYRzRnSUNBZ0lDQWdJQ0FnSUNCelpYQmhjbUYwYjNJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JoWTNScGIyNVRaVzVrUW1GamEzZGhjbVFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmhZM1JwYjI1Q2NtbHVaMFp2Y25kaGNtUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCaFkzUnBiMjVUWlc1a1ZHOUNZV05yTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdZV04wYVc5dVFuSnBibWRVYjBaeWIyNTBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MyVndZWEpoZEc5eUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYldGNVltVkdiR2x3U0c5eWFYcHZiblJoYkNBbUppQmhZM1JwYjI1R2JHbHdTRzl5YVhwdmJuUmhiQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHMWhlV0psUm14cGNGWmxjblJwWTJGc0lDWW1JR0ZqZEdsdmJrWnNhWEJXWlhKMGFXTmhiQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDaHRZWGxpWlVac2FYQkliM0pwZW05dWRHRnNJSHg4SUcxaGVXSmxSbXhwY0ZabGNuUnBZMkZzS1NBbUppQnpaWEJoY21GMGIzSXNYRzRnSUNBZ0lDQWdJQ0FnSUNCaFkzUnBiMjVNYVc1ckxtTnZiblJsZUhSSmRHVnRVSEpsWkdsallYUmxLR1ZzWlcxbGJuUnpMQ0IwYUdsekxuTjBZWFJsS1NBbUppQmhZM1JwYjI1TWFXNXJMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lXTjBhVzl1UkhWd2JHbGpZWFJsVTJWc1pXTjBhVzl1TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdZV04wYVc5dVJHVnNaWFJsVTJWc1pXTjBaV1FzWEc0Z0lDQWdJQ0FnSUNBZ1hTeGNiaUFnSUNBZ0lDQWdJQ0IwYjNBc1hHNGdJQ0FnSUNBZ0lDQWdiR1ZtZEN4Y2JpQWdJQ0FnSUNBZ0lDQmhZM1JwYjI1TllXNWhaMlZ5T2lCMGFHbHpMbUZqZEdsdmJrMWhibUZuWlhJc1hHNGdJQ0FnSUNBZ0lDQWdZWEJ3VTNSaGRHVTZJSFJvYVhNdWMzUmhkR1VzWEc0Z0lDQWdJQ0FnSUNBZ1kyOXVkR0ZwYm1WeU9pQjBhR2x6TG1WNFkyRnNhV1J5WVhkRGIyNTBZV2x1WlhKU1pXWXVZM1Z5Y21WdWRDRXNYRzRnSUNBZ0lDQWdJQ0FnWld4bGJXVnVkSE1zWEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmVHRjYmx4dUlDQndjbWwyWVhSbElHaGhibVJzWlZkb1pXVnNJRDBnZDJsMGFFSmhkR05vWldSVmNHUmhkR1Z6S0NobGRtVnVkRG9nVjJobFpXeEZkbVZ1ZENrZ1BUNGdlMXh1SUNBZ0lHVjJaVzUwTG5CeVpYWmxiblJFWldaaGRXeDBLQ2s3WEc1Y2JpQWdJQ0JwWmlBb2FYTlFZVzV1YVc1bktTQjdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdleUJrWld4MFlWZ3NJR1JsYkhSaFdTQjlJRDBnWlhabGJuUTdYRzRnSUNBZ1kyOXVjM1FnZXlCelpXeGxZM1JsWkVWc1pXMWxiblJKWkhNc0lIQnlaWFpwYjNWelUyVnNaV04wWldSRmJHVnRaVzUwU1dSeklIMGdQU0IwYUdsekxuTjBZWFJsTzF4dUlDQWdJQzh2SUc1dmRHVWdkR2hoZENCbGRtVnVkQzVqZEhKc1MyVjVJR2x6SUc1bFkyVnpjMkZ5ZVNCMGJ5Qm9ZVzVrYkdVZ2NHbHVZMmdnZW05dmJXbHVaMXh1SUNBZ0lHbG1JQ2hsZG1WdWRDNXRaWFJoUzJWNUlIeDhJR1YyWlc1MExtTjBjbXhMWlhrcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhOcFoyNGdQU0JOWVhSb0xuTnBaMjRvWkdWc2RHRlpLVHRjYmlBZ0lDQWdJR052Ym5OMElFMUJXRjlUVkVWUUlEMGdNVEE3WEc0Z0lDQWdJQ0JzWlhRZ1pHVnNkR0VnUFNCTllYUm9MbUZpY3loa1pXeDBZVmtwTzF4dUlDQWdJQ0FnYVdZZ0tHUmxiSFJoSUQ0Z1RVRllYMU5VUlZBcElIdGNiaUFnSUNBZ0lDQWdaR1ZzZEdFZ1BTQk5RVmhmVTFSRlVEdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHUmxiSFJoSUNvOUlITnBaMjQ3WEc0Z0lDQWdJQ0JwWmlBb1QySnFaV04wTG10bGVYTW9jSEpsZG1sdmRYTlRaV3hsWTNSbFpFVnNaVzFsYm5SSlpITXBMbXhsYm1kMGFDQWhQVDBnTUNrZ2UxeHVJQ0FnSUNBZ0lDQnpaWFJVYVcxbGIzVjBLQ2dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhObGJHVmpkR1ZrUld4bGJXVnVkRWxrY3pvZ2NISmxkbWx2ZFhOVFpXeGxZM1JsWkVWc1pXMWxiblJKWkhNc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3Y21WMmFXOTFjMU5sYkdWamRHVmtSV3hsYldWdWRFbGtjem9nZTMwc1hHNGdJQ0FnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUgwc0lERXdNREFwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCc1pYUWdibVYzV205dmJTQTlJSFJvYVhNdWMzUmhkR1V1ZW05dmJTNTJZV3gxWlNBdElHUmxiSFJoSUM4Z01UQXdPMXh1SUNBZ0lDQWdMeThnYVc1amNtVmhjMlVnZW05dmJTQnpkR1Z3Y3lCMGFHVWdiVzl5WlNCNmIyOXRaV1F0YVc0Z2QyVWdZWEpsSUNoaGNIQnNhV1Z6SUhSdklENHhNREFsSUc5dWJIa3BYRzRnSUNBZ0lDQnVaWGRhYjI5dElDczlJRTFoZEdndWJHOW5NVEFvVFdGMGFDNXRZWGdvTVN3Z2RHaHBjeTV6ZEdGMFpTNTZiMjl0TG5aaGJIVmxLU2tnS2lBdGMybG5ianRjYmlBZ0lDQWdJQzh2SUhKdmRXNWtJSFJ2SUc1bFlYSmxjM1FnYzNSbGNGeHVJQ0FnSUNBZ2JtVjNXbTl2YlNBOUlFMWhkR2d1Y205MWJtUW9ibVYzV205dmJTQXFJRnBQVDAxZlUxUkZVQ0FxSURFd01Da2dMeUFvV2s5UFRWOVRWRVZRSUNvZ01UQXdLVHRjYmx4dUlDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTZ29jM1JoZEdVcElEMCtJQ2g3WEc0Z0lDQWdJQ0FnSUM0dUxtZGxkRk4wWVhSbFJtOXlXbTl2YlNoY2JpQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMmFXVjNjRzl5ZEZnNklHTjFjbk52Y2xnc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyYVdWM2NHOXlkRms2SUdOMWNuTnZjbGtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnVaWGgwV205dmJUb2daMlYwVG05eWJXRnNhWHBsWkZwdmIyMG9ibVYzV205dmJTa3NYRzRnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQnpkR0YwWlN4Y2JpQWdJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lDQWdjMlZzWldOMFpXUkZiR1Z0Wlc1MFNXUnpPaUI3ZlN4Y2JpQWdJQ0FnSUNBZ2NISmxkbWx2ZFhOVFpXeGxZM1JsWkVWc1pXMWxiblJKWkhNNlhHNGdJQ0FnSUNBZ0lDQWdUMkpxWldOMExtdGxlWE1vYzJWc1pXTjBaV1JGYkdWdFpXNTBTV1J6S1M1c1pXNW5kR2dnSVQwOUlEQmNiaUFnSUNBZ0lDQWdJQ0FnSUQ4Z2MyVnNaV04wWldSRmJHVnRaVzUwU1dSelhHNGdJQ0FnSUNBZ0lDQWdJQ0E2SUhCeVpYWnBiM1Z6VTJWc1pXTjBaV1JGYkdWdFpXNTBTV1J6TEZ4dUlDQWdJQ0FnSUNCemFHOTFiR1JEWVdOb1pVbG5ibTl5WlZwdmIyMDZJSFJ5ZFdVc1hHNGdJQ0FnSUNCOUtTazdYRzRnSUNBZ0lDQjBhR2x6TG5KbGMyVjBVMmh2ZFd4a1EyRmphR1ZKWjI1dmNtVmFiMjl0UkdWaWIzVnVZMlZrS0NrN1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnYzJOeWIyeHNJR2h2Y21sNmIyNTBZV3hzZVNCM2FHVnVJSE5vYVdaMElIQnlaWE56WldSY2JpQWdJQ0JwWmlBb1pYWmxiblF1YzJocFpuUkxaWGtwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9LSHNnZW05dmJTd2djMk55YjJ4c1dDQjlLU0E5UGlBb2UxeHVJQ0FnSUNBZ0lDQXZMeUJ2YmlCTllXTXNJSE5vYVdaMEszZG9aV1ZzSUhSbGJtUnpJSFJ2SUhKbGMzVnNkQ0JwYmlCa1pXeDBZVmhjYmlBZ0lDQWdJQ0FnYzJOeWIyeHNXRG9nYzJOeWIyeHNXQ0F0SUNoa1pXeDBZVmtnZkh3Z1pHVnNkR0ZZS1NBdklIcHZiMjB1ZG1Gc2RXVXNYRzRnSUNBZ0lDQjlLU2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2dvZXlCNmIyOXRMQ0J6WTNKdmJHeFlMQ0J6WTNKdmJHeFpJSDBwSUQwK0lDaDdYRzRnSUNBZ0lDQnpZM0p2Ykd4WU9pQnpZM0p2Ykd4WUlDMGdaR1ZzZEdGWUlDOGdlbTl2YlM1MllXeDFaU3hjYmlBZ0lDQWdJSE5qY205c2JGazZJSE5qY205c2JGa2dMU0JrWld4MFlWa2dMeUI2YjI5dExuWmhiSFZsTEZ4dUlDQWdJSDBwS1R0Y2JpQWdmU2s3WEc1Y2JpQWdjSEpwZG1GMFpTQm5aWFJVWlhoMFYzbHphWGQ1WjFOdVlYQndaV1JVYjBObGJuUmxjbEJ2YzJsMGFXOXVLRnh1SUNBZ0lIZzZJRzUxYldKbGNpeGNiaUFnSUNCNU9pQnVkVzFpWlhJc1hHNGdJQ0FnWVhCd1UzUmhkR1U2SUVGd2NGTjBZWFJsTEZ4dUlDQWdJR05oYm5aaGN6b2dTRlJOVEVOaGJuWmhjMFZzWlcxbGJuUWdmQ0J1ZFd4c0xGeHVJQ0FnSUhOallXeGxPaUJ1ZFcxaVpYSXNYRzRnSUNrZ2UxeHVJQ0FnSUdOdmJuTjBJR1ZzWlcxbGJuUkRiR2xqYTJWa1NXNXphV1JsSUQwZ1oyVjBSV3hsYldWdWRFTnZiblJoYVc1cGJtZFFiM05wZEdsdmJpaGNiaUFnSUNBZ0lIUm9hWE11YzJObGJtVmNiaUFnSUNBZ0lDQWdMbWRsZEVWc1pXMWxiblJ6U1c1amJIVmthVzVuUkdWc1pYUmxaQ2dwWEc0Z0lDQWdJQ0FnSUM1bWFXeDBaWElvS0dWc1pXMWxiblFwSUQwK0lDRnBjMVJsZUhSRmJHVnRaVzUwS0dWc1pXMWxiblFwS1N4Y2JpQWdJQ0FnSUhnc1hHNGdJQ0FnSUNCNUxGeHVJQ0FnSUNrN1hHNGdJQ0FnYVdZZ0tHVnNaVzFsYm5SRGJHbGphMlZrU1c1emFXUmxLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmxiR1Z0Wlc1MFEyVnVkR1Z5V0NBOVhHNGdJQ0FnSUNBZ0lHVnNaVzFsYm5SRGJHbGphMlZrU1c1emFXUmxMbmdnS3lCbGJHVnRaVzUwUTJ4cFkydGxaRWx1YzJsa1pTNTNhV1IwYUNBdklESTdYRzRnSUNBZ0lDQmpiMjV6ZENCbGJHVnRaVzUwUTJWdWRHVnlXU0E5WEc0Z0lDQWdJQ0FnSUdWc1pXMWxiblJEYkdsamEyVmtTVzV6YVdSbExua2dLeUJsYkdWdFpXNTBRMnhwWTJ0bFpFbHVjMmxrWlM1b1pXbG5hSFFnTHlBeU8xeHVJQ0FnSUNBZ1kyOXVjM1FnWkdsemRHRnVZMlZVYjBObGJuUmxjaUE5SUUxaGRHZ3VhSGx3YjNRb1hHNGdJQ0FnSUNBZ0lIZ2dMU0JsYkdWdFpXNTBRMlZ1ZEdWeVdDeGNiaUFnSUNBZ0lDQWdlU0F0SUdWc1pXMWxiblJEWlc1MFpYSlpMRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJR052Ym5OMElHbHpVMjVoY0hCbFpGUnZRMlZ1ZEdWeUlEMWNiaUFnSUNBZ0lDQWdaR2x6ZEdGdVkyVlViME5sYm5SbGNpQThJRlJGV0ZSZlZFOWZRMFZPVkVWU1gxTk9RVkJmVkVoU1JWTklUMHhFTzF4dUlDQWdJQ0FnYVdZZ0tHbHpVMjVoY0hCbFpGUnZRMlZ1ZEdWeUtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIc2dlRG9nZG1sbGQzQnZjblJZTENCNU9pQjJhV1YzY0c5eWRGa2dmU0E5SUhOalpXNWxRMjl2Y21SelZHOVdhV1YzY0c5eWRFTnZiM0prY3loY2JpQWdJQ0FnSUNBZ0lDQjdJSE5qWlc1bFdEb2daV3hsYldWdWRFTmxiblJsY2xnc0lITmpaVzVsV1RvZ1pXeGxiV1Z1ZEVObGJuUmxjbGtnZlN4Y2JpQWdJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpTeGNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnZG1sbGQzQnZjblJZTENCMmFXVjNjRzl5ZEZrc0lHVnNaVzFsYm5SRFpXNTBaWEpZTENCbGJHVnRaVzUwUTJWdWRHVnlXU0I5TzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnYzJGMlpWQnZhVzUwWlhJZ1BTQW9lRG9nYm5WdFltVnlMQ0I1T2lCdWRXMWlaWElzSUdKMWRIUnZiam9nWENKMWNGd2lJSHdnWENKa2IzZHVYQ0lwSUQwK0lIdGNiaUFnSUNCcFppQW9JWGdnZkh3Z0lYa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNCOVhHNGdJQ0FnWTI5dWMzUWdjRzlwYm5SbGNpQTlJSFpwWlhkd2IzSjBRMjl2Y21SelZHOVRZMlZ1WlVOdmIzSmtjeWhjYmlBZ0lDQWdJSHNnWTJ4cFpXNTBXRG9nZUN3Z1kyeHBaVzUwV1RvZ2VTQjlMRnh1SUNBZ0lDQWdkR2hwY3k1emRHRjBaU3hjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdhV1lnS0dselRtRk9LSEJ2YVc1MFpYSXVlQ2tnZkh3Z2FYTk9ZVTRvY0c5cGJuUmxjaTU1S1NrZ2UxeHVJQ0FnSUNBZ0x5OGdjMjl0WlhScGJXVnpJSFJvWlNCd2IybHVkR1Z5SUdkdlpYTWdiMlptSUhOamNtVmxibHh1SUNBZ0lIMWNibHh1SUNBZ0lIUm9hWE11Y0hKdmNITXViMjVRYjJsdWRHVnlWWEJrWVhSbFB5NG9lMXh1SUNBZ0lDQWdjRzlwYm5SbGNpeGNiaUFnSUNBZ0lHSjFkSFJ2Yml4Y2JpQWdJQ0FnSUhCdmFXNTBaWEp6VFdGd09pQm5aWE4wZFhKbExuQnZhVzUwWlhKekxGeHVJQ0FnSUgwcE8xeHVJQ0I5TzF4dVhHNGdJSEJ5YVhaaGRHVWdjbVZ6WlhSVGFHOTFiR1JEWVdOb1pVbG5ibTl5WlZwdmIyMUVaV0p2ZFc1alpXUWdQU0JrWldKdmRXNWpaU2dvS1NBOVBpQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxuVnViVzkxYm5SbFpDa2dlMXh1SUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN0lITm9iM1ZzWkVOaFkyaGxTV2R1YjNKbFdtOXZiVG9nWm1Gc2MyVWdmU2s3WEc0Z0lDQWdmVnh1SUNCOUxDQXpNREFwTzF4dVhHNGdJSEJ5YVhaaGRHVWdkWEJrWVhSbFJFOU5VbVZqZENBOUlDaGpZajg2SUNncElEMCtJSFp2YVdRcElEMCtJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NWxlR05oYkdsa2NtRjNRMjl1ZEdGcGJtVnlVbVZtUHk1amRYSnlaVzUwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JsZUdOaGJHbGtjbUYzUTI5dWRHRnBibVZ5SUQwZ2RHaHBjeTVsZUdOaGJHbGtjbUYzUTI5dWRHRnBibVZ5VW1WbUxtTjFjbkpsYm5RN1hHNGdJQ0FnSUNCamIyNXpkQ0I3WEc0Z0lDQWdJQ0FnSUhkcFpIUm9MRnh1SUNBZ0lDQWdJQ0JvWldsbmFIUXNYRzRnSUNBZ0lDQWdJR3hsWm5RNklHOW1abk5sZEV4bFpuUXNYRzRnSUNBZ0lDQWdJSFJ2Y0RvZ2IyWm1jMlYwVkc5d0xGeHVJQ0FnSUNBZ2ZTQTlJR1Y0WTJGc2FXUnlZWGREYjI1MFlXbHVaWEl1WjJWMFFtOTFibVJwYm1kRGJHbGxiblJTWldOMEtDazdYRzRnSUNBZ0lDQmpiMjV6ZENCN1hHNGdJQ0FnSUNBZ0lIZHBaSFJvT2lCamRYSnlaVzUwVjJsa2RHZ3NYRzRnSUNBZ0lDQWdJR2hsYVdkb2REb2dZM1Z5Y21WdWRFaGxhV2RvZEN4Y2JpQWdJQ0FnSUNBZ2IyWm1jMlYwVkc5d09pQmpkWEp5Wlc1MFQyWm1jMlYwVkc5d0xGeHVJQ0FnSUNBZ0lDQnZabVp6WlhSTVpXWjBPaUJqZFhKeVpXNTBUMlptYzJWMFRHVm1kQ3hjYmlBZ0lDQWdJSDBnUFNCMGFHbHpMbk4wWVhSbE8xeHVYRzRnSUNBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0FnSUhkcFpIUm9JRDA5UFNCamRYSnlaVzUwVjJsa2RHZ2dKaVpjYmlBZ0lDQWdJQ0FnYUdWcFoyaDBJRDA5UFNCamRYSnlaVzUwU0dWcFoyaDBJQ1ltWEc0Z0lDQWdJQ0FnSUc5bVpuTmxkRXhsWm5RZ1BUMDlJR04xY25KbGJuUlBabVp6WlhSTVpXWjBJQ1ltWEc0Z0lDQWdJQ0FnSUc5bVpuTmxkRlJ2Y0NBOVBUMGdZM1Z5Y21WdWRFOW1abk5sZEZSdmNGeHVJQ0FnSUNBZ0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoallpa2dlMXh1SUNBZ0lDQWdJQ0FnSUdOaUtDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtGeHVJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnZDJsa2RHZ3NYRzRnSUNBZ0lDQWdJQ0FnYUdWcFoyaDBMRnh1SUNBZ0lDQWdJQ0FnSUc5bVpuTmxkRXhsWm5Rc1hHNGdJQ0FnSUNBZ0lDQWdiMlptYzJWMFZHOXdMRnh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBb0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ1kySWdKaVlnWTJJb0tUdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNCOU8xeHVYRzRnSUhCMVlteHBZeUJ5WldaeVpYTm9JRDBnS0NrZ1BUNGdlMXh1SUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZXlBdUxpNTBhR2x6TG1kbGRFTmhiblpoYzA5bVpuTmxkSE1vS1NCOUtUdGNiaUFnZlR0Y2JseHVJQ0J3Y21sMllYUmxJR2RsZEVOaGJuWmhjMDltWm5ObGRITW9LVG9nVUdsamF6eEJjSEJUZEdGMFpTd2dYQ0p2Wm1aelpYUlViM0JjSWlCOElGd2liMlptYzJWMFRHVm1kRndpUGlCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11WlhoallXeHBaSEpoZDBOdmJuUmhhVzVsY2xKbFpqOHVZM1Z5Y21WdWRDa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1pYaGpZV3hwWkhKaGQwTnZiblJoYVc1bGNpQTlJSFJvYVhNdVpYaGpZV3hwWkhKaGQwTnZiblJoYVc1bGNsSmxaaTVqZFhKeVpXNTBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2V5QnNaV1owTENCMGIzQWdmU0E5SUdWNFkyRnNhV1J5WVhkRGIyNTBZV2x1WlhJdVoyVjBRbTkxYm1ScGJtZERiR2xsYm5SU1pXTjBLQ2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0J2Wm1aelpYUk1aV1owT2lCc1pXWjBMRnh1SUNBZ0lDQWdJQ0J2Wm1aelpYUlViM0E2SUhSdmNDeGNiaUFnSUNBZ0lIMDdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0J2Wm1aelpYUk1aV1owT2lBd0xGeHVJQ0FnSUNBZ2IyWm1jMlYwVkc5d09pQXdMRnh1SUNBZ0lIMDdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR0Z6ZVc1aklIVndaR0YwWlV4aGJtZDFZV2RsS0NrZ2UxeHVJQ0FnSUdOdmJuTjBJR04xY25KbGJuUk1ZVzVuSUQxY2JpQWdJQ0FnSUd4aGJtZDFZV2RsY3k1bWFXNWtLQ2hzWVc1bktTQTlQaUJzWVc1bkxtTnZaR1VnUFQwOUlIUm9hWE11Y0hKdmNITXViR0Z1WjBOdlpHVXBJSHg4WEc0Z0lDQWdJQ0JrWldaaGRXeDBUR0Z1Wnp0Y2JpQWdJQ0JoZDJGcGRDQnpaWFJNWVc1bmRXRm5aU2hqZFhKeVpXNTBUR0Z1WnlrN1hHNGdJQ0FnZEdocGN5NXpaWFJCY0hCVGRHRjBaU2g3ZlNrN1hHNGdJSDFjYm4xY2JseHVMeThnTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMWNiaTh2SUZSRlUxUWdTRTlQUzFOY2JpOHZJQzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdFhHNWNibVJsWTJ4aGNtVWdaMnh2WW1Gc0lIdGNiaUFnYVc1MFpYSm1ZV05sSUZkcGJtUnZkeUI3WEc0Z0lDQWdhRG9nZTF4dUlDQWdJQ0FnWld4bGJXVnVkSE02SUhKbFlXUnZibXg1SUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzEwN1hHNGdJQ0FnSUNCemRHRjBaVG9nUVhCd1UzUmhkR1U3WEc0Z0lDQWdJQ0J6WlhSVGRHRjBaVG9nVW1WaFkzUXVRMjl0Y0c5dVpXNTBQR0Z1ZVN3Z1FYQndVM1JoZEdVK1cxd2ljMlYwVTNSaGRHVmNJbDA3WEc0Z0lDQWdJQ0JoY0hBNklFbHVjM1JoYm1ObFZIbHdaVHgwZVhCbGIyWWdRWEJ3UGp0Y2JpQWdJQ0FnSUdocGMzUnZjbms2SUVocGMzUnZjbms3WEc0Z0lDQWdmVHRjYmlBZ2ZWeHVmVnh1WEc1cFppQW9YRzRnSUhCeWIyTmxjM011Wlc1MkxrNVBSRVZmUlU1V0lEMDlQU0JGVGxZdVZFVlRWQ0I4ZkZ4dUlDQndjbTlqWlhOekxtVnVkaTVPVDBSRlgwVk9WaUE5UFQwZ1JVNVdMa1JGVmtWTVQxQk5SVTVVWEc0cElIdGNiaUFnZDJsdVpHOTNMbWdnUFNCM2FXNWtiM2N1YUNCOGZDQW9lMzBnWVhNZ1YybHVaRzkzVzF3aWFGd2lYU2s3WEc1Y2JpQWdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblJwWlhNb2QybHVaRzkzTG1nc0lIdGNiaUFnSUNCbGJHVnRaVzUwY3pvZ2UxeHVJQ0FnSUNBZ1kyOXVabWxuZFhKaFlteGxPaUIwY25WbExGeHVJQ0FnSUNBZ1oyVjBLQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWhjSEF1YzJObGJtVXVaMlYwUld4bGJXVnVkSE5KYm1Oc2RXUnBibWRFWld4bGRHVmtLQ2s3WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnYzJWMEtHVnNaVzFsYm5Sek9pQkZlR05oYkdsa2NtRjNSV3hsYldWdWRGdGRLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtRndjQzV6WTJWdVpTNXlaWEJzWVdObFFXeHNSV3hsYldWdWRITW9aV3hsYldWdWRITXBPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQjlMRnh1SUNCOUtUdGNibjFjYm1WNGNHOXlkQ0JrWldaaGRXeDBJRUZ3Y0R0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvQXBwLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9BdmF0YXIudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0F2YXRhci50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJBdmF0YXJcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBBdmF0YXIpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9BdmF0YXJfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9BdmF0YXIuc2NzcyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9BdmF0YXIuc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfQXZhdGFyX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfQXZhdGFyX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdCAqLyBcXFwicmVhY3RcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fKTtcXG5cXG5cXG5cXG5jb25zdCBBdmF0YXIgPSAoeyBjaGlsZHJlbiwgY29sb3IsIGJvcmRlciwgb25DbGljayB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiQXZhdGFyXFxcIiwgc3R5bGU6IHsgYmFja2dyb3VuZDogY29sb3IsIGJvcmRlcjogYDFweCBzb2xpZCAke2JvcmRlcn1gIH0sIG9uQ2xpY2s6IG9uQ2xpY2sgfSwgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSksIHZvaWQgMCkpO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5QmRtRjBZWEl1ZEhONExtcHpJaXdpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN1FVRkJkVUk3UVVGRlJ6dEJRVk51UWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGbExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlF6TkZMRGhGUVVORkxGTkJRVk1zUlVGQlF5eFJRVUZSTEVWQlEyeENMRXRCUVVzc1JVRkJSU3hGUVVGRkxGVkJRVlVzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMR0ZCUVdFc1RVRkJUU3hGUVVGRkxFVkJRVVVzUlVGRE0wUXNUMEZCVHl4RlFVRkZMRTlCUVU4c1owSkJSV1lzVVVGQlVTeFpRVU5NTEVOQlExQXNRMEZCUXlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWpiMjF3YjI1bGJuUnpMMEYyWVhSaGNpNTBjM2cvTmpVd015SmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdYQ0l1TDBGMllYUmhjaTV6WTNOelhDSTdYRzVjYm1sdGNHOXlkQ0JTWldGamRDQm1jbTl0SUZ3aWNtVmhZM1JjSWp0Y2JseHVkSGx3WlNCQmRtRjBZWEpRY205d2N5QTlJSHRjYmlBZ1kyaHBiR1J5Wlc0NklITjBjbWx1Wnp0Y2JpQWdiMjVEYkdsamF6b2dLR1U2SUZKbFlXTjBMazF2ZFhObFJYWmxiblE4U0ZSTlRFUnBka1ZzWlcxbGJuUXNJRTF2ZFhObFJYWmxiblErS1NBOVBpQjJiMmxrTzF4dUlDQmpiMnh2Y2pvZ2MzUnlhVzVuTzF4dUlDQmliM0prWlhJNklITjBjbWx1Wnp0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQkJkbUYwWVhJZ1BTQW9leUJqYUdsc1pISmxiaXdnWTI5c2IzSXNJR0p2Y21SbGNpd2diMjVEYkdsamF5QjlPaUJCZG1GMFlYSlFjbTl3Y3lrZ1BUNGdLRnh1SUNBOFpHbDJYRzRnSUNBZ1kyeGhjM05PWVcxbFBWd2lRWFpoZEdGeVhDSmNiaUFnSUNCemRIbHNaVDE3ZXlCaVlXTnJaM0p2ZFc1a09pQmpiMnh2Y2l3Z1ltOXlaR1Z5T2lCZ01YQjRJSE52Ykdsa0lDUjdZbTl5WkdWeWZXQWdmWDFjYmlBZ0lDQnZia05zYVdOclBYdHZia05zYVdOcmZWeHVJQ0ErWEc0Z0lDQWdlMk5vYVd4a2NtVnVmVnh1SUNBOEwyUnBkajVjYmlrN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvQXZhdGFyLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9CYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGUudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0JhY2tncm91bmRQaWNrZXJBbmREYXJrTW9kZVRvZ2dsZS50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJCYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBCYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGUpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdCAqLyBcXFwicmVhY3RcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG5cXG5cXG5jb25zdCBCYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGUgPSAoeyBhcHBTdGF0ZSwgc2V0QXBwU3RhdGUsIGFjdGlvbk1hbmFnZXIsIHNob3dUaGVtZUJ0biwgfSkgPT4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBzdHlsZTogeyBkaXNwbGF5OiBcXFwiZmxleFxcXCIgfSB9LCB7IGNoaWxkcmVuOiBbYWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXFxcImNoYW5nZVZpZXdCYWNrZ3JvdW5kQ29sb3JcXFwiKSwgc2hvd1RoZW1lQnRuICYmIGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFxcXCJ0b2dnbGVUaGVtZVxcXCIpXSB9KSwgdm9pZCAwKSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlDWVdOclozSnZkVzVrVUdsamEyVnlRVzVrUkdGeWEwMXZaR1ZVYjJkbmJHVXVkSE40TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPMEZCUVRCQ08wRkJTVzVDTEUxQlFVMHNhVU5CUVdsRExFZEJRVWNzUTBGQlF5eEZRVU5vUkN4UlFVRlJMRVZCUTFJc1YwRkJWeXhGUVVOWUxHRkJRV0VzUlVGRFlpeFpRVUZaTEVkQlRXSXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkRTaXdyUlVGQlN5eExRVUZMTEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGRkxHbENRVU0xUWl4aFFVRmhMRU5CUVVNc1dVRkJXU3hEUVVGRExESkNRVUV5UWl4RFFVRkRMRVZCUTNaRUxGbEJRVmtzU1VGQlNTeGhRVUZoTEVOQlFVTXNXVUZCV1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhoUVVOMFJDeERRVU5RTEVOQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5Q1lXTnJaM0p2ZFc1a1VHbGphMlZ5UVc1a1JHRnlhMDF2WkdWVWIyZG5iR1V1ZEhONFAyVmhZMk1pWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUZKbFlXTjBJR1p5YjIwZ1hDSnlaV0ZqZEZ3aU8xeHVhVzF3YjNKMElIc2dRV04wYVc5dVRXRnVZV2RsY2lCOUlHWnliMjBnWENJdUxpOWhZM1JwYjI1ekwyMWhibUZuWlhKY0lqdGNibWx0Y0c5eWRDQjdJRUZ3Y0ZOMFlYUmxJSDBnWm5KdmJTQmNJaTR1TDNSNWNHVnpYQ0k3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JDWVdOclozSnZkVzVrVUdsamEyVnlRVzVrUkdGeWEwMXZaR1ZVYjJkbmJHVWdQU0FvZTF4dUlDQmhjSEJUZEdGMFpTeGNiaUFnYzJWMFFYQndVM1JoZEdVc1hHNGdJR0ZqZEdsdmJrMWhibUZuWlhJc1hHNGdJSE5vYjNkVWFHVnRaVUowYml4Y2JuMDZJSHRjYmlBZ1lXTjBhVzl1VFdGdVlXZGxjam9nUVdOMGFXOXVUV0Z1WVdkbGNqdGNiaUFnWVhCd1UzUmhkR1U2SUVGd2NGTjBZWFJsTzF4dUlDQnpaWFJCY0hCVGRHRjBaVG9nVW1WaFkzUXVRMjl0Y0c5dVpXNTBQR0Z1ZVN3Z1FYQndVM1JoZEdVK1cxd2ljMlYwVTNSaGRHVmNJbDA3WEc0Z0lITm9iM2RVYUdWdFpVSjBiam9nWW05dmJHVmhianRjYm4wcElEMCtJQ2hjYmlBZ1BHUnBkaUJ6ZEhsc1pUMTdleUJrYVhOd2JHRjVPaUJjSW1ac1pYaGNJaUI5ZlQ1Y2JpQWdJQ0I3WVdOMGFXOXVUV0Z1WVdkbGNpNXlaVzVrWlhKQlkzUnBiMjRvWENKamFHRnVaMlZXYVdWM1FtRmphMmR5YjNWdVpFTnZiRzl5WENJcGZWeHVJQ0FnSUh0emFHOTNWR2hsYldWQ2RHNGdKaVlnWVdOMGFXOXVUV0Z1WVdkbGNpNXlaVzVrWlhKQlkzUnBiMjRvWENKMGIyZG5iR1ZVYUdWdFpWd2lLWDFjYmlBZ1BDOWthWFkrWEc0cE8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvQmFja2dyb3VuZFBpY2tlckFuZERhcmtNb2RlVG9nZ2xlLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9CdXR0b25JY29uU2VsZWN0LnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvQnV0dG9uSWNvblNlbGVjdC50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiQnV0dG9uSWNvblNlbGVjdFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEJ1dHRvbkljb25TZWxlY3QpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIGNsc3ggKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jbHN4L2Rpc3QvY2xzeC5tLmpzXFxcIik7XFxuXFxuXFxuLy8gVE9ETzogSXQgbWlnaHQgYmUgXFxcImNsZXZlclxcXCIgdG8gYWRkIG9wdGlvbi5pY29uIHRvIHRoZSBleGlzdGluZyBjb21wb25lbnQgPEJ1dHRvblNlbGVjdCAvPlxcbmNvbnN0IEJ1dHRvbkljb25TZWxlY3QgPSAoeyBvcHRpb25zLCB2YWx1ZSwgb25DaGFuZ2UsIGdyb3VwLCB9KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiYnV0dG9uTGlzdCBidXR0b25MaXN0SWNvblxcXCIgfSwgeyBjaGlsZHJlbjogb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImxhYmVsXFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogKDAsY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fW1xcXCJkZWZhdWx0XFxcIl0pKHsgYWN0aXZlOiB2YWx1ZSA9PT0gb3B0aW9uLnZhbHVlIH0pLCB0aXRsZTogb3B0aW9uLnRleHQgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiaW5wdXRcXFwiLCB7IHR5cGU6IFxcXCJyYWRpb1xcXCIsIG5hbWU6IGdyb3VwLCBvbkNoYW5nZTogKCkgPT4gb25DaGFuZ2Uob3B0aW9uLnZhbHVlKSwgY2hlY2tlZDogdmFsdWUgPT09IG9wdGlvbi52YWx1ZSwgXFxcImRhdGEtdGVzdGlkXFxcIjogb3B0aW9uLnRlc3RJZCB9LCB2b2lkIDApLCBvcHRpb24uaWNvbl0gfSksIG9wdGlvbi50ZXh0KSkpIH0pLCB2b2lkIDApKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUNkWFIwYjI1SlkyOXVVMlZzWldOMExuUnplQzVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN08wRkJRWGRDTzBGQlJYaENMREpHUVVFeVJqdEJRVU53Uml4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVOQlFXMUNMRVZCUTJwRUxFOUJRVThzUlVGRFVDeExRVUZMTEVWQlEwd3NVVUZCVVN4RlFVTlNMRXRCUVVzc1IwRk5UaXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVU5LTERoRlFVRkxMRk5CUVZNc1JVRkJReXd5UWtGQk1rSXNaMEpCUTNaRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRM1pDTEdsR1FVVkZMRk5CUVZNc1JVRkJSU3huUkVGQlNTeERRVUZETEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1MwRkJTeXhOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNSVUZEYmtRc1MwRkJTeXhGUVVGRkxFMUJRVTBzUTBGQlF5eEpRVUZKTEdsQ1FVVnNRaXhyUlVGRFJTeEpRVUZKTEVWQlFVTXNUMEZCVHl4RlFVTmFMRWxCUVVrc1JVRkJSU3hMUVVGTExFVkJRMWdzVVVGQlVTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlEzUkRMRTlCUVU4c1JVRkJSU3hMUVVGTExFdEJRVXNzVFVGQlRTeERRVUZETEV0QlFVc3NhVUpCUTJ4Q0xFMUJRVTBzUTBGQlF5eE5RVUZOTEZkQlF6RkNMRVZCUTBRc1RVRkJUU3hEUVVGRExFbEJRVWtzVFVGWVVDeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFWbFdMRU5CUTFRc1EwRkJReXhaUVVORkxFTkJRMUFzUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDBKMWRIUnZia2xqYjI1VFpXeGxZM1F1ZEhONFB6VmpPVFVpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUdOc2MzZ2dabkp2YlNCY0ltTnNjM2hjSWp0Y2JseHVMeThnVkU5RVR6b2dTWFFnYldsbmFIUWdZbVVnWENKamJHVjJaWEpjSWlCMGJ5QmhaR1FnYjNCMGFXOXVMbWxqYjI0Z2RHOGdkR2hsSUdWNGFYTjBhVzVuSUdOdmJYQnZibVZ1ZENBOFFuVjBkRzl1VTJWc1pXTjBJQzgrWEc1bGVIQnZjblFnWTI5dWMzUWdRblYwZEc5dVNXTnZibE5sYkdWamRDQTlJRHhVSUdWNGRHVnVaSE1nVDJKcVpXTjBQaWg3WEc0Z0lHOXdkR2x2Ym5Nc1hHNGdJSFpoYkhWbExGeHVJQ0J2YmtOb1lXNW5aU3hjYmlBZ1ozSnZkWEFzWEc1OU9pQjdYRzRnSUc5d2RHbHZibk02SUhzZ2RtRnNkV1U2SUZRN0lIUmxlSFE2SUhOMGNtbHVaenNnYVdOdmJqb2dTbE5ZTGtWc1pXMWxiblE3SUhSbGMzUkpaRDg2SUhOMGNtbHVaeUI5VzEwN1hHNGdJSFpoYkhWbE9pQlVJSHdnYm5Wc2JEdGNiaUFnYjI1RGFHRnVaMlU2SUNoMllXeDFaVG9nVkNrZ1BUNGdkbTlwWkR0Y2JpQWdaM0p2ZFhBNklITjBjbWx1Wnp0Y2JuMHBJRDArSUNoY2JpQWdQR1JwZGlCamJHRnpjMDVoYldVOVhDSmlkWFIwYjI1TWFYTjBJR0oxZEhSdmJreHBjM1JKWTI5dVhDSStYRzRnSUNBZ2UyOXdkR2x2Ym5NdWJXRndLQ2h2Y0hScGIyNHBJRDArSUNoY2JpQWdJQ0FnSUR4c1lXSmxiRnh1SUNBZ0lDQWdJQ0JyWlhrOWUyOXdkR2x2Ymk1MFpYaDBmVnh1SUNBZ0lDQWdJQ0JqYkdGemMwNWhiV1U5ZTJOc2MzZ29leUJoWTNScGRtVTZJSFpoYkhWbElEMDlQU0J2Y0hScGIyNHVkbUZzZFdVZ2ZTbDlYRzRnSUNBZ0lDQWdJSFJwZEd4bFBYdHZjSFJwYjI0dWRHVjRkSDFjYmlBZ0lDQWdJRDVjYmlBZ0lDQWdJQ0FnUEdsdWNIVjBYRzRnSUNBZ0lDQWdJQ0FnZEhsd1pUMWNJbkpoWkdsdlhDSmNiaUFnSUNBZ0lDQWdJQ0J1WVcxbFBYdG5jbTkxY0gxY2JpQWdJQ0FnSUNBZ0lDQnZia05vWVc1blpUMTdLQ2tnUFQ0Z2IyNURhR0Z1WjJVb2IzQjBhVzl1TG5aaGJIVmxLWDFjYmlBZ0lDQWdJQ0FnSUNCamFHVmphMlZrUFh0MllXeDFaU0E5UFQwZ2IzQjBhVzl1TG5aaGJIVmxmVnh1SUNBZ0lDQWdJQ0FnSUdSaGRHRXRkR1Z6ZEdsa1BYdHZjSFJwYjI0dWRHVnpkRWxrZlZ4dUlDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ0lDQjdiM0IwYVc5dUxtbGpiMjU5WEc0Z0lDQWdJQ0E4TDJ4aFltVnNQbHh1SUNBZ0lDa3BmVnh1SUNBOEwyUnBkajVjYmlrN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvQnV0dG9uSWNvblNlbGVjdC50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvQ2FyZC50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0NhcmQudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkNhcmRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBDYXJkKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBvcGVuLWNvbG9yICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvb3Blbi1jb2xvci9vcGVuLWNvbG9yLmpzb25cXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0NhcmRfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9DYXJkLnNjc3MgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvQ2FyZC5zY3NzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9DYXJkX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfQ2FyZF9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18pO1xcblxcblxcblxcbmNvbnN0IENhcmQgPSAoeyBjaGlsZHJlbiwgY29sb3IgfSkgPT4ge1xcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcIkNhcmRcXFwiLCBzdHlsZToge1xcbiAgICAgICAgICAgIFtcXFwiLS1jYXJkLWNvbG9yXFxcIl06IGNvbG9yID09PSBcXFwicHJpbWFyeVxcXCIgPyBcXFwidmFyKC0tY29sb3ItcHJpbWFyeSlcXFwiIDogb3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fW2NvbG9yXVs3XSxcXG4gICAgICAgICAgICBbXFxcIi0tY2FyZC1jb2xvci1kYXJrZXJcXFwiXTogY29sb3IgPT09IFxcXCJwcmltYXJ5XFxcIlxcbiAgICAgICAgICAgICAgICA/IFxcXCJ2YXIoLS1jb2xvci1wcmltYXJ5LWRhcmtlcilcXFwiXFxuICAgICAgICAgICAgICAgIDogb3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fW2NvbG9yXVs4XSxcXG4gICAgICAgICAgICBbXFxcIi0tY2FyZC1jb2xvci1kYXJrZXN0XFxcIl06IGNvbG9yID09PSBcXFwicHJpbWFyeVxcXCJcXG4gICAgICAgICAgICAgICAgPyBcXFwidmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXN0KVxcXCJcXG4gICAgICAgICAgICAgICAgOiBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bY29sb3JdWzldLFxcbiAgICAgICAgfSB9LCB7IGNoaWxkcmVuOiBjaGlsZHJlbiB9KSwgdm9pZCAwKSk7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OURZWEprTG5SemVDNXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN1FVRkJiVU03UVVGRlpEdEJRVVZrTEUxQlFVMHNTVUZCU1N4SFFVVmFMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVXNSVUZCUlR0SlFVTXpRaXhQUVVGUExFTkJRMHdzT0VWQlEwVXNVMEZCVXl4RlFVRkRMRTFCUVUwc1JVRkRhRUlzUzBGQlN5eEZRVUZGTzFsQlEwd3NRMEZCUXl4alFVRnhRaXhEUVVGRExFVkJRM0pDTEV0QlFVc3NTMEZCU3l4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExITkNRVUZ6UWl4RFFVRkRMRU5CUVVNc1EwRkJReXgxUTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOd1JTeERRVUZETEhGQ1FVRTBRaXhEUVVGRExFVkJRelZDTEV0QlFVc3NTMEZCU3l4VFFVRlRPMmRDUVVOcVFpeERRVUZETEVOQlFVTXNOa0pCUVRaQ08yZENRVU12UWl4RFFVRkRMRU5CUVVNc2RVTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRla0lzUTBGQlF5eHpRa0ZCTmtJc1EwRkJReXhGUVVNM1FpeExRVUZMTEV0QlFVc3NVMEZCVXp0blFrRkRha0lzUTBGQlF5eERRVUZETERoQ1FVRTRRanRuUWtGRGFFTXNRMEZCUXl4RFFVRkRMSFZEUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUXpGQ0xHZENRVVZCTEZGQlFWRXNXVUZEVEN4RFFVTlFMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OURZWEprTG5SemVEOWxNR1ZqSWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCUGNHVnVRMjlzYjNJZ1puSnZiU0JjSW05d1pXNHRZMjlzYjNKY0lqdGNibHh1YVcxd2IzSjBJRndpTGk5RFlYSmtMbk5qYzNOY0lqdGNibHh1Wlhod2IzSjBJR052Ym5OMElFTmhjbVE2SUZKbFlXTjBMa1pEUEh0Y2JpQWdZMjlzYjNJNklHdGxlVzltSUU5d1pXNURiMnh2Y2lCOElGd2ljSEpwYldGeWVWd2lPMXh1ZlQ0Z1BTQW9leUJqYUdsc1pISmxiaXdnWTI5c2IzSWdmU2tnUFQ0Z2UxeHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lEeGthWFpjYmlBZ0lDQWdJR05zWVhOelRtRnRaVDFjSWtOaGNtUmNJbHh1SUNBZ0lDQWdjM1I1YkdVOWUzdGNiaUFnSUNBZ0lDQWdXMXdpTFMxallYSmtMV052Ykc5eVhDSWdZWE1nWVc1NVhUcGNiaUFnSUNBZ0lDQWdJQ0JqYjJ4dmNpQTlQVDBnWENKd2NtbHRZWEo1WENJZ1B5QmNJblpoY2lndExXTnZiRzl5TFhCeWFXMWhjbmtwWENJZ09pQlBjR1Z1UTI5c2IzSmJZMjlzYjNKZFd6ZGRMRnh1SUNBZ0lDQWdJQ0JiWENJdExXTmhjbVF0WTI5c2IzSXRaR0Z5YTJWeVhDSWdZWE1nWVc1NVhUcGNiaUFnSUNBZ0lDQWdJQ0JqYjJ4dmNpQTlQVDBnWENKd2NtbHRZWEo1WENKY2JpQWdJQ0FnSUNBZ0lDQWdJRDhnWENKMllYSW9MUzFqYjJ4dmNpMXdjbWx0WVhKNUxXUmhjbXRsY2lsY0lseHVJQ0FnSUNBZ0lDQWdJQ0FnT2lCUGNHVnVRMjlzYjNKYlkyOXNiM0pkV3poZExGeHVJQ0FnSUNBZ0lDQmJYQ0l0TFdOaGNtUXRZMjlzYjNJdFpHRnlhMlZ6ZEZ3aUlHRnpJR0Z1ZVYwNlhHNGdJQ0FnSUNBZ0lDQWdZMjlzYjNJZ1BUMDlJRndpY0hKcGJXRnllVndpWEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JRndpZG1GeUtDMHRZMjlzYjNJdGNISnBiV0Z5ZVMxa1lYSnJaWE4wS1Z3aVhHNGdJQ0FnSUNBZ0lDQWdJQ0E2SUU5d1pXNURiMnh2Y2x0amIyeHZjbDFiT1Ywc1hHNGdJQ0FnSUNCOWZWeHVJQ0FnSUQ1Y2JpQWdJQ0FnSUh0amFHbHNaSEpsYm4xY2JpQWdJQ0E4TDJScGRqNWNiaUFnS1R0Y2JuMDdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0NhcmQudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0NoZWNrYm94SXRlbS50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvQ2hlY2tib3hJdGVtLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkNoZWNrYm94SXRlbVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIENoZWNrYm94SXRlbSlcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0ICovIFxcXCJyZWFjdFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBjbHN4ICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY2xzeC9kaXN0L2Nsc3gubS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vaWNvbnMgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvaWNvbnMudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9DaGVja2JveEl0ZW1fc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9DaGVja2JveEl0ZW0uc2NzcyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9DaGVja2JveEl0ZW0uc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfQ2hlY2tib3hJdGVtX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfQ2hlY2tib3hJdGVtX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyk7XFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgQ2hlY2tib3hJdGVtID0gKHsgY2hpbGRyZW4sIGNoZWNrZWQsIG9uQ2hhbmdlLCBjbGFzc05hbWUgfSkgPT4ge1xcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6ICgwLGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1tcXFwiZGVmYXVsdFxcXCJdKShcXFwiQ2hlY2tib3hcXFwiLCBjbGFzc05hbWUsIHsgXFxcImlzLWNoZWNrZWRcXFwiOiBjaGVja2VkIH0pLCBvbkNsaWNrOiAoZXZlbnQpID0+IHtcXG4gICAgICAgICAgICBvbkNoYW5nZSghY2hlY2tlZCwgZXZlbnQpO1xcbiAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQucXVlcnlTZWxlY3RvcihcXFwiLkNoZWNrYm94LWJveFxcXCIpLmZvY3VzKCk7XFxuICAgICAgICB9IH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImJ1dHRvblxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJDaGVja2JveC1ib3hcXFwiLCByb2xlOiBcXFwiY2hlY2tib3hcXFwiLCBcXFwiYXJpYS1jaGVja2VkXFxcIjogY2hlY2tlZCB9LCB7IGNoaWxkcmVuOiBfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5jaGVja0ljb24gfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcIkNoZWNrYm94LWxhYmVsXFxcIiB9LCB7IGNoaWxkcmVuOiBjaGlsZHJlbiB9KSwgdm9pZCAwKV0gfSksIHZvaWQgMCkpO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlEYUdWamEySnZlRWwwWlcwdWRITjRMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPenRCUVVFd1FqdEJRVU5HTzBGQlExazdRVUZGVUR0QlFVVjBRaXhOUVVGTkxGbEJRVmtzUjBGSmNFSXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFVkJRVVVzVVVGQlVTeEZRVUZGTEZOQlFWTXNSVUZCUlN4RlFVRkZMRVZCUVVVN1NVRkRiRVFzVDBGQlR5eERRVU5NTEN0RlFVTkZMRk5CUVZNc1JVRkJSU3huUkVGQlNTeERRVUZETEZWQlFWVXNSVUZCUlN4VFFVRlRMRVZCUVVVc1JVRkJSU3haUVVGWkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVOQlFVTXNSVUZEYWtVc1QwRkJUeXhGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVTdXVUZEYWtJc1VVRkJVU3hEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUlhaQ0xFdEJRVXNzUTBGQlF5eGhRVUZuUXl4RFFVRkRMR0ZCUVdFc1EwRkRia1FzWlVGQlpTeERRVVZzUWl4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJRMW9zUTBGQlF5eHBRa0ZGUkN4cFJrRkJVU3hUUVVGVExFVkJRVU1zWTBGQll5eEZRVUZETEVsQlFVa3NSVUZCUXl4VlFVRlZMR3RDUVVGbExFOUJRVThzWjBKQlEyNUZMRFpEUVVGVExGbEJRMGdzUlVGRFZDdzRSVUZCU3l4VFFVRlRMRVZCUVVNc1owSkJRV2RDTEdkQ1FVRkZMRkZCUVZFc1dVRkJUeXhoUVVNMVF5eERRVU5RTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlEYUdWamEySnZlRWwwWlcwdWRITjRQemd5TkdJaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElGSmxZV04wSUdaeWIyMGdYQ0p5WldGamRGd2lPMXh1YVcxd2IzSjBJR05zYzNnZ1puSnZiU0JjSW1Oc2MzaGNJanRjYm1sdGNHOXlkQ0I3SUdOb1pXTnJTV052YmlCOUlHWnliMjBnWENJdUwybGpiMjV6WENJN1hHNWNibWx0Y0c5eWRDQmNJaTR2UTJobFkydGliM2hKZEdWdExuTmpjM05jSWp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUVOb1pXTnJZbTk0U1hSbGJUb2dVbVZoWTNRdVJrTThlMXh1SUNCamFHVmphMlZrT2lCaWIyOXNaV0Z1TzF4dUlDQnZia05vWVc1blpUb2dLR05vWldOclpXUTZJR0p2YjJ4bFlXNHNJR1YyWlc1ME9pQlNaV0ZqZEM1TmIzVnpaVVYyWlc1MEtTQTlQaUIyYjJsa08xeHVJQ0JqYkdGemMwNWhiV1UvT2lCemRISnBibWM3WEc1OVBpQTlJQ2g3SUdOb2FXeGtjbVZ1TENCamFHVmphMlZrTENCdmJrTm9ZVzVuWlN3Z1kyeGhjM05PWVcxbElIMHBJRDArSUh0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNBOFpHbDJYRzRnSUNBZ0lDQmpiR0Z6YzA1aGJXVTllMk5zYzNnb1hDSkRhR1ZqYTJKdmVGd2lMQ0JqYkdGemMwNWhiV1VzSUhzZ1hDSnBjeTFqYUdWamEyVmtYQ0k2SUdOb1pXTnJaV1FnZlNsOVhHNGdJQ0FnSUNCdmJrTnNhV05yUFhzb1pYWmxiblFwSUQwK0lIdGNiaUFnSUNBZ0lDQWdiMjVEYUdGdVoyVW9JV05vWldOclpXUXNJR1YyWlc1MEtUdGNiaUFnSUNBZ0lDQWdLRnh1SUNBZ0lDQWdJQ0FnSUNobGRtVnVkQzVqZFhKeVpXNTBWR0Z5WjJWMElHRnpJRWhVVFV4RWFYWkZiR1Z0Wlc1MEtTNXhkV1Z5ZVZObGJHVmpkRzl5S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdYQ0l1UTJobFkydGliM2d0WW05NFhDSXNYRzRnSUNBZ0lDQWdJQ0FnS1NCaGN5QklWRTFNUW5WMGRHOXVSV3hsYldWdWRGeHVJQ0FnSUNBZ0lDQXBMbVp2WTNWektDazdYRzRnSUNBZ0lDQjlmVnh1SUNBZ0lENWNiaUFnSUNBZ0lEeGlkWFIwYjI0Z1kyeGhjM05PWVcxbFBWd2lRMmhsWTJ0aWIzZ3RZbTk0WENJZ2NtOXNaVDFjSW1Ob1pXTnJZbTk0WENJZ1lYSnBZUzFqYUdWamEyVmtQWHRqYUdWamEyVmtmVDVjYmlBZ0lDQWdJQ0FnZTJOb1pXTnJTV052Ym4xY2JpQWdJQ0FnSUR3dlluVjBkRzl1UGx4dUlDQWdJQ0FnUEdScGRpQmpiR0Z6YzA1aGJXVTlYQ0pEYUdWamEySnZlQzFzWVdKbGJGd2lQbnRqYUdsc1pISmxibjA4TDJScGRqNWNiaUFnSUNBOEwyUnBkajVjYmlBZ0tUdGNibjA3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9DaGVja2JveEl0ZW0udHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0NsZWFyQ2FudmFzLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0NsZWFyQ2FudmFzLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0ICovIFxcXCJyZWFjdFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0FwcCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9BcHAudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9pY29ucyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9pY29ucy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vVG9vbEJ1dHRvbiAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfQ29uZmlybURpYWxvZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Db25maXJtRGlhbG9nICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0NvbmZpcm1EaWFsb2cudHN4XFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgQ2xlYXJDYW52YXMgPSAoeyBvbkNvbmZpcm0gfSkgPT4ge1xcbiAgICBjb25zdCBbc2hvd0RpYWxvZywgc2V0U2hvd0RpYWxvZ10gPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZVN0YXRlKShmYWxzZSk7XFxuICAgIGNvbnN0IHRvZ2dsZURpYWxvZyA9ICgpID0+IHtcXG4gICAgICAgIHNldFNob3dEaWFsb2coIXNob3dEaWFsb2cpO1xcbiAgICB9O1xcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykocmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GcmFnbWVudCwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLlRvb2xCdXR0b24sIHsgdHlwZTogXFxcImJ1dHRvblxcXCIsIGljb246IF9pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnRyYXNoLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiYnV0dG9ucy5jbGVhclJlc2V0XFxcIiksIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiYnV0dG9ucy5jbGVhclJlc2V0XFxcIiksIHNob3dBcmlhTGFiZWw6ICgwLF9BcHBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy51c2VJc01vYmlsZSkoKSwgb25DbGljazogdG9nZ2xlRGlhbG9nLCBcXFwiZGF0YS10ZXN0aWRcXFwiOiBcXFwiY2xlYXItY2FudmFzLWJ1dHRvblxcXCIgfSwgdm9pZCAwKSwgc2hvd0RpYWxvZyAmJiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9Db25maXJtRGlhbG9nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19bXFxcImRlZmF1bHRcXFwiXSwgT2JqZWN0LmFzc2lnbih7IG9uQ29uZmlybTogKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgb25Db25maXJtKCk7XFxuICAgICAgICAgICAgICAgICAgICB0b2dnbGVEaWFsb2coKTtcXG4gICAgICAgICAgICAgICAgfSwgb25DYW5jZWw6IHRvZ2dsZURpYWxvZywgdGl0bGU6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImNsZWFyQ2FudmFzRGlhbG9nLnRpdGxlXFxcIikgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwicFxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJjbGVhci1jYW52YXNfX2NvbnRlbnRcXFwiIH0sIHsgY2hpbGRyZW46IFtcXFwiIFxcXCIsICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImFsZXJ0cy5jbGVhclJlc2V0XFxcIildIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApKV0gfSwgdm9pZCAwKSk7XFxufTtcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKENsZWFyQ2FudmFzKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OURiR1ZoY2tOaGJuWmhjeTUwYzNndWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3pzN096dEJRVUZwUXp0QlFVTk1PMEZCUTFFN1FVRkRTanRCUVVOVk8wRkJSVVU3UVVGRk5VTXNUVUZCVFN4WFFVRlhMRWRCUVVjc1EwRkJReXhGUVVGRkxGTkJRVk1zUlVGQk5rSXNSVUZCUlN4RlFVRkZPMGxCUXk5RUxFMUJRVTBzUTBGQlF5eFZRVUZWTEVWQlFVVXNZVUZCWVN4RFFVRkRMRWRCUVVjc0swTkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTndSQ3hOUVVGTkxGbEJRVmtzUjBGQlJ5eEhRVUZITEVWQlFVVTdVVUZEZUVJc1lVRkJZU3hEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdTVUZETjBJc1EwRkJReXhEUVVGRE8wbEJSVVlzVDBGQlR5eERRVU5NTERoSVFVTkZMSFZFUVVGRExHMUVRVUZWTEVsQlExUXNTVUZCU1N4RlFVRkRMRkZCUVZFc1JVRkRZaXhKUVVGSkxFVkJRVVVzZVVOQlFVc3NSVUZEV0N4TFFVRkxMRVZCUVVVc2QwTkJRVU1zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhuUWtGRGJFSXNkME5CUVVNc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4RlFVTnVReXhoUVVGaExFVkJRVVVzYVVSQlFWY3NSVUZCUlN4RlFVTTFRaXhQUVVGUExFVkJRVVVzV1VGQldTeHBRa0ZEVkN4eFFrRkJjVUlzVjBGRGFrTXNSVUZGUkN4VlFVRlZMRWxCUVVrc1EwRkRZaXgxUkVGQlF5eHpSRUZCWVN4clFrRkRXaXhUUVVGVExFVkJRVVVzUjBGQlJ5eEZRVUZGTzI5Q1FVTmtMRk5CUVZNc1JVRkJSU3hEUVVGRE8yOUNRVU5hTEZsQlFWa3NSVUZCUlN4RFFVRkRPMmRDUVVOcVFpeERRVUZETEVWQlEwUXNVVUZCVVN4RlFVRkZMRmxCUVZrc1JVRkRkRUlzUzBGQlN5eEZRVUZGTEhkRFFVRkRMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNaMEpCUlc1RExEWkZRVUZITEZOQlFWTXNSVUZCUXl4MVFrRkJkVUlzYzBKQlFVY3NkME5CUVVNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4aFFVRkxMRmxCUTNCRUxFTkJRMnBDTEZsQlEwRXNRMEZEU2l4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRE8wRkJSVVlzYVVWQlFXVXNWMEZCVnl4RlFVRkRJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJOdmJYQnZibVZ1ZEhNdlEyeGxZWEpEWVc1MllYTXVkSE40UDJWbFltRWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnZFhObFUzUmhkR1VnZlNCbWNtOXRJRndpY21WaFkzUmNJanRjYm1sdGNHOXlkQ0I3SUhRZ2ZTQm1jbTl0SUZ3aUxpNHZhVEU0Ymx3aU8xeHVhVzF3YjNKMElIc2dkWE5sU1hOTmIySnBiR1VnZlNCbWNtOXRJRndpTGk5QmNIQmNJanRjYm1sdGNHOXlkQ0I3SUhSeVlYTm9JSDBnWm5KdmJTQmNJaTR2YVdOdmJuTmNJanRjYm1sdGNHOXlkQ0I3SUZSdmIyeENkWFIwYjI0Z2ZTQm1jbTl0SUZ3aUxpOVViMjlzUW5WMGRHOXVYQ0k3WEc1Y2JtbHRjRzl5ZENCRGIyNW1hWEp0UkdsaGJHOW5JR1p5YjIwZ1hDSXVMME52Ym1acGNtMUVhV0ZzYjJkY0lqdGNibHh1WTI5dWMzUWdRMnhsWVhKRFlXNTJZWE1nUFNBb2V5QnZia052Ym1acGNtMGdmVG9nZXlCdmJrTnZibVpwY20wNklDZ3BJRDArSUhadmFXUWdmU2tnUFQ0Z2UxeHVJQ0JqYjI1emRDQmJjMmh2ZDBScFlXeHZaeXdnYzJWMFUyaHZkMFJwWVd4dloxMGdQU0IxYzJWVGRHRjBaU2htWVd4elpTazdYRzRnSUdOdmJuTjBJSFJ2WjJkc1pVUnBZV3h2WnlBOUlDZ3BJRDArSUh0Y2JpQWdJQ0J6WlhSVGFHOTNSR2xoYkc5bktDRnphRzkzUkdsaGJHOW5LVHRjYmlBZ2ZUdGNibHh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJRHcrWEc0Z0lDQWdJQ0E4Vkc5dmJFSjFkSFJ2Ymx4dUlDQWdJQ0FnSUNCMGVYQmxQVndpWW5WMGRHOXVYQ0pjYmlBZ0lDQWdJQ0FnYVdOdmJqMTdkSEpoYzJoOVhHNGdJQ0FnSUNBZ0lIUnBkR3hsUFh0MEtGd2lZblYwZEc5dWN5NWpiR1ZoY2xKbGMyVjBYQ0lwZlZ4dUlDQWdJQ0FnSUNCaGNtbGhMV3hoWW1Wc1BYdDBLRndpWW5WMGRHOXVjeTVqYkdWaGNsSmxjMlYwWENJcGZWeHVJQ0FnSUNBZ0lDQnphRzkzUVhKcFlVeGhZbVZzUFh0MWMyVkpjMDF2WW1sc1pTZ3BmVnh1SUNBZ0lDQWdJQ0J2YmtOc2FXTnJQWHQwYjJkbmJHVkVhV0ZzYjJkOVhHNGdJQ0FnSUNBZ0lHUmhkR0V0ZEdWemRHbGtQVndpWTJ4bFlYSXRZMkZ1ZG1GekxXSjFkSFJ2Ymx3aVhHNGdJQ0FnSUNBdlBseHVYRzRnSUNBZ0lDQjdjMmh2ZDBScFlXeHZaeUFtSmlBb1hHNGdJQ0FnSUNBZ0lEeERiMjVtYVhKdFJHbGhiRzluWEc0Z0lDQWdJQ0FnSUNBZ2IyNURiMjVtYVhKdFBYc29LU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2YmtOdmJtWnBjbTBvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJ2WjJkc1pVUnBZV3h2WnlncE8xeHVJQ0FnSUNBZ0lDQWdJSDE5WEc0Z0lDQWdJQ0FnSUNBZ2IyNURZVzVqWld3OWUzUnZaMmRzWlVScFlXeHZaMzFjYmlBZ0lDQWdJQ0FnSUNCMGFYUnNaVDE3ZENoY0ltTnNaV0Z5UTJGdWRtRnpSR2xoYkc5bkxuUnBkR3hsWENJcGZWeHVJQ0FnSUNBZ0lDQStYRzRnSUNBZ0lDQWdJQ0FnUEhBZ1kyeGhjM05PWVcxbFBWd2lZMnhsWVhJdFkyRnVkbUZ6WDE5amIyNTBaVzUwWENJK0lIdDBLRndpWVd4bGNuUnpMbU5zWldGeVVtVnpaWFJjSWlsOVBDOXdQbHh1SUNBZ0lDQWdJQ0E4TDBOdmJtWnBjbTFFYVdGc2IyYytYRzRnSUNBZ0lDQXBmVnh1SUNBZ0lEd3ZQbHh1SUNBcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdSbFptRjFiSFFnUTJ4bFlYSkRZVzUyWVhNN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvQ2xlYXJDYW52YXMudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0NvbGxhYkJ1dHRvbi50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvQ29sbGFiQnV0dG9uLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIGNsc3ggKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jbHN4L2Rpc3QvY2xzeC5tLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1Rvb2xCdXR0b24gKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVG9vbEJ1dHRvbi50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL0FwcCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9BcHAudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9pY29ucyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9pY29ucy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0NvbGxhYkJ1dHRvbl9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0NvbGxhYkJ1dHRvbi5zY3NzICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0NvbGxhYkJ1dHRvbi5zY3NzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Db2xsYWJCdXR0b25fc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9Db2xsYWJCdXR0b25fc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBDb2xsYWJCdXR0b24gPSAoeyBpc0NvbGxhYm9yYXRpbmcsIGNvbGxhYm9yYXRvckNvdW50LCBvbkNsaWNrLCB9KSA9PiB7XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlRvb2xCdXR0b24sIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6ICgwLGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1tcXFwiZGVmYXVsdFxcXCJdKShcXFwiQ29sbGFiQnV0dG9uXFxcIiwge1xcbiAgICAgICAgICAgICAgICBcXFwiaXMtY29sbGFib3JhdGluZ1xcXCI6IGlzQ29sbGFib3JhdGluZyxcXG4gICAgICAgICAgICB9KSwgb25DbGljazogb25DbGljaywgaWNvbjogX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18udXNlcnMsIHR5cGU6IFxcXCJidXR0b25cXFwiLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy50KShcXFwibGFiZWxzLmxpdmVDb2xsYWJvcmF0aW9uXFxcIiksIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy50KShcXFwibGFiZWxzLmxpdmVDb2xsYWJvcmF0aW9uXFxcIiksIHNob3dBcmlhTGFiZWw6ICgwLF9jb21wb25lbnRzX0FwcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnVzZUlzTW9iaWxlKSgpIH0sIHsgY2hpbGRyZW46IGNvbGxhYm9yYXRvckNvdW50ID4gMCAmJiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiQ29sbGFiQnV0dG9uLWNvbGxhYm9yYXRvcnNcXFwiIH0sIHsgY2hpbGRyZW46IGNvbGxhYm9yYXRvckNvdW50IH0pLCB2b2lkIDApKSB9KSwgdm9pZCAwKSB9LCB2b2lkIDApKTtcXG59O1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoQ29sbGFiQnV0dG9uKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OURiMnhzWVdKQ2RYUjBiMjR1ZEhONExtcHpJaXdpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN096czdRVUZCZDBJN1FVRkRhMEk3UVVGRFpEdEJRVU52UWp0QlFVTm9RanRCUVVWSU8wRkJSVGRDTEUxQlFVMHNXVUZCV1N4SFFVRkhMRU5CUVVNc1JVRkRjRUlzWlVGQlpTeEZRVU5tTEdsQ1FVRnBRaXhGUVVOcVFpeFBRVUZQTEVkQlMxSXNSVUZCUlN4RlFVRkZPMGxCUTBnc1QwRkJUeXhEUVVOTUxEUklRVU5GTEhWRVFVRkRMRzFFUVVGVkxHdENRVU5VTEZOQlFWTXNSVUZCUlN4blJFRkJTU3hEUVVGRExHTkJRV01zUlVGQlJUdG5Ra0ZET1VJc2EwSkJRV3RDTEVWQlFVVXNaVUZCWlR0aFFVTndReXhEUVVGRExFVkJRMFlzVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZEYUVJc1NVRkJTU3hGUVVGRkxIbERRVUZMTEVWQlExZ3NTVUZCU1N4RlFVRkRMRkZCUVZFc1JVRkRZaXhMUVVGTExFVkJRVVVzZDBOQlFVTXNRMEZCUXl3d1FrRkJNRUlzUTBGQlF5eG5Ra0ZEZUVJc2QwTkJRVU1zUTBGQlF5d3dRa0ZCTUVJc1EwRkJReXhGUVVONlF5eGhRVUZoTEVWQlFVVXNORVJCUVZjc1JVRkJSU3huUWtGRk0wSXNhVUpCUVdsQ0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlEzaENMRGhGUVVGTExGTkJRVk1zUlVGQlF5dzBRa0ZCTkVJc1owSkJRVVVzYVVKQlFXbENMRmxCUVU4c1EwRkRkRVVzV1VGRFZTeFhRVU5hTEVOQlEwb3NRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJRenRCUVVWR0xHbEZRVUZsTEZsQlFWa3NSVUZCUXlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWpiMjF3YjI1bGJuUnpMME52Ykd4aFlrSjFkSFJ2Ymk1MGMzZy9Nak0xWkNKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ1kyeHplQ0JtY205dElGd2lZMnh6ZUZ3aU8xeHVhVzF3YjNKMElIc2dWRzl2YkVKMWRIUnZiaUI5SUdaeWIyMGdYQ0l1TDFSdmIyeENkWFIwYjI1Y0lqdGNibWx0Y0c5eWRDQjdJSFFnZlNCbWNtOXRJRndpTGk0dmFURTRibHdpTzF4dWFXMXdiM0owSUhzZ2RYTmxTWE5OYjJKcGJHVWdmU0JtY205dElGd2lMaTR2WTI5dGNHOXVaVzUwY3k5QmNIQmNJanRjYm1sdGNHOXlkQ0I3SUhWelpYSnpJSDBnWm5KdmJTQmNJaTR2YVdOdmJuTmNJanRjYmx4dWFXMXdiM0owSUZ3aUxpOURiMnhzWVdKQ2RYUjBiMjR1YzJOemMxd2lPMXh1WEc1amIyNXpkQ0JEYjJ4c1lXSkNkWFIwYjI0Z1BTQW9lMXh1SUNCcGMwTnZiR3hoWW05eVlYUnBibWNzWEc0Z0lHTnZiR3hoWW05eVlYUnZja052ZFc1MExGeHVJQ0J2YmtOc2FXTnJMRnh1ZlRvZ2UxeHVJQ0JwYzBOdmJHeGhZbTl5WVhScGJtYzZJR0p2YjJ4bFlXNDdYRzRnSUdOdmJHeGhZbTl5WVhSdmNrTnZkVzUwT2lCdWRXMWlaWEk3WEc0Z0lHOXVRMnhwWTJzNklDZ3BJRDArSUhadmFXUTdYRzU5S1NBOVBpQjdYRzRnSUhKbGRIVnliaUFvWEc0Z0lDQWdQRDVjYmlBZ0lDQWdJRHhVYjI5c1FuVjBkRzl1WEc0Z0lDQWdJQ0FnSUdOc1lYTnpUbUZ0WlQxN1kyeHplQ2hjSWtOdmJHeGhZa0oxZEhSdmJsd2lMQ0I3WEc0Z0lDQWdJQ0FnSUNBZ1hDSnBjeTFqYjJ4c1lXSnZjbUYwYVc1blhDSTZJR2x6UTI5c2JHRmliM0poZEdsdVp5eGNiaUFnSUNBZ0lDQWdmU2w5WEc0Z0lDQWdJQ0FnSUc5dVEyeHBZMnM5ZTI5dVEyeHBZMnQ5WEc0Z0lDQWdJQ0FnSUdsamIyNDllM1Z6WlhKemZWeHVJQ0FnSUNBZ0lDQjBlWEJsUFZ3aVluVjBkRzl1WENKY2JpQWdJQ0FnSUNBZ2RHbDBiR1U5ZTNRb1hDSnNZV0psYkhNdWJHbDJaVU52Ykd4aFltOXlZWFJwYjI1Y0lpbDlYRzRnSUNBZ0lDQWdJR0Z5YVdFdGJHRmlaV3c5ZTNRb1hDSnNZV0psYkhNdWJHbDJaVU52Ykd4aFltOXlZWFJwYjI1Y0lpbDlYRzRnSUNBZ0lDQWdJSE5vYjNkQmNtbGhUR0ZpWld3OWUzVnpaVWx6VFc5aWFXeGxLQ2w5WEc0Z0lDQWdJQ0ErWEc0Z0lDQWdJQ0FnSUh0amIyeHNZV0p2Y21GMGIzSkRiM1Z1ZENBK0lEQWdKaVlnS0Z4dUlDQWdJQ0FnSUNBZ0lEeGthWFlnWTJ4aGMzTk9ZVzFsUFZ3aVEyOXNiR0ZpUW5WMGRHOXVMV052Ykd4aFltOXlZWFJ2Y25OY0lqNTdZMjlzYkdGaWIzSmhkRzl5UTI5MWJuUjlQQzlrYVhZK1hHNGdJQ0FnSUNBZ0lDbDlYRzRnSUNBZ0lDQThMMVJ2YjJ4Q2RYUjBiMjQrWEc0Z0lDQWdQQzgrWEc0Z0lDazdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1pHVm1ZWFZzZENCRGIyeHNZV0pDZFhSMGIyNDdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0NvbGxhYkJ1dHRvbi50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvQ29sb3JQaWNrZXIudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvQ29sb3JQaWNrZXIudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJDb2xvclBpY2tlclxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIENvbG9yUGlja2VyKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Qb3BvdmVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1BvcG92ZXIgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvUG9wb3Zlci50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi91dGlscyAqLyBcXFwiLi4vLi4vdXRpbHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0NvbG9yUGlja2VyX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vQ29sb3JQaWNrZXIuc2NzcyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Db2xvclBpY2tlci5zY3NzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Db2xvclBpY2tlcl9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX0NvbG9yUGlja2VyX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9rZXlzICovIFxcXCIuLi8uLi9rZXlzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pMThuICovIFxcXCIuLi8uLi9pMThuLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb2xvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbG9ycyAqLyBcXFwiLi4vLi4vY29sb3JzLnRzXFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgaXNWYWxpZENvbG9yID0gKGNvbG9yKSA9PiB7XFxuICAgIGNvbnN0IHN0eWxlID0gbmV3IE9wdGlvbigpLnN0eWxlO1xcbiAgICBzdHlsZS5jb2xvciA9IGNvbG9yO1xcbiAgICByZXR1cm4gISFzdHlsZS5jb2xvcjtcXG59O1xcbmNvbnN0IGdldENvbG9yID0gKGNvbG9yKSA9PiB7XFxuICAgIGlmICgoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5pc1RyYW5zcGFyZW50KShjb2xvcikpIHtcXG4gICAgICAgIHJldHVybiBjb2xvcjtcXG4gICAgfVxcbiAgICByZXR1cm4gaXNWYWxpZENvbG9yKGNvbG9yKVxcbiAgICAgICAgPyBjb2xvclxcbiAgICAgICAgOiBpc1ZhbGlkQ29sb3IoYCMke2NvbG9yfWApXFxuICAgICAgICAgICAgPyBgIyR7Y29sb3J9YFxcbiAgICAgICAgICAgIDogbnVsbDtcXG59O1xcbi8vIFRoaXMgaXMgYSBuYXJyb3cgcmVpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYXdlc29tZSByZWFjdC1jb2xvciBUd2l0dGVyIGNvbXBvbmVudFxcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jYXNlc2FuZGJlcmcvcmVhY3QtY29sb3IvYmxvYi9tYXN0ZXIvc3JjL2NvbXBvbmVudHMvdHdpdHRlci9Ud2l0dGVyLmpzXFxuLy8gVW5mb3J0dW5hdGVseSwgd2UgY2FuJ3QgZGV0ZWN0IGtleWJvYXJkIGxheW91dCBpbiB0aGUgYnJvd3Nlci4gU28gdGhpcyB3aWxsXFxuLy8gb25seSB3b3JrIHdlbGwgZm9yIFFXRVJUWSBidXQgbm90IEFaRVJUWSBvciBvdGhlcnMuLi5cXG5jb25zdCBrZXlCaW5kaW5ncyA9IFtcXG4gICAgW1xcXCIxXFxcIiwgXFxcIjJcXFwiLCBcXFwiM1xcXCIsIFxcXCI0XFxcIiwgXFxcIjVcXFwiXSxcXG4gICAgW1xcXCJxXFxcIiwgXFxcIndcXFwiLCBcXFwiZVxcXCIsIFxcXCJyXFxcIiwgXFxcInRcXFwiXSxcXG4gICAgW1xcXCJhXFxcIiwgXFxcInNcXFwiLCBcXFwiZFxcXCIsIFxcXCJmXFxcIiwgXFxcImdcXFwiXSxcXG5dLmZsYXQoKTtcXG5jb25zdCBQaWNrZXIgPSAoeyBjb2xvcnMsIGNvbG9yLCBvbkNoYW5nZSwgb25DbG9zZSwgbGFiZWwsIHNob3dJbnB1dCA9IHRydWUsIHR5cGUsIH0pID0+IHtcXG4gICAgY29uc3QgZmlyc3RJdGVtID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkudXNlUmVmKCk7XFxuICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS51c2VSZWYoKTtcXG4gICAgY29uc3QgZ2FsbGVyeSA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLnVzZVJlZigpO1xcbiAgICBjb25zdCBjb2xvcklucHV0ID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkudXNlUmVmKCk7XFxuICAgIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLnVzZUVmZmVjdCgoKSA9PiB7XFxuICAgICAgICAvLyBBZnRlciB0aGUgY29tcG9uZW50IGlzIGZpcnN0IG1vdW50ZWQgZm9jdXMgb24gZmlyc3QgaW5wdXRcXG4gICAgICAgIGlmIChhY3RpdmVJdGVtLmN1cnJlbnQpIHtcXG4gICAgICAgICAgICBhY3RpdmVJdGVtLmN1cnJlbnQuZm9jdXMoKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKGNvbG9ySW5wdXQuY3VycmVudCkge1xcbiAgICAgICAgICAgIGNvbG9ySW5wdXQuY3VycmVudC5mb2N1cygpO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSBpZiAoZ2FsbGVyeS5jdXJyZW50KSB7XFxuICAgICAgICAgICAgZ2FsbGVyeS5jdXJyZW50LmZvY3VzKCk7XFxuICAgICAgICB9XFxuICAgIH0sIFtdKTtcXG4gICAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudCkgPT4ge1xcbiAgICAgICAgdmFyIF9hLCBfYjtcXG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uS0VZUy5UQUIpIHtcXG4gICAgICAgICAgICBjb25zdCB7IGFjdGl2ZUVsZW1lbnQgfSA9IGRvY3VtZW50O1xcbiAgICAgICAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlRWxlbWVudCA9PT0gZmlyc3RJdGVtLmN1cnJlbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgIChfYSA9IGNvbG9ySW5wdXQuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XFxuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2UgaWYgKGFjdGl2ZUVsZW1lbnQgPT09IGNvbG9ySW5wdXQuY3VycmVudCkge1xcbiAgICAgICAgICAgICAgICAoX2IgPSBmaXJzdEl0ZW0uY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmZvY3VzKCk7XFxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSBpZiAoKDAsX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5pc0Fycm93S2V5KShldmVudC5rZXkpKSB7XFxuICAgICAgICAgICAgY29uc3QgeyBhY3RpdmVFbGVtZW50IH0gPSBkb2N1bWVudDtcXG4gICAgICAgICAgICBjb25zdCBpc1JUTCA9ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uZ2V0TGFuZ3VhZ2UpKCkucnRsO1xcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChnYWxsZXJ5LmN1cnJlbnQuY2hpbGRyZW4sIGFjdGl2ZUVsZW1lbnQpO1xcbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gZ2FsbGVyeS5jdXJyZW50LmNoaWxkcmVuLmxlbmd0aCAtIChzaG93SW5wdXQgPyAxIDogMCk7XFxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IGV2ZW50LmtleSA9PT0gKGlzUlRMID8gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5LRVlTLkFSUk9XX0xFRlQgOiBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLktFWVMuQVJST1dfUklHSFQpXFxuICAgICAgICAgICAgICAgICAgICA/IChpbmRleCArIDEpICUgbGVuZ3RoXFxuICAgICAgICAgICAgICAgICAgICA6IGV2ZW50LmtleSA9PT0gKGlzUlRMID8gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5LRVlTLkFSUk9XX1JJR0hUIDogX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5LRVlTLkFSUk9XX0xFRlQpXFxuICAgICAgICAgICAgICAgICAgICAgICAgPyAobGVuZ3RoICsgaW5kZXggLSAxKSAlIGxlbmd0aFxcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZXZlbnQua2V5ID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLktFWVMuQVJST1dfRE9XTlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChpbmRleCArIDUpICUgbGVuZ3RoXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZXZlbnQua2V5ID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLktFWVMuQVJST1dfVVBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKGxlbmd0aCArIGluZGV4IC0gNSkgJSBsZW5ndGhcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaW5kZXg7XFxuICAgICAgICAgICAgICAgIGdhbGxlcnkuY3VycmVudC5jaGlsZHJlbltuZXh0SW5kZXhdLmZvY3VzKCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIGlmIChrZXlCaW5kaW5ncy5pbmNsdWRlcyhldmVudC5rZXkudG9Mb3dlckNhc2UoKSkgJiZcXG4gICAgICAgICAgICAhKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uaXNXcml0YWJsZUVsZW1lbnQpKGV2ZW50LnRhcmdldCkpIHtcXG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGtleUJpbmRpbmdzLmluZGV4T2YoZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkpO1xcbiAgICAgICAgICAgIGdhbGxlcnkuY3VycmVudC5jaGlsZHJlbltpbmRleF0uZm9jdXMoKTtcXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSBpZiAoZXZlbnQua2V5ID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLktFWVMuRVNDQVBFIHx8IGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5LRVlTLkVOVEVSKSB7XFxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcXG4gICAgICAgICAgICBvbkNsb3NlKCk7XFxuICAgICAgICB9XFxuICAgICAgICBldmVudC5uYXRpdmVFdmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xcbiAgICB9O1xcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IGBjb2xvci1waWNrZXIgY29sb3ItcGlja2VyLXR5cGUtJHt0eXBlfWAsIHJvbGU6IFxcXCJkaWFsb2dcXFwiLCBcXFwiYXJpYS1tb2RhbFxcXCI6IFxcXCJ0cnVlXFxcIiwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnQpKFxcXCJsYWJlbHMuY29sb3JQaWNrZXJcXFwiKSwgb25LZXlEb3duOiBoYW5kbGVLZXlEb3duIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIHsgY2xhc3NOYW1lOiBcXFwiY29sb3ItcGlja2VyLXRyaWFuZ2xlIGNvbG9yLXBpY2tlci10cmlhbmdsZS1zaGFkb3dcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgeyBjbGFzc05hbWU6IFxcXCJjb2xvci1waWNrZXItdHJpYW5nbGVcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJjb2xvci1waWNrZXItY29udGVudFxcXCIsIHJlZjogKGVsKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoZWwpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBnYWxsZXJ5LmN1cnJlbnQgPSBlbDtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSwgdGFiSW5kZXg6IDAgfSwgeyBjaGlsZHJlbjogW2NvbG9ycy5tYXAoKF9jb2xvciwgaSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IF9jb2xvcldpdGhvdXRIYXNoID0gX2NvbG9yLnJlcGxhY2UoXFxcIiNcXFwiLCBcXFwiXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJidXR0b25cXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiY29sb3ItcGlja2VyLXN3YXRjaFxcXCIsIG9uQ2xpY2s6IChldmVudCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5mb2N1cygpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoX2NvbG9yKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGl0bGU6IGAkeygwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udCkoYGNvbG9ycy4ke19jb2xvcldpdGhvdXRIYXNofWApfSR7ISgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmlzVHJhbnNwYXJlbnQpKF9jb2xvcikgPyBgICgke19jb2xvcn0pYCA6IFxcXCJcXFwifSBcdTIwMTQgJHtrZXlCaW5kaW5nc1tpXS50b1VwcGVyQ2FzZSgpfWAsIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy50KShgY29sb3JzLiR7X2NvbG9yV2l0aG91dEhhc2h9YCksIFxcXCJhcmlhLWtleXNob3J0Y3V0c1xcXCI6IGtleUJpbmRpbmdzW2ldLCBzdHlsZTogeyBjb2xvcjogX2NvbG9yIH0sIHJlZjogKGVsKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWwgJiYgaSA9PT0gMCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0SXRlbS5jdXJyZW50ID0gZWw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWwgJiYgX2NvbG9yID09PSBjb2xvcikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZUl0ZW0uY3VycmVudCA9IGVsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBvbkZvY3VzOiAoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZShfY29sb3IpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IH0sIHsgY2hpbGRyZW46IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5pc1RyYW5zcGFyZW50KShfY29sb3IpID8gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgeyBjbGFzc05hbWU6IFxcXCJjb2xvci1waWNrZXItdHJhbnNwYXJlbnRcXFwiIH0sIHZvaWQgMCkpIDogdW5kZWZpbmVkLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInNwYW5cXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiY29sb3ItcGlja2VyLWtleWJpbmRpbmdcXFwiIH0sIHsgY2hpbGRyZW46IGtleUJpbmRpbmdzW2ldIH0pLCB2b2lkIDApXSB9KSwgX2NvbG9yKSk7XFxuICAgICAgICAgICAgICAgICAgICB9KSwgc2hvd0lucHV0ICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoQ29sb3JJbnB1dCwgeyBjb2xvcjogY29sb3IsIGxhYmVsOiBsYWJlbCwgb25DaGFuZ2U6IChjb2xvcikgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZShjb2xvcik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgcmVmOiBjb2xvcklucHV0IH0sIHZvaWQgMCkpXSB9KSwgdm9pZCAwKV0gfSksIHZvaWQgMCkpO1xcbn07XFxuY29uc3QgQ29sb3JJbnB1dCA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLmZvcndhcmRSZWYoKHsgY29sb3IsIG9uQ2hhbmdlLCBsYWJlbCwgfSwgcmVmKSA9PiB7XFxuICAgIGNvbnN0IFtpbm5lclZhbHVlLCBzZXRJbm5lclZhbHVlXSA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLnVzZVN0YXRlKGNvbG9yKTtcXG4gICAgY29uc3QgaW5wdXRSZWYgPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS51c2VSZWYobnVsbCk7XFxuICAgIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLnVzZUVmZmVjdCgoKSA9PiB7XFxuICAgICAgICBzZXRJbm5lclZhbHVlKGNvbG9yKTtcXG4gICAgfSwgW2NvbG9yXSk7XFxuICAgIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiBpbnB1dFJlZi5jdXJyZW50KTtcXG4gICAgY29uc3QgY2hhbmdlQ29sb3IgPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS51c2VDYWxsYmFjaygoaW5wdXRWYWx1ZSkgPT4ge1xcbiAgICAgICAgY29uc3QgdmFsdWUgPSBpbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCk7XFxuICAgICAgICBjb25zdCBjb2xvciA9IGdldENvbG9yKHZhbHVlKTtcXG4gICAgICAgIGlmIChjb2xvcikge1xcbiAgICAgICAgICAgIG9uQ2hhbmdlKGNvbG9yKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHNldElubmVyVmFsdWUodmFsdWUpO1xcbiAgICB9LCBbb25DaGFuZ2VdKTtcXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJsYWJlbFxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJjb2xvci1pbnB1dC1jb250YWluZXJcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJjb2xvci1waWNrZXItaGFzaFxcXCIgfSwgeyBjaGlsZHJlbjogXFxcIiNcXFwiIH0pLCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImlucHV0XFxcIiwgeyBzcGVsbENoZWNrOiBmYWxzZSwgY2xhc3NOYW1lOiBcXFwiY29sb3ItcGlja2VyLWlucHV0XFxcIiwgXFxcImFyaWEtbGFiZWxcXFwiOiBsYWJlbCwgb25DaGFuZ2U6IChldmVudCkgPT4gY2hhbmdlQ29sb3IoZXZlbnQudGFyZ2V0LnZhbHVlKSwgdmFsdWU6IChpbm5lclZhbHVlIHx8IFxcXCJcXFwiKS5yZXBsYWNlKC9eIy8sIFxcXCJcXFwiKSwgb25CbHVyOiAoKSA9PiBzZXRJbm5lclZhbHVlKGNvbG9yKSwgcmVmOiBpbnB1dFJlZiB9LCB2b2lkIDApXSB9KSwgdm9pZCAwKSk7XFxufSk7XFxuY29uc3QgQ29sb3JQaWNrZXIgPSAoeyB0eXBlLCBjb2xvciwgb25DaGFuZ2UsIGxhYmVsLCBpc0FjdGl2ZSwgc2V0QWN0aXZlLCB9KSA9PiB7XFxuICAgIGNvbnN0IHBpY2tlckJ1dHRvbiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLnVzZVJlZihudWxsKTtcXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJkaXZcXFwiLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcImNvbG9yLXBpY2tlci1jb250cm9sLWNvbnRhaW5lclxcXCIgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiYnV0dG9uXFxcIiwgeyBjbGFzc05hbWU6IFxcXCJjb2xvci1waWNrZXItbGFiZWwtc3dhdGNoXFxcIiwgXFxcImFyaWEtbGFiZWxcXFwiOiBsYWJlbCwgc3R5bGU6IGNvbG9yID8geyBcXFwiLS1zd2F0Y2gtY29sb3JcXFwiOiBjb2xvciB9IDogdW5kZWZpbmVkLCBvbkNsaWNrOiAoKSA9PiBzZXRBY3RpdmUoIWlzQWN0aXZlKSwgcmVmOiBwaWNrZXJCdXR0b24gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKENvbG9ySW5wdXQsIHsgY29sb3I6IGNvbG9yLCBsYWJlbDogbGFiZWwsIG9uQ2hhbmdlOiAoY29sb3IpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoY29sb3IpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gfSwgdm9pZCAwKV0gfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KSgocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkuU3VzcGVuc2UpLCBPYmplY3QuYXNzaWduKHsgZmFsbGJhY2s6IFxcXCJcXFwiIH0sIHsgY2hpbGRyZW46IGlzQWN0aXZlID8gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfUG9wb3Zlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlBvcG92ZXIsIE9iamVjdC5hc3NpZ24oeyBvbkNsb3NlUmVxdWVzdDogKGV2ZW50KSA9PiBldmVudC50YXJnZXQgIT09IHBpY2tlckJ1dHRvbi5jdXJyZW50ICYmIHNldEFjdGl2ZShmYWxzZSkgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFBpY2tlciwgeyBjb2xvcnM6IF9jb2xvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX1tcXFwiZGVmYXVsdFxcXCJdW3R5cGVdLCBjb2xvcjogY29sb3IgfHwgbnVsbCwgb25DaGFuZ2U6IChjaGFuZ2VkQ29sb3IpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoY2hhbmdlZENvbG9yKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBvbkNsb3NlOiAoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0QWN0aXZlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9hID0gcGlja2VyQnV0dG9uLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cygpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIGxhYmVsOiBsYWJlbCwgc2hvd0lucHV0OiBmYWxzZSwgdHlwZTogdHlwZSB9LCB2b2lkIDApIH0pLCB2b2lkIDApKSA6IG51bGwgfSksIHZvaWQgMCldIH0sIHZvaWQgMCkpO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlEYjJ4dmNsQnBZMnRsY2k1MGMzZ3Vhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3TzBGQlFUQkNPMEZCUTFVN1FVRkRTenRCUVVWaU8wRkJRMlU3UVVGRFJqdEJRVU5KTzBGQlEyUTdRVUZGTDBJc1RVRkJUU3haUVVGWkxFZEJRVWNzUTBGQlF5eExRVUZoTEVWQlFVVXNSVUZCUlR0SlFVTnlReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEUxQlFVMHNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVOcVF5eExRVUZMTEVOQlFVTXNTMEZCU3l4SFFVRkhMRXRCUVVzc1EwRkJRenRKUVVOd1FpeFBRVUZQTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRE8wRkJRM1pDTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc1VVRkJVU3hIUVVGSExFTkJRVU1zUzBGQllTeEZRVUZwUWl4RlFVRkZPMGxCUTJoRUxFbEJRVWtzY1VSQlFXRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSVHRSUVVONFFpeFBRVUZQTEV0QlFVc3NRMEZCUXp0TFFVTmtPMGxCUlVRc1QwRkJUeXhaUVVGWkxFTkJRVU1zUzBGQlN5eERRVUZETzFGQlEzaENMRU5CUVVNc1EwRkJReXhMUVVGTE8xRkJRMUFzUTBGQlF5eERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJRek5DTEVOQlFVTXNRMEZCUXl4SlFVRkpMRXRCUVVzc1JVRkJSVHRaUVVOaUxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZEV0N4RFFVRkRMRU5CUVVNN1FVRkZSaXhwUmtGQmFVWTdRVUZEYWtZc05FWkJRVFJHTzBGQlJUVkdMRGhGUVVFNFJUdEJRVU01UlN4M1JFRkJkMFE3UVVGRGVFUXNUVUZCVFN4WFFVRlhMRWRCUVVjN1NVRkRiRUlzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETzBsQlEzcENMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJRenRKUVVONlFpeERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTTdRMEZETVVJc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dEJRVVZVTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1JVRkRaQ3hOUVVGTkxFVkJRMDRzUzBGQlN5eEZRVU5NTEZGQlFWRXNSVUZEVWl4UFFVRlBMRVZCUTFBc1MwRkJTeXhGUVVOTUxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVWQlEyaENMRWxCUVVrc1IwRlRUQ3hGUVVGRkxFVkJRVVU3U1VGRFNDeE5RVUZOTEZOQlFWTXNSMEZCUnl4dFJFRkJXU3hGUVVGeFFpeERRVUZETzBsQlEzQkVMRTFCUVUwc1ZVRkJWU3hIUVVGSExHMUVRVUZaTEVWQlFYRkNMRU5CUVVNN1NVRkRja1FzVFVGQlRTeFBRVUZQTEVkQlFVY3NiVVJCUVZrc1JVRkJhMElzUTBGQlF6dEpRVU12UXl4TlFVRk5MRlZCUVZVc1IwRkJSeXh0UkVGQldTeEZRVUZ2UWl4RFFVRkRPMGxCUlhCRUxITkVRVUZsTEVOQlFVTXNSMEZCUnl4RlFVRkZPMUZCUTI1Q0xEUkVRVUUwUkR0UlFVTTFSQ3hKUVVGSkxGVkJRVlVzUTBGQlF5eFBRVUZQTEVWQlFVVTdXVUZEZEVJc1ZVRkJWU3hEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXp0VFFVTTFRanRoUVVGTkxFbEJRVWtzVlVGQlZTeERRVUZETEU5QlFVOHNSVUZCUlR0WlFVTTNRaXhWUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRPMU5CUXpWQ08yRkJRVTBzU1VGQlNTeFBRVUZQTEVOQlFVTXNUMEZCVHl4RlFVRkZPMWxCUXpGQ0xFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1UwRkRla0k3U1VGRFNDeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkZVQ3hOUVVGTkxHRkJRV0VzUjBGQlJ5eERRVUZETEV0QlFUQkNMRVZCUVVVc1JVRkJSVHM3VVVGRGJrUXNTVUZCU1N4TFFVRkxMRU5CUVVNc1IwRkJSeXhMUVVGTExESkRRVUZSTEVWQlFVVTdXVUZETVVJc1RVRkJUU3hGUVVGRkxHRkJRV0VzUlVGQlJTeEhRVUZITEZGQlFWRXNRMEZCUXp0WlFVTnVReXhKUVVGSkxFdEJRVXNzUTBGQlF5eFJRVUZSTEVWQlFVVTdaMEpCUTJ4Q0xFbEJRVWtzWVVGQllTeExRVUZMTEZOQlFWTXNRMEZCUXl4UFFVRlBMRVZCUVVVN2IwSkJRM1pETEdkQ1FVRlZMRU5CUVVNc1QwRkJUeXd3UTBGQlJTeExRVUZMTEVWQlFVVXNRMEZCUXp0dlFrRkROVUlzUzBGQlN5eERRVUZETEdOQlFXTXNSVUZCUlN4RFFVRkRPMmxDUVVONFFqdGhRVU5HTzJsQ1FVRk5MRWxCUVVrc1lVRkJZU3hMUVVGTExGVkJRVlVzUTBGQlF5eFBRVUZQTEVWQlFVVTdaMEpCUXk5RExHVkJRVk1zUTBGQlF5eFBRVUZQTERCRFFVRkZMRXRCUVVzc1JVRkJSU3hEUVVGRE8yZENRVU16UWl4TFFVRkxMRU5CUVVNc1kwRkJZeXhGUVVGRkxFTkJRVU03WVVGRGVFSTdVMEZEUmp0aFFVRk5MRWxCUVVrc2FVUkJRVlVzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVN1dVRkRhRU1zVFVGQlRTeEZRVUZGTEdGQlFXRXNSVUZCUlN4SFFVRkhMRkZCUVZFc1EwRkJRenRaUVVOdVF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4clJFRkJWeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETzFsQlEyaERMRTFCUVUwc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkRlRU1zVDBGQlVTeERRVUZETEU5QlFWRXNRMEZCUXl4UlFVRlJMRVZCUXpGQ0xHRkJRV0VzUTBGRFpDeERRVUZETzFsQlEwWXNTVUZCU1N4TFFVRkxMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVU3WjBKQlEyaENMRTFCUVUwc1RVRkJUU3hIUVVGSExFOUJRVkVzUTBGQlF5eFBRVUZSTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEZGtVc1RVRkJUU3hUUVVGVExFZEJRMklzUzBGQlN5eERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zYTBSQlFXVXNRMEZCUXl4RFFVRkRMRU5CUVVNc2JVUkJRV2RDTEVOQlFVTTdiMEpCUTNoRUxFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTk8yOUNRVU4wUWl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc2JVUkJRV2RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMR3RFUVVGbExFTkJRVU03ZDBKQlF6VkVMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1RVRkJUVHQzUWtGREwwSXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFdEJRVXNzYTBSQlFXVTdORUpCUXk5Q0xFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTk96UkNRVU4wUWl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUzBGQlN5eG5SRUZCWVR0blEwRkROMElzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eE5RVUZOTzJkRFFVTXZRaXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETzJkQ1FVTllMRTlCUVZFc1EwRkJReXhQUVVGUkxFTkJRVU1zVVVGQlV5eERRVUZETEZOQlFWTXNRMEZCVXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRE8yRkJRM3BFTzFsQlEwUXNTMEZCU3l4RFFVRkRMR05CUVdNc1JVRkJSU3hEUVVGRE8xTkJRM2hDTzJGQlFVMHNTVUZEVEN4WFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1dVRkROME1zUTBGQlF5eDVSRUZCYVVJc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlEyaERPMWxCUTBFc1RVRkJUU3hMUVVGTExFZEJRVWNzVjBGQlZ5eERRVUZETEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEVOQlFVTTdXVUZETVVRc1QwRkJVU3hEUVVGRExFOUJRVkVzUTBGQlF5eFJRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRlRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRGNFUXNTMEZCU3l4RFFVRkRMR05CUVdNc1JVRkJSU3hEUVVGRE8xTkJRM2hDTzJGQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc1IwRkJSeXhMUVVGTExEaERRVUZYTEVsQlFVa3NTMEZCU3l4RFFVRkRMRWRCUVVjc1MwRkJTeXcyUTBGQlZTeEZRVUZGTzFsQlEyaEZMRXRCUVVzc1EwRkJReXhqUVVGakxFVkJRVVVzUTBGQlF6dFpRVU4yUWl4UFFVRlBMRVZCUVVVc1EwRkJRenRUUVVOWU8xRkJRMFFzUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4M1FrRkJkMElzUlVGQlJTeERRVUZETzFGQlF6ZERMRXRCUVVzc1EwRkJReXhsUVVGbExFVkJRVVVzUTBGQlF6dEpRVU14UWl4RFFVRkRMRU5CUVVNN1NVRkZSaXhQUVVGUExFTkJRMHdzSzBWQlEwVXNVMEZCVXl4RlFVRkZMR3REUVVGclF5eEpRVUZKTEVWQlFVVXNSVUZEYmtRc1NVRkJTU3hGUVVGRExGRkJRVkVzWjBKQlEwWXNUVUZCVFN4blFrRkRUQ3gzUTBGQlF5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExFVkJRMjVETEZOQlFWTXNSVUZCUlN4aFFVRmhMR2xDUVVWNFFpeG5SVUZCU3l4VFFVRlRMRVZCUVVNc2IwUkJRVzlFTEZkQlFVOHNSVUZETVVVc1owVkJRVXNzVTBGQlV5eEZRVUZETEhWQ1FVRjFRaXhYUVVGUExFVkJRemRETEN0RlFVTkZMRk5CUVZNc1JVRkJReXh6UWtGQmMwSXNSVUZEYUVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVTdiMEpCUTFZc1NVRkJTU3hGUVVGRkxFVkJRVVU3ZDBKQlEwNHNUMEZCVHl4RFFVRkRMRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU03Y1VKQlEzUkNPMmRDUVVOSUxFTkJRVU1zUlVGRFJDeFJRVUZSTEVWQlFVVXNRMEZCUXl4cFFrRkZWaXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8zZENRVU40UWl4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzNkQ1FVTnNSQ3hQUVVGUExFTkJRMHdzYTBaQlEwVXNVMEZCVXl4RlFVRkRMSEZDUVVGeFFpeEZRVU12UWl4UFFVRlBMRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJUdG5RMEZEYUVJc1MwRkJTeXhEUVVGRExHRkJRVzFETEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1owTkJRMjVFTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenMwUWtGRGJrSXNRMEZCUXl4RlFVTkVMRXRCUVVzc1JVRkJSU3hIUVVGSExIZERRVUZETEVOQlFVTXNWVUZCVlN4cFFrRkJhVUlzUlVGQlJTeERRVUZETEVkQlEzaERMRU5CUVVNc2NVUkJRV0VzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZETlVNc1RVRkJUU3hYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWMEZCVnl4RlFVRkZMRVZCUVVVc1owSkJRM2hDTEhkRFFVRkRMRU5CUVVNc1ZVRkJWU3hwUWtGQmFVSXNSVUZCUlN4RFFVRkRMSFZDUVVONlFpeFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUTJwRExFdEJRVXNzUlVGQlJTeEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1JVRkZlRUlzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVN1owTkJRMVlzU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSVHR2UTBGRGFrSXNVMEZCVXl4RFFVRkRMRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU03YVVOQlEzaENPMmREUVVORUxFbEJRVWtzUlVGQlJTeEpRVUZKTEUxQlFVMHNTMEZCU3l4TFFVRkxMRVZCUVVVN2IwTkJRekZDTEZWQlFWVXNRMEZCUXl4UFFVRlBMRWRCUVVjc1JVRkJSU3hEUVVGRE8ybERRVU42UWpzMFFrRkRTQ3hEUVVGRExFVkJRMFFzVDBGQlR5eEZRVUZGTEVkQlFVY3NSVUZCUlR0blEwRkRXaXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdORUpCUTI1Q0xFTkJRVU1zYVVKQlJVRXNjVVJCUVdFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZEZGtJc1owVkJRVXNzVTBGQlV5eEZRVUZETERCQ1FVRXdRaXhYUVVGUExFTkJRMnBFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkRZaXdyUlVGQlRTeFRRVUZUTEVWQlFVTXNlVUpCUVhsQ0xHZENRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJVU3hOUVdoQ05VUXNUVUZCVFN4RFFXbENTaXhEUVVOV0xFTkJRVU03YjBKQlEwb3NRMEZCUXl4RFFVRkRMRVZCUTBRc1UwRkJVeXhKUVVGSkxFTkJRMW9zZFVSQlFVTXNWVUZCVlN4SlFVTlVMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRMW9zUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZEV2l4UlFVRlJMRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJUczBRa0ZEYkVJc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzNkQ1FVTnNRaXhEUVVGRExFVkJRMFFzUjBGQlJ5eEZRVUZGTEZWQlFWVXNWMEZEWml4RFFVTklMR0ZCUTBjc1lVRkRSaXhEUVVOUUxFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MRlZCUVZVc1IwRkJSeXgxUkVGQlowSXNRMEZEYWtNc1EwRkRSU3hGUVVORkxFdEJRVXNzUlVGRFRDeFJRVUZSTEVWQlExSXNTMEZCU3l4SFFVdE9MRVZCUTBRc1IwRkJSeXhGUVVOSUxFVkJRVVU3U1VGRFJpeE5RVUZOTEVOQlFVTXNWVUZCVlN4RlFVRkZMR0ZCUVdFc1EwRkJReXhIUVVGSExIRkVRVUZqTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1NVRkRNVVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NiVVJCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVVZ3UXl4elJFRkJaU3hEUVVGRExFZEJRVWNzUlVGQlJUdFJRVU51UWl4aFFVRmhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRGRrSXNRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVZhTEdkRlFVRjVRaXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRmRrUXNUVUZCVFN4WFFVRlhMRWRCUVVjc2QwUkJRV2xDTEVOQlEyNURMRU5CUVVNc1ZVRkJhMElzUlVGQlJTeEZRVUZGTzFGQlEzSkNMRTFCUVUwc1MwRkJTeXhIUVVGSExGVkJRVlVzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0UlFVTjJReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRPVUlzU1VGQlNTeExRVUZMTEVWQlFVVTdXVUZEVkN4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VTBGRGFrSTdVVUZEUkN4aFFVRmhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRGRrSXNRMEZCUXl4RlFVTkVMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRMWdzUTBGQlF6dEpRVVZHTEU5QlFVOHNRMEZEVEN4cFJrRkJUeXhUUVVGVExFVkJRVU1zZFVKQlFYVkNMR2xDUVVOMFF5dzRSVUZCU3l4VFFVRlRMRVZCUVVNc2JVSkJRVzFDTEN0Q1FVRlJMRVZCUXpGRExHdEZRVU5GTEZWQlFWVXNSVUZCUlN4TFFVRkxMRVZCUTJwQ0xGTkJRVk1zUlVGQlF5eHZRa0ZCYjBJc1owSkJRMnhDTEV0QlFVc3NSVUZEYWtJc1VVRkJVU3hGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZEY0VRc1MwRkJTeXhGUVVGRkxFTkJRVU1zVlVGQlZTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlF6TkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eGhRVUZoTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUTJ4RExFZEJRVWNzUlVGQlJTeFJRVUZSTEZkQlEySXNZVUZEU1N4RFFVTlVMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRMFlzUTBGQlF6dEJRVVZMTEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUVVNc1JVRkRNVUlzU1VGQlNTeEZRVU5LTEV0QlFVc3NSVUZEVEN4UlFVRlJMRVZCUTFJc1MwRkJTeXhGUVVOTUxGRkJRVkVzUlVGRFVpeFRRVUZUTEVkQlVWWXNSVUZCUlN4RlFVRkZPMGxCUTBnc1RVRkJUU3haUVVGWkxFZEJRVWNzYlVSQlFWa3NRMEZCYjBJc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRk0wUXNUMEZCVHl4RFFVTk1MRFJGUVVORkxDdEZRVUZMTEZOQlFWTXNSVUZCUXl4blEwRkJaME1zYVVKQlF6ZERMRzFGUVVORkxGTkJRVk1zUlVGQlF5d3lRa0ZCTWtJc1owSkJRM3BDTEV0QlFVc3NSVUZEYWtJc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4blFrRkJaMElzUlVGQlJTeExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVOMFJDeFBRVUZQTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVWQlEyNURMRWRCUVVjc1JVRkJSU3haUVVGWkxGZEJRMnBDTEVWQlEwWXNkVVJCUVVNc1ZVRkJWU3hKUVVOVUxFdEJRVXNzUlVGQlJTeExRVUZMTEVWQlExb3NTMEZCU3l4RlFVRkZMRXRCUVVzc1JVRkRXaXhSUVVGUkxFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlRzMFFrRkRiRUlzVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPM2RDUVVOc1FpeERRVUZETEZkQlEwUXNZVUZEUlN4RlFVTk9MSFZFUVVGRExIVkVRVUZqTEd0Q1FVRkRMRkZCUVZFc1JVRkJReXhGUVVGRkxHZENRVU40UWl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRMVlzZFVSQlFVTXNOa05CUVU4c2EwSkJRMDRzWTBGQll5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkRlRUlzUzBGQlN5eERRVUZETEUxQlFVMHNTMEZCU3l4WlFVRlpMRU5CUVVNc1QwRkJUeXhKUVVGSkxGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNaMEpCUnpORUxIVkVRVUZETEUxQlFVMHNTVUZEVEN4TlFVRk5MRVZCUVVVc0swTkJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZEY0VJc1MwRkJTeXhGUVVGRkxFdEJRVXNzU1VGQlNTeEpRVUZKTEVWQlEzQkNMRkZCUVZFc1JVRkJSU3hEUVVGRExGbEJRVmtzUlVGQlJTeEZRVUZGT3pSQ1FVTjZRaXhSUVVGUkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdkMEpCUTNwQ0xFTkJRVU1zUlVGRFJDeFBRVUZQTEVWQlFVVXNSMEZCUnl4RlFVRkZPenMwUWtGRFdpeFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN05FSkJRMnBDTEd0Q1FVRlpMRU5CUVVNc1QwRkJUeXd3UTBGQlJTeExRVUZMTEVWQlFVVXNRMEZCUXp0M1FrRkRhRU1zUTBGQlF5eEZRVU5FTEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUTFvc1UwRkJVeXhGUVVGRkxFdEJRVXNzUlVGRGFFSXNTVUZCU1N4RlFVRkZMRWxCUVVrc1YwRkRWaXhaUVVOTkxFTkJRMWdzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4WlFVTlBMRmxCUTJJc1EwRkRVQ3hEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZRMjlzYjNKUWFXTnJaWEl1ZEhONFB6bGpZVE1pWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUZKbFlXTjBJR1p5YjIwZ1hDSnlaV0ZqZEZ3aU8xeHVhVzF3YjNKMElIc2dVRzl3YjNabGNpQjlJR1p5YjIwZ1hDSXVMMUJ2Y0c5MlpYSmNJanRjYm1sdGNHOXlkQ0I3SUdselZISmhibk53WVhKbGJuUWdmU0JtY205dElGd2lMaTR2ZFhScGJITmNJanRjYmx4dWFXMXdiM0owSUZ3aUxpOURiMnh2Y2xCcFkydGxjaTV6WTNOelhDSTdYRzVwYlhCdmNuUWdleUJwYzBGeWNtOTNTMlY1TENCTFJWbFRJSDBnWm5KdmJTQmNJaTR1TDJ0bGVYTmNJanRjYm1sdGNHOXlkQ0I3SUhRc0lHZGxkRXhoYm1kMVlXZGxJSDBnWm5KdmJTQmNJaTR1TDJreE9HNWNJanRjYm1sdGNHOXlkQ0I3SUdselYzSnBkR0ZpYkdWRmJHVnRaVzUwSUgwZ1puSnZiU0JjSWk0dUwzVjBhV3h6WENJN1hHNXBiWEJ2Y25RZ1kyOXNiM0p6SUdaeWIyMGdYQ0l1TGk5amIyeHZjbk5jSWp0Y2JseHVZMjl1YzNRZ2FYTldZV3hwWkVOdmJHOXlJRDBnS0dOdmJHOXlPaUJ6ZEhKcGJtY3BJRDArSUh0Y2JpQWdZMjl1YzNRZ2MzUjViR1VnUFNCdVpYY2dUM0IwYVc5dUtDa3VjM1I1YkdVN1hHNGdJSE4wZVd4bExtTnZiRzl5SUQwZ1kyOXNiM0k3WEc0Z0lISmxkSFZ5YmlBaElYTjBlV3hsTG1OdmJHOXlPMXh1ZlR0Y2JseHVZMjl1YzNRZ1oyVjBRMjlzYjNJZ1BTQW9ZMjlzYjNJNklITjBjbWx1WnlrNklITjBjbWx1WnlCOElHNTFiR3dnUFQ0Z2UxeHVJQ0JwWmlBb2FYTlVjbUZ1YzNCaGNtVnVkQ2hqYjJ4dmNpa3BJSHRjYmlBZ0lDQnlaWFIxY200Z1kyOXNiM0k3WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnYVhOV1lXeHBaRU52Ykc5eUtHTnZiRzl5S1Z4dUlDQWdJRDhnWTI5c2IzSmNiaUFnSUNBNklHbHpWbUZzYVdSRGIyeHZjaWhnSXlSN1kyOXNiM0o5WUNsY2JpQWdJQ0EvSUdBakpIdGpiMnh2Y24xZ1hHNGdJQ0FnT2lCdWRXeHNPMXh1ZlR0Y2JseHVMeThnVkdocGN5QnBjeUJoSUc1aGNuSnZkeUJ5WldsdGNHeGxiV1Z1ZEdGMGFXOXVJRzltSUhSb1pTQmhkMlZ6YjIxbElISmxZV04wTFdOdmJHOXlJRlIzYVhSMFpYSWdZMjl0Y0c5dVpXNTBYRzR2THlCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdlkyRnpaWE5oYm1SaVpYSm5MM0psWVdOMExXTnZiRzl5TDJKc2IySXZiV0Z6ZEdWeUwzTnlZeTlqYjIxd2IyNWxiblJ6TDNSM2FYUjBaWEl2VkhkcGRIUmxjaTVxYzF4dVhHNHZMeUJWYm1admNuUjFibUYwWld4NUxDQjNaU0JqWVc0bmRDQmtaWFJsWTNRZ2EyVjVZbTloY21RZ2JHRjViM1YwSUdsdUlIUm9aU0JpY205M2MyVnlMaUJUYnlCMGFHbHpJSGRwYkd4Y2JpOHZJRzl1YkhrZ2QyOXlheUIzWld4c0lHWnZjaUJSVjBWU1ZGa2dZblYwSUc1dmRDQkJXa1ZTVkZrZ2IzSWdiM1JvWlhKekxpNHVYRzVqYjI1emRDQnJaWGxDYVc1a2FXNW5jeUE5SUZ0Y2JpQWdXMXdpTVZ3aUxDQmNJakpjSWl3Z1hDSXpYQ0lzSUZ3aU5Gd2lMQ0JjSWpWY0lsMHNYRzRnSUZ0Y0luRmNJaXdnWENKM1hDSXNJRndpWlZ3aUxDQmNJbkpjSWl3Z1hDSjBYQ0pkTEZ4dUlDQmJYQ0poWENJc0lGd2ljMXdpTENCY0ltUmNJaXdnWENKbVhDSXNJRndpWjF3aVhTeGNibDB1Wm14aGRDZ3BPMXh1WEc1amIyNXpkQ0JRYVdOclpYSWdQU0FvZTF4dUlDQmpiMnh2Y25Nc1hHNGdJR052Ykc5eUxGeHVJQ0J2YmtOb1lXNW5aU3hjYmlBZ2IyNURiRzl6WlN4Y2JpQWdiR0ZpWld3c1hHNGdJSE5vYjNkSmJuQjFkQ0E5SUhSeWRXVXNYRzRnSUhSNWNHVXNYRzU5T2lCN1hHNGdJR052Ykc5eWN6b2djM1J5YVc1blcxMDdYRzRnSUdOdmJHOXlPaUJ6ZEhKcGJtY2dmQ0J1ZFd4c08xeHVJQ0J2YmtOb1lXNW5aVG9nS0dOdmJHOXlPaUJ6ZEhKcGJtY3BJRDArSUhadmFXUTdYRzRnSUc5dVEyeHZjMlU2SUNncElEMCtJSFp2YVdRN1hHNGdJR3hoWW1Wc09pQnpkSEpwYm1jN1hHNGdJSE5vYjNkSmJuQjFkRG9nWW05dmJHVmhianRjYmlBZ2RIbHdaVG9nWENKallXNTJZWE5DWVdOclozSnZkVzVrWENJZ2ZDQmNJbVZzWlcxbGJuUkNZV05yWjNKdmRXNWtYQ0lnZkNCY0ltVnNaVzFsYm5SVGRISnZhMlZjSWp0Y2JuMHBJRDArSUh0Y2JpQWdZMjl1YzNRZ1ptbHljM1JKZEdWdElEMGdVbVZoWTNRdWRYTmxVbVZtUEVoVVRVeENkWFIwYjI1RmJHVnRaVzUwUGlncE8xeHVJQ0JqYjI1emRDQmhZM1JwZG1WSmRHVnRJRDBnVW1WaFkzUXVkWE5sVW1WbVBFaFVUVXhDZFhSMGIyNUZiR1Z0Wlc1MFBpZ3BPMXh1SUNCamIyNXpkQ0JuWVd4c1pYSjVJRDBnVW1WaFkzUXVkWE5sVW1WbVBFaFVUVXhFYVhaRmJHVnRaVzUwUGlncE8xeHVJQ0JqYjI1emRDQmpiMnh2Y2tsdWNIVjBJRDBnVW1WaFkzUXVkWE5sVW1WbVBFaFVUVXhKYm5CMWRFVnNaVzFsYm5RK0tDazdYRzVjYmlBZ1VtVmhZM1F1ZFhObFJXWm1aV04wS0NncElEMCtJSHRjYmlBZ0lDQXZMeUJCWm5SbGNpQjBhR1VnWTI5dGNHOXVaVzUwSUdseklHWnBjbk4wSUcxdmRXNTBaV1FnWm05amRYTWdiMjRnWm1seWMzUWdhVzV3ZFhSY2JpQWdJQ0JwWmlBb1lXTjBhWFpsU1hSbGJTNWpkWEp5Wlc1MEtTQjdYRzRnSUNBZ0lDQmhZM1JwZG1WSmRHVnRMbU4xY25KbGJuUXVabTlqZFhNb0tUdGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tHTnZiRzl5U1c1d2RYUXVZM1Z5Y21WdWRDa2dlMXh1SUNBZ0lDQWdZMjlzYjNKSmJuQjFkQzVqZFhKeVpXNTBMbVp2WTNWektDazdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaG5ZV3hzWlhKNUxtTjFjbkpsYm5RcElIdGNiaUFnSUNBZ0lHZGhiR3hsY25rdVkzVnljbVZ1ZEM1bWIyTjFjeWdwTzF4dUlDQWdJSDFjYmlBZ2ZTd2dXMTBwTzF4dVhHNGdJR052Ym5OMElHaGhibVJzWlV0bGVVUnZkMjRnUFNBb1pYWmxiblE2SUZKbFlXTjBMa3RsZVdKdllYSmtSWFpsYm5RcElEMCtJSHRjYmlBZ0lDQnBaaUFvWlhabGJuUXVhMlY1SUQwOVBTQkxSVmxUTGxSQlFpa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2V5QmhZM1JwZG1WRmJHVnRaVzUwSUgwZ1BTQmtiMk4xYldWdWREdGNiaUFnSUNBZ0lHbG1JQ2hsZG1WdWRDNXphR2xtZEV0bGVTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb1lXTjBhWFpsUld4bGJXVnVkQ0E5UFQwZ1ptbHljM1JKZEdWdExtTjFjbkpsYm5RcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjJ4dmNrbHVjSFYwTG1OMWNuSmxiblEvTG1adlkzVnpLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ1pYWmxiblF1Y0hKbGRtVnVkRVJsWm1GMWJIUW9LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNCbGJITmxJR2xtSUNoaFkzUnBkbVZGYkdWdFpXNTBJRDA5UFNCamIyeHZja2x1Y0hWMExtTjFjbkpsYm5RcElIdGNiaUFnSUNBZ0lDQWdabWx5YzNSSmRHVnRMbU4xY25KbGJuUS9MbVp2WTNWektDazdYRzRnSUNBZ0lDQWdJR1YyWlc1MExuQnlaWFpsYm5SRVpXWmhkV3gwS0NrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNCbGJITmxJR2xtSUNocGMwRnljbTkzUzJWNUtHVjJaVzUwTG10bGVTa3BJSHRjYmlBZ0lDQWdJR052Ym5OMElIc2dZV04wYVhabFJXeGxiV1Z1ZENCOUlEMGdaRzlqZFcxbGJuUTdYRzRnSUNBZ0lDQmpiMjV6ZENCcGMxSlVUQ0E5SUdkbGRFeGhibWQxWVdkbEtDa3VjblJzTzF4dUlDQWdJQ0FnWTI5dWMzUWdhVzVrWlhnZ1BTQkJjbkpoZVM1d2NtOTBiM1I1Y0dVdWFXNWtaWGhQWmk1allXeHNLRnh1SUNBZ0lDQWdJQ0JuWVd4c1pYSjVJUzVqZFhKeVpXNTBJUzVqYUdsc1pISmxiaXhjYmlBZ0lDQWdJQ0FnWVdOMGFYWmxSV3hsYldWdWRDeGNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQnBaaUFvYVc1a1pYZ2dJVDA5SUMweEtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHeGxibWQwYUNBOUlHZGhiR3hsY25raExtTjFjbkpsYm5RaExtTm9hV3hrY21WdUxteGxibWQwYUNBdElDaHphRzkzU1c1d2RYUWdQeUF4SURvZ01DazdYRzRnSUNBZ0lDQWdJR052Ym5OMElHNWxlSFJKYm1SbGVDQTlYRzRnSUNBZ0lDQWdJQ0FnWlhabGJuUXVhMlY1SUQwOVBTQW9hWE5TVkV3Z1B5QkxSVmxUTGtGU1VrOVhYMHhGUmxRZ09pQkxSVmxUTGtGU1VrOVhYMUpKUjBoVUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnUHlBb2FXNWtaWGdnS3lBeEtTQWxJR3hsYm1kMGFGeHVJQ0FnSUNBZ0lDQWdJQ0FnT2lCbGRtVnVkQzVyWlhrZ1BUMDlJQ2hwYzFKVVRDQS9JRXRGV1ZNdVFWSlNUMWRmVWtsSFNGUWdPaUJMUlZsVExrRlNVazlYWDB4RlJsUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBL0lDaHNaVzVuZEdnZ0t5QnBibVJsZUNBdElERXBJQ1VnYkdWdVozUm9YRzRnSUNBZ0lDQWdJQ0FnSUNBNklHVjJaVzUwTG10bGVTQTlQVDBnUzBWWlV5NUJVbEpQVjE5RVQxZE9YRzRnSUNBZ0lDQWdJQ0FnSUNBL0lDaHBibVJsZUNBcklEVXBJQ1VnYkdWdVozUm9YRzRnSUNBZ0lDQWdJQ0FnSUNBNklHVjJaVzUwTG10bGVTQTlQVDBnUzBWWlV5NUJVbEpQVjE5VlVGeHVJQ0FnSUNBZ0lDQWdJQ0FnUHlBb2JHVnVaM1JvSUNzZ2FXNWtaWGdnTFNBMUtTQWxJR3hsYm1kMGFGeHVJQ0FnSUNBZ0lDQWdJQ0FnT2lCcGJtUmxlRHRjYmlBZ0lDQWdJQ0FnS0dkaGJHeGxjbmtoTG1OMWNuSmxiblFoTG1Ob2FXeGtjbVZ1SVZ0dVpYaDBTVzVrWlhoZElHRnpJR0Z1ZVNrdVptOWpkWE1vS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdWMlpXNTBMbkJ5WlhabGJuUkVaV1poZFd4MEtDazdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaGNiaUFnSUNBZ0lHdGxlVUpwYm1ScGJtZHpMbWx1WTJ4MVpHVnpLR1YyWlc1MExtdGxlUzUwYjB4dmQyVnlRMkZ6WlNncEtTQW1KbHh1SUNBZ0lDQWdJV2x6VjNKcGRHRmliR1ZGYkdWdFpXNTBLR1YyWlc1MExuUmhjbWRsZENsY2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR2x1WkdWNElEMGdhMlY1UW1sdVpHbHVaM011YVc1a1pYaFBaaWhsZG1WdWRDNXJaWGt1ZEc5TWIzZGxja05oYzJVb0tTazdYRzRnSUNBZ0lDQW9aMkZzYkdWeWVTRXVZM1Z5Y21WdWRDRXVZMmhwYkdSeVpXNGhXMmx1WkdWNFhTQmhjeUJoYm5rcExtWnZZM1Z6S0NrN1hHNGdJQ0FnSUNCbGRtVnVkQzV3Y21WMlpXNTBSR1ZtWVhWc2RDZ3BPMXh1SUNBZ0lIMGdaV3h6WlNCcFppQW9aWFpsYm5RdWEyVjVJRDA5UFNCTFJWbFRMa1ZUUTBGUVJTQjhmQ0JsZG1WdWRDNXJaWGtnUFQwOUlFdEZXVk11UlU1VVJWSXBJSHRjYmlBZ0lDQWdJR1YyWlc1MExuQnlaWFpsYm5SRVpXWmhkV3gwS0NrN1hHNGdJQ0FnSUNCdmJrTnNiM05sS0NrN1hHNGdJQ0FnZlZ4dUlDQWdJR1YyWlc1MExtNWhkR2wyWlVWMlpXNTBMbk4wYjNCSmJXMWxaR2xoZEdWUWNtOXdZV2RoZEdsdmJpZ3BPMXh1SUNBZ0lHVjJaVzUwTG5OMGIzQlFjbTl3WVdkaGRHbHZiaWdwTzF4dUlDQjlPMXh1WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnUEdScGRseHVJQ0FnSUNBZ1kyeGhjM05PWVcxbFBYdGdZMjlzYjNJdGNHbGphMlZ5SUdOdmJHOXlMWEJwWTJ0bGNpMTBlWEJsTFNSN2RIbHdaWDFnZlZ4dUlDQWdJQ0FnY205c1pUMWNJbVJwWVd4dloxd2lYRzRnSUNBZ0lDQmhjbWxoTFcxdlpHRnNQVndpZEhKMVpWd2lYRzRnSUNBZ0lDQmhjbWxoTFd4aFltVnNQWHQwS0Z3aWJHRmlaV3h6TG1OdmJHOXlVR2xqYTJWeVhDSXBmVnh1SUNBZ0lDQWdiMjVMWlhsRWIzZHVQWHRvWVc1a2JHVkxaWGxFYjNkdWZWeHVJQ0FnSUQ1Y2JpQWdJQ0FnSUR4a2FYWWdZMnhoYzNOT1lXMWxQVndpWTI5c2IzSXRjR2xqYTJWeUxYUnlhV0Z1WjJ4bElHTnZiRzl5TFhCcFkydGxjaTEwY21saGJtZHNaUzF6YUdGa2IzZGNJajQ4TDJScGRqNWNiaUFnSUNBZ0lEeGthWFlnWTJ4aGMzTk9ZVzFsUFZ3aVkyOXNiM0l0Y0dsamEyVnlMWFJ5YVdGdVoyeGxYQ0krUEM5a2FYWStYRzRnSUNBZ0lDQThaR2wyWEc0Z0lDQWdJQ0FnSUdOc1lYTnpUbUZ0WlQxY0ltTnZiRzl5TFhCcFkydGxjaTFqYjI1MFpXNTBYQ0pjYmlBZ0lDQWdJQ0FnY21WbVBYc29aV3dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb1pXd3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHZGhiR3hsY25rdVkzVnljbVZ1ZENBOUlHVnNPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZYMWNiaUFnSUNBZ0lDQWdkR0ZpU1c1a1pYZzllekI5WEc0Z0lDQWdJQ0ErWEc0Z0lDQWdJQ0FnSUh0amIyeHZjbk11YldGd0tDaGZZMjlzYjNJc0lHa3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCZlkyOXNiM0pYYVhSb2IzVjBTR0Z6YUNBOUlGOWpiMnh2Y2k1eVpYQnNZV05sS0Z3aUkxd2lMQ0JjSWx3aUtUdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lDQWdJQ0FnSUNBZ1BHSjFkSFJ2Ymx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYkdGemMwNWhiV1U5WENKamIyeHZjaTF3YVdOclpYSXRjM2RoZEdOb1hDSmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2IyNURiR2xqYXoxN0tHVjJaVzUwS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLR1YyWlc1MExtTjFjbkpsYm5SVVlYSm5aWFFnWVhNZ1NGUk5URUoxZEhSdmJrVnNaVzFsYm5RcExtWnZZM1Z6S0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNURhR0Z1WjJVb1gyTnZiRzl5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZlgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdsMGJHVTllMkFrZTNRb1lHTnZiRzl5Y3k0a2UxOWpiMnh2Y2xkcGRHaHZkWFJJWVhOb2ZXQXBmU1I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSVdselZISmhibk53WVhKbGJuUW9YMk52Ykc5eUtTQS9JR0FnS0NSN1gyTnZiRzl5ZlNsZ0lEb2dYQ0pjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I5SU9LQWxDQWtlMnRsZVVKcGJtUnBibWR6VzJsZExuUnZWWEJ3WlhKRFlYTmxLQ2w5WUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWVhKcFlTMXNZV0psYkQxN2RDaGdZMjlzYjNKekxpUjdYMk52Ykc5eVYybDBhRzkxZEVoaGMyaDlZQ2w5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR0Z5YVdFdGEyVjVjMmh2Y25SamRYUnpQWHRyWlhsQ2FXNWthVzVuYzF0cFhYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2MzUjViR1U5ZTNzZ1kyOXNiM0k2SUY5amIyeHZjaUI5ZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JyWlhrOWUxOWpiMnh2Y24xY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WbVBYc29aV3dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWld3Z0ppWWdhU0E5UFQwZ01Da2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm1seWMzUkpkR1Z0TG1OMWNuSmxiblFnUFNCbGJEdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dWc0lDWW1JRjlqYjJ4dmNpQTlQVDBnWTI5c2IzSXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdGamRHbDJaVWwwWlcwdVkzVnljbVZ1ZENBOUlHVnNPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdmWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVHYjJOMWN6MTdLQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVRMmhoYm1kbEtGOWpiMnh2Y2lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgxOVhHNGdJQ0FnSUNBZ0lDQWdJQ0ErWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSHRwYzFSeVlXNXpjR0Z5Wlc1MEtGOWpiMnh2Y2lrZ1B5QW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQR1JwZGlCamJHRnpjMDVoYldVOVhDSmpiMnh2Y2kxd2FXTnJaWEl0ZEhKaGJuTndZWEpsYm5SY0lqNDhMMlJwZGo1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnS1NBNklIVnVaR1ZtYVc1bFpIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1BITndZVzRnWTJ4aGMzTk9ZVzFsUFZ3aVkyOXNiM0l0Y0dsamEyVnlMV3RsZVdKcGJtUnBibWRjSWo1N2EyVjVRbWx1WkdsdVozTmJhVjE5UEM5emNHRnVQbHh1SUNBZ0lDQWdJQ0FnSUNBZ1BDOWlkWFIwYjI0K1hHNGdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnZlNsOVhHNGdJQ0FnSUNBZ0lIdHphRzkzU1c1d2RYUWdKaVlnS0Z4dUlDQWdJQ0FnSUNBZ0lEeERiMnh2Y2tsdWNIVjBYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyeHZjajE3WTI5c2IzSjlYRzRnSUNBZ0lDQWdJQ0FnSUNCc1lXSmxiRDE3YkdGaVpXeDlYRzRnSUNBZ0lDQWdJQ0FnSUNCdmJrTm9ZVzVuWlQxN0tHTnZiRzl5S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVRMmhoYm1kbEtHTnZiRzl5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDE5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaV1k5ZTJOdmJHOXlTVzV3ZFhSOVhHNGdJQ0FnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ0FnS1gxY2JpQWdJQ0FnSUR3dlpHbDJQbHh1SUNBZ0lEd3ZaR2wyUGx4dUlDQXBPMXh1ZlR0Y2JseHVZMjl1YzNRZ1EyOXNiM0pKYm5CMWRDQTlJRkpsWVdOMExtWnZjbmRoY21SU1pXWW9YRzRnSUNoY2JpQWdJQ0I3WEc0Z0lDQWdJQ0JqYjJ4dmNpeGNiaUFnSUNBZ0lHOXVRMmhoYm1kbExGeHVJQ0FnSUNBZ2JHRmlaV3dzWEc0Z0lDQWdmVG9nZTF4dUlDQWdJQ0FnWTI5c2IzSTZJSE4wY21sdVp5QjhJRzUxYkd3N1hHNGdJQ0FnSUNCdmJrTm9ZVzVuWlRvZ0tHTnZiRzl5T2lCemRISnBibWNwSUQwK0lIWnZhV1E3WEc0Z0lDQWdJQ0JzWVdKbGJEb2djM1J5YVc1bk8xeHVJQ0FnSUgwc1hHNGdJQ0FnY21WbUxGeHVJQ0FwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0JiYVc1dVpYSldZV3gxWlN3Z2MyVjBTVzV1WlhKV1lXeDFaVjBnUFNCU1pXRmpkQzUxYzJWVGRHRjBaU2hqYjJ4dmNpazdYRzRnSUNBZ1kyOXVjM1FnYVc1d2RYUlNaV1lnUFNCU1pXRmpkQzUxYzJWU1pXWW9iblZzYkNrN1hHNWNiaUFnSUNCU1pXRmpkQzUxYzJWRlptWmxZM1FvS0NrZ1BUNGdlMXh1SUNBZ0lDQWdjMlYwU1c1dVpYSldZV3gxWlNoamIyeHZjaWs3WEc0Z0lDQWdmU3dnVzJOdmJHOXlYU2s3WEc1Y2JpQWdJQ0JTWldGamRDNTFjMlZKYlhCbGNtRjBhWFpsU0dGdVpHeGxLSEpsWml3Z0tDa2dQVDRnYVc1d2RYUlNaV1l1WTNWeWNtVnVkQ2s3WEc1Y2JpQWdJQ0JqYjI1emRDQmphR0Z1WjJWRGIyeHZjaUE5SUZKbFlXTjBMblZ6WlVOaGJHeGlZV05yS0Z4dUlDQWdJQ0FnS0dsdWNIVjBWbUZzZFdVNklITjBjbWx1WnlrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjJZV3gxWlNBOUlHbHVjSFYwVm1Gc2RXVXVkRzlNYjNkbGNrTmhjMlVvS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTI5c2IzSWdQU0JuWlhSRGIyeHZjaWgyWVd4MVpTazdYRzRnSUNBZ0lDQWdJR2xtSUNoamIyeHZjaWtnZTF4dUlDQWdJQ0FnSUNBZ0lHOXVRMmhoYm1kbEtHTnZiRzl5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnpaWFJKYm01bGNsWmhiSFZsS0haaGJIVmxLVHRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0JiYjI1RGFHRnVaMlZkTEZ4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lDQWdQR3hoWW1Wc0lHTnNZWE56VG1GdFpUMWNJbU52Ykc5eUxXbHVjSFYwTFdOdmJuUmhhVzVsY2x3aVBseHVJQ0FnSUNBZ0lDQThaR2wySUdOc1lYTnpUbUZ0WlQxY0ltTnZiRzl5TFhCcFkydGxjaTFvWVhOb1hDSStJend2WkdsMlBseHVJQ0FnSUNBZ0lDQThhVzV3ZFhSY2JpQWdJQ0FnSUNBZ0lDQnpjR1ZzYkVOb1pXTnJQWHRtWVd4elpYMWNiaUFnSUNBZ0lDQWdJQ0JqYkdGemMwNWhiV1U5WENKamIyeHZjaTF3YVdOclpYSXRhVzV3ZFhSY0lseHVJQ0FnSUNBZ0lDQWdJR0Z5YVdFdGJHRmlaV3c5ZTJ4aFltVnNmVnh1SUNBZ0lDQWdJQ0FnSUc5dVEyaGhibWRsUFhzb1pYWmxiblFwSUQwK0lHTm9ZVzVuWlVOdmJHOXlLR1YyWlc1MExuUmhjbWRsZEM1MllXeDFaU2w5WEc0Z0lDQWdJQ0FnSUNBZ2RtRnNkV1U5ZXlocGJtNWxjbFpoYkhWbElIeDhJRndpWENJcExuSmxjR3hoWTJVb0wxNGpMeXdnWENKY0lpbDlYRzRnSUNBZ0lDQWdJQ0FnYjI1Q2JIVnlQWHNvS1NBOVBpQnpaWFJKYm01bGNsWmhiSFZsS0dOdmJHOXlLWDFjYmlBZ0lDQWdJQ0FnSUNCeVpXWTllMmx1Y0hWMFVtVm1mVnh1SUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnUEM5c1lXSmxiRDVjYmlBZ0lDQXBPMXh1SUNCOUxGeHVLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRU52Ykc5eVVHbGphMlZ5SUQwZ0tIdGNiaUFnZEhsd1pTeGNiaUFnWTI5c2IzSXNYRzRnSUc5dVEyaGhibWRsTEZ4dUlDQnNZV0psYkN4Y2JpQWdhWE5CWTNScGRtVXNYRzRnSUhObGRFRmpkR2wyWlN4Y2JuMDZJSHRjYmlBZ2RIbHdaVG9nWENKallXNTJZWE5DWVdOclozSnZkVzVrWENJZ2ZDQmNJbVZzWlcxbGJuUkNZV05yWjNKdmRXNWtYQ0lnZkNCY0ltVnNaVzFsYm5SVGRISnZhMlZjSWp0Y2JpQWdZMjlzYjNJNklITjBjbWx1WnlCOElHNTFiR3c3WEc0Z0lHOXVRMmhoYm1kbE9pQW9ZMjlzYjNJNklITjBjbWx1WnlrZ1BUNGdkbTlwWkR0Y2JpQWdiR0ZpWld3NklITjBjbWx1Wnp0Y2JpQWdhWE5CWTNScGRtVTZJR0p2YjJ4bFlXNDdYRzRnSUhObGRFRmpkR2wyWlRvZ0tHRmpkR2wyWlRvZ1ltOXZiR1ZoYmlrZ1BUNGdkbTlwWkR0Y2JuMHBJRDArSUh0Y2JpQWdZMjl1YzNRZ2NHbGphMlZ5UW5WMGRHOXVJRDBnVW1WaFkzUXVkWE5sVW1WbVBFaFVUVXhDZFhSMGIyNUZiR1Z0Wlc1MFBpaHVkV3hzS1R0Y2JseHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lEeGthWFkrWEc0Z0lDQWdJQ0E4WkdsMklHTnNZWE56VG1GdFpUMWNJbU52Ykc5eUxYQnBZMnRsY2kxamIyNTBjbTlzTFdOdmJuUmhhVzVsY2x3aVBseHVJQ0FnSUNBZ0lDQThZblYwZEc5dVhHNGdJQ0FnSUNBZ0lDQWdZMnhoYzNOT1lXMWxQVndpWTI5c2IzSXRjR2xqYTJWeUxXeGhZbVZzTFhOM1lYUmphRndpWEc0Z0lDQWdJQ0FnSUNBZ1lYSnBZUzFzWVdKbGJEMTdiR0ZpWld4OVhHNGdJQ0FnSUNBZ0lDQWdjM1I1YkdVOWUyTnZiRzl5SUQ4Z2V5QmNJaTB0YzNkaGRHTm9MV052Ykc5eVhDSTZJR052Ykc5eUlIMGdPaUIxYm1SbFptbHVaV1I5WEc0Z0lDQWdJQ0FnSUNBZ2IyNURiR2xqYXoxN0tDa2dQVDRnYzJWMFFXTjBhWFpsS0NGcGMwRmpkR2wyWlNsOVhHNGdJQ0FnSUNBZ0lDQWdjbVZtUFh0d2FXTnJaWEpDZFhSMGIyNTlYRzRnSUNBZ0lDQWdJQzgrWEc0Z0lDQWdJQ0FnSUR4RGIyeHZja2x1Y0hWMFhHNGdJQ0FnSUNBZ0lDQWdZMjlzYjNJOWUyTnZiRzl5ZlZ4dUlDQWdJQ0FnSUNBZ0lHeGhZbVZzUFh0c1lXSmxiSDFjYmlBZ0lDQWdJQ0FnSUNCdmJrTm9ZVzVuWlQxN0tHTnZiRzl5S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCdmJrTm9ZVzVuWlNoamIyeHZjaWs3WEc0Z0lDQWdJQ0FnSUNBZ2ZYMWNiaUFnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJRHd2WkdsMlBseHVJQ0FnSUNBZ1BGSmxZV04wTGxOMWMzQmxibk5sSUdaaGJHeGlZV05yUFZ3aVhDSStYRzRnSUNBZ0lDQWdJSHRwYzBGamRHbDJaU0EvSUNoY2JpQWdJQ0FnSUNBZ0lDQThVRzl3YjNabGNseHVJQ0FnSUNBZ0lDQWdJQ0FnYjI1RGJHOXpaVkpsY1hWbGMzUTlleWhsZG1WdWRDa2dQVDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdaWFpsYm5RdWRHRnlaMlYwSUNFOVBTQndhV05yWlhKQ2RYUjBiMjR1WTNWeWNtVnVkQ0FtSmlCelpYUkJZM1JwZG1Vb1ptRnNjMlVwWEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnUGx4dUlDQWdJQ0FnSUNBZ0lDQWdQRkJwWTJ0bGNseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyeHZjbk05ZTJOdmJHOXljMXQwZVhCbFhYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXNiM0k5ZTJOdmJHOXlJSHg4SUc1MWJHeDlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVRMmhoYm1kbFBYc29ZMmhoYm1kbFpFTnZiRzl5S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVEYUdGdVoyVW9ZMmhoYm1kbFpFTnZiRzl5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZlgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1RGJHOXpaVDE3S0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5sZEVGamRHbDJaU2htWVd4elpTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjR2xqYTJWeVFuVjBkRzl1TG1OMWNuSmxiblEvTG1adlkzVnpLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSDE5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR3hoWW1Wc1BYdHNZV0psYkgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJodmQwbHVjSFYwUFh0bVlXeHpaWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdkSGx3WlQxN2RIbHdaWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJQ0FnUEM5UWIzQnZkbVZ5UGx4dUlDQWdJQ0FnSUNBcElEb2diblZzYkgxY2JpQWdJQ0FnSUR3dlVtVmhZM1F1VTNWemNHVnVjMlUrWEc0Z0lDQWdQQzlrYVhZK1hHNGdJQ2s3WEc1OU8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvQ29sb3JQaWNrZXIudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0NvbmZpcm1EaWFsb2cudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9Db25maXJtRGlhbG9nLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkZWZhdWx0XFxcIjogKCkgPT4gKF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfRGlhbG9nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0RpYWxvZyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9EaWFsb2cudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1Rvb2xCdXR0b24gKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVG9vbEJ1dHRvbi50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0NvbmZpcm1EaWFsb2dfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Db25maXJtRGlhbG9nLnNjc3MgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvQ29uZmlybURpYWxvZy5zY3NzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Db25maXJtRGlhbG9nX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfQ29uZmlybURpYWxvZ19zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18pO1xcbnZhciBfX3Jlc3QgPSAodW5kZWZpbmVkICYmIHVuZGVmaW5lZC5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XFxuICAgIHZhciB0ID0ge307XFxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxcbiAgICAgICAgdFtwXSA9IHNbcF07XFxuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFxcXCJmdW5jdGlvblxcXCIpXFxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcXG4gICAgICAgIH1cXG4gICAgcmV0dXJuIHQ7XFxufTtcXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBDb25maXJtRGlhbG9nID0gKHByb3BzKSA9PiB7XFxuICAgIGNvbnN0IHsgb25Db25maXJtLCBvbkNhbmNlbCwgY2hpbGRyZW4sIGNvbmZpcm1UZXh0ID0gKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50KShcXFwiYnV0dG9ucy5jb25maXJtXFxcIiksIGNhbmNlbFRleHQgPSAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnQpKFxcXCJidXR0b25zLmNhbmNlbFxcXCIpLCBjbGFzc05hbWUgPSBcXFwiXFxcIiB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcXFwib25Db25maXJtXFxcIiwgXFxcIm9uQ2FuY2VsXFxcIiwgXFxcImNoaWxkcmVuXFxcIiwgXFxcImNvbmZpcm1UZXh0XFxcIiwgXFxcImNhbmNlbFRleHRcXFwiLCBcXFwiY2xhc3NOYW1lXFxcIl0pO1xcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoX0RpYWxvZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkRpYWxvZywgT2JqZWN0LmFzc2lnbih7IG9uQ2xvc2VSZXF1ZXN0OiBvbkNhbmNlbCwgc21hbGw6IHRydWUgfSwgcmVzdCwgeyBjbGFzc05hbWU6IGBjb25maXJtLWRpYWxvZyAke2NsYXNzTmFtZX1gIH0sIHsgY2hpbGRyZW46IFtjaGlsZHJlbiwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcImNvbmZpcm0tZGlhbG9nLWJ1dHRvbnNcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5Ub29sQnV0dG9uLCB7IHR5cGU6IFxcXCJidXR0b25cXFwiLCB0aXRsZTogY2FuY2VsVGV4dCwgXFxcImFyaWEtbGFiZWxcXFwiOiBjYW5jZWxUZXh0LCBsYWJlbDogY2FuY2VsVGV4dCwgb25DbGljazogb25DYW5jZWwsIGNsYXNzTmFtZTogXFxcImNvbmZpcm0tZGlhbG9nLS1jYW5jZWxcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLlRvb2xCdXR0b24sIHsgdHlwZTogXFxcImJ1dHRvblxcXCIsIHRpdGxlOiBjb25maXJtVGV4dCwgXFxcImFyaWEtbGFiZWxcXFwiOiBjb25maXJtVGV4dCwgbGFiZWw6IGNvbmZpcm1UZXh0LCBvbkNsaWNrOiBvbkNvbmZpcm0sIGNsYXNzTmFtZTogXFxcImNvbmZpcm0tZGlhbG9nLS1jb25maXJtXFxcIiB9LCB2b2lkIDApXSB9KSwgdm9pZCAwKV0gfSksIHZvaWQgMCkpO1xcbn07XFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9IChDb25maXJtRGlhbG9nKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OURiMjVtYVhKdFJHbGhiRzluTG5SemVDNXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN096czdPenM3T3pzN096czdPMEZCUVRSQ08wRkJRMjFDTzBGQlEwdzdRVUZGV2p0QlFWRTVRaXhOUVVGTkxHRkJRV0VzUjBGQlJ5eERRVUZETEV0QlFWa3NSVUZCUlN4RlFVRkZPMGxCUTNKRExFMUJRVTBzUlVGRFNpeFRRVUZUTEVWQlExUXNVVUZCVVN4RlFVTlNMRkZCUVZFc1JVRkRVaXhYUVVGWExFZEJRVWNzZDBOQlFVTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eEZRVU5zUXl4VlFVRlZMRWRCUVVjc2QwTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhGUVVOb1F5eFRRVUZUTEVkQlFVY3NSVUZCUlN4TFFVVmFMRXRCUVVzc1JVRkVTaXhKUVVGSkxGVkJRMHdzUzBGQlN5eEZRVkpJTEN0RlFWRk1MRU5CUVZFc1EwRkJRenRKUVVOV0xFOUJRVThzUTBGRFRDeDNSRUZCUXl3eVEwRkJUU3hyUWtGRFRDeGpRVUZqTEVWQlFVVXNVVUZCVVN4RlFVTjRRaXhMUVVGTExFVkJRVVVzU1VGQlNTeEpRVU5RTEVsQlFVa3NTVUZEVWl4VFFVRlRMRVZCUVVVc2EwSkJRV3RDTEZOQlFWTXNSVUZCUlN4cFFrRkZka01zVVVGQlVTeEZRVU5VTEN0RlFVRkxMRk5CUVZNc1JVRkJReXgzUWtGQmQwSXNhVUpCUTNKRExIVkVRVUZETEcxRVFVRlZMRWxCUTFRc1NVRkJTU3hGUVVGRExGRkJRVkVzUlVGRFlpeExRVUZMTEVWQlFVVXNWVUZCVlN4blFrRkRUQ3hWUVVGVkxFVkJRM1JDTEV0QlFVc3NSVUZCUlN4VlFVRlZMRVZCUTJwQ0xFOUJRVThzUlVGQlJTeFJRVUZSTEVWQlEycENMRk5CUVZNc1JVRkJReXgzUWtGQmQwSXNWMEZEYkVNc1JVRkRSaXgxUkVGQlF5eHRSRUZCVlN4SlFVTlVMRWxCUVVrc1JVRkJReXhSUVVGUkxFVkJRMklzUzBGQlN5eEZRVUZGTEZkQlFWY3NaMEpCUTA0c1YwRkJWeXhGUVVOMlFpeExRVUZMTEVWQlFVVXNWMEZCVnl4RlFVTnNRaXhQUVVGUExFVkJRVVVzVTBGQlV5eEZRVU5zUWl4VFFVRlRMRVZCUVVNc2VVSkJRWGxDTEZkQlEyNURMR0ZCUTBVc1lVRkRReXhEUVVOV0xFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZEUml4cFJVRkJaU3hoUVVGaExFVkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OURiMjVtYVhKdFJHbGhiRzluTG5SemVEOW1ZVEV3SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lIUWdmU0JtY205dElGd2lMaTR2YVRFNGJsd2lPMXh1YVcxd2IzSjBJSHNnUkdsaGJHOW5MQ0JFYVdGc2IyZFFjbTl3Y3lCOUlHWnliMjBnWENJdUwwUnBZV3h2WjF3aU8xeHVhVzF3YjNKMElIc2dWRzl2YkVKMWRIUnZiaUI5SUdaeWIyMGdYQ0l1TDFSdmIyeENkWFIwYjI1Y0lqdGNibHh1YVcxd2IzSjBJRndpTGk5RGIyNW1hWEp0UkdsaGJHOW5Mbk5qYzNOY0lqdGNibHh1YVc1MFpYSm1ZV05sSUZCeWIzQnpJR1Y0ZEdWdVpITWdUMjFwZER4RWFXRnNiMmRRY205d2N5d2dYQ0p2YmtOc2IzTmxVbVZ4ZFdWemRGd2lQaUI3WEc0Z0lHOXVRMjl1Wm1seWJUb2dLQ2tnUFQ0Z2RtOXBaRHRjYmlBZ2IyNURZVzVqWld3NklDZ3BJRDArSUhadmFXUTdYRzRnSUdOdmJtWnBjbTFVWlhoMFB6b2djM1J5YVc1bk8xeHVJQ0JqWVc1alpXeFVaWGgwUHpvZ2MzUnlhVzVuTzF4dWZWeHVZMjl1YzNRZ1EyOXVabWx5YlVScFlXeHZaeUE5SUNod2NtOXdjem9nVUhKdmNITXBJRDArSUh0Y2JpQWdZMjl1YzNRZ2UxeHVJQ0FnSUc5dVEyOXVabWx5YlN4Y2JpQWdJQ0J2YmtOaGJtTmxiQ3hjYmlBZ0lDQmphR2xzWkhKbGJpeGNiaUFnSUNCamIyNW1hWEp0VkdWNGRDQTlJSFFvWENKaWRYUjBiMjV6TG1OdmJtWnBjbTFjSWlrc1hHNGdJQ0FnWTJGdVkyVnNWR1Y0ZENBOUlIUW9YQ0ppZFhSMGIyNXpMbU5oYm1ObGJGd2lLU3hjYmlBZ0lDQmpiR0Z6YzA1aGJXVWdQU0JjSWx3aUxGeHVJQ0FnSUM0dUxuSmxjM1JjYmlBZ2ZTQTlJSEJ5YjNCek8xeHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lEeEVhV0ZzYjJkY2JpQWdJQ0FnSUc5dVEyeHZjMlZTWlhGMVpYTjBQWHR2YmtOaGJtTmxiSDFjYmlBZ0lDQWdJSE50WVd4c1BYdDBjblZsZlZ4dUlDQWdJQ0FnZXk0dUxuSmxjM1I5WEc0Z0lDQWdJQ0JqYkdGemMwNWhiV1U5ZTJCamIyNW1hWEp0TFdScFlXeHZaeUFrZTJOc1lYTnpUbUZ0WlgxZ2ZWeHVJQ0FnSUQ1Y2JpQWdJQ0FnSUh0amFHbHNaSEpsYm4xY2JpQWdJQ0FnSUR4a2FYWWdZMnhoYzNOT1lXMWxQVndpWTI5dVptbHliUzFrYVdGc2IyY3RZblYwZEc5dWMxd2lQbHh1SUNBZ0lDQWdJQ0E4Vkc5dmJFSjFkSFJ2Ymx4dUlDQWdJQ0FnSUNBZ0lIUjVjR1U5WENKaWRYUjBiMjVjSWx4dUlDQWdJQ0FnSUNBZ0lIUnBkR3hsUFh0allXNWpaV3hVWlhoMGZWeHVJQ0FnSUNBZ0lDQWdJR0Z5YVdFdGJHRmlaV3c5ZTJOaGJtTmxiRlJsZUhSOVhHNGdJQ0FnSUNBZ0lDQWdiR0ZpWld3OWUyTmhibU5sYkZSbGVIUjlYRzRnSUNBZ0lDQWdJQ0FnYjI1RGJHbGphejE3YjI1RFlXNWpaV3g5WEc0Z0lDQWdJQ0FnSUNBZ1kyeGhjM05PWVcxbFBWd2lZMjl1Wm1seWJTMWthV0ZzYjJjdExXTmhibU5sYkZ3aVhHNGdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJRHhVYjI5c1FuVjBkRzl1WEc0Z0lDQWdJQ0FnSUNBZ2RIbHdaVDFjSW1KMWRIUnZibHdpWEc0Z0lDQWdJQ0FnSUNBZ2RHbDBiR1U5ZTJOdmJtWnBjbTFVWlhoMGZWeHVJQ0FnSUNBZ0lDQWdJR0Z5YVdFdGJHRmlaV3c5ZTJOdmJtWnBjbTFVWlhoMGZWeHVJQ0FnSUNBZ0lDQWdJR3hoWW1Wc1BYdGpiMjVtYVhKdFZHVjRkSDFjYmlBZ0lDQWdJQ0FnSUNCdmJrTnNhV05yUFh0dmJrTnZibVpwY20xOVhHNGdJQ0FnSUNBZ0lDQWdZMnhoYzNOT1lXMWxQVndpWTI5dVptbHliUzFrYVdGc2IyY3RMV052Ym1acGNtMWNJbHh1SUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnUEM5a2FYWStYRzRnSUNBZ1BDOUVhV0ZzYjJjK1hHNGdJQ2s3WEc1OU8xeHVaWGh3YjNKMElHUmxabUYxYkhRZ1EyOXVabWx5YlVScFlXeHZaenRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9Db25maXJtRGlhbG9nLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9Db250ZXh0TWVudS50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9Db250ZXh0TWVudS50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2RvbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QtZG9tICovIFxcXCJyZWFjdC1kb21cXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBjbHN4ICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY2xzeC9kaXN0L2Nsc3gubS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfUG9wb3Zlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Qb3BvdmVyICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1BvcG92ZXIudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pMThuICovIFxcXCIuLi8uLi9pMThuLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Db250ZXh0TWVudV9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0NvbnRleHRNZW51LnNjc3MgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvQ29udGV4dE1lbnUuc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfQ29udGV4dE1lbnVfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9Db250ZXh0TWVudV9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYWN0aW9uc19zaG9ydGN1dHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2FjdGlvbnMvc2hvcnRjdXRzICovIFxcXCIuLi8uLi9hY3Rpb25zL3Nob3J0Y3V0cy50c1xcXCIpO1xcblxcblxcblxcblxcblxcblxcblxcbmNvbnN0IENvbnRleHRNZW51ID0gKHsgb3B0aW9ucywgb25DbG9zZVJlcXVlc3QsIHRvcCwgbGVmdCwgYWN0aW9uTWFuYWdlciwgYXBwU3RhdGUsIGVsZW1lbnRzLCB9KSA9PiB7XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9Qb3BvdmVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uUG9wb3ZlciwgT2JqZWN0LmFzc2lnbih7IG9uQ2xvc2VSZXF1ZXN0OiBvbkNsb3NlUmVxdWVzdCwgdG9wOiB0b3AsIGxlZnQ6IGxlZnQsIGZpdEluVmlld3BvcnQ6IHRydWUsIG9mZnNldExlZnQ6IGFwcFN0YXRlLm9mZnNldExlZnQsIG9mZnNldFRvcDogYXBwU3RhdGUub2Zmc2V0VG9wLCB2aWV3cG9ydFdpZHRoOiBhcHBTdGF0ZS53aWR0aCwgdmlld3BvcnRIZWlnaHQ6IGFwcFN0YXRlLmhlaWdodCB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInVsXFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcImNvbnRleHQtbWVudVxcXCIsIG9uQ29udGV4dE1lbnU6IChldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSB9LCB7IGNoaWxkcmVuOiBvcHRpb25zLm1hcCgob3B0aW9uLCBpZHgpID0+IHtcXG4gICAgICAgICAgICAgICAgdmFyIF9hO1xcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9uID09PSBcXFwic2VwYXJhdG9yXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiaHJcXFwiLCB7IGNsYXNzTmFtZTogXFxcImNvbnRleHQtbWVudS1vcHRpb24tc2VwYXJhdG9yXFxcIiB9LCBpZHgpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGlvbk5hbWUgPSBvcHRpb24ubmFtZTtcXG4gICAgICAgICAgICAgICAgbGV0IGxhYmVsID0gXFxcIlxcXCI7XFxuICAgICAgICAgICAgICAgIGlmIChvcHRpb24uY29udGV4dEl0ZW1MYWJlbCkge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24uY29udGV4dEl0ZW1MYWJlbCA9PT0gXFxcImZ1bmN0aW9uXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShvcHRpb24uY29udGV4dEl0ZW1MYWJlbChlbGVtZW50cywgYXBwU3RhdGUpKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShvcHRpb24uY29udGV4dEl0ZW1MYWJlbCk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImxpXFxcIiwgT2JqZWN0LmFzc2lnbih7IFxcXCJkYXRhLXRlc3RpZFxcXCI6IGFjdGlvbk5hbWUsIG9uQ2xpY2s6IG9uQ2xvc2VSZXF1ZXN0IH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImJ1dHRvblxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6ICgwLGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1tcXFwiZGVmYXVsdFxcXCJdKShcXFwiY29udGV4dC1tZW51LW9wdGlvblxcXCIsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFuZ2Vyb3VzOiBhY3Rpb25OYW1lID09PSBcXFwiZGVsZXRlU2VsZWN0ZWRFbGVtZW50c1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrbWFyazogKF9hID0gb3B0aW9uLmNoZWNrZWQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9wdGlvbiwgYXBwU3RhdGUpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLCBvbkNsaWNrOiAoKSA9PiBhY3Rpb25NYW5hZ2VyLmV4ZWN1dGVBY3Rpb24ob3B0aW9uKSB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiY29udGV4dC1tZW51LW9wdGlvbl9fbGFiZWxcXFwiIH0sIHsgY2hpbGRyZW46IGxhYmVsIH0pLCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImtiZFxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJjb250ZXh0LW1lbnUtb3B0aW9uX19zaG9ydGN1dFxcXCIgfSwgeyBjaGlsZHJlbjogYWN0aW9uTmFtZVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKDAsX2FjdGlvbnNfc2hvcnRjdXRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uZ2V0U2hvcnRjdXRGcm9tU2hvcnRjdXROYW1lKShhY3Rpb25OYW1lKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXFxcIlxcXCIgfSksIHZvaWQgMCldIH0pLCB2b2lkIDApIH0pLCBpZHgpKTtcXG4gICAgICAgICAgICB9KSB9KSwgdm9pZCAwKSB9KSwgdm9pZCAwKSk7XFxufTtcXG5jb25zdCBjb250ZXh0TWVudU5vZGVCeUNvbnRhaW5lciA9IG5ldyBXZWFrTWFwKCk7XFxuY29uc3QgZ2V0Q29udGV4dE1lbnVOb2RlID0gKGNvbnRhaW5lcikgPT4ge1xcbiAgICBsZXQgY29udGV4dE1lbnVOb2RlID0gY29udGV4dE1lbnVOb2RlQnlDb250YWluZXIuZ2V0KGNvbnRhaW5lcik7XFxuICAgIGlmIChjb250ZXh0TWVudU5vZGUpIHtcXG4gICAgICAgIHJldHVybiBjb250ZXh0TWVudU5vZGU7XFxuICAgIH1cXG4gICAgY29udGV4dE1lbnVOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcXFwiZGl2XFxcIik7XFxuICAgIGNvbnRhaW5lclxcbiAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoXFxcIi5leGNhbGlkcmF3LWNvbnRleHRNZW51Q29udGFpbmVyXFxcIilcXG4gICAgICAgIC5hcHBlbmRDaGlsZChjb250ZXh0TWVudU5vZGUpO1xcbiAgICBjb250ZXh0TWVudU5vZGVCeUNvbnRhaW5lci5zZXQoY29udGFpbmVyLCBjb250ZXh0TWVudU5vZGUpO1xcbiAgICByZXR1cm4gY29udGV4dE1lbnVOb2RlO1xcbn07XFxuY29uc3QgaGFuZGxlQ2xvc2UgPSAoY29udGFpbmVyKSA9PiB7XFxuICAgIGNvbnN0IGNvbnRleHRNZW51Tm9kZSA9IGNvbnRleHRNZW51Tm9kZUJ5Q29udGFpbmVyLmdldChjb250YWluZXIpO1xcbiAgICBpZiAoY29udGV4dE1lbnVOb2RlKSB7XFxuICAgICAgICAoMCxyZWFjdF9kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51bm1vdW50Q29tcG9uZW50QXROb2RlKShjb250ZXh0TWVudU5vZGUpO1xcbiAgICAgICAgY29udGV4dE1lbnVOb2RlLnJlbW92ZSgpO1xcbiAgICAgICAgY29udGV4dE1lbnVOb2RlQnlDb250YWluZXIuZGVsZXRlKGNvbnRhaW5lcik7XFxuICAgIH1cXG59O1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoe1xcbiAgICBwdXNoKHBhcmFtcykge1xcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IEFycmF5Lm9mKCk7XFxuICAgICAgICBwYXJhbXMub3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcXG4gICAgICAgICAgICBpZiAob3B0aW9uKSB7XFxuICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaChvcHRpb24pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcbiAgICAgICAgaWYgKG9wdGlvbnMubGVuZ3RoKSB7XFxuICAgICAgICAgICAgKDAscmVhY3RfZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ucmVuZGVyKSgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoQ29udGV4dE1lbnUsIHsgdG9wOiBwYXJhbXMudG9wLCBsZWZ0OiBwYXJhbXMubGVmdCwgb3B0aW9uczogb3B0aW9ucywgb25DbG9zZVJlcXVlc3Q6ICgpID0+IGhhbmRsZUNsb3NlKHBhcmFtcy5jb250YWluZXIpLCBhY3Rpb25NYW5hZ2VyOiBwYXJhbXMuYWN0aW9uTWFuYWdlciwgYXBwU3RhdGU6IHBhcmFtcy5hcHBTdGF0ZSwgZWxlbWVudHM6IHBhcmFtcy5lbGVtZW50cyB9LCB2b2lkIDApLCBnZXRDb250ZXh0TWVudU5vZGUocGFyYW1zLmNvbnRhaW5lcikpO1xcbiAgICAgICAgfVxcbiAgICB9LFxcbn0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5RGIyNTBaWGgwVFdWdWRTNTBjM2d1YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN1FVRkJNa1E3UVVGRGJrTTdRVUZEV1R0QlFVTlNPMEZCUlVFN1FVRkpSVHRCUVd0Q09VSXNUVUZCVFN4WFFVRlhMRWRCUVVjc1EwRkJReXhGUVVOdVFpeFBRVUZQTEVWQlExQXNZMEZCWXl4RlFVTmtMRWRCUVVjc1JVRkRTQ3hKUVVGSkxFVkJRMG9zWVVGQllTeEZRVU5pTEZGQlFWRXNSVUZEVWl4UlFVRlJMRWRCUTFNc1JVRkJSU3hGUVVGRk8wbEJRM0pDTEU5QlFVOHNRMEZEVEN4MVJFRkJReXcyUTBGQlR5eHJRa0ZEVGl4alFVRmpMRVZCUVVVc1kwRkJZeXhGUVVNNVFpeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVTlNMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRMVlzWVVGQllTeEZRVUZGTEVsQlFVa3NSVUZEYmtJc1ZVRkJWU3hGUVVGRkxGRkJRVkVzUTBGQlF5eFZRVUZWTEVWQlF5OUNMRk5CUVZNc1JVRkJSU3hSUVVGUkxFTkJRVU1zVTBGQlV5eEZRVU0zUWl4aFFVRmhMRVZCUVVVc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGRE4wSXNZMEZCWXl4RlFVRkZMRkZCUVZFc1EwRkJReXhOUVVGTkxHZENRVVV2UWl3MlJVRkRSU3hUUVVGVExFVkJRVU1zWTBGQll5eEZRVU40UWl4aFFVRmhMRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4alFVRmpMRVZCUVVVc1owSkJSUzlETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVWQlFVVTdPMmRDUVVNelFpeEpRVUZKTEUxQlFVMHNTMEZCU3l4WFFVRlhMRVZCUVVVN2IwSkJRekZDTEU5QlFVOHNLMFJCUVdNc1UwRkJVeXhGUVVGRExDdENRVUVyUWl4SlFVRTVReXhIUVVGSExFTkJRVGhETEVOQlFVTTdhVUpCUTI1Rk8yZENRVVZFTEUxQlFVMHNWVUZCVlN4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU03WjBKQlF5OUNMRWxCUVVrc1MwRkJTeXhIUVVGSExFVkJRVVVzUTBGQlF6dG5Ra0ZEWml4SlFVRkpMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNSVUZCUlR0dlFrRkRNMElzU1VGQlNTeFBRVUZQTEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUzBGQlN5eFZRVUZWTEVWQlFVVTdkMEpCUTJwRUxFdEJRVXNzUjBGQlJ5eDNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF6dHhRa0ZEZUVRN2VVSkJRVTA3ZDBKQlEwd3NTMEZCU3l4SFFVRkhMSGREUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU03Y1VKQlEzQkRPMmxDUVVOR08yZENRVU5FTEU5QlFVOHNRMEZEVEN3MFJrRkJNa0lzVlVGQlZTeEZRVUZGTEU5QlFVOHNSVUZCUlN4alFVRmpMR2RDUVVNMVJDeHJSa0ZEUlN4VFFVRlRMRVZCUVVVc1owUkJRVWtzUTBGQlF5eHhRa0ZCY1VJc1JVRkJSVHMwUWtGRGNrTXNVMEZCVXl4RlFVRkZMRlZCUVZVc1MwRkJTeXgzUWtGQmQwSTdORUpCUTJ4RUxGTkJRVk1zUlVGQlJTeFpRVUZOTEVOQlFVTXNUMEZCVHl3clEwRkJaQ3hOUVVGTkxFVkJRVmNzVVVGQlVTeERRVUZETzNsQ1FVTjBReXhEUVVGRExFVkJRMFlzVDBGQlR5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMR0ZCUVdFc1EwRkJReXhoUVVGaExFTkJRVU1zVFVGQlRTeERRVUZETEdsQ1FVVnNSQ3c0UlVGQlN5eFRRVUZUTEVWQlFVTXNORUpCUVRSQ0xHZENRVUZGTEV0QlFVc3NXVUZCVHl4RlFVTjZSQ3c0UlVGQlN5eFRRVUZUTEVWQlFVTXNLMEpCUVN0Q0xHZENRVU16UXl4VlFVRlZPMjlEUVVOVUxFTkJRVU1zUTBGQlF5d3JSVUZCTWtJc1EwRkJReXhWUVVFd1FpeERRVUZETzI5RFFVTjZSQ3hEUVVGRExFTkJRVU1zUlVGQlJTeFpRVU5HTEdGQlEwTXNTMEZrUml4SFFVRkhMRU5CWlZBc1EwRkRUaXhEUVVGRE8xbEJRMG9zUTBGQlF5eERRVUZETEZsQlEwTXNXVUZEUnl4RFFVTllMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU03UVVGRlJpeE5RVUZOTERCQ1FVRXdRaXhIUVVGSExFbEJRVWtzVDBGQlR5eEZRVUVyUWl4RFFVRkRPMEZCUlRsRkxFMUJRVTBzYTBKQlFXdENMRWRCUVVjc1EwRkJReXhUUVVGelFpeEZRVUZyUWl4RlFVRkZPMGxCUTNCRkxFbEJRVWtzWlVGQlpTeEhRVUZITERCQ1FVRXdRaXhEUVVGRExFZEJRVWNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0SlFVTm9SU3hKUVVGSkxHVkJRV1VzUlVGQlJUdFJRVU51UWl4UFFVRlBMR1ZCUVdVc1EwRkJRenRMUVVONFFqdEpRVU5FTEdWQlFXVXNSMEZCUnl4UlFVRlJMRU5CUVVNc1lVRkJZU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlEyaEVMRk5CUVZNN1UwRkRUaXhoUVVGaExFTkJRVU1zYTBOQlFXdERMRU5CUVVVN1UwRkRiRVFzVjBGQlZ5eERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRPMGxCUTJoRExEQkNRVUV3UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFVkJRVVVzWlVGQlpTeERRVUZETEVOQlFVTTdTVUZETTBRc1QwRkJUeXhsUVVGbExFTkJRVU03UVVGRGVrSXNRMEZCUXl4RFFVRkRPMEZCV1VZc1RVRkJUU3hYUVVGWExFZEJRVWNzUTBGQlF5eFRRVUZ6UWl4RlFVRkZMRVZCUVVVN1NVRkROME1zVFVGQlRTeGxRVUZsTEVkQlFVY3NNRUpCUVRCQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMGxCUTJ4RkxFbEJRVWtzWlVGQlpTeEZRVUZGTzFGQlEyNUNMR2xGUVVGelFpeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRPMUZCUTNoRExHVkJRV1VzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0UlFVTjZRaXd3UWtGQk1FSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03UzBGRE9VTTdRVUZEU0N4RFFVRkRMRU5CUVVNN1FVRkZSaXhwUlVGQlpUdEpRVU5pTEVsQlFVa3NRMEZCUXl4TlFVRjVRanRSUVVNMVFpeE5RVUZOTEU5QlFVOHNSMEZCUnl4TFFVRkxMRU5CUVVNc1JVRkJSU3hGUVVGeFFpeERRVUZETzFGQlF6bERMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRVZCUVVVN1dVRkRhRU1zU1VGQlNTeE5RVUZOTEVWQlFVVTdaMEpCUTFZc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0aFFVTjBRanRSUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEwZ3NTVUZCU1N4UFFVRlBMRU5CUVVNc1RVRkJUU3hGUVVGRk8xbEJRMnhDTEdsRVFVRk5MRU5CUTBvc2RVUkJRVU1zVjBGQlZ5eEpRVU5XTEVkQlFVY3NSVUZCUlN4TlFVRk5MRU5CUVVNc1IwRkJSeXhGUVVObUxFbEJRVWtzUlVGQlJTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVTnFRaXhQUVVGUExFVkJRVVVzVDBGQlR5eEZRVU5vUWl4alFVRmpMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zVjBGQlZ5eERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1JVRkRia1FzWVVGQllTeEZRVUZGTEUxQlFVMHNRMEZCUXl4aFFVRmhMRVZCUTI1RExGRkJRVkVzUlVGQlJTeE5RVUZOTEVOQlFVTXNVVUZCVVN4RlFVTjZRaXhSUVVGUkxFVkJRVVVzVFVGQlRTeERRVUZETEZGQlFWRXNWMEZEZWtJc1JVRkRSaXhyUWtGQmEwSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRM0pETEVOQlFVTTdVMEZEU0R0SlFVTklMRU5CUVVNN1EwRkRSaXhGUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12UTI5dWRHVjRkRTFsYm5VdWRITjRQelU0TVRNaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2djbVZ1WkdWeUxDQjFibTF2ZFc1MFEyOXRjRzl1Wlc1MFFYUk9iMlJsSUgwZ1puSnZiU0JjSW5KbFlXTjBMV1J2YlZ3aU8xeHVhVzF3YjNKMElHTnNjM2dnWm5KdmJTQmNJbU5zYzNoY0lqdGNibWx0Y0c5eWRDQjdJRkJ2Y0c5MlpYSWdmU0JtY205dElGd2lMaTlRYjNCdmRtVnlYQ0k3WEc1cGJYQnZjblFnZXlCMElIMGdabkp2YlNCY0lpNHVMMmt4T0c1Y0lqdGNibHh1YVcxd2IzSjBJRndpTGk5RGIyNTBaWGgwVFdWdWRTNXpZM056WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JuWlhSVGFHOXlkR04xZEVaeWIyMVRhRzl5ZEdOMWRFNWhiV1VzWEc0Z0lGTm9iM0owWTNWMFRtRnRaU3hjYm4wZ1puSnZiU0JjSWk0dUwyRmpkR2x2Ym5NdmMyaHZjblJqZFhSelhDSTdYRzVwYlhCdmNuUWdleUJCWTNScGIyNGdmU0JtY205dElGd2lMaTR2WVdOMGFXOXVjeTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnUVdOMGFXOXVUV0Z1WVdkbGNpQjlJR1p5YjIwZ1hDSXVMaTloWTNScGIyNXpMMjFoYm1GblpYSmNJanRjYm1sdGNHOXlkQ0I3SUVGd2NGTjBZWFJsSUgwZ1puSnZiU0JjSWk0dUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5Qk9iMjVFWld4bGRHVmtSWGhqWVd4cFpISmhkMFZzWlcxbGJuUWdmU0JtY205dElGd2lMaTR2Wld4bGJXVnVkQzkwZVhCbGMxd2lPMXh1WEc1bGVIQnZjblFnZEhsd1pTQkRiMjUwWlhoMFRXVnVkVTl3ZEdsdmJpQTlJRndpYzJWd1lYSmhkRzl5WENJZ2ZDQkJZM1JwYjI0N1hHNWNiblI1Y0dVZ1EyOXVkR1Y0ZEUxbGJuVlFjbTl3Y3lBOUlIdGNiaUFnYjNCMGFXOXVjem9nUTI5dWRHVjRkRTFsYm5WUGNIUnBiMjViWFR0Y2JpQWdiMjVEYkc5elpWSmxjWFZsYzNRL0tDazZJSFp2YVdRN1hHNGdJSFJ2Y0RvZ2JuVnRZbVZ5TzF4dUlDQnNaV1owT2lCdWRXMWlaWEk3WEc0Z0lHRmpkR2x2YmsxaGJtRm5aWEk2SUVGamRHbHZiazFoYm1GblpYSTdYRzRnSUdGd2NGTjBZWFJsT2lCU1pXRmtiMjVzZVR4QmNIQlRkR0YwWlQ0N1hHNGdJR1ZzWlcxbGJuUnpPaUJ5WldGa2IyNXNlU0JPYjI1RVpXeGxkR1ZrUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFR0Y2JuMDdYRzVjYm1OdmJuTjBJRU52Ym5SbGVIUk5aVzUxSUQwZ0tIdGNiaUFnYjNCMGFXOXVjeXhjYmlBZ2IyNURiRzl6WlZKbGNYVmxjM1FzWEc0Z0lIUnZjQ3hjYmlBZ2JHVm1kQ3hjYmlBZ1lXTjBhVzl1VFdGdVlXZGxjaXhjYmlBZ1lYQndVM1JoZEdVc1hHNGdJR1ZzWlcxbGJuUnpMRnh1ZlRvZ1EyOXVkR1Y0ZEUxbGJuVlFjbTl3Y3lrZ1BUNGdlMXh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJRHhRYjNCdmRtVnlYRzRnSUNBZ0lDQnZia05zYjNObFVtVnhkV1Z6ZEQxN2IyNURiRzl6WlZKbGNYVmxjM1I5WEc0Z0lDQWdJQ0IwYjNBOWUzUnZjSDFjYmlBZ0lDQWdJR3hsWm5ROWUyeGxablI5WEc0Z0lDQWdJQ0JtYVhSSmJsWnBaWGR3YjNKMFBYdDBjblZsZlZ4dUlDQWdJQ0FnYjJabWMyVjBUR1ZtZEQxN1lYQndVM1JoZEdVdWIyWm1jMlYwVEdWbWRIMWNiaUFnSUNBZ0lHOW1abk5sZEZSdmNEMTdZWEJ3VTNSaGRHVXViMlptYzJWMFZHOXdmVnh1SUNBZ0lDQWdkbWxsZDNCdmNuUlhhV1IwYUQxN1lYQndVM1JoZEdVdWQybGtkR2g5WEc0Z0lDQWdJQ0IyYVdWM2NHOXlkRWhsYVdkb2REMTdZWEJ3VTNSaGRHVXVhR1ZwWjJoMGZWeHVJQ0FnSUQ1Y2JpQWdJQ0FnSUR4MWJGeHVJQ0FnSUNBZ0lDQmpiR0Z6YzA1aGJXVTlYQ0pqYjI1MFpYaDBMVzFsYm5WY0lseHVJQ0FnSUNBZ0lDQnZia052Ym5SbGVIUk5aVzUxUFhzb1pYWmxiblFwSUQwK0lHVjJaVzUwTG5CeVpYWmxiblJFWldaaGRXeDBLQ2w5WEc0Z0lDQWdJQ0ErWEc0Z0lDQWdJQ0FnSUh0dmNIUnBiMjV6TG0xaGNDZ29iM0IwYVc5dUxDQnBaSGdwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2IzQjBhVzl1SUQwOVBTQmNJbk5sY0dGeVlYUnZjbHdpS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdQR2h5SUd0bGVUMTdhV1I0ZlNCamJHRnpjMDVoYldVOVhDSmpiMjUwWlhoMExXMWxiblV0YjNCMGFXOXVMWE5sY0dGeVlYUnZjbHdpSUM4K08xeHVJQ0FnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUdGamRHbHZiazVoYldVZ1BTQnZjSFJwYjI0dWJtRnRaVHRjYmlBZ0lDQWdJQ0FnSUNCc1pYUWdiR0ZpWld3Z1BTQmNJbHdpTzF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2h2Y0hScGIyNHVZMjl1ZEdWNGRFbDBaVzFNWVdKbGJDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQnZjSFJwYjI0dVkyOXVkR1Y0ZEVsMFpXMU1ZV0psYkNBOVBUMGdYQ0ptZFc1amRHbHZibHdpS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUd4aFltVnNJRDBnZENodmNIUnBiMjR1WTI5dWRHVjRkRWwwWlcxTVlXSmxiQ2hsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGhZbVZzSUQwZ2RDaHZjSFJwYjI0dVkyOXVkR1Y0ZEVsMFpXMU1ZV0psYkNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW9YRzRnSUNBZ0lDQWdJQ0FnSUNBOGJHa2dhMlY1UFh0cFpIaDlJR1JoZEdFdGRHVnpkR2xrUFh0aFkzUnBiMjVPWVcxbGZTQnZia05zYVdOclBYdHZia05zYjNObFVtVnhkV1Z6ZEgwK1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUR4aWRYUjBiMjVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYkdGemMwNWhiV1U5ZTJOc2MzZ29YQ0pqYjI1MFpYaDBMVzFsYm5VdGIzQjBhVzl1WENJc0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JoYm1kbGNtOTFjem9nWVdOMGFXOXVUbUZ0WlNBOVBUMGdYQ0prWld4bGRHVlRaV3hsWTNSbFpFVnNaVzFsYm5SelhDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYUdWamEyMWhjbXM2SUc5d2RHbHZiaTVqYUdWamEyVmtQeTRvWVhCd1UzUmhkR1VwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgwcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVRMnhwWTJzOWV5Z3BJRDArSUdGamRHbHZiazFoYm1GblpYSXVaWGhsWTNWMFpVRmpkR2x2YmlodmNIUnBiMjRwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0ErWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEdScGRpQmpiR0Z6YzA1aGJXVTlYQ0pqYjI1MFpYaDBMVzFsYm5VdGIzQjBhVzl1WDE5c1lXSmxiRndpUG50c1lXSmxiSDA4TDJScGRqNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThhMkprSUdOc1lYTnpUbUZ0WlQxY0ltTnZiblJsZUhRdGJXVnVkUzF2Y0hScGIyNWZYM05vYjNKMFkzVjBYQ0krWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCN1lXTjBhVzl1VG1GdFpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0EvSUdkbGRGTm9iM0owWTNWMFJuSnZiVk5vYjNKMFkzVjBUbUZ0WlNoaFkzUnBiMjVPWVcxbElHRnpJRk5vYjNKMFkzVjBUbUZ0WlNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdPaUJjSWx3aWZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZhMkprUGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDJKMWRIUnZiajVjYmlBZ0lDQWdJQ0FnSUNBZ0lEd3ZiR2srWEc0Z0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdmU2w5WEc0Z0lDQWdJQ0E4TDNWc1BseHVJQ0FnSUR3dlVHOXdiM1psY2o1Y2JpQWdLVHRjYm4wN1hHNWNibU52Ym5OMElHTnZiblJsZUhSTlpXNTFUbTlrWlVKNVEyOXVkR0ZwYm1WeUlEMGdibVYzSUZkbFlXdE5ZWEE4U0ZSTlRFVnNaVzFsYm5Rc0lFaFVUVXhFYVhaRmJHVnRaVzUwUGlncE8xeHVYRzVqYjI1emRDQm5aWFJEYjI1MFpYaDBUV1Z1ZFU1dlpHVWdQU0FvWTI5dWRHRnBibVZ5T2lCSVZFMU1SV3hsYldWdWRDazZJRWhVVFV4RWFYWkZiR1Z0Wlc1MElEMCtJSHRjYmlBZ2JHVjBJR052Ym5SbGVIUk5aVzUxVG05a1pTQTlJR052Ym5SbGVIUk5aVzUxVG05a1pVSjVRMjl1ZEdGcGJtVnlMbWRsZENoamIyNTBZV2x1WlhJcE8xeHVJQ0JwWmlBb1kyOXVkR1Y0ZEUxbGJuVk9iMlJsS1NCN1hHNGdJQ0FnY21WMGRYSnVJR052Ym5SbGVIUk5aVzUxVG05a1pUdGNiaUFnZlZ4dUlDQmpiMjUwWlhoMFRXVnVkVTV2WkdVZ1BTQmtiMk4xYldWdWRDNWpjbVZoZEdWRmJHVnRaVzUwS0Z3aVpHbDJYQ0lwTzF4dUlDQmpiMjUwWVdsdVpYSmNiaUFnSUNBdWNYVmxjbmxUWld4bFkzUnZjaWhjSWk1bGVHTmhiR2xrY21GM0xXTnZiblJsZUhSTlpXNTFRMjl1ZEdGcGJtVnlYQ0lwSVZ4dUlDQWdJQzVoY0hCbGJtUkRhR2xzWkNoamIyNTBaWGgwVFdWdWRVNXZaR1VwTzF4dUlDQmpiMjUwWlhoMFRXVnVkVTV2WkdWQ2VVTnZiblJoYVc1bGNpNXpaWFFvWTI5dWRHRnBibVZ5TENCamIyNTBaWGgwVFdWdWRVNXZaR1VwTzF4dUlDQnlaWFIxY200Z1kyOXVkR1Y0ZEUxbGJuVk9iMlJsTzF4dWZUdGNibHh1ZEhsd1pTQkRiMjUwWlhoMFRXVnVkVkJoY21GdGN5QTlJSHRjYmlBZ2IzQjBhVzl1Y3pvZ0tFTnZiblJsZUhSTlpXNTFUM0IwYVc5dUlId2dabUZzYzJVZ2ZDQnVkV3hzSUh3Z2RXNWtaV1pwYm1Wa0tWdGRPMXh1SUNCMGIzQTZJRU52Ym5SbGVIUk5aVzUxVUhKdmNITmJYQ0owYjNCY0lsMDdYRzRnSUd4bFpuUTZJRU52Ym5SbGVIUk5aVzUxVUhKdmNITmJYQ0pzWldaMFhDSmRPMXh1SUNCaFkzUnBiMjVOWVc1aFoyVnlPaUJEYjI1MFpYaDBUV1Z1ZFZCeWIzQnpXMXdpWVdOMGFXOXVUV0Z1WVdkbGNsd2lYVHRjYmlBZ1lYQndVM1JoZEdVNklGSmxZV1J2Ym14NVBFRndjRk4wWVhSbFBqdGNiaUFnWTI5dWRHRnBibVZ5T2lCSVZFMU1SV3hsYldWdWREdGNiaUFnWld4bGJXVnVkSE02SUhKbFlXUnZibXg1SUU1dmJrUmxiR1YwWldSRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZE8xeHVmVHRjYmx4dVkyOXVjM1FnYUdGdVpHeGxRMnh2YzJVZ1BTQW9ZMjl1ZEdGcGJtVnlPaUJJVkUxTVJXeGxiV1Z1ZENrZ1BUNGdlMXh1SUNCamIyNXpkQ0JqYjI1MFpYaDBUV1Z1ZFU1dlpHVWdQU0JqYjI1MFpYaDBUV1Z1ZFU1dlpHVkNlVU52Ym5SaGFXNWxjaTVuWlhRb1kyOXVkR0ZwYm1WeUtUdGNiaUFnYVdZZ0tHTnZiblJsZUhSTlpXNTFUbTlrWlNrZ2UxeHVJQ0FnSUhWdWJXOTFiblJEYjIxd2IyNWxiblJCZEU1dlpHVW9ZMjl1ZEdWNGRFMWxiblZPYjJSbEtUdGNiaUFnSUNCamIyNTBaWGgwVFdWdWRVNXZaR1V1Y21WdGIzWmxLQ2s3WEc0Z0lDQWdZMjl1ZEdWNGRFMWxiblZPYjJSbFFubERiMjUwWVdsdVpYSXVaR1ZzWlhSbEtHTnZiblJoYVc1bGNpazdYRzRnSUgxY2JuMDdYRzVjYm1WNGNHOXlkQ0JrWldaaGRXeDBJSHRjYmlBZ2NIVnphQ2h3WVhKaGJYTTZJRU52Ym5SbGVIUk5aVzUxVUdGeVlXMXpLU0I3WEc0Z0lDQWdZMjl1YzNRZ2IzQjBhVzl1Y3lBOUlFRnljbUY1TG05bVBFTnZiblJsZUhSTlpXNTFUM0IwYVc5dVBpZ3BPMXh1SUNBZ0lIQmhjbUZ0Y3k1dmNIUnBiMjV6TG1admNrVmhZMmdvS0c5d2RHbHZiaWtnUFQ0Z2UxeHVJQ0FnSUNBZ2FXWWdLRzl3ZEdsdmJpa2dlMXh1SUNBZ0lDQWdJQ0J2Y0hScGIyNXpMbkIxYzJnb2IzQjBhVzl1S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5S1R0Y2JpQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUhKbGJtUmxjaWhjYmlBZ0lDQWdJQ0FnUEVOdmJuUmxlSFJOWlc1MVhHNGdJQ0FnSUNBZ0lDQWdkRzl3UFh0d1lYSmhiWE11ZEc5d2ZWeHVJQ0FnSUNBZ0lDQWdJR3hsWm5ROWUzQmhjbUZ0Y3k1c1pXWjBmVnh1SUNBZ0lDQWdJQ0FnSUc5d2RHbHZibk05ZTI5d2RHbHZibk45WEc0Z0lDQWdJQ0FnSUNBZ2IyNURiRzl6WlZKbGNYVmxjM1E5ZXlncElEMCtJR2hoYm1Sc1pVTnNiM05sS0hCaGNtRnRjeTVqYjI1MFlXbHVaWElwZlZ4dUlDQWdJQ0FnSUNBZ0lHRmpkR2x2YmsxaGJtRm5aWEk5ZTNCaGNtRnRjeTVoWTNScGIyNU5ZVzVoWjJWeWZWeHVJQ0FnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxQWHR3WVhKaGJYTXVZWEJ3VTNSaGRHVjlYRzRnSUNBZ0lDQWdJQ0FnWld4bGJXVnVkSE05ZTNCaGNtRnRjeTVsYkdWdFpXNTBjMzFjYmlBZ0lDQWdJQ0FnTHo0c1hHNGdJQ0FnSUNBZ0lHZGxkRU52Ym5SbGVIUk5aVzUxVG05a1pTaHdZWEpoYlhNdVkyOXVkR0ZwYm1WeUtTeGNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVJQ0I5TEZ4dWZUdGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0NvbnRleHRNZW51LnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9EYXJrTW9kZVRvZ2dsZS50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9EYXJrTW9kZVRvZ2dsZS50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkRhcmtNb2RlVG9nZ2xlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRGFya01vZGVUb2dnbGUpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Ub29sSWNvbl9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1Rvb2xJY29uLnNjc3MgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVG9vbEljb24uc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVG9vbEljb25fc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9Ub29sSWNvbl9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Ub29sQnV0dG9uICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1Rvb2xCdXR0b24udHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbnN0YW50cyAqLyBcXFwiLi4vLi4vY29uc3RhbnRzLnRzXFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuLy8gV2UgY2hvc2UgdG8gdXNlIG9ubHkgZXhwbGljaXQgdG9nZ2xlIGFuZCBub3QgYSB0aGlyZCBvcHRpb24gZm9yIHN5c3RlbSB2YWx1ZSxcXG4vLyBidXQgdGhpcyBjb3VsZCBiZSBhZGRlZCBpbiB0aGUgZnV0dXJlLlxcbmNvbnN0IERhcmtNb2RlVG9nZ2xlID0gKHByb3BzKSA9PiB7XFxuICAgIGNvbnN0IHRpdGxlID0gcHJvcHMudGl0bGUgfHxcXG4gICAgICAgIChwcm9wcy52YWx1ZSA9PT0gXFxcImRhcmtcXFwiID8gKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiYnV0dG9ucy5saWdodE1vZGVcXFwiKSA6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImJ1dHRvbnMuZGFya01vZGVcXFwiKSk7XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uVG9vbEJ1dHRvbiwgeyB0eXBlOiBcXFwiaWNvblxcXCIsIGljb246IHByb3BzLnZhbHVlID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uVEhFTUUuTElHSFQgPyBJQ09OUy5NT09OIDogSUNPTlMuU1VOLCB0aXRsZTogdGl0bGUsIFxcXCJhcmlhLWxhYmVsXFxcIjogdGl0bGUsIG9uQ2xpY2s6ICgpID0+IHByb3BzLm9uQ2hhbmdlKHByb3BzLnZhbHVlID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uVEhFTUUuREFSSyA/IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5USEVNRS5MSUdIVCA6IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5USEVNRS5EQVJLKSwgXFxcImRhdGEtdGVzdGlkXFxcIjogXFxcInRvZ2dsZS1kYXJrLW1vZGVcXFwiIH0sIHZvaWQgMCkpO1xcbn07XFxuY29uc3QgSUNPTlMgPSB7XFxuICAgIFNVTjogKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3ZnXFxcIiwgT2JqZWN0LmFzc2lnbih7IHdpZHRoOiBcXFwiNTEyXFxcIiwgaGVpZ2h0OiBcXFwiNTEyXFxcIiwgY2xhc3NOYW1lOiBcXFwicnRsLW1pcnJvclxcXCIsIHZpZXdCb3g6IFxcXCIwIDAgNTEyIDUxMlxcXCIgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBmaWxsOiBcXFwiY3VycmVudENvbG9yXFxcIiwgZDogXFxcIk0yNTYgMTYwYy01Mi45IDAtOTYgNDMuMS05NiA5NnM0My4xIDk2IDk2IDk2IDk2LTQzLjEgOTYtOTYtNDMuMS05Ni05Ni05NnptMjQ2LjQgODAuNWwtOTQuNy00Ny4zIDMzLjUtMTAwLjRjNC41LTEzLjYtOC40LTI2LjUtMjEuOS0yMS45bC0xMDAuNCAzMy41LTQ3LjQtOTQuOGMtNi40LTEyLjgtMjQuNi0xMi44LTMxIDBsLTQ3LjMgOTQuN0w5Mi43IDcwLjhjLTEzLjYtNC41LTI2LjUgOC40LTIxLjkgMjEuOWwzMy41IDEwMC40LTk0LjcgNDcuNGMtMTIuOCA2LjQtMTIuOCAyNC42IDAgMzFsOTQuNyA0Ny4zLTMzLjUgMTAwLjVjLTQuNSAxMy42IDguNCAyNi41IDIxLjkgMjEuOWwxMDAuNC0zMy41IDQ3LjMgOTQuN2M2LjQgMTIuOCAyNC42IDEyLjggMzEgMGw0Ny4zLTk0LjcgMTAwLjQgMzMuNWMxMy42IDQuNSAyNi41LTguNCAyMS45LTIxLjlsLTMzLjUtMTAwLjQgOTQuNy00Ny4zYzEzLTYuNSAxMy0yNC43LjItMzEuMXptLTE1NS45IDEwNmMtNDkuOSA0OS45LTEzMS4xIDQ5LjktMTgxIDAtNDkuOS00OS45LTQ5LjktMTMxLjEgMC0xODEgNDkuOS00OS45IDEzMS4xLTQ5LjkgMTgxIDAgNDkuOSA0OS45IDQ5LjkgMTMxLjEgMCAxODF6XFxcIiB9LCB2b2lkIDApIH0pLCB2b2lkIDApKSxcXG4gICAgTU9PTjogKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3ZnXFxcIiwgT2JqZWN0LmFzc2lnbih7IHdpZHRoOiBcXFwiNTEyXFxcIiwgaGVpZ2h0OiBcXFwiNTEyXFxcIiwgY2xhc3NOYW1lOiBcXFwicnRsLW1pcnJvclxcXCIsIHZpZXdCb3g6IFxcXCIwIDAgNTEyIDUxMlxcXCIgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBmaWxsOiBcXFwiY3VycmVudENvbG9yXFxcIiwgZDogXFxcIk0yODMuMjExIDUxMmM3OC45NjIgMCAxNTEuMDc5LTM1LjkyNSAxOTguODU3LTk0Ljc5MiA3LjA2OC04LjcwOC0uNjM5LTIxLjQzLTExLjU2Mi0xOS4zNS0xMjQuMjAzIDIzLjY1NC0yMzguMjYyLTcxLjU3Ni0yMzguMjYyLTE5Ni45NTQgMC03Mi4yMjIgMzguNjYyLTEzOC42MzUgMTAxLjQ5OC0xNzQuMzk0IDkuNjg2LTUuNTEyIDcuMjUtMjAuMTk3LTMuNzU2LTIyLjIzQTI1OC4xNTYgMjU4LjE1NiAwIDAgMCAyODMuMjExIDBjLTE0MS4zMDkgMC0yNTYgMTE0LjUxMS0yNTYgMjU2IDAgMTQxLjMwOSAxMTQuNTExIDI1NiAyNTYgMjU2elxcXCIgfSwgdm9pZCAwKSB9KSwgdm9pZCAwKSksXFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUVZWEpyVFc5a1pWUnZaMmRzWlM1MGMzZ3Vhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdRVUZCZVVJN1FVRkZSenRCUVVOak8wRkJRMHc3UVVGSGNrTXNaMFpCUVdkR08wRkJRMmhHTEhsRFFVRjVRenRCUVVOc1F5eE5RVUZOTEdOQlFXTXNSMEZCUnl4RFFVRkRMRXRCU1RsQ0xFVkJRVVVzUlVGQlJUdEpRVU5JTEUxQlFVMHNTMEZCU3l4SFFVTlVMRXRCUVVzc1EwRkJReXhMUVVGTE8xRkJRMWdzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4TFFVRkxMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zZDBOQlFVTXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4M1EwRkJReXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVVMVJTeFBRVUZQTEVOQlEwd3NkVVJCUVVNc2JVUkJRVlVzU1VGRFZDeEpRVUZKTEVWQlFVTXNUVUZCVFN4RlFVTllMRWxCUVVrc1JVRkJSU3hMUVVGTExFTkJRVU1zUzBGQlN5eExRVUZMTEcxRVFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFVkJRekZFTEV0QlFVc3NSVUZCUlN4TFFVRkxMR2RDUVVOQkxFdEJRVXNzUlVGRGFrSXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVOYUxFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1MwRkJTeXhyUkVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4dFJFRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eHJSRUZCVlN4RFFVRkRMR2xDUVVVelJDeHJRa0ZCYTBJc1YwRkRPVUlzUTBGRFNDeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRPMEZCUlVZc1RVRkJUU3hMUVVGTExFZEJRVWM3U1VGRFdpeEhRVUZITEVWQlFVVXNRMEZEU0N3NFJVRkJTeXhMUVVGTExFVkJRVU1zUzBGQlN5eEZRVUZETEUxQlFVMHNSVUZCUXl4TFFVRkxMRVZCUVVNc1UwRkJVeXhGUVVGRExGbEJRVmtzUlVGQlF5eFBRVUZQTEVWQlFVTXNZVUZCWVN4blFrRkRlRVVzYVVWQlEwVXNTVUZCU1N4RlFVRkRMR05CUVdNc1JVRkRia0lzUTBGQlF5eEZRVUZETERaclFrRkJObXRDTEZkQlEzcHJRaXhaUVVOS0xFTkJRMUE3U1VGRFJDeEpRVUZKTEVWQlFVVXNRMEZEU2l3NFJVRkJTeXhMUVVGTExFVkJRVU1zUzBGQlN5eEZRVUZETEUxQlFVMHNSVUZCUXl4TFFVRkxMRVZCUVVNc1UwRkJVeXhGUVVGRExGbEJRVmtzUlVGQlF5eFBRVUZQTEVWQlFVTXNZVUZCWVN4blFrRkRlRVVzYVVWQlEwVXNTVUZCU1N4RlFVRkRMR05CUVdNc1JVRkRia0lzUTBGQlF5eEZRVUZETEdsVVFVRnBWQ3hYUVVNM1V5eFpRVU5LTEVOQlExQTdRMEZEUml4RFFVRkRJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJOdmJYQnZibVZ1ZEhNdlJHRnlhMDF2WkdWVWIyZG5iR1V1ZEhONFAyRmxZeklpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUZ3aUxpOVViMjlzU1dOdmJpNXpZM056WENJN1hHNWNibWx0Y0c5eWRDQjdJSFFnZlNCbWNtOXRJRndpTGk0dmFURTRibHdpTzF4dWFXMXdiM0owSUhzZ1ZHOXZiRUoxZEhSdmJpQjlJR1p5YjIwZ1hDSXVMMVJ2YjJ4Q2RYUjBiMjVjSWp0Y2JtbHRjRzl5ZENCN0lGUklSVTFGSUgwZ1puSnZiU0JjSWk0dUwyTnZibk4wWVc1MGMxd2lPMXh1YVcxd2IzSjBJSHNnVkdobGJXVWdmU0JtY205dElGd2lMaTR2Wld4bGJXVnVkQzkwZVhCbGMxd2lPMXh1WEc0dkx5QlhaU0JqYUc5elpTQjBieUIxYzJVZ2IyNXNlU0JsZUhCc2FXTnBkQ0IwYjJkbmJHVWdZVzVrSUc1dmRDQmhJSFJvYVhKa0lHOXdkR2x2YmlCbWIzSWdjM2x6ZEdWdElIWmhiSFZsTEZ4dUx5OGdZblYwSUhSb2FYTWdZMjkxYkdRZ1ltVWdZV1JrWldRZ2FXNGdkR2hsSUdaMWRIVnlaUzVjYm1WNGNHOXlkQ0JqYjI1emRDQkVZWEpyVFc5a1pWUnZaMmRzWlNBOUlDaHdjbTl3Y3pvZ2UxeHVJQ0IyWVd4MVpUb2dWR2hsYldVN1hHNGdJRzl1UTJoaGJtZGxPaUFvZG1Gc2RXVTZJRlJvWlcxbEtTQTlQaUIyYjJsa08xeHVJQ0IwYVhSc1pUODZJSE4wY21sdVp6dGNibjBwSUQwK0lIdGNiaUFnWTI5dWMzUWdkR2wwYkdVZ1BWeHVJQ0FnSUhCeWIzQnpMblJwZEd4bElIeDhYRzRnSUNBZ0tIQnliM0J6TG5aaGJIVmxJRDA5UFNCY0ltUmhjbXRjSWlBL0lIUW9YQ0ppZFhSMGIyNXpMbXhwWjJoMFRXOWtaVndpS1NBNklIUW9YQ0ppZFhSMGIyNXpMbVJoY210TmIyUmxYQ0lwS1R0Y2JseHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lEeFViMjlzUW5WMGRHOXVYRzRnSUNBZ0lDQjBlWEJsUFZ3aWFXTnZibHdpWEc0Z0lDQWdJQ0JwWTI5dVBYdHdjbTl3Y3k1MllXeDFaU0E5UFQwZ1ZFaEZUVVV1VEVsSFNGUWdQeUJKUTA5T1V5NU5UMDlPSURvZ1NVTlBUbE11VTFWT2ZWeHVJQ0FnSUNBZ2RHbDBiR1U5ZTNScGRHeGxmVnh1SUNBZ0lDQWdZWEpwWVMxc1lXSmxiRDE3ZEdsMGJHVjlYRzRnSUNBZ0lDQnZia05zYVdOclBYc29LU0E5UGx4dUlDQWdJQ0FnSUNCd2NtOXdjeTV2YmtOb1lXNW5aU2h3Y205d2N5NTJZV3gxWlNBOVBUMGdWRWhGVFVVdVJFRlNTeUEvSUZSSVJVMUZMa3hKUjBoVUlEb2dWRWhGVFVVdVJFRlNTeWxjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR1JoZEdFdGRHVnpkR2xrUFZ3aWRHOW5aMnhsTFdSaGNtc3RiVzlrWlZ3aVhHNGdJQ0FnTHo1Y2JpQWdLVHRjYm4wN1hHNWNibU52Ym5OMElFbERUMDVUSUQwZ2UxeHVJQ0JUVlU0NklDaGNiaUFnSUNBOGMzWm5JSGRwWkhSb1BWd2lOVEV5WENJZ2FHVnBaMmgwUFZ3aU5URXlYQ0lnWTJ4aGMzTk9ZVzFsUFZ3aWNuUnNMVzFwY25KdmNsd2lJSFpwWlhkQ2IzZzlYQ0l3SURBZ05URXlJRFV4TWx3aVBseHVJQ0FnSUNBZ1BIQmhkR2hjYmlBZ0lDQWdJQ0FnWm1sc2JEMWNJbU4xY25KbGJuUkRiMnh2Y2x3aVhHNGdJQ0FnSUNBZ0lHUTlYQ0pOTWpVMklERTJNR010TlRJdU9TQXdMVGsySURRekxqRXRPVFlnT1Raek5ETXVNU0E1TmlBNU5pQTVOaUE1TmkwME15NHhJRGsyTFRrMkxUUXpMakV0T1RZdE9UWXRPVFo2YlRJME5pNDBJRGd3TGpWc0xUazBMamN0TkRjdU15QXpNeTQxTFRFd01DNDBZelF1TlMweE15NDJMVGd1TkMweU5pNDFMVEl4TGprdE1qRXVPV3d0TVRBd0xqUWdNek11TlMwME55NDBMVGswTGpoakxUWXVOQzB4TWk0NExUSTBMall0TVRJdU9DMHpNU0F3YkMwME55NHpJRGswTGpkTU9USXVOeUEzTUM0NFl5MHhNeTQyTFRRdU5TMHlOaTQxSURndU5DMHlNUzQ1SURJeExqbHNNek11TlNBeE1EQXVOQzA1TkM0M0lEUTNMalJqTFRFeUxqZ2dOaTQwTFRFeUxqZ2dNalF1TmlBd0lETXhiRGswTGpjZ05EY3VNeTB6TXk0MUlERXdNQzQxWXkwMExqVWdNVE11TmlBNExqUWdNall1TlNBeU1TNDVJREl4TGpsc01UQXdMalF0TXpNdU5TQTBOeTR6SURrMExqZGpOaTQwSURFeUxqZ2dNalF1TmlBeE1pNDRJRE14SURCc05EY3VNeTA1TkM0M0lERXdNQzQwSURNekxqVmpNVE11TmlBMExqVWdNall1TlMwNExqUWdNakV1T1MweU1TNDViQzB6TXk0MUxURXdNQzQwSURrMExqY3RORGN1TTJNeE15MDJMalVnTVRNdE1qUXVOeTR5TFRNeExqRjZiUzB4TlRVdU9TQXhNRFpqTFRRNUxqa2dORGt1T1MweE16RXVNU0EwT1M0NUxURTRNU0F3TFRRNUxqa3RORGt1T1MwME9TNDVMVEV6TVM0eElEQXRNVGd4SURRNUxqa3RORGt1T1NBeE16RXVNUzAwT1M0NUlERTRNU0F3SURRNUxqa2dORGt1T1NBME9TNDVJREV6TVM0eElEQWdNVGd4ZWx3aVhHNGdJQ0FnSUNBK1BDOXdZWFJvUGx4dUlDQWdJRHd2YzNablBseHVJQ0FwTEZ4dUlDQk5UMDlPT2lBb1hHNGdJQ0FnUEhOMlp5QjNhV1IwYUQxY0lqVXhNbHdpSUdobGFXZG9kRDFjSWpVeE1sd2lJR05zWVhOelRtRnRaVDFjSW5KMGJDMXRhWEp5YjNKY0lpQjJhV1YzUW05NFBWd2lNQ0F3SURVeE1pQTFNVEpjSWo1Y2JpQWdJQ0FnSUR4d1lYUm9YRzRnSUNBZ0lDQWdJR1pwYkd3OVhDSmpkWEp5Wlc1MFEyOXNiM0pjSWx4dUlDQWdJQ0FnSUNCa1BWd2lUVEk0TXk0eU1URWdOVEV5WXpjNExqazJNaUF3SURFMU1TNHdOemt0TXpVdU9USTFJREU1T0M0NE5UY3RPVFF1TnpreUlEY3VNRFk0TFRndU56QTRMUzQyTXprdE1qRXVORE10TVRFdU5UWXlMVEU1TGpNMUxURXlOQzR5TURNZ01qTXVOalUwTFRJek9DNHlOakl0TnpFdU5UYzJMVEl6T0M0eU5qSXRNVGsyTGprMU5DQXdMVGN5TGpJeU1pQXpPQzQyTmpJdE1UTTRMall6TlNBeE1ERXVORGs0TFRFM05DNHpPVFFnT1M0Mk9EWXROUzQxTVRJZ055NHlOUzB5TUM0eE9UY3RNeTQzTlRZdE1qSXVNak5CTWpVNExqRTFOaUF5TlRndU1UVTJJREFnTUNBd0lESTRNeTR5TVRFZ01HTXRNVFF4TGpNd09TQXdMVEkxTmlBeE1UUXVOVEV4TFRJMU5pQXlOVFlnTUNBeE5ERXVNekE1SURFeE5DNDFNVEVnTWpVMklESTFOaUF5TlRaNlhDSmNiaUFnSUNBZ0lENDhMM0JoZEdnK1hHNGdJQ0FnUEM5emRtYytYRzRnSUNrc1hHNTlPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0RhcmtNb2RlVG9nZ2xlLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9EaWFsb2cudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0RpYWxvZy50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJEaWFsb2dcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBEaWFsb2cpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIGNsc3ggKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jbHN4L2Rpc3QvY2xzeC5tLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdCAqLyBcXFwicmVhY3RcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hvb2tzX3VzZUNhbGxiYWNrUmVmU3RhdGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2hvb2tzL3VzZUNhbGxiYWNrUmVmU3RhdGUgKi8gXFxcIi4uLy4uL2hvb2tzL3VzZUNhbGxiYWNrUmVmU3RhdGUudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL0FwcCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9BcHAudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9rZXlzICovIFxcXCIuLi8uLi9rZXlzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9EaWFsb2dfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9EaWFsb2cuc2NzcyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9EaWFsb2cuc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfRGlhbG9nX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfRGlhbG9nX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9pY29ucyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9pY29ucy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0lzbGFuZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Jc2xhbmQgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvSXNsYW5kLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfTW9kYWxfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL01vZGFsICovIFxcXCIuLi8uLi9jb21wb25lbnRzL01vZGFsLnRzeFxcXCIpO1xcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcbmNvbnN0IERpYWxvZyA9IChwcm9wcykgPT4ge1xcbiAgICBjb25zdCBbaXNsYW5kTm9kZSwgc2V0SXNsYW5kTm9kZV0gPSAoMCxfaG9va3NfdXNlQ2FsbGJhY2tSZWZTdGF0ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnVzZUNhbGxiYWNrUmVmU3RhdGUpKCk7XFxuICAgIGNvbnN0IFtsYXN0QWN0aXZlRWxlbWVudF0gPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnVzZVN0YXRlKShkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtcXG4gICAgY29uc3QgeyBpZCB9ID0gKDAsX2NvbXBvbmVudHNfQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18udXNlRXhjYWxpZHJhd0NvbnRhaW5lcikoKTtcXG4gICAgKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy51c2VFZmZlY3QpKCgpID0+IHtcXG4gICAgICAgIGlmICghaXNsYW5kTm9kZSkge1xcbiAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IGZvY3VzYWJsZUVsZW1lbnRzID0gcXVlcnlGb2N1c2FibGVFbGVtZW50cyhpc2xhbmROb2RlKTtcXG4gICAgICAgIGlmIChmb2N1c2FibGVFbGVtZW50cy5sZW5ndGggPiAwICYmIHByb3BzLmF1dG9mb2N1cyAhPT0gZmFsc2UpIHtcXG4gICAgICAgICAgICAvLyBJZiB0aGVyZSdzIGFuIGVsZW1lbnQgb3RoZXIgdGhhbiBjbG9zZSwgZm9jdXMgaXQuXFxuICAgICAgICAgICAgKGZvY3VzYWJsZUVsZW1lbnRzWzFdIHx8IGZvY3VzYWJsZUVsZW1lbnRzWzBdKS5mb2N1cygpO1xcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudCkgPT4ge1xcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uS0VZUy5UQUIpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgZm9jdXNhYmxlRWxlbWVudHMgPSBxdWVyeUZvY3VzYWJsZUVsZW1lbnRzKGlzbGFuZE5vZGUpO1xcbiAgICAgICAgICAgICAgICBjb25zdCB7IGFjdGl2ZUVsZW1lbnQgfSA9IGRvY3VtZW50O1xcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBmb2N1c2FibGVFbGVtZW50cy5maW5kSW5kZXgoKGVsZW1lbnQpID0+IGVsZW1lbnQgPT09IGFjdGl2ZUVsZW1lbnQpO1xcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudEluZGV4ID09PSAwICYmIGV2ZW50LnNoaWZ0S2V5KSB7XFxuICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGVFbGVtZW50c1tmb2N1c2FibGVFbGVtZW50cy5sZW5ndGggLSAxXS5mb2N1cygpO1xcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjdXJyZW50SW5kZXggPT09IGZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCAtIDEgJiZcXG4gICAgICAgICAgICAgICAgICAgICFldmVudC5zaGlmdEtleSkge1xcbiAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlRWxlbWVudHNbMF0uZm9jdXMoKTtcXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICB9O1xcbiAgICAgICAgaXNsYW5kTm9kZS5hZGRFdmVudExpc3RlbmVyKFxcXCJrZXlkb3duXFxcIiwgaGFuZGxlS2V5RG93bik7XFxuICAgICAgICByZXR1cm4gKCkgPT4gaXNsYW5kTm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKFxcXCJrZXlkb3duXFxcIiwgaGFuZGxlS2V5RG93bik7XFxuICAgIH0sIFtpc2xhbmROb2RlLCBwcm9wcy5hdXRvZm9jdXNdKTtcXG4gICAgY29uc3QgcXVlcnlGb2N1c2FibGVFbGVtZW50cyA9IChub2RlKSA9PiB7XFxuICAgICAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IG5vZGUucXVlcnlTZWxlY3RvckFsbChcXFwiYnV0dG9uLCBhLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgZGl2W3RhYmluZGV4XVxcXCIpO1xcbiAgICAgICAgcmV0dXJuIGZvY3VzYWJsZUVsZW1lbnRzID8gQXJyYXkuZnJvbShmb2N1c2FibGVFbGVtZW50cykgOiBbXTtcXG4gICAgfTtcXG4gICAgY29uc3Qgb25DbG9zZSA9ICgpID0+IHtcXG4gICAgICAgIGxhc3RBY3RpdmVFbGVtZW50LmZvY3VzKCk7XFxuICAgICAgICBwcm9wcy5vbkNsb3NlUmVxdWVzdCgpO1xcbiAgICB9O1xcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfTW9kYWxfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uTW9kYWwsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6ICgwLGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1tcXFwiZGVmYXVsdFxcXCJdKShcXFwiRGlhbG9nXFxcIiwgcHJvcHMuY2xhc3NOYW1lKSwgbGFiZWxsZWRCeTogXFxcImRpYWxvZy10aXRsZVxcXCIsIG1heFdpZHRoOiBwcm9wcy5zbWFsbCA/IDU1MCA6IDgwMCwgb25DbG9zZVJlcXVlc3Q6IG9uQ2xvc2UsIHRoZW1lOiBwcm9wcy50aGVtZSwgY2xvc2VPbkNsaWNrT3V0c2lkZTogcHJvcHMuY2xvc2VPbkNsaWNrT3V0c2lkZSB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKF9Jc2xhbmRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5Jc2xhbmQsIE9iamVjdC5hc3NpZ24oeyByZWY6IHNldElzbGFuZE5vZGUgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImgyXFxcIiwgT2JqZWN0LmFzc2lnbih7IGlkOiBgJHtpZH0tZGlhbG9nLXRpdGxlYCwgY2xhc3NOYW1lOiBcXFwiRGlhbG9nX190aXRsZVxcXCIgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3BhblxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJEaWFsb2dfX3RpdGxlQ29udGVudFxcXCIgfSwgeyBjaGlsZHJlbjogcHJvcHMudGl0bGUgfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiYnV0dG9uXFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcIk1vZGFsX19jbG9zZVxcXCIsIG9uQ2xpY2s6IG9uQ2xvc2UsIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwiYnV0dG9ucy5jbG9zZVxcXCIpIH0sIHsgY2hpbGRyZW46ICgwLF9jb21wb25lbnRzX0FwcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnVzZUlzTW9iaWxlKSgpID8gX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uYmFjayA6IF9pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmNsb3NlIH0pLCB2b2lkIDApXSB9KSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiRGlhbG9nX19jb250ZW50XFxcIiB9LCB7IGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KSwgdm9pZCAwKV0gfSksIHZvaWQgMCkgfSksIHZvaWQgMCkpO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlFYVdGc2IyY3VkSE40TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3T3pzN096czdPenRCUVVGM1FqdEJRVU15UWp0QlFVTm5RanRCUVVOMlF6dEJRVU0wUXp0QlFVTjZRenRCUVVOU08wRkJRMlU3UVVGRFNqdEJRVU5HTzBGQlkzcENMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUzBGQmEwSXNSVUZCUlN4RlFVRkZPMGxCUXpORExFMUJRVTBzUTBGQlF5eFZRVUZWTEVWQlFVVXNZVUZCWVN4RFFVRkRMRWRCUVVjc0swVkJRVzFDTEVWQlFXdENMRU5CUVVNN1NVRkRNVVVzVFVGQlRTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFZEJRVWNzSzBOQlFWRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03U1VGRE4wUXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkJSU3hIUVVGSExIVkZRVUZ6UWl4RlFVRkZMRU5CUVVNN1NVRkZlRU1zWjBSQlFWTXNRMEZCUXl4SFFVRkhMRVZCUVVVN1VVRkRZaXhKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTzFsQlEyWXNUMEZCVHp0VFFVTlNPMUZCUlVRc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnl4elFrRkJjMElzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVVTNSQ3hKUVVGSkxHbENRVUZwUWl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZETEZOQlFWTXNTMEZCU3l4TFFVRkxMRVZCUVVVN1dVRkROMFFzYjBSQlFXOUVPMWxCUTNCRUxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzYVVKQlFXbENMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXp0VFFVTjRSRHRSUVVWRUxFMUJRVTBzWVVGQllTeEhRVUZITEVOQlFVTXNTMEZCYjBJc1JVRkJSU3hGUVVGRk8xbEJRemRETEVsQlFVa3NTMEZCU3l4RFFVRkRMRWRCUVVjc1MwRkJTeXd5UTBGQlVTeEZRVUZGTzJkQ1FVTXhRaXhOUVVGTkxHbENRVUZwUWl4SFFVRkhMSE5DUVVGelFpeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMmRDUVVNM1JDeE5RVUZOTEVWQlFVVXNZVUZCWVN4RlFVRkZMRWRCUVVjc1VVRkJVU3hEUVVGRE8yZENRVU51UXl4TlFVRk5MRmxCUVZrc1IwRkJSeXhwUWtGQmFVSXNRMEZCUXl4VFFVRlRMRU5CUXpsRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZCUXl4UFFVRlBMRXRCUVVzc1lVRkJZU3hEUVVOMlF5eERRVUZETzJkQ1FVVkdMRWxCUVVrc1dVRkJXU3hMUVVGTExFTkJRVU1zU1VGQlNTeExRVUZMTEVOQlFVTXNVVUZCVVN4RlFVRkZPMjlDUVVONFF5eHBRa0ZCYVVJc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdiMEpCUTNoRUxFdEJRVXNzUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0cFFrRkRlRUk3Y1VKQlFVMHNTVUZEVEN4WlFVRlpMRXRCUVVzc2FVSkJRV2xDTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNN2IwSkJRemRETEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1JVRkRaanR2UWtGRFFTeHBRa0ZCYVVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXp0dlFrRkROMElzUzBGQlN5eERRVUZETEdOQlFXTXNSVUZCUlN4RFFVRkRPMmxDUVVONFFqdGhRVU5HTzFGQlEwZ3NRMEZCUXl4RFFVRkRPMUZCUlVZc1ZVRkJWU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRk5CUVZNc1JVRkJSU3hoUVVGaExFTkJRVU1zUTBGQlF6dFJRVVYwUkN4UFFVRlBMRWRCUVVjc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhUUVVGVExFVkJRVVVzWVVGQllTeERRVUZETEVOQlFVTTdTVUZEZUVVc1EwRkJReXhGUVVGRkxFTkJRVU1zVlVGQlZTeEZRVUZGTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSV3hETEUxQlFVMHNjMEpCUVhOQ0xFZEJRVWNzUTBGQlF5eEpRVUZwUWl4RlFVRkZMRVZCUVVVN1VVRkRia1FzVFVGQlRTeHBRa0ZCYVVJc1IwRkJSeXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUXpkRExHMUVRVUZ0UkN4RFFVTndSQ3hEUVVGRE8xRkJSVVlzVDBGQlR5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1NVRkRhRVVzUTBGQlF5eERRVUZETzBsQlJVWXNUVUZCVFN4UFFVRlBMRWRCUVVjc1IwRkJSeXhGUVVGRk8xRkJRMnhDTEdsQ1FVRnBReXhEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETzFGQlF6TkRMRXRCUVVzc1EwRkJReXhqUVVGakxFVkJRVVVzUTBGQlF6dEpRVU42UWl4RFFVRkRMRU5CUVVNN1NVRkZSaXhQUVVGUExFTkJRMHdzZFVSQlFVTXNNRU5CUVVzc2EwSkJRMG9zVTBGQlV5eEZRVUZGTEdkRVFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNSVUZETVVNc1ZVRkJWU3hGUVVGRExHTkJRV01zUlVGRGVrSXNVVUZCVVN4RlFVRkZMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVOcVF5eGpRVUZqTEVWQlFVVXNUMEZCVHl4RlFVTjJRaXhMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEV0QlFVc3NSVUZEYkVJc2JVSkJRVzFDTEVWQlFVVXNTMEZCU3l4RFFVRkRMRzFDUVVGdFFpeG5Ra0ZGT1VNc2QwUkJRVU1zTWtOQlFVMHNhMEpCUVVNc1IwRkJSeXhGUVVGRkxHRkJRV0VzYVVKQlEzaENMRGhGUVVGSkxFVkJRVVVzUlVGQlJTeEhRVUZITEVWQlFVVXNaVUZCWlN4RlFVRkZMRk5CUVZNc1JVRkJReXhsUVVGbExHbENRVU55UkN3clJVRkJUU3hUUVVGVExFVkJRVU1zYzBKQlFYTkNMR2RDUVVGRkxFdEJRVXNzUTBGQlF5eExRVUZMTEZsQlFWRXNSVUZETTBRc2FVWkJRMFVzVTBGQlV5eEZRVUZETEdOQlFXTXNSVUZEZUVJc1QwRkJUeXhGUVVGRkxFOUJRVThzWjBKQlEwb3NkME5CUVVNc1EwRkJReXhsUVVGbExFTkJRVU1zWjBKQlJUZENMRFJFUVVGWExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNkME5CUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zZVVOQlFVc3NXVUZEZEVJc1lVRkRUaXhGUVVOTUxEaEZRVUZMTEZOQlFWTXNSVUZCUXl4cFFrRkJhVUlzWjBKQlFVVXNTMEZCU3l4RFFVRkRMRkZCUVZFc1dVRkJUeXhoUVVOb1JDeFpRVU5JTEVOQlExUXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5amIyMXdiMjVsYm5SekwwUnBZV3h2Wnk1MGMzZy9NR1EzWXlKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ1kyeHplQ0JtY205dElGd2lZMnh6ZUZ3aU8xeHVhVzF3YjNKMElGSmxZV04wTENCN0lIVnpaVVZtWm1WamRDd2dkWE5sVTNSaGRHVWdmU0JtY205dElGd2ljbVZoWTNSY0lqdGNibWx0Y0c5eWRDQjdJSFZ6WlVOaGJHeGlZV05yVW1WbVUzUmhkR1VnZlNCbWNtOXRJRndpTGk0dmFHOXZhM012ZFhObFEyRnNiR0poWTJ0U1pXWlRkR0YwWlZ3aU8xeHVhVzF3YjNKMElIc2dkQ0I5SUdaeWIyMGdYQ0l1TGk5cE1UaHVYQ0k3WEc1cGJYQnZjblFnZXlCMWMyVkZlR05oYkdsa2NtRjNRMjl1ZEdGcGJtVnlMQ0IxYzJWSmMwMXZZbWxzWlNCOUlHWnliMjBnWENJdUxpOWpiMjF3YjI1bGJuUnpMMEZ3Y0Z3aU8xeHVhVzF3YjNKMElIc2dTMFZaVXlCOUlHWnliMjBnWENJdUxpOXJaWGx6WENJN1hHNXBiWEJ2Y25RZ1hDSXVMMFJwWVd4dlp5NXpZM056WENJN1hHNXBiWEJ2Y25RZ2V5QmlZV05yTENCamJHOXpaU0I5SUdaeWIyMGdYQ0l1TDJsamIyNXpYQ0k3WEc1cGJYQnZjblFnZXlCSmMyeGhibVFnZlNCbWNtOXRJRndpTGk5SmMyeGhibVJjSWp0Y2JtbHRjRzl5ZENCN0lFMXZaR0ZzSUgwZ1puSnZiU0JjSWk0dlRXOWtZV3hjSWp0Y2JtbHRjRzl5ZENCN0lFRndjRk4wWVhSbElIMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVjYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnUkdsaGJHOW5VSEp2Y0hNZ2UxeHVJQ0JqYUdsc1pISmxiam9nVW1WaFkzUXVVbVZoWTNST2IyUmxPMXh1SUNCamJHRnpjMDVoYldVL09pQnpkSEpwYm1jN1hHNGdJSE50WVd4c1B6b2dZbTl2YkdWaGJqdGNiaUFnYjI1RGJHOXpaVkpsY1hWbGMzUW9LVG9nZG05cFpEdGNiaUFnZEdsMGJHVTZJRkpsWVdOMExsSmxZV04wVG05a1pUdGNiaUFnWVhWMGIyWnZZM1Z6UHpvZ1ltOXZiR1ZoYmp0Y2JpQWdkR2hsYldVL09pQkJjSEJUZEdGMFpWdGNJblJvWlcxbFhDSmRPMXh1SUNCamJHOXpaVTl1UTJ4cFkydFBkWFJ6YVdSbFB6b2dZbTl2YkdWaGJqdGNibjFjYmx4dVpYaHdiM0owSUdOdmJuTjBJRVJwWVd4dlp5QTlJQ2h3Y205d2N6b2dSR2xoYkc5blVISnZjSE1wSUQwK0lIdGNiaUFnWTI5dWMzUWdXMmx6YkdGdVpFNXZaR1VzSUhObGRFbHpiR0Z1WkU1dlpHVmRJRDBnZFhObFEyRnNiR0poWTJ0U1pXWlRkR0YwWlR4SVZFMU1SR2wyUld4bGJXVnVkRDRvS1R0Y2JpQWdZMjl1YzNRZ1cyeGhjM1JCWTNScGRtVkZiR1Z0Wlc1MFhTQTlJSFZ6WlZOMFlYUmxLR1J2WTNWdFpXNTBMbUZqZEdsMlpVVnNaVzFsYm5RcE8xeHVJQ0JqYjI1emRDQjdJR2xrSUgwZ1BTQjFjMlZGZUdOaGJHbGtjbUYzUTI5dWRHRnBibVZ5S0NrN1hHNWNiaUFnZFhObFJXWm1aV04wS0NncElEMCtJSHRjYmlBZ0lDQnBaaUFvSVdsemJHRnVaRTV2WkdVcElIdGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQm1iMk4xYzJGaWJHVkZiR1Z0Wlc1MGN5QTlJSEYxWlhKNVJtOWpkWE5oWW14bFJXeGxiV1Z1ZEhNb2FYTnNZVzVrVG05a1pTazdYRzVjYmlBZ0lDQnBaaUFvWm05amRYTmhZbXhsUld4bGJXVnVkSE11YkdWdVozUm9JRDRnTUNBbUppQndjbTl3Y3k1aGRYUnZabTlqZFhNZ0lUMDlJR1poYkhObEtTQjdYRzRnSUNBZ0lDQXZMeUJKWmlCMGFHVnlaU2R6SUdGdUlHVnNaVzFsYm5RZ2IzUm9aWElnZEdoaGJpQmpiRzl6WlN3Z1ptOWpkWE1nYVhRdVhHNGdJQ0FnSUNBb1ptOWpkWE5oWW14bFJXeGxiV1Z1ZEhOYk1WMGdmSHdnWm05amRYTmhZbXhsUld4bGJXVnVkSE5iTUYwcExtWnZZM1Z6S0NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdhR0Z1Wkd4bFMyVjVSRzkzYmlBOUlDaGxkbVZ1ZERvZ1MyVjVZbTloY21SRmRtVnVkQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ2FXWWdLR1YyWlc1MExtdGxlU0E5UFQwZ1MwVlpVeTVVUVVJcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1ptOWpkWE5oWW14bFJXeGxiV1Z1ZEhNZ1BTQnhkV1Z5ZVVadlkzVnpZV0pzWlVWc1pXMWxiblJ6S0dsemJHRnVaRTV2WkdVcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCN0lHRmpkR2wyWlVWc1pXMWxiblFnZlNBOUlHUnZZM1Z0Wlc1ME8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCamRYSnlaVzUwU1c1a1pYZ2dQU0JtYjJOMWMyRmliR1ZGYkdWdFpXNTBjeTVtYVc1a1NXNWtaWGdvWEc0Z0lDQWdJQ0FnSUNBZ0tHVnNaVzFsYm5RcElEMCtJR1ZzWlcxbGJuUWdQVDA5SUdGamRHbDJaVVZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2FXWWdLR04xY25KbGJuUkpibVJsZUNBOVBUMGdNQ0FtSmlCbGRtVnVkQzV6YUdsbWRFdGxlU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHWnZZM1Z6WVdKc1pVVnNaVzFsYm5SelcyWnZZM1Z6WVdKc1pVVnNaVzFsYm5SekxteGxibWQwYUNBdElERmRMbVp2WTNWektDazdYRzRnSUNBZ0lDQWdJQ0FnWlhabGJuUXVjSEpsZG1WdWRFUmxabUYxYkhRb0tUdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2hjYmlBZ0lDQWdJQ0FnSUNCamRYSnlaVzUwU1c1a1pYZ2dQVDA5SUdadlkzVnpZV0pzWlVWc1pXMWxiblJ6TG14bGJtZDBhQ0F0SURFZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FoWlhabGJuUXVjMmhwWm5STFpYbGNiaUFnSUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1ptOWpkWE5oWW14bFJXeGxiV1Z1ZEhOYk1GMHVabTlqZFhNb0tUdGNiaUFnSUNBZ0lDQWdJQ0JsZG1WdWRDNXdjbVYyWlc1MFJHVm1ZWFZzZENncE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lHbHpiR0Z1WkU1dlpHVXVZV1JrUlhabGJuUk1hWE4wWlc1bGNpaGNJbXRsZVdSdmQyNWNJaXdnYUdGdVpHeGxTMlY1Ukc5M2JpazdYRzVjYmlBZ0lDQnlaWFIxY200Z0tDa2dQVDRnYVhOc1lXNWtUbTlrWlM1eVpXMXZkbVZGZG1WdWRFeHBjM1JsYm1WeUtGd2lhMlY1Wkc5M2Jsd2lMQ0JvWVc1a2JHVkxaWGxFYjNkdUtUdGNiaUFnZlN3Z1cybHpiR0Z1WkU1dlpHVXNJSEJ5YjNCekxtRjFkRzltYjJOMWMxMHBPMXh1WEc0Z0lHTnZibk4wSUhGMVpYSjVSbTlqZFhOaFlteGxSV3hsYldWdWRITWdQU0FvYm05a1pUb2dTRlJOVEVWc1pXMWxiblFwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0JtYjJOMWMyRmliR1ZGYkdWdFpXNTBjeUE5SUc1dlpHVXVjWFZsY25sVFpXeGxZM1J2Y2tGc2JEeElWRTFNUld4bGJXVnVkRDRvWEc0Z0lDQWdJQ0JjSW1KMWRIUnZiaXdnWVN3Z2FXNXdkWFFzSUhObGJHVmpkQ3dnZEdWNGRHRnlaV0VzSUdScGRsdDBZV0pwYm1SbGVGMWNJaXhjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlHWnZZM1Z6WVdKc1pVVnNaVzFsYm5SeklEOGdRWEp5WVhrdVpuSnZiU2htYjJOMWMyRmliR1ZGYkdWdFpXNTBjeWtnT2lCYlhUdGNiaUFnZlR0Y2JseHVJQ0JqYjI1emRDQnZia05zYjNObElEMGdLQ2tnUFQ0Z2UxeHVJQ0FnSUNoc1lYTjBRV04wYVhabFJXeGxiV1Z1ZENCaGN5QklWRTFNUld4bGJXVnVkQ2t1Wm05amRYTW9LVHRjYmlBZ0lDQndjbTl3Y3k1dmJrTnNiM05sVW1WeGRXVnpkQ2dwTzF4dUlDQjlPMXh1WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnUEUxdlpHRnNYRzRnSUNBZ0lDQmpiR0Z6YzA1aGJXVTllMk5zYzNnb1hDSkVhV0ZzYjJkY0lpd2djSEp2Y0hNdVkyeGhjM05PWVcxbEtYMWNiaUFnSUNBZ0lHeGhZbVZzYkdWa1FuazlYQ0prYVdGc2IyY3RkR2wwYkdWY0lseHVJQ0FnSUNBZ2JXRjRWMmxrZEdnOWUzQnliM0J6TG5OdFlXeHNJRDhnTlRVd0lEb2dPREF3ZlZ4dUlDQWdJQ0FnYjI1RGJHOXpaVkpsY1hWbGMzUTllMjl1UTJ4dmMyVjlYRzRnSUNBZ0lDQjBhR1Z0WlQxN2NISnZjSE11ZEdobGJXVjlYRzRnSUNBZ0lDQmpiRzl6WlU5dVEyeHBZMnRQZFhSemFXUmxQWHR3Y205d2N5NWpiRzl6WlU5dVEyeHBZMnRQZFhSemFXUmxmVnh1SUNBZ0lENWNiaUFnSUNBZ0lEeEpjMnhoYm1RZ2NtVm1QWHR6WlhSSmMyeGhibVJPYjJSbGZUNWNiaUFnSUNBZ0lDQWdQR2d5SUdsa1BYdGdKSHRwWkgwdFpHbGhiRzluTFhScGRHeGxZSDBnWTJ4aGMzTk9ZVzFsUFZ3aVJHbGhiRzluWDE5MGFYUnNaVndpUGx4dUlDQWdJQ0FnSUNBZ0lEeHpjR0Z1SUdOc1lYTnpUbUZ0WlQxY0lrUnBZV3h2WjE5ZmRHbDBiR1ZEYjI1MFpXNTBYQ0krZTNCeWIzQnpMblJwZEd4bGZUd3ZjM0JoYmo1Y2JpQWdJQ0FnSUNBZ0lDQThZblYwZEc5dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYkdGemMwNWhiV1U5WENKTmIyUmhiRjlmWTJ4dmMyVmNJbHh1SUNBZ0lDQWdJQ0FnSUNBZ2IyNURiR2xqYXoxN2IyNURiRzl6WlgxY2JpQWdJQ0FnSUNBZ0lDQWdJR0Z5YVdFdGJHRmlaV3c5ZTNRb1hDSmlkWFIwYjI1ekxtTnNiM05sWENJcGZWeHVJQ0FnSUNBZ0lDQWdJRDVjYmlBZ0lDQWdJQ0FnSUNBZ0lIdDFjMlZKYzAxdlltbHNaU2dwSUQ4Z1ltRmpheUE2SUdOc2IzTmxmVnh1SUNBZ0lDQWdJQ0FnSUR3dlluVjBkRzl1UGx4dUlDQWdJQ0FnSUNBOEwyZ3lQbHh1SUNBZ0lDQWdJQ0E4WkdsMklHTnNZWE56VG1GdFpUMWNJa1JwWVd4dloxOWZZMjl1ZEdWdWRGd2lQbnR3Y205d2N5NWphR2xzWkhKbGJuMDhMMlJwZGo1Y2JpQWdJQ0FnSUR3dlNYTnNZVzVrUGx4dUlDQWdJRHd2VFc5a1lXdytYRzRnSUNrN1hHNTlPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0RpYWxvZy50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvRXJyb3JEaWFsb2cudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvRXJyb3JEaWFsb2cudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJFcnJvckRpYWxvZ1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEVycm9yRGlhbG9nKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pMThuICovIFxcXCIuLi8uLi9pMThuLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9EaWFsb2dfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vRGlhbG9nICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0RpYWxvZy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0FwcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9BcHAgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvQXBwLnRzeFxcXCIpO1xcblxcblxcblxcblxcblxcbmNvbnN0IEVycm9yRGlhbG9nID0gKHsgbWVzc2FnZSwgb25DbG9zZSwgfSkgPT4ge1xcbiAgICBjb25zdCBbbW9kYWxJc1Nob3duLCBzZXRNb2RhbElzU2hvd25dID0gKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51c2VTdGF0ZSkoISFtZXNzYWdlKTtcXG4gICAgY29uc3QgeyBjb250YWluZXI6IGV4Y2FsaWRyYXdDb250YWluZXIgfSA9ICgwLF9BcHBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy51c2VFeGNhbGlkcmF3Q29udGFpbmVyKSgpO1xcbiAgICBjb25zdCBoYW5kbGVDbG9zZSA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLnVzZUNhbGxiYWNrKCgpID0+IHtcXG4gICAgICAgIHNldE1vZGFsSXNTaG93bihmYWxzZSk7XFxuICAgICAgICBpZiAob25DbG9zZSkge1xcbiAgICAgICAgICAgIG9uQ2xvc2UoKTtcXG4gICAgICAgIH1cXG4gICAgICAgIC8vIFRPRE86IEZpeCB0aGUgQTExeSBpc3N1ZXMgc28gdGhpcyBpcyBuZXZlciBuZWVkZWQgc2luY2Ugd2Ugc2hvdWxkIGFsd2F5cyBmb2N1cyBvbiBsYXN0IGFjdGl2ZSBlbGVtZW50XFxuICAgICAgICBleGNhbGlkcmF3Q29udGFpbmVyID09PSBudWxsIHx8IGV4Y2FsaWRyYXdDb250YWluZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4Y2FsaWRyYXdDb250YWluZXIuZm9jdXMoKTtcXG4gICAgfSwgW29uQ2xvc2UsIGV4Y2FsaWRyYXdDb250YWluZXJdKTtcXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkocmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GcmFnbWVudCwgeyBjaGlsZHJlbjogbW9kYWxJc1Nob3duICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX0RpYWxvZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkRpYWxvZywgT2JqZWN0LmFzc2lnbih7IHNtYWxsOiB0cnVlLCBvbkNsb3NlUmVxdWVzdDogaGFuZGxlQ2xvc2UsIHRpdGxlOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJlcnJvckRpYWxvZy50aXRsZVxcXCIpIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IHN0eWxlOiB7IHdoaXRlU3BhY2U6IFxcXCJwcmUtd3JhcFxcXCIgfSB9LCB7IGNoaWxkcmVuOiBtZXNzYWdlIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApKSB9LCB2b2lkIDApKTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5RmNuSnZja1JwWVd4dlp5NTBjM2d1YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3UVVGQmQwTTdRVUZEV2p0QlFVVk5PMEZCUTJFN1FVRkZlRU1zVFVGQlRTeFhRVUZYTEVkQlFVY3NRMEZCUXl4RlFVTXhRaXhQUVVGUExFVkJRMUFzVDBGQlR5eEhRVWxTTEVWQlFVVXNSVUZCUlR0SlFVTklMRTFCUVUwc1EwRkJReXhaUVVGWkxFVkJRVVVzWlVGQlpTeERRVUZETEVkQlFVY3NLME5CUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTVUZETlVRc1RVRkJUU3hGUVVGRkxGTkJRVk1zUlVGQlJTeHRRa0ZCYlVJc1JVRkJSU3hIUVVGSExEUkVRVUZ6UWl4RlFVRkZMRU5CUVVNN1NVRkZjRVVzVFVGQlRTeFhRVUZYTEVkQlFVY3NkMFJCUVdsQ0xFTkJRVU1zUjBGQlJ5eEZRVUZGTzFGQlEzcERMR1ZCUVdVc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVVYyUWl4SlFVRkpMRTlCUVU4c1JVRkJSVHRaUVVOWUxFOUJRVThzUlVGQlJTeERRVUZETzFOQlExZzdVVUZEUkN4M1IwRkJkMGM3VVVGRGVFY3NiVUpCUVcxQ0xHRkJRVzVDTEcxQ1FVRnRRaXgxUWtGQmJrSXNiVUpCUVcxQ0xFTkJRVVVzUzBGQlN5eEZRVUZGTEVOQlFVTTdTVUZETDBJc1EwRkJReXhGUVVGRkxFTkJRVU1zVDBGQlR5eEZRVUZGTEcxQ1FVRnRRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVZ1UXl4UFFVRlBMRU5CUTB3c05FaEJRMGNzV1VGQldTeEpRVUZKTEVOQlEyWXNkVVJCUVVNc01rTkJRVTBzYTBKQlEwd3NTMEZCU3l4UlFVTk1MR05CUVdNc1JVRkJSU3hYUVVGWExFVkJRek5DTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMR2RDUVVVM1FpdzRSVUZCU3l4TFFVRkxMRVZCUVVVc1JVRkJSU3hWUVVGVkxFVkJRVVVzVlVGQlZTeEZRVUZGTEdkQ1FVRkhMRTlCUVU4c1dVRkJUeXhaUVVOb1JDeERRVU5XTEZkQlEwRXNRMEZEU2l4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12UlhKeWIzSkVhV0ZzYjJjdWRITjRQekkxTURVaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElGSmxZV04wTENCN0lIVnpaVk4wWVhSbElIMGdabkp2YlNCY0luSmxZV04wWENJN1hHNXBiWEJ2Y25RZ2V5QjBJSDBnWm5KdmJTQmNJaTR1TDJreE9HNWNJanRjYmx4dWFXMXdiM0owSUhzZ1JHbGhiRzluSUgwZ1puSnZiU0JjSWk0dlJHbGhiRzluWENJN1hHNXBiWEJ2Y25RZ2V5QjFjMlZGZUdOaGJHbGtjbUYzUTI5dWRHRnBibVZ5SUgwZ1puSnZiU0JjSWk0dlFYQndYQ0k3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JGY25KdmNrUnBZV3h2WnlBOUlDaDdYRzRnSUcxbGMzTmhaMlVzWEc0Z0lHOXVRMnh2YzJVc1hHNTlPaUI3WEc0Z0lHMWxjM05oWjJVNklITjBjbWx1Wnp0Y2JpQWdiMjVEYkc5elpUODZJQ2dwSUQwK0lIWnZhV1E3WEc1OUtTQTlQaUI3WEc0Z0lHTnZibk4wSUZ0dGIyUmhiRWx6VTJodmQyNHNJSE5sZEUxdlpHRnNTWE5UYUc5M2JsMGdQU0IxYzJWVGRHRjBaU2doSVcxbGMzTmhaMlVwTzF4dUlDQmpiMjV6ZENCN0lHTnZiblJoYVc1bGNqb2daWGhqWVd4cFpISmhkME52Ym5SaGFXNWxjaUI5SUQwZ2RYTmxSWGhqWVd4cFpISmhkME52Ym5SaGFXNWxjaWdwTzF4dVhHNGdJR052Ym5OMElHaGhibVJzWlVOc2IzTmxJRDBnVW1WaFkzUXVkWE5sUTJGc2JHSmhZMnNvS0NrZ1BUNGdlMXh1SUNBZ0lITmxkRTF2WkdGc1NYTlRhRzkzYmlobVlXeHpaU2s3WEc1Y2JpQWdJQ0JwWmlBb2IyNURiRzl6WlNrZ2UxeHVJQ0FnSUNBZ2IyNURiRzl6WlNncE8xeHVJQ0FnSUgxY2JpQWdJQ0F2THlCVVQwUlBPaUJHYVhnZ2RHaGxJRUV4TVhrZ2FYTnpkV1Z6SUhOdklIUm9hWE1nYVhNZ2JtVjJaWElnYm1WbFpHVmtJSE5wYm1ObElIZGxJSE5vYjNWc1pDQmhiSGRoZVhNZ1ptOWpkWE1nYjI0Z2JHRnpkQ0JoWTNScGRtVWdaV3hsYldWdWRGeHVJQ0FnSUdWNFkyRnNhV1J5WVhkRGIyNTBZV2x1WlhJL0xtWnZZM1Z6S0NrN1hHNGdJSDBzSUZ0dmJrTnNiM05sTENCbGVHTmhiR2xrY21GM1EyOXVkR0ZwYm1WeVhTazdYRzVjYmlBZ2NtVjBkWEp1SUNoY2JpQWdJQ0E4UGx4dUlDQWdJQ0FnZTIxdlpHRnNTWE5UYUc5M2JpQW1KaUFvWEc0Z0lDQWdJQ0FnSUR4RWFXRnNiMmRjYmlBZ0lDQWdJQ0FnSUNCemJXRnNiRnh1SUNBZ0lDQWdJQ0FnSUc5dVEyeHZjMlZTWlhGMVpYTjBQWHRvWVc1a2JHVkRiRzl6WlgxY2JpQWdJQ0FnSUNBZ0lDQjBhWFJzWlQxN2RDaGNJbVZ5Y205eVJHbGhiRzluTG5ScGRHeGxYQ0lwZlZ4dUlDQWdJQ0FnSUNBK1hHNGdJQ0FnSUNBZ0lDQWdQR1JwZGlCemRIbHNaVDE3ZXlCM2FHbDBaVk53WVdObE9pQmNJbkJ5WlMxM2NtRndYQ0lnZlgwK2UyMWxjM05oWjJWOVBDOWthWFkrWEc0Z0lDQWdJQ0FnSUR3dlJHbGhiRzluUGx4dUlDQWdJQ0FnS1gxY2JpQWdJQ0E4THo1Y2JpQWdLVHRjYm4wN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvRXJyb3JEaWFsb2cudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0ZpeGVkU2lkZUNvbnRhaW5lci50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvRml4ZWRTaWRlQ29udGFpbmVyLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkZpeGVkU2lkZUNvbnRhaW5lclxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEZpeGVkU2lkZUNvbnRhaW5lcilcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0ZpeGVkU2lkZUNvbnRhaW5lcl9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0ZpeGVkU2lkZUNvbnRhaW5lci5zY3NzICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0ZpeGVkU2lkZUNvbnRhaW5lci5zY3NzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9GaXhlZFNpZGVDb250YWluZXJfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9GaXhlZFNpZGVDb250YWluZXJfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0ICovIFxcXCJyZWFjdFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBjbHN4ICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY2xzeC9kaXN0L2Nsc3gubS5qc1xcXCIpO1xcblxcblxcblxcblxcbmNvbnN0IEZpeGVkU2lkZUNvbnRhaW5lciA9ICh7IGNoaWxkcmVuLCBzaWRlLCBjbGFzc05hbWUsIH0pID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6ICgwLGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1tcXFwiZGVmYXVsdFxcXCJdKShcXFwiRml4ZWRTaWRlQ29udGFpbmVyXFxcIiwgYEZpeGVkU2lkZUNvbnRhaW5lcl9zaWRlXyR7c2lkZX1gLCBjbGFzc05hbWUpIH0sIHsgY2hpbGRyZW46IGNoaWxkcmVuIH0pLCB2b2lkIDApKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUdhWGhsWkZOcFpHVkRiMjUwWVdsdVpYSXVkSE40TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3TzBGQlFXMURPMEZCUlZRN1FVRkRSanRCUVZGcVFpeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExFTkJRVU1zUlVGRGFrTXNVVUZCVVN4RlFVTlNMRWxCUVVrc1JVRkRTaXhUUVVGVExFZEJRMlVzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZETjBJc09FVkJRMFVzVTBGQlV5eEZRVUZGTEdkRVFVRkpMRU5CUTJJc2IwSkJRVzlDTEVWQlEzQkNMREpDUVVFeVFpeEpRVUZKTEVWQlFVVXNSVUZEYWtNc1UwRkJVeXhEUVVOV0xHZENRVVZCTEZGQlFWRXNXVUZEVEN4RFFVTlFMRU5CUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlHYVhobFpGTnBaR1ZEYjI1MFlXbHVaWEl1ZEhONFB6STBNRGNpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUZ3aUxpOUdhWGhsWkZOcFpHVkRiMjUwWVdsdVpYSXVjMk56YzF3aU8xeHVYRzVwYlhCdmNuUWdVbVZoWTNRZ1puSnZiU0JjSW5KbFlXTjBYQ0k3WEc1cGJYQnZjblFnWTJ4emVDQm1jbTl0SUZ3aVkyeHplRndpTzF4dVhHNTBlWEJsSUVacGVHVmtVMmxrWlVOdmJuUmhhVzVsY2xCeWIzQnpJRDBnZTF4dUlDQmphR2xzWkhKbGJqb2dVbVZoWTNRdVVtVmhZM1JPYjJSbE8xeHVJQ0J6YVdSbE9pQmNJblJ2Y0Z3aUlId2dYQ0pzWldaMFhDSWdmQ0JjSW5KcFoyaDBYQ0k3WEc0Z0lHTnNZWE56VG1GdFpUODZJSE4wY21sdVp6dGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JHYVhobFpGTnBaR1ZEYjI1MFlXbHVaWElnUFNBb2UxeHVJQ0JqYUdsc1pISmxiaXhjYmlBZ2MybGtaU3hjYmlBZ1kyeGhjM05PWVcxbExGeHVmVG9nUm1sNFpXUlRhV1JsUTI5dWRHRnBibVZ5VUhKdmNITXBJRDArSUNoY2JpQWdQR1JwZGx4dUlDQWdJR05zWVhOelRtRnRaVDE3WTJ4emVDaGNiaUFnSUNBZ0lGd2lSbWw0WldSVGFXUmxRMjl1ZEdGcGJtVnlYQ0lzWEc0Z0lDQWdJQ0JnUm1sNFpXUlRhV1JsUTI5dWRHRnBibVZ5WDNOcFpHVmZKSHR6YVdSbGZXQXNYRzRnSUNBZ0lDQmpiR0Z6YzA1aGJXVXNYRzRnSUNBZ0tYMWNiaUFnUGx4dUlDQWdJSHRqYUdsc1pISmxibjFjYmlBZ1BDOWthWFkrWEc0cE8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvRml4ZWRTaWRlQ29udGFpbmVyLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9IZWxwRGlhbG9nLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvSGVscERpYWxvZy50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiSGVscERpYWxvZ1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEhlbHBEaWFsb2cpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdCAqLyBcXFwicmVhY3RcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2tleXMgKi8gXFxcIi4uLy4uL2tleXMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0RpYWxvZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9EaWFsb2cgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvRGlhbG9nLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfSGVscERpYWxvZ19zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0hlbHBEaWFsb2cuc2NzcyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9IZWxwRGlhbG9nLnNjc3NcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0hlbHBEaWFsb2dfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9IZWxwRGlhbG9nX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyk7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgSGVhZGVyID0gKCkgPT4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJIZWxwRGlhbG9nLS1oZWFkZXJcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImFcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiSGVscERpYWxvZy0tYnRuXFxcIiwgaHJlZjogXFxcImh0dHBzOi8vZ2l0aHViLmNvbS9leGNhbGlkcmF3L2V4Y2FsaWRyYXcjZG9jdW1lbnRhdGlvblxcXCIsIHRhcmdldDogXFxcIl9ibGFua1xcXCIsIHJlbDogXFxcIm5vb3BlbmVyIG5vcmVmZXJyZXJcXFwiIH0sIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImhlbHBEaWFsb2cuZG9jdW1lbnRhdGlvblxcXCIpIH0pLCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImFcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiSGVscERpYWxvZy0tYnRuXFxcIiwgaHJlZjogXFxcImh0dHBzOi8vYmxvZy5leGNhbGlkcmF3LmNvbVxcXCIsIHRhcmdldDogXFxcIl9ibGFua1xcXCIsIHJlbDogXFxcIm5vb3BlbmVyIG5vcmVmZXJyZXJcXFwiIH0sIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImhlbHBEaWFsb2cuYmxvZ1xcXCIpIH0pLCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImFcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiSGVscERpYWxvZy0tYnRuXFxcIiwgaHJlZjogXFxcImh0dHBzOi8vZ2l0aHViLmNvbS9leGNhbGlkcmF3L2V4Y2FsaWRyYXcvaXNzdWVzXFxcIiwgdGFyZ2V0OiBcXFwiX2JsYW5rXFxcIiwgcmVsOiBcXFwibm9vcGVuZXIgbm9yZWZlcnJlclxcXCIgfSwgeyBjaGlsZHJlbjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiaGVscERpYWxvZy5naXRodWJcXFwiKSB9KSwgdm9pZCAwKV0gfSksIHZvaWQgMCkpO1xcbmNvbnN0IFNlY3Rpb24gPSAocHJvcHMpID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImgzXFxcIiwgeyBjaGlsZHJlbjogcHJvcHMudGl0bGUgfSwgdm9pZCAwKSwgcHJvcHMuY2hpbGRyZW5dIH0sIHZvaWQgMCkpO1xcbmNvbnN0IENvbHVtbnMgPSAocHJvcHMpID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBzdHlsZToge1xcbiAgICAgICAgZGlzcGxheTogXFxcImZsZXhcXFwiLFxcbiAgICAgICAgZmxleERpcmVjdGlvbjogXFxcInJvd1xcXCIsXFxuICAgICAgICBmbGV4V3JhcDogXFxcIndyYXBcXFwiLFxcbiAgICAgICAganVzdGlmeUNvbnRlbnQ6IFxcXCJzcGFjZS1iZXR3ZWVuXFxcIixcXG4gICAgfSB9LCB7IGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KSwgdm9pZCAwKSk7XFxuY29uc3QgQ29sdW1uID0gKHByb3BzKSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgc3R5bGU6IHsgd2lkdGg6IFxcXCI0OSVcXFwiIH0gfSwgeyBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSksIHZvaWQgMCkpO1xcbmNvbnN0IFNob3J0Y3V0SXNsYW5kID0gKHByb3BzKSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcIkhlbHBEaWFsb2ctLWlzbGFuZFxcXCIgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiaDNcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiSGVscERpYWxvZy0taXNsYW5kLXRpdGxlXFxcIiB9LCB7IGNoaWxkcmVuOiBwcm9wcy5jYXB0aW9uIH0pLCB2b2lkIDApLCBwcm9wcy5jaGlsZHJlbl0gfSksIHZvaWQgMCkpO1xcbmNvbnN0IFNob3J0Y3V0ID0gKHByb3BzKSA9PiB7XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiSGVscERpYWxvZy0tc2hvcnRjdXRcXFwiIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBzdHlsZToge1xcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBcXFwiZmxleFxcXCIsXFxuICAgICAgICAgICAgICAgIG1hcmdpbjogXFxcIjBcXFwiLFxcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiBcXFwiNHB4IDhweFxcXCIsXFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6IFxcXCJjZW50ZXJcXFwiLFxcbiAgICAgICAgICAgIH0gfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IHN0eWxlOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogMS40LFxcbiAgICAgICAgICAgICAgICAgICAgfSB9LCB7IGNoaWxkcmVuOiBwcm9wcy5sYWJlbCB9KSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgc3R5bGU6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcXFwiZmxleFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogXFxcIjAgMCBhdXRvXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXFxcImZsZXgtZW5kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5JbmxpbmVTdGFydDogXFxcImF1dG9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiBcXFwiMzAlXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIH0gfSwgeyBjaGlsZHJlbjogcHJvcHMuc2hvcnRjdXRzLm1hcCgoc2hvcnRjdXQsIGluZGV4KSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKSgocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkuRnJhZ21lbnQpLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0S2V5LCB7IGNoaWxkcmVuOiBzaG9ydGN1dCB9LCB2b2lkIDApLCBwcm9wcy5pc09yICYmXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCAhPT0gcHJvcHMuc2hvcnRjdXRzLmxlbmd0aCAtIDEgJiZcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImhlbHBEaWFsb2cub3JcXFwiKV0gfSwgaW5kZXgpKSkgfSksIHZvaWQgMCldIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApKTtcXG59O1xcblNob3J0Y3V0LmRlZmF1bHRQcm9wcyA9IHtcXG4gICAgaXNPcjogdHJ1ZSxcXG59O1xcbmNvbnN0IFNob3J0Y3V0S2V5ID0gKHByb3BzKSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJrYmRcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiSGVscERpYWxvZy0ta2V5XFxcIiB9LCBwcm9wcyksIHZvaWQgMCkpO1xcbmNvbnN0IEhlbHBEaWFsb2cgPSAoeyBvbkNsb3NlIH0pID0+IHtcXG4gICAgY29uc3QgaGFuZGxlQ2xvc2UgPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS51c2VDYWxsYmFjaygoKSA9PiB7XFxuICAgICAgICBpZiAob25DbG9zZSkge1xcbiAgICAgICAgICAgIG9uQ2xvc2UoKTtcXG4gICAgICAgIH1cXG4gICAgfSwgW29uQ2xvc2VdKTtcXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkocmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GcmFnbWVudCwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShfRGlhbG9nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uRGlhbG9nLCBPYmplY3QuYXNzaWduKHsgb25DbG9zZVJlcXVlc3Q6IGhhbmRsZUNsb3NlLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiaGVscERpYWxvZy50aXRsZVxcXCIpLCBjbGFzc05hbWU6IFxcXCJIZWxwRGlhbG9nXFxcIiB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKEhlYWRlciwge30sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTZWN0aW9uLCBPYmplY3QuYXNzaWduKHsgdGl0bGU6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImhlbHBEaWFsb2cuc2hvcnRjdXRzXFxcIikgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShDb2x1bW5zLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShDb2x1bW4sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFNob3J0Y3V0SXNsYW5kLCBPYmplY3QuYXNzaWduKHsgY2FwdGlvbjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiaGVscERpYWxvZy5zaGFwZXNcXFwiKSB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJ0b29sQmFyLnNlbGVjdGlvblxcXCIpLCBzaG9ydGN1dHM6IFtcXFwiVlxcXCIsIFxcXCIxXFxcIl0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJ0b29sQmFyLnJlY3RhbmdsZVxcXCIpLCBzaG9ydGN1dHM6IFtcXFwiUlxcXCIsIFxcXCIyXFxcIl0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJ0b29sQmFyLmRpYW1vbmRcXFwiKSwgc2hvcnRjdXRzOiBbXFxcIkRcXFwiLCBcXFwiM1xcXCJdIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwidG9vbEJhci5lbGxpcHNlXFxcIiksIHNob3J0Y3V0czogW1xcXCJFXFxcIiwgXFxcIjRcXFwiXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcInRvb2xCYXIuYXJyb3dcXFwiKSwgc2hvcnRjdXRzOiBbXFxcIkFcXFwiLCBcXFwiNVxcXCJdIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwidG9vbEJhci5saW5lXFxcIiksIHNob3J0Y3V0czogW1xcXCJQXFxcIiwgXFxcIjZcXFwiXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcInRvb2xCYXIuZnJlZWRyYXdcXFwiKSwgc2hvcnRjdXRzOiBbXFxcIlNoaWZ0ICsgUFxcXCIsIFxcXCJYXFxcIiwgXFxcIjdcXFwiXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcInRvb2xCYXIudGV4dFxcXCIpLCBzaG9ydGN1dHM6IFtcXFwiVFxcXCIsIFxcXCI4XFxcIl0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJ0b29sQmFyLmltYWdlXFxcIiksIHNob3J0Y3V0czogW1xcXCI5XFxcIl0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJ0b29sQmFyLmxpYnJhcnlcXFwiKSwgc2hvcnRjdXRzOiBbXFxcIjBcXFwiXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImhlbHBEaWFsb2cuZWRpdFNlbGVjdGVkU2hhcGVcXFwiKSwgc2hvcnRjdXRzOiBbXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShcXFwiRW50ZXJcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiaGVscERpYWxvZy5kb3VibGVDbGlja1xcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJoZWxwRGlhbG9nLnRleHROZXdMaW5lXFxcIiksIHNob3J0Y3V0czogW1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkVudGVyXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShcXFwiU2hpZnQrRW50ZXJcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiaGVscERpYWxvZy50ZXh0RmluaXNoXFxcIiksIHNob3J0Y3V0czogW1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkVzY1xcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtFbnRlclxcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJoZWxwRGlhbG9nLmN1cnZlZEFycm93XFxcIiksIHNob3J0Y3V0czogW1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiQVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImhlbHBEaWFsb2cuY2xpY2tcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiaGVscERpYWxvZy5jbGlja1xcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJoZWxwRGlhbG9nLmNsaWNrXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgaXNPcjogZmFsc2UgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJoZWxwRGlhbG9nLmN1cnZlZExpbmVcXFwiKSwgc2hvcnRjdXRzOiBbXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJMXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiaGVscERpYWxvZy5jbGlja1xcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJoZWxwRGlhbG9nLmNsaWNrXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImhlbHBEaWFsb2cuY2xpY2tcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCBpc09yOiBmYWxzZSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcInRvb2xCYXIubG9ja1xcXCIpLCBzaG9ydGN1dHM6IFtcXFwiUVxcXCJdIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiaGVscERpYWxvZy5wcmV2ZW50QmluZGluZ1xcXCIpLCBzaG9ydGN1dHM6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZFxcXCIpXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcInRvb2xCYXIubGlua1xcXCIpLCBzaG9ydGN1dHM6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtLXFxcIildIH0sIHZvaWQgMCldIH0pLCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFNob3J0Y3V0SXNsYW5kLCBPYmplY3QuYXNzaWduKHsgY2FwdGlvbjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiaGVscERpYWxvZy52aWV3XFxcIikgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiYnV0dG9ucy56b29tSW5cXFwiKSwgc2hvcnRjdXRzOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrK1xcXCIpXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImJ1dHRvbnMuem9vbU91dFxcXCIpLCBzaG9ydGN1dHM6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCstXFxcIildIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiYnV0dG9ucy5yZXNldFpvb21cXFwiKSwgc2hvcnRjdXRzOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrMFxcXCIpXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImhlbHBEaWFsb2cuem9vbVRvRml0XFxcIiksIHNob3J0Y3V0czogW1xcXCJTaGlmdCsxXFxcIl0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJoZWxwRGlhbG9nLnpvb21Ub1NlbGVjdGlvblxcXCIpLCBzaG9ydGN1dHM6IFtcXFwiU2hpZnQrMlxcXCJdIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiYnV0dG9ucy5mdWxsU2NyZWVuXFxcIiksIHNob3J0Y3V0czogW1xcXCJGXFxcIl0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJidXR0b25zLnplbk1vZGVcXFwiKSwgc2hvcnRjdXRzOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJBbHQrWlxcXCIpXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy5zaG93R3JpZFxcXCIpLCBzaG9ydGN1dHM6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCsnXFxcIildIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwibGFiZWxzLnZpZXdNb2RlXFxcIiksIHNob3J0Y3V0czogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShcXFwiQWx0K1JcXFwiKV0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJsYWJlbHMudG9nZ2xlVGhlbWVcXFwiKSwgc2hvcnRjdXRzOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJBbHQrU2hpZnQrRFxcXCIpXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcInN0YXRzLnRpdGxlXFxcIiksIHNob3J0Y3V0czogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShcXFwiQWx0Ky9cXFwiKV0gfSwgdm9pZCAwKV0gfSksIHZvaWQgMCldIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShDb2x1bW4sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoU2hvcnRjdXRJc2xhbmQsIE9iamVjdC5hc3NpZ24oeyBjYXB0aW9uOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJoZWxwRGlhbG9nLmVkaXRvclxcXCIpIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy5zZWxlY3RBbGxcXFwiKSwgc2hvcnRjdXRzOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrQVxcXCIpXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy5tdWx0aVNlbGVjdFxcXCIpLCBzaG9ydGN1dHM6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoYFNoaWZ0KyR7KDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiaGVscERpYWxvZy5jbGlja1xcXCIpfWApXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImhlbHBEaWFsb2cuZGVlcFNlbGVjdFxcXCIpLCBzaG9ydGN1dHM6IFtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoYEN0cmxPckNtZCskeygwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImhlbHBEaWFsb2cuY2xpY2tcXFwiKX1gKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJoZWxwRGlhbG9nLmRlZXBCb3hTZWxlY3RcXFwiKSwgc2hvcnRjdXRzOiBbXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKGBDdHJsT3JDbWQrJHsoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJoZWxwRGlhbG9nLmRyYWdcXFwiKX1gKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJsYWJlbHMubW92ZUNhbnZhc1xcXCIpLCBzaG9ydGN1dHM6IFtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoYFNwYWNlKyR7KDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiaGVscERpYWxvZy5kcmFnXFxcIil9YCksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKGBXaGVlbCskeygwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImhlbHBEaWFsb2cuZHJhZ1xcXCIpfWApLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgaXNPcjogdHJ1ZSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy5jdXRcXFwiKSwgc2hvcnRjdXRzOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrWFxcXCIpXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy5jb3B5XFxcIiksIHNob3J0Y3V0czogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK0NcXFwiKV0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJsYWJlbHMucGFzdGVcXFwiKSwgc2hvcnRjdXRzOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrVlxcXCIpXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy5jb3B5QXNQbmdcXFwiKSwgc2hvcnRjdXRzOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJTaGlmdCtBbHQrQ1xcXCIpXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy5jb3B5U3R5bGVzXFxcIiksIHNob3J0Y3V0czogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK0FsdCtDXFxcIildIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwibGFiZWxzLnBhc3RlU3R5bGVzXFxcIiksIHNob3J0Y3V0czogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK0FsdCtWXFxcIildIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwibGFiZWxzLmRlbGV0ZVxcXCIpLCBzaG9ydGN1dHM6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkRlbFxcXCIpXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy5zZW5kVG9CYWNrXFxcIiksIHNob3J0Y3V0czogW1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uaXNEYXJ3aW5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtBbHQrW1xcXCIpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrU2hpZnQrW1xcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy5icmluZ1RvRnJvbnRcXFwiKSwgc2hvcnRjdXRzOiBbXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5pc0RhcndpblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK0FsdCtdXFxcIilcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtTaGlmdCtdXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwibGFiZWxzLnNlbmRCYWNrd2FyZFxcXCIpLCBzaG9ydGN1dHM6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtbXFxcIildIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwibGFiZWxzLmJyaW5nRm9yd2FyZFxcXCIpLCBzaG9ydGN1dHM6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtdXFxcIildIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwibGFiZWxzLmFsaWduVG9wXFxcIiksIHNob3J0Y3V0czogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK1NoaWZ0K1VwXFxcIildIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwibGFiZWxzLmFsaWduQm90dG9tXFxcIiksIHNob3J0Y3V0czogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK1NoaWZ0K0Rvd25cXFwiKV0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJsYWJlbHMuYWxpZ25MZWZ0XFxcIiksIHNob3J0Y3V0czogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK1NoaWZ0K0xlZnRcXFwiKV0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJsYWJlbHMuYWxpZ25SaWdodFxcXCIpLCBzaG9ydGN1dHM6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtTaGlmdCtSaWdodFxcXCIpXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy5kdXBsaWNhdGVTZWxlY3Rpb25cXFwiKSwgc2hvcnRjdXRzOiBbXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrRFxcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShgQWx0KyR7KDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiaGVscERpYWxvZy5kcmFnXFxcIil9YCksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiYnV0dG9ucy51bmRvXFxcIiksIHNob3J0Y3V0czogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK1pcXFwiKV0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJidXR0b25zLnJlZG9cXFwiKSwgc2hvcnRjdXRzOiBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmlzV2luZG93c1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gW1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtZXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShcXFwiQ3RybE9yQ21kK1NoaWZ0K1pcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrU2hpZnQrWlxcXCIpXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy5ncm91cFxcXCIpLCBzaG9ydGN1dHM6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtHXFxcIildIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwibGFiZWxzLnVuZ3JvdXBcXFwiKSwgc2hvcnRjdXRzOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrU2hpZnQrR1xcXCIpXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy5mbGlwSG9yaXpvbnRhbFxcXCIpLCBzaG9ydGN1dHM6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIlNoaWZ0K0hcXFwiKV0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJsYWJlbHMuZmxpcFZlcnRpY2FsXFxcIiksIHNob3J0Y3V0czogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShcXFwiU2hpZnQrVlxcXCIpXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy5zaG93U3Ryb2tlXFxcIiksIHNob3J0Y3V0czogWygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShcXFwiU1xcXCIpXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2hvcnRjdXQsIHsgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImxhYmVscy5zaG93QmFja2dyb3VuZFxcXCIpLCBzaG9ydGN1dHM6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkdcXFwiKV0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNob3J0Y3V0LCB7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJsYWJlbHMuZGVjcmVhc2VGb250U2l6ZVxcXCIpLCBzaG9ydGN1dHM6IFsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtTaGlmdCs8XFxcIildIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShTaG9ydGN1dCwgeyBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwibGFiZWxzLmluY3JlYXNlRm9udFNpemVcXFwiKSwgc2hvcnRjdXRzOiBbKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0U2hvcnRjdXRLZXkpKFxcXCJDdHJsT3JDbWQrU2hpZnQrPlxcXCIpXSB9LCB2b2lkIDApXSB9KSwgdm9pZCAwKSB9LCB2b2lkIDApXSB9LCB2b2lkIDApIH0pLCB2b2lkIDApXSB9KSwgdm9pZCAwKSB9LCB2b2lkIDApKTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5SVpXeHdSR2xoYkc5bkxuUnplQzVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3T3p0QlFVRXdRanRCUVVORk8wRkJRMnRDTzBGQlExbzdRVUZEVVR0QlFVTm1PMEZCUlROQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUTI1Q0xDdEZRVUZMTEZOQlFWTXNSVUZCUXl4dlFrRkJiMElzYVVKQlEycERMRFJGUVVORkxGTkJRVk1zUlVGQlF5eHBRa0ZCYVVJc1JVRkRNMElzU1VGQlNTeEZRVUZETEhkRVFVRjNSQ3hGUVVNM1JDeE5RVUZOTEVWQlFVTXNVVUZCVVN4RlFVTm1MRWRCUVVjc1JVRkJReXh4UWtGQmNVSXNaMEpCUlhoQ0xIZERRVUZETEVOQlFVTXNNRUpCUVRCQ0xFTkJRVU1zV1VGRE5VSXNSVUZEU2l3MFJVRkRSU3hUUVVGVExFVkJRVU1zYVVKQlFXbENMRVZCUXpOQ0xFbEJRVWtzUlVGQlF5dzJRa0ZCTmtJc1JVRkRiRU1zVFVGQlRTeEZRVUZETEZGQlFWRXNSVUZEWml4SFFVRkhMRVZCUVVNc2NVSkJRWEZDTEdkQ1FVVjRRaXgzUTBGQlF5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExGbEJRMjVDTEVWQlEwb3NORVZCUTBVc1UwRkJVeXhGUVVGRExHbENRVUZwUWl4RlFVTXpRaXhKUVVGSkxFVkJRVU1zYVVSQlFXbEVMRVZCUTNSRUxFMUJRVTBzUlVGQlF5eFJRVUZSTEVWQlEyWXNSMEZCUnl4RlFVRkRMSEZDUVVGeFFpeG5Ra0ZGZUVJc2QwTkJRVU1zUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhaUVVOeVFpeGhRVU5CTEVOQlExQXNRMEZCUXp0QlFVVkdMRTFCUVUwc1QwRkJUeXhIUVVGSExFTkJRVU1zUzBGQmJVUXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkRka1VzT0VoQlEwVXNlVVZCUVVzc1MwRkJTeXhEUVVGRExFdEJRVXNzVjBGQlRTeEZRVU55UWl4TFFVRkxMRU5CUVVNc1VVRkJVU3haUVVOa0xFTkJRMG9zUTBGQlF6dEJRVVZHTEUxQlFVMHNUMEZCVHl4SFFVRkhMRU5CUVVNc1MwRkJiME1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZEZUVRc09FVkJRMFVzUzBGQlN5eEZRVUZGTzFGQlEwd3NUMEZCVHl4RlFVRkZMRTFCUVUwN1VVRkRaaXhoUVVGaExFVkJRVVVzUzBGQlN6dFJRVU53UWl4UlFVRlJMRVZCUVVVc1RVRkJUVHRSUVVOb1FpeGpRVUZqTEVWQlFVVXNaVUZCWlR0TFFVTm9ReXhuUWtGRlFTeExRVUZMTEVOQlFVTXNVVUZCVVN4WlFVTllMRU5CUTFBc1EwRkJRenRCUVVWR0xFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNTMEZCYjBNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGRGRrUXNPRVZCUVVzc1MwRkJTeXhGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4blFrRkJSeXhMUVVGTExFTkJRVU1zVVVGQlVTeFpRVUZQTEVOQlEzSkVMRU5CUVVNN1FVRkZSaXhOUVVGTkxHTkJRV01zUjBGQlJ5eERRVUZETEV0QlIzWkNMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRMG9zSzBWQlFVc3NVMEZCVXl4RlFVRkRMRzlDUVVGdlFpeHBRa0ZEYWtNc05rVkJRVWtzVTBGQlV5eEZRVUZETERCQ1FVRXdRaXhuUWtGQlJTeExRVUZMTEVOQlFVTXNUMEZCVHl4WlFVRk5MRVZCUXpWRUxFdEJRVXNzUTBGQlF5eFJRVUZSTEdGQlExZ3NRMEZEVUN4RFFVRkRPMEZCUlVZc1RVRkJUU3hSUVVGUkxFZEJRVWNzUTBGQlF5eExRVWxxUWl4RlFVRkZMRVZCUVVVN1NVRkRTQ3hQUVVGUExFTkJRMHdzT0VWQlFVc3NVMEZCVXl4RlFVRkRMSE5DUVVGelFpeG5Ra0ZEYmtNc0swVkJRMFVzUzBGQlN5eEZRVUZGTzJkQ1FVTk1MRTlCUVU4c1JVRkJSU3hOUVVGTk8yZENRVU5tTEUxQlFVMHNSVUZCUlN4SFFVRkhPMmRDUVVOWUxFOUJRVThzUlVGQlJTeFRRVUZUTzJkQ1FVTnNRaXhWUVVGVkxFVkJRVVVzVVVGQlVUdGhRVU55UWl4cFFrRkZSQ3c0UlVGRFJTeExRVUZMTEVWQlFVVTdkMEpCUTB3c1ZVRkJWU3hGUVVGRkxFZEJRVWM3Y1VKQlEyaENMR2RDUVVWQkxFdEJRVXNzUTBGQlF5eExRVUZMTEZsQlExSXNSVUZEVGl3NFJVRkRSU3hMUVVGTExFVkJRVVU3ZDBKQlEwd3NUMEZCVHl4RlFVRkZMRTFCUVUwN2QwSkJRMllzU1VGQlNTeEZRVUZGTEZWQlFWVTdkMEpCUTJoQ0xHTkJRV01zUlVGQlJTeFZRVUZWTzNkQ1FVTXhRaXhwUWtGQmFVSXNSVUZCUlN4TlFVRk5PM2RDUVVONlFpeFJRVUZSTEVWQlFVVXNTMEZCU3p0eFFrRkRhRUlzWjBKQlJVRXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFJRVUZSTEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVONFF5eDNSRUZCUXl4MVJFRkJZeXhsUVVOaUxIVkVRVUZETEZkQlFWY3NZMEZCUlN4UlFVRlJMRmRCUVdVc1JVRkRjRU1zUzBGQlN5eERRVUZETEVsQlFVazdaME5CUTFRc1MwRkJTeXhMUVVGTExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNN1owTkJRM0JETEhkRFFVRkRMRU5CUVVNc1pVRkJaU3hEUVVGRExFdEJTa1FzUzBGQlN5eERRVXRVTEVOQlEyeENMRU5CUVVNc1dVRkRSU3hoUVVOR0xGbEJRMFlzUTBGRFVDeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRPMEZCUlVZc1VVRkJVU3hEUVVGRExGbEJRVmtzUjBGQlJ6dEpRVU4wUWl4SlFVRkpMRVZCUVVVc1NVRkJTVHREUVVOWUxFTkJRVU03UVVGRlJpeE5RVUZOTEZkQlFWY3NSMEZCUnl4RFFVRkRMRXRCUVc5RExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlF6VkVMRGhGUVVGTExGTkJRVk1zUlVGQlF5eHBRa0ZCYVVJc1NVRkJTeXhMUVVGTExGVkJRVWtzUTBGREwwTXNRMEZCUXp0QlFVVkxMRTFCUVUwc1ZVRkJWU3hIUVVGSExFTkJRVU1zUlVGQlJTeFBRVUZQTEVWQlFUUkNMRVZCUVVVc1JVRkJSVHRKUVVOc1JTeE5RVUZOTEZkQlFWY3NSMEZCUnl4M1JFRkJhVUlzUTBGQlF5eEhRVUZITEVWQlFVVTdVVUZEZWtNc1NVRkJTU3hQUVVGUExFVkJRVVU3V1VGRFdDeFBRVUZQTEVWQlFVVXNRMEZCUXp0VFFVTllPMGxCUTBnc1EwRkJReXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVmtMRTlCUVU4c1EwRkRUQ3cwU0VGRFJTeDNSRUZCUXl3eVEwRkJUU3hyUWtGRFRDeGpRVUZqTEVWQlFVVXNWMEZCVnl4RlFVTXpRaXhMUVVGTExFVkJRVVVzZDBOQlFVTXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eEZRVU0xUWl4VFFVRlRMRVZCUVVVc1dVRkJXU3hwUWtGRmRrSXNkVVJCUVVNc1RVRkJUU3hoUVVGSExFVkJRMVlzZFVSQlFVTXNUMEZCVHl4clFrRkJReXhMUVVGTExFVkJRVVVzZDBOQlFVTXNRMEZCUXl4elFrRkJjMElzUTBGQlF5eG5Ra0ZEZGtNc2QwUkJRVU1zVDBGQlR5eGxRVU5PTEhkRVFVRkRMRTFCUVUwc1pVRkRUQ3gzUkVGQlF5eGpRVUZqTEd0Q1FVRkRMRTlCUVU4c1JVRkJSU3gzUTBGQlF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExHbENRVU0zUXl4MVJFRkJReXhSUVVGUkxFbEJRMUFzUzBGQlN5eEZRVUZGTEhkRFFVRkRMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNSVUZETjBJc1UwRkJVeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4WFFVTnlRaXhGUVVOR0xIVkVRVUZETEZGQlFWRXNTVUZEVUN4TFFVRkxMRVZCUVVVc2QwTkJRVU1zUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhGUVVNM1FpeFRRVUZUTEVWQlFVVXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExGZEJRM0pDTEVWQlEwWXNkVVJCUVVNc1VVRkJVU3hKUVVGRExFdEJRVXNzUlVGQlJTeDNRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eFhRVUZKTEVWQlEyaEZMSFZFUVVGRExGRkJRVkVzU1VGQlF5eExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNWMEZCU1N4RlFVTm9SU3gxUkVGQlF5eFJRVUZSTEVsQlFVTXNTMEZCU3l4RlFVRkZMSGREUVVGRExFTkJRVU1zWlVGQlpTeERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eFhRVUZKTEVWQlF6bEVMSFZFUVVGRExGRkJRVkVzU1VGQlF5eExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXhqUVVGakxFTkJRVU1zUlVGQlJTeFRRVUZUTEVWQlFVVXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExGZEJRVWtzUlVGRE4wUXNkVVJCUVVNc1VVRkJVU3hKUVVOUUxFdEJRVXNzUlVGQlJTeDNRMEZCUXl4RFFVRkRMR3RDUVVGclFpeERRVUZETEVWQlF6VkNMRk5CUVZNc1JVRkJSU3hEUVVGRExGZEJRVmNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRmRCUTJ4RExFVkJRMFlzZFVSQlFVTXNVVUZCVVN4SlFVRkRMRXRCUVVzc1JVRkJSU3gzUTBGQlF5eERRVUZETEdOQlFXTXNRMEZCUXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNWMEZCU1N4RlFVTTNSQ3gxUkVGQlF5eFJRVUZSTEVsQlFVTXNTMEZCU3l4RlFVRkZMSGREUVVGRExFTkJRVU1zWlVGQlpTeERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExGZEJRVWtzUlVGRGVrUXNkVVJCUVVNc1VVRkJVU3hKUVVGRExFdEJRVXNzUlVGQlJTeDNRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExGZEJRVWtzUlVGRE0wUXNkVVJCUVVNc1VVRkJVU3hKUVVOUUxFdEJRVXNzUlVGQlJTeDNRMEZCUXl4RFFVRkRMRGhDUVVFNFFpeERRVUZETEVWQlEzaERMRk5CUVZNc1JVRkJSVHR2UkVGRFZDeHpSRUZCWXl4RFFVRkRMRTlCUVU4c1EwRkJRenR2UkVGRGRrSXNkME5CUVVNc1EwRkJReXgzUWtGQmQwSXNRMEZCUXp0cFJFRkROVUlzVjBGRFJDeEZRVU5HTEhWRVFVRkRMRkZCUVZFc1NVRkRVQ3hMUVVGTExFVkJRVVVzZDBOQlFVTXNRMEZCUXl4M1FrRkJkMElzUTBGQlF5eEZRVU5zUXl4VFFVRlRMRVZCUVVVN2IwUkJRMVFzYzBSQlFXTXNRMEZCUXl4UFFVRlBMRU5CUVVNN2IwUkJRM1pDTEhORVFVRmpMRU5CUVVNc1lVRkJZU3hEUVVGRE8ybEVRVU01UWl4WFFVTkVMRVZCUTBZc2RVUkJRVU1zVVVGQlVTeEpRVU5RTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExIVkNRVUYxUWl4RFFVRkRMRVZCUTJwRExGTkJRVk1zUlVGQlJUdHZSRUZEVkN4elJFRkJZeXhEUVVGRExFdEJRVXNzUTBGQlF6dHZSRUZEY2tJc2MwUkJRV01zUTBGQlF5eHBRa0ZCYVVJc1EwRkJRenRwUkVGRGJFTXNWMEZEUkN4RlFVTkdMSFZFUVVGRExGRkJRVkVzU1VGRFVDeExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4RlFVTnNReXhUUVVGVExFVkJRVVU3YjBSQlExUXNSMEZCUnp0dlJFRkRTQ3gzUTBGQlF5eERRVUZETEd0Q1FVRnJRaXhEUVVGRE8yOUVRVU55UWl4M1EwRkJReXhEUVVGRExHdENRVUZyUWl4RFFVRkRPMjlFUVVOeVFpeDNRMEZCUXl4RFFVRkRMR3RDUVVGclFpeERRVUZETzJsRVFVTjBRaXhGUVVORUxFbEJRVWtzUlVGQlJTeExRVUZMTEZkQlExZ3NSVUZEUml4MVJFRkJReXhSUVVGUkxFbEJRMUFzUzBGQlN5eEZRVUZGTEhkRFFVRkRMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNSVUZEYWtNc1UwRkJVeXhGUVVGRk8yOUVRVU5VTEVkQlFVYzdiMFJCUTBnc2QwTkJRVU1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJRenR2UkVGRGNrSXNkME5CUVVNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXp0dlJFRkRja0lzZDBOQlFVTXNRMEZCUXl4clFrRkJhMElzUTBGQlF6dHBSRUZEZEVJc1JVRkRSQ3hKUVVGSkxFVkJRVVVzUzBGQlN5eFhRVU5ZTEVWQlEwWXNkVVJCUVVNc1VVRkJVU3hKUVVGRExFdEJRVXNzUlVGQlJTeDNRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJReXhGUVVGRkxGTkJRVk1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4WFFVRkpMRVZCUTNoRUxIVkVRVUZETEZGQlFWRXNTVUZEVUN4TFFVRkxMRVZCUVVVc2QwTkJRVU1zUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhGUVVOeVF5eFRRVUZUTEVWQlFVVXNRMEZCUXl4elJFRkJZeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETEZkQlEzaERMRVZCUTBZc2RVUkJRVU1zVVVGQlVTeEpRVU5RTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eEZRVU40UWl4VFFVRlRMRVZCUVVVc1EwRkJReXh6UkVGQll5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRmRCUXpGRExHRkJRMkVzUlVGRGFrSXNkMFJCUVVNc1kwRkJZeXhyUWtGQlF5eFBRVUZQTEVWQlFVVXNkME5CUVVNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4cFFrRkRNME1zZFVSQlFVTXNVVUZCVVN4SlFVTlFMRXRCUVVzc1JVRkJSU3gzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFVkJRekZDTEZOQlFWTXNSVUZCUlN4RFFVRkRMSE5FUVVGakxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNWMEZETVVNc1JVRkRSaXgxUkVGQlF5eFJRVUZSTEVsQlExQXNTMEZCU3l4RlFVRkZMSGREUVVGRExFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1JVRkRNMElzVTBGQlV5eEZRVUZGTEVOQlFVTXNjMFJCUVdNc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF5eFhRVU14UXl4RlFVTkdMSFZFUVVGRExGRkJRVkVzU1VGRFVDeExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RlFVTTNRaXhUUVVGVExFVkJRVVVzUTBGQlF5eHpSRUZCWXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExGZEJRekZETEVWQlEwWXNkVVJCUVVNc1VVRkJVU3hKUVVOUUxFdEJRVXNzUlVGQlJTeDNRMEZCUXl4RFFVRkRMSE5DUVVGelFpeERRVUZETEVWQlEyaERMRk5CUVZNc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eFhRVU4wUWl4RlFVTkdMSFZFUVVGRExGRkJRVkVzU1VGRFVDeExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXcwUWtGQk5FSXNRMEZCUXl4RlFVTjBReXhUUVVGVExFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNWMEZEZEVJc1JVRkRSaXgxUkVGQlF5eFJRVUZSTEVsQlFVTXNTMEZCU3l4RlFVRkZMSGREUVVGRExFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1JVRkJSU3hUUVVGVExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNWMEZCU1N4RlFVTTVSQ3gxUkVGQlF5eFJRVUZSTEVsQlExQXNTMEZCU3l4RlFVRkZMSGREUVVGRExFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1JVRkRNMElzVTBGQlV5eEZRVUZGTEVOQlFVTXNjMFJCUVdNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eFhRVU53UXl4RlFVTkdMSFZFUVVGRExGRkJRVkVzU1VGRFVDeExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RlFVTXpRaXhUUVVGVExFVkJRVVVzUTBGQlF5eHpSRUZCWXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExGZEJRekZETEVWQlEwWXNkVVJCUVVNc1VVRkJVU3hKUVVOUUxFdEJRVXNzUlVGQlJTeDNRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVWQlF6TkNMRk5CUVZNc1JVRkJSU3hEUVVGRExITkVRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1YwRkRjRU1zUlVGRFJpeDFSRUZCUXl4UlFVRlJMRWxCUTFBc1MwRkJTeXhGUVVGRkxIZERRVUZETEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUlVGRE9VSXNVMEZCVXl4RlFVRkZMRU5CUVVNc2MwUkJRV01zUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4WFFVTXhReXhGUVVOR0xIVkVRVUZETEZGQlFWRXNTVUZEVUN4TFFVRkxMRVZCUVVVc2QwTkJRVU1zUTBGQlF5eGhRVUZoTEVOQlFVTXNSVUZEZGtJc1UwRkJVeXhGUVVGRkxFTkJRVU1zYzBSQlFXTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhYUVVOd1F5eGhRVU5oTEZsQlExWXNSVUZEVkN4MVJFRkJReXhOUVVGTkxHTkJRMHdzZDBSQlFVTXNZMEZCWXl4clFrRkJReXhQUVVGUExFVkJRVVVzZDBOQlFVTXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eHBRa0ZETjBNc2RVUkJRVU1zVVVGQlVTeEpRVU5RTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRVZCUXpWQ0xGTkJRVk1zUlVGQlJTeERRVUZETEhORVFVRmpMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU1zVjBGRE1VTXNSVUZEUml4MVJFRkJReXhSUVVGUkxFbEJRMUFzUzBGQlN5eEZRVUZGTEhkRFFVRkRMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNSVUZET1VJc1UwRkJVeXhGUVVGRkxFTkJRVU1zYzBSQlFXTXNRMEZCUXl4VFFVRlRMSGREUVVGRExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zVjBGRE4wUXNSVUZEUml4MVJFRkJReXhSUVVGUkxFbEJRMUFzUzBGQlN5eEZRVUZGTEhkRFFVRkRMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNSVUZEYWtNc1UwRkJVeXhGUVVGRk8yZEVRVU5VTEhORVFVRmpMRU5CUVVNc1lVRkJZU3gzUTBGQlF5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFVkJRVVVzUTBGQlF6czJRMEZEY2tRc1YwRkRSQ3hGUVVOR0xIVkVRVUZETEZGQlFWRXNTVUZEVUN4TFFVRkxMRVZCUVVVc2QwTkJRVU1zUTBGQlF5d3dRa0ZCTUVJc1EwRkJReXhGUVVOd1F5eFRRVUZUTEVWQlFVVTdaMFJCUTFRc2MwUkJRV01zUTBGQlF5eGhRVUZoTEhkRFFVRkRMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNSVUZCUlN4RFFVRkRPelpEUVVOd1JDeFhRVU5FTEVWQlEwWXNkVVJCUVVNc1VVRkJVU3hKUVVOUUxFdEJRVXNzUlVGQlJTeDNRMEZCUXl4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVWQlF6ZENMRk5CUVZNc1JVRkJSVHRuUkVGRFZDeHpSRUZCWXl4RFFVRkRMRk5CUVZNc2QwTkJRVU1zUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhGUVVGRkxFTkJRVU03WjBSQlF5OURMSE5FUVVGakxFTkJRVU1zVTBGQlV5eDNRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVWQlFVVXNRMEZCUXpzMlEwRkRhRVFzUlVGRFJDeEpRVUZKTEVWQlFVVXNTVUZCU1N4WFFVTldMRVZCUTBZc2RVUkJRVU1zVVVGQlVTeEpRVU5RTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eEZRVU4wUWl4VFFVRlRMRVZCUVVVc1EwRkJReXh6UkVGQll5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRmRCUXpGRExFVkJRMFlzZFVSQlFVTXNVVUZCVVN4SlFVTlFMRXRCUVVzc1JVRkJSU3gzUTBGQlF5eERRVUZETEdGQlFXRXNRMEZCUXl4RlFVTjJRaXhUUVVGVExFVkJRVVVzUTBGQlF5eHpSRUZCWXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExGZEJRekZETEVWQlEwWXNkVVJCUVVNc1VVRkJVU3hKUVVOUUxFdEJRVXNzUlVGQlJTeDNRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJReXhGUVVONFFpeFRRVUZUTEVWQlFVVXNRMEZCUXl4elJFRkJZeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEZkQlF6RkRMRVZCUTBZc2RVUkJRVU1zVVVGQlVTeEpRVU5RTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRVZCUXpWQ0xGTkJRVk1zUlVGQlJTeERRVUZETEhORVFVRmpMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU1zVjBGRE1VTXNSVUZEUml4MVJFRkJReXhSUVVGUkxFbEJRMUFzUzBGQlN5eEZRVUZGTEhkRFFVRkRMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNSVUZETjBJc1UwRkJVeXhGUVVGRkxFTkJRVU1zYzBSQlFXTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETEZkQlF6bERMRVZCUTBZc2RVUkJRVU1zVVVGQlVTeEpRVU5RTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRVZCUXpsQ0xGTkJRVk1zUlVGQlJTeERRVUZETEhORVFVRmpMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXl4WFFVTTVReXhGUVVOR0xIVkVRVUZETEZGQlFWRXNTVUZEVUN4TFFVRkxMRVZCUVVVc2QwTkJRVU1zUTBGQlF5eGxRVUZsTEVOQlFVTXNSVUZEZWtJc1UwRkJVeXhGUVVGRkxFTkJRVU1zYzBSQlFXTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhYUVVOc1F5eEZRVU5HTEhWRVFVRkRMRkZCUVZFc1NVRkRVQ3hMUVVGTExFVkJRVVVzZDBOQlFVTXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eEZRVU0zUWl4VFFVRlRMRVZCUVVVN1owUkJRMVFzTWtOQlFWRTdiMFJCUTA0c1EwRkJReXhEUVVGRExITkVRVUZqTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU03YjBSQlEyNURMRU5CUVVNc1EwRkJReXh6UkVGQll5eERRVUZETEcxQ1FVRnRRaXhEUVVGRE96WkRRVU40UXl4WFFVTkVMRVZCUTBZc2RVUkJRVU1zVVVGQlVTeEpRVU5RTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRVZCUXk5Q0xGTkJRVk1zUlVGQlJUdG5SRUZEVkN3eVEwRkJVVHR2UkVGRFRpeERRVUZETEVOQlFVTXNjMFJCUVdNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXp0dlJFRkRia01zUTBGQlF5eERRVUZETEhORVFVRmpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTTdOa05CUTNoRExGZEJRMFFzUlVGRFJpeDFSRUZCUXl4UlFVRlJMRWxCUTFBc1MwRkJTeXhGUVVGRkxIZERRVUZETEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zUlVGREwwSXNVMEZCVXl4RlFVRkZMRU5CUVVNc2MwUkJRV01zUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4WFFVTXhReXhGUVVOR0xIVkVRVUZETEZGQlFWRXNTVUZEVUN4TFFVRkxMRVZCUVVVc2QwTkJRVU1zUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhGUVVNdlFpeFRRVUZUTEVWQlFVVXNRMEZCUXl4elJFRkJZeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEZkQlF6RkRMRVZCUTBZc2RVUkJRVU1zVVVGQlVTeEpRVU5RTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRVZCUXpOQ0xGTkJRVk1zUlVGQlJTeERRVUZETEhORVFVRmpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNRMEZCUXl4WFFVTnFSQ3hGUVVOR0xIVkVRVUZETEZGQlFWRXNTVUZEVUN4TFFVRkxMRVZCUVVVc2QwTkJRVU1zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhGUVVNNVFpeFRRVUZUTEVWQlFVVXNRMEZCUXl4elJFRkJZeXhEUVVGRExITkNRVUZ6UWl4RFFVRkRMRU5CUVVNc1YwRkRia1FzUlVGRFJpeDFSRUZCUXl4UlFVRlJMRWxCUTFBc1MwRkJTeXhGUVVGRkxIZERRVUZETEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUlVGRE5VSXNVMEZCVXl4RlFVRkZMRU5CUVVNc2MwUkJRV01zUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhEUVVGRExGZEJRMjVFTEVWQlEwWXNkVVJCUVVNc1VVRkJVU3hKUVVOUUxFdEJRVXNzUlVGQlJTeDNRMEZCUXl4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVWQlF6ZENMRk5CUVZNc1JVRkJSU3hEUVVGRExITkVRVUZqTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlF5eFhRVU53UkN4RlFVTkdMSFZFUVVGRExGRkJRVkVzU1VGRFVDeExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4RlFVTnlReXhUUVVGVExFVkJRVVU3WjBSQlExUXNjMFJCUVdNc1EwRkJReXhoUVVGaExFTkJRVU03WjBSQlF6ZENMSE5FUVVGakxFTkJRVU1zVDBGQlR5eDNRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVWQlFVVXNRMEZCUXpzMlEwRkRPVU1zVjBGRFJDeEZRVU5HTEhWRVFVRkRMRkZCUVZFc1NVRkRVQ3hMUVVGTExFVkJRVVVzZDBOQlFVTXNRMEZCUXl4alFVRmpMRU5CUVVNc1JVRkRlRUlzVTBGQlV5eEZRVUZGTEVOQlFVTXNjMFJCUVdNc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF5eFhRVU14UXl4RlFVTkdMSFZFUVVGRExGRkJRVkVzU1VGRFVDeExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXhqUVVGakxFTkJRVU1zUlVGRGVFSXNVMEZCVXl4RlFVTlFMRFJEUVVGVE8yZEVRVU5RTEVOQlFVTXNRMEZCUXp0dlJFRkRSU3h6UkVGQll5eERRVUZETEdGQlFXRXNRMEZCUXp0dlJFRkROMElzYzBSQlFXTXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF6dHBSRUZEY0VNN1owUkJRMGdzUTBGQlF5eERRVUZETEVOQlFVTXNjMFJCUVdNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RFFVRkRMRmRCUlRORExFVkJRMFlzZFVSQlFVTXNVVUZCVVN4SlFVTlFMRXRCUVVzc1JVRkJSU3gzUTBGQlF5eERRVUZETEdOQlFXTXNRMEZCUXl4RlFVTjRRaXhUUVVGVExFVkJRVVVzUTBGQlF5eHpSRUZCWXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExGZEJRekZETEVWQlEwWXNkVVJCUVVNc1VVRkJVU3hKUVVOUUxFdEJRVXNzUlVGQlJTeDNRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVWQlF6RkNMRk5CUVZNc1JVRkJSU3hEUVVGRExITkVRVUZqTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF5eFhRVU5vUkN4RlFVTkdMSFZFUVVGRExGRkJRVkVzU1VGRFVDeExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4RlFVTnFReXhUUVVGVExFVkJRVVVzUTBGQlF5eHpSRUZCWXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExGZEJRM1JETEVWQlEwWXNkVVJCUVVNc1VVRkJVU3hKUVVOUUxFdEJRVXNzUlVGQlJTeDNRMEZCUXl4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVWQlF5OUNMRk5CUVZNc1JVRkJSU3hEUVVGRExITkVRVUZqTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1YwRkRkRU1zUlVGRFJpeDFSRUZCUXl4UlFVRlJMRWxCUTFBc1MwRkJTeXhGUVVGRkxIZERRVUZETEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUlVGRE4wSXNVMEZCVXl4RlFVRkZMRU5CUVVNc2MwUkJRV01zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4WFFVTm9ReXhGUVVOR0xIVkVRVUZETEZGQlFWRXNTVUZEVUN4TFFVRkxMRVZCUVVVc2QwTkJRVU1zUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhGUVVOcVF5eFRRVUZUTEVWQlFVVXNRMEZCUXl4elJFRkJZeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZkQlEyaERMRVZCUTBZc2RVUkJRVU1zVVVGQlVTeEpRVU5RTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExIbENRVUY1UWl4RFFVRkRMRVZCUTI1RExGTkJRVk1zUlVGQlJTeERRVUZETEhORVFVRmpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXl4WFFVTm9SQ3hGUVVOR0xIVkVRVUZETEZGQlFWRXNTVUZEVUN4TFFVRkxMRVZCUVVVc2QwTkJRVU1zUTBGQlF5eDVRa0ZCZVVJc1EwRkJReXhGUVVOdVF5eFRRVUZUTEVWQlFVVXNRMEZCUXl4elJFRkJZeXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNc1YwRkRhRVFzWVVGRFlTeFhRVU5XTEZsQlEwUXNXVUZEUml4aFFVTklMRmRCUTFJc1EwRkRTaXhEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZTR1ZzY0VScFlXeHZaeTUwYzNnL1pURXpaQ0pkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnVW1WaFkzUWdabkp2YlNCY0luSmxZV04wWENJN1hHNXBiWEJ2Y25RZ2V5QjBJSDBnWm5KdmJTQmNJaTR1TDJreE9HNWNJanRjYm1sdGNHOXlkQ0I3SUdselJHRnlkMmx1TENCcGMxZHBibVJ2ZDNNZ2ZTQm1jbTl0SUZ3aUxpNHZhMlY1YzF3aU8xeHVhVzF3YjNKMElIc2dSR2xoYkc5bklIMGdabkp2YlNCY0lpNHZSR2xoYkc5blhDSTdYRzVwYlhCdmNuUWdleUJuWlhSVGFHOXlkR04xZEV0bGVTQjlJR1p5YjIwZ1hDSXVMaTkxZEdsc2Mxd2lPMXh1YVcxd2IzSjBJRndpTGk5SVpXeHdSR2xoYkc5bkxuTmpjM05jSWp0Y2JseHVZMjl1YzNRZ1NHVmhaR1Z5SUQwZ0tDa2dQVDRnS0Z4dUlDQThaR2wySUdOc1lYTnpUbUZ0WlQxY0lraGxiSEJFYVdGc2IyY3RMV2hsWVdSbGNsd2lQbHh1SUNBZ0lEeGhYRzRnSUNBZ0lDQmpiR0Z6YzA1aGJXVTlYQ0pJWld4d1JHbGhiRzluTFMxaWRHNWNJbHh1SUNBZ0lDQWdhSEpsWmoxY0ltaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOWxlR05oYkdsa2NtRjNMMlY0WTJGc2FXUnlZWGNqWkc5amRXMWxiblJoZEdsdmJsd2lYRzRnSUNBZ0lDQjBZWEpuWlhROVhDSmZZbXhoYm10Y0lseHVJQ0FnSUNBZ2NtVnNQVndpYm05dmNHVnVaWElnYm05eVpXWmxjbkpsY2x3aVhHNGdJQ0FnUGx4dUlDQWdJQ0FnZTNRb1hDSm9aV3h3UkdsaGJHOW5MbVJ2WTNWdFpXNTBZWFJwYjI1Y0lpbDlYRzRnSUNBZ1BDOWhQbHh1SUNBZ0lEeGhYRzRnSUNBZ0lDQmpiR0Z6YzA1aGJXVTlYQ0pJWld4d1JHbGhiRzluTFMxaWRHNWNJbHh1SUNBZ0lDQWdhSEpsWmoxY0ltaDBkSEJ6T2k4dllteHZaeTVsZUdOaGJHbGtjbUYzTG1OdmJWd2lYRzRnSUNBZ0lDQjBZWEpuWlhROVhDSmZZbXhoYm10Y0lseHVJQ0FnSUNBZ2NtVnNQVndpYm05dmNHVnVaWElnYm05eVpXWmxjbkpsY2x3aVhHNGdJQ0FnUGx4dUlDQWdJQ0FnZTNRb1hDSm9aV3h3UkdsaGJHOW5MbUpzYjJkY0lpbDlYRzRnSUNBZ1BDOWhQbHh1SUNBZ0lEeGhYRzRnSUNBZ0lDQmpiR0Z6YzA1aGJXVTlYQ0pJWld4d1JHbGhiRzluTFMxaWRHNWNJbHh1SUNBZ0lDQWdhSEpsWmoxY0ltaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOWxlR05oYkdsa2NtRjNMMlY0WTJGc2FXUnlZWGN2YVhOemRXVnpYQ0pjYmlBZ0lDQWdJSFJoY21kbGREMWNJbDlpYkdGdWExd2lYRzRnSUNBZ0lDQnlaV3c5WENKdWIyOXdaVzVsY2lCdWIzSmxabVZ5Y21WeVhDSmNiaUFnSUNBK1hHNGdJQ0FnSUNCN2RDaGNJbWhsYkhCRWFXRnNiMmN1WjJsMGFIVmlYQ0lwZlZ4dUlDQWdJRHd2WVQ1Y2JpQWdQQzlrYVhZK1hHNHBPMXh1WEc1amIyNXpkQ0JUWldOMGFXOXVJRDBnS0hCeWIzQnpPaUI3SUhScGRHeGxPaUJ6ZEhKcGJtYzdJR05vYVd4a2NtVnVPaUJTWldGamRDNVNaV0ZqZEU1dlpHVWdmU2tnUFQ0Z0tGeHVJQ0E4UGx4dUlDQWdJRHhvTXo1N2NISnZjSE11ZEdsMGJHVjlQQzlvTXo1Y2JpQWdJQ0I3Y0hKdmNITXVZMmhwYkdSeVpXNTlYRzRnSUR3dlBseHVLVHRjYmx4dVkyOXVjM1FnUTI5c2RXMXVjeUE5SUNod2NtOXdjem9nZXlCamFHbHNaSEpsYmpvZ1VtVmhZM1F1VW1WaFkzUk9iMlJsSUgwcElEMCtJQ2hjYmlBZ1BHUnBkbHh1SUNBZ0lITjBlV3hsUFh0N1hHNGdJQ0FnSUNCa2FYTndiR0Y1T2lCY0ltWnNaWGhjSWl4Y2JpQWdJQ0FnSUdac1pYaEVhWEpsWTNScGIyNDZJRndpY205M1hDSXNYRzRnSUNBZ0lDQm1iR1Y0VjNKaGNEb2dYQ0ozY21Gd1hDSXNYRzRnSUNBZ0lDQnFkWE4wYVdaNVEyOXVkR1Z1ZERvZ1hDSnpjR0ZqWlMxaVpYUjNaV1Z1WENJc1hHNGdJQ0FnZlgxY2JpQWdQbHh1SUNBZ0lIdHdjbTl3Y3k1amFHbHNaSEpsYm4xY2JpQWdQQzlrYVhZK1hHNHBPMXh1WEc1amIyNXpkQ0JEYjJ4MWJXNGdQU0FvY0hKdmNITTZJSHNnWTJocGJHUnlaVzQ2SUZKbFlXTjBMbEpsWVdOMFRtOWtaU0I5S1NBOVBpQW9YRzRnSUR4a2FYWWdjM1I1YkdVOWUzc2dkMmxrZEdnNklGd2lORGtsWENJZ2ZYMCtlM0J5YjNCekxtTm9hV3hrY21WdWZUd3ZaR2wyUGx4dUtUdGNibHh1WTI5dWMzUWdVMmh2Y25SamRYUkpjMnhoYm1RZ1BTQW9jSEp2Y0hNNklIdGNiaUFnWTJGd2RHbHZiam9nYzNSeWFXNW5PMXh1SUNCamFHbHNaSEpsYmpvZ1VtVmhZM1F1VW1WaFkzUk9iMlJsTzF4dWZTa2dQVDRnS0Z4dUlDQThaR2wySUdOc1lYTnpUbUZ0WlQxY0lraGxiSEJFYVdGc2IyY3RMV2x6YkdGdVpGd2lQbHh1SUNBZ0lEeG9NeUJqYkdGemMwNWhiV1U5WENKSVpXeHdSR2xoYkc5bkxTMXBjMnhoYm1RdGRHbDBiR1ZjSWo1N2NISnZjSE11WTJGd2RHbHZibjA4TDJnelBseHVJQ0FnSUh0d2NtOXdjeTVqYUdsc1pISmxibjFjYmlBZ1BDOWthWFkrWEc0cE8xeHVYRzVqYjI1emRDQlRhRzl5ZEdOMWRDQTlJQ2h3Y205d2N6b2dlMXh1SUNCc1lXSmxiRG9nYzNSeWFXNW5PMXh1SUNCemFHOXlkR04xZEhNNklITjBjbWx1WjF0ZE8xeHVJQ0JwYzA5eU9pQmliMjlzWldGdU8xeHVmU2tnUFQ0Z2UxeHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lEeGthWFlnWTJ4aGMzTk9ZVzFsUFZ3aVNHVnNjRVJwWVd4dlp5MHRjMmh2Y25SamRYUmNJajVjYmlBZ0lDQWdJRHhrYVhaY2JpQWdJQ0FnSUNBZ2MzUjViR1U5ZTN0Y2JpQWdJQ0FnSUNBZ0lDQmthWE53YkdGNU9pQmNJbVpzWlhoY0lpeGNiaUFnSUNBZ0lDQWdJQ0J0WVhKbmFXNDZJRndpTUZ3aUxGeHVJQ0FnSUNBZ0lDQWdJSEJoWkdScGJtYzZJRndpTkhCNElEaHdlRndpTEZ4dUlDQWdJQ0FnSUNBZ0lHRnNhV2R1U1hSbGJYTTZJRndpWTJWdWRHVnlYQ0lzWEc0Z0lDQWdJQ0FnSUgxOVhHNGdJQ0FnSUNBK1hHNGdJQ0FnSUNBZ0lEeGthWFpjYmlBZ0lDQWdJQ0FnSUNCemRIbHNaVDE3ZTF4dUlDQWdJQ0FnSUNBZ0lDQWdiR2x1WlVobGFXZG9kRG9nTVM0MExGeHVJQ0FnSUNBZ0lDQWdJSDE5WEc0Z0lDQWdJQ0FnSUQ1Y2JpQWdJQ0FnSUNBZ0lDQjdjSEp2Y0hNdWJHRmlaV3g5WEc0Z0lDQWdJQ0FnSUR3dlpHbDJQbHh1SUNBZ0lDQWdJQ0E4WkdsMlhHNGdJQ0FnSUNBZ0lDQWdjM1I1YkdVOWUzdGNiaUFnSUNBZ0lDQWdJQ0FnSUdScGMzQnNZWGs2SUZ3aVpteGxlRndpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdabXhsZURvZ1hDSXdJREFnWVhWMGIxd2lMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2FuVnpkR2xtZVVOdmJuUmxiblE2SUZ3aVpteGxlQzFsYm1SY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUcxaGNtZHBia2x1YkdsdVpWTjBZWEowT2lCY0ltRjFkRzljSWl4Y2JpQWdJQ0FnSUNBZ0lDQWdJRzFwYmxkcFpIUm9PaUJjSWpNd0pWd2lMRnh1SUNBZ0lDQWdJQ0FnSUgxOVhHNGdJQ0FnSUNBZ0lENWNiaUFnSUNBZ0lDQWdJQ0I3Y0hKdmNITXVjMmh2Y25SamRYUnpMbTFoY0Nnb2MyaHZjblJqZFhRc0lHbHVaR1Y0S1NBOVBpQW9YRzRnSUNBZ0lDQWdJQ0FnSUNBOFVtVmhZM1F1Um5KaFoyMWxiblFnYTJWNVBYdHBibVJsZUgwK1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGFHOXlkR04xZEV0bGVUNTdjMmh2Y25SamRYUjlQQzlUYUc5eWRHTjFkRXRsZVQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZTNCeWIzQnpMbWx6VDNJZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBibVJsZUNBaFBUMGdjSEp2Y0hNdWMyaHZjblJqZFhSekxteGxibWQwYUNBdElERWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwS0Z3aWFHVnNjRVJwWVd4dlp5NXZjbHdpS1gxY2JpQWdJQ0FnSUNBZ0lDQWdJRHd2VW1WaFkzUXVSbkpoWjIxbGJuUStYRzRnSUNBZ0lDQWdJQ0FnS1NsOVhHNGdJQ0FnSUNBZ0lEd3ZaR2wyUGx4dUlDQWdJQ0FnUEM5a2FYWStYRzRnSUNBZ1BDOWthWFkrWEc0Z0lDazdYRzU5TzF4dVhHNVRhRzl5ZEdOMWRDNWtaV1poZFd4MFVISnZjSE1nUFNCN1hHNGdJR2x6VDNJNklIUnlkV1VzWEc1OU8xeHVYRzVqYjI1emRDQlRhRzl5ZEdOMWRFdGxlU0E5SUNod2NtOXdjem9nZXlCamFHbHNaSEpsYmpvZ1VtVmhZM1F1VW1WaFkzUk9iMlJsSUgwcElEMCtJQ2hjYmlBZ1BHdGlaQ0JqYkdGemMwNWhiV1U5WENKSVpXeHdSR2xoYkc5bkxTMXJaWGxjSWlCN0xpNHVjSEp2Y0hOOUlDOCtYRzRwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnU0dWc2NFUnBZV3h2WnlBOUlDaDdJRzl1UTJ4dmMyVWdmVG9nZXlCdmJrTnNiM05sUHpvZ0tDa2dQVDRnZG05cFpDQjlLU0E5UGlCN1hHNGdJR052Ym5OMElHaGhibVJzWlVOc2IzTmxJRDBnVW1WaFkzUXVkWE5sUTJGc2JHSmhZMnNvS0NrZ1BUNGdlMXh1SUNBZ0lHbG1JQ2h2YmtOc2IzTmxLU0I3WEc0Z0lDQWdJQ0J2YmtOc2IzTmxLQ2s3WEc0Z0lDQWdmVnh1SUNCOUxDQmJiMjVEYkc5elpWMHBPMXh1WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnUEQ1Y2JpQWdJQ0FnSUR4RWFXRnNiMmRjYmlBZ0lDQWdJQ0FnYjI1RGJHOXpaVkpsY1hWbGMzUTllMmhoYm1Sc1pVTnNiM05sZlZ4dUlDQWdJQ0FnSUNCMGFYUnNaVDE3ZENoY0ltaGxiSEJFYVdGc2IyY3VkR2wwYkdWY0lpbDlYRzRnSUNBZ0lDQWdJR05zWVhOelRtRnRaVDE3WENKSVpXeHdSR2xoYkc5blhDSjlYRzRnSUNBZ0lDQStYRzRnSUNBZ0lDQWdJRHhJWldGa1pYSWdMejVjYmlBZ0lDQWdJQ0FnUEZObFkzUnBiMjRnZEdsMGJHVTllM1FvWENKb1pXeHdSR2xoYkc5bkxuTm9iM0owWTNWMGMxd2lLWDArWEc0Z0lDQWdJQ0FnSUNBZ1BFTnZiSFZ0Ym5NK1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4UTI5c2RXMXVQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQThVMmh2Y25SamRYUkpjMnhoYm1RZ1kyRndkR2x2YmoxN2RDaGNJbWhsYkhCRWFXRnNiMmN1YzJoaGNHVnpYQ0lwZlQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFUyaHZjblJqZFhSY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGhZbVZzUFh0MEtGd2lkRzl2YkVKaGNpNXpaV3hsWTNScGIyNWNJaWw5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemFHOXlkR04xZEhNOWUxdGNJbFpjSWl3Z1hDSXhYQ0pkZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BGTm9iM0owWTNWMFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNZV0psYkQxN2RDaGNJblJ2YjJ4Q1lYSXVjbVZqZEdGdVoyeGxYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyaHZjblJqZFhSelBYdGJYQ0pTWENJc0lGd2lNbHdpWFgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeFRhRzl5ZEdOMWRDQnNZV0psYkQxN2RDaGNJblJ2YjJ4Q1lYSXVaR2xoYlc5dVpGd2lLWDBnYzJodmNuUmpkWFJ6UFh0YlhDSkVYQ0lzSUZ3aU0xd2lYWDBnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFUyaHZjblJqZFhRZ2JHRmlaV3c5ZTNRb1hDSjBiMjlzUW1GeUxtVnNiR2x3YzJWY0lpbDlJSE5vYjNKMFkzVjBjejE3VzF3aVJWd2lMQ0JjSWpSY0lsMTlJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEZOb2IzSjBZM1YwSUd4aFltVnNQWHQwS0Z3aWRHOXZiRUpoY2k1aGNuSnZkMXdpS1gwZ2MyaHZjblJqZFhSelBYdGJYQ0pCWENJc0lGd2lOVndpWFgwZ0x6NWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThVMmh2Y25SamRYUWdiR0ZpWld3OWUzUW9YQ0owYjI5c1FtRnlMbXhwYm1WY0lpbDlJSE5vYjNKMFkzVjBjejE3VzF3aVVGd2lMQ0JjSWpaY0lsMTlJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEZOb2IzSjBZM1YwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1lXSmxiRDE3ZENoY0luUnZiMnhDWVhJdVpuSmxaV1J5WVhkY0lpbDlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6YUc5eWRHTjFkSE05ZTF0Y0lsTm9hV1owSUNzZ1VGd2lMQ0JjSWxoY0lpd2dYQ0kzWENKZGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQRk5vYjNKMFkzVjBJR3hoWW1Wc1BYdDBLRndpZEc5dmJFSmhjaTUwWlhoMFhDSXBmU0J6YUc5eWRHTjFkSE05ZTF0Y0lsUmNJaXdnWENJNFhDSmRmU0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGFHOXlkR04xZENCc1lXSmxiRDE3ZENoY0luUnZiMnhDWVhJdWFXMWhaMlZjSWlsOUlITm9iM0owWTNWMGN6MTdXMXdpT1Z3aVhYMGdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4VTJodmNuUmpkWFFnYkdGaVpXdzllM1FvWENKMGIyOXNRbUZ5TG14cFluSmhjbmxjSWlsOUlITm9iM0owWTNWMGN6MTdXMXdpTUZ3aVhYMGdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4VTJodmNuUmpkWFJjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4aFltVnNQWHQwS0Z3aWFHVnNjRVJwWVd4dlp5NWxaR2wwVTJWc1pXTjBaV1JUYUdGd1pWd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOb2IzSjBZM1YwY3oxN1cxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JuWlhSVGFHOXlkR04xZEV0bGVTaGNJa1Z1ZEdWeVhDSXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMEtGd2lhR1ZzY0VScFlXeHZaeTVrYjNWaWJHVkRiR2xqYTF3aUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRjE5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFUyaHZjblJqZFhSY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGhZbVZzUFh0MEtGd2lhR1ZzY0VScFlXeHZaeTUwWlhoMFRtVjNUR2x1WlZ3aUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5vYjNKMFkzVjBjejE3VzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm5aWFJUYUc5eWRHTjFkRXRsZVNoY0lrVnVkR1Z5WENJcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JuWlhSVGFHOXlkR04xZEV0bGVTaGNJbE5vYVdaMEswVnVkR1Z5WENJcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdYWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGFHOXlkR04xZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHRmlaV3c5ZTNRb1hDSm9aV3h3UkdsaGJHOW5MblJsZUhSR2FXNXBjMmhjSWlsOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnphRzl5ZEdOMWRITTllMXRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1oyVjBVMmh2Y25SamRYUkxaWGtvWENKRmMyTmNJaWtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHZGxkRk5vYjNKMFkzVjBTMlY1S0Z3aVEzUnliRTl5UTIxa0swVnVkR1Z5WENJcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdYWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGFHOXlkR04xZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHRmlaV3c5ZTNRb1hDSm9aV3h3UkdsaGJHOW5MbU4xY25abFpFRnljbTkzWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMmh2Y25SamRYUnpQWHRiWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lGd2lRVndpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBLRndpYUdWc2NFUnBZV3h2Wnk1amJHbGphMXdpS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkQ2hjSW1obGJIQkVhV0ZzYjJjdVkyeHBZMnRjSWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFFvWENKb1pXeHdSR2xoYkc5bkxtTnNhV05yWENJcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdYWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdselQzSTllMlpoYkhObGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQRk5vYjNKMFkzVjBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWVdKbGJEMTdkQ2hjSW1obGJIQkVhV0ZzYjJjdVkzVnlkbVZrVEdsdVpWd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOb2IzSjBZM1YwY3oxN1cxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JjSWt4Y0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZENoY0ltaGxiSEJFYVdGc2IyY3VZMnhwWTJ0Y0lpa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhRb1hDSm9aV3h3UkdsaGJHOW5MbU5zYVdOclhDSXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMEtGd2lhR1ZzY0VScFlXeHZaeTVqYkdsamExd2lLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUYxOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBjMDl5UFh0bVlXeHpaWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGFHOXlkR04xZENCc1lXSmxiRDE3ZENoY0luUnZiMnhDWVhJdWJHOWphMXdpS1gwZ2MyaHZjblJqZFhSelBYdGJYQ0pSWENKZGZTQXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHhUYUc5eWRHTjFkRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdGaVpXdzllM1FvWENKb1pXeHdSR2xoYkc5bkxuQnlaWFpsYm5SQ2FXNWthVzVuWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMmh2Y25SamRYUnpQWHRiWjJWMFUyaHZjblJqZFhSTFpYa29YQ0pEZEhKc1QzSkRiV1JjSWlsZGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQRk5vYjNKMFkzVjBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWVdKbGJEMTdkQ2hjSW5SdmIyeENZWEl1YkdsdWExd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOb2IzSjBZM1YwY3oxN1cyZGxkRk5vYjNKMFkzVjBTMlY1S0Z3aVEzUnliRTl5UTIxa0swdGNJaWxkZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dlUyaHZjblJqZFhSSmMyeGhibVErWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRHhUYUc5eWRHTjFkRWx6YkdGdVpDQmpZWEIwYVc5dVBYdDBLRndpYUdWc2NFUnBZV3h2Wnk1MmFXVjNYQ0lwZlQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFUyaHZjblJqZFhSY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGhZbVZzUFh0MEtGd2lZblYwZEc5dWN5NTZiMjl0U1c1Y0lpbDlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6YUc5eWRHTjFkSE05ZTF0blpYUlRhRzl5ZEdOMWRFdGxlU2hjSWtOMGNteFBja050WkNzclhDSXBYWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGFHOXlkR04xZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHRmlaV3c5ZTNRb1hDSmlkWFIwYjI1ekxucHZiMjFQZFhSY0lpbDlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6YUc5eWRHTjFkSE05ZTF0blpYUlRhRzl5ZEdOMWRFdGxlU2hjSWtOMGNteFBja050WkNzdFhDSXBYWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGFHOXlkR04xZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHRmlaV3c5ZTNRb1hDSmlkWFIwYjI1ekxuSmxjMlYwV205dmJWd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOb2IzSjBZM1YwY3oxN1cyZGxkRk5vYjNKMFkzVjBTMlY1S0Z3aVEzUnliRTl5UTIxa0t6QmNJaWxkZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BGTm9iM0owWTNWMFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNZV0psYkQxN2RDaGNJbWhsYkhCRWFXRnNiMmN1ZW05dmJWUnZSbWwwWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMmh2Y25SamRYUnpQWHRiWENKVGFHbG1kQ3N4WENKZGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQRk5vYjNKMFkzVjBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWVdKbGJEMTdkQ2hjSW1obGJIQkVhV0ZzYjJjdWVtOXZiVlJ2VTJWc1pXTjBhVzl1WENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMmh2Y25SamRYUnpQWHRiWENKVGFHbG1kQ3N5WENKZGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQRk5vYjNKMFkzVjBJR3hoWW1Wc1BYdDBLRndpWW5WMGRHOXVjeTVtZFd4c1UyTnlaV1Z1WENJcGZTQnphRzl5ZEdOMWRITTllMXRjSWtaY0lsMTlJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEZOb2IzSjBZM1YwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1lXSmxiRDE3ZENoY0ltSjFkSFJ2Ym5NdWVtVnVUVzlrWlZ3aUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5vYjNKMFkzVjBjejE3VzJkbGRGTm9iM0owWTNWMFMyVjVLRndpUVd4MEsxcGNJaWxkZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BGTm9iM0owWTNWMFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNZV0psYkQxN2RDaGNJbXhoWW1Wc2N5NXphRzkzUjNKcFpGd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOb2IzSjBZM1YwY3oxN1cyZGxkRk5vYjNKMFkzVjBTMlY1S0Z3aVEzUnliRTl5UTIxa0t5ZGNJaWxkZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BGTm9iM0owWTNWMFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNZV0psYkQxN2RDaGNJbXhoWW1Wc2N5NTJhV1YzVFc5a1pWd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOb2IzSjBZM1YwY3oxN1cyZGxkRk5vYjNKMFkzVjBTMlY1S0Z3aVFXeDBLMUpjSWlsZGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQRk5vYjNKMFkzVjBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWVdKbGJEMTdkQ2hjSW14aFltVnNjeTUwYjJkbmJHVlVhR1Z0WlZ3aUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5vYjNKMFkzVjBjejE3VzJkbGRGTm9iM0owWTNWMFMyVjVLRndpUVd4MEsxTm9hV1owSzBSY0lpbGRmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEZOb2IzSjBZM1YwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1lXSmxiRDE3ZENoY0luTjBZWFJ6TG5ScGRHeGxYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyaHZjblJqZFhSelBYdGJaMlYwVTJodmNuUmpkWFJMWlhrb1hDSkJiSFFyTDF3aUtWMTlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQQzlUYUc5eWRHTjFkRWx6YkdGdVpENWNiaUFnSUNBZ0lDQWdJQ0FnSUR3dlEyOXNkVzF1UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQRU52YkhWdGJqNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1BGTm9iM0owWTNWMFNYTnNZVzVrSUdOaGNIUnBiMjQ5ZTNRb1hDSm9aV3h3UkdsaGJHOW5MbVZrYVhSdmNsd2lLWDArWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEZOb2IzSjBZM1YwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1lXSmxiRDE3ZENoY0lteGhZbVZzY3k1elpXeGxZM1JCYkd4Y0lpbDlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6YUc5eWRHTjFkSE05ZTF0blpYUlRhRzl5ZEdOMWRFdGxlU2hjSWtOMGNteFBja050WkN0QlhDSXBYWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGFHOXlkR04xZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHRmlaV3c5ZTNRb1hDSnNZV0psYkhNdWJYVnNkR2xUWld4bFkzUmNJaWw5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemFHOXlkR04xZEhNOWUxdG5aWFJUYUc5eWRHTjFkRXRsZVNoZ1UyaHBablFySkh0MEtGd2lhR1ZzY0VScFlXeHZaeTVqYkdsamExd2lLWDFnS1YxOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x6NWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThVMmh2Y25SamRYUmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hoWW1Wc1BYdDBLRndpYUdWc2NFUnBZV3h2Wnk1a1pXVndVMlZzWldOMFhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJodmNuUmpkWFJ6UFh0YlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2RsZEZOb2IzSjBZM1YwUzJWNUtHQkRkSEpzVDNKRGJXUXJKSHQwS0Z3aWFHVnNjRVJwWVd4dlp5NWpiR2xqYTF3aUtYMWdLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUYxOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x6NWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThVMmh2Y25SamRYUmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hoWW1Wc1BYdDBLRndpYUdWc2NFUnBZV3h2Wnk1a1pXVndRbTk0VTJWc1pXTjBYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyaHZjblJqZFhSelBYdGJYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdkbGRGTm9iM0owWTNWMFMyVjVLR0JEZEhKc1QzSkRiV1FySkh0MEtGd2lhR1ZzY0VScFlXeHZaeTVrY21GblhDSXBmV0FwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1hYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHhUYUc5eWRHTjFkRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdGaVpXdzllM1FvWENKc1lXSmxiSE11Ylc5MlpVTmhiblpoYzF3aUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5vYjNKMFkzVjBjejE3VzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm5aWFJUYUc5eWRHTjFkRXRsZVNoZ1UzQmhZMlVySkh0MEtGd2lhR1ZzY0VScFlXeHZaeTVrY21GblhDSXBmV0FwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm5aWFJUYUc5eWRHTjFkRXRsZVNoZ1YyaGxaV3dySkh0MEtGd2lhR1ZzY0VScFlXeHZaeTVrY21GblhDSXBmV0FwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1hYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x6VDNJOWUzUnlkV1Y5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFUyaHZjblJqZFhSY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGhZbVZzUFh0MEtGd2liR0ZpWld4ekxtTjFkRndpS1gxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITm9iM0owWTNWMGN6MTdXMmRsZEZOb2IzSjBZM1YwUzJWNUtGd2lRM1J5YkU5eVEyMWtLMWhjSWlsZGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQRk5vYjNKMFkzVjBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWVdKbGJEMTdkQ2hjSW14aFltVnNjeTVqYjNCNVhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJodmNuUmpkWFJ6UFh0YloyVjBVMmh2Y25SamRYUkxaWGtvWENKRGRISnNUM0pEYldRclExd2lLVjE5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFUyaHZjblJqZFhSY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGhZbVZzUFh0MEtGd2liR0ZpWld4ekxuQmhjM1JsWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMmh2Y25SamRYUnpQWHRiWjJWMFUyaHZjblJqZFhSTFpYa29YQ0pEZEhKc1QzSkRiV1FyVmx3aUtWMTlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4VTJodmNuUmpkWFJjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4aFltVnNQWHQwS0Z3aWJHRmlaV3h6TG1OdmNIbEJjMUJ1WjF3aUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5vYjNKMFkzVjBjejE3VzJkbGRGTm9iM0owWTNWMFMyVjVLRndpVTJocFpuUXJRV3gwSzBOY0lpbGRmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEZOb2IzSjBZM1YwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1lXSmxiRDE3ZENoY0lteGhZbVZzY3k1amIzQjVVM1I1YkdWelhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJodmNuUmpkWFJ6UFh0YloyVjBVMmh2Y25SamRYUkxaWGtvWENKRGRISnNUM0pEYldRclFXeDBLME5jSWlsZGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQRk5vYjNKMFkzVjBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWVdKbGJEMTdkQ2hjSW14aFltVnNjeTV3WVhOMFpWTjBlV3hsYzF3aUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5vYjNKMFkzVjBjejE3VzJkbGRGTm9iM0owWTNWMFMyVjVLRndpUTNSeWJFOXlRMjFrSzBGc2RDdFdYQ0lwWFgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeFRhRzl5ZEdOMWRGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR0ZpWld3OWUzUW9YQ0pzWVdKbGJITXVaR1ZzWlhSbFhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJodmNuUmpkWFJ6UFh0YloyVjBVMmh2Y25SamRYUkxaWGtvWENKRVpXeGNJaWxkZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BGTm9iM0owWTNWMFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNZV0psYkQxN2RDaGNJbXhoWW1Wc2N5NXpaVzVrVkc5Q1lXTnJYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyaHZjblJqZFhSelBYdGJYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdselJHRnlkMmx1WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQeUJuWlhSVGFHOXlkR04xZEV0bGVTaGNJa04wY214UGNrTnRaQ3RCYkhRclcxd2lLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEb2daMlYwVTJodmNuUmpkWFJMWlhrb1hDSkRkSEpzVDNKRGJXUXJVMmhwWm5Rclcxd2lLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUYxOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x6NWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThVMmh2Y25SamRYUmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hoWW1Wc1BYdDBLRndpYkdGaVpXeHpMbUp5YVc1blZHOUdjbTl1ZEZ3aUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5vYjNKMFkzVjBjejE3VzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBjMFJoY25kcGJseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z1oyVjBVMmh2Y25SamRYUkxaWGtvWENKRGRISnNUM0pEYldRclFXeDBLMTFjSWlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E2SUdkbGRGTm9iM0owWTNWMFMyVjVLRndpUTNSeWJFOXlRMjFrSzFOb2FXWjBLMTFjSWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmRmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEZOb2IzSjBZM1YwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1lXSmxiRDE3ZENoY0lteGhZbVZzY3k1elpXNWtRbUZqYTNkaGNtUmNJaWw5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemFHOXlkR04xZEhNOWUxdG5aWFJUYUc5eWRHTjFkRXRsZVNoY0lrTjBjbXhQY2tOdFpDdGJYQ0lwWFgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeFRhRzl5ZEdOMWRGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR0ZpWld3OWUzUW9YQ0pzWVdKbGJITXVZbkpwYm1kR2IzSjNZWEprWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMmh2Y25SamRYUnpQWHRiWjJWMFUyaHZjblJqZFhSTFpYa29YQ0pEZEhKc1QzSkRiV1FyWFZ3aUtWMTlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4VTJodmNuUmpkWFJjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4aFltVnNQWHQwS0Z3aWJHRmlaV3h6TG1Gc2FXZHVWRzl3WENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMmh2Y25SamRYUnpQWHRiWjJWMFUyaHZjblJqZFhSTFpYa29YQ0pEZEhKc1QzSkRiV1FyVTJocFpuUXJWWEJjSWlsZGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQRk5vYjNKMFkzVjBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWVdKbGJEMTdkQ2hjSW14aFltVnNjeTVoYkdsbmJrSnZkSFJ2YlZ3aUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5vYjNKMFkzVjBjejE3VzJkbGRGTm9iM0owWTNWMFMyVjVLRndpUTNSeWJFOXlRMjFrSzFOb2FXWjBLMFJ2ZDI1Y0lpbGRmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEZOb2IzSjBZM1YwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1lXSmxiRDE3ZENoY0lteGhZbVZzY3k1aGJHbG5ia3hsWm5SY0lpbDlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6YUc5eWRHTjFkSE05ZTF0blpYUlRhRzl5ZEdOMWRFdGxlU2hjSWtOMGNteFBja050WkN0VGFHbG1kQ3RNWldaMFhDSXBYWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGFHOXlkR04xZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHRmlaV3c5ZTNRb1hDSnNZV0psYkhNdVlXeHBaMjVTYVdkb2RGd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOb2IzSjBZM1YwY3oxN1cyZGxkRk5vYjNKMFkzVjBTMlY1S0Z3aVEzUnliRTl5UTIxa0sxTm9hV1owSzFKcFoyaDBYQ0lwWFgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeFRhRzl5ZEdOMWRGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR0ZpWld3OWUzUW9YQ0pzWVdKbGJITXVaSFZ3YkdsallYUmxVMlZzWldOMGFXOXVYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyaHZjblJqZFhSelBYdGJYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdkbGRGTm9iM0owWTNWMFMyVjVLRndpUTNSeWJFOXlRMjFrSzBSY0lpa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdkbGRGTm9iM0owWTNWMFMyVjVLR0JCYkhRckpIdDBLRndpYUdWc2NFUnBZV3h2Wnk1a2NtRm5YQ0lwZldBcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdYWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGFHOXlkR04xZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHRmlaV3c5ZTNRb1hDSmlkWFIwYjI1ekxuVnVaRzljSWlsOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnphRzl5ZEdOMWRITTllMXRuWlhSVGFHOXlkR04xZEV0bGVTaGNJa04wY214UGNrTnRaQ3RhWENJcFhYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHhUYUc5eWRHTjFkRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdGaVpXdzllM1FvWENKaWRYUjBiMjV6TG5KbFpHOWNJaWw5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemFHOXlkR04xZEhNOWUxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwYzFkcGJtUnZkM05jYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQS9JRnRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWjJWMFUyaHZjblJqZFhSTFpYa29YQ0pEZEhKc1QzSkRiV1FyV1Z3aUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaMlYwVTJodmNuUmpkWFJMWlhrb1hDSkRkSEpzVDNKRGJXUXJVMmhwWm5Rcldsd2lLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRjFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJRnRuWlhSVGFHOXlkR04xZEV0bGVTaGNJa04wY214UGNrTnRaQ3RUYUdsbWRDdGFYQ0lwWFZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQRk5vYjNKMFkzVjBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWVdKbGJEMTdkQ2hjSW14aFltVnNjeTVuY205MWNGd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOb2IzSjBZM1YwY3oxN1cyZGxkRk5vYjNKMFkzVjBTMlY1S0Z3aVEzUnliRTl5UTIxa0swZGNJaWxkZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BGTm9iM0owWTNWMFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNZV0psYkQxN2RDaGNJbXhoWW1Wc2N5NTFibWR5YjNWd1hDSXBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJodmNuUmpkWFJ6UFh0YloyVjBVMmh2Y25SamRYUkxaWGtvWENKRGRISnNUM0pEYldRclUyaHBablFyUjF3aUtWMTlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4VTJodmNuUmpkWFJjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4aFltVnNQWHQwS0Z3aWJHRmlaV3h6TG1ac2FYQkliM0pwZW05dWRHRnNYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyaHZjblJqZFhSelBYdGJaMlYwVTJodmNuUmpkWFJMWlhrb1hDSlRhR2xtZEN0SVhDSXBYWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGFHOXlkR04xZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHRmlaV3c5ZTNRb1hDSnNZV0psYkhNdVpteHBjRlpsY25ScFkyRnNYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyaHZjblJqZFhSelBYdGJaMlYwVTJodmNuUmpkWFJMWlhrb1hDSlRhR2xtZEN0V1hDSXBYWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGFHOXlkR04xZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHRmlaV3c5ZTNRb1hDSnNZV0psYkhNdWMyaHZkMU4wY205clpWd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOb2IzSjBZM1YwY3oxN1cyZGxkRk5vYjNKMFkzVjBTMlY1S0Z3aVUxd2lLVjE5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFUyaHZjblJqZFhSY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGhZbVZzUFh0MEtGd2liR0ZpWld4ekxuTm9iM2RDWVdOclozSnZkVzVrWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMmh2Y25SamRYUnpQWHRiWjJWMFUyaHZjblJqZFhSTFpYa29YQ0pIWENJcFhYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHhUYUc5eWRHTjFkRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdGaVpXdzllM1FvWENKc1lXSmxiSE11WkdWamNtVmhjMlZHYjI1MFUybDZaVndpS1gxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITm9iM0owWTNWMGN6MTdXMmRsZEZOb2IzSjBZM1YwUzJWNUtGd2lRM1J5YkU5eVEyMWtLMU5vYVdaMEt6eGNJaWxkZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BGTm9iM0owWTNWMFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNZV0psYkQxN2RDaGNJbXhoWW1Wc2N5NXBibU55WldGelpVWnZiblJUYVhwbFhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJodmNuUmpkWFJ6UFh0YloyVjBVMmh2Y25SamRYUkxaWGtvWENKRGRISnNUM0pEYldRclUyaHBablFyUGx3aUtWMTlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQQzlUYUc5eWRHTjFkRWx6YkdGdVpENWNiaUFnSUNBZ0lDQWdJQ0FnSUR3dlEyOXNkVzF1UGx4dUlDQWdJQ0FnSUNBZ0lEd3ZRMjlzZFcxdWN6NWNiaUFnSUNBZ0lDQWdQQzlUWldOMGFXOXVQbHh1SUNBZ0lDQWdQQzlFYVdGc2IyYytYRzRnSUNBZ1BDOCtYRzRnSUNrN1hHNTlPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0hlbHBEaWFsb2cudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0hlbHBJY29uLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0hlbHBJY29uLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiSGVscEljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBIZWxwSWNvbilcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbXBvbmVudHMvaWNvbnMgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvaWNvbnMudHN4XFxcIik7XFxuXFxuXFxuY29uc3QgSGVscEljb24gPSAocHJvcHMpID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImJ1dHRvblxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJoZWxwLWljb25cXFwiLCBvbkNsaWNrOiBwcm9wcy5vbkNsaWNrLCB0eXBlOiBcXFwiYnV0dG9uXFxcIiwgdGl0bGU6IGAke3Byb3BzLnRpdGxlfSBcdTIwMTQgP2AsIFxcXCJhcmlhLWxhYmVsXFxcIjogcHJvcHMudGl0bGUgfSwgeyBjaGlsZHJlbjogX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5xdWVzdGlvbkNpcmNsZSB9KSwgdm9pZCAwKSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlJWld4d1NXTnZiaTUwYzNndWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenRCUVVGeFJEdEJRVk01UXl4TlFVRk5MRkZCUVZFc1IwRkJSeXhEUVVGRExFdEJRVzlDTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUTJoRUxHbEdRVU5GTEZOQlFWTXNSVUZCUXl4WFFVRlhMRVZCUTNKQ0xFOUJRVThzUlVGQlJTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVTjBRaXhKUVVGSkxFVkJRVU1zVVVGQlVTeEZRVU5pTEV0QlFVc3NSVUZCUlN4SFFVRkhMRXRCUVVzc1EwRkJReXhMUVVGTExFMUJRVTBzWjBKQlEyWXNTMEZCU3l4RFFVRkRMRXRCUVVzc1owSkJSWFJDTERaRVFVRmpMRmxCUTFJc1EwRkRWaXhEUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12U0dWc2NFbGpiMjR1ZEhONFB6UmlaamtpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ2NYVmxjM1JwYjI1RGFYSmpiR1VnZlNCbWNtOXRJRndpTGk0dlkyOXRjRzl1Wlc1MGN5OXBZMjl1YzF3aU8xeHVYRzUwZVhCbElFaGxiSEJKWTI5dVVISnZjSE1nUFNCN1hHNGdJSFJwZEd4bFB6b2djM1J5YVc1bk8xeHVJQ0J1WVcxbFB6b2djM1J5YVc1bk8xeHVJQ0JwWkQ4NklITjBjbWx1Wnp0Y2JpQWdiMjVEYkdsamF6OG9LVG9nZG05cFpEdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JJWld4d1NXTnZiaUE5SUNod2NtOXdjem9nU0dWc2NFbGpiMjVRY205d2N5a2dQVDRnS0Z4dUlDQThZblYwZEc5dVhHNGdJQ0FnWTJ4aGMzTk9ZVzFsUFZ3aWFHVnNjQzFwWTI5dVhDSmNiaUFnSUNCdmJrTnNhV05yUFh0d2NtOXdjeTV2YmtOc2FXTnJmVnh1SUNBZ0lIUjVjR1U5WENKaWRYUjBiMjVjSWx4dUlDQWdJSFJwZEd4bFBYdGdKSHR3Y205d2N5NTBhWFJzWlgwZzRvQ1VJRDlnZlZ4dUlDQWdJR0Z5YVdFdGJHRmlaV3c5ZTNCeWIzQnpMblJwZEd4bGZWeHVJQ0ErWEc0Z0lDQWdlM0YxWlhOMGFXOXVRMmx5WTJ4bGZWeHVJQ0E4TDJKMWRIUnZiajVjYmlrN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvSGVscEljb24udHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0hpbnRWaWV3ZXIudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9IaW50Vmlld2VyLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJIaW50Vmlld2VyXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gSGludFZpZXdlcilcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZSAqLyBcXFwiLi4vLi4vc2NlbmUvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0hpbnRWaWV3ZXJfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9IaW50Vmlld2VyLnNjc3MgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvSGludFZpZXdlci5zY3NzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9IaW50Vmlld2VyX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfSGludFZpZXdlcl9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L3R5cGVDaGVja3MgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdHlwZUNoZWNrcy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcblxcblxcblxcblxcblxcblxcbmNvbnN0IGdldEhpbnRzID0gKHsgYXBwU3RhdGUsIGVsZW1lbnRzLCBpc01vYmlsZSB9KSA9PiB7XFxuICAgIHZhciBfYTtcXG4gICAgY29uc3QgeyBlbGVtZW50VHlwZSwgaXNSZXNpemluZywgaXNSb3RhdGluZywgbGFzdFBvaW50ZXJEb3duV2l0aCB9ID0gYXBwU3RhdGU7XFxuICAgIGNvbnN0IG11bHRpTW9kZSA9IGFwcFN0YXRlLm11bHRpRWxlbWVudCAhPT0gbnVsbDtcXG4gICAgaWYgKGVsZW1lbnRUeXBlID09PSBcXFwiYXJyb3dcXFwiIHx8IGVsZW1lbnRUeXBlID09PSBcXFwibGluZVxcXCIpIHtcXG4gICAgICAgIGlmICghbXVsdGlNb2RlKSB7XFxuICAgICAgICAgICAgcmV0dXJuICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udCkoXFxcImhpbnRzLmxpbmVhckVsZW1lbnRcXFwiKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnQpKFxcXCJoaW50cy5saW5lYXJFbGVtZW50TXVsdGlcXFwiKTtcXG4gICAgfVxcbiAgICBpZiAoZWxlbWVudFR5cGUgPT09IFxcXCJmcmVlZHJhd1xcXCIpIHtcXG4gICAgICAgIHJldHVybiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnQpKFxcXCJoaW50cy5mcmVlRHJhd1xcXCIpO1xcbiAgICB9XFxuICAgIGlmIChlbGVtZW50VHlwZSA9PT0gXFxcInRleHRcXFwiKSB7XFxuICAgICAgICByZXR1cm4gKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50KShcXFwiaGludHMudGV4dFxcXCIpO1xcbiAgICB9XFxuICAgIGlmIChhcHBTdGF0ZS5lbGVtZW50VHlwZSA9PT0gXFxcImltYWdlXFxcIiAmJiBhcHBTdGF0ZS5wZW5kaW5nSW1hZ2VFbGVtZW50KSB7XFxuICAgICAgICByZXR1cm4gKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50KShcXFwiaGludHMucGxhY2VJbWFnZVxcXCIpO1xcbiAgICB9XFxuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXRTZWxlY3RlZEVsZW1lbnRzKShlbGVtZW50cywgYXBwU3RhdGUpO1xcbiAgICBpZiAoaXNSZXNpemluZyAmJlxcbiAgICAgICAgbGFzdFBvaW50ZXJEb3duV2l0aCA9PT0gXFxcIm1vdXNlXFxcIiAmJlxcbiAgICAgICAgc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEpIHtcXG4gICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBzZWxlY3RlZEVsZW1lbnRzWzBdO1xcbiAgICAgICAgaWYgKCgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5pc0xpbmVhckVsZW1lbnQpKHRhcmdldEVsZW1lbnQpICYmIHRhcmdldEVsZW1lbnQucG9pbnRzLmxlbmd0aCA9PT0gMikge1xcbiAgICAgICAgICAgIHJldHVybiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnQpKFxcXCJoaW50cy5sb2NrQW5nbGVcXFwiKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiAoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uaXNJbWFnZUVsZW1lbnQpKHRhcmdldEVsZW1lbnQpXFxuICAgICAgICAgICAgPyAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnQpKFxcXCJoaW50cy5yZXNpemVJbWFnZVxcXCIpXFxuICAgICAgICAgICAgOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnQpKFxcXCJoaW50cy5yZXNpemVcXFwiKTtcXG4gICAgfVxcbiAgICBpZiAoaXNSb3RhdGluZyAmJiBsYXN0UG9pbnRlckRvd25XaXRoID09PSBcXFwibW91c2VcXFwiKSB7XFxuICAgICAgICByZXR1cm4gKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50KShcXFwiaGludHMucm90YXRlXFxcIik7XFxuICAgIH1cXG4gICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmICgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5pc1RleHRFbGVtZW50KShzZWxlY3RlZEVsZW1lbnRzWzBdKSkge1xcbiAgICAgICAgcmV0dXJuICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udCkoXFxcImhpbnRzLnRleHRfc2VsZWN0ZWRcXFwiKTtcXG4gICAgfVxcbiAgICBpZiAoYXBwU3RhdGUuZWRpdGluZ0VsZW1lbnQgJiYgKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmlzVGV4dEVsZW1lbnQpKGFwcFN0YXRlLmVkaXRpbmdFbGVtZW50KSkge1xcbiAgICAgICAgcmV0dXJuICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udCkoXFxcImhpbnRzLnRleHRfZWRpdGluZ1xcXCIpO1xcbiAgICB9XFxuICAgIGlmIChlbGVtZW50VHlwZSA9PT0gXFxcInNlbGVjdGlvblxcXCIpIHtcXG4gICAgICAgIGlmICgoKF9hID0gYXBwU3RhdGUuZHJhZ2dpbmdFbGVtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudHlwZSkgPT09IFxcXCJzZWxlY3Rpb25cXFwiICYmXFxuICAgICAgICAgICAgIWFwcFN0YXRlLmVkaXRpbmdFbGVtZW50ICYmXFxuICAgICAgICAgICAgIWFwcFN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50KSB7XFxuICAgICAgICAgICAgcmV0dXJuICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udCkoXFxcImhpbnRzLmRlZXBCb3hTZWxlY3RcXFwiKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmICghc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggJiYgIWlzTW9iaWxlKSB7XFxuICAgICAgICAgICAgcmV0dXJuICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udCkoXFxcImhpbnRzLmNhbnZhc1Bhbm5pbmdcXFwiKTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBpZiAoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEpIHtcXG4gICAgICAgIGlmICgoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uaXNMaW5lYXJFbGVtZW50KShzZWxlY3RlZEVsZW1lbnRzWzBdKSkge1xcbiAgICAgICAgICAgIGlmIChhcHBTdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBwU3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQuc2VsZWN0ZWRQb2ludHNJbmRpY2VzXFxuICAgICAgICAgICAgICAgICAgICA/ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udCkoXFxcImhpbnRzLmxpbmVFZGl0b3JfcG9pbnRTZWxlY3RlZFxcXCIpXFxuICAgICAgICAgICAgICAgICAgICA6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udCkoXFxcImhpbnRzLmxpbmVFZGl0b3Jfbm90aGluZ1NlbGVjdGVkXFxcIik7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnQpKFxcXCJoaW50cy5saW5lRWRpdG9yX2luZm9cXFwiKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmICgoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uaXNUZXh0QmluZGFibGVDb250YWluZXIpKHNlbGVjdGVkRWxlbWVudHNbMF0pKSB7XFxuICAgICAgICAgICAgcmV0dXJuICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udCkoXFxcImhpbnRzLmJpbmRUZXh0VG9FbGVtZW50XFxcIik7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIG51bGw7XFxufTtcXG5jb25zdCBIaW50Vmlld2VyID0gKHsgYXBwU3RhdGUsIGVsZW1lbnRzLCBpc01vYmlsZSwgfSkgPT4ge1xcbiAgICBsZXQgaGludCA9IGdldEhpbnRzKHtcXG4gICAgICAgIGFwcFN0YXRlLFxcbiAgICAgICAgZWxlbWVudHMsXFxuICAgICAgICBpc01vYmlsZSxcXG4gICAgfSk7XFxuICAgIGlmICghaGludCkge1xcbiAgICAgICAgcmV0dXJuIG51bGw7XFxuICAgIH1cXG4gICAgaGludCA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldFNob3J0Y3V0S2V5KShoaW50KTtcXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJIaW50Vmlld2VyXFxcIiB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInNwYW5cXFwiLCB7IGNoaWxkcmVuOiBoaW50IH0sIHZvaWQgMCkgfSksIHZvaWQgMCkpO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlJYVc1MFZtbGxkMlZ5TG5SemVDNXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN096czdRVUZCTkVJN1FVRkZiVUk3UVVGRmNFSTdRVUZQU1R0QlFVTlhPMEZCVVRGRExFMUJRVTBzVVVGQlVTeEhRVUZITEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQmJVSXNSVUZCUlN4RlFVRkZPenRKUVVOeVJTeE5RVUZOTEVWQlFVVXNWMEZCVnl4RlFVRkZMRlZCUVZVc1JVRkJSU3hWUVVGVkxFVkJRVVVzYlVKQlFXMUNMRVZCUVVVc1IwRkJSeXhSUVVGUkxFTkJRVU03U1VGRE9VVXNUVUZCVFN4VFFVRlRMRWRCUVVjc1VVRkJVU3hEUVVGRExGbEJRVmtzUzBGQlN5eEpRVUZKTEVOQlFVTTdTVUZGYWtRc1NVRkJTU3hYUVVGWExFdEJRVXNzVDBGQlR5eEpRVUZKTEZkQlFWY3NTMEZCU3l4TlFVRk5MRVZCUVVVN1VVRkRja1FzU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlR0WlFVTmtMRTlCUVU4c2QwTkJRVU1zUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRE8xTkJRMnBETzFGQlEwUXNUMEZCVHl4M1EwRkJReXhEUVVGRExEQkNRVUV3UWl4RFFVRkRMRU5CUVVNN1MwRkRkRU03U1VGRlJDeEpRVUZKTEZkQlFWY3NTMEZCU3l4VlFVRlZMRVZCUVVVN1VVRkRPVUlzVDBGQlR5eDNRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTTdTMEZETlVJN1NVRkZSQ3hKUVVGSkxGZEJRVmNzUzBGQlN5eE5RVUZOTEVWQlFVVTdVVUZETVVJc1QwRkJUeXgzUTBGQlF5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMHRCUTNoQ08wbEJSVVFzU1VGQlNTeFJRVUZSTEVOQlFVTXNWMEZCVnl4TFFVRkxMRTlCUVU4c1NVRkJTU3hSUVVGUkxFTkJRVU1zYlVKQlFXMUNMRVZCUVVVN1VVRkRjRVVzVDBGQlR5eDNRMEZCUXl4RFFVRkRMR3RDUVVGclFpeERRVUZETEVOQlFVTTdTMEZET1VJN1NVRkZSQ3hOUVVGTkxHZENRVUZuUWl4SFFVRkhMREpFUVVGdFFpeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRU5CUVVNc1EwRkJRenRKUVVWcVJTeEpRVU5GTEZWQlFWVTdVVUZEVml4dFFrRkJiVUlzUzBGQlN5eFBRVUZQTzFGQlF5OUNMR2RDUVVGblFpeERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRVZCUXpkQ08xRkJRMEVzVFVGQlRTeGhRVUZoTEVkQlFVY3NaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZETVVNc1NVRkJTU3h2UlVGQlpTeERRVUZETEdGQlFXRXNRMEZCUXl4SlFVRkpMR0ZCUVdFc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeExRVUZMTEVOQlFVTXNSVUZCUlR0WlFVTjJSU3hQUVVGUExIZERRVUZETEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF6dFRRVU0zUWp0UlFVTkVMRTlCUVU4c2JVVkJRV01zUTBGQlF5eGhRVUZoTEVOQlFVTTdXVUZEYkVNc1EwRkJReXhEUVVGRExIZERRVUZETEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU03V1VGRGVFSXNRMEZCUXl4RFFVRkRMSGREUVVGRExFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdTMEZEZGtJN1NVRkZSQ3hKUVVGSkxGVkJRVlVzU1VGQlNTeHRRa0ZCYlVJc1MwRkJTeXhQUVVGUExFVkJRVVU3VVVGRGFrUXNUMEZCVHl4M1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzB0QlF6RkNPMGxCUlVRc1NVRkJTU3huUWtGQlowSXNRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhKUVVGSkxHdEZRVUZoTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlR0UlFVTjJSU3hQUVVGUExIZERRVUZETEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zUTBGQlF6dExRVU5xUXp0SlFVVkVMRWxCUVVrc1VVRkJVU3hEUVVGRExHTkJRV01zU1VGQlNTeHJSVUZCWVN4RFFVRkRMRkZCUVZFc1EwRkJReXhqUVVGakxFTkJRVU1zUlVGQlJUdFJRVU55UlN4UFFVRlBMSGREUVVGRExFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1EwRkJRenRMUVVOb1F6dEpRVVZFTEVsQlFVa3NWMEZCVnl4TFFVRkxMRmRCUVZjc1JVRkJSVHRSUVVNdlFpeEpRVU5GTEdWQlFWRXNRMEZCUXl4bFFVRmxMREJEUVVGRkxFbEJRVWtzVFVGQlN5eFhRVUZYTzFsQlF6bERMRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV003V1VGRGVFSXNRMEZCUXl4UlFVRlJMRU5CUVVNc2IwSkJRVzlDTEVWQlF6bENPMWxCUTBFc1QwRkJUeXgzUTBGQlF5eERRVUZETEhGQ1FVRnhRaXhEUVVGRExFTkJRVU03VTBGRGFrTTdVVUZEUkN4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRk8xbEJRM3BETEU5QlFVOHNkME5CUVVNc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4RFFVRkRPMU5CUTJwRE8wdEJRMFk3U1VGRlJDeEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETEVWQlFVVTdVVUZEYWtNc1NVRkJTU3h2UlVGQlpTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVTdXVUZEZUVNc1NVRkJTU3hSUVVGUkxFTkJRVU1zYjBKQlFXOUNMRVZCUVVVN1owSkJRMnBETEU5QlFVOHNVVUZCVVN4RFFVRkRMRzlDUVVGdlFpeERRVUZETEhGQ1FVRnhRanR2UWtGRGVFUXNRMEZCUXl4RFFVRkRMSGREUVVGRExFTkJRVU1zWjBOQlFXZERMRU5CUVVNN2IwSkJRM0pETEVOQlFVTXNRMEZCUXl4M1EwRkJReXhEUVVGRExHdERRVUZyUXl4RFFVRkRMRU5CUVVNN1lVRkRNME03V1VGRFJDeFBRVUZQTEhkRFFVRkRMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNRMEZCUXp0VFFVTnVRenRSUVVORUxFbEJRVWtzTkVWQlFYVkNMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSVHRaUVVOb1JDeFBRVUZQTEhkRFFVRkRMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNRMEZCUXp0VFFVTnlRenRMUVVOR08wbEJSVVFzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWkN4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxGVkJRVlVzUjBGQlJ5eERRVUZETEVWQlEzcENMRkZCUVZFc1JVRkRVaXhSUVVGUkxFVkJRMUlzVVVGQlVTeEhRVU5STEVWQlFVVXNSVUZCUlR0SlFVTndRaXhKUVVGSkxFbEJRVWtzUjBGQlJ5eFJRVUZSTEVOQlFVTTdVVUZEYkVJc1VVRkJVVHRSUVVOU0xGRkJRVkU3VVVGRFVpeFJRVUZSTzB0QlExUXNRMEZCUXl4RFFVRkRPMGxCUTBnc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJUdFJRVU5VTEU5QlFVOHNTVUZCU1N4RFFVRkRPMHRCUTJJN1NVRkZSQ3hKUVVGSkxFZEJRVWNzYzBSQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVVMVFpeFBRVUZQTEVOQlEwd3NPRVZCUVVzc1UwRkJVeXhGUVVGRExGbEJRVmtzWjBKQlEzcENMREpGUVVGUExFbEJRVWtzVjBGQlVTeFpRVU5tTEVOQlExQXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5amIyMXdiMjVsYm5SekwwaHBiblJXYVdWM1pYSXVkSE40UHpsaE9UVWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnZENCOUlHWnliMjBnWENJdUxpOXBNVGh1WENJN1hHNXBiWEJ2Y25RZ2V5Qk9iMjVFWld4bGRHVmtSWGhqWVd4cFpISmhkMFZzWlcxbGJuUWdmU0JtY205dElGd2lMaTR2Wld4bGJXVnVkQzkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnWjJWMFUyVnNaV04wWldSRmJHVnRaVzUwY3lCOUlHWnliMjBnWENJdUxpOXpZMlZ1WlZ3aU8xeHVYRzVwYlhCdmNuUWdYQ0l1TDBocGJuUldhV1YzWlhJdWMyTnpjMXdpTzF4dWFXMXdiM0owSUhzZ1FYQndVM1JoZEdVZ2ZTQm1jbTl0SUZ3aUxpNHZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUdselNXMWhaMlZGYkdWdFpXNTBMRnh1SUNCcGMweHBibVZoY2tWc1pXMWxiblFzWEc0Z0lHbHpWR1Y0ZEVKcGJtUmhZbXhsUTI5dWRHRnBibVZ5TEZ4dUlDQnBjMVJsZUhSRmJHVnRaVzUwTEZ4dWZTQm1jbTl0SUZ3aUxpNHZaV3hsYldWdWRDOTBlWEJsUTJobFkydHpYQ0k3WEc1cGJYQnZjblFnZXlCblpYUlRhRzl5ZEdOMWRFdGxlU0I5SUdaeWIyMGdYQ0l1TGk5MWRHbHNjMXdpTzF4dVhHNXBiblJsY21aaFkyVWdTR2x1ZEZacFpYZGxjbEJ5YjNCeklIdGNiaUFnWVhCd1UzUmhkR1U2SUVGd2NGTjBZWFJsTzF4dUlDQmxiR1Z0Wlc1MGN6b2djbVZoWkc5dWJIa2dUbTl1UkdWc1pYUmxaRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTA3WEc0Z0lHbHpUVzlpYVd4bE9pQmliMjlzWldGdU8xeHVmVnh1WEc1amIyNXpkQ0JuWlhSSWFXNTBjeUE5SUNoN0lHRndjRk4wWVhSbExDQmxiR1Z0Wlc1MGN5d2dhWE5OYjJKcGJHVWdmVG9nU0dsdWRGWnBaWGRsY2xCeWIzQnpLU0E5UGlCN1hHNGdJR052Ym5OMElIc2daV3hsYldWdWRGUjVjR1VzSUdselVtVnphWHBwYm1jc0lHbHpVbTkwWVhScGJtY3NJR3hoYzNSUWIybHVkR1Z5Ukc5M2JsZHBkR2dnZlNBOUlHRndjRk4wWVhSbE8xeHVJQ0JqYjI1emRDQnRkV3gwYVUxdlpHVWdQU0JoY0hCVGRHRjBaUzV0ZFd4MGFVVnNaVzFsYm5RZ0lUMDlJRzUxYkd3N1hHNWNiaUFnYVdZZ0tHVnNaVzFsYm5SVWVYQmxJRDA5UFNCY0ltRnljbTkzWENJZ2ZId2daV3hsYldWdWRGUjVjR1VnUFQwOUlGd2liR2x1WlZ3aUtTQjdYRzRnSUNBZ2FXWWdLQ0Z0ZFd4MGFVMXZaR1VwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUIwS0Z3aWFHbHVkSE11YkdsdVpXRnlSV3hsYldWdWRGd2lLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhRb1hDSm9hVzUwY3k1c2FXNWxZWEpGYkdWdFpXNTBUWFZzZEdsY0lpazdYRzRnSUgxY2JseHVJQ0JwWmlBb1pXeGxiV1Z1ZEZSNWNHVWdQVDA5SUZ3aVpuSmxaV1J5WVhkY0lpa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMEtGd2lhR2x1ZEhNdVpuSmxaVVJ5WVhkY0lpazdYRzRnSUgxY2JseHVJQ0JwWmlBb1pXeGxiV1Z1ZEZSNWNHVWdQVDA5SUZ3aWRHVjRkRndpS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFFvWENKb2FXNTBjeTUwWlhoMFhDSXBPMXh1SUNCOVhHNWNiaUFnYVdZZ0tHRndjRk4wWVhSbExtVnNaVzFsYm5SVWVYQmxJRDA5UFNCY0ltbHRZV2RsWENJZ0ppWWdZWEJ3VTNSaGRHVXVjR1Z1WkdsdVowbHRZV2RsUld4bGJXVnVkQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBLRndpYUdsdWRITXVjR3hoWTJWSmJXRm5aVndpS1R0Y2JpQWdmVnh1WEc0Z0lHTnZibk4wSUhObGJHVmpkR1ZrUld4bGJXVnVkSE1nUFNCblpYUlRaV3hsWTNSbFpFVnNaVzFsYm5SektHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTazdYRzVjYmlBZ2FXWWdLRnh1SUNBZ0lHbHpVbVZ6YVhwcGJtY2dKaVpjYmlBZ0lDQnNZWE4wVUc5cGJuUmxja1J2ZDI1WGFYUm9JRDA5UFNCY0ltMXZkWE5sWENJZ0ppWmNiaUFnSUNCelpXeGxZM1JsWkVWc1pXMWxiblJ6TG14bGJtZDBhQ0E5UFQwZ01WeHVJQ0FwSUh0Y2JpQWdJQ0JqYjI1emRDQjBZWEpuWlhSRmJHVnRaVzUwSUQwZ2MyVnNaV04wWldSRmJHVnRaVzUwYzFzd1hUdGNiaUFnSUNCcFppQW9hWE5NYVc1bFlYSkZiR1Z0Wlc1MEtIUmhjbWRsZEVWc1pXMWxiblFwSUNZbUlIUmhjbWRsZEVWc1pXMWxiblF1Y0c5cGJuUnpMbXhsYm1kMGFDQTlQVDBnTWlrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhRb1hDSm9hVzUwY3k1c2IyTnJRVzVuYkdWY0lpazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJwYzBsdFlXZGxSV3hsYldWdWRDaDBZWEpuWlhSRmJHVnRaVzUwS1Z4dUlDQWdJQ0FnUHlCMEtGd2lhR2x1ZEhNdWNtVnphWHBsU1cxaFoyVmNJaWxjYmlBZ0lDQWdJRG9nZENoY0ltaHBiblJ6TG5KbGMybDZaVndpS1R0Y2JpQWdmVnh1WEc0Z0lHbG1JQ2hwYzFKdmRHRjBhVzVuSUNZbUlHeGhjM1JRYjJsdWRHVnlSRzkzYmxkcGRHZ2dQVDA5SUZ3aWJXOTFjMlZjSWlrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwS0Z3aWFHbHVkSE11Y205MFlYUmxYQ0lwTzF4dUlDQjlYRzVjYmlBZ2FXWWdLSE5sYkdWamRHVmtSV3hsYldWdWRITXViR1Z1WjNSb0lEMDlQU0F4SUNZbUlHbHpWR1Y0ZEVWc1pXMWxiblFvYzJWc1pXTjBaV1JGYkdWdFpXNTBjMXN3WFNrcElIdGNiaUFnSUNCeVpYUjFjbTRnZENoY0ltaHBiblJ6TG5SbGVIUmZjMlZzWldOMFpXUmNJaWs3WEc0Z0lIMWNibHh1SUNCcFppQW9ZWEJ3VTNSaGRHVXVaV1JwZEdsdVowVnNaVzFsYm5RZ0ppWWdhWE5VWlhoMFJXeGxiV1Z1ZENoaGNIQlRkR0YwWlM1bFpHbDBhVzVuUld4bGJXVnVkQ2twSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkQ2hjSW1ocGJuUnpMblJsZUhSZlpXUnBkR2x1WjF3aUtUdGNiaUFnZlZ4dVhHNGdJR2xtSUNobGJHVnRaVzUwVkhsd1pTQTlQVDBnWENKelpXeGxZM1JwYjI1Y0lpa2dlMXh1SUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJR0Z3Y0ZOMFlYUmxMbVJ5WVdkbmFXNW5SV3hsYldWdWREOHVkSGx3WlNBOVBUMGdYQ0p6Wld4bFkzUnBiMjVjSWlBbUpseHVJQ0FnSUNBZ0lXRndjRk4wWVhSbExtVmthWFJwYm1kRmJHVnRaVzUwSUNZbVhHNGdJQ0FnSUNBaFlYQndVM1JoZEdVdVpXUnBkR2x1WjB4cGJtVmhja1ZzWlcxbGJuUmNiaUFnSUNBcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMEtGd2lhR2x1ZEhNdVpHVmxjRUp2ZUZObGJHVmpkRndpS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0NGelpXeGxZM1JsWkVWc1pXMWxiblJ6TG14bGJtZDBhQ0FtSmlBaGFYTk5iMkpwYkdVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMEtGd2lhR2x1ZEhNdVkyRnVkbUZ6VUdGdWJtbHVaMXdpS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCcFppQW9jMlZzWldOMFpXUkZiR1Z0Wlc1MGN5NXNaVzVuZEdnZ1BUMDlJREVwSUh0Y2JpQWdJQ0JwWmlBb2FYTk1hVzVsWVhKRmJHVnRaVzUwS0hObGJHVmpkR1ZrUld4bGJXVnVkSE5iTUYwcEtTQjdYRzRnSUNBZ0lDQnBaaUFvWVhCd1UzUmhkR1V1WldScGRHbHVaMHhwYm1WaGNrVnNaVzFsYm5RcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHRndjRk4wWVhSbExtVmthWFJwYm1kTWFXNWxZWEpGYkdWdFpXNTBMbk5sYkdWamRHVmtVRzlwYm5SelNXNWthV05sYzF4dUlDQWdJQ0FnSUNBZ0lEOGdkQ2hjSW1ocGJuUnpMbXhwYm1WRlpHbDBiM0pmY0c5cGJuUlRaV3hsWTNSbFpGd2lLVnh1SUNBZ0lDQWdJQ0FnSURvZ2RDaGNJbWhwYm5SekxteHBibVZGWkdsMGIzSmZibTkwYUdsdVoxTmxiR1ZqZEdWa1hDSXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlIUW9YQ0pvYVc1MGN5NXNhVzVsUldScGRHOXlYMmx1Wm05Y0lpazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHBjMVJsZUhSQ2FXNWtZV0pzWlVOdmJuUmhhVzVsY2loelpXeGxZM1JsWkVWc1pXMWxiblJ6V3pCZEtTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUW9YQ0pvYVc1MGN5NWlhVzVrVkdWNGRGUnZSV3hsYldWdWRGd2lLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdiblZzYkR0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQklhVzUwVm1sbGQyVnlJRDBnS0h0Y2JpQWdZWEJ3VTNSaGRHVXNYRzRnSUdWc1pXMWxiblJ6TEZ4dUlDQnBjMDF2WW1sc1pTeGNibjA2SUVocGJuUldhV1YzWlhKUWNtOXdjeWtnUFQ0Z2UxeHVJQ0JzWlhRZ2FHbHVkQ0E5SUdkbGRFaHBiblJ6S0h0Y2JpQWdJQ0JoY0hCVGRHRjBaU3hjYmlBZ0lDQmxiR1Z0Wlc1MGN5eGNiaUFnSUNCcGMwMXZZbWxzWlN4Y2JpQWdmU2s3WEc0Z0lHbG1JQ2doYUdsdWRDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNCOVhHNWNiaUFnYUdsdWRDQTlJR2RsZEZOb2IzSjBZM1YwUzJWNUtHaHBiblFwTzF4dVhHNGdJSEpsZEhWeWJpQW9YRzRnSUNBZ1BHUnBkaUJqYkdGemMwNWhiV1U5WENKSWFXNTBWbWxsZDJWeVhDSStYRzRnSUNBZ0lDQThjM0JoYmo1N2FHbHVkSDA4TDNOd1lXNCtYRzRnSUNBZ1BDOWthWFkrWEc0Z0lDazdYRzU5TzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9IaW50Vmlld2VyLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9JY29uUGlja2VyLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvSWNvblBpY2tlci50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiSWNvblBpY2tlclxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEljb25QaWNrZXIpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdCAqLyBcXFwicmVhY3RcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1BvcG92ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vUG9wb3ZlciAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Qb3BvdmVyLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfSWNvblBpY2tlcl9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0ljb25QaWNrZXIuc2NzcyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9JY29uUGlja2VyLnNjc3NcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0ljb25QaWNrZXJfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9JY29uUGlja2VyX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9rZXlzICovIFxcXCIuLi8uLi9rZXlzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pMThuICovIFxcXCIuLi8uLi9pMThuLnRzXFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuXFxuZnVuY3Rpb24gUGlja2VyKHsgb3B0aW9ucywgdmFsdWUsIGxhYmVsLCBvbkNoYW5nZSwgb25DbG9zZSwgfSkge1xcbiAgICBjb25zdCByRmlyc3RJdGVtID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkudXNlUmVmKCk7XFxuICAgIGNvbnN0IHJBY3RpdmVJdGVtID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkudXNlUmVmKCk7XFxuICAgIGNvbnN0IHJHYWxsZXJ5ID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkudXNlUmVmKG51bGwpO1xcbiAgICByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS51c2VFZmZlY3QoKCkgPT4ge1xcbiAgICAgICAgLy8gQWZ0ZXIgdGhlIGNvbXBvbmVudCBpcyBmaXJzdCBtb3VudGVkIGZvY3VzIG9uIGZpcnN0IGlucHV0XFxuICAgICAgICBpZiAockFjdGl2ZUl0ZW0uY3VycmVudCkge1xcbiAgICAgICAgICAgIHJBY3RpdmVJdGVtLmN1cnJlbnQuZm9jdXMoKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKHJHYWxsZXJ5LmN1cnJlbnQpIHtcXG4gICAgICAgICAgICByR2FsbGVyeS5jdXJyZW50LmZvY3VzKCk7XFxuICAgICAgICB9XFxuICAgIH0sIFtdKTtcXG4gICAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudCkgPT4ge1xcbiAgICAgICAgY29uc3QgcHJlc3NlZE9wdGlvbiA9IG9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24ua2V5QmluZGluZyA9PT0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkpO1xcbiAgICAgICAgaWYgKCEoZXZlbnQubWV0YUtleSB8fCBldmVudC5hbHRLZXkgfHwgZXZlbnQuY3RybEtleSkgJiYgcHJlc3NlZE9wdGlvbikge1xcbiAgICAgICAgICAgIC8vIEtleWJpbmRpbmcgbmF2aWdhdGlvblxcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gb3B0aW9ucy5pbmRleE9mKHByZXNzZWRPcHRpb24pO1xcbiAgICAgICAgICAgIHJHYWxsZXJ5LmN1cnJlbnQuY2hpbGRyZW5baW5kZXhdLmZvY3VzKCk7XFxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5LRVlTLlRBQikge1xcbiAgICAgICAgICAgIC8vIFRhYiBuYXZpZ2F0aW9uIGN5Y2xlIHRocm91Z2ggb3B0aW9ucy4gSWYgdGhlIHVzZXIgdGFic1xcbiAgICAgICAgICAgIC8vIGF3YXkgZnJvbSB0aGUgcGlja2VyLCBjbG9zZSB0aGUgcGlja2VyLiBXZSBuZWVkIHRvIHVzZVxcbiAgICAgICAgICAgIC8vIGEgdGltZW91dCBoZXJlIHRvIGxldCB0aGUgc3RhY2sgY2xlYXIgYmVmb3JlIGNoZWNraW5nLlxcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmUgPSByQWN0aXZlSXRlbS5jdXJyZW50O1xcbiAgICAgICAgICAgICAgICBjb25zdCBkb2NBY3RpdmUgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlICE9PSBkb2NBY3RpdmUpIHtcXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xvc2UoKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0sIDApO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSBpZiAoKDAsX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5pc0Fycm93S2V5KShldmVudC5rZXkpKSB7XFxuICAgICAgICAgICAgLy8gQXJyb3cgbmF2aWdhdGlvblxcbiAgICAgICAgICAgIGNvbnN0IHsgYWN0aXZlRWxlbWVudCB9ID0gZG9jdW1lbnQ7XFxuICAgICAgICAgICAgY29uc3QgaXNSVEwgPSAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldExhbmd1YWdlKSgpLnJ0bDtcXG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwockdhbGxlcnkuY3VycmVudC5jaGlsZHJlbiwgYWN0aXZlRWxlbWVudCk7XFxuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGggPSBvcHRpb25zLmxlbmd0aDtcXG4gICAgICAgICAgICAgICAgbGV0IG5leHRJbmRleCA9IGluZGV4O1xcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xcbiAgICAgICAgICAgICAgICAgICAgLy8gU2VsZWN0IHRoZSBuZXh0IG9wdGlvblxcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBpc1JUTCA/IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uS0VZUy5BUlJPV19MRUZUIDogX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5LRVlTLkFSUk9XX1JJR0hUOlxcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLktFWVMuQVJST1dfRE9XTjoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRJbmRleCA9IChpbmRleCArIDEpICUgbGVuZ3RoO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgLy8gU2VsZWN0IHRoZSBwcmV2aW91cyBvcHRpb25cXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgaXNSVEwgPyBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLktFWVMuQVJST1dfUklHSFQgOiBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLktFWVMuQVJST1dfTEVGVDpcXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5LRVlTLkFSUk9XX1VQOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEluZGV4ID0gKGxlbmd0aCArIGluZGV4IC0gMSkgJSBsZW5ndGg7XFxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgckdhbGxlcnkuY3VycmVudC5jaGlsZHJlbltuZXh0SW5kZXhdLmZvY3VzKCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIGlmIChldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uS0VZUy5FU0NBUEUgfHwgZXZlbnQua2V5ID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLktFWVMuRU5URVIpIHtcXG4gICAgICAgICAgICAvLyBDbG9zZSBvbiBlc2NhcGUgb3IgZW50ZXJcXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xcbiAgICAgICAgICAgIG9uQ2xvc2UoKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XFxuICAgIH07XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBgcGlja2VyYCwgcm9sZTogXFxcImRpYWxvZ1xcXCIsIFxcXCJhcmlhLW1vZGFsXFxcIjogXFxcInRydWVcXFwiLCBcXFwiYXJpYS1sYWJlbFxcXCI6IGxhYmVsLCBvbktleURvd246IGhhbmRsZUtleURvd24gfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwicGlja2VyLWNvbnRlbnRcXFwiLCByZWY6IHJHYWxsZXJ5IH0sIHsgY2hpbGRyZW46IG9wdGlvbnMubWFwKChvcHRpb24sIGkpID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJidXR0b25cXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwicGlja2VyLW9wdGlvblxcXCIsIG9uQ2xpY2s6IChldmVudCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5mb2N1cygpO1xcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2Uob3B0aW9uLnZhbHVlKTtcXG4gICAgICAgICAgICAgICAgfSwgdGl0bGU6IGAke29wdGlvbi50ZXh0fSBcdTIwMTQgJHtvcHRpb24ua2V5QmluZGluZy50b1VwcGVyQ2FzZSgpfWAsIFxcXCJhcmlhLWxhYmVsXFxcIjogb3B0aW9uLnRleHQgfHwgXFxcIm5vbmVcXFwiLCBcXFwiYXJpYS1rZXlzaG9ydGN1dHNcXFwiOiBvcHRpb24ua2V5QmluZGluZywgcmVmOiAoZWwpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbCAmJiBpID09PSAwKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgckZpcnN0SXRlbS5jdXJyZW50ID0gZWw7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBpZiAoZWwgJiYgb3B0aW9uLnZhbHVlID09PSB2YWx1ZSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJBY3RpdmVJdGVtLmN1cnJlbnQgPSBlbDtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSwgb25Gb2N1czogKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2Uob3B0aW9uLnZhbHVlKTtcXG4gICAgICAgICAgICAgICAgfSB9LCB7IGNoaWxkcmVuOiBbb3B0aW9uLmljb24sICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3BhblxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJwaWNrZXIta2V5YmluZGluZ1xcXCIgfSwgeyBjaGlsZHJlbjogb3B0aW9uLmtleUJpbmRpbmcgfSksIHZvaWQgMCldIH0pLCBvcHRpb24udGV4dCkpKSB9KSwgdm9pZCAwKSB9KSwgdm9pZCAwKSk7XFxufVxcbmZ1bmN0aW9uIEljb25QaWNrZXIoeyB2YWx1ZSwgbGFiZWwsIG9wdGlvbnMsIG9uQ2hhbmdlLCBncm91cCA9IFxcXCJcXFwiLCB9KSB7XFxuICAgIHZhciBfYTtcXG4gICAgY29uc3QgW2lzQWN0aXZlLCBzZXRBY3RpdmVdID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkudXNlU3RhdGUoZmFsc2UpO1xcbiAgICBjb25zdCByUGlja2VyQnV0dG9uID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkudXNlUmVmKG51bGwpO1xcbiAgICBjb25zdCBpc1JUTCA9ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0TGFuZ3VhZ2UpKCkucnRsO1xcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImxhYmVsXFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcInBpY2tlci1jb250YWluZXJcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImJ1dHRvblxcXCIsIE9iamVjdC5hc3NpZ24oeyBuYW1lOiBncm91cCwgY2xhc3NOYW1lOiBpc0FjdGl2ZSA/IFxcXCJhY3RpdmVcXFwiIDogXFxcIlxcXCIsIFxcXCJhcmlhLWxhYmVsXFxcIjogbGFiZWwsIG9uQ2xpY2s6ICgpID0+IHNldEFjdGl2ZSghaXNBY3RpdmUpLCByZWY6IHJQaWNrZXJCdXR0b24gfSwgeyBjaGlsZHJlbjogKF9hID0gb3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaWNvbiB9KSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKChyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5TdXNwZW5zZSksIE9iamVjdC5hc3NpZ24oeyBmYWxsYmFjazogXFxcIlxcXCIgfSwgeyBjaGlsZHJlbjogaXNBY3RpdmUgPyAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9Qb3BvdmVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uUG9wb3ZlciwgT2JqZWN0LmFzc2lnbih7IG9uQ2xvc2VSZXF1ZXN0OiAoZXZlbnQpID0+IGV2ZW50LnRhcmdldCAhPT0gclBpY2tlckJ1dHRvbi5jdXJyZW50ICYmIHNldEFjdGl2ZShmYWxzZSkgfSwgKGlzUlRMID8geyByaWdodDogNS41IH0gOiB7IGxlZnQ6IC01LjUgfSksIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShQaWNrZXIsIHsgb3B0aW9uczogb3B0aW9ucywgdmFsdWU6IHZhbHVlLCBsYWJlbDogbGFiZWwsIG9uQ2hhbmdlOiBvbkNoYW5nZSwgb25DbG9zZTogKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRBY3RpdmUoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfYSA9IHJQaWNrZXJCdXR0b24uY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IH0sIHZvaWQgMCkgfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgeyBjbGFzc05hbWU6IFxcXCJwaWNrZXItdHJpYW5nbGVcXFwiIH0sIHZvaWQgMCldIH0sIHZvaWQgMCkpIDogbnVsbCB9KSwgdm9pZCAwKV0gfSksIHZvaWQgMCkpO1xcbn1cXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUpZMjl1VUdsamEyVnlMblJ6ZUM1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3T3pzN08wRkJRVEJDTzBGQlExVTdRVUZGVkR0QlFVTm5RanRCUVVOTU8wRkJSWFJETEZOQlFWTXNUVUZCVFN4RFFVRkpMRVZCUTJwQ0xFOUJRVThzUlVGRFVDeExRVUZMTEVWQlEwd3NTMEZCU3l4RlFVTk1MRkZCUVZFc1JVRkRVaXhQUVVGUExFZEJUMUk3U1VGRFF5eE5RVUZOTEZWQlFWVXNSMEZCUnl4dFJFRkJXU3hGUVVGeFFpeERRVUZETzBsQlEzSkVMRTFCUVUwc1YwRkJWeXhIUVVGSExHMUVRVUZaTEVWQlFYRkNMRU5CUVVNN1NVRkRkRVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NiVVJCUVZrc1EwRkJhVUlzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZGY0VRc2MwUkJRV1VzUTBGQlF5eEhRVUZITEVWQlFVVTdVVUZEYmtJc05FUkJRVFJFTzFGQlF6VkVMRWxCUVVrc1YwRkJWeXhEUVVGRExFOUJRVThzUlVGQlJUdFpRVU4yUWl4WFFVRlhMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETzFOQlF6ZENPMkZCUVUwc1NVRkJTU3hSUVVGUkxFTkJRVU1zVDBGQlR5eEZRVUZGTzFsQlF6TkNMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdVMEZETVVJN1NVRkRTQ3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdTVUZGVUN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhEUVVGRExFdEJRVEJDTEVWQlFVVXNSVUZCUlR0UlFVTnVSQ3hOUVVGTkxHRkJRV0VzUjBGQlJ5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVTm9ReXhEUVVGRExFMUJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRlZCUVZVc1MwRkJTeXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVTjZSQ3hEUVVGRE8xRkJSVWdzU1VGQlNTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1NVRkJTU3hMUVVGTExFTkJRVU1zVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hoUVVGaExFVkJRVVU3V1VGRGRFVXNkMEpCUVhkQ08xbEJRM2hDTEUxQlFVMHNTMEZCU3l4SFFVRkhMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTTdXVUZETlVNc1VVRkJVeXhEUVVGRExFOUJRVkVzUTBGQlF5eFJRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRlRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRGNrUXNTMEZCU3l4RFFVRkRMR05CUVdNc1JVRkJSU3hEUVVGRE8xTkJRM2hDTzJGQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc1IwRkJSeXhMUVVGTExESkRRVUZSTEVWQlFVVTdXVUZEYWtNc2VVUkJRWGxFTzFsQlEzcEVMSGxFUVVGNVJEdFpRVU42UkN4NVJFRkJlVVE3V1VGRGVrUXNWVUZCVlN4RFFVRkRMRWRCUVVjc1JVRkJSVHRuUWtGRFpDeE5RVUZOTEUxQlFVMHNSMEZCUnl4WFFVRlhMRU5CUVVNc1QwRkJUeXhEUVVGRE8yZENRVU51UXl4TlFVRk5MRk5CUVZNc1IwRkJSeXhSUVVGUkxFTkJRVU1zWVVGQllTeERRVUZETzJkQ1FVTjZReXhKUVVGSkxFMUJRVTBzUzBGQlN5eFRRVUZUTEVWQlFVVTdiMEpCUTNoQ0xFOUJRVThzUlVGQlJTeERRVUZETzJsQ1FVTllPMWxCUTBnc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFOQlExQTdZVUZCVFN4SlFVRkpMR2xFUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZPMWxCUTJoRExHMUNRVUZ0UWp0WlFVTnVRaXhOUVVGTkxFVkJRVVVzWVVGQllTeEZRVUZGTEVkQlFVY3NVVUZCVVN4RFFVRkRPMWxCUTI1RExFMUJRVTBzUzBGQlN5eEhRVUZITEd0RVFVRlhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU03V1VGRGFFTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVTjRReXhSUVVGVExFTkJRVU1zVDBGQlVTeERRVUZETEZGQlFWRXNSVUZETTBJc1lVRkJZU3hEUVVOa0xFTkJRVU03V1VGRFJpeEpRVUZKTEV0QlFVc3NTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSVHRuUWtGRGFFSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF6dG5Ra0ZET1VJc1NVRkJTU3hUUVVGVExFZEJRVWNzUzBGQlN5eERRVUZETzJkQ1FVVjBRaXhSUVVGUkxFdEJRVXNzUTBGQlF5eEhRVUZITEVWQlFVVTdiMEpCUTJwQ0xIbENRVUY1UWp0dlFrRkRla0lzUzBGQlN5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMR3RFUVVGbExFTkJRVU1zUTBGQlF5eERRVUZETEcxRVFVRm5RaXhEUVVGRE8yOUNRVU5vUkN4TFFVRkxMR3RFUVVGbExFTkJRVU1zUTBGQlF6dDNRa0ZEY0VJc1UwRkJVeXhIUVVGSExFTkJRVU1zUzBGQlN5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJRenQzUWtGRGFrTXNUVUZCVFR0eFFrRkRVRHR2UWtGRFJDdzJRa0ZCTmtJN2IwSkJRemRDTEV0QlFVc3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXh0UkVGQlowSXNRMEZCUXl4RFFVRkRMRU5CUVVNc2EwUkJRV1VzUTBGQlF6dHZRa0ZEYUVRc1MwRkJTeXhuUkVGQllTeERRVUZETEVOQlFVTTdkMEpCUTJ4Q0xGTkJRVk1zUjBGQlJ5eERRVUZETEUxQlFVMHNSMEZCUnl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETzNkQ1FVTXhReXhOUVVGTk8zRkNRVU5RTzJsQ1FVTkdPMmRDUVVWQkxGRkJRVkVzUTBGQlF5eFBRVUZSTEVOQlFVTXNVVUZCVXl4RFFVRkRMRk5CUVZNc1EwRkJVeXhEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETzJGQlEzcEVPMWxCUTBRc1MwRkJTeXhEUVVGRExHTkJRV01zUlVGQlJTeERRVUZETzFOQlEzaENPMkZCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zUjBGQlJ5eExRVUZMTERoRFFVRlhMRWxCUVVrc1MwRkJTeXhEUVVGRExFZEJRVWNzUzBGQlN5dzJRMEZCVlN4RlFVRkZPMWxCUTJoRkxESkNRVUV5UWp0WlFVTXpRaXhMUVVGTExFTkJRVU1zWTBGQll5eEZRVUZGTEVOQlFVTTdXVUZEZGtJc1QwRkJUeXhGUVVGRkxFTkJRVU03VTBGRFdEdFJRVU5FTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUVVNc2QwSkJRWGRDTEVWQlFVVXNRMEZCUXp0UlFVTTNReXhMUVVGTExFTkJRVU1zWlVGQlpTeEZRVUZGTEVOQlFVTTdTVUZETVVJc1EwRkJReXhEUVVGRE8wbEJSVVlzVDBGQlR5eERRVU5NTERoRlFVTkZMRk5CUVZNc1JVRkJSU3hSUVVGUkxFVkJRMjVDTEVsQlFVa3NSVUZCUXl4UlFVRlJMR2RDUVVOR0xFMUJRVTBzWjBKQlEwd3NTMEZCU3l4RlFVTnFRaXhUUVVGVExFVkJRVVVzWVVGQllTeG5Ra0ZGZUVJc09FVkJRVXNzVTBGQlV5eEZRVUZETEdkQ1FVRm5RaXhGUVVGRExFZEJRVWNzUlVGQlJTeFJRVUZSTEdkQ1FVTXhReXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGRE1VSXNhMFpCUTBVc1UwRkJVeXhGUVVGRExHVkJRV1VzUlVGRGVrSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVU3YjBKQlEyaENMRXRCUVVzc1EwRkJReXhoUVVGdFF5eERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRPMjlDUVVOdVJDeFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yZENRVU42UWl4RFFVRkRMRVZCUTBRc1MwRkJTeXhGUVVGRkxFZEJRVWNzVFVGQlRTeERRVUZETEVsQlFVa3NUVUZCVFN4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExGZEJRVmNzUlVGQlJTeEZRVUZGTEdkQ1FVTm9SQ3hOUVVGTkxFTkJRVU1zU1VGQlNTeEpRVUZKTEUxQlFVMHNkVUpCUTJRc1RVRkJUU3hEUVVGRExGVkJRVlVzUlVGRmNFTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVU3YjBKQlExWXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJUdDNRa0ZEYWtJc1ZVRkJWU3hEUVVGRExFOUJRVThzUjBGQlJ5eEZRVUZGTEVOQlFVTTdjVUpCUTNwQ08yOUNRVU5FTEVsQlFVa3NSVUZCUlN4SlFVRkpMRTFCUVUwc1EwRkJReXhMUVVGTExFdEJRVXNzUzBGQlN5eEZRVUZGTzNkQ1FVTm9ReXhYUVVGWExFTkJRVU1zVDBGQlR5eEhRVUZITEVWQlFVVXNRMEZCUXp0eFFrRkRNVUk3WjBKQlEwZ3NRMEZCUXl4RlFVTkVMRTlCUVU4c1JVRkJSU3hIUVVGSExFVkJRVVU3YjBKQlExb3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dG5Ra0ZEZWtJc1EwRkJReXhwUWtGRlFTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVTmFMQ3RGUVVGTkxGTkJRVk1zUlVGQlF5eHRRa0ZCYlVJc1owSkJRVVVzVFVGQlRTeERRVUZETEZWQlFWVXNXVUZCVVN4TlFXUjZSQ3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRV1ZVTEVOQlExWXNRMEZCUXl4WlFVTkZMRmxCUTBZc1EwRkRVQ3hEUVVGRE8wRkJRMG9zUTBGQlF6dEJRVVZOTEZOQlFWTXNWVUZCVlN4RFFVRkpMRVZCUXpWQ0xFdEJRVXNzUlVGRFRDeExRVUZMTEVWQlEwd3NUMEZCVHl4RlFVTlFMRkZCUVZFc1JVRkRVaXhMUVVGTExFZEJRVWNzUlVGQlJTeEhRVTlZT3p0SlFVTkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFVkJRVVVzVTBGQlV5eERRVUZETEVkQlFVY3NjVVJCUVdNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU53UkN4TlFVRk5MR0ZCUVdFc1IwRkJSeXh0UkVGQldTeERRVUZOTEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUXpsRExFMUJRVTBzUzBGQlN5eEhRVUZITEd0RVFVRlhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU03U1VGRmFFTXNUMEZCVHl4RFFVTk1MR2xHUVVGUExGTkJRVk1zUlVGQlJTeHJRa0ZCYTBJc2FVSkJRMnhETEdsR1FVTkZMRWxCUVVrc1JVRkJSU3hMUVVGTExFVkJRMWdzVTBGQlV5eEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEdkQ1FVTjJRaXhMUVVGTExFVkJRMnBDTEU5QlFVOHNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZEYmtNc1IwRkJSeXhGUVVGRkxHRkJRV0VzWjBKQlJXcENMR0ZCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFdEJRVXNzUzBGQlN5eERRVUZETERCRFFVRkZMRWxCUVVrc1dVRkRhRVFzUlVGRFZDeDFSRUZCUXl4MVJFRkJZeXhyUWtGQlF5eFJRVUZSTEVWQlFVTXNSVUZCUlN4blFrRkRlRUlzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVTldMRGhJUVVORkxIVkVRVUZETERaRFFVRlBMR3RDUVVOT0xHTkJRV01zUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUTNoQ0xFdEJRVXNzUTBGQlF5eE5RVUZOTEV0QlFVc3NZVUZCWVN4RFFVRkRMRTlCUVU4c1NVRkJTU3hUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEVsQlJYaEVMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVWQlFVVXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhqUVVVM1F5eDFSRUZCUXl4TlFVRk5MRWxCUTB3c1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGRGFFSXNTMEZCU3l4RlFVRkZMRXRCUVVzc1JVRkRXaXhMUVVGTExFVkJRVVVzUzBGQlN5eEZRVU5hTEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUTJ4Q0xFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVTdPMjlEUVVOYUxGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0dlEwRkRha0lzYlVKQlFXRXNRMEZCUXl4UFFVRlBMREJEUVVGRkxFdEJRVXNzUlVGQlJTeERRVUZETzJkRFFVTnFReXhEUVVGRExGZEJRMFFzV1VGRFRTeEZRVU5XTEdkRlFVRkxMRk5CUVZNc1JVRkJReXhwUWtGQmFVSXNWMEZCUnl4WlFVTnNReXhEUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NXVUZEVHl4aFFVTllMRU5CUTFRc1EwRkJRenRCUVVOS0xFTkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUpZMjl1VUdsamEyVnlMblJ6ZUQ4ek56RmtJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0JTWldGamRDQm1jbTl0SUZ3aWNtVmhZM1JjSWp0Y2JtbHRjRzl5ZENCN0lGQnZjRzkyWlhJZ2ZTQm1jbTl0SUZ3aUxpOVFiM0J2ZG1WeVhDSTdYRzVjYm1sdGNHOXlkQ0JjSWk0dlNXTnZibEJwWTJ0bGNpNXpZM056WENJN1hHNXBiWEJ2Y25RZ2V5QnBjMEZ5Y205M1MyVjVMQ0JMUlZsVElIMGdabkp2YlNCY0lpNHVMMnRsZVhOY0lqdGNibWx0Y0c5eWRDQjdJR2RsZEV4aGJtZDFZV2RsSUgwZ1puSnZiU0JjSWk0dUwya3hPRzVjSWp0Y2JseHVablZ1WTNScGIyNGdVR2xqYTJWeVBGUStLSHRjYmlBZ2IzQjBhVzl1Y3l4Y2JpQWdkbUZzZFdVc1hHNGdJR3hoWW1Wc0xGeHVJQ0J2YmtOb1lXNW5aU3hjYmlBZ2IyNURiRzl6WlN4Y2JuMDZJSHRjYmlBZ2JHRmlaV3c2SUhOMGNtbHVaenRjYmlBZ2RtRnNkV1U2SUZRN1hHNGdJRzl3ZEdsdmJuTTZJSHNnZG1Gc2RXVTZJRlE3SUhSbGVIUTZJSE4wY21sdVp6c2dhV052YmpvZ1NsTllMa1ZzWlcxbGJuUTdJR3RsZVVKcGJtUnBibWM2SUhOMGNtbHVaeUI5VzEwN1hHNGdJRzl1UTJoaGJtZGxPaUFvZG1Gc2RXVTZJRlFwSUQwK0lIWnZhV1E3WEc0Z0lHOXVRMnh2YzJVNklDZ3BJRDArSUhadmFXUTdYRzU5S1NCN1hHNGdJR052Ym5OMElISkdhWEp6ZEVsMFpXMGdQU0JTWldGamRDNTFjMlZTWldZOFNGUk5URUoxZEhSdmJrVnNaVzFsYm5RK0tDazdYRzRnSUdOdmJuTjBJSEpCWTNScGRtVkpkR1Z0SUQwZ1VtVmhZM1F1ZFhObFVtVm1QRWhVVFV4Q2RYUjBiMjVGYkdWdFpXNTBQaWdwTzF4dUlDQmpiMjV6ZENCeVIyRnNiR1Z5ZVNBOUlGSmxZV04wTG5WelpWSmxaanhJVkUxTVJHbDJSV3hsYldWdWRENG9iblZzYkNrN1hHNWNiaUFnVW1WaFkzUXVkWE5sUldabVpXTjBLQ2dwSUQwK0lIdGNiaUFnSUNBdkx5QkJablJsY2lCMGFHVWdZMjl0Y0c5dVpXNTBJR2x6SUdacGNuTjBJRzF2ZFc1MFpXUWdabTlqZFhNZ2IyNGdabWx5YzNRZ2FXNXdkWFJjYmlBZ0lDQnBaaUFvY2tGamRHbDJaVWwwWlcwdVkzVnljbVZ1ZENrZ2UxeHVJQ0FnSUNBZ2NrRmpkR2wyWlVsMFpXMHVZM1Z5Y21WdWRDNW1iMk4xY3lncE8xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb2NrZGhiR3hsY25rdVkzVnljbVZ1ZENrZ2UxeHVJQ0FnSUNBZ2NrZGhiR3hsY25rdVkzVnljbVZ1ZEM1bWIyTjFjeWdwTzF4dUlDQWdJSDFjYmlBZ2ZTd2dXMTBwTzF4dVhHNGdJR052Ym5OMElHaGhibVJzWlV0bGVVUnZkMjRnUFNBb1pYWmxiblE2SUZKbFlXTjBMa3RsZVdKdllYSmtSWFpsYm5RcElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCd2NtVnpjMlZrVDNCMGFXOXVJRDBnYjNCMGFXOXVjeTVtYVc1a0tGeHVJQ0FnSUNBZ0tHOXdkR2x2YmlrZ1BUNGdiM0IwYVc5dUxtdGxlVUpwYm1ScGJtY2dQVDA5SUdWMlpXNTBMbXRsZVM1MGIweHZkMlZ5UTJGelpTZ3BMRnh1SUNBZ0lDa2hPMXh1WEc0Z0lDQWdhV1lnS0NFb1pYWmxiblF1YldWMFlVdGxlU0I4ZkNCbGRtVnVkQzVoYkhSTFpYa2dmSHdnWlhabGJuUXVZM1J5YkV0bGVTa2dKaVlnY0hKbGMzTmxaRTl3ZEdsdmJpa2dlMXh1SUNBZ0lDQWdMeThnUzJWNVltbHVaR2x1WnlCdVlYWnBaMkYwYVc5dVhHNGdJQ0FnSUNCamIyNXpkQ0JwYm1SbGVDQTlJRzl3ZEdsdmJuTXVhVzVrWlhoUFppaHdjbVZ6YzJWa1QzQjBhVzl1S1R0Y2JpQWdJQ0FnSUNoeVIyRnNiR1Z5ZVNFdVkzVnljbVZ1ZENFdVkyaHBiR1J5Wlc0aFcybHVaR1Y0WFNCaGN5QmhibmtwTG1adlkzVnpLQ2s3WEc0Z0lDQWdJQ0JsZG1WdWRDNXdjbVYyWlc1MFJHVm1ZWFZzZENncE8xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb1pYWmxiblF1YTJWNUlEMDlQU0JMUlZsVExsUkJRaWtnZTF4dUlDQWdJQ0FnTHk4Z1ZHRmlJRzVoZG1sbllYUnBiMjRnWTNsamJHVWdkR2h5YjNWbmFDQnZjSFJwYjI1ekxpQkpaaUIwYUdVZ2RYTmxjaUIwWVdKelhHNGdJQ0FnSUNBdkx5QmhkMkY1SUdaeWIyMGdkR2hsSUhCcFkydGxjaXdnWTJ4dmMyVWdkR2hsSUhCcFkydGxjaTRnVjJVZ2JtVmxaQ0IwYnlCMWMyVmNiaUFnSUNBZ0lDOHZJR0VnZEdsdFpXOTFkQ0JvWlhKbElIUnZJR3hsZENCMGFHVWdjM1JoWTJzZ1kyeGxZWElnWW1WbWIzSmxJR05vWldOcmFXNW5MbHh1SUNBZ0lDQWdjMlYwVkdsdFpXOTFkQ2dvS1NBOVBpQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHRmpkR2wyWlNBOUlISkJZM1JwZG1WSmRHVnRMbU4xY25KbGJuUTdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUnZZMEZqZEdsMlpTQTlJR1J2WTNWdFpXNTBMbUZqZEdsMlpVVnNaVzFsYm5RN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hoWTNScGRtVWdJVDA5SUdSdlkwRmpkR2wyWlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJRzl1UTJ4dmMyVW9LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlN3Z01DazdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaHBjMEZ5Y205M1MyVjVLR1YyWlc1MExtdGxlU2twSUh0Y2JpQWdJQ0FnSUM4dklFRnljbTkzSUc1aGRtbG5ZWFJwYjI1Y2JpQWdJQ0FnSUdOdmJuTjBJSHNnWVdOMGFYWmxSV3hsYldWdWRDQjlJRDBnWkc5amRXMWxiblE3WEc0Z0lDQWdJQ0JqYjI1emRDQnBjMUpVVENBOUlHZGxkRXhoYm1kMVlXZGxLQ2t1Y25Sc08xeHVJQ0FnSUNBZ1kyOXVjM1FnYVc1a1pYZ2dQU0JCY25KaGVTNXdjbTkwYjNSNWNHVXVhVzVrWlhoUFppNWpZV3hzS0Z4dUlDQWdJQ0FnSUNCeVIyRnNiR1Z5ZVNFdVkzVnljbVZ1ZENFdVkyaHBiR1J5Wlc0c1hHNGdJQ0FnSUNBZ0lHRmpkR2wyWlVWc1pXMWxiblFzWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnYVdZZ0tHbHVaR1Y0SUNFOVBTQXRNU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JzWlc1bmRHZ2dQU0J2Y0hScGIyNXpMbXhsYm1kMGFEdGNiaUFnSUNBZ0lDQWdiR1YwSUc1bGVIUkpibVJsZUNBOUlHbHVaR1Y0TzF4dVhHNGdJQ0FnSUNBZ0lITjNhWFJqYUNBb1pYWmxiblF1YTJWNUtTQjdYRzRnSUNBZ0lDQWdJQ0FnTHk4Z1UyVnNaV04wSUhSb1pTQnVaWGgwSUc5d2RHbHZibHh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdhWE5TVkV3Z1B5QkxSVmxUTGtGU1VrOVhYMHhGUmxRZ09pQkxSVmxUTGtGU1VrOVhYMUpKUjBoVU9seHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1MwVlpVeTVCVWxKUFYxOUVUMWRPT2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhoMFNXNWtaWGdnUFNBb2FXNWtaWGdnS3lBeEtTQWxJR3hsYm1kMGFEdGNiaUFnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQXZMeUJUWld4bFkzUWdkR2hsSUhCeVpYWnBiM1Z6SUc5d2RHbHZibHh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdhWE5TVkV3Z1B5QkxSVmxUTGtGU1VrOVhYMUpKUjBoVUlEb2dTMFZaVXk1QlVsSlBWMTlNUlVaVU9seHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1MwVlpVeTVCVWxKUFYxOVZVRG9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdibVY0ZEVsdVpHVjRJRDBnS0d4bGJtZDBhQ0FySUdsdVpHVjRJQzBnTVNrZ0pTQnNaVzVuZEdnN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQW9ja2RoYkd4bGNua3VZM1Z5Y21WdWRDRXVZMmhwYkdSeVpXNGhXMjVsZUhSSmJtUmxlRjBnWVhNZ1lXNTVLUzVtYjJOMWN5Z3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdaWFpsYm5RdWNISmxkbVZ1ZEVSbFptRjFiSFFvS1R0Y2JpQWdJQ0I5SUdWc2MyVWdhV1lnS0dWMlpXNTBMbXRsZVNBOVBUMGdTMFZaVXk1RlUwTkJVRVVnZkh3Z1pYWmxiblF1YTJWNUlEMDlQU0JMUlZsVExrVk9WRVZTS1NCN1hHNGdJQ0FnSUNBdkx5QkRiRzl6WlNCdmJpQmxjMk5oY0dVZ2IzSWdaVzUwWlhKY2JpQWdJQ0FnSUdWMlpXNTBMbkJ5WlhabGJuUkVaV1poZFd4MEtDazdYRzRnSUNBZ0lDQnZia05zYjNObEtDazdYRzRnSUNBZ2ZWeHVJQ0FnSUdWMlpXNTBMbTVoZEdsMlpVVjJaVzUwTG5OMGIzQkpiVzFsWkdsaGRHVlFjbTl3WVdkaGRHbHZiaWdwTzF4dUlDQWdJR1YyWlc1MExuTjBiM0JRY205d1lXZGhkR2x2YmlncE8xeHVJQ0I5TzF4dVhHNGdJSEpsZEhWeWJpQW9YRzRnSUNBZ1BHUnBkbHh1SUNBZ0lDQWdZMnhoYzNOT1lXMWxQWHRnY0dsamEyVnlZSDFjYmlBZ0lDQWdJSEp2YkdVOVhDSmthV0ZzYjJkY0lseHVJQ0FnSUNBZ1lYSnBZUzF0YjJSaGJEMWNJblJ5ZFdWY0lseHVJQ0FnSUNBZ1lYSnBZUzFzWVdKbGJEMTdiR0ZpWld4OVhHNGdJQ0FnSUNCdmJrdGxlVVJ2ZDI0OWUyaGhibVJzWlV0bGVVUnZkMjU5WEc0Z0lDQWdQbHh1SUNBZ0lDQWdQR1JwZGlCamJHRnpjMDVoYldVOVhDSndhV05yWlhJdFkyOXVkR1Z1ZEZ3aUlISmxaajE3Y2tkaGJHeGxjbmw5UGx4dUlDQWdJQ0FnSUNCN2IzQjBhVzl1Y3k1dFlYQW9LRzl3ZEdsdmJpd2dhU2tnUFQ0Z0tGeHVJQ0FnSUNBZ0lDQWdJRHhpZFhSMGIyNWNiaUFnSUNBZ0lDQWdJQ0FnSUdOc1lYTnpUbUZ0WlQxY0luQnBZMnRsY2kxdmNIUnBiMjVjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVEYkdsamF6MTdLR1YyWlc1MEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ2hsZG1WdWRDNWpkWEp5Wlc1MFZHRnlaMlYwSUdGeklFaFVUVXhDZFhSMGIyNUZiR1Z0Wlc1MEtTNW1iMk4xY3lncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrTm9ZVzVuWlNodmNIUnBiMjR1ZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZYMWNiaUFnSUNBZ0lDQWdJQ0FnSUhScGRHeGxQWHRnSkh0dmNIUnBiMjR1ZEdWNGRIMGc0b0NVSUNSN2IzQjBhVzl1TG10bGVVSnBibVJwYm1jdWRHOVZjSEJsY2tOaGMyVW9LWDFnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdZWEpwWVMxc1lXSmxiRDE3YjNCMGFXOXVMblJsZUhRZ2ZId2dYQ0p1YjI1bFhDSjlYRzRnSUNBZ0lDQWdJQ0FnSUNCaGNtbGhMV3RsZVhOb2IzSjBZM1YwY3oxN2IzQjBhVzl1TG10bGVVSnBibVJwYm1kOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JyWlhrOWUyOXdkR2x2Ymk1MFpYaDBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVm1QWHNvWld3cElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dWc0lDWW1JR2tnUFQwOUlEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5Um1seWMzUkpkR1Z0TG1OMWNuSmxiblFnUFNCbGJEdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9aV3dnSmlZZ2IzQjBhVzl1TG5aaGJIVmxJRDA5UFNCMllXeDFaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKQlkzUnBkbVZKZEdWdExtTjFjbkpsYm5RZ1BTQmxiRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZYMWNiaUFnSUNBZ0lDQWdJQ0FnSUc5dVJtOWpkWE05ZXlncElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVEYUdGdVoyVW9iM0IwYVc5dUxuWmhiSFZsS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDE5WEc0Z0lDQWdJQ0FnSUNBZ1BseHVJQ0FnSUNBZ0lDQWdJQ0FnZTI5d2RHbHZiaTVwWTI5dWZWeHVJQ0FnSUNBZ0lDQWdJQ0FnUEhOd1lXNGdZMnhoYzNOT1lXMWxQVndpY0dsamEyVnlMV3RsZVdKcGJtUnBibWRjSWo1N2IzQjBhVzl1TG10bGVVSnBibVJwYm1kOVBDOXpjR0Z1UGx4dUlDQWdJQ0FnSUNBZ0lEd3ZZblYwZEc5dVBseHVJQ0FnSUNBZ0lDQXBLWDFjYmlBZ0lDQWdJRHd2WkdsMlBseHVJQ0FnSUR3dlpHbDJQbHh1SUNBcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnU1dOdmJsQnBZMnRsY2p4VVBpaDdYRzRnSUhaaGJIVmxMRnh1SUNCc1lXSmxiQ3hjYmlBZ2IzQjBhVzl1Y3l4Y2JpQWdiMjVEYUdGdVoyVXNYRzRnSUdkeWIzVndJRDBnWENKY0lpeGNibjA2SUh0Y2JpQWdiR0ZpWld3NklITjBjbWx1Wnp0Y2JpQWdkbUZzZFdVNklGUTdYRzRnSUc5d2RHbHZibk02SUhzZ2RtRnNkV1U2SUZRN0lIUmxlSFE2SUhOMGNtbHVaenNnYVdOdmJqb2dTbE5ZTGtWc1pXMWxiblE3SUd0bGVVSnBibVJwYm1jNklITjBjbWx1WnlCOVcxMDdYRzRnSUc5dVEyaGhibWRsT2lBb2RtRnNkV1U2SUZRcElEMCtJSFp2YVdRN1hHNGdJR2R5YjNWd1B6b2djM1J5YVc1bk8xeHVmU2tnZTF4dUlDQmpiMjV6ZENCYmFYTkJZM1JwZG1Vc0lITmxkRUZqZEdsMlpWMGdQU0JTWldGamRDNTFjMlZUZEdGMFpTaG1ZV3h6WlNrN1hHNGdJR052Ym5OMElISlFhV05yWlhKQ2RYUjBiMjRnUFNCU1pXRmpkQzUxYzJWU1pXWThZVzU1UGlodWRXeHNLVHRjYmlBZ1kyOXVjM1FnYVhOU1ZFd2dQU0JuWlhSTVlXNW5kV0ZuWlNncExuSjBiRHRjYmx4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUR4c1lXSmxiQ0JqYkdGemMwNWhiV1U5ZTF3aWNHbGphMlZ5TFdOdmJuUmhhVzVsY2x3aWZUNWNiaUFnSUNBZ0lEeGlkWFIwYjI1Y2JpQWdJQ0FnSUNBZ2JtRnRaVDE3WjNKdmRYQjlYRzRnSUNBZ0lDQWdJR05zWVhOelRtRnRaVDE3YVhOQlkzUnBkbVVnUHlCY0ltRmpkR2wyWlZ3aUlEb2dYQ0pjSW4xY2JpQWdJQ0FnSUNBZ1lYSnBZUzFzWVdKbGJEMTdiR0ZpWld4OVhHNGdJQ0FnSUNBZ0lHOXVRMnhwWTJzOWV5Z3BJRDArSUhObGRFRmpkR2wyWlNnaGFYTkJZM1JwZG1VcGZWeHVJQ0FnSUNBZ0lDQnlaV1k5ZTNKUWFXTnJaWEpDZFhSMGIyNTlYRzRnSUNBZ0lDQStYRzRnSUNBZ0lDQWdJSHR2Y0hScGIyNXpMbVpwYm1Rb0tHOXdkR2x2YmlrZ1BUNGdiM0IwYVc5dUxuWmhiSFZsSUQwOVBTQjJZV3gxWlNrL0xtbGpiMjU5WEc0Z0lDQWdJQ0E4TDJKMWRIUnZiajVjYmlBZ0lDQWdJRHhTWldGamRDNVRkWE53Wlc1elpTQm1ZV3hzWW1GamF6MWNJbHdpUGx4dUlDQWdJQ0FnSUNCN2FYTkJZM1JwZG1VZ1B5QW9YRzRnSUNBZ0lDQWdJQ0FnUEQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhRYjNCdmRtVnlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVRMnh2YzJWU1pYRjFaWE4wUFhzb1pYWmxiblFwSUQwK1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pYWmxiblF1ZEdGeVoyVjBJQ0U5UFNCeVVHbGphMlZ5UW5WMGRHOXVMbU4xY25KbGJuUWdKaVlnYzJWMFFXTjBhWFpsS0daaGJITmxLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIc3VMaTRvYVhOU1ZFd2dQeUI3SUhKcFoyaDBPaUExTGpVZ2ZTQTZJSHNnYkdWbWREb2dMVFV1TlNCOUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnUEZCcFkydGxjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl3ZEdsdmJuTTllMjl3ZEdsdmJuTjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkbUZzZFdVOWUzWmhiSFZsZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4aFltVnNQWHRzWVdKbGJIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia05vWVc1blpUMTdiMjVEYUdGdVoyVjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVEYkc5elpUMTdLQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMlYwUVdOMGFYWmxLR1poYkhObEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpRYVdOclpYSkNkWFIwYjI0dVkzVnljbVZ1ZEQ4dVptOWpkWE1vS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOWZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEM5UWIzQnZkbVZ5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQR1JwZGlCamJHRnpjMDVoYldVOVhDSndhV05yWlhJdGRISnBZVzVuYkdWY0lpQXZQbHh1SUNBZ0lDQWdJQ0FnSUR3dlBseHVJQ0FnSUNBZ0lDQXBJRG9nYm5Wc2JIMWNiaUFnSUNBZ0lEd3ZVbVZoWTNRdVUzVnpjR1Z1YzJVK1hHNGdJQ0FnUEM5c1lXSmxiRDVjYmlBZ0tUdGNibjFjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9JY29uUGlja2VyLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9JbWFnZUV4cG9ydERpYWxvZy50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9JbWFnZUV4cG9ydERpYWxvZy50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkVycm9yQ2FudmFzUHJldmlld1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEVycm9yQ2FudmFzUHJldmlldyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiSW1hZ2VFeHBvcnREaWFsb2dcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBJbWFnZUV4cG9ydERpYWxvZylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0ICovIFxcXCJyZWFjdFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0LWRvbSAqLyBcXFwicmVhY3QtZG9tXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2RvbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKHJlYWN0X2RvbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NsaXBib2FyZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY2xpcGJvYXJkICovIFxcXCIuLi8uLi9jbGlwYm9hcmQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2RhdGFfYmxvYl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZGF0YS9ibG9iICovIFxcXCIuLi8uLi9kYXRhL2Jsb2IudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vycm9yc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZXJyb3JzICovIFxcXCIuLi8uLi9lcnJvcnMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0FwcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9BcHAgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvQXBwLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lICovIFxcXCIuLi8uLi9zY2VuZS9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfZXhwb3J0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZS9leHBvcnQgKi8gXFxcIi4uLy4uL3NjZW5lL2V4cG9ydC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfRGlhbG9nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9EaWFsb2cgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvRGlhbG9nLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2ljb25zICovIFxcXCIuLi8uLi9jb21wb25lbnRzL2ljb25zLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfU3RhY2tfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1N0YWNrICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1N0YWNrLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vVG9vbEJ1dHRvbiAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfRXhwb3J0RGlhbG9nX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0V4cG9ydERpYWxvZy5zY3NzICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0V4cG9ydERpYWxvZy5zY3NzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9FeHBvcnREaWFsb2dfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfRXhwb3J0RGlhbG9nX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgb3Blbi1jb2xvciAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5qc29uXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9DaGVja2JveEl0ZW1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0NoZWNrYm94SXRlbSAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9DaGVja2JveEl0ZW0udHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE3X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZGF0YV9maWxlc3lzdGVtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZGF0YS9maWxlc3lzdGVtICovIFxcXCIuLi8uLi9kYXRhL2ZpbGVzeXN0ZW0udHNcXFwiKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBzdXBwb3J0c0NvbnRleHRGaWx0ZXJzID0gXFxcImZpbHRlclxcXCIgaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcXFwiY2FudmFzXFxcIikuZ2V0Q29udGV4dChcXFwiMmRcXFwiKTtcXG5jb25zdCBFcnJvckNhbnZhc1ByZXZpZXcgPSAoKSA9PiB7XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiaDNcXFwiLCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnQpKFxcXCJjYW52YXNFcnJvci5jYW5ub3RTaG93UHJldmlld1xcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicFxcXCIsIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3BhblxcXCIsIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udCkoXFxcImNhbnZhc0Vycm9yLmNhbnZhc1Rvb0JpZ1xcXCIpIH0sIHZvaWQgMCkgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZW1cXFwiLCB7IGNoaWxkcmVuOiBbXFxcIihcXFwiLCAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnQpKFxcXCJjYW52YXNFcnJvci5jYW52YXNUb29CaWdUaXBcXFwiKSwgXFxcIilcXFwiXSB9LCB2b2lkIDApXSB9LCB2b2lkIDApKTtcXG59O1xcbmNvbnN0IHJlbmRlclByZXZpZXcgPSAoY29udGVudCwgcHJldmlld05vZGUpID0+IHtcXG4gICAgKDAscmVhY3RfZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udW5tb3VudENvbXBvbmVudEF0Tm9kZSkocHJldmlld05vZGUpO1xcbiAgICBwcmV2aWV3Tm9kZS5pbm5lckhUTUwgPSBcXFwiXFxcIjtcXG4gICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudCkge1xcbiAgICAgICAgcHJldmlld05vZGUuYXBwZW5kQ2hpbGQoY29udGVudCk7XFxuICAgIH1cXG4gICAgZWxzZSB7XFxuICAgICAgICAoMCxyZWFjdF9kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5yZW5kZXIpKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShFcnJvckNhbnZhc1ByZXZpZXcsIHt9LCB2b2lkIDApLCBwcmV2aWV3Tm9kZSk7XFxuICAgIH1cXG59O1xcbmNvbnN0IEV4cG9ydEJ1dHRvbiA9ICh7IGNoaWxkcmVuLCB0aXRsZSwgb25DbGljaywgY29sb3IsIHNoYWRlID0gNiB9KSA9PiB7XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJidXR0b25cXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiRXhwb3J0RGlhbG9nLWltYWdlRXhwb3J0QnV0dG9uXFxcIiwgc3R5bGU6IHtcXG4gICAgICAgICAgICBbXFxcIi0tYnV0dG9uLWNvbG9yXFxcIl06IG9wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE1X19bY29sb3JdW3NoYWRlXSxcXG4gICAgICAgICAgICBbXFxcIi0tYnV0dG9uLWNvbG9yLWRhcmtlclxcXCJdOiBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fW2NvbG9yXVtzaGFkZSArIDFdLFxcbiAgICAgICAgICAgIFtcXFwiLS1idXR0b24tY29sb3ItZGFya2VzdFxcXCJdOiBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fW2NvbG9yXVtzaGFkZSArIDJdLFxcbiAgICAgICAgfSwgdGl0bGU6IHRpdGxlLCBcXFwiYXJpYS1sYWJlbFxcXCI6IHRpdGxlLCBvbkNsaWNrOiBvbkNsaWNrIH0sIHsgY2hpbGRyZW46IGNoaWxkcmVuIH0pLCB2b2lkIDApKTtcXG59O1xcbmNvbnN0IEltYWdlRXhwb3J0TW9kYWwgPSAoeyBlbGVtZW50cywgYXBwU3RhdGUsIGZpbGVzLCBleHBvcnRQYWRkaW5nID0gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5ERUZBVUxUX0VYUE9SVF9QQURESU5HLCBhY3Rpb25NYW5hZ2VyLCBvbkV4cG9ydFRvUG5nLCBvbkV4cG9ydFRvU3ZnLCBvbkV4cG9ydFRvQ2xpcGJvYXJkLCB9KSA9PiB7XFxuICAgIGNvbnN0IHNvbWVFbGVtZW50SXNTZWxlY3RlZCA9ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmlzU29tZUVsZW1lbnRTZWxlY3RlZCkoZWxlbWVudHMsIGFwcFN0YXRlKTtcXG4gICAgY29uc3QgW2V4cG9ydFNlbGVjdGVkLCBzZXRFeHBvcnRTZWxlY3RlZF0gPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZVN0YXRlKShzb21lRWxlbWVudElzU2VsZWN0ZWQpO1xcbiAgICBjb25zdCBwcmV2aWV3UmVmID0gKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51c2VSZWYpKG51bGwpO1xcbiAgICBjb25zdCB7IGV4cG9ydEJhY2tncm91bmQsIHZpZXdCYWNrZ3JvdW5kQ29sb3IgfSA9IGFwcFN0YXRlO1xcbiAgICBjb25zdCBleHBvcnRlZEVsZW1lbnRzID0gZXhwb3J0U2VsZWN0ZWRcXG4gICAgICAgID8gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uZ2V0U2VsZWN0ZWRFbGVtZW50cykoZWxlbWVudHMsIGFwcFN0YXRlLCB0cnVlKVxcbiAgICAgICAgOiBlbGVtZW50cztcXG4gICAgKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51c2VFZmZlY3QpKCgpID0+IHtcXG4gICAgICAgIHNldEV4cG9ydFNlbGVjdGVkKHNvbWVFbGVtZW50SXNTZWxlY3RlZCk7XFxuICAgIH0sIFtzb21lRWxlbWVudElzU2VsZWN0ZWRdKTtcXG4gICAgKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51c2VFZmZlY3QpKCgpID0+IHtcXG4gICAgICAgIGNvbnN0IHByZXZpZXdOb2RlID0gcHJldmlld1JlZi5jdXJyZW50O1xcbiAgICAgICAgaWYgKCFwcmV2aWV3Tm9kZSkge1xcbiAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgIH1cXG4gICAgICAgICgwLF9zY2VuZV9leHBvcnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5leHBvcnRUb0NhbnZhcykoZXhwb3J0ZWRFbGVtZW50cywgYXBwU3RhdGUsIGZpbGVzLCB7XFxuICAgICAgICAgICAgZXhwb3J0QmFja2dyb3VuZCxcXG4gICAgICAgICAgICB2aWV3QmFja2dyb3VuZENvbG9yLFxcbiAgICAgICAgICAgIGV4cG9ydFBhZGRpbmcsXFxuICAgICAgICB9KVxcbiAgICAgICAgICAgIC50aGVuKChjYW52YXMpID0+IHtcXG4gICAgICAgICAgICAvLyBpZiBjb252ZXJ0aW5nIHRvIGJsb2IgZmFpbHMsIHRoZXJlJ3Mgc29tZSBwcm9ibGVtIHRoYXQgd2lsbFxcbiAgICAgICAgICAgIC8vIGxpa2VseSBwcmV2ZW50IHByZXZpZXcgYW5kIGV4cG9ydCAoZS5nLiBjYW52YXMgdG9vIGJpZylcXG4gICAgICAgICAgICByZXR1cm4gKDAsX2RhdGFfYmxvYl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmNhbnZhc1RvQmxvYikoY2FudmFzKS50aGVuKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgcmVuZGVyUHJldmlldyhjYW52YXMsIHByZXZpZXdOb2RlKTtcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH0pXFxuICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xcbiAgICAgICAgICAgIHJlbmRlclByZXZpZXcobmV3IF9lcnJvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5DYW52YXNFcnJvcigpLCBwcmV2aWV3Tm9kZSk7XFxuICAgICAgICB9KTtcXG4gICAgfSwgW1xcbiAgICAgICAgYXBwU3RhdGUsXFxuICAgICAgICBmaWxlcyxcXG4gICAgICAgIGV4cG9ydGVkRWxlbWVudHMsXFxuICAgICAgICBleHBvcnRCYWNrZ3JvdW5kLFxcbiAgICAgICAgZXhwb3J0UGFkZGluZyxcXG4gICAgICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3IsXFxuICAgIF0pO1xcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJFeHBvcnREaWFsb2dcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIHsgY2xhc3NOYW1lOiBcXFwiRXhwb3J0RGlhbG9nX19wcmV2aWV3XFxcIiwgcmVmOiBwcmV2aWV3UmVmIH0sIHZvaWQgMCksIHN1cHBvcnRzQ29udGV4dEZpbHRlcnMgJiZcXG4gICAgICAgICAgICAgICAgYWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXFxcImV4cG9ydFdpdGhEYXJrTW9kZVxcXCIpLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBzdHlsZTogeyBkaXNwbGF5OiBcXFwiZ3JpZFxcXCIsIGdyaWRUZW1wbGF0ZUNvbHVtbnM6IFxcXCIxZnJcXFwiIH0gfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IHN0eWxlOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogXFxcImdyaWRcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6IFxcXCJyZXBlYXQoYXV0by1maXQsIG1pbm1heCgxOTBweCwgMWZyKSlcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGR1bm5vIHdoeSB0aGlzIGlzIG5lZWRlZCwgYnV0IHdoZW4gdGhlIGl0ZW1zIHdyYXAgaXQgY3JlYXRlc1xcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuIG92ZXJmbG93XFxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IFxcXCJoaWRkZW5cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgfSB9LCB7IGNoaWxkcmVuOiBbYWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXFxcImNoYW5nZUV4cG9ydEJhY2tncm91bmRcXFwiKSwgc29tZUVsZW1lbnRJc1NlbGVjdGVkICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX0NoZWNrYm94SXRlbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5DaGVja2JveEl0ZW0sIE9iamVjdC5hc3NpZ24oeyBjaGVja2VkOiBleHBvcnRTZWxlY3RlZCwgb25DaGFuZ2U6IChjaGVja2VkKSA9PiBzZXRFeHBvcnRTZWxlY3RlZChjaGVja2VkKSB9LCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnQpKFxcXCJsYWJlbHMub25seVNlbGVjdGVkXFxcIikgfSksIHZvaWQgMCkpLCBhY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcXFwiY2hhbmdlRXhwb3J0RW1iZWRTY2VuZVxcXCIpXSB9KSwgdm9pZCAwKSB9KSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IHN0eWxlOiB7IGRpc3BsYXk6IFxcXCJmbGV4XFxcIiwgYWxpZ25JdGVtczogXFxcImNlbnRlclxcXCIsIG1hcmdpblRvcDogXFxcIi42ZW1cXFwiIH0gfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfU3RhY2tfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX19bXFxcImRlZmF1bHRcXFwiXS5Sb3csIE9iamVjdC5hc3NpZ24oeyBnYXA6IDIgfSwgeyBjaGlsZHJlbjogYWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXFxcImNoYW5nZUV4cG9ydFNjYWxlXFxcIikgfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicFxcXCIsIE9iamVjdC5hc3NpZ24oeyBzdHlsZTogeyBtYXJnaW5MZWZ0OiBcXFwiMWVtXFxcIiwgdXNlclNlbGVjdDogXFxcIm5vbmVcXFwiIH0gfSwgeyBjaGlsZHJlbjogXFxcIlNjYWxlXFxcIiB9KSwgdm9pZCAwKV0gfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IHN0eWxlOiB7XFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcXFwiZmxleFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiBcXFwiY2VudGVyXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBcXFwiY2VudGVyXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogXFxcIi42ZW0gMFxcXCIsXFxuICAgICAgICAgICAgICAgIH0gfSwgeyBjaGlsZHJlbjogIV9kYXRhX2ZpbGVzeXN0ZW1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE4X18ubmF0aXZlRmlsZVN5c3RlbVN1cHBvcnRlZCAmJlxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXFxcImNoYW5nZVByb2plY3ROYW1lXFxcIikgfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoX1N0YWNrX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fW1xcXCJkZWZhdWx0XFxcIl0uUm93LCBPYmplY3QuYXNzaWduKHsgZ2FwOiAyLCBqdXN0aWZ5Q29udGVudDogXFxcImNlbnRlclxcXCIsIHN0eWxlOiB7IG1hcmdpbjogXFxcIjJlbSAwXFxcIiB9IH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoRXhwb3J0QnV0dG9uLCBPYmplY3QuYXNzaWduKHsgY29sb3I6IFxcXCJpbmRpZ29cXFwiLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy50KShcXFwiYnV0dG9ucy5leHBvcnRUb1BuZ1xcXCIpLCBcXFwiYXJpYS1sYWJlbFxcXCI6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udCkoXFxcImJ1dHRvbnMuZXhwb3J0VG9QbmdcXFwiKSwgb25DbGljazogKCkgPT4gb25FeHBvcnRUb1BuZyhleHBvcnRlZEVsZW1lbnRzKSB9LCB7IGNoaWxkcmVuOiBcXFwiUE5HXFxcIiB9KSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKEV4cG9ydEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IGNvbG9yOiBcXFwicmVkXFxcIiwgdGl0bGU6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udCkoXFxcImJ1dHRvbnMuZXhwb3J0VG9TdmdcXFwiKSwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnQpKFxcXCJidXR0b25zLmV4cG9ydFRvU3ZnXFxcIiksIG9uQ2xpY2s6ICgpID0+IG9uRXhwb3J0VG9TdmcoZXhwb3J0ZWRFbGVtZW50cykgfSwgeyBjaGlsZHJlbjogXFxcIlNWR1xcXCIgfSksIHZvaWQgMCksIF9jbGlwYm9hcmRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5wcm9iYWJseVN1cHBvcnRzQ2xpcGJvYXJkQmxvYiAmJiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKEV4cG9ydEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IHRpdGxlOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnQpKFxcXCJidXR0b25zLmNvcHlQbmdUb0NsaXBib2FyZFxcXCIpLCBvbkNsaWNrOiAoKSA9PiBvbkV4cG9ydFRvQ2xpcGJvYXJkKGV4cG9ydGVkRWxlbWVudHMpLCBjb2xvcjogXFxcImdyYXlcXFwiLCBzaGFkZTogNyB9LCB7IGNoaWxkcmVuOiBfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uY2xpcGJvYXJkIH0pLCB2b2lkIDApKV0gfSksIHZvaWQgMCldIH0pLCB2b2lkIDApKTtcXG59O1xcbmNvbnN0IEltYWdlRXhwb3J0RGlhbG9nID0gKHsgZWxlbWVudHMsIGFwcFN0YXRlLCBmaWxlcywgZXhwb3J0UGFkZGluZyA9IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE3X18uREVGQVVMVF9FWFBPUlRfUEFERElORywgYWN0aW9uTWFuYWdlciwgb25FeHBvcnRUb1BuZywgb25FeHBvcnRUb1N2Zywgb25FeHBvcnRUb0NsaXBib2FyZCwgfSkgPT4ge1xcbiAgICBjb25zdCBbbW9kYWxJc1Nob3duLCBzZXRNb2RhbElzU2hvd25dID0gKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51c2VTdGF0ZSkoZmFsc2UpO1xcbiAgICBjb25zdCBoYW5kbGVDbG9zZSA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLnVzZUNhbGxiYWNrKCgpID0+IHtcXG4gICAgICAgIHNldE1vZGFsSXNTaG93bihmYWxzZSk7XFxuICAgIH0sIFtdKTtcXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18uVG9vbEJ1dHRvbiwgeyBvbkNsaWNrOiAoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBzZXRNb2RhbElzU2hvd24odHJ1ZSk7XFxuICAgICAgICAgICAgICAgIH0sIFxcXCJkYXRhLXRlc3RpZFxcXCI6IFxcXCJpbWFnZS1leHBvcnQtYnV0dG9uXFxcIiwgaWNvbjogX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLmV4cG9ydEltYWdlLCB0eXBlOiBcXFwiYnV0dG9uXFxcIiwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnQpKFxcXCJidXR0b25zLmV4cG9ydEltYWdlXFxcIiksIHNob3dBcmlhTGFiZWw6ICgwLF9BcHBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy51c2VJc01vYmlsZSkoKSwgdGl0bGU6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udCkoXFxcImJ1dHRvbnMuZXhwb3J0SW1hZ2VcXFwiKSB9LCB2b2lkIDApLCBtb2RhbElzU2hvd24gJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfRGlhbG9nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLkRpYWxvZywgT2JqZWN0LmFzc2lnbih7IG9uQ2xvc2VSZXF1ZXN0OiBoYW5kbGVDbG9zZSwgdGl0bGU6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udCkoXFxcImJ1dHRvbnMuZXhwb3J0SW1hZ2VcXFwiKSB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoSW1hZ2VFeHBvcnRNb2RhbCwgeyBlbGVtZW50czogZWxlbWVudHMsIGFwcFN0YXRlOiBhcHBTdGF0ZSwgZmlsZXM6IGZpbGVzLCBleHBvcnRQYWRkaW5nOiBleHBvcnRQYWRkaW5nLCBhY3Rpb25NYW5hZ2VyOiBhY3Rpb25NYW5hZ2VyLCBvbkV4cG9ydFRvUG5nOiBvbkV4cG9ydFRvUG5nLCBvbkV4cG9ydFRvU3ZnOiBvbkV4cG9ydFRvU3ZnLCBvbkV4cG9ydFRvQ2xpcGJvYXJkOiBvbkV4cG9ydFRvQ2xpcGJvYXJkLCBvbkNsb3NlUmVxdWVzdDogaGFuZGxlQ2xvc2UgfSwgdm9pZCAwKSB9KSwgdm9pZCAwKSldIH0sIHZvaWQgMCkpO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlKYldGblpVVjRjRzl5ZEVScFlXeHZaeTUwYzNndWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3p0QlFVRXlSRHRCUVVOQk8wRkJSVVU3UVVGRGFrSTdRVUZGU2p0QlFVTmFPMEZCUTFFN1FVRkRhME03UVVGRGNrSTdRVUZGWmp0QlFVTmxPMEZCUTNKQ08wRkJRMk03UVVGRFlqdEJRVU5OTzBGQlExYzdRVUZEVVR0QlFVTlRPMEZCUlM5RUxFMUJRVTBzYzBKQlFYTkNMRWRCUXpGQ0xGRkJRVkVzU1VGQlNTeFJRVUZSTEVOQlFVTXNZVUZCWVN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVVXNRMEZCUXp0QlFVVXhSQ3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMRWRCUVVjc1JVRkJSVHRKUVVOeVF5eFBRVUZQTEVOQlEwd3NORVZCUTBVc2VVVkJRVXNzZDBOQlFVTXNRMEZCUXl3clFrRkJLMElzUTBGQlF5eFhRVUZOTEVWQlF6ZERMSGRGUVVORkxESkZRVUZQTEhkRFFVRkRMRU5CUVVNc01FSkJRVEJDTEVOQlFVTXNWMEZCVVN4WFFVTXhReXhGUVVOS0xHZEdRVUZOTEhkRFFVRkRMRU5CUVVNc05rSkJRVFpDTEVOQlFVTXNhVUpCUVU4c1dVRkRla01zUTBGRFVDeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRPMEZCUlVZc1RVRkJUU3hoUVVGaExFZEJRVWNzUTBGRGNFSXNUMEZCYTBNc1JVRkRiRU1zVjBGQk1rSXNSVUZETTBJc1JVRkJSVHRKUVVOR0xHbEZRVUZ6UWl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8wbEJRM0JETEZkQlFWY3NRMEZCUXl4VFFVRlRMRWRCUVVjc1JVRkJSU3hEUVVGRE8wbEJRek5DTEVsQlFVa3NUMEZCVHl4WlFVRlpMR2xDUVVGcFFpeEZRVUZGTzFGQlEzaERMRmRCUVZjc1EwRkJReXhYUVVGWExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTMEZEYkVNN1UwRkJUVHRSUVVOTUxHbEVRVUZOTEVOQlFVTXNkVVJCUVVNc2EwSkJRV3RDTEdGQlFVY3NSVUZCUlN4WFFVRlhMRU5CUVVNc1EwRkJRenRMUVVNM1F6dEJRVU5JTEVOQlFVTXNRMEZCUXp0QlFVOUdMRTFCUVUwc1dVRkJXU3hIUVV0aUxFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzUzBGQlN5eEhRVUZITEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVN1NVRkRkRVFzVDBGQlR5eERRVU5NTEdsR1FVTkZMRk5CUVZNc1JVRkJReXhuUTBGQlowTXNSVUZETVVNc1MwRkJTeXhGUVVGRk8xbEJRMHdzUTBGQlF5eG5Ra0ZCZFVJc1EwRkJReXhGUVVGRkxIZERRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRE8xbEJRMnhFTEVOQlFVTXNkVUpCUVRoQ0xFTkJRVU1zUlVGQlJTeDNRMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZETjBRc1EwRkJReXgzUWtGQkswSXNRMEZCUXl4RlFVRkZMSGREUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJRenRUUVVNdlJDeEZRVU5FTEV0QlFVc3NSVUZCUlN4TFFVRkxMR2RDUVVOQkxFdEJRVXNzUlVGRGFrSXNUMEZCVHl4RlFVRkZMRTlCUVU4c1owSkJSV1lzVVVGQlVTeFpRVU5HTEVOQlExWXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1EwRkJReXhGUVVONFFpeFJRVUZSTEVWQlExSXNVVUZCVVN4RlFVTlNMRXRCUVVzc1JVRkRUQ3hoUVVGaExFZEJRVWNzSzBSQlFYTkNMRVZCUTNSRExHRkJRV0VzUlVGRFlpeGhRVUZoTEVWQlEySXNZVUZCWVN4RlFVTmlMRzFDUVVGdFFpeEhRVmR3UWl4RlFVRkZMRVZCUVVVN1NVRkRTQ3hOUVVGTkxIRkNRVUZ4UWl4SFFVRkhMRFpFUVVGeFFpeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRU5CUVVNc1EwRkJRenRKUVVONFJTeE5RVUZOTEVOQlFVTXNZMEZCWXl4RlFVRkZMR2xDUVVGcFFpeERRVUZETEVkQlFVY3NLME5CUVZFc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4RFFVRkRPMGxCUXpWRkxFMUJRVTBzVlVGQlZTeEhRVUZITERaRFFVRk5MRU5CUVdsQ0xFbEJRVWtzUTBGQlF5eERRVUZETzBsQlEyaEVMRTFCUVUwc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4dFFrRkJiVUlzUlVGQlJTeEhRVUZITEZGQlFWRXNRMEZCUXp0SlFVVXpSQ3hOUVVGTkxHZENRVUZuUWl4SFFVRkhMR05CUVdNN1VVRkRja01zUTBGQlF5eERRVUZETERKRVFVRnRRaXhEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVXNTVUZCU1N4RFFVRkRPMUZCUXk5RExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTTdTVUZGWWl4blJFRkJVeXhEUVVGRExFZEJRVWNzUlVGQlJUdFJRVU5pTEdsQ1FVRnBRaXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN1NVRkRNME1zUTBGQlF5eEZRVUZGTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJUVkNMR2RFUVVGVExFTkJRVU1zUjBGQlJ5eEZRVUZGTzFGQlEySXNUVUZCVFN4WFFVRlhMRWRCUVVjc1ZVRkJWU3hEUVVGRExFOUJRVThzUTBGQlF6dFJRVU4yUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRk8xbEJRMmhDTEU5QlFVODdVMEZEVWp0UlFVTkVMRFpFUVVGakxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1VVRkJVU3hGUVVGRkxFdEJRVXNzUlVGQlJUdFpRVU5vUkN4blFrRkJaMEk3V1VGRGFFSXNiVUpCUVcxQ08xbEJRMjVDTEdGQlFXRTdVMEZEWkN4RFFVRkRPMkZCUTBNc1NVRkJTU3hEUVVGRExFTkJRVU1zVFVGQlRTeEZRVUZGTEVWQlFVVTdXVUZEWml3NFJFRkJPRVE3V1VGRE9VUXNNRVJCUVRCRU8xbEJRekZFTEU5QlFVOHNkMFJCUVZrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RlFVRkZPMmRDUVVOd1F5eGhRVUZoTEVOQlFVTXNUVUZCVFN4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVGRE8xbEJRM0pETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTB3c1EwRkJReXhEUVVGRE8yRkJRMFFzUzBGQlN5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVN1dVRkRaaXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUTNKQ0xHRkJRV0VzUTBGQlF5eEpRVUZKTEdkRVFVRlhMRVZCUVVVc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dFJRVU5vUkN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOUUxFTkJRVU1zUlVGQlJUdFJRVU5FTEZGQlFWRTdVVUZEVWl4TFFVRkxPMUZCUTB3c1owSkJRV2RDTzFGQlEyaENMR2RDUVVGblFqdFJRVU5vUWl4aFFVRmhPMUZCUTJJc2JVSkJRVzFDTzB0QlEzQkNMRU5CUVVNc1EwRkJRenRKUVVWSUxFOUJRVThzUTBGRFRDd3JSVUZCU3l4VFFVRlRMRVZCUVVNc1kwRkJZeXhwUWtGRE0wSXNaMFZCUVVzc1UwRkJVeXhGUVVGRExIVkNRVUYxUWl4RlFVRkRMRWRCUVVjc1JVRkJSU3hWUVVGVkxGZEJRVWtzUlVGRGVrUXNjMEpCUVhOQ08yZENRVU55UWl4aFFVRmhMRU5CUVVNc1dVRkJXU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRVZCUTJ4RUxEaEZRVUZMTEV0QlFVc3NSVUZCUlN4RlFVRkZMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVVzYlVKQlFXMUNMRVZCUVVVc1MwRkJTeXhGUVVGRkxHZENRVU42UkN3clJVRkRSU3hMUVVGTExFVkJRVVU3ZDBKQlEwd3NUMEZCVHl4RlFVRkZMRTFCUVUwN2QwSkJRMllzYlVKQlFXMUNMRVZCUVVVc2MwTkJRWE5ETzNkQ1FVTXpSQ3dyUkVGQkswUTdkMEpCUXk5RUxHTkJRV003ZDBKQlEyUXNVVUZCVVN4RlFVRkZMRkZCUVZFN2NVSkJRMjVDTEdsQ1FVVkJMR0ZCUVdFc1EwRkJReXhaUVVGWkxFTkJRVU1zZDBKQlFYZENMRU5CUVVNc1JVRkRjRVFzY1VKQlFYRkNMRWxCUVVrc1EwRkRlRUlzZFVSQlFVTXNkMFJCUVZrc2EwSkJRMWdzVDBGQlR5eEZRVUZGTEdOQlFXTXNSVUZEZGtJc1VVRkJVU3hGUVVGRkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNaMEpCUldoRUxIZERRVUZETEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zV1VGRFdpeERRVU5vUWl4RlFVTkJMR0ZCUVdFc1EwRkJReXhaUVVGWkxFTkJRVU1zZDBKQlFYZENMRU5CUVVNc1lVRkRha1FzV1VGRFJpeEZRVU5PTEN0RlFVRkxMRXRCUVVzc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVXNWVUZCVlN4RlFVRkZMRkZCUVZFc1JVRkJSU3hUUVVGVExFVkJRVVVzVFVGQlRTeEZRVUZGTEdsQ1FVTjBSU3gxUkVGQlF5eHRSRUZCVXl4clFrRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eG5Ra0ZEWkN4aFFVRmhMRU5CUVVNc1dVRkJXU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRmxCUTNSRExFVkJRMW9zTkVWQlFVY3NTMEZCU3l4RlFVRkZMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFdEJRVXNzUlVGQlJTeFZRVUZWTEVWQlFVVXNUVUZCVFN4RlFVRkZMRzFEUVVGWExHRkJRekZFTEVWQlEwNHNPRVZCUTBVc1MwRkJTeXhGUVVGRk8yOUNRVU5NTEU5QlFVOHNSVUZCUlN4TlFVRk5PMjlDUVVObUxGVkJRVlVzUlVGQlJTeFJRVUZSTzI5Q1FVTndRaXhqUVVGakxFVkJRVVVzVVVGQlVUdHZRa0ZEZUVJc1RVRkJUU3hGUVVGRkxGRkJRVkU3YVVKQlEycENMR2RDUVVWQkxFTkJRVU1zZDBWQlFYbENPMjlDUVVONlFpeGhRVUZoTEVOQlFVTXNXVUZCV1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETEZsQlF6ZERMRVZCUTA0c2QwUkJRVU1zYlVSQlFWTXNhMEpCUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUlVGQlJTeGpRVUZqTEVWQlFVTXNVVUZCVVN4RlFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNhVUpCUTI1RkxIVkVRVUZETEZsQlFWa3NhMEpCUTFnc1MwRkJTeXhGUVVGRExGRkJRVkVzUlVGRFpDeExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4blFrRkRia0lzZDBOQlFVTXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eEZRVU53UXl4UFFVRlBMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zWVVGQllTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExHbERRVWRxUXl4RlFVTm1MSFZFUVVGRExGbEJRVmtzYTBKQlExZ3NTMEZCU3l4RlFVRkRMRXRCUVVzc1JVRkRXQ3hMUVVGTExFVkJRVVVzZDBOQlFVTXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eG5Ra0ZEYmtJc2QwTkJRVU1zUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhGUVVOd1F5eFBRVUZQTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1lVRkJZU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMR2xEUVVkcVF5eEZRVU5rTEhGRlFVRTJRaXhKUVVGSkxFTkJRMmhETEhWRVFVRkRMRmxCUVZrc2EwSkJRMWdzUzBGQlN5eEZRVUZGTEhkRFFVRkRMRU5CUVVNc05FSkJRVFJDTEVOQlFVTXNSVUZEZEVNc1QwRkJUeXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRVZCUTNCRUxFdEJRVXNzUlVGQlF5eE5RVUZOTEVWQlExb3NTMEZCU3l4RlFVRkZMRU5CUVVNc1owSkJSVkFzT0VOQlFWTXNXVUZEUnl4RFFVTm9RaXhoUVVOVExHRkJRMUlzUTBGRFVDeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnl4RFFVRkRMRVZCUTJoRExGRkJRVkVzUlVGRFVpeFJRVUZSTEVWQlExSXNTMEZCU3l4RlFVTk1MR0ZCUVdFc1IwRkJSeXdyUkVGQmMwSXNSVUZEZEVNc1lVRkJZU3hGUVVOaUxHRkJRV0VzUlVGRFlpeGhRVUZoTEVWQlEySXNiVUpCUVcxQ0xFZEJWWEJDTEVWQlFVVXNSVUZCUlR0SlFVTklMRTFCUVUwc1EwRkJReXhaUVVGWkxFVkJRVVVzWlVGQlpTeERRVUZETEVkQlFVY3NLME5CUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVVY0UkN4TlFVRk5MRmRCUVZjc1IwRkJSeXgzUkVGQmFVSXNRMEZCUXl4SFFVRkhMRVZCUVVVN1VVRkRla01zWlVGQlpTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUTNwQ0xFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVVlFMRTlCUVU4c1EwRkRUQ3c0U0VGRFJTeDFSRUZCUXl4dlJFRkJWU3hKUVVOVUxFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVTdiMEpCUTFvc1pVRkJaU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzJkQ1FVTjRRaXhEUVVGRExHbENRVU5YTEhGQ1FVRnhRaXhGUVVOcVF5eEpRVUZKTEVWQlFVVXNaMFJCUVZjc1JVRkRha0lzU1VGQlNTeEZRVUZETEZGQlFWRXNaMEpCUTBRc2QwTkJRVU1zUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhGUVVOd1F5eGhRVUZoTEVWQlFVVXNhVVJCUVZjc1JVRkJSU3hGUVVNMVFpeExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4WFFVTXZRaXhGUVVORUxGbEJRVmtzU1VGQlNTeERRVU5tTEhWRVFVRkRMRFJEUVVGTkxHdENRVUZETEdOQlFXTXNSVUZCUlN4WFFVRlhMRVZCUVVVc1MwRkJTeXhGUVVGRkxIZERRVUZETEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zWjBKQlEyeEZMSFZFUVVGRExHZENRVUZuUWl4SlFVTm1MRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRMnhDTEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUTJ4Q0xFdEJRVXNzUlVGQlJTeExRVUZMTEVWQlExb3NZVUZCWVN4RlFVRkZMR0ZCUVdFc1JVRkROVUlzWVVGQllTeEZRVUZGTEdGQlFXRXNSVUZETlVJc1lVRkJZU3hGUVVGRkxHRkJRV0VzUlVGRE5VSXNZVUZCWVN4RlFVRkZMR0ZCUVdFc1JVRkROVUlzYlVKQlFXMUNMRVZCUVVVc2JVSkJRVzFDTEVWQlEzaERMR05CUVdNc1JVRkJSU3hYUVVGWExGZEJRek5DTEZsQlEwc3NRMEZEVml4WlFVTkJMRU5CUTBvc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDBsdFlXZGxSWGh3YjNKMFJHbGhiRzluTG5SemVEOHlNR1V4SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCU1pXRmpkQ3dnZXlCMWMyVkZabVpsWTNRc0lIVnpaVkpsWml3Z2RYTmxVM1JoZEdVZ2ZTQm1jbTl0SUZ3aWNtVmhZM1JjSWp0Y2JtbHRjRzl5ZENCN0lISmxibVJsY2l3Z2RXNXRiM1Z1ZEVOdmJYQnZibVZ1ZEVGMFRtOWtaU0I5SUdaeWIyMGdYQ0p5WldGamRDMWtiMjFjSWp0Y2JtbHRjRzl5ZENCN0lFRmpkR2x2Ym5OTllXNWhaMlZ5U1c1MFpYSm1ZV05sSUgwZ1puSnZiU0JjSWk0dUwyRmpkR2x2Ym5NdmRIbHdaWE5jSWp0Y2JtbHRjRzl5ZENCN0lIQnliMkpoWW14NVUzVndjRzl5ZEhORGJHbHdZbTloY21SQ2JHOWlJSDBnWm5KdmJTQmNJaTR1TDJOc2FYQmliMkZ5WkZ3aU8xeHVhVzF3YjNKMElIc2dZMkZ1ZG1GelZHOUNiRzlpSUgwZ1puSnZiU0JjSWk0dUwyUmhkR0V2WW14dllsd2lPMXh1YVcxd2IzSjBJSHNnVG05dVJHVnNaWFJsWkVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwSUgwZ1puSnZiU0JjSWk0dUwyVnNaVzFsYm5RdmRIbHdaWE5jSWp0Y2JtbHRjRzl5ZENCN0lFTmhiblpoYzBWeWNtOXlJSDBnWm5KdmJTQmNJaTR1TDJWeWNtOXljMXdpTzF4dWFXMXdiM0owSUhzZ2RDQjlJR1p5YjIwZ1hDSXVMaTlwTVRodVhDSTdYRzVwYlhCdmNuUWdleUIxYzJWSmMwMXZZbWxzWlNCOUlHWnliMjBnWENJdUwwRndjRndpTzF4dWFXMXdiM0owSUhzZ1oyVjBVMlZzWldOMFpXUkZiR1Z0Wlc1MGN5d2dhWE5UYjIxbFJXeGxiV1Z1ZEZObGJHVmpkR1ZrSUgwZ1puSnZiU0JjSWk0dUwzTmpaVzVsWENJN1hHNXBiWEJ2Y25RZ2V5QmxlSEJ2Y25SVWIwTmhiblpoY3lCOUlHWnliMjBnWENJdUxpOXpZMlZ1WlM5bGVIQnZjblJjSWp0Y2JtbHRjRzl5ZENCN0lFRndjRk4wWVhSbExDQkNhVzVoY25sR2FXeGxjeUI5SUdaeWIyMGdYQ0l1TGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1JHbGhiRzluSUgwZ1puSnZiU0JjSWk0dlJHbGhiRzluWENJN1hHNXBiWEJ2Y25RZ2V5QmpiR2x3WW05aGNtUXNJR1Y0Y0c5eWRFbHRZV2RsSUgwZ1puSnZiU0JjSWk0dmFXTnZibk5jSWp0Y2JtbHRjRzl5ZENCVGRHRmpheUJtY205dElGd2lMaTlUZEdGamExd2lPMXh1YVcxd2IzSjBJSHNnVkc5dmJFSjFkSFJ2YmlCOUlHWnliMjBnWENJdUwxUnZiMnhDZFhSMGIyNWNJanRjYm1sdGNHOXlkQ0JjSWk0dlJYaHdiM0owUkdsaGJHOW5Mbk5qYzNOY0lqdGNibWx0Y0c5eWRDQlBjR1Z1UTI5c2IzSWdabkp2YlNCY0ltOXdaVzR0WTI5c2IzSmNJanRjYm1sdGNHOXlkQ0I3SUVOb1pXTnJZbTk0U1hSbGJTQjlJR1p5YjIwZ1hDSXVMME5vWldOclltOTRTWFJsYlZ3aU8xeHVhVzF3YjNKMElIc2dSRVZHUVZWTVZGOUZXRkJQVWxSZlVFRkVSRWxPUnlCOUlHWnliMjBnWENJdUxpOWpiMjV6ZEdGdWRITmNJanRjYm1sdGNHOXlkQ0I3SUc1aGRHbDJaVVpwYkdWVGVYTjBaVzFUZFhCd2IzSjBaV1FnZlNCbWNtOXRJRndpTGk0dlpHRjBZUzltYVd4bGMzbHpkR1Z0WENJN1hHNWNibU52Ym5OMElITjFjSEJ2Y25SelEyOXVkR1Y0ZEVacGJIUmxjbk1nUFZ4dUlDQmNJbVpwYkhSbGNsd2lJR2x1SUdSdlkzVnRaVzUwTG1OeVpXRjBaVVZzWlcxbGJuUW9YQ0pqWVc1MllYTmNJaWt1WjJWMFEyOXVkR1Y0ZENoY0lqSmtYQ0lwSVR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUVWeWNtOXlRMkZ1ZG1GelVISmxkbWxsZHlBOUlDZ3BJRDArSUh0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNBOFpHbDJQbHh1SUNBZ0lDQWdQR2d6UG50MEtGd2lZMkZ1ZG1GelJYSnliM0l1WTJGdWJtOTBVMmh2ZDFCeVpYWnBaWGRjSWlsOVBDOW9NejVjYmlBZ0lDQWdJRHh3UGx4dUlDQWdJQ0FnSUNBOGMzQmhiajU3ZENoY0ltTmhiblpoYzBWeWNtOXlMbU5oYm5aaGMxUnZiMEpwWjF3aUtYMDhMM053WVc0K1hHNGdJQ0FnSUNBOEwzQStYRzRnSUNBZ0lDQThaVzArS0h0MEtGd2lZMkZ1ZG1GelJYSnliM0l1WTJGdWRtRnpWRzl2UW1sblZHbHdYQ0lwZlNrOEwyVnRQbHh1SUNBZ0lEd3ZaR2wyUGx4dUlDQXBPMXh1ZlR0Y2JseHVZMjl1YzNRZ2NtVnVaR1Z5VUhKbGRtbGxkeUE5SUNoY2JpQWdZMjl1ZEdWdWREb2dTRlJOVEVOaGJuWmhjMFZzWlcxbGJuUWdmQ0JGY25KdmNpeGNiaUFnY0hKbGRtbGxkMDV2WkdVNklFaFVUVXhFYVhaRmJHVnRaVzUwTEZ4dUtTQTlQaUI3WEc0Z0lIVnViVzkxYm5SRGIyMXdiMjVsYm5SQmRFNXZaR1VvY0hKbGRtbGxkMDV2WkdVcE8xeHVJQ0J3Y21WMmFXVjNUbTlrWlM1cGJtNWxja2hVVFV3Z1BTQmNJbHdpTzF4dUlDQnBaaUFvWTI5dWRHVnVkQ0JwYm5OMFlXNWpaVzltSUVoVVRVeERZVzUyWVhORmJHVnRaVzUwS1NCN1hHNGdJQ0FnY0hKbGRtbGxkMDV2WkdVdVlYQndaVzVrUTJocGJHUW9ZMjl1ZEdWdWRDazdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdjbVZ1WkdWeUtEeEZjbkp2Y2tOaGJuWmhjMUJ5WlhacFpYY2dMejRzSUhCeVpYWnBaWGRPYjJSbEtUdGNiaUFnZlZ4dWZUdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1JYaHdiM0owUTBJZ1BTQW9YRzRnSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCT2IyNUVaV3hsZEdWa1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTeGNiaUFnYzJOaGJHVS9PaUJ1ZFcxaVpYSXNYRzRwSUQwK0lIWnZhV1E3WEc1Y2JtTnZibk4wSUVWNGNHOXlkRUoxZEhSdmJqb2dVbVZoWTNRdVJrTThlMXh1SUNCamIyeHZjam9nYTJWNWIyWWdUM0JsYmtOdmJHOXlPMXh1SUNCdmJrTnNhV05yT2lBb0tTQTlQaUIyYjJsa08xeHVJQ0IwYVhSc1pUb2djM1J5YVc1bk8xeHVJQ0J6YUdGa1pUODZJRzUxYldKbGNqdGNibjArSUQwZ0tIc2dZMmhwYkdSeVpXNHNJSFJwZEd4bExDQnZia05zYVdOckxDQmpiMnh2Y2l3Z2MyaGhaR1VnUFNBMklIMHBJRDArSUh0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNBOFluVjBkRzl1WEc0Z0lDQWdJQ0JqYkdGemMwNWhiV1U5WENKRmVIQnZjblJFYVdGc2IyY3RhVzFoWjJWRmVIQnZjblJDZFhSMGIyNWNJbHh1SUNBZ0lDQWdjM1I1YkdVOWUzdGNiaUFnSUNBZ0lDQWdXMXdpTFMxaWRYUjBiMjR0WTI5c2IzSmNJaUJoY3lCaGJubGRPaUJQY0dWdVEyOXNiM0piWTI5c2IzSmRXM05vWVdSbFhTeGNiaUFnSUNBZ0lDQWdXMXdpTFMxaWRYUjBiMjR0WTI5c2IzSXRaR0Z5YTJWeVhDSWdZWE1nWVc1NVhUb2dUM0JsYmtOdmJHOXlXMk52Ykc5eVhWdHphR0ZrWlNBcklERmRMRnh1SUNBZ0lDQWdJQ0JiWENJdExXSjFkSFJ2YmkxamIyeHZjaTFrWVhKclpYTjBYQ0lnWVhNZ1lXNTVYVG9nVDNCbGJrTnZiRzl5VzJOdmJHOXlYVnR6YUdGa1pTQXJJREpkTEZ4dUlDQWdJQ0FnZlgxY2JpQWdJQ0FnSUhScGRHeGxQWHQwYVhSc1pYMWNiaUFnSUNBZ0lHRnlhV0V0YkdGaVpXdzllM1JwZEd4bGZWeHVJQ0FnSUNBZ2IyNURiR2xqYXoxN2IyNURiR2xqYTMxY2JpQWdJQ0ErWEc0Z0lDQWdJQ0I3WTJocGJHUnlaVzU5WEc0Z0lDQWdQQzlpZFhSMGIyNCtYRzRnSUNrN1hHNTlPMXh1WEc1amIyNXpkQ0JKYldGblpVVjRjRzl5ZEUxdlpHRnNJRDBnS0h0Y2JpQWdaV3hsYldWdWRITXNYRzRnSUdGd2NGTjBZWFJsTEZ4dUlDQm1hV3hsY3l4Y2JpQWdaWGh3YjNKMFVHRmtaR2x1WnlBOUlFUkZSa0ZWVEZSZlJWaFFUMUpVWDFCQlJFUkpUa2NzWEc0Z0lHRmpkR2x2YmsxaGJtRm5aWElzWEc0Z0lHOXVSWGh3YjNKMFZHOVFibWNzWEc0Z0lHOXVSWGh3YjNKMFZHOVRkbWNzWEc0Z0lHOXVSWGh3YjNKMFZHOURiR2x3WW05aGNtUXNYRzU5T2lCN1hHNGdJR0Z3Y0ZOMFlYUmxPaUJCY0hCVGRHRjBaVHRjYmlBZ1pXeGxiV1Z1ZEhNNklISmxZV1J2Ym14NUlFNXZia1JsYkdWMFpXUkZlR05oYkdsa2NtRjNSV3hsYldWdWRGdGRPMXh1SUNCbWFXeGxjem9nUW1sdVlYSjVSbWxzWlhNN1hHNGdJR1Y0Y0c5eWRGQmhaR1JwYm1jL09pQnVkVzFpWlhJN1hHNGdJR0ZqZEdsdmJrMWhibUZuWlhJNklFRmpkR2x2Ym5OTllXNWhaMlZ5U1c1MFpYSm1ZV05sTzF4dUlDQnZia1Y0Y0c5eWRGUnZVRzVuT2lCRmVIQnZjblJEUWp0Y2JpQWdiMjVGZUhCdmNuUlViMU4yWnpvZ1JYaHdiM0owUTBJN1hHNGdJRzl1Ulhod2IzSjBWRzlEYkdsd1ltOWhjbVE2SUVWNGNHOXlkRU5DTzF4dUlDQnZia05zYjNObFVtVnhkV1Z6ZERvZ0tDa2dQVDRnZG05cFpEdGNibjBwSUQwK0lIdGNiaUFnWTI5dWMzUWdjMjl0WlVWc1pXMWxiblJKYzFObGJHVmpkR1ZrSUQwZ2FYTlRiMjFsUld4bGJXVnVkRk5sYkdWamRHVmtLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU2s3WEc0Z0lHTnZibk4wSUZ0bGVIQnZjblJUWld4bFkzUmxaQ3dnYzJWMFJYaHdiM0owVTJWc1pXTjBaV1JkSUQwZ2RYTmxVM1JoZEdVb2MyOXRaVVZzWlcxbGJuUkpjMU5sYkdWamRHVmtLVHRjYmlBZ1kyOXVjM1FnY0hKbGRtbGxkMUpsWmlBOUlIVnpaVkpsWmp4SVZFMU1SR2wyUld4bGJXVnVkRDRvYm5Wc2JDazdYRzRnSUdOdmJuTjBJSHNnWlhod2IzSjBRbUZqYTJkeWIzVnVaQ3dnZG1sbGQwSmhZMnRuY205MWJtUkRiMnh2Y2lCOUlEMGdZWEJ3VTNSaGRHVTdYRzVjYmlBZ1kyOXVjM1FnWlhod2IzSjBaV1JGYkdWdFpXNTBjeUE5SUdWNGNHOXlkRk5sYkdWamRHVmtYRzRnSUNBZ1B5Qm5aWFJUWld4bFkzUmxaRVZzWlcxbGJuUnpLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU3dnZEhKMVpTbGNiaUFnSUNBNklHVnNaVzFsYm5Sek8xeHVYRzRnSUhWelpVVm1abVZqZENnb0tTQTlQaUI3WEc0Z0lDQWdjMlYwUlhod2IzSjBVMlZzWldOMFpXUW9jMjl0WlVWc1pXMWxiblJKYzFObGJHVmpkR1ZrS1R0Y2JpQWdmU3dnVzNOdmJXVkZiR1Z0Wlc1MFNYTlRaV3hsWTNSbFpGMHBPMXh1WEc0Z0lIVnpaVVZtWm1WamRDZ29LU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdjSEpsZG1sbGQwNXZaR1VnUFNCd2NtVjJhV1YzVW1WbUxtTjFjbkpsYm5RN1hHNGdJQ0FnYVdZZ0tDRndjbVYyYVdWM1RtOWtaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lIMWNiaUFnSUNCbGVIQnZjblJVYjBOaGJuWmhjeWhsZUhCdmNuUmxaRVZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU3dnWm1sc1pYTXNJSHRjYmlBZ0lDQWdJR1Y0Y0c5eWRFSmhZMnRuY205MWJtUXNYRzRnSUNBZ0lDQjJhV1YzUW1GamEyZHliM1Z1WkVOdmJHOXlMRnh1SUNBZ0lDQWdaWGh3YjNKMFVHRmtaR2x1Wnl4Y2JpQWdJQ0I5S1Z4dUlDQWdJQ0FnTG5Sb1pXNG9LR05oYm5aaGN5a2dQVDRnZTF4dUlDQWdJQ0FnSUNBdkx5QnBaaUJqYjI1MlpYSjBhVzVuSUhSdklHSnNiMklnWm1GcGJITXNJSFJvWlhKbEozTWdjMjl0WlNCd2NtOWliR1Z0SUhSb1lYUWdkMmxzYkZ4dUlDQWdJQ0FnSUNBdkx5QnNhV3RsYkhrZ2NISmxkbVZ1ZENCd2NtVjJhV1YzSUdGdVpDQmxlSEJ2Y25RZ0tHVXVaeTRnWTJGdWRtRnpJSFJ2YnlCaWFXY3BYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmpZVzUyWVhOVWIwSnNiMklvWTJGdWRtRnpLUzUwYUdWdUtDZ3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaVzVrWlhKUWNtVjJhV1YzS0dOaGJuWmhjeXdnY0hKbGRtbGxkMDV2WkdVcE8xeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDBwWEc0Z0lDQWdJQ0F1WTJGMFkyZ29LR1Z5Y205eUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUdOdmJuTnZiR1V1WlhKeWIzSW9aWEp5YjNJcE8xeHVJQ0FnSUNBZ0lDQnlaVzVrWlhKUWNtVjJhV1YzS0c1bGR5QkRZVzUyWVhORmNuSnZjaWdwTENCd2NtVjJhV1YzVG05a1pTazdYRzRnSUNBZ0lDQjlLVHRjYmlBZ2ZTd2dXMXh1SUNBZ0lHRndjRk4wWVhSbExGeHVJQ0FnSUdacGJHVnpMRnh1SUNBZ0lHVjRjRzl5ZEdWa1JXeGxiV1Z1ZEhNc1hHNGdJQ0FnWlhod2IzSjBRbUZqYTJkeWIzVnVaQ3hjYmlBZ0lDQmxlSEJ2Y25SUVlXUmthVzVuTEZ4dUlDQWdJSFpwWlhkQ1lXTnJaM0p2ZFc1a1EyOXNiM0lzWEc0Z0lGMHBPMXh1WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnUEdScGRpQmpiR0Z6YzA1aGJXVTlYQ0pGZUhCdmNuUkVhV0ZzYjJkY0lqNWNiaUFnSUNBZ0lEeGthWFlnWTJ4aGMzTk9ZVzFsUFZ3aVJYaHdiM0owUkdsaGJHOW5YMTl3Y21WMmFXVjNYQ0lnY21WbVBYdHdjbVYyYVdWM1VtVm1mU0F2UGx4dUlDQWdJQ0FnZTNOMWNIQnZjblJ6UTI5dWRHVjRkRVpwYkhSbGNuTWdKaVpjYmlBZ0lDQWdJQ0FnWVdOMGFXOXVUV0Z1WVdkbGNpNXlaVzVrWlhKQlkzUnBiMjRvWENKbGVIQnZjblJYYVhSb1JHRnlhMDF2WkdWY0lpbDlYRzRnSUNBZ0lDQThaR2wySUhOMGVXeGxQWHQ3SUdScGMzQnNZWGs2SUZ3aVozSnBaRndpTENCbmNtbGtWR1Z0Y0d4aGRHVkRiMngxYlc1ek9pQmNJakZtY2x3aUlIMTlQbHh1SUNBZ0lDQWdJQ0E4WkdsMlhHNGdJQ0FnSUNBZ0lDQWdjM1I1YkdVOWUzdGNiaUFnSUNBZ0lDQWdJQ0FnSUdScGMzQnNZWGs2SUZ3aVozSnBaRndpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdaM0pwWkZSbGJYQnNZWFJsUTI5c2RXMXVjem9nWENKeVpYQmxZWFFvWVhWMGJ5MW1hWFFzSUcxcGJtMWhlQ2d4T1RCd2VDd2dNV1p5S1NsY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHUjFibTV2SUhkb2VTQjBhR2x6SUdseklHNWxaV1JsWkN3Z1luVjBJSGRvWlc0Z2RHaGxJR2wwWlcxeklIZHlZWEFnYVhRZ1kzSmxZWFJsYzF4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnWVc0Z2IzWmxjbVpzYjNkY2JpQWdJQ0FnSUNBZ0lDQWdJRzkyWlhKbWJHOTNPaUJjSW1ocFpHUmxibHdpTEZ4dUlDQWdJQ0FnSUNBZ0lIMTlYRzRnSUNBZ0lDQWdJRDVjYmlBZ0lDQWdJQ0FnSUNCN1lXTjBhVzl1VFdGdVlXZGxjaTV5Wlc1a1pYSkJZM1JwYjI0b1hDSmphR0Z1WjJWRmVIQnZjblJDWVdOclozSnZkVzVrWENJcGZWeHVJQ0FnSUNBZ0lDQWdJSHR6YjIxbFJXeGxiV1Z1ZEVselUyVnNaV04wWldRZ0ppWWdLRnh1SUNBZ0lDQWdJQ0FnSUNBZ1BFTm9aV05yWW05NFNYUmxiVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmphR1ZqYTJWa1BYdGxlSEJ2Y25SVFpXeGxZM1JsWkgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1RGFHRnVaMlU5ZXloamFHVmphMlZrS1NBOVBpQnpaWFJGZUhCdmNuUlRaV3hsWTNSbFpDaGphR1ZqYTJWa0tYMWNiaUFnSUNBZ0lDQWdJQ0FnSUQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZTNRb1hDSnNZV0psYkhNdWIyNXNlVk5sYkdWamRHVmtYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdQQzlEYUdWamEySnZlRWwwWlcwK1hHNGdJQ0FnSUNBZ0lDQWdLWDFjYmlBZ0lDQWdJQ0FnSUNCN1lXTjBhVzl1VFdGdVlXZGxjaTV5Wlc1a1pYSkJZM1JwYjI0b1hDSmphR0Z1WjJWRmVIQnZjblJGYldKbFpGTmpaVzVsWENJcGZWeHVJQ0FnSUNBZ0lDQThMMlJwZGo1Y2JpQWdJQ0FnSUR3dlpHbDJQbHh1SUNBZ0lDQWdQR1JwZGlCemRIbHNaVDE3ZXlCa2FYTndiR0Y1T2lCY0ltWnNaWGhjSWl3Z1lXeHBaMjVKZEdWdGN6b2dYQ0pqWlc1MFpYSmNJaXdnYldGeVoybHVWRzl3T2lCY0lpNDJaVzFjSWlCOWZUNWNiaUFnSUNBZ0lDQWdQRk4wWVdOckxsSnZkeUJuWVhBOWV6SjlQbHh1SUNBZ0lDQWdJQ0FnSUh0aFkzUnBiMjVOWVc1aFoyVnlMbkpsYm1SbGNrRmpkR2x2YmloY0ltTm9ZVzVuWlVWNGNHOXlkRk5qWVd4bFhDSXBmVnh1SUNBZ0lDQWdJQ0E4TDFOMFlXTnJMbEp2ZHo1Y2JpQWdJQ0FnSUNBZ1BIQWdjM1I1YkdVOWUzc2diV0Z5WjJsdVRHVm1kRG9nWENJeFpXMWNJaXdnZFhObGNsTmxiR1ZqZERvZ1hDSnViMjVsWENJZ2ZYMCtVMk5oYkdVOEwzQStYRzRnSUNBZ0lDQThMMlJwZGo1Y2JpQWdJQ0FnSUR4a2FYWmNiaUFnSUNBZ0lDQWdjM1I1YkdVOWUzdGNiaUFnSUNBZ0lDQWdJQ0JrYVhOd2JHRjVPaUJjSW1ac1pYaGNJaXhjYmlBZ0lDQWdJQ0FnSUNCaGJHbG5ia2wwWlcxek9pQmNJbU5sYm5SbGNsd2lMRnh1SUNBZ0lDQWdJQ0FnSUdwMWMzUnBabmxEYjI1MFpXNTBPaUJjSW1ObGJuUmxjbHdpTEZ4dUlDQWdJQ0FnSUNBZ0lHMWhjbWRwYmpvZ1hDSXVObVZ0SURCY0lpeGNiaUFnSUNBZ0lDQWdmWDFjYmlBZ0lDQWdJRDVjYmlBZ0lDQWdJQ0FnZXlGdVlYUnBkbVZHYVd4bFUzbHpkR1Z0VTNWd2NHOXlkR1ZrSUNZbVhHNGdJQ0FnSUNBZ0lDQWdZV04wYVc5dVRXRnVZV2RsY2k1eVpXNWtaWEpCWTNScGIyNG9YQ0pqYUdGdVoyVlFjbTlxWldOMFRtRnRaVndpS1gxY2JpQWdJQ0FnSUR3dlpHbDJQbHh1SUNBZ0lDQWdQRk4wWVdOckxsSnZkeUJuWVhBOWV6SjlJR3AxYzNScFpubERiMjUwWlc1MFBWd2lZMlZ1ZEdWeVhDSWdjM1I1YkdVOWUzc2diV0Z5WjJsdU9pQmNJakpsYlNBd1hDSWdmWDArWEc0Z0lDQWdJQ0FnSUR4RmVIQnZjblJDZFhSMGIyNWNiaUFnSUNBZ0lDQWdJQ0JqYjJ4dmNqMWNJbWx1WkdsbmIxd2lYRzRnSUNBZ0lDQWdJQ0FnZEdsMGJHVTllM1FvWENKaWRYUjBiMjV6TG1WNGNHOXlkRlJ2VUc1blhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUdGeWFXRXRiR0ZpWld3OWUzUW9YQ0ppZFhSMGIyNXpMbVY0Y0c5eWRGUnZVRzVuWENJcGZWeHVJQ0FnSUNBZ0lDQWdJRzl1UTJ4cFkyczlleWdwSUQwK0lHOXVSWGh3YjNKMFZHOVFibWNvWlhod2IzSjBaV1JGYkdWdFpXNTBjeWw5WEc0Z0lDQWdJQ0FnSUQ1Y2JpQWdJQ0FnSUNBZ0lDQlFUa2RjYmlBZ0lDQWdJQ0FnUEM5RmVIQnZjblJDZFhSMGIyNCtYRzRnSUNBZ0lDQWdJRHhGZUhCdmNuUkNkWFIwYjI1Y2JpQWdJQ0FnSUNBZ0lDQmpiMnh2Y2oxY0luSmxaRndpWEc0Z0lDQWdJQ0FnSUNBZ2RHbDBiR1U5ZTNRb1hDSmlkWFIwYjI1ekxtVjRjRzl5ZEZSdlUzWm5YQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lHRnlhV0V0YkdGaVpXdzllM1FvWENKaWRYUjBiMjV6TG1WNGNHOXlkRlJ2VTNablhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUc5dVEyeHBZMnM5ZXlncElEMCtJRzl1Ulhod2IzSjBWRzlUZG1jb1pYaHdiM0owWldSRmJHVnRaVzUwY3lsOVhHNGdJQ0FnSUNBZ0lENWNiaUFnSUNBZ0lDQWdJQ0JUVmtkY2JpQWdJQ0FnSUNBZ1BDOUZlSEJ2Y25SQ2RYUjBiMjQrWEc0Z0lDQWdJQ0FnSUh0d2NtOWlZV0pzZVZOMWNIQnZjblJ6UTJ4cGNHSnZZWEprUW14dllpQW1KaUFvWEc0Z0lDQWdJQ0FnSUNBZ1BFVjRjRzl5ZEVKMWRIUnZibHh1SUNBZ0lDQWdJQ0FnSUNBZ2RHbDBiR1U5ZTNRb1hDSmlkWFIwYjI1ekxtTnZjSGxRYm1kVWIwTnNhWEJpYjJGeVpGd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXVRMnhwWTJzOWV5Z3BJRDArSUc5dVJYaHdiM0owVkc5RGJHbHdZbTloY21Rb1pYaHdiM0owWldSRmJHVnRaVzUwY3lsOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjJ4dmNqMWNJbWR5WVhsY0lseHVJQ0FnSUNBZ0lDQWdJQ0FnYzJoaFpHVTllemQ5WEc0Z0lDQWdJQ0FnSUNBZ1BseHVJQ0FnSUNBZ0lDQWdJQ0FnZTJOc2FYQmliMkZ5WkgxY2JpQWdJQ0FnSUNBZ0lDQThMMFY0Y0c5eWRFSjFkSFJ2Ymo1Y2JpQWdJQ0FnSUNBZ0tYMWNiaUFnSUNBZ0lEd3ZVM1JoWTJzdVVtOTNQbHh1SUNBZ0lEd3ZaR2wyUGx4dUlDQXBPMXh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUVsdFlXZGxSWGh3YjNKMFJHbGhiRzluSUQwZ0tIdGNiaUFnWld4bGJXVnVkSE1zWEc0Z0lHRndjRk4wWVhSbExGeHVJQ0JtYVd4bGN5eGNiaUFnWlhod2IzSjBVR0ZrWkdsdVp5QTlJRVJGUmtGVlRGUmZSVmhRVDFKVVgxQkJSRVJKVGtjc1hHNGdJR0ZqZEdsdmJrMWhibUZuWlhJc1hHNGdJRzl1Ulhod2IzSjBWRzlRYm1jc1hHNGdJRzl1Ulhod2IzSjBWRzlUZG1jc1hHNGdJRzl1Ulhod2IzSjBWRzlEYkdsd1ltOWhjbVFzWEc1OU9pQjdYRzRnSUdGd2NGTjBZWFJsT2lCQmNIQlRkR0YwWlR0Y2JpQWdaV3hsYldWdWRITTZJSEpsWVdSdmJteDVJRTV2YmtSbGJHVjBaV1JGZUdOaGJHbGtjbUYzUld4bGJXVnVkRnRkTzF4dUlDQm1hV3hsY3pvZ1FtbHVZWEo1Um1sc1pYTTdYRzRnSUdWNGNHOXlkRkJoWkdScGJtYy9PaUJ1ZFcxaVpYSTdYRzRnSUdGamRHbHZiazFoYm1GblpYSTZJRUZqZEdsdmJuTk5ZVzVoWjJWeVNXNTBaWEptWVdObE8xeHVJQ0J2YmtWNGNHOXlkRlJ2VUc1bk9pQkZlSEJ2Y25SRFFqdGNiaUFnYjI1RmVIQnZjblJVYjFOMlp6b2dSWGh3YjNKMFEwSTdYRzRnSUc5dVJYaHdiM0owVkc5RGJHbHdZbTloY21RNklFVjRjRzl5ZEVOQ08xeHVmU2tnUFQ0Z2UxeHVJQ0JqYjI1emRDQmJiVzlrWVd4SmMxTm9iM2R1TENCelpYUk5iMlJoYkVselUyaHZkMjVkSUQwZ2RYTmxVM1JoZEdVb1ptRnNjMlVwTzF4dVhHNGdJR052Ym5OMElHaGhibVJzWlVOc2IzTmxJRDBnVW1WaFkzUXVkWE5sUTJGc2JHSmhZMnNvS0NrZ1BUNGdlMXh1SUNBZ0lITmxkRTF2WkdGc1NYTlRhRzkzYmlobVlXeHpaU2s3WEc0Z0lIMHNJRnRkS1R0Y2JseHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lEdytYRzRnSUNBZ0lDQThWRzl2YkVKMWRIUnZibHh1SUNBZ0lDQWdJQ0J2YmtOc2FXTnJQWHNvS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnYzJWMFRXOWtZV3hKYzFOb2IzZHVLSFJ5ZFdVcE8xeHVJQ0FnSUNBZ0lDQjlmVnh1SUNBZ0lDQWdJQ0JrWVhSaExYUmxjM1JwWkQxY0ltbHRZV2RsTFdWNGNHOXlkQzFpZFhSMGIyNWNJbHh1SUNBZ0lDQWdJQ0JwWTI5dVBYdGxlSEJ2Y25SSmJXRm5aWDFjYmlBZ0lDQWdJQ0FnZEhsd1pUMWNJbUoxZEhSdmJsd2lYRzRnSUNBZ0lDQWdJR0Z5YVdFdGJHRmlaV3c5ZTNRb1hDSmlkWFIwYjI1ekxtVjRjRzl5ZEVsdFlXZGxYQ0lwZlZ4dUlDQWdJQ0FnSUNCemFHOTNRWEpwWVV4aFltVnNQWHQxYzJWSmMwMXZZbWxzWlNncGZWeHVJQ0FnSUNBZ0lDQjBhWFJzWlQxN2RDaGNJbUoxZEhSdmJuTXVaWGh3YjNKMFNXMWhaMlZjSWlsOVhHNGdJQ0FnSUNBdlBseHVJQ0FnSUNBZ2UyMXZaR0ZzU1hOVGFHOTNiaUFtSmlBb1hHNGdJQ0FnSUNBZ0lEeEVhV0ZzYjJjZ2IyNURiRzl6WlZKbGNYVmxjM1E5ZTJoaGJtUnNaVU5zYjNObGZTQjBhWFJzWlQxN2RDaGNJbUoxZEhSdmJuTXVaWGh3YjNKMFNXMWhaMlZjSWlsOVBseHVJQ0FnSUNBZ0lDQWdJRHhKYldGblpVVjRjRzl5ZEUxdlpHRnNYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJHVnRaVzUwY3oxN1pXeGxiV1Z1ZEhOOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JoY0hCVGRHRjBaVDE3WVhCd1UzUmhkR1Y5WEc0Z0lDQWdJQ0FnSUNBZ0lDQm1hV3hsY3oxN1ptbHNaWE45WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxlSEJ2Y25SUVlXUmthVzVuUFh0bGVIQnZjblJRWVdSa2FXNW5mVnh1SUNBZ0lDQWdJQ0FnSUNBZ1lXTjBhVzl1VFdGdVlXZGxjajE3WVdOMGFXOXVUV0Z1WVdkbGNuMWNiaUFnSUNBZ0lDQWdJQ0FnSUc5dVJYaHdiM0owVkc5UWJtYzllMjl1Ulhod2IzSjBWRzlRYm1kOVhHNGdJQ0FnSUNBZ0lDQWdJQ0J2YmtWNGNHOXlkRlJ2VTNablBYdHZia1Y0Y0c5eWRGUnZVM1puZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVGZUhCdmNuUlViME5zYVhCaWIyRnlaRDE3YjI1RmVIQnZjblJVYjBOc2FYQmliMkZ5WkgxY2JpQWdJQ0FnSUNBZ0lDQWdJRzl1UTJ4dmMyVlNaWEYxWlhOMFBYdG9ZVzVrYkdWRGJHOXpaWDFjYmlBZ0lDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ0lDQThMMFJwWVd4dlp6NWNiaUFnSUNBZ0lDbDlYRzRnSUNBZ1BDOCtYRzRnSUNrN1hHNTlPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0ltYWdlRXhwb3J0RGlhbG9nLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9Jbml0aWFsaXplQXBwLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvSW5pdGlhbGl6ZUFwcC50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiSW5pdGlhbGl6ZUFwcFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEluaXRpYWxpemVBcHApXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdCAqLyBcXFwicmVhY3RcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0xvYWRpbmdNZXNzYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0xvYWRpbmdNZXNzYWdlICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0xvYWRpbmdNZXNzYWdlLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbnZhciBfX2F3YWl0ZXIgPSAodW5kZWZpbmVkICYmIHVuZGVmaW5lZC5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XFxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXFxcInRocm93XFxcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcXG4gICAgfSk7XFxufTtcXG5cXG5cXG5cXG5cXG5jb25zdCBJbml0aWFsaXplQXBwID0gKHByb3BzKSA9PiB7XFxuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udXNlU3RhdGUpKHRydWUpO1xcbiAgICAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZUVmZmVjdCkoKCkgPT4ge1xcbiAgICAgICAgY29uc3QgdXBkYXRlTGFuZyA9ICgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICAgICAgICAgIHlpZWxkICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uc2V0TGFuZ3VhZ2UpKGN1cnJlbnRMYW5nKTtcXG4gICAgICAgIH0pO1xcbiAgICAgICAgY29uc3QgY3VycmVudExhbmcgPSBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmxhbmd1YWdlcy5maW5kKChsYW5nKSA9PiBsYW5nLmNvZGUgPT09IHByb3BzLmxhbmdDb2RlKSB8fCBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmRlZmF1bHRMYW5nO1xcbiAgICAgICAgdXBkYXRlTGFuZygpO1xcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XFxuICAgIH0sIFtwcm9wcy5sYW5nQ29kZV0pO1xcbiAgICByZXR1cm4gbG9hZGluZyA/ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfTG9hZGluZ01lc3NhZ2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5Mb2FkaW5nTWVzc2FnZSwge30sIHZvaWQgMCkgOiBwcm9wcy5jaGlsZHJlbjtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5SmJtbDBhV0ZzYVhwbFFYQndMblJ6ZUM1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3T3pzN096czdPenM3TzBGQlFXMUVPMEZCUlVRN1FVRkRjMEk3UVVGUGFrVXNUVUZCVFN4aFFVRmhMRWRCUVVjc1EwRkJReXhMUVVGWkxFVkJRVVVzUlVGQlJUdEpRVU0xUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhGUVVGRkxGVkJRVlVzUTBGQlF5eEhRVUZITEN0RFFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRk4wTXNaMFJCUVZNc1EwRkJReXhIUVVGSExFVkJRVVU3VVVGRFlpeE5RVUZOTEZWQlFWVXNSMEZCUnl4SFFVRlRMRVZCUVVVN1dVRkROVUlzVFVGQlRTeHJSRUZCVnl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8xRkJRMnBETEVOQlFVTXNSVUZCUXp0UlFVTkdMRTFCUVUwc1YwRkJWeXhIUVVObUxHbEVRVUZqTEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEV0QlFVc3NTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxEaERRVUZYTEVOQlFVTTdVVUZEZUVVc1ZVRkJWU3hGUVVGRkxFTkJRVU03VVVGRFlpeFZRVUZWTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1NVRkRjRUlzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmNrSXNUMEZCVHl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExIVkVRVUZETERKRVFVRmpMR0ZCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXp0QlFVTjJSQ3hEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUpibWwwYVdGc2FYcGxRWEJ3TG5SemVEOWhaakZtSWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCU1pXRmpkQ3dnZXlCMWMyVkZabVpsWTNRc0lIVnpaVk4wWVhSbElIMGdabkp2YlNCY0luSmxZV04wWENJN1hHNWNibWx0Y0c5eWRDQjdJRXh2WVdScGJtZE5aWE56WVdkbElIMGdabkp2YlNCY0lpNHZURzloWkdsdVowMWxjM05oWjJWY0lqdGNibWx0Y0c5eWRDQjdJR1JsWm1GMWJIUk1ZVzVuTENCTVlXNW5kV0ZuWlN3Z2JHRnVaM1ZoWjJWekxDQnpaWFJNWVc1bmRXRm5aU0I5SUdaeWIyMGdYQ0l1TGk5cE1UaHVYQ0k3WEc1Y2JtbHVkR1Z5Wm1GalpTQlFjbTl3Y3lCN1hHNGdJR3hoYm1kRGIyUmxPaUJNWVc1bmRXRm5aVnRjSW1OdlpHVmNJbDA3WEc0Z0lHTm9hV3hrY21WdU9pQlNaV0ZqZEM1U1pXRmpkRVZzWlcxbGJuUTdYRzU5WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JKYm1sMGFXRnNhWHBsUVhCd0lEMGdLSEJ5YjNCek9pQlFjbTl3Y3lrZ1BUNGdlMXh1SUNCamIyNXpkQ0JiYkc5aFpHbHVaeXdnYzJWMFRHOWhaR2x1WjEwZ1BTQjFjMlZUZEdGMFpTaDBjblZsS1R0Y2JseHVJQ0IxYzJWRlptWmxZM1FvS0NrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUhWd1pHRjBaVXhoYm1jZ1BTQmhjM2x1WXlBb0tTQTlQaUI3WEc0Z0lDQWdJQ0JoZDJGcGRDQnpaWFJNWVc1bmRXRm5aU2hqZFhKeVpXNTBUR0Z1WnlrN1hHNGdJQ0FnZlR0Y2JpQWdJQ0JqYjI1emRDQmpkWEp5Wlc1MFRHRnVaeUE5WEc0Z0lDQWdJQ0JzWVc1bmRXRm5aWE11Wm1sdVpDZ29iR0Z1WnlrZ1BUNGdiR0Z1Wnk1amIyUmxJRDA5UFNCd2NtOXdjeTVzWVc1blEyOWtaU2tnZkh3Z1pHVm1ZWFZzZEV4aGJtYzdYRzRnSUNBZ2RYQmtZWFJsVEdGdVp5Z3BPMXh1SUNBZ0lITmxkRXh2WVdScGJtY29abUZzYzJVcE8xeHVJQ0I5TENCYmNISnZjSE11YkdGdVowTnZaR1ZkS1R0Y2JseHVJQ0J5WlhSMWNtNGdiRzloWkdsdVp5QS9JRHhNYjJGa2FXNW5UV1Z6YzJGblpTQXZQaUE2SUhCeWIzQnpMbU5vYVd4a2NtVnVPMXh1ZlR0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvSW5pdGlhbGl6ZUFwcC50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvSXNsYW5kLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9Jc2xhbmQudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiSXNsYW5kXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gSXNsYW5kKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfSXNsYW5kX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vSXNsYW5kLnNjc3MgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvSXNsYW5kLnNjc3NcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0lzbGFuZF9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX0lzbGFuZF9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIGNsc3ggKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jbHN4L2Rpc3QvY2xzeC5tLmpzXFxcIik7XFxuXFxuXFxuXFxuXFxuY29uc3QgSXNsYW5kID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX19kZWZhdWx0KCkuZm9yd2FyZFJlZigoeyBjaGlsZHJlbiwgcGFkZGluZywgY2xhc3NOYW1lLCBzdHlsZSB9LCByZWYpID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6ICgwLGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1tcXFwiZGVmYXVsdFxcXCJdKShcXFwiSXNsYW5kXFxcIiwgY2xhc3NOYW1lKSwgc3R5bGU6IE9iamVjdC5hc3NpZ24oeyBcXFwiLS1wYWRkaW5nXFxcIjogcGFkZGluZyB9LCBzdHlsZSksIHJlZjogcmVmIH0sIHsgY2hpbGRyZW46IGNoaWxkcmVuIH0pLCB2b2lkIDApKSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlKYzJ4aGJtUXVkSE40TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3TzBGQlFYVkNPMEZCUlVjN1FVRkRSanRCUVZOcVFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4MVJFRkJaMElzUTBGRGNFTXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFVkJRVVVzVTBGQlV5eEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGRGFFUXNPRVZCUTBVc1UwRkJVeXhGUVVGRkxHZEVRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRk5CUVZNc1EwRkJReXhGUVVOd1F5eExRVUZMTEd0Q1FVRkpMRmRCUVZjc1JVRkJSU3hQUVVGUExFbEJRVXNzUzBGQlN5eEhRVU4yUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhuUWtGRlVDeFJRVUZSTEZsQlEwd3NRMEZEVUN4RFFVTkdMRU5CUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlKYzJ4aGJtUXVkSE40UHpVellUSWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJRndpTGk5SmMyeGhibVF1YzJOemMxd2lPMXh1WEc1cGJYQnZjblFnVW1WaFkzUWdabkp2YlNCY0luSmxZV04wWENJN1hHNXBiWEJ2Y25RZ1kyeHplQ0JtY205dElGd2lZMnh6ZUZ3aU8xeHVYRzUwZVhCbElFbHpiR0Z1WkZCeWIzQnpJRDBnZTF4dUlDQmphR2xzWkhKbGJqb2dVbVZoWTNRdVVtVmhZM1JPYjJSbE8xeHVJQ0J3WVdSa2FXNW5Qem9nYm5WdFltVnlPMXh1SUNCamJHRnpjMDVoYldVL09pQnpkSEpwYm1jZ2ZDQmliMjlzWldGdU8xeHVJQ0J6ZEhsc1pUODZJRzlpYW1WamREdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JKYzJ4aGJtUWdQU0JTWldGamRDNW1iM0ozWVhKa1VtVm1QRWhVVFV4RWFYWkZiR1Z0Wlc1MExDQkpjMnhoYm1SUWNtOXdjejRvWEc0Z0lDaDdJR05vYVd4a2NtVnVMQ0J3WVdSa2FXNW5MQ0JqYkdGemMwNWhiV1VzSUhOMGVXeGxJSDBzSUhKbFppa2dQVDRnS0Z4dUlDQWdJRHhrYVhaY2JpQWdJQ0FnSUdOc1lYTnpUbUZ0WlQxN1kyeHplQ2hjSWtsemJHRnVaRndpTENCamJHRnpjMDVoYldVcGZWeHVJQ0FnSUNBZ2MzUjViR1U5ZTNzZ1hDSXRMWEJoWkdScGJtZGNJam9nY0dGa1pHbHVaeXdnTGk0dWMzUjViR1VnZlgxY2JpQWdJQ0FnSUhKbFpqMTdjbVZtZlZ4dUlDQWdJRDVjYmlBZ0lDQWdJSHRqYUdsc1pISmxibjFjYmlBZ0lDQThMMlJwZGo1Y2JpQWdLU3hjYmlrN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvSXNsYW5kLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9KU09ORXhwb3J0RGlhbG9nLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvSlNPTkV4cG9ydERpYWxvZy50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiSlNPTkV4cG9ydERpYWxvZ1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEpTT05FeHBvcnREaWFsb2cpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdCAqLyBcXFwicmVhY3RcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0FwcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9BcHAgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvQXBwLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfRGlhbG9nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0RpYWxvZyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9EaWFsb2cudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9pY29ucyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9pY29ucy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vVG9vbEJ1dHRvbiAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYWN0aW9uc19hY3Rpb25FeHBvcnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2FjdGlvbnMvYWN0aW9uRXhwb3J0ICovIFxcXCIuLi8uLi9hY3Rpb25zL2FjdGlvbkV4cG9ydC50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0NhcmRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vQ2FyZCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9DYXJkLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfRXhwb3J0RGlhbG9nX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vRXhwb3J0RGlhbG9nLnNjc3MgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvRXhwb3J0RGlhbG9nLnNjc3NcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0V4cG9ydERpYWxvZ19zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX0V4cG9ydERpYWxvZ19zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZGF0YV9maWxlc3lzdGVtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZGF0YS9maWxlc3lzdGVtICovIFxcXCIuLi8uLi9kYXRhL2ZpbGVzeXN0ZW0udHNcXFwiKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBKU09ORXhwb3J0TW9kYWwgPSAoeyBlbGVtZW50cywgYXBwU3RhdGUsIGZpbGVzLCBhY3Rpb25NYW5hZ2VyLCBleHBvcnRPcHRzLCBjYW52YXMsIH0pID0+IHtcXG4gICAgY29uc3QgeyBvbkV4cG9ydFRvQmFja2VuZCB9ID0gZXhwb3J0T3B0cztcXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJFeHBvcnREaWFsb2cgRXhwb3J0RGlhbG9nLS1qc29uXFxcIiB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiRXhwb3J0RGlhbG9nLWNhcmRzXFxcIiB9LCB7IGNoaWxkcmVuOiBbZXhwb3J0T3B0cy5zYXZlRmlsZVRvRGlzayAmJiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShfQ2FyZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLkNhcmQsIE9iamVjdC5hc3NpZ24oeyBjb2xvcjogXFxcImxpbWVcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJDYXJkLWljb25cXFwiIH0sIHsgY2hpbGRyZW46IF9pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmV4cG9ydFRvRmlsZUljb24gfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiaDJcXFwiLCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJleHBvcnREaWFsb2cuZGlza190aXRsZVxcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJDYXJkLWRldGFpbHNcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJleHBvcnREaWFsb2cuZGlza19kZXRhaWxzXFxcIiksICFfZGF0YV9maWxlc3lzdGVtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLm5hdGl2ZUZpbGVTeXN0ZW1TdXBwb3J0ZWQgJiZcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcXFwiY2hhbmdlUHJvamVjdE5hbWVcXFwiKV0gfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLlRvb2xCdXR0b24sIHsgY2xhc3NOYW1lOiBcXFwiQ2FyZC1idXR0b25cXFwiLCB0eXBlOiBcXFwiYnV0dG9uXFxcIiwgdGl0bGU6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImV4cG9ydERpYWxvZy5kaXNrX2J1dHRvblxcXCIpLCBcXFwiYXJpYS1sYWJlbFxcXCI6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImV4cG9ydERpYWxvZy5kaXNrX2J1dHRvblxcXCIpLCBzaG93QXJpYUxhYmVsOiB0cnVlLCBvbkNsaWNrOiAoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25NYW5hZ2VyLmV4ZWN1dGVBY3Rpb24oX2FjdGlvbnNfYWN0aW9uRXhwb3J0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uYWN0aW9uU2F2ZUZpbGVUb0Rpc2spO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IH0sIHZvaWQgMCldIH0pLCB2b2lkIDApKSwgb25FeHBvcnRUb0JhY2tlbmQgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoX0NhcmRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5DYXJkLCBPYmplY3QuYXNzaWduKHsgY29sb3I6IFxcXCJwaW5rXFxcIiB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiQ2FyZC1pY29uXFxcIiB9LCB7IGNoaWxkcmVuOiBfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5saW5rIH0pLCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImgyXFxcIiwgeyBjaGlsZHJlbjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiZXhwb3J0RGlhbG9nLmxpbmtfdGl0bGVcXFwiKSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJDYXJkLWRldGFpbHNcXFwiIH0sIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImV4cG9ydERpYWxvZy5saW5rX2RldGFpbHNcXFwiKSB9KSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uVG9vbEJ1dHRvbiwgeyBjbGFzc05hbWU6IFxcXCJDYXJkLWJ1dHRvblxcXCIsIHR5cGU6IFxcXCJidXR0b25cXFwiLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiZXhwb3J0RGlhbG9nLmxpbmtfYnV0dG9uXFxcIiksIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiZXhwb3J0RGlhbG9nLmxpbmtfYnV0dG9uXFxcIiksIHNob3dBcmlhTGFiZWw6IHRydWUsIG9uQ2xpY2s6ICgpID0+IG9uRXhwb3J0VG9CYWNrZW5kKGVsZW1lbnRzLCBhcHBTdGF0ZSwgZmlsZXMsIGNhbnZhcykgfSwgdm9pZCAwKV0gfSksIHZvaWQgMCkpLCBleHBvcnRPcHRzLnJlbmRlckN1c3RvbVVJICYmXFxuICAgICAgICAgICAgICAgICAgICBleHBvcnRPcHRzLnJlbmRlckN1c3RvbVVJKGVsZW1lbnRzLCBhcHBTdGF0ZSwgZmlsZXMsIGNhbnZhcyldIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApKTtcXG59O1xcbmNvbnN0IEpTT05FeHBvcnREaWFsb2cgPSAoeyBlbGVtZW50cywgYXBwU3RhdGUsIGZpbGVzLCBhY3Rpb25NYW5hZ2VyLCBleHBvcnRPcHRzLCBjYW52YXMsIH0pID0+IHtcXG4gICAgY29uc3QgW21vZGFsSXNTaG93biwgc2V0TW9kYWxJc1Nob3duXSA9ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udXNlU3RhdGUpKGZhbHNlKTtcXG4gICAgY29uc3QgaGFuZGxlQ2xvc2UgPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS51c2VDYWxsYmFjaygoKSA9PiB7XFxuICAgICAgICBzZXRNb2RhbElzU2hvd24oZmFsc2UpO1xcbiAgICB9LCBbXSk7XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uVG9vbEJ1dHRvbiwgeyBvbkNsaWNrOiAoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBzZXRNb2RhbElzU2hvd24odHJ1ZSk7XFxuICAgICAgICAgICAgICAgIH0sIFxcXCJkYXRhLXRlc3RpZFxcXCI6IFxcXCJqc29uLWV4cG9ydC1idXR0b25cXFwiLCBpY29uOiBfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5leHBvcnRGaWxlLCB0eXBlOiBcXFwiYnV0dG9uXFxcIiwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJidXR0b25zLmV4cG9ydFxcXCIpLCBzaG93QXJpYUxhYmVsOiAoMCxfQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udXNlSXNNb2JpbGUpKCksIHRpdGxlOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJidXR0b25zLmV4cG9ydFxcXCIpIH0sIHZvaWQgMCksIG1vZGFsSXNTaG93biAmJiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9EaWFsb2dfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5EaWFsb2csIE9iamVjdC5hc3NpZ24oeyBvbkNsb3NlUmVxdWVzdDogaGFuZGxlQ2xvc2UsIHRpdGxlOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJidXR0b25zLmV4cG9ydFxcXCIpIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShKU09ORXhwb3J0TW9kYWwsIHsgZWxlbWVudHM6IGVsZW1lbnRzLCBhcHBTdGF0ZTogYXBwU3RhdGUsIGZpbGVzOiBmaWxlcywgYWN0aW9uTWFuYWdlcjogYWN0aW9uTWFuYWdlciwgb25DbG9zZVJlcXVlc3Q6IGhhbmRsZUNsb3NlLCBleHBvcnRPcHRzOiBleHBvcnRPcHRzLCBjYW52YXM6IGNhbnZhcyB9LCB2b2lkIDApIH0pLCB2b2lkIDApKV0gfSwgdm9pZCAwKSk7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OUtVMDlPUlhod2IzSjBSR2xoYkc5bkxuUnplQzVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3T3pzN096czdRVUZCZDBNN1FVRkhXanRCUVVOUk8wRkJSVVk3UVVGRE1rSTdRVUZEYmtJN1FVRkRjVUk3UVVGRGFrTTdRVUZGUkR0QlFVTnJRenRCUVU4dlJDeE5RVUZOTEdWQlFXVXNSMEZCUnl4RFFVRkRMRVZCUTNaQ0xGRkJRVkVzUlVGRFVpeFJRVUZSTEVWQlExSXNTMEZCU3l4RlFVTk1MR0ZCUVdFc1JVRkRZaXhWUVVGVkxFVkJRMVlzVFVGQlRTeEhRVk5RTEVWQlFVVXNSVUZCUlR0SlFVTklMRTFCUVUwc1JVRkJSU3hwUWtGQmFVSXNSVUZCUlN4SFFVRkhMRlZCUVZVc1EwRkJRenRKUVVONlF5eFBRVUZQTEVOQlEwd3NPRVZCUVVzc1UwRkJVeXhGUVVGRExHbERRVUZwUXl4blFrRkRPVU1zSzBWQlFVc3NVMEZCVXl4RlFVRkRMRzlDUVVGdlFpeHBRa0ZEYUVNc1ZVRkJWU3hEUVVGRExHTkJRV01zU1VGQlNTeERRVU0xUWl4M1JFRkJReXgxUTBGQlNTeHJRa0ZCUXl4TFFVRkxMRVZCUVVNc1RVRkJUU3hwUWtGRGFFSXNPRVZCUVVzc1UwRkJVeXhGUVVGRExGZEJRVmNzWjBKQlFVVXNiMFJCUVdkQ0xGbEJRVThzUlVGRGJrUXNlVVZCUVVzc2QwTkJRVU1zUTBGQlF5eDVRa0ZCZVVJc1EwRkJReXhYUVVGTkxFVkJRM1pETEN0RlFVRkxMRk5CUVZNc1JVRkJReXhqUVVGakxHbENRVU14UWl4M1EwRkJReXhEUVVGRExESkNRVUV5UWl4RFFVRkRMRVZCUXpsQ0xFTkJRVU1zZDBWQlFYbENPMjlEUVVONlFpeGhRVUZoTEVOQlFVTXNXVUZCV1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETEdGQlF6ZERMRVZCUTA0c2RVUkJRVU1zYlVSQlFWVXNTVUZEVkN4VFFVRlRMRVZCUVVNc1lVRkJZU3hGUVVOMlFpeEpRVUZKTEVWQlFVTXNVVUZCVVN4RlFVTmlMRXRCUVVzc1JVRkJSU3gzUTBGQlF5eERRVUZETERCQ1FVRXdRaXhEUVVGRExHZENRVU40UWl4M1EwRkJReXhEUVVGRExEQkNRVUV3UWl4RFFVRkRMRVZCUTNwRExHRkJRV0VzUlVGQlJTeEpRVUZKTEVWQlEyNUNMRTlCUVU4c1JVRkJSU3hIUVVGSExFVkJRVVU3WjBOQlExb3NZVUZCWVN4RFFVRkRMR0ZCUVdFc1EwRkJReXgxUlVGQmIwSXNRMEZCUXl4RFFVRkRPelJDUVVOd1JDeERRVUZETEZkQlEwUXNZVUZEUnl4RFFVTlNMRVZCUTBFc2FVSkJRV2xDTEVsQlFVa3NRMEZEY0VJc2QwUkJRVU1zZFVOQlFVa3NhMEpCUVVNc1MwRkJTeXhGUVVGRExFMUJRVTBzYVVKQlEyaENMRGhGUVVGTExGTkJRVk1zUlVGQlF5eFhRVUZYTEdkQ1FVRkZMSGREUVVGSkxGbEJRVThzUlVGRGRrTXNlVVZCUVVzc2QwTkJRVU1zUTBGQlF5eDVRa0ZCZVVJc1EwRkJReXhYUVVGTkxFVkJRM1pETERoRlFVRkxMRk5CUVZNc1JVRkJReXhqUVVGakxHZENRVUZGTEhkRFFVRkRMRU5CUVVNc01rSkJRVEpDTEVOQlFVTXNXVUZCVHl4RlFVTndSU3gxUkVGQlF5eHRSRUZCVlN4SlFVTlVMRk5CUVZNc1JVRkJReXhoUVVGaExFVkJRM1pDTEVsQlFVa3NSVUZCUXl4UlFVRlJMRVZCUTJJc1MwRkJTeXhGUVVGRkxIZERRVUZETEVOQlFVTXNNRUpCUVRCQ0xFTkJRVU1zWjBKQlEzaENMSGREUVVGRExFTkJRVU1zTUVKQlFUQkNMRU5CUVVNc1JVRkRla01zWVVGQllTeEZRVUZGTEVsQlFVa3NSVUZEYmtJc1QwRkJUeXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVU5hTEdsQ1FVRnBRaXhEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1EwRkJReXhYUVVWMFJDeGhRVU5ITEVOQlExSXNSVUZEUVN4VlFVRlZMRU5CUVVNc1kwRkJZenR2UWtGRGVFSXNWVUZCVlN4RFFVRkRMR05CUVdNc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRU5CUVVNc1lVRkRNVVFzV1VGRFJpeERRVU5RTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMRU5CUVVNc1JVRkRMMElzVVVGQlVTeEZRVU5TTEZGQlFWRXNSVUZEVWl4TFFVRkxMRVZCUTB3c1lVRkJZU3hGUVVOaUxGVkJRVlVzUlVGRFZpeE5RVUZOTEVkQlVWQXNSVUZCUlN4RlFVRkZPMGxCUTBnc1RVRkJUU3hEUVVGRExGbEJRVmtzUlVGQlJTeGxRVUZsTEVOQlFVTXNSMEZCUnl3clEwRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlJYaEVMRTFCUVUwc1YwRkJWeXhIUVVGSExIZEVRVUZwUWl4RFFVRkRMRWRCUVVjc1JVRkJSVHRSUVVONlF5eGxRVUZsTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1NVRkRla0lzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUlZBc1QwRkJUeXhEUVVOTUxEaElRVU5GTEhWRVFVRkRMRzFFUVVGVkxFbEJRMVFzVDBGQlR5eEZRVUZGTEVkQlFVY3NSVUZCUlR0dlFrRkRXaXhsUVVGbExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUTNoQ0xFTkJRVU1zYVVKQlExY3NiMEpCUVc5Q0xFVkJRMmhETEVsQlFVa3NSVUZCUlN3NFEwRkJWU3hGUVVOb1FpeEpRVUZKTEVWQlFVTXNVVUZCVVN4blFrRkRSQ3gzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFVkJReTlDTEdGQlFXRXNSVUZCUlN4cFJFRkJWeXhGUVVGRkxFVkJRelZDTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRmRCUXpGQ0xFVkJRMFFzV1VGQldTeEpRVUZKTEVOQlEyWXNkVVJCUVVNc01rTkJRVTBzYTBKQlFVTXNZMEZCWXl4RlFVRkZMRmRCUVZjc1JVRkJSU3hMUVVGTExFVkJRVVVzZDBOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eG5Ra0ZETjBRc2RVUkJRVU1zWlVGQlpTeEpRVU5rTEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUTJ4Q0xGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlEyeENMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRMW9zWVVGQllTeEZRVUZGTEdGQlFXRXNSVUZETlVJc1kwRkJZeXhGUVVGRkxGZEJRVmNzUlVGRE0wSXNWVUZCVlN4RlFVRkZMRlZCUVZVc1JVRkRkRUlzVFVGQlRTeEZRVUZGTEUxQlFVMHNWMEZEWkN4WlFVTkxMRU5CUTFZc1dVRkRRU3hEUVVOS0xFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5S1UwOU9SWGh3YjNKMFJHbGhiRzluTG5SemVEODFaRGM1SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCU1pXRmpkQ3dnZXlCMWMyVlRkR0YwWlNCOUlHWnliMjBnWENKeVpXRmpkRndpTzF4dWFXMXdiM0owSUhzZ1FXTjBhVzl1YzAxaGJtRm5aWEpKYm5SbGNtWmhZMlVnZlNCbWNtOXRJRndpTGk0dllXTjBhVzl1Y3k5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1RtOXVSR1ZzWlhSbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MElIMGdabkp2YlNCY0lpNHVMMlZzWlcxbGJuUXZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdJSFFnZlNCbWNtOXRJRndpTGk0dmFURTRibHdpTzF4dWFXMXdiM0owSUhzZ2RYTmxTWE5OYjJKcGJHVWdmU0JtY205dElGd2lMaTlCY0hCY0lqdGNibWx0Y0c5eWRDQjdJRUZ3Y0ZOMFlYUmxMQ0JGZUhCdmNuUlBjSFJ6TENCQ2FXNWhjbmxHYVd4bGN5QjlJR1p5YjIwZ1hDSXVMaTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnUkdsaGJHOW5JSDBnWm5KdmJTQmNJaTR2UkdsaGJHOW5YQ0k3WEc1cGJYQnZjblFnZXlCbGVIQnZjblJHYVd4bExDQmxlSEJ2Y25SVWIwWnBiR1ZKWTI5dUxDQnNhVzVySUgwZ1puSnZiU0JjSWk0dmFXTnZibk5jSWp0Y2JtbHRjRzl5ZENCN0lGUnZiMnhDZFhSMGIyNGdmU0JtY205dElGd2lMaTlVYjI5c1FuVjBkRzl1WENJN1hHNXBiWEJ2Y25RZ2V5QmhZM1JwYjI1VFlYWmxSbWxzWlZSdlJHbHpheUI5SUdaeWIyMGdYQ0l1TGk5aFkzUnBiMjV6TDJGamRHbHZia1Y0Y0c5eWRGd2lPMXh1YVcxd2IzSjBJSHNnUTJGeVpDQjlJR1p5YjIwZ1hDSXVMME5oY21SY0lqdGNibHh1YVcxd2IzSjBJRndpTGk5RmVIQnZjblJFYVdGc2IyY3VjMk56YzF3aU8xeHVhVzF3YjNKMElIc2dibUYwYVhabFJtbHNaVk41YzNSbGJWTjFjSEJ2Y25SbFpDQjlJR1p5YjIwZ1hDSXVMaTlrWVhSaEwyWnBiR1Z6ZVhOMFpXMWNJanRjYmx4dVpYaHdiM0owSUhSNWNHVWdSWGh3YjNKMFEwSWdQU0FvWEc0Z0lHVnNaVzFsYm5Sek9pQnlaV0ZrYjI1c2VTQk9iMjVFWld4bGRHVmtSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYU3hjYmlBZ2MyTmhiR1UvT2lCdWRXMWlaWElzWEc0cElEMCtJSFp2YVdRN1hHNWNibU52Ym5OMElFcFRUMDVGZUhCdmNuUk5iMlJoYkNBOUlDaDdYRzRnSUdWc1pXMWxiblJ6TEZ4dUlDQmhjSEJUZEdGMFpTeGNiaUFnWm1sc1pYTXNYRzRnSUdGamRHbHZiazFoYm1GblpYSXNYRzRnSUdWNGNHOXlkRTl3ZEhNc1hHNGdJR05oYm5aaGN5eGNibjA2SUh0Y2JpQWdZWEJ3VTNSaGRHVTZJRUZ3Y0ZOMFlYUmxPMXh1SUNCbWFXeGxjem9nUW1sdVlYSjVSbWxzWlhNN1hHNGdJR1ZzWlcxbGJuUnpPaUJ5WldGa2IyNXNlU0JPYjI1RVpXeGxkR1ZrUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFR0Y2JpQWdZV04wYVc5dVRXRnVZV2RsY2pvZ1FXTjBhVzl1YzAxaGJtRm5aWEpKYm5SbGNtWmhZMlU3WEc0Z0lHOXVRMnh2YzJWU1pYRjFaWE4wT2lBb0tTQTlQaUIyYjJsa08xeHVJQ0JsZUhCdmNuUlBjSFJ6T2lCRmVIQnZjblJQY0hSek8xeHVJQ0JqWVc1MllYTTZJRWhVVFV4RFlXNTJZWE5GYkdWdFpXNTBJSHdnYm5Wc2JEdGNibjBwSUQwK0lIdGNiaUFnWTI5dWMzUWdleUJ2YmtWNGNHOXlkRlJ2UW1GamEyVnVaQ0I5SUQwZ1pYaHdiM0owVDNCMGN6dGNiaUFnY21WMGRYSnVJQ2hjYmlBZ0lDQThaR2wySUdOc1lYTnpUbUZ0WlQxY0lrVjRjRzl5ZEVScFlXeHZaeUJGZUhCdmNuUkVhV0ZzYjJjdExXcHpiMjVjSWo1Y2JpQWdJQ0FnSUR4a2FYWWdZMnhoYzNOT1lXMWxQVndpUlhod2IzSjBSR2xoYkc5bkxXTmhjbVJ6WENJK1hHNGdJQ0FnSUNBZ0lIdGxlSEJ2Y25SUGNIUnpMbk5oZG1WR2FXeGxWRzlFYVhOcklDWW1JQ2hjYmlBZ0lDQWdJQ0FnSUNBOFEyRnlaQ0JqYjJ4dmNqMWNJbXhwYldWY0lqNWNiaUFnSUNBZ0lDQWdJQ0FnSUR4a2FYWWdZMnhoYzNOT1lXMWxQVndpUTJGeVpDMXBZMjl1WENJK2UyVjRjRzl5ZEZSdlJtbHNaVWxqYjI1OVBDOWthWFkrWEc0Z0lDQWdJQ0FnSUNBZ0lDQThhREkrZTNRb1hDSmxlSEJ2Y25SRWFXRnNiMmN1WkdsemExOTBhWFJzWlZ3aUtYMDhMMmd5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQR1JwZGlCamJHRnpjMDVoYldVOVhDSkRZWEprTFdSbGRHRnBiSE5jSWo1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZTNRb1hDSmxlSEJ2Y25SRWFXRnNiMmN1WkdsemExOWtaWFJoYVd4elhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjdJVzVoZEdsMlpVWnBiR1ZUZVhOMFpXMVRkWEJ3YjNKMFpXUWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JoWTNScGIyNU5ZVzVoWjJWeUxuSmxibVJsY2tGamRHbHZiaWhjSW1Ob1lXNW5aVkJ5YjJwbFkzUk9ZVzFsWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnUEM5a2FYWStYRzRnSUNBZ0lDQWdJQ0FnSUNBOFZHOXZiRUoxZEhSdmJseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamJHRnpjMDVoYldVOVhDSkRZWEprTFdKMWRIUnZibHdpWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFI1Y0dVOVhDSmlkWFIwYjI1Y0lseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFYUnNaVDE3ZENoY0ltVjRjRzl5ZEVScFlXeHZaeTVrYVhOclgySjFkSFJ2Ymx3aUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1lYSnBZUzFzWVdKbGJEMTdkQ2hjSW1WNGNHOXlkRVJwWVd4dlp5NWthWE5yWDJKMWRIUnZibHdpS1gxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJodmQwRnlhV0ZNWVdKbGJEMTdkSEoxWlgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1RGJHbGphejE3S0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0ZqZEdsdmJrMWhibUZuWlhJdVpYaGxZM1YwWlVGamRHbHZiaWhoWTNScGIyNVRZWFpsUm1sc1pWUnZSR2x6YXlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgxOVhHNGdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lEd3ZRMkZ5WkQ1Y2JpQWdJQ0FnSUNBZ0tYMWNiaUFnSUNBZ0lDQWdlMjl1Ulhod2IzSjBWRzlDWVdOclpXNWtJQ1ltSUNoY2JpQWdJQ0FnSUNBZ0lDQThRMkZ5WkNCamIyeHZjajFjSW5CcGJtdGNJajVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeGthWFlnWTJ4aGMzTk9ZVzFsUFZ3aVEyRnlaQzFwWTI5dVhDSStlMnhwYm10OVBDOWthWFkrWEc0Z0lDQWdJQ0FnSUNBZ0lDQThhREkrZTNRb1hDSmxlSEJ2Y25SRWFXRnNiMmN1YkdsdWExOTBhWFJzWlZ3aUtYMDhMMmd5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQR1JwZGlCamJHRnpjMDVoYldVOVhDSkRZWEprTFdSbGRHRnBiSE5jSWo1N2RDaGNJbVY0Y0c5eWRFUnBZV3h2Wnk1c2FXNXJYMlJsZEdGcGJITmNJaWw5UEM5a2FYWStYRzRnSUNBZ0lDQWdJQ0FnSUNBOFZHOXZiRUoxZEhSdmJseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamJHRnpjMDVoYldVOVhDSkRZWEprTFdKMWRIUnZibHdpWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFI1Y0dVOVhDSmlkWFIwYjI1Y0lseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFYUnNaVDE3ZENoY0ltVjRjRzl5ZEVScFlXeHZaeTVzYVc1clgySjFkSFJ2Ymx3aUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1lYSnBZUzFzWVdKbGJEMTdkQ2hjSW1WNGNHOXlkRVJwWVd4dlp5NXNhVzVyWDJKMWRIUnZibHdpS1gxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJodmQwRnlhV0ZNWVdKbGJEMTdkSEoxWlgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1RGJHbGphejE3S0NrZ1BUNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia1Y0Y0c5eWRGUnZRbUZqYTJWdVpDaGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXNJR1pwYkdWekxDQmpZVzUyWVhNcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQzgrWEc0Z0lDQWdJQ0FnSUNBZ1BDOURZWEprUGx4dUlDQWdJQ0FnSUNBcGZWeHVJQ0FnSUNBZ0lDQjdaWGh3YjNKMFQzQjBjeTV5Wlc1a1pYSkRkWE4wYjIxVlNTQW1KbHh1SUNBZ0lDQWdJQ0FnSUdWNGNHOXlkRTl3ZEhNdWNtVnVaR1Z5UTNWemRHOXRWVWtvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCbWFXeGxjeXdnWTJGdWRtRnpLWDFjYmlBZ0lDQWdJRHd2WkdsMlBseHVJQ0FnSUR3dlpHbDJQbHh1SUNBcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRXBUVDA1RmVIQnZjblJFYVdGc2IyY2dQU0FvZTF4dUlDQmxiR1Z0Wlc1MGN5eGNiaUFnWVhCd1UzUmhkR1VzWEc0Z0lHWnBiR1Z6TEZ4dUlDQmhZM1JwYjI1TllXNWhaMlZ5TEZ4dUlDQmxlSEJ2Y25SUGNIUnpMRnh1SUNCallXNTJZWE1zWEc1OU9pQjdYRzRnSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCT2IyNUVaV3hsZEdWa1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhUdGNiaUFnWVhCd1UzUmhkR1U2SUVGd2NGTjBZWFJsTzF4dUlDQm1hV3hsY3pvZ1FtbHVZWEo1Um1sc1pYTTdYRzRnSUdGamRHbHZiazFoYm1GblpYSTZJRUZqZEdsdmJuTk5ZVzVoWjJWeVNXNTBaWEptWVdObE8xeHVJQ0JsZUhCdmNuUlBjSFJ6T2lCRmVIQnZjblJQY0hSek8xeHVJQ0JqWVc1MllYTTZJRWhVVFV4RFlXNTJZWE5GYkdWdFpXNTBJSHdnYm5Wc2JEdGNibjBwSUQwK0lIdGNiaUFnWTI5dWMzUWdXMjF2WkdGc1NYTlRhRzkzYml3Z2MyVjBUVzlrWVd4SmMxTm9iM2R1WFNBOUlIVnpaVk4wWVhSbEtHWmhiSE5sS1R0Y2JseHVJQ0JqYjI1emRDQm9ZVzVrYkdWRGJHOXpaU0E5SUZKbFlXTjBMblZ6WlVOaGJHeGlZV05yS0NncElEMCtJSHRjYmlBZ0lDQnpaWFJOYjJSaGJFbHpVMmh2ZDI0b1ptRnNjMlVwTzF4dUlDQjlMQ0JiWFNrN1hHNWNiaUFnY21WMGRYSnVJQ2hjYmlBZ0lDQThQbHh1SUNBZ0lDQWdQRlJ2YjJ4Q2RYUjBiMjVjYmlBZ0lDQWdJQ0FnYjI1RGJHbGphejE3S0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUhObGRFMXZaR0ZzU1hOVGFHOTNiaWgwY25WbEtUdGNiaUFnSUNBZ0lDQWdmWDFjYmlBZ0lDQWdJQ0FnWkdGMFlTMTBaWE4wYVdROVhDSnFjMjl1TFdWNGNHOXlkQzFpZFhSMGIyNWNJbHh1SUNBZ0lDQWdJQ0JwWTI5dVBYdGxlSEJ2Y25SR2FXeGxmVnh1SUNBZ0lDQWdJQ0IwZVhCbFBWd2lZblYwZEc5dVhDSmNiaUFnSUNBZ0lDQWdZWEpwWVMxc1lXSmxiRDE3ZENoY0ltSjFkSFJ2Ym5NdVpYaHdiM0owWENJcGZWeHVJQ0FnSUNBZ0lDQnphRzkzUVhKcFlVeGhZbVZzUFh0MWMyVkpjMDF2WW1sc1pTZ3BmVnh1SUNBZ0lDQWdJQ0IwYVhSc1pUMTdkQ2hjSW1KMWRIUnZibk11Wlhod2IzSjBYQ0lwZlZ4dUlDQWdJQ0FnTHo1Y2JpQWdJQ0FnSUh0dGIyUmhiRWx6VTJodmQyNGdKaVlnS0Z4dUlDQWdJQ0FnSUNBOFJHbGhiRzluSUc5dVEyeHZjMlZTWlhGMVpYTjBQWHRvWVc1a2JHVkRiRzl6WlgwZ2RHbDBiR1U5ZTNRb1hDSmlkWFIwYjI1ekxtVjRjRzl5ZEZ3aUtYMCtYRzRnSUNBZ0lDQWdJQ0FnUEVwVFQwNUZlSEJ2Y25STmIyUmhiRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEhNOWUyVnNaVzFsYm5SemZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWVhCd1UzUmhkR1U5ZTJGd2NGTjBZWFJsZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdabWxzWlhNOWUyWnBiR1Z6ZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdZV04wYVc5dVRXRnVZV2RsY2oxN1lXTjBhVzl1VFdGdVlXZGxjbjFjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXVRMnh2YzJWU1pYRjFaWE4wUFh0b1lXNWtiR1ZEYkc5elpYMWNiaUFnSUNBZ0lDQWdJQ0FnSUdWNGNHOXlkRTl3ZEhNOWUyVjRjRzl5ZEU5d2RITjlYRzRnSUNBZ0lDQWdJQ0FnSUNCallXNTJZWE05ZTJOaGJuWmhjMzFjYmlBZ0lDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ0lDQThMMFJwWVd4dlp6NWNiaUFnSUNBZ0lDbDlYRzRnSUNBZ1BDOCtYRzRnSUNrN1hHNTlPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0pTT05FeHBvcnREaWFsb2cudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0xheWVyVUkudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9MYXllclVJLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkZWZhdWx0XFxcIjogKCkgPT4gKF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBjbHN4ICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY2xzeC9kaXN0L2Nsc3gubS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbnN0YW50cyAqLyBcXFwiLi4vLi4vY29uc3RhbnRzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9kYXRhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9kYXRhICovIFxcXCIuLi8uLi9kYXRhL2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pMThuICovIFxcXCIuLi8uLi9pMThuLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX0FwcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29tcG9uZW50cy9BcHAgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvQXBwLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lICovIFxcXCIuLi8uLi9zY2VuZS9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfQWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vQWN0aW9ucyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9BY3Rpb25zLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfQmFja2dyb3VuZFBpY2tlckFuZERhcmtNb2RlVG9nZ2xlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9CYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGUgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvQmFja2dyb3VuZFBpY2tlckFuZERhcmtNb2RlVG9nZ2xlLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfQ29sbGFiQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Db2xsYWJCdXR0b24gKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvQ29sbGFiQnV0dG9uLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfRXJyb3JEaWFsb2dfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0Vycm9yRGlhbG9nICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0Vycm9yRGlhbG9nLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfSW1hZ2VFeHBvcnREaWFsb2dfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0ltYWdlRXhwb3J0RGlhbG9nICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0ltYWdlRXhwb3J0RGlhbG9nLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfRml4ZWRTaWRlQ29udGFpbmVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9GaXhlZFNpZGVDb250YWluZXIgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvRml4ZWRTaWRlQ29udGFpbmVyLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfSGludFZpZXdlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vSGludFZpZXdlciAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9IaW50Vmlld2VyLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfSXNsYW5kX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Jc2xhbmQgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvSXNsYW5kLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfTG9hZGluZ01lc3NhZ2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE4X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0xvYWRpbmdNZXNzYWdlICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0xvYWRpbmdNZXNzYWdlLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfTG9ja0J1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vTG9ja0J1dHRvbiAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Mb2NrQnV0dG9uLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfTW9iaWxlTWVudV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vTW9iaWxlTWVudSAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Nb2JpbGVNZW51LnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfUGFzdGVDaGFydERpYWxvZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vUGFzdGVDaGFydERpYWxvZyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9QYXN0ZUNoYXJ0RGlhbG9nLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfU2VjdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vU2VjdGlvbiAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9TZWN0aW9uLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfSGVscERpYWxvZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vSGVscERpYWxvZyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9IZWxwRGlhbG9nLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfU3RhY2tfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI0X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1N0YWNrICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1N0YWNrLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVG9vbHRpcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vVG9vbHRpcCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Ub29sdGlwLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVXNlckxpc3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI2X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1VzZXJMaXN0ICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1VzZXJMaXN0LnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfSlNPTkV4cG9ydERpYWxvZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vSlNPTkV4cG9ydERpYWxvZyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9KU09ORXhwb3J0RGlhbG9nLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfTGlicmFyeUJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vTGlicmFyeUJ1dHRvbiAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5QnV0dG9uLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZGF0YV9ibG9iX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yOV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZGF0YS9ibG9iICovIFxcXCIuLi8uLi9kYXRhL2Jsb2IudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0xpYnJhcnlNZW51X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9MaWJyYXJ5TWVudSAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5TWVudS50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0xheWVyVUlfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vTGF5ZXJVSS5zY3NzICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0xheWVyVUkuc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfTGF5ZXJVSV9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9MYXllclVJX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzMxX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVG9vbGJhcl9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Ub29sYmFyLnNjc3MgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVG9vbGJhci5zY3NzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Ub29sYmFyX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzMyX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX1Rvb2xiYXJfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzJfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9QZW5Nb2RlQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9QZW5Nb2RlQnV0dG9uICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1Blbk1vZGVCdXR0b24udHN4XFxcIik7XFxudmFyIF9fYXdhaXRlciA9ICh1bmRlZmluZWQgJiYgdW5kZWZpbmVkLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XFxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XFxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcXFwidGhyb3dcXFwiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XFxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xcbiAgICB9KTtcXG59O1xcbnZhciBfX3Jlc3QgPSAodW5kZWZpbmVkICYmIHVuZGVmaW5lZC5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XFxuICAgIHZhciB0ID0ge307XFxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxcbiAgICAgICAgdFtwXSA9IHNbcF07XFxuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFxcXCJmdW5jdGlvblxcXCIpXFxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcXG4gICAgICAgIH1cXG4gICAgcmV0dXJuIHQ7XFxufTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBMYXllclVJID0gKHsgYWN0aW9uTWFuYWdlciwgYXBwU3RhdGUsIGZpbGVzLCBzZXRBcHBTdGF0ZSwgY2FudmFzLCBlbGVtZW50cywgb25Db2xsYWJCdXR0b25DbGljaywgb25Mb2NrVG9nZ2xlLCBvblBlbk1vZGVUb2dnbGUsIG9uSW5zZXJ0RWxlbWVudHMsIHplbk1vZGVFbmFibGVkLCBzaG93RXhpdFplbk1vZGVCdG4sIHNob3dUaGVtZUJ0biwgdG9nZ2xlWmVuTW9kZSwgaXNDb2xsYWJvcmF0aW5nLCByZW5kZXJUb3BSaWdodFVJLCByZW5kZXJDdXN0b21Gb290ZXIsIHZpZXdNb2RlRW5hYmxlZCwgbGlicmFyeVJldHVyblVybCwgVUlPcHRpb25zLCBmb2N1c0NvbnRhaW5lciwgbGlicmFyeSwgaWQsIG9uSW1hZ2VBY3Rpb24sIH0pID0+IHtcXG4gICAgY29uc3QgaXNNb2JpbGUgPSAoMCxfY29tcG9uZW50c19BcHBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy51c2VJc01vYmlsZSkoKTtcXG4gICAgY29uc3QgcmVuZGVySlNPTkV4cG9ydERpYWxvZyA9ICgpID0+IHtcXG4gICAgICAgIGlmICghVUlPcHRpb25zLmNhbnZhc0FjdGlvbnMuZXhwb3J0KSB7XFxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfSlNPTkV4cG9ydERpYWxvZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjdfXy5KU09ORXhwb3J0RGlhbG9nLCB7IGVsZW1lbnRzOiBlbGVtZW50cywgYXBwU3RhdGU6IGFwcFN0YXRlLCBmaWxlczogZmlsZXMsIGFjdGlvbk1hbmFnZXI6IGFjdGlvbk1hbmFnZXIsIGV4cG9ydE9wdHM6IFVJT3B0aW9ucy5jYW52YXNBY3Rpb25zLmV4cG9ydCwgY2FudmFzOiBjYW52YXMgfSwgdm9pZCAwKSk7XFxuICAgIH07XFxuICAgIGNvbnN0IHJlbmRlckltYWdlRXhwb3J0RGlhbG9nID0gKCkgPT4ge1xcbiAgICAgICAgaWYgKCFVSU9wdGlvbnMuY2FudmFzQWN0aW9ucy5zYXZlQXNJbWFnZSkge1xcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3QgY3JlYXRlRXhwb3J0ZXIgPSAodHlwZSkgPT4gKGV4cG9ydGVkRWxlbWVudHMpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICAgICAgICAgIGNvbnN0IGZpbGVIYW5kbGUgPSB5aWVsZCAoMCxfZGF0YV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmV4cG9ydENhbnZhcykodHlwZSwgZXhwb3J0ZWRFbGVtZW50cywgYXBwU3RhdGUsIGZpbGVzLCB7XFxuICAgICAgICAgICAgICAgIGV4cG9ydEJhY2tncm91bmQ6IGFwcFN0YXRlLmV4cG9ydEJhY2tncm91bmQsXFxuICAgICAgICAgICAgICAgIG5hbWU6IGFwcFN0YXRlLm5hbWUsXFxuICAgICAgICAgICAgICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IGFwcFN0YXRlLnZpZXdCYWNrZ3JvdW5kQ29sb3IsXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgLmNhdGNoKF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLm11dGVGU0Fib3J0RXJyb3IpXFxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XFxuICAgICAgICAgICAgICAgIHNldEFwcFN0YXRlKHsgZXJyb3JNZXNzYWdlOiBlcnJvci5tZXNzYWdlIH0pO1xcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIGlmIChhcHBTdGF0ZS5leHBvcnRFbWJlZFNjZW5lICYmXFxuICAgICAgICAgICAgICAgIGZpbGVIYW5kbGUgJiZcXG4gICAgICAgICAgICAgICAgKDAsX2RhdGFfYmxvYl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjlfXy5pc0ltYWdlRmlsZUhhbmRsZSkoZmlsZUhhbmRsZSkpIHtcXG4gICAgICAgICAgICAgICAgc2V0QXBwU3RhdGUoeyBmaWxlSGFuZGxlIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcbiAgICAgICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX0ltYWdlRXhwb3J0RGlhbG9nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLkltYWdlRXhwb3J0RGlhbG9nLCB7IGVsZW1lbnRzOiBlbGVtZW50cywgYXBwU3RhdGU6IGFwcFN0YXRlLCBmaWxlczogZmlsZXMsIGFjdGlvbk1hbmFnZXI6IGFjdGlvbk1hbmFnZXIsIG9uRXhwb3J0VG9Qbmc6IGNyZWF0ZUV4cG9ydGVyKFxcXCJwbmdcXFwiKSwgb25FeHBvcnRUb1N2ZzogY3JlYXRlRXhwb3J0ZXIoXFxcInN2Z1xcXCIpLCBvbkV4cG9ydFRvQ2xpcGJvYXJkOiBjcmVhdGVFeHBvcnRlcihcXFwiY2xpcGJvYXJkXFxcIikgfSwgdm9pZCAwKSk7XFxuICAgIH07XFxuICAgIGNvbnN0IFNlcGFyYXRvciA9ICgpID0+IHtcXG4gICAgICAgIHJldHVybiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIHsgc3R5bGU6IHsgd2lkdGg6IFxcXCIuNjI1ZW1cXFwiIH0gfSwgdm9pZCAwKTtcXG4gICAgfTtcXG4gICAgY29uc3QgcmVuZGVyVmlld01vZGVDYW52YXNBY3Rpb25zID0gKCkgPT4ge1xcbiAgICAgICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX1NlY3Rpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIyX18uU2VjdGlvbiwgT2JqZWN0LmFzc2lnbih7IGhlYWRpbmc6IFxcXCJjYW52YXNBY3Rpb25zXFxcIiwgY2xhc3NOYW1lOiAoMCxjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bXFxcImRlZmF1bHRcXFwiXSkoXFxcInplbi1tb2RlLXRyYW5zaXRpb25cXFwiLCB7XFxuICAgICAgICAgICAgICAgIFxcXCJ0cmFuc2l0aW9uLWxlZnRcXFwiOiB6ZW5Nb2RlRW5hYmxlZCxcXG4gICAgICAgICAgICB9KSB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX0lzbGFuZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5Jc2xhbmQsIE9iamVjdC5hc3NpZ24oeyBwYWRkaW5nOiAyLCBzdHlsZTogeyB6SW5kZXg6IDEgfSB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX1N0YWNrX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNF9fW1xcXCJkZWZhdWx0XFxcIl0uQ29sLCBPYmplY3QuYXNzaWduKHsgZ2FwOiA0IH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoX1N0YWNrX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNF9fW1xcXCJkZWZhdWx0XFxcIl0uUm93LCBPYmplY3QuYXNzaWduKHsgZ2FwOiAxLCBqdXN0aWZ5Q29udGVudDogXFxcInNwYWNlLWJldHdlZW5cXFwiIH0sIHsgY2hpbGRyZW46IFtyZW5kZXJKU09ORXhwb3J0RGlhbG9nKCksIHJlbmRlckltYWdlRXhwb3J0RGlhbG9nKCldIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApKTtcXG4gICAgfTtcXG4gICAgY29uc3QgcmVuZGVyQ2FudmFzQWN0aW9ucyA9ICgpID0+ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX1NlY3Rpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIyX18uU2VjdGlvbiwgT2JqZWN0LmFzc2lnbih7IGhlYWRpbmc6IFxcXCJjYW52YXNBY3Rpb25zXFxcIiwgY2xhc3NOYW1lOiAoMCxjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bXFxcImRlZmF1bHRcXFwiXSkoXFxcInplbi1tb2RlLXRyYW5zaXRpb25cXFwiLCB7XFxuICAgICAgICAgICAgXFxcInRyYW5zaXRpb24tbGVmdFxcXCI6IHplbk1vZGVFbmFibGVkLFxcbiAgICAgICAgfSkgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9Jc2xhbmRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE3X18uSXNsYW5kLCBPYmplY3QuYXNzaWduKHsgcGFkZGluZzogMiwgc3R5bGU6IHsgekluZGV4OiAxIH0gfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShfU3RhY2tfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI0X19bXFxcImRlZmF1bHRcXFwiXS5Db2wsIE9iamVjdC5hc3NpZ24oeyBnYXA6IDQgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoX1N0YWNrX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNF9fW1xcXCJkZWZhdWx0XFxcIl0uUm93LCBPYmplY3QuYXNzaWduKHsgZ2FwOiAxLCBqdXN0aWZ5Q29udGVudDogXFxcInNwYWNlLWJldHdlZW5cXFwiIH0sIHsgY2hpbGRyZW46IFthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcXFwiY2xlYXJDYW52YXNcXFwiKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFNlcGFyYXRvciwge30sIHZvaWQgMCksIGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFxcXCJsb2FkU2NlbmVcXFwiKSwgcmVuZGVySlNPTkV4cG9ydERpYWxvZygpLCByZW5kZXJJbWFnZUV4cG9ydERpYWxvZygpLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoU2VwYXJhdG9yLCB7fSwgdm9pZCAwKSwgb25Db2xsYWJCdXR0b25DbGljayAmJiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9Db2xsYWJCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX19bXFxcImRlZmF1bHRcXFwiXSwgeyBpc0NvbGxhYm9yYXRpbmc6IGlzQ29sbGFib3JhdGluZywgY29sbGFib3JhdG9yQ291bnQ6IGFwcFN0YXRlLmNvbGxhYm9yYXRvcnMuc2l6ZSwgb25DbGljazogb25Db2xsYWJCdXR0b25DbGljayB9LCB2b2lkIDApKV0gfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfQmFja2dyb3VuZFBpY2tlckFuZERhcmtNb2RlVG9nZ2xlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkJhY2tncm91bmRQaWNrZXJBbmREYXJrTW9kZVRvZ2dsZSwgeyBhY3Rpb25NYW5hZ2VyOiBhY3Rpb25NYW5hZ2VyLCBhcHBTdGF0ZTogYXBwU3RhdGUsIHNldEFwcFN0YXRlOiBzZXRBcHBTdGF0ZSwgc2hvd1RoZW1lQnRuOiBzaG93VGhlbWVCdG4gfSwgdm9pZCAwKSwgYXBwU3RhdGUuZmlsZUhhbmRsZSAmJiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFxcXCJzYXZlVG9BY3RpdmVGaWxlXFxcIikgfSwgdm9pZCAwKSldIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApKTtcXG4gICAgY29uc3QgcmVuZGVyU2VsZWN0ZWRTaGFwZUFjdGlvbnMgPSAoKSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9TZWN0aW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMl9fLlNlY3Rpb24sIE9iamVjdC5hc3NpZ24oeyBoZWFkaW5nOiBcXFwic2VsZWN0ZWRTaGFwZUFjdGlvbnNcXFwiLCBjbGFzc05hbWU6ICgwLGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1tcXFwiZGVmYXVsdFxcXCJdKShcXFwiemVuLW1vZGUtdHJhbnNpdGlvblxcXCIsIHtcXG4gICAgICAgICAgICBcXFwidHJhbnNpdGlvbi1sZWZ0XFxcIjogemVuTW9kZUVuYWJsZWQsXFxuICAgICAgICB9KSB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX0lzbGFuZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5Jc2xhbmQsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5DTEFTU0VTLlNIQVBFX0FDVElPTlNfTUVOVSwgcGFkZGluZzogMiwgc3R5bGU6IHtcXG4gICAgICAgICAgICAgICAgLy8gd2Ugd2FudCB0byBtYWtlIHN1cmUgdGhpcyBkb2Vzbid0IG92ZXJmbG93IHNvIHN1YnN0cmFjdGluZyAyMDBcXG4gICAgICAgICAgICAgICAgLy8gd2hpY2ggaXMgYXBwcm94aW1hdGVseSBoZWlnaHQgb2Ygem9vbSBmb290ZXIgYW5kIHRvcCBsZWZ0IG1lbnUgaXRlbXMgd2l0aCBzb21lIGJ1ZmZlclxcbiAgICAgICAgICAgICAgICAvLyBpZiBhY3RpdmUgZmlsZSBuYW1lIGlzIGRpc3BsYXllZCwgc3VidHJhY3RpbmcgMjQ4IHRvIGFjY291bnQgZm9yIGl0cyBoZWlnaHRcXG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiBgJHthcHBTdGF0ZS5oZWlnaHQgLSAoYXBwU3RhdGUuZmlsZUhhbmRsZSA/IDI0OCA6IDIwMCl9cHhgLFxcbiAgICAgICAgICAgIH0gfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9BY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLlNlbGVjdGVkU2hhcGVBY3Rpb25zLCB7IGFwcFN0YXRlOiBhcHBTdGF0ZSwgZWxlbWVudHM6IGVsZW1lbnRzLCByZW5kZXJBY3Rpb246IGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uLCBlbGVtZW50VHlwZTogYXBwU3RhdGUuZWxlbWVudFR5cGUgfSwgdm9pZCAwKSB9KSwgdm9pZCAwKSB9KSwgdm9pZCAwKSk7XFxuICAgIGNvbnN0IGNsb3NlTGlicmFyeSA9ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udXNlQ2FsbGJhY2spKCgpID0+IHtcXG4gICAgICAgIGNvbnN0IGlzRGlhbG9nT3BlbiA9ICEhZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcXFwiLkRpYWxvZ1xcXCIpO1xcbiAgICAgICAgLy8gUHJldmVudCBjbG9zaW5nIGlmIGFueSBkaWFsb2cgaXMgb3BlblxcbiAgICAgICAgaWYgKGlzRGlhbG9nT3Blbikge1xcbiAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgIH1cXG4gICAgICAgIHNldEFwcFN0YXRlKHsgaXNMaWJyYXJ5T3BlbjogZmFsc2UgfSk7XFxuICAgIH0sIFtzZXRBcHBTdGF0ZV0pO1xcbiAgICBjb25zdCBkZXNlbGVjdEl0ZW1zID0gKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy51c2VDYWxsYmFjaykoKCkgPT4ge1xcbiAgICAgICAgc2V0QXBwU3RhdGUoe1xcbiAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudElkczoge30sXFxuICAgICAgICAgICAgc2VsZWN0ZWRHcm91cElkczoge30sXFxuICAgICAgICB9KTtcXG4gICAgfSwgW3NldEFwcFN0YXRlXSk7XFxuICAgIGNvbnN0IGxpYnJhcnlNZW51ID0gYXBwU3RhdGUuaXNMaWJyYXJ5T3BlbiA/ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX0xpYnJhcnlNZW51X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zMF9fLkxpYnJhcnlNZW51LCB7IHBlbmRpbmdFbGVtZW50czogKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uZ2V0U2VsZWN0ZWRFbGVtZW50cykoZWxlbWVudHMsIGFwcFN0YXRlLCB0cnVlKSwgb25DbG9zZTogY2xvc2VMaWJyYXJ5LCBvbkluc2VydFNoYXBlOiBvbkluc2VydEVsZW1lbnRzLCBvbkFkZFRvTGlicmFyeTogZGVzZWxlY3RJdGVtcywgc2V0QXBwU3RhdGU6IHNldEFwcFN0YXRlLCBsaWJyYXJ5UmV0dXJuVXJsOiBsaWJyYXJ5UmV0dXJuVXJsLCBmb2N1c0NvbnRhaW5lcjogZm9jdXNDb250YWluZXIsIGxpYnJhcnk6IGxpYnJhcnksIHRoZW1lOiBhcHBTdGF0ZS50aGVtZSwgZmlsZXM6IGZpbGVzLCBpZDogaWQsIGFwcFN0YXRlOiBhcHBTdGF0ZSB9LCB2b2lkIDApKSA6IG51bGw7XFxuICAgIGNvbnN0IHJlbmRlckZpeGVkU2lkZUNvbnRhaW5lciA9ICgpID0+IHtcXG4gICAgICAgIGNvbnN0IHNob3VsZFJlbmRlclNlbGVjdGVkU2hhcGVBY3Rpb25zID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5zaG93U2VsZWN0ZWRTaGFwZUFjdGlvbnMpKGFwcFN0YXRlLCBlbGVtZW50cyk7XFxuICAgICAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfRml4ZWRTaWRlQ29udGFpbmVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fLkZpeGVkU2lkZUNvbnRhaW5lciwgT2JqZWN0LmFzc2lnbih7IHNpZGU6IFxcXCJ0b3BcXFwiIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJBcHAtbWVudSBBcHAtbWVudV90b3BcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKF9TdGFja19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjRfX1tcXFwiZGVmYXVsdFxcXCJdLkNvbCwgT2JqZWN0LmFzc2lnbih7IGdhcDogNCwgY2xhc3NOYW1lOiAoMCxjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bXFxcImRlZmF1bHRcXFwiXSkoeyBcXFwiZGlzYWJsZS1wb2ludGVyRXZlbnRzXFxcIjogemVuTW9kZUVuYWJsZWQgfSkgfSwgeyBjaGlsZHJlbjogW3ZpZXdNb2RlRW5hYmxlZFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyByZW5kZXJWaWV3TW9kZUNhbnZhc0FjdGlvbnMoKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZW5kZXJDYW52YXNBY3Rpb25zKCksIHNob3VsZFJlbmRlclNlbGVjdGVkU2hhcGVBY3Rpb25zICYmIHJlbmRlclNlbGVjdGVkU2hhcGVBY3Rpb25zKCldIH0pLCB2b2lkIDApLCAhdmlld01vZGVFbmFibGVkICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX1NlY3Rpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIyX18uU2VjdGlvbiwgT2JqZWN0LmFzc2lnbih7IGhlYWRpbmc6IFxcXCJzaGFwZXNcXFwiIH0sIHsgY2hpbGRyZW46IChoZWFkaW5nKSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShfU3RhY2tfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI0X19bXFxcImRlZmF1bHRcXFwiXS5Db2wsIE9iamVjdC5hc3NpZ24oeyBnYXA6IDQsIGFsaWduOiBcXFwic3RhcnRcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKF9TdGFja19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjRfX1tcXFwiZGVmYXVsdFxcXCJdLlJvdywgT2JqZWN0LmFzc2lnbih7IGdhcDogMSwgY2xhc3NOYW1lOiAoMCxjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bXFxcImRlZmF1bHRcXFwiXSkoXFxcIkFwcC10b29sYmFyLWNvbnRhaW5lclxcXCIsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcInplbi1tb2RlXFxcIjogemVuTW9kZUVuYWJsZWQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfUGVuTW9kZUJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMzNfXy5QZW5Nb2RlQnV0dG9uLCB7IHplbk1vZGVFbmFibGVkOiB6ZW5Nb2RlRW5hYmxlZCwgY2hlY2tlZDogYXBwU3RhdGUucGVuTW9kZSwgb25DaGFuZ2U6IG9uUGVuTW9kZVRvZ2dsZSwgdGl0bGU6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udCkoXFxcInRvb2xCYXIucGVuTW9kZVxcXCIpLCBwZW5EZXRlY3RlZDogYXBwU3RhdGUucGVuRGV0ZWN0ZWQgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9Mb2NrQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOV9fLkxvY2tCdXR0b24sIHsgemVuTW9kZUVuYWJsZWQ6IHplbk1vZGVFbmFibGVkLCBjaGVja2VkOiBhcHBTdGF0ZS5lbGVtZW50TG9ja2VkLCBvbkNoYW5nZTogb25Mb2NrVG9nZ2xlLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy50KShcXFwidG9vbEJhci5sb2NrXFxcIikgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShfSXNsYW5kX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xN19fLklzbGFuZCwgT2JqZWN0LmFzc2lnbih7IHBhZGRpbmc6IDEsIGNsYXNzTmFtZTogKDAsY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fW1xcXCJkZWZhdWx0XFxcIl0pKFxcXCJBcHAtdG9vbGJhclxcXCIsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiemVuLW1vZGVcXFwiOiB6ZW5Nb2RlRW5hYmxlZCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX0hpbnRWaWV3ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uSGludFZpZXdlciwgeyBhcHBTdGF0ZTogYXBwU3RhdGUsIGVsZW1lbnRzOiBlbGVtZW50cywgaXNNb2JpbGU6IGlzTW9iaWxlIH0sIHZvaWQgMCksIGhlYWRpbmcsICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfU3RhY2tfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI0X19bXFxcImRlZmF1bHRcXFwiXS5Sb3csIE9iamVjdC5hc3NpZ24oeyBnYXA6IDEgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9BY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLlNoYXBlc1N3aXRjaGVyLCB7IGNhbnZhczogY2FudmFzLCBlbGVtZW50VHlwZTogYXBwU3RhdGUuZWxlbWVudFR5cGUsIHNldEFwcFN0YXRlOiBzZXRBcHBTdGF0ZSwgb25JbWFnZUFjdGlvbjogKHsgcG9pbnRlclR5cGUgfSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uSW1hZ2VBY3Rpb24oe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRPbkNhbnZhc0RpcmVjdGx5OiBwb2ludGVyVHlwZSAhPT0gXFxcIm1vdXNlXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gfSwgdm9pZCAwKSB9KSwgdm9pZCAwKV0gfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfTGlicmFyeUJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjhfXy5MaWJyYXJ5QnV0dG9uLCB7IGFwcFN0YXRlOiBhcHBTdGF0ZSwgc2V0QXBwU3RhdGU6IHNldEFwcFN0YXRlIH0sIHZvaWQgMCldIH0pLCB2b2lkIDApLCBsaWJyYXJ5TWVudV0gfSksIHZvaWQgMCkpIH0pLCB2b2lkIDApKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogKDAsY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fW1xcXCJkZWZhdWx0XFxcIl0pKFxcXCJsYXllci11aV9fd3JhcHBlcl9fdG9wLXJpZ2h0IHplbi1tb2RlLXRyYW5zaXRpb25cXFwiLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJ0cmFuc2l0aW9uLXJpZ2h0XFxcIjogemVuTW9kZUVuYWJsZWQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfVXNlckxpc3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI2X18uVXNlckxpc3QsIHsgY2hpbGRyZW46IGFwcFN0YXRlLmNvbGxhYm9yYXRvcnMuc2l6ZSA+IDAgJiZcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5mcm9tKGFwcFN0YXRlLmNvbGxhYm9yYXRvcnMpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbGxhYm9yYXRvciBpcyBlaXRoZXIgbm90IGluaXRpYWxpemVkIG9yIGlzIGFjdHVhbGx5IHRoZSBjdXJyZW50IHVzZXIuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKFtfLCBjbGllbnRdKSA9PiBPYmplY3Qua2V5cyhjbGllbnQpLmxlbmd0aCAhPT0gMClcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoW2NsaWVudElkLCBjbGllbnRdKSA9PiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9Ub29sdGlwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNV9fLlRvb2x0aXAsIE9iamVjdC5hc3NpZ24oeyBsYWJlbDogY2xpZW50LnVzZXJuYW1lIHx8IFxcXCJVbmtub3duIHVzZXJcXFwiIH0sIHsgY2hpbGRyZW46IGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFxcXCJnb1RvQ29sbGFib3JhdG9yXFxcIiwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGNsaWVudElkLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSB9KSwgY2xpZW50SWQpKSkgfSwgdm9pZCAwKSwgcmVuZGVyVG9wUmlnaHRVSSA9PT0gbnVsbCB8fCByZW5kZXJUb3BSaWdodFVJID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZW5kZXJUb3BSaWdodFVJKGlzTW9iaWxlLCBhcHBTdGF0ZSldIH0pLCB2b2lkIDApXSB9KSwgdm9pZCAwKSB9KSwgdm9pZCAwKSk7XFxuICAgIH07XFxuICAgIGNvbnN0IHJlbmRlckJvdHRvbUFwcE1lbnUgPSAoKSA9PiB7XFxuICAgICAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImZvb3RlclxcXCIsIE9iamVjdC5hc3NpZ24oeyByb2xlOiBcXFwiY29udGVudGluZm9cXFwiLCBjbGFzc05hbWU6IFxcXCJsYXllci11aV9fd3JhcHBlcl9fZm9vdGVyIEFwcC1tZW51IEFwcC1tZW51X2JvdHRvbVxcXCIgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogKDAsY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fW1xcXCJkZWZhdWx0XFxcIl0pKFxcXCJsYXllci11aV9fd3JhcHBlcl9fZm9vdGVyLWxlZnQgemVuLW1vZGUtdHJhbnNpdGlvblxcXCIsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBcXFwibGF5ZXItdWlfX3dyYXBwZXJfX2Zvb3Rlci1sZWZ0LS10cmFuc2l0aW9uLWxlZnRcXFwiOiB6ZW5Nb2RlRW5hYmxlZCxcXG4gICAgICAgICAgICAgICAgICAgIH0pIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfU3RhY2tfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI0X19bXFxcImRlZmF1bHRcXFwiXS5Db2wsIE9iamVjdC5hc3NpZ24oeyBnYXA6IDIgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShfU2VjdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjJfXy5TZWN0aW9uLCBPYmplY3QuYXNzaWduKHsgaGVhZGluZzogXFxcImNhbnZhc0FjdGlvbnNcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX0lzbGFuZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXy5Jc2xhbmQsIE9iamVjdC5hc3NpZ24oeyBwYWRkaW5nOiAxIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfQWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5ab29tQWN0aW9ucywgeyByZW5kZXJBY3Rpb246IGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uLCB6b29tOiBhcHBTdGF0ZS56b29tIH0sIHZvaWQgMCkgfSksIHZvaWQgMCksICF2aWV3TW9kZUVuYWJsZWQgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6ICgwLGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1tcXFwiZGVmYXVsdFxcXCJdKShcXFwidW5kby1yZWRvLWJ1dHRvbnMgemVuLW1vZGUtdHJhbnNpdGlvblxcXCIsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcImxheWVyLXVpX193cmFwcGVyX19mb290ZXItbGVmdC0tdHJhbnNpdGlvbi1ib3R0b21cXFwiOiB6ZW5Nb2RlRW5hYmxlZCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSB9LCB7IGNoaWxkcmVuOiBbYWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXFxcInVuZG9cXFwiLCB7IHNpemU6IFxcXCJzbWFsbFxcXCIgfSksIGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFxcXCJyZWRvXFxcIiwgeyBzaXplOiBcXFwic21hbGxcXFwiIH0pXSB9KSwgdm9pZCAwKSldIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6ICgwLGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1tcXFwiZGVmYXVsdFxcXCJdKShcXFwibGF5ZXItdWlfX3dyYXBwZXJfX2Zvb3Rlci1jZW50ZXIgemVuLW1vZGUtdHJhbnNpdGlvblxcXCIsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBcXFwibGF5ZXItdWlfX3dyYXBwZXJfX2Zvb3Rlci1sZWZ0LS10cmFuc2l0aW9uLWJvdHRvbVxcXCI6IHplbk1vZGVFbmFibGVkLFxcbiAgICAgICAgICAgICAgICAgICAgfSkgfSwgeyBjaGlsZHJlbjogcmVuZGVyQ3VzdG9tRm9vdGVyID09PSBudWxsIHx8IHJlbmRlckN1c3RvbUZvb3RlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVuZGVyQ3VzdG9tRm9vdGVyKGZhbHNlLCBhcHBTdGF0ZSkgfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogKDAsY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fW1xcXCJkZWZhdWx0XFxcIl0pKFxcXCJsYXllci11aV9fd3JhcHBlcl9fZm9vdGVyLXJpZ2h0IHplbi1tb2RlLXRyYW5zaXRpb25cXFwiLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgXFxcInRyYW5zaXRpb24tcmlnaHQgZGlzYWJsZS1wb2ludGVyRXZlbnRzXFxcIjogemVuTW9kZUVuYWJsZWQsXFxuICAgICAgICAgICAgICAgICAgICB9KSB9LCB7IGNoaWxkcmVuOiBhY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcXFwidG9nZ2xlU2hvcnRjdXRzXFxcIikgfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiYnV0dG9uXFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogKDAsY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fW1xcXCJkZWZhdWx0XFxcIl0pKFxcXCJkaXNhYmxlLXplbi1tb2RlXFxcIiwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJkaXNhYmxlLXplbi1tb2RlLS12aXNpYmxlXFxcIjogc2hvd0V4aXRaZW5Nb2RlQnRuLFxcbiAgICAgICAgICAgICAgICAgICAgfSksIG9uQ2xpY2s6IHRvZ2dsZVplbk1vZGUgfSwgeyBjaGlsZHJlbjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy50KShcXFwiYnV0dG9ucy5leGl0WmVuTW9kZVxcXCIpIH0pLCB2b2lkIDApXSB9KSwgdm9pZCAwKSk7XFxuICAgIH07XFxuICAgIGNvbnN0IGRpYWxvZ3MgPSAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbYXBwU3RhdGUuaXNMb2FkaW5nICYmICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfTG9hZGluZ01lc3NhZ2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE4X18uTG9hZGluZ01lc3NhZ2UsIHt9LCB2b2lkIDApLCBhcHBTdGF0ZS5lcnJvck1lc3NhZ2UgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfRXJyb3JEaWFsb2dfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18uRXJyb3JEaWFsb2csIHsgbWVzc2FnZTogYXBwU3RhdGUuZXJyb3JNZXNzYWdlLCBvbkNsb3NlOiAoKSA9PiBzZXRBcHBTdGF0ZSh7IGVycm9yTWVzc2FnZTogbnVsbCB9KSB9LCB2b2lkIDApKSwgYXBwU3RhdGUuc2hvd0hlbHBEaWFsb2cgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfSGVscERpYWxvZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjNfXy5IZWxwRGlhbG9nLCB7IG9uQ2xvc2U6ICgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIHNldEFwcFN0YXRlKHsgc2hvd0hlbHBEaWFsb2c6IGZhbHNlIH0pO1xcbiAgICAgICAgICAgICAgICB9IH0sIHZvaWQgMCkpLCBhcHBTdGF0ZS5wYXN0ZURpYWxvZy5zaG93biAmJiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9QYXN0ZUNoYXJ0RGlhbG9nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMV9fLlBhc3RlQ2hhcnREaWFsb2csIHsgc2V0QXBwU3RhdGU6IHNldEFwcFN0YXRlLCBhcHBTdGF0ZTogYXBwU3RhdGUsIG9uSW5zZXJ0Q2hhcnQ6IG9uSW5zZXJ0RWxlbWVudHMsIG9uQ2xvc2U6ICgpID0+IHNldEFwcFN0YXRlKHtcXG4gICAgICAgICAgICAgICAgICAgIHBhc3RlRGlhbG9nOiB7IHNob3duOiBmYWxzZSwgZGF0YTogbnVsbCB9LFxcbiAgICAgICAgICAgICAgICB9KSB9LCB2b2lkIDApKV0gfSwgdm9pZCAwKSk7XFxuICAgIHJldHVybiBpc01vYmlsZSA/ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtkaWFsb2dzLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX01vYmlsZU1lbnVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIwX18uTW9iaWxlTWVudSwgeyBhcHBTdGF0ZTogYXBwU3RhdGUsIGVsZW1lbnRzOiBlbGVtZW50cywgYWN0aW9uTWFuYWdlcjogYWN0aW9uTWFuYWdlciwgbGlicmFyeU1lbnU6IGxpYnJhcnlNZW51LCByZW5kZXJKU09ORXhwb3J0RGlhbG9nOiByZW5kZXJKU09ORXhwb3J0RGlhbG9nLCByZW5kZXJJbWFnZUV4cG9ydERpYWxvZzogcmVuZGVySW1hZ2VFeHBvcnREaWFsb2csIHNldEFwcFN0YXRlOiBzZXRBcHBTdGF0ZSwgb25Db2xsYWJCdXR0b25DbGljazogb25Db2xsYWJCdXR0b25DbGljaywgb25Mb2NrVG9nZ2xlOiBvbkxvY2tUb2dnbGUsIG9uUGVuTW9kZVRvZ2dsZTogb25QZW5Nb2RlVG9nZ2xlLCBjYW52YXM6IGNhbnZhcywgaXNDb2xsYWJvcmF0aW5nOiBpc0NvbGxhYm9yYXRpbmcsIHJlbmRlckN1c3RvbUZvb3RlcjogcmVuZGVyQ3VzdG9tRm9vdGVyLCB2aWV3TW9kZUVuYWJsZWQ6IHZpZXdNb2RlRW5hYmxlZCwgc2hvd1RoZW1lQnRuOiBzaG93VGhlbWVCdG4sIG9uSW1hZ2VBY3Rpb246IG9uSW1hZ2VBY3Rpb24sIHJlbmRlclRvcFJpZ2h0VUk6IHJlbmRlclRvcFJpZ2h0VUkgfSwgdm9pZCAwKV0gfSwgdm9pZCAwKSkgOiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogKDAsY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fW1xcXCJkZWZhdWx0XFxcIl0pKFxcXCJsYXllci11aV9fd3JhcHBlclxcXCIsIHtcXG4gICAgICAgICAgICBcXFwiZGlzYWJsZS1wb2ludGVyRXZlbnRzXFxcIjogYXBwU3RhdGUuZHJhZ2dpbmdFbGVtZW50IHx8XFxuICAgICAgICAgICAgICAgIGFwcFN0YXRlLnJlc2l6aW5nRWxlbWVudCB8fFxcbiAgICAgICAgICAgICAgICAoYXBwU3RhdGUuZWRpdGluZ0VsZW1lbnQgJiYgISgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uaXNUZXh0RWxlbWVudCkoYXBwU3RhdGUuZWRpdGluZ0VsZW1lbnQpKSxcXG4gICAgICAgIH0pIH0sIHsgY2hpbGRyZW46IFtkaWFsb2dzLCByZW5kZXJGaXhlZFNpZGVDb250YWluZXIoKSwgcmVuZGVyQm90dG9tQXBwTWVudSgpLCBhcHBTdGF0ZS5zY3JvbGxlZE91dHNpZGUgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiYnV0dG9uXFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcInNjcm9sbC1iYWNrLXRvLWNvbnRlbnRcXFwiLCBvbkNsaWNrOiAoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBzZXRBcHBTdGF0ZShPYmplY3QuYXNzaWduKHt9LCAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5jYWxjdWxhdGVTY3JvbGxDZW50ZXIpKGVsZW1lbnRzLCBhcHBTdGF0ZSwgY2FudmFzKSkpO1xcbiAgICAgICAgICAgICAgICB9IH0sIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udCkoXFxcImJ1dHRvbnMuc2Nyb2xsQmFja1RvQ29udGVudFxcXCIpIH0pLCB2b2lkIDApKV0gfSksIHZvaWQgMCkpO1xcbn07XFxuY29uc3QgYXJlRXF1YWwgPSAocHJldiwgbmV4dCkgPT4ge1xcbiAgICBjb25zdCBnZXROZWNlc3NhcnlPYmogPSAoYXBwU3RhdGUpID0+IHtcXG4gICAgICAgIGNvbnN0IHsgc3VnZ2VzdGVkQmluZGluZ3MsIHN0YXJ0Qm91bmRFbGVtZW50OiBib3VuZEVsZW1lbnQgfSA9IGFwcFN0YXRlLCByZXQgPSBfX3Jlc3QoYXBwU3RhdGUsIFtcXFwic3VnZ2VzdGVkQmluZGluZ3NcXFwiLCBcXFwic3RhcnRCb3VuZEVsZW1lbnRcXFwiXSk7XFxuICAgICAgICByZXR1cm4gcmV0O1xcbiAgICB9O1xcbiAgICBjb25zdCBwcmV2QXBwU3RhdGUgPSBnZXROZWNlc3NhcnlPYmoocHJldi5hcHBTdGF0ZSk7XFxuICAgIGNvbnN0IG5leHRBcHBTdGF0ZSA9IGdldE5lY2Vzc2FyeU9iaihuZXh0LmFwcFN0YXRlKTtcXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHByZXZBcHBTdGF0ZSk7XFxuICAgIHJldHVybiAocHJldi5yZW5kZXJDdXN0b21Gb290ZXIgPT09IG5leHQucmVuZGVyQ3VzdG9tRm9vdGVyICYmXFxuICAgICAgICBwcmV2LmxhbmdDb2RlID09PSBuZXh0LmxhbmdDb2RlICYmXFxuICAgICAgICBwcmV2LmVsZW1lbnRzID09PSBuZXh0LmVsZW1lbnRzICYmXFxuICAgICAgICBwcmV2LmZpbGVzID09PSBuZXh0LmZpbGVzICYmXFxuICAgICAgICBrZXlzLmV2ZXJ5KChrZXkpID0+IHByZXZBcHBTdGF0ZVtrZXldID09PSBuZXh0QXBwU3RhdGVba2V5XSkpO1xcbn07XFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9IChyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fX2RlZmF1bHQoKS5tZW1vKExheWVyVUksIGFyZUVxdWFsKSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlNWVhsbGNsVkpMblJ6ZUM1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRCUVVGM1FqdEJRVU50UWp0QlFVVktPMEZCUTBFN1FVRkRPRUk3UVVGRkwwSTdRVUZEVlR0QlFVTnpRanRCUVVjeFFqdEJRVU5yUXp0QlFVTlZPMEZCUXpsRE8wRkJRMFU3UVVGRGMwSTdRVUZEVWp0QlFVTm9RanRCUVVOU08wRkJRMmRDTzBGQlExSTdRVUZEUVR0QlFVTlpPMEZCUTJ4Q08wRkJRMDA3UVVGRFpEdEJRVU5STzBGQlEwVTdRVUZGWjBJN1FVRkRUanRCUVVORE8wRkJRMHc3UVVGRmNFSTdRVUZEUVR0QlFVTjNRanRCUVdsRGFFUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1EwRkJReXhGUVVObUxHRkJRV0VzUlVGRFlpeFJRVUZSTEVWQlExSXNTMEZCU3l4RlFVTk1MRmRCUVZjc1JVRkRXQ3hOUVVGTkxFVkJRMDRzVVVGQlVTeEZRVU5TTEcxQ1FVRnRRaXhGUVVOdVFpeFpRVUZaTEVWQlExb3NaVUZCWlN4RlFVTm1MR2RDUVVGblFpeEZRVU5vUWl4alFVRmpMRVZCUTJRc2EwSkJRV3RDTEVWQlEyeENMRmxCUVZrc1JVRkRXaXhoUVVGaExFVkJRMklzWlVGQlpTeEZRVU5tTEdkQ1FVRm5RaXhGUVVOb1FpeHJRa0ZCYTBJc1JVRkRiRUlzWlVGQlpTeEZRVU5tTEdkQ1FVRm5RaXhGUVVOb1FpeFRRVUZUTEVWQlExUXNZMEZCWXl4RlFVTmtMRTlCUVU4c1JVRkRVQ3hGUVVGRkxFVkJRMFlzWVVGQllTeEhRVU5CTEVWQlFVVXNSVUZCUlR0SlFVTnFRaXhOUVVGTkxGRkJRVkVzUjBGQlJ5dzBSRUZCVnl4RlFVRkZMRU5CUVVNN1NVRkZMMElzVFVGQlRTeHpRa0ZCYzBJc1IwRkJSeXhIUVVGSExFVkJRVVU3VVVGRGJFTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhoUVVGaExFTkJRVU1zVFVGQlRTeEZRVUZGTzFsQlEyNURMRTlCUVU4c1NVRkJTU3hEUVVGRE8xTkJRMkk3VVVGRlJDeFBRVUZQTEVOQlEwd3NkVVJCUVVNc1owVkJRV2RDTEVsQlEyWXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkRiRUlzVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZEYkVJc1MwRkJTeXhGUVVGRkxFdEJRVXNzUlVGRFdpeGhRVUZoTEVWQlFVVXNZVUZCWVN4RlFVTTFRaXhWUVVGVkxFVkJRVVVzVTBGQlV5eERRVUZETEdGQlFXRXNRMEZCUXl4TlFVRk5MRVZCUXpGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEZkQlEyUXNRMEZEU0N4RFFVRkRPMGxCUTBvc1EwRkJReXhEUVVGRE8wbEJSVVlzVFVGQlRTeDFRa0ZCZFVJc1IwRkJSeXhIUVVGSExFVkJRVVU3VVVGRGJrTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhoUVVGaExFTkJRVU1zVjBGQlZ5eEZRVUZGTzFsQlEzaERMRTlCUVU4c1NVRkJTU3hEUVVGRE8xTkJRMkk3VVVGRlJDeE5RVUZOTEdOQlFXTXNSMEZEYkVJc1EwRkJReXhKUVVGblFpeEZRVUZaTEVWQlFVVXNRMEZETDBJc1EwRkJUeXhuUWtGQlowSXNSVUZCUlN4RlFVRkZPMWxCUTNwQ0xFMUJRVTBzVlVGQlZTeEhRVUZITEUxQlFVMHNiVVJCUVZrc1EwRkRia01zU1VGQlNTeEZRVU5LTEdkQ1FVRm5RaXhGUVVOb1FpeFJRVUZSTEVWQlExSXNTMEZCU3l4RlFVTk1PMmRDUVVORkxHZENRVUZuUWl4RlFVRkZMRkZCUVZFc1EwRkJReXhuUWtGQlowSTdaMEpCUXpORExFbEJRVWtzUlVGQlJTeFJRVUZSTEVOQlFVTXNTVUZCU1R0blFrRkRia0lzYlVKQlFXMUNMRVZCUVVVc1VVRkJVU3hEUVVGRExHMUNRVUZ0UWp0aFFVTnNSQ3hEUVVOR08ybENRVU5GTEV0QlFVc3NRMEZCUXl4dlJFRkJaMElzUTBGQlF6dHBRa0ZEZGtJc1MwRkJTeXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVTdaMEpCUTJZc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0blFrRkRja0lzVjBGQlZ5eERRVUZETEVWQlFVVXNXVUZCV1N4RlFVRkZMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF5eERRVUZETzFsQlF5OURMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJSVXdzU1VGRFJTeFJRVUZSTEVOQlFVTXNaMEpCUVdkQ08yZENRVU42UWl4VlFVRlZPMmRDUVVOV0xEaEVRVUZwUWl4RFFVRkRMRlZCUVZVc1EwRkJReXhGUVVNM1FqdG5Ra0ZEUVN4WFFVRlhMRU5CUVVNc1JVRkJSU3hWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzJGQlF6ZENPMUZCUTBnc1EwRkJReXhGUVVGRE8xRkJSVW9zVDBGQlR5eERRVU5NTEhWRVFVRkRMR3RGUVVGcFFpeEpRVU5vUWl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVOc1FpeFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVTnNRaXhMUVVGTExFVkJRVVVzUzBGQlN5eEZRVU5hTEdGQlFXRXNSVUZCUlN4aFFVRmhMRVZCUXpWQ0xHRkJRV0VzUlVGQlJTeGpRVUZqTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUTNCRExHRkJRV0VzUlVGQlJTeGpRVUZqTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUTNCRExHMUNRVUZ0UWl4RlFVRkZMR05CUVdNc1EwRkJReXhYUVVGWExFTkJRVU1zVjBGRGFFUXNRMEZEU0N4RFFVRkRPMGxCUTBvc1EwRkJReXhEUVVGRE8wbEJSVVlzVFVGQlRTeFRRVUZUTEVkQlFVY3NSMEZCUnl4RlFVRkZPMUZCUTNKQ0xFOUJRVThzWjBWQlFVc3NTMEZCU3l4RlFVRkZMRVZCUVVVc1MwRkJTeXhGUVVGRkxGRkJRVkVzUlVGQlJTeFhRVUZKTEVOQlFVTTdTVUZETjBNc1EwRkJReXhEUVVGRE8wbEJSVVlzVFVGQlRTd3lRa0ZCTWtJc1IwRkJSeXhIUVVGSExFVkJRVVU3VVVGRGRrTXNUMEZCVHl4RFFVTk1MSFZFUVVGRExEaERRVUZQTEd0Q1FVTk9MRTlCUVU4c1JVRkJReXhsUVVGbExFVkJRM1pDTEZOQlFWTXNSVUZCUlN4blJFRkJTU3hEUVVGRExIRkNRVUZ4UWl4RlFVRkZPMmRDUVVOeVF5eHBRa0ZCYVVJc1JVRkJSU3hqUVVGak8yRkJRMnhETEVOQlFVTXNaMEpCU1VZc2RVUkJRVU1zTkVOQlFVMHNhMEpCUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxHZENRVU4wUXl4MVJFRkJReXh0UkVGQlV5eHJRa0ZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhuUWtGRFppeDNSRUZCUXl4dFJFRkJVeXhyUWtGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RlFVRkZMR05CUVdNc1JVRkJReXhsUVVGbExHbENRVU01UXl4elFrRkJjMElzUlVGQlJTeEZRVU40UWl4MVFrRkJkVUlzUlVGQlJTeGhRVU5vUWl4WlFVTkdMRmxCUTB3c1dVRkRSQ3hEUVVOWUxFTkJRVU03U1VGRFNpeERRVUZETEVOQlFVTTdTVUZGUml4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUTJoRExIVkVRVUZETERoRFFVRlBMR3RDUVVOT0xFOUJRVThzUlVGQlF5eGxRVUZsTEVWQlEzWkNMRk5CUVZNc1JVRkJSU3huUkVGQlNTeERRVUZETEhGQ1FVRnhRaXhGUVVGRk8xbEJRM0pETEdsQ1FVRnBRaXhGUVVGRkxHTkJRV003VTBGRGJFTXNRMEZCUXl4blFrRkpSaXgxUkVGQlF5dzBRMEZCVFN4clFrRkJReXhQUVVGUExFVkJRVVVzUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzWjBKQlEzUkRMSGRFUVVGRExHMUVRVUZUTEd0Q1FVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExHbENRVU5tTEhkRVFVRkRMRzFFUVVGVExHdENRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1kwRkJZeXhGUVVGRExHVkJRV1VzYVVKQlF6bERMR0ZCUVdFc1EwRkJReXhaUVVGWkxFTkJRVU1zWVVGQllTeERRVUZETEVWQlF6RkRMSFZFUVVGRExGTkJRVk1zWVVGQlJ5eEZRVU5hTEdGQlFXRXNRMEZCUXl4WlFVRlpMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRM1pETEhOQ1FVRnpRaXhGUVVGRkxFVkJRM2hDTEhWQ1FVRjFRaXhGUVVGRkxFVkJRekZDTEhWRVFVRkRMRk5CUVZNc1lVRkJSeXhGUVVOYUxHMUNRVUZ0UWl4SlFVRkpMRU5CUTNSQ0xIVkVRVUZETEhORVFVRlpMRWxCUTFnc1pVRkJaU3hGUVVGRkxHVkJRV1VzUlVGRGFFTXNhVUpCUVdsQ0xFVkJRVVVzVVVGQlVTeERRVUZETEdGQlFXRXNRMEZCUXl4SlFVRkpMRVZCUXpsRExFOUJRVThzUlVGQlJTeHRRa0ZCYlVJc1YwRkROVUlzUTBGRFNDeGhRVU5UTEVWQlExb3NkVVJCUVVNc2EwZEJRV2xETEVsQlEyaERMR0ZCUVdFc1JVRkJSU3hoUVVGaExFVkJRelZDTEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUTJ4Q0xGZEJRVmNzUlVGQlJTeFhRVUZYTEVWQlEzaENMRmxCUVZrc1JVRkJSU3haUVVGWkxGZEJRekZDTEVWQlEwUXNVVUZCVVN4RFFVRkRMRlZCUVZVc1NVRkJTU3hEUVVOMFFpdzBTRUZCUnl4aFFVRmhMRU5CUVVNc1dVRkJXU3hEUVVGRExHdENRVUZyUWl4RFFVRkRMRmRCUVVrc1EwRkRkRVFzWVVGRFV5eFpRVU5NTEZsQlEwUXNRMEZEV0N4RFFVRkRPMGxCUlVZc1RVRkJUU3d3UWtGQk1FSXNSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVOMlF5eDFSRUZCUXl3NFEwRkJUeXhyUWtGRFRpeFBRVUZQTEVWQlFVTXNjMEpCUVhOQ0xFVkJRemxDTEZOQlFWTXNSVUZCUlN4blJFRkJTU3hEUVVGRExIRkNRVUZ4UWl4RlFVRkZPMWxCUTNKRExHbENRVUZwUWl4RlFVRkZMR05CUVdNN1UwRkRiRU1zUTBGQlF5eG5Ra0ZGUml4MVJFRkJReXcwUTBGQlRTeHJRa0ZEVEN4VFFVRlRMRVZCUVVVc2EwVkJRVEJDTEVWQlEzSkRMRTlCUVU4c1JVRkJSU3hEUVVGRExFVkJRMVlzUzBGQlN5eEZRVUZGTzJkQ1FVTk1MR2xGUVVGcFJUdG5Ra0ZEYWtVc2QwWkJRWGRHTzJkQ1FVTjRSaXc0UlVGQk9FVTdaMEpCUXpsRkxGTkJRVk1zUlVGQlJTeEhRVUZITEZGQlFWRXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTzJGQlEzUkZMR2RDUVVWRUxIVkVRVUZETERKRVFVRnZRaXhKUVVOdVFpeFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVTnNRaXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVU5zUWl4WlFVRlpMRVZCUVVVc1lVRkJZU3hEUVVGRExGbEJRVmtzUlVGRGVFTXNWMEZCVnl4RlFVRkZMRkZCUVZFc1EwRkJReXhYUVVGWExGZEJRMnBETEZsQlEwc3NXVUZEUkN4RFFVTllMRU5CUVVNN1NVRkZSaXhOUVVGTkxGbEJRVmtzUjBGQlJ5eHJSRUZCVnl4RFFVRkRMRWRCUVVjc1JVRkJSVHRSUVVOd1F5eE5RVUZOTEZsQlFWa3NSMEZCUnl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVVjZSQ3gzUTBGQmQwTTdVVUZEZUVNc1NVRkJTU3haUVVGWkxFVkJRVVU3V1VGRGFFSXNUMEZCVHp0VFFVTlNPMUZCUTBRc1YwRkJWeXhEUVVGRExFVkJRVVVzWVVGQllTeEZRVUZGTEV0QlFVc3NSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRlRU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWc1FpeE5RVUZOTEdGQlFXRXNSMEZCUnl4clJFRkJWeXhEUVVGRExFZEJRVWNzUlVGQlJUdFJRVU55UXl4WFFVRlhMRU5CUVVNN1dVRkRWaXhyUWtGQmEwSXNSVUZCUlN4RlFVRkZPMWxCUTNSQ0xHZENRVUZuUWl4RlFVRkZMRVZCUVVVN1UwRkRja0lzUTBGQlF5eERRVUZETzBsQlEwd3NRMEZCUXl4RlFVRkZMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVZzUWl4TlFVRk5MRmRCUVZjc1IwRkJSeXhSUVVGUkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVTXpReXgxUkVGQlF5eHpSRUZCVnl4SlFVTldMR1ZCUVdVc1JVRkJSU3d5UkVGQmJVSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eEZRVU01UkN4UFFVRlBMRVZCUVVVc1dVRkJXU3hGUVVOeVFpeGhRVUZoTEVWQlFVVXNaMEpCUVdkQ0xFVkJReTlDTEdOQlFXTXNSVUZCUlN4aFFVRmhMRVZCUXpkQ0xGZEJRVmNzUlVGQlJTeFhRVUZYTEVWQlEzaENMR2RDUVVGblFpeEZRVUZGTEdkQ1FVRm5RaXhGUVVOc1F5eGpRVUZqTEVWQlFVVXNZMEZCWXl4RlFVTTVRaXhQUVVGUExFVkJRVVVzVDBGQlR5eEZRVU5vUWl4TFFVRkxMRVZCUVVVc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGRGNrSXNTMEZCU3l4RlFVRkZMRXRCUVVzc1JVRkRXaXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVU5PTEZGQlFWRXNSVUZCUlN4UlFVRlJMRmRCUTJ4Q0xFTkJRMGdzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMGxCUlZRc1RVRkJUU3gzUWtGQmQwSXNSMEZCUnl4SFFVRkhMRVZCUVVVN1VVRkRjRU1zVFVGQlRTeG5RMEZCWjBNc1IwRkJSeXhyUlVGQmQwSXNRMEZETDBRc1VVRkJVU3hGUVVOU0xGRkJRVkVzUTBGRFZDeERRVUZETzFGQlJVWXNUMEZCVHl4RFFVTk1MSFZFUVVGRExHOUZRVUZyUWl4clFrRkJReXhKUVVGSkxFVkJRVU1zUzBGQlN5eG5Ra0ZETlVJc0swVkJRVXNzVTBGQlV5eEZRVUZETEhWQ1FVRjFRaXhwUWtGRGNFTXNkMFJCUVVNc2JVUkJRVk1zYTBKQlExSXNSMEZCUnl4RlFVRkZMRU5CUVVNc1JVRkRUaXhUUVVGVExFVkJRVVVzWjBSQlFVa3NRMEZCUXl4RlFVRkZMSFZDUVVGMVFpeEZRVUZGTEdOQlFXTXNSVUZCUlN4RFFVRkRMR2xDUVVVelJDeGxRVUZsTzJkRFFVTmtMRU5CUVVNc1EwRkJReXd5UWtGQk1rSXNSVUZCUlR0blEwRkRMMElzUTBGQlF5eERRVUZETEcxQ1FVRnRRaXhGUVVGRkxFVkJRM2hDTEdkRFFVRm5ReXhKUVVGSkxEQkNRVUV3UWl4RlFVRkZMR0ZCUTNaRUxFVkJRMWdzUTBGQlF5eGxRVUZsTEVsQlFVa3NRMEZEYmtJc2RVUkJRVU1zT0VOQlFVOHNhMEpCUVVNc1QwRkJUeXhGUVVGRExGRkJRVkVzWjBKQlEzUkNMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVU5hTEhkRVFVRkRMRzFFUVVGVExHdENRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRExFOUJRVThzYVVKQlF6bENMSGRFUVVGRExHMUVRVUZUTEd0Q1FVTlNMRWRCUVVjc1JVRkJSU3hEUVVGRExFVkJRMDRzVTBGQlV5eEZRVUZGTEdkRVFVRkpMRU5CUVVNc2RVSkJRWFZDTEVWQlFVVTdkME5CUTNaRExGVkJRVlVzUlVGQlJTeGpRVUZqTzNGRFFVTXpRaXhEUVVGRExHbENRVVZHTEhWRVFVRkRMREJFUVVGaExFbEJRMW9zWTBGQll5eEZRVUZGTEdOQlFXTXNSVUZET1VJc1QwRkJUeXhGUVVGRkxGRkJRVkVzUTBGQlF5eFBRVUZQTEVWQlEzcENMRkZCUVZFc1JVRkJSU3hsUVVGbExFVkJRM3BDTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRVZCUXpOQ0xGZEJRVmNzUlVGQlJTeFJRVUZSTEVOQlFVTXNWMEZCVnl4WFFVTnFReXhGUVVOR0xIVkVRVUZETEc5RVFVRlZMRWxCUTFRc1kwRkJZeXhGUVVGRkxHTkJRV01zUlVGRE9VSXNUMEZCVHl4RlFVRkZMRkZCUVZFc1EwRkJReXhoUVVGaExFVkJReTlDTEZGQlFWRXNSVUZCUlN4WlFVRlpMRVZCUTNSQ0xFdEJRVXNzUlVGQlJTeDNRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJReXhYUVVONFFpeEZRVU5HTEhkRVFVRkRMRFJEUVVGTkxHdENRVU5NTEU5QlFVOHNSVUZCUlN4RFFVRkRMRVZCUTFZc1UwRkJVeXhGUVVGRkxHZEVRVUZKTEVOQlFVTXNZVUZCWVN4RlFVRkZPMmRFUVVNM1FpeFZRVUZWTEVWQlFVVXNZMEZCWXpzMlEwRkRNMElzUTBGQlF5eHBRa0ZGUml4MVJFRkJReXh2UkVGQlZTeEpRVU5VTEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUTJ4Q0xGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlEyeENMRkZCUVZFc1JVRkJSU3hSUVVGUkxGZEJRMnhDTEVWQlEwUXNUMEZCVHl4RlFVTlNMSFZFUVVGRExHMUVRVUZUTEd0Q1FVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExHZENRVU5tTEhWRVFVRkRMSEZFUVVGakxFbEJRMklzVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZEWkN4WFFVRlhMRVZCUVVVc1VVRkJVU3hEUVVGRExGZEJRVmNzUlVGRGFrTXNWMEZCVnl4RlFVRkZMRmRCUVZjc1JVRkRlRUlzWVVGQllTeEZRVUZGTEVOQlFVTXNSVUZCUlN4WFFVRlhMRVZCUVVVc1JVRkJSU3hGUVVGRk96UkVRVU5xUXl4aFFVRmhMRU5CUVVNN1owVkJRMW9zYzBKQlFYTkNMRVZCUVVVc1YwRkJWeXhMUVVGTExFOUJRVTg3TmtSQlEyaEVMRU5CUVVNc1EwRkJRenQzUkVGRFRDeERRVUZETEZkQlEwUXNXVUZEVVN4aFFVTk1MRVZCUTFRc2RVUkJRVU1zTUVSQlFXRXNTVUZEV2l4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVOc1FpeFhRVUZYTEVWQlFVVXNWMEZCVnl4WFFVTjRRaXhoUVVOUkxFVkJRMWdzVjBGQlZ5eGhRVU5HTEVOQlEySXNXVUZEVHl4RFFVTllMRVZCUTBRc0swVkJRMFVzVTBGQlV5eEZRVUZGTEdkRVFVRkpMRU5CUTJJc2EwUkJRV3RFTEVWQlEyeEVPelJDUVVORkxHdENRVUZyUWl4RlFVRkZMR05CUVdNN2VVSkJRMjVETEVOQlEwWXNhVUpCUlVRc2RVUkJRVU1zWjBSQlFWRXNZMEZEVGl4UlFVRlJMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETzI5RFFVTTVRaXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNN2QwTkJRMmhETERCRlFVRXdSVHQ1UTBGRGVrVXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNc1EwRkJRenQ1UTBGRGVrUXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFVkJRVVVzVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUXpOQ0xIVkVRVUZETERoRFFVRlBMR3RDUVVOT0xFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNVVUZCVVN4SlFVRkpMR05CUVdNc1owSkJSM1pETEdGQlFXRXNRMEZCUXl4WlFVRlpMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVTdORU5CUXpsRExFVkJRVVVzUlVGQlJTeFJRVUZSTzNsRFFVTmlMRU5CUVVNc1MwRktSeXhSUVVGUkxFTkJTMHdzUTBGRFdDeERRVUZETEZkQlEwY3NSVUZEVml4blFrRkJaMElzWVVGQmFFSXNaMEpCUVdkQ0xIVkNRVUZvUWl4blFrRkJaMElzUTBGQlJ5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RFFVRkRMR0ZCUTI1RExHRkJRMFlzV1VGRFlTeERRVU4wUWl4RFFVRkRPMGxCUTBvc1EwRkJReXhEUVVGRE8wbEJSVVlzVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXhIUVVGSExFVkJRVVU3VVVGREwwSXNUMEZCVHl4RFFVTk1MR3RHUVVORkxFbEJRVWtzUlVGQlF5eGhRVUZoTEVWQlEyeENMRk5CUVZNc1JVRkJReXh2UkVGQmIwUXNhVUpCUlRsRUxEaEZRVU5GTEZOQlFWTXNSVUZCUlN4blJFRkJTU3hEUVVOaUxHOUVRVUZ2UkN4RlFVTndSRHQzUWtGRFJTeHBSRUZCYVVRc1JVRkJSU3hqUVVGak8zRkNRVU5zUlN4RFFVTkdMR2RDUVVWRUxIVkVRVUZETEcxRVFVRlRMR3RDUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEdkQ1FVTm1MSGRFUVVGRExEaERRVUZQTEd0Q1FVRkRMRTlCUVU4c1JVRkJReXhsUVVGbExHbENRVU01UWl4MVJFRkJReXcwUTBGQlRTeHJRa0ZCUXl4UFFVRlBMRVZCUVVVc1EwRkJReXhuUWtGRGFFSXNkVVJCUVVNc2EwUkJRVmNzU1VGRFZpeFpRVUZaTEVWQlFVVXNZVUZCWVN4RFFVRkRMRmxCUVZrc1JVRkRlRU1zU1VGQlNTeEZRVUZGTEZGQlFWRXNRMEZCUXl4SlFVRkpMRmRCUTI1Q0xGbEJRMHNzUlVGRFVpeERRVUZETEdWQlFXVXNTVUZCU1N4RFFVTnVRaXdyUlVGRFJTeFRRVUZUTEVWQlFVVXNaMFJCUVVrc1EwRkJReXgxUTBGQmRVTXNSVUZCUlR0M1EwRkRka1FzYlVSQlFXMUVMRVZCUTJwRUxHTkJRV003Y1VOQlEycENMRU5CUVVNc2FVSkJSVVFzWVVGQllTeERRVUZETEZsQlFWa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hKUVVGSkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVOQlFVTXNSVUZEY2tRc1lVRkJZU3hEUVVGRExGbEJRVmtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1QwRkJUeXhGUVVGRkxFTkJRVU1zWVVGRGJFUXNRMEZEVUN4aFFVTlBMRmxCUTBFc1dVRkRVaXhGUVVOT0xEaEZRVU5GTEZOQlFWTXNSVUZCUlN4blJFRkJTU3hEUVVOaUxITkVRVUZ6UkN4RlFVTjBSRHQzUWtGRFJTeHRSRUZCYlVRc1JVRkRha1FzWTBGQll6dHhRa0ZEYWtJc1EwRkRSaXhuUWtGRlFTeHJRa0ZCYTBJc1lVRkJiRUlzYTBKQlFXdENMSFZDUVVGc1FpeHJRa0ZCYTBJc1EwRkJSeXhMUVVGTExFVkJRVVVzVVVGQlVTeERRVUZETEZsQlEyeERMRVZCUTA0c09FVkJRMFVzVTBGQlV5eEZRVUZGTEdkRVFVRkpMRU5CUTJJc2NVUkJRWEZFTEVWQlEzSkVPM2RDUVVORkxIZERRVUYzUXl4RlFVRkZMR05CUVdNN2NVSkJRM3BFTEVOQlEwWXNaMEpCUlVFc1lVRkJZU3hEUVVGRExGbEJRVmtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhaUVVNeFF5eEZRVU5PTEdsR1FVTkZMRk5CUVZNc1JVRkJSU3huUkVGQlNTeERRVUZETEd0Q1FVRnJRaXhGUVVGRk8zZENRVU5zUXl3eVFrRkJNa0lzUlVGQlJTeHJRa0ZCYTBJN2NVSkJRMmhFTEVOQlFVTXNSVUZEUml4UFFVRlBMRVZCUVVVc1lVRkJZU3huUWtGRmNrSXNkME5CUVVNc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4WlFVTnNRaXhoUVVOR0xFTkJRMVlzUTBGQlF6dEpRVU5LTEVOQlFVTXNRMEZCUXp0SlFVVkdMRTFCUVUwc1QwRkJUeXhIUVVGSExFTkJRMlFzT0VoQlEwY3NVVUZCVVN4RFFVRkRMRk5CUVZNc1NVRkJTU3gxUkVGQlF5dzBSRUZCWXl4aFFVRkhMRVZCUTNoRExGRkJRVkVzUTBGQlF5eFpRVUZaTEVsQlFVa3NRMEZEZUVJc2RVUkJRVU1zYzBSQlFWY3NTVUZEVml4UFFVRlBMRVZCUVVVc1VVRkJVU3hEUVVGRExGbEJRVmtzUlVGRE9VSXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExGZEJRVmNzUTBGQlF5eEZRVUZGTEZsQlFWa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1EwRkJReXhYUVVOc1JDeERRVU5JTEVWQlEwRXNVVUZCVVN4RFFVRkRMR05CUVdNc1NVRkJTU3hEUVVNeFFpeDFSRUZCUXl4dlJFRkJWU3hKUVVOVUxFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVTdiMEpCUTFvc1YwRkJWeXhEUVVGRExFVkJRVVVzWTBGQll5eEZRVUZGTEV0QlFVc3NSVUZCUlN4RFFVRkRMRU5CUVVNN1owSkJRM3BETEVOQlFVTXNWMEZEUkN4RFFVTklMRVZCUTBFc1VVRkJVU3hEUVVGRExGZEJRVmNzUTBGQlF5eExRVUZMTEVsQlFVa3NRMEZETjBJc2RVUkJRVU1zWjBWQlFXZENMRWxCUTJZc1YwRkJWeXhGUVVGRkxGZEJRVmNzUlVGRGVFSXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkRiRUlzWVVGQllTeEZRVUZGTEdkQ1FVRm5RaXhGUVVNdlFpeFBRVUZQTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUTFvc1YwRkJWeXhEUVVGRE8yOUNRVU5XTEZkQlFWY3NSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVVzU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlR0cFFrRkRNVU1zUTBGQlF5eFhRVVZLTEVOQlEwZ3NXVUZEUVN4RFFVTktMRU5CUVVNN1NVRkZSaXhQUVVGUExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZEYUVJc09FaEJRMGNzVDBGQlR5eEZRVU5TTEhWRVFVRkRMRzlFUVVGVkxFbEJRMVFzVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZEYkVJc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGRGJFSXNZVUZCWVN4RlFVRkZMR0ZCUVdFc1JVRkROVUlzVjBGQlZ5eEZRVUZGTEZkQlFWY3NSVUZEZUVJc2MwSkJRWE5DTEVWQlFVVXNjMEpCUVhOQ0xFVkJRemxETEhWQ1FVRjFRaXhGUVVGRkxIVkNRVUYxUWl4RlFVTm9SQ3hYUVVGWExFVkJRVVVzVjBGQlZ5eEZRVU40UWl4dFFrRkJiVUlzUlVGQlJTeHRRa0ZCYlVJc1JVRkRlRU1zV1VGQldTeEZRVUZGTEZsQlFWa3NSVUZETVVJc1pVRkJaU3hGUVVGRkxHVkJRV1VzUlVGRGFFTXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkRaQ3hsUVVGbExFVkJRVVVzWlVGQlpTeEZRVU5vUXl4clFrRkJhMElzUlVGQlJTeHJRa0ZCYTBJc1JVRkRkRU1zWlVGQlpTeEZRVUZGTEdWQlFXVXNSVUZEYUVNc1dVRkJXU3hGUVVGRkxGbEJRVmtzUlVGRE1VSXNZVUZCWVN4RlFVRkZMR0ZCUVdFc1JVRkROVUlzWjBKQlFXZENMRVZCUVVVc1owSkJRV2RDTEZkQlEyeERMRmxCUTBRc1EwRkRTaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVU5HTEN0RlFVTkZMRk5CUVZNc1JVRkJSU3huUkVGQlNTeERRVUZETEcxQ1FVRnRRaXhGUVVGRk8xbEJRMjVETEhWQ1FVRjFRaXhGUVVOeVFpeFJRVUZSTEVOQlFVTXNaVUZCWlR0blFrRkRlRUlzVVVGQlVTeERRVUZETEdWQlFXVTdaMEpCUTNoQ0xFTkJRVU1zVVVGQlVTeERRVUZETEdOQlFXTXNTVUZCU1N4RFFVRkRMSFZFUVVGaExFTkJRVU1zVVVGQlVTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRPMU5CUTNaRkxFTkJRVU1zYVVKQlJVUXNUMEZCVHl4RlFVTlFMSGRDUVVGM1FpeEZRVUZGTEVWQlF6RkNMRzFDUVVGdFFpeEZRVUZGTEVWQlEzSkNMRkZCUVZFc1EwRkJReXhsUVVGbExFbEJRVWtzUTBGRE0wSXNhVVpCUTBVc1UwRkJVeXhGUVVGRExIZENRVUYzUWl4RlFVTnNReXhQUVVGUExFVkJRVVVzUjBGQlJ5eEZRVUZGTzI5Q1FVTmFMRmRCUVZjc2JVSkJRMDRzTmtSQlFYRkNMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeE5RVUZOTEVOQlFVTXNSVUZEY0VRc1EwRkJRenRuUWtGRFRDeERRVUZETEdkQ1FVVkJMSGREUVVGRExFTkJRVU1zTmtKQlFUWkNMRU5CUVVNc1dVRkRNVUlzUTBGRFZpeGhRVU5ITEVOQlExQXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzVVVGQlVTeEhRVUZITEVOQlFVTXNTVUZCYTBJc1JVRkJSU3hKUVVGclFpeEZRVUZGTEVWQlFVVTdTVUZETVVRc1RVRkJUU3hsUVVGbExFZEJRVWNzUTBGQlF5eFJRVUZyUWl4RlFVRnhRaXhGUVVGRk8xRkJRMmhGTEUxQlFVMHNSVUZEU2l4cFFrRkJhVUlzUlVGRGFrSXNhVUpCUVdsQ0xFVkJRVVVzV1VGQldTeExRVVUzUWl4UlFVRlJMRVZCUkZBc1IwRkJSeXhWUVVOS0xGRkJRVkVzUlVGS1Rpd3dRMEZKVEN4RFFVRlhMRU5CUVVNN1VVRkRZaXhQUVVGUExFZEJRVWNzUTBGQlF6dEpRVU5pTEVOQlFVTXNRMEZCUXp0SlFVTkdMRTFCUVUwc1dVRkJXU3hIUVVGSExHVkJRV1VzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1NVRkRjRVFzVFVGQlRTeFpRVUZaTEVkQlFVY3NaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVVZ3UkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCWjBNc1EwRkJRenRKUVVOMFJTeFBRVUZQTEVOQlEwd3NTVUZCU1N4RFFVRkRMR3RDUVVGclFpeExRVUZMTEVsQlFVa3NRMEZCUXl4clFrRkJhMEk3VVVGRGJrUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1MwRkJTeXhKUVVGSkxFTkJRVU1zVVVGQlVUdFJRVU12UWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hMUVVGTExFbEJRVWtzUTBGQlF5eFJRVUZSTzFGQlF5OUNMRWxCUVVrc1EwRkJReXhMUVVGTExFdEJRVXNzU1VGQlNTeERRVUZETEV0QlFVczdVVUZEZWtJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1dVRkJXU3hEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEZsQlFWa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVNM1JDeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRPMEZCUlVZc2FVVkJRV1VzYVVSQlFWVXNRMEZCUXl4UFFVRlBMRVZCUVVVc1VVRkJVU3hEUVVGRExFVkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OU1ZWGxsY2xWSkxuUnplRDh3T0RjNElsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQmpiSE40SUdaeWIyMGdYQ0pqYkhONFhDSTdYRzVwYlhCdmNuUWdVbVZoWTNRc0lIc2dkWE5sUTJGc2JHSmhZMnNnZlNCbWNtOXRJRndpY21WaFkzUmNJanRjYm1sdGNHOXlkQ0I3SUVGamRHbHZiazFoYm1GblpYSWdmU0JtY205dElGd2lMaTR2WVdOMGFXOXVjeTl0WVc1aFoyVnlYQ0k3WEc1cGJYQnZjblFnZXlCRFRFRlRVMFZUSUgwZ1puSnZiU0JjSWk0dUwyTnZibk4wWVc1MGMxd2lPMXh1YVcxd2IzSjBJSHNnWlhod2IzSjBRMkZ1ZG1GeklIMGdabkp2YlNCY0lpNHVMMlJoZEdGY0lqdGNibWx0Y0c5eWRDQjdJR2x6VkdWNGRFVnNaVzFsYm5Rc0lITm9iM2RUWld4bFkzUmxaRk5vWVhCbFFXTjBhVzl1Y3lCOUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MFhDSTdYRzVwYlhCdmNuUWdleUJPYjI1RVpXeGxkR1ZrUlhoallXeHBaSEpoZDBWc1pXMWxiblFnZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEM5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1RHRnVaM1ZoWjJVc0lIUWdmU0JtY205dElGd2lMaTR2YVRFNGJsd2lPMXh1YVcxd2IzSjBJSHNnZFhObFNYTk5iMkpwYkdVZ2ZTQm1jbTl0SUZ3aUxpNHZZMjl0Y0c5dVpXNTBjeTlCY0hCY0lqdGNibWx0Y0c5eWRDQjdJR05oYkdOMWJHRjBaVk5qY205c2JFTmxiblJsY2l3Z1oyVjBVMlZzWldOMFpXUkZiR1Z0Wlc1MGN5QjlJR1p5YjIwZ1hDSXVMaTl6WTJWdVpWd2lPMXh1YVcxd2IzSjBJSHNnUlhod2IzSjBWSGx3WlNCOUlHWnliMjBnWENJdUxpOXpZMlZ1WlM5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1FYQndVSEp2Y0hNc0lFRndjRk4wWVhSbExDQkZlR05oYkdsa2NtRjNVSEp2Y0hNc0lFSnBibUZ5ZVVacGJHVnpJSDBnWm5KdmJTQmNJaTR1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCdGRYUmxSbE5CWW05eWRFVnljbTl5SUgwZ1puSnZiU0JjSWk0dUwzVjBhV3h6WENJN1hHNXBiWEJ2Y25RZ2V5QlRaV3hsWTNSbFpGTm9ZWEJsUVdOMGFXOXVjeXdnVTJoaGNHVnpVM2RwZEdOb1pYSXNJRnB2YjIxQlkzUnBiMjV6SUgwZ1puSnZiU0JjSWk0dlFXTjBhVzl1YzF3aU8xeHVhVzF3YjNKMElIc2dRbUZqYTJkeWIzVnVaRkJwWTJ0bGNrRnVaRVJoY210TmIyUmxWRzluWjJ4bElIMGdabkp2YlNCY0lpNHZRbUZqYTJkeWIzVnVaRkJwWTJ0bGNrRnVaRVJoY210TmIyUmxWRzluWjJ4bFhDSTdYRzVwYlhCdmNuUWdRMjlzYkdGaVFuVjBkRzl1SUdaeWIyMGdYQ0l1TDBOdmJHeGhZa0oxZEhSdmJsd2lPMXh1YVcxd2IzSjBJSHNnUlhKeWIzSkVhV0ZzYjJjZ2ZTQm1jbTl0SUZ3aUxpOUZjbkp2Y2tScFlXeHZaMXdpTzF4dWFXMXdiM0owSUhzZ1JYaHdiM0owUTBJc0lFbHRZV2RsUlhod2IzSjBSR2xoYkc5bklIMGdabkp2YlNCY0lpNHZTVzFoWjJWRmVIQnZjblJFYVdGc2IyZGNJanRjYm1sdGNHOXlkQ0I3SUVacGVHVmtVMmxrWlVOdmJuUmhhVzVsY2lCOUlHWnliMjBnWENJdUwwWnBlR1ZrVTJsa1pVTnZiblJoYVc1bGNsd2lPMXh1YVcxd2IzSjBJSHNnU0dsdWRGWnBaWGRsY2lCOUlHWnliMjBnWENJdUwwaHBiblJXYVdWM1pYSmNJanRjYm1sdGNHOXlkQ0I3SUVsemJHRnVaQ0I5SUdaeWIyMGdYQ0l1TDBsemJHRnVaRndpTzF4dWFXMXdiM0owSUhzZ1RHOWhaR2x1WjAxbGMzTmhaMlVnZlNCbWNtOXRJRndpTGk5TWIyRmthVzVuVFdWemMyRm5aVndpTzF4dWFXMXdiM0owSUhzZ1RHOWphMEoxZEhSdmJpQjlJR1p5YjIwZ1hDSXVMMHh2WTJ0Q2RYUjBiMjVjSWp0Y2JtbHRjRzl5ZENCN0lFMXZZbWxzWlUxbGJuVWdmU0JtY205dElGd2lMaTlOYjJKcGJHVk5aVzUxWENJN1hHNXBiWEJ2Y25RZ2V5QlFZWE4wWlVOb1lYSjBSR2xoYkc5bklIMGdabkp2YlNCY0lpNHZVR0Z6ZEdWRGFHRnlkRVJwWVd4dloxd2lPMXh1YVcxd2IzSjBJSHNnVTJWamRHbHZiaUI5SUdaeWIyMGdYQ0l1TDFObFkzUnBiMjVjSWp0Y2JtbHRjRzl5ZENCN0lFaGxiSEJFYVdGc2IyY2dmU0JtY205dElGd2lMaTlJWld4d1JHbGhiRzluWENJN1hHNXBiWEJ2Y25RZ1UzUmhZMnNnWm5KdmJTQmNJaTR2VTNSaFkydGNJanRjYm1sdGNHOXlkQ0I3SUZSdmIyeDBhWEFnZlNCbWNtOXRJRndpTGk5VWIyOXNkR2x3WENJN1hHNXBiWEJ2Y25RZ2V5QlZjMlZ5VEdsemRDQjlJR1p5YjIwZ1hDSXVMMVZ6WlhKTWFYTjBYQ0k3WEc1cGJYQnZjblFnVEdsaWNtRnllU0JtY205dElGd2lMaTR2WkdGMFlTOXNhV0p5WVhKNVhDSTdYRzVwYlhCdmNuUWdleUJLVTA5T1JYaHdiM0owUkdsaGJHOW5JSDBnWm5KdmJTQmNJaTR2U2xOUFRrVjRjRzl5ZEVScFlXeHZaMXdpTzF4dWFXMXdiM0owSUhzZ1RHbGljbUZ5ZVVKMWRIUnZiaUI5SUdaeWIyMGdYQ0l1TDB4cFluSmhjbmxDZFhSMGIyNWNJanRjYm1sdGNHOXlkQ0I3SUdselNXMWhaMlZHYVd4bFNHRnVaR3hsSUgwZ1puSnZiU0JjSWk0dUwyUmhkR0V2WW14dllsd2lPMXh1YVcxd2IzSjBJSHNnVEdsaWNtRnllVTFsYm5VZ2ZTQm1jbTl0SUZ3aUxpOU1hV0p5WVhKNVRXVnVkVndpTzF4dVhHNXBiWEJ2Y25RZ1hDSXVMMHhoZVdWeVZVa3VjMk56YzF3aU8xeHVhVzF3YjNKMElGd2lMaTlVYjI5c1ltRnlMbk5qYzNOY0lqdGNibWx0Y0c5eWRDQjdJRkJsYmsxdlpHVkNkWFIwYjI0Z2ZTQm1jbTl0SUZ3aUxpOVFaVzVOYjJSbFFuVjBkRzl1WENJN1hHNWNibWx1ZEdWeVptRmpaU0JNWVhsbGNsVkpVSEp2Y0hNZ2UxeHVJQ0JoWTNScGIyNU5ZVzVoWjJWeU9pQkJZM1JwYjI1TllXNWhaMlZ5TzF4dUlDQmhjSEJUZEdGMFpUb2dRWEJ3VTNSaGRHVTdYRzRnSUdacGJHVnpPaUJDYVc1aGNubEdhV3hsY3p0Y2JpQWdZMkZ1ZG1Gek9pQklWRTFNUTJGdWRtRnpSV3hsYldWdWRDQjhJRzUxYkd3N1hHNGdJSE5sZEVGd2NGTjBZWFJsT2lCU1pXRmpkQzVEYjIxd2IyNWxiblE4WVc1NUxDQkJjSEJUZEdGMFpUNWJYQ0p6WlhSVGRHRjBaVndpWFR0Y2JpQWdaV3hsYldWdWRITTZJSEpsWVdSdmJteDVJRTV2YmtSbGJHVjBaV1JGZUdOaGJHbGtjbUYzUld4bGJXVnVkRnRkTzF4dUlDQnZia052Ykd4aFlrSjFkSFJ2YmtOc2FXTnJQem9nS0NrZ1BUNGdkbTlwWkR0Y2JpQWdiMjVNYjJOclZHOW5aMnhsT2lBb0tTQTlQaUIyYjJsa08xeHVJQ0J2YmxCbGJrMXZaR1ZVYjJkbmJHVTZJQ2dwSUQwK0lIWnZhV1E3WEc0Z0lHOXVTVzV6WlhKMFJXeGxiV1Z1ZEhNNklDaGxiR1Z0Wlc1MGN6b2djbVZoWkc5dWJIa2dUbTl1UkdWc1pYUmxaRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTBwSUQwK0lIWnZhV1E3WEc0Z0lIcGxiazF2WkdWRmJtRmliR1ZrT2lCaWIyOXNaV0Z1TzF4dUlDQnphRzkzUlhocGRGcGxiazF2WkdWQ2RHNDZJR0p2YjJ4bFlXNDdYRzRnSUhOb2IzZFVhR1Z0WlVKMGJqb2dZbTl2YkdWaGJqdGNiaUFnZEc5bloyeGxXbVZ1VFc5a1pUb2dLQ2tnUFQ0Z2RtOXBaRHRjYmlBZ2JHRnVaME52WkdVNklFeGhibWQxWVdkbFcxd2lZMjlrWlZ3aVhUdGNiaUFnYVhORGIyeHNZV0p2Y21GMGFXNW5PaUJpYjI5c1pXRnVPMXh1SUNCeVpXNWtaWEpVYjNCU2FXZG9kRlZKUHpvZ0tGeHVJQ0FnSUdselRXOWlhV3hsT2lCaWIyOXNaV0Z1TEZ4dUlDQWdJR0Z3Y0ZOMFlYUmxPaUJCY0hCVGRHRjBaU3hjYmlBZ0tTQTlQaUJLVTFndVJXeGxiV1Z1ZENCOElHNTFiR3c3WEc0Z0lISmxibVJsY2tOMWMzUnZiVVp2YjNSbGNqODZJQ2hwYzAxdlltbHNaVG9nWW05dmJHVmhiaXdnWVhCd1UzUmhkR1U2SUVGd2NGTjBZWFJsS1NBOVBpQktVMWd1Uld4bGJXVnVkRHRjYmlBZ2RtbGxkMDF2WkdWRmJtRmliR1ZrT2lCaWIyOXNaV0Z1TzF4dUlDQnNhV0p5WVhKNVVtVjBkWEp1VlhKc09pQkZlR05oYkdsa2NtRjNVSEp2Y0hOYlhDSnNhV0p5WVhKNVVtVjBkWEp1VlhKc1hDSmRPMXh1SUNCVlNVOXdkR2x2Ym5NNklFRndjRkJ5YjNCelcxd2lWVWxQY0hScGIyNXpYQ0pkTzF4dUlDQm1iMk4xYzBOdmJuUmhhVzVsY2pvZ0tDa2dQVDRnZG05cFpEdGNiaUFnYkdsaWNtRnllVG9nVEdsaWNtRnllVHRjYmlBZ2FXUTZJSE4wY21sdVp6dGNiaUFnYjI1SmJXRm5aVUZqZEdsdmJqb2dLR1JoZEdFNklIc2dhVzV6WlhKMFQyNURZVzUyWVhORWFYSmxZM1JzZVRvZ1ltOXZiR1ZoYmlCOUtTQTlQaUIyYjJsa08xeHVmVnh1WEc1amIyNXpkQ0JNWVhsbGNsVkpJRDBnS0h0Y2JpQWdZV04wYVc5dVRXRnVZV2RsY2l4Y2JpQWdZWEJ3VTNSaGRHVXNYRzRnSUdacGJHVnpMRnh1SUNCelpYUkJjSEJUZEdGMFpTeGNiaUFnWTJGdWRtRnpMRnh1SUNCbGJHVnRaVzUwY3l4Y2JpQWdiMjVEYjJ4c1lXSkNkWFIwYjI1RGJHbGpheXhjYmlBZ2IyNU1iMk5yVkc5bloyeGxMRnh1SUNCdmJsQmxiazF2WkdWVWIyZG5iR1VzWEc0Z0lHOXVTVzV6WlhKMFJXeGxiV1Z1ZEhNc1hHNGdJSHBsYmsxdlpHVkZibUZpYkdWa0xGeHVJQ0J6YUc5M1JYaHBkRnBsYmsxdlpHVkNkRzRzWEc0Z0lITm9iM2RVYUdWdFpVSjBiaXhjYmlBZ2RHOW5aMnhsV21WdVRXOWtaU3hjYmlBZ2FYTkRiMnhzWVdKdmNtRjBhVzVuTEZ4dUlDQnlaVzVrWlhKVWIzQlNhV2RvZEZWSkxGeHVJQ0J5Wlc1a1pYSkRkWE4wYjIxR2IyOTBaWElzWEc0Z0lIWnBaWGROYjJSbFJXNWhZbXhsWkN4Y2JpQWdiR2xpY21GeWVWSmxkSFZ5YmxWeWJDeGNiaUFnVlVsUGNIUnBiMjV6TEZ4dUlDQm1iMk4xYzBOdmJuUmhhVzVsY2l4Y2JpQWdiR2xpY21GeWVTeGNiaUFnYVdRc1hHNGdJRzl1U1cxaFoyVkJZM1JwYjI0c1hHNTlPaUJNWVhsbGNsVkpVSEp2Y0hNcElEMCtJSHRjYmlBZ1kyOXVjM1FnYVhOTmIySnBiR1VnUFNCMWMyVkpjMDF2WW1sc1pTZ3BPMXh1WEc0Z0lHTnZibk4wSUhKbGJtUmxja3BUVDA1RmVIQnZjblJFYVdGc2IyY2dQU0FvS1NBOVBpQjdYRzRnSUNBZ2FXWWdLQ0ZWU1U5d2RHbHZibk11WTJGdWRtRnpRV04wYVc5dWN5NWxlSEJ2Y25RcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlBb1hHNGdJQ0FnSUNBOFNsTlBUa1Y0Y0c5eWRFUnBZV3h2WjF4dUlDQWdJQ0FnSUNCbGJHVnRaVzUwY3oxN1pXeGxiV1Z1ZEhOOVhHNGdJQ0FnSUNBZ0lHRndjRk4wWVhSbFBYdGhjSEJUZEdGMFpYMWNiaUFnSUNBZ0lDQWdabWxzWlhNOWUyWnBiR1Z6ZlZ4dUlDQWdJQ0FnSUNCaFkzUnBiMjVOWVc1aFoyVnlQWHRoWTNScGIyNU5ZVzVoWjJWeWZWeHVJQ0FnSUNBZ0lDQmxlSEJ2Y25SUGNIUnpQWHRWU1U5d2RHbHZibk11WTJGdWRtRnpRV04wYVc5dWN5NWxlSEJ2Y25SOVhHNGdJQ0FnSUNBZ0lHTmhiblpoY3oxN1kyRnVkbUZ6ZlZ4dUlDQWdJQ0FnTHo1Y2JpQWdJQ0FwTzF4dUlDQjlPMXh1WEc0Z0lHTnZibk4wSUhKbGJtUmxja2x0WVdkbFJYaHdiM0owUkdsaGJHOW5JRDBnS0NrZ1BUNGdlMXh1SUNBZ0lHbG1JQ2doVlVsUGNIUnBiMjV6TG1OaGJuWmhjMEZqZEdsdmJuTXVjMkYyWlVGelNXMWhaMlVwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR055WldGMFpVVjRjRzl5ZEdWeUlEMWNiaUFnSUNBZ0lDaDBlWEJsT2lCRmVIQnZjblJVZVhCbEtUb2dSWGh3YjNKMFEwSWdQVDVjYmlBZ0lDQWdJR0Z6ZVc1aklDaGxlSEJ2Y25SbFpFVnNaVzFsYm5SektTQTlQaUI3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1pwYkdWSVlXNWtiR1VnUFNCaGQyRnBkQ0JsZUhCdmNuUkRZVzUyWVhNb1hHNGdJQ0FnSUNBZ0lDQWdkSGx3WlN4Y2JpQWdJQ0FnSUNBZ0lDQmxlSEJ2Y25SbFpFVnNaVzFsYm5SekxGeHVJQ0FnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdJQ0FnSUdacGJHVnpMRnh1SUNBZ0lDQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1Y0Y0c5eWRFSmhZMnRuY205MWJtUTZJR0Z3Y0ZOMFlYUmxMbVY0Y0c5eWRFSmhZMnRuY205MWJtUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCdVlXMWxPaUJoY0hCVGRHRjBaUzV1WVcxbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1sbGQwSmhZMnRuY205MWJtUkRiMnh2Y2pvZ1lYQndVM1JoZEdVdWRtbGxkMEpoWTJ0bmNtOTFibVJEYjJ4dmNpeGNiaUFnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBZ0lDQWdMbU5oZEdOb0tHMTFkR1ZHVTBGaWIzSjBSWEp5YjNJcFhHNGdJQ0FnSUNBZ0lDQWdMbU5oZEdOb0tDaGxjbkp2Y2lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjMjlzWlM1bGNuSnZjaWhsY25KdmNpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCelpYUkJjSEJUZEdGMFpTaDdJR1Z5Y205eVRXVnpjMkZuWlRvZ1pYSnliM0l1YldWemMyRm5aU0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQjlLVHRjYmx4dUlDQWdJQ0FnSUNCcFppQW9YRzRnSUNBZ0lDQWdJQ0FnWVhCd1UzUmhkR1V1Wlhod2IzSjBSVzFpWldSVFkyVnVaU0FtSmx4dUlDQWdJQ0FnSUNBZ0lHWnBiR1ZJWVc1a2JHVWdKaVpjYmlBZ0lDQWdJQ0FnSUNCcGMwbHRZV2RsUm1sc1pVaGhibVJzWlNobWFXeGxTR0Z1Wkd4bEtWeHVJQ0FnSUNBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnSUNCelpYUkJjSEJUZEdGMFpTaDdJR1pwYkdWSVlXNWtiR1VnZlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMDdYRzVjYmlBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ1BFbHRZV2RsUlhod2IzSjBSR2xoYkc5blhHNGdJQ0FnSUNBZ0lHVnNaVzFsYm5SelBYdGxiR1Z0Wlc1MGMzMWNiaUFnSUNBZ0lDQWdZWEJ3VTNSaGRHVTllMkZ3Y0ZOMFlYUmxmVnh1SUNBZ0lDQWdJQ0JtYVd4bGN6MTdabWxzWlhOOVhHNGdJQ0FnSUNBZ0lHRmpkR2x2YmsxaGJtRm5aWEk5ZTJGamRHbHZiazFoYm1GblpYSjlYRzRnSUNBZ0lDQWdJRzl1Ulhod2IzSjBWRzlRYm1jOWUyTnlaV0YwWlVWNGNHOXlkR1Z5S0Z3aWNHNW5YQ0lwZlZ4dUlDQWdJQ0FnSUNCdmJrVjRjRzl5ZEZSdlUzWm5QWHRqY21WaGRHVkZlSEJ2Y25SbGNpaGNJbk4yWjF3aUtYMWNiaUFnSUNBZ0lDQWdiMjVGZUhCdmNuUlViME5zYVhCaWIyRnlaRDE3WTNKbFlYUmxSWGh3YjNKMFpYSW9YQ0pqYkdsd1ltOWhjbVJjSWlsOVhHNGdJQ0FnSUNBdlBseHVJQ0FnSUNrN1hHNGdJSDA3WEc1Y2JpQWdZMjl1YzNRZ1UyVndZWEpoZEc5eUlEMGdLQ2tnUFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUE4WkdsMklITjBlV3hsUFh0N0lIZHBaSFJvT2lCY0lpNDJNalZsYlZ3aUlIMTlJQzgrTzF4dUlDQjlPMXh1WEc0Z0lHTnZibk4wSUhKbGJtUmxjbFpwWlhkTmIyUmxRMkZ1ZG1GelFXTjBhVzl1Y3lBOUlDZ3BJRDArSUh0Y2JpQWdJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lDQWdQRk5sWTNScGIyNWNiaUFnSUNBZ0lDQWdhR1ZoWkdsdVp6MWNJbU5oYm5aaGMwRmpkR2x2Ym5OY0lseHVJQ0FnSUNBZ0lDQmpiR0Z6YzA1aGJXVTllMk5zYzNnb1hDSjZaVzR0Ylc5a1pTMTBjbUZ1YzJsMGFXOXVYQ0lzSUh0Y2JpQWdJQ0FnSUNBZ0lDQmNJblJ5WVc1emFYUnBiMjR0YkdWbWRGd2lPaUI2Wlc1TmIyUmxSVzVoWW14bFpDeGNiaUFnSUNBZ0lDQWdmU2w5WEc0Z0lDQWdJQ0ErWEc0Z0lDQWdJQ0FnSUhzdktpQjBhR1VnZWtsdVpHVjRJR1Z1YzNWeVpYTWdkR2hwY3lCdFpXNTFJR2hoY3lCb2FXZG9aWElnYzNSaFkydHBibWNnYjNKa1pYSXNYRzRnSUNBZ0lDQWdJQ0J6WldVZ2FIUjBjSE02THk5bmFYUm9kV0l1WTI5dEwyVjRZMkZzYVdSeVlYY3ZaWGhqWVd4cFpISmhkeTl3ZFd4c0x6RTBORFVnS2k5OVhHNGdJQ0FnSUNBZ0lEeEpjMnhoYm1RZ2NHRmtaR2x1WnoxN01uMGdjM1I1YkdVOWUzc2dla2x1WkdWNE9pQXhJSDE5UGx4dUlDQWdJQ0FnSUNBZ0lEeFRkR0ZqYXk1RGIyd2daMkZ3UFhzMGZUNWNiaUFnSUNBZ0lDQWdJQ0FnSUR4VGRHRmpheTVTYjNjZ1oyRndQWHN4ZlNCcWRYTjBhV1o1UTI5dWRHVnVkRDFjSW5Od1lXTmxMV0psZEhkbFpXNWNJajVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdlM0psYm1SbGNrcFRUMDVGZUhCdmNuUkVhV0ZzYjJjb0tYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2UzSmxibVJsY2tsdFlXZGxSWGh3YjNKMFJHbGhiRzluS0NsOVhHNGdJQ0FnSUNBZ0lDQWdJQ0E4TDFOMFlXTnJMbEp2ZHo1Y2JpQWdJQ0FnSUNBZ0lDQThMMU4wWVdOckxrTnZiRDVjYmlBZ0lDQWdJQ0FnUEM5SmMyeGhibVErWEc0Z0lDQWdJQ0E4TDFObFkzUnBiMjQrWEc0Z0lDQWdLVHRjYmlBZ2ZUdGNibHh1SUNCamIyNXpkQ0J5Wlc1a1pYSkRZVzUyWVhOQlkzUnBiMjV6SUQwZ0tDa2dQVDRnS0Z4dUlDQWdJRHhUWldOMGFXOXVYRzRnSUNBZ0lDQm9aV0ZrYVc1blBWd2lZMkZ1ZG1GelFXTjBhVzl1YzF3aVhHNGdJQ0FnSUNCamJHRnpjMDVoYldVOWUyTnNjM2dvWENKNlpXNHRiVzlrWlMxMGNtRnVjMmwwYVc5dVhDSXNJSHRjYmlBZ0lDQWdJQ0FnWENKMGNtRnVjMmwwYVc5dUxXeGxablJjSWpvZ2VtVnVUVzlrWlVWdVlXSnNaV1FzWEc0Z0lDQWdJQ0I5S1gxY2JpQWdJQ0ErWEc0Z0lDQWdJQ0I3THlvZ2RHaGxJSHBKYm1SbGVDQmxibk4xY21WeklIUm9hWE1nYldWdWRTQm9ZWE1nYUdsbmFHVnlJSE4wWVdOcmFXNW5JRzl5WkdWeUxGeHVJQ0FnSUNBZ0lDQWdjMlZsSUdoMGRIQnpPaTh2WjJsMGFIVmlMbU52YlM5bGVHTmhiR2xrY21GM0wyVjRZMkZzYVdSeVlYY3ZjSFZzYkM4eE5EUTFJQ292ZlZ4dUlDQWdJQ0FnUEVsemJHRnVaQ0J3WVdSa2FXNW5QWHN5ZlNCemRIbHNaVDE3ZXlCNlNXNWtaWGc2SURFZ2ZYMCtYRzRnSUNBZ0lDQWdJRHhUZEdGamF5NURiMndnWjJGd1BYczBmVDVjYmlBZ0lDQWdJQ0FnSUNBOFUzUmhZMnN1VW05M0lHZGhjRDE3TVgwZ2FuVnpkR2xtZVVOdmJuUmxiblE5WENKemNHRmpaUzFpWlhSM1pXVnVYQ0krWEc0Z0lDQWdJQ0FnSUNBZ0lDQjdZV04wYVc5dVRXRnVZV2RsY2k1eVpXNWtaWEpCWTNScGIyNG9YQ0pqYkdWaGNrTmhiblpoYzF3aUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUR4VFpYQmhjbUYwYjNJZ0x6NWNiaUFnSUNBZ0lDQWdJQ0FnSUh0aFkzUnBiMjVOWVc1aFoyVnlMbkpsYm1SbGNrRmpkR2x2YmloY0lteHZZV1JUWTJWdVpWd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIdHlaVzVrWlhKS1UwOU9SWGh3YjNKMFJHbGhiRzluS0NsOVhHNGdJQ0FnSUNBZ0lDQWdJQ0I3Y21WdVpHVnlTVzFoWjJWRmVIQnZjblJFYVdGc2IyY29LWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFRaWEJoY21GMGIzSWdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lIdHZia052Ykd4aFlrSjFkSFJ2YmtOc2FXTnJJQ1ltSUNoY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnUEVOdmJHeGhZa0oxZEhSdmJseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbHpRMjlzYkdGaWIzSmhkR2x1WnoxN2FYTkRiMnhzWVdKdmNtRjBhVzVuZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJHeGhZbTl5WVhSdmNrTnZkVzUwUFh0aGNIQlRkR0YwWlM1amIyeHNZV0p2Y21GMGIzSnpMbk5wZW1WOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNURiR2xqYXoxN2IyNURiMnhzWVdKQ2RYUjBiMjVEYkdsamEzMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0x6NWNiaUFnSUNBZ0lDQWdJQ0FnSUNsOVhHNGdJQ0FnSUNBZ0lDQWdQQzlUZEdGamF5NVNiM2MrWEc0Z0lDQWdJQ0FnSUNBZ1BFSmhZMnRuY205MWJtUlFhV05yWlhKQmJtUkVZWEpyVFc5a1pWUnZaMmRzWlZ4dUlDQWdJQ0FnSUNBZ0lDQWdZV04wYVc5dVRXRnVZV2RsY2oxN1lXTjBhVzl1VFdGdVlXZGxjbjFjYmlBZ0lDQWdJQ0FnSUNBZ0lHRndjRk4wWVhSbFBYdGhjSEJUZEdGMFpYMWNiaUFnSUNBZ0lDQWdJQ0FnSUhObGRFRndjRk4wWVhSbFBYdHpaWFJCY0hCVGRHRjBaWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lITm9iM2RVYUdWdFpVSjBiajE3YzJodmQxUm9aVzFsUW5SdWZWeHVJQ0FnSUNBZ0lDQWdJQzgrWEc0Z0lDQWdJQ0FnSUNBZ2UyRndjRk4wWVhSbExtWnBiR1ZJWVc1a2JHVWdKaVlnS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdQRDU3WVdOMGFXOXVUV0Z1WVdkbGNpNXlaVzVrWlhKQlkzUnBiMjRvWENKellYWmxWRzlCWTNScGRtVkdhV3hsWENJcGZUd3ZQbHh1SUNBZ0lDQWdJQ0FnSUNsOVhHNGdJQ0FnSUNBZ0lEd3ZVM1JoWTJzdVEyOXNQbHh1SUNBZ0lDQWdQQzlKYzJ4aGJtUStYRzRnSUNBZ1BDOVRaV04wYVc5dVBseHVJQ0FwTzF4dVhHNGdJR052Ym5OMElISmxibVJsY2xObGJHVmpkR1ZrVTJoaGNHVkJZM1JwYjI1eklEMGdLQ2tnUFQ0Z0tGeHVJQ0FnSUR4VFpXTjBhVzl1WEc0Z0lDQWdJQ0JvWldGa2FXNW5QVndpYzJWc1pXTjBaV1JUYUdGd1pVRmpkR2x2Ym5OY0lseHVJQ0FnSUNBZ1kyeGhjM05PWVcxbFBYdGpiSE40S0Z3aWVtVnVMVzF2WkdVdGRISmhibk5wZEdsdmJsd2lMQ0I3WEc0Z0lDQWdJQ0FnSUZ3aWRISmhibk5wZEdsdmJpMXNaV1owWENJNklIcGxiazF2WkdWRmJtRmliR1ZrTEZ4dUlDQWdJQ0FnZlNsOVhHNGdJQ0FnUGx4dUlDQWdJQ0FnUEVsemJHRnVaRnh1SUNBZ0lDQWdJQ0JqYkdGemMwNWhiV1U5ZTBOTVFWTlRSVk11VTBoQlVFVmZRVU5VU1U5T1UxOU5SVTVWZlZ4dUlDQWdJQ0FnSUNCd1lXUmthVzVuUFhzeWZWeHVJQ0FnSUNBZ0lDQnpkSGxzWlQxN2UxeHVJQ0FnSUNBZ0lDQWdJQzh2SUhkbElIZGhiblFnZEc4Z2JXRnJaU0J6ZFhKbElIUm9hWE1nWkc5bGMyNG5kQ0J2ZG1WeVpteHZkeUJ6YnlCemRXSnpkSEpoWTNScGJtY2dNakF3WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdkMmhwWTJnZ2FYTWdZWEJ3Y205NGFXMWhkR1ZzZVNCb1pXbG5hSFFnYjJZZ2VtOXZiU0JtYjI5MFpYSWdZVzVrSUhSdmNDQnNaV1owSUcxbGJuVWdhWFJsYlhNZ2QybDBhQ0J6YjIxbElHSjFabVpsY2x4dUlDQWdJQ0FnSUNBZ0lDOHZJR2xtSUdGamRHbDJaU0JtYVd4bElHNWhiV1VnYVhNZ1pHbHpjR3hoZVdWa0xDQnpkV0owY21GamRHbHVaeUF5TkRnZ2RHOGdZV05qYjNWdWRDQm1iM0lnYVhSeklHaGxhV2RvZEZ4dUlDQWdJQ0FnSUNBZ0lHMWhlRWhsYVdkb2REb2dZQ1I3WVhCd1UzUmhkR1V1YUdWcFoyaDBJQzBnS0dGd2NGTjBZWFJsTG1acGJHVklZVzVrYkdVZ1B5QXlORGdnT2lBeU1EQXBmWEI0WUN4Y2JpQWdJQ0FnSUNBZ2ZYMWNiaUFnSUNBZ0lENWNiaUFnSUNBZ0lDQWdQRk5sYkdWamRHVmtVMmhoY0dWQlkzUnBiMjV6WEc0Z0lDQWdJQ0FnSUNBZ1lYQndVM1JoZEdVOWUyRndjRk4wWVhSbGZWeHVJQ0FnSUNBZ0lDQWdJR1ZzWlcxbGJuUnpQWHRsYkdWdFpXNTBjMzFjYmlBZ0lDQWdJQ0FnSUNCeVpXNWtaWEpCWTNScGIyNDllMkZqZEdsdmJrMWhibUZuWlhJdWNtVnVaR1Z5UVdOMGFXOXVmVnh1SUNBZ0lDQWdJQ0FnSUdWc1pXMWxiblJVZVhCbFBYdGhjSEJUZEdGMFpTNWxiR1Z0Wlc1MFZIbHdaWDFjYmlBZ0lDQWdJQ0FnTHo1Y2JpQWdJQ0FnSUR3dlNYTnNZVzVrUGx4dUlDQWdJRHd2VTJWamRHbHZiajVjYmlBZ0tUdGNibHh1SUNCamIyNXpkQ0JqYkc5elpVeHBZbkpoY25rZ1BTQjFjMlZEWVd4c1ltRmpheWdvS1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnYVhORWFXRnNiMmRQY0dWdUlEMGdJU0ZrYjJOMWJXVnVkQzV4ZFdWeWVWTmxiR1ZqZEc5eUtGd2lMa1JwWVd4dloxd2lLVHRjYmx4dUlDQWdJQzh2SUZCeVpYWmxiblFnWTJ4dmMybHVaeUJwWmlCaGJua2daR2xoYkc5bklHbHpJRzl3Wlc1Y2JpQWdJQ0JwWmlBb2FYTkVhV0ZzYjJkUGNHVnVLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVJQ0FnSUhObGRFRndjRk4wWVhSbEtIc2dhWE5NYVdKeVlYSjVUM0JsYmpvZ1ptRnNjMlVnZlNrN1hHNGdJSDBzSUZ0elpYUkJjSEJUZEdGMFpWMHBPMXh1WEc0Z0lHTnZibk4wSUdSbGMyVnNaV04wU1hSbGJYTWdQU0IxYzJWRFlXeHNZbUZqYXlnb0tTQTlQaUI3WEc0Z0lDQWdjMlYwUVhCd1UzUmhkR1VvZTF4dUlDQWdJQ0FnYzJWc1pXTjBaV1JGYkdWdFpXNTBTV1J6T2lCN2ZTeGNiaUFnSUNBZ0lITmxiR1ZqZEdWa1IzSnZkWEJKWkhNNklIdDlMRnh1SUNBZ0lIMHBPMXh1SUNCOUxDQmJjMlYwUVhCd1UzUmhkR1ZkS1R0Y2JseHVJQ0JqYjI1emRDQnNhV0p5WVhKNVRXVnVkU0E5SUdGd2NGTjBZWFJsTG1selRHbGljbUZ5ZVU5d1pXNGdQeUFvWEc0Z0lDQWdQRXhwWW5KaGNubE5aVzUxWEc0Z0lDQWdJQ0J3Wlc1a2FXNW5SV3hsYldWdWRITTllMmRsZEZObGJHVmpkR1ZrUld4bGJXVnVkSE1vWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsTENCMGNuVmxLWDFjYmlBZ0lDQWdJRzl1UTJ4dmMyVTllMk5zYjNObFRHbGljbUZ5ZVgxY2JpQWdJQ0FnSUc5dVNXNXpaWEowVTJoaGNHVTllMjl1U1c1elpYSjBSV3hsYldWdWRITjlYRzRnSUNBZ0lDQnZia0ZrWkZSdlRHbGljbUZ5ZVQxN1pHVnpaV3hsWTNSSmRHVnRjMzFjYmlBZ0lDQWdJSE5sZEVGd2NGTjBZWFJsUFh0elpYUkJjSEJUZEdGMFpYMWNiaUFnSUNBZ0lHeHBZbkpoY25sU1pYUjFjbTVWY213OWUyeHBZbkpoY25sU1pYUjFjbTVWY214OVhHNGdJQ0FnSUNCbWIyTjFjME52Ym5SaGFXNWxjajE3Wm05amRYTkRiMjUwWVdsdVpYSjlYRzRnSUNBZ0lDQnNhV0p5WVhKNVBYdHNhV0p5WVhKNWZWeHVJQ0FnSUNBZ2RHaGxiV1U5ZTJGd2NGTjBZWFJsTG5Sb1pXMWxmVnh1SUNBZ0lDQWdabWxzWlhNOWUyWnBiR1Z6ZlZ4dUlDQWdJQ0FnYVdROWUybGtmVnh1SUNBZ0lDQWdZWEJ3VTNSaGRHVTllMkZ3Y0ZOMFlYUmxmVnh1SUNBZ0lDOCtYRzRnSUNrZ09pQnVkV3hzTzF4dVhHNGdJR052Ym5OMElISmxibVJsY2tacGVHVmtVMmxrWlVOdmJuUmhhVzVsY2lBOUlDZ3BJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQnphRzkxYkdSU1pXNWtaWEpUWld4bFkzUmxaRk5vWVhCbFFXTjBhVzl1Y3lBOUlITm9iM2RUWld4bFkzUmxaRk5vWVhCbFFXTjBhVzl1Y3loY2JpQWdJQ0FnSUdGd2NGTjBZWFJsTEZ4dUlDQWdJQ0FnWld4bGJXVnVkSE1zWEc0Z0lDQWdLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQW9YRzRnSUNBZ0lDQThSbWw0WldSVGFXUmxRMjl1ZEdGcGJtVnlJSE5wWkdVOVhDSjBiM0JjSWo1Y2JpQWdJQ0FnSUNBZ1BHUnBkaUJqYkdGemMwNWhiV1U5WENKQmNIQXRiV1Z1ZFNCQmNIQXRiV1Z1ZFY5MGIzQmNJajVjYmlBZ0lDQWdJQ0FnSUNBOFUzUmhZMnN1UTI5c1hHNGdJQ0FnSUNBZ0lDQWdJQ0JuWVhBOWV6UjlYRzRnSUNBZ0lDQWdJQ0FnSUNCamJHRnpjMDVoYldVOWUyTnNjM2dvZXlCY0ltUnBjMkZpYkdVdGNHOXBiblJsY2tWMlpXNTBjMXdpT2lCNlpXNU5iMlJsUlc1aFlteGxaQ0I5S1gxY2JpQWdJQ0FnSUNBZ0lDQStYRzRnSUNBZ0lDQWdJQ0FnSUNCN2RtbGxkMDF2WkdWRmJtRmliR1ZrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRDhnY21WdVpHVnlWbWxsZDAxdlpHVkRZVzUyWVhOQlkzUnBiMjV6S0NsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnT2lCeVpXNWtaWEpEWVc1MllYTkJZM1JwYjI1ektDbDlYRzRnSUNBZ0lDQWdJQ0FnSUNCN2MyaHZkV3hrVW1WdVpHVnlVMlZzWldOMFpXUlRhR0Z3WlVGamRHbHZibk1nSmlZZ2NtVnVaR1Z5VTJWc1pXTjBaV1JUYUdGd1pVRmpkR2x2Ym5Nb0tYMWNiaUFnSUNBZ0lDQWdJQ0E4TDFOMFlXTnJMa052YkQ1Y2JpQWdJQ0FnSUNBZ0lDQjdJWFpwWlhkTmIyUmxSVzVoWW14bFpDQW1KaUFvWEc0Z0lDQWdJQ0FnSUNBZ0lDQThVMlZqZEdsdmJpQm9aV0ZrYVc1blBWd2ljMmhoY0dWelhDSStYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIc29hR1ZoWkdsdVp5a2dQVDRnS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGRHRmpheTVEYjJ3Z1oyRndQWHMwZlNCaGJHbG5iajFjSW5OMFlYSjBYQ0krWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFUzUmhZMnN1VW05M1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2RoY0QxN01YMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJ4aGMzTk9ZVzFsUFh0amJITjRLRndpUVhCd0xYUnZiMnhpWVhJdFkyOXVkR0ZwYm1WeVhDSXNJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmNJbnBsYmkxdGIyUmxYQ0k2SUhwbGJrMXZaR1ZGYm1GaWJHVmtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BGQmxiazF2WkdWQ2RYUjBiMjVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjZaVzVOYjJSbFJXNWhZbXhsWkQxN2VtVnVUVzlrWlVWdVlXSnNaV1I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMmhsWTJ0bFpEMTdZWEJ3VTNSaGRHVXVjR1Z1VFc5a1pYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrTm9ZVzVuWlQxN2IyNVFaVzVOYjJSbFZHOW5aMnhsZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJwZEd4bFBYdDBLRndpZEc5dmJFSmhjaTV3Wlc1TmIyUmxYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJsYmtSbGRHVmpkR1ZrUFh0aGNIQlRkR0YwWlM1d1pXNUVaWFJsWTNSbFpIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQRXh2WTJ0Q2RYUjBiMjVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjZaVzVOYjJSbFJXNWhZbXhsWkQxN2VtVnVUVzlrWlVWdVlXSnNaV1I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMmhsWTJ0bFpEMTdZWEJ3VTNSaGRHVXVaV3hsYldWdWRFeHZZMnRsWkgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtOb1lXNW5aVDE3YjI1TWIyTnJWRzluWjJ4bGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhScGRHeGxQWHQwS0Z3aWRHOXZiRUpoY2k1c2IyTnJYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFNYTnNZVzVrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjR0ZrWkdsdVp6MTdNWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiR0Z6YzA1aGJXVTllMk5zYzNnb1hDSkJjSEF0ZEc5dmJHSmhjbHdpTENCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCY0lucGxiaTF0YjJSbFhDSTZJSHBsYmsxdlpHVkZibUZpYkdWa0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgwcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0ErWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQRWhwYm5SV2FXVjNaWEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxQWHRoY0hCVGRHRjBaWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzWlcxbGJuUnpQWHRsYkdWdFpXNTBjMzFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x6VFc5aWFXeGxQWHRwYzAxdlltbHNaWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIdG9aV0ZrYVc1bmZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGRHRmpheTVTYjNjZ1oyRndQWHN4ZlQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGFHRndaWE5UZDJsMFkyaGxjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVc1MllYTTllMk5oYm5aaGMzMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRGUjVjR1U5ZTJGd2NGTjBZWFJsTG1Wc1pXMWxiblJVZVhCbGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpaWFJCY0hCVGRHRjBaVDE3YzJWMFFYQndVM1JoZEdWOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVTVzFoWjJWQlkzUnBiMjQ5ZXloN0lIQnZhVzUwWlhKVWVYQmxJSDBwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2YmtsdFlXZGxRV04wYVc5dUtIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsdWMyVnlkRTl1UTJGdWRtRnpSR2x5WldOMGJIazZJSEJ2YVc1MFpYSlVlWEJsSUNFOVBTQmNJbTF2ZFhObFhDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMTlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZVM1JoWTJzdVVtOTNQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwwbHpiR0Z1WkQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQRXhwWW5KaGNubENkWFIwYjI1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JoY0hCVGRHRjBaVDE3WVhCd1UzUmhkR1Y5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMlYwUVhCd1UzUmhkR1U5ZTNObGRFRndjRk4wWVhSbGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BDOVRkR0ZqYXk1U2IzYytYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I3YkdsaWNtRnllVTFsYm5WOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BDOVRkR0ZqYXk1RGIydytYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDbDlYRzRnSUNBZ0lDQWdJQ0FnSUNBOEwxTmxZM1JwYjI0K1hHNGdJQ0FnSUNBZ0lDQWdLWDFjYmlBZ0lDQWdJQ0FnSUNBOFpHbDJYRzRnSUNBZ0lDQWdJQ0FnSUNCamJHRnpjMDVoYldVOWUyTnNjM2dvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRndpYkdGNVpYSXRkV2xmWDNkeVlYQndaWEpmWDNSdmNDMXlhV2RvZENCNlpXNHRiVzlrWlMxMGNtRnVjMmwwYVc5dVhDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmNJblJ5WVc1emFYUnBiMjR0Y21sbmFIUmNJam9nZW1WdVRXOWtaVVZ1WVdKc1pXUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBcGZWeHVJQ0FnSUNBZ0lDQWdJRDVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFZjMlZ5VEdsemRENWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2UyRndjRk4wWVhSbExtTnZiR3hoWW05eVlYUnZjbk11YzJsNlpTQStJREFnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCQmNuSmhlUzVtY205dEtHRndjRk4wWVhSbExtTnZiR3hoWW05eVlYUnZjbk1wWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QkRiMnhzWVdKdmNtRjBiM0lnYVhNZ1pXbDBhR1Z5SUc1dmRDQnBibWwwYVdGc2FYcGxaQ0J2Y2lCcGN5QmhZM1IxWVd4c2VTQjBhR1VnWTNWeWNtVnVkQ0IxYzJWeUxseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMbVpwYkhSbGNpZ29XMThzSUdOc2FXVnVkRjBwSUQwK0lFOWlhbVZqZEM1clpYbHpLR05zYVdWdWRDa3ViR1Z1WjNSb0lDRTlQU0F3S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0xtMWhjQ2dvVzJOc2FXVnVkRWxrTENCamJHbGxiblJkS1NBOVBpQW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VWIyOXNkR2x3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR0ZpWld3OWUyTnNhV1Z1ZEM1MWMyVnlibUZ0WlNCOGZDQmNJbFZ1YTI1dmQyNGdkWE5sY2x3aWZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd0bGVUMTdZMnhwWlc1MFNXUjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I3WVdOMGFXOXVUV0Z1WVdkbGNpNXlaVzVrWlhKQlkzUnBiMjRvWENKbmIxUnZRMjlzYkdGaWIzSmhkRzl5WENJc0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbGtPaUJqYkdsbGJuUkpaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BDOVViMjlzZEdsd1BseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLU2w5WEc0Z0lDQWdJQ0FnSUNBZ0lDQThMMVZ6WlhKTWFYTjBQbHh1SUNBZ0lDQWdJQ0FnSUNBZ2UzSmxibVJsY2xSdmNGSnBaMmgwVlVrL0xpaHBjMDF2WW1sc1pTd2dZWEJ3VTNSaGRHVXBmVnh1SUNBZ0lDQWdJQ0FnSUR3dlpHbDJQbHh1SUNBZ0lDQWdJQ0E4TDJScGRqNWNiaUFnSUNBZ0lEd3ZSbWw0WldSVGFXUmxRMjl1ZEdGcGJtVnlQbHh1SUNBZ0lDazdYRzRnSUgwN1hHNWNiaUFnWTI5dWMzUWdjbVZ1WkdWeVFtOTBkRzl0UVhCd1RXVnVkU0E5SUNncElEMCtJSHRjYmlBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ1BHWnZiM1JsY2x4dUlDQWdJQ0FnSUNCeWIyeGxQVndpWTI5dWRHVnVkR2x1Wm05Y0lseHVJQ0FnSUNBZ0lDQmpiR0Z6YzA1aGJXVTlYQ0pzWVhsbGNpMTFhVjlmZDNKaGNIQmxjbDlmWm05dmRHVnlJRUZ3Y0MxdFpXNTFJRUZ3Y0MxdFpXNTFYMkp2ZEhSdmJWd2lYRzRnSUNBZ0lDQStYRzRnSUNBZ0lDQWdJRHhrYVhaY2JpQWdJQ0FnSUNBZ0lDQmpiR0Z6YzA1aGJXVTllMk5zYzNnb1hHNGdJQ0FnSUNBZ0lDQWdJQ0JjSW14aGVXVnlMWFZwWDE5M2NtRndjR1Z5WDE5bWIyOTBaWEl0YkdWbWRDQjZaVzR0Ylc5a1pTMTBjbUZ1YzJsMGFXOXVYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lGd2liR0Y1WlhJdGRXbGZYM2R5WVhCd1pYSmZYMlp2YjNSbGNpMXNaV1owTFMxMGNtRnVjMmwwYVc5dUxXeGxablJjSWpvZ2VtVnVUVzlrWlVWdVlXSnNaV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUNsOVhHNGdJQ0FnSUNBZ0lENWNiaUFnSUNBZ0lDQWdJQ0E4VTNSaFkyc3VRMjlzSUdkaGNEMTdNbjArWEc0Z0lDQWdJQ0FnSUNBZ0lDQThVMlZqZEdsdmJpQm9aV0ZrYVc1blBWd2lZMkZ1ZG1GelFXTjBhVzl1YzF3aVBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFNYTnNZVzVrSUhCaFpHUnBibWM5ZXpGOVBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeGFiMjl0UVdOMGFXOXVjMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WdVpHVnlRV04wYVc5dVBYdGhZM1JwYjI1TllXNWhaMlZ5TG5KbGJtUmxja0ZqZEdsdmJuMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSHB2YjIwOWUyRndjRk4wWVhSbExucHZiMjE5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnUEM5SmMyeGhibVErWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSHNoZG1sbGQwMXZaR1ZGYm1GaWJHVmtJQ1ltSUNoY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFpHbDJYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYkdGemMwNWhiV1U5ZTJOc2MzZ29YQ0oxYm1SdkxYSmxaRzh0WW5WMGRHOXVjeUI2Wlc0dGJXOWtaUzEwY21GdWMybDBhVzl1WENJc0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWENKc1lYbGxjaTExYVY5ZmQzSmhjSEJsY2w5ZlptOXZkR1Z5TFd4bFpuUXRMWFJ5WVc1emFYUnBiMjR0WW05MGRHOXRYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdlbVZ1VFc5a1pVVnVZV0pzWldRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0ErWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCN1lXTjBhVzl1VFdGdVlXZGxjaTV5Wlc1a1pYSkJZM1JwYjI0b1hDSjFibVJ2WENJc0lIc2djMmw2WlRvZ1hDSnpiV0ZzYkZ3aUlIMHBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZTJGamRHbHZiazFoYm1GblpYSXVjbVZ1WkdWeVFXTjBhVzl1S0Z3aWNtVmtiMXdpTENCN0lITnBlbVU2SUZ3aWMyMWhiR3hjSWlCOUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMMlJwZGo1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnS1gxY2JpQWdJQ0FnSUNBZ0lDQWdJRHd2VTJWamRHbHZiajVjYmlBZ0lDQWdJQ0FnSUNBOEwxTjBZV05yTGtOdmJENWNiaUFnSUNBZ0lDQWdQQzlrYVhZK1hHNGdJQ0FnSUNBZ0lEeGthWFpjYmlBZ0lDQWdJQ0FnSUNCamJHRnpjMDVoYldVOWUyTnNjM2dvWEc0Z0lDQWdJQ0FnSUNBZ0lDQmNJbXhoZVdWeUxYVnBYMTkzY21Gd2NHVnlYMTltYjI5MFpYSXRZMlZ1ZEdWeUlIcGxiaTF0YjJSbExYUnlZVzV6YVhScGIyNWNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1hDSnNZWGxsY2kxMWFWOWZkM0poY0hCbGNsOWZabTl2ZEdWeUxXeGxablF0TFhSeVlXNXphWFJwYjI0dFltOTBkRzl0WENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2VtVnVUVzlrWlVWdVlXSnNaV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUNsOVhHNGdJQ0FnSUNBZ0lENWNiaUFnSUNBZ0lDQWdJQ0I3Y21WdVpHVnlRM1Z6ZEc5dFJtOXZkR1Z5UHk0b1ptRnNjMlVzSUdGd2NGTjBZWFJsS1gxY2JpQWdJQ0FnSUNBZ1BDOWthWFkrWEc0Z0lDQWdJQ0FnSUR4a2FYWmNiaUFnSUNBZ0lDQWdJQ0JqYkdGemMwNWhiV1U5ZTJOc2MzZ29YRzRnSUNBZ0lDQWdJQ0FnSUNCY0lteGhlV1Z5TFhWcFgxOTNjbUZ3Y0dWeVgxOW1iMjkwWlhJdGNtbG5hSFFnZW1WdUxXMXZaR1V0ZEhKaGJuTnBkR2x2Ymx3aUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JjSW5SeVlXNXphWFJwYjI0dGNtbG5hSFFnWkdsellXSnNaUzF3YjJsdWRHVnlSWFpsYm5SelhDSTZJSHBsYmsxdlpHVkZibUZpYkdWa0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQXBmVnh1SUNBZ0lDQWdJQ0ErWEc0Z0lDQWdJQ0FnSUNBZ2UyRmpkR2x2YmsxaGJtRm5aWEl1Y21WdVpHVnlRV04wYVc5dUtGd2lkRzluWjJ4bFUyaHZjblJqZFhSelhDSXBmVnh1SUNBZ0lDQWdJQ0E4TDJScGRqNWNiaUFnSUNBZ0lDQWdQR0oxZEhSdmJseHVJQ0FnSUNBZ0lDQWdJR05zWVhOelRtRnRaVDE3WTJ4emVDaGNJbVJwYzJGaWJHVXRlbVZ1TFcxdlpHVmNJaXdnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdYQ0prYVhOaFlteGxMWHBsYmkxdGIyUmxMUzEyYVhOcFlteGxYQ0k2SUhOb2IzZEZlR2wwV21WdVRXOWtaVUowYml4Y2JpQWdJQ0FnSUNBZ0lDQjlLWDFjYmlBZ0lDQWdJQ0FnSUNCdmJrTnNhV05yUFh0MGIyZG5iR1ZhWlc1TmIyUmxmVnh1SUNBZ0lDQWdJQ0ErWEc0Z0lDQWdJQ0FnSUNBZ2UzUW9YQ0ppZFhSMGIyNXpMbVY0YVhSYVpXNU5iMlJsWENJcGZWeHVJQ0FnSUNBZ0lDQThMMkoxZEhSdmJqNWNiaUFnSUNBZ0lEd3ZabTl2ZEdWeVBseHVJQ0FnSUNrN1hHNGdJSDA3WEc1Y2JpQWdZMjl1YzNRZ1pHbGhiRzluY3lBOUlDaGNiaUFnSUNBOFBseHVJQ0FnSUNBZ2UyRndjRk4wWVhSbExtbHpURzloWkdsdVp5QW1KaUE4VEc5aFpHbHVaMDFsYzNOaFoyVWdMejU5WEc0Z0lDQWdJQ0I3WVhCd1UzUmhkR1V1WlhKeWIzSk5aWE56WVdkbElDWW1JQ2hjYmlBZ0lDQWdJQ0FnUEVWeWNtOXlSR2xoYkc5blhHNGdJQ0FnSUNBZ0lDQWdiV1Z6YzJGblpUMTdZWEJ3VTNSaGRHVXVaWEp5YjNKTlpYTnpZV2RsZlZ4dUlDQWdJQ0FnSUNBZ0lHOXVRMnh2YzJVOWV5Z3BJRDArSUhObGRFRndjRk4wWVhSbEtIc2daWEp5YjNKTlpYTnpZV2RsT2lCdWRXeHNJSDBwZlZ4dUlDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ0tYMWNiaUFnSUNBZ0lIdGhjSEJUZEdGMFpTNXphRzkzU0dWc2NFUnBZV3h2WnlBbUppQW9YRzRnSUNBZ0lDQWdJRHhJWld4d1JHbGhiRzluWEc0Z0lDQWdJQ0FnSUNBZ2IyNURiRzl6WlQxN0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjMlYwUVhCd1UzUmhkR1VvZXlCemFHOTNTR1ZzY0VScFlXeHZaem9nWm1Gc2MyVWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZYMWNiaUFnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ2w5WEc0Z0lDQWdJQ0I3WVhCd1UzUmhkR1V1Y0dGemRHVkVhV0ZzYjJjdWMyaHZkMjRnSmlZZ0tGeHVJQ0FnSUNBZ0lDQThVR0Z6ZEdWRGFHRnlkRVJwWVd4dloxeHVJQ0FnSUNBZ0lDQWdJSE5sZEVGd2NGTjBZWFJsUFh0elpYUkJjSEJUZEdGMFpYMWNiaUFnSUNBZ0lDQWdJQ0JoY0hCVGRHRjBaVDE3WVhCd1UzUmhkR1Y5WEc0Z0lDQWdJQ0FnSUNBZ2IyNUpibk5sY25SRGFHRnlkRDE3YjI1SmJuTmxjblJGYkdWdFpXNTBjMzFjYmlBZ0lDQWdJQ0FnSUNCdmJrTnNiM05sUFhzb0tTQTlQbHh1SUNBZ0lDQWdJQ0FnSUNBZ2MyVjBRWEJ3VTNSaGRHVW9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQndZWE4wWlVScFlXeHZaem9nZXlCemFHOTNiam9nWm1Gc2MyVXNJR1JoZEdFNklHNTFiR3dnZlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBwWEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQXZQbHh1SUNBZ0lDQWdLWDFjYmlBZ0lDQThMejVjYmlBZ0tUdGNibHh1SUNCeVpYUjFjbTRnYVhOTmIySnBiR1VnUHlBb1hHNGdJQ0FnUEQ1Y2JpQWdJQ0FnSUh0a2FXRnNiMmR6ZlZ4dUlDQWdJQ0FnUEUxdlltbHNaVTFsYm5WY2JpQWdJQ0FnSUNBZ1lYQndVM1JoZEdVOWUyRndjRk4wWVhSbGZWeHVJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MGN6MTdaV3hsYldWdWRITjlYRzRnSUNBZ0lDQWdJR0ZqZEdsdmJrMWhibUZuWlhJOWUyRmpkR2x2YmsxaGJtRm5aWEo5WEc0Z0lDQWdJQ0FnSUd4cFluSmhjbmxOWlc1MVBYdHNhV0p5WVhKNVRXVnVkWDFjYmlBZ0lDQWdJQ0FnY21WdVpHVnlTbE5QVGtWNGNHOXlkRVJwWVd4dlp6MTdjbVZ1WkdWeVNsTlBUa1Y0Y0c5eWRFUnBZV3h2WjMxY2JpQWdJQ0FnSUNBZ2NtVnVaR1Z5U1cxaFoyVkZlSEJ2Y25SRWFXRnNiMmM5ZTNKbGJtUmxja2x0WVdkbFJYaHdiM0owUkdsaGJHOW5mVnh1SUNBZ0lDQWdJQ0J6WlhSQmNIQlRkR0YwWlQxN2MyVjBRWEJ3VTNSaGRHVjlYRzRnSUNBZ0lDQWdJRzl1UTI5c2JHRmlRblYwZEc5dVEyeHBZMnM5ZTI5dVEyOXNiR0ZpUW5WMGRHOXVRMnhwWTJ0OVhHNGdJQ0FnSUNBZ0lHOXVURzlqYTFSdloyZHNaVDE3YjI1TWIyTnJWRzluWjJ4bGZWeHVJQ0FnSUNBZ0lDQnZibEJsYmsxdlpHVlViMmRuYkdVOWUyOXVVR1Z1VFc5a1pWUnZaMmRzWlgxY2JpQWdJQ0FnSUNBZ1kyRnVkbUZ6UFh0allXNTJZWE45WEc0Z0lDQWdJQ0FnSUdselEyOXNiR0ZpYjNKaGRHbHVaejE3YVhORGIyeHNZV0p2Y21GMGFXNW5mVnh1SUNBZ0lDQWdJQ0J5Wlc1a1pYSkRkWE4wYjIxR2IyOTBaWEk5ZTNKbGJtUmxja04xYzNSdmJVWnZiM1JsY24xY2JpQWdJQ0FnSUNBZ2RtbGxkMDF2WkdWRmJtRmliR1ZrUFh0MmFXVjNUVzlrWlVWdVlXSnNaV1I5WEc0Z0lDQWdJQ0FnSUhOb2IzZFVhR1Z0WlVKMGJqMTdjMmh2ZDFSb1pXMWxRblJ1ZlZ4dUlDQWdJQ0FnSUNCdmJrbHRZV2RsUVdOMGFXOXVQWHR2YmtsdFlXZGxRV04wYVc5dWZWeHVJQ0FnSUNBZ0lDQnlaVzVrWlhKVWIzQlNhV2RvZEZWSlBYdHlaVzVrWlhKVWIzQlNhV2RvZEZWSmZWeHVJQ0FnSUNBZ0x6NWNiaUFnSUNBOEx6NWNiaUFnS1NBNklDaGNiaUFnSUNBOFpHbDJYRzRnSUNBZ0lDQmpiR0Z6YzA1aGJXVTllMk5zYzNnb1hDSnNZWGxsY2kxMWFWOWZkM0poY0hCbGNsd2lMQ0I3WEc0Z0lDQWdJQ0FnSUZ3aVpHbHpZV0pzWlMxd2IybHVkR1Z5UlhabGJuUnpYQ0k2WEc0Z0lDQWdJQ0FnSUNBZ1lYQndVM1JoZEdVdVpISmhaMmRwYm1kRmJHVnRaVzUwSUh4OFhHNGdJQ0FnSUNBZ0lDQWdZWEJ3VTNSaGRHVXVjbVZ6YVhwcGJtZEZiR1Z0Wlc1MElIeDhYRzRnSUNBZ0lDQWdJQ0FnS0dGd2NGTjBZWFJsTG1Wa2FYUnBibWRGYkdWdFpXNTBJQ1ltSUNGcGMxUmxlSFJGYkdWdFpXNTBLR0Z3Y0ZOMFlYUmxMbVZrYVhScGJtZEZiR1Z0Wlc1MEtTa3NYRzRnSUNBZ0lDQjlLWDFjYmlBZ0lDQStYRzRnSUNBZ0lDQjdaR2xoYkc5bmMzMWNiaUFnSUNBZ0lIdHlaVzVrWlhKR2FYaGxaRk5wWkdWRGIyNTBZV2x1WlhJb0tYMWNiaUFnSUNBZ0lIdHlaVzVrWlhKQ2IzUjBiMjFCY0hCTlpXNTFLQ2w5WEc0Z0lDQWdJQ0I3WVhCd1UzUmhkR1V1YzJOeWIyeHNaV1JQZFhSemFXUmxJQ1ltSUNoY2JpQWdJQ0FnSUNBZ1BHSjFkSFJ2Ymx4dUlDQWdJQ0FnSUNBZ0lHTnNZWE56VG1GdFpUMWNJbk5qY205c2JDMWlZV05yTFhSdkxXTnZiblJsYm5SY0lseHVJQ0FnSUNBZ0lDQWdJRzl1UTJ4cFkyczlleWdwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhObGRFRndjRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0xpNHVZMkZzWTNWc1lYUmxVMk55YjJ4c1EyVnVkR1Z5S0dWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlN3Z1kyRnVkbUZ6S1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lIMTlYRzRnSUNBZ0lDQWdJRDVjYmlBZ0lDQWdJQ0FnSUNCN2RDaGNJbUoxZEhSdmJuTXVjMk55YjJ4c1FtRmphMVJ2UTI5dWRHVnVkRndpS1gxY2JpQWdJQ0FnSUNBZ1BDOWlkWFIwYjI0K1hHNGdJQ0FnSUNBcGZWeHVJQ0FnSUR3dlpHbDJQbHh1SUNBcE8xeHVmVHRjYmx4dVkyOXVjM1FnWVhKbFJYRjFZV3dnUFNBb2NISmxkam9nVEdGNVpYSlZTVkJ5YjNCekxDQnVaWGgwT2lCTVlYbGxjbFZKVUhKdmNITXBJRDArSUh0Y2JpQWdZMjl1YzNRZ1oyVjBUbVZqWlhOellYSjVUMkpxSUQwZ0tHRndjRk4wWVhSbE9pQkJjSEJUZEdGMFpTazZJRkJoY25ScFlXdzhRWEJ3VTNSaGRHVStJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQjdYRzRnSUNBZ0lDQnpkV2RuWlhOMFpXUkNhVzVrYVc1bmN5eGNiaUFnSUNBZ0lITjBZWEowUW05MWJtUkZiR1Z0Wlc1ME9pQmliM1Z1WkVWc1pXMWxiblFzWEc0Z0lDQWdJQ0F1TGk1eVpYUmNiaUFnSUNCOUlEMGdZWEJ3VTNSaGRHVTdYRzRnSUNBZ2NtVjBkWEp1SUhKbGREdGNiaUFnZlR0Y2JpQWdZMjl1YzNRZ2NISmxka0Z3Y0ZOMFlYUmxJRDBnWjJWMFRtVmpaWE56WVhKNVQySnFLSEJ5WlhZdVlYQndVM1JoZEdVcE8xeHVJQ0JqYjI1emRDQnVaWGgwUVhCd1UzUmhkR1VnUFNCblpYUk9aV05sYzNOaGNubFBZbW9vYm1WNGRDNWhjSEJUZEdGMFpTazdYRzVjYmlBZ1kyOXVjM1FnYTJWNWN5QTlJRTlpYW1WamRDNXJaWGx6S0hCeVpYWkJjSEJUZEdGMFpTa2dZWE1nS0d0bGVXOW1JRkJoY25ScFlXdzhRWEJ3VTNSaGRHVStLVnRkTzF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUhCeVpYWXVjbVZ1WkdWeVEzVnpkRzl0Um05dmRHVnlJRDA5UFNCdVpYaDBMbkpsYm1SbGNrTjFjM1J2YlVadmIzUmxjaUFtSmx4dUlDQWdJSEJ5WlhZdWJHRnVaME52WkdVZ1BUMDlJRzVsZUhRdWJHRnVaME52WkdVZ0ppWmNiaUFnSUNCd2NtVjJMbVZzWlcxbGJuUnpJRDA5UFNCdVpYaDBMbVZzWlcxbGJuUnpJQ1ltWEc0Z0lDQWdjSEpsZGk1bWFXeGxjeUE5UFQwZ2JtVjRkQzVtYVd4bGN5QW1KbHh1SUNBZ0lHdGxlWE11WlhabGNua29LR3RsZVNrZ1BUNGdjSEpsZGtGd2NGTjBZWFJsVzJ0bGVWMGdQVDA5SUc1bGVIUkJjSEJUZEdGMFpWdHJaWGxkS1Z4dUlDQXBPMXh1ZlR0Y2JseHVaWGh3YjNKMElHUmxabUYxYkhRZ1VtVmhZM1F1YldWdGJ5aE1ZWGxsY2xWSkxDQmhjbVZGY1hWaGJDazdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0xheWVyVUkudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0xpYnJhcnlCdXR0b24udHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5QnV0dG9uLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJMaWJyYXJ5QnV0dG9uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gTGlicmFyeUJ1dHRvbilcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0ICovIFxcXCJyZWFjdFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBjbHN4ICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY2xzeC9kaXN0L2Nsc3gubS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcblxcblxcblxcblxcblxcbmNvbnN0IExJQlJBUllfSUNPTiA9ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInN2Z1xcXCIsIE9iamVjdC5hc3NpZ24oeyB2aWV3Qm94OiBcXFwiMCAwIDU3NiA1MTJcXFwiIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZmlsbDogXFxcImN1cnJlbnRDb2xvclxcXCIsIGQ6IFxcXCJNNTQyLjIyIDMyLjA1Yy01NC44IDMuMTEtMTYzLjcyIDE0LjQzLTIzMC45NiA1NS41OS00LjY0IDIuODQtNy4yNyA3Ljg5LTcuMjcgMTMuMTd2MzYzLjg3YzAgMTEuNTUgMTIuNjMgMTguODUgMjMuMjggMTMuNDkgNjkuMTgtMzQuODIgMTY5LjIzLTQ0LjMyIDIxOC43LTQ2LjkyIDE2Ljg5LS44OSAzMC4wMi0xNC40MyAzMC4wMi0zMC42NlY2Mi43NWMuMDEtMTcuNzEtMTUuMzUtMzEuNzQtMzMuNzctMzAuN3pNMjY0LjczIDg3LjY0QzE5Ny41IDQ2LjQ4IDg4LjU4IDM1LjE3IDMzLjc4IDMyLjA1IDE1LjM2IDMxLjAxIDAgNDUuMDQgMCA2Mi43NVY0MDAuNmMwIDE2LjI0IDEzLjEzIDI5Ljc4IDMwLjAyIDMwLjY2IDQ5LjQ5IDIuNiAxNDkuNTkgMTIuMTEgMjE4Ljc3IDQ2Ljk1IDEwLjYyIDUuMzUgMjMuMjEtMS45NCAyMy4yMS0xMy40NlYxMDAuNjNjMC01LjI5LTIuNjItMTAuMTQtNy4yNy0xMi45OXpcXFwiIH0sIHZvaWQgMCkgfSksIHZvaWQgMCkpO1xcbmNvbnN0IExpYnJhcnlCdXR0b24gPSAoeyBhcHBTdGF0ZSwgc2V0QXBwU3RhdGUsIGlzTW9iaWxlIH0pID0+IHtcXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJsYWJlbFxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6ICgwLGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1tcXFwiZGVmYXVsdFxcXCJdKShcXFwiVG9vbEljb24gVG9vbEljb25fdHlwZV9mbG9hdGluZyBUb29sSWNvbl9fbGlicmFyeVxcXCIsIGBUb29sSWNvbl9zaXplX21lZGl1bWAsIHtcXG4gICAgICAgICAgICBcXFwiaXMtbW9iaWxlXFxcIjogaXNNb2JpbGUsXFxuICAgICAgICB9KSwgdGl0bGU6IGAkeygwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmNhcGl0YWxpemVTdHJpbmcpKCgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udCkoXFxcInRvb2xCYXIubGlicmFyeVxcXCIpKX0gXHUyMDE0IDBgIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImlucHV0XFxcIiwgeyBjbGFzc05hbWU6IFxcXCJUb29sSWNvbl90eXBlX2NoZWNrYm94XFxcIiwgdHlwZTogXFxcImNoZWNrYm94XFxcIiwgbmFtZTogXFxcImVkaXRvci1saWJyYXJ5XFxcIiwgb25DaGFuZ2U6IChldmVudCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgc2V0QXBwU3RhdGUoeyBpc0xpYnJhcnlPcGVuOiBldmVudC50YXJnZXQuY2hlY2tlZCB9KTtcXG4gICAgICAgICAgICAgICAgfSwgY2hlY2tlZDogYXBwU3RhdGUuaXNMaWJyYXJ5T3BlbiwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5jYXBpdGFsaXplU3RyaW5nKSgoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnQpKFxcXCJ0b29sQmFyLmxpYnJhcnlcXFwiKSksIFxcXCJhcmlhLWtleXNob3J0Y3V0c1xcXCI6IFxcXCIwXFxcIiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJUb29sSWNvbl9faWNvblxcXCIgfSwgeyBjaGlsZHJlbjogTElCUkFSWV9JQ09OIH0pLCB2b2lkIDApXSB9KSwgdm9pZCAwKSk7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OU1hV0p5WVhKNVFuVjBkRzl1TG5SemVDNXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN096dEJRVUV3UWp0QlFVTkdPMEZCUTBrN1FVRkZaMEk3UVVGRk5VTXNUVUZCVFN4WlFVRlpMRWRCUVVjc1EwRkRia0lzT0VWQlFVc3NUMEZCVHl4RlFVRkRMR0ZCUVdFc1owSkJRM2hDTEdsRlFVTkZMRWxCUVVrc1JVRkJReXhqUVVGakxFVkJRMjVDTEVOQlFVTXNSVUZCUXl4MVkwRkJkV01zVjBGRGJtTXNXVUZEU2l4RFFVTlFMRU5CUVVNN1FVRkZTeXhOUVVGTkxHRkJRV0VzUjBGSmNrSXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hYUVVGWExFVkJRVVVzVVVGQlVTeEZRVUZGTEVWQlFVVXNSVUZCUlR0SlFVTXpReXhQUVVGUExFTkJRMHdzYVVaQlEwVXNVMEZCVXl4RlFVRkZMR2RFUVVGSkxFTkJRMklzYlVSQlFXMUVMRVZCUTI1RUxITkNRVUZ6UWl4RlFVTjBRanRaUVVORkxGZEJRVmNzUlVGQlJTeFJRVUZSTzFOQlEzUkNMRU5CUTBZc1JVRkRSQ3hMUVVGTExFVkJRVVVzUjBGQlJ5eDNSRUZCWjBJc1EwRkJReXgzUTBGQlF5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zVFVGQlRTeHBRa0ZGZEVRc2EwVkJRMFVzVTBGQlV5eEZRVUZETEhkQ1FVRjNRaXhGUVVOc1F5eEpRVUZKTEVWQlFVTXNWVUZCVlN4RlFVTm1MRWxCUVVrc1JVRkJReXhuUWtGQlowSXNSVUZEY2tJc1VVRkJVU3hGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVTdiMEpCUTJ4Q0xGZEJRVmNzUTBGQlF5eEZRVUZGTEdGQlFXRXNSVUZCUlN4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEVOQlFVTTdaMEpCUTNaRUxFTkJRVU1zUlVGRFJDeFBRVUZQTEVWQlFVVXNVVUZCVVN4RFFVRkRMR0ZCUVdFc1owSkJRMjVDTEhkRVFVRm5RaXhEUVVGRExIZERRVUZETEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF5eDFRa0ZEYUVNc1IwRkJSeXhYUVVOeVFpeEZRVU5HTERoRlFVRkxMRk5CUVZNc1JVRkJReXhuUWtGQlowSXNaMEpCUVVVc1dVRkJXU3haUVVGUExHRkJRemxETEVOQlExUXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5amIyMXdiMjVsYm5SekwweHBZbkpoY25sQ2RYUjBiMjR1ZEhONFB6bG1NR01pWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUZKbFlXTjBJR1p5YjIwZ1hDSnlaV0ZqZEZ3aU8xeHVhVzF3YjNKMElHTnNjM2dnWm5KdmJTQmNJbU5zYzNoY0lqdGNibWx0Y0c5eWRDQjdJSFFnZlNCbWNtOXRJRndpTGk0dmFURTRibHdpTzF4dWFXMXdiM0owSUhzZ1FYQndVM1JoZEdVZ2ZTQm1jbTl0SUZ3aUxpNHZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdJR05oY0dsMFlXeHBlbVZUZEhKcGJtY2dmU0JtY205dElGd2lMaTR2ZFhScGJITmNJanRjYmx4dVkyOXVjM1FnVEVsQ1VrRlNXVjlKUTA5T0lEMGdLRnh1SUNBOGMzWm5JSFpwWlhkQ2IzZzlYQ0l3SURBZ05UYzJJRFV4TWx3aVBseHVJQ0FnSUR4d1lYUm9YRzRnSUNBZ0lDQm1hV3hzUFZ3aVkzVnljbVZ1ZEVOdmJHOXlYQ0pjYmlBZ0lDQWdJR1E5WENKTk5UUXlMakl5SURNeUxqQTFZeTAxTkM0NElETXVNVEV0TVRZekxqY3lJREUwTGpRekxUSXpNQzQ1TmlBMU5TNDFPUzAwTGpZMElESXVPRFF0Tnk0eU55QTNMamc1TFRjdU1qY2dNVE11TVRkMk16WXpMamczWXpBZ01URXVOVFVnTVRJdU5qTWdNVGd1T0RVZ01qTXVNamdnTVRNdU5Ea2dOamt1TVRndE16UXVPRElnTVRZNUxqSXpMVFEwTGpNeUlESXhPQzQzTFRRMkxqa3lJREUyTGpnNUxTNDRPU0F6TUM0d01pMHhOQzQwTXlBek1DNHdNaTB6TUM0Mk5sWTJNaTQzTldNdU1ERXRNVGN1TnpFdE1UVXVNelV0TXpFdU56UXRNek11TnpjdE16QXVOM3BOTWpZMExqY3pJRGczTGpZMFF6RTVOeTQxSURRMkxqUTRJRGc0TGpVNElETTFMakUzSURNekxqYzRJRE15TGpBMUlERTFMak0ySURNeExqQXhJREFnTkRVdU1EUWdNQ0EyTWk0M05WWTBNREF1Tm1Nd0lERTJMakkwSURFekxqRXpJREk1TGpjNElETXdMakF5SURNd0xqWTJJRFE1TGpRNUlESXVOaUF4TkRrdU5Ua2dNVEl1TVRFZ01qRTRMamMzSURRMkxqazFJREV3TGpZeUlEVXVNelVnTWpNdU1qRXRNUzQ1TkNBeU15NHlNUzB4TXk0ME5sWXhNREF1TmpOak1DMDFMakk1TFRJdU5qSXRNVEF1TVRRdE55NHlOeTB4TWk0NU9YcGNJbHh1SUNBZ0lENDhMM0JoZEdnK1hHNGdJRHd2YzNablBseHVLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRXhwWW5KaGNubENkWFIwYjI0NklGSmxZV04wTGtaRFBIdGNiaUFnWVhCd1UzUmhkR1U2SUVGd2NGTjBZWFJsTzF4dUlDQnpaWFJCY0hCVGRHRjBaVG9nVW1WaFkzUXVRMjl0Y0c5dVpXNTBQR0Z1ZVN3Z1FYQndVM1JoZEdVK1cxd2ljMlYwVTNSaGRHVmNJbDA3WEc0Z0lHbHpUVzlpYVd4bFB6b2dZbTl2YkdWaGJqdGNibjArSUQwZ0tIc2dZWEJ3VTNSaGRHVXNJSE5sZEVGd2NGTjBZWFJsTENCcGMwMXZZbWxzWlNCOUtTQTlQaUI3WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnUEd4aFltVnNYRzRnSUNBZ0lDQmpiR0Z6YzA1aGJXVTllMk5zYzNnb1hHNGdJQ0FnSUNBZ0lGd2lWRzl2YkVsamIyNGdWRzl2YkVsamIyNWZkSGx3WlY5bWJHOWhkR2x1WnlCVWIyOXNTV052Ymw5ZmJHbGljbUZ5ZVZ3aUxGeHVJQ0FnSUNBZ0lDQmdWRzl2YkVsamIyNWZjMmw2WlY5dFpXUnBkVzFnTEZ4dUlDQWdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDQWdYQ0pwY3kxdGIySnBiR1ZjSWpvZ2FYTk5iMkpwYkdVc1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQXBmVnh1SUNBZ0lDQWdkR2wwYkdVOWUyQWtlMk5oY0dsMFlXeHBlbVZUZEhKcGJtY29kQ2hjSW5SdmIyeENZWEl1YkdsaWNtRnllVndpS1NsOUlPS0FsQ0F3WUgxY2JpQWdJQ0ErWEc0Z0lDQWdJQ0E4YVc1d2RYUmNiaUFnSUNBZ0lDQWdZMnhoYzNOT1lXMWxQVndpVkc5dmJFbGpiMjVmZEhsd1pWOWphR1ZqYTJKdmVGd2lYRzRnSUNBZ0lDQWdJSFI1Y0dVOVhDSmphR1ZqYTJKdmVGd2lYRzRnSUNBZ0lDQWdJRzVoYldVOVhDSmxaR2wwYjNJdGJHbGljbUZ5ZVZ3aVhHNGdJQ0FnSUNBZ0lHOXVRMmhoYm1kbFBYc29aWFpsYm5RcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNCelpYUkJjSEJUZEdGMFpTaDdJR2x6VEdsaWNtRnllVTl3Wlc0NklHVjJaVzUwTG5SaGNtZGxkQzVqYUdWamEyVmtJSDBwTzF4dUlDQWdJQ0FnSUNCOWZWeHVJQ0FnSUNBZ0lDQmphR1ZqYTJWa1BYdGhjSEJUZEdGMFpTNXBjMHhwWW5KaGNubFBjR1Z1ZlZ4dUlDQWdJQ0FnSUNCaGNtbGhMV3hoWW1Wc1BYdGpZWEJwZEdGc2FYcGxVM1J5YVc1bktIUW9YQ0owYjI5c1FtRnlMbXhwWW5KaGNubGNJaWtwZlZ4dUlDQWdJQ0FnSUNCaGNtbGhMV3RsZVhOb2IzSjBZM1YwY3oxY0lqQmNJbHh1SUNBZ0lDQWdMejVjYmlBZ0lDQWdJRHhrYVhZZ1kyeGhjM05PWVcxbFBWd2lWRzl2YkVsamIyNWZYMmxqYjI1Y0lqNTdURWxDVWtGU1dWOUpRMDlPZlR3dlpHbDJQbHh1SUNBZ0lEd3ZiR0ZpWld3K1hHNGdJQ2s3WEc1OU8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvTGlicmFyeUJ1dHRvbi50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvTGlicmFyeU1lbnUudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvTGlicmFyeU1lbnUudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJMaWJyYXJ5TWVudVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIExpYnJhcnlNZW51KVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pMThuICovIFxcXCIuLi8uLi9pMThuLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9yYW5kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3JhbmRvbSAqLyBcXFwiLi4vLi4vcmFuZG9tLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9EaWFsb2dfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vRGlhbG9nICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0RpYWxvZy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0lzbGFuZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Jc2xhbmQgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvSXNsYW5kLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfUHVibGlzaExpYnJhcnlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vUHVibGlzaExpYnJhcnkgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvUHVibGlzaExpYnJhcnkudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1Rvb2xCdXR0b24gKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVG9vbEJ1dHRvbi50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0xpYnJhcnlNZW51X3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vTGlicmFyeU1lbnUuc2NzcyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5TWVudS5zY3NzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9MaWJyYXJ5TWVudV9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX0xpYnJhcnlNZW51X3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9MaWJyYXJ5TWVudUl0ZW1zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0xpYnJhcnlNZW51SXRlbXMgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvTGlicmFyeU1lbnVJdGVtcy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbnN0YW50cyAqLyBcXFwiLi4vLi4vY29uc3RhbnRzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4va2V5cyAqLyBcXFwiLi4vLi4va2V5cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi91dGlscyAqLyBcXFwiLi4vLi4vdXRpbHMudHNcXFwiKTtcXG52YXIgX19hd2FpdGVyID0gKHVuZGVmaW5lZCAmJiB1bmRlZmluZWQuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XFxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1xcXCJ0aHJvd1xcXCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XFxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XFxuICAgIH0pO1xcbn07XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgdXNlT25DbGlja091dHNpZGUgPSAocmVmLCBjYikgPT4ge1xcbiAgICAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZUVmZmVjdCkoKCkgPT4ge1xcbiAgICAgICAgY29uc3QgbGlzdGVuZXIgPSAoZXZlbnQpID0+IHtcXG4gICAgICAgICAgICBpZiAoIXJlZi5jdXJyZW50KSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQgJiZcXG4gICAgICAgICAgICAgICAgKHJlZi5jdXJyZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgfHxcXG4gICAgICAgICAgICAgICAgICAgICFkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY2IoZXZlbnQpO1xcbiAgICAgICAgfTtcXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXFxcInBvaW50ZXJkb3duXFxcIiwgbGlzdGVuZXIsIGZhbHNlKTtcXG4gICAgICAgIHJldHVybiAoKSA9PiB7XFxuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcXFwicG9pbnRlcmRvd25cXFwiLCBsaXN0ZW5lcik7XFxuICAgICAgICB9O1xcbiAgICB9LCBbcmVmLCBjYl0pO1xcbn07XFxuY29uc3QgZ2V0U2VsZWN0ZWRJdGVtcyA9IChsaWJyYXJ5SXRlbXMsIHNlbGVjdGVkSXRlbXMpID0+IGxpYnJhcnlJdGVtcy5maWx0ZXIoKGl0ZW0pID0+IHNlbGVjdGVkSXRlbXMuaW5jbHVkZXMoaXRlbS5pZCkpO1xcbmNvbnN0IExpYnJhcnlNZW51ID0gKHsgb25DbG9zZSwgb25JbnNlcnRTaGFwZSwgcGVuZGluZ0VsZW1lbnRzLCBvbkFkZFRvTGlicmFyeSwgdGhlbWUsIHNldEFwcFN0YXRlLCBmaWxlcywgbGlicmFyeVJldHVyblVybCwgZm9jdXNDb250YWluZXIsIGxpYnJhcnksIGlkLCBhcHBTdGF0ZSwgfSkgPT4ge1xcbiAgICBjb25zdCByZWYgPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZVJlZikobnVsbCk7XFxuICAgIHVzZU9uQ2xpY2tPdXRzaWRlKHJlZiwgKGV2ZW50KSA9PiB7XFxuICAgICAgICAvLyBJZiBjbGljayBvbiB0aGUgbGlicmFyeSBpY29uLCBkbyBub3RoaW5nLlxcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldC5jbG9zZXN0KFxcXCIuVG9vbEljb25fX2xpYnJhcnlcXFwiKSkge1xcbiAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgIH1cXG4gICAgICAgIG9uQ2xvc2UoKTtcXG4gICAgfSk7XFxuICAgICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udXNlRWZmZWN0KSgoKSA9PiB7XFxuICAgICAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uS0VZUy5FU0NBUEUpIHtcXG4gICAgICAgICAgICAgICAgb25DbG9zZSgpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uRVZFTlQuS0VZRE9XTiwgaGFuZGxlS2V5RG93bik7XFxuICAgICAgICByZXR1cm4gKCkgPT4ge1xcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5FVkVOVC5LRVlET1dOLCBoYW5kbGVLZXlEb3duKTtcXG4gICAgICAgIH07XFxuICAgIH0sIFtvbkNsb3NlXSk7XFxuICAgIGNvbnN0IFtsaWJyYXJ5SXRlbXMsIHNldExpYnJhcnlJdGVtc10gPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZVN0YXRlKShbXSk7XFxuICAgIGNvbnN0IFtsb2FkaW5nU3RhdGUsIHNldElzTG9hZGluZ10gPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZVN0YXRlKShcXFwicHJlbG9hZGluZ1xcXCIpO1xcbiAgICBjb25zdCBbc2VsZWN0ZWRJdGVtcywgc2V0U2VsZWN0ZWRJdGVtc10gPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZVN0YXRlKShbXSk7XFxuICAgIGNvbnN0IFtzaG93UHVibGlzaExpYnJhcnlEaWFsb2csIHNldFNob3dQdWJsaXNoTGlicmFyeURpYWxvZ10gPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZVN0YXRlKShmYWxzZSk7XFxuICAgIGNvbnN0IFtwdWJsaXNoTGliU3VjY2Vzcywgc2V0UHVibGlzaExpYlN1Y2Nlc3NdID0gKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51c2VTdGF0ZSkobnVsbCk7XFxuICAgIGNvbnN0IGxvYWRpbmdUaW1lclJlZiA9ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udXNlUmVmKShudWxsKTtcXG4gICAgKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51c2VFZmZlY3QpKCgpID0+IHtcXG4gICAgICAgIFByb21pc2UucmFjZShbXFxuICAgICAgICAgICAgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcXG4gICAgICAgICAgICAgICAgbG9hZGluZ1RpbWVyUmVmLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKFxcXCJsb2FkaW5nXFxcIik7XFxuICAgICAgICAgICAgICAgIH0sIDEwMCk7XFxuICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgbGlicmFyeS5sb2FkTGlicmFyeSgpLnRoZW4oKGl0ZW1zKSA9PiB7XFxuICAgICAgICAgICAgICAgIHNldExpYnJhcnlJdGVtcyhpdGVtcyk7XFxuICAgICAgICAgICAgICAgIHNldElzTG9hZGluZyhcXFwicmVhZHlcXFwiKTtcXG4gICAgICAgICAgICB9KSxcXG4gICAgICAgIF0pLnRoZW4oKGRhdGEpID0+IHtcXG4gICAgICAgICAgICBpZiAoZGF0YSA9PT0gXFxcImxvYWRpbmdcXFwiKSB7XFxuICAgICAgICAgICAgICAgIHNldElzTG9hZGluZyhcXFwibG9hZGluZ1xcXCIpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcbiAgICAgICAgcmV0dXJuICgpID0+IHtcXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQobG9hZGluZ1RpbWVyUmVmLmN1cnJlbnQpO1xcbiAgICAgICAgfTtcXG4gICAgfSwgW2xpYnJhcnldKTtcXG4gICAgY29uc3QgcmVtb3ZlRnJvbUxpYnJhcnkgPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZUNhbGxiYWNrKSgoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgICAgIGNvbnN0IGl0ZW1zID0geWllbGQgbGlicmFyeS5sb2FkTGlicmFyeSgpO1xcbiAgICAgICAgY29uc3QgbmV4dEl0ZW1zID0gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiAhc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhpdGVtLmlkKSk7XFxuICAgICAgICBsaWJyYXJ5LnNhdmVMaWJyYXJ5KG5leHRJdGVtcykuY2F0Y2goKGVycm9yKSA9PiB7XFxuICAgICAgICAgICAgc2V0TGlicmFyeUl0ZW1zKGl0ZW1zKTtcXG4gICAgICAgICAgICBzZXRBcHBTdGF0ZSh7IGVycm9yTWVzc2FnZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiYWxlcnRzLmVycm9yUmVtb3ZpbmdGcm9tTGlicmFyeVxcXCIpIH0pO1xcbiAgICAgICAgfSk7XFxuICAgICAgICBzZXRTZWxlY3RlZEl0ZW1zKFtdKTtcXG4gICAgICAgIHNldExpYnJhcnlJdGVtcyhuZXh0SXRlbXMpO1xcbiAgICB9KSwgW2xpYnJhcnksIHNldEFwcFN0YXRlLCBzZWxlY3RlZEl0ZW1zLCBzZXRTZWxlY3RlZEl0ZW1zXSk7XFxuICAgIGNvbnN0IHJlc2V0TGlicmFyeSA9ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udXNlQ2FsbGJhY2spKCgpID0+IHtcXG4gICAgICAgIGxpYnJhcnkucmVzZXRMaWJyYXJ5KCk7XFxuICAgICAgICBzZXRMaWJyYXJ5SXRlbXMoW10pO1xcbiAgICAgICAgZm9jdXNDb250YWluZXIoKTtcXG4gICAgfSwgW2xpYnJhcnksIGZvY3VzQ29udGFpbmVyXSk7XFxuICAgIGNvbnN0IGFkZFRvTGlicmFyeSA9ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udXNlQ2FsbGJhY2spKChlbGVtZW50cykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XFxuICAgICAgICBpZiAoZWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT4gZWxlbWVudC50eXBlID09PSBcXFwiaW1hZ2VcXFwiKSkge1xcbiAgICAgICAgICAgIHJldHVybiBzZXRBcHBTdGF0ZSh7XFxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZTogXFxcIlN1cHBvcnQgZm9yIGFkZGluZyBpbWFnZXMgdG8gdGhlIGxpYnJhcnkgY29taW5nIHNvb24hXFxcIixcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IGl0ZW1zID0geWllbGQgbGlicmFyeS5sb2FkTGlicmFyeSgpO1xcbiAgICAgICAgY29uc3QgbmV4dEl0ZW1zID0gW1xcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgc3RhdHVzOiBcXFwidW5wdWJsaXNoZWRcXFwiLFxcbiAgICAgICAgICAgICAgICBlbGVtZW50cyxcXG4gICAgICAgICAgICAgICAgaWQ6ICgwLF9yYW5kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5yYW5kb21JZCkoKSxcXG4gICAgICAgICAgICAgICAgY3JlYXRlZDogRGF0ZS5ub3coKSxcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIC4uLml0ZW1zLFxcbiAgICAgICAgXTtcXG4gICAgICAgIG9uQWRkVG9MaWJyYXJ5KCk7XFxuICAgICAgICBsaWJyYXJ5LnNhdmVMaWJyYXJ5KG5leHRJdGVtcykuY2F0Y2goKGVycm9yKSA9PiB7XFxuICAgICAgICAgICAgc2V0TGlicmFyeUl0ZW1zKGl0ZW1zKTtcXG4gICAgICAgICAgICBzZXRBcHBTdGF0ZSh7IGVycm9yTWVzc2FnZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiYWxlcnRzLmVycm9yQWRkaW5nVG9MaWJyYXJ5XFxcIikgfSk7XFxuICAgICAgICB9KTtcXG4gICAgICAgIHNldExpYnJhcnlJdGVtcyhuZXh0SXRlbXMpO1xcbiAgICB9KSwgW29uQWRkVG9MaWJyYXJ5LCBsaWJyYXJ5LCBzZXRBcHBTdGF0ZV0pO1xcbiAgICBjb25zdCByZW5kZXJQdWJsaXNoU3VjY2VzcyA9ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udXNlQ2FsbGJhY2spKCgpID0+IHtcXG4gICAgICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShfRGlhbG9nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uRGlhbG9nLCBPYmplY3QuYXNzaWduKHsgb25DbG9zZVJlcXVlc3Q6ICgpID0+IHNldFB1Ymxpc2hMaWJTdWNjZXNzKG51bGwpLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwicHVibGlzaFN1Y2Nlc3NEaWFsb2cudGl0bGVcXFwiKSwgY2xhc3NOYW1lOiBcXFwicHVibGlzaC1saWJyYXJ5LXN1Y2Nlc3NcXFwiLCBzbWFsbDogdHJ1ZSB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwicFxcXCIsIHsgY2hpbGRyZW46IFsoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJwdWJsaXNoU3VjY2Vzc0RpYWxvZy5jb250ZW50XFxcIiwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JOYW1lOiBwdWJsaXNoTGliU3VjY2Vzcy5hdXRob3JOYW1lLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLCBcXFwiIFxcXCIsICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiYVxcXCIsIE9iamVjdC5hc3NpZ24oeyBocmVmOiBwdWJsaXNoTGliU3VjY2VzcyA9PT0gbnVsbCB8fCBwdWJsaXNoTGliU3VjY2VzcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHVibGlzaExpYlN1Y2Nlc3MudXJsLCB0YXJnZXQ6IFxcXCJfYmxhbmtcXFwiLCByZWw6IFxcXCJub29wZW5lciBub3JlZmVycmVyXFxcIiB9LCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJwdWJsaXNoU3VjY2Vzc0RpYWxvZy5saW5rXFxcIikgfSksIHZvaWQgMCldIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLlRvb2xCdXR0b24sIHsgdHlwZTogXFxcImJ1dHRvblxcXCIsIHRpdGxlOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJidXR0b25zLmNsb3NlXFxcIiksIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiYnV0dG9ucy5jbG9zZVxcXCIpLCBsYWJlbDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwiYnV0dG9ucy5jbG9zZVxcXCIpLCBvbkNsaWNrOiAoKSA9PiBzZXRQdWJsaXNoTGliU3VjY2VzcyhudWxsKSwgXFxcImRhdGEtdGVzdGlkXFxcIjogXFxcInB1Ymxpc2gtbGlicmFyeS1zdWNjZXNzLWNsb3NlXFxcIiwgY2xhc3NOYW1lOiBcXFwicHVibGlzaC1saWJyYXJ5LXN1Y2Nlc3MtY2xvc2VcXFwiIH0sIHZvaWQgMCldIH0pLCB2b2lkIDApKTtcXG4gICAgfSwgW3NldFB1Ymxpc2hMaWJTdWNjZXNzLCBwdWJsaXNoTGliU3VjY2Vzc10pO1xcbiAgICBjb25zdCBvblB1Ymxpc2hMaWJTdWNjZXNzID0gKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51c2VDYWxsYmFjaykoKGRhdGEpID0+IHtcXG4gICAgICAgIHNldFNob3dQdWJsaXNoTGlicmFyeURpYWxvZyhmYWxzZSk7XFxuICAgICAgICBzZXRQdWJsaXNoTGliU3VjY2Vzcyh7IHVybDogZGF0YS51cmwsIGF1dGhvck5hbWU6IGRhdGEuYXV0aG9yTmFtZSB9KTtcXG4gICAgICAgIGNvbnN0IG5leHRMaWJJdGVtcyA9IGxpYnJhcnlJdGVtcy5zbGljZSgpO1xcbiAgICAgICAgbmV4dExpYkl0ZW1zLmZvckVhY2goKGxpYkl0ZW0pID0+IHtcXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhsaWJJdGVtLmlkKSkge1xcbiAgICAgICAgICAgICAgICBsaWJJdGVtLnN0YXR1cyA9IFxcXCJwdWJsaXNoZWRcXFwiO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcbiAgICAgICAgbGlicmFyeS5zYXZlTGlicmFyeShuZXh0TGliSXRlbXMpO1xcbiAgICAgICAgc2V0TGlicmFyeUl0ZW1zKG5leHRMaWJJdGVtcyk7XFxuICAgIH0sIFtcXG4gICAgICAgIHNldFNob3dQdWJsaXNoTGlicmFyeURpYWxvZyxcXG4gICAgICAgIHNldFB1Ymxpc2hMaWJTdWNjZXNzLFxcbiAgICAgICAgbGlicmFyeUl0ZW1zLFxcbiAgICAgICAgc2VsZWN0ZWRJdGVtcyxcXG4gICAgICAgIGxpYnJhcnksXFxuICAgIF0pO1xcbiAgICBjb25zdCBbbGFzdFNlbGVjdGVkSXRlbSwgc2V0TGFzdFNlbGVjdGVkSXRlbV0gPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZVN0YXRlKShudWxsKTtcXG4gICAgcmV0dXJuIGxvYWRpbmdTdGF0ZSA9PT0gXFxcInByZWxvYWRpbmdcXFwiID8gbnVsbCA6ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKF9Jc2xhbmRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5Jc2xhbmQsIE9iamVjdC5hc3NpZ24oeyBwYWRkaW5nOiAxLCByZWY6IHJlZiwgY2xhc3NOYW1lOiBcXFwibGF5ZXItdWlfX2xpYnJhcnlcXFwiIH0sIHsgY2hpbGRyZW46IFtzaG93UHVibGlzaExpYnJhcnlEaWFsb2cgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfUHVibGlzaExpYnJhcnlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1tcXFwiZGVmYXVsdFxcXCJdLCB7IG9uQ2xvc2U6ICgpID0+IHNldFNob3dQdWJsaXNoTGlicmFyeURpYWxvZyhmYWxzZSksIGxpYnJhcnlJdGVtczogZ2V0U2VsZWN0ZWRJdGVtcyhsaWJyYXJ5SXRlbXMsIHNlbGVjdGVkSXRlbXMpLCBhcHBTdGF0ZTogYXBwU3RhdGUsIG9uU3VjY2Vzczogb25QdWJsaXNoTGliU3VjY2Vzcywgb25FcnJvcjogKGVycm9yKSA9PiB3aW5kb3cuYWxlcnQoZXJyb3IpLCB1cGRhdGVJdGVtc0luU3RvcmFnZTogKCkgPT4gbGlicmFyeS5zYXZlTGlicmFyeShsaWJyYXJ5SXRlbXMpLCBvblJlbW92ZTogKGlkKSA9PiBzZXRTZWxlY3RlZEl0ZW1zKHNlbGVjdGVkSXRlbXMuZmlsdGVyKChfaWQpID0+IF9pZCAhPT0gaWQpKSB9LCB2b2lkIDApKSwgcHVibGlzaExpYlN1Y2Nlc3MgJiYgcmVuZGVyUHVibGlzaFN1Y2Nlc3MoKSwgbG9hZGluZ1N0YXRlID09PSBcXFwibG9hZGluZ1xcXCIgPyAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwibGF5ZXItdWlfX2xpYnJhcnktbWVzc2FnZVxcXCIgfSwgeyBjaGlsZHJlbjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwibGFiZWxzLmxpYnJhcnlMb2FkaW5nTWVzc2FnZVxcXCIpIH0pLCB2b2lkIDApKSA6ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX0xpYnJhcnlNZW51SXRlbXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfX1tcXFwiZGVmYXVsdFxcXCJdLCB7IGxpYnJhcnlJdGVtczogbGlicmFyeUl0ZW1zLCBvblJlbW92ZUZyb21MaWJyYXJ5OiByZW1vdmVGcm9tTGlicmFyeSwgb25BZGRUb0xpYnJhcnk6IGFkZFRvTGlicmFyeSwgb25JbnNlcnRTaGFwZTogb25JbnNlcnRTaGFwZSwgcGVuZGluZ0VsZW1lbnRzOiBwZW5kaW5nRWxlbWVudHMsIHNldEFwcFN0YXRlOiBzZXRBcHBTdGF0ZSwgbGlicmFyeVJldHVyblVybDogbGlicmFyeVJldHVyblVybCwgbGlicmFyeTogbGlicmFyeSwgdGhlbWU6IHRoZW1lLCBmaWxlczogZmlsZXMsIGlkOiBpZCwgc2VsZWN0ZWRJdGVtczogc2VsZWN0ZWRJdGVtcywgb25Ub2dnbGU6IChpZCwgZXZlbnQpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFNlbGVjdCA9ICFzZWxlY3RlZEl0ZW1zLmluY2x1ZGVzKGlkKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRTZWxlY3QpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgbGFzdFNlbGVjdGVkSXRlbSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByYW5nZVN0YXJ0ID0gbGlicmFyeUl0ZW1zLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gbGFzdFNlbGVjdGVkSXRlbSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlRW5kID0gbGlicmFyeUl0ZW1zLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gaWQpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmFuZ2VTdGFydCA9PT0gLTEgfHwgcmFuZ2VFbmQgPT09IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZEl0ZW1zKFsuLi5zZWxlY3RlZEl0ZW1zLCBpZF0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXNNYXAgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uYXJyYXlUb01hcCkoc2VsZWN0ZWRJdGVtcyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRTZWxlY3RlZElkcyA9IGxpYnJhcnlJdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSwgaWR4KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGlkeCA+PSByYW5nZVN0YXJ0ICYmIGlkeCA8PSByYW5nZUVuZCkgfHxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zTWFwLmhhcyhpdGVtLmlkKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjYy5wdXNoKGl0ZW0uaWQpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgW10pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZEl0ZW1zKG5leHRTZWxlY3RlZElkcyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZEl0ZW1zKFsuLi5zZWxlY3RlZEl0ZW1zLCBpZF0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRMYXN0U2VsZWN0ZWRJdGVtKGlkKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldExhc3RTZWxlY3RlZEl0ZW0obnVsbCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRJdGVtcyhzZWxlY3RlZEl0ZW1zLmZpbHRlcigoX2lkKSA9PiBfaWQgIT09IGlkKSk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0sIG9uUHVibGlzaDogKCkgPT4gc2V0U2hvd1B1Ymxpc2hMaWJyYXJ5RGlhbG9nKHRydWUpLCByZXNldExpYnJhcnk6IHJlc2V0TGlicmFyeSB9LCB2b2lkIDApKV0gfSksIHZvaWQgMCkpO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlNYVdKeVlYSjVUV1Z1ZFM1MGMzZ3Vhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdRVUZCTkVVN1FVRkZhRVE3UVVGRFV6dEJRVkZJTzBGQlEwRTdRVUZEV1R0QlFVTktPMEZCUldRN1FVRkRjMEk3UVVGRFlqdEJRVU5PTzBGQlEwODdRVUZGZEVNc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnl4RFFVTjRRaXhIUVVFeVFpeEZRVU16UWl4RlFVRXJRaXhGUVVNdlFpeEZRVUZGTzBsQlEwWXNaMFJCUVZNc1EwRkJReXhIUVVGSExFVkJRVVU3VVVGRFlpeE5RVUZOTEZGQlFWRXNSMEZCUnl4RFFVRkRMRXRCUVdsQ0xFVkJRVVVzUlVGQlJUdFpRVU55UXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUlVGQlJUdG5Ra0ZEYUVJc1QwRkJUenRoUVVOU08xbEJSVVFzU1VGRFJTeExRVUZMTEVOQlFVTXNUVUZCVFN4WlFVRlpMRTlCUVU4N1owSkJReTlDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXp0dlFrRkRha01zUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSVUZEZUVNN1owSkJRMEVzVDBGQlR6dGhRVU5TTzFsQlJVUXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMW9zUTBGQlF5eERRVUZETzFGQlEwWXNVVUZCVVN4RFFVRkRMR2RDUVVGblFpeERRVUZETEdGQlFXRXNSVUZCUlN4UlFVRlJMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRk1VUXNUMEZCVHl4SFFVRkhMRVZCUVVVN1dVRkRWaXhSUVVGUkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1lVRkJZU3hGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETzFGQlEzaEVMRU5CUVVNc1EwRkJRenRKUVVOS0xFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMmhDTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NRMEZEZGtJc1dVRkJNRUlzUlVGRE1VSXNZVUZCYTBNc1JVRkRiRU1zUlVGQlJTeERRVUZETEZsQlFWa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeERRVUZETEdGQlFXRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZGTjBRc1RVRkJUU3hYUVVGWExFZEJRVWNzUTBGQlF5eEZRVU14UWl4UFFVRlBMRVZCUTFBc1lVRkJZU3hGUVVOaUxHVkJRV1VzUlVGRFppeGpRVUZqTEVWQlEyUXNTMEZCU3l4RlFVTk1MRmRCUVZjc1JVRkRXQ3hMUVVGTExFVkJRMHdzWjBKQlFXZENMRVZCUTJoQ0xHTkJRV01zUlVGRFpDeFBRVUZQTEVWQlExQXNSVUZCUlN4RlFVTkdMRkZCUVZFc1IwRmpWQ3hGUVVGRkxFVkJRVVU3U1VGRFNDeE5RVUZOTEVkQlFVY3NSMEZCUnl3MlEwRkJUU3hEUVVGM1FpeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVVm9SQ3hwUWtGQmFVSXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJUdFJRVU12UWl3MFEwRkJORU03VVVGRE5VTXNTVUZCU3l4TFFVRkxMRU5CUVVNc1RVRkJhMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUlVGQlJUdFpRVU16UkN4UFFVRlBPMU5CUTFJN1VVRkRSQ3hQUVVGUExFVkJRVVVzUTBGQlF6dEpRVU5hTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlVnc1owUkJRVk1zUTBGQlF5eEhRVUZITEVWQlFVVTdVVUZEWWl4TlFVRk5MR0ZCUVdFc1IwRkJSeXhEUVVGRExFdEJRVzlDTEVWQlFVVXNSVUZCUlR0WlFVTTNReXhKUVVGSkxFdEJRVXNzUTBGQlF5eEhRVUZITEV0QlFVc3NLME5CUVZjc1JVRkJSVHRuUWtGRE4wSXNUMEZCVHl4RlFVRkZMRU5CUVVNN1lVRkRXRHRSUVVOSUxFTkJRVU1zUTBGQlF6dFJRVU5HTEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eHpSRUZCWVN4RlFVRkZMR0ZCUVdFc1EwRkJReXhEUVVGRE8xRkJRM2hFTEU5QlFVOHNSMEZCUnl4RlFVRkZPMWxCUTFZc1VVRkJVU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMSE5FUVVGaExFVkJRVVVzWVVGQllTeERRVUZETEVOQlFVTTdVVUZETjBRc1EwRkJReXhEUVVGRE8wbEJRMG9zUTBGQlF5eEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWa0xFMUJRVTBzUTBGQlF5eFpRVUZaTEVWQlFVVXNaVUZCWlN4RFFVRkRMRWRCUVVjc0swTkJRVkVzUTBGQlpTeEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVVnVSU3hOUVVGTkxFTkJRVU1zV1VGQldTeEZRVUZGTEZsQlFWa3NRMEZCUXl4SFFVRkhMQ3REUVVGUkxFTkJSVE5ETEZsQlFWa3NRMEZCUXl4RFFVRkRPMGxCUTJoQ0xFMUJRVTBzUTBGQlF5eGhRVUZoTEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU1zUjBGQlJ5d3JRMEZCVVN4RFFVRnpRaXhGUVVGRkxFTkJRVU1zUTBGQlF6dEpRVU0xUlN4TlFVRk5MRU5CUVVNc2QwSkJRWGRDTEVWQlFVVXNNa0pCUVRKQ0xFTkJRVU1zUjBGRE0wUXNLME5CUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU5zUWl4TlFVRk5MRU5CUVVNc2FVSkJRV2xDTEVWQlFVVXNiMEpCUVc5Q0xFTkJRVU1zUjBGQlJ5d3JRMEZCVVN4RFFVZDJSQ3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU5VTEUxQlFVMHNaVUZCWlN4SFFVRkhMRFpEUVVGTkxFTkJRV2RDTEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUlhCRUxHZEVRVUZUTEVOQlFVTXNSMEZCUnl4RlFVRkZPMUZCUTJJc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF6dFpRVU5ZTEVsQlFVa3NUMEZCVHl4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVU3WjBKQlEzUkNMR1ZCUVdVc1EwRkJReXhQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4SFFVRkhMRVZCUVVVN2IwSkJReTlETEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRuUWtGRGNrSXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMVlzUTBGQlF5eERRVUZETzFsQlEwWXNUMEZCVHl4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZPMmRDUVVOdVF5eGxRVUZsTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1owSkJRM1pDTEZsQlFWa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRaUVVONFFpeERRVUZETEVOQlFVTTdVMEZEU0N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEVWQlFVVTdXVUZEWml4SlFVRkpMRWxCUVVrc1MwRkJTeXhUUVVGVExFVkJRVVU3WjBKQlEzUkNMRmxCUVZrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dGhRVU42UWp0UlFVTklMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzVDBGQlR5eEhRVUZITEVWQlFVVTdXVUZEVml4WlFVRlpMRU5CUVVNc1pVRkJaU3hEUVVGRExFOUJRVkVzUTBGQlF5eERRVUZETzFGQlEzcERMRU5CUVVNc1EwRkJRenRKUVVOS0xFTkJRVU1zUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZaQ3hOUVVGTkxHbENRVUZwUWl4SFFVRkhMR3RFUVVGWExFTkJRVU1zUjBGQlV5eEZRVUZGTzFGQlF5OURMRTFCUVUwc1MwRkJTeXhIUVVGSExFMUJRVTBzVDBGQlR5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMUZCUlRGRExFMUJRVTBzVTBGQlV5eEhRVUZITEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNZVUZCWVN4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXpSU3hQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTzFsQlF6ZERMR1ZCUVdVc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVU4yUWl4WFFVRlhMRU5CUVVNc1JVRkJSU3haUVVGWkxFVkJRVVVzZDBOQlFVTXNRMEZCUXl4cFEwRkJhVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTjBSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5JTEdkQ1FVRm5RaXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzSkNMR1ZCUVdVc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dEpRVU0zUWl4RFFVRkRMRWRCUVVVc1EwRkJReXhQUVVGUExFVkJRVVVzVjBGQlZ5eEZRVUZGTEdGQlFXRXNSVUZCUlN4blFrRkJaMElzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGTlVRc1RVRkJUU3haUVVGWkxFZEJRVWNzYTBSQlFWY3NRMEZCUXl4SFFVRkhMRVZCUVVVN1VVRkRjRU1zVDBGQlR5eERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMUZCUTNaQ0xHVkJRV1VzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTndRaXhqUVVGakxFVkJRVVVzUTBGQlF6dEpRVU51UWl4RFFVRkRMRVZCUVVVc1EwRkJReXhQUVVGUExFVkJRVVVzWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVTVRaXhOUVVGTkxGbEJRVmtzUjBGQlJ5eHJSRUZCVnl4RFFVTTVRaXhEUVVGUExGRkJRV2xETEVWQlFVVXNSVUZCUlR0UlFVTXhReXhKUVVGSkxGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEV0QlFVc3NUMEZCVHl4RFFVRkRMRVZCUVVVN1dVRkRlRVFzVDBGQlR5eFhRVUZYTEVOQlFVTTdaMEpCUTJwQ0xGbEJRVmtzUlVGQlJTeDFSRUZCZFVRN1lVRkRkRVVzUTBGQlF5eERRVUZETzFOQlEwbzdVVUZEUkN4TlFVRk5MRXRCUVVzc1IwRkJSeXhOUVVGTkxFOUJRVThzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0UlFVTXhReXhOUVVGTkxGTkJRVk1zUjBGQmFVSTdXVUZET1VJN1owSkJRMFVzVFVGQlRTeEZRVUZGTEdGQlFXRTdaMEpCUTNKQ0xGRkJRVkU3WjBKQlExSXNSVUZCUlN4RlFVRkZMR2xFUVVGUkxFVkJRVVU3WjBKQlEyUXNUMEZCVHl4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExFVkJRVVU3WVVGRGNFSTdXVUZEUkN4SFFVRkhMRXRCUVVzN1UwRkRWQ3hEUVVGRE8xRkJRMFlzWTBGQll5eEZRVUZGTEVOQlFVTTdVVUZEYWtJc1QwRkJUeXhEUVVGRExGZEJRVmNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJUdFpRVU0zUXl4bFFVRmxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03V1VGRGRrSXNWMEZCVnl4RFFVRkRMRVZCUVVVc1dVRkJXU3hGUVVGRkxIZERRVUZETEVOQlFVTXNOa0pCUVRaQ0xFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEYkVVc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRFNDeGxRVUZsTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1NVRkROMElzUTBGQlF5eEhRVU5FTEVOQlFVTXNZMEZCWXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGRGRrTXNRMEZCUXp0SlFVVkdMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NhMFJCUVZjc1EwRkJReXhIUVVGSExFVkJRVVU3VVVGRE5VTXNUMEZCVHl4RFFVTk1MSGRFUVVGRExESkRRVUZOTEd0Q1FVTk1MR05CUVdNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGRGFFUXNTMEZCU3l4RlFVRkZMSGREUVVGRExFTkJRVU1zTkVKQlFUUkNMRU5CUVVNc1JVRkRkRU1zVTBGQlV5eEZRVUZETEhsQ1FVRjVRaXhGUVVOdVF5eExRVUZMTEVWQlFVVXNTVUZCU1N4cFFrRkZXQ3d3UlVGRFJ5eDNRMEZCUXl4RFFVRkRMRGhDUVVFNFFpeEZRVUZGT3pSQ1FVTnFReXhWUVVGVkxFVkJRVVVzYVVKQlFXdENMRU5CUVVNc1ZVRkJWVHQ1UWtGRE1VTXNRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkRVQ3cwUlVGRFJTeEpRVUZKTEVWQlFVVXNhVUpCUVdsQ0xHRkJRV3BDTEdsQ1FVRnBRaXgxUWtGQmFrSXNhVUpCUVdsQ0xFTkJRVVVzUjBGQlJ5eEZRVU0xUWl4TlFVRk5MRVZCUVVNc1VVRkJVU3hGUVVObUxFZEJRVWNzUlVGQlF5eHhRa0ZCY1VJc1owSkJSWGhDTEhkRFFVRkRMRU5CUVVNc01rSkJRVEpDTEVOQlFVTXNXVUZETjBJc1dVRkRSaXhGUVVOS0xIVkVRVUZETEcxRVFVRlZMRWxCUTFRc1NVRkJTU3hGUVVGRExGRkJRVkVzUlVGRFlpeExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXhsUVVGbExFTkJRVU1zWjBKQlEySXNkME5CUVVNc1EwRkJReXhsUVVGbExFTkJRVU1zUlVGRE9VSXNTMEZCU3l4RlFVRkZMSGREUVVGRExFTkJRVU1zWlVGQlpTeERRVUZETEVWQlEzcENMRTlCUVU4c1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zYVVKQlF6ZENMQ3RDUVVFclFpeEZRVU16UXl4VFFVRlRMRVZCUVVNc0swSkJRU3RDTEZkQlEzcERMR0ZCUTBzc1EwRkRWaXhEUVVGRE8wbEJRMG9zUTBGQlF5eEZRVUZGTEVOQlFVTXNiMEpCUVc5Q0xFVkJRVVVzYVVKQlFXbENMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSVGxETEUxQlFVMHNiVUpCUVcxQ0xFZEJRVWNzYTBSQlFWY3NRMEZEY2tNc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJUdFJRVU5RTERKQ1FVRXlRaXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEyNURMRzlDUVVGdlFpeERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExFVkJRVVVzVlVGQlZTeEZRVUZGTEVsQlFVa3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM0pGTEUxQlFVMHNXVUZCV1N4SFFVRkhMRmxCUVZrc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dFJRVU14UXl4WlFVRlpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVTdXVUZETDBJc1NVRkJTU3hoUVVGaExFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSVHRuUWtGRGRFTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1IwRkJSeXhYUVVGWExFTkJRVU03WVVGRE9VSTdVVUZEU0N4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOSUxFOUJRVThzUTBGQlF5eFhRVUZYTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRiRU1zWlVGQlpTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMGxCUTJoRExFTkJRVU1zUlVGRFJEdFJRVU5GTERKQ1FVRXlRanRSUVVNelFpeHZRa0ZCYjBJN1VVRkRjRUlzV1VGQldUdFJRVU5hTEdGQlFXRTdVVUZEWWl4UFFVRlBPMHRCUTFJc1EwRkRSaXhEUVVGRE8wbEJSVVlzVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhGUVVGRkxHMUNRVUZ0UWl4RFFVRkRMRWRCUVVjc0swTkJRVkVzUTBGRmRFUXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkZVaXhQUVVGUExGbEJRVmtzUzBGQlN5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGRE5VTXNkMFJCUVVNc01rTkJRVTBzYTBKQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEZOQlFWTXNSVUZCUXl4dFFrRkJiVUlzYVVKQlEzaEVMSGRDUVVGM1FpeEpRVUZKTEVOQlF6TkNMSFZFUVVGRExIVkVRVUZqTEVsQlEySXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExESkNRVUV5UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVOcVJDeFpRVUZaTEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU1zV1VGQldTeEZRVUZGTEdGQlFXRXNRMEZCUXl4RlFVTXpSQ3hSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVU5zUWl4VFFVRlRMRVZCUVVVc2JVSkJRVzFDTEVWQlF6bENMRTlCUVU4c1JVRkJSU3hEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGRGRrTXNiMEpCUVc5Q0xFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmRCUVZjc1EwRkJReXhaUVVGWkxFTkJRVU1zUlVGRE4wUXNVVUZCVVN4RlFVRkZMRU5CUVVNc1JVRkJWU3hGUVVGRkxFVkJRVVVzUTBGRGRrSXNaMEpCUVdkQ0xFTkJRVU1zWVVGQllTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRMRmRCUlRkRUxFTkJRMGdzUlVGRFFTeHBRa0ZCYVVJc1NVRkJTU3h2UWtGQmIwSXNSVUZCUlN4RlFVVXpReXhaUVVGWkxFdEJRVXNzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVTTFRaXc0UlVGQlN5eFRRVUZUTEVWQlFVTXNNa0pCUVRKQ0xHZENRVU4yUXl4M1EwRkJReXhEUVVGRExEaENRVUU0UWl4RFFVRkRMRmxCUXpsQ0xFTkJRMUFzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZEUml4MVJFRkJReXg1UkVGQlowSXNTVUZEWml4WlFVRlpMRVZCUVVVc1dVRkJXU3hGUVVNeFFpeHRRa0ZCYlVJc1JVRkJSU3hwUWtGQmFVSXNSVUZEZEVNc1kwRkJZeXhGUVVGRkxGbEJRVmtzUlVGRE5VSXNZVUZCWVN4RlFVRkZMR0ZCUVdFc1JVRkROVUlzWlVGQlpTeEZRVUZGTEdWQlFXVXNSVUZEYUVNc1YwRkJWeXhGUVVGRkxGZEJRVmNzUlVGRGVFSXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENMRVZCUTJ4RExFOUJRVThzUlVGQlJTeFBRVUZQTEVWQlEyaENMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRMW9zUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZEV2l4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVOT0xHRkJRV0VzUlVGQlJTeGhRVUZoTEVWQlF6VkNMRkZCUVZFc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlR0dlFrRkRkRUlzVFVGQlRTeFpRVUZaTEVkQlFVY3NRMEZCUXl4aFFVRmhMRU5CUVVNc1VVRkJVU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzI5Q1FVVnFSQ3hKUVVGSkxGbEJRVmtzUlVGQlJUdDNRa0ZEYUVJc1NVRkJTU3hMUVVGTExFTkJRVU1zVVVGQlVTeEpRVUZKTEdkQ1FVRm5RaXhGUVVGRk96UkNRVU4wUXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhaUVVGWkxFTkJRVU1zVTBGQlV5eERRVU4yUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNTMEZCU3l4blFrRkJaMElzUTBGRGRrTXNRMEZCUXpzMFFrRkRSaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eFpRVUZaTEVOQlFVTXNVMEZCVXl4RFFVTnlReXhEUVVGRExFbEJRVWtzUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFTkJRM3BDTEVOQlFVTTdORUpCUlVZc1NVRkJTU3hWUVVGVkxFdEJRVXNzUTBGQlF5eERRVUZETEVsQlFVa3NVVUZCVVN4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRk8yZERRVU40UXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVkQlFVY3NZVUZCWVN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03WjBOQlEzcERMRTlCUVU4N05rSkJRMUk3TkVKQlJVUXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eHRSRUZCVlN4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE96UkNRVU51UkN4TlFVRk5MR1ZCUVdVc1IwRkJSeXhaUVVGWkxFTkJRVU1zVFVGQlRTeERRVU42UXl4RFFVRkRMRWRCUVhkQ0xFVkJRVVVzU1VGQlNTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMmREUVVOMFF5eEpRVU5GTEVOQlFVTXNSMEZCUnl4SlFVRkpMRlZCUVZVc1NVRkJTU3hIUVVGSExFbEJRVWtzVVVGQlVTeERRVUZETzI5RFFVTjBReXhuUWtGQlowSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVU0zUWp0dlEwRkRRU3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRwUTBGRGJrSTdaME5CUTBRc1QwRkJUeXhIUVVGSExFTkJRVU03TkVKQlEySXNRMEZCUXl4RlFVTkVMRVZCUVVVc1EwRkRTQ3hEUVVGRE96UkNRVVZHTEdkQ1FVRm5RaXhEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETzNsQ1FVTnVRenMyUWtGQlRUczBRa0ZEVEN4blFrRkJaMElzUTBGQlF5eERRVUZETEVkQlFVY3NZVUZCWVN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03ZVVKQlF6RkRPM2RDUVVORUxHMUNRVUZ0UWl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8zRkNRVU42UWp0NVFrRkJUVHQzUWtGRFRDeHRRa0ZCYlVJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dDNRa0ZETVVJc1owSkJRV2RDTEVOQlFVTXNZVUZCWVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03Y1VKQlF6ZEVPMmRDUVVOSUxFTkJRVU1zUlVGRFJDeFRRVUZUTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc01rSkJRVEpDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUTJ4RUxGbEJRVmtzUlVGQlJTeFpRVUZaTEZkQlF6RkNMRU5CUTBnc1lVRkRUU3hEUVVOV0xFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5TWFXSnlZWEo1VFdWdWRTNTBjM2cvWVdNME5TSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUIxYzJWU1pXWXNJSFZ6WlZOMFlYUmxMQ0IxYzJWRlptWmxZM1FzSUhWelpVTmhiR3hpWVdOckxDQlNaV1pQWW1wbFkzUWdmU0JtY205dElGd2ljbVZoWTNSY0lqdGNibWx0Y0c5eWRDQk1hV0p5WVhKNUlHWnliMjBnWENJdUxpOWtZWFJoTDJ4cFluSmhjbmxjSWp0Y2JtbHRjRzl5ZENCN0lIUWdmU0JtY205dElGd2lMaTR2YVRFNGJsd2lPMXh1YVcxd2IzSjBJSHNnY21GdVpHOXRTV1FnZlNCbWNtOXRJRndpTGk0dmNtRnVaRzl0WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JNYVdKeVlYSjVTWFJsYlhNc1hHNGdJRXhwWW5KaGNubEpkR1Z0TEZ4dUlDQkJjSEJUZEdGMFpTeGNiaUFnUW1sdVlYSjVSbWxzWlhNc1hHNGdJRVY0WTJGc2FXUnlZWGRRY205d2N5eGNibjBnWm5KdmJTQmNJaTR1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCRWFXRnNiMmNnZlNCbWNtOXRJRndpTGk5RWFXRnNiMmRjSWp0Y2JtbHRjRzl5ZENCN0lFbHpiR0Z1WkNCOUlHWnliMjBnWENJdUwwbHpiR0Z1WkZ3aU8xeHVhVzF3YjNKMElGQjFZbXhwYzJoTWFXSnlZWEo1SUdaeWIyMGdYQ0l1TDFCMVlteHBjMmhNYVdKeVlYSjVYQ0k3WEc1cGJYQnZjblFnZXlCVWIyOXNRblYwZEc5dUlIMGdabkp2YlNCY0lpNHZWRzl2YkVKMWRIUnZibHdpTzF4dVhHNXBiWEJ2Y25RZ1hDSXVMMHhwWW5KaGNubE5aVzUxTG5OamMzTmNJanRjYm1sdGNHOXlkQ0JNYVdKeVlYSjVUV1Z1ZFVsMFpXMXpJR1p5YjIwZ1hDSXVMMHhwWW5KaGNubE5aVzUxU1hSbGJYTmNJanRjYm1sdGNHOXlkQ0I3SUVWV1JVNVVJSDBnWm5KdmJTQmNJaTR1TDJOdmJuTjBZVzUwYzF3aU8xeHVhVzF3YjNKMElIc2dTMFZaVXlCOUlHWnliMjBnWENJdUxpOXJaWGx6WENJN1hHNXBiWEJ2Y25RZ2V5QmhjbkpoZVZSdlRXRndJSDBnWm5KdmJTQmNJaTR1TDNWMGFXeHpYQ0k3WEc1Y2JtTnZibk4wSUhWelpVOXVRMnhwWTJ0UGRYUnphV1JsSUQwZ0tGeHVJQ0J5WldZNklGSmxaazlpYW1WamREeElWRTFNUld4bGJXVnVkRDRzWEc0Z0lHTmlPaUFvWlhabGJuUTZJRTF2ZFhObFJYWmxiblFwSUQwK0lIWnZhV1FzWEc0cElEMCtJSHRjYmlBZ2RYTmxSV1ptWldOMEtDZ3BJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQnNhWE4wWlc1bGNpQTlJQ2hsZG1WdWREb2dUVzkxYzJWRmRtVnVkQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ2FXWWdLQ0Z5WldZdVkzVnljbVZ1ZENrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnWlhabGJuUXVkR0Z5WjJWMElHbHVjM1JoYm1ObGIyWWdSV3hsYldWdWRDQW1KbHh1SUNBZ0lDQWdJQ0FvY21WbUxtTjFjbkpsYm5RdVkyOXVkR0ZwYm5Nb1pYWmxiblF1ZEdGeVoyVjBLU0I4ZkZ4dUlDQWdJQ0FnSUNBZ0lDRmtiMk4xYldWdWRDNWliMlI1TG1OdmJuUmhhVzV6S0dWMlpXNTBMblJoY21kbGRDa3BYRzRnSUNBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JqWWlobGRtVnVkQ2s3WEc0Z0lDQWdmVHRjYmlBZ0lDQmtiMk4xYldWdWRDNWhaR1JGZG1WdWRFeHBjM1JsYm1WeUtGd2ljRzlwYm5SbGNtUnZkMjVjSWl3Z2JHbHpkR1Z1WlhJc0lHWmhiSE5sS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUFvS1NBOVBpQjdYRzRnSUNBZ0lDQmtiMk4xYldWdWRDNXlaVzF2ZG1WRmRtVnVkRXhwYzNSbGJtVnlLRndpY0c5cGJuUmxjbVJ2ZDI1Y0lpd2diR2x6ZEdWdVpYSXBPMXh1SUNBZ0lIMDdYRzRnSUgwc0lGdHlaV1lzSUdOaVhTazdYRzU5TzF4dVhHNWpiMjV6ZENCblpYUlRaV3hsWTNSbFpFbDBaVzF6SUQwZ0tGeHVJQ0JzYVdKeVlYSjVTWFJsYlhNNklFeHBZbkpoY25sSmRHVnRjeXhjYmlBZ2MyVnNaV04wWldSSmRHVnRjem9nVEdsaWNtRnllVWwwWlcxYlhDSnBaRndpWFZ0ZExGeHVLU0E5UGlCc2FXSnlZWEo1U1hSbGJYTXVabWxzZEdWeUtDaHBkR1Z0S1NBOVBpQnpaV3hsWTNSbFpFbDBaVzF6TG1sdVkyeDFaR1Z6S0dsMFpXMHVhV1FwS1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUV4cFluSmhjbmxOWlc1MUlEMGdLSHRjYmlBZ2IyNURiRzl6WlN4Y2JpQWdiMjVKYm5ObGNuUlRhR0Z3WlN4Y2JpQWdjR1Z1WkdsdVowVnNaVzFsYm5SekxGeHVJQ0J2YmtGa1pGUnZUR2xpY21GeWVTeGNiaUFnZEdobGJXVXNYRzRnSUhObGRFRndjRk4wWVhSbExGeHVJQ0JtYVd4bGN5eGNiaUFnYkdsaWNtRnllVkpsZEhWeWJsVnliQ3hjYmlBZ1ptOWpkWE5EYjI1MFlXbHVaWElzWEc0Z0lHeHBZbkpoY25rc1hHNGdJR2xrTEZ4dUlDQmhjSEJUZEdGMFpTeGNibjA2SUh0Y2JpQWdjR1Z1WkdsdVowVnNaVzFsYm5Sek9pQk1hV0p5WVhKNVNYUmxiVnRjSW1Wc1pXMWxiblJ6WENKZE8xeHVJQ0J2YmtOc2IzTmxPaUFvS1NBOVBpQjJiMmxrTzF4dUlDQnZia2x1YzJWeWRGTm9ZWEJsT2lBb1pXeGxiV1Z1ZEhNNklFeHBZbkpoY25sSmRHVnRXMXdpWld4bGJXVnVkSE5jSWwwcElEMCtJSFp2YVdRN1hHNGdJRzl1UVdSa1ZHOU1hV0p5WVhKNU9pQW9LU0E5UGlCMmIybGtPMXh1SUNCMGFHVnRaVG9nUVhCd1UzUmhkR1ZiWENKMGFHVnRaVndpWFR0Y2JpQWdabWxzWlhNNklFSnBibUZ5ZVVacGJHVnpPMXh1SUNCelpYUkJjSEJUZEdGMFpUb2dVbVZoWTNRdVEyOXRjRzl1Wlc1MFBHRnVlU3dnUVhCd1UzUmhkR1UrVzF3aWMyVjBVM1JoZEdWY0lsMDdYRzRnSUd4cFluSmhjbmxTWlhSMWNtNVZjbXc2SUVWNFkyRnNhV1J5WVhkUWNtOXdjMXRjSW14cFluSmhjbmxTWlhSMWNtNVZjbXhjSWwwN1hHNGdJR1p2WTNWelEyOXVkR0ZwYm1WeU9pQW9LU0E5UGlCMmIybGtPMXh1SUNCc2FXSnlZWEo1T2lCTWFXSnlZWEo1TzF4dUlDQnBaRG9nYzNSeWFXNW5PMXh1SUNCaGNIQlRkR0YwWlRvZ1FYQndVM1JoZEdVN1hHNTlLU0E5UGlCN1hHNGdJR052Ym5OMElISmxaaUE5SUhWelpWSmxaanhJVkUxTVJHbDJSV3hsYldWdWRDQjhJRzUxYkd3K0tHNTFiR3dwTzF4dVhHNGdJSFZ6WlU5dVEyeHBZMnRQZFhSemFXUmxLSEpsWml3Z0tHVjJaVzUwS1NBOVBpQjdYRzRnSUNBZ0x5OGdTV1lnWTJ4cFkyc2diMjRnZEdobElHeHBZbkpoY25rZ2FXTnZiaXdnWkc4Z2JtOTBhR2x1Wnk1Y2JpQWdJQ0JwWmlBb0tHVjJaVzUwTG5SaGNtZGxkQ0JoY3lCRmJHVnRaVzUwS1M1amJHOXpaWE4wS0Z3aUxsUnZiMnhKWTI5dVgxOXNhV0p5WVhKNVhDSXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVJQ0FnSUc5dVEyeHZjMlVvS1R0Y2JpQWdmU2s3WEc1Y2JpQWdkWE5sUldabVpXTjBLQ2dwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0JvWVc1a2JHVkxaWGxFYjNkdUlEMGdLR1YyWlc1ME9pQkxaWGxpYjJGeVpFVjJaVzUwS1NBOVBpQjdYRzRnSUNBZ0lDQnBaaUFvWlhabGJuUXVhMlY1SUQwOVBTQkxSVmxUTGtWVFEwRlFSU2tnZTF4dUlDQWdJQ0FnSUNCdmJrTnNiM05sS0NrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlR0Y2JpQWdJQ0JrYjJOMWJXVnVkQzVoWkdSRmRtVnVkRXhwYzNSbGJtVnlLRVZXUlU1VUxrdEZXVVJQVjA0c0lHaGhibVJzWlV0bGVVUnZkMjRwTzF4dUlDQWdJSEpsZEhWeWJpQW9LU0E5UGlCN1hHNGdJQ0FnSUNCa2IyTjFiV1Z1ZEM1eVpXMXZkbVZGZG1WdWRFeHBjM1JsYm1WeUtFVldSVTVVTGt0RldVUlBWMDRzSUdoaGJtUnNaVXRsZVVSdmQyNHBPMXh1SUNBZ0lIMDdYRzRnSUgwc0lGdHZia05zYjNObFhTazdYRzVjYmlBZ1kyOXVjM1FnVzJ4cFluSmhjbmxKZEdWdGN5d2djMlYwVEdsaWNtRnllVWwwWlcxelhTQTlJSFZ6WlZOMFlYUmxQRXhwWW5KaGNubEpkR1Z0Y3o0b1cxMHBPMXh1WEc0Z0lHTnZibk4wSUZ0c2IyRmthVzVuVTNSaGRHVXNJSE5sZEVselRHOWhaR2x1WjEwZ1BTQjFjMlZUZEdGMFpUeGNiaUFnSUNCY0luQnlaV3h2WVdScGJtZGNJaUI4SUZ3aWJHOWhaR2x1WjF3aUlId2dYQ0p5WldGa2VWd2lYRzRnSUQ0b1hDSndjbVZzYjJGa2FXNW5YQ0lwTzF4dUlDQmpiMjV6ZENCYmMyVnNaV04wWldSSmRHVnRjeXdnYzJWMFUyVnNaV04wWldSSmRHVnRjMTBnUFNCMWMyVlRkR0YwWlR4TWFXSnlZWEo1U1hSbGJWdGNJbWxrWENKZFcxMCtLRnRkS1R0Y2JpQWdZMjl1YzNRZ1czTm9iM2RRZFdKc2FYTm9UR2xpY21GeWVVUnBZV3h2Wnl3Z2MyVjBVMmh2ZDFCMVlteHBjMmhNYVdKeVlYSjVSR2xoYkc5blhTQTlYRzRnSUNBZ2RYTmxVM1JoZEdVb1ptRnNjMlVwTzF4dUlDQmpiMjV6ZENCYmNIVmliR2x6YUV4cFlsTjFZMk5sYzNNc0lITmxkRkIxWW14cGMyaE1hV0pUZFdOalpYTnpYU0E5SUhWelpWTjBZWFJsUEc1MWJHd2dmQ0I3WEc0Z0lDQWdkWEpzT2lCemRISnBibWM3WEc0Z0lDQWdZWFYwYUc5eVRtRnRaVG9nYzNSeWFXNW5PMXh1SUNCOVBpaHVkV3hzS1R0Y2JpQWdZMjl1YzNRZ2JHOWhaR2x1WjFScGJXVnlVbVZtSUQwZ2RYTmxVbVZtUEc1MWJXSmxjaUI4SUc1MWJHdytLRzUxYkd3cE8xeHVYRzRnSUhWelpVVm1abVZqZENnb0tTQTlQaUI3WEc0Z0lDQWdVSEp2YldselpTNXlZV05sS0Z0Y2JpQWdJQ0FnSUc1bGR5QlFjbTl0YVhObEtDaHlaWE52YkhabEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUd4dllXUnBibWRVYVcxbGNsSmxaaTVqZFhKeVpXNTBJRDBnZDJsdVpHOTNMbk5sZEZScGJXVnZkWFFvS0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUhKbGMyOXNkbVVvWENKc2IyRmthVzVuWENJcE8xeHVJQ0FnSUNBZ0lDQjlMQ0F4TURBcE8xeHVJQ0FnSUNBZ2ZTa3NYRzRnSUNBZ0lDQnNhV0p5WVhKNUxteHZZV1JNYVdKeVlYSjVLQ2t1ZEdobGJpZ29hWFJsYlhNcElEMCtJSHRjYmlBZ0lDQWdJQ0FnYzJWMFRHbGljbUZ5ZVVsMFpXMXpLR2wwWlcxektUdGNiaUFnSUNBZ0lDQWdjMlYwU1hOTWIyRmthVzVuS0Z3aWNtVmhaSGxjSWlrN1hHNGdJQ0FnSUNCOUtTeGNiaUFnSUNCZEtTNTBhR1Z1S0Noa1lYUmhLU0E5UGlCN1hHNGdJQ0FnSUNCcFppQW9aR0YwWVNBOVBUMGdYQ0pzYjJGa2FXNW5YQ0lwSUh0Y2JpQWdJQ0FnSUNBZ2MyVjBTWE5NYjJGa2FXNW5LRndpYkc5aFpHbHVaMXdpS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdLQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ1kyeGxZWEpVYVcxbGIzVjBLR3h2WVdScGJtZFVhVzFsY2xKbFppNWpkWEp5Wlc1MElTazdYRzRnSUNBZ2ZUdGNiaUFnZlN3Z1cyeHBZbkpoY25sZEtUdGNibHh1SUNCamIyNXpkQ0J5WlcxdmRtVkdjbTl0VEdsaWNtRnllU0E5SUhWelpVTmhiR3hpWVdOcktHRnplVzVqSUNncElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCcGRHVnRjeUE5SUdGM1lXbDBJR3hwWW5KaGNua3ViRzloWkV4cFluSmhjbmtvS1R0Y2JseHVJQ0FnSUdOdmJuTjBJRzVsZUhSSmRHVnRjeUE5SUdsMFpXMXpMbVpwYkhSbGNpZ29hWFJsYlNrZ1BUNGdJWE5sYkdWamRHVmtTWFJsYlhNdWFXNWpiSFZrWlhNb2FYUmxiUzVwWkNrcE8xeHVJQ0FnSUd4cFluSmhjbmt1YzJGMlpVeHBZbkpoY25rb2JtVjRkRWwwWlcxektTNWpZWFJqYUNnb1pYSnliM0lwSUQwK0lIdGNiaUFnSUNBZ0lITmxkRXhwWW5KaGNubEpkR1Z0Y3locGRHVnRjeWs3WEc0Z0lDQWdJQ0J6WlhSQmNIQlRkR0YwWlNoN0lHVnljbTl5VFdWemMyRm5aVG9nZENoY0ltRnNaWEowY3k1bGNuSnZjbEpsYlc5MmFXNW5Sbkp2YlV4cFluSmhjbmxjSWlrZ2ZTazdYRzRnSUNBZ2ZTazdYRzRnSUNBZ2MyVjBVMlZzWldOMFpXUkpkR1Z0Y3loYlhTazdYRzRnSUNBZ2MyVjBUR2xpY21GeWVVbDBaVzF6S0c1bGVIUkpkR1Z0Y3lrN1hHNGdJSDBzSUZ0c2FXSnlZWEo1TENCelpYUkJjSEJUZEdGMFpTd2djMlZzWldOMFpXUkpkR1Z0Y3l3Z2MyVjBVMlZzWldOMFpXUkpkR1Z0YzEwcE8xeHVYRzRnSUdOdmJuTjBJSEpsYzJWMFRHbGljbUZ5ZVNBOUlIVnpaVU5oYkd4aVlXTnJLQ2dwSUQwK0lIdGNiaUFnSUNCc2FXSnlZWEo1TG5KbGMyVjBUR2xpY21GeWVTZ3BPMXh1SUNBZ0lITmxkRXhwWW5KaGNubEpkR1Z0Y3loYlhTazdYRzRnSUNBZ1ptOWpkWE5EYjI1MFlXbHVaWElvS1R0Y2JpQWdmU3dnVzJ4cFluSmhjbmtzSUdadlkzVnpRMjl1ZEdGcGJtVnlYU2s3WEc1Y2JpQWdZMjl1YzNRZ1lXUmtWRzlNYVdKeVlYSjVJRDBnZFhObFEyRnNiR0poWTJzb1hHNGdJQ0FnWVhONWJtTWdLR1ZzWlcxbGJuUnpPaUJNYVdKeVlYSjVTWFJsYlZ0Y0ltVnNaVzFsYm5SelhDSmRLU0E5UGlCN1hHNGdJQ0FnSUNCcFppQW9aV3hsYldWdWRITXVjMjl0WlNnb1pXeGxiV1Z1ZENrZ1BUNGdaV3hsYldWdWRDNTBlWEJsSUQwOVBTQmNJbWx0WVdkbFhDSXBLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ6WlhSQmNIQlRkR0YwWlNoN1hHNGdJQ0FnSUNBZ0lDQWdaWEp5YjNKTlpYTnpZV2RsT2lCY0lsTjFjSEJ2Y25RZ1ptOXlJR0ZrWkdsdVp5QnBiV0ZuWlhNZ2RHOGdkR2hsSUd4cFluSmhjbmtnWTI5dGFXNW5JSE52YjI0aFhDSXNYRzRnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnWTI5dWMzUWdhWFJsYlhNZ1BTQmhkMkZwZENCc2FXSnlZWEo1TG14dllXUk1hV0p5WVhKNUtDazdYRzRnSUNBZ0lDQmpiMjV6ZENCdVpYaDBTWFJsYlhNNklFeHBZbkpoY25sSmRHVnRjeUE5SUZ0Y2JpQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJSE4wWVhSMWN6b2dYQ0oxYm5CMVlteHBjMmhsWkZ3aUxGeHVJQ0FnSUNBZ0lDQWdJR1ZzWlcxbGJuUnpMRnh1SUNBZ0lDQWdJQ0FnSUdsa09pQnlZVzVrYjIxSlpDZ3BMRnh1SUNBZ0lDQWdJQ0FnSUdOeVpXRjBaV1E2SUVSaGRHVXVibTkzS0Nrc1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQzR1TG1sMFpXMXpMRnh1SUNBZ0lDQWdYVHRjYmlBZ0lDQWdJRzl1UVdSa1ZHOU1hV0p5WVhKNUtDazdYRzRnSUNBZ0lDQnNhV0p5WVhKNUxuTmhkbVZNYVdKeVlYSjVLRzVsZUhSSmRHVnRjeWt1WTJGMFkyZ29LR1Z5Y205eUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUhObGRFeHBZbkpoY25sSmRHVnRjeWhwZEdWdGN5azdYRzRnSUNBZ0lDQWdJSE5sZEVGd2NGTjBZWFJsS0hzZ1pYSnliM0pOWlhOellXZGxPaUIwS0Z3aVlXeGxjblJ6TG1WeWNtOXlRV1JrYVc1blZHOU1hV0p5WVhKNVhDSXBJSDBwTzF4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCelpYUk1hV0p5WVhKNVNYUmxiWE1vYm1WNGRFbDBaVzF6S1R0Y2JpQWdJQ0I5TEZ4dUlDQWdJRnR2YmtGa1pGUnZUR2xpY21GeWVTd2diR2xpY21GeWVTd2djMlYwUVhCd1UzUmhkR1ZkTEZ4dUlDQXBPMXh1WEc0Z0lHTnZibk4wSUhKbGJtUmxjbEIxWW14cGMyaFRkV05qWlhOeklEMGdkWE5sUTJGc2JHSmhZMnNvS0NrZ1BUNGdlMXh1SUNBZ0lISmxkSFZ5YmlBb1hHNGdJQ0FnSUNBOFJHbGhiRzluWEc0Z0lDQWdJQ0FnSUc5dVEyeHZjMlZTWlhGMVpYTjBQWHNvS1NBOVBpQnpaWFJRZFdKc2FYTm9UR2xpVTNWalkyVnpjeWh1ZFd4c0tYMWNiaUFnSUNBZ0lDQWdkR2wwYkdVOWUzUW9YQ0p3ZFdKc2FYTm9VM1ZqWTJWemMwUnBZV3h2Wnk1MGFYUnNaVndpS1gxY2JpQWdJQ0FnSUNBZ1kyeGhjM05PWVcxbFBWd2ljSFZpYkdsemFDMXNhV0p5WVhKNUxYTjFZMk5sYzNOY0lseHVJQ0FnSUNBZ0lDQnpiV0ZzYkQxN2RISjFaWDFjYmlBZ0lDQWdJRDVjYmlBZ0lDQWdJQ0FnUEhBK1hHNGdJQ0FnSUNBZ0lDQWdlM1FvWENKd2RXSnNhWE5vVTNWalkyVnpjMFJwWVd4dlp5NWpiMjUwWlc1MFhDSXNJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHRjFkR2h2Y2s1aGJXVTZJSEIxWW14cGMyaE1hV0pUZFdOalpYTnpJUzVoZFhSb2IzSk9ZVzFsTEZ4dUlDQWdJQ0FnSUNBZ0lIMHBmWHRjSWlCY0luMWNiaUFnSUNBZ0lDQWdJQ0E4WVZ4dUlDQWdJQ0FnSUNBZ0lDQWdhSEpsWmoxN2NIVmliR2x6YUV4cFlsTjFZMk5sYzNNL0xuVnliSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIUmhjbWRsZEQxY0lsOWliR0Z1YTF3aVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5Wld3OVhDSnViMjl3Wlc1bGNpQnViM0psWm1WeWNtVnlYQ0pjYmlBZ0lDQWdJQ0FnSUNBK1hHNGdJQ0FnSUNBZ0lDQWdJQ0I3ZENoY0luQjFZbXhwYzJoVGRXTmpaWE56UkdsaGJHOW5MbXhwYm10Y0lpbDlYRzRnSUNBZ0lDQWdJQ0FnUEM5aFBseHVJQ0FnSUNBZ0lDQThMM0ErWEc0Z0lDQWdJQ0FnSUR4VWIyOXNRblYwZEc5dVhHNGdJQ0FnSUNBZ0lDQWdkSGx3WlQxY0ltSjFkSFJ2Ymx3aVhHNGdJQ0FnSUNBZ0lDQWdkR2wwYkdVOWUzUW9YQ0ppZFhSMGIyNXpMbU5zYjNObFhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUdGeWFXRXRiR0ZpWld3OWUzUW9YQ0ppZFhSMGIyNXpMbU5zYjNObFhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUd4aFltVnNQWHQwS0Z3aVluVjBkRzl1Y3k1amJHOXpaVndpS1gxY2JpQWdJQ0FnSUNBZ0lDQnZia05zYVdOclBYc29LU0E5UGlCelpYUlFkV0pzYVhOb1RHbGlVM1ZqWTJWemN5aHVkV3hzS1gxY2JpQWdJQ0FnSUNBZ0lDQmtZWFJoTFhSbGMzUnBaRDFjSW5CMVlteHBjMmd0YkdsaWNtRnllUzF6ZFdOalpYTnpMV05zYjNObFhDSmNiaUFnSUNBZ0lDQWdJQ0JqYkdGemMwNWhiV1U5WENKd2RXSnNhWE5vTFd4cFluSmhjbmt0YzNWalkyVnpjeTFqYkc5elpWd2lYRzRnSUNBZ0lDQWdJQzgrWEc0Z0lDQWdJQ0E4TDBScFlXeHZaejVjYmlBZ0lDQXBPMXh1SUNCOUxDQmJjMlYwVUhWaWJHbHphRXhwWWxOMVkyTmxjM01zSUhCMVlteHBjMmhNYVdKVGRXTmpaWE56WFNrN1hHNWNiaUFnWTI5dWMzUWdiMjVRZFdKc2FYTm9UR2xpVTNWalkyVnpjeUE5SUhWelpVTmhiR3hpWVdOcktGeHVJQ0FnSUNoa1lYUmhLU0E5UGlCN1hHNGdJQ0FnSUNCelpYUlRhRzkzVUhWaWJHbHphRXhwWW5KaGNubEVhV0ZzYjJjb1ptRnNjMlVwTzF4dUlDQWdJQ0FnYzJWMFVIVmliR2x6YUV4cFlsTjFZMk5sYzNNb2V5QjFjbXc2SUdSaGRHRXVkWEpzTENCaGRYUm9iM0pPWVcxbE9pQmtZWFJoTG1GMWRHaHZjazVoYldVZ2ZTazdYRzRnSUNBZ0lDQmpiMjV6ZENCdVpYaDBUR2xpU1hSbGJYTWdQU0JzYVdKeVlYSjVTWFJsYlhNdWMyeHBZMlVvS1R0Y2JpQWdJQ0FnSUc1bGVIUk1hV0pKZEdWdGN5NW1iM0pGWVdOb0tDaHNhV0pKZEdWdEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUdsbUlDaHpaV3hsWTNSbFpFbDBaVzF6TG1sdVkyeDFaR1Z6S0d4cFlrbDBaVzB1YVdRcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYkdsaVNYUmxiUzV6ZEdGMGRYTWdQU0JjSW5CMVlteHBjMmhsWkZ3aU8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJR3hwWW5KaGNua3VjMkYyWlV4cFluSmhjbmtvYm1WNGRFeHBZa2wwWlcxektUdGNiaUFnSUNBZ0lITmxkRXhwWW5KaGNubEpkR1Z0Y3lodVpYaDBUR2xpU1hSbGJYTXBPMXh1SUNBZ0lIMHNYRzRnSUNBZ1cxeHVJQ0FnSUNBZ2MyVjBVMmh2ZDFCMVlteHBjMmhNYVdKeVlYSjVSR2xoYkc5bkxGeHVJQ0FnSUNBZ2MyVjBVSFZpYkdsemFFeHBZbE4xWTJObGMzTXNYRzRnSUNBZ0lDQnNhV0p5WVhKNVNYUmxiWE1zWEc0Z0lDQWdJQ0J6Wld4bFkzUmxaRWwwWlcxekxGeHVJQ0FnSUNBZ2JHbGljbUZ5ZVN4Y2JpQWdJQ0JkTEZ4dUlDQXBPMXh1WEc0Z0lHTnZibk4wSUZ0c1lYTjBVMlZzWldOMFpXUkpkR1Z0TENCelpYUk1ZWE4wVTJWc1pXTjBaV1JKZEdWdFhTQTlJSFZ6WlZOMFlYUmxQRnh1SUNBZ0lFeHBZbkpoY25sSmRHVnRXMXdpYVdSY0lsMGdmQ0J1ZFd4c1hHNGdJRDRvYm5Wc2JDazdYRzVjYmlBZ2NtVjBkWEp1SUd4dllXUnBibWRUZEdGMFpTQTlQVDBnWENKd2NtVnNiMkZrYVc1blhDSWdQeUJ1ZFd4c0lEb2dLRnh1SUNBZ0lEeEpjMnhoYm1RZ2NHRmtaR2x1WnoxN01YMGdjbVZtUFh0eVpXWjlJR05zWVhOelRtRnRaVDFjSW14aGVXVnlMWFZwWDE5c2FXSnlZWEo1WENJK1hHNGdJQ0FnSUNCN2MyaHZkMUIxWW14cGMyaE1hV0p5WVhKNVJHbGhiRzluSUNZbUlDaGNiaUFnSUNBZ0lDQWdQRkIxWW14cGMyaE1hV0p5WVhKNVhHNGdJQ0FnSUNBZ0lDQWdiMjVEYkc5elpUMTdLQ2tnUFQ0Z2MyVjBVMmh2ZDFCMVlteHBjMmhNYVdKeVlYSjVSR2xoYkc5bktHWmhiSE5sS1gxY2JpQWdJQ0FnSUNBZ0lDQnNhV0p5WVhKNVNYUmxiWE05ZTJkbGRGTmxiR1ZqZEdWa1NYUmxiWE1vYkdsaWNtRnllVWwwWlcxekxDQnpaV3hsWTNSbFpFbDBaVzF6S1gxY2JpQWdJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpUMTdZWEJ3VTNSaGRHVjlYRzRnSUNBZ0lDQWdJQ0FnYjI1VGRXTmpaWE56UFh0dmJsQjFZbXhwYzJoTWFXSlRkV05qWlhOemZWeHVJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSTlleWhsY25KdmNpa2dQVDRnZDJsdVpHOTNMbUZzWlhKMEtHVnljbTl5S1gxY2JpQWdJQ0FnSUNBZ0lDQjFjR1JoZEdWSmRHVnRjMGx1VTNSdmNtRm5aVDE3S0NrZ1BUNGdiR2xpY21GeWVTNXpZWFpsVEdsaWNtRnllU2hzYVdKeVlYSjVTWFJsYlhNcGZWeHVJQ0FnSUNBZ0lDQWdJRzl1VW1WdGIzWmxQWHNvYVdRNklITjBjbWx1WnlrZ1BUNWNiaUFnSUNBZ0lDQWdJQ0FnSUhObGRGTmxiR1ZqZEdWa1NYUmxiWE1vYzJWc1pXTjBaV1JKZEdWdGN5NW1hV3gwWlhJb0tGOXBaQ2tnUFQ0Z1gybGtJQ0U5UFNCcFpDa3BYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ0tYMWNiaUFnSUNBZ0lIdHdkV0pzYVhOb1RHbGlVM1ZqWTJWemN5QW1KaUJ5Wlc1a1pYSlFkV0pzYVhOb1UzVmpZMlZ6Y3lncGZWeHVYRzRnSUNBZ0lDQjdiRzloWkdsdVoxTjBZWFJsSUQwOVBTQmNJbXh2WVdScGJtZGNJaUEvSUNoY2JpQWdJQ0FnSUNBZ1BHUnBkaUJqYkdGemMwNWhiV1U5WENKc1lYbGxjaTExYVY5ZmJHbGljbUZ5ZVMxdFpYTnpZV2RsWENJK1hHNGdJQ0FnSUNBZ0lDQWdlM1FvWENKc1lXSmxiSE11YkdsaWNtRnllVXh2WVdScGJtZE5aWE56WVdkbFhDSXBmVnh1SUNBZ0lDQWdJQ0E4TDJScGRqNWNiaUFnSUNBZ0lDa2dPaUFvWEc0Z0lDQWdJQ0FnSUR4TWFXSnlZWEo1VFdWdWRVbDBaVzF6WEc0Z0lDQWdJQ0FnSUNBZ2JHbGljbUZ5ZVVsMFpXMXpQWHRzYVdKeVlYSjVTWFJsYlhOOVhHNGdJQ0FnSUNBZ0lDQWdiMjVTWlcxdmRtVkdjbTl0VEdsaWNtRnllVDE3Y21WdGIzWmxSbkp2YlV4cFluSmhjbmw5WEc0Z0lDQWdJQ0FnSUNBZ2IyNUJaR1JVYjB4cFluSmhjbms5ZTJGa1pGUnZUR2xpY21GeWVYMWNiaUFnSUNBZ0lDQWdJQ0J2YmtsdWMyVnlkRk5vWVhCbFBYdHZia2x1YzJWeWRGTm9ZWEJsZlZ4dUlDQWdJQ0FnSUNBZ0lIQmxibVJwYm1kRmJHVnRaVzUwY3oxN2NHVnVaR2x1WjBWc1pXMWxiblJ6ZlZ4dUlDQWdJQ0FnSUNBZ0lITmxkRUZ3Y0ZOMFlYUmxQWHR6WlhSQmNIQlRkR0YwWlgxY2JpQWdJQ0FnSUNBZ0lDQnNhV0p5WVhKNVVtVjBkWEp1VlhKc1BYdHNhV0p5WVhKNVVtVjBkWEp1VlhKc2ZWeHVJQ0FnSUNBZ0lDQWdJR3hwWW5KaGNuazllMnhwWW5KaGNubDlYRzRnSUNBZ0lDQWdJQ0FnZEdobGJXVTllM1JvWlcxbGZWeHVJQ0FnSUNBZ0lDQWdJR1pwYkdWelBYdG1hV3hsYzMxY2JpQWdJQ0FnSUNBZ0lDQnBaRDE3YVdSOVhHNGdJQ0FnSUNBZ0lDQWdjMlZzWldOMFpXUkpkR1Z0Y3oxN2MyVnNaV04wWldSSmRHVnRjMzFjYmlBZ0lDQWdJQ0FnSUNCdmJsUnZaMmRzWlQxN0tHbGtMQ0JsZG1WdWRDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2MyaHZkV3hrVTJWc1pXTjBJRDBnSVhObGJHVmpkR1ZrU1hSbGJYTXVhVzVqYkhWa1pYTW9hV1FwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2MyaHZkV3hrVTJWc1pXTjBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNobGRtVnVkQzV6YUdsbWRFdGxlU0FtSmlCc1lYTjBVMlZzWldOMFpXUkpkR1Z0S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY21GdVoyVlRkR0Z5ZENBOUlHeHBZbkpoY25sSmRHVnRjeTVtYVc1a1NXNWtaWGdvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBb2FYUmxiU2tnUFQ0Z2FYUmxiUzVwWkNBOVBUMGdiR0Z6ZEZObGJHVmpkR1ZrU1hSbGJTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElISmhibWRsUlc1a0lEMGdiR2xpY21GeWVVbDBaVzF6TG1acGJtUkpibVJsZUNoY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDaHBkR1Z0S1NBOVBpQnBkR1Z0TG1sa0lEMDlQU0JwWkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hKaGJtZGxVM1JoY25RZ1BUMDlJQzB4SUh4OElISmhibWRsUlc1a0lEMDlQU0F0TVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMlYwVTJWc1pXTjBaV1JKZEdWdGN5aGJMaTR1YzJWc1pXTjBaV1JKZEdWdGN5d2dhV1JkS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCelpXeGxZM1JsWkVsMFpXMXpUV0Z3SUQwZ1lYSnlZWGxVYjAxaGNDaHpaV3hsWTNSbFpFbDBaVzF6S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J1WlhoMFUyVnNaV04wWldSSlpITWdQU0JzYVdKeVlYSjVTWFJsYlhNdWNtVmtkV05sS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tHRmpZem9nVEdsaWNtRnllVWwwWlcxYlhDSnBaRndpWFZ0ZExDQnBkR1Z0TENCcFpIZ3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2hwWkhnZ1BqMGdjbUZ1WjJWVGRHRnlkQ0FtSmlCcFpIZ2dQRDBnY21GdVoyVkZibVFwSUh4OFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJWc1pXTjBaV1JKZEdWdGMwMWhjQzVvWVhNb2FYUmxiUzVwWkNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZV05qTG5CMWMyZ29hWFJsYlM1cFpDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHRmpZenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmJYU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyVjBVMlZzWldOMFpXUkpkR1Z0Y3lodVpYaDBVMlZzWldOMFpXUkpaSE1wTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5sZEZObGJHVmpkR1ZrU1hSbGJYTW9XeTR1TG5ObGJHVmpkR1ZrU1hSbGJYTXNJR2xrWFNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJWMFRHRnpkRk5sYkdWamRHVmtTWFJsYlNocFpDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J6WlhSTVlYTjBVMlZzWldOMFpXUkpkR1Z0S0c1MWJHd3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnpaWFJUWld4bFkzUmxaRWwwWlcxektITmxiR1ZqZEdWa1NYUmxiWE11Wm1sc2RHVnlLQ2hmYVdRcElEMCtJRjlwWkNBaFBUMGdhV1FwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOWZWeHVJQ0FnSUNBZ0lDQWdJRzl1VUhWaWJHbHphRDE3S0NrZ1BUNGdjMlYwVTJodmQxQjFZbXhwYzJoTWFXSnlZWEo1UkdsaGJHOW5LSFJ5ZFdVcGZWeHVJQ0FnSUNBZ0lDQWdJSEpsYzJWMFRHbGljbUZ5ZVQxN2NtVnpaWFJNYVdKeVlYSjVmVnh1SUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnS1gxY2JpQWdJQ0E4TDBsemJHRnVaRDVjYmlBZ0tUdGNibjA3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5TWVudS50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvTGlicmFyeU1lbnVJdGVtcy50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0xpYnJhcnlNZW51SXRlbXMudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIGxvZGFzaF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgbG9kYXNoICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbG9kYXNoL2xvZGFzaC5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBsb2Rhc2hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihsb2Rhc2hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdCAqLyBcXFwicmVhY3RcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2RhdGFfanNvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZGF0YS9qc29uICovIFxcXCIuLi8uLi9kYXRhL2pzb24udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi91dGlscyAqLyBcXFwiLi4vLi4vdXRpbHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0FwcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9BcHAgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvQXBwLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfQ29uZmlybURpYWxvZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Db25maXJtRGlhbG9nICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0NvbmZpcm1EaWFsb2cudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9pY29ucyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9pY29ucy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0xpYnJhcnlVbml0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0xpYnJhcnlVbml0ICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0xpYnJhcnlVbml0LnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfU3RhY2tfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1N0YWNrICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1N0YWNrLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vVG9vbEJ1dHRvbiAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVG9vbHRpcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vVG9vbHRpcCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Ub29sdGlwLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfTGlicmFyeU1lbnVJdGVtc19zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9MaWJyYXJ5TWVudUl0ZW1zLnNjc3MgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvTGlicmFyeU1lbnVJdGVtcy5zY3NzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9MaWJyYXJ5TWVudUl0ZW1zX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX0xpYnJhcnlNZW51SXRlbXNfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcbnZhciBfX2F3YWl0ZXIgPSAodW5kZWZpbmVkICYmIHVuZGVmaW5lZC5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XFxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXFxcInRocm93XFxcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcXG4gICAgfSk7XFxufTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBMaWJyYXJ5TWVudUl0ZW1zID0gKHsgbGlicmFyeUl0ZW1zLCBvblJlbW92ZUZyb21MaWJyYXJ5LCBvbkFkZFRvTGlicmFyeSwgb25JbnNlcnRTaGFwZSwgcGVuZGluZ0VsZW1lbnRzLCB0aGVtZSwgc2V0QXBwU3RhdGUsIGxpYnJhcnlSZXR1cm5VcmwsIGxpYnJhcnksIGZpbGVzLCBpZCwgc2VsZWN0ZWRJdGVtcywgb25Ub2dnbGUsIG9uUHVibGlzaCwgcmVzZXRMaWJyYXJ5LCB9KSA9PiB7XFxuICAgIGNvbnN0IHJlbmRlclJlbW92ZUxpYkFsZXJ0ID0gKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy51c2VDYWxsYmFjaykoKCkgPT4ge1xcbiAgICAgICAgY29uc3QgY29udGVudCA9IHNlbGVjdGVkSXRlbXMubGVuZ3RoXFxuICAgICAgICAgICAgPyAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJhbGVydHMucmVtb3ZlSXRlbXNGcm9tc0xpYnJhcnlcXFwiLCB7IGNvdW50OiBzZWxlY3RlZEl0ZW1zLmxlbmd0aCB9KVxcbiAgICAgICAgICAgIDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwiYWxlcnRzLnJlc2V0TGlicmFyeVxcXCIpO1xcbiAgICAgICAgY29uc3QgdGl0bGUgPSBzZWxlY3RlZEl0ZW1zLmxlbmd0aFxcbiAgICAgICAgICAgID8gKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwiY29uZmlybURpYWxvZy5yZW1vdmVJdGVtc0Zyb21MaWJcXFwiKVxcbiAgICAgICAgICAgIDogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwiY29uZmlybURpYWxvZy5yZXNldExpYnJhcnlcXFwiKTtcXG4gICAgICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9Db25maXJtRGlhbG9nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X19bXFxcImRlZmF1bHRcXFwiXSwgT2JqZWN0LmFzc2lnbih7IG9uQ29uZmlybTogKCkgPT4ge1xcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtcy5sZW5ndGgpIHtcXG4gICAgICAgICAgICAgICAgICAgIG9uUmVtb3ZlRnJvbUxpYnJhcnkoKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHJlc2V0TGlicmFyeSgpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHNldFNob3dSZW1vdmVMaWJBbGVydChmYWxzZSk7XFxuICAgICAgICAgICAgfSwgb25DYW5jZWw6ICgpID0+IHtcXG4gICAgICAgICAgICAgICAgc2V0U2hvd1JlbW92ZUxpYkFsZXJ0KGZhbHNlKTtcXG4gICAgICAgICAgICB9LCB0aXRsZTogdGl0bGUgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwXFxcIiwgeyBjaGlsZHJlbjogY29udGVudCB9LCB2b2lkIDApIH0pLCB2b2lkIDApKTtcXG4gICAgfSwgW3NlbGVjdGVkSXRlbXMsIG9uUmVtb3ZlRnJvbUxpYnJhcnksIHJlc2V0TGlicmFyeV0pO1xcbiAgICBjb25zdCBbc2hvd1JlbW92ZUxpYkFsZXJ0LCBzZXRTaG93UmVtb3ZlTGliQWxlcnRdID0gKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy51c2VTdGF0ZSkoZmFsc2UpO1xcbiAgICBjb25zdCBpc01vYmlsZSA9ICgwLF9BcHBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy51c2VJc01vYmlsZSkoKTtcXG4gICAgY29uc3QgcmVuZGVyTGlicmFyeUFjdGlvbnMgPSAoKSA9PiB7XFxuICAgICAgICBjb25zdCBpdGVtc1NlbGVjdGVkID0gISFzZWxlY3RlZEl0ZW1zLmxlbmd0aDtcXG4gICAgICAgIGNvbnN0IGl0ZW1zID0gaXRlbXNTZWxlY3RlZFxcbiAgICAgICAgICAgID8gbGlicmFyeUl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhpdGVtLmlkKSlcXG4gICAgICAgICAgICA6IGxpYnJhcnlJdGVtcztcXG4gICAgICAgIGNvbnN0IHJlc2V0TGFiZWwgPSBpdGVtc1NlbGVjdGVkXFxuICAgICAgICAgICAgPyAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJidXR0b25zLnJlbW92ZVxcXCIpXFxuICAgICAgICAgICAgOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJidXR0b25zLnJlc2V0TGlicmFyeVxcXCIpO1xcbiAgICAgICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwibGlicmFyeS1hY3Rpb25zXFxcIiB9LCB7IGNoaWxkcmVuOiBbKCFpdGVtc1NlbGVjdGVkIHx8ICFpc01vYmlsZSkgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5Ub29sQnV0dG9uLCB7IHR5cGU6IFxcXCJidXR0b25cXFwiLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwiYnV0dG9ucy5sb2FkXFxcIiksIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwiYnV0dG9ucy5sb2FkXFxcIiksIGljb246IF9pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmxvYWQsIG9uQ2xpY2s6ICgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAoMCxfZGF0YV9qc29uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uaW1wb3J0TGlicmFyeUZyb21KU09OKShsaWJyYXJ5KVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENsb3NlIGFuZCB0aGVuIG9wZW4gdG8gZ2V0IHRoZSBsaWJyYXJpZXMgdXBkYXRlZFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRBcHBTdGF0ZSh7IGlzTGlicmFyeU9wZW46IGZhbHNlIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRBcHBTdGF0ZSh7IGlzTGlicmFyeU9wZW46IHRydWUgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLm11dGVGU0Fib3J0RXJyb3IpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0QXBwU3RhdGUoeyBlcnJvck1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICB9LCBjbGFzc05hbWU6IFxcXCJsaWJyYXJ5LWFjdGlvbnMtLWxvYWRcXFwiIH0sIFxcXCJpbXBvcnRcXFwiKSksICEhaXRlbXMubGVuZ3RoICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uVG9vbEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IHR5cGU6IFxcXCJidXR0b25cXFwiLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwiYnV0dG9ucy5leHBvcnRcXFwiKSwgXFxcImFyaWEtbGFiZWxcXFwiOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJidXR0b25zLmV4cG9ydFxcXCIpLCBpY29uOiBfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5leHBvcnRUb0ZpbGVJY29uLCBvbkNsaWNrOiAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnJhcnlJdGVtcyA9IGl0ZW1zU2VsZWN0ZWRcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGl0ZW1zXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB5aWVsZCBsaWJyYXJ5LmxvYWRMaWJyYXJ5KCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCxfZGF0YV9qc29uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uc2F2ZUxpYnJhcnlBc0pTT04pKGxpYnJhcnlJdGVtcylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18ubXV0ZUZTQWJvcnRFcnJvcilcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0QXBwU3RhdGUoeyBlcnJvck1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIGNsYXNzTmFtZTogXFxcImxpYnJhcnktYWN0aW9ucy0tZXhwb3J0XFxcIiB9LCB7IGNoaWxkcmVuOiBzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDAgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3BhblxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJsaWJyYXJ5LWFjdGlvbnMtY291bnRlclxcXCIgfSwgeyBjaGlsZHJlbjogc2VsZWN0ZWRJdGVtcy5sZW5ndGggfSksIHZvaWQgMCkpIH0pLCBcXFwiZXhwb3J0XFxcIiksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5Ub29sQnV0dG9uLCBPYmplY3QuYXNzaWduKHsgdHlwZTogXFxcImJ1dHRvblxcXCIsIHRpdGxlOiByZXNldExhYmVsLCBcXFwiYXJpYS1sYWJlbFxcXCI6IHJlc2V0TGFiZWwsIGljb246IF9pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLnRyYXNoLCBvbkNsaWNrOiAoKSA9PiBzZXRTaG93UmVtb3ZlTGliQWxlcnQodHJ1ZSksIGNsYXNzTmFtZTogXFxcImxpYnJhcnktYWN0aW9ucy0tcmVtb3ZlXFxcIiB9LCB7IGNoaWxkcmVuOiBzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDAgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3BhblxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJsaWJyYXJ5LWFjdGlvbnMtY291bnRlclxcXCIgfSwgeyBjaGlsZHJlbjogc2VsZWN0ZWRJdGVtcy5sZW5ndGggfSksIHZvaWQgMCkpIH0pLCBcXFwicmVzZXRcXFwiKV0gfSwgdm9pZCAwKSksIGl0ZW1zU2VsZWN0ZWQgJiYgIWlzUHVibGlzaGVkICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX1Rvb2x0aXBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uVG9vbHRpcCwgT2JqZWN0LmFzc2lnbih7IGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJoaW50cy5wdWJsaXNoTGlicmFyeVxcXCIpIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uVG9vbEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IHR5cGU6IFxcXCJidXR0b25cXFwiLCBcXFwiYXJpYS1sYWJlbFxcXCI6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcImJ1dHRvbnMucHVibGlzaExpYnJhcnlcXFwiKSwgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcImJ1dHRvbnMucHVibGlzaExpYnJhcnlcXFwiKSwgaWNvbjogX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18ucHVibGlzaEljb24sIGNsYXNzTmFtZTogXFxcImxpYnJhcnktYWN0aW9ucy0tcHVibGlzaFxcXCIsIG9uQ2xpY2s6IG9uUHVibGlzaCB9LCB7IGNoaWxkcmVuOiBbIWlzTW9iaWxlICYmICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwibGFiZWxcXFwiLCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJidXR0b25zLnB1Ymxpc2hMaWJyYXJ5XFxcIikgfSwgdm9pZCAwKSwgc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInNwYW5cXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwibGlicmFyeS1hY3Rpb25zLWNvdW50ZXJcXFwiIH0sIHsgY2hpbGRyZW46IHNlbGVjdGVkSXRlbXMubGVuZ3RoIH0pLCB2b2lkIDApKV0gfSksIHZvaWQgMCkgfSksIHZvaWQgMCkpXSB9KSwgdm9pZCAwKSk7XFxuICAgIH07XFxuICAgIGNvbnN0IENFTExTX1BFUl9ST1cgPSBpc01vYmlsZSA/IDQgOiA2O1xcbiAgICBjb25zdCByZWZlcnJlciA9IGxpYnJhcnlSZXR1cm5VcmwgfHwgd2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcXG4gICAgY29uc3QgaXNQdWJsaXNoZWQgPSBzZWxlY3RlZEl0ZW1zLnNvbWUoKGlkKSA9PiB7IHZhciBfYTsgcmV0dXJuICgoX2EgPSBsaWJyYXJ5SXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gaWQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc3RhdHVzKSA9PT0gXFxcInB1Ymxpc2hlZFxcXCI7IH0pO1xcbiAgICBjb25zdCBjcmVhdGVMaWJyYXJ5SXRlbUNvbXBvID0gKHBhcmFtcykgPT4ge1xcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcXG4gICAgICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9TdGFja19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfX1tcXFwiZGVmYXVsdFxcXCJdLkNvbCwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9MaWJyYXJ5VW5pdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLkxpYnJhcnlVbml0LCB7IGVsZW1lbnRzOiAoX2EgPSBwYXJhbXMuaXRlbSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmVsZW1lbnRzLCBmaWxlczogZmlsZXMsIGlzUGVuZGluZzogISgoX2IgPSBwYXJhbXMuaXRlbSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmlkKSAmJiAhISgoX2MgPSBwYXJhbXMuaXRlbSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmVsZW1lbnRzKSwgb25DbGljazogcGFyYW1zLm9uQ2xpY2sgfHwgKCgpID0+IHsgfSksIGlkOiAoKF9kID0gcGFyYW1zLml0ZW0pID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5pZCkgfHwgbnVsbCwgc2VsZWN0ZWQ6ICEhKChfZSA9IHBhcmFtcy5pdGVtKSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2UuaWQpICYmIHNlbGVjdGVkSXRlbXMuaW5jbHVkZXMocGFyYW1zLml0ZW0uaWQpLCBvblRvZ2dsZTogKGlkLCBldmVudCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgb25Ub2dnbGUoaWQsIGV2ZW50KTtcXG4gICAgICAgICAgICAgICAgfSB9LCB2b2lkIDApIH0sIHBhcmFtcy5rZXkpKTtcXG4gICAgfTtcXG4gICAgY29uc3QgcmVuZGVyTGlicmFyeVNlY3Rpb24gPSAoaXRlbXMpID0+IHtcXG4gICAgICAgIGNvbnN0IF9pdGVtcyA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xcbiAgICAgICAgICAgIGlmIChpdGVtLmlkKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVMaWJyYXJ5SXRlbUNvbXBvKHtcXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0sXFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBvbkluc2VydFNoYXBlKGl0ZW0uZWxlbWVudHMpLFxcbiAgICAgICAgICAgICAgICAgICAga2V5OiBpdGVtLmlkLFxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUxpYnJhcnlJdGVtQ29tcG8oe1xcbiAgICAgICAgICAgICAgICBrZXk6IFxcXCJfX3BlbmRpbmdfX2l0ZW1fX1xcXCIsXFxuICAgICAgICAgICAgICAgIGl0ZW0sXFxuICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IG9uQWRkVG9MaWJyYXJ5KHBlbmRpbmdFbGVtZW50cyksXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9KTtcXG4gICAgICAgIC8vIGVuc3VyZSB3ZSByZW5kZXIgYWxsIGVtcHR5IGNlbGxzIGlmIG5vIGl0ZW1zIGFyZSBwcmVzZW50XFxuICAgICAgICBsZXQgcm93cyA9ICgwLGxvZGFzaF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmNodW5rKShfaXRlbXMsIENFTExTX1BFUl9ST1cpO1xcbiAgICAgICAgaWYgKCFyb3dzLmxlbmd0aCkge1xcbiAgICAgICAgICAgIHJvd3MgPSBbW11dO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHJvd3MubWFwKChyb3dJdGVtcywgaW5kZXgsIHJvd3MpID0+IHtcXG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IHJvd3MubGVuZ3RoIC0gMSkge1xcbiAgICAgICAgICAgICAgICAvLyBwYWQgcm93IHdpdGggZW1wdHkgY2VsbHNcXG4gICAgICAgICAgICAgICAgcm93SXRlbXMgPSByb3dJdGVtcy5jb25jYXQobmV3IEFycmF5KENFTExTX1BFUl9ST1cgLSByb3dJdGVtcy5sZW5ndGgpXFxuICAgICAgICAgICAgICAgICAgICAuZmlsbChudWxsKVxcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoXywgaW5kZXgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVMaWJyYXJ5SXRlbUNvbXBvKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGBlbXB0eV8ke2luZGV4fWAsXFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbTogbnVsbCxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9TdGFja19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfX1tcXFwiZGVmYXVsdFxcXCJdLlJvdywgT2JqZWN0LmFzc2lnbih7IGFsaWduOiBcXFwiY2VudGVyXFxcIiwgZ2FwOiAxIH0sIHsgY2hpbGRyZW46IHJvd0l0ZW1zIH0pLCBpbmRleCkpO1xcbiAgICAgICAgfSk7XFxuICAgIH07XFxuICAgIGNvbnN0IHB1Ymxpc2hlZEl0ZW1zID0gbGlicmFyeUl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5zdGF0dXMgPT09IFxcXCJwdWJsaXNoZWRcXFwiKTtcXG4gICAgY29uc3QgdW5wdWJsaXNoZWRJdGVtcyA9IFtcXG4gICAgICAgIC8vIGFwcGVuZCBwZW5kaW5nIGxpYnJhcnkgaXRlbVxcbiAgICAgICAgLi4uKHBlbmRpbmdFbGVtZW50cy5sZW5ndGhcXG4gICAgICAgICAgICA/IFt7IGlkOiBudWxsLCBlbGVtZW50czogcGVuZGluZ0VsZW1lbnRzIH1dXFxuICAgICAgICAgICAgOiBbXSksXFxuICAgICAgICAuLi5saWJyYXJ5SXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnN0YXR1cyAhPT0gXFxcInB1Ymxpc2hlZFxcXCIpLFxcbiAgICBdO1xcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJsaWJyYXJ5LW1lbnUtaXRlbXMtY29udGFpbmVyXFxcIiB9LCB7IGNoaWxkcmVuOiBbc2hvd1JlbW92ZUxpYkFsZXJ0ICYmIHJlbmRlclJlbW92ZUxpYkFsZXJ0KCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJsYXllci11aV9fbGlicmFyeS1oZWFkZXJcXFwiIH0sIHsgY2hpbGRyZW46IFtyZW5kZXJMaWJyYXJ5QWN0aW9ucygpLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImFcXFwiLCBPYmplY3QuYXNzaWduKHsgaHJlZjogYCR7XFxcImh0dHBzOi8vbGlicmFyaWVzLmV4Y2FsaWRyYXcuY29tXFxcIn0/dGFyZ2V0PSR7d2luZG93Lm5hbWUgfHwgXFxcIl9ibGFua1xcXCJ9JnJlZmVycmVyPSR7cmVmZXJyZXJ9JnVzZUhhc2g9dHJ1ZSZ0b2tlbj0ke2lkfSZ0aGVtZT0ke3RoZW1lfSZ2ZXJzaW9uPSR7X2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy5WRVJTSU9OUy5leGNhbGlkcmF3TGlicmFyeX1gLCB0YXJnZXQ6IFxcXCJfZXhjYWxpZHJhd19saWJyYXJpZXNcXFwiIH0sIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcImxhYmVscy5saWJyYXJpZXNcXFwiKSB9KSwgdm9pZCAwKV0gfSksIFxcXCJsaWJyYXJ5LWhlYWRlclxcXCIpLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKF9TdGFja19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfX1tcXFwiZGVmYXVsdFxcXCJdLkNvbCwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcImxpYnJhcnktbWVudS1pdGVtcy1jb250YWluZXJfX2l0ZW1zXFxcIiwgYWxpZ246IFxcXCJzdGFydFxcXCIsIGdhcDogMSB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwic2VwYXJhdG9yXFxcIiB9LCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJsYWJlbHMucGVyc29uYWxMaWJcXFwiKSB9KSwgdm9pZCAwKSwgcmVuZGVyTGlicmFyeVNlY3Rpb24odW5wdWJsaXNoZWRJdGVtcyldIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykocmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GcmFnbWVudCwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJzZXBhcmF0b3JcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJsYWJlbHMuZXhjYWxpZHJhd0xpYlxcXCIpLCBcXFwiIFxcXCJdIH0pLCB2b2lkIDApLCByZW5kZXJMaWJyYXJ5U2VjdGlvbihwdWJsaXNoZWRJdGVtcyldIH0sIHZvaWQgMCldIH0pLCB2b2lkIDApXSB9KSwgdm9pZCAwKSk7XFxufTtcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKExpYnJhcnlNZW51SXRlbXMpO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5TWFXSnlZWEo1VFdWdWRVbDBaVzF6TG5SemVDNXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRCUVVFclFqdEJRVU5sTzBGQlF6QkNPMEZCUnpWRE8wRkJVV2RDTzBGQlExSTdRVUZEVVR0QlFVTjVRanRCUVVONlFqdEJRVU5vUWp0QlFVTmpPMEZCUTA0N1FVRkZTRHRCUVVOUE8wRkJSWGhETEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzUTBGQlF5eEZRVU40UWl4WlFVRlpMRVZCUTFvc2JVSkJRVzFDTEVWQlEyNUNMR05CUVdNc1JVRkRaQ3hoUVVGaExFVkJRMklzWlVGQlpTeEZRVU5tTEV0QlFVc3NSVUZEVEN4WFFVRlhMRVZCUTFnc1owSkJRV2RDTEVWQlEyaENMRTlCUVU4c1JVRkRVQ3hMUVVGTExFVkJRMHdzUlVGQlJTeEZRVU5HTEdGQlFXRXNSVUZEWWl4UlFVRlJMRVZCUTFJc1UwRkJVeXhGUVVOVUxGbEJRVmtzUjBGcFFtSXNSVUZCUlN4RlFVRkZPMGxCUTBnc1RVRkJUU3h2UWtGQmIwSXNSMEZCUnl4clJFRkJWeXhEUVVGRExFZEJRVWNzUlVGQlJUdFJRVU0xUXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhoUVVGaExFTkJRVU1zVFVGQlRUdFpRVU5zUXl4RFFVRkRMRU5CUVVNc2QwTkJRVU1zUTBGQlF5eG5RMEZCWjBNc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeGhRVUZoTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1dVRkRkRVVzUTBGQlF5eERRVUZETEhkRFFVRkRMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0UlFVTTNRaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eGhRVUZoTEVOQlFVTXNUVUZCVFR0WlFVTm9ReXhEUVVGRExFTkJRVU1zZDBOQlFVTXNRMEZCUXl4clEwRkJhME1zUTBGQlF6dFpRVU4yUXl4RFFVRkRMRU5CUVVNc2QwTkJRVU1zUTBGQlF5dzBRa0ZCTkVJc1EwRkJReXhEUVVGRE8xRkJRM0JETEU5QlFVOHNRMEZEVEN4MVJFRkJReXh6UkVGQllTeHJRa0ZEV2l4VFFVRlRMRVZCUVVVc1IwRkJSeXhGUVVGRk8yZENRVU5rTEVsQlFVa3NZVUZCWVN4RFFVRkRMRTFCUVUwc1JVRkJSVHR2UWtGRGVFSXNiVUpCUVcxQ0xFVkJRVVVzUTBGQlF6dHBRa0ZEZGtJN2NVSkJRVTA3YjBKQlEwd3NXVUZCV1N4RlFVRkZMRU5CUVVNN2FVSkJRMmhDTzJkQ1FVTkVMSEZDUVVGeFFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUXk5Q0xFTkJRVU1zUlVGRFJDeFJRVUZSTEVWQlFVVXNSMEZCUnl4RlFVRkZPMmRDUVVOaUxIRkNRVUZ4UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xbEJReTlDTEVOQlFVTXNSVUZEUkN4TFFVRkxMRVZCUVVVc1MwRkJTeXhuUWtGRldpeDNSVUZCU1N4UFFVRlBMRmRCUVVzc1dVRkRSaXhEUVVOcVFpeERRVUZETzBsQlEwb3NRMEZCUXl4RlFVRkZMRU5CUVVNc1lVRkJZU3hGUVVGRkxHMUNRVUZ0UWl4RlFVRkZMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmRrUXNUVUZCVFN4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEhGQ1FVRnhRaXhEUVVGRExFZEJRVWNzSzBOQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVWd1JTeE5RVUZOTEZGQlFWRXNSMEZCUnl4cFJFRkJWeXhGUVVGRkxFTkJRVU03U1VGRkwwSXNUVUZCVFN4dlFrRkJiMElzUjBGQlJ5eEhRVUZITEVWQlFVVTdVVUZEYUVNc1RVRkJUU3hoUVVGaExFZEJRVWNzUTBGQlF5eERRVUZETEdGQlFXRXNRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkROME1zVFVGQlRTeExRVUZMTEVkQlFVY3NZVUZCWVR0WlFVTjZRaXhEUVVGRExFTkJRVU1zV1VGQldTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hGUVVGRkxFTkJRVU1zWVVGQllTeERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRGFFVXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkJRenRSUVVOcVFpeE5RVUZOTEZWQlFWVXNSMEZCUnl4aFFVRmhPMWxCUXpsQ0xFTkJRVU1zUTBGQlF5eDNRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETzFsQlEzSkNMRU5CUVVNc1EwRkJReXgzUTBGQlF5eERRVUZETEhOQ1FVRnpRaXhEUVVGRExFTkJRVU03VVVGRE9VSXNUMEZCVHl4RFFVTk1MQ3RGUVVGTExGTkJRVk1zUlVGQlF5eHBRa0ZCYVVJc2FVSkJRemRDTEVOQlFVTXNRMEZCUXl4aFFVRmhMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVU5vUXl4MVJFRkJReXh2UkVGQlZTeEpRVVZVTEVsQlFVa3NSVUZCUXl4UlFVRlJMRVZCUTJJc1MwRkJTeXhGUVVGRkxIZERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMR2RDUVVOYUxIZERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRVZCUXpkQ0xFbEJRVWtzUlVGQlJTeDNRMEZCU1N4RlFVTldMRTlCUVU4c1JVRkJSU3hIUVVGSExFVkJRVVU3ZDBKQlExb3NhVVZCUVhGQ0xFTkJRVU1zVDBGQlR5eERRVUZET3paQ1FVTXpRaXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEZRVUZGT3pSQ1FVTlVMRzFFUVVGdFJEczBRa0ZEYmtRc1YwRkJWeXhEUVVGRExFVkJRVVVzWVVGQllTeEZRVUZGTEV0QlFVc3NSVUZCUlN4RFFVRkRMRU5CUVVNN05FSkJRM1JETEZkQlFWY3NRMEZCUXl4RlFVRkZMR0ZCUVdFc1JVRkJSU3hKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETzNkQ1FVTjJReXhEUVVGRExFTkJRVU03TmtKQlEwUXNTMEZCU3l4RFFVRkRMRzlFUVVGblFpeERRVUZET3paQ1FVTjJRaXhMUVVGTExFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlRzMFFrRkRaaXhYUVVGWExFTkJRVU1zUlVGQlJTeFpRVUZaTEVWQlFVVXNTMEZCU3l4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRExFTkJRVU03ZDBKQlF5OURMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU5RTEVOQlFVTXNSVUZEUkN4VFFVRlRMRVZCUVVNc2RVSkJRWFZDTEVsQmFrSTNRaXhSUVVGUkxFTkJhMEphTEVOQlEwZ3NSVUZEUVN4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVU5xUWl3NFNFRkRSU3gxUkVGQlF5eHZSRUZCVlN4clFrRkZWQ3hKUVVGSkxFVkJRVU1zVVVGQlVTeEZRVU5pTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMR2RDUVVOa0xIZERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUlVGREwwSXNTVUZCU1N4RlFVRkZMRzlFUVVGblFpeEZRVU4wUWl4UFFVRlBMRVZCUVVVc1IwRkJVeXhGUVVGRk8yZERRVU5zUWl4TlFVRk5MRmxCUVZrc1IwRkJSeXhoUVVGaE8yOURRVU5vUXl4RFFVRkRMRU5CUVVNc1MwRkJTenR2UTBGRFVDeERRVUZETEVOQlFVTXNUVUZCVFN4UFFVRlBMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03WjBOQlEyaERMRFpFUVVGcFFpeERRVUZETEZsQlFWa3NRMEZCUXp0eFEwRkROVUlzUzBGQlN5eERRVUZETEc5RVFVRm5RaXhEUVVGRE8zRkRRVU4yUWl4TFFVRkxMRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJUdHZRMEZEWml4WFFVRlhMRU5CUVVNc1JVRkJSU3haUVVGWkxFVkJRVVVzUzBGQlN5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRMRU5CUVVNN1owTkJReTlETEVOQlFVTXNRMEZCUXl4RFFVRkRPelJDUVVOUUxFTkJRVU1zUjBGRFJDeFRRVUZUTEVWQlFVTXNlVUpCUVhsQ0xHZENRVVZzUXl4aFFVRmhMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVU16UWl3clJVRkJUU3hUUVVGVExFVkJRVU1zZVVKQlFYbENMR2RDUVVOMFF5eGhRVUZoTEVOQlFVTXNUVUZCVFN4WlFVTm9RaXhEUVVOU0xFdEJja0pITEZGQlFWRXNRMEZ6UWtRc1JVRkRZaXgxUkVGQlF5eHZSRUZCVlN4clFrRkZWQ3hKUVVGSkxFVkJRVU1zVVVGQlVTeEZRVU5pTEV0QlFVc3NSVUZCUlN4VlFVRlZMR2RDUVVOTUxGVkJRVlVzUlVGRGRFSXNTVUZCU1N4RlFVRkZMSGxEUVVGTExFVkJRMWdzVDBGQlR5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVTXhReXhUUVVGVExFVkJRVU1zZVVKQlFYbENMR2RDUVVWc1F5eGhRVUZoTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVNelFpd3JSVUZCVFN4VFFVRlRMRVZCUVVNc2VVSkJRWGxDTEdkQ1FVTjBReXhoUVVGaExFTkJRVU1zVFVGQlRTeFpRVU5vUWl4RFFVTlNMRXRCV2tjc1QwRkJUeXhEUVdGQkxGbEJRMW9zUTBGRFNpeEZRVU5CTEdGQlFXRXNTVUZCU1N4RFFVRkRMRmRCUVZjc1NVRkJTU3hEUVVOb1F5eDFSRUZCUXl3NFEwRkJUeXhyUWtGQlF5eExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4blFrRkRka01zZDBSQlFVTXNiMFJCUVZVc2EwSkJRMVFzU1VGQlNTeEZRVUZETEZGQlFWRXNaMEpCUTBRc2QwTkJRVU1zUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhGUVVOMlF5eExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4RlFVTnNReXhKUVVGSkxFVkJRVVVzSzBOQlFWY3NSVUZEYWtJc1UwRkJVeXhGUVVGRExEQkNRVUV3UWl4RlFVTndReXhQUVVGUExFVkJRVVVzVTBGQlV5eHBRa0ZGYWtJc1EwRkJReXhSUVVGUkxFbEJRVWtzTkVWQlFWRXNkME5CUVVNc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4WFFVRlRMRVZCUTNwRUxHRkJRV0VzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUXpOQ0xDdEZRVUZOTEZOQlFWTXNSVUZCUXl4NVFrRkJlVUlzWjBKQlEzUkRMR0ZCUVdFc1EwRkJReXhOUVVGTkxGbEJRMmhDTEVOQlExSXNZVUZEVlN4WlFVTk1MRU5CUTFnc1lVRkRSeXhEUVVOUUxFTkJRVU03U1VGRFNpeERRVUZETEVOQlFVTTdTVUZGUml4TlFVRk5MR0ZCUVdFc1IwRkJSeXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSWFpETEUxQlFVMHNVVUZCVVN4SFFVTmFMR2RDUVVGblFpeEpRVUZKTEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hIUVVGSExFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RFFVRkRPMGxCUTNoRkxFMUJRVTBzVjBGQlZ5eEhRVUZITEdGQlFXRXNRMEZCUXl4SlFVRkpMRU5CUTNCRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNWMEZCUXl3d1FrRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUzBGQlN5eEZRVUZGTEVOQlFVTXNNRU5CUVVVc1RVRkJUU3hOUVVGTExGZEJRVmNzU1VGRE5VVXNRMEZCUXp0SlFVVkdMRTFCUVUwc2MwSkJRWE5DTEVkQlFVY3NRMEZCUXl4TlFWVXZRaXhGUVVGRkxFVkJRVVU3TzFGQlEwZ3NUMEZCVHl4RFFVTk1MSFZFUVVGRExHMUVRVUZUTEdOQlExSXNkVVJCUVVNc2NVUkJRVmNzU1VGRFZpeFJRVUZSTEVWQlFVVXNXVUZCVFN4RFFVRkRMRWxCUVVrc01FTkJRVVVzVVVGQlVTeEZRVU12UWl4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVOYUxGTkJRVk1zUlVGQlJTeERRVUZETEdGQlFVMHNRMEZCUXl4SlFVRkpMREJEUVVGRkxFVkJRVVVzUzBGQlNTeERRVUZETEVOQlFVTXNZVUZCVFN4RFFVRkRMRWxCUVVrc01FTkJRVVVzVVVGQlVTeEhRVU4wUkN4UFFVRlBMRVZCUVVVc1RVRkJUU3hEUVVGRExFOUJRVThzU1VGQlNTeERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkZMRU5CUVVNc1EwRkJReXhGUVVOeVF5eEZRVUZGTEVWQlFVVXNZVUZCVFN4RFFVRkRMRWxCUVVrc01FTkJRVVVzUlVGQlJTeExRVUZKTEVsQlFVa3NSVUZETTBJc1VVRkJVU3hGUVVGRkxFTkJRVU1zUTBGQlF5eGhRVUZOTEVOQlFVTXNTVUZCU1N3d1EwRkJSU3hGUVVGRkxFdEJRVWtzWVVGQllTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVU55UlN4UlFVRlJMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVTdiMEpCUTNSQ0xGRkJRVkVzUTBGQlF5eEZRVUZGTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1owSkJRM1JDTEVOQlFVTXNWMEZEUkN4SlFWaFpMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJXV1FzUTBGRFlpeERRVUZETzBsQlEwb3NRMEZCUXl4RFFVRkRPMGxCUlVZc1RVRkJUU3h2UWtGQmIwSXNSMEZCUnl4RFFVTXpRaXhMUVUxSExFVkJRMGdzUlVGQlJUdFJRVU5HTEUxQlFVMHNUVUZCVFN4SFFVRkhMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUlR0WlFVTm9ReXhKUVVGSkxFbEJRVWtzUTBGQlF5eEZRVUZGTEVWQlFVVTdaMEpCUTFnc1QwRkJUeXh6UWtGQmMwSXNRMEZCUXp0dlFrRkROVUlzU1VGQlNUdHZRa0ZEU2l4UFFVRlBMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN2IwSkJRek5ETEVkQlFVY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1JVRkJSVHRwUWtGRFlpeERRVUZETEVOQlFVTTdZVUZEU2p0WlFVTkVMRTlCUVU4c2MwSkJRWE5DTEVOQlFVTTdaMEpCUXpWQ0xFZEJRVWNzUlVGQlJTeHRRa0ZCYlVJN1owSkJRM2hDTEVsQlFVazdaMEpCUTBvc1QwRkJUeXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEdOQlFXTXNRMEZCUXl4bFFVRmxMRU5CUVVNN1lVRkRMME1zUTBGQlF5eERRVUZETzFGQlEwd3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZTQ3d5UkVGQk1rUTdVVUZETTBRc1NVRkJTU3hKUVVGSkxFZEJRVWNzTmtOQlFVc3NRMEZCUXl4TlFVRk5MRVZCUVVVc1lVRkJZU3hEUVVGRExFTkJRVU03VVVGRGVFTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVU3V1VGRGFFSXNTVUZCU1N4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03VTBGRFlqdFJRVVZFTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExGRkJRVkVzUlVGQlJTeExRVUZMTEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVN1dVRkRlRU1zU1VGQlNTeExRVUZMTEV0QlFVc3NTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVU3WjBKQlF6ZENMREpDUVVFeVFqdG5Ra0ZETTBJc1VVRkJVU3hIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlEzaENMRWxCUVVrc1MwRkJTeXhEUVVGRExHRkJRV0VzUjBGQlJ5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRPM0ZDUVVOMlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRPM0ZDUVVOV0xFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSVHR2UWtGRGFFSXNUMEZCVHl4elFrRkJjMElzUTBGQlF6dDNRa0ZETlVJc1IwRkJSeXhGUVVGRkxGTkJRVk1zUzBGQlN5eEZRVUZGTzNkQ1FVTnlRaXhKUVVGSkxFVkJRVVVzU1VGQlNUdHhRa0ZEV0N4RFFVRkRMRU5CUVVNN1owSkJRMHdzUTBGQlF5eERRVUZETEVOQlEwd3NRMEZCUXp0aFFVTklPMWxCUTBRc1QwRkJUeXhEUVVOTUxIVkVRVUZETEcxRVFVRlRMR3RDUVVGRExFdEJRVXNzUlVGQlF5eFJRVUZSTEVWQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1owSkJRemRDTEZGQlFWRXNTMEZFTkVJc1MwRkJTeXhEUVVWb1F5eERRVU5pTEVOQlFVTTdVVUZEU2l4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOTUxFTkJRVU1zUTBGQlF6dEpRVVZHTEUxQlFVMHNZMEZCWXl4SFFVRkhMRmxCUVZrc1EwRkJReXhOUVVGTkxFTkJRM2hETEVOQlFVTXNTVUZCU1N4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeExRVUZMTEZkQlFWY3NRMEZEZEVNc1EwRkJRenRKUVVOR0xFMUJRVTBzWjBKQlFXZENMRWRCUVVjN1VVRkRka0lzT0VKQlFUaENPMUZCUXpsQ0xFZEJRVWNzUTBGQlF5eGxRVUZsTEVOQlFVTXNUVUZCVFR0WlFVTjRRaXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1VVRkJVU3hGUVVGRkxHVkJRV1VzUlVGQlJTeERRVUZETzFsQlF6TkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03VVVGRFVDeEhRVUZITEZsQlFWa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRXRCUVVzc1YwRkJWeXhEUVVGRE8wdEJRemxFTEVOQlFVTTdTVUZGUml4UFFVRlBMRU5CUTB3c0swVkJRVXNzVTBGQlV5eEZRVUZETERoQ1FVRTRRaXhwUWtGRE1VTXNhMEpCUVd0Q0xFbEJRVWtzYjBKQlFXOUNMRVZCUVVVc1JVRkROME1zSzBWQlFVc3NVMEZCVXl4RlFVRkRMREJDUVVFd1FpeHBRa0ZEZEVNc2IwSkJRVzlDTEVWQlFVVXNSVUZEZGtJc05FVkJRMFVzU1VGQlNTeEZRVUZGTEVkQlFVY3NhME5CUVdsRExGZEJRM2hETEUxQlFVMHNRMEZCUXl4SlFVRkpMRWxCUVVrc1VVRkRha0lzWVVGQllTeFJRVUZSTEhWQ1FVRjFRaXhGUVVGRkxGVkJRVlVzUzBGQlN5eFpRVU16UkN4dFJVRkRSaXhGUVVGRkxFVkJRMFlzVFVGQlRTeEZRVUZETEhWQ1FVRjFRaXhuUWtGRk4wSXNkME5CUVVNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4WlFVTndRaXhOUVZoM1F5eG5Ra0ZCWjBJc1EwRlplRVFzUlVGRFRpeDNSRUZCUXl4dFJFRkJVeXhyUWtGRFVpeFRRVUZUTEVWQlFVTXNjVU5CUVhGRExFVkJReTlETEV0QlFVc3NSVUZCUXl4UFFVRlBMRVZCUTJJc1IwRkJSeXhGUVVGRkxFTkJRVU1zYVVKQlJVNHNPRWhCUTBVc09FVkJRVXNzVTBGQlV5eEZRVUZETEZkQlFWY3NaMEpCUVVVc2QwTkJRVU1zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhaUVVGUExFVkJRM3BFTEc5Q1FVRnZRaXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRmxCUTNSRExFVkJSVWdzT0VoQlEwVXNLMFZCUVVzc1UwRkJVeXhGUVVGRExGZEJRVmNzYVVKQlFVVXNkME5CUVVNc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4clFrRkJVU3hGUVVVMVJDeHZRa0ZCYjBJc1EwRkJReXhqUVVGakxFTkJRVU1zV1VGRGNFTXNZVUZEVHl4aFFVTlNMRU5CUTFBc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF6dEJRVVZHTEdsRlFVRmxMR2RDUVVGblFpeEZRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZUR2xpY21GeWVVMWxiblZKZEdWdGN5NTBjM2cvWmpjME1pSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJqYUhWdWF5QjlJR1p5YjIwZ1hDSnNiMlJoYzJoY0lqdGNibWx0Y0c5eWRDQjdJSFZ6WlVOaGJHeGlZV05yTENCMWMyVlRkR0YwWlNCOUlHWnliMjBnWENKeVpXRmpkRndpTzF4dWFXMXdiM0owSUhzZ2FXMXdiM0owVEdsaWNtRnllVVp5YjIxS1UwOU9MQ0J6WVhabFRHbGljbUZ5ZVVGelNsTlBUaUI5SUdaeWIyMGdYQ0l1TGk5a1lYUmhMMnB6YjI1Y0lqdGNibWx0Y0c5eWRDQk1hV0p5WVhKNUlHWnliMjBnWENJdUxpOWtZWFJoTDJ4cFluSmhjbmxjSWp0Y2JtbHRjRzl5ZENCN0lFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MExDQk9iMjVFWld4bGRHVmtJSDBnWm5KdmJTQmNJaTR1TDJWc1pXMWxiblF2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUhRZ2ZTQm1jbTl0SUZ3aUxpNHZhVEU0Ymx3aU8xeHVhVzF3YjNKMElIdGNiaUFnUVhCd1UzUmhkR1VzWEc0Z0lFSnBibUZ5ZVVacGJHVnpMRnh1SUNCRmVHTmhiR2xrY21GM1VISnZjSE1zWEc0Z0lFeHBZbkpoY25sSmRHVnRMRnh1SUNCTWFXSnlZWEo1U1hSbGJYTXNYRzU5SUdaeWIyMGdYQ0l1TGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ2JYVjBaVVpUUVdKdmNuUkZjbkp2Y2lCOUlHWnliMjBnWENJdUxpOTFkR2xzYzF3aU8xeHVhVzF3YjNKMElIc2dkWE5sU1hOTmIySnBiR1VnZlNCbWNtOXRJRndpTGk5QmNIQmNJanRjYm1sdGNHOXlkQ0JEYjI1bWFYSnRSR2xoYkc5bklHWnliMjBnWENJdUwwTnZibVpwY20xRWFXRnNiMmRjSWp0Y2JtbHRjRzl5ZENCN0lHVjRjRzl5ZEZSdlJtbHNaVWxqYjI0c0lHeHZZV1FzSUhCMVlteHBjMmhKWTI5dUxDQjBjbUZ6YUNCOUlHWnliMjBnWENJdUwybGpiMjV6WENJN1hHNXBiWEJ2Y25RZ2V5Qk1hV0p5WVhKNVZXNXBkQ0I5SUdaeWIyMGdYQ0l1TDB4cFluSmhjbmxWYm1sMFhDSTdYRzVwYlhCdmNuUWdVM1JoWTJzZ1puSnZiU0JjSWk0dlUzUmhZMnRjSWp0Y2JtbHRjRzl5ZENCN0lGUnZiMnhDZFhSMGIyNGdmU0JtY205dElGd2lMaTlVYjI5c1FuVjBkRzl1WENJN1hHNXBiWEJ2Y25RZ2V5QlViMjlzZEdsd0lIMGdabkp2YlNCY0lpNHZWRzl2YkhScGNGd2lPMXh1WEc1cGJYQnZjblFnWENJdUwweHBZbkpoY25sTlpXNTFTWFJsYlhNdWMyTnpjMXdpTzF4dWFXMXdiM0owSUhzZ1ZrVlNVMGxQVGxNZ2ZTQm1jbTl0SUZ3aUxpNHZZMjl1YzNSaGJuUnpYQ0k3WEc1Y2JtTnZibk4wSUV4cFluSmhjbmxOWlc1MVNYUmxiWE1nUFNBb2UxeHVJQ0JzYVdKeVlYSjVTWFJsYlhNc1hHNGdJRzl1VW1WdGIzWmxSbkp2YlV4cFluSmhjbmtzWEc0Z0lHOXVRV1JrVkc5TWFXSnlZWEo1TEZ4dUlDQnZia2x1YzJWeWRGTm9ZWEJsTEZ4dUlDQndaVzVrYVc1blJXeGxiV1Z1ZEhNc1hHNGdJSFJvWlcxbExGeHVJQ0J6WlhSQmNIQlRkR0YwWlN4Y2JpQWdiR2xpY21GeWVWSmxkSFZ5YmxWeWJDeGNiaUFnYkdsaWNtRnllU3hjYmlBZ1ptbHNaWE1zWEc0Z0lHbGtMRnh1SUNCelpXeGxZM1JsWkVsMFpXMXpMRnh1SUNCdmJsUnZaMmRzWlN4Y2JpQWdiMjVRZFdKc2FYTm9MRnh1SUNCeVpYTmxkRXhwWW5KaGNua3NYRzU5T2lCN1hHNGdJR3hwWW5KaGNubEpkR1Z0Y3pvZ1RHbGljbUZ5ZVVsMFpXMXpPMXh1SUNCd1pXNWthVzVuUld4bGJXVnVkSE02SUV4cFluSmhjbmxKZEdWdFcxd2laV3hsYldWdWRITmNJbDA3WEc0Z0lHOXVVbVZ0YjNabFJuSnZiVXhwWW5KaGNuazZJQ2dwSUQwK0lIWnZhV1E3WEc0Z0lHOXVTVzV6WlhKMFUyaGhjR1U2SUNobGJHVnRaVzUwY3pvZ1RHbGljbUZ5ZVVsMFpXMWJYQ0psYkdWdFpXNTBjMXdpWFNrZ1BUNGdkbTlwWkR0Y2JpQWdiMjVCWkdSVWIweHBZbkpoY25rNklDaGxiR1Z0Wlc1MGN6b2dUR2xpY21GeWVVbDBaVzFiWENKbGJHVnRaVzUwYzF3aVhTa2dQVDRnZG05cFpEdGNiaUFnZEdobGJXVTZJRUZ3Y0ZOMFlYUmxXMXdpZEdobGJXVmNJbDA3WEc0Z0lHWnBiR1Z6T2lCQ2FXNWhjbmxHYVd4bGN6dGNiaUFnYzJWMFFYQndVM1JoZEdVNklGSmxZV04wTGtOdmJYQnZibVZ1ZER4aGJua3NJRUZ3Y0ZOMFlYUmxQbHRjSW5ObGRGTjBZWFJsWENKZE8xeHVJQ0JzYVdKeVlYSjVVbVYwZFhKdVZYSnNPaUJGZUdOaGJHbGtjbUYzVUhKdmNITmJYQ0pzYVdKeVlYSjVVbVYwZFhKdVZYSnNYQ0pkTzF4dUlDQnNhV0p5WVhKNU9pQk1hV0p5WVhKNU8xeHVJQ0JwWkRvZ2MzUnlhVzVuTzF4dUlDQnpaV3hsWTNSbFpFbDBaVzF6T2lCTWFXSnlZWEo1U1hSbGJWdGNJbWxrWENKZFcxMDdYRzRnSUc5dVZHOW5aMnhsT2lBb2FXUTZJRXhwWW5KaGNubEpkR1Z0VzF3aWFXUmNJbDBzSUdWMlpXNTBPaUJTWldGamRDNU5iM1Z6WlVWMlpXNTBLU0E5UGlCMmIybGtPMXh1SUNCdmJsQjFZbXhwYzJnNklDZ3BJRDArSUhadmFXUTdYRzRnSUhKbGMyVjBUR2xpY21GeWVUb2dLQ2tnUFQ0Z2RtOXBaRHRjYm4wcElEMCtJSHRjYmlBZ1kyOXVjM1FnY21WdVpHVnlVbVZ0YjNabFRHbGlRV3hsY25RZ1BTQjFjMlZEWVd4c1ltRmpheWdvS1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnWTI5dWRHVnVkQ0E5SUhObGJHVmpkR1ZrU1hSbGJYTXViR1Z1WjNSb1hHNGdJQ0FnSUNBL0lIUW9YQ0poYkdWeWRITXVjbVZ0YjNabFNYUmxiWE5HY205dGMweHBZbkpoY25sY0lpd2dleUJqYjNWdWREb2djMlZzWldOMFpXUkpkR1Z0Y3k1c1pXNW5kR2dnZlNsY2JpQWdJQ0FnSURvZ2RDaGNJbUZzWlhKMGN5NXlaWE5sZEV4cFluSmhjbmxjSWlrN1hHNGdJQ0FnWTI5dWMzUWdkR2wwYkdVZ1BTQnpaV3hsWTNSbFpFbDBaVzF6TG14bGJtZDBhRnh1SUNBZ0lDQWdQeUIwS0Z3aVkyOXVabWx5YlVScFlXeHZaeTV5WlcxdmRtVkpkR1Z0YzBaeWIyMU1hV0pjSWlsY2JpQWdJQ0FnSURvZ2RDaGNJbU52Ym1acGNtMUVhV0ZzYjJjdWNtVnpaWFJNYVdKeVlYSjVYQ0lwTzF4dUlDQWdJSEpsZEhWeWJpQW9YRzRnSUNBZ0lDQThRMjl1Wm1seWJVUnBZV3h2WjF4dUlDQWdJQ0FnSUNCdmJrTnZibVpwY20wOWV5Z3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvYzJWc1pXTjBaV1JKZEdWdGN5NXNaVzVuZEdncElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUc5dVVtVnRiM1psUm5KdmJVeHBZbkpoY25rb0tUdGNiaUFnSUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnpaWFJNYVdKeVlYSjVLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJSE5sZEZOb2IzZFNaVzF2ZG1WTWFXSkJiR1Z5ZENobVlXeHpaU2s3WEc0Z0lDQWdJQ0FnSUgxOVhHNGdJQ0FnSUNBZ0lHOXVRMkZ1WTJWc1BYc29LU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdjMlYwVTJodmQxSmxiVzkyWlV4cFlrRnNaWEowS0daaGJITmxLVHRjYmlBZ0lDQWdJQ0FnZlgxY2JpQWdJQ0FnSUNBZ2RHbDBiR1U5ZTNScGRHeGxmVnh1SUNBZ0lDQWdQbHh1SUNBZ0lDQWdJQ0E4Y0Q1N1kyOXVkR1Z1ZEgwOEwzQStYRzRnSUNBZ0lDQThMME52Ym1acGNtMUVhV0ZzYjJjK1hHNGdJQ0FnS1R0Y2JpQWdmU3dnVzNObGJHVmpkR1ZrU1hSbGJYTXNJRzl1VW1WdGIzWmxSbkp2YlV4cFluSmhjbmtzSUhKbGMyVjBUR2xpY21GeWVWMHBPMXh1WEc0Z0lHTnZibk4wSUZ0emFHOTNVbVZ0YjNabFRHbGlRV3hsY25Rc0lITmxkRk5vYjNkU1pXMXZkbVZNYVdKQmJHVnlkRjBnUFNCMWMyVlRkR0YwWlNobVlXeHpaU2s3WEc1Y2JpQWdZMjl1YzNRZ2FYTk5iMkpwYkdVZ1BTQjFjMlZKYzAxdlltbHNaU2dwTzF4dVhHNGdJR052Ym5OMElISmxibVJsY2t4cFluSmhjbmxCWTNScGIyNXpJRDBnS0NrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUdsMFpXMXpVMlZzWldOMFpXUWdQU0FoSVhObGJHVmpkR1ZrU1hSbGJYTXViR1Z1WjNSb08xeHVJQ0FnSUdOdmJuTjBJR2wwWlcxeklEMGdhWFJsYlhOVFpXeGxZM1JsWkZ4dUlDQWdJQ0FnUHlCc2FXSnlZWEo1U1hSbGJYTXVabWxzZEdWeUtDaHBkR1Z0S1NBOVBpQnpaV3hsWTNSbFpFbDBaVzF6TG1sdVkyeDFaR1Z6S0dsMFpXMHVhV1FwS1Z4dUlDQWdJQ0FnT2lCc2FXSnlZWEo1U1hSbGJYTTdYRzRnSUNBZ1kyOXVjM1FnY21WelpYUk1ZV0psYkNBOUlHbDBaVzF6VTJWc1pXTjBaV1JjYmlBZ0lDQWdJRDhnZENoY0ltSjFkSFJ2Ym5NdWNtVnRiM1psWENJcFhHNGdJQ0FnSUNBNklIUW9YQ0ppZFhSMGIyNXpMbkpsYzJWMFRHbGljbUZ5ZVZ3aUtUdGNiaUFnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnUEdScGRpQmpiR0Z6YzA1aGJXVTlYQ0pzYVdKeVlYSjVMV0ZqZEdsdmJuTmNJajVjYmlBZ0lDQWdJQ0FnZXlnaGFYUmxiWE5UWld4bFkzUmxaQ0I4ZkNBaGFYTk5iMkpwYkdVcElDWW1JQ2hjYmlBZ0lDQWdJQ0FnSUNBOFZHOXZiRUoxZEhSdmJseHVJQ0FnSUNBZ0lDQWdJQ0FnYTJWNVBWd2lhVzF3YjNKMFhDSmNiaUFnSUNBZ0lDQWdJQ0FnSUhSNWNHVTlYQ0ppZFhSMGIyNWNJbHh1SUNBZ0lDQWdJQ0FnSUNBZ2RHbDBiR1U5ZTNRb1hDSmlkWFIwYjI1ekxteHZZV1JjSWlsOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JoY21saExXeGhZbVZzUFh0MEtGd2lZblYwZEc5dWN5NXNiMkZrWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdOdmJqMTdiRzloWkgxY2JpQWdJQ0FnSUNBZ0lDQWdJRzl1UTJ4cFkyczlleWdwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2FXMXdiM0owVEdsaWNtRnllVVp5YjIxS1UwOU9LR3hwWW5KaGNua3BYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMblJvWlc0b0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdRMnh2YzJVZ1lXNWtJSFJvWlc0Z2IzQmxiaUIwYnlCblpYUWdkR2hsSUd4cFluSmhjbWxsY3lCMWNHUmhkR1ZrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCelpYUkJjSEJUZEdGMFpTaDdJR2x6VEdsaWNtRnllVTl3Wlc0NklHWmhiSE5sSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMlYwUVhCd1UzUmhkR1VvZXlCcGMweHBZbkpoY25sUGNHVnVPaUIwY25WbElIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDBwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTG1OaGRHTm9LRzExZEdWR1UwRmliM0owUlhKeWIzSXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMbU5oZEdOb0tDaGxjbkp2Y2lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJWMFFYQndVM1JoZEdVb2V5Qmxjbkp2Y2sxbGMzTmhaMlU2SUdWeWNtOXlMbTFsYzNOaFoyVWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5ZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMnhoYzNOT1lXMWxQVndpYkdsaWNtRnllUzFoWTNScGIyNXpMUzFzYjJGa1hDSmNiaUFnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBcGZWeHVJQ0FnSUNBZ0lDQjdJU0ZwZEdWdGN5NXNaVzVuZEdnZ0ppWWdLRnh1SUNBZ0lDQWdJQ0FnSUR3K1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4Vkc5dmJFSjFkSFJ2Ymx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JyWlhrOVhDSmxlSEJ2Y25SY0lseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxQVndpWW5WMGRHOXVYQ0pjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2wwYkdVOWUzUW9YQ0ppZFhSMGIyNXpMbVY0Y0c5eWRGd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdZWEpwWVMxc1lXSmxiRDE3ZENoY0ltSjFkSFJ2Ym5NdVpYaHdiM0owWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFkyOXVQWHRsZUhCdmNuUlViMFpwYkdWSlkyOXVmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnZia05zYVdOclBYdGhjM2x1WXlBb0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiR2xpY21GeWVVbDBaVzF6SUQwZ2FYUmxiWE5UWld4bFkzUmxaRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUHlCcGRHVnRjMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnT2lCaGQyRnBkQ0JzYVdKeVlYSjVMbXh2WVdSTWFXSnlZWEo1S0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyRjJaVXhwWW5KaGNubEJjMHBUVDA0b2JHbGljbUZ5ZVVsMFpXMXpLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTG1OaGRHTm9LRzExZEdWR1UwRmliM0owUlhKeWIzSXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F1WTJGMFkyZ29LR1Z5Y205eUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxkRUZ3Y0ZOMFlYUmxLSHNnWlhKeWIzSk5aWE56WVdkbE9pQmxjbkp2Y2k1dFpYTnpZV2RsSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSDE5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR05zWVhOelRtRnRaVDFjSW14cFluSmhjbmt0WVdOMGFXOXVjeTB0Wlhod2IzSjBYQ0pjYmlBZ0lDQWdJQ0FnSUNBZ0lENWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2UzTmxiR1ZqZEdWa1NYUmxiWE11YkdWdVozUm9JRDRnTUNBbUppQW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE53WVc0Z1kyeGhjM05PWVcxbFBWd2liR2xpY21GeWVTMWhZM1JwYjI1ekxXTnZkVzUwWlhKY0lqNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSHR6Wld4bFkzUmxaRWwwWlcxekxteGxibWQwYUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwzTndZVzQrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ2w5WEc0Z0lDQWdJQ0FnSUNBZ0lDQThMMVJ2YjJ4Q2RYUjBiMjQrWEc0Z0lDQWdJQ0FnSUNBZ0lDQThWRzl2YkVKMWRIUnZibHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnJaWGs5WENKeVpYTmxkRndpWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFI1Y0dVOVhDSmlkWFIwYjI1Y0lseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFYUnNaVDE3Y21WelpYUk1ZV0psYkgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWVhKcFlTMXNZV0psYkQxN2NtVnpaWFJNWVdKbGJIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2FXTnZiajE3ZEhKaGMyaDlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVRMnhwWTJzOWV5Z3BJRDArSUhObGRGTm9iM2RTWlcxdmRtVk1hV0pCYkdWeWRDaDBjblZsS1gxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJ4aGMzTk9ZVzFsUFZ3aWJHbGljbUZ5ZVMxaFkzUnBiMjV6TFMxeVpXMXZkbVZjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjdjMlZzWldOMFpXUkpkR1Z0Y3k1c1pXNW5kR2dnUGlBd0lDWW1JQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNCaGJpQmpiR0Z6YzA1aGJXVTlYQ0pzYVdKeVlYSjVMV0ZqZEdsdmJuTXRZMjkxYm5SbGNsd2lQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZTNObGJHVmpkR1ZrU1hSbGJYTXViR1Z1WjNSb2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjM0JoYmo1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnS1gxY2JpQWdJQ0FnSUNBZ0lDQWdJRHd2Vkc5dmJFSjFkSFJ2Ymo1Y2JpQWdJQ0FnSUNBZ0lDQThMejVjYmlBZ0lDQWdJQ0FnS1gxY2JpQWdJQ0FnSUNBZ2UybDBaVzF6VTJWc1pXTjBaV1FnSmlZZ0lXbHpVSFZpYkdsemFHVmtJQ1ltSUNoY2JpQWdJQ0FnSUNBZ0lDQThWRzl2YkhScGNDQnNZV0psYkQxN2RDaGNJbWhwYm5SekxuQjFZbXhwYzJoTWFXSnlZWEo1WENJcGZUNWNiaUFnSUNBZ0lDQWdJQ0FnSUR4VWIyOXNRblYwZEc5dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhSNWNHVTlYQ0ppZFhSMGIyNWNJbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmhjbWxoTFd4aFltVnNQWHQwS0Z3aVluVjBkRzl1Y3k1d2RXSnNhWE5vVEdsaWNtRnllVndpS1gxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdGaVpXdzllM1FvWENKaWRYUjBiMjV6TG5CMVlteHBjMmhNYVdKeVlYSjVYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JwWTI5dVBYdHdkV0pzYVhOb1NXTnZibjFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdZMnhoYzNOT1lXMWxQVndpYkdsaWNtRnllUzFoWTNScGIyNXpMUzF3ZFdKc2FYTm9YQ0pjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVEYkdsamF6MTdiMjVRZFdKc2FYTm9mVnh1SUNBZ0lDQWdJQ0FnSUNBZ1BseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCN0lXbHpUVzlpYVd4bElDWW1JRHhzWVdKbGJENTdkQ2hjSW1KMWRIUnZibk11Y0hWaWJHbHphRXhwWW5KaGNubGNJaWw5UEM5c1lXSmxiRDU5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSHR6Wld4bFkzUmxaRWwwWlcxekxteGxibWQwYUNBK0lEQWdKaVlnS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emNHRnVJR05zWVhOelRtRnRaVDFjSW14cFluSmhjbmt0WVdOMGFXOXVjeTFqYjNWdWRHVnlYQ0krWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCN2MyVnNaV04wWldSSmRHVnRjeTVzWlc1bmRHaDlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQQzl6Y0dGdVBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnUEM5VWIyOXNRblYwZEc5dVBseHVJQ0FnSUNBZ0lDQWdJRHd2Vkc5dmJIUnBjRDVjYmlBZ0lDQWdJQ0FnS1gxY2JpQWdJQ0FnSUR3dlpHbDJQbHh1SUNBZ0lDazdYRzRnSUgwN1hHNWNiaUFnWTI5dWMzUWdRMFZNVEZOZlVFVlNYMUpQVnlBOUlHbHpUVzlpYVd4bElEOGdOQ0E2SURZN1hHNWNiaUFnWTI5dWMzUWdjbVZtWlhKeVpYSWdQVnh1SUNBZ0lHeHBZbkpoY25sU1pYUjFjbTVWY213Z2ZId2dkMmx1Wkc5M0xteHZZMkYwYVc5dUxtOXlhV2RwYmlBcklIZHBibVJ2ZHk1c2IyTmhkR2x2Ymk1d1lYUm9ibUZ0WlR0Y2JpQWdZMjl1YzNRZ2FYTlFkV0pzYVhOb1pXUWdQU0J6Wld4bFkzUmxaRWwwWlcxekxuTnZiV1VvWEc0Z0lDQWdLR2xrS1NBOVBpQnNhV0p5WVhKNVNYUmxiWE11Wm1sdVpDZ29hWFJsYlNrZ1BUNGdhWFJsYlM1cFpDQTlQVDBnYVdRcFB5NXpkR0YwZFhNZ1BUMDlJRndpY0hWaWJHbHphR1ZrWENJc1hHNGdJQ2s3WEc1Y2JpQWdZMjl1YzNRZ1kzSmxZWFJsVEdsaWNtRnllVWwwWlcxRGIyMXdieUE5SUNod1lYSmhiWE02SUh0Y2JpQWdJQ0JwZEdWdE9seHVJQ0FnSUNBZ2ZDQk1hV0p5WVhKNVNYUmxiVnh1SUNBZ0lDQWdmQ0F2S2lCd1pXNWthVzVuSUd4cFluSmhjbmtnYVhSbGJTQXFMeUI3WEc0Z0lDQWdJQ0FnSUNBZ2FXUTZJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRITTZJSEpsWVdSdmJteDVJRTV2YmtSbGJHVjBaV1E4UlhoallXeHBaSEpoZDBWc1pXMWxiblErVzEwN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lId2diblZzYkR0Y2JpQWdJQ0J2YmtOc2FXTnJQem9nS0NrZ1BUNGdkbTlwWkR0Y2JpQWdJQ0JyWlhrNklITjBjbWx1Wnp0Y2JpQWdmU2tnUFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUFvWEc0Z0lDQWdJQ0E4VTNSaFkyc3VRMjlzSUd0bGVUMTdjR0Z5WVcxekxtdGxlWDArWEc0Z0lDQWdJQ0FnSUR4TWFXSnlZWEo1Vlc1cGRGeHVJQ0FnSUNBZ0lDQWdJR1ZzWlcxbGJuUnpQWHR3WVhKaGJYTXVhWFJsYlQ4dVpXeGxiV1Z1ZEhOOVhHNGdJQ0FnSUNBZ0lDQWdabWxzWlhNOWUyWnBiR1Z6ZlZ4dUlDQWdJQ0FnSUNBZ0lHbHpVR1Z1WkdsdVp6MTdJWEJoY21GdGN5NXBkR1Z0UHk1cFpDQW1KaUFoSVhCaGNtRnRjeTVwZEdWdFB5NWxiR1Z0Wlc1MGMzMWNiaUFnSUNBZ0lDQWdJQ0J2YmtOc2FXTnJQWHR3WVhKaGJYTXViMjVEYkdsamF5QjhmQ0FvS0NrZ1BUNGdlMzBwZlZ4dUlDQWdJQ0FnSUNBZ0lHbGtQWHR3WVhKaGJYTXVhWFJsYlQ4dWFXUWdmSHdnYm5Wc2JIMWNiaUFnSUNBZ0lDQWdJQ0J6Wld4bFkzUmxaRDE3SVNGd1lYSmhiWE11YVhSbGJUOHVhV1FnSmlZZ2MyVnNaV04wWldSSmRHVnRjeTVwYm1Oc2RXUmxjeWh3WVhKaGJYTXVhWFJsYlM1cFpDbDlYRzRnSUNBZ0lDQWdJQ0FnYjI1VWIyZG5iR1U5ZXlocFpDd2daWFpsYm5RcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXVWRzluWjJ4bEtHbGtMQ0JsZG1WdWRDazdYRzRnSUNBZ0lDQWdJQ0FnZlgxY2JpQWdJQ0FnSUNBZ0x6NWNiaUFnSUNBZ0lEd3ZVM1JoWTJzdVEyOXNQbHh1SUNBZ0lDazdYRzRnSUgwN1hHNWNiaUFnWTI5dWMzUWdjbVZ1WkdWeVRHbGljbUZ5ZVZObFkzUnBiMjRnUFNBb1hHNGdJQ0FnYVhSbGJYTTZJQ2hjYmlBZ0lDQWdJSHdnVEdsaWNtRnllVWwwWlcxY2JpQWdJQ0FnSUh3Z0x5b2djR1Z1WkdsdVp5QnNhV0p5WVhKNUlHbDBaVzBnS2k4Z2UxeHVJQ0FnSUNBZ0lDQWdJR2xrT2lCdWRXeHNPMXh1SUNBZ0lDQWdJQ0FnSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCT2IyNUVaV3hsZEdWa1BFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFBsdGRPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdLVnRkTEZ4dUlDQXBJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQmZhWFJsYlhNZ1BTQnBkR1Z0Y3k1dFlYQW9LR2wwWlcwcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNocGRHVnRMbWxrS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCamNtVmhkR1ZNYVdKeVlYSjVTWFJsYlVOdmJYQnZLSHRjYmlBZ0lDQWdJQ0FnSUNCcGRHVnRMRnh1SUNBZ0lDQWdJQ0FnSUc5dVEyeHBZMnM2SUNncElEMCtJRzl1U1c1elpYSjBVMmhoY0dVb2FYUmxiUzVsYkdWdFpXNTBjeWtzWEc0Z0lDQWdJQ0FnSUNBZ2EyVjVPaUJwZEdWdExtbGtMRnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUJqY21WaGRHVk1hV0p5WVhKNVNYUmxiVU52YlhCdktIdGNiaUFnSUNBZ0lDQWdhMlY1T2lCY0lsOWZjR1Z1WkdsdVoxOWZhWFJsYlY5ZlhDSXNYRzRnSUNBZ0lDQWdJR2wwWlcwc1hHNGdJQ0FnSUNBZ0lHOXVRMnhwWTJzNklDZ3BJRDArSUc5dVFXUmtWRzlNYVdKeVlYSjVLSEJsYm1ScGJtZEZiR1Z0Wlc1MGN5a3NYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJQzh2SUdWdWMzVnlaU0IzWlNCeVpXNWtaWElnWVd4c0lHVnRjSFI1SUdObGJHeHpJR2xtSUc1dklHbDBaVzF6SUdGeVpTQndjbVZ6Wlc1MFhHNGdJQ0FnYkdWMElISnZkM01nUFNCamFIVnVheWhmYVhSbGJYTXNJRU5GVEV4VFgxQkZVbDlTVDFjcE8xeHVJQ0FnSUdsbUlDZ2hjbTkzY3k1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUhKdmQzTWdQU0JiVzExZE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJ5YjNkekxtMWhjQ2dvY205M1NYUmxiWE1zSUdsdVpHVjRMQ0J5YjNkektTQTlQaUI3WEc0Z0lDQWdJQ0JwWmlBb2FXNWtaWGdnUFQwOUlISnZkM011YkdWdVozUm9JQzBnTVNrZ2UxeHVJQ0FnSUNBZ0lDQXZMeUJ3WVdRZ2NtOTNJSGRwZEdnZ1pXMXdkSGtnWTJWc2JITmNiaUFnSUNBZ0lDQWdjbTkzU1hSbGJYTWdQU0J5YjNkSmRHVnRjeTVqYjI1allYUW9YRzRnSUNBZ0lDQWdJQ0FnYm1WM0lFRnljbUY1S0VORlRFeFRYMUJGVWw5U1QxY2dMU0J5YjNkSmRHVnRjeTVzWlc1bmRHZ3BYRzRnSUNBZ0lDQWdJQ0FnSUNBdVptbHNiQ2h1ZFd4c0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG0xaGNDZ29YeXdnYVc1a1pYZ3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR055WldGMFpVeHBZbkpoY25sSmRHVnRRMjl0Y0c4b2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHdGxlVG9nWUdWdGNIUjVYeVI3YVc1a1pYaDlZQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwZEdWdE9pQnVkV3hzTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTEZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FnSUNBZ1BGTjBZV05yTGxKdmR5QmhiR2xuYmoxY0ltTmxiblJsY2x3aUlHZGhjRDE3TVgwZ2EyVjVQWHRwYm1SbGVIMCtYRzRnSUNBZ0lDQWdJQ0FnZTNKdmQwbDBaVzF6ZlZ4dUlDQWdJQ0FnSUNBOEwxTjBZV05yTGxKdmR6NWNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZTazdYRzRnSUgwN1hHNWNiaUFnWTI5dWMzUWdjSFZpYkdsemFHVmtTWFJsYlhNZ1BTQnNhV0p5WVhKNVNYUmxiWE11Wm1sc2RHVnlLRnh1SUNBZ0lDaHBkR1Z0S1NBOVBpQnBkR1Z0TG5OMFlYUjFjeUE5UFQwZ1hDSndkV0pzYVhOb1pXUmNJaXhjYmlBZ0tUdGNiaUFnWTI5dWMzUWdkVzV3ZFdKc2FYTm9aV1JKZEdWdGN5QTlJRnRjYmlBZ0lDQXZMeUJoY0hCbGJtUWdjR1Z1WkdsdVp5QnNhV0p5WVhKNUlHbDBaVzFjYmlBZ0lDQXVMaTRvY0dWdVpHbHVaMFZzWlcxbGJuUnpMbXhsYm1kMGFGeHVJQ0FnSUNBZ1B5QmJleUJwWkRvZ2JuVnNiQ3dnWld4bGJXVnVkSE02SUhCbGJtUnBibWRGYkdWdFpXNTBjeUI5WFZ4dUlDQWdJQ0FnT2lCYlhTa3NYRzRnSUNBZ0xpNHViR2xpY21GeWVVbDBaVzF6TG1acGJIUmxjaWdvYVhSbGJTa2dQVDRnYVhSbGJTNXpkR0YwZFhNZ0lUMDlJRndpY0hWaWJHbHphR1ZrWENJcExGeHVJQ0JkTzF4dVhHNGdJSEpsZEhWeWJpQW9YRzRnSUNBZ1BHUnBkaUJqYkdGemMwNWhiV1U5WENKc2FXSnlZWEo1TFcxbGJuVXRhWFJsYlhNdFkyOXVkR0ZwYm1WeVhDSStYRzRnSUNBZ0lDQjdjMmh2ZDFKbGJXOTJaVXhwWWtGc1pYSjBJQ1ltSUhKbGJtUmxjbEpsYlc5MlpVeHBZa0ZzWlhKMEtDbDlYRzRnSUNBZ0lDQThaR2wySUdOc1lYTnpUbUZ0WlQxY0lteGhlV1Z5TFhWcFgxOXNhV0p5WVhKNUxXaGxZV1JsY2x3aUlHdGxlVDFjSW14cFluSmhjbmt0YUdWaFpHVnlYQ0krWEc0Z0lDQWdJQ0FnSUh0eVpXNWtaWEpNYVdKeVlYSjVRV04wYVc5dWN5Z3BmVnh1SUNBZ0lDQWdJQ0E4WVZ4dUlDQWdJQ0FnSUNBZ0lHaHlaV1k5ZTJBa2UzQnliMk5sYzNNdVpXNTJMbEpGUVVOVVgwRlFVRjlNU1VKU1FWSlpYMVZTVEgwL2RHRnlaMlYwUFNSN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IzYVc1a2IzY3VibUZ0WlNCOGZDQmNJbDlpYkdGdWExd2lYRzRnSUNBZ0lDQWdJQ0FnZlNaeVpXWmxjbkpsY2owa2UzSmxabVZ5Y21WeWZTWjFjMlZJWVhOb1BYUnlkV1VtZEc5clpXNDlKSHRwWkgwbWRHaGxiV1U5Skh0MGFHVnRaWDBtZG1WeWMybHZiajBrZTF4dUlDQWdJQ0FnSUNBZ0lDQWdWa1ZTVTBsUFRsTXVaWGhqWVd4cFpISmhkMHhwWW5KaGNubGNiaUFnSUNBZ0lDQWdJQ0I5WUgxY2JpQWdJQ0FnSUNBZ0lDQjBZWEpuWlhROVhDSmZaWGhqWVd4cFpISmhkMTlzYVdKeVlYSnBaWE5jSWx4dUlDQWdJQ0FnSUNBK1hHNGdJQ0FnSUNBZ0lDQWdlM1FvWENKc1lXSmxiSE11YkdsaWNtRnlhV1Z6WENJcGZWeHVJQ0FnSUNBZ0lDQThMMkUrWEc0Z0lDQWdJQ0E4TDJScGRqNWNiaUFnSUNBZ0lEeFRkR0ZqYXk1RGIyeGNiaUFnSUNBZ0lDQWdZMnhoYzNOT1lXMWxQVndpYkdsaWNtRnllUzF0Wlc1MUxXbDBaVzF6TFdOdmJuUmhhVzVsY2w5ZmFYUmxiWE5jSWx4dUlDQWdJQ0FnSUNCaGJHbG5iajFjSW5OMFlYSjBYQ0pjYmlBZ0lDQWdJQ0FnWjJGd1BYc3hmVnh1SUNBZ0lDQWdQbHh1SUNBZ0lDQWdJQ0E4UGx4dUlDQWdJQ0FnSUNBZ0lEeGthWFlnWTJ4aGMzTk9ZVzFsUFZ3aWMyVndZWEpoZEc5eVhDSStlM1FvWENKc1lXSmxiSE11Y0dWeWMyOXVZV3hNYVdKY0lpbDlQQzlrYVhZK1hHNGdJQ0FnSUNBZ0lDQWdlM0psYm1SbGNreHBZbkpoY25sVFpXTjBhVzl1S0hWdWNIVmliR2x6YUdWa1NYUmxiWE1wZlZ4dUlDQWdJQ0FnSUNBOEx6NWNibHh1SUNBZ0lDQWdJQ0E4UGx4dUlDQWdJQ0FnSUNBZ0lEeGthWFlnWTJ4aGMzTk9ZVzFsUFZ3aWMyVndZWEpoZEc5eVhDSStlM1FvWENKc1lXSmxiSE11WlhoallXeHBaSEpoZDB4cFlsd2lLWDBnUEM5a2FYWStYRzVjYmlBZ0lDQWdJQ0FnSUNCN2NtVnVaR1Z5VEdsaWNtRnllVk5sWTNScGIyNG9jSFZpYkdsemFHVmtTWFJsYlhNcGZWeHVJQ0FnSUNBZ0lDQThMejVjYmlBZ0lDQWdJRHd2VTNSaFkyc3VRMjlzUGx4dUlDQWdJRHd2WkdsMlBseHVJQ0FwTzF4dWZUdGNibHh1Wlhod2IzSjBJR1JsWm1GMWJIUWdUR2xpY21GeWVVMWxiblZKZEdWdGN6dGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0xpYnJhcnlNZW51SXRlbXMudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL0xpYnJhcnlVbml0LnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL0xpYnJhcnlVbml0LnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiTGlicmFyeVVuaXRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBMaWJyYXJ5VW5pdClcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgY2xzeCAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nsc3gvZGlzdC9jbHN4Lm0uanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgb3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgb3Blbi1jb2xvciAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5qc29uXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdCAqLyBcXFwicmVhY3RcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29uc3RhbnRzICovIFxcXCIuLi8uLi9jb25zdGFudHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL0FwcCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9BcHAudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2VuZV9leHBvcnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lL2V4cG9ydCAqLyBcXFwiLi4vLi4vc2NlbmUvZXhwb3J0LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9MaWJyYXJ5VW5pdF9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0xpYnJhcnlVbml0LnNjc3MgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvTGlicmFyeVVuaXQuc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfTGlicmFyeVVuaXRfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9MaWJyYXJ5VW5pdF9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfQ2hlY2tib3hJdGVtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0NoZWNrYm94SXRlbSAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9DaGVja2JveEl0ZW0udHN4XFxcIik7XFxudmFyIF9fYXdhaXRlciA9ICh1bmRlZmluZWQgJiYgdW5kZWZpbmVkLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XFxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XFxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcXFwidGhyb3dcXFwiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XFxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xcbiAgICB9KTtcXG59O1xcblxcblxcblxcblxcblxcblxcblxcblxcblxcbmNvbnN0IFBMVVNfSUNPTiA9ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInN2Z1xcXCIsIE9iamVjdC5hc3NpZ24oeyB2aWV3Qm94OiBcXFwiMCAwIDE3OTIgMTc5MlxcXCIgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTE2MDAgNzM2djE5MmMwIDI2LjY2Ny05LjMzIDQ5LjMzMy0yOCA2OC0xOC42NyAxOC42Ny00MS4zMyAyOC02OCAyOGgtNDE2djQxNmMwIDI2LjY3LTkuMzMgNDkuMzMtMjggNjhzLTQxLjMzIDI4LTY4IDI4SDgwMGMtMjYuNjY3IDAtNDkuMzMzLTkuMzMtNjgtMjhzLTI4LTQxLjMzLTI4LTY4di00MTZIMjg4Yy0yNi42NjcgMC00OS4zMzMtOS4zMy02OC0yOC0xOC42NjctMTguNjY3LTI4LTQxLjMzMy0yOC02OFY3MzZjMC0yNi42NjcgOS4zMzMtNDkuMzMzIDI4LTY4czQxLjMzMy0yOCA2OC0yOGg0MTZWMjI0YzAtMjYuNjY3IDkuMzMzLTQ5LjMzMyAyOC02OHM0MS4zMzMtMjggNjgtMjhoMTkyYzI2LjY3IDAgNDkuMzMgOS4zMzMgNjggMjhzMjggNDEuMzMzIDI4IDY4djQxNmg0MTZjMjYuNjcgMCA0OS4zMyA5LjMzMyA2OCAyOHMyOCA0MS4zMzMgMjggNjhaXFxcIiwgc3R5bGU6IHtcXG4gICAgICAgICAgICBzdHJva2U6IFxcXCIjZmZmXFxcIixcXG4gICAgICAgICAgICBzdHJva2VXaWR0aDogMTQwLFxcbiAgICAgICAgfSwgdHJhbnNmb3JtOiBcXFwidHJhbnNsYXRlKDAgNjQpXFxcIiB9LCB2b2lkIDApIH0pLCB2b2lkIDApKTtcXG5jb25zdCBMaWJyYXJ5VW5pdCA9ICh7IGlkLCBlbGVtZW50cywgZmlsZXMsIGlzUGVuZGluZywgb25DbGljaywgc2VsZWN0ZWQsIG9uVG9nZ2xlLCB9KSA9PiB7XFxuICAgIGNvbnN0IHJlZiA9ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udXNlUmVmKShudWxsKTtcXG4gICAgKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy51c2VFZmZlY3QpKCgpID0+IHtcXG4gICAgICAgIGNvbnN0IG5vZGUgPSByZWYuY3VycmVudDtcXG4gICAgICAgIGlmICghbm9kZSkge1xcbiAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgIH1cXG4gICAgICAgICgoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgICAgICAgICBpZiAoIWVsZW1lbnRzKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY29uc3Qgc3ZnID0geWllbGQgKDAsX3NjZW5lX2V4cG9ydF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmV4cG9ydFRvU3ZnKShlbGVtZW50cywge1xcbiAgICAgICAgICAgICAgICBleHBvcnRCYWNrZ3JvdW5kOiBmYWxzZSxcXG4gICAgICAgICAgICAgICAgdmlld0JhY2tncm91bmRDb2xvcjogb3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLndoaXRlLFxcbiAgICAgICAgICAgIH0sIGZpbGVzKTtcXG4gICAgICAgICAgICBub2RlLmlubmVySFRNTCA9IHN2Zy5vdXRlckhUTUw7XFxuICAgICAgICB9KSkoKTtcXG4gICAgICAgIHJldHVybiAoKSA9PiB7XFxuICAgICAgICAgICAgbm9kZS5pbm5lckhUTUwgPSBcXFwiXFxcIjtcXG4gICAgICAgIH07XFxuICAgIH0sIFtlbGVtZW50cywgZmlsZXNdKTtcXG4gICAgY29uc3QgW2lzSG92ZXJlZCwgc2V0SXNIb3ZlcmVkXSA9ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udXNlU3RhdGUpKGZhbHNlKTtcXG4gICAgY29uc3QgaXNNb2JpbGUgPSAoMCxfY29tcG9uZW50c19BcHBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy51c2VJc01vYmlsZSkoKTtcXG4gICAgY29uc3QgYWRkZXIgPSBpc1BlbmRpbmcgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcImxpYnJhcnktdW5pdF9fYWRkZXJcXFwiIH0sIHsgY2hpbGRyZW46IFBMVVNfSUNPTiB9KSwgdm9pZCAwKSk7XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogKDAsY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fW1xcXCJkZWZhdWx0XFxcIl0pKFxcXCJsaWJyYXJ5LXVuaXRcXFwiLCB7XFxuICAgICAgICAgICAgXFxcImxpYnJhcnktdW5pdF9fYWN0aXZlXFxcIjogZWxlbWVudHMsXFxuICAgICAgICAgICAgXFxcImxpYnJhcnktdW5pdC0taG92ZXJcXFwiOiBlbGVtZW50cyAmJiBpc0hvdmVyZWQsXFxuICAgICAgICAgICAgXFxcImxpYnJhcnktdW5pdC0tc2VsZWN0ZWRcXFwiOiBzZWxlY3RlZCxcXG4gICAgICAgIH0pLCBvbk1vdXNlRW50ZXI6ICgpID0+IHNldElzSG92ZXJlZCh0cnVlKSwgb25Nb3VzZUxlYXZlOiAoKSA9PiBzZXRJc0hvdmVyZWQoZmFsc2UpIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIHsgY2xhc3NOYW1lOiAoMCxjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bXFxcImRlZmF1bHRcXFwiXSkoXFxcImxpYnJhcnktdW5pdF9fZHJhZ2dlclxcXCIsIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJsaWJyYXJ5LXVuaXRfX3B1bHNlXFxcIjogISFpc1BlbmRpbmcsXFxuICAgICAgICAgICAgICAgIH0pLCByZWY6IHJlZiwgZHJhZ2dhYmxlOiAhIWVsZW1lbnRzLCBvbkNsaWNrOiAhIWVsZW1lbnRzIHx8ICEhaXNQZW5kaW5nXFxuICAgICAgICAgICAgICAgICAgICA/IChldmVudCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZCAmJiBldmVudC5zaGlmdEtleSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRvZ2dsZShpZCwgZXZlbnQpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaygpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLCBvbkRyYWdTdGFydDogKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBzZXRJc0hvdmVyZWQoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLk1JTUVfVFlQRVMuZXhjYWxpZHJhd2xpYiwgSlNPTi5zdHJpbmdpZnkoZWxlbWVudHMpKTtcXG4gICAgICAgICAgICAgICAgfSB9LCB2b2lkIDApLCBhZGRlciwgaWQgJiYgZWxlbWVudHMgJiYgKGlzSG92ZXJlZCB8fCBpc01vYmlsZSB8fCBzZWxlY3RlZCkgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfQ2hlY2tib3hJdGVtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uQ2hlY2tib3hJdGVtLCB7IGNoZWNrZWQ6IHNlbGVjdGVkLCBvbkNoYW5nZTogKGNoZWNrZWQsIGV2ZW50KSA9PiBvblRvZ2dsZShpZCwgZXZlbnQpLCBjbGFzc05hbWU6IFxcXCJsaWJyYXJ5LXVuaXRfX2NoZWNrYm94XFxcIiB9LCB2b2lkIDApKV0gfSksIHZvaWQgMCkpO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlNYVdKeVlYSjVWVzVwZEM1MGMzZ3Vhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3p0QlFVRjNRanRCUVVOSk8wRkJRM2RDTzBGQlExWTdRVUZEVFR0QlFVTkdPMEZCUld4Q08wRkJRMnRDTzBGQlJUbERMRTFCUVUwc1UwRkJVeXhIUVVGSExFTkJRMmhDTERoRlFVRkxMRTlCUVU4c1JVRkJReXhsUVVGbExHZENRVU14UWl4cFJVRkRSU3hEUVVGRExFVkJRVU1zSzJGQlFTdGhMRVZCUTJwaUxFdEJRVXNzUlVGQlJUdFpRVU5NTEUxQlFVMHNSVUZCUlN4TlFVRk5PMWxCUTJRc1YwRkJWeXhGUVVGRkxFZEJRVWM3VTBGRGFrSXNSVUZEUkN4VFFVRlRMRVZCUVVNc2FVSkJRV2xDTEZkQlF6TkNMRmxCUTBVc1EwRkRVQ3hEUVVGRE8wRkJSVXNzVFVGQlRTeFhRVUZYTEVkQlFVY3NRMEZCUXl4RlFVTXhRaXhGUVVGRkxFVkJRMFlzVVVGQlVTeEZRVU5TTEV0QlFVc3NSVUZEVEN4VFFVRlRMRVZCUTFRc1QwRkJUeXhGUVVOUUxGRkJRVkVzUlVGRFVpeFJRVUZSTEVkQlUxUXNSVUZCUlN4RlFVRkZPMGxCUTBnc1RVRkJUU3hIUVVGSExFZEJRVWNzTmtOQlFVMHNRMEZCZDBJc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGFFUXNaMFJCUVZNc1EwRkJReXhIUVVGSExFVkJRVVU3VVVGRFlpeE5RVUZOTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRE8xRkJRM3BDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVN1dVRkRWQ3hQUVVGUE8xTkJRMUk3VVVGRlJDeERRVUZETEVkQlFWTXNSVUZCUlR0WlFVTldMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVU3WjBKQlEySXNUMEZCVHp0aFFVTlNPMWxCUTBRc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTd3dSRUZCVnl4RFFVTXpRaXhSUVVGUkxFVkJRMUk3WjBKQlEwVXNaMEpCUVdkQ0xFVkJRVVVzUzBGQlN6dG5Ra0ZEZGtJc2JVSkJRVzFDTEVWQlFVVXNOa05CUVZFN1lVRkRPVUlzUlVGRFJDeExRVUZMTEVOQlEwNHNRMEZCUXp0WlFVTkdMRWxCUVVrc1EwRkJReXhUUVVGVExFZEJRVWNzUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXp0UlFVTnFReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETzFGQlJVd3NUMEZCVHl4SFFVRkhMRVZCUVVVN1dVRkRWaXhKUVVGSkxFTkJRVU1zVTBGQlV5eEhRVUZITEVWQlFVVXNRMEZCUXp0UlFVTjBRaXhEUVVGRExFTkJRVU03U1VGRFNpeERRVUZETEVWQlFVVXNRMEZCUXl4UlFVRlJMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVYwUWl4TlFVRk5MRU5CUVVNc1UwRkJVeXhGUVVGRkxGbEJRVmtzUTBGQlF5eEhRVUZITEN0RFFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRGJFUXNUVUZCVFN4UlFVRlJMRWRCUVVjc05FUkJRVmNzUlVGQlJTeERRVUZETzBsQlF5OUNMRTFCUVUwc1MwRkJTeXhIUVVGSExGTkJRVk1zU1VGQlNTeERRVU42UWl3NFJVRkJTeXhUUVVGVExFVkJRVU1zY1VKQlFYRkNMR2RDUVVGRkxGTkJRVk1zV1VGQlR5eERRVU4yUkN4RFFVRkRPMGxCUlVZc1QwRkJUeXhEUVVOTUxDdEZRVU5GTEZOQlFWTXNSVUZCUlN4blJFRkJTU3hEUVVGRExHTkJRV01zUlVGQlJUdFpRVU01UWl4elFrRkJjMElzUlVGQlJTeFJRVUZSTzFsQlEyaERMSEZDUVVGeFFpeEZRVUZGTEZGQlFWRXNTVUZCU1N4VFFVRlRPMWxCUXpWRExIZENRVUYzUWl4RlFVRkZMRkZCUVZFN1UwRkRia01zUTBGQlF5eEZRVU5HTEZsQlFWa3NSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlEzUkRMRmxCUVZrc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMR2xDUVVWMlF5eG5SVUZEUlN4VFFVRlRMRVZCUVVVc1owUkJRVWtzUTBGQlF5eDFRa0ZCZFVJc1JVRkJSVHR2UWtGRGRrTXNjVUpCUVhGQ0xFVkJRVVVzUTBGQlF5eERRVUZETEZOQlFWTTdhVUpCUTI1RExFTkJRVU1zUlVGRFJpeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVTlNMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU1zVVVGQlVTeEZRVU55UWl4UFFVRlBMRVZCUTB3c1EwRkJReXhEUVVGRExGRkJRVkVzU1VGQlNTeERRVUZETEVOQlFVTXNVMEZCVXp0dlFrRkRka0lzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVN2QwSkJRMUlzU1VGQlNTeEZRVUZGTEVsQlFVa3NTMEZCU3l4RFFVRkRMRkZCUVZFc1JVRkJSVHMwUWtGRGVFSXNVVUZCVVN4RFFVRkRMRVZCUVVVc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dDVRa0ZEY2tJN05rSkJRVTA3TkVKQlEwd3NUMEZCVHl4RlFVRkZMRU5CUVVNN2VVSkJRMWc3YjBKQlEwZ3NRMEZCUXp0dlFrRkRTQ3hEUVVGRExFTkJRVU1zVTBGQlV5eEZRVVZtTEZkQlFWY3NSVUZCUlN4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRk8yOUNRVU55UWl4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03YjBKQlEzQkNMRXRCUVVzc1EwRkJReXhaUVVGWkxFTkJRVU1zVDBGQlR5eERRVU40UWl4blJVRkJkMElzUlVGRGVFSXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGRGVrSXNRMEZCUXp0blFrRkRTaXhEUVVGRExGZEJRMFFzUlVGRFJDeExRVUZMTEVWQlEwd3NSVUZCUlN4SlFVRkpMRkZCUVZFc1NVRkJTU3hEUVVGRExGTkJRVk1zU1VGQlNTeFJRVUZSTEVsQlFVa3NVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkRlRVFzZFVSQlFVTXNkVVJCUVZrc1NVRkRXQ3hQUVVGUExFVkJRVVVzVVVGQlVTeEZRVU5xUWl4UlFVRlJMRVZCUVVVc1EwRkJReXhQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSU3hGUVVGRkxFdEJRVXNzUTBGQlF5eEZRVU5xUkN4VFFVRlRMRVZCUVVNc2QwSkJRWGRDTEZkQlEyeERMRU5CUTBnc1lVRkRSeXhEUVVOUUxFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5TWFXSnlZWEo1Vlc1cGRDNTBjM2cvT0RnNU1pSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdZMnh6ZUNCbWNtOXRJRndpWTJ4emVGd2lPMXh1YVcxd2IzSjBJRzlqSUdaeWIyMGdYQ0p2Y0dWdUxXTnZiRzl5WENJN1hHNXBiWEJ2Y25RZ2V5QjFjMlZGWm1abFkzUXNJSFZ6WlZKbFppd2dkWE5sVTNSaGRHVWdmU0JtY205dElGd2ljbVZoWTNSY0lqdGNibWx0Y0c5eWRDQjdJRTFKVFVWZlZGbFFSVk1nZlNCbWNtOXRJRndpTGk0dlkyOXVjM1JoYm5SelhDSTdYRzVwYlhCdmNuUWdleUIxYzJWSmMwMXZZbWxzWlNCOUlHWnliMjBnWENJdUxpOWpiMjF3YjI1bGJuUnpMMEZ3Y0Z3aU8xeHVhVzF3YjNKMElIc2daWGh3YjNKMFZHOVRkbWNnZlNCbWNtOXRJRndpTGk0dmMyTmxibVV2Wlhod2IzSjBYQ0k3WEc1cGJYQnZjblFnZXlCQ2FXNWhjbmxHYVd4bGN5d2dUR2xpY21GeWVVbDBaVzBnZlNCbWNtOXRJRndpTGk0dmRIbHdaWE5jSWp0Y2JtbHRjRzl5ZENCY0lpNHZUR2xpY21GeWVWVnVhWFF1YzJOemMxd2lPMXh1YVcxd2IzSjBJSHNnUTJobFkydGliM2hKZEdWdElIMGdabkp2YlNCY0lpNHZRMmhsWTJ0aWIzaEpkR1Z0WENJN1hHNWNibU52Ym5OMElGQk1WVk5mU1VOUFRpQTlJQ2hjYmlBZ1BITjJaeUIyYVdWM1FtOTRQVndpTUNBd0lERTNPVElnTVRjNU1sd2lQbHh1SUNBZ0lEeHdZWFJvWEc0Z0lDQWdJQ0JrUFZ3aVRURTJNREFnTnpNMmRqRTVNbU13SURJMkxqWTJOeTA1TGpNeklEUTVMak16TXkweU9DQTJPQzB4T0M0Mk55QXhPQzQyTnkwME1TNHpNeUF5T0MwMk9DQXlPR2d0TkRFMmRqUXhObU13SURJMkxqWTNMVGt1TXpNZ05Ea3VNek10TWpnZ05qaHpMVFF4TGpNeklESTRMVFk0SURJNFNEZ3dNR010TWpZdU5qWTNJREF0TkRrdU16TXpMVGt1TXpNdE5qZ3RNamh6TFRJNExUUXhMak16TFRJNExUWTRkaTAwTVRaSU1qZzRZeTB5Tmk0Mk5qY2dNQzAwT1M0ek16TXRPUzR6TXkwMk9DMHlPQzB4T0M0Mk5qY3RNVGd1TmpZM0xUSTRMVFF4TGpNek15MHlPQzAyT0ZZM016WmpNQzB5Tmk0Mk5qY2dPUzR6TXpNdE5Ea3VNek16SURJNExUWTRjelF4TGpNek15MHlPQ0EyT0MweU9HZzBNVFpXTWpJMFl6QXRNall1TmpZM0lEa3VNek16TFRRNUxqTXpNeUF5T0MwMk9ITTBNUzR6TXpNdE1qZ2dOamd0TWpob01Ua3lZekkyTGpZM0lEQWdORGt1TXpNZ09TNHpNek1nTmpnZ01qaHpNamdnTkRFdU16TXpJREk0SURZNGRqUXhObWcwTVRaak1qWXVOamNnTUNBME9TNHpNeUE1TGpNek15QTJPQ0F5T0hNeU9DQTBNUzR6TXpNZ01qZ2dOamhhWENKY2JpQWdJQ0FnSUhOMGVXeGxQWHQ3WEc0Z0lDQWdJQ0FnSUhOMGNtOXJaVG9nWENJalptWm1YQ0lzWEc0Z0lDQWdJQ0FnSUhOMGNtOXJaVmRwWkhSb09pQXhOREFzWEc0Z0lDQWdJQ0I5ZlZ4dUlDQWdJQ0FnZEhKaGJuTm1iM0p0UFZ3aWRISmhibk5zWVhSbEtEQWdOalFwWENKY2JpQWdJQ0F2UGx4dUlDQThMM04yWno1Y2JpazdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQk1hV0p5WVhKNVZXNXBkQ0E5SUNoN1hHNGdJR2xrTEZ4dUlDQmxiR1Z0Wlc1MGN5eGNiaUFnWm1sc1pYTXNYRzRnSUdselVHVnVaR2x1Wnl4Y2JpQWdiMjVEYkdsamF5eGNiaUFnYzJWc1pXTjBaV1FzWEc0Z0lHOXVWRzluWjJ4bExGeHVmVG9nZTF4dUlDQnBaRG9nVEdsaWNtRnllVWwwWlcxYlhDSnBaRndpWFNCOElDOHFLaUJtYjNJZ2NHVnVaR2x1WnlCcGRHVnRJQ292SUc1MWJHdzdYRzRnSUdWc1pXMWxiblJ6UHpvZ1RHbGljbUZ5ZVVsMFpXMWJYQ0psYkdWdFpXNTBjMXdpWFR0Y2JpQWdabWxzWlhNNklFSnBibUZ5ZVVacGJHVnpPMXh1SUNCcGMxQmxibVJwYm1jL09pQmliMjlzWldGdU8xeHVJQ0J2YmtOc2FXTnJPaUFvS1NBOVBpQjJiMmxrTzF4dUlDQnpaV3hsWTNSbFpEb2dZbTl2YkdWaGJqdGNiaUFnYjI1VWIyZG5iR1U2SUNocFpEb2djM1J5YVc1bkxDQmxkbVZ1ZERvZ1VtVmhZM1F1VFc5MWMyVkZkbVZ1ZENrZ1BUNGdkbTlwWkR0Y2JuMHBJRDArSUh0Y2JpQWdZMjl1YzNRZ2NtVm1JRDBnZFhObFVtVm1QRWhVVFV4RWFYWkZiR1Z0Wlc1MElId2diblZzYkQ0b2JuVnNiQ2s3WEc0Z0lIVnpaVVZtWm1WamRDZ29LU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdibTlrWlNBOUlISmxaaTVqZFhKeVpXNTBPMXh1SUNBZ0lHbG1JQ2doYm05a1pTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUNoaGMzbHVZeUFvS1NBOVBpQjdYRzRnSUNBZ0lDQnBaaUFvSVdWc1pXMWxiblJ6S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdOdmJuTjBJSE4yWnlBOUlHRjNZV2wwSUdWNGNHOXlkRlJ2VTNabktGeHVJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MGN5eGNiaUFnSUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0FnSUdWNGNHOXlkRUpoWTJ0bmNtOTFibVE2SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0FnSUhacFpYZENZV05yWjNKdmRXNWtRMjlzYjNJNklHOWpMbmRvYVhSbExGeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0JtYVd4bGN5eGNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQnViMlJsTG1sdWJtVnlTRlJOVENBOUlITjJaeTV2ZFhSbGNraFVUVXc3WEc0Z0lDQWdmU2tvS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUFvS1NBOVBpQjdYRzRnSUNBZ0lDQnViMlJsTG1sdWJtVnlTRlJOVENBOUlGd2lYQ0k3WEc0Z0lDQWdmVHRjYmlBZ2ZTd2dXMlZzWlcxbGJuUnpMQ0JtYVd4bGMxMHBPMXh1WEc0Z0lHTnZibk4wSUZ0cGMwaHZkbVZ5WldRc0lITmxkRWx6U0c5MlpYSmxaRjBnUFNCMWMyVlRkR0YwWlNobVlXeHpaU2s3WEc0Z0lHTnZibk4wSUdselRXOWlhV3hsSUQwZ2RYTmxTWE5OYjJKcGJHVW9LVHRjYmlBZ1kyOXVjM1FnWVdSa1pYSWdQU0JwYzFCbGJtUnBibWNnSmlZZ0tGeHVJQ0FnSUR4a2FYWWdZMnhoYzNOT1lXMWxQVndpYkdsaWNtRnllUzExYm1sMFgxOWhaR1JsY2x3aVBudFFURlZUWDBsRFQwNTlQQzlrYVhZK1hHNGdJQ2s3WEc1Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNBOFpHbDJYRzRnSUNBZ0lDQmpiR0Z6YzA1aGJXVTllMk5zYzNnb1hDSnNhV0p5WVhKNUxYVnVhWFJjSWl3Z2UxeHVJQ0FnSUNBZ0lDQmNJbXhwWW5KaGNua3RkVzVwZEY5ZllXTjBhWFpsWENJNklHVnNaVzFsYm5SekxGeHVJQ0FnSUNBZ0lDQmNJbXhwWW5KaGNua3RkVzVwZEMwdGFHOTJaWEpjSWpvZ1pXeGxiV1Z1ZEhNZ0ppWWdhWE5JYjNabGNtVmtMRnh1SUNBZ0lDQWdJQ0JjSW14cFluSmhjbmt0ZFc1cGRDMHRjMlZzWldOMFpXUmNJam9nYzJWc1pXTjBaV1FzWEc0Z0lDQWdJQ0I5S1gxY2JpQWdJQ0FnSUc5dVRXOTFjMlZGYm5SbGNqMTdLQ2tnUFQ0Z2MyVjBTWE5JYjNabGNtVmtLSFJ5ZFdVcGZWeHVJQ0FnSUNBZ2IyNU5iM1Z6WlV4bFlYWmxQWHNvS1NBOVBpQnpaWFJKYzBodmRtVnlaV1FvWm1Gc2MyVXBmVnh1SUNBZ0lENWNiaUFnSUNBZ0lEeGthWFpjYmlBZ0lDQWdJQ0FnWTJ4aGMzTk9ZVzFsUFh0amJITjRLRndpYkdsaWNtRnllUzExYm1sMFgxOWtjbUZuWjJWeVhDSXNJSHRjYmlBZ0lDQWdJQ0FnSUNCY0lteHBZbkpoY25rdGRXNXBkRjlmY0hWc2MyVmNJam9nSVNGcGMxQmxibVJwYm1jc1hHNGdJQ0FnSUNBZ0lIMHBmVnh1SUNBZ0lDQWdJQ0J5WldZOWUzSmxabjFjYmlBZ0lDQWdJQ0FnWkhKaFoyZGhZbXhsUFhzaElXVnNaVzFsYm5SemZWeHVJQ0FnSUNBZ0lDQnZia05zYVdOclBYdGNiaUFnSUNBZ0lDQWdJQ0FoSVdWc1pXMWxiblJ6SUh4OElDRWhhWE5RWlc1a2FXNW5YRzRnSUNBZ0lDQWdJQ0FnSUNBL0lDaGxkbVZ1ZENrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNocFpDQW1KaUJsZG1WdWRDNXphR2xtZEV0bGVTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1VWIyZG5iR1VvYVdRc0lHVjJaVzUwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNURiR2xqYXlncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnT2lCMWJtUmxabWx1WldSY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnZia1J5WVdkVGRHRnlkRDE3S0dWMlpXNTBLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdjMlYwU1hOSWIzWmxjbVZrS0daaGJITmxLVHRjYmlBZ0lDQWdJQ0FnSUNCbGRtVnVkQzVrWVhSaFZISmhibk5tWlhJdWMyVjBSR0YwWVNoY2JpQWdJQ0FnSUNBZ0lDQWdJRTFKVFVWZlZGbFFSVk11WlhoallXeHBaSEpoZDJ4cFlpeGNiaUFnSUNBZ0lDQWdJQ0FnSUVwVFQwNHVjM1J5YVc1bmFXWjVLR1ZzWlcxbGJuUnpLU3hjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQjlmVnh1SUNBZ0lDQWdMejVjYmlBZ0lDQWdJSHRoWkdSbGNuMWNiaUFnSUNBZ0lIdHBaQ0FtSmlCbGJHVnRaVzUwY3lBbUppQW9hWE5JYjNabGNtVmtJSHg4SUdselRXOWlhV3hsSUh4OElITmxiR1ZqZEdWa0tTQW1KaUFvWEc0Z0lDQWdJQ0FnSUR4RGFHVmphMkp2ZUVsMFpXMWNiaUFnSUNBZ0lDQWdJQ0JqYUdWamEyVmtQWHR6Wld4bFkzUmxaSDFjYmlBZ0lDQWdJQ0FnSUNCdmJrTm9ZVzVuWlQxN0tHTm9aV05yWldRc0lHVjJaVzUwS1NBOVBpQnZibFJ2WjJkc1pTaHBaQ3dnWlhabGJuUXBmVnh1SUNBZ0lDQWdJQ0FnSUdOc1lYTnpUbUZ0WlQxY0lteHBZbkpoY25rdGRXNXBkRjlmWTJobFkydGliM2hjSWx4dUlDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ0tYMWNiaUFnSUNBOEwyUnBkajVjYmlBZ0tUdGNibjA3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9MaWJyYXJ5VW5pdC50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvTG9hZGluZ01lc3NhZ2UudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvTG9hZGluZ01lc3NhZ2UudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJMb2FkaW5nTWVzc2FnZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIExvYWRpbmdNZXNzYWdlKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcblxcblxcbmNvbnN0IExvYWRpbmdNZXNzYWdlID0gKCkgPT4ge1xcbiAgICAvLyAhISBLRUVQIFRISVMgSU4gU1lOQyBXSVRIIGluZGV4Lmh0bWwgISFcXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJMb2FkaW5nTWVzc2FnZVxcXCIgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJzcGFuXFxcIiwgeyBjaGlsZHJlbjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50KShcXFwibGFiZWxzLmxvYWRpbmdTY2VuZVxcXCIpIH0sIHZvaWQgMCkgfSksIHZvaWQgMCkpO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlNYjJGa2FXNW5UV1Z6YzJGblpTNTBjM2d1YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096dEJRVUUwUWp0QlFVVnlRaXhOUVVGTkxHTkJRV01zUjBGQlJ5eEhRVUZITEVWQlFVVTdTVUZEYWtNc01FTkJRVEJETzBsQlF6RkRMRTlCUVU4c1EwRkRUQ3c0UlVGQlN5eFRRVUZUTEVWQlFVTXNaMEpCUVdkQ0xHZENRVU0zUWl3eVJVRkJUeXgzUTBGQlF5eERRVUZETEhGQ1FVRnhRaXhEUVVGRExGZEJRVkVzV1VGRGJrTXNRMEZEVUN4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12VEc5aFpHbHVaMDFsYzNOaFoyVXVkSE40UDJNMk16a2lYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnZENCOUlHWnliMjBnWENJdUxpOXBNVGh1WENJN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCTWIyRmthVzVuVFdWemMyRm5aU0E5SUNncElEMCtJSHRjYmlBZ0x5OGdJU0VnUzBWRlVDQlVTRWxUSUVsT0lGTlpUa01nVjBsVVNDQnBibVJsZUM1b2RHMXNJQ0VoWEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnUEdScGRpQmpiR0Z6YzA1aGJXVTlYQ0pNYjJGa2FXNW5UV1Z6YzJGblpWd2lQbHh1SUNBZ0lDQWdQSE53WVc0K2UzUW9YQ0pzWVdKbGJITXViRzloWkdsdVoxTmpaVzVsWENJcGZUd3ZjM0JoYmo1Y2JpQWdJQ0E4TDJScGRqNWNiaUFnS1R0Y2JuMDdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL0xvYWRpbmdNZXNzYWdlLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9Mb2NrQnV0dG9uLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvTG9ja0J1dHRvbi50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiTG9ja0J1dHRvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIExvY2tCdXR0b24pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Ub29sSWNvbl9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1Rvb2xJY29uLnNjc3MgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVG9vbEljb24uc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVG9vbEljb25fc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9Ub29sSWNvbl9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIGNsc3ggKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jbHN4L2Rpc3QvY2xzeC5tLmpzXFxcIik7XFxuXFxuXFxuXFxuXFxuY29uc3QgREVGQVVMVF9TSVpFID0gXFxcIm1lZGl1bVxcXCI7XFxuY29uc3QgSUNPTlMgPSB7XFxuICAgIENIRUNLRUQ6ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInN2Z1xcXCIsIE9iamVjdC5hc3NpZ24oeyB3aWR0aDogXFxcIjE3OTJcXFwiLCBoZWlnaHQ6IFxcXCIxNzkyXFxcIiwgdmlld0JveDogXFxcIjAgMCAxNzkyIDE3OTJcXFwiLCB4bWxuczogXFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNNjQwIDc2OGg1MTJ2LTE5MnEwLTEwNi03NS0xODF0LTE4MS03NS0xODEgNzUtNzUgMTgxdjE5MnptODMyIDk2djU3NnEwIDQwLTI4IDY4dC02OCAyOGgtOTYwcS00MCAwLTY4LTI4dC0yOC02OHYtNTc2cTAtNDAgMjgtNjh0NjgtMjhoMzJ2LTE5MnEwLTE4NCAxMzItMzE2dDMxNi0xMzIgMzE2IDEzMiAxMzIgMzE2djE5MmgzMnE0MCAwIDY4IDI4dDI4IDY4elxcXCIgfSwgdm9pZCAwKSB9KSwgdm9pZCAwKSksXFxuICAgIFVOQ0hFQ0tFRDogKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3ZnXFxcIiwgT2JqZWN0LmFzc2lnbih7IHdpZHRoOiBcXFwiMTc5MlxcXCIsIGhlaWdodDogXFxcIjE3OTJcXFwiLCB2aWV3Qm94OiBcXFwiMCAwIDE3OTIgMTc5MlxcXCIsIHhtbG5zOiBcXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiLCBjbGFzc05hbWU6IFxcXCJ1bmxvY2tlZC1pY29uIHJ0bC1taXJyb3JcXFwiIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0xNzI4IDU3NnYyNTZxMCAyNi0xOSA0NXQtNDUgMTloLTY0cS0yNiAwLTQ1LTE5dC0xOS00NXYtMjU2cTAtMTA2LTc1LTE4MXQtMTgxLTc1LTE4MSA3NS03NSAxODF2MTkyaDk2cTQwIDAgNjggMjh0MjggNjh2NTc2cTAgNDAtMjggNjh0LTY4IDI4aC05NjBxLTQwIDAtNjgtMjh0LTI4LTY4di01NzZxMC00MCAyOC02OHQ2OC0yOGg2NzJ2LTE5MnEwLTE4NSAxMzEuNS0zMTYuNXQzMTYuNS0xMzEuNSAzMTYuNSAxMzEuNSAxMzEuNSAzMTYuNXpcXFwiIH0sIHZvaWQgMCkgfSksIHZvaWQgMCkpLFxcbn07XFxuY29uc3QgTG9ja0J1dHRvbiA9IChwcm9wcykgPT4ge1xcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImxhYmVsXFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogKDAsY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fW1xcXCJkZWZhdWx0XFxcIl0pKFxcXCJUb29sSWNvbiBUb29sSWNvbl9fbG9jayBUb29sSWNvbl90eXBlX2Zsb2F0aW5nXFxcIiwgYFRvb2xJY29uX3NpemVfJHtERUZBVUxUX1NJWkV9YCwge1xcbiAgICAgICAgICAgIFxcXCJpcy1tb2JpbGVcXFwiOiBwcm9wcy5pc01vYmlsZSxcXG4gICAgICAgIH0pLCB0aXRsZTogYCR7cHJvcHMudGl0bGV9IFx1MjAxNCBRYCB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJpbnB1dFxcXCIsIHsgY2xhc3NOYW1lOiBcXFwiVG9vbEljb25fdHlwZV9jaGVja2JveFxcXCIsIHR5cGU6IFxcXCJjaGVja2JveFxcXCIsIG5hbWU6IHByb3BzLm5hbWUsIG9uQ2hhbmdlOiBwcm9wcy5vbkNoYW5nZSwgY2hlY2tlZDogcHJvcHMuY2hlY2tlZCwgXFxcImFyaWEtbGFiZWxcXFwiOiBwcm9wcy50aXRsZSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJUb29sSWNvbl9faWNvblxcXCIgfSwgeyBjaGlsZHJlbjogcHJvcHMuY2hlY2tlZCA/IElDT05TLkNIRUNLRUQgOiBJQ09OUy5VTkNIRUNLRUQgfSksIHZvaWQgMCldIH0pLCB2b2lkIDApKTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5TWIyTnJRblYwZEc5dUxuUnplQzVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenRCUVVGNVFqdEJRVVZETzBGQlEwWTdRVUZaZUVJc1RVRkJUU3haUVVGWkxFZEJRVzFDTEZGQlFWRXNRMEZCUXp0QlFVVTVReXhOUVVGTkxFdEJRVXNzUjBGQlJ6dEpRVU5hTEU5QlFVOHNSVUZCUlN4RFFVTlFMRGhGUVVORkxFdEJRVXNzUlVGQlF5eE5RVUZOTEVWQlExb3NUVUZCVFN4RlFVRkRMRTFCUVUwc1JVRkRZaXhQUVVGUExFVkJRVU1zWlVGQlpTeEZRVU4yUWl4TFFVRkxMRVZCUVVNc05FSkJRVFJDTEdkQ1FVVnNReXhwUlVGQlRTeERRVUZETEVWQlFVTXNOazFCUVRaTkxGZEJRVWNzV1VGRGNFNHNRMEZEVUR0SlFVTkVMRk5CUVZNc1JVRkJSU3hEUVVOVUxEaEZRVU5GTEV0QlFVc3NSVUZCUXl4TlFVRk5MRVZCUTFvc1RVRkJUU3hGUVVGRExFMUJRVTBzUlVGRFlpeFBRVUZQTEVWQlFVTXNaVUZCWlN4RlFVTjJRaXhMUVVGTExFVkJRVU1zTkVKQlFUUkNMRVZCUTJ4RExGTkJRVk1zUlVGQlF5d3dRa0ZCTUVJc1owSkJSWEJETEdsRlFVRk5MRU5CUVVNc1JVRkJReXcwVUVGQk5GQXNWMEZCUnl4WlFVTnVVU3hEUVVOUU8wTkJRMFlzUTBGQlF6dEJRVVZMTEUxQlFVMHNWVUZCVlN4SFFVRkhMRU5CUVVNc1MwRkJiMElzUlVGQlJTeEZRVUZGTzBsQlEycEVMRTlCUVU4c1EwRkRUQ3hwUmtGRFJTeFRRVUZUTEVWQlFVVXNaMFJCUVVrc1EwRkRZaXhuUkVGQlowUXNSVUZEYUVRc2FVSkJRV2xDTEZsQlFWa3NSVUZCUlN4RlFVTXZRanRaUVVORkxGZEJRVmNzUlVGQlJTeExRVUZMTEVOQlFVTXNVVUZCVVR0VFFVTTFRaXhEUVVOR0xFVkJRMFFzUzBGQlN5eEZRVUZGTEVkQlFVY3NTMEZCU3l4RFFVRkRMRXRCUVVzc1RVRkJUU3hwUWtGRk0wSXNhMFZCUTBVc1UwRkJVeXhGUVVGRExIZENRVUYzUWl4RlFVTnNReXhKUVVGSkxFVkJRVU1zVlVGQlZTeEZRVU5tTEVsQlFVa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVOb1FpeFJRVUZSTEVWQlFVVXNTMEZCU3l4RFFVRkRMRkZCUVZFc1JVRkRlRUlzVDBGQlR5eEZRVUZGTEV0QlFVc3NRMEZCUXl4UFFVRlBMR2RDUVVOV0xFdEJRVXNzUTBGQlF5eExRVUZMTEZkQlEzWkNMRVZCUTBZc09FVkJRVXNzVTBGQlV5eEZRVUZETEdkQ1FVRm5RaXhuUWtGRE5VSXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zV1VGRE5VTXNZVUZEUVN4RFFVTlVMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OU1iMk5yUW5WMGRHOXVMblJ6ZUQ5bU1XRmpJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0JjSWk0dlZHOXZiRWxqYjI0dWMyTnpjMXdpTzF4dVhHNXBiWEJ2Y25RZ1VtVmhZM1FnWm5KdmJTQmNJbkpsWVdOMFhDSTdYRzVwYlhCdmNuUWdZMnh6ZUNCbWNtOXRJRndpWTJ4emVGd2lPMXh1YVcxd2IzSjBJSHNnVkc5dmJFSjFkSFJ2YmxOcGVtVWdmU0JtY205dElGd2lMaTlVYjI5c1FuVjBkRzl1WENJN1hHNWNiblI1Y0dVZ1RHOWphMGxqYjI1UWNtOXdjeUE5SUh0Y2JpQWdkR2wwYkdVL09pQnpkSEpwYm1jN1hHNGdJRzVoYldVL09pQnpkSEpwYm1jN1hHNGdJR05vWldOclpXUTZJR0p2YjJ4bFlXNDdYRzRnSUc5dVEyaGhibWRsUHlncE9pQjJiMmxrTzF4dUlDQjZaVzVOYjJSbFJXNWhZbXhsWkQ4NklHSnZiMnhsWVc0N1hHNGdJR2x6VFc5aWFXeGxQem9nWW05dmJHVmhianRjYm4wN1hHNWNibU52Ym5OMElFUkZSa0ZWVEZSZlUwbGFSVG9nVkc5dmJFSjFkSFJ2YmxOcGVtVWdQU0JjSW0xbFpHbDFiVndpTzF4dVhHNWpiMjV6ZENCSlEwOU9VeUE5SUh0Y2JpQWdRMGhGUTB0RlJEb2dLRnh1SUNBZ0lEeHpkbWRjYmlBZ0lDQWdJSGRwWkhSb1BWd2lNVGM1TWx3aVhHNGdJQ0FnSUNCb1pXbG5hSFE5WENJeE56a3lYQ0pjYmlBZ0lDQWdJSFpwWlhkQ2IzZzlYQ0l3SURBZ01UYzVNaUF4TnpreVhDSmNiaUFnSUNBZ0lIaHRiRzV6UFZ3aWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1kY0lseHVJQ0FnSUQ1Y2JpQWdJQ0FnSUR4d1lYUm9JR1E5WENKTk5qUXdJRGMyT0dnMU1USjJMVEU1TW5Fd0xURXdOaTAzTlMweE9ERjBMVEU0TVMwM05TMHhPREVnTnpVdE56VWdNVGd4ZGpFNU1ucHRPRE15SURrMmRqVTNObkV3SURRd0xUSTRJRFk0ZEMwMk9DQXlPR2d0T1RZd2NTMDBNQ0F3TFRZNExUSTRkQzB5T0MwMk9IWXROVGMyY1RBdE5EQWdNamd0TmpoME5qZ3RNamhvTXpKMkxURTVNbkV3TFRFNE5DQXhNekl0TXpFMmRETXhOaTB4TXpJZ016RTJJREV6TWlBeE16SWdNekUyZGpFNU1tZ3pNbkUwTUNBd0lEWTRJREk0ZERJNElEWTRlbHdpSUM4K1hHNGdJQ0FnUEM5emRtYytYRzRnSUNrc1hHNGdJRlZPUTBoRlEwdEZSRG9nS0Z4dUlDQWdJRHh6ZG1kY2JpQWdJQ0FnSUhkcFpIUm9QVndpTVRjNU1sd2lYRzRnSUNBZ0lDQm9aV2xuYUhROVhDSXhOemt5WENKY2JpQWdJQ0FnSUhacFpYZENiM2c5WENJd0lEQWdNVGM1TWlBeE56a3lYQ0pjYmlBZ0lDQWdJSGh0Ykc1elBWd2lhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtZGNJbHh1SUNBZ0lDQWdZMnhoYzNOT1lXMWxQVndpZFc1c2IyTnJaV1F0YVdOdmJpQnlkR3d0YldseWNtOXlYQ0pjYmlBZ0lDQStYRzRnSUNBZ0lDQThjR0YwYUNCa1BWd2lUVEUzTWpnZ05UYzJkakkxTm5Fd0lESTJMVEU1SURRMWRDMDBOU0F4T1dndE5qUnhMVEkySURBdE5EVXRNVGwwTFRFNUxUUTFkaTB5TlRaeE1DMHhNRFl0TnpVdE1UZ3hkQzB4T0RFdE56VXRNVGd4SURjMUxUYzFJREU0TVhZeE9USm9PVFp4TkRBZ01DQTJPQ0F5T0hReU9DQTJPSFkxTnpaeE1DQTBNQzB5T0NBMk9IUXROamdnTWpob0xUazJNSEV0TkRBZ01DMDJPQzB5T0hRdE1qZ3ROamgyTFRVM05uRXdMVFF3SURJNExUWTRkRFk0TFRJNGFEWTNNbll0TVRreWNUQXRNVGcxSURFek1TNDFMVE14Tmk0MWRETXhOaTQxTFRFek1TNDFJRE14Tmk0MUlERXpNUzQxSURFek1TNDFJRE14Tmk0MWVsd2lJQzgrWEc0Z0lDQWdQQzl6ZG1jK1hHNGdJQ2tzWEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1RHOWphMEoxZEhSdmJpQTlJQ2h3Y205d2N6b2dURzlqYTBsamIyNVFjbTl3Y3lrZ1BUNGdlMXh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJRHhzWVdKbGJGeHVJQ0FnSUNBZ1kyeGhjM05PWVcxbFBYdGpiSE40S0Z4dUlDQWdJQ0FnSUNCY0lsUnZiMnhKWTI5dUlGUnZiMnhKWTI5dVgxOXNiMk5ySUZSdmIyeEpZMjl1WDNSNWNHVmZabXh2WVhScGJtZGNJaXhjYmlBZ0lDQWdJQ0FnWUZSdmIyeEpZMjl1WDNOcGVtVmZKSHRFUlVaQlZVeFVYMU5KV2tWOVlDeGNiaUFnSUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0FnSUZ3aWFYTXRiVzlpYVd4bFhDSTZJSEJ5YjNCekxtbHpUVzlpYVd4bExGeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdLWDFjYmlBZ0lDQWdJSFJwZEd4bFBYdGdKSHR3Y205d2N5NTBhWFJzWlgwZzRvQ1VJRkZnZlZ4dUlDQWdJRDVjYmlBZ0lDQWdJRHhwYm5CMWRGeHVJQ0FnSUNBZ0lDQmpiR0Z6YzA1aGJXVTlYQ0pVYjI5c1NXTnZibDkwZVhCbFgyTm9aV05yWW05NFhDSmNiaUFnSUNBZ0lDQWdkSGx3WlQxY0ltTm9aV05yWW05NFhDSmNiaUFnSUNBZ0lDQWdibUZ0WlQxN2NISnZjSE11Ym1GdFpYMWNiaUFnSUNBZ0lDQWdiMjVEYUdGdVoyVTllM0J5YjNCekxtOXVRMmhoYm1kbGZWeHVJQ0FnSUNBZ0lDQmphR1ZqYTJWa1BYdHdjbTl3Y3k1amFHVmphMlZrZlZ4dUlDQWdJQ0FnSUNCaGNtbGhMV3hoWW1Wc1BYdHdjbTl3Y3k1MGFYUnNaWDFjYmlBZ0lDQWdJQzgrWEc0Z0lDQWdJQ0E4WkdsMklHTnNZWE56VG1GdFpUMWNJbFJ2YjJ4SlkyOXVYMTlwWTI5dVhDSStYRzRnSUNBZ0lDQWdJSHR3Y205d2N5NWphR1ZqYTJWa0lEOGdTVU5QVGxNdVEwaEZRMHRGUkNBNklFbERUMDVUTGxWT1EwaEZRMHRGUkgxY2JpQWdJQ0FnSUR3dlpHbDJQbHh1SUNBZ0lEd3ZiR0ZpWld3K1hHNGdJQ2s3WEc1OU8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvTG9ja0J1dHRvbi50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvTW9iaWxlTWVudS50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL01vYmlsZU1lbnUudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIk1vYmlsZU1lbnVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBNb2JpbGVNZW51KVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pMThuICovIFxcXCIuLi8uLi9pMThuLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9TdGFja19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9TdGFjayAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9TdGFjay50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0ZpeGVkU2lkZUNvbnRhaW5lcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9GaXhlZFNpZGVDb250YWluZXIgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvRml4ZWRTaWRlQ29udGFpbmVyLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfSXNsYW5kX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0lzbGFuZCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Jc2xhbmQudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9IaW50Vmlld2VyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0hpbnRWaWV3ZXIgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvSGludFZpZXdlci50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZSAqLyBcXFwiLi4vLi4vc2NlbmUvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0FjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vQWN0aW9ucyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9BY3Rpb25zLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfU2VjdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vU2VjdGlvbiAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9TZWN0aW9uLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfQ29sbGFiQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Db2xsYWJCdXR0b24gKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvQ29sbGFiQnV0dG9uLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfc2Nyb2xsYmFyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lL3Njcm9sbGJhcnMgKi8gXFxcIi4uLy4uL3NjZW5lL3Njcm9sbGJhcnMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0xvY2tCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0xvY2tCdXR0b24gKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvTG9ja0J1dHRvbi50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1VzZXJMaXN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Vc2VyTGlzdCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Vc2VyTGlzdC50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0JhY2tncm91bmRQaWNrZXJBbmREYXJrTW9kZVRvZ2dsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vQmFja2dyb3VuZFBpY2tlckFuZERhcmtNb2RlVG9nZ2xlICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0JhY2tncm91bmRQaWNrZXJBbmREYXJrTW9kZVRvZ2dsZS50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0xpYnJhcnlCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0xpYnJhcnlCdXR0b24gKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvTGlicmFyeUJ1dHRvbi50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1Blbk1vZGVCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE3X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1Blbk1vZGVCdXR0b24gKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvUGVuTW9kZUJ1dHRvbi50c3hcXFwiKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBNb2JpbGVNZW51ID0gKHsgYXBwU3RhdGUsIGVsZW1lbnRzLCBsaWJyYXJ5TWVudSwgYWN0aW9uTWFuYWdlciwgcmVuZGVySlNPTkV4cG9ydERpYWxvZywgcmVuZGVySW1hZ2VFeHBvcnREaWFsb2csIHNldEFwcFN0YXRlLCBvbkNvbGxhYkJ1dHRvbkNsaWNrLCBvbkxvY2tUb2dnbGUsIG9uUGVuTW9kZVRvZ2dsZSwgY2FudmFzLCBpc0NvbGxhYm9yYXRpbmcsIHJlbmRlckN1c3RvbUZvb3Rlciwgdmlld01vZGVFbmFibGVkLCBzaG93VGhlbWVCdG4sIG9uSW1hZ2VBY3Rpb24sIHJlbmRlclRvcFJpZ2h0VUksIH0pID0+IHtcXG4gICAgY29uc3QgcmVuZGVyVG9vbGJhciA9ICgpID0+IHtcXG4gICAgICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShfRml4ZWRTaWRlQ29udGFpbmVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uRml4ZWRTaWRlQ29udGFpbmVyLCBPYmplY3QuYXNzaWduKHsgc2lkZTogXFxcInRvcFxcXCIsIGNsYXNzTmFtZTogXFxcIkFwcC10b3AtYmFyXFxcIiB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9TZWN0aW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLlNlY3Rpb24sIE9iamVjdC5hc3NpZ24oeyBoZWFkaW5nOiBcXFwic2hhcGVzXFxcIiB9LCB7IGNoaWxkcmVuOiAoaGVhZGluZykgPT4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoX1N0YWNrX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bXFxcImRlZmF1bHRcXFwiXS5Db2wsIE9iamVjdC5hc3NpZ24oeyBnYXA6IDQsIGFsaWduOiBcXFwiY2VudGVyXFxcIiB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShfU3RhY2tfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1tcXFwiZGVmYXVsdFxcXCJdLlJvdywgT2JqZWN0LmFzc2lnbih7IGdhcDogMSwgY2xhc3NOYW1lOiBcXFwiQXBwLXRvb2xiYXItY29udGFpbmVyXFxcIiB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShfSXNsYW5kX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uSXNsYW5kLCBPYmplY3QuYXNzaWduKHsgcGFkZGluZzogMSwgY2xhc3NOYW1lOiBcXFwiQXBwLXRvb2xiYXJcXFwiIH0sIHsgY2hpbGRyZW46IFtoZWFkaW5nLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX1N0YWNrX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bXFxcImRlZmF1bHRcXFwiXS5Sb3csIE9iamVjdC5hc3NpZ24oeyBnYXA6IDEgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9BY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uU2hhcGVzU3dpdGNoZXIsIHsgY2FudmFzOiBjYW52YXMsIGVsZW1lbnRUeXBlOiBhcHBTdGF0ZS5lbGVtZW50VHlwZSwgc2V0QXBwU3RhdGU6IHNldEFwcFN0YXRlLCBvbkltYWdlQWN0aW9uOiAoeyBwb2ludGVyVHlwZSB9KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkltYWdlQWN0aW9uKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRPbkNhbnZhc0RpcmVjdGx5OiBwb2ludGVyVHlwZSAhPT0gXFxcIm1vdXNlXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IH0sIHZvaWQgMCkgfSksIHZvaWQgMCldIH0pLCB2b2lkIDApLCByZW5kZXJUb3BSaWdodFVJICYmIHJlbmRlclRvcFJpZ2h0VUkodHJ1ZSwgYXBwU3RhdGUpLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX0xvY2tCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18uTG9ja0J1dHRvbiwgeyBjaGVja2VkOiBhcHBTdGF0ZS5lbGVtZW50TG9ja2VkLCBvbkNoYW5nZTogb25Mb2NrVG9nZ2xlLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwidG9vbEJhci5sb2NrXFxcIiksIGlzTW9iaWxlOiB0cnVlIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfTGlicmFyeUJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5MaWJyYXJ5QnV0dG9uLCB7IGFwcFN0YXRlOiBhcHBTdGF0ZSwgc2V0QXBwU3RhdGU6IHNldEFwcFN0YXRlLCBpc01vYmlsZTogdHJ1ZSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX1Blbk1vZGVCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE3X18uUGVuTW9kZUJ1dHRvbiwgeyBjaGVja2VkOiBhcHBTdGF0ZS5wZW5Nb2RlLCBvbkNoYW5nZTogb25QZW5Nb2RlVG9nZ2xlLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50KShcXFwidG9vbEJhci5wZW5Nb2RlXFxcIiksIGlzTW9iaWxlOiB0cnVlLCBwZW5EZXRlY3RlZDogYXBwU3RhdGUucGVuRGV0ZWN0ZWQgfSwgdm9pZCAwKV0gfSksIHZvaWQgMCksIGxpYnJhcnlNZW51XSB9KSwgdm9pZCAwKSkgfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfSGludFZpZXdlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLkhpbnRWaWV3ZXIsIHsgYXBwU3RhdGU6IGFwcFN0YXRlLCBlbGVtZW50czogZWxlbWVudHMsIGlzTW9iaWxlOiB0cnVlIH0sIHZvaWQgMCldIH0pLCB2b2lkIDApKTtcXG4gICAgfTtcXG4gICAgY29uc3QgcmVuZGVyQXBwVG9vbGJhciA9ICgpID0+IHtcXG4gICAgICAgIGlmICh2aWV3TW9kZUVuYWJsZWQpIHtcXG4gICAgICAgICAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcIkFwcC10b29sYmFyLWNvbnRlbnRcXFwiIH0sIHsgY2hpbGRyZW46IGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFxcXCJ0b2dnbGVDYW52YXNNZW51XFxcIikgfSksIHZvaWQgMCkpO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiQXBwLXRvb2xiYXItY29udGVudFxcXCIgfSwgeyBjaGlsZHJlbjogW2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFxcXCJ0b2dnbGVDYW52YXNNZW51XFxcIiksIGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFxcXCJ0b2dnbGVFZGl0TWVudVxcXCIpLCBhY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcXFwidW5kb1xcXCIpLCBhY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcXFwicmVkb1xcXCIpLCBhY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihhcHBTdGF0ZS5tdWx0aUVsZW1lbnQgPyBcXFwiZmluYWxpemVcXFwiIDogXFxcImR1cGxpY2F0ZVNlbGVjdGlvblxcXCIpLCBhY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcXFwiZGVsZXRlU2VsZWN0ZWRFbGVtZW50c1xcXCIpXSB9KSwgdm9pZCAwKSk7XFxuICAgIH07XFxuICAgIGNvbnN0IHJlbmRlckNhbnZhc0FjdGlvbnMgPSAoKSA9PiB7XFxuICAgICAgICBpZiAodmlld01vZGVFbmFibGVkKSB7XFxuICAgICAgICAgICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtyZW5kZXJKU09ORXhwb3J0RGlhbG9nKCksIHJlbmRlckltYWdlRXhwb3J0RGlhbG9nKCldIH0sIHZvaWQgMCkpO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcXFwiY2xlYXJDYW52YXNcXFwiKSwgYWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXFxcImxvYWRTY2VuZVxcXCIpLCByZW5kZXJKU09ORXhwb3J0RGlhbG9nKCksIHJlbmRlckltYWdlRXhwb3J0RGlhbG9nKCksIG9uQ29sbGFiQnV0dG9uQ2xpY2sgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfQ29sbGFiQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fW1xcXCJkZWZhdWx0XFxcIl0sIHsgaXNDb2xsYWJvcmF0aW5nOiBpc0NvbGxhYm9yYXRpbmcsIGNvbGxhYm9yYXRvckNvdW50OiBhcHBTdGF0ZS5jb2xsYWJvcmF0b3JzLnNpemUsIG9uQ2xpY2s6IG9uQ29sbGFiQnV0dG9uQ2xpY2sgfSwgdm9pZCAwKSksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfQmFja2dyb3VuZFBpY2tlckFuZERhcmtNb2RlVG9nZ2xlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fLkJhY2tncm91bmRQaWNrZXJBbmREYXJrTW9kZVRvZ2dsZSwgeyBhY3Rpb25NYW5hZ2VyOiBhY3Rpb25NYW5hZ2VyLCBhcHBTdGF0ZTogYXBwU3RhdGUsIHNldEFwcFN0YXRlOiBzZXRBcHBTdGF0ZSwgc2hvd1RoZW1lQnRuOiBzaG93VGhlbWVCdG4gfSwgdm9pZCAwKV0gfSwgdm9pZCAwKSk7XFxuICAgIH07XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbIXZpZXdNb2RlRW5hYmxlZCAmJiByZW5kZXJUb29sYmFyKCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcIkFwcC1ib3R0b20tYmFyXFxcIiwgc3R5bGU6IHtcXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogX3NjZW5lX3Njcm9sbGJhcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uU0NST0xMQkFSX1dJRFRIICsgX3NjZW5lX3Njcm9sbGJhcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uU0NST0xMQkFSX01BUkdJTiAqIDIsXFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiBfc2NlbmVfc2Nyb2xsYmFyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5TQ1JPTExCQVJfV0lEVEggKyBfc2NlbmVfc2Nyb2xsYmFyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5TQ1JPTExCQVJfTUFSR0lOICogMixcXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiBfc2NlbmVfc2Nyb2xsYmFyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5TQ1JPTExCQVJfV0lEVEggKyBfc2NlbmVfc2Nyb2xsYmFyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5TQ1JPTExCQVJfTUFSR0lOICogMixcXG4gICAgICAgICAgICAgICAgfSB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKF9Jc2xhbmRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5Jc2xhbmQsIE9iamVjdC5hc3NpZ24oeyBwYWRkaW5nOiAwIH0sIHsgY2hpbGRyZW46IFthcHBTdGF0ZS5vcGVuTWVudSA9PT0gXFxcImNhbnZhc1xcXCIgPyAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9TZWN0aW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLlNlY3Rpb24sIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJBcHAtbW9iaWxlLW1lbnVcXFwiLCBoZWFkaW5nOiBcXFwiY2FudmFzQWN0aW9uc1xcXCIgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwicGFuZWxDb2x1bW5cXFwiIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoX1N0YWNrX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bXFxcImRlZmF1bHRcXFwiXS5Db2wsIE9iamVjdC5hc3NpZ24oeyBnYXA6IDQgfSwgeyBjaGlsZHJlbjogW3JlbmRlckNhbnZhc0FjdGlvbnMoKSwgcmVuZGVyQ3VzdG9tRm9vdGVyID09PSBudWxsIHx8IHJlbmRlckN1c3RvbUZvb3RlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVuZGVyQ3VzdG9tRm9vdGVyKHRydWUsIGFwcFN0YXRlKSwgYXBwU3RhdGUuY29sbGFib3JhdG9ycy5zaXplID4gMCAmJiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZmllbGRzZXRcXFwiLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJsZWdlbmRcXFwiLCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJsYWJlbHMuY29sbGFib3JhdG9yc1xcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfVXNlckxpc3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18uVXNlckxpc3QsIE9iamVjdC5hc3NpZ24oeyBtb2JpbGU6IHRydWUgfSwgeyBjaGlsZHJlbjogQXJyYXkuZnJvbShhcHBTdGF0ZS5jb2xsYWJvcmF0b3JzKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29sbGFib3JhdG9yIGlzIGVpdGhlciBub3QgaW5pdGlhbGl6ZWQgb3IgaXMgYWN0dWFsbHkgdGhlIGN1cnJlbnQgdXNlci5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKFtfLCBjbGllbnRdKSA9PiBPYmplY3Qua2V5cyhjbGllbnQpLmxlbmd0aCAhPT0gMClcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKFtjbGllbnRJZCwgY2xpZW50XSkgPT4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KSgocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkuRnJhZ21lbnQpLCB7IGNoaWxkcmVuOiBhY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcXFwiZ29Ub0NvbGxhYm9yYXRvclxcXCIsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogY2xpZW50SWQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSB9LCBjbGllbnRJZCkpKSB9KSwgdm9pZCAwKV0gfSwgdm9pZCAwKSldIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApKSA6IGFwcFN0YXRlLm9wZW5NZW51ID09PSBcXFwic2hhcGVcXFwiICYmXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICF2aWV3TW9kZUVuYWJsZWQgJiZcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5zaG93U2VsZWN0ZWRTaGFwZUFjdGlvbnMpKGFwcFN0YXRlLCBlbGVtZW50cykgPyAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9TZWN0aW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLlNlY3Rpb24sIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJBcHAtbW9iaWxlLW1lbnVcXFwiLCBoZWFkaW5nOiBcXFwic2VsZWN0ZWRTaGFwZUFjdGlvbnNcXFwiIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfQWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLlNlbGVjdGVkU2hhcGVBY3Rpb25zLCB7IGFwcFN0YXRlOiBhcHBTdGF0ZSwgZWxlbWVudHM6IGVsZW1lbnRzLCByZW5kZXJBY3Rpb246IGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uLCBlbGVtZW50VHlwZTogYXBwU3RhdGUuZWxlbWVudFR5cGUgfSwgdm9pZCAwKSB9KSwgdm9pZCAwKSkgOiBudWxsLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJmb290ZXJcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiQXBwLXRvb2xiYXJcXFwiIH0sIHsgY2hpbGRyZW46IFtyZW5kZXJBcHBUb29sYmFyKCksIGFwcFN0YXRlLnNjcm9sbGVkT3V0c2lkZSAmJiAhYXBwU3RhdGUub3Blbk1lbnUgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiYnV0dG9uXFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcInNjcm9sbC1iYWNrLXRvLWNvbnRlbnRcXFwiLCBvbkNsaWNrOiAoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEFwcFN0YXRlKE9iamVjdC5hc3NpZ24oe30sICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmNhbGN1bGF0ZVNjcm9sbENlbnRlcikoZWxlbWVudHMsIGFwcFN0YXRlLCBjYW52YXMpKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSB9LCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKFxcXCJidXR0b25zLnNjcm9sbEJhY2tUb0NvbnRlbnRcXFwiKSB9KSwgdm9pZCAwKSldIH0pLCB2b2lkIDApXSB9KSwgdm9pZCAwKSB9KSwgdm9pZCAwKV0gfSwgdm9pZCAwKSk7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OU5iMkpwYkdWTlpXNTFMblJ6ZUM1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdRVUZCTUVJN1FVRkhSVHRCUVVOQk8wRkJRekJDTzBGQlJVazdRVUZEZUVJN1FVRkRVVHRCUVVOUE8wRkJRMmRDTzBGQlF6ZENPMEZCUTAwN1FVRkRPRUk3UVVGRE9VSTdRVUZEU2p0QlFVTnJSRHRCUVVONFF6dEJRVU5CTzBGQmVVSjZReXhOUVVGTkxGVkJRVlVzUjBGQlJ5eERRVUZETEVWQlEzcENMRkZCUVZFc1JVRkRVaXhSUVVGUkxFVkJRMUlzVjBGQlZ5eEZRVU5ZTEdGQlFXRXNSVUZEWWl4elFrRkJjMElzUlVGRGRFSXNkVUpCUVhWQ0xFVkJRM1pDTEZkQlFWY3NSVUZEV0N4dFFrRkJiVUlzUlVGRGJrSXNXVUZCV1N4RlFVTmFMR1ZCUVdVc1JVRkRaaXhOUVVGTkxFVkJRMDRzWlVGQlpTeEZRVU5tTEd0Q1FVRnJRaXhGUVVOc1FpeGxRVUZsTEVWQlEyWXNXVUZCV1N4RlFVTmFMR0ZCUVdFc1JVRkRZaXhuUWtGQlowSXNSMEZEUVN4RlFVRkZMRVZCUVVVN1NVRkRjRUlzVFVGQlRTeGhRVUZoTEVkQlFVY3NSMEZCUnl4RlFVRkZPMUZCUTNwQ0xFOUJRVThzUTBGRFRDeDNSRUZCUXl4dFJVRkJhMElzYTBKQlFVTXNTVUZCU1N4RlFVRkRMRXRCUVVzc1JVRkJReXhUUVVGVExFVkJRVU1zWVVGQllTeHBRa0ZEY0VRc2RVUkJRVU1zT0VOQlFVOHNhMEpCUVVNc1QwRkJUeXhGUVVGRExGRkJRVkVzWjBKQlEzUkNMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVU5hTEhkRVFVRkRMR3RFUVVGVExHdENRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRExGRkJRVkVzYVVKQlF5OUNMSGRFUVVGRExHdEVRVUZUTEd0Q1FVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFVkJRVVVzVTBGQlV5eEZRVUZETEhWQ1FVRjFRaXhwUWtGRGJFUXNkMFJCUVVNc01rTkJRVTBzYTBKQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1JVRkJSU3hUUVVGVExFVkJRVU1zWVVGQllTeHBRa0ZEZUVNc1QwRkJUeXhGUVVOU0xIVkVRVUZETEd0RVFVRlRMR3RDUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEdkQ1FVTm1MSFZFUVVGRExHOUVRVUZqTEVsQlEySXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkRaQ3hYUVVGWExFVkJRVVVzVVVGQlVTeERRVUZETEZkQlFWY3NSVUZEYWtNc1YwRkJWeXhGUVVGRkxGZEJRVmNzUlVGRGVFSXNZVUZCWVN4RlFVRkZMRU5CUVVNc1JVRkJSU3hYUVVGWExFVkJRVVVzUlVGQlJTeEZRVUZGTzNkRVFVTnFReXhoUVVGaExFTkJRVU03TkVSQlExb3NjMEpCUVhOQ0xFVkJRVVVzVjBGQlZ5eExRVUZMTEU5QlFVODdlVVJCUTJoRUxFTkJRVU1zUTBGQlF6dHZSRUZEVEN4RFFVRkRMRmRCUTBRc1dVRkRVU3hoUVVOTUxFVkJRMUlzWjBKQlFXZENMRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRkZCUVZFc1EwRkJReXhGUVVOeVJDeDFSRUZCUXl4dlJFRkJWU3hKUVVOVUxFOUJRVThzUlVGQlJTeFJRVUZSTEVOQlFVTXNZVUZCWVN4RlFVTXZRaXhSUVVGUkxFVkJRVVVzV1VGQldTeEZRVU4wUWl4TFFVRkxMRVZCUVVVc2QwTkJRVU1zUTBGQlF5eGpRVUZqTEVOQlFVTXNSVUZEZUVJc1VVRkJVU3hwUWtGRFVpeEZRVU5HTEhWRVFVRkRMREJFUVVGaExFbEJRMW9zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZEYkVJc1YwRkJWeXhGUVVGRkxGZEJRVmNzUlVGRGVFSXNVVUZCVVN4cFFrRkRVaXhGUVVOR0xIVkVRVUZETERCRVFVRmhMRWxCUTFvc1QwRkJUeXhGUVVGRkxGRkJRVkVzUTBGQlF5eFBRVUZQTEVWQlEzcENMRkZCUVZFc1JVRkJSU3hsUVVGbExFVkJRM3BDTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRVZCUXpOQ0xGRkJRVkVzVVVGRFVpeFhRVUZYTEVWQlFVVXNVVUZCVVN4RFFVRkRMRmRCUVZjc1YwRkRha01zWVVGRFVTeEZRVU5ZTEZkQlFWY3NZVUZEUml4RFFVTmlMRmxCUTA4c1JVRkRWaXgxUkVGQlF5eHRSRUZCVlN4SlFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUVVVc1NVRkJTU3hYUVVGSkxHRkJRMjVFTEVOQlEzUkNMRU5CUVVNN1NVRkRTaXhEUVVGRExFTkJRVU03U1VGRlJpeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFZEJRVWNzUlVGQlJUdFJRVU0xUWl4SlFVRkpMR1ZCUVdVc1JVRkJSVHRaUVVOdVFpeFBRVUZQTEVOQlEwd3NPRVZCUVVzc1UwRkJVeXhGUVVGRExIRkNRVUZ4UWl4blFrRkRha01zWVVGQllTeERRVUZETEZsQlFWa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eFpRVU16UXl4RFFVTlFMRU5CUVVNN1UwRkRTRHRSUVVORUxFOUJRVThzUTBGRFRDd3JSVUZCU3l4VFFVRlRMRVZCUVVNc2NVSkJRWEZDTEdsQ1FVTnFReXhoUVVGaExFTkJRVU1zV1VGQldTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFVkJRemxETEdGQlFXRXNRMEZCUXl4WlFVRlpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNSVUZETlVNc1lVRkJZU3hEUVVGRExGbEJRVmtzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZEYkVNc1lVRkJZU3hEUVVGRExGbEJRVmtzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZEYkVNc1lVRkJZU3hEUVVGRExGbEJRVmtzUTBGRGVrSXNVVUZCVVN4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4dlFrRkJiMElzUTBGRE1VUXNSVUZEUVN4aFFVRmhMRU5CUVVNc1dVRkJXU3hEUVVGRExIZENRVUYzUWl4RFFVRkRMR0ZCUTJwRUxFTkJRMUFzUTBGQlF6dEpRVU5LTEVOQlFVTXNRMEZCUXp0SlFVVkdMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NSMEZCUnl4RlFVRkZPMUZCUXk5Q0xFbEJRVWtzWlVGQlpTeEZRVUZGTzFsQlEyNUNMRTlCUVU4c1EwRkRUQ3c0U0VGRFJ5eHpRa0ZCYzBJc1JVRkJSU3hGUVVONFFpeDFRa0ZCZFVJc1JVRkJSU3haUVVONlFpeERRVU5LTEVOQlFVTTdVMEZEU0R0UlFVTkVMRTlCUVU4c1EwRkRUQ3c0U0VGRFJ5eGhRVUZoTEVOQlFVTXNXVUZCV1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhGUVVONlF5eGhRVUZoTEVOQlFVTXNXVUZCV1N4RFFVRkRMRmRCUVZjc1EwRkJReXhGUVVOMlF5eHpRa0ZCYzBJc1JVRkJSU3hGUVVONFFpeDFRa0ZCZFVJc1JVRkJSU3hGUVVONlFpeHRRa0ZCYlVJc1NVRkJTU3hEUVVOMFFpeDFSRUZCUXl4elJFRkJXU3hKUVVOWUxHVkJRV1VzUlVGQlJTeGxRVUZsTEVWQlEyaERMR2xDUVVGcFFpeEZRVUZGTEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3hGUVVNNVF5eFBRVUZQTEVWQlFVVXNiVUpCUVcxQ0xGZEJRelZDTEVOQlEwZ3NSVUZGUXl4MVJFRkJReXhyUjBGQmFVTXNTVUZEYUVNc1lVRkJZU3hGUVVGRkxHRkJRV0VzUlVGRE5VSXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkRiRUlzVjBGQlZ5eEZRVUZGTEZkQlFWY3NSVUZEZUVJc1dVRkJXU3hGUVVGRkxGbEJRVmtzVjBGRE1VSXNXVUZGU0N4RFFVTktMRU5CUVVNN1NVRkRTaXhEUVVGRExFTkJRVU03U1VGRFJpeFBRVUZQTEVOQlEwd3NPRWhCUTBjc1EwRkJReXhsUVVGbExFbEJRVWtzWVVGQllTeEZRVUZGTEVWQlEzQkRMRGhGUVVORkxGTkJRVk1zUlVGQlF5eG5Ra0ZCWjBJc1JVRkRNVUlzUzBGQlN5eEZRVUZGTzI5Q1FVTk1MRmxCUVZrc1JVRkJSU3dyUkVGQlpTeEhRVUZITEdkRlFVRm5RaXhIUVVGSExFTkJRVU03YjBKQlEzQkVMRlZCUVZVc1JVRkJSU3dyUkVGQlpTeEhRVUZITEdkRlFVRm5RaXhIUVVGSExFTkJRVU03YjBKQlEyeEVMRmRCUVZjc1JVRkJSU3dyUkVGQlpTeEhRVUZITEdkRlFVRm5RaXhIUVVGSExFTkJRVU03YVVKQlEzQkVMR2RDUVVWRUxIZEVRVUZETERKRFFVRk5MR3RDUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEdsQ1FVTm1MRkZCUVZFc1EwRkJReXhSUVVGUkxFdEJRVXNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVTm9ReXgxUkVGQlF5dzRRMEZCVHl4clFrRkJReXhUUVVGVExFVkJRVU1zYVVKQlFXbENMRVZCUVVNc1QwRkJUeXhGUVVGRExHVkJRV1VzWjBKQlF6RkVMRGhGUVVGTExGTkJRVk1zUlVGQlF5eGhRVUZoTEdkQ1FVTXhRaXgzUkVGQlF5eHJSRUZCVXl4clFrRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eHBRa0ZEWkN4dFFrRkJiVUlzUlVGQlJTeEZRVU55UWl4clFrRkJhMElzWVVGQmJFSXNhMEpCUVd0Q0xIVkNRVUZzUWl4clFrRkJhMElzUTBGQlJ5eEpRVUZKTEVWQlFVVXNVVUZCVVN4RFFVRkRMRVZCUTNCRExGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVOc1F5eHBSa0ZEUlN3MlJVRkJVeXgzUTBGQlF5eERRVUZETEhOQ1FVRnpRaXhEUVVGRExGZEJRVlVzUlVGRE5VTXNkVVJCUVVNc1owUkJRVkVzYTBKQlFVTXNUVUZCVFN4elFrRkRZaXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNN2QwUkJRMnBETERCRlFVRXdSVHQ1UkVGRGVrVXNUVUZCVFN4RFFVTk1MRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNc1EwRkRiRVE3ZVVSQlEwRXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFVkJRVVVzVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUXpOQ0xIVkVRVUZETEhWRVFVRmpMR05CUTFvc1lVRkJZU3hEUVVGRExGbEJRVmtzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSVHMwUkVGRE9VTXNSVUZCUlN4RlFVRkZMRkZCUVZFN2VVUkJRMklzUTBGQlF5eEpRVWhwUWl4UlFVRlJMRU5CU1Zvc1EwRkRiRUlzUTBGQlF5eFpRVU5MTEZsQlEwWXNRMEZEV2l4aFFVTlRMRmxCUTFJc1dVRkRSU3hEUVVOWUxFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRXRCUVVzc1QwRkJUenMwUWtGREwwSXNRMEZCUXl4bFFVRmxPelJDUVVOb1FpeHJSVUZCZDBJc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUXk5RExIVkVRVUZETERoRFFVRlBMR3RDUVVGRExGTkJRVk1zUlVGQlF5eHBRa0ZCYVVJc1JVRkJReXhQUVVGUExFVkJRVU1zYzBKQlFYTkNMR2RDUVVOcVJTeDFSRUZCUXl3d1JFRkJiMElzU1VGRGJrSXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkRiRUlzVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZEYkVJc1dVRkJXU3hGUVVGRkxHRkJRV0VzUTBGQlF5eFpRVUZaTEVWQlEzaERMRmRCUVZjc1JVRkJSU3hSUVVGUkxFTkJRVU1zVjBGQlZ5eFhRVU5xUXl4WlFVTk5MRU5CUTFnc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEZRVU5TTEd0R1FVRlJMRk5CUVZNc1JVRkJReXhoUVVGaExHbENRVU0xUWl4blFrRkJaMElzUlVGQlJTeEZRVU5zUWl4UlFVRlJMRU5CUVVNc1pVRkJaU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZGQlFWRXNTVUZCU1N4RFFVTnFSQ3hwUmtGRFJTeFRRVUZUTEVWQlFVTXNkMEpCUVhkQ0xFVkJRMnhETEU5QlFVOHNSVUZCUlN4SFFVRkhMRVZCUVVVN2QwTkJRMW9zVjBGQlZ5eHRRa0ZEVGl3MlJFRkJjVUlzUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZMRTFCUVUwc1EwRkJReXhGUVVOd1JDeERRVUZETzI5RFFVTk1MRU5CUVVNc1owSkJSVUVzZDBOQlFVTXNRMEZCUXl3MlFrRkJOa0lzUTBGQlF5eFpRVU14UWl4RFFVTldMR0ZCUTAwc1lVRkRSaXhaUVVOTUxGbEJRMHdzUTBGRFNpeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJOdmJYQnZibVZ1ZEhNdlRXOWlhV3hsVFdWdWRTNTBjM2cvTURoak5DSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdVbVZoWTNRZ1puSnZiU0JjSW5KbFlXTjBYQ0k3WEc1cGJYQnZjblFnZXlCQmNIQlRkR0YwWlNCOUlHWnliMjBnWENJdUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dRV04wYVc5dVRXRnVZV2RsY2lCOUlHWnliMjBnWENJdUxpOWhZM1JwYjI1ekwyMWhibUZuWlhKY0lqdGNibWx0Y0c5eWRDQjdJSFFnZlNCbWNtOXRJRndpTGk0dmFURTRibHdpTzF4dWFXMXdiM0owSUZOMFlXTnJJR1p5YjIwZ1hDSXVMMU4wWVdOclhDSTdYRzVwYlhCdmNuUWdleUJ6YUc5M1UyVnNaV04wWldSVGFHRndaVUZqZEdsdmJuTWdmU0JtY205dElGd2lMaTR2Wld4bGJXVnVkRndpTzF4dWFXMXdiM0owSUhzZ1RtOXVSR1ZzWlhSbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MElIMGdabkp2YlNCY0lpNHVMMlZzWlcxbGJuUXZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdJRVpwZUdWa1UybGtaVU52Ym5SaGFXNWxjaUI5SUdaeWIyMGdYQ0l1TDBacGVHVmtVMmxrWlVOdmJuUmhhVzVsY2x3aU8xeHVhVzF3YjNKMElIc2dTWE5zWVc1a0lIMGdabkp2YlNCY0lpNHZTWE5zWVc1a1hDSTdYRzVwYlhCdmNuUWdleUJJYVc1MFZtbGxkMlZ5SUgwZ1puSnZiU0JjSWk0dlNHbHVkRlpwWlhkbGNsd2lPMXh1YVcxd2IzSjBJSHNnWTJGc1kzVnNZWFJsVTJOeWIyeHNRMlZ1ZEdWeUlIMGdabkp2YlNCY0lpNHVMM05qWlc1bFhDSTdYRzVwYlhCdmNuUWdleUJUWld4bFkzUmxaRk5vWVhCbFFXTjBhVzl1Y3l3Z1UyaGhjR1Z6VTNkcGRHTm9aWElnZlNCbWNtOXRJRndpTGk5QlkzUnBiMjV6WENJN1hHNXBiWEJ2Y25RZ2V5QlRaV04wYVc5dUlIMGdabkp2YlNCY0lpNHZVMlZqZEdsdmJsd2lPMXh1YVcxd2IzSjBJRU52Ykd4aFlrSjFkSFJ2YmlCbWNtOXRJRndpTGk5RGIyeHNZV0pDZFhSMGIyNWNJanRjYm1sdGNHOXlkQ0I3SUZORFVrOU1URUpCVWw5WFNVUlVTQ3dnVTBOU1QweE1Ra0ZTWDAxQlVrZEpUaUI5SUdaeWIyMGdYQ0l1TGk5elkyVnVaUzl6WTNKdmJHeGlZWEp6WENJN1hHNXBiWEJ2Y25RZ2V5Qk1iMk5yUW5WMGRHOXVJSDBnWm5KdmJTQmNJaTR2VEc5amEwSjFkSFJ2Ymx3aU8xeHVhVzF3YjNKMElIc2dWWE5sY2t4cGMzUWdmU0JtY205dElGd2lMaTlWYzJWeVRHbHpkRndpTzF4dWFXMXdiM0owSUhzZ1FtRmphMmR5YjNWdVpGQnBZMnRsY2tGdVpFUmhjbXROYjJSbFZHOW5aMnhsSUgwZ1puSnZiU0JjSWk0dlFtRmphMmR5YjNWdVpGQnBZMnRsY2tGdVpFUmhjbXROYjJSbFZHOW5aMnhsWENJN1hHNXBiWEJ2Y25RZ2V5Qk1hV0p5WVhKNVFuVjBkRzl1SUgwZ1puSnZiU0JjSWk0dlRHbGljbUZ5ZVVKMWRIUnZibHdpTzF4dWFXMXdiM0owSUhzZ1VHVnVUVzlrWlVKMWRIUnZiaUI5SUdaeWIyMGdYQ0l1TDFCbGJrMXZaR1ZDZFhSMGIyNWNJanRjYmx4dWRIbHdaU0JOYjJKcGJHVk5aVzUxVUhKdmNITWdQU0I3WEc0Z0lHRndjRk4wWVhSbE9pQkJjSEJUZEdGMFpUdGNiaUFnWVdOMGFXOXVUV0Z1WVdkbGNqb2dRV04wYVc5dVRXRnVZV2RsY2p0Y2JpQWdjbVZ1WkdWeVNsTlBUa1Y0Y0c5eWRFUnBZV3h2WnpvZ0tDa2dQVDRnVW1WaFkzUXVVbVZoWTNST2IyUmxPMXh1SUNCeVpXNWtaWEpKYldGblpVVjRjRzl5ZEVScFlXeHZaem9nS0NrZ1BUNGdVbVZoWTNRdVVtVmhZM1JPYjJSbE8xeHVJQ0J6WlhSQmNIQlRkR0YwWlRvZ1VtVmhZM1F1UTI5dGNHOXVaVzUwUEdGdWVTd2dRWEJ3VTNSaGRHVStXMXdpYzJWMFUzUmhkR1ZjSWwwN1hHNGdJR1ZzWlcxbGJuUnpPaUJ5WldGa2IyNXNlU0JPYjI1RVpXeGxkR1ZrUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFR0Y2JpQWdiR2xpY21GeWVVMWxiblU2SUVwVFdDNUZiR1Z0Wlc1MElId2diblZzYkR0Y2JpQWdiMjVEYjJ4c1lXSkNkWFIwYjI1RGJHbGphejg2SUNncElEMCtJSFp2YVdRN1hHNGdJRzl1VEc5amExUnZaMmRzWlRvZ0tDa2dQVDRnZG05cFpEdGNiaUFnYjI1UVpXNU5iMlJsVkc5bloyeGxPaUFvS1NBOVBpQjJiMmxrTzF4dUlDQmpZVzUyWVhNNklFaFVUVXhEWVc1MllYTkZiR1Z0Wlc1MElId2diblZzYkR0Y2JpQWdhWE5EYjJ4c1lXSnZjbUYwYVc1bk9pQmliMjlzWldGdU8xeHVJQ0J5Wlc1a1pYSkRkWE4wYjIxR2IyOTBaWEkvT2lBb2FYTk5iMkpwYkdVNklHSnZiMnhsWVc0c0lHRndjRk4wWVhSbE9pQkJjSEJUZEdGMFpTa2dQVDRnU2xOWUxrVnNaVzFsYm5RN1hHNGdJSFpwWlhkTmIyUmxSVzVoWW14bFpEb2dZbTl2YkdWaGJqdGNiaUFnYzJodmQxUm9aVzFsUW5SdU9pQmliMjlzWldGdU8xeHVJQ0J2YmtsdFlXZGxRV04wYVc5dU9pQW9aR0YwWVRvZ2V5QnBibk5sY25SUGJrTmhiblpoYzBScGNtVmpkR3g1T2lCaWIyOXNaV0Z1SUgwcElEMCtJSFp2YVdRN1hHNGdJSEpsYm1SbGNsUnZjRkpwWjJoMFZVay9PaUFvWEc0Z0lDQWdhWE5OYjJKcGJHVTZJR0p2YjJ4bFlXNHNYRzRnSUNBZ1lYQndVM1JoZEdVNklFRndjRk4wWVhSbExGeHVJQ0FwSUQwK0lFcFRXQzVGYkdWdFpXNTBJSHdnYm5Wc2JEdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JOYjJKcGJHVk5aVzUxSUQwZ0tIdGNiaUFnWVhCd1UzUmhkR1VzWEc0Z0lHVnNaVzFsYm5SekxGeHVJQ0JzYVdKeVlYSjVUV1Z1ZFN4Y2JpQWdZV04wYVc5dVRXRnVZV2RsY2l4Y2JpQWdjbVZ1WkdWeVNsTlBUa1Y0Y0c5eWRFUnBZV3h2Wnl4Y2JpQWdjbVZ1WkdWeVNXMWhaMlZGZUhCdmNuUkVhV0ZzYjJjc1hHNGdJSE5sZEVGd2NGTjBZWFJsTEZ4dUlDQnZia052Ykd4aFlrSjFkSFJ2YmtOc2FXTnJMRnh1SUNCdmJreHZZMnRVYjJkbmJHVXNYRzRnSUc5dVVHVnVUVzlrWlZSdloyZHNaU3hjYmlBZ1kyRnVkbUZ6TEZ4dUlDQnBjME52Ykd4aFltOXlZWFJwYm1jc1hHNGdJSEpsYm1SbGNrTjFjM1J2YlVadmIzUmxjaXhjYmlBZ2RtbGxkMDF2WkdWRmJtRmliR1ZrTEZ4dUlDQnphRzkzVkdobGJXVkNkRzRzWEc0Z0lHOXVTVzFoWjJWQlkzUnBiMjRzWEc0Z0lISmxibVJsY2xSdmNGSnBaMmgwVlVrc1hHNTlPaUJOYjJKcGJHVk5aVzUxVUhKdmNITXBJRDArSUh0Y2JpQWdZMjl1YzNRZ2NtVnVaR1Z5Vkc5dmJHSmhjaUE5SUNncElEMCtJSHRjYmlBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ1BFWnBlR1ZrVTJsa1pVTnZiblJoYVc1bGNpQnphV1JsUFZ3aWRHOXdYQ0lnWTJ4aGMzTk9ZVzFsUFZ3aVFYQndMWFJ2Y0MxaVlYSmNJajVjYmlBZ0lDQWdJQ0FnUEZObFkzUnBiMjRnYUdWaFpHbHVaejFjSW5Ob1lYQmxjMXdpUGx4dUlDQWdJQ0FnSUNBZ0lIc29hR1ZoWkdsdVp5a2dQVDRnS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdQRk4wWVdOckxrTnZiQ0JuWVhBOWV6UjlJR0ZzYVdkdVBWd2lZMlZ1ZEdWeVhDSStYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEeFRkR0ZqYXk1U2IzY2daMkZ3UFhzeGZTQmpiR0Z6YzA1aGJXVTlYQ0pCY0hBdGRHOXZiR0poY2kxamIyNTBZV2x1WlhKY0lqNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThTWE5zWVc1a0lIQmhaR1JwYm1jOWV6RjlJR05zWVhOelRtRnRaVDFjSWtGd2NDMTBiMjlzWW1GeVhDSStYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I3YUdWaFpHbHVaMzFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4VGRHRmpheTVTYjNjZ1oyRndQWHN4ZlQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQRk5vWVhCbGMxTjNhWFJqYUdWeVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGdWRtRnpQWHRqWVc1MllYTjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEZSNWNHVTllMkZ3Y0ZOMFlYUmxMbVZzWlcxbGJuUlVlWEJsZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5sZEVGd2NGTjBZWFJsUFh0elpYUkJjSEJUZEdGMFpYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrbHRZV2RsUVdOMGFXOXVQWHNvZXlCd2IybHVkR1Z5Vkhsd1pTQjlLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmJrbHRZV2RsUVdOMGFXOXVLSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVc1elpYSjBUMjVEWVc1MllYTkVhWEpsWTNSc2VUb2djRzlwYm5SbGNsUjVjR1VnSVQwOUlGd2liVzkxYzJWY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMTlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMMU4wWVdOckxsSnZkejVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDBsemJHRnVaRDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I3Y21WdVpHVnlWRzl3VW1sbmFIUlZTU0FtSmlCeVpXNWtaWEpVYjNCU2FXZG9kRlZKS0hSeWRXVXNJR0Z3Y0ZOMFlYUmxLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4VEc5amEwSjFkSFJ2Ymx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyaGxZMnRsWkQxN1lYQndVM1JoZEdVdVpXeGxiV1Z1ZEV4dlkydGxaSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVEyaGhibWRsUFh0dmJreHZZMnRVYjJkbmJHVjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYVhSc1pUMTdkQ2hjSW5SdmIyeENZWEl1Ykc5amExd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdselRXOWlhV3hsWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFRHbGljbUZ5ZVVKMWRIUnZibHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWVhCd1UzUmhkR1U5ZTJGd2NGTjBZWFJsZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyVjBRWEJ3VTNSaGRHVTllM05sZEVGd2NGTjBZWFJsZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FYTk5iMkpwYkdWY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeFFaVzVOYjJSbFFuVjBkRzl1WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamFHVmphMlZrUFh0aGNIQlRkR0YwWlM1d1pXNU5iMlJsZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2IyNURhR0Z1WjJVOWUyOXVVR1Z1VFc5a1pWUnZaMmRzWlgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUnBkR3hsUFh0MEtGd2lkRzl2YkVKaGNpNXdaVzVOYjJSbFhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVhOTmIySnBiR1ZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhCbGJrUmxkR1ZqZEdWa1BYdGhjSEJUZEdGMFpTNXdaVzVFWlhSbFkzUmxaSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDFOMFlXTnJMbEp2ZHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZTJ4cFluSmhjbmxOWlc1MWZWeHVJQ0FnSUNBZ0lDQWdJQ0FnUEM5VGRHRmpheTVEYjJ3K1hHNGdJQ0FnSUNBZ0lDQWdLWDFjYmlBZ0lDQWdJQ0FnUEM5VFpXTjBhVzl1UGx4dUlDQWdJQ0FnSUNBOFNHbHVkRlpwWlhkbGNpQmhjSEJUZEdGMFpUMTdZWEJ3VTNSaGRHVjlJR1ZzWlcxbGJuUnpQWHRsYkdWdFpXNTBjMzBnYVhOTmIySnBiR1U5ZTNSeWRXVjlJQzgrWEc0Z0lDQWdJQ0E4TDBacGVHVmtVMmxrWlVOdmJuUmhhVzVsY2o1Y2JpQWdJQ0FwTzF4dUlDQjlPMXh1WEc0Z0lHTnZibk4wSUhKbGJtUmxja0Z3Y0ZSdmIyeGlZWElnUFNBb0tTQTlQaUI3WEc0Z0lDQWdhV1lnS0hacFpYZE5iMlJsUlc1aFlteGxaQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJQ0FnUEdScGRpQmpiR0Z6YzA1aGJXVTlYQ0pCY0hBdGRHOXZiR0poY2kxamIyNTBaVzUwWENJK1hHNGdJQ0FnSUNBZ0lDQWdlMkZqZEdsdmJrMWhibUZuWlhJdWNtVnVaR1Z5UVdOMGFXOXVLRndpZEc5bloyeGxRMkZ1ZG1GelRXVnVkVndpS1gxY2JpQWdJQ0FnSUNBZ1BDOWthWFkrWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ1BHUnBkaUJqYkdGemMwNWhiV1U5WENKQmNIQXRkRzl2YkdKaGNpMWpiMjUwWlc1MFhDSStYRzRnSUNBZ0lDQWdJSHRoWTNScGIyNU5ZVzVoWjJWeUxuSmxibVJsY2tGamRHbHZiaWhjSW5SdloyZHNaVU5oYm5aaGMwMWxiblZjSWlsOVhHNGdJQ0FnSUNBZ0lIdGhZM1JwYjI1TllXNWhaMlZ5TG5KbGJtUmxja0ZqZEdsdmJpaGNJblJ2WjJkc1pVVmthWFJOWlc1MVhDSXBmVnh1SUNBZ0lDQWdJQ0I3WVdOMGFXOXVUV0Z1WVdkbGNpNXlaVzVrWlhKQlkzUnBiMjRvWENKMWJtUnZYQ0lwZlZ4dUlDQWdJQ0FnSUNCN1lXTjBhVzl1VFdGdVlXZGxjaTV5Wlc1a1pYSkJZM1JwYjI0b1hDSnlaV1J2WENJcGZWeHVJQ0FnSUNBZ0lDQjdZV04wYVc5dVRXRnVZV2RsY2k1eVpXNWtaWEpCWTNScGIyNG9YRzRnSUNBZ0lDQWdJQ0FnWVhCd1UzUmhkR1V1YlhWc2RHbEZiR1Z0Wlc1MElEOGdYQ0ptYVc1aGJHbDZaVndpSURvZ1hDSmtkWEJzYVdOaGRHVlRaV3hsWTNScGIyNWNJaXhjYmlBZ0lDQWdJQ0FnS1gxY2JpQWdJQ0FnSUNBZ2UyRmpkR2x2YmsxaGJtRm5aWEl1Y21WdVpHVnlRV04wYVc5dUtGd2laR1ZzWlhSbFUyVnNaV04wWldSRmJHVnRaVzUwYzF3aUtYMWNiaUFnSUNBZ0lEd3ZaR2wyUGx4dUlDQWdJQ2s3WEc0Z0lIMDdYRzVjYmlBZ1kyOXVjM1FnY21WdVpHVnlRMkZ1ZG1GelFXTjBhVzl1Y3lBOUlDZ3BJRDArSUh0Y2JpQWdJQ0JwWmlBb2RtbGxkMDF2WkdWRmJtRmliR1ZrS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnSUNBOFBseHVJQ0FnSUNBZ0lDQWdJSHR5Wlc1a1pYSktVMDlPUlhod2IzSjBSR2xoYkc5bktDbDlYRzRnSUNBZ0lDQWdJQ0FnZTNKbGJtUmxja2x0WVdkbFJYaHdiM0owUkdsaGJHOW5LQ2w5WEc0Z0lDQWdJQ0FnSUR3dlBseHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJRHcrWEc0Z0lDQWdJQ0FnSUh0aFkzUnBiMjVOWVc1aFoyVnlMbkpsYm1SbGNrRmpkR2x2YmloY0ltTnNaV0Z5UTJGdWRtRnpYQ0lwZlZ4dUlDQWdJQ0FnSUNCN1lXTjBhVzl1VFdGdVlXZGxjaTV5Wlc1a1pYSkJZM1JwYjI0b1hDSnNiMkZrVTJObGJtVmNJaWw5WEc0Z0lDQWdJQ0FnSUh0eVpXNWtaWEpLVTA5T1JYaHdiM0owUkdsaGJHOW5LQ2w5WEc0Z0lDQWdJQ0FnSUh0eVpXNWtaWEpKYldGblpVVjRjRzl5ZEVScFlXeHZaeWdwZlZ4dUlDQWdJQ0FnSUNCN2IyNURiMnhzWVdKQ2RYUjBiMjVEYkdsamF5QW1KaUFvWEc0Z0lDQWdJQ0FnSUNBZ1BFTnZiR3hoWWtKMWRIUnZibHh1SUNBZ0lDQWdJQ0FnSUNBZ2FYTkRiMnhzWVdKdmNtRjBhVzVuUFh0cGMwTnZiR3hoWW05eVlYUnBibWQ5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMnhzWVdKdmNtRjBiM0pEYjNWdWREMTdZWEJ3VTNSaGRHVXVZMjlzYkdGaWIzSmhkRzl5Y3k1emFYcGxmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2IyNURiR2xqYXoxN2IyNURiMnhzWVdKQ2RYUjBiMjVEYkdsamEzMWNiaUFnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBcGZWeHVJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnUEVKaFkydG5jbTkxYm1SUWFXTnJaWEpCYm1SRVlYSnJUVzlrWlZSdloyZHNaVnh1SUNBZ0lDQWdJQ0FnSUNBZ1lXTjBhVzl1VFdGdVlXZGxjajE3WVdOMGFXOXVUV0Z1WVdkbGNuMWNiaUFnSUNBZ0lDQWdJQ0FnSUdGd2NGTjBZWFJsUFh0aGNIQlRkR0YwWlgxY2JpQWdJQ0FnSUNBZ0lDQWdJSE5sZEVGd2NGTjBZWFJsUFh0elpYUkJjSEJUZEdGMFpYMWNiaUFnSUNBZ0lDQWdJQ0FnSUhOb2IzZFVhR1Z0WlVKMGJqMTdjMmh2ZDFSb1pXMWxRblJ1ZlZ4dUlDQWdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJRHd2UGx4dUlDQWdJQ2s3WEc0Z0lIMDdYRzRnSUhKbGRIVnliaUFvWEc0Z0lDQWdQRDVjYmlBZ0lDQWdJSHNoZG1sbGQwMXZaR1ZGYm1GaWJHVmtJQ1ltSUhKbGJtUmxjbFJ2YjJ4aVlYSW9LWDFjYmlBZ0lDQWdJRHhrYVhaY2JpQWdJQ0FnSUNBZ1kyeGhjM05PWVcxbFBWd2lRWEJ3TFdKdmRIUnZiUzFpWVhKY0lseHVJQ0FnSUNBZ0lDQnpkSGxzWlQxN2UxeHVJQ0FnSUNBZ0lDQWdJRzFoY21kcGJrSnZkSFJ2YlRvZ1UwTlNUMHhNUWtGU1gxZEpSRlJJSUNzZ1UwTlNUMHhNUWtGU1gwMUJVa2RKVGlBcUlESXNYRzRnSUNBZ0lDQWdJQ0FnYldGeVoybHVUR1ZtZERvZ1UwTlNUMHhNUWtGU1gxZEpSRlJJSUNzZ1UwTlNUMHhNUWtGU1gwMUJVa2RKVGlBcUlESXNYRzRnSUNBZ0lDQWdJQ0FnYldGeVoybHVVbWxuYUhRNklGTkRVazlNVEVKQlVsOVhTVVJVU0NBcklGTkRVazlNVEVKQlVsOU5RVkpIU1U0Z0tpQXlMRnh1SUNBZ0lDQWdJQ0I5ZlZ4dUlDQWdJQ0FnUGx4dUlDQWdJQ0FnSUNBOFNYTnNZVzVrSUhCaFpHUnBibWM5ZXpCOVBseHVJQ0FnSUNBZ0lDQWdJSHRoY0hCVGRHRjBaUzV2Y0dWdVRXVnVkU0E5UFQwZ1hDSmpZVzUyWVhOY0lpQS9JQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFRaV04wYVc5dUlHTnNZWE56VG1GdFpUMWNJa0Z3Y0MxdGIySnBiR1V0YldWdWRWd2lJR2hsWVdScGJtYzlYQ0pqWVc1MllYTkJZM1JwYjI1elhDSStYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEeGthWFlnWTJ4aGMzTk9ZVzFsUFZ3aWNHRnVaV3hEYjJ4MWJXNWNJajVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4VTNSaFkyc3VRMjlzSUdkaGNEMTdOSDArWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCN2NtVnVaR1Z5UTJGdWRtRnpRV04wYVc5dWN5Z3BmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZTNKbGJtUmxja04xYzNSdmJVWnZiM1JsY2o4dUtIUnlkV1VzSUdGd2NGTjBZWFJsS1gxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIdGhjSEJUZEdGMFpTNWpiMnhzWVdKdmNtRjBiM0p6TG5OcGVtVWdQaUF3SUNZbUlDaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEdacFpXeGtjMlYwUGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHhzWldkbGJtUStlM1FvWENKc1lXSmxiSE11WTI5c2JHRmliM0poZEc5eWMxd2lLWDA4TDJ4bFoyVnVaRDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThWWE5sY2t4cGMzUWdiVzlpYVd4bFBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2UwRnljbUY1TG1aeWIyMG9ZWEJ3VTNSaGRHVXVZMjlzYkdGaWIzSmhkRzl5Y3lsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdRMjlzYkdGaWIzSmhkRzl5SUdseklHVnBkR2hsY2lCdWIzUWdhVzVwZEdsaGJHbDZaV1FnYjNJZ2FYTWdZV04wZFdGc2JIa2dkR2hsSUdOMWNuSmxiblFnZFhObGNpNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMbVpwYkhSbGNpaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FvVzE4c0lHTnNhV1Z1ZEYwcElEMCtJRTlpYW1WamRDNXJaWGx6S0dOc2FXVnVkQ2t1YkdWdVozUm9JQ0U5UFNBd0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzV0WVhBb0tGdGpiR2xsYm5SSlpDd2dZMnhwWlc1MFhTa2dQVDRnS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeFNaV0ZqZEM1R2NtRm5iV1Z1ZENCclpYazllMk5zYVdWdWRFbGtmVDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIdGhZM1JwYjI1TllXNWhaMlZ5TG5KbGJtUmxja0ZqZEdsdmJpaGNJbWR2Vkc5RGIyeHNZV0p2Y21GMGIzSmNJaXdnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWkRvZ1kyeHBaVzUwU1dRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5S1gxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMMUpsWVdOMExrWnlZV2R0Wlc1MFBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXBLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMMVZ6WlhKTWFYTjBQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwyWnBaV3hrYzJWMFBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDFOMFlXTnJMa052YkQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnUEM5a2FYWStYRzRnSUNBZ0lDQWdJQ0FnSUNBOEwxTmxZM1JwYjI0K1hHNGdJQ0FnSUNBZ0lDQWdLU0E2SUdGd2NGTjBZWFJsTG05d1pXNU5aVzUxSUQwOVBTQmNJbk5vWVhCbFhDSWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDRjJhV1YzVFc5a1pVVnVZV0pzWldRZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUhOb2IzZFRaV3hsWTNSbFpGTm9ZWEJsUVdOMGFXOXVjeWhoY0hCVGRHRjBaU3dnWld4bGJXVnVkSE1wSUQ4Z0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnUEZObFkzUnBiMjRnWTJ4aGMzTk9ZVzFsUFZ3aVFYQndMVzF2WW1sc1pTMXRaVzUxWENJZ2FHVmhaR2x1WnoxY0luTmxiR1ZqZEdWa1UyaGhjR1ZCWTNScGIyNXpYQ0krWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRHhUWld4bFkzUmxaRk5vWVhCbFFXTjBhVzl1YzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdGd2NGTjBZWFJsUFh0aGNIQlRkR0YwWlgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJHVnRaVzUwY3oxN1pXeGxiV1Z1ZEhOOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnVaR1Z5UVdOMGFXOXVQWHRoWTNScGIyNU5ZVzVoWjJWeUxuSmxibVJsY2tGamRHbHZibjFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBWSGx3WlQxN1lYQndVM1JoZEdVdVpXeGxiV1Z1ZEZSNWNHVjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBOEwxTmxZM1JwYjI0K1hHNGdJQ0FnSUNBZ0lDQWdLU0E2SUc1MWJHeDlYRzRnSUNBZ0lDQWdJQ0FnUEdadmIzUmxjaUJqYkdGemMwNWhiV1U5WENKQmNIQXRkRzl2YkdKaGNsd2lQbHh1SUNBZ0lDQWdJQ0FnSUNBZ2UzSmxibVJsY2tGd2NGUnZiMnhpWVhJb0tYMWNiaUFnSUNBZ0lDQWdJQ0FnSUh0aGNIQlRkR0YwWlM1elkzSnZiR3hsWkU5MWRITnBaR1VnSmlZZ0lXRndjRk4wWVhSbExtOXdaVzVOWlc1MUlDWW1JQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQR0oxZEhSdmJseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnNZWE56VG1GdFpUMWNJbk5qY205c2JDMWlZV05yTFhSdkxXTnZiblJsYm5SY0lseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHOXVRMnhwWTJzOWV5Z3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxkRUZ3Y0ZOMFlYUmxLSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0xpNHVZMkZzWTNWc1lYUmxVMk55YjJ4c1EyVnVkR1Z5S0dWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlN3Z1kyRnVkbUZ6S1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDE5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I3ZENoY0ltSjFkSFJ2Ym5NdWMyTnliMnhzUW1GamExUnZRMjl1ZEdWdWRGd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQQzlpZFhSMGIyNCtYRzRnSUNBZ0lDQWdJQ0FnSUNBcGZWeHVJQ0FnSUNBZ0lDQWdJRHd2Wm05dmRHVnlQbHh1SUNBZ0lDQWdJQ0E4TDBsemJHRnVaRDVjYmlBZ0lDQWdJRHd2WkdsMlBseHVJQ0FnSUR3dlBseHVJQ0FwTzF4dWZUdGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL01vYmlsZU1lbnUudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL01vZGFsLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL01vZGFsLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiTW9kYWxcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBNb2RhbClcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX01vZGFsX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vTW9kYWwuc2NzcyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Nb2RhbC5zY3NzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Nb2RhbF9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX01vZGFsX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdCAqLyBcXFwicmVhY3RcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC1kb20gKi8gXFxcInJlYWN0LWRvbVxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIGNsc3ggKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jbHN4L2Rpc3QvY2xzeC5tLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9rZXlzICovIFxcXCIuLi8uLi9rZXlzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9BcHBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vQXBwICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0FwcC50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29uc3RhbnRzICovIFxcXCIuLi8uLi9jb25zdGFudHMudHNcXFwiKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBNb2RhbCA9IChwcm9wcykgPT4ge1xcbiAgICBjb25zdCB7IHRoZW1lID0gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLlRIRU1FLkxJR0hULCBjbG9zZU9uQ2xpY2tPdXRzaWRlID0gdHJ1ZSB9ID0gcHJvcHM7XFxuICAgIGNvbnN0IG1vZGFsUm9vdCA9IHVzZUJvZHlSb290KHRoZW1lKTtcXG4gICAgaWYgKCFtb2RhbFJvb3QpIHtcXG4gICAgICAgIHJldHVybiBudWxsO1xcbiAgICB9XFxuICAgIGNvbnN0IGhhbmRsZUtleWRvd24gPSAoZXZlbnQpID0+IHtcXG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uS0VZUy5FU0NBUEUpIHtcXG4gICAgICAgICAgICBldmVudC5uYXRpdmVFdmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcXG4gICAgICAgICAgICBwcm9wcy5vbkNsb3NlUmVxdWVzdCgpO1xcbiAgICAgICAgfVxcbiAgICB9O1xcbiAgICByZXR1cm4gKDAscmVhY3RfZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uY3JlYXRlUG9ydGFsKSgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiAoMCxjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bXFxcImRlZmF1bHRcXFwiXSkoXFxcIk1vZGFsXFxcIiwgcHJvcHMuY2xhc3NOYW1lKSwgcm9sZTogXFxcImRpYWxvZ1xcXCIsIFxcXCJhcmlhLW1vZGFsXFxcIjogXFxcInRydWVcXFwiLCBvbktleURvd246IGhhbmRsZUtleWRvd24sIFxcXCJhcmlhLWxhYmVsbGVkYnlcXFwiOiBwcm9wcy5sYWJlbGxlZEJ5IH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIHsgY2xhc3NOYW1lOiBcXFwiTW9kYWxfX2JhY2tncm91bmRcXFwiLCBvbkNsaWNrOiBjbG9zZU9uQ2xpY2tPdXRzaWRlID8gcHJvcHMub25DbG9zZVJlcXVlc3QgOiB1bmRlZmluZWQgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiTW9kYWxfX2NvbnRlbnRcXFwiLCBzdHlsZTogeyBcXFwiLS1tYXgtd2lkdGhcXFwiOiBgJHtwcm9wcy5tYXhXaWR0aH1weGAgfSwgdGFiSW5kZXg6IDAgfSwgeyBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSksIHZvaWQgMCldIH0pLCB2b2lkIDApLCBtb2RhbFJvb3QpO1xcbn07XFxuY29uc3QgdXNlQm9keVJvb3QgPSAodGhlbWUpID0+IHtcXG4gICAgY29uc3QgW2Rpdiwgc2V0RGl2XSA9ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udXNlU3RhdGUpKG51bGwpO1xcbiAgICBjb25zdCBpc01vYmlsZSA9ICgwLF9BcHBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy51c2VJc01vYmlsZSkoKTtcXG4gICAgY29uc3QgaXNNb2JpbGVSZWYgPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnVzZVJlZikoaXNNb2JpbGUpO1xcbiAgICBpc01vYmlsZVJlZi5jdXJyZW50ID0gaXNNb2JpbGU7XFxuICAgIGNvbnN0IHsgY29udGFpbmVyOiBleGNhbGlkcmF3Q29udGFpbmVyIH0gPSAoMCxfQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udXNlRXhjYWxpZHJhd0NvbnRhaW5lcikoKTtcXG4gICAgKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy51c2VMYXlvdXRFZmZlY3QpKCgpID0+IHtcXG4gICAgICAgIGlmIChkaXYpIHtcXG4gICAgICAgICAgICBkaXYuY2xhc3NMaXN0LnRvZ2dsZShcXFwiZXhjYWxpZHJhdy0tbW9iaWxlXFxcIiwgaXNNb2JpbGUpO1xcbiAgICAgICAgfVxcbiAgICB9LCBbZGl2LCBpc01vYmlsZV0pO1xcbiAgICAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnVzZUxheW91dEVmZmVjdCkoKCkgPT4ge1xcbiAgICAgICAgY29uc3QgaXNEYXJrVGhlbWUgPSAhIShleGNhbGlkcmF3Q29udGFpbmVyID09PSBudWxsIHx8IGV4Y2FsaWRyYXdDb250YWluZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4Y2FsaWRyYXdDb250YWluZXIuY2xhc3NMaXN0LmNvbnRhaW5zKFxcXCJ0aGVtZS0tZGFya1xcXCIpKSB8fFxcbiAgICAgICAgICAgIHRoZW1lID09PSBcXFwiZGFya1xcXCI7XFxuICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFxcXCJkaXZcXFwiKTtcXG4gICAgICAgIGRpdi5jbGFzc0xpc3QuYWRkKFxcXCJleGNhbGlkcmF3XFxcIiwgXFxcImV4Y2FsaWRyYXctbW9kYWwtY29udGFpbmVyXFxcIik7XFxuICAgICAgICBkaXYuY2xhc3NMaXN0LnRvZ2dsZShcXFwiZXhjYWxpZHJhdy0tbW9iaWxlXFxcIiwgaXNNb2JpbGVSZWYuY3VycmVudCk7XFxuICAgICAgICBpZiAoaXNEYXJrVGhlbWUpIHtcXG4gICAgICAgICAgICBkaXYuY2xhc3NMaXN0LmFkZChcXFwidGhlbWUtLWRhcmtcXFwiKTtcXG4gICAgICAgICAgICBkaXYuY2xhc3NMaXN0LmFkZChcXFwidGhlbWUtLWRhcmstYmFja2dyb3VuZC1ub25lXFxcIik7XFxuICAgICAgICB9XFxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7XFxuICAgICAgICBzZXREaXYoZGl2KTtcXG4gICAgICAgIHJldHVybiAoKSA9PiB7XFxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpO1xcbiAgICAgICAgfTtcXG4gICAgfSwgW2V4Y2FsaWRyYXdDb250YWluZXIsIHRoZW1lXSk7XFxuICAgIHJldHVybiBkaXY7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OU5iMlJoYkM1MGMzZ3Vhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3p0QlFVRnpRanRCUVVVeVF6dEJRVU40UWp0QlFVTnFRanRCUVVOUE8wRkJRelpDTzBGQlJYWkNPMEZCUlRsQ0xFMUJRVTBzUzBGQlN5eEhRVUZITEVOQlFVTXNTMEZSY2tJc1JVRkJSU3hGUVVGRk8wbEJRMGdzVFVGQlRTeEZRVUZGTEV0QlFVc3NSMEZCUnl4dFJFRkJWeXhGUVVGRkxHMUNRVUZ0UWl4SFFVRkhMRWxCUVVrc1JVRkJSU3hIUVVGSExFdEJRVXNzUTBGQlF6dEpRVU5zUlN4TlFVRk5MRk5CUVZNc1IwRkJSeXhYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdTVUZGY2tNc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJUdFJRVU5rTEU5QlFVOHNTVUZCU1N4RFFVRkRPMHRCUTJJN1NVRkZSQ3hOUVVGTkxHRkJRV0VzUjBGQlJ5eERRVUZETEV0QlFUQkNMRVZCUVVVc1JVRkJSVHRSUVVOdVJDeEpRVUZKTEV0QlFVc3NRMEZCUXl4SFFVRkhMRXRCUVVzc09FTkJRVmNzUlVGQlJUdFpRVU0zUWl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExIZENRVUYzUWl4RlFVRkZMRU5CUVVNN1dVRkROME1zUzBGQlN5eERRVUZETEdWQlFXVXNSVUZCUlN4RFFVRkRPMWxCUTNoQ0xFdEJRVXNzUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0VFFVTjRRanRKUVVOSUxFTkJRVU1zUTBGQlF6dEpRVVZHTEU5QlFVOHNkVVJCUVZrc1EwRkRha0lzSzBWQlEwVXNVMEZCVXl4RlFVRkZMR2RFUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1JVRkRla01zU1VGQlNTeEZRVUZETEZGQlFWRXNaMEpCUTBZc1RVRkJUU3hGUVVOcVFpeFRRVUZUTEVWQlFVVXNZVUZCWVN4eFFrRkRVQ3hMUVVGTExFTkJRVU1zVlVGQlZTeHBRa0ZGYWtNc1owVkJRMFVzVTBGQlV5eEZRVUZETEcxQ1FVRnRRaXhGUVVNM1FpeFBRVUZQTEVWQlFVVXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zVjBGRE1VUXNSVUZEVUN3NFJVRkRSU3hUUVVGVExFVkJRVU1zWjBKQlFXZENMRVZCUXpGQ0xFdEJRVXNzUlVGQlJTeEZRVUZGTEdGQlFXRXNSVUZCUlN4SFFVRkhMRXRCUVVzc1EwRkJReXhSUVVGUkxFbEJRVWtzUlVGQlJTeEZRVU12UXl4UlFVRlJMRVZCUVVVc1EwRkJReXhuUWtGRlZpeExRVUZMTEVOQlFVTXNVVUZCVVN4WlFVTllMR0ZCUTBZc1JVRkRUaXhUUVVGVExFTkJRMVlzUTBGQlF6dEJRVU5LTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc1YwRkJWeXhIUVVGSExFTkJRVU1zUzBGQmQwSXNSVUZCUlN4RlFVRkZPMGxCUXk5RExFMUJRVTBzUTBGQlF5eEhRVUZITEVWQlFVVXNUVUZCVFN4RFFVRkRMRWRCUVVjc0swTkJRVkVzUTBGQmQwSXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkZOVVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NhVVJCUVZjc1JVRkJSU3hEUVVGRE8wbEJReTlDTEUxQlFVMHNWMEZCVnl4SFFVRkhMRFpEUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdTVUZEY2tNc1YwRkJWeXhEUVVGRExFOUJRVThzUjBGQlJ5eFJRVUZSTEVOQlFVTTdTVUZGTDBJc1RVRkJUU3hGUVVGRkxGTkJRVk1zUlVGQlJTeHRRa0ZCYlVJc1JVRkJSU3hIUVVGSExEUkVRVUZ6UWl4RlFVRkZMRU5CUVVNN1NVRkZjRVVzYzBSQlFXVXNRMEZCUXl4SFFVRkhMRVZCUVVVN1VVRkRia0lzU1VGQlNTeEhRVUZITEVWQlFVVTdXVUZEVUN4SFFVRkhMRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eHZRa0ZCYjBJc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dFRRVU4wUkR0SlFVTklMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUlVGQlJTeFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlhCQ0xITkVRVUZsTEVOQlFVTXNSMEZCUnl4RlFVRkZPMUZCUTI1Q0xFMUJRVTBzVjBGQlZ5eEhRVU5tTEVOQlFVTXNRMEZCUXl4dlFrRkJiVUlzWVVGQmJrSXNiVUpCUVcxQ0xIVkNRVUZ1UWl4dFFrRkJiVUlzUTBGQlJTeFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMR0ZCUVdFc1EwRkJRenRaUVVONFJDeExRVUZMTEV0QlFVc3NUVUZCVFN4RFFVRkRPMUZCUTI1Q0xFMUJRVTBzUjBGQlJ5eEhRVUZITEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRk1VTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zV1VGQldTeEZRVUZGTERSQ1FVRTBRaXhEUVVGRExFTkJRVU03VVVGRE9VUXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zYjBKQlFXOUNMRVZCUVVVc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlJXaEZMRWxCUVVrc1YwRkJWeXhGUVVGRk8xbEJRMllzUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03V1VGRGFrTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zTmtKQlFUWkNMRU5CUVVNc1EwRkJRenRUUVVOc1JEdFJRVU5FTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlJTOUNMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVVZhTEU5QlFVOHNSMEZCUnl4RlFVRkZPMWxCUTFZc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRha01zUTBGQlF5eERRVUZETzBsQlEwb3NRMEZCUXl4RlFVRkZMRU5CUVVNc2JVSkJRVzFDTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWcVF5eFBRVUZQTEVkQlFVY3NRMEZCUXp0QlFVTmlMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5amIyMXdiMjVsYm5SekwwMXZaR0ZzTG5SemVEOWtOV05tSWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCY0lpNHZUVzlrWVd3dWMyTnpjMXdpTzF4dVhHNXBiWEJ2Y25RZ1VtVmhZM1FzSUhzZ2RYTmxVM1JoZEdVc0lIVnpaVXhoZVc5MWRFVm1abVZqZEN3Z2RYTmxVbVZtSUgwZ1puSnZiU0JjSW5KbFlXTjBYQ0k3WEc1cGJYQnZjblFnZXlCamNtVmhkR1ZRYjNKMFlXd2dmU0JtY205dElGd2ljbVZoWTNRdFpHOXRYQ0k3WEc1cGJYQnZjblFnWTJ4emVDQm1jbTl0SUZ3aVkyeHplRndpTzF4dWFXMXdiM0owSUhzZ1MwVlpVeUI5SUdaeWIyMGdYQ0l1TGk5clpYbHpYQ0k3WEc1cGJYQnZjblFnZXlCMWMyVkZlR05oYkdsa2NtRjNRMjl1ZEdGcGJtVnlMQ0IxYzJWSmMwMXZZbWxzWlNCOUlHWnliMjBnWENJdUwwRndjRndpTzF4dWFXMXdiM0owSUhzZ1FYQndVM1JoZEdVZ2ZTQm1jbTl0SUZ3aUxpNHZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdJRlJJUlUxRklIMGdabkp2YlNCY0lpNHVMMk52Ym5OMFlXNTBjMXdpTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnVFc5a1lXd2dQU0FvY0hKdmNITTZJSHRjYmlBZ1kyeGhjM05PWVcxbFB6b2djM1J5YVc1bk8xeHVJQ0JqYUdsc1pISmxiam9nVW1WaFkzUXVVbVZoWTNST2IyUmxPMXh1SUNCdFlYaFhhV1IwYUQ4NklHNTFiV0psY2p0Y2JpQWdiMjVEYkc5elpWSmxjWFZsYzNRb0tUb2dkbTlwWkR0Y2JpQWdiR0ZpWld4c1pXUkNlVG9nYzNSeWFXNW5PMXh1SUNCMGFHVnRaVDg2SUVGd2NGTjBZWFJsVzF3aWRHaGxiV1ZjSWwwN1hHNGdJR05zYjNObFQyNURiR2xqYTA5MWRITnBaR1UvT2lCaWIyOXNaV0Z1TzF4dWZTa2dQVDRnZTF4dUlDQmpiMjV6ZENCN0lIUm9aVzFsSUQwZ1ZFaEZUVVV1VEVsSFNGUXNJR05zYjNObFQyNURiR2xqYTA5MWRITnBaR1VnUFNCMGNuVmxJSDBnUFNCd2NtOXdjenRjYmlBZ1kyOXVjM1FnYlc5a1lXeFNiMjkwSUQwZ2RYTmxRbTlrZVZKdmIzUW9kR2hsYldVcE8xeHVYRzRnSUdsbUlDZ2hiVzlrWVd4U2IyOTBLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lIMWNibHh1SUNCamIyNXpkQ0JvWVc1a2JHVkxaWGxrYjNkdUlEMGdLR1YyWlc1ME9pQlNaV0ZqZEM1TFpYbGliMkZ5WkVWMlpXNTBLU0E5UGlCN1hHNGdJQ0FnYVdZZ0tHVjJaVzUwTG10bGVTQTlQVDBnUzBWWlV5NUZVME5CVUVVcElIdGNiaUFnSUNBZ0lHVjJaVzUwTG01aGRHbDJaVVYyWlc1MExuTjBiM0JKYlcxbFpHbGhkR1ZRY205d1lXZGhkR2x2YmlncE8xeHVJQ0FnSUNBZ1pYWmxiblF1YzNSdmNGQnliM0JoWjJGMGFXOXVLQ2s3WEc0Z0lDQWdJQ0J3Y205d2N5NXZia05zYjNObFVtVnhkV1Z6ZENncE8xeHVJQ0FnSUgxY2JpQWdmVHRjYmx4dUlDQnlaWFIxY200Z1kzSmxZWFJsVUc5eWRHRnNLRnh1SUNBZ0lEeGthWFpjYmlBZ0lDQWdJR05zWVhOelRtRnRaVDE3WTJ4emVDaGNJazF2WkdGc1hDSXNJSEJ5YjNCekxtTnNZWE56VG1GdFpTbDlYRzRnSUNBZ0lDQnliMnhsUFZ3aVpHbGhiRzluWENKY2JpQWdJQ0FnSUdGeWFXRXRiVzlrWVd3OVhDSjBjblZsWENKY2JpQWdJQ0FnSUc5dVMyVjVSRzkzYmoxN2FHRnVaR3hsUzJWNVpHOTNibjFjYmlBZ0lDQWdJR0Z5YVdFdGJHRmlaV3hzWldSaWVUMTdjSEp2Y0hNdWJHRmlaV3hzWldSQ2VYMWNiaUFnSUNBK1hHNGdJQ0FnSUNBOFpHbDJYRzRnSUNBZ0lDQWdJR05zWVhOelRtRnRaVDFjSWsxdlpHRnNYMTlpWVdOclozSnZkVzVrWENKY2JpQWdJQ0FnSUNBZ2IyNURiR2xqYXoxN1kyeHZjMlZQYmtOc2FXTnJUM1YwYzJsa1pTQS9JSEJ5YjNCekxtOXVRMnh2YzJWU1pYRjFaWE4wSURvZ2RXNWtaV1pwYm1Wa2ZWeHVJQ0FnSUNBZ1Bqd3ZaR2wyUGx4dUlDQWdJQ0FnUEdScGRseHVJQ0FnSUNBZ0lDQmpiR0Z6YzA1aGJXVTlYQ0pOYjJSaGJGOWZZMjl1ZEdWdWRGd2lYRzRnSUNBZ0lDQWdJSE4wZVd4bFBYdDdJRndpTFMxdFlYZ3RkMmxrZEdoY0lqb2dZQ1I3Y0hKdmNITXViV0Y0VjJsa2RHaDljSGhnSUgxOVhHNGdJQ0FnSUNBZ0lIUmhZa2x1WkdWNFBYc3dmVnh1SUNBZ0lDQWdQbHh1SUNBZ0lDQWdJQ0I3Y0hKdmNITXVZMmhwYkdSeVpXNTlYRzRnSUNBZ0lDQThMMlJwZGo1Y2JpQWdJQ0E4TDJScGRqNHNYRzRnSUNBZ2JXOWtZV3hTYjI5MExGeHVJQ0FwTzF4dWZUdGNibHh1WTI5dWMzUWdkWE5sUW05a2VWSnZiM1FnUFNBb2RHaGxiV1U2SUVGd2NGTjBZWFJsVzF3aWRHaGxiV1ZjSWwwcElEMCtJSHRjYmlBZ1kyOXVjM1FnVzJScGRpd2djMlYwUkdsMlhTQTlJSFZ6WlZOMFlYUmxQRWhVVFV4RWFYWkZiR1Z0Wlc1MElId2diblZzYkQ0b2JuVnNiQ2s3WEc1Y2JpQWdZMjl1YzNRZ2FYTk5iMkpwYkdVZ1BTQjFjMlZKYzAxdlltbHNaU2dwTzF4dUlDQmpiMjV6ZENCcGMwMXZZbWxzWlZKbFppQTlJSFZ6WlZKbFppaHBjMDF2WW1sc1pTazdYRzRnSUdselRXOWlhV3hsVW1WbUxtTjFjbkpsYm5RZ1BTQnBjMDF2WW1sc1pUdGNibHh1SUNCamIyNXpkQ0I3SUdOdmJuUmhhVzVsY2pvZ1pYaGpZV3hwWkhKaGQwTnZiblJoYVc1bGNpQjlJRDBnZFhObFJYaGpZV3hwWkhKaGQwTnZiblJoYVc1bGNpZ3BPMXh1WEc0Z0lIVnpaVXhoZVc5MWRFVm1abVZqZENnb0tTQTlQaUI3WEc0Z0lDQWdhV1lnS0dScGRpa2dlMXh1SUNBZ0lDQWdaR2wyTG1Oc1lYTnpUR2x6ZEM1MGIyZG5iR1VvWENKbGVHTmhiR2xrY21GM0xTMXRiMkpwYkdWY0lpd2dhWE5OYjJKcGJHVXBPMXh1SUNBZ0lIMWNiaUFnZlN3Z1cyUnBkaXdnYVhOTmIySnBiR1ZkS1R0Y2JseHVJQ0IxYzJWTVlYbHZkWFJGWm1abFkzUW9LQ2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR2x6UkdGeWExUm9aVzFsSUQxY2JpQWdJQ0FnSUNFaFpYaGpZV3hwWkhKaGQwTnZiblJoYVc1bGNqOHVZMnhoYzNOTWFYTjBMbU52Ym5SaGFXNXpLRndpZEdobGJXVXRMV1JoY210Y0lpa2dmSHhjYmlBZ0lDQWdJSFJvWlcxbElEMDlQU0JjSW1SaGNtdGNJanRjYmlBZ0lDQmpiMjV6ZENCa2FYWWdQU0JrYjJOMWJXVnVkQzVqY21WaGRHVkZiR1Z0Wlc1MEtGd2laR2wyWENJcE8xeHVYRzRnSUNBZ1pHbDJMbU5zWVhOelRHbHpkQzVoWkdRb1hDSmxlR05oYkdsa2NtRjNYQ0lzSUZ3aVpYaGpZV3hwWkhKaGR5MXRiMlJoYkMxamIyNTBZV2x1WlhKY0lpazdYRzRnSUNBZ1pHbDJMbU5zWVhOelRHbHpkQzUwYjJkbmJHVW9YQ0psZUdOaGJHbGtjbUYzTFMxdGIySnBiR1ZjSWl3Z2FYTk5iMkpwYkdWU1pXWXVZM1Z5Y21WdWRDazdYRzVjYmlBZ0lDQnBaaUFvYVhORVlYSnJWR2hsYldVcElIdGNiaUFnSUNBZ0lHUnBkaTVqYkdGemMweHBjM1F1WVdSa0tGd2lkR2hsYldVdExXUmhjbXRjSWlrN1hHNGdJQ0FnSUNCa2FYWXVZMnhoYzNOTWFYTjBMbUZrWkNoY0luUm9aVzFsTFMxa1lYSnJMV0poWTJ0bmNtOTFibVF0Ym05dVpWd2lLVHRjYmlBZ0lDQjlYRzRnSUNBZ1pHOWpkVzFsYm5RdVltOWtlUzVoY0hCbGJtUkRhR2xzWkNoa2FYWXBPMXh1WEc0Z0lDQWdjMlYwUkdsMktHUnBkaWs3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdLQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ1pHOWpkVzFsYm5RdVltOWtlUzV5WlcxdmRtVkRhR2xzWkNoa2FYWXBPMXh1SUNBZ0lIMDdYRzRnSUgwc0lGdGxlR05oYkdsa2NtRjNRMjl1ZEdGcGJtVnlMQ0IwYUdWdFpWMHBPMXh1WEc0Z0lISmxkSFZ5YmlCa2FYWTdYRzU5TzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9Nb2RhbC50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvUGFzdGVDaGFydERpYWxvZy50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL1Bhc3RlQ2hhcnREaWFsb2cudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlBhc3RlQ2hhcnREaWFsb2dcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBQYXN0ZUNoYXJ0RGlhbG9nKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBvcGVuLWNvbG9yICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvb3Blbi1jb2xvci9vcGVuLWNvbG9yLmpzb25cXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0ICovIFxcXCJyZWFjdFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYW5hbHl0aWNzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9hbmFseXRpY3MgKi8gXFxcIi4uLy4uL2FuYWx5dGljcy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY2hhcnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jaGFydHMgKi8gXFxcIi4uLy4uL2NoYXJ0cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfZXhwb3J0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZS9leHBvcnQgKi8gXFxcIi4uLy4uL3NjZW5lL2V4cG9ydC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfRGlhbG9nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0RpYWxvZyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9EaWFsb2cudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9QYXN0ZUNoYXJ0RGlhbG9nX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vUGFzdGVDaGFydERpYWxvZy5zY3NzICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1Bhc3RlQ2hhcnREaWFsb2cuc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfUGFzdGVDaGFydERpYWxvZ19zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX1Bhc3RlQ2hhcnREaWFsb2dfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fKTtcXG52YXIgX19hd2FpdGVyID0gKHVuZGVmaW5lZCAmJiB1bmRlZmluZWQuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XFxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1xcXCJ0aHJvd1xcXCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XFxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XFxuICAgIH0pO1xcbn07XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgQ2hhcnRQcmV2aWV3QnRuID0gKHByb3BzKSA9PiB7XFxuICAgIGNvbnN0IHByZXZpZXdSZWYgPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnVzZVJlZikobnVsbCk7XFxuICAgIGNvbnN0IFtjaGFydEVsZW1lbnRzLCBzZXRDaGFydEVsZW1lbnRzXSA9ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udXNlU3RhdGUpKG51bGwpO1xcbiAgICAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnVzZUxheW91dEVmZmVjdCkoKCkgPT4ge1xcbiAgICAgICAgaWYgKCFwcm9wcy5zcHJlYWRzaGVldCkge1xcbiAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gKDAsX2NoYXJ0c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnJlbmRlclNwcmVhZHNoZWV0KShwcm9wcy5jaGFydFR5cGUsIHByb3BzLnNwcmVhZHNoZWV0LCAwLCAwKTtcXG4gICAgICAgIHNldENoYXJ0RWxlbWVudHMoZWxlbWVudHMpO1xcbiAgICAgICAgbGV0IHN2ZztcXG4gICAgICAgIGNvbnN0IHByZXZpZXdOb2RlID0gcHJldmlld1JlZi5jdXJyZW50O1xcbiAgICAgICAgKCgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICAgICAgICAgIHN2ZyA9IHlpZWxkICgwLF9zY2VuZV9leHBvcnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5leHBvcnRUb1N2ZykoZWxlbWVudHMsIHtcXG4gICAgICAgICAgICAgICAgZXhwb3J0QmFja2dyb3VuZDogZmFsc2UsXFxuICAgICAgICAgICAgICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IG9wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy53aGl0ZSxcXG4gICAgICAgICAgICB9LCBudWxsKTtcXG4gICAgICAgICAgICBwcmV2aWV3Tm9kZS5hcHBlbmRDaGlsZChzdmcpO1xcbiAgICAgICAgICAgIGlmIChwcm9wcy5zZWxlY3RlZCkge1xcbiAgICAgICAgICAgICAgICBwcmV2aWV3Tm9kZS5wYXJlbnROb2RlLmZvY3VzKCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSkpKCk7XFxuICAgICAgICByZXR1cm4gKCkgPT4ge1xcbiAgICAgICAgICAgIHByZXZpZXdOb2RlLnJlbW92ZUNoaWxkKHN2Zyk7XFxuICAgICAgICB9O1xcbiAgICB9LCBbcHJvcHMuc3ByZWFkc2hlZXQsIHByb3BzLmNoYXJ0VHlwZSwgcHJvcHMuc2VsZWN0ZWRdKTtcXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImJ1dHRvblxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJDaGFydFByZXZpZXdcXFwiLCBvbkNsaWNrOiAoKSA9PiB7XFxuICAgICAgICAgICAgaWYgKGNoYXJ0RWxlbWVudHMpIHtcXG4gICAgICAgICAgICAgICAgcHJvcHMub25DbGljayhwcm9wcy5jaGFydFR5cGUsIGNoYXJ0RWxlbWVudHMpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCB7IHJlZjogcHJldmlld1JlZiB9LCB2b2lkIDApIH0pLCB2b2lkIDApKTtcXG59O1xcbmNvbnN0IFBhc3RlQ2hhcnREaWFsb2cgPSAoeyBzZXRBcHBTdGF0ZSwgYXBwU3RhdGUsIG9uQ2xvc2UsIG9uSW5zZXJ0Q2hhcnQsIH0pID0+IHtcXG4gICAgY29uc3QgaGFuZGxlQ2xvc2UgPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fX2RlZmF1bHQoKS51c2VDYWxsYmFjaygoKSA9PiB7XFxuICAgICAgICBpZiAob25DbG9zZSkge1xcbiAgICAgICAgICAgIG9uQ2xvc2UoKTtcXG4gICAgICAgIH1cXG4gICAgfSwgW29uQ2xvc2VdKTtcXG4gICAgY29uc3QgaGFuZGxlQ2hhcnRDbGljayA9IChjaGFydFR5cGUsIGVsZW1lbnRzKSA9PiB7XFxuICAgICAgICBvbkluc2VydENoYXJ0KGVsZW1lbnRzKTtcXG4gICAgICAgICgwLF9hbmFseXRpY3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy50cmFja0V2ZW50KShcXFwibWFnaWNcXFwiLCBcXFwiY2hhcnRcXFwiLCBjaGFydFR5cGUpO1xcbiAgICAgICAgc2V0QXBwU3RhdGUoe1xcbiAgICAgICAgICAgIGN1cnJlbnRDaGFydFR5cGU6IGNoYXJ0VHlwZSxcXG4gICAgICAgICAgICBwYXN0ZURpYWxvZzoge1xcbiAgICAgICAgICAgICAgICBzaG93bjogZmFsc2UsXFxuICAgICAgICAgICAgICAgIGRhdGE6IG51bGwsXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgIH0pO1xcbiAgICB9O1xcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfRGlhbG9nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uRGlhbG9nLCBPYmplY3QuYXNzaWduKHsgc21hbGw6IHRydWUsIG9uQ2xvc2VSZXF1ZXN0OiBoYW5kbGVDbG9zZSwgdGl0bGU6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18udCkoXFxcImxhYmVscy5wYXN0ZUNoYXJ0c1xcXCIpLCBjbGFzc05hbWU6IFxcXCJQYXN0ZUNoYXJ0RGlhbG9nXFxcIiwgYXV0b2ZvY3VzOiBmYWxzZSB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiY29udGFpbmVyXFxcIiB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKENoYXJ0UHJldmlld0J0biwgeyBjaGFydFR5cGU6IFxcXCJiYXJcXFwiLCBzcHJlYWRzaGVldDogYXBwU3RhdGUucGFzdGVEaWFsb2cuZGF0YSwgc2VsZWN0ZWQ6IGFwcFN0YXRlLmN1cnJlbnRDaGFydFR5cGUgPT09IFxcXCJiYXJcXFwiLCBvbkNsaWNrOiBoYW5kbGVDaGFydENsaWNrIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShDaGFydFByZXZpZXdCdG4sIHsgY2hhcnRUeXBlOiBcXFwibGluZVxcXCIsIHNwcmVhZHNoZWV0OiBhcHBTdGF0ZS5wYXN0ZURpYWxvZy5kYXRhLCBzZWxlY3RlZDogYXBwU3RhdGUuY3VycmVudENoYXJ0VHlwZSA9PT0gXFxcImxpbmVcXFwiLCBvbkNsaWNrOiBoYW5kbGVDaGFydENsaWNrIH0sIHZvaWQgMCldIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApKTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5UVlYTjBaVU5vWVhKMFJHbGhiRzluTG5SemVDNXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3TzBGQlFUUkNPMEZCUTNGRE8wRkJRM1pDTzBGQlEyZERPMEZCUlRsRE8wRkJRMnRDTzBGQlJWbzdRVUZEUkR0QlFVbHFReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eERRVUZETEV0QlMzaENMRVZCUVVVc1JVRkJSVHRKUVVOSUxFMUJRVTBzVlVGQlZTeEhRVUZITERaRFFVRk5MRU5CUVhkQ0xFbEJRVWtzUTBGQlF5eERRVUZETzBsQlEzWkVMRTFCUVUwc1EwRkJReXhoUVVGaExFVkJRVVVzWjBKQlFXZENMRU5CUVVNc1IwRkJSeXdyUTBGQlVTeERRVU5vUkN4SlFVRkpMRU5CUTB3c1EwRkJRenRKUVVWR0xITkVRVUZsTEVOQlFVTXNSMEZCUnl4RlFVRkZPMUZCUTI1Q0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RlFVRkZPMWxCUTNSQ0xFOUJRVTg3VTBGRFVqdFJRVVZFTEUxQlFVMHNVVUZCVVN4SFFVRkhMREJFUVVGcFFpeERRVU5vUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhGUVVObUxFdEJRVXNzUTBGQlF5eFhRVUZYTEVWQlEycENMRU5CUVVNc1JVRkRSQ3hEUVVGRExFTkJRMFlzUTBGQlF6dFJRVU5HTEdkQ1FVRm5RaXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlF6TkNMRWxCUVVrc1IwRkJhMElzUTBGQlF6dFJRVU4yUWl4TlFVRk5MRmRCUVZjc1IwRkJSeXhWUVVGVkxFTkJRVU1zVDBGQlVTeERRVUZETzFGQlJYaERMRU5CUVVNc1IwRkJVeXhGUVVGRk8xbEJRMVlzUjBGQlJ5eEhRVUZITEUxQlFVMHNNRVJCUVZjc1EwRkRja0lzVVVGQlVTeEZRVU5TTzJkQ1FVTkZMR2RDUVVGblFpeEZRVUZGTEV0QlFVczdaMEpCUTNaQ0xHMUNRVUZ0UWl4RlFVRkZMRFpEUVVGUk8yRkJRemxDTEVWQlEwUXNTVUZCU1N4RFFVTk1MRU5CUVVNN1dVRkZSaXhYUVVGWExFTkJRVU1zVjBGQlZ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUlRkQ0xFbEJRVWtzUzBGQlN5eERRVUZETEZGQlFWRXNSVUZCUlR0blFrRkRha0lzVjBGQlZ5eERRVUZETEZWQlFUWkNMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03WVVGRGNFUTdVVUZEU0N4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRE8xRkJSVXdzVDBGQlR5eEhRVUZITEVWQlFVVTdXVUZEVml4WFFVRlhMRU5CUVVNc1YwRkJWeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlF5OUNMRU5CUVVNc1EwRkJRenRKUVVOS0xFTkJRVU1zUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1MwRkJTeXhEUVVGRExGTkJRVk1zUlVGQlJTeExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWNlJDeFBRVUZQTEVOQlEwd3NhVVpCUTBVc1UwRkJVeXhGUVVGRExHTkJRV01zUlVGRGVFSXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSVHRaUVVOYUxFbEJRVWtzWVVGQllTeEZRVUZGTzJkQ1FVTnFRaXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRVZCUVVVc1lVRkJZU3hEUVVGRExFTkJRVU03WVVGREwwTTdVVUZEU0N4RFFVRkRMR2RDUVVWRUxHZEZRVUZMTEVkQlFVY3NSVUZCUlN4VlFVRlZMRmRCUVVrc1dVRkRha0lzUTBGRFZpeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RFFVRkRMRVZCUXk5Q0xGZEJRVmNzUlVGRFdDeFJRVUZSTEVWQlExSXNUMEZCVHl4RlFVTlFMR0ZCUVdFc1IwRk5aQ3hGUVVGRkxFVkJRVVU3U1VGRFNDeE5RVUZOTEZkQlFWY3NSMEZCUnl4M1JFRkJhVUlzUTBGQlF5eEhRVUZITEVWQlFVVTdVVUZEZWtNc1NVRkJTU3hQUVVGUExFVkJRVVU3V1VGRFdDeFBRVUZQTEVWQlFVVXNRMEZCUXp0VFFVTllPMGxCUTBnc1EwRkJReXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVmtMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NRMEZCUXl4VFFVRnZRaXhGUVVGRkxGRkJRWFZDTEVWQlFVVXNSVUZCUlR0UlFVTjZSU3hoUVVGaExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdVVUZEZUVJc2MwUkJRVlVzUTBGQlF5eFBRVUZQTEVWQlFVVXNUMEZCVHl4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRM2hETEZkQlFWY3NRMEZCUXp0WlFVTldMR2RDUVVGblFpeEZRVUZGTEZOQlFWTTdXVUZETTBJc1YwRkJWeXhGUVVGRk8yZENRVU5ZTEV0QlFVc3NSVUZCUlN4TFFVRkxPMmRDUVVOYUxFbEJRVWtzUlVGQlJTeEpRVUZKTzJGQlExZzdVMEZEUml4RFFVRkRMRU5CUVVNN1NVRkRUQ3hEUVVGRExFTkJRVU03U1VGRlJpeFBRVUZQTEVOQlEwd3NkVVJCUVVNc01rTkJRVTBzYTBKQlEwd3NTMEZCU3l4UlFVTk1MR05CUVdNc1JVRkJSU3hYUVVGWExFVkJRek5DTEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRVZCUXpsQ0xGTkJRVk1zUlVGQlJTeHJRa0ZCYTBJc1JVRkROMElzVTBGQlV5eEZRVUZGTEV0QlFVc3NaMEpCUldoQ0xDdEZRVUZMTEZOQlFWTXNSVUZCUlN4WFFVRlhMR2xDUVVONlFpeDFSRUZCUXl4bFFVRmxMRWxCUTJRc1UwRkJVeXhGUVVGRExFdEJRVXNzUlVGRFppeFhRVUZYTEVWQlFVVXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxFVkJRM1JETEZGQlFWRXNSVUZCUlN4UlFVRlJMRU5CUVVNc1owSkJRV2RDTEV0QlFVc3NTMEZCU3l4RlFVTTNReXhQUVVGUExFVkJRVVVzWjBKQlFXZENMRmRCUTNwQ0xFVkJRMFlzZFVSQlFVTXNaVUZCWlN4SlFVTmtMRk5CUVZNc1JVRkJReXhOUVVGTkxFVkJRMmhDTEZkQlFWY3NSVUZCUlN4UlFVRlJMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzUlVGRGRFTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1EwRkJReXhuUWtGQlowSXNTMEZCU3l4TlFVRk5MRVZCUXpsRExFOUJRVThzUlVGQlJTeG5Ra0ZCWjBJc1YwRkRla0lzWVVGRFJTeFpRVU5ETEVOQlExWXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5amIyMXdiMjVsYm5SekwxQmhjM1JsUTJoaGNuUkVhV0ZzYjJjdWRITjRQMlJsTm1VaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElHOWpJR1p5YjIwZ1hDSnZjR1Z1TFdOdmJHOXlYQ0k3WEc1cGJYQnZjblFnVW1WaFkzUXNJSHNnZFhObFRHRjViM1YwUldabVpXTjBMQ0IxYzJWU1pXWXNJSFZ6WlZOMFlYUmxJSDBnWm5KdmJTQmNJbkpsWVdOMFhDSTdYRzVwYlhCdmNuUWdleUIwY21GamEwVjJaVzUwSUgwZ1puSnZiU0JjSWk0dUwyRnVZV3g1ZEdsamMxd2lPMXh1YVcxd2IzSjBJSHNnUTJoaGNuUkZiR1Z0Wlc1MGN5d2djbVZ1WkdWeVUzQnlaV0ZrYzJobFpYUXNJRk53Y21WaFpITm9aV1YwSUgwZ1puSnZiU0JjSWk0dUwyTm9ZWEowYzF3aU8xeHVhVzF3YjNKMElIc2dRMmhoY25SVWVYQmxJSDBnWm5KdmJTQmNJaTR1TDJWc1pXMWxiblF2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUhRZ2ZTQm1jbTl0SUZ3aUxpNHZhVEU0Ymx3aU8xeHVhVzF3YjNKMElIc2daWGh3YjNKMFZHOVRkbWNnZlNCbWNtOXRJRndpTGk0dmMyTmxibVV2Wlhod2IzSjBYQ0k3WEc1cGJYQnZjblFnZXlCQmNIQlRkR0YwWlN3Z1RHbGljbUZ5ZVVsMFpXMGdmU0JtY205dElGd2lMaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUVScFlXeHZaeUI5SUdaeWIyMGdYQ0l1TDBScFlXeHZaMXdpTzF4dWFXMXdiM0owSUZ3aUxpOVFZWE4wWlVOb1lYSjBSR2xoYkc5bkxuTmpjM05jSWp0Y2JseHVkSGx3WlNCUGJrbHVjMlZ5ZEVOb1lYSjBJRDBnS0dOb1lYSjBWSGx3WlRvZ1EyaGhjblJVZVhCbExDQmxiR1Z0Wlc1MGN6b2dRMmhoY25SRmJHVnRaVzUwY3lrZ1BUNGdkbTlwWkR0Y2JseHVZMjl1YzNRZ1EyaGhjblJRY21WMmFXVjNRblJ1SUQwZ0tIQnliM0J6T2lCN1hHNGdJSE53Y21WaFpITm9aV1YwT2lCVGNISmxZV1J6YUdWbGRDQjhJRzUxYkd3N1hHNGdJR05vWVhKMFZIbHdaVG9nUTJoaGNuUlVlWEJsTzF4dUlDQnpaV3hsWTNSbFpEb2dZbTl2YkdWaGJqdGNiaUFnYjI1RGJHbGphem9nVDI1SmJuTmxjblJEYUdGeWREdGNibjBwSUQwK0lIdGNiaUFnWTI5dWMzUWdjSEpsZG1sbGQxSmxaaUE5SUhWelpWSmxaanhJVkUxTVJHbDJSV3hsYldWdWRDQjhJRzUxYkd3K0tHNTFiR3dwTzF4dUlDQmpiMjV6ZENCYlkyaGhjblJGYkdWdFpXNTBjeXdnYzJWMFEyaGhjblJGYkdWdFpXNTBjMTBnUFNCMWMyVlRkR0YwWlR4RGFHRnlkRVZzWlcxbGJuUnpJSHdnYm5Wc2JENG9YRzRnSUNBZ2JuVnNiQ3hjYmlBZ0tUdGNibHh1SUNCMWMyVk1ZWGx2ZFhSRlptWmxZM1FvS0NrZ1BUNGdlMXh1SUNBZ0lHbG1JQ2doY0hKdmNITXVjM0J5WldGa2MyaGxaWFFwSUh0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCbGJHVnRaVzUwY3lBOUlISmxibVJsY2xOd2NtVmhaSE5vWldWMEtGeHVJQ0FnSUNBZ2NISnZjSE11WTJoaGNuUlVlWEJsTEZ4dUlDQWdJQ0FnY0hKdmNITXVjM0J5WldGa2MyaGxaWFFzWEc0Z0lDQWdJQ0F3TEZ4dUlDQWdJQ0FnTUN4Y2JpQWdJQ0FwTzF4dUlDQWdJSE5sZEVOb1lYSjBSV3hsYldWdWRITW9aV3hsYldWdWRITXBPMXh1SUNBZ0lHeGxkQ0J6ZG1jNklGTldSMU5XUjBWc1pXMWxiblE3WEc0Z0lDQWdZMjl1YzNRZ2NISmxkbWxsZDA1dlpHVWdQU0J3Y21WMmFXVjNVbVZtTG1OMWNuSmxiblFoTzF4dVhHNGdJQ0FnS0dGemVXNWpJQ2dwSUQwK0lIdGNiaUFnSUNBZ0lITjJaeUE5SUdGM1lXbDBJR1Y0Y0c5eWRGUnZVM1puS0Z4dUlDQWdJQ0FnSUNCbGJHVnRaVzUwY3l4Y2JpQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJR1Y0Y0c5eWRFSmhZMnRuY205MWJtUTZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQWdJSFpwWlhkQ1lXTnJaM0p2ZFc1a1EyOXNiM0k2SUc5akxuZG9hWFJsTEZ4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQnVkV3hzTENBdkx5Qm1hV3hsYzF4dUlDQWdJQ0FnS1R0Y2JseHVJQ0FnSUNBZ2NISmxkbWxsZDA1dlpHVXVZWEJ3Wlc1a1EyaHBiR1FvYzNabktUdGNibHh1SUNBZ0lDQWdhV1lnS0hCeWIzQnpMbk5sYkdWamRHVmtLU0I3WEc0Z0lDQWdJQ0FnSUNod2NtVjJhV1YzVG05a1pTNXdZWEpsYm5ST2IyUmxJR0Z6SUVoVVRVeEVhWFpGYkdWdFpXNTBLUzVtYjJOMWN5Z3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHBLQ2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdLQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ2NISmxkbWxsZDA1dlpHVXVjbVZ0YjNabFEyaHBiR1FvYzNabktUdGNiaUFnSUNCOU8xeHVJQ0I5TENCYmNISnZjSE11YzNCeVpXRmtjMmhsWlhRc0lIQnliM0J6TG1Ob1lYSjBWSGx3WlN3Z2NISnZjSE11YzJWc1pXTjBaV1JkS1R0Y2JseHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lEeGlkWFIwYjI1Y2JpQWdJQ0FnSUdOc1lYTnpUbUZ0WlQxY0lrTm9ZWEowVUhKbGRtbGxkMXdpWEc0Z0lDQWdJQ0J2YmtOc2FXTnJQWHNvS1NBOVBpQjdYRzRnSUNBZ0lDQWdJR2xtSUNoamFHRnlkRVZzWlcxbGJuUnpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NISnZjSE11YjI1RGJHbGpheWh3Y205d2N5NWphR0Z5ZEZSNWNHVXNJR05vWVhKMFJXeGxiV1Z1ZEhNcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlmVnh1SUNBZ0lENWNiaUFnSUNBZ0lEeGthWFlnY21WbVBYdHdjbVYyYVdWM1VtVm1mU0F2UGx4dUlDQWdJRHd2WW5WMGRHOXVQbHh1SUNBcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRkJoYzNSbFEyaGhjblJFYVdGc2IyY2dQU0FvZTF4dUlDQnpaWFJCY0hCVGRHRjBaU3hjYmlBZ1lYQndVM1JoZEdVc1hHNGdJRzl1UTJ4dmMyVXNYRzRnSUc5dVNXNXpaWEowUTJoaGNuUXNYRzU5T2lCN1hHNGdJR0Z3Y0ZOMFlYUmxPaUJCY0hCVGRHRjBaVHRjYmlBZ2IyNURiRzl6WlRvZ0tDa2dQVDRnZG05cFpEdGNiaUFnYzJWMFFYQndVM1JoZEdVNklGSmxZV04wTGtOdmJYQnZibVZ1ZER4aGJua3NJRUZ3Y0ZOMFlYUmxQbHRjSW5ObGRGTjBZWFJsWENKZE8xeHVJQ0J2YmtsdWMyVnlkRU5vWVhKME9pQW9aV3hsYldWdWRITTZJRXhwWW5KaGNubEpkR1Z0VzF3aVpXeGxiV1Z1ZEhOY0lsMHBJRDArSUhadmFXUTdYRzU5S1NBOVBpQjdYRzRnSUdOdmJuTjBJR2hoYm1Sc1pVTnNiM05sSUQwZ1VtVmhZM1F1ZFhObFEyRnNiR0poWTJzb0tDa2dQVDRnZTF4dUlDQWdJR2xtSUNodmJrTnNiM05sS1NCN1hHNGdJQ0FnSUNCdmJrTnNiM05sS0NrN1hHNGdJQ0FnZlZ4dUlDQjlMQ0JiYjI1RGJHOXpaVjBwTzF4dVhHNGdJR052Ym5OMElHaGhibVJzWlVOb1lYSjBRMnhwWTJzZ1BTQW9ZMmhoY25SVWVYQmxPaUJEYUdGeWRGUjVjR1VzSUdWc1pXMWxiblJ6T2lCRGFHRnlkRVZzWlcxbGJuUnpLU0E5UGlCN1hHNGdJQ0FnYjI1SmJuTmxjblJEYUdGeWRDaGxiR1Z0Wlc1MGN5azdYRzRnSUNBZ2RISmhZMnRGZG1WdWRDaGNJbTFoWjJsalhDSXNJRndpWTJoaGNuUmNJaXdnWTJoaGNuUlVlWEJsS1R0Y2JpQWdJQ0J6WlhSQmNIQlRkR0YwWlNoN1hHNGdJQ0FnSUNCamRYSnlaVzUwUTJoaGNuUlVlWEJsT2lCamFHRnlkRlI1Y0dVc1hHNGdJQ0FnSUNCd1lYTjBaVVJwWVd4dlp6b2dlMXh1SUNBZ0lDQWdJQ0J6YUc5M2Jqb2dabUZzYzJVc1hHNGdJQ0FnSUNBZ0lHUmhkR0U2SUc1MWJHd3NYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lIMHBPMXh1SUNCOU8xeHVYRzRnSUhKbGRIVnliaUFvWEc0Z0lDQWdQRVJwWVd4dloxeHVJQ0FnSUNBZ2MyMWhiR3hjYmlBZ0lDQWdJRzl1UTJ4dmMyVlNaWEYxWlhOMFBYdG9ZVzVrYkdWRGJHOXpaWDFjYmlBZ0lDQWdJSFJwZEd4bFBYdDBLRndpYkdGaVpXeHpMbkJoYzNSbFEyaGhjblJ6WENJcGZWeHVJQ0FnSUNBZ1kyeGhjM05PWVcxbFBYdGNJbEJoYzNSbFEyaGhjblJFYVdGc2IyZGNJbjFjYmlBZ0lDQWdJR0YxZEc5bWIyTjFjejE3Wm1Gc2MyVjlYRzRnSUNBZ1BseHVJQ0FnSUNBZ1BHUnBkaUJqYkdGemMwNWhiV1U5ZTF3aVkyOXVkR0ZwYm1WeVhDSjlQbHh1SUNBZ0lDQWdJQ0E4UTJoaGNuUlFjbVYyYVdWM1FuUnVYRzRnSUNBZ0lDQWdJQ0FnWTJoaGNuUlVlWEJsUFZ3aVltRnlYQ0pjYmlBZ0lDQWdJQ0FnSUNCemNISmxZV1J6YUdWbGREMTdZWEJ3VTNSaGRHVXVjR0Z6ZEdWRWFXRnNiMmN1WkdGMFlYMWNiaUFnSUNBZ0lDQWdJQ0J6Wld4bFkzUmxaRDE3WVhCd1UzUmhkR1V1WTNWeWNtVnVkRU5vWVhKMFZIbHdaU0E5UFQwZ1hDSmlZWEpjSW4xY2JpQWdJQ0FnSUNBZ0lDQnZia05zYVdOclBYdG9ZVzVrYkdWRGFHRnlkRU5zYVdOcmZWeHVJQ0FnSUNBZ0lDQXZQbHh1SUNBZ0lDQWdJQ0E4UTJoaGNuUlFjbVYyYVdWM1FuUnVYRzRnSUNBZ0lDQWdJQ0FnWTJoaGNuUlVlWEJsUFZ3aWJHbHVaVndpWEc0Z0lDQWdJQ0FnSUNBZ2MzQnlaV0ZrYzJobFpYUTllMkZ3Y0ZOMFlYUmxMbkJoYzNSbFJHbGhiRzluTG1SaGRHRjlYRzRnSUNBZ0lDQWdJQ0FnYzJWc1pXTjBaV1E5ZTJGd2NGTjBZWFJsTG1OMWNuSmxiblJEYUdGeWRGUjVjR1VnUFQwOUlGd2liR2x1WlZ3aWZWeHVJQ0FnSUNBZ0lDQWdJRzl1UTJ4cFkyczllMmhoYm1Sc1pVTm9ZWEowUTJ4cFkydDlYRzRnSUNBZ0lDQWdJQzgrWEc0Z0lDQWdJQ0E4TDJScGRqNWNiaUFnSUNBOEwwUnBZV3h2Wno1Y2JpQWdLVHRjYm4wN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvUGFzdGVDaGFydERpYWxvZy50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvUGVuTW9kZUJ1dHRvbi50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL1Blbk1vZGVCdXR0b24udHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlBlbk1vZGVCdXR0b25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBQZW5Nb2RlQnV0dG9uKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVG9vbEljb25fc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Ub29sSWNvbi5zY3NzICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1Rvb2xJY29uLnNjc3NcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1Rvb2xJY29uX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfVG9vbEljb25fc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgY2xzeCAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nsc3gvZGlzdC9jbHN4Lm0uanNcXFwiKTtcXG5cXG5cXG5cXG5jb25zdCBERUZBVUxUX1NJWkUgPSBcXFwibWVkaXVtXFxcIjtcXG5jb25zdCBJQ09OUyA9IHtcXG4gICAgQ0hFQ0tFRDogKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcInN2Z1xcXCIsIE9iamVjdC5hc3NpZ24oeyB3aWR0aDogXFxcIjIwNVxcXCIsIGhlaWdodDogXFxcIjIwNVxcXCIsIHZpZXdCb3g6IFxcXCIwIDAgMjA1IDIwNVxcXCIsIHhtbG5zOiBcXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJtMzUgMTk1LTI1LTI5LjE3VjUwaDUwdjExNWwtMjUgMzBcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0xMCA0MFYxMGg1MHYzMEgxMFxcXCIgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTEyNSAxNDVoNzB2NTBoLTcwXFxcIiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNMTkwIDE0NXYtMzBsLTEwLTIwaC00MGwtMTAgMjB2MzBoMTV2LTMwbDUtNWgyMGw1IDV2MzBoMTVcXFwiIH0sIHZvaWQgMCldIH0pLCB2b2lkIDApKSxcXG4gICAgVU5DSEVDS0VEOiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwic3ZnXFxcIiwgT2JqZWN0LmFzc2lnbih7IHdpZHRoOiBcXFwiMjA1XFxcIiwgaGVpZ2h0OiBcXFwiMjA1XFxcIiwgdmlld0JveDogXFxcIjAgMCAyMDUgMjA1XFxcIiwgeG1sbnM6IFxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIsIGNsYXNzTmFtZTogXFxcInVubG9ja2VkLWljb24gcnRsLW1pcnJvclxcXCIgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIm0zNSAxOTUtMjUtMjkuMTdWNTBoNTB2MTE1bC0yNSAzMFxcXCIgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTEwIDQwVjEwaDUwdjMwSDEwXFxcIiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNMTI1IDE0NWg3MHY1MGgtNzBcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0xNDUgMTQ1di0zMGwtMTAtMjBIOTVsLTEwIDIwdjMwaDE1di0zMGw1LTVoMjBsNSA1djMwaDE1XFxcIiB9LCB2b2lkIDApXSB9KSwgdm9pZCAwKSksXFxufTtcXG5jb25zdCBQZW5Nb2RlQnV0dG9uID0gKHByb3BzKSA9PiB7XFxuICAgIGlmICghcHJvcHMucGVuRGV0ZWN0ZWQpIHtcXG4gICAgICAgIGlmIChwcm9wcy5pc01vYmlsZSkge1xcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImxhYmVsXFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogKDAsY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fW1xcXCJkZWZhdWx0XFxcIl0pKFxcXCJUb29sSWNvbiBUb29sSWNvbl9fcGVuTW9kZSBUb29sSWNvbl90eXBlX2Zsb2F0aW5nXFxcIiwgYFRvb2xJY29uX3NpemVfJHtERUZBVUxUX1NJWkV9YCwge1xcbiAgICAgICAgICAgICAgICBcXFwiaXMtbW9iaWxlXFxcIjogcHJvcHMuaXNNb2JpbGUsXFxuICAgICAgICAgICAgfSkgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCB7IGNsYXNzTmFtZTogXFxcIlRvb2xJY29uX19pY29uIFRvb2xJY29uX19oaWRkZW5cXFwiIH0sIHZvaWQgMCkgfSksIHZvaWQgMCkpO1xcbiAgICB9XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwibGFiZWxcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiAoMCxjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bXFxcImRlZmF1bHRcXFwiXSkoXFxcIlRvb2xJY29uIFRvb2xJY29uX19wZW5Nb2RlIFRvb2xJY29uX3R5cGVfZmxvYXRpbmdcXFwiLCBgVG9vbEljb25fc2l6ZV8ke0RFRkFVTFRfU0laRX1gLCB7XFxuICAgICAgICAgICAgXFxcImlzLW1vYmlsZVxcXCI6IHByb3BzLmlzTW9iaWxlLFxcbiAgICAgICAgfSksIHRpdGxlOiBgJHtwcm9wcy50aXRsZX1gIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImlucHV0XFxcIiwgeyBjbGFzc05hbWU6IFxcXCJUb29sSWNvbl90eXBlX2NoZWNrYm94XFxcIiwgdHlwZTogXFxcImNoZWNrYm94XFxcIiwgbmFtZTogcHJvcHMubmFtZSwgb25DaGFuZ2U6IHByb3BzLm9uQ2hhbmdlLCBjaGVja2VkOiBwcm9wcy5jaGVja2VkLCBcXFwiYXJpYS1sYWJlbFxcXCI6IHByb3BzLnRpdGxlIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcIlRvb2xJY29uX19pY29uXFxcIiB9LCB7IGNoaWxkcmVuOiBwcm9wcy5jaGVja2VkID8gSUNPTlMuQ0hFQ0tFRCA6IElDT05TLlVOQ0hFQ0tFRCB9KSwgdm9pZCAwKV0gfSksIHZvaWQgMCkpO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlRWlc1TmIyUmxRblYwZEc5dUxuUnplQzVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdRVUZCZVVJN1FVRkZSRHRCUVdGNFFpeE5RVUZOTEZsQlFWa3NSMEZCYlVJc1VVRkJVU3hEUVVGRE8wRkJSVGxETEUxQlFVMHNTMEZCU3l4SFFVRkhPMGxCUTFvc1QwRkJUeXhGUVVGRkxFTkJRMUFzSzBWQlEwVXNTMEZCU3l4RlFVRkRMRXRCUVVzc1JVRkRXQ3hOUVVGTkxFVkJRVU1zUzBGQlN5eEZRVU5hTEU5QlFVOHNSVUZCUXl4aFFVRmhMRVZCUTNKQ0xFdEJRVXNzUlVGQlF5dzBRa0ZCTkVJc2FVSkJSV3hETEdsRlFVRk5MRU5CUVVNc1JVRkJReXh0UTBGQmJVTXNWMEZCUnl4RlFVTTVReXhwUlVGQlRTeERRVUZETEVWQlFVTXNiMEpCUVc5Q0xGZEJRVWNzUlVGREwwSXNhVVZCUVUwc1EwRkJReXhGUVVGRExHOUNRVUZ2UWl4WFFVRkhMRVZCUXk5Q0xHbEZRVUZOTEVOQlFVTXNSVUZCUXl3eVJFRkJNa1FzVjBGQlJ5eGhRVU5zUlN4RFFVTlFPMGxCUTBRc1UwRkJVeXhGUVVGRkxFTkJRMVFzSzBWQlEwVXNTMEZCU3l4RlFVRkRMRXRCUVVzc1JVRkRXQ3hOUVVGTkxFVkJRVU1zUzBGQlN5eEZRVU5hTEU5QlFVOHNSVUZCUXl4aFFVRmhMRVZCUTNKQ0xFdEJRVXNzUlVGQlF5dzBRa0ZCTkVJc1JVRkRiRU1zVTBGQlV5eEZRVUZETERCQ1FVRXdRaXhwUWtGRmNFTXNhVVZCUVUwc1EwRkJReXhGUVVGRExHMURRVUZ0UXl4WFFVRkhMRVZCUXpsRExHbEZRVUZOTEVOQlFVTXNSVUZCUXl4dlFrRkJiMElzVjBGQlJ5eEZRVU12UWl4cFJVRkJUU3hEUVVGRExFVkJRVU1zYjBKQlFXOUNMRmRCUVVjc1JVRkRMMElzYVVWQlFVMHNRMEZCUXl4RlFVRkRMREJFUVVFd1JDeFhRVUZITEdGQlEycEZMRU5CUTFBN1EwRkRSaXhEUVVGRE8wRkJSVXNzVFVGQlRTeGhRVUZoTEVkQlFVY3NRMEZCUXl4TFFVRjFRaXhGUVVGRkxFVkJRVVU3U1VGRGRrUXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVU3VVVGRGRFSXNTVUZCU1N4TFFVRkxMRU5CUVVNc1VVRkJVU3hGUVVGRk8xbEJRMnhDTEU5QlFVOHNTVUZCU1N4RFFVRkRPMU5CUTJJN1VVRkRSQ3hQUVVGUExFTkJRMHdzWjBaQlEwVXNVMEZCVXl4RlFVRkZMR2RFUVVGSkxFTkJRMklzYlVSQlFXMUVMRVZCUTI1RUxHbENRVUZwUWl4WlFVRlpMRVZCUVVVc1JVRkRMMEk3WjBKQlEwVXNWMEZCVnl4RlFVRkZMRXRCUVVzc1EwRkJReXhSUVVGUk8yRkJRelZDTEVOQlEwWXNaMEpCUlVRc1owVkJRVXNzVTBGQlV5eEZRVUZETEdsRFFVRnBReXhYUVVGSExGbEJRemRETEVOQlExUXNRMEZCUXp0TFFVTklPMGxCUTBRc1QwRkJUeXhEUVVOTUxHbEdRVU5GTEZOQlFWTXNSVUZCUlN4blJFRkJTU3hEUVVOaUxHMUVRVUZ0UkN4RlFVTnVSQ3hwUWtGQmFVSXNXVUZCV1N4RlFVRkZMRVZCUXk5Q08xbEJRMFVzVjBGQlZ5eEZRVUZGTEV0QlFVc3NRMEZCUXl4UlFVRlJPMU5CUXpWQ0xFTkJRMFlzUlVGRFJDeExRVUZMTEVWQlFVVXNSMEZCUnl4TFFVRkxMRU5CUVVNc1MwRkJTeXhGUVVGRkxHbENRVVYyUWl4clJVRkRSU3hUUVVGVExFVkJRVU1zZDBKQlFYZENMRVZCUTJ4RExFbEJRVWtzUlVGQlF5eFZRVUZWTEVWQlEyWXNTVUZCU1N4RlFVRkZMRXRCUVVzc1EwRkJReXhKUVVGSkxFVkJRMmhDTEZGQlFWRXNSVUZCUlN4TFFVRkxMRU5CUVVNc1VVRkJVU3hGUVVONFFpeFBRVUZQTEVWQlFVVXNTMEZCU3l4RFFVRkRMRTlCUVU4c1owSkJRMVlzUzBGQlN5eERRVUZETEV0QlFVc3NWMEZEZGtJc1JVRkRSaXc0UlVGQlN5eFRRVUZUTEVWQlFVTXNaMEpCUVdkQ0xHZENRVU0xUWl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eFpRVU0xUXl4aFFVTkJMRU5CUTFRc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDFCbGJrMXZaR1ZDZFhSMGIyNHVkSE40UHpJNVpEWWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJRndpTGk5VWIyOXNTV052Ymk1elkzTnpYQ0k3WEc1Y2JtbHRjRzl5ZENCamJITjRJR1p5YjIwZ1hDSmpiSE40WENJN1hHNXBiWEJ2Y25RZ2V5QlViMjlzUW5WMGRHOXVVMmw2WlNCOUlHWnliMjBnWENJdUwxUnZiMnhDZFhSMGIyNWNJanRjYmx4dWRIbHdaU0JRWlc1TmIyUmxTV052YmxCeWIzQnpJRDBnZTF4dUlDQjBhWFJzWlQ4NklITjBjbWx1Wnp0Y2JpQWdibUZ0WlQ4NklITjBjbWx1Wnp0Y2JpQWdZMmhsWTJ0bFpEb2dZbTl2YkdWaGJqdGNiaUFnYjI1RGFHRnVaMlUvS0NrNklIWnZhV1E3WEc0Z0lIcGxiazF2WkdWRmJtRmliR1ZrUHpvZ1ltOXZiR1ZoYmp0Y2JpQWdhWE5OYjJKcGJHVS9PaUJpYjI5c1pXRnVPMXh1SUNCd1pXNUVaWFJsWTNSbFpEb2dZbTl2YkdWaGJqdGNibjA3WEc1Y2JtTnZibk4wSUVSRlJrRlZURlJmVTBsYVJUb2dWRzl2YkVKMWRIUnZibE5wZW1VZ1BTQmNJbTFsWkdsMWJWd2lPMXh1WEc1amIyNXpkQ0JKUTA5T1V5QTlJSHRjYmlBZ1EwaEZRMHRGUkRvZ0tGeHVJQ0FnSUR4emRtZGNiaUFnSUNBZ0lIZHBaSFJvUFZ3aU1qQTFYQ0pjYmlBZ0lDQWdJR2hsYVdkb2REMWNJakl3TlZ3aVhHNGdJQ0FnSUNCMmFXVjNRbTk0UFZ3aU1DQXdJREl3TlNBeU1EVmNJbHh1SUNBZ0lDQWdlRzFzYm5NOVhDSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMloxd2lYRzRnSUNBZ1BseHVJQ0FnSUNBZ1BIQmhkR2dnWkQxY0ltMHpOU0F4T1RVdE1qVXRNamt1TVRkV05UQm9OVEIyTVRFMWJDMHlOU0F6TUZ3aUlDOCtYRzRnSUNBZ0lDQThjR0YwYUNCa1BWd2lUVEV3SURRd1ZqRXdhRFV3ZGpNd1NERXdYQ0lnTHo1Y2JpQWdJQ0FnSUR4d1lYUm9JR1E5WENKTk1USTFJREUwTldnM01IWTFNR2d0TnpCY0lpQXZQbHh1SUNBZ0lDQWdQSEJoZEdnZ1pEMWNJazB4T1RBZ01UUTFkaTB6TUd3dE1UQXRNakJvTFRRd2JDMHhNQ0F5TUhZek1HZ3hOWFl0TXpCc05TMDFhREl3YkRVZ05YWXpNR2d4TlZ3aUlDOCtYRzRnSUNBZ1BDOXpkbWMrWEc0Z0lDa3NYRzRnSUZWT1EwaEZRMHRGUkRvZ0tGeHVJQ0FnSUR4emRtZGNiaUFnSUNBZ0lIZHBaSFJvUFZ3aU1qQTFYQ0pjYmlBZ0lDQWdJR2hsYVdkb2REMWNJakl3TlZ3aVhHNGdJQ0FnSUNCMmFXVjNRbTk0UFZ3aU1DQXdJREl3TlNBeU1EVmNJbHh1SUNBZ0lDQWdlRzFzYm5NOVhDSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMloxd2lYRzRnSUNBZ0lDQmpiR0Z6YzA1aGJXVTlYQ0oxYm14dlkydGxaQzFwWTI5dUlISjBiQzF0YVhKeWIzSmNJbHh1SUNBZ0lENWNiaUFnSUNBZ0lEeHdZWFJvSUdROVhDSnRNelVnTVRrMUxUSTFMVEk1TGpFM1ZqVXdhRFV3ZGpFeE5Xd3RNalVnTXpCY0lpQXZQbHh1SUNBZ0lDQWdQSEJoZEdnZ1pEMWNJazB4TUNBME1GWXhNR2cxTUhZek1FZ3hNRndpSUM4K1hHNGdJQ0FnSUNBOGNHRjBhQ0JrUFZ3aVRURXlOU0F4TkRWb056QjJOVEJvTFRjd1hDSWdMejVjYmlBZ0lDQWdJRHh3WVhSb0lHUTlYQ0pOTVRRMUlERTBOWFl0TXpCc0xURXdMVEl3U0RrMWJDMHhNQ0F5TUhZek1HZ3hOWFl0TXpCc05TMDFhREl3YkRVZ05YWXpNR2d4TlZ3aUlDOCtYRzRnSUNBZ1BDOXpkbWMrWEc0Z0lDa3NYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnVUdWdVRXOWtaVUoxZEhSdmJpQTlJQ2h3Y205d2N6b2dVR1Z1VFc5a1pVbGpiMjVRY205d2N5a2dQVDRnZTF4dUlDQnBaaUFvSVhCeWIzQnpMbkJsYmtSbGRHVmpkR1ZrS1NCN1hHNGdJQ0FnYVdZZ0tIQnliM0J6TG1selRXOWlhV3hsS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJRHhzWVdKbGJGeHVJQ0FnSUNBZ0lDQmpiR0Z6YzA1aGJXVTllMk5zYzNnb1hHNGdJQ0FnSUNBZ0lDQWdYQ0pVYjI5c1NXTnZiaUJVYjI5c1NXTnZibDlmY0dWdVRXOWtaU0JVYjI5c1NXTnZibDkwZVhCbFgyWnNiMkYwYVc1blhDSXNYRzRnSUNBZ0lDQWdJQ0FnWUZSdmIyeEpZMjl1WDNOcGVtVmZKSHRFUlVaQlZVeFVYMU5KV2tWOVlDeGNiaUFnSUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmNJbWx6TFcxdlltbHNaVndpT2lCd2NtOXdjeTVwYzAxdlltbHNaU3hjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQXBmVnh1SUNBZ0lDQWdQbHh1SUNBZ0lDQWdJQ0E4WkdsMklHTnNZWE56VG1GdFpUMWNJbFJ2YjJ4SlkyOXVYMTlwWTI5dUlGUnZiMnhKWTI5dVgxOW9hV1JrWlc1Y0lpQXZQbHh1SUNBZ0lDQWdQQzlzWVdKbGJENWNiaUFnSUNBcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnUEd4aFltVnNYRzRnSUNBZ0lDQmpiR0Z6YzA1aGJXVTllMk5zYzNnb1hHNGdJQ0FnSUNBZ0lGd2lWRzl2YkVsamIyNGdWRzl2YkVsamIyNWZYM0JsYmsxdlpHVWdWRzl2YkVsamIyNWZkSGx3WlY5bWJHOWhkR2x1WjF3aUxGeHVJQ0FnSUNBZ0lDQmdWRzl2YkVsamIyNWZjMmw2WlY4a2UwUkZSa0ZWVEZSZlUwbGFSWDFnTEZ4dUlDQWdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDQWdYQ0pwY3kxdGIySnBiR1ZjSWpvZ2NISnZjSE11YVhOTmIySnBiR1VzWEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBcGZWeHVJQ0FnSUNBZ2RHbDBiR1U5ZTJBa2UzQnliM0J6TG5ScGRHeGxmV0I5WEc0Z0lDQWdQbHh1SUNBZ0lDQWdQR2x1Y0hWMFhHNGdJQ0FnSUNBZ0lHTnNZWE56VG1GdFpUMWNJbFJ2YjJ4SlkyOXVYM1I1Y0dWZlkyaGxZMnRpYjNoY0lseHVJQ0FnSUNBZ0lDQjBlWEJsUFZ3aVkyaGxZMnRpYjNoY0lseHVJQ0FnSUNBZ0lDQnVZVzFsUFh0d2NtOXdjeTV1WVcxbGZWeHVJQ0FnSUNBZ0lDQnZia05vWVc1blpUMTdjSEp2Y0hNdWIyNURhR0Z1WjJWOVhHNGdJQ0FnSUNBZ0lHTm9aV05yWldROWUzQnliM0J6TG1Ob1pXTnJaV1I5WEc0Z0lDQWdJQ0FnSUdGeWFXRXRiR0ZpWld3OWUzQnliM0J6TG5ScGRHeGxmVnh1SUNBZ0lDQWdMejVjYmlBZ0lDQWdJRHhrYVhZZ1kyeGhjM05PWVcxbFBWd2lWRzl2YkVsamIyNWZYMmxqYjI1Y0lqNWNiaUFnSUNBZ0lDQWdlM0J5YjNCekxtTm9aV05yWldRZ1B5QkpRMDlPVXk1RFNFVkRTMFZFSURvZ1NVTlBUbE11VlU1RFNFVkRTMFZFZlZ4dUlDQWdJQ0FnUEM5a2FYWStYRzRnSUNBZ1BDOXNZV0psYkQ1Y2JpQWdLVHRjYm4wN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvUGVuTW9kZUJ1dHRvbi50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvUG9wb3Zlci50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL1BvcG92ZXIudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlBvcG92ZXJcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBQb3BvdmVyKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Qb3BvdmVyX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vUG9wb3Zlci5zY3NzICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1BvcG92ZXIuc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfUG9wb3Zlcl9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX1BvcG92ZXJfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC1kb20gKi8gXFxcInJlYWN0LWRvbVxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyk7XFxuXFxuXFxuXFxuXFxuY29uc3QgUG9wb3ZlciA9ICh7IGNoaWxkcmVuLCBsZWZ0LCB0b3AsIG9uQ2xvc2VSZXF1ZXN0LCBmaXRJblZpZXdwb3J0ID0gZmFsc2UsIG9mZnNldExlZnQgPSAwLCBvZmZzZXRUb3AgPSAwLCB2aWV3cG9ydFdpZHRoID0gd2luZG93LmlubmVyV2lkdGgsIHZpZXdwb3J0SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0LCB9KSA9PiB7XFxuICAgIGNvbnN0IHBvcG92ZXJSZWYgPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZVJlZikobnVsbCk7XFxuICAgIC8vIGVuc3VyZSB0aGUgcG9wb3ZlciBkb2Vzbid0IG92ZXJmbG93IHRoZSB2aWV3cG9ydFxcbiAgICAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZUxheW91dEVmZmVjdCkoKCkgPT4ge1xcbiAgICAgICAgaWYgKGZpdEluVmlld3BvcnQgJiYgcG9wb3ZlclJlZi5jdXJyZW50KSB7XFxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHBvcG92ZXJSZWYuY3VycmVudDtcXG4gICAgICAgICAgICBjb25zdCB7IHgsIHksIHdpZHRoLCBoZWlnaHQgfSA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XFxuICAgICAgICAgICAgaWYgKHggKyB3aWR0aCAtIG9mZnNldExlZnQgPiB2aWV3cG9ydFdpZHRoKSB7XFxuICAgICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IGAke3ZpZXdwb3J0V2lkdGggLSB3aWR0aH1weGA7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICh5ICsgaGVpZ2h0IC0gb2Zmc2V0VG9wID4gdmlld3BvcnRIZWlnaHQpIHtcXG4gICAgICAgICAgICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSBgJHt2aWV3cG9ydEhlaWdodCAtIGhlaWdodH1weGA7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICB9LCBbZml0SW5WaWV3cG9ydCwgdmlld3BvcnRXaWR0aCwgdmlld3BvcnRIZWlnaHQsIG9mZnNldExlZnQsIG9mZnNldFRvcF0pO1xcbiAgICAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZUVmZmVjdCkoKCkgPT4ge1xcbiAgICAgICAgaWYgKG9uQ2xvc2VSZXF1ZXN0KSB7XFxuICAgICAgICAgICAgY29uc3QgaGFuZGxlciA9IChldmVudCkgPT4ge1xcbiAgICAgICAgICAgICAgICB2YXIgX2E7XFxuICAgICAgICAgICAgICAgIGlmICghKChfYSA9IHBvcG92ZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpKSB7XFxuICAgICAgICAgICAgICAgICAgICAoMCxyZWFjdF9kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcykoKCkgPT4gb25DbG9zZVJlcXVlc3QoZXZlbnQpKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcXFwicG9pbnRlcmRvd25cXFwiLCBoYW5kbGVyLCBmYWxzZSk7XFxuICAgICAgICAgICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXFxcInBvaW50ZXJkb3duXFxcIiwgaGFuZGxlciwgZmFsc2UpO1xcbiAgICAgICAgfVxcbiAgICB9LCBbb25DbG9zZVJlcXVlc3RdKTtcXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJwb3BvdmVyXFxcIiwgc3R5bGU6IHsgdG9wLCBsZWZ0IH0sIHJlZjogcG9wb3ZlclJlZiB9LCB7IGNoaWxkcmVuOiBjaGlsZHJlbiB9KSwgdm9pZCAwKSk7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVFiM0J2ZG1WeUxuUnplQzVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3UVVGQmEwVTdRVUZETVVNN1FVRkRORUk3UVVGak4wTXNUVUZCVFN4UFFVRlBMRWRCUVVjc1EwRkJReXhGUVVOMFFpeFJRVUZSTEVWQlExSXNTVUZCU1N4RlFVTktMRWRCUVVjc1JVRkRTQ3hqUVVGakxFVkJRMlFzWVVGQllTeEhRVUZITEV0QlFVc3NSVUZEY2tJc1ZVRkJWU3hIUVVGSExFTkJRVU1zUlVGRFpDeFRRVUZUTEVkQlFVY3NRMEZCUXl4RlFVTmlMR0ZCUVdFc1IwRkJSeXhOUVVGTkxFTkJRVU1zVlVGQlZTeEZRVU5xUXl4alFVRmpMRWRCUVVjc1RVRkJUU3hEUVVGRExGZEJRVmNzUjBGRE4wSXNSVUZCUlN4RlFVRkZPMGxCUTFZc1RVRkJUU3hWUVVGVkxFZEJRVWNzTmtOQlFVMHNRMEZCYVVJc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRmFFUXNiVVJCUVcxRU8wbEJRMjVFTEhORVFVRmxMRU5CUVVNc1IwRkJSeXhGUVVGRk8xRkJRMjVDTEVsQlFVa3NZVUZCWVN4SlFVRkpMRlZCUVZVc1EwRkJReXhQUVVGUExFVkJRVVU3V1VGRGRrTXNUVUZCVFN4UFFVRlBMRWRCUVVjc1ZVRkJWU3hEUVVGRExFOUJRVThzUTBGQlF6dFpRVU51UXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExIRkNRVUZ4UWl4RlFVRkZMRU5CUVVNN1dVRkRhRVVzU1VGQlNTeERRVUZETEVkQlFVY3NTMEZCU3l4SFFVRkhMRlZCUVZVc1IwRkJSeXhoUVVGaExFVkJRVVU3WjBKQlF6RkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEhRVUZITEVkQlFVY3NZVUZCWVN4SFFVRkhMRXRCUVVzc1NVRkJTU3hEUVVGRE8yRkJRMjVFTzFsQlEwUXNTVUZCU1N4RFFVRkRMRWRCUVVjc1RVRkJUU3hIUVVGSExGTkJRVk1zUjBGQlJ5eGpRVUZqTEVWQlFVVTdaMEpCUXpORExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4SFFVRkhMRWRCUVVjc1kwRkJZeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETzJGQlEzQkVPMU5CUTBZN1NVRkRTQ3hEUVVGRExFVkJRVVVzUTBGQlF5eGhRVUZoTEVWQlFVVXNZVUZCWVN4RlFVRkZMR05CUVdNc1JVRkJSU3hWUVVGVkxFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVXhSU3huUkVGQlV5eERRVUZETEVkQlFVY3NSVUZCUlR0UlFVTmlMRWxCUVVrc1kwRkJZeXhGUVVGRk8xbEJRMnhDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRU5CUVVNc1MwRkJiVUlzUlVGQlJTeEZRVUZGT3p0blFrRkRkRU1zU1VGQlNTeERRVUZETEdsQ1FVRlZMRU5CUVVNc1QwRkJUeXd3UTBGQlJTeFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVdNc1EwRkJReXhIUVVGRk8yOUNRVU4yUkN4clJVRkJkVUlzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4alFVRmpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dHBRa0ZEZEVRN1dVRkRTQ3hEUVVGRExFTkJRVU03V1VGRFJpeFJRVUZSTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zWVVGQllTeEZRVUZGTEU5QlFVOHNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRaUVVONlJDeFBRVUZQTEVkQlFVY3NSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4aFFVRmhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFOQlF6RkZPMGxCUTBnc1EwRkJReXhGUVVGRkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVnlRaXhQUVVGUExFTkJRMHdzT0VWQlFVc3NVMEZCVXl4RlFVRkRMRk5CUVZNc1JVRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeEhRVUZITEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVc1IwRkJSeXhGUVVGRkxGVkJRVlVzWjBKQlF6TkVMRkZCUVZFc1dVRkRUQ3hEUVVOUUxFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5UWIzQnZkbVZ5TG5SemVEOHdOR0ZrSWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCU1pXRmpkQ3dnZXlCMWMyVk1ZWGx2ZFhSRlptWmxZM1FzSUhWelpWSmxaaXdnZFhObFJXWm1aV04wSUgwZ1puSnZiU0JjSW5KbFlXTjBYQ0k3WEc1cGJYQnZjblFnWENJdUwxQnZjRzkyWlhJdWMyTnpjMXdpTzF4dWFXMXdiM0owSUhzZ2RXNXpkR0ZpYkdWZlltRjBZMmhsWkZWd1pHRjBaWE1nZlNCbWNtOXRJRndpY21WaFkzUXRaRzl0WENJN1hHNWNiblI1Y0dVZ1VISnZjSE1nUFNCN1hHNGdJSFJ2Y0Q4NklHNTFiV0psY2p0Y2JpQWdiR1ZtZEQ4NklHNTFiV0psY2p0Y2JpQWdZMmhwYkdSeVpXNC9PaUJTWldGamRDNVNaV0ZqZEU1dlpHVTdYRzRnSUc5dVEyeHZjMlZTWlhGMVpYTjBQeWhsZG1WdWREb2dVRzlwYm5SbGNrVjJaVzUwS1RvZ2RtOXBaRHRjYmlBZ1ptbDBTVzVXYVdWM2NHOXlkRDg2SUdKdmIyeGxZVzQ3WEc0Z0lHOW1abk5sZEV4bFpuUS9PaUJ1ZFcxaVpYSTdYRzRnSUc5bVpuTmxkRlJ2Y0Q4NklHNTFiV0psY2p0Y2JpQWdkbWxsZDNCdmNuUlhhV1IwYUQ4NklHNTFiV0psY2p0Y2JpQWdkbWxsZDNCdmNuUklaV2xuYUhRL09pQnVkVzFpWlhJN1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdVRzl3YjNabGNpQTlJQ2g3WEc0Z0lHTm9hV3hrY21WdUxGeHVJQ0JzWldaMExGeHVJQ0IwYjNBc1hHNGdJRzl1UTJ4dmMyVlNaWEYxWlhOMExGeHVJQ0JtYVhSSmJsWnBaWGR3YjNKMElEMGdabUZzYzJVc1hHNGdJRzltWm5ObGRFeGxablFnUFNBd0xGeHVJQ0J2Wm1aelpYUlViM0FnUFNBd0xGeHVJQ0IyYVdWM2NHOXlkRmRwWkhSb0lEMGdkMmx1Wkc5M0xtbHVibVZ5VjJsa2RHZ3NYRzRnSUhacFpYZHdiM0owU0dWcFoyaDBJRDBnZDJsdVpHOTNMbWx1Ym1WeVNHVnBaMmgwTEZ4dWZUb2dVSEp2Y0hNcElEMCtJSHRjYmlBZ1kyOXVjM1FnY0c5d2IzWmxjbEpsWmlBOUlIVnpaVkpsWmp4SVZFMU1SR2wyUld4bGJXVnVkRDRvYm5Wc2JDazdYRzVjYmlBZ0x5OGdaVzV6ZFhKbElIUm9aU0J3YjNCdmRtVnlJR1J2WlhOdUozUWdiM1psY21ac2IzY2dkR2hsSUhacFpYZHdiM0owWEc0Z0lIVnpaVXhoZVc5MWRFVm1abVZqZENnb0tTQTlQaUI3WEc0Z0lDQWdhV1lnS0dacGRFbHVWbWxsZDNCdmNuUWdKaVlnY0c5d2IzWmxjbEpsWmk1amRYSnlaVzUwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JsYkdWdFpXNTBJRDBnY0c5d2IzWmxjbEpsWmk1amRYSnlaVzUwTzF4dUlDQWdJQ0FnWTI5dWMzUWdleUI0TENCNUxDQjNhV1IwYUN3Z2FHVnBaMmgwSUgwZ1BTQmxiR1Z0Wlc1MExtZGxkRUp2ZFc1a2FXNW5RMnhwWlc1MFVtVmpkQ2dwTzF4dUlDQWdJQ0FnYVdZZ0tIZ2dLeUIzYVdSMGFDQXRJRzltWm5ObGRFeGxablFnUGlCMmFXVjNjRzl5ZEZkcFpIUm9LU0I3WEc0Z0lDQWdJQ0FnSUdWc1pXMWxiblF1YzNSNWJHVXViR1ZtZENBOUlHQWtlM1pwWlhkd2IzSjBWMmxrZEdnZ0xTQjNhV1IwYUgxd2VHQTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnBaaUFvZVNBcklHaGxhV2RvZENBdElHOW1abk5sZEZSdmNDQStJSFpwWlhkd2IzSjBTR1ZwWjJoMEtTQjdYRzRnSUNBZ0lDQWdJR1ZzWlcxbGJuUXVjM1I1YkdVdWRHOXdJRDBnWUNSN2RtbGxkM0J2Y25SSVpXbG5hSFFnTFNCb1pXbG5hSFI5Y0hoZ08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmU3dnVzJacGRFbHVWbWxsZDNCdmNuUXNJSFpwWlhkd2IzSjBWMmxrZEdnc0lIWnBaWGR3YjNKMFNHVnBaMmgwTENCdlptWnpaWFJNWldaMExDQnZabVp6WlhSVWIzQmRLVHRjYmx4dUlDQjFjMlZGWm1abFkzUW9LQ2tnUFQ0Z2UxeHVJQ0FnSUdsbUlDaHZia05zYjNObFVtVnhkV1Z6ZENrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYUdGdVpHeGxjaUE5SUNobGRtVnVkRG9nVUc5cGJuUmxja1YyWlc1MEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hjRzl3YjNabGNsSmxaaTVqZFhKeVpXNTBQeTVqYjI1MFlXbHVjeWhsZG1WdWRDNTBZWEpuWlhRZ1lYTWdUbTlrWlNrcElIdGNiaUFnSUNBZ0lDQWdJQ0IxYm5OMFlXSnNaVjlpWVhSamFHVmtWWEJrWVhSbGN5Z29LU0E5UGlCdmJrTnNiM05sVW1WeGRXVnpkQ2hsZG1WdWRDa3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5TzF4dUlDQWdJQ0FnWkc5amRXMWxiblF1WVdSa1JYWmxiblJNYVhOMFpXNWxjaWhjSW5CdmFXNTBaWEprYjNkdVhDSXNJR2hoYm1Sc1pYSXNJR1poYkhObEtUdGNiaUFnSUNBZ0lISmxkSFZ5YmlBb0tTQTlQaUJrYjJOMWJXVnVkQzV5WlcxdmRtVkZkbVZ1ZEV4cGMzUmxibVZ5S0Z3aWNHOXBiblJsY21SdmQyNWNJaXdnYUdGdVpHeGxjaXdnWm1Gc2MyVXBPMXh1SUNBZ0lIMWNiaUFnZlN3Z1cyOXVRMnh2YzJWU1pYRjFaWE4wWFNrN1hHNWNiaUFnY21WMGRYSnVJQ2hjYmlBZ0lDQThaR2wySUdOc1lYTnpUbUZ0WlQxY0luQnZjRzkyWlhKY0lpQnpkSGxzWlQxN2V5QjBiM0FzSUd4bFpuUWdmWDBnY21WbVBYdHdiM0J2ZG1WeVVtVm1mVDVjYmlBZ0lDQWdJSHRqYUdsc1pISmxibjFjYmlBZ0lDQThMMlJwZGo1Y2JpQWdLVHRjYm4wN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvUG9wb3Zlci50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvUHJvamVjdE5hbWUudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvUHJvamVjdE5hbWUudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJQcm9qZWN0TmFtZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFByb2plY3ROYW1lKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVGV4dElucHV0X3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vVGV4dElucHV0LnNjc3MgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVGV4dElucHV0LnNjc3NcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1RleHRJbnB1dF9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX1RleHRJbnB1dF9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vdXRpbHMgKi8gXFxcIi4uLy4uL3V0aWxzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Qcm9qZWN0TmFtZV9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1Byb2plY3ROYW1lLnNjc3MgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvUHJvamVjdE5hbWUuc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfUHJvamVjdE5hbWVfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9Qcm9qZWN0TmFtZV9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0FwcCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9BcHAudHN4XFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgUHJvamVjdE5hbWUgPSAocHJvcHMpID0+IHtcXG4gICAgY29uc3QgeyBpZCB9ID0gKDAsX0FwcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnVzZUV4Y2FsaWRyYXdDb250YWluZXIpKCk7XFxuICAgIGNvbnN0IFtmaWxlTmFtZSwgc2V0RmlsZU5hbWVdID0gKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy51c2VTdGF0ZSkocHJvcHMudmFsdWUpO1xcbiAgICBjb25zdCBoYW5kbGVCbHVyID0gKGV2ZW50KSA9PiB7XFxuICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5mb2N1c05lYXJlc3RQYXJlbnQpKGV2ZW50LnRhcmdldCk7XFxuICAgICAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcXG4gICAgICAgIGlmICh2YWx1ZSAhPT0gcHJvcHMudmFsdWUpIHtcXG4gICAgICAgICAgICBwcm9wcy5vbkNoYW5nZSh2YWx1ZSk7XFxuICAgICAgICB9XFxuICAgIH07XFxuICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQpID0+IHtcXG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IFxcXCJFbnRlclxcXCIpIHtcXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xcbiAgICAgICAgICAgIGlmIChldmVudC5uYXRpdmVFdmVudC5pc0NvbXBvc2luZyB8fCBldmVudC5rZXlDb2RlID09PSAyMjkpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBldmVudC5jdXJyZW50VGFyZ2V0LmJsdXIoKTtcXG4gICAgICAgIH1cXG4gICAgfTtcXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiUHJvamVjdE5hbWVcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImxhYmVsXFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcIlByb2plY3ROYW1lLWxhYmVsXFxcIiwgaHRtbEZvcjogXFxcImZpbGVuYW1lXFxcIiB9LCB7IGNoaWxkcmVuOiBgJHtwcm9wcy5sYWJlbH0ke3Byb3BzLmlzTmFtZUVkaXRhYmxlID8gXFxcIlxcXCIgOiBcXFwiOlxcXCJ9YCB9KSwgdm9pZCAwKSwgcHJvcHMuaXNOYW1lRWRpdGFibGUgPyAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJpbnB1dFxcXCIsIHsgdHlwZTogXFxcInRleHRcXFwiLCBjbGFzc05hbWU6IFxcXCJUZXh0SW5wdXRcXFwiLCBvbkJsdXI6IGhhbmRsZUJsdXIsIG9uS2V5RG93bjogaGFuZGxlS2V5RG93biwgaWQ6IGAke2lkfS1maWxlbmFtZWAsIHZhbHVlOiBmaWxlTmFtZSwgb25DaGFuZ2U6IChldmVudCkgPT4gc2V0RmlsZU5hbWUoZXZlbnQudGFyZ2V0LnZhbHVlKSB9LCB2b2lkIDApKSA6ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInNwYW5cXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiVGV4dElucHV0IFRleHRJbnB1dC0tcmVhZG9ubHlcXFwiLCBpZDogYCR7aWR9LWZpbGVuYW1lYCB9LCB7IGNoaWxkcmVuOiBwcm9wcy52YWx1ZSB9KSwgdm9pZCAwKSldIH0pLCB2b2lkIDApKTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5UWNtOXFaV04wVG1GdFpTNTBjM2d1YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN1FVRkJNRUk3UVVGRll6dEJRVU5OTzBGQlJXeENPMEZCUTIxQ08wRkJVM2hETEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUVVNc1MwRkJXU3hGUVVGRkxFVkJRVVU3U1VGRE1VTXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkJSU3hIUVVGSExEUkVRVUZ6UWl4RlFVRkZMRU5CUVVNN1NVRkRlRU1zVFVGQlRTeERRVUZETEZGQlFWRXNSVUZCUlN4WFFVRlhMRU5CUVVNc1IwRkJSeXdyUTBGQlVTeERRVUZUTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVVNVJDeE5RVUZOTEZWQlFWVXNSMEZCUnl4RFFVRkRMRXRCUVZVc1JVRkJSU3hGUVVGRk8xRkJRMmhETERCRVFVRnJRaXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTnFReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJRenRSUVVOcVF5eEpRVUZKTEV0QlFVc3NTMEZCU3l4TFFVRkxMRU5CUVVNc1MwRkJTeXhGUVVGRk8xbEJRM3BDTEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VTBGRGRrSTdTVUZEU0N4RFFVRkRMRU5CUVVNN1NVRkZSaXhOUVVGTkxHRkJRV0VzUjBGQlJ5eERRVUZETEV0QlFYVkRMRVZCUVVVc1JVRkJSVHRSUVVOb1JTeEpRVUZKTEV0QlFVc3NRMEZCUXl4SFFVRkhMRXRCUVVzc1QwRkJUeXhGUVVGRk8xbEJRM3BDTEV0QlFVc3NRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenRaUVVOMlFpeEpRVUZKTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUVVNc1YwRkJWeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEV0QlFVc3NSMEZCUnl4RlFVRkZPMmRDUVVNeFJDeFBRVUZQTzJGQlExSTdXVUZEUkN4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFOQlF6VkNPMGxCUTBnc1EwRkJReXhEUVVGRE8wbEJSVVlzVDBGQlR5eERRVU5NTEN0RlFVRkxMRk5CUVZNc1JVRkJReXhoUVVGaExHbENRVU14UWl4blJrRkJUeXhUUVVGVExFVkJRVU1zYlVKQlFXMUNMRVZCUVVNc1QwRkJUeXhGUVVGRExGVkJRVlVzWjBKQlEzQkVMRWRCUVVjc1MwRkJTeXhEUVVGRExFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4WlFVTTNReXhGUVVOUUxFdEJRVXNzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUTNSQ0xHdEZRVU5GTEVsQlFVa3NSVUZCUXl4TlFVRk5MRVZCUTFnc1UwRkJVeXhGUVVGRExGZEJRVmNzUlVGRGNrSXNUVUZCVFN4RlFVRkZMRlZCUVZVc1JVRkRiRUlzVTBGQlV5eEZRVUZGTEdGQlFXRXNSVUZEZUVJc1JVRkJSU3hGUVVGRkxFZEJRVWNzUlVGQlJTeFhRVUZYTEVWQlEzQkNMRXRCUVVzc1JVRkJSU3hSUVVGUkxFVkJRMllzVVVGQlVTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkRjRVFzUTBGRFNDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVTkdMQ3RGUVVGTkxGTkJRVk1zUlVGQlF5d3JRa0ZCSzBJc1JVRkJReXhGUVVGRkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEZkQlFWY3NaMEpCUTJwRkxFdEJRVXNzUTBGQlF5eExRVUZMTEZsQlExQXNRMEZEVWl4aFFVTkhMRU5CUTFBc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDFCeWIycGxZM1JPWVcxbExuUnplRDg1TURCa0lsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQmNJaTR2VkdWNGRFbHVjSFYwTG5OamMzTmNJanRjYmx4dWFXMXdiM0owSUZKbFlXTjBMQ0I3SUhWelpWTjBZWFJsSUgwZ1puSnZiU0JjSW5KbFlXTjBYQ0k3WEc1cGJYQnZjblFnZXlCbWIyTjFjMDVsWVhKbGMzUlFZWEpsYm5RZ2ZTQm1jbTl0SUZ3aUxpNHZkWFJwYkhOY0lqdGNibHh1YVcxd2IzSjBJRndpTGk5UWNtOXFaV04wVG1GdFpTNXpZM056WENJN1hHNXBiWEJ2Y25RZ2V5QjFjMlZGZUdOaGJHbGtjbUYzUTI5dWRHRnBibVZ5SUgwZ1puSnZiU0JjSWk0dlFYQndYQ0k3WEc1Y2JuUjVjR1VnVUhKdmNITWdQU0I3WEc0Z0lIWmhiSFZsT2lCemRISnBibWM3WEc0Z0lHOXVRMmhoYm1kbE9pQW9kbUZzZFdVNklITjBjbWx1WnlrZ1BUNGdkbTlwWkR0Y2JpQWdiR0ZpWld3NklITjBjbWx1Wnp0Y2JpQWdhWE5PWVcxbFJXUnBkR0ZpYkdVNklHSnZiMnhsWVc0N1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdVSEp2YW1WamRFNWhiV1VnUFNBb2NISnZjSE02SUZCeWIzQnpLU0E5UGlCN1hHNGdJR052Ym5OMElIc2dhV1FnZlNBOUlIVnpaVVY0WTJGc2FXUnlZWGREYjI1MFlXbHVaWElvS1R0Y2JpQWdZMjl1YzNRZ1cyWnBiR1ZPWVcxbExDQnpaWFJHYVd4bFRtRnRaVjBnUFNCMWMyVlRkR0YwWlR4emRISnBibWMrS0hCeWIzQnpMblpoYkhWbEtUdGNibHh1SUNCamIyNXpkQ0JvWVc1a2JHVkNiSFZ5SUQwZ0tHVjJaVzUwT2lCaGJua3BJRDArSUh0Y2JpQWdJQ0JtYjJOMWMwNWxZWEpsYzNSUVlYSmxiblFvWlhabGJuUXVkR0Z5WjJWMEtUdGNiaUFnSUNCamIyNXpkQ0IyWVd4MVpTQTlJR1YyWlc1MExuUmhjbWRsZEM1MllXeDFaVHRjYmlBZ0lDQnBaaUFvZG1Gc2RXVWdJVDA5SUhCeWIzQnpMblpoYkhWbEtTQjdYRzRnSUNBZ0lDQndjbTl3Y3k1dmJrTm9ZVzVuWlNoMllXeDFaU2s3WEc0Z0lDQWdmVnh1SUNCOU8xeHVYRzRnSUdOdmJuTjBJR2hoYm1Sc1pVdGxlVVJ2ZDI0Z1BTQW9aWFpsYm5RNklGSmxZV04wTGt0bGVXSnZZWEprUlhabGJuUThTRlJOVEVWc1pXMWxiblErS1NBOVBpQjdYRzRnSUNBZ2FXWWdLR1YyWlc1MExtdGxlU0E5UFQwZ1hDSkZiblJsY2x3aUtTQjdYRzRnSUNBZ0lDQmxkbVZ1ZEM1d2NtVjJaVzUwUkdWbVlYVnNkQ2dwTzF4dUlDQWdJQ0FnYVdZZ0tHVjJaVzUwTG01aGRHbDJaVVYyWlc1MExtbHpRMjl0Y0c5emFXNW5JSHg4SUdWMlpXNTBMbXRsZVVOdlpHVWdQVDA5SURJeU9Ta2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQmxkbVZ1ZEM1amRYSnlaVzUwVkdGeVoyVjBMbUpzZFhJb0tUdGNiaUFnSUNCOVhHNGdJSDA3WEc1Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNBOFpHbDJJR05zWVhOelRtRnRaVDFjSWxCeWIycGxZM1JPWVcxbFhDSStYRzRnSUNBZ0lDQThiR0ZpWld3Z1kyeGhjM05PWVcxbFBWd2lVSEp2YW1WamRFNWhiV1V0YkdGaVpXeGNJaUJvZEcxc1JtOXlQVndpWm1sc1pXNWhiV1ZjSWo1Y2JpQWdJQ0FnSUNBZ2UyQWtlM0J5YjNCekxteGhZbVZzZlNSN2NISnZjSE11YVhOT1lXMWxSV1JwZEdGaWJHVWdQeUJjSWx3aUlEb2dYQ0k2WENKOVlIMWNiaUFnSUNBZ0lEd3ZiR0ZpWld3K1hHNGdJQ0FnSUNCN2NISnZjSE11YVhOT1lXMWxSV1JwZEdGaWJHVWdQeUFvWEc0Z0lDQWdJQ0FnSUR4cGJuQjFkRnh1SUNBZ0lDQWdJQ0FnSUhSNWNHVTlYQ0owWlhoMFhDSmNiaUFnSUNBZ0lDQWdJQ0JqYkdGemMwNWhiV1U5WENKVVpYaDBTVzV3ZFhSY0lseHVJQ0FnSUNBZ0lDQWdJRzl1UW14MWNqMTdhR0Z1Wkd4bFFteDFjbjFjYmlBZ0lDQWdJQ0FnSUNCdmJrdGxlVVJ2ZDI0OWUyaGhibVJzWlV0bGVVUnZkMjU5WEc0Z0lDQWdJQ0FnSUNBZ2FXUTllMkFrZTJsa2ZTMW1hV3hsYm1GdFpXQjlYRzRnSUNBZ0lDQWdJQ0FnZG1Gc2RXVTllMlpwYkdWT1lXMWxmVnh1SUNBZ0lDQWdJQ0FnSUc5dVEyaGhibWRsUFhzb1pYWmxiblFwSUQwK0lITmxkRVpwYkdWT1lXMWxLR1YyWlc1MExuUmhjbWRsZEM1MllXeDFaU2w5WEc0Z0lDQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBcElEb2dLRnh1SUNBZ0lDQWdJQ0E4YzNCaGJpQmpiR0Z6YzA1aGJXVTlYQ0pVWlhoMFNXNXdkWFFnVkdWNGRFbHVjSFYwTFMxeVpXRmtiMjVzZVZ3aUlHbGtQWHRnSkh0cFpIMHRabWxzWlc1aGJXVmdmVDVjYmlBZ0lDQWdJQ0FnSUNCN2NISnZjSE11ZG1Gc2RXVjlYRzRnSUNBZ0lDQWdJRHd2YzNCaGJqNWNiaUFnSUNBZ0lDbDlYRzRnSUNBZ1BDOWthWFkrWEc0Z0lDazdYRzU5TzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9Qcm9qZWN0TmFtZS50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvUHVibGlzaExpYnJhcnkudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvUHVibGlzaExpYnJhcnkudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkZWZhdWx0XFxcIjogKCkgPT4gKF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIG9wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIG9wZW4tY29sb3IgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9vcGVuLWNvbG9yL29wZW4tY29sb3IuanNvblxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfRGlhbG9nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0RpYWxvZyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9EaWFsb2cudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pMThuICovIFxcXCIuLi8uLi9pMThuLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1Rvb2xCdXR0b24gKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVG9vbEJ1dHRvbi50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy91dGlscyAqLyBcXFwiLi4vdXRpbHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29uc3RhbnRzICovIFxcXCIuLi8uLi9jb25zdGFudHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1B1Ymxpc2hMaWJyYXJ5X3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vUHVibGlzaExpYnJhcnkuc2NzcyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9QdWJsaXNoTGlicmFyeS5zY3NzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9QdWJsaXNoTGlicmFyeV9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX1B1Ymxpc2hMaWJyYXJ5X3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9TaW5nbGVMaWJyYXJ5SXRlbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9TaW5nbGVMaWJyYXJ5SXRlbSAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9TaW5nbGVMaWJyYXJ5SXRlbS50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2RhdGFfYmxvYl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2RhdGEvYmxvYiAqLyBcXFwiLi4vLi4vZGF0YS9ibG9iLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcbnZhciBfX2F3YWl0ZXIgPSAodW5kZWZpbmVkICYmIHVuZGVmaW5lZC5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XFxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXFxcInRocm93XFxcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcXG4gICAgfSk7XFxufTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBMT0NBTF9TVE9SQUdFX0tFWV9QVUJMSVNIX0xJQlJBUlkgPSBcXFwicHVibGlzaC1saWJyYXJ5LWRhdGFcXFwiO1xcbmNvbnN0IHNhdmVQdWJsaXNoTGliRGF0YVRvU3RvcmFnZSA9IChkYXRhKSA9PiB7XFxuICAgIHRyeSB7XFxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShMT0NBTF9TVE9SQUdFX0tFWV9QVUJMSVNIX0xJQlJBUlksIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcXG4gICAgfVxcbiAgICBjYXRjaCAoZXJyb3IpIHtcXG4gICAgICAgIC8vIFVuYWJsZSB0byBhY2Nlc3Mgd2luZG93LmxvY2FsU3RvcmFnZVxcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XFxuICAgIH1cXG59O1xcbmNvbnN0IGltcG9ydFB1Ymxpc2hMaWJEYXRhRnJvbVN0b3JhZ2UgPSAoKSA9PiB7XFxuICAgIHRyeSB7XFxuICAgICAgICBjb25zdCBkYXRhID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oTE9DQUxfU1RPUkFHRV9LRVlfUFVCTElTSF9MSUJSQVJZKTtcXG4gICAgICAgIGlmIChkYXRhKSB7XFxuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgY2F0Y2ggKGVycm9yKSB7XFxuICAgICAgICAvLyBVbmFibGUgdG8gYWNjZXNzIGxvY2FsU3RvcmFnZVxcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XFxuICAgIH1cXG4gICAgcmV0dXJuIG51bGw7XFxufTtcXG5jb25zdCBnZW5lcmF0ZVByZXZpZXdJbWFnZSA9IChsaWJyYXJ5SXRlbXMpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICBjb25zdCBNQVhfSVRFTVNfUEVSX1JPVyA9IDY7XFxuICAgIGNvbnN0IEJPWF9TSVpFID0gMTI4O1xcbiAgICBjb25zdCBCT1hfUEFERElORyA9IE1hdGgucm91bmQoQk9YX1NJWkUgLyAxNik7XFxuICAgIGNvbnN0IEJPUkRFUl9XSURUSCA9IE1hdGgubWF4KE1hdGgucm91bmQoQk9YX1NJWkUgLyA2NCksIDIpO1xcbiAgICBjb25zdCByb3dzID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLmNodW5rKShsaWJyYXJ5SXRlbXMsIE1BWF9JVEVNU19QRVJfUk9XKTtcXG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcXFwiY2FudmFzXFxcIik7XFxuICAgIGNhbnZhcy53aWR0aCA9XFxuICAgICAgICByb3dzWzBdLmxlbmd0aCAqIEJPWF9TSVpFICtcXG4gICAgICAgICAgICAocm93c1swXS5sZW5ndGggKyAxKSAqIChCT1hfUEFERElORyAqIDIpIC1cXG4gICAgICAgICAgICBCT1hfUEFERElORyAqIDI7XFxuICAgIGNhbnZhcy5oZWlnaHQgPVxcbiAgICAgICAgcm93cy5sZW5ndGggKiBCT1hfU0laRSArXFxuICAgICAgICAgICAgKHJvd3MubGVuZ3RoICsgMSkgKiAoQk9YX1BBRERJTkcgKiAyKSAtXFxuICAgICAgICAgICAgQk9YX1BBRERJTkcgKiAyO1xcbiAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dChcXFwiMmRcXFwiKTtcXG4gICAgY3R4LmZpbGxTdHlsZSA9IG9wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy53aGl0ZTtcXG4gICAgY3R4LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XFxuICAgIC8vIGRyYXcgaXRlbXNcXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgIGZvciAoY29uc3QgW2luZGV4LCBpdGVtXSBvZiBsaWJyYXJ5SXRlbXMuZW50cmllcygpKSB7XFxuICAgICAgICBjb25zdCBpdGVtQ2FudmFzID0geWllbGQgKDAsX3BhY2thZ2VzX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uZXhwb3J0VG9DYW52YXMpKHtcXG4gICAgICAgICAgICBlbGVtZW50czogaXRlbS5lbGVtZW50cyxcXG4gICAgICAgICAgICBmaWxlczogbnVsbCxcXG4gICAgICAgICAgICBtYXhXaWR0aE9ySGVpZ2h0OiBCT1hfU0laRSxcXG4gICAgICAgIH0pO1xcbiAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBpdGVtQ2FudmFzO1xcbiAgICAgICAgLy8gZHJhdyBpdGVtXFxuICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgICAgICBjb25zdCByb3dPZmZzZXQgPSBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0lURU1TX1BFUl9ST1cpICogKEJPWF9TSVpFICsgQk9YX1BBRERJTkcgKiAyKTtcXG4gICAgICAgIGNvbnN0IGNvbE9mZnNldCA9IChpbmRleCAlIE1BWF9JVEVNU19QRVJfUk9XKSAqIChCT1hfU0laRSArIEJPWF9QQURESU5HICogMik7XFxuICAgICAgICBjdHguZHJhd0ltYWdlKGl0ZW1DYW52YXMsIGNvbE9mZnNldCArIChCT1hfU0laRSAtIHdpZHRoKSAvIDIgKyBCT1hfUEFERElORywgcm93T2Zmc2V0ICsgKEJPWF9TSVpFIC0gaGVpZ2h0KSAvIDIgKyBCT1hfUEFERElORyk7XFxuICAgICAgICAvLyBkcmF3IGl0ZW0gYm9yZGVyXFxuICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgICAgICBjdHgubGluZVdpZHRoID0gQk9SREVSX1dJRFRIO1xcbiAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gb3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdyYXlbNF07XFxuICAgICAgICBjdHguc3Ryb2tlUmVjdChjb2xPZmZzZXQgKyBCT1hfUEFERElORyAvIDIsIHJvd09mZnNldCArIEJPWF9QQURESU5HIC8gMiwgQk9YX1NJWkUgKyBCT1hfUEFERElORywgQk9YX1NJWkUgKyBCT1hfUEFERElORyk7XFxuICAgIH1cXG4gICAgcmV0dXJuIHlpZWxkICgwLF9kYXRhX2Jsb2JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18ucmVzaXplSW1hZ2VGaWxlKShuZXcgRmlsZShbeWllbGQgKDAsX2RhdGFfYmxvYl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5jYW52YXNUb0Jsb2IpKGNhbnZhcyldLCBcXFwicHJldmlld1xcXCIsIHsgdHlwZTogX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLk1JTUVfVFlQRVMucG5nIH0pLCB7XFxuICAgICAgICBvdXRwdXRUeXBlOiBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uTUlNRV9UWVBFUy5qcGcsXFxuICAgICAgICBtYXhXaWR0aE9ySGVpZ2h0OiA1MDAwLFxcbiAgICB9KTtcXG59KTtcXG5jb25zdCBQdWJsaXNoTGlicmFyeSA9ICh7IG9uQ2xvc2UsIGxpYnJhcnlJdGVtcywgYXBwU3RhdGUsIG9uU3VjY2Vzcywgb25FcnJvciwgdXBkYXRlSXRlbXNJblN0b3JhZ2UsIG9uUmVtb3ZlLCB9KSA9PiB7XFxuICAgIGNvbnN0IFtsaWJyYXJ5RGF0YSwgc2V0TGlicmFyeURhdGFdID0gKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51c2VTdGF0ZSkoe1xcbiAgICAgICAgYXV0aG9yTmFtZTogXFxcIlxcXCIsXFxuICAgICAgICBnaXRodWJIYW5kbGU6IFxcXCJcXFwiLFxcbiAgICAgICAgbmFtZTogXFxcIlxcXCIsXFxuICAgICAgICBkZXNjcmlwdGlvbjogXFxcIlxcXCIsXFxuICAgICAgICB0d2l0dGVySGFuZGxlOiBcXFwiXFxcIixcXG4gICAgICAgIHdlYnNpdGU6IFxcXCJcXFwiLFxcbiAgICB9KTtcXG4gICAgY29uc3QgW2lzU3VibWl0dGluZywgc2V0SXNTdWJtaXR0aW5nXSA9ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udXNlU3RhdGUpKGZhbHNlKTtcXG4gICAgKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51c2VFZmZlY3QpKCgpID0+IHtcXG4gICAgICAgIGNvbnN0IGRhdGEgPSBpbXBvcnRQdWJsaXNoTGliRGF0YUZyb21TdG9yYWdlKCk7XFxuICAgICAgICBpZiAoZGF0YSkge1xcbiAgICAgICAgICAgIHNldExpYnJhcnlEYXRhKGRhdGEpO1xcbiAgICAgICAgfVxcbiAgICB9LCBbXSk7XFxuICAgIGNvbnN0IFtjbG9uZWRMaWJJdGVtcywgc2V0Q2xvbmVkTGliSXRlbXNdID0gKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51c2VTdGF0ZSkobGlicmFyeUl0ZW1zLnNsaWNlKCkpO1xcbiAgICAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZUVmZmVjdCkoKCkgPT4ge1xcbiAgICAgICAgc2V0Q2xvbmVkTGliSXRlbXMobGlicmFyeUl0ZW1zLnNsaWNlKCkpO1xcbiAgICB9LCBbbGlicmFyeUl0ZW1zXSk7XFxuICAgIGNvbnN0IG9uSW5wdXRDaGFuZ2UgPSAoZXZlbnQpID0+IHtcXG4gICAgICAgIHNldExpYnJhcnlEYXRhKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgbGlicmFyeURhdGEpLCB7IFtldmVudC50YXJnZXQubmFtZV06IGV2ZW50LnRhcmdldC52YWx1ZSB9KSk7XFxuICAgIH07XFxuICAgIGNvbnN0IG9uU3VibWl0ID0gKGV2ZW50KSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XFxuICAgICAgICBzZXRJc1N1Ym1pdHRpbmcodHJ1ZSk7XFxuICAgICAgICBjb25zdCBlcnJvcmVkTGliSXRlbXMgPSBbXTtcXG4gICAgICAgIGxldCBpc0Vycm9yID0gZmFsc2U7XFxuICAgICAgICBjbG9uZWRMaWJJdGVtcy5mb3JFYWNoKChsaWJJdGVtKSA9PiB7XFxuICAgICAgICAgICAgbGV0IGVycm9yID0gXFxcIlxcXCI7XFxuICAgICAgICAgICAgaWYgKCFsaWJJdGVtLm5hbWUpIHtcXG4gICAgICAgICAgICAgICAgZXJyb3IgPSAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJwdWJsaXNoRGlhbG9nLmVycm9ycy5yZXF1aXJlZFxcXCIpO1xcbiAgICAgICAgICAgICAgICBpc0Vycm9yID0gdHJ1ZTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZXJyb3JlZExpYkl0ZW1zLnB1c2goT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBsaWJJdGVtKSwgeyBlcnJvciB9KSk7XFxuICAgICAgICB9KTtcXG4gICAgICAgIGlmIChpc0Vycm9yKSB7XFxuICAgICAgICAgICAgc2V0Q2xvbmVkTGliSXRlbXMoZXJyb3JlZExpYkl0ZW1zKTtcXG4gICAgICAgICAgICBzZXRJc1N1Ym1pdHRpbmcoZmFsc2UpO1xcbiAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IHByZXZpZXdJbWFnZSA9IHlpZWxkIGdlbmVyYXRlUHJldmlld0ltYWdlKGNsb25lZExpYkl0ZW1zKTtcXG4gICAgICAgIGNvbnN0IGxpYkNvbnRlbnQgPSB7XFxuICAgICAgICAgICAgdHlwZTogX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLkVYUE9SVF9EQVRBX1RZUEVTLmV4Y2FsaWRyYXdMaWJyYXJ5LFxcbiAgICAgICAgICAgIHZlcnNpb246IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5WRVJTSU9OUy5leGNhbGlkcmF3TGlicmFyeSxcXG4gICAgICAgICAgICBzb3VyY2U6IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5FWFBPUlRfU09VUkNFLFxcbiAgICAgICAgICAgIGxpYnJhcnlJdGVtczogY2xvbmVkTGliSXRlbXMsXFxuICAgICAgICB9O1xcbiAgICAgICAgY29uc3QgY29udGVudCA9IEpTT04uc3RyaW5naWZ5KGxpYkNvbnRlbnQsIG51bGwsIDIpO1xcbiAgICAgICAgY29uc3QgbGliID0gbmV3IEJsb2IoW2NvbnRlbnRdLCB7IHR5cGU6IFxcXCJhcHBsaWNhdGlvbi9qc29uXFxcIiB9KTtcXG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XFxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXFxcImV4Y2FsaWRyYXdMaWJcXFwiLCBsaWIpO1xcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxcXCJwcmV2aWV3SW1hZ2VcXFwiLCBwcmV2aWV3SW1hZ2UpO1xcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxcXCJwcmV2aWV3SW1hZ2VUeXBlXFxcIiwgcHJldmlld0ltYWdlLnR5cGUpO1xcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxcXCJ0aXRsZVxcXCIsIGxpYnJhcnlEYXRhLm5hbWUpO1xcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxcXCJhdXRob3JOYW1lXFxcIiwgbGlicmFyeURhdGEuYXV0aG9yTmFtZSk7XFxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXFxcImdpdGh1YkhhbmRsZVxcXCIsIGxpYnJhcnlEYXRhLmdpdGh1YkhhbmRsZSk7XFxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXFxcIm5hbWVcXFwiLCBsaWJyYXJ5RGF0YS5uYW1lKTtcXG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChcXFwiZGVzY3JpcHRpb25cXFwiLCBsaWJyYXJ5RGF0YS5kZXNjcmlwdGlvbik7XFxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXFxcInR3aXR0ZXJIYW5kbGVcXFwiLCBsaWJyYXJ5RGF0YS50d2l0dGVySGFuZGxlKTtcXG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChcXFwid2Vic2l0ZVxcXCIsIGxpYnJhcnlEYXRhLndlYnNpdGUpO1xcbiAgICAgICAgZmV0Y2goYCR7XFxcImh0dHBzOi8vdXMtY2VudHJhbDEtZXhjYWxpZHJhdy1yb29tLXBlcnNpc3RlbmNlLmNsb3VkZnVuY3Rpb25zLm5ldC9saWJyYXJpZXNcXFwifS9zdWJtaXRgLCB7XFxuICAgICAgICAgICAgbWV0aG9kOiBcXFwicG9zdFxcXCIsXFxuICAgICAgICAgICAgYm9keTogZm9ybURhdGEsXFxuICAgICAgICB9KVxcbiAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5vaykge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpLnRoZW4oKHsgdXJsIH0pID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIC8vIGZsdXNoIGRhdGEgZnJvbSBsb2NhbCBzdG9yYWdlXFxuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShMT0NBTF9TVE9SQUdFX0tFWV9QVUJMSVNIX0xJQlJBUlkpO1xcbiAgICAgICAgICAgICAgICAgICAgb25TdWNjZXNzKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwsXFxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yTmFtZTogbGlicmFyeURhdGEuYXV0aG9yTmFtZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtczogY2xvbmVkTGliSXRlbXMsXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZVxcbiAgICAgICAgICAgICAgICAuanNvbigpXFxuICAgICAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XFxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXNwb25zZS5zdGF0dXNUZXh0IHx8IFxcXCJzb21ldGhpbmcgd2VudCB3cm9uZ1xcXCIpO1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgIC50aGVuKChlcnJvcikgPT4ge1xcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IubWVzc2FnZSB8fCByZXNwb25zZS5zdGF0dXNUZXh0IHx8IFxcXCJzb21ldGhpbmcgd2VudCB3cm9uZ1xcXCIpO1xcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfSwgKGVycikgPT4ge1xcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcXG4gICAgICAgICAgICBvbkVycm9yKGVycik7XFxuICAgICAgICAgICAgc2V0SXNTdWJtaXR0aW5nKGZhbHNlKTtcXG4gICAgICAgIH0pXFxuICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XFxuICAgICAgICAgICAgb25FcnJvcihlcnIpO1xcbiAgICAgICAgICAgIHNldElzU3VibWl0dGluZyhmYWxzZSk7XFxuICAgICAgICB9KTtcXG4gICAgfSk7XFxuICAgIGNvbnN0IHJlbmRlckxpYnJhcnlJdGVtcyA9ICgpID0+IHtcXG4gICAgICAgIGNvbnN0IGl0ZW1zID0gW107XFxuICAgICAgICBjbG9uZWRMaWJJdGVtcy5mb3JFYWNoKChsaWJJdGVtLCBpbmRleCkgPT4ge1xcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwic2luZ2xlLWxpYnJhcnktaXRlbS13cmFwcGVyXFxcIiB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX1NpbmdsZUxpYnJhcnlJdGVtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X19bXFxcImRlZmF1bHRcXFwiXSwgeyBsaWJJdGVtOiBsaWJJdGVtLCBhcHBTdGF0ZTogYXBwU3RhdGUsIGluZGV4OiBpbmRleCwgb25DaGFuZ2U6ICh2YWwsIGluZGV4KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSBjbG9uZWRMaWJJdGVtcy5zbGljZSgpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zW2luZGV4XS5uYW1lID0gdmFsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldENsb25lZExpYkl0ZW1zKGl0ZW1zKTtcXG4gICAgICAgICAgICAgICAgICAgIH0sIG9uUmVtb3ZlOiBvblJlbW92ZSB9LCB2b2lkIDApIH0pLCBpbmRleCkpO1xcbiAgICAgICAgfSk7XFxuICAgICAgICByZXR1cm4gKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwic2VsZWN0ZWQtbGlicmFyeS1pdGVtc1xcXCIgfSwgeyBjaGlsZHJlbjogaXRlbXMgfSksIHZvaWQgMCk7XFxuICAgIH07XFxuICAgIGNvbnN0IG9uRGlhbG9nQ2xvc2UgPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZUNhbGxiYWNrKSgoKSA9PiB7XFxuICAgICAgICB1cGRhdGVJdGVtc0luU3RvcmFnZShjbG9uZWRMaWJJdGVtcyk7XFxuICAgICAgICBzYXZlUHVibGlzaExpYkRhdGFUb1N0b3JhZ2UobGlicmFyeURhdGEpO1xcbiAgICAgICAgb25DbG9zZSgpO1xcbiAgICB9LCBbY2xvbmVkTGliSXRlbXMsIG9uQ2xvc2UsIHVwZGF0ZUl0ZW1zSW5TdG9yYWdlLCBsaWJyYXJ5RGF0YV0pO1xcbiAgICBjb25zdCBzaG91bGRSZW5kZXJGb3JtID0gISFsaWJyYXJ5SXRlbXMubGVuZ3RoO1xcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfRGlhbG9nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uRGlhbG9nLCBPYmplY3QuYXNzaWduKHsgb25DbG9zZVJlcXVlc3Q6IG9uRGlhbG9nQ2xvc2UsIHRpdGxlOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJwdWJsaXNoRGlhbG9nLnRpdGxlXFxcIiksIGNsYXNzTmFtZTogXFxcInB1Ymxpc2gtbGlicmFyeVxcXCIgfSwgeyBjaGlsZHJlbjogc2hvdWxkUmVuZGVyRm9ybSA/ICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJmb3JtXFxcIiwgT2JqZWN0LmFzc2lnbih7IG9uU3VibWl0OiBvblN1Ym1pdCB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcInB1Ymxpc2gtbGlicmFyeS1ub3RlXFxcIiB9LCB7IGNoaWxkcmVuOiBbKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwicHVibGlzaERpYWxvZy5ub3RlRGVzY3JpcHRpb24ucHJlXFxcIiksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiYVxcXCIsIE9iamVjdC5hc3NpZ24oeyBocmVmOiBcXFwiaHR0cHM6Ly9saWJyYXJpZXMuZXhjYWxpZHJhdy5jb21cXFwiLCB0YXJnZXQ6IFxcXCJfYmxhbmtcXFwiLCByZWw6IFxcXCJub29wZW5lciBub3JlZmVycmVyXFxcIiB9LCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJwdWJsaXNoRGlhbG9nLm5vdGVEZXNjcmlwdGlvbi5saW5rXFxcIikgfSksIHZvaWQgMCksIFxcXCIgXFxcIiwgKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwicHVibGlzaERpYWxvZy5ub3RlRGVzY3JpcHRpb24ucG9zdFxcXCIpXSB9KSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwic3BhblxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJwdWJsaXNoLWxpYnJhcnktbm90ZVxcXCIgfSwgeyBjaGlsZHJlbjogWygwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcInB1Ymxpc2hEaWFsb2cubm90ZUd1aWRlbGluZXMucHJlXFxcIiksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiYVxcXCIsIE9iamVjdC5hc3NpZ24oeyBocmVmOiBcXFwiaHR0cHM6Ly9naXRodWIuY29tL2V4Y2FsaWRyYXcvZXhjYWxpZHJhdy1saWJyYXJpZXMjZ3VpZGVsaW5lc1xcXCIsIHRhcmdldDogXFxcIl9ibGFua1xcXCIsIHJlbDogXFxcIm5vb3BlbmVyIG5vcmVmZXJyZXJcXFwiIH0sIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcInB1Ymxpc2hEaWFsb2cubm90ZUd1aWRlbGluZXMubGlua1xcXCIpIH0pLCB2b2lkIDApLCAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJwdWJsaXNoRGlhbG9nLm5vdGVHdWlkZWxpbmVzLnBvc3RcXFwiKV0gfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcInB1Ymxpc2gtbGlicmFyeS1ub3RlXFxcIiB9LCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJwdWJsaXNoRGlhbG9nLm5vdGVJdGVtc1xcXCIpIH0pLCB2b2lkIDApLCByZW5kZXJMaWJyYXJ5SXRlbXMoKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcInB1Ymxpc2gtbGlicmFyeV9fZmllbGRzXFxcIiB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwibGFiZWxcXFwiLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3BhblxcXCIsIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcInB1Ymxpc2hEaWFsb2cubGlicmFyeU5hbWVcXFwiKSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInNwYW5cXFwiLCBPYmplY3QuYXNzaWduKHsgXFxcImFyaWEtaGlkZGVuXFxcIjogXFxcInRydWVcXFwiLCBjbGFzc05hbWU6IFxcXCJyZXF1aXJlZFxcXCIgfSwgeyBjaGlsZHJlbjogXFxcIipcXFwiIH0pLCB2b2lkIDApXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImlucHV0XFxcIiwgeyB0eXBlOiBcXFwidGV4dFxcXCIsIG5hbWU6IFxcXCJuYW1lXFxcIiwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlOiBsaWJyYXJ5RGF0YS5uYW1lLCBvbkNoYW5nZTogb25JbnB1dENoYW5nZSwgcGxhY2Vob2xkZXI6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcInB1Ymxpc2hEaWFsb2cucGxhY2Vob2xkZXIubGlicmFyeU5hbWVcXFwiKSB9LCB2b2lkIDApXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJsYWJlbFxcXCIsIE9iamVjdC5hc3NpZ24oeyBzdHlsZTogeyBhbGlnbkl0ZW1zOiBcXFwiZmxleC1zdGFydFxcXCIgfSB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3BhblxcXCIsIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcInB1Ymxpc2hEaWFsb2cubGlicmFyeURlc2NcXFwiKSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInNwYW5cXFwiLCBPYmplY3QuYXNzaWduKHsgXFxcImFyaWEtaGlkZGVuXFxcIjogXFxcInRydWVcXFwiLCBjbGFzc05hbWU6IFxcXCJyZXF1aXJlZFxcXCIgfSwgeyBjaGlsZHJlbjogXFxcIipcXFwiIH0pLCB2b2lkIDApXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInRleHRhcmVhXFxcIiwgeyBuYW1lOiBcXFwiZGVzY3JpcHRpb25cXFwiLCByb3dzOiA0LCByZXF1aXJlZDogdHJ1ZSwgdmFsdWU6IGxpYnJhcnlEYXRhLmRlc2NyaXB0aW9uLCBvbkNoYW5nZTogb25JbnB1dENoYW5nZSwgcGxhY2Vob2xkZXI6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcInB1Ymxpc2hEaWFsb2cucGxhY2Vob2xkZXIubGlicmFyeURlc2NcXFwiKSB9LCB2b2lkIDApXSB9KSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwibGFiZWxcXFwiLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3BhblxcXCIsIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcInB1Ymxpc2hEaWFsb2cuYXV0aG9yTmFtZVxcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3BhblxcXCIsIE9iamVjdC5hc3NpZ24oeyBcXFwiYXJpYS1oaWRkZW5cXFwiOiBcXFwidHJ1ZVxcXCIsIGNsYXNzTmFtZTogXFxcInJlcXVpcmVkXFxcIiB9LCB7IGNoaWxkcmVuOiBcXFwiKlxcXCIgfSksIHZvaWQgMCldIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiaW5wdXRcXFwiLCB7IHR5cGU6IFxcXCJ0ZXh0XFxcIiwgbmFtZTogXFxcImF1dGhvck5hbWVcXFwiLCByZXF1aXJlZDogdHJ1ZSwgdmFsdWU6IGxpYnJhcnlEYXRhLmF1dGhvck5hbWUsIG9uQ2hhbmdlOiBvbklucHV0Q2hhbmdlLCBwbGFjZWhvbGRlcjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwicHVibGlzaERpYWxvZy5wbGFjZWhvbGRlci5hdXRob3JOYW1lXFxcIikgfSwgdm9pZCAwKV0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwibGFiZWxcXFwiLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJzcGFuXFxcIiwgeyBjaGlsZHJlbjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwicHVibGlzaERpYWxvZy5naXRodWJVc2VybmFtZVxcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiaW5wdXRcXFwiLCB7IHR5cGU6IFxcXCJ0ZXh0XFxcIiwgbmFtZTogXFxcImdpdGh1YkhhbmRsZVxcXCIsIHZhbHVlOiBsaWJyYXJ5RGF0YS5naXRodWJIYW5kbGUsIG9uQ2hhbmdlOiBvbklucHV0Q2hhbmdlLCBwbGFjZWhvbGRlcjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwicHVibGlzaERpYWxvZy5wbGFjZWhvbGRlci5naXRodWJIYW5kbGVcXFwiKSB9LCB2b2lkIDApXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJsYWJlbFxcXCIsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInNwYW5cXFwiLCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJwdWJsaXNoRGlhbG9nLnR3aXR0ZXJVc2VybmFtZVxcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiaW5wdXRcXFwiLCB7IHR5cGU6IFxcXCJ0ZXh0XFxcIiwgbmFtZTogXFxcInR3aXR0ZXJIYW5kbGVcXFwiLCB2YWx1ZTogbGlicmFyeURhdGEudHdpdHRlckhhbmRsZSwgb25DaGFuZ2U6IG9uSW5wdXRDaGFuZ2UsIHBsYWNlaG9sZGVyOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJwdWJsaXNoRGlhbG9nLnBsYWNlaG9sZGVyLnR3aXR0ZXJIYW5kbGVcXFwiKSB9LCB2b2lkIDApXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJsYWJlbFxcXCIsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInNwYW5cXFwiLCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJwdWJsaXNoRGlhbG9nLndlYnNpdGVcXFwiKSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImlucHV0XFxcIiwgeyB0eXBlOiBcXFwidGV4dFxcXCIsIG5hbWU6IFxcXCJ3ZWJzaXRlXFxcIiwgcGF0dGVybjogXFxcImh0dHBzPzovLy4rXFxcIiwgdGl0bGU6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcInB1Ymxpc2hEaWFsb2cuZXJyb3JzLndlYnNpdGVcXFwiKSwgdmFsdWU6IGxpYnJhcnlEYXRhLndlYnNpdGUsIG9uQ2hhbmdlOiBvbklucHV0Q2hhbmdlLCBwbGFjZWhvbGRlcjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwicHVibGlzaERpYWxvZy5wbGFjZWhvbGRlci53ZWJzaXRlXFxcIikgfSwgdm9pZCAwKV0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwic3BhblxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJwdWJsaXNoLWxpYnJhcnktbm90ZVxcXCIgfSwgeyBjaGlsZHJlbjogWygwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcInB1Ymxpc2hEaWFsb2cubm90ZUxpY2Vuc2UucHJlXFxcIiksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiYVxcXCIsIE9iamVjdC5hc3NpZ24oeyBocmVmOiBcXFwiaHR0cHM6Ly9naXRodWIuY29tL2V4Y2FsaWRyYXcvZXhjYWxpZHJhdy1saWJyYXJpZXMvYmxvYi9tYWluL0xJQ0VOU0VcXFwiLCB0YXJnZXQ6IFxcXCJfYmxhbmtcXFwiLCByZWw6IFxcXCJub29wZW5lciBub3JlZmVycmVyXFxcIiB9LCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJwdWJsaXNoRGlhbG9nLm5vdGVMaWNlbnNlLmxpbmtcXFwiKSB9KSwgdm9pZCAwKSwgKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwicHVibGlzaERpYWxvZy5ub3RlTGljZW5zZS5wb3N0XFxcIildIH0pLCB2b2lkIDApXSB9KSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcInB1Ymxpc2gtbGlicmFyeV9fYnV0dG9uc1xcXCIgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLlRvb2xCdXR0b24sIHsgdHlwZTogXFxcImJ1dHRvblxcXCIsIHRpdGxlOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJidXR0b25zLmNhbmNlbFxcXCIpLCBcXFwiYXJpYS1sYWJlbFxcXCI6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcImJ1dHRvbnMuY2FuY2VsXFxcIiksIGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJidXR0b25zLmNhbmNlbFxcXCIpLCBvbkNsaWNrOiBvbkRpYWxvZ0Nsb3NlLCBcXFwiZGF0YS10ZXN0aWRcXFwiOiBcXFwiY2FuY2VsLWNsZWFyLWNhbnZhcy1idXR0b25cXFwiLCBjbGFzc05hbWU6IFxcXCJwdWJsaXNoLWxpYnJhcnlfX2J1dHRvbnMtLWNhbmNlbFxcXCIgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uVG9vbEJ1dHRvbiwgeyB0eXBlOiBcXFwic3VibWl0XFxcIiwgdGl0bGU6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcImJ1dHRvbnMuc3VibWl0XFxcIiksIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwiYnV0dG9ucy5zdWJtaXRcXFwiKSwgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcImJ1dHRvbnMuc3VibWl0XFxcIiksIGNsYXNzTmFtZTogXFxcInB1Ymxpc2gtbGlicmFyeV9fYnV0dG9ucy0tY29uZmlybVxcXCIsIGlzTG9hZGluZzogaXNTdWJtaXR0aW5nIH0sIHZvaWQgMCldIH0pLCB2b2lkIDApXSB9KSwgdm9pZCAwKSkgOiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwXFxcIiwgT2JqZWN0LmFzc2lnbih7IHN0eWxlOiB7IHBhZGRpbmc6IFxcXCIxZW1cXFwiLCB0ZXh0QWxpZ246IFxcXCJjZW50ZXJcXFwiLCBmb250V2VpZ2h0OiA1MDAgfSB9LCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJwdWJsaXNoRGlhbG9nLmF0bGVhc3RPbmVMaWJJdGVtXFxcIikgfSksIHZvaWQgMCkpIH0pLCB2b2lkIDApKTtcXG59O1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoUHVibGlzaExpYnJhcnkpO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5UWRXSnNhWE5vVEdsaWNtRnllUzUwYzNndWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3p0QlFVRnZSVHRCUVVOcVF6dEJRVVZFTzBGQlEwNDdRVUZGWXp0QlFVZFRPMEZCVFRkQ08wRkJSMU03UVVGRGNVSTdRVUZEVXp0QlFVTTFRanRCUVZkcVF5eE5RVUZOTEdsRFFVRnBReXhIUVVGSExITkNRVUZ6UWl4RFFVRkRPMEZCUldwRkxFMUJRVTBzTWtKQlFUSkNMRWRCUVVjc1EwRkJReXhKUVVFNFFpeEZRVUZGTEVWQlFVVTdTVUZEY2tVc1NVRkJTVHRSUVVOR0xGbEJRVmtzUTBGQlF5eFBRVUZQTEVOQlEyeENMR2xEUVVGcFF5eEZRVU5xUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVU55UWl4RFFVRkRPMHRCUTBnN1NVRkJReXhQUVVGUExFdEJRVlVzUlVGQlJUdFJRVU51UWl4MVEwRkJkVU03VVVGRGRrTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dExRVU4wUWp0QlFVTklMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzSzBKQlFTdENMRWRCUVVjc1IwRkJSeXhGUVVGRk8wbEJRek5ETEVsQlFVazdVVUZEUml4TlFVRk5MRWxCUVVrc1IwRkJSeXhaUVVGWkxFTkJRVU1zVDBGQlR5eERRVUZETEdsRFFVRnBReXhEUVVGRExFTkJRVU03VVVGRGNrVXNTVUZCU1N4SlFVRkpMRVZCUVVVN1dVRkRVaXhQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1UwRkRla0k3UzBGRFJqdEpRVUZETEU5QlFVOHNTMEZCVlN4RlFVRkZPMUZCUTI1Q0xHZERRVUZuUXp0UlFVTm9ReXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMHRCUTNSQ08wbEJSVVFzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWkN4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxHOUNRVUZ2UWl4SFFVRkhMRU5CUVU4c1dVRkJNRUlzUlVGQlJTeEZRVUZGTzBsQlEyaEZMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUXpWQ0xFMUJRVTBzVVVGQlVTeEhRVUZITEVkQlFVY3NRMEZCUXp0SlFVTnlRaXhOUVVGTkxGZEJRVmNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dEpRVU01UXl4TlFVRk5MRmxCUVZrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hIUVVGSExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlRWRUxFMUJRVTBzU1VGQlNTeEhRVUZITERoRFFVRkxMRU5CUVVNc1dVRkJXU3hGUVVGRkxHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1NVRkZjRVFzVFVGQlRTeE5RVUZOTEVkQlFVY3NVVUZCVVN4RFFVRkRMR0ZCUVdFc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVVZvUkN4TlFVRk5MRU5CUVVNc1MwRkJTenRSUVVOV0xFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1VVRkJVVHRaUVVONlFpeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4WFFVRlhMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRM2hETEZkQlFWY3NSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRiRUlzVFVGQlRTeERRVUZETEUxQlFVMDdVVUZEV0N4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExGRkJRVkU3V1VGRGRFSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNWMEZCVnl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOeVF5eFhRVUZYTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUld4Q0xFMUJRVTBzUjBGQlJ5eEhRVUZITEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRkxFTkJRVU03U1VGRmNrTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1IwRkJSeXcyUTBGQlpTeERRVUZETzBsQlEyaERMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1MwRkJTeXhGUVVGRkxFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0SlFVVm9SQ3hoUVVGaE8wbEJRMklzT0VWQlFUaEZPMGxCUXpsRkxFdEJRVXNzVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVTdVVUZEYkVRc1RVRkJUU3hWUVVGVkxFZEJRVWNzVFVGQlRTd3JSRUZCWXl4RFFVRkRPMWxCUTNSRExGRkJRVkVzUlVGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVR0WlFVTjJRaXhMUVVGTExFVkJRVVVzU1VGQlNUdFpRVU5ZTEdkQ1FVRm5RaXhGUVVGRkxGRkJRVkU3VTBGRE0wSXNRMEZCUXl4RFFVRkRPMUZCUlVnc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNSMEZCUnl4VlFVRlZMRU5CUVVNN1VVRkZja01zV1VGQldUdFJRVU5hTERSRlFVRTBSVHRSUVVNMVJTeE5RVUZOTEZOQlFWTXNSMEZEWWl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhIUVVGSExFTkJRVU1zVVVGQlVTeEhRVUZITEZkQlFWY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOMlJTeE5RVUZOTEZOQlFWTXNSMEZEWWl4RFFVRkRMRXRCUVVzc1IwRkJSeXhwUWtGQmFVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hIUVVGSExGZEJRVmNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVTNSQ3hIUVVGSExFTkJRVU1zVTBGQlV5eERRVU5ZTEZWQlFWVXNSVUZEVml4VFFVRlRMRWRCUVVjc1EwRkJReXhSUVVGUkxFZEJRVWNzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRmRCUVZjc1JVRkRhRVFzVTBGQlV5eEhRVUZITEVOQlFVTXNVVUZCVVN4SFFVRkhMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eFhRVUZYTEVOQlEyeEVMRU5CUVVNN1VVRkZSaXh0UWtGQmJVSTdVVUZEYmtJc05FVkJRVFJGTzFGQlF6VkZMRWRCUVVjc1EwRkJReXhUUVVGVExFZEJRVWNzV1VGQldTeERRVUZETzFGQlF6ZENMRWRCUVVjc1EwRkJReXhYUVVGWExFZEJRVWNzSzBOQlFXbENMRU5CUVVNN1VVRkRjRU1zUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZEV2l4VFFVRlRMRWRCUVVjc1YwRkJWeXhIUVVGSExFTkJRVU1zUlVGRE0wSXNVMEZCVXl4SFFVRkhMRmRCUVZjc1IwRkJSeXhEUVVGRExFVkJRek5DTEZGQlFWRXNSMEZCUnl4WFFVRlhMRVZCUTNSQ0xGRkJRVkVzUjBGQlJ5eFhRVUZYTEVOQlEzWkNMRU5CUVVNN1MwRkRTRHRKUVVWRUxFOUJRVThzVFVGQlRTdzBSRUZCWlN4RFFVTXhRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eERRVUZETEUxQlFVMHNlVVJCUVZrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEZOQlFWTXNSVUZCUlN4RlFVRkZMRWxCUVVrc1JVRkJSU3h6UkVGQll5eEZRVUZGTEVOQlFVTXNSVUZETTBVN1VVRkRSU3hWUVVGVkxFVkJRVVVzYzBSQlFXTTdVVUZETVVJc1owSkJRV2RDTEVWQlFVVXNTVUZCU1R0TFFVTjJRaXhEUVVOR0xFTkJRVU03UVVGRFNpeERRVUZETEVWQlFVTTdRVUZGUml4TlFVRk5MR05CUVdNc1IwRkJSeXhEUVVGRExFVkJRM1JDTEU5QlFVOHNSVUZEVUN4WlFVRlpMRVZCUTFvc1VVRkJVU3hGUVVOU0xGTkJRVk1zUlVGRFZDeFBRVUZQTEVWQlExQXNiMEpCUVc5Q0xFVkJRM0JDTEZGQlFWRXNSMEZqVkN4RlFVRkZMRVZCUVVVN1NVRkRTQ3hOUVVGTkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEdOQlFXTXNRMEZCUXl4SFFVRkhMQ3REUVVGUkxFTkJRVEpDTzFGQlEzWkZMRlZCUVZVc1JVRkJSU3hGUVVGRk8xRkJRMlFzV1VGQldTeEZRVUZGTEVWQlFVVTdVVUZEYUVJc1NVRkJTU3hGUVVGRkxFVkJRVVU3VVVGRFVpeFhRVUZYTEVWQlFVVXNSVUZCUlR0UlFVTm1MR0ZCUVdFc1JVRkJSU3hGUVVGRk8xRkJRMnBDTEU5QlFVOHNSVUZCUlN4RlFVRkZPMHRCUTFvc1EwRkJReXhEUVVGRE8wbEJSVWdzVFVGQlRTeERRVUZETEZsQlFWa3NSVUZCUlN4bFFVRmxMRU5CUVVNc1IwRkJSeXdyUTBGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUlhoRUxHZEVRVUZUTEVOQlFVTXNSMEZCUnl4RlFVRkZPMUZCUTJJc1RVRkJUU3hKUVVGSkxFZEJRVWNzSzBKQlFTdENMRVZCUVVVc1EwRkJRenRSUVVNdlF5eEpRVUZKTEVsQlFVa3NSVUZCUlR0WlFVTlNMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFRRVU4wUWp0SlFVTklMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEpRVVZRTEUxQlFVMHNRMEZCUXl4alFVRmpMRVZCUVVVc2FVSkJRV2xDTEVOQlFVTXNSMEZCUnl3clEwRkJVU3hEUVVOc1JDeFpRVUZaTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUTNKQ0xFTkJRVU03U1VGRlJpeG5SRUZCVXl4RFFVRkRMRWRCUVVjc1JVRkJSVHRSUVVOaUxHbENRVUZwUWl4RFFVRkRMRmxCUVZrc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETzBsQlF6RkRMRU5CUVVNc1JVRkJSU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGYmtJc1RVRkJUU3hoUVVGaExFZEJRVWNzUTBGQlF5eExRVUZWTEVWQlFVVXNSVUZCUlR0UlFVTnVReXhqUVVGakxHbERRVU5VTEZkQlFWY3NTMEZEWkN4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFbEJRM1pETEVOQlFVTTdTVUZEVEN4RFFVRkRMRU5CUVVNN1NVRkZSaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eERRVUZQTEV0QlFYVkRMRVZCUVVVc1JVRkJSVHRSUVVOcVJTeExRVUZMTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNN1VVRkRka0lzWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTNSQ0xFMUJRVTBzWlVGQlpTeEhRVUZyUWl4RlFVRkZMRU5CUVVNN1VVRkRNVU1zU1VGQlNTeFBRVUZQTEVkQlFVY3NTMEZCU3l4RFFVRkRPMUZCUTNCQ0xHTkJRV01zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSVHRaUVVOcVF5eEpRVUZKTEV0QlFVc3NSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRaaXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NSVUZCUlR0blFrRkRha0lzUzBGQlN5eEhRVUZITEhkRFFVRkRMRU5CUVVNc0swSkJRU3RDTEVOQlFVTXNRMEZCUXp0blFrRkRNME1zVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXp0aFFVTm9RanRaUVVORUxHVkJRV1VzUTBGQlF5eEpRVUZKTEdsRFFVRk5MRTlCUVU4c1MwRkJSU3hMUVVGTExFbEJRVWNzUTBGQlF6dFJRVU01UXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWSUxFbEJRVWtzVDBGQlR5eEZRVUZGTzFsQlExZ3NhVUpCUVdsQ0xFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTTdXVUZEYmtNc1pVRkJaU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEzWkNMRTlCUVU4N1UwRkRVanRSUVVWRUxFMUJRVTBzV1VGQldTeEhRVUZITEUxQlFVMHNiMEpCUVc5Q0xFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdVVUZGYUVVc1RVRkJUU3hWUVVGVkxFZEJRWGRDTzFsQlEzUkRMRWxCUVVrc1JVRkJSU3d5UlVGQmJVTTdXVUZEZWtNc1QwRkJUeXhGUVVGRkxHdEZRVUV3UWp0WlFVTnVReXhOUVVGTkxFVkJRVVVzY1VSQlFXRTdXVUZEY2tJc1dVRkJXU3hGUVVGRkxHTkJRV003VTBGRE4wSXNRMEZCUXp0UlFVTkdMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNWVUZCVlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU53UkN4TlFVRk5MRWRCUVVjc1IwRkJSeXhKUVVGSkxFbEJRVWtzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRVZCUVVVc1NVRkJTU3hGUVVGRkxHdENRVUZyUWl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVVNVJDeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRkZCUVZFc1JVRkJSU3hEUVVGRE8xRkJRMmhETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1pVRkJaU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzUkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zWTBGQll5eEZRVUZGTEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUXpsRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTNaRUxGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RlFVRkZMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU16UXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExGbEJRVmtzUlVGQlJTeFhRVUZYTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRkRVFzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4alFVRmpMRVZCUVVVc1YwRkJWeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlF6RkVMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVNeFF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMR0ZCUVdFc1JVRkJSU3hYUVVGWExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdVVUZEZUVRc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eGxRVUZsTEVWQlFVVXNWMEZCVnl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8xRkJRelZFTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1UwRkJVeXhGUVVGRkxGZEJRVmNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVVm9SQ3hMUVVGTExFTkJRVU1zUjBGQlJ5dzRSVUZCY1VNc1UwRkJVeXhGUVVGRk8xbEJRM1pFTEUxQlFVMHNSVUZCUlN4TlFVRk5PMWxCUTJRc1NVRkJTU3hGUVVGRkxGRkJRVkU3VTBGRFppeERRVUZETzJGQlEwTXNTVUZCU1N4RFFVTklMRU5CUVVNc1VVRkJVU3hGUVVGRkxFVkJRVVU3V1VGRFdDeEpRVUZKTEZGQlFWRXNRMEZCUXl4RlFVRkZMRVZCUVVVN1owSkJRMllzVDBGQlR5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlN4RlFVRkZPMjlDUVVOMFF5eG5RMEZCWjBNN2IwSkJRMmhETEZsQlFWa3NRMEZCUXl4VlFVRlZMRU5CUVVNc2FVTkJRV2xETEVOQlFVTXNRMEZCUXp0dlFrRkRNMFFzVTBGQlV5eERRVUZETzNkQ1FVTlNMRWRCUVVjN2QwSkJRMGdzVlVGQlZTeEZRVUZGTEZkQlFWY3NRMEZCUXl4VlFVRlZPM2RDUVVOc1F5eExRVUZMTEVWQlFVVXNZMEZCWXp0eFFrRkRkRUlzUTBGQlF5eERRVUZETzJkQ1FVTk1MRU5CUVVNc1EwRkJReXhEUVVGRE8yRkJRMG83V1VGRFJDeFBRVUZQTEZGQlFWRTdhVUpCUTFvc1NVRkJTU3hGUVVGRk8ybENRVU5PTEV0QlFVc3NRMEZCUXl4SFFVRkhMRVZCUVVVN1owSkJRMVlzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hKUVVGSkxITkNRVUZ6UWl4RFFVRkRMRU5CUVVNN1dVRkRha1VzUTBGQlF5eERRVUZETzJsQ1FVTkVMRWxCUVVrc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTzJkQ1FVTmtMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRMklzUzBGQlN5eERRVUZETEU5QlFVOHNTVUZCU1N4UlFVRlJMRU5CUVVNc1ZVRkJWU3hKUVVGSkxITkNRVUZ6UWl4RFFVTXZSQ3hEUVVGRE8xbEJRMG9zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEVUN4RFFVRkRMRVZCUTBRc1EwRkJReXhIUVVGSExFVkJRVVVzUlVGQlJUdFpRVU5PTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRGJrSXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMklzWlVGQlpTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNwQ0xFTkJRVU1zUTBGRFJqdGhRVU5CTEV0QlFVc3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRk8xbEJRMklzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOdVFpeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkRZaXhsUVVGbExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEZWtJc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFVDeERRVUZETEVWQlFVTTdTVUZGUml4TlFVRk5MR3RDUVVGclFpeEhRVUZITEVkQlFVY3NSVUZCUlR0UlFVTTVRaXhOUVVGTkxFdEJRVXNzUjBGQlowSXNSVUZCUlN4RFFVRkRPMUZCUXpsQ0xHTkJRV01zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVU3V1VGRGVFTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkRVaXc0UlVGQlN5eFRRVUZUTEVWQlFVTXNOa0pCUVRaQ0xHZENRVU14UXl4MVJFRkJReXd3UkVGQmFVSXNTVUZEYUVJc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGRGFFSXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkRiRUlzUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZEV2l4UlFVRlJMRVZCUVVVc1EwRkJReXhIUVVGSExFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVTdkMEpCUTNaQ0xFMUJRVTBzUzBGQlN5eEhRVUZITEdOQlFXTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJRenQzUWtGRGNrTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTTdkMEpCUTNoQ0xHbENRVUZwUWl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yOUNRVU16UWl4RFFVRkRMRVZCUTBRc1VVRkJVU3hGUVVGRkxGRkJRVkVzVjBGRGJFSXNTMEZZT0VNc1MwRkJTeXhEUVZscVJDeERRVU5RTEVOQlFVTTdVVUZEU2l4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOSUxFOUJRVThzT0VWQlFVc3NVMEZCVXl4RlFVRkRMSGRDUVVGM1FpeG5Ra0ZCUlN4TFFVRkxMRmxCUVU4c1EwRkJRenRKUVVNdlJDeERRVUZETEVOQlFVTTdTVUZGUml4TlFVRk5MR0ZCUVdFc1IwRkJSeXhyUkVGQlZ5eERRVUZETEVkQlFVY3NSVUZCUlR0UlFVTnlReXh2UWtGQmIwSXNRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJRenRSUVVOeVF5d3lRa0ZCTWtJc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dFJRVU42UXl4UFFVRlBMRVZCUVVVc1EwRkJRenRKUVVOYUxFTkJRVU1zUlVGQlJTeERRVUZETEdOQlFXTXNSVUZCUlN4UFFVRlBMRVZCUVVVc2IwSkJRVzlDTEVWQlFVVXNWMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWcVJTeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNUVUZCVFN4RFFVRkRPMGxCUXk5RExFOUJRVThzUTBGRFRDeDFSRUZCUXl3eVEwRkJUU3hyUWtGRFRDeGpRVUZqTEVWQlFVVXNZVUZCWVN4RlFVTTNRaXhMUVVGTExFVkJRVVVzZDBOQlFVTXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eEZRVU12UWl4VFFVRlRMRVZCUVVNc2FVSkJRV2xDTEdkQ1FVVXhRaXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkRiRUlzWjBaQlFVMHNVVUZCVVN4RlFVRkZMRkZCUVZFc2FVSkJRM1JDTEN0RlFVRkxMRk5CUVZNc1JVRkJReXh6UWtGQmMwSXNhVUpCUTJ4RExIZERRVUZETEVOQlFVTXNiVU5CUVcxRExFTkJRVU1zUlVGRGRrTXNORVZCUTBVc1NVRkJTU3hGUVVGRExHdERRVUZyUXl4RlFVTjJReXhOUVVGTkxFVkJRVU1zVVVGQlVTeEZRVU5tTEVkQlFVY3NSVUZCUXl4eFFrRkJjVUlzWjBKQlJYaENMSGREUVVGRExFTkJRVU1zYjBOQlFXOURMRU5CUVVNc1dVRkRkRU1zUlVGQlF5eEhRVUZITEVWQlExQXNkME5CUVVNc1EwRkJReXh2UTBGQmIwTXNRMEZCUXl4aFFVTndReXhGUVVOT0xHZEdRVUZOTEZOQlFWTXNSVUZCUXl4elFrRkJjMElzYVVKQlEyNURMSGREUVVGRExFTkJRVU1zYTBOQlFXdERMRU5CUVVNc1JVRkRkRU1zTkVWQlEwVXNTVUZCU1N4RlFVRkRMQ3RFUVVFclJDeEZRVU53UlN4TlFVRk5MRVZCUVVNc1VVRkJVU3hGUVVObUxFZEJRVWNzUlVGQlF5eHhRa0ZCY1VJc1owSkJSWGhDTEhkRFFVRkRMRU5CUVVNc2JVTkJRVzFETEVOQlFVTXNXVUZEY2tNc1JVRkRTQ3gzUTBGQlF5eERRVUZETEcxRFFVRnRReXhEUVVGRExHRkJRMnhETEVWQlJWQXNPRVZCUVVzc1UwRkJVeXhGUVVGRExITkNRVUZ6UWl4blFrRkRiRU1zZDBOQlFVTXNRMEZCUXl4NVFrRkJlVUlzUTBGQlF5eFpRVU42UWl4RlFVTk1MR3RDUVVGclFpeEZRVUZGTEVWQlEzSkNMQ3RGUVVGTExGTkJRVk1zUlVGQlF5eDVRa0ZCZVVJc2FVSkJRM1JETERoRlFVTkZMRFJGUVVORkxESkZRVUZQTEhkRFFVRkRMRU5CUVVNc01rSkJRVEpDTEVOQlFVTXNWMEZCVVN4RlFVTTNReXc0UmtGQmEwSXNUVUZCVFN4RlFVRkRMRk5CUVZNc1JVRkJReXhWUVVGVkxDdENRVVYwUXl4WlFVTklMRVZCUTA0c2EwVkJRMFVzU1VGQlNTeEZRVUZETEUxQlFVMHNSVUZEV0N4SlFVRkpMRVZCUVVNc1RVRkJUU3hGUVVOWUxGRkJRVkVzVVVGRFVpeExRVUZMTEVWQlFVVXNWMEZCVnl4RFFVRkRMRWxCUVVrc1JVRkRka0lzVVVGQlVTeEZRVUZGTEdGQlFXRXNSVUZEZGtJc1YwRkJWeXhGUVVGRkxIZERRVUZETEVOQlFVTXNkVU5CUVhWRExFTkJRVU1zVjBGRGRrUXNXVUZEU1N4RlFVTlNMR2xHUVVGUExFdEJRVXNzUlVGQlJTeEZRVUZGTEZWQlFWVXNSVUZCUlN4WlFVRlpMRVZCUVVVc2FVSkJRM2hETERSRlFVTkZMREpGUVVGUExIZERRVUZETEVOQlFVTXNNa0pCUVRKQ0xFTkJRVU1zVjBGQlVTeEZRVU0zUXl3NFJrRkJhMElzVFVGQlRTeEZRVUZETEZOQlFWTXNSVUZCUXl4VlFVRlZMQ3RDUVVWMFF5eFpRVU5JTEVWQlEwNHNjVVZCUTBVc1NVRkJTU3hGUVVGRExHRkJRV0VzUlVGRGJFSXNTVUZCU1N4RlFVRkZMRU5CUVVNc1JVRkRVQ3hSUVVGUkxGRkJRMUlzUzBGQlN5eEZRVUZGTEZkQlFWY3NRMEZCUXl4WFFVRlhMRVZCUXpsQ0xGRkJRVkVzUlVGQlJTeGhRVUZoTEVWQlEzWkNMRmRCUVZjc1JVRkJSU3gzUTBGQlF5eERRVUZETEhWRFFVRjFReXhEUVVGRExGZEJRM1pFTEdGQlEwa3NSVUZEVWl3NFJVRkRSU3cwUlVGRFJTd3lSVUZCVHl4M1EwRkJReXhEUVVGRExEQkNRVUV3UWl4RFFVRkRMRmRCUVZFc1JVRkROVU1zT0VaQlFXdENMRTFCUVUwc1JVRkJReXhUUVVGVExFVkJRVU1zVlVGQlZTd3JRa0ZGZEVNc1dVRkRTQ3hGUVVOT0xHdEZRVU5GTEVsQlFVa3NSVUZCUXl4TlFVRk5MRVZCUTFnc1NVRkJTU3hGUVVGRExGbEJRVmtzUlVGRGFrSXNVVUZCVVN4UlFVTlNMRXRCUVVzc1JVRkJSU3hYUVVGWExFTkJRVU1zVlVGQlZTeEZRVU0zUWl4UlFVRlJMRVZCUVVVc1lVRkJZU3hGUVVOMlFpeFhRVUZYTEVWQlFVVXNkME5CUVVNc1EwRkJReXh6UTBGQmMwTXNRMEZCUXl4WFFVTjBSQ3haUVVOSkxFVkJRMUlzT0VWQlEwVXNNa1ZCUVU4c2QwTkJRVU1zUTBGQlF5dzRRa0ZCT0VJc1EwRkJReXhYUVVGUkxFVkJRMmhFTEd0RlFVTkZMRWxCUVVrc1JVRkJReXhOUVVGTkxFVkJRMWdzU1VGQlNTeEZRVUZETEdOQlFXTXNSVUZEYmtJc1MwRkJTeXhGUVVGRkxGZEJRVmNzUTBGQlF5eFpRVUZaTEVWQlF5OUNMRkZCUVZFc1JVRkJSU3hoUVVGaExFVkJRM1pDTEZkQlFWY3NSVUZCUlN4M1EwRkJReXhEUVVGRExIZERRVUYzUXl4RFFVRkRMRmRCUTNoRUxGbEJRMGtzUlVGRFVpdzRSVUZEUlN3eVJVRkJUeXgzUTBGQlF5eERRVUZETEN0Q1FVRXJRaXhEUVVGRExGZEJRVkVzUlVGRGFrUXNhMFZCUTBVc1NVRkJTU3hGUVVGRExFMUJRVTBzUlVGRFdDeEpRVUZKTEVWQlFVTXNaVUZCWlN4RlFVTndRaXhMUVVGTExFVkJRVVVzVjBGQlZ5eERRVUZETEdGQlFXRXNSVUZEYUVNc1VVRkJVU3hGUVVGRkxHRkJRV0VzUlVGRGRrSXNWMEZCVnl4RlFVRkZMSGREUVVGRExFTkJRVU1zZVVOQlFYbERMRU5CUVVNc1YwRkRla1FzV1VGRFNTeEZRVU5TTERoRlFVTkZMREpGUVVGUExIZERRVUZETEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zVjBGQlVTeEZRVU42UXl4clJVRkRSU3hKUVVGSkxFVkJRVU1zVFVGQlRTeEZRVU5ZTEVsQlFVa3NSVUZCUXl4VFFVRlRMRVZCUTJRc1QwRkJUeXhGUVVGRExHRkJRV0VzUlVGRGNrSXNTMEZCU3l4RlFVRkZMSGREUVVGRExFTkJRVU1zT0VKQlFUaENMRU5CUVVNc1JVRkRlRU1zUzBGQlN5eEZRVUZGTEZkQlFWY3NRMEZCUXl4UFFVRlBMRVZCUXpGQ0xGRkJRVkVzUlVGQlJTeGhRVUZoTEVWQlEzWkNMRmRCUVZjc1JVRkJSU3gzUTBGQlF5eERRVUZETEcxRFFVRnRReXhEUVVGRExGZEJRMjVFTEZsQlEwa3NSVUZEVWl4blJrRkJUU3hUUVVGVExFVkJRVU1zYzBKQlFYTkNMR2xDUVVOdVF5eDNRMEZCUXl4RFFVRkRMQ3RDUVVFclFpeERRVUZETEVWQlEyNURMRFJGUVVORkxFbEJRVWtzUlVGQlF5eHpSVUZCYzBVc1JVRkRNMFVzVFVGQlRTeEZRVUZETEZGQlFWRXNSVUZEWml4SFFVRkhMRVZCUVVNc2NVSkJRWEZDTEdkQ1FVVjRRaXgzUTBGQlF5eERRVUZETEdkRFFVRm5ReXhEUVVGRExGbEJRMnhETEVWQlEwZ3NkME5CUVVNc1EwRkJReXhuUTBGQlowTXNRMEZCUXl4aFFVTXZRaXhoUVVOSUxFVkJRMDRzSzBWQlFVc3NVMEZCVXl4RlFVRkRMREJDUVVFd1FpeHBRa0ZEZGtNc2RVUkJRVU1zYlVSQlFWVXNTVUZEVkN4SlFVRkpMRVZCUVVNc1VVRkJVU3hGUVVOaUxFdEJRVXNzUlVGQlJTeDNRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEdkQ1FVTmtMSGREUVVGRExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1JVRkRMMElzUzBGQlN5eEZRVUZGTEhkRFFVRkRMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNSVUZETVVJc1QwRkJUeXhGUVVGRkxHRkJRV0VzYVVKQlExWXNORUpCUVRSQ0xFVkJRM2hETEZOQlFWTXNSVUZCUXl4clEwRkJhME1zVjBGRE5VTXNSVUZEUml4MVJFRkJReXh0UkVGQlZTeEpRVU5VTEVsQlFVa3NSVUZCUXl4UlFVRlJMRVZCUTJJc1MwRkJTeXhGUVVGRkxIZERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zWjBKQlEyUXNkME5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RlFVTXZRaXhMUVVGTExFVkJRVVVzZDBOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eEZRVU14UWl4VFFVRlRMRVZCUVVNc2JVTkJRVzFETEVWQlF6ZERMRk5CUVZNc1JVRkJSU3haUVVGWkxGZEJRM1pDTEdGQlEwVXNZVUZEUkN4RFFVTlNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRMFlzTkVWQlFVY3NTMEZCU3l4RlFVRkZMRVZCUVVVc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeFRRVUZUTEVWQlFVVXNVVUZCVVN4RlFVRkZMRlZCUVZVc1JVRkJSU3hIUVVGSExFVkJRVVVzWjBKQlF5OUVMSGREUVVGRExFTkJRVU1zYVVOQlFXbERMRU5CUVVNc1dVRkRia01zUTBGRFRDeFpRVU5OTEVOQlExWXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJRenRCUVVWR0xHbEZRVUZsTEdOQlFXTXNSVUZCUXlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOWpiMjF3YjI1bGJuUnpMMUIxWW14cGMyaE1hV0p5WVhKNUxuUnplRDlpTkRGaElsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJRkpsWVdOMFRtOWtaU3dnZFhObFEyRnNiR0poWTJzc0lIVnpaVVZtWm1WamRDd2dkWE5sVTNSaGRHVWdmU0JtY205dElGd2ljbVZoWTNSY0lqdGNibWx0Y0c5eWRDQlBjR1Z1UTI5c2IzSWdabkp2YlNCY0ltOXdaVzR0WTI5c2IzSmNJanRjYmx4dWFXMXdiM0owSUhzZ1JHbGhiRzluSUgwZ1puSnZiU0JjSWk0dlJHbGhiRzluWENJN1hHNXBiWEJ2Y25RZ2V5QjBJSDBnWm5KdmJTQmNJaTR1TDJreE9HNWNJanRjYmx4dWFXMXdiM0owSUhzZ1ZHOXZiRUoxZEhSdmJpQjlJR1p5YjIwZ1hDSXVMMVJ2YjJ4Q2RYUjBiMjVjSWp0Y2JseHVhVzF3YjNKMElIc2dRWEJ3VTNSaGRHVXNJRXhwWW5KaGNubEpkR1Z0Y3l3Z1RHbGljbUZ5ZVVsMFpXMGdmU0JtY205dElGd2lMaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUdWNGNHOXlkRlJ2UTJGdWRtRnpJSDBnWm5KdmJTQmNJaTR1TDNCaFkydGhaMlZ6TDNWMGFXeHpYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQkZXRkJQVWxSZlJFRlVRVjlVV1ZCRlV5eGNiaUFnUlZoUVQxSlVYMU5QVlZKRFJTeGNiaUFnVFVsTlJWOVVXVkJGVXl4Y2JpQWdWa1ZTVTBsUFRsTXNYRzU5SUdaeWIyMGdYQ0l1TGk5amIyNXpkR0Z1ZEhOY0lqdGNibWx0Y0c5eWRDQjdJRVY0Y0c5eWRHVmtUR2xpY21GeWVVUmhkR0VnZlNCbWNtOXRJRndpTGk0dlpHRjBZUzkwZVhCbGMxd2lPMXh1WEc1cGJYQnZjblFnWENJdUwxQjFZbXhwYzJoTWFXSnlZWEo1TG5OamMzTmNJanRjYm1sdGNHOXlkQ0JUYVc1bmJHVk1hV0p5WVhKNVNYUmxiU0JtY205dElGd2lMaTlUYVc1bmJHVk1hV0p5WVhKNVNYUmxiVndpTzF4dWFXMXdiM0owSUhzZ1kyRnVkbUZ6Vkc5Q2JHOWlMQ0J5WlhOcGVtVkpiV0ZuWlVacGJHVWdmU0JtY205dElGd2lMaTR2WkdGMFlTOWliRzlpWENJN1hHNXBiWEJ2Y25RZ2V5QmphSFZ1YXlCOUlHWnliMjBnWENJdUxpOTFkR2xzYzF3aU8xeHVYRzVwYm5SbGNtWmhZMlVnVUhWaWJHbHphRXhwWW5KaGNubEVZWFJoVUdGeVlXMXpJSHRjYmlBZ1lYVjBhRzl5VG1GdFpUb2djM1J5YVc1bk8xeHVJQ0JuYVhSb2RXSklZVzVrYkdVNklITjBjbWx1Wnp0Y2JpQWdibUZ0WlRvZ2MzUnlhVzVuTzF4dUlDQmtaWE5qY21sd2RHbHZiam9nYzNSeWFXNW5PMXh1SUNCMGQybDBkR1Z5U0dGdVpHeGxPaUJ6ZEhKcGJtYzdYRzRnSUhkbFluTnBkR1U2SUhOMGNtbHVaenRjYm4xY2JseHVZMjl1YzNRZ1RFOURRVXhmVTFSUFVrRkhSVjlMUlZsZlVGVkNURWxUU0Y5TVNVSlNRVkpaSUQwZ1hDSndkV0pzYVhOb0xXeHBZbkpoY25rdFpHRjBZVndpTzF4dVhHNWpiMjV6ZENCellYWmxVSFZpYkdsemFFeHBZa1JoZEdGVWIxTjBiM0poWjJVZ1BTQW9aR0YwWVRvZ1VIVmliR2x6YUV4cFluSmhjbmxFWVhSaFVHRnlZVzF6S1NBOVBpQjdYRzRnSUhSeWVTQjdYRzRnSUNBZ2JHOWpZV3hUZEc5eVlXZGxMbk5sZEVsMFpXMG9YRzRnSUNBZ0lDQk1UME5CVEY5VFZFOVNRVWRGWDB0RldWOVFWVUpNU1ZOSVgweEpRbEpCVWxrc1hHNGdJQ0FnSUNCS1UwOU9Mbk4wY21sdVoybG1lU2hrWVhSaEtTeGNiaUFnSUNBcE8xeHVJQ0I5SUdOaGRHTm9JQ2hsY25KdmNqb2dZVzU1S1NCN1hHNGdJQ0FnTHk4Z1ZXNWhZbXhsSUhSdklHRmpZMlZ6Y3lCM2FXNWtiM2N1Ykc5allXeFRkRzl5WVdkbFhHNGdJQ0FnWTI5dWMyOXNaUzVsY25KdmNpaGxjbkp2Y2lrN1hHNGdJSDFjYm4wN1hHNWNibU52Ym5OMElHbHRjRzl5ZEZCMVlteHBjMmhNYVdKRVlYUmhSbkp2YlZOMGIzSmhaMlVnUFNBb0tTQTlQaUI3WEc0Z0lIUnllU0I3WEc0Z0lDQWdZMjl1YzNRZ1pHRjBZU0E5SUd4dlkyRnNVM1J2Y21GblpTNW5aWFJKZEdWdEtFeFBRMEZNWDFOVVQxSkJSMFZmUzBWWlgxQlZRa3hKVTBoZlRFbENVa0ZTV1NrN1hHNGdJQ0FnYVdZZ0tHUmhkR0VwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJLVTA5T0xuQmhjbk5sS0dSaGRHRXBPMXh1SUNBZ0lIMWNiaUFnZlNCallYUmphQ0FvWlhKeWIzSTZJR0Z1ZVNrZ2UxeHVJQ0FnSUM4dklGVnVZV0pzWlNCMGJ5QmhZMk5sYzNNZ2JHOWpZV3hUZEc5eVlXZGxYRzRnSUNBZ1kyOXVjMjlzWlM1bGNuSnZjaWhsY25KdmNpazdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdiblZzYkR0Y2JuMDdYRzVjYm1OdmJuTjBJR2RsYm1WeVlYUmxVSEpsZG1sbGQwbHRZV2RsSUQwZ1lYTjVibU1nS0d4cFluSmhjbmxKZEdWdGN6b2dUR2xpY21GeWVVbDBaVzF6S1NBOVBpQjdYRzRnSUdOdmJuTjBJRTFCV0Y5SlZFVk5VMTlRUlZKZlVrOVhJRDBnTmp0Y2JpQWdZMjl1YzNRZ1FrOVlYMU5KV2tVZ1BTQXhNamc3WEc0Z0lHTnZibk4wSUVKUFdGOVFRVVJFU1U1SElEMGdUV0YwYUM1eWIzVnVaQ2hDVDFoZlUwbGFSU0F2SURFMktUdGNiaUFnWTI5dWMzUWdRazlTUkVWU1gxZEpSRlJJSUQwZ1RXRjBhQzV0WVhnb1RXRjBhQzV5YjNWdVpDaENUMWhmVTBsYVJTQXZJRFkwS1N3Z01pazdYRzVjYmlBZ1kyOXVjM1FnY205M2N5QTlJR05vZFc1cktHeHBZbkpoY25sSmRHVnRjeXdnVFVGWVgwbFVSVTFUWDFCRlVsOVNUMWNwTzF4dVhHNGdJR052Ym5OMElHTmhiblpoY3lBOUlHUnZZM1Z0Wlc1MExtTnlaV0YwWlVWc1pXMWxiblFvWENKallXNTJZWE5jSWlrN1hHNWNiaUFnWTJGdWRtRnpMbmRwWkhSb0lEMWNiaUFnSUNCeWIzZHpXekJkTG14bGJtZDBhQ0FxSUVKUFdGOVRTVnBGSUN0Y2JpQWdJQ0FvY205M2Mxc3dYUzVzWlc1bmRHZ2dLeUF4S1NBcUlDaENUMWhmVUVGRVJFbE9SeUFxSURJcElDMWNiaUFnSUNCQ1QxaGZVRUZFUkVsT1J5QXFJREk3WEc0Z0lHTmhiblpoY3k1b1pXbG5hSFFnUFZ4dUlDQWdJSEp2ZDNNdWJHVnVaM1JvSUNvZ1FrOVlYMU5KV2tVZ0sxeHVJQ0FnSUNoeWIzZHpMbXhsYm1kMGFDQXJJREVwSUNvZ0tFSlBXRjlRUVVSRVNVNUhJQ29nTWlrZ0xWeHVJQ0FnSUVKUFdGOVFRVVJFU1U1SElDb2dNanRjYmx4dUlDQmpiMjV6ZENCamRIZ2dQU0JqWVc1MllYTXVaMlYwUTI5dWRHVjRkQ2hjSWpKa1hDSXBJVHRjYmx4dUlDQmpkSGd1Wm1sc2JGTjBlV3hsSUQwZ1QzQmxia052Ykc5eUxuZG9hWFJsTzF4dUlDQmpkSGd1Wm1sc2JGSmxZM1FvTUN3Z01Dd2dZMkZ1ZG1GekxuZHBaSFJvTENCallXNTJZWE11YUdWcFoyaDBLVHRjYmx4dUlDQXZMeUJrY21GM0lHbDBaVzF6WEc0Z0lDOHZJQzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFZ4dUlDQm1iM0lnS0dOdmJuTjBJRnRwYm1SbGVDd2dhWFJsYlYwZ2IyWWdiR2xpY21GeWVVbDBaVzF6TG1WdWRISnBaWE1vS1NrZ2UxeHVJQ0FnSUdOdmJuTjBJR2wwWlcxRFlXNTJZWE1nUFNCaGQyRnBkQ0JsZUhCdmNuUlViME5oYm5aaGN5aDdYRzRnSUNBZ0lDQmxiR1Z0Wlc1MGN6b2dhWFJsYlM1bGJHVnRaVzUwY3l4Y2JpQWdJQ0FnSUdacGJHVnpPaUJ1ZFd4c0xGeHVJQ0FnSUNBZ2JXRjRWMmxrZEdoUGNraGxhV2RvZERvZ1FrOVlYMU5KV2tVc1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCamIyNXpkQ0I3SUhkcFpIUm9MQ0JvWldsbmFIUWdmU0E5SUdsMFpXMURZVzUyWVhNN1hHNWNiaUFnSUNBdkx5QmtjbUYzSUdsMFpXMWNiaUFnSUNBdkx5QXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRYRzRnSUNBZ1kyOXVjM1FnY205M1QyWm1jMlYwSUQxY2JpQWdJQ0FnSUUxaGRHZ3VabXh2YjNJb2FXNWtaWGdnTHlCTlFWaGZTVlJGVFZOZlVFVlNYMUpQVnlrZ0tpQW9RazlZWDFOSldrVWdLeUJDVDFoZlVFRkVSRWxPUnlBcUlESXBPMXh1SUNBZ0lHTnZibk4wSUdOdmJFOW1abk5sZENBOVhHNGdJQ0FnSUNBb2FXNWtaWGdnSlNCTlFWaGZTVlJGVFZOZlVFVlNYMUpQVnlrZ0tpQW9RazlZWDFOSldrVWdLeUJDVDFoZlVFRkVSRWxPUnlBcUlESXBPMXh1WEc0Z0lDQWdZM1I0TG1SeVlYZEpiV0ZuWlNoY2JpQWdJQ0FnSUdsMFpXMURZVzUyWVhNc1hHNGdJQ0FnSUNCamIyeFBabVp6WlhRZ0t5QW9RazlZWDFOSldrVWdMU0IzYVdSMGFDa2dMeUF5SUNzZ1FrOVlYMUJCUkVSSlRrY3NYRzRnSUNBZ0lDQnliM2RQWm1aelpYUWdLeUFvUWs5WVgxTkpXa1VnTFNCb1pXbG5hSFFwSUM4Z01pQXJJRUpQV0Y5UVFVUkVTVTVITEZ4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0F2THlCa2NtRjNJR2wwWlcwZ1ltOXlaR1Z5WEc0Z0lDQWdMeThnTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFZ4dUlDQWdJR04wZUM1c2FXNWxWMmxrZEdnZ1BTQkNUMUpFUlZKZlYwbEVWRWc3WEc0Z0lDQWdZM1I0TG5OMGNtOXJaVk4wZVd4bElEMGdUM0JsYmtOdmJHOXlMbWR5WVhsYk5GMDdYRzRnSUNBZ1kzUjRMbk4wY205clpWSmxZM1FvWEc0Z0lDQWdJQ0JqYjJ4UFptWnpaWFFnS3lCQ1QxaGZVRUZFUkVsT1J5QXZJRElzWEc0Z0lDQWdJQ0J5YjNkUFptWnpaWFFnS3lCQ1QxaGZVRUZFUkVsT1J5QXZJRElzWEc0Z0lDQWdJQ0JDVDFoZlUwbGFSU0FySUVKUFdGOVFRVVJFU1U1SExGeHVJQ0FnSUNBZ1FrOVlYMU5KV2tVZ0t5QkNUMWhmVUVGRVJFbE9SeXhjYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJR0YzWVdsMElISmxjMmw2WlVsdFlXZGxSbWxzWlNoY2JpQWdJQ0J1WlhjZ1JtbHNaU2hiWVhkaGFYUWdZMkZ1ZG1GelZHOUNiRzlpS0dOaGJuWmhjeWxkTENCY0luQnlaWFpwWlhkY0lpd2dleUIwZVhCbE9pQk5TVTFGWDFSWlVFVlRMbkJ1WnlCOUtTeGNiaUFnSUNCN1hHNGdJQ0FnSUNCdmRYUndkWFJVZVhCbE9pQk5TVTFGWDFSWlVFVlRMbXB3Wnl4Y2JpQWdJQ0FnSUcxaGVGZHBaSFJvVDNKSVpXbG5hSFE2SURVd01EQXNYRzRnSUNBZ2ZTeGNiaUFnS1R0Y2JuMDdYRzVjYm1OdmJuTjBJRkIxWW14cGMyaE1hV0p5WVhKNUlEMGdLSHRjYmlBZ2IyNURiRzl6WlN4Y2JpQWdiR2xpY21GeWVVbDBaVzF6TEZ4dUlDQmhjSEJUZEdGMFpTeGNiaUFnYjI1VGRXTmpaWE56TEZ4dUlDQnZia1Z5Y205eUxGeHVJQ0IxY0dSaGRHVkpkR1Z0YzBsdVUzUnZjbUZuWlN4Y2JpQWdiMjVTWlcxdmRtVXNYRzU5T2lCN1hHNGdJRzl1UTJ4dmMyVTZJQ2dwSUQwK0lIWnZhV1E3WEc0Z0lHeHBZbkpoY25sSmRHVnRjem9nVEdsaWNtRnllVWwwWlcxek8xeHVJQ0JoY0hCVGRHRjBaVG9nUVhCd1UzUmhkR1U3WEc0Z0lHOXVVM1ZqWTJWemN6b2dLR1JoZEdFNklIdGNiaUFnSUNCMWNtdzZJSE4wY21sdVp6dGNiaUFnSUNCaGRYUm9iM0pPWVcxbE9pQnpkSEpwYm1jN1hHNGdJQ0FnYVhSbGJYTTZJRXhwWW5KaGNubEpkR1Z0Y3p0Y2JpQWdmU2tnUFQ0Z2RtOXBaRHRjYmx4dUlDQnZia1Z5Y205eU9pQW9aWEp5YjNJNklFVnljbTl5S1NBOVBpQjJiMmxrTzF4dUlDQjFjR1JoZEdWSmRHVnRjMGx1VTNSdmNtRm5aVG9nS0dsMFpXMXpPaUJNYVdKeVlYSjVTWFJsYlhNcElEMCtJSFp2YVdRN1hHNGdJRzl1VW1WdGIzWmxPaUFvYVdRNklITjBjbWx1WnlrZ1BUNGdkbTlwWkR0Y2JuMHBJRDArSUh0Y2JpQWdZMjl1YzNRZ1cyeHBZbkpoY25sRVlYUmhMQ0J6WlhSTWFXSnlZWEo1UkdGMFlWMGdQU0IxYzJWVGRHRjBaVHhRZFdKc2FYTm9UR2xpY21GeWVVUmhkR0ZRWVhKaGJYTStLSHRjYmlBZ0lDQmhkWFJvYjNKT1lXMWxPaUJjSWx3aUxGeHVJQ0FnSUdkcGRHaDFZa2hoYm1Sc1pUb2dYQ0pjSWl4Y2JpQWdJQ0J1WVcxbE9pQmNJbHdpTEZ4dUlDQWdJR1JsYzJOeWFYQjBhVzl1T2lCY0lsd2lMRnh1SUNBZ0lIUjNhWFIwWlhKSVlXNWtiR1U2SUZ3aVhDSXNYRzRnSUNBZ2QyVmljMmwwWlRvZ1hDSmNJaXhjYmlBZ2ZTazdYRzVjYmlBZ1kyOXVjM1FnVzJselUzVmliV2wwZEdsdVp5d2djMlYwU1hOVGRXSnRhWFIwYVc1blhTQTlJSFZ6WlZOMFlYUmxLR1poYkhObEtUdGNibHh1SUNCMWMyVkZabVpsWTNRb0tDa2dQVDRnZTF4dUlDQWdJR052Ym5OMElHUmhkR0VnUFNCcGJYQnZjblJRZFdKc2FYTm9UR2xpUkdGMFlVWnliMjFUZEc5eVlXZGxLQ2s3WEc0Z0lDQWdhV1lnS0dSaGRHRXBJSHRjYmlBZ0lDQWdJSE5sZEV4cFluSmhjbmxFWVhSaEtHUmhkR0VwTzF4dUlDQWdJSDFjYmlBZ2ZTd2dXMTBwTzF4dVhHNGdJR052Ym5OMElGdGpiRzl1WldSTWFXSkpkR1Z0Y3l3Z2MyVjBRMnh2Ym1Wa1RHbGlTWFJsYlhOZElEMGdkWE5sVTNSaGRHVThUR2xpY21GeWVVbDBaVzF6UGloY2JpQWdJQ0JzYVdKeVlYSjVTWFJsYlhNdWMyeHBZMlVvS1N4Y2JpQWdLVHRjYmx4dUlDQjFjMlZGWm1abFkzUW9LQ2tnUFQ0Z2UxeHVJQ0FnSUhObGRFTnNiMjVsWkV4cFlrbDBaVzF6S0d4cFluSmhjbmxKZEdWdGN5NXpiR2xqWlNncEtUdGNiaUFnZlN3Z1cyeHBZbkpoY25sSmRHVnRjMTBwTzF4dVhHNGdJR052Ym5OMElHOXVTVzV3ZFhSRGFHRnVaMlVnUFNBb1pYWmxiblE2SUdGdWVTa2dQVDRnZTF4dUlDQWdJSE5sZEV4cFluSmhjbmxFWVhSaEtIdGNiaUFnSUNBZ0lDNHVMbXhwWW5KaGNubEVZWFJoTEZ4dUlDQWdJQ0FnVzJWMlpXNTBMblJoY21kbGRDNXVZVzFsWFRvZ1pYWmxiblF1ZEdGeVoyVjBMblpoYkhWbExGeHVJQ0FnSUgwcE8xeHVJQ0I5TzF4dVhHNGdJR052Ym5OMElHOXVVM1ZpYldsMElEMGdZWE41Ym1NZ0tHVjJaVzUwT2lCU1pXRmpkQzVHYjNKdFJYWmxiblE4U0ZSTlRFWnZjbTFGYkdWdFpXNTBQaWtnUFQ0Z2UxeHVJQ0FnSUdWMlpXNTBMbkJ5WlhabGJuUkVaV1poZFd4MEtDazdYRzRnSUNBZ2MyVjBTWE5UZFdKdGFYUjBhVzVuS0hSeWRXVXBPMXh1SUNBZ0lHTnZibk4wSUdWeWNtOXlaV1JNYVdKSmRHVnRjem9nVEdsaWNtRnllVWwwWlcxYlhTQTlJRnRkTzF4dUlDQWdJR3hsZENCcGMwVnljbTl5SUQwZ1ptRnNjMlU3WEc0Z0lDQWdZMnh2Ym1Wa1RHbGlTWFJsYlhNdVptOXlSV0ZqYUNnb2JHbGlTWFJsYlNrZ1BUNGdlMXh1SUNBZ0lDQWdiR1YwSUdWeWNtOXlJRDBnWENKY0lqdGNiaUFnSUNBZ0lHbG1JQ2doYkdsaVNYUmxiUzV1WVcxbEtTQjdYRzRnSUNBZ0lDQWdJR1Z5Y205eUlEMGdkQ2hjSW5CMVlteHBjMmhFYVdGc2IyY3VaWEp5YjNKekxuSmxjWFZwY21Wa1hDSXBPMXh1SUNBZ0lDQWdJQ0JwYzBWeWNtOXlJRDBnZEhKMVpUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHVnljbTl5WldSTWFXSkpkR1Z0Y3k1d2RYTm9LSHNnTGk0dWJHbGlTWFJsYlN3Z1pYSnliM0lnZlNrN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCcFppQW9hWE5GY25KdmNpa2dlMXh1SUNBZ0lDQWdjMlYwUTJ4dmJtVmtUR2xpU1hSbGJYTW9aWEp5YjNKbFpFeHBZa2wwWlcxektUdGNiaUFnSUNBZ0lITmxkRWx6VTNWaWJXbDBkR2x1WnlobVlXeHpaU2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnY0hKbGRtbGxkMGx0WVdkbElEMGdZWGRoYVhRZ1oyVnVaWEpoZEdWUWNtVjJhV1YzU1cxaFoyVW9ZMnh2Ym1Wa1RHbGlTWFJsYlhNcE8xeHVYRzRnSUNBZ1kyOXVjM1FnYkdsaVEyOXVkR1Z1ZERvZ1JYaHdiM0owWldSTWFXSnlZWEo1UkdGMFlTQTlJSHRjYmlBZ0lDQWdJSFI1Y0dVNklFVllVRTlTVkY5RVFWUkJYMVJaVUVWVExtVjRZMkZzYVdSeVlYZE1hV0p5WVhKNUxGeHVJQ0FnSUNBZ2RtVnljMmx2YmpvZ1ZrVlNVMGxQVGxNdVpYaGpZV3hwWkhKaGQweHBZbkpoY25rc1hHNGdJQ0FnSUNCemIzVnlZMlU2SUVWWVVFOVNWRjlUVDFWU1EwVXNYRzRnSUNBZ0lDQnNhV0p5WVhKNVNYUmxiWE02SUdOc2IyNWxaRXhwWWtsMFpXMXpMRnh1SUNBZ0lIMDdYRzRnSUNBZ1kyOXVjM1FnWTI5dWRHVnVkQ0E5SUVwVFQwNHVjM1J5YVc1bmFXWjVLR3hwWWtOdmJuUmxiblFzSUc1MWJHd3NJRElwTzF4dUlDQWdJR052Ym5OMElHeHBZaUE5SUc1bGR5QkNiRzlpS0Z0amIyNTBaVzUwWFN3Z2V5QjBlWEJsT2lCY0ltRndjR3hwWTJGMGFXOXVMMnB6YjI1Y0lpQjlLVHRjYmx4dUlDQWdJR052Ym5OMElHWnZjbTFFWVhSaElEMGdibVYzSUVadmNtMUVZWFJoS0NrN1hHNGdJQ0FnWm05eWJVUmhkR0V1WVhCd1pXNWtLRndpWlhoallXeHBaSEpoZDB4cFlsd2lMQ0JzYVdJcE8xeHVJQ0FnSUdadmNtMUVZWFJoTG1Gd2NHVnVaQ2hjSW5CeVpYWnBaWGRKYldGblpWd2lMQ0J3Y21WMmFXVjNTVzFoWjJVcE8xeHVJQ0FnSUdadmNtMUVZWFJoTG1Gd2NHVnVaQ2hjSW5CeVpYWnBaWGRKYldGblpWUjVjR1ZjSWl3Z2NISmxkbWxsZDBsdFlXZGxMblI1Y0dVcE8xeHVJQ0FnSUdadmNtMUVZWFJoTG1Gd2NHVnVaQ2hjSW5ScGRHeGxYQ0lzSUd4cFluSmhjbmxFWVhSaExtNWhiV1VwTzF4dUlDQWdJR1p2Y20xRVlYUmhMbUZ3Y0dWdVpDaGNJbUYxZEdodmNrNWhiV1ZjSWl3Z2JHbGljbUZ5ZVVSaGRHRXVZWFYwYUc5eVRtRnRaU2s3WEc0Z0lDQWdabTl5YlVSaGRHRXVZWEJ3Wlc1a0tGd2laMmwwYUhWaVNHRnVaR3hsWENJc0lHeHBZbkpoY25sRVlYUmhMbWRwZEdoMVlraGhibVJzWlNrN1hHNGdJQ0FnWm05eWJVUmhkR0V1WVhCd1pXNWtLRndpYm1GdFpWd2lMQ0JzYVdKeVlYSjVSR0YwWVM1dVlXMWxLVHRjYmlBZ0lDQm1iM0p0UkdGMFlTNWhjSEJsYm1Rb1hDSmtaWE5qY21sd2RHbHZibHdpTENCc2FXSnlZWEo1UkdGMFlTNWtaWE5qY21sd2RHbHZiaWs3WEc0Z0lDQWdabTl5YlVSaGRHRXVZWEJ3Wlc1a0tGd2lkSGRwZEhSbGNraGhibVJzWlZ3aUxDQnNhV0p5WVhKNVJHRjBZUzUwZDJsMGRHVnlTR0Z1Wkd4bEtUdGNiaUFnSUNCbWIzSnRSR0YwWVM1aGNIQmxibVFvWENKM1pXSnphWFJsWENJc0lHeHBZbkpoY25sRVlYUmhMbmRsWW5OcGRHVXBPMXh1WEc0Z0lDQWdabVYwWTJnb1lDUjdjSEp2WTJWemN5NWxibll1VWtWQlExUmZRVkJRWDB4SlFsSkJVbGxmUWtGRFMwVk9SSDB2YzNWaWJXbDBZQ3dnZTF4dUlDQWdJQ0FnYldWMGFHOWtPaUJjSW5CdmMzUmNJaXhjYmlBZ0lDQWdJR0p2WkhrNklHWnZjbTFFWVhSaExGeHVJQ0FnSUgwcFhHNGdJQ0FnSUNBdWRHaGxiaWhjYmlBZ0lDQWdJQ0FnS0hKbGMzQnZibk5sS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tISmxjM0J2Ym5ObExtOXJLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpjRzl1YzJVdWFuTnZiaWdwTG5Sb1pXNG9LSHNnZFhKc0lIMHBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1pteDFjMmdnWkdGMFlTQm1jbTl0SUd4dlkyRnNJSE4wYjNKaFoyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2JHOWpZV3hUZEc5eVlXZGxMbkpsYlc5MlpVbDBaVzBvVEU5RFFVeGZVMVJQVWtGSFJWOUxSVmxmVUZWQ1RFbFRTRjlNU1VKU1FWSlpLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVUZFdOalpYTnpLSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IxY213c1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1lYVjBhRzl5VG1GdFpUb2diR2xpY21GeWVVUmhkR0V1WVhWMGFHOXlUbUZ0WlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGRHVnRjem9nWTJ4dmJtVmtUR2xpU1hSbGJYTXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCeVpYTndiMjV6WlZ4dUlDQWdJQ0FnSUNBZ0lDQWdMbXB6YjI0b0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG1OaGRHTm9LQ2dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0hKbGMzQnZibk5sTG5OMFlYUjFjMVJsZUhRZ2ZId2dYQ0p6YjIxbGRHaHBibWNnZDJWdWRDQjNjbTl1WjF3aUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgwcFhHNGdJQ0FnSUNBZ0lDQWdJQ0F1ZEdobGJpZ29aWEp5YjNJcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnljbTl5TG0xbGMzTmhaMlVnZkh3Z2NtVnpjRzl1YzJVdWMzUmhkSFZ6VkdWNGRDQjhmQ0JjSW5OdmJXVjBhR2x1WnlCM1pXNTBJSGR5YjI1blhDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnS0dWeWNpa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk52YkdVdVpYSnliM0lvWlhKeUtUdGNiaUFnSUNBZ0lDQWdJQ0J2YmtWeWNtOXlLR1Z5Y2lrN1hHNGdJQ0FnSUNBZ0lDQWdjMlYwU1hOVGRXSnRhWFIwYVc1bktHWmhiSE5sS1R0Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDbGNiaUFnSUNBZ0lDNWpZWFJqYUNnb1pYSnlLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lHTnZibk52YkdVdVpYSnliM0lvWlhKeUtUdGNiaUFnSUNBZ0lDQWdiMjVGY25KdmNpaGxjbklwTzF4dUlDQWdJQ0FnSUNCelpYUkpjMU4xWW0xcGRIUnBibWNvWm1Gc2MyVXBPMXh1SUNBZ0lDQWdmU2s3WEc0Z0lIMDdYRzVjYmlBZ1kyOXVjM1FnY21WdVpHVnlUR2xpY21GeWVVbDBaVzF6SUQwZ0tDa2dQVDRnZTF4dUlDQWdJR052Ym5OMElHbDBaVzF6T2lCU1pXRmpkRTV2WkdWYlhTQTlJRnRkTzF4dUlDQWdJR05zYjI1bFpFeHBZa2wwWlcxekxtWnZja1ZoWTJnb0tHeHBZa2wwWlcwc0lHbHVaR1Y0S1NBOVBpQjdYRzRnSUNBZ0lDQnBkR1Z0Y3k1d2RYTm9LRnh1SUNBZ0lDQWdJQ0E4WkdsMklHTnNZWE56VG1GdFpUMWNJbk5wYm1kc1pTMXNhV0p5WVhKNUxXbDBaVzB0ZDNKaGNIQmxjbHdpSUd0bGVUMTdhVzVrWlhoOVBseHVJQ0FnSUNBZ0lDQWdJRHhUYVc1bmJHVk1hV0p5WVhKNVNYUmxiVnh1SUNBZ0lDQWdJQ0FnSUNBZ2JHbGlTWFJsYlQxN2JHbGlTWFJsYlgxY2JpQWdJQ0FnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxQWHRoY0hCVGRHRjBaWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHbHVaR1Y0UFh0cGJtUmxlSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXVRMmhoYm1kbFBYc29kbUZzTENCcGJtUmxlQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JwZEdWdGN5QTlJR05zYjI1bFpFeHBZa2wwWlcxekxuTnNhV05sS0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdsMFpXMXpXMmx1WkdWNFhTNXVZVzFsSUQwZ2RtRnNPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnpaWFJEYkc5dVpXUk1hV0pKZEdWdGN5aHBkR1Z0Y3lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5ZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVTWlcxdmRtVTllMjl1VW1WdGIzWmxmVnh1SUNBZ0lDQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBZ0lEd3ZaR2wyUGl4Y2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlNrN1hHNGdJQ0FnY21WMGRYSnVJRHhrYVhZZ1kyeGhjM05PWVcxbFBWd2ljMlZzWldOMFpXUXRiR2xpY21GeWVTMXBkR1Z0YzF3aVBudHBkR1Z0YzMwOEwyUnBkajQ3WEc0Z0lIMDdYRzVjYmlBZ1kyOXVjM1FnYjI1RWFXRnNiMmREYkc5elpTQTlJSFZ6WlVOaGJHeGlZV05yS0NncElEMCtJSHRjYmlBZ0lDQjFjR1JoZEdWSmRHVnRjMGx1VTNSdmNtRm5aU2hqYkc5dVpXUk1hV0pKZEdWdGN5azdYRzRnSUNBZ2MyRjJaVkIxWW14cGMyaE1hV0pFWVhSaFZHOVRkRzl5WVdkbEtHeHBZbkpoY25sRVlYUmhLVHRjYmlBZ0lDQnZia05zYjNObEtDazdYRzRnSUgwc0lGdGpiRzl1WldSTWFXSkpkR1Z0Y3l3Z2IyNURiRzl6WlN3Z2RYQmtZWFJsU1hSbGJYTkpibE4wYjNKaFoyVXNJR3hwWW5KaGNubEVZWFJoWFNrN1hHNWNiaUFnWTI5dWMzUWdjMmh2ZFd4a1VtVnVaR1Z5Um05eWJTQTlJQ0VoYkdsaWNtRnllVWwwWlcxekxteGxibWQwYUR0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNBOFJHbGhiRzluWEc0Z0lDQWdJQ0J2YmtOc2IzTmxVbVZ4ZFdWemREMTdiMjVFYVdGc2IyZERiRzl6WlgxY2JpQWdJQ0FnSUhScGRHeGxQWHQwS0Z3aWNIVmliR2x6YUVScFlXeHZaeTUwYVhSc1pWd2lLWDFjYmlBZ0lDQWdJR05zWVhOelRtRnRaVDFjSW5CMVlteHBjMmd0YkdsaWNtRnllVndpWEc0Z0lDQWdQbHh1SUNBZ0lDQWdlM05vYjNWc1pGSmxibVJsY2tadmNtMGdQeUFvWEc0Z0lDQWdJQ0FnSUR4bWIzSnRJRzl1VTNWaWJXbDBQWHR2YmxOMVltMXBkSDArWEc0Z0lDQWdJQ0FnSUNBZ1BHUnBkaUJqYkdGemMwNWhiV1U5WENKd2RXSnNhWE5vTFd4cFluSmhjbmt0Ym05MFpWd2lQbHh1SUNBZ0lDQWdJQ0FnSUNBZ2UzUW9YQ0p3ZFdKc2FYTm9SR2xoYkc5bkxtNXZkR1ZFWlhOamNtbHdkR2x2Ymk1d2NtVmNJaWw5WEc0Z0lDQWdJQ0FnSUNBZ0lDQThZVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQm9jbVZtUFZ3aWFIUjBjSE02THk5c2FXSnlZWEpwWlhNdVpYaGpZV3hwWkhKaGR5NWpiMjFjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0IwWVhKblpYUTlYQ0pmWW14aGJtdGNJbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaV3c5WENKdWIyOXdaVzVsY2lCdWIzSmxabVZ5Y21WeVhDSmNiaUFnSUNBZ0lDQWdJQ0FnSUQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZTNRb1hDSndkV0pzYVhOb1JHbGhiRzluTG01dmRHVkVaWE5qY21sd2RHbHZiaTVzYVc1clhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1BDOWhQbnRjSWlCY0luMWNiaUFnSUNBZ0lDQWdJQ0FnSUh0MEtGd2ljSFZpYkdsemFFUnBZV3h2Wnk1dWIzUmxSR1Z6WTNKcGNIUnBiMjR1Y0c5emRGd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBOEwyUnBkajVjYmlBZ0lDQWdJQ0FnSUNBOGMzQmhiaUJqYkdGemMwNWhiV1U5WENKd2RXSnNhWE5vTFd4cFluSmhjbmt0Ym05MFpWd2lQbHh1SUNBZ0lDQWdJQ0FnSUNBZ2UzUW9YQ0p3ZFdKc2FYTm9SR2xoYkc5bkxtNXZkR1ZIZFdsa1pXeHBibVZ6TG5CeVpWd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lEeGhYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHaHlaV1k5WENKb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdlpYaGpZV3hwWkhKaGR5OWxlR05oYkdsa2NtRjNMV3hwWW5KaGNtbGxjeU5uZFdsa1pXeHBibVZ6WENKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdGeVoyVjBQVndpWDJKc1lXNXJYQ0pjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZzUFZ3aWJtOXZjR1Z1WlhJZ2JtOXlaV1psY25KbGNsd2lYRzRnSUNBZ0lDQWdJQ0FnSUNBK1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUh0MEtGd2ljSFZpYkdsemFFUnBZV3h2Wnk1dWIzUmxSM1ZwWkdWc2FXNWxjeTVzYVc1clhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1BDOWhQbHh1SUNBZ0lDQWdJQ0FnSUNBZ2UzUW9YQ0p3ZFdKc2FYTm9SR2xoYkc5bkxtNXZkR1ZIZFdsa1pXeHBibVZ6TG5CdmMzUmNJaWw5WEc0Z0lDQWdJQ0FnSUNBZ1BDOXpjR0Z1UGx4dVhHNGdJQ0FnSUNBZ0lDQWdQR1JwZGlCamJHRnpjMDVoYldVOVhDSndkV0pzYVhOb0xXeHBZbkpoY25rdGJtOTBaVndpUGx4dUlDQWdJQ0FnSUNBZ0lDQWdlM1FvWENKd2RXSnNhWE5vUkdsaGJHOW5MbTV2ZEdWSmRHVnRjMXdpS1gxY2JpQWdJQ0FnSUNBZ0lDQThMMlJwZGo1Y2JpQWdJQ0FnSUNBZ0lDQjdjbVZ1WkdWeVRHbGljbUZ5ZVVsMFpXMXpLQ2w5WEc0Z0lDQWdJQ0FnSUNBZ1BHUnBkaUJqYkdGemMwNWhiV1U5WENKd2RXSnNhWE5vTFd4cFluSmhjbmxmWDJacFpXeGtjMXdpUGx4dUlDQWdJQ0FnSUNBZ0lDQWdQR3hoWW1Wc1BseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFpHbDJQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6Y0dGdVBudDBLRndpY0hWaWJHbHphRVJwWVd4dlp5NXNhV0p5WVhKNVRtRnRaVndpS1gwOEwzTndZVzQrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOd1lXNGdZWEpwWVMxb2FXUmtaVzQ5WENKMGNuVmxYQ0lnWTJ4aGMzTk9ZVzFsUFZ3aWNtVnhkV2x5WldSY0lqNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ3BjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDNOd1lXNCtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZaR2wyUGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0E4YVc1d2RYUmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBlWEJsUFZ3aWRHVjRkRndpWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYm1GdFpUMWNJbTVoYldWY0lseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjWFZwY21Wa1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1U5ZTJ4cFluSmhjbmxFWVhSaExtNWhiV1Y5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjI1RGFHRnVaMlU5ZTI5dVNXNXdkWFJEYUdGdVoyVjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjR3hoWTJWb2IyeGtaWEk5ZTNRb1hDSndkV0pzYVhOb1JHbGhiRzluTG5Cc1lXTmxhRzlzWkdWeUxteHBZbkpoY25sT1lXMWxYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQQzlzWVdKbGJENWNiaUFnSUNBZ0lDQWdJQ0FnSUR4c1lXSmxiQ0J6ZEhsc1pUMTdleUJoYkdsbmJrbDBaVzF6T2lCY0ltWnNaWGd0YzNSaGNuUmNJaUI5ZlQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnUEdScGRqNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM0JoYmo1N2RDaGNJbkIxWW14cGMyaEVhV0ZzYjJjdWJHbGljbUZ5ZVVSbGMyTmNJaWw5UEM5emNHRnVQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6Y0dGdUlHRnlhV0V0YUdsa1pHVnVQVndpZEhKMVpWd2lJR05zWVhOelRtRnRaVDFjSW5KbGNYVnBjbVZrWENJK1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXFYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQQzl6Y0dGdVBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwyUnBkajVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQSFJsZUhSaGNtVmhYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdibUZ0WlQxY0ltUmxjMk55YVhCMGFXOXVYQ0pjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5YjNkelBYczBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsY1hWcGNtVmtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkbUZzZFdVOWUyeHBZbkpoY25sRVlYUmhMbVJsYzJOeWFYQjBhVzl1ZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVEyaGhibWRsUFh0dmJrbHVjSFYwUTJoaGJtZGxmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJzWVdObGFHOXNaR1Z5UFh0MEtGd2ljSFZpYkdsemFFUnBZV3h2Wnk1d2JHRmpaV2h2YkdSbGNpNXNhV0p5WVhKNVJHVnpZMXdpS1gxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHd2YkdGaVpXdytYRzRnSUNBZ0lDQWdJQ0FnSUNBOGJHRmlaV3crWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRHhrYVhZK1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITndZVzQrZTNRb1hDSndkV0pzYVhOb1JHbGhiRzluTG1GMWRHaHZjazVoYldWY0lpbDlQQzl6Y0dGdVBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpjR0Z1SUdGeWFXRXRhR2xrWkdWdVBWd2lkSEoxWlZ3aUlHTnNZWE56VG1GdFpUMWNJbkpsY1hWcGNtVmtYQ0krWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBcVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BDOXpjR0Z1UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDJScGRqNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1BHbHVjSFYwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEhsd1pUMWNJblJsZUhSY0lseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHNWhiV1U5WENKaGRYUm9iM0pPWVcxbFhDSmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWEYxYVhKbFpGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsUFh0c2FXSnlZWEo1UkdGMFlTNWhkWFJvYjNKT1lXMWxmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UTJoaGJtZGxQWHR2YmtsdWNIVjBRMmhoYm1kbGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIQnNZV05sYUc5c1pHVnlQWHQwS0Z3aWNIVmliR2x6YUVScFlXeHZaeTV3YkdGalpXaHZiR1JsY2k1aGRYUm9iM0pPWVcxbFhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ1BDOXNZV0psYkQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhzWVdKbGJENWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1BITndZVzQrZTNRb1hDSndkV0pzYVhOb1JHbGhiRzluTG1kcGRHaDFZbFZ6WlhKdVlXMWxYQ0lwZlR3dmMzQmhiajVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQR2x1Y0hWMFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RIbHdaVDFjSW5SbGVIUmNJbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzVoYldVOVhDSm5hWFJvZFdKSVlXNWtiR1ZjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGJIVmxQWHRzYVdKeVlYSjVSR0YwWVM1bmFYUm9kV0pJWVc1a2JHVjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVEYUdGdVoyVTllMjl1U1c1d2RYUkRhR0Z1WjJWOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NHeGhZMlZvYjJ4a1pYSTllM1FvWENKd2RXSnNhWE5vUkdsaGJHOW5MbkJzWVdObGFHOXNaR1Z5TG1kcGRHaDFZa2hoYm1Sc1pWd2lLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lEd3ZiR0ZpWld3K1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4YkdGaVpXdytYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpjR0Z1UG50MEtGd2ljSFZpYkdsemFFUnBZV3h2Wnk1MGQybDBkR1Z5VlhObGNtNWhiV1ZjSWlsOVBDOXpjR0Z1UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0E4YVc1d2RYUmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBlWEJsUFZ3aWRHVjRkRndpWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYm1GdFpUMWNJblIzYVhSMFpYSklZVzVrYkdWY0lseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhiSFZsUFh0c2FXSnlZWEo1UkdGMFlTNTBkMmwwZEdWeVNHRnVaR3hsZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVEyaGhibWRsUFh0dmJrbHVjSFYwUTJoaGJtZGxmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJzWVdObGFHOXNaR1Z5UFh0MEtGd2ljSFZpYkdsemFFUnBZV3h2Wnk1d2JHRmpaV2h2YkdSbGNpNTBkMmwwZEdWeVNHRnVaR3hsWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEM5c1lXSmxiRDVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeHNZV0psYkQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOd1lXNCtlM1FvWENKd2RXSnNhWE5vUkdsaGJHOW5MbmRsWW5OcGRHVmNJaWw5UEM5emNHRnVQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQThhVzV3ZFhSY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxQVndpZEdWNGRGd2lYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdibUZ0WlQxY0luZGxZbk5wZEdWY0lseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIQmhkSFJsY200OVhDSm9kSFJ3Y3o4Nkx5OHVLMXdpWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdsMGJHVTllM1FvWENKd2RXSnNhWE5vUkdsaGJHOW5MbVZ5Y205eWN5NTNaV0p6YVhSbFhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbFBYdHNhV0p5WVhKNVJHRjBZUzUzWldKemFYUmxmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UTJoaGJtZGxQWHR2YmtsdWNIVjBRMmhoYm1kbGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIQnNZV05sYUc5c1pHVnlQWHQwS0Z3aWNIVmliR2x6YUVScFlXeHZaeTV3YkdGalpXaHZiR1JsY2k1M1pXSnphWFJsWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEM5c1lXSmxiRDVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeHpjR0Z1SUdOc1lYTnpUbUZ0WlQxY0luQjFZbXhwYzJndGJHbGljbUZ5ZVMxdWIzUmxYQ0krWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSHQwS0Z3aWNIVmliR2x6YUVScFlXeHZaeTV1YjNSbFRHbGpaVzV6WlM1d2NtVmNJaWw5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRHhoWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYUhKbFpqMWNJbWgwZEhCek9pOHZaMmwwYUhWaUxtTnZiUzlsZUdOaGJHbGtjbUYzTDJWNFkyRnNhV1J5WVhjdGJHbGljbUZ5YVdWekwySnNiMkl2YldGcGJpOU1TVU5GVGxORlhDSmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBZWEpuWlhROVhDSmZZbXhoYm10Y0lseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxiRDFjSW01dmIzQmxibVZ5SUc1dmNtVm1aWEp5WlhKY0lseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBK1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2UzUW9YQ0p3ZFdKc2FYTm9SR2xoYkc5bkxtNXZkR1ZNYVdObGJuTmxMbXhwYm10Y0lpbDlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZZVDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdlM1FvWENKd2RXSnNhWE5vUkdsaGJHOW5MbTV2ZEdWTWFXTmxibk5sTG5CdmMzUmNJaWw5WEc0Z0lDQWdJQ0FnSUNBZ0lDQThMM053WVc0K1hHNGdJQ0FnSUNBZ0lDQWdQQzlrYVhZK1hHNGdJQ0FnSUNBZ0lDQWdQR1JwZGlCamJHRnpjMDVoYldVOVhDSndkV0pzYVhOb0xXeHBZbkpoY25sZlgySjFkSFJ2Ym5OY0lqNWNiaUFnSUNBZ0lDQWdJQ0FnSUR4VWIyOXNRblYwZEc5dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhSNWNHVTlYQ0ppZFhSMGIyNWNJbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhWFJzWlQxN2RDaGNJbUoxZEhSdmJuTXVZMkZ1WTJWc1hDSXBmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmhjbWxoTFd4aFltVnNQWHQwS0Z3aVluVjBkRzl1Y3k1allXNWpaV3hjSWlsOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUd4aFltVnNQWHQwS0Z3aVluVjBkRzl1Y3k1allXNWpaV3hjSWlsOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUc5dVEyeHBZMnM5ZTI5dVJHbGhiRzluUTJ4dmMyVjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHUmhkR0V0ZEdWemRHbGtQVndpWTJGdVkyVnNMV05zWldGeUxXTmhiblpoY3kxaWRYUjBiMjVjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYkdGemMwNWhiV1U5WENKd2RXSnNhWE5vTFd4cFluSmhjbmxmWDJKMWRIUnZibk10TFdOaGJtTmxiRndpWEc0Z0lDQWdJQ0FnSUNBZ0lDQXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ1BGUnZiMnhDZFhSMGIyNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2RIbHdaVDFjSW5OMVltMXBkRndpWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFJwZEd4bFBYdDBLRndpWW5WMGRHOXVjeTV6ZFdKdGFYUmNJaWw5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR0Z5YVdFdGJHRmlaV3c5ZTNRb1hDSmlkWFIwYjI1ekxuTjFZbTFwZEZ3aUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2JHRmlaV3c5ZTNRb1hDSmlkWFIwYjI1ekxuTjFZbTFwZEZ3aUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1kyeGhjM05PWVcxbFBWd2ljSFZpYkdsemFDMXNhV0p5WVhKNVgxOWlkWFIwYjI1ekxTMWpiMjVtYVhKdFhDSmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2FYTk1iMkZrYVc1blBYdHBjMU4xWW0xcGRIUnBibWQ5WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZQbHh1SUNBZ0lDQWdJQ0FnSUR3dlpHbDJQbHh1SUNBZ0lDQWdJQ0E4TDJadmNtMCtYRzRnSUNBZ0lDQXBJRG9nS0Z4dUlDQWdJQ0FnSUNBOGNDQnpkSGxzWlQxN2V5QndZV1JrYVc1bk9pQmNJakZsYlZ3aUxDQjBaWGgwUVd4cFoyNDZJRndpWTJWdWRHVnlYQ0lzSUdadmJuUlhaV2xuYUhRNklEVXdNQ0I5ZlQ1Y2JpQWdJQ0FnSUNBZ0lDQjdkQ2hjSW5CMVlteHBjMmhFYVdGc2IyY3VZWFJzWldGemRFOXVaVXhwWWtsMFpXMWNJaWw5WEc0Z0lDQWdJQ0FnSUR3dmNENWNiaUFnSUNBZ0lDbDlYRzRnSUNBZ1BDOUVhV0ZzYjJjK1hHNGdJQ2s3WEc1OU8xeHVYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQlFkV0pzYVhOb1RHbGljbUZ5ZVR0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvUHVibGlzaExpYnJhcnkudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL1NlY3Rpb24udHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9TZWN0aW9uLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJTZWN0aW9uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gU2VjdGlvbilcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0ICovIFxcXCJyZWFjdFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL0FwcCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9BcHAudHN4XFxcIik7XFxudmFyIF9fcmVzdCA9ICh1bmRlZmluZWQgJiYgdW5kZWZpbmVkLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcXG4gICAgdmFyIHQgPSB7fTtcXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXFxuICAgICAgICB0W3BdID0gc1twXTtcXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXFxcImZ1bmN0aW9uXFxcIilcXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXFxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xcbiAgICAgICAgfVxcbiAgICByZXR1cm4gdDtcXG59O1xcblxcblxcblxcblxcbmNvbnN0IFNlY3Rpb24gPSAoX2EpID0+IHtcXG4gICAgdmFyIHsgaGVhZGluZywgY2hpbGRyZW4gfSA9IF9hLCBwcm9wcyA9IF9fcmVzdChfYSwgW1xcXCJoZWFkaW5nXFxcIiwgXFxcImNoaWxkcmVuXFxcIl0pO1xcbiAgICBjb25zdCB7IGlkIH0gPSAoMCxfQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udXNlRXhjYWxpZHJhd0NvbnRhaW5lcikoKTtcXG4gICAgY29uc3QgaGVhZGVyID0gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiaDJcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwidmlzdWFsbHktaGlkZGVuXFxcIiwgaWQ6IGAke2lkfS0ke2hlYWRpbmd9LXRpdGxlYCB9LCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnQpKGBoZWFkaW5ncy4ke2hlYWRpbmd9YCkgfSksIHZvaWQgMCkpO1xcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic2VjdGlvblxcXCIsIE9iamVjdC5hc3NpZ24oe30sIHByb3BzLCB7IFxcXCJhcmlhLWxhYmVsbGVkYnlcXFwiOiBgJHtpZH0tJHtoZWFkaW5nfS10aXRsZWAgfSwgeyBjaGlsZHJlbjogdHlwZW9mIGNoaWxkcmVuID09PSBcXFwiZnVuY3Rpb25cXFwiID8gKGNoaWxkcmVuKGhlYWRlcikpIDogKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykocmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GcmFnbWVudCwgeyBjaGlsZHJlbjogW2hlYWRlciwgY2hpbGRyZW5dIH0sIHZvaWQgMCkpIH0pLCB2b2lkIDApKTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5VFpXTjBhVzl1TG5SemVDNXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN096czdPenM3T3pzN096czdRVUZCTUVJN1FVRkRSVHRCUVVOdFFqdEJRVTk0UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhEUVVGRExFVkJRVFpETEVWQlFVVXNSVUZCUlR0UlFVRnFSQ3hGUVVGRkxFOUJRVThzUlVGQlJTeFJRVUZSTEU5QlFUQkNMRVZCUVhKQ0xFdEJRVXNzWTBGQk4wSXNkVUpCUVN0Q0xFTkJRVVk3U1VGRGJrUXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkJSU3hIUVVGSExEUkVRVUZ6UWl4RlFVRkZMRU5CUVVNN1NVRkRlRU1zVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZEWWl3MlJVRkJTU3hUUVVGVExFVkJRVU1zYVVKQlFXbENMRVZCUVVNc1JVRkJSU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEpRVUZKTEU5QlFVOHNVVUZCVVN4blFrRkRla1FzZDBOQlFVTXNRMEZCUXl4WlFVRlpMRTlCUVU4c1JVRkJSU3hEUVVGRExGbEJRM1JDTEVOQlEwNHNRMEZCUXp0SlFVTkdMRTlCUVU4c1EwRkRUQ3h2UmtGQllTeExRVUZMTEhWQ1FVRnRRaXhIUVVGSExFVkJRVVVzU1VGQlNTeFBRVUZQTEZGQlFWRXNaMEpCUXpGRUxFOUJRVThzVVVGQlVTeExRVUZMTEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkRhRU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVTnFRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVU5HTERoSVFVTkhMRTFCUVUwc1JVRkRUaXhSUVVGUkxGbEJRMUlzUTBGRFNpeFpRVU5QTEVOQlExZ3NRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5amIyMXdiMjVsYm5SekwxTmxZM1JwYjI0dWRITjRQek16TnpJaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElGSmxZV04wSUdaeWIyMGdYQ0p5WldGamRGd2lPMXh1YVcxd2IzSjBJSHNnZENCOUlHWnliMjBnWENJdUxpOXBNVGh1WENJN1hHNXBiWEJ2Y25RZ2V5QjFjMlZGZUdOaGJHbGtjbUYzUTI5dWRHRnBibVZ5SUgwZ1puSnZiU0JjSWk0dlFYQndYQ0k3WEc1Y2JtbHVkR1Z5Wm1GalpTQlRaV04wYVc5dVVISnZjSE1nWlhoMFpXNWtjeUJTWldGamRDNUlWRTFNVUhKdmNITThTRlJOVEVWc1pXMWxiblErSUh0Y2JpQWdhR1ZoWkdsdVp6b2djM1J5YVc1bk8xeHVJQ0JqYUdsc1pISmxiam9nVW1WaFkzUXVVbVZoWTNST2IyUmxJSHdnS0Nob1pXRmtaWEk2SUZKbFlXTjBMbEpsWVdOMFRtOWtaU2tnUFQ0Z1VtVmhZM1F1VW1WaFkzUk9iMlJsS1R0Y2JuMWNibHh1Wlhod2IzSjBJR052Ym5OMElGTmxZM1JwYjI0Z1BTQW9leUJvWldGa2FXNW5MQ0JqYUdsc1pISmxiaXdnTGk0dWNISnZjSE1nZlRvZ1UyVmpkR2x2YmxCeWIzQnpLU0E5UGlCN1hHNGdJR052Ym5OMElIc2dhV1FnZlNBOUlIVnpaVVY0WTJGc2FXUnlZWGREYjI1MFlXbHVaWElvS1R0Y2JpQWdZMjl1YzNRZ2FHVmhaR1Z5SUQwZ0tGeHVJQ0FnSUR4b01pQmpiR0Z6YzA1aGJXVTlYQ0oyYVhOMVlXeHNlUzFvYVdSa1pXNWNJaUJwWkQxN1lDUjdhV1I5TFNSN2FHVmhaR2x1WjMwdGRHbDBiR1ZnZlQ1Y2JpQWdJQ0FnSUh0MEtHQm9aV0ZrYVc1bmN5NGtlMmhsWVdScGJtZDlZQ2w5WEc0Z0lDQWdQQzlvTWo1Y2JpQWdLVHRjYmlBZ2NtVjBkWEp1SUNoY2JpQWdJQ0E4YzJWamRHbHZiaUI3TGk0dWNISnZjSE45SUdGeWFXRXRiR0ZpWld4c1pXUmllVDE3WUNSN2FXUjlMU1I3YUdWaFpHbHVaMzB0ZEdsMGJHVmdmVDVjYmlBZ0lDQWdJSHQwZVhCbGIyWWdZMmhwYkdSeVpXNGdQVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpQS9JQ2hjYmlBZ0lDQWdJQ0FnWTJocGJHUnlaVzRvYUdWaFpHVnlLVnh1SUNBZ0lDQWdLU0E2SUNoY2JpQWdJQ0FnSUNBZ1BENWNiaUFnSUNBZ0lDQWdJQ0I3YUdWaFpHVnlmVnh1SUNBZ0lDQWdJQ0FnSUh0amFHbHNaSEpsYm4xY2JpQWdJQ0FnSUNBZ1BDOCtYRzRnSUNBZ0lDQXBmVnh1SUNBZ0lEd3ZjMlZqZEdsdmJqNWNiaUFnS1R0Y2JuMDdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL1NlY3Rpb24udHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL1NpbmdsZUxpYnJhcnlJdGVtLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL1NpbmdsZUxpYnJhcnlJdGVtLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgb3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgb3Blbi1jb2xvciAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5qc29uXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdCAqLyBcXFwicmVhY3RcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3BhY2thZ2VzX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wYWNrYWdlcy91dGlscyAqLyBcXFwiLi4vdXRpbHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2ljb25zICovIFxcXCIuLi8uLi9jb21wb25lbnRzL2ljb25zLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfU2luZ2xlTGlicmFyeUl0ZW1fc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9TaW5nbGVMaWJyYXJ5SXRlbS5zY3NzICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1NpbmdsZUxpYnJhcnlJdGVtLnNjc3NcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1NpbmdsZUxpYnJhcnlJdGVtX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfU2luZ2xlTGlicmFyeUl0ZW1fc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vVG9vbEJ1dHRvbiAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uLnRzeFxcXCIpO1xcbnZhciBfX2F3YWl0ZXIgPSAodW5kZWZpbmVkICYmIHVuZGVmaW5lZC5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XFxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXFxcInRocm93XFxcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcXG4gICAgfSk7XFxufTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBTaW5nbGVMaWJyYXJ5SXRlbSA9ICh7IGxpYkl0ZW0sIGFwcFN0YXRlLCBpbmRleCwgb25DaGFuZ2UsIG9uUmVtb3ZlLCB9KSA9PiB7XFxuICAgIGNvbnN0IHN2Z1JlZiA9ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udXNlUmVmKShudWxsKTtcXG4gICAgY29uc3QgaW5wdXRSZWYgPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnVzZVJlZikobnVsbCk7XFxuICAgICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udXNlRWZmZWN0KSgoKSA9PiB7XFxuICAgICAgICBjb25zdCBub2RlID0gc3ZnUmVmLmN1cnJlbnQ7XFxuICAgICAgICBpZiAoIW5vZGUpIHtcXG4gICAgICAgICAgICByZXR1cm47XFxuICAgICAgICB9XFxuICAgICAgICAoKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XFxuICAgICAgICAgICAgY29uc3Qgc3ZnID0geWllbGQgKDAsX3BhY2thZ2VzX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uZXhwb3J0VG9TdmcpKHtcXG4gICAgICAgICAgICAgICAgZWxlbWVudHM6IGxpYkl0ZW0uZWxlbWVudHMsXFxuICAgICAgICAgICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyB2aWV3QmFja2dyb3VuZENvbG9yOiBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ud2hpdGUsIGV4cG9ydEJhY2tncm91bmQ6IHRydWUgfSksXFxuICAgICAgICAgICAgICAgIGZpbGVzOiBudWxsLFxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIG5vZGUuaW5uZXJIVE1MID0gc3ZnLm91dGVySFRNTDtcXG4gICAgICAgIH0pKSgpO1xcbiAgICB9LCBbbGliSXRlbS5lbGVtZW50cywgYXBwU3RhdGVdKTtcXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwic2luZ2xlLWxpYnJhcnktaXRlbVxcXCIgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgeyByZWY6IHN2Z1JlZiwgY2xhc3NOYW1lOiBcXFwic2luZ2xlLWxpYnJhcnktaXRlbV9fc3ZnXFxcIiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5Ub29sQnV0dG9uLCB7IFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy50KShcXFwiYnV0dG9ucy5yZW1vdmVcXFwiKSwgdHlwZTogXFxcImJ1dHRvblxcXCIsIGljb246IF9pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmNsb3NlLCBjbGFzc05hbWU6IFxcXCJzaW5nbGUtbGlicmFyeS1pdGVtLS1yZW1vdmVcXFwiLCBvbkNsaWNrOiBvblJlbW92ZS5iaW5kKG51bGwsIGxpYkl0ZW0uaWQpLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy50KShcXFwiYnV0dG9ucy5yZW1vdmVcXFwiKSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgc3R5bGU6IHtcXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFxcXCJmbGV4XFxcIixcXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogXFxcIjAuOHJlbSAwLjNyZW1cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFxcXCIxMDAlXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiBcXFwiMTRweFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiA1MDAsXFxuICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiBcXFwiY29sdW1uXFxcIixcXG4gICAgICAgICAgICAgICAgfSB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwibGFiZWxcXFwiLCBPYmplY3QuYXNzaWduKHsgc3R5bGU6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogXFxcImZsZXhcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXFxcInNwYWNlLWJldHdlZW5cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiBcXFwiY29sdW1uXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgc3R5bGU6IHsgcGFkZGluZzogXFxcIjAuNWVtIDBcXFwiIH0gfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3BhblxcXCIsIE9iamVjdC5hc3NpZ24oeyBzdHlsZTogeyBmb250V2VpZ2h0OiA1MDAsIGNvbG9yOiBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ3JheVs2XSB9IH0sIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udCkoXFxcInB1Ymxpc2hEaWFsb2cuaXRlbU5hbWVcXFwiKSB9KSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJzcGFuXFxcIiwgT2JqZWN0LmFzc2lnbih7IFxcXCJhcmlhLWhpZGRlblxcXCI6IFxcXCJ0cnVlXFxcIiwgY2xhc3NOYW1lOiBcXFwicmVxdWlyZWRcXFwiIH0sIHsgY2hpbGRyZW46IFxcXCIqXFxcIiB9KSwgdm9pZCAwKV0gfSksIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiaW5wdXRcXFwiLCB7IHR5cGU6IFxcXCJ0ZXh0XFxcIiwgcmVmOiBpbnB1dFJlZiwgc3R5bGU6IHsgd2lkdGg6IFxcXCI4MCVcXFwiLCBwYWRkaW5nOiBcXFwiMC4ycmVtXFxcIiB9LCBkZWZhdWx0VmFsdWU6IGxpYkl0ZW0ubmFtZSwgcGxhY2Vob2xkZXI6IFxcXCJJdGVtIG5hbWVcXFwiLCBvbkNoYW5nZTogKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoZXZlbnQudGFyZ2V0LnZhbHVlLCBpbmRleCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IH0sIHZvaWQgMCldIH0pLCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInNwYW5cXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiZXJyb3JcXFwiIH0sIHsgY2hpbGRyZW46IGxpYkl0ZW0uZXJyb3IgfSksIHZvaWQgMCldIH0pLCB2b2lkIDApXSB9KSwgdm9pZCAwKSk7XFxufTtcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKFNpbmdsZUxpYnJhcnlJdGVtKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVRhVzVuYkdWTWFXSnlZWEo1U1hSbGJTNTBjM2d1YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJRVFJDTzBGQlEyTTdRVUZEWkR0QlFVTnZRanRCUVVWb1FqdEJRVVZGTzBGQlExRTdRVUZGTVVNc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnl4RFFVRkRMRVZCUTNwQ0xFOUJRVThzUlVGRFVDeFJRVUZSTEVWQlExSXNTMEZCU3l4RlFVTk1MRkZCUVZFc1JVRkRVaXhSUVVGUkxFZEJUMVFzUlVGQlJTeEZRVUZGTzBsQlEwZ3NUVUZCVFN4TlFVRk5MRWRCUVVjc05rTkJRVTBzUTBGQmQwSXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRia1FzVFVGQlRTeFJRVUZSTEVkQlFVY3NOa05CUVUwc1EwRkJNRUlzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZGZGtRc1owUkJRVk1zUTBGQlF5eEhRVUZITEVWQlFVVTdVVUZEWWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETzFGQlF6VkNMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVU3V1VGRFZDeFBRVUZQTzFOQlExSTdVVUZEUkN4RFFVRkRMRWRCUVZNc1JVRkJSVHRaUVVOV0xFMUJRVTBzUjBGQlJ5eEhRVUZITEUxQlFVMHNORVJCUVZjc1EwRkJRenRuUWtGRE5VSXNVVUZCVVN4RlFVRkZMRTlCUVU4c1EwRkJReXhSUVVGUk8yZENRVU14UWl4UlFVRlJMR3REUVVOSUxGRkJRVkVzUzBGRFdDeHRRa0ZCYlVJc1JVRkJSU3cyUTBGQlVTeEZRVU0zUWl4blFrRkJaMElzUlVGQlJTeEpRVUZKTEVkQlEzWkNPMmRDUVVORUxFdEJRVXNzUlVGQlJTeEpRVUZKTzJGQlExb3NRMEZCUXl4RFFVRkRPMWxCUTBnc1NVRkJTU3hEUVVGRExGTkJRVk1zUjBGQlJ5eEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRPMUZCUTJwRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTTdTVUZEVUN4RFFVRkRMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZha01zVDBGQlR5eERRVU5NTEN0RlFVRkxMRk5CUVZNc1JVRkJReXh4UWtGQmNVSXNhVUpCUTJ4RExHZEZRVUZMTEVkQlFVY3NSVUZCUlN4TlFVRk5MRVZCUVVVc1UwRkJVeXhGUVVGRExEQkNRVUV3UWl4WFFVRkhMRVZCUTNwRUxIVkVRVUZETEcxRVFVRlZMR3RDUVVOSExIZERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUlVGREwwSXNTVUZCU1N4RlFVRkRMRkZCUVZFc1JVRkRZaXhKUVVGSkxFVkJRVVVzZVVOQlFVc3NSVUZEV0N4VFFVRlRMRVZCUVVNc05rSkJRVFpDTEVWQlEzWkRMRTlCUVU4c1JVRkJSU3hSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRM2hETEV0QlFVc3NSVUZCUlN4M1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRmRCUXpGQ0xFVkJRMFlzSzBWQlEwVXNTMEZCU3l4RlFVRkZPMjlDUVVOTUxFOUJRVThzUlVGQlJTeE5RVUZOTzI5Q1FVTm1MRTFCUVUwc1JVRkJSU3hsUVVGbE8yOUNRVU4yUWl4TFFVRkxMRVZCUVVVc1RVRkJUVHR2UWtGRFlpeFJRVUZSTEVWQlFVVXNUVUZCVFR0dlFrRkRhRUlzVlVGQlZTeEZRVUZGTEVkQlFVYzdiMEpCUTJZc1lVRkJZU3hGUVVGRkxGRkJRVkU3YVVKQlEzaENMR2xDUVVWRUxHbEdRVU5GTEV0QlFVc3NSVUZCUlRzMFFrRkRUQ3hQUVVGUExFVkJRVVVzVFVGQlRUczBRa0ZEWml4alFVRmpMRVZCUVVVc1pVRkJaVHMwUWtGREwwSXNZVUZCWVN4RlFVRkZMRkZCUVZFN2VVSkJRM2hDTEdsQ1FVVkVMQ3RGUVVGTExFdEJRVXNzUlVGQlJTeEZRVUZGTEU5QlFVOHNSVUZCUlN4VFFVRlRMRVZCUVVVc2FVSkJRMmhETEN0RlFVRk5MRXRCUVVzc1JVRkJSU3hGUVVGRkxGVkJRVlVzUlVGQlJTeEhRVUZITEVWQlFVVXNTMEZCU3l4RlFVRkZMQ3REUVVGVkxFVkJRVVVzWjBKQlEyaEVMSGREUVVGRExFTkJRVU1zZDBKQlFYZENMRU5CUVVNc1dVRkRka0lzUlVGRFVDdzRSa0ZCYTBJc1RVRkJUU3hGUVVGRExGTkJRVk1zUlVGQlF5eFZRVUZWTEN0Q1FVVjBReXhoUVVOSUxFVkJRMDRzYTBWQlEwVXNTVUZCU1N4RlFVRkRMRTFCUVUwc1JVRkRXQ3hIUVVGSExFVkJRVVVzVVVGQlVTeEZRVU5pTEV0QlFVc3NSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVVzVDBGQlR5eEZRVUZGTEZGQlFWRXNSVUZCUlN4RlFVTXhReXhaUVVGWkxFVkJRVVVzVDBGQlR5eERRVUZETEVsQlFVa3NSVUZETVVJc1YwRkJWeXhGUVVGRExGZEJRVmNzUlVGRGRrSXNVVUZCVVN4RlFVRkZMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVU3YjBOQlEyeENMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRuUTBGRGRFTXNRMEZCUXl4WFFVTkVMR0ZCUTBrc1JVRkRVaXdyUlVGQlRTeFRRVUZUTEVWQlFVTXNUMEZCVHl4blFrRkJSU3hQUVVGUExFTkJRVU1zUzBGQlN5eFpRVUZSTEdGQlF6RkRMR0ZCUTBZc1EwRkRVQ3hEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETzBGQlJVWXNhVVZCUVdVc2FVSkJRV2xDTEVWQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5VGFXNW5iR1ZNYVdKeVlYSjVTWFJsYlM1MGMzZy9ZalExWXlKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2IyTWdabkp2YlNCY0ltOXdaVzR0WTI5c2IzSmNJanRjYm1sdGNHOXlkQ0I3SUhWelpVVm1abVZqZEN3Z2RYTmxVbVZtSUgwZ1puSnZiU0JjSW5KbFlXTjBYQ0k3WEc1cGJYQnZjblFnZXlCMElIMGdabkp2YlNCY0lpNHVMMmt4T0c1Y0lqdGNibWx0Y0c5eWRDQjdJR1Y0Y0c5eWRGUnZVM1puSUgwZ1puSnZiU0JjSWk0dUwzQmhZMnRoWjJWekwzVjBhV3h6WENJN1hHNXBiWEJ2Y25RZ2V5QkJjSEJUZEdGMFpTd2dUR2xpY21GeWVVbDBaVzBnZlNCbWNtOXRJRndpTGk0dmRIbHdaWE5jSWp0Y2JtbHRjRzl5ZENCN0lHTnNiM05sSUgwZ1puSnZiU0JjSWk0dmFXTnZibk5jSWp0Y2JseHVhVzF3YjNKMElGd2lMaTlUYVc1bmJHVk1hV0p5WVhKNVNYUmxiUzV6WTNOelhDSTdYRzVwYlhCdmNuUWdleUJVYjI5c1FuVjBkRzl1SUgwZ1puSnZiU0JjSWk0dlZHOXZiRUoxZEhSdmJsd2lPMXh1WEc1amIyNXpkQ0JUYVc1bmJHVk1hV0p5WVhKNVNYUmxiU0E5SUNoN1hHNGdJR3hwWWtsMFpXMHNYRzRnSUdGd2NGTjBZWFJsTEZ4dUlDQnBibVJsZUN4Y2JpQWdiMjVEYUdGdVoyVXNYRzRnSUc5dVVtVnRiM1psTEZ4dWZUb2dlMXh1SUNCc2FXSkpkR1Z0T2lCTWFXSnlZWEo1U1hSbGJUdGNiaUFnWVhCd1UzUmhkR1U2SUVGd2NGTjBZWFJsTzF4dUlDQnBibVJsZURvZ2JuVnRZbVZ5TzF4dUlDQnZia05vWVc1blpUb2dLSFpoYkRvZ2MzUnlhVzVuTENCcGJtUmxlRG9nYm5WdFltVnlLU0E5UGlCMmIybGtPMXh1SUNCdmJsSmxiVzkyWlRvZ0tHbGtPaUJ6ZEhKcGJtY3BJRDArSUhadmFXUTdYRzU5S1NBOVBpQjdYRzRnSUdOdmJuTjBJSE4yWjFKbFppQTlJSFZ6WlZKbFpqeElWRTFNUkdsMlJXeGxiV1Z1ZENCOElHNTFiR3crS0c1MWJHd3BPMXh1SUNCamIyNXpkQ0JwYm5CMWRGSmxaaUE5SUhWelpWSmxaanhJVkUxTVNXNXdkWFJGYkdWdFpXNTBJSHdnYm5Wc2JENG9iblZzYkNrN1hHNWNiaUFnZFhObFJXWm1aV04wS0NncElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCdWIyUmxJRDBnYzNablVtVm1MbU4xY25KbGJuUTdYRzRnSUNBZ2FXWWdLQ0Z1YjJSbEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dUlDQWdJQ2hoYzNsdVl5QW9LU0E5UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0J6ZG1jZ1BTQmhkMkZwZENCbGVIQnZjblJVYjFOMlp5aDdYRzRnSUNBZ0lDQWdJR1ZzWlcxbGJuUnpPaUJzYVdKSmRHVnRMbVZzWlcxbGJuUnpMRnh1SUNBZ0lDQWdJQ0JoY0hCVGRHRjBaVG9nZTF4dUlDQWdJQ0FnSUNBZ0lDNHVMbUZ3Y0ZOMFlYUmxMRnh1SUNBZ0lDQWdJQ0FnSUhacFpYZENZV05yWjNKdmRXNWtRMjlzYjNJNklHOWpMbmRvYVhSbExGeHVJQ0FnSUNBZ0lDQWdJR1Y0Y0c5eWRFSmhZMnRuY205MWJtUTZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJR1pwYkdWek9pQnVkV3hzTEZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCdWIyUmxMbWx1Ym1WeVNGUk5UQ0E5SUhOMlp5NXZkWFJsY2toVVRVdzdYRzRnSUNBZ2ZTa29LVHRjYmlBZ2ZTd2dXMnhwWWtsMFpXMHVaV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxYU2s3WEc1Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNBOFpHbDJJR05zWVhOelRtRnRaVDFjSW5OcGJtZHNaUzFzYVdKeVlYSjVMV2wwWlcxY0lqNWNiaUFnSUNBZ0lEeGthWFlnY21WbVBYdHpkbWRTWldaOUlHTnNZWE56VG1GdFpUMWNJbk5wYm1kc1pTMXNhV0p5WVhKNUxXbDBaVzFmWDNOMloxd2lJQzgrWEc0Z0lDQWdJQ0E4Vkc5dmJFSjFkSFJ2Ymx4dUlDQWdJQ0FnSUNCaGNtbGhMV3hoWW1Wc1BYdDBLRndpWW5WMGRHOXVjeTV5WlcxdmRtVmNJaWw5WEc0Z0lDQWdJQ0FnSUhSNWNHVTlYQ0ppZFhSMGIyNWNJbHh1SUNBZ0lDQWdJQ0JwWTI5dVBYdGpiRzl6WlgxY2JpQWdJQ0FnSUNBZ1kyeGhjM05PWVcxbFBWd2ljMmx1WjJ4bExXeHBZbkpoY25rdGFYUmxiUzB0Y21WdGIzWmxYQ0pjYmlBZ0lDQWdJQ0FnYjI1RGJHbGphejE3YjI1U1pXMXZkbVV1WW1sdVpDaHVkV3hzTENCc2FXSkpkR1Z0TG1sa0tYMWNiaUFnSUNBZ0lDQWdkR2wwYkdVOWUzUW9YQ0ppZFhSMGIyNXpMbkpsYlc5MlpWd2lLWDFjYmlBZ0lDQWdJQzgrWEc0Z0lDQWdJQ0E4WkdsMlhHNGdJQ0FnSUNBZ0lITjBlV3hsUFh0N1hHNGdJQ0FnSUNBZ0lDQWdaR2x6Y0d4aGVUb2dYQ0ptYkdWNFhDSXNYRzRnSUNBZ0lDQWdJQ0FnYldGeVoybHVPaUJjSWpBdU9ISmxiU0F3TGpOeVpXMWNJaXhjYmlBZ0lDQWdJQ0FnSUNCM2FXUjBhRG9nWENJeE1EQWxYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ1ptOXVkRk5wZW1VNklGd2lNVFJ3ZUZ3aUxGeHVJQ0FnSUNBZ0lDQWdJR1p2Ym5SWFpXbG5hSFE2SURVd01DeGNiaUFnSUNBZ0lDQWdJQ0JtYkdWNFJHbHlaV04wYVc5dU9pQmNJbU52YkhWdGJsd2lMRnh1SUNBZ0lDQWdJQ0I5ZlZ4dUlDQWdJQ0FnUGx4dUlDQWdJQ0FnSUNBOGJHRmlaV3hjYmlBZ0lDQWdJQ0FnSUNCemRIbHNaVDE3ZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaR2x6Y0d4aGVUb2dYQ0ptYkdWNFhDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNCcWRYTjBhV1o1UTI5dWRHVnVkRG9nWENKemNHRmpaUzFpWlhSM1pXVnVYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQm1iR1Y0UkdseVpXTjBhVzl1T2lCY0ltTnZiSFZ0Ymx3aUxGeHVJQ0FnSUNBZ0lDQWdJSDE5WEc0Z0lDQWdJQ0FnSUQ1Y2JpQWdJQ0FnSUNBZ0lDQThaR2wySUhOMGVXeGxQWHQ3SUhCaFpHUnBibWM2SUZ3aU1DNDFaVzBnTUZ3aUlIMTlQbHh1SUNBZ0lDQWdJQ0FnSUNBZ1BITndZVzRnYzNSNWJHVTllM3NnWm05dWRGZGxhV2RvZERvZ05UQXdMQ0JqYjJ4dmNqb2diMk11WjNKaGVWczJYU0I5ZlQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZTNRb1hDSndkV0pzYVhOb1JHbGhiRzluTG1sMFpXMU9ZVzFsWENJcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnUEM5emNHRnVQbHh1SUNBZ0lDQWdJQ0FnSUNBZ1BITndZVzRnWVhKcFlTMW9hV1JrWlc0OVhDSjBjblZsWENJZ1kyeGhjM05PWVcxbFBWd2ljbVZ4ZFdseVpXUmNJajVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdLbHh1SUNBZ0lDQWdJQ0FnSUNBZ1BDOXpjR0Z1UGx4dUlDQWdJQ0FnSUNBZ0lEd3ZaR2wyUGx4dUlDQWdJQ0FnSUNBZ0lEeHBibkIxZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkSGx3WlQxY0luUmxlSFJjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdjbVZtUFh0cGJuQjFkRkpsWm4xY2JpQWdJQ0FnSUNBZ0lDQWdJSE4wZVd4bFBYdDdJSGRwWkhSb09pQmNJamd3SlZ3aUxDQndZV1JrYVc1bk9pQmNJakF1TW5KbGJWd2lJSDE5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmtaV1poZFd4MFZtRnNkV1U5ZTJ4cFlrbDBaVzB1Ym1GdFpYMWNiaUFnSUNBZ0lDQWdJQ0FnSUhCc1lXTmxhRzlzWkdWeVBWd2lTWFJsYlNCdVlXMWxYQ0pjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXVRMmhoYm1kbFBYc29aWFpsYm5RcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdiMjVEYUdGdVoyVW9aWFpsYm5RdWRHRnlaMlYwTG5aaGJIVmxMQ0JwYm1SbGVDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOWZWeHVJQ0FnSUNBZ0lDQWdJQzgrWEc0Z0lDQWdJQ0FnSUR3dmJHRmlaV3crWEc0Z0lDQWdJQ0FnSUR4emNHRnVJR05zWVhOelRtRnRaVDFjSW1WeWNtOXlYQ0krZTJ4cFlrbDBaVzB1WlhKeWIzSjlQQzl6Y0dGdVBseHVJQ0FnSUNBZ1BDOWthWFkrWEc0Z0lDQWdQQzlrYVhZK1hHNGdJQ2s3WEc1OU8xeHVYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQlRhVzVuYkdWTWFXSnlZWEo1U1hSbGJUdGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL1NpbmdsZUxpYnJhcnlJdGVtLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9TcGlubmVyLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvU3Bpbm5lci50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0ICovIFxcXCJyZWFjdFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfU3Bpbm5lcl9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1NwaW5uZXIuc2NzcyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9TcGlubmVyLnNjc3NcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1NwaW5uZXJfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9TcGlubmVyX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyk7XFxuXFxuXFxuXFxuY29uc3QgU3Bpbm5lciA9ICh7IHNpemUgPSBcXFwiMWVtXFxcIiwgY2lyY2xlV2lkdGggPSA4LCB9KSA9PiB7XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiU3Bpbm5lclxcXCIgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJzdmdcXFwiLCBPYmplY3QuYXNzaWduKHsgdmlld0JveDogXFxcIjAgMCAxMDAgMTAwXFxcIiwgc3R5bGU6IHsgd2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZSB9IH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiY2lyY2xlXFxcIiwgeyBjeDogXFxcIjUwXFxcIiwgY3k6IFxcXCI1MFxcXCIsIHI6IDUwIC0gY2lyY2xlV2lkdGggLyAyLCBzdHJva2VXaWR0aDogY2lyY2xlV2lkdGgsIGZpbGw6IFxcXCJub25lXFxcIiwgc3Ryb2tlTWl0ZXJsaW1pdDogXFxcIjEwXFxcIiB9LCB2b2lkIDApIH0pLCB2b2lkIDApIH0pLCB2b2lkIDApKTtcXG59O1xcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gY29uc3QgX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18gPSAoU3Bpbm5lcik7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlUY0dsdWJtVnlMblJ6ZUM1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3TzBGQlFUQkNPMEZCUlVZN1FVRkZlRUlzVFVGQlRTeFBRVUZQTEVkQlFVY3NRMEZCUXl4RlFVTm1MRWxCUVVrc1IwRkJSeXhMUVVGTExFVkJRMW9zVjBGQlZ5eEhRVUZITEVOQlFVTXNSMEZKYUVJc1JVRkJSU3hGUVVGRk8wbEJRMGdzVDBGQlR5eERRVU5NTERoRlFVRkxMRk5CUVZNc1JVRkJReXhUUVVGVExHZENRVU4wUWl3NFJVRkJTeXhQUVVGUExFVkJRVU1zWVVGQllTeEZRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hKUVVGSkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVsQlFVa3NSVUZCUlN4blFrRkROMFFzYlVWQlEwVXNSVUZCUlN4RlFVRkRMRWxCUVVrc1JVRkRVQ3hGUVVGRkxFVkJRVU1zU1VGQlNTeEZRVU5RTEVOQlFVTXNSVUZCUlN4RlFVRkZMRWRCUVVjc1YwRkJWeXhIUVVGSExFTkJRVU1zUlVGRGRrSXNWMEZCVnl4RlFVRkZMRmRCUVZjc1JVRkRlRUlzU1VGQlNTeEZRVUZETEUxQlFVMHNSVUZEV0N4blFrRkJaMElzUlVGQlF5eEpRVUZKTEZkQlEzSkNMRmxCUTBVc1dVRkRSaXhEUVVOUUxFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZGUml4cFJVRkJaU3hQUVVGUExFVkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVRjR2x1Ym1WeUxuUnplRDltTXpKaElsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQlNaV0ZqZENCbWNtOXRJRndpY21WaFkzUmNJanRjYmx4dWFXMXdiM0owSUZ3aUxpOVRjR2x1Ym1WeUxuTmpjM05jSWp0Y2JseHVZMjl1YzNRZ1UzQnBibTVsY2lBOUlDaDdYRzRnSUhOcGVtVWdQU0JjSWpGbGJWd2lMRnh1SUNCamFYSmpiR1ZYYVdSMGFDQTlJRGdzWEc1OU9pQjdYRzRnSUhOcGVtVS9PaUJ6ZEhKcGJtY2dmQ0J1ZFcxaVpYSTdYRzRnSUdOcGNtTnNaVmRwWkhSb1B6b2diblZ0WW1WeU8xeHVmU2tnUFQ0Z2UxeHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lEeGthWFlnWTJ4aGMzTk9ZVzFsUFZ3aVUzQnBibTVsY2x3aVBseHVJQ0FnSUNBZ1BITjJaeUIyYVdWM1FtOTRQVndpTUNBd0lERXdNQ0F4TURCY0lpQnpkSGxzWlQxN2V5QjNhV1IwYURvZ2MybDZaU3dnYUdWcFoyaDBPaUJ6YVhwbElIMTlQbHh1SUNBZ0lDQWdJQ0E4WTJseVkyeGxYRzRnSUNBZ0lDQWdJQ0FnWTNnOVhDSTFNRndpWEc0Z0lDQWdJQ0FnSUNBZ1kzazlYQ0kxTUZ3aVhHNGdJQ0FnSUNBZ0lDQWdjajE3TlRBZ0xTQmphWEpqYkdWWGFXUjBhQ0F2SURKOVhHNGdJQ0FnSUNBZ0lDQWdjM1J5YjJ0bFYybGtkR2c5ZTJOcGNtTnNaVmRwWkhSb2ZWeHVJQ0FnSUNBZ0lDQWdJR1pwYkd3OVhDSnViMjVsWENKY2JpQWdJQ0FnSUNBZ0lDQnpkSEp2YTJWTmFYUmxjbXhwYldsMFBWd2lNVEJjSWx4dUlDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ1BDOXpkbWMrWEc0Z0lDQWdQQzlrYVhZK1hHNGdJQ2s3WEc1OU8xeHVYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQlRjR2x1Ym1WeU8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvU3Bpbm5lci50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvU3RhY2sudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvU3RhY2sudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkZWZhdWx0XFxcIjogKCkgPT4gKF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfU3RhY2tfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9TdGFjay5zY3NzICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1N0YWNrLnNjc3NcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1N0YWNrX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfU3RhY2tfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0ICovIFxcXCJyZWFjdFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBjbHN4ICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY2xzeC9kaXN0L2Nsc3gubS5qc1xcXCIpO1xcblxcblxcblxcblxcbmNvbnN0IFJvd1N0YWNrID0gKHsgY2hpbGRyZW4sIGdhcCwgYWxpZ24sIGp1c3RpZnlDb250ZW50LCBjbGFzc05hbWUsIHN0eWxlLCB9KSA9PiB7XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiAoMCxjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bXFxcImRlZmF1bHRcXFwiXSkoXFxcIlN0YWNrIFN0YWNrX2hvcml6b250YWxcXFwiLCBjbGFzc05hbWUpLCBzdHlsZTogT2JqZWN0LmFzc2lnbih7IFxcXCItLWdhcFxcXCI6IGdhcCwgYWxpZ25JdGVtczogYWxpZ24sIGp1c3RpZnlDb250ZW50IH0sIHN0eWxlKSB9LCB7IGNoaWxkcmVuOiBjaGlsZHJlbiB9KSwgdm9pZCAwKSk7XFxufTtcXG5jb25zdCBDb2xTdGFjayA9ICh7IGNoaWxkcmVuLCBnYXAsIGFsaWduLCBqdXN0aWZ5Q29udGVudCwgY2xhc3NOYW1lLCB9KSA9PiB7XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiAoMCxjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bXFxcImRlZmF1bHRcXFwiXSkoXFxcIlN0YWNrIFN0YWNrX3ZlcnRpY2FsXFxcIiwgY2xhc3NOYW1lKSwgc3R5bGU6IHtcXG4gICAgICAgICAgICBcXFwiLS1nYXBcXFwiOiBnYXAsXFxuICAgICAgICAgICAganVzdGlmeUl0ZW1zOiBhbGlnbixcXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudCxcXG4gICAgICAgIH0gfSwgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSksIHZvaWQgMCkpO1xcbn07XFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9ICh7XFxuICAgIFJvdzogUm93U3RhY2ssXFxuICAgIENvbDogQ29sU3RhY2ssXFxufSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlUZEdGamF5NTBjM2d1YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3UVVGQmMwSTdRVUZGU1R0QlFVTkdPMEZCVjNoQ0xFMUJRVTBzVVVGQlVTeEhRVUZITEVOQlFVTXNSVUZEYUVJc1VVRkJVU3hGUVVOU0xFZEJRVWNzUlVGRFNDeExRVUZMTEVWQlEwd3NZMEZCWXl4RlFVTmtMRk5CUVZNc1JVRkRWQ3hMUVVGTExFZEJRMDBzUlVGQlJTeEZRVUZGTzBsQlEyWXNUMEZCVHl4RFFVTk1MRGhGUVVORkxGTkJRVk1zUlVGQlJTeG5SRUZCU1N4RFFVRkRMSGRDUVVGM1FpeEZRVUZGTEZOQlFWTXNRMEZCUXl4RlFVTndSQ3hMUVVGTExHdENRVU5JTEU5QlFVOHNSVUZCUlN4SFFVRkhMRVZCUTFvc1ZVRkJWU3hGUVVGRkxFdEJRVXNzUlVGRGFrSXNZMEZCWXl4SlFVTllMRXRCUVVzc2FVSkJSMVFzVVVGQlVTeFpRVU5NTEVOQlExQXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzVVVGQlVTeEhRVUZITEVOQlFVTXNSVUZEYUVJc1VVRkJVU3hGUVVOU0xFZEJRVWNzUlVGRFNDeExRVUZMTEVWQlEwd3NZMEZCWXl4RlFVTmtMRk5CUVZNc1IwRkRSU3hGUVVGRkxFVkJRVVU3U1VGRFppeFBRVUZQTEVOQlEwd3NPRVZCUTBVc1UwRkJVeXhGUVVGRkxHZEVRVUZKTEVOQlFVTXNjMEpCUVhOQ0xFVkJRVVVzVTBGQlV5eERRVUZETEVWQlEyeEVMRXRCUVVzc1JVRkJSVHRaUVVOTUxFOUJRVThzUlVGQlJTeEhRVUZITzFsQlExb3NXVUZCV1N4RlFVRkZMRXRCUVVzN1dVRkRia0lzWTBGQll6dFRRVU5tTEdkQ1FVVkJMRkZCUVZFc1dVRkRUQ3hEUVVOUUxFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZGUml4cFJVRkJaVHRKUVVOaUxFZEJRVWNzUlVGQlJTeFJRVUZSTzBsQlEySXNSMEZCUnl4RlFVRkZMRkZCUVZFN1EwRkRaQ3hGUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMk52YlhCdmJtVnVkSE12VTNSaFkyc3VkSE40UDJJMk1UWWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJRndpTGk5VGRHRmpheTV6WTNOelhDSTdYRzVjYm1sdGNHOXlkQ0JTWldGamRDQm1jbTl0SUZ3aWNtVmhZM1JjSWp0Y2JtbHRjRzl5ZENCamJITjRJR1p5YjIwZ1hDSmpiSE40WENJN1hHNWNiblI1Y0dVZ1UzUmhZMnRRY205d2N5QTlJSHRjYmlBZ1kyaHBiR1J5Wlc0NklGSmxZV04wTGxKbFlXTjBUbTlrWlR0Y2JpQWdaMkZ3UHpvZ2JuVnRZbVZ5TzF4dUlDQmhiR2xuYmo4NklGd2ljM1JoY25SY0lpQjhJRndpWTJWdWRHVnlYQ0lnZkNCY0ltVnVaRndpSUh3Z1hDSmlZWE5sYkdsdVpWd2lPMXh1SUNCcWRYTjBhV1o1UTI5dWRHVnVkRDg2SUZ3aVkyVnVkR1Z5WENJZ2ZDQmNJbk53WVdObExXRnliM1Z1WkZ3aUlId2dYQ0p6Y0dGalpTMWlaWFIzWldWdVhDSTdYRzRnSUdOc1lYTnpUbUZ0WlQ4NklITjBjbWx1WnlCOElHSnZiMnhsWVc0N1hHNGdJSE4wZVd4bFB6b2dVbVZoWTNRdVExTlRVSEp2Y0dWeWRHbGxjenRjYm4wN1hHNWNibU52Ym5OMElGSnZkMU4wWVdOcklEMGdLSHRjYmlBZ1kyaHBiR1J5Wlc0c1hHNGdJR2RoY0N4Y2JpQWdZV3hwWjI0c1hHNGdJR3AxYzNScFpubERiMjUwWlc1MExGeHVJQ0JqYkdGemMwNWhiV1VzWEc0Z0lITjBlV3hsTEZ4dWZUb2dVM1JoWTJ0UWNtOXdjeWtnUFQ0Z2UxeHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lEeGthWFpjYmlBZ0lDQWdJR05zWVhOelRtRnRaVDE3WTJ4emVDaGNJbE4wWVdOcklGTjBZV05yWDJodmNtbDZiMjUwWVd4Y0lpd2dZMnhoYzNOT1lXMWxLWDFjYmlBZ0lDQWdJSE4wZVd4bFBYdDdYRzRnSUNBZ0lDQWdJRndpTFMxbllYQmNJam9nWjJGd0xGeHVJQ0FnSUNBZ0lDQmhiR2xuYmtsMFpXMXpPaUJoYkdsbmJpeGNiaUFnSUNBZ0lDQWdhblZ6ZEdsbWVVTnZiblJsYm5Rc1hHNGdJQ0FnSUNBZ0lDNHVMbk4wZVd4bExGeHVJQ0FnSUNBZ2ZYMWNiaUFnSUNBK1hHNGdJQ0FnSUNCN1kyaHBiR1J5Wlc1OVhHNGdJQ0FnUEM5a2FYWStYRzRnSUNrN1hHNTlPMXh1WEc1amIyNXpkQ0JEYjJ4VGRHRmpheUE5SUNoN1hHNGdJR05vYVd4a2NtVnVMRnh1SUNCbllYQXNYRzRnSUdGc2FXZHVMRnh1SUNCcWRYTjBhV1o1UTI5dWRHVnVkQ3hjYmlBZ1kyeGhjM05PWVcxbExGeHVmVG9nVTNSaFkydFFjbTl3Y3lrZ1BUNGdlMXh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJRHhrYVhaY2JpQWdJQ0FnSUdOc1lYTnpUbUZ0WlQxN1kyeHplQ2hjSWxOMFlXTnJJRk4wWVdOclgzWmxjblJwWTJGc1hDSXNJR05zWVhOelRtRnRaU2w5WEc0Z0lDQWdJQ0J6ZEhsc1pUMTdlMXh1SUNBZ0lDQWdJQ0JjSWkwdFoyRndYQ0k2SUdkaGNDeGNiaUFnSUNBZ0lDQWdhblZ6ZEdsbWVVbDBaVzF6T2lCaGJHbG5iaXhjYmlBZ0lDQWdJQ0FnYW5WemRHbG1lVU52Ym5SbGJuUXNYRzRnSUNBZ0lDQjlmVnh1SUNBZ0lENWNiaUFnSUNBZ0lIdGphR2xzWkhKbGJuMWNiaUFnSUNBOEwyUnBkajVjYmlBZ0tUdGNibjA3WEc1Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUh0Y2JpQWdVbTkzT2lCU2IzZFRkR0ZqYXl4Y2JpQWdRMjlzT2lCRGIyeFRkR0ZqYXl4Y2JuMDdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL1N0YWNrLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9TdGF0cy50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9TdGF0cy50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlN0YXRzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gU3RhdHMpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdCAqLyBcXFwicmVhY3RcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L2JvdW5kcyAqLyBcXFwiLi4vLi4vZWxlbWVudC9ib3VuZHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL0FwcCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9BcHAudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vc2NlbmUgKi8gXFxcIi4uLy4uL3NjZW5lL2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9pY29ucyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9pY29ucy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0lzbGFuZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Jc2xhbmQgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvSXNsYW5kLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfU3RhdHNfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9TdGF0cy5zY3NzICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1N0YXRzLnNjc3NcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1N0YXRzX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfU3RhdHNfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBTdGF0cyA9IChwcm9wcykgPT4ge1xcbiAgICB2YXIgX2E7XFxuICAgIGNvbnN0IGlzTW9iaWxlID0gKDAsX2NvbXBvbmVudHNfQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udXNlSXNNb2JpbGUpKCk7XFxuICAgIGNvbnN0IGJvdW5kaW5nQm94ID0gKDAsX2VsZW1lbnRfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZ2V0Q29tbW9uQm91bmRzKShwcm9wcy5lbGVtZW50cyk7XFxuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRUYXJnZXRFbGVtZW50cykocHJvcHMuZWxlbWVudHMsIHByb3BzLmFwcFN0YXRlKTtcXG4gICAgY29uc3Qgc2VsZWN0ZWRCb3VuZGluZ0JveCA9ICgwLF9lbGVtZW50X2JvdW5kc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldENvbW1vbkJvdW5kcykoc2VsZWN0ZWRFbGVtZW50cyk7XFxuICAgIGlmIChpc01vYmlsZSAmJiBwcm9wcy5hcHBTdGF0ZS5vcGVuTWVudSkge1xcbiAgICAgICAgcmV0dXJuIG51bGw7XFxuICAgIH1cXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJTdGF0c1xcXCIgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShfSXNsYW5kX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uSXNsYW5kLCBPYmplY3QuYXNzaWduKHsgcGFkZGluZzogMiB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiY2xvc2VcXFwiLCBvbkNsaWNrOiBwcm9wcy5vbkNsb3NlIH0sIHsgY2hpbGRyZW46IF9pY29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmNsb3NlIH0pLCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImgzXFxcIiwgeyBjaGlsZHJlbjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy50KShcXFwic3RhdHMudGl0bGVcXFwiKSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInRhYmxlXFxcIiwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwidGJvZHlcXFwiLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJ0clxcXCIsIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwidGhcXFwiLCBPYmplY3QuYXNzaWduKHsgY29sU3BhbjogMiB9LCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnQpKFxcXCJzdGF0cy5zY2VuZVxcXCIpIH0pLCB2b2lkIDApIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcInRyXFxcIiwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwidGRcXFwiLCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnQpKFxcXCJzdGF0cy5lbGVtZW50c1xcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwidGRcXFwiLCB7IGNoaWxkcmVuOiBwcm9wcy5lbGVtZW50cy5sZW5ndGggfSwgdm9pZCAwKV0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwidHJcXFwiLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJ0ZFxcXCIsIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udCkoXFxcInN0YXRzLndpZHRoXFxcIikgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJ0ZFxcXCIsIHsgY2hpbGRyZW46IE1hdGgucm91bmQoYm91bmRpbmdCb3hbMl0pIC0gTWF0aC5yb3VuZChib3VuZGluZ0JveFswXSkgfSwgdm9pZCAwKV0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwidHJcXFwiLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJ0ZFxcXCIsIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udCkoXFxcInN0YXRzLmhlaWdodFxcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwidGRcXFwiLCB7IGNoaWxkcmVuOiBNYXRoLnJvdW5kKGJvdW5kaW5nQm94WzNdKSAtIE1hdGgucm91bmQoYm91bmRpbmdCb3hbMV0pIH0sIHZvaWQgMCldIH0sIHZvaWQgMCksIHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInRyXFxcIiwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJ0aFxcXCIsIE9iamVjdC5hc3NpZ24oeyBjb2xTcGFuOiAyIH0sIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udCkoXFxcInN0YXRzLmVsZW1lbnRcXFwiKSB9KSwgdm9pZCAwKSB9LCB2b2lkIDApKSwgc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPiAxICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInRyXFxcIiwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJ0aFxcXCIsIE9iamVjdC5hc3NpZ24oeyBjb2xTcGFuOiAyIH0sIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udCkoXFxcInN0YXRzLnNlbGVjdGVkXFxcIikgfSksIHZvaWQgMCkgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwidHJcXFwiLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJ0ZFxcXCIsIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udCkoXFxcInN0YXRzLmVsZW1lbnRzXFxcIikgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJ0ZFxcXCIsIHsgY2hpbGRyZW46IHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoIH0sIHZvaWQgMCldIH0sIHZvaWQgMCldIH0sIHZvaWQgMCkpLCBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA+IDAgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykocmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GcmFnbWVudCwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcInRyXFxcIiwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwidGRcXFwiLCB7IGNoaWxkcmVuOiBcXFwieFxcXCIgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJ0ZFxcXCIsIHsgY2hpbGRyZW46IE1hdGgucm91bmQoc2VsZWN0ZWRCb3VuZGluZ0JveFswXSkgfSwgdm9pZCAwKV0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwidHJcXFwiLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJ0ZFxcXCIsIHsgY2hpbGRyZW46IFxcXCJ5XFxcIiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInRkXFxcIiwgeyBjaGlsZHJlbjogTWF0aC5yb3VuZChzZWxlY3RlZEJvdW5kaW5nQm94WzFdKSB9LCB2b2lkIDApXSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJ0clxcXCIsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInRkXFxcIiwgeyBjaGlsZHJlbjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy50KShcXFwic3RhdHMud2lkdGhcXFwiKSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInRkXFxcIiwgeyBjaGlsZHJlbjogTWF0aC5yb3VuZChzZWxlY3RlZEJvdW5kaW5nQm94WzJdIC0gc2VsZWN0ZWRCb3VuZGluZ0JveFswXSkgfSwgdm9pZCAwKV0gfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwidHJcXFwiLCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJ0ZFxcXCIsIHsgY2hpbGRyZW46ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udCkoXFxcInN0YXRzLmhlaWdodFxcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwidGRcXFwiLCB7IGNoaWxkcmVuOiBNYXRoLnJvdW5kKHNlbGVjdGVkQm91bmRpbmdCb3hbM10gLSBzZWxlY3RlZEJvdW5kaW5nQm94WzFdKSB9LCB2b2lkIDApXSB9LCB2b2lkIDApXSB9LCB2b2lkIDApKSwgc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcInRyXFxcIiwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwidGRcXFwiLCB7IGNoaWxkcmVuOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnQpKFxcXCJzdGF0cy5hbmdsZVxcXCIpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwidGRcXFwiLCB7IGNoaWxkcmVuOiBgJHtNYXRoLnJvdW5kKChzZWxlY3RlZEVsZW1lbnRzWzBdLmFuZ2xlICogMTgwKSAvIE1hdGguUEkpfVx1MDBCMGAgfSwgdm9pZCAwKV0gfSwgdm9pZCAwKSksIChfYSA9IHByb3BzLnJlbmRlckN1c3RvbVN0YXRzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChwcm9wcywgcHJvcHMuZWxlbWVudHMsIHByb3BzLmFwcFN0YXRlKV0gfSwgdm9pZCAwKSB9LCB2b2lkIDApXSB9KSwgdm9pZCAwKSB9KSwgdm9pZCAwKSk7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVRkR0YwY3k1MGMzZ3Vhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3p0QlFVRXdRanRCUVVNd1FqdEJRVVY0UWp0QlFVTnZRanRCUVVOSU8wRkJSV0k3UVVGRFJUdEJRVU5hTzBGQlJXWXNUVUZCVFN4TFFVRkxMRWRCUVVjc1EwRkJReXhMUVUxeVFpeEZRVUZGTEVWQlFVVTdPMGxCUTBnc1RVRkJUU3hSUVVGUkxFZEJRVWNzTkVSQlFWY3NSVUZCUlN4RFFVRkRPMGxCUlM5Q0xFMUJRVTBzVjBGQlZ5eEhRVUZITEdkRlFVRmxMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzBsQlEzQkVMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NlVVJCUVdsQ0xFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNSVUZCUlN4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03U1VGRE0wVXNUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eG5SVUZCWlN4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTTdTVUZGT1VRc1NVRkJTU3hSUVVGUkxFbEJRVWtzUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRVZCUVVVN1VVRkRka01zVDBGQlR5eEpRVUZKTEVOQlFVTTdTMEZEWWp0SlFVVkVMRTlCUVU4c1EwRkRUQ3c0UlVGQlN5eFRRVUZUTEVWQlFVTXNUMEZCVHl4blFrRkRjRUlzZDBSQlFVTXNNa05CUVUwc2EwSkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNhVUpCUTJoQ0xEaEZRVUZMTEZOQlFWTXNSVUZCUXl4UFFVRlBMRVZCUVVNc1QwRkJUeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFBRVUZQTEdkQ1FVTXhReXg1UTBGQlN5eFpRVU5HTEVWQlEwNHNlVVZCUVVzc2QwTkJRVU1zUTBGQlF5eGhRVUZoTEVOQlFVTXNWMEZCVFN4RlFVTXpRaXcwUlVGRFJTdzRSVUZEUlN4NVJVRkRSU3cyUlVGQlNTeFBRVUZQTEVWQlFVVXNRMEZCUXl4blFrRkJSeXgzUTBGQlF5eERRVUZETEdGQlFXRXNRMEZCUXl4WlFVRk5MRmRCUTNCRExFVkJRMHdzTWtWQlEwVXNlVVZCUVVzc2QwTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhYUVVGTkxFVkJRemxDTEhsRlFVRkxMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeFhRVUZOTEZsQlF6ZENMRVZCUTB3c01rVkJRMFVzZVVWQlFVc3NkME5CUVVNc1EwRkJReXhoUVVGaExFTkJRVU1zVjBGQlRTeEZRVU16UWl4NVJVRkJTeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVTBzV1VGREwwUXNSVUZEVEN3eVJVRkRSU3g1UlVGQlN5eDNRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJReXhYUVVGTkxFVkJRelZDTEhsRlFVRkxMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1YwRkJUU3haUVVNdlJDeEZRVVZLTEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZEYUVNc2VVVkJRMFVzTmtWQlFVa3NUMEZCVHl4RlFVRkZMRU5CUVVNc1owSkJRVWNzZDBOQlFVTXNRMEZCUXl4bFFVRmxMRU5CUVVNc1dVRkJUU3hYUVVOMFF5eERRVU5PTEVWQlJVRXNaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVTTVRaXc0U0VGRFJTeDVSVUZEUlN3MlJVRkJTU3hQUVVGUExFVkJRVVVzUTBGQlF5eG5Ra0ZCUnl4M1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRmxCUVUwc1YwRkRka01zUlVGRFRDd3lSVUZEUlN4NVJVRkJTeXgzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExGZEJRVTBzUlVGRE9VSXNlVVZCUVVzc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4WFFVRk5MRmxCUXk5Q0xGbEJRMG9zUTBGRFNpeEZRVU5CTEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZET1VJc09FaEJRMFVzTWtWQlEwVXNlVVZCUVVzc1IwRkJSeXhYUVVGTkxFVkJRMlFzZVVWQlFVc3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGTkxGbEJRekZETEVWQlEwd3NNa1ZCUTBVc2VVVkJRVXNzUjBGQlJ5eFhRVUZOTEVWQlEyUXNlVVZCUVVzc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZOTEZsQlF6RkRMRVZCUTB3c01rVkJRMFVzZVVWQlFVc3NkME5CUVVNc1EwRkJReXhoUVVGaExFTkJRVU1zVjBGQlRTeEZRVU16UWl4NVJVRkRSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVU5VTEcxQ1FVRnRRaXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEcxQ1FVRnRRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVU5vUkN4WFFVTkZMRmxCUTBZc1JVRkRUQ3d5UlVGRFJTeDVSVUZCU3l4M1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eFhRVUZOTEVWQlF6VkNMSGxGUVVOSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlExUXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlEyaEVMRmRCUTBVc1dVRkRSaXhaUVVOS0xFTkJRMG9zUlVGRFFTeG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlEyaERMREpGUVVORkxIbEZRVUZMTEhkRFFVRkRMRU5CUVVNc1lVRkJZU3hEUVVGRExGZEJRVTBzUlVGRE0wSXNlVVZCUTBjc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVU5hTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4SFFVRkhMRWRCUVVjc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlF6VkRMRWRCUVVjc1YwRkRSQ3haUVVOR0xFTkJRMDRzUlVGRFFTeFhRVUZMTEVOQlFVTXNhVUpCUVdsQ0xDdERRVUYyUWl4TFFVRkxMRVZCUVhGQ0xFdEJRVXNzUTBGQlF5eFJRVUZSTEVWQlFVVXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhaUVVOd1JDeFhRVU5HTEdGQlEwUXNXVUZEVEN4RFFVTlFMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVRkR0YwY3k1MGMzZy9ORFEyWlNKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ1VtVmhZM1FnWm5KdmJTQmNJbkpsWVdOMFhDSTdYRzVwYlhCdmNuUWdleUJuWlhSRGIyMXRiMjVDYjNWdVpITWdmU0JtY205dElGd2lMaTR2Wld4bGJXVnVkQzlpYjNWdVpITmNJanRjYm1sdGNHOXlkQ0I3SUU1dmJrUmxiR1YwWldSRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZENCOUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MEwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5QjBJSDBnWm5KdmJTQmNJaTR1TDJreE9HNWNJanRjYm1sdGNHOXlkQ0I3SUhWelpVbHpUVzlpYVd4bElIMGdabkp2YlNCY0lpNHVMMk52YlhCdmJtVnVkSE12UVhCd1hDSTdYRzVwYlhCdmNuUWdleUJuWlhSVVlYSm5aWFJGYkdWdFpXNTBjeUI5SUdaeWIyMGdYQ0l1TGk5elkyVnVaVndpTzF4dWFXMXdiM0owSUhzZ1FYQndVM1JoZEdVc0lFVjRZMkZzYVdSeVlYZFFjbTl3Y3lCOUlHWnliMjBnWENJdUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dZMnh2YzJVZ2ZTQm1jbTl0SUZ3aUxpOXBZMjl1YzF3aU8xeHVhVzF3YjNKMElIc2dTWE5zWVc1a0lIMGdabkp2YlNCY0lpNHZTWE5zWVc1a1hDSTdYRzVwYlhCdmNuUWdYQ0l1TDFOMFlYUnpMbk5qYzNOY0lqdGNibHh1Wlhod2IzSjBJR052Ym5OMElGTjBZWFJ6SUQwZ0tIQnliM0J6T2lCN1hHNGdJR0Z3Y0ZOMFlYUmxPaUJCY0hCVGRHRjBaVHRjYmlBZ2MyVjBRWEJ3VTNSaGRHVTZJRkpsWVdOMExrTnZiWEJ2Ym1WdWREeGhibmtzSUVGd2NGTjBZWFJsUGx0Y0luTmxkRk4wWVhSbFhDSmRPMXh1SUNCbGJHVnRaVzUwY3pvZ2NtVmhaRzl1YkhrZ1RtOXVSR1ZzWlhSbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMDdYRzRnSUc5dVEyeHZjMlU2SUNncElEMCtJSFp2YVdRN1hHNGdJSEpsYm1SbGNrTjFjM1J2YlZOMFlYUnpPaUJGZUdOaGJHbGtjbUYzVUhKdmNITmJYQ0p5Wlc1a1pYSkRkWE4wYjIxVGRHRjBjMXdpWFR0Y2JuMHBJRDArSUh0Y2JpQWdZMjl1YzNRZ2FYTk5iMkpwYkdVZ1BTQjFjMlZKYzAxdlltbHNaU2dwTzF4dVhHNGdJR052Ym5OMElHSnZkVzVrYVc1blFtOTRJRDBnWjJWMFEyOXRiVzl1UW05MWJtUnpLSEJ5YjNCekxtVnNaVzFsYm5SektUdGNiaUFnWTI5dWMzUWdjMlZzWldOMFpXUkZiR1Z0Wlc1MGN5QTlJR2RsZEZSaGNtZGxkRVZzWlcxbGJuUnpLSEJ5YjNCekxtVnNaVzFsYm5SekxDQndjbTl3Y3k1aGNIQlRkR0YwWlNrN1hHNGdJR052Ym5OMElITmxiR1ZqZEdWa1FtOTFibVJwYm1kQ2IzZ2dQU0JuWlhSRGIyMXRiMjVDYjNWdVpITW9jMlZzWldOMFpXUkZiR1Z0Wlc1MGN5azdYRzVjYmlBZ2FXWWdLR2x6VFc5aWFXeGxJQ1ltSUhCeWIzQnpMbUZ3Y0ZOMFlYUmxMbTl3Wlc1TlpXNTFLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJRHhrYVhZZ1kyeGhjM05PWVcxbFBWd2lVM1JoZEhOY0lqNWNiaUFnSUNBZ0lEeEpjMnhoYm1RZ2NHRmtaR2x1WnoxN01uMCtYRzRnSUNBZ0lDQWdJRHhrYVhZZ1kyeGhjM05PWVcxbFBWd2lZMnh2YzJWY0lpQnZia05zYVdOclBYdHdjbTl3Y3k1dmJrTnNiM05sZlQ1Y2JpQWdJQ0FnSUNBZ0lDQjdZMnh2YzJWOVhHNGdJQ0FnSUNBZ0lEd3ZaR2wyUGx4dUlDQWdJQ0FnSUNBOGFETStlM1FvWENKemRHRjBjeTUwYVhSc1pWd2lLWDA4TDJnelBseHVJQ0FnSUNBZ0lDQThkR0ZpYkdVK1hHNGdJQ0FnSUNBZ0lDQWdQSFJpYjJSNVBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEhSeVBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGRHZ2dZMjlzVTNCaGJqMTdNbjArZTNRb1hDSnpkR0YwY3k1elkyVnVaVndpS1gwOEwzUm9QbHh1SUNBZ0lDQWdJQ0FnSUNBZ1BDOTBjajVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeDBjajVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQSFJrUG50MEtGd2ljM1JoZEhNdVpXeGxiV1Z1ZEhOY0lpbDlQQzkwWkQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhSa1BudHdjbTl3Y3k1bGJHVnRaVzUwY3k1c1pXNW5kR2g5UEM5MFpENWNiaUFnSUNBZ0lDQWdJQ0FnSUR3dmRISStYRzRnSUNBZ0lDQWdJQ0FnSUNBOGRISStYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEeDBaRDU3ZENoY0luTjBZWFJ6TG5kcFpIUm9YQ0lwZlR3dmRHUStYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEeDBaRDU3VFdGMGFDNXliM1Z1WkNoaWIzVnVaR2x1WjBKdmVGc3lYU2tnTFNCTllYUm9Mbkp2ZFc1a0tHSnZkVzVrYVc1blFtOTRXekJkS1gwOEwzUmtQbHh1SUNBZ0lDQWdJQ0FnSUNBZ1BDOTBjajVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeDBjajVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQSFJrUG50MEtGd2ljM1JoZEhNdWFHVnBaMmgwWENJcGZUd3ZkR1ErWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRHgwWkQ1N1RXRjBhQzV5YjNWdVpDaGliM1Z1WkdsdVowSnZlRnN6WFNrZ0xTQk5ZWFJvTG5KdmRXNWtLR0p2ZFc1a2FXNW5RbTk0V3pGZEtYMDhMM1JrUGx4dUlDQWdJQ0FnSUNBZ0lDQWdQQzkwY2o1Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnZTNObGJHVmpkR1ZrUld4bGJXVnVkSE11YkdWdVozUm9JRDA5UFNBeElDWW1JQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQSFJ5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4MGFDQmpiMnhUY0dGdVBYc3lmVDU3ZENoY0luTjBZWFJ6TG1Wc1pXMWxiblJjSWlsOVBDOTBhRDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQQzkwY2o1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ2w5WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJSHR6Wld4bFkzUmxaRVZzWlcxbGJuUnpMbXhsYm1kMGFDQStJREVnSmlZZ0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeDBjajVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4MGFDQmpiMnhUY0dGdVBYc3lmVDU3ZENoY0luTjBZWFJ6TG5ObGJHVmpkR1ZrWENJcGZUd3ZkR2crWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEM5MGNqNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThkSEkrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGRHUStlM1FvWENKemRHRjBjeTVsYkdWdFpXNTBjMXdpS1gwOEwzUmtQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhSa1BudHpaV3hsWTNSbFpFVnNaVzFsYm5SekxteGxibWQwYUgwOEwzUmtQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2ZEhJK1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dlBseHVJQ0FnSUNBZ0lDQWdJQ0FnS1gxY2JpQWdJQ0FnSUNBZ0lDQWdJSHR6Wld4bFkzUmxaRVZzWlcxbGJuUnpMbXhsYm1kMGFDQStJREFnSmlZZ0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeDBjajVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4MFpENTdYQ0o0WENKOVBDOTBaRDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4MFpENTdUV0YwYUM1eWIzVnVaQ2h6Wld4bFkzUmxaRUp2ZFc1a2FXNW5RbTk0V3pCZEtYMDhMM1JrUGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmRISStYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSFJ5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BIUmtQbnRjSW5sY0luMDhMM1JrUGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BIUmtQbnROWVhSb0xuSnZkVzVrS0hObGJHVmpkR1ZrUW05MWJtUnBibWRDYjNoYk1WMHBmVHd2ZEdRK1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BDOTBjajVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4ZEhJK1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThkR1ErZTNRb1hDSnpkR0YwY3k1M2FXUjBhRndpS1gwOEwzUmtQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhSa1BseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I3VFdGMGFDNXliM1Z1WkNoY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6Wld4bFkzUmxaRUp2ZFc1a2FXNW5RbTk0V3pKZElDMGdjMlZzWldOMFpXUkNiM1Z1WkdsdVowSnZlRnN3WFN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLWDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmRHUStYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQQzkwY2o1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGRISStYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4ZEdRK2UzUW9YQ0p6ZEdGMGN5NW9aV2xuYUhSY0lpbDlQQzkwWkQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeDBaRDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2UwMWhkR2d1Y205MWJtUW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyVnNaV04wWldSQ2IzVnVaR2x1WjBKdmVGc3pYU0F0SUhObGJHVmpkR1ZrUW05MWJtUnBibWRDYjNoYk1WMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNsOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMM1JrUGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmRISStYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ0tYMWNiaUFnSUNBZ0lDQWdJQ0FnSUh0elpXeGxZM1JsWkVWc1pXMWxiblJ6TG14bGJtZDBhQ0E5UFQwZ01TQW1KaUFvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRHgwY2o1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGRHUStlM1FvWENKemRHRjBjeTVoYm1kc1pWd2lLWDA4TDNSa1BseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeDBaRDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUh0Z0pIdE5ZWFJvTG5KdmRXNWtLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBb2MyVnNaV04wWldSRmJHVnRaVzUwYzFzd1hTNWhibWRzWlNBcUlERTRNQ2tnTHlCTllYUm9MbEJKTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tYM0NzR0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEM5MFpENWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1BDOTBjajVjYmlBZ0lDQWdJQ0FnSUNBZ0lDbDlYRzRnSUNBZ0lDQWdJQ0FnSUNCN2NISnZjSE11Y21WdVpHVnlRM1Z6ZEc5dFUzUmhkSE0vTGlod2NtOXdjeTVsYkdWdFpXNTBjeXdnY0hKdmNITXVZWEJ3VTNSaGRHVXBmVnh1SUNBZ0lDQWdJQ0FnSUR3dmRHSnZaSGsrWEc0Z0lDQWdJQ0FnSUR3dmRHRmliR1UrWEc0Z0lDQWdJQ0E4TDBsemJHRnVaRDVjYmlBZ0lDQThMMlJwZGo1Y2JpQWdLVHRjYm4wN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvU3RhdHMudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9jb21wb25lbnRzL1RvYXN0LnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL1RvYXN0LnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiVG9hc3RcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBUb2FzdClcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0ICovIFxcXCJyZWFjdFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVG9hc3Rfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9Ub2FzdC5zY3NzICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1RvYXN0LnNjc3NcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1RvYXN0X3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfVG9hc3Rfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fKTtcXG5cXG5cXG5cXG5cXG5jb25zdCBUb2FzdCA9ICh7IG1lc3NhZ2UsIGNsZWFyVG9hc3QsIH0pID0+IHtcXG4gICAgY29uc3QgdGltZXJSZWYgPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZVJlZikoMCk7XFxuICAgIGNvbnN0IHNjaGVkdWxlVGltZW91dCA9ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udXNlQ2FsbGJhY2spKCgpID0+ICh0aW1lclJlZi5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4gY2xlYXJUb2FzdCgpLCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uVE9BU1RfVElNRU9VVCkpLCBbY2xlYXJUb2FzdF0pO1xcbiAgICAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZUVmZmVjdCkoKCkgPT4ge1xcbiAgICAgICAgc2NoZWR1bGVUaW1lb3V0KCk7XFxuICAgICAgICByZXR1cm4gKCkgPT4gY2xlYXJUaW1lb3V0KHRpbWVyUmVmLmN1cnJlbnQpO1xcbiAgICB9LCBbc2NoZWR1bGVUaW1lb3V0LCBtZXNzYWdlXSk7XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiVG9hc3RcXFwiLCBvbk1vdXNlRW50ZXI6ICgpID0+IGNsZWFyVGltZW91dCh0aW1lclJlZiA9PT0gbnVsbCB8fCB0aW1lclJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGltZXJSZWYuY3VycmVudCksIG9uTW91c2VMZWF2ZTogc2NoZWR1bGVUaW1lb3V0IH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicFxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJUb2FzdF9fbWVzc2FnZVxcXCIgfSwgeyBjaGlsZHJlbjogbWVzc2FnZSB9KSwgdm9pZCAwKSB9KSwgdm9pZCAwKSk7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVViMkZ6ZEM1MGMzZ3Vhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdRVUZCZFVRN1FVRkRWanRCUVVOMlFqdEJRVVZtTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1JVRkRjRUlzVDBGQlR5eEZRVU5RTEZWQlFWVXNSMEZKV0N4RlFVRkZMRVZCUVVVN1NVRkRTQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5dzJRMEZCVFN4RFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSVzVETEUxQlFVMHNaVUZCWlN4SFFVRkhMR3RFUVVGWExFTkJRMnBETEVkQlFVY3NSVUZCUlN4RFFVTklMRU5CUVVNc1VVRkJVU3hEUVVGRExFOUJRVThzUjBGQlJ5eE5RVUZOTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExGVkJRVlVzUlVGQlJTeEZRVUZGTEhGRVFVRmhMRU5CUVVNc1EwRkJReXhGUVVNelJTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVTmlMRU5CUVVNN1NVRkZSaXhuUkVGQlV5eERRVUZETEVkQlFVY3NSVUZCUlR0UlFVTmlMR1ZCUVdVc1JVRkJSU3hEUVVGRE8xRkJRMnhDTEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTTVReXhEUVVGRExFVkJRVVVzUTBGQlF5eGxRVUZsTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVVdlFpeFBRVUZQTEVOQlEwd3NPRVZCUTBVc1UwRkJVeXhGUVVGRExFOUJRVThzUlVGRGFrSXNXVUZCV1N4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExGbEJRVmtzUTBGQlF5eFJRVUZSTEdGQlFWSXNVVUZCVVN4MVFrRkJVaXhSUVVGUkxFTkJRVVVzVDBGQlR5eERRVUZETEVWQlEyNUVMRmxCUVZrc1JVRkJSU3hsUVVGbExHZENRVVUzUWl3MFJVRkJSeXhUUVVGVExFVkJRVU1zWjBKQlFXZENMR2RDUVVGRkxFOUJRVThzV1VGQlN5eFpRVU4yUXl4RFFVTlFMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVViMkZ6ZEM1MGMzZy9abVExTWlKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QjFjMlZEWVd4c1ltRmpheXdnZFhObFJXWm1aV04wTENCMWMyVlNaV1lnZlNCbWNtOXRJRndpY21WaFkzUmNJanRjYm1sdGNHOXlkQ0I3SUZSUFFWTlVYMVJKVFVWUFZWUWdmU0JtY205dElGd2lMaTR2WTI5dWMzUmhiblJ6WENJN1hHNXBiWEJ2Y25RZ1hDSXVMMVJ2WVhOMExuTmpjM05jSWp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUZSdllYTjBJRDBnS0h0Y2JpQWdiV1Z6YzJGblpTeGNiaUFnWTJ4bFlYSlViMkZ6ZEN4Y2JuMDZJSHRjYmlBZ2JXVnpjMkZuWlRvZ2MzUnlhVzVuTzF4dUlDQmpiR1ZoY2xSdllYTjBPaUFvS1NBOVBpQjJiMmxrTzF4dWZTa2dQVDRnZTF4dUlDQmpiMjV6ZENCMGFXMWxjbEpsWmlBOUlIVnpaVkpsWmp4dWRXMWlaWEkrS0RBcE8xeHVYRzRnSUdOdmJuTjBJSE5qYUdWa2RXeGxWR2x0Wlc5MWRDQTlJSFZ6WlVOaGJHeGlZV05yS0Z4dUlDQWdJQ2dwSUQwK1hHNGdJQ0FnSUNBb2RHbHRaWEpTWldZdVkzVnljbVZ1ZENBOUlIZHBibVJ2ZHk1elpYUlVhVzFsYjNWMEtDZ3BJRDArSUdOc1pXRnlWRzloYzNRb0tTd2dWRTlCVTFSZlZFbE5SVTlWVkNrcExGeHVJQ0FnSUZ0amJHVmhjbFJ2WVhOMFhTeGNiaUFnS1R0Y2JseHVJQ0IxYzJWRlptWmxZM1FvS0NrZ1BUNGdlMXh1SUNBZ0lITmphR1ZrZFd4bFZHbHRaVzkxZENncE8xeHVJQ0FnSUhKbGRIVnliaUFvS1NBOVBpQmpiR1ZoY2xScGJXVnZkWFFvZEdsdFpYSlNaV1l1WTNWeWNtVnVkQ2s3WEc0Z0lIMHNJRnR6WTJobFpIVnNaVlJwYldWdmRYUXNJRzFsYzNOaFoyVmRLVHRjYmx4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUR4a2FYWmNiaUFnSUNBZ0lHTnNZWE56VG1GdFpUMWNJbFJ2WVhOMFhDSmNiaUFnSUNBZ0lHOXVUVzkxYzJWRmJuUmxjajE3S0NrZ1BUNGdZMnhsWVhKVWFXMWxiM1YwS0hScGJXVnlVbVZtUHk1amRYSnlaVzUwS1gxY2JpQWdJQ0FnSUc5dVRXOTFjMlZNWldGMlpUMTdjMk5vWldSMWJHVlVhVzFsYjNWMGZWeHVJQ0FnSUQ1Y2JpQWdJQ0FnSUR4d0lHTnNZWE56VG1GdFpUMWNJbFJ2WVhOMFgxOXRaWE56WVdkbFhDSStlMjFsYzNOaFoyVjlQQzl3UGx4dUlDQWdJRHd2WkdsMlBseHVJQ0FwTzF4dWZUdGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL1RvYXN0LnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2NvbXBvbmVudHMvVG9vbEJ1dHRvbi50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiVG9vbEJ1dHRvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFRvb2xCdXR0b24pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Ub29sSWNvbl9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1Rvb2xJY29uLnNjc3MgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVG9vbEljb24uc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVG9vbEljb25fc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9Ub29sSWNvbl9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIGNsc3ggKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jbHN4L2Rpc3QvY2xzeC5tLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9BcHBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vQXBwICovIFxcXCIuLi8uLi9jb21wb25lbnRzL0FwcC50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vycm9yc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZXJyb3JzICovIFxcXCIuLi8uLi9lcnJvcnMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1NwaW5uZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vU3Bpbm5lciAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9TcGlubmVyLnRzeFxcXCIpO1xcbnZhciBfX2F3YWl0ZXIgPSAodW5kZWZpbmVkICYmIHVuZGVmaW5lZC5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XFxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXFxcInRocm93XFxcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcXG4gICAgfSk7XFxufTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBUb29sQnV0dG9uID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX19kZWZhdWx0KCkuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xcbiAgICBjb25zdCB7IGlkOiBleGNhbElkIH0gPSAoMCxfQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udXNlRXhjYWxpZHJhd0NvbnRhaW5lcikoKTtcXG4gICAgY29uc3QgaW5uZXJSZWYgPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fX2RlZmF1bHQoKS51c2VSZWYobnVsbCk7XFxuICAgIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19fZGVmYXVsdCgpLnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiBpbm5lclJlZi5jdXJyZW50KTtcXG4gICAgY29uc3Qgc2l6ZUNuID0gYFRvb2xJY29uX3NpemVfJHtwcm9wcy5zaXplfWA7XFxuICAgIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnVzZVN0YXRlKShmYWxzZSk7XFxuICAgIGNvbnN0IGlzTW91bnRlZFJlZiA9ICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udXNlUmVmKSh0cnVlKTtcXG4gICAgY29uc3Qgb25DbGljayA9IChldmVudCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XFxuICAgICAgICB2YXIgX2E7XFxuICAgICAgICBjb25zdCByZXQgPSBcXFwib25DbGlja1xcXCIgaW4gcHJvcHMgJiYgKChfYSA9IHByb3BzLm9uQ2xpY2spID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHByb3BzLCBldmVudCkpO1xcbiAgICAgICAgaWYgKHJldCAmJiBcXFwidGhlblxcXCIgaW4gcmV0KSB7XFxuICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgc2V0SXNMb2FkaW5nKHRydWUpO1xcbiAgICAgICAgICAgICAgICB5aWVsZCByZXQ7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgICAgICAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIF9lcnJvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5BYm9ydEVycm9yKSkge1xcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyb3IpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGZpbmFsbHkge1xcbiAgICAgICAgICAgICAgICBpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgIH0pO1xcbiAgICAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnVzZUVmZmVjdCkoKCkgPT4gKCkgPT4ge1xcbiAgICAgICAgaXNNb3VudGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcXG4gICAgfSwgW10pO1xcbiAgICBjb25zdCBsYXN0UG9pbnRlclR5cGVSZWYgPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnVzZVJlZikobnVsbCk7XFxuICAgIGlmIChwcm9wcy50eXBlID09PSBcXFwiYnV0dG9uXFxcIiB8fFxcbiAgICAgICAgcHJvcHMudHlwZSA9PT0gXFxcImljb25cXFwiIHx8XFxuICAgICAgICBwcm9wcy50eXBlID09PSBcXFwic3VibWl0XFxcIikge1xcbiAgICAgICAgY29uc3QgdHlwZSA9IChwcm9wcy50eXBlID09PSBcXFwiaWNvblxcXCIgPyBcXFwiYnV0dG9uXFxcIiA6IHByb3BzLnR5cGUpO1xcbiAgICAgICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJidXR0b25cXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiAoMCxjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bXFxcImRlZmF1bHRcXFwiXSkoXFxcIlRvb2xJY29uX3R5cGVfYnV0dG9uXFxcIiwgc2l6ZUNuLCBwcm9wcy5jbGFzc05hbWUsIHByb3BzLnZpc2libGUgJiYgIXByb3BzLmhpZGRlblxcbiAgICAgICAgICAgICAgICA/IFxcXCJUb29sSWNvbl90eXBlX2J1dHRvbi0tc2hvd1xcXCJcXG4gICAgICAgICAgICAgICAgOiBcXFwiVG9vbEljb25fdHlwZV9idXR0b24tLWhpZGVcXFwiLCB7XFxuICAgICAgICAgICAgICAgIFRvb2xJY29uOiAhcHJvcHMuaGlkZGVuLFxcbiAgICAgICAgICAgICAgICBcXFwiVG9vbEljb24tLXNlbGVjdGVkXFxcIjogcHJvcHMuc2VsZWN0ZWQsXFxuICAgICAgICAgICAgICAgIFxcXCJUb29sSWNvbi0tcGxhaW5cXFwiOiBwcm9wcy50eXBlID09PSBcXFwiaWNvblxcXCIsXFxuICAgICAgICAgICAgfSksIFxcXCJkYXRhLXRlc3RpZFxcXCI6IHByb3BzW1xcXCJkYXRhLXRlc3RpZFxcXCJdLCBoaWRkZW46IHByb3BzLmhpZGRlbiwgdGl0bGU6IHByb3BzLnRpdGxlLCBcXFwiYXJpYS1sYWJlbFxcXCI6IHByb3BzW1xcXCJhcmlhLWxhYmVsXFxcIl0sIHR5cGU6IHR5cGUsIG9uQ2xpY2s6IG9uQ2xpY2ssIHJlZjogaW5uZXJSZWYsIGRpc2FibGVkOiBpc0xvYWRpbmcgfHwgcHJvcHMuaXNMb2FkaW5nIH0sIHsgY2hpbGRyZW46IFsocHJvcHMuaWNvbiB8fCBwcm9wcy5sYWJlbCkgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImRpdlxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJUb29sSWNvbl9faWNvblxcXCIsIFxcXCJhcmlhLWhpZGRlblxcXCI6IFxcXCJ0cnVlXFxcIiB9LCB7IGNoaWxkcmVuOiBbcHJvcHMuaWNvbiB8fCBwcm9wcy5sYWJlbCwgcHJvcHMua2V5QmluZGluZ0xhYmVsICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInNwYW5cXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiVG9vbEljb25fX2tleWJpbmRpbmdcXFwiIH0sIHsgY2hpbGRyZW46IHByb3BzLmtleUJpbmRpbmdMYWJlbCB9KSwgdm9pZCAwKSksIHByb3BzLmlzTG9hZGluZyAmJiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX1NwaW5uZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1tcXFwiZGVmYXVsdFxcXCJdLCB7fSwgdm9pZCAwKV0gfSksIHZvaWQgMCkpLCBwcm9wcy5zaG93QXJpYUxhYmVsICYmICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiVG9vbEljb25fX2xhYmVsXFxcIiB9LCB7IGNoaWxkcmVuOiBbcHJvcHNbXFxcImFyaWEtbGFiZWxcXFwiXSwgXFxcIiBcXFwiLCBpc0xvYWRpbmcgJiYgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9TcGlubmVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19bXFxcImRlZmF1bHRcXFwiXSwge30sIHZvaWQgMCldIH0pLCB2b2lkIDApKSwgcHJvcHMuY2hpbGRyZW5dIH0pLCB2b2lkIDApKTtcXG4gICAgfVxcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImxhYmVsXFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogKDAsY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fW1xcXCJkZWZhdWx0XFxcIl0pKFxcXCJUb29sSWNvblxcXCIsIHByb3BzLmNsYXNzTmFtZSksIHRpdGxlOiBwcm9wcy50aXRsZSwgb25Qb2ludGVyRG93bjogKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgbGFzdFBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgPSBldmVudC5wb2ludGVyVHlwZSB8fCBudWxsO1xcbiAgICAgICAgfSwgb25Qb2ludGVyVXA6ICgpID0+IHtcXG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICBsYXN0UG9pbnRlclR5cGVSZWYuY3VycmVudCA9IG51bGw7XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9IH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImlucHV0XFxcIiwgeyBjbGFzc05hbWU6IGBUb29sSWNvbl90eXBlX3JhZGlvICR7c2l6ZUNufWAsIHR5cGU6IFxcXCJyYWRpb1xcXCIsIG5hbWU6IHByb3BzLm5hbWUsIFxcXCJhcmlhLWxhYmVsXFxcIjogcHJvcHNbXFxcImFyaWEtbGFiZWxcXFwiXSwgXFxcImFyaWEta2V5c2hvcnRjdXRzXFxcIjogcHJvcHNbXFxcImFyaWEta2V5c2hvcnRjdXRzXFxcIl0sIFxcXCJkYXRhLXRlc3RpZFxcXCI6IHByb3BzW1xcXCJkYXRhLXRlc3RpZFxcXCJdLCBpZDogYCR7ZXhjYWxJZH0tJHtwcm9wcy5pZH1gLCBvbkNoYW5nZTogKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xcbiAgICAgICAgICAgICAgICAgICAgKF9hID0gcHJvcHMub25DaGFuZ2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHByb3BzLCB7IHBvaW50ZXJUeXBlOiBsYXN0UG9pbnRlclR5cGVSZWYuY3VycmVudCB9KTtcXG4gICAgICAgICAgICAgICAgfSwgY2hlY2tlZDogcHJvcHMuY2hlY2tlZCwgcmVmOiBpbm5lclJlZiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJkaXZcXFwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBcXFwiVG9vbEljb25fX2ljb25cXFwiIH0sIHsgY2hpbGRyZW46IFtwcm9wcy5pY29uLCBwcm9wcy5rZXlCaW5kaW5nTGFiZWwgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3BhblxcXCIsIE9iamVjdC5hc3NpZ24oeyBjbGFzc05hbWU6IFxcXCJUb29sSWNvbl9fa2V5YmluZGluZ1xcXCIgfSwgeyBjaGlsZHJlbjogcHJvcHMua2V5QmluZGluZ0xhYmVsIH0pLCB2b2lkIDApKV0gfSksIHZvaWQgMCldIH0pLCB2b2lkIDApKTtcXG59KTtcXG5Ub29sQnV0dG9uLmRlZmF1bHRQcm9wcyA9IHtcXG4gICAgdmlzaWJsZTogdHJ1ZSxcXG4gICAgY2xhc3NOYW1lOiBcXFwiXFxcIixcXG4gICAgc2l6ZTogXFxcIm1lZGl1bVxcXCIsXFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVViMjlzUW5WMGRHOXVMblJ6ZUM1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dEJRVUY1UWp0QlFVVnJRenRCUVVOdVF6dEJRVU4xUWp0QlFVTlNPMEZCUTFBN1FVRTRRM3BDTEUxQlFVMHNWVUZCVlN4SFFVRkhMSFZFUVVGblFpeERRVUZETEVOQlFVTXNTMEZCYzBJc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdEpRVU42UlN4TlFVRk5MRVZCUVVVc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITERSRVFVRnpRaXhGUVVGRkxFTkJRVU03U1VGRGFrUXNUVUZCVFN4UlFVRlJMRWRCUVVjc2JVUkJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTndReXhuUlVGQmVVSXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNaRUxFMUJRVTBzVFVGQlRTeEhRVUZITEdsQ1FVRnBRaXhMUVVGTExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdTVUZGTjBNc1RVRkJUU3hEUVVGRExGTkJRVk1zUlVGQlJTeFpRVUZaTEVOQlFVTXNSMEZCUnl3clEwRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlJXeEVMRTFCUVUwc1dVRkJXU3hIUVVGSExEWkRRVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkZiRU1zVFVGQlRTeFBRVUZQTEVkQlFVY3NRMEZCVHl4TFFVRjFRaXhGUVVGRkxFVkJRVVU3TzFGQlEyaEVMRTFCUVUwc1IwRkJSeXhIUVVGSExGTkJRVk1zU1VGQlNTeExRVUZMTEV0QlFVa3NWMEZCU3l4RFFVRkRMRTlCUVU4c0swTkJRV0lzUzBGQlN5eEZRVUZYTEV0QlFVc3NRMEZCUXl4RlFVRkRPMUZCUlhwRUxFbEJRVWtzUjBGQlJ5eEpRVUZKTEUxQlFVMHNTVUZCU1N4SFFVRkhMRVZCUVVVN1dVRkRlRUlzU1VGQlNUdG5Ra0ZEUml4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03WjBKQlEyNUNMRTFCUVUwc1IwRkJSeXhEUVVGRE8yRkJRMWc3V1VGQlF5eFBRVUZQTEV0QlFWVXNSVUZCUlR0blFrRkRia0lzU1VGQlNTeERRVUZETEVOQlFVTXNTMEZCU3l4WlFVRlpMQ3REUVVGVkxFTkJRVU1zUlVGQlJUdHZRa0ZEYkVNc1RVRkJUU3hMUVVGTExFTkJRVU03YVVKQlEySTdjVUpCUVUwN2IwSkJRMHdzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRwUWtGRGNrSTdZVUZEUmp0dlFrRkJVenRuUWtGRFVpeEpRVUZKTEZsQlFWa3NRMEZCUXl4UFFVRlBMRVZCUVVVN2IwSkJRM2hDTEZsQlFWa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRwUWtGRGNrSTdZVUZEUmp0VFFVTkdPMGxCUTBnc1EwRkJReXhGUVVGRE8wbEJSVVlzWjBSQlFWTXNRMEZEVUN4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFVkJRVVU3VVVGRFZDeFpRVUZaTEVOQlFVTXNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJRenRKUVVNdlFpeERRVUZETEVWQlEwUXNSVUZCUlN4RFFVTklMRU5CUVVNN1NVRkZSaXhOUVVGTkxHdENRVUZyUWl4SFFVRkhMRFpEUVVGTkxFTkJRWEZDTEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUlRWRUxFbEJRMFVzUzBGQlN5eERRVUZETEVsQlFVa3NTMEZCU3l4UlFVRlJPMUZCUTNaQ0xFdEJRVXNzUTBGQlF5eEpRVUZKTEV0QlFVc3NUVUZCVFR0UlFVTnlRaXhMUVVGTExFTkJRVU1zU1VGQlNTeExRVUZMTEZGQlFWRXNSVUZEZGtJN1VVRkRRU3hOUVVGTkxFbEJRVWtzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRXRCUVVzc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJSUzlETEVOQlFVTTdVVUZEWWl4UFFVRlBMRU5CUTB3c2EwWkJRMFVzVTBGQlV5eEZRVUZGTEdkRVFVRkpMRU5CUTJJc2MwSkJRWE5DTEVWQlEzUkNMRTFCUVUwc1JVRkRUaXhMUVVGTExFTkJRVU1zVTBGQlV5eEZRVU5tTEV0QlFVc3NRMEZCUXl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRUdG5Ra0ZETlVJc1EwRkJReXhEUVVGRExEUkNRVUUwUWp0blFrRkRPVUlzUTBGQlF5eERRVUZETERSQ1FVRTBRaXhGUVVOb1F6dG5Ra0ZEUlN4UlFVRlJMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRUdG5Ra0ZEZGtJc2IwSkJRVzlDTEVWQlFVVXNTMEZCU3l4RFFVRkRMRkZCUVZFN1owSkJRM0JETEdsQ1FVRnBRaXhGUVVGRkxFdEJRVXNzUTBGQlF5eEpRVUZKTEV0QlFVc3NUVUZCVFR0aFFVTjZReXhEUVVOR0xHbENRVU5aTEV0QlFVc3NRMEZCUXl4aFFVRmhMRU5CUVVNc1JVRkRha01zVFVGQlRTeEZRVUZGTEV0QlFVc3NRMEZCUXl4TlFVRk5MRVZCUTNCQ0xFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNTMEZCU3l4blFrRkRUaXhMUVVGTExFTkJRVU1zV1VGQldTeERRVUZETEVWQlF5OUNMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRMVlzVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZEYUVJc1IwRkJSeXhGUVVGRkxGRkJRVkVzUlVGRFlpeFJRVUZSTEVWQlFVVXNVMEZCVXl4SlFVRkpMRXRCUVVzc1EwRkJReXhUUVVGVExHbENRVVZ5UXl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFbEJRVWtzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUXpsQ0xDdEZRVUZMTEZOQlFWTXNSVUZCUXl4blFrRkJaMElzYVVKQlFXRXNUVUZCVFN4cFFrRkRMME1zUzBGQlN5eERRVUZETEVsQlFVa3NTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhGUVVONlFpeExRVUZMTEVOQlFVTXNaVUZCWlN4SlFVRkpMRU5CUTNoQ0xDdEZRVUZOTEZOQlFWTXNSVUZCUXl4elFrRkJjMElzWjBKQlEyNURMRXRCUVVzc1EwRkJReXhsUVVGbExGbEJRMnBDTEVOQlExSXNSVUZEUVN4TFFVRkxMRU5CUVVNc1UwRkJVeXhKUVVGSkxIVkVRVUZETEdkRVFVRlBMR0ZCUVVjc1lVRkRNMElzUTBGRFVDeEZRVU5CTEV0QlFVc3NRMEZCUXl4aFFVRmhMRWxCUVVrc1EwRkRkRUlzSzBWQlFVc3NVMEZCVXl4RlFVRkRMR2xDUVVGcFFpeHBRa0ZETjBJc1MwRkJTeXhEUVVGRExGbEJRVmtzUTBGQlF5eFBRVUZITEZOQlFWTXNTVUZCU1N4MVJFRkJReXhuUkVGQlR5eGhRVUZITEdGQlF6TkRMRU5CUTFBc1JVRkRRU3hMUVVGTExFTkJRVU1zVVVGQlVTeGhRVU5TTEVOQlExWXNRMEZCUXp0TFFVTklPMGxCUlVRc1QwRkJUeXhEUVVOTUxHbEdRVU5GTEZOQlFWTXNSVUZCUlN4blJFRkJTU3hEUVVGRExGVkJRVlVzUlVGQlJTeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRVZCUXpWRExFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNTMEZCU3l4RlFVTnNRaXhoUVVGaExFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlR0WlFVTjJRaXhyUWtGQmEwSXNRMEZCUXl4UFFVRlBMRWRCUVVjc1MwRkJTeXhEUVVGRExGZEJRVmNzU1VGQlNTeEpRVUZKTEVOQlFVTTdVVUZEZWtRc1EwRkJReXhGUVVORUxGZEJRVmNzUlVGQlJTeEhRVUZITEVWQlFVVTdXVUZEYUVJc2NVSkJRWEZDTEVOQlFVTXNSMEZCUnl4RlFVRkZPMmRDUVVONlFpeHJRa0ZCYTBJc1EwRkJReXhQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETzFsQlEzQkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMHdzUTBGQlF5eHBRa0ZGUkN4clJVRkRSU3hUUVVGVExFVkJRVVVzZFVKQlFYVkNMRTFCUVUwc1JVRkJSU3hGUVVNeFF5eEpRVUZKTEVWQlFVTXNUMEZCVHl4RlFVTmFMRWxCUVVrc1JVRkJSU3hMUVVGTExFTkJRVU1zU1VGQlNTeG5Ra0ZEU2l4TFFVRkxMRU5CUVVNc1dVRkJXU3hEUVVGRExIVkNRVU5hTEV0QlFVc3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eHBRa0ZEYUVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUTBGQlF5eEZRVU5xUXl4RlFVRkZMRVZCUVVVc1IwRkJSeXhQUVVGUExFbEJRVWtzUzBGQlN5eERRVUZETEVWQlFVVXNSVUZCUlN4RlFVTTFRaXhSUVVGUkxFVkJRVVVzUjBGQlJ5eEZRVUZGT3p0dlFrRkRZaXhYUVVGTExFTkJRVU1zVVVGQlVTd3JRMEZCWkN4TFFVRkxMRVZCUVZrc1JVRkJSU3hYUVVGWExFVkJRVVVzYTBKQlFXdENMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYUVVc1EwRkJReXhGUVVORUxFOUJRVThzUlVGQlJTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVTjBRaXhIUVVGSExFVkJRVVVzVVVGQlVTeFhRVU5pTEVWQlEwWXNLMFZCUVVzc1UwRkJVeXhGUVVGRExHZENRVUZuUWl4cFFrRkROVUlzUzBGQlN5eERRVUZETEVsQlFVa3NSVUZEVml4TFFVRkxMRU5CUVVNc1pVRkJaU3hKUVVGSkxFTkJRM2hDTEN0RlFVRk5MRk5CUVZNc1JVRkJReXh6UWtGQmMwSXNaMEpCUVVVc1MwRkJTeXhEUVVGRExHVkJRV1VzV1VGQlVTeERRVU4wUlN4aFFVTkhMR0ZCUTBFc1EwRkRWQ3hEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZGU0N4VlFVRlZMRU5CUVVNc1dVRkJXU3hIUVVGSE8wbEJRM2hDTEU5QlFVOHNSVUZCUlN4SlFVRkpPMGxCUTJJc1UwRkJVeXhGUVVGRkxFVkJRVVU3U1VGRFlpeEpRVUZKTEVWQlFVVXNVVUZCVVR0RFFVTm1MRU5CUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlVYjI5c1FuVjBkRzl1TG5SemVEODRaVFl5SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCY0lpNHZWRzl2YkVsamIyNHVjMk56YzF3aU8xeHVYRzVwYlhCdmNuUWdVbVZoWTNRc0lIc2dkWE5sUldabVpXTjBMQ0IxYzJWU1pXWXNJSFZ6WlZOMFlYUmxJSDBnWm5KdmJTQmNJbkpsWVdOMFhDSTdYRzVwYlhCdmNuUWdZMnh6ZUNCbWNtOXRJRndpWTJ4emVGd2lPMXh1YVcxd2IzSjBJSHNnZFhObFJYaGpZV3hwWkhKaGQwTnZiblJoYVc1bGNpQjlJR1p5YjIwZ1hDSXVMMEZ3Y0Z3aU8xeHVhVzF3YjNKMElIc2dRV0p2Y25SRmNuSnZjaUI5SUdaeWIyMGdYQ0l1TGk5bGNuSnZjbk5jSWp0Y2JtbHRjRzl5ZENCVGNHbHVibVZ5SUdaeWIyMGdYQ0l1TDFOd2FXNXVaWEpjSWp0Y2JtbHRjRzl5ZENCN0lGQnZhVzUwWlhKVWVYQmxJSDBnWm5KdmJTQmNJaTR1TDJWc1pXMWxiblF2ZEhsd1pYTmNJanRjYmx4dVpYaHdiM0owSUhSNWNHVWdWRzl2YkVKMWRIUnZibE5wZW1VZ1BTQmNJbk50WVd4c1hDSWdmQ0JjSW0xbFpHbDFiVndpTzF4dVhHNTBlWEJsSUZSdmIyeENkWFIwYjI1Q1lYTmxVSEp2Y0hNZ1BTQjdYRzRnSUdsamIyNC9PaUJTWldGamRDNVNaV0ZqZEU1dlpHVTdYRzRnSUZ3aVlYSnBZUzFzWVdKbGJGd2lPaUJ6ZEhKcGJtYzdYRzRnSUZ3aVlYSnBZUzFyWlhsemFHOXlkR04xZEhOY0lqODZJSE4wY21sdVp6dGNiaUFnWENKa1lYUmhMWFJsYzNScFpGd2lQem9nYzNSeWFXNW5PMXh1SUNCc1lXSmxiRDg2SUhOMGNtbHVaenRjYmlBZ2RHbDBiR1UvT2lCemRISnBibWM3WEc0Z0lHNWhiV1UvT2lCemRISnBibWM3WEc0Z0lHbGtQem9nYzNSeWFXNW5PMXh1SUNCemFYcGxQem9nVkc5dmJFSjFkSFJ2YmxOcGVtVTdYRzRnSUd0bGVVSnBibVJwYm1kTVlXSmxiRDg2SUhOMGNtbHVaenRjYmlBZ2MyaHZkMEZ5YVdGTVlXSmxiRDg2SUdKdmIyeGxZVzQ3WEc0Z0lHaHBaR1JsYmo4NklHSnZiMnhsWVc0N1hHNGdJSFpwYzJsaWJHVS9PaUJpYjI5c1pXRnVPMXh1SUNCelpXeGxZM1JsWkQ4NklHSnZiMnhsWVc0N1hHNGdJR05zWVhOelRtRnRaVDg2SUhOMGNtbHVaenRjYmlBZ2FYTk1iMkZrYVc1blB6b2dZbTl2YkdWaGJqdGNibjA3WEc1Y2JuUjVjR1VnVkc5dmJFSjFkSFJ2YmxCeWIzQnpJRDFjYmlBZ2ZDQW9WRzl2YkVKMWRIUnZia0poYzJWUWNtOXdjeUFtSUh0Y2JpQWdJQ0FnSUhSNWNHVTZJRndpWW5WMGRHOXVYQ0k3WEc0Z0lDQWdJQ0JqYUdsc1pISmxiajg2SUZKbFlXTjBMbEpsWVdOMFRtOWtaVHRjYmlBZ0lDQWdJRzl1UTJ4cFkycy9LR1YyWlc1ME9pQlNaV0ZqZEM1TmIzVnpaVVYyWlc1MEtUb2dkbTlwWkR0Y2JpQWdJQ0I5S1Z4dUlDQjhJQ2hVYjI5c1FuVjBkRzl1UW1GelpWQnliM0J6SUNZZ2UxeHVJQ0FnSUNBZ2RIbHdaVG9nWENKemRXSnRhWFJjSWp0Y2JpQWdJQ0FnSUdOb2FXeGtjbVZ1UHpvZ1VtVmhZM1F1VW1WaFkzUk9iMlJsTzF4dUlDQWdJQ0FnYjI1RGJHbGphejhvWlhabGJuUTZJRkpsWVdOMExrMXZkWE5sUlhabGJuUXBPaUIyYjJsa08xeHVJQ0FnSUgwcFhHNGdJSHdnS0ZSdmIyeENkWFIwYjI1Q1lYTmxVSEp2Y0hNZ0ppQjdYRzRnSUNBZ0lDQjBlWEJsT2lCY0ltbGpiMjVjSWp0Y2JpQWdJQ0FnSUdOb2FXeGtjbVZ1UHpvZ1VtVmhZM1F1VW1WaFkzUk9iMlJsTzF4dUlDQWdJQ0FnYjI1RGJHbGphejhvS1RvZ2RtOXBaRHRjYmlBZ0lDQjlLVnh1SUNCOElDaFViMjlzUW5WMGRHOXVRbUZ6WlZCeWIzQnpJQ1lnZTF4dUlDQWdJQ0FnZEhsd1pUb2dYQ0p5WVdScGIxd2lPMXh1SUNBZ0lDQWdZMmhsWTJ0bFpEb2dZbTl2YkdWaGJqdGNiaUFnSUNBZ0lHOXVRMmhoYm1kbFB5aGtZWFJoT2lCN0lIQnZhVzUwWlhKVWVYQmxPaUJRYjJsdWRHVnlWSGx3WlNCOElHNTFiR3dnZlNrNklIWnZhV1E3WEc0Z0lDQWdmU2s3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JVYjI5c1FuVjBkRzl1SUQwZ1VtVmhZM1F1Wm05eWQyRnlaRkpsWmlnb2NISnZjSE02SUZSdmIyeENkWFIwYjI1UWNtOXdjeXdnY21WbUtTQTlQaUI3WEc0Z0lHTnZibk4wSUhzZ2FXUTZJR1Y0WTJGc1NXUWdmU0E5SUhWelpVVjRZMkZzYVdSeVlYZERiMjUwWVdsdVpYSW9LVHRjYmlBZ1kyOXVjM1FnYVc1dVpYSlNaV1lnUFNCU1pXRmpkQzUxYzJWU1pXWW9iblZzYkNrN1hHNGdJRkpsWVdOMExuVnpaVWx0Y0dWeVlYUnBkbVZJWVc1a2JHVW9jbVZtTENBb0tTQTlQaUJwYm01bGNsSmxaaTVqZFhKeVpXNTBLVHRjYmlBZ1kyOXVjM1FnYzJsNlpVTnVJRDBnWUZSdmIyeEpZMjl1WDNOcGVtVmZKSHR3Y205d2N5NXphWHBsZldBN1hHNWNiaUFnWTI5dWMzUWdXMmx6VEc5aFpHbHVaeXdnYzJWMFNYTk1iMkZrYVc1blhTQTlJSFZ6WlZOMFlYUmxLR1poYkhObEtUdGNibHh1SUNCamIyNXpkQ0JwYzAxdmRXNTBaV1JTWldZZ1BTQjFjMlZTWldZb2RISjFaU2s3WEc1Y2JpQWdZMjl1YzNRZ2IyNURiR2xqYXlBOUlHRnplVzVqSUNobGRtVnVkRG9nVW1WaFkzUXVUVzkxYzJWRmRtVnVkQ2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSEpsZENBOUlGd2liMjVEYkdsamExd2lJR2x1SUhCeWIzQnpJQ1ltSUhCeWIzQnpMbTl1UTJ4cFkycy9MaWhsZG1WdWRDazdYRzVjYmlBZ0lDQnBaaUFvY21WMElDWW1JRndpZEdobGJsd2lJR2x1SUhKbGRDa2dlMXh1SUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ2MyVjBTWE5NYjJGa2FXNW5LSFJ5ZFdVcE8xeHVJQ0FnSUNBZ0lDQmhkMkZwZENCeVpYUTdYRzRnSUNBZ0lDQjlJR05oZEdOb0lDaGxjbkp2Y2pvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hLR1Z5Y205eUlHbHVjM1JoYm1ObGIyWWdRV0p2Y25SRmNuSnZjaWtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCbGNuSnZjanRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpiMnhsTG5kaGNtNG9aWEp5YjNJcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlJR1pwYm1Gc2JIa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTk5iM1Z1ZEdWa1VtVm1MbU4xY25KbGJuUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCelpYUkpjMHh2WVdScGJtY29abUZzYzJVcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5TzF4dVhHNGdJSFZ6WlVWbVptVmpkQ2hjYmlBZ0lDQW9LU0E5UGlBb0tTQTlQaUI3WEc0Z0lDQWdJQ0JwYzAxdmRXNTBaV1JTWldZdVkzVnljbVZ1ZENBOUlHWmhiSE5sTzF4dUlDQWdJSDBzWEc0Z0lDQWdXMTBzWEc0Z0lDazdYRzVjYmlBZ1kyOXVjM1FnYkdGemRGQnZhVzUwWlhKVWVYQmxVbVZtSUQwZ2RYTmxVbVZtUEZCdmFXNTBaWEpVZVhCbElId2diblZzYkQ0b2JuVnNiQ2s3WEc1Y2JpQWdhV1lnS0Z4dUlDQWdJSEJ5YjNCekxuUjVjR1VnUFQwOUlGd2lZblYwZEc5dVhDSWdmSHhjYmlBZ0lDQndjbTl3Y3k1MGVYQmxJRDA5UFNCY0ltbGpiMjVjSWlCOGZGeHVJQ0FnSUhCeWIzQnpMblI1Y0dVZ1BUMDlJRndpYzNWaWJXbDBYQ0pjYmlBZ0tTQjdYRzRnSUNBZ1kyOXVjM1FnZEhsd1pTQTlJQ2h3Y205d2N5NTBlWEJsSUQwOVBTQmNJbWxqYjI1Y0lpQS9JRndpWW5WMGRHOXVYQ0lnT2lCd2NtOXdjeTUwZVhCbEtTQmhjMXh1SUNBZ0lDQWdmQ0JjSW1KMWRIUnZibHdpWEc0Z0lDQWdJQ0I4SUZ3aWMzVmliV2wwWENJN1hHNGdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJRHhpZFhSMGIyNWNiaUFnSUNBZ0lDQWdZMnhoYzNOT1lXMWxQWHRqYkhONEtGeHVJQ0FnSUNBZ0lDQWdJRndpVkc5dmJFbGpiMjVmZEhsd1pWOWlkWFIwYjI1Y0lpeGNiaUFnSUNBZ0lDQWdJQ0J6YVhwbFEyNHNYRzRnSUNBZ0lDQWdJQ0FnY0hKdmNITXVZMnhoYzNOT1lXMWxMRnh1SUNBZ0lDQWdJQ0FnSUhCeWIzQnpMblpwYzJsaWJHVWdKaVlnSVhCeWIzQnpMbWhwWkdSbGJseHVJQ0FnSUNBZ0lDQWdJQ0FnUHlCY0lsUnZiMnhKWTI5dVgzUjVjR1ZmWW5WMGRHOXVMUzF6YUc5M1hDSmNiaUFnSUNBZ0lDQWdJQ0FnSURvZ1hDSlViMjlzU1dOdmJsOTBlWEJsWDJKMWRIUnZiaTB0YUdsa1pWd2lMRnh1SUNBZ0lDQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRlJ2YjJ4SlkyOXVPaUFoY0hKdmNITXVhR2xrWkdWdUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnWENKVWIyOXNTV052YmkwdGMyVnNaV04wWldSY0lqb2djSEp2Y0hNdWMyVnNaV04wWldRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JjSWxSdmIyeEpZMjl1TFMxd2JHRnBibHdpT2lCd2NtOXdjeTUwZVhCbElEMDlQU0JjSW1samIyNWNJaXhjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQXBmVnh1SUNBZ0lDQWdJQ0JrWVhSaExYUmxjM1JwWkQxN2NISnZjSE5iWENKa1lYUmhMWFJsYzNScFpGd2lYWDFjYmlBZ0lDQWdJQ0FnYUdsa1pHVnVQWHR3Y205d2N5NW9hV1JrWlc1OVhHNGdJQ0FnSUNBZ0lIUnBkR3hsUFh0d2NtOXdjeTUwYVhSc1pYMWNiaUFnSUNBZ0lDQWdZWEpwWVMxc1lXSmxiRDE3Y0hKdmNITmJYQ0poY21saExXeGhZbVZzWENKZGZWeHVJQ0FnSUNBZ0lDQjBlWEJsUFh0MGVYQmxmVnh1SUNBZ0lDQWdJQ0J2YmtOc2FXTnJQWHR2YmtOc2FXTnJmVnh1SUNBZ0lDQWdJQ0J5WldZOWUybHVibVZ5VW1WbWZWeHVJQ0FnSUNBZ0lDQmthWE5oWW14bFpEMTdhWE5NYjJGa2FXNW5JSHg4SUhCeWIzQnpMbWx6VEc5aFpHbHVaMzFjYmlBZ0lDQWdJRDVjYmlBZ0lDQWdJQ0FnZXlod2NtOXdjeTVwWTI5dUlIeDhJSEJ5YjNCekxteGhZbVZzS1NBbUppQW9YRzRnSUNBZ0lDQWdJQ0FnUEdScGRpQmpiR0Z6YzA1aGJXVTlYQ0pVYjI5c1NXTnZibDlmYVdOdmJsd2lJR0Z5YVdFdGFHbGtaR1Z1UFZ3aWRISjFaVndpUGx4dUlDQWdJQ0FnSUNBZ0lDQWdlM0J5YjNCekxtbGpiMjRnZkh3Z2NISnZjSE11YkdGaVpXeDlYRzRnSUNBZ0lDQWdJQ0FnSUNCN2NISnZjSE11YTJWNVFtbHVaR2x1WjB4aFltVnNJQ1ltSUNoY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOd1lXNGdZMnhoYzNOT1lXMWxQVndpVkc5dmJFbGpiMjVmWDJ0bGVXSnBibVJwYm1kY0lqNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjdjSEp2Y0hNdWEyVjVRbWx1WkdsdVoweGhZbVZzZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDNOd1lXNCtYRzRnSUNBZ0lDQWdJQ0FnSUNBcGZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZTNCeWIzQnpMbWx6VEc5aFpHbHVaeUFtSmlBOFUzQnBibTVsY2lBdlBuMWNiaUFnSUNBZ0lDQWdJQ0E4TDJScGRqNWNiaUFnSUNBZ0lDQWdLWDFjYmlBZ0lDQWdJQ0FnZTNCeWIzQnpMbk5vYjNkQmNtbGhUR0ZpWld3Z0ppWWdLRnh1SUNBZ0lDQWdJQ0FnSUR4a2FYWWdZMnhoYzNOT1lXMWxQVndpVkc5dmJFbGpiMjVmWDJ4aFltVnNYQ0krWEc0Z0lDQWdJQ0FnSUNBZ0lDQjdjSEp2Y0hOYlhDSmhjbWxoTFd4aFltVnNYQ0pkZlNCN2FYTk1iMkZrYVc1bklDWW1JRHhUY0dsdWJtVnlJQzgrZlZ4dUlDQWdJQ0FnSUNBZ0lEd3ZaR2wyUGx4dUlDQWdJQ0FnSUNBcGZWeHVJQ0FnSUNBZ0lDQjdjSEp2Y0hNdVkyaHBiR1J5Wlc1OVhHNGdJQ0FnSUNBOEwySjFkSFJ2Ymo1Y2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ2NtVjBkWEp1SUNoY2JpQWdJQ0E4YkdGaVpXeGNiaUFnSUNBZ0lHTnNZWE56VG1GdFpUMTdZMnh6ZUNoY0lsUnZiMnhKWTI5dVhDSXNJSEJ5YjNCekxtTnNZWE56VG1GdFpTbDlYRzRnSUNBZ0lDQjBhWFJzWlQxN2NISnZjSE11ZEdsMGJHVjlYRzRnSUNBZ0lDQnZibEJ2YVc1MFpYSkViM2R1UFhzb1pYWmxiblFwSUQwK0lIdGNiaUFnSUNBZ0lDQWdiR0Z6ZEZCdmFXNTBaWEpVZVhCbFVtVm1MbU4xY25KbGJuUWdQU0JsZG1WdWRDNXdiMmx1ZEdWeVZIbHdaU0I4ZkNCdWRXeHNPMXh1SUNBZ0lDQWdmWDFjYmlBZ0lDQWdJRzl1VUc5cGJuUmxjbFZ3UFhzb0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUhKbGNYVmxjM1JCYm1sdFlYUnBiMjVHY21GdFpTZ29LU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdiR0Z6ZEZCdmFXNTBaWEpVZVhCbFVtVm1MbU4xY25KbGJuUWdQU0J1ZFd4c08xeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDE5WEc0Z0lDQWdQbHh1SUNBZ0lDQWdQR2x1Y0hWMFhHNGdJQ0FnSUNBZ0lHTnNZWE56VG1GdFpUMTdZRlJ2YjJ4SlkyOXVYM1I1Y0dWZmNtRmthVzhnSkh0emFYcGxRMjU5WUgxY2JpQWdJQ0FnSUNBZ2RIbHdaVDFjSW5KaFpHbHZYQ0pjYmlBZ0lDQWdJQ0FnYm1GdFpUMTdjSEp2Y0hNdWJtRnRaWDFjYmlBZ0lDQWdJQ0FnWVhKcFlTMXNZV0psYkQxN2NISnZjSE5iWENKaGNtbGhMV3hoWW1Wc1hDSmRmVnh1SUNBZ0lDQWdJQ0JoY21saExXdGxlWE5vYjNKMFkzVjBjejE3Y0hKdmNITmJYQ0poY21saExXdGxlWE5vYjNKMFkzVjBjMXdpWFgxY2JpQWdJQ0FnSUNBZ1pHRjBZUzEwWlhOMGFXUTllM0J5YjNCelcxd2laR0YwWVMxMFpYTjBhV1JjSWwxOVhHNGdJQ0FnSUNBZ0lHbGtQWHRnSkh0bGVHTmhiRWxrZlMwa2UzQnliM0J6TG1sa2ZXQjlYRzRnSUNBZ0lDQWdJRzl1UTJoaGJtZGxQWHNvS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnY0hKdmNITXViMjVEYUdGdVoyVS9MaWg3SUhCdmFXNTBaWEpVZVhCbE9pQnNZWE4wVUc5cGJuUmxjbFI1Y0dWU1pXWXVZM1Z5Y21WdWRDQjlLVHRjYmlBZ0lDQWdJQ0FnZlgxY2JpQWdJQ0FnSUNBZ1kyaGxZMnRsWkQxN2NISnZjSE11WTJobFkydGxaSDFjYmlBZ0lDQWdJQ0FnY21WbVBYdHBibTVsY2xKbFpuMWNiaUFnSUNBZ0lDOCtYRzRnSUNBZ0lDQThaR2wySUdOc1lYTnpUbUZ0WlQxY0lsUnZiMnhKWTI5dVgxOXBZMjl1WENJK1hHNGdJQ0FnSUNBZ0lIdHdjbTl3Y3k1cFkyOXVmVnh1SUNBZ0lDQWdJQ0I3Y0hKdmNITXVhMlY1UW1sdVpHbHVaMHhoWW1Wc0lDWW1JQ2hjYmlBZ0lDQWdJQ0FnSUNBOGMzQmhiaUJqYkdGemMwNWhiV1U5WENKVWIyOXNTV052Ymw5ZmEyVjVZbWx1WkdsdVoxd2lQbnR3Y205d2N5NXJaWGxDYVc1a2FXNW5UR0ZpWld4OVBDOXpjR0Z1UGx4dUlDQWdJQ0FnSUNBcGZWeHVJQ0FnSUNBZ1BDOWthWFkrWEc0Z0lDQWdQQzlzWVdKbGJENWNiaUFnS1R0Y2JuMHBPMXh1WEc1VWIyOXNRblYwZEc5dUxtUmxabUYxYkhSUWNtOXdjeUE5SUh0Y2JpQWdkbWx6YVdKc1pUb2dkSEoxWlN4Y2JpQWdZMnhoYzNOT1lXMWxPaUJjSWx3aUxGeHVJQ0J6YVhwbE9pQmNJbTFsWkdsMWJWd2lMRnh1ZlR0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbXBvbmVudHMvVG9vbEJ1dHRvbi50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbXBvbmVudHMvVG9vbHRpcC50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9jb21wb25lbnRzL1Rvb2x0aXAudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldFRvb2x0aXBEaXZcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRUb29sdGlwRGl2KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJ1cGRhdGVUb29sdGlwUG9zaXRpb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB1cGRhdGVUb29sdGlwUG9zaXRpb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlRvb2x0aXBcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBUb29sdGlwKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVG9vbHRpcF9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1Rvb2x0aXAuc2NzcyAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9Ub29sdGlwLnNjc3NcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX1Rvb2x0aXBfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9Ub29sdGlwX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdCAqLyBcXFwicmVhY3RcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fKTtcXG5cXG5cXG5cXG5jb25zdCBnZXRUb29sdGlwRGl2ID0gKCkgPT4ge1xcbiAgICBjb25zdCBleGlzdGluZ0RpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXFxcIi5leGNhbGlkcmF3LXRvb2x0aXBcXFwiKTtcXG4gICAgaWYgKGV4aXN0aW5nRGl2KSB7XFxuICAgICAgICByZXR1cm4gZXhpc3RpbmdEaXY7XFxuICAgIH1cXG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcXFwiZGl2XFxcIik7XFxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTtcXG4gICAgZGl2LmNsYXNzTGlzdC5hZGQoXFxcImV4Y2FsaWRyYXctdG9vbHRpcFxcXCIpO1xcbiAgICByZXR1cm4gZGl2O1xcbn07XFxuY29uc3QgdXBkYXRlVG9vbHRpcFBvc2l0aW9uID0gKHRvb2x0aXAsIGl0ZW0sIHBvc2l0aW9uID0gXFxcImJvdHRvbVxcXCIpID0+IHtcXG4gICAgY29uc3QgdG9vbHRpcFJlY3QgPSB0b29sdGlwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xcbiAgICBjb25zdCB2aWV3cG9ydFdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XFxuICAgIGNvbnN0IHZpZXdwb3J0SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xcbiAgICBjb25zdCBtYXJnaW4gPSA1O1xcbiAgICBsZXQgbGVmdCA9IGl0ZW0ubGVmdCArIGl0ZW0ud2lkdGggLyAyIC0gdG9vbHRpcFJlY3Qud2lkdGggLyAyO1xcbiAgICBpZiAobGVmdCA8IDApIHtcXG4gICAgICAgIGxlZnQgPSBtYXJnaW47XFxuICAgIH1cXG4gICAgZWxzZSBpZiAobGVmdCArIHRvb2x0aXBSZWN0LndpZHRoID49IHZpZXdwb3J0V2lkdGgpIHtcXG4gICAgICAgIGxlZnQgPSB2aWV3cG9ydFdpZHRoIC0gdG9vbHRpcFJlY3Qud2lkdGggLSBtYXJnaW47XFxuICAgIH1cXG4gICAgbGV0IHRvcDtcXG4gICAgaWYgKHBvc2l0aW9uID09PSBcXFwiYm90dG9tXFxcIikge1xcbiAgICAgICAgdG9wID0gaXRlbS50b3AgKyBpdGVtLmhlaWdodCArIG1hcmdpbjtcXG4gICAgICAgIGlmICh0b3AgKyB0b29sdGlwUmVjdC5oZWlnaHQgPj0gdmlld3BvcnRIZWlnaHQpIHtcXG4gICAgICAgICAgICB0b3AgPSBpdGVtLnRvcCAtIHRvb2x0aXBSZWN0LmhlaWdodCAtIG1hcmdpbjtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBlbHNlIHtcXG4gICAgICAgIHRvcCA9IGl0ZW0udG9wIC0gdG9vbHRpcFJlY3QuaGVpZ2h0IC0gbWFyZ2luO1xcbiAgICAgICAgaWYgKHRvcCA8IDApIHtcXG4gICAgICAgICAgICB0b3AgPSBpdGVtLnRvcCArIGl0ZW0uaGVpZ2h0ICsgbWFyZ2luO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIE9iamVjdC5hc3NpZ24odG9vbHRpcC5zdHlsZSwge1xcbiAgICAgICAgdG9wOiBgJHt0b3B9cHhgLFxcbiAgICAgICAgbGVmdDogYCR7bGVmdH1weGAsXFxuICAgIH0pO1xcbn07XFxuY29uc3QgdXBkYXRlVG9vbHRpcCA9IChpdGVtLCB0b29sdGlwLCBsYWJlbCwgbG9uZykgPT4ge1xcbiAgICB0b29sdGlwLmNsYXNzTGlzdC5hZGQoXFxcImV4Y2FsaWRyYXctdG9vbHRpcC0tdmlzaWJsZVxcXCIpO1xcbiAgICB0b29sdGlwLnN0eWxlLm1pbldpZHRoID0gbG9uZyA/IFxcXCI1MGNoXFxcIiA6IFxcXCIxMGNoXFxcIjtcXG4gICAgdG9vbHRpcC5zdHlsZS5tYXhXaWR0aCA9IGxvbmcgPyBcXFwiNTBjaFxcXCIgOiBcXFwiMTVjaFxcXCI7XFxuICAgIHRvb2x0aXAudGV4dENvbnRlbnQgPSBsYWJlbDtcXG4gICAgY29uc3QgaXRlbVJlY3QgPSBpdGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xcbiAgICB1cGRhdGVUb29sdGlwUG9zaXRpb24odG9vbHRpcCwgaXRlbVJlY3QpO1xcbn07XFxuY29uc3QgVG9vbHRpcCA9ICh7IGNoaWxkcmVuLCBsYWJlbCwgbG9uZyA9IGZhbHNlLCBzdHlsZSwgfSkgPT4ge1xcbiAgICAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnVzZUVmZmVjdCkoKCkgPT4ge1xcbiAgICAgICAgcmV0dXJuICgpID0+IGdldFRvb2x0aXBEaXYoKS5jbGFzc0xpc3QucmVtb3ZlKFxcXCJleGNhbGlkcmF3LXRvb2x0aXAtLXZpc2libGVcXFwiKTtcXG4gICAgfSwgW10pO1xcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcImV4Y2FsaWRyYXctdG9vbHRpcC13cmFwcGVyXFxcIiwgb25Qb2ludGVyRW50ZXI6IChldmVudCkgPT4gdXBkYXRlVG9vbHRpcChldmVudC5jdXJyZW50VGFyZ2V0LCBnZXRUb29sdGlwRGl2KCksIGxhYmVsLCBsb25nKSwgb25Qb2ludGVyTGVhdmU6ICgpID0+IGdldFRvb2x0aXBEaXYoKS5jbGFzc0xpc3QucmVtb3ZlKFxcXCJleGNhbGlkcmF3LXRvb2x0aXAtLXZpc2libGVcXFwiKSwgc3R5bGU6IHN0eWxlIH0sIHsgY2hpbGRyZW46IGNoaWxkcmVuIH0pLCB2b2lkIDApKTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5VWIyOXNkR2x3TG5SemVDNXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN096czdRVUZCZDBJN1FVRkZhVUk3UVVGRmJFTXNUVUZCVFN4aFFVRmhMRWRCUVVjc1IwRkJSeXhGUVVGRk8wbEJRMmhETEUxQlFVMHNWMEZCVnl4SFFVRkhMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRM2hETEhGQ1FVRnhRaXhEUVVOMFFpeERRVUZETzBsQlEwWXNTVUZCU1N4WFFVRlhMRVZCUVVVN1VVRkRaaXhQUVVGUExGZEJRVmNzUTBGQlF6dExRVU53UWp0SlFVTkVMRTFCUVUwc1IwRkJSeXhIUVVGSExGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1NVRkRNVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGREwwSXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1EwRkJRenRKUVVONFF5eFBRVUZQTEVkQlFVY3NRMEZCUXp0QlFVTmlMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzY1VKQlFYRkNMRWRCUVVjc1EwRkRia01zVDBGQmRVSXNSVUZEZGtJc1NVRkxReXhGUVVORUxGZEJRVFpDTEZGQlFWRXNSVUZEY2tNc1JVRkJSVHRKUVVOR0xFMUJRVTBzVjBGQlZ5eEhRVUZITEU5QlFVOHNRMEZCUXl4eFFrRkJjVUlzUlVGQlJTeERRVUZETzBsQlJYQkVMRTFCUVUwc1lVRkJZU3hIUVVGSExFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTTdTVUZEZUVNc1RVRkJUU3hqUVVGakxFZEJRVWNzVFVGQlRTeERRVUZETEZkQlFWY3NRMEZCUXp0SlFVVXhReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZGYWtJc1NVRkJTU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhIUVVGSExFTkJRVU1zUjBGQlJ5eFhRVUZYTEVOQlFVTXNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVNNVJDeEpRVUZKTEVsQlFVa3NSMEZCUnl4RFFVRkRMRVZCUVVVN1VVRkRXaXhKUVVGSkxFZEJRVWNzVFVGQlRTeERRVUZETzB0QlEyWTdVMEZCVFN4SlFVRkpMRWxCUVVrc1IwRkJSeXhYUVVGWExFTkJRVU1zUzBGQlN5eEpRVUZKTEdGQlFXRXNSVUZCUlR0UlFVTndSQ3hKUVVGSkxFZEJRVWNzWVVGQllTeEhRVUZITEZkQlFWY3NRMEZCUXl4TFFVRkxMRWRCUVVjc1RVRkJUU3hEUVVGRE8wdEJRMjVFTzBsQlJVUXNTVUZCU1N4SFFVRlhMRU5CUVVNN1NVRkZhRUlzU1VGQlNTeFJRVUZSTEV0QlFVc3NVVUZCVVN4RlFVRkZPMUZCUTNwQ0xFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzVFVGQlRTeERRVUZETzFGQlEzUkRMRWxCUVVrc1IwRkJSeXhIUVVGSExGZEJRVmNzUTBGQlF5eE5RVUZOTEVsQlFVa3NZMEZCWXl4RlFVRkZPMWxCUXpsRExFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4SFFVRkhMRmRCUVZjc1EwRkJReXhOUVVGTkxFZEJRVWNzVFVGQlRTeERRVUZETzFOQlF6bERPMHRCUTBZN1UwRkJUVHRSUVVOTUxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4SFFVRkhMRmRCUVZjc1EwRkJReXhOUVVGTkxFZEJRVWNzVFVGQlRTeERRVUZETzFGQlF6ZERMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJUdFpRVU5ZTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NUVUZCVFN4RFFVRkRPMU5CUTNaRE8wdEJRMFk3U1VGRlJDeE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFVkJRVVU3VVVGRE0wSXNSMEZCUnl4RlFVRkZMRWRCUVVjc1IwRkJSeXhKUVVGSk8xRkJRMllzU1VGQlNTeEZRVUZGTEVkQlFVY3NTVUZCU1N4SlFVRkpPMHRCUTJ4Q0xFTkJRVU1zUTBGQlF6dEJRVU5NTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc1lVRkJZU3hIUVVGSExFTkJRM0JDTEVsQlFXOUNMRVZCUTNCQ0xFOUJRWFZDTEVWQlEzWkNMRXRCUVdFc1JVRkRZaXhKUVVGaExFVkJRMklzUlVGQlJUdEpRVU5HTEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExEWkNRVUUyUWl4RFFVRkRMRU5CUVVNN1NVRkRja1FzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenRKUVVOb1JDeFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRE8wbEJSV2hFTEU5QlFVOHNRMEZCUXl4WFFVRlhMRWRCUVVjc1MwRkJTeXhEUVVGRE8wbEJSVFZDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNSVUZCUlN4RFFVRkRPMGxCUXpsRExIRkNRVUZ4UWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU16UXl4RFFVRkRMRU5CUVVNN1FVRlRTeXhOUVVGTkxFOUJRVThzUjBGQlJ5eERRVUZETEVWQlEzUkNMRkZCUVZFc1JVRkRVaXhMUVVGTExFVkJRMHdzU1VGQlNTeEhRVUZITEV0QlFVc3NSVUZEV2l4TFFVRkxMRWRCUTFFc1JVRkJSU3hGUVVGRk8wbEJRMnBDTEdkRVFVRlRMRU5CUVVNc1IwRkJSeXhGUVVGRk8xRkJRMklzVDBGQlR5eEhRVUZITEVWQlFVVXNRMEZEVml4aFFVRmhMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETERaQ1FVRTJRaXhEUVVGRExFTkJRVU03U1VGRGNFVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRMUFzVDBGQlR5eERRVU5NTERoRlFVTkZMRk5CUVZNc1JVRkJReXcwUWtGQk5FSXNSVUZEZEVNc1kwRkJZeXhGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZEZUVJc1lVRkJZU3hEUVVOWUxFdEJRVXNzUTBGQlF5eGhRVUVyUWl4RlFVTnlReXhoUVVGaExFVkJRVVVzUlVGRFppeExRVUZMTEVWQlEwd3NTVUZCU1N4RFFVTk1MRVZCUlVnc1kwRkJZeXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVU51UWl4aFFVRmhMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETERaQ1FVRTJRaXhEUVVGRExFVkJSV3BGTEV0QlFVc3NSVUZCUlN4TFFVRkxMR2RDUVVWWUxGRkJRVkVzV1VGRFRDeERRVU5RTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZZMjl0Y0c5dVpXNTBjeTlVYjI5c2RHbHdMblJ6ZUQ4eFpUazNJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0JjSWk0dlZHOXZiSFJwY0M1elkzTnpYQ0k3WEc1Y2JtbHRjRzl5ZENCU1pXRmpkQ3dnZXlCMWMyVkZabVpsWTNRZ2ZTQm1jbTl0SUZ3aWNtVmhZM1JjSWp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdkbGRGUnZiMngwYVhCRWFYWWdQU0FvS1NBOVBpQjdYRzRnSUdOdmJuTjBJR1Y0YVhOMGFXNW5SR2wySUQwZ1pHOWpkVzFsYm5RdWNYVmxjbmxUWld4bFkzUnZjanhJVkUxTVJHbDJSV3hsYldWdWRENG9YRzRnSUNBZ1hDSXVaWGhqWVd4cFpISmhkeTEwYjI5c2RHbHdYQ0lzWEc0Z0lDazdYRzRnSUdsbUlDaGxlR2x6ZEdsdVowUnBkaWtnZTF4dUlDQWdJSEpsZEhWeWJpQmxlR2x6ZEdsdVowUnBkanRjYmlBZ2ZWeHVJQ0JqYjI1emRDQmthWFlnUFNCa2IyTjFiV1Z1ZEM1amNtVmhkR1ZGYkdWdFpXNTBLRndpWkdsMlhDSXBPMXh1SUNCa2IyTjFiV1Z1ZEM1aWIyUjVMbUZ3Y0dWdVpFTm9hV3hrS0dScGRpazdYRzRnSUdScGRpNWpiR0Z6YzB4cGMzUXVZV1JrS0Z3aVpYaGpZV3hwWkhKaGR5MTBiMjlzZEdsd1hDSXBPMXh1SUNCeVpYUjFjbTRnWkdsMk8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJSFZ3WkdGMFpWUnZiMngwYVhCUWIzTnBkR2x2YmlBOUlDaGNiaUFnZEc5dmJIUnBjRG9nU0ZSTlRFUnBka1ZzWlcxbGJuUXNYRzRnSUdsMFpXMDZJSHRjYmlBZ0lDQnNaV1owT2lCdWRXMWlaWEk3WEc0Z0lDQWdkRzl3T2lCdWRXMWlaWEk3WEc0Z0lDQWdkMmxrZEdnNklHNTFiV0psY2p0Y2JpQWdJQ0JvWldsbmFIUTZJRzUxYldKbGNqdGNiaUFnZlN4Y2JpQWdjRzl6YVhScGIyNDZJRndpWW05MGRHOXRYQ0lnZkNCY0luUnZjRndpSUQwZ1hDSmliM1IwYjIxY0lpeGNiaWtnUFQ0Z2UxeHVJQ0JqYjI1emRDQjBiMjlzZEdsd1VtVmpkQ0E5SUhSdmIyeDBhWEF1WjJWMFFtOTFibVJwYm1kRGJHbGxiblJTWldOMEtDazdYRzVjYmlBZ1kyOXVjM1FnZG1sbGQzQnZjblJYYVdSMGFDQTlJSGRwYm1SdmR5NXBibTVsY2xkcFpIUm9PMXh1SUNCamIyNXpkQ0IyYVdWM2NHOXlkRWhsYVdkb2RDQTlJSGRwYm1SdmR5NXBibTVsY2tobGFXZG9kRHRjYmx4dUlDQmpiMjV6ZENCdFlYSm5hVzRnUFNBMU8xeHVYRzRnSUd4bGRDQnNaV1owSUQwZ2FYUmxiUzVzWldaMElDc2dhWFJsYlM1M2FXUjBhQ0F2SURJZ0xTQjBiMjlzZEdsd1VtVmpkQzUzYVdSMGFDQXZJREk3WEc0Z0lHbG1JQ2hzWldaMElEd2dNQ2tnZTF4dUlDQWdJR3hsWm5RZ1BTQnRZWEpuYVc0N1hHNGdJSDBnWld4elpTQnBaaUFvYkdWbWRDQXJJSFJ2YjJ4MGFYQlNaV04wTG5kcFpIUm9JRDQ5SUhacFpYZHdiM0owVjJsa2RHZ3BJSHRjYmlBZ0lDQnNaV1owSUQwZ2RtbGxkM0J2Y25SWGFXUjBhQ0F0SUhSdmIyeDBhWEJTWldOMExuZHBaSFJvSUMwZ2JXRnlaMmx1TzF4dUlDQjlYRzVjYmlBZ2JHVjBJSFJ2Y0RvZ2JuVnRZbVZ5TzF4dVhHNGdJR2xtSUNod2IzTnBkR2x2YmlBOVBUMGdYQ0ppYjNSMGIyMWNJaWtnZTF4dUlDQWdJSFJ2Y0NBOUlHbDBaVzB1ZEc5d0lDc2dhWFJsYlM1b1pXbG5hSFFnS3lCdFlYSm5hVzQ3WEc0Z0lDQWdhV1lnS0hSdmNDQXJJSFJ2YjJ4MGFYQlNaV04wTG1obGFXZG9kQ0ErUFNCMmFXVjNjRzl5ZEVobGFXZG9kQ2tnZTF4dUlDQWdJQ0FnZEc5d0lEMGdhWFJsYlM1MGIzQWdMU0IwYjI5c2RHbHdVbVZqZEM1b1pXbG5hSFFnTFNCdFlYSm5hVzQ3WEc0Z0lDQWdmVnh1SUNCOUlHVnNjMlVnZTF4dUlDQWdJSFJ2Y0NBOUlHbDBaVzB1ZEc5d0lDMGdkRzl2YkhScGNGSmxZM1F1YUdWcFoyaDBJQzBnYldGeVoybHVPMXh1SUNBZ0lHbG1JQ2gwYjNBZ1BDQXdLU0I3WEc0Z0lDQWdJQ0IwYjNBZ1BTQnBkR1Z0TG5SdmNDQXJJR2wwWlcwdWFHVnBaMmgwSUNzZ2JXRnlaMmx1TzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUU5aWFtVmpkQzVoYzNOcFoyNG9kRzl2YkhScGNDNXpkSGxzWlN3Z2UxeHVJQ0FnSUhSdmNEb2dZQ1I3ZEc5d2ZYQjRZQ3hjYmlBZ0lDQnNaV1owT2lCZ0pIdHNaV1owZlhCNFlDeGNiaUFnZlNrN1hHNTlPMXh1WEc1amIyNXpkQ0IxY0dSaGRHVlViMjlzZEdsd0lEMGdLRnh1SUNCcGRHVnRPaUJJVkUxTVJHbDJSV3hsYldWdWRDeGNiaUFnZEc5dmJIUnBjRG9nU0ZSTlRFUnBka1ZzWlcxbGJuUXNYRzRnSUd4aFltVnNPaUJ6ZEhKcGJtY3NYRzRnSUd4dmJtYzZJR0p2YjJ4bFlXNHNYRzRwSUQwK0lIdGNiaUFnZEc5dmJIUnBjQzVqYkdGemMweHBjM1F1WVdSa0tGd2laWGhqWVd4cFpISmhkeTEwYjI5c2RHbHdMUzEyYVhOcFlteGxYQ0lwTzF4dUlDQjBiMjlzZEdsd0xuTjBlV3hsTG0xcGJsZHBaSFJvSUQwZ2JHOXVaeUEvSUZ3aU5UQmphRndpSURvZ1hDSXhNR05vWENJN1hHNGdJSFJ2YjJ4MGFYQXVjM1I1YkdVdWJXRjRWMmxrZEdnZ1BTQnNiMjVuSUQ4Z1hDSTFNR05vWENJZ09pQmNJakUxWTJoY0lqdGNibHh1SUNCMGIyOXNkR2x3TG5SbGVIUkRiMjUwWlc1MElEMGdiR0ZpWld3N1hHNWNiaUFnWTI5dWMzUWdhWFJsYlZKbFkzUWdQU0JwZEdWdExtZGxkRUp2ZFc1a2FXNW5RMnhwWlc1MFVtVmpkQ2dwTzF4dUlDQjFjR1JoZEdWVWIyOXNkR2x3VUc5emFYUnBiMjRvZEc5dmJIUnBjQ3dnYVhSbGJWSmxZM1FwTzF4dWZUdGNibHh1ZEhsd1pTQlViMjlzZEdsd1VISnZjSE1nUFNCN1hHNGdJR05vYVd4a2NtVnVPaUJTWldGamRDNVNaV0ZqZEU1dlpHVTdYRzRnSUd4aFltVnNPaUJ6ZEhKcGJtYzdYRzRnSUd4dmJtYy9PaUJpYjI5c1pXRnVPMXh1SUNCemRIbHNaVDg2SUZKbFlXTjBMa05UVTFCeWIzQmxjblJwWlhNN1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdWRzl2YkhScGNDQTlJQ2g3WEc0Z0lHTm9hV3hrY21WdUxGeHVJQ0JzWVdKbGJDeGNiaUFnYkc5dVp5QTlJR1poYkhObExGeHVJQ0J6ZEhsc1pTeGNibjA2SUZSdmIyeDBhWEJRY205d2N5a2dQVDRnZTF4dUlDQjFjMlZGWm1abFkzUW9LQ2tnUFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUFvS1NBOVBseHVJQ0FnSUNBZ1oyVjBWRzl2YkhScGNFUnBkaWdwTG1Oc1lYTnpUR2x6ZEM1eVpXMXZkbVVvWENKbGVHTmhiR2xrY21GM0xYUnZiMngwYVhBdExYWnBjMmxpYkdWY0lpazdYRzRnSUgwc0lGdGRLVHRjYmlBZ2NtVjBkWEp1SUNoY2JpQWdJQ0E4WkdsMlhHNGdJQ0FnSUNCamJHRnpjMDVoYldVOVhDSmxlR05oYkdsa2NtRjNMWFJ2YjJ4MGFYQXRkM0poY0hCbGNsd2lYRzRnSUNBZ0lDQnZibEJ2YVc1MFpYSkZiblJsY2oxN0tHVjJaVzUwS1NBOVBseHVJQ0FnSUNBZ0lDQjFjR1JoZEdWVWIyOXNkR2x3S0Z4dUlDQWdJQ0FnSUNBZ0lHVjJaVzUwTG1OMWNuSmxiblJVWVhKblpYUWdZWE1nU0ZSTlRFUnBka1ZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnWjJWMFZHOXZiSFJwY0VScGRpZ3BMRnh1SUNBZ0lDQWdJQ0FnSUd4aFltVnNMRnh1SUNBZ0lDQWdJQ0FnSUd4dmJtY3NYRzRnSUNBZ0lDQWdJQ2xjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJRzl1VUc5cGJuUmxja3hsWVhabFBYc29LU0E5UGx4dUlDQWdJQ0FnSUNCblpYUlViMjlzZEdsd1JHbDJLQ2t1WTJ4aGMzTk1hWE4wTG5KbGJXOTJaU2hjSW1WNFkyRnNhV1J5WVhjdGRHOXZiSFJwY0MwdGRtbHphV0pzWlZ3aUtWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2MzUjViR1U5ZTNOMGVXeGxmVnh1SUNBZ0lENWNiaUFnSUNBZ0lIdGphR2xzWkhKbGJuMWNiaUFnSUNBOEwyUnBkajVjYmlBZ0tUdGNibjA3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9Ub29sdGlwLnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9Vc2VyTGlzdC50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9Vc2VyTGlzdC50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlVzZXJMaXN0XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gVXNlckxpc3QpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9Vc2VyTGlzdF9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL1VzZXJMaXN0LnNjc3MgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVXNlckxpc3Quc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfVXNlckxpc3Rfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9Vc2VyTGlzdF9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIGNsc3ggKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jbHN4L2Rpc3QvY2xzeC5tLmpzXFxcIik7XFxuXFxuXFxuXFxuXFxuY29uc3QgVXNlckxpc3QgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBtb2JpbGUgfSkgPT4ge1xcbiAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogKDAsY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fW1xcXCJkZWZhdWx0XFxcIl0pKFxcXCJVc2VyTGlzdFxcXCIsIGNsYXNzTmFtZSwgeyBVc2VyTGlzdF9tb2JpbGU6IG1vYmlsZSB9KSB9LCB7IGNoaWxkcmVuOiBjaGlsZHJlbiB9KSwgdm9pZCAwKSk7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlkyOXRjRzl1Wlc1MGN5OVZjMlZ5VEdsemRDNTBjM2d1YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3UVVGQmVVSTdRVUZGUXp0QlFVTkdPMEZCVVdwQ0xFMUJRVTBzVVVGQlVTeEhRVUZITEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVVc1UwRkJVeXhGUVVGRkxFMUJRVTBzUlVGQmFVSXNSVUZCUlN4RlFVRkZPMGxCUTNwRkxFOUJRVThzUTBGRFRDdzRSVUZCU3l4VFFVRlRMRVZCUVVVc1owUkJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNVMEZCVXl4RlFVRkZMRVZCUVVVc1pVRkJaU3hGUVVGRkxFMUJRVTBzUlVGQlJTeERRVUZETEdkQ1FVTnlSU3hSUVVGUkxGbEJRMHdzUTBGRFVDeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJOdmJYQnZibVZ1ZEhNdlZYTmxja3hwYzNRdWRITjRQemhqTmpJaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElGd2lMaTlWYzJWeVRHbHpkQzV6WTNOelhDSTdYRzVjYm1sdGNHOXlkQ0JTWldGamRDQm1jbTl0SUZ3aWNtVmhZM1JjSWp0Y2JtbHRjRzl5ZENCamJITjRJR1p5YjIwZ1hDSmpiSE40WENJN1hHNWNiblI1Y0dVZ1ZYTmxja3hwYzNSUWNtOXdjeUE5SUh0Y2JpQWdZMmhwYkdSeVpXNDZJRkpsWVdOMExsSmxZV04wVG05a1pUdGNiaUFnWTJ4aGMzTk9ZVzFsUHpvZ2MzUnlhVzVuTzF4dUlDQnRiMkpwYkdVL09pQmliMjlzWldGdU8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRlZ6WlhKTWFYTjBJRDBnS0hzZ1kyaHBiR1J5Wlc0c0lHTnNZWE56VG1GdFpTd2diVzlpYVd4bElIMDZJRlZ6WlhKTWFYTjBVSEp2Y0hNcElEMCtJSHRjYmlBZ2NtVjBkWEp1SUNoY2JpQWdJQ0E4WkdsMklHTnNZWE56VG1GdFpUMTdZMnh6ZUNoY0lsVnpaWEpNYVhOMFhDSXNJR05zWVhOelRtRnRaU3dnZXlCVmMyVnlUR2x6ZEY5dGIySnBiR1U2SUcxdlltbHNaU0I5S1gwK1hHNGdJQ0FnSUNCN1kyaHBiR1J5Wlc1OVhHNGdJQ0FnUEM5a2FYWStYRzRnSUNrN1hHNTlPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9jb21wb25lbnRzL1VzZXJMaXN0LnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vY29tcG9uZW50cy9pY29ucy50c3hcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29tcG9uZW50cy9pY29ucy50c3ggKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImNyZWF0ZUljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBjcmVhdGVJY29uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJjaGVja0ljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBjaGVja0ljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImxpbmtcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBsaW5rKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJzYXZlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gc2F2ZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwic2F2ZUFzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gc2F2ZUFzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJsb2FkXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gbG9hZCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiY2xpcGJvYXJkXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY2xpcGJvYXJkKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJ0cmFzaFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHRyYXNoKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJwYWxldHRlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcGFsZXR0ZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZXhwb3J0RmlsZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGV4cG9ydEZpbGUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImV4cG9ydEltYWdlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZXhwb3J0SW1hZ2UpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImV4cG9ydFRvRmlsZUljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBleHBvcnRUb0ZpbGVJY29uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJ6b29tSW5cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB6b29tSW4pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInpvb21PdXRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB6b29tT3V0KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkb25lXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZG9uZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibWVudVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIG1lbnUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInVuZG9cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB1bmRvKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJyZWRvXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcmVkbyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicXVlc3Rpb25DaXJjbGVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBxdWVzdGlvbkNpcmNsZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwic2hhcmVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBzaGFyZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwic2hhcmVJT1NcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBzaGFyZUlPUyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwic2hhcmVXaW5kb3dzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gc2hhcmVXaW5kb3dzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJyZXNldFpvb21cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZXNldFpvb20pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkJyaW5nRm9yd2FyZEljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBCcmluZ0ZvcndhcmRJY29uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJTZW5kQmFja3dhcmRJY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gU2VuZEJhY2t3YXJkSWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiQnJpbmdUb0Zyb250SWNvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEJyaW5nVG9Gcm9udEljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlNlbmRUb0JhY2tJY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gU2VuZFRvQmFja0ljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkFsaWduVG9wSWNvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEFsaWduVG9wSWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiQWxpZ25Cb3R0b21JY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gQWxpZ25Cb3R0b21JY29uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJBbGlnbkxlZnRJY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gQWxpZ25MZWZ0SWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiQWxpZ25SaWdodEljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBBbGlnblJpZ2h0SWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiRGlzdHJpYnV0ZUhvcml6b250YWxseUljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBEaXN0cmlidXRlSG9yaXpvbnRhbGx5SWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiRGlzdHJpYnV0ZVZlcnRpY2FsbHlJY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRGlzdHJpYnV0ZVZlcnRpY2FsbHlJY29uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJDZW50ZXJWZXJ0aWNhbGx5SWNvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIENlbnRlclZlcnRpY2FsbHlJY29uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJDZW50ZXJIb3Jpem9udGFsbHlJY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gQ2VudGVySG9yaXpvbnRhbGx5SWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwidXNlcnNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB1c2VycyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwic3RhcnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBzdGFydCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwic3RvcFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHN0b3ApLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImNsb3NlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY2xvc2UpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImJhY2tcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBiYWNrKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJjbG9uZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGNsb25lKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJzaGllbGRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBzaGllbGQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImZpbGVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBmaWxlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJHcm91cEljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBHcm91cEljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlVuZ3JvdXBJY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gVW5ncm91cEljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkZpbGxIYWNodXJlSWNvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEZpbGxIYWNodXJlSWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiRmlsbENyb3NzSGF0Y2hJY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRmlsbENyb3NzSGF0Y2hJY29uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJGaWxsU29saWRJY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRmlsbFNvbGlkSWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiU3Ryb2tlV2lkdGhJY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gU3Ryb2tlV2lkdGhJY29uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJTdHJva2VTdHlsZVNvbGlkSWNvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFN0cm9rZVN0eWxlU29saWRJY29uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJTdHJva2VTdHlsZURhc2hlZEljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBTdHJva2VTdHlsZURhc2hlZEljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlN0cm9rZVN0eWxlRG90dGVkSWNvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFN0cm9rZVN0eWxlRG90dGVkSWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiU2xvcHBpbmVzc0FyY2hpdGVjdEljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBTbG9wcGluZXNzQXJjaGl0ZWN0SWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiU2xvcHBpbmVzc0FydGlzdEljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBTbG9wcGluZXNzQXJ0aXN0SWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiU2xvcHBpbmVzc0NhcnRvb25pc3RJY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gU2xvcHBpbmVzc0NhcnRvb25pc3RJY29uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJFZGdlU2hhcnBJY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRWRnZVNoYXJwSWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiRWRnZVJvdW5kSWNvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEVkZ2VSb3VuZEljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkFycm93aGVhZE5vbmVJY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gQXJyb3doZWFkTm9uZUljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkFycm93aGVhZEFycm93SWNvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEFycm93aGVhZEFycm93SWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiQXJyb3doZWFkRG90SWNvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEFycm93aGVhZERvdEljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkFycm93aGVhZEJhckljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBBcnJvd2hlYWRCYXJJY29uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJBcnJvd2hlYWRUcmlhbmdsZUljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBBcnJvd2hlYWRUcmlhbmdsZUljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkZvbnRTaXplU21hbGxJY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRm9udFNpemVTbWFsbEljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkZvbnRTaXplTWVkaXVtSWNvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEZvbnRTaXplTWVkaXVtSWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiRm9udFNpemVMYXJnZUljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBGb250U2l6ZUxhcmdlSWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiRm9udFNpemVFeHRyYUxhcmdlSWNvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEZvbnRTaXplRXh0cmFMYXJnZUljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkZvbnRGYW1pbHlIYW5kRHJhd25JY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRm9udEZhbWlseUhhbmREcmF3bkljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkZvbnRGYW1pbHlOb3JtYWxJY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRm9udEZhbWlseU5vcm1hbEljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkZvbnRGYW1pbHlDb2RlSWNvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEZvbnRGYW1pbHlDb2RlSWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiVGV4dEFsaWduTGVmdEljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBUZXh0QWxpZ25MZWZ0SWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiVGV4dEFsaWduQ2VudGVySWNvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFRleHRBbGlnbkNlbnRlckljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlRleHRBbGlnblJpZ2h0SWNvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFRleHRBbGlnblJpZ2h0SWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicHVibGlzaEljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBwdWJsaXNoSWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZWRpdEljb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBlZGl0SWNvbilcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0L2pzeC1ydW50aW1lICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0ICovIFxcXCJyZWFjdFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBvcGVuLWNvbG9yICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvb3Blbi1jb2xvci9vcGVuLWNvbG9yLmpzb25cXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgY2xzeCAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nsc3gvZGlzdC9jbHN4Lm0uanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29uc3RhbnRzICovIFxcXCIuLi8uLi9jb25zdGFudHMudHNcXFwiKTtcXG5cXG4vL1xcbi8vIEFsbCBpY29ucyBhcmUgaW1wb3J0ZWQgZnJvbSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9pY29ucz9kPWdhbGxlcnlcXG4vLyBJY29ucyBhcmUgdW5kZXIgdGhlIGxpY2Vuc2UgaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZVxcbi8vXFxuLy8gTm90ZTogd2hlbiBhZGRpbmcgbmV3IGljb25zLCByZXZpZXcgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Nb3ppbGxhL0RldmVsb3Blcl9ndWlkZS9SVExfR3VpZGVsaW5lc1xcbi8vIHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0aGUgaWNvbnMgc2hvdWxkIGJlIG1pcnJvcmVkIGluIHJpZ2h0LXRvLWxlZnQgbGFuZ3VhZ2VzLlxcblxcblxcblxcblxcbmNvbnN0IGFjdGl2ZUVsZW1lbnRDb2xvciA9ICh0aGVtZSkgPT4gdGhlbWUgPT09IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5USEVNRS5MSUdIVCA/IG9wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5vcmFuZ2VbNF0gOiBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ub3JhbmdlWzldO1xcbmNvbnN0IGljb25GaWxsQ29sb3IgPSAodGhlbWUpID0+IFxcXCJ2YXIoLS1pY29uLWZpbGwtY29sb3IpXFxcIjtcXG5jb25zdCBoYW5kbGVyQ29sb3IgPSAodGhlbWUpID0+IHRoZW1lID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uVEhFTUUuTElHSFQgPyBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ud2hpdGUgOiBcXFwiIzFlMWUxZVxcXCI7XFxuY29uc3QgY3JlYXRlSWNvbiA9IChkLCBvcHRzID0gNTEyKSA9PiB7XFxuICAgIGNvbnN0IHsgd2lkdGggPSA1MTIsIGhlaWdodCA9IHdpZHRoLCBtaXJyb3IsIHN0eWxlLCB9ID0gdHlwZW9mIG9wdHMgPT09IFxcXCJudW1iZXJcXFwiID8geyB3aWR0aDogb3B0cyB9IDogb3B0cztcXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInN2Z1xcXCIsIE9iamVjdC5hc3NpZ24oeyBcXFwiYXJpYS1oaWRkZW5cXFwiOiBcXFwidHJ1ZVxcXCIsIGZvY3VzYWJsZTogXFxcImZhbHNlXFxcIiwgcm9sZTogXFxcImltZ1xcXCIsIHZpZXdCb3g6IGAwIDAgJHt3aWR0aH0gJHtoZWlnaHR9YCwgY2xhc3NOYW1lOiAoMCxjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bXFxcImRlZmF1bHRcXFwiXSkoeyBcXFwicnRsLW1pcnJvclxcXCI6IG1pcnJvciB9KSwgc3R5bGU6IHN0eWxlIH0sIHsgY2hpbGRyZW46IHR5cGVvZiBkID09PSBcXFwic3RyaW5nXFxcIiA/ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZmlsbDogXFxcImN1cnJlbnRDb2xvclxcXCIsIGQ6IGQgfSwgdm9pZCAwKSA6IGQgfSksIHZvaWQgMCkpO1xcbn07XFxuY29uc3QgY2hlY2tJY29uID0gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBvbHlsaW5lXFxcIiwgeyBmaWxsOiBcXFwibm9uZVxcXCIsIHN0cm9rZTogXFxcImN1cnJlbnRDb2xvclxcXCIsIHBvaW50czogXFxcIjIwIDYgOSAxNyA0IDEyXFxcIiB9LCB2b2lkIDApLCB7XFxuICAgIHdpZHRoOiAyNCxcXG4gICAgaGVpZ2h0OiAyNCxcXG59KTtcXG5jb25zdCBsaW5rID0gY3JlYXRlSWNvbihcXFwiTTMyNi42MTIgMTg1LjM5MWM1OS43NDcgNTkuODA5IDU4LjkyNyAxNTUuNjk4LjM2IDIxNC41OS0uMTEuMTItLjI0LjI1LS4zNi4zN2wtNjcuMiA2Ny4yYy01OS4yNyA1OS4yNy0xNTUuNjk5IDU5LjI2Mi0yMTQuOTYgMC01OS4yNy01OS4yNi01OS4yNy0xNTUuNyAwLTIxNC45NmwzNy4xMDYtMzcuMTA2YzkuODQtOS44NCAyNi43ODYtMy4zIDI3LjI5NCAxMC42MDYuNjQ4IDE3LjcyMiAzLjgyNiAzNS41MjcgOS42OSA1Mi43MjEgMS45ODYgNS44MjIuNTY3IDEyLjI2Mi0zLjc4MyAxNi42MTJsLTEzLjA4NyAxMy4wODdjLTI4LjAyNiAyOC4wMjYtMjguOTA1IDczLjY2LTEuMTU1IDEwMS45NiAyOC4wMjQgMjguNTc5IDc0LjA4NiAyOC43NDkgMTAyLjMyNS41MWw2Ny4yLTY3LjE5YzI4LjE5MS0yOC4xOTEgMjguMDczLTczLjc1NyAwLTEwMS44My0zLjcwMS0zLjY5NC03LjQyOS02LjU2NC0xMC4zNDEtOC41NjlhMTYuMDM3IDE2LjAzNyAwIDAgMS02Ljk0Ny0xMi42MDZjLS4zOTYtMTAuNTY3IDMuMzQ4LTIxLjQ1NiAxMS42OTgtMjkuODA2bDIxLjA1NC0yMS4wNTVjNS41MjEtNS41MjEgMTQuMTgyLTYuMTk5IDIwLjU4NC0xLjczMWExNTIuNDgyIDE1Mi40ODIgMCAwIDEgMjAuNTIyIDE3LjE5N3pNNDY3LjU0NyA0NC40NDljLTU5LjI2MS01OS4yNjItMTU1LjY5LTU5LjI3LTIxNC45NiAwbC02Ny4yIDY3LjJjLS4xMi4xMi0uMjUuMjUtLjM2LjM3LTU4LjU2NiA1OC44OTItNTkuMzg3IDE1NC43ODEuMzYgMjE0LjU5YTE1Mi40NTQgMTUyLjQ1NCAwIDAgMCAyMC41MjEgMTcuMTk2YzYuNDAyIDQuNDY4IDE1LjA2NCAzLjc4OSAyMC41ODQtMS43MzFsMjEuMDU0LTIxLjA1NWM4LjM1LTguMzUgMTIuMDk0LTE5LjIzOSAxMS42OTgtMjkuODA2YTE2LjAzNyAxNi4wMzcgMCAwIDAtNi45NDctMTIuNjA2Yy0yLjkxMi0yLjAwNS02LjY0LTQuODc1LTEwLjM0MS04LjU2OS0yOC4wNzMtMjguMDczLTI4LjE5MS03My42MzkgMC0xMDEuODNsNjcuMi02Ny4xOWMyOC4yMzktMjguMjM5IDc0LjMtMjguMDY5IDEwMi4zMjUuNTEgMjcuNzUgMjguMyAyNi44NzIgNzMuOTM0LTEuMTU1IDEwMS45NmwtMTMuMDg3IDEzLjA4N2MtNC4zNSA0LjM1LTUuNzY5IDEwLjc5LTMuNzgzIDE2LjYxMiA1Ljg2NCAxNy4xOTQgOS4wNDIgMzQuOTk5IDkuNjkgNTIuNzIxLjUwOSAxMy45MDYgMTcuNDU0IDIwLjQ0NiAyNy4yOTQgMTAuNjA2bDM3LjEwNi0zNy4xMDZjNTkuMjcxLTU5LjI1OSA1OS4yNzEtMTU1LjY5OS4wMDEtMjE0Ljk1OXpcXFwiLCB7IG1pcnJvcjogdHJ1ZSB9KTtcXG5jb25zdCBzYXZlID0gY3JlYXRlSWNvbihcXFwiTTQzMy45NDEgMTI5Ljk0MWwtODMuODgyLTgzLjg4MkE0OCA0OCAwIDAgMCAzMTYuMTE4IDMySDQ4QzIxLjQ5IDMyIDAgNTMuNDkgMCA4MHYzNTJjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgzNTJjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYxNjMuODgyYTQ4IDQ4IDAgMCAwLTE0LjA1OS0zMy45NDF6TTIyNCA0MTZjLTM1LjM0NiAwLTY0LTI4LjY1NC02NC02NCAwLTM1LjM0NiAyOC42NTQtNjQgNjQtNjRzNjQgMjguNjU0IDY0IDY0YzAgMzUuMzQ2LTI4LjY1NCA2NC02NCA2NHptOTYtMzA0LjUyVjIxMmMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDc2Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEyVjEwOGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDIyOC41MmMzLjE4MyAwIDYuMjM1IDEuMjY0IDguNDg1IDMuNTE1bDMuNDggMy40OEExMS45OTYgMTEuOTk2IDAgMCAxIDMyMCAxMTEuNDh6XFxcIiwgeyB3aWR0aDogNDQ4LCBoZWlnaHQ6IDUxMiB9KTtcXG5jb25zdCBzYXZlQXMgPSBjcmVhdGVJY29uKFxcXCJNMjUyIDU0TDIwMyA4YTI4IDI3IDAgMDAtMjAtOEgyOEMxMiAwIDAgMTIgMCAyN3YxOTVjMCAxNSAxMiAyNiAyOCAyNmgyMDRjMTUgMCAyOC0xMSAyOC0yNlY3M2EyOCAyNyAwIDAwLTgtMTl6TTEzMCAyMTNjLTIxIDAtMzctMTYtMzctMzYgMC0xOSAxNi0zNSAzNy0zNSAyMCAwIDM3IDE2IDM3IDM1IDAgMjAtMTcgMzYtMzcgMzZ6bTU2LTE2OXY1NmMwIDQtNCA2LTcgNkg0NGMtNCAwLTctMi03LTZWNDJjMC00IDMtNyA3LTdoMTMzbDQgMiAzIDJhNyA3IDAgMDEyIDV6IE0yOTYgMjAxbDg3IDk1LTE4OCAyMDUtNzggOWMtMTAgMS0xOS04LTE4LTIwbDktODR6bTE0MS0xNGwtNDEtNDRhMzEgMzEgMCAwMC00NiAwbC0zOCA0MSA4NyA5NSAzOC00MmMxMy0xNCAxMy0zNiAwLTUwelxcXCIsIHsgd2lkdGg6IDQ0OCwgaGVpZ2h0OiA1MTIgfSk7XFxuY29uc3QgbG9hZCA9IGNyZWF0ZUljb24oXFxcIk01NzIuNjk0IDI5Mi4wOTNMNTAwLjI3IDQxNi4yNDhBNjMuOTk3IDYzLjk5NyAwIDAgMSA0NDQuOTg5IDQ0OEg0NS4wMjVjLTE4LjUyMyAwLTMwLjA2NC0yMC4wOTMtMjAuNzMxLTM2LjA5M2w3Mi40MjQtMTI0LjE1NUE2NCA2NCAwIDAgMSAxNTIgMjU2aDM5OS45NjRjMTguNTIzIDAgMzAuMDY0IDIwLjA5MyAyMC43MyAzNi4wOTN6TTE1MiAyMjRoMzI4di00OGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4SDI3MmwtNjQtNjRINDhDMjEuNDkgNjQgMCA4NS40OSAwIDExMnYyNzguMDQ2bDY5LjA3Ny0xMTguNDE4Qzg2LjIxNCAyNDIuMjUgMTE3Ljk4OSAyMjQgMTUyIDIyNHpcXFwiLCB7IHdpZHRoOiA1NzYsIGhlaWdodDogNTEyLCBtaXJyb3I6IHRydWUgfSk7XFxuY29uc3QgY2xpcGJvYXJkID0gY3JlYXRlSWNvbihcXFwiTTM4NCAxMTJ2MzUyYzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMTEyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoODBjMC0zNS4yOSAyOC43MS02NCA2NC02NHM2NCAyOC43MSA2NCA2NGg4MGMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4ek0xOTIgNDBjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHMxMC43NDUgMjQgMjQgMjQgMjQtMTAuNzQ1IDI0LTI0LTEwLjc0NS0yNC0yNC0yNG05NiAxMTR2LTIwYTYgNiAwIDAgMC02LTZIMTAyYTYgNiAwIDAgMC02IDZ2MjBhNiA2IDAgMCAwIDYgNmgxODBhNiA2IDAgMCAwIDYtNnpcXFwiLCB7IHdpZHRoOiAzODQsIGhlaWdodDogNTEyIH0pO1xcbmNvbnN0IHRyYXNoID0gY3JlYXRlSWNvbihcXFwiTTMyIDQ2NGE0OCA0OCAwIDAgMCA0OCA0OGgyODhhNDggNDggMCAwIDAgNDgtNDhWMTI4SDMyem0yNzItMjU2YTE2IDE2IDAgMCAxIDMyIDB2MjI0YTE2IDE2IDAgMCAxLTMyIDB6bS05NiAwYTE2IDE2IDAgMCAxIDMyIDB2MjI0YTE2IDE2IDAgMCAxLTMyIDB6bS05NiAwYTE2IDE2IDAgMCAxIDMyIDB2MjI0YTE2IDE2IDAgMCAxLTMyIDB6TTQzMiAzMkgzMTJsLTkuNC0xOC43QTI0IDI0IDAgMCAwIDI4MS4xIDBIMTY2LjhhMjMuNzIgMjMuNzIgMCAwIDAtMjEuNCAxMy4zTDEzNiAzMkgxNkExNiAxNiAwIDAgMCAwIDQ4djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcXFwiLCB7IHdpZHRoOiA0NDgsIGhlaWdodDogNTEyIH0pO1xcbmNvbnN0IHBhbGV0dGUgPSBjcmVhdGVJY29uKFxcXCJNMjA0LjMgNUMxMDQuOSAyNC40IDI0LjggMTA0LjMgNS4yIDIwMy40Yy0zNyAxODcgMTMxLjcgMzI2LjQgMjU4LjggMzA2LjcgNDEuMi02LjQgNjEuNC01NC42IDQyLjUtOTEuNy0yMy4xLTQ1LjQgOS45LTk4LjQgNjAuOS05OC40aDc5LjdjMzUuOCAwIDY0LjgtMjkuNiA2NC45LTY1LjNDNTExLjUgOTcuMSAzNjguMS0yNi45IDIwNC4zIDV6TTk2IDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTMyLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTEyOC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTEyOCA2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XFxcIik7XFxuY29uc3QgZXhwb3J0RmlsZSA9IGNyZWF0ZUljb24oXFxcIk0zODQgMTIxLjljMC02LjMtMi41LTEyLjQtNy0xNi45TDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh6TTU3MSAzMDhsLTk1LjctOTYuNGMtMTAuMS0xMC4xLTI3LjQtMy0yNy40IDExLjNWMjg4aC02NHY2NGg2NHY2NS4yYzAgMTQuMyAxNy4zIDIxLjQgMjcuNCAxMS4zTDU3MSAzMzJjNi42LTYuNiA2LjYtMTcuNCAwLTI0em0tMzc5IDI4di0zMmMwLTguOCA3LjItMTYgMTYtMTZoMTc2VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0VjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMzUySDIwOGMtOC44IDAtMTYtNy4yLTE2LTE2elxcXCIsIHsgd2lkdGg6IDU3NiwgaGVpZ2h0OiA1MTIsIG1pcnJvcjogdHJ1ZSB9KTtcXG5jb25zdCBleHBvcnRJbWFnZSA9IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTU3MSAzMDhsLTk1LjctOTYuNGMtMTAuMS0xMC4xLTI3LjQtMy0yNy40IDExLjNWMjg4aC02NHY2NGg2NHY2NS4yYzAgMTQuMyAxNy4zIDIxLjQgMjcuNCAxMS4zTDU3MSAzMzJjNi42LTYuNiA2LjYtMTcuNCAwLTI0em0tMTg3IDQ0di02NCA2NHpcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0zODQgMTIxLjk0MVYxMjhIMjU2VjBoNi4wNTljNi4zNjIgMCAxMi40NzEgMi41MyAxNi45NyA3LjAyOWw5Ny45NDEgOTcuOTQxYTI0LjAxIDI0LjAxIDAgMDE3LjAzIDE2Ljk3MXpNMjQ4IDE2MGMtMTMuMiAwLTI0LTEwLjgtMjQtMjRWMEgyNEMxMC43NDUgMCAwIDEwLjc0NSAwIDI0djQ2NGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMzM2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYxNjBIMjQ4em0tMTM1LjQ1NSAxNmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4cy0yMS40OSA0OC00OCA0OC00OC0yMS40OS00OC00OCAyMS40OTEtNDggNDgtNDh6bTIwOCAyNDBoLTI1NmwuNDg1LTQ4LjQ4NUwxMDQuNTQ1IDMyOGM0LjY4Ni00LjY4NiAxMS43OTktNC4yMDEgMTYuNDg1LjQ4NUwxNjAuNTQ1IDM2OCAyNjQuMDYgMjY0LjQ4NWM0LjY4Ni00LjY4NiAxMi4yODQtNC42ODYgMTYuOTcxIDBMMzIwLjU0NSAzMDR2MTEyelxcXCIgfSwgdm9pZCAwKV0gfSwgdm9pZCAwKSwgeyB3aWR0aDogNTc2LCBoZWlnaHQ6IDUxMiwgbWlycm9yOiB0cnVlIH0pO1xcbmNvbnN0IGV4cG9ydFRvRmlsZUljb24gPSBjcmVhdGVJY29uKFxcXCJNMjE2IDBoODBjMTMuMyAwIDI0IDEwLjcgMjQgMjR2MTY4aDg3LjdjMTcuOCAwIDI2LjcgMjEuNSAxNC4xIDM0LjFMMjY5LjcgMzc4LjNjLTcuNSA3LjUtMTkuOCA3LjUtMjcuMyAwTDkwLjEgMjI2LjFjLTEyLjYtMTIuNi0zLjctMzQuMSAxNC4xLTM0LjFIMTkyVjI0YzAtMTMuMyAxMC43LTI0IDI0LTI0em0yOTYgMzc2djExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNEgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMzc2YzAtMTMuMyAxMC43LTI0IDI0LTI0aDE0Ni43bDQ5IDQ5YzIwLjEgMjAuMSA1Mi41IDIwLjEgNzIuNiAwbDQ5LTQ5SDQ4OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHptLTEyNCA4OGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjAgOSAyMCAyMCAyMCAyMC05IDIwLTIwem02NCAwYzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMCA5IDIwIDIwIDIwIDIwLTkgMjAtMjB6XFxcIiwgeyB3aWR0aDogNTEyLCBoZWlnaHQ6IDUxMiB9KTtcXG5jb25zdCB6b29tSW4gPSBjcmVhdGVJY29uKFxcXCJNNDE2IDIwOEgyNzJWNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTQ0SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTQ0djE0NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzA0aDE0NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelxcXCIsIHsgd2lkdGg6IDQ0OCwgaGVpZ2h0OiA1MTIgfSk7XFxuY29uc3Qgem9vbU91dCA9IGNyZWF0ZUljb24oXFxcIk00MTYgMjA4SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzg0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XFxcIiwgeyB3aWR0aDogNDQ4LCBoZWlnaHQ6IDUxMiB9KTtcXG5jb25zdCBkb25lID0gY3JlYXRlSWNvbihcXFwiTTE3My44OTggNDM5LjQwNGwtMTY2LjQtMTY2LjRjLTkuOTk3LTkuOTk3LTkuOTk3LTI2LjIwNiAwLTM2LjIwNGwzNi4yMDMtMzYuMjA0YzkuOTk3LTkuOTk4IDI2LjIwNy05Ljk5OCAzNi4yMDQgMEwxOTIgMzEyLjY5IDQzMi4wOTUgNzIuNTk2YzkuOTk3LTkuOTk3IDI2LjIwNy05Ljk5NyAzNi4yMDQgMGwzNi4yMDMgMzYuMjA0YzkuOTk3IDkuOTk3IDkuOTk3IDI2LjIwNiAwIDM2LjIwNGwtMjk0LjQgMjk0LjQwMWMtOS45OTggOS45OTctMjYuMjA3IDkuOTk3LTM2LjIwNC0uMDAxelxcXCIpO1xcbmNvbnN0IG1lbnUgPSBjcmVhdGVJY29uKFxcXCJNMTYgMTMyaDQxNmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2Vjc2YzAtOC44MzctNy4xNjMtMTYtMTYtMTZIMTZDNy4xNjMgNjAgMCA2Ny4xNjMgMCA3NnY0MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2em0wIDE2MGg0MTZjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtNDBjMC04LjgzNy03LjE2My0xNi0xNi0xNkgxNmMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnY0MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2em0wIDE2MGg0MTZjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtNDBjMC04LjgzNy03LjE2My0xNi0xNi0xNkgxNmMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnY0MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2elxcXCIpO1xcbmNvbnN0IHVuZG8gPSBjcmVhdGVJY29uKFxcXCJNMjU1LjU0NSA4Yy02Ni4yNjkuMTE5LTEyNi40MzggMjYuMjMzLTE3MC44NiA2OC42ODVMNDguOTcxIDQwLjk3MUMzMy44NTEgMjUuODUxIDggMzYuNTU5IDggNTcuOTQxVjE5MmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTM0LjA1OWMyMS4zODIgMCAzMi4wOS0yNS44NTEgMTYuOTcxLTQwLjk3MWwtNDEuNzUtNDEuNzVjMzAuODY0LTI4Ljg5OSA3MC44MDEtNDQuOTA3IDExMy4yMy00NS4yNzMgOTIuMzk4LS43OTggMTcwLjI4MyA3My45NzcgMTY5LjQ4NCAxNjkuNDQyQzQyMy4yMzYgMzQ4LjAwOSAzNDkuODE2IDQyNCAyNTYgNDI0Yy00MS4xMjcgMC03OS45OTctMTQuNjc4LTExMC42My00MS41NTYtNC43NDMtNC4xNjEtMTEuOTA2LTMuOTA4LTE2LjM2OC41NTNMODkuMzQgNDIyLjY1OWMtNC44NzIgNC44NzItNC42MzEgMTIuODE1LjQ4MiAxNy40MzNDMTMzLjc5OCA0NzkuODEzIDE5Mi4wNzQgNTA0IDI1NiA1MDRjMTM2Ljk2NiAwIDI0Ny45OTktMTExLjAzMyAyNDgtMjQ3Ljk5OEM1MDQuMDAxIDExOS4xOTMgMzkyLjM1NCA3Ljc1NSAyNTUuNTQ1IDh6XFxcIiwgeyBtaXJyb3I6IHRydWUgfSk7XFxuY29uc3QgcmVkbyA9IGNyZWF0ZUljb24oXFxcIk0yNTYuNDU1IDhjNjYuMjY5LjExOSAxMjYuNDM3IDI2LjIzMyAxNzAuODU5IDY4LjY4NWwzNS43MTUtMzUuNzE1QzQ3OC4xNDkgMjUuODUxIDUwNCAzNi41NTkgNTA0IDU3Ljk0MVYxOTJjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0SDM0NS45NDFjLTIxLjM4MiAwLTMyLjA5LTI1Ljg1MS0xNi45NzEtNDAuOTcxbDQxLjc1LTQxLjc1Yy0zMC44NjQtMjguODk5LTcwLjgwMS00NC45MDctMTEzLjIzLTQ1LjI3My05Mi4zOTgtLjc5OC0xNzAuMjgzIDczLjk3Ny0xNjkuNDg0IDE2OS40NDJDODguNzY0IDM0OC4wMDkgMTYyLjE4NCA0MjQgMjU2IDQyNGM0MS4xMjcgMCA3OS45OTctMTQuNjc4IDExMC42MjktNDEuNTU2IDQuNzQzLTQuMTYxIDExLjkwNi0zLjkwOCAxNi4zNjguNTUzbDM5LjY2MiAzOS42NjJjNC44NzIgNC44NzIgNC42MzEgMTIuODE1LS40ODIgMTcuNDMzQzM3OC4yMDIgNDc5LjgxMyAzMTkuOTI2IDUwNCAyNTYgNTA0IDExOS4wMzQgNTA0IDguMDAxIDM5Mi45NjcgOCAyNTYuMDAyIDcuOTk5IDExOS4xOTMgMTE5LjY0NiA3Ljc1NSAyNTYuNDU1IDh6XFxcIiwgeyBtaXJyb3I6IHRydWUgfSk7XFxuY29uc3QgcXVlc3Rpb25DaXJjbGUgPSBjcmVhdGVJY29uKFxcXCJNNTA0IDI1NmMwIDEzNi45OTctMTExLjA0MyAyNDgtMjQ4IDI0OFM4IDM5Mi45OTcgOCAyNTZDOCAxMTkuMDgzIDExOS4wNDMgOCAyNTYgOHMyNDggMTExLjA4MyAyNDggMjQ4ek0yNjIuNjU1IDkwYy01NC40OTcgMC04OS4yNTUgMjIuOTU3LTExNi41NDkgNjMuNzU4LTMuNTM2IDUuMjg2LTIuMzUzIDEyLjQxNSAyLjcxNSAxNi4yNThsMzQuNjk5IDI2LjMxYzUuMjA1IDMuOTQ3IDEyLjYyMSAzLjAwOCAxNi42NjUtMi4xMjIgMTcuODY0LTIyLjY1OCAzMC4xMTMtMzUuNzk3IDU3LjMwMy0zNS43OTcgMjAuNDI5IDAgNDUuNjk4IDEzLjE0OCA0NS42OTggMzIuOTU4IDAgMTQuOTc2LTEyLjM2MyAyMi42NjctMzIuNTM0IDMzLjk3NkMyNDcuMTI4IDIzOC41MjggMjE2IDI1NC45NDEgMjE2IDI5NnY0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNTZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtMS4zMzNjMC0yOC40NjIgODMuMTg2LTI5LjY0NyA4My4xODYtMTA2LjY2NyAwLTU4LjAwMi02MC4xNjUtMTAyLTExNi41MzEtMTAyek0yNTYgMzM4Yy0yNS4zNjUgMC00NiAyMC42MzUtNDYgNDYgMCAyNS4zNjQgMjAuNjM1IDQ2IDQ2IDQ2czQ2LTIwLjYzNiA0Ni00NmMwLTI1LjM2NS0yMC42MzUtNDYtNDYtNDZ6XFxcIiwgeyBtaXJyb3I6IHRydWUgfSk7XFxuY29uc3Qgc2hhcmUgPSBjcmVhdGVJY29uKFxcXCJNMTggMTYuMDhjLS43NiAwLTEuNDQuMy0xLjk2Ljc3TDguOTEgMTIuN2MuMDUtLjIzLjA5LS40Ni4wOS0uN3MtLjA0LS40Ny0uMDktLjdsNy4wNS00LjExYy41NC41IDEuMjUuODEgMi4wNC44MSAxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtMy0zIDEuMzQtMyAzYzAgLjI0LjA0LjQ3LjA5LjdMOC4wNCA5LjgxQzcuNSA5LjMxIDYuNzkgOSA2IDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDNjLjc5IDAgMS41LS4zMSAyLjA0LS44MWw3LjEyIDQuMTZjLS4wNS4yMS0uMDguNDMtLjA4LjY1IDAgMS42MSAxLjMxIDIuOTIgMi45MiAyLjkyIDEuNjEgMCAyLjkyLTEuMzEgMi45Mi0yLjkycy0xLjMxLTIuOTItMi45Mi0yLjkyelxcXCIsIHsgd2lkdGg6IDI0LCBoZWlnaHQ6IDI0IH0pO1xcbmNvbnN0IHNoYXJlSU9TID0gY3JlYXRlSWNvbihcXFwiTTE2IDVsLTEuNDIgMS40Mi0xLjU5LTEuNTlWMTZoLTEuOThWNC44M0w5LjQyIDYuNDIgOCA1bDQtNCA0IDR6bTQgNXYxMWMwIDEuMS0uOSAyLTIgMkg2Yy0xLjExIDAtMi0uOS0yLTJWMTBjMC0xLjExLjg5LTIgMi0yaDN2Mkg2djExaDEyVjEwaC0zVjhoM2MxLjEgMCAyIC44OSAyIDJ6XFxcIiwgeyB3aWR0aDogMjQsIGhlaWdodDogMjQgfSk7XFxuY29uc3Qgc2hhcmVXaW5kb3dzID0gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IHN0cm9rZTogXFxcImN1cnJlbnRDb2xvclxcXCIsIGZpbGw6IFxcXCJjdXJyZW50Q29sb3JcXFwiLCBkOiBcXFwiTTQwIDUuNnY2LjFsLTQuMS43Yy04LjkgMS40LTE2LjUgNi45LTIwLjYgMTVDMTMgMzIgMTAuOSA0MyAxMi40IDQzYy40IDAgMi40LTEuMyA0LjQtMyA1LTMuOSAxMi4xLTcgMTguMi03LjdsNS0uNnYxMi44bDExLjItMTEuM0w2Mi41IDIyIDUxLjIgMTAuOCA0MC0uNXY2LjF6bTEwLjIgMjIuNkw0NCAzNC41di02LjhsLTYuOS42Yy0zLjkuMy05LjggMS43LTEzLjIgMy4xLTMuNSAxLjQtNi41IDIuNC02LjcgMi4yLS45LTEgMy03LjUgNi40LTEwLjhDMjggMTguNiAzNC40IDE2IDQwLjEgMTZjMy43IDAgMy45LS4xIDMuOS0zLjJWOS41bDYuMiA2LjMgNi4zIDYuMi02LjMgNi4yelxcXCIgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBzdHJva2U6IFxcXCJjdXJyZW50Q29sb3JcXFwiLCBmaWxsOiBcXFwiY3VycmVudENvbG9yXFxcIiwgZDogXFxcIk0wIDM2djIwaDQ4di02LjJjMC02IDAtNi4xLTItNC4zLTEuMSAxLTIgMi45LTIgNC4yVjUySDRWMzRjMC0xNy4zLS4xLTE4LTItMThzLTIgLjctMiAyMHpcXFwiIH0sIHZvaWQgMCldIH0sIHZvaWQgMCksIHsgd2lkdGg6IDY0LCBoZWlnaHQ6IDY0IH0pO1xcbi8vIEljb24gaW1wb3J0ZWQgZm9ybSBTdG9yeWJvb2tcXG4vLyBTdG9yeWJvb2sgaXMgbGljZW5zZWQgdW5kZXIgTUlUIGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9yeWJvb2tqcy9zdG9yeWJvb2svYmxvYi9uZXh0L0xJQ0VOU0VcXG5jb25zdCByZXNldFpvb20gPSBjcmVhdGVJY29uKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgc3Ryb2tlOiBcXFwiY3VycmVudENvbG9yXFxcIiwgc3Ryb2tlV2lkdGg6IFxcXCI0MFxcXCIsIGZpbGw6IFxcXCJjdXJyZW50Q29sb3JcXFwiLCBkOiBcXFwiTTE0OCA1NjBhMzE4IDMxOCAwIDAgMCA1MjIgMTEwIDMxNiAzMTYgMCAwIDAgMC00NTAgMzE2IDMxNiAwIDAgMC00NTAgMGMtMTEgMTEtMjEgMjItMzAgMzR2NGg0N2MyNSAwIDQ2IDIxIDQ2IDQ2cy0yMSA0NS00NiA0NUg5MGMtMTMgMC0yNS02LTMzLTE0LTktOS0xNC0yMC0xNC0zM1YxNTZjMC0yNSAyMC00NSA0NS00NXM0NSAyMCA0NSA0NXYzMmwxIDFhNDAxIDQwMSAwIDAgMSA2MjMgNTA5bDIxMiAyMTJhNDIgNDIgMCAwIDEtNTkgNTlMNjk4IDc1N0E0MDEgNDAxIDAgMCAxIDY1IDU3MGE0MiA0MiAwIDAgMSA4My0xMHpcXFwiIH0sIHZvaWQgMCksIHsgd2lkdGg6IDEwMjQgfSk7XFxuY29uc3QgQnJpbmdGb3J3YXJkSWNvbiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLm1lbW8oKHsgdGhlbWUgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNMjIgOS41NTZDMjIgOC42OTYgMjEuMzAzIDggMjAuNDQ0IDhIMTZ2OEg4djQuNDQ0QzggMjEuMzA0IDguNjk3IDIyIDkuNTU2IDIyaDEwLjg4OGMuODYgMCAxLjU1Ni0uNjk3IDEuNTU2LTEuNTU2VjkuNTU2elxcXCIsIGZpbGw6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2U6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogXFxcIjJcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0xNiAzLjU1NkMxNiAyLjY5NiAxNS4zMDMgMiAxNC40NDQgMkgzLjU1NkMyLjY5NiAyIDIgMi42OTcgMiAzLjU1NnYxMC44ODhDMiAxNS4zMDQgMi42OTcgMTYgMy41NTYgMTZoMTAuODg4Yy44NiAwIDEuNTU2LS42OTcgMS41NTYtMS41NTZWMy41NTZ6XFxcIiwgZmlsbDogYWN0aXZlRWxlbWVudENvbG9yKHRoZW1lKSwgc3Ryb2tlOiBhY3RpdmVFbGVtZW50Q29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogXFxcIjJcXFwiIH0sIHZvaWQgMCldIH0sIHZvaWQgMCksIHsgd2lkdGg6IDI0LCBtaXJyb3I6IHRydWUgfSkpO1xcbmNvbnN0IFNlbmRCYWNrd2FyZEljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lIH0pID0+IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTE2IDMuNTU2QzE2IDIuNjk2IDE1LjMwMyAyIDE0LjQ0NCAySDMuNTU2QzIuNjk2IDIgMiAyLjY5NyAyIDMuNTU2djEwLjg4OEMyIDE1LjMwNCAyLjY5NyAxNiAzLjU1NiAxNmgxMC44ODhjLjg2IDAgMS41NTYtLjY5NyAxLjU1Ni0xLjU1NlYzLjU1NnpcXFwiLCBmaWxsOiBhY3RpdmVFbGVtZW50Q29sb3IodGhlbWUpLCBzdHJva2U6IGFjdGl2ZUVsZW1lbnRDb2xvcih0aGVtZSksIHN0cm9rZVdpZHRoOiBcXFwiMlxcXCIgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTIyIDkuNTU2QzIyIDguNjk2IDIxLjMwMyA4IDIwLjQ0NCA4SDkuNTU2QzguNjk2IDggOCA4LjY5NyA4IDkuNTU2djEwLjg4OEM4IDIxLjMwNCA4LjY5NyAyMiA5LjU1NiAyMmgxMC44ODhjLjg2IDAgMS41NTYtLjY5NyAxLjU1Ni0xLjU1NlY5LjU1NnpcXFwiLCBmaWxsOiBpY29uRmlsbENvbG9yKHRoZW1lKSwgc3Ryb2tlOiBpY29uRmlsbENvbG9yKHRoZW1lKSwgc3Ryb2tlV2lkdGg6IFxcXCIyXFxcIiB9LCB2b2lkIDApXSB9LCB2b2lkIDApLCB7IHdpZHRoOiAyNCwgbWlycm9yOiB0cnVlIH0pKTtcXG5jb25zdCBCcmluZ1RvRnJvbnRJY29uID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkubWVtbygoeyB0aGVtZSB9KSA9PiBjcmVhdGVJY29uKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykocmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GcmFnbWVudCwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0xMyAyMWExIDEgMCAwMDEgMWg3YTEgMSAwIDAwMS0xdi03YTEgMSAwIDAwLTEtMWgtM3Y1aC01djN6TTExIDNhMSAxIDAgMDAtMS0xSDNhMSAxIDAgMDAtMSAxdjdhMSAxIDAgMDAxIDFoM1Y2aDVWM3pcXFwiLCBmaWxsOiBpY29uRmlsbENvbG9yKHRoZW1lKSwgc3Ryb2tlOiBpY29uRmlsbENvbG9yKHRoZW1lKSwgc3Ryb2tlV2lkdGg6IFxcXCIyXFxcIiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNMTggNy4zMzNDMTggNi41OTcgMTcuNDAzIDYgMTYuNjY3IDZINy4zMzNDNi41OTcgNiA2IDYuNTk3IDYgNy4zMzN2OS4zMzRDNiAxNy40MDMgNi41OTcgMTggNy4zMzMgMThoOS4zMzRjLjczNiAwIDEuMzMzLS41OTcgMS4zMzMtMS4zMzNWNy4zMzN6XFxcIiwgZmlsbDogYWN0aXZlRWxlbWVudENvbG9yKHRoZW1lKSwgc3Ryb2tlOiBhY3RpdmVFbGVtZW50Q29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogXFxcIjJcXFwiIH0sIHZvaWQgMCldIH0sIHZvaWQgMCksIHsgd2lkdGg6IDI0LCBtaXJyb3I6IHRydWUgfSkpO1xcbmNvbnN0IFNlbmRUb0JhY2tJY29uID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkubWVtbygoeyB0aGVtZSB9KSA9PiBjcmVhdGVJY29uKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykocmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GcmFnbWVudCwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0xOCA3LjMzM0MxOCA2LjU5NyAxNy40MDMgNiAxNi42NjcgNkg3LjMzM0M2LjU5NyA2IDYgNi41OTcgNiA3LjMzM3Y5LjMzNEM2IDE3LjQwMyA2LjU5NyAxOCA3LjMzMyAxOGg5LjMzNGMuNzM2IDAgMS4zMzMtLjU5NyAxLjMzMy0xLjMzM1Y3LjMzM3pcXFwiLCBmaWxsOiBhY3RpdmVFbGVtZW50Q29sb3IodGhlbWUpLCBzdHJva2U6IGFjdGl2ZUVsZW1lbnRDb2xvcih0aGVtZSksIHN0cm9rZVdpZHRoOiBcXFwiMlxcXCIgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTExIDNhMSAxIDAgMDAtMS0xSDNhMSAxIDAgMDAtMSAxdjdhMSAxIDAgMDAxIDFoOFYzek0yMiAxNGExIDEgMCAwMC0xLTFoLTdhMSAxIDAgMDAtMSAxdjdhMSAxIDAgMDAxIDFoOHYtOHpcXFwiLCBmaWxsOiBpY29uRmlsbENvbG9yKHRoZW1lKSwgc3Ryb2tlOiBpY29uRmlsbENvbG9yKHRoZW1lKSwgc3Ryb2tlV2lkdGg6IFxcXCIyXFxcIiB9LCB2b2lkIDApXSB9LCB2b2lkIDApLCB7IHdpZHRoOiAyNCwgbWlycm9yOiB0cnVlIH0pKTtcXG4vL1xcbi8vIEFsaWduIGFjdGlvbiBpY29ucyBjcmVhdGVkIGZyb20gc2NyYXRjaCB0byBtYXRjaCB0aG9zZSBvZiB6LWluZGV4IGFjdGlvbnNcXG4vLyBOb3RlOiB2ZXJ0aWNhbCBhbGlnbiBpY29ucyBhcmUgZmxpcHBlZCBzbyB0aGUgbGFyZ2VyIGl0ZW0gaXMgYWx3YXlzIHRoZVxcbi8vIGZpcnN0IG9uZSB0aGUgdXNlciBzZWVzLiBIb3Jpem9udGFsIGFsaWduIGljb25zIHNob3VsZCBub3QgYmUgZmxpcHBlZCBzaW5jZVxcbi8vIHRoYXQgd291bGQgbWFrZSB0aGVtIGxpZSBhYm91dCB0aGVpciBmdW5jdGlvbi5cXG4vL1xcbmNvbnN0IEFsaWduVG9wSWNvbiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLm1lbW8oKHsgdGhlbWUgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNIDIsNSBIIDIyXFxcIiwgZmlsbDogaWNvbkZpbGxDb2xvcih0aGVtZSksIHN0cm9rZTogaWNvbkZpbGxDb2xvcih0aGVtZSksIHN0cm9rZVdpZHRoOiBcXFwiMlxcXCIsIHN0cm9rZUxpbmVjYXA6IFxcXCJyb3VuZFxcXCIgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTSA2LDcgQyA1LjQ0Niw3IDUsNy40NDYgNSw4IHYgOS45OTk5OTIgYyAwLDAuNTU0IDAuNDQ2LDEgMSwxIGggMy4wMDAwMDAxIGMgMC41NTQsMCAwLjk5OTk5OTksLTAuNDQ2IDAuOTk5OTk5OSwtMSBWIDggQyAxMCw3LjQ0NiA5LjU1NDAwMDEsNyA5LjAwMDAwMDEsNyBaIG0gOSwwIGMgLTAuNTU0LDAgLTEsMC40NDYgLTEsMSB2IDUuOTk5OTkyIGMgMCwwLjU1NCAwLjQ0NiwxIDEsMSBoIDMgYyAwLjU1NCwwIDEsLTAuNDQ2IDEsLTEgViA4IEMgMTksNy40NDYgMTguNTU0LDcgMTgsNyBaXFxcIiwgZmlsbDogYWN0aXZlRWxlbWVudENvbG9yKHRoZW1lKSwgc3Ryb2tlOiBhY3RpdmVFbGVtZW50Q29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogXFxcIjJcXFwiIH0sIHZvaWQgMCldIH0sIHZvaWQgMCksIHsgd2lkdGg6IDI0LCBtaXJyb3I6IHRydWUgfSkpO1xcbmNvbnN0IEFsaWduQm90dG9tSWNvbiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLm1lbW8oKHsgdGhlbWUgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNIDIsMTkgSCAyMlxcXCIsIGZpbGw6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2U6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogXFxcIjJcXFwiLCBzdHJva2VMaW5lY2FwOiBcXFwicm91bmRcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIm0gNiwxNi45OTk5OTIgYyAtMC41NTQsMCAtMSwtMC40NDYgLTEsLTEgViA2IEMgNSw1LjQ0NiA1LjQ0Niw1IDYsNSBIIDkuMDAwMDAwMSBDIDkuNTU0MDAwMSw1IDEwLDUuNDQ2IDEwLDYgdiA5Ljk5OTk5MiBjIDAsMC41NTQgLTAuNDQ1OTk5OSwxIC0wLjk5OTk5OTksMSB6IG0gOSwwIGMgLTAuNTU0LDAgLTEsLTAuNDQ2IC0xLC0xIFYgMTAgYyAwLC0wLjU1NCAwLjQ0NiwtMSAxLC0xIGggMyBjIDAuNTU0LDAgMSwwLjQ0NiAxLDEgdiA1Ljk5OTk5MiBjIDAsMC41NTQgLTAuNDQ2LDEgLTEsMSB6XFxcIiwgZmlsbDogYWN0aXZlRWxlbWVudENvbG9yKHRoZW1lKSwgc3Ryb2tlOiBhY3RpdmVFbGVtZW50Q29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogXFxcIjJcXFwiIH0sIHZvaWQgMCldIH0sIHZvaWQgMCksIHsgd2lkdGg6IDI0LCBtaXJyb3I6IHRydWUgfSkpO1xcbmNvbnN0IEFsaWduTGVmdEljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lIH0pID0+IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTSA1LDIgViAyMlxcXCIsIGZpbGw6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2U6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogXFxcIjJcXFwiLCBzdHJva2VMaW5lY2FwOiBcXFwicm91bmRcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIm0gNy4wMDAwMDQsNS45OTk5OTYgYyAwLC0wLjU1NCAwLjQ0NiwtMSAxLC0xIGggOS45OTk5OTIgYyAwLjU1NCwwIDEsMC40NDYgMSwxIHYgMy4wMDAwMDAxIGMgMCwwLjU1NCAtMC40NDYsMC45OTk5OTk5IC0xLDAuOTk5OTk5OSBIIDguMDAwMDA0IGMgLTAuNTU0LDAgLTEsLTAuNDQ1OTk5OSAtMSwtMC45OTk5OTk5IHogbSAwLDkgYyAwLC0wLjU1NCAwLjQ0NiwtMSAxLC0xIGggNS45OTk5OTIgYyAwLjU1NCwwIDEsMC40NDYgMSwxIHYgMyBjIDAsMC41NTQgLTAuNDQ2LDEgLTEsMSBIIDguMDAwMDA0IGMgLTAuNTU0LDAgLTEsLTAuNDQ2IC0xLC0xIHpcXFwiLCBmaWxsOiBhY3RpdmVFbGVtZW50Q29sb3IodGhlbWUpLCBzdHJva2U6IGFjdGl2ZUVsZW1lbnRDb2xvcih0aGVtZSksIHN0cm9rZVdpZHRoOiBcXFwiMlxcXCIgfSwgdm9pZCAwKV0gfSwgdm9pZCAwKSwgeyB3aWR0aDogMjQgfSkpO1xcbmNvbnN0IEFsaWduUmlnaHRJY29uID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkubWVtbygoeyB0aGVtZSB9KSA9PiBjcmVhdGVJY29uKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykocmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GcmFnbWVudCwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0gMTksMiBWIDIyXFxcIiwgZmlsbDogaWNvbkZpbGxDb2xvcih0aGVtZSksIHN0cm9rZTogaWNvbkZpbGxDb2xvcih0aGVtZSksIHN0cm9rZVdpZHRoOiBcXFwiMlxcXCIsIHN0cm9rZUxpbmVjYXA6IFxcXCJyb3VuZFxcXCIgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwibSAxNi45OTk5OTYsNS45OTk5OTYgYyAwLC0wLjU1NCAtMC40NDYsLTEgLTEsLTEgSCA2LjAwMDAwNCBjIC0wLjU1NCwwIC0xLDAuNDQ2IC0xLDEgdiAzLjAwMDAwMDEgYyAwLDAuNTU0IDAuNDQ2LDAuOTk5OTk5OSAxLDAuOTk5OTk5OSBoIDkuOTk5OTkyIGMgMC41NTQsMCAxLC0wLjQ0NTk5OTkgMSwtMC45OTk5OTk5IHogbSAwLDkgYyAwLC0wLjU1NCAtMC40NDYsLTEgLTEsLTEgaCAtNS45OTk5OTIgYyAtMC41NTQsMCAtMSwwLjQ0NiAtMSwxIHYgMyBjIDAsMC41NTQgMC40NDYsMSAxLDEgaCA1Ljk5OTk5MiBjIDAuNTU0LDAgMSwtMC40NDYgMSwtMSB6XFxcIiwgZmlsbDogYWN0aXZlRWxlbWVudENvbG9yKHRoZW1lKSwgc3Ryb2tlOiBhY3RpdmVFbGVtZW50Q29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogXFxcIjJcXFwiIH0sIHZvaWQgMCldIH0sIHZvaWQgMCksIHsgd2lkdGg6IDI0IH0pKTtcXG5jb25zdCBEaXN0cmlidXRlSG9yaXpvbnRhbGx5SWNvbiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLm1lbW8oKHsgdGhlbWUgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNMTkgNVYxOU01IDVWMTlcXFwiLCBzdHJva2U6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogXFxcIjJcXFwiLCBzdHJva2VMaW5lY2FwOiBcXFwicm91bmRcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0xNSA5QzE1LjU1NCA5IDE2IDkuNDQ2IDE2IDEwVjE0QzE2IDE0LjU1NCAxNS41NTQgMTUgMTUgMTVIOUM4LjQ0NiAxNSA4IDE0LjU1NCA4IDE0VjEwQzggOS40NDYgOC40NDYgOSA5IDlIMTVaXFxcIiwgZmlsbDogYWN0aXZlRWxlbWVudENvbG9yKHRoZW1lKSwgc3Ryb2tlOiBhY3RpdmVFbGVtZW50Q29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogXFxcIjJcXFwiIH0sIHZvaWQgMCldIH0sIHZvaWQgMCksIHsgd2lkdGg6IDI0IH0pKTtcXG5jb25zdCBEaXN0cmlidXRlVmVydGljYWxseUljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lIH0pID0+IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTUgNUwxOSA1TTUgMTlIMTlcXFwiLCBmaWxsOiBpY29uRmlsbENvbG9yKHRoZW1lKSwgc3Ryb2tlOiBpY29uRmlsbENvbG9yKHRoZW1lKSwgc3Ryb2tlV2lkdGg6IFxcXCIyXFxcIiwgc3Ryb2tlTGluZWNhcDogXFxcInJvdW5kXFxcIiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNMTUgOUMxNS41NTQgOSAxNiA5LjQ0NiAxNiAxMFYxNEMxNiAxNC41NTQgMTUuNTU0IDE1IDE1IDE1SDlDOC40NDYgMTUgOCAxNC41NTQgOCAxNFYxMEM4IDkuNDQ2IDguNDQ2IDkgOSA5SDE1WlxcXCIsIGZpbGw6IGFjdGl2ZUVsZW1lbnRDb2xvcih0aGVtZSksIHN0cm9rZTogYWN0aXZlRWxlbWVudENvbG9yKHRoZW1lKSwgc3Ryb2tlV2lkdGg6IFxcXCIyXFxcIiB9LCB2b2lkIDApXSB9LCB2b2lkIDApLCB7IHdpZHRoOiAyNCB9KSk7XFxuY29uc3QgQ2VudGVyVmVydGljYWxseUljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lIH0pID0+IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwibSA1LjAwMDAwNCwxNi45OTk5OTYgYyAwLDAuNTU0IDAuNDQ2LDEgMSwxIGggMyBjIDAuNTU0LDAgMSwtMC40NDYgMSwtMSB2IC0xMCBjIDAsLTAuNTU0IC0wLjQ0NiwtMSAtMSwtMSBoIC0zIGMgLTAuNTU0LDAgLTEsMC40NDYgLTEsMSB6IG0gOSwtMiBjIDAsMC41NTQgMC40NDYsMSAxLDEgaCAzIGMgMC41NTQsMCAxLC0wLjQ0NiAxLC0xIHYgLTYgYyAwLC0wLjU1NCAtMC40NDYsLTEgLTEsLTEgaCAtMyBjIC0wLjU1NCwwIC0xLDAuNDQ2IC0xLDEgelxcXCIsIGZpbGw6IGFjdGl2ZUVsZW1lbnRDb2xvcih0aGVtZSksIHN0cm9rZTogYWN0aXZlRWxlbWVudENvbG9yKHRoZW1lKSwgc3Ryb2tlV2lkdGg6IFxcXCIyXFxcIiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNIDIsMTIgSCAyMlxcXCIsIGZpbGw6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2U6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogXFxcIjJcXFwiLCBzdHJva2VEYXNoYXJyYXk6IFxcXCIxLCAyLjhcXFwiLCBzdHJva2VMaW5lY2FwOiBcXFwicm91bmRcXFwiIH0sIHZvaWQgMCldIH0sIHZvaWQgMCksIHsgd2lkdGg6IDI0LCBtaXJyb3I6IHRydWUgfSkpO1xcbmNvbnN0IENlbnRlckhvcml6b250YWxseUljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lIH0pID0+IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTSA3IDUgQyA2LjQ0NiA1IDYgNS40NDYgNiA2IEwgNiA5IEMgNiA5LjU1NCA2LjQ0NiAxMCA3IDEwIEwgMTcgMTAgQyAxNy41NTQgMTAgMTggOS41NTQgMTggOSBMIDE4IDYgQyAxOCA1LjQ0NiAxNy41NTQgNSAxNyA1IEwgNyA1IHogTSA5IDE0IEMgOC40NDYgMTQgOCAxNC40NDYgOCAxNSBMIDggMTggQyA4IDE4LjU1NCA4LjQ0NiAxOSA5IDE5IEwgMTUgMTkgQyAxNS41NTQgMTkgMTYgMTguNTU0IDE2IDE4IEwgMTYgMTUgQyAxNiAxNC40NDYgMTUuNTU0IDE0IDE1IDE0IEwgOSAxNCB6IFxcXCIsIGZpbGw6IGFjdGl2ZUVsZW1lbnRDb2xvcih0aGVtZSksIHN0cm9rZTogYWN0aXZlRWxlbWVudENvbG9yKHRoZW1lKSwgc3Ryb2tlV2lkdGg6IFxcXCIyXFxcIiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNIDEyLDIgViAyMlxcXCIsIGZpbGw6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2U6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogXFxcIjJcXFwiLCBzdHJva2VEYXNoYXJyYXk6IFxcXCIxLCAyLjhcXFwiLCBzdHJva2VMaW5lY2FwOiBcXFwicm91bmRcXFwiIH0sIHZvaWQgMCldIH0sIHZvaWQgMCksIHsgd2lkdGg6IDI0IH0pKTtcXG5jb25zdCB1c2VycyA9IGNyZWF0ZUljb24oXFxcIk0xOTIgMjU2YzYxLjkgMCAxMTItNTAuMSAxMTItMTEyUzI1My45IDMyIDE5MiAzMiA4MCA4Mi4xIDgwIDE0NHM1MC4xIDExMiAxMTIgMTEyem03Ni44IDMyaC04LjNjLTIwLjggMTAtNDMuOSAxNi02OC41IDE2cy00Ny42LTYtNjguNS0xNmgtOC4zQzUxLjYgMjg4IDAgMzM5LjYgMCA0MDMuMlY0MzJjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4di0yOC44YzAtNjMuNi01MS42LTExNS4yLTExNS4yLTExNS4yek00ODAgMjU2YzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2LTk2IDQzLTk2IDk2IDQzIDk2IDk2IDk2em00OCAzMmgtMy44Yy0xMy45IDQuOC0yOC42IDgtNDQuMiA4cy0zMC4zLTMuMi00NC4yLThINDMyYy0yMC40IDAtMzkuMiA1LjktNTUuNyAxNS40IDI0LjQgMjYuMyAzOS43IDYxLjIgMzkuNyA5OS44djM4LjRjMCAyLjItLjUgNC4zLS42IDYuNEg1OTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC02MS45LTUwLjEtMTEyLTExMi0xMTJ6XFxcIiwgeyB3aWR0aDogNjQwLCBoZWlnaHQ6IDUxMiwgbWlycm9yOiB0cnVlIH0pO1xcbi8vIG5vdCBtaXJyb3JlZCBiZWNhdXNlIGl0J3MgaW5zcGlyZWQgYnkgYSBwbGF5YmFjayBjb250cm9sLCB3aGljaCBpcyBhbHdheXMgUlRMXFxuY29uc3Qgc3RhcnQgPSBjcmVhdGVJY29uKFxcXCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptMTE1LjcgMjcybC0xNzYgMTAxYy0xNS44IDguOC0zNS43LTIuNS0zNS43LTIxVjE1MmMwLTE4LjQgMTkuOC0yOS44IDM1LjctMjFsMTc2IDEwN2MxNi40IDkuMiAxNi40IDMyLjkgMCA0MnpcXFwiKTtcXG5jb25zdCBzdG9wID0gY3JlYXRlSWNvbihcXFwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTk2IDMyOGMwIDguOC03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMTc2YzAtOC44IDcuMi0xNiAxNi0xNmgxNjBjOC44IDAgMTYgNy4yIDE2IDE2djE2MHpcXFwiKTtcXG5jb25zdCBjbG9zZSA9IGNyZWF0ZUljb24oXFxcIk0yNDIuNzIgMjU2bDEwMC4wNy0xMDAuMDdjMTIuMjgtMTIuMjggMTIuMjgtMzIuMTkgMC00NC40OGwtMjIuMjQtMjIuMjRjLTEyLjI4LTEyLjI4LTMyLjE5LTEyLjI4LTQ0LjQ4IDBMMTc2IDE4OS4yOCA3NS45MyA4OS4yMWMtMTIuMjgtMTIuMjgtMzIuMTktMTIuMjgtNDQuNDggMEw5LjIxIDExMS40NWMtMTIuMjggMTIuMjgtMTIuMjggMzIuMTkgMCA0NC40OEwxMDkuMjggMjU2IDkuMjEgMzU2LjA3Yy0xMi4yOCAxMi4yOC0xMi4yOCAzMi4xOSAwIDQ0LjQ4bDIyLjI0IDIyLjI0YzEyLjI4IDEyLjI4IDMyLjIgMTIuMjggNDQuNDggMEwxNzYgMzIyLjcybDEwMC4wNyAxMDAuMDdjMTIuMjggMTIuMjggMzIuMiAxMi4yOCA0NC40OCAwbDIyLjI0LTIyLjI0YzEyLjI4LTEyLjI4IDEyLjI4LTMyLjE5IDAtNDQuNDhMMjQyLjcyIDI1NnpcXFwiLCB7IHdpZHRoOiAzNTIsIGhlaWdodDogNTEyIH0pO1xcbmNvbnN0IGJhY2sgPSBjcmVhdGVJY29uKFxcXCJNMzQuNTIgMjM5LjAzTDIyOC44NyA0NC42OWM5LjM3LTkuMzcgMjQuNTctOS4zNyAzMy45NCAwbDIyLjY3IDIyLjY3YzkuMzYgOS4zNiA5LjM3IDI0LjUyLjA0IDMzLjlMMTMxLjQ5IDI1NmwxNTQuMDIgMTU0Ljc1YzkuMzQgOS4zOCA5LjMyIDI0LjU0LS4wNCAzMy45bC0yMi42NyAyMi42N2MtOS4zNyA5LjM3LTI0LjU3IDkuMzctMzMuOTQgMEwzNC41MiAyNzIuOTdjLTkuMzctOS4zNy05LjM3LTI0LjU3IDAtMzMuOTR6XFxcIiwgeyB3aWR0aDogMzIwLCBoZWlnaHQ6IDUxMiwgc3R5bGU6IHsgbWFyZ2luTGVmdDogXFxcIi0wLjJyZW1cXFwiIH0sIG1pcnJvcjogdHJ1ZSB9KTtcXG5jb25zdCBjbG9uZSA9IGNyZWF0ZUljb24oXFxcIk00NjQgMGMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djI4OGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDE3NmMtMjYuNTEgMC00OC0yMS40OS00OC00OFY0OGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDI4OE0xNzYgNDE2Yy00NC4xMTIgMC04MC0zNS44ODgtODAtODBWMTI4SDQ4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djI4OGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDI4OGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4di00OEgxNzZ6XFxcIiwgeyBtaXJyb3I6IHRydWUgfSk7XFxuLy8gbW9kaWZpZWQgaHR0cHM6Ly9mZWF0aGVyaWNvbnMuY29tLz9xdWVyeT1zaGllbGRcXG5jb25zdCBzaGllbGQgPSBjcmVhdGVJY29uKFxcXCJNMTEuNTUzIDIyLjg5NGEuOTk4Ljk5OCAwIDAwLjg5NCAwczMuMDM3LTEuNTE2IDUuNDY1LTQuMDk3QzE5LjYxNiAxNi45ODcgMjEgMTQuNjYzIDIxIDEyVjVhMSAxIDAgMDAtLjY0OS0uOTM2bC04LTNhLjk5OC45OTggMCAwMC0uNzAyIDBsLTggM0ExIDEgMCAwMDMgNXY3YzAgMi42NjMgMS4zODQgNC45ODcgMy4wODggNi43OTcgMi40MjggMi41ODEgNS40NjUgNC4wOTcgNS40NjUgNC4wOTd6bS0xLjMwMy04LjQ4MWw2LjY0NC02LjY0NGEuODU2Ljg1NiAwIDExMS4yMTIgMS4yMTJsLTcuMjUgNy4yNWEuODU2Ljg1NiAwIDAxLTEuMjEyIDBsLTMuNzUtMy43NWEuODU2Ljg1NiAwIDExMS4yMTItMS4yMTJsMy4xNDQgMy4xNDR6XFxcIiwgeyB3aWR0aDogMjQgfSk7XFxuY29uc3QgZmlsZSA9IGNyZWF0ZUljb24oXFxcIk0zNjkuOSA5Ny45TDI4NiAxNEMyNzcgNSAyNjQuOC0uMSAyNTIuMS0uMUg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMzEuOWMwLTEyLjctNS4xLTI1LTE0LjEtMzR6TTMzMi4xIDEyOEgyNTZWNTEuOWw3Ni4xIDc2LjF6TTQ4IDQ2NFY0OGgxNjB2MTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDEwNHYyODhINDh6bTMyLTQ4aDIyNFYyODhsLTIzLjUtMjMuNWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwTDE3NiAzNTJsLTM5LjUtMzkuNWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwTDgwIDM1MnY2NHptNDgtMjQwYy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4IDQ4LTIxLjUgNDgtNDgtMjEuNS00OC00OC00OHpcXFwiLCB7IHdpZHRoOiAzODQsIGhlaWdodDogNTEyIH0pO1xcbmNvbnN0IEdyb3VwSWNvbiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLm1lbW8oKHsgdGhlbWUgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNMjUgMjZIMTExVjExMUgyNVxcXCIsIGZpbGw6IGljb25GaWxsQ29sb3IodGhlbWUpIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0yNSAxMTFDMjUgODAuMjA2OCAyNSA0OS40MTM1IDI1IDI2TTI1IDI2QzQ4LjYxNzQgMjYgNzIuMjM0OCAyNiAxMTEgMjZIMjVaTTI1IDI2QzUzLjM2NzEgMjYgODEuNzM0MyAyNiAxMTEgMjZIMjVaTTExMSAyNkMxMTEgNTIuMzAzIDExMSA3OC42MDYgMTExIDExMVYyNlpNMTExIDI2QzExMSA1MS4yOTQ3IDExMSA3Ni41ODkzIDExMSAxMTFWMjZaTTExMSAxMTFDODcuMDc5MiAxMTEgNjMuMTU4NSAxMTEgMjUgMTExSDExMVpNMTExIDExMUM4Ny40NjQ2IDExMSA2My45MjkzIDExMSAyNSAxMTFIMTExWk0yNSAxMTFDMjUgODEuMTUxNCAyNSA1MS4zMDI4IDI1IDI2VjExMVpcXFwiLCBzdHJva2U6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogXFxcIjJcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0xMDAgMTAwSDE2MFYxNjBIMTAwXFxcIiwgZmlsbDogaWNvbkZpbGxDb2xvcih0aGVtZSkgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTEwMCAxNjBDMTAwIDE0NC4xMDYgMTAwIDEyOC4yMTEgMTAwIDEwME0xMDAgMTAwQzExNy43MDYgMTAwIDEzNS40MTIgMTAwIDE2MCAxMDBIMTAwWk0xMDAgMTAwQzExNC4yMTQgMTAwIDEyOC40MjggMTAwIDE2MCAxMDBIMTAwWk0xNjAgMTAwQzE2MCAxMjAuMTg0IDE2MCAxNDAuMzY5IDE2MCAxNjBWMTAwWk0xNjAgMTAwQzE2MCAxMTMuMjE5IDE2MCAxMjYuNDM3IDE2MCAxNjBWMTAwWk0xNjAgMTYwQzE0NS41MzQgMTYwIDEzMS4wNjggMTYwIDEwMCAxNjBIMTYwWk0xNjAgMTYwQzE0My40NjcgMTYwIDEyNi45MzQgMTYwIDEwMCAxNjBIMTYwWk0xMDAgMTYwQzEwMCAxNDMuNjYxIDEwMCAxMjcuMzIxIDEwMCAxMDBWMTYwWlxcXCIsIHN0cm9rZTogaWNvbkZpbGxDb2xvcih0aGVtZSksIHN0cm9rZVdpZHRoOiBcXFwiMlxcXCIgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZ1xcXCIsIE9iamVjdC5hc3NpZ24oeyBmaWxsOiBoYW5kbGVyQ29sb3IodGhlbWUpLCBzdHJva2U6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogXFxcIjZcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInJlY3RcXFwiLCB7IHg6IFxcXCIyLjVcXFwiLCB5OiBcXFwiMi41XFxcIiwgd2lkdGg6IFxcXCIzMFxcXCIsIGhlaWdodDogXFxcIjMwXFxcIiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInJlY3RcXFwiLCB7IHg6IFxcXCIyLjVcXFwiLCB5OiBcXFwiMTQ5LjVcXFwiLCB3aWR0aDogXFxcIjMwXFxcIiwgaGVpZ2h0OiBcXFwiMzBcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicmVjdFxcXCIsIHsgeDogXFxcIjE0Ny41XFxcIiwgeTogXFxcIjE0OS41XFxcIiwgd2lkdGg6IFxcXCIzMFxcXCIsIGhlaWdodDogXFxcIjMwXFxcIiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInJlY3RcXFwiLCB7IHg6IFxcXCIxNDcuNVxcXCIsIHk6IFxcXCIyLjVcXFwiLCB3aWR0aDogXFxcIjMwXFxcIiwgaGVpZ2h0OiBcXFwiMzBcXFwiIH0sIHZvaWQgMCldIH0pLCB2b2lkIDApXSB9LCB2b2lkIDApLCB7IHdpZHRoOiAxODIsIGhlaWdodDogMTgyLCBtaXJyb3I6IHRydWUgfSkpO1xcbmNvbnN0IFVuZ3JvdXBJY29uID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkubWVtbygoeyB0aGVtZSB9KSA9PiBjcmVhdGVJY29uKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykocmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GcmFnbWVudCwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0yNSAyNkgxMTFWMTExSDI1XFxcIiwgZmlsbDogaWNvbkZpbGxDb2xvcih0aGVtZSkgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTI1IDExMUMyNSA4MC4yMDY4IDI1IDQ5LjQxMzUgMjUgMjZNMjUgMjZDNDguNjE3NCAyNiA3Mi4yMzQ4IDI2IDExMSAyNkgyNVpNMjUgMjZDNTMuMzY3MSAyNiA4MS43MzQzIDI2IDExMSAyNkgyNVpNMTExIDI2QzExMSA1Mi4zMDMgMTExIDc4LjYwNiAxMTEgMTExVjI2Wk0xMTEgMjZDMTExIDUxLjI5NDcgMTExIDc2LjU4OTMgMTExIDExMVYyNlpNMTExIDExMUM4Ny4wNzkyIDExMSA2My4xNTg1IDExMSAyNSAxMTFIMTExWk0xMTEgMTExQzg3LjQ2NDYgMTExIDYzLjkyOTMgMTExIDI1IDExMUgxMTFaTTI1IDExMUMyNSA4MS4xNTE0IDI1IDUxLjMwMjggMjUgMjZWMTExWlxcXCIsIHN0cm9rZTogaWNvbkZpbGxDb2xvcih0aGVtZSksIHN0cm9rZVdpZHRoOiBcXFwiMlxcXCIgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTEwMCAxMDBIMTYwVjE2MEgxMDBcXFwiLCBmaWxsOiBpY29uRmlsbENvbG9yKHRoZW1lKSB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNMTAwIDE2MEMxMDAgMTQ0LjEwNiAxMDAgMTI4LjIxMSAxMDAgMTAwTTEwMCAxMDBDMTE3LjcwNiAxMDAgMTM1LjQxMiAxMDAgMTYwIDEwMEgxMDBaTTEwMCAxMDBDMTE0LjIxNCAxMDAgMTI4LjQyOCAxMDAgMTYwIDEwMEgxMDBaTTE2MCAxMDBDMTYwIDEyMC4xODQgMTYwIDE0MC4zNjkgMTYwIDE2MFYxMDBaTTE2MCAxMDBDMTYwIDExMy4yMTkgMTYwIDEyNi40MzcgMTYwIDE2MFYxMDBaTTE2MCAxNjBDMTQ1LjUzNCAxNjAgMTMxLjA2OCAxNjAgMTAwIDE2MEgxNjBaTTE2MCAxNjBDMTQzLjQ2NyAxNjAgMTI2LjkzNCAxNjAgMTAwIDE2MEgxNjBaTTEwMCAxNjBDMTAwIDE0My42NjEgMTAwIDEyNy4zMjEgMTAwIDEwMFYxNjBaXFxcIiwgc3Ryb2tlOiBpY29uRmlsbENvbG9yKHRoZW1lKSwgc3Ryb2tlV2lkdGg6IFxcXCIyXFxcIiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJnXFxcIiwgT2JqZWN0LmFzc2lnbih7IGZpbGw6IGhhbmRsZXJDb2xvcih0aGVtZSksIHN0cm9rZTogaWNvbkZpbGxDb2xvcih0aGVtZSksIHN0cm9rZVdpZHRoOiBcXFwiNlxcXCIgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicmVjdFxcXCIsIHsgeDogXFxcIjIuNVxcXCIsIHk6IFxcXCIyLjVcXFwiLCB3aWR0aDogXFxcIjMwXFxcIiwgaGVpZ2h0OiBcXFwiMzBcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicmVjdFxcXCIsIHsgeDogXFxcIjc4LjVcXFwiLCB5OiBcXFwiMTQ5LjVcXFwiLCB3aWR0aDogXFxcIjMwXFxcIiwgaGVpZ2h0OiBcXFwiMzBcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicmVjdFxcXCIsIHsgeDogXFxcIjE0Ny41XFxcIiwgeTogXFxcIjE0OS41XFxcIiwgd2lkdGg6IFxcXCIzMFxcXCIsIGhlaWdodDogXFxcIjMwXFxcIiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInJlY3RcXFwiLCB7IHg6IFxcXCIxNDcuNVxcXCIsIHk6IFxcXCI3OC41XFxcIiwgd2lkdGg6IFxcXCIzMFxcXCIsIGhlaWdodDogXFxcIjMwXFxcIiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInJlY3RcXFwiLCB7IHg6IFxcXCIxMDUuNVxcXCIsIHk6IFxcXCIyLjVcXFwiLCB3aWR0aDogXFxcIjMwXFxcIiwgaGVpZ2h0OiBcXFwiMzBcXFwiIH0sIHZvaWQgMCksICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicmVjdFxcXCIsIHsgeDogXFxcIjIuNVxcXCIsIHk6IFxcXCIxMDIuNVxcXCIsIHdpZHRoOiBcXFwiMzBcXFwiLCBoZWlnaHQ6IFxcXCIzMFxcXCIgfSwgdm9pZCAwKV0gfSksIHZvaWQgMCldIH0sIHZvaWQgMCksIHsgd2lkdGg6IDE4MiwgaGVpZ2h0OiAxODIsIG1pcnJvcjogdHJ1ZSB9KSk7XFxuY29uc3QgRmlsbEhhY2h1cmVJY29uID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkubWVtbygoeyB0aGVtZSB9KSA9PiBjcmVhdGVJY29uKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZmlsbFJ1bGU6IFxcXCJldmVub2RkXFxcIiwgY2xpcFJ1bGU6IFxcXCJldmVub2RkXFxcIiwgZDogXFxcIk0yMC4xMDEgMTZIMjguMDkzNEwzNiA4Ljk1OTg5VjRIMzMuNTc3OUwyMC4xMDEgMTZaTTMwLjU3MDQgNEwxNy4wOTM1IDE2SDkuMTAxMDFMMjIuNTc3OSA0SDMwLjU3MDRaTTE5LjU3MDQgNEw2LjA5MzQ5IDE2SDRWMTAuNzQ3NUwxMS41Nzc5IDRIMTkuNTcwNFpNOC41NzAzNiA0SDRWOC4wNjk1Mkw4LjU3MDM2IDRaTTM2IDExLjYzNzhMMzEuMTAxIDE2SDM2VjExLjYzNzhaTTIgMlYxOEgzOFYySDJaXFxcIiwgZmlsbDogaWNvbkZpbGxDb2xvcih0aGVtZSkgfSwgdm9pZCAwKSwgeyB3aWR0aDogNDAsIGhlaWdodDogMjAgfSkpO1xcbmNvbnN0IEZpbGxDcm9zc0hhdGNoSWNvbiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLm1lbW8oKHsgdGhlbWUgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJnXFxcIiwgT2JqZWN0LmFzc2lnbih7IGZpbGw6IGljb25GaWxsQ29sb3IodGhlbWUpLCBmaWxsUnVsZTogXFxcImV2ZW5vZGRcXFwiLCBjbGlwUnVsZTogXFxcImV2ZW5vZGRcXFwiIH0sIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNMjAuMTAxIDE2SDI4LjA5MzRMMzYgOC45NTk4OVY0SDMzLjU3NzlMMjAuMTAxIDE2Wk0zMC41NzA0IDRMMTcuMDkzNSAxNkg5LjEwMTAxTDIyLjU3NzkgNEgzMC41NzA0Wk0xOS41NzA0IDRMNi4wOTM0OSAxNkg0VjEwLjc0NzVMMTEuNTc3OSA0SDE5LjU3MDRaTTguNTcwMzYgNEg0VjguMDY5NTJMOC41NzAzNiA0Wk0zNiAxMS42Mzc4TDMxLjEwMSAxNkgzNlYxMS42Mzc4Wk0yIDJWMThIMzhWMkgyWlxcXCIgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTE0LjAwMDEgMThMMy4wMDAwNiA0LjAwMDAyTDQuNTcyNyAyLjc2NDM4TDE1LjU3MjcgMTYuNzY0NEwxNC4wMDAxIDE4Wk0yNS4wMDAxIDE4TDE0LjAwMDEgNC4wMDAwMkwxNS41NzI3IDIuNzY0MzhMMjYuNTcyNyAxNi43NjQ0TDI1LjAwMDEgMThaTTM2LjAwMDEgMThMMjUuMDAwMSA0LjAwMDAyTDI2LjU3MjcgMi43NjQzOEwzNy41NzI3IDE2Ljc2NDRMMzYuMDAwMSAxOFpcXFwiIH0sIHZvaWQgMCldIH0pLCB2b2lkIDApLCB7IHdpZHRoOiA0MCwgaGVpZ2h0OiAyMCB9KSk7XFxuY29uc3QgRmlsbFNvbGlkSWNvbiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLm1lbW8oKHsgdGhlbWUgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNMiAySDM4VjE4SDJWMlpcXFwiLCBmaWxsOiBpY29uRmlsbENvbG9yKHRoZW1lKSB9LCB2b2lkIDApLCB7XFxuICAgIHdpZHRoOiA0MCxcXG4gICAgaGVpZ2h0OiAyMCxcXG59KSk7XFxuY29uc3QgU3Ryb2tlV2lkdGhJY29uID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkubWVtbygoeyB0aGVtZSwgc3Ryb2tlV2lkdGggfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNNiAxMEgzMlxcXCIsIHN0cm9rZTogaWNvbkZpbGxDb2xvcih0aGVtZSksIHN0cm9rZVdpZHRoOiBzdHJva2VXaWR0aCwgc3Ryb2tlTGluZWNhcDogXFxcInJvdW5kXFxcIiwgZmlsbDogXFxcIm5vbmVcXFwiIH0sIHZvaWQgMCksIHsgd2lkdGg6IDQwLCBoZWlnaHQ6IDIwIH0pKTtcXG5jb25zdCBTdHJva2VTdHlsZVNvbGlkSWNvbiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLm1lbW8oKHsgdGhlbWUgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNNiAxMEgzNFxcXCIsIHN0cm9rZTogaWNvbkZpbGxDb2xvcih0aGVtZSksIHN0cm9rZVdpZHRoOiAyLCBmaWxsOiBcXFwibm9uZVxcXCIsIHN0cm9rZUxpbmVjYXA6IFxcXCJyb3VuZFxcXCIgfSwgdm9pZCAwKSwge1xcbiAgICB3aWR0aDogNDAsXFxuICAgIGhlaWdodDogMjAsXFxufSkpO1xcbmNvbnN0IFN0cm9rZVN0eWxlRGFzaGVkSWNvbiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLm1lbW8oKHsgdGhlbWUgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNNiAxMEgzNFxcXCIsIHN0cm9rZTogaWNvbkZpbGxDb2xvcih0aGVtZSksIHN0cm9rZVdpZHRoOiAyLjUsIHN0cm9rZURhc2hhcnJheTogXFxcIjEwLCA4XFxcIiwgZmlsbDogXFxcIm5vbmVcXFwiLCBzdHJva2VMaW5lY2FwOiBcXFwicm91bmRcXFwiIH0sIHZvaWQgMCksIHsgd2lkdGg6IDQwLCBoZWlnaHQ6IDIwIH0pKTtcXG5jb25zdCBTdHJva2VTdHlsZURvdHRlZEljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lIH0pID0+IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTYgMTBIMzZcXFwiLCBzdHJva2U6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogMi41LCBzdHJva2VEYXNoYXJyYXk6IFxcXCIyLCA0LjVcXFwiLCBmaWxsOiBcXFwibm9uZVxcXCIsIHN0cm9rZUxpbmVjYXA6IFxcXCJyb3VuZFxcXCIgfSwgdm9pZCAwKSwgeyB3aWR0aDogNDAsIGhlaWdodDogMjAgfSkpO1xcbmNvbnN0IFNsb3BwaW5lc3NBcmNoaXRlY3RJY29uID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkubWVtbygoeyB0aGVtZSB9KSA9PiBjcmVhdGVJY29uKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0zLjAwMDk4IDE2LjE2OTFDNi4yODc3NCAxMy45NzQ0IDE5LjYzOTkgMi44OTA1IDIyLjcyMTUgMy4wMDA4MkMyNS44MDQxIDMuMTExMTMgMTkuMTE1OCAxNS41NDg4IDIxLjQ5NjIgMTYuODMwOUMyMy44NzU3IDE4LjExMzEgMzQuNDE1NSAxMS43MTQ4IDM3LjAwMDEgMTAuNjkxOVxcXCIsIHN0cm9rZTogaWNvbkZpbGxDb2xvcih0aGVtZSksIHN0cm9rZVdpZHRoOiAyLCBzdHJva2VMaW5lY2FwOiBcXFwicm91bmRcXFwiLCBmaWxsOiBcXFwibm9uZVxcXCIgfSwgdm9pZCAwKSwgeyB3aWR0aDogNDAsIGhlaWdodDogMjAsIG1pcnJvcjogdHJ1ZSB9KSk7XFxuY29uc3QgU2xvcHBpbmVzc0FydGlzdEljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lIH0pID0+IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTMgMTdDNi42ODE1OCAxNC44NzUyIDE2LjEyOTYgOS4wOTg0OSAyMi4wNjQ4IDYuNTQ5MjJDMjggMy45OTk5NSAyMi4yODk2IDEzLjMyMDkgMjUgMTRDMjcuNzEwNCAxNC42NzkxIDM2LjM3NTcgOS42NDcxIDM2LjM3NTcgOS42NDcxTTYuNDA3MDYgMTVDMTMgMTEuMTkxOCAyMC4wNDY4IDEuNTEwNDUgMjMuMDIzNCAzLjAwNTJDMjYgNC40OTk5NSAyMC40NTcgMTIuODY1OSAyMi43Mjg1IDE2LjQzMjlDMjUgMjAgMzYuMzc1NyAxMyAzNi4zNzU3IDEzXFxcIiwgc3Ryb2tlOiBpY29uRmlsbENvbG9yKHRoZW1lKSwgc3Ryb2tlV2lkdGg6IDIsIHN0cm9rZUxpbmVjYXA6IFxcXCJyb3VuZFxcXCIsIGZpbGw6IFxcXCJub25lXFxcIiB9LCB2b2lkIDApLCB7IHdpZHRoOiA0MCwgaGVpZ2h0OiAyMCwgbWlycm9yOiB0cnVlIH0pKTtcXG5jb25zdCBTbG9wcGluZXNzQ2FydG9vbmlzdEljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lIH0pID0+IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTMgMTUuNjQ2OEM2LjkzNjkyIDEzLjUzNzggMjIuNTU0NCAyLjgxNTI4IDI2LjYyMDYgMy4wMDI0MkMzMC42ODc3IDMuMTg5NTYgMjUuNjcwOCAxNS4zMzQ2IDI3LjQwMDkgMTYuNzcwNUMyOS4xMzA5IDE4LjIwNTUgMzUuNDAwMSAxMi40NzYyIDM3IDExLjYxNzdNMy45NzE0MyAxMC40OTE3QzYuNjExNTggOS4yNDU2MyAxNi4zNzA2IDIuNjE4ODYgMTkuODEwNCAzLjAxNzI0QzIzLjI1MjIgMy40MTQ3MiAyMi4wNzczIDEyLjIwMTMgMjQuNjE4MSAxMi44NzgzQzI3LjE1OTggMTMuNTUzNiAzMy4zMTc5IDguMDQwNjggMzUuMDU3MSA3LjA3MjQ0XFxcIiwgc3Ryb2tlOiBpY29uRmlsbENvbG9yKHRoZW1lKSwgc3Ryb2tlV2lkdGg6IDIsIHN0cm9rZUxpbmVjYXA6IFxcXCJyb3VuZFxcXCIsIGZpbGw6IFxcXCJub25lXFxcIiB9LCB2b2lkIDApLCB7IHdpZHRoOiA0MCwgaGVpZ2h0OiAyMCwgbWlycm9yOiB0cnVlIH0pKTtcXG5jb25zdCBFZGdlU2hhcnBJY29uID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkubWVtbygoeyB0aGVtZSB9KSA9PiBjcmVhdGVJY29uKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0xMCAxN0wxMCA1TDM1IDVcXFwiLCBzdHJva2U6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogMiwgc3Ryb2tlTGluZWNhcDogXFxcInJvdW5kXFxcIiwgZmlsbDogXFxcIm5vbmVcXFwiIH0sIHZvaWQgMCksIHsgd2lkdGg6IDQwLCBoZWlnaHQ6IDIwLCBtaXJyb3I6IHRydWUgfSkpO1xcbmNvbnN0IEVkZ2VSb3VuZEljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lIH0pID0+IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTEwIDE3VjE1QzEwIDggMTMgNSAyMSA1TDMzLjUgNVxcXCIsIHN0cm9rZTogaWNvbkZpbGxDb2xvcih0aGVtZSksIHN0cm9rZVdpZHRoOiAyLCBzdHJva2VMaW5lY2FwOiBcXFwicm91bmRcXFwiLCBmaWxsOiBcXFwibm9uZVxcXCIgfSwgdm9pZCAwKSwgeyB3aWR0aDogNDAsIGhlaWdodDogMjAsIG1pcnJvcjogdHJ1ZSB9KSk7XFxuY29uc3QgQXJyb3doZWFkTm9uZUljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lIH0pID0+IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTYgMTBIMzRcXFwiLCBzdHJva2U6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogMiwgZmlsbDogXFxcIm5vbmVcXFwiIH0sIHZvaWQgMCksIHtcXG4gICAgd2lkdGg6IDQwLFxcbiAgICBoZWlnaHQ6IDIwLFxcbn0pKTtcXG5jb25zdCBBcnJvd2hlYWRBcnJvd0ljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lLCBmbGlwID0gZmFsc2UgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJnXFxcIiwgT2JqZWN0LmFzc2lnbih7IHRyYW5zZm9ybTogZmxpcCA/IFxcXCJ0cmFuc2xhdGUoNDAsIDApIHNjYWxlKC0xLCAxKVxcXCIgOiBcXFwiXFxcIiwgc3Ryb2tlOiBpY29uRmlsbENvbG9yKHRoZW1lKSwgc3Ryb2tlV2lkdGg6IDIsIGZpbGw6IFxcXCJub25lXFxcIiB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTM0IDEwSDZNMzQgMTBMMjcgNU0zNCAxMEwyNyAxNVxcXCIgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTI3LjUgNUwzNC41IDEwTDI3LjUgMTVcXFwiIH0sIHZvaWQgMCldIH0pLCB2b2lkIDApLCB7IHdpZHRoOiA0MCwgaGVpZ2h0OiAyMCB9KSk7XFxuY29uc3QgQXJyb3doZWFkRG90SWNvbiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLm1lbW8oKHsgdGhlbWUsIGZsaXAgPSBmYWxzZSB9KSA9PiBjcmVhdGVJY29uKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cykoXFxcImdcXFwiLCBPYmplY3QuYXNzaWduKHsgc3Ryb2tlOiBpY29uRmlsbENvbG9yKHRoZW1lKSwgZmlsbDogaWNvbkZpbGxDb2xvcih0aGVtZSksIHRyYW5zZm9ybTogZmxpcCA/IFxcXCJ0cmFuc2xhdGUoNDAsIDApIHNjYWxlKC0xLCAxKVxcXCIgOiBcXFwiXFxcIiB9LCB7IGNoaWxkcmVuOiBbKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTMyIDEwTDYgMTBcXFwiLCBzdHJva2VXaWR0aDogMiB9LCB2b2lkIDApLCAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImNpcmNsZVxcXCIsIHsgcjogXFxcIjRcXFwiLCB0cmFuc2Zvcm06IFxcXCJtYXRyaXgoLTEgMCAwIDEgMzAgMTApXFxcIiB9LCB2b2lkIDApXSB9KSwgdm9pZCAwKSwgeyB3aWR0aDogNDAsIGhlaWdodDogMjAgfSkpO1xcbmNvbnN0IEFycm93aGVhZEJhckljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lLCBmbGlwID0gZmFsc2UgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcImdcXFwiLCBPYmplY3QuYXNzaWduKHsgdHJhbnNmb3JtOiBmbGlwID8gXFxcInRyYW5zbGF0ZSg0MCwgMCkgc2NhbGUoLTEsIDEpXFxcIiA6IFxcXCJcXFwiIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0zNCAxMEg1Ljk5OTk2TTM0IDEwTDM0IDVNMzQgMTBMMzQgMTVcXFwiLCBzdHJva2U6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2VXaWR0aDogMiwgZmlsbDogXFxcIm5vbmVcXFwiIH0sIHZvaWQgMCkgfSksIHZvaWQgMCksIHsgd2lkdGg6IDQwLCBoZWlnaHQ6IDIwIH0pKTtcXG5jb25zdCBBcnJvd2hlYWRUcmlhbmdsZUljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lLCBmbGlwID0gZmFsc2UgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKFxcXCJnXFxcIiwgT2JqZWN0LmFzc2lnbih7IHN0cm9rZTogaWNvbkZpbGxDb2xvcih0aGVtZSksIGZpbGw6IGljb25GaWxsQ29sb3IodGhlbWUpLCB0cmFuc2Zvcm06IGZsaXAgPyBcXFwidHJhbnNsYXRlKDQwLCAwKSBzY2FsZSgtMSwgMSlcXFwiIDogXFxcIlxcXCIgfSwgeyBjaGlsZHJlbjogWygwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0zMiAxMEw2IDEwXFxcIiwgc3Ryb2tlV2lkdGg6IDIgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTI3LjUgNS41TDM0LjUgMTBMMjcuNSAxNC41TDI3LjUgNS41XFxcIiB9LCB2b2lkIDApXSB9KSwgdm9pZCAwKSwgeyB3aWR0aDogNDAsIGhlaWdodDogMjAgfSkpO1xcbmNvbnN0IEZvbnRTaXplU21hbGxJY29uID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkubWVtbygoeyB0aGVtZSB9KSA9PiBjcmVhdGVJY29uKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZmlsbDogaWNvbkZpbGxDb2xvcih0aGVtZSksIGQ6IFxcXCJNIDAgNjkuMDkyIEwgMCA1NS4wMyBBIDEyNC4yNCAxMjQuMjQgMCAwIDAgNC43MDYgNTcuMDIgUSA2LjgyNiA1Ny44NjMgOC43MDggNTguNSBBIDUzLjQ2NiA1My40NjYgMCAwIDAgMTIuMjMxIDU5LjU3MSBRIDE3LjIzNiA2MC44ODkgMjEuMzg3IDYwLjg4OSBBIDIwLjkwOSAyMC45MDkgMCAwIDAgMjQuMjY1IDYwLjcwNCBRIDI1LjcxOSA2MC41MDIgMjYuOTAzIDYwLjA3NyBBIDguNjQ5IDguNjQ5IDAgMCAwIDI5LjAyOCA1OC45ODUgUSAzMS42ODkgNTcuMDggMzEuNjg5IDUzLjMyMSBRIDMxLjY4OSA1MS4yMjEgMzAuNTE4IDQ5LjU4NSBBIDEwLjEyNiAxMC4xMjYgMCAwIDAgMjkuMjgyIDQ4LjE3NyBRIDI4LjM1MiA0Ny4yODcgMjcuMDc1IDQ2LjQzNiBBIDIzLjcxOSAyMy43MTkgMCAwIDAgMjUuNzUyIDQ1LjYyNyBRIDIzLjc3NCA0NC40OTIgMjAuMTc2IDQyLjczNSBBIDI1NC40NCAyNTQuNDQgMCAwIDAgMTcuODIyIDQxLjYwMiBRIDExLjUwMyAzOC42MzEgOC4yMzYgMzUuODg4IEEgMTkuNzQyIDE5Ljc0MiAwIDAgMSA4LjAwOCAzNS42OTQgQSAyMi4xOCAyMi4xOCAwIDAgMSAyLjc4MyAyOS4xMDIgUSAwLjgzIDI1LjM0MiAwLjgzIDIwLjMxMyBBIDIyLjQ3MSAyMi40NzEgMCAwIDEgMS43MzMgMTMuNzc4IEEgMTcuMjgzIDE3LjI4MyAwIDAgMSA3LjI1MSA1LjQyIEEgMjEuNDg2IDIxLjQ4NiAwIDAgMSAxNS4xNzcgMS4yNzIgUSAxOC4zNjEgMC4zMzggMjIuMTY2IDAuMDkgQSA0My41NzMgNDMuNTczIDAgMCAxIDI1IDAgQSA0Mi4zOTkgNDIuMzk5IDAgMCAxIDM0LjM0OSAxLjAxIEEgMzkuMDc1IDM5LjA3NSAwIDAgMSAzNS42MiAxLjMxOSBBIDY3LjQwNyA2Ny40MDcgMCAwIDEgNDIuMTA4IDMuMzgyIEEgODMuMzU3IDgzLjM1NyAwIDAgMSA0Ni4xOTEgNS4wMyBMIDQxLjMwOSAxNi43OTcgUSAzNS41OTYgMTQuNDUzIDMxLjg2IDEzLjUyNiBBIDMwLjc2MiAzMC43NjIgMCAwIDAgMjUuNDE3IDEyLjYxMiBBIDI4LjMzNyAyOC4zMzcgMCAwIDAgMjQuNTEyIDEyLjU5OCBBIDE0Ljg0NiAxNC44NDYgMCAwIDAgMjIuMDIyIDEyLjc5MyBRIDE5LjQ5OCAxMy4yMjQgMTcuOTIgMTQuNiBRIDE1LjYyNSAxNi42MDIgMTUuNjI1IDE5LjgyNCBRIDE1LjYyNSAyMS44MjYgMTYuNTUzIDIzLjMxNiBRIDE3LjQ4IDI0LjgwNSAxOS41MDcgMjYuMTk3IEEgMTguMzQzIDE4LjM0MyAwIDAgMCAyMC42NTkgMjYuOTEyIFEgMjIuNTk2IDI4LjAzNSAyNi41MTYgMjkuOTUzIEEgMjk5Ljk5IDI5OS45OSAwIDAgMCAyOS4xMDIgMzEuMjAxIFEgMzcuOTEgMzUuNDEyIDQxLjg0MSAzOS42NDIgQSAxNi41NTMgMTYuNTUzIDAgMCAxIDQyLjgyMiA0MC43OTYgQSAxNy42NzUgMTcuNjc1IDAgMCAxIDQ2LjMwMSA0OS4yMzMgQSAyMy41MTcgMjMuNTE3IDAgMCAxIDQ2LjUzMyA1Mi41ODggQSAyMS41ODEgMjEuNTgxIDAgMCAxIDQ1LjQ3MSA1OS41MTUgQSAxNy43MzMgMTcuNzMzIDAgMCAxIDM5LjU3NSA2Ny44MjMgUSAzMy43NDUgNzIuNDg2IDI0LjA5NCA3My4yNDMgQSA0OS42ODMgNDkuNjgzIDAgMCAxIDIwLjIxNSA3My4zODkgQSA1MS43MTIgNTEuNzEyIDAgMCAxIDkuNDQ4IDcyLjMxNSBBIDQwLjY3MiA0MC42NzIgMCAwIDEgMCA2OS4wOTIgWlxcXCIgfSwgdm9pZCAwKSwgeyB3aWR0aDogNDcsIGhlaWdodDogNzcgfSkpO1xcbmNvbnN0IEZvbnRTaXplTWVkaXVtSWNvbiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLm1lbW8oKHsgdGhlbWUgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGZpbGw6IGljb25GaWxsQ29sb3IodGhlbWUpLCBkOiBcXFwiTSA0NC4wOTIgNzEuMzg3IEwgMzAuMjI1IDcxLjM4NyBMIDEzLjAzNyAxNS4zODEgTCAxMi41OTggMTUuMzgxIEEgMTUwNS4wOTMgMTUwNS4wOTMgMCAwIDEgMTIuOTU5IDIyLjMxMyBRIDEzLjQyNiAzMS43MTUgMTMuNTA4IDM2LjQgQSAxMDIuOTkxIDEwMi45OTEgMCAwIDEgMTMuNTI1IDM4LjE4NCBMIDEzLjUyNSA3MS4zODcgTCAwIDcxLjM4NyBMIDAgMCBMIDIwLjYwNSAwIEwgMzcuNSA1NC41OSBMIDM3Ljc5MyA1NC41OSBMIDU1LjcxMyAwIEwgNzYuMzE4IDAgTCA3Ni4zMTggNzEuMzg3IEwgNjIuMjA3IDcxLjM4NyBMIDYyLjIwNyAzNy41OTggUSA2Mi4yMDcgMzUuMjA1IDYyLjI4IDMyLjA4IEEgMTYwLjcwMyAxNjAuNzAzIDAgMCAxIDYyLjMyNiAzMC41NDQgUSA2Mi40NTIgMjYuNzU0IDYyLjg2NiAxNy4xNjggQSA1MzkwLjUzNiA1MzkwLjUzNiAwIDAgMSA2Mi45MzkgMTUuNDc5IEwgNjIuNSAxNS40NzkgTCA0NC4wOTIgNzEuMzg3IFpcXFwiIH0sIHZvaWQgMCksIHsgd2lkdGg6IDc3LCBoZWlnaHQ6IDc1IH0pKTtcXG5jb25zdCBGb250U2l6ZUxhcmdlSWNvbiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLm1lbW8oKHsgdGhlbWUgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGZpbGw6IGljb25GaWxsQ29sb3IodGhlbWUpLCBkOiBcXFwiTSA0NC4wOTIgNzEuMzg3IEwgMCA3MS4zODcgTCAwIDAgTCAxNS4xMzcgMCBMIDE1LjEzNyA1OC44ODcgTCA0NC4wOTIgNTguODg3IEwgNDQuMDkyIDcxLjM4NyBaXFxcIiB9LCB2b2lkIDApLCB7IHdpZHRoOiA0NSwgaGVpZ2h0OiA3NSB9KSk7XFxuY29uc3QgRm9udFNpemVFeHRyYUxhcmdlSWNvbiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLm1lbW8oKHsgdGhlbWUgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGZpbGw6IGljb25GaWxsQ29sb3IodGhlbWUpLCBkOiBcXFwiTSA0Mi41NzggMzUuNCBMIDY2LjY5OSA3MS4zODcgTCA0OS40MTQgNzEuMzg3IEwgMzIuODEzIDQ0LjM4NSBMIDE2LjIxMSA3MS4zODcgTCAwIDcxLjM4NyBMIDIzLjY4MiAzNC41NyBMIDEuNTE0IDAgTCAxOC4yMTMgMCBMIDMzLjU5NCAyNS42ODQgTCA0OC42ODIgMCBMIDY0Ljk5IDAgTCA0Mi41NzggMzUuNCBaIE0gMTE5Ljc3NSA3MS4zODcgTCA3NS42ODQgNzEuMzg3IEwgNzUuNjg0IDAgTCA5MC44MiAwIEwgOTAuODIgNTguODg3IEwgMTE5Ljc3NSA1OC44ODcgTCAxMTkuNzc1IDcxLjM4NyBaXFxcIiB9LCB2b2lkIDApLCB7IHdpZHRoOiAxMjAsIGhlaWdodDogNzUgfSkpO1xcbmNvbnN0IEZvbnRGYW1pbHlIYW5kRHJhd25JY29uID0gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0KCkubWVtbygoeyB0aGVtZSB9KSA9PiBjcmVhdGVJY29uKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZmlsbDogaWNvbkZpbGxDb2xvcih0aGVtZSksIGQ6IFxcXCJNMjkwLjc0IDkzLjI0bDEyOC4wMiAxMjguMDItMjc3Ljk5IDI3Ny45OS0xMTQuMTQgMTIuNkMxMS4zNSA1MTMuNTQtMS41NiA1MDAuNjIuMTQgNDg1LjM0bDEyLjctMTE0LjIyIDI3Ny45LTI3Ny44OHptMjA3LjItMTkuMDZsLTYwLjExLTYwLjExYy0xOC43NS0xOC43NS00OS4xNi0xOC43NS02Ny45MSAwbC01Ni41NSA1Ni41NSAxMjguMDIgMTI4LjAyIDU2LjU1LTU2LjU1YzE4Ljc1LTE4Ljc2IDE4Ljc1LTQ5LjE2IDAtNjcuOTF6XFxcIiB9LCB2b2lkIDApLCB7IHdpZHRoOiA0NDgsIGhlaWdodDogNTEyIH0pKTtcXG5jb25zdCBGb250RmFtaWx5Tm9ybWFsSWNvbiA9IHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLm1lbW8oKHsgdGhlbWUgfSkgPT4gY3JlYXRlSWNvbigoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46IFsoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGZpbGw6IGljb25GaWxsQ29sb3IodGhlbWUpLCBkOiBcXFwiTSA2My44MTggNzEuNjggTCA1NC40OTIgNzEuNjggTCA0NS44OTggNDkuNTYxIEwgMTcuNTc4IDQ5LjU2MSBMIDkuMDgyIDcxLjY4IEwgMCA3MS42OCBMIDI3Ljg4MSAwIEwgMzUuOTg2IDAgTCA2My44MTggNzEuNjggWiBNIDIwLjYwNSA0MS42MDIgTCA0My4yMTMgNDEuNjAyIEwgMzUuMjA1IDE5Ljk3MSBMIDMxLjc4NyA5LjI3NyBRIDMwLjMyMiAxNS4xMzcgMjguNzExIDE5Ljk3MSBMIDIwLjYwNSA0MS42MDIgWlxcXCIgfSwgdm9pZCAwKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBmaWxsOiBpY29uRmlsbENvbG9yKHRoZW1lKSwgZDogXFxcIk0gNjguOTk0IDcxLjY4IEwgNTIuNjg2IDcxLjY4IEwgNDcuNTEgNTQuNjg4IEwgMjEuNDg0IDU0LjY4OCBMIDE2LjMwOSA3MS42OCBMIDAgNzEuNjggTCAyNS4xOTUgMCBMIDQzLjcwMSAwIEwgNjguOTk0IDcxLjY4IFogTSAyNS4yOTMgNDEuOTkyIEwgNDMuODk2IDQxLjk5MiBBIDI3NTkwLjQ2MyAyNzU5MC40NjMgMCAwIDEgNDIuMiAzNi41MzIgUSAzNi45NjUgMTkuNjc2IDM1LjkzNyAxNi4yNzMgQSAxMjAuOTMyIDEyMC45MzIgMCAwIDEgMzUuODE1IDE1Ljg2OSBBIDEzMS42NSAxMzEuNjUgMCAwIDEgMzUuMzk2IDE0LjQzNSBRIDM0Ljk1MSAxMi44NzkgMzQuNjc1IDExLjc0MSBBIDM0Ljg2NiAzNC44NjYgMCAwIDEgMzQuNTIxIDExLjA4NCBBIDE0MS43NjIgMTQxLjc2MiAwIDAgMSAzMy43MDYgMTQuMDc1IFEgMzEuNDgyIDIxLjk1NyAyNS4yOTMgNDEuOTkyIFpcXFwiIH0sIHZvaWQgMCldIH0sIHZvaWQgMCksIHsgd2lkdGg6IDcwLCBoZWlnaHQ6IDc4IH0pKTtcXG5jb25zdCBGb250RmFtaWx5Q29kZUljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lIH0pID0+IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRnJhZ21lbnQsIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZmlsbDogaWNvbkZpbGxDb2xvcih0aGVtZSksIGQ6IFxcXCJNMjc4LjkgNTExLjVsLTYxLTE3LjdjLTYuNC0xLjgtMTAtOC41LTguMi0xNC45TDM0Ni4yIDguN2MxLjgtNi40IDguNS0xMCAxNC45LTguMmw2MSAxNy43YzYuNCAxLjggMTAgOC41IDguMiAxNC45TDI5My44IDUwMy4zYy0xLjkgNi40LTguNSAxMC4xLTE0LjkgOC4yem0tMTE0LTExMi4ybDQzLjUtNDYuNGM0LjYtNC45IDQuMy0xMi43LS44LTE3LjJMMTE3IDI1Nmw5MC42LTc5LjdjNS4xLTQuNSA1LjUtMTIuMy44LTE3LjJsLTQzLjUtNDYuNGMtNC41LTQuOC0xMi4xLTUuMS0xNy0uNUwzLjggMjQ3LjJjLTUuMSA0LjctNS4xIDEyLjggMCAxNy41bDE0NC4xIDEzNS4xYzQuOSA0LjYgMTIuNSA0LjQgMTctLjV6bTMyNy4yLjZsMTQ0LjEtMTM1LjFjNS4xLTQuNyA1LjEtMTIuOCAwLTE3LjVMNDkyLjEgMTEyLjFjLTQuOC00LjUtMTIuNC00LjMtMTcgLjVMNDMxLjYgMTU5Yy00LjYgNC45LTQuMyAxMi43LjggMTcuMkw1MjMgMjU2bC05MC42IDc5LjdjLTUuMSA0LjUtNS41IDEyLjMtLjggMTcuMmw0My41IDQ2LjRjNC41IDQuOSAxMi4xIDUuMSAxNyAuNnpcXFwiIH0sIHZvaWQgMCkgfSwgdm9pZCAwKSwgeyB3aWR0aDogNjQwLCBoZWlnaHQ6IDUxMiB9KSk7XFxuY29uc3QgVGV4dEFsaWduTGVmdEljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lIH0pID0+IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTEyLjgzIDM1MmgyNjIuMzRBMTIuODIgMTIuODIgMCAwMDI4OCAzMzkuMTd2LTM4LjM0QTEyLjgyIDEyLjgyIDAgMDAyNzUuMTcgMjg4SDEyLjgzQTEyLjgyIDEyLjgyIDAgMDAwIDMwMC44M3YzOC4zNEExMi44MiAxMi44MiAwIDAwMTIuODMgMzUyem0wLTI1NmgyNjIuMzRBMTIuODIgMTIuODIgMCAwMDI4OCA4My4xN1Y0NC44M0ExMi44MiAxMi44MiAwIDAwMjc1LjE3IDMySDEyLjgzQTEyLjgyIDEyLjgyIDAgMDAwIDQ0LjgzdjM4LjM0QTEyLjgyIDEyLjgyIDAgMDAxMi44MyA5NnpNNDMyIDE2MEgxNmExNiAxNiAwIDAwLTE2IDE2djMyYTE2IDE2IDAgMDAxNiAxNmg0MTZhMTYgMTYgMCAwMDE2LTE2di0zMmExNiAxNiAwIDAwLTE2LTE2em0wIDI1NkgxNmExNiAxNiAwIDAwLTE2IDE2djMyYTE2IDE2IDAgMDAxNiAxNmg0MTZhMTYgMTYgMCAwMDE2LTE2di0zMmExNiAxNiAwIDAwLTE2LTE2elxcXCIsIGZpbGw6IGljb25GaWxsQ29sb3IodGhlbWUpLCBzdHJva2VMaW5lY2FwOiBcXFwicm91bmRcXFwiIH0sIHZvaWQgMCksIHsgd2lkdGg6IDQ0OCwgaGVpZ2h0OiA1MTIgfSkpO1xcbmNvbnN0IFRleHRBbGlnbkNlbnRlckljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lIH0pID0+IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTQzMiAxNjBIMTZhMTYgMTYgMCAwMC0xNiAxNnYzMmExNiAxNiAwIDAwMTYgMTZoNDE2YTE2IDE2IDAgMDAxNi0xNnYtMzJhMTYgMTYgMCAwMC0xNi0xNnptMCAyNTZIMTZhMTYgMTYgMCAwMC0xNiAxNnYzMmExNiAxNiAwIDAwMTYgMTZoNDE2YTE2IDE2IDAgMDAxNi0xNnYtMzJhMTYgMTYgMCAwMC0xNi0xNnpNMTA4LjEgOTZoMjMxLjgxQTEyLjA5IDEyLjA5IDAgMDAzNTIgODMuOVY0NC4wOUExMi4wOSAxMi4wOSAwIDAwMzM5LjkxIDMySDEwOC4xQTEyLjA5IDEyLjA5IDAgMDA5NiA0NC4wOVY4My45QTEyLjEgMTIuMSAwIDAwMTA4LjEgOTZ6bTIzMS44MSAyNTZBMTIuMDkgMTIuMDkgMCAwMDM1MiAzMzkuOXYtMzkuODFBMTIuMDkgMTIuMDkgMCAwMDMzOS45MSAyODhIMTA4LjFBMTIuMDkgMTIuMDkgMCAwMDk2IDMwMC4wOXYzOS44MWExMi4xIDEyLjEgMCAwMDEyLjEgMTIuMXpcXFwiLCBmaWxsOiBpY29uRmlsbENvbG9yKHRoZW1lKSB9LCB2b2lkIDApLCB7IHdpZHRoOiA0NDgsIGhlaWdodDogNTEyIH0pKTtcXG5jb25zdCBUZXh0QWxpZ25SaWdodEljb24gPSByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKS5tZW1vKCh7IHRoZW1lIH0pID0+IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTE2IDIyNGg0MTZhMTYgMTYgMCAwMDE2LTE2di0zMmExNiAxNiAwIDAwLTE2LTE2SDE2YTE2IDE2IDAgMDAtMTYgMTZ2MzJhMTYgMTYgMCAwMDE2IDE2em00MTYgMTkySDE2YTE2IDE2IDAgMDAtMTYgMTZ2MzJhMTYgMTYgMCAwMDE2IDE2aDQxNmExNiAxNiAwIDAwMTYtMTZ2LTMyYTE2IDE2IDAgMDAtMTYtMTZ6bTMuMTctMzg0SDE3Mi44M0ExMi44MiAxMi44MiAwIDAwMTYwIDQ0LjgzdjM4LjM0QTEyLjgyIDEyLjgyIDAgMDAxNzIuODMgOTZoMjYyLjM0QTEyLjgyIDEyLjgyIDAgMDA0NDggODMuMTdWNDQuODNBMTIuODIgMTIuODIgMCAwMDQzNS4xNyAzMnptMCAyNTZIMTcyLjgzQTEyLjgyIDEyLjgyIDAgMDAxNjAgMzAwLjgzdjM4LjM0QTEyLjgyIDEyLjgyIDAgMDAxNzIuODMgMzUyaDI2Mi4zNEExMi44MiAxMi44MiAwIDAwNDQ4IDMzOS4xN3YtMzguMzRBMTIuODIgMTIuODIgMCAwMDQzNS4xNyAyODh6XFxcIiwgZmlsbDogaWNvbkZpbGxDb2xvcih0aGVtZSksIHN0cm9rZUxpbmVjYXA6IFxcXCJyb3VuZFxcXCIgfSwgdm9pZCAwKSwgeyB3aWR0aDogNDQ4LCBoZWlnaHQ6IDUxMiB9KSk7XFxuY29uc3QgcHVibGlzaEljb24gPSBjcmVhdGVJY29uKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk01MzcuNiAyMjYuNmM0LjEtMTAuNyA2LjQtMjIuNCA2LjQtMzQuNiAwLTUzLTQzLTk2LTk2LTk2LTE5LjcgMC0zOC4xIDYtNTMuMyAxNi4yQzM2NyA2NC4yIDMxNS4zIDMyIDI1NiAzMmMtODguNCAwLTE2MCA3MS42LTE2MCAxNjAgMCAyLjcuMSA1LjQuMiA4LjFDNDAuMiAyMTkuOCAwIDI3My4yIDAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0aDM2OGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTYxLjktNDQtMTEzLjYtMTAyLjQtMTI1LjR6TTM5My40IDI4OEgzMjh2MTEyYzAgOC44LTcuMiAxNi0xNiAxNmgtNDhjLTguOCAwLTE2LTcuMi0xNi0xNlYyODhoLTY1LjRjLTE0LjMgMC0yMS40LTE3LjItMTEuMy0yNy4zbDEwNS40LTEwNS40YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDEwNS40IDEwNS40YzEwLjEgMTAuMSAyLjkgMjcuMy0xMS4zIDI3LjN6XFxcIiwgZmlsbDogXFxcImN1cnJlbnRDb2xvclxcXCIgfSwgdm9pZCAwKSwgeyB3aWR0aDogNjQwLCBoZWlnaHQ6IDUxMiB9KTtcXG5jb25zdCBlZGl0SWNvbiA9IGNyZWF0ZUljb24oKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBmaWxsOiBcXFwiY3VycmVudENvbG9yXFxcIiwgZDogXFxcIk00MDIuMyAzNDQuOWwzMi0zMmM1LTUgMTMuNy0xLjUgMTMuNyA1LjdWNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhoMjczLjVjNy4xIDAgMTAuNyA4LjYgNS43IDEzLjdsLTMyIDMyYy0xLjUgMS41LTMuNSAyLjMtNS43IDIuM0g0OHYzNTJoMzUyVjM1MC41YzAtMi4xLjgtNC4xIDIuMy01LjZ6bTE1Ni42LTIwMS44TDI5Ni4zIDQwNS43bC05MC40IDEwYy0yNi4yIDIuOS00OC41LTE5LjItNDUuNi00NS42bDEwLTkwLjRMNDMyLjkgMTcuMWMyMi45LTIyLjkgNTkuOS0yMi45IDgyLjcgMGw0My4yIDQzLjJjMjIuOSAyMi45IDIyLjkgNjAgLjEgODIuOHpNNDYwLjEgMTc0TDQwMiAxMTUuOSAyMTYuMiAzMDEuOGwtNy4zIDY1LjMgNjUuMy03LjNMNDYwLjEgMTc0em02NC44LTc5LjdsLTQzLjItNDMuMmMtNC4xLTQuMS0xMC44LTQuMS0xNC44IDBMNDM2IDgybDU4LjEgNTguMSAzMC45LTMwLjljNC00LjIgNC0xMC44LS4xLTE0Ljl6XFxcIiB9LCB2b2lkIDApLCB7IHdpZHRoOiA2NDAsIGhlaWdodDogNTEyIH0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WTI5dGNHOXVaVzUwY3k5cFkyOXVjeTUwYzNndWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJRVUVzUlVGQlJUdEJRVU5HTEhORlFVRnpSVHRCUVVOMFJTdzRSRUZCT0VRN1FVRkRPVVFzUlVGQlJUdEJRVVZHTEhOSVFVRnpTRHRCUVVOMFNDeDFSa0ZCZFVZN1FVRkZOMFE3UVVGRlJUdEJRVU5LTzBGQlJXRTdRVUZGY2tNc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4RFFVRkRMRXRCUVZrc1JVRkJSU3hGUVVGRkxFTkJRekZETEV0QlFVc3NTMEZCU3l4dFJFRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eHBSRUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhwUkVGQldTeERRVUZETzBGQlJYUkVMRTFCUVUwc1lVRkJZU3hIUVVGSExFTkJRVU1zUzBGQldTeEZRVUZGTEVWQlFVVXNRMEZCUXl4M1FrRkJkMElzUTBGQlF6dEJRVVZxUlN4TlFVRk5MRmxCUVZrc1IwRkJSeXhEUVVGRExFdEJRVmtzUlVGQlJTeEZRVUZGTEVOQlEzQkRMRXRCUVVzc1MwRkJTeXh0UkVGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl3MlEwRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTTdRVUZSZUVNc1RVRkJUU3hWUVVGVkxFZEJRVWNzUTBGRGVFSXNRMEZCTWtJc1JVRkRNMElzVDBGQmMwSXNSMEZCUnl4RlFVTjZRaXhGUVVGRk8wbEJRMFlzVFVGQlRTeEZRVU5LTEV0QlFVc3NSMEZCUnl4SFFVRkhMRVZCUTFnc1RVRkJUU3hIUVVGSExFdEJRVXNzUlVGRFpDeE5RVUZOTEVWQlEwNHNTMEZCU3l4SFFVTk9MRWRCUVVjc1QwRkJUeXhKUVVGSkxFdEJRVXNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hKUVVGSkxFVkJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMGxCUTJoRkxFOUJRVThzUTBGRFRDdzJSa0ZEWXl4TlFVRk5MRVZCUTJ4Q0xGTkJRVk1zUlVGQlF5eFBRVUZQTEVWQlEycENMRWxCUVVrc1JVRkJReXhMUVVGTExFVkJRMVlzVDBGQlR5eEZRVUZGTEU5QlFVOHNTMEZCU3l4SlFVRkpMRTFCUVUwc1JVRkJSU3hGUVVOcVF5eFRRVUZUTEVWQlFVVXNaMFJCUVVrc1EwRkJReXhGUVVGRkxGbEJRVmtzUlVGQlJTeE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVTjZReXhMUVVGTExFVkJRVVVzUzBGQlN5eG5Ra0ZGV0N4UFFVRlBMRU5CUVVNc1MwRkJTeXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEdsRlFVRk5MRWxCUVVrc1JVRkJReXhqUVVGakxFVkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNWMEZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRek5FTEVOQlExQXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzVTBGQlV5eEhRVUZITEZWQlFWVXNRMEZEYWtNc2NVVkJRVlVzU1VGQlNTeEZRVUZETEUxQlFVMHNSVUZCUXl4TlFVRk5MRVZCUVVNc1kwRkJZeXhGUVVGRExFMUJRVTBzUlVGQlF5eG5Ra0ZCWjBJc1YwRkJSeXhGUVVOMFJUdEpRVU5GTEV0QlFVc3NSVUZCUlN4RlFVRkZPMGxCUTFRc1RVRkJUU3hGUVVGRkxFVkJRVVU3UTBGRFdDeERRVU5HTEVOQlFVTTdRVUZGU3l4TlFVRk5MRWxCUVVrc1IwRkJSeXhWUVVGVkxFTkJRelZDTEdsMVEwRkJhWFZETEVWQlEycDFReXhGUVVGRkxFMUJRVTBzUlVGQlJTeEpRVUZKTEVWQlFVVXNRMEZEYWtJc1EwRkJRenRCUVVWTExFMUJRVTBzU1VGQlNTeEhRVUZITEZWQlFWVXNRMEZETlVJc01tSkJRVEppTEVWQlF6TmlMRVZCUVVVc1MwRkJTeXhGUVVGRkxFZEJRVWNzUlVGQlJTeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUXpWQ0xFTkJRVU03UVVGRlN5eE5RVUZOTEUxQlFVMHNSMEZCUnl4VlFVRlZMRU5CUXpsQ0xHbFpRVUZwV1N4RlFVTnFXU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVNMVFpeERRVUZETzBGQlJVc3NUVUZCVFN4SlFVRkpMRWRCUVVjc1ZVRkJWU3hEUVVNMVFpeHZWVUZCYjFVc1JVRkRjRlVzUlVGQlJTeExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzVFVGQlRTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVTXhReXhEUVVGRE8wRkJSVXNzVFVGQlRTeFRRVUZUTEVkQlFVY3NWVUZCVlN4RFFVTnFReXdyVkVGQksxUXNSVUZETDFRc1JVRkJSU3hMUVVGTExFVkJRVVVzUjBGQlJ5eEZRVUZGTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkROVUlzUTBGQlF6dEJRVVZMTEUxQlFVMHNTMEZCU3l4SFFVRkhMRlZCUVZVc1EwRkROMElzZVZkQlFYbFhMRVZCUlhwWExFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NSVUZCUlN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRelZDTEVOQlFVTTdRVUZGU3l4TlFVRk5MRTlCUVU4c1IwRkJSeXhWUVVGVkxFTkJReTlDTEcxbFFVRnRaU3hEUVVOd1pTeERRVUZETzBGQlJVc3NUVUZCVFN4VlFVRlZMRWRCUVVjc1ZVRkJWU3hEUVVOc1F5eG5XRUZCWjFnc1JVRkRhRmdzUlVGQlJTeExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzVFVGQlRTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVTXhReXhEUVVGRE8wRkJSVXNzVFVGQlRTeFhRVUZYTEVkQlFVY3NWVUZCVlN4RFFVTnVReXc0U0VGRFJTeHBSVUZCVFN4RFFVRkRMRVZCUVVNc09FbEJRVGhKTEZkQlFVY3NSVUZEZWtvc2FVVkJRVTBzUTBGQlF5eEZRVUZETEdka1FVRm5aQ3hYUVVGSExGbEJRekZrTEVWQlEwZ3NSVUZCUlN4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRkxFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVNeFF5eERRVUZETzBGQlJVc3NUVUZCVFN4blFrRkJaMElzUjBGQlJ5eFZRVUZWTEVOQlEzaERMRFJpUVVFMFlpeEZRVU0xWWl4RlFVRkZMRXRCUVVzc1JVRkJSU3hIUVVGSExFVkJRVVVzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVTTFRaXhEUVVGRE8wRkJSVXNzVFVGQlRTeE5RVUZOTEVkQlFVY3NWVUZCVlN4RFFVTTVRaXhwVUVGQmFWQXNSVUZEYWxBc1JVRkJSU3hMUVVGTExFVkJRVVVzUjBGQlJ5eEZRVUZGTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkROVUlzUTBGQlF6dEJRVVZMTEUxQlFVMHNUMEZCVHl4SFFVRkhMRlZCUVZVc1EwRkRMMElzYzBoQlFYTklMRVZCUTNSSUxFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NSVUZCUlN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRelZDTEVOQlFVTTdRVUZGU3l4TlFVRk5MRWxCUVVrc1IwRkJSeXhWUVVGVkxFTkJRelZDTEc5U1FVRnZVaXhEUVVOeVVpeERRVUZETzBGQlJVc3NUVUZCVFN4SlFVRkpMRWRCUVVjc1ZVRkJWU3hEUVVNMVFpeDFWa0ZCZFZZc1EwRkRlRllzUTBGQlF6dEJRVVZMTEUxQlFVMHNTVUZCU1N4SFFVRkhMRlZCUVZVc1EwRkROVUlzYTJsQ1FVRnJhVUlzUlVGRGJHbENMRVZCUVVVc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJTeERRVU5xUWl4RFFVRkRPMEZCUlVzc1RVRkJUU3hKUVVGSkxFZEJRVWNzVlVGQlZTeERRVU0xUWl4dGFVSkJRVzFwUWl4RlFVTnVhVUlzUlVGQlJTeE5RVUZOTEVWQlFVVXNTVUZCU1N4RlFVRkZMRU5CUTJwQ0xFTkJRVU03UVVGRlN5eE5RVUZOTEdOQlFXTXNSMEZCUnl4VlFVRlZMRU5CUTNSRExHZHVRa0ZCWjI1Q0xFVkJRMmh1UWl4RlFVRkZMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVVVzUTBGRGFrSXNRMEZCUXp0QlFVVkxMRTFCUVUwc1MwRkJTeXhIUVVGSExGVkJRVlVzUTBGRE4wSXNlVmRCUVhsWExFVkJRM3BYTEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVc1JVRkJSU3hOUVVGTkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlF6RkNMRU5CUVVNN1FVRkZTeXhOUVVGTkxGRkJRVkVzUjBGQlJ5eFZRVUZWTEVOQlEyaERMRzlMUVVGdlN5eEZRVU53U3l4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVTXhRaXhEUVVGRE8wRkJSVXNzVFVGQlRTeFpRVUZaTEVkQlFVY3NWVUZCVlN4RFFVTndReXc0U0VGRFJTeHBSVUZEUlN4TlFVRk5MRVZCUVVNc1kwRkJZeXhGUVVOeVFpeEpRVUZKTEVWQlFVTXNZMEZCWXl4RlFVTnVRaXhEUVVGRExFVkJRVU1zTUZWQlFUQlZMRmRCUXpWVkxFVkJRMFlzYVVWQlEwVXNUVUZCVFN4RlFVRkRMR05CUVdNc1JVRkRja0lzU1VGQlNTeEZRVUZETEdOQlFXTXNSVUZEYmtJc1EwRkJReXhGUVVGRExEQkdRVUV3Uml4WFFVTTFSaXhaUVVORUxFVkJRMGdzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGRE1VSXNRMEZCUXp0QlFVVkdMQ3RDUVVFclFqdEJRVU12UWl3MlJrRkJOa1k3UVVGRGRFWXNUVUZCVFN4VFFVRlRMRWRCUVVjc1ZVRkJWU3hEUVVOcVF5eHBSVUZEUlN4TlFVRk5MRVZCUVVNc1kwRkJZeXhGUVVOeVFpeFhRVUZYTEVWQlFVTXNTVUZCU1N4RlFVTm9RaXhKUVVGSkxFVkJRVU1zWTBGQll5eEZRVU51UWl4RFFVRkRMRVZCUVVNc01GTkJRVEJUTEZkQlF6VlRMRVZCUTBZc1JVRkJSU3hMUVVGTExFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlEyaENMRU5CUVVNN1FVRkZTeXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMR2xFUVVGVkxFTkJRVU1zUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCYjBJc1JVRkJSU3hGUVVGRkxFTkJRM3BGTEZWQlFWVXNRMEZEVWl3NFNFRkRSU3hwUlVGRFJTeERRVUZETEVWQlFVTXNlVWhCUVhsSUxFVkJRek5JTEVsQlFVa3NSVUZCUlN4aFFVRmhMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRekZDTEUxQlFVMHNSVUZCUlN4aFFVRmhMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRelZDTEZkQlFWY3NSVUZCUXl4SFFVRkhMRmRCUTJZc1JVRkRSaXhwUlVGRFJTeERRVUZETEVWQlFVTXNhVXBCUVdsS0xFVkJRMjVLTEVsQlFVa3NSVUZCUlN4clFrRkJhMElzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZETDBJc1RVRkJUU3hGUVVGRkxHdENRVUZyUWl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVOcVF5eFhRVUZYTEVWQlFVTXNSMEZCUnl4WFFVTm1MRmxCUTBRc1JVRkRTQ3hGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVNMVFpeERRVU5HTEVOQlFVTTdRVUZGU3l4TlFVRk5MR2RDUVVGblFpeEhRVUZITEdsRVFVRlZMRU5CUVVNc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQmIwSXNSVUZCUlN4RlFVRkZMRU5CUTNwRkxGVkJRVlVzUTBGRFVpdzRTRUZEUlN4cFJVRkRSU3hEUVVGRExFVkJRVU1zYVVwQlFXbEtMRVZCUTI1S0xFbEJRVWtzUlVGQlJTeHJRa0ZCYTBJc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGREwwSXNUVUZCVFN4RlFVRkZMR3RDUVVGclFpeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVTnFReXhYUVVGWExFVkJRVU1zUjBGQlJ5eFhRVU5tTEVWQlEwWXNhVVZCUTBVc1EwRkJReXhGUVVGRExHbEtRVUZwU2l4RlFVTnVTaXhKUVVGSkxFVkJRVVVzWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVTXhRaXhOUVVGTkxFVkJRVVVzWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVTTFRaXhYUVVGWExFVkJRVU1zUjBGQlJ5eFhRVU5tTEZsQlEwUXNSVUZEU0N4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVTTFRaXhEUVVOR0xFTkJRVU03UVVGRlN5eE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExHbEVRVUZWTEVOQlFVTXNRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJiMElzUlVGQlJTeEZRVUZGTEVOQlEzcEZMRlZCUVZVc1EwRkRVaXc0U0VGRFJTeHBSVUZEUlN4RFFVRkRMRVZCUVVNc2NVaEJRWEZJTEVWQlEzWklMRWxCUVVrc1JVRkJSU3hoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6RkNMRTFCUVUwc1JVRkJSU3hoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6VkNMRmRCUVZjc1JVRkJReXhIUVVGSExGZEJRMllzUlVGRFJpeHBSVUZEUlN4RFFVRkRMRVZCUVVNc1owcEJRV2RLTEVWQlEyeEtMRWxCUVVrc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkRMMElzVFVGQlRTeEZRVUZGTEd0Q1FVRnJRaXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVU5xUXl4WFFVRlhMRVZCUVVNc1IwRkJSeXhYUVVObUxGbEJRMFFzUlVGRFNDeEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZMRVZCUVVVc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJTeERRVU0xUWl4RFFVTkdMRU5CUVVNN1FVRkZTeXhOUVVGTkxHTkJRV01zUjBGQlJ5eHBSRUZCVlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hMUVVGTExFVkJRVzlDTEVWQlFVVXNSVUZCUlN4RFFVTjJSU3hWUVVGVkxFTkJRMUlzT0VoQlEwVXNhVVZCUTBVc1EwRkJReXhGUVVGRExHZEtRVUZuU2l4RlFVTnNTaXhKUVVGSkxFVkJRVVVzYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJReTlDTEUxQlFVMHNSVUZCUlN4clFrRkJhMElzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZEYWtNc1YwRkJWeXhGUVVGRExFZEJRVWNzVjBGRFppeEZRVU5HTEdsRlFVTkZMRU5CUVVNc1JVRkJReXcyUjBGQk5rY3NSVUZETDBjc1NVRkJTU3hGUVVGRkxHRkJRV0VzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZETVVJc1RVRkJUU3hGUVVGRkxHRkJRV0VzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZETlVJc1YwRkJWeXhGUVVGRExFZEJRVWNzVjBGRFppeFpRVU5FTEVWQlEwZ3NSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEpRVUZKTEVWQlFVVXNRMEZETlVJc1EwRkRSaXhEUVVGRE8wRkJSVVlzUlVGQlJUdEJRVU5HTERSRlFVRTBSVHRCUVVNMVJTd3dSVUZCTUVVN1FVRkRNVVVzT0VWQlFUaEZPMEZCUXpsRkxHbEVRVUZwUkR0QlFVTnFSQ3hGUVVGRk8wRkJRMHNzVFVGQlRTeFpRVUZaTEVkQlFVY3NhVVJCUVZVc1EwRkJReXhEUVVGRExFVkJRVVVzUzBGQlN5eEZRVUZ2UWl4RlFVRkZMRVZCUVVVc1EwRkRja1VzVlVGQlZTeERRVU5TTERoSVFVTkZMR2xGUVVORkxFTkJRVU1zUlVGQlF5eFpRVUZaTEVWQlEyUXNTVUZCU1N4RlFVRkZMR0ZCUVdFc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGRE1VSXNUVUZCVFN4RlFVRkZMR0ZCUVdFc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGRE5VSXNWMEZCVnl4RlFVRkRMRWRCUVVjc1JVRkRaaXhoUVVGaExFVkJRVU1zVDBGQlR5eFhRVU55UWl4RlFVTkdMR2xGUVVORkxFTkJRVU1zUlVGQlF5eHpVa0ZCYzFJc1JVRkRlRklzU1VGQlNTeEZRVUZGTEd0Q1FVRnJRaXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVU12UWl4TlFVRk5MRVZCUVVVc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUTJwRExGZEJRVmNzUlVGQlF5eEhRVUZITEZkQlEyWXNXVUZEUkN4RlFVTklMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUlVGQlJTeE5RVUZOTEVWQlFVVXNTVUZCU1N4RlFVRkZMRU5CUXpWQ0xFTkJRMFlzUTBGQlF6dEJRVVZMTEUxQlFVMHNaVUZCWlN4SFFVRkhMR2xFUVVGVkxFTkJRVU1zUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCYjBJc1JVRkJSU3hGUVVGRkxFTkJRM2hGTEZWQlFWVXNRMEZEVWl3NFNFRkRSU3hwUlVGRFJTeERRVUZETEVWQlFVTXNZVUZCWVN4RlFVTm1MRWxCUVVrc1JVRkJSU3hoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6RkNMRTFCUVUwc1JVRkJSU3hoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6VkNMRmRCUVZjc1JVRkJReXhIUVVGSExFVkJRMllzWVVGQllTeEZRVUZETEU5QlFVOHNWMEZEY2tJc1JVRkRSaXhwUlVGRFJTeERRVUZETEVWQlFVTXNNbEpCUVRKU0xFVkJRemRTTEVsQlFVa3NSVUZCUlN4clFrRkJhMElzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZETDBJc1RVRkJUU3hGUVVGRkxHdENRVUZyUWl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVOcVF5eFhRVUZYTEVWQlFVTXNSMEZCUnl4WFFVTm1MRmxCUTBRc1JVRkRTQ3hGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVNMVFpeERRVU5HTEVOQlFVTTdRVUZGU3l4TlFVRk5MR0ZCUVdFc1IwRkJSeXhwUkVGQlZTeERRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVc5Q0xFVkJRVVVzUlVGQlJTeERRVU4wUlN4VlFVRlZMRU5CUTFJc09FaEJRMFVzYVVWQlEwVXNRMEZCUXl4RlFVRkRMRmxCUVZrc1JVRkRaQ3hKUVVGSkxFVkJRVVVzWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVTXhRaXhOUVVGTkxFVkJRVVVzWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVTTFRaXhYUVVGWExFVkJRVU1zUjBGQlJ5eEZRVU5tTEdGQlFXRXNSVUZCUXl4UFFVRlBMRmRCUTNKQ0xFVkJRMFlzYVVWQlEwVXNRMEZCUXl4RlFVRkRMREpVUVVFeVZDeEZRVU0zVkN4SlFVRkpMRVZCUVVVc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUXk5Q0xFMUJRVTBzUlVGQlJTeHJRa0ZCYTBJc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGRGFrTXNWMEZCVnl4RlFVRkRMRWRCUVVjc1YwRkRaaXhaUVVORUxFVkJRMGdzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUTJRc1EwRkRSaXhEUVVGRE8wRkJSVXNzVFVGQlRTeGpRVUZqTEVkQlFVY3NhVVJCUVZVc1EwRkJReXhEUVVGRExFVkJRVVVzUzBGQlN5eEZRVUZ2UWl4RlFVRkZMRVZCUVVVc1EwRkRka1VzVlVGQlZTeERRVU5TTERoSVFVTkZMR2xGUVVORkxFTkJRVU1zUlVGQlF5eGhRVUZoTEVWQlEyWXNTVUZCU1N4RlFVRkZMR0ZCUVdFc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGRE1VSXNUVUZCVFN4RlFVRkZMR0ZCUVdFc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGRE5VSXNWMEZCVnl4RlFVRkRMRWRCUVVjc1JVRkRaaXhoUVVGaExFVkJRVU1zVDBGQlR5eFhRVU55UWl4RlFVTkdMR2xGUVVORkxFTkJRVU1zUlVGQlF5dzJWRUZCTmxRc1JVRkRMMVFzU1VGQlNTeEZRVUZGTEd0Q1FVRnJRaXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVU12UWl4TlFVRk5MRVZCUVVVc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUTJwRExGZEJRVmNzUlVGQlF5eEhRVUZITEZkQlEyWXNXVUZEUkN4RlFVTklMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUlVGQlJTeERRVU5rTEVOQlEwWXNRMEZCUXp0QlFVVkxMRTFCUVUwc01FSkJRVEJDTEVkQlFVY3NhVVJCUVZVc1EwRkRiRVFzUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCYjBJc1JVRkJSU3hGUVVGRkxFTkJRemxDTEZWQlFWVXNRMEZEVWl3NFNFRkRSU3hwUlVGRFJTeERRVUZETEVWQlFVTXNhVUpCUVdsQ0xFVkJRMjVDTEUxQlFVMHNSVUZCUlN4aFFVRmhMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRelZDTEZkQlFWY3NSVUZCUXl4SFFVRkhMRVZCUTJZc1lVRkJZU3hGUVVGRExFOUJRVThzVjBGRGNrSXNSVUZEUml4cFJVRkRSU3hEUVVGRExFVkJRVU1zWjBoQlFXZElMRVZCUTJ4SUxFbEJRVWtzUlVGQlJTeHJRa0ZCYTBJc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGREwwSXNUVUZCVFN4RlFVRkZMR3RDUVVGclFpeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVTnFReXhYUVVGWExFVkJRVU1zUjBGQlJ5eFhRVU5tTEZsQlEwUXNSVUZEU0N4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGRFpDeERRVU5LTEVOQlFVTTdRVUZGU3l4TlFVRk5MSGRDUVVGM1FpeEhRVUZITEdsRVFVRlZMRU5CUTJoRUxFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFXOUNMRVZCUVVVc1JVRkJSU3hEUVVNNVFpeFZRVUZWTEVOQlExSXNPRWhCUTBVc2FVVkJRMFVzUTBGQlF5eEZRVUZETEcxQ1FVRnRRaXhGUVVOeVFpeEpRVUZKTEVWQlFVVXNZVUZCWVN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVNeFFpeE5RVUZOTEVWQlFVVXNZVUZCWVN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVNMVFpeFhRVUZYTEVWQlFVTXNSMEZCUnl4RlFVTm1MR0ZCUVdFc1JVRkJReXhQUVVGUExGZEJRM0pDTEVWQlEwWXNhVVZCUTBVc1EwRkJReXhGUVVGRExHZElRVUZuU0N4RlFVTnNTQ3hKUVVGSkxFVkJRVVVzYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJReTlDTEUxQlFVMHNSVUZCUlN4clFrRkJhMElzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZEYWtNc1YwRkJWeXhGUVVGRExFZEJRVWNzVjBGRFppeFpRVU5FTEVWQlEwZ3NSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRMlFzUTBGRFNpeERRVUZETzBGQlJVc3NUVUZCVFN4dlFrRkJiMElzUjBGQlJ5eHBSRUZCVlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hMUVVGTExFVkJRVzlDTEVWQlFVVXNSVUZCUlN4RFFVTTNSU3hWUVVGVkxFTkJRMUlzT0VoQlEwVXNhVVZCUTBVc1EwRkJReXhGUVVGRExHdFJRVUZyVVN4RlFVTndVU3hKUVVGSkxFVkJRVVVzYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJReTlDTEUxQlFVMHNSVUZCUlN4clFrRkJhMElzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZEYWtNc1YwRkJWeXhGUVVGRExFZEJRVWNzVjBGRFppeEZRVU5HTEdsRlFVTkZMRU5CUVVNc1JVRkJReXhoUVVGaExFVkJRMllzU1VGQlNTeEZRVUZGTEdGQlFXRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkRNVUlzVFVGQlRTeEZRVUZGTEdGQlFXRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkROVUlzVjBGQlZ5eEZRVUZETEVkQlFVY3NSVUZEWml4bFFVRmxMRVZCUVVNc1VVRkJVU3hGUVVONFFpeGhRVUZoTEVWQlFVTXNUMEZCVHl4WFFVTnlRaXhaUVVORUxFVkJRMGdzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVVVzUTBGRE5VSXNRMEZEUml4RFFVRkRPMEZCUlVzc1RVRkJUU3h6UWtGQmMwSXNSMEZCUnl4cFJFRkJWU3hEUVVNNVF5eERRVUZETEVWQlFVVXNTMEZCU3l4RlFVRnZRaXhGUVVGRkxFVkJRVVVzUTBGRE9VSXNWVUZCVlN4RFFVTlNMRGhJUVVORkxHbEZRVU5GTEVOQlFVTXNSVUZCUXl4MVVrRkJkVklzUlVGRGVsSXNTVUZCU1N4RlFVRkZMR3RDUVVGclFpeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVTXZRaXhOUVVGTkxFVkJRVVVzYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRMnBETEZkQlFWY3NSVUZCUXl4SFFVRkhMRmRCUTJZc1JVRkRSaXhwUlVGRFJTeERRVUZETEVWQlFVTXNZVUZCWVN4RlFVTm1MRWxCUVVrc1JVRkJSU3hoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6RkNMRTFCUVUwc1JVRkJSU3hoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6VkNMRmRCUVZjc1JVRkJReXhIUVVGSExFVkJRMllzWlVGQlpTeEZRVUZETEZGQlFWRXNSVUZEZUVJc1lVRkJZU3hGUVVGRExFOUJRVThzVjBGRGNrSXNXVUZEUkN4RlFVTklMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUlVGQlJTeERRVU5rTEVOQlEwb3NRMEZCUXp0QlFVVkxMRTFCUVUwc1MwRkJTeXhIUVVGSExGVkJRVlVzUTBGRE4wSXNlV1pCUVhsbUxFVkJRM3BtTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWRCUVVjc1JVRkJSU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1EwRkRNVU1zUTBGQlF6dEJRVVZHTEdkR1FVRm5SanRCUVVONlJTeE5RVUZOTEV0QlFVc3NSMEZCUnl4VlFVRlZMRU5CUXpkQ0xHMU1RVUZ0VEN4RFFVTndUQ3hEUVVGRE8wRkJSVXNzVFVGQlRTeEpRVUZKTEVkQlFVY3NWVUZCVlN4RFFVTTFRaXcwUzBGQk5Fc3NRMEZETjBzc1EwRkJRenRCUVVWTExFMUJRVTBzUzBGQlN5eEhRVUZITEZWQlFWVXNRMEZETjBJc2FXRkJRV2xoTEVWQlEycGhMRVZCUVVVc1MwRkJTeXhGUVVGRkxFZEJRVWNzUlVGQlJTeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUXpWQ0xFTkJRVU03UVVGRlN5eE5RVUZOTEVsQlFVa3NSMEZCUnl4VlFVRlZMRU5CUXpWQ0xHZFFRVUZuVUN4RlFVTm9VQ3hGUVVGRkxFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJTeFZRVUZWTEVWQlFVVXNVMEZCVXl4RlFVRkZMRVZCUVVVc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJTeERRVU0xUlN4RFFVRkRPMEZCUlVzc1RVRkJUU3hMUVVGTExFZEJRVWNzVlVGQlZTeERRVU0zUWl4dlVFRkJiMUFzUlVGRGNGQXNSVUZCUlN4TlFVRk5MRVZCUVVVc1NVRkJTU3hGUVVGRkxFTkJRMnBDTEVOQlFVTTdRVUZGUml4clJFRkJhMFE3UVVGRE0wTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1ZVRkJWU3hEUVVNNVFpeHhWMEZCY1Zjc1JVRkRjbGNzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUTJRc1EwRkJRenRCUVVWTExFMUJRVTBzU1VGQlNTeEhRVUZITEZWQlFWVXNRMEZETlVJc0sxbEJRU3RaTEVWQlF5OVpMRVZCUVVVc1MwRkJTeXhGUVVGRkxFZEJRVWNzUlVGQlJTeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUXpWQ0xFTkJRVU03UVVGRlN5eE5RVUZOTEZOQlFWTXNSMEZCUnl4cFJFRkJWU3hEUVVGRExFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFXOUNMRVZCUVVVc1JVRkJSU3hEUVVOc1JTeFZRVUZWTEVOQlExSXNPRWhCUTBVc2FVVkJRVTBzUTBGQlF5eEZRVUZETEcxQ1FVRnRRaXhGUVVGRExFbEJRVWtzUlVGQlJTeGhRVUZoTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVVrc1JVRkRNVVFzYVVWQlEwVXNRMEZCUXl4RlFVRkRMSFZWUVVGMVZTeEZRVU42VlN4TlFVRk5MRVZCUVVVc1lVRkJZU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVU0xUWl4WFFVRlhMRVZCUVVNc1IwRkJSeXhYUVVObUxFVkJRMFlzYVVWQlFVMHNRMEZCUXl4RlFVRkRMSE5DUVVGelFpeEZRVUZETEVsQlFVa3NSVUZCUlN4aFFVRmhMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVWtzUlVGRE4wUXNhVVZCUTBVc1EwRkJReXhGUVVGRExIRlhRVUZ4Vnl4RlFVTjJWeXhOUVVGTkxFVkJRVVVzWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVTTFRaXhYUVVGWExFVkJRVU1zUjBGQlJ5eFhRVU5tTEVWQlEwWXNOa1ZCUTBVc1NVRkJTU3hGUVVGRkxGbEJRVmtzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZEZWtJc1RVRkJUU3hGUVVGRkxHRkJRV0VzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZETlVJc1YwRkJWeXhGUVVGRExFZEJRVWNzYVVKQlJXWXNhVVZCUVUwc1EwRkJReXhGUVVGRExFdEJRVXNzUlVGQlF5eERRVUZETEVWQlFVTXNTMEZCU3l4RlFVRkRMRXRCUVVzc1JVRkJReXhKUVVGSkxFVkJRVU1zVFVGQlRTeEZRVUZETEVsQlFVa3NWMEZCUnl4RlFVTXZReXhwUlVGQlRTeERRVUZETEVWQlFVTXNTMEZCU3l4RlFVRkRMRU5CUVVNc1JVRkJReXhQUVVGUExFVkJRVU1zUzBGQlN5eEZRVUZETEVsQlFVa3NSVUZCUXl4TlFVRk5MRVZCUVVNc1NVRkJTU3hYUVVGSExFVkJRMnBFTEdsRlFVRk5MRU5CUVVNc1JVRkJReXhQUVVGUExFVkJRVU1zUTBGQlF5eEZRVUZETEU5QlFVOHNSVUZCUXl4TFFVRkxMRVZCUVVNc1NVRkJTU3hGUVVGRExFMUJRVTBzUlVGQlF5eEpRVUZKTEZkQlFVY3NSVUZEYmtRc2FVVkJRVTBzUTBGQlF5eEZRVUZETEU5QlFVOHNSVUZCUXl4RFFVRkRMRVZCUVVNc1MwRkJTeXhGUVVGRExFdEJRVXNzUlVGQlF5eEpRVUZKTEVWQlFVTXNUVUZCVFN4RlFVRkRMRWxCUVVrc1YwRkJSeXhoUVVNdlF5eFpRVU5JTEVWQlEwZ3NSVUZCUlN4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRkxFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVNeFF5eERRVU5HTEVOQlFVTTdRVUZGU3l4TlFVRk5MRmRCUVZjc1IwRkJSeXhwUkVGQlZTeERRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVc5Q0xFVkJRVVVzUlVGQlJTeERRVU53UlN4VlFVRlZMRU5CUTFJc09FaEJRMFVzYVVWQlFVMHNRMEZCUXl4RlFVRkRMRzFDUVVGdFFpeEZRVUZETEVsQlFVa3NSVUZCUlN4aFFVRmhMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVWtzUlVGRE1VUXNhVVZCUTBVc1EwRkJReXhGUVVGRExIVlZRVUYxVlN4RlFVTjZWU3hOUVVGTkxFVkJRVVVzWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVTTFRaXhYUVVGWExFVkJRVU1zUjBGQlJ5eFhRVU5tTEVWQlEwWXNhVVZCUVUwc1EwRkJReXhGUVVGRExITkNRVUZ6UWl4RlFVRkRMRWxCUVVrc1JVRkJSU3hoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFVa3NSVUZETjBRc2FVVkJRMFVzUTBGQlF5eEZRVUZETEhGWFFVRnhWeXhGUVVOMlZ5eE5RVUZOTEVWQlFVVXNZVUZCWVN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVNMVFpeFhRVUZYTEVWQlFVTXNSMEZCUnl4WFFVTm1MRVZCUTBZc05rVkJRMFVzU1VGQlNTeEZRVUZGTEZsQlFWa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkRla0lzVFVGQlRTeEZRVUZGTEdGQlFXRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkROVUlzVjBGQlZ5eEZRVUZETEVkQlFVY3NhVUpCUldZc2FVVkJRVTBzUTBGQlF5eEZRVUZETEV0QlFVc3NSVUZCUXl4RFFVRkRMRVZCUVVNc1MwRkJTeXhGUVVGRExFdEJRVXNzUlVGQlF5eEpRVUZKTEVWQlFVTXNUVUZCVFN4RlFVRkRMRWxCUVVrc1YwRkJSeXhGUVVNdlF5eHBSVUZCVFN4RFFVRkRMRVZCUVVNc1RVRkJUU3hGUVVGRExFTkJRVU1zUlVGQlF5eFBRVUZQTEVWQlFVTXNTMEZCU3l4RlFVRkRMRWxCUVVrc1JVRkJReXhOUVVGTkxFVkJRVU1zU1VGQlNTeFhRVUZITEVWQlEyeEVMR2xGUVVGTkxFTkJRVU1zUlVGQlF5eFBRVUZQTEVWQlFVTXNRMEZCUXl4RlFVRkRMRTlCUVU4c1JVRkJReXhMUVVGTExFVkJRVU1zU1VGQlNTeEZRVUZETEUxQlFVMHNSVUZCUXl4SlFVRkpMRmRCUVVjc1JVRkRia1FzYVVWQlFVMHNRMEZCUXl4RlFVRkRMRTlCUVU4c1JVRkJReXhEUVVGRExFVkJRVU1zVFVGQlRTeEZRVUZETEV0QlFVc3NSVUZCUXl4SlFVRkpMRVZCUVVNc1RVRkJUU3hGUVVGRExFbEJRVWtzVjBGQlJ5eEZRVU5zUkN4cFJVRkJUU3hEUVVGRExFVkJRVU1zVDBGQlR5eEZRVUZETEVOQlFVTXNSVUZCUXl4TFFVRkxMRVZCUVVNc1MwRkJTeXhGUVVGRExFbEJRVWtzUlVGQlF5eE5RVUZOTEVWQlFVTXNTVUZCU1N4WFFVRkhMRVZCUTJwRUxHbEZRVUZOTEVOQlFVTXNSVUZCUXl4TFFVRkxMRVZCUVVNc1EwRkJReXhGUVVGRExFOUJRVThzUlVGQlF5eExRVUZMTEVWQlFVTXNTVUZCU1N4RlFVRkRMRTFCUVUwc1JVRkJReXhKUVVGSkxGZEJRVWNzWVVGREwwTXNXVUZEU0N4RlFVTklMRVZCUVVVc1MwRkJTeXhGUVVGRkxFZEJRVWNzUlVGQlJTeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVVVzUTBGRE1VTXNRMEZEUml4RFFVRkRPMEZCUlVzc1RVRkJUU3hsUVVGbExFZEJRVWNzYVVSQlFWVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGdlFpeEZRVUZGTEVWQlFVVXNRMEZEZUVVc1ZVRkJWU3hEUVVOU0xHbEZRVU5GTEZGQlFWRXNSVUZCUXl4VFFVRlRMRVZCUTJ4Q0xGRkJRVkVzUlVGQlF5eFRRVUZUTEVWQlEyeENMRU5CUVVNc1JVRkJReXh4VDBGQmNVOHNSVUZEZGs4c1NVRkJTU3hGUVVGRkxHRkJRV0VzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZETVVJc1JVRkRSaXhGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVNeFFpeERRVU5HTEVOQlFVTTdRVUZGU3l4TlFVRk5MR3RDUVVGclFpeEhRVUZITEdsRVFVRlZMRU5CUVVNc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQmIwSXNSVUZCUlN4RlFVRkZMRU5CUXpORkxGVkJRVlVzUTBGRFVpdzJSVUZCUnl4SlFVRkpMRVZCUVVVc1lVRkJZU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEZGQlFWRXNSVUZCUXl4VFFVRlRMRVZCUVVNc1VVRkJVU3hGUVVGRExGTkJRVk1zYVVKQlEyeEZMR2xGUVVGTkxFTkJRVU1zUlVGQlF5eHhUMEZCY1U4c1YwRkJSeXhGUVVOb1VDeHBSVUZCVFN4RFFVRkRMRVZCUVVNc2MwNUJRWE5PTEZkQlFVY3NZVUZETDA0c1JVRkRTaXhGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVNeFFpeERRVU5HTEVOQlFVTTdRVUZGU3l4TlFVRk5MR0ZCUVdFc1IwRkJSeXhwUkVGQlZTeERRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVc5Q0xFVkJRVVVzUlVGQlJTeERRVU4wUlN4VlFVRlZMRU5CUVVNc2FVVkJRVTBzUTBGQlF5eEZRVUZETEdsQ1FVRnBRaXhGUVVGRExFbEJRVWtzUlVGQlJTeGhRVUZoTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVVrc1JVRkJSVHRKUVVOdVJTeExRVUZMTEVWQlFVVXNSVUZCUlR0SlFVTlVMRTFCUVUwc1JVRkJSU3hGUVVGRk8wTkJRMWdzUTBGQlF5eERRVU5JTEVOQlFVTTdRVUZGU3l4TlFVRk5MR1ZCUVdVc1IwRkJSeXhwUkVGQlZTeERRVU4yUXl4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxGZEJRVmNzUlVGQmVVTXNSVUZCUlN4RlFVRkZMRU5CUTJoRkxGVkJRVlVzUTBGRFVpeHBSVUZEUlN4RFFVRkRMRVZCUVVNc1ZVRkJWU3hGUVVOYUxFMUJRVTBzUlVGQlJTeGhRVUZoTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUXpWQ0xGZEJRVmNzUlVGQlJTeFhRVUZYTEVWQlEzaENMR0ZCUVdFc1JVRkJReXhQUVVGUExFVkJRM0pDTEVsQlFVa3NSVUZCUXl4TlFVRk5MRmRCUTFnc1JVRkRSaXhGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVNeFFpeERRVU5LTEVOQlFVTTdRVUZGU3l4TlFVRk5MRzlDUVVGdlFpeEhRVUZITEdsRVFVRlZMRU5CUVVNc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQmIwSXNSVUZCUlN4RlFVRkZMRU5CUXpkRkxGVkJRVlVzUTBGRFVpeHBSVUZEUlN4RFFVRkRMRVZCUVVNc1ZVRkJWU3hGUVVOYUxFMUJRVTBzUlVGQlJTeGhRVUZoTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUXpWQ0xGZEJRVmNzUlVGQlJTeERRVUZETEVWQlEyUXNTVUZCU1N4RlFVRkRMRTFCUVUwc1JVRkRXQ3hoUVVGaExFVkJRVU1zVDBGQlR5eFhRVU55UWl4RlFVTkdPMGxCUTBVc1MwRkJTeXhGUVVGRkxFVkJRVVU3U1VGRFZDeE5RVUZOTEVWQlFVVXNSVUZCUlR0RFFVTllMRU5CUTBZc1EwRkRSaXhEUVVGRE8wRkJSVXNzVFVGQlRTeHhRa0ZCY1VJc1IwRkJSeXhwUkVGQlZTeERRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVc5Q0xFVkJRVVVzUlVGQlJTeERRVU01UlN4VlFVRlZMRU5CUTFJc2FVVkJRMFVzUTBGQlF5eEZRVUZETEZWQlFWVXNSVUZEV2l4TlFVRk5MRVZCUVVVc1lVRkJZU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVU0xUWl4WFFVRlhMRVZCUVVVc1IwRkJSeXhGUVVOb1FpeGxRVUZsTEVWQlFVVXNUMEZCVHl4RlFVTjRRaXhKUVVGSkxFVkJRVU1zVFVGQlRTeEZRVU5ZTEdGQlFXRXNSVUZCUXl4UFFVRlBMRmRCUTNKQ0xFVkJRMFlzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGRE1VSXNRMEZEUml4RFFVRkRPMEZCUlVzc1RVRkJUU3h4UWtGQmNVSXNSMEZCUnl4cFJFRkJWU3hEUVVGRExFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFXOUNMRVZCUVVVc1JVRkJSU3hEUVVNNVJTeFZRVUZWTEVOQlExSXNhVVZCUTBVc1EwRkJReXhGUVVGRExGVkJRVlVzUlVGRFdpeE5RVUZOTEVWQlFVVXNZVUZCWVN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVNMVFpeFhRVUZYTEVWQlFVVXNSMEZCUnl4RlFVTm9RaXhsUVVGbExFVkJRVVVzVVVGQlVTeEZRVU42UWl4SlFVRkpMRVZCUVVNc1RVRkJUU3hGUVVOWUxHRkJRV0VzUlVGQlF5eFBRVUZQTEZkQlEzSkNMRVZCUTBZc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJTeEZRVUZGTEUxQlFVMHNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkRNVUlzUTBGRFJpeERRVUZETzBGQlJVc3NUVUZCVFN4MVFrRkJkVUlzUjBGQlJ5eHBSRUZCVlN4RFFVTXZReXhEUVVGRExFVkJRVVVzUzBGQlN5eEZRVUZ2UWl4RlFVRkZMRVZCUVVVc1EwRkRPVUlzVlVGQlZTeERRVU5TTEdsRlFVTkZMRU5CUVVNc1JVRkJReXhwUzBGQmFVc3NSVUZEYmtzc1RVRkJUU3hGUVVGRkxHRkJRV0VzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZETlVJc1YwRkJWeXhGUVVGRkxFTkJRVU1zUlVGRFpDeGhRVUZoTEVWQlFVTXNUMEZCVHl4RlFVTnlRaXhKUVVGSkxFVkJRVU1zVFVGQlRTeFhRVU5ZTEVWQlEwWXNSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVONFF5eERRVU5LTEVOQlFVTTdRVUZGU3l4TlFVRk5MRzlDUVVGdlFpeEhRVUZITEdsRVFVRlZMRU5CUVVNc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQmIwSXNSVUZCUlN4RlFVRkZMRU5CUXpkRkxGVkJRVlVzUTBGRFVpeHBSVUZEUlN4RFFVRkRMRVZCUVVNc2FWRkJRV2xSTEVWQlEyNVJMRTFCUVUwc1JVRkJSU3hoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6VkNMRmRCUVZjc1JVRkJSU3hEUVVGRExFVkJRMlFzWVVGQllTeEZRVUZETEU5QlFVOHNSVUZEY2tJc1NVRkJTU3hGUVVGRExFMUJRVTBzVjBGRFdDeEZRVU5HTEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVc1JVRkJSU3hOUVVGTkxFVkJRVVVzUlVGQlJTeEZRVUZGTEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1EwRkRlRU1zUTBGRFJpeERRVUZETzBGQlJVc3NUVUZCVFN4M1FrRkJkMElzUjBGQlJ5eHBSRUZCVlN4RFFVTm9SQ3hEUVVGRExFVkJRVVVzUzBGQlN5eEZRVUZ2UWl4RlFVRkZMRVZCUVVVc1EwRkRPVUlzVlVGQlZTeERRVU5TTEdsRlFVTkZMRU5CUVVNc1JVRkJReXgxVkVGQmRWUXNSVUZEZWxRc1RVRkJUU3hGUVVGRkxHRkJRV0VzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZETlVJc1YwRkJWeXhGUVVGRkxFTkJRVU1zUlVGRFpDeGhRVUZoTEVWQlFVTXNUMEZCVHl4RlFVTnlRaXhKUVVGSkxFVkJRVU1zVFVGQlRTeFhRVU5ZTEVWQlEwWXNSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVONFF5eERRVU5LTEVOQlFVTTdRVUZGU3l4TlFVRk5MR0ZCUVdFc1IwRkJSeXhwUkVGQlZTeERRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVc5Q0xFVkJRVVVzUlVGQlJTeERRVU4wUlN4VlFVRlZMRU5CUTFJc2FVVkJRMFVzUTBGQlF5eEZRVUZETEd0Q1FVRnJRaXhGUVVOd1FpeE5RVUZOTEVWQlFVVXNZVUZCWVN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVNMVFpeFhRVUZYTEVWQlFVVXNRMEZCUXl4RlFVTmtMR0ZCUVdFc1JVRkJReXhQUVVGUExFVkJRM0pDTEVsQlFVa3NSVUZCUXl4TlFVRk5MRmRCUTFnc1JVRkRSaXhGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkJSU3hOUVVGTkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlEzaERMRU5CUTBZc1EwRkJRenRCUVVWTExFMUJRVTBzWVVGQllTeEhRVUZITEdsRVFVRlZMRU5CUVVNc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQmIwSXNSVUZCUlN4RlFVRkZMRU5CUTNSRkxGVkJRVlVzUTBGRFVpeHBSVUZEUlN4RFFVRkRMRVZCUVVNc2FVTkJRV2xETEVWQlEyNURMRTFCUVUwc1JVRkJSU3hoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6VkNMRmRCUVZjc1JVRkJSU3hEUVVGRExFVkJRMlFzWVVGQllTeEZRVUZETEU5QlFVOHNSVUZEY2tJc1NVRkJTU3hGUVVGRExFMUJRVTBzVjBGRFdDeEZRVU5HTEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVc1JVRkJSU3hOUVVGTkxFVkJRVVVzUlVGQlJTeEZRVUZGTEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1EwRkRlRU1zUTBGRFJpeERRVUZETzBGQlJVc3NUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eHBSRUZCVlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hMUVVGTExFVkJRVzlDTEVWQlFVVXNSVUZCUlN4RFFVTXhSU3hWUVVGVkxFTkJRMUlzYVVWQlEwVXNRMEZCUXl4RlFVRkRMRlZCUVZVc1JVRkRXaXhOUVVGTkxFVkJRVVVzWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVTTFRaXhYUVVGWExFVkJRVVVzUTBGQlF5eEZRVU5rTEVsQlFVa3NSVUZCUXl4TlFVRk5MRmRCUTFnc1JVRkRSanRKUVVORkxFdEJRVXNzUlVGQlJTeEZRVUZGTzBsQlExUXNUVUZCVFN4RlFVRkZMRVZCUVVVN1EwRkRXQ3hEUVVOR0xFTkJRMFlzUTBGQlF6dEJRVVZMTEUxQlFVMHNhMEpCUVd0Q0xFZEJRVWNzYVVSQlFWVXNRMEZETVVNc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQlJTeEpRVUZKTEVkQlFVY3NTMEZCU3l4RlFVRnZReXhGUVVGRkxFVkJRVVVzUTBGRE5VUXNWVUZCVlN4RFFVTlNMRFpGUVVORkxGTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMQ3RDUVVFclFpeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUTNSRUxFMUJRVTBzUlVGQlJTeGhRVUZoTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUXpWQ0xGZEJRVmNzUlVGQlJTeERRVUZETEVWQlEyUXNTVUZCU1N4RlFVRkRMRTFCUVUwc2FVSkJSVmdzYVVWQlFVMHNRMEZCUXl4RlFVRkRMR2xEUVVGcFF5eFhRVUZITEVWQlF6VkRMR2xGUVVGTkxFTkJRVU1zUlVGQlF5eDVRa0ZCZVVJc1YwRkJSeXhoUVVOc1F5eEZRVU5LTEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVc1JVRkJSU3hOUVVGTkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlF6RkNMRU5CUTBvc1EwRkJRenRCUVVWTExFMUJRVTBzWjBKQlFXZENMRWRCUVVjc2FVUkJRVlVzUTBGRGVFTXNRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hKUVVGSkxFZEJRVWNzUzBGQlN5eEZRVUZ2UXl4RlFVRkZMRVZCUVVVc1EwRkROVVFzVlVGQlZTeERRVU5TTERaRlFVTkZMRTFCUVUwc1JVRkJSU3hoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6VkNMRWxCUVVrc1JVRkJSU3hoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6RkNMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEN0Q1FVRXJRaXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEdsQ1FVVjBSQ3hwUlVGQlRTeERRVUZETEVWQlFVTXNZVUZCWVN4RlFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExGZEJRVWtzUlVGRGVFTXNiVVZCUVZFc1EwRkJReXhGUVVGRExFZEJRVWNzUlVGQlF5eFRRVUZUTEVWQlFVTXNkMEpCUVhkQ0xGZEJRVWNzWVVGRGFrUXNSVUZEU2l4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVTXhRaXhEUVVOS0xFTkJRVU03UVVGRlN5eE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExHbEVRVUZWTEVOQlEzaERMRU5CUVVNc1JVRkJSU3hMUVVGTExFVkJRVVVzU1VGQlNTeEhRVUZITEV0QlFVc3NSVUZCYjBNc1JVRkJSU3hGUVVGRkxFTkJRelZFTEZWQlFWVXNRMEZEVWl3MFJVRkJSeXhUUVVGVExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl3clFrRkJLMElzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4blFrRkRka1FzYVVWQlEwVXNRMEZCUXl4RlFVRkRMSFZEUVVGMVF5eEZRVU42UXl4TlFVRk5MRVZCUVVVc1lVRkJZU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVU0xUWl4WFFVRlhMRVZCUVVVc1EwRkJReXhGUVVOa0xFbEJRVWtzUlVGQlF5eE5RVUZOTEZkQlExZ3NXVUZEUVN4RlFVTktMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUlVGQlJTeE5RVUZOTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUXpGQ0xFTkJRMG9zUTBGQlF6dEJRVVZMTEUxQlFVMHNjVUpCUVhGQ0xFZEJRVWNzYVVSQlFWVXNRMEZETjBNc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQlJTeEpRVUZKTEVkQlFVY3NTMEZCU3l4RlFVRnZReXhGUVVGRkxFVkJRVVVzUTBGRE5VUXNWVUZCVlN4RFFVTlNMRFpGUVVORkxFMUJRVTBzUlVGQlJTeGhRVUZoTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUXpWQ0xFbEJRVWtzUlVGQlJTeGhRVUZoTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUXpGQ0xGTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMQ3RDUVVFclFpeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMR2xDUVVWMFJDeHBSVUZCVFN4RFFVRkRMRVZCUVVNc1lVRkJZU3hGUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZkQlFVa3NSVUZEZUVNc2FVVkJRVTBzUTBGQlF5eEZRVUZETEhORFFVRnpReXhYUVVGSExHRkJReTlETEVWQlEwb3NSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZETVVJc1EwRkRTaXhEUVVGRE8wRkJSVXNzVFVGQlRTeHBRa0ZCYVVJc1IwRkJSeXhwUkVGQlZTeERRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVc5Q0xFVkJRVVVzUlVGQlJTeERRVU14UlN4VlFVRlZMRU5CUTFJc2FVVkJRMFVzU1VGQlNTeEZRVUZGTEdGQlFXRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkRNVUlzUTBGQlF5eEZRVUZETEhOclJFRkJjMnRFTEZkQlEzaHJSQ3hGUVVOR0xFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRekZDTEVOQlEwWXNRMEZCUXp0QlFVVkxMRTFCUVUwc2EwSkJRV3RDTEVkQlFVY3NhVVJCUVZVc1EwRkJReXhEUVVGRExFVkJRVVVzUzBGQlN5eEZRVUZ2UWl4RlFVRkZMRVZCUVVVc1EwRkRNMFVzVlVGQlZTeERRVU5TTEdsRlFVTkZMRWxCUVVrc1JVRkJSU3hoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6RkNMRU5CUVVNc1JVRkJReXhwWlVGQmFXVXNWMEZEYm1Vc1JVRkRSaXhGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVNeFFpeERRVU5HTEVOQlFVTTdRVUZGU3l4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEdsRVFVRlZMRU5CUVVNc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQmIwSXNSVUZCUlN4RlFVRkZMRU5CUXpGRkxGVkJRVlVzUTBGRFVpeHBSVUZEUlN4SlFVRkpMRVZCUVVVc1lVRkJZU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVU14UWl4RFFVRkRMRVZCUVVNc0swWkJRU3RHTEZkQlEycEhMRVZCUTBZc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJTeEZRVUZGTEUxQlFVMHNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkRNVUlzUTBGRFJpeERRVUZETzBGQlJVc3NUVUZCVFN4elFrRkJjMElzUjBGQlJ5eHBSRUZCVlN4RFFVTTVReXhEUVVGRExFVkJRVVVzUzBGQlN5eEZRVUZ2UWl4RlFVRkZMRVZCUVVVc1EwRkRPVUlzVlVGQlZTeERRVU5TTEdsRlFVTkZMRWxCUVVrc1JVRkJSU3hoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6RkNMRU5CUVVNc1JVRkJReXcwVWtGQk5GSXNWMEZET1ZJc1JVRkRSaXhGUVVGRkxFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVNelFpeERRVU5LTEVOQlFVTTdRVUZGU3l4TlFVRk5MSFZDUVVGMVFpeEhRVUZITEdsRVFVRlZMRU5CUXk5RExFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFXOUNMRVZCUVVVc1JVRkJSU3hEUVVNNVFpeFZRVUZWTEVOQlExSXNhVVZCUTBVc1NVRkJTU3hGUVVGRkxHRkJRV0VzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZETVVJc1EwRkJReXhGUVVGRExITlFRVUZ6VUN4WFFVTjRVQ3hGUVVOR0xFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NSVUZCUlN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRelZDTEVOQlEwb3NRMEZCUXp0QlFVVkxMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NhVVJCUVZVc1EwRkJReXhEUVVGRExFVkJRVVVzUzBGQlN5eEZRVUZ2UWl4RlFVRkZMRVZCUVVVc1EwRkROMFVzVlVGQlZTeERRVU5TTERoSVFVTkZMR2xGUVVORkxFbEJRVWtzUlVGQlJTeGhRVUZoTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUXpGQ0xFTkJRVU1zUlVGQlF5dzJUMEZCTms4c1YwRkRMMDhzUlVGRFJpeHBSVUZEUlN4SlFVRkpMRVZCUVVVc1lVRkJZU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVU14UWl4RFFVRkRMRVZCUVVNc2MySkJRWE5pTEZkQlEzaGlMRmxCUTBRc1JVRkRTQ3hGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVNeFFpeERRVU5HTEVOQlFVTTdRVUZGU3l4TlFVRk5MR3RDUVVGclFpeEhRVUZITEdsRVFVRlZMRU5CUVVNc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQmIwSXNSVUZCUlN4RlFVRkZMRU5CUXpORkxGVkJRVlVzUTBGRFVpdzBTRUZEUlN4cFJVRkRSU3hKUVVGSkxFVkJRVVVzWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVTXhRaXhEUVVGRExFVkJRVU1zT0doQ1FVRTRhRUlzVjBGRGFHbENMRmRCUTBRc1JVRkRTQ3hGUVVGRkxFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVNMVFpeERRVU5HTEVOQlFVTTdRVUZGU3l4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEdsRVFVRlZMRU5CUVVNc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQmIwSXNSVUZCUlN4RlFVRkZMRU5CUXpGRkxGVkJRVlVzUTBGRFVpeHBSVUZEUlN4RFFVRkRMRVZCUVVNc2NXTkJRWEZqTEVWQlEzWmpMRWxCUVVrc1JVRkJSU3hoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6RkNMR0ZCUVdFc1JVRkJReXhQUVVGUExGZEJRM0pDTEVWQlEwWXNSVUZCUlN4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRkxFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZETlVJc1EwRkRSaXhEUVVGRE8wRkJSVXNzVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXhwUkVGQlZTeERRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVc5Q0xFVkJRVVVzUlVGQlJTeERRVU0xUlN4VlFVRlZMRU5CUTFJc2FVVkJRMFVzUTBGQlF5eEZRVUZETERaaVFVRTJZaXhGUVVNdllpeEpRVUZKTEVWQlFVVXNZVUZCWVN4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVNeFFpeEZRVU5HTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWRCUVVjc1JVRkJSU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlF6VkNMRU5CUTBZc1EwRkJRenRCUVVWTExFMUJRVTBzYTBKQlFXdENMRWRCUVVjc2FVUkJRVlVzUTBGQlF5eERRVUZETEVWQlFVVXNTMEZCU3l4RlFVRnZRaXhGUVVGRkxFVkJRVVVzUTBGRE0wVXNWVUZCVlN4RFFVTlNMR2xGUVVORkxFTkJRVU1zUlVGQlF5dzJZMEZCTm1Nc1JVRkRMMk1zU1VGQlNTeEZRVUZGTEdGQlFXRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkRNVUlzWVVGQllTeEZRVUZETEU5QlFVOHNWMEZEY2tJc1JVRkRSaXhGUVVGRkxFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVNMVFpeERRVU5HTEVOQlFVTTdRVUZGU3l4TlFVRk5MRmRCUVZjc1IwRkJSeXhWUVVGVkxFTkJRMjVETEdsRlFVTkZMRU5CUVVNc1JVRkJReXhwWWtGQmFXSXNSVUZEYm1Jc1NVRkJTU3hGUVVGRExHTkJRV01zVjBGRGJrSXNSVUZEUml4RlFVRkZMRXRCUVVzc1JVRkJSU3hIUVVGSExFVkJRVVVzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVTTFRaXhEUVVGRE8wRkJSVXNzVFVGQlRTeFJRVUZSTEVkQlFVY3NWVUZCVlN4RFFVTm9ReXhwUlVGRFJTeEpRVUZKTEVWQlFVTXNZMEZCWXl4RlFVTnVRaXhEUVVGRExFVkJRVU1zZDJkQ1FVRjNaMElzVjBGRGNHZENMRVZCUTFJc1JVRkJSU3hMUVVGTExFVkJRVVVzUjBGQlJ5eEZRVUZGTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkROVUlzUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTlqYjIxd2IyNWxiblJ6TDJsamIyNXpMblJ6ZUQ5aE5UQTNJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4dlhHNHZMeUJCYkd3Z2FXTnZibk1nWVhKbElHbHRjRzl5ZEdWa0lHWnliMjBnYUhSMGNITTZMeTltYjI1MFlYZGxjMjl0WlM1amIyMHZhV052Ym5NL1pEMW5ZV3hzWlhKNVhHNHZMeUJKWTI5dWN5QmhjbVVnZFc1a1pYSWdkR2hsSUd4cFkyVnVjMlVnYUhSMGNITTZMeTltYjI1MFlYZGxjMjl0WlM1amIyMHZiR2xqWlc1elpWeHVMeTljYmx4dUx5OGdUbTkwWlRvZ2QyaGxiaUJoWkdScGJtY2dibVYzSUdsamIyNXpMQ0J5WlhacFpYY2dhSFIwY0hNNkx5OWtaWFpsYkc5d1pYSXViVzk2YVd4c1lTNXZjbWN2Wlc0dFZWTXZaRzlqY3k5TmIzcHBiR3hoTDBSbGRtVnNiM0JsY2w5bmRXbGtaUzlTVkV4ZlIzVnBaR1ZzYVc1bGMxeHVMeThnZEc4Z1pHVjBaWEp0YVc1bElIZG9aWFJvWlhJZ2IzSWdibTkwSUhSb1pTQnBZMjl1Y3lCemFHOTFiR1FnWW1VZ2JXbHljbTl5WldRZ2FXNGdjbWxuYUhRdGRHOHRiR1ZtZENCc1lXNW5kV0ZuWlhNdVhHNWNibWx0Y0c5eWRDQlNaV0ZqZENCbWNtOXRJRndpY21WaFkzUmNJanRjYmx4dWFXMXdiM0owSUc5aklHWnliMjBnWENKdmNHVnVMV052Ykc5eVhDSTdYRzVwYlhCdmNuUWdZMnh6ZUNCbWNtOXRJRndpWTJ4emVGd2lPMXh1YVcxd2IzSjBJSHNnVkdobGJXVWdmU0JtY205dElGd2lMaTR2Wld4bGJXVnVkQzkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnVkVoRlRVVWdmU0JtY205dElGd2lMaTR2WTI5dWMzUmhiblJ6WENJN1hHNWNibU52Ym5OMElHRmpkR2wyWlVWc1pXMWxiblJEYjJ4dmNpQTlJQ2gwYUdWdFpUb2dWR2hsYldVcElEMCtYRzRnSUhSb1pXMWxJRDA5UFNCVVNFVk5SUzVNU1VkSVZDQS9JRzlqTG05eVlXNW5aVnMwWFNBNklHOWpMbTl5WVc1blpWczVYVHRjYmx4dVkyOXVjM1FnYVdOdmJrWnBiR3hEYjJ4dmNpQTlJQ2gwYUdWdFpUb2dWR2hsYldVcElEMCtJRndpZG1GeUtDMHRhV052YmkxbWFXeHNMV052Ykc5eUtWd2lPMXh1WEc1amIyNXpkQ0JvWVc1a2JHVnlRMjlzYjNJZ1BTQW9kR2hsYldVNklGUm9aVzFsS1NBOVBseHVJQ0IwYUdWdFpTQTlQVDBnVkVoRlRVVXVURWxIU0ZRZ1B5QnZZeTUzYUdsMFpTQTZJRndpSXpGbE1XVXhaVndpTzF4dVhHNTBlWEJsSUU5d2RITWdQU0I3WEc0Z0lIZHBaSFJvUHpvZ2JuVnRZbVZ5TzF4dUlDQm9aV2xuYUhRL09pQnVkVzFpWlhJN1hHNGdJRzFwY25KdmNqODZJSFJ5ZFdVN1hHNTlJQ1lnVW1WaFkzUXVVMVpIVUhKdmNITThVMVpIVTFaSFJXeGxiV1Z1ZEQ0N1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCamNtVmhkR1ZKWTI5dUlEMGdLRnh1SUNCa09pQnpkSEpwYm1jZ2ZDQlNaV0ZqZEM1U1pXRmpkRTV2WkdVc1hHNGdJRzl3ZEhNNklHNTFiV0psY2lCOElFOXdkSE1nUFNBMU1USXNYRzRwSUQwK0lIdGNiaUFnWTI5dWMzUWdlMXh1SUNBZ0lIZHBaSFJvSUQwZ05URXlMRnh1SUNBZ0lHaGxhV2RvZENBOUlIZHBaSFJvTEZ4dUlDQWdJRzFwY25KdmNpeGNiaUFnSUNCemRIbHNaU3hjYmlBZ2ZTQTlJSFI1Y0dWdlppQnZjSFJ6SUQwOVBTQmNJbTUxYldKbGNsd2lJRDhnS0hzZ2QybGtkR2c2SUc5d2RITWdmU0JoY3lCUGNIUnpLU0E2SUc5d2RITTdYRzRnSUhKbGRIVnliaUFvWEc0Z0lDQWdQSE4yWjF4dUlDQWdJQ0FnWVhKcFlTMW9hV1JrWlc0OVhDSjBjblZsWENKY2JpQWdJQ0FnSUdadlkzVnpZV0pzWlQxY0ltWmhiSE5sWENKY2JpQWdJQ0FnSUhKdmJHVTlYQ0pwYldkY0lseHVJQ0FnSUNBZ2RtbGxkMEp2ZUQxN1lEQWdNQ0FrZTNkcFpIUm9mU0FrZTJobGFXZG9kSDFnZlZ4dUlDQWdJQ0FnWTJ4aGMzTk9ZVzFsUFh0amJITjRLSHNnWENKeWRHd3RiV2x5Y205eVhDSTZJRzFwY25KdmNpQjlLWDFjYmlBZ0lDQWdJSE4wZVd4bFBYdHpkSGxzWlgxY2JpQWdJQ0ErWEc0Z0lDQWdJQ0I3ZEhsd1pXOW1JR1FnUFQwOUlGd2ljM1J5YVc1blhDSWdQeUE4Y0dGMGFDQm1hV3hzUFZ3aVkzVnljbVZ1ZEVOdmJHOXlYQ0lnWkQxN1pIMGdMejRnT2lCa2ZWeHVJQ0FnSUR3dmMzWm5QbHh1SUNBcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR05vWldOclNXTnZiaUE5SUdOeVpXRjBaVWxqYjI0b1hHNGdJRHh3YjJ4NWJHbHVaU0JtYVd4c1BWd2libTl1WlZ3aUlITjBjbTlyWlQxY0ltTjFjbkpsYm5SRGIyeHZjbHdpSUhCdmFXNTBjejFjSWpJd0lEWWdPU0F4TnlBMElERXlYQ0lnTHo0c1hHNGdJSHRjYmlBZ0lDQjNhV1IwYURvZ01qUXNYRzRnSUNBZ2FHVnBaMmgwT2lBeU5DeGNiaUFnZlN4Y2JpazdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnNhVzVySUQwZ1kzSmxZWFJsU1dOdmJpaGNiaUFnWENKTk16STJMall4TWlBeE9EVXVNemt4WXpVNUxqYzBOeUExT1M0NE1Ea2dOVGd1T1RJM0lERTFOUzQyT1RndU16WWdNakUwTGpVNUxTNHhNUzR4TWkwdU1qUXVNalV0TGpNMkxqTTNiQzAyTnk0eUlEWTNMakpqTFRVNUxqSTNJRFU1TGpJM0xURTFOUzQyT1RrZ05Ua3VNall5TFRJeE5DNDVOaUF3TFRVNUxqSTNMVFU1TGpJMkxUVTVMakkzTFRFMU5TNDNJREF0TWpFMExqazJiRE0zTGpFd05pMHpOeTR4TURaak9TNDROQzA1TGpnMElESTJMamM0TmkwekxqTWdNamN1TWprMElERXdMall3Tmk0Mk5EZ2dNVGN1TnpJeUlETXVPREkySURNMUxqVXlOeUE1TGpZNUlEVXlMamN5TVNBeExqazROaUExTGpneU1pNDFOamNnTVRJdU1qWXlMVE11TnpneklERTJMall4TW13dE1UTXVNRGczSURFekxqQTROMk10TWpndU1ESTJJREk0TGpBeU5pMHlPQzQ1TURVZ056TXVOall0TVM0eE5UVWdNVEF4TGprMklESTRMakF5TkNBeU9DNDFOemtnTnpRdU1EZzJJREk0TGpjME9TQXhNREl1TXpJMUxqVXhiRFkzTGpJdE5qY3VNVGxqTWpndU1Ua3hMVEk0TGpFNU1TQXlPQzR3TnpNdE56TXVOelUzSURBdE1UQXhMamd6TFRNdU56QXhMVE11TmprMExUY3VOREk1TFRZdU5UWTBMVEV3TGpNME1TMDRMalUyT1dFeE5pNHdNemNnTVRZdU1ETTNJREFnTUNBeExUWXVPVFEzTFRFeUxqWXdObU10TGpNNU5pMHhNQzQxTmpjZ015NHpORGd0TWpFdU5EVTJJREV4TGpZNU9DMHlPUzQ0TURac01qRXVNRFUwTFRJeExqQTFOV00xTGpVeU1TMDFMalV5TVNBeE5DNHhPREl0Tmk0eE9Ua2dNakF1TlRnMExURXVOek14WVRFMU1pNDBPRElnTVRVeUxqUTRNaUF3SURBZ01TQXlNQzQxTWpJZ01UY3VNVGszZWswME5qY3VOVFEzSURRMExqUTBPV010TlRrdU1qWXhMVFU1TGpJMk1pMHhOVFV1TmprdE5Ua3VNamN0TWpFMExqazJJREJzTFRZM0xqSWdOamN1TW1NdExqRXlMakV5TFM0eU5TNHlOUzB1TXpZdU16Y3ROVGd1TlRZMklEVTRMamc1TWkwMU9TNHpPRGNnTVRVMExqYzRNUzR6TmlBeU1UUXVOVGxoTVRVeUxqUTFOQ0F4TlRJdU5EVTBJREFnTUNBd0lESXdMalV5TVNBeE55NHhPVFpqTmk0ME1ESWdOQzQwTmpnZ01UVXVNRFkwSURNdU56ZzVJREl3TGpVNE5DMHhMamN6TVd3eU1TNHdOVFF0TWpFdU1EVTFZemd1TXpVdE9DNHpOU0F4TWk0d09UUXRNVGt1TWpNNUlERXhMalk1T0MweU9TNDRNRFpoTVRZdU1ETTNJREUyTGpBek55QXdJREFnTUMwMkxqazBOeTB4TWk0Mk1EWmpMVEl1T1RFeUxUSXVNREExTFRZdU5qUXROQzQ0TnpVdE1UQXVNelF4TFRndU5UWTVMVEk0TGpBM015MHlPQzR3TnpNdE1qZ3VNVGt4TFRjekxqWXpPU0F3TFRFd01TNDRNMncyTnk0eUxUWTNMakU1WXpJNExqSXpPUzB5T0M0eU16a2dOelF1TXkweU9DNHdOamtnTVRBeUxqTXlOUzQxTVNBeU55NDNOU0F5T0M0eklESTJMamczTWlBM015NDVNelF0TVM0eE5UVWdNVEF4TGprMmJDMHhNeTR3T0RjZ01UTXVNRGczWXkwMExqTTFJRFF1TXpVdE5TNDNOamtnTVRBdU56a3RNeTQzT0RNZ01UWXVOakV5SURVdU9EWTBJREUzTGpFNU5DQTVMakEwTWlBek5DNDVPVGtnT1M0Mk9TQTFNaTQzTWpFdU5UQTVJREV6TGprd05pQXhOeTQwTlRRZ01qQXVORFEySURJM0xqSTVOQ0F4TUM0Mk1EWnNNemN1TVRBMkxUTTNMakV3Tm1NMU9TNHlOekV0TlRrdU1qVTVJRFU1TGpJM01TMHhOVFV1TmprNUxqQXdNUzB5TVRRdU9UVTVlbHdpTEZ4dUlDQjdJRzFwY25KdmNqb2dkSEoxWlNCOUxGeHVLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJSE5oZG1VZ1BTQmpjbVZoZEdWSlkyOXVLRnh1SUNCY0lrMDBNek11T1RReElERXlPUzQ1TkRGc0xUZ3pMamc0TWkwNE15NDRPREpCTkRnZ05EZ2dNQ0F3SURBZ016RTJMakV4T0NBek1rZzBPRU15TVM0ME9TQXpNaUF3SURVekxqUTVJREFnT0RCMk16VXlZekFnTWpZdU5URWdNakV1TkRrZ05EZ2dORGdnTkRob016VXlZekkyTGpVeElEQWdORGd0TWpFdU5Ea2dORGd0TkRoV01UWXpMamc0TW1FME9DQTBPQ0F3SURBZ01DMHhOQzR3TlRrdE16TXVPVFF4ZWsweU1qUWdOREUyWXkwek5TNHpORFlnTUMwMk5DMHlPQzQyTlRRdE5qUXROalFnTUMwek5TNHpORFlnTWpndU5qVTBMVFkwSURZMExUWTBjelkwSURJNExqWTFOQ0EyTkNBMk5HTXdJRE0xTGpNME5pMHlPQzQyTlRRZ05qUXROalFnTmpSNmJUazJMVE13TkM0MU1sWXlNVEpqTUNBMkxqWXlOeTAxTGpNM015QXhNaTB4TWlBeE1rZzNObU10Tmk0Mk1qY2dNQzB4TWkwMUxqTTNNeTB4TWkweE1sWXhNRGhqTUMwMkxqWXlOeUExTGpNM015MHhNaUF4TWkweE1tZ3lNamd1TlRKak15NHhPRE1nTUNBMkxqSXpOU0F4TGpJMk5DQTRMalE0TlNBekxqVXhOV3d6TGpRNElETXVORGhCTVRFdU9UazJJREV4TGprNU5pQXdJREFnTVNBek1qQWdNVEV4TGpRNGVsd2lMRnh1SUNCN0lIZHBaSFJvT2lBME5EZ3NJR2hsYVdkb2REb2dOVEV5SUgwc1hHNHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdjMkYyWlVGeklEMGdZM0psWVhSbFNXTnZiaWhjYmlBZ1hDSk5NalV5SURVMFRESXdNeUE0WVRJNElESTNJREFnTURBdE1qQXRPRWd5T0VNeE1pQXdJREFnTVRJZ01DQXlOM1l4T1RWak1DQXhOU0F4TWlBeU5pQXlPQ0F5Tm1neU1EUmpNVFVnTUNBeU9DMHhNU0F5T0MweU5sWTNNMkV5T0NBeU55QXdJREF3TFRndE1UbDZUVEV6TUNBeU1UTmpMVEl4SURBdE16Y3RNVFl0TXpjdE16WWdNQzB4T1NBeE5pMHpOU0F6Tnkwek5TQXlNQ0F3SURNM0lERTJJRE0zSURNMUlEQWdNakF0TVRjZ016WXRNemNnTXpaNmJUVTJMVEUyT1hZMU5tTXdJRFF0TkNBMkxUY2dOa2cwTkdNdE5DQXdMVGN0TWkwM0xUWldOREpqTUMwMElETXROeUEzTFRkb01UTXpiRFFnTWlBeklESmhOeUEzSURBZ01ERXlJRFY2SUUweU9UWWdNakF4YkRnM0lEazFMVEU0T0NBeU1EVXROemdnT1dNdE1UQWdNUzB4T1MwNExURTRMVEl3YkRrdE9EUjZiVEUwTVMweE5Hd3ROREV0TkRSaE16RWdNekVnTUNBd01DMDBOaUF3YkMwek9DQTBNU0E0TnlBNU5TQXpPQzAwTW1NeE15MHhOQ0F4TXkwek5pQXdMVFV3ZWx3aUxGeHVJQ0I3SUhkcFpIUm9PaUEwTkRnc0lHaGxhV2RvZERvZ05URXlJSDBzWEc0cE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2JHOWhaQ0E5SUdOeVpXRjBaVWxqYjI0b1hHNGdJRndpVFRVM01pNDJPVFFnTWpreUxqQTVNMHcxTURBdU1qY2dOREUyTGpJME9FRTJNeTQ1T1RjZ05qTXVPVGszSURBZ01DQXhJRFEwTkM0NU9Ea2dORFE0U0RRMUxqQXlOV010TVRndU5USXpJREF0TXpBdU1EWTBMVEl3TGpBNU15MHlNQzQzTXpFdE16WXVNRGt6YkRjeUxqUXlOQzB4TWpRdU1UVTFRVFkwSURZMElEQWdNQ0F4SURFMU1pQXlOVFpvTXprNUxqazJOR014T0M0MU1qTWdNQ0F6TUM0d05qUWdNakF1TURreklESXdMamN6SURNMkxqQTVNM3BOTVRVeUlESXlOR2d6TWpoMkxUUTRZekF0TWpZdU5URXRNakV1TkRrdE5EZ3RORGd0TkRoSU1qY3liQzAyTkMwMk5FZzBPRU15TVM0ME9TQTJOQ0F3SURnMUxqUTVJREFnTVRFeWRqSTNPQzR3TkRac05qa3VNRGMzTFRFeE9DNDBNVGhET0RZdU1qRTBJREkwTWk0eU5TQXhNVGN1T1RnNUlESXlOQ0F4TlRJZ01qSTBlbHdpTEZ4dUlDQjdJSGRwWkhSb09pQTFOellzSUdobGFXZG9kRG9nTlRFeUxDQnRhWEp5YjNJNklIUnlkV1VnZlN4Y2JpazdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmpiR2x3WW05aGNtUWdQU0JqY21WaGRHVkpZMjl1S0Z4dUlDQmNJazB6T0RRZ01URXlkak0xTW1Nd0lESTJMalV4TFRJeExqUTVJRFE0TFRRNElEUTRTRFE0WXkweU5pNDFNU0F3TFRRNExUSXhMalE1TFRRNExUUTRWakV4TW1Nd0xUSTJMalV4SURJeExqUTVMVFE0SURRNExUUTRhRGd3WXpBdE16VXVNamtnTWpndU56RXROalFnTmpRdE5qUnpOalFnTWpndU56RWdOalFnTmpSb09EQmpNall1TlRFZ01DQTBPQ0F5TVM0ME9TQTBPQ0EwT0hwTk1Ua3lJRFF3WXkweE15NHlOVFVnTUMweU5DQXhNQzQzTkRVdE1qUWdNalJ6TVRBdU56UTFJREkwSURJMElESTBJREkwTFRFd0xqYzBOU0F5TkMweU5DMHhNQzQzTkRVdE1qUXRNalF0TWpSdE9UWWdNVEUwZGkweU1HRTJJRFlnTUNBd0lEQXROaTAyU0RFd01tRTJJRFlnTUNBd0lEQXROaUEyZGpJd1lUWWdOaUF3SURBZ01DQTJJRFpvTVRnd1lUWWdOaUF3SURBZ01DQTJMVFo2WENJc1hHNGdJSHNnZDJsa2RHZzZJRE00TkN3Z2FHVnBaMmgwT2lBMU1USWdmU3hjYmlrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCMGNtRnphQ0E5SUdOeVpXRjBaVWxqYjI0b1hHNGdJRndpVFRNeUlEUTJOR0UwT0NBME9DQXdJREFnTUNBME9DQTBPR2d5T0RoaE5EZ2dORGdnTUNBd0lEQWdORGd0TkRoV01USTRTRE15ZW0weU56SXRNalUyWVRFMklERTJJREFnTUNBeElETXlJREIyTWpJMFlURTJJREUySURBZ01DQXhMVE15SURCNmJTMDVOaUF3WVRFMklERTJJREFnTUNBeElETXlJREIyTWpJMFlURTJJREUySURBZ01DQXhMVE15SURCNmJTMDVOaUF3WVRFMklERTJJREFnTUNBeElETXlJREIyTWpJMFlURTJJREUySURBZ01DQXhMVE15SURCNlRUUXpNaUF6TWtnek1USnNMVGt1TkMweE9DNDNRVEkwSURJMElEQWdNQ0F3SURJNE1TNHhJREJJTVRZMkxqaGhNak11TnpJZ01qTXVOeklnTUNBd0lEQXRNakV1TkNBeE15NHpUREV6TmlBek1rZ3hOa0V4TmlBeE5pQXdJREFnTUNBd0lEUTRkak15WVRFMklERTJJREFnTUNBd0lERTJJREUyYURReE5tRXhOaUF4TmlBd0lEQWdNQ0F4TmkweE5sWTBPR0V4TmlBeE5pQXdJREFnTUMweE5pMHhObnBjSWl4Y2JseHVJQ0I3SUhkcFpIUm9PaUEwTkRnc0lHaGxhV2RvZERvZ05URXlJSDBzWEc0cE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2NHRnNaWFIwWlNBOUlHTnlaV0YwWlVsamIyNG9YRzRnSUZ3aVRUSXdOQzR6SURWRE1UQTBMamtnTWpRdU5DQXlOQzQ0SURFd05DNHpJRFV1TWlBeU1ETXVOR010TXpjZ01UZzNJREV6TVM0M0lETXlOaTQwSURJMU9DNDRJRE13Tmk0M0lEUXhMakl0Tmk0MElEWXhMalF0TlRRdU5pQTBNaTQxTFRreExqY3RNak11TVMwME5TNDBJRGt1T1MwNU9DNDBJRFl3TGprdE9UZ3VOR2czT1M0M1l6TTFMamdnTUNBMk5DNDRMVEk1TGpZZ05qUXVPUzAyTlM0elF6VXhNUzQxSURrM0xqRWdNelk0TGpFdE1qWXVPU0F5TURRdU15QTFlazA1TmlBek1qQmpMVEUzTGpjZ01DMHpNaTB4TkM0ekxUTXlMVE15Y3pFMExqTXRNeklnTXpJdE16SWdNeklnTVRRdU15QXpNaUF6TWkweE5DNHpJRE15TFRNeUlETXllbTB6TWkweE1qaGpMVEUzTGpjZ01DMHpNaTB4TkM0ekxUTXlMVE15Y3pFMExqTXRNeklnTXpJdE16SWdNeklnTVRRdU15QXpNaUF6TWkweE5DNHpJRE15TFRNeUlETXllbTB4TWpndE5qUmpMVEUzTGpjZ01DMHpNaTB4TkM0ekxUTXlMVE15Y3pFMExqTXRNeklnTXpJdE16SWdNeklnTVRRdU15QXpNaUF6TWkweE5DNHpJRE15TFRNeUlETXllbTB4TWpnZ05qUmpMVEUzTGpjZ01DMHpNaTB4TkM0ekxUTXlMVE15Y3pFMExqTXRNeklnTXpJdE16SWdNeklnTVRRdU15QXpNaUF6TWkweE5DNHpJRE15TFRNeUlETXllbHdpTEZ4dUtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHVjRjRzl5ZEVacGJHVWdQU0JqY21WaGRHVkpZMjl1S0Z4dUlDQmNJazB6T0RRZ01USXhMamxqTUMwMkxqTXRNaTQxTFRFeUxqUXROeTB4Tmk0NVRESTNPUzR4SURkakxUUXVOUzAwTGpVdE1UQXVOaTAzTFRFM0xUZElNalUyZGpFeU9HZ3hNamg2VFRVM01TQXpNRGhzTFRrMUxqY3RPVFl1TkdNdE1UQXVNUzB4TUM0eExUSTNMalF0TXkweU55NDBJREV4TGpOV01qZzRhQzAyTkhZMk5HZzJOSFkyTlM0eVl6QWdNVFF1TXlBeE55NHpJREl4TGpRZ01qY3VOQ0F4TVM0elREVTNNU0F6TXpKak5pNDJMVFl1TmlBMkxqWXRNVGN1TkNBd0xUSTBlbTB0TXpjNUlESTRkaTB6TW1Nd0xUZ3VPQ0EzTGpJdE1UWWdNVFl0TVRab01UYzJWakUyTUVneU5EaGpMVEV6TGpJZ01DMHlOQzB4TUM0NExUSTBMVEkwVmpCSU1qUkRNVEF1TnlBd0lEQWdNVEF1TnlBd0lESTBkalEyTkdNd0lERXpMak1nTVRBdU55QXlOQ0F5TkNBeU5HZ3pNelpqTVRNdU15QXdJREkwTFRFd0xqY2dNalF0TWpSV016VXlTREl3T0dNdE9DNDRJREF0TVRZdE55NHlMVEUyTFRFMmVsd2lMRnh1SUNCN0lIZHBaSFJvT2lBMU56WXNJR2hsYVdkb2REb2dOVEV5TENCdGFYSnliM0k2SUhSeWRXVWdmU3hjYmlrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCbGVIQnZjblJKYldGblpTQTlJR055WldGMFpVbGpiMjRvWEc0Z0lEdytYRzRnSUNBZ1BIQmhkR2dnWkQxY0lrMDFOekVnTXpBNGJDMDVOUzQzTFRrMkxqUmpMVEV3TGpFdE1UQXVNUzB5Tnk0MExUTXRNamN1TkNBeE1TNHpWakk0T0dndE5qUjJOalJvTmpSMk5qVXVNbU13SURFMExqTWdNVGN1TXlBeU1TNDBJREkzTGpRZ01URXVNMHcxTnpFZ016TXlZell1TmkwMkxqWWdOaTQyTFRFM0xqUWdNQzB5TkhwdExURTROeUEwTkhZdE5qUWdOalI2WENJZ0x6NWNiaUFnSUNBOGNHRjBhQ0JrUFZ3aVRUTTROQ0F4TWpFdU9UUXhWakV5T0VneU5UWldNR2cyTGpBMU9XTTJMak0yTWlBd0lERXlMalEzTVNBeUxqVXpJREUyTGprM0lEY3VNREk1YkRrM0xqazBNU0E1Tnk0NU5ERmhNalF1TURFZ01qUXVNREVnTUNBd01UY3VNRE1nTVRZdU9UY3hlazB5TkRnZ01UWXdZeTB4TXk0eUlEQXRNalF0TVRBdU9DMHlOQzB5TkZZd1NESTBRekV3TGpjME5TQXdJREFnTVRBdU56UTFJREFnTWpSMk5EWTBZekFnTVRNdU1qVTFJREV3TGpjME5TQXlOQ0F5TkNBeU5HZ3pNelpqTVRNdU1qVTFJREFnTWpRdE1UQXVOelExSURJMExUSTBWakUyTUVneU5EaDZiUzB4TXpVdU5EVTFJREUyWXpJMkxqVXhJREFnTkRnZ01qRXVORGtnTkRnZ05EaHpMVEl4TGpRNUlEUTRMVFE0SURRNExUUTRMVEl4TGpRNUxUUTRMVFE0SURJeExqUTVNUzAwT0NBME9DMDBPSHB0TWpBNElESTBNR2d0TWpVMmJDNDBPRFV0TkRndU5EZzFUREV3TkM0MU5EVWdNekk0WXpRdU5qZzJMVFF1TmpnMklERXhMamM1T1MwMExqSXdNU0F4Tmk0ME9EVXVORGcxVERFMk1DNDFORFVnTXpZNElESTJOQzR3TmlBeU5qUXVORGcxWXpRdU5qZzJMVFF1TmpnMklERXlMakk0TkMwMExqWTROaUF4Tmk0NU56RWdNRXd6TWpBdU5UUTFJRE13TkhZeE1USjZYQ0lnTHo1Y2JpQWdQQzgrTEZ4dUlDQjdJSGRwWkhSb09pQTFOellzSUdobGFXZG9kRG9nTlRFeUxDQnRhWEp5YjNJNklIUnlkV1VnZlN4Y2JpazdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmxlSEJ2Y25SVWIwWnBiR1ZKWTI5dUlEMGdZM0psWVhSbFNXTnZiaWhjYmlBZ1hDSk5NakUySURCb09EQmpNVE11TXlBd0lESTBJREV3TGpjZ01qUWdNalIyTVRZNGFEZzNMamRqTVRjdU9DQXdJREkyTGpjZ01qRXVOU0F4TkM0eElETTBMakZNTWpZNUxqY2dNemM0TGpOakxUY3VOU0EzTGpVdE1Ua3VPQ0EzTGpVdE1qY3VNeUF3VERrd0xqRWdNakkyTGpGakxURXlMall0TVRJdU5pMHpMamN0TXpRdU1TQXhOQzR4TFRNMExqRklNVGt5VmpJMFl6QXRNVE11TXlBeE1DNDNMVEkwSURJMExUSTBlbTB5T1RZZ016YzJkakV4TW1Nd0lERXpMak10TVRBdU55QXlOQzB5TkNBeU5FZ3lOR010TVRNdU15QXdMVEkwTFRFd0xqY3RNalF0TWpSV016YzJZekF0TVRNdU15QXhNQzQzTFRJMElESTBMVEkwYURFME5pNDNiRFE1SURRNVl6SXdMakVnTWpBdU1TQTFNaTQxSURJd0xqRWdOekl1TmlBd2JEUTVMVFE1U0RRNE9HTXhNeTR6SURBZ01qUWdNVEF1TnlBeU5DQXlOSHB0TFRFeU5DQTRPR013TFRFeExUa3RNakF0TWpBdE1qQnpMVEl3SURrdE1qQWdNakFnT1NBeU1DQXlNQ0F5TUNBeU1DMDVJREl3TFRJd2VtMDJOQ0F3WXpBdE1URXRPUzB5TUMweU1DMHlNSE10TWpBZ09TMHlNQ0F5TUNBNUlESXdJREl3SURJd0lESXdMVGtnTWpBdE1qQjZYQ0lzWEc0Z0lIc2dkMmxrZEdnNklEVXhNaXdnYUdWcFoyaDBPaUExTVRJZ2ZTeGNiaWs3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0I2YjI5dFNXNGdQU0JqY21WaGRHVkpZMjl1S0Z4dUlDQmNJazAwTVRZZ01qQTRTREkzTWxZMk5HTXdMVEUzTGpZM0xURTBMak16TFRNeUxUTXlMVE15YUMwek1tTXRNVGN1TmpjZ01DMHpNaUF4TkM0ek15MHpNaUF6TW5ZeE5EUklNekpqTFRFM0xqWTNJREF0TXpJZ01UUXVNek10TXpJZ016SjJNekpqTUNBeE55NDJOeUF4TkM0ek15QXpNaUF6TWlBek1tZ3hORFIyTVRRMFl6QWdNVGN1TmpjZ01UUXVNek1nTXpJZ016SWdNekpvTXpKak1UY3VOamNnTUNBek1pMHhOQzR6TXlBek1pMHpNbFl6TURSb01UUTBZekUzTGpZM0lEQWdNekl0TVRRdU16TWdNekl0TXpKMkxUTXlZekF0TVRjdU5qY3RNVFF1TXpNdE16SXRNekl0TXpKNlhDSXNYRzRnSUhzZ2QybGtkR2c2SURRME9Dd2dhR1ZwWjJoME9pQTFNVElnZlN4Y2JpazdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQjZiMjl0VDNWMElEMGdZM0psWVhSbFNXTnZiaWhjYmlBZ1hDSk5OREUySURJd09FZ3pNbU10TVRjdU5qY2dNQzB6TWlBeE5DNHpNeTB6TWlBek1uWXpNbU13SURFM0xqWTNJREUwTGpNeklETXlJRE15SURNeWFETTROR014Tnk0Mk55QXdJRE15TFRFMExqTXpJRE15TFRNeWRpMHpNbU13TFRFM0xqWTNMVEUwTGpNekxUTXlMVE15TFRNeWVsd2lMRnh1SUNCN0lIZHBaSFJvT2lBME5EZ3NJR2hsYVdkb2REb2dOVEV5SUgwc1hHNHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdaRzl1WlNBOUlHTnlaV0YwWlVsamIyNG9YRzRnSUZ3aVRURTNNeTQ0T1RnZ05ETTVMalF3Tkd3dE1UWTJMalF0TVRZMkxqUmpMVGt1T1RrM0xUa3VPVGszTFRrdU9UazNMVEkyTGpJd05pQXdMVE0yTGpJd05Hd3pOaTR5TURNdE16WXVNakEwWXprdU9UazNMVGt1T1RrNElESTJMakl3TnkwNUxqazVPQ0F6Tmk0eU1EUWdNRXd4T1RJZ016RXlMalk1SURRek1pNHdPVFVnTnpJdU5UazJZemt1T1RrM0xUa3VPVGszSURJMkxqSXdOeTA1TGprNU55QXpOaTR5TURRZ01Hd3pOaTR5TURNZ016WXVNakEwWXprdU9UazNJRGt1T1RrM0lEa3VPVGszSURJMkxqSXdOaUF3SURNMkxqSXdOR3d0TWprMExqUWdNamswTGpRd01XTXRPUzQ1T1RnZ09TNDVPVGN0TWpZdU1qQTNJRGt1T1RrM0xUTTJMakl3TkMwdU1EQXhlbHdpTEZ4dUtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHMWxiblVnUFNCamNtVmhkR1ZKWTI5dUtGeHVJQ0JjSWsweE5pQXhNekpvTkRFMll6Z3VPRE0zSURBZ01UWXROeTR4TmpNZ01UWXRNVFpXTnpaak1DMDRMamd6TnkwM0xqRTJNeTB4TmkweE5pMHhOa2d4TmtNM0xqRTJNeUEyTUNBd0lEWTNMakUyTXlBd0lEYzJkalF3WXpBZ09DNDRNemNnTnk0eE5qTWdNVFlnTVRZZ01UWjZiVEFnTVRZd2FEUXhObU00TGpnek55QXdJREUyTFRjdU1UWXpJREUyTFRFMmRpMDBNR013TFRndU9ETTNMVGN1TVRZekxURTJMVEUyTFRFMlNERTJZeTA0TGpnek55QXdMVEUySURjdU1UWXpMVEUySURFMmRqUXdZekFnT0M0NE16Y2dOeTR4TmpNZ01UWWdNVFlnTVRaNmJUQWdNVFl3YURReE5tTTRMamd6TnlBd0lERTJMVGN1TVRZeklERTJMVEUyZGkwME1HTXdMVGd1T0RNM0xUY3VNVFl6TFRFMkxURTJMVEUyU0RFMll5MDRMamd6TnlBd0xURTJJRGN1TVRZekxURTJJREUyZGpRd1l6QWdPQzQ0TXpjZ055NHhOak1nTVRZZ01UWWdNVFo2WENJc1hHNHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdkVzVrYnlBOUlHTnlaV0YwWlVsamIyNG9YRzRnSUZ3aVRUSTFOUzQxTkRVZ09HTXROall1TWpZNUxqRXhPUzB4TWpZdU5ETTRJREkyTGpJek15MHhOekF1T0RZZ05qZ3VOamcxVERRNExqazNNU0EwTUM0NU56RkRNek11T0RVeElESTFMamcxTVNBNElETTJMalUxT1NBNElEVTNMamswTVZZeE9USmpNQ0F4TXk0eU5UVWdNVEF1TnpRMUlESTBJREkwSURJMGFERXpOQzR3TlRsak1qRXVNemd5SURBZ016SXVNRGt0TWpVdU9EVXhJREUyTGprM01TMDBNQzQ1TnpGc0xUUXhMamMxTFRReExqYzFZek13TGpnMk5DMHlPQzQ0T1RrZ056QXVPREF4TFRRMExqa3dOeUF4TVRNdU1qTXRORFV1TWpjeklEa3lMak01T0MwdU56azRJREUzTUM0eU9ETWdOek11T1RjM0lERTJPUzQwT0RRZ01UWTVMalEwTWtNME1qTXVNak0ySURNME9DNHdNRGtnTXpRNUxqZ3hOaUEwTWpRZ01qVTJJRFF5TkdNdE5ERXVNVEkzSURBdE56a3VPVGszTFRFMExqWTNPQzB4TVRBdU5qTXROREV1TlRVMkxUUXVOelF6TFRRdU1UWXhMVEV4TGprd05pMHpMamt3T0MweE5pNHpOamd1TlRVelREZzVMak0wSURReU1pNDJOVGxqTFRRdU9EY3lJRFF1T0RjeUxUUXVOak14SURFeUxqZ3hOUzQwT0RJZ01UY3VORE16UXpFek15NDNPVGdnTkRjNUxqZ3hNeUF4T1RJdU1EYzBJRFV3TkNBeU5UWWdOVEEwWXpFek5pNDVOallnTUNBeU5EY3VPVGs1TFRFeE1TNHdNek1nTWpRNExUSTBOeTQ1T1RoRE5UQTBMakF3TVNBeE1Ua3VNVGt6SURNNU1pNHpOVFFnTnk0M05UVWdNalUxTGpVME5TQTRlbHdpTEZ4dUlDQjdJRzFwY25KdmNqb2dkSEoxWlNCOUxGeHVLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJSEpsWkc4Z1BTQmpjbVZoZEdWSlkyOXVLRnh1SUNCY0lrMHlOVFl1TkRVMUlEaGpOall1TWpZNUxqRXhPU0F4TWpZdU5ETTNJREkyTGpJek15QXhOekF1T0RVNUlEWTRMalk0Tld3ek5TNDNNVFV0TXpVdU56RTFRelEzT0M0eE5Ea2dNalV1T0RVeElEVXdOQ0F6Tmk0MU5Ua2dOVEEwSURVM0xqazBNVll4T1RKak1DQXhNeTR5TlRVdE1UQXVOelExSURJMExUSTBJREkwU0RNME5TNDVOREZqTFRJeExqTTRNaUF3TFRNeUxqQTVMVEkxTGpnMU1TMHhOaTQ1TnpFdE5EQXVPVGN4YkRReExqYzFMVFF4TGpjMVl5MHpNQzQ0TmpRdE1qZ3VPRGs1TFRjd0xqZ3dNUzAwTkM0NU1EY3RNVEV6TGpJekxUUTFMakkzTXkwNU1pNHpPVGd0TGpjNU9DMHhOekF1TWpneklEY3pMamszTnkweE5qa3VORGcwSURFMk9TNDBOREpET0RndU56WTBJRE0wT0M0d01Ea2dNVFl5TGpFNE5DQTBNalFnTWpVMklEUXlOR00wTVM0eE1qY2dNQ0EzT1M0NU9UY3RNVFF1TmpjNElERXhNQzQyTWprdE5ERXVOVFUySURRdU56UXpMVFF1TVRZeElERXhMamt3Tmkwekxqa3dPQ0F4Tmk0ek5qZ3VOVFV6YkRNNUxqWTJNaUF6T1M0Mk5qSmpOQzQ0TnpJZ05DNDROeklnTkM0Mk16RWdNVEl1T0RFMUxTNDBPRElnTVRjdU5ETXpRek0zT0M0eU1ESWdORGM1TGpneE15QXpNVGt1T1RJMklEVXdOQ0F5TlRZZ05UQTBJREV4T1M0d016UWdOVEEwSURndU1EQXhJRE01TWk0NU5qY2dPQ0F5TlRZdU1EQXlJRGN1T1RrNUlERXhPUzR4T1RNZ01URTVMalkwTmlBM0xqYzFOU0F5TlRZdU5EVTFJRGg2WENJc1hHNGdJSHNnYldseWNtOXlPaUIwY25WbElIMHNYRzRwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnY1hWbGMzUnBiMjVEYVhKamJHVWdQU0JqY21WaGRHVkpZMjl1S0Z4dUlDQmNJazAxTURRZ01qVTJZekFnTVRNMkxqazVOeTB4TVRFdU1EUXpJREkwT0MweU5EZ2dNalE0VXpnZ016a3lMams1TnlBNElESTFOa000SURFeE9TNHdPRE1nTVRFNUxqQTBNeUE0SURJMU5pQTRjekkwT0NBeE1URXVNRGd6SURJME9DQXlORGg2VFRJMk1pNDJOVFVnT1RCakxUVTBMalE1TnlBd0xUZzVMakkxTlNBeU1pNDVOVGN0TVRFMkxqVTBPU0EyTXk0M05UZ3RNeTQxTXpZZ05TNHlPRFl0TWk0ek5UTWdNVEl1TkRFMUlESXVOekUxSURFMkxqSTFPR3d6TkM0Mk9Ua2dNall1TXpGak5TNHlNRFVnTXk0NU5EY2dNVEl1TmpJeElETXVNREE0SURFMkxqWTJOUzB5TGpFeU1pQXhOeTQ0TmpRdE1qSXVOalU0SURNd0xqRXhNeTB6TlM0M09UY2dOVGN1TXpBekxUTTFMamM1TnlBeU1DNDBNamtnTUNBME5TNDJPVGdnTVRNdU1UUTRJRFExTGpZNU9DQXpNaTQ1TlRnZ01DQXhOQzQ1TnpZdE1USXVNell6SURJeUxqWTJOeTB6TWk0MU16UWdNek11T1RjMlF6STBOeTR4TWpnZ01qTTRMalV5T0NBeU1UWWdNalUwTGprME1TQXlNVFlnTWprMmRqUmpNQ0EyTGpZeU55QTFMak0zTXlBeE1pQXhNaUF4TW1nMU5tTTJMall5TnlBd0lERXlMVFV1TXpjeklERXlMVEV5ZGkweExqTXpNMk13TFRJNExqUTJNaUE0TXk0eE9EWXRNamt1TmpRM0lEZ3pMakU0TmkweE1EWXVOalkzSURBdE5UZ3VNREF5TFRZd0xqRTJOUzB4TURJdE1URTJMalV6TVMweE1ESjZUVEkxTmlBek16aGpMVEkxTGpNMk5TQXdMVFEySURJd0xqWXpOUzAwTmlBME5pQXdJREkxTGpNMk5DQXlNQzQyTXpVZ05EWWdORFlnTkRaek5EWXRNakF1TmpNMklEUTJMVFEyWXpBdE1qVXVNelkxTFRJd0xqWXpOUzAwTmkwME5pMDBObnBjSWl4Y2JpQWdleUJ0YVhKeWIzSTZJSFJ5ZFdVZ2ZTeGNiaWs3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J6YUdGeVpTQTlJR055WldGMFpVbGpiMjRvWEc0Z0lGd2lUVEU0SURFMkxqQTRZeTB1TnpZZ01DMHhMalEwTGpNdE1TNDVOaTQzTjB3NExqa3hJREV5TGpkakxqQTFMUzR5TXk0d09TMHVORFl1TURrdExqZHpMUzR3TkMwdU5EY3RMakE1TFM0M2JEY3VNRFV0TkM0eE1XTXVOVFF1TlNBeExqSTFMamd4SURJdU1EUXVPREVnTVM0Mk5pQXdJRE10TVM0ek5DQXpMVE56TFRFdU16UXRNeTB6TFRNdE15QXhMak0wTFRNZ00yTXdJQzR5TkM0d05DNDBOeTR3T1M0M1REZ3VNRFFnT1M0NE1VTTNMalVnT1M0ek1TQTJMamM1SURrZ05pQTVZeTB4TGpZMklEQXRNeUF4TGpNMExUTWdNM014TGpNMElETWdNeUF6WXk0M09TQXdJREV1TlMwdU16RWdNaTR3TkMwdU9ERnNOeTR4TWlBMExqRTJZeTB1TURVdU1qRXRMakE0TGpRekxTNHdPQzQyTlNBd0lERXVOakVnTVM0ek1TQXlMamt5SURJdU9USWdNaTQ1TWlBeExqWXhJREFnTWk0NU1pMHhMak14SURJdU9USXRNaTQ1TW5NdE1TNHpNUzB5TGpreUxUSXVPVEl0TWk0NU1ucGNJaXhjYmlBZ2V5QjNhV1IwYURvZ01qUXNJR2hsYVdkb2REb2dNalFnZlN4Y2JpazdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnphR0Z5WlVsUFV5QTlJR055WldGMFpVbGpiMjRvWEc0Z0lGd2lUVEUySURWc0xURXVORElnTVM0ME1pMHhMalU1TFRFdU5UbFdNVFpvTFRFdU9UaFdOQzQ0TTB3NUxqUXlJRFl1TkRJZ09DQTFiRFF0TkNBMElEUjZiVFFnTlhZeE1XTXdJREV1TVMwdU9TQXlMVElnTWtnMll5MHhMakV4SURBdE1pMHVPUzB5TFRKV01UQmpNQzB4TGpFeExqZzVMVElnTWkweWFETjJNa2cyZGpFeGFERXlWakV3YUMwelZqaG9NMk14TGpFZ01DQXlJQzQ0T1NBeUlESjZYQ0lzWEc0Z0lIc2dkMmxrZEdnNklESTBMQ0JvWldsbmFIUTZJREkwSUgwc1hHNHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdjMmhoY21WWGFXNWtiM2R6SUQwZ1kzSmxZWFJsU1dOdmJpaGNiaUFnUEQ1Y2JpQWdJQ0E4Y0dGMGFGeHVJQ0FnSUNBZ2MzUnliMnRsUFZ3aVkzVnljbVZ1ZEVOdmJHOXlYQ0pjYmlBZ0lDQWdJR1pwYkd3OVhDSmpkWEp5Wlc1MFEyOXNiM0pjSWx4dUlDQWdJQ0FnWkQxY0lrMDBNQ0ExTGpaMk5pNHhiQzAwTGpFdU4yTXRPQzQ1SURFdU5DMHhOaTQxSURZdU9TMHlNQzQySURFMVF6RXpJRE15SURFd0xqa2dORE1nTVRJdU5DQTBNMk11TkNBd0lESXVOQzB4TGpNZ05DNDBMVE1nTlMwekxqa2dNVEl1TVMwM0lERTRMakl0Tnk0M2JEVXRMaloyTVRJdU9Hd3hNUzR5TFRFeExqTk1Oakl1TlNBeU1pQTFNUzR5SURFd0xqZ2dOREF0TGpWMk5pNHhlbTB4TUM0eUlESXlMalpNTkRRZ016UXVOWFl0Tmk0NGJDMDJMamt1Tm1NdE15NDVMak10T1M0NElERXVOeTB4TXk0eUlETXVNUzB6TGpVZ01TNDBMVFl1TlNBeUxqUXROaTQzSURJdU1pMHVPUzB4SURNdE55NDFJRFl1TkMweE1DNDRRekk0SURFNExqWWdNelF1TkNBeE5pQTBNQzR4SURFMll6TXVOeUF3SURNdU9TMHVNU0F6TGprdE15NHlWamt1Tld3MkxqSWdOaTR6SURZdU15QTJMakl0Tmk0eklEWXVNbnBjSWx4dUlDQWdJQzgrWEc0Z0lDQWdQSEJoZEdoY2JpQWdJQ0FnSUhOMGNtOXJaVDFjSW1OMWNuSmxiblJEYjJ4dmNsd2lYRzRnSUNBZ0lDQm1hV3hzUFZ3aVkzVnljbVZ1ZEVOdmJHOXlYQ0pjYmlBZ0lDQWdJR1E5WENKTk1DQXpObll5TUdnME9IWXROaTR5WXpBdE5pQXdMVFl1TVMweUxUUXVNeTB4TGpFZ01TMHlJREl1T1MweUlEUXVNbFkxTWtnMFZqTTBZekF0TVRjdU15MHVNUzB4T0MweUxURTRjeTB5SUM0M0xUSWdNakI2WENKY2JpQWdJQ0F2UGx4dUlDQThMejRzWEc0Z0lIc2dkMmxrZEdnNklEWTBMQ0JvWldsbmFIUTZJRFkwSUgwc1hHNHBPMXh1WEc0dkx5QkpZMjl1SUdsdGNHOXlkR1ZrSUdadmNtMGdVM1J2Y25saWIyOXJYRzR2THlCVGRHOXllV0p2YjJzZ2FYTWdiR2xqWlc1elpXUWdkVzVrWlhJZ1RVbFVJR2gwZEhCek9pOHZaMmwwYUhWaUxtTnZiUzl6ZEc5eWVXSnZiMnRxY3k5emRHOXllV0p2YjJzdllteHZZaTl1WlhoMEwweEpRMFZPVTBWY2JtVjRjRzl5ZENCamIyNXpkQ0J5WlhObGRGcHZiMjBnUFNCamNtVmhkR1ZKWTI5dUtGeHVJQ0E4Y0dGMGFGeHVJQ0FnSUhOMGNtOXJaVDFjSW1OMWNuSmxiblJEYjJ4dmNsd2lYRzRnSUNBZ2MzUnliMnRsVjJsa2RHZzlYQ0kwTUZ3aVhHNGdJQ0FnWm1sc2JEMWNJbU4xY25KbGJuUkRiMnh2Y2x3aVhHNGdJQ0FnWkQxY0lrMHhORGdnTlRZd1lUTXhPQ0F6TVRnZ01DQXdJREFnTlRJeUlERXhNQ0F6TVRZZ016RTJJREFnTUNBd0lEQXRORFV3SURNeE5pQXpNVFlnTUNBd0lEQXRORFV3SURCakxURXhJREV4TFRJeElESXlMVE13SURNMGRqUm9ORGRqTWpVZ01DQTBOaUF5TVNBME5pQTBObk10TWpFZ05EVXRORFlnTkRWSU9UQmpMVEV6SURBdE1qVXROaTB6TXkweE5DMDVMVGt0TVRRdE1qQXRNVFF0TXpOV01UVTJZekF0TWpVZ01qQXRORFVnTkRVdE5EVnpORFVnTWpBZ05EVWdORFYyTXpKc01TQXhZVFF3TVNBME1ERWdNQ0F3SURFZ05qSXpJRFV3T1d3eU1USWdNakV5WVRReUlEUXlJREFnTUNBeExUVTVJRFU1VERZNU9DQTNOVGRCTkRBeElEUXdNU0F3SURBZ01TQTJOU0ExTnpCaE5ESWdORElnTUNBd0lERWdPRE10TVRCNlhDSmNiaUFnTHo0c1hHNGdJSHNnZDJsa2RHZzZJREV3TWpRZ2ZTeGNiaWs3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JDY21sdVowWnZjbmRoY21SSlkyOXVJRDBnVW1WaFkzUXViV1Z0Ynlnb2V5QjBhR1Z0WlNCOU9pQjdJSFJvWlcxbE9pQlVhR1Z0WlNCOUtTQTlQbHh1SUNCamNtVmhkR1ZKWTI5dUtGeHVJQ0FnSUR3K1hHNGdJQ0FnSUNBOGNHRjBhRnh1SUNBZ0lDQWdJQ0JrUFZ3aVRUSXlJRGt1TlRVMlF6SXlJRGd1TmprMklESXhMak13TXlBNElESXdMalEwTkNBNFNERTJkamhJT0hZMExqUTBORU00SURJeExqTXdOQ0E0TGpZNU55QXlNaUE1TGpVMU5pQXlNbWd4TUM0NE9EaGpMamcySURBZ01TNDFOVFl0TGpZNU55QXhMalUxTmkweExqVTFObFk1TGpVMU5ucGNJbHh1SUNBZ0lDQWdJQ0JtYVd4c1BYdHBZMjl1Um1sc2JFTnZiRzl5S0hSb1pXMWxLWDFjYmlBZ0lDQWdJQ0FnYzNSeWIydGxQWHRwWTI5dVJtbHNiRU52Ykc5eUtIUm9aVzFsS1gxY2JpQWdJQ0FnSUNBZ2MzUnliMnRsVjJsa2RHZzlYQ0l5WENKY2JpQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBOGNHRjBhRnh1SUNBZ0lDQWdJQ0JrUFZ3aVRURTJJRE11TlRVMlF6RTJJREl1TmprMklERTFMak13TXlBeUlERTBMalEwTkNBeVNETXVOVFUyUXpJdU5qazJJRElnTWlBeUxqWTVOeUF5SURNdU5UVTJkakV3TGpnNE9FTXlJREUxTGpNd05DQXlMalk1TnlBeE5pQXpMalUxTmlBeE5tZ3hNQzQ0T0RoakxqZzJJREFnTVM0MU5UWXRMalk1TnlBeExqVTFOaTB4TGpVMU5sWXpMalUxTm5wY0lseHVJQ0FnSUNBZ0lDQm1hV3hzUFh0aFkzUnBkbVZGYkdWdFpXNTBRMjlzYjNJb2RHaGxiV1VwZlZ4dUlDQWdJQ0FnSUNCemRISnZhMlU5ZTJGamRHbDJaVVZzWlcxbGJuUkRiMnh2Y2loMGFHVnRaU2w5WEc0Z0lDQWdJQ0FnSUhOMGNtOXJaVmRwWkhSb1BWd2lNbHdpWEc0Z0lDQWdJQ0F2UGx4dUlDQWdJRHd2UGl4Y2JpQWdJQ0I3SUhkcFpIUm9PaUF5TkN3Z2JXbHljbTl5T2lCMGNuVmxJSDBzWEc0Z0lDa3NYRzRwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnVTJWdVpFSmhZMnQzWVhKa1NXTnZiaUE5SUZKbFlXTjBMbTFsYlc4b0tIc2dkR2hsYldVZ2ZUb2dleUIwYUdWdFpUb2dWR2hsYldVZ2ZTa2dQVDVjYmlBZ1kzSmxZWFJsU1dOdmJpaGNiaUFnSUNBOFBseHVJQ0FnSUNBZ1BIQmhkR2hjYmlBZ0lDQWdJQ0FnWkQxY0lrMHhOaUF6TGpVMU5rTXhOaUF5TGpZNU5pQXhOUzR6TURNZ01pQXhOQzQwTkRRZ01rZ3pMalUxTmtNeUxqWTVOaUF5SURJZ01pNDJPVGNnTWlBekxqVTFObll4TUM0NE9EaERNaUF4TlM0ek1EUWdNaTQyT1RjZ01UWWdNeTQxTlRZZ01UWm9NVEF1T0RnNFl5NDROaUF3SURFdU5UVTJMUzQyT1RjZ01TNDFOVFl0TVM0MU5UWldNeTQxTlRaNlhDSmNiaUFnSUNBZ0lDQWdabWxzYkQxN1lXTjBhWFpsUld4bGJXVnVkRU52Ykc5eUtIUm9aVzFsS1gxY2JpQWdJQ0FnSUNBZ2MzUnliMnRsUFh0aFkzUnBkbVZGYkdWdFpXNTBRMjlzYjNJb2RHaGxiV1VwZlZ4dUlDQWdJQ0FnSUNCemRISnZhMlZYYVdSMGFEMWNJakpjSWx4dUlDQWdJQ0FnTHo1Y2JpQWdJQ0FnSUR4d1lYUm9YRzRnSUNBZ0lDQWdJR1E5WENKTk1qSWdPUzQxTlRaRE1qSWdPQzQyT1RZZ01qRXVNekF6SURnZ01qQXVORFEwSURoSU9TNDFOVFpET0M0Mk9UWWdPQ0E0SURndU5qazNJRGdnT1M0MU5UWjJNVEF1T0RnNFF6Z2dNakV1TXpBMElEZ3VOamszSURJeUlEa3VOVFUySURJeWFERXdMamc0T0dNdU9EWWdNQ0F4TGpVMU5pMHVOamszSURFdU5UVTJMVEV1TlRVMlZqa3VOVFUyZWx3aVhHNGdJQ0FnSUNBZ0lHWnBiR3c5ZTJsamIyNUdhV3hzUTI5c2IzSW9kR2hsYldVcGZWeHVJQ0FnSUNBZ0lDQnpkSEp2YTJVOWUybGpiMjVHYVd4c1EyOXNiM0lvZEdobGJXVXBmVnh1SUNBZ0lDQWdJQ0J6ZEhKdmEyVlhhV1IwYUQxY0lqSmNJbHh1SUNBZ0lDQWdMejVjYmlBZ0lDQThMejRzWEc0Z0lDQWdleUIzYVdSMGFEb2dNalFzSUcxcGNuSnZjam9nZEhKMVpTQjlMRnh1SUNBcExGeHVLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRUp5YVc1blZHOUdjbTl1ZEVsamIyNGdQU0JTWldGamRDNXRaVzF2S0NoN0lIUm9aVzFsSUgwNklIc2dkR2hsYldVNklGUm9aVzFsSUgwcElEMCtYRzRnSUdOeVpXRjBaVWxqYjI0b1hHNGdJQ0FnUEQ1Y2JpQWdJQ0FnSUR4d1lYUm9YRzRnSUNBZ0lDQWdJR1E5WENKTk1UTWdNakZoTVNBeElEQWdNREF4SURGb04yRXhJREVnTUNBd01ERXRNWFl0TjJFeElERWdNQ0F3TUMweExURm9MVE4yTldndE5YWXplazB4TVNBellURWdNU0F3SURBd0xURXRNVWd6WVRFZ01TQXdJREF3TFRFZ01YWTNZVEVnTVNBd0lEQXdNU0F4YUROV05tZzFWak42WENKY2JpQWdJQ0FnSUNBZ1ptbHNiRDE3YVdOdmJrWnBiR3hEYjJ4dmNpaDBhR1Z0WlNsOVhHNGdJQ0FnSUNBZ0lITjBjbTlyWlQxN2FXTnZia1pwYkd4RGIyeHZjaWgwYUdWdFpTbDlYRzRnSUNBZ0lDQWdJSE4wY205clpWZHBaSFJvUFZ3aU1sd2lYRzRnSUNBZ0lDQXZQbHh1SUNBZ0lDQWdQSEJoZEdoY2JpQWdJQ0FnSUNBZ1pEMWNJazB4T0NBM0xqTXpNME14T0NBMkxqVTVOeUF4Tnk0ME1ETWdOaUF4Tmk0Mk5qY2dOa2czTGpNek0wTTJMalU1TnlBMklEWWdOaTQxT1RjZ05pQTNMak16TTNZNUxqTXpORU0ySURFM0xqUXdNeUEyTGpVNU55QXhPQ0EzTGpNek15QXhPR2c1TGpNek5HTXVOek0ySURBZ01TNHpNek10TGpVNU55QXhMak16TXkweExqTXpNMVkzTGpNek0zcGNJbHh1SUNBZ0lDQWdJQ0JtYVd4c1BYdGhZM1JwZG1WRmJHVnRaVzUwUTI5c2IzSW9kR2hsYldVcGZWeHVJQ0FnSUNBZ0lDQnpkSEp2YTJVOWUyRmpkR2wyWlVWc1pXMWxiblJEYjJ4dmNpaDBhR1Z0WlNsOVhHNGdJQ0FnSUNBZ0lITjBjbTlyWlZkcFpIUm9QVndpTWx3aVhHNGdJQ0FnSUNBdlBseHVJQ0FnSUR3dlBpeGNiaUFnSUNCN0lIZHBaSFJvT2lBeU5Dd2diV2x5Y205eU9pQjBjblZsSUgwc1hHNGdJQ2tzWEc0cE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1UyVnVaRlJ2UW1GamEwbGpiMjRnUFNCU1pXRmpkQzV0WlcxdktDaDdJSFJvWlcxbElIMDZJSHNnZEdobGJXVTZJRlJvWlcxbElIMHBJRDArWEc0Z0lHTnlaV0YwWlVsamIyNG9YRzRnSUNBZ1BENWNiaUFnSUNBZ0lEeHdZWFJvWEc0Z0lDQWdJQ0FnSUdROVhDSk5NVGdnTnk0ek16TkRNVGdnTmk0MU9UY2dNVGN1TkRBeklEWWdNVFl1TmpZM0lEWklOeTR6TXpORE5pNDFPVGNnTmlBMklEWXVOVGszSURZZ055NHpNek4yT1M0ek16UkROaUF4Tnk0ME1ETWdOaTQxT1RjZ01UZ2dOeTR6TXpNZ01UaG9PUzR6TXpSakxqY3pOaUF3SURFdU16TXpMUzQxT1RjZ01TNHpNek10TVM0ek16TldOeTR6TXpONlhDSmNiaUFnSUNBZ0lDQWdabWxzYkQxN1lXTjBhWFpsUld4bGJXVnVkRU52Ykc5eUtIUm9aVzFsS1gxY2JpQWdJQ0FnSUNBZ2MzUnliMnRsUFh0aFkzUnBkbVZGYkdWdFpXNTBRMjlzYjNJb2RHaGxiV1VwZlZ4dUlDQWdJQ0FnSUNCemRISnZhMlZYYVdSMGFEMWNJakpjSWx4dUlDQWdJQ0FnTHo1Y2JpQWdJQ0FnSUR4d1lYUm9YRzRnSUNBZ0lDQWdJR1E5WENKTk1URWdNMkV4SURFZ01DQXdNQzB4TFRGSU0yRXhJREVnTUNBd01DMHhJREYyTjJFeElERWdNQ0F3TURFZ01XZzRWak42VFRJeUlERTBZVEVnTVNBd0lEQXdMVEV0TVdndE4yRXhJREVnTUNBd01DMHhJREYyTjJFeElERWdNQ0F3TURFZ01XZzRkaTA0ZWx3aVhHNGdJQ0FnSUNBZ0lHWnBiR3c5ZTJsamIyNUdhV3hzUTI5c2IzSW9kR2hsYldVcGZWeHVJQ0FnSUNBZ0lDQnpkSEp2YTJVOWUybGpiMjVHYVd4c1EyOXNiM0lvZEdobGJXVXBmVnh1SUNBZ0lDQWdJQ0J6ZEhKdmEyVlhhV1IwYUQxY0lqSmNJbHh1SUNBZ0lDQWdMejVjYmlBZ0lDQThMejRzWEc0Z0lDQWdleUIzYVdSMGFEb2dNalFzSUcxcGNuSnZjam9nZEhKMVpTQjlMRnh1SUNBcExGeHVLVHRjYmx4dUx5OWNiaTh2SUVGc2FXZHVJR0ZqZEdsdmJpQnBZMjl1Y3lCamNtVmhkR1ZrSUdaeWIyMGdjMk55WVhSamFDQjBieUJ0WVhSamFDQjBhRzl6WlNCdlppQjZMV2x1WkdWNElHRmpkR2x2Ym5OY2JpOHZJRTV2ZEdVNklIWmxjblJwWTJGc0lHRnNhV2R1SUdsamIyNXpJR0Z5WlNCbWJHbHdjR1ZrSUhOdklIUm9aU0JzWVhKblpYSWdhWFJsYlNCcGN5QmhiSGRoZVhNZ2RHaGxYRzR2THlCbWFYSnpkQ0J2Ym1VZ2RHaGxJSFZ6WlhJZ2MyVmxjeTRnU0c5eWFYcHZiblJoYkNCaGJHbG5iaUJwWTI5dWN5QnphRzkxYkdRZ2JtOTBJR0psSUdac2FYQndaV1FnYzJsdVkyVmNiaTh2SUhSb1lYUWdkMjkxYkdRZ2JXRnJaU0IwYUdWdElHeHBaU0JoWW05MWRDQjBhR1ZwY2lCbWRXNWpkR2x2Ymk1Y2JpOHZYRzVsZUhCdmNuUWdZMjl1YzNRZ1FXeHBaMjVVYjNCSlkyOXVJRDBnVW1WaFkzUXViV1Z0Ynlnb2V5QjBhR1Z0WlNCOU9pQjdJSFJvWlcxbE9pQlVhR1Z0WlNCOUtTQTlQbHh1SUNCamNtVmhkR1ZKWTI5dUtGeHVJQ0FnSUR3K1hHNGdJQ0FnSUNBOGNHRjBhRnh1SUNBZ0lDQWdJQ0JrUFZ3aVRTQXlMRFVnU0NBeU1sd2lYRzRnSUNBZ0lDQWdJR1pwYkd3OWUybGpiMjVHYVd4c1EyOXNiM0lvZEdobGJXVXBmVnh1SUNBZ0lDQWdJQ0J6ZEhKdmEyVTllMmxqYjI1R2FXeHNRMjlzYjNJb2RHaGxiV1VwZlZ4dUlDQWdJQ0FnSUNCemRISnZhMlZYYVdSMGFEMWNJakpjSWx4dUlDQWdJQ0FnSUNCemRISnZhMlZNYVc1bFkyRndQVndpY205MWJtUmNJbHh1SUNBZ0lDQWdMejVjYmlBZ0lDQWdJRHh3WVhSb1hHNGdJQ0FnSUNBZ0lHUTlYQ0pOSURZc055QkRJRFV1TkRRMkxEY2dOU3czTGpRME5pQTFMRGdnZGlBNUxqazVPVGs1TWlCaklEQXNNQzQxTlRRZ01DNDBORFlzTVNBeExERWdhQ0F6TGpBd01EQXdNREVnWXlBd0xqVTFOQ3d3SURBdU9UazVPVGs1T1N3dE1DNDBORFlnTUM0NU9UazVPVGs1TEMweElGWWdPQ0JESURFd0xEY3VORFEySURrdU5UVTBNREF3TVN3M0lEa3VNREF3TURBd01TdzNJRm9nYlNBNUxEQWdZeUF0TUM0MU5UUXNNQ0F0TVN3d0xqUTBOaUF0TVN3eElIWWdOUzQ1T1RrNU9USWdZeUF3TERBdU5UVTBJREF1TkRRMkxERWdNU3d4SUdnZ015QmpJREF1TlRVMExEQWdNU3d0TUM0ME5EWWdNU3d0TVNCV0lEZ2dReUF4T1N3M0xqUTBOaUF4T0M0MU5UUXNOeUF4T0N3M0lGcGNJbHh1SUNBZ0lDQWdJQ0JtYVd4c1BYdGhZM1JwZG1WRmJHVnRaVzUwUTI5c2IzSW9kR2hsYldVcGZWeHVJQ0FnSUNBZ0lDQnpkSEp2YTJVOWUyRmpkR2wyWlVWc1pXMWxiblJEYjJ4dmNpaDBhR1Z0WlNsOVhHNGdJQ0FnSUNBZ0lITjBjbTlyWlZkcFpIUm9QVndpTWx3aVhHNGdJQ0FnSUNBdlBseHVJQ0FnSUR3dlBpeGNiaUFnSUNCN0lIZHBaSFJvT2lBeU5Dd2diV2x5Y205eU9pQjBjblZsSUgwc1hHNGdJQ2tzWEc0cE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1FXeHBaMjVDYjNSMGIyMUpZMjl1SUQwZ1VtVmhZM1F1YldWdGJ5Z29leUIwYUdWdFpTQjlPaUI3SUhSb1pXMWxPaUJVYUdWdFpTQjlLU0E5UGx4dUlDQmpjbVZoZEdWSlkyOXVLRnh1SUNBZ0lEdytYRzRnSUNBZ0lDQThjR0YwYUZ4dUlDQWdJQ0FnSUNCa1BWd2lUU0F5TERFNUlFZ2dNakpjSWx4dUlDQWdJQ0FnSUNCbWFXeHNQWHRwWTI5dVJtbHNiRU52Ykc5eUtIUm9aVzFsS1gxY2JpQWdJQ0FnSUNBZ2MzUnliMnRsUFh0cFkyOXVSbWxzYkVOdmJHOXlLSFJvWlcxbEtYMWNiaUFnSUNBZ0lDQWdjM1J5YjJ0bFYybGtkR2c5WENJeVhDSmNiaUFnSUNBZ0lDQWdjM1J5YjJ0bFRHbHVaV05oY0QxY0luSnZkVzVrWENKY2JpQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBOGNHRjBhRnh1SUNBZ0lDQWdJQ0JrUFZ3aWJTQTJMREUyTGprNU9UazVNaUJqSUMwd0xqVTFOQ3d3SUMweExDMHdMalEwTmlBdE1Td3RNU0JXSURZZ1F5QTFMRFV1TkRRMklEVXVORFEyTERVZ05pdzFJRWdnT1M0d01EQXdNREF4SUVNZ09TNDFOVFF3TURBeExEVWdNVEFzTlM0ME5EWWdNVEFzTmlCMklEa3VPVGs1T1RreUlHTWdNQ3d3TGpVMU5DQXRNQzQwTkRVNU9UazVMREVnTFRBdU9UazVPVGs1T1N3eElIb2diU0E1TERBZ1l5QXRNQzQxTlRRc01DQXRNU3d0TUM0ME5EWWdMVEVzTFRFZ1ZpQXhNQ0JqSURBc0xUQXVOVFUwSURBdU5EUTJMQzB4SURFc0xURWdhQ0F6SUdNZ01DNDFOVFFzTUNBeExEQXVORFEySURFc01TQjJJRFV1T1RrNU9Ua3lJR01nTUN3d0xqVTFOQ0F0TUM0ME5EWXNNU0F0TVN3eElIcGNJbHh1SUNBZ0lDQWdJQ0JtYVd4c1BYdGhZM1JwZG1WRmJHVnRaVzUwUTI5c2IzSW9kR2hsYldVcGZWeHVJQ0FnSUNBZ0lDQnpkSEp2YTJVOWUyRmpkR2wyWlVWc1pXMWxiblJEYjJ4dmNpaDBhR1Z0WlNsOVhHNGdJQ0FnSUNBZ0lITjBjbTlyWlZkcFpIUm9QVndpTWx3aVhHNGdJQ0FnSUNBdlBseHVJQ0FnSUR3dlBpeGNiaUFnSUNCN0lIZHBaSFJvT2lBeU5Dd2diV2x5Y205eU9pQjBjblZsSUgwc1hHNGdJQ2tzWEc0cE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1FXeHBaMjVNWldaMFNXTnZiaUE5SUZKbFlXTjBMbTFsYlc4b0tIc2dkR2hsYldVZ2ZUb2dleUIwYUdWdFpUb2dWR2hsYldVZ2ZTa2dQVDVjYmlBZ1kzSmxZWFJsU1dOdmJpaGNiaUFnSUNBOFBseHVJQ0FnSUNBZ1BIQmhkR2hjYmlBZ0lDQWdJQ0FnWkQxY0lrMGdOU3d5SUZZZ01qSmNJbHh1SUNBZ0lDQWdJQ0JtYVd4c1BYdHBZMjl1Um1sc2JFTnZiRzl5S0hSb1pXMWxLWDFjYmlBZ0lDQWdJQ0FnYzNSeWIydGxQWHRwWTI5dVJtbHNiRU52Ykc5eUtIUm9aVzFsS1gxY2JpQWdJQ0FnSUNBZ2MzUnliMnRsVjJsa2RHZzlYQ0l5WENKY2JpQWdJQ0FnSUNBZ2MzUnliMnRsVEdsdVpXTmhjRDFjSW5KdmRXNWtYQ0pjYmlBZ0lDQWdJQzgrWEc0Z0lDQWdJQ0E4Y0dGMGFGeHVJQ0FnSUNBZ0lDQmtQVndpYlNBM0xqQXdNREF3TkN3MUxqazVPVGs1TmlCaklEQXNMVEF1TlRVMElEQXVORFEyTEMweElERXNMVEVnYUNBNUxqazVPVGs1TWlCaklEQXVOVFUwTERBZ01Td3dMalEwTmlBeExERWdkaUF6TGpBd01EQXdNREVnWXlBd0xEQXVOVFUwSUMwd0xqUTBOaXd3TGprNU9UazVPVGtnTFRFc01DNDVPVGs1T1RrNUlFZ2dPQzR3TURBd01EUWdZeUF0TUM0MU5UUXNNQ0F0TVN3dE1DNDBORFU1T1RrNUlDMHhMQzB3TGprNU9UazVPVGtnZWlCdElEQXNPU0JqSURBc0xUQXVOVFUwSURBdU5EUTJMQzB4SURFc0xURWdhQ0ExTGprNU9UazVNaUJqSURBdU5UVTBMREFnTVN3d0xqUTBOaUF4TERFZ2RpQXpJR01nTUN3d0xqVTFOQ0F0TUM0ME5EWXNNU0F0TVN3eElFZ2dPQzR3TURBd01EUWdZeUF0TUM0MU5UUXNNQ0F0TVN3dE1DNDBORFlnTFRFc0xURWdlbHdpWEc0Z0lDQWdJQ0FnSUdacGJHdzllMkZqZEdsMlpVVnNaVzFsYm5SRGIyeHZjaWgwYUdWdFpTbDlYRzRnSUNBZ0lDQWdJSE4wY205clpUMTdZV04wYVhabFJXeGxiV1Z1ZEVOdmJHOXlLSFJvWlcxbEtYMWNiaUFnSUNBZ0lDQWdjM1J5YjJ0bFYybGtkR2c5WENJeVhDSmNiaUFnSUNBZ0lDOCtYRzRnSUNBZ1BDOCtMRnh1SUNBZ0lIc2dkMmxrZEdnNklESTBJSDBzWEc0Z0lDa3NYRzRwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnUVd4cFoyNVNhV2RvZEVsamIyNGdQU0JTWldGamRDNXRaVzF2S0NoN0lIUm9aVzFsSUgwNklIc2dkR2hsYldVNklGUm9aVzFsSUgwcElEMCtYRzRnSUdOeVpXRjBaVWxqYjI0b1hHNGdJQ0FnUEQ1Y2JpQWdJQ0FnSUR4d1lYUm9YRzRnSUNBZ0lDQWdJR1E5WENKTklERTVMRElnVmlBeU1sd2lYRzRnSUNBZ0lDQWdJR1pwYkd3OWUybGpiMjVHYVd4c1EyOXNiM0lvZEdobGJXVXBmVnh1SUNBZ0lDQWdJQ0J6ZEhKdmEyVTllMmxqYjI1R2FXeHNRMjlzYjNJb2RHaGxiV1VwZlZ4dUlDQWdJQ0FnSUNCemRISnZhMlZYYVdSMGFEMWNJakpjSWx4dUlDQWdJQ0FnSUNCemRISnZhMlZNYVc1bFkyRndQVndpY205MWJtUmNJbHh1SUNBZ0lDQWdMejVjYmlBZ0lDQWdJRHh3WVhSb1hHNGdJQ0FnSUNBZ0lHUTlYQ0p0SURFMkxqazVPVGs1Tml3MUxqazVPVGs1TmlCaklEQXNMVEF1TlRVMElDMHdMalEwTml3dE1TQXRNU3d0TVNCSUlEWXVNREF3TURBMElHTWdMVEF1TlRVMExEQWdMVEVzTUM0ME5EWWdMVEVzTVNCMklETXVNREF3TURBd01TQmpJREFzTUM0MU5UUWdNQzQwTkRZc01DNDVPVGs1T1RrNUlERXNNQzQ1T1RrNU9UazVJR2dnT1M0NU9UazVPVElnWXlBd0xqVTFOQ3d3SURFc0xUQXVORFExT1RrNU9TQXhMQzB3TGprNU9UazVPVGtnZWlCdElEQXNPU0JqSURBc0xUQXVOVFUwSUMwd0xqUTBOaXd0TVNBdE1Td3RNU0JvSUMwMUxqazVPVGs1TWlCaklDMHdMalUxTkN3d0lDMHhMREF1TkRRMklDMHhMREVnZGlBeklHTWdNQ3d3TGpVMU5DQXdMalEwTml3eElERXNNU0JvSURVdU9UazVPVGt5SUdNZ01DNDFOVFFzTUNBeExDMHdMalEwTmlBeExDMHhJSHBjSWx4dUlDQWdJQ0FnSUNCbWFXeHNQWHRoWTNScGRtVkZiR1Z0Wlc1MFEyOXNiM0lvZEdobGJXVXBmVnh1SUNBZ0lDQWdJQ0J6ZEhKdmEyVTllMkZqZEdsMlpVVnNaVzFsYm5SRGIyeHZjaWgwYUdWdFpTbDlYRzRnSUNBZ0lDQWdJSE4wY205clpWZHBaSFJvUFZ3aU1sd2lYRzRnSUNBZ0lDQXZQbHh1SUNBZ0lEd3ZQaXhjYmlBZ0lDQjdJSGRwWkhSb09pQXlOQ0I5TEZ4dUlDQXBMRnh1S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUVScGMzUnlhV0oxZEdWSWIzSnBlbTl1ZEdGc2JIbEpZMjl1SUQwZ1VtVmhZM1F1YldWdGJ5aGNiaUFnS0hzZ2RHaGxiV1VnZlRvZ2V5QjBhR1Z0WlRvZ1ZHaGxiV1VnZlNrZ1BUNWNiaUFnSUNCamNtVmhkR1ZKWTI5dUtGeHVJQ0FnSUNBZ1BENWNiaUFnSUNBZ0lDQWdQSEJoZEdoY2JpQWdJQ0FnSUNBZ0lDQmtQVndpVFRFNUlEVldNVGxOTlNBMVZqRTVYQ0pjYmlBZ0lDQWdJQ0FnSUNCemRISnZhMlU5ZTJsamIyNUdhV3hzUTI5c2IzSW9kR2hsYldVcGZWeHVJQ0FnSUNBZ0lDQWdJSE4wY205clpWZHBaSFJvUFZ3aU1sd2lYRzRnSUNBZ0lDQWdJQ0FnYzNSeWIydGxUR2x1WldOaGNEMWNJbkp2ZFc1a1hDSmNiaUFnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ0FnUEhCaGRHaGNiaUFnSUNBZ0lDQWdJQ0JrUFZ3aVRURTFJRGxETVRVdU5UVTBJRGtnTVRZZ09TNDBORFlnTVRZZ01UQldNVFJETVRZZ01UUXVOVFUwSURFMUxqVTFOQ0F4TlNBeE5TQXhOVWc1UXpndU5EUTJJREUxSURnZ01UUXVOVFUwSURnZ01UUldNVEJET0NBNUxqUTBOaUE0TGpRME5pQTVJRGtnT1VneE5WcGNJbHh1SUNBZ0lDQWdJQ0FnSUdacGJHdzllMkZqZEdsMlpVVnNaVzFsYm5SRGIyeHZjaWgwYUdWdFpTbDlYRzRnSUNBZ0lDQWdJQ0FnYzNSeWIydGxQWHRoWTNScGRtVkZiR1Z0Wlc1MFEyOXNiM0lvZEdobGJXVXBmVnh1SUNBZ0lDQWdJQ0FnSUhOMGNtOXJaVmRwWkhSb1BWd2lNbHdpWEc0Z0lDQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBOEx6NHNYRzRnSUNBZ0lDQjdJSGRwWkhSb09pQXlOQ0I5TEZ4dUlDQWdJQ2tzWEc0cE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1JHbHpkSEpwWW5WMFpWWmxjblJwWTJGc2JIbEpZMjl1SUQwZ1VtVmhZM1F1YldWdGJ5aGNiaUFnS0hzZ2RHaGxiV1VnZlRvZ2V5QjBhR1Z0WlRvZ1ZHaGxiV1VnZlNrZ1BUNWNiaUFnSUNCamNtVmhkR1ZKWTI5dUtGeHVJQ0FnSUNBZ1BENWNiaUFnSUNBZ0lDQWdQSEJoZEdoY2JpQWdJQ0FnSUNBZ0lDQmtQVndpVFRVZ05Vd3hPU0ExVFRVZ01UbElNVGxjSWx4dUlDQWdJQ0FnSUNBZ0lHWnBiR3c5ZTJsamIyNUdhV3hzUTI5c2IzSW9kR2hsYldVcGZWeHVJQ0FnSUNBZ0lDQWdJSE4wY205clpUMTdhV052YmtacGJHeERiMnh2Y2loMGFHVnRaU2w5WEc0Z0lDQWdJQ0FnSUNBZ2MzUnliMnRsVjJsa2RHZzlYQ0l5WENKY2JpQWdJQ0FnSUNBZ0lDQnpkSEp2YTJWTWFXNWxZMkZ3UFZ3aWNtOTFibVJjSWx4dUlDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ0lDQThjR0YwYUZ4dUlDQWdJQ0FnSUNBZ0lHUTlYQ0pOTVRVZ09VTXhOUzQxTlRRZ09TQXhOaUE1TGpRME5pQXhOaUF4TUZZeE5FTXhOaUF4TkM0MU5UUWdNVFV1TlRVMElERTFJREUxSURFMVNEbERPQzQwTkRZZ01UVWdPQ0F4TkM0MU5UUWdPQ0F4TkZZeE1FTTRJRGt1TkRRMklEZ3VORFEySURrZ09TQTVTREUxV2x3aVhHNGdJQ0FnSUNBZ0lDQWdabWxzYkQxN1lXTjBhWFpsUld4bGJXVnVkRU52Ykc5eUtIUm9aVzFsS1gxY2JpQWdJQ0FnSUNBZ0lDQnpkSEp2YTJVOWUyRmpkR2wyWlVWc1pXMWxiblJEYjJ4dmNpaDBhR1Z0WlNsOVhHNGdJQ0FnSUNBZ0lDQWdjM1J5YjJ0bFYybGtkR2c5WENJeVhDSmNiaUFnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJRHd2UGl4Y2JpQWdJQ0FnSUhzZ2QybGtkR2c2SURJMElIMHNYRzRnSUNBZ0tTeGNiaWs3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JEWlc1MFpYSldaWEowYVdOaGJHeDVTV052YmlBOUlGSmxZV04wTG0xbGJXOG9LSHNnZEdobGJXVWdmVG9nZXlCMGFHVnRaVG9nVkdobGJXVWdmU2tnUFQ1Y2JpQWdZM0psWVhSbFNXTnZiaWhjYmlBZ0lDQThQbHh1SUNBZ0lDQWdQSEJoZEdoY2JpQWdJQ0FnSUNBZ1pEMWNJbTBnTlM0d01EQXdNRFFzTVRZdU9UazVPVGsySUdNZ01Dd3dMalUxTkNBd0xqUTBOaXd4SURFc01TQm9JRE1nWXlBd0xqVTFOQ3d3SURFc0xUQXVORFEySURFc0xURWdkaUF0TVRBZ1l5QXdMQzB3TGpVMU5DQXRNQzQwTkRZc0xURWdMVEVzTFRFZ2FDQXRNeUJqSUMwd0xqVTFOQ3d3SUMweExEQXVORFEySUMweExERWdlaUJ0SURrc0xUSWdZeUF3TERBdU5UVTBJREF1TkRRMkxERWdNU3d4SUdnZ015QmpJREF1TlRVMExEQWdNU3d0TUM0ME5EWWdNU3d0TVNCMklDMDJJR01nTUN3dE1DNDFOVFFnTFRBdU5EUTJMQzB4SUMweExDMHhJR2dnTFRNZ1l5QXRNQzQxTlRRc01DQXRNU3d3TGpRME5pQXRNU3d4SUhwY0lseHVJQ0FnSUNBZ0lDQm1hV3hzUFh0aFkzUnBkbVZGYkdWdFpXNTBRMjlzYjNJb2RHaGxiV1VwZlZ4dUlDQWdJQ0FnSUNCemRISnZhMlU5ZTJGamRHbDJaVVZzWlcxbGJuUkRiMnh2Y2loMGFHVnRaU2w5WEc0Z0lDQWdJQ0FnSUhOMGNtOXJaVmRwWkhSb1BWd2lNbHdpWEc0Z0lDQWdJQ0F2UGx4dUlDQWdJQ0FnUEhCaGRHaGNiaUFnSUNBZ0lDQWdaRDFjSWswZ01pd3hNaUJJSURJeVhDSmNiaUFnSUNBZ0lDQWdabWxzYkQxN2FXTnZia1pwYkd4RGIyeHZjaWgwYUdWdFpTbDlYRzRnSUNBZ0lDQWdJSE4wY205clpUMTdhV052YmtacGJHeERiMnh2Y2loMGFHVnRaU2w5WEc0Z0lDQWdJQ0FnSUhOMGNtOXJaVmRwWkhSb1BWd2lNbHdpWEc0Z0lDQWdJQ0FnSUhOMGNtOXJaVVJoYzJoaGNuSmhlVDFjSWpFc0lESXVPRndpWEc0Z0lDQWdJQ0FnSUhOMGNtOXJaVXhwYm1WallYQTlYQ0p5YjNWdVpGd2lYRzRnSUNBZ0lDQXZQbHh1SUNBZ0lEd3ZQaXhjYmlBZ0lDQjdJSGRwWkhSb09pQXlOQ3dnYldseWNtOXlPaUIwY25WbElIMHNYRzRnSUNrc1hHNHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdRMlZ1ZEdWeVNHOXlhWHB2Ym5SaGJHeDVTV052YmlBOUlGSmxZV04wTG0xbGJXOG9YRzRnSUNoN0lIUm9aVzFsSUgwNklIc2dkR2hsYldVNklGUm9aVzFsSUgwcElEMCtYRzRnSUNBZ1kzSmxZWFJsU1dOdmJpaGNiaUFnSUNBZ0lEdytYRzRnSUNBZ0lDQWdJRHh3WVhSb1hHNGdJQ0FnSUNBZ0lDQWdaRDFjSWswZ055QTFJRU1nTmk0ME5EWWdOU0EySURVdU5EUTJJRFlnTmlCTUlEWWdPU0JESURZZ09TNDFOVFFnTmk0ME5EWWdNVEFnTnlBeE1DQk1JREUzSURFd0lFTWdNVGN1TlRVMElERXdJREU0SURrdU5UVTBJREU0SURrZ1RDQXhPQ0EySUVNZ01UZ2dOUzQwTkRZZ01UY3VOVFUwSURVZ01UY2dOU0JNSURjZ05TQjZJRTBnT1NBeE5DQkRJRGd1TkRRMklERTBJRGdnTVRRdU5EUTJJRGdnTVRVZ1RDQTRJREU0SUVNZ09DQXhPQzQxTlRRZ09DNDBORFlnTVRrZ09TQXhPU0JNSURFMUlERTVJRU1nTVRVdU5UVTBJREU1SURFMklERTRMalUxTkNBeE5pQXhPQ0JNSURFMklERTFJRU1nTVRZZ01UUXVORFEySURFMUxqVTFOQ0F4TkNBeE5TQXhOQ0JNSURrZ01UUWdlaUJjSWx4dUlDQWdJQ0FnSUNBZ0lHWnBiR3c5ZTJGamRHbDJaVVZzWlcxbGJuUkRiMnh2Y2loMGFHVnRaU2w5WEc0Z0lDQWdJQ0FnSUNBZ2MzUnliMnRsUFh0aFkzUnBkbVZGYkdWdFpXNTBRMjlzYjNJb2RHaGxiV1VwZlZ4dUlDQWdJQ0FnSUNBZ0lITjBjbTlyWlZkcFpIUm9QVndpTWx3aVhHNGdJQ0FnSUNBZ0lDOCtYRzRnSUNBZ0lDQWdJRHh3WVhSb1hHNGdJQ0FnSUNBZ0lDQWdaRDFjSWswZ01USXNNaUJXSURJeVhDSmNiaUFnSUNBZ0lDQWdJQ0JtYVd4c1BYdHBZMjl1Um1sc2JFTnZiRzl5S0hSb1pXMWxLWDFjYmlBZ0lDQWdJQ0FnSUNCemRISnZhMlU5ZTJsamIyNUdhV3hzUTI5c2IzSW9kR2hsYldVcGZWeHVJQ0FnSUNBZ0lDQWdJSE4wY205clpWZHBaSFJvUFZ3aU1sd2lYRzRnSUNBZ0lDQWdJQ0FnYzNSeWIydGxSR0Z6YUdGeWNtRjVQVndpTVN3Z01pNDRYQ0pjYmlBZ0lDQWdJQ0FnSUNCemRISnZhMlZNYVc1bFkyRndQVndpY205MWJtUmNJbHh1SUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnUEM4K0xGeHVJQ0FnSUNBZ2V5QjNhV1IwYURvZ01qUWdmU3hjYmlBZ0lDQXBMRnh1S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUhWelpYSnpJRDBnWTNKbFlYUmxTV052YmloY2JpQWdYQ0pOTVRreUlESTFObU0yTVM0NUlEQWdNVEV5TFRVd0xqRWdNVEV5TFRFeE1sTXlOVE11T1NBek1pQXhPVElnTXpJZ09EQWdPREl1TVNBNE1DQXhORFJ6TlRBdU1TQXhNVElnTVRFeUlERXhNbnB0TnpZdU9DQXpNbWd0T0M0ell5MHlNQzQ0SURFd0xUUXpMamtnTVRZdE5qZ3VOU0F4Tm5NdE5EY3VOaTAyTFRZNExqVXRNVFpvTFRndU0wTTFNUzQySURJNE9DQXdJRE16T1M0MklEQWdOREF6TGpKV05ETXlZekFnTWpZdU5TQXlNUzQxSURRNElEUTRJRFE0YURJNE9HTXlOaTQxSURBZ05EZ3RNakV1TlNBME9DMDBPSFl0TWpndU9HTXdMVFl6TGpZdE5URXVOaTB4TVRVdU1pMHhNVFV1TWkweE1UVXVNbnBOTkRnd0lESTFObU0xTXlBd0lEazJMVFF6SURrMkxUazJjeTAwTXkwNU5pMDVOaTA1TmkwNU5pQTBNeTA1TmlBNU5pQTBNeUE1TmlBNU5pQTVObnB0TkRnZ016Sm9MVE11T0dNdE1UTXVPU0EwTGpndE1qZ3VOaUE0TFRRMExqSWdPSE10TXpBdU15MHpMakl0TkRRdU1pMDRTRFF6TW1NdE1qQXVOQ0F3TFRNNUxqSWdOUzQ1TFRVMUxqY2dNVFV1TkNBeU5DNDBJREkyTGpNZ016a3VOeUEyTVM0eUlETTVMamNnT1RrdU9IWXpPQzQwWXpBZ01pNHlMUzQxSURRdU15MHVOaUEyTGpSSU5Ua3lZekkyTGpVZ01DQTBPQzB5TVM0MUlEUTRMVFE0SURBdE5qRXVPUzAxTUM0eExURXhNaTB4TVRJdE1URXllbHdpTEZ4dUlDQjdJSGRwWkhSb09pQTJOREFzSUdobGFXZG9kRG9nTlRFeUxDQnRhWEp5YjNJNklIUnlkV1VnZlN4Y2JpazdYRzVjYmk4dklHNXZkQ0J0YVhKeWIzSmxaQ0JpWldOaGRYTmxJR2wwSjNNZ2FXNXpjR2x5WldRZ1lua2dZU0J3YkdGNVltRmpheUJqYjI1MGNtOXNMQ0IzYUdsamFDQnBjeUJoYkhkaGVYTWdVbFJNWEc1bGVIQnZjblFnWTI5dWMzUWdjM1JoY25RZ1BTQmpjbVZoZEdWSlkyOXVLRnh1SUNCY0lrMHlOVFlnT0VNeE1Ua2dPQ0E0SURFeE9TQTRJREkxTm5NeE1URWdNalE0SURJME9DQXlORGdnTWpRNExURXhNU0F5TkRndE1qUTRVek01TXlBNElESTFOaUE0ZW0weE1UVXVOeUF5TnpKc0xURTNOaUF4TURGakxURTFMamdnT0M0NExUTTFMamN0TWk0MUxUTTFMamN0TWpGV01UVXlZekF0TVRndU5DQXhPUzQ0TFRJNUxqZ2dNelV1TnkweU1Xd3hOellnTVRBM1l6RTJMalFnT1M0eUlERTJMalFnTXpJdU9TQXdJRFF5ZWx3aUxGeHVLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJSE4wYjNBZ1BTQmpjbVZoZEdWSlkyOXVLRnh1SUNCY0lrMHlOVFlnT0VNeE1Ua2dPQ0E0SURFeE9TQTRJREkxTm5NeE1URWdNalE0SURJME9DQXlORGdnTWpRNExURXhNU0F5TkRndE1qUTRVek01TXlBNElESTFOaUE0ZW0wNU5pQXpNamhqTUNBNExqZ3ROeTR5SURFMkxURTJJREUyU0RFM05tTXRPQzQ0SURBdE1UWXROeTR5TFRFMkxURTJWakUzTm1Nd0xUZ3VPQ0EzTGpJdE1UWWdNVFl0TVRab01UWXdZemd1T0NBd0lERTJJRGN1TWlBeE5pQXhObll4TmpCNlhDSXNYRzRwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWTJ4dmMyVWdQU0JqY21WaGRHVkpZMjl1S0Z4dUlDQmNJazB5TkRJdU56SWdNalUyYkRFd01DNHdOeTB4TURBdU1EZGpNVEl1TWpndE1USXVNamdnTVRJdU1qZ3RNekl1TVRrZ01DMDBOQzQwT0d3dE1qSXVNalF0TWpJdU1qUmpMVEV5TGpJNExURXlMakk0TFRNeUxqRTVMVEV5TGpJNExUUTBMalE0SURCTU1UYzJJREU0T1M0eU9DQTNOUzQ1TXlBNE9TNHlNV010TVRJdU1qZ3RNVEl1TWpndE16SXVNVGt0TVRJdU1qZ3RORFF1TkRnZ01FdzVMakl4SURFeE1TNDBOV010TVRJdU1qZ2dNVEl1TWpndE1USXVNamdnTXpJdU1Ua2dNQ0EwTkM0ME9Fd3hNRGt1TWpnZ01qVTJJRGt1TWpFZ016VTJMakEzWXkweE1pNHlPQ0F4TWk0eU9DMHhNaTR5T0NBek1pNHhPU0F3SURRMExqUTRiREl5TGpJMElESXlMakkwWXpFeUxqSTRJREV5TGpJNElETXlMaklnTVRJdU1qZ2dORFF1TkRnZ01Fd3hOellnTXpJeUxqY3liREV3TUM0d055QXhNREF1TURkak1USXVNamdnTVRJdU1qZ2dNekl1TWlBeE1pNHlPQ0EwTkM0ME9DQXdiREl5TGpJMExUSXlMakkwWXpFeUxqSTRMVEV5TGpJNElERXlMakk0TFRNeUxqRTVJREF0TkRRdU5EaE1NalF5TGpjeUlESTFObnBjSWl4Y2JpQWdleUIzYVdSMGFEb2dNelV5TENCb1pXbG5hSFE2SURVeE1pQjlMRnh1S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdKaFkyc2dQU0JqY21WaGRHVkpZMjl1S0Z4dUlDQmNJazB6TkM0MU1pQXlNemt1TUROTU1qSTRMamczSURRMExqWTVZemt1TXpjdE9TNHpOeUF5TkM0MU55MDVMak0zSURNekxqazBJREJzTWpJdU5qY2dNakl1Tmpkak9TNHpOaUE1TGpNMklEa3VNemNnTWpRdU5USXVNRFFnTXpNdU9Vd3hNekV1TkRrZ01qVTJiREUxTkM0d01pQXhOVFF1TnpWak9TNHpOQ0E1TGpNNElEa3VNeklnTWpRdU5UUXRMakEwSURNekxqbHNMVEl5TGpZM0lESXlMalkzWXkwNUxqTTNJRGt1TXpjdE1qUXVOVGNnT1M0ek55MHpNeTQ1TkNBd1RETTBMalV5SURJM01pNDVOMk10T1M0ek55MDVMak0zTFRrdU16Y3RNalF1TlRjZ01DMHpNeTQ1TkhwY0lpeGNiaUFnZXlCM2FXUjBhRG9nTXpJd0xDQm9aV2xuYUhRNklEVXhNaXdnYzNSNWJHVTZJSHNnYldGeVoybHVUR1ZtZERvZ1hDSXRNQzR5Y21WdFhDSWdmU3dnYldseWNtOXlPaUIwY25WbElIMHNYRzRwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWTJ4dmJtVWdQU0JqY21WaGRHVkpZMjl1S0Z4dUlDQmNJazAwTmpRZ01HTXlOaTQxTVNBd0lEUTRJREl4TGpRNUlEUTRJRFE0ZGpJNE9HTXdJREkyTGpVeExUSXhMalE1SURRNExUUTRJRFE0U0RFM05tTXRNall1TlRFZ01DMDBPQzB5TVM0ME9TMDBPQzAwT0ZZME9HTXdMVEkyTGpVeElESXhMalE1TFRRNElEUTRMVFE0YURJNE9FMHhOellnTkRFMll5MDBOQzR4TVRJZ01DMDRNQzB6TlM0NE9EZ3RPREF0T0RCV01USTRTRFE0WXkweU5pNDFNU0F3TFRRNElESXhMalE1TFRRNElEUTRkakk0T0dNd0lESTJMalV4SURJeExqUTVJRFE0SURRNElEUTRhREk0T0dNeU5pNDFNU0F3SURRNExUSXhMalE1SURRNExUUTRkaTAwT0VneE56WjZYQ0lzWEc0Z0lIc2diV2x5Y205eU9pQjBjblZsSUgwc1hHNHBPMXh1WEc0dkx5QnRiMlJwWm1sbFpDQm9kSFJ3Y3pvdkwyWmxZWFJvWlhKcFkyOXVjeTVqYjIwdlAzRjFaWEo1UFhOb2FXVnNaRnh1Wlhod2IzSjBJR052Ym5OMElITm9hV1ZzWkNBOUlHTnlaV0YwWlVsamIyNG9YRzRnSUZ3aVRURXhMalUxTXlBeU1pNDRPVFJoTGprNU9DNDVPVGdnTUNBd01DNDRPVFFnTUhNekxqQXpOeTB4TGpVeE5pQTFMalEyTlMwMExqQTVOME14T1M0Mk1UWWdNVFl1T1RnM0lESXhJREUwTGpZMk15QXlNU0F4TWxZMVlURWdNU0F3SURBd0xTNDJORGt0TGprek5td3RPQzB6WVM0NU9UZ3VPVGs0SURBZ01EQXRMamN3TWlBd2JDMDRJRE5CTVNBeElEQWdNREF6SURWMk4yTXdJREl1TmpZeklERXVNemcwSURRdU9UZzNJRE11TURnNElEWXVOemszSURJdU5ESTRJREl1TlRneElEVXVORFkxSURRdU1EazNJRFV1TkRZMUlEUXVNRGszZW0wdE1TNHpNRE10T0M0ME9ERnNOaTQyTkRRdE5pNDJORFJoTGpnMU5pNDROVFlnTUNBeE1URXVNakV5SURFdU1qRXliQzAzTGpJMUlEY3VNalZoTGpnMU5pNDROVFlnTUNBd01TMHhMakl4TWlBd2JDMHpMamMxTFRNdU56VmhMamcxTmk0NE5UWWdNQ0F4TVRFdU1qRXlMVEV1TWpFeWJETXVNVFEwSURNdU1UUTBlbHdpTEZ4dUlDQjdJSGRwWkhSb09pQXlOQ0I5TEZ4dUtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHWnBiR1VnUFNCamNtVmhkR1ZKWTI5dUtGeHVJQ0JjSWswek5qa3VPU0E1Tnk0NVRESTROaUF4TkVNeU56Y2dOU0F5TmpRdU9DMHVNU0F5TlRJdU1TMHVNVWcwT0VNeU1TNDFJREFnTUNBeU1TNDFJREFnTkRoMk5ERTJZekFnTWpZdU5TQXlNUzQxSURRNElEUTRJRFE0YURJNE9HTXlOaTQxSURBZ05EZ3RNakV1TlNBME9DMDBPRll4TXpFdU9XTXdMVEV5TGpjdE5TNHhMVEkxTFRFMExqRXRNelI2VFRNek1pNHhJREV5T0VneU5UWldOVEV1T1d3M05pNHhJRGMyTGpGNlRUUTRJRFEyTkZZME9HZ3hOakIyTVRBMFl6QWdNVE11TXlBeE1DNDNJREkwSURJMElESTBhREV3TkhZeU9EaElORGg2YlRNeUxUUTRhREl5TkZZeU9EaHNMVEl6TGpVdE1qTXVOV010TkM0M0xUUXVOeTB4TWk0ekxUUXVOeTB4TnlBd1RERTNOaUF6TlRKc0xUTTVMalV0TXprdU5XTXROQzQzTFRRdU55MHhNaTR6TFRRdU55MHhOeUF3VERnd0lETTFNblkyTkhwdE5EZ3RNalF3WXkweU5pNDFJREF0TkRnZ01qRXVOUzAwT0NBME9ITXlNUzQxSURRNElEUTRJRFE0SURRNExUSXhMalVnTkRndE5EZ3RNakV1TlMwME9DMDBPQzAwT0hwY0lpeGNiaUFnZXlCM2FXUjBhRG9nTXpnMExDQm9aV2xuYUhRNklEVXhNaUI5TEZ4dUtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElFZHliM1Z3U1dOdmJpQTlJRkpsWVdOMExtMWxiVzhvS0hzZ2RHaGxiV1VnZlRvZ2V5QjBhR1Z0WlRvZ1ZHaGxiV1VnZlNrZ1BUNWNiaUFnWTNKbFlYUmxTV052YmloY2JpQWdJQ0E4UGx4dUlDQWdJQ0FnUEhCaGRHZ2daRDFjSWsweU5TQXlOa2d4TVRGV01URXhTREkxWENJZ1ptbHNiRDE3YVdOdmJrWnBiR3hEYjJ4dmNpaDBhR1Z0WlNsOUlDOCtYRzRnSUNBZ0lDQThjR0YwYUZ4dUlDQWdJQ0FnSUNCa1BWd2lUVEkxSURFeE1VTXlOU0E0TUM0eU1EWTRJREkxSURRNUxqUXhNelVnTWpVZ01qWk5NalVnTWpaRE5EZ3VOakUzTkNBeU5pQTNNaTR5TXpRNElESTJJREV4TVNBeU5rZ3lOVnBOTWpVZ01qWkROVE11TXpZM01TQXlOaUE0TVM0M016UXpJREkySURFeE1TQXlOa2d5TlZwTk1URXhJREkyUXpFeE1TQTFNaTR6TURNZ01URXhJRGM0TGpZd05pQXhNVEVnTVRFeFZqSTJXazB4TVRFZ01qWkRNVEV4SURVeExqSTVORGNnTVRFeElEYzJMalU0T1RNZ01URXhJREV4TVZZeU5scE5NVEV4SURFeE1VTTROeTR3TnpreUlERXhNU0EyTXk0eE5UZzFJREV4TVNBeU5TQXhNVEZJTVRFeFdrMHhNVEVnTVRFeFF6ZzNMalEyTkRZZ01URXhJRFl6TGpreU9UTWdNVEV4SURJMUlERXhNVWd4TVRGYVRUSTFJREV4TVVNeU5TQTRNUzR4TlRFMElESTFJRFV4TGpNd01qZ2dNalVnTWpaV01URXhXbHdpWEc0Z0lDQWdJQ0FnSUhOMGNtOXJaVDE3YVdOdmJrWnBiR3hEYjJ4dmNpaDBhR1Z0WlNsOVhHNGdJQ0FnSUNBZ0lITjBjbTlyWlZkcFpIUm9QVndpTWx3aVhHNGdJQ0FnSUNBdlBseHVJQ0FnSUNBZ1BIQmhkR2dnWkQxY0lrMHhNREFnTVRBd1NERTJNRll4TmpCSU1UQXdYQ0lnWm1sc2JEMTdhV052YmtacGJHeERiMnh2Y2loMGFHVnRaU2w5SUM4K1hHNGdJQ0FnSUNBOGNHRjBhRnh1SUNBZ0lDQWdJQ0JrUFZ3aVRURXdNQ0F4TmpCRE1UQXdJREUwTkM0eE1EWWdNVEF3SURFeU9DNHlNVEVnTVRBd0lERXdNRTB4TURBZ01UQXdRekV4Tnk0M01EWWdNVEF3SURFek5TNDBNVElnTVRBd0lERTJNQ0F4TURCSU1UQXdXazB4TURBZ01UQXdRekV4TkM0eU1UUWdNVEF3SURFeU9DNDBNamdnTVRBd0lERTJNQ0F4TURCSU1UQXdXazB4TmpBZ01UQXdRekUyTUNBeE1qQXVNVGcwSURFMk1DQXhOREF1TXpZNUlERTJNQ0F4TmpCV01UQXdXazB4TmpBZ01UQXdRekUyTUNBeE1UTXVNakU1SURFMk1DQXhNall1TkRNM0lERTJNQ0F4TmpCV01UQXdXazB4TmpBZ01UWXdRekUwTlM0MU16UWdNVFl3SURFek1TNHdOamdnTVRZd0lERXdNQ0F4TmpCSU1UWXdXazB4TmpBZ01UWXdRekUwTXk0ME5qY2dNVFl3SURFeU5pNDVNelFnTVRZd0lERXdNQ0F4TmpCSU1UWXdXazB4TURBZ01UWXdRekV3TUNBeE5ETXVOall4SURFd01DQXhNamN1TXpJeElERXdNQ0F4TURCV01UWXdXbHdpWEc0Z0lDQWdJQ0FnSUhOMGNtOXJaVDE3YVdOdmJrWnBiR3hEYjJ4dmNpaDBhR1Z0WlNsOVhHNGdJQ0FnSUNBZ0lITjBjbTlyWlZkcFpIUm9QVndpTWx3aVhHNGdJQ0FnSUNBdlBseHVJQ0FnSUNBZ1BHZGNiaUFnSUNBZ0lDQWdabWxzYkQxN2FHRnVaR3hsY2tOdmJHOXlLSFJvWlcxbEtYMWNiaUFnSUNBZ0lDQWdjM1J5YjJ0bFBYdHBZMjl1Um1sc2JFTnZiRzl5S0hSb1pXMWxLWDFjYmlBZ0lDQWdJQ0FnYzNSeWIydGxWMmxrZEdnOVhDSTJYQ0pjYmlBZ0lDQWdJRDVjYmlBZ0lDQWdJQ0FnUEhKbFkzUWdlRDFjSWpJdU5Wd2lJSGs5WENJeUxqVmNJaUIzYVdSMGFEMWNJak13WENJZ2FHVnBaMmgwUFZ3aU16QmNJaUF2UGx4dUlDQWdJQ0FnSUNBOGNtVmpkQ0I0UFZ3aU1pNDFYQ0lnZVQxY0lqRTBPUzQxWENJZ2QybGtkR2c5WENJek1Gd2lJR2hsYVdkb2REMWNJak13WENJZ0x6NWNiaUFnSUNBZ0lDQWdQSEpsWTNRZ2VEMWNJakUwTnk0MVhDSWdlVDFjSWpFME9TNDFYQ0lnZDJsa2RHZzlYQ0l6TUZ3aUlHaGxhV2RvZEQxY0lqTXdYQ0lnTHo1Y2JpQWdJQ0FnSUNBZ1BISmxZM1FnZUQxY0lqRTBOeTQxWENJZ2VUMWNJakl1TlZ3aUlIZHBaSFJvUFZ3aU16QmNJaUJvWldsbmFIUTlYQ0l6TUZ3aUlDOCtYRzRnSUNBZ0lDQThMMmMrWEc0Z0lDQWdQQzgrTEZ4dUlDQWdJSHNnZDJsa2RHZzZJREU0TWl3Z2FHVnBaMmgwT2lBeE9ESXNJRzFwY25KdmNqb2dkSEoxWlNCOUxGeHVJQ0FwTEZ4dUtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElGVnVaM0p2ZFhCSlkyOXVJRDBnVW1WaFkzUXViV1Z0Ynlnb2V5QjBhR1Z0WlNCOU9pQjdJSFJvWlcxbE9pQlVhR1Z0WlNCOUtTQTlQbHh1SUNCamNtVmhkR1ZKWTI5dUtGeHVJQ0FnSUR3K1hHNGdJQ0FnSUNBOGNHRjBhQ0JrUFZ3aVRUSTFJREkyU0RFeE1WWXhNVEZJTWpWY0lpQm1hV3hzUFh0cFkyOXVSbWxzYkVOdmJHOXlLSFJvWlcxbEtYMGdMejVjYmlBZ0lDQWdJRHh3WVhSb1hHNGdJQ0FnSUNBZ0lHUTlYQ0pOTWpVZ01URXhRekkxSURnd0xqSXdOamdnTWpVZ05Ea3VOREV6TlNBeU5TQXlOazB5TlNBeU5rTTBPQzQyTVRjMElESTJJRGN5TGpJek5EZ2dNallnTVRFeElESTJTREkxV2sweU5TQXlOa00xTXk0ek5qY3hJREkySURneExqY3pORE1nTWpZZ01URXhJREkyU0RJMVdrMHhNVEVnTWpaRE1URXhJRFV5TGpNd015QXhNVEVnTnpndU5qQTJJREV4TVNBeE1URldNalphVFRFeE1TQXlOa014TVRFZ05URXVNamswTnlBeE1URWdOell1TlRnNU15QXhNVEVnTVRFeFZqSTJXazB4TVRFZ01URXhRemczTGpBM09USWdNVEV4SURZekxqRTFPRFVnTVRFeElESTFJREV4TVVneE1URmFUVEV4TVNBeE1URkRPRGN1TkRZME5pQXhNVEVnTmpNdU9USTVNeUF4TVRFZ01qVWdNVEV4U0RFeE1WcE5NalVnTVRFeFF6STFJRGd4TGpFMU1UUWdNalVnTlRFdU16QXlPQ0F5TlNBeU5sWXhNVEZhWENKY2JpQWdJQ0FnSUNBZ2MzUnliMnRsUFh0cFkyOXVSbWxzYkVOdmJHOXlLSFJvWlcxbEtYMWNiaUFnSUNBZ0lDQWdjM1J5YjJ0bFYybGtkR2c5WENJeVhDSmNiaUFnSUNBZ0lDOCtYRzRnSUNBZ0lDQThjR0YwYUNCa1BWd2lUVEV3TUNBeE1EQklNVFl3VmpFMk1FZ3hNREJjSWlCbWFXeHNQWHRwWTI5dVJtbHNiRU52Ykc5eUtIUm9aVzFsS1gwZ0x6NWNiaUFnSUNBZ0lEeHdZWFJvWEc0Z0lDQWdJQ0FnSUdROVhDSk5NVEF3SURFMk1FTXhNREFnTVRRMExqRXdOaUF4TURBZ01USTRMakl4TVNBeE1EQWdNVEF3VFRFd01DQXhNREJETVRFM0xqY3dOaUF4TURBZ01UTTFMalF4TWlBeE1EQWdNVFl3SURFd01FZ3hNREJhVFRFd01DQXhNREJETVRFMExqSXhOQ0F4TURBZ01USTRMalF5T0NBeE1EQWdNVFl3SURFd01FZ3hNREJhVFRFMk1DQXhNREJETVRZd0lERXlNQzR4T0RRZ01UWXdJREUwTUM0ek5qa2dNVFl3SURFMk1GWXhNREJhVFRFMk1DQXhNREJETVRZd0lERXhNeTR5TVRrZ01UWXdJREV5Tmk0ME16Y2dNVFl3SURFMk1GWXhNREJhVFRFMk1DQXhOakJETVRRMUxqVXpOQ0F4TmpBZ01UTXhMakEyT0NBeE5qQWdNVEF3SURFMk1FZ3hOakJhVFRFMk1DQXhOakJETVRRekxqUTJOeUF4TmpBZ01USTJMamt6TkNBeE5qQWdNVEF3SURFMk1FZ3hOakJhVFRFd01DQXhOakJETVRBd0lERTBNeTQyTmpFZ01UQXdJREV5Tnk0ek1qRWdNVEF3SURFd01GWXhOakJhWENKY2JpQWdJQ0FnSUNBZ2MzUnliMnRsUFh0cFkyOXVSbWxzYkVOdmJHOXlLSFJvWlcxbEtYMWNiaUFnSUNBZ0lDQWdjM1J5YjJ0bFYybGtkR2c5WENJeVhDSmNiaUFnSUNBZ0lDOCtYRzRnSUNBZ0lDQThaMXh1SUNBZ0lDQWdJQ0JtYVd4c1BYdG9ZVzVrYkdWeVEyOXNiM0lvZEdobGJXVXBmVnh1SUNBZ0lDQWdJQ0J6ZEhKdmEyVTllMmxqYjI1R2FXeHNRMjlzYjNJb2RHaGxiV1VwZlZ4dUlDQWdJQ0FnSUNCemRISnZhMlZYYVdSMGFEMWNJalpjSWx4dUlDQWdJQ0FnUGx4dUlDQWdJQ0FnSUNBOGNtVmpkQ0I0UFZ3aU1pNDFYQ0lnZVQxY0lqSXVOVndpSUhkcFpIUm9QVndpTXpCY0lpQm9aV2xuYUhROVhDSXpNRndpSUM4K1hHNGdJQ0FnSUNBZ0lEeHlaV04wSUhnOVhDSTNPQzQxWENJZ2VUMWNJakUwT1M0MVhDSWdkMmxrZEdnOVhDSXpNRndpSUdobGFXZG9kRDFjSWpNd1hDSWdMejVjYmlBZ0lDQWdJQ0FnUEhKbFkzUWdlRDFjSWpFME55NDFYQ0lnZVQxY0lqRTBPUzQxWENJZ2QybGtkR2c5WENJek1Gd2lJR2hsYVdkb2REMWNJak13WENJZ0x6NWNiaUFnSUNBZ0lDQWdQSEpsWTNRZ2VEMWNJakUwTnk0MVhDSWdlVDFjSWpjNExqVmNJaUIzYVdSMGFEMWNJak13WENJZ2FHVnBaMmgwUFZ3aU16QmNJaUF2UGx4dUlDQWdJQ0FnSUNBOGNtVmpkQ0I0UFZ3aU1UQTFMalZjSWlCNVBWd2lNaTQxWENJZ2QybGtkR2c5WENJek1Gd2lJR2hsYVdkb2REMWNJak13WENJZ0x6NWNiaUFnSUNBZ0lDQWdQSEpsWTNRZ2VEMWNJakl1TlZ3aUlIazlYQ0l4TURJdU5Wd2lJSGRwWkhSb1BWd2lNekJjSWlCb1pXbG5hSFE5WENJek1Gd2lJQzgrWEc0Z0lDQWdJQ0E4TDJjK1hHNGdJQ0FnUEM4K0xGeHVJQ0FnSUhzZ2QybGtkR2c2SURFNE1pd2dhR1ZwWjJoME9pQXhPRElzSUcxcGNuSnZjam9nZEhKMVpTQjlMRnh1SUNBcExGeHVLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRVpwYkd4SVlXTm9kWEpsU1dOdmJpQTlJRkpsWVdOMExtMWxiVzhvS0hzZ2RHaGxiV1VnZlRvZ2V5QjBhR1Z0WlRvZ1ZHaGxiV1VnZlNrZ1BUNWNiaUFnWTNKbFlYUmxTV052YmloY2JpQWdJQ0E4Y0dGMGFGeHVJQ0FnSUNBZ1ptbHNiRkoxYkdVOVhDSmxkbVZ1YjJSa1hDSmNiaUFnSUNBZ0lHTnNhWEJTZFd4bFBWd2laWFpsYm05a1pGd2lYRzRnSUNBZ0lDQmtQVndpVFRJd0xqRXdNU0F4TmtneU9DNHdPVE0wVERNMklEZ3VPVFU1T0RsV05FZ3pNeTQxTnpjNVRESXdMakV3TVNBeE5scE5NekF1TlRjd05DQTBUREUzTGpBNU16VWdNVFpJT1M0eE1ERXdNVXd5TWk0MU56YzVJRFJJTXpBdU5UY3dORnBOTVRrdU5UY3dOQ0EwVERZdU1Ea3pORGtnTVRaSU5GWXhNQzQzTkRjMVRERXhMalUzTnprZ05FZ3hPUzQxTnpBMFdrMDRMalUzTURNMklEUklORlk0TGpBMk9UVXlURGd1TlRjd016WWdORnBOTXpZZ01URXVOak0zT0V3ek1TNHhNREVnTVRaSU16WldNVEV1TmpNM09GcE5NaUF5VmpFNFNETTRWakpJTWxwY0lseHVJQ0FnSUNBZ1ptbHNiRDE3YVdOdmJrWnBiR3hEYjJ4dmNpaDBhR1Z0WlNsOVhHNGdJQ0FnTHo0c1hHNGdJQ0FnZXlCM2FXUjBhRG9nTkRBc0lHaGxhV2RvZERvZ01qQWdmU3hjYmlBZ0tTeGNiaWs3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JHYVd4c1EzSnZjM05JWVhSamFFbGpiMjRnUFNCU1pXRmpkQzV0WlcxdktDaDdJSFJvWlcxbElIMDZJSHNnZEdobGJXVTZJRlJvWlcxbElIMHBJRDArWEc0Z0lHTnlaV0YwWlVsamIyNG9YRzRnSUNBZ1BHY2dabWxzYkQxN2FXTnZia1pwYkd4RGIyeHZjaWgwYUdWdFpTbDlJR1pwYkd4U2RXeGxQVndpWlhabGJtOWtaRndpSUdOc2FYQlNkV3hsUFZ3aVpYWmxibTlrWkZ3aVBseHVJQ0FnSUNBZ1BIQmhkR2dnWkQxY0lrMHlNQzR4TURFZ01UWklNamd1TURrek5Fd3pOaUE0TGprMU9UZzVWalJJTXpNdU5UYzNPVXd5TUM0eE1ERWdNVFphVFRNd0xqVTNNRFFnTkV3eE55NHdPVE0xSURFMlNEa3VNVEF4TURGTU1qSXVOVGMzT1NBMFNETXdMalUzTURSYVRURTVMalUzTURRZ05FdzJMakE1TXpRNUlERTJTRFJXTVRBdU56UTNOVXd4TVM0MU56YzVJRFJJTVRrdU5UY3dORnBOT0M0MU56QXpOaUEwU0RSV09DNHdOamsxTWt3NExqVTNNRE0ySURSYVRUTTJJREV4TGpZek56aE1NekV1TVRBeElERTJTRE0yVmpFeExqWXpOemhhVFRJZ01sWXhPRWd6T0ZZeVNESmFYQ0lnTHo1Y2JpQWdJQ0FnSUR4d1lYUm9JR1E5WENKTk1UUXVNREF3TVNBeE9Fd3pMakF3TURBMklEUXVNREF3TURKTU5DNDFOekkzSURJdU56WTBNemhNTVRVdU5UY3lOeUF4Tmk0M05qUTBUREUwTGpBd01ERWdNVGhhVFRJMUxqQXdNREVnTVRoTU1UUXVNREF3TVNBMExqQXdNREF5VERFMUxqVTNNamNnTWk0M05qUXpPRXd5Tmk0MU56STNJREUyTGpjMk5EUk1NalV1TURBd01TQXhPRnBOTXpZdU1EQXdNU0F4T0V3eU5TNHdNREF4SURRdU1EQXdNREpNTWpZdU5UY3lOeUF5TGpjMk5ETTRURE0zTGpVM01qY2dNVFl1TnpZME5Fd3pOaTR3TURBeElERTRXbHdpSUM4K1hHNGdJQ0FnUEM5blBpeGNiaUFnSUNCN0lIZHBaSFJvT2lBME1Dd2dhR1ZwWjJoME9pQXlNQ0I5TEZ4dUlDQXBMRnh1S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUVacGJHeFRiMnhwWkVsamIyNGdQU0JTWldGamRDNXRaVzF2S0NoN0lIUm9aVzFsSUgwNklIc2dkR2hsYldVNklGUm9aVzFsSUgwcElEMCtYRzRnSUdOeVpXRjBaVWxqYjI0b1BIQmhkR2dnWkQxY0lrMHlJREpJTXpoV01UaElNbFl5V2x3aUlHWnBiR3c5ZTJsamIyNUdhV3hzUTI5c2IzSW9kR2hsYldVcGZTQXZQaXdnZTF4dUlDQWdJSGRwWkhSb09pQTBNQ3hjYmlBZ0lDQm9aV2xuYUhRNklESXdMRnh1SUNCOUtTeGNiaWs3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JUZEhKdmEyVlhhV1IwYUVsamIyNGdQU0JTWldGamRDNXRaVzF2S0Z4dUlDQW9leUIwYUdWdFpTd2djM1J5YjJ0bFYybGtkR2dnZlRvZ2V5QjBhR1Z0WlRvZ1ZHaGxiV1U3SUhOMGNtOXJaVmRwWkhSb09pQnVkVzFpWlhJZ2ZTa2dQVDVjYmlBZ0lDQmpjbVZoZEdWSlkyOXVLRnh1SUNBZ0lDQWdQSEJoZEdoY2JpQWdJQ0FnSUNBZ1pEMWNJazAySURFd1NETXlYQ0pjYmlBZ0lDQWdJQ0FnYzNSeWIydGxQWHRwWTI5dVJtbHNiRU52Ykc5eUtIUm9aVzFsS1gxY2JpQWdJQ0FnSUNBZ2MzUnliMnRsVjJsa2RHZzllM04wY205clpWZHBaSFJvZlZ4dUlDQWdJQ0FnSUNCemRISnZhMlZNYVc1bFkyRndQVndpY205MWJtUmNJbHh1SUNBZ0lDQWdJQ0JtYVd4c1BWd2libTl1WlZ3aVhHNGdJQ0FnSUNBdlBpeGNiaUFnSUNBZ0lIc2dkMmxrZEdnNklEUXdMQ0JvWldsbmFIUTZJREl3SUgwc1hHNGdJQ0FnS1N4Y2JpazdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQlRkSEp2YTJWVGRIbHNaVk52Ykdsa1NXTnZiaUE5SUZKbFlXTjBMbTFsYlc4b0tIc2dkR2hsYldVZ2ZUb2dleUIwYUdWdFpUb2dWR2hsYldVZ2ZTa2dQVDVjYmlBZ1kzSmxZWFJsU1dOdmJpaGNiaUFnSUNBOGNHRjBhRnh1SUNBZ0lDQWdaRDFjSWswMklERXdTRE0wWENKY2JpQWdJQ0FnSUhOMGNtOXJaVDE3YVdOdmJrWnBiR3hEYjJ4dmNpaDBhR1Z0WlNsOVhHNGdJQ0FnSUNCemRISnZhMlZYYVdSMGFEMTdNbjFjYmlBZ0lDQWdJR1pwYkd3OVhDSnViMjVsWENKY2JpQWdJQ0FnSUhOMGNtOXJaVXhwYm1WallYQTlYQ0p5YjNWdVpGd2lYRzRnSUNBZ0x6NHNYRzRnSUNBZ2UxeHVJQ0FnSUNBZ2QybGtkR2c2SURRd0xGeHVJQ0FnSUNBZ2FHVnBaMmgwT2lBeU1DeGNiaUFnSUNCOUxGeHVJQ0FwTEZ4dUtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElGTjBjbTlyWlZOMGVXeGxSR0Z6YUdWa1NXTnZiaUE5SUZKbFlXTjBMbTFsYlc4b0tIc2dkR2hsYldVZ2ZUb2dleUIwYUdWdFpUb2dWR2hsYldVZ2ZTa2dQVDVjYmlBZ1kzSmxZWFJsU1dOdmJpaGNiaUFnSUNBOGNHRjBhRnh1SUNBZ0lDQWdaRDFjSWswMklERXdTRE0wWENKY2JpQWdJQ0FnSUhOMGNtOXJaVDE3YVdOdmJrWnBiR3hEYjJ4dmNpaDBhR1Z0WlNsOVhHNGdJQ0FnSUNCemRISnZhMlZYYVdSMGFEMTdNaTQxZlZ4dUlDQWdJQ0FnYzNSeWIydGxSR0Z6YUdGeWNtRjVQWHRjSWpFd0xDQTRYQ0o5WEc0Z0lDQWdJQ0JtYVd4c1BWd2libTl1WlZ3aVhHNGdJQ0FnSUNCemRISnZhMlZNYVc1bFkyRndQVndpY205MWJtUmNJbHh1SUNBZ0lDOCtMRnh1SUNBZ0lIc2dkMmxrZEdnNklEUXdMQ0JvWldsbmFIUTZJREl3SUgwc1hHNGdJQ2tzWEc0cE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1UzUnliMnRsVTNSNWJHVkViM1IwWldSSlkyOXVJRDBnVW1WaFkzUXViV1Z0Ynlnb2V5QjBhR1Z0WlNCOU9pQjdJSFJvWlcxbE9pQlVhR1Z0WlNCOUtTQTlQbHh1SUNCamNtVmhkR1ZKWTI5dUtGeHVJQ0FnSUR4d1lYUm9YRzRnSUNBZ0lDQmtQVndpVFRZZ01UQklNelpjSWx4dUlDQWdJQ0FnYzNSeWIydGxQWHRwWTI5dVJtbHNiRU52Ykc5eUtIUm9aVzFsS1gxY2JpQWdJQ0FnSUhOMGNtOXJaVmRwWkhSb1BYc3lMalY5WEc0Z0lDQWdJQ0J6ZEhKdmEyVkVZWE5vWVhKeVlYazllMXdpTWl3Z05DNDFYQ0o5WEc0Z0lDQWdJQ0JtYVd4c1BWd2libTl1WlZ3aVhHNGdJQ0FnSUNCemRISnZhMlZNYVc1bFkyRndQVndpY205MWJtUmNJbHh1SUNBZ0lDOCtMRnh1SUNBZ0lIc2dkMmxrZEdnNklEUXdMQ0JvWldsbmFIUTZJREl3SUgwc1hHNGdJQ2tzWEc0cE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1UyeHZjSEJwYm1WemMwRnlZMmhwZEdWamRFbGpiMjRnUFNCU1pXRmpkQzV0WlcxdktGeHVJQ0FvZXlCMGFHVnRaU0I5T2lCN0lIUm9aVzFsT2lCVWFHVnRaU0I5S1NBOVBseHVJQ0FnSUdOeVpXRjBaVWxqYjI0b1hHNGdJQ0FnSUNBOGNHRjBhRnh1SUNBZ0lDQWdJQ0JrUFZ3aVRUTXVNREF3T1RnZ01UWXVNVFk1TVVNMkxqSTROemMwSURFekxqazNORFFnTVRrdU5qTTVPU0F5TGpnNU1EVWdNakl1TnpJeE5TQXpMakF3TURneVF6STFMamd3TkRFZ015NHhNVEV4TXlBeE9TNHhNVFU0SURFMUxqVTBPRGdnTWpFdU5EazJNaUF4Tmk0NE16QTVRekl6TGpnM05UY2dNVGd1TVRFek1TQXpOQzQwTVRVMUlERXhMamN4TkRnZ016Y3VNREF3TVNBeE1DNDJPVEU1WENKY2JpQWdJQ0FnSUNBZ2MzUnliMnRsUFh0cFkyOXVSbWxzYkVOdmJHOXlLSFJvWlcxbEtYMWNiaUFnSUNBZ0lDQWdjM1J5YjJ0bFYybGtkR2c5ZXpKOVhHNGdJQ0FnSUNBZ0lITjBjbTlyWlV4cGJtVmpZWEE5WENKeWIzVnVaRndpWEc0Z0lDQWdJQ0FnSUdacGJHdzlYQ0p1YjI1bFhDSmNiaUFnSUNBZ0lDOCtMRnh1SUNBZ0lDQWdleUIzYVdSMGFEb2dOREFzSUdobGFXZG9kRG9nTWpBc0lHMXBjbkp2Y2pvZ2RISjFaU0I5TEZ4dUlDQWdJQ2tzWEc0cE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1UyeHZjSEJwYm1WemMwRnlkR2x6ZEVsamIyNGdQU0JTWldGamRDNXRaVzF2S0NoN0lIUm9aVzFsSUgwNklIc2dkR2hsYldVNklGUm9aVzFsSUgwcElEMCtYRzRnSUdOeVpXRjBaVWxqYjI0b1hHNGdJQ0FnUEhCaGRHaGNiaUFnSUNBZ0lHUTlYQ0pOTXlBeE4wTTJMalk0TVRVNElERTBMamczTlRJZ01UWXVNVEk1TmlBNUxqQTVPRFE1SURJeUxqQTJORGdnTmk0MU5Ea3lNa015T0NBekxqazVPVGsxSURJeUxqSTRPVFlnTVRNdU16SXdPU0F5TlNBeE5FTXlOeTQzTVRBMElERTBMalkzT1RFZ016WXVNemMxTnlBNUxqWTBOekVnTXpZdU16YzFOeUE1TGpZME56Rk5OaTQwTURjd05pQXhOVU14TXlBeE1TNHhPVEU0SURJd0xqQTBOamdnTVM0MU1UQTBOU0F5TXk0d01qTTBJRE11TURBMU1rTXlOaUEwTGpRNU9UazFJREl3TGpRMU55QXhNaTQ0TmpVNUlESXlMamN5T0RVZ01UWXVORE15T1VNeU5TQXlNQ0F6Tmk0ek56VTNJREV6SURNMkxqTTNOVGNnTVROY0lseHVJQ0FnSUNBZ2MzUnliMnRsUFh0cFkyOXVSbWxzYkVOdmJHOXlLSFJvWlcxbEtYMWNiaUFnSUNBZ0lITjBjbTlyWlZkcFpIUm9QWHN5ZlZ4dUlDQWdJQ0FnYzNSeWIydGxUR2x1WldOaGNEMWNJbkp2ZFc1a1hDSmNiaUFnSUNBZ0lHWnBiR3c5WENKdWIyNWxYQ0pjYmlBZ0lDQXZQaXhjYmlBZ0lDQjdJSGRwWkhSb09pQTBNQ3dnYUdWcFoyaDBPaUF5TUN3Z2JXbHljbTl5T2lCMGNuVmxJSDBzWEc0Z0lDa3NYRzRwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnVTJ4dmNIQnBibVZ6YzBOaGNuUnZiMjVwYzNSSlkyOXVJRDBnVW1WaFkzUXViV1Z0YnloY2JpQWdLSHNnZEdobGJXVWdmVG9nZXlCMGFHVnRaVG9nVkdobGJXVWdmU2tnUFQ1Y2JpQWdJQ0JqY21WaGRHVkpZMjl1S0Z4dUlDQWdJQ0FnUEhCaGRHaGNiaUFnSUNBZ0lDQWdaRDFjSWsweklERTFMalkwTmpoRE5pNDVNelk1TWlBeE15NDFNemM0SURJeUxqVTFORFFnTWk0NE1UVXlPQ0F5Tmk0Mk1qQTJJRE11TURBeU5ESkRNekF1TmpnM055QXpMakU0T1RVMklESTFMalkzTURnZ01UVXVNek0wTmlBeU55NDBNREE1SURFMkxqYzNNRFZETWprdU1UTXdPU0F4T0M0eU1EVTFJRE0xTGpRd01ERWdNVEl1TkRjMk1pQXpOeUF4TVM0Mk1UYzNUVE11T1RjeE5ETWdNVEF1TkRreE4wTTJMall4TVRVNElEa3VNalExTmpNZ01UWXVNemN3TmlBeUxqWXhPRGcySURFNUxqZ3hNRFFnTXk0d01UY3lORU15TXk0eU5USXlJRE11TkRFME56SWdNakl1TURjM015QXhNaTR5TURFeklESTBMall4T0RFZ01USXVPRGM0TTBNeU55NHhOVGs0SURFekxqVTFNellnTXpNdU16RTNPU0E0TGpBME1EWTRJRE0xTGpBMU56RWdOeTR3TnpJME5Gd2lYRzRnSUNBZ0lDQWdJSE4wY205clpUMTdhV052YmtacGJHeERiMnh2Y2loMGFHVnRaU2w5WEc0Z0lDQWdJQ0FnSUhOMGNtOXJaVmRwWkhSb1BYc3lmVnh1SUNBZ0lDQWdJQ0J6ZEhKdmEyVk1hVzVsWTJGd1BWd2ljbTkxYm1SY0lseHVJQ0FnSUNBZ0lDQm1hV3hzUFZ3aWJtOXVaVndpWEc0Z0lDQWdJQ0F2UGl4Y2JpQWdJQ0FnSUhzZ2QybGtkR2c2SURRd0xDQm9aV2xuYUhRNklESXdMQ0J0YVhKeWIzSTZJSFJ5ZFdVZ2ZTeGNiaUFnSUNBcExGeHVLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRVZrWjJWVGFHRnljRWxqYjI0Z1BTQlNaV0ZqZEM1dFpXMXZLQ2g3SUhSb1pXMWxJSDA2SUhzZ2RHaGxiV1U2SUZSb1pXMWxJSDBwSUQwK1hHNGdJR055WldGMFpVbGpiMjRvWEc0Z0lDQWdQSEJoZEdoY2JpQWdJQ0FnSUdROVhDSk5NVEFnTVRkTU1UQWdOVXd6TlNBMVhDSmNiaUFnSUNBZ0lITjBjbTlyWlQxN2FXTnZia1pwYkd4RGIyeHZjaWgwYUdWdFpTbDlYRzRnSUNBZ0lDQnpkSEp2YTJWWGFXUjBhRDE3TW4xY2JpQWdJQ0FnSUhOMGNtOXJaVXhwYm1WallYQTlYQ0p5YjNWdVpGd2lYRzRnSUNBZ0lDQm1hV3hzUFZ3aWJtOXVaVndpWEc0Z0lDQWdMejRzWEc0Z0lDQWdleUIzYVdSMGFEb2dOREFzSUdobGFXZG9kRG9nTWpBc0lHMXBjbkp2Y2pvZ2RISjFaU0I5TEZ4dUlDQXBMRnh1S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUVWa1oyVlNiM1Z1WkVsamIyNGdQU0JTWldGamRDNXRaVzF2S0NoN0lIUm9aVzFsSUgwNklIc2dkR2hsYldVNklGUm9aVzFsSUgwcElEMCtYRzRnSUdOeVpXRjBaVWxqYjI0b1hHNGdJQ0FnUEhCaGRHaGNiaUFnSUNBZ0lHUTlYQ0pOTVRBZ01UZFdNVFZETVRBZ09DQXhNeUExSURJeElEVk1Nek11TlNBMVhDSmNiaUFnSUNBZ0lITjBjbTlyWlQxN2FXTnZia1pwYkd4RGIyeHZjaWgwYUdWdFpTbDlYRzRnSUNBZ0lDQnpkSEp2YTJWWGFXUjBhRDE3TW4xY2JpQWdJQ0FnSUhOMGNtOXJaVXhwYm1WallYQTlYQ0p5YjNWdVpGd2lYRzRnSUNBZ0lDQm1hV3hzUFZ3aWJtOXVaVndpWEc0Z0lDQWdMejRzWEc0Z0lDQWdleUIzYVdSMGFEb2dOREFzSUdobGFXZG9kRG9nTWpBc0lHMXBjbkp2Y2pvZ2RISjFaU0I5TEZ4dUlDQXBMRnh1S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUVGeWNtOTNhR1ZoWkU1dmJtVkpZMjl1SUQwZ1VtVmhZM1F1YldWdGJ5Z29leUIwYUdWdFpTQjlPaUI3SUhSb1pXMWxPaUJVYUdWdFpTQjlLU0E5UGx4dUlDQmpjbVZoZEdWSlkyOXVLRnh1SUNBZ0lEeHdZWFJvWEc0Z0lDQWdJQ0JrUFZ3aVRUWWdNVEJJTXpSY0lseHVJQ0FnSUNBZ2MzUnliMnRsUFh0cFkyOXVSbWxzYkVOdmJHOXlLSFJvWlcxbEtYMWNiaUFnSUNBZ0lITjBjbTlyWlZkcFpIUm9QWHN5ZlZ4dUlDQWdJQ0FnWm1sc2JEMWNJbTV2Ym1WY0lseHVJQ0FnSUM4K0xGeHVJQ0FnSUh0Y2JpQWdJQ0FnSUhkcFpIUm9PaUEwTUN4Y2JpQWdJQ0FnSUdobGFXZG9kRG9nTWpBc1hHNGdJQ0FnZlN4Y2JpQWdLU3hjYmlrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCQmNuSnZkMmhsWVdSQmNuSnZkMGxqYjI0Z1BTQlNaV0ZqZEM1dFpXMXZLRnh1SUNBb2V5QjBhR1Z0WlN3Z1pteHBjQ0E5SUdaaGJITmxJSDA2SUhzZ2RHaGxiV1U2SUZSb1pXMWxPeUJtYkdsd1B6b2dZbTl2YkdWaGJpQjlLU0E5UGx4dUlDQWdJR055WldGMFpVbGpiMjRvWEc0Z0lDQWdJQ0E4WjF4dUlDQWdJQ0FnSUNCMGNtRnVjMlp2Y20wOWUyWnNhWEFnUHlCY0luUnlZVzV6YkdGMFpTZzBNQ3dnTUNrZ2MyTmhiR1VvTFRFc0lERXBYQ0lnT2lCY0lsd2lmVnh1SUNBZ0lDQWdJQ0J6ZEhKdmEyVTllMmxqYjI1R2FXeHNRMjlzYjNJb2RHaGxiV1VwZlZ4dUlDQWdJQ0FnSUNCemRISnZhMlZYYVdSMGFEMTdNbjFjYmlBZ0lDQWdJQ0FnWm1sc2JEMWNJbTV2Ym1WY0lseHVJQ0FnSUNBZ1BseHVJQ0FnSUNBZ0lDQThjR0YwYUNCa1BWd2lUVE0wSURFd1NEWk5NelFnTVRCTU1qY2dOVTB6TkNBeE1Fd3lOeUF4TlZ3aUlDOCtYRzRnSUNBZ0lDQWdJRHh3WVhSb0lHUTlYQ0pOTWpjdU5TQTFURE0wTGpVZ01UQk1NamN1TlNBeE5Wd2lJQzgrWEc0Z0lDQWdJQ0E4TDJjK0xGeHVJQ0FnSUNBZ2V5QjNhV1IwYURvZ05EQXNJR2hsYVdkb2REb2dNakFnZlN4Y2JpQWdJQ0FwTEZ4dUtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElFRnljbTkzYUdWaFpFUnZkRWxqYjI0Z1BTQlNaV0ZqZEM1dFpXMXZLRnh1SUNBb2V5QjBhR1Z0WlN3Z1pteHBjQ0E5SUdaaGJITmxJSDA2SUhzZ2RHaGxiV1U2SUZSb1pXMWxPeUJtYkdsd1B6b2dZbTl2YkdWaGJpQjlLU0E5UGx4dUlDQWdJR055WldGMFpVbGpiMjRvWEc0Z0lDQWdJQ0E4WjF4dUlDQWdJQ0FnSUNCemRISnZhMlU5ZTJsamIyNUdhV3hzUTI5c2IzSW9kR2hsYldVcGZWeHVJQ0FnSUNBZ0lDQm1hV3hzUFh0cFkyOXVSbWxzYkVOdmJHOXlLSFJvWlcxbEtYMWNiaUFnSUNBZ0lDQWdkSEpoYm5ObWIzSnRQWHRtYkdsd0lEOGdYQ0owY21GdWMyeGhkR1VvTkRBc0lEQXBJSE5qWVd4bEtDMHhMQ0F4S1Z3aUlEb2dYQ0pjSW4xY2JpQWdJQ0FnSUQ1Y2JpQWdJQ0FnSUNBZ1BIQmhkR2dnWkQxY0lrMHpNaUF4TUV3MklERXdYQ0lnYzNSeWIydGxWMmxrZEdnOWV6SjlJQzgrWEc0Z0lDQWdJQ0FnSUR4amFYSmpiR1VnY2oxY0lqUmNJaUIwY21GdWMyWnZjbTA5WENKdFlYUnlhWGdvTFRFZ01DQXdJREVnTXpBZ01UQXBYQ0lnTHo1Y2JpQWdJQ0FnSUR3dlp6NHNYRzRnSUNBZ0lDQjdJSGRwWkhSb09pQTBNQ3dnYUdWcFoyaDBPaUF5TUNCOUxGeHVJQ0FnSUNrc1hHNHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdRWEp5YjNkb1pXRmtRbUZ5U1dOdmJpQTlJRkpsWVdOMExtMWxiVzhvWEc0Z0lDaDdJSFJvWlcxbExDQm1iR2x3SUQwZ1ptRnNjMlVnZlRvZ2V5QjBhR1Z0WlRvZ1ZHaGxiV1U3SUdac2FYQS9PaUJpYjI5c1pXRnVJSDBwSUQwK1hHNGdJQ0FnWTNKbFlYUmxTV052YmloY2JpQWdJQ0FnSUR4bklIUnlZVzV6Wm05eWJUMTdabXhwY0NBL0lGd2lkSEpoYm5Oc1lYUmxLRFF3TENBd0tTQnpZMkZzWlNndE1Td2dNU2xjSWlBNklGd2lYQ0o5UGx4dUlDQWdJQ0FnSUNBOGNHRjBhRnh1SUNBZ0lDQWdJQ0FnSUdROVhDSk5NelFnTVRCSU5TNDVPVGs1Tmswek5DQXhNRXd6TkNBMVRUTTBJREV3VERNMElERTFYQ0pjYmlBZ0lDQWdJQ0FnSUNCemRISnZhMlU5ZTJsamIyNUdhV3hzUTI5c2IzSW9kR2hsYldVcGZWeHVJQ0FnSUNBZ0lDQWdJSE4wY205clpWZHBaSFJvUFhzeWZWeHVJQ0FnSUNBZ0lDQWdJR1pwYkd3OVhDSnViMjVsWENKY2JpQWdJQ0FnSUNBZ0x6NWNiaUFnSUNBZ0lEd3ZaejRzWEc0Z0lDQWdJQ0I3SUhkcFpIUm9PaUEwTUN3Z2FHVnBaMmgwT2lBeU1DQjlMRnh1SUNBZ0lDa3NYRzRwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnUVhKeWIzZG9aV0ZrVkhKcFlXNW5iR1ZKWTI5dUlEMGdVbVZoWTNRdWJXVnRieWhjYmlBZ0tIc2dkR2hsYldVc0lHWnNhWEFnUFNCbVlXeHpaU0I5T2lCN0lIUm9aVzFsT2lCVWFHVnRaVHNnWm14cGNEODZJR0p2YjJ4bFlXNGdmU2tnUFQ1Y2JpQWdJQ0JqY21WaGRHVkpZMjl1S0Z4dUlDQWdJQ0FnUEdkY2JpQWdJQ0FnSUNBZ2MzUnliMnRsUFh0cFkyOXVSbWxzYkVOdmJHOXlLSFJvWlcxbEtYMWNiaUFnSUNBZ0lDQWdabWxzYkQxN2FXTnZia1pwYkd4RGIyeHZjaWgwYUdWdFpTbDlYRzRnSUNBZ0lDQWdJSFJ5WVc1elptOXliVDE3Wm14cGNDQS9JRndpZEhKaGJuTnNZWFJsS0RRd0xDQXdLU0J6WTJGc1pTZ3RNU3dnTVNsY0lpQTZJRndpWENKOVhHNGdJQ0FnSUNBK1hHNGdJQ0FnSUNBZ0lEeHdZWFJvSUdROVhDSk5NeklnTVRCTU5pQXhNRndpSUhOMGNtOXJaVmRwWkhSb1BYc3lmU0F2UGx4dUlDQWdJQ0FnSUNBOGNHRjBhQ0JrUFZ3aVRUSTNMalVnTlM0MVRETTBMalVnTVRCTU1qY3VOU0F4TkM0MVRESTNMalVnTlM0MVhDSWdMejVjYmlBZ0lDQWdJRHd2Wno0c1hHNGdJQ0FnSUNCN0lIZHBaSFJvT2lBME1Dd2dhR1ZwWjJoME9pQXlNQ0I5TEZ4dUlDQWdJQ2tzWEc0cE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1JtOXVkRk5wZW1WVGJXRnNiRWxqYjI0Z1BTQlNaV0ZqZEM1dFpXMXZLQ2g3SUhSb1pXMWxJSDA2SUhzZ2RHaGxiV1U2SUZSb1pXMWxJSDBwSUQwK1hHNGdJR055WldGMFpVbGpiMjRvWEc0Z0lDQWdQSEJoZEdoY2JpQWdJQ0FnSUdacGJHdzllMmxqYjI1R2FXeHNRMjlzYjNJb2RHaGxiV1VwZlZ4dUlDQWdJQ0FnWkQxY0lrMGdNQ0EyT1M0d09USWdUQ0F3SURVMUxqQXpJRUVnTVRJMExqSTBJREV5TkM0eU5DQXdJREFnTUNBMExqY3dOaUExTnk0d01pQlJJRFl1T0RJMklEVTNMamcyTXlBNExqY3dPQ0ExT0M0MUlFRWdOVE11TkRZMklEVXpMalEyTmlBd0lEQWdNQ0F4TWk0eU16RWdOVGt1TlRjeElGRWdNVGN1TWpNMklEWXdMamc0T1NBeU1TNHpPRGNnTmpBdU9EZzVJRUVnTWpBdU9UQTVJREl3TGprd09TQXdJREFnTUNBeU5DNHlOalVnTmpBdU56QTBJRkVnTWpVdU56RTVJRFl3TGpVd01pQXlOaTQ1TURNZ05qQXVNRGMzSUVFZ09DNDJORGtnT0M0Mk5Ea2dNQ0F3SURBZ01qa3VNREk0SURVNExqazROU0JSSURNeExqWTRPU0ExTnk0d09DQXpNUzQyT0RrZ05UTXVNekl4SUZFZ016RXVOamc1SURVeExqSXlNU0F6TUM0MU1UZ2dORGt1TlRnMUlFRWdNVEF1TVRJMklERXdMakV5TmlBd0lEQWdNQ0F5T1M0eU9ESWdORGd1TVRjM0lGRWdNamd1TXpVeUlEUTNMakk0TnlBeU55NHdOelVnTkRZdU5ETTJJRUVnTWpNdU56RTVJREl6TGpjeE9TQXdJREFnTUNBeU5TNDNOVElnTkRVdU5qSTNJRkVnTWpNdU56YzBJRFEwTGpRNU1pQXlNQzR4TnpZZ05ESXVOek0xSUVFZ01qVTBMalEwSURJMU5DNDBOQ0F3SURBZ01DQXhOeTQ0TWpJZ05ERXVOakF5SUZFZ01URXVOVEF6SURNNExqWXpNU0E0TGpJek5pQXpOUzQ0T0RnZ1FTQXhPUzQzTkRJZ01Ua3VOelF5SURBZ01DQXhJRGd1TURBNElETTFMalk1TkNCQklESXlMakU0SURJeUxqRTRJREFnTUNBeElESXVOemd6SURJNUxqRXdNaUJSSURBdU9ETWdNalV1TXpReUlEQXVPRE1nTWpBdU16RXpJRUVnTWpJdU5EY3hJREl5TGpRM01TQXdJREFnTVNBeExqY3pNeUF4TXk0M056Z2dRU0F4Tnk0eU9ETWdNVGN1TWpneklEQWdNQ0F4SURjdU1qVXhJRFV1TkRJZ1FTQXlNUzQwT0RZZ01qRXVORGcySURBZ01DQXhJREUxTGpFM055QXhMakkzTWlCUklERTRMak0yTVNBd0xqTXpPQ0F5TWk0eE5qWWdNQzR3T1NCQklEUXpMalUzTXlBME15NDFOek1nTUNBd0lERWdNalVnTUNCQklEUXlMak01T1NBME1pNHpPVGtnTUNBd0lERWdNelF1TXpRNUlERXVNREVnUVNBek9TNHdOelVnTXprdU1EYzFJREFnTUNBeElETTFMall5SURFdU16RTVJRUVnTmpjdU5EQTNJRFkzTGpRd055QXdJREFnTVNBME1pNHhNRGdnTXk0ek9ESWdRU0E0TXk0ek5UY2dPRE11TXpVM0lEQWdNQ0F4SURRMkxqRTVNU0ExTGpBeklFd2dOREV1TXpBNUlERTJMamM1TnlCUklETTFMalU1TmlBeE5DNDBOVE1nTXpFdU9EWWdNVE11TlRJMklFRWdNekF1TnpZeUlETXdMamMyTWlBd0lEQWdNQ0F5TlM0ME1UY2dNVEl1TmpFeUlFRWdNamd1TXpNM0lESTRMak16TnlBd0lEQWdNQ0F5TkM0MU1USWdNVEl1TlRrNElFRWdNVFF1T0RRMklERTBMamcwTmlBd0lEQWdNQ0F5TWk0d01qSWdNVEl1TnpreklGRWdNVGt1TkRrNElERXpMakl5TkNBeE55NDVNaUF4TkM0MklGRWdNVFV1TmpJMUlERTJMall3TWlBeE5TNDJNalVnTVRrdU9ESTBJRkVnTVRVdU5qSTFJREl4TGpneU5pQXhOaTQxTlRNZ01qTXVNekUySUZFZ01UY3VORGdnTWpRdU9EQTFJREU1TGpVd055QXlOaTR4T1RjZ1FTQXhPQzR6TkRNZ01UZ3VNelF6SURBZ01DQXdJREl3TGpZMU9TQXlOaTQ1TVRJZ1VTQXlNaTQxT1RZZ01qZ3VNRE0xSURJMkxqVXhOaUF5T1M0NU5UTWdRU0F5T1RrdU9Ua2dNams1TGprNUlEQWdNQ0F3SURJNUxqRXdNaUF6TVM0eU1ERWdVU0F6Tnk0NU1TQXpOUzQwTVRJZ05ERXVPRFF4SURNNUxqWTBNaUJCSURFMkxqVTFNeUF4Tmk0MU5UTWdNQ0F3SURFZ05ESXVPREl5SURRd0xqYzVOaUJCSURFM0xqWTNOU0F4Tnk0Mk56VWdNQ0F3SURFZ05EWXVNekF4SURRNUxqSXpNeUJCSURJekxqVXhOeUF5TXk0MU1UY2dNQ0F3SURFZ05EWXVOVE16SURVeUxqVTRPQ0JCSURJeExqVTRNU0F5TVM0MU9ERWdNQ0F3SURFZ05EVXVORGN4SURVNUxqVXhOU0JCSURFM0xqY3pNeUF4Tnk0M016TWdNQ0F3SURFZ016a3VOVGMxSURZM0xqZ3lNeUJSSURNekxqYzBOU0EzTWk0ME9EWWdNalF1TURrMElEY3pMakkwTXlCQklEUTVMalk0TXlBME9TNDJPRE1nTUNBd0lERWdNakF1TWpFMUlEY3pMak00T1NCQklEVXhMamN4TWlBMU1TNDNNVElnTUNBd0lERWdPUzQwTkRnZ056SXVNekUxSUVFZ05EQXVOamN5SURRd0xqWTNNaUF3SURBZ01TQXdJRFk1TGpBNU1pQmFYQ0pjYmlBZ0lDQXZQaXhjYmlBZ0lDQjdJSGRwWkhSb09pQTBOeXdnYUdWcFoyaDBPaUEzTnlCOUxGeHVJQ0FwTEZ4dUtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElFWnZiblJUYVhwbFRXVmthWFZ0U1dOdmJpQTlJRkpsWVdOMExtMWxiVzhvS0hzZ2RHaGxiV1VnZlRvZ2V5QjBhR1Z0WlRvZ1ZHaGxiV1VnZlNrZ1BUNWNiaUFnWTNKbFlYUmxTV052YmloY2JpQWdJQ0E4Y0dGMGFGeHVJQ0FnSUNBZ1ptbHNiRDE3YVdOdmJrWnBiR3hEYjJ4dmNpaDBhR1Z0WlNsOVhHNGdJQ0FnSUNCa1BWd2lUU0EwTkM0d09USWdOekV1TXpnM0lFd2dNekF1TWpJMUlEY3hMak00TnlCTUlERXpMakF6TnlBeE5TNHpPREVnVENBeE1pNDFPVGdnTVRVdU16Z3hJRUVnTVRVd05TNHdPVE1nTVRVd05TNHdPVE1nTUNBd0lERWdNVEl1T1RVNUlESXlMak14TXlCUklERXpMalF5TmlBek1TNDNNVFVnTVRNdU5UQTRJRE0yTGpRZ1FTQXhNREl1T1RreElERXdNaTQ1T1RFZ01DQXdJREVnTVRNdU5USTFJRE00TGpFNE5DQk1JREV6TGpVeU5TQTNNUzR6T0RjZ1RDQXdJRGN4TGpNNE55Qk1JREFnTUNCTUlESXdMall3TlNBd0lFd2dNemN1TlNBMU5DNDFPU0JNSURNM0xqYzVNeUExTkM0MU9TQk1JRFUxTGpjeE15QXdJRXdnTnpZdU16RTRJREFnVENBM05pNHpNVGdnTnpFdU16ZzNJRXdnTmpJdU1qQTNJRGN4TGpNNE55Qk1JRFl5TGpJd055QXpOeTQxT1RnZ1VTQTJNaTR5TURjZ016VXVNakExSURZeUxqSTRJRE15TGpBNElFRWdNVFl3TGpjd015QXhOakF1TnpBeklEQWdNQ0F4SURZeUxqTXlOaUF6TUM0MU5EUWdVU0EyTWk0ME5USWdNall1TnpVMElEWXlMamcyTmlBeE55NHhOamdnUVNBMU16a3dMalV6TmlBMU16a3dMalV6TmlBd0lEQWdNU0EyTWk0NU16a2dNVFV1TkRjNUlFd2dOakl1TlNBeE5TNDBOemtnVENBME5DNHdPVElnTnpFdU16ZzNJRnBjSWx4dUlDQWdJQzgrTEZ4dUlDQWdJSHNnZDJsa2RHZzZJRGMzTENCb1pXbG5hSFE2SURjMUlIMHNYRzRnSUNrc1hHNHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdSbTl1ZEZOcGVtVk1ZWEpuWlVsamIyNGdQU0JTWldGamRDNXRaVzF2S0NoN0lIUm9aVzFsSUgwNklIc2dkR2hsYldVNklGUm9aVzFsSUgwcElEMCtYRzRnSUdOeVpXRjBaVWxqYjI0b1hHNGdJQ0FnUEhCaGRHaGNiaUFnSUNBZ0lHWnBiR3c5ZTJsamIyNUdhV3hzUTI5c2IzSW9kR2hsYldVcGZWeHVJQ0FnSUNBZ1pEMWNJazBnTkRRdU1Ea3lJRGN4TGpNNE55Qk1JREFnTnpFdU16ZzNJRXdnTUNBd0lFd2dNVFV1TVRNM0lEQWdUQ0F4TlM0eE16Y2dOVGd1T0RnM0lFd2dORFF1TURreUlEVTRMamc0TnlCTUlEUTBMakE1TWlBM01TNHpPRGNnV2x3aVhHNGdJQ0FnTHo0c1hHNGdJQ0FnZXlCM2FXUjBhRG9nTkRVc0lHaGxhV2RvZERvZ056VWdmU3hjYmlBZ0tTeGNiaWs3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JHYjI1MFUybDZaVVY0ZEhKaFRHRnlaMlZKWTI5dUlEMGdVbVZoWTNRdWJXVnRieWhjYmlBZ0tIc2dkR2hsYldVZ2ZUb2dleUIwYUdWdFpUb2dWR2hsYldVZ2ZTa2dQVDVjYmlBZ0lDQmpjbVZoZEdWSlkyOXVLRnh1SUNBZ0lDQWdQSEJoZEdoY2JpQWdJQ0FnSUNBZ1ptbHNiRDE3YVdOdmJrWnBiR3hEYjJ4dmNpaDBhR1Z0WlNsOVhHNGdJQ0FnSUNBZ0lHUTlYQ0pOSURReUxqVTNPQ0F6TlM0MElFd2dOall1TmprNUlEY3hMak00TnlCTUlEUTVMalF4TkNBM01TNHpPRGNnVENBek1pNDRNVE1nTkRRdU16ZzFJRXdnTVRZdU1qRXhJRGN4TGpNNE55Qk1JREFnTnpFdU16ZzNJRXdnTWpNdU5qZ3lJRE0wTGpVM0lFd2dNUzQxTVRRZ01DQk1JREU0TGpJeE15QXdJRXdnTXpNdU5UazBJREkxTGpZNE5DQk1JRFE0TGpZNE1pQXdJRXdnTmpRdU9Ua2dNQ0JNSURReUxqVTNPQ0F6TlM0MElGb2dUU0F4TVRrdU56YzFJRGN4TGpNNE55Qk1JRGMxTGpZNE5DQTNNUzR6T0RjZ1RDQTNOUzQyT0RRZ01DQk1JRGt3TGpneUlEQWdUQ0E1TUM0NE1pQTFPQzQ0T0RjZ1RDQXhNVGt1TnpjMUlEVTRMamc0TnlCTUlERXhPUzQzTnpVZ056RXVNemczSUZwY0lseHVJQ0FnSUNBZ0x6NHNYRzRnSUNBZ0lDQjdJSGRwWkhSb09pQXhNakFzSUdobGFXZG9kRG9nTnpVZ2ZTeGNiaUFnSUNBcExGeHVLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRVp2Ym5SR1lXMXBiSGxJWVc1a1JISmhkMjVKWTI5dUlEMGdVbVZoWTNRdWJXVnRieWhjYmlBZ0tIc2dkR2hsYldVZ2ZUb2dleUIwYUdWdFpUb2dWR2hsYldVZ2ZTa2dQVDVjYmlBZ0lDQmpjbVZoZEdWSlkyOXVLRnh1SUNBZ0lDQWdQSEJoZEdoY2JpQWdJQ0FnSUNBZ1ptbHNiRDE3YVdOdmJrWnBiR3hEYjJ4dmNpaDBhR1Z0WlNsOVhHNGdJQ0FnSUNBZ0lHUTlYQ0pOTWprd0xqYzBJRGt6TGpJMGJERXlPQzR3TWlBeE1qZ3VNREl0TWpjM0xqazVJREkzTnk0NU9TMHhNVFF1TVRRZ01USXVOa014TVM0ek5TQTFNVE11TlRRdE1TNDFOaUExTURBdU5qSXVNVFFnTkRnMUxqTTBiREV5TGpjdE1URTBMakl5SURJM055NDVMVEkzTnk0NE9IcHRNakEzTGpJdE1Ua3VNRFpzTFRZd0xqRXhMVFl3TGpFeFl5MHhPQzQzTlMweE9DNDNOUzAwT1M0eE5pMHhPQzQzTlMwMk55NDVNU0F3YkMwMU5pNDFOU0ExTmk0MU5TQXhNamd1TURJZ01USTRMakF5SURVMkxqVTFMVFUyTGpVMVl6RTRMamMxTFRFNExqYzJJREU0TGpjMUxUUTVMakUySURBdE5qY3VPVEY2WENKY2JpQWdJQ0FnSUM4K0xGeHVJQ0FnSUNBZ2V5QjNhV1IwYURvZ05EUTRMQ0JvWldsbmFIUTZJRFV4TWlCOUxGeHVJQ0FnSUNrc1hHNHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdSbTl1ZEVaaGJXbHNlVTV2Y20xaGJFbGpiMjRnUFNCU1pXRmpkQzV0WlcxdktDaDdJSFJvWlcxbElIMDZJSHNnZEdobGJXVTZJRlJvWlcxbElIMHBJRDArWEc0Z0lHTnlaV0YwWlVsamIyNG9YRzRnSUNBZ1BENWNiaUFnSUNBZ0lEeHdZWFJvWEc0Z0lDQWdJQ0FnSUdacGJHdzllMmxqYjI1R2FXeHNRMjlzYjNJb2RHaGxiV1VwZlZ4dUlDQWdJQ0FnSUNCa1BWd2lUU0EyTXk0NE1UZ2dOekV1TmpnZ1RDQTFOQzQwT1RJZ056RXVOamdnVENBME5TNDRPVGdnTkRrdU5UWXhJRXdnTVRjdU5UYzRJRFE1TGpVMk1TQk1JRGt1TURneUlEY3hMalk0SUV3Z01DQTNNUzQyT0NCTUlESTNMamc0TVNBd0lFd2dNelV1T1RnMklEQWdUQ0EyTXk0NE1UZ2dOekV1TmpnZ1dpQk5JREl3TGpZd05TQTBNUzQyTURJZ1RDQTBNeTR5TVRNZ05ERXVOakF5SUV3Z016VXVNakExSURFNUxqazNNU0JNSURNeExqYzROeUE1TGpJM055QlJJRE13TGpNeU1pQXhOUzR4TXpjZ01qZ3VOekV4SURFNUxqazNNU0JNSURJd0xqWXdOU0EwTVM0Mk1ESWdXbHdpWEc0Z0lDQWdJQ0F2UGx4dUlDQWdJQ0FnUEhCaGRHaGNiaUFnSUNBZ0lDQWdabWxzYkQxN2FXTnZia1pwYkd4RGIyeHZjaWgwYUdWdFpTbDlYRzRnSUNBZ0lDQWdJR1E5WENKTklEWTRMams1TkNBM01TNDJPQ0JNSURVeUxqWTROaUEzTVM0Mk9DQk1JRFEzTGpVeElEVTBMalk0T0NCTUlESXhMalE0TkNBMU5DNDJPRGdnVENBeE5pNHpNRGtnTnpFdU5qZ2dUQ0F3SURjeExqWTRJRXdnTWpVdU1UazFJREFnVENBME15NDNNREVnTUNCTUlEWTRMams1TkNBM01TNDJPQ0JhSUUwZ01qVXVNamt6SURReExqazVNaUJNSURRekxqZzVOaUEwTVM0NU9USWdRU0F5TnpVNU1DNDBOak1nTWpjMU9UQXVORFl6SURBZ01DQXhJRFF5TGpJZ016WXVOVE15SUZFZ016WXVPVFkxSURFNUxqWTNOaUF6TlM0NU16Y2dNVFl1TWpjeklFRWdNVEl3TGprek1pQXhNakF1T1RNeUlEQWdNQ0F4SURNMUxqZ3hOU0F4TlM0NE5qa2dRU0F4TXpFdU5qVWdNVE14TGpZMUlEQWdNQ0F4SURNMUxqTTVOaUF4TkM0ME16VWdVU0F6TkM0NU5URWdNVEl1T0RjNUlETTBMalkzTlNBeE1TNDNOREVnUVNBek5DNDROallnTXpRdU9EWTJJREFnTUNBeElETTBMalV5TVNBeE1TNHdPRFFnUVNBeE5ERXVOell5SURFME1TNDNOaklnTUNBd0lERWdNek11TnpBMklERTBMakEzTlNCUklETXhMalE0TWlBeU1TNDVOVGNnTWpVdU1qa3pJRFF4TGprNU1pQmFYQ0pjYmlBZ0lDQWdJQzgrWEc0Z0lDQWdQQzgrTEZ4dUlDQWdJSHNnZDJsa2RHZzZJRGN3TENCb1pXbG5hSFE2SURjNElIMHNYRzRnSUNrc1hHNHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdSbTl1ZEVaaGJXbHNlVU52WkdWSlkyOXVJRDBnVW1WaFkzUXViV1Z0Ynlnb2V5QjBhR1Z0WlNCOU9pQjdJSFJvWlcxbE9pQlVhR1Z0WlNCOUtTQTlQbHh1SUNCamNtVmhkR1ZKWTI5dUtGeHVJQ0FnSUR3K1hHNGdJQ0FnSUNBOGNHRjBhRnh1SUNBZ0lDQWdJQ0JtYVd4c1BYdHBZMjl1Um1sc2JFTnZiRzl5S0hSb1pXMWxLWDFjYmlBZ0lDQWdJQ0FnWkQxY0lrMHlOemd1T1NBMU1URXVOV3d0TmpFdE1UY3VOMk10Tmk0MExURXVPQzB4TUMwNExqVXRPQzR5TFRFMExqbE1NelEyTGpJZ09DNDNZekV1T0MwMkxqUWdPQzQxTFRFd0lERTBMamt0T0M0eWJEWXhJREUzTGpkak5pNDBJREV1T0NBeE1DQTRMalVnT0M0eUlERTBMamxNTWprekxqZ2dOVEF6TGpOakxURXVPU0EyTGpRdE9DNDFJREV3TGpFdE1UUXVPU0E0TGpKNmJTMHhNVFF0TVRFeUxqSnNORE11TlMwME5pNDBZelF1TmkwMExqa2dOQzR6TFRFeUxqY3RMamd0TVRjdU1rd3hNVGNnTWpVMmJEa3dMall0TnprdU4yTTFMakV0TkM0MUlEVXVOUzB4TWk0ekxqZ3RNVGN1TW13dE5ETXVOUzAwTmk0MFl5MDBMalV0TkM0NExURXlMakV0TlM0eExURTNMUzQxVERNdU9DQXlORGN1TW1NdE5TNHhJRFF1TnkwMUxqRWdNVEl1T0NBd0lERTNMalZzTVRRMExqRWdNVE0xTGpGak5DNDVJRFF1TmlBeE1pNDFJRFF1TkNBeE55MHVOWHB0TXpJM0xqSXVObXd4TkRRdU1TMHhNelV1TVdNMUxqRXROQzQzSURVdU1TMHhNaTQ0SURBdE1UY3VOVXcwT1RJdU1TQXhNVEl1TVdNdE5DNDRMVFF1TlMweE1pNDBMVFF1TXkweE55QXVOVXcwTXpFdU5pQXhOVGxqTFRRdU5pQTBMamt0TkM0eklERXlMamN1T0NBeE55NHlURFV5TXlBeU5UWnNMVGt3TGpZZ056a3VOMk10TlM0eElEUXVOUzAxTGpVZ01USXVNeTB1T0NBeE55NHliRFF6TGpVZ05EWXVOR00wTGpVZ05DNDVJREV5TGpFZ05TNHhJREUzSUM0MmVsd2lYRzRnSUNBZ0lDQXZQbHh1SUNBZ0lEd3ZQaXhjYmlBZ0lDQjdJSGRwWkhSb09pQTJOREFzSUdobGFXZG9kRG9nTlRFeUlIMHNYRzRnSUNrc1hHNHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdWR1Y0ZEVGc2FXZHVUR1ZtZEVsamIyNGdQU0JTWldGamRDNXRaVzF2S0NoN0lIUm9aVzFsSUgwNklIc2dkR2hsYldVNklGUm9aVzFsSUgwcElEMCtYRzRnSUdOeVpXRjBaVWxqYjI0b1hHNGdJQ0FnUEhCaGRHaGNiaUFnSUNBZ0lHUTlYQ0pOTVRJdU9ETWdNelV5YURJMk1pNHpORUV4TWk0NE1pQXhNaTQ0TWlBd0lEQXdNamc0SURNek9TNHhOM1l0TXpndU16UkJNVEl1T0RJZ01USXVPRElnTUNBd01ESTNOUzR4TnlBeU9EaElNVEl1T0ROQk1USXVPRElnTVRJdU9ESWdNQ0F3TURBZ016QXdMamd6ZGpNNExqTTBRVEV5TGpneUlERXlMamd5SURBZ01EQXhNaTQ0TXlBek5USjZiVEF0TWpVMmFESTJNaTR6TkVFeE1pNDRNaUF4TWk0NE1pQXdJREF3TWpnNElEZ3pMakUzVmpRMExqZ3pRVEV5TGpneUlERXlMamd5SURBZ01EQXlOelV1TVRjZ016SklNVEl1T0ROQk1USXVPRElnTVRJdU9ESWdNQ0F3TURBZ05EUXVPRE4yTXpndU16UkJNVEl1T0RJZ01USXVPRElnTUNBd01ERXlMamd6SURrMmVrMDBNeklnTVRZd1NERTJZVEUySURFMklEQWdNREF0TVRZZ01UWjJNekpoTVRZZ01UWWdNQ0F3TURFMklERTJhRFF4Tm1FeE5pQXhOaUF3SURBd01UWXRNVFoyTFRNeVlURTJJREUySURBZ01EQXRNVFl0TVRaNmJUQWdNalUyU0RFMllURTJJREUySURBZ01EQXRNVFlnTVRaMk16SmhNVFlnTVRZZ01DQXdNREUySURFMmFEUXhObUV4TmlBeE5pQXdJREF3TVRZdE1UWjJMVE15WVRFMklERTJJREFnTURBdE1UWXRNVFo2WENKY2JpQWdJQ0FnSUdacGJHdzllMmxqYjI1R2FXeHNRMjlzYjNJb2RHaGxiV1VwZlZ4dUlDQWdJQ0FnYzNSeWIydGxUR2x1WldOaGNEMWNJbkp2ZFc1a1hDSmNiaUFnSUNBdlBpeGNiaUFnSUNCN0lIZHBaSFJvT2lBME5EZ3NJR2hsYVdkb2REb2dOVEV5SUgwc1hHNGdJQ2tzWEc0cE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1ZHVjRkRUZzYVdkdVEyVnVkR1Z5U1dOdmJpQTlJRkpsWVdOMExtMWxiVzhvS0hzZ2RHaGxiV1VnZlRvZ2V5QjBhR1Z0WlRvZ1ZHaGxiV1VnZlNrZ1BUNWNiaUFnWTNKbFlYUmxTV052YmloY2JpQWdJQ0E4Y0dGMGFGeHVJQ0FnSUNBZ1pEMWNJazAwTXpJZ01UWXdTREUyWVRFMklERTJJREFnTURBdE1UWWdNVFoyTXpKaE1UWWdNVFlnTUNBd01ERTJJREUyYURReE5tRXhOaUF4TmlBd0lEQXdNVFl0TVRaMkxUTXlZVEUySURFMklEQWdNREF0TVRZdE1UWjZiVEFnTWpVMlNERTJZVEUySURFMklEQWdNREF0TVRZZ01UWjJNekpoTVRZZ01UWWdNQ0F3TURFMklERTJhRFF4Tm1FeE5pQXhOaUF3SURBd01UWXRNVFoyTFRNeVlURTJJREUySURBZ01EQXRNVFl0TVRaNlRURXdPQzR4SURrMmFESXpNUzQ0TVVFeE1pNHdPU0F4TWk0d09TQXdJREF3TXpVeUlEZ3pMamxXTkRRdU1EbEJNVEl1TURrZ01USXVNRGtnTUNBd01ETXpPUzQ1TVNBek1rZ3hNRGd1TVVFeE1pNHdPU0F4TWk0d09TQXdJREF3T1RZZ05EUXVNRGxXT0RNdU9VRXhNaTR4SURFeUxqRWdNQ0F3TURFd09DNHhJRGsyZW0weU16RXVPREVnTWpVMlFURXlMakE1SURFeUxqQTVJREFnTURBek5USWdNek01TGpsMkxUTTVMamd4UVRFeUxqQTVJREV5TGpBNUlEQWdNREF6TXprdU9URWdNamc0U0RFd09DNHhRVEV5TGpBNUlERXlMakE1SURBZ01EQTVOaUF6TURBdU1EbDJNemt1T0RGaE1USXVNU0F4TWk0eElEQWdNREF4TWk0eElERXlMakY2WENKY2JpQWdJQ0FnSUdacGJHdzllMmxqYjI1R2FXeHNRMjlzYjNJb2RHaGxiV1VwZlZ4dUlDQWdJQzgrTEZ4dUlDQWdJSHNnZDJsa2RHZzZJRFEwT0N3Z2FHVnBaMmgwT2lBMU1USWdmU3hjYmlBZ0tTeGNiaWs3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JVWlhoMFFXeHBaMjVTYVdkb2RFbGpiMjRnUFNCU1pXRmpkQzV0WlcxdktDaDdJSFJvWlcxbElIMDZJSHNnZEdobGJXVTZJRlJvWlcxbElIMHBJRDArWEc0Z0lHTnlaV0YwWlVsamIyNG9YRzRnSUNBZ1BIQmhkR2hjYmlBZ0lDQWdJR1E5WENKTk1UWWdNakkwYURReE5tRXhOaUF4TmlBd0lEQXdNVFl0TVRaMkxUTXlZVEUySURFMklEQWdNREF0TVRZdE1UWklNVFpoTVRZZ01UWWdNQ0F3TUMweE5pQXhObll6TW1FeE5pQXhOaUF3SURBd01UWWdNVFo2YlRReE5pQXhPVEpJTVRaaE1UWWdNVFlnTUNBd01DMHhOaUF4Tm5Zek1tRXhOaUF4TmlBd0lEQXdNVFlnTVRab05ERTJZVEUySURFMklEQWdNREF4TmkweE5uWXRNekpoTVRZZ01UWWdNQ0F3TUMweE5pMHhObnB0TXk0eE55MHpPRFJJTVRjeUxqZ3pRVEV5TGpneUlERXlMamd5SURBZ01EQXhOakFnTkRRdU9ETjJNemd1TXpSQk1USXVPRElnTVRJdU9ESWdNQ0F3TURFM01pNDRNeUE1Tm1neU5qSXVNelJCTVRJdU9ESWdNVEl1T0RJZ01DQXdNRFEwT0NBNE15NHhOMVkwTkM0NE0wRXhNaTQ0TWlBeE1pNDRNaUF3SURBd05ETTFMakUzSURNeWVtMHdJREkxTmtneE56SXVPRE5CTVRJdU9ESWdNVEl1T0RJZ01DQXdNREUyTUNBek1EQXVPRE4yTXpndU16UkJNVEl1T0RJZ01USXVPRElnTUNBd01ERTNNaTQ0TXlBek5USm9Nall5TGpNMFFURXlMamd5SURFeUxqZ3lJREFnTURBME5EZ2dNek01TGpFM2RpMHpPQzR6TkVFeE1pNDRNaUF4TWk0NE1pQXdJREF3TkRNMUxqRTNJREk0T0hwY0lseHVJQ0FnSUNBZ1ptbHNiRDE3YVdOdmJrWnBiR3hEYjJ4dmNpaDBhR1Z0WlNsOVhHNGdJQ0FnSUNCemRISnZhMlZNYVc1bFkyRndQVndpY205MWJtUmNJbHh1SUNBZ0lDOCtMRnh1SUNBZ0lIc2dkMmxrZEdnNklEUTBPQ3dnYUdWcFoyaDBPaUExTVRJZ2ZTeGNiaUFnS1N4Y2JpazdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQndkV0pzYVhOb1NXTnZiaUE5SUdOeVpXRjBaVWxqYjI0b1hHNGdJRHh3WVhSb1hHNGdJQ0FnWkQxY0lrMDFNemN1TmlBeU1qWXVObU0wTGpFdE1UQXVOeUEyTGpRdE1qSXVOQ0EyTGpRdE16UXVOaUF3TFRVekxUUXpMVGsyTFRrMkxUazJMVEU1TGpjZ01DMHpPQzR4SURZdE5UTXVNeUF4Tmk0eVF6TTJOeUEyTkM0eUlETXhOUzR6SURNeUlESTFOaUF6TW1NdE9EZ3VOQ0F3TFRFMk1DQTNNUzQyTFRFMk1DQXhOakFnTUNBeUxqY3VNU0ExTGpRdU1pQTRMakZETkRBdU1pQXlNVGt1T0NBd0lESTNNeTR5SURBZ016TTJZekFnTnprdU5TQTJOQzQxSURFME5DQXhORFFnTVRRMGFETTJPR00zTUM0M0lEQWdNVEk0TFRVM0xqTWdNVEk0TFRFeU9DQXdMVFl4TGprdE5EUXRNVEV6TGpZdE1UQXlMalF0TVRJMUxqUjZUVE01TXk0MElESTRPRWd6TWpoMk1URXlZekFnT0M0NExUY3VNaUF4TmkweE5pQXhObWd0TkRoakxUZ3VPQ0F3TFRFMkxUY3VNaTB4TmkweE5sWXlPRGhvTFRZMUxqUmpMVEUwTGpNZ01DMHlNUzQwTFRFM0xqSXRNVEV1TXkweU55NHpiREV3TlM0MExURXdOUzQwWXpZdU1pMDJMaklnTVRZdU5DMDJMaklnTWpJdU5pQXdiREV3TlM0MElERXdOUzQwWXpFd0xqRWdNVEF1TVNBeUxqa2dNamN1TXkweE1TNHpJREkzTGpONlhDSmNiaUFnSUNCbWFXeHNQVndpWTNWeWNtVnVkRU52Ykc5eVhDSmNiaUFnTHo0c1hHNGdJSHNnZDJsa2RHZzZJRFkwTUN3Z2FHVnBaMmgwT2lBMU1USWdmU3hjYmlrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCbFpHbDBTV052YmlBOUlHTnlaV0YwWlVsamIyNG9YRzRnSUR4d1lYUm9YRzRnSUNBZ1ptbHNiRDFjSW1OMWNuSmxiblJEYjJ4dmNsd2lYRzRnSUNBZ1pEMWNJazAwTURJdU15QXpORFF1T1d3ek1pMHpNbU0xTFRVZ01UTXVOeTB4TGpVZ01UTXVOeUExTGpkV05EWTBZekFnTWpZdU5TMHlNUzQxSURRNExUUTRJRFE0U0RRNFl5MHlOaTQxSURBdE5EZ3RNakV1TlMwME9DMDBPRll4TVRKak1DMHlOaTQxSURJeExqVXRORGdnTkRndE5EaG9NamN6TGpWak55NHhJREFnTVRBdU55QTRMallnTlM0M0lERXpMamRzTFRNeUlETXlZeTB4TGpVZ01TNDFMVE11TlNBeUxqTXROUzQzSURJdU0wZzBPSFl6TlRKb016VXlWak0xTUM0MVl6QXRNaTR4TGpndE5DNHhJREl1TXkwMUxqWjZiVEUxTmk0MkxUSXdNUzQ0VERJNU5pNHpJRFF3TlM0M2JDMDVNQzQwSURFd1l5MHlOaTR5SURJdU9TMDBPQzQxTFRFNUxqSXRORFV1TmkwME5TNDJiREV3TFRrd0xqUk1ORE15TGprZ01UY3VNV015TWk0NUxUSXlMamtnTlRrdU9TMHlNaTQ1SURneUxqY2dNR3cwTXk0eUlEUXpMakpqTWpJdU9TQXlNaTQ1SURJeUxqa2dOakFnTGpFZ09ESXVPSHBOTkRZd0xqRWdNVGMwVERRd01pQXhNVFV1T1NBeU1UWXVNaUF6TURFdU9Hd3ROeTR6SURZMUxqTWdOalV1TXkwM0xqTk1ORFl3TGpFZ01UYzBlbTAyTkM0NExUYzVMamRzTFRRekxqSXRORE11TW1NdE5DNHhMVFF1TVMweE1DNDRMVFF1TVMweE5DNDRJREJNTkRNMklEZ3liRFU0TGpFZ05UZ3VNU0F6TUM0NUxUTXdMamxqTkMwMExqSWdOQzB4TUM0NExTNHhMVEUwTGpsNlhDSmNiaUFnUGp3dmNHRjBhRDRzWEc0Z0lIc2dkMmxrZEdnNklEWTBNQ3dnYUdWcFoyaDBPaUExTVRJZ2ZTeGNiaWs3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vY29tcG9uZW50cy9pY29ucy50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2NvbnN0YW50cy50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vY29uc3RhbnRzLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiQVBQX05BTUVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBBUFBfTkFNRSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiRFJBR0dJTkdfVEhSRVNIT0xEXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRFJBR0dJTkdfVEhSRVNIT0xEKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJMSU5FX0NPTkZJUk1fVEhSRVNIT0xEXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gTElORV9DT05GSVJNX1RIUkVTSE9MRCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiRUxFTUVOVF9TSElGVF9UUkFOU0xBVEVfQU1PVU5UXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRUxFTUVOVF9TSElGVF9UUkFOU0xBVEVfQU1PVU5UKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJFTEVNRU5UX1RSQU5TTEFURV9BTU9VTlRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBFTEVNRU5UX1RSQU5TTEFURV9BTU9VTlQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlRFWFRfVE9fQ0VOVEVSX1NOQVBfVEhSRVNIT0xEXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gVEVYVF9UT19DRU5URVJfU05BUF9USFJFU0hPTEQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlNISUZUX0xPQ0tJTkdfQU5HTEVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBTSElGVF9MT0NLSU5HX0FOR0xFKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJDVVJTT1JfVFlQRVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIENVUlNPUl9UWVBFKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJQT0lOVEVSX0JVVFRPTlxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFBPSU5URVJfQlVUVE9OKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJFVkVOVFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEVWRU5UKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJFTlZcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBFTlYpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkNMQVNTRVNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBDTEFTU0VTKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJGT05UX0ZBTUlMWVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEZPTlRfRkFNSUxZKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJUSEVNRVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFRIRU1FKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJXSU5ET1dTX0VNT0pJX0ZBTExCQUNLX0ZPTlRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBXSU5ET1dTX0VNT0pJX0ZBTExCQUNLX0ZPTlQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkRFRkFVTFRfRk9OVF9TSVpFXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gREVGQVVMVF9GT05UX1NJWkUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkRFRkFVTFRfRk9OVF9GQU1JTFlcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBERUZBVUxUX0ZPTlRfRkFNSUxZKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJERUZBVUxUX1RFWFRfQUxJR05cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBERUZBVUxUX1RFWFRfQUxJR04pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkRFRkFVTFRfVkVSVElDQUxfQUxJR05cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBERUZBVUxUX1ZFUlRJQ0FMX0FMSUdOKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJERUZBVUxUX1ZFUlNJT05cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBERUZBVUxUX1ZFUlNJT04pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkNBTlZBU19PTkxZX0FDVElPTlNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBDQU5WQVNfT05MWV9BQ1RJT05TKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJHUklEX1NJWkVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBHUklEX1NJWkUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIk1JTUVfVFlQRVNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBNSU1FX1RZUEVTKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJFWFBPUlRfREFUQV9UWVBFU1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEVYUE9SVF9EQVRBX1RZUEVTKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJFWFBPUlRfU09VUkNFXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRVhQT1JUX1NPVVJDRSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiSU1BR0VfUkVOREVSX1RJTUVPVVRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBJTUFHRV9SRU5ERVJfVElNRU9VVCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiVEFQX1RXSUNFX1RJTUVPVVRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBUQVBfVFdJQ0VfVElNRU9VVCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiVE9VQ0hfQ1RYX01FTlVfVElNRU9VVFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFRPVUNIX0NUWF9NRU5VX1RJTUVPVVQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlRJVExFX1RJTUVPVVRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBUSVRMRV9USU1FT1VUKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJUT0FTVF9USU1FT1VUXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gVE9BU1RfVElNRU9VVCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiVkVSU0lPTl9USU1FT1VUXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gVkVSU0lPTl9USU1FT1VUKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJTQ1JPTExfVElNRU9VVFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFNDUk9MTF9USU1FT1VUKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJaT09NX1NURVBcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBaT09NX1NURVApLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkhZUEVSTElOS19UT09MVElQX0RFTEFZXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gSFlQRVJMSU5LX1RPT0xUSVBfREVMQVkpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIklETEVfVEhSRVNIT0xEXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gSURMRV9USFJFU0hPTEQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkFDVElWRV9USFJFU0hPTERcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBBQ1RJVkVfVEhSRVNIT0xEKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJNT0RFU1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIE1PREVTKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJUSEVNRV9GSUxURVJcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBUSEVNRV9GSUxURVIpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlVSTF9RVUVSWV9LRVlTXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gVVJMX1FVRVJZX0tFWVMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlVSTF9IQVNIX0tFWVNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBVUkxfSEFTSF9LRVlTKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJERUZBVUxUX1VJX09QVElPTlNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBERUZBVUxUX1VJX09QVElPTlMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIk1RX01BWF9XSURUSF9QT1JUUkFJVFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIE1RX01BWF9XSURUSF9QT1JUUkFJVCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiTVFfTUFYX1dJRFRIX0xBTkRTQ0FQRVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIE1RX01BWF9XSURUSF9MQU5EU0NBUEUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIk1RX01BWF9IRUlHSFRfTEFORFNDQVBFXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gTVFfTUFYX0hFSUdIVF9MQU5EU0NBUEUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIk1BWF9ERUNJTUFMU19GT1JfU1ZHX0VYUE9SVFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIE1BWF9ERUNJTUFMU19GT1JfU1ZHX0VYUE9SVCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiRVhQT1JUX1NDQUxFU1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEVYUE9SVF9TQ0FMRVMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkRFRkFVTFRfRVhQT1JUX1BBRERJTkdcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBERUZBVUxUX0VYUE9SVF9QQURESU5HKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJERUZBVUxUX01BWF9JTUFHRV9XSURUSF9PUl9IRUlHSFRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBERUZBVUxUX01BWF9JTUFHRV9XSURUSF9PUl9IRUlHSFQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkFMTE9XRURfSU1BR0VfTUlNRV9UWVBFU1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEFMTE9XRURfSU1BR0VfTUlNRV9UWVBFUyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiTUFYX0FMTE9XRURfRklMRV9CWVRFU1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIE1BWF9BTExPV0VEX0ZJTEVfQllURVMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlNWR19OU1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFNWR19OUyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiRU5DUllQVElPTl9LRVlfQklUU1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEVOQ1JZUFRJT05fS0VZX0JJVFMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlZFUlNJT05TXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gVkVSU0lPTlMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkJPVU5EX1RFWFRfUEFERElOR1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEJPVU5EX1RFWFRfUEFERElORylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Nzc192YXJpYWJsZXNfbW9kdWxlX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2NzcyAqLyBcXFwiLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY3NzX3ZhcmlhYmxlc19tb2R1bGVfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9jc3NfdmFyaWFibGVzX21vZHVsZV9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18pO1xcblxcbmNvbnN0IEFQUF9OQU1FID0gXFxcIkV4Y2FsaWRyYXdcXFwiO1xcbmNvbnN0IERSQUdHSU5HX1RIUkVTSE9MRCA9IDEwOyAvLyBweFxcbmNvbnN0IExJTkVfQ09ORklSTV9USFJFU0hPTEQgPSA4OyAvLyBweFxcbmNvbnN0IEVMRU1FTlRfU0hJRlRfVFJBTlNMQVRFX0FNT1VOVCA9IDU7XFxuY29uc3QgRUxFTUVOVF9UUkFOU0xBVEVfQU1PVU5UID0gMTtcXG5jb25zdCBURVhUX1RPX0NFTlRFUl9TTkFQX1RIUkVTSE9MRCA9IDMwO1xcbmNvbnN0IFNISUZUX0xPQ0tJTkdfQU5HTEUgPSBNYXRoLlBJIC8gMTI7XFxuY29uc3QgQ1VSU09SX1RZUEUgPSB7XFxuICAgIFRFWFQ6IFxcXCJ0ZXh0XFxcIixcXG4gICAgQ1JPU1NIQUlSOiBcXFwiY3Jvc3NoYWlyXFxcIixcXG4gICAgR1JBQkJJTkc6IFxcXCJncmFiYmluZ1xcXCIsXFxuICAgIEdSQUI6IFxcXCJncmFiXFxcIixcXG4gICAgUE9JTlRFUjogXFxcInBvaW50ZXJcXFwiLFxcbiAgICBNT1ZFOiBcXFwibW92ZVxcXCIsXFxuICAgIEFVVE86IFxcXCJcXFwiLFxcbn07XFxuY29uc3QgUE9JTlRFUl9CVVRUT04gPSB7XFxuICAgIE1BSU46IDAsXFxuICAgIFdIRUVMOiAxLFxcbiAgICBTRUNPTkRBUlk6IDIsXFxuICAgIFRPVUNIOiAtMSxcXG59O1xcbnZhciBFVkVOVDtcXG4oZnVuY3Rpb24gKEVWRU5UKSB7XFxuICAgIEVWRU5UW1xcXCJDT1BZXFxcIl0gPSBcXFwiY29weVxcXCI7XFxuICAgIEVWRU5UW1xcXCJQQVNURVxcXCJdID0gXFxcInBhc3RlXFxcIjtcXG4gICAgRVZFTlRbXFxcIkNVVFxcXCJdID0gXFxcImN1dFxcXCI7XFxuICAgIEVWRU5UW1xcXCJLRVlET1dOXFxcIl0gPSBcXFwia2V5ZG93blxcXCI7XFxuICAgIEVWRU5UW1xcXCJLRVlVUFxcXCJdID0gXFxcImtleXVwXFxcIjtcXG4gICAgRVZFTlRbXFxcIk1PVVNFX01PVkVcXFwiXSA9IFxcXCJtb3VzZW1vdmVcXFwiO1xcbiAgICBFVkVOVFtcXFwiUkVTSVpFXFxcIl0gPSBcXFwicmVzaXplXFxcIjtcXG4gICAgRVZFTlRbXFxcIlVOTE9BRFxcXCJdID0gXFxcInVubG9hZFxcXCI7XFxuICAgIEVWRU5UW1xcXCJGT0NVU1xcXCJdID0gXFxcImZvY3VzXFxcIjtcXG4gICAgRVZFTlRbXFxcIkJMVVJcXFwiXSA9IFxcXCJibHVyXFxcIjtcXG4gICAgRVZFTlRbXFxcIkRSQUdfT1ZFUlxcXCJdID0gXFxcImRyYWdvdmVyXFxcIjtcXG4gICAgRVZFTlRbXFxcIkRST1BcXFwiXSA9IFxcXCJkcm9wXFxcIjtcXG4gICAgRVZFTlRbXFxcIkdFU1RVUkVfRU5EXFxcIl0gPSBcXFwiZ2VzdHVyZWVuZFxcXCI7XFxuICAgIEVWRU5UW1xcXCJCRUZPUkVfVU5MT0FEXFxcIl0gPSBcXFwiYmVmb3JldW5sb2FkXFxcIjtcXG4gICAgRVZFTlRbXFxcIkdFU1RVUkVfU1RBUlRcXFwiXSA9IFxcXCJnZXN0dXJlc3RhcnRcXFwiO1xcbiAgICBFVkVOVFtcXFwiR0VTVFVSRV9DSEFOR0VcXFwiXSA9IFxcXCJnZXN0dXJlY2hhbmdlXFxcIjtcXG4gICAgRVZFTlRbXFxcIlBPSU5URVJfTU9WRVxcXCJdID0gXFxcInBvaW50ZXJtb3ZlXFxcIjtcXG4gICAgRVZFTlRbXFxcIlBPSU5URVJfVVBcXFwiXSA9IFxcXCJwb2ludGVydXBcXFwiO1xcbiAgICBFVkVOVFtcXFwiU1RBVEVfQ0hBTkdFXFxcIl0gPSBcXFwic3RhdGVjaGFuZ2VcXFwiO1xcbiAgICBFVkVOVFtcXFwiV0hFRUxcXFwiXSA9IFxcXCJ3aGVlbFxcXCI7XFxuICAgIEVWRU5UW1xcXCJUT1VDSF9TVEFSVFxcXCJdID0gXFxcInRvdWNoc3RhcnRcXFwiO1xcbiAgICBFVkVOVFtcXFwiVE9VQ0hfRU5EXFxcIl0gPSBcXFwidG91Y2hlbmRcXFwiO1xcbiAgICBFVkVOVFtcXFwiSEFTSENIQU5HRVxcXCJdID0gXFxcImhhc2hjaGFuZ2VcXFwiO1xcbiAgICBFVkVOVFtcXFwiVklTSUJJTElUWV9DSEFOR0VcXFwiXSA9IFxcXCJ2aXNpYmlsaXR5Y2hhbmdlXFxcIjtcXG4gICAgRVZFTlRbXFxcIlNDUk9MTFxcXCJdID0gXFxcInNjcm9sbFxcXCI7XFxuICAgIC8vIGN1c3RvbSBldmVudHNcXG4gICAgRVZFTlRbXFxcIkVYQ0FMSURSQVdfTElOS1xcXCJdID0gXFxcImV4Y2FsaWRyYXctbGlua1xcXCI7XFxufSkoRVZFTlQgfHwgKEVWRU5UID0ge30pKTtcXG5jb25zdCBFTlYgPSB7XFxuICAgIFRFU1Q6IFxcXCJ0ZXN0XFxcIixcXG4gICAgREVWRUxPUE1FTlQ6IFxcXCJkZXZlbG9wbWVudFxcXCIsXFxufTtcXG5jb25zdCBDTEFTU0VTID0ge1xcbiAgICBTSEFQRV9BQ1RJT05TX01FTlU6IFxcXCJBcHAtbWVudV9fbGVmdFxcXCIsXFxufTtcXG4vLyAxLWJhc2VkIGluIGNhc2Ugd2UgZXZlciBkbyBgaWYoZWxlbWVudC5mb250RmFtaWx5KWBcXG5jb25zdCBGT05UX0ZBTUlMWSA9IHtcXG4gICAgVmlyZ2lsOiAxLFxcbiAgICBIZWx2ZXRpY2E6IDIsXFxuICAgIENhc2NhZGlhOiAzLFxcbn07XFxuY29uc3QgVEhFTUUgPSB7XFxuICAgIExJR0hUOiBcXFwibGlnaHRcXFwiLFxcbiAgICBEQVJLOiBcXFwiZGFya1xcXCIsXFxufTtcXG5jb25zdCBXSU5ET1dTX0VNT0pJX0ZBTExCQUNLX0ZPTlQgPSBcXFwiU2Vnb2UgVUkgRW1vamlcXFwiO1xcbmNvbnN0IERFRkFVTFRfRk9OVF9TSVpFID0gMjA7XFxuY29uc3QgREVGQVVMVF9GT05UX0ZBTUlMWSA9IEZPTlRfRkFNSUxZLlZpcmdpbDtcXG5jb25zdCBERUZBVUxUX1RFWFRfQUxJR04gPSBcXFwibGVmdFxcXCI7XFxuY29uc3QgREVGQVVMVF9WRVJUSUNBTF9BTElHTiA9IFxcXCJ0b3BcXFwiO1xcbmNvbnN0IERFRkFVTFRfVkVSU0lPTiA9IFxcXCJ7dmVyc2lvbn1cXFwiO1xcbmNvbnN0IENBTlZBU19PTkxZX0FDVElPTlMgPSBbXFxcInNlbGVjdEFsbFxcXCJdO1xcbmNvbnN0IEdSSURfU0laRSA9IDIwOyAvLyBUT0RPIG1ha2UgaXQgY29uZmlndXJhYmxlP1xcbmNvbnN0IE1JTUVfVFlQRVMgPSB7XFxuICAgIGV4Y2FsaWRyYXc6IFxcXCJhcHBsaWNhdGlvbi92bmQuZXhjYWxpZHJhdytqc29uXFxcIixcXG4gICAgZXhjYWxpZHJhd2xpYjogXFxcImFwcGxpY2F0aW9uL3ZuZC5leGNhbGlkcmF3bGliK2pzb25cXFwiLFxcbiAgICBqc29uOiBcXFwiYXBwbGljYXRpb24vanNvblxcXCIsXFxuICAgIHN2ZzogXFxcImltYWdlL3N2Zyt4bWxcXFwiLFxcbiAgICBwbmc6IFxcXCJpbWFnZS9wbmdcXFwiLFxcbiAgICBqcGc6IFxcXCJpbWFnZS9qcGVnXFxcIixcXG4gICAgZ2lmOiBcXFwiaW1hZ2UvZ2lmXFxcIixcXG4gICAgYmluYXJ5OiBcXFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXFxcIixcXG59O1xcbmNvbnN0IEVYUE9SVF9EQVRBX1RZUEVTID0ge1xcbiAgICBleGNhbGlkcmF3OiBcXFwiZXhjYWxpZHJhd1xcXCIsXFxuICAgIGV4Y2FsaWRyYXdDbGlwYm9hcmQ6IFxcXCJleGNhbGlkcmF3L2NsaXBib2FyZFxcXCIsXFxuICAgIGV4Y2FsaWRyYXdMaWJyYXJ5OiBcXFwiZXhjYWxpZHJhd2xpYlxcXCIsXFxufTtcXG5jb25zdCBFWFBPUlRfU09VUkNFID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcXG4vLyB0aW1lIGluIG1pbGxpc2Vjb25kc1xcbmNvbnN0IElNQUdFX1JFTkRFUl9USU1FT1VUID0gNTAwO1xcbmNvbnN0IFRBUF9UV0lDRV9USU1FT1VUID0gMzAwO1xcbmNvbnN0IFRPVUNIX0NUWF9NRU5VX1RJTUVPVVQgPSA1MDA7XFxuY29uc3QgVElUTEVfVElNRU9VVCA9IDEwMDAwO1xcbmNvbnN0IFRPQVNUX1RJTUVPVVQgPSA1MDAwO1xcbmNvbnN0IFZFUlNJT05fVElNRU9VVCA9IDMwMDAwO1xcbmNvbnN0IFNDUk9MTF9USU1FT1VUID0gMTAwO1xcbmNvbnN0IFpPT01fU1RFUCA9IDAuMTtcXG5jb25zdCBIWVBFUkxJTktfVE9PTFRJUF9ERUxBWSA9IDMwMDtcXG4vLyBSZXBvcnQgYSB1c2VyIGluYWN0aXZlIGFmdGVyIElETEVfVEhSRVNIT0xEIG1pbGxpc2Vjb25kc1xcbmNvbnN0IElETEVfVEhSRVNIT0xEID0gNjAwMDA7XFxuLy8gUmVwb3J0IGEgdXNlciBhY3RpdmUgZWFjaCBBQ1RJVkVfVEhSRVNIT0xEIG1pbGxpc2Vjb25kc1xcbmNvbnN0IEFDVElWRV9USFJFU0hPTEQgPSAzMDAwO1xcbmNvbnN0IE1PREVTID0ge1xcbiAgICBWSUVXOiBcXFwidmlld01vZGVcXFwiLFxcbiAgICBaRU46IFxcXCJ6ZW5Nb2RlXFxcIixcXG4gICAgR1JJRDogXFxcImdyaWRNb2RlXFxcIixcXG59O1xcbmNvbnN0IFRIRU1FX0ZJTFRFUiA9IChfY3NzX3ZhcmlhYmxlc19tb2R1bGVfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQoKS50aGVtZUZpbHRlcik7XFxuY29uc3QgVVJMX1FVRVJZX0tFWVMgPSB7XFxuICAgIGFkZExpYnJhcnk6IFxcXCJhZGRMaWJyYXJ5XFxcIixcXG59O1xcbmNvbnN0IFVSTF9IQVNIX0tFWVMgPSB7XFxuICAgIGFkZExpYnJhcnk6IFxcXCJhZGRMaWJyYXJ5XFxcIixcXG59O1xcbmNvbnN0IERFRkFVTFRfVUlfT1BUSU9OUyA9IHtcXG4gICAgY2FudmFzQWN0aW9uczoge1xcbiAgICAgICAgY2hhbmdlVmlld0JhY2tncm91bmRDb2xvcjogdHJ1ZSxcXG4gICAgICAgIGNsZWFyQ2FudmFzOiB0cnVlLFxcbiAgICAgICAgZXhwb3J0OiB7IHNhdmVGaWxlVG9EaXNrOiB0cnVlIH0sXFxuICAgICAgICBsb2FkU2NlbmU6IHRydWUsXFxuICAgICAgICBzYXZlVG9BY3RpdmVGaWxlOiB0cnVlLFxcbiAgICAgICAgdGhlbWU6IHRydWUsXFxuICAgICAgICBzYXZlQXNJbWFnZTogdHJ1ZSxcXG4gICAgfSxcXG59O1xcbmNvbnN0IE1RX01BWF9XSURUSF9QT1JUUkFJVCA9IDczMDtcXG5jb25zdCBNUV9NQVhfV0lEVEhfTEFORFNDQVBFID0gMTAwMDtcXG5jb25zdCBNUV9NQVhfSEVJR0hUX0xBTkRTQ0FQRSA9IDUwMDtcXG5jb25zdCBNQVhfREVDSU1BTFNfRk9SX1NWR19FWFBPUlQgPSAyO1xcbmNvbnN0IEVYUE9SVF9TQ0FMRVMgPSBbMSwgMiwgM107XFxuY29uc3QgREVGQVVMVF9FWFBPUlRfUEFERElORyA9IDEwOyAvLyBweFxcbmNvbnN0IERFRkFVTFRfTUFYX0lNQUdFX1dJRFRIX09SX0hFSUdIVCA9IDE0NDA7XFxuY29uc3QgQUxMT1dFRF9JTUFHRV9NSU1FX1RZUEVTID0gW1xcbiAgICBNSU1FX1RZUEVTLnBuZyxcXG4gICAgTUlNRV9UWVBFUy5qcGcsXFxuICAgIE1JTUVfVFlQRVMuc3ZnLFxcbiAgICBNSU1FX1RZUEVTLmdpZixcXG5dO1xcbmNvbnN0IE1BWF9BTExPV0VEX0ZJTEVfQllURVMgPSAyICogMTAyNCAqIDEwMjQ7XFxuY29uc3QgU1ZHX05TID0gXFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIjtcXG5jb25zdCBFTkNSWVBUSU9OX0tFWV9CSVRTID0gMTI4O1xcbmNvbnN0IFZFUlNJT05TID0ge1xcbiAgICBleGNhbGlkcmF3OiAyLFxcbiAgICBleGNhbGlkcmF3TGlicmFyeTogMixcXG59O1xcbmNvbnN0IEJPVU5EX1RFWFRfUEFERElORyA9IDU7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZZMjl1YzNSaGJuUnpMblJ6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJRWFZFTzBGQlNXaEVMRTFCUVUwc1VVRkJVU3hIUVVGSExGbEJRVmtzUTBGQlF6dEJRVVU1UWl4TlFVRk5MR3RDUVVGclFpeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRMRXRCUVVzN1FVRkRjRU1zVFVGQlRTeHpRa0ZCYzBJc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTzBGQlEzWkRMRTFCUVUwc09FSkJRVGhDTEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUTNwRExFMUJRVTBzZDBKQlFYZENMRWRCUVVjc1EwRkJReXhEUVVGRE8wRkJRMjVETEUxQlFVMHNOa0pCUVRaQ0xFZEJRVWNzUlVGQlJTeERRVUZETzBGQlEzcERMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU03UVVGRGVrTXNUVUZCVFN4WFFVRlhMRWRCUVVjN1NVRkRla0lzU1VGQlNTeEZRVUZGTEUxQlFVMDdTVUZEV2l4VFFVRlRMRVZCUVVVc1YwRkJWenRKUVVOMFFpeFJRVUZSTEVWQlFVVXNWVUZCVlR0SlFVTndRaXhKUVVGSkxFVkJRVVVzVFVGQlRUdEpRVU5hTEU5QlFVOHNSVUZCUlN4VFFVRlRPMGxCUTJ4Q0xFbEJRVWtzUlVGQlJTeE5RVUZOTzBsQlExb3NTVUZCU1N4RlFVRkZMRVZCUVVVN1EwRkRWQ3hEUVVGRE8wRkJRMHNzVFVGQlRTeGpRVUZqTEVkQlFVYzdTVUZETlVJc1NVRkJTU3hGUVVGRkxFTkJRVU03U1VGRFVDeExRVUZMTEVWQlFVVXNRMEZCUXp0SlFVTlNMRk5CUVZNc1JVRkJSU3hEUVVGRE8wbEJRMW9zUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXp0RFFVTkVMRU5CUVVNN1FVRkZXQ3hKUVVGWkxFdEJORUpZTzBGQk5VSkVMRmRCUVZrc1MwRkJTenRKUVVObUxITkNRVUZoTzBsQlEySXNkMEpCUVdVN1NVRkRaaXh2UWtGQlZ6dEpRVU5ZTERSQ1FVRnRRanRKUVVOdVFpeDNRa0ZCWlR0SlFVTm1MR2xEUVVGM1FqdEpRVU40UWl3d1FrRkJhVUk3U1VGRGFrSXNNRUpCUVdsQ08wbEJRMnBDTEhkQ1FVRmxPMGxCUTJZc2MwSkJRV0U3U1VGRFlpd3JRa0ZCYzBJN1NVRkRkRUlzYzBKQlFXRTdTVUZEWWl4dFEwRkJNRUk3U1VGRE1VSXNkVU5CUVRoQ08wbEJRemxDTEhWRFFVRTRRanRKUVVNNVFpeDVRMEZCWjBNN1NVRkRhRU1zY1VOQlFUUkNPMGxCUXpWQ0xHbERRVUYzUWp0SlFVTjRRaXh4UTBGQk5FSTdTVUZETlVJc2QwSkJRV1U3U1VGRFppeHRRMEZCTUVJN1NVRkRNVUlzSzBKQlFYTkNPMGxCUTNSQ0xHdERRVUY1UWp0SlFVTjZRaXdyUTBGQmMwTTdTVUZEZEVNc01FSkJRV2xDTzBsQlEycENMR2RDUVVGblFqdEpRVU5vUWl3MFEwRkJiVU03UVVGRGNrTXNRMEZCUXl4RlFUVkNWeXhMUVVGTExFdEJRVXdzUzBGQlN5eFJRVFJDYUVJN1FVRkZUU3hOUVVGTkxFZEJRVWNzUjBGQlJ6dEpRVU5xUWl4SlFVRkpMRVZCUVVVc1RVRkJUVHRKUVVOYUxGZEJRVmNzUlVGQlJTeGhRVUZoTzBOQlF6TkNMRU5CUVVNN1FVRkZTeXhOUVVGTkxFOUJRVThzUjBGQlJ6dEpRVU55UWl4clFrRkJhMElzUlVGQlJTeG5Ra0ZCWjBJN1EwRkRja01zUTBGQlF6dEJRVVZHTEhORVFVRnpSRHRCUVVNdlF5eE5RVUZOTEZkQlFWY3NSMEZCUnp0SlFVTjZRaXhOUVVGTkxFVkJRVVVzUTBGQlF6dEpRVU5VTEZOQlFWTXNSVUZCUlN4RFFVRkRPMGxCUTFvc1VVRkJVU3hGUVVGRkxFTkJRVU03UTBGRFdpeERRVUZETzBGQlJVc3NUVUZCVFN4TFFVRkxMRWRCUVVjN1NVRkRia0lzUzBGQlN5eEZRVUZGTEU5QlFVODdTVUZEWkN4SlFVRkpMRVZCUVVVc1RVRkJUVHREUVVOaUxFTkJRVU03UVVGRlN5eE5RVUZOTERKQ1FVRXlRaXhIUVVGSExHZENRVUZuUWl4RFFVRkRPMEZCUlhKRUxFMUJRVTBzYVVKQlFXbENMRWRCUVVjc1JVRkJSU3hEUVVGRE8wRkJRemRDTEUxQlFVMHNiVUpCUVcxQ0xFZEJRWEZDTEZkQlFWY3NRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkRha1VzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhOUVVGTkxFTkJRVU03UVVGRGJFTXNUVUZCVFN4elFrRkJjMElzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZEY2tNc1RVRkJUU3hsUVVGbExFZEJRVWNzVjBGQlZ5eERRVUZETzBGQlJYQkRMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRCUVVVeFF5eE5RVUZOTEZOQlFWTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJReXcyUWtGQk5rSTdRVUZGYmtRc1RVRkJUU3hWUVVGVkxFZEJRVWM3U1VGRGVFSXNWVUZCVlN4RlFVRkZMR2xEUVVGcFF6dEpRVU0zUXl4aFFVRmhMRVZCUVVVc2IwTkJRVzlETzBsQlEyNUVMRWxCUVVrc1JVRkJSU3hyUWtGQmEwSTdTVUZEZUVJc1IwRkJSeXhGUVVGRkxHVkJRV1U3U1VGRGNFSXNSMEZCUnl4RlFVRkZMRmRCUVZjN1NVRkRhRUlzUjBGQlJ5eEZRVUZGTEZsQlFWazdTVUZEYWtJc1IwRkJSeXhGUVVGRkxGZEJRVmM3U1VGRGFFSXNUVUZCVFN4RlFVRkZMREJDUVVFd1FqdERRVU14UWl4RFFVRkRPMEZCUlVvc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnp0SlFVTXZRaXhWUVVGVkxFVkJRVVVzV1VGQldUdEpRVU40UWl4dFFrRkJiVUlzUlVGQlJTeHpRa0ZCYzBJN1NVRkRNME1zYVVKQlFXbENMRVZCUVVVc1pVRkJaVHREUVVNeFFpeERRVUZETzBGQlJVb3NUVUZCVFN4aFFVRmhMRWRCUVVjc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZGY0VRc2RVSkJRWFZDTzBGQlEyaENMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NSMEZCUnl4RFFVRkRPMEZCUTJwRExFMUJRVTBzYVVKQlFXbENMRWRCUVVjc1IwRkJSeXhEUVVGRE8wRkJRemxDTEUxQlFVMHNjMEpCUVhOQ0xFZEJRVWNzUjBGQlJ5eERRVUZETzBGQlEyNURMRTFCUVUwc1lVRkJZU3hIUVVGSExFdEJRVXNzUTBGQlF6dEJRVU0xUWl4TlFVRk5MR0ZCUVdFc1IwRkJSeXhKUVVGSkxFTkJRVU03UVVGRE0wSXNUVUZCVFN4bFFVRmxMRWRCUVVjc1MwRkJTeXhEUVVGRE8wRkJRemxDTEUxQlFVMHNZMEZCWXl4SFFVRkhMRWRCUVVjc1EwRkJRenRCUVVNelFpeE5RVUZOTEZOQlFWTXNSMEZCUnl4SFFVRkhMRU5CUVVNN1FVRkRkRUlzVFVGQlRTeDFRa0ZCZFVJc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRk0wTXNNa1JCUVRKRU8wRkJRM0JFTEUxQlFVMHNZMEZCWXl4SFFVRkhMRXRCUVUwc1EwRkJRenRCUVVOeVF5d3dSRUZCTUVRN1FVRkRia1FzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhKUVVGTExFTkJRVU03UVVGRkwwSXNUVUZCVFN4TFFVRkxMRWRCUVVjN1NVRkRia0lzU1VGQlNTeEZRVUZGTEZWQlFWVTdTVUZEYUVJc1IwRkJSeXhGUVVGRkxGTkJRVk03U1VGRFpDeEpRVUZKTEVWQlFVVXNWVUZCVlR0RFFVTnFRaXhEUVVGRE8wRkJSVXNzVFVGQlRTeFpRVUZaTEVkQlFVY3NLMFZCUVhkQ0xFTkJRVU03UVVGRk9VTXNUVUZCVFN4alFVRmpMRWRCUVVjN1NVRkROVUlzVlVGQlZTeEZRVUZGTEZsQlFWazdRMEZEYUVJc1EwRkJRenRCUVVWS0xFMUJRVTBzWVVGQllTeEhRVUZITzBsQlF6TkNMRlZCUVZVc1JVRkJSU3haUVVGWk8wTkJRMmhDTEVOQlFVTTdRVUZGU2l4TlFVRk5MR3RDUVVGclFpeEhRVUV3UWp0SlFVTjJSQ3hoUVVGaExFVkJRVVU3VVVGRFlpeDVRa0ZCZVVJc1JVRkJSU3hKUVVGSk8xRkJReTlDTEZkQlFWY3NSVUZCUlN4SlFVRkpPMUZCUTJwQ0xFMUJRVTBzUlVGQlJTeEZRVUZGTEdOQlFXTXNSVUZCUlN4SlFVRkpMRVZCUVVVN1VVRkRhRU1zVTBGQlV5eEZRVUZGTEVsQlFVazdVVUZEWml4blFrRkJaMElzUlVGQlJTeEpRVUZKTzFGQlEzUkNMRXRCUVVzc1JVRkJSU3hKUVVGSk8xRkJRMWdzVjBGQlZ5eEZRVUZGTEVsQlFVazdTMEZEYkVJN1EwRkRSaXhEUVVGRE8wRkJSVXNzVFVGQlRTeHhRa0ZCY1VJc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRGJFTXNUVUZCVFN4elFrRkJjMElzUjBGQlJ5eEpRVUZKTEVOQlFVTTdRVUZEY0VNc1RVRkJUU3gxUWtGQmRVSXNSMEZCUnl4SFFVRkhMRU5CUVVNN1FVRkZjRU1zVFVGQlRTd3lRa0ZCTWtJc1IwRkJSeXhEUVVGRExFTkJRVU03UVVGRmRFTXNUVUZCVFN4aFFVRmhMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJoRExFMUJRVTBzYzBKQlFYTkNMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU1zUzBGQlN6dEJRVVY0UXl4TlFVRk5MR2xEUVVGcFF5eEhRVUZITEVsQlFVa3NRMEZCUXp0QlFVVXZReXhOUVVGTkxIZENRVUYzUWl4SFFVRkhPMGxCUTNSRExGVkJRVlVzUTBGQlF5eEhRVUZITzBsQlEyUXNWVUZCVlN4RFFVRkRMRWRCUVVjN1NVRkRaQ3hWUVVGVkxFTkJRVU1zUjBGQlJ6dEpRVU5rTEZWQlFWVXNRMEZCUXl4SFFVRkhPME5CUTA0c1EwRkJRenRCUVVWS0xFMUJRVTBzYzBKQlFYTkNMRWRCUVVjc1EwRkJReXhIUVVGSExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTTdRVUZGTDBNc1RVRkJUU3hOUVVGTkxFZEJRVWNzTkVKQlFUUkNMRU5CUVVNN1FVRkZOVU1zVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRmFFTXNUVUZCVFN4UlFVRlJMRWRCUVVjN1NVRkRkRUlzVlVGQlZTeEZRVUZGTEVOQlFVTTdTVUZEWWl4cFFrRkJhVUlzUlVGQlJTeERRVUZETzBOQlExb3NRMEZCUXp0QlFVVktMRTFCUVUwc2EwSkJRV3RDTEVkQlFVY3NRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJOdmJuTjBZVzUwY3k1MGN6ODJNalUwSWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCamMzTldZWEpwWVdKc1pYTWdabkp2YlNCY0lpNHZZM056TDNaaGNtbGhZbXhsY3k1dGIyUjFiR1V1YzJOemMxd2lPMXh1YVcxd2IzSjBJSHNnUVhCd1VISnZjSE1nZlNCbWNtOXRJRndpTGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1JtOXVkRVpoYldsc2VWWmhiSFZsY3lCOUlHWnliMjBnWENJdUwyVnNaVzFsYm5RdmRIbHdaWE5jSWp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUVGUVVGOU9RVTFGSUQwZ1hDSkZlR05oYkdsa2NtRjNYQ0k3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JFVWtGSFIwbE9SMTlVU0ZKRlUwaFBURVFnUFNBeE1Ec2dMeThnY0hoY2JtVjRjRzl5ZENCamIyNXpkQ0JNU1U1RlgwTlBUa1pKVWsxZlZFaFNSVk5JVDB4RUlEMGdPRHNnTHk4Z2NIaGNibVY0Y0c5eWRDQmpiMjV6ZENCRlRFVk5SVTVVWDFOSVNVWlVYMVJTUVU1VFRFRlVSVjlCVFU5VlRsUWdQU0ExTzF4dVpYaHdiM0owSUdOdmJuTjBJRVZNUlUxRlRsUmZWRkpCVGxOTVFWUkZYMEZOVDFWT1ZDQTlJREU3WEc1bGVIQnZjblFnWTI5dWMzUWdWRVZZVkY5VVQxOURSVTVVUlZKZlUwNUJVRjlVU0ZKRlUwaFBURVFnUFNBek1EdGNibVY0Y0c5eWRDQmpiMjV6ZENCVFNFbEdWRjlNVDBOTFNVNUhYMEZPUjB4RklEMGdUV0YwYUM1UVNTQXZJREV5TzF4dVpYaHdiM0owSUdOdmJuTjBJRU5WVWxOUFVsOVVXVkJGSUQwZ2UxeHVJQ0JVUlZoVU9pQmNJblJsZUhSY0lpeGNiaUFnUTFKUFUxTklRVWxTT2lCY0ltTnliM056YUdGcGNsd2lMRnh1SUNCSFVrRkNRa2xPUnpvZ1hDSm5jbUZpWW1sdVoxd2lMRnh1SUNCSFVrRkNPaUJjSW1keVlXSmNJaXhjYmlBZ1VFOUpUbFJGVWpvZ1hDSndiMmx1ZEdWeVhDSXNYRzRnSUUxUFZrVTZJRndpYlc5MlpWd2lMRnh1SUNCQlZWUlBPaUJjSWx3aUxGeHVmVHRjYm1WNGNHOXlkQ0JqYjI1emRDQlFUMGxPVkVWU1gwSlZWRlJQVGlBOUlIdGNiaUFnVFVGSlRqb2dNQ3hjYmlBZ1YwaEZSVXc2SURFc1hHNGdJRk5GUTA5T1JFRlNXVG9nTWl4Y2JpQWdWRTlWUTBnNklDMHhMRnh1ZlNCaGN5QmpiMjV6ZER0Y2JseHVaWGh3YjNKMElHVnVkVzBnUlZaRlRsUWdlMXh1SUNCRFQxQlpJRDBnWENKamIzQjVYQ0lzWEc0Z0lGQkJVMVJGSUQwZ1hDSndZWE4wWlZ3aUxGeHVJQ0JEVlZRZ1BTQmNJbU4xZEZ3aUxGeHVJQ0JMUlZsRVQxZE9JRDBnWENKclpYbGtiM2R1WENJc1hHNGdJRXRGV1ZWUUlEMGdYQ0pyWlhsMWNGd2lMRnh1SUNCTlQxVlRSVjlOVDFaRklEMGdYQ0p0YjNWelpXMXZkbVZjSWl4Y2JpQWdVa1ZUU1ZwRklEMGdYQ0p5WlhOcGVtVmNJaXhjYmlBZ1ZVNU1UMEZFSUQwZ1hDSjFibXh2WVdSY0lpeGNiaUFnUms5RFZWTWdQU0JjSW1adlkzVnpYQ0lzWEc0Z0lFSk1WVklnUFNCY0ltSnNkWEpjSWl4Y2JpQWdSRkpCUjE5UFZrVlNJRDBnWENKa2NtRm5iM1psY2x3aUxGeHVJQ0JFVWs5UUlEMGdYQ0prY205d1hDSXNYRzRnSUVkRlUxUlZVa1ZmUlU1RUlEMGdYQ0puWlhOMGRYSmxaVzVrWENJc1hHNGdJRUpGUms5U1JWOVZUa3hQUVVRZ1BTQmNJbUpsWm05eVpYVnViRzloWkZ3aUxGeHVJQ0JIUlZOVVZWSkZYMU5VUVZKVUlEMGdYQ0puWlhOMGRYSmxjM1JoY25SY0lpeGNiaUFnUjBWVFZGVlNSVjlEU0VGT1IwVWdQU0JjSW1kbGMzUjFjbVZqYUdGdVoyVmNJaXhjYmlBZ1VFOUpUbFJGVWw5TlQxWkZJRDBnWENKd2IybHVkR1Z5Ylc5MlpWd2lMRnh1SUNCUVQwbE9WRVZTWDFWUUlEMGdYQ0p3YjJsdWRHVnlkWEJjSWl4Y2JpQWdVMVJCVkVWZlEwaEJUa2RGSUQwZ1hDSnpkR0YwWldOb1lXNW5aVndpTEZ4dUlDQlhTRVZGVENBOUlGd2lkMmhsWld4Y0lpeGNiaUFnVkU5VlEwaGZVMVJCVWxRZ1BTQmNJblJ2ZFdOb2MzUmhjblJjSWl4Y2JpQWdWRTlWUTBoZlJVNUVJRDBnWENKMGIzVmphR1Z1WkZ3aUxGeHVJQ0JJUVZOSVEwaEJUa2RGSUQwZ1hDSm9ZWE5vWTJoaGJtZGxYQ0lzWEc0Z0lGWkpVMGxDU1V4SlZGbGZRMGhCVGtkRklEMGdYQ0oyYVhOcFltbHNhWFI1WTJoaGJtZGxYQ0lzWEc0Z0lGTkRVazlNVENBOUlGd2ljMk55YjJ4c1hDSXNYRzRnSUM4dklHTjFjM1J2YlNCbGRtVnVkSE5jYmlBZ1JWaERRVXhKUkZKQlYxOU1TVTVMSUQwZ1hDSmxlR05oYkdsa2NtRjNMV3hwYm10Y0lpeGNibjFjYmx4dVpYaHdiM0owSUdOdmJuTjBJRVZPVmlBOUlIdGNiaUFnVkVWVFZEb2dYQ0owWlhOMFhDSXNYRzRnSUVSRlZrVk1UMUJOUlU1VU9pQmNJbVJsZG1Wc2IzQnRaVzUwWENJc1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdRMHhCVTFORlV5QTlJSHRjYmlBZ1UwaEJVRVZmUVVOVVNVOU9VMTlOUlU1Vk9pQmNJa0Z3Y0MxdFpXNTFYMTlzWldaMFhDSXNYRzU5TzF4dVhHNHZMeUF4TFdKaGMyVmtJR2x1SUdOaGMyVWdkMlVnWlhabGNpQmtieUJnYVdZb1pXeGxiV1Z1ZEM1bWIyNTBSbUZ0YVd4NUtXQmNibVY0Y0c5eWRDQmpiMjV6ZENCR1QwNVVYMFpCVFVsTVdTQTlJSHRjYmlBZ1ZtbHlaMmxzT2lBeExGeHVJQ0JJWld4MlpYUnBZMkU2SURJc1hHNGdJRU5oYzJOaFpHbGhPaUF6TEZ4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElGUklSVTFGSUQwZ2UxeHVJQ0JNU1VkSVZEb2dYQ0pzYVdkb2RGd2lMRnh1SUNCRVFWSkxPaUJjSW1SaGNtdGNJaXhjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCWFNVNUVUMWRUWDBWTlQwcEpYMFpCVEV4Q1FVTkxYMFpQVGxRZ1BTQmNJbE5sWjI5bElGVkpJRVZ0YjJwcFhDSTdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQkVSVVpCVlV4VVgwWlBUbFJmVTBsYVJTQTlJREl3TzF4dVpYaHdiM0owSUdOdmJuTjBJRVJGUmtGVlRGUmZSazlPVkY5R1FVMUpURms2SUVadmJuUkdZVzFwYkhsV1lXeDFaWE1nUFNCR1QwNVVYMFpCVFVsTVdTNVdhWEpuYVd3N1hHNWxlSEJ2Y25RZ1kyOXVjM1FnUkVWR1FWVk1WRjlVUlZoVVgwRk1TVWRPSUQwZ1hDSnNaV1owWENJN1hHNWxlSEJ2Y25RZ1kyOXVjM1FnUkVWR1FWVk1WRjlXUlZKVVNVTkJURjlCVEVsSFRpQTlJRndpZEc5d1hDSTdYRzVsZUhCdmNuUWdZMjl1YzNRZ1JFVkdRVlZNVkY5V1JWSlRTVTlPSUQwZ1hDSjdkbVZ5YzJsdmJuMWNJanRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRU5CVGxaQlUxOVBUa3haWDBGRFZFbFBUbE1nUFNCYlhDSnpaV3hsWTNSQmJHeGNJbDA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JIVWtsRVgxTkpXa1VnUFNBeU1Ec2dMeThnVkU5RVR5QnRZV3RsSUdsMElHTnZibVpwWjNWeVlXSnNaVDljYmx4dVpYaHdiM0owSUdOdmJuTjBJRTFKVFVWZlZGbFFSVk1nUFNCN1hHNGdJR1Y0WTJGc2FXUnlZWGM2SUZ3aVlYQndiR2xqWVhScGIyNHZkbTVrTG1WNFkyRnNhV1J5WVhjcmFuTnZibHdpTEZ4dUlDQmxlR05oYkdsa2NtRjNiR2xpT2lCY0ltRndjR3hwWTJGMGFXOXVMM1p1WkM1bGVHTmhiR2xrY21GM2JHbGlLMnB6YjI1Y0lpeGNiaUFnYW5OdmJqb2dYQ0poY0hCc2FXTmhkR2x2Ymk5cWMyOXVYQ0lzWEc0Z0lITjJaem9nWENKcGJXRm5aUzl6ZG1jcmVHMXNYQ0lzWEc0Z0lIQnVaem9nWENKcGJXRm5aUzl3Ym1kY0lpeGNiaUFnYW5Cbk9pQmNJbWx0WVdkbEwycHdaV2RjSWl4Y2JpQWdaMmxtT2lCY0ltbHRZV2RsTDJkcFpsd2lMRnh1SUNCaWFXNWhjbms2SUZ3aVlYQndiR2xqWVhScGIyNHZiMk4wWlhRdGMzUnlaV0Z0WENJc1hHNTlJR0Z6SUdOdmJuTjBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdSVmhRVDFKVVgwUkJWRUZmVkZsUVJWTWdQU0I3WEc0Z0lHVjRZMkZzYVdSeVlYYzZJRndpWlhoallXeHBaSEpoZDF3aUxGeHVJQ0JsZUdOaGJHbGtjbUYzUTJ4cGNHSnZZWEprT2lCY0ltVjRZMkZzYVdSeVlYY3ZZMnhwY0dKdllYSmtYQ0lzWEc0Z0lHVjRZMkZzYVdSeVlYZE1hV0p5WVhKNU9pQmNJbVY0WTJGc2FXUnlZWGRzYVdKY0lpeGNibjBnWVhNZ1kyOXVjM1E3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JGV0ZCUFVsUmZVMDlWVWtORklEMGdkMmx1Wkc5M0xteHZZMkYwYVc5dUxtOXlhV2RwYmp0Y2JseHVMeThnZEdsdFpTQnBiaUJ0YVd4c2FYTmxZMjl1WkhOY2JtVjRjRzl5ZENCamIyNXpkQ0JKVFVGSFJWOVNSVTVFUlZKZlZFbE5SVTlWVkNBOUlEVXdNRHRjYm1WNGNHOXlkQ0JqYjI1emRDQlVRVkJmVkZkSlEwVmZWRWxOUlU5VlZDQTlJRE13TUR0Y2JtVjRjRzl5ZENCamIyNXpkQ0JVVDFWRFNGOURWRmhmVFVWT1ZWOVVTVTFGVDFWVUlEMGdOVEF3TzF4dVpYaHdiM0owSUdOdmJuTjBJRlJKVkV4RlgxUkpUVVZQVlZRZ1BTQXhNREF3TUR0Y2JtVjRjRzl5ZENCamIyNXpkQ0JVVDBGVFZGOVVTVTFGVDFWVUlEMGdOVEF3TUR0Y2JtVjRjRzl5ZENCamIyNXpkQ0JXUlZKVFNVOU9YMVJKVFVWUFZWUWdQU0F6TURBd01EdGNibVY0Y0c5eWRDQmpiMjV6ZENCVFExSlBURXhmVkVsTlJVOVZWQ0E5SURFd01EdGNibVY0Y0c5eWRDQmpiMjV6ZENCYVQwOU5YMU5VUlZBZ1BTQXdMakU3WEc1bGVIQnZjblFnWTI5dWMzUWdTRmxRUlZKTVNVNUxYMVJQVDB4VVNWQmZSRVZNUVZrZ1BTQXpNREE3WEc1Y2JpOHZJRkpsY0c5eWRDQmhJSFZ6WlhJZ2FXNWhZM1JwZG1VZ1lXWjBaWElnU1VSTVJWOVVTRkpGVTBoUFRFUWdiV2xzYkdselpXTnZibVJ6WEc1bGVIQnZjblFnWTI5dWMzUWdTVVJNUlY5VVNGSkZVMGhQVEVRZ1BTQTJNRjh3TURBN1hHNHZMeUJTWlhCdmNuUWdZU0IxYzJWeUlHRmpkR2wyWlNCbFlXTm9JRUZEVkVsV1JWOVVTRkpGVTBoUFRFUWdiV2xzYkdselpXTnZibVJ6WEc1bGVIQnZjblFnWTI5dWMzUWdRVU5VU1ZaRlgxUklVa1ZUU0U5TVJDQTlJRE5mTURBd08xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1RVOUVSVk1nUFNCN1hHNGdJRlpKUlZjNklGd2lkbWxsZDAxdlpHVmNJaXhjYmlBZ1drVk9PaUJjSW5wbGJrMXZaR1ZjSWl4Y2JpQWdSMUpKUkRvZ1hDSm5jbWxrVFc5a1pWd2lMRnh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUZSSVJVMUZYMFpKVEZSRlVpQTlJR056YzFaaGNtbGhZbXhsY3k1MGFHVnRaVVpwYkhSbGNqdGNibHh1Wlhod2IzSjBJR052Ym5OMElGVlNURjlSVlVWU1dWOUxSVmxUSUQwZ2UxeHVJQ0JoWkdSTWFXSnlZWEo1T2lCY0ltRmtaRXhwWW5KaGNubGNJaXhjYm4wZ1lYTWdZMjl1YzNRN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCVlVreGZTRUZUU0Y5TFJWbFRJRDBnZTF4dUlDQmhaR1JNYVdKeVlYSjVPaUJjSW1Ga1pFeHBZbkpoY25sY0lpeGNibjBnWVhNZ1kyOXVjM1E3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JFUlVaQlZVeFVYMVZKWDA5UVZFbFBUbE02SUVGd2NGQnliM0J6VzF3aVZVbFBjSFJwYjI1elhDSmRJRDBnZTF4dUlDQmpZVzUyWVhOQlkzUnBiMjV6T2lCN1hHNGdJQ0FnWTJoaGJtZGxWbWxsZDBKaFkydG5jbTkxYm1SRGIyeHZjam9nZEhKMVpTeGNiaUFnSUNCamJHVmhja05oYm5aaGN6b2dkSEoxWlN4Y2JpQWdJQ0JsZUhCdmNuUTZJSHNnYzJGMlpVWnBiR1ZVYjBScGMyczZJSFJ5ZFdVZ2ZTeGNiaUFnSUNCc2IyRmtVMk5sYm1VNklIUnlkV1VzWEc0Z0lDQWdjMkYyWlZSdlFXTjBhWFpsUm1sc1pUb2dkSEoxWlN4Y2JpQWdJQ0IwYUdWdFpUb2dkSEoxWlN4Y2JpQWdJQ0J6WVhabFFYTkpiV0ZuWlRvZ2RISjFaU3hjYmlBZ2ZTeGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JOVVY5TlFWaGZWMGxFVkVoZlVFOVNWRkpCU1ZRZ1BTQTNNekE3WEc1bGVIQnZjblFnWTI5dWMzUWdUVkZmVFVGWVgxZEpSRlJJWDB4QlRrUlRRMEZRUlNBOUlERXdNREE3WEc1bGVIQnZjblFnWTI5dWMzUWdUVkZmVFVGWVgwaEZTVWRJVkY5TVFVNUVVME5CVUVVZ1BTQTFNREE3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JOUVZoZlJFVkRTVTFCVEZOZlJrOVNYMU5XUjE5RldGQlBVbFFnUFNBeU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1JWaFFUMUpVWDFORFFVeEZVeUE5SUZzeExDQXlMQ0F6WFR0Y2JtVjRjRzl5ZENCamIyNXpkQ0JFUlVaQlZVeFVYMFZZVUU5U1ZGOVFRVVJFU1U1SElEMGdNVEE3SUM4dklIQjRYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQkVSVVpCVlV4VVgwMUJXRjlKVFVGSFJWOVhTVVJVU0Y5UFVsOUlSVWxIU0ZRZ1BTQXhORFF3TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnUVV4TVQxZEZSRjlKVFVGSFJWOU5TVTFGWDFSWlVFVlRJRDBnVzF4dUlDQk5TVTFGWDFSWlVFVlRMbkJ1Wnl4Y2JpQWdUVWxOUlY5VVdWQkZVeTVxY0djc1hHNGdJRTFKVFVWZlZGbFFSVk11YzNabkxGeHVJQ0JOU1UxRlgxUlpVRVZUTG1kcFppeGNibDBnWVhNZ1kyOXVjM1E3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JOUVZoZlFVeE1UMWRGUkY5R1NVeEZYMEpaVkVWVElEMGdNaUFxSURFd01qUWdLaUF4TURJME8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1UxWkhYMDVUSUQwZ1hDSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMloxd2lPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdSVTVEVWxsUVZFbFBUbDlMUlZsZlFrbFVVeUE5SURFeU9EdGNibHh1Wlhod2IzSjBJR052Ym5OMElGWkZVbE5KVDA1VElEMGdlMXh1SUNCbGVHTmhiR2xrY21GM09pQXlMRnh1SUNCbGVHTmhiR2xrY21GM1RHbGljbUZ5ZVRvZ01peGNibjBnWVhNZ1kyOXVjM1E3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JDVDFWT1JGOVVSVmhVWDFCQlJFUkpUa2NnUFNBMU8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2NvbnN0YW50cy50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vZGF0YS9ibG9iLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9kYXRhL2Jsb2IudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRNaW1lVHlwZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldE1pbWVUeXBlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRGaWxlSGFuZGxlVHlwZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldEZpbGVIYW5kbGVUeXBlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpc0ltYWdlRmlsZUhhbmRsZVR5cGVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpc0ltYWdlRmlsZUhhbmRsZVR5cGUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzSW1hZ2VGaWxlSGFuZGxlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNJbWFnZUZpbGVIYW5kbGUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzU3VwcG9ydGVkSW1hZ2VGaWxlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNTdXBwb3J0ZWRJbWFnZUZpbGUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImxvYWRGcm9tQmxvYlxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGxvYWRGcm9tQmxvYiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibG9hZExpYnJhcnlGcm9tQmxvYlxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGxvYWRMaWJyYXJ5RnJvbUJsb2IpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImNhbnZhc1RvQmxvYlxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGNhbnZhc1RvQmxvYiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2VuZXJhdGVJZEZyb21GaWxlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2VuZXJhdGVJZEZyb21GaWxlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXREYXRhVVJMXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0RGF0YVVSTCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGF0YVVSTFRvRmlsZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGRhdGFVUkxUb0ZpbGUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJlc2l6ZUltYWdlRmlsZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJlc2l6ZUltYWdlRmlsZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiU1ZHU3RyaW5nVG9GaWxlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gU1ZHU3RyaW5nVG9GaWxlKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBuYW5vaWRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIG5hbm9pZCAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25hbm9pZC9pbmRleC5kZXYuanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FwcFN0YXRlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9hcHBTdGF0ZSAqLyBcXFwiLi4vLi4vYXBwU3RhdGUudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29uc3RhbnRzICovIFxcXCIuLi8uLi9jb25zdGFudHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vycm9yc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZXJyb3JzICovIFxcXCIuLi8uLi9lcnJvcnMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZSAqLyBcXFwiLi4vLi4vc2NlbmUvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi91dGlscyAqLyBcXFwiLi4vLi4vdXRpbHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2pzb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vanNvbiAqLyBcXFwiLi4vLi4vZGF0YS9qc29uLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9yZXN0b3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3Jlc3RvcmUgKi8gXFxcIi4uLy4uL2RhdGEvcmVzdG9yZS50c1xcXCIpO1xcbnZhciBfX2F3YWl0ZXIgPSAodW5kZWZpbmVkICYmIHVuZGVmaW5lZC5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XFxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXFxcInRocm93XFxcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcXG4gICAgfSk7XFxufTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBwYXJzZUZpbGVDb250ZW50cyA9IChibG9iKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgbGV0IGNvbnRlbnRzO1xcbiAgICBpZiAoYmxvYi50eXBlID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uTUlNRV9UWVBFUy5wbmcpIHtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgcmV0dXJuIHlpZWxkICh5aWVsZCBQcm9taXNlLmFsbCgvKiEgaW1wb3J0KCkgfCBpbWFnZSAqL1tfX3dlYnBhY2tfcmVxdWlyZV9fLmUoXFxcInZlbmRvclxcXCIpLCBfX3dlYnBhY2tfcmVxdWlyZV9fLmUoXFxcImltYWdlXFxcIildKS50aGVuKF9fd2VicGFja19yZXF1aXJlX18uYmluZChfX3dlYnBhY2tfcmVxdWlyZV9fLCAvKiEgLi9pbWFnZSAqLyBcXFwiLi4vLi4vZGF0YS9pbWFnZS50c1xcXCIpKSkuZGVjb2RlUG5nTWV0YWRhdGEoYmxvYik7XFxuICAgICAgICB9XFxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcXG4gICAgICAgICAgICBpZiAoZXJyb3IubWVzc2FnZSA9PT0gXFxcIklOVkFMSURcXFwiKSB7XFxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb24oKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwiYWxlcnRzLmltYWdlRG9lc05vdENvbnRhaW5TY2VuZVxcXCIpLCBcXFwiRW5jb2RpbmdFcnJvclxcXCIpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbigoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJhbGVydHMuY2Fubm90UmVzdG9yZUZyb21JbWFnZVxcXCIpLCBcXFwiRW5jb2RpbmdFcnJvclxcXCIpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBlbHNlIHtcXG4gICAgICAgIGlmIChcXFwidGV4dFxcXCIgaW4gQmxvYikge1xcbiAgICAgICAgICAgIGNvbnRlbnRzID0geWllbGQgYmxvYi50ZXh0KCk7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICBjb250ZW50cyA9IHlpZWxkIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XFxuICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGJsb2IsIFxcXCJ1dGY4XFxcIik7XFxuICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAocmVhZGVyLnJlYWR5U3RhdGUgPT09IEZpbGVSZWFkZXIuRE9ORSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdCk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoYmxvYi50eXBlID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uTUlNRV9UWVBFUy5zdmcpIHtcXG4gICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgKHlpZWxkIFByb21pc2UuYWxsKC8qISBpbXBvcnQoKSB8IGltYWdlICovW19fd2VicGFja19yZXF1aXJlX18uZShcXFwidmVuZG9yXFxcIiksIF9fd2VicGFja19yZXF1aXJlX18uZShcXFwiaW1hZ2VcXFwiKV0pLnRoZW4oX193ZWJwYWNrX3JlcXVpcmVfXy5iaW5kKF9fd2VicGFja19yZXF1aXJlX18sIC8qISAuL2ltYWdlICovIFxcXCIuLi8uLi9kYXRhL2ltYWdlLnRzXFxcIikpKS5kZWNvZGVTdmdNZXRhZGF0YSh7XFxuICAgICAgICAgICAgICAgICAgICBzdmc6IGNvbnRlbnRzLFxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XFxuICAgICAgICAgICAgICAgIGlmIChlcnJvci5tZXNzYWdlID09PSBcXFwiSU5WQUxJRFxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb24oKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwiYWxlcnRzLmltYWdlRG9lc05vdENvbnRhaW5TY2VuZVxcXCIpLCBcXFwiRW5jb2RpbmdFcnJvclxcXCIpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbigoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJhbGVydHMuY2Fubm90UmVzdG9yZUZyb21JbWFnZVxcXCIpLCBcXFwiRW5jb2RpbmdFcnJvclxcXCIpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiBjb250ZW50cztcXG59KTtcXG5jb25zdCBnZXRNaW1lVHlwZSA9IChibG9iKSA9PiB7XFxuICAgIGxldCBuYW1lO1xcbiAgICBpZiAodHlwZW9mIGJsb2IgPT09IFxcXCJzdHJpbmdcXFwiKSB7XFxuICAgICAgICBuYW1lID0gYmxvYjtcXG4gICAgfVxcbiAgICBlbHNlIHtcXG4gICAgICAgIGlmIChibG9iLnR5cGUpIHtcXG4gICAgICAgICAgICByZXR1cm4gYmxvYi50eXBlO1xcbiAgICAgICAgfVxcbiAgICAgICAgbmFtZSA9IGJsb2IubmFtZSB8fCBcXFwiXFxcIjtcXG4gICAgfVxcbiAgICBpZiAoL1xcXFwuKGV4Y2FsaWRyYXd8anNvbikkLy50ZXN0KG5hbWUpKSB7XFxuICAgICAgICByZXR1cm4gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLk1JTUVfVFlQRVMuanNvbjtcXG4gICAgfVxcbiAgICBlbHNlIGlmICgvXFxcXC5wbmckLy50ZXN0KG5hbWUpKSB7XFxuICAgICAgICByZXR1cm4gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLk1JTUVfVFlQRVMucG5nO1xcbiAgICB9XFxuICAgIGVsc2UgaWYgKC9cXFxcLmpwZT9nJC8udGVzdChuYW1lKSkge1xcbiAgICAgICAgcmV0dXJuIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5NSU1FX1RZUEVTLmpwZztcXG4gICAgfVxcbiAgICBlbHNlIGlmICgvXFxcXC5zdmckLy50ZXN0KG5hbWUpKSB7XFxuICAgICAgICByZXR1cm4gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLk1JTUVfVFlQRVMuc3ZnO1xcbiAgICB9XFxuICAgIHJldHVybiBcXFwiXFxcIjtcXG59O1xcbmNvbnN0IGdldEZpbGVIYW5kbGVUeXBlID0gKGhhbmRsZSkgPT4ge1xcbiAgICB2YXIgX2E7XFxuICAgIGlmICghaGFuZGxlKSB7XFxuICAgICAgICByZXR1cm4gbnVsbDtcXG4gICAgfVxcbiAgICByZXR1cm4gKChfYSA9IGhhbmRsZS5uYW1lLm1hdGNoKC9cXFxcLihqc29ufGV4Y2FsaWRyYXd8cG5nfHN2ZykkLykpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVsxXSkgfHwgbnVsbDtcXG59O1xcbmNvbnN0IGlzSW1hZ2VGaWxlSGFuZGxlVHlwZSA9ICh0eXBlKSA9PiB7XFxuICAgIHJldHVybiB0eXBlID09PSBcXFwicG5nXFxcIiB8fCB0eXBlID09PSBcXFwic3ZnXFxcIjtcXG59O1xcbmNvbnN0IGlzSW1hZ2VGaWxlSGFuZGxlID0gKGhhbmRsZSkgPT4ge1xcbiAgICBjb25zdCB0eXBlID0gZ2V0RmlsZUhhbmRsZVR5cGUoaGFuZGxlKTtcXG4gICAgcmV0dXJuIHR5cGUgPT09IFxcXCJwbmdcXFwiIHx8IHR5cGUgPT09IFxcXCJzdmdcXFwiO1xcbn07XFxuY29uc3QgaXNTdXBwb3J0ZWRJbWFnZUZpbGUgPSAoYmxvYikgPT4ge1xcbiAgICBjb25zdCB7IHR5cGUgfSA9IGJsb2IgfHwge307XFxuICAgIHJldHVybiAoISF0eXBlICYmIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5BTExPV0VEX0lNQUdFX01JTUVfVFlQRVMuaW5jbHVkZXModHlwZSkpO1xcbn07XFxuY29uc3QgbG9hZEZyb21CbG9iID0gKGJsb2IsIFxcbi8qKiBAc2VlIHJlc3RvcmUubG9jYWxBcHBTdGF0ZSAqL1xcbmxvY2FsQXBwU3RhdGUsIGxvY2FsRWxlbWVudHMpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICBjb25zdCBjb250ZW50cyA9IHlpZWxkIHBhcnNlRmlsZUNvbnRlbnRzKGJsb2IpO1xcbiAgICB0cnkge1xcbiAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoY29udGVudHMpO1xcbiAgICAgICAgaWYgKCEoMCxfanNvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmlzVmFsaWRFeGNhbGlkcmF3RGF0YSkoZGF0YSkpIHtcXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwiYWxlcnRzLmNvdWxkTm90TG9hZEludmFsaWRGaWxlXFxcIikpO1xcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKDAsX3Jlc3RvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5yZXN0b3JlKSh7XFxuICAgICAgICAgICAgZWxlbWVudHM6ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uY2xlYXJFbGVtZW50c0ZvckV4cG9ydCkoZGF0YS5lbGVtZW50cyB8fCBbXSksXFxuICAgICAgICAgICAgYXBwU3RhdGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IHRoZW1lOiBsb2NhbEFwcFN0YXRlID09PSBudWxsIHx8IGxvY2FsQXBwU3RhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGxvY2FsQXBwU3RhdGUudGhlbWUsIGZpbGVIYW5kbGU6IGJsb2IuaGFuZGxlIHx8IG51bGwgfSwgKDAsX2FwcFN0YXRlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY2xlYW5BcHBTdGF0ZUZvckV4cG9ydCkoZGF0YS5hcHBTdGF0ZSB8fCB7fSkpLCAobG9jYWxBcHBTdGF0ZVxcbiAgICAgICAgICAgICAgICA/ICgwLF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmNhbGN1bGF0ZVNjcm9sbENlbnRlcikoZGF0YS5lbGVtZW50cyB8fCBbXSwgbG9jYWxBcHBTdGF0ZSwgbnVsbClcXG4gICAgICAgICAgICAgICAgOiB7fSkpLFxcbiAgICAgICAgICAgIGZpbGVzOiBkYXRhLmZpbGVzLFxcbiAgICAgICAgfSwgbG9jYWxBcHBTdGF0ZSwgbG9jYWxFbGVtZW50cyk7XFxuICAgICAgICByZXR1cm4gcmVzdWx0O1xcbiAgICB9XFxuICAgIGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvci5tZXNzYWdlKTtcXG4gICAgICAgIHRocm93IG5ldyBFcnJvcigoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJhbGVydHMuY291bGROb3RMb2FkSW52YWxpZEZpbGVcXFwiKSk7XFxuICAgIH1cXG59KTtcXG5jb25zdCBsb2FkTGlicmFyeUZyb21CbG9iID0gKGJsb2IpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICBjb25zdCBjb250ZW50cyA9IHlpZWxkIHBhcnNlRmlsZUNvbnRlbnRzKGJsb2IpO1xcbiAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShjb250ZW50cyk7XFxuICAgIGlmIChkYXRhLnR5cGUgIT09IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5FWFBPUlRfREFUQV9UWVBFUy5leGNhbGlkcmF3TGlicmFyeSkge1xcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udCkoXFxcImFsZXJ0cy5jb3VsZE5vdExvYWRJbnZhbGlkRmlsZVxcXCIpKTtcXG4gICAgfVxcbiAgICByZXR1cm4gZGF0YTtcXG59KTtcXG5jb25zdCBjYW52YXNUb0Jsb2IgPSAoY2FudmFzKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgY2FudmFzLnRvQmxvYigoYmxvYikgPT4ge1xcbiAgICAgICAgICAgICAgICBpZiAoIWJsb2IpIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QobmV3IF9lcnJvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5DYW52YXNFcnJvcigoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnQpKFxcXCJjYW52YXNFcnJvci5jYW52YXNUb29CaWdcXFwiKSwgXFxcIkNBTlZBU19QT1NTSUJMWV9UT09fQklHXFxcIikpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJlc29sdmUoYmxvYik7XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcXG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xcbiAgICAgICAgfVxcbiAgICB9KTtcXG59KTtcXG4vKiogZ2VuZXJhdGVzIFNIQS0xIGRpZ2VzdCBmcm9tIHN1cHBsaWVkIGZpbGUgKGlmIG5vdCBzdXBwb3J0ZWQsIGZhbGxzIGJhY2tcXG4gICAgdG8gYSA0MC1jaGFyIGJhc2U2NCByYW5kb20gaWQpICovXFxuY29uc3QgZ2VuZXJhdGVJZEZyb21GaWxlID0gKGZpbGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICB0cnkge1xcbiAgICAgICAgY29uc3QgaGFzaEJ1ZmZlciA9IHlpZWxkIHdpbmRvdy5jcnlwdG8uc3VidGxlLmRpZ2VzdChcXFwiU0hBLTFcXFwiLCB5aWVsZCBmaWxlLmFycmF5QnVmZmVyKCkpO1xcbiAgICAgICAgcmV0dXJuICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmJ5dGVzVG9IZXhTdHJpbmcpKG5ldyBVaW50OEFycmF5KGhhc2hCdWZmZXIpKTtcXG4gICAgfVxcbiAgICBjYXRjaCAoZXJyb3IpIHtcXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xcbiAgICAgICAgLy8gbGVuZ3RoIDQwIHRvIGFsaWduIHdpdGggdGhlIEhFWCBsZW5ndGggb2YgU0hBLTEgKHdoaWNoIGlzIDE2MCBiaXQpXFxuICAgICAgICByZXR1cm4gKDAsbmFub2lkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18ubmFub2lkKSg0MCk7XFxuICAgIH1cXG59KTtcXG5jb25zdCBnZXREYXRhVVJMID0gKGZpbGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XFxuICAgICAgICAgICAgY29uc3QgZGF0YVVSTCA9IHJlYWRlci5yZXN1bHQ7XFxuICAgICAgICAgICAgcmVzb2x2ZShkYXRhVVJMKTtcXG4gICAgICAgIH07XFxuICAgICAgICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4gcmVqZWN0KGVycm9yKTtcXG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xcbiAgICB9KTtcXG59KTtcXG5jb25zdCBkYXRhVVJMVG9GaWxlID0gKGRhdGFVUkwsIGZpbGVuYW1lID0gXFxcIlxcXCIpID0+IHtcXG4gICAgY29uc3QgZGF0YUluZGV4U3RhcnQgPSBkYXRhVVJMLmluZGV4T2YoXFxcIixcXFwiKTtcXG4gICAgY29uc3QgYnl0ZVN0cmluZyA9IGF0b2IoZGF0YVVSTC5zbGljZShkYXRhSW5kZXhTdGFydCArIDEpKTtcXG4gICAgY29uc3QgbWltZVR5cGUgPSBkYXRhVVJMLnNsaWNlKDAsIGRhdGFJbmRleFN0YXJ0KS5zcGxpdChcXFwiOlxcXCIpWzFdLnNwbGl0KFxcXCI7XFxcIilbMF07XFxuICAgIGNvbnN0IGFiID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVTdHJpbmcubGVuZ3RoKTtcXG4gICAgY29uc3QgaWEgPSBuZXcgVWludDhBcnJheShhYik7XFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZVN0cmluZy5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgaWFbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSk7XFxuICAgIH1cXG4gICAgcmV0dXJuIG5ldyBGaWxlKFthYl0sIGZpbGVuYW1lLCB7IHR5cGU6IG1pbWVUeXBlIH0pO1xcbn07XFxuY29uc3QgcmVzaXplSW1hZ2VGaWxlID0gKGZpbGUsIG9wdHMpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICAvLyBTVkcgZmlsZXMgc2hvdWxkbid0IGEgY2FuJ3QgYmUgcmVzaXplZFxcbiAgICBpZiAoZmlsZS50eXBlID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uTUlNRV9UWVBFUy5zdmcpIHtcXG4gICAgICAgIHJldHVybiBmaWxlO1xcbiAgICB9XFxuICAgIGNvbnN0IFtwaWNhLCBpbWFnZUJsb2JSZWR1Y2VdID0geWllbGQgUHJvbWlzZS5hbGwoW1xcbiAgICAgICAgX193ZWJwYWNrX3JlcXVpcmVfXy5lKC8qISBpbXBvcnQoKSAqLyBcXFwidmVuZG9yXFxcIikudGhlbihfX3dlYnBhY2tfcmVxdWlyZV9fLnQuYmluZChfX3dlYnBhY2tfcmVxdWlyZV9fLCAvKiEgcGljYSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BpY2EvZGlzdC9waWNhLmpzXFxcIiwgMjMpKS50aGVuKChyZXMpID0+IHJlcy5kZWZhdWx0KSxcXG4gICAgICAgIC8vIGEgd3JhcHBlciBmb3IgcGljYSBmb3IgYmV0dGVyIEFQSVxcbiAgICAgICAgX193ZWJwYWNrX3JlcXVpcmVfXy5lKC8qISBpbXBvcnQoKSAqLyBcXFwidmVuZG9yXFxcIikudGhlbihfX3dlYnBhY2tfcmVxdWlyZV9fLmJpbmQoX193ZWJwYWNrX3JlcXVpcmVfXywgLyohIGltYWdlLWJsb2ItcmVkdWNlICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvaW1hZ2UtYmxvYi1yZWR1Y2UvZGlzdC9pbWFnZS1ibG9iLXJlZHVjZS5lc20ubWpzXFxcIikpLnRoZW4oKHJlcykgPT4gcmVzLmRlZmF1bHQpLFxcbiAgICBdKTtcXG4gICAgLy8gQ1JBJ3MgbWluaWZpY2F0aW9uIHNldHRpbmdzIGJyZWFrIHBpY2EgaW4gV2ViV29ya2Vycywgc28gbGV0J3MgZGlzYWJsZVxcbiAgICAvLyB0aGVtIGZvciBub3dcXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25vZGVjYS9pbWFnZS1ibG9iLXJlZHVjZS9pc3N1ZXMvMjEjaXNzdWVjb21tZW50LTc1NzM2NTUxM1xcbiAgICBjb25zdCByZWR1Y2UgPSBpbWFnZUJsb2JSZWR1Y2Uoe1xcbiAgICAgICAgcGljYTogcGljYSh7IGZlYXR1cmVzOiBbXFxcImpzXFxcIiwgXFxcIndhc21cXFwiXSB9KSxcXG4gICAgfSk7XFxuICAgIGlmIChvcHRzLm91dHB1dFR5cGUpIHtcXG4gICAgICAgIGNvbnN0IHsgb3V0cHV0VHlwZSB9ID0gb3B0cztcXG4gICAgICAgIHJlZHVjZS5fY3JlYXRlX2Jsb2IgPSBmdW5jdGlvbiAoZW52KSB7XFxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGljYS50b0Jsb2IoZW52Lm91dF9jYW52YXMsIG91dHB1dFR5cGUsIDAuOCkudGhlbigoYmxvYikgPT4ge1xcbiAgICAgICAgICAgICAgICBlbnYub3V0X2Jsb2IgPSBibG9iO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gZW52O1xcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfTtcXG4gICAgfVxcbiAgICBpZiAoIWlzU3VwcG9ydGVkSW1hZ2VGaWxlKGZpbGUpKSB7XFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50KShcXFwiZXJyb3JzLnVuc3VwcG9ydGVkRmlsZVR5cGVcXFwiKSk7XFxuICAgIH1cXG4gICAgcmV0dXJuIG5ldyBGaWxlKFt5aWVsZCByZWR1Y2UudG9CbG9iKGZpbGUsIHsgbWF4OiBvcHRzLm1heFdpZHRoT3JIZWlnaHQgfSldLCBmaWxlLm5hbWUsIHtcXG4gICAgICAgIHR5cGU6IG9wdHMub3V0cHV0VHlwZSB8fCBmaWxlLnR5cGUsXFxuICAgIH0pO1xcbn0pO1xcbmNvbnN0IFNWR1N0cmluZ1RvRmlsZSA9IChTVkdTdHJpbmcsIGZpbGVuYW1lID0gXFxcIlxcXCIpID0+IHtcXG4gICAgcmV0dXJuIG5ldyBGaWxlKFtuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoU1ZHU3RyaW5nKV0sIGZpbGVuYW1lLCB7XFxuICAgICAgICB0eXBlOiBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uTUlNRV9UWVBFUy5zdmcsXFxuICAgIH0pO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZaR0YwWVM5aWJHOWlMblJ6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMEZCUVdkRE8wRkJRM0ZDTzBGQlN5OUNPMEZCUXpoQ08wRkJSVm83UVVGRFdqdEJRVU54UWp0QlFVVk1PMEZCUlVjN1FVRkRXRHRCUVVkd1F5eE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExFTkJRVThzU1VGQmFVSXNSVUZCUlN4RlFVRkZPMGxCUTNCRUxFbEJRVWtzVVVGQlowSXNRMEZCUXp0SlFVVnlRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEV0QlFVc3NjMFJCUVdNc1JVRkJSVHRSUVVOb1F5eEpRVUZKTzFsQlEwWXNUMEZCVHl4TlFVRk5MRU5CUTFnc1RVRkJUU3dyVEVGQmFVUXNRMEZEZUVRc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRUUVVNelFqdFJRVUZETEU5QlFVOHNTMEZCVlN4RlFVRkZPMWxCUTI1Q0xFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNTMEZCU3l4VFFVRlRMRVZCUVVVN1owSkJReTlDTEUxQlFVMHNTVUZCU1N4WlFVRlpMRU5CUTNCQ0xIZERRVUZETEVOQlFVTXNhVU5CUVdsRExFTkJRVU1zUlVGRGNFTXNaVUZCWlN4RFFVTm9RaXhEUVVGRE8yRkJRMGc3YVVKQlFVMDdaMEpCUTB3c1RVRkJUU3hKUVVGSkxGbEJRVmtzUTBGRGNFSXNkME5CUVVNc1EwRkJReXdyUWtGQkswSXNRMEZCUXl4RlFVTnNReXhsUVVGbExFTkJRMmhDTEVOQlFVTTdZVUZEU0R0VFFVTkdPMHRCUTBZN1UwRkJUVHRSUVVOTUxFbEJRVWtzVFVGQlRTeEpRVUZKTEVsQlFVa3NSVUZCUlR0WlFVTnNRaXhSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1UwRkRPVUk3WVVGQlRUdFpRVU5NTEZGQlFWRXNSMEZCUnl4TlFVRk5MRWxCUVVrc1QwRkJUeXhEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVTdaMEpCUTNaRExFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NWVUZCVlN4RlFVRkZMRU5CUVVNN1owSkJRMmhETEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzJkQ1FVTm9ReXhOUVVGTkxFTkJRVU1zVTBGQlV5eEhRVUZITEVkQlFVY3NSVUZCUlR0dlFrRkRkRUlzU1VGQlNTeE5RVUZOTEVOQlFVTXNWVUZCVlN4TFFVRkxMRlZCUVZVc1EwRkJReXhKUVVGSkxFVkJRVVU3ZDBKQlEzcERMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlowSXNRMEZCUXl4RFFVRkRPM0ZDUVVOc1F6dG5Ra0ZEU0N4RFFVRkRMRU5CUVVNN1dVRkRTaXhEUVVGRExFTkJRVU1zUTBGQlF6dFRRVU5LTzFGQlEwUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1NVRkJTU3hMUVVGTExITkVRVUZqTEVWQlFVVTdXVUZEYUVNc1NVRkJTVHRuUWtGRFJpeFBRVUZQTEUxQlFVMHNRMEZEV0N4TlFVRk5MQ3RNUVVGcFJDeERRVU40UkN4RFFVRkRMR2xDUVVGcFFpeERRVUZETzI5Q1FVTnNRaXhIUVVGSExFVkJRVVVzVVVGQlVUdHBRa0ZEWkN4RFFVRkRMRU5CUVVNN1lVRkRTanRaUVVGRExFOUJRVThzUzBGQlZTeEZRVUZGTzJkQ1FVTnVRaXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEV0QlFVc3NVMEZCVXl4RlFVRkZPMjlDUVVNdlFpeE5RVUZOTEVsQlFVa3NXVUZCV1N4RFFVTndRaXgzUTBGQlF5eERRVUZETEdsRFFVRnBReXhEUVVGRExFVkJRM0JETEdWQlFXVXNRMEZEYUVJc1EwRkJRenRwUWtGRFNEdHhRa0ZCVFR0dlFrRkRUQ3hOUVVGTkxFbEJRVWtzV1VGQldTeERRVU53UWl4M1EwRkJReXhEUVVGRExDdENRVUVyUWl4RFFVRkRMRVZCUTJ4RExHVkJRV1VzUTBGRGFFSXNRMEZCUXp0cFFrRkRTRHRoUVVOR08xTkJRMFk3UzBGRFJqdEpRVU5FTEU5QlFVOHNVVUZCVVN4RFFVRkRPMEZCUTJ4Q0xFTkJRVU1zUlVGQlF6dEJRVVZMTEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUVVNc1NVRkJiVUlzUlVGQlZTeEZRVUZGTzBsQlEzcEVMRWxCUVVrc1NVRkJXU3hEUVVGRE8wbEJRMnBDTEVsQlFVa3NUMEZCVHl4SlFVRkpMRXRCUVVzc1VVRkJVU3hGUVVGRk8xRkJRelZDTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1MwRkRZanRUUVVGTk8xRkJRMHdzU1VGQlNTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZPMWxCUTJJc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETzFOQlEyeENPMUZCUTBRc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVsQlFVa3NSVUZCUlN4RFFVRkRPMHRCUTNoQ08wbEJRMFFzU1VGQlNTeHpRa0ZCYzBJc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVTdVVUZEY2tNc1QwRkJUeXgxUkVGQlpTeERRVUZETzB0QlEzaENPMU5CUVUwc1NVRkJTU3hSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZPMUZCUXpsQ0xFOUJRVThzYzBSQlFXTXNRMEZCUXp0TFFVTjJRanRUUVVGTkxFbEJRVWtzVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSVHRSUVVOb1F5eFBRVUZQTEhORVFVRmpMRU5CUVVNN1MwRkRka0k3VTBGQlRTeEpRVUZKTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3VVVGRE9VSXNUMEZCVHl4elJFRkJZeXhEUVVGRE8wdEJRM1pDTzBsQlEwUXNUMEZCVHl4RlFVRkZMRU5CUVVNN1FVRkRXaXhEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExFTkJRVU1zVFVGQkswSXNSVUZCUlN4RlFVRkZPenRKUVVOdVJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZPMUZCUTFnc1QwRkJUeXhKUVVGSkxFTkJRVU03UzBGRFlqdEpRVVZFTEU5QlFVOHNZVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zT0VKQlFUaENMRU5CUVVNc01FTkJRVWNzUTBGQlF5eERRVUZETEV0QlFVa3NTVUZCU1N4RFFVRkRPMEZCUTNoRkxFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNjVUpCUVhGQ0xFZEJRVWNzUTBGRGJrTXNTVUZCYlVJc1JVRkRTU3hGUVVGRk8wbEJRM3BDTEU5QlFVOHNTVUZCU1N4TFFVRkxMRXRCUVVzc1NVRkJTU3hKUVVGSkxFdEJRVXNzUzBGQlN5eERRVUZETzBGQlF6RkRMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzYVVKQlFXbENMRWRCUVVjc1EwRkJReXhOUVVFclFpeEZRVUZGTEVWQlFVVTdTVUZEYmtVc1RVRkJUU3hKUVVGSkxFZEJRVWNzYVVKQlFXbENMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRGRrTXNUMEZCVHl4SlFVRkpMRXRCUVVzc1MwRkJTeXhKUVVGSkxFbEJRVWtzUzBGQlN5eExRVUZMTEVOQlFVTTdRVUZETVVNc1EwRkJReXhEUVVGRE8wRkJSVXNzVFVGQlRTeHZRa0ZCYjBJc1IwRkJSeXhEUVVOc1F5eEpRVUUyUWl4RlFVTnhReXhGUVVGRk8wbEJRM0JGTEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1IwRkJSeXhKUVVGSkxFbEJRVWtzUlVGQlJTeERRVUZETzBsQlF6VkNMRTlCUVU4c1EwRkRUQ3hEUVVGRExFTkJRVU1zU1VGQlNTeEpRVUZMTEhsRlFVRjFSQ3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVU42UlN4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRE8wRkJSVXNzVFVGQlRTeFpRVUZaTEVkQlFVY3NRMEZETVVJc1NVRkJWVHRCUVVOV0xHbERRVUZwUXp0QlFVTnFReXhoUVVFNFFpeEZRVU01UWl4aFFVRnJSQ3hGUVVOc1JDeEZRVUZGTzBsQlEwWXNUVUZCVFN4UlFVRlJMRWRCUVVjc1RVRkJUU3hwUWtGQmFVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNdlF5eEpRVUZKTzFGQlEwWXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTnNReXhKUVVGSkxFTkJRVU1zTkVSQlFYRkNMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3V1VGRGFFTXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXgzUTBGQlF5eERRVUZETEdkRFFVRm5ReXhEUVVGRExFTkJRVU1zUTBGQlF6dFRRVU4wUkR0UlFVTkVMRTFCUVUwc1RVRkJUU3hIUVVGSExHbEVRVUZQTEVOQlEzQkNPMWxCUTBVc1VVRkJVU3hGUVVGRkxHZEZRVUZ6UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFbEJRVWtzUlVGQlJTeERRVUZETzFsQlEzSkVMRkZCUVZFc1owTkJRMDRzUzBGQlN5eEZRVUZGTEdGQlFXRXNZVUZCWWl4aFFVRmhMSFZDUVVGaUxHRkJRV0VzUTBGQlJTeExRVUZMTEVWQlF6TkNMRlZCUVZVc1JVRkJSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVsQlFVa3NTVUZETlVJc2FVVkJRWE5DTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTU3hGUVVGRkxFTkJRVU1zUjBGRE0wTXNRMEZCUXl4aFFVRmhPMmRDUVVObUxFTkJRVU1zUTBGQlF5dzJSRUZCY1VJc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeEpRVUZKTEVWQlFVVXNSVUZCUlN4aFFVRmhMRVZCUVVVc1NVRkJTU3hEUVVGRE8yZENRVU5xUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRMUk3V1VGRFJDeExRVUZMTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzN1UwRkRiRUlzUlVGRFJDeGhRVUZoTEVWQlEySXNZVUZCWVN4RFFVTmtMRU5CUVVNN1VVRkZSaXhQUVVGUExFMUJRVTBzUTBGQlF6dExRVU5tTzBsQlFVTXNUMEZCVHl4TFFVRlZMRVZCUVVVN1VVRkRia0lzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRE4wSXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXgzUTBGQlF5eERRVUZETEdkRFFVRm5ReXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU4wUkR0QlFVTklMRU5CUVVNc1JVRkJRenRCUVVWTExFMUJRVTBzYlVKQlFXMUNMRWRCUVVjc1EwRkJUeXhKUVVGVkxFVkJRVVVzUlVGQlJUdEpRVU4wUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxHbENRVUZwUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJReTlETEUxQlFVMHNTVUZCU1N4SFFVRjNRaXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMGxCUTNaRUxFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NTMEZCU3l3eVJVRkJiVU1zUlVGQlJUdFJRVU55UkN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExIZERRVUZETEVOQlFVTXNaME5CUVdkRExFTkJRVU1zUTBGQlF5eERRVUZETzB0QlEzUkVPMGxCUTBRc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFpDeERRVUZETEVWQlFVTTdRVUZGU3l4TlFVRk5MRmxCUVZrc1IwRkJSeXhEUVVNeFFpeE5RVUY1UWl4RlFVTldMRVZCUVVVN1NVRkRha0lzVDBGQlR5eEpRVUZKTEU5QlFVOHNRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVVzUlVGQlJUdFJRVU55UXl4SlFVRkpPMWxCUTBZc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RlFVRkZPMmRDUVVOeVFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZPMjlDUVVOVUxFOUJRVThzVFVGQlRTeERRVU5ZTEVsQlFVa3NaMFJCUVZjc1EwRkRZaXgzUTBGQlF5eERRVUZETERCQ1FVRXdRaXhEUVVGRExFVkJRemRDTEhsQ1FVRjVRaXhEUVVNeFFpeERRVU5HTEVOQlFVTTdhVUpCUTBnN1owSkJRMFFzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMWxCUTJoQ0xFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEwbzdVVUZCUXl4UFFVRlBMRXRCUVZVc1JVRkJSVHRaUVVOdVFpeE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1UwRkRaanRKUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwd3NRMEZCUXl4RlFVRkRPMEZCUlVZN2NVTkJRM0ZETzBGQlF6bENMRTFCUVUwc2EwSkJRV3RDTEVkQlFVY3NRMEZCVHl4SlFVRlZMRVZCUVcxQ0xFVkJRVVU3U1VGRGRFVXNTVUZCU1R0UlFVTkdMRTFCUVUwc1ZVRkJWU3hIUVVGSExFMUJRVTBzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVOc1JDeFBRVUZQTEVWQlExQXNUVUZCVFN4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRM3BDTEVOQlFVTTdVVUZEUml4UFFVRlBMSGRFUVVGblFpeERRVUZETEVsQlFVa3NWVUZCVlN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGWExFTkJRVU03UzBGREwwUTdTVUZCUXl4UFFVRlBMRXRCUVZVc1JVRkJSVHRSUVVOdVFpeFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRM0pDTEhGRlFVRnhSVHRSUVVOeVJTeFBRVUZQTERoRFFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGWExFTkJRVU03UzBGRE4wSTdRVUZEU0N4RFFVRkRMRVZCUVVNN1FVRkZTeXhOUVVGTkxGVkJRVlVzUjBGQlJ5eERRVUZQTEVsQlFXbENMRVZCUVc5Q0xFVkJRVVU3U1VGRGRFVXNUMEZCVHl4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVXNSVUZCUlR0UlFVTnlReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEZWQlFWVXNSVUZCUlN4RFFVRkRPMUZCUTJoRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4RlFVRkZPMWxCUTI1Q0xFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNRMEZCUXl4TlFVRnBRaXhEUVVGRE8xbEJRM3BETEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOdVFpeERRVUZETEVOQlFVTTdVVUZEUml4TlFVRk5MRU5CUVVNc1QwRkJUeXhIUVVGSExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRE1VTXNUVUZCVFN4RFFVRkRMR0ZCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU0zUWl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOTUxFTkJRVU1zUlVGQlF6dEJRVVZMTEUxQlFVMHNZVUZCWVN4SFFVRkhMRU5CUVVNc1QwRkJaMElzUlVGQlJTeFJRVUZSTEVkQlFVY3NSVUZCUlN4RlFVRkZMRVZCUVVVN1NVRkRMMFFzVFVGQlRTeGpRVUZqTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU0xUXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4alFVRmpMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU16UkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlN4alFVRmpMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlRsRkxFMUJRVTBzUlVGQlJTeEhRVUZITEVsQlFVa3NWMEZCVnl4RFFVRkRMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVU01UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhKUVVGSkxGVkJRVlVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVTTVRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0UlFVTXhReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU5zUXp0SlFVTkVMRTlCUVU4c1NVRkJTU3hKUVVGSkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVVc1JVRkJSU3hKUVVGSkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTjBSQ3hEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEdWQlFXVXNSMEZCUnl4RFFVTTNRaXhKUVVGVkxFVkJRMVlzU1VGSlF5eEZRVU5qTEVWQlFVVTdTVUZEYWtJc2VVTkJRWGxETzBsQlEzcERMRWxCUVVrc1NVRkJTU3hEUVVGRExFbEJRVWtzUzBGQlN5eHpSRUZCWXl4RlFVRkZPMUZCUTJoRExFOUJRVThzU1VGQlNTeERRVUZETzB0QlEySTdTVUZGUkN4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxHVkJRV1VzUTBGQlF5eEhRVUZITEUxQlFVMHNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJRenRSUVVOb1JDeG5TMEZCWXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJRenRSUVVONlF5eHZRMEZCYjBNN1VVRkRjRU1zYzAxQlFUSkNMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRE8wdEJRM1pFTEVOQlFVTXNRMEZCUXp0SlFVVklMSGxGUVVGNVJUdEpRVU42UlN4bFFVRmxPMGxCUTJZc0swVkJRU3RGTzBsQlF5OUZMRTFCUVUwc1RVRkJUU3hIUVVGSExHVkJRV1VzUTBGQlF6dFJRVU0zUWl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU03UzBGRGVrTXNRMEZCUXl4RFFVRkRPMGxCUlVnc1NVRkJTU3hKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTzFGQlEyNUNMRTFCUVUwc1JVRkJSU3hWUVVGVkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTTdVVUZETlVJc1RVRkJUU3hEUVVGRExGbEJRVmtzUjBGQlJ5eFZRVUZWTEVkQlFVYzdXVUZEYWtNc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hGUVVGRkxGVkJRVlVzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJUdG5Ra0ZEY2tVc1IwRkJSeXhEUVVGRExGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTTdaMEpCUTNCQ0xFOUJRVThzUjBGQlJ5eERRVUZETzFsQlEySXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRUQ3hEUVVGRExFTkJRVU03UzBGRFNEdEpRVVZFTEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlR0UlFVTXZRaXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEhkRFFVRkRMRU5CUVVNc05FSkJRVFJDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMHRCUTJ4RU8wbEJSVVFzVDBGQlR5eEpRVUZKTEVsQlFVa3NRMEZEWWl4RFFVRkRMRTFCUVUwc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUlN4SFFVRkhMRVZCUVVVc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVNelJDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVTlVPMUZCUTBVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWxCUVVrN1MwRkRia01zUTBGRFJpeERRVUZETzBGQlEwb3NRMEZCUXl4RlFVRkRPMEZCUlVzc1RVRkJUU3hsUVVGbExFZEJRVWNzUTBGQlF5eFRRVUZwUWl4RlFVRkZMRmRCUVcxQ0xFVkJRVVVzUlVGQlJTeEZRVUZGTzBsQlF6RkZMRTlCUVU4c1NVRkJTU3hKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTEZkQlFWY3NSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEZGQlFWRXNSVUZCUlR0UlFVTXZSQ3hKUVVGSkxFVkJRVVVzYzBSQlFXTTdTMEZEY2tJc1EwRkJNa01zUTBGQlF6dEJRVU12UXl4RFFVRkRMRU5CUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZaR0YwWVM5aWJHOWlMblJ6UDJFNE0yUWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnYm1GdWIybGtJSDBnWm5KdmJTQmNJbTVoYm05cFpGd2lPMXh1YVcxd2IzSjBJSHNnWTJ4bFlXNUJjSEJUZEdGMFpVWnZja1Y0Y0c5eWRDQjlJR1p5YjIwZ1hDSXVMaTloY0hCVGRHRjBaVndpTzF4dWFXMXdiM0owSUh0Y2JpQWdRVXhNVDFkRlJGOUpUVUZIUlY5TlNVMUZYMVJaVUVWVExGeHVJQ0JGV0ZCUFVsUmZSRUZVUVY5VVdWQkZVeXhjYmlBZ1RVbE5SVjlVV1ZCRlV5eGNibjBnWm5KdmJTQmNJaTR1TDJOdmJuTjBZVzUwYzF3aU8xeHVhVzF3YjNKMElIc2dZMnhsWVhKRmJHVnRaVzUwYzBadmNrVjRjRzl5ZENCOUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MFhDSTdYRzVwYlhCdmNuUWdleUJGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ3dnUm1sc1pVbGtJSDBnWm5KdmJTQmNJaTR1TDJWc1pXMWxiblF2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUVOaGJuWmhjMFZ5Y205eUlIMGdabkp2YlNCY0lpNHVMMlZ5Y205eWMxd2lPMXh1YVcxd2IzSjBJSHNnZENCOUlHWnliMjBnWENJdUxpOXBNVGh1WENJN1hHNXBiWEJ2Y25RZ2V5QmpZV3hqZFd4aGRHVlRZM0p2Ykd4RFpXNTBaWElnZlNCbWNtOXRJRndpTGk0dmMyTmxibVZjSWp0Y2JtbHRjRzl5ZENCN0lFRndjRk4wWVhSbExDQkVZWFJoVlZKTUlIMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdleUJpZVhSbGMxUnZTR1Y0VTNSeWFXNW5JSDBnWm5KdmJTQmNJaTR1TDNWMGFXeHpYQ0k3WEc1cGJYQnZjblFnZXlCR2FXeGxVM2x6ZEdWdFNHRnVaR3hsSUgwZ1puSnZiU0JjSWk0dlptbHNaWE41YzNSbGJWd2lPMXh1YVcxd2IzSjBJSHNnYVhOV1lXeHBaRVY0WTJGc2FXUnlZWGRFWVhSaElIMGdabkp2YlNCY0lpNHZhbk52Ymx3aU8xeHVhVzF3YjNKMElIc2djbVZ6ZEc5eVpTQjlJR1p5YjIwZ1hDSXVMM0psYzNSdmNtVmNJanRjYm1sdGNHOXlkQ0I3SUVsdGNHOXlkR1ZrVEdsaWNtRnllVVJoZEdFZ2ZTQm1jbTl0SUZ3aUxpOTBlWEJsYzF3aU8xeHVYRzVqYjI1emRDQndZWEp6WlVacGJHVkRiMjUwWlc1MGN5QTlJR0Z6ZVc1aklDaGliRzlpT2lCQ2JHOWlJSHdnUm1sc1pTa2dQVDRnZTF4dUlDQnNaWFFnWTI5dWRHVnVkSE02SUhOMGNtbHVaenRjYmx4dUlDQnBaaUFvWW14dllpNTBlWEJsSUQwOVBTQk5TVTFGWDFSWlVFVlRMbkJ1WnlrZ2UxeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1lYZGhhWFFnS0Z4dUlDQWdJQ0FnSUNCaGQyRnBkQ0JwYlhCdmNuUW9MeW9nZDJWaWNHRmphME5vZFc1clRtRnRaVG9nWENKcGJXRm5aVndpSUNvdklGd2lMaTlwYldGblpWd2lLVnh1SUNBZ0lDQWdLUzVrWldOdlpHVlFibWROWlhSaFpHRjBZU2hpYkc5aUtUdGNiaUFnSUNCOUlHTmhkR05vSUNobGNuSnZjam9nWVc1NUtTQjdYRzRnSUNBZ0lDQnBaaUFvWlhKeWIzSXViV1Z6YzJGblpTQTlQVDBnWENKSlRsWkJURWxFWENJcElIdGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVJQVFVWNFkyVndkR2x2YmloY2JpQWdJQ0FnSUNBZ0lDQjBLRndpWVd4bGNuUnpMbWx0WVdkbFJHOWxjMDV2ZEVOdmJuUmhhVzVUWTJWdVpWd2lLU3hjYmlBZ0lDQWdJQ0FnSUNCY0lrVnVZMjlrYVc1blJYSnliM0pjSWl4Y2JpQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkVUMDFGZUdObGNIUnBiMjRvWEc0Z0lDQWdJQ0FnSUNBZ2RDaGNJbUZzWlhKMGN5NWpZVzV1YjNSU1pYTjBiM0psUm5KdmJVbHRZV2RsWENJcExGeHVJQ0FnSUNBZ0lDQWdJRndpUlc1amIyUnBibWRGY25KdmNsd2lMRnh1SUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0JwWmlBb1hDSjBaWGgwWENJZ2FXNGdRbXh2WWlrZ2UxeHVJQ0FnSUNBZ1kyOXVkR1Z1ZEhNZ1BTQmhkMkZwZENCaWJHOWlMblJsZUhRb0tUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnWTI5dWRHVnVkSE1nUFNCaGQyRnBkQ0J1WlhjZ1VISnZiV2x6WlNnb2NtVnpiMngyWlNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnlaV0ZrWlhJZ1BTQnVaWGNnUm1sc1pWSmxZV1JsY2lncE8xeHVJQ0FnSUNBZ0lDQnlaV0ZrWlhJdWNtVmhaRUZ6VkdWNGRDaGliRzlpTENCY0luVjBaamhjSWlrN1hHNGdJQ0FnSUNBZ0lISmxZV1JsY2k1dmJteHZZV1JsYm1RZ1BTQW9LU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0hKbFlXUmxjaTV5WldGa2VWTjBZWFJsSUQwOVBTQkdhV3hsVW1WaFpHVnlMa1JQVGtVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGMyOXNkbVVvY21WaFpHVnlMbkpsYzNWc2RDQmhjeUJ6ZEhKcGJtY3BPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9ZbXh2WWk1MGVYQmxJRDA5UFNCTlNVMUZYMVJaVUVWVExuTjJaeWtnZTF4dUlDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHRjNZV2wwSUNoY2JpQWdJQ0FnSUNBZ0lDQmhkMkZwZENCcGJYQnZjblFvTHlvZ2QyVmljR0ZqYTBOb2RXNXJUbUZ0WlRvZ1hDSnBiV0ZuWlZ3aUlDb3ZJRndpTGk5cGJXRm5aVndpS1Z4dUlDQWdJQ0FnSUNBcExtUmxZMjlrWlZOMlowMWxkR0ZrWVhSaEtIdGNiaUFnSUNBZ0lDQWdJQ0J6ZG1jNklHTnZiblJsYm5SekxGeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDBnWTJGMFkyZ2dLR1Z5Y205eU9pQmhibmtwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1Z5Y205eUxtMWxjM05oWjJVZ1BUMDlJRndpU1U1V1FVeEpSRndpS1NCN1hHNGdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVJQVFVWNFkyVndkR2x2YmloY2JpQWdJQ0FnSUNBZ0lDQWdJSFFvWENKaGJHVnlkSE11YVcxaFoyVkViMlZ6VG05MFEyOXVkR0ZwYmxOalpXNWxYQ0lwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdYQ0pGYm1OdlpHbHVaMFZ5Y205eVhDSXNYRzRnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSRTlOUlhoalpYQjBhVzl1S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdkQ2hjSW1Gc1pYSjBjeTVqWVc1dWIzUlNaWE4wYjNKbFJuSnZiVWx0WVdkbFhDSXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1hDSkZibU52WkdsdVowVnljbTl5WENJc1hHNGdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdZMjl1ZEdWdWRITTdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWjJWMFRXbHRaVlI1Y0dVZ1BTQW9ZbXh2WWpvZ1FteHZZaUI4SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUE5UGlCN1hHNGdJR3hsZENCdVlXMWxPaUJ6ZEhKcGJtYzdYRzRnSUdsbUlDaDBlWEJsYjJZZ1lteHZZaUE5UFQwZ1hDSnpkSEpwYm1kY0lpa2dlMXh1SUNBZ0lHNWhiV1VnUFNCaWJHOWlPMXh1SUNCOUlHVnNjMlVnZTF4dUlDQWdJR2xtSUNoaWJHOWlMblI1Y0dVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCaWJHOWlMblI1Y0dVN1hHNGdJQ0FnZlZ4dUlDQWdJRzVoYldVZ1BTQmliRzlpTG01aGJXVWdmSHdnWENKY0lqdGNiaUFnZlZ4dUlDQnBaaUFvTDF4Y0xpaGxlR05oYkdsa2NtRjNmR3B6YjI0cEpDOHVkR1Z6ZENodVlXMWxLU2tnZTF4dUlDQWdJSEpsZEhWeWJpQk5TVTFGWDFSWlVFVlRMbXB6YjI0N1hHNGdJSDBnWld4elpTQnBaaUFvTDF4Y0xuQnVaeVF2TG5SbGMzUW9ibUZ0WlNrcElIdGNiaUFnSUNCeVpYUjFjbTRnVFVsTlJWOVVXVkJGVXk1d2JtYzdYRzRnSUgwZ1pXeHpaU0JwWmlBb0wxeGNMbXB3WlQ5bkpDOHVkR1Z6ZENodVlXMWxLU2tnZTF4dUlDQWdJSEpsZEhWeWJpQk5TVTFGWDFSWlVFVlRMbXB3Wnp0Y2JpQWdmU0JsYkhObElHbG1JQ2d2WEZ3dWMzWm5KQzh1ZEdWemRDaHVZVzFsS1NrZ2UxeHVJQ0FnSUhKbGRIVnliaUJOU1UxRlgxUlpVRVZUTG5OMlp6dGNiaUFnZlZ4dUlDQnlaWFIxY200Z1hDSmNJanRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCblpYUkdhV3hsU0dGdVpHeGxWSGx3WlNBOUlDaG9ZVzVrYkdVNklFWnBiR1ZUZVhOMFpXMUlZVzVrYkdVZ2ZDQnVkV3hzS1NBOVBpQjdYRzRnSUdsbUlDZ2hhR0Z1Wkd4bEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdhR0Z1Wkd4bExtNWhiV1V1YldGMFkyZ29MMXhjTGlocWMyOXVmR1Y0WTJGc2FXUnlZWGQ4Y0c1bmZITjJaeWtrTHlrL0xsc3hYU0I4ZkNCdWRXeHNPMXh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdselNXMWhaMlZHYVd4bFNHRnVaR3hsVkhsd1pTQTlJQ2hjYmlBZ2RIbHdaVG9nYzNSeWFXNW5JSHdnYm5Wc2JDeGNiaWs2SUhSNWNHVWdhWE1nWENKd2JtZGNJaUI4SUZ3aWMzWm5YQ0lnUFQ0Z2UxeHVJQ0J5WlhSMWNtNGdkSGx3WlNBOVBUMGdYQ0p3Ym1kY0lpQjhmQ0IwZVhCbElEMDlQU0JjSW5OMloxd2lPMXh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdselNXMWhaMlZHYVd4bFNHRnVaR3hsSUQwZ0tHaGhibVJzWlRvZ1JtbHNaVk41YzNSbGJVaGhibVJzWlNCOElHNTFiR3dwSUQwK0lIdGNiaUFnWTI5dWMzUWdkSGx3WlNBOUlHZGxkRVpwYkdWSVlXNWtiR1ZVZVhCbEtHaGhibVJzWlNrN1hHNGdJSEpsZEhWeWJpQjBlWEJsSUQwOVBTQmNJbkJ1WjF3aUlIeDhJSFI1Y0dVZ1BUMDlJRndpYzNablhDSTdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYVhOVGRYQndiM0owWldSSmJXRm5aVVpwYkdVZ1BTQW9YRzRnSUdKc2IySTZJRUpzYjJJZ2ZDQnVkV3hzSUh3Z2RXNWtaV1pwYm1Wa0xGeHVLVG9nWW14dllpQnBjeUJDYkc5aUlDWWdleUIwZVhCbE9pQjBlWEJsYjJZZ1FVeE1UMWRGUkY5SlRVRkhSVjlOU1UxRlgxUlpVRVZUVzI1MWJXSmxjbDBnZlNBOVBpQjdYRzRnSUdOdmJuTjBJSHNnZEhsd1pTQjlJRDBnWW14dllpQjhmQ0I3ZlR0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNBaElYUjVjR1VnSmlZZ0tFRk1URTlYUlVSZlNVMUJSMFZmVFVsTlJWOVVXVkJGVXlCaGN5QnlaV0ZrYjI1c2VTQnpkSEpwYm1kYlhTa3VhVzVqYkhWa1pYTW9kSGx3WlNsY2JpQWdLVHRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCc2IyRmtSbkp2YlVKc2IySWdQU0JoYzNsdVl5QW9YRzRnSUdKc2IySTZJRUpzYjJJc1hHNGdJQzhxS2lCQWMyVmxJSEpsYzNSdmNtVXViRzlqWVd4QmNIQlRkR0YwWlNBcUwxeHVJQ0JzYjJOaGJFRndjRk4wWVhSbE9pQkJjSEJUZEdGMFpTQjhJRzUxYkd3c1hHNGdJR3h2WTJGc1JXeGxiV1Z1ZEhNNklISmxZV1J2Ym14NUlFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMGdmQ0J1ZFd4c0xGeHVLU0E5UGlCN1hHNGdJR052Ym5OMElHTnZiblJsYm5SeklEMGdZWGRoYVhRZ2NHRnljMlZHYVd4bFEyOXVkR1Z1ZEhNb1lteHZZaWs3WEc0Z0lIUnllU0I3WEc0Z0lDQWdZMjl1YzNRZ1pHRjBZU0E5SUVwVFQwNHVjR0Z5YzJVb1kyOXVkR1Z1ZEhNcE8xeHVJQ0FnSUdsbUlDZ2hhWE5XWVd4cFpFVjRZMkZzYVdSeVlYZEVZWFJoS0dSaGRHRXBLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9kQ2hjSW1Gc1pYSjBjeTVqYjNWc1pFNXZkRXh2WVdSSmJuWmhiR2xrUm1sc1pWd2lLU2s3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUhKbGMzVnNkQ0E5SUhKbGMzUnZjbVVvWEc0Z0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUdWc1pXMWxiblJ6T2lCamJHVmhja1ZzWlcxbGJuUnpSbTl5Ulhod2IzSjBLR1JoZEdFdVpXeGxiV1Z1ZEhNZ2ZId2dXMTBwTEZ4dUlDQWdJQ0FnSUNCaGNIQlRkR0YwWlRvZ2UxeHVJQ0FnSUNBZ0lDQWdJSFJvWlcxbE9pQnNiMk5oYkVGd2NGTjBZWFJsUHk1MGFHVnRaU3hjYmlBZ0lDQWdJQ0FnSUNCbWFXeGxTR0Z1Wkd4bE9pQmliRzlpTG1oaGJtUnNaU0I4ZkNCdWRXeHNMRnh1SUNBZ0lDQWdJQ0FnSUM0dUxtTnNaV0Z1UVhCd1UzUmhkR1ZHYjNKRmVIQnZjblFvWkdGMFlTNWhjSEJUZEdGMFpTQjhmQ0I3ZlNrc1hHNGdJQ0FnSUNBZ0lDQWdMaTR1S0d4dlkyRnNRWEJ3VTNSaGRHVmNiaUFnSUNBZ0lDQWdJQ0FnSUQ4Z1kyRnNZM1ZzWVhSbFUyTnliMnhzUTJWdWRHVnlLR1JoZEdFdVpXeGxiV1Z1ZEhNZ2ZId2dXMTBzSUd4dlkyRnNRWEJ3VTNSaGRHVXNJRzUxYkd3cFhHNGdJQ0FnSUNBZ0lDQWdJQ0E2SUh0OUtTeGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnWm1sc1pYTTZJR1JoZEdFdVptbHNaWE1zWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnYkc5allXeEJjSEJUZEdGMFpTeGNiaUFnSUNBZ0lHeHZZMkZzUld4bGJXVnVkSE1zWEc0Z0lDQWdLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJSDBnWTJGMFkyZ2dLR1Z5Y205eU9pQmhibmtwSUh0Y2JpQWdJQ0JqYjI1emIyeGxMbVZ5Y205eUtHVnljbTl5TG0xbGMzTmhaMlVwTzF4dUlDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaDBLRndpWVd4bGNuUnpMbU52ZFd4a1RtOTBURzloWkVsdWRtRnNhV1JHYVd4bFhDSXBLVHRjYmlBZ2ZWeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR3h2WVdSTWFXSnlZWEo1Um5KdmJVSnNiMklnUFNCaGMzbHVZeUFvWW14dllqb2dRbXh2WWlrZ1BUNGdlMXh1SUNCamIyNXpkQ0JqYjI1MFpXNTBjeUE5SUdGM1lXbDBJSEJoY25ObFJtbHNaVU52Ym5SbGJuUnpLR0pzYjJJcE8xeHVJQ0JqYjI1emRDQmtZWFJoT2lCSmJYQnZjblJsWkV4cFluSmhjbmxFWVhSaElEMGdTbE5QVGk1d1lYSnpaU2hqYjI1MFpXNTBjeWs3WEc0Z0lHbG1JQ2hrWVhSaExuUjVjR1VnSVQwOUlFVllVRTlTVkY5RVFWUkJYMVJaVUVWVExtVjRZMkZzYVdSeVlYZE1hV0p5WVhKNUtTQjdYRzRnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0hRb1hDSmhiR1Z5ZEhNdVkyOTFiR1JPYjNSTWIyRmtTVzUyWVd4cFpFWnBiR1ZjSWlrcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCa1lYUmhPMXh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdOaGJuWmhjMVJ2UW14dllpQTlJR0Z6ZVc1aklDaGNiaUFnWTJGdWRtRnpPaUJJVkUxTVEyRnVkbUZ6Uld4bGJXVnVkQ3hjYmlrNklGQnliMjFwYzJVOFFteHZZajRnUFQ0Z2UxeHVJQ0J5WlhSMWNtNGdibVYzSUZCeWIyMXBjMlVvS0hKbGMyOXNkbVVzSUhKbGFtVmpkQ2tnUFQ0Z2UxeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQmpZVzUyWVhNdWRHOUNiRzlpS0NoaWJHOWlLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doWW14dllpa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ5WldwbFkzUW9YRzRnSUNBZ0lDQWdJQ0FnSUNCdVpYY2dRMkZ1ZG1GelJYSnliM0lvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFFvWENKallXNTJZWE5GY25KdmNpNWpZVzUyWVhOVWIyOUNhV2RjSWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUZ3aVEwRk9Wa0ZUWDFCUFUxTkpRa3haWDFSUFQxOUNTVWRjSWl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhOdmJIWmxLR0pzYjJJcE8xeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pYSnliM0k2SUdGdWVTa2dlMXh1SUNBZ0lDQWdjbVZxWldOMEtHVnljbTl5S1R0Y2JpQWdJQ0I5WEc0Z0lIMHBPMXh1ZlR0Y2JseHVMeW9xSUdkbGJtVnlZWFJsY3lCVFNFRXRNU0JrYVdkbGMzUWdabkp2YlNCemRYQndiR2xsWkNCbWFXeGxJQ2hwWmlCdWIzUWdjM1Z3Y0c5eWRHVmtMQ0JtWVd4c2N5QmlZV05yWEc0Z0lDQWdkRzhnWVNBME1DMWphR0Z5SUdKaGMyVTJOQ0J5WVc1a2IyMGdhV1FwSUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnWjJWdVpYSmhkR1ZKWkVaeWIyMUdhV3hsSUQwZ1lYTjVibU1nS0dacGJHVTZJRVpwYkdVcE9pQlFjbTl0YVhObFBFWnBiR1ZKWkQ0Z1BUNGdlMXh1SUNCMGNua2dlMXh1SUNBZ0lHTnZibk4wSUdoaGMyaENkV1ptWlhJZ1BTQmhkMkZwZENCM2FXNWtiM2N1WTNKNWNIUnZMbk4xWW5Sc1pTNWthV2RsYzNRb1hHNGdJQ0FnSUNCY0lsTklRUzB4WENJc1hHNGdJQ0FnSUNCaGQyRnBkQ0JtYVd4bExtRnljbUY1UW5WbVptVnlLQ2tzWEc0Z0lDQWdLVHRjYmlBZ0lDQnlaWFIxY200Z1lubDBaWE5VYjBobGVGTjBjbWx1WnlodVpYY2dWV2x1ZERoQmNuSmhlU2hvWVhOb1FuVm1abVZ5S1NrZ1lYTWdSbWxzWlVsa08xeHVJQ0I5SUdOaGRHTm9JQ2hsY25KdmNqb2dZVzU1S1NCN1hHNGdJQ0FnWTI5dWMyOXNaUzVsY25KdmNpaGxjbkp2Y2lrN1hHNGdJQ0FnTHk4Z2JHVnVaM1JvSURRd0lIUnZJR0ZzYVdkdUlIZHBkR2dnZEdobElFaEZXQ0JzWlc1bmRHZ2diMllnVTBoQkxURWdLSGRvYVdOb0lHbHpJREUyTUNCaWFYUXBYRzRnSUNBZ2NtVjBkWEp1SUc1aGJtOXBaQ2cwTUNrZ1lYTWdSbWxzWlVsa08xeHVJQ0I5WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1oyVjBSR0YwWVZWU1RDQTlJR0Z6ZVc1aklDaG1hV3hsT2lCQ2JHOWlJSHdnUm1sc1pTazZJRkJ5YjIxcGMyVThSR0YwWVZWU1RENGdQVDRnZTF4dUlDQnlaWFIxY200Z2JtVjNJRkJ5YjIxcGMyVW9LSEpsYzI5c2RtVXNJSEpsYW1WamRDa2dQVDRnZTF4dUlDQWdJR052Ym5OMElISmxZV1JsY2lBOUlHNWxkeUJHYVd4bFVtVmhaR1Z5S0NrN1hHNGdJQ0FnY21WaFpHVnlMbTl1Ykc5aFpDQTlJQ2dwSUQwK0lIdGNiaUFnSUNBZ0lHTnZibk4wSUdSaGRHRlZVa3dnUFNCeVpXRmtaWEl1Y21WemRXeDBJR0Z6SUVSaGRHRlZVa3c3WEc0Z0lDQWdJQ0J5WlhOdmJIWmxLR1JoZEdGVlVrd3BPMXh1SUNBZ0lIMDdYRzRnSUNBZ2NtVmhaR1Z5TG05dVpYSnliM0lnUFNBb1pYSnliM0lwSUQwK0lISmxhbVZqZENobGNuSnZjaWs3WEc0Z0lDQWdjbVZoWkdWeUxuSmxZV1JCYzBSaGRHRlZVa3dvWm1sc1pTazdYRzRnSUgwcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR1JoZEdGVlVreFViMFpwYkdVZ1BTQW9aR0YwWVZWU1REb2dSR0YwWVZWU1RDd2dabWxzWlc1aGJXVWdQU0JjSWx3aUtTQTlQaUI3WEc0Z0lHTnZibk4wSUdSaGRHRkpibVJsZUZOMFlYSjBJRDBnWkdGMFlWVlNUQzVwYm1SbGVFOW1LRndpTEZ3aUtUdGNiaUFnWTI5dWMzUWdZbmwwWlZOMGNtbHVaeUE5SUdGMGIySW9aR0YwWVZWU1RDNXpiR2xqWlNoa1lYUmhTVzVrWlhoVGRHRnlkQ0FySURFcEtUdGNiaUFnWTI5dWMzUWdiV2x0WlZSNWNHVWdQU0JrWVhSaFZWSk1Mbk5zYVdObEtEQXNJR1JoZEdGSmJtUmxlRk4wWVhKMEtTNXpjR3hwZENoY0lqcGNJaWxiTVYwdWMzQnNhWFFvWENJN1hDSXBXekJkTzF4dVhHNGdJR052Ym5OMElHRmlJRDBnYm1WM0lFRnljbUY1UW5WbVptVnlLR0o1ZEdWVGRISnBibWN1YkdWdVozUm9LVHRjYmlBZ1kyOXVjM1FnYVdFZ1BTQnVaWGNnVldsdWREaEJjbkpoZVNoaFlpazdYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z1lubDBaVk4wY21sdVp5NXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJR2xoVzJsZElEMGdZbmwwWlZOMGNtbHVaeTVqYUdGeVEyOWtaVUYwS0drcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCdVpYY2dSbWxzWlNoYllXSmRMQ0JtYVd4bGJtRnRaU3dnZXlCMGVYQmxPaUJ0YVcxbFZIbHdaU0I5S1R0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnlaWE5wZW1WSmJXRm5aVVpwYkdVZ1BTQmhjM2x1WXlBb1hHNGdJR1pwYkdVNklFWnBiR1VzWEc0Z0lHOXdkSE02SUh0Y2JpQWdJQ0F2S2lvZ2RXNWtaV1pwYm1Wa0lHbHVaR2xqWVhSbGN5QmhkWFJ2SUNvdlhHNGdJQ0FnYjNWMGNIVjBWSGx3WlQ4NklIUjVjR1Z2WmlCTlNVMUZYMVJaVUVWVFcxd2lhbkJuWENKZE8xeHVJQ0FnSUcxaGVGZHBaSFJvVDNKSVpXbG5hSFE2SUc1MWJXSmxjanRjYmlBZ2ZTeGNiaWs2SUZCeWIyMXBjMlU4Um1sc1pUNGdQVDRnZTF4dUlDQXZMeUJUVmtjZ1ptbHNaWE1nYzJodmRXeGtiaWQwSUdFZ1kyRnVKM1FnWW1VZ2NtVnphWHBsWkZ4dUlDQnBaaUFvWm1sc1pTNTBlWEJsSUQwOVBTQk5TVTFGWDFSWlVFVlRMbk4yWnlrZ2UxeHVJQ0FnSUhKbGRIVnliaUJtYVd4bE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ1czQnBZMkVzSUdsdFlXZGxRbXh2WWxKbFpIVmpaVjBnUFNCaGQyRnBkQ0JRY205dGFYTmxMbUZzYkNoYlhHNGdJQ0FnYVcxd2IzSjBLRndpY0dsallWd2lLUzUwYUdWdUtDaHlaWE1wSUQwK0lISmxjeTVrWldaaGRXeDBLU3hjYmlBZ0lDQXZMeUJoSUhkeVlYQndaWElnWm05eUlIQnBZMkVnWm05eUlHSmxkSFJsY2lCQlVFbGNiaUFnSUNCcGJYQnZjblFvWENKcGJXRm5aUzFpYkc5aUxYSmxaSFZqWlZ3aUtTNTBhR1Z1S0NoeVpYTXBJRDArSUhKbGN5NWtaV1poZFd4MEtTeGNiaUFnWFNrN1hHNWNiaUFnTHk4Z1ExSkJKM01nYldsdWFXWnBZMkYwYVc5dUlITmxkSFJwYm1keklHSnlaV0ZySUhCcFkyRWdhVzRnVjJWaVYyOXlhMlZ5Y3l3Z2MyOGdiR1YwSjNNZ1pHbHpZV0pzWlZ4dUlDQXZMeUIwYUdWdElHWnZjaUJ1YjNkY2JpQWdMeThnYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDI1dlpHVmpZUzlwYldGblpTMWliRzlpTFhKbFpIVmpaUzlwYzNOMVpYTXZNakVqYVhOemRXVmpiMjF0Wlc1MExUYzFOek0yTlRVeE0xeHVJQ0JqYjI1emRDQnlaV1IxWTJVZ1BTQnBiV0ZuWlVKc2IySlNaV1IxWTJVb2UxeHVJQ0FnSUhCcFkyRTZJSEJwWTJFb2V5Qm1aV0YwZFhKbGN6b2dXMXdpYW5OY0lpd2dYQ0ozWVhOdFhDSmRJSDBwTEZ4dUlDQjlLVHRjYmx4dUlDQnBaaUFvYjNCMGN5NXZkWFJ3ZFhSVWVYQmxLU0I3WEc0Z0lDQWdZMjl1YzNRZ2V5QnZkWFJ3ZFhSVWVYQmxJSDBnUFNCdmNIUnpPMXh1SUNBZ0lISmxaSFZqWlM1ZlkzSmxZWFJsWDJKc2IySWdQU0JtZFc1amRHbHZiaUFvWlc1MktTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV3YVdOaExuUnZRbXh2WWlobGJuWXViM1YwWDJOaGJuWmhjeXdnYjNWMGNIVjBWSGx3WlN3Z01DNDRLUzUwYUdWdUtDaGliRzlpS1NBOVBpQjdYRzRnSUNBZ0lDQWdJR1Z1ZGk1dmRYUmZZbXh2WWlBOUlHSnNiMkk3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJsYm5ZN1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdhV1lnS0NGcGMxTjFjSEJ2Y25SbFpFbHRZV2RsUm1sc1pTaG1hV3hsS1NrZ2UxeHVJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWgwS0Z3aVpYSnliM0p6TG5WdWMzVndjRzl5ZEdWa1JtbHNaVlI1Y0dWY0lpa3BPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJRzVsZHlCR2FXeGxLRnh1SUNBZ0lGdGhkMkZwZENCeVpXUjFZMlV1ZEc5Q2JHOWlLR1pwYkdVc0lIc2diV0Y0T2lCdmNIUnpMbTFoZUZkcFpIUm9UM0pJWldsbmFIUWdmU2xkTEZ4dUlDQWdJR1pwYkdVdWJtRnRaU3hjYmlBZ0lDQjdYRzRnSUNBZ0lDQjBlWEJsT2lCdmNIUnpMbTkxZEhCMWRGUjVjR1VnZkh3Z1ptbHNaUzUwZVhCbExGeHVJQ0FnSUgwc1hHNGdJQ2s3WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1UxWkhVM1J5YVc1blZHOUdhV3hsSUQwZ0tGTldSMU4wY21sdVp6b2djM1J5YVc1bkxDQm1hV3hsYm1GdFpUb2djM1J5YVc1bklEMGdYQ0pjSWlrZ1BUNGdlMXh1SUNCeVpYUjFjbTRnYm1WM0lFWnBiR1VvVzI1bGR5QlVaWGgwUlc1amIyUmxjaWdwTG1WdVkyOWtaU2hUVmtkVGRISnBibWNwWFN3Z1ptbHNaVzVoYldVc0lIdGNiaUFnSUNCMGVYQmxPaUJOU1UxRlgxUlpVRVZUTG5OMlp5eGNiaUFnZlNrZ1lYTWdSbWxzWlNBbUlIc2dkSGx3WlRvZ2RIbHdaVzltSUUxSlRVVmZWRmxRUlZNdWMzWm5JSDA3WEc1OU8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2RhdGEvYmxvYi50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vZGF0YS9maWxlc3lzdGVtLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9kYXRhL2ZpbGVzeXN0ZW0udHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJmaWxlT3BlblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGZpbGVPcGVuKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJmaWxlU2F2ZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGZpbGVTYXZlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJuYXRpdmVGaWxlU3lzdGVtU3VwcG9ydGVkXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gYnJvd3Nlcl9mc19hY2Nlc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5zdXBwb3J0ZWQpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIGJyb3dzZXJfZnNfYWNjZXNzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBicm93c2VyLWZzLWFjY2VzcyAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Jyb3dzZXItZnMtYWNjZXNzL2Rpc3QvZXNtL2luZGV4LmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbnN0YW50cyAqLyBcXFwiLi4vLi4vY29uc3RhbnRzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2Vycm9ycyAqLyBcXFwiLi4vLi4vZXJyb3JzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vdXRpbHMgKi8gXFxcIi4uLy4uL3V0aWxzLnRzXFxcIik7XFxuXFxuXFxuXFxuXFxuY29uc3QgSU5QVVRfQ0hBTkdFX0lOVEVSVkFMX01TID0gNTAwO1xcbmNvbnN0IGZpbGVPcGVuID0gKG9wdHMpID0+IHtcXG4gICAgdmFyIF9hLCBfYiwgX2M7XFxuICAgIGNvbnN0IG1pbWVUeXBlcyA9IChfYSA9IG9wdHMuZXh0ZW5zaW9ucykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlZHVjZSgobWltZVR5cGVzLCB0eXBlKSA9PiB7XFxuICAgICAgICBtaW1lVHlwZXMucHVzaChfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uTUlNRV9UWVBFU1t0eXBlXSk7XFxuICAgICAgICByZXR1cm4gbWltZVR5cGVzO1xcbiAgICB9LCBbXSk7XFxuICAgIGNvbnN0IGV4dGVuc2lvbnMgPSAoX2IgPSBvcHRzLmV4dGVuc2lvbnMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5yZWR1Y2UoKGFjYywgZXh0KSA9PiB7XFxuICAgICAgICBpZiAoZXh0ID09PSBcXFwianBnXFxcIikge1xcbiAgICAgICAgICAgIHJldHVybiBhY2MuY29uY2F0KFxcXCIuanBnXFxcIiwgXFxcIi5qcGVnXFxcIik7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gYWNjLmNvbmNhdChgLiR7ZXh0fWApO1xcbiAgICB9LCBbXSk7XFxuICAgIHJldHVybiAoMCxicm93c2VyX2ZzX2FjY2Vzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmZpbGVPcGVuKSh7XFxuICAgICAgICBkZXNjcmlwdGlvbjogb3B0cy5kZXNjcmlwdGlvbixcXG4gICAgICAgIGV4dGVuc2lvbnMsXFxuICAgICAgICBtaW1lVHlwZXMsXFxuICAgICAgICBtdWx0aXBsZTogKF9jID0gb3B0cy5tdWx0aXBsZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogZmFsc2UsXFxuICAgICAgICBsZWdhY3lTZXR1cDogKHJlc29sdmUsIHJlamVjdCwgaW5wdXQpID0+IHtcXG4gICAgICAgICAgICBjb25zdCBzY2hlZHVsZVJlamVjdGlvbiA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmRlYm91bmNlKShyZWplY3QsIElOUFVUX0NIQU5HRV9JTlRFUlZBTF9NUyk7XFxuICAgICAgICAgICAgY29uc3QgZm9jdXNIYW5kbGVyID0gKCkgPT4ge1xcbiAgICAgICAgICAgICAgICBjaGVja0ZvckZpbGUoKTtcXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRVZFTlQuS0VZVVAsIHNjaGVkdWxlUmVqZWN0aW9uKTtcXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRVZFTlQuUE9JTlRFUl9VUCwgc2NoZWR1bGVSZWplY3Rpb24pO1xcbiAgICAgICAgICAgICAgICBzY2hlZHVsZVJlamVjdGlvbigpO1xcbiAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgY29uc3QgY2hlY2tGb3JGaWxlID0gKCkgPT4ge1xcbiAgICAgICAgICAgICAgICB2YXIgX2E7XFxuICAgICAgICAgICAgICAgIC8vIHRoaXMgaGFjayBtaWdodCBub3Qgd29yayB3aGVuIGV4cGVjdGluZyBtdWx0aXBsZSBmaWxlc1xcbiAgICAgICAgICAgICAgICBpZiAoKF9hID0gaW5wdXQuZmlsZXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGgpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJldCA9IG9wdHMubXVsdGlwbGUgPyBbLi4uaW5wdXQuZmlsZXNdIDogaW5wdXQuZmlsZXNbMF07XFxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJldCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5FVkVOVC5GT0NVUywgZm9jdXNIYW5kbGVyKTtcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XFxuICAgICAgICAgICAgICAgIGNoZWNrRm9yRmlsZSgpO1xcbiAgICAgICAgICAgIH0sIElOUFVUX0NIQU5HRV9JTlRFUlZBTF9NUyk7XFxuICAgICAgICAgICAgcmV0dXJuIChyZWplY3RQcm9taXNlKSA9PiB7XFxuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xcbiAgICAgICAgICAgICAgICBzY2hlZHVsZVJlamVjdGlvbi5jYW5jZWwoKTtcXG4gICAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkVWRU5ULkZPQ1VTLCBmb2N1c0hhbmRsZXIpO1xcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5FVkVOVC5LRVlVUCwgc2NoZWR1bGVSZWplY3Rpb24pO1xcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5FVkVOVC5QT0lOVEVSX1VQLCBzY2hlZHVsZVJlamVjdGlvbik7XFxuICAgICAgICAgICAgICAgIGlmIChyZWplY3RQcm9taXNlKSB7XFxuICAgICAgICAgICAgICAgICAgICAvLyBzbyB0aGF0IHNvbWV0aGluZyBpcyBzaG93biBpbiBjb25zb2xlIGlmIHdlIG5lZWQgdG8gZGVidWcgdGhpc1xcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxcXCJPcGVuaW5nIHRoZSBmaWxlIHdhcyBjYW5jZWxlZCAobGVnYWN5LWZzKS5cXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdFByb21pc2UobmV3IF9lcnJvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5BYm9ydEVycm9yKCkpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfTtcXG4gICAgICAgIH0sXFxuICAgIH0pO1xcbn07XFxuY29uc3QgZmlsZVNhdmUgPSAoYmxvYiwgb3B0cykgPT4ge1xcbiAgICByZXR1cm4gKDAsYnJvd3Nlcl9mc19hY2Nlc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5maWxlU2F2ZSkoYmxvYiwge1xcbiAgICAgICAgZmlsZU5hbWU6IGAke29wdHMubmFtZX0uJHtvcHRzLmV4dGVuc2lvbn1gLFxcbiAgICAgICAgZGVzY3JpcHRpb246IG9wdHMuZGVzY3JpcHRpb24sXFxuICAgICAgICBleHRlbnNpb25zOiBbYC4ke29wdHMuZXh0ZW5zaW9ufWBdLFxcbiAgICB9LCBvcHRzLmZpbGVIYW5kbGUpO1xcbn07XFxuXFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZaR0YwWVM5bWFXeGxjM2x6ZEdWdExuUnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdRVUZOTWtJN1FVRkRjMEk3UVVGRFZqdEJRVU5JTzBGQlYzQkRMRTFCUVUwc2QwSkJRWGRDTEVkQlFVY3NSMEZCUnl4RFFVRkRPMEZCUlRsQ0xFMUJRVTBzVVVGQlVTeEhRVUZITEVOQlFYZERMRWxCU1M5RUxFVkJSVU1zUlVGQlJUczdTVUZOUml4TlFVRk5MRk5CUVZNc1IwRkJSeXhWUVVGSkxFTkJRVU1zVlVGQlZTd3dRMEZCUlN4TlFVRk5MRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzU1VGQlNTeEZRVUZGTEVWQlFVVTdVVUZETlVRc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eHJSRUZCVlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRmFrTXNUMEZCVHl4VFFVRlRMRU5CUVVNN1NVRkRia0lzUTBGQlF5eEZRVUZGTEVWQlFXTXNRMEZCUXl4RFFVRkRPMGxCUlc1Q0xFMUJRVTBzVlVGQlZTeEhRVUZITEZWQlFVa3NRMEZCUXl4VlFVRlZMREJEUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRSUVVOMFJDeEpRVUZKTEVkQlFVY3NTMEZCU3l4TFFVRkxMRVZCUVVVN1dVRkRha0lzVDBGQlR5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dFRRVU53UXp0UlFVTkVMRTlCUVU4c1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRMMElzUTBGQlF5eEZRVUZGTEVWQlFXTXNRMEZCUXl4RFFVRkRPMGxCUlc1Q0xFOUJRVThzTWtSQlFWTXNRMEZCUXp0UlFVTm1MRmRCUVZjc1JVRkJSU3hKUVVGSkxFTkJRVU1zVjBGQlZ6dFJRVU0zUWl4VlFVRlZPMUZCUTFZc1UwRkJVenRSUVVOVUxGRkJRVkVzUlVGQlJTeFZRVUZKTEVOQlFVTXNVVUZCVVN4dFEwRkJTU3hMUVVGTE8xRkJRMmhETEZkQlFWY3NSVUZCUlN4RFFVRkRMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVTdXVUZEZEVNc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnl4blJFRkJVU3hEUVVGRExFMUJRVTBzUlVGQlJTeDNRa0ZCZDBJc1EwRkJReXhEUVVGRE8xbEJRM0pGTEUxQlFVMHNXVUZCV1N4SFFVRkhMRWRCUVVjc1JVRkJSVHRuUWtGRGVFSXNXVUZCV1N4RlFVRkZMRU5CUVVNN1owSkJRMllzVVVGQlVTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExHMUVRVUZYTEVWQlFVVXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF6dG5Ra0ZETVVRc1VVRkJVU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMSGRFUVVGblFpeEZRVUZGTEdsQ1FVRnBRaXhEUVVGRExFTkJRVU03WjBKQlF5OUVMR2xDUVVGcFFpeEZRVUZGTEVOQlFVTTdXVUZEZEVJc1EwRkJReXhEUVVGRE8xbEJRMFlzVFVGQlRTeFpRVUZaTEVkQlFVY3NSMEZCUnl4RlFVRkZPenRuUWtGRGVFSXNlVVJCUVhsRU8yZENRVU42UkN4SlFVRkpMRmRCUVVzc1EwRkJReXhMUVVGTExEQkRRVUZGTEUxQlFVMHNSVUZCUlR0dlFrRkRka0lzVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRE9VUXNUMEZCVHl4RFFVRkRMRWRCUVdNc1EwRkJReXhEUVVGRE8ybENRVU42UWp0WlFVTklMRU5CUVVNc1EwRkJRenRaUVVOR0xIRkNRVUZ4UWl4RFFVRkRMRWRCUVVjc1JVRkJSVHRuUWtGRGVrSXNUVUZCVFN4RFFVRkRMR2RDUVVGblFpeERRVUZETEcxRVFVRlhMRVZCUVVVc1dVRkJXU3hEUVVGRExFTkJRVU03V1VGRGNrUXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRTQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWRCUVVjc1JVRkJSVHRuUWtGRGRrTXNXVUZCV1N4RlFVRkZMRU5CUVVNN1dVRkRha0lzUTBGQlF5eEZRVUZGTEhkQ1FVRjNRaXhEUVVGRExFTkJRVU03V1VGRE4wSXNUMEZCVHl4RFFVRkRMR0ZCUVdFc1JVRkJSU3hGUVVGRk8yZENRVU4yUWl4aFFVRmhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03WjBKQlEzaENMR2xDUVVGcFFpeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMmRDUVVNelFpeE5RVUZOTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zYlVSQlFWY3NSVUZCUlN4WlFVRlpMRU5CUVVNc1EwRkJRenRuUWtGRGRFUXNVVUZCVVN4RFFVRkRMRzFDUVVGdFFpeERRVUZETEcxRVFVRlhMRVZCUVVVc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXp0blFrRkROMFFzVVVGQlVTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExIZEVRVUZuUWl4RlFVRkZMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdaMEpCUTJ4RkxFbEJRVWtzWVVGQllTeEZRVUZGTzI5Q1FVTnFRaXhwUlVGQmFVVTdiMEpCUTJwRkxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNORU5CUVRSRExFTkJRVU1zUTBGQlF6dHZRa0ZETTBRc1lVRkJZU3hEUVVGRExFbEJRVWtzSzBOQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNN2FVSkJRMnBETzFsQlEwZ3NRMEZCUXl4RFFVRkRPMUZCUTBvc1EwRkJRenRMUVVOR0xFTkJRWEZDTEVOQlFVTTdRVUZEZWtJc1EwRkJReXhEUVVGRE8wRkJSVXNzVFVGQlRTeFJRVUZSTEVkQlFVY3NRMEZEZEVJc1NVRkJWU3hGUVVOV0xFbEJVVU1zUlVGRFJDeEZRVUZGTzBsQlEwWXNUMEZCVHl3eVJFRkJVeXhEUVVOa0xFbEJRVWtzUlVGRFNqdFJRVU5GTEZGQlFWRXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFbEJRVWtzU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlR0UlFVTXhReXhYUVVGWExFVkJRVVVzU1VGQlNTeERRVUZETEZkQlFWYzdVVUZETjBJc1ZVRkJWU3hGUVVGRkxFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1MwRkRia01zUlVGRFJDeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVTm9RaXhEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETzBGQlIyMURJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJSaGRHRXZabWxzWlhONWMzUmxiUzUwY3o5a09ETm1JbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3WEc0Z0lFWnBiR1ZYYVhSb1NHRnVaR3hsTEZ4dUlDQm1hV3hsVDNCbGJpQmhjeUJmWm1sc1pVOXdaVzRzWEc0Z0lHWnBiR1ZUWVhabElHRnpJRjltYVd4bFUyRjJaU3hjYmlBZ1JtbHNaVk41YzNSbGJVaGhibVJzWlN4Y2JpQWdjM1Z3Y0c5eWRHVmtJR0Z6SUc1aGRHbDJaVVpwYkdWVGVYTjBaVzFUZFhCd2IzSjBaV1FzWEc1OUlHWnliMjBnWENKaWNtOTNjMlZ5TFdaekxXRmpZMlZ6YzF3aU8xeHVhVzF3YjNKMElIc2dSVlpGVGxRc0lFMUpUVVZmVkZsUVJWTWdmU0JtY205dElGd2lMaTR2WTI5dWMzUmhiblJ6WENJN1hHNXBiWEJ2Y25RZ2V5QkJZbTl5ZEVWeWNtOXlJSDBnWm5KdmJTQmNJaTR1TDJWeWNtOXljMXdpTzF4dWFXMXdiM0owSUhzZ1pHVmliM1Z1WTJVZ2ZTQm1jbTl0SUZ3aUxpNHZkWFJwYkhOY0lqdGNibHh1ZEhsd1pTQkdTVXhGWDBWWVZFVk9VMGxQVGlBOVhHNGdJSHdnWENKbmFXWmNJbHh1SUNCOElGd2lhbkJuWENKY2JpQWdmQ0JjSW5CdVoxd2lYRzRnSUh3Z1hDSnpkbWRjSWx4dUlDQjhJRndpYW5OdmJsd2lYRzRnSUh3Z1hDSmxlR05oYkdsa2NtRjNYQ0pjYmlBZ2ZDQmNJbVY0WTJGc2FXUnlZWGRzYVdKY0lqdGNibHh1WTI5dWMzUWdTVTVRVlZSZlEwaEJUa2RGWDBsT1ZFVlNWa0ZNWDAxVElEMGdOVEF3TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWm1sc1pVOXdaVzRnUFNBOFRTQmxlSFJsYm1SeklHSnZiMnhsWVc0Z2ZDQjFibVJsWm1sdVpXUWdQU0JtWVd4elpUNG9iM0IwY3pvZ2UxeHVJQ0JsZUhSbGJuTnBiMjV6UHpvZ1JrbE1SVjlGV0ZSRlRsTkpUMDViWFR0Y2JpQWdaR1Z6WTNKcGNIUnBiMjQ2SUhOMGNtbHVaenRjYmlBZ2JYVnNkR2x3YkdVL09pQk5PMXh1ZlNrNklGQnliMjFwYzJVOFhHNGdJRTBnWlhoMFpXNWtjeUJtWVd4elpTQjhJSFZ1WkdWbWFXNWxaQ0EvSUVacGJHVlhhWFJvU0dGdVpHeGxJRG9nUm1sc1pWZHBkR2hJWVc1a2JHVmJYVnh1UGlBOVBpQjdYRzRnSUM4dklHRnVJSFZ1YzJGbVpTQlVVeUJvWVdOckxDQmhiR0Z6SUc1dmRDQnRkV05vSUhkbElHTmhiaUJrYnlCQlJrRkpTMXh1SUNCMGVYQmxJRkpsZEZSNWNHVWdQU0JOSUdWNGRHVnVaSE1nWm1Gc2MyVWdmQ0IxYm1SbFptbHVaV1JjYmlBZ0lDQS9JRVpwYkdWWGFYUm9TR0Z1Wkd4bFhHNGdJQ0FnT2lCR2FXeGxWMmwwYUVoaGJtUnNaVnRkTzF4dVhHNGdJR052Ym5OMElHMXBiV1ZVZVhCbGN5QTlJRzl3ZEhNdVpYaDBaVzV6YVc5dWN6OHVjbVZrZFdObEtDaHRhVzFsVkhsd1pYTXNJSFI1Y0dVcElEMCtJSHRjYmlBZ0lDQnRhVzFsVkhsd1pYTXVjSFZ6YUNoTlNVMUZYMVJaVUVWVFczUjVjR1ZkS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUJ0YVcxbFZIbHdaWE03WEc0Z0lIMHNJRnRkSUdGeklITjBjbWx1WjF0ZEtUdGNibHh1SUNCamIyNXpkQ0JsZUhSbGJuTnBiMjV6SUQwZ2IzQjBjeTVsZUhSbGJuTnBiMjV6UHk1eVpXUjFZMlVvS0dGall5d2daWGgwS1NBOVBpQjdYRzRnSUNBZ2FXWWdLR1Y0ZENBOVBUMGdYQ0pxY0dkY0lpa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHRmpZeTVqYjI1allYUW9YQ0l1YW5CblhDSXNJRndpTG1wd1pXZGNJaWs3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCaFkyTXVZMjl1WTJGMEtHQXVKSHRsZUhSOVlDazdYRzRnSUgwc0lGdGRJR0Z6SUhOMGNtbHVaMXRkS1R0Y2JseHVJQ0J5WlhSMWNtNGdYMlpwYkdWUGNHVnVLSHRjYmlBZ0lDQmtaWE5qY21sd2RHbHZiam9nYjNCMGN5NWtaWE5qY21sd2RHbHZiaXhjYmlBZ0lDQmxlSFJsYm5OcGIyNXpMRnh1SUNBZ0lHMXBiV1ZVZVhCbGN5eGNiaUFnSUNCdGRXeDBhWEJzWlRvZ2IzQjBjeTV0ZFd4MGFYQnNaU0EvUHlCbVlXeHpaU3hjYmlBZ0lDQnNaV2RoWTNsVFpYUjFjRG9nS0hKbGMyOXNkbVVzSUhKbGFtVmpkQ3dnYVc1d2RYUXBJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE5qYUdWa2RXeGxVbVZxWldOMGFXOXVJRDBnWkdWaWIzVnVZMlVvY21WcVpXTjBMQ0JKVGxCVlZGOURTRUZPUjBWZlNVNVVSVkpXUVV4ZlRWTXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ1ptOWpkWE5JWVc1a2JHVnlJRDBnS0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JqYUdWamEwWnZja1pwYkdVb0tUdGNiaUFnSUNBZ0lDQWdaRzlqZFcxbGJuUXVZV1JrUlhabGJuUk1hWE4wWlc1bGNpaEZWa1ZPVkM1TFJWbFZVQ3dnYzJOb1pXUjFiR1ZTWldwbFkzUnBiMjRwTzF4dUlDQWdJQ0FnSUNCa2IyTjFiV1Z1ZEM1aFpHUkZkbVZ1ZEV4cGMzUmxibVZ5S0VWV1JVNVVMbEJQU1U1VVJWSmZWVkFzSUhOamFHVmtkV3hsVW1WcVpXTjBhVzl1S1R0Y2JpQWdJQ0FnSUNBZ2MyTm9aV1IxYkdWU1pXcGxZM1JwYjI0b0tUdGNiaUFnSUNBZ0lIMDdYRzRnSUNBZ0lDQmpiMjV6ZENCamFHVmphMFp2Y2tacGJHVWdQU0FvS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQzh2SUhSb2FYTWdhR0ZqYXlCdGFXZG9kQ0J1YjNRZ2QyOXlheUIzYUdWdUlHVjRjR1ZqZEdsdVp5QnRkV3gwYVhCc1pTQm1hV3hsYzF4dUlDQWdJQ0FnSUNCcFppQW9hVzV3ZFhRdVptbHNaWE0vTG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUhKbGRDQTlJRzl3ZEhNdWJYVnNkR2x3YkdVZ1B5QmJMaTR1YVc1d2RYUXVabWxzWlhOZElEb2dhVzV3ZFhRdVptbHNaWE5iTUYwN1hHNGdJQ0FnSUNBZ0lDQWdjbVZ6YjJ4MlpTaHlaWFFnWVhNZ1VtVjBWSGx3WlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMDdYRzRnSUNBZ0lDQnlaWEYxWlhOMFFXNXBiV0YwYVc5dVJuSmhiV1VvS0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0IzYVc1a2IzY3VZV1JrUlhabGJuUk1hWE4wWlc1bGNpaEZWa1ZPVkM1R1QwTlZVeXdnWm05amRYTklZVzVrYkdWeUtUdGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2FXNTBaWEoyWVd3Z1BTQjNhVzVrYjNjdWMyVjBTVzUwWlhKMllXd29LQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQmphR1ZqYTBadmNrWnBiR1VvS1R0Y2JpQWdJQ0FnSUgwc0lFbE9VRlZVWDBOSVFVNUhSVjlKVGxSRlVsWkJURjlOVXlrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnS0hKbGFtVmpkRkJ5YjIxcGMyVXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ1kyeGxZWEpKYm5SbGNuWmhiQ2hwYm5SbGNuWmhiQ2s3WEc0Z0lDQWdJQ0FnSUhOamFHVmtkV3hsVW1WcVpXTjBhVzl1TG1OaGJtTmxiQ2dwTzF4dUlDQWdJQ0FnSUNCM2FXNWtiM2N1Y21WdGIzWmxSWFpsYm5STWFYTjBaVzVsY2loRlZrVk9WQzVHVDBOVlV5d2dabTlqZFhOSVlXNWtiR1Z5S1R0Y2JpQWdJQ0FnSUNBZ1pHOWpkVzFsYm5RdWNtVnRiM1psUlhabGJuUk1hWE4wWlc1bGNpaEZWa1ZPVkM1TFJWbFZVQ3dnYzJOb1pXUjFiR1ZTWldwbFkzUnBiMjRwTzF4dUlDQWdJQ0FnSUNCa2IyTjFiV1Z1ZEM1eVpXMXZkbVZGZG1WdWRFeHBjM1JsYm1WeUtFVldSVTVVTGxCUFNVNVVSVkpmVlZBc0lITmphR1ZrZFd4bFVtVnFaV04wYVc5dUtUdGNiaUFnSUNBZ0lDQWdhV1lnS0hKbGFtVmpkRkJ5YjIxcGMyVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QnpieUIwYUdGMElITnZiV1YwYUdsdVp5QnBjeUJ6YUc5M2JpQnBiaUJqYjI1emIyeGxJR2xtSUhkbElHNWxaV1FnZEc4Z1pHVmlkV2NnZEdocGMxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OdmJHVXVkMkZ5YmloY0lrOXdaVzVwYm1jZ2RHaGxJR1pwYkdVZ2QyRnpJR05oYm1ObGJHVmtJQ2hzWldkaFkza3Rabk1wTGx3aUtUdGNiaUFnSUNBZ0lDQWdJQ0J5WldwbFkzUlFjbTl0YVhObEtHNWxkeUJCWW05eWRFVnljbTl5S0NrcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMHNYRzRnSUgwcElHRnpJRkJ5YjIxcGMyVThVbVYwVkhsd1pUNDdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWm1sc1pWTmhkbVVnUFNBb1hHNGdJR0pzYjJJNklFSnNiMklzWEc0Z0lHOXdkSE02SUh0Y2JpQWdJQ0F2S2lvZ2MzVndjR3g1SUhkcGRHaHZkWFFnZEdobElHVjRkR1Z1YzJsdmJpQXFMMXh1SUNBZ0lHNWhiV1U2SUhOMGNtbHVaenRjYmlBZ0lDQXZLaW9nWm1sc1pTQmxlSFJsYm5OcGIyNGdLaTljYmlBZ0lDQmxlSFJsYm5OcGIyNDZJRVpKVEVWZlJWaFVSVTVUU1U5T08xeHVJQ0FnSUdSbGMyTnlhWEIwYVc5dU9pQnpkSEpwYm1jN1hHNGdJQ0FnTHlvcUlHVjRhWE4wYVc1bklFWnBiR1ZUZVhOMFpXMUlZVzVrYkdVZ0tpOWNiaUFnSUNCbWFXeGxTR0Z1Wkd4bFB6b2dSbWxzWlZONWMzUmxiVWhoYm1Sc1pTQjhJRzUxYkd3N1hHNGdJSDBzWEc0cElEMCtJSHRjYmlBZ2NtVjBkWEp1SUY5bWFXeGxVMkYyWlNoY2JpQWdJQ0JpYkc5aUxGeHVJQ0FnSUh0Y2JpQWdJQ0FnSUdacGJHVk9ZVzFsT2lCZ0pIdHZjSFJ6TG01aGJXVjlMaVI3YjNCMGN5NWxlSFJsYm5OcGIyNTlZQ3hjYmlBZ0lDQWdJR1JsYzJOeWFYQjBhVzl1T2lCdmNIUnpMbVJsYzJOeWFYQjBhVzl1TEZ4dUlDQWdJQ0FnWlhoMFpXNXphVzl1Y3pvZ1cyQXVKSHR2Y0hSekxtVjRkR1Z1YzJsdmJuMWdYU3hjYmlBZ0lDQjlMRnh1SUNBZ0lHOXdkSE11Wm1sc1pVaGhibVJzWlN4Y2JpQWdLVHRjYm4wN1hHNWNibVY0Y0c5eWRDQjBlWEJsSUhzZ1JtbHNaVk41YzNSbGJVaGhibVJzWlNCOU8xeHVaWGh3YjNKMElIc2dibUYwYVhabFJtbHNaVk41YzNSbGJWTjFjSEJ2Y25SbFpDQjlPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9kYXRhL2ZpbGVzeXN0ZW0udHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2RhdGEvaW5kZXgudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9kYXRhL2luZGV4LnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImxvYWRGcm9tQmxvYlxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9ibG9iX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18ubG9hZEZyb21CbG9iKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJsb2FkRnJvbUpTT05cXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfanNvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmxvYWRGcm9tSlNPTiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwic2F2ZUFzSlNPTlxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9qc29uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uc2F2ZUFzSlNPTiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZXhwb3J0Q2FudmFzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZXhwb3J0Q2FudmFzKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY2xpcGJvYXJkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jbGlwYm9hcmQgKi8gXFxcIi4uLy4uL2NsaXBib2FyZC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfZXhwb3J0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZS9leHBvcnQgKi8gXFxcIi4uLy4uL3NjZW5lL2V4cG9ydC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmxvYl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9ibG9iICovIFxcXCIuLi8uLi9kYXRhL2Jsb2IudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2ZpbGVzeXN0ZW1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vZmlsZXN5c3RlbSAqLyBcXFwiLi4vLi4vZGF0YS9maWxlc3lzdGVtLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9qc29uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2pzb24gKi8gXFxcIi4uLy4uL2RhdGEvanNvbi50c1xcXCIpO1xcbnZhciBfX2F3YWl0ZXIgPSAodW5kZWZpbmVkICYmIHVuZGVmaW5lZC5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XFxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXFxcInRocm93XFxcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcXG4gICAgfSk7XFxufTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBleHBvcnRDYW52YXMgPSAodHlwZSwgZWxlbWVudHMsIGFwcFN0YXRlLCBmaWxlcywgeyBleHBvcnRCYWNrZ3JvdW5kLCBleHBvcnRQYWRkaW5nID0gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkRFRkFVTFRfRVhQT1JUX1BBRERJTkcsIHZpZXdCYWNrZ3JvdW5kQ29sb3IsIG5hbWUsIGZpbGVIYW5kbGUgPSBudWxsLCB9KSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgaWYgKGVsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImFsZXJ0cy5jYW5ub3RFeHBvcnRFbXB0eUNhbnZhc1xcXCIpKTtcXG4gICAgfVxcbiAgICBpZiAodHlwZSA9PT0gXFxcInN2Z1xcXCIgfHwgdHlwZSA9PT0gXFxcImNsaXBib2FyZC1zdmdcXFwiKSB7XFxuICAgICAgICBjb25zdCB0ZW1wU3ZnID0geWllbGQgKDAsX3NjZW5lX2V4cG9ydF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmV4cG9ydFRvU3ZnKShlbGVtZW50cywge1xcbiAgICAgICAgICAgIGV4cG9ydEJhY2tncm91bmQsXFxuICAgICAgICAgICAgZXhwb3J0V2l0aERhcmtNb2RlOiBhcHBTdGF0ZS5leHBvcnRXaXRoRGFya01vZGUsXFxuICAgICAgICAgICAgdmlld0JhY2tncm91bmRDb2xvcixcXG4gICAgICAgICAgICBleHBvcnRQYWRkaW5nLFxcbiAgICAgICAgICAgIGV4cG9ydFNjYWxlOiBhcHBTdGF0ZS5leHBvcnRTY2FsZSxcXG4gICAgICAgICAgICBleHBvcnRFbWJlZFNjZW5lOiBhcHBTdGF0ZS5leHBvcnRFbWJlZFNjZW5lICYmIHR5cGUgPT09IFxcXCJzdmdcXFwiLFxcbiAgICAgICAgfSwgZmlsZXMpO1xcbiAgICAgICAgaWYgKHR5cGUgPT09IFxcXCJzdmdcXFwiKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHlpZWxkICgwLF9maWxlc3lzdGVtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZmlsZVNhdmUpKG5ldyBCbG9iKFt0ZW1wU3ZnLm91dGVySFRNTF0sIHsgdHlwZTogX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLk1JTUVfVFlQRVMuc3ZnIH0pLCB7XFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcXFwiRXhwb3J0IHRvIFNWR1xcXCIsXFxuICAgICAgICAgICAgICAgIG5hbWUsXFxuICAgICAgICAgICAgICAgIGV4dGVuc2lvbjogXFxcInN2Z1xcXCIsXFxuICAgICAgICAgICAgICAgIGZpbGVIYW5kbGUsXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIGlmICh0eXBlID09PSBcXFwiY2xpcGJvYXJkLXN2Z1xcXCIpIHtcXG4gICAgICAgICAgICB5aWVsZCAoMCxfY2xpcGJvYXJkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY29weVRleHRUb1N5c3RlbUNsaXBib2FyZCkodGVtcFN2Zy5vdXRlckhUTUwpO1xcbiAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBjb25zdCB0ZW1wQ2FudmFzID0geWllbGQgKDAsX3NjZW5lX2V4cG9ydF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmV4cG9ydFRvQ2FudmFzKShlbGVtZW50cywgYXBwU3RhdGUsIGZpbGVzLCB7XFxuICAgICAgICBleHBvcnRCYWNrZ3JvdW5kLFxcbiAgICAgICAgdmlld0JhY2tncm91bmRDb2xvcixcXG4gICAgICAgIGV4cG9ydFBhZGRpbmcsXFxuICAgIH0pO1xcbiAgICB0ZW1wQ2FudmFzLnN0eWxlLmRpc3BsYXkgPSBcXFwibm9uZVxcXCI7XFxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVtcENhbnZhcyk7XFxuICAgIGxldCBibG9iID0geWllbGQgKDAsX2Jsb2JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5jYW52YXNUb0Jsb2IpKHRlbXBDYW52YXMpO1xcbiAgICB0ZW1wQ2FudmFzLnJlbW92ZSgpO1xcbiAgICBpZiAodHlwZSA9PT0gXFxcInBuZ1xcXCIpIHtcXG4gICAgICAgIGlmIChhcHBTdGF0ZS5leHBvcnRFbWJlZFNjZW5lKSB7XFxuICAgICAgICAgICAgYmxvYiA9IHlpZWxkICh5aWVsZCBQcm9taXNlLmFsbCgvKiEgaW1wb3J0KCkgfCBpbWFnZSAqL1tfX3dlYnBhY2tfcmVxdWlyZV9fLmUoXFxcInZlbmRvclxcXCIpLCBfX3dlYnBhY2tfcmVxdWlyZV9fLmUoXFxcImltYWdlXFxcIildKS50aGVuKF9fd2VicGFja19yZXF1aXJlX18uYmluZChfX3dlYnBhY2tfcmVxdWlyZV9fLCAvKiEgLi9pbWFnZSAqLyBcXFwiLi4vLi4vZGF0YS9pbWFnZS50c1xcXCIpKSkuZW5jb2RlUG5nTWV0YWRhdGEoe1xcbiAgICAgICAgICAgICAgICBibG9iLFxcbiAgICAgICAgICAgICAgICBtZXRhZGF0YTogKDAsX2pzb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5zZXJpYWxpemVBc0pTT04pKGVsZW1lbnRzLCBhcHBTdGF0ZSwgZmlsZXMsIFxcXCJsb2NhbFxcXCIpLFxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHlpZWxkICgwLF9maWxlc3lzdGVtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZmlsZVNhdmUpKGJsb2IsIHtcXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXFxcIkV4cG9ydCB0byBQTkdcXFwiLFxcbiAgICAgICAgICAgIG5hbWUsXFxuICAgICAgICAgICAgZXh0ZW5zaW9uOiBcXFwicG5nXFxcIixcXG4gICAgICAgICAgICBmaWxlSGFuZGxlLFxcbiAgICAgICAgfSk7XFxuICAgIH1cXG4gICAgZWxzZSBpZiAodHlwZSA9PT0gXFxcImNsaXBib2FyZFxcXCIpIHtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgeWllbGQgKDAsX2NsaXBib2FyZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNvcHlCbG9iVG9DbGlwYm9hcmRBc1BuZykoYmxvYik7XFxuICAgICAgICB9XFxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcXG4gICAgICAgICAgICBpZiAoZXJyb3IubmFtZSA9PT0gXFxcIkNBTlZBU19QT1NTSUJMWV9UT09fQklHXFxcIikge1xcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udCkoXFxcImFsZXJ0cy5jb3VsZE5vdENvcHlUb0NsaXBib2FyZFxcXCIpKTtcXG4gICAgICAgIH1cXG4gICAgfVxcbn0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WkdGMFlTOXBibVJsZUM1MGN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenRCUVVkelFqdEJRVU0wUXp0QlFVVjBRenRCUVVOclF6dEJRVWQ0UWp0QlFVTnZRanRCUVVOcVFqdEJRVVZJTzBGQlExazdRVUZGTTBNc1RVRkJUU3haUVVGWkxFZEJRVWNzUTBGRE1VSXNTVUZCWjBJc1JVRkRhRUlzVVVGQlowUXNSVUZEYUVRc1VVRkJhMElzUlVGRGJFSXNTMEZCYTBJc1JVRkRiRUlzUlVGRFJTeG5Ra0ZCWjBJc1JVRkRhRUlzWVVGQllTeEhRVUZITERoRVFVRnpRaXhGUVVOMFF5eHRRa0ZCYlVJc1JVRkRia0lzU1VGQlNTeEZRVU5LTEZWQlFWVXNSMEZCUnl4SlFVRkpMRWRCVDJ4Q0xFVkJRMFFzUlVGQlJUdEpRVU5HTEVsQlFVa3NVVUZCVVN4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFVkJRVVU3VVVGRGVrSXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXgzUTBGQlF5eERRVUZETEdkRFFVRm5ReXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU4wUkR0SlFVTkVMRWxCUVVrc1NVRkJTU3hMUVVGTExFdEJRVXNzU1VGQlNTeEpRVUZKTEV0QlFVc3NaVUZCWlN4RlFVRkZPMUZCUXpsRExFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNNRVJCUVZjc1EwRkRMMElzVVVGQlVTeEZRVU5TTzFsQlEwVXNaMEpCUVdkQ08xbEJRMmhDTEd0Q1FVRnJRaXhGUVVGRkxGRkJRVkVzUTBGQlF5eHJRa0ZCYTBJN1dVRkRMME1zYlVKQlFXMUNPMWxCUTI1Q0xHRkJRV0U3V1VGRFlpeFhRVUZYTEVWQlFVVXNVVUZCVVN4RFFVRkRMRmRCUVZjN1dVRkRha01zWjBKQlFXZENMRVZCUVVVc1VVRkJVU3hEUVVGRExHZENRVUZuUWl4SlFVRkpMRWxCUVVrc1MwRkJTeXhMUVVGTE8xTkJRemxFTEVWQlEwUXNTMEZCU3l4RFFVTk9MRU5CUVVNN1VVRkRSaXhKUVVGSkxFbEJRVWtzUzBGQlN5eExRVUZMTEVWQlFVVTdXVUZEYkVJc1QwRkJUeXhOUVVGTkxIRkVRVUZSTEVOQlEyNUNMRWxCUVVrc1NVRkJTU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1NVRkJTU3hGUVVGRkxITkVRVUZqTEVWQlFVVXNRMEZCUXl4RlFVTjJSRHRuUWtGRFJTeFhRVUZYTEVWQlFVVXNaVUZCWlR0blFrRkROVUlzU1VGQlNUdG5Ra0ZEU2l4VFFVRlRMRVZCUVVVc1MwRkJTenRuUWtGRGFFSXNWVUZCVlR0aFFVTllMRU5CUTBZc1EwRkJRenRUUVVOSU8yRkJRVTBzU1VGQlNTeEpRVUZKTEV0QlFVc3NaVUZCWlN4RlFVRkZPMWxCUTI1RExFMUJRVTBzY1VWQlFYbENMRU5CUVVNc1QwRkJUeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFsQlEyNUVMRTlCUVU4N1UwRkRVanRMUVVOR08wbEJSVVFzVFVGQlRTeFZRVUZWTEVkQlFVY3NUVUZCVFN3MlJFRkJZeXhEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVXNTMEZCU3l4RlFVRkZPMUZCUTJwRkxHZENRVUZuUWp0UlFVTm9RaXh0UWtGQmJVSTdVVUZEYmtJc1lVRkJZVHRMUVVOa0xFTkJRVU1zUTBGQlF6dEpRVU5JTEZWQlFWVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF6dEpRVU5zUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0SlFVTjBReXhKUVVGSkxFbEJRVWtzUjBGQlJ5eE5RVUZOTEcxRVFVRlpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03U1VGRE1VTXNWVUZCVlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRE8wbEJSWEJDTEVsQlFVa3NTVUZCU1N4TFFVRkxMRXRCUVVzc1JVRkJSVHRSUVVOc1FpeEpRVUZKTEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUlVGQlJUdFpRVU0zUWl4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVOWUxFMUJRVTBzSzB4QlFXbEVMRU5CUTNoRUxFTkJRVU1zYVVKQlFXbENMRU5CUVVNN1owSkJRMnhDTEVsQlFVazdaMEpCUTBvc1VVRkJVU3hGUVVGRkxITkVRVUZsTEVOQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hMUVVGTExFVkJRVVVzVDBGQlR5eERRVUZETzJGQlF6bEVMRU5CUVVNc1EwRkJRenRUUVVOS08xRkJSVVFzVDBGQlR5eE5RVUZOTEhGRVFVRlJMRU5CUVVNc1NVRkJTU3hGUVVGRk8xbEJRekZDTEZkQlFWY3NSVUZCUlN4bFFVRmxPMWxCUXpWQ0xFbEJRVWs3V1VGRFNpeFRRVUZUTEVWQlFVVXNTMEZCU3p0WlFVTm9RaXhWUVVGVk8xTkJRMWdzUTBGQlF5eERRVUZETzB0QlEwbzdVMEZCVFN4SlFVRkpMRWxCUVVrc1MwRkJTeXhYUVVGWExFVkJRVVU3VVVGREwwSXNTVUZCU1R0WlFVTkdMRTFCUVUwc2IwVkJRWGRDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1UwRkRkRU03VVVGQlF5eFBRVUZQTEV0QlFWVXNSVUZCUlR0WlFVTnVRaXhKUVVGSkxFdEJRVXNzUTBGQlF5eEpRVUZKTEV0QlFVc3NlVUpCUVhsQ0xFVkJRVVU3WjBKQlF6VkRMRTFCUVUwc1MwRkJTeXhEUVVGRE8yRkJRMkk3V1VGRFJDeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMSGREUVVGRExFTkJRVU1zWjBOQlFXZERMRU5CUVVNc1EwRkJReXhEUVVGRE8xTkJRM1JFTzB0QlEwWTdRVUZEU0N4RFFVRkRMRVZCUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZaR0YwWVM5cGJtUmxlQzUwY3o5bU1EWmhJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3WEc0Z0lHTnZjSGxDYkc5aVZHOURiR2x3WW05aGNtUkJjMUJ1Wnl4Y2JpQWdZMjl3ZVZSbGVIUlViMU41YzNSbGJVTnNhWEJpYjJGeVpDeGNibjBnWm5KdmJTQmNJaTR1TDJOc2FYQmliMkZ5WkZ3aU8xeHVhVzF3YjNKMElIc2dSRVZHUVZWTVZGOUZXRkJQVWxSZlVFRkVSRWxPUnl3Z1RVbE5SVjlVV1ZCRlV5QjlJR1p5YjIwZ1hDSXVMaTlqYjI1emRHRnVkSE5jSWp0Y2JtbHRjRzl5ZENCN0lFNXZia1JsYkdWMFpXUkZlR05oYkdsa2NtRjNSV3hsYldWdWRDQjlJR1p5YjIwZ1hDSXVMaTlsYkdWdFpXNTBMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdleUIwSUgwZ1puSnZiU0JjSWk0dUwya3hPRzVjSWp0Y2JtbHRjRzl5ZENCN0lHVjRjRzl5ZEZSdlEyRnVkbUZ6TENCbGVIQnZjblJVYjFOMlp5QjlJR1p5YjIwZ1hDSXVMaTl6WTJWdVpTOWxlSEJ2Y25SY0lqdGNibWx0Y0c5eWRDQjdJRVY0Y0c5eWRGUjVjR1VnZlNCbWNtOXRJRndpTGk0dmMyTmxibVV2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUVGd2NGTjBZWFJsTENCQ2FXNWhjbmxHYVd4bGN5QjlJR1p5YjIwZ1hDSXVMaTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnWTJGdWRtRnpWRzlDYkc5aUlIMGdabkp2YlNCY0lpNHZZbXh2WWx3aU8xeHVhVzF3YjNKMElIc2dabWxzWlZOaGRtVXNJRVpwYkdWVGVYTjBaVzFJWVc1a2JHVWdmU0JtY205dElGd2lMaTltYVd4bGMzbHpkR1Z0WENJN1hHNXBiWEJ2Y25RZ2V5QnpaWEpwWVd4cGVtVkJjMHBUVDA0Z2ZTQm1jbTl0SUZ3aUxpOXFjMjl1WENJN1hHNWNibVY0Y0c5eWRDQjdJR3h2WVdSR2NtOXRRbXh2WWlCOUlHWnliMjBnWENJdUwySnNiMkpjSWp0Y2JtVjRjRzl5ZENCN0lHeHZZV1JHY205dFNsTlBUaXdnYzJGMlpVRnpTbE5QVGlCOUlHWnliMjBnWENJdUwycHpiMjVjSWp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdWNGNHOXlkRU5oYm5aaGN5QTlJR0Z6ZVc1aklDaGNiaUFnZEhsd1pUb2dSWGh3YjNKMFZIbHdaU3hjYmlBZ1pXeGxiV1Z1ZEhNNklISmxZV1J2Ym14NUlFNXZia1JsYkdWMFpXUkZlR05oYkdsa2NtRjNSV3hsYldWdWRGdGRMRnh1SUNCaGNIQlRkR0YwWlRvZ1FYQndVM1JoZEdVc1hHNGdJR1pwYkdWek9pQkNhVzVoY25sR2FXeGxjeXhjYmlBZ2UxeHVJQ0FnSUdWNGNHOXlkRUpoWTJ0bmNtOTFibVFzWEc0Z0lDQWdaWGh3YjNKMFVHRmtaR2x1WnlBOUlFUkZSa0ZWVEZSZlJWaFFUMUpVWDFCQlJFUkpUa2NzWEc0Z0lDQWdkbWxsZDBKaFkydG5jbTkxYm1SRGIyeHZjaXhjYmlBZ0lDQnVZVzFsTEZ4dUlDQWdJR1pwYkdWSVlXNWtiR1VnUFNCdWRXeHNMRnh1SUNCOU9pQjdYRzRnSUNBZ1pYaHdiM0owUW1GamEyZHliM1Z1WkRvZ1ltOXZiR1ZoYmp0Y2JpQWdJQ0JsZUhCdmNuUlFZV1JrYVc1blB6b2diblZ0WW1WeU8xeHVJQ0FnSUhacFpYZENZV05yWjNKdmRXNWtRMjlzYjNJNklITjBjbWx1Wnp0Y2JpQWdJQ0J1WVcxbE9pQnpkSEpwYm1jN1hHNGdJQ0FnWm1sc1pVaGhibVJzWlQ4NklFWnBiR1ZUZVhOMFpXMUlZVzVrYkdVZ2ZDQnVkV3hzTzF4dUlDQjlMRnh1S1NBOVBpQjdYRzRnSUdsbUlDaGxiR1Z0Wlc1MGN5NXNaVzVuZEdnZ1BUMDlJREFwSUh0Y2JpQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9kQ2hjSW1Gc1pYSjBjeTVqWVc1dWIzUkZlSEJ2Y25SRmJYQjBlVU5oYm5aaGMxd2lLU2s3WEc0Z0lIMWNiaUFnYVdZZ0tIUjVjR1VnUFQwOUlGd2ljM1puWENJZ2ZId2dkSGx3WlNBOVBUMGdYQ0pqYkdsd1ltOWhjbVF0YzNablhDSXBJSHRjYmlBZ0lDQmpiMjV6ZENCMFpXMXdVM1puSUQwZ1lYZGhhWFFnWlhod2IzSjBWRzlUZG1jb1hHNGdJQ0FnSUNCbGJHVnRaVzUwY3l4Y2JpQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ1pYaHdiM0owUW1GamEyZHliM1Z1WkN4Y2JpQWdJQ0FnSUNBZ1pYaHdiM0owVjJsMGFFUmhjbXROYjJSbE9pQmhjSEJUZEdGMFpTNWxlSEJ2Y25SWGFYUm9SR0Z5YTAxdlpHVXNYRzRnSUNBZ0lDQWdJSFpwWlhkQ1lXTnJaM0p2ZFc1a1EyOXNiM0lzWEc0Z0lDQWdJQ0FnSUdWNGNHOXlkRkJoWkdScGJtY3NYRzRnSUNBZ0lDQWdJR1Y0Y0c5eWRGTmpZV3hsT2lCaGNIQlRkR0YwWlM1bGVIQnZjblJUWTJGc1pTeGNiaUFnSUNBZ0lDQWdaWGh3YjNKMFJXMWlaV1JUWTJWdVpUb2dZWEJ3VTNSaGRHVXVaWGh3YjNKMFJXMWlaV1JUWTJWdVpTQW1KaUIwZVhCbElEMDlQU0JjSW5OMloxd2lMRnh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJR1pwYkdWekxGeHVJQ0FnSUNrN1hHNGdJQ0FnYVdZZ0tIUjVjR1VnUFQwOUlGd2ljM1puWENJcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCaGQyRnBkQ0JtYVd4bFUyRjJaU2hjYmlBZ0lDQWdJQ0FnYm1WM0lFSnNiMklvVzNSbGJYQlRkbWN1YjNWMFpYSklWRTFNWFN3Z2V5QjBlWEJsT2lCTlNVMUZYMVJaVUVWVExuTjJaeUI5S1N4Y2JpQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJR1JsYzJOeWFYQjBhVzl1T2lCY0lrVjRjRzl5ZENCMGJ5QlRWa2RjSWl4Y2JpQWdJQ0FnSUNBZ0lDQnVZVzFsTEZ4dUlDQWdJQ0FnSUNBZ0lHVjRkR1Z1YzJsdmJqb2dYQ0p6ZG1kY0lpeGNiaUFnSUNBZ0lDQWdJQ0JtYVd4bFNHRnVaR3hsTEZ4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tIUjVjR1VnUFQwOUlGd2lZMnhwY0dKdllYSmtMWE4yWjF3aUtTQjdYRzRnSUNBZ0lDQmhkMkZwZENCamIzQjVWR1Y0ZEZSdlUzbHpkR1Z0UTJ4cGNHSnZZWEprS0hSbGJYQlRkbWN1YjNWMFpYSklWRTFNS1R0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JqYjI1emRDQjBaVzF3UTJGdWRtRnpJRDBnWVhkaGFYUWdaWGh3YjNKMFZHOURZVzUyWVhNb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQm1hV3hsY3l3Z2UxeHVJQ0FnSUdWNGNHOXlkRUpoWTJ0bmNtOTFibVFzWEc0Z0lDQWdkbWxsZDBKaFkydG5jbTkxYm1SRGIyeHZjaXhjYmlBZ0lDQmxlSEJ2Y25SUVlXUmthVzVuTEZ4dUlDQjlLVHRjYmlBZ2RHVnRjRU5oYm5aaGN5NXpkSGxzWlM1a2FYTndiR0Y1SUQwZ1hDSnViMjVsWENJN1hHNGdJR1J2WTNWdFpXNTBMbUp2WkhrdVlYQndaVzVrUTJocGJHUW9kR1Z0Y0VOaGJuWmhjeWs3WEc0Z0lHeGxkQ0JpYkc5aUlEMGdZWGRoYVhRZ1kyRnVkbUZ6Vkc5Q2JHOWlLSFJsYlhCRFlXNTJZWE1wTzF4dUlDQjBaVzF3UTJGdWRtRnpMbkpsYlc5MlpTZ3BPMXh1WEc0Z0lHbG1JQ2gwZVhCbElEMDlQU0JjSW5CdVoxd2lLU0I3WEc0Z0lDQWdhV1lnS0dGd2NGTjBZWFJsTG1WNGNHOXlkRVZ0WW1Wa1UyTmxibVVwSUh0Y2JpQWdJQ0FnSUdKc2IySWdQU0JoZDJGcGRDQW9YRzRnSUNBZ0lDQWdJR0YzWVdsMElHbHRjRzl5ZENndktpQjNaV0p3WVdOclEyaDFibXRPWVcxbE9pQmNJbWx0WVdkbFhDSWdLaThnWENJdUwybHRZV2RsWENJcFhHNGdJQ0FnSUNBcExtVnVZMjlrWlZCdVowMWxkR0ZrWVhSaEtIdGNiaUFnSUNBZ0lDQWdZbXh2WWl4Y2JpQWdJQ0FnSUNBZ2JXVjBZV1JoZEdFNklITmxjbWxoYkdsNlpVRnpTbE5QVGlobGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVc0lHWnBiR1Z6TENCY0lteHZZMkZzWENJcExGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUdGM1lXbDBJR1pwYkdWVFlYWmxLR0pzYjJJc0lIdGNiaUFnSUNBZ0lHUmxjMk55YVhCMGFXOXVPaUJjSWtWNGNHOXlkQ0IwYnlCUVRrZGNJaXhjYmlBZ0lDQWdJRzVoYldVc1hHNGdJQ0FnSUNCbGVIUmxibk5wYjI0NklGd2ljRzVuWENJc1hHNGdJQ0FnSUNCbWFXeGxTR0Z1Wkd4bExGeHVJQ0FnSUgwcE8xeHVJQ0I5SUdWc2MyVWdhV1lnS0hSNWNHVWdQVDA5SUZ3aVkyeHBjR0p2WVhKa1hDSXBJSHRjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnWVhkaGFYUWdZMjl3ZVVKc2IySlViME5zYVhCaWIyRnlaRUZ6VUc1bktHSnNiMklwTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1Z5Y205eU9pQmhibmtwSUh0Y2JpQWdJQ0FnSUdsbUlDaGxjbkp2Y2k1dVlXMWxJRDA5UFNCY0lrTkJUbFpCVTE5UVQxTlRTVUpNV1Y5VVQwOWZRa2xIWENJcElIdGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ1pYSnliM0k3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9kQ2hjSW1Gc1pYSjBjeTVqYjNWc1pFNXZkRU52Y0hsVWIwTnNhWEJpYjJGeVpGd2lLU2s3WEc0Z0lDQWdmVnh1SUNCOVhHNTlPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9kYXRhL2luZGV4LnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9kYXRhL2pzb24udHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2RhdGEvanNvbi50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInNlcmlhbGl6ZUFzSlNPTlxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHNlcmlhbGl6ZUFzSlNPTiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwic2F2ZUFzSlNPTlxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHNhdmVBc0pTT04pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImxvYWRGcm9tSlNPTlxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGxvYWRGcm9tSlNPTiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNWYWxpZEV4Y2FsaWRyYXdEYXRhXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNWYWxpZEV4Y2FsaWRyYXdEYXRhKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpc1ZhbGlkTGlicmFyeVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlzVmFsaWRMaWJyYXJ5KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJzYXZlTGlicmFyeUFzSlNPTlxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHNhdmVMaWJyYXJ5QXNKU09OKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpbXBvcnRMaWJyYXJ5RnJvbUpTT05cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpbXBvcnRMaWJyYXJ5RnJvbUpTT04pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9maWxlc3lzdGVtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2ZpbGVzeXN0ZW0gKi8gXFxcIi4uLy4uL2RhdGEvZmlsZXN5c3RlbS50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYXBwU3RhdGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2FwcFN0YXRlICovIFxcXCIuLi8uLi9hcHBTdGF0ZS50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmxvYl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9ibG9iICovIFxcXCIuLi8uLi9kYXRhL2Jsb2IudHNcXFwiKTtcXG52YXIgX19hd2FpdGVyID0gKHVuZGVmaW5lZCAmJiB1bmRlZmluZWQuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XFxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1xcXCJ0aHJvd1xcXCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XFxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XFxuICAgIH0pO1xcbn07XFxuXFxuXFxuXFxuXFxuXFxuLyoqXFxuICogU3RyaXBzIG91dCBmaWxlcyB3aGljaCBhcmUgb25seSByZWZlcmVuY2VkIGJ5IGRlbGV0ZWQgZWxlbWVudHNcXG4gKi9cXG5jb25zdCBmaWx0ZXJPdXREZWxldGVkRmlsZXMgPSAoZWxlbWVudHMsIGZpbGVzKSA9PiB7XFxuICAgIGNvbnN0IG5leHRGaWxlcyA9IHt9O1xcbiAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgZWxlbWVudHMpIHtcXG4gICAgICAgIGlmICghZWxlbWVudC5pc0RlbGV0ZWQgJiZcXG4gICAgICAgICAgICBcXFwiZmlsZUlkXFxcIiBpbiBlbGVtZW50ICYmXFxuICAgICAgICAgICAgZWxlbWVudC5maWxlSWQgJiZcXG4gICAgICAgICAgICBmaWxlc1tlbGVtZW50LmZpbGVJZF0pIHtcXG4gICAgICAgICAgICBuZXh0RmlsZXNbZWxlbWVudC5maWxlSWRdID0gZmlsZXNbZWxlbWVudC5maWxlSWRdO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiBuZXh0RmlsZXM7XFxufTtcXG5jb25zdCBzZXJpYWxpemVBc0pTT04gPSAoZWxlbWVudHMsIGFwcFN0YXRlLCBmaWxlcywgdHlwZSkgPT4ge1xcbiAgICBjb25zdCBkYXRhID0ge1xcbiAgICAgICAgdHlwZTogX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkVYUE9SVF9EQVRBX1RZUEVTLmV4Y2FsaWRyYXcsXFxuICAgICAgICB2ZXJzaW9uOiBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uVkVSU0lPTlMuZXhjYWxpZHJhdyxcXG4gICAgICAgIHNvdXJjZTogX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkVYUE9SVF9TT1VSQ0UsXFxuICAgICAgICBlbGVtZW50czogdHlwZSA9PT0gXFxcImxvY2FsXFxcIlxcbiAgICAgICAgICAgID8gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5jbGVhckVsZW1lbnRzRm9yRXhwb3J0KShlbGVtZW50cylcXG4gICAgICAgICAgICA6ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uY2xlYXJFbGVtZW50c0ZvckRhdGFiYXNlKShlbGVtZW50cyksXFxuICAgICAgICBhcHBTdGF0ZTogdHlwZSA9PT0gXFxcImxvY2FsXFxcIlxcbiAgICAgICAgICAgID8gKDAsX2FwcFN0YXRlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uY2xlYW5BcHBTdGF0ZUZvckV4cG9ydCkoYXBwU3RhdGUpXFxuICAgICAgICAgICAgOiAoMCxfYXBwU3RhdGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5jbGVhckFwcFN0YXRlRm9yRGF0YWJhc2UpKGFwcFN0YXRlKSxcXG4gICAgICAgIGZpbGVzOiB0eXBlID09PSBcXFwibG9jYWxcXFwiXFxuICAgICAgICAgICAgPyBmaWx0ZXJPdXREZWxldGVkRmlsZXMoZWxlbWVudHMsIGZpbGVzKVxcbiAgICAgICAgICAgIDogLy8gd2lsbCBiZSBzdHJpcHBlZCBmcm9tIEpTT05cXG4gICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxcbiAgICB9O1xcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMik7XFxufTtcXG5jb25zdCBzYXZlQXNKU09OID0gKGVsZW1lbnRzLCBhcHBTdGF0ZSwgZmlsZXMpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICBjb25zdCBzZXJpYWxpemVkID0gc2VyaWFsaXplQXNKU09OKGVsZW1lbnRzLCBhcHBTdGF0ZSwgZmlsZXMsIFxcXCJsb2NhbFxcXCIpO1xcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3NlcmlhbGl6ZWRdLCB7XFxuICAgICAgICB0eXBlOiBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uTUlNRV9UWVBFUy5leGNhbGlkcmF3LFxcbiAgICB9KTtcXG4gICAgY29uc3QgZmlsZUhhbmRsZSA9IHlpZWxkICgwLF9maWxlc3lzdGVtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZmlsZVNhdmUpKGJsb2IsIHtcXG4gICAgICAgIG5hbWU6IGFwcFN0YXRlLm5hbWUsXFxuICAgICAgICBleHRlbnNpb246IFxcXCJleGNhbGlkcmF3XFxcIixcXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcXFwiRXhjYWxpZHJhdyBmaWxlXFxcIixcXG4gICAgICAgIGZpbGVIYW5kbGU6ICgwLF9ibG9iX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uaXNJbWFnZUZpbGVIYW5kbGUpKGFwcFN0YXRlLmZpbGVIYW5kbGUpXFxuICAgICAgICAgICAgPyBudWxsXFxuICAgICAgICAgICAgOiBhcHBTdGF0ZS5maWxlSGFuZGxlLFxcbiAgICB9KTtcXG4gICAgcmV0dXJuIHsgZmlsZUhhbmRsZSB9O1xcbn0pO1xcbmNvbnN0IGxvYWRGcm9tSlNPTiA9IChsb2NhbEFwcFN0YXRlLCBsb2NhbEVsZW1lbnRzKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgY29uc3QgYmxvYiA9IHlpZWxkICgwLF9maWxlc3lzdGVtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZmlsZU9wZW4pKHtcXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcXFwiRXhjYWxpZHJhdyBmaWxlc1xcXCIsXFxuICAgICAgICAvLyBUb0RvOiBCZSBvdmVyLXBlcm1pc3NpdmUgdW50aWwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDQyXFxuICAgICAgICAvLyBnZXRzIHJlc29sdmVkLiBFbHNlLCBpT1MgdXNlcnMgY2Fubm90IG9wZW4gYC5leGNhbGlkcmF3YCBmaWxlcy5cXG4gICAgICAgIC8vIGV4dGVuc2lvbnM6IFtcXFwianNvblxcXCIsIFxcXCJleGNhbGlkcmF3XFxcIiwgXFxcInBuZ1xcXCIsIFxcXCJzdmdcXFwiXSxcXG4gICAgfSk7XFxuICAgIHJldHVybiAoMCxfYmxvYl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmxvYWRGcm9tQmxvYikoYmxvYiwgbG9jYWxBcHBTdGF0ZSwgbG9jYWxFbGVtZW50cyk7XFxufSk7XFxuY29uc3QgaXNWYWxpZEV4Y2FsaWRyYXdEYXRhID0gKGRhdGEpID0+IHtcXG4gICAgcmV0dXJuICgoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhLnR5cGUpID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uRVhQT1JUX0RBVEFfVFlQRVMuZXhjYWxpZHJhdyAmJlxcbiAgICAgICAgKCFkYXRhLmVsZW1lbnRzIHx8XFxuICAgICAgICAgICAgKEFycmF5LmlzQXJyYXkoZGF0YS5lbGVtZW50cykgJiZcXG4gICAgICAgICAgICAgICAgKCFkYXRhLmFwcFN0YXRlIHx8IHR5cGVvZiBkYXRhLmFwcFN0YXRlID09PSBcXFwib2JqZWN0XFxcIikpKSk7XFxufTtcXG5jb25zdCBpc1ZhbGlkTGlicmFyeSA9IChqc29uKSA9PiB7XFxuICAgIHJldHVybiAodHlwZW9mIGpzb24gPT09IFxcXCJvYmplY3RcXFwiICYmXFxuICAgICAgICBqc29uICYmXFxuICAgICAgICBqc29uLnR5cGUgPT09IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5FWFBPUlRfREFUQV9UWVBFUy5leGNhbGlkcmF3TGlicmFyeSAmJlxcbiAgICAgICAgKGpzb24udmVyc2lvbiA9PT0gMSB8fCBqc29uLnZlcnNpb24gPT09IDIpKTtcXG59O1xcbmNvbnN0IHNhdmVMaWJyYXJ5QXNKU09OID0gKGxpYnJhcnlJdGVtcykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XFxuICAgIGNvbnN0IGRhdGEgPSB7XFxuICAgICAgICB0eXBlOiBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uRVhQT1JUX0RBVEFfVFlQRVMuZXhjYWxpZHJhd0xpYnJhcnksXFxuICAgICAgICB2ZXJzaW9uOiBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uVkVSU0lPTlMuZXhjYWxpZHJhd0xpYnJhcnksXFxuICAgICAgICBzb3VyY2U6IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5FWFBPUlRfU09VUkNFLFxcbiAgICAgICAgbGlicmFyeUl0ZW1zLFxcbiAgICB9O1xcbiAgICBjb25zdCBzZXJpYWxpemVkID0gSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMik7XFxuICAgIHlpZWxkICgwLF9maWxlc3lzdGVtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZmlsZVNhdmUpKG5ldyBCbG9iKFtzZXJpYWxpemVkXSwge1xcbiAgICAgICAgdHlwZTogX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLk1JTUVfVFlQRVMuZXhjYWxpZHJhd2xpYixcXG4gICAgfSksIHtcXG4gICAgICAgIG5hbWU6IFxcXCJsaWJyYXJ5XFxcIixcXG4gICAgICAgIGV4dGVuc2lvbjogXFxcImV4Y2FsaWRyYXdsaWJcXFwiLFxcbiAgICAgICAgZGVzY3JpcHRpb246IFxcXCJFeGNhbGlkcmF3IGxpYnJhcnkgZmlsZVxcXCIsXFxuICAgIH0pO1xcbn0pO1xcbmNvbnN0IGltcG9ydExpYnJhcnlGcm9tSlNPTiA9IChsaWJyYXJ5KSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgY29uc3QgYmxvYiA9IHlpZWxkICgwLF9maWxlc3lzdGVtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZmlsZU9wZW4pKHtcXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcXFwiRXhjYWxpZHJhdyBsaWJyYXJ5IGZpbGVzXFxcIixcXG4gICAgICAgIC8vIFRvRG86IEJlIG92ZXItcGVybWlzc2l2ZSB1bnRpbCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDJcXG4gICAgICAgIC8vIGdldHMgcmVzb2x2ZWQuIEVsc2UsIGlPUyB1c2VycyBjYW5ub3Qgb3BlbiBgLmV4Y2FsaWRyYXdgIGZpbGVzLlxcbiAgICAgICAgLypcXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcXFwiLmpzb25cXFwiLCBcXFwiLmV4Y2FsaWRyYXdsaWJcXFwiXSxcXG4gICAgICAgICovXFxuICAgIH0pO1xcbiAgICB5aWVsZCBsaWJyYXJ5LmltcG9ydExpYnJhcnkoYmxvYik7XFxufSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZaR0YwWVM5cWMyOXVMblJ6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dEJRVUZyUkR0QlFVTTJRanRCUVUxNlJEdEJRVU4zUkR0QlFVZHlRanRCUVZONlJEczdSMEZGUnp0QlFVTklMRTFCUVUwc2NVSkJRWEZDTEVkQlFVY3NRMEZETlVJc1VVRkJjME1zUlVGRGRFTXNTMEZCYTBJc1JVRkRiRUlzUlVGQlJUdEpRVU5HTEUxQlFVMHNVMEZCVXl4SFFVRm5RaXhGUVVGRkxFTkJRVU03U1VGRGJFTXNTMEZCU3l4TlFVRk5MRTlCUVU4c1NVRkJTU3hSUVVGUkxFVkJRVVU3VVVGRE9VSXNTVUZEUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhUUVVGVE8xbEJRMnhDTEZGQlFWRXNTVUZCU1N4UFFVRlBPMWxCUTI1Q0xFOUJRVThzUTBGQlF5eE5RVUZOTzFsQlEyUXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGRGNrSTdXVUZEUVN4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VTBGRGJrUTdTMEZEUmp0SlFVTkVMRTlCUVU4c1UwRkJVeXhEUVVGRE8wRkJRMjVDTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc1pVRkJaU3hIUVVGSExFTkJRemRDTEZGQlFYTkRMRVZCUTNSRExGRkJRVEpDTEVWQlF6TkNMRXRCUVd0Q0xFVkJRMnhDTEVsQlFUQkNMRVZCUTJ4Q0xFVkJRVVU3U1VGRFZpeE5RVUZOTEVsQlFVa3NSMEZCYzBJN1VVRkRPVUlzU1VGQlNTeEZRVUZGTEc5RlFVRTBRanRSUVVOc1F5eFBRVUZQTEVWQlFVVXNNa1JCUVcxQ08xRkJRelZDTEUxQlFVMHNSVUZCUlN4eFJFRkJZVHRSUVVOeVFpeFJRVUZSTEVWQlEwNHNTVUZCU1N4TFFVRkxMRTlCUVU4N1dVRkRaQ3hEUVVGRExFTkJRVU1zWjBWQlFYTkNMRU5CUVVNc1VVRkJVU3hEUVVGRE8xbEJRMnhETEVOQlFVTXNRMEZCUXl4clJVRkJkMElzUTBGQlF5eFJRVUZSTEVOQlFVTTdVVUZEZUVNc1VVRkJVU3hGUVVOT0xFbEJRVWtzUzBGQlN5eFBRVUZQTzFsQlEyUXNRMEZCUXl4RFFVRkRMR2xGUVVGelFpeERRVUZETEZGQlFWRXNRMEZCUXp0WlFVTnNReXhEUVVGRExFTkJRVU1zYlVWQlFYZENMRU5CUVVNc1VVRkJVU3hEUVVGRE8xRkJRM2hETEV0QlFVc3NSVUZEU0N4SlFVRkpMRXRCUVVzc1QwRkJUenRaUVVOa0xFTkJRVU1zUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhSUVVGUkxFVkJRVVVzUzBGQlN5eERRVUZETzFsQlEzaERMRU5CUVVNc1EwRkJReXcyUWtGQk5rSTdaMEpCUXpkQ0xGTkJRVk03UzBGRGFFSXNRMEZCUXp0SlFVVkdMRTlCUVU4c1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM1pETEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc1ZVRkJWU3hIUVVGSExFTkJRM2hDTEZGQlFYTkRMRVZCUTNSRExGRkJRV3RDTEVWQlEyeENMRXRCUVd0Q0xFVkJRMnhDTEVWQlFVVTdTVUZEUml4TlFVRk5MRlZCUVZVc1IwRkJSeXhsUVVGbExFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4TFFVRkxMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGRrVXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hKUVVGSkxFTkJRVU1zUTBGQlF5eFZRVUZWTEVOQlFVTXNSVUZCUlR0UlFVTnNReXhKUVVGSkxFVkJRVVVzTmtSQlFYRkNPMHRCUXpWQ0xFTkJRVU1zUTBGQlF6dEpRVVZJTEUxQlFVMHNWVUZCVlN4SFFVRkhMRTFCUVUwc2NVUkJRVkVzUTBGQlF5eEpRVUZKTEVWQlFVVTdVVUZEZEVNc1NVRkJTU3hGUVVGRkxGRkJRVkVzUTBGQlF5eEpRVUZKTzFGQlEyNUNMRk5CUVZNc1JVRkJSU3haUVVGWk8xRkJRM1pDTEZkQlFWY3NSVUZCUlN4cFFrRkJhVUk3VVVGRE9VSXNWVUZCVlN4RlFVRkZMSGRFUVVGcFFpeERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRU5CUVVNN1dVRkRhRVFzUTBGQlF5eERRVUZETEVsQlFVazdXVUZEVGl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExGVkJRVlU3UzBGRGVFSXNRMEZCUXl4RFFVRkRPMGxCUTBnc1QwRkJUeXhGUVVGRkxGVkJRVlVzUlVGQlJTeERRVUZETzBGQlEzaENMRU5CUVVNc1JVRkJRenRCUVVWTExFMUJRVTBzV1VGQldTeEhRVUZITEVOQlF6RkNMR0ZCUVhWQ0xFVkJRM1pDTEdGQlFXdEVMRVZCUTJ4RUxFVkJRVVU3U1VGRFJpeE5RVUZOTEVsQlFVa3NSMEZCUnl4TlFVRk5MSEZFUVVGUkxFTkJRVU03VVVGRE1VSXNWMEZCVnl4RlFVRkZMR3RDUVVGclFqdFJRVU12UWl3clJVRkJLMFU3VVVGREwwVXNhMFZCUVd0Rk8xRkJRMnhGTEc5RVFVRnZSRHRMUVVOeVJDeERRVUZETEVOQlFVTTdTVUZEU0N4UFFVRlBMRzFFUVVGWkxFTkJRVU1zU1VGQlNTeEZRVUZGTEdGQlFXRXNSVUZCUlN4aFFVRmhMRU5CUVVNc1EwRkJRenRCUVVNeFJDeERRVUZETEVWQlFVTTdRVUZGU3l4TlFVRk5MSEZDUVVGeFFpeEhRVUZITEVOQlFVTXNTVUZKY2tNc1JVRkJOa0lzUlVGQlJUdEpRVU01UWl4UFFVRlBMRU5CUTB3c1MwRkJTU3hoUVVGS0xFbEJRVWtzZFVKQlFVb3NTVUZCU1N4RFFVRkZMRWxCUVVrc1RVRkJTeXh2UlVGQk5FSTdVVUZETTBNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTzFsQlEySXNRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdaMEpCUXpOQ0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4SlFVRkpMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzUzBGQlN5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUXpWRUxFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MR05CUVdNc1IwRkJSeXhEUVVGRExFbEJRVk1zUlVGQlJTeEZRVUZGTzBsQlF6RkRMRTlCUVU4c1EwRkRUQ3hQUVVGUExFbEJRVWtzUzBGQlN5eFJRVUZSTzFGQlEzaENMRWxCUVVrN1VVRkRTaXhKUVVGSkxFTkJRVU1zU1VGQlNTeExRVUZMTERKRlFVRnRRenRSUVVOcVJDeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRXRCUVVzc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eFBRVUZQTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUXpORExFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEVOQlFVOHNXVUZCTUVJc1JVRkJSU3hGUVVGRk8wbEJRM0JGTEUxQlFVMHNTVUZCU1N4SFFVRjNRanRSUVVOb1F5eEpRVUZKTEVWQlFVVXNNa1ZCUVcxRE8xRkJRM3BETEU5QlFVOHNSVUZCUlN4clJVRkJNRUk3VVVGRGJrTXNUVUZCVFN4RlFVRkZMSEZFUVVGaE8xRkJRM0pDTEZsQlFWazdTMEZEWWl4RFFVRkRPMGxCUTBZc1RVRkJUU3hWUVVGVkxFZEJRVWNzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEycEVMRTFCUVUwc2NVUkJRVkVzUTBGRFdpeEpRVUZKTEVsQlFVa3NRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkJReXhGUVVGRk8xRkJRM0pDTEVsQlFVa3NSVUZCUlN4blJVRkJkMEk3UzBGREwwSXNRMEZCUXl4RlFVTkdPMUZCUTBVc1NVRkJTU3hGUVVGRkxGTkJRVk03VVVGRFppeFRRVUZUTEVWQlFVVXNaVUZCWlR0UlFVTXhRaXhYUVVGWExFVkJRVVVzZVVKQlFYbENPMHRCUTNaRExFTkJRMFlzUTBGQlF6dEJRVU5LTEVOQlFVTXNSVUZCUXp0QlFVVkxMRTFCUVUwc2NVSkJRWEZDTEVkQlFVY3NRMEZCVHl4UFFVRm5RaXhGUVVGRkxFVkJRVVU3U1VGRE9VUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1RVRkJUU3h4UkVGQlVTeERRVUZETzFGQlF6RkNMRmRCUVZjc1JVRkJSU3d3UWtGQk1FSTdVVUZEZGtNc0swVkJRU3RGTzFGQlF5OUZMR3RGUVVGclJUdFJRVU5zUlRzN1ZVRkZSVHRMUVVOSUxFTkJRVU1zUTBGQlF6dEpRVU5JTEUxQlFVMHNUMEZCVHl4RFFVRkRMR0ZCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU53UXl4RFFVRkRMRVZCUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZaR0YwWVM5cWMyOXVMblJ6UHpjek1HUWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnWm1sc1pVOXdaVzRzSUdacGJHVlRZWFpsSUgwZ1puSnZiU0JjSWk0dlptbHNaWE41YzNSbGJWd2lPMXh1YVcxd2IzSjBJSHNnWTJ4bFlXNUJjSEJUZEdGMFpVWnZja1Y0Y0c5eWRDd2dZMnhsWVhKQmNIQlRkR0YwWlVadmNrUmhkR0ZpWVhObElIMGdabkp2YlNCY0lpNHVMMkZ3Y0ZOMFlYUmxYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQkZXRkJQVWxSZlJFRlVRVjlVV1ZCRlV5eGNiaUFnUlZoUVQxSlVYMU5QVlZKRFJTeGNiaUFnVFVsTlJWOVVXVkJGVXl4Y2JpQWdWa1ZTVTBsUFRsTXNYRzU5SUdaeWIyMGdYQ0l1TGk5amIyNXpkR0Z1ZEhOY0lqdGNibWx0Y0c5eWRDQjdJR05zWldGeVJXeGxiV1Z1ZEhOR2IzSkVZWFJoWW1GelpTd2dZMnhsWVhKRmJHVnRaVzUwYzBadmNrVjRjRzl5ZENCOUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MFhDSTdYRzVwYlhCdmNuUWdleUJGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ0I5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwTDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCQmNIQlRkR0YwWlN3Z1FtbHVZWEo1Um1sc1pYTXNJRXhwWW5KaGNubEpkR1Z0Y3lCOUlHWnliMjBnWENJdUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dhWE5KYldGblpVWnBiR1ZJWVc1a2JHVXNJR3h2WVdSR2NtOXRRbXh2WWlCOUlHWnliMjBnWENJdUwySnNiMkpjSWp0Y2JseHVhVzF3YjNKMElIdGNiaUFnUlhod2IzSjBaV1JFWVhSaFUzUmhkR1VzWEc0Z0lFbHRjRzl5ZEdWa1JHRjBZVk4wWVhSbExGeHVJQ0JGZUhCdmNuUmxaRXhwWW5KaGNubEVZWFJoTEZ4dWZTQm1jbTl0SUZ3aUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElFeHBZbkpoY25rZ1puSnZiU0JjSWk0dmJHbGljbUZ5ZVZ3aU8xeHVYRzR2S2lwY2JpQXFJRk4wY21sd2N5QnZkWFFnWm1sc1pYTWdkMmhwWTJnZ1lYSmxJRzl1YkhrZ2NtVm1aWEpsYm1ObFpDQmllU0JrWld4bGRHVmtJR1ZzWlcxbGJuUnpYRzRnS2k5Y2JtTnZibk4wSUdacGJIUmxjazkxZEVSbGJHVjBaV1JHYVd4bGN5QTlJQ2hjYmlBZ1pXeGxiV1Z1ZEhNNklISmxZV1J2Ym14NUlFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMHNYRzRnSUdacGJHVnpPaUJDYVc1aGNubEdhV3hsY3l4Y2Jpa2dQVDRnZTF4dUlDQmpiMjV6ZENCdVpYaDBSbWxzWlhNNklFSnBibUZ5ZVVacGJHVnpJRDBnZTMwN1hHNGdJR1p2Y2lBb1kyOXVjM1FnWld4bGJXVnVkQ0J2WmlCbGJHVnRaVzUwY3lrZ2UxeHVJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lDRmxiR1Z0Wlc1MExtbHpSR1ZzWlhSbFpDQW1KbHh1SUNBZ0lDQWdYQ0ptYVd4bFNXUmNJaUJwYmlCbGJHVnRaVzUwSUNZbVhHNGdJQ0FnSUNCbGJHVnRaVzUwTG1acGJHVkpaQ0FtSmx4dUlDQWdJQ0FnWm1sc1pYTmJaV3hsYldWdWRDNW1hV3hsU1dSZFhHNGdJQ0FnS1NCN1hHNGdJQ0FnSUNCdVpYaDBSbWxzWlhOYlpXeGxiV1Z1ZEM1bWFXeGxTV1JkSUQwZ1ptbHNaWE5iWld4bGJXVnVkQzVtYVd4bFNXUmRPMXh1SUNBZ0lIMWNiaUFnZlZ4dUlDQnlaWFIxY200Z2JtVjRkRVpwYkdWek8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJSE5sY21saGJHbDZaVUZ6U2xOUFRpQTlJQ2hjYmlBZ1pXeGxiV1Z1ZEhNNklISmxZV1J2Ym14NUlFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMHNYRzRnSUdGd2NGTjBZWFJsT2lCUVlYSjBhV0ZzUEVGd2NGTjBZWFJsUGl4Y2JpQWdabWxzWlhNNklFSnBibUZ5ZVVacGJHVnpMRnh1SUNCMGVYQmxPaUJjSW14dlkyRnNYQ0lnZkNCY0ltUmhkR0ZpWVhObFhDSXNYRzRwT2lCemRISnBibWNnUFQ0Z2UxeHVJQ0JqYjI1emRDQmtZWFJoT2lCRmVIQnZjblJsWkVSaGRHRlRkR0YwWlNBOUlIdGNiaUFnSUNCMGVYQmxPaUJGV0ZCUFVsUmZSRUZVUVY5VVdWQkZVeTVsZUdOaGJHbGtjbUYzTEZ4dUlDQWdJSFpsY25OcGIyNDZJRlpGVWxOSlQwNVRMbVY0WTJGc2FXUnlZWGNzWEc0Z0lDQWdjMjkxY21ObE9pQkZXRkJQVWxSZlUwOVZVa05GTEZ4dUlDQWdJR1ZzWlcxbGJuUnpPbHh1SUNBZ0lDQWdkSGx3WlNBOVBUMGdYQ0pzYjJOaGJGd2lYRzRnSUNBZ0lDQWdJRDhnWTJ4bFlYSkZiR1Z0Wlc1MGMwWnZja1Y0Y0c5eWRDaGxiR1Z0Wlc1MGN5bGNiaUFnSUNBZ0lDQWdPaUJqYkdWaGNrVnNaVzFsYm5SelJtOXlSR0YwWVdKaGMyVW9aV3hsYldWdWRITXBMRnh1SUNBZ0lHRndjRk4wWVhSbE9seHVJQ0FnSUNBZ2RIbHdaU0E5UFQwZ1hDSnNiMk5oYkZ3aVhHNGdJQ0FnSUNBZ0lEOGdZMnhsWVc1QmNIQlRkR0YwWlVadmNrVjRjRzl5ZENoaGNIQlRkR0YwWlNsY2JpQWdJQ0FnSUNBZ09pQmpiR1ZoY2tGd2NGTjBZWFJsUm05eVJHRjBZV0poYzJVb1lYQndVM1JoZEdVcExGeHVJQ0FnSUdacGJHVnpPbHh1SUNBZ0lDQWdkSGx3WlNBOVBUMGdYQ0pzYjJOaGJGd2lYRzRnSUNBZ0lDQWdJRDhnWm1sc2RHVnlUM1YwUkdWc1pYUmxaRVpwYkdWektHVnNaVzFsYm5SekxDQm1hV3hsY3lsY2JpQWdJQ0FnSUNBZ09pQXZMeUIzYVd4c0lHSmxJSE4wY21sd2NHVmtJR1p5YjIwZ1NsTlBUbHh1SUNBZ0lDQWdJQ0FnSUhWdVpHVm1hVzVsWkN4Y2JpQWdmVHRjYmx4dUlDQnlaWFIxY200Z1NsTlBUaTV6ZEhKcGJtZHBabmtvWkdGMFlTd2diblZzYkN3Z01pazdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYzJGMlpVRnpTbE5QVGlBOUlHRnplVzVqSUNoY2JpQWdaV3hsYldWdWRITTZJSEpsWVdSdmJteDVJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTBzWEc0Z0lHRndjRk4wWVhSbE9pQkJjSEJUZEdGMFpTeGNiaUFnWm1sc1pYTTZJRUpwYm1GeWVVWnBiR1Z6TEZ4dUtTQTlQaUI3WEc0Z0lHTnZibk4wSUhObGNtbGhiR2w2WldRZ1BTQnpaWEpwWVd4cGVtVkJjMHBUVDA0b1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbExDQm1hV3hsY3l3Z1hDSnNiMk5oYkZ3aUtUdGNiaUFnWTI5dWMzUWdZbXh2WWlBOUlHNWxkeUJDYkc5aUtGdHpaWEpwWVd4cGVtVmtYU3dnZTF4dUlDQWdJSFI1Y0dVNklFMUpUVVZmVkZsUVJWTXVaWGhqWVd4cFpISmhkeXhjYmlBZ2ZTazdYRzVjYmlBZ1kyOXVjM1FnWm1sc1pVaGhibVJzWlNBOUlHRjNZV2wwSUdacGJHVlRZWFpsS0dKc2IySXNJSHRjYmlBZ0lDQnVZVzFsT2lCaGNIQlRkR0YwWlM1dVlXMWxMRnh1SUNBZ0lHVjRkR1Z1YzJsdmJqb2dYQ0psZUdOaGJHbGtjbUYzWENJc1hHNGdJQ0FnWkdWelkzSnBjSFJwYjI0NklGd2lSWGhqWVd4cFpISmhkeUJtYVd4bFhDSXNYRzRnSUNBZ1ptbHNaVWhoYm1Sc1pUb2dhWE5KYldGblpVWnBiR1ZJWVc1a2JHVW9ZWEJ3VTNSaGRHVXVabWxzWlVoaGJtUnNaU2xjYmlBZ0lDQWdJRDhnYm5Wc2JGeHVJQ0FnSUNBZ09pQmhjSEJUZEdGMFpTNW1hV3hsU0dGdVpHeGxMRnh1SUNCOUtUdGNiaUFnY21WMGRYSnVJSHNnWm1sc1pVaGhibVJzWlNCOU8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR3h2WVdSR2NtOXRTbE5QVGlBOUlHRnplVzVqSUNoY2JpQWdiRzlqWVd4QmNIQlRkR0YwWlRvZ1FYQndVM1JoZEdVc1hHNGdJR3h2WTJGc1JXeGxiV1Z1ZEhNNklISmxZV1J2Ym14NUlFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMGdmQ0J1ZFd4c0xGeHVLU0E5UGlCN1hHNGdJR052Ym5OMElHSnNiMklnUFNCaGQyRnBkQ0JtYVd4bFQzQmxiaWg3WEc0Z0lDQWdaR1Z6WTNKcGNIUnBiMjQ2SUZ3aVJYaGpZV3hwWkhKaGR5Qm1hV3hsYzF3aUxGeHVJQ0FnSUM4dklGUnZSRzg2SUVKbElHOTJaWEl0Y0dWeWJXbHpjMmwyWlNCMWJuUnBiQ0JvZEhSd2N6b3ZMMkoxWjNNdWQyVmlhMmwwTG05eVp5OXphRzkzWDJKMVp5NWpaMmsvYVdROU16UTBOREpjYmlBZ0lDQXZMeUJuWlhSeklISmxjMjlzZG1Wa0xpQkZiSE5sTENCcFQxTWdkWE5sY25NZ1kyRnVibTkwSUc5d1pXNGdZQzVsZUdOaGJHbGtjbUYzWUNCbWFXeGxjeTVjYmlBZ0lDQXZMeUJsZUhSbGJuTnBiMjV6T2lCYlhDSnFjMjl1WENJc0lGd2laWGhqWVd4cFpISmhkMXdpTENCY0luQnVaMXdpTENCY0luTjJaMXdpWFN4Y2JpQWdmU2s3WEc0Z0lISmxkSFZ5YmlCc2IyRmtSbkp2YlVKc2IySW9ZbXh2WWl3Z2JHOWpZV3hCY0hCVGRHRjBaU3dnYkc5allXeEZiR1Z0Wlc1MGN5azdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYVhOV1lXeHBaRVY0WTJGc2FXUnlZWGRFWVhSaElEMGdLR1JoZEdFL09pQjdYRzRnSUhSNWNHVS9PaUJoYm5rN1hHNGdJR1ZzWlcxbGJuUnpQem9nWVc1NU8xeHVJQ0JoY0hCVGRHRjBaVDg2SUdGdWVUdGNibjBwT2lCa1lYUmhJR2x6SUVsdGNHOXlkR1ZrUkdGMFlWTjBZWFJsSUQwK0lIdGNiaUFnY21WMGRYSnVJQ2hjYmlBZ0lDQmtZWFJoUHk1MGVYQmxJRDA5UFNCRldGQlBVbFJmUkVGVVFWOVVXVkJGVXk1bGVHTmhiR2xrY21GM0lDWW1YRzRnSUNBZ0tDRmtZWFJoTG1Wc1pXMWxiblJ6SUh4OFhHNGdJQ0FnSUNBb1FYSnlZWGt1YVhOQmNuSmhlU2hrWVhSaExtVnNaVzFsYm5SektTQW1KbHh1SUNBZ0lDQWdJQ0FvSVdSaGRHRXVZWEJ3VTNSaGRHVWdmSHdnZEhsd1pXOW1JR1JoZEdFdVlYQndVM1JoZEdVZ1BUMDlJRndpYjJKcVpXTjBYQ0lwS1NsY2JpQWdLVHRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCcGMxWmhiR2xrVEdsaWNtRnllU0E5SUNocWMyOXVPaUJoYm5rcElEMCtJSHRjYmlBZ2NtVjBkWEp1SUNoY2JpQWdJQ0IwZVhCbGIyWWdhbk52YmlBOVBUMGdYQ0p2WW1wbFkzUmNJaUFtSmx4dUlDQWdJR3B6YjI0Z0ppWmNiaUFnSUNCcWMyOXVMblI1Y0dVZ1BUMDlJRVZZVUU5U1ZGOUVRVlJCWDFSWlVFVlRMbVY0WTJGc2FXUnlZWGRNYVdKeVlYSjVJQ1ltWEc0Z0lDQWdLR3B6YjI0dWRtVnljMmx2YmlBOVBUMGdNU0I4ZkNCcWMyOXVMblpsY25OcGIyNGdQVDA5SURJcFhHNGdJQ2s3WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2MyRjJaVXhwWW5KaGNubEJjMHBUVDA0Z1BTQmhjM2x1WXlBb2JHbGljbUZ5ZVVsMFpXMXpPaUJNYVdKeVlYSjVTWFJsYlhNcElEMCtJSHRjYmlBZ1kyOXVjM1FnWkdGMFlUb2dSWGh3YjNKMFpXUk1hV0p5WVhKNVJHRjBZU0E5SUh0Y2JpQWdJQ0IwZVhCbE9pQkZXRkJQVWxSZlJFRlVRVjlVV1ZCRlV5NWxlR05oYkdsa2NtRjNUR2xpY21GeWVTeGNiaUFnSUNCMlpYSnphVzl1T2lCV1JWSlRTVTlPVXk1bGVHTmhiR2xrY21GM1RHbGljbUZ5ZVN4Y2JpQWdJQ0J6YjNWeVkyVTZJRVZZVUU5U1ZGOVRUMVZTUTBVc1hHNGdJQ0FnYkdsaWNtRnllVWwwWlcxekxGeHVJQ0I5TzF4dUlDQmpiMjV6ZENCelpYSnBZV3hwZW1Wa0lEMGdTbE5QVGk1emRISnBibWRwWm5rb1pHRjBZU3dnYm5Wc2JDd2dNaWs3WEc0Z0lHRjNZV2wwSUdacGJHVlRZWFpsS0Z4dUlDQWdJRzVsZHlCQ2JHOWlLRnR6WlhKcFlXeHBlbVZrWFN3Z2UxeHVJQ0FnSUNBZ2RIbHdaVG9nVFVsTlJWOVVXVkJGVXk1bGVHTmhiR2xrY21GM2JHbGlMRnh1SUNBZ0lIMHBMRnh1SUNBZ0lIdGNiaUFnSUNBZ0lHNWhiV1U2SUZ3aWJHbGljbUZ5ZVZ3aUxGeHVJQ0FnSUNBZ1pYaDBaVzV6YVc5dU9pQmNJbVY0WTJGc2FXUnlZWGRzYVdKY0lpeGNiaUFnSUNBZ0lHUmxjMk55YVhCMGFXOXVPaUJjSWtWNFkyRnNhV1J5WVhjZ2JHbGljbUZ5ZVNCbWFXeGxYQ0lzWEc0Z0lDQWdmU3hjYmlBZ0tUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JwYlhCdmNuUk1hV0p5WVhKNVJuSnZiVXBUVDA0Z1BTQmhjM2x1WXlBb2JHbGljbUZ5ZVRvZ1RHbGljbUZ5ZVNrZ1BUNGdlMXh1SUNCamIyNXpkQ0JpYkc5aUlEMGdZWGRoYVhRZ1ptbHNaVTl3Wlc0b2UxeHVJQ0FnSUdSbGMyTnlhWEIwYVc5dU9pQmNJa1Y0WTJGc2FXUnlZWGNnYkdsaWNtRnllU0JtYVd4bGMxd2lMRnh1SUNBZ0lDOHZJRlJ2Ukc4NklFSmxJRzkyWlhJdGNHVnliV2x6YzJsMlpTQjFiblJwYkNCb2RIUndjem92TDJKMVozTXVkMlZpYTJsMExtOXlaeTl6YUc5M1gySjFaeTVqWjJrL2FXUTlNelEwTkRKY2JpQWdJQ0F2THlCblpYUnpJSEpsYzI5c2RtVmtMaUJGYkhObExDQnBUMU1nZFhObGNuTWdZMkZ1Ym05MElHOXdaVzRnWUM1bGVHTmhiR2xrY21GM1lDQm1hV3hsY3k1Y2JpQWdJQ0F2S2x4dUlDQWdJR1Y0ZEdWdWMybHZibk02SUZ0Y0lpNXFjMjl1WENJc0lGd2lMbVY0WTJGc2FXUnlZWGRzYVdKY0lsMHNYRzRnSUNBZ0tpOWNiaUFnZlNrN1hHNGdJR0YzWVdsMElHeHBZbkpoY25rdWFXMXdiM0owVEdsaWNtRnllU2hpYkc5aUtUdGNibjA3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZGF0YS9qc29uLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9kYXRhL2xpYnJhcnkudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2RhdGEvbGlicmFyeS50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9ibG9iX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2Jsb2IgKi8gXFxcIi4uLy4uL2RhdGEvYmxvYi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmVzdG9yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9yZXN0b3JlICovIFxcXCIuLi8uLi9kYXRhL3Jlc3RvcmUudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvaW5kZXgudHNcXFwiKTtcXG52YXIgX19hd2FpdGVyID0gKHVuZGVmaW5lZCAmJiB1bmRlZmluZWQuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XFxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1xcXCJ0aHJvd1xcXCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XFxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XFxuICAgIH0pO1xcbn07XFxuXFxuXFxuXFxuY2xhc3MgTGlicmFyeSB7XFxuICAgIGNvbnN0cnVjdG9yKGFwcCkge1xcbiAgICAgICAgdGhpcy5saWJyYXJ5Q2FjaGUgPSBudWxsO1xcbiAgICAgICAgdGhpcy5yZXNldExpYnJhcnkgPSAoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XFxuICAgICAgICAgICAgdmFyIF9hLCBfYjtcXG4gICAgICAgICAgICB5aWVsZCAoKF9iID0gKF9hID0gdGhpcy5hcHAucHJvcHMpLm9uTGlicmFyeUNoYW5nZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIFtdKSk7XFxuICAgICAgICAgICAgdGhpcy5saWJyYXJ5Q2FjaGUgPSBbXTtcXG4gICAgICAgIH0pO1xcbiAgICAgICAgdGhpcy5yZXN0b3JlTGlicmFyeUl0ZW0gPSAobGlicmFyeUl0ZW0pID0+IHtcXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKSgoMCxfcmVzdG9yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnJlc3RvcmVFbGVtZW50cykobGlicmFyeUl0ZW0uZWxlbWVudHMsIG51bGwpKTtcXG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudHMubGVuZ3RoID8gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBsaWJyYXJ5SXRlbSksIHsgZWxlbWVudHMgfSkgOiBudWxsO1xcbiAgICAgICAgfTtcXG4gICAgICAgIHRoaXMubG9hZExpYnJhcnkgPSAoKSA9PiB7XFxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxpYnJhcnlDYWNoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmxpYnJhcnlDYWNoZSkpKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlicmFyeUl0ZW1zID0gdGhpcy5hcHAubGlicmFyeUl0ZW1zRnJvbVN0b3JhZ2U7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoIWxpYnJhcnlJdGVtcykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKFtdKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gbGlicmFyeUl0ZW1zLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdG9yZWRJdGVtID0gdGhpcy5yZXN0b3JlTGlicmFyeUl0ZW0oaXRlbSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3RvcmVkSXRlbSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2MucHVzaChpdGVtKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcXG4gICAgICAgICAgICAgICAgICAgIH0sIFtdKTtcXG4gICAgICAgICAgICAgICAgICAgIC8vIGNsb25lIHRvIGVuc3VyZSB3ZSBkb24ndCBtdXRhdGUgdGhlIGNhY2hlZCBsaWJyYXJ5IGVsZW1lbnRzIGluIHRoZSBhcHBcXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlicmFyeUNhY2hlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShpdGVtcykpO1xcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShpdGVtcyk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoW10pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSkpO1xcbiAgICAgICAgfTtcXG4gICAgICAgIHRoaXMuc2F2ZUxpYnJhcnkgPSAoaXRlbXMpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgICAgICAgICB2YXIgX2MsIF9kO1xcbiAgICAgICAgICAgIGNvbnN0IHByZXZMaWJyYXJ5SXRlbXMgPSB0aGlzLmxpYnJhcnlDYWNoZTtcXG4gICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBzZXJpYWxpemVkSXRlbXMgPSBKU09OLnN0cmluZ2lmeShpdGVtcyk7XFxuICAgICAgICAgICAgICAgIC8vIGNhY2hlIG9wdGltaXN0aWNhbGx5IHNvIHRoYXQgdGhlIGFwcCBoYXMgYWNjZXNzIHRvIHRoZSBsYXRlc3RcXG4gICAgICAgICAgICAgICAgLy8gaW1tZWRpYXRlbHlcXG4gICAgICAgICAgICAgICAgdGhpcy5saWJyYXJ5Q2FjaGUgPSBKU09OLnBhcnNlKHNlcmlhbGl6ZWRJdGVtcyk7XFxuICAgICAgICAgICAgICAgIHlpZWxkICgoX2QgPSAoX2MgPSB0aGlzLmFwcC5wcm9wcykub25MaWJyYXJ5Q2hhbmdlKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QuY2FsbChfYywgaXRlbXMpKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XFxuICAgICAgICAgICAgICAgIHRoaXMubGlicmFyeUNhY2hlID0gcHJldkxpYnJhcnlJdGVtcztcXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgICAgICB0aGlzLmFwcCA9IGFwcDtcXG4gICAgfVxcbiAgICAvKiogaW1wb3J0cyBsaWJyYXJ5IChjdXJyZW50bHkgbWVyZ2VzLCByZW1vdmluZyBkdXBsaWNhdGVzKSAqL1xcbiAgICBpbXBvcnRMaWJyYXJ5KGJsb2IsIGRlZmF1bHRTdGF0dXMgPSBcXFwidW5wdWJsaXNoZWRcXFwiKSB7XFxuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICAgICAgICAgIGNvbnN0IGxpYnJhcnlGaWxlID0geWllbGQgKDAsX2Jsb2JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5sb2FkTGlicmFyeUZyb21CbG9iKShibG9iKTtcXG4gICAgICAgICAgICBpZiAoIWxpYnJhcnlGaWxlIHx8ICEobGlicmFyeUZpbGUubGlicmFyeUl0ZW1zIHx8IGxpYnJhcnlGaWxlLmxpYnJhcnkpKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgLyoqXFxuICAgICAgICAgICAgICogY2hlY2tzIGlmIGxpYnJhcnkgaXRlbSBkb2VzIG5vdCBleGlzdCBhbHJlYWR5IGluIGN1cnJlbnQgbGlicmFyeVxcbiAgICAgICAgICAgICAqL1xcbiAgICAgICAgICAgIGNvbnN0IGlzVW5pcXVlaXRlbSA9IChleGlzdGluZ0xpYnJhcnlJdGVtcywgdGFyZ2V0TGlicmFyeUl0ZW0pID0+IHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICFleGlzdGluZ0xpYnJhcnlJdGVtcy5maW5kKChsaWJyYXJ5SXRlbSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxpYnJhcnlJdGVtLmVsZW1lbnRzLmxlbmd0aCAhPT0gdGFyZ2V0TGlicmFyeUl0ZW0uZWxlbWVudHMubGVuZ3RoKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgLy8gZGV0ZWN0IHotaW5kZXggZGlmZmVyZW5jZSBieSBjaGVja2luZyB0aGUgZXhjYWxpZHJhdyBlbGVtZW50c1xcbiAgICAgICAgICAgICAgICAgICAgLy8gYXJlIGluIG9yZGVyXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGlicmFyeUl0ZW0uZWxlbWVudHMuZXZlcnkoKGxpYkl0ZW1FeGNhbGlkcmF3SXRlbSwgaWR4KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChsaWJJdGVtRXhjYWxpZHJhd0l0ZW0uaWQgPT09IHRhcmdldExpYnJhcnlJdGVtLmVsZW1lbnRzW2lkeF0uaWQgJiZcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliSXRlbUV4Y2FsaWRyYXdJdGVtLnZlcnNpb25Ob25jZSA9PT1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldExpYnJhcnlJdGVtLmVsZW1lbnRzW2lkeF0udmVyc2lvbk5vbmNlKTtcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nTGlicmFyeUl0ZW1zID0geWllbGQgdGhpcy5sb2FkTGlicmFyeSgpO1xcbiAgICAgICAgICAgIGNvbnN0IGxpYnJhcnkgPSBsaWJyYXJ5RmlsZS5saWJyYXJ5SXRlbXMgfHwgbGlicmFyeUZpbGUubGlicmFyeSB8fCBbXTtcXG4gICAgICAgICAgICBjb25zdCByZXN0b3JlZExpYkl0ZW1zID0gKDAsX3Jlc3RvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5yZXN0b3JlTGlicmFyeUl0ZW1zKShsaWJyYXJ5LCBkZWZhdWx0U3RhdHVzKTtcXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJlZEl0ZW1zID0gW107XFxuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHJlc3RvcmVkTGliSXRlbXMpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdG9yZWRJdGVtID0gdGhpcy5yZXN0b3JlTGlicmFyeUl0ZW0oaXRlbSk7XFxuICAgICAgICAgICAgICAgIGlmIChyZXN0b3JlZEl0ZW0gJiYgaXNVbmlxdWVpdGVtKGV4aXN0aW5nTGlicmFyeUl0ZW1zLCByZXN0b3JlZEl0ZW0pKSB7XFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZEl0ZW1zLnB1c2gocmVzdG9yZWRJdGVtKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB5aWVsZCB0aGlzLnNhdmVMaWJyYXJ5KFsuLi5maWx0ZXJlZEl0ZW1zLCAuLi5leGlzdGluZ0xpYnJhcnlJdGVtc10pO1xcbiAgICAgICAgfSk7XFxuICAgIH1cXG59XFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9IChMaWJyYXJ5KTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlpHRjBZUzlzYVdKeVlYSjVMblJ6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3T3pzN096czdRVUZCTmtNN1FVRkZiMEk3UVVGRFpEdEJRVWR1UkN4TlFVRk5MRTlCUVU4N1NVRkpXQ3haUVVGWkxFZEJRVkU3VVVGSVdpeHBRa0ZCV1N4SFFVRjNRaXhKUVVGSkxFTkJRVU03VVVGUGFrUXNhVUpCUVZrc1IwRkJSeXhIUVVGVExFVkJRVVU3TzFsQlEzaENMRTFCUVUwc2FVSkJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RlFVRkRMR1ZCUVdVc2JVUkJRVWNzUlVGQlJTeERRVUZETEVWQlFVTTdXVUZETTBNc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZEZWtJc1EwRkJReXhGUVVGRE8xRkJSVVlzZFVKQlFXdENMRWRCUVVjc1EwRkJReXhYUVVGM1FpeEZRVUZ6UWl4RlFVRkZPMWxCUTNCRkxFMUJRVTBzVVVGQlVTeEhRVUZITEN0RVFVRnhRaXhEUVVOd1F5eDVSRUZCWlN4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlF6VkRMRU5CUVVNN1dVRkRSaXhQUVVGUExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4cFEwRkJUU3hYUVVGWExFdEJRVVVzVVVGQlVTeEpRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1VVRkRMMFFzUTBGQlF5eERRVUZETzFGQmJVUkdMR2RDUVVGWExFZEJRVWNzUjBGQk1FSXNSVUZCUlR0WlFVTjRReXhQUVVGUExFbEJRVWtzVDBGQlR5eERRVUZETEVOQlFVOHNUMEZCVHl4RlFVRkZMRVZCUVVVN1owSkJRMjVETEVsQlFVa3NTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSVHR2UWtGRGNrSXNUMEZCVHl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdhVUpCUXk5RU8yZENRVVZFTEVsQlFVazdiMEpCUTBZc1RVRkJUU3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4MVFrRkJkVUlzUTBGQlF6dHZRa0ZEZEVRc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJUdDNRa0ZEYWtJc1QwRkJUeXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdjVUpCUTNCQ08yOUNRVVZFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRmxCUVZrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVN2QwSkJRemxETEUxQlFVMHNXVUZCV1N4SFFVRkhMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenQzUWtGRGJrUXNTVUZCU1N4WlFVRlpMRVZCUVVVN05FSkJRMmhDTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03ZVVKQlEyaENPM2RDUVVORUxFOUJRVThzUjBGQlJ5eERRVUZETzI5Q1FVTmlMRU5CUVVNc1JVRkJSU3hGUVVFeVFpeERRVUZETEVOQlFVTTdiMEpCUldoRExIbEZRVUY1UlR0dlFrRkRla1VzU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRmRFUXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8ybENRVU5vUWp0blFrRkJReXhQUVVGUExFdEJRVlVzUlVGQlJUdHZRa0ZEYmtJc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0dlFrRkRja0lzVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMmxDUVVOaU8xbEJRMGdzUTBGQlF5eEZRVUZETEVOQlFVTTdVVUZEVEN4RFFVRkRMRU5CUVVNN1VVRkZSaXhuUWtGQlZ5eEhRVUZITEVOQlFVOHNTMEZCYlVJc1JVRkJSU3hGUVVGRk96dFpRVU14UXl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNN1dVRkRNME1zU1VGQlNUdG5Ra0ZEUml4TlFVRk5MR1ZCUVdVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMmRDUVVNNVF5eG5SVUZCWjBVN1owSkJRMmhGTEdOQlFXTTdaMEpCUTJRc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRE8yZENRVU5vUkN4TlFVRk5MR2xDUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NSVUZCUXl4bFFVRmxMRzFFUVVGSExFdEJRVXNzUTBGQlF5eEZRVUZETzJGQlF5OURPMWxCUVVNc1QwRkJUeXhMUVVGVkxFVkJRVVU3WjBKQlEyNUNMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzWjBKQlFXZENMRU5CUVVNN1owSkJRM0pETEUxQlFVMHNTMEZCU3l4RFFVRkRPMkZCUTJJN1VVRkRTQ3hEUVVGRExFVkJRVU03VVVFelIwRXNTVUZCU1N4RFFVRkRMRWRCUVVjc1IwRkJSeXhIUVVGSExFTkJRVU03U1VGRGFrSXNRMEZCUXp0SlFXTkVMRGhFUVVFNFJEdEpRVU40UkN4aFFVRmhMRU5CUVVNc1NVRkJWU3hGUVVGRkxHRkJRV0VzUjBGQlJ5eGhRVUZoT3p0WlFVTXpSQ3hOUVVGTkxGZEJRVmNzUjBGQlJ5eE5RVUZOTERCRVFVRnRRaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlEzQkVMRWxCUVVrc1EwRkJReXhYUVVGWExFbEJRVWtzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4WlFVRlpMRWxCUVVrc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzJkQ1FVTjBSU3hQUVVGUE8yRkJRMUk3V1VGRlJEczdaVUZGUnp0WlFVTklMRTFCUVUwc1dVRkJXU3hIUVVGSExFTkJRMjVDTEc5Q1FVRnJReXhGUVVOc1F5eHBRa0ZCT0VJc1JVRkRPVUlzUlVGQlJUdG5Ra0ZEUml4UFFVRlBMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1YwRkJWeXhGUVVGRkxFVkJRVVU3YjBKQlEyaEVMRWxCUVVrc1YwRkJWeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEV0QlFVc3NhVUpCUVdsQ0xFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNSVUZCUlR0M1FrRkRja1VzVDBGQlR5eExRVUZMTEVOQlFVTTdjVUpCUTJRN2IwSkJSVVFzWjBWQlFXZEZPMjlDUVVOb1JTeGxRVUZsTzI5Q1FVTm1MRTlCUVU4c1YwRkJWeXhEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4eFFrRkJjVUlzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0M1FrRkRMMFFzVDBGQlR5eERRVU5NTEhGQ1FVRnhRaXhEUVVGRExFVkJRVVVzUzBGQlN5eHBRa0ZCYVVJc1EwRkJReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlRzMFFrRkRMMFFzY1VKQlFYRkNMRU5CUVVNc1dVRkJXVHRuUTBGRGFFTXNhVUpCUVdsQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkRMME1zUTBGQlF6dHZRa0ZEU2l4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRFRDeERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTk1MRU5CUVVNc1EwRkJRenRaUVVWR0xFMUJRVTBzYjBKQlFXOUNMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdXVUZGZEVRc1RVRkJUU3hQUVVGUExFZEJRVWNzVjBGQlZ5eERRVUZETEZsQlFWa3NTVUZCU1N4WFFVRlhMRU5CUVVNc1QwRkJUeXhKUVVGSkxFVkJRVVVzUTBGQlF6dFpRVU4wUlN4TlFVRk5MR2RDUVVGblFpeEhRVUZITERaRVFVRnRRaXhEUVVNeFF5eFBRVUZQTEVWQlExQXNZVUZCTkVNc1EwRkROME1zUTBGQlF6dFpRVU5HTEUxQlFVMHNZVUZCWVN4SFFVRkhMRVZCUVVVc1EwRkJRenRaUVVONlFpeExRVUZMTEUxQlFVMHNTVUZCU1N4SlFVRkpMR2RDUVVGblFpeEZRVUZGTzJkQ1FVTnVReXhOUVVGTkxGbEJRVmtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zU1VGQmJVSXNRMEZCUXl4RFFVRkRPMmRDUVVOc1JTeEpRVUZKTEZsQlFWa3NTVUZCU1N4WlFVRlpMRU5CUVVNc2IwSkJRVzlDTEVWQlFVVXNXVUZCV1N4RFFVRkRMRVZCUVVVN2IwSkJRM0JGTEdGQlFXRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03YVVKQlEyeERPMkZCUTBZN1dVRkZSQ3hOUVVGTkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4SFFVRkhMR0ZCUVdFc1JVRkJSU3hIUVVGSExHOUNRVUZ2UWl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOMFJTeERRVUZETzB0QlFVRTdRMEU0UTBZN1FVRkZSQ3hwUlVGQlpTeFBRVUZQTEVWQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WkdGMFlTOXNhV0p5WVhKNUxuUnpQek5sTmpNaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2diRzloWkV4cFluSmhjbmxHY205dFFteHZZaUI5SUdaeWIyMGdYQ0l1TDJKc2IySmNJanRjYm1sdGNHOXlkQ0I3SUV4cFluSmhjbmxKZEdWdGN5d2dUR2xpY21GeWVVbDBaVzBnZlNCbWNtOXRJRndpTGk0dmRIbHdaWE5jSWp0Y2JtbHRjRzl5ZENCN0lISmxjM1J2Y21WRmJHVnRaVzUwY3l3Z2NtVnpkRzl5WlV4cFluSmhjbmxKZEdWdGN5QjlJR1p5YjIwZ1hDSXVMM0psYzNSdmNtVmNJanRjYm1sdGNHOXlkQ0I3SUdkbGRFNXZia1JsYkdWMFpXUkZiR1Z0Wlc1MGN5QjlJR1p5YjIwZ1hDSXVMaTlsYkdWdFpXNTBYQ0k3WEc1cGJYQnZjblFnZEhsd1pTQkJjSEFnWm5KdmJTQmNJaTR1TDJOdmJYQnZibVZ1ZEhNdlFYQndYQ0k3WEc1Y2JtTnNZWE56SUV4cFluSmhjbmtnZTF4dUlDQndjbWwyWVhSbElHeHBZbkpoY25sRFlXTm9aVG9nVEdsaWNtRnllVWwwWlcxeklId2diblZzYkNBOUlHNTFiR3c3WEc0Z0lIQnlhWFpoZEdVZ1lYQndPaUJCY0hBN1hHNWNiaUFnWTI5dWMzUnlkV04wYjNJb1lYQndPaUJCY0hBcElIdGNiaUFnSUNCMGFHbHpMbUZ3Y0NBOUlHRndjRHRjYmlBZ2ZWeHVYRzRnSUhKbGMyVjBUR2xpY21GeWVTQTlJR0Z6ZVc1aklDZ3BJRDArSUh0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG1Gd2NDNXdjbTl3Y3k1dmJreHBZbkpoY25sRGFHRnVaMlUvTGloYlhTazdYRzRnSUNBZ2RHaHBjeTVzYVdKeVlYSjVRMkZqYUdVZ1BTQmJYVHRjYmlBZ2ZUdGNibHh1SUNCeVpYTjBiM0psVEdsaWNtRnllVWwwWlcwZ1BTQW9iR2xpY21GeWVVbDBaVzA2SUV4cFluSmhjbmxKZEdWdEtUb2dUR2xpY21GeWVVbDBaVzBnZkNCdWRXeHNJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQmxiR1Z0Wlc1MGN5QTlJR2RsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3loY2JpQWdJQ0FnSUhKbGMzUnZjbVZGYkdWdFpXNTBjeWhzYVdKeVlYSjVTWFJsYlM1bGJHVnRaVzUwY3l3Z2JuVnNiQ2tzWEc0Z0lDQWdLVHRjYmlBZ0lDQnlaWFIxY200Z1pXeGxiV1Z1ZEhNdWJHVnVaM1JvSUQ4Z2V5QXVMaTVzYVdKeVlYSjVTWFJsYlN3Z1pXeGxiV1Z1ZEhNZ2ZTQTZJRzUxYkd3N1hHNGdJSDA3WEc1Y2JpQWdMeW9xSUdsdGNHOXlkSE1nYkdsaWNtRnllU0FvWTNWeWNtVnVkR3g1SUcxbGNtZGxjeXdnY21WdGIzWnBibWNnWkhWd2JHbGpZWFJsY3lrZ0tpOWNiaUFnWVhONWJtTWdhVzF3YjNKMFRHbGljbUZ5ZVNoaWJHOWlPaUJDYkc5aUxDQmtaV1poZFd4MFUzUmhkSFZ6SUQwZ1hDSjFibkIxWW14cGMyaGxaRndpS1NCN1hHNGdJQ0FnWTI5dWMzUWdiR2xpY21GeWVVWnBiR1VnUFNCaGQyRnBkQ0JzYjJGa1RHbGljbUZ5ZVVaeWIyMUNiRzlpS0dKc2IySXBPMXh1SUNBZ0lHbG1JQ2doYkdsaWNtRnllVVpwYkdVZ2ZId2dJU2hzYVdKeVlYSjVSbWxzWlM1c2FXSnlZWEo1U1hSbGJYTWdmSHdnYkdsaWNtRnllVVpwYkdVdWJHbGljbUZ5ZVNrcElIdGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCamFHVmphM01nYVdZZ2JHbGljbUZ5ZVNCcGRHVnRJR1J2WlhNZ2JtOTBJR1Y0YVhOMElHRnNjbVZoWkhrZ2FXNGdZM1Z5Y21WdWRDQnNhV0p5WVhKNVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWTI5dWMzUWdhWE5WYm1seGRXVnBkR1Z0SUQwZ0tGeHVJQ0FnSUNBZ1pYaHBjM1JwYm1kTWFXSnlZWEo1U1hSbGJYTTZJRXhwWW5KaGNubEpkR1Z0Y3l4Y2JpQWdJQ0FnSUhSaGNtZGxkRXhwWW5KaGNubEpkR1Z0T2lCTWFXSnlZWEo1U1hSbGJTeGNiaUFnSUNBcElEMCtJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQWhaWGhwYzNScGJtZE1hV0p5WVhKNVNYUmxiWE11Wm1sdVpDZ29iR2xpY21GeWVVbDBaVzBwSUQwK0lIdGNiaUFnSUNBZ0lDQWdhV1lnS0d4cFluSmhjbmxKZEdWdExtVnNaVzFsYm5SekxteGxibWQwYUNBaFBUMGdkR0Z5WjJWMFRHbGljbUZ5ZVVsMFpXMHVaV3hsYldWdWRITXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnTHk4Z1pHVjBaV04wSUhvdGFXNWtaWGdnWkdsbVptVnlaVzVqWlNCaWVTQmphR1ZqYTJsdVp5QjBhR1VnWlhoallXeHBaSEpoZHlCbGJHVnRaVzUwYzF4dUlDQWdJQ0FnSUNBdkx5QmhjbVVnYVc0Z2IzSmtaWEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR3hwWW5KaGNubEpkR1Z0TG1Wc1pXMWxiblJ6TG1WMlpYSjVLQ2hzYVdKSmRHVnRSWGhqWVd4cFpISmhkMGwwWlcwc0lHbGtlQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW9YRzRnSUNBZ0lDQWdJQ0FnSUNCc2FXSkpkR1Z0UlhoallXeHBaSEpoZDBsMFpXMHVhV1FnUFQwOUlIUmhjbWRsZEV4cFluSmhjbmxKZEdWdExtVnNaVzFsYm5SelcybGtlRjB1YVdRZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUd4cFlrbDBaVzFGZUdOaGJHbGtjbUYzU1hSbGJTNTJaWEp6YVc5dVRtOXVZMlVnUFQwOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhSaGNtZGxkRXhwWW5KaGNubEpkR1Z0TG1Wc1pXMWxiblJ6VzJsa2VGMHVkbVZ5YzJsdmJrNXZibU5sWEc0Z0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5TzF4dVhHNGdJQ0FnWTI5dWMzUWdaWGhwYzNScGJtZE1hV0p5WVhKNVNYUmxiWE1nUFNCaGQyRnBkQ0IwYUdsekxteHZZV1JNYVdKeVlYSjVLQ2s3WEc1Y2JpQWdJQ0JqYjI1emRDQnNhV0p5WVhKNUlEMGdiR2xpY21GeWVVWnBiR1V1YkdsaWNtRnllVWwwWlcxeklIeDhJR3hwWW5KaGNubEdhV3hsTG14cFluSmhjbmtnZkh3Z1cxMDdYRzRnSUNBZ1kyOXVjM1FnY21WemRHOXlaV1JNYVdKSmRHVnRjeUE5SUhKbGMzUnZjbVZNYVdKeVlYSjVTWFJsYlhNb1hHNGdJQ0FnSUNCc2FXSnlZWEo1TEZ4dUlDQWdJQ0FnWkdWbVlYVnNkRk4wWVhSMWN5QmhjeUJjSW5CMVlteHBjMmhsWkZ3aUlId2dYQ0oxYm5CMVlteHBjMmhsWkZ3aUxGeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdabWxzZEdWeVpXUkpkR1Z0Y3lBOUlGdGRPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdhWFJsYlNCdlppQnlaWE4wYjNKbFpFeHBZa2wwWlcxektTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTjBiM0psWkVsMFpXMGdQU0IwYUdsekxuSmxjM1J2Y21WTWFXSnlZWEo1U1hSbGJTaHBkR1Z0SUdGeklFeHBZbkpoY25sSmRHVnRLVHRjYmlBZ0lDQWdJR2xtSUNoeVpYTjBiM0psWkVsMFpXMGdKaVlnYVhOVmJtbHhkV1ZwZEdWdEtHVjRhWE4wYVc1blRHbGljbUZ5ZVVsMFpXMXpMQ0J5WlhOMGIzSmxaRWwwWlcwcEtTQjdYRzRnSUNBZ0lDQWdJR1pwYkhSbGNtVmtTWFJsYlhNdWNIVnphQ2h5WlhOMGIzSmxaRWwwWlcwcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWMyRjJaVXhwWW5KaGNua29XeTR1TG1acGJIUmxjbVZrU1hSbGJYTXNJQzR1TG1WNGFYTjBhVzVuVEdsaWNtRnllVWwwWlcxelhTazdYRzRnSUgxY2JseHVJQ0JzYjJGa1RHbGljbUZ5ZVNBOUlDZ3BPaUJRY205dGFYTmxQRXhwWW5KaGNubEpkR1Z0Y3o0Z1BUNGdlMXh1SUNBZ0lISmxkSFZ5YmlCdVpYY2dVSEp2YldselpTaGhjM2x1WXlBb2NtVnpiMngyWlNrZ1BUNGdlMXh1SUNBZ0lDQWdhV1lnS0hSb2FYTXViR2xpY21GeWVVTmhZMmhsS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCeVpYTnZiSFpsS0VwVFQwNHVjR0Z5YzJVb1NsTlBUaTV6ZEhKcGJtZHBabmtvZEdocGN5NXNhV0p5WVhKNVEyRmphR1VwS1NrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR3hwWW5KaGNubEpkR1Z0Y3lBOUlIUm9hWE11WVhCd0xteHBZbkpoY25sSmRHVnRjMFp5YjIxVGRHOXlZV2RsTzF4dUlDQWdJQ0FnSUNCcFppQW9JV3hwWW5KaGNubEpkR1Z0Y3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE52YkhabEtGdGRLVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHTnZibk4wSUdsMFpXMXpJRDBnYkdsaWNtRnllVWwwWlcxekxuSmxaSFZqWlNnb1lXTmpMQ0JwZEdWdEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY21WemRHOXlaV1JKZEdWdElEMGdkR2hwY3k1eVpYTjBiM0psVEdsaWNtRnllVWwwWlcwb2FYUmxiU2s3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLSEpsYzNSdmNtVmtTWFJsYlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWVdOakxuQjFjMmdvYVhSbGJTazdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCaFkyTTdYRzRnSUNBZ0lDQWdJSDBzSUZ0ZElHRnpJRTExZEdGaWJHVThUR2xpY21GeWVVbDBaVzF6UGlrN1hHNWNiaUFnSUNBZ0lDQWdMeThnWTJ4dmJtVWdkRzhnWlc1emRYSmxJSGRsSUdSdmJpZDBJRzExZEdGMFpTQjBhR1VnWTJGamFHVmtJR3hwWW5KaGNua2daV3hsYldWdWRITWdhVzRnZEdobElHRndjRnh1SUNBZ0lDQWdJQ0IwYUdsekxteHBZbkpoY25sRFlXTm9aU0E5SUVwVFQwNHVjR0Z5YzJVb1NsTlBUaTV6ZEhKcGJtZHBabmtvYVhSbGJYTXBLVHRjYmx4dUlDQWdJQ0FnSUNCeVpYTnZiSFpsS0dsMFpXMXpLVHRjYmlBZ0lDQWdJSDBnWTJGMFkyZ2dLR1Z5Y205eU9pQmhibmtwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjMjlzWlM1bGNuSnZjaWhsY25KdmNpazdYRzRnSUNBZ0lDQWdJSEpsYzI5c2RtVW9XMTBwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBwTzF4dUlDQjlPMXh1WEc0Z0lITmhkbVZNYVdKeVlYSjVJRDBnWVhONWJtTWdLR2wwWlcxek9pQk1hV0p5WVhKNVNYUmxiWE1wSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0J3Y21WMlRHbGljbUZ5ZVVsMFpXMXpJRDBnZEdocGN5NXNhV0p5WVhKNVEyRmphR1U3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE5sY21saGJHbDZaV1JKZEdWdGN5QTlJRXBUVDA0dWMzUnlhVzVuYVdaNUtHbDBaVzF6S1R0Y2JpQWdJQ0FnSUM4dklHTmhZMmhsSUc5d2RHbHRhWE4wYVdOaGJHeDVJSE52SUhSb1lYUWdkR2hsSUdGd2NDQm9ZWE1nWVdOalpYTnpJSFJ2SUhSb1pTQnNZWFJsYzNSY2JpQWdJQ0FnSUM4dklHbHRiV1ZrYVdGMFpXeDVYRzRnSUNBZ0lDQjBhR2x6TG14cFluSmhjbmxEWVdOb1pTQTlJRXBUVDA0dWNHRnljMlVvYzJWeWFXRnNhWHBsWkVsMFpXMXpLVHRjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11WVhCd0xuQnliM0J6TG05dVRHbGljbUZ5ZVVOb1lXNW5aVDh1S0dsMFpXMXpLVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxjbkp2Y2pvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0IwYUdsekxteHBZbkpoY25sRFlXTm9aU0E5SUhCeVpYWk1hV0p5WVhKNVNYUmxiWE03WEc0Z0lDQWdJQ0IwYUhKdmR5Qmxjbkp2Y2p0Y2JpQWdJQ0I5WEc0Z0lIMDdYRzU5WEc1Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUV4cFluSmhjbms3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZGF0YS9saWJyYXJ5LnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9kYXRhL3Jlc2F2ZS50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9kYXRhL3Jlc2F2ZS50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicmVzYXZlQXNJbWFnZVdpdGhTY2VuZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJlc2F2ZUFzSW1hZ2VXaXRoU2NlbmUpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4gKi8gXFxcIi4uLy4uL2RhdGEvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jsb2JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vYmxvYiAqLyBcXFwiLi4vLi4vZGF0YS9ibG9iLnRzXFxcIik7XFxudmFyIF9fYXdhaXRlciA9ICh1bmRlZmluZWQgJiYgdW5kZWZpbmVkLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XFxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XFxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcXFwidGhyb3dcXFwiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XFxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xcbiAgICB9KTtcXG59O1xcblxcblxcblxcbmNvbnN0IHJlc2F2ZUFzSW1hZ2VXaXRoU2NlbmUgPSAoZWxlbWVudHMsIGFwcFN0YXRlLCBmaWxlcykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XFxuICAgIGNvbnN0IHsgZXhwb3J0QmFja2dyb3VuZCwgdmlld0JhY2tncm91bmRDb2xvciwgbmFtZSwgZmlsZUhhbmRsZSB9ID0gYXBwU3RhdGU7XFxuICAgIGNvbnN0IGZpbGVIYW5kbGVUeXBlID0gKDAsX2Jsb2JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXRGaWxlSGFuZGxlVHlwZSkoZmlsZUhhbmRsZSk7XFxuICAgIGlmICghZmlsZUhhbmRsZSB8fCAhKDAsX2Jsb2JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5pc0ltYWdlRmlsZUhhbmRsZVR5cGUpKGZpbGVIYW5kbGVUeXBlKSkge1xcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxcXCJmaWxlSGFuZGxlIHNob3VsZCBleGlzdCBhbmQgc2hvdWxkIGJlIG9mIHR5cGUgc3ZnIG9yIHBuZyB3aGVuIHJlc2F2aW5nXFxcIik7XFxuICAgIH1cXG4gICAgYXBwU3RhdGUgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBleHBvcnRFbWJlZFNjZW5lOiB0cnVlIH0pO1xcbiAgICB5aWVsZCAoMCxfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZXhwb3J0Q2FudmFzKShmaWxlSGFuZGxlVHlwZSwgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKGVsZW1lbnRzKSwgYXBwU3RhdGUsIGZpbGVzLCB7XFxuICAgICAgICBleHBvcnRCYWNrZ3JvdW5kLFxcbiAgICAgICAgdmlld0JhY2tncm91bmRDb2xvcixcXG4gICAgICAgIG5hbWUsXFxuICAgICAgICBmaWxlSGFuZGxlLFxcbiAgICB9KTtcXG4gICAgcmV0dXJuIHsgZmlsZUhhbmRsZSB9O1xcbn0pO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WkdGMFlTOXlaWE5oZG1VdWRITXVhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3p0QlFVVnBRenRCUVVOclFqdEJRVU5sTzBGQlJUTkVMRTFCUVUwc2MwSkJRWE5DTEVkQlFVY3NRMEZEY0VNc1VVRkJjME1zUlVGRGRFTXNVVUZCYTBJc1JVRkRiRUlzUzBGQmEwSXNSVUZEYkVJc1JVRkJSVHRKUVVOR0xFMUJRVTBzUlVGQlJTeG5Ra0ZCWjBJc1JVRkJSU3h0UWtGQmJVSXNSVUZCUlN4SlFVRkpMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFZEJRVWNzVVVGQlVTeERRVUZETzBsQlJUZEZMRTFCUVUwc1kwRkJZeXhIUVVGSExIZEVRVUZwUWl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wbEJSWEpFTEVsQlFVa3NRMEZCUXl4VlFVRlZMRWxCUVVrc1EwRkJReXcwUkVGQmNVSXNRMEZCUXl4alFVRmpMRU5CUVVNc1JVRkJSVHRSUVVONlJDeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVTmlMSGRGUVVGM1JTeERRVU42UlN4RFFVRkRPMHRCUTBnN1NVRkRSQ3hSUVVGUkxHMURRVU5JTEZGQlFWRXNTMEZEV0N4blFrRkJaMElzUlVGQlJTeEpRVUZKTEVkQlEzWkNMRU5CUVVNN1NVRkZSaXhOUVVGTkxDdERRVUZaTEVOQlEyaENMR05CUVdNc1JVRkRaQ3dyUkVGQmNVSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkRMMElzVVVGQlVTeEZRVU5TTEV0QlFVc3NSVUZEVER0UlFVTkZMR2RDUVVGblFqdFJRVU5vUWl4dFFrRkJiVUk3VVVGRGJrSXNTVUZCU1R0UlFVTktMRlZCUVZVN1MwRkRXQ3hEUVVOR0xFTkJRVU03U1VGRlJpeFBRVUZQTEVWQlFVVXNWVUZCVlN4RlFVRkZMRU5CUVVNN1FVRkRlRUlzUTBGQlF5eEZRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyUmhkR0V2Y21WellYWmxMblJ6UDJVek5UWWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnUlhoallXeHBaSEpoZDBWc1pXMWxiblFnZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEM5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1FYQndVM1JoZEdVc0lFSnBibUZ5ZVVacGJHVnpJSDBnWm5KdmJTQmNJaTR1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCbGVIQnZjblJEWVc1MllYTWdmU0JtY205dElGd2lMbHdpTzF4dWFXMXdiM0owSUhzZ1oyVjBUbTl1UkdWc1pYUmxaRVZzWlcxbGJuUnpJSDBnWm5KdmJTQmNJaTR1TDJWc1pXMWxiblJjSWp0Y2JtbHRjRzl5ZENCN0lHZGxkRVpwYkdWSVlXNWtiR1ZVZVhCbExDQnBjMGx0WVdkbFJtbHNaVWhoYm1Sc1pWUjVjR1VnZlNCbWNtOXRJRndpTGk5aWJHOWlYQ0k3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J5WlhOaGRtVkJjMGx0WVdkbFYybDBhRk5qWlc1bElEMGdZWE41Ym1NZ0tGeHVJQ0JsYkdWdFpXNTBjem9nY21WaFpHOXViSGtnUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFN4Y2JpQWdZWEJ3VTNSaGRHVTZJRUZ3Y0ZOMFlYUmxMRnh1SUNCbWFXeGxjem9nUW1sdVlYSjVSbWxzWlhNc1hHNHBJRDArSUh0Y2JpQWdZMjl1YzNRZ2V5QmxlSEJ2Y25SQ1lXTnJaM0p2ZFc1a0xDQjJhV1YzUW1GamEyZHliM1Z1WkVOdmJHOXlMQ0J1WVcxbExDQm1hV3hsU0dGdVpHeGxJSDBnUFNCaGNIQlRkR0YwWlR0Y2JseHVJQ0JqYjI1emRDQm1hV3hsU0dGdVpHeGxWSGx3WlNBOUlHZGxkRVpwYkdWSVlXNWtiR1ZVZVhCbEtHWnBiR1ZJWVc1a2JHVXBPMXh1WEc0Z0lHbG1JQ2doWm1sc1pVaGhibVJzWlNCOGZDQWhhWE5KYldGblpVWnBiR1ZJWVc1a2JHVlVlWEJsS0dacGJHVklZVzVrYkdWVWVYQmxLU2tnZTF4dUlDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGNiaUFnSUNBZ0lGd2labWxzWlVoaGJtUnNaU0J6YUc5MWJHUWdaWGhwYzNRZ1lXNWtJSE5vYjNWc1pDQmlaU0J2WmlCMGVYQmxJSE4yWnlCdmNpQndibWNnZDJobGJpQnlaWE5oZG1sdVoxd2lMRnh1SUNBZ0lDazdYRzRnSUgxY2JpQWdZWEJ3VTNSaGRHVWdQU0I3WEc0Z0lDQWdMaTR1WVhCd1UzUmhkR1VzWEc0Z0lDQWdaWGh3YjNKMFJXMWlaV1JUWTJWdVpUb2dkSEoxWlN4Y2JpQWdmVHRjYmx4dUlDQmhkMkZwZENCbGVIQnZjblJEWVc1MllYTW9YRzRnSUNBZ1ptbHNaVWhoYm1Sc1pWUjVjR1VzWEc0Z0lDQWdaMlYwVG05dVJHVnNaWFJsWkVWc1pXMWxiblJ6S0dWc1pXMWxiblJ6S1N4Y2JpQWdJQ0JoY0hCVGRHRjBaU3hjYmlBZ0lDQm1hV3hsY3l4Y2JpQWdJQ0I3WEc0Z0lDQWdJQ0JsZUhCdmNuUkNZV05yWjNKdmRXNWtMRnh1SUNBZ0lDQWdkbWxsZDBKaFkydG5jbTkxYm1SRGIyeHZjaXhjYmlBZ0lDQWdJRzVoYldVc1hHNGdJQ0FnSUNCbWFXeGxTR0Z1Wkd4bExGeHVJQ0FnSUgwc1hHNGdJQ2s3WEc1Y2JpQWdjbVYwZFhKdUlIc2dabWxzWlVoaGJtUnNaU0I5TzF4dWZUdGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9kYXRhL3Jlc2F2ZS50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vZGF0YS9yZXN0b3JlLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9kYXRhL3Jlc3RvcmUudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJBbGxvd2VkRXhjYWxpZHJhd0VsZW1lbnRUeXBlc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEFsbG93ZWRFeGNhbGlkcmF3RWxlbWVudFR5cGVzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJyZXN0b3JlRWxlbWVudHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZXN0b3JlRWxlbWVudHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJlc3RvcmVBcHBTdGF0ZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJlc3RvcmVBcHBTdGF0ZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicmVzdG9yZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJlc3RvcmUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJlc3RvcmVMaWJyYXJ5SXRlbXNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZXN0b3JlTGlicmFyeUl0ZW1zKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L3R5cGVDaGVja3MgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdHlwZUNoZWNrcy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmFuZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9yYW5kb20gKi8gXFxcIi4uLy4uL3JhbmRvbS50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYXBwU3RhdGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2FwcFN0YXRlICovIFxcXCIuLi8uLi9hcHBTdGF0ZS50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9saW5lYXJFbGVtZW50RWRpdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L2xpbmVhckVsZW1lbnRFZGl0b3IgKi8gXFxcIi4uLy4uL2VsZW1lbnQvbGluZWFyRWxlbWVudEVkaXRvci50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L211dGF0ZUVsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvbXV0YXRlRWxlbWVudC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcblxcblxcblxcblxcblxcblxcblxcblxcblxcbmNvbnN0IEFsbG93ZWRFeGNhbGlkcmF3RWxlbWVudFR5cGVzID0ge1xcbiAgICBzZWxlY3Rpb246IHRydWUsXFxuICAgIHRleHQ6IHRydWUsXFxuICAgIHJlY3RhbmdsZTogdHJ1ZSxcXG4gICAgZGlhbW9uZDogdHJ1ZSxcXG4gICAgZWxsaXBzZTogdHJ1ZSxcXG4gICAgbGluZTogdHJ1ZSxcXG4gICAgaW1hZ2U6IHRydWUsXFxuICAgIGFycm93OiB0cnVlLFxcbiAgICBmcmVlZHJhdzogdHJ1ZSxcXG59O1xcbmNvbnN0IGdldEZvbnRGYW1pbHlCeU5hbWUgPSAoZm9udEZhbWlseU5hbWUpID0+IHtcXG4gICAgaWYgKE9iamVjdC5rZXlzKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5GT05UX0ZBTUlMWSkuaW5jbHVkZXMoZm9udEZhbWlseU5hbWUpKSB7XFxuICAgICAgICByZXR1cm4gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkZPTlRfRkFNSUxZW2ZvbnRGYW1pbHlOYW1lXTtcXG4gICAgfVxcbiAgICByZXR1cm4gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkRFRkFVTFRfRk9OVF9GQU1JTFk7XFxufTtcXG5jb25zdCByZXN0b3JlRWxlbWVudFdpdGhQcm9wZXJ0aWVzID0gKGVsZW1lbnQsIGV4dHJhKSA9PiB7XFxuICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9qLCBfaywgX2wsIF9tLCBfbywgX3A7XFxuICAgIGNvbnN0IGJhc2UgPSB7XFxuICAgICAgICB0eXBlOiBleHRyYS50eXBlIHx8IGVsZW1lbnQudHlwZSxcXG4gICAgICAgIC8vIGFsbCBlbGVtZW50cyBtdXN0IGhhdmUgdmVyc2lvbiA+IDAgc28gZ2V0U2NlbmVWZXJzaW9uKCkgd2lsbCBwaWNrIHVwXFxuICAgICAgICAvLyBuZXdseSBhZGRlZCBlbGVtZW50c1xcbiAgICAgICAgdmVyc2lvbjogZWxlbWVudC52ZXJzaW9uIHx8IDEsXFxuICAgICAgICB2ZXJzaW9uTm9uY2U6IChfYSA9IGVsZW1lbnQudmVyc2lvbk5vbmNlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwLFxcbiAgICAgICAgaXNEZWxldGVkOiAoX2IgPSBlbGVtZW50LmlzRGVsZXRlZCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZmFsc2UsXFxuICAgICAgICBpZDogZWxlbWVudC5pZCB8fCAoMCxfcmFuZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ucmFuZG9tSWQpKCksXFxuICAgICAgICBmaWxsU3R5bGU6IGVsZW1lbnQuZmlsbFN0eWxlIHx8IFxcXCJoYWNodXJlXFxcIixcXG4gICAgICAgIHN0cm9rZVdpZHRoOiBlbGVtZW50LnN0cm9rZVdpZHRoIHx8IDEsXFxuICAgICAgICBzdHJva2VTdHlsZTogKF9jID0gZWxlbWVudC5zdHJva2VTdHlsZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogXFxcInNvbGlkXFxcIixcXG4gICAgICAgIHJvdWdobmVzczogKF9kID0gZWxlbWVudC5yb3VnaG5lc3MpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IDEsXFxuICAgICAgICBvcGFjaXR5OiBlbGVtZW50Lm9wYWNpdHkgPT0gbnVsbCA/IDEwMCA6IGVsZW1lbnQub3BhY2l0eSxcXG4gICAgICAgIGFuZ2xlOiBlbGVtZW50LmFuZ2xlIHx8IDAsXFxuICAgICAgICB4OiAoX2YgPSAoX2UgPSBleHRyYS54KSAhPT0gbnVsbCAmJiBfZSAhPT0gdm9pZCAwID8gX2UgOiBlbGVtZW50LngpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IDAsXFxuICAgICAgICB5OiAoX2ggPSAoX2cgPSBleHRyYS55KSAhPT0gbnVsbCAmJiBfZyAhPT0gdm9pZCAwID8gX2cgOiBlbGVtZW50LnkpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IDAsXFxuICAgICAgICBzdHJva2VDb2xvcjogZWxlbWVudC5zdHJva2VDb2xvcixcXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogZWxlbWVudC5iYWNrZ3JvdW5kQ29sb3IsXFxuICAgICAgICB3aWR0aDogZWxlbWVudC53aWR0aCB8fCAwLFxcbiAgICAgICAgaGVpZ2h0OiBlbGVtZW50LmhlaWdodCB8fCAwLFxcbiAgICAgICAgc2VlZDogKF9qID0gZWxlbWVudC5zZWVkKSAhPT0gbnVsbCAmJiBfaiAhPT0gdm9pZCAwID8gX2ogOiAxLFxcbiAgICAgICAgZ3JvdXBJZHM6IChfayA9IGVsZW1lbnQuZ3JvdXBJZHMpICE9PSBudWxsICYmIF9rICE9PSB2b2lkIDAgPyBfayA6IFtdLFxcbiAgICAgICAgc3Ryb2tlU2hhcnBuZXNzOiAoX2wgPSBlbGVtZW50LnN0cm9rZVNoYXJwbmVzcykgIT09IG51bGwgJiYgX2wgIT09IHZvaWQgMCA/IF9sIDogKCgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5pc0xpbmVhckVsZW1lbnRUeXBlKShlbGVtZW50LnR5cGUpID8gXFxcInJvdW5kXFxcIiA6IFxcXCJzaGFycFxcXCIpLFxcbiAgICAgICAgYm91bmRFbGVtZW50czogZWxlbWVudC5ib3VuZEVsZW1lbnRJZHNcXG4gICAgICAgICAgICA/IGVsZW1lbnQuYm91bmRFbGVtZW50SWRzLm1hcCgoaWQpID0+ICh7IHR5cGU6IFxcXCJhcnJvd1xcXCIsIGlkIH0pKVxcbiAgICAgICAgICAgIDogKF9tID0gZWxlbWVudC5ib3VuZEVsZW1lbnRzKSAhPT0gbnVsbCAmJiBfbSAhPT0gdm9pZCAwID8gX20gOiBbXSxcXG4gICAgICAgIHVwZGF0ZWQ6IChfbyA9IGVsZW1lbnQudXBkYXRlZCkgIT09IG51bGwgJiYgX28gIT09IHZvaWQgMCA/IF9vIDogKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uZ2V0VXBkYXRlZFRpbWVzdGFtcCkoKSxcXG4gICAgICAgIGxpbms6IChfcCA9IGVsZW1lbnQubGluaykgIT09IG51bGwgJiYgX3AgIT09IHZvaWQgMCA/IF9wIDogbnVsbCxcXG4gICAgfTtcXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBiYXNlKSwgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5nZXROb3JtYWxpemVkRGltZW5zaW9ucykoYmFzZSkpLCBleHRyYSk7XFxufTtcXG5jb25zdCByZXN0b3JlRWxlbWVudCA9IChlbGVtZW50KSA9PiB7XFxuICAgIHZhciBfYSwgX2I7XFxuICAgIHN3aXRjaCAoZWxlbWVudC50eXBlKSB7XFxuICAgICAgICBjYXNlIFxcXCJ0ZXh0XFxcIjpcXG4gICAgICAgICAgICBsZXQgZm9udFNpemUgPSBlbGVtZW50LmZvbnRTaXplO1xcbiAgICAgICAgICAgIGxldCBmb250RmFtaWx5ID0gZWxlbWVudC5mb250RmFtaWx5O1xcbiAgICAgICAgICAgIGlmIChcXFwiZm9udFxcXCIgaW4gZWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBbZm9udFB4LCBfZm9udEZhbWlseV0gPSBlbGVtZW50LmZvbnQuc3BsaXQoXFxcIiBcXFwiKTtcXG4gICAgICAgICAgICAgICAgZm9udFNpemUgPSBwYXJzZUludChmb250UHgsIDEwKTtcXG4gICAgICAgICAgICAgICAgZm9udEZhbWlseSA9IGdldEZvbnRGYW1pbHlCeU5hbWUoX2ZvbnRGYW1pbHkpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZXR1cm4gcmVzdG9yZUVsZW1lbnRXaXRoUHJvcGVydGllcyhlbGVtZW50LCB7XFxuICAgICAgICAgICAgICAgIGZvbnRTaXplLFxcbiAgICAgICAgICAgICAgICBmb250RmFtaWx5LFxcbiAgICAgICAgICAgICAgICB0ZXh0OiAoX2EgPSBlbGVtZW50LnRleHQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFxcXCJcXFwiLFxcbiAgICAgICAgICAgICAgICBiYXNlbGluZTogZWxlbWVudC5iYXNlbGluZSxcXG4gICAgICAgICAgICAgICAgdGV4dEFsaWduOiBlbGVtZW50LnRleHRBbGlnbiB8fCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uREVGQVVMVF9URVhUX0FMSUdOLFxcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiBlbGVtZW50LnZlcnRpY2FsQWxpZ24gfHwgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkRFRkFVTFRfVkVSVElDQUxfQUxJR04sXFxuICAgICAgICAgICAgICAgIGNvbnRhaW5lcklkOiAoX2IgPSBlbGVtZW50LmNvbnRhaW5lcklkKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBudWxsLFxcbiAgICAgICAgICAgICAgICBvcmlnaW5hbFRleHQ6IGVsZW1lbnQub3JpZ2luYWxUZXh0IHx8IGVsZW1lbnQudGV4dCxcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIGNhc2UgXFxcImZyZWVkcmF3XFxcIjoge1xcbiAgICAgICAgICAgIHJldHVybiByZXN0b3JlRWxlbWVudFdpdGhQcm9wZXJ0aWVzKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgcG9pbnRzOiBlbGVtZW50LnBvaW50cyxcXG4gICAgICAgICAgICAgICAgbGFzdENvbW1pdHRlZFBvaW50OiBudWxsLFxcbiAgICAgICAgICAgICAgICBzaW11bGF0ZVByZXNzdXJlOiBlbGVtZW50LnNpbXVsYXRlUHJlc3N1cmUsXFxuICAgICAgICAgICAgICAgIHByZXNzdXJlczogZWxlbWVudC5wcmVzc3VyZXMsXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgICAgICBjYXNlIFxcXCJpbWFnZVxcXCI6XFxuICAgICAgICAgICAgcmV0dXJuIHJlc3RvcmVFbGVtZW50V2l0aFByb3BlcnRpZXMoZWxlbWVudCwge1xcbiAgICAgICAgICAgICAgICBzdGF0dXM6IGVsZW1lbnQuc3RhdHVzIHx8IFxcXCJwZW5kaW5nXFxcIixcXG4gICAgICAgICAgICAgICAgZmlsZUlkOiBlbGVtZW50LmZpbGVJZCxcXG4gICAgICAgICAgICAgICAgc2NhbGU6IGVsZW1lbnQuc2NhbGUgfHwgWzEsIDFdLFxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgY2FzZSBcXFwibGluZVxcXCI6XFxuICAgICAgICAvLyBAdHMtaWdub3JlIExFR0FDWSB0eXBlXFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcXG4gICAgICAgIGNhc2UgXFxcImRyYXdcXFwiOlxcbiAgICAgICAgY2FzZSBcXFwiYXJyb3dcXFwiOiB7XFxuICAgICAgICAgICAgY29uc3QgeyBzdGFydEFycm93aGVhZCA9IG51bGwsIGVuZEFycm93aGVhZCA9IGVsZW1lbnQudHlwZSA9PT0gXFxcImFycm93XFxcIiA/IFxcXCJhcnJvd1xcXCIgOiBudWxsLCB9ID0gZWxlbWVudDtcXG4gICAgICAgICAgICBsZXQgeCA9IGVsZW1lbnQueDtcXG4gICAgICAgICAgICBsZXQgeSA9IGVsZW1lbnQueTtcXG4gICAgICAgICAgICBsZXQgcG9pbnRzID0gLy8gbWlncmF0ZSBvbGQgYXJyb3cgbW9kZWwgdG8gbmV3IG9uZVxcbiAgICAgICAgICAgICAhQXJyYXkuaXNBcnJheShlbGVtZW50LnBvaW50cykgfHwgZWxlbWVudC5wb2ludHMubGVuZ3RoIDwgMlxcbiAgICAgICAgICAgICAgICA/IFtcXG4gICAgICAgICAgICAgICAgICAgIFswLCAwXSxcXG4gICAgICAgICAgICAgICAgICAgIFtlbGVtZW50LndpZHRoLCBlbGVtZW50LmhlaWdodF0sXFxuICAgICAgICAgICAgICAgIF1cXG4gICAgICAgICAgICAgICAgOiBlbGVtZW50LnBvaW50cztcXG4gICAgICAgICAgICBpZiAocG9pbnRzWzBdWzBdICE9PSAwIHx8IHBvaW50c1swXVsxXSAhPT0gMCkge1xcbiAgICAgICAgICAgICAgICAoeyBwb2ludHMsIHgsIHkgfSA9IF9lbGVtZW50X2xpbmVhckVsZW1lbnRFZGl0b3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5MaW5lYXJFbGVtZW50RWRpdG9yLmdldE5vcm1hbGl6ZWRQb2ludHMoZWxlbWVudCkpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZXR1cm4gcmVzdG9yZUVsZW1lbnRXaXRoUHJvcGVydGllcyhlbGVtZW50LCB7XFxuICAgICAgICAgICAgICAgIHR5cGU6IGVsZW1lbnQudHlwZSA9PT0gXFxcImRyYXdcXFwiXFxuICAgICAgICAgICAgICAgICAgICA/IFxcXCJsaW5lXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgOiBlbGVtZW50LnR5cGUsXFxuICAgICAgICAgICAgICAgIHN0YXJ0QmluZGluZzogZWxlbWVudC5zdGFydEJpbmRpbmcsXFxuICAgICAgICAgICAgICAgIGVuZEJpbmRpbmc6IGVsZW1lbnQuZW5kQmluZGluZyxcXG4gICAgICAgICAgICAgICAgbGFzdENvbW1pdHRlZFBvaW50OiBudWxsLFxcbiAgICAgICAgICAgICAgICBzdGFydEFycm93aGVhZCxcXG4gICAgICAgICAgICAgICAgZW5kQXJyb3doZWFkLFxcbiAgICAgICAgICAgICAgICBwb2ludHMsXFxuICAgICAgICAgICAgICAgIHgsXFxuICAgICAgICAgICAgICAgIHksXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgICAgICAvLyBnZW5lcmljIGVsZW1lbnRzXFxuICAgICAgICBjYXNlIFxcXCJlbGxpcHNlXFxcIjpcXG4gICAgICAgICAgICByZXR1cm4gcmVzdG9yZUVsZW1lbnRXaXRoUHJvcGVydGllcyhlbGVtZW50LCB7fSk7XFxuICAgICAgICBjYXNlIFxcXCJyZWN0YW5nbGVcXFwiOlxcbiAgICAgICAgICAgIHJldHVybiByZXN0b3JlRWxlbWVudFdpdGhQcm9wZXJ0aWVzKGVsZW1lbnQsIHt9KTtcXG4gICAgICAgIGNhc2UgXFxcImRpYW1vbmRcXFwiOlxcbiAgICAgICAgICAgIHJldHVybiByZXN0b3JlRWxlbWVudFdpdGhQcm9wZXJ0aWVzKGVsZW1lbnQsIHt9KTtcXG4gICAgICAgIC8vIERvbid0IHVzZSBkZWZhdWx0IGNhc2Ugc28gYXMgdG8gY2F0Y2ggYSBtaXNzaW5nIGFuIGVsZW1lbnQgdHlwZSBjYXNlLlxcbiAgICAgICAgLy8gV2UgYWxzbyBkb24ndCB3YW50IHRvIHRocm93LCBidXQgaW5zdGVhZCByZXR1cm4gdm9pZCBzbyB3ZSBmaWx0ZXJcXG4gICAgICAgIC8vIG91dCB0aGVzZSB1bnN1cHBvcnRlZCBlbGVtZW50cyBmcm9tIHRoZSByZXN0b3JlZCBhcnJheS5cXG4gICAgfVxcbn07XFxuY29uc3QgcmVzdG9yZUVsZW1lbnRzID0gKGVsZW1lbnRzLCBcXG4vKiogTk9URSBkb2Vzbid0IHNlcnZlIGZvciByZWNvbmNpbGlhdGlvbiAqL1xcbmxvY2FsRWxlbWVudHMpID0+IHtcXG4gICAgY29uc3QgbG9jYWxFbGVtZW50c01hcCA9IGxvY2FsRWxlbWVudHMgPyAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5hcnJheVRvTWFwKShsb2NhbEVsZW1lbnRzKSA6IG51bGw7XFxuICAgIHJldHVybiAoZWxlbWVudHMgfHwgW10pLnJlZHVjZSgoZWxlbWVudHMsIGVsZW1lbnQpID0+IHtcXG4gICAgICAgIC8vIGZpbHRlcmluZyBvdXQgc2VsZWN0aW9uLCB3aGljaCBpcyBsZWdhY3ksIG5vIGxvbmdlciBrZXB0IGluIGVsZW1lbnRzLFxcbiAgICAgICAgLy8gYW5kIGNhdXNpbmcgaXNzdWVzIGlmIHJldGFpbmVkXFxuICAgICAgICBpZiAoZWxlbWVudC50eXBlICE9PSBcXFwic2VsZWN0aW9uXFxcIiAmJiAhKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5pc0ludmlzaWJseVNtYWxsRWxlbWVudCkoZWxlbWVudCkpIHtcXG4gICAgICAgICAgICBsZXQgbWlncmF0ZWRFbGVtZW50ID0gcmVzdG9yZUVsZW1lbnQoZWxlbWVudCk7XFxuICAgICAgICAgICAgaWYgKG1pZ3JhdGVkRWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbEVsZW1lbnQgPSBsb2NhbEVsZW1lbnRzTWFwID09PSBudWxsIHx8IGxvY2FsRWxlbWVudHNNYXAgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGxvY2FsRWxlbWVudHNNYXAuZ2V0KGVsZW1lbnQuaWQpO1xcbiAgICAgICAgICAgICAgICBpZiAobG9jYWxFbGVtZW50ICYmIGxvY2FsRWxlbWVudC52ZXJzaW9uID4gbWlncmF0ZWRFbGVtZW50LnZlcnNpb24pIHtcXG4gICAgICAgICAgICAgICAgICAgIG1pZ3JhdGVkRWxlbWVudCA9ICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5idW1wVmVyc2lvbikobWlncmF0ZWRFbGVtZW50LCBsb2NhbEVsZW1lbnQudmVyc2lvbik7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChtaWdyYXRlZEVsZW1lbnQpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiBlbGVtZW50cztcXG4gICAgfSwgW10pO1xcbn07XFxuY29uc3QgcmVzdG9yZUFwcFN0YXRlID0gKGFwcFN0YXRlLCBsb2NhbEFwcFN0YXRlKSA9PiB7XFxuICAgIGFwcFN0YXRlID0gYXBwU3RhdGUgfHwge307XFxuICAgIGNvbnN0IGRlZmF1bHRBcHBTdGF0ZSA9ICgwLF9hcHBTdGF0ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmdldERlZmF1bHRBcHBTdGF0ZSkoKTtcXG4gICAgY29uc3QgbmV4dEFwcFN0YXRlID0ge307XFxuICAgIGZvciAoY29uc3QgW2tleSwgZGVmYXVsdFZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhkZWZhdWx0QXBwU3RhdGUpKSB7XFxuICAgICAgICBjb25zdCBzdXBwbGllZFZhbHVlID0gYXBwU3RhdGVba2V5XTtcXG4gICAgICAgIGNvbnN0IGxvY2FsVmFsdWUgPSBsb2NhbEFwcFN0YXRlID8gbG9jYWxBcHBTdGF0ZVtrZXldIDogdW5kZWZpbmVkO1xcbiAgICAgICAgbmV4dEFwcFN0YXRlW2tleV0gPVxcbiAgICAgICAgICAgIHN1cHBsaWVkVmFsdWUgIT09IHVuZGVmaW5lZFxcbiAgICAgICAgICAgICAgICA/IHN1cHBsaWVkVmFsdWVcXG4gICAgICAgICAgICAgICAgOiBsb2NhbFZhbHVlICE9PSB1bmRlZmluZWRcXG4gICAgICAgICAgICAgICAgICAgID8gbG9jYWxWYWx1ZVxcbiAgICAgICAgICAgICAgICAgICAgOiBkZWZhdWx0VmFsdWU7XFxuICAgIH1cXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgbmV4dEFwcFN0YXRlKSwgeyBlbGVtZW50VHlwZTogQWxsb3dlZEV4Y2FsaWRyYXdFbGVtZW50VHlwZXNbbmV4dEFwcFN0YXRlLmVsZW1lbnRUeXBlXVxcbiAgICAgICAgICAgID8gbmV4dEFwcFN0YXRlLmVsZW1lbnRUeXBlXFxuICAgICAgICAgICAgOiBcXFwic2VsZWN0aW9uXFxcIiwgXFxuICAgICAgICAvLyBNaWdyYXRlcyBmcm9tIHByZXZpb3VzIHZlcnNpb24gd2hlcmUgYXBwU3RhdGUuem9vbSB3YXMgYSBudW1iZXJcXG4gICAgICAgIHpvb206IHR5cGVvZiBhcHBTdGF0ZS56b29tID09PSBcXFwibnVtYmVyXFxcIlxcbiAgICAgICAgICAgID8ge1xcbiAgICAgICAgICAgICAgICB2YWx1ZTogYXBwU3RhdGUuem9vbSxcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgOiBhcHBTdGF0ZS56b29tIHx8IGRlZmF1bHRBcHBTdGF0ZS56b29tIH0pO1xcbn07XFxuY29uc3QgcmVzdG9yZSA9IChkYXRhLCBcXG4vKipcXG4gKiBMb2NhbCBBcHBTdGF0ZSAoYHRoaXMuc3RhdGVgIG9yIGluaXRpYWwgc3RhdGUgZnJvbSBsb2NhbFN0b3JhZ2UpIHNvIHRoYXQgd2VcXG4gKiBkb24ndCBvdmVyd3JpdGUgbG9jYWwgc3RhdGUgd2l0aCBkZWZhdWx0IHZhbHVlcyAod2hlbiB2YWx1ZXMgbm90XFxuICogZXhwbGljaXRseSBzcGVjaWZpZWQpLlxcbiAqIFN1cHBseSBgbnVsbGAgaWYgeW91IGNhbid0IGdldCBhY2Nlc3MgdG8gaXQuXFxuICovXFxubG9jYWxBcHBTdGF0ZSwgbG9jYWxFbGVtZW50cykgPT4ge1xcbiAgICByZXR1cm4ge1xcbiAgICAgICAgZWxlbWVudHM6IHJlc3RvcmVFbGVtZW50cyhkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEuZWxlbWVudHMsIGxvY2FsRWxlbWVudHMpLFxcbiAgICAgICAgYXBwU3RhdGU6IHJlc3RvcmVBcHBTdGF0ZShkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEuYXBwU3RhdGUsIGxvY2FsQXBwU3RhdGUgfHwgbnVsbCksXFxuICAgICAgICBmaWxlczogKGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS5maWxlcykgfHwge30sXFxuICAgIH07XFxufTtcXG5jb25zdCByZXN0b3JlTGlicmFyeUl0ZW1zID0gKGxpYnJhcnlJdGVtcywgZGVmYXVsdFN0YXR1cykgPT4ge1xcbiAgICBjb25zdCByZXN0b3JlZEl0ZW1zID0gW107XFxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBsaWJyYXJ5SXRlbXMpIHtcXG4gICAgICAgIC8vIG1pZ3JhdGUgb2xkZXIgbGlicmFyaWVzXFxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xcbiAgICAgICAgICAgIHJlc3RvcmVkSXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgIHN0YXR1czogZGVmYXVsdFN0YXR1cyxcXG4gICAgICAgICAgICAgICAgZWxlbWVudHM6IGl0ZW0sXFxuICAgICAgICAgICAgICAgIGlkOiAoMCxfcmFuZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ucmFuZG9tSWQpKCksXFxuICAgICAgICAgICAgICAgIGNyZWF0ZWQ6IERhdGUubm93KCksXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICBjb25zdCBfaXRlbSA9IGl0ZW07XFxuICAgICAgICAgICAgcmVzdG9yZWRJdGVtcy5wdXNoKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgX2l0ZW0pLCB7IGlkOiBfaXRlbS5pZCB8fCAoMCxfcmFuZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ucmFuZG9tSWQpKCksIHN0YXR1czogX2l0ZW0uc3RhdHVzIHx8IGRlZmF1bHRTdGF0dXMsIGNyZWF0ZWQ6IF9pdGVtLmNyZWF0ZWQgfHwgRGF0ZS5ub3coKSB9KSk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIHJlc3RvcmVkSXRlbXM7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlpHRjBZUzl5WlhOMGIzSmxMblJ6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3T3pzN096czdRVUZaT0VVN1FVRkRiRUk3UVVGRGRrSTdRVUZOWmp0QlFVTXlRanRCUVVOdlFqdEJRVU5rTzBGQlExSTdRVUZEVkR0QlFVOHZRaXhOUVVGTkxEWkNRVUUyUWl4SFFVZDBRenRKUVVOR0xGTkJRVk1zUlVGQlJTeEpRVUZKTzBsQlEyWXNTVUZCU1N4RlFVRkZMRWxCUVVrN1NVRkRWaXhUUVVGVExFVkJRVVVzU1VGQlNUdEpRVU5tTEU5QlFVOHNSVUZCUlN4SlFVRkpPMGxCUTJJc1QwRkJUeXhGUVVGRkxFbEJRVWs3U1VGRFlpeEpRVUZKTEVWQlFVVXNTVUZCU1R0SlFVTldMRXRCUVVzc1JVRkJSU3hKUVVGSk8wbEJRMWdzUzBGQlN5eEZRVUZGTEVsQlFVazdTVUZEV0N4UlFVRlJMRVZCUVVVc1NVRkJTVHREUVVObUxFTkJRVU03UVVGUlJpeE5RVUZOTEcxQ1FVRnRRaXhIUVVGSExFTkJRVU1zWTBGQmMwSXNSVUZCYjBJc1JVRkJSVHRKUVVOMlJTeEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc2JVUkJRVmNzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4alFVRmpMRU5CUVVNc1JVRkJSVHRSUVVOeVJDeFBRVUZQTEcxRVFVRlhMRU5CUTJoQ0xHTkJRVEJETEVOQlEzWkNMRU5CUVVNN1MwRkRka0k3U1VGRFJDeFBRVUZQTERKRVFVRnRRaXhEUVVGRE8wRkJRemRDTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc05FSkJRVFJDTEVkQlFVY3NRMEZKYmtNc1QwRkhReXhGUVVORUxFdEJUWE5FTEVWQlEyNUVMRVZCUVVVN08wbEJRMHdzVFVGQlRTeEpRVUZKTEVkQlFYRkRPMUZCUXpkRExFbEJRVWtzUlVGQlJTeExRVUZMTEVOQlFVTXNTVUZCU1N4SlFVRkpMRTlCUVU4c1EwRkJReXhKUVVGSk8xRkJRMmhETEhWRlFVRjFSVHRSUVVOMlJTeDFRa0ZCZFVJN1VVRkRka0lzVDBGQlR5eEZRVUZGTEU5QlFVOHNRMEZCUXl4UFFVRlBMRWxCUVVrc1EwRkJRenRSUVVNM1FpeFpRVUZaTEVWQlFVVXNZVUZCVHl4RFFVRkRMRmxCUVZrc2JVTkJRVWtzUTBGQlF6dFJRVU4yUXl4VFFVRlRMRVZCUVVVc1lVRkJUeXhEUVVGRExGTkJRVk1zYlVOQlFVa3NTMEZCU3p0UlFVTnlReXhGUVVGRkxFVkJRVVVzVDBGQlR5eERRVUZETEVWQlFVVXNTVUZCU1N4cFJFRkJVU3hGUVVGRk8xRkJRelZDTEZOQlFWTXNSVUZCUlN4UFFVRlBMRU5CUVVNc1UwRkJVeXhKUVVGSkxGTkJRVk03VVVGRGVrTXNWMEZCVnl4RlFVRkZMRTlCUVU4c1EwRkJReXhYUVVGWExFbEJRVWtzUTBGQlF6dFJRVU55UXl4WFFVRlhMRVZCUVVVc1lVRkJUeXhEUVVGRExGZEJRVmNzYlVOQlFVa3NUMEZCVHp0UlFVTXpReXhUUVVGVExFVkJRVVVzWVVGQlR5eERRVUZETEZOQlFWTXNiVU5CUVVrc1EwRkJRenRSUVVOcVF5eFBRVUZQTEVWQlFVVXNUMEZCVHl4RFFVRkRMRTlCUVU4c1NVRkJTU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVTg3VVVGRGVFUXNTMEZCU3l4RlFVRkZMRTlCUVU4c1EwRkJReXhMUVVGTExFbEJRVWtzUTBGQlF6dFJRVU42UWl4RFFVRkRMRVZCUVVVc2FVSkJRVXNzUTBGQlF5eERRVUZETEcxRFFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExHMURRVUZKTEVOQlFVTTdVVUZETlVJc1EwRkJReXhGUVVGRkxHbENRVUZMTEVOQlFVTXNRMEZCUXl4dFEwRkJTU3hQUVVGUExFTkJRVU1zUTBGQlF5eHRRMEZCU1N4RFFVRkRPMUZCUXpWQ0xGZEJRVmNzUlVGQlJTeFBRVUZQTEVOQlFVTXNWMEZCVnp0UlFVTm9ReXhsUVVGbExFVkJRVVVzVDBGQlR5eERRVUZETEdWQlFXVTdVVUZEZUVNc1MwRkJTeXhGUVVGRkxFOUJRVThzUTBGQlF5eExRVUZMTEVsQlFVa3NRMEZCUXp0UlFVTjZRaXhOUVVGTkxFVkJRVVVzVDBGQlR5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRPMUZCUXpOQ0xFbEJRVWtzUlVGQlJTeGhRVUZQTEVOQlFVTXNTVUZCU1N4dFEwRkJTU3hEUVVGRE8xRkJRM1pDTEZGQlFWRXNSVUZCUlN4aFFVRlBMRU5CUVVNc1VVRkJVU3h0UTBGQlNTeEZRVUZGTzFGQlEyaERMR1ZCUVdVc1JVRkRZaXhoUVVGUExFTkJRVU1zWlVGQlpTeHRRMEZEZGtJc1EwRkJReXgzUlVGQmJVSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRE8xRkJRM3BFTEdGQlFXRXNSVUZCUlN4UFFVRlBMRU5CUVVNc1pVRkJaVHRaUVVOd1F5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMR1ZCUVdVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkRPVVFzUTBGQlF5eERRVUZETEdGQlFVOHNRMEZCUXl4aFFVRmhMRzFEUVVGSkxFVkJRVVU3VVVGREwwSXNUMEZCVHl4RlFVRkZMR0ZCUVU4c1EwRkJReXhQUVVGUExHMURRVUZKTERKRVFVRnRRaXhGUVVGRk8xRkJRMnBFTEVsQlFVa3NSVUZCUlN4aFFVRlBMRU5CUVVNc1NVRkJTU3h0UTBGQlNTeEpRVUZKTzB0QlF6TkNMRU5CUVVNN1NVRkZSaXhQUVVGUExEaERRVU5HTEVsQlFVa3NSMEZEU2l4cFJVRkJkVUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZETjBJc1MwRkJTeXhEUVVOUExFTkJRVU03UVVGRGNFSXNRMEZCUXl4RFFVRkRPMEZCUlVZc1RVRkJUU3hqUVVGakxFZEJRVWNzUTBGRGNrSXNUMEZCSzBRc1JVRkRlRU1zUlVGQlJUczdTVUZEZWtJc1VVRkJVU3hQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTzFGQlEzQkNMRXRCUVVzc1RVRkJUVHRaUVVOVUxFbEJRVWtzVVVGQlVTeEhRVUZITEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNN1dVRkRhRU1zU1VGQlNTeFZRVUZWTEVkQlFVY3NUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJRenRaUVVOd1F5eEpRVUZKTEUxQlFVMHNTVUZCU1N4UFFVRlBMRVZCUVVVN1owSkJRM0pDTEUxQlFVMHNRMEZCUXl4TlFVRk5MRVZCUVVVc1YwRkJWeXhEUVVGRExFZEJRM3BDTEU5QlEwUXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzJkQ1FVTnNRaXhSUVVGUkxFZEJRVWNzVVVGQlVTeERRVUZETEUxQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRGFFTXNWVUZCVlN4SFFVRkhMRzFDUVVGdFFpeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMkZCUXk5RE8xbEJRMFFzVDBGQlR5dzBRa0ZCTkVJc1EwRkJReXhQUVVGUExFVkJRVVU3WjBKQlF6TkRMRkZCUVZFN1owSkJRMUlzVlVGQlZUdG5Ra0ZEVml4SlFVRkpMRVZCUVVVc1lVRkJUeXhEUVVGRExFbEJRVWtzYlVOQlFVa3NSVUZCUlR0blFrRkRlRUlzVVVGQlVTeEZRVUZGTEU5QlFVOHNRMEZCUXl4UlFVRlJPMmRDUVVNeFFpeFRRVUZUTEVWQlFVVXNUMEZCVHl4RFFVRkRMRk5CUVZNc1NVRkJTU3d3UkVGQmEwSTdaMEpCUTJ4RUxHRkJRV0VzUlVGQlJTeFBRVUZQTEVOQlFVTXNZVUZCWVN4SlFVRkpMRGhFUVVGelFqdG5Ra0ZET1VRc1YwRkJWeXhGUVVGRkxHRkJRVThzUTBGQlF5eFhRVUZYTEcxRFFVRkpMRWxCUVVrN1owSkJRM2hETEZsQlFWa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1dVRkJXU3hKUVVGSkxFOUJRVThzUTBGQlF5eEpRVUZKTzJGQlEyNUVMRU5CUVVNc1EwRkJRenRSUVVOTUxFdEJRVXNzVlVGQlZTeERRVUZETEVOQlFVTTdXVUZEWml4UFFVRlBMRFJDUVVFMFFpeERRVUZETEU5QlFVOHNSVUZCUlR0blFrRkRNME1zVFVGQlRTeEZRVUZGTEU5QlFVOHNRMEZCUXl4TlFVRk5PMmRDUVVOMFFpeHJRa0ZCYTBJc1JVRkJSU3hKUVVGSk8yZENRVU40UWl4blFrRkJaMElzUlVGQlJTeFBRVUZQTEVOQlFVTXNaMEpCUVdkQ08yZENRVU14UXl4VFFVRlRMRVZCUVVVc1QwRkJUeXhEUVVGRExGTkJRVk03WVVGRE4wSXNRMEZCUXl4RFFVRkRPMU5CUTBvN1VVRkRSQ3hMUVVGTExFOUJRVTg3V1VGRFZpeFBRVUZQTERSQ1FVRTBRaXhEUVVGRExFOUJRVThzUlVGQlJUdG5Ra0ZETTBNc1RVRkJUU3hGUVVGRkxFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NVMEZCVXp0blFrRkRia01zVFVGQlRTeEZRVUZGTEU5QlFVOHNRMEZCUXl4TlFVRk5PMmRDUVVOMFFpeExRVUZMTEVWQlFVVXNUMEZCVHl4RFFVRkRMRXRCUVVzc1NVRkJTU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdZVUZETDBJc1EwRkJReXhEUVVGRE8xRkJRMHdzUzBGQlN5eE5RVUZOTEVOQlFVTTdVVUZEV2l4NVFrRkJlVUk3VVVGRGVrSXNNRU5CUVRCRE8xRkJRekZETEV0QlFVc3NUVUZCVFN4RFFVRkRPMUZCUTFvc1MwRkJTeXhQUVVGUExFTkJRVU1zUTBGQlF6dFpRVU5hTEUxQlFVMHNSVUZEU2l4alFVRmpMRWRCUVVjc1NVRkJTU3hGUVVOeVFpeFpRVUZaTEVkQlFVY3NUMEZCVHl4RFFVRkRMRWxCUVVrc1MwRkJTeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hIUVVONlJDeEhRVUZITEU5QlFVOHNRMEZCUXp0WlFVVmFMRWxCUVVrc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEYkVJc1NVRkJTU3hEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnNRaXhKUVVGSkxFMUJRVTBzUjBGQlJ5eHhRMEZCY1VNN1lVRkRhRVFzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRE8yZENRVU42UkN4RFFVRkRMRU5CUVVNN2IwSkJRMFVzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMjlDUVVOT0xFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NSVUZCUlN4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRE8ybENRVU5vUXp0blFrRkRTQ3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXp0WlFVVnlRaXhKUVVGSkxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJUdG5Ra0ZETlVNc1EwRkJReXhGUVVGRkxFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRWRCUVVjc2FVZEJRWFZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVOMlJUdFpRVVZFTEU5QlFVOHNORUpCUVRSQ0xFTkJRVU1zVDBGQlR5eEZRVUZGTzJkQ1FVTXpReXhKUVVGSkxFVkJRMFFzVDBGQlR5eERRVUZETEVsQlFUSkRMRXRCUVVzc1RVRkJUVHR2UWtGRE4wUXNRMEZCUXl4RFFVRkRMRTFCUVUwN2IwSkJRMUlzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpPMmRDUVVOc1FpeFpRVUZaTEVWQlFVVXNUMEZCVHl4RFFVRkRMRmxCUVZrN1owSkJRMnhETEZWQlFWVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1ZVRkJWVHRuUWtGRE9VSXNhMEpCUVd0Q0xFVkJRVVVzU1VGQlNUdG5Ra0ZEZUVJc1kwRkJZenRuUWtGRFpDeFpRVUZaTzJkQ1FVTmFMRTFCUVUwN1owSkJRMDRzUTBGQlF6dG5Ra0ZEUkN4RFFVRkRPMkZCUTBZc1EwRkJReXhEUVVGRE8xTkJRMG83VVVGRFJDeHRRa0ZCYlVJN1VVRkRia0lzUzBGQlN5eFRRVUZUTzFsQlExb3NUMEZCVHl3MFFrRkJORUlzUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRia1FzUzBGQlN5eFhRVUZYTzFsQlEyUXNUMEZCVHl3MFFrRkJORUlzUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRia1FzUzBGQlN5eFRRVUZUTzFsQlExb3NUMEZCVHl3MFFrRkJORUlzUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkZia1FzZDBWQlFYZEZPMUZCUTNoRkxHOUZRVUZ2UlR0UlFVTndSU3d3UkVGQk1FUTdTMEZETTBRN1FVRkRTQ3hEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEdWQlFXVXNSMEZCUnl4RFFVTTNRaXhSUVVGMVF6dEJRVU4yUXl3MFEwRkJORU03UVVGRE5VTXNZVUZCT0VRc1JVRkRla01zUlVGQlJUdEpRVU4yUWl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc2EwUkJRVlVzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRE8wbEJRekZGTEU5QlFVOHNRMEZCUXl4UlFVRlJMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNVVUZCVVN4RlFVRkZMRTlCUVU4c1JVRkJSU3hGUVVGRk8xRkJRMjVFTEhkRlFVRjNSVHRSUVVONFJTeHBRMEZCYVVNN1VVRkRha01zU1VGQlNTeFBRVUZQTEVOQlFVTXNTVUZCU1N4TFFVRkxMRmRCUVZjc1NVRkJTU3hEUVVGRExHbEZRVUYxUWl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRk8xbEJRM0pGTEVsQlFVa3NaVUZCWlN4SFFVRTJRaXhqUVVGakxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdXVUZEZUVVc1NVRkJTU3hsUVVGbExFVkJRVVU3WjBKQlEyNUNMRTFCUVUwc1dVRkJXU3hIUVVGSExHZENRVUZuUWl4aFFVRm9RaXhuUWtGQlowSXNkVUpCUVdoQ0xHZENRVUZuUWl4RFFVRkZMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdaMEpCUTNaRUxFbEJRVWtzV1VGQldTeEpRVUZKTEZsQlFWa3NRMEZCUXl4UFFVRlBMRWRCUVVjc1pVRkJaU3hEUVVGRExFOUJRVThzUlVGQlJUdHZRa0ZEYkVVc1pVRkJaU3hIUVVGSExHMUZRVUZYTEVOQlFVTXNaVUZCWlN4RlFVRkZMRmxCUVZrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dHBRa0ZEZEVVN1owSkJRMFFzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJRenRoUVVOb1F6dFRRVU5HTzFGQlEwUXNUMEZCVHl4UlFVRlJMRU5CUVVNN1NVRkRiRUlzUTBGQlF5eEZRVUZGTEVWQlFYbENMRU5CUVVNc1EwRkJRenRCUVVOb1F5eERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MR1ZCUVdVc1IwRkJSeXhEUVVNM1FpeFJRVUYxUXl4RlFVTjJReXhoUVVGdFJDeEZRVU5xUXl4RlFVRkZPMGxCUTNCQ0xGRkJRVkVzUjBGQlJ5eFJRVUZSTEVsQlFVa3NSVUZCUlN4RFFVRkRPMGxCUlRGQ0xFMUJRVTBzWlVGQlpTeEhRVUZITERaRVFVRnJRaXhGUVVGRkxFTkJRVU03U1VGRE4wTXNUVUZCVFN4WlFVRlpMRWRCUVVjc1JVRkJORUlzUTBGQlF6dEpRVVZzUkN4TFFVRkxMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzV1VGQldTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhsUVVGbExFTkJSemRFTEVWQlFVVTdVVUZEU0N4TlFVRk5MR0ZCUVdFc1IwRkJSeXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEY0VNc1RVRkJUU3hWUVVGVkxFZEJRVWNzWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4aFFVRmhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXp0UlFVTnFSU3haUVVGdlFpeERRVUZETEVkQlFVY3NRMEZCUXp0WlFVTjRRaXhoUVVGaExFdEJRVXNzVTBGQlV6dG5Ra0ZEZWtJc1EwRkJReXhEUVVGRExHRkJRV0U3WjBKQlEyWXNRMEZCUXl4RFFVRkRMRlZCUVZVc1MwRkJTeXhUUVVGVE8yOUNRVU14UWl4RFFVRkRMRU5CUVVNc1ZVRkJWVHR2UWtGRFdpeERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRPMHRCUTNCQ08wbEJSVVFzZFVOQlEwc3NXVUZCV1N4TFFVTm1MRmRCUVZjc1JVRkJSU3cyUWtGQk5rSXNRMEZCUXl4WlFVRlpMRU5CUVVNc1YwRkJWeXhEUVVGRE8xbEJRMnhGTEVOQlFVTXNRMEZCUXl4WlFVRlpMRU5CUVVNc1YwRkJWenRaUVVNeFFpeERRVUZETEVOQlFVTXNWMEZCVnp0UlFVTm1MR3RGUVVGclJUdFJRVU5zUlN4SlFVRkpMRVZCUTBZc1QwRkJUeXhSUVVGUkxFTkJRVU1zU1VGQlNTeExRVUZMTEZGQlFWRTdXVUZETDBJc1EwRkJReXhEUVVGRE8yZENRVU5GTEV0QlFVc3NSVUZCUlN4UlFVRlJMRU5CUVVNc1NVRkJNa0k3WVVGRE5VTTdXVUZEU0N4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzU1VGQlNTeGxRVUZsTEVOQlFVTXNTVUZCU1N4SlFVTXpRenRCUVVOS0xFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNUMEZCVHl4SFFVRkhMRU5CUTNKQ0xFbEJRVGhDTzBGQlF6bENPenM3T3p0SFFVdEhPMEZCUTBnc1lVRkJiVVFzUlVGRGJrUXNZVUZCT0VRc1JVRkRNME1zUlVGQlJUdEpRVU55UWl4UFFVRlBPMUZCUTB3c1VVRkJVU3hGUVVGRkxHVkJRV1VzUTBGQlF5eEpRVUZKTEdGQlFVb3NTVUZCU1N4MVFrRkJTaXhKUVVGSkxFTkJRVVVzVVVGQlVTeEZRVUZGTEdGQlFXRXNRMEZCUXp0UlFVTjRSQ3hSUVVGUkxFVkJRVVVzWlVGQlpTeERRVUZETEVsQlFVa3NZVUZCU2l4SlFVRkpMSFZDUVVGS0xFbEJRVWtzUTBGQlJTeFJRVUZSTEVWQlFVVXNZVUZCWVN4SlFVRkpMRWxCUVVrc1EwRkJRenRSUVVOb1JTeExRVUZMTEVWQlFVVXNTMEZCU1N4aFFVRktMRWxCUVVrc2RVSkJRVW9zU1VGQlNTeERRVUZGTEV0QlFVc3NTMEZCU1N4RlFVRkZPMHRCUTNwQ0xFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEVOQlEycERMRmxCUVRSRUxFVkJRelZFTEdGQlFXOURMRVZCUTNCRExFVkJRVVU3U1VGRFJpeE5RVUZOTEdGQlFXRXNSMEZCYTBJc1JVRkJSU3hEUVVGRE8wbEJRM2hETEV0QlFVc3NUVUZCVFN4SlFVRkpMRWxCUVVrc1dVRkJXU3hGUVVGRk8xRkJReTlDTERCQ1FVRXdRanRSUVVNeFFpeEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3V1VGRGRrSXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJRenRuUWtGRGFrSXNUVUZCVFN4RlFVRkZMR0ZCUVdFN1owSkJRM0pDTEZGQlFWRXNSVUZCUlN4SlFVRkpPMmRDUVVOa0xFVkJRVVVzUlVGQlJTeHBSRUZCVVN4RlFVRkZPMmRDUVVOa0xFOUJRVThzUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RlFVRkZPMkZCUTNCQ0xFTkJRVU1zUTBGQlF6dFRRVU5LTzJGQlFVMDdXVUZEVEN4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGclJDeERRVUZETzFsQlEycEZMR0ZCUVdFc1EwRkJReXhKUVVGSkxHbERRVU5pTEV0QlFVc3NTMEZEVWl4RlFVRkZMRVZCUVVVc1MwRkJTeXhEUVVGRExFVkJRVVVzU1VGQlNTeHBSRUZCVVN4RlFVRkZMRVZCUXpGQ0xFMUJRVTBzUlVGQlJTeExRVUZMTEVOQlFVTXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1JVRkRja01zVDBGQlR5eEZRVUZGTEV0QlFVc3NRMEZCUXl4UFFVRlBMRWxCUVVrc1NVRkJTU3hEUVVGRExFZEJRVWNzUlVGQlJTeEpRVU53UXl4RFFVRkRPMU5CUTBvN1MwRkRSanRKUVVORUxFOUJRVThzWVVGQllTeERRVUZETzBGQlEzWkNMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5a1lYUmhMM0psYzNSdmNtVXVkSE0vT0RjeU1DSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMXh1SUNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEN4Y2JpQWdSWGhqWVd4cFpISmhkMU5sYkdWamRHbHZia1ZzWlcxbGJuUXNYRzRnSUVadmJuUkdZVzFwYkhsV1lXeDFaWE1zWEc1OUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MEwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JCY0hCVGRHRjBaU3hjYmlBZ1FtbHVZWEo1Um1sc1pYTXNYRzRnSUV4cFluSmhjbmxKZEdWdExGeHVJQ0JPYjNKdFlXeHBlbVZrV205dmJWWmhiSFZsTEZ4dWZTQm1jbTl0SUZ3aUxpNHZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdJRWx0Y0c5eWRHVmtSR0YwWVZOMFlYUmxJSDBnWm5KdmJTQmNJaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUdkbGRFNXZjbTFoYkdsNlpXUkVhVzFsYm5OcGIyNXpMQ0JwYzBsdWRtbHphV0pzZVZOdFlXeHNSV3hsYldWdWRDQjlJR1p5YjIwZ1hDSXVMaTlsYkdWdFpXNTBYQ0k3WEc1cGJYQnZjblFnZXlCcGMweHBibVZoY2tWc1pXMWxiblJVZVhCbElIMGdabkp2YlNCY0lpNHVMMlZzWlcxbGJuUXZkSGx3WlVOb1pXTnJjMXdpTzF4dWFXMXdiM0owSUhzZ2NtRnVaRzl0U1dRZ2ZTQm1jbTl0SUZ3aUxpNHZjbUZ1Wkc5dFhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCRVJVWkJWVXhVWDBaUFRsUmZSa0ZOU1V4WkxGeHVJQ0JFUlVaQlZVeFVYMVJGV0ZSZlFVeEpSMDRzWEc0Z0lFUkZSa0ZWVEZSZlZrVlNWRWxEUVV4ZlFVeEpSMDRzWEc0Z0lFWlBUbFJmUmtGTlNVeFpMRnh1ZlNCbWNtOXRJRndpTGk0dlkyOXVjM1JoYm5SelhDSTdYRzVwYlhCdmNuUWdleUJuWlhSRVpXWmhkV3gwUVhCd1UzUmhkR1VnZlNCbWNtOXRJRndpTGk0dllYQndVM1JoZEdWY0lqdGNibWx0Y0c5eWRDQjdJRXhwYm1WaGNrVnNaVzFsYm5SRlpHbDBiM0lnZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEM5c2FXNWxZWEpGYkdWdFpXNTBSV1JwZEc5eVhDSTdYRzVwYlhCdmNuUWdleUJpZFcxd1ZtVnljMmx2YmlCOUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MEwyMTFkR0YwWlVWc1pXMWxiblJjSWp0Y2JtbHRjRzl5ZENCN0lHZGxkRlZ3WkdGMFpXUlVhVzFsYzNSaGJYQWdmU0JtY205dElGd2lMaTR2ZFhScGJITmNJanRjYm1sdGNHOXlkQ0I3SUdGeWNtRjVWRzlOWVhBZ2ZTQm1jbTl0SUZ3aUxpNHZkWFJwYkhOY0lqdGNibHh1ZEhsd1pTQlNaWE4wYjNKbFpFRndjRk4wWVhSbElEMGdUMjFwZER4Y2JpQWdRWEJ3VTNSaGRHVXNYRzRnSUZ3aWIyWm1jMlYwVkc5d1hDSWdmQ0JjSW05bVpuTmxkRXhsWm5SY0lpQjhJRndpZDJsa2RHaGNJaUI4SUZ3aWFHVnBaMmgwWENKY2JqNDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQkJiR3h2ZDJWa1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SVWVYQmxjem9nVW1WamIzSmtQRnh1SUNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0Y0luUjVjR1ZjSWwwc1hHNGdJSFJ5ZFdWY2JqNGdQU0I3WEc0Z0lITmxiR1ZqZEdsdmJqb2dkSEoxWlN4Y2JpQWdkR1Y0ZERvZ2RISjFaU3hjYmlBZ2NtVmpkR0Z1WjJ4bE9pQjBjblZsTEZ4dUlDQmthV0Z0YjI1a09pQjBjblZsTEZ4dUlDQmxiR3hwY0hObE9pQjBjblZsTEZ4dUlDQnNhVzVsT2lCMGNuVmxMRnh1SUNCcGJXRm5aVG9nZEhKMVpTeGNiaUFnWVhKeWIzYzZJSFJ5ZFdVc1hHNGdJR1p5WldWa2NtRjNPaUIwY25WbExGeHVmVHRjYmx4dVpYaHdiM0owSUhSNWNHVWdVbVZ6ZEc5eVpXUkVZWFJoVTNSaGRHVWdQU0I3WEc0Z0lHVnNaVzFsYm5Sek9pQkZlR05oYkdsa2NtRjNSV3hsYldWdWRGdGRPMXh1SUNCaGNIQlRkR0YwWlRvZ1VtVnpkRzl5WldSQmNIQlRkR0YwWlR0Y2JpQWdabWxzWlhNNklFSnBibUZ5ZVVacGJHVnpPMXh1ZlR0Y2JseHVZMjl1YzNRZ1oyVjBSbTl1ZEVaaGJXbHNlVUo1VG1GdFpTQTlJQ2htYjI1MFJtRnRhV3g1VG1GdFpUb2djM1J5YVc1bktUb2dSbTl1ZEVaaGJXbHNlVlpoYkhWbGN5QTlQaUI3WEc0Z0lHbG1JQ2hQWW1wbFkzUXVhMlY1Y3loR1QwNVVYMFpCVFVsTVdTa3VhVzVqYkhWa1pYTW9abTl1ZEVaaGJXbHNlVTVoYldVcEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUVaUFRsUmZSa0ZOU1V4WlcxeHVJQ0FnSUNBZ1ptOXVkRVpoYldsc2VVNWhiV1VnWVhNZ2EyVjViMllnZEhsd1pXOW1JRVpQVGxSZlJrRk5TVXhaWEc0Z0lDQWdYU0JoY3lCR2IyNTBSbUZ0YVd4NVZtRnNkV1Z6TzF4dUlDQjlYRzRnSUhKbGRIVnliaUJFUlVaQlZVeFVYMFpQVGxSZlJrRk5TVXhaTzF4dWZUdGNibHh1WTI5dWMzUWdjbVZ6ZEc5eVpVVnNaVzFsYm5SWGFYUm9VSEp2Y0dWeWRHbGxjeUE5SUR4Y2JpQWdWQ0JsZUhSbGJtUnpJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBMRnh1SUNCTElHVjRkR1Z1WkhNZ1VHbGphenhVTENCclpYbHZaaUJQYldsMFBGSmxjWFZwY21Wa1BGUStMQ0JyWlhsdlppQkZlR05oYkdsa2NtRjNSV3hsYldWdWRENCtMRnh1UGloY2JpQWdaV3hsYldWdWREb2dVbVZ4ZFdseVpXUThWRDRnSmlCN1hHNGdJQ0FnTHlvcUlFQmtaWEJ5WldOaGRHVmtJQ292WEc0Z0lDQWdZbTkxYm1SRmJHVnRaVzUwU1dSelB6b2djbVZoWkc5dWJIa2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYQ0pwWkZ3aVhWdGRPMXh1SUNCOUxGeHVJQ0JsZUhSeVlUb2dVR2xqYXp4Y2JpQWdJQ0JVTEZ4dUlDQWdJQzh2SUZSb2FYTWdaWGgwY21FZ1VHbGphenhVTENCclpYbHZaaUJMUGlCbGJuTjFjbVVnYm04Z1pYaGpaWE56SUhCeWIzQmxjblJwWlhNZ1lYSmxJSEJoYzNObFpDNWNiaUFnSUNBdkx5QkFkSE10YVdkdWIzSmxJRlJUSUdOdmJYQnNZV2x1Y3lCb1pYSmxJR0oxZENCMGVYQmxJR05vWldOcmN5QjBhR1VnWTJGc2JDQnphWFJsY3lCbWFXNWxMbHh1SUNBZ0lHdGxlVzltSUV0Y2JpQWdQaUFtWEc0Z0lDQWdVR0Z5ZEdsaGJEeFFhV05yUEVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwTENCY0luUjVjR1ZjSWlCOElGd2llRndpSUh3Z1hDSjVYQ0krUGl4Y2JpazZJRlFnUFQ0Z2UxeHVJQ0JqYjI1emRDQmlZWE5sT2lCUWFXTnJQRlFzSUd0bGVXOW1JRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBQaUE5SUh0Y2JpQWdJQ0IwZVhCbE9pQmxlSFJ5WVM1MGVYQmxJSHg4SUdWc1pXMWxiblF1ZEhsd1pTeGNiaUFnSUNBdkx5QmhiR3dnWld4bGJXVnVkSE1nYlhWemRDQm9ZWFpsSUhabGNuTnBiMjRnUGlBd0lITnZJR2RsZEZOalpXNWxWbVZ5YzJsdmJpZ3BJSGRwYkd3Z2NHbGpheUIxY0Z4dUlDQWdJQzh2SUc1bGQyeDVJR0ZrWkdWa0lHVnNaVzFsYm5SelhHNGdJQ0FnZG1WeWMybHZiam9nWld4bGJXVnVkQzUyWlhKemFXOXVJSHg4SURFc1hHNGdJQ0FnZG1WeWMybHZiazV2Ym1ObE9pQmxiR1Z0Wlc1MExuWmxjbk5wYjI1T2IyNWpaU0EvUHlBd0xGeHVJQ0FnSUdselJHVnNaWFJsWkRvZ1pXeGxiV1Z1ZEM1cGMwUmxiR1YwWldRZ1B6OGdabUZzYzJVc1hHNGdJQ0FnYVdRNklHVnNaVzFsYm5RdWFXUWdmSHdnY21GdVpHOXRTV1FvS1N4Y2JpQWdJQ0JtYVd4c1UzUjViR1U2SUdWc1pXMWxiblF1Wm1sc2JGTjBlV3hsSUh4OElGd2lhR0ZqYUhWeVpWd2lMRnh1SUNBZ0lITjBjbTlyWlZkcFpIUm9PaUJsYkdWdFpXNTBMbk4wY205clpWZHBaSFJvSUh4OElERXNYRzRnSUNBZ2MzUnliMnRsVTNSNWJHVTZJR1ZzWlcxbGJuUXVjM1J5YjJ0bFUzUjViR1VnUHo4Z1hDSnpiMnhwWkZ3aUxGeHVJQ0FnSUhKdmRXZG9ibVZ6Y3pvZ1pXeGxiV1Z1ZEM1eWIzVm5hRzVsYzNNZ1B6OGdNU3hjYmlBZ0lDQnZjR0ZqYVhSNU9pQmxiR1Z0Wlc1MExtOXdZV05wZEhrZ1BUMGdiblZzYkNBL0lERXdNQ0E2SUdWc1pXMWxiblF1YjNCaFkybDBlU3hjYmlBZ0lDQmhibWRzWlRvZ1pXeGxiV1Z1ZEM1aGJtZHNaU0I4ZkNBd0xGeHVJQ0FnSUhnNklHVjRkSEpoTG5nZ1B6OGdaV3hsYldWdWRDNTRJRDgvSURBc1hHNGdJQ0FnZVRvZ1pYaDBjbUV1ZVNBL1B5QmxiR1Z0Wlc1MExua2dQejhnTUN4Y2JpQWdJQ0J6ZEhKdmEyVkRiMnh2Y2pvZ1pXeGxiV1Z1ZEM1emRISnZhMlZEYjJ4dmNpeGNiaUFnSUNCaVlXTnJaM0p2ZFc1a1EyOXNiM0k2SUdWc1pXMWxiblF1WW1GamEyZHliM1Z1WkVOdmJHOXlMRnh1SUNBZ0lIZHBaSFJvT2lCbGJHVnRaVzUwTG5kcFpIUm9JSHg4SURBc1hHNGdJQ0FnYUdWcFoyaDBPaUJsYkdWdFpXNTBMbWhsYVdkb2RDQjhmQ0F3TEZ4dUlDQWdJSE5sWldRNklHVnNaVzFsYm5RdWMyVmxaQ0EvUHlBeExGeHVJQ0FnSUdkeWIzVndTV1J6T2lCbGJHVnRaVzUwTG1keWIzVndTV1J6SUQ4L0lGdGRMRnh1SUNBZ0lITjBjbTlyWlZOb1lYSndibVZ6Y3pwY2JpQWdJQ0FnSUdWc1pXMWxiblF1YzNSeWIydGxVMmhoY25CdVpYTnpJRDgvWEc0Z0lDQWdJQ0FvYVhOTWFXNWxZWEpGYkdWdFpXNTBWSGx3WlNobGJHVnRaVzUwTG5SNWNHVXBJRDhnWENKeWIzVnVaRndpSURvZ1hDSnphR0Z5Y0Z3aUtTeGNiaUFnSUNCaWIzVnVaRVZzWlcxbGJuUnpPaUJsYkdWdFpXNTBMbUp2ZFc1a1JXeGxiV1Z1ZEVsa2MxeHVJQ0FnSUNBZ1B5QmxiR1Z0Wlc1MExtSnZkVzVrUld4bGJXVnVkRWxrY3k1dFlYQW9LR2xrS1NBOVBpQW9leUIwZVhCbE9pQmNJbUZ5Y205M1hDSXNJR2xrSUgwcEtWeHVJQ0FnSUNBZ09pQmxiR1Z0Wlc1MExtSnZkVzVrUld4bGJXVnVkSE1nUHo4Z1cxMHNYRzRnSUNBZ2RYQmtZWFJsWkRvZ1pXeGxiV1Z1ZEM1MWNHUmhkR1ZrSUQ4L0lHZGxkRlZ3WkdGMFpXUlVhVzFsYzNSaGJYQW9LU3hjYmlBZ0lDQnNhVzVyT2lCbGJHVnRaVzUwTG14cGJtc2dQejhnYm5Wc2JDeGNiaUFnZlR0Y2JseHVJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDNHVMbUpoYzJVc1hHNGdJQ0FnTGk0dVoyVjBUbTl5YldGc2FYcGxaRVJwYldWdWMybHZibk1vWW1GelpTa3NYRzRnSUNBZ0xpNHVaWGgwY21Fc1hHNGdJSDBnWVhNZ2RXNXJibTkzYmlCaGN5QlVPMXh1ZlR0Y2JseHVZMjl1YzNRZ2NtVnpkRzl5WlVWc1pXMWxiblFnUFNBb1hHNGdJR1ZzWlcxbGJuUTZJRVY0WTJ4MVpHVThSWGhqWVd4cFpISmhkMFZzWlcxbGJuUXNJRVY0WTJGc2FXUnlZWGRUWld4bFkzUnBiMjVGYkdWdFpXNTBQaXhjYmlrNklIUjVjR1Z2WmlCbGJHVnRaVzUwSUh3Z2JuVnNiQ0E5UGlCN1hHNGdJSE4zYVhSamFDQW9aV3hsYldWdWRDNTBlWEJsS1NCN1hHNGdJQ0FnWTJGelpTQmNJblJsZUhSY0lqcGNiaUFnSUNBZ0lHeGxkQ0JtYjI1MFUybDZaU0E5SUdWc1pXMWxiblF1Wm05dWRGTnBlbVU3WEc0Z0lDQWdJQ0JzWlhRZ1ptOXVkRVpoYldsc2VTQTlJR1ZzWlcxbGJuUXVabTl1ZEVaaGJXbHNlVHRjYmlBZ0lDQWdJR2xtSUNoY0ltWnZiblJjSWlCcGJpQmxiR1Z0Wlc1MEtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElGdG1iMjUwVUhnc0lGOW1iMjUwUm1GdGFXeDVYVG9nVzNOMGNtbHVaeXdnYzNSeWFXNW5YU0E5SUNoY2JpQWdJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MElHRnpJR0Z1ZVZ4dUlDQWdJQ0FnSUNBcExtWnZiblF1YzNCc2FYUW9YQ0lnWENJcE8xeHVJQ0FnSUNBZ0lDQm1iMjUwVTJsNlpTQTlJSEJoY25ObFNXNTBLR1p2Ym5SUWVDd2dNVEFwTzF4dUlDQWdJQ0FnSUNCbWIyNTBSbUZ0YVd4NUlEMGdaMlYwUm05dWRFWmhiV2xzZVVKNVRtRnRaU2hmWm05dWRFWmhiV2xzZVNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnY21WemRHOXlaVVZzWlcxbGJuUlhhWFJvVUhKdmNHVnlkR2xsY3lobGJHVnRaVzUwTENCN1hHNGdJQ0FnSUNBZ0lHWnZiblJUYVhwbExGeHVJQ0FnSUNBZ0lDQm1iMjUwUm1GdGFXeDVMRnh1SUNBZ0lDQWdJQ0IwWlhoME9pQmxiR1Z0Wlc1MExuUmxlSFFnUHo4Z1hDSmNJaXhjYmlBZ0lDQWdJQ0FnWW1GelpXeHBibVU2SUdWc1pXMWxiblF1WW1GelpXeHBibVVzWEc0Z0lDQWdJQ0FnSUhSbGVIUkJiR2xuYmpvZ1pXeGxiV1Z1ZEM1MFpYaDBRV3hwWjI0Z2ZId2dSRVZHUVZWTVZGOVVSVmhVWDBGTVNVZE9MRnh1SUNBZ0lDQWdJQ0IyWlhKMGFXTmhiRUZzYVdkdU9pQmxiR1Z0Wlc1MExuWmxjblJwWTJGc1FXeHBaMjRnZkh3Z1JFVkdRVlZNVkY5V1JWSlVTVU5CVEY5QlRFbEhUaXhjYmlBZ0lDQWdJQ0FnWTI5dWRHRnBibVZ5U1dRNklHVnNaVzFsYm5RdVkyOXVkR0ZwYm1WeVNXUWdQejhnYm5Wc2JDeGNiaUFnSUNBZ0lDQWdiM0pwWjJsdVlXeFVaWGgwT2lCbGJHVnRaVzUwTG05eWFXZHBibUZzVkdWNGRDQjhmQ0JsYkdWdFpXNTBMblJsZUhRc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCallYTmxJRndpWm5KbFpXUnlZWGRjSWpvZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzUnZjbVZGYkdWdFpXNTBWMmwwYUZCeWIzQmxjblJwWlhNb1pXeGxiV1Z1ZEN3Z2UxeHVJQ0FnSUNBZ0lDQndiMmx1ZEhNNklHVnNaVzFsYm5RdWNHOXBiblJ6TEZ4dUlDQWdJQ0FnSUNCc1lYTjBRMjl0YldsMGRHVmtVRzlwYm5RNklHNTFiR3dzWEc0Z0lDQWdJQ0FnSUhOcGJYVnNZWFJsVUhKbGMzTjFjbVU2SUdWc1pXMWxiblF1YzJsdGRXeGhkR1ZRY21WemMzVnlaU3hjYmlBZ0lDQWdJQ0FnY0hKbGMzTjFjbVZ6T2lCbGJHVnRaVzUwTG5CeVpYTnpkWEpsY3l4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgxY2JpQWdJQ0JqWVhObElGd2lhVzFoWjJWY0lqcGNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpYTjBiM0psUld4bGJXVnVkRmRwZEdoUWNtOXdaWEowYVdWektHVnNaVzFsYm5Rc0lIdGNiaUFnSUNBZ0lDQWdjM1JoZEhWek9pQmxiR1Z0Wlc1MExuTjBZWFIxY3lCOGZDQmNJbkJsYm1ScGJtZGNJaXhjYmlBZ0lDQWdJQ0FnWm1sc1pVbGtPaUJsYkdWdFpXNTBMbVpwYkdWSlpDeGNiaUFnSUNBZ0lDQWdjMk5oYkdVNklHVnNaVzFsYm5RdWMyTmhiR1VnZkh3Z1d6RXNJREZkTEZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnWTJGelpTQmNJbXhwYm1WY0lqcGNiaUFnSUNBdkx5QkFkSE10YVdkdWIzSmxJRXhGUjBGRFdTQjBlWEJsWEc0Z0lDQWdMeThnWlhOc2FXNTBMV1JwYzJGaWJHVXRibVY0ZEMxc2FXNWxJRzV2TFdaaGJHeDBhSEp2ZFdkb1hHNGdJQ0FnWTJGelpTQmNJbVJ5WVhkY0lqcGNiaUFnSUNCallYTmxJRndpWVhKeWIzZGNJam9nZTF4dUlDQWdJQ0FnWTI5dWMzUWdlMXh1SUNBZ0lDQWdJQ0J6ZEdGeWRFRnljbTkzYUdWaFpDQTlJRzUxYkd3c1hHNGdJQ0FnSUNBZ0lHVnVaRUZ5Y205M2FHVmhaQ0E5SUdWc1pXMWxiblF1ZEhsd1pTQTlQVDBnWENKaGNuSnZkMXdpSUQ4Z1hDSmhjbkp2ZDF3aUlEb2diblZzYkN4Y2JpQWdJQ0FnSUgwZ1BTQmxiR1Z0Wlc1ME8xeHVYRzRnSUNBZ0lDQnNaWFFnZUNBOUlHVnNaVzFsYm5RdWVEdGNiaUFnSUNBZ0lHeGxkQ0I1SUQwZ1pXeGxiV1Z1ZEM1NU8xeHVJQ0FnSUNBZ2JHVjBJSEJ2YVc1MGN5QTlJQzh2SUcxcFozSmhkR1VnYjJ4a0lHRnljbTkzSUcxdlpHVnNJSFJ2SUc1bGR5QnZibVZjYmlBZ0lDQWdJQ0FnSVVGeWNtRjVMbWx6UVhKeVlYa29aV3hsYldWdWRDNXdiMmx1ZEhNcElIeDhJR1ZzWlcxbGJuUXVjRzlwYm5SekxteGxibWQwYUNBOElESmNiaUFnSUNBZ0lDQWdJQ0EvSUZ0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnV3pBc0lEQmRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmJaV3hsYldWdWRDNTNhV1IwYUN3Z1pXeGxiV1Z1ZEM1b1pXbG5hSFJkTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdYVnh1SUNBZ0lDQWdJQ0FnSURvZ1pXeGxiV1Z1ZEM1d2IybHVkSE03WEc1Y2JpQWdJQ0FnSUdsbUlDaHdiMmx1ZEhOYk1GMWJNRjBnSVQwOUlEQWdmSHdnY0c5cGJuUnpXekJkV3pGZElDRTlQU0F3S1NCN1hHNGdJQ0FnSUNBZ0lDaDdJSEJ2YVc1MGN5d2dlQ3dnZVNCOUlEMGdUR2x1WldGeVJXeGxiV1Z1ZEVWa2FYUnZjaTVuWlhST2IzSnRZV3hwZW1Wa1VHOXBiblJ6S0dWc1pXMWxiblFwS1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzUnZjbVZGYkdWdFpXNTBWMmwwYUZCeWIzQmxjblJwWlhNb1pXeGxiV1Z1ZEN3Z2UxeHVJQ0FnSUNBZ0lDQjBlWEJsT2x4dUlDQWdJQ0FnSUNBZ0lDaGxiR1Z0Wlc1MExuUjVjR1VnWVhNZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhDSjBlWEJsWENKZElId2dYQ0prY21GM1hDSXBJRDA5UFNCY0ltUnlZWGRjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdQeUJjSW14cGJtVmNJbHh1SUNBZ0lDQWdJQ0FnSUNBZ09pQmxiR1Z0Wlc1MExuUjVjR1VzWEc0Z0lDQWdJQ0FnSUhOMFlYSjBRbWx1WkdsdVp6b2daV3hsYldWdWRDNXpkR0Z5ZEVKcGJtUnBibWNzWEc0Z0lDQWdJQ0FnSUdWdVpFSnBibVJwYm1jNklHVnNaVzFsYm5RdVpXNWtRbWx1WkdsdVp5eGNiaUFnSUNBZ0lDQWdiR0Z6ZEVOdmJXMXBkSFJsWkZCdmFXNTBPaUJ1ZFd4c0xGeHVJQ0FnSUNBZ0lDQnpkR0Z5ZEVGeWNtOTNhR1ZoWkN4Y2JpQWdJQ0FnSUNBZ1pXNWtRWEp5YjNkb1pXRmtMRnh1SUNBZ0lDQWdJQ0J3YjJsdWRITXNYRzRnSUNBZ0lDQWdJSGdzWEc0Z0lDQWdJQ0FnSUhrc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNGdJQ0FnTHk4Z1oyVnVaWEpwWXlCbGJHVnRaVzUwYzF4dUlDQWdJR05oYzJVZ1hDSmxiR3hwY0hObFhDSTZYRzRnSUNBZ0lDQnlaWFIxY200Z2NtVnpkRzl5WlVWc1pXMWxiblJYYVhSb1VISnZjR1Z5ZEdsbGN5aGxiR1Z0Wlc1MExDQjdmU2s3WEc0Z0lDQWdZMkZ6WlNCY0luSmxZM1JoYm1kc1pWd2lPbHh1SUNBZ0lDQWdjbVYwZFhKdUlISmxjM1J2Y21WRmJHVnRaVzUwVjJsMGFGQnliM0JsY25ScFpYTW9aV3hsYldWdWRDd2dlMzBwTzF4dUlDQWdJR05oYzJVZ1hDSmthV0Z0YjI1a1hDSTZYRzRnSUNBZ0lDQnlaWFIxY200Z2NtVnpkRzl5WlVWc1pXMWxiblJYYVhSb1VISnZjR1Z5ZEdsbGN5aGxiR1Z0Wlc1MExDQjdmU2s3WEc1Y2JpQWdJQ0F2THlCRWIyNG5kQ0IxYzJVZ1pHVm1ZWFZzZENCallYTmxJSE52SUdGeklIUnZJR05oZEdOb0lHRWdiV2x6YzJsdVp5QmhiaUJsYkdWdFpXNTBJSFI1Y0dVZ1kyRnpaUzVjYmlBZ0lDQXZMeUJYWlNCaGJITnZJR1J2YmlkMElIZGhiblFnZEc4Z2RHaHliM2NzSUdKMWRDQnBibk4wWldGa0lISmxkSFZ5YmlCMmIybGtJSE52SUhkbElHWnBiSFJsY2x4dUlDQWdJQzh2SUc5MWRDQjBhR1Z6WlNCMWJuTjFjSEJ2Y25SbFpDQmxiR1Z0Wlc1MGN5Qm1jbTl0SUhSb1pTQnlaWE4wYjNKbFpDQmhjbkpoZVM1Y2JpQWdmVnh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUhKbGMzUnZjbVZGYkdWdFpXNTBjeUE5SUNoY2JpQWdaV3hsYldWdWRITTZJRWx0Y0c5eWRHVmtSR0YwWVZOMFlYUmxXMXdpWld4bGJXVnVkSE5jSWwwc1hHNGdJQzhxS2lCT1QxUkZJR1J2WlhOdUozUWdjMlZ5ZG1VZ1ptOXlJSEpsWTI5dVkybHNhV0YwYVc5dUlDb3ZYRzRnSUd4dlkyRnNSV3hsYldWdWRITTZJSEpsWVdSdmJteDVJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTBnZkNCdWRXeHNJSHdnZFc1a1pXWnBibVZrTEZ4dUtUb2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYU0E5UGlCN1hHNGdJR052Ym5OMElHeHZZMkZzUld4bGJXVnVkSE5OWVhBZ1BTQnNiMk5oYkVWc1pXMWxiblJ6SUQ4Z1lYSnlZWGxVYjAxaGNDaHNiMk5oYkVWc1pXMWxiblJ6S1NBNklHNTFiR3c3WEc0Z0lISmxkSFZ5YmlBb1pXeGxiV1Z1ZEhNZ2ZId2dXMTBwTG5KbFpIVmpaU2dvWld4bGJXVnVkSE1zSUdWc1pXMWxiblFwSUQwK0lIdGNiaUFnSUNBdkx5Qm1hV3gwWlhKcGJtY2diM1YwSUhObGJHVmpkR2x2Yml3Z2QyaHBZMmdnYVhNZ2JHVm5ZV041TENCdWJ5QnNiMjVuWlhJZ2EyVndkQ0JwYmlCbGJHVnRaVzUwY3l4Y2JpQWdJQ0F2THlCaGJtUWdZMkYxYzJsdVp5QnBjM04xWlhNZ2FXWWdjbVYwWVdsdVpXUmNiaUFnSUNCcFppQW9aV3hsYldWdWRDNTBlWEJsSUNFOVBTQmNJbk5sYkdWamRHbHZibHdpSUNZbUlDRnBjMGx1ZG1semFXSnNlVk50WVd4c1JXeGxiV1Z1ZENobGJHVnRaVzUwS1NrZ2UxeHVJQ0FnSUNBZ2JHVjBJRzFwWjNKaGRHVmtSV3hsYldWdWREb2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUWdmQ0J1ZFd4c0lEMGdjbVZ6ZEc5eVpVVnNaVzFsYm5Rb1pXeGxiV1Z1ZENrN1hHNGdJQ0FnSUNCcFppQW9iV2xuY21GMFpXUkZiR1Z0Wlc1MEtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHeHZZMkZzUld4bGJXVnVkQ0E5SUd4dlkyRnNSV3hsYldWdWRITk5ZWEEvTG1kbGRDaGxiR1Z0Wlc1MExtbGtLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHeHZZMkZzUld4bGJXVnVkQ0FtSmlCc2IyTmhiRVZzWlcxbGJuUXVkbVZ5YzJsdmJpQStJRzFwWjNKaGRHVmtSV3hsYldWdWRDNTJaWEp6YVc5dUtTQjdYRzRnSUNBZ0lDQWdJQ0FnYldsbmNtRjBaV1JGYkdWdFpXNTBJRDBnWW5WdGNGWmxjbk5wYjI0b2JXbG5jbUYwWldSRmJHVnRaVzUwTENCc2IyTmhiRVZzWlcxbGJuUXVkbVZ5YzJsdmJpazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4bGJXVnVkSE11Y0hWemFDaHRhV2R5WVhSbFpFVnNaVzFsYm5RcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdaV3hsYldWdWRITTdYRzRnSUgwc0lGdGRJR0Z6SUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzEwcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJSEpsYzNSdmNtVkJjSEJUZEdGMFpTQTlJQ2hjYmlBZ1lYQndVM1JoZEdVNklFbHRjRzl5ZEdWa1JHRjBZVk4wWVhSbFcxd2lZWEJ3VTNSaGRHVmNJbDBzWEc0Z0lHeHZZMkZzUVhCd1UzUmhkR1U2SUZCaGNuUnBZV3c4UVhCd1UzUmhkR1UrSUh3Z2JuVnNiQ0I4SUhWdVpHVm1hVzVsWkN4Y2JpazZJRkpsYzNSdmNtVmtRWEJ3VTNSaGRHVWdQVDRnZTF4dUlDQmhjSEJUZEdGMFpTQTlJR0Z3Y0ZOMFlYUmxJSHg4SUh0OU8xeHVYRzRnSUdOdmJuTjBJR1JsWm1GMWJIUkJjSEJUZEdGMFpTQTlJR2RsZEVSbFptRjFiSFJCY0hCVGRHRjBaU2dwTzF4dUlDQmpiMjV6ZENCdVpYaDBRWEJ3VTNSaGRHVWdQU0I3ZlNCaGN5QjBlWEJsYjJZZ1pHVm1ZWFZzZEVGd2NGTjBZWFJsTzF4dVhHNGdJR1p2Y2lBb1kyOXVjM1FnVzJ0bGVTd2daR1ZtWVhWc2RGWmhiSFZsWFNCdlppQlBZbXBsWTNRdVpXNTBjbWxsY3loa1pXWmhkV3gwUVhCd1UzUmhkR1VwSUdGeklGdGNiaUFnSUNCclpYbHZaaUIwZVhCbGIyWWdaR1ZtWVhWc2RFRndjRk4wWVhSbExGeHVJQ0FnSUdGdWVTeGNiaUFnWFZ0ZEtTQjdYRzRnSUNBZ1kyOXVjM1FnYzNWd2NHeHBaV1JXWVd4MVpTQTlJR0Z3Y0ZOMFlYUmxXMnRsZVYwN1hHNGdJQ0FnWTI5dWMzUWdiRzlqWVd4V1lXeDFaU0E5SUd4dlkyRnNRWEJ3VTNSaGRHVWdQeUJzYjJOaGJFRndjRk4wWVhSbFcydGxlVjBnT2lCMWJtUmxabWx1WldRN1hHNGdJQ0FnS0c1bGVIUkJjSEJUZEdGMFpTQmhjeUJoYm5rcFcydGxlVjBnUFZ4dUlDQWdJQ0FnYzNWd2NHeHBaV1JXWVd4MVpTQWhQVDBnZFc1a1pXWnBibVZrWEc0Z0lDQWdJQ0FnSUQ4Z2MzVndjR3hwWldSV1lXeDFaVnh1SUNBZ0lDQWdJQ0E2SUd4dlkyRnNWbUZzZFdVZ0lUMDlJSFZ1WkdWbWFXNWxaRnh1SUNBZ0lDQWdJQ0EvSUd4dlkyRnNWbUZzZFdWY2JpQWdJQ0FnSUNBZ09pQmtaV1poZFd4MFZtRnNkV1U3WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnZTF4dUlDQWdJQzR1TG01bGVIUkJjSEJUZEdGMFpTeGNiaUFnSUNCbGJHVnRaVzUwVkhsd1pUb2dRV3hzYjNkbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFZIbHdaWE5iYm1WNGRFRndjRk4wWVhSbExtVnNaVzFsYm5SVWVYQmxYVnh1SUNBZ0lDQWdQeUJ1WlhoMFFYQndVM1JoZEdVdVpXeGxiV1Z1ZEZSNWNHVmNiaUFnSUNBZ0lEb2dYQ0p6Wld4bFkzUnBiMjVjSWl4Y2JpQWdJQ0F2THlCTmFXZHlZWFJsY3lCbWNtOXRJSEJ5WlhacGIzVnpJSFpsY25OcGIyNGdkMmhsY21VZ1lYQndVM1JoZEdVdWVtOXZiU0IzWVhNZ1lTQnVkVzFpWlhKY2JpQWdJQ0I2YjI5dE9seHVJQ0FnSUNBZ2RIbHdaVzltSUdGd2NGTjBZWFJsTG5wdmIyMGdQVDA5SUZ3aWJuVnRZbVZ5WENKY2JpQWdJQ0FnSUNBZ1B5QjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaVG9nWVhCd1UzUmhkR1V1ZW05dmJTQmhjeUJPYjNKdFlXeHBlbVZrV205dmJWWmhiSFZsTEZ4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdPaUJoY0hCVGRHRjBaUzU2YjI5dElIeDhJR1JsWm1GMWJIUkJjSEJUZEdGMFpTNTZiMjl0TEZ4dUlDQjlPMXh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUhKbGMzUnZjbVVnUFNBb1hHNGdJR1JoZEdFNklFbHRjRzl5ZEdWa1JHRjBZVk4wWVhSbElId2diblZzYkN4Y2JpQWdMeW9xWEc0Z0lDQXFJRXh2WTJGc0lFRndjRk4wWVhSbElDaGdkR2hwY3k1emRHRjBaV0FnYjNJZ2FXNXBkR2xoYkNCemRHRjBaU0JtY205dElHeHZZMkZzVTNSdmNtRm5aU2tnYzI4Z2RHaGhkQ0IzWlZ4dUlDQWdLaUJrYjI0bmRDQnZkbVZ5ZDNKcGRHVWdiRzlqWVd3Z2MzUmhkR1VnZDJsMGFDQmtaV1poZFd4MElIWmhiSFZsY3lBb2QyaGxiaUIyWVd4MVpYTWdibTkwWEc0Z0lDQXFJR1Y0Y0d4cFkybDBiSGtnYzNCbFkybG1hV1ZrS1M1Y2JpQWdJQ29nVTNWd2NHeDVJR0J1ZFd4c1lDQnBaaUI1YjNVZ1kyRnVKM1FnWjJWMElHRmpZMlZ6Y3lCMGJ5QnBkQzVjYmlBZ0lDb3ZYRzRnSUd4dlkyRnNRWEJ3VTNSaGRHVTZJRkJoY25ScFlXdzhRWEJ3VTNSaGRHVStJSHdnYm5Wc2JDQjhJSFZ1WkdWbWFXNWxaQ3hjYmlBZ2JHOWpZV3hGYkdWdFpXNTBjem9nY21WaFpHOXViSGtnUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFNCOElHNTFiR3dnZkNCMWJtUmxabWx1WldRc1hHNHBPaUJTWlhOMGIzSmxaRVJoZEdGVGRHRjBaU0E5UGlCN1hHNGdJSEpsZEhWeWJpQjdYRzRnSUNBZ1pXeGxiV1Z1ZEhNNklISmxjM1J2Y21WRmJHVnRaVzUwY3loa1lYUmhQeTVsYkdWdFpXNTBjeXdnYkc5allXeEZiR1Z0Wlc1MGN5a3NYRzRnSUNBZ1lYQndVM1JoZEdVNklISmxjM1J2Y21WQmNIQlRkR0YwWlNoa1lYUmhQeTVoY0hCVGRHRjBaU3dnYkc5allXeEJjSEJUZEdGMFpTQjhmQ0J1ZFd4c0tTeGNiaUFnSUNCbWFXeGxjem9nWkdGMFlUOHVabWxzWlhNZ2ZId2dlMzBzWEc0Z0lIMDdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnY21WemRHOXlaVXhwWW5KaGNubEpkR1Z0Y3lBOUlDaGNiaUFnYkdsaWNtRnllVWwwWlcxek9pQk9iMjVQY0hScGIyNWhiRHhKYlhCdmNuUmxaRVJoZEdGVGRHRjBaVnRjSW14cFluSmhjbmxKZEdWdGMxd2lYVDRzWEc0Z0lHUmxabUYxYkhSVGRHRjBkWE02SUV4cFluSmhjbmxKZEdWdFcxd2ljM1JoZEhWelhDSmRMRnh1S1NBOVBpQjdYRzRnSUdOdmJuTjBJSEpsYzNSdmNtVmtTWFJsYlhNNklFeHBZbkpoY25sSmRHVnRXMTBnUFNCYlhUdGNiaUFnWm05eUlDaGpiMjV6ZENCcGRHVnRJRzltSUd4cFluSmhjbmxKZEdWdGN5a2dlMXh1SUNBZ0lDOHZJRzFwWjNKaGRHVWdiMnhrWlhJZ2JHbGljbUZ5YVdWelhHNGdJQ0FnYVdZZ0tFRnljbUY1TG1selFYSnlZWGtvYVhSbGJTa3BJSHRjYmlBZ0lDQWdJSEpsYzNSdmNtVmtTWFJsYlhNdWNIVnphQ2g3WEc0Z0lDQWdJQ0FnSUhOMFlYUjFjem9nWkdWbVlYVnNkRk4wWVhSMWN5eGNiaUFnSUNBZ0lDQWdaV3hsYldWdWRITTZJR2wwWlcwc1hHNGdJQ0FnSUNBZ0lHbGtPaUJ5WVc1a2IyMUpaQ2dwTEZ4dUlDQWdJQ0FnSUNCamNtVmhkR1ZrT2lCRVlYUmxMbTV2ZHlncExGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJRjlwZEdWdElEMGdhWFJsYlNCaGN5Qk5ZWEpyVDNCMGFXOXVZV3c4VEdsaWNtRnllVWwwWlcwc0lGd2lhV1JjSWlCOElGd2ljM1JoZEhWelhDSStPMXh1SUNBZ0lDQWdjbVZ6ZEc5eVpXUkpkR1Z0Y3k1d2RYTm9LSHRjYmlBZ0lDQWdJQ0FnTGk0dVgybDBaVzBzWEc0Z0lDQWdJQ0FnSUdsa09pQmZhWFJsYlM1cFpDQjhmQ0J5WVc1a2IyMUpaQ2dwTEZ4dUlDQWdJQ0FnSUNCemRHRjBkWE02SUY5cGRHVnRMbk4wWVhSMWN5QjhmQ0JrWldaaGRXeDBVM1JoZEhWekxGeHVJQ0FnSUNBZ0lDQmpjbVZoZEdWa09pQmZhWFJsYlM1amNtVmhkR1ZrSUh4OElFUmhkR1V1Ym05M0tDa3NYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjbVYwZFhKdUlISmxjM1J2Y21Wa1NYUmxiWE03WEc1OU8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2RhdGEvcmVzdG9yZS50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vZGlzaXRydWJ0ZS50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2Rpc2l0cnVidGUudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGlzdHJpYnV0ZUVsZW1lbnRzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZGlzdHJpYnV0ZUVsZW1lbnRzKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2VsZW1lbnQvbXV0YXRlRWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9tdXRhdGVFbGVtZW50LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vZ3JvdXBzICovIFxcXCIuLi8uLi9ncm91cHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2VsZW1lbnQvYm91bmRzICovIFxcXCIuLi8uLi9lbGVtZW50L2JvdW5kcy50c1xcXCIpO1xcblxcblxcblxcbmNvbnN0IGRpc3RyaWJ1dGVFbGVtZW50cyA9IChzZWxlY3RlZEVsZW1lbnRzLCBkaXN0cmlidXRpb24pID0+IHtcXG4gICAgY29uc3QgW3N0YXJ0LCBtaWQsIGVuZCwgZXh0ZW50XSA9IGRpc3RyaWJ1dGlvbi5heGlzID09PSBcXFwieFxcXCJcXG4gICAgICAgID8gW1xcXCJtaW5YXFxcIiwgXFxcIm1pZFhcXFwiLCBcXFwibWF4WFxcXCIsIFxcXCJ3aWR0aFxcXCJdXFxuICAgICAgICA6IFtcXFwibWluWVxcXCIsIFxcXCJtaWRZXFxcIiwgXFxcIm1heFlcXFwiLCBcXFwiaGVpZ2h0XFxcIl07XFxuICAgIGNvbnN0IGJvdW5kcyA9ICgwLF9lbGVtZW50X2JvdW5kc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldENvbW1vbkJvdW5kaW5nQm94KShzZWxlY3RlZEVsZW1lbnRzKTtcXG4gICAgY29uc3QgZ3JvdXBzID0gKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmdldE1heGltdW1Hcm91cHMpKHNlbGVjdGVkRWxlbWVudHMpXFxuICAgICAgICAubWFwKChncm91cCkgPT4gW2dyb3VwLCAoMCxfZWxlbWVudF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXRDb21tb25Cb3VuZGluZ0JveCkoZ3JvdXApXSlcXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhWzFdW21pZF0gLSBiWzFdW21pZF0pO1xcbiAgICBsZXQgc3BhbiA9IDA7XFxuICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgZ3JvdXBzKSB7XFxuICAgICAgICBzcGFuICs9IGdyb3VwWzFdW2V4dGVudF07XFxuICAgIH1cXG4gICAgY29uc3Qgc3RlcCA9IChib3VuZHNbZXh0ZW50XSAtIHNwYW4pIC8gKGdyb3Vwcy5sZW5ndGggLSAxKTtcXG4gICAgaWYgKHN0ZXAgPCAwKSB7XFxuICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgbmVnYXRpdmUgc3RlcCwgd2UnbGwgbmVlZCB0byBkaXN0cmlidXRlIGZyb20gY2VudGVyc1xcbiAgICAgICAgLy8gcmF0aGVyIHRoYW4gZnJvbSBnYXBzLiBCdWNrbGUgdXAsIHRoaXMgaXMgYSB3ZWlyZCBvbmUuXFxuICAgICAgICAvLyBHZXQgaW5kaWNlcyBvZiBib3hlcyB0aGF0IGRlZmluZSBzdGFydCBhbmQgZW5kIG9mIG91ciBib3VuZGluZyBib3hcXG4gICAgICAgIGNvbnN0IGluZGV4MCA9IGdyb3Vwcy5maW5kSW5kZXgoKGcpID0+IGdbMV1bc3RhcnRdID09PSBib3VuZHNbc3RhcnRdKTtcXG4gICAgICAgIGNvbnN0IGluZGV4MSA9IGdyb3Vwcy5maW5kSW5kZXgoKGcpID0+IGdbMV1bZW5kXSA9PT0gYm91bmRzW2VuZF0pO1xcbiAgICAgICAgLy8gR2V0IG91ciBzdGVwLCBiYXNlZCBvbiB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgY2VudGVyIHBvaW50cyBvZiBvdXJcXG4gICAgICAgIC8vIHN0YXJ0IGFuZCBlbmQgYm94ZXNcXG4gICAgICAgIGNvbnN0IHN0ZXAgPSAoZ3JvdXBzW2luZGV4MV1bMV1bbWlkXSAtIGdyb3Vwc1tpbmRleDBdWzFdW21pZF0pIC8gKGdyb3Vwcy5sZW5ndGggLSAxKTtcXG4gICAgICAgIGxldCBwb3MgPSBncm91cHNbaW5kZXgwXVsxXVttaWRdO1xcbiAgICAgICAgcmV0dXJuIGdyb3Vwcy5mbGF0TWFwKChbZ3JvdXAsIGJveF0sIGluZGV4KSA9PiB7XFxuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSB7XFxuICAgICAgICAgICAgICAgIHg6IDAsXFxuICAgICAgICAgICAgICAgIHk6IDAsXFxuICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAvLyBEb24ndCBtb3ZlIG91ciBzdGFydCBhbmQgZW5kIGJveGVzXFxuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSBpbmRleDAgJiYgaW5kZXggIT09IGluZGV4MSkge1xcbiAgICAgICAgICAgICAgICBwb3MgKz0gc3RlcDtcXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb25bZGlzdHJpYnV0aW9uLmF4aXNdID0gcG9zIC0gYm94W21pZF07XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiBncm91cC5tYXAoKGVsZW1lbnQpID0+ICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5uZXdFbGVtZW50V2l0aCkoZWxlbWVudCwge1xcbiAgICAgICAgICAgICAgICB4OiBlbGVtZW50LnggKyB0cmFuc2xhdGlvbi54LFxcbiAgICAgICAgICAgICAgICB5OiBlbGVtZW50LnkgKyB0cmFuc2xhdGlvbi55LFxcbiAgICAgICAgICAgIH0pKTtcXG4gICAgICAgIH0pO1xcbiAgICB9XFxuICAgIC8vIERpc3RyaWJ1dGUgZnJvbSBnYXBzXFxuICAgIGxldCBwb3MgPSBib3VuZHNbc3RhcnRdO1xcbiAgICByZXR1cm4gZ3JvdXBzLmZsYXRNYXAoKFtncm91cCwgYm94XSkgPT4ge1xcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSB7XFxuICAgICAgICAgICAgeDogMCxcXG4gICAgICAgICAgICB5OiAwLFxcbiAgICAgICAgfTtcXG4gICAgICAgIHRyYW5zbGF0aW9uW2Rpc3RyaWJ1dGlvbi5heGlzXSA9IHBvcyAtIGJveFtzdGFydF07XFxuICAgICAgICBwb3MgKz0gc3RlcDtcXG4gICAgICAgIHBvcyArPSBib3hbZXh0ZW50XTtcXG4gICAgICAgIHJldHVybiBncm91cC5tYXAoKGVsZW1lbnQpID0+ICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5uZXdFbGVtZW50V2l0aCkoZWxlbWVudCwge1xcbiAgICAgICAgICAgIHg6IGVsZW1lbnQueCArIHRyYW5zbGF0aW9uLngsXFxuICAgICAgICAgICAgeTogZWxlbWVudC55ICsgdHJhbnNsYXRpb24ueSxcXG4gICAgICAgIH0pKTtcXG4gICAgfSk7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlpHbHphWFJ5ZFdKMFpTNTBjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN08wRkJRM2xFTzBGQlEySTdRVUZEV1R0QlFVOXFSQ3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMRU5CUTJoRExHZENRVUZ4UXl4RlFVTnlReXhaUVVFd1FpeEZRVU5NTEVWQlFVVTdTVUZEZGtJc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRTFCUVUwc1EwRkJReXhIUVVNM1FpeFpRVUZaTEVOQlFVTXNTVUZCU1N4TFFVRkxMRWRCUVVjN1VVRkRka0lzUTBGQlF5eERRVUZGTEVOQlFVTXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVVVzVDBGQlR5eERRVUZYTzFGQlF6bERMRU5CUVVNc1EwRkJSU3hEUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRkZCUVZFc1EwRkJWeXhEUVVGRE8wbEJSWEJFTEUxQlFVMHNUVUZCVFN4SFFVRkhMSEZGUVVGdlFpeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU03U1VGRGRFUXNUVUZCVFN4TlFVRk5MRWRCUVVjc2VVUkJRV2RDTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03VTBGRE9VTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4eFJVRkJiMElzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCVlN4RFFVRkRPMU5CUXpkRUxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWNlF5eEpRVUZKTEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRZaXhMUVVGTExFMUJRVTBzUzBGQlN5eEpRVUZKTEUxQlFVMHNSVUZCUlR0UlFVTXhRaXhKUVVGSkxFbEJRVWtzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wdEJRekZDTzBsQlJVUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlRORUxFbEJRVWtzU1VGQlNTeEhRVUZITEVOQlFVTXNSVUZCUlR0UlFVTmFMRzlGUVVGdlJUdFJRVU53UlN4NVJFRkJlVVE3VVVGRmVrUXNjVVZCUVhGRk8xRkJRM0pGTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU4wUlN4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGYkVVc2RVVkJRWFZGTzFGQlEzWkZMSE5DUVVGelFqdFJRVU4wUWl4TlFVRk5MRWxCUVVrc1IwRkRVaXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGTVVVc1NVRkJTU3hIUVVGSExFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlJXcERMRTlCUVU4c1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTzFsQlF6VkRMRTFCUVUwc1YwRkJWeXhIUVVGSE8yZENRVU5zUWl4RFFVRkRMRVZCUVVVc1EwRkJRenRuUWtGRFNpeERRVUZETEVWQlFVVXNRMEZCUXp0aFFVTk1MRU5CUVVNN1dVRkZSaXh4UTBGQmNVTTdXVUZEY2tNc1NVRkJTU3hMUVVGTExFdEJRVXNzVFVGQlRTeEpRVUZKTEV0QlFVc3NTMEZCU3l4TlFVRk5MRVZCUVVVN1owSkJRM2hETEVkQlFVY3NTVUZCU1N4SlFVRkpMRU5CUVVNN1owSkJRMW9zVjBGQlZ5eERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhIUVVGSExFZEJRVWNzUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMkZCUTJwRU8xbEJSVVFzVDBGQlR5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGRE0wSXNjMFZCUVdNc1EwRkJReXhQUVVGUExFVkJRVVU3WjBKQlEzUkNMRU5CUVVNc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEZkQlFWY3NRMEZCUXl4RFFVRkRPMmRDUVVNMVFpeERRVUZETEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNc1IwRkJSeXhYUVVGWExFTkJRVU1zUTBGQlF6dGhRVU0zUWl4RFFVRkRMRU5CUTBnc1EwRkJRenRSUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETzB0QlEwbzdTVUZGUkN4MVFrRkJkVUk3U1VGRmRrSXNTVUZCU1N4SFFVRkhMRWRCUVVjc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlJYaENMRTlCUVU4c1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxFVkJRVVU3VVVGRGNrTXNUVUZCVFN4WFFVRlhMRWRCUVVjN1dVRkRiRUlzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZEU2l4RFFVRkRMRVZCUVVVc1EwRkJRenRUUVVOTUxFTkJRVU03VVVGRlJpeFhRVUZYTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFZEJRVWNzUjBGQlJ5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkZiRVFzUjBGQlJ5eEpRVUZKTEVsQlFVa3NRMEZCUXp0UlFVTmFMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZGYmtJc1QwRkJUeXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkRNMElzYzBWQlFXTXNRMEZCUXl4UFFVRlBMRVZCUVVVN1dVRkRkRUlzUTBGQlF5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1YwRkJWeXhEUVVGRExFTkJRVU03V1VGRE5VSXNRMEZCUXl4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRExFZEJRVWNzVjBGQlZ5eERRVUZETEVOQlFVTTdVMEZETjBJc1EwRkJReXhEUVVOSUxFTkJRVU03U1VGRFNpeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTk1MRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5a2FYTnBkSEoxWW5SbExuUnpQekprTXpRaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUWdmU0JtY205dElGd2lMaTlsYkdWdFpXNTBMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdleUJ1WlhkRmJHVnRaVzUwVjJsMGFDQjlJR1p5YjIwZ1hDSXVMMlZzWlcxbGJuUXZiWFYwWVhSbFJXeGxiV1Z1ZEZ3aU8xeHVhVzF3YjNKMElIc2daMlYwVFdGNGFXMTFiVWR5YjNWd2N5QjlJR1p5YjIwZ1hDSXVMMmR5YjNWd2Mxd2lPMXh1YVcxd2IzSjBJSHNnWjJWMFEyOXRiVzl1UW05MWJtUnBibWRDYjNnZ2ZTQm1jbTl0SUZ3aUxpOWxiR1Z0Wlc1MEwySnZkVzVrYzF3aU8xeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRVJwYzNSeWFXSjFkR2x2YmlCN1hHNGdJSE53WVdObE9pQmNJbUpsZEhkbFpXNWNJanRjYmlBZ1lYaHBjem9nWENKNFhDSWdmQ0JjSW5sY0lqdGNibjFjYmx4dVpYaHdiM0owSUdOdmJuTjBJR1JwYzNSeWFXSjFkR1ZGYkdWdFpXNTBjeUE5SUNoY2JpQWdjMlZzWldOMFpXUkZiR1Z0Wlc1MGN6b2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYU3hjYmlBZ1pHbHpkSEpwWW5WMGFXOXVPaUJFYVhOMGNtbGlkWFJwYjI0c1hHNHBPaUJGZUdOaGJHbGtjbUYzUld4bGJXVnVkRnRkSUQwK0lIdGNiaUFnWTI5dWMzUWdXM04wWVhKMExDQnRhV1FzSUdWdVpDd2daWGgwWlc1MFhTQTlYRzRnSUNBZ1pHbHpkSEpwWW5WMGFXOXVMbUY0YVhNZ1BUMDlJRndpZUZ3aVhHNGdJQ0FnSUNBL0lDaGJYQ0p0YVc1WVhDSXNJRndpYldsa1dGd2lMQ0JjSW0xaGVGaGNJaXdnWENKM2FXUjBhRndpWFNCaGN5QmpiMjV6ZENsY2JpQWdJQ0FnSURvZ0tGdGNJbTFwYmxsY0lpd2dYQ0p0YVdSWlhDSXNJRndpYldGNFdWd2lMQ0JjSW1obGFXZG9kRndpWFNCaGN5QmpiMjV6ZENrN1hHNWNiaUFnWTI5dWMzUWdZbTkxYm1SeklEMGdaMlYwUTI5dGJXOXVRbTkxYm1ScGJtZENiM2dvYzJWc1pXTjBaV1JGYkdWdFpXNTBjeWs3WEc0Z0lHTnZibk4wSUdkeWIzVndjeUE5SUdkbGRFMWhlR2x0ZFcxSGNtOTFjSE1vYzJWc1pXTjBaV1JGYkdWdFpXNTBjeWxjYmlBZ0lDQXViV0Z3S0NobmNtOTFjQ2tnUFQ0Z1cyZHliM1Z3TENCblpYUkRiMjF0YjI1Q2IzVnVaR2x1WjBKdmVDaG5jbTkxY0NsZElHRnpJR052Ym5OMEtWeHVJQ0FnSUM1emIzSjBLQ2hoTENCaUtTQTlQaUJoV3pGZFcyMXBaRjBnTFNCaVd6RmRXMjFwWkYwcE8xeHVYRzRnSUd4bGRDQnpjR0Z1SUQwZ01EdGNiaUFnWm05eUlDaGpiMjV6ZENCbmNtOTFjQ0J2WmlCbmNtOTFjSE1wSUh0Y2JpQWdJQ0J6Y0dGdUlDczlJR2R5YjNWd1d6RmRXMlY0ZEdWdWRGMDdYRzRnSUgxY2JseHVJQ0JqYjI1emRDQnpkR1Z3SUQwZ0tHSnZkVzVrYzF0bGVIUmxiblJkSUMwZ2MzQmhiaWtnTHlBb1ozSnZkWEJ6TG14bGJtZDBhQ0F0SURFcE8xeHVYRzRnSUdsbUlDaHpkR1Z3SUR3Z01Da2dlMXh1SUNBZ0lDOHZJRWxtSUhkbElHaGhkbVVnWVNCdVpXZGhkR2wyWlNCemRHVndMQ0IzWlNkc2JDQnVaV1ZrSUhSdklHUnBjM1J5YVdKMWRHVWdabkp2YlNCalpXNTBaWEp6WEc0Z0lDQWdMeThnY21GMGFHVnlJSFJvWVc0Z1puSnZiU0JuWVhCekxpQkNkV05yYkdVZ2RYQXNJSFJvYVhNZ2FYTWdZU0IzWldseVpDQnZibVV1WEc1Y2JpQWdJQ0F2THlCSFpYUWdhVzVrYVdObGN5QnZaaUJpYjNobGN5QjBhR0YwSUdSbFptbHVaU0J6ZEdGeWRDQmhibVFnWlc1a0lHOW1JRzkxY2lCaWIzVnVaR2x1WnlCaWIzaGNiaUFnSUNCamIyNXpkQ0JwYm1SbGVEQWdQU0JuY205MWNITXVabWx1WkVsdVpHVjRLQ2huS1NBOVBpQm5XekZkVzNOMFlYSjBYU0E5UFQwZ1ltOTFibVJ6VzNOMFlYSjBYU2s3WEc0Z0lDQWdZMjl1YzNRZ2FXNWtaWGd4SUQwZ1ozSnZkWEJ6TG1acGJtUkpibVJsZUNnb1p5a2dQVDRnWjFzeFhWdGxibVJkSUQwOVBTQmliM1Z1WkhOYlpXNWtYU2s3WEc1Y2JpQWdJQ0F2THlCSFpYUWdiM1Z5SUhOMFpYQXNJR0poYzJWa0lHOXVJSFJvWlNCa2FYTjBZVzVqWlNCaVpYUjNaV1Z1SUhSb1pTQmpaVzUwWlhJZ2NHOXBiblJ6SUc5bUlHOTFjbHh1SUNBZ0lDOHZJSE4wWVhKMElHRnVaQ0JsYm1RZ1ltOTRaWE5jYmlBZ0lDQmpiMjV6ZENCemRHVndJRDFjYmlBZ0lDQWdJQ2huY205MWNITmJhVzVrWlhneFhWc3hYVnR0YVdSZElDMGdaM0p2ZFhCelcybHVaR1Y0TUYxYk1WMWJiV2xrWFNrZ0x5QW9aM0p2ZFhCekxteGxibWQwYUNBdElERXBPMXh1WEc0Z0lDQWdiR1YwSUhCdmN5QTlJR2R5YjNWd2MxdHBibVJsZURCZFd6RmRXMjFwWkYwN1hHNWNiaUFnSUNCeVpYUjFjbTRnWjNKdmRYQnpMbVpzWVhSTllYQW9LRnRuY205MWNDd2dZbTk0WFN3Z2FXNWtaWGdwSUQwK0lIdGNiaUFnSUNBZ0lHTnZibk4wSUhSeVlXNXpiR0YwYVc5dUlEMGdlMXh1SUNBZ0lDQWdJQ0I0T2lBd0xGeHVJQ0FnSUNBZ0lDQjVPaUF3TEZ4dUlDQWdJQ0FnZlR0Y2JseHVJQ0FnSUNBZ0x5OGdSRzl1SjNRZ2JXOTJaU0J2ZFhJZ2MzUmhjblFnWVc1a0lHVnVaQ0JpYjNobGMxeHVJQ0FnSUNBZ2FXWWdLR2x1WkdWNElDRTlQU0JwYm1SbGVEQWdKaVlnYVc1a1pYZ2dJVDA5SUdsdVpHVjRNU2tnZTF4dUlDQWdJQ0FnSUNCd2IzTWdLejBnYzNSbGNEdGNiaUFnSUNBZ0lDQWdkSEpoYm5Oc1lYUnBiMjViWkdsemRISnBZblYwYVc5dUxtRjRhWE5kSUQwZ2NHOXpJQzBnWW05NFcyMXBaRjA3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUhKbGRIVnliaUJuY205MWNDNXRZWEFvS0dWc1pXMWxiblFwSUQwK1hHNGdJQ0FnSUNBZ0lHNWxkMFZzWlcxbGJuUlhhWFJvS0dWc1pXMWxiblFzSUh0Y2JpQWdJQ0FnSUNBZ0lDQjRPaUJsYkdWdFpXNTBMbmdnS3lCMGNtRnVjMnhoZEdsdmJpNTRMRnh1SUNBZ0lDQWdJQ0FnSUhrNklHVnNaVzFsYm5RdWVTQXJJSFJ5WVc1emJHRjBhVzl1TG5rc1hHNGdJQ0FnSUNBZ0lIMHBMRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVYRzRnSUM4dklFUnBjM1J5YVdKMWRHVWdabkp2YlNCbllYQnpYRzVjYmlBZ2JHVjBJSEJ2Y3lBOUlHSnZkVzVrYzF0emRHRnlkRjA3WEc1Y2JpQWdjbVYwZFhKdUlHZHliM1Z3Y3k1bWJHRjBUV0Z3S0NoYlozSnZkWEFzSUdKdmVGMHBJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQjBjbUZ1YzJ4aGRHbHZiaUE5SUh0Y2JpQWdJQ0FnSUhnNklEQXNYRzRnSUNBZ0lDQjVPaUF3TEZ4dUlDQWdJSDA3WEc1Y2JpQWdJQ0IwY21GdWMyeGhkR2x2Ymx0a2FYTjBjbWxpZFhScGIyNHVZWGhwYzEwZ1BTQndiM01nTFNCaWIzaGJjM1JoY25SZE8xeHVYRzRnSUNBZ2NHOXpJQ3M5SUhOMFpYQTdYRzRnSUNBZ2NHOXpJQ3M5SUdKdmVGdGxlSFJsYm5SZE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUdkeWIzVndMbTFoY0Nnb1pXeGxiV1Z1ZENrZ1BUNWNiaUFnSUNBZ0lHNWxkMFZzWlcxbGJuUlhhWFJvS0dWc1pXMWxiblFzSUh0Y2JpQWdJQ0FnSUNBZ2VEb2daV3hsYldWdWRDNTRJQ3NnZEhKaGJuTnNZWFJwYjI0dWVDeGNiaUFnSUNBZ0lDQWdlVG9nWld4bGJXVnVkQzU1SUNzZ2RISmhibk5zWVhScGIyNHVlU3hjYmlBZ0lDQWdJSDBwTEZ4dUlDQWdJQ2s3WEc0Z0lIMHBPMXh1ZlR0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2Rpc2l0cnVidGUudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2VsZW1lbnQvSHlwZXJsaW5rLnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vZWxlbWVudC9IeXBlcmxpbmsudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiRVhURVJOQUxfTElOS19JTUdcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBFWFRFUk5BTF9MSU5LX0lNRyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiSHlwZXJsaW5rXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gSHlwZXJsaW5rKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJub3JtYWxpemVMaW5rXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gbm9ybWFsaXplTGluayksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNMb2NhbExpbmtcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpc0xvY2FsTGluayksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWN0aW9uTGlua1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFjdGlvbkxpbmspLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldENvbnRleHRNZW51TGFiZWxcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRDb250ZXh0TWVudUxhYmVsKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRMaW5rSGFuZGxlRnJvbUNvb3Jkc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldExpbmtIYW5kbGVGcm9tQ29vcmRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpc1BvaW50SGl0dGluZ0xpbmtJY29uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNQb2ludEhpdHRpbmdMaW5rSWNvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwic2hvd0h5cGVybGlua1Rvb2x0aXBcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBzaG93SHlwZXJsaW5rVG9vbHRpcCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaGlkZUh5cGVybGlua1Rvb2xpcFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGhpZGVIeXBlcmxpbmtUb29saXApLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInNob3VsZEhpZGVMaW5rUG9wdXBcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBzaG91bGRIaWRlTGlua1BvcHVwKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9tdXRhdGVFbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L211dGF0ZUVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FjdGlvbnNfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2FjdGlvbnMvcmVnaXN0ZXIgKi8gXFxcIi4uLy4uL2FjdGlvbnMvcmVnaXN0ZXIudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfVG9vbEJ1dHRvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uICovIFxcXCIuLi8uLi9jb21wb25lbnRzL1Rvb2xCdXR0b24udHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL2ljb25zICovIFxcXCIuLi8uLi9jb21wb25lbnRzL2ljb25zLnRzeFxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIGNsc3hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIGNsc3ggKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jbHN4L2Rpc3QvY2xzeC5tLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9rZXlzICovIFxcXCIuLi8uLi9rZXlzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9yZW5kZXJlcl9yZW5kZXJFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcmVuZGVyZXIvcmVuZGVyRWxlbWVudCAqLyBcXFwiLi4vLi4vcmVuZGVyZXIvcmVuZGVyRWxlbWVudC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL21hdGggKi8gXFxcIi4uLy4uL21hdGgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbnN0YW50cyAqLyBcXFwiLi4vLi4vY29uc3RhbnRzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb21wb25lbnRzX1Rvb2x0aXBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb21wb25lbnRzL1Rvb2x0aXAgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvVG9vbHRpcC50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vc2NlbmUgKi8gXFxcIi4uLy4uL3NjZW5lL2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb2xsaXNpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE1X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2NvbGxpc2lvbiAqLyBcXFwiLi4vLi4vZWxlbWVudC9jb2xsaXNpb24udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vICovIFxcXCIuLi8uLi9lbGVtZW50L2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9IeXBlcmxpbmtfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vSHlwZXJsaW5rLnNjc3MgKi8gXFxcIi4uLy4uL2VsZW1lbnQvSHlwZXJsaW5rLnNjc3NcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX0h5cGVybGlua19zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xN19fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9IeXBlcmxpbmtfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXyk7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgQ09OVEFJTkVSX1dJRFRIID0gMzIwO1xcbmNvbnN0IFNQQUNFX0JPVFRPTSA9IDg1O1xcbmNvbnN0IENPTlRBSU5FUl9QQURESU5HID0gNTtcXG5jb25zdCBDT05UQUlORVJfSEVJR0hUID0gNDI7XFxuY29uc3QgQVVUT19ISURFX1RJTUVPVVQgPSA1MDA7XFxuY29uc3QgRVhURVJOQUxfTElOS19JTUcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFxcXCJpbWdcXFwiKTtcXG5FWFRFUk5BTF9MSU5LX0lNRy5zcmMgPSBgZGF0YToke19jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uTUlNRV9UWVBFUy5zdmd9LCAke2VuY29kZVVSSUNvbXBvbmVudChgPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHdpZHRoPVxcXCIxNlxcXCIgaGVpZ2h0PVxcXCIxNlxcXCIgdmlld0JveD1cXFwiMCAwIDI0IDI0XFxcIiBmaWxsPVxcXCJub25lXFxcIiBzdHJva2U9XFxcIiMxOTcxYzJcXFwiIHN0cm9rZS13aWR0aD1cXFwiMlxcXCIgc3Ryb2tlLWxpbmVjYXA9XFxcInJvdW5kXFxcIiBzdHJva2UtbGluZWpvaW49XFxcInJvdW5kXFxcIiBjbGFzcz1cXFwiZmVhdGhlciBmZWF0aGVyLWV4dGVybmFsLWxpbmtcXFwiPjxwYXRoIGQ9XFxcIk0xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2XFxcIj48L3BhdGg+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTUgMyAyMSAzIDIxIDlcXFwiPjwvcG9seWxpbmU+PGxpbmUgeDE9XFxcIjEwXFxcIiB5MT1cXFwiMTRcXFwiIHgyPVxcXCIyMVxcXCIgeTI9XFxcIjNcXFwiPjwvbGluZT48L3N2Zz5gKX1gO1xcbmxldCBJU19IWVBFUkxJTktfVE9PTFRJUF9WSVNJQkxFID0gZmFsc2U7XFxuY29uc3QgSHlwZXJsaW5rID0gKHsgZWxlbWVudCwgYXBwU3RhdGUsIHNldEFwcFN0YXRlLCBvbkxpbmtPcGVuLCB9KSA9PiB7XFxuICAgIGNvbnN0IGxpbmtWYWwgPSBlbGVtZW50LmxpbmsgfHwgXFxcIlxcXCI7XFxuICAgIGNvbnN0IFtpbnB1dFZhbCwgc2V0SW5wdXRWYWxdID0gKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy51c2VTdGF0ZSkobGlua1ZhbCk7XFxuICAgIGNvbnN0IGlucHV0UmVmID0gKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy51c2VSZWYpKG51bGwpO1xcbiAgICBjb25zdCBpc0VkaXRpbmcgPSBhcHBTdGF0ZS5zaG93SHlwZXJsaW5rUG9wdXAgPT09IFxcXCJlZGl0b3JcXFwiIHx8ICFsaW5rVmFsO1xcbiAgICBjb25zdCBoYW5kbGVTdWJtaXQgPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLnVzZUNhbGxiYWNrKSgoKSA9PiB7XFxuICAgICAgICBpZiAoIWlucHV0UmVmLmN1cnJlbnQpIHtcXG4gICAgICAgICAgICByZXR1cm47XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBsaW5rID0gbm9ybWFsaXplTGluayhpbnB1dFJlZi5jdXJyZW50LnZhbHVlKTtcXG4gICAgICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ubXV0YXRlRWxlbWVudCkoZWxlbWVudCwgeyBsaW5rIH0pO1xcbiAgICAgICAgc2V0QXBwU3RhdGUoeyBzaG93SHlwZXJsaW5rUG9wdXA6IFxcXCJpbmZvXFxcIiB9KTtcXG4gICAgfSwgW2VsZW1lbnQsIHNldEFwcFN0YXRlXSk7XFxuICAgICgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18udXNlTGF5b3V0RWZmZWN0KSgoKSA9PiB7XFxuICAgICAgICByZXR1cm4gKCkgPT4ge1xcbiAgICAgICAgICAgIGhhbmRsZVN1Ym1pdCgpO1xcbiAgICAgICAgfTtcXG4gICAgfSwgW2hhbmRsZVN1Ym1pdF0pO1xcbiAgICAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLnVzZUVmZmVjdCkoKCkgPT4ge1xcbiAgICAgICAgbGV0IHRpbWVvdXRJZCA9IG51bGw7XFxuICAgICAgICBjb25zdCBoYW5kbGVQb2ludGVyTW92ZSA9IChldmVudCkgPT4ge1xcbiAgICAgICAgICAgIGlmIChpc0VkaXRpbmcpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAodGltZW91dElkKSB7XFxuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjb25zdCBzaG91bGRIaWRlID0gc2hvdWxkSGlkZUxpbmtQb3B1cChlbGVtZW50LCBhcHBTdGF0ZSwgW1xcbiAgICAgICAgICAgICAgICBldmVudC5jbGllbnRYLFxcbiAgICAgICAgICAgICAgICBldmVudC5jbGllbnRZLFxcbiAgICAgICAgICAgIF0pO1xcbiAgICAgICAgICAgIGlmIChzaG91bGRIaWRlKSB7XFxuICAgICAgICAgICAgICAgIHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIHNldEFwcFN0YXRlKHsgc2hvd0h5cGVybGlua1BvcHVwOiBmYWxzZSB9KTtcXG4gICAgICAgICAgICAgICAgfSwgQVVUT19ISURFX1RJTUVPVVQpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH07XFxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fLkVWRU5ULlBPSU5URVJfTU9WRSwgaGFuZGxlUG9pbnRlck1vdmUsIGZhbHNlKTtcXG4gICAgICAgIHJldHVybiAoKSA9PiB7XFxuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5FVkVOVC5QT0lOVEVSX01PVkUsIGhhbmRsZVBvaW50ZXJNb3ZlLCBmYWxzZSk7XFxuICAgICAgICAgICAgaWYgKHRpbWVvdXRJZCkge1xcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9O1xcbiAgICB9LCBbYXBwU3RhdGUsIGVsZW1lbnQsIGlzRWRpdGluZywgc2V0QXBwU3RhdGVdKTtcXG4gICAgY29uc3QgaGFuZGxlUmVtb3ZlID0gKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy51c2VDYWxsYmFjaykoKCkgPT4ge1xcbiAgICAgICAgKDAsX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5tdXRhdGVFbGVtZW50KShlbGVtZW50LCB7IGxpbms6IG51bGwgfSk7XFxuICAgICAgICBpZiAoaXNFZGl0aW5nKSB7XFxuICAgICAgICAgICAgaW5wdXRSZWYuY3VycmVudC52YWx1ZSA9IFxcXCJcXFwiO1xcbiAgICAgICAgfVxcbiAgICAgICAgc2V0QXBwU3RhdGUoeyBzaG93SHlwZXJsaW5rUG9wdXA6IGZhbHNlIH0pO1xcbiAgICB9LCBbc2V0QXBwU3RhdGUsIGVsZW1lbnQsIGlzRWRpdGluZ10pO1xcbiAgICBjb25zdCBvbkVkaXQgPSAoKSA9PiB7XFxuICAgICAgICBzZXRBcHBTdGF0ZSh7IHNob3dIeXBlcmxpbmtQb3B1cDogXFxcImVkaXRvclxcXCIgfSk7XFxuICAgIH07XFxuICAgIGNvbnN0IHsgeCwgeSB9ID0gZ2V0Q29vcmRzRm9yUG9wb3ZlcihlbGVtZW50LCBhcHBTdGF0ZSk7XFxuICAgIGlmIChhcHBTdGF0ZS5kcmFnZ2luZ0VsZW1lbnQgfHxcXG4gICAgICAgIGFwcFN0YXRlLnJlc2l6aW5nRWxlbWVudCB8fFxcbiAgICAgICAgYXBwU3RhdGUuaXNSb3RhdGluZyB8fFxcbiAgICAgICAgYXBwU3RhdGUub3Blbk1lbnUpIHtcXG4gICAgICAgIHJldHVybiBudWxsO1xcbiAgICB9XFxuICAgIHJldHVybiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcImV4Y2FsaWRyYXctaHlwZXJsaW5rQ29udGFpbmVyXFxcIiwgc3R5bGU6IHtcXG4gICAgICAgICAgICB0b3A6IGAke3l9cHhgLFxcbiAgICAgICAgICAgIGxlZnQ6IGAke3h9cHhgLFxcbiAgICAgICAgICAgIHdpZHRoOiBDT05UQUlORVJfV0lEVEgsXFxuICAgICAgICAgICAgcGFkZGluZzogQ09OVEFJTkVSX1BBRERJTkcsXFxuICAgICAgICB9IH0sIHsgY2hpbGRyZW46IFtpc0VkaXRpbmcgPyAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJpbnB1dFxcXCIsIHsgY2xhc3NOYW1lOiAoMCxjbHN4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X19bXFxcImRlZmF1bHRcXFwiXSkoXFxcImV4Y2FsaWRyYXctaHlwZXJsaW5rQ29udGFpbmVyLWlucHV0XFxcIiksIHBsYWNlaG9sZGVyOiBcXFwiVHlwZSBvciBwYXN0ZSB5b3VyIGxpbmsgaGVyZVxcXCIsIHJlZjogaW5wdXRSZWYsIHZhbHVlOiBpbnB1dFZhbCwgb25DaGFuZ2U6IChldmVudCkgPT4gc2V0SW5wdXRWYWwoZXZlbnQudGFyZ2V0LnZhbHVlKSwgYXV0b0ZvY3VzOiB0cnVlLCBvbktleURvd246IChldmVudCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XFxuICAgICAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IGNtZC9jdHJsK2sgc2hvcnRjdXQgd2hlbiBlZGl0aW5nIGxpbmtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLktFWVMuQ1RSTF9PUl9DTURdICYmIGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5LRVlTLkspIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5LRVlTLkVOVEVSIHx8IGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5LRVlTLkVTQ0FQRSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVN1Ym1pdCgpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9IH0sIHZvaWQgMCkpIDogKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwiYVxcXCIsIE9iamVjdC5hc3NpZ24oeyBocmVmOiBlbGVtZW50LmxpbmsgfHwgXFxcIlxcXCIsIGNsYXNzTmFtZTogKDAsY2xzeF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fW1xcXCJkZWZhdWx0XFxcIl0pKFxcXCJleGNhbGlkcmF3LWh5cGVybGlua0NvbnRhaW5lci1saW5rXFxcIiwge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcImQtbm9uZVxcXCI6IGlzRWRpdGluZyxcXG4gICAgICAgICAgICAgICAgfSksIHRhcmdldDogaXNMb2NhbExpbmsoZWxlbWVudC5saW5rKSA/IFxcXCJfc2VsZlxcXCIgOiBcXFwiX2JsYW5rXFxcIiwgb25DbGljazogKGV2ZW50KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5saW5rICYmIG9uTGlua09wZW4pIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXN0b21FdmVudCA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLndyYXBFdmVudCkoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5FVkVOVC5FWENBTElEUkFXX0xJTkssIGV2ZW50Lm5hdGl2ZUV2ZW50KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkxpbmtPcGVuKGVsZW1lbnQsIGN1c3RvbUV2ZW50KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VzdG9tRXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSwgcmVsOiBcXFwibm9vcGVuZXIgbm9yZWZlcnJlclxcXCIgfSwgeyBjaGlsZHJlbjogZWxlbWVudC5saW5rIH0pLCB2b2lkIDApKSwgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3hzKShcXFwiZGl2XFxcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogXFxcImV4Y2FsaWRyYXctaHlwZXJsaW5rQ29udGFpbmVyX19idXR0b25zXFxcIiB9LCB7IGNoaWxkcmVuOiBbIWlzRWRpdGluZyAmJiAoKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX1Rvb2xCdXR0b25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5Ub29sQnV0dG9uLCB7IHR5cGU6IFxcXCJidXR0b25cXFwiLCB0aXRsZTogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy50KShcXFwiYnV0dG9ucy5lZGl0XFxcIiksIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy50KShcXFwiYnV0dG9ucy5lZGl0XFxcIiksIGxhYmVsOiAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnQpKFxcXCJidXR0b25zLmVkaXRcXFwiKSwgb25DbGljazogb25FZGl0LCBjbGFzc05hbWU6IFxcXCJleGNhbGlkcmF3LWh5cGVybGlua0NvbnRhaW5lci0tZWRpdFxcXCIsIGljb246IF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZWRpdEljb24gfSwgdm9pZCAwKSksIGxpbmtWYWwgJiYgKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uVG9vbEJ1dHRvbiwgeyB0eXBlOiBcXFwiYnV0dG9uXFxcIiwgdGl0bGU6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udCkoXFxcImJ1dHRvbnMucmVtb3ZlXFxcIiksIFxcXCJhcmlhLWxhYmVsXFxcIjogKDAsX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy50KShcXFwiYnV0dG9ucy5yZW1vdmVcXFwiKSwgbGFiZWw6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udCkoXFxcImJ1dHRvbnMucmVtb3ZlXFxcIiksIG9uQ2xpY2s6IGhhbmRsZVJlbW92ZSwgY2xhc3NOYW1lOiBcXFwiZXhjYWxpZHJhdy1oeXBlcmxpbmtDb250YWluZXItLXJlbW92ZVxcXCIsIGljb246IF9jb21wb25lbnRzX2ljb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18udHJhc2ggfSwgdm9pZCAwKSldIH0pLCB2b2lkIDApXSB9KSwgdm9pZCAwKSk7XFxufTtcXG5jb25zdCBnZXRDb29yZHNGb3JQb3BvdmVyID0gKGVsZW1lbnQsIGFwcFN0YXRlKSA9PiB7XFxuICAgIGNvbnN0IFt4MSwgeTFdID0gKDAsX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5nZXRFbGVtZW50QWJzb2x1dGVDb29yZHMpKGVsZW1lbnQpO1xcbiAgICBjb25zdCB7IHg6IHZpZXdwb3J0WCwgeTogdmlld3BvcnRZIH0gPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5zY2VuZUNvb3Jkc1RvVmlld3BvcnRDb29yZHMpKHsgc2NlbmVYOiB4MSArIGVsZW1lbnQud2lkdGggLyAyLCBzY2VuZVk6IHkxIH0sIGFwcFN0YXRlKTtcXG4gICAgY29uc3QgeCA9IHZpZXdwb3J0WCAtIGFwcFN0YXRlLm9mZnNldExlZnQgLSBDT05UQUlORVJfV0lEVEggLyAyO1xcbiAgICBjb25zdCB5ID0gdmlld3BvcnRZIC0gYXBwU3RhdGUub2Zmc2V0VG9wIC0gU1BBQ0VfQk9UVE9NO1xcbiAgICByZXR1cm4geyB4LCB5IH07XFxufTtcXG5jb25zdCBub3JtYWxpemVMaW5rID0gKGxpbmspID0+IHtcXG4gICAgbGluayA9IGxpbmsudHJpbSgpO1xcbiAgICBpZiAobGluaykge1xcbiAgICAgICAgLy8gcHJlZml4IHdpdGggcHJvdG9jb2wgaWYgbm90IGZ1bGx5LXF1YWxpZmllZFxcbiAgICAgICAgaWYgKCFsaW5rLmluY2x1ZGVzKFxcXCI6Ly9cXFwiKSAmJiAhL15bW1xcXFxcXFxcL10vLnRlc3QobGluaykpIHtcXG4gICAgICAgICAgICBsaW5rID0gYGh0dHBzOi8vJHtsaW5rfWA7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIGxpbms7XFxufTtcXG5jb25zdCBpc0xvY2FsTGluayA9IChsaW5rKSA9PiB7XFxuICAgIHJldHVybiAhISgobGluayA9PT0gbnVsbCB8fCBsaW5rID09PSB2b2lkIDAgPyB2b2lkIDAgOiBsaW5rLmluY2x1ZGVzKGxvY2F0aW9uLm9yaWdpbikpIHx8IChsaW5rID09PSBudWxsIHx8IGxpbmsgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGxpbmsuc3RhcnRzV2l0aChcXFwiL1xcXCIpKSk7XFxufTtcXG5jb25zdCBhY3Rpb25MaW5rID0gKDAsX2FjdGlvbnNfcmVnaXN0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5yZWdpc3Rlcikoe1xcbiAgICBuYW1lOiBcXFwibGlua1xcXCIsXFxuICAgIHBlcmZvcm06IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgICAgIGlmIChhcHBTdGF0ZS5zaG93SHlwZXJsaW5rUG9wdXAgPT09IFxcXCJlZGl0b3JcXFwiKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICBlbGVtZW50cyxcXG4gICAgICAgICAgICBhcHBTdGF0ZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhcHBTdGF0ZSksIHsgc2hvd0h5cGVybGlua1BvcHVwOiBcXFwiZWRpdG9yXFxcIiwgb3Blbk1lbnU6IG51bGwgfSksXFxuICAgICAgICAgICAgY29tbWl0VG9IaXN0b3J5OiB0cnVlLFxcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAga2V5VGVzdDogKGV2ZW50KSA9PiBldmVudFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLktFWVMuQ1RSTF9PUl9DTURdICYmIGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5LRVlTLkssXFxuICAgIGNvbnRleHRJdGVtTGFiZWw6IChlbGVtZW50cywgYXBwU3RhdGUpID0+IGdldENvbnRleHRNZW51TGFiZWwoZWxlbWVudHMsIGFwcFN0YXRlKSxcXG4gICAgY29udGV4dEl0ZW1QcmVkaWNhdGU6IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18uZ2V0U2VsZWN0ZWRFbGVtZW50cykoZWxlbWVudHMsIGFwcFN0YXRlKTtcXG4gICAgICAgIHJldHVybiBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMTtcXG4gICAgfSxcXG4gICAgUGFuZWxDb21wb25lbnQ6ICh7IGVsZW1lbnRzLCBhcHBTdGF0ZSwgdXBkYXRlRGF0YSB9KSA9PiB7XFxuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLmdldFNlbGVjdGVkRWxlbWVudHMpKGVsZW1lbnRzLCBhcHBTdGF0ZSk7XFxuICAgICAgICByZXR1cm4gKCgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShfY29tcG9uZW50c19Ub29sQnV0dG9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uVG9vbEJ1dHRvbiwgeyB0eXBlOiBcXFwiYnV0dG9uXFxcIiwgaWNvbjogX2NvbXBvbmVudHNfaWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5saW5rLCBcXFwiYXJpYS1sYWJlbFxcXCI6ICgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udCkoZ2V0Q29udGV4dE1lbnVMYWJlbChlbGVtZW50cywgYXBwU3RhdGUpKSwgdGl0bGU6IGAkeygwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udCkoXFxcImxhYmVscy5saW5rLmxhYmVsXFxcIil9IC0gJHsoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRTaG9ydGN1dEtleSkoXFxcIkN0cmxPckNtZCtLXFxcIil9YCwgb25DbGljazogKCkgPT4gdXBkYXRlRGF0YShudWxsKSwgc2VsZWN0ZWQ6IHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmICEhc2VsZWN0ZWRFbGVtZW50c1swXS5saW5rIH0sIHZvaWQgMCkpO1xcbiAgICB9LFxcbn0pO1xcbmNvbnN0IGdldENvbnRleHRNZW51TGFiZWwgPSAoZWxlbWVudHMsIGFwcFN0YXRlKSA9PiB7XFxuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18uZ2V0U2VsZWN0ZWRFbGVtZW50cykoZWxlbWVudHMsIGFwcFN0YXRlKTtcXG4gICAgY29uc3QgbGFiZWwgPSBzZWxlY3RlZEVsZW1lbnRzWzBdLmxpbmtcXG4gICAgICAgID8gXFxcImxhYmVscy5saW5rLmVkaXRcXFwiXFxuICAgICAgICA6IFxcXCJsYWJlbHMubGluay5jcmVhdGVcXFwiO1xcbiAgICByZXR1cm4gbGFiZWw7XFxufTtcXG5jb25zdCBnZXRMaW5rSGFuZGxlRnJvbUNvb3JkcyA9IChbeDEsIHkxLCB4MiwgeTJdLCBhbmdsZSwgYXBwU3RhdGUpID0+IHtcXG4gICAgY29uc3Qgc2l6ZSA9IF9yZW5kZXJlcl9yZW5kZXJFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLkRFRkFVTFRfTElOS19TSVpFO1xcbiAgICBjb25zdCBsaW5rV2lkdGggPSBzaXplIC8gYXBwU3RhdGUuem9vbS52YWx1ZTtcXG4gICAgY29uc3QgbGlua0hlaWdodCA9IHNpemUgLyBhcHBTdGF0ZS56b29tLnZhbHVlO1xcbiAgICBjb25zdCBsaW5rTWFyZ2luWSA9IHNpemUgLyBhcHBTdGF0ZS56b29tLnZhbHVlO1xcbiAgICBjb25zdCBjZW50ZXJYID0gKHgxICsgeDIpIC8gMjtcXG4gICAgY29uc3QgY2VudGVyWSA9ICh5MSArIHkyKSAvIDI7XFxuICAgIGNvbnN0IGNlbnRlcmluZ09mZnNldCA9IChzaXplIC0gOCkgLyAoMiAqIGFwcFN0YXRlLnpvb20udmFsdWUpO1xcbiAgICBjb25zdCBkYXNoZWRMaW5lTWFyZ2luID0gNCAvIGFwcFN0YXRlLnpvb20udmFsdWU7XFxuICAgIC8vIFNhbWUgYXMgYG5lYCByZXNpemUgaGFuZGxlXFxuICAgIGNvbnN0IHggPSB4MiArIGRhc2hlZExpbmVNYXJnaW4gLSBjZW50ZXJpbmdPZmZzZXQ7XFxuICAgIGNvbnN0IHkgPSB5MSAtIGRhc2hlZExpbmVNYXJnaW4gLSBsaW5rTWFyZ2luWSArIGNlbnRlcmluZ09mZnNldDtcXG4gICAgY29uc3QgW3JvdGF0ZWRYLCByb3RhdGVkWV0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5yb3RhdGUpKHggKyBsaW5rV2lkdGggLyAyLCB5ICsgbGlua0hlaWdodCAvIDIsIGNlbnRlclgsIGNlbnRlclksIGFuZ2xlKTtcXG4gICAgcmV0dXJuIFtcXG4gICAgICAgIHJvdGF0ZWRYIC0gbGlua1dpZHRoIC8gMixcXG4gICAgICAgIHJvdGF0ZWRZIC0gbGlua0hlaWdodCAvIDIsXFxuICAgICAgICBsaW5rV2lkdGgsXFxuICAgICAgICBsaW5rSGVpZ2h0LFxcbiAgICBdO1xcbn07XFxuY29uc3QgaXNQb2ludEhpdHRpbmdMaW5rSWNvbiA9IChlbGVtZW50LCBhcHBTdGF0ZSwgW3gsIHldLCBpc01vYmlsZSkgPT4ge1xcbiAgICBjb25zdCB0aHJlc2hvbGQgPSA0IC8gYXBwU3RhdGUuem9vbS52YWx1ZTtcXG4gICAgaWYgKCFpc01vYmlsZSAmJlxcbiAgICAgICAgYXBwU3RhdGUudmlld01vZGVFbmFibGVkICYmXFxuICAgICAgICAoMCxfY29sbGlzaW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fLmlzUG9pbnRIaXR0aW5nRWxlbWVudEJvdW5kaW5nQm94KShlbGVtZW50LCBbeCwgeV0sIHRocmVzaG9sZCkpIHtcXG4gICAgICAgIHJldHVybiB0cnVlO1xcbiAgICB9XFxuICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmdldEVsZW1lbnRBYnNvbHV0ZUNvb3JkcykoZWxlbWVudCk7XFxuICAgIGNvbnN0IFtsaW5rWCwgbGlua1ksIGxpbmtXaWR0aCwgbGlua0hlaWdodF0gPSBnZXRMaW5rSGFuZGxlRnJvbUNvb3JkcyhbeDEsIHkxLCB4MiwgeTJdLCBlbGVtZW50LmFuZ2xlLCBhcHBTdGF0ZSk7XFxuICAgIGNvbnN0IGhpdExpbmsgPSB4ID4gbGlua1ggLSB0aHJlc2hvbGQgJiZcXG4gICAgICAgIHggPCBsaW5rWCArIHRocmVzaG9sZCArIGxpbmtXaWR0aCAmJlxcbiAgICAgICAgeSA+IGxpbmtZIC0gdGhyZXNob2xkICYmXFxuICAgICAgICB5IDwgbGlua1kgKyBsaW5rSGVpZ2h0ICsgdGhyZXNob2xkO1xcbiAgICByZXR1cm4gaGl0TGluaztcXG59O1xcbmxldCBIWVBFUkxJTktfVE9PTFRJUF9USU1FT1VUX0lEID0gbnVsbDtcXG5jb25zdCBzaG93SHlwZXJsaW5rVG9vbHRpcCA9IChlbGVtZW50LCBhcHBTdGF0ZSkgPT4ge1xcbiAgICBpZiAoSFlQRVJMSU5LX1RPT0xUSVBfVElNRU9VVF9JRCkge1xcbiAgICAgICAgY2xlYXJUaW1lb3V0KEhZUEVSTElOS19UT09MVElQX1RJTUVPVVRfSUQpO1xcbiAgICB9XFxuICAgIEhZUEVSTElOS19UT09MVElQX1RJTUVPVVRfSUQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiByZW5kZXJUb29sdGlwKGVsZW1lbnQsIGFwcFN0YXRlKSwgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5IWVBFUkxJTktfVE9PTFRJUF9ERUxBWSk7XFxufTtcXG5jb25zdCByZW5kZXJUb29sdGlwID0gKGVsZW1lbnQsIGFwcFN0YXRlKSA9PiB7XFxuICAgIGlmICghZWxlbWVudC5saW5rKSB7XFxuICAgICAgICByZXR1cm47XFxuICAgIH1cXG4gICAgY29uc3QgdG9vbHRpcERpdiA9ICgwLF9jb21wb25lbnRzX1Rvb2x0aXBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18uZ2V0VG9vbHRpcERpdikoKTtcXG4gICAgdG9vbHRpcERpdi5jbGFzc0xpc3QuYWRkKFxcXCJleGNhbGlkcmF3LXRvb2x0aXAtLXZpc2libGVcXFwiKTtcXG4gICAgdG9vbHRpcERpdi5zdHlsZS5tYXhXaWR0aCA9IFxcXCIyMHJlbVxcXCI7XFxuICAgIHRvb2x0aXBEaXYudGV4dENvbnRlbnQgPSBlbGVtZW50Lmxpbms7XFxuICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fLmdldEVsZW1lbnRBYnNvbHV0ZUNvb3JkcykoZWxlbWVudCk7XFxuICAgIGNvbnN0IFtsaW5rWCwgbGlua1ksIGxpbmtXaWR0aCwgbGlua0hlaWdodF0gPSBnZXRMaW5rSGFuZGxlRnJvbUNvb3JkcyhbeDEsIHkxLCB4MiwgeTJdLCBlbGVtZW50LmFuZ2xlLCBhcHBTdGF0ZSk7XFxuICAgIGNvbnN0IGxpbmtWaWV3cG9ydENvb3JkcyA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnNjZW5lQ29vcmRzVG9WaWV3cG9ydENvb3JkcykoeyBzY2VuZVg6IGxpbmtYLCBzY2VuZVk6IGxpbmtZIH0sIGFwcFN0YXRlKTtcXG4gICAgKDAsX2NvbXBvbmVudHNfVG9vbHRpcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy51cGRhdGVUb29sdGlwUG9zaXRpb24pKHRvb2x0aXBEaXYsIHtcXG4gICAgICAgIGxlZnQ6IGxpbmtWaWV3cG9ydENvb3Jkcy54LFxcbiAgICAgICAgdG9wOiBsaW5rVmlld3BvcnRDb29yZHMueSxcXG4gICAgICAgIHdpZHRoOiBsaW5rV2lkdGgsXFxuICAgICAgICBoZWlnaHQ6IGxpbmtIZWlnaHQsXFxuICAgIH0sIFxcXCJ0b3BcXFwiKTtcXG4gICAgSVNfSFlQRVJMSU5LX1RPT0xUSVBfVklTSUJMRSA9IHRydWU7XFxufTtcXG5jb25zdCBoaWRlSHlwZXJsaW5rVG9vbGlwID0gKCkgPT4ge1xcbiAgICBpZiAoSFlQRVJMSU5LX1RPT0xUSVBfVElNRU9VVF9JRCkge1xcbiAgICAgICAgY2xlYXJUaW1lb3V0KEhZUEVSTElOS19UT09MVElQX1RJTUVPVVRfSUQpO1xcbiAgICB9XFxuICAgIGlmIChJU19IWVBFUkxJTktfVE9PTFRJUF9WSVNJQkxFKSB7XFxuICAgICAgICBJU19IWVBFUkxJTktfVE9PTFRJUF9WSVNJQkxFID0gZmFsc2U7XFxuICAgICAgICAoMCxfY29tcG9uZW50c19Ub29sdGlwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLmdldFRvb2x0aXBEaXYpKCkuY2xhc3NMaXN0LnJlbW92ZShcXFwiZXhjYWxpZHJhdy10b29sdGlwLS12aXNpYmxlXFxcIik7XFxuICAgIH1cXG59O1xcbmNvbnN0IHNob3VsZEhpZGVMaW5rUG9wdXAgPSAoZWxlbWVudCwgYXBwU3RhdGUsIFtjbGllbnRYLCBjbGllbnRZXSkgPT4ge1xcbiAgICBjb25zdCB7IHg6IHNjZW5lWCwgeTogc2NlbmVZIH0gPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy52aWV3cG9ydENvb3Jkc1RvU2NlbmVDb29yZHMpKHsgY2xpZW50WCwgY2xpZW50WSB9LCBhcHBTdGF0ZSk7XFxuICAgIGNvbnN0IHRocmVzaG9sZCA9IDE1IC8gYXBwU3RhdGUuem9vbS52YWx1ZTtcXG4gICAgLy8gaGl0Ym94IHRvIHByZXZlbnQgaGlkaW5nIHdoZW4gaG92ZXJlZCBpbiBlbGVtZW50IGJvdW5kaW5nIGJveFxcbiAgICBpZiAoKDAsX2NvbGxpc2lvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXy5pc1BvaW50SGl0dGluZ0VsZW1lbnRCb3VuZGluZ0JveCkoZWxlbWVudCwgW3NjZW5lWCwgc2NlbmVZXSwgdGhyZXNob2xkKSkge1xcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICB9XFxuICAgIGNvbnN0IFt4MSwgeTEsIHgyXSA9ICgwLF9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzKShlbGVtZW50KTtcXG4gICAgLy8gaGl0IGJveCB0byBwcmV2ZW50IGhpZGluZyB3aGVuIGhvdmVyZWQgaW4gdGhlIHZlcnRpY2FsIGFyZWEgYmV0d2VlbiBlbGVtZW50IGFuZCBwb3BvdmVyXFxuICAgIGlmIChzY2VuZVggPj0geDEgJiZcXG4gICAgICAgIHNjZW5lWCA8PSB4MiAmJlxcbiAgICAgICAgc2NlbmVZID49IHkxIC0gU1BBQ0VfQk9UVE9NICYmXFxuICAgICAgICBzY2VuZVkgPD0geTEpIHtcXG4gICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgfVxcbiAgICAvLyBoaXQgYm94IHRvIHByZXZlbnQgaGlkaW5nIHdoZW4gaG92ZXJlZCBhcm91bmQgcG9wb3ZlciB3aXRoaW4gdGhyZXNob2xkXFxuICAgIGNvbnN0IHsgeDogcG9wb3ZlclgsIHk6IHBvcG92ZXJZIH0gPSBnZXRDb29yZHNGb3JQb3BvdmVyKGVsZW1lbnQsIGFwcFN0YXRlKTtcXG4gICAgaWYgKGNsaWVudFggPj0gcG9wb3ZlclggLSB0aHJlc2hvbGQgJiZcXG4gICAgICAgIGNsaWVudFggPD0gcG9wb3ZlclggKyBDT05UQUlORVJfV0lEVEggKyBDT05UQUlORVJfUEFERElORyAqIDIgKyB0aHJlc2hvbGQgJiZcXG4gICAgICAgIGNsaWVudFkgPj0gcG9wb3ZlclkgLSB0aHJlc2hvbGQgJiZcXG4gICAgICAgIGNsaWVudFkgPD0gcG9wb3ZlclkgKyB0aHJlc2hvbGQgKyBDT05UQUlORVJfUEFERElORyAqIDIgKyBDT05UQUlORVJfSEVJR0hUKSB7XFxuICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgIH1cXG4gICAgcmV0dXJuIHRydWU7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlpXeGxiV1Z1ZEM5SWVYQmxjbXhwYm1zdWRITjRMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJUV3RDTzBGQlF6aENPMEZCUjBRN1FVRkRUenRCUVVOTk8wRkJRMmhETzBGQlQySTdRVUZEVXp0QlFVTlBPMEZCUXl0Q08wRkJRemRDTzBGQlEzbERPMEZCUlVjN1FVRkRPVUk3UVVGRFowSTdRVUZEYWtJN1FVRkZjRUk3UVVGRk1VSXNUVUZCVFN4bFFVRmxMRWRCUVVjc1IwRkJSeXhEUVVGRE8wRkJRelZDTEUxQlFVMHNXVUZCV1N4SFFVRkhMRVZCUVVVc1EwRkJRenRCUVVONFFpeE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU0xUWl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVWQlFVVXNRMEZCUXp0QlFVTTFRaXhOUVVGTkxHbENRVUZwUWl4SFFVRkhMRWRCUVVjc1EwRkJRenRCUVVWMlFpeE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRMMFFzYVVKQlFXbENMRU5CUVVNc1IwRkJSeXhIUVVGSExGRkJRVkVzZFVSQlFXTXNTMEZCU3l4clFrRkJhMElzUTBGRGJrVXNhVmxCUVdsWkxFTkJRMnhaTEVWQlFVVXNRMEZCUXp0QlFVVktMRWxCUVVrc05FSkJRVFJDTEVkQlFVY3NTMEZCU3l4RFFVRkRPMEZCUld4RExFMUJRVTBzVTBGQlV5eEhRVUZITEVOQlFVTXNSVUZEZUVJc1QwRkJUeXhGUVVOUUxGRkJRVkVzUlVGRFVpeFhRVUZYTEVWQlExZ3NWVUZCVlN4SFFVMVlMRVZCUVVVc1JVRkJSVHRKUVVOSUxFMUJRVTBzVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXl4SlFVRkpMRWxCUVVrc1JVRkJSU3hEUVVGRE8wbEJSVzVETEUxQlFVMHNRMEZCUXl4UlFVRlJMRVZCUVVVc1YwRkJWeXhEUVVGRExFZEJRVWNzSzBOQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOc1JDeE5RVUZOTEZGQlFWRXNSMEZCUnl3MlEwRkJUU3hEUVVGdFFpeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTm9SQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNhMEpCUVd0Q0xFdEJRVXNzVVVGQlVTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRPMGxCUlhaRkxFMUJRVTBzV1VGQldTeEhRVUZITEd0RVFVRlhMRU5CUVVNc1IwRkJSeXhGUVVGRk8xRkJRM0JETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhGUVVGRk8xbEJRM0pDTEU5QlFVODdVMEZEVWp0UlFVVkVMRTFCUVUwc1NVRkJTU3hIUVVGSExHRkJRV0VzUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJSVzVFTERaRVFVRmhMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTnFReXhYUVVGWExFTkJRVU1zUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3hOUVVGTkxFVkJRVVVzUTBGQlF5eERRVUZETzBsQlF6bERMRU5CUVVNc1JVRkJSU3hEUVVGRExFOUJRVThzUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlROQ0xITkVRVUZsTEVOQlFVTXNSMEZCUnl4RlFVRkZPMUZCUTI1Q0xFOUJRVThzUjBGQlJ5eEZRVUZGTzFsQlExWXNXVUZCV1N4RlFVRkZMRU5CUVVNN1VVRkRha0lzUTBGQlF5eERRVUZETzBsQlEwb3NRMEZCUXl4RlFVRkZMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVZ1UWl4blJFRkJVeXhEUVVGRExFZEJRVWNzUlVGQlJUdFJRVU5pTEVsQlFVa3NVMEZCVXl4SFFVRnJRaXhKUVVGSkxFTkJRVU03VVVGRGNFTXNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eERRVUZETEV0QlFXMUNMRVZCUVVVc1JVRkJSVHRaUVVOb1JDeEpRVUZKTEZOQlFWTXNSVUZCUlR0blFrRkRZaXhQUVVGUE8yRkJRMUk3V1VGRFJDeEpRVUZKTEZOQlFWTXNSVUZCUlR0blFrRkRZaXhaUVVGWkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdZVUZEZWtJN1dVRkRSQ3hOUVVGTkxGVkJRVlVzUjBGQlJ5eHRRa0ZCYlVJc1EwRkJReXhQUVVGUExFVkJRVVVzVVVGQlVTeEZRVUZGTzJkQ1FVTjRSQ3hMUVVGTExFTkJRVU1zVDBGQlR6dG5Ra0ZEWWl4TFFVRkxMRU5CUVVNc1QwRkJUenRoUVVOa0xFTkJRVmtzUTBGQlF6dFpRVU5rTEVsQlFVa3NWVUZCVlN4RlFVRkZPMmRDUVVOa0xGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1JVRkJSVHR2UWtGRGFrTXNWMEZCVnl4RFFVRkRMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRE4wTXNRMEZCUXl4RlFVRkZMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdZVUZEZGtJN1VVRkRTQ3hEUVVGRExFTkJRVU03VVVGRFJpeE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zTWtSQlFXdENMRVZCUVVVc2FVSkJRV2xDTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRkRVVzVDBGQlR5eEhRVUZITEVWQlFVVTdXVUZEVml4TlFVRk5MRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNNa1JCUVd0Q0xFVkJRVVVzYVVKQlFXbENMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03V1VGRGVrVXNTVUZCU1N4VFFVRlRMRVZCUVVVN1owSkJRMklzV1VGQldTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMkZCUTNwQ08xRkJRMGdzUTBGQlF5eERRVUZETzBsQlEwb3NRMEZCUXl4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxFOUJRVThzUlVGQlJTeFRRVUZUTEVWQlFVVXNWMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWb1JDeE5RVUZOTEZsQlFWa3NSMEZCUnl4clJFRkJWeXhEUVVGRExFZEJRVWNzUlVGQlJUdFJRVU53UXl3MlJFRkJZU3hEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM1pETEVsQlFVa3NVMEZCVXl4RlFVRkZPMWxCUTJJc1VVRkJVU3hEUVVGRExFOUJRVkVzUTBGQlF5eExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMU5CUXpsQ08xRkJRMFFzVjBGQlZ5eERRVUZETEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVTTNReXhEUVVGRExFVkJRVVVzUTBGQlF5eFhRVUZYTEVWQlFVVXNUMEZCVHl4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmRFTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1IwRkJSeXhGUVVGRk8xRkJRMnhDTEZkQlFWY3NRMEZCUXl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEZGQlFWRXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRhRVFzUTBGQlF5eERRVUZETzBsQlEwWXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUjBGQlJ5eHRRa0ZCYlVJc1EwRkJReXhQUVVGUExFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTTdTVUZEZUVRc1NVRkRSU3hSUVVGUkxFTkJRVU1zWlVGQlpUdFJRVU40UWl4UlFVRlJMRU5CUVVNc1pVRkJaVHRSUVVONFFpeFJRVUZSTEVOQlFVTXNWVUZCVlR0UlFVTnVRaXhSUVVGUkxFTkJRVU1zVVVGQlVTeEZRVU5xUWp0UlFVTkJMRTlCUVU4c1NVRkJTU3hEUVVGRE8wdEJRMkk3U1VGRFJDeFBRVUZQTEVOQlEwd3NLMFZCUTBVc1UwRkJVeXhGUVVGRExDdENRVUVyUWl4RlFVTjZReXhMUVVGTExFVkJRVVU3V1VGRFRDeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRWxCUVVrN1dVRkRZaXhKUVVGSkxFVkJRVVVzUjBGQlJ5eERRVUZETEVsQlFVazdXVUZEWkN4TFFVRkxMRVZCUVVVc1pVRkJaVHRaUVVOMFFpeFBRVUZQTEVWQlFVVXNhVUpCUVdsQ08xTkJRek5DTEdsQ1FVVkJMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGRFdDeHJSVUZEUlN4VFFVRlRMRVZCUVVVc1owUkJRVWtzUTBGQlF5eHhRMEZCY1VNc1EwRkJReXhGUVVOMFJDeFhRVUZYTEVWQlFVTXNPRUpCUVRoQ0xFVkJRekZETEVkQlFVY3NSVUZCUlN4UlFVRlJMRVZCUTJJc1MwRkJTeXhGUVVGRkxGRkJRVkVzUlVGRFppeFJRVUZSTEVWQlFVVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExGZEJRVmNzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVOd1JDeFRRVUZUTEZGQlExUXNVMEZCVXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVU3YjBKQlEyNUNMRXRCUVVzc1EwRkJReXhsUVVGbExFVkJRVVVzUTBGQlF6dHZRa0ZEZUVJc1owUkJRV2RFTzI5Q1FVTm9SQ3hKUVVGSkxFdEJRVXNzUTBGQlF5eHRSRUZCWjBJc1EwRkJReXhKUVVGSkxFdEJRVXNzUTBGQlF5eEhRVUZITEV0QlFVc3NlVU5CUVUwc1JVRkJSVHQzUWtGRGJrUXNTMEZCU3l4RFFVRkRMR05CUVdNc1JVRkJSU3hEUVVGRE8zRkNRVU40UWp0dlFrRkRSQ3hKUVVGSkxFdEJRVXNzUTBGQlF5eEhRVUZITEV0QlFVc3NOa05CUVZVc1NVRkJTU3hMUVVGTExFTkJRVU1zUjBGQlJ5eExRVUZMTERoRFFVRlhMRVZCUVVVN2QwSkJRM3BFTEZsQlFWa3NSVUZCUlN4RFFVRkRPM0ZDUVVOb1FqdG5Ra0ZEU0N4RFFVRkRMRmRCUTBRc1EwRkRTQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVU5HTERSRlFVTkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFTkJRVU1zU1VGQlNTeEpRVUZKTEVWQlFVVXNSVUZEZUVJc1UwRkJVeXhGUVVGRkxHZEVRVUZKTEVOQlFVTXNiME5CUVc5RExFVkJRVVU3YjBKQlEzQkVMRkZCUVZFc1JVRkJSU3hUUVVGVE8ybENRVU53UWl4RFFVRkRMRVZCUTBZc1RVRkJUU3hGUVVGRkxGZEJRVmNzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RlFVTjBSQ3hQUVVGUExFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlR0dlFrRkRha0lzU1VGQlNTeFBRVUZQTEVOQlFVTXNTVUZCU1N4SlFVRkpMRlZCUVZVc1JVRkJSVHQzUWtGRE9VSXNUVUZCVFN4WFFVRlhMRWRCUVVjc2FVUkJRVk1zUTBGRE0wSXNPRVJCUVhGQ0xFVkJRM0pDTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUTJ4Q0xFTkJRVU03ZDBKQlEwWXNWVUZCVlN4RFFVRkRMRTlCUVU4c1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dDNRa0ZEYWtNc1NVRkJTU3hYUVVGWExFTkJRVU1zWjBKQlFXZENMRVZCUVVVN05FSkJRMmhETEV0QlFVc3NRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenQ1UWtGRGVFSTdjVUpCUTBZN1owSkJRMGdzUTBGQlF5eEZRVU5FTEVkQlFVY3NSVUZCUXl4eFFrRkJjVUlzWjBKQlJYaENMRTlCUVU4c1EwRkJReXhKUVVGSkxGbEJRMWdzUTBGRFRDeEZRVU5FTEN0RlFVRkxMRk5CUVZNc1JVRkJReXgzUTBGQmQwTXNhVUpCUTNCRUxFTkJRVU1zVTBGQlV5eEpRVUZKTEVOQlEySXNkVVJCUVVNc09FUkJRVlVzU1VGRFZDeEpRVUZKTEVWQlFVTXNVVUZCVVN4RlFVTmlMRXRCUVVzc1JVRkJSU3gzUTBGQlF5eERRVUZETEdOQlFXTXNRMEZCUXl4blFrRkRXaXgzUTBGQlF5eERRVUZETEdOQlFXTXNRMEZCUXl4RlFVTTNRaXhMUVVGTExFVkJRVVVzZDBOQlFVTXNRMEZCUXl4alFVRmpMRU5CUVVNc1JVRkRlRUlzVDBGQlR5eEZRVUZGTEUxQlFVMHNSVUZEWml4VFFVRlRMRVZCUVVNc2NVTkJRWEZETEVWQlF5OURMRWxCUVVrc1JVRkJSU3gxUkVGQlVTeFhRVU5rTEVOQlEwZ3NSVUZGUVN4UFFVRlBMRWxCUVVrc1EwRkRWaXgxUkVGQlF5dzRSRUZCVlN4SlFVTlVMRWxCUVVrc1JVRkJReXhSUVVGUkxFVkJRMklzUzBGQlN5eEZRVUZGTEhkRFFVRkRMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNaMEpCUTJRc2QwTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhGUVVNdlFpeExRVUZMTEVWQlFVVXNkME5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RlFVTXhRaXhQUVVGUExFVkJRVVVzV1VGQldTeEZRVU55UWl4VFFVRlRMRVZCUVVNc2RVTkJRWFZETEVWQlEycEVMRWxCUVVrc1JVRkJSU3h2UkVGQlN5eFhRVU5ZTEVOQlEwZ3NZVUZEUnl4aFFVTkdMRU5CUTFBc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF6dEJRVVZHTEUxQlFVMHNiVUpCUVcxQ0xFZEJRVWNzUTBGRE1VSXNUMEZCYjBNc1JVRkRjRU1zVVVGQmEwSXNSVUZEYkVJc1JVRkJSVHRKUVVOR0xFMUJRVTBzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc05FUkJRWGRDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRia1FzVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4VFFVRlRMRVZCUVVVc1EwRkJReXhGUVVGRkxGTkJRVk1zUlVGQlJTeEhRVUZITEcxRlFVRXlRaXhEUVVOb1JTeEZRVUZGTEUxQlFVMHNSVUZCUlN4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFdEJRVXNzUjBGQlJ5eERRVUZETEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVNNVF5eFJRVUZSTEVOQlExUXNRMEZCUXp0SlFVTkdMRTFCUVUwc1EwRkJReXhIUVVGSExGTkJRVk1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNWVUZCVlN4SFFVRkhMR1ZCUVdVc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGFFVXNUVUZCVFN4RFFVRkRMRWRCUVVjc1UwRkJVeXhIUVVGSExGRkJRVkVzUTBGQlF5eFRRVUZUTEVkQlFVY3NXVUZCV1N4RFFVRkRPMGxCUTNoRUxFOUJRVThzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNN1FVRkRiRUlzUTBGQlF5eERRVUZETzBGQlJVc3NUVUZCVFN4aFFVRmhMRWRCUVVjc1EwRkJReXhKUVVGWkxFVkJRVVVzUlVGQlJUdEpRVU0xUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzBsQlEyNUNMRWxCUVVrc1NVRkJTU3hGUVVGRk8xRkJRMUlzT0VOQlFUaERPMUZCUXpsRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSVHRaUVVOc1JDeEpRVUZKTEVkQlFVY3NWMEZCVnl4SlFVRkpMRVZCUVVVc1EwRkJRenRUUVVNeFFqdExRVU5HTzBsQlEwUXNUMEZCVHl4SlFVRkpMRU5CUVVNN1FVRkRaQ3hEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEZkQlFWY3NSMEZCUnl4RFFVRkRMRWxCUVcxQ0xFVkJRVVVzUlVGQlJUdEpRVU5xUkN4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVWtzWVVGQlNpeEpRVUZKTEhWQ1FVRktMRWxCUVVrc1EwRkJSU3hSUVVGUkxFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRkpMRWxCUVVrc1lVRkJTaXhKUVVGSkxIVkNRVUZLTEVsQlFVa3NRMEZCUlN4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVU1zUTBGQlF6dEJRVU4wUlN4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxGVkJRVlVzUjBGQlJ5d3lSRUZCVVN4RFFVRkRPMGxCUTJwRExFbEJRVWtzUlVGQlJTeE5RVUZOTzBsQlExb3NUMEZCVHl4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEZRVUZGTzFGQlF6bENMRWxCUVVrc1VVRkJVU3hEUVVGRExHdENRVUZyUWl4TFFVRkxMRkZCUVZFc1JVRkJSVHRaUVVNMVF5eFBRVUZQTEV0QlFVc3NRMEZCUXp0VFFVTmtPMUZCUTBRc1QwRkJUenRaUVVOTUxGRkJRVkU3V1VGRFVpeFJRVUZSTEd0RFFVTklMRkZCUVZFc1MwRkRXQ3hyUWtGQmEwSXNSVUZCUlN4UlFVRlJMRVZCUXpWQ0xGRkJRVkVzUlVGQlJTeEpRVUZKTEVkQlEyWTdXVUZEUkN4bFFVRmxMRVZCUVVVc1NVRkJTVHRUUVVOMFFpeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVTkVMRTlCUVU4c1JVRkJSU3hEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRzFFUVVGblFpeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRkRMRWRCUVVjc1MwRkJTeXg1UTBGQlRUdEpRVU51UlN4blFrRkJaMElzUlVGQlJTeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUVVVc1JVRkJSU3hEUVVOMlF5eHRRa0ZCYlVJc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeERRVUZETzBsQlEzcERMRzlDUVVGdlFpeEZRVUZGTEVOQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hGUVVGRk8xRkJRek5ETEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzTkVSQlFXMUNMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETzFGQlEycEZMRTlCUVU4c1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVOMlF5eERRVUZETzBsQlEwUXNZMEZCWXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEZWQlFWVXNSVUZCUlN4RlFVRkZMRVZCUVVVN1VVRkRja1FzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXcwUkVGQmJVSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGRmFrVXNUMEZCVHl4RFFVTk1MSFZFUVVGRExEaEVRVUZWTEVsQlExUXNTVUZCU1N4RlFVRkRMRkZCUVZFc1JVRkRZaXhKUVVGSkxFVkJRVVVzYlVSQlFVa3NaMEpCUTBVc2QwTkJRVU1zUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTXNSVUZEZEVRc1MwRkJTeXhGUVVGRkxFZEJRVWNzZDBOQlFVTXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eE5RVUZOTEhORVFVRmpMRU5CUVVNc1lVRkJZU3hEUVVGRExFVkJRVVVzUlVGRGNrVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZETDBJc1VVRkJVU3hGUVVGRkxHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NWMEZEY2tVc1EwRkRTQ3hEUVVGRE8wbEJRMG9zUTBGQlF6dERRVU5HTEVOQlFVTXNRMEZCUXp0QlFVVkpMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NRMEZEYWtNc1VVRkJaMFFzUlVGRGFFUXNVVUZCYTBJc1JVRkRiRUlzUlVGQlJUdEpRVU5HTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzTkVSQlFXMUNMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETzBsQlEycEZMRTFCUVUwc1MwRkJTeXhIUVVGSExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1EwRkJSU3hEUVVGRExFbEJRVWs3VVVGRGNrTXNRMEZCUXl4RFFVRkRMR3RDUVVGclFqdFJRVU53UWl4RFFVRkRMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTTdTVUZEZWtJc1QwRkJUeXhMUVVGTExFTkJRVU03UVVGRFppeERRVUZETEVOQlFVTTdRVUZEU3l4TlFVRk5MSFZDUVVGMVFpeEhRVUZITEVOQlEzSkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRlRMRVZCUTNoQ0xFdEJRV0VzUlVGRFlpeFJRVUZyUWl4RlFVTnhReXhGUVVGRk8wbEJRM3BFTEUxQlFVMHNTVUZCU1N4SFFVRkhMSFZGUVVGcFFpeERRVUZETzBsQlF5OUNMRTFCUVUwc1UwRkJVeXhIUVVGSExFbEJRVWtzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVNM1F5eE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRWRCUVVjc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTTdTVUZET1VNc1RVRkJUU3hYUVVGWExFZEJRVWNzU1VGQlNTeEhRVUZITEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJReTlETEUxQlFVMHNUMEZCVHl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTTVRaXhOUVVGTkxFOUJRVThzUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRE9VSXNUVUZCVFN4bFFVRmxMRWRCUVVjc1EwRkJReXhKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTXZSQ3hOUVVGTkxHZENRVUZuUWl4SFFVRkhMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXp0SlFVVnFSQ3cyUWtGQk5rSTdTVUZETjBJc1RVRkJUU3hEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEdkQ1FVRm5RaXhIUVVGSExHVkJRV1VzUTBGQlF6dEpRVU5zUkN4TlFVRk5MRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzWjBKQlFXZENMRWRCUVVjc1YwRkJWeXhIUVVGSExHVkJRV1VzUTBGQlF6dEpRVVZvUlN4TlFVRk5MRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUTBGQlF5eEhRVUZITERoRFFVRk5MRU5CUTJwRExFTkJRVU1zUjBGQlJ5eFRRVUZUTEVkQlFVY3NRMEZCUXl4RlFVTnFRaXhEUVVGRExFZEJRVWNzVlVGQlZTeEhRVUZITEVOQlFVTXNSVUZEYkVJc1QwRkJUeXhGUVVOUUxFOUJRVThzUlVGRFVDeExRVUZMTEVOQlEwNHNRMEZCUXp0SlFVTkdMRTlCUVU4N1VVRkRUQ3hSUVVGUkxFZEJRVWNzVTBGQlV5eEhRVUZITEVOQlFVTTdVVUZEZUVJc1VVRkJVU3hIUVVGSExGVkJRVlVzUjBGQlJ5eERRVUZETzFGQlEzcENMRk5CUVZNN1VVRkRWQ3hWUVVGVk8wdEJRMWdzUTBGQlF6dEJRVU5LTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc2MwSkJRWE5DTEVkQlFVY3NRMEZEY0VNc1QwRkJiME1zUlVGRGNFTXNVVUZCYTBJc1JVRkRiRUlzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRlJMRVZCUTJJc1VVRkJhVUlzUlVGRGFrSXNSVUZCUlR0SlFVTkdMRTFCUVUwc1UwRkJVeXhIUVVGSExFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVNeFF5eEpRVU5GTEVOQlFVTXNVVUZCVVR0UlFVTlVMRkZCUVZFc1EwRkJReXhsUVVGbE8xRkJRM2hDTERaRlFVRm5ReXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hUUVVGVExFTkJRVU1zUlVGRE5VUTdVVUZEUVN4UFFVRlBMRWxCUVVrc1EwRkJRenRMUVVOaU8wbEJRMFFzVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITERSRVFVRjNRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlJUTkVMRTFCUVUwc1EwRkJReXhMUVVGTExFVkJRVVVzUzBGQlN5eEZRVUZGTEZOQlFWTXNSVUZCUlN4VlFVRlZMRU5CUVVNc1IwRkJSeXgxUWtGQmRVSXNRMEZEYmtVc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkRhRUlzVDBGQlR5eERRVUZETEV0QlFVc3NSVUZEWWl4UlFVRlJMRU5CUTFRc1EwRkJRenRKUVVOR0xFMUJRVTBzVDBGQlR5eEhRVU5ZTEVOQlFVTXNSMEZCUnl4TFFVRkxMRWRCUVVjc1UwRkJVenRSUVVOeVFpeERRVUZETEVkQlFVY3NTMEZCU3l4SFFVRkhMRk5CUVZNc1IwRkJSeXhUUVVGVE8xRkJRMnBETEVOQlFVTXNSMEZCUnl4TFFVRkxMRWRCUVVjc1UwRkJVenRSUVVOeVFpeERRVUZETEVkQlFVY3NTMEZCU3l4SFFVRkhMRlZCUVZVc1IwRkJSeXhUUVVGVExFTkJRVU03U1VGRGNrTXNUMEZCVHl4UFFVRlBMRU5CUVVNN1FVRkRha0lzUTBGQlF5eERRVUZETzBGQlJVWXNTVUZCU1N3MFFrRkJORUlzUjBGQmEwSXNTVUZCU1N4RFFVRkRPMEZCUTJoRUxFMUJRVTBzYjBKQlFXOUNMRWRCUVVjc1EwRkRiRU1zVDBGQmIwTXNSVUZEY0VNc1VVRkJhMElzUlVGRGJFSXNSVUZCUlR0SlFVTkdMRWxCUVVrc05FSkJRVFJDTEVWQlFVVTdVVUZEYUVNc1dVRkJXU3hEUVVGRExEUkNRVUUwUWl4RFFVRkRMRU5CUVVNN1MwRkROVU03U1VGRFJDdzBRa0ZCTkVJc1IwRkJSeXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVU01UXl4SFFVRkhMRVZCUVVVc1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eEZRVUZGTEZGQlFWRXNRMEZCUXl4RlFVTjBReXhuUlVGQmRVSXNRMEZEZUVJc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF6dEJRVVZHTEUxQlFVMHNZVUZCWVN4SFFVRkhMRU5CUTNCQ0xFOUJRVzlETEVWQlEzQkRMRkZCUVd0Q0xFVkJRMnhDTEVWQlFVVTdTVUZEUml4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUlVGQlJUdFJRVU5xUWl4UFFVRlBPMHRCUTFJN1NVRkZSQ3hOUVVGTkxGVkJRVlVzUjBGQlJ5eHRSVUZCWVN4RlFVRkZMRU5CUVVNN1NVRkZia01zVlVGQlZTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc05rSkJRVFpDTEVOQlFVTXNRMEZCUXp0SlFVTjRSQ3hWUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNSMEZCUnl4UFFVRlBMRU5CUVVNN1NVRkRjRU1zVlVGQlZTeERRVUZETEZkQlFWY3NSMEZCUnl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRE8wbEJSWFJETEUxQlFVMHNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl3MFJFRkJkMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVVXpSQ3hOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4VFFVRlRMRVZCUVVVc1ZVRkJWU3hEUVVGRExFZEJRVWNzZFVKQlFYVkNMRU5CUTI1RkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRMmhDTEU5QlFVOHNRMEZCUXl4TFFVRkxMRVZCUTJJc1VVRkJVU3hEUVVOVUxFTkJRVU03U1VGRlJpeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExHMUZRVUV5UWl4RFFVTndSQ3hGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVOb1F5eFJRVUZSTEVOQlExUXNRMEZCUXp0SlFVVkdMREpGUVVGeFFpeERRVU51UWl4VlFVRlZMRVZCUTFZN1VVRkRSU3hKUVVGSkxFVkJRVVVzYTBKQlFXdENMRU5CUVVNc1EwRkJRenRSUVVNeFFpeEhRVUZITEVWQlFVVXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dFJRVU42UWl4TFFVRkxMRVZCUVVVc1UwRkJVenRSUVVOb1FpeE5RVUZOTEVWQlFVVXNWVUZCVlR0TFFVTnVRaXhGUVVORUxFdEJRVXNzUTBGRFRpeERRVUZETzBsQlJVWXNORUpCUVRSQ0xFZEJRVWNzU1VGQlNTeERRVUZETzBGQlEzUkRMRU5CUVVNc1EwRkJRenRCUVVOTExFMUJRVTBzYlVKQlFXMUNMRWRCUVVjc1IwRkJSeXhGUVVGRk8wbEJRM1JETEVsQlFVa3NORUpCUVRSQ0xFVkJRVVU3VVVGRGFFTXNXVUZCV1N4RFFVRkRMRFJDUVVFMFFpeERRVUZETEVOQlFVTTdTMEZETlVNN1NVRkRSQ3hKUVVGSkxEUkNRVUUwUWl4RlFVRkZPMUZCUTJoRExEUkNRVUUwUWl4SFFVRkhMRXRCUVVzc1EwRkJRenRSUVVOeVF5eHRSVUZCWVN4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5dzJRa0ZCTmtJc1EwRkJReXhEUVVGRE8wdEJRMnBGTzBGQlEwZ3NRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl4RFFVTnFReXhQUVVGdlF5eEZRVU53UXl4UlFVRnJRaXhGUVVOc1FpeERRVUZETEU5QlFVOHNSVUZCUlN4UFFVRlBMRU5CUVZFc1JVRkRhRUlzUlVGQlJUdEpRVU5ZTEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeE5RVUZOTEVWQlFVVXNSMEZCUnl4dFJVRkJNa0lzUTBGRE1VUXNSVUZCUlN4UFFVRlBMRVZCUVVVc1QwRkJUeXhGUVVGRkxFVkJRM0JDTEZGQlFWRXNRMEZEVkN4RFFVRkRPMGxCUlVZc1RVRkJUU3hUUVVGVExFZEJRVWNzUlVGQlJTeEhRVUZITEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRek5ETEdkRlFVRm5SVHRKUVVOb1JTeEpRVUZKTERaRlFVRm5ReXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRU5CUVVNc1JVRkJSU3hUUVVGVExFTkJRVU1zUlVGQlJUdFJRVU14UlN4UFFVRlBMRXRCUVVzc1EwRkJRenRMUVVOa08wbEJRMFFzVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzTkVSQlFYZENMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGRrUXNNRVpCUVRCR08wbEJRekZHTEVsQlEwVXNUVUZCVFN4SlFVRkpMRVZCUVVVN1VVRkRXaXhOUVVGTkxFbEJRVWtzUlVGQlJUdFJRVU5hTEUxQlFVMHNTVUZCU1N4RlFVRkZMRWRCUVVjc1dVRkJXVHRSUVVNelFpeE5RVUZOTEVsQlFVa3NSVUZCUlN4RlFVTmFPMUZCUTBFc1QwRkJUeXhMUVVGTExFTkJRVU03UzBGRFpEdEpRVU5FTEhsRlFVRjVSVHRKUVVONlJTeE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zVDBGQlR5eEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRPMGxCUlRWRkxFbEJRMFVzVDBGQlR5eEpRVUZKTEZGQlFWRXNSMEZCUnl4VFFVRlRPMUZCUXk5Q0xFOUJRVThzU1VGQlNTeFJRVUZSTEVkQlFVY3NaVUZCWlN4SFFVRkhMR2xDUVVGcFFpeEhRVUZITEVOQlFVTXNSMEZCUnl4VFFVRlRPMUZCUTNwRkxFOUJRVThzU1VGQlNTeFJRVUZSTEVkQlFVY3NVMEZCVXp0UlFVTXZRaXhQUVVGUExFbEJRVWtzVVVGQlVTeEhRVUZITEZOQlFWTXNSMEZCUnl4cFFrRkJhVUlzUjBGQlJ5eERRVUZETEVkQlFVY3NaMEpCUVdkQ0xFVkJRekZGTzFGQlEwRXNUMEZCVHl4TFFVRkxMRU5CUVVNN1MwRkRaRHRKUVVORUxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEyUXNRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJWc1pXMWxiblF2U0hsd1pYSnNhVzVyTG5SemVEOHpZell3SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lFRndjRk4wWVhSbExDQkZlR05oYkdsa2NtRjNVSEp2Y0hNc0lGQnZhVzUwSUgwZ1puSnZiU0JjSWk0dUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JuWlhSVGFHOXlkR04xZEV0bGVTeGNiaUFnYzJObGJtVkRiMjl5WkhOVWIxWnBaWGR3YjNKMFEyOXZjbVJ6TEZ4dUlDQjJhV1YzY0c5eWRFTnZiM0prYzFSdlUyTmxibVZEYjI5eVpITXNYRzRnSUhkeVlYQkZkbVZ1ZEN4Y2JuMGdabkp2YlNCY0lpNHVMM1YwYVd4elhDSTdYRzVwYlhCdmNuUWdleUJ0ZFhSaGRHVkZiR1Z0Wlc1MElIMGdabkp2YlNCY0lpNHZiWFYwWVhSbFJXeGxiV1Z1ZEZ3aU8xeHVhVzF3YjNKMElIc2dUbTl1UkdWc1pYUmxaRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBJSDBnWm5KdmJTQmNJaTR2ZEhsd1pYTmNJanRjYmx4dWFXMXdiM0owSUhzZ2NtVm5hWE4wWlhJZ2ZTQm1jbTl0SUZ3aUxpNHZZV04wYVc5dWN5OXlaV2RwYzNSbGNsd2lPMXh1YVcxd2IzSjBJSHNnVkc5dmJFSjFkSFJ2YmlCOUlHWnliMjBnWENJdUxpOWpiMjF3YjI1bGJuUnpMMVJ2YjJ4Q2RYUjBiMjVjSWp0Y2JtbHRjRzl5ZENCN0lHVmthWFJKWTI5dUxDQnNhVzVyTENCMGNtRnphQ0I5SUdaeWIyMGdYQ0l1TGk5amIyMXdiMjVsYm5SekwybGpiMjV6WENJN1hHNXBiWEJ2Y25RZ2V5QjBJSDBnWm5KdmJTQmNJaTR1TDJreE9HNWNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lIVnpaVU5oYkd4aVlXTnJMRnh1SUNCMWMyVkZabVpsWTNRc1hHNGdJSFZ6WlV4aGVXOTFkRVZtWm1WamRDeGNiaUFnZFhObFVtVm1MRnh1SUNCMWMyVlRkR0YwWlN4Y2JuMGdabkp2YlNCY0luSmxZV04wWENJN1hHNXBiWEJ2Y25RZ1kyeHplQ0JtY205dElGd2lZMnh6ZUZ3aU8xeHVhVzF3YjNKMElIc2dTMFZaVXlCOUlHWnliMjBnWENJdUxpOXJaWGx6WENJN1hHNXBiWEJ2Y25RZ2V5QkVSVVpCVlV4VVgweEpUa3RmVTBsYVJTQjlJR1p5YjIwZ1hDSXVMaTl5Wlc1a1pYSmxjaTl5Wlc1a1pYSkZiR1Z0Wlc1MFhDSTdYRzVwYlhCdmNuUWdleUJ5YjNSaGRHVWdmU0JtY205dElGd2lMaTR2YldGMGFGd2lPMXh1YVcxd2IzSjBJSHNnUlZaRlRsUXNJRWhaVUVWU1RFbE9TMTlVVDA5TVZFbFFYMFJGVEVGWkxDQk5TVTFGWDFSWlVFVlRJSDBnWm5KdmJTQmNJaTR1TDJOdmJuTjBZVzUwYzF3aU8xeHVhVzF3YjNKMElIc2dRbTkxYm1SeklIMGdabkp2YlNCY0lpNHZZbTkxYm1SelhDSTdYRzVwYlhCdmNuUWdleUJuWlhSVWIyOXNkR2x3UkdsMkxDQjFjR1JoZEdWVWIyOXNkR2x3VUc5emFYUnBiMjRnZlNCbWNtOXRJRndpTGk0dlkyOXRjRzl1Wlc1MGN5OVViMjlzZEdsd1hDSTdYRzVwYlhCdmNuUWdleUJuWlhSVFpXeGxZM1JsWkVWc1pXMWxiblJ6SUgwZ1puSnZiU0JjSWk0dUwzTmpaVzVsWENJN1hHNXBiWEJ2Y25RZ2V5QnBjMUJ2YVc1MFNHbDBkR2x1WjBWc1pXMWxiblJDYjNWdVpHbHVaMEp2ZUNCOUlHWnliMjBnWENJdUwyTnZiR3hwYzJsdmJsd2lPMXh1YVcxd2IzSjBJSHNnWjJWMFJXeGxiV1Z1ZEVGaWMyOXNkWFJsUTI5dmNtUnpJSDBnWm5KdmJTQmNJaTR2WENJN1hHNWNibWx0Y0c5eWRDQmNJaTR2U0hsd1pYSnNhVzVyTG5OamMzTmNJanRjYmx4dVkyOXVjM1FnUTA5T1ZFRkpUa1ZTWDFkSlJGUklJRDBnTXpJd08xeHVZMjl1YzNRZ1UxQkJRMFZmUWs5VVZFOU5JRDBnT0RVN1hHNWpiMjV6ZENCRFQwNVVRVWxPUlZKZlVFRkVSRWxPUnlBOUlEVTdYRzVqYjI1emRDQkRUMDVVUVVsT1JWSmZTRVZKUjBoVUlEMGdOREk3WEc1amIyNXpkQ0JCVlZSUFgwaEpSRVZmVkVsTlJVOVZWQ0E5SURVd01EdGNibHh1Wlhod2IzSjBJR052Ym5OMElFVllWRVZTVGtGTVgweEpUa3RmU1UxSElEMGdaRzlqZFcxbGJuUXVZM0psWVhSbFJXeGxiV1Z1ZENoY0ltbHRaMXdpS1R0Y2JrVllWRVZTVGtGTVgweEpUa3RmU1UxSExuTnlZeUE5SUdCa1lYUmhPaVI3VFVsTlJWOVVXVkJGVXk1emRtZDlMQ0FrZTJWdVkyOWtaVlZTU1VOdmJYQnZibVZ1ZENoY2JpQWdZRHh6ZG1jZ2VHMXNibk05WENKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWjF3aUlIZHBaSFJvUFZ3aU1UWmNJaUJvWldsbmFIUTlYQ0l4Tmx3aUlIWnBaWGRDYjNnOVhDSXdJREFnTWpRZ01qUmNJaUJtYVd4c1BWd2libTl1WlZ3aUlITjBjbTlyWlQxY0lpTXhPVGN4WXpKY0lpQnpkSEp2YTJVdGQybGtkR2c5WENJeVhDSWdjM1J5YjJ0bExXeHBibVZqWVhBOVhDSnliM1Z1WkZ3aUlITjBjbTlyWlMxc2FXNWxhbTlwYmoxY0luSnZkVzVrWENJZ1kyeGhjM005WENKbVpXRjBhR1Z5SUdabFlYUm9aWEl0WlhoMFpYSnVZV3d0YkdsdWExd2lQanh3WVhSb0lHUTlYQ0pOTVRnZ01UTjJObUV5SURJZ01DQXdJREV0TWlBeVNEVmhNaUF5SURBZ01DQXhMVEl0TWxZNFlUSWdNaUF3SURBZ01TQXlMVEpvTmx3aVBqd3ZjR0YwYUQ0OGNHOXNlV3hwYm1VZ2NHOXBiblJ6UFZ3aU1UVWdNeUF5TVNBeklESXhJRGxjSWo0OEwzQnZiSGxzYVc1bFBqeHNhVzVsSUhneFBWd2lNVEJjSWlCNU1UMWNJakUwWENJZ2VESTlYQ0l5TVZ3aUlIa3lQVndpTTF3aVBqd3ZiR2x1WlQ0OEwzTjJaejVnTEZ4dUtYMWdPMXh1WEc1c1pYUWdTVk5mU0ZsUVJWSk1TVTVMWDFSUFQweFVTVkJmVmtsVFNVSk1SU0E5SUdaaGJITmxPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdTSGx3WlhKc2FXNXJJRDBnS0h0Y2JpQWdaV3hsYldWdWRDeGNiaUFnWVhCd1UzUmhkR1VzWEc0Z0lITmxkRUZ3Y0ZOMFlYUmxMRnh1SUNCdmJreHBibXRQY0dWdUxGeHVmVG9nZTF4dUlDQmxiR1Z0Wlc1ME9pQk9iMjVFWld4bGRHVmtSWGhqWVd4cFpISmhkMFZzWlcxbGJuUTdYRzRnSUdGd2NGTjBZWFJsT2lCQmNIQlRkR0YwWlR0Y2JpQWdjMlYwUVhCd1UzUmhkR1U2SUZKbFlXTjBMa052YlhCdmJtVnVkRHhoYm5rc0lFRndjRk4wWVhSbFBsdGNJbk5sZEZOMFlYUmxYQ0pkTzF4dUlDQnZia3hwYm10UGNHVnVPaUJGZUdOaGJHbGtjbUYzVUhKdmNITmJYQ0p2Ymt4cGJtdFBjR1Z1WENKZE8xeHVmU2tnUFQ0Z2UxeHVJQ0JqYjI1emRDQnNhVzVyVm1Gc0lEMGdaV3hsYldWdWRDNXNhVzVySUh4OElGd2lYQ0k3WEc1Y2JpQWdZMjl1YzNRZ1cybHVjSFYwVm1Gc0xDQnpaWFJKYm5CMWRGWmhiRjBnUFNCMWMyVlRkR0YwWlNoc2FXNXJWbUZzS1R0Y2JpQWdZMjl1YzNRZ2FXNXdkWFJTWldZZ1BTQjFjMlZTWldZOFNGUk5URWx1Y0hWMFJXeGxiV1Z1ZEQ0b2JuVnNiQ2s3WEc0Z0lHTnZibk4wSUdselJXUnBkR2x1WnlBOUlHRndjRk4wWVhSbExuTm9iM2RJZVhCbGNteHBibXRRYjNCMWNDQTlQVDBnWENKbFpHbDBiM0pjSWlCOGZDQWhiR2x1YTFaaGJEdGNibHh1SUNCamIyNXpkQ0JvWVc1a2JHVlRkV0p0YVhRZ1BTQjFjMlZEWVd4c1ltRmpheWdvS1NBOVBpQjdYRzRnSUNBZ2FXWWdLQ0ZwYm5CMWRGSmxaaTVqZFhKeVpXNTBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYkdsdWF5QTlJRzV2Y20xaGJHbDZaVXhwYm1zb2FXNXdkWFJTWldZdVkzVnljbVZ1ZEM1MllXeDFaU2s3WEc1Y2JpQWdJQ0J0ZFhSaGRHVkZiR1Z0Wlc1MEtHVnNaVzFsYm5Rc0lIc2diR2x1YXlCOUtUdGNiaUFnSUNCelpYUkJjSEJUZEdGMFpTaDdJSE5vYjNkSWVYQmxjbXhwYm10UWIzQjFjRG9nWENKcGJtWnZYQ0lnZlNrN1hHNGdJSDBzSUZ0bGJHVnRaVzUwTENCelpYUkJjSEJUZEdGMFpWMHBPMXh1WEc0Z0lIVnpaVXhoZVc5MWRFVm1abVZqZENnb0tTQTlQaUI3WEc0Z0lDQWdjbVYwZFhKdUlDZ3BJRDArSUh0Y2JpQWdJQ0FnSUdoaGJtUnNaVk4xWW0xcGRDZ3BPMXh1SUNBZ0lIMDdYRzRnSUgwc0lGdG9ZVzVrYkdWVGRXSnRhWFJkS1R0Y2JseHVJQ0IxYzJWRlptWmxZM1FvS0NrZ1BUNGdlMXh1SUNBZ0lHeGxkQ0IwYVcxbGIzVjBTV1E2SUc1MWJXSmxjaUI4SUc1MWJHd2dQU0J1ZFd4c08xeHVJQ0FnSUdOdmJuTjBJR2hoYm1Sc1pWQnZhVzUwWlhKTmIzWmxJRDBnS0dWMlpXNTBPaUJRYjJsdWRHVnlSWFpsYm5RcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNocGMwVmthWFJwYm1jcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLSFJwYldWdmRYUkpaQ2tnZTF4dUlDQWdJQ0FnSUNCamJHVmhjbFJwYldWdmRYUW9kR2x0Wlc5MWRFbGtLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR052Ym5OMElITm9iM1ZzWkVocFpHVWdQU0J6YUc5MWJHUklhV1JsVEdsdWExQnZjSFZ3S0dWc1pXMWxiblFzSUdGd2NGTjBZWFJsTENCYlhHNGdJQ0FnSUNBZ0lHVjJaVzUwTG1Oc2FXVnVkRmdzWEc0Z0lDQWdJQ0FnSUdWMlpXNTBMbU5zYVdWdWRGa3NYRzRnSUNBZ0lDQmRLU0JoY3lCaWIyOXNaV0Z1TzF4dUlDQWdJQ0FnYVdZZ0tITm9iM1ZzWkVocFpHVXBJSHRjYmlBZ0lDQWdJQ0FnZEdsdFpXOTFkRWxrSUQwZ2QybHVaRzkzTG5ObGRGUnBiV1Z2ZFhRb0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lITmxkRUZ3Y0ZOMFlYUmxLSHNnYzJodmQwaDVjR1Z5YkdsdWExQnZjSFZ3T2lCbVlXeHpaU0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZTd2dRVlZVVDE5SVNVUkZYMVJKVFVWUFZWUXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMDdYRzRnSUNBZ2QybHVaRzkzTG1Ga1pFVjJaVzUwVEdsemRHVnVaWElvUlZaRlRsUXVVRTlKVGxSRlVsOU5UMVpGTENCb1lXNWtiR1ZRYjJsdWRHVnlUVzkyWlN3Z1ptRnNjMlVwTzF4dUlDQWdJSEpsZEhWeWJpQW9LU0E5UGlCN1hHNGdJQ0FnSUNCM2FXNWtiM2N1Y21WdGIzWmxSWFpsYm5STWFYTjBaVzVsY2loRlZrVk9WQzVRVDBsT1ZFVlNYMDFQVmtVc0lHaGhibVJzWlZCdmFXNTBaWEpOYjNabExDQm1ZV3h6WlNrN1hHNGdJQ0FnSUNCcFppQW9kR2x0Wlc5MWRFbGtLU0I3WEc0Z0lDQWdJQ0FnSUdOc1pXRnlWR2x0Wlc5MWRDaDBhVzFsYjNWMFNXUXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMDdYRzRnSUgwc0lGdGhjSEJUZEdGMFpTd2daV3hsYldWdWRDd2dhWE5GWkdsMGFXNW5MQ0J6WlhSQmNIQlRkR0YwWlYwcE8xeHVYRzRnSUdOdmJuTjBJR2hoYm1Sc1pWSmxiVzkyWlNBOUlIVnpaVU5oYkd4aVlXTnJLQ2dwSUQwK0lIdGNiaUFnSUNCdGRYUmhkR1ZGYkdWdFpXNTBLR1ZzWlcxbGJuUXNJSHNnYkdsdWF6b2diblZzYkNCOUtUdGNiaUFnSUNCcFppQW9hWE5GWkdsMGFXNW5LU0I3WEc0Z0lDQWdJQ0JwYm5CMWRGSmxaaTVqZFhKeVpXNTBJUzUyWVd4MVpTQTlJRndpWENJN1hHNGdJQ0FnZlZ4dUlDQWdJSE5sZEVGd2NGTjBZWFJsS0hzZ2MyaHZkMGg1Y0dWeWJHbHVhMUJ2Y0hWd09pQm1ZV3h6WlNCOUtUdGNiaUFnZlN3Z1czTmxkRUZ3Y0ZOMFlYUmxMQ0JsYkdWdFpXNTBMQ0JwYzBWa2FYUnBibWRkS1R0Y2JseHVJQ0JqYjI1emRDQnZia1ZrYVhRZ1BTQW9LU0E5UGlCN1hHNGdJQ0FnYzJWMFFYQndVM1JoZEdVb2V5QnphRzkzU0hsd1pYSnNhVzVyVUc5d2RYQTZJRndpWldScGRHOXlYQ0lnZlNrN1hHNGdJSDA3WEc0Z0lHTnZibk4wSUhzZ2VDd2dlU0I5SUQwZ1oyVjBRMjl2Y21SelJtOXlVRzl3YjNabGNpaGxiR1Z0Wlc1MExDQmhjSEJUZEdGMFpTazdYRzRnSUdsbUlDaGNiaUFnSUNCaGNIQlRkR0YwWlM1a2NtRm5aMmx1WjBWc1pXMWxiblFnZkh4Y2JpQWdJQ0JoY0hCVGRHRjBaUzV5WlhOcGVtbHVaMFZzWlcxbGJuUWdmSHhjYmlBZ0lDQmhjSEJUZEdGMFpTNXBjMUp2ZEdGMGFXNW5JSHg4WEc0Z0lDQWdZWEJ3VTNSaGRHVXViM0JsYmsxbGJuVmNiaUFnS1NCN1hHNGdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUNoY2JpQWdJQ0E4WkdsMlhHNGdJQ0FnSUNCamJHRnpjMDVoYldVOVhDSmxlR05oYkdsa2NtRjNMV2g1Y0dWeWJHbHVhME52Ym5SaGFXNWxjbHdpWEc0Z0lDQWdJQ0J6ZEhsc1pUMTdlMXh1SUNBZ0lDQWdJQ0IwYjNBNklHQWtlM2w5Y0hoZ0xGeHVJQ0FnSUNBZ0lDQnNaV1owT2lCZ0pIdDRmWEI0WUN4Y2JpQWdJQ0FnSUNBZ2QybGtkR2c2SUVOUFRsUkJTVTVGVWw5WFNVUlVTQ3hjYmlBZ0lDQWdJQ0FnY0dGa1pHbHVaem9nUTA5T1ZFRkpUa1ZTWDFCQlJFUkpUa2NzWEc0Z0lDQWdJQ0I5ZlZ4dUlDQWdJRDVjYmlBZ0lDQWdJSHRwYzBWa2FYUnBibWNnUHlBb1hHNGdJQ0FnSUNBZ0lEeHBibkIxZEZ4dUlDQWdJQ0FnSUNBZ0lHTnNZWE56VG1GdFpUMTdZMnh6ZUNoY0ltVjRZMkZzYVdSeVlYY3RhSGx3WlhKc2FXNXJRMjl1ZEdGcGJtVnlMV2x1Y0hWMFhDSXBmVnh1SUNBZ0lDQWdJQ0FnSUhCc1lXTmxhRzlzWkdWeVBWd2lWSGx3WlNCdmNpQndZWE4wWlNCNWIzVnlJR3hwYm1zZ2FHVnlaVndpWEc0Z0lDQWdJQ0FnSUNBZ2NtVm1QWHRwYm5CMWRGSmxabjFjYmlBZ0lDQWdJQ0FnSUNCMllXeDFaVDE3YVc1d2RYUldZV3g5WEc0Z0lDQWdJQ0FnSUNBZ2IyNURhR0Z1WjJVOWV5aGxkbVZ1ZENrZ1BUNGdjMlYwU1c1d2RYUldZV3dvWlhabGJuUXVkR0Z5WjJWMExuWmhiSFZsS1gxY2JpQWdJQ0FnSUNBZ0lDQmhkWFJ2Um05amRYTmNiaUFnSUNBZ0lDQWdJQ0J2Ymt0bGVVUnZkMjQ5ZXlobGRtVnVkQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWlhabGJuUXVjM1J2Y0ZCeWIzQmhaMkYwYVc5dUtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QndjbVYyWlc1MElHTnRaQzlqZEhKc0syc2djMmh2Y25SamRYUWdkMmhsYmlCbFpHbDBhVzVuSUd4cGJtdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaGxkbVZ1ZEZ0TFJWbFRMa05VVWt4ZlQxSmZRMDFFWFNBbUppQmxkbVZ1ZEM1clpYa2dQVDA5SUV0RldWTXVTeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JsZG1WdWRDNXdjbVYyWlc1MFJHVm1ZWFZzZENncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dWMlpXNTBMbXRsZVNBOVBUMGdTMFZaVXk1RlRsUkZVaUI4ZkNCbGRtVnVkQzVyWlhrZ1BUMDlJRXRGV1ZNdVJWTkRRVkJGS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdoaGJtUnNaVk4xWW0xcGRDZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJSDE5WEc0Z0lDQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBcElEb2dLRnh1SUNBZ0lDQWdJQ0E4WVZ4dUlDQWdJQ0FnSUNBZ0lHaHlaV1k5ZTJWc1pXMWxiblF1YkdsdWF5QjhmQ0JjSWx3aWZWeHVJQ0FnSUNBZ0lDQWdJR05zWVhOelRtRnRaVDE3WTJ4emVDaGNJbVY0WTJGc2FXUnlZWGN0YUhsd1pYSnNhVzVyUTI5dWRHRnBibVZ5TFd4cGJtdGNJaXdnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdYQ0prTFc1dmJtVmNJam9nYVhORlpHbDBhVzVuTEZ4dUlDQWdJQ0FnSUNBZ0lIMHBmVnh1SUNBZ0lDQWdJQ0FnSUhSaGNtZGxkRDE3YVhOTWIyTmhiRXhwYm1zb1pXeGxiV1Z1ZEM1c2FXNXJLU0EvSUZ3aVgzTmxiR1pjSWlBNklGd2lYMkpzWVc1clhDSjlYRzRnSUNBZ0lDQWdJQ0FnYjI1RGJHbGphejE3S0dWMlpXNTBLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1pXeGxiV1Z1ZEM1c2FXNXJJQ1ltSUc5dVRHbHVhMDl3Wlc0cElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWTNWemRHOXRSWFpsYm5RZ1BTQjNjbUZ3UlhabGJuUW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdSVlpGVGxRdVJWaERRVXhKUkZKQlYxOU1TVTVMTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWMlpXNTBMbTVoZEdsMlpVVjJaVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J2Ymt4cGJtdFBjR1Z1S0dWc1pXMWxiblFzSUdOMWMzUnZiVVYyWlc1MEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR04xYzNSdmJVVjJaVzUwTG1SbFptRjFiSFJRY21WMlpXNTBaV1FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGRtVnVkQzV3Y21WMlpXNTBSR1ZtWVhWc2RDZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdmWDFjYmlBZ0lDQWdJQ0FnSUNCeVpXdzlYQ0p1YjI5d1pXNWxjaUJ1YjNKbFptVnljbVZ5WENKY2JpQWdJQ0FnSUNBZ1BseHVJQ0FnSUNBZ0lDQWdJSHRsYkdWdFpXNTBMbXhwYm10OVhHNGdJQ0FnSUNBZ0lEd3ZZVDVjYmlBZ0lDQWdJQ2w5WEc0Z0lDQWdJQ0E4WkdsMklHTnNZWE56VG1GdFpUMWNJbVY0WTJGc2FXUnlZWGN0YUhsd1pYSnNhVzVyUTI5dWRHRnBibVZ5WDE5aWRYUjBiMjV6WENJK1hHNGdJQ0FnSUNBZ0lIc2hhWE5GWkdsMGFXNW5JQ1ltSUNoY2JpQWdJQ0FnSUNBZ0lDQThWRzl2YkVKMWRIUnZibHh1SUNBZ0lDQWdJQ0FnSUNBZ2RIbHdaVDFjSW1KMWRIUnZibHdpWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhWFJzWlQxN2RDaGNJbUoxZEhSdmJuTXVaV1JwZEZ3aUtYMWNiaUFnSUNBZ0lDQWdJQ0FnSUdGeWFXRXRiR0ZpWld3OWUzUW9YQ0ppZFhSMGIyNXpMbVZrYVhSY0lpbDlYRzRnSUNBZ0lDQWdJQ0FnSUNCc1lXSmxiRDE3ZENoY0ltSjFkSFJ2Ym5NdVpXUnBkRndpS1gxY2JpQWdJQ0FnSUNBZ0lDQWdJRzl1UTJ4cFkyczllMjl1UldScGRIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdOc1lYTnpUbUZ0WlQxY0ltVjRZMkZzYVdSeVlYY3RhSGx3WlhKc2FXNXJRMjl1ZEdGcGJtVnlMUzFsWkdsMFhDSmNiaUFnSUNBZ0lDQWdJQ0FnSUdsamIyNDllMlZrYVhSSlkyOXVmVnh1SUNBZ0lDQWdJQ0FnSUM4K1hHNGdJQ0FnSUNBZ0lDbDlYRzVjYmlBZ0lDQWdJQ0FnZTJ4cGJtdFdZV3dnSmlZZ0tGeHVJQ0FnSUNBZ0lDQWdJRHhVYjI5c1FuVjBkRzl1WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBlWEJsUFZ3aVluVjBkRzl1WENKY2JpQWdJQ0FnSUNBZ0lDQWdJSFJwZEd4bFBYdDBLRndpWW5WMGRHOXVjeTV5WlcxdmRtVmNJaWw5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmhjbWxoTFd4aFltVnNQWHQwS0Z3aVluVjBkRzl1Y3k1eVpXMXZkbVZjSWlsOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JzWVdKbGJEMTdkQ2hjSW1KMWRIUnZibk11Y21WdGIzWmxYQ0lwZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdiMjVEYkdsamF6MTdhR0Z1Wkd4bFVtVnRiM1psZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMnhoYzNOT1lXMWxQVndpWlhoallXeHBaSEpoZHkxb2VYQmxjbXhwYm10RGIyNTBZV2x1WlhJdExYSmxiVzkyWlZ3aVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWTI5dVBYdDBjbUZ6YUgxY2JpQWdJQ0FnSUNBZ0lDQXZQbHh1SUNBZ0lDQWdJQ0FwZlZ4dUlDQWdJQ0FnUEM5a2FYWStYRzRnSUNBZ1BDOWthWFkrWEc0Z0lDazdYRzU5TzF4dVhHNWpiMjV6ZENCblpYUkRiMjl5WkhOR2IzSlFiM0J2ZG1WeUlEMGdLRnh1SUNCbGJHVnRaVzUwT2lCT2IyNUVaV3hsZEdWa1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5Rc1hHNGdJR0Z3Y0ZOMFlYUmxPaUJCY0hCVGRHRjBaU3hjYmlrZ1BUNGdlMXh1SUNCamIyNXpkQ0JiZURFc0lIa3hYU0E5SUdkbGRFVnNaVzFsYm5SQlluTnZiSFYwWlVOdmIzSmtjeWhsYkdWdFpXNTBLVHRjYmlBZ1kyOXVjM1FnZXlCNE9pQjJhV1YzY0c5eWRGZ3NJSGs2SUhacFpYZHdiM0owV1NCOUlEMGdjMk5sYm1WRGIyOXlaSE5VYjFacFpYZHdiM0owUTI5dmNtUnpLRnh1SUNBZ0lIc2djMk5sYm1WWU9pQjRNU0FySUdWc1pXMWxiblF1ZDJsa2RHZ2dMeUF5TENCelkyVnVaVms2SUhreElIMHNYRzRnSUNBZ1lYQndVM1JoZEdVc1hHNGdJQ2s3WEc0Z0lHTnZibk4wSUhnZ1BTQjJhV1YzY0c5eWRGZ2dMU0JoY0hCVGRHRjBaUzV2Wm1aelpYUk1aV1owSUMwZ1EwOU9WRUZKVGtWU1gxZEpSRlJJSUM4Z01qdGNiaUFnWTI5dWMzUWdlU0E5SUhacFpYZHdiM0owV1NBdElHRndjRk4wWVhSbExtOW1abk5sZEZSdmNDQXRJRk5RUVVORlgwSlBWRlJQVFR0Y2JpQWdjbVYwZFhKdUlIc2dlQ3dnZVNCOU8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRzV2Y20xaGJHbDZaVXhwYm1zZ1BTQW9iR2x1YXpvZ2MzUnlhVzVuS1NBOVBpQjdYRzRnSUd4cGJtc2dQU0JzYVc1ckxuUnlhVzBvS1R0Y2JpQWdhV1lnS0d4cGJtc3BJSHRjYmlBZ0lDQXZMeUJ3Y21WbWFYZ2dkMmwwYUNCd2NtOTBiMk52YkNCcFppQnViM1FnWm5Wc2JIa3RjWFZoYkdsbWFXVmtYRzRnSUNBZ2FXWWdLQ0ZzYVc1ckxtbHVZMngxWkdWektGd2lPaTh2WENJcElDWW1JQ0V2WGx0YlhGeGNYQzlkTHk1MFpYTjBLR3hwYm1zcEtTQjdYRzRnSUNBZ0lDQnNhVzVySUQwZ1lHaDBkSEJ6T2k4dkpIdHNhVzVyZldBN1hHNGdJQ0FnZlZ4dUlDQjlYRzRnSUhKbGRIVnliaUJzYVc1ck8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2x6VEc5allXeE1hVzVySUQwZ0tHeHBibXM2SUhOMGNtbHVaeUI4SUc1MWJHd3BJRDArSUh0Y2JpQWdjbVYwZFhKdUlDRWhLR3hwYm1zL0xtbHVZMngxWkdWektHeHZZMkYwYVc5dUxtOXlhV2RwYmlrZ2ZId2diR2x1YXo4dWMzUmhjblJ6VjJsMGFDaGNJaTljSWlrcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR0ZqZEdsdmJreHBibXNnUFNCeVpXZHBjM1JsY2loN1hHNGdJRzVoYldVNklGd2liR2x1YTF3aUxGeHVJQ0J3WlhKbWIzSnRPaUFvWld4bGJXVnVkSE1zSUdGd2NGTjBZWFJsS1NBOVBpQjdYRzRnSUNBZ2FXWWdLR0Z3Y0ZOMFlYUmxMbk5vYjNkSWVYQmxjbXhwYm10UWIzQjFjQ0E5UFQwZ1hDSmxaR2wwYjNKY0lpa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ1pXeGxiV1Z1ZEhNc1hHNGdJQ0FnSUNCaGNIQlRkR0YwWlRvZ2UxeHVJQ0FnSUNBZ0lDQXVMaTVoY0hCVGRHRjBaU3hjYmlBZ0lDQWdJQ0FnYzJodmQwaDVjR1Z5YkdsdWExQnZjSFZ3T2lCY0ltVmthWFJ2Y2x3aUxGeHVJQ0FnSUNBZ0lDQnZjR1Z1VFdWdWRUb2diblZzYkN4Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCamIyMXRhWFJVYjBocGMzUnZjbms2SUhSeWRXVXNYRzRnSUNBZ2ZUdGNiaUFnZlN4Y2JpQWdhMlY1VkdWemREb2dLR1YyWlc1MEtTQTlQaUJsZG1WdWRGdExSVmxUTGtOVVVreGZUMUpmUTAxRVhTQW1KaUJsZG1WdWRDNXJaWGtnUFQwOUlFdEZXVk11U3l4Y2JpQWdZMjl1ZEdWNGRFbDBaVzFNWVdKbGJEb2dLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU2tnUFQ1Y2JpQWdJQ0JuWlhSRGIyNTBaWGgwVFdWdWRVeGhZbVZzS0dWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlNrc1hHNGdJR052Ym5SbGVIUkpkR1Z0VUhKbFpHbGpZWFJsT2lBb1pXeGxiV1Z1ZEhNc0lHRndjRk4wWVhSbEtTQTlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2MyVnNaV04wWldSRmJHVnRaVzUwY3lBOUlHZGxkRk5sYkdWamRHVmtSV3hsYldWdWRITW9aV3hsYldWdWRITXNJR0Z3Y0ZOMFlYUmxLVHRjYmlBZ0lDQnlaWFIxY200Z2MyVnNaV04wWldSRmJHVnRaVzUwY3k1c1pXNW5kR2dnUFQwOUlERTdYRzRnSUgwc1hHNGdJRkJoYm1Wc1EyOXRjRzl1Wlc1ME9pQW9leUJsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VzSUhWd1pHRjBaVVJoZEdFZ2ZTa2dQVDRnZTF4dUlDQWdJR052Ym5OMElITmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNZ1BTQm5aWFJUWld4bFkzUmxaRVZzWlcxbGJuUnpLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lDQWdQRlJ2YjJ4Q2RYUjBiMjVjYmlBZ0lDQWdJQ0FnZEhsd1pUMWNJbUoxZEhSdmJsd2lYRzRnSUNBZ0lDQWdJR2xqYjI0OWUyeHBibXQ5WEc0Z0lDQWdJQ0FnSUdGeWFXRXRiR0ZpWld3OWUzUW9aMlYwUTI5dWRHVjRkRTFsYm5WTVlXSmxiQ2hsYkdWdFpXNTBjeXdnWVhCd1UzUmhkR1VwS1gxY2JpQWdJQ0FnSUNBZ2RHbDBiR1U5ZTJBa2UzUW9YQ0pzWVdKbGJITXViR2x1YXk1c1lXSmxiRndpS1gwZ0xTQWtlMmRsZEZOb2IzSjBZM1YwUzJWNUtGd2lRM1J5YkU5eVEyMWtLMHRjSWlsOVlIMWNiaUFnSUNBZ0lDQWdiMjVEYkdsamF6MTdLQ2tnUFQ0Z2RYQmtZWFJsUkdGMFlTaHVkV3hzS1gxY2JpQWdJQ0FnSUNBZ2MyVnNaV04wWldROWUzTmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNdWJHVnVaM1JvSUQwOVBTQXhJQ1ltSUNFaGMyVnNaV04wWldSRmJHVnRaVzUwYzFzd1hTNXNhVzVyZlZ4dUlDQWdJQ0FnTHo1Y2JpQWdJQ0FwTzF4dUlDQjlMRnh1ZlNrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCblpYUkRiMjUwWlhoMFRXVnVkVXhoWW1Wc0lEMGdLRnh1SUNCbGJHVnRaVzUwY3pvZ2NtVmhaRzl1YkhrZ1RtOXVSR1ZzWlhSbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMHNYRzRnSUdGd2NGTjBZWFJsT2lCQmNIQlRkR0YwWlN4Y2Jpa2dQVDRnZTF4dUlDQmpiMjV6ZENCelpXeGxZM1JsWkVWc1pXMWxiblJ6SUQwZ1oyVjBVMlZzWldOMFpXUkZiR1Z0Wlc1MGN5aGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXBPMXh1SUNCamIyNXpkQ0JzWVdKbGJDQTlJSE5sYkdWamRHVmtSV3hsYldWdWRITmJNRjBoTG14cGJtdGNiaUFnSUNBL0lGd2liR0ZpWld4ekxteHBibXN1WldScGRGd2lYRzRnSUNBZ09pQmNJbXhoWW1Wc2N5NXNhVzVyTG1OeVpXRjBaVndpTzF4dUlDQnlaWFIxY200Z2JHRmlaV3c3WEc1OU8xeHVaWGh3YjNKMElHTnZibk4wSUdkbGRFeHBibXRJWVc1a2JHVkdjbTl0UTI5dmNtUnpJRDBnS0Z4dUlDQmJlREVzSUhreExDQjRNaXdnZVRKZE9pQkNiM1Z1WkhNc1hHNGdJR0Z1WjJ4bE9pQnVkVzFpWlhJc1hHNGdJR0Z3Y0ZOMFlYUmxPaUJCY0hCVGRHRjBaU3hjYmlrNklGdDRPaUJ1ZFcxaVpYSXNJSGs2SUc1MWJXSmxjaXdnZDJsa2RHZzZJRzUxYldKbGNpd2dhR1ZwWjJoME9pQnVkVzFpWlhKZElEMCtJSHRjYmlBZ1kyOXVjM1FnYzJsNlpTQTlJRVJGUmtGVlRGUmZURWxPUzE5VFNWcEZPMXh1SUNCamIyNXpkQ0JzYVc1clYybGtkR2dnUFNCemFYcGxJQzhnWVhCd1UzUmhkR1V1ZW05dmJTNTJZV3gxWlR0Y2JpQWdZMjl1YzNRZ2JHbHVhMGhsYVdkb2RDQTlJSE5wZW1VZ0x5QmhjSEJUZEdGMFpTNTZiMjl0TG5aaGJIVmxPMXh1SUNCamIyNXpkQ0JzYVc1clRXRnlaMmx1V1NBOUlITnBlbVVnTHlCaGNIQlRkR0YwWlM1NmIyOXRMblpoYkhWbE8xeHVJQ0JqYjI1emRDQmpaVzUwWlhKWUlEMGdLSGd4SUNzZ2VESXBJQzhnTWp0Y2JpQWdZMjl1YzNRZ1kyVnVkR1Z5V1NBOUlDaDVNU0FySUhreUtTQXZJREk3WEc0Z0lHTnZibk4wSUdObGJuUmxjbWx1WjA5bVpuTmxkQ0E5SUNoemFYcGxJQzBnT0NrZ0x5QW9NaUFxSUdGd2NGTjBZWFJsTG5wdmIyMHVkbUZzZFdVcE8xeHVJQ0JqYjI1emRDQmtZWE5vWldSTWFXNWxUV0Z5WjJsdUlEMGdOQ0F2SUdGd2NGTjBZWFJsTG5wdmIyMHVkbUZzZFdVN1hHNWNiaUFnTHk4Z1UyRnRaU0JoY3lCZ2JtVmdJSEpsYzJsNlpTQm9ZVzVrYkdWY2JpQWdZMjl1YzNRZ2VDQTlJSGd5SUNzZ1pHRnphR1ZrVEdsdVpVMWhjbWRwYmlBdElHTmxiblJsY21sdVowOW1abk5sZER0Y2JpQWdZMjl1YzNRZ2VTQTlJSGt4SUMwZ1pHRnphR1ZrVEdsdVpVMWhjbWRwYmlBdElHeHBibXROWVhKbmFXNVpJQ3NnWTJWdWRHVnlhVzVuVDJabWMyVjBPMXh1WEc0Z0lHTnZibk4wSUZ0eWIzUmhkR1ZrV0N3Z2NtOTBZWFJsWkZsZElEMGdjbTkwWVhSbEtGeHVJQ0FnSUhnZ0t5QnNhVzVyVjJsa2RHZ2dMeUF5TEZ4dUlDQWdJSGtnS3lCc2FXNXJTR1ZwWjJoMElDOGdNaXhjYmlBZ0lDQmpaVzUwWlhKWUxGeHVJQ0FnSUdObGJuUmxjbGtzWEc0Z0lDQWdZVzVuYkdVc1hHNGdJQ2s3WEc0Z0lISmxkSFZ5YmlCYlhHNGdJQ0FnY205MFlYUmxaRmdnTFNCc2FXNXJWMmxrZEdnZ0x5QXlMRnh1SUNBZ0lISnZkR0YwWldSWklDMGdiR2x1YTBobGFXZG9kQ0F2SURJc1hHNGdJQ0FnYkdsdWExZHBaSFJvTEZ4dUlDQWdJR3hwYm10SVpXbG5hSFFzWEc0Z0lGMDdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYVhOUWIybHVkRWhwZEhScGJtZE1hVzVyU1dOdmJpQTlJQ2hjYmlBZ1pXeGxiV1Z1ZERvZ1RtOXVSR1ZzWlhSbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MExGeHVJQ0JoY0hCVGRHRjBaVG9nUVhCd1UzUmhkR1VzWEc0Z0lGdDRMQ0I1WFRvZ1VHOXBiblFzWEc0Z0lHbHpUVzlpYVd4bE9pQmliMjlzWldGdUxGeHVLU0E5UGlCN1hHNGdJR052Ym5OMElIUm9jbVZ6YUc5c1pDQTlJRFFnTHlCaGNIQlRkR0YwWlM1NmIyOXRMblpoYkhWbE8xeHVJQ0JwWmlBb1hHNGdJQ0FnSVdselRXOWlhV3hsSUNZbVhHNGdJQ0FnWVhCd1UzUmhkR1V1ZG1sbGQwMXZaR1ZGYm1GaWJHVmtJQ1ltWEc0Z0lDQWdhWE5RYjJsdWRFaHBkSFJwYm1kRmJHVnRaVzUwUW05MWJtUnBibWRDYjNnb1pXeGxiV1Z1ZEN3Z1czZ3NJSGxkTENCMGFISmxjMmh2YkdRcFhHNGdJQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBjblZsTzF4dUlDQjlYRzRnSUdOdmJuTjBJRnQ0TVN3Z2VURXNJSGd5TENCNU1sMGdQU0JuWlhSRmJHVnRaVzUwUVdKemIyeDFkR1ZEYjI5eVpITW9aV3hsYldWdWRDazdYRzVjYmlBZ1kyOXVjM1FnVzJ4cGJtdFlMQ0JzYVc1cldTd2diR2x1YTFkcFpIUm9MQ0JzYVc1clNHVnBaMmgwWFNBOUlHZGxkRXhwYm10SVlXNWtiR1ZHY205dFEyOXZjbVJ6S0Z4dUlDQWdJRnQ0TVN3Z2VURXNJSGd5TENCNU1sMHNYRzRnSUNBZ1pXeGxiV1Z1ZEM1aGJtZHNaU3hjYmlBZ0lDQmhjSEJUZEdGMFpTeGNiaUFnS1R0Y2JpQWdZMjl1YzNRZ2FHbDBUR2x1YXlBOVhHNGdJQ0FnZUNBK0lHeHBibXRZSUMwZ2RHaHlaWE5vYjJ4a0lDWW1YRzRnSUNBZ2VDQThJR3hwYm10WUlDc2dkR2h5WlhOb2IyeGtJQ3NnYkdsdWExZHBaSFJvSUNZbVhHNGdJQ0FnZVNBK0lHeHBibXRaSUMwZ2RHaHlaWE5vYjJ4a0lDWW1YRzRnSUNBZ2VTQThJR3hwYm10WklDc2diR2x1YTBobGFXZG9kQ0FySUhSb2NtVnphRzlzWkR0Y2JpQWdjbVYwZFhKdUlHaHBkRXhwYm1zN1hHNTlPMXh1WEc1c1pYUWdTRmxRUlZKTVNVNUxYMVJQVDB4VVNWQmZWRWxOUlU5VlZGOUpSRG9nYm5WdFltVnlJSHdnYm5Wc2JDQTlJRzUxYkd3N1hHNWxlSEJ2Y25RZ1kyOXVjM1FnYzJodmQwaDVjR1Z5YkdsdWExUnZiMngwYVhBZ1BTQW9YRzRnSUdWc1pXMWxiblE2SUU1dmJrUmxiR1YwWldSRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEN4Y2JpQWdZWEJ3VTNSaGRHVTZJRUZ3Y0ZOMFlYUmxMRnh1S1NBOVBpQjdYRzRnSUdsbUlDaElXVkJGVWt4SlRrdGZWRTlQVEZSSlVGOVVTVTFGVDFWVVgwbEVLU0I3WEc0Z0lDQWdZMnhsWVhKVWFXMWxiM1YwS0VoWlVFVlNURWxPUzE5VVQwOU1WRWxRWDFSSlRVVlBWVlJmU1VRcE8xeHVJQ0I5WEc0Z0lFaFpVRVZTVEVsT1MxOVVUMDlNVkVsUVgxUkpUVVZQVlZSZlNVUWdQU0IzYVc1a2IzY3VjMlYwVkdsdFpXOTFkQ2hjYmlBZ0lDQW9LU0E5UGlCeVpXNWtaWEpVYjI5c2RHbHdLR1ZzWlcxbGJuUXNJR0Z3Y0ZOMFlYUmxLU3hjYmlBZ0lDQklXVkJGVWt4SlRrdGZWRTlQVEZSSlVGOUVSVXhCV1N4Y2JpQWdLVHRjYm4wN1hHNWNibU52Ym5OMElISmxibVJsY2xSdmIyeDBhWEFnUFNBb1hHNGdJR1ZzWlcxbGJuUTZJRTV2YmtSbGJHVjBaV1JGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ3hjYmlBZ1lYQndVM1JoZEdVNklFRndjRk4wWVhSbExGeHVLU0E5UGlCN1hHNGdJR2xtSUNnaFpXeGxiV1Z1ZEM1c2FXNXJLU0I3WEc0Z0lDQWdjbVYwZFhKdU8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ2RHOXZiSFJwY0VScGRpQTlJR2RsZEZSdmIyeDBhWEJFYVhZb0tUdGNibHh1SUNCMGIyOXNkR2x3UkdsMkxtTnNZWE56VEdsemRDNWhaR1FvWENKbGVHTmhiR2xrY21GM0xYUnZiMngwYVhBdExYWnBjMmxpYkdWY0lpazdYRzRnSUhSdmIyeDBhWEJFYVhZdWMzUjViR1V1YldGNFYybGtkR2dnUFNCY0lqSXdjbVZ0WENJN1hHNGdJSFJ2YjJ4MGFYQkVhWFl1ZEdWNGRFTnZiblJsYm5RZ1BTQmxiR1Z0Wlc1MExteHBibXM3WEc1Y2JpQWdZMjl1YzNRZ1czZ3hMQ0I1TVN3Z2VESXNJSGt5WFNBOUlHZGxkRVZzWlcxbGJuUkJZbk52YkhWMFpVTnZiM0prY3lobGJHVnRaVzUwS1R0Y2JseHVJQ0JqYjI1emRDQmJiR2x1YTFnc0lHeHBibXRaTENCc2FXNXJWMmxrZEdnc0lHeHBibXRJWldsbmFIUmRJRDBnWjJWMFRHbHVhMGhoYm1Sc1pVWnliMjFEYjI5eVpITW9YRzRnSUNBZ1czZ3hMQ0I1TVN3Z2VESXNJSGt5WFN4Y2JpQWdJQ0JsYkdWdFpXNTBMbUZ1WjJ4bExGeHVJQ0FnSUdGd2NGTjBZWFJsTEZ4dUlDQXBPMXh1WEc0Z0lHTnZibk4wSUd4cGJtdFdhV1YzY0c5eWRFTnZiM0prY3lBOUlITmpaVzVsUTI5dmNtUnpWRzlXYVdWM2NHOXlkRU52YjNKa2N5aGNiaUFnSUNCN0lITmpaVzVsV0RvZ2JHbHVhMWdzSUhOalpXNWxXVG9nYkdsdWExa2dmU3hjYmlBZ0lDQmhjSEJUZEdGMFpTeGNiaUFnS1R0Y2JseHVJQ0IxY0dSaGRHVlViMjlzZEdsd1VHOXphWFJwYjI0b1hHNGdJQ0FnZEc5dmJIUnBjRVJwZGl4Y2JpQWdJQ0I3WEc0Z0lDQWdJQ0JzWldaME9pQnNhVzVyVm1sbGQzQnZjblJEYjI5eVpITXVlQ3hjYmlBZ0lDQWdJSFJ2Y0RvZ2JHbHVhMVpwWlhkd2IzSjBRMjl2Y21Sekxua3NYRzRnSUNBZ0lDQjNhV1IwYURvZ2JHbHVhMWRwWkhSb0xGeHVJQ0FnSUNBZ2FHVnBaMmgwT2lCc2FXNXJTR1ZwWjJoMExGeHVJQ0FnSUgwc1hHNGdJQ0FnWENKMGIzQmNJaXhjYmlBZ0tUdGNibHh1SUNCSlUxOUlXVkJGVWt4SlRrdGZWRTlQVEZSSlVGOVdTVk5KUWt4RklEMGdkSEoxWlR0Y2JuMDdYRzVsZUhCdmNuUWdZMjl1YzNRZ2FHbGtaVWg1Y0dWeWJHbHVhMVJ2YjJ4cGNDQTlJQ2dwSUQwK0lIdGNiaUFnYVdZZ0tFaFpVRVZTVEVsT1MxOVVUMDlNVkVsUVgxUkpUVVZQVlZSZlNVUXBJSHRjYmlBZ0lDQmpiR1ZoY2xScGJXVnZkWFFvU0ZsUVJWSk1TVTVMWDFSUFQweFVTVkJmVkVsTlJVOVZWRjlKUkNrN1hHNGdJSDFjYmlBZ2FXWWdLRWxUWDBoWlVFVlNURWxPUzE5VVQwOU1WRWxRWDFaSlUwbENURVVwSUh0Y2JpQWdJQ0JKVTE5SVdWQkZVa3hKVGt0ZlZFOVBURlJKVUY5V1NWTkpRa3hGSUQwZ1ptRnNjMlU3WEc0Z0lDQWdaMlYwVkc5dmJIUnBjRVJwZGlncExtTnNZWE56VEdsemRDNXlaVzF2ZG1Vb1hDSmxlR05oYkdsa2NtRjNMWFJ2YjJ4MGFYQXRMWFpwYzJsaWJHVmNJaWs3WEc0Z0lIMWNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J6YUc5MWJHUklhV1JsVEdsdWExQnZjSFZ3SUQwZ0tGeHVJQ0JsYkdWdFpXNTBPaUJPYjI1RVpXeGxkR1ZrUlhoallXeHBaSEpoZDBWc1pXMWxiblFzWEc0Z0lHRndjRk4wWVhSbE9pQkJjSEJUZEdGMFpTeGNiaUFnVzJOc2FXVnVkRmdzSUdOc2FXVnVkRmxkT2lCUWIybHVkQ3hjYmlrNklFSnZiMnhsWVc0Z1BUNGdlMXh1SUNCamIyNXpkQ0I3SUhnNklITmpaVzVsV0N3Z2VUb2djMk5sYm1WWklIMGdQU0IyYVdWM2NHOXlkRU52YjNKa2MxUnZVMk5sYm1WRGIyOXlaSE1vWEc0Z0lDQWdleUJqYkdsbGJuUllMQ0JqYkdsbGJuUlpJSDBzWEc0Z0lDQWdZWEJ3VTNSaGRHVXNYRzRnSUNrN1hHNWNiaUFnWTI5dWMzUWdkR2h5WlhOb2IyeGtJRDBnTVRVZ0x5QmhjSEJUZEdGMFpTNTZiMjl0TG5aaGJIVmxPMXh1SUNBdkx5Qm9hWFJpYjNnZ2RHOGdjSEpsZG1WdWRDQm9hV1JwYm1jZ2QyaGxiaUJvYjNabGNtVmtJR2x1SUdWc1pXMWxiblFnWW05MWJtUnBibWNnWW05NFhHNGdJR2xtSUNocGMxQnZhVzUwU0dsMGRHbHVaMFZzWlcxbGJuUkNiM1Z1WkdsdVowSnZlQ2hsYkdWdFpXNTBMQ0JiYzJObGJtVllMQ0J6WTJWdVpWbGRMQ0IwYUhKbGMyaHZiR1FwS1NCN1hHNGdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0I5WEc0Z0lHTnZibk4wSUZ0NE1Td2dlVEVzSUhneVhTQTlJR2RsZEVWc1pXMWxiblJCWW5OdmJIVjBaVU52YjNKa2N5aGxiR1Z0Wlc1MEtUdGNiaUFnTHk4Z2FHbDBJR0p2ZUNCMGJ5QndjbVYyWlc1MElHaHBaR2x1WnlCM2FHVnVJR2h2ZG1WeVpXUWdhVzRnZEdobElIWmxjblJwWTJGc0lHRnlaV0VnWW1WMGQyVmxiaUJsYkdWdFpXNTBJR0Z1WkNCd2IzQnZkbVZ5WEc0Z0lHbG1JQ2hjYmlBZ0lDQnpZMlZ1WlZnZ1BqMGdlREVnSmlaY2JpQWdJQ0J6WTJWdVpWZ2dQRDBnZURJZ0ppWmNiaUFnSUNCelkyVnVaVmtnUGowZ2VURWdMU0JUVUVGRFJWOUNUMVJVVDAwZ0ppWmNiaUFnSUNCelkyVnVaVmtnUEQwZ2VURmNiaUFnS1NCN1hHNGdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0I5WEc0Z0lDOHZJR2hwZENCaWIzZ2dkRzhnY0hKbGRtVnVkQ0JvYVdScGJtY2dkMmhsYmlCb2IzWmxjbVZrSUdGeWIzVnVaQ0J3YjNCdmRtVnlJSGRwZEdocGJpQjBhSEpsYzJodmJHUmNiaUFnWTI5dWMzUWdleUI0T2lCd2IzQnZkbVZ5V0N3Z2VUb2djRzl3YjNabGNsa2dmU0E5SUdkbGRFTnZiM0prYzBadmNsQnZjRzkyWlhJb1pXeGxiV1Z1ZEN3Z1lYQndVM1JoZEdVcE8xeHVYRzRnSUdsbUlDaGNiaUFnSUNCamJHbGxiblJZSUQ0OUlIQnZjRzkyWlhKWUlDMGdkR2h5WlhOb2IyeGtJQ1ltWEc0Z0lDQWdZMnhwWlc1MFdDQThQU0J3YjNCdmRtVnlXQ0FySUVOUFRsUkJTVTVGVWw5WFNVUlVTQ0FySUVOUFRsUkJTVTVGVWw5UVFVUkVTVTVISUNvZ01pQXJJSFJvY21WemFHOXNaQ0FtSmx4dUlDQWdJR05zYVdWdWRGa2dQajBnY0c5d2IzWmxjbGtnTFNCMGFISmxjMmh2YkdRZ0ppWmNiaUFnSUNCamJHbGxiblJaSUR3OUlIQnZjRzkyWlhKWklDc2dkR2h5WlhOb2IyeGtJQ3NnUTA5T1ZFRkpUa1ZTWDFCQlJFUkpUa2NnS2lBeUlDc2dRMDlPVkVGSlRrVlNYMGhGU1VkSVZGeHVJQ0FwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUhSeWRXVTdYRzU5TzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZWxlbWVudC9IeXBlcmxpbmsudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9lbGVtZW50L2JpbmRpbmcudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2VsZW1lbnQvYmluZGluZy50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInNob3VsZEVuYWJsZUJpbmRpbmdGb3JQb2ludGVyRXZlbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBzaG91bGRFbmFibGVCaW5kaW5nRm9yUG9pbnRlckV2ZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpc0JpbmRpbmdFbmFibGVkXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNCaW5kaW5nRW5hYmxlZCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYmluZE9yVW5iaW5kTGluZWFyRWxlbWVudFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGJpbmRPclVuYmluZExpbmVhckVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImJpbmRPclVuYmluZFNlbGVjdGVkRWxlbWVudHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBiaW5kT3JVbmJpbmRTZWxlY3RlZEVsZW1lbnRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJtYXliZUJpbmRMaW5lYXJFbGVtZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gbWF5YmVCaW5kTGluZWFyRWxlbWVudCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNMaW5lYXJFbGVtZW50U2ltcGxlQW5kQWxyZWFkeUJvdW5kXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNMaW5lYXJFbGVtZW50U2ltcGxlQW5kQWxyZWFkeUJvdW5kKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJ1bmJpbmRMaW5lYXJFbGVtZW50c1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHVuYmluZExpbmVhckVsZW1lbnRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRIb3ZlcmVkRWxlbWVudEZvckJpbmRpbmdcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRIb3ZlcmVkRWxlbWVudEZvckJpbmRpbmcpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInVwZGF0ZUJvdW5kRWxlbWVudHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB1cGRhdGVCb3VuZEVsZW1lbnRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRFbGlnaWJsZUVsZW1lbnRzRm9yQmluZGluZ1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldEVsaWdpYmxlRWxlbWVudHNGb3JCaW5kaW5nKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJmaXhCaW5kaW5nc0FmdGVyRHVwbGljYXRpb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBmaXhCaW5kaW5nc0FmdGVyRHVwbGljYXRpb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImZpeEJpbmRpbmdzQWZ0ZXJEZWxldGlvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGZpeEJpbmRpbmdzQWZ0ZXJEZWxldGlvbilcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZSAqLyBcXFwiLi4vLi4vc2NlbmUvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vdHlwZUNoZWNrcyAqLyBcXFwiLi4vLi4vZWxlbWVudC90eXBlQ2hlY2tzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb2xsaXNpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vY29sbGlzaW9uICovIFxcXCIuLi8uLi9lbGVtZW50L2NvbGxpc2lvbi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9tdXRhdGVFbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L211dGF0ZUVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX1NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZS9TY2VuZSAqLyBcXFwiLi4vLi4vc2NlbmUvU2NlbmUudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2xpbmVhckVsZW1lbnRFZGl0b3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vbGluZWFyRWxlbWVudEVkaXRvciAqLyBcXFwiLi4vLi4vZWxlbWVudC9saW5lYXJFbGVtZW50RWRpdG9yLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vdXRpbHMgKi8gXFxcIi4uLy4uL3V0aWxzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9rZXlzICovIFxcXCIuLi8uLi9rZXlzLnRzXFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3Qgc2hvdWxkRW5hYmxlQmluZGluZ0ZvclBvaW50ZXJFdmVudCA9IChldmVudCkgPT4ge1xcbiAgICByZXR1cm4gIWV2ZW50W19rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uS0VZUy5DVFJMX09SX0NNRF07XFxufTtcXG5jb25zdCBpc0JpbmRpbmdFbmFibGVkID0gKGFwcFN0YXRlKSA9PiB7XFxuICAgIHJldHVybiBhcHBTdGF0ZS5pc0JpbmRpbmdFbmFibGVkO1xcbn07XFxuY29uc3QgYmluZE9yVW5iaW5kTGluZWFyRWxlbWVudCA9IChsaW5lYXJFbGVtZW50LCBzdGFydEJpbmRpbmdFbGVtZW50LCBlbmRCaW5kaW5nRWxlbWVudCkgPT4ge1xcbiAgICBjb25zdCBib3VuZFRvRWxlbWVudElkcyA9IG5ldyBTZXQoKTtcXG4gICAgY29uc3QgdW5ib3VuZEZyb21FbGVtZW50SWRzID0gbmV3IFNldCgpO1xcbiAgICBiaW5kT3JVbmJpbmRMaW5lYXJFbGVtZW50RWRnZShsaW5lYXJFbGVtZW50LCBzdGFydEJpbmRpbmdFbGVtZW50LCBlbmRCaW5kaW5nRWxlbWVudCwgXFxcInN0YXJ0XFxcIiwgYm91bmRUb0VsZW1lbnRJZHMsIHVuYm91bmRGcm9tRWxlbWVudElkcyk7XFxuICAgIGJpbmRPclVuYmluZExpbmVhckVsZW1lbnRFZGdlKGxpbmVhckVsZW1lbnQsIGVuZEJpbmRpbmdFbGVtZW50LCBzdGFydEJpbmRpbmdFbGVtZW50LCBcXFwiZW5kXFxcIiwgYm91bmRUb0VsZW1lbnRJZHMsIHVuYm91bmRGcm9tRWxlbWVudElkcyk7XFxuICAgIGNvbnN0IG9ubHlVbmJvdW5kID0gQXJyYXkuZnJvbSh1bmJvdW5kRnJvbUVsZW1lbnRJZHMpLmZpbHRlcigoaWQpID0+ICFib3VuZFRvRWxlbWVudElkcy5oYXMoaWQpKTtcXG4gICAgX3NjZW5lX1NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bXFxcImRlZmF1bHRcXFwiXS5nZXRTY2VuZShsaW5lYXJFbGVtZW50KVxcbiAgICAgICAgLmdldE5vbkRlbGV0ZWRFbGVtZW50cyhvbmx5VW5ib3VuZClcXG4gICAgICAgIC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XFxuICAgICAgICB2YXIgX2E7XFxuICAgICAgICAoMCxfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLm11dGF0ZUVsZW1lbnQpKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICBib3VuZEVsZW1lbnRzOiAoX2EgPSBlbGVtZW50LmJvdW5kRWxlbWVudHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5maWx0ZXIoKGVsZW1lbnQpID0+IGVsZW1lbnQudHlwZSAhPT0gXFxcImFycm93XFxcIiB8fCBlbGVtZW50LmlkICE9PSBsaW5lYXJFbGVtZW50LmlkKSxcXG4gICAgICAgIH0pO1xcbiAgICB9KTtcXG59O1xcbmNvbnN0IGJpbmRPclVuYmluZExpbmVhckVsZW1lbnRFZGdlID0gKGxpbmVhckVsZW1lbnQsIGJpbmRhYmxlRWxlbWVudCwgb3RoZXJFZGdlQmluZGFibGVFbGVtZW50LCBzdGFydE9yRW5kLCBcXG4vLyBJcyBtdXRhdGVkXFxuYm91bmRUb0VsZW1lbnRJZHMsIFxcbi8vIElzIG11dGF0ZWRcXG51bmJvdW5kRnJvbUVsZW1lbnRJZHMpID0+IHtcXG4gICAgaWYgKGJpbmRhYmxlRWxlbWVudCAhPT0gXFxcImtlZXBcXFwiKSB7XFxuICAgICAgICBpZiAoYmluZGFibGVFbGVtZW50ICE9IG51bGwpIHtcXG4gICAgICAgICAgICAvLyBEb24ndCBiaW5kIGlmIHdlJ3JlIHRyeWluZyB0byBiaW5kIG9yIGFyZSBhbHJlYWR5IGJvdW5kIHRvIHRoZSBzYW1lXFxuICAgICAgICAgICAgLy8gZWxlbWVudCBvbiB0aGUgb3RoZXIgZWRnZSBhbHJlYWR5IChcXFwic3RhcnRcXFwiIGVkZ2UgdGFrZXMgcHJlY2VkZW5jZSkuXFxuICAgICAgICAgICAgaWYgKG90aGVyRWRnZUJpbmRhYmxlRWxlbWVudCA9PSBudWxsIHx8XFxuICAgICAgICAgICAgICAgIChvdGhlckVkZ2VCaW5kYWJsZUVsZW1lbnQgPT09IFxcXCJrZWVwXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgPyAhaXNMaW5lYXJFbGVtZW50U2ltcGxlQW5kQWxyZWFkeUJvdW5kT25PcHBvc2l0ZUVkZ2UobGluZWFyRWxlbWVudCwgYmluZGFibGVFbGVtZW50LCBzdGFydE9yRW5kKVxcbiAgICAgICAgICAgICAgICAgICAgOiBzdGFydE9yRW5kID09PSBcXFwic3RhcnRcXFwiIHx8XFxuICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJFZGdlQmluZGFibGVFbGVtZW50LmlkICE9PSBiaW5kYWJsZUVsZW1lbnQuaWQpKSB7XFxuICAgICAgICAgICAgICAgIGJpbmRMaW5lYXJFbGVtZW50KGxpbmVhckVsZW1lbnQsIGJpbmRhYmxlRWxlbWVudCwgc3RhcnRPckVuZCk7XFxuICAgICAgICAgICAgICAgIGJvdW5kVG9FbGVtZW50SWRzLmFkZChiaW5kYWJsZUVsZW1lbnQuaWQpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgIGNvbnN0IHVuYm91bmQgPSB1bmJpbmRMaW5lYXJFbGVtZW50KGxpbmVhckVsZW1lbnQsIHN0YXJ0T3JFbmQpO1xcbiAgICAgICAgICAgIGlmICh1bmJvdW5kICE9IG51bGwpIHtcXG4gICAgICAgICAgICAgICAgdW5ib3VuZEZyb21FbGVtZW50SWRzLmFkZCh1bmJvdW5kKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgIH1cXG59O1xcbmNvbnN0IGJpbmRPclVuYmluZFNlbGVjdGVkRWxlbWVudHMgPSAoZWxlbWVudHMpID0+IHtcXG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xcbiAgICAgICAgaWYgKCgwLF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaXNCaW5kaW5nRWxlbWVudCkoZWxlbWVudCkpIHtcXG4gICAgICAgICAgICBiaW5kT3JVbmJpbmRMaW5lYXJFbGVtZW50KGVsZW1lbnQsIGdldEVsbGlnaWJsZUVsZW1lbnRGb3JCaW5kaW5nRWxlbWVudChlbGVtZW50LCBcXFwic3RhcnRcXFwiKSwgZ2V0RWxsaWdpYmxlRWxlbWVudEZvckJpbmRpbmdFbGVtZW50KGVsZW1lbnQsIFxcXCJlbmRcXFwiKSk7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIGlmICgoMCxfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmlzQmluZGFibGVFbGVtZW50KShlbGVtZW50KSkge1xcbiAgICAgICAgICAgIG1heWJlQmluZEJpbmRhYmxlRWxlbWVudChlbGVtZW50KTtcXG4gICAgICAgIH1cXG4gICAgfSk7XFxufTtcXG5jb25zdCBtYXliZUJpbmRCaW5kYWJsZUVsZW1lbnQgPSAoYmluZGFibGVFbGVtZW50KSA9PiB7XFxuICAgIGdldEVsbGlnaWJsZUVsZW1lbnRzRm9yQmluZGFibGVFbGVtZW50QW5kV2hlcmUoYmluZGFibGVFbGVtZW50KS5mb3JFYWNoKChbbGluZWFyRWxlbWVudCwgd2hlcmVdKSA9PiBiaW5kT3JVbmJpbmRMaW5lYXJFbGVtZW50KGxpbmVhckVsZW1lbnQsIHdoZXJlID09PSBcXFwiZW5kXFxcIiA/IFxcXCJrZWVwXFxcIiA6IGJpbmRhYmxlRWxlbWVudCwgd2hlcmUgPT09IFxcXCJzdGFydFxcXCIgPyBcXFwia2VlcFxcXCIgOiBiaW5kYWJsZUVsZW1lbnQpKTtcXG59O1xcbmNvbnN0IG1heWJlQmluZExpbmVhckVsZW1lbnQgPSAobGluZWFyRWxlbWVudCwgYXBwU3RhdGUsIHNjZW5lLCBwb2ludGVyQ29vcmRzKSA9PiB7XFxuICAgIGlmIChhcHBTdGF0ZS5zdGFydEJvdW5kRWxlbWVudCAhPSBudWxsKSB7XFxuICAgICAgICBiaW5kTGluZWFyRWxlbWVudChsaW5lYXJFbGVtZW50LCBhcHBTdGF0ZS5zdGFydEJvdW5kRWxlbWVudCwgXFxcInN0YXJ0XFxcIik7XFxuICAgIH1cXG4gICAgY29uc3QgaG92ZXJlZEVsZW1lbnQgPSBnZXRIb3ZlcmVkRWxlbWVudEZvckJpbmRpbmcocG9pbnRlckNvb3Jkcywgc2NlbmUpO1xcbiAgICBpZiAoaG92ZXJlZEVsZW1lbnQgIT0gbnVsbCAmJlxcbiAgICAgICAgIWlzTGluZWFyRWxlbWVudFNpbXBsZUFuZEFscmVhZHlCb3VuZE9uT3Bwb3NpdGVFZGdlKGxpbmVhckVsZW1lbnQsIGhvdmVyZWRFbGVtZW50LCBcXFwiZW5kXFxcIikpIHtcXG4gICAgICAgIGJpbmRMaW5lYXJFbGVtZW50KGxpbmVhckVsZW1lbnQsIGhvdmVyZWRFbGVtZW50LCBcXFwiZW5kXFxcIik7XFxuICAgIH1cXG59O1xcbmNvbnN0IGJpbmRMaW5lYXJFbGVtZW50ID0gKGxpbmVhckVsZW1lbnQsIGhvdmVyZWRFbGVtZW50LCBzdGFydE9yRW5kKSA9PiB7XFxuICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ubXV0YXRlRWxlbWVudCkobGluZWFyRWxlbWVudCwge1xcbiAgICAgICAgW3N0YXJ0T3JFbmQgPT09IFxcXCJzdGFydFxcXCIgPyBcXFwic3RhcnRCaW5kaW5nXFxcIiA6IFxcXCJlbmRCaW5kaW5nXFxcIl06IE9iamVjdC5hc3NpZ24oeyBlbGVtZW50SWQ6IGhvdmVyZWRFbGVtZW50LmlkIH0sIGNhbGN1bGF0ZUZvY3VzQW5kR2FwKGxpbmVhckVsZW1lbnQsIGhvdmVyZWRFbGVtZW50LCBzdGFydE9yRW5kKSksXFxuICAgIH0pO1xcbiAgICBjb25zdCBib3VuZEVsZW1lbnRzTWFwID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uYXJyYXlUb01hcCkoaG92ZXJlZEVsZW1lbnQuYm91bmRFbGVtZW50cyB8fCBbXSk7XFxuICAgIGlmICghYm91bmRFbGVtZW50c01hcC5oYXMobGluZWFyRWxlbWVudC5pZCkpIHtcXG4gICAgICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ubXV0YXRlRWxlbWVudCkoaG92ZXJlZEVsZW1lbnQsIHtcXG4gICAgICAgICAgICBib3VuZEVsZW1lbnRzOiAoaG92ZXJlZEVsZW1lbnQuYm91bmRFbGVtZW50cyB8fCBbXSkuY29uY2F0KHtcXG4gICAgICAgICAgICAgICAgaWQ6IGxpbmVhckVsZW1lbnQuaWQsXFxuICAgICAgICAgICAgICAgIHR5cGU6IFxcXCJhcnJvd1xcXCIsXFxuICAgICAgICAgICAgfSksXFxuICAgICAgICB9KTtcXG4gICAgfVxcbn07XFxuLy8gRG9uJ3QgYmluZCBib3RoIGVuZHMgb2YgYSBzaW1wbGUgc2VnbWVudFxcbmNvbnN0IGlzTGluZWFyRWxlbWVudFNpbXBsZUFuZEFscmVhZHlCb3VuZE9uT3Bwb3NpdGVFZGdlID0gKGxpbmVhckVsZW1lbnQsIGJpbmRhYmxlRWxlbWVudCwgc3RhcnRPckVuZCkgPT4ge1xcbiAgICBjb25zdCBvdGhlckJpbmRpbmcgPSBsaW5lYXJFbGVtZW50W3N0YXJ0T3JFbmQgPT09IFxcXCJzdGFydFxcXCIgPyBcXFwiZW5kQmluZGluZ1xcXCIgOiBcXFwic3RhcnRCaW5kaW5nXFxcIl07XFxuICAgIHJldHVybiBpc0xpbmVhckVsZW1lbnRTaW1wbGVBbmRBbHJlYWR5Qm91bmQobGluZWFyRWxlbWVudCwgb3RoZXJCaW5kaW5nID09PSBudWxsIHx8IG90aGVyQmluZGluZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3RoZXJCaW5kaW5nLmVsZW1lbnRJZCwgYmluZGFibGVFbGVtZW50KTtcXG59O1xcbmNvbnN0IGlzTGluZWFyRWxlbWVudFNpbXBsZUFuZEFscmVhZHlCb3VuZCA9IChsaW5lYXJFbGVtZW50LCBhbHJlYWR5Qm91bmRUb0lkLCBiaW5kYWJsZUVsZW1lbnQpID0+IHtcXG4gICAgcmV0dXJuIChhbHJlYWR5Qm91bmRUb0lkID09PSBiaW5kYWJsZUVsZW1lbnQuaWQgJiYgbGluZWFyRWxlbWVudC5wb2ludHMubGVuZ3RoIDwgMyk7XFxufTtcXG5jb25zdCB1bmJpbmRMaW5lYXJFbGVtZW50cyA9IChlbGVtZW50cykgPT4ge1xcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XFxuICAgICAgICBpZiAoKDAsX3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5pc0JpbmRpbmdFbGVtZW50KShlbGVtZW50KSkge1xcbiAgICAgICAgICAgIGJpbmRPclVuYmluZExpbmVhckVsZW1lbnQoZWxlbWVudCwgbnVsbCwgbnVsbCk7XFxuICAgICAgICB9XFxuICAgIH0pO1xcbn07XFxuY29uc3QgdW5iaW5kTGluZWFyRWxlbWVudCA9IChsaW5lYXJFbGVtZW50LCBzdGFydE9yRW5kKSA9PiB7XFxuICAgIGNvbnN0IGZpZWxkID0gc3RhcnRPckVuZCA9PT0gXFxcInN0YXJ0XFxcIiA/IFxcXCJzdGFydEJpbmRpbmdcXFwiIDogXFxcImVuZEJpbmRpbmdcXFwiO1xcbiAgICBjb25zdCBiaW5kaW5nID0gbGluZWFyRWxlbWVudFtmaWVsZF07XFxuICAgIGlmIChiaW5kaW5nID09IG51bGwpIHtcXG4gICAgICAgIHJldHVybiBudWxsO1xcbiAgICB9XFxuICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ubXV0YXRlRWxlbWVudCkobGluZWFyRWxlbWVudCwgeyBbZmllbGRdOiBudWxsIH0pO1xcbiAgICByZXR1cm4gYmluZGluZy5lbGVtZW50SWQ7XFxufTtcXG5jb25zdCBnZXRIb3ZlcmVkRWxlbWVudEZvckJpbmRpbmcgPSAocG9pbnRlckNvb3Jkcywgc2NlbmUpID0+IHtcXG4gICAgY29uc3QgaG92ZXJlZEVsZW1lbnQgPSAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5nZXRFbGVtZW50QXRQb3NpdGlvbikoc2NlbmUuZ2V0RWxlbWVudHMoKSwgKGVsZW1lbnQpID0+ICgwLF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaXNCaW5kYWJsZUVsZW1lbnQpKGVsZW1lbnQpICYmICgwLF9jb2xsaXNpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5iaW5kaW5nQm9yZGVyVGVzdCkoZWxlbWVudCwgcG9pbnRlckNvb3JkcykpO1xcbiAgICByZXR1cm4gaG92ZXJlZEVsZW1lbnQ7XFxufTtcXG5jb25zdCBjYWxjdWxhdGVGb2N1c0FuZEdhcCA9IChsaW5lYXJFbGVtZW50LCBob3ZlcmVkRWxlbWVudCwgc3RhcnRPckVuZCkgPT4ge1xcbiAgICBjb25zdCBkaXJlY3Rpb24gPSBzdGFydE9yRW5kID09PSBcXFwic3RhcnRcXFwiID8gLTEgOiAxO1xcbiAgICBjb25zdCBlZGdlUG9pbnRJbmRleCA9IGRpcmVjdGlvbiA9PT0gLTEgPyAwIDogbGluZWFyRWxlbWVudC5wb2ludHMubGVuZ3RoIC0gMTtcXG4gICAgY29uc3QgYWRqYWNlbnRQb2ludEluZGV4ID0gZWRnZVBvaW50SW5kZXggLSBkaXJlY3Rpb247XFxuICAgIGNvbnN0IGVkZ2VQb2ludCA9IF9saW5lYXJFbGVtZW50RWRpdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uTGluZWFyRWxlbWVudEVkaXRvci5nZXRQb2ludEF0SW5kZXhHbG9iYWxDb29yZGluYXRlcyhsaW5lYXJFbGVtZW50LCBlZGdlUG9pbnRJbmRleCk7XFxuICAgIGNvbnN0IGFkamFjZW50UG9pbnQgPSBfbGluZWFyRWxlbWVudEVkaXRvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLkxpbmVhckVsZW1lbnRFZGl0b3IuZ2V0UG9pbnRBdEluZGV4R2xvYmFsQ29vcmRpbmF0ZXMobGluZWFyRWxlbWVudCwgYWRqYWNlbnRQb2ludEluZGV4KTtcXG4gICAgcmV0dXJuIHtcXG4gICAgICAgIGZvY3VzOiAoMCxfY29sbGlzaW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZGV0ZXJtaW5lRm9jdXNEaXN0YW5jZSkoaG92ZXJlZEVsZW1lbnQsIGFkamFjZW50UG9pbnQsIGVkZ2VQb2ludCksXFxuICAgICAgICBnYXA6IE1hdGgubWF4KDEsICgwLF9jb2xsaXNpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5kaXN0YW5jZVRvQmluZGFibGVFbGVtZW50KShob3ZlcmVkRWxlbWVudCwgZWRnZVBvaW50KSksXFxuICAgIH07XFxufTtcXG4vLyBTdXBwb3J0cyB0cmFuc2xhdGluZywgcm90YXRpbmcgYW5kIHNjYWxpbmcgYGNoYW5nZWRFbGVtZW50YCB3aXRoIGJvdW5kXFxuLy8gbGluZWFyIGVsZW1lbnRzLlxcbi8vIEJlY2F1c2Ugc2NhbGluZyBpbnZvbHZlcyBtb3ZpbmcgdGhlIGZvY3VzIHBvaW50cyBhcyB3ZWxsLCBpdCBpc1xcbi8vIGRvbmUgYmVmb3JlIHRoZSBgY2hhbmdlZEVsZW1lbnRgIGlzIHVwZGF0ZWQsIGFuZCB0aGUgYG5ld1NpemVgIGlzIHBhc3NlZFxcbi8vIGluIGV4cGxpY2l0bHkuXFxuY29uc3QgdXBkYXRlQm91bmRFbGVtZW50cyA9IChjaGFuZ2VkRWxlbWVudCwgb3B0aW9ucykgPT4ge1xcbiAgICB2YXIgX2E7XFxuICAgIGNvbnN0IGJvdW5kTGluZWFyRWxlbWVudHMgPSAoKF9hID0gY2hhbmdlZEVsZW1lbnQuYm91bmRFbGVtZW50cykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogW10pLmZpbHRlcigoZWwpID0+IGVsLnR5cGUgPT09IFxcXCJhcnJvd1xcXCIpO1xcbiAgICBpZiAoYm91bmRMaW5lYXJFbGVtZW50cy5sZW5ndGggPT09IDApIHtcXG4gICAgICAgIHJldHVybjtcXG4gICAgfVxcbiAgICBjb25zdCB7IG5ld1NpemUsIHNpbXVsdGFuZW91c2x5VXBkYXRlZCB9ID0gb3B0aW9ucyAhPT0gbnVsbCAmJiBvcHRpb25zICE9PSB2b2lkIDAgPyBvcHRpb25zIDoge307XFxuICAgIGNvbnN0IHNpbXVsdGFuZW91c2x5VXBkYXRlZEVsZW1lbnRJZHMgPSBnZXRTaW11bHRhbmVvdXNseVVwZGF0ZWRFbGVtZW50SWRzKHNpbXVsdGFuZW91c2x5VXBkYXRlZCk7XFxuICAgIF9zY2VuZV9TY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fW1xcXCJkZWZhdWx0XFxcIl0uZ2V0U2NlbmUoY2hhbmdlZEVsZW1lbnQpXFxuICAgICAgICAuZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKGJvdW5kTGluZWFyRWxlbWVudHMubWFwKChlbCkgPT4gZWwuaWQpKVxcbiAgICAgICAgLmZvckVhY2goKGVsZW1lbnQpID0+IHtcXG4gICAgICAgIGlmICghKDAsX3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5pc0xpbmVhckVsZW1lbnQpKGVsZW1lbnQpKSB7XFxuICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3QgYmluZGFibGVFbGVtZW50ID0gY2hhbmdlZEVsZW1lbnQ7XFxuICAgICAgICAvLyBJbiBjYXNlIHRoZSBib3VuZEVsZW1lbnRzIGFyZSBzdGFsZVxcbiAgICAgICAgaWYgKCFkb2VzTmVlZFVwZGF0ZShlbGVtZW50LCBiaW5kYWJsZUVsZW1lbnQpKSB7XFxuICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3Qgc3RhcnRCaW5kaW5nID0gbWF5YmVDYWxjdWxhdGVOZXdHYXBXaGVuU2NhbGluZyhiaW5kYWJsZUVsZW1lbnQsIGVsZW1lbnQuc3RhcnRCaW5kaW5nLCBuZXdTaXplKTtcXG4gICAgICAgIGNvbnN0IGVuZEJpbmRpbmcgPSBtYXliZUNhbGN1bGF0ZU5ld0dhcFdoZW5TY2FsaW5nKGJpbmRhYmxlRWxlbWVudCwgZWxlbWVudC5lbmRCaW5kaW5nLCBuZXdTaXplKTtcXG4gICAgICAgIC8vIGBsaW5lYXJFbGVtZW50YCBpcyBiZWluZyBtb3ZlZC9zY2FsZWQgYWxyZWFkeSwganVzdCB1cGRhdGUgdGhlIGJpbmRpbmdcXG4gICAgICAgIGlmIChzaW11bHRhbmVvdXNseVVwZGF0ZWRFbGVtZW50SWRzLmhhcyhlbGVtZW50LmlkKSkge1xcbiAgICAgICAgICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ubXV0YXRlRWxlbWVudCkoZWxlbWVudCwgeyBzdGFydEJpbmRpbmcsIGVuZEJpbmRpbmcgfSk7XFxuICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgfVxcbiAgICAgICAgdXBkYXRlQm91bmRQb2ludChlbGVtZW50LCBcXFwic3RhcnRcXFwiLCBzdGFydEJpbmRpbmcsIGNoYW5nZWRFbGVtZW50KTtcXG4gICAgICAgIHVwZGF0ZUJvdW5kUG9pbnQoZWxlbWVudCwgXFxcImVuZFxcXCIsIGVuZEJpbmRpbmcsIGNoYW5nZWRFbGVtZW50KTtcXG4gICAgfSk7XFxufTtcXG5jb25zdCBkb2VzTmVlZFVwZGF0ZSA9IChib3VuZEVsZW1lbnQsIGNoYW5nZWRFbGVtZW50KSA9PiB7XFxuICAgIHZhciBfYSwgX2I7XFxuICAgIHJldHVybiAoKChfYSA9IGJvdW5kRWxlbWVudC5zdGFydEJpbmRpbmcpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5lbGVtZW50SWQpID09PSBjaGFuZ2VkRWxlbWVudC5pZCB8fFxcbiAgICAgICAgKChfYiA9IGJvdW5kRWxlbWVudC5lbmRCaW5kaW5nKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZWxlbWVudElkKSA9PT0gY2hhbmdlZEVsZW1lbnQuaWQpO1xcbn07XFxuY29uc3QgZ2V0U2ltdWx0YW5lb3VzbHlVcGRhdGVkRWxlbWVudElkcyA9IChzaW11bHRhbmVvdXNseVVwZGF0ZWQpID0+IHtcXG4gICAgcmV0dXJuIG5ldyBTZXQoKHNpbXVsdGFuZW91c2x5VXBkYXRlZCB8fCBbXSkubWFwKChlbGVtZW50KSA9PiBlbGVtZW50LmlkKSk7XFxufTtcXG5jb25zdCB1cGRhdGVCb3VuZFBvaW50ID0gKGxpbmVhckVsZW1lbnQsIHN0YXJ0T3JFbmQsIGJpbmRpbmcsIGNoYW5nZWRFbGVtZW50KSA9PiB7XFxuICAgIGlmIChiaW5kaW5nID09IG51bGwgfHxcXG4gICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byB1cGRhdGUgdGhlIG90aGVyIGVuZCBpZiB0aGlzIGlzIGEgMiBwb2ludCBsaW5lIGVsZW1lbnRcXG4gICAgICAgIChiaW5kaW5nLmVsZW1lbnRJZCAhPT0gY2hhbmdlZEVsZW1lbnQuaWQgJiYgbGluZWFyRWxlbWVudC5wb2ludHMubGVuZ3RoID4gMikpIHtcXG4gICAgICAgIHJldHVybjtcXG4gICAgfVxcbiAgICBjb25zdCBiaW5kaW5nRWxlbWVudCA9IF9zY2VuZV9TY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fW1xcXCJkZWZhdWx0XFxcIl0uZ2V0U2NlbmUobGluZWFyRWxlbWVudCkuZ2V0RWxlbWVudChiaW5kaW5nLmVsZW1lbnRJZCk7XFxuICAgIGlmIChiaW5kaW5nRWxlbWVudCA9PSBudWxsKSB7XFxuICAgICAgICAvLyBXZSdyZSBub3QgY2xlYW5pbmcgdXAgYWZ0ZXIgZGVsZXRlZCBlbGVtZW50cyBhdG0uLCBzbyBoYW5kbGUgdGhpcyBjYXNlXFxuICAgICAgICByZXR1cm47XFxuICAgIH1cXG4gICAgY29uc3QgZGlyZWN0aW9uID0gc3RhcnRPckVuZCA9PT0gXFxcInN0YXJ0XFxcIiA/IC0xIDogMTtcXG4gICAgY29uc3QgZWRnZVBvaW50SW5kZXggPSBkaXJlY3Rpb24gPT09IC0xID8gMCA6IGxpbmVhckVsZW1lbnQucG9pbnRzLmxlbmd0aCAtIDE7XFxuICAgIGNvbnN0IGFkamFjZW50UG9pbnRJbmRleCA9IGVkZ2VQb2ludEluZGV4IC0gZGlyZWN0aW9uO1xcbiAgICBjb25zdCBhZGphY2VudFBvaW50ID0gX2xpbmVhckVsZW1lbnRFZGl0b3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5MaW5lYXJFbGVtZW50RWRpdG9yLmdldFBvaW50QXRJbmRleEdsb2JhbENvb3JkaW5hdGVzKGxpbmVhckVsZW1lbnQsIGFkamFjZW50UG9pbnRJbmRleCk7XFxuICAgIGNvbnN0IGZvY3VzUG9pbnRBYnNvbHV0ZSA9ICgwLF9jb2xsaXNpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5kZXRlcm1pbmVGb2N1c1BvaW50KShiaW5kaW5nRWxlbWVudCwgYmluZGluZy5mb2N1cywgYWRqYWNlbnRQb2ludCk7XFxuICAgIGxldCBuZXdFZGdlUG9pbnQ7XFxuICAgIC8vIFRoZSBsaW5lYXIgZWxlbWVudCB3YXMgbm90IG9yaWdpbmFsbHkgcG9pbnRpbmcgaW5zaWRlIHRoZSBib3VuZCBzaGFwZSxcXG4gICAgLy8gd2UgY2FuIHBvaW50IGRpcmVjdGx5IGF0IHRoZSBmb2N1cyBwb2ludFxcbiAgICBpZiAoYmluZGluZy5nYXAgPT09IDApIHtcXG4gICAgICAgIG5ld0VkZ2VQb2ludCA9IGZvY3VzUG9pbnRBYnNvbHV0ZTtcXG4gICAgfVxcbiAgICBlbHNlIHtcXG4gICAgICAgIGNvbnN0IGludGVyc2VjdGlvbnMgPSAoMCxfY29sbGlzaW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uaW50ZXJzZWN0RWxlbWVudFdpdGhMaW5lKShiaW5kaW5nRWxlbWVudCwgYWRqYWNlbnRQb2ludCwgZm9jdXNQb2ludEFic29sdXRlLCBiaW5kaW5nLmdhcCk7XFxuICAgICAgICBpZiAoaW50ZXJzZWN0aW9ucy5sZW5ndGggPT09IDApIHtcXG4gICAgICAgICAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4sIHNpbmNlIGZvY3VzUG9pbnQgc2hvdWxkIGFsd2F5cyBiZVxcbiAgICAgICAgICAgIC8vIGluc2lkZSB0aGUgZWxlbWVudCwgYnV0IGp1c3QgaW4gY2FzZSwgYmFpbCBvdXRcXG4gICAgICAgICAgICBuZXdFZGdlUG9pbnQgPSBmb2N1c1BvaW50QWJzb2x1dGU7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAvLyBHdWFyYW50ZWVkIHRvIGludGVyc2VjdCBiZWNhdXNlIGZvY3VzUG9pbnQgaXMgYWx3YXlzIGluc2lkZSB0aGUgc2hhcGVcXG4gICAgICAgICAgICBuZXdFZGdlUG9pbnQgPSBpbnRlcnNlY3Rpb25zWzBdO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIF9saW5lYXJFbGVtZW50RWRpdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uTGluZWFyRWxlbWVudEVkaXRvci5tb3ZlUG9pbnRzKGxpbmVhckVsZW1lbnQsIFtcXG4gICAgICAgIHtcXG4gICAgICAgICAgICBpbmRleDogZWRnZVBvaW50SW5kZXgsXFxuICAgICAgICAgICAgcG9pbnQ6IF9saW5lYXJFbGVtZW50RWRpdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uTGluZWFyRWxlbWVudEVkaXRvci5wb2ludEZyb21BYnNvbHV0ZUNvb3JkcyhsaW5lYXJFbGVtZW50LCBuZXdFZGdlUG9pbnQpLFxcbiAgICAgICAgfSxcXG4gICAgXSwgeyBbc3RhcnRPckVuZCA9PT0gXFxcInN0YXJ0XFxcIiA/IFxcXCJzdGFydEJpbmRpbmdcXFwiIDogXFxcImVuZEJpbmRpbmdcXFwiXTogYmluZGluZyB9KTtcXG59O1xcbmNvbnN0IG1heWJlQ2FsY3VsYXRlTmV3R2FwV2hlblNjYWxpbmcgPSAoY2hhbmdlZEVsZW1lbnQsIGN1cnJlbnRCaW5kaW5nLCBuZXdTaXplKSA9PiB7XFxuICAgIGlmIChjdXJyZW50QmluZGluZyA9PSBudWxsIHx8IG5ld1NpemUgPT0gbnVsbCkge1xcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRCaW5kaW5nO1xcbiAgICB9XFxuICAgIGNvbnN0IHsgZ2FwLCBmb2N1cywgZWxlbWVudElkIH0gPSBjdXJyZW50QmluZGluZztcXG4gICAgY29uc3QgeyB3aWR0aDogbmV3V2lkdGgsIGhlaWdodDogbmV3SGVpZ2h0IH0gPSBuZXdTaXplO1xcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGNoYW5nZWRFbGVtZW50O1xcbiAgICBjb25zdCBuZXdHYXAgPSBNYXRoLm1heCgxLCBNYXRoLm1pbigoMCxfY29sbGlzaW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ubWF4QmluZGluZ0dhcCkoY2hhbmdlZEVsZW1lbnQsIG5ld1dpZHRoLCBuZXdIZWlnaHQpLCBnYXAgKiAobmV3V2lkdGggPCBuZXdIZWlnaHQgPyBuZXdXaWR0aCAvIHdpZHRoIDogbmV3SGVpZ2h0IC8gaGVpZ2h0KSkpO1xcbiAgICByZXR1cm4geyBlbGVtZW50SWQsIGdhcDogbmV3R2FwLCBmb2N1cyB9O1xcbn07XFxuY29uc3QgZ2V0RWxpZ2libGVFbGVtZW50c0ZvckJpbmRpbmcgPSAoZWxlbWVudHMpID0+IHtcXG4gICAgY29uc3QgaW5jbHVkZWRFbGVtZW50SWRzID0gbmV3IFNldChlbGVtZW50cy5tYXAoKHsgaWQgfSkgPT4gaWQpKTtcXG4gICAgcmV0dXJuIGVsZW1lbnRzLmZsYXRNYXAoKGVsZW1lbnQpID0+ICgwLF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaXNCaW5kaW5nRWxlbWVudCkoZWxlbWVudClcXG4gICAgICAgID8gZ2V0RWxsaWdpYmxlRWxlbWVudHNGb3JCaW5kaW5nRWxlbWVudChlbGVtZW50KS5maWx0ZXIoKGVsZW1lbnQpID0+ICFpbmNsdWRlZEVsZW1lbnRJZHMuaGFzKGVsZW1lbnQuaWQpKVxcbiAgICAgICAgOiAoMCxfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmlzQmluZGFibGVFbGVtZW50KShlbGVtZW50KVxcbiAgICAgICAgICAgID8gZ2V0RWxsaWdpYmxlRWxlbWVudHNGb3JCaW5kYWJsZUVsZW1lbnRBbmRXaGVyZShlbGVtZW50KS5maWx0ZXIoKGJpbmRpbmcpID0+ICFpbmNsdWRlZEVsZW1lbnRJZHMuaGFzKGJpbmRpbmdbMF0uaWQpKVxcbiAgICAgICAgICAgIDogW10pO1xcbn07XFxuY29uc3QgZ2V0RWxsaWdpYmxlRWxlbWVudHNGb3JCaW5kaW5nRWxlbWVudCA9IChsaW5lYXJFbGVtZW50KSA9PiB7XFxuICAgIHJldHVybiBbXFxuICAgICAgICBnZXRFbGxpZ2libGVFbGVtZW50Rm9yQmluZGluZ0VsZW1lbnQobGluZWFyRWxlbWVudCwgXFxcInN0YXJ0XFxcIiksXFxuICAgICAgICBnZXRFbGxpZ2libGVFbGVtZW50Rm9yQmluZGluZ0VsZW1lbnQobGluZWFyRWxlbWVudCwgXFxcImVuZFxcXCIpLFxcbiAgICBdLmZpbHRlcigoZWxlbWVudCkgPT4gZWxlbWVudCAhPSBudWxsKTtcXG59O1xcbmNvbnN0IGdldEVsbGlnaWJsZUVsZW1lbnRGb3JCaW5kaW5nRWxlbWVudCA9IChsaW5lYXJFbGVtZW50LCBzdGFydE9yRW5kKSA9PiB7XFxuICAgIHJldHVybiBnZXRIb3ZlcmVkRWxlbWVudEZvckJpbmRpbmcoZ2V0TGluZWFyRWxlbWVudEVkZ2VDb29ycyhsaW5lYXJFbGVtZW50LCBzdGFydE9yRW5kKSwgX3NjZW5lX1NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bXFxcImRlZmF1bHRcXFwiXS5nZXRTY2VuZShsaW5lYXJFbGVtZW50KSk7XFxufTtcXG5jb25zdCBnZXRMaW5lYXJFbGVtZW50RWRnZUNvb3JzID0gKGxpbmVhckVsZW1lbnQsIHN0YXJ0T3JFbmQpID0+IHtcXG4gICAgY29uc3QgaW5kZXggPSBzdGFydE9yRW5kID09PSBcXFwic3RhcnRcXFwiID8gMCA6IC0xO1xcbiAgICByZXR1cm4gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udHVwbGVUb0Nvb3JzKShfbGluZWFyRWxlbWVudEVkaXRvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLkxpbmVhckVsZW1lbnRFZGl0b3IuZ2V0UG9pbnRBdEluZGV4R2xvYmFsQ29vcmRpbmF0ZXMobGluZWFyRWxlbWVudCwgaW5kZXgpKTtcXG59O1xcbmNvbnN0IGdldEVsbGlnaWJsZUVsZW1lbnRzRm9yQmluZGFibGVFbGVtZW50QW5kV2hlcmUgPSAoYmluZGFibGVFbGVtZW50KSA9PiB7XFxuICAgIHJldHVybiBfc2NlbmVfU2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1tcXFwiZGVmYXVsdFxcXCJdLmdldFNjZW5lKGJpbmRhYmxlRWxlbWVudClcXG4gICAgICAgIC5nZXRFbGVtZW50cygpXFxuICAgICAgICAubWFwKChlbGVtZW50KSA9PiB7XFxuICAgICAgICBpZiAoISgwLF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaXNCaW5kaW5nRWxlbWVudCkoZWxlbWVudCkpIHtcXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IGNhbkJpbmRTdGFydCA9IGlzTGluZWFyRWxlbWVudEVsaWdpYmxlRm9yTmV3QmluZGluZ0J5QmluZGFibGUoZWxlbWVudCwgXFxcInN0YXJ0XFxcIiwgYmluZGFibGVFbGVtZW50KTtcXG4gICAgICAgIGNvbnN0IGNhbkJpbmRFbmQgPSBpc0xpbmVhckVsZW1lbnRFbGlnaWJsZUZvck5ld0JpbmRpbmdCeUJpbmRhYmxlKGVsZW1lbnQsIFxcXCJlbmRcXFwiLCBiaW5kYWJsZUVsZW1lbnQpO1xcbiAgICAgICAgaWYgKCFjYW5CaW5kU3RhcnQgJiYgIWNhbkJpbmRFbmQpIHtcXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiBbXFxuICAgICAgICAgICAgZWxlbWVudCxcXG4gICAgICAgICAgICBjYW5CaW5kU3RhcnQgJiYgY2FuQmluZEVuZCA/IFxcXCJib3RoXFxcIiA6IGNhbkJpbmRTdGFydCA/IFxcXCJzdGFydFxcXCIgOiBcXFwiZW5kXFxcIixcXG4gICAgICAgICAgICBiaW5kYWJsZUVsZW1lbnQsXFxuICAgICAgICBdO1xcbiAgICB9KVxcbiAgICAgICAgLmZpbHRlcigobWF5YmVFbGVtZW50KSA9PiBtYXliZUVsZW1lbnQgIT0gbnVsbCk7XFxufTtcXG5jb25zdCBpc0xpbmVhckVsZW1lbnRFbGlnaWJsZUZvck5ld0JpbmRpbmdCeUJpbmRhYmxlID0gKGxpbmVhckVsZW1lbnQsIHN0YXJ0T3JFbmQsIGJpbmRhYmxlRWxlbWVudCkgPT4ge1xcbiAgICBjb25zdCBleGlzdGluZ0JpbmRpbmcgPSBsaW5lYXJFbGVtZW50W3N0YXJ0T3JFbmQgPT09IFxcXCJzdGFydFxcXCIgPyBcXFwic3RhcnRCaW5kaW5nXFxcIiA6IFxcXCJlbmRCaW5kaW5nXFxcIl07XFxuICAgIHJldHVybiAoZXhpc3RpbmdCaW5kaW5nID09IG51bGwgJiZcXG4gICAgICAgICFpc0xpbmVhckVsZW1lbnRTaW1wbGVBbmRBbHJlYWR5Qm91bmRPbk9wcG9zaXRlRWRnZShsaW5lYXJFbGVtZW50LCBiaW5kYWJsZUVsZW1lbnQsIHN0YXJ0T3JFbmQpICYmXFxuICAgICAgICAoMCxfY29sbGlzaW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uYmluZGluZ0JvcmRlclRlc3QpKGJpbmRhYmxlRWxlbWVudCwgZ2V0TGluZWFyRWxlbWVudEVkZ2VDb29ycyhsaW5lYXJFbGVtZW50LCBzdGFydE9yRW5kKSkpO1xcbn07XFxuLy8gV2UgbmVlZCB0bzpcXG4vLyAxOiBVcGRhdGUgZWxlbWVudHMgbm90IHNlbGVjdGVkIHRvIHBvaW50IHRvIGR1cGxpY2F0ZWQgZWxlbWVudHNcXG4vLyAyOiBVcGRhdGUgZHVwbGljYXRlZCBlbGVtZW50cyB0byBwb2ludCB0byBvdGhlciBkdXBsaWNhdGVkIGVsZW1lbnRzXFxuY29uc3QgZml4QmluZGluZ3NBZnRlckR1cGxpY2F0aW9uID0gKHNjZW5lRWxlbWVudHMsIG9sZEVsZW1lbnRzLCBvbGRJZFRvRHVwbGljYXRlZElkLCBcXG4vLyBUaGVyZSBhcmUgdGhyZWUgY29weWluZyBtZWNoYW5pc21zOiBDb3B5LXBhc3RlLCBkdXBsaWNhdGlvbiBhbmQgYWx0LWRyYWcuXFxuLy8gT25seSB3aGVuIGFsdC1kcmFnZ2luZyB0aGUgbmV3IFxcXCJkdXBsaWNhdGVzXFxcIiBhY3QgYXMgdGhlIFxcXCJvbGRcXFwiLCB3aGlsZVxcbi8vIHRoZSBcXFwib2xkXFxcIiBlbGVtZW50cyBhY3QgYXMgdGhlIFxcXCJuZXcgY29weVxcXCIgLSBlc3NlbnRpYWxseSB3b3JraW5nIHJldmVyc2VcXG4vLyB0byB0aGUgb3RoZXIgdHdvLlxcbmR1cGxpY2F0ZXNTZXJ2ZUFzT2xkKSA9PiB7XFxuICAgIC8vIEZpcnN0IGNvbGxlY3QgYWxsIHRoZSBiaW5kaW5nL2JpbmRhYmxlIGVsZW1lbnRzLCBzbyB3ZSBvbmx5IHVwZGF0ZVxcbiAgICAvLyBlYWNoIG9uY2UsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGV5IHdlcmUgZHVwbGljYXRlZCBvciBub3QuXFxuICAgIGNvbnN0IGFsbEJvdW5kRWxlbWVudElkcyA9IG5ldyBTZXQoKTtcXG4gICAgY29uc3QgYWxsQmluZGFibGVFbGVtZW50SWRzID0gbmV3IFNldCgpO1xcbiAgICBjb25zdCBzaG91bGRSZXZlcnNlUm9sZXMgPSBkdXBsaWNhdGVzU2VydmVBc09sZCA9PT0gXFxcImR1cGxpY2F0ZXNTZXJ2ZUFzT2xkXFxcIjtcXG4gICAgb2xkRWxlbWVudHMuZm9yRWFjaCgob2xkRWxlbWVudCkgPT4ge1xcbiAgICAgICAgY29uc3QgeyBib3VuZEVsZW1lbnRzIH0gPSBvbGRFbGVtZW50O1xcbiAgICAgICAgaWYgKGJvdW5kRWxlbWVudHMgIT0gbnVsbCAmJiBib3VuZEVsZW1lbnRzLmxlbmd0aCA+IDApIHtcXG4gICAgICAgICAgICBib3VuZEVsZW1lbnRzLmZvckVhY2goKGJvdW5kRWxlbWVudCkgPT4ge1xcbiAgICAgICAgICAgICAgICBpZiAoc2hvdWxkUmV2ZXJzZVJvbGVzICYmICFvbGRJZFRvRHVwbGljYXRlZElkLmhhcyhib3VuZEVsZW1lbnQuaWQpKSB7XFxuICAgICAgICAgICAgICAgICAgICBhbGxCb3VuZEVsZW1lbnRJZHMuYWRkKGJvdW5kRWxlbWVudC5pZCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICBhbGxCaW5kYWJsZUVsZW1lbnRJZHMuYWRkKG9sZElkVG9EdXBsaWNhdGVkSWQuZ2V0KG9sZEVsZW1lbnQuaWQpKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmICgoMCxfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmlzQmluZGluZ0VsZW1lbnQpKG9sZEVsZW1lbnQpKSB7XFxuICAgICAgICAgICAgaWYgKG9sZEVsZW1lbnQuc3RhcnRCaW5kaW5nICE9IG51bGwpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgeyBlbGVtZW50SWQgfSA9IG9sZEVsZW1lbnQuc3RhcnRCaW5kaW5nO1xcbiAgICAgICAgICAgICAgICBpZiAoc2hvdWxkUmV2ZXJzZVJvbGVzICYmICFvbGRJZFRvRHVwbGljYXRlZElkLmhhcyhlbGVtZW50SWQpKSB7XFxuICAgICAgICAgICAgICAgICAgICBhbGxCaW5kYWJsZUVsZW1lbnRJZHMuYWRkKGVsZW1lbnRJZCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKG9sZEVsZW1lbnQuZW5kQmluZGluZyAhPSBudWxsKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZWxlbWVudElkIH0gPSBvbGRFbGVtZW50LmVuZEJpbmRpbmc7XFxuICAgICAgICAgICAgICAgIGlmIChzaG91bGRSZXZlcnNlUm9sZXMgJiYgIW9sZElkVG9EdXBsaWNhdGVkSWQuaGFzKGVsZW1lbnRJZCkpIHtcXG4gICAgICAgICAgICAgICAgICAgIGFsbEJpbmRhYmxlRWxlbWVudElkcy5hZGQoZWxlbWVudElkKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAob2xkRWxlbWVudC5zdGFydEJpbmRpbmcgIT0gbnVsbCB8fCBvbGRFbGVtZW50LmVuZEJpbmRpbmcgIT0gbnVsbCkge1xcbiAgICAgICAgICAgICAgICBhbGxCb3VuZEVsZW1lbnRJZHMuYWRkKG9sZElkVG9EdXBsaWNhdGVkSWQuZ2V0KG9sZEVsZW1lbnQuaWQpKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgIH0pO1xcbiAgICAvLyBVcGRhdGUgdGhlIGxpbmVhciBlbGVtZW50c1xcbiAgICBzY2VuZUVsZW1lbnRzLmZpbHRlcigoeyBpZCB9KSA9PiBhbGxCb3VuZEVsZW1lbnRJZHMuaGFzKGlkKSkuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xcbiAgICAgICAgY29uc3QgeyBzdGFydEJpbmRpbmcsIGVuZEJpbmRpbmcgfSA9IGVsZW1lbnQ7XFxuICAgICAgICAoMCxfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLm11dGF0ZUVsZW1lbnQpKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICBzdGFydEJpbmRpbmc6IG5ld0JpbmRpbmdBZnRlckR1cGxpY2F0aW9uKHN0YXJ0QmluZGluZywgb2xkSWRUb0R1cGxpY2F0ZWRJZCksXFxuICAgICAgICAgICAgZW5kQmluZGluZzogbmV3QmluZGluZ0FmdGVyRHVwbGljYXRpb24oZW5kQmluZGluZywgb2xkSWRUb0R1cGxpY2F0ZWRJZCksXFxuICAgICAgICB9KTtcXG4gICAgfSk7XFxuICAgIC8vIFVwZGF0ZSB0aGUgYmluZGFibGUgc2hhcGVzXFxuICAgIHNjZW5lRWxlbWVudHNcXG4gICAgICAgIC5maWx0ZXIoKHsgaWQgfSkgPT4gYWxsQmluZGFibGVFbGVtZW50SWRzLmhhcyhpZCkpXFxuICAgICAgICAuZm9yRWFjaCgoYmluZGFibGVFbGVtZW50KSA9PiB7XFxuICAgICAgICBjb25zdCB7IGJvdW5kRWxlbWVudHMgfSA9IGJpbmRhYmxlRWxlbWVudDtcXG4gICAgICAgIGlmIChib3VuZEVsZW1lbnRzICE9IG51bGwgJiYgYm91bmRFbGVtZW50cy5sZW5ndGggPiAwKSB7XFxuICAgICAgICAgICAgKDAsX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5tdXRhdGVFbGVtZW50KShiaW5kYWJsZUVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgYm91bmRFbGVtZW50czogYm91bmRFbGVtZW50cy5tYXAoKGJvdW5kRWxlbWVudCkgPT4gb2xkSWRUb0R1cGxpY2F0ZWRJZC5oYXMoYm91bmRFbGVtZW50LmlkKVxcbiAgICAgICAgICAgICAgICAgICAgPyB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IG9sZElkVG9EdXBsaWNhdGVkSWQuZ2V0KGJvdW5kRWxlbWVudC5pZCksXFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYm91bmRFbGVtZW50LnR5cGUsXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICA6IGJvdW5kRWxlbWVudCksXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgIH0pO1xcbn07XFxuY29uc3QgbmV3QmluZGluZ0FmdGVyRHVwbGljYXRpb24gPSAoYmluZGluZywgb2xkSWRUb0R1cGxpY2F0ZWRJZCkgPT4ge1xcbiAgICB2YXIgX2E7XFxuICAgIGlmIChiaW5kaW5nID09IG51bGwpIHtcXG4gICAgICAgIHJldHVybiBudWxsO1xcbiAgICB9XFxuICAgIGNvbnN0IHsgZWxlbWVudElkLCBmb2N1cywgZ2FwIH0gPSBiaW5kaW5nO1xcbiAgICByZXR1cm4ge1xcbiAgICAgICAgZm9jdXMsXFxuICAgICAgICBnYXAsXFxuICAgICAgICBlbGVtZW50SWQ6IChfYSA9IG9sZElkVG9EdXBsaWNhdGVkSWQuZ2V0KGVsZW1lbnRJZCkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGVsZW1lbnRJZCxcXG4gICAgfTtcXG59O1xcbmNvbnN0IGZpeEJpbmRpbmdzQWZ0ZXJEZWxldGlvbiA9IChzY2VuZUVsZW1lbnRzLCBkZWxldGVkRWxlbWVudHMpID0+IHtcXG4gICAgY29uc3QgZGVsZXRlZEVsZW1lbnRJZHMgPSBuZXcgU2V0KGRlbGV0ZWRFbGVtZW50cy5tYXAoKGVsZW1lbnQpID0+IGVsZW1lbnQuaWQpKTtcXG4gICAgLy8gTm9uIGRlbGV0ZWQgYW5kIG5lZWQgYW4gdXBkYXRlXFxuICAgIGNvbnN0IGJvdW5kRWxlbWVudElkcyA9IG5ldyBTZXQoKTtcXG4gICAgZGVsZXRlZEVsZW1lbnRzLmZvckVhY2goKGRlbGV0ZWRFbGVtZW50KSA9PiB7XFxuICAgICAgICB2YXIgX2E7XFxuICAgICAgICBpZiAoKDAsX3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5pc0JpbmRhYmxlRWxlbWVudCkoZGVsZXRlZEVsZW1lbnQpKSB7XFxuICAgICAgICAgICAgKF9hID0gZGVsZXRlZEVsZW1lbnQuYm91bmRFbGVtZW50cykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvckVhY2goKGVsZW1lbnQpID0+IHtcXG4gICAgICAgICAgICAgICAgaWYgKCFkZWxldGVkRWxlbWVudElkcy5oYXMoZWxlbWVudC5pZCkpIHtcXG4gICAgICAgICAgICAgICAgICAgIGJvdW5kRWxlbWVudElkcy5hZGQoZWxlbWVudC5pZCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH1cXG4gICAgfSk7XFxuICAgIHNjZW5lRWxlbWVudHMuZmlsdGVyKCh7IGlkIH0pID0+IGJvdW5kRWxlbWVudElkcy5oYXMoaWQpKS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XFxuICAgICAgICBjb25zdCB7IHN0YXJ0QmluZGluZywgZW5kQmluZGluZyB9ID0gZWxlbWVudDtcXG4gICAgICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ubXV0YXRlRWxlbWVudCkoZWxlbWVudCwge1xcbiAgICAgICAgICAgIHN0YXJ0QmluZGluZzogbmV3QmluZGluZ0FmdGVyRGVsZXRpb24oc3RhcnRCaW5kaW5nLCBkZWxldGVkRWxlbWVudElkcyksXFxuICAgICAgICAgICAgZW5kQmluZGluZzogbmV3QmluZGluZ0FmdGVyRGVsZXRpb24oZW5kQmluZGluZywgZGVsZXRlZEVsZW1lbnRJZHMpLFxcbiAgICAgICAgfSk7XFxuICAgIH0pO1xcbn07XFxuY29uc3QgbmV3QmluZGluZ0FmdGVyRGVsZXRpb24gPSAoYmluZGluZywgZGVsZXRlZEVsZW1lbnRJZHMpID0+IHtcXG4gICAgaWYgKGJpbmRpbmcgPT0gbnVsbCB8fCBkZWxldGVkRWxlbWVudElkcy5oYXMoYmluZGluZy5lbGVtZW50SWQpKSB7XFxuICAgICAgICByZXR1cm4gbnVsbDtcXG4gICAgfVxcbiAgICByZXR1cm4gYmluZGluZztcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2Wld4bGJXVnVkQzlpYVc1a2FXNW5MblJ6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJVV2RFTzBGQlRURkNPMEZCVVVRN1FVRkRNa0k3UVVGRFlqdEJRVU41UWp0QlFVTlNPMEZCUTNKQ08wRkJXWGhDTEUxQlFVMHNhME5CUVd0RExFZEJRVWNzUTBGRGFFUXNTMEZCTkVNc1JVRkROVU1zUlVGQlJUdEpRVU5HTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc2JVUkJRV2RDTEVOQlFVTXNRMEZCUXp0QlFVTnNReXhEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFTkJRVU1zVVVGQmEwSXNSVUZCVnl4RlFVRkZPMGxCUXpsRUxFOUJRVThzVVVGQlVTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8wRkJRMjVETEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc2VVSkJRWGxDTEVkQlFVY3NRMEZEZGtNc1lVRkJhMFFzUlVGRGJFUXNiVUpCUVRoRUxFVkJRemxFTEdsQ1FVRTBSQ3hGUVVOMFJDeEZRVUZGTzBsQlExSXNUVUZCVFN4cFFrRkJhVUlzUjBGQmVVTXNTVUZCU1N4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVNeFJTeE5RVUZOTEhGQ1FVRnhRaXhIUVVGNVF5eEpRVUZKTEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUXpsRkxEWkNRVUUyUWl4RFFVTXpRaXhoUVVGaExFVkJRMklzYlVKQlFXMUNMRVZCUTI1Q0xHbENRVUZwUWl4RlFVTnFRaXhQUVVGUExFVkJRMUFzYVVKQlFXbENMRVZCUTJwQ0xIRkNRVUZ4UWl4RFFVTjBRaXhEUVVGRE8wbEJRMFlzTmtKQlFUWkNMRU5CUXpOQ0xHRkJRV0VzUlVGRFlpeHBRa0ZCYVVJc1JVRkRha0lzYlVKQlFXMUNMRVZCUTI1Q0xFdEJRVXNzUlVGRFRDeHBRa0ZCYVVJc1JVRkRha0lzY1VKQlFYRkNMRU5CUTNSQ0xFTkJRVU03U1VGRlJpeE5RVUZOTEZkQlFWY3NSMEZCUnl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVNeFJDeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRMjVETEVOQlFVTTdTVUZEUml3MlJFRkJZeXhEUVVGRExHRkJRV0VzUTBGQlJUdFRRVU16UWl4eFFrRkJjVUlzUTBGQlF5eFhRVUZYTEVOQlFVTTdVMEZEYkVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVTdPMUZCUTI1Q0xEWkVRVUZoTEVOQlFVTXNUMEZCVHl4RlFVRkZPMWxCUTNKQ0xHRkJRV0VzUlVGQlJTeGhRVUZQTEVOQlFVTXNZVUZCWVN3d1EwRkJSU3hOUVVGTkxFTkJRekZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkRWaXhQUVVGUExFTkJRVU1zU1VGQlNTeExRVUZMTEU5QlFVOHNTVUZCU1N4UFFVRlBMRU5CUVVNc1JVRkJSU3hMUVVGTExHRkJRV0VzUTBGQlF5eEZRVUZGTEVOQlF6bEVPMU5CUTBZc1EwRkJReXhEUVVGRE8wbEJRMHdzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVUN4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxEWkNRVUUyUWl4SFFVRkhMRU5CUTNCRExHRkJRV3RFTEVWQlEyeEVMR1ZCUVRCRUxFVkJRekZFTEhkQ1FVRnRSU3hGUVVOdVJTeFZRVUV5UWp0QlFVTXpRaXhoUVVGaE8wRkJRMklzYVVKQlFYVkVPMEZCUTNaRUxHRkJRV0U3UVVGRFlpeHhRa0ZCTWtRc1JVRkRja1FzUlVGQlJUdEpRVU5TTEVsQlFVa3NaVUZCWlN4TFFVRkxMRTFCUVUwc1JVRkJSVHRSUVVNNVFpeEpRVUZKTEdWQlFXVXNTVUZCU1N4SlFVRkpMRVZCUVVVN1dVRkRNMElzYzBWQlFYTkZPMWxCUTNSRkxIRkZRVUZ4UlR0WlFVTnlSU3hKUVVORkxIZENRVUYzUWl4SlFVRkpMRWxCUVVrN1owSkJRMmhETEVOQlFVTXNkMEpCUVhkQ0xFdEJRVXNzVFVGQlRUdHZRa0ZEYkVNc1EwRkJReXhEUVVGRExFTkJRVU1zYTBSQlFXdEVMRU5CUTJwRUxHRkJRV0VzUlVGRFlpeGxRVUZsTEVWQlEyWXNWVUZCVlN4RFFVTllPMjlDUVVOSUxFTkJRVU1zUTBGQlF5eFZRVUZWTEV0QlFVc3NUMEZCVHp0M1FrRkRkRUlzZDBKQlFYZENMRU5CUVVNc1JVRkJSU3hMUVVGTExHVkJRV1VzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZEZGtRN1owSkJRMEVzYVVKQlFXbENMRU5CUVVNc1lVRkJZU3hGUVVGRkxHVkJRV1VzUlVGQlJTeFZRVUZWTEVOQlFVTXNRMEZCUXp0blFrRkRPVVFzYVVKQlFXbENMRU5CUVVNc1IwRkJSeXhEUVVGRExHVkJRV1VzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0aFFVTXpRenRUUVVOR08yRkJRVTA3V1VGRFRDeE5RVUZOTEU5QlFVOHNSMEZCUnl4dFFrRkJiVUlzUTBGQlF5eGhRVUZoTEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNN1dVRkRMMFFzU1VGQlNTeFBRVUZQTEVsQlFVa3NTVUZCU1N4RlFVRkZPMmRDUVVOdVFpeHhRa0ZCY1VJc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdZVUZEY0VNN1UwRkRSanRMUVVOR08wRkJRMGdzUTBGQlF5eERRVUZETzBGQlJVc3NUVUZCVFN3MFFrRkJORUlzUjBGQlJ5eERRVU14UXl4UlFVRjVReXhGUVVOdVF5eEZRVUZGTzBsQlExSXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTzFGQlF6TkNMRWxCUVVrc05rUkJRV2RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVN1dVRkROMElzZVVKQlFYbENMRU5CUTNaQ0xFOUJRVThzUlVGRFVDeHZRMEZCYjBNc1EwRkJReXhQUVVGUExFVkJRVVVzVDBGQlR5eERRVUZETEVWQlEzUkVMRzlEUVVGdlF5eERRVUZETEU5QlFVOHNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkRja1FzUTBGQlF6dFRRVU5JTzJGQlFVMHNTVUZCU1N3NFJFRkJhVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlR0WlFVTnlReXgzUWtGQmQwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRUUVVOdVF6dEpRVU5JTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTB3c1EwRkJReXhEUVVGRE8wRkJSVVlzVFVGQlRTeDNRa0ZCZDBJc1IwRkJSeXhEUVVNdlFpeGxRVUZ6UkN4RlFVTm9SQ3hGUVVGRk8wbEJRMUlzT0VOQlFUaERMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVU55UlN4RFFVRkRMRU5CUVVNc1lVRkJZU3hGUVVGRkxFdEJRVXNzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZEZWtJc2VVSkJRWGxDTEVOQlEzWkNMR0ZCUVdFc1JVRkRZaXhMUVVGTExFdEJRVXNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExHVkJRV1VzUlVGRE1VTXNTMEZCU3l4TFFVRkxMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4bFFVRmxMRU5CUXpkRExFTkJRMG9zUTBGQlF6dEJRVU5LTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc2MwSkJRWE5DTEVkQlFVY3NRMEZEY0VNc1lVRkJhMFFzUlVGRGJFUXNVVUZCYTBJc1JVRkRiRUlzUzBGQldTeEZRVU5hTEdGQlFYVkRMRVZCUTJwRExFVkJRVVU3U1VGRFVpeEpRVUZKTEZGQlFWRXNRMEZCUXl4cFFrRkJhVUlzU1VGQlNTeEpRVUZKTEVWQlFVVTdVVUZEZEVNc2FVSkJRV2xDTEVOQlFVTXNZVUZCWVN4RlFVRkZMRkZCUVZFc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRMUVVOMlJUdEpRVU5FTEUxQlFVMHNZMEZCWXl4SFFVRkhMREpDUVVFeVFpeERRVUZETEdGQlFXRXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVONlJTeEpRVU5GTEdOQlFXTXNTVUZCU1N4SlFVRkpPMUZCUTNSQ0xFTkJRVU1zYTBSQlFXdEVMRU5CUTJwRUxHRkJRV0VzUlVGRFlpeGpRVUZqTEVWQlEyUXNTMEZCU3l4RFFVTk9MRVZCUTBRN1VVRkRRU3hwUWtGQmFVSXNRMEZCUXl4aFFVRmhMRVZCUVVVc1kwRkJZeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzB0QlEzcEVPMEZCUTBnc1EwRkJReXhEUVVGRE8wRkJSVVlzVFVGQlRTeHBRa0ZCYVVJc1IwRkJSeXhEUVVONFFpeGhRVUZyUkN4RlFVTnNSQ3hqUVVGNVF5eEZRVU42UXl4VlFVRXlRaXhGUVVOeVFpeEZRVUZGTzBsQlExSXNOa1JCUVdFc1EwRkJReXhoUVVGaExFVkJRVVU3VVVGRE0wSXNRMEZCUXl4VlFVRlZMRXRCUVVzc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkJReXhGUVVGRkxHZENRVU40UkN4VFFVRlRMRVZCUVVVc1kwRkJZeXhEUVVGRExFVkJRVVVzU1VGRGVrSXNiMEpCUVc5Q0xFTkJRVU1zWVVGQllTeEZRVUZGTEdOQlFXTXNSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkRia1E3UzBGRGJFSXNRMEZCUXl4RFFVRkRPMGxCUlVnc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4clJFRkJWU3hEUVVGRExHTkJRV01zUTBGQlF5eGhRVUZoTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRlRVVzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUTBGQlF5eGhRVUZoTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVN1VVRkRNME1zTmtSQlFXRXNRMEZCUXl4alFVRmpMRVZCUVVVN1dVRkROVUlzWVVGQllTeEZRVUZGTEVOQlFVTXNZMEZCWXl4RFFVRkRMR0ZCUVdFc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdaMEpCUTNwRUxFVkJRVVVzUlVGQlJTeGhRVUZoTEVOQlFVTXNSVUZCUlR0blFrRkRjRUlzU1VGQlNTeEZRVUZGTEU5QlFVODdZVUZEWkN4RFFVRkRPMU5CUTBnc1EwRkJReXhEUVVGRE8wdEJRMG83UVVGRFNDeERRVUZETEVOQlFVTTdRVUZGUml3eVEwRkJNa003UVVGRE0wTXNUVUZCVFN4clJFRkJhMFFzUjBGQlJ5eERRVU42UkN4aFFVRnJSQ3hGUVVOc1JDeGxRVUV3UXl4RlFVTXhReXhWUVVFeVFpeEZRVU5zUWl4RlFVRkZPMGxCUTFnc1RVRkJUU3haUVVGWkxFZEJRMmhDTEdGQlFXRXNRMEZCUXl4VlFVRlZMRXRCUVVzc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8wbEJRM2hGTEU5QlFVOHNiME5CUVc5RExFTkJRM3BETEdGQlFXRXNSVUZEWWl4WlFVRlpMR0ZCUVZvc1dVRkJXU3gxUWtGQldpeFpRVUZaTEVOQlFVVXNVMEZCVXl4RlFVTjJRaXhsUVVGbExFTkJRMmhDTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxHOURRVUZ2UXl4SFFVRkhMRU5CUTJ4RUxHRkJRV3RFTEVWQlEyeEVMR2RDUVVFMlJDeEZRVU0zUkN4bFFVRXdReXhGUVVOcVF5eEZRVUZGTzBsQlExZ3NUMEZCVHl4RFFVTk1MR2RDUVVGblFpeExRVUZMTEdWQlFXVXNRMEZCUXl4RlFVRkZMRWxCUVVrc1lVRkJZU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVTXpSU3hEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETzBGQlJVc3NUVUZCVFN4dlFrRkJiMElzUjBGQlJ5eERRVU5zUXl4UlFVRjVReXhGUVVOdVF5eEZRVUZGTzBsQlExSXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTzFGQlF6TkNMRWxCUVVrc05rUkJRV2RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVN1dVRkROMElzZVVKQlFYbENMRU5CUVVNc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0VFFVTm9SRHRKUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwd3NRMEZCUXl4RFFVRkRPMEZCUlVZc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl4RFFVTXhRaXhoUVVGclJDeEZRVU5zUkN4VlFVRXlRaXhGUVVOaExFVkJRVVU3U1VGRE1VTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1ZVRkJWU3hMUVVGTExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU03U1VGRGNrVXNUVUZCVFN4UFFVRlBMRWRCUVVjc1lVRkJZU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlEzSkRMRWxCUVVrc1QwRkJUeXhKUVVGSkxFbEJRVWtzUlVGQlJUdFJRVU51UWl4UFFVRlBMRWxCUVVrc1EwRkJRenRMUVVOaU8wbEJRMFFzTmtSQlFXRXNRMEZCUXl4aFFVRmhMRVZCUVVVc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRhRVFzVDBGQlR5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRPMEZCUXpOQ0xFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNNa0pCUVRKQ0xFZEJRVWNzUTBGRGVrTXNZVUZIUXl4RlFVTkVMRXRCUVZrc1JVRkRhME1zUlVGQlJUdEpRVU5vUkN4TlFVRk5MR05CUVdNc1IwRkJSeXcwUkVGQmIwSXNRMEZEZWtNc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeEZRVU51UWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRkxFTkJRMVlzT0VSQlFXbENMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzTmtSQlFXbENMRU5CUVVNc1QwRkJUeXhGUVVGRkxHRkJRV0VzUTBGQlF5eERRVU14UlN4RFFVRkRPMGxCUTBZc1QwRkJUeXhqUVVFNFJDeERRVUZETzBGQlEzaEZMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzYjBKQlFXOUNMRWRCUVVjc1EwRkRNMElzWVVGQmEwUXNSVUZEYkVRc1kwRkJlVU1zUlVGRGVrTXNWVUZCTWtJc1JVRkRTeXhGUVVGRk8wbEJRMnhETEUxQlFVMHNVMEZCVXl4SFFVRkhMRlZCUVZVc1MwRkJTeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGJFUXNUVUZCVFN4alFVRmpMRWRCUVVjc1UwRkJVeXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHRkJRV0VzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVNNVJTeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExHTkJRV01zUjBGQlJ5eFRRVUZUTEVOQlFVTTdTVUZEZEVRc1RVRkJUU3hUUVVGVExFZEJRVWNzYzBkQlFXOUVMRU5CUTNCRkxHRkJRV0VzUlVGRFlpeGpRVUZqTEVOQlEyWXNRMEZCUXp0SlFVTkdMRTFCUVUwc1lVRkJZU3hIUVVGSExITkhRVUZ2UkN4RFFVTjRSU3hoUVVGaExFVkJRMklzYTBKQlFXdENMRU5CUTI1Q0xFTkJRVU03U1VGRFJpeFBRVUZQTzFGQlEwd3NTMEZCU3l4RlFVRkZMR3RGUVVGelFpeERRVUZETEdOQlFXTXNSVUZCUlN4aFFVRmhMRVZCUVVVc1UwRkJVeXhEUVVGRE8xRkJRM1pGTEVkQlFVY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJTeHhSVUZCZVVJc1EwRkJReXhqUVVGakxFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTTdTMEZEZGtVc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF6dEJRVVZHTEhsRlFVRjVSVHRCUVVONlJTeHRRa0ZCYlVJN1FVRkRia0lzYTBWQlFXdEZPMEZCUTJ4RkxESkZRVUV5UlR0QlFVTXpSU3hwUWtGQmFVSTdRVUZEVml4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEVOQlEycERMR05CUVRKRExFVkJRek5ETEU5QlIwTXNSVUZEUkN4RlFVRkZPenRKUVVOR0xFMUJRVTBzYlVKQlFXMUNMRWRCUVVjc1EwRkJReXh2UWtGQll5eERRVUZETEdGQlFXRXNiVU5CUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zVFVGQlRTeERRVU55UlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NTMEZCU3l4UFFVRlBMRU5CUXpWQ0xFTkJRVU03U1VGRFJpeEpRVUZKTEcxQ1FVRnRRaXhEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETEVWQlFVVTdVVUZEY0VNc1QwRkJUenRMUVVOU08wbEJRMFFzVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4eFFrRkJjVUlzUlVGQlJTeEhRVUZITEU5QlFVOHNZVUZCVUN4UFFVRlBMR05CUVZBc1QwRkJUeXhIUVVGSkxFVkJRVVVzUTBGQlF6dEpRVU42UkN4TlFVRk5MQ3RDUVVFclFpeEhRVUZITEd0RFFVRnJReXhEUVVONFJTeHhRa0ZCY1VJc1EwRkRkRUlzUTBGQlF6dEpRVU5HTERaRVFVRmpMRU5CUVVNc1kwRkJZeXhEUVVGRk8xTkJRelZDTEhGQ1FVRnhRaXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xTkJRemRFTEU5QlFVOHNRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRk8xRkJRMjVDTEVsQlFVa3NRMEZCUXl3MFJFRkJaU3hEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzFsQlF6ZENMRTlCUVU4N1UwRkRVanRSUVVWRUxFMUJRVTBzWlVGQlpTeEhRVUZITEdOQlFUSkRMRU5CUVVNN1VVRkRjRVVzYzBOQlFYTkRPMUZCUTNSRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNUMEZCVHl4RlFVRkZMR1ZCUVdVc1EwRkJReXhGUVVGRk8xbEJRemRETEU5QlFVODdVMEZEVWp0UlFVTkVMRTFCUVUwc1dVRkJXU3hIUVVGSExDdENRVUVyUWl4RFFVTnNSQ3hsUVVGbExFVkJRMllzVDBGQlR5eERRVUZETEZsQlFWa3NSVUZEY0VJc1QwRkJUeXhEUVVOU0xFTkJRVU03VVVGRFJpeE5RVUZOTEZWQlFWVXNSMEZCUnl3clFrRkJLMElzUTBGRGFFUXNaVUZCWlN4RlFVTm1MRTlCUVU4c1EwRkJReXhWUVVGVkxFVkJRMnhDTEU5QlFVOHNRMEZEVWl4RFFVRkRPMUZCUTBZc2VVVkJRWGxGTzFGQlEzcEZMRWxCUVVrc0swSkJRU3RDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJUdFpRVU51UkN3MlJFRkJZU3hEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEZsQlFWa3NSVUZCUlN4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRE8xbEJRM0pFTEU5QlFVODdVMEZEVWp0UlFVTkVMR2RDUVVGblFpeERRVU5rTEU5QlFVOHNSVUZEVUN4UFFVRlBMRVZCUTFBc1dVRkJXU3hGUVVOYUxHTkJRVEpETEVOQlF6VkRMRU5CUVVNN1VVRkRSaXhuUWtGQlowSXNRMEZEWkN4UFFVRlBMRVZCUTFBc1MwRkJTeXhGUVVOTUxGVkJRVlVzUlVGRFZpeGpRVUV5UXl4RFFVTTFReXhEUVVGRE8wbEJRMG9zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVUN4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxHTkJRV01zUjBGQlJ5eERRVU55UWl4WlFVRnBSQ3hGUVVOcVJDeGpRVUY1UXl4RlFVTjZReXhGUVVGRk96dEpRVU5HTEU5QlFVOHNRMEZEVEN4dFFrRkJXU3hEUVVGRExGbEJRVmtzTUVOQlFVVXNVMEZCVXl4TlFVRkxMR05CUVdNc1EwRkJReXhGUVVGRk8xRkJRekZFTEcxQ1FVRlpMRU5CUVVNc1ZVRkJWU3d3UTBGQlJTeFRRVUZUTEUxQlFVc3NZMEZCWXl4RFFVRkRMRVZCUVVVc1EwRkRla1FzUTBGQlF6dEJRVU5LTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc2EwTkJRV3RETEVkQlFVY3NRMEZEZWtNc2NVSkJRU3RFTEVWQlEycERMRVZCUVVVN1NVRkRhRU1zVDBGQlR5eEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMSEZDUVVGeFFpeEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE4wVXNRMEZCUXl4RFFVRkRPMEZCUlVZc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RFFVTjJRaXhoUVVGclJDeEZRVU5zUkN4VlFVRXlRaXhGUVVNelFpeFBRVUYzUXl4RlFVTjRReXhqUVVGNVF5eEZRVU51UXl4RlFVRkZPMGxCUTFJc1NVRkRSU3hQUVVGUExFbEJRVWtzU1VGQlNUdFJRVU5tTEhsRlFVRjVSVHRSUVVONlJTeERRVUZETEU5QlFVOHNRMEZCUXl4VFFVRlRMRXRCUVVzc1kwRkJZeXhEUVVGRExFVkJRVVVzU1VGQlNTeGhRVUZoTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGRE5VVTdVVUZEUVN4UFFVRlBPMHRCUTFJN1NVRkRSQ3hOUVVGTkxHTkJRV01zUjBGQlJ5dzJSRUZCWXl4RFFVRkRMR0ZCUVdFc1EwRkJSU3hEUVVGRExGVkJRVlVzUTBGRE9VUXNUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkRhMElzUTBGQlF6dEpRVU4wUXl4SlFVRkpMR05CUVdNc1NVRkJTU3hKUVVGSkxFVkJRVVU3VVVGRE1VSXNlVVZCUVhsRk8xRkJRM3BGTEU5QlFVODdTMEZEVWp0SlFVTkVMRTFCUVUwc1UwRkJVeXhIUVVGSExGVkJRVlVzUzBGQlN5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEYkVRc1RVRkJUU3hqUVVGakxFZEJRVWNzVTBGQlV5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEdGQlFXRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU01UlN4TlFVRk5MR3RDUVVGclFpeEhRVUZITEdOQlFXTXNSMEZCUnl4VFFVRlRMRU5CUVVNN1NVRkRkRVFzVFVGQlRTeGhRVUZoTEVkQlFVY3NjMGRCUVc5RUxFTkJRM2hGTEdGQlFXRXNSVUZEWWl4clFrRkJhMElzUTBGRGJrSXNRMEZCUXp0SlFVTkdMRTFCUVUwc2EwSkJRV3RDTEVkQlFVY3NLMFJCUVcxQ0xFTkJRelZETEdOQlFXTXNSVUZEWkN4UFFVRlBMRU5CUVVNc1MwRkJTeXhGUVVOaUxHRkJRV0VzUTBGRFpDeERRVUZETzBsQlEwWXNTVUZCU1N4WlFVRlpMRU5CUVVNN1NVRkRha0lzZVVWQlFYbEZPMGxCUTNwRkxESkRRVUV5UXp0SlFVTXpReXhKUVVGSkxFOUJRVThzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4RlFVRkZPMUZCUTNKQ0xGbEJRVmtzUjBGQlJ5eHJRa0ZCYTBJc1EwRkJRenRMUVVOdVF6dFRRVUZOTzFGQlEwd3NUVUZCVFN4aFFVRmhMRWRCUVVjc2IwVkJRWGRDTEVOQlF6VkRMR05CUVdNc1JVRkRaQ3hoUVVGaExFVkJRMklzYTBKQlFXdENMRVZCUTJ4Q0xFOUJRVThzUTBGQlF5eEhRVUZITEVOQlExb3NRMEZCUXp0UlFVTkdMRWxCUVVrc1lVRkJZU3hEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETEVWQlFVVTdXVUZET1VJc09FUkJRVGhFTzFsQlF6bEVMR2xFUVVGcFJEdFpRVU5xUkN4WlFVRlpMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTTdVMEZEYmtNN1lVRkJUVHRaUVVOTUxIZEZRVUYzUlR0WlFVTjRSU3haUVVGWkxFZEJRVWNzWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUTJwRE8wdEJRMFk3U1VGRFJDeG5Sa0ZCT0VJc1EwRkROVUlzWVVGQllTeEZRVU5pTzFGQlEwVTdXVUZEUlN4TFFVRkxMRVZCUVVVc1kwRkJZenRaUVVOeVFpeExRVUZMTEVWQlFVVXNOa1pCUVRKRExFTkJRMmhFTEdGQlFXRXNSVUZEWWl4WlFVRlpMRU5CUTJJN1UwRkRSanRMUVVOR0xFVkJRMFFzUlVGQlJTeERRVUZETEZWQlFWVXNTMEZCU3l4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRVZCUVVVc1QwRkJUeXhGUVVGRkxFTkJRM1JGTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxDdENRVUVyUWl4SFFVRkhMRU5CUTNSRExHTkJRWGxETEVWQlEzcERMR05CUVN0RExFVkJReTlETEU5QlFYTkVMRVZCUTNKQ0xFVkJRVVU3U1VGRGJrTXNTVUZCU1N4alFVRmpMRWxCUVVrc1NVRkJTU3hKUVVGSkxFOUJRVThzU1VGQlNTeEpRVUZKTEVWQlFVVTdVVUZETjBNc1QwRkJUeXhqUVVGakxFTkJRVU03UzBGRGRrSTdTVUZEUkN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFdEJRVXNzUlVGQlJTeFRRVUZUTEVWQlFVVXNSMEZCUnl4alFVRmpMRU5CUVVNN1NVRkRha1FzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlN4UlFVRlJMRVZCUVVVc1RVRkJUU3hGUVVGRkxGTkJRVk1zUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXp0SlFVTjJSQ3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4SFFVRkhMR05CUVdNc1EwRkJRenRKUVVONlF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVOeVFpeERRVUZETEVWQlEwUXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkRUaXg1UkVGQllTeERRVUZETEdOQlFXTXNSVUZCUlN4UlFVRlJMRVZCUVVVc1UwRkJVeXhEUVVGRExFVkJRMnhFTEVkQlFVY3NSMEZCUnl4RFFVRkRMRkZCUVZFc1IwRkJSeXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNSMEZCUnl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZEY2tVc1EwRkRSaXhEUVVGRE8wbEJRMFlzVDBGQlR5eEZRVUZGTEZOQlFWTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeERRVUZETzBGQlF6TkRMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzTmtKQlFUWkNMRWRCUVVjc1EwRkRNME1zVVVGQmVVTXNSVUZEY2tJc1JVRkJSVHRKUVVOMFFpeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMnBGTEU5QlFVOHNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlEyeERMRFpFUVVGblFpeERRVUZETEU5QlFVOHNRMEZCUXp0UlFVTjJRaXhEUVVGRExFTkJRVVVzY1VOQlFYRkRMRU5CUTNCRExFOUJRVGhETEVOQlF5OURMRU5CUVVNc1RVRkJUU3hEUVVOT0xFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMR3RDUVVGclFpeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRekZDTzFGQlF6RkNMRU5CUVVNc1EwRkJReXc0UkVGQmFVSXNRMEZCUXl4UFFVRlBMRU5CUVVNN1dVRkROVUlzUTBGQlF5eERRVUZETERoRFFVRTRReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZETlVRc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGRGNFUTdXVUZEU0N4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVOUUxFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MSEZEUVVGeFF5eEhRVUZITEVOQlF6VkRMR0ZCUVd0RUxFVkJRMVFzUlVGQlJUdEpRVU16UXl4UFFVRlBPMUZCUTB3c2IwTkJRVzlETEVOQlFVTXNZVUZCWVN4RlFVRkZMRTlCUVU4c1EwRkJRenRSUVVNMVJDeHZRMEZCYjBNc1EwRkJReXhoUVVGaExFVkJRVVVzUzBGQlN5eERRVUZETzB0QlF6TkVMRU5CUVVNc1RVRkJUU3hEUVVOT0xFTkJRVU1zVDBGQlR5eEZRVUZ2UkN4RlFVRkZMRU5CUXpWRUxFOUJRVThzU1VGQlNTeEpRVUZKTEVOQlEyeENMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU03UVVGRlJpeE5RVUZOTEc5RFFVRnZReXhIUVVGSExFTkJRek5ETEdGQlFXdEVMRVZCUTJ4RUxGVkJRVEpDTEVWQlEyMUNMRVZCUVVVN1NVRkRhRVFzVDBGQlR5d3lRa0ZCTWtJc1EwRkRhRU1zZVVKQlFYbENMRU5CUVVNc1lVRkJZU3hGUVVGRkxGVkJRVlVzUTBGQlF5eEZRVU53UkN3MlJFRkJZeXhEUVVGRExHRkJRV0VzUTBGQlJTeERRVU12UWl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRE8wRkJSVVlzVFVGQlRTeDVRa0ZCZVVJc1IwRkJSeXhEUVVOb1F5eGhRVUZyUkN4RlFVTnNSQ3hWUVVFeVFpeEZRVU5FTEVWQlFVVTdTVUZETlVJc1RVRkJUU3hMUVVGTExFZEJRVWNzVlVGQlZTeExRVUZMTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTTVReXhQUVVGUExHOUVRVUZaTEVOQlEycENMSE5IUVVGdlJDeERRVUZETEdGQlFXRXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkRNMFVzUTBGQlF6dEJRVU5LTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc09FTkJRVGhETEVkQlFVY3NRMEZEY2tRc1pVRkJjMFFzUlVGRE4wSXNSVUZCUlR0SlFVTXpRaXhQUVVGUExEWkVRVUZqTEVOQlFVTXNaVUZCWlN4RFFVRkZPMU5CUTNCRExGZEJRVmNzUlVGQlJUdFRRVU5pTEVkQlFVY3NRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRk8xRkJRMllzU1VGQlNTeERRVUZETERaRVFVRm5RaXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzFsQlF6bENMRTlCUVU4c1NVRkJTU3hEUVVGRE8xTkJRMkk3VVVGRFJDeE5RVUZOTEZsQlFWa3NSMEZCUnl3NFEwRkJPRU1zUTBGRGFrVXNUMEZCVHl4RlFVTlFMRTlCUVU4c1JVRkRVQ3hsUVVGbExFTkJRMmhDTEVOQlFVTTdVVUZEUml4TlFVRk5MRlZCUVZVc1IwRkJSeXc0UTBGQk9FTXNRMEZETDBRc1QwRkJUeXhGUVVOUUxFdEJRVXNzUlVGRFRDeGxRVUZsTEVOQlEyaENMRU5CUVVNN1VVRkRSaXhKUVVGSkxFTkJRVU1zV1VGQldTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZPMWxCUTJoRExFOUJRVThzU1VGQlNTeERRVUZETzFOQlEySTdVVUZEUkN4UFFVRlBPMWxCUTB3c1QwRkJUenRaUVVOUUxGbEJRVmtzU1VGQlNTeFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXM3V1VGRGNFVXNaVUZCWlR0VFFVTm9RaXhEUVVGRE8wbEJRMG9zUTBGQlF5eERRVUZETzFOQlEwUXNUVUZCVFN4RFFVRkRMRU5CUVVNc1dVRkJXU3hGUVVGRkxFVkJRVVVzUTBGQlF5eFpRVUZaTEVsQlFVa3NTVUZCU1N4RFFVRTBRaXhEUVVGRE8wRkJReTlGTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc09FTkJRVGhETEVkQlFVY3NRMEZEY2tRc1lVRkJhMFFzUlVGRGJFUXNWVUZCTWtJc1JVRkRNMElzWlVGQmMwUXNSVUZETjBNc1JVRkJSVHRKUVVOWUxFMUJRVTBzWlVGQlpTeEhRVU51UWl4aFFVRmhMRU5CUVVNc1ZVRkJWU3hMUVVGTExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dEpRVU40UlN4UFFVRlBMRU5CUTB3c1pVRkJaU3hKUVVGSkxFbEJRVWs3VVVGRGRrSXNRMEZCUXl4clJFRkJhMFFzUTBGRGFrUXNZVUZCWVN4RlFVTmlMR1ZCUVdVc1JVRkRaaXhWUVVGVkxFTkJRMWc3VVVGRFJDdzJSRUZCYVVJc1EwRkRaaXhsUVVGbExFVkJRMllzZVVKQlFYbENMRU5CUVVNc1lVRkJZU3hGUVVGRkxGVkJRVlVzUTBGQlF5eERRVU55UkN4RFFVTkdMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU03UVVGRlJpeGpRVUZqTzBGQlEyUXNhMFZCUVd0Rk8wRkJRMnhGTEhORlFVRnpSVHRCUVVNdlJDeE5RVUZOTERKQ1FVRXlRaXhIUVVGSExFTkJRM3BETEdGQlFUSkRMRVZCUXpORExGZEJRWGxETEVWQlEzcERMRzFDUVVFd1JUdEJRVU14UlN3MFJVRkJORVU3UVVGRE5VVXNjMFZCUVhORk8wRkJRM1JGTEhsRlFVRjVSVHRCUVVONlJTeHZRa0ZCYjBJN1FVRkRjRUlzYjBKQlFYbEVMRVZCUTI1RUxFVkJRVVU3U1VGRFVpeHhSVUZCY1VVN1NVRkRja1VzWjBWQlFXZEZPMGxCUTJoRkxFMUJRVTBzYTBKQlFXdENMRWRCUVdsRExFbEJRVWtzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZEYmtVc1RVRkJUU3h4UWtGQmNVSXNSMEZCYVVNc1NVRkJTU3hIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU4wUlN4TlFVRk5MR3RDUVVGclFpeEhRVUZITEc5Q1FVRnZRaXhMUVVGTExITkNRVUZ6UWl4RFFVRkRPMGxCUXpORkxGZEJRVmNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4VlFVRlZMRVZCUVVVc1JVRkJSVHRSUVVOcVF5eE5RVUZOTEVWQlFVVXNZVUZCWVN4RlFVRkZMRWRCUVVjc1ZVRkJWU3hEUVVGRE8xRkJRM0pETEVsQlFVa3NZVUZCWVN4SlFVRkpMRWxCUVVrc1NVRkJTU3hoUVVGaExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNSVUZCUlR0WlFVTnlSQ3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNXVUZCV1N4RlFVRkZMRVZCUVVVN1owSkJRM0pETEVsQlFVa3NhMEpCUVd0Q0xFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhIUVVGSExFTkJRVU1zV1VGQldTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZPMjlDUVVOdVJTeHJRa0ZCYTBJc1EwRkJReXhIUVVGSExFTkJRVU1zV1VGQldTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMmxDUVVONlF6dFpRVU5JTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTBnc2NVSkJRWEZDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1JVRkJSU3hEUVVGRkxFTkJRVU1zUTBGQlF6dFRRVU53UlR0UlFVTkVMRWxCUVVrc05rUkJRV2RDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUVVVN1dVRkRhRU1zU1VGQlNTeFZRVUZWTEVOQlFVTXNXVUZCV1N4SlFVRkpMRWxCUVVrc1JVRkJSVHRuUWtGRGJrTXNUVUZCVFN4RlFVRkZMRk5CUVZNc1JVRkJSU3hIUVVGSExGVkJRVlVzUTBGQlF5eFpRVUZaTEVOQlFVTTdaMEpCUXpsRExFbEJRVWtzYTBKQlFXdENMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1UwRkJVeXhEUVVGRExFVkJRVVU3YjBKQlF6ZEVMSEZDUVVGeFFpeERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRwUWtGRGRFTTdZVUZEUmp0WlFVTkVMRWxCUVVrc1ZVRkJWU3hEUVVGRExGVkJRVlVzU1VGQlNTeEpRVUZKTEVWQlFVVTdaMEpCUTJwRExFMUJRVTBzUlVGQlJTeFRRVUZUTEVWQlFVVXNSMEZCUnl4VlFVRlZMRU5CUVVNc1ZVRkJWU3hEUVVGRE8yZENRVU0xUXl4SlFVRkpMR3RDUVVGclFpeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4RlFVRkZPMjlDUVVNM1JDeHhRa0ZCY1VJc1EwRkJReXhIUVVGSExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdhVUpCUTNSRE8yRkJRMFk3V1VGRFJDeEpRVUZKTEZWQlFWVXNRMEZCUXl4WlFVRlpMRWxCUVVrc1NVRkJTU3hKUVVGSkxGVkJRVlVzUTBGQlF5eFZRVUZWTEVsQlFVa3NTVUZCU1N4RlFVRkZPMmRDUVVOd1JTeHJRa0ZCYTBJc1EwRkJReXhIUVVGSExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTEVOQlFVVXNRMEZCUXl4RFFVRkRPMkZCUTJwRk8xTkJRMFk3U1VGRFNDeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVklMRFpDUVVFMlFqdEpRVVV6UWl4aFFVRmhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUXpsQ0xHdENRVUZyUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGRk4wSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJUdFJRVU53UWl4TlFVRk5MRVZCUVVVc1dVRkJXU3hGUVVGRkxGVkJRVlVzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXp0UlFVTTNReXcyUkVGQllTeERRVUZETEU5QlFVOHNSVUZCUlR0WlFVTnlRaXhaUVVGWkxFVkJRVVVzTUVKQlFUQkNMRU5CUTNSRExGbEJRVmtzUlVGRFdpeHRRa0ZCYlVJc1EwRkRjRUk3V1VGRFJDeFZRVUZWTEVWQlFVVXNNRUpCUVRCQ0xFTkJRVU1zVlVGQlZTeEZRVUZGTEcxQ1FVRnRRaXhEUVVGRE8xTkJRM2hGTEVOQlFVTXNRMEZCUXp0SlFVTk1MRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSVWdzTmtKQlFUWkNPMGxCUXpkQ0xHRkJRV0U3VTBGRFZpeE5RVUZOTEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdVMEZEYWtRc1QwRkJUeXhEUVVGRExFTkJRVU1zWlVGQlpTeEZRVUZGTEVWQlFVVTdVVUZETTBJc1RVRkJUU3hGUVVGRkxHRkJRV0VzUlVGQlJTeEhRVUZITEdWQlFXVXNRMEZCUXp0UlFVTXhReXhKUVVGSkxHRkJRV0VzU1VGQlNTeEpRVUZKTEVsQlFVa3NZVUZCWVN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVU3V1VGRGNrUXNOa1JCUVdFc1EwRkJReXhsUVVGbExFVkJRVVU3WjBKQlF6ZENMR0ZCUVdFc1JVRkJSU3hoUVVGaExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNXVUZCV1N4RlFVRkZMRVZCUVVVc1EwRkRhRVFzYlVKQlFXMUNMRU5CUVVNc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGQlF5eEZRVUZGTEVOQlFVTTdiMEpCUTNSRExFTkJRVU1zUTBGQlF6dDNRa0ZEUlN4RlFVRkZMRVZCUVVVc2JVSkJRVzFDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhGUVVGRkxFTkJRVVU3ZDBKQlF6ZERMRWxCUVVrc1JVRkJSU3haUVVGWkxFTkJRVU1zU1VGQlNUdHhRa0ZEZUVJN2IwSkJRMGdzUTBGQlF5eERRVUZETEZsQlFWa3NRMEZEYWtJN1lVRkRSaXhEUVVGRExFTkJRVU03VTBGRFNqdEpRVU5JTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTFBc1EwRkJReXhEUVVGRE8wRkJSVVlzVFVGQlRTd3dRa0ZCTUVJc1IwRkJSeXhEUVVOcVF5eFBRVUUwUWl4RlFVTTFRaXh0UWtGQk1FVXNSVUZEY2tRc1JVRkJSVHM3U1VGRGRrSXNTVUZCU1N4UFFVRlBMRWxCUVVrc1NVRkJTU3hGUVVGRk8xRkJRMjVDTEU5QlFVOHNTVUZCU1N4RFFVRkRPMHRCUTJJN1NVRkRSQ3hOUVVGTkxFVkJRVVVzVTBGQlV5eEZRVUZGTEV0QlFVc3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU03U1VGRE1VTXNUMEZCVHp0UlFVTk1MRXRCUVVzN1VVRkRUQ3hIUVVGSE8xRkJRMGdzVTBGQlV5eEZRVUZGTEhsQ1FVRnRRaXhEUVVGRExFZEJRVWNzUTBGQlF5eFRRVUZUTEVOQlFVTXNiVU5CUVVrc1UwRkJVenRMUVVNelJDeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3gzUWtGQmQwSXNSMEZCUnl4RFFVTjBReXhoUVVFeVF5eEZRVU16UXl4bFFVRTJReXhGUVVOMlF5eEZRVUZGTzBsQlExSXNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZETDBJc1pVRkJaU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVU0zUXl4RFFVRkRPMGxCUTBZc2FVTkJRV2xETzBsQlEycERMRTFCUVUwc1pVRkJaU3hIUVVGcFF5eEpRVUZKTEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUTJoRkxHVkJRV1VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4alFVRmpMRVZCUVVVc1JVRkJSVHM3VVVGRGVrTXNTVUZCU1N3NFJFRkJhVUlzUTBGQlF5eGpRVUZqTEVOQlFVTXNSVUZCUlR0WlFVTnlReXh2UWtGQll5eERRVUZETEdGQlFXRXNNRU5CUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVTdaMEpCUTJoRUxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZPMjlDUVVOMFF5eGxRVUZsTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dHBRa0ZEYWtNN1dVRkRTQ3hEUVVGRExFTkJRVU1zUTBGQlF6dFRRVU5LTzBsQlEwZ3NRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZSQ3hoUVVGaExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRemxDTEdWQlFXVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJSVEZDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1QwRkJaME1zUlVGQlJTeEZRVUZGTzFGQlF6ZERMRTFCUVUwc1JVRkJSU3haUVVGWkxFVkJRVVVzVlVGQlZTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRPMUZCUXpkRExEWkVRVUZoTEVOQlFVTXNUMEZCVHl4RlFVRkZPMWxCUTNKQ0xGbEJRVmtzUlVGQlJTeDFRa0ZCZFVJc1EwRkJReXhaUVVGWkxFVkJRVVVzYVVKQlFXbENMRU5CUVVNN1dVRkRkRVVzVlVGQlZTeEZRVUZGTEhWQ1FVRjFRaXhEUVVGRExGVkJRVlVzUlVGQlJTeHBRa0ZCYVVJc1EwRkJRenRUUVVOdVJTeERRVUZETEVOQlFVTTdTVUZEVEN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOTUxFTkJRVU1zUTBGQlF6dEJRVVZHTEUxQlFVMHNkVUpCUVhWQ0xFZEJRVWNzUTBGRE9VSXNUMEZCTkVJc1JVRkROVUlzYVVKQlFTdERMRVZCUXpGQ0xFVkJRVVU3U1VGRGRrSXNTVUZCU1N4UFFVRlBMRWxCUVVrc1NVRkJTU3hKUVVGSkxHbENRVUZwUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFVVTdVVUZETDBRc1QwRkJUeXhKUVVGSkxFTkJRVU03UzBGRFlqdEpRVU5FTEU5QlFVOHNUMEZCVHl4RFFVRkRPMEZCUTJwQ0xFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTlsYkdWdFpXNTBMMkpwYm1ScGJtY3VkSE0vWVRJMk9DSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMXh1SUNCRmVHTmhiR2xrY21GM1RHbHVaV0Z5Uld4bGJXVnVkQ3hjYmlBZ1JYaGpZV3hwWkhKaGQwSnBibVJoWW14bFJXeGxiV1Z1ZEN4Y2JpQWdUbTl1UkdWc1pYUmxaQ3hjYmlBZ1RtOXVSR1ZzWlhSbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MExGeHVJQ0JRYjJsdWRFSnBibVJwYm1jc1hHNGdJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBMRnh1ZlNCbWNtOXRJRndpTGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1oyVjBSV3hsYldWdWRFRjBVRzl6YVhScGIyNGdmU0JtY205dElGd2lMaTR2YzJObGJtVmNJanRjYm1sdGNHOXlkQ0I3SUVGd2NGTjBZWFJsSUgwZ1puSnZiU0JjSWk0dUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JwYzBKcGJtUmhZbXhsUld4bGJXVnVkQ3hjYmlBZ2FYTkNhVzVrYVc1blJXeGxiV1Z1ZEN4Y2JpQWdhWE5NYVc1bFlYSkZiR1Z0Wlc1MExGeHVmU0JtY205dElGd2lMaTkwZVhCbFEyaGxZMnR6WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JpYVc1a2FXNW5RbTl5WkdWeVZHVnpkQ3hjYmlBZ1pHbHpkR0Z1WTJWVWIwSnBibVJoWW14bFJXeGxiV1Z1ZEN4Y2JpQWdiV0Y0UW1sdVpHbHVaMGRoY0N4Y2JpQWdaR1YwWlhKdGFXNWxSbTlqZFhORWFYTjBZVzVqWlN4Y2JpQWdhVzUwWlhKelpXTjBSV3hsYldWdWRGZHBkR2hNYVc1bExGeHVJQ0JrWlhSbGNtMXBibVZHYjJOMWMxQnZhVzUwTEZ4dWZTQm1jbTl0SUZ3aUxpOWpiMnhzYVhOcGIyNWNJanRjYm1sdGNHOXlkQ0I3SUcxMWRHRjBaVVZzWlcxbGJuUWdmU0JtY205dElGd2lMaTl0ZFhSaGRHVkZiR1Z0Wlc1MFhDSTdYRzVwYlhCdmNuUWdVMk5sYm1VZ1puSnZiU0JjSWk0dUwzTmpaVzVsTDFOalpXNWxYQ0k3WEc1cGJYQnZjblFnZXlCTWFXNWxZWEpGYkdWdFpXNTBSV1JwZEc5eUlIMGdabkp2YlNCY0lpNHZiR2x1WldGeVJXeGxiV1Z1ZEVWa2FYUnZjbHdpTzF4dWFXMXdiM0owSUhzZ1lYSnlZWGxVYjAxaGNDd2dkSFZ3YkdWVWIwTnZiM0p6SUgwZ1puSnZiU0JjSWk0dUwzVjBhV3h6WENJN1hHNXBiWEJ2Y25RZ2V5QkxSVmxUSUgwZ1puSnZiU0JjSWk0dUwydGxlWE5jSWp0Y2JseHVaWGh3YjNKMElIUjVjR1VnVTNWbloyVnpkR1ZrUW1sdVpHbHVaeUE5WEc0Z0lId2dUbTl1UkdWc1pYUmxaRHhGZUdOaGJHbGtjbUYzUW1sdVpHRmliR1ZGYkdWdFpXNTBQbHh1SUNCOElGTjFaMmRsYzNSbFpGQnZhVzUwUW1sdVpHbHVaenRjYmx4dVpYaHdiM0owSUhSNWNHVWdVM1ZuWjJWemRHVmtVRzlwYm5SQ2FXNWthVzVuSUQwZ1cxeHVJQ0JPYjI1RVpXeGxkR1ZrUEVWNFkyRnNhV1J5WVhkTWFXNWxZWEpGYkdWdFpXNTBQaXhjYmlBZ1hDSnpkR0Z5ZEZ3aUlId2dYQ0psYm1SY0lpQjhJRndpWW05MGFGd2lMRnh1SUNCT2IyNUVaV3hsZEdWa1BFVjRZMkZzYVdSeVlYZENhVzVrWVdKc1pVVnNaVzFsYm5RK0xGeHVYVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJSE5vYjNWc1pFVnVZV0pzWlVKcGJtUnBibWRHYjNKUWIybHVkR1Z5UlhabGJuUWdQU0FvWEc0Z0lHVjJaVzUwT2lCU1pXRmpkQzVRYjJsdWRHVnlSWFpsYm5ROFNGUk5URU5oYm5aaGMwVnNaVzFsYm5RK0xGeHVLU0E5UGlCN1hHNGdJSEpsZEhWeWJpQWhaWFpsYm5SYlMwVlpVeTVEVkZKTVgwOVNYME5OUkYwN1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdhWE5DYVc1a2FXNW5SVzVoWW14bFpDQTlJQ2hoY0hCVGRHRjBaVG9nUVhCd1UzUmhkR1VwT2lCaWIyOXNaV0Z1SUQwK0lIdGNiaUFnY21WMGRYSnVJR0Z3Y0ZOMFlYUmxMbWx6UW1sdVpHbHVaMFZ1WVdKc1pXUTdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWW1sdVpFOXlWVzVpYVc1a1RHbHVaV0Z5Uld4bGJXVnVkQ0E5SUNoY2JpQWdiR2x1WldGeVJXeGxiV1Z1ZERvZ1RtOXVSR1ZzWlhSbFpEeEZlR05oYkdsa2NtRjNUR2x1WldGeVJXeGxiV1Z1ZEQ0c1hHNGdJSE4wWVhKMFFtbHVaR2x1WjBWc1pXMWxiblE2SUVWNFkyRnNhV1J5WVhkQ2FXNWtZV0pzWlVWc1pXMWxiblFnZkNCdWRXeHNJSHdnWENKclpXVndYQ0lzWEc0Z0lHVnVaRUpwYm1ScGJtZEZiR1Z0Wlc1ME9pQkZlR05oYkdsa2NtRjNRbWx1WkdGaWJHVkZiR1Z0Wlc1MElId2diblZzYkNCOElGd2lhMlZsY0Z3aUxGeHVLVG9nZG05cFpDQTlQaUI3WEc0Z0lHTnZibk4wSUdKdmRXNWtWRzlGYkdWdFpXNTBTV1J6T2lCVFpYUThSWGhqWVd4cFpISmhkMEpwYm1SaFlteGxSV3hsYldWdWRGdGNJbWxrWENKZFBpQTlJRzVsZHlCVFpYUW9LVHRjYmlBZ1kyOXVjM1FnZFc1aWIzVnVaRVp5YjIxRmJHVnRaVzUwU1dSek9pQlRaWFE4UlhoallXeHBaSEpoZDBKcGJtUmhZbXhsUld4bGJXVnVkRnRjSW1sa1hDSmRQaUE5SUc1bGR5QlRaWFFvS1R0Y2JpQWdZbWx1WkU5eVZXNWlhVzVrVEdsdVpXRnlSV3hsYldWdWRFVmtaMlVvWEc0Z0lDQWdiR2x1WldGeVJXeGxiV1Z1ZEN4Y2JpQWdJQ0J6ZEdGeWRFSnBibVJwYm1kRmJHVnRaVzUwTEZ4dUlDQWdJR1Z1WkVKcGJtUnBibWRGYkdWdFpXNTBMRnh1SUNBZ0lGd2ljM1JoY25SY0lpeGNiaUFnSUNCaWIzVnVaRlJ2Uld4bGJXVnVkRWxrY3l4Y2JpQWdJQ0IxYm1KdmRXNWtSbkp2YlVWc1pXMWxiblJKWkhNc1hHNGdJQ2s3WEc0Z0lHSnBibVJQY2xWdVltbHVaRXhwYm1WaGNrVnNaVzFsYm5SRlpHZGxLRnh1SUNBZ0lHeHBibVZoY2tWc1pXMWxiblFzWEc0Z0lDQWdaVzVrUW1sdVpHbHVaMFZzWlcxbGJuUXNYRzRnSUNBZ2MzUmhjblJDYVc1a2FXNW5SV3hsYldWdWRDeGNiaUFnSUNCY0ltVnVaRndpTEZ4dUlDQWdJR0p2ZFc1a1ZHOUZiR1Z0Wlc1MFNXUnpMRnh1SUNBZ0lIVnVZbTkxYm1SR2NtOXRSV3hsYldWdWRFbGtjeXhjYmlBZ0tUdGNibHh1SUNCamIyNXpkQ0J2Ym14NVZXNWliM1Z1WkNBOUlFRnljbUY1TG1aeWIyMG9kVzVpYjNWdVpFWnliMjFGYkdWdFpXNTBTV1J6S1M1bWFXeDBaWElvWEc0Z0lDQWdLR2xrS1NBOVBpQWhZbTkxYm1SVWIwVnNaVzFsYm5SSlpITXVhR0Z6S0dsa0tTeGNiaUFnS1R0Y2JpQWdVMk5sYm1VdVoyVjBVMk5sYm1Vb2JHbHVaV0Z5Uld4bGJXVnVkQ2toWEc0Z0lDQWdMbWRsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3lodmJteDVWVzVpYjNWdVpDbGNiaUFnSUNBdVptOXlSV0ZqYUNnb1pXeGxiV1Z1ZENrZ1BUNGdlMXh1SUNBZ0lDQWdiWFYwWVhSbFJXeGxiV1Z1ZENobGJHVnRaVzUwTENCN1hHNGdJQ0FnSUNBZ0lHSnZkVzVrUld4bGJXVnVkSE02SUdWc1pXMWxiblF1WW05MWJtUkZiR1Z0Wlc1MGN6OHVabWxzZEdWeUtGeHVJQ0FnSUNBZ0lDQWdJQ2hsYkdWdFpXNTBLU0E5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRDNTBlWEJsSUNFOVBTQmNJbUZ5Y205M1hDSWdmSHdnWld4bGJXVnVkQzVwWkNBaFBUMGdiR2x1WldGeVJXeGxiV1Z1ZEM1cFpDeGNiaUFnSUNBZ0lDQWdLU3hjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDBwTzF4dWZUdGNibHh1WTI5dWMzUWdZbWx1WkU5eVZXNWlhVzVrVEdsdVpXRnlSV3hsYldWdWRFVmtaMlVnUFNBb1hHNGdJR3hwYm1WaGNrVnNaVzFsYm5RNklFNXZia1JsYkdWMFpXUThSWGhqWVd4cFpISmhkMHhwYm1WaGNrVnNaVzFsYm5RK0xGeHVJQ0JpYVc1a1lXSnNaVVZzWlcxbGJuUTZJRVY0WTJGc2FXUnlZWGRDYVc1a1lXSnNaVVZzWlcxbGJuUWdmQ0J1ZFd4c0lId2dYQ0pyWldWd1hDSXNYRzRnSUc5MGFHVnlSV1JuWlVKcGJtUmhZbXhsUld4bGJXVnVkRG9nUlhoallXeHBaSEpoZDBKcGJtUmhZbXhsUld4bGJXVnVkQ0I4SUc1MWJHd2dmQ0JjSW10bFpYQmNJaXhjYmlBZ2MzUmhjblJQY2tWdVpEb2dYQ0p6ZEdGeWRGd2lJSHdnWENKbGJtUmNJaXhjYmlBZ0x5OGdTWE1nYlhWMFlYUmxaRnh1SUNCaWIzVnVaRlJ2Uld4bGJXVnVkRWxrY3pvZ1UyVjBQRVY0WTJGc2FXUnlZWGRDYVc1a1lXSnNaVVZzWlcxbGJuUmJYQ0pwWkZ3aVhUNHNYRzRnSUM4dklFbHpJRzExZEdGMFpXUmNiaUFnZFc1aWIzVnVaRVp5YjIxRmJHVnRaVzUwU1dSek9pQlRaWFE4UlhoallXeHBaSEpoZDBKcGJtUmhZbXhsUld4bGJXVnVkRnRjSW1sa1hDSmRQaXhjYmlrNklIWnZhV1FnUFQ0Z2UxeHVJQ0JwWmlBb1ltbHVaR0ZpYkdWRmJHVnRaVzUwSUNFOVBTQmNJbXRsWlhCY0lpa2dlMXh1SUNBZ0lHbG1JQ2hpYVc1a1lXSnNaVVZzWlcxbGJuUWdJVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdMeThnUkc5dUozUWdZbWx1WkNCcFppQjNaU2R5WlNCMGNubHBibWNnZEc4Z1ltbHVaQ0J2Y2lCaGNtVWdZV3h5WldGa2VTQmliM1Z1WkNCMGJ5QjBhR1VnYzJGdFpWeHVJQ0FnSUNBZ0x5OGdaV3hsYldWdWRDQnZiaUIwYUdVZ2IzUm9aWElnWldSblpTQmhiSEpsWVdSNUlDaGNJbk4wWVhKMFhDSWdaV1JuWlNCMFlXdGxjeUJ3Y21WalpXUmxibU5sS1M1Y2JpQWdJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lDQWdiM1JvWlhKRlpHZGxRbWx1WkdGaWJHVkZiR1Z0Wlc1MElEMDlJRzUxYkd3Z2ZIeGNiaUFnSUNBZ0lDQWdLRzkwYUdWeVJXUm5aVUpwYm1SaFlteGxSV3hsYldWdWRDQTlQVDBnWENKclpXVndYQ0pjYmlBZ0lDQWdJQ0FnSUNBL0lDRnBjMHhwYm1WaGNrVnNaVzFsYm5SVGFXMXdiR1ZCYm1SQmJISmxZV1I1UW05MWJtUlBiazl3Y0c5emFYUmxSV1JuWlNoY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdsdVpXRnlSV3hsYldWdWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1ltbHVaR0ZpYkdWRmJHVnRaVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZEdGeWRFOXlSVzVrTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdJQ0FnSURvZ2MzUmhjblJQY2tWdVpDQTlQVDBnWENKemRHRnlkRndpSUh4OFhHNGdJQ0FnSUNBZ0lDQWdJQ0J2ZEdobGNrVmtaMlZDYVc1a1lXSnNaVVZzWlcxbGJuUXVhV1FnSVQwOUlHSnBibVJoWW14bFJXeGxiV1Z1ZEM1cFpDbGNiaUFnSUNBZ0lDa2dlMXh1SUNBZ0lDQWdJQ0JpYVc1a1RHbHVaV0Z5Uld4bGJXVnVkQ2hzYVc1bFlYSkZiR1Z0Wlc1MExDQmlhVzVrWVdKc1pVVnNaVzFsYm5Rc0lITjBZWEowVDNKRmJtUXBPMXh1SUNBZ0lDQWdJQ0JpYjNWdVpGUnZSV3hsYldWdWRFbGtjeTVoWkdRb1ltbHVaR0ZpYkdWRmJHVnRaVzUwTG1sa0tUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnWTI5dWMzUWdkVzVpYjNWdVpDQTlJSFZ1WW1sdVpFeHBibVZoY2tWc1pXMWxiblFvYkdsdVpXRnlSV3hsYldWdWRDd2djM1JoY25SUGNrVnVaQ2s3WEc0Z0lDQWdJQ0JwWmlBb2RXNWliM1Z1WkNBaFBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lIVnVZbTkxYm1SR2NtOXRSV3hsYldWdWRFbGtjeTVoWkdRb2RXNWliM1Z1WkNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQjlYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWW1sdVpFOXlWVzVpYVc1a1UyVnNaV04wWldSRmJHVnRaVzUwY3lBOUlDaGNiaUFnWld4bGJXVnVkSE02SUU1dmJrUmxiR1YwWldROFJYaGpZV3hwWkhKaGQwVnNaVzFsYm5RK1cxMHNYRzRwT2lCMmIybGtJRDArSUh0Y2JpQWdaV3hsYldWdWRITXVabTl5UldGamFDZ29aV3hsYldWdWRDa2dQVDRnZTF4dUlDQWdJR2xtSUNocGMwSnBibVJwYm1kRmJHVnRaVzUwS0dWc1pXMWxiblFwS1NCN1hHNGdJQ0FnSUNCaWFXNWtUM0pWYm1KcGJtUk1hVzVsWVhKRmJHVnRaVzUwS0Z4dUlDQWdJQ0FnSUNCbGJHVnRaVzUwTEZ4dUlDQWdJQ0FnSUNCblpYUkZiR3hwWjJsaWJHVkZiR1Z0Wlc1MFJtOXlRbWx1WkdsdVowVnNaVzFsYm5Rb1pXeGxiV1Z1ZEN3Z1hDSnpkR0Z5ZEZ3aUtTeGNiaUFnSUNBZ0lDQWdaMlYwUld4c2FXZHBZbXhsUld4bGJXVnVkRVp2Y2tKcGJtUnBibWRGYkdWdFpXNTBLR1ZzWlcxbGJuUXNJRndpWlc1a1hDSXBMRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2FXWWdLR2x6UW1sdVpHRmliR1ZGYkdWdFpXNTBLR1ZzWlcxbGJuUXBLU0I3WEc0Z0lDQWdJQ0J0WVhsaVpVSnBibVJDYVc1a1lXSnNaVVZzWlcxbGJuUW9aV3hsYldWdWRDazdYRzRnSUNBZ2ZWeHVJQ0I5S1R0Y2JuMDdYRzVjYm1OdmJuTjBJRzFoZVdKbFFtbHVaRUpwYm1SaFlteGxSV3hsYldWdWRDQTlJQ2hjYmlBZ1ltbHVaR0ZpYkdWRmJHVnRaVzUwT2lCT2IyNUVaV3hsZEdWa1BFVjRZMkZzYVdSeVlYZENhVzVrWVdKc1pVVnNaVzFsYm5RK0xGeHVLVG9nZG05cFpDQTlQaUI3WEc0Z0lHZGxkRVZzYkdsbmFXSnNaVVZzWlcxbGJuUnpSbTl5UW1sdVpHRmliR1ZGYkdWdFpXNTBRVzVrVjJobGNtVW9ZbWx1WkdGaWJHVkZiR1Z0Wlc1MEtTNW1iM0pGWVdOb0tGeHVJQ0FnSUNoYmJHbHVaV0Z5Uld4bGJXVnVkQ3dnZDJobGNtVmRLU0E5UGx4dUlDQWdJQ0FnWW1sdVpFOXlWVzVpYVc1a1RHbHVaV0Z5Uld4bGJXVnVkQ2hjYmlBZ0lDQWdJQ0FnYkdsdVpXRnlSV3hsYldWdWRDeGNiaUFnSUNBZ0lDQWdkMmhsY21VZ1BUMDlJRndpWlc1a1hDSWdQeUJjSW10bFpYQmNJaUE2SUdKcGJtUmhZbXhsUld4bGJXVnVkQ3hjYmlBZ0lDQWdJQ0FnZDJobGNtVWdQVDA5SUZ3aWMzUmhjblJjSWlBL0lGd2lhMlZsY0Z3aUlEb2dZbWx1WkdGaWJHVkZiR1Z0Wlc1MExGeHVJQ0FnSUNBZ0tTeGNiaUFnS1R0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnRZWGxpWlVKcGJtUk1hVzVsWVhKRmJHVnRaVzUwSUQwZ0tGeHVJQ0JzYVc1bFlYSkZiR1Z0Wlc1ME9pQk9iMjVFWld4bGRHVmtQRVY0WTJGc2FXUnlZWGRNYVc1bFlYSkZiR1Z0Wlc1MFBpeGNiaUFnWVhCd1UzUmhkR1U2SUVGd2NGTjBZWFJsTEZ4dUlDQnpZMlZ1WlRvZ1UyTmxibVVzWEc0Z0lIQnZhVzUwWlhKRGIyOXlaSE02SUhzZ2VEb2diblZ0WW1WeU95QjVPaUJ1ZFcxaVpYSWdmU3hjYmlrNklIWnZhV1FnUFQ0Z2UxeHVJQ0JwWmlBb1lYQndVM1JoZEdVdWMzUmhjblJDYjNWdVpFVnNaVzFsYm5RZ0lUMGdiblZzYkNrZ2UxeHVJQ0FnSUdKcGJtUk1hVzVsWVhKRmJHVnRaVzUwS0d4cGJtVmhja1ZzWlcxbGJuUXNJR0Z3Y0ZOMFlYUmxMbk4wWVhKMFFtOTFibVJGYkdWdFpXNTBMQ0JjSW5OMFlYSjBYQ0lwTzF4dUlDQjlYRzRnSUdOdmJuTjBJR2h2ZG1WeVpXUkZiR1Z0Wlc1MElEMGdaMlYwU0c5MlpYSmxaRVZzWlcxbGJuUkdiM0pDYVc1a2FXNW5LSEJ2YVc1MFpYSkRiMjl5WkhNc0lITmpaVzVsS1R0Y2JpQWdhV1lnS0Z4dUlDQWdJR2h2ZG1WeVpXUkZiR1Z0Wlc1MElDRTlJRzUxYkd3Z0ppWmNiaUFnSUNBaGFYTk1hVzVsWVhKRmJHVnRaVzUwVTJsdGNHeGxRVzVrUVd4eVpXRmtlVUp2ZFc1a1QyNVBjSEJ2YzJsMFpVVmtaMlVvWEc0Z0lDQWdJQ0JzYVc1bFlYSkZiR1Z0Wlc1MExGeHVJQ0FnSUNBZ2FHOTJaWEpsWkVWc1pXMWxiblFzWEc0Z0lDQWdJQ0JjSW1WdVpGd2lMRnh1SUNBZ0lDbGNiaUFnS1NCN1hHNGdJQ0FnWW1sdVpFeHBibVZoY2tWc1pXMWxiblFvYkdsdVpXRnlSV3hsYldWdWRDd2dhRzkyWlhKbFpFVnNaVzFsYm5Rc0lGd2laVzVrWENJcE8xeHVJQ0I5WEc1OU8xeHVYRzVqYjI1emRDQmlhVzVrVEdsdVpXRnlSV3hsYldWdWRDQTlJQ2hjYmlBZ2JHbHVaV0Z5Uld4bGJXVnVkRG9nVG05dVJHVnNaWFJsWkR4RmVHTmhiR2xrY21GM1RHbHVaV0Z5Uld4bGJXVnVkRDRzWEc0Z0lHaHZkbVZ5WldSRmJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1FtbHVaR0ZpYkdWRmJHVnRaVzUwTEZ4dUlDQnpkR0Z5ZEU5eVJXNWtPaUJjSW5OMFlYSjBYQ0lnZkNCY0ltVnVaRndpTEZ4dUtUb2dkbTlwWkNBOVBpQjdYRzRnSUcxMWRHRjBaVVZzWlcxbGJuUW9iR2x1WldGeVJXeGxiV1Z1ZEN3Z2UxeHVJQ0FnSUZ0emRHRnlkRTl5Ulc1a0lEMDlQU0JjSW5OMFlYSjBYQ0lnUHlCY0luTjBZWEowUW1sdVpHbHVaMXdpSURvZ1hDSmxibVJDYVc1a2FXNW5YQ0pkT2lCN1hHNGdJQ0FnSUNCbGJHVnRaVzUwU1dRNklHaHZkbVZ5WldSRmJHVnRaVzUwTG1sa0xGeHVJQ0FnSUNBZ0xpNHVZMkZzWTNWc1lYUmxSbTlqZFhOQmJtUkhZWEFvYkdsdVpXRnlSV3hsYldWdWRDd2dhRzkyWlhKbFpFVnNaVzFsYm5Rc0lITjBZWEowVDNKRmJtUXBMRnh1SUNBZ0lIMGdZWE1nVUc5cGJuUkNhVzVrYVc1bkxGeHVJQ0I5S1R0Y2JseHVJQ0JqYjI1emRDQmliM1Z1WkVWc1pXMWxiblJ6VFdGd0lEMGdZWEp5WVhsVWIwMWhjQ2hvYjNabGNtVmtSV3hsYldWdWRDNWliM1Z1WkVWc1pXMWxiblJ6SUh4OElGdGRLVHRjYmlBZ2FXWWdLQ0ZpYjNWdVpFVnNaVzFsYm5SelRXRndMbWhoY3loc2FXNWxZWEpGYkdWdFpXNTBMbWxrS1NrZ2UxeHVJQ0FnSUcxMWRHRjBaVVZzWlcxbGJuUW9hRzkyWlhKbFpFVnNaVzFsYm5Rc0lIdGNiaUFnSUNBZ0lHSnZkVzVrUld4bGJXVnVkSE02SUNob2IzWmxjbVZrUld4bGJXVnVkQzVpYjNWdVpFVnNaVzFsYm5SeklIeDhJRnRkS1M1amIyNWpZWFFvZTF4dUlDQWdJQ0FnSUNCcFpEb2diR2x1WldGeVJXeGxiV1Z1ZEM1cFpDeGNiaUFnSUNBZ0lDQWdkSGx3WlRvZ1hDSmhjbkp2ZDF3aUxGeHVJQ0FnSUNBZ2ZTa3NYRzRnSUNBZ2ZTazdYRzRnSUgxY2JuMDdYRzVjYmk4dklFUnZiaWQwSUdKcGJtUWdZbTkwYUNCbGJtUnpJRzltSUdFZ2MybHRjR3hsSUhObFoyMWxiblJjYm1OdmJuTjBJR2x6VEdsdVpXRnlSV3hsYldWdWRGTnBiWEJzWlVGdVpFRnNjbVZoWkhsQ2IzVnVaRTl1VDNCd2IzTnBkR1ZGWkdkbElEMGdLRnh1SUNCc2FXNWxZWEpGYkdWdFpXNTBPaUJPYjI1RVpXeGxkR1ZrUEVWNFkyRnNhV1J5WVhkTWFXNWxZWEpGYkdWdFpXNTBQaXhjYmlBZ1ltbHVaR0ZpYkdWRmJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1FtbHVaR0ZpYkdWRmJHVnRaVzUwTEZ4dUlDQnpkR0Z5ZEU5eVJXNWtPaUJjSW5OMFlYSjBYQ0lnZkNCY0ltVnVaRndpTEZ4dUtUb2dZbTl2YkdWaGJpQTlQaUI3WEc0Z0lHTnZibk4wSUc5MGFHVnlRbWx1WkdsdVp5QTlYRzRnSUNBZ2JHbHVaV0Z5Uld4bGJXVnVkRnR6ZEdGeWRFOXlSVzVrSUQwOVBTQmNJbk4wWVhKMFhDSWdQeUJjSW1WdVpFSnBibVJwYm1kY0lpQTZJRndpYzNSaGNuUkNhVzVrYVc1blhDSmRPMXh1SUNCeVpYUjFjbTRnYVhOTWFXNWxZWEpGYkdWdFpXNTBVMmx0Y0d4bFFXNWtRV3h5WldGa2VVSnZkVzVrS0Z4dUlDQWdJR3hwYm1WaGNrVnNaVzFsYm5Rc1hHNGdJQ0FnYjNSb1pYSkNhVzVrYVc1blB5NWxiR1Z0Wlc1MFNXUXNYRzRnSUNBZ1ltbHVaR0ZpYkdWRmJHVnRaVzUwTEZ4dUlDQXBPMXh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdselRHbHVaV0Z5Uld4bGJXVnVkRk5wYlhCc1pVRnVaRUZzY21WaFpIbENiM1Z1WkNBOUlDaGNiaUFnYkdsdVpXRnlSV3hsYldWdWREb2dUbTl1UkdWc1pYUmxaRHhGZUdOaGJHbGtjbUYzVEdsdVpXRnlSV3hsYldWdWRENHNYRzRnSUdGc2NtVmhaSGxDYjNWdVpGUnZTV1E2SUVWNFkyRnNhV1J5WVhkQ2FXNWtZV0pzWlVWc1pXMWxiblJiWENKcFpGd2lYU0I4SUhWdVpHVm1hVzVsWkN4Y2JpQWdZbWx1WkdGaWJHVkZiR1Z0Wlc1ME9pQkZlR05oYkdsa2NtRjNRbWx1WkdGaWJHVkZiR1Z0Wlc1MExGeHVLVG9nWW05dmJHVmhiaUE5UGlCN1hHNGdJSEpsZEhWeWJpQW9YRzRnSUNBZ1lXeHlaV0ZrZVVKdmRXNWtWRzlKWkNBOVBUMGdZbWx1WkdGaWJHVkZiR1Z0Wlc1MExtbGtJQ1ltSUd4cGJtVmhja1ZzWlcxbGJuUXVjRzlwYm5SekxteGxibWQwYUNBOElETmNiaUFnS1R0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQjFibUpwYm1STWFXNWxZWEpGYkdWdFpXNTBjeUE5SUNoY2JpQWdaV3hsYldWdWRITTZJRTV2YmtSbGJHVjBaV1E4UlhoallXeHBaSEpoZDBWc1pXMWxiblErVzEwc1hHNHBPaUIyYjJsa0lEMCtJSHRjYmlBZ1pXeGxiV1Z1ZEhNdVptOXlSV0ZqYUNnb1pXeGxiV1Z1ZENrZ1BUNGdlMXh1SUNBZ0lHbG1JQ2hwYzBKcGJtUnBibWRGYkdWdFpXNTBLR1ZzWlcxbGJuUXBLU0I3WEc0Z0lDQWdJQ0JpYVc1a1QzSlZibUpwYm1STWFXNWxZWEpGYkdWdFpXNTBLR1ZzWlcxbGJuUXNJRzUxYkd3c0lHNTFiR3dwTzF4dUlDQWdJSDFjYmlBZ2ZTazdYRzU5TzF4dVhHNWpiMjV6ZENCMWJtSnBibVJNYVc1bFlYSkZiR1Z0Wlc1MElEMGdLRnh1SUNCc2FXNWxZWEpGYkdWdFpXNTBPaUJPYjI1RVpXeGxkR1ZrUEVWNFkyRnNhV1J5WVhkTWFXNWxZWEpGYkdWdFpXNTBQaXhjYmlBZ2MzUmhjblJQY2tWdVpEb2dYQ0p6ZEdGeWRGd2lJSHdnWENKbGJtUmNJaXhjYmlrNklFVjRZMkZzYVdSeVlYZENhVzVrWVdKc1pVVnNaVzFsYm5SYlhDSnBaRndpWFNCOElHNTFiR3dnUFQ0Z2UxeHVJQ0JqYjI1emRDQm1hV1ZzWkNBOUlITjBZWEowVDNKRmJtUWdQVDA5SUZ3aWMzUmhjblJjSWlBL0lGd2ljM1JoY25SQ2FXNWthVzVuWENJZ09pQmNJbVZ1WkVKcGJtUnBibWRjSWp0Y2JpQWdZMjl1YzNRZ1ltbHVaR2x1WnlBOUlHeHBibVZoY2tWc1pXMWxiblJiWm1sbGJHUmRPMXh1SUNCcFppQW9ZbWx1WkdsdVp5QTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUgxY2JpQWdiWFYwWVhSbFJXeGxiV1Z1ZENoc2FXNWxZWEpGYkdWdFpXNTBMQ0I3SUZ0bWFXVnNaRjA2SUc1MWJHd2dmU2s3WEc0Z0lISmxkSFZ5YmlCaWFXNWthVzVuTG1Wc1pXMWxiblJKWkR0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm5aWFJJYjNabGNtVmtSV3hsYldWdWRFWnZja0pwYm1ScGJtY2dQU0FvWEc0Z0lIQnZhVzUwWlhKRGIyOXlaSE02SUh0Y2JpQWdJQ0I0T2lCdWRXMWlaWEk3WEc0Z0lDQWdlVG9nYm5WdFltVnlPMXh1SUNCOUxGeHVJQ0J6WTJWdVpUb2dVMk5sYm1Vc1hHNHBPaUJPYjI1RVpXeGxkR1ZrUEVWNFkyRnNhV1J5WVhkQ2FXNWtZV0pzWlVWc1pXMWxiblErSUh3Z2JuVnNiQ0E5UGlCN1hHNGdJR052Ym5OMElHaHZkbVZ5WldSRmJHVnRaVzUwSUQwZ1oyVjBSV3hsYldWdWRFRjBVRzl6YVhScGIyNG9YRzRnSUNBZ2MyTmxibVV1WjJWMFJXeGxiV1Z1ZEhNb0tTeGNiaUFnSUNBb1pXeGxiV1Z1ZENrZ1BUNWNiaUFnSUNBZ0lHbHpRbWx1WkdGaWJHVkZiR1Z0Wlc1MEtHVnNaVzFsYm5RcElDWW1JR0pwYm1ScGJtZENiM0prWlhKVVpYTjBLR1ZzWlcxbGJuUXNJSEJ2YVc1MFpYSkRiMjl5WkhNcExGeHVJQ0FwTzF4dUlDQnlaWFIxY200Z2FHOTJaWEpsWkVWc1pXMWxiblFnWVhNZ1RtOXVSR1ZzWlhSbFpEeEZlR05oYkdsa2NtRjNRbWx1WkdGaWJHVkZiR1Z0Wlc1MFBpQjhJRzUxYkd3N1hHNTlPMXh1WEc1amIyNXpkQ0JqWVd4amRXeGhkR1ZHYjJOMWMwRnVaRWRoY0NBOUlDaGNiaUFnYkdsdVpXRnlSV3hsYldWdWREb2dUbTl1UkdWc1pYUmxaRHhGZUdOaGJHbGtjbUYzVEdsdVpXRnlSV3hsYldWdWRENHNYRzRnSUdodmRtVnlaV1JGYkdWdFpXNTBPaUJGZUdOaGJHbGtjbUYzUW1sdVpHRmliR1ZGYkdWdFpXNTBMRnh1SUNCemRHRnlkRTl5Ulc1a09pQmNJbk4wWVhKMFhDSWdmQ0JjSW1WdVpGd2lMRnh1S1RvZ2V5Qm1iMk4xY3pvZ2JuVnRZbVZ5T3lCbllYQTZJRzUxYldKbGNpQjlJRDArSUh0Y2JpQWdZMjl1YzNRZ1pHbHlaV04wYVc5dUlEMGdjM1JoY25SUGNrVnVaQ0E5UFQwZ1hDSnpkR0Z5ZEZ3aUlEOGdMVEVnT2lBeE8xeHVJQ0JqYjI1emRDQmxaR2RsVUc5cGJuUkpibVJsZUNBOUlHUnBjbVZqZEdsdmJpQTlQVDBnTFRFZ1B5QXdJRG9nYkdsdVpXRnlSV3hsYldWdWRDNXdiMmx1ZEhNdWJHVnVaM1JvSUMwZ01UdGNiaUFnWTI5dWMzUWdZV1JxWVdObGJuUlFiMmx1ZEVsdVpHVjRJRDBnWldSblpWQnZhVzUwU1c1a1pYZ2dMU0JrYVhKbFkzUnBiMjQ3WEc0Z0lHTnZibk4wSUdWa1oyVlFiMmx1ZENBOUlFeHBibVZoY2tWc1pXMWxiblJGWkdsMGIzSXVaMlYwVUc5cGJuUkJkRWx1WkdWNFIyeHZZbUZzUTI5dmNtUnBibUYwWlhNb1hHNGdJQ0FnYkdsdVpXRnlSV3hsYldWdWRDeGNiaUFnSUNCbFpHZGxVRzlwYm5SSmJtUmxlQ3hjYmlBZ0tUdGNiaUFnWTI5dWMzUWdZV1JxWVdObGJuUlFiMmx1ZENBOUlFeHBibVZoY2tWc1pXMWxiblJGWkdsMGIzSXVaMlYwVUc5cGJuUkJkRWx1WkdWNFIyeHZZbUZzUTI5dmNtUnBibUYwWlhNb1hHNGdJQ0FnYkdsdVpXRnlSV3hsYldWdWRDeGNiaUFnSUNCaFpHcGhZMlZ1ZEZCdmFXNTBTVzVrWlhnc1hHNGdJQ2s3WEc0Z0lISmxkSFZ5YmlCN1hHNGdJQ0FnWm05amRYTTZJR1JsZEdWeWJXbHVaVVp2WTNWelJHbHpkR0Z1WTJVb2FHOTJaWEpsWkVWc1pXMWxiblFzSUdGa2FtRmpaVzUwVUc5cGJuUXNJR1ZrWjJWUWIybHVkQ2tzWEc0Z0lDQWdaMkZ3T2lCTllYUm9MbTFoZUNneExDQmthWE4wWVc1alpWUnZRbWx1WkdGaWJHVkZiR1Z0Wlc1MEtHaHZkbVZ5WldSRmJHVnRaVzUwTENCbFpHZGxVRzlwYm5RcEtTeGNiaUFnZlR0Y2JuMDdYRzVjYmk4dklGTjFjSEJ2Y25SeklIUnlZVzV6YkdGMGFXNW5MQ0J5YjNSaGRHbHVaeUJoYm1RZ2MyTmhiR2x1WnlCZ1kyaGhibWRsWkVWc1pXMWxiblJnSUhkcGRHZ2dZbTkxYm1SY2JpOHZJR3hwYm1WaGNpQmxiR1Z0Wlc1MGN5NWNiaTh2SUVKbFkyRjFjMlVnYzJOaGJHbHVaeUJwYm5admJIWmxjeUJ0YjNacGJtY2dkR2hsSUdadlkzVnpJSEJ2YVc1MGN5QmhjeUIzWld4c0xDQnBkQ0JwYzF4dUx5OGdaRzl1WlNCaVpXWnZjbVVnZEdobElHQmphR0Z1WjJWa1JXeGxiV1Z1ZEdBZ2FYTWdkWEJrWVhSbFpDd2dZVzVrSUhSb1pTQmdibVYzVTJsNlpXQWdhWE1nY0dGemMyVmtYRzR2THlCcGJpQmxlSEJzYVdOcGRHeDVMbHh1Wlhod2IzSjBJR052Ym5OMElIVndaR0YwWlVKdmRXNWtSV3hsYldWdWRITWdQU0FvWEc0Z0lHTm9ZVzVuWldSRmJHVnRaVzUwT2lCT2IyNUVaV3hsZEdWa1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5Rc1hHNGdJRzl3ZEdsdmJuTS9PaUI3WEc0Z0lDQWdjMmx0ZFd4MFlXNWxiM1Z6YkhsVmNHUmhkR1ZrUHpvZ2NtVmhaRzl1YkhrZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhUdGNiaUFnSUNCdVpYZFRhWHBsUHpvZ2V5QjNhV1IwYURvZ2JuVnRZbVZ5T3lCb1pXbG5hSFE2SUc1MWJXSmxjaUI5TzF4dUlDQjlMRnh1S1NBOVBpQjdYRzRnSUdOdmJuTjBJR0p2ZFc1a1RHbHVaV0Z5Uld4bGJXVnVkSE1nUFNBb1kyaGhibWRsWkVWc1pXMWxiblF1WW05MWJtUkZiR1Z0Wlc1MGN5QS9QeUJiWFNrdVptbHNkR1Z5S0Z4dUlDQWdJQ2hsYkNrZ1BUNGdaV3d1ZEhsd1pTQTlQVDBnWENKaGNuSnZkMXdpTEZ4dUlDQXBPMXh1SUNCcFppQW9ZbTkxYm1STWFXNWxZWEpGYkdWdFpXNTBjeTVzWlc1bmRHZ2dQVDA5SURBcElIdGNiaUFnSUNCeVpYUjFjbTQ3WEc0Z0lIMWNiaUFnWTI5dWMzUWdleUJ1WlhkVGFYcGxMQ0J6YVcxMWJIUmhibVZ2ZFhOc2VWVndaR0YwWldRZ2ZTQTlJRzl3ZEdsdmJuTWdQejhnZTMwN1hHNGdJR052Ym5OMElITnBiWFZzZEdGdVpXOTFjMng1VlhCa1lYUmxaRVZzWlcxbGJuUkpaSE1nUFNCblpYUlRhVzExYkhSaGJtVnZkWE5zZVZWd1pHRjBaV1JGYkdWdFpXNTBTV1J6S0Z4dUlDQWdJSE5wYlhWc2RHRnVaVzkxYzJ4NVZYQmtZWFJsWkN4Y2JpQWdLVHRjYmlBZ1UyTmxibVV1WjJWMFUyTmxibVVvWTJoaGJtZGxaRVZzWlcxbGJuUXBJVnh1SUNBZ0lDNW5aWFJPYjI1RVpXeGxkR1ZrUld4bGJXVnVkSE1vWW05MWJtUk1hVzVsWVhKRmJHVnRaVzUwY3k1dFlYQW9LR1ZzS1NBOVBpQmxiQzVwWkNrcFhHNGdJQ0FnTG1admNrVmhZMmdvS0dWc1pXMWxiblFwSUQwK0lIdGNiaUFnSUNBZ0lHbG1JQ2doYVhOTWFXNWxZWEpGYkdWdFpXNTBLR1ZzWlcxbGJuUXBLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnWTI5dWMzUWdZbWx1WkdGaWJHVkZiR1Z0Wlc1MElEMGdZMmhoYm1kbFpFVnNaVzFsYm5RZ1lYTWdSWGhqWVd4cFpISmhkMEpwYm1SaFlteGxSV3hsYldWdWREdGNiaUFnSUNBZ0lDOHZJRWx1SUdOaGMyVWdkR2hsSUdKdmRXNWtSV3hsYldWdWRITWdZWEpsSUhOMFlXeGxYRzRnSUNBZ0lDQnBaaUFvSVdSdlpYTk9aV1ZrVlhCa1lYUmxLR1ZzWlcxbGJuUXNJR0pwYm1SaFlteGxSV3hsYldWdWRDa3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdZMjl1YzNRZ2MzUmhjblJDYVc1a2FXNW5JRDBnYldGNVltVkRZV3hqZFd4aGRHVk9aWGRIWVhCWGFHVnVVMk5oYkdsdVp5aGNiaUFnSUNBZ0lDQWdZbWx1WkdGaWJHVkZiR1Z0Wlc1MExGeHVJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MExuTjBZWEowUW1sdVpHbHVaeXhjYmlBZ0lDQWdJQ0FnYm1WM1UybDZaU3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQmxibVJDYVc1a2FXNW5JRDBnYldGNVltVkRZV3hqZFd4aGRHVk9aWGRIWVhCWGFHVnVVMk5oYkdsdVp5aGNiaUFnSUNBZ0lDQWdZbWx1WkdGaWJHVkZiR1Z0Wlc1MExGeHVJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MExtVnVaRUpwYm1ScGJtY3NYRzRnSUNBZ0lDQWdJRzVsZDFOcGVtVXNYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdMeThnWUd4cGJtVmhja1ZzWlcxbGJuUmdJR2x6SUdKbGFXNW5JRzF2ZG1Wa0wzTmpZV3hsWkNCaGJISmxZV1I1TENCcWRYTjBJSFZ3WkdGMFpTQjBhR1VnWW1sdVpHbHVaMXh1SUNBZ0lDQWdhV1lnS0hOcGJYVnNkR0Z1Wlc5MWMyeDVWWEJrWVhSbFpFVnNaVzFsYm5SSlpITXVhR0Z6S0dWc1pXMWxiblF1YVdRcEtTQjdYRzRnSUNBZ0lDQWdJRzExZEdGMFpVVnNaVzFsYm5Rb1pXeGxiV1Z1ZEN3Z2V5QnpkR0Z5ZEVKcGJtUnBibWNzSUdWdVpFSnBibVJwYm1jZ2ZTazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lIVndaR0YwWlVKdmRXNWtVRzlwYm5Rb1hHNGdJQ0FnSUNBZ0lHVnNaVzFsYm5Rc1hHNGdJQ0FnSUNBZ0lGd2ljM1JoY25SY0lpeGNiaUFnSUNBZ0lDQWdjM1JoY25SQ2FXNWthVzVuTEZ4dUlDQWdJQ0FnSUNCamFHRnVaMlZrUld4bGJXVnVkQ0JoY3lCRmVHTmhiR2xrY21GM1FtbHVaR0ZpYkdWRmJHVnRaVzUwTEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUhWd1pHRjBaVUp2ZFc1a1VHOXBiblFvWEc0Z0lDQWdJQ0FnSUdWc1pXMWxiblFzWEc0Z0lDQWdJQ0FnSUZ3aVpXNWtYQ0lzWEc0Z0lDQWdJQ0FnSUdWdVpFSnBibVJwYm1jc1hHNGdJQ0FnSUNBZ0lHTm9ZVzVuWldSRmJHVnRaVzUwSUdGeklFVjRZMkZzYVdSeVlYZENhVzVrWVdKc1pVVnNaVzFsYm5Rc1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgwcE8xeHVmVHRjYmx4dVkyOXVjM1FnWkc5bGMwNWxaV1JWY0dSaGRHVWdQU0FvWEc0Z0lHSnZkVzVrUld4bGJXVnVkRG9nVG05dVJHVnNaWFJsWkR4RmVHTmhiR2xrY21GM1RHbHVaV0Z5Uld4bGJXVnVkRDRzWEc0Z0lHTm9ZVzVuWldSRmJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1FtbHVaR0ZpYkdWRmJHVnRaVzUwTEZ4dUtTQTlQaUI3WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnWW05MWJtUkZiR1Z0Wlc1MExuTjBZWEowUW1sdVpHbHVaejh1Wld4bGJXVnVkRWxrSUQwOVBTQmphR0Z1WjJWa1JXeGxiV1Z1ZEM1cFpDQjhmRnh1SUNBZ0lHSnZkVzVrUld4bGJXVnVkQzVsYm1SQ2FXNWthVzVuUHk1bGJHVnRaVzUwU1dRZ1BUMDlJR05vWVc1blpXUkZiR1Z0Wlc1MExtbGtYRzRnSUNrN1hHNTlPMXh1WEc1amIyNXpkQ0JuWlhSVGFXMTFiSFJoYm1WdmRYTnNlVlZ3WkdGMFpXUkZiR1Z0Wlc1MFNXUnpJRDBnS0Z4dUlDQnphVzExYkhSaGJtVnZkWE5zZVZWd1pHRjBaV1E2SUhKbFlXUnZibXg1SUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzEwZ2ZDQjFibVJsWm1sdVpXUXNYRzRwT2lCVFpYUThSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYQ0pwWkZ3aVhUNGdQVDRnZTF4dUlDQnlaWFIxY200Z2JtVjNJRk5sZENnb2MybHRkV3gwWVc1bGIzVnpiSGxWY0dSaGRHVmtJSHg4SUZ0ZEtTNXRZWEFvS0dWc1pXMWxiblFwSUQwK0lHVnNaVzFsYm5RdWFXUXBLVHRjYm4wN1hHNWNibU52Ym5OMElIVndaR0YwWlVKdmRXNWtVRzlwYm5RZ1BTQW9YRzRnSUd4cGJtVmhja1ZzWlcxbGJuUTZJRTV2YmtSbGJHVjBaV1E4UlhoallXeHBaSEpoZDB4cGJtVmhja1ZzWlcxbGJuUStMRnh1SUNCemRHRnlkRTl5Ulc1a09pQmNJbk4wWVhKMFhDSWdmQ0JjSW1WdVpGd2lMRnh1SUNCaWFXNWthVzVuT2lCUWIybHVkRUpwYm1ScGJtY2dmQ0J1ZFd4c0lId2dkVzVrWldacGJtVmtMRnh1SUNCamFHRnVaMlZrUld4bGJXVnVkRG9nUlhoallXeHBaSEpoZDBKcGJtUmhZbXhsUld4bGJXVnVkQ3hjYmlrNklIWnZhV1FnUFQ0Z2UxeHVJQ0JwWmlBb1hHNGdJQ0FnWW1sdVpHbHVaeUE5UFNCdWRXeHNJSHg4WEc0Z0lDQWdMeThnVjJVZ2IyNXNlU0J1WldWa0lIUnZJSFZ3WkdGMFpTQjBhR1VnYjNSb1pYSWdaVzVrSUdsbUlIUm9hWE1nYVhNZ1lTQXlJSEJ2YVc1MElHeHBibVVnWld4bGJXVnVkRnh1SUNBZ0lDaGlhVzVrYVc1bkxtVnNaVzFsYm5SSlpDQWhQVDBnWTJoaGJtZGxaRVZzWlcxbGJuUXVhV1FnSmlZZ2JHbHVaV0Z5Uld4bGJXVnVkQzV3YjJsdWRITXViR1Z1WjNSb0lENGdNaWxjYmlBZ0tTQjdYRzRnSUNBZ2NtVjBkWEp1TzF4dUlDQjlYRzRnSUdOdmJuTjBJR0pwYm1ScGJtZEZiR1Z0Wlc1MElEMGdVMk5sYm1VdVoyVjBVMk5sYm1Vb2JHbHVaV0Z5Uld4bGJXVnVkQ2toTG1kbGRFVnNaVzFsYm5Rb1hHNGdJQ0FnWW1sdVpHbHVaeTVsYkdWdFpXNTBTV1FzWEc0Z0lDa2dZWE1nUlhoallXeHBaSEpoZDBKcGJtUmhZbXhsUld4bGJXVnVkQ0I4SUc1MWJHdzdYRzRnSUdsbUlDaGlhVzVrYVc1blJXeGxiV1Z1ZENBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnTHk4Z1YyVW5jbVVnYm05MElHTnNaV0Z1YVc1bklIVndJR0ZtZEdWeUlHUmxiR1YwWldRZ1pXeGxiV1Z1ZEhNZ1lYUnRMaXdnYzI4Z2FHRnVaR3hsSUhSb2FYTWdZMkZ6WlZ4dUlDQWdJSEpsZEhWeWJqdGNiaUFnZlZ4dUlDQmpiMjV6ZENCa2FYSmxZM1JwYjI0Z1BTQnpkR0Z5ZEU5eVJXNWtJRDA5UFNCY0luTjBZWEowWENJZ1B5QXRNU0E2SURFN1hHNGdJR052Ym5OMElHVmtaMlZRYjJsdWRFbHVaR1Y0SUQwZ1pHbHlaV04wYVc5dUlEMDlQU0F0TVNBL0lEQWdPaUJzYVc1bFlYSkZiR1Z0Wlc1MExuQnZhVzUwY3k1c1pXNW5kR2dnTFNBeE8xeHVJQ0JqYjI1emRDQmhaR3BoWTJWdWRGQnZhVzUwU1c1a1pYZ2dQU0JsWkdkbFVHOXBiblJKYm1SbGVDQXRJR1JwY21WamRHbHZianRjYmlBZ1kyOXVjM1FnWVdScVlXTmxiblJRYjJsdWRDQTlJRXhwYm1WaGNrVnNaVzFsYm5SRlpHbDBiM0l1WjJWMFVHOXBiblJCZEVsdVpHVjRSMnh2WW1Gc1EyOXZjbVJwYm1GMFpYTW9YRzRnSUNBZ2JHbHVaV0Z5Uld4bGJXVnVkQ3hjYmlBZ0lDQmhaR3BoWTJWdWRGQnZhVzUwU1c1a1pYZ3NYRzRnSUNrN1hHNGdJR052Ym5OMElHWnZZM1Z6VUc5cGJuUkJZbk52YkhWMFpTQTlJR1JsZEdWeWJXbHVaVVp2WTNWelVHOXBiblFvWEc0Z0lDQWdZbWx1WkdsdVowVnNaVzFsYm5Rc1hHNGdJQ0FnWW1sdVpHbHVaeTVtYjJOMWN5eGNiaUFnSUNCaFpHcGhZMlZ1ZEZCdmFXNTBMRnh1SUNBcE8xeHVJQ0JzWlhRZ2JtVjNSV1JuWlZCdmFXNTBPMXh1SUNBdkx5QlVhR1VnYkdsdVpXRnlJR1ZzWlcxbGJuUWdkMkZ6SUc1dmRDQnZjbWxuYVc1aGJHeDVJSEJ2YVc1MGFXNW5JR2x1YzJsa1pTQjBhR1VnWW05MWJtUWdjMmhoY0dVc1hHNGdJQzh2SUhkbElHTmhiaUJ3YjJsdWRDQmthWEpsWTNSc2VTQmhkQ0IwYUdVZ1ptOWpkWE1nY0c5cGJuUmNiaUFnYVdZZ0tHSnBibVJwYm1jdVoyRndJRDA5UFNBd0tTQjdYRzRnSUNBZ2JtVjNSV1JuWlZCdmFXNTBJRDBnWm05amRYTlFiMmx1ZEVGaWMyOXNkWFJsTzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUdOdmJuTjBJR2x1ZEdWeWMyVmpkR2x2Ym5NZ1BTQnBiblJsY25ObFkzUkZiR1Z0Wlc1MFYybDBhRXhwYm1Vb1hHNGdJQ0FnSUNCaWFXNWthVzVuUld4bGJXVnVkQ3hjYmlBZ0lDQWdJR0ZrYW1GalpXNTBVRzlwYm5Rc1hHNGdJQ0FnSUNCbWIyTjFjMUJ2YVc1MFFXSnpiMngxZEdVc1hHNGdJQ0FnSUNCaWFXNWthVzVuTG1kaGNDeGNiaUFnSUNBcE8xeHVJQ0FnSUdsbUlDaHBiblJsY25ObFkzUnBiMjV6TG14bGJtZDBhQ0E5UFQwZ01Da2dlMXh1SUNBZ0lDQWdMeThnVkdocGN5QnphRzkxYkdRZ2JtVjJaWElnYUdGd2NHVnVMQ0J6YVc1alpTQm1iMk4xYzFCdmFXNTBJSE5vYjNWc1pDQmhiSGRoZVhNZ1ltVmNiaUFnSUNBZ0lDOHZJR2x1YzJsa1pTQjBhR1VnWld4bGJXVnVkQ3dnWW5WMElHcDFjM1FnYVc0Z1kyRnpaU3dnWW1GcGJDQnZkWFJjYmlBZ0lDQWdJRzVsZDBWa1oyVlFiMmx1ZENBOUlHWnZZM1Z6VUc5cGJuUkJZbk52YkhWMFpUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnTHk4Z1IzVmhjbUZ1ZEdWbFpDQjBieUJwYm5SbGNuTmxZM1FnWW1WallYVnpaU0JtYjJOMWMxQnZhVzUwSUdseklHRnNkMkY1Y3lCcGJuTnBaR1VnZEdobElITm9ZWEJsWEc0Z0lDQWdJQ0J1WlhkRlpHZGxVRzlwYm5RZ1BTQnBiblJsY25ObFkzUnBiMjV6V3pCZE8xeHVJQ0FnSUgxY2JpQWdmVnh1SUNCTWFXNWxZWEpGYkdWdFpXNTBSV1JwZEc5eUxtMXZkbVZRYjJsdWRITW9YRzRnSUNBZ2JHbHVaV0Z5Uld4bGJXVnVkQ3hjYmlBZ0lDQmJYRzRnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJR2x1WkdWNE9pQmxaR2RsVUc5cGJuUkpibVJsZUN4Y2JpQWdJQ0FnSUNBZ2NHOXBiblE2SUV4cGJtVmhja1ZzWlcxbGJuUkZaR2wwYjNJdWNHOXBiblJHY205dFFXSnpiMngxZEdWRGIyOXlaSE1vWEc0Z0lDQWdJQ0FnSUNBZ2JHbHVaV0Z5Uld4bGJXVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNCdVpYZEZaR2RsVUc5cGJuUXNYRzRnSUNBZ0lDQWdJQ2tzWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJRjBzWEc0Z0lDQWdleUJiYzNSaGNuUlBja1Z1WkNBOVBUMGdYQ0p6ZEdGeWRGd2lJRDhnWENKemRHRnlkRUpwYm1ScGJtZGNJaUE2SUZ3aVpXNWtRbWx1WkdsdVoxd2lYVG9nWW1sdVpHbHVaeUI5TEZ4dUlDQXBPMXh1ZlR0Y2JseHVZMjl1YzNRZ2JXRjVZbVZEWVd4amRXeGhkR1ZPWlhkSFlYQlhhR1Z1VTJOaGJHbHVaeUE5SUNoY2JpQWdZMmhoYm1kbFpFVnNaVzFsYm5RNklFVjRZMkZzYVdSeVlYZENhVzVrWVdKc1pVVnNaVzFsYm5Rc1hHNGdJR04xY25KbGJuUkNhVzVrYVc1bk9pQlFiMmx1ZEVKcGJtUnBibWNnZkNCdWRXeHNJSHdnZFc1a1pXWnBibVZrTEZ4dUlDQnVaWGRUYVhwbE9pQjdJSGRwWkhSb09pQnVkVzFpWlhJN0lHaGxhV2RvZERvZ2JuVnRZbVZ5SUgwZ2ZDQjFibVJsWm1sdVpXUXNYRzRwT2lCUWIybHVkRUpwYm1ScGJtY2dmQ0J1ZFd4c0lId2dkVzVrWldacGJtVmtJRDArSUh0Y2JpQWdhV1lnS0dOMWNuSmxiblJDYVc1a2FXNW5JRDA5SUc1MWJHd2dmSHdnYm1WM1UybDZaU0E5UFNCdWRXeHNLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHTjFjbkpsYm5SQ2FXNWthVzVuTzF4dUlDQjlYRzRnSUdOdmJuTjBJSHNnWjJGd0xDQm1iMk4xY3l3Z1pXeGxiV1Z1ZEVsa0lIMGdQU0JqZFhKeVpXNTBRbWx1WkdsdVp6dGNiaUFnWTI5dWMzUWdleUIzYVdSMGFEb2dibVYzVjJsa2RHZ3NJR2hsYVdkb2REb2dibVYzU0dWcFoyaDBJSDBnUFNCdVpYZFRhWHBsTzF4dUlDQmpiMjV6ZENCN0lIZHBaSFJvTENCb1pXbG5hSFFnZlNBOUlHTm9ZVzVuWldSRmJHVnRaVzUwTzF4dUlDQmpiMjV6ZENCdVpYZEhZWEFnUFNCTllYUm9MbTFoZUNoY2JpQWdJQ0F4TEZ4dUlDQWdJRTFoZEdndWJXbHVLRnh1SUNBZ0lDQWdiV0Y0UW1sdVpHbHVaMGRoY0NoamFHRnVaMlZrUld4bGJXVnVkQ3dnYm1WM1YybGtkR2dzSUc1bGQwaGxhV2RvZENrc1hHNGdJQ0FnSUNCbllYQWdLaUFvYm1WM1YybGtkR2dnUENCdVpYZElaV2xuYUhRZ1B5QnVaWGRYYVdSMGFDQXZJSGRwWkhSb0lEb2dibVYzU0dWcFoyaDBJQzhnYUdWcFoyaDBLU3hjYmlBZ0lDQXBMRnh1SUNBcE8xeHVJQ0J5WlhSMWNtNGdleUJsYkdWdFpXNTBTV1FzSUdkaGNEb2dibVYzUjJGd0xDQm1iMk4xY3lCOU8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2RsZEVWc2FXZHBZbXhsUld4bGJXVnVkSE5HYjNKQ2FXNWthVzVuSUQwZ0tGeHVJQ0JsYkdWdFpXNTBjem9nVG05dVJHVnNaWFJsWkR4RmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEQ1YlhTeGNiaWs2SUZOMVoyZGxjM1JsWkVKcGJtUnBibWRiWFNBOVBpQjdYRzRnSUdOdmJuTjBJR2x1WTJ4MVpHVmtSV3hsYldWdWRFbGtjeUE5SUc1bGR5QlRaWFFvWld4bGJXVnVkSE11YldGd0tDaDdJR2xrSUgwcElEMCtJR2xrS1NrN1hHNGdJSEpsZEhWeWJpQmxiR1Z0Wlc1MGN5NW1iR0YwVFdGd0tDaGxiR1Z0Wlc1MEtTQTlQbHh1SUNBZ0lHbHpRbWx1WkdsdVowVnNaVzFsYm5Rb1pXeGxiV1Z1ZENsY2JpQWdJQ0FnSUQ4Z0tHZGxkRVZzYkdsbmFXSnNaVVZzWlcxbGJuUnpSbTl5UW1sdVpHbHVaMFZzWlcxbGJuUW9YRzRnSUNBZ0lDQWdJQ0FnWld4bGJXVnVkQ0JoY3lCT2IyNUVaV3hsZEdWa1BFVjRZMkZzYVdSeVlYZE1hVzVsWVhKRmJHVnRaVzUwUGl4Y2JpQWdJQ0FnSUNBZ0tTNW1hV3gwWlhJb1hHNGdJQ0FnSUNBZ0lDQWdLR1ZzWlcxbGJuUXBJRDArSUNGcGJtTnNkV1JsWkVWc1pXMWxiblJKWkhNdWFHRnpLR1ZzWlcxbGJuUXVhV1FwTEZ4dUlDQWdJQ0FnSUNBcElHRnpJRk4xWjJkbGMzUmxaRUpwYm1ScGJtZGJYU2xjYmlBZ0lDQWdJRG9nYVhOQ2FXNWtZV0pzWlVWc1pXMWxiblFvWld4bGJXVnVkQ2xjYmlBZ0lDQWdJRDhnWjJWMFJXeHNhV2RwWW14bFJXeGxiV1Z1ZEhOR2IzSkNhVzVrWVdKc1pVVnNaVzFsYm5SQmJtUlhhR1Z5WlNobGJHVnRaVzUwS1M1bWFXeDBaWElvWEc0Z0lDQWdJQ0FnSUNBZ0tHSnBibVJwYm1jcElEMCtJQ0ZwYm1Oc2RXUmxaRVZzWlcxbGJuUkpaSE11YUdGektHSnBibVJwYm1kYk1GMHVhV1FwTEZ4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBNklGdGRMRnh1SUNBcE8xeHVmVHRjYmx4dVkyOXVjM1FnWjJWMFJXeHNhV2RwWW14bFJXeGxiV1Z1ZEhOR2IzSkNhVzVrYVc1blJXeGxiV1Z1ZENBOUlDaGNiaUFnYkdsdVpXRnlSV3hsYldWdWREb2dUbTl1UkdWc1pYUmxaRHhGZUdOaGJHbGtjbUYzVEdsdVpXRnlSV3hsYldWdWRENHNYRzRwT2lCT2IyNUVaV3hsZEdWa1BFVjRZMkZzYVdSeVlYZENhVzVrWVdKc1pVVnNaVzFsYm5RK1cxMGdQVDRnZTF4dUlDQnlaWFIxY200Z1cxeHVJQ0FnSUdkbGRFVnNiR2xuYVdKc1pVVnNaVzFsYm5SR2IzSkNhVzVrYVc1blJXeGxiV1Z1ZENoc2FXNWxZWEpGYkdWdFpXNTBMQ0JjSW5OMFlYSjBYQ0lwTEZ4dUlDQWdJR2RsZEVWc2JHbG5hV0pzWlVWc1pXMWxiblJHYjNKQ2FXNWthVzVuUld4bGJXVnVkQ2hzYVc1bFlYSkZiR1Z0Wlc1MExDQmNJbVZ1WkZ3aUtTeGNiaUFnWFM1bWFXeDBaWElvWEc0Z0lDQWdLR1ZzWlcxbGJuUXBPaUJsYkdWdFpXNTBJR2x6SUU1dmJrUmxiR1YwWldROFJYaGpZV3hwWkhKaGQwSnBibVJoWW14bFJXeGxiV1Z1ZEQ0Z1BUNWNiaUFnSUNBZ0lHVnNaVzFsYm5RZ0lUMGdiblZzYkN4Y2JpQWdLVHRjYm4wN1hHNWNibU52Ym5OMElHZGxkRVZzYkdsbmFXSnNaVVZzWlcxbGJuUkdiM0pDYVc1a2FXNW5SV3hsYldWdWRDQTlJQ2hjYmlBZ2JHbHVaV0Z5Uld4bGJXVnVkRG9nVG05dVJHVnNaWFJsWkR4RmVHTmhiR2xrY21GM1RHbHVaV0Z5Uld4bGJXVnVkRDRzWEc0Z0lITjBZWEowVDNKRmJtUTZJRndpYzNSaGNuUmNJaUI4SUZ3aVpXNWtYQ0lzWEc0cE9pQk9iMjVFWld4bGRHVmtQRVY0WTJGc2FXUnlZWGRDYVc1a1lXSnNaVVZzWlcxbGJuUStJSHdnYm5Wc2JDQTlQaUI3WEc0Z0lISmxkSFZ5YmlCblpYUkliM1psY21Wa1JXeGxiV1Z1ZEVadmNrSnBibVJwYm1jb1hHNGdJQ0FnWjJWMFRHbHVaV0Z5Uld4bGJXVnVkRVZrWjJWRGIyOXljeWhzYVc1bFlYSkZiR1Z0Wlc1MExDQnpkR0Z5ZEU5eVJXNWtLU3hjYmlBZ0lDQlRZMlZ1WlM1blpYUlRZMlZ1WlNoc2FXNWxZWEpGYkdWdFpXNTBLU0VzWEc0Z0lDazdYRzU5TzF4dVhHNWpiMjV6ZENCblpYUk1hVzVsWVhKRmJHVnRaVzUwUldSblpVTnZiM0p6SUQwZ0tGeHVJQ0JzYVc1bFlYSkZiR1Z0Wlc1ME9pQk9iMjVFWld4bGRHVmtQRVY0WTJGc2FXUnlZWGRNYVc1bFlYSkZiR1Z0Wlc1MFBpeGNiaUFnYzNSaGNuUlBja1Z1WkRvZ1hDSnpkR0Z5ZEZ3aUlId2dYQ0psYm1SY0lpeGNiaWs2SUhzZ2VEb2diblZ0WW1WeU95QjVPaUJ1ZFcxaVpYSWdmU0E5UGlCN1hHNGdJR052Ym5OMElHbHVaR1Y0SUQwZ2MzUmhjblJQY2tWdVpDQTlQVDBnWENKemRHRnlkRndpSUQ4Z01DQTZJQzB4TzF4dUlDQnlaWFIxY200Z2RIVndiR1ZVYjBOdmIzSnpLRnh1SUNBZ0lFeHBibVZoY2tWc1pXMWxiblJGWkdsMGIzSXVaMlYwVUc5cGJuUkJkRWx1WkdWNFIyeHZZbUZzUTI5dmNtUnBibUYwWlhNb2JHbHVaV0Z5Uld4bGJXVnVkQ3dnYVc1a1pYZ3BMRnh1SUNBcE8xeHVmVHRjYmx4dVkyOXVjM1FnWjJWMFJXeHNhV2RwWW14bFJXeGxiV1Z1ZEhOR2IzSkNhVzVrWVdKc1pVVnNaVzFsYm5SQmJtUlhhR1Z5WlNBOUlDaGNiaUFnWW1sdVpHRmliR1ZGYkdWdFpXNTBPaUJPYjI1RVpXeGxkR1ZrUEVWNFkyRnNhV1J5WVhkQ2FXNWtZV0pzWlVWc1pXMWxiblErTEZ4dUtUb2dVM1ZuWjJWemRHVmtVRzlwYm5SQ2FXNWthVzVuVzEwZ1BUNGdlMXh1SUNCeVpYUjFjbTRnVTJObGJtVXVaMlYwVTJObGJtVW9ZbWx1WkdGaWJHVkZiR1Z0Wlc1MEtTRmNiaUFnSUNBdVoyVjBSV3hsYldWdWRITW9LVnh1SUNBZ0lDNXRZWEFvS0dWc1pXMWxiblFwSUQwK0lIdGNiaUFnSUNBZ0lHbG1JQ2doYVhOQ2FXNWthVzVuUld4bGJXVnVkQ2hsYkdWdFpXNTBLU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHTnZibk4wSUdOaGJrSnBibVJUZEdGeWRDQTlJR2x6VEdsdVpXRnlSV3hsYldWdWRFVnNhV2RwWW14bFJtOXlUbVYzUW1sdVpHbHVaMEo1UW1sdVpHRmliR1VvWEc0Z0lDQWdJQ0FnSUdWc1pXMWxiblFzWEc0Z0lDQWdJQ0FnSUZ3aWMzUmhjblJjSWl4Y2JpQWdJQ0FnSUNBZ1ltbHVaR0ZpYkdWRmJHVnRaVzUwTEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR05oYmtKcGJtUkZibVFnUFNCcGMweHBibVZoY2tWc1pXMWxiblJGYkdsbmFXSnNaVVp2Y2s1bGQwSnBibVJwYm1kQ2VVSnBibVJoWW14bEtGeHVJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MExGeHVJQ0FnSUNBZ0lDQmNJbVZ1WkZ3aUxGeHVJQ0FnSUNBZ0lDQmlhVzVrWVdKc1pVVnNaVzFsYm5Rc1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2FXWWdLQ0ZqWVc1Q2FXNWtVM1JoY25RZ0ppWWdJV05oYmtKcGJtUkZibVFwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z1cxeHVJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MExGeHVJQ0FnSUNBZ0lDQmpZVzVDYVc1a1UzUmhjblFnSmlZZ1kyRnVRbWx1WkVWdVpDQS9JRndpWW05MGFGd2lJRG9nWTJGdVFtbHVaRk4wWVhKMElEOGdYQ0p6ZEdGeWRGd2lJRG9nWENKbGJtUmNJaXhjYmlBZ0lDQWdJQ0FnWW1sdVpHRmliR1ZGYkdWdFpXNTBMRnh1SUNBZ0lDQWdYVHRjYmlBZ0lDQjlLVnh1SUNBZ0lDNW1hV3gwWlhJb0tHMWhlV0psUld4bGJXVnVkQ2tnUFQ0Z2JXRjVZbVZGYkdWdFpXNTBJQ0U5SUc1MWJHd3BJR0Z6SUZOMVoyZGxjM1JsWkZCdmFXNTBRbWx1WkdsdVoxdGRPMXh1ZlR0Y2JseHVZMjl1YzNRZ2FYTk1hVzVsWVhKRmJHVnRaVzUwUld4cFoybGliR1ZHYjNKT1pYZENhVzVrYVc1blFubENhVzVrWVdKc1pTQTlJQ2hjYmlBZ2JHbHVaV0Z5Uld4bGJXVnVkRG9nVG05dVJHVnNaWFJsWkR4RmVHTmhiR2xrY21GM1RHbHVaV0Z5Uld4bGJXVnVkRDRzWEc0Z0lITjBZWEowVDNKRmJtUTZJRndpYzNSaGNuUmNJaUI4SUZ3aVpXNWtYQ0lzWEc0Z0lHSnBibVJoWW14bFJXeGxiV1Z1ZERvZ1RtOXVSR1ZzWlhSbFpEeEZlR05oYkdsa2NtRjNRbWx1WkdGaWJHVkZiR1Z0Wlc1MFBpeGNiaWs2SUdKdmIyeGxZVzRnUFQ0Z2UxeHVJQ0JqYjI1emRDQmxlR2x6ZEdsdVowSnBibVJwYm1jZ1BWeHVJQ0FnSUd4cGJtVmhja1ZzWlcxbGJuUmJjM1JoY25SUGNrVnVaQ0E5UFQwZ1hDSnpkR0Z5ZEZ3aUlEOGdYQ0p6ZEdGeWRFSnBibVJwYm1kY0lpQTZJRndpWlc1a1FtbHVaR2x1WjF3aVhUdGNiaUFnY21WMGRYSnVJQ2hjYmlBZ0lDQmxlR2x6ZEdsdVowSnBibVJwYm1jZ1BUMGdiblZzYkNBbUpseHVJQ0FnSUNGcGMweHBibVZoY2tWc1pXMWxiblJUYVcxd2JHVkJibVJCYkhKbFlXUjVRbTkxYm1SUGJrOXdjRzl6YVhSbFJXUm5aU2hjYmlBZ0lDQWdJR3hwYm1WaGNrVnNaVzFsYm5Rc1hHNGdJQ0FnSUNCaWFXNWtZV0pzWlVWc1pXMWxiblFzWEc0Z0lDQWdJQ0J6ZEdGeWRFOXlSVzVrTEZ4dUlDQWdJQ2tnSmlaY2JpQWdJQ0JpYVc1a2FXNW5RbTl5WkdWeVZHVnpkQ2hjYmlBZ0lDQWdJR0pwYm1SaFlteGxSV3hsYldWdWRDeGNiaUFnSUNBZ0lHZGxkRXhwYm1WaGNrVnNaVzFsYm5SRlpHZGxRMjl2Y25Nb2JHbHVaV0Z5Uld4bGJXVnVkQ3dnYzNSaGNuUlBja1Z1WkNrc1hHNGdJQ0FnS1Z4dUlDQXBPMXh1ZlR0Y2JseHVMeThnVjJVZ2JtVmxaQ0IwYnpwY2JpOHZJREU2SUZWd1pHRjBaU0JsYkdWdFpXNTBjeUJ1YjNRZ2MyVnNaV04wWldRZ2RHOGdjRzlwYm5RZ2RHOGdaSFZ3YkdsallYUmxaQ0JsYkdWdFpXNTBjMXh1THk4Z01qb2dWWEJrWVhSbElHUjFjR3hwWTJGMFpXUWdaV3hsYldWdWRITWdkRzhnY0c5cGJuUWdkRzhnYjNSb1pYSWdaSFZ3YkdsallYUmxaQ0JsYkdWdFpXNTBjMXh1Wlhod2IzSjBJR052Ym5OMElHWnBlRUpwYm1ScGJtZHpRV1owWlhKRWRYQnNhV05oZEdsdmJpQTlJQ2hjYmlBZ2MyTmxibVZGYkdWdFpXNTBjem9nY21WaFpHOXViSGtnUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFN4Y2JpQWdiMnhrUld4bGJXVnVkSE02SUhKbFlXUnZibXg1SUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzEwc1hHNGdJRzlzWkVsa1ZHOUVkWEJzYVdOaGRHVmtTV1E2SUUxaGNEeEZlR05oYkdsa2NtRjNSV3hsYldWdWRGdGNJbWxrWENKZExDQkZlR05oYkdsa2NtRjNSV3hsYldWdWRGdGNJbWxrWENKZFBpeGNiaUFnTHk4Z1ZHaGxjbVVnWVhKbElIUm9jbVZsSUdOdmNIbHBibWNnYldWamFHRnVhWE50Y3pvZ1EyOXdlUzF3WVhOMFpTd2daSFZ3YkdsallYUnBiMjRnWVc1a0lHRnNkQzFrY21GbkxseHVJQ0F2THlCUGJteDVJSGRvWlc0Z1lXeDBMV1J5WVdkbmFXNW5JSFJvWlNCdVpYY2dYQ0prZFhCc2FXTmhkR1Z6WENJZ1lXTjBJR0Z6SUhSb1pTQmNJbTlzWkZ3aUxDQjNhR2xzWlZ4dUlDQXZMeUIwYUdVZ1hDSnZiR1JjSWlCbGJHVnRaVzUwY3lCaFkzUWdZWE1nZEdobElGd2libVYzSUdOdmNIbGNJaUF0SUdWemMyVnVkR2xoYkd4NUlIZHZjbXRwYm1jZ2NtVjJaWEp6WlZ4dUlDQXZMeUIwYnlCMGFHVWdiM1JvWlhJZ2RIZHZMbHh1SUNCa2RYQnNhV05oZEdWelUyVnlkbVZCYzA5c1pEODZJRndpWkhWd2JHbGpZWFJsYzFObGNuWmxRWE5QYkdSY0lpQjhJSFZ1WkdWbWFXNWxaQ3hjYmlrNklIWnZhV1FnUFQ0Z2UxeHVJQ0F2THlCR2FYSnpkQ0JqYjJ4c1pXTjBJR0ZzYkNCMGFHVWdZbWx1WkdsdVp5OWlhVzVrWVdKc1pTQmxiR1Z0Wlc1MGN5d2djMjhnZDJVZ2IyNXNlU0IxY0dSaGRHVmNiaUFnTHk4Z1pXRmphQ0J2Ym1ObExDQnlaV2RoY21Sc1pYTnpJRzltSUhkb1pYUm9aWElnZEdobGVTQjNaWEpsSUdSMWNHeHBZMkYwWldRZ2IzSWdibTkwTGx4dUlDQmpiMjV6ZENCaGJHeENiM1Z1WkVWc1pXMWxiblJKWkhNNklGTmxkRHhGZUdOaGJHbGtjbUYzUld4bGJXVnVkRnRjSW1sa1hDSmRQaUE5SUc1bGR5QlRaWFFvS1R0Y2JpQWdZMjl1YzNRZ1lXeHNRbWx1WkdGaWJHVkZiR1Z0Wlc1MFNXUnpPaUJUWlhROFJYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhDSnBaRndpWFQ0Z1BTQnVaWGNnVTJWMEtDazdYRzRnSUdOdmJuTjBJSE5vYjNWc1pGSmxkbVZ5YzJWU2IyeGxjeUE5SUdSMWNHeHBZMkYwWlhOVFpYSjJaVUZ6VDJ4a0lEMDlQU0JjSW1SMWNHeHBZMkYwWlhOVFpYSjJaVUZ6VDJ4a1hDSTdYRzRnSUc5c1pFVnNaVzFsYm5SekxtWnZja1ZoWTJnb0tHOXNaRVZzWlcxbGJuUXBJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR0p2ZFc1a1JXeGxiV1Z1ZEhNZ2ZTQTlJRzlzWkVWc1pXMWxiblE3WEc0Z0lDQWdhV1lnS0dKdmRXNWtSV3hsYldWdWRITWdJVDBnYm5Wc2JDQW1KaUJpYjNWdVpFVnNaVzFsYm5SekxteGxibWQwYUNBK0lEQXBJSHRjYmlBZ0lDQWdJR0p2ZFc1a1JXeGxiV1Z1ZEhNdVptOXlSV0ZqYUNnb1ltOTFibVJGYkdWdFpXNTBLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h6YUc5MWJHUlNaWFpsY25ObFVtOXNaWE1nSmlZZ0lXOXNaRWxrVkc5RWRYQnNhV05oZEdWa1NXUXVhR0Z6S0dKdmRXNWtSV3hsYldWdWRDNXBaQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQmhiR3hDYjNWdVpFVnNaVzFsYm5SSlpITXVZV1JrS0dKdmRXNWtSV3hsYldWdWRDNXBaQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ1lXeHNRbWx1WkdGaWJHVkZiR1Z0Wlc1MFNXUnpMbUZrWkNodmJHUkpaRlJ2UkhWd2JHbGpZWFJsWkVsa0xtZGxkQ2h2YkdSRmJHVnRaVzUwTG1sa0tTRXBPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9hWE5DYVc1a2FXNW5SV3hsYldWdWRDaHZiR1JGYkdWdFpXNTBLU2tnZTF4dUlDQWdJQ0FnYVdZZ0tHOXNaRVZzWlcxbGJuUXVjM1JoY25SQ2FXNWthVzVuSUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZXlCbGJHVnRaVzUwU1dRZ2ZTQTlJRzlzWkVWc1pXMWxiblF1YzNSaGNuUkNhVzVrYVc1bk8xeHVJQ0FnSUNBZ0lDQnBaaUFvYzJodmRXeGtVbVYyWlhKelpWSnZiR1Z6SUNZbUlDRnZiR1JKWkZSdlJIVndiR2xqWVhSbFpFbGtMbWhoY3lobGJHVnRaVzUwU1dRcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnWVd4c1FtbHVaR0ZpYkdWRmJHVnRaVzUwU1dSekxtRmtaQ2hsYkdWdFpXNTBTV1FwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9iMnhrUld4bGJXVnVkQzVsYm1SQ2FXNWthVzVuSUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZXlCbGJHVnRaVzUwU1dRZ2ZTQTlJRzlzWkVWc1pXMWxiblF1Wlc1a1FtbHVaR2x1Wnp0Y2JpQWdJQ0FnSUNBZ2FXWWdLSE5vYjNWc1pGSmxkbVZ5YzJWU2IyeGxjeUFtSmlBaGIyeGtTV1JVYjBSMWNHeHBZMkYwWldSSlpDNW9ZWE1vWld4bGJXVnVkRWxrS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR0ZzYkVKcGJtUmhZbXhsUld4bGJXVnVkRWxrY3k1aFpHUW9aV3hsYldWdWRFbGtLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tHOXNaRVZzWlcxbGJuUXVjM1JoY25SQ2FXNWthVzVuSUNFOUlHNTFiR3dnZkh3Z2IyeGtSV3hsYldWdWRDNWxibVJDYVc1a2FXNW5JQ0U5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJQ0FnWVd4c1FtOTFibVJGYkdWdFpXNTBTV1J6TG1Ga1pDaHZiR1JKWkZSdlJIVndiR2xqWVhSbFpFbGtMbWRsZENodmJHUkZiR1Z0Wlc1MExtbGtLU0VwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZTazdYRzVjYmlBZ0x5OGdWWEJrWVhSbElIUm9aU0JzYVc1bFlYSWdaV3hsYldWdWRITmNiaUFnS0Z4dUlDQWdJSE5qWlc1bFJXeGxiV1Z1ZEhNdVptbHNkR1Z5S0NoN0lHbGtJSDBwSUQwK1hHNGdJQ0FnSUNCaGJHeENiM1Z1WkVWc1pXMWxiblJKWkhNdWFHRnpLR2xrS1N4Y2JpQWdJQ0FwSUdGeklFVjRZMkZzYVdSeVlYZE1hVzVsWVhKRmJHVnRaVzUwVzExY2JpQWdLUzVtYjNKRllXTm9LQ2hsYkdWdFpXNTBLU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJ6ZEdGeWRFSnBibVJwYm1jc0lHVnVaRUpwYm1ScGJtY2dmU0E5SUdWc1pXMWxiblE3WEc0Z0lDQWdiWFYwWVhSbFJXeGxiV1Z1ZENobGJHVnRaVzUwTENCN1hHNGdJQ0FnSUNCemRHRnlkRUpwYm1ScGJtYzZJRzVsZDBKcGJtUnBibWRCWm5SbGNrUjFjR3hwWTJGMGFXOXVLRnh1SUNBZ0lDQWdJQ0J6ZEdGeWRFSnBibVJwYm1jc1hHNGdJQ0FnSUNBZ0lHOXNaRWxrVkc5RWRYQnNhV05oZEdWa1NXUXNYRzRnSUNBZ0lDQXBMRnh1SUNBZ0lDQWdaVzVrUW1sdVpHbHVaem9nYm1WM1FtbHVaR2x1WjBGbWRHVnlSSFZ3YkdsallYUnBiMjRvWlc1a1FtbHVaR2x1Wnl3Z2IyeGtTV1JVYjBSMWNHeHBZMkYwWldSSlpDa3NYRzRnSUNBZ2ZTazdYRzRnSUgwcE8xeHVYRzRnSUM4dklGVndaR0YwWlNCMGFHVWdZbWx1WkdGaWJHVWdjMmhoY0dWelhHNGdJSE5qWlc1bFJXeGxiV1Z1ZEhOY2JpQWdJQ0F1Wm1sc2RHVnlLQ2g3SUdsa0lIMHBJRDArSUdGc2JFSnBibVJoWW14bFJXeGxiV1Z1ZEVsa2N5NW9ZWE1vYVdRcEtWeHVJQ0FnSUM1bWIzSkZZV05vS0NoaWFXNWtZV0pzWlVWc1pXMWxiblFwSUQwK0lIdGNiaUFnSUNBZ0lHTnZibk4wSUhzZ1ltOTFibVJGYkdWdFpXNTBjeUI5SUQwZ1ltbHVaR0ZpYkdWRmJHVnRaVzUwTzF4dUlDQWdJQ0FnYVdZZ0tHSnZkVzVrUld4bGJXVnVkSE1nSVQwZ2JuVnNiQ0FtSmlCaWIzVnVaRVZzWlcxbGJuUnpMbXhsYm1kMGFDQStJREFwSUh0Y2JpQWdJQ0FnSUNBZ2JYVjBZWFJsUld4bGJXVnVkQ2hpYVc1a1lXSnNaVVZzWlcxbGJuUXNJSHRjYmlBZ0lDQWdJQ0FnSUNCaWIzVnVaRVZzWlcxbGJuUnpPaUJpYjNWdVpFVnNaVzFsYm5SekxtMWhjQ2dvWW05MWJtUkZiR1Z0Wlc1MEtTQTlQbHh1SUNBZ0lDQWdJQ0FnSUNBZ2IyeGtTV1JVYjBSMWNHeHBZMkYwWldSSlpDNW9ZWE1vWW05MWJtUkZiR1Z0Wlc1MExtbGtLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQS9JSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsa09pQnZiR1JKWkZSdlJIVndiR2xqWVhSbFpFbGtMbWRsZENoaWIzVnVaRVZzWlcxbGJuUXVhV1FwSVN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1U2SUdKdmRXNWtSV3hsYldWdWRDNTBlWEJsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnT2lCaWIzVnVaRVZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzU5TzF4dVhHNWpiMjV6ZENCdVpYZENhVzVrYVc1blFXWjBaWEpFZFhCc2FXTmhkR2x2YmlBOUlDaGNiaUFnWW1sdVpHbHVaem9nVUc5cGJuUkNhVzVrYVc1bklId2diblZzYkN4Y2JpQWdiMnhrU1dSVWIwUjFjR3hwWTJGMFpXUkpaRG9nVFdGd1BFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxd2lhV1JjSWwwc0lFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxd2lhV1JjSWwwK0xGeHVLVG9nVUc5cGJuUkNhVzVrYVc1bklId2diblZzYkNBOVBpQjdYRzRnSUdsbUlDaGlhVzVrYVc1bklEMDlJRzUxYkd3cElIdGNiaUFnSUNCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnZlZ4dUlDQmpiMjV6ZENCN0lHVnNaVzFsYm5SSlpDd2dabTlqZFhNc0lHZGhjQ0I5SUQwZ1ltbHVaR2x1Wnp0Y2JpQWdjbVYwZFhKdUlIdGNiaUFnSUNCbWIyTjFjeXhjYmlBZ0lDQm5ZWEFzWEc0Z0lDQWdaV3hsYldWdWRFbGtPaUJ2YkdSSlpGUnZSSFZ3YkdsallYUmxaRWxrTG1kbGRDaGxiR1Z0Wlc1MFNXUXBJRDgvSUdWc1pXMWxiblJKWkN4Y2JpQWdmVHRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCbWFYaENhVzVrYVc1bmMwRm1kR1Z5UkdWc1pYUnBiMjRnUFNBb1hHNGdJSE5qWlc1bFJXeGxiV1Z1ZEhNNklISmxZV1J2Ym14NUlFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMHNYRzRnSUdSbGJHVjBaV1JGYkdWdFpXNTBjem9nY21WaFpHOXViSGtnUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFN4Y2JpazZJSFp2YVdRZ1BUNGdlMXh1SUNCamIyNXpkQ0JrWld4bGRHVmtSV3hsYldWdWRFbGtjeUE5SUc1bGR5QlRaWFFvWEc0Z0lDQWdaR1ZzWlhSbFpFVnNaVzFsYm5SekxtMWhjQ2dvWld4bGJXVnVkQ2tnUFQ0Z1pXeGxiV1Z1ZEM1cFpDa3NYRzRnSUNrN1hHNGdJQzh2SUU1dmJpQmtaV3hsZEdWa0lHRnVaQ0J1WldWa0lHRnVJSFZ3WkdGMFpWeHVJQ0JqYjI1emRDQmliM1Z1WkVWc1pXMWxiblJKWkhNNklGTmxkRHhGZUdOaGJHbGtjbUYzUld4bGJXVnVkRnRjSW1sa1hDSmRQaUE5SUc1bGR5QlRaWFFvS1R0Y2JpQWdaR1ZzWlhSbFpFVnNaVzFsYm5SekxtWnZja1ZoWTJnb0tHUmxiR1YwWldSRmJHVnRaVzUwS1NBOVBpQjdYRzRnSUNBZ2FXWWdLR2x6UW1sdVpHRmliR1ZGYkdWdFpXNTBLR1JsYkdWMFpXUkZiR1Z0Wlc1MEtTa2dlMXh1SUNBZ0lDQWdaR1ZzWlhSbFpFVnNaVzFsYm5RdVltOTFibVJGYkdWdFpXNTBjejh1Wm05eVJXRmphQ2dvWld4bGJXVnVkQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQnBaaUFvSVdSbGJHVjBaV1JGYkdWdFpXNTBTV1J6TG1oaGN5aGxiR1Z0Wlc1MExtbGtLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHSnZkVzVrUld4bGJXVnVkRWxrY3k1aFpHUW9aV3hsYldWdWRDNXBaQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgxY2JpQWdmU2s3WEc0Z0lDaGNiaUFnSUNCelkyVnVaVVZzWlcxbGJuUnpMbVpwYkhSbGNpZ29leUJwWkNCOUtTQTlQbHh1SUNBZ0lDQWdZbTkxYm1SRmJHVnRaVzUwU1dSekxtaGhjeWhwWkNrc1hHNGdJQ0FnS1NCaGN5QkZlR05oYkdsa2NtRjNUR2x1WldGeVJXeGxiV1Z1ZEZ0ZFhHNGdJQ2t1Wm05eVJXRmphQ2dvWld4bGJXVnVkRG9nUlhoallXeHBaSEpoZDB4cGJtVmhja1ZzWlcxbGJuUXBJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQjdJSE4wWVhKMFFtbHVaR2x1Wnl3Z1pXNWtRbWx1WkdsdVp5QjlJRDBnWld4bGJXVnVkRHRjYmlBZ0lDQnRkWFJoZEdWRmJHVnRaVzUwS0dWc1pXMWxiblFzSUh0Y2JpQWdJQ0FnSUhOMFlYSjBRbWx1WkdsdVp6b2dibVYzUW1sdVpHbHVaMEZtZEdWeVJHVnNaWFJwYjI0b2MzUmhjblJDYVc1a2FXNW5MQ0JrWld4bGRHVmtSV3hsYldWdWRFbGtjeWtzWEc0Z0lDQWdJQ0JsYm1SQ2FXNWthVzVuT2lCdVpYZENhVzVrYVc1blFXWjBaWEpFWld4bGRHbHZiaWhsYm1SQ2FXNWthVzVuTENCa1pXeGxkR1ZrUld4bGJXVnVkRWxrY3lrc1hHNGdJQ0FnZlNrN1hHNGdJSDBwTzF4dWZUdGNibHh1WTI5dWMzUWdibVYzUW1sdVpHbHVaMEZtZEdWeVJHVnNaWFJwYjI0Z1BTQW9YRzRnSUdKcGJtUnBibWM2SUZCdmFXNTBRbWx1WkdsdVp5QjhJRzUxYkd3c1hHNGdJR1JsYkdWMFpXUkZiR1Z0Wlc1MFNXUnpPaUJUWlhROFJYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhDSnBaRndpWFQ0c1hHNHBPaUJRYjJsdWRFSnBibVJwYm1jZ2ZDQnVkV3hzSUQwK0lIdGNiaUFnYVdZZ0tHSnBibVJwYm1jZ1BUMGdiblZzYkNCOGZDQmtaV3hsZEdWa1JXeGxiV1Z1ZEVsa2N5NW9ZWE1vWW1sdVpHbHVaeTVsYkdWdFpXNTBTV1FwS1NCN1hHNGdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUdKcGJtUnBibWM3WEc1OU8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2VsZW1lbnQvYmluZGluZy50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vZWxlbWVudC9ib3VuZHMudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vZWxlbWVudC9ib3VuZHMudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEVsZW1lbnRBYnNvbHV0ZUNvb3Jkc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldEVsZW1lbnRBYnNvbHV0ZUNvb3JkcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicG9pbnRSZWxhdGl2ZVRvXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcG9pbnRSZWxhdGl2ZVRvKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXREaWFtb25kUG9pbnRzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0RGlhbW9uZFBvaW50cyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0Q3VydmVQYXRoT3BzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0Q3VydmVQYXRoT3BzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRBcnJvd2hlYWRQb2ludHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRBcnJvd2hlYWRQb2ludHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEVsZW1lbnRCb3VuZHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRFbGVtZW50Qm91bmRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRDb21tb25Cb3VuZHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRDb21tb25Cb3VuZHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldFJlc2l6ZWRFbGVtZW50QWJzb2x1dGVDb29yZHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRSZXNpemVkRWxlbWVudEFic29sdXRlQ29vcmRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRFbGVtZW50UG9pbnRzQ29vcmRzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0RWxlbWVudFBvaW50c0Nvb3JkcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0Q2xvc2VzdEVsZW1lbnRCb3VuZHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRDbG9zZXN0RWxlbWVudEJvdW5kcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0Q29tbW9uQm91bmRpbmdCb3hcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRDb21tb25Cb3VuZGluZ0JveClcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL21hdGggKi8gXFxcIi4uLy4uL21hdGgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcm91Z2hqc19iaW5fcm91Z2hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJvdWdoanMvYmluL3JvdWdoICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vcm91Z2guanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3JlbmRlcmVyX3JlbmRlckVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3JlbmRlcmVyL3JlbmRlckVsZW1lbnQgKi8gXFxcIi4uLy4uL3JlbmRlcmVyL3JlbmRlckVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vdHlwZUNoZWNrcyAqLyBcXFwiLi4vLi4vZWxlbWVudC90eXBlQ2hlY2tzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wb2ludHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3BvaW50cyAqLyBcXFwiLi4vLi4vcG9pbnRzLnRzXFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuLy8gSWYgdGhlIGVsZW1lbnQgaXMgY3JlYXRlZCBmcm9tIHJpZ2h0IHRvIGxlZnQsIHRoZSB3aWR0aCBpcyBnb2luZyB0byBiZSBuZWdhdGl2ZVxcbi8vIFRoaXMgc2V0IG9mIGZ1bmN0aW9ucyByZXRyaWV2ZXMgdGhlIGFic29sdXRlIHBvc2l0aW9uIG9mIHRoZSA0IHBvaW50cy5cXG5jb25zdCBnZXRFbGVtZW50QWJzb2x1dGVDb29yZHMgPSAoZWxlbWVudCkgPT4ge1xcbiAgICBpZiAoKDAsX3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5pc0ZyZWVEcmF3RWxlbWVudCkoZWxlbWVudCkpIHtcXG4gICAgICAgIHJldHVybiBnZXRGcmVlRHJhd0VsZW1lbnRBYnNvbHV0ZUNvb3JkcyhlbGVtZW50KTtcXG4gICAgfVxcbiAgICBlbHNlIGlmICgoMCxfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmlzTGluZWFyRWxlbWVudCkoZWxlbWVudCkpIHtcXG4gICAgICAgIHJldHVybiBnZXRMaW5lYXJFbGVtZW50QWJzb2x1dGVDb29yZHMoZWxlbWVudCk7XFxuICAgIH1cXG4gICAgcmV0dXJuIFtcXG4gICAgICAgIGVsZW1lbnQueCxcXG4gICAgICAgIGVsZW1lbnQueSxcXG4gICAgICAgIGVsZW1lbnQueCArIGVsZW1lbnQud2lkdGgsXFxuICAgICAgICBlbGVtZW50LnkgKyBlbGVtZW50LmhlaWdodCxcXG4gICAgXTtcXG59O1xcbmNvbnN0IHBvaW50UmVsYXRpdmVUbyA9IChlbGVtZW50LCBhYnNvbHV0ZUNvb3JkcykgPT4ge1xcbiAgICByZXR1cm4gW2Fic29sdXRlQ29vcmRzWzBdIC0gZWxlbWVudC54LCBhYnNvbHV0ZUNvb3Jkc1sxXSAtIGVsZW1lbnQueV07XFxufTtcXG5jb25zdCBnZXREaWFtb25kUG9pbnRzID0gKGVsZW1lbnQpID0+IHtcXG4gICAgLy8gSGVyZSB3ZSBhZGQgKzEgdG8gYXZvaWQgdGhlc2UgbnVtYmVycyB0byBiZSAwXFxuICAgIC8vIG90aGVyd2lzZSByb3VnaC5qcyB3aWxsIHRocm93IGFuIGVycm9yIGNvbXBsYWluaW5nIGFib3V0IGl0XFxuICAgIGNvbnN0IHRvcFggPSBNYXRoLmZsb29yKGVsZW1lbnQud2lkdGggLyAyKSArIDE7XFxuICAgIGNvbnN0IHRvcFkgPSAwO1xcbiAgICBjb25zdCByaWdodFggPSBlbGVtZW50LndpZHRoO1xcbiAgICBjb25zdCByaWdodFkgPSBNYXRoLmZsb29yKGVsZW1lbnQuaGVpZ2h0IC8gMikgKyAxO1xcbiAgICBjb25zdCBib3R0b21YID0gdG9wWDtcXG4gICAgY29uc3QgYm90dG9tWSA9IGVsZW1lbnQuaGVpZ2h0O1xcbiAgICBjb25zdCBsZWZ0WCA9IDA7XFxuICAgIGNvbnN0IGxlZnRZID0gcmlnaHRZO1xcbiAgICByZXR1cm4gW3RvcFgsIHRvcFksIHJpZ2h0WCwgcmlnaHRZLCBib3R0b21YLCBib3R0b21ZLCBsZWZ0WCwgbGVmdFldO1xcbn07XFxuY29uc3QgZ2V0Q3VydmVQYXRoT3BzID0gKHNoYXBlKSA9PiB7XFxuICAgIGZvciAoY29uc3Qgc2V0IG9mIHNoYXBlLnNldHMpIHtcXG4gICAgICAgIGlmIChzZXQudHlwZSA9PT0gXFxcInBhdGhcXFwiKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHNldC5vcHM7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIHNoYXBlLnNldHNbMF0ub3BzO1xcbn07XFxuY29uc3QgZ2V0TWluTWF4WFlGcm9tQ3VydmVQYXRoT3BzID0gKG9wcywgdHJhbnNmb3JtWFkpID0+IHtcXG4gICAgbGV0IGN1cnJlbnRQID0gWzAsIDBdO1xcbiAgICBjb25zdCB7IG1pblgsIG1pblksIG1heFgsIG1heFkgfSA9IG9wcy5yZWR1Y2UoKGxpbWl0cywgeyBvcCwgZGF0YSB9KSA9PiB7XFxuICAgICAgICAvLyBUaGVyZSBhcmUgb25seSBmb3VyIG9wZXJhdGlvbiB0eXBlczpcXG4gICAgICAgIC8vIG1vdmUsIGJjdXJ2ZVRvLCBsaW5lVG8sIGFuZCBjdXJ2ZVRvXFxuICAgICAgICBpZiAob3AgPT09IFxcXCJtb3ZlXFxcIikge1xcbiAgICAgICAgICAgIC8vIGNoYW5nZSBzdGFydGluZyBwb2ludFxcbiAgICAgICAgICAgIGN1cnJlbnRQID0gZGF0YTtcXG4gICAgICAgICAgICAvLyBtb3ZlIG9wZXJhdGlvbiBkb2VzIG5vdCBkcmF3IGFueXRoaW5nOyBzbywgaXQgYWx3YXlzXFxuICAgICAgICAgICAgLy8gcmV0dXJucyBmYWxzZVxcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSBpZiAob3AgPT09IFxcXCJiY3VydmVUb1xcXCIpIHtcXG4gICAgICAgICAgICAvLyBjcmVhdGUgcG9pbnRzIGZyb20gYmV6aWVyIGN1cnZlXFxuICAgICAgICAgICAgLy8gYmV6aWVyIGN1cnZlIHN0b3JlcyBkYXRhIGFzIGEgZmxhdHRlbmVkIGFycmF5IG9mIHRocmVlIHBvc2l0aW9uc1xcbiAgICAgICAgICAgIC8vIFt4MSwgeTEsIHgyLCB5MiwgeDMsIHkzXVxcbiAgICAgICAgICAgIGNvbnN0IHAxID0gW2RhdGFbMF0sIGRhdGFbMV1dO1xcbiAgICAgICAgICAgIGNvbnN0IHAyID0gW2RhdGFbMl0sIGRhdGFbM11dO1xcbiAgICAgICAgICAgIGNvbnN0IHAzID0gW2RhdGFbNF0sIGRhdGFbNV1dO1xcbiAgICAgICAgICAgIGNvbnN0IHAwID0gY3VycmVudFA7XFxuICAgICAgICAgICAgY3VycmVudFAgPSBwMztcXG4gICAgICAgICAgICBjb25zdCBlcXVhdGlvbiA9ICh0LCBpZHgpID0+IE1hdGgucG93KDEgLSB0LCAzKSAqIHAzW2lkeF0gK1xcbiAgICAgICAgICAgICAgICAzICogdCAqIE1hdGgucG93KDEgLSB0LCAyKSAqIHAyW2lkeF0gK1xcbiAgICAgICAgICAgICAgICAzICogTWF0aC5wb3codCwgMikgKiAoMSAtIHQpICogcDFbaWR4XSArXFxuICAgICAgICAgICAgICAgIHAwW2lkeF0gKiBNYXRoLnBvdyh0LCAzKTtcXG4gICAgICAgICAgICBsZXQgdCA9IDA7XFxuICAgICAgICAgICAgd2hpbGUgKHQgPD0gMS4wKSB7XFxuICAgICAgICAgICAgICAgIGxldCB4ID0gZXF1YXRpb24odCwgMCk7XFxuICAgICAgICAgICAgICAgIGxldCB5ID0gZXF1YXRpb24odCwgMSk7XFxuICAgICAgICAgICAgICAgIGlmICh0cmFuc2Zvcm1YWSkge1xcbiAgICAgICAgICAgICAgICAgICAgW3gsIHldID0gdHJhbnNmb3JtWFkoeCwgeSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgbGltaXRzLm1pblkgPSBNYXRoLm1pbihsaW1pdHMubWluWSwgeSk7XFxuICAgICAgICAgICAgICAgIGxpbWl0cy5taW5YID0gTWF0aC5taW4obGltaXRzLm1pblgsIHgpO1xcbiAgICAgICAgICAgICAgICBsaW1pdHMubWF4WCA9IE1hdGgubWF4KGxpbWl0cy5tYXhYLCB4KTtcXG4gICAgICAgICAgICAgICAgbGltaXRzLm1heFkgPSBNYXRoLm1heChsaW1pdHMubWF4WSwgeSk7XFxuICAgICAgICAgICAgICAgIHQgKz0gMC4xO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKG9wID09PSBcXFwibGluZVRvXFxcIikge1xcbiAgICAgICAgICAgIC8vIFRPRE86IEltcGxlbWVudCB0aGlzXFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIGlmIChvcCA9PT0gXFxcInFjdXJ2ZVRvXFxcIikge1xcbiAgICAgICAgICAgIC8vIFRPRE86IEltcGxlbWVudCB0aGlzXFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gbGltaXRzO1xcbiAgICB9LCB7IG1pblg6IEluZmluaXR5LCBtaW5ZOiBJbmZpbml0eSwgbWF4WDogLUluZmluaXR5LCBtYXhZOiAtSW5maW5pdHkgfSk7XFxuICAgIHJldHVybiBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV07XFxufTtcXG5jb25zdCBnZXRCb3VuZHNGcm9tUG9pbnRzID0gKHBvaW50cykgPT4ge1xcbiAgICBsZXQgbWluWCA9IEluZmluaXR5O1xcbiAgICBsZXQgbWluWSA9IEluZmluaXR5O1xcbiAgICBsZXQgbWF4WCA9IC1JbmZpbml0eTtcXG4gICAgbGV0IG1heFkgPSAtSW5maW5pdHk7XFxuICAgIGZvciAoY29uc3QgW3gsIHldIG9mIHBvaW50cykge1xcbiAgICAgICAgbWluWCA9IE1hdGgubWluKG1pblgsIHgpO1xcbiAgICAgICAgbWluWSA9IE1hdGgubWluKG1pblksIHkpO1xcbiAgICAgICAgbWF4WCA9IE1hdGgubWF4KG1heFgsIHgpO1xcbiAgICAgICAgbWF4WSA9IE1hdGgubWF4KG1heFksIHkpO1xcbiAgICB9XFxuICAgIHJldHVybiBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV07XFxufTtcXG5jb25zdCBnZXRGcmVlRHJhd0VsZW1lbnRBYnNvbHV0ZUNvb3JkcyA9IChlbGVtZW50KSA9PiB7XFxuICAgIGNvbnN0IFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXSA9IGdldEJvdW5kc0Zyb21Qb2ludHMoZWxlbWVudC5wb2ludHMpO1xcbiAgICByZXR1cm4gW1xcbiAgICAgICAgbWluWCArIGVsZW1lbnQueCxcXG4gICAgICAgIG1pblkgKyBlbGVtZW50LnksXFxuICAgICAgICBtYXhYICsgZWxlbWVudC54LFxcbiAgICAgICAgbWF4WSArIGVsZW1lbnQueSxcXG4gICAgXTtcXG59O1xcbmNvbnN0IGdldExpbmVhckVsZW1lbnRBYnNvbHV0ZUNvb3JkcyA9IChlbGVtZW50KSA9PiB7XFxuICAgIGxldCBjb29yZHM7XFxuICAgIGlmIChlbGVtZW50LnBvaW50cy5sZW5ndGggPCAyIHx8ICEoMCxfcmVuZGVyZXJfcmVuZGVyRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldFNoYXBlRm9yRWxlbWVudCkoZWxlbWVudCkpIHtcXG4gICAgICAgIC8vIFhYWCB0aGlzIGlzIGp1c3QgYSBwb29yIGVzdGltYXRlIGFuZCBub3QgdmVyeSB1c2VmdWxcXG4gICAgICAgIGNvbnN0IHsgbWluWCwgbWluWSwgbWF4WCwgbWF4WSB9ID0gZWxlbWVudC5wb2ludHMucmVkdWNlKChsaW1pdHMsIFt4LCB5XSkgPT4ge1xcbiAgICAgICAgICAgIGxpbWl0cy5taW5ZID0gTWF0aC5taW4obGltaXRzLm1pblksIHkpO1xcbiAgICAgICAgICAgIGxpbWl0cy5taW5YID0gTWF0aC5taW4obGltaXRzLm1pblgsIHgpO1xcbiAgICAgICAgICAgIGxpbWl0cy5tYXhYID0gTWF0aC5tYXgobGltaXRzLm1heFgsIHgpO1xcbiAgICAgICAgICAgIGxpbWl0cy5tYXhZID0gTWF0aC5tYXgobGltaXRzLm1heFksIHkpO1xcbiAgICAgICAgICAgIHJldHVybiBsaW1pdHM7XFxuICAgICAgICB9LCB7IG1pblg6IEluZmluaXR5LCBtaW5ZOiBJbmZpbml0eSwgbWF4WDogLUluZmluaXR5LCBtYXhZOiAtSW5maW5pdHkgfSk7XFxuICAgICAgICBjb29yZHMgPSBbXFxuICAgICAgICAgICAgbWluWCArIGVsZW1lbnQueCxcXG4gICAgICAgICAgICBtaW5ZICsgZWxlbWVudC55LFxcbiAgICAgICAgICAgIG1heFggKyBlbGVtZW50LngsXFxuICAgICAgICAgICAgbWF4WSArIGVsZW1lbnQueSxcXG4gICAgICAgIF07XFxuICAgIH1cXG4gICAgZWxzZSB7XFxuICAgICAgICBjb25zdCBzaGFwZSA9ICgwLF9yZW5kZXJlcl9yZW5kZXJFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZ2V0U2hhcGVGb3JFbGVtZW50KShlbGVtZW50KTtcXG4gICAgICAgIC8vIGZpcnN0IGVsZW1lbnQgaXMgYWx3YXlzIHRoZSBjdXJ2ZVxcbiAgICAgICAgY29uc3Qgb3BzID0gZ2V0Q3VydmVQYXRoT3BzKHNoYXBlWzBdKTtcXG4gICAgICAgIGNvbnN0IFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXSA9IGdldE1pbk1heFhZRnJvbUN1cnZlUGF0aE9wcyhvcHMpO1xcbiAgICAgICAgY29vcmRzID0gW1xcbiAgICAgICAgICAgIG1pblggKyBlbGVtZW50LngsXFxuICAgICAgICAgICAgbWluWSArIGVsZW1lbnQueSxcXG4gICAgICAgICAgICBtYXhYICsgZWxlbWVudC54LFxcbiAgICAgICAgICAgIG1heFkgKyBlbGVtZW50LnksXFxuICAgICAgICBdO1xcbiAgICB9XFxuICAgIHJldHVybiBjb29yZHM7XFxufTtcXG5jb25zdCBnZXRBcnJvd2hlYWRQb2ludHMgPSAoZWxlbWVudCwgc2hhcGUsIHBvc2l0aW9uLCBhcnJvd2hlYWQpID0+IHtcXG4gICAgY29uc3Qgb3BzID0gZ2V0Q3VydmVQYXRoT3BzKHNoYXBlWzBdKTtcXG4gICAgaWYgKG9wcy5sZW5ndGggPCAxKSB7XFxuICAgICAgICByZXR1cm4gbnVsbDtcXG4gICAgfVxcbiAgICAvLyBUaGUgaW5kZXggb2YgdGhlIGJDdXJ2ZSBvcGVyYXRpb24gdG8gZXhhbWluZS5cXG4gICAgY29uc3QgaW5kZXggPSBwb3NpdGlvbiA9PT0gXFxcInN0YXJ0XFxcIiA/IDEgOiBvcHMubGVuZ3RoIC0gMTtcXG4gICAgY29uc3QgZGF0YSA9IG9wc1tpbmRleF0uZGF0YTtcXG4gICAgY29uc3QgcDMgPSBbZGF0YVs0XSwgZGF0YVs1XV07XFxuICAgIGNvbnN0IHAyID0gW2RhdGFbMl0sIGRhdGFbM11dO1xcbiAgICBjb25zdCBwMSA9IFtkYXRhWzBdLCBkYXRhWzFdXTtcXG4gICAgLy8gV2UgbmVlZCB0byBmaW5kIHAwIG9mIHRoZSBiZXppZXIgY3VydmUuXFxuICAgIC8vIEl0IGlzIHR5cGljYWxseSB0aGUgbGFzdCBwb2ludCBvZiB0aGUgcHJldmlvdXNcXG4gICAgLy8gY3VydmU7IGl0IGNhbiBhbHNvIGJlIHRoZSBwb3NpdGlvbiBvZiBtb3ZlVG8gb3BlcmF0aW9uLlxcbiAgICBjb25zdCBwcmV2T3AgPSBvcHNbaW5kZXggLSAxXTtcXG4gICAgbGV0IHAwID0gWzAsIDBdO1xcbiAgICBpZiAocHJldk9wLm9wID09PSBcXFwibW92ZVxcXCIpIHtcXG4gICAgICAgIHAwID0gcHJldk9wLmRhdGE7XFxuICAgIH1cXG4gICAgZWxzZSBpZiAocHJldk9wLm9wID09PSBcXFwiYmN1cnZlVG9cXFwiKSB7XFxuICAgICAgICBwMCA9IFtwcmV2T3AuZGF0YVs0XSwgcHJldk9wLmRhdGFbNV1dO1xcbiAgICB9XFxuICAgIC8vIEIodCkgPSBwMCAqICgxLXQpXjMgKyAzcDEgKiB0ICogKDEtdCleMiArIDNwMiAqIHReMiAqICgxLXQpICsgcDMgKiB0XjNcXG4gICAgY29uc3QgZXF1YXRpb24gPSAodCwgaWR4KSA9PiBNYXRoLnBvdygxIC0gdCwgMykgKiBwM1tpZHhdICtcXG4gICAgICAgIDMgKiB0ICogTWF0aC5wb3coMSAtIHQsIDIpICogcDJbaWR4XSArXFxuICAgICAgICAzICogTWF0aC5wb3codCwgMikgKiAoMSAtIHQpICogcDFbaWR4XSArXFxuICAgICAgICBwMFtpZHhdICogTWF0aC5wb3codCwgMyk7XFxuICAgIC8vIEVlIGtub3cgdGhlIGxhc3QgcG9pbnQgb2YgdGhlIGFycm93IChvciB0aGUgZmlyc3QsIGlmIHN0YXJ0IGFycm93aGVhZCkuXFxuICAgIGNvbnN0IFt4MiwgeTJdID0gcG9zaXRpb24gPT09IFxcXCJzdGFydFxcXCIgPyBwMCA6IHAzO1xcbiAgICAvLyBCeSB1c2luZyBjdWJpYyBiZXppZXIgZXF1YXRpb24gKEIodCkpIGFuZCB0aGUgZ2l2ZW4gcGFyYW1ldGVycyxcXG4gICAgLy8gd2UgY2FsY3VsYXRlIGEgcG9pbnQgdGhhdCBpcyBjbG9zZXIgdG8gdGhlIGxhc3QgcG9pbnQuXFxuICAgIC8vIFRoZSB2YWx1ZSAwLjMgaXMgY2hvc2VuIGFyYml0cmFyaWx5IGFuZCBpdCB3b3JrcyBiZXN0IGZvciBhbGxcXG4gICAgLy8gdGhlIHRlc3RlZCBjYXNlcy5cXG4gICAgY29uc3QgW3gxLCB5MV0gPSBbZXF1YXRpb24oMC4zLCAwKSwgZXF1YXRpb24oMC4zLCAxKV07XFxuICAgIC8vIEZpbmQgdGhlIG5vcm1hbGl6ZWQgZGlyZWN0aW9uIHZlY3RvciBiYXNlZCBvbiB0aGVcXG4gICAgLy8gcHJldmlvdXNseSBjYWxjdWxhdGVkIHBvaW50cy5cXG4gICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLmh5cG90KHgyIC0geDEsIHkyIC0geTEpO1xcbiAgICBjb25zdCBueCA9ICh4MiAtIHgxKSAvIGRpc3RhbmNlO1xcbiAgICBjb25zdCBueSA9ICh5MiAtIHkxKSAvIGRpc3RhbmNlO1xcbiAgICBjb25zdCBzaXplID0ge1xcbiAgICAgICAgYXJyb3c6IDMwLFxcbiAgICAgICAgYmFyOiAxNSxcXG4gICAgICAgIGRvdDogMTUsXFxuICAgICAgICB0cmlhbmdsZTogMTUsXFxuICAgIH1bYXJyb3doZWFkXTsgLy8gcGl4ZWxzICh3aWxsIGRpZmZlciBmb3IgZWFjaCBhcnJvd2hlYWQpXFxuICAgIGxldCBsZW5ndGggPSAwO1xcbiAgICBpZiAoYXJyb3doZWFkID09PSBcXFwiYXJyb3dcXFwiKSB7XFxuICAgICAgICAvLyBMZW5ndGggZm9yIC0+IGFycm93cyBpcyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBsYXN0IHNlY3Rpb25cXG4gICAgICAgIGNvbnN0IFtjeCwgY3ldID0gZWxlbWVudC5wb2ludHNbZWxlbWVudC5wb2ludHMubGVuZ3RoIC0gMV07XFxuICAgICAgICBjb25zdCBbcHgsIHB5XSA9IGVsZW1lbnQucG9pbnRzLmxlbmd0aCA+IDFcXG4gICAgICAgICAgICA/IGVsZW1lbnQucG9pbnRzW2VsZW1lbnQucG9pbnRzLmxlbmd0aCAtIDJdXFxuICAgICAgICAgICAgOiBbMCwgMF07XFxuICAgICAgICBsZW5ndGggPSBNYXRoLmh5cG90KGN4IC0gcHgsIGN5IC0gcHkpO1xcbiAgICB9XFxuICAgIGVsc2Uge1xcbiAgICAgICAgLy8gTGVuZ3RoIGZvciBvdGhlciBhcnJvd2hlYWQgdHlwZXMgaXMgYmFzZWQgb24gdGhlIHRvdGFsIGxlbmd0aCBvZiB0aGUgbGluZVxcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50LnBvaW50cy5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgICAgIGNvbnN0IFtweCwgcHldID0gZWxlbWVudC5wb2ludHNbaSAtIDFdIHx8IFswLCAwXTtcXG4gICAgICAgICAgICBjb25zdCBbY3gsIGN5XSA9IGVsZW1lbnQucG9pbnRzW2ldO1xcbiAgICAgICAgICAgIGxlbmd0aCArPSBNYXRoLmh5cG90KGN4IC0gcHgsIGN5IC0gcHkpO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIC8vIFNjYWxlIGRvd24gdGhlIGFycm93aGVhZCB1bnRpbCB3ZSBoaXQgYSBjZXJ0YWluIHNpemUgc28gdGhhdCBpdCBkb2Vzbid0IGxvb2sgd2VpcmQuXFxuICAgIC8vIFRoaXMgdmFsdWUgaXMgc2VsZWN0ZWQgYnkgbWluaW1pemluZyBhIG1pbmltdW0gc2l6ZSB3aXRoIHRoZSBsYXN0IHNlZ21lbnQgb2YgdGhlIGFycm93aGVhZFxcbiAgICBjb25zdCBtaW5TaXplID0gTWF0aC5taW4oc2l6ZSwgbGVuZ3RoIC8gMik7XFxuICAgIGNvbnN0IHhzID0geDIgLSBueCAqIG1pblNpemU7XFxuICAgIGNvbnN0IHlzID0geTIgLSBueSAqIG1pblNpemU7XFxuICAgIGlmIChhcnJvd2hlYWQgPT09IFxcXCJkb3RcXFwiKSB7XFxuICAgICAgICBjb25zdCByID0gTWF0aC5oeXBvdCh5cyAtIHkyLCB4cyAtIHgyKSArIGVsZW1lbnQuc3Ryb2tlV2lkdGg7XFxuICAgICAgICByZXR1cm4gW3gyLCB5Miwgcl07XFxuICAgIH1cXG4gICAgY29uc3QgYW5nbGUgPSB7XFxuICAgICAgICBhcnJvdzogMjAsXFxuICAgICAgICBiYXI6IDkwLFxcbiAgICAgICAgdHJpYW5nbGU6IDI1LFxcbiAgICB9W2Fycm93aGVhZF07IC8vIGRlZ3JlZXNcXG4gICAgLy8gUmV0dXJuIHBvaW50c1xcbiAgICBjb25zdCBbeDMsIHkzXSA9ICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucm90YXRlKSh4cywgeXMsIHgyLCB5MiwgKC1hbmdsZSAqIE1hdGguUEkpIC8gMTgwKTtcXG4gICAgY29uc3QgW3g0LCB5NF0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJvdGF0ZSkoeHMsIHlzLCB4MiwgeTIsIChhbmdsZSAqIE1hdGguUEkpIC8gMTgwKTtcXG4gICAgcmV0dXJuIFt4MiwgeTIsIHgzLCB5MywgeDQsIHk0XTtcXG59O1xcbmNvbnN0IGdldExpbmVhckVsZW1lbnRSb3RhdGVkQm91bmRzID0gKGVsZW1lbnQsIGN4LCBjeSkgPT4ge1xcbiAgICBpZiAoZWxlbWVudC5wb2ludHMubGVuZ3RoIDwgMiB8fCAhKDAsX3JlbmRlcmVyX3JlbmRlckVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXRTaGFwZUZvckVsZW1lbnQpKGVsZW1lbnQpKSB7XFxuICAgICAgICAvLyBYWFggdGhpcyBpcyBqdXN0IGEgcG9vciBlc3RpbWF0ZSBhbmQgbm90IHZlcnkgdXNlZnVsXFxuICAgICAgICBjb25zdCB7IG1pblgsIG1pblksIG1heFgsIG1heFkgfSA9IGVsZW1lbnQucG9pbnRzLnJlZHVjZSgobGltaXRzLCBbeCwgeV0pID0+IHtcXG4gICAgICAgICAgICBbeCwgeV0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJvdGF0ZSkoZWxlbWVudC54ICsgeCwgZWxlbWVudC55ICsgeSwgY3gsIGN5LCBlbGVtZW50LmFuZ2xlKTtcXG4gICAgICAgICAgICBsaW1pdHMubWluWSA9IE1hdGgubWluKGxpbWl0cy5taW5ZLCB5KTtcXG4gICAgICAgICAgICBsaW1pdHMubWluWCA9IE1hdGgubWluKGxpbWl0cy5taW5YLCB4KTtcXG4gICAgICAgICAgICBsaW1pdHMubWF4WCA9IE1hdGgubWF4KGxpbWl0cy5tYXhYLCB4KTtcXG4gICAgICAgICAgICBsaW1pdHMubWF4WSA9IE1hdGgubWF4KGxpbWl0cy5tYXhZLCB5KTtcXG4gICAgICAgICAgICByZXR1cm4gbGltaXRzO1xcbiAgICAgICAgfSwgeyBtaW5YOiBJbmZpbml0eSwgbWluWTogSW5maW5pdHksIG1heFg6IC1JbmZpbml0eSwgbWF4WTogLUluZmluaXR5IH0pO1xcbiAgICAgICAgcmV0dXJuIFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXTtcXG4gICAgfVxcbiAgICBjb25zdCBzaGFwZSA9ICgwLF9yZW5kZXJlcl9yZW5kZXJFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZ2V0U2hhcGVGb3JFbGVtZW50KShlbGVtZW50KTtcXG4gICAgLy8gZmlyc3QgZWxlbWVudCBpcyBhbHdheXMgdGhlIGN1cnZlXFxuICAgIGNvbnN0IG9wcyA9IGdldEN1cnZlUGF0aE9wcyhzaGFwZVswXSk7XFxuICAgIGNvbnN0IHRyYW5zZm9ybVhZID0gKHgsIHkpID0+ICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucm90YXRlKShlbGVtZW50LnggKyB4LCBlbGVtZW50LnkgKyB5LCBjeCwgY3ksIGVsZW1lbnQuYW5nbGUpO1xcbiAgICByZXR1cm4gZ2V0TWluTWF4WFlGcm9tQ3VydmVQYXRoT3BzKG9wcywgdHJhbnNmb3JtWFkpO1xcbn07XFxuLy8gV2UgY291bGQgY2FjaGUgdGhpcyBzdHVmZlxcbmNvbnN0IGdldEVsZW1lbnRCb3VuZHMgPSAoZWxlbWVudCkgPT4ge1xcbiAgICBsZXQgYm91bmRzO1xcbiAgICBjb25zdCBbeDEsIHkxLCB4MiwgeTJdID0gZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzKGVsZW1lbnQpO1xcbiAgICBjb25zdCBjeCA9ICh4MSArIHgyKSAvIDI7XFxuICAgIGNvbnN0IGN5ID0gKHkxICsgeTIpIC8gMjtcXG4gICAgaWYgKCgwLF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uaXNGcmVlRHJhd0VsZW1lbnQpKGVsZW1lbnQpKSB7XFxuICAgICAgICBjb25zdCBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV0gPSBnZXRCb3VuZHNGcm9tUG9pbnRzKGVsZW1lbnQucG9pbnRzLm1hcCgoW3gsIHldKSA9PiAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJvdGF0ZSkoeCwgeSwgY3ggLSBlbGVtZW50LngsIGN5IC0gZWxlbWVudC55LCBlbGVtZW50LmFuZ2xlKSkpO1xcbiAgICAgICAgcmV0dXJuIFtcXG4gICAgICAgICAgICBtaW5YICsgZWxlbWVudC54LFxcbiAgICAgICAgICAgIG1pblkgKyBlbGVtZW50LnksXFxuICAgICAgICAgICAgbWF4WCArIGVsZW1lbnQueCxcXG4gICAgICAgICAgICBtYXhZICsgZWxlbWVudC55LFxcbiAgICAgICAgXTtcXG4gICAgfVxcbiAgICBlbHNlIGlmICgoMCxfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmlzTGluZWFyRWxlbWVudCkoZWxlbWVudCkpIHtcXG4gICAgICAgIGJvdW5kcyA9IGdldExpbmVhckVsZW1lbnRSb3RhdGVkQm91bmRzKGVsZW1lbnQsIGN4LCBjeSk7XFxuICAgIH1cXG4gICAgZWxzZSBpZiAoZWxlbWVudC50eXBlID09PSBcXFwiZGlhbW9uZFxcXCIpIHtcXG4gICAgICAgIGNvbnN0IFt4MTEsIHkxMV0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJvdGF0ZSkoY3gsIHkxLCBjeCwgY3ksIGVsZW1lbnQuYW5nbGUpO1xcbiAgICAgICAgY29uc3QgW3gxMiwgeTEyXSA9ICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucm90YXRlKShjeCwgeTIsIGN4LCBjeSwgZWxlbWVudC5hbmdsZSk7XFxuICAgICAgICBjb25zdCBbeDIyLCB5MjJdID0gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5yb3RhdGUpKHgxLCBjeSwgY3gsIGN5LCBlbGVtZW50LmFuZ2xlKTtcXG4gICAgICAgIGNvbnN0IFt4MjEsIHkyMV0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJvdGF0ZSkoeDIsIGN5LCBjeCwgY3ksIGVsZW1lbnQuYW5nbGUpO1xcbiAgICAgICAgY29uc3QgbWluWCA9IE1hdGgubWluKHgxMSwgeDEyLCB4MjIsIHgyMSk7XFxuICAgICAgICBjb25zdCBtaW5ZID0gTWF0aC5taW4oeTExLCB5MTIsIHkyMiwgeTIxKTtcXG4gICAgICAgIGNvbnN0IG1heFggPSBNYXRoLm1heCh4MTEsIHgxMiwgeDIyLCB4MjEpO1xcbiAgICAgICAgY29uc3QgbWF4WSA9IE1hdGgubWF4KHkxMSwgeTEyLCB5MjIsIHkyMSk7XFxuICAgICAgICBib3VuZHMgPSBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV07XFxuICAgIH1cXG4gICAgZWxzZSBpZiAoZWxlbWVudC50eXBlID09PSBcXFwiZWxsaXBzZVxcXCIpIHtcXG4gICAgICAgIGNvbnN0IHcgPSAoeDIgLSB4MSkgLyAyO1xcbiAgICAgICAgY29uc3QgaCA9ICh5MiAtIHkxKSAvIDI7XFxuICAgICAgICBjb25zdCBjb3MgPSBNYXRoLmNvcyhlbGVtZW50LmFuZ2xlKTtcXG4gICAgICAgIGNvbnN0IHNpbiA9IE1hdGguc2luKGVsZW1lbnQuYW5nbGUpO1xcbiAgICAgICAgY29uc3Qgd3cgPSBNYXRoLmh5cG90KHcgKiBjb3MsIGggKiBzaW4pO1xcbiAgICAgICAgY29uc3QgaGggPSBNYXRoLmh5cG90KGggKiBjb3MsIHcgKiBzaW4pO1xcbiAgICAgICAgYm91bmRzID0gW2N4IC0gd3csIGN5IC0gaGgsIGN4ICsgd3csIGN5ICsgaGhdO1xcbiAgICB9XFxuICAgIGVsc2Uge1xcbiAgICAgICAgY29uc3QgW3gxMSwgeTExXSA9ICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucm90YXRlKSh4MSwgeTEsIGN4LCBjeSwgZWxlbWVudC5hbmdsZSk7XFxuICAgICAgICBjb25zdCBbeDEyLCB5MTJdID0gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5yb3RhdGUpKHgxLCB5MiwgY3gsIGN5LCBlbGVtZW50LmFuZ2xlKTtcXG4gICAgICAgIGNvbnN0IFt4MjIsIHkyMl0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJvdGF0ZSkoeDIsIHkyLCBjeCwgY3ksIGVsZW1lbnQuYW5nbGUpO1xcbiAgICAgICAgY29uc3QgW3gyMSwgeTIxXSA9ICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucm90YXRlKSh4MiwgeTEsIGN4LCBjeSwgZWxlbWVudC5hbmdsZSk7XFxuICAgICAgICBjb25zdCBtaW5YID0gTWF0aC5taW4oeDExLCB4MTIsIHgyMiwgeDIxKTtcXG4gICAgICAgIGNvbnN0IG1pblkgPSBNYXRoLm1pbih5MTEsIHkxMiwgeTIyLCB5MjEpO1xcbiAgICAgICAgY29uc3QgbWF4WCA9IE1hdGgubWF4KHgxMSwgeDEyLCB4MjIsIHgyMSk7XFxuICAgICAgICBjb25zdCBtYXhZID0gTWF0aC5tYXgoeTExLCB5MTIsIHkyMiwgeTIxKTtcXG4gICAgICAgIGJvdW5kcyA9IFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXTtcXG4gICAgfVxcbiAgICByZXR1cm4gYm91bmRzO1xcbn07XFxuY29uc3QgZ2V0Q29tbW9uQm91bmRzID0gKGVsZW1lbnRzKSA9PiB7XFxuICAgIGlmICghZWxlbWVudHMubGVuZ3RoKSB7XFxuICAgICAgICByZXR1cm4gWzAsIDAsIDAsIDBdO1xcbiAgICB9XFxuICAgIGxldCBtaW5YID0gSW5maW5pdHk7XFxuICAgIGxldCBtYXhYID0gLUluZmluaXR5O1xcbiAgICBsZXQgbWluWSA9IEluZmluaXR5O1xcbiAgICBsZXQgbWF4WSA9IC1JbmZpbml0eTtcXG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xcbiAgICAgICAgY29uc3QgW3gxLCB5MSwgeDIsIHkyXSA9IGdldEVsZW1lbnRCb3VuZHMoZWxlbWVudCk7XFxuICAgICAgICBtaW5YID0gTWF0aC5taW4obWluWCwgeDEpO1xcbiAgICAgICAgbWluWSA9IE1hdGgubWluKG1pblksIHkxKTtcXG4gICAgICAgIG1heFggPSBNYXRoLm1heChtYXhYLCB4Mik7XFxuICAgICAgICBtYXhZID0gTWF0aC5tYXgobWF4WSwgeTIpO1xcbiAgICB9KTtcXG4gICAgcmV0dXJuIFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXTtcXG59O1xcbmNvbnN0IGdldFJlc2l6ZWRFbGVtZW50QWJzb2x1dGVDb29yZHMgPSAoZWxlbWVudCwgbmV4dFdpZHRoLCBuZXh0SGVpZ2h0KSA9PiB7XFxuICAgIGlmICghKCgwLF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uaXNMaW5lYXJFbGVtZW50KShlbGVtZW50KSB8fCAoMCxfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmlzRnJlZURyYXdFbGVtZW50KShlbGVtZW50KSkpIHtcXG4gICAgICAgIHJldHVybiBbXFxuICAgICAgICAgICAgZWxlbWVudC54LFxcbiAgICAgICAgICAgIGVsZW1lbnQueSxcXG4gICAgICAgICAgICBlbGVtZW50LnggKyBuZXh0V2lkdGgsXFxuICAgICAgICAgICAgZWxlbWVudC55ICsgbmV4dEhlaWdodCxcXG4gICAgICAgIF07XFxuICAgIH1cXG4gICAgY29uc3QgcG9pbnRzID0gKDAsX3BvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnJlc2NhbGVQb2ludHMpKDAsIG5leHRXaWR0aCwgKDAsX3BvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnJlc2NhbGVQb2ludHMpKDEsIG5leHRIZWlnaHQsIGVsZW1lbnQucG9pbnRzKSk7XFxuICAgIGxldCBib3VuZHM7XFxuICAgIGlmICgoMCxfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmlzRnJlZURyYXdFbGVtZW50KShlbGVtZW50KSkge1xcbiAgICAgICAgLy8gRnJlZSBEcmF3XFxuICAgICAgICBib3VuZHMgPSBnZXRCb3VuZHNGcm9tUG9pbnRzKHBvaW50cyk7XFxuICAgIH1cXG4gICAgZWxzZSB7XFxuICAgICAgICAvLyBMaW5lXFxuICAgICAgICBjb25zdCBnZW4gPSByb3VnaGpzX2Jpbl9yb3VnaF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fW1xcXCJkZWZhdWx0XFxcIl0uZ2VuZXJhdG9yKCk7XFxuICAgICAgICBjb25zdCBjdXJ2ZSA9IGVsZW1lbnQuc3Ryb2tlU2hhcnBuZXNzID09PSBcXFwic2hhcnBcXFwiXFxuICAgICAgICAgICAgPyBnZW4ubGluZWFyUGF0aChwb2ludHMsICgwLF9yZW5kZXJlcl9yZW5kZXJFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZ2VuZXJhdGVSb3VnaE9wdGlvbnMpKGVsZW1lbnQpKVxcbiAgICAgICAgICAgIDogZ2VuLmN1cnZlKHBvaW50cywgKDAsX3JlbmRlcmVyX3JlbmRlckVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZW5lcmF0ZVJvdWdoT3B0aW9ucykoZWxlbWVudCkpO1xcbiAgICAgICAgY29uc3Qgb3BzID0gZ2V0Q3VydmVQYXRoT3BzKGN1cnZlKTtcXG4gICAgICAgIGJvdW5kcyA9IGdldE1pbk1heFhZRnJvbUN1cnZlUGF0aE9wcyhvcHMpO1xcbiAgICB9XFxuICAgIGNvbnN0IFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXSA9IGJvdW5kcztcXG4gICAgcmV0dXJuIFtcXG4gICAgICAgIG1pblggKyBlbGVtZW50LngsXFxuICAgICAgICBtaW5ZICsgZWxlbWVudC55LFxcbiAgICAgICAgbWF4WCArIGVsZW1lbnQueCxcXG4gICAgICAgIG1heFkgKyBlbGVtZW50LnksXFxuICAgIF07XFxufTtcXG5jb25zdCBnZXRFbGVtZW50UG9pbnRzQ29vcmRzID0gKGVsZW1lbnQsIHBvaW50cywgc2hhcnBuZXNzKSA9PiB7XFxuICAgIC8vIFRoaXMgbWlnaHQgYmUgY29tcHV0YXRpb25hbGx5IGhlYXZleVxcbiAgICBjb25zdCBnZW4gPSByb3VnaGpzX2Jpbl9yb3VnaF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fW1xcXCJkZWZhdWx0XFxcIl0uZ2VuZXJhdG9yKCk7XFxuICAgIGNvbnN0IGN1cnZlID0gc2hhcnBuZXNzID09PSBcXFwic2hhcnBcXFwiXFxuICAgICAgICA/IGdlbi5saW5lYXJQYXRoKHBvaW50cywgKDAsX3JlbmRlcmVyX3JlbmRlckVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZW5lcmF0ZVJvdWdoT3B0aW9ucykoZWxlbWVudCkpXFxuICAgICAgICA6IGdlbi5jdXJ2ZShwb2ludHMsICgwLF9yZW5kZXJlcl9yZW5kZXJFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZ2VuZXJhdGVSb3VnaE9wdGlvbnMpKGVsZW1lbnQpKTtcXG4gICAgY29uc3Qgb3BzID0gZ2V0Q3VydmVQYXRoT3BzKGN1cnZlKTtcXG4gICAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gZ2V0TWluTWF4WFlGcm9tQ3VydmVQYXRoT3BzKG9wcyk7XFxuICAgIHJldHVybiBbXFxuICAgICAgICBtaW5YICsgZWxlbWVudC54LFxcbiAgICAgICAgbWluWSArIGVsZW1lbnQueSxcXG4gICAgICAgIG1heFggKyBlbGVtZW50LngsXFxuICAgICAgICBtYXhZICsgZWxlbWVudC55LFxcbiAgICBdO1xcbn07XFxuY29uc3QgZ2V0Q2xvc2VzdEVsZW1lbnRCb3VuZHMgPSAoZWxlbWVudHMsIGZyb20pID0+IHtcXG4gICAgaWYgKCFlbGVtZW50cy5sZW5ndGgpIHtcXG4gICAgICAgIHJldHVybiBbMCwgMCwgMCwgMF07XFxuICAgIH1cXG4gICAgbGV0IG1pbkRpc3RhbmNlID0gSW5maW5pdHk7XFxuICAgIGxldCBjbG9zZXN0RWxlbWVudCA9IGVsZW1lbnRzWzBdO1xcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XFxuICAgICAgICBjb25zdCBbeDEsIHkxLCB4MiwgeTJdID0gZ2V0RWxlbWVudEJvdW5kcyhlbGVtZW50KTtcXG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5kaXN0YW5jZTJkKSgoeDEgKyB4MikgLyAyLCAoeTEgKyB5MikgLyAyLCBmcm9tLngsIGZyb20ueSk7XFxuICAgICAgICBpZiAoZGlzdGFuY2UgPCBtaW5EaXN0YW5jZSkge1xcbiAgICAgICAgICAgIG1pbkRpc3RhbmNlID0gZGlzdGFuY2U7XFxuICAgICAgICAgICAgY2xvc2VzdEVsZW1lbnQgPSBlbGVtZW50O1xcbiAgICAgICAgfVxcbiAgICB9KTtcXG4gICAgcmV0dXJuIGdldEVsZW1lbnRCb3VuZHMoY2xvc2VzdEVsZW1lbnQpO1xcbn07XFxuY29uc3QgZ2V0Q29tbW9uQm91bmRpbmdCb3ggPSAoZWxlbWVudHMpID0+IHtcXG4gICAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gZ2V0Q29tbW9uQm91bmRzKGVsZW1lbnRzKTtcXG4gICAgcmV0dXJuIHtcXG4gICAgICAgIG1pblgsXFxuICAgICAgICBtaW5ZLFxcbiAgICAgICAgbWF4WCxcXG4gICAgICAgIG1heFksXFxuICAgICAgICB3aWR0aDogbWF4WCAtIG1pblgsXFxuICAgICAgICBoZWlnaHQ6IG1heFkgLSBtaW5ZLFxcbiAgICAgICAgbWlkWDogKG1pblggKyBtYXhYKSAvIDIsXFxuICAgICAgICBtaWRZOiAobWluWSArIG1heFkpIC8gMixcXG4gICAgfTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2Wld4bGJXVnVkQzlpYjNWdVpITXVkSE11YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPenRCUVU4MlF6dEJRVU5RTzBGQlRVZzdRVUZESzBJN1FVRkRlRUk3UVVGTE1VTXNhMFpCUVd0R08wRkJRMnhHTEhsRlFVRjVSVHRCUVVOc1JTeE5RVUZOTEhkQ1FVRjNRaXhIUVVGSExFTkJRM1JETEU5QlFUQkNMRVZCUTJ4Q0xFVkJRVVU3U1VGRFZpeEpRVUZKTERoRVFVRnBRaXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzFGQlF6bENMRTlCUVU4c1owTkJRV2RETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1MwRkRiRVE3VTBGQlRTeEpRVUZKTERSRVFVRmxMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVU3VVVGRGJrTXNUMEZCVHl3NFFrRkJPRUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0TFFVTm9SRHRKUVVORUxFOUJRVTg3VVVGRFRDeFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTlVMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRMVFzVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1MwRkJTenRSUVVONlFpeFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTk8wdEJRek5DTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxHVkJRV1VzUjBGQlJ5eERRVU0zUWl4UFFVRXdRaXhGUVVNeFFpeGpRVUZ4UWl4RlFVTmtMRVZCUVVVN1NVRkRWQ3hQUVVGUExFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFVkJRVVVzWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU40UlN4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMRU5CUVVNc1QwRkJNRUlzUlVGQlJTeEZRVUZGTzBsQlF6ZEVMR2RFUVVGblJEdEpRVU5vUkN3NFJFRkJPRVE3U1VGRE9VUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU12UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRFppeE5RVUZOTEUxQlFVMHNSMEZCUnl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRemRDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGJFUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRE8wbEJRM0pDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU03U1VGREwwSXNUVUZCVFN4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRMmhDTEUxQlFVMHNTMEZCU3l4SFFVRkhMRTFCUVUwc1EwRkJRenRKUVVWeVFpeFBRVUZQTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBGQlEzUkZMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzWlVGQlpTeEhRVUZITEVOQlFVTXNTMEZCWlN4RlFVRlJMRVZCUVVVN1NVRkRka1FzUzBGQlN5eE5RVUZOTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRk8xRkJRelZDTEVsQlFVa3NSMEZCUnl4RFFVRkRMRWxCUVVrc1MwRkJTeXhOUVVGTkxFVkJRVVU3V1VGRGRrSXNUMEZCVHl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRE8xTkJRMmhDTzB0QlEwWTdTVUZEUkN4UFFVRlBMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRPMEZCUXpOQ0xFTkJRVU1zUTBGQlF6dEJRVVZHTEUxQlFVMHNNa0pCUVRKQ0xFZEJRVWNzUTBGRGJFTXNSMEZCVXl4RlFVTlVMRmRCUVhkRUxFVkJRM1JDTEVWQlFVVTdTVUZEY0VNc1NVRkJTU3hSUVVGUkxFZEJRVlVzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkROMElzVFVGQlRTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEhRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUXpORExFTkJRVU1zVFVGQlRTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hGUVVGRkxFVkJRVVU3VVVGRGRrSXNkVU5CUVhWRE8xRkJRM1pETEhORFFVRnpRenRSUVVOMFF5eEpRVUZKTEVWQlFVVXNTMEZCU3l4TlFVRk5MRVZCUVVVN1dVRkRha0lzZDBKQlFYZENPMWxCUTNoQ0xGRkJRVkVzUjBGQlJ5eEpRVUYzUWl4RFFVRkRPMWxCUTNCRExIVkVRVUYxUkR0WlFVTjJSQ3huUWtGQlowSTdVMEZEYWtJN1lVRkJUU3hKUVVGSkxFVkJRVVVzUzBGQlN5eFZRVUZWTEVWQlFVVTdXVUZETlVJc2EwTkJRV3RETzFsQlEyeERMRzFGUVVGdFJUdFpRVU51UlN3eVFrRkJNa0k3V1VGRE0wSXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGVkxFTkJRVU03V1VGRGRrTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGVkxFTkJRVU03V1VGRGRrTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGVkxFTkJRVU03V1VGRmRrTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1VVRkJVU3hEUVVGRE8xbEJRM0JDTEZGQlFWRXNSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkZaQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eERRVUZETEVOQlFWTXNSVUZCUlN4SFFVRlhMRVZCUVVVc1JVRkJSU3hEUVVNeFF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJRenRuUWtGRE5VSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXp0blFrRkRjRU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTTdaMEpCUTNSRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0WlFVVXpRaXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZEVml4UFFVRlBMRU5CUVVNc1NVRkJTU3hIUVVGSExFVkJRVVU3WjBKQlEyWXNTVUZCU1N4RFFVRkRMRWRCUVVjc1VVRkJVU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRka0lzU1VGQlNTeERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEZGtJc1NVRkJTU3hYUVVGWExFVkJRVVU3YjBKQlEyWXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFZEJRVWNzVjBGQlZ5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRwUWtGRE5VSTdaMEpCUlVRc1RVRkJUU3hEUVVGRExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTNaRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVWMlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGRrTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlJYWkRMRU5CUVVNc1NVRkJTU3hIUVVGSExFTkJRVU03WVVGRFZqdFRRVU5HTzJGQlFVMHNTVUZCU1N4RlFVRkZMRXRCUVVzc1VVRkJVU3hGUVVGRk8xbEJRekZDTEhWQ1FVRjFRanRUUVVONFFqdGhRVUZOTEVsQlFVa3NSVUZCUlN4TFFVRkxMRlZCUVZVc1JVRkJSVHRaUVVNMVFpeDFRa0ZCZFVJN1UwRkRlRUk3VVVGRFJDeFBRVUZQTEUxQlFVMHNRMEZCUXp0SlFVTm9RaXhEUVVGRExFVkJRMFFzUlVGQlJTeEpRVUZKTEVWQlFVVXNVVUZCVVN4RlFVRkZMRWxCUVVrc1JVRkJSU3hSUVVGUkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVU55UlN4RFFVRkRPMGxCUlVZc1QwRkJUeXhEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRMnhETEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NRMEZETVVJc1RVRkJNa01zUlVGRFZDeEZRVUZGTzBsQlEzQkRMRWxCUVVrc1NVRkJTU3hIUVVGSExGRkJRVkVzUTBGQlF6dEpRVU53UWl4SlFVRkpMRWxCUVVrc1IwRkJSeXhSUVVGUkxFTkJRVU03U1VGRGNFSXNTVUZCU1N4SlFVRkpMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU03U1VGRGNrSXNTVUZCU1N4SlFVRkpMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU03U1VGRmNrSXNTMEZCU3l4TlFVRk5MRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEUxQlFVMHNSVUZCUlR0UlFVTXpRaXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGVrSXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNwQ0xFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU42UWl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRNVUk3U1VGRlJDeFBRVUZQTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdRVUZEYkVNc1EwRkJReXhEUVVGRE8wRkJSVVlzVFVGQlRTeG5RMEZCWjBNc1IwRkJSeXhEUVVOMlF5eFBRVUZyUXl4RlFVTkJMRVZCUVVVN1NVRkRjRU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eEhRVUZITEcxQ1FVRnRRaXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0SlFVVnlSU3hQUVVGUE8xRkJRMHdzU1VGQlNTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTJoQ0xFbEJRVWtzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTm9RaXhKUVVGSkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEYUVJc1NVRkJTU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzB0QlEycENMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU03UVVGRlJpeE5RVUZOTERoQ1FVRTRRaXhIUVVGSExFTkJRM0pETEU5QlFXZERMRVZCUTBVc1JVRkJSVHRKUVVOd1F5eEpRVUZKTEUxQlFYZERMRU5CUVVNN1NVRkZOME1zU1VGQlNTeFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5d3lSVUZCYTBJc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdFJRVU0zUkN4MVJFRkJkVVE3VVVGRGRrUXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVU4wUkN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZPMWxCUTJwQ0xFMUJRVTBzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNaRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUlhaRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNaRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUlhaRExFOUJRVThzVFVGQlRTeERRVUZETzFGQlEyaENMRU5CUVVNc1JVRkRSQ3hGUVVGRkxFbEJRVWtzUlVGQlJTeFJRVUZSTEVWQlFVVXNTVUZCU1N4RlFVRkZMRkZCUVZFc1JVRkJSU3hKUVVGSkxFVkJRVVVzUTBGQlF5eFJRVUZSTEVWQlFVVXNTVUZCU1N4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRM0pGTEVOQlFVTTdVVUZEUml4TlFVRk5MRWRCUVVjN1dVRkRVQ3hKUVVGSkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdXVUZEYUVJc1NVRkJTU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzFsQlEyaENMRWxCUVVrc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFpRVU5vUWl4SlFVRkpMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VTBGRGFrSXNRMEZCUXp0TFFVTklPMU5CUVUwN1VVRkRUQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5d3lSVUZCYTBJc1EwRkJReXhQUVVGUExFTkJRVVVzUTBGQlF6dFJRVVV6UXl4dlEwRkJiME03VVVGRGNFTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1pVRkJaU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlhSRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5d3lRa0ZCTWtJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVVZzUlN4TlFVRk5MRWRCUVVjN1dVRkRVQ3hKUVVGSkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdXVUZEYUVJc1NVRkJTU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzFsQlEyaENMRWxCUVVrc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFpRVU5vUWl4SlFVRkpMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VTBGRGFrSXNRMEZCUXp0TFFVTklPMGxCUlVRc1QwRkJUeXhOUVVGTkxFTkJRVU03UVVGRGFFSXNRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4RFFVTm9ReXhQUVVGblF5eEZRVU5vUXl4TFFVRnBRaXhGUVVOcVFpeFJRVUY1UWl4RlFVTjZRaXhUUVVGdlFpeEZRVU53UWl4RlFVRkZPMGxCUTBZc1RVRkJUU3hIUVVGSExFZEJRVWNzWlVGQlpTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM1JETEVsQlFVa3NSMEZCUnl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVU3VVVGRGJFSXNUMEZCVHl4SlFVRkpMRU5CUVVNN1MwRkRZanRKUVVWRUxHZEVRVUZuUkR0SlFVTm9SQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eFJRVUZSTEV0QlFVc3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJSWGhFTEUxQlFVMHNTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdTVUZETjBJc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZWTEVOQlFVTTdTVUZEZGtNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZWTEVOQlFVTTdTVUZEZGtNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZWTEVOQlFVTTdTVUZGZGtNc01FTkJRVEJETzBsQlF6RkRMR2xFUVVGcFJEdEpRVU5xUkN3d1JFRkJNRVE3U1VGRE1VUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1IwRkJSeXhEUVVGRExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTTVRaXhKUVVGSkxFVkJRVVVzUjBGQlZTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOMlFpeEpRVUZKTEUxQlFVMHNRMEZCUXl4RlFVRkZMRXRCUVVzc1RVRkJUU3hGUVVGRk8xRkJRM2hDTEVWQlFVVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJkMElzUTBGQlF6dExRVU4wUXp0VFFVRk5MRWxCUVVrc1RVRkJUU3hEUVVGRExFVkJRVVVzUzBGQlN5eFZRVUZWTEVWQlFVVTdVVUZEYmtNc1JVRkJSU3hIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRka003U1VGRlJDeDVSVUZCZVVVN1NVRkRla1VzVFVGQlRTeFJRVUZSTEVkQlFVY3NRMEZCUXl4RFFVRlRMRVZCUVVVc1IwRkJWeXhGUVVGRkxFVkJRVVVzUTBGRE1VTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU03VVVGRE5VSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXp0UlFVTndReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF6dFJRVU4wUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRk0wSXNNRVZCUVRCRk8wbEJRekZGTEUxQlFVMHNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzVVVGQlVTeExRVUZMTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdTVUZGYUVRc2EwVkJRV3RGTzBsQlEyeEZMSGxFUVVGNVJEdEpRVU42UkN4blJVRkJaMFU3U1VGRGFFVXNiMEpCUVc5Q08wbEJRM0JDTEUxQlFVMHNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWMFJDeHZSRUZCYjBRN1NVRkRjRVFzWjBOQlFXZERPMGxCUTJoRExFMUJRVTBzVVVGQlVTeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRPVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETzBsQlEyaERMRTFCUVUwc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRkZCUVZFc1EwRkJRenRKUVVWb1F5eE5RVUZOTEVsQlFVa3NSMEZCUnp0UlFVTllMRXRCUVVzc1JVRkJSU3hGUVVGRk8xRkJRMVFzUjBGQlJ5eEZRVUZGTEVWQlFVVTdVVUZEVUN4SFFVRkhMRVZCUVVVc1JVRkJSVHRSUVVOUUxGRkJRVkVzUlVGQlJTeEZRVUZGTzB0QlEySXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExEQkRRVUV3UXp0SlFVVjRSQ3hKUVVGSkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZGWml4SlFVRkpMRk5CUVZNc1MwRkJTeXhQUVVGUExFVkJRVVU3VVVGRGVrSXNhMFZCUVd0Rk8xRkJRMnhGTEUxQlFVMHNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXpSQ3hOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4SFFVTmFMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTTdXVUZEZGtJc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETzFsQlF6TkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVmlMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRVZCUVVVc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETzB0QlEzWkRPMU5CUVUwN1VVRkRUQ3cwUlVGQk5FVTdVVUZETlVVc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMWxCUXpsRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEYWtRc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEyNURMRTFCUVUwc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRVZCUVVVc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETzFOQlEzaERPMHRCUTBZN1NVRkZSQ3h6UmtGQmMwWTdTVUZEZEVZc05rWkJRVFpHTzBsQlF6ZEdMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RlFVRkZMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU16UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXp0SlFVTTNRaXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJRenRKUVVVM1FpeEpRVUZKTEZOQlFWTXNTMEZCU3l4TFFVRkxMRVZCUVVVN1VVRkRka0lzVFVGQlRTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETzFGQlF6ZEVMRTlCUVU4c1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMHRCUTNCQ08wbEJSVVFzVFVGQlRTeExRVUZMTEVkQlFVYzdVVUZEV2l4TFFVRkxMRVZCUVVVc1JVRkJSVHRSUVVOVUxFZEJRVWNzUlVGQlJTeEZRVUZGTzFGQlExQXNVVUZCVVN4RlFVRkZMRVZCUVVVN1MwRkRZaXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNWVUZCVlR0SlFVVjRRaXhuUWtGQlowSTdTVUZEYUVJc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl3MlEwRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU5zUlN4TlFVRk5MRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITERaRFFVRk5MRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVOcVJTeFBRVUZQTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVVOc1F5eERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MRFpDUVVFMlFpeEhRVUZITEVOQlEzQkRMRTlCUVdkRExFVkJRMmhETEVWQlFWVXNSVUZEVml4RlFVRlZMRVZCUTNkQ0xFVkJRVVU3U1VGRGNFTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl3eVJVRkJhMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlR0UlFVTTNSQ3gxUkVGQmRVUTdVVUZEZGtRc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVTjBSQ3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRMnBDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExEWkRRVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1dVRkRja1VzVFVGQlRTeERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRka01zVFVGQlRTeERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRka01zVFVGQlRTeERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRka01zVFVGQlRTeERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRka01zVDBGQlR5eE5RVUZOTEVOQlFVTTdVVUZEYUVJc1EwRkJReXhGUVVORUxFVkJRVVVzU1VGQlNTeEZRVUZGTEZGQlFWRXNSVUZCUlN4SlFVRkpMRVZCUVVVc1VVRkJVU3hGUVVGRkxFbEJRVWtzUlVGQlJTeERRVUZETEZGQlFWRXNSVUZCUlN4SlFVRkpMRVZCUVVVc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGRGNrVXNRMEZCUXp0UlFVTkdMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRMUVVOcVF6dEpRVVZFTEUxQlFVMHNTMEZCU3l4SFFVRkhMREpGUVVGclFpeERRVUZETEU5QlFVOHNRMEZCUlN4RFFVRkRPMGxCUlRORExHOURRVUZ2UXp0SlFVTndReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eGxRVUZsTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmRFTXNUVUZCVFN4WFFVRlhMRWRCUVVjc1EwRkJReXhEUVVGVExFVkJRVVVzUTBGQlV5eEZRVUZGTEVWQlFVVXNRMEZETTBNc05rTkJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTTVSQ3hQUVVGUExESkNRVUV5UWl4RFFVRkRMRWRCUVVjc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dEJRVU4yUkN4RFFVRkRMRU5CUVVNN1FVRkZSaXcwUWtGQk5FSTdRVUZEY2tJc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RFFVTTVRaXhQUVVFd1FpeEZRVU5STEVWQlFVVTdTVUZEY0VNc1NVRkJTU3hOUVVGM1F5eERRVUZETzBsQlJUZERMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXgzUWtGQmQwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVNelJDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEZWtJc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRM3BDTEVsQlFVa3NPRVJCUVdsQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVTdVVUZET1VJc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExHMUNRVUZ0UWl4RFFVTnNSQ3hQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZETlVJc05rTkJRVTBzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhGUVVGRkxFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZETlVRc1EwRkRSaXhEUVVGRE8xRkJSVVlzVDBGQlR6dFpRVU5NTEVsQlFVa3NSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRaUVVOb1FpeEpRVUZKTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRhRUlzU1VGQlNTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMWxCUTJoQ0xFbEJRVWtzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0VFFVTnFRaXhEUVVGRE8wdEJRMGc3VTBGQlRTeEpRVUZKTERSRVFVRmxMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVU3VVVGRGJrTXNUVUZCVFN4SFFVRkhMRFpDUVVFMlFpeERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU03UzBGRGVrUTdVMEZCVFN4SlFVRkpMRTlCUVU4c1EwRkJReXhKUVVGSkxFdEJRVXNzVTBGQlV5eEZRVUZGTzFGQlEzSkRMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVkQlFVY3NOa05CUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzcEVMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVkQlFVY3NOa05CUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzcEVMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVkQlFVY3NOa05CUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzcEVMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVkQlFVY3NOa05CUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzcEVMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZETVVNc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTXhReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUXpGRExFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRNVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTMEZEYmtNN1UwRkJUU3hKUVVGSkxFOUJRVThzUTBGQlF5eEpRVUZKTEV0QlFVc3NVMEZCVXl4RlFVRkZPMUZCUTNKRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU40UWl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRlRUlzVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEY0VNc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGNFTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU40UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzaERMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVWQlFVVXNSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRMUVVNdlF6dFRRVUZOTzFGQlEwd3NUVUZCVFN4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUjBGQlJ5dzJRMEZCVFN4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVrUXNUVUZCVFN4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUjBGQlJ5dzJRMEZCVFN4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVrUXNUVUZCVFN4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUjBGQlJ5dzJRMEZCVFN4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVrUXNUVUZCVFN4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUjBGQlJ5dzJRMEZCVFN4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVrUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU14UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlF6RkRMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZETVVNc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTXhReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dExRVU51UXp0SlFVVkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wRkJRMmhDTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc1pVRkJaU3hIUVVGSExFTkJRemRDTEZGQlFYTkRMRVZCUTBvc1JVRkJSVHRKUVVOd1F5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1JVRkJSVHRSUVVOd1FpeFBRVUZQTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdTMEZEY2tJN1NVRkZSQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFJRVUZSTEVOQlFVTTdTVUZEY0VJc1NVRkJTU3hKUVVGSkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTTdTVUZEY2tJc1NVRkJTU3hKUVVGSkxFZEJRVWNzVVVGQlVTeERRVUZETzBsQlEzQkNMRWxCUVVrc1NVRkJTU3hIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETzBsQlJYSkNMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlR0UlFVTXpRaXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGJrUXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUXpGQ0xFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU14UWl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRNVUlzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzBsQlF6VkNMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSVWdzVDBGQlR5eERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEyeERMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzSzBKQlFTdENMRWRCUVVjc1EwRkROME1zVDBGQk1FSXNSVUZETVVJc1UwRkJhVUlzUlVGRGFrSXNWVUZCYTBJc1JVRkRaMElzUlVGQlJUdEpRVU53UXl4SlFVRkpMRU5CUVVNc1EwRkJReXcwUkVGQlpTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRGhFUVVGcFFpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRVZCUVVVN1VVRkROMFFzVDBGQlR6dFpRVU5NTEU5QlFVOHNRMEZCUXl4RFFVRkRPMWxCUTFRc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRFZDeFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRk5CUVZNN1dVRkRja0lzVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZPMU5CUTNaQ0xFTkJRVU03UzBGRFNEdEpRVVZFTEUxQlFVMHNUVUZCVFN4SFFVRkhMSE5FUVVGaExFTkJRekZDTEVOQlFVTXNSVUZEUkN4VFFVRlRMRVZCUTFRc2MwUkJRV0VzUTBGQlF5eERRVUZETEVWQlFVVXNWVUZCVlN4RlFVRkZMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGRE4wTXNRMEZCUXp0SlFVVkdMRWxCUVVrc1RVRkJkME1zUTBGQlF6dEpRVVUzUXl4SlFVRkpMRGhFUVVGcFFpeERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZPMUZCUXpsQ0xGbEJRVms3VVVGRFdpeE5RVUZOTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTMEZEZEVNN1UwRkJUVHRSUVVOTUxFOUJRVTg3VVVGRFVDeE5RVUZOTEVkQlFVY3NSMEZCUnl4dFJVRkJaU3hGUVVGRkxFTkJRVU03VVVGRE9VSXNUVUZCVFN4TFFVRkxMRWRCUTFRc1QwRkJUeXhEUVVGRExHVkJRV1VzUzBGQlN5eFBRVUZQTzFsQlEycERMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVU5hTEUxQlFUUkNMRVZCUXpWQ0xEWkZRVUZ2UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVNNVFqdFpRVU5JTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVOUUxFMUJRVFJDTEVWQlF6VkNMRFpGUVVGdlFpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVTTVRaXhEUVVGRE8xRkJRMUlzVFVGQlRTeEhRVUZITEVkQlFVY3NaVUZCWlN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMjVETEUxQlFVMHNSMEZCUnl3eVFrRkJNa0lzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0TFFVTXpRenRKUVVWRUxFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTTdTVUZEZUVNc1QwRkJUenRSUVVOTUxFbEJRVWtzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTm9RaXhKUVVGSkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEYUVJc1NVRkJTU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEyaENMRWxCUVVrc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dExRVU5xUWl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRE8wRkJSVXNzVFVGQlRTeHpRa0ZCYzBJc1IwRkJSeXhEUVVOd1F5eFBRVUZuUXl4RlFVTm9ReXhOUVVFNFF5eEZRVU01UXl4VFFVRXJReXhGUVVOaUxFVkJRVVU3U1VGRGNFTXNkVU5CUVhWRE8wbEJRM1pETEUxQlFVMHNSMEZCUnl4SFFVRkhMRzFGUVVGbExFVkJRVVVzUTBGQlF6dEpRVU01UWl4TlFVRk5MRXRCUVVzc1IwRkRWQ3hUUVVGVExFdEJRVXNzVDBGQlR6dFJRVU51UWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGRFdpeE5RVUUwUWl4RlFVTTFRaXcyUlVGQmIwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkRPVUk3VVVGRFNDeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVFMFFpeEZRVUZGTERaRlFVRnZRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZETjBVc1RVRkJUU3hIUVVGSExFZEJRVWNzWlVGQlpTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUTI1RExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5d3lRa0ZCTWtJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU5zUlN4UFFVRlBPMUZCUTB3c1NVRkJTU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEyaENMRWxCUVVrc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU5vUWl4SlFVRkpMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGFFSXNTVUZCU1N4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8wdEJRMnBDTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxIVkNRVUYxUWl4SFFVRkhMRU5CUTNKRExGRkJRWE5ETEVWQlEzUkRMRWxCUVRoQ0xFVkJRMGtzUlVGQlJUdEpRVU53UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUlVGQlJUdFJRVU53UWl4UFFVRlBMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRja0k3U1VGRlJDeEpRVUZKTEZkQlFWY3NSMEZCUnl4UlFVRlJMRU5CUVVNN1NVRkRNMElzU1VGQlNTeGpRVUZqTEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSV3BETEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJUdFJRVU16UWl4TlFVRk5MRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRia1FzVFVGQlRTeFJRVUZSTEVkQlFVY3NhVVJCUVZVc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlRGRkxFbEJRVWtzVVVGQlVTeEhRVUZITEZkQlFWY3NSVUZCUlR0WlFVTXhRaXhYUVVGWExFZEJRVWNzVVVGQlVTeERRVUZETzFsQlEzWkNMR05CUVdNc1IwRkJSeXhQUVVGUExFTkJRVU03VTBGRE1VSTdTVUZEU0N4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWSUxFOUJRVThzWjBKQlFXZENMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU03UVVGRE1VTXNRMEZCUXl4RFFVRkRPMEZCWVVzc1RVRkJUU3h2UWtGQmIwSXNSMEZCUnl4RFFVTnNReXhSUVVGM1JTeEZRVU51UlN4RlFVRkZPMGxCUTFBc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExHVkJRV1VzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0SlFVTXpSQ3hQUVVGUE8xRkJRMHdzU1VGQlNUdFJRVU5LTEVsQlFVazdVVUZEU2l4SlFVRkpPMUZCUTBvc1NVRkJTVHRSUVVOS0xFdEJRVXNzUlVGQlJTeEpRVUZKTEVkQlFVY3NTVUZCU1R0UlFVTnNRaXhOUVVGTkxFVkJRVVVzU1VGQlNTeEhRVUZITEVsQlFVazdVVUZEYmtJc1NVRkJTU3hGUVVGRkxFTkJRVU1zU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNN1VVRkRka0lzU1VGQlNTeEZRVUZGTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU03UzBGRGVFSXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5bGJHVnRaVzUwTDJKdmRXNWtjeTUwY3o4NFltVXlJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3WEc0Z0lFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MExGeHVJQ0JGZUdOaGJHbGtjbUYzVEdsdVpXRnlSV3hsYldWdWRDeGNiaUFnUVhKeWIzZG9aV0ZrTEZ4dUlDQkZlR05oYkdsa2NtRjNSbkpsWlVSeVlYZEZiR1Z0Wlc1MExGeHVJQ0JPYjI1RVpXeGxkR1ZrTEZ4dWZTQm1jbTl0SUZ3aUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2daR2x6ZEdGdVkyVXlaQ3dnY205MFlYUmxJSDBnWm5KdmJTQmNJaTR1TDIxaGRHaGNJanRjYm1sdGNHOXlkQ0J5YjNWbmFDQm1jbTl0SUZ3aWNtOTFaMmhxY3k5aWFXNHZjbTkxWjJoY0lqdGNibWx0Y0c5eWRDQjdJRVJ5WVhkaFlteGxMQ0JQY0NCOUlHWnliMjBnWENKeWIzVm5hR3B6TDJKcGJpOWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5QlFiMmx1ZENCOUlHWnliMjBnWENJdUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIdGNiaUFnWjJWMFUyaGhjR1ZHYjNKRmJHVnRaVzUwTEZ4dUlDQm5aVzVsY21GMFpWSnZkV2RvVDNCMGFXOXVjeXhjYm4wZ1puSnZiU0JjSWk0dUwzSmxibVJsY21WeUwzSmxibVJsY2tWc1pXMWxiblJjSWp0Y2JtbHRjRzl5ZENCN0lHbHpSbkpsWlVSeVlYZEZiR1Z0Wlc1MExDQnBjMHhwYm1WaGNrVnNaVzFsYm5RZ2ZTQm1jbTl0SUZ3aUxpOTBlWEJsUTJobFkydHpYQ0k3WEc1cGJYQnZjblFnZXlCeVpYTmpZV3hsVUc5cGJuUnpJSDBnWm5KdmJTQmNJaTR1TDNCdmFXNTBjMXdpTzF4dVhHNHZMeUI0SUdGdVpDQjVJSEJ2YzJsMGFXOXVJRzltSUhSdmNDQnNaV1owSUdOdmNtNWxjaXdnZUNCaGJtUWdlU0J3YjNOcGRHbHZiaUJ2WmlCaWIzUjBiMjBnY21sbmFIUWdZMjl5Ym1WeVhHNWxlSEJ2Y25RZ2RIbHdaU0JDYjNWdVpITWdQU0J5WldGa2IyNXNlU0JiYm5WdFltVnlMQ0J1ZFcxaVpYSXNJRzUxYldKbGNpd2diblZ0WW1WeVhUdGNibHh1THk4Z1NXWWdkR2hsSUdWc1pXMWxiblFnYVhNZ1kzSmxZWFJsWkNCbWNtOXRJSEpwWjJoMElIUnZJR3hsWm5Rc0lIUm9aU0IzYVdSMGFDQnBjeUJuYjJsdVp5QjBieUJpWlNCdVpXZGhkR2wyWlZ4dUx5OGdWR2hwY3lCelpYUWdiMllnWm5WdVkzUnBiMjV6SUhKbGRISnBaWFpsY3lCMGFHVWdZV0p6YjJ4MWRHVWdjRzl6YVhScGIyNGdiMllnZEdobElEUWdjRzlwYm5SekxseHVaWGh3YjNKMElHTnZibk4wSUdkbGRFVnNaVzFsYm5SQlluTnZiSFYwWlVOdmIzSmtjeUE5SUNoY2JpQWdaV3hsYldWdWREb2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUXNYRzRwT2lCQ2IzVnVaSE1nUFQ0Z2UxeHVJQ0JwWmlBb2FYTkdjbVZsUkhKaGQwVnNaVzFsYm5Rb1pXeGxiV1Z1ZENrcElIdGNiaUFnSUNCeVpYUjFjbTRnWjJWMFJuSmxaVVJ5WVhkRmJHVnRaVzUwUVdKemIyeDFkR1ZEYjI5eVpITW9aV3hsYldWdWRDazdYRzRnSUgwZ1pXeHpaU0JwWmlBb2FYTk1hVzVsWVhKRmJHVnRaVzUwS0dWc1pXMWxiblFwS1NCN1hHNGdJQ0FnY21WMGRYSnVJR2RsZEV4cGJtVmhja1ZzWlcxbGJuUkJZbk52YkhWMFpVTnZiM0prY3lobGJHVnRaVzUwS1R0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnVzF4dUlDQWdJR1ZzWlcxbGJuUXVlQ3hjYmlBZ0lDQmxiR1Z0Wlc1MExua3NYRzRnSUNBZ1pXeGxiV1Z1ZEM1NElDc2daV3hsYldWdWRDNTNhV1IwYUN4Y2JpQWdJQ0JsYkdWdFpXNTBMbmtnS3lCbGJHVnRaVzUwTG1obGFXZG9kQ3hjYmlBZ1hUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J3YjJsdWRGSmxiR0YwYVhabFZHOGdQU0FvWEc0Z0lHVnNaVzFsYm5RNklFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MExGeHVJQ0JoWW5OdmJIVjBaVU52YjNKa2N6b2dVRzlwYm5Rc1hHNHBPaUJRYjJsdWRDQTlQaUI3WEc0Z0lISmxkSFZ5YmlCYllXSnpiMngxZEdWRGIyOXlaSE5iTUYwZ0xTQmxiR1Z0Wlc1MExuZ3NJR0ZpYzI5c2RYUmxRMjl2Y21Seld6RmRJQzBnWld4bGJXVnVkQzU1WFR0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm5aWFJFYVdGdGIyNWtVRzlwYm5SeklEMGdLR1ZzWlcxbGJuUTZJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBLU0E5UGlCN1hHNGdJQzh2SUVobGNtVWdkMlVnWVdSa0lDc3hJSFJ2SUdGMmIybGtJSFJvWlhObElHNTFiV0psY25NZ2RHOGdZbVVnTUZ4dUlDQXZMeUJ2ZEdobGNuZHBjMlVnY205MVoyZ3Vhbk1nZDJsc2JDQjBhSEp2ZHlCaGJpQmxjbkp2Y2lCamIyMXdiR0ZwYm1sdVp5QmhZbTkxZENCcGRGeHVJQ0JqYjI1emRDQjBiM0JZSUQwZ1RXRjBhQzVtYkc5dmNpaGxiR1Z0Wlc1MExuZHBaSFJvSUM4Z01pa2dLeUF4TzF4dUlDQmpiMjV6ZENCMGIzQlpJRDBnTUR0Y2JpQWdZMjl1YzNRZ2NtbG5hSFJZSUQwZ1pXeGxiV1Z1ZEM1M2FXUjBhRHRjYmlBZ1kyOXVjM1FnY21sbmFIUlpJRDBnVFdGMGFDNW1iRzl2Y2lobGJHVnRaVzUwTG1obGFXZG9kQ0F2SURJcElDc2dNVHRjYmlBZ1kyOXVjM1FnWW05MGRHOXRXQ0E5SUhSdmNGZzdYRzRnSUdOdmJuTjBJR0p2ZEhSdmJWa2dQU0JsYkdWdFpXNTBMbWhsYVdkb2REdGNiaUFnWTI5dWMzUWdiR1ZtZEZnZ1BTQXdPMXh1SUNCamIyNXpkQ0JzWldaMFdTQTlJSEpwWjJoMFdUdGNibHh1SUNCeVpYUjFjbTRnVzNSdmNGZ3NJSFJ2Y0Zrc0lISnBaMmgwV0N3Z2NtbG5hSFJaTENCaWIzUjBiMjFZTENCaWIzUjBiMjFaTENCc1pXWjBXQ3dnYkdWbWRGbGRPMXh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdkbGRFTjFjblpsVUdGMGFFOXdjeUE5SUNoemFHRndaVG9nUkhKaGQyRmliR1VwT2lCUGNGdGRJRDArSUh0Y2JpQWdabTl5SUNoamIyNXpkQ0J6WlhRZ2IyWWdjMmhoY0dVdWMyVjBjeWtnZTF4dUlDQWdJR2xtSUNoelpYUXVkSGx3WlNBOVBUMGdYQ0p3WVhSb1hDSXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnpaWFF1YjNCek8xeHVJQ0FnSUgxY2JpQWdmVnh1SUNCeVpYUjFjbTRnYzJoaGNHVXVjMlYwYzFzd1hTNXZjSE03WEc1OU8xeHVYRzVqYjI1emRDQm5aWFJOYVc1TllYaFlXVVp5YjIxRGRYSjJaVkJoZEdoUGNITWdQU0FvWEc0Z0lHOXdjem9nVDNCYlhTeGNiaUFnZEhKaGJuTm1iM0p0V0ZrL09pQW9lRG9nYm5WdFltVnlMQ0I1T2lCdWRXMWlaWElwSUQwK0lGdHVkVzFpWlhJc0lHNTFiV0psY2wwc1hHNHBPaUJiYm5WdFltVnlMQ0J1ZFcxaVpYSXNJRzUxYldKbGNpd2diblZ0WW1WeVhTQTlQaUI3WEc0Z0lHeGxkQ0JqZFhKeVpXNTBVRG9nVUc5cGJuUWdQU0JiTUN3Z01GMDdYRzRnSUdOdmJuTjBJSHNnYldsdVdDd2diV2x1V1N3Z2JXRjRXQ3dnYldGNFdTQjlJRDBnYjNCekxuSmxaSFZqWlNoY2JpQWdJQ0FvYkdsdGFYUnpMQ0I3SUc5d0xDQmtZWFJoSUgwcElEMCtJSHRjYmlBZ0lDQWdJQzh2SUZSb1pYSmxJR0Z5WlNCdmJteDVJR1p2ZFhJZ2IzQmxjbUYwYVc5dUlIUjVjR1Z6T2x4dUlDQWdJQ0FnTHk4Z2JXOTJaU3dnWW1OMWNuWmxWRzhzSUd4cGJtVlVieXdnWVc1a0lHTjFjblpsVkc5Y2JpQWdJQ0FnSUdsbUlDaHZjQ0E5UFQwZ1hDSnRiM1psWENJcElIdGNiaUFnSUNBZ0lDQWdMeThnWTJoaGJtZGxJSE4wWVhKMGFXNW5JSEJ2YVc1MFhHNGdJQ0FnSUNBZ0lHTjFjbkpsYm5SUUlEMGdaR0YwWVNCaGN5QjFibXR1YjNkdUlHRnpJRkJ2YVc1ME8xeHVJQ0FnSUNBZ0lDQXZMeUJ0YjNabElHOXdaWEpoZEdsdmJpQmtiMlZ6SUc1dmRDQmtjbUYzSUdGdWVYUm9hVzVuT3lCemJ5d2dhWFFnWVd4M1lYbHpYRzRnSUNBZ0lDQWdJQzh2SUhKbGRIVnlibk1nWm1Gc2MyVmNiaUFnSUNBZ0lIMGdaV3h6WlNCcFppQW9iM0FnUFQwOUlGd2lZbU4xY25abFZHOWNJaWtnZTF4dUlDQWdJQ0FnSUNBdkx5QmpjbVZoZEdVZ2NHOXBiblJ6SUdaeWIyMGdZbVY2YVdWeUlHTjFjblpsWEc0Z0lDQWdJQ0FnSUM4dklHSmxlbWxsY2lCamRYSjJaU0J6ZEc5eVpYTWdaR0YwWVNCaGN5QmhJR1pzWVhSMFpXNWxaQ0JoY25KaGVTQnZaaUIwYUhKbFpTQndiM05wZEdsdmJuTmNiaUFnSUNBZ0lDQWdMeThnVzNneExDQjVNU3dnZURJc0lIa3lMQ0I0TXl3Z2VUTmRYRzRnSUNBZ0lDQWdJR052Ym5OMElIQXhJRDBnVzJSaGRHRmJNRjBzSUdSaGRHRmJNVjFkSUdGeklGQnZhVzUwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3TWlBOUlGdGtZWFJoV3pKZExDQmtZWFJoV3pOZFhTQmhjeUJRYjJsdWREdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NETWdQU0JiWkdGMFlWczBYU3dnWkdGMFlWczFYVjBnWVhNZ1VHOXBiblE3WEc1Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY0RBZ1BTQmpkWEp5Wlc1MFVEdGNiaUFnSUNBZ0lDQWdZM1Z5Y21WdWRGQWdQU0J3TXp0Y2JseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCbGNYVmhkR2x2YmlBOUlDaDBPaUJ1ZFcxaVpYSXNJR2xrZURvZ2JuVnRZbVZ5S1NBOVBseHVJQ0FnSUNBZ0lDQWdJRTFoZEdndWNHOTNLREVnTFNCMExDQXpLU0FxSUhBelcybGtlRjBnSzF4dUlDQWdJQ0FnSUNBZ0lETWdLaUIwSUNvZ1RXRjBhQzV3YjNjb01TQXRJSFFzSURJcElDb2djREpiYVdSNFhTQXJYRzRnSUNBZ0lDQWdJQ0FnTXlBcUlFMWhkR2d1Y0c5M0tIUXNJRElwSUNvZ0tERWdMU0IwS1NBcUlIQXhXMmxrZUYwZ0sxeHVJQ0FnSUNBZ0lDQWdJSEF3VzJsa2VGMGdLaUJOWVhSb0xuQnZkeWgwTENBektUdGNibHh1SUNBZ0lDQWdJQ0JzWlhRZ2RDQTlJREE3WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2gwSUR3OUlERXVNQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHeGxkQ0I0SUQwZ1pYRjFZWFJwYjI0b2RDd2dNQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2JHVjBJSGtnUFNCbGNYVmhkR2x2YmloMExDQXhLVHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9kSEpoYm5ObWIzSnRXRmtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRnQ0TENCNVhTQTlJSFJ5WVc1elptOXliVmhaS0hnc0lIa3BPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQWdJR3hwYldsMGN5NXRhVzVaSUQwZ1RXRjBhQzV0YVc0b2JHbHRhWFJ6TG0xcGJsa3NJSGtwTzF4dUlDQWdJQ0FnSUNBZ0lHeHBiV2wwY3k1dGFXNVlJRDBnVFdGMGFDNXRhVzRvYkdsdGFYUnpMbTFwYmxnc0lIZ3BPMXh1WEc0Z0lDQWdJQ0FnSUNBZ2JHbHRhWFJ6TG0xaGVGZ2dQU0JOWVhSb0xtMWhlQ2hzYVcxcGRITXViV0Y0V0N3Z2VDazdYRzRnSUNBZ0lDQWdJQ0FnYkdsdGFYUnpMbTFoZUZrZ1BTQk5ZWFJvTG0xaGVDaHNhVzFwZEhNdWJXRjRXU3dnZVNrN1hHNWNiaUFnSUNBZ0lDQWdJQ0IwSUNzOUlEQXVNVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNCbGJITmxJR2xtSUNodmNDQTlQVDBnWENKc2FXNWxWRzljSWlrZ2UxeHVJQ0FnSUNBZ0lDQXZMeUJVVDBSUE9pQkpiWEJzWlcxbGJuUWdkR2hwYzF4dUlDQWdJQ0FnZlNCbGJITmxJR2xtSUNodmNDQTlQVDBnWENKeFkzVnlkbVZVYjF3aUtTQjdYRzRnSUNBZ0lDQWdJQzh2SUZSUFJFODZJRWx0Y0d4bGJXVnVkQ0IwYUdselhHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnYkdsdGFYUnpPMXh1SUNBZ0lIMHNYRzRnSUNBZ2V5QnRhVzVZT2lCSmJtWnBibWwwZVN3Z2JXbHVXVG9nU1c1bWFXNXBkSGtzSUcxaGVGZzZJQzFKYm1acGJtbDBlU3dnYldGNFdUb2dMVWx1Wm1sdWFYUjVJSDBzWEc0Z0lDazdYRzVjYmlBZ2NtVjBkWEp1SUZ0dGFXNVlMQ0J0YVc1WkxDQnRZWGhZTENCdFlYaFpYVHRjYm4wN1hHNWNibU52Ym5OMElHZGxkRUp2ZFc1a2MwWnliMjFRYjJsdWRITWdQU0FvWEc0Z0lIQnZhVzUwY3pvZ1JYaGpZV3hwWkhKaGQwWnlaV1ZFY21GM1JXeGxiV1Z1ZEZ0Y0luQnZhVzUwYzF3aVhTeGNiaWs2SUZ0dWRXMWlaWElzSUc1MWJXSmxjaXdnYm5WdFltVnlMQ0J1ZFcxaVpYSmRJRDArSUh0Y2JpQWdiR1YwSUcxcGJsZ2dQU0JKYm1acGJtbDBlVHRjYmlBZ2JHVjBJRzFwYmxrZ1BTQkpibVpwYm1sMGVUdGNiaUFnYkdWMElHMWhlRmdnUFNBdFNXNW1hVzVwZEhrN1hHNGdJR3hsZENCdFlYaFpJRDBnTFVsdVptbHVhWFI1TzF4dVhHNGdJR1p2Y2lBb1kyOXVjM1FnVzNnc0lIbGRJRzltSUhCdmFXNTBjeWtnZTF4dUlDQWdJRzFwYmxnZ1BTQk5ZWFJvTG0xcGJpaHRhVzVZTENCNEtUdGNiaUFnSUNCdGFXNVpJRDBnVFdGMGFDNXRhVzRvYldsdVdTd2dlU2s3WEc0Z0lDQWdiV0Y0V0NBOUlFMWhkR2d1YldGNEtHMWhlRmdzSUhncE8xeHVJQ0FnSUcxaGVGa2dQU0JOWVhSb0xtMWhlQ2h0WVhoWkxDQjVLVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJiYldsdVdDd2diV2x1V1N3Z2JXRjRXQ3dnYldGNFdWMDdYRzU5TzF4dVhHNWpiMjV6ZENCblpYUkdjbVZsUkhKaGQwVnNaVzFsYm5SQlluTnZiSFYwWlVOdmIzSmtjeUE5SUNoY2JpQWdaV3hsYldWdWREb2dSWGhqWVd4cFpISmhkMFp5WldWRWNtRjNSV3hsYldWdWRDeGNiaWs2SUZ0dWRXMWlaWElzSUc1MWJXSmxjaXdnYm5WdFltVnlMQ0J1ZFcxaVpYSmRJRDArSUh0Y2JpQWdZMjl1YzNRZ1cyMXBibGdzSUcxcGJsa3NJRzFoZUZnc0lHMWhlRmxkSUQwZ1oyVjBRbTkxYm1SelJuSnZiVkJ2YVc1MGN5aGxiR1Z0Wlc1MExuQnZhVzUwY3lrN1hHNWNiaUFnY21WMGRYSnVJRnRjYmlBZ0lDQnRhVzVZSUNzZ1pXeGxiV1Z1ZEM1NExGeHVJQ0FnSUcxcGJsa2dLeUJsYkdWdFpXNTBMbmtzWEc0Z0lDQWdiV0Y0V0NBcklHVnNaVzFsYm5RdWVDeGNiaUFnSUNCdFlYaFpJQ3NnWld4bGJXVnVkQzU1TEZ4dUlDQmRPMXh1ZlR0Y2JseHVZMjl1YzNRZ1oyVjBUR2x1WldGeVJXeGxiV1Z1ZEVGaWMyOXNkWFJsUTI5dmNtUnpJRDBnS0Z4dUlDQmxiR1Z0Wlc1ME9pQkZlR05oYkdsa2NtRjNUR2x1WldGeVJXeGxiV1Z1ZEN4Y2JpazZJRnR1ZFcxaVpYSXNJRzUxYldKbGNpd2diblZ0WW1WeUxDQnVkVzFpWlhKZElEMCtJSHRjYmlBZ2JHVjBJR052YjNKa2N6b2dXMjUxYldKbGNpd2diblZ0WW1WeUxDQnVkVzFpWlhJc0lHNTFiV0psY2wwN1hHNWNiaUFnYVdZZ0tHVnNaVzFsYm5RdWNHOXBiblJ6TG14bGJtZDBhQ0E4SURJZ2ZId2dJV2RsZEZOb1lYQmxSbTl5Uld4bGJXVnVkQ2hsYkdWdFpXNTBLU2tnZTF4dUlDQWdJQzh2SUZoWVdDQjBhR2x6SUdseklHcDFjM1FnWVNCd2IyOXlJR1Z6ZEdsdFlYUmxJR0Z1WkNCdWIzUWdkbVZ5ZVNCMWMyVm1kV3hjYmlBZ0lDQmpiMjV6ZENCN0lHMXBibGdzSUcxcGJsa3NJRzFoZUZnc0lHMWhlRmtnZlNBOUlHVnNaVzFsYm5RdWNHOXBiblJ6TG5KbFpIVmpaU2hjYmlBZ0lDQWdJQ2hzYVcxcGRITXNJRnQ0TENCNVhTa2dQVDRnZTF4dUlDQWdJQ0FnSUNCc2FXMXBkSE11YldsdVdTQTlJRTFoZEdndWJXbHVLR3hwYldsMGN5NXRhVzVaTENCNUtUdGNiaUFnSUNBZ0lDQWdiR2x0YVhSekxtMXBibGdnUFNCTllYUm9MbTFwYmloc2FXMXBkSE11YldsdVdDd2dlQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2JHbHRhWFJ6TG0xaGVGZ2dQU0JOWVhSb0xtMWhlQ2hzYVcxcGRITXViV0Y0V0N3Z2VDazdYRzRnSUNBZ0lDQWdJR3hwYldsMGN5NXRZWGhaSUQwZ1RXRjBhQzV0WVhnb2JHbHRhWFJ6TG0xaGVGa3NJSGtwTzF4dVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCc2FXMXBkSE03WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnZXlCdGFXNVlPaUJKYm1acGJtbDBlU3dnYldsdVdUb2dTVzVtYVc1cGRIa3NJRzFoZUZnNklDMUpibVpwYm1sMGVTd2diV0Y0V1RvZ0xVbHVabWx1YVhSNUlIMHNYRzRnSUNBZ0tUdGNiaUFnSUNCamIyOXlaSE1nUFNCYlhHNGdJQ0FnSUNCdGFXNVlJQ3NnWld4bGJXVnVkQzU0TEZ4dUlDQWdJQ0FnYldsdVdTQXJJR1ZzWlcxbGJuUXVlU3hjYmlBZ0lDQWdJRzFoZUZnZ0t5QmxiR1Z0Wlc1MExuZ3NYRzRnSUNBZ0lDQnRZWGhaSUNzZ1pXeGxiV1Z1ZEM1NUxGeHVJQ0FnSUYwN1hHNGdJSDBnWld4elpTQjdYRzRnSUNBZ1kyOXVjM1FnYzJoaGNHVWdQU0JuWlhSVGFHRndaVVp2Y2tWc1pXMWxiblFvWld4bGJXVnVkQ2toTzF4dVhHNGdJQ0FnTHk4Z1ptbHljM1FnWld4bGJXVnVkQ0JwY3lCaGJIZGhlWE1nZEdobElHTjFjblpsWEc0Z0lDQWdZMjl1YzNRZ2IzQnpJRDBnWjJWMFEzVnlkbVZRWVhSb1QzQnpLSE5vWVhCbFd6QmRLVHRjYmx4dUlDQWdJR052Ym5OMElGdHRhVzVZTENCdGFXNVpMQ0J0WVhoWUxDQnRZWGhaWFNBOUlHZGxkRTFwYmsxaGVGaFpSbkp2YlVOMWNuWmxVR0YwYUU5d2N5aHZjSE1wTzF4dVhHNGdJQ0FnWTI5dmNtUnpJRDBnVzF4dUlDQWdJQ0FnYldsdVdDQXJJR1ZzWlcxbGJuUXVlQ3hjYmlBZ0lDQWdJRzFwYmxrZ0t5QmxiR1Z0Wlc1MExua3NYRzRnSUNBZ0lDQnRZWGhZSUNzZ1pXeGxiV1Z1ZEM1NExGeHVJQ0FnSUNBZ2JXRjRXU0FySUdWc1pXMWxiblF1ZVN4Y2JpQWdJQ0JkTzF4dUlDQjlYRzVjYmlBZ2NtVjBkWEp1SUdOdmIzSmtjenRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCblpYUkJjbkp2ZDJobFlXUlFiMmx1ZEhNZ1BTQW9YRzRnSUdWc1pXMWxiblE2SUVWNFkyRnNhV1J5WVhkTWFXNWxZWEpGYkdWdFpXNTBMRnh1SUNCemFHRndaVG9nUkhKaGQyRmliR1ZiWFN4Y2JpQWdjRzl6YVhScGIyNDZJRndpYzNSaGNuUmNJaUI4SUZ3aVpXNWtYQ0lzWEc0Z0lHRnljbTkzYUdWaFpEb2dRWEp5YjNkb1pXRmtMRnh1S1NBOVBpQjdYRzRnSUdOdmJuTjBJRzl3Y3lBOUlHZGxkRU4xY25abFVHRjBhRTl3Y3loemFHRndaVnN3WFNrN1hHNGdJR2xtSUNodmNITXViR1Z1WjNSb0lEd2dNU2tnZTF4dUlDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQjlYRzVjYmlBZ0x5OGdWR2hsSUdsdVpHVjRJRzltSUhSb1pTQmlRM1Z5ZG1VZ2IzQmxjbUYwYVc5dUlIUnZJR1Y0WVcxcGJtVXVYRzRnSUdOdmJuTjBJR2x1WkdWNElEMGdjRzl6YVhScGIyNGdQVDA5SUZ3aWMzUmhjblJjSWlBL0lERWdPaUJ2Y0hNdWJHVnVaM1JvSUMwZ01UdGNibHh1SUNCamIyNXpkQ0JrWVhSaElEMGdiM0J6VzJsdVpHVjRYUzVrWVhSaE8xeHVJQ0JqYjI1emRDQndNeUE5SUZ0a1lYUmhXelJkTENCa1lYUmhXelZkWFNCaGN5QlFiMmx1ZER0Y2JpQWdZMjl1YzNRZ2NESWdQU0JiWkdGMFlWc3lYU3dnWkdGMFlWc3pYVjBnWVhNZ1VHOXBiblE3WEc0Z0lHTnZibk4wSUhBeElEMGdXMlJoZEdGYk1GMHNJR1JoZEdGYk1WMWRJR0Z6SUZCdmFXNTBPMXh1WEc0Z0lDOHZJRmRsSUc1bFpXUWdkRzhnWm1sdVpDQndNQ0J2WmlCMGFHVWdZbVY2YVdWeUlHTjFjblpsTGx4dUlDQXZMeUJKZENCcGN5QjBlWEJwWTJGc2JIa2dkR2hsSUd4aGMzUWdjRzlwYm5RZ2IyWWdkR2hsSUhCeVpYWnBiM1Z6WEc0Z0lDOHZJR04xY25abE95QnBkQ0JqWVc0Z1lXeHpieUJpWlNCMGFHVWdjRzl6YVhScGIyNGdiMllnYlc5MlpWUnZJRzl3WlhKaGRHbHZiaTVjYmlBZ1kyOXVjM1FnY0hKbGRrOXdJRDBnYjNCelcybHVaR1Y0SUMwZ01WMDdYRzRnSUd4bGRDQndNRG9nVUc5cGJuUWdQU0JiTUN3Z01GMDdYRzRnSUdsbUlDaHdjbVYyVDNBdWIzQWdQVDA5SUZ3aWJXOTJaVndpS1NCN1hHNGdJQ0FnY0RBZ1BTQndjbVYyVDNBdVpHRjBZU0JoY3lCMWJtdHViM2R1SUdGeklGQnZhVzUwTzF4dUlDQjlJR1ZzYzJVZ2FXWWdLSEJ5WlhaUGNDNXZjQ0E5UFQwZ1hDSmlZM1Z5ZG1WVWIxd2lLU0I3WEc0Z0lDQWdjREFnUFNCYmNISmxkazl3TG1SaGRHRmJORjBzSUhCeVpYWlBjQzVrWVhSaFd6VmRYVHRjYmlBZ2ZWeHVYRzRnSUM4dklFSW9kQ2tnUFNCd01DQXFJQ2d4TFhRcFhqTWdLeUF6Y0RFZ0tpQjBJQ29nS0RFdGRDbGVNaUFySUROd01pQXFJSFJlTWlBcUlDZ3hMWFFwSUNzZ2NETWdLaUIwWGpOY2JpQWdZMjl1YzNRZ1pYRjFZWFJwYjI0Z1BTQW9kRG9nYm5WdFltVnlMQ0JwWkhnNklHNTFiV0psY2lrZ1BUNWNiaUFnSUNCTllYUm9MbkJ2ZHlneElDMGdkQ3dnTXlrZ0tpQndNMXRwWkhoZElDdGNiaUFnSUNBeklDb2dkQ0FxSUUxaGRHZ3VjRzkzS0RFZ0xTQjBMQ0F5S1NBcUlIQXlXMmxrZUYwZ0sxeHVJQ0FnSURNZ0tpQk5ZWFJvTG5CdmR5aDBMQ0F5S1NBcUlDZ3hJQzBnZENrZ0tpQndNVnRwWkhoZElDdGNiaUFnSUNCd01GdHBaSGhkSUNvZ1RXRjBhQzV3YjNjb2RDd2dNeWs3WEc1Y2JpQWdMeThnUldVZ2EyNXZkeUIwYUdVZ2JHRnpkQ0J3YjJsdWRDQnZaaUIwYUdVZ1lYSnliM2NnS0c5eUlIUm9aU0JtYVhKemRDd2dhV1lnYzNSaGNuUWdZWEp5YjNkb1pXRmtLUzVjYmlBZ1kyOXVjM1FnVzNneUxDQjVNbDBnUFNCd2IzTnBkR2x2YmlBOVBUMGdYQ0p6ZEdGeWRGd2lJRDhnY0RBZ09pQndNenRjYmx4dUlDQXZMeUJDZVNCMWMybHVaeUJqZFdKcFl5QmlaWHBwWlhJZ1pYRjFZWFJwYjI0Z0tFSW9kQ2twSUdGdVpDQjBhR1VnWjJsMlpXNGdjR0Z5WVcxbGRHVnljeXhjYmlBZ0x5OGdkMlVnWTJGc1kzVnNZWFJsSUdFZ2NHOXBiblFnZEdoaGRDQnBjeUJqYkc5elpYSWdkRzhnZEdobElHeGhjM1FnY0c5cGJuUXVYRzRnSUM4dklGUm9aU0IyWVd4MVpTQXdMak1nYVhNZ1kyaHZjMlZ1SUdGeVltbDBjbUZ5YVd4NUlHRnVaQ0JwZENCM2IzSnJjeUJpWlhOMElHWnZjaUJoYkd4Y2JpQWdMeThnZEdobElIUmxjM1JsWkNCallYTmxjeTVjYmlBZ1kyOXVjM1FnVzNneExDQjVNVjBnUFNCYlpYRjFZWFJwYjI0b01DNHpMQ0F3S1N3Z1pYRjFZWFJwYjI0b01DNHpMQ0F4S1YwN1hHNWNiaUFnTHk4Z1JtbHVaQ0IwYUdVZ2JtOXliV0ZzYVhwbFpDQmthWEpsWTNScGIyNGdkbVZqZEc5eUlHSmhjMlZrSUc5dUlIUm9aVnh1SUNBdkx5QndjbVYyYVc5MWMyeDVJR05oYkdOMWJHRjBaV1FnY0c5cGJuUnpMbHh1SUNCamIyNXpkQ0JrYVhOMFlXNWpaU0E5SUUxaGRHZ3VhSGx3YjNRb2VESWdMU0I0TVN3Z2VUSWdMU0I1TVNrN1hHNGdJR052Ym5OMElHNTRJRDBnS0hneUlDMGdlREVwSUM4Z1pHbHpkR0Z1WTJVN1hHNGdJR052Ym5OMElHNTVJRDBnS0hreUlDMGdlVEVwSUM4Z1pHbHpkR0Z1WTJVN1hHNWNiaUFnWTI5dWMzUWdjMmw2WlNBOUlIdGNiaUFnSUNCaGNuSnZkem9nTXpBc1hHNGdJQ0FnWW1GeU9pQXhOU3hjYmlBZ0lDQmtiM1E2SURFMUxGeHVJQ0FnSUhSeWFXRnVaMnhsT2lBeE5TeGNiaUFnZlZ0aGNuSnZkMmhsWVdSZE95QXZMeUJ3YVhobGJITWdLSGRwYkd3Z1pHbG1abVZ5SUdadmNpQmxZV05vSUdGeWNtOTNhR1ZoWkNsY2JseHVJQ0JzWlhRZ2JHVnVaM1JvSUQwZ01EdGNibHh1SUNCcFppQW9ZWEp5YjNkb1pXRmtJRDA5UFNCY0ltRnljbTkzWENJcElIdGNiaUFnSUNBdkx5Qk1aVzVuZEdnZ1ptOXlJQzArSUdGeWNtOTNjeUJwY3lCaVlYTmxaQ0J2YmlCMGFHVWdiR1Z1WjNSb0lHOW1JSFJvWlNCc1lYTjBJSE5sWTNScGIyNWNiaUFnSUNCamIyNXpkQ0JiWTNnc0lHTjVYU0E5SUdWc1pXMWxiblF1Y0c5cGJuUnpXMlZzWlcxbGJuUXVjRzlwYm5SekxteGxibWQwYUNBdElERmRPMXh1SUNBZ0lHTnZibk4wSUZ0d2VDd2djSGxkSUQxY2JpQWdJQ0FnSUdWc1pXMWxiblF1Y0c5cGJuUnpMbXhsYm1kMGFDQStJREZjYmlBZ0lDQWdJQ0FnUHlCbGJHVnRaVzUwTG5CdmFXNTBjMXRsYkdWdFpXNTBMbkJ2YVc1MGN5NXNaVzVuZEdnZ0xTQXlYVnh1SUNBZ0lDQWdJQ0E2SUZzd0xDQXdYVHRjYmx4dUlDQWdJR3hsYm1kMGFDQTlJRTFoZEdndWFIbHdiM1FvWTNnZ0xTQndlQ3dnWTNrZ0xTQndlU2s3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnTHk4Z1RHVnVaM1JvSUdadmNpQnZkR2hsY2lCaGNuSnZkMmhsWVdRZ2RIbHdaWE1nYVhNZ1ltRnpaV1FnYjI0Z2RHaGxJSFJ2ZEdGc0lHeGxibWQwYUNCdlppQjBhR1VnYkdsdVpWeHVJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z1pXeGxiV1Z1ZEM1d2IybHVkSE11YkdWdVozUm9PeUJwS3lzcElIdGNiaUFnSUNBZ0lHTnZibk4wSUZ0d2VDd2djSGxkSUQwZ1pXeGxiV1Z1ZEM1d2IybHVkSE5iYVNBdElERmRJSHg4SUZzd0xDQXdYVHRjYmlBZ0lDQWdJR052Ym5OMElGdGplQ3dnWTNsZElEMGdaV3hsYldWdWRDNXdiMmx1ZEhOYmFWMDdYRzRnSUNBZ0lDQnNaVzVuZEdnZ0t6MGdUV0YwYUM1b2VYQnZkQ2hqZUNBdElIQjRMQ0JqZVNBdElIQjVLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2THlCVFkyRnNaU0JrYjNkdUlIUm9aU0JoY25KdmQyaGxZV1FnZFc1MGFXd2dkMlVnYUdsMElHRWdZMlZ5ZEdGcGJpQnphWHBsSUhOdklIUm9ZWFFnYVhRZ1pHOWxjMjRuZENCc2IyOXJJSGRsYVhKa0xseHVJQ0F2THlCVWFHbHpJSFpoYkhWbElHbHpJSE5sYkdWamRHVmtJR0o1SUcxcGJtbHRhWHBwYm1jZ1lTQnRhVzVwYlhWdElITnBlbVVnZDJsMGFDQjBhR1VnYkdGemRDQnpaV2R0Wlc1MElHOW1JSFJvWlNCaGNuSnZkMmhsWVdSY2JpQWdZMjl1YzNRZ2JXbHVVMmw2WlNBOUlFMWhkR2d1YldsdUtITnBlbVVzSUd4bGJtZDBhQ0F2SURJcE8xeHVJQ0JqYjI1emRDQjRjeUE5SUhneUlDMGdibmdnS2lCdGFXNVRhWHBsTzF4dUlDQmpiMjV6ZENCNWN5QTlJSGt5SUMwZ2Jua2dLaUJ0YVc1VGFYcGxPMXh1WEc0Z0lHbG1JQ2hoY25KdmQyaGxZV1FnUFQwOUlGd2laRzkwWENJcElIdGNiaUFnSUNCamIyNXpkQ0J5SUQwZ1RXRjBhQzVvZVhCdmRDaDVjeUF0SUhreUxDQjRjeUF0SUhneUtTQXJJR1ZzWlcxbGJuUXVjM1J5YjJ0bFYybGtkR2c3WEc0Z0lDQWdjbVYwZFhKdUlGdDRNaXdnZVRJc0lISmRPMXh1SUNCOVhHNWNiaUFnWTI5dWMzUWdZVzVuYkdVZ1BTQjdYRzRnSUNBZ1lYSnliM2M2SURJd0xGeHVJQ0FnSUdKaGNqb2dPVEFzWEc0Z0lDQWdkSEpwWVc1bmJHVTZJREkxTEZ4dUlDQjlXMkZ5Y205M2FHVmhaRjA3SUM4dklHUmxaM0psWlhOY2JseHVJQ0F2THlCU1pYUjFjbTRnY0c5cGJuUnpYRzRnSUdOdmJuTjBJRnQ0TXl3Z2VUTmRJRDBnY205MFlYUmxLSGh6TENCNWN5d2dlRElzSUhreUxDQW9MV0Z1WjJ4bElDb2dUV0YwYUM1UVNTa2dMeUF4T0RBcE8xeHVJQ0JqYjI1emRDQmJlRFFzSUhrMFhTQTlJSEp2ZEdGMFpTaDRjeXdnZVhNc0lIZ3lMQ0I1TWl3Z0tHRnVaMnhsSUNvZ1RXRjBhQzVRU1NrZ0x5QXhPREFwTzF4dUlDQnlaWFIxY200Z1czZ3lMQ0I1TWl3Z2VETXNJSGt6TENCNE5Dd2dlVFJkTzF4dWZUdGNibHh1WTI5dWMzUWdaMlYwVEdsdVpXRnlSV3hsYldWdWRGSnZkR0YwWldSQ2IzVnVaSE1nUFNBb1hHNGdJR1ZzWlcxbGJuUTZJRVY0WTJGc2FXUnlZWGRNYVc1bFlYSkZiR1Z0Wlc1MExGeHVJQ0JqZURvZ2JuVnRZbVZ5TEZ4dUlDQmplVG9nYm5WdFltVnlMRnh1S1RvZ1cyNTFiV0psY2l3Z2JuVnRZbVZ5TENCdWRXMWlaWElzSUc1MWJXSmxjbDBnUFQ0Z2UxeHVJQ0JwWmlBb1pXeGxiV1Z1ZEM1d2IybHVkSE11YkdWdVozUm9JRHdnTWlCOGZDQWhaMlYwVTJoaGNHVkdiM0pGYkdWdFpXNTBLR1ZzWlcxbGJuUXBLU0I3WEc0Z0lDQWdMeThnV0ZoWUlIUm9hWE1nYVhNZ2FuVnpkQ0JoSUhCdmIzSWdaWE4wYVcxaGRHVWdZVzVrSUc1dmRDQjJaWEo1SUhWelpXWjFiRnh1SUNBZ0lHTnZibk4wSUhzZ2JXbHVXQ3dnYldsdVdTd2diV0Y0V0N3Z2JXRjRXU0I5SUQwZ1pXeGxiV1Z1ZEM1d2IybHVkSE11Y21Wa2RXTmxLRnh1SUNBZ0lDQWdLR3hwYldsMGN5d2dXM2dzSUhsZEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUZ0NExDQjVYU0E5SUhKdmRHRjBaU2hsYkdWdFpXNTBMbmdnS3lCNExDQmxiR1Z0Wlc1MExua2dLeUI1TENCamVDd2dZM2tzSUdWc1pXMWxiblF1WVc1bmJHVXBPMXh1SUNBZ0lDQWdJQ0JzYVcxcGRITXViV2x1V1NBOUlFMWhkR2d1YldsdUtHeHBiV2wwY3k1dGFXNVpMQ0I1S1R0Y2JpQWdJQ0FnSUNBZ2JHbHRhWFJ6TG0xcGJsZ2dQU0JOWVhSb0xtMXBiaWhzYVcxcGRITXViV2x1V0N3Z2VDazdYRzRnSUNBZ0lDQWdJR3hwYldsMGN5NXRZWGhZSUQwZ1RXRjBhQzV0WVhnb2JHbHRhWFJ6TG0xaGVGZ3NJSGdwTzF4dUlDQWdJQ0FnSUNCc2FXMXBkSE11YldGNFdTQTlJRTFoZEdndWJXRjRLR3hwYldsMGN5NXRZWGhaTENCNUtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHeHBiV2wwY3p0Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCN0lHMXBibGc2SUVsdVptbHVhWFI1TENCdGFXNVpPaUJKYm1acGJtbDBlU3dnYldGNFdEb2dMVWx1Wm1sdWFYUjVMQ0J0WVhoWk9pQXRTVzVtYVc1cGRIa2dmU3hjYmlBZ0lDQXBPMXh1SUNBZ0lISmxkSFZ5YmlCYmJXbHVXQ3dnYldsdVdTd2diV0Y0V0N3Z2JXRjRXVjA3WEc0Z0lIMWNibHh1SUNCamIyNXpkQ0J6YUdGd1pTQTlJR2RsZEZOb1lYQmxSbTl5Uld4bGJXVnVkQ2hsYkdWdFpXNTBLU0U3WEc1Y2JpQWdMeThnWm1seWMzUWdaV3hsYldWdWRDQnBjeUJoYkhkaGVYTWdkR2hsSUdOMWNuWmxYRzRnSUdOdmJuTjBJRzl3Y3lBOUlHZGxkRU4xY25abFVHRjBhRTl3Y3loemFHRndaVnN3WFNrN1hHNWNiaUFnWTI5dWMzUWdkSEpoYm5ObWIzSnRXRmtnUFNBb2VEb2diblZ0WW1WeUxDQjVPaUJ1ZFcxaVpYSXBJRDArWEc0Z0lDQWdjbTkwWVhSbEtHVnNaVzFsYm5RdWVDQXJJSGdzSUdWc1pXMWxiblF1ZVNBcklIa3NJR040TENCamVTd2daV3hsYldWdWRDNWhibWRzWlNrN1hHNGdJSEpsZEhWeWJpQm5aWFJOYVc1TllYaFlXVVp5YjIxRGRYSjJaVkJoZEdoUGNITW9iM0J6TENCMGNtRnVjMlp2Y20xWVdTazdYRzU5TzF4dVhHNHZMeUJYWlNCamIzVnNaQ0JqWVdOb1pTQjBhR2x6SUhOMGRXWm1YRzVsZUhCdmNuUWdZMjl1YzNRZ1oyVjBSV3hsYldWdWRFSnZkVzVrY3lBOUlDaGNiaUFnWld4bGJXVnVkRG9nUlhoallXeHBaSEpoZDBWc1pXMWxiblFzWEc0cE9pQmJiblZ0WW1WeUxDQnVkVzFpWlhJc0lHNTFiV0psY2l3Z2JuVnRZbVZ5WFNBOVBpQjdYRzRnSUd4bGRDQmliM1Z1WkhNNklGdHVkVzFpWlhJc0lHNTFiV0psY2l3Z2JuVnRZbVZ5TENCdWRXMWlaWEpkTzF4dVhHNGdJR052Ym5OMElGdDRNU3dnZVRFc0lIZ3lMQ0I1TWwwZ1BTQm5aWFJGYkdWdFpXNTBRV0p6YjJ4MWRHVkRiMjl5WkhNb1pXeGxiV1Z1ZENrN1hHNGdJR052Ym5OMElHTjRJRDBnS0hneElDc2dlRElwSUM4Z01qdGNiaUFnWTI5dWMzUWdZM2tnUFNBb2VURWdLeUI1TWlrZ0x5QXlPMXh1SUNCcFppQW9hWE5HY21WbFJISmhkMFZzWlcxbGJuUW9aV3hsYldWdWRDa3BJSHRjYmlBZ0lDQmpiMjV6ZENCYmJXbHVXQ3dnYldsdVdTd2diV0Y0V0N3Z2JXRjRXVjBnUFNCblpYUkNiM1Z1WkhOR2NtOXRVRzlwYm5SektGeHVJQ0FnSUNBZ1pXeGxiV1Z1ZEM1d2IybHVkSE11YldGd0tDaGJlQ3dnZVYwcElEMCtYRzRnSUNBZ0lDQWdJSEp2ZEdGMFpTaDRMQ0I1TENCamVDQXRJR1ZzWlcxbGJuUXVlQ3dnWTNrZ0xTQmxiR1Z0Wlc1MExua3NJR1ZzWlcxbGJuUXVZVzVuYkdVcExGeHVJQ0FnSUNBZ0tTeGNiaUFnSUNBcE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUZ0Y2JpQWdJQ0FnSUcxcGJsZ2dLeUJsYkdWdFpXNTBMbmdzWEc0Z0lDQWdJQ0J0YVc1WklDc2daV3hsYldWdWRDNTVMRnh1SUNBZ0lDQWdiV0Y0V0NBcklHVnNaVzFsYm5RdWVDeGNiaUFnSUNBZ0lHMWhlRmtnS3lCbGJHVnRaVzUwTG5rc1hHNGdJQ0FnWFR0Y2JpQWdmU0JsYkhObElHbG1JQ2hwYzB4cGJtVmhja1ZzWlcxbGJuUW9aV3hsYldWdWRDa3BJSHRjYmlBZ0lDQmliM1Z1WkhNZ1BTQm5aWFJNYVc1bFlYSkZiR1Z0Wlc1MFVtOTBZWFJsWkVKdmRXNWtjeWhsYkdWdFpXNTBMQ0JqZUN3Z1kza3BPMXh1SUNCOUlHVnNjMlVnYVdZZ0tHVnNaVzFsYm5RdWRIbHdaU0E5UFQwZ1hDSmthV0Z0YjI1a1hDSXBJSHRjYmlBZ0lDQmpiMjV6ZENCYmVERXhMQ0I1TVRGZElEMGdjbTkwWVhSbEtHTjRMQ0I1TVN3Z1kzZ3NJR041TENCbGJHVnRaVzUwTG1GdVoyeGxLVHRjYmlBZ0lDQmpiMjV6ZENCYmVERXlMQ0I1TVRKZElEMGdjbTkwWVhSbEtHTjRMQ0I1TWl3Z1kzZ3NJR041TENCbGJHVnRaVzUwTG1GdVoyeGxLVHRjYmlBZ0lDQmpiMjV6ZENCYmVESXlMQ0I1TWpKZElEMGdjbTkwWVhSbEtIZ3hMQ0JqZVN3Z1kzZ3NJR041TENCbGJHVnRaVzUwTG1GdVoyeGxLVHRjYmlBZ0lDQmpiMjV6ZENCYmVESXhMQ0I1TWpGZElEMGdjbTkwWVhSbEtIZ3lMQ0JqZVN3Z1kzZ3NJR041TENCbGJHVnRaVzUwTG1GdVoyeGxLVHRjYmlBZ0lDQmpiMjV6ZENCdGFXNVlJRDBnVFdGMGFDNXRhVzRvZURFeExDQjRNVElzSUhneU1pd2dlREl4S1R0Y2JpQWdJQ0JqYjI1emRDQnRhVzVaSUQwZ1RXRjBhQzV0YVc0b2VURXhMQ0I1TVRJc0lIa3lNaXdnZVRJeEtUdGNiaUFnSUNCamIyNXpkQ0J0WVhoWUlEMGdUV0YwYUM1dFlYZ29lREV4TENCNE1USXNJSGd5TWl3Z2VESXhLVHRjYmlBZ0lDQmpiMjV6ZENCdFlYaFpJRDBnVFdGMGFDNXRZWGdvZVRFeExDQjVNVElzSUhreU1pd2dlVEl4S1R0Y2JpQWdJQ0JpYjNWdVpITWdQU0JiYldsdVdDd2diV2x1V1N3Z2JXRjRXQ3dnYldGNFdWMDdYRzRnSUgwZ1pXeHpaU0JwWmlBb1pXeGxiV1Z1ZEM1MGVYQmxJRDA5UFNCY0ltVnNiR2x3YzJWY0lpa2dlMXh1SUNBZ0lHTnZibk4wSUhjZ1BTQW9lRElnTFNCNE1Ta2dMeUF5TzF4dUlDQWdJR052Ym5OMElHZ2dQU0FvZVRJZ0xTQjVNU2tnTHlBeU8xeHVJQ0FnSUdOdmJuTjBJR052Y3lBOUlFMWhkR2d1WTI5ektHVnNaVzFsYm5RdVlXNW5iR1VwTzF4dUlDQWdJR052Ym5OMElITnBiaUE5SUUxaGRHZ3VjMmx1S0dWc1pXMWxiblF1WVc1bmJHVXBPMXh1SUNBZ0lHTnZibk4wSUhkM0lEMGdUV0YwYUM1b2VYQnZkQ2gzSUNvZ1kyOXpMQ0JvSUNvZ2MybHVLVHRjYmlBZ0lDQmpiMjV6ZENCb2FDQTlJRTFoZEdndWFIbHdiM1FvYUNBcUlHTnZjeXdnZHlBcUlITnBiaWs3WEc0Z0lDQWdZbTkxYm1SeklEMGdXMk40SUMwZ2QzY3NJR041SUMwZ2FHZ3NJR040SUNzZ2QzY3NJR041SUNzZ2FHaGRPMXh1SUNCOUlHVnNjMlVnZTF4dUlDQWdJR052Ym5OMElGdDRNVEVzSUhreE1WMGdQU0J5YjNSaGRHVW9lREVzSUhreExDQmplQ3dnWTNrc0lHVnNaVzFsYm5RdVlXNW5iR1VwTzF4dUlDQWdJR052Ym5OMElGdDRNVElzSUhreE1sMGdQU0J5YjNSaGRHVW9lREVzSUhreUxDQmplQ3dnWTNrc0lHVnNaVzFsYm5RdVlXNW5iR1VwTzF4dUlDQWdJR052Ym5OMElGdDRNaklzSUhreU1sMGdQU0J5YjNSaGRHVW9lRElzSUhreUxDQmplQ3dnWTNrc0lHVnNaVzFsYm5RdVlXNW5iR1VwTzF4dUlDQWdJR052Ym5OMElGdDRNakVzSUhreU1WMGdQU0J5YjNSaGRHVW9lRElzSUhreExDQmplQ3dnWTNrc0lHVnNaVzFsYm5RdVlXNW5iR1VwTzF4dUlDQWdJR052Ym5OMElHMXBibGdnUFNCTllYUm9MbTFwYmloNE1URXNJSGd4TWl3Z2VESXlMQ0I0TWpFcE8xeHVJQ0FnSUdOdmJuTjBJRzFwYmxrZ1BTQk5ZWFJvTG0xcGJpaDVNVEVzSUhreE1pd2dlVEl5TENCNU1qRXBPMXh1SUNBZ0lHTnZibk4wSUcxaGVGZ2dQU0JOWVhSb0xtMWhlQ2g0TVRFc0lIZ3hNaXdnZURJeUxDQjRNakVwTzF4dUlDQWdJR052Ym5OMElHMWhlRmtnUFNCTllYUm9MbTFoZUNoNU1URXNJSGt4TWl3Z2VUSXlMQ0I1TWpFcE8xeHVJQ0FnSUdKdmRXNWtjeUE5SUZ0dGFXNVlMQ0J0YVc1WkxDQnRZWGhZTENCdFlYaFpYVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJpYjNWdVpITTdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWjJWMFEyOXRiVzl1UW05MWJtUnpJRDBnS0Z4dUlDQmxiR1Z0Wlc1MGN6b2djbVZoWkc5dWJIa2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYU3hjYmlrNklGdHVkVzFpWlhJc0lHNTFiV0psY2l3Z2JuVnRZbVZ5TENCdWRXMWlaWEpkSUQwK0lIdGNiaUFnYVdZZ0tDRmxiR1Z0Wlc1MGN5NXNaVzVuZEdncElIdGNiaUFnSUNCeVpYUjFjbTRnV3pBc0lEQXNJREFzSURCZE8xeHVJQ0I5WEc1Y2JpQWdiR1YwSUcxcGJsZ2dQU0JKYm1acGJtbDBlVHRjYmlBZ2JHVjBJRzFoZUZnZ1BTQXRTVzVtYVc1cGRIazdYRzRnSUd4bGRDQnRhVzVaSUQwZ1NXNW1hVzVwZEhrN1hHNGdJR3hsZENCdFlYaFpJRDBnTFVsdVptbHVhWFI1TzF4dVhHNGdJR1ZzWlcxbGJuUnpMbVp2Y2tWaFkyZ29LR1ZzWlcxbGJuUXBJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQmJlREVzSUhreExDQjRNaXdnZVRKZElEMGdaMlYwUld4bGJXVnVkRUp2ZFc1a2N5aGxiR1Z0Wlc1MEtUdGNiaUFnSUNCdGFXNVlJRDBnVFdGMGFDNXRhVzRvYldsdVdDd2dlREVwTzF4dUlDQWdJRzFwYmxrZ1BTQk5ZWFJvTG0xcGJpaHRhVzVaTENCNU1TazdYRzRnSUNBZ2JXRjRXQ0E5SUUxaGRHZ3ViV0Y0S0cxaGVGZ3NJSGd5S1R0Y2JpQWdJQ0J0WVhoWklEMGdUV0YwYUM1dFlYZ29iV0Y0V1N3Z2VUSXBPMXh1SUNCOUtUdGNibHh1SUNCeVpYUjFjbTRnVzIxcGJsZ3NJRzFwYmxrc0lHMWhlRmdzSUcxaGVGbGRPMXh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdkbGRGSmxjMmw2WldSRmJHVnRaVzUwUVdKemIyeDFkR1ZEYjI5eVpITWdQU0FvWEc0Z0lHVnNaVzFsYm5RNklFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MExGeHVJQ0J1WlhoMFYybGtkR2c2SUc1MWJXSmxjaXhjYmlBZ2JtVjRkRWhsYVdkb2REb2diblZ0WW1WeUxGeHVLVG9nVzI1MWJXSmxjaXdnYm5WdFltVnlMQ0J1ZFcxaVpYSXNJRzUxYldKbGNsMGdQVDRnZTF4dUlDQnBaaUFvSVNocGMweHBibVZoY2tWc1pXMWxiblFvWld4bGJXVnVkQ2tnZkh3Z2FYTkdjbVZsUkhKaGQwVnNaVzFsYm5Rb1pXeGxiV1Z1ZENrcEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUZ0Y2JpQWdJQ0FnSUdWc1pXMWxiblF1ZUN4Y2JpQWdJQ0FnSUdWc1pXMWxiblF1ZVN4Y2JpQWdJQ0FnSUdWc1pXMWxiblF1ZUNBcklHNWxlSFJYYVdSMGFDeGNiaUFnSUNBZ0lHVnNaVzFsYm5RdWVTQXJJRzVsZUhSSVpXbG5hSFFzWEc0Z0lDQWdYVHRjYmlBZ2ZWeHVYRzRnSUdOdmJuTjBJSEJ2YVc1MGN5QTlJSEpsYzJOaGJHVlFiMmx1ZEhNb1hHNGdJQ0FnTUN4Y2JpQWdJQ0J1WlhoMFYybGtkR2dzWEc0Z0lDQWdjbVZ6WTJGc1pWQnZhVzUwY3lneExDQnVaWGgwU0dWcFoyaDBMQ0JsYkdWdFpXNTBMbkJ2YVc1MGN5a3NYRzRnSUNrN1hHNWNiaUFnYkdWMElHSnZkVzVrY3pvZ1cyNTFiV0psY2l3Z2JuVnRZbVZ5TENCdWRXMWlaWElzSUc1MWJXSmxjbDA3WEc1Y2JpQWdhV1lnS0dselJuSmxaVVJ5WVhkRmJHVnRaVzUwS0dWc1pXMWxiblFwS1NCN1hHNGdJQ0FnTHk4Z1JuSmxaU0JFY21GM1hHNGdJQ0FnWW05MWJtUnpJRDBnWjJWMFFtOTFibVJ6Um5KdmJWQnZhVzUwY3lod2IybHVkSE1wTzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUM4dklFeHBibVZjYmlBZ0lDQmpiMjV6ZENCblpXNGdQU0J5YjNWbmFDNW5aVzVsY21GMGIzSW9LVHRjYmlBZ0lDQmpiMjV6ZENCamRYSjJaU0E5WEc0Z0lDQWdJQ0JsYkdWdFpXNTBMbk4wY205clpWTm9ZWEp3Ym1WemN5QTlQVDBnWENKemFHRnljRndpWEc0Z0lDQWdJQ0FnSUQ4Z1oyVnVMbXhwYm1WaGNsQmhkR2dvWEc0Z0lDQWdJQ0FnSUNBZ0lDQndiMmx1ZEhNZ1lYTWdXMjUxYldKbGNpd2diblZ0WW1WeVhWdGRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1oyVnVaWEpoZEdWU2IzVm5hRTl3ZEdsdmJuTW9aV3hsYldWdWRDa3NYRzRnSUNBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnSUNBNklHZGxiaTVqZFhKMlpTaGNiaUFnSUNBZ0lDQWdJQ0FnSUhCdmFXNTBjeUJoY3lCYmJuVnRZbVZ5TENCdWRXMWlaWEpkVzEwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JuWlc1bGNtRjBaVkp2ZFdkb1QzQjBhVzl1Y3lobGJHVnRaVzUwS1N4Y2JpQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUc5d2N5QTlJR2RsZEVOMWNuWmxVR0YwYUU5d2N5aGpkWEoyWlNrN1hHNGdJQ0FnWW05MWJtUnpJRDBnWjJWMFRXbHVUV0Y0V0ZsR2NtOXRRM1Z5ZG1WUVlYUm9UM0J6S0c5d2N5azdYRzRnSUgxY2JseHVJQ0JqYjI1emRDQmJiV2x1V0N3Z2JXbHVXU3dnYldGNFdDd2diV0Y0V1YwZ1BTQmliM1Z1WkhNN1hHNGdJSEpsZEhWeWJpQmJYRzRnSUNBZ2JXbHVXQ0FySUdWc1pXMWxiblF1ZUN4Y2JpQWdJQ0J0YVc1WklDc2daV3hsYldWdWRDNTVMRnh1SUNBZ0lHMWhlRmdnS3lCbGJHVnRaVzUwTG5nc1hHNGdJQ0FnYldGNFdTQXJJR1ZzWlcxbGJuUXVlU3hjYmlBZ1hUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JuWlhSRmJHVnRaVzUwVUc5cGJuUnpRMjl2Y21SeklEMGdLRnh1SUNCbGJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1RHbHVaV0Z5Uld4bGJXVnVkQ3hjYmlBZ2NHOXBiblJ6T2lCeVpXRmtiMjVzZVNBb2NtVmhaRzl1YkhrZ1cyNTFiV0psY2l3Z2JuVnRZbVZ5WFNsYlhTeGNiaUFnYzJoaGNuQnVaWE56T2lCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0Y0luTjBjbTlyWlZOb1lYSndibVZ6YzF3aVhTeGNiaWs2SUZ0dWRXMWlaWElzSUc1MWJXSmxjaXdnYm5WdFltVnlMQ0J1ZFcxaVpYSmRJRDArSUh0Y2JpQWdMeThnVkdocGN5QnRhV2RvZENCaVpTQmpiMjF3ZFhSaGRHbHZibUZzYkhrZ2FHVmhkbVY1WEc0Z0lHTnZibk4wSUdkbGJpQTlJSEp2ZFdkb0xtZGxibVZ5WVhSdmNpZ3BPMXh1SUNCamIyNXpkQ0JqZFhKMlpTQTlYRzRnSUNBZ2MyaGhjbkJ1WlhOeklEMDlQU0JjSW5Ob1lYSndYQ0pjYmlBZ0lDQWdJRDhnWjJWdUxteHBibVZoY2xCaGRHZ29YRzRnSUNBZ0lDQWdJQ0FnY0c5cGJuUnpJR0Z6SUZ0dWRXMWlaWElzSUc1MWJXSmxjbDFiWFN4Y2JpQWdJQ0FnSUNBZ0lDQm5aVzVsY21GMFpWSnZkV2RvVDNCMGFXOXVjeWhsYkdWdFpXNTBLU3hjYmlBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnT2lCblpXNHVZM1Z5ZG1Vb2NHOXBiblJ6SUdGeklGdHVkVzFpWlhJc0lHNTFiV0psY2wxYlhTd2daMlZ1WlhKaGRHVlNiM1ZuYUU5d2RHbHZibk1vWld4bGJXVnVkQ2twTzF4dUlDQmpiMjV6ZENCdmNITWdQU0JuWlhSRGRYSjJaVkJoZEdoUGNITW9ZM1Z5ZG1VcE8xeHVJQ0JqYjI1emRDQmJiV2x1V0N3Z2JXbHVXU3dnYldGNFdDd2diV0Y0V1YwZ1BTQm5aWFJOYVc1TllYaFlXVVp5YjIxRGRYSjJaVkJoZEdoUGNITW9iM0J6S1R0Y2JpQWdjbVYwZFhKdUlGdGNiaUFnSUNCdGFXNVlJQ3NnWld4bGJXVnVkQzU0TEZ4dUlDQWdJRzFwYmxrZ0t5QmxiR1Z0Wlc1MExua3NYRzRnSUNBZ2JXRjRXQ0FySUdWc1pXMWxiblF1ZUN4Y2JpQWdJQ0J0WVhoWklDc2daV3hsYldWdWRDNTVMRnh1SUNCZE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2RsZEVOc2IzTmxjM1JGYkdWdFpXNTBRbTkxYm1SeklEMGdLRnh1SUNCbGJHVnRaVzUwY3pvZ2NtVmhaRzl1YkhrZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTeGNiaUFnWm5KdmJUb2dleUI0T2lCdWRXMWlaWEk3SUhrNklHNTFiV0psY2lCOUxGeHVLVG9nVzI1MWJXSmxjaXdnYm5WdFltVnlMQ0J1ZFcxaVpYSXNJRzUxYldKbGNsMGdQVDRnZTF4dUlDQnBaaUFvSVdWc1pXMWxiblJ6TG14bGJtZDBhQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQmJNQ3dnTUN3Z01Dd2dNRjA3WEc0Z0lIMWNibHh1SUNCc1pYUWdiV2x1UkdsemRHRnVZMlVnUFNCSmJtWnBibWwwZVR0Y2JpQWdiR1YwSUdOc2IzTmxjM1JGYkdWdFpXNTBJRDBnWld4bGJXVnVkSE5iTUYwN1hHNWNiaUFnWld4bGJXVnVkSE11Wm05eVJXRmphQ2dvWld4bGJXVnVkQ2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJRnQ0TVN3Z2VURXNJSGd5TENCNU1sMGdQU0JuWlhSRmJHVnRaVzUwUW05MWJtUnpLR1ZzWlcxbGJuUXBPMXh1SUNBZ0lHTnZibk4wSUdScGMzUmhibU5sSUQwZ1pHbHpkR0Z1WTJVeVpDZ29lREVnS3lCNE1pa2dMeUF5TENBb2VURWdLeUI1TWlrZ0x5QXlMQ0JtY205dExuZ3NJR1p5YjIwdWVTazdYRzVjYmlBZ0lDQnBaaUFvWkdsemRHRnVZMlVnUENCdGFXNUVhWE4wWVc1alpTa2dlMXh1SUNBZ0lDQWdiV2x1UkdsemRHRnVZMlVnUFNCa2FYTjBZVzVqWlR0Y2JpQWdJQ0FnSUdOc2IzTmxjM1JGYkdWdFpXNTBJRDBnWld4bGJXVnVkRHRjYmlBZ0lDQjlYRzRnSUgwcE8xeHVYRzRnSUhKbGRIVnliaUJuWlhSRmJHVnRaVzUwUW05MWJtUnpLR05zYjNObGMzUkZiR1Z0Wlc1MEtUdGNibjA3WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1FtOTRJSHRjYmlBZ2JXbHVXRG9nYm5WdFltVnlPMXh1SUNCdGFXNVpPaUJ1ZFcxaVpYSTdYRzRnSUcxaGVGZzZJRzUxYldKbGNqdGNiaUFnYldGNFdUb2diblZ0WW1WeU8xeHVJQ0J0YVdSWU9pQnVkVzFpWlhJN1hHNGdJRzFwWkZrNklHNTFiV0psY2p0Y2JpQWdkMmxrZEdnNklHNTFiV0psY2p0Y2JpQWdhR1ZwWjJoME9pQnVkVzFpWlhJN1hHNTlYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm5aWFJEYjIxdGIyNUNiM1Z1WkdsdVowSnZlQ0E5SUNoY2JpQWdaV3hsYldWdWRITTZJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTBnZkNCeVpXRmtiMjVzZVNCT2IyNUVaV3hsZEdWa1BFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFBsdGRMRnh1S1RvZ1FtOTRJRDArSUh0Y2JpQWdZMjl1YzNRZ1cyMXBibGdzSUcxcGJsa3NJRzFoZUZnc0lHMWhlRmxkSUQwZ1oyVjBRMjl0Ylc5dVFtOTFibVJ6S0dWc1pXMWxiblJ6S1R0Y2JpQWdjbVYwZFhKdUlIdGNiaUFnSUNCdGFXNVlMRnh1SUNBZ0lHMXBibGtzWEc0Z0lDQWdiV0Y0V0N4Y2JpQWdJQ0J0WVhoWkxGeHVJQ0FnSUhkcFpIUm9PaUJ0WVhoWUlDMGdiV2x1V0N4Y2JpQWdJQ0JvWldsbmFIUTZJRzFoZUZrZ0xTQnRhVzVaTEZ4dUlDQWdJRzFwWkZnNklDaHRhVzVZSUNzZ2JXRjRXQ2tnTHlBeUxGeHVJQ0FnSUcxcFpGazZJQ2h0YVc1WklDc2diV0Y0V1NrZ0x5QXlMRnh1SUNCOU8xeHVmVHRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZWxlbWVudC9ib3VuZHMudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2VsZW1lbnQvY29sbGlzaW9uLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2VsZW1lbnQvY29sbGlzaW9uLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJoaXRUZXN0XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaGl0VGVzdCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNIaXR0aW5nRWxlbWVudEJvdW5kaW5nQm94V2l0aG91dEhpdHRpbmdFbGVtZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNIaXR0aW5nRWxlbWVudEJvdW5kaW5nQm94V2l0aG91dEhpdHRpbmdFbGVtZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpc0hpdHRpbmdFbGVtZW50Tm90Q29uc2lkZXJpbmdCb3VuZGluZ0JveFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlzSGl0dGluZ0VsZW1lbnROb3RDb25zaWRlcmluZ0JvdW5kaW5nQm94KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpc1BvaW50SGl0dGluZ0VsZW1lbnRCb3VuZGluZ0JveFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlzUG9pbnRIaXR0aW5nRWxlbWVudEJvdW5kaW5nQm94KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJiaW5kaW5nQm9yZGVyVGVzdFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGJpbmRpbmdCb3JkZXJUZXN0KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJtYXhCaW5kaW5nR2FwXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gbWF4QmluZGluZ0dhcCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGlzdGFuY2VUb0JpbmRhYmxlRWxlbWVudFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGRpc3RhbmNlVG9CaW5kYWJsZUVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInBvaW50SW5BYnNvbHV0ZUNvb3Jkc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHBvaW50SW5BYnNvbHV0ZUNvb3JkcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGV0ZXJtaW5lRm9jdXNEaXN0YW5jZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGRldGVybWluZUZvY3VzRGlzdGFuY2UpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRldGVybWluZUZvY3VzUG9pbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBkZXRlcm1pbmVGb2N1c1BvaW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpbnRlcnNlY3RFbGVtZW50V2l0aExpbmVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpbnRlcnNlY3RFbGVtZW50V2l0aExpbmUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldENpcmNsZUludGVyc2VjdGlvbnNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRDaXJjbGVJbnRlcnNlY3Rpb25zKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJmaW5kRm9jdXNQb2ludEZvckVsbGlwc2VcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBmaW5kRm9jdXNQb2ludEZvckVsbGlwc2UpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImZpbmRGb2N1c1BvaW50Rm9yUmVjdGFuZ3VsYXJzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZmluZEZvY3VzUG9pbnRGb3JSZWN0YW5ndWxhcnMpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9nYV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZ2EgKi8gXFxcIi4uLy4uL2dhLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9nYXBvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZ2Fwb2ludHMgKi8gXFxcIi4uLy4uL2dhcG9pbnRzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9nYWRpcmVjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2dhZGlyZWN0aW9ucyAqLyBcXFwiLi4vLi4vZ2FkaXJlY3Rpb25zLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9nYWxpbmVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9nYWxpbmVzICovIFxcXCIuLi8uLi9nYWxpbmVzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9nYXRyYW5zZm9ybXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2dhdHJhbnNmb3JtcyAqLyBcXFwiLi4vLi4vZ2F0cmFuc2Zvcm1zLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9tYXRoICovIFxcXCIuLi8uLi9tYXRoLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHBvaW50c19vbl9jdXJ2ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcG9pbnRzLW9uLWN1cnZlICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9pbnRzLW9uLWN1cnZlL2xpYi9pbmRleC5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2JvdW5kcyAqLyBcXFwiLi4vLi4vZWxlbWVudC9ib3VuZHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3JlbmRlcmVyX3JlbmRlckVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3JlbmRlcmVyL3JlbmRlckVsZW1lbnQgKi8gXFxcIi4uLy4uL3JlbmRlcmVyL3JlbmRlckVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vdHlwZUNoZWNrcyAqLyBcXFwiLi4vLi4vZWxlbWVudC90eXBlQ2hlY2tzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuICovIFxcXCIuLi8uLi9lbGVtZW50L2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcbmNvbnN0IGlzRWxlbWVudERyYWdnYWJsZUZyb21JbnNpZGUgPSAoZWxlbWVudCkgPT4ge1xcbiAgICBpZiAoZWxlbWVudC50eXBlID09PSBcXFwiYXJyb3dcXFwiKSB7XFxuICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgIH1cXG4gICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gXFxcImZyZWVkcmF3XFxcIikge1xcbiAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgIH1cXG4gICAgY29uc3QgaXNEcmFnZ2FibGVGcm9tSW5zaWRlID0gISgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5pc1RyYW5zcGFyZW50KShlbGVtZW50LmJhY2tncm91bmRDb2xvcikgfHwgKDAsX3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5oYXNCb3VuZFRleHRFbGVtZW50KShlbGVtZW50KTtcXG4gICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gXFxcImxpbmVcXFwiKSB7XFxuICAgICAgICByZXR1cm4gaXNEcmFnZ2FibGVGcm9tSW5zaWRlICYmICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uaXNQYXRoQUxvb3ApKGVsZW1lbnQucG9pbnRzKTtcXG4gICAgfVxcbiAgICByZXR1cm4gaXNEcmFnZ2FibGVGcm9tSW5zaWRlIHx8ICgwLF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uaXNJbWFnZUVsZW1lbnQpKGVsZW1lbnQpO1xcbn07XFxuY29uc3QgaGl0VGVzdCA9IChlbGVtZW50LCBhcHBTdGF0ZSwgeCwgeSkgPT4ge1xcbiAgICAvLyBIb3cgbWFueSBwaXhlbHMgb2ZmIHRoZSBzaGFwZSBib3VuZGFyeSB3ZSBzdGlsbCBjb25zaWRlciBhIGhpdFxcbiAgICBjb25zdCB0aHJlc2hvbGQgPSAxMCAvIGFwcFN0YXRlLnpvb20udmFsdWU7XFxuICAgIGNvbnN0IHBvaW50ID0gW3gsIHldO1xcbiAgICBpZiAoaXNFbGVtZW50U2VsZWN0ZWQoYXBwU3RhdGUsIGVsZW1lbnQpKSB7XFxuICAgICAgICByZXR1cm4gaXNQb2ludEhpdHRpbmdFbGVtZW50Qm91bmRpbmdCb3goZWxlbWVudCwgcG9pbnQsIHRocmVzaG9sZCk7XFxuICAgIH1cXG4gICAgcmV0dXJuIGlzSGl0dGluZ0VsZW1lbnROb3RDb25zaWRlcmluZ0JvdW5kaW5nQm94KGVsZW1lbnQsIGFwcFN0YXRlLCBwb2ludCk7XFxufTtcXG5jb25zdCBpc0hpdHRpbmdFbGVtZW50Qm91bmRpbmdCb3hXaXRob3V0SGl0dGluZ0VsZW1lbnQgPSAoZWxlbWVudCwgYXBwU3RhdGUsIHgsIHkpID0+IHtcXG4gICAgY29uc3QgdGhyZXNob2xkID0gMTAgLyBhcHBTdGF0ZS56b29tLnZhbHVlO1xcbiAgICByZXR1cm4gKCFpc0hpdHRpbmdFbGVtZW50Tm90Q29uc2lkZXJpbmdCb3VuZGluZ0JveChlbGVtZW50LCBhcHBTdGF0ZSwgW3gsIHldKSAmJlxcbiAgICAgICAgaXNQb2ludEhpdHRpbmdFbGVtZW50Qm91bmRpbmdCb3goZWxlbWVudCwgW3gsIHldLCB0aHJlc2hvbGQpKTtcXG59O1xcbmNvbnN0IGlzSGl0dGluZ0VsZW1lbnROb3RDb25zaWRlcmluZ0JvdW5kaW5nQm94ID0gKGVsZW1lbnQsIGFwcFN0YXRlLCBwb2ludCkgPT4ge1xcbiAgICBjb25zdCB0aHJlc2hvbGQgPSAxMCAvIGFwcFN0YXRlLnpvb20udmFsdWU7XFxuICAgIGNvbnN0IGNoZWNrID0gKDAsX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5pc1RleHRFbGVtZW50KShlbGVtZW50KVxcbiAgICAgICAgPyBpc1N0cmljdGx5SW5zaWRlXFxuICAgICAgICA6IGlzRWxlbWVudERyYWdnYWJsZUZyb21JbnNpZGUoZWxlbWVudClcXG4gICAgICAgICAgICA/IGlzSW5zaWRlQ2hlY2tcXG4gICAgICAgICAgICA6IGlzTmVhckNoZWNrO1xcbiAgICByZXR1cm4gaGl0VGVzdFBvaW50QWdhaW5zdEVsZW1lbnQoeyBlbGVtZW50LCBwb2ludCwgdGhyZXNob2xkLCBjaGVjayB9KTtcXG59O1xcbmNvbnN0IGlzRWxlbWVudFNlbGVjdGVkID0gKGFwcFN0YXRlLCBlbGVtZW50KSA9PiBhcHBTdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHNbZWxlbWVudC5pZF07XFxuY29uc3QgaXNQb2ludEhpdHRpbmdFbGVtZW50Qm91bmRpbmdCb3ggPSAoZWxlbWVudCwgW3gsIHldLCB0aHJlc2hvbGQpID0+IHtcXG4gICAgY29uc3QgW3gxLCB5MSwgeDIsIHkyXSA9ICgwLF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5nZXRFbGVtZW50QWJzb2x1dGVDb29yZHMpKGVsZW1lbnQpO1xcbiAgICBjb25zdCBlbGVtZW50Q2VudGVyWCA9ICh4MSArIHgyKSAvIDI7XFxuICAgIGNvbnN0IGVsZW1lbnRDZW50ZXJZID0gKHkxICsgeTIpIC8gMjtcXG4gICAgLy8gcmV2ZXJzZSByb3RhdGUgdG8gdGFrZSBlbGVtZW50J3MgYW5nbGUgaW50byBhY2NvdW50LlxcbiAgICBjb25zdCBbcm90YXRlZFgsIHJvdGF0ZWRZXSA9ICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18ucm90YXRlKSh4LCB5LCBlbGVtZW50Q2VudGVyWCwgZWxlbWVudENlbnRlclksIC1lbGVtZW50LmFuZ2xlKTtcXG4gICAgcmV0dXJuIChyb3RhdGVkWCA+IHgxIC0gdGhyZXNob2xkICYmXFxuICAgICAgICByb3RhdGVkWCA8IHgyICsgdGhyZXNob2xkICYmXFxuICAgICAgICByb3RhdGVkWSA+IHkxIC0gdGhyZXNob2xkICYmXFxuICAgICAgICByb3RhdGVkWSA8IHkyICsgdGhyZXNob2xkKTtcXG59O1xcbmNvbnN0IGJpbmRpbmdCb3JkZXJUZXN0ID0gKGVsZW1lbnQsIHsgeCwgeSB9KSA9PiB7XFxuICAgIGNvbnN0IHRocmVzaG9sZCA9IG1heEJpbmRpbmdHYXAoZWxlbWVudCwgZWxlbWVudC53aWR0aCwgZWxlbWVudC5oZWlnaHQpO1xcbiAgICBjb25zdCBjaGVjayA9IGlzT3V0c2lkZUNoZWNrO1xcbiAgICBjb25zdCBwb2ludCA9IFt4LCB5XTtcXG4gICAgcmV0dXJuIGhpdFRlc3RQb2ludEFnYWluc3RFbGVtZW50KHsgZWxlbWVudCwgcG9pbnQsIHRocmVzaG9sZCwgY2hlY2sgfSk7XFxufTtcXG5jb25zdCBtYXhCaW5kaW5nR2FwID0gKGVsZW1lbnQsIGVsZW1lbnRXaWR0aCwgZWxlbWVudEhlaWdodCkgPT4ge1xcbiAgICAvLyBBbGlnbnMgZGlhbW9uZHMgd2l0aCByZWN0YW5nbGVzXFxuICAgIGNvbnN0IHNoYXBlUmF0aW8gPSBlbGVtZW50LnR5cGUgPT09IFxcXCJkaWFtb25kXFxcIiA/IDEgLyBNYXRoLnNxcnQoMikgOiAxO1xcbiAgICBjb25zdCBzbWFsbGVyRGltZW5zaW9uID0gc2hhcGVSYXRpbyAqIE1hdGgubWluKGVsZW1lbnRXaWR0aCwgZWxlbWVudEhlaWdodCk7XFxuICAgIC8vIFdlIG1ha2UgdGhlIGJpbmRhYmxlIGJvdW5kYXJ5IGJpZ2dlciBmb3IgYmlnZ2VyIGVsZW1lbnRzXFxuICAgIHJldHVybiBNYXRoLm1heCgxNiwgTWF0aC5taW4oMC4yNSAqIHNtYWxsZXJEaW1lbnNpb24sIDMyKSk7XFxufTtcXG5jb25zdCBoaXRUZXN0UG9pbnRBZ2FpbnN0RWxlbWVudCA9IChhcmdzKSA9PiB7XFxuICAgIHN3aXRjaCAoYXJncy5lbGVtZW50LnR5cGUpIHtcXG4gICAgICAgIGNhc2UgXFxcInJlY3RhbmdsZVxcXCI6XFxuICAgICAgICBjYXNlIFxcXCJpbWFnZVxcXCI6XFxuICAgICAgICBjYXNlIFxcXCJ0ZXh0XFxcIjpcXG4gICAgICAgIGNhc2UgXFxcImRpYW1vbmRcXFwiOlxcbiAgICAgICAgY2FzZSBcXFwiZWxsaXBzZVxcXCI6XFxuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBkaXN0YW5jZVRvQmluZGFibGVFbGVtZW50KGFyZ3MuZWxlbWVudCwgYXJncy5wb2ludCk7XFxuICAgICAgICAgICAgcmV0dXJuIGFyZ3MuY2hlY2soZGlzdGFuY2UsIGFyZ3MudGhyZXNob2xkKTtcXG4gICAgICAgIGNhc2UgXFxcImZyZWVkcmF3XFxcIjoge1xcbiAgICAgICAgICAgIGlmICghYXJncy5jaGVjayhkaXN0YW5jZVRvUmVjdGFuZ2xlKGFyZ3MuZWxlbWVudCwgYXJncy5wb2ludCksIGFyZ3MudGhyZXNob2xkKSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiBoaXRUZXN0RnJlZURyYXdFbGVtZW50KGFyZ3MuZWxlbWVudCwgYXJncy5wb2ludCwgYXJncy50aHJlc2hvbGQpO1xcbiAgICAgICAgfVxcbiAgICAgICAgY2FzZSBcXFwiYXJyb3dcXFwiOlxcbiAgICAgICAgY2FzZSBcXFwibGluZVxcXCI6XFxuICAgICAgICAgICAgcmV0dXJuIGhpdFRlc3RMaW5lYXIoYXJncyk7XFxuICAgICAgICBjYXNlIFxcXCJzZWxlY3Rpb25cXFwiOlxcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcXFwiVGhpcyBzaG91bGQgbm90IGhhcHBlbiwgd2UgbmVlZCB0byBpbnZlc3RpZ2F0ZSB3aHkgaXQgZG9lcy5cXFwiKTtcXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgIH1cXG59O1xcbmNvbnN0IGRpc3RhbmNlVG9CaW5kYWJsZUVsZW1lbnQgPSAoZWxlbWVudCwgcG9pbnQpID0+IHtcXG4gICAgc3dpdGNoIChlbGVtZW50LnR5cGUpIHtcXG4gICAgICAgIGNhc2UgXFxcInJlY3RhbmdsZVxcXCI6XFxuICAgICAgICBjYXNlIFxcXCJpbWFnZVxcXCI6XFxuICAgICAgICBjYXNlIFxcXCJ0ZXh0XFxcIjpcXG4gICAgICAgICAgICByZXR1cm4gZGlzdGFuY2VUb1JlY3RhbmdsZShlbGVtZW50LCBwb2ludCk7XFxuICAgICAgICBjYXNlIFxcXCJkaWFtb25kXFxcIjpcXG4gICAgICAgICAgICByZXR1cm4gZGlzdGFuY2VUb0RpYW1vbmQoZWxlbWVudCwgcG9pbnQpO1xcbiAgICAgICAgY2FzZSBcXFwiZWxsaXBzZVxcXCI6XFxuICAgICAgICAgICAgcmV0dXJuIGRpc3RhbmNlVG9FbGxpcHNlKGVsZW1lbnQsIHBvaW50KTtcXG4gICAgfVxcbn07XFxuY29uc3QgaXNTdHJpY3RseUluc2lkZSA9IChkaXN0YW5jZSwgdGhyZXNob2xkKSA9PiB7XFxuICAgIHJldHVybiBkaXN0YW5jZSA8IDA7XFxufTtcXG5jb25zdCBpc0luc2lkZUNoZWNrID0gKGRpc3RhbmNlLCB0aHJlc2hvbGQpID0+IHtcXG4gICAgcmV0dXJuIGRpc3RhbmNlIDwgdGhyZXNob2xkO1xcbn07XFxuY29uc3QgaXNOZWFyQ2hlY2sgPSAoZGlzdGFuY2UsIHRocmVzaG9sZCkgPT4ge1xcbiAgICByZXR1cm4gTWF0aC5hYnMoZGlzdGFuY2UpIDwgdGhyZXNob2xkO1xcbn07XFxuY29uc3QgaXNPdXRzaWRlQ2hlY2sgPSAoZGlzdGFuY2UsIHRocmVzaG9sZCkgPT4ge1xcbiAgICByZXR1cm4gMCA8PSBkaXN0YW5jZSAmJiBkaXN0YW5jZSA8IHRocmVzaG9sZDtcXG59O1xcbmNvbnN0IGRpc3RhbmNlVG9SZWN0YW5nbGUgPSAoZWxlbWVudCwgcG9pbnQpID0+IHtcXG4gICAgY29uc3QgWywgcG9pbnRSZWwsIGh3aWR0aCwgaGhlaWdodF0gPSBwb2ludFJlbGF0aXZlVG9FbGVtZW50KGVsZW1lbnQsIHBvaW50KTtcXG4gICAgcmV0dXJuIE1hdGgubWF4KF9nYXBvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmRpc3RhbmNlVG9MaW5lKHBvaW50UmVsLCBfZ2FsaW5lc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmVxdWF0aW9uKDAsIDEsIC1oaGVpZ2h0KSksIF9nYXBvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmRpc3RhbmNlVG9MaW5lKHBvaW50UmVsLCBfZ2FsaW5lc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmVxdWF0aW9uKDEsIDAsIC1od2lkdGgpKSk7XFxufTtcXG5jb25zdCBkaXN0YW5jZVRvRGlhbW9uZCA9IChlbGVtZW50LCBwb2ludCkgPT4ge1xcbiAgICBjb25zdCBbLCBwb2ludFJlbCwgaHdpZHRoLCBoaGVpZ2h0XSA9IHBvaW50UmVsYXRpdmVUb0VsZW1lbnQoZWxlbWVudCwgcG9pbnQpO1xcbiAgICBjb25zdCBzaWRlID0gX2dhbGluZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5lcXVhdGlvbihoaGVpZ2h0LCBod2lkdGgsIC1oaGVpZ2h0ICogaHdpZHRoKTtcXG4gICAgcmV0dXJuIF9nYXBvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmRpc3RhbmNlVG9MaW5lKHBvaW50UmVsLCBzaWRlKTtcXG59O1xcbmNvbnN0IGRpc3RhbmNlVG9FbGxpcHNlID0gKGVsZW1lbnQsIHBvaW50KSA9PiB7XFxuICAgIGNvbnN0IFtwb2ludFJlbCwgdGFuZ2VudF0gPSBlbGxpcHNlUGFyYW1zRm9yVGVzdChlbGVtZW50LCBwb2ludCk7XFxuICAgIHJldHVybiAtX2dhbGluZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5zaWduKHRhbmdlbnQpICogX2dhcG9pbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZGlzdGFuY2VUb0xpbmUocG9pbnRSZWwsIHRhbmdlbnQpO1xcbn07XFxuY29uc3QgZWxsaXBzZVBhcmFtc0ZvclRlc3QgPSAoZWxlbWVudCwgcG9pbnQpID0+IHtcXG4gICAgY29uc3QgWywgcG9pbnRSZWwsIGh3aWR0aCwgaGhlaWdodF0gPSBwb2ludFJlbGF0aXZlVG9FbGVtZW50KGVsZW1lbnQsIHBvaW50KTtcXG4gICAgY29uc3QgW3B4LCBweV0gPSBfZ2Fwb2ludHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50b1R1cGxlKHBvaW50UmVsKTtcXG4gICAgLy8gV2UncmUgd29ya2luZyBpbiBwb3NpdGl2ZSBxdWFkcmFudCwgc28gc3RhcnQgd2l0aCBgdCA9IDQ1ZGVnYCwgYHR4PWNvcyh0KWBcXG4gICAgbGV0IHR4ID0gMC43MDc7XFxuICAgIGxldCB0eSA9IDAuNzA3O1xcbiAgICBjb25zdCBhID0gaHdpZHRoO1xcbiAgICBjb25zdCBiID0gaGhlaWdodDtcXG4gICAgLy8gVGhpcyBpcyBhIG51bWVyaWNhbCBtZXRob2QgdG8gZmluZCB0aGUgcGFyYW1zIHR4LCB0eSBhdCB3aGljaFxcbiAgICAvLyB0aGUgZWxsaXBzZSBoYXMgdGhlIGNsb3Nlc3QgcG9pbnQgdG8gdGhlIGdpdmVuIHBvaW50XFxuICAgIFswLCAxLCAyLCAzXS5mb3JFYWNoKChfKSA9PiB7XFxuICAgICAgICBjb25zdCB4eCA9IGEgKiB0eDtcXG4gICAgICAgIGNvbnN0IHl5ID0gYiAqIHR5O1xcbiAgICAgICAgY29uc3QgZXggPSAoKGEgKiBhIC0gYiAqIGIpICogTWF0aC5wb3codHgsIDMpKSAvIGE7XFxuICAgICAgICBjb25zdCBleSA9ICgoYiAqIGIgLSBhICogYSkgKiBNYXRoLnBvdyh0eSwgMykpIC8gYjtcXG4gICAgICAgIGNvbnN0IHJ4ID0geHggLSBleDtcXG4gICAgICAgIGNvbnN0IHJ5ID0geXkgLSBleTtcXG4gICAgICAgIGNvbnN0IHF4ID0gcHggLSBleDtcXG4gICAgICAgIGNvbnN0IHF5ID0gcHkgLSBleTtcXG4gICAgICAgIGNvbnN0IHIgPSBNYXRoLmh5cG90KHJ5LCByeCk7XFxuICAgICAgICBjb25zdCBxID0gTWF0aC5oeXBvdChxeSwgcXgpO1xcbiAgICAgICAgdHggPSBNYXRoLm1pbigxLCBNYXRoLm1heCgwLCAoKHF4ICogcikgLyBxICsgZXgpIC8gYSkpO1xcbiAgICAgICAgdHkgPSBNYXRoLm1pbigxLCBNYXRoLm1heCgwLCAoKHF5ICogcikgLyBxICsgZXkpIC8gYikpO1xcbiAgICAgICAgY29uc3QgdCA9IE1hdGguaHlwb3QodHksIHR4KTtcXG4gICAgICAgIHR4IC89IHQ7XFxuICAgICAgICB0eSAvPSB0O1xcbiAgICB9KTtcXG4gICAgY29uc3QgY2xvc2VzdFBvaW50ID0gX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucG9pbnQoYSAqIHR4LCBiICogdHkpO1xcbiAgICBjb25zdCB0YW5nZW50ID0gX2dhbGluZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5vcnRob2dvbmFsVGhyb3VnaChwb2ludFJlbCwgY2xvc2VzdFBvaW50KTtcXG4gICAgcmV0dXJuIFtwb2ludFJlbCwgdGFuZ2VudF07XFxufTtcXG5jb25zdCBoaXRUZXN0RnJlZURyYXdFbGVtZW50ID0gKGVsZW1lbnQsIHBvaW50LCB0aHJlc2hvbGQpID0+IHtcXG4gICAgLy8gQ2hlY2sgcG9pbnQtZGlzdGFuY2UtdG8tbGluZS1zZWdtZW50IGZvciBldmVyeSBzZWdtZW50IGluIHRoZVxcbiAgICAvLyBlbGVtZW50J3MgcG9pbnRzIChpdHMgaW5wdXQgcG9pbnRzLCBub3QgaXRzIG91dGxpbmUgcG9pbnRzKS5cXG4gICAgLy8gVGhpcyBpcy4uLiBva2F5PyBJdCdzIHBsZW50eSBmYXN0LCBidXQgdGhlIEdBIGxpYnJhcnkgbWF5XFxuICAgIC8vIGhhdmUgYSBmYXN0ZXIgb3B0aW9uLlxcbiAgICBsZXQgeDtcXG4gICAgbGV0IHk7XFxuICAgIGlmIChlbGVtZW50LmFuZ2xlID09PSAwKSB7XFxuICAgICAgICB4ID0gcG9pbnRbMF0gLSBlbGVtZW50Lng7XFxuICAgICAgICB5ID0gcG9pbnRbMV0gLSBlbGVtZW50Lnk7XFxuICAgIH1cXG4gICAgZWxzZSB7XFxuICAgICAgICAvLyBDb3VudGVyLXJvdGF0ZSB0aGUgcG9pbnQgYXJvdW5kIGNlbnRlciBiZWZvcmUgdGVzdGluZ1xcbiAgICAgICAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gKDAsX2JvdW5kc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmdldEVsZW1lbnRBYnNvbHV0ZUNvb3JkcykoZWxlbWVudCk7XFxuICAgICAgICBjb25zdCByb3RhdGVkUG9pbnQgPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnJvdGF0ZVBvaW50KShwb2ludCwgW21pblggKyAobWF4WCAtIG1pblgpIC8gMiwgbWluWSArIChtYXhZIC0gbWluWSkgLyAyXSwgLWVsZW1lbnQuYW5nbGUpO1xcbiAgICAgICAgeCA9IHJvdGF0ZWRQb2ludFswXSAtIGVsZW1lbnQueDtcXG4gICAgICAgIHkgPSByb3RhdGVkUG9pbnRbMV0gLSBlbGVtZW50Lnk7XFxuICAgIH1cXG4gICAgbGV0IFtBLCBCXSA9IGVsZW1lbnQucG9pbnRzO1xcbiAgICBsZXQgUDtcXG4gICAgLy8gRm9yIGZyZWVkcmF3IGRvdHNcXG4gICAgaWYgKCgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZGlzdGFuY2UyZCkoQVswXSwgQVsxXSwgeCwgeSkgPCB0aHJlc2hvbGQgfHxcXG4gICAgICAgICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZGlzdGFuY2UyZCkoQlswXSwgQlsxXSwgeCwgeSkgPCB0aHJlc2hvbGQpIHtcXG4gICAgICAgIHJldHVybiB0cnVlO1xcbiAgICB9XFxuICAgIC8vIEZvciBmcmVlZHJhdyBsaW5lc1xcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnQucG9pbnRzLmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICBjb25zdCBkZWx0YSA9IFtCWzBdIC0gQVswXSwgQlsxXSAtIEFbMV1dO1xcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gTWF0aC5oeXBvdChkZWx0YVsxXSwgZGVsdGFbMF0pO1xcbiAgICAgICAgY29uc3QgVSA9IFtkZWx0YVswXSAvIGxlbmd0aCwgZGVsdGFbMV0gLyBsZW5ndGhdO1xcbiAgICAgICAgY29uc3QgQyA9IFt4IC0gQVswXSwgeSAtIEFbMV1dO1xcbiAgICAgICAgY29uc3QgZCA9IChDWzBdICogVVswXSArIENbMV0gKiBVWzFdKSAvIE1hdGguaHlwb3QoVVsxXSwgVVswXSk7XFxuICAgICAgICBQID0gW0FbMF0gKyBVWzBdICogZCwgQVsxXSArIFVbMV0gKiBkXTtcXG4gICAgICAgIGNvbnN0IGRhID0gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5kaXN0YW5jZTJkKShQWzBdLCBQWzFdLCBBWzBdLCBBWzFdKTtcXG4gICAgICAgIGNvbnN0IGRiID0gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5kaXN0YW5jZTJkKShQWzBdLCBQWzFdLCBCWzBdLCBCWzFdKTtcXG4gICAgICAgIFAgPSBkYiA8IGRhICYmIGRhID4gbGVuZ3RoID8gQiA6IGRhIDwgZGIgJiYgZGIgPiBsZW5ndGggPyBBIDogUDtcXG4gICAgICAgIGlmIChNYXRoLmh5cG90KHkgLSBQWzFdLCB4IC0gUFswXSkgPCB0aHJlc2hvbGQpIHtcXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgICAgIH1cXG4gICAgICAgIEEgPSBCO1xcbiAgICAgICAgQiA9IGVsZW1lbnQucG9pbnRzW2kgKyAxXTtcXG4gICAgfVxcbiAgICBjb25zdCBzaGFwZSA9ICgwLF9yZW5kZXJlcl9yZW5kZXJFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uZ2V0U2hhcGVGb3JFbGVtZW50KShlbGVtZW50KTtcXG4gICAgLy8gZm9yIGZpbGxlZCBmcmVlZHJhdyBzaGFwZXMsIHN1cHBvcnRcXG4gICAgLy8gc2VsZWN0aW5nIGZyb20gaW5zaWRlXFxuICAgIGlmIChzaGFwZSAmJiBzaGFwZS5zZXRzLmxlbmd0aCkge1xcbiAgICAgICAgcmV0dXJuIGhpdFRlc3RSb3VnaFNoYXBlKHNoYXBlLCB4LCB5LCB0aHJlc2hvbGQpO1xcbiAgICB9XFxuICAgIHJldHVybiBmYWxzZTtcXG59O1xcbmNvbnN0IGhpdFRlc3RMaW5lYXIgPSAoYXJncykgPT4ge1xcbiAgICBjb25zdCB7IGVsZW1lbnQsIHRocmVzaG9sZCB9ID0gYXJncztcXG4gICAgaWYgKCEoMCxfcmVuZGVyZXJfcmVuZGVyRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmdldFNoYXBlRm9yRWxlbWVudCkoZWxlbWVudCkpIHtcXG4gICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgfVxcbiAgICBjb25zdCBbcG9pbnQsIHBvaW50QWJzLCBod2lkdGgsIGhoZWlnaHRdID0gcG9pbnRSZWxhdGl2ZVRvRWxlbWVudChhcmdzLmVsZW1lbnQsIGFyZ3MucG9pbnQpO1xcbiAgICBjb25zdCBzaWRlMSA9IF9nYWxpbmVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZXF1YXRpb24oMCwgMSwgLWhoZWlnaHQpO1xcbiAgICBjb25zdCBzaWRlMiA9IF9nYWxpbmVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZXF1YXRpb24oMSwgMCwgLWh3aWR0aCk7XFxuICAgIGlmICghaXNJbnNpZGVDaGVjayhfZ2Fwb2ludHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5kaXN0YW5jZVRvTGluZShwb2ludEFicywgc2lkZTEpLCB0aHJlc2hvbGQpIHx8XFxuICAgICAgICAhaXNJbnNpZGVDaGVjayhfZ2Fwb2ludHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5kaXN0YW5jZVRvTGluZShwb2ludEFicywgc2lkZTIpLCB0aHJlc2hvbGQpKSB7XFxuICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgIH1cXG4gICAgY29uc3QgW3JlbFgsIHJlbFldID0gX2dhcG9pbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udG9UdXBsZShwb2ludCk7XFxuICAgIGNvbnN0IHNoYXBlID0gKDAsX3JlbmRlcmVyX3JlbmRlckVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5nZXRTaGFwZUZvckVsZW1lbnQpKGVsZW1lbnQpO1xcbiAgICBpZiAoIXNoYXBlKSB7XFxuICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgIH1cXG4gICAgaWYgKGFyZ3MuY2hlY2sgPT09IGlzSW5zaWRlQ2hlY2spIHtcXG4gICAgICAgIGNvbnN0IGhpdCA9IHNoYXBlLnNvbWUoKHN1YnNoYXBlKSA9PiBoaXRUZXN0Q3VydmVJbnNpZGUoc3Vic2hhcGUsIHJlbFgsIHJlbFksIGVsZW1lbnQuc3Ryb2tlU2hhcnBuZXNzKSk7XFxuICAgICAgICBpZiAoaGl0KSB7XFxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgLy8gaGl0IHRlc3QgYWxsIFxcXCJzdWJzaGFwZXNcXFwiIG9mIHRoZSBsaW5lYXIgZWxlbWVudFxcbiAgICByZXR1cm4gc2hhcGUuc29tZSgoc3Vic2hhcGUpID0+IGhpdFRlc3RSb3VnaFNoYXBlKHN1YnNoYXBlLCByZWxYLCByZWxZLCB0aHJlc2hvbGQpKTtcXG59O1xcbi8vIFJldHVybnM6XFxuLy8gICAxLiB0aGUgcG9pbnQgcmVsYXRpdmUgdG8gdGhlIGVsZW1lbnRzICh4LCB5KSBwb3NpdGlvblxcbi8vICAgMi4gdGhlIHBvaW50IHJlbGF0aXZlIHRvIHRoZSBlbGVtZW50J3MgY2VudGVyIHdpdGggcG9zaXRpdmUgKHgsIHkpXFxuLy8gICAzLiBoYWxmIGVsZW1lbnQgd2lkdGhcXG4vLyAgIDQuIGhhbGYgZWxlbWVudCBoZWlnaHRcXG4vL1xcbi8vIE5vdGUgdGhhdCBmb3IgbGluZWFyIGVsZW1lbnRzIHRoZSAoeCwgeSkgcG9zaXRpb24gaXMgbm90IGF0IHRoZVxcbi8vIHRvcCByaWdodCBjb3JuZXIgb2YgdGhlaXIgYm91bmRhcnkuXFxuLy9cXG4vLyBSZWN0YW5nbGVzLCBkaWFtb25kcyBhbmQgZWxsaXBzZXMgYXJlIHN5bW1ldHJpY2FsIG92ZXIgYXhlcyxcXG4vLyBhbmQgb3RoZXIgZWxlbWVudHMgaGF2ZSBhIHJlY3Rhbmd1bGFyIGJvdW5kYXJ5LFxcbi8vIHNvIHdlIG9ubHkgbmVlZCB0byBwZXJmb3JtIGhpdCB0ZXN0cyBmb3IgdGhlIHBvc2l0aXZlIHF1YWRyYW50LlxcbmNvbnN0IHBvaW50UmVsYXRpdmVUb0VsZW1lbnQgPSAoZWxlbWVudCwgcG9pbnRUdXBsZSkgPT4ge1xcbiAgICBjb25zdCBwb2ludCA9IF9nYXBvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmZyb20ocG9pbnRUdXBsZSk7XFxuICAgIGNvbnN0IGVsZW1lbnRDb29yZHMgPSAoMCxfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzKShlbGVtZW50KTtcXG4gICAgY29uc3QgY2VudGVyID0gY29vcmRzQ2VudGVyKGVsZW1lbnRDb29yZHMpO1xcbiAgICAvLyBHQSBoYXMgYW5nbGUgb3JpZW50YXRpb24gb3Bwb3NpdGUgdG8gYHJvdGF0ZWBcXG4gICAgY29uc3Qgcm90YXRlID0gX2dhdHJhbnNmb3Jtc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnJvdGF0aW9uKGNlbnRlciwgZWxlbWVudC5hbmdsZSk7XFxuICAgIGNvbnN0IHBvaW50Um90YXRlZCA9IF9nYXRyYW5zZm9ybXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hcHBseShyb3RhdGUsIHBvaW50KTtcXG4gICAgY29uc3QgcG9pbnRSZWxUb0NlbnRlciA9IF9nYV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnN1Yihwb2ludFJvdGF0ZWQsIF9nYWRpcmVjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5mcm9tKGNlbnRlcikpO1xcbiAgICBjb25zdCBwb2ludFJlbFRvQ2VudGVyQWJzID0gX2dhcG9pbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uYWJzKHBvaW50UmVsVG9DZW50ZXIpO1xcbiAgICBjb25zdCBlbGVtZW50UG9zID0gX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ub2Zmc2V0KGVsZW1lbnQueCwgZWxlbWVudC55KTtcXG4gICAgY29uc3QgcG9pbnRSZWxUb1BvcyA9IF9nYV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnN1Yihwb2ludFJvdGF0ZWQsIGVsZW1lbnRQb3MpO1xcbiAgICBjb25zdCBbYXgsIGF5LCBieCwgYnldID0gZWxlbWVudENvb3JkcztcXG4gICAgY29uc3QgaGFsZldpZHRoID0gKGJ4IC0gYXgpIC8gMjtcXG4gICAgY29uc3QgaGFsZkhlaWdodCA9IChieSAtIGF5KSAvIDI7XFxuICAgIHJldHVybiBbcG9pbnRSZWxUb1BvcywgcG9pbnRSZWxUb0NlbnRlckFicywgaGFsZldpZHRoLCBoYWxmSGVpZ2h0XTtcXG59O1xcbi8vIFJldHVybnMgcG9pbnQgaW4gYWJzb2x1dGUgY29vcmRpbmF0ZXNcXG5jb25zdCBwb2ludEluQWJzb2x1dGVDb29yZHMgPSAoZWxlbWVudCwgXFxuLy8gUG9pbnQgcmVsYXRpdmUgdG8gdGhlIGVsZW1lbnQgcG9zaXRpb25cXG5wb2ludCkgPT4ge1xcbiAgICBjb25zdCBbeCwgeV0gPSBwb2ludDtcXG4gICAgY29uc3QgW3gxLCB5MSwgeDIsIHkyXSA9ICgwLF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5nZXRFbGVtZW50QWJzb2x1dGVDb29yZHMpKGVsZW1lbnQpO1xcbiAgICBjb25zdCBjeCA9ICh4MiAtIHgxKSAvIDI7XFxuICAgIGNvbnN0IGN5ID0gKHkyIC0geTEpIC8gMjtcXG4gICAgY29uc3QgW3JvdGF0ZWRYLCByb3RhdGVkWV0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnJvdGF0ZSkoeCwgeSwgY3gsIGN5LCBlbGVtZW50LmFuZ2xlKTtcXG4gICAgcmV0dXJuIFtlbGVtZW50LnggKyByb3RhdGVkWCwgZWxlbWVudC55ICsgcm90YXRlZFldO1xcbn07XFxuY29uc3QgcmVsYXRpdml6YXRpb25Ub0VsZW1lbnRDZW50ZXIgPSAoZWxlbWVudCkgPT4ge1xcbiAgICBjb25zdCBlbGVtZW50Q29vcmRzID0gKDAsX2JvdW5kc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmdldEVsZW1lbnRBYnNvbHV0ZUNvb3JkcykoZWxlbWVudCk7XFxuICAgIGNvbnN0IGNlbnRlciA9IGNvb3Jkc0NlbnRlcihlbGVtZW50Q29vcmRzKTtcXG4gICAgLy8gR0EgaGFzIGFuZ2xlIG9yaWVudGF0aW9uIG9wcG9zaXRlIHRvIGByb3RhdGVgXFxuICAgIGNvbnN0IHJvdGF0ZSA9IF9nYXRyYW5zZm9ybXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5yb3RhdGlvbihjZW50ZXIsIGVsZW1lbnQuYW5nbGUpO1xcbiAgICBjb25zdCB0cmFuc2xhdGUgPSBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5yZXZlcnNlKF9nYXRyYW5zZm9ybXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50cmFuc2xhdGlvbihfZ2FkaXJlY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZnJvbShjZW50ZXIpKSk7XFxuICAgIHJldHVybiBfZ2F0cmFuc2Zvcm1zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uY29tcG9zZShyb3RhdGUsIHRyYW5zbGF0ZSk7XFxufTtcXG5jb25zdCBjb29yZHNDZW50ZXIgPSAoW2F4LCBheSwgYngsIGJ5XSkgPT4ge1xcbiAgICByZXR1cm4gX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucG9pbnQoKGF4ICsgYngpIC8gMiwgKGF5ICsgYnkpIC8gMik7XFxufTtcXG4vLyBUaGUgZm9jdXMgZGlzdGFuY2UgaXMgdGhlIG9yaWVudGVkIHJhdGlvIGJldHdlZW4gdGhlIHNpemUgb2ZcXG4vLyB0aGUgYGVsZW1lbnRgIGFuZCB0aGUgXFxcImZvY3VzIGltYWdlXFxcIiBvZiB0aGUgZWxlbWVudCBvbiB3aGljaFxcbi8vIGFsbCBmb2N1cyBwb2ludHMgbGllLCBzbyBpdCdzIGEgbnVtYmVyIGJldHdlZW4gLTEgYW5kIDEuXFxuLy8gVGhlIGxpbmUgZ29pbmcgdGhyb3VnaCBgYWAgYW5kIGBiYCBpcyBhIHRhbmdlbnQgdG8gdGhlIFxcXCJmb2N1cyBpbWFnZVxcXCJcXG4vLyBvZiB0aGUgZWxlbWVudC5cXG5jb25zdCBkZXRlcm1pbmVGb2N1c0Rpc3RhbmNlID0gKGVsZW1lbnQsIFxcbi8vIFBvaW50IG9uIHRoZSBsaW5lLCBpbiBhYnNvbHV0ZSBjb29yZGluYXRlc1xcbmEsIFxcbi8vIEFub3RoZXIgcG9pbnQgb24gdGhlIGxpbmUsIGluIGFic29sdXRlIGNvb3JkaW5hdGVzIChjbG9zZXIgdG8gZWxlbWVudClcXG5iKSA9PiB7XFxuICAgIGNvbnN0IHJlbGF0ZVRvQ2VudGVyID0gcmVsYXRpdml6YXRpb25Ub0VsZW1lbnRDZW50ZXIoZWxlbWVudCk7XFxuICAgIGNvbnN0IGFSZWwgPSBfZ2F0cmFuc2Zvcm1zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYXBwbHkocmVsYXRlVG9DZW50ZXIsIF9nYXBvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmZyb20oYSkpO1xcbiAgICBjb25zdCBiUmVsID0gX2dhdHJhbnNmb3Jtc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFwcGx5KHJlbGF0ZVRvQ2VudGVyLCBfZ2Fwb2ludHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5mcm9tKGIpKTtcXG4gICAgY29uc3QgbGluZSA9IF9nYWxpbmVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udGhyb3VnaChhUmVsLCBiUmVsKTtcXG4gICAgY29uc3QgcSA9IGVsZW1lbnQuaGVpZ2h0IC8gZWxlbWVudC53aWR0aDtcXG4gICAgY29uc3QgaHdpZHRoID0gZWxlbWVudC53aWR0aCAvIDI7XFxuICAgIGNvbnN0IGhoZWlnaHQgPSBlbGVtZW50LmhlaWdodCAvIDI7XFxuICAgIGNvbnN0IG4gPSBsaW5lWzJdO1xcbiAgICBjb25zdCBtID0gbGluZVszXTtcXG4gICAgY29uc3QgYyA9IGxpbmVbMV07XFxuICAgIGNvbnN0IG1hYnMgPSBNYXRoLmFicyhtKTtcXG4gICAgY29uc3QgbmFicyA9IE1hdGguYWJzKG4pO1xcbiAgICBzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xcbiAgICAgICAgY2FzZSBcXFwicmVjdGFuZ2xlXFxcIjpcXG4gICAgICAgIGNhc2UgXFxcImltYWdlXFxcIjpcXG4gICAgICAgIGNhc2UgXFxcInRleHRcXFwiOlxcbiAgICAgICAgICAgIHJldHVybiBjIC8gKGh3aWR0aCAqIChuYWJzICsgcSAqIG1hYnMpKTtcXG4gICAgICAgIGNhc2UgXFxcImRpYW1vbmRcXFwiOlxcbiAgICAgICAgICAgIHJldHVybiBtYWJzIDwgbmFicyA/IGMgLyAobmFicyAqIGh3aWR0aCkgOiBjIC8gKG1hYnMgKiBoaGVpZ2h0KTtcXG4gICAgICAgIGNhc2UgXFxcImVsbGlwc2VcXFwiOlxcbiAgICAgICAgICAgIHJldHVybiBjIC8gKGh3aWR0aCAqIE1hdGguc3FydChNYXRoLnBvdyhuLCAyKSArIE1hdGgucG93KHEsIDIpICogTWF0aC5wb3cobSwgMikpKTtcXG4gICAgfVxcbn07XFxuY29uc3QgZGV0ZXJtaW5lRm9jdXNQb2ludCA9IChlbGVtZW50LCBcXG4vLyBUaGUgb3JpZW50ZWQsIHJlbGF0aXZlIGRpc3RhbmNlIGZyb20gdGhlIGNlbnRlciBvZiBgZWxlbWVudGAgb2YgdGhlXFxuLy8gcmV0dXJuZWQgZm9jdXNQb2ludFxcbmZvY3VzLCBhZGplY2VudFBvaW50KSA9PiB7XFxuICAgIGlmIChmb2N1cyA9PT0gMCkge1xcbiAgICAgICAgY29uc3QgZWxlbWVudENvb3JkcyA9ICgwLF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5nZXRFbGVtZW50QWJzb2x1dGVDb29yZHMpKGVsZW1lbnQpO1xcbiAgICAgICAgY29uc3QgY2VudGVyID0gY29vcmRzQ2VudGVyKGVsZW1lbnRDb29yZHMpO1xcbiAgICAgICAgcmV0dXJuIF9nYXBvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnRvVHVwbGUoY2VudGVyKTtcXG4gICAgfVxcbiAgICBjb25zdCByZWxhdGVUb0NlbnRlciA9IHJlbGF0aXZpemF0aW9uVG9FbGVtZW50Q2VudGVyKGVsZW1lbnQpO1xcbiAgICBjb25zdCBhZGplY2VudFBvaW50UmVsID0gX2dhdHJhbnNmb3Jtc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFwcGx5KHJlbGF0ZVRvQ2VudGVyLCBfZ2Fwb2ludHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5mcm9tKGFkamVjZW50UG9pbnQpKTtcXG4gICAgY29uc3QgcmV2ZXJzZVJlbGF0ZVRvQ2VudGVyID0gX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucmV2ZXJzZShyZWxhdGVUb0NlbnRlcik7XFxuICAgIGxldCBwb2ludDtcXG4gICAgc3dpdGNoIChlbGVtZW50LnR5cGUpIHtcXG4gICAgICAgIGNhc2UgXFxcInJlY3RhbmdsZVxcXCI6XFxuICAgICAgICBjYXNlIFxcXCJpbWFnZVxcXCI6XFxuICAgICAgICBjYXNlIFxcXCJ0ZXh0XFxcIjpcXG4gICAgICAgIGNhc2UgXFxcImRpYW1vbmRcXFwiOlxcbiAgICAgICAgICAgIHBvaW50ID0gZmluZEZvY3VzUG9pbnRGb3JSZWN0YW5ndWxhcnMoZWxlbWVudCwgZm9jdXMsIGFkamVjZW50UG9pbnRSZWwpO1xcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgY2FzZSBcXFwiZWxsaXBzZVxcXCI6XFxuICAgICAgICAgICAgcG9pbnQgPSBmaW5kRm9jdXNQb2ludEZvckVsbGlwc2UoZWxlbWVudCwgZm9jdXMsIGFkamVjZW50UG9pbnRSZWwpO1xcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICB9XFxuICAgIHJldHVybiBfZ2Fwb2ludHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50b1R1cGxlKF9nYXRyYW5zZm9ybXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hcHBseShyZXZlcnNlUmVsYXRlVG9DZW50ZXIsIHBvaW50KSk7XFxufTtcXG4vLyBSZXR1cm5zIDIgb3IgMCBpbnRlcnNlY3Rpb24gcG9pbnRzIGJldHdlZW4gbGluZSBnb2luZyB0aHJvdWdoIGBhYCBhbmQgYGJgXFxuLy8gYW5kIHRoZSBgZWxlbWVudGAsIGluIGFzY2VuZGluZyBvcmRlciBvZiBkaXN0YW5jZSBmcm9tIGBhYC5cXG5jb25zdCBpbnRlcnNlY3RFbGVtZW50V2l0aExpbmUgPSAoZWxlbWVudCwgXFxuLy8gUG9pbnQgb24gdGhlIGxpbmUsIGluIGFic29sdXRlIGNvb3JkaW5hdGVzXFxuYSwgXFxuLy8gQW5vdGhlciBwb2ludCBvbiB0aGUgbGluZSwgaW4gYWJzb2x1dGUgY29vcmRpbmF0ZXNcXG5iLCBcXG4vLyBJZiBnaXZlbiwgdGhlIGVsZW1lbnQgaXMgaW5mbGF0ZWQgYnkgdGhpcyB2YWx1ZVxcbmdhcCA9IDApID0+IHtcXG4gICAgY29uc3QgcmVsYXRlVG9DZW50ZXIgPSByZWxhdGl2aXphdGlvblRvRWxlbWVudENlbnRlcihlbGVtZW50KTtcXG4gICAgY29uc3QgYVJlbCA9IF9nYXRyYW5zZm9ybXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hcHBseShyZWxhdGVUb0NlbnRlciwgX2dhcG9pbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZnJvbShhKSk7XFxuICAgIGNvbnN0IGJSZWwgPSBfZ2F0cmFuc2Zvcm1zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYXBwbHkocmVsYXRlVG9DZW50ZXIsIF9nYXBvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmZyb20oYikpO1xcbiAgICBjb25zdCBsaW5lID0gX2dhbGluZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy50aHJvdWdoKGFSZWwsIGJSZWwpO1xcbiAgICBjb25zdCByZXZlcnNlUmVsYXRlVG9DZW50ZXIgPSBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5yZXZlcnNlKHJlbGF0ZVRvQ2VudGVyKTtcXG4gICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IGdldFNvcnRlZEVsZW1lbnRMaW5lSW50ZXJzZWN0aW9ucyhlbGVtZW50LCBsaW5lLCBhUmVsLCBnYXApO1xcbiAgICByZXR1cm4gaW50ZXJzZWN0aW9ucy5tYXAoKHBvaW50KSA9PiBfZ2Fwb2ludHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50b1R1cGxlKF9nYXRyYW5zZm9ybXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hcHBseShyZXZlcnNlUmVsYXRlVG9DZW50ZXIsIHBvaW50KSkpO1xcbn07XFxuY29uc3QgZ2V0U29ydGVkRWxlbWVudExpbmVJbnRlcnNlY3Rpb25zID0gKGVsZW1lbnQsIFxcbi8vIFJlbGF0aXZlIHRvIGVsZW1lbnQgY2VudGVyXFxubGluZSwgXFxuLy8gUmVsYXRpdmUgdG8gZWxlbWVudCBjZW50ZXJcXG5uZWFyUG9pbnQsIGdhcCA9IDApID0+IHtcXG4gICAgbGV0IGludGVyc2VjdGlvbnM7XFxuICAgIHN3aXRjaCAoZWxlbWVudC50eXBlKSB7XFxuICAgICAgICBjYXNlIFxcXCJyZWN0YW5nbGVcXFwiOlxcbiAgICAgICAgY2FzZSBcXFwiaW1hZ2VcXFwiOlxcbiAgICAgICAgY2FzZSBcXFwidGV4dFxcXCI6XFxuICAgICAgICBjYXNlIFxcXCJkaWFtb25kXFxcIjpcXG4gICAgICAgICAgICBjb25zdCBjb3JuZXJzID0gZ2V0Q29ybmVycyhlbGVtZW50KTtcXG4gICAgICAgICAgICBpbnRlcnNlY3Rpb25zID0gY29ybmVyc1xcbiAgICAgICAgICAgICAgICAuZmxhdE1hcCgocG9pbnQsIGkpID0+IHtcXG4gICAgICAgICAgICAgICAgY29uc3QgZWRnZSA9IFtwb2ludCwgY29ybmVyc1soaSArIDEpICUgNF1dO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJzZWN0U2VnbWVudChsaW5lLCBvZmZzZXRTZWdtZW50KGVkZ2UsIGdhcCkpO1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgIC5jb25jYXQoY29ybmVycy5mbGF0TWFwKChwb2ludCkgPT4gZ2V0Q2lyY2xlSW50ZXJzZWN0aW9ucyhwb2ludCwgZ2FwLCBsaW5lKSkpO1xcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgY2FzZSBcXFwiZWxsaXBzZVxcXCI6XFxuICAgICAgICAgICAgaW50ZXJzZWN0aW9ucyA9IGdldEVsbGlwc2VJbnRlcnNlY3Rpb25zKGVsZW1lbnQsIGdhcCwgbGluZSk7XFxuICAgICAgICAgICAgYnJlYWs7XFxuICAgIH1cXG4gICAgaWYgKGludGVyc2VjdGlvbnMubGVuZ3RoIDwgMikge1xcbiAgICAgICAgLy8gSWdub3JlIHRoZSBcXFwiZWRnZVxcXCIgY2FzZSBvZiBvbmx5IGludGVyc2VjdGluZyB3aXRoIGEgc2luZ2xlIGNvcm5lclxcbiAgICAgICAgcmV0dXJuIFtdO1xcbiAgICB9XFxuICAgIGNvbnN0IHNvcnRlZEludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zLnNvcnQoKGkxLCBpMikgPT4gX2dhcG9pbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZGlzdGFuY2UoaTEsIG5lYXJQb2ludCkgLSBfZ2Fwb2ludHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5kaXN0YW5jZShpMiwgbmVhclBvaW50KSk7XFxuICAgIHJldHVybiBbXFxuICAgICAgICBzb3J0ZWRJbnRlcnNlY3Rpb25zWzBdLFxcbiAgICAgICAgc29ydGVkSW50ZXJzZWN0aW9uc1tzb3J0ZWRJbnRlcnNlY3Rpb25zLmxlbmd0aCAtIDFdLFxcbiAgICBdO1xcbn07XFxuY29uc3QgZ2V0Q29ybmVycyA9IChlbGVtZW50LCBzY2FsZSA9IDEpID0+IHtcXG4gICAgY29uc3QgaHggPSAoc2NhbGUgKiBlbGVtZW50LndpZHRoKSAvIDI7XFxuICAgIGNvbnN0IGh5ID0gKHNjYWxlICogZWxlbWVudC5oZWlnaHQpIC8gMjtcXG4gICAgc3dpdGNoIChlbGVtZW50LnR5cGUpIHtcXG4gICAgICAgIGNhc2UgXFxcInJlY3RhbmdsZVxcXCI6XFxuICAgICAgICBjYXNlIFxcXCJpbWFnZVxcXCI6XFxuICAgICAgICBjYXNlIFxcXCJ0ZXh0XFxcIjpcXG4gICAgICAgICAgICByZXR1cm4gW1xcbiAgICAgICAgICAgICAgICBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5wb2ludChoeCwgaHkpLFxcbiAgICAgICAgICAgICAgICBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5wb2ludChoeCwgLWh5KSxcXG4gICAgICAgICAgICAgICAgX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucG9pbnQoLWh4LCAtaHkpLFxcbiAgICAgICAgICAgICAgICBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5wb2ludCgtaHgsIGh5KSxcXG4gICAgICAgICAgICBdO1xcbiAgICAgICAgY2FzZSBcXFwiZGlhbW9uZFxcXCI6XFxuICAgICAgICAgICAgcmV0dXJuIFtcXG4gICAgICAgICAgICAgICAgX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucG9pbnQoMCwgaHkpLFxcbiAgICAgICAgICAgICAgICBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5wb2ludChoeCwgMCksXFxuICAgICAgICAgICAgICAgIF9nYV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnBvaW50KDAsIC1oeSksXFxuICAgICAgICAgICAgICAgIF9nYV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnBvaW50KC1oeCwgMCksXFxuICAgICAgICAgICAgXTtcXG4gICAgfVxcbn07XFxuLy8gUmV0dXJucyBpbnRlcnNlY3Rpb24gb2YgYGxpbmVgIHdpdGggYHNlZ21lbnRgLCB3aXRoIGBzZWdtZW50YCBtb3ZlZCBieVxcbi8vIGBnYXBgIGluIGl0cyBwb2xhciBkaXJlY3Rpb24uXFxuLy8gSWYgaW50ZXJzZWN0aW9uIGNvbmluY2lkZXMgd2l0aCBzZWNvbmQgc2VnbWVudCBwb2ludCByZXR1cm5zIGVtcHR5IGFycmF5LlxcbmNvbnN0IGludGVyc2VjdFNlZ21lbnQgPSAobGluZSwgc2VnbWVudCkgPT4ge1xcbiAgICBjb25zdCBbYSwgYl0gPSBzZWdtZW50O1xcbiAgICBjb25zdCBhRGlzdCA9IF9nYXBvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmRpc3RhbmNlVG9MaW5lKGEsIGxpbmUpO1xcbiAgICBjb25zdCBiRGlzdCA9IF9nYXBvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmRpc3RhbmNlVG9MaW5lKGIsIGxpbmUpO1xcbiAgICBpZiAoYURpc3QgKiBiRGlzdCA+PSAwKSB7XFxuICAgICAgICAvLyBUaGUgaW50ZXJzZWN0aW9uIGlzIG91dHNpZGUgc2VnbWVudCBgKGEsIGIpYFxcbiAgICAgICAgcmV0dXJuIFtdO1xcbiAgICB9XFxuICAgIHJldHVybiBbX2dhcG9pbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaW50ZXJzZWN0KGxpbmUsIF9nYWxpbmVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udGhyb3VnaChhLCBiKSldO1xcbn07XFxuY29uc3Qgb2Zmc2V0U2VnbWVudCA9IChzZWdtZW50LCBkaXN0YW5jZSkgPT4ge1xcbiAgICBjb25zdCBbYSwgYl0gPSBzZWdtZW50O1xcbiAgICBjb25zdCBvZmZzZXQgPSBfZ2F0cmFuc2Zvcm1zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udHJhbnNsYXRpb25PcnRob2dvbmFsKF9nYWRpcmVjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5mcm9tVG8oYSwgYiksIGRpc3RhbmNlKTtcXG4gICAgcmV0dXJuIFtfZ2F0cmFuc2Zvcm1zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYXBwbHkob2Zmc2V0LCBhKSwgX2dhdHJhbnNmb3Jtc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFwcGx5KG9mZnNldCwgYildO1xcbn07XFxuY29uc3QgZ2V0RWxsaXBzZUludGVyc2VjdGlvbnMgPSAoZWxlbWVudCwgZ2FwLCBsaW5lKSA9PiB7XFxuICAgIGNvbnN0IGEgPSBlbGVtZW50LndpZHRoIC8gMiArIGdhcDtcXG4gICAgY29uc3QgYiA9IGVsZW1lbnQuaGVpZ2h0IC8gMiArIGdhcDtcXG4gICAgY29uc3QgbSA9IGxpbmVbMl07XFxuICAgIGNvbnN0IG4gPSBsaW5lWzNdO1xcbiAgICBjb25zdCBjID0gbGluZVsxXTtcXG4gICAgY29uc3Qgc3F1YXJlcyA9IGEgKiBhICogbSAqIG0gKyBiICogYiAqIG4gKiBuO1xcbiAgICBjb25zdCBkaXNjciA9IHNxdWFyZXMgLSBjICogYztcXG4gICAgaWYgKHNxdWFyZXMgPT09IDAgfHwgZGlzY3IgPD0gMCkge1xcbiAgICAgICAgcmV0dXJuIFtdO1xcbiAgICB9XFxuICAgIGNvbnN0IGRpc2NyUm9vdCA9IE1hdGguc3FydChkaXNjcik7XFxuICAgIGNvbnN0IHhuID0gLWEgKiBhICogbSAqIGM7XFxuICAgIGNvbnN0IHluID0gLWIgKiBiICogbiAqIGM7XFxuICAgIHJldHVybiBbXFxuICAgICAgICBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5wb2ludCgoeG4gKyBhICogYiAqIG4gKiBkaXNjclJvb3QpIC8gc3F1YXJlcywgKHluIC0gYSAqIGIgKiBtICogZGlzY3JSb290KSAvIHNxdWFyZXMpLFxcbiAgICAgICAgX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucG9pbnQoKHhuIC0gYSAqIGIgKiBuICogZGlzY3JSb290KSAvIHNxdWFyZXMsICh5biArIGEgKiBiICogbSAqIGRpc2NyUm9vdCkgLyBzcXVhcmVzKSxcXG4gICAgXTtcXG59O1xcbmNvbnN0IGdldENpcmNsZUludGVyc2VjdGlvbnMgPSAoY2VudGVyLCByYWRpdXMsIGxpbmUpID0+IHtcXG4gICAgaWYgKHJhZGl1cyA9PT0gMCkge1xcbiAgICAgICAgcmV0dXJuIF9nYXBvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmRpc3RhbmNlVG9MaW5lKGxpbmUsIGNlbnRlcikgPT09IDAgPyBbY2VudGVyXSA6IFtdO1xcbiAgICB9XFxuICAgIGNvbnN0IG0gPSBsaW5lWzJdO1xcbiAgICBjb25zdCBuID0gbGluZVszXTtcXG4gICAgY29uc3QgYyA9IGxpbmVbMV07XFxuICAgIGNvbnN0IFthLCBiXSA9IF9nYXBvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnRvVHVwbGUoY2VudGVyKTtcXG4gICAgY29uc3QgciA9IHJhZGl1cztcXG4gICAgY29uc3Qgc3F1YXJlcyA9IG0gKiBtICsgbiAqIG47XFxuICAgIGNvbnN0IGRpc2NyID0gciAqIHIgKiBzcXVhcmVzIC0gTWF0aC5wb3coKG0gKiBhICsgbiAqIGIgKyBjKSwgMik7XFxuICAgIGlmIChzcXVhcmVzID09PSAwIHx8IGRpc2NyIDw9IDApIHtcXG4gICAgICAgIHJldHVybiBbXTtcXG4gICAgfVxcbiAgICBjb25zdCBkaXNjclJvb3QgPSBNYXRoLnNxcnQoZGlzY3IpO1xcbiAgICBjb25zdCB4biA9IGEgKiBuICogbiAtIGIgKiBtICogbiAtIG0gKiBjO1xcbiAgICBjb25zdCB5biA9IGIgKiBtICogbSAtIGEgKiBtICogbiAtIG4gKiBjO1xcbiAgICByZXR1cm4gW1xcbiAgICAgICAgX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucG9pbnQoKHhuICsgbiAqIGRpc2NyUm9vdCkgLyBzcXVhcmVzLCAoeW4gLSBtICogZGlzY3JSb290KSAvIHNxdWFyZXMpLFxcbiAgICAgICAgX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucG9pbnQoKHhuIC0gbiAqIGRpc2NyUm9vdCkgLyBzcXVhcmVzLCAoeW4gKyBtICogZGlzY3JSb290KSAvIHNxdWFyZXMpLFxcbiAgICBdO1xcbn07XFxuLy8gVGhlIGZvY3VzIHBvaW50IGlzIHRoZSB0YW5nZW50IHBvaW50IG9mIHRoZSBcXFwiZm9jdXMgaW1hZ2VcXFwiIG9mIHRoZVxcbi8vIGBlbGVtZW50YCwgd2hlcmUgdGhlIHRhbmdlbnQgZ29lcyB0aHJvdWdoIGBwb2ludGAuXFxuY29uc3QgZmluZEZvY3VzUG9pbnRGb3JFbGxpcHNlID0gKGVsbGlwc2UsIFxcbi8vIEJldHdlZW4gLTEgYW5kIDEgKG5vdCAwKSB0aGUgcmVsYXRpdmUgc2l6ZSBvZiB0aGUgXFxcImZvY3VzIGltYWdlXFxcIiBvZlxcbi8vIHRoZSBlbGVtZW50IG9uIHdoaWNoIHRoZSBmb2N1cyBwb2ludCBsaWVzXFxucmVsYXRpdmVEaXN0YW5jZSwgXFxuLy8gVGhlIHBvaW50IGZvciB3aGljaCB3ZSdyZSB0cnlpbmcgdG8gZmluZCB0aGUgZm9jdXMgcG9pbnQsIHJlbGF0aXZlXFxuLy8gdG8gdGhlIGVsbGlwc2UgY2VudGVyLlxcbnBvaW50KSA9PiB7XFxuICAgIGNvbnN0IHJlbGF0aXZlRGlzdGFuY2VBYnMgPSBNYXRoLmFicyhyZWxhdGl2ZURpc3RhbmNlKTtcXG4gICAgY29uc3QgYSA9IChlbGxpcHNlLndpZHRoICogcmVsYXRpdmVEaXN0YW5jZUFicykgLyAyO1xcbiAgICBjb25zdCBiID0gKGVsbGlwc2UuaGVpZ2h0ICogcmVsYXRpdmVEaXN0YW5jZUFicykgLyAyO1xcbiAgICBjb25zdCBvcmllbnRhdGlvbiA9IE1hdGguc2lnbihyZWxhdGl2ZURpc3RhbmNlKTtcXG4gICAgY29uc3QgW3B4LCBweW9dID0gX2dhcG9pbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udG9UdXBsZShwb2ludCk7XFxuICAgIC8vIFRoZSBjYWxjdWxhdGlvbiBiZWxvdyBjYW4ndCBoYW5kbGUgcHkgPSAwXFxuICAgIGNvbnN0IHB5ID0gcHlvID09PSAwID8gMC4wMDAxIDogcHlvO1xcbiAgICBjb25zdCBzcXVhcmVzID0gTWF0aC5wb3cocHgsIDIpICogTWF0aC5wb3coYiwgMikgKyBNYXRoLnBvdyhweSwgMikgKiBNYXRoLnBvdyhhLCAyKTtcXG4gICAgLy8gVGFuZ2VudCBteCArIG55ICsgMSA9IDBcXG4gICAgY29uc3QgbSA9ICgtcHggKiBNYXRoLnBvdyhiLCAyKSArXFxuICAgICAgICBvcmllbnRhdGlvbiAqIHB5ICogTWF0aC5zcXJ0KE1hdGgubWF4KDAsIHNxdWFyZXMgLSBNYXRoLnBvdyhhLCAyKSAqIE1hdGgucG93KGIsIDIpKSkpIC9cXG4gICAgICAgIHNxdWFyZXM7XFxuICAgIGNvbnN0IG4gPSAoLW0gKiBweCAtIDEpIC8gcHk7XFxuICAgIGNvbnN0IHggPSAtKE1hdGgucG93KGEsIDIpICogbSkgLyAoTWF0aC5wb3cobiwgMikgKiBNYXRoLnBvdyhiLCAyKSArIE1hdGgucG93KG0sIDIpICogTWF0aC5wb3coYSwgMikpO1xcbiAgICByZXR1cm4gX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucG9pbnQoeCwgKC1tICogeCAtIDEpIC8gbik7XFxufTtcXG5jb25zdCBmaW5kRm9jdXNQb2ludEZvclJlY3Rhbmd1bGFycyA9IChlbGVtZW50LCBcXG4vLyBCZXR3ZWVuIC0xIGFuZCAxIGZvciBob3cgZmFyIGF3YXkgc2hvdWxkIHRoZSBmb2N1cyBwb2ludCBiZSByZWxhdGl2ZVxcbi8vIHRvIHRoZSBzaXplIG9mIHRoZSBlbGVtZW50LiBTaWduIGRldGVybWluZXMgb3JpZW50YXRpb24uXFxucmVsYXRpdmVEaXN0YW5jZSwgXFxuLy8gVGhlIHBvaW50IGZvciB3aGljaCB3ZSdyZSB0cnlpbmcgdG8gZmluZCB0aGUgZm9jdXMgcG9pbnQsIHJlbGF0aXZlXFxuLy8gdG8gdGhlIGVsZW1lbnQgY2VudGVyLlxcbnBvaW50KSA9PiB7XFxuICAgIGNvbnN0IHJlbGF0aXZlRGlzdGFuY2VBYnMgPSBNYXRoLmFicyhyZWxhdGl2ZURpc3RhbmNlKTtcXG4gICAgY29uc3Qgb3JpZW50YXRpb24gPSBNYXRoLnNpZ24ocmVsYXRpdmVEaXN0YW5jZSk7XFxuICAgIGNvbnN0IGNvcm5lcnMgPSBnZXRDb3JuZXJzKGVsZW1lbnQsIHJlbGF0aXZlRGlzdGFuY2VBYnMpO1xcbiAgICBsZXQgbWF4RGlzdGFuY2UgPSAwO1xcbiAgICBsZXQgdGFuZ2VudFBvaW50ID0gbnVsbDtcXG4gICAgY29ybmVycy5mb3JFYWNoKChjb3JuZXIpID0+IHtcXG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gb3JpZW50YXRpb24gKiBfZ2FsaW5lc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnRocm91Z2gocG9pbnQsIGNvcm5lcilbMV07XFxuICAgICAgICBpZiAoZGlzdGFuY2UgPiBtYXhEaXN0YW5jZSkge1xcbiAgICAgICAgICAgIG1heERpc3RhbmNlID0gZGlzdGFuY2U7XFxuICAgICAgICAgICAgdGFuZ2VudFBvaW50ID0gY29ybmVyO1xcbiAgICAgICAgfVxcbiAgICB9KTtcXG4gICAgcmV0dXJuIHRhbmdlbnRQb2ludDtcXG59O1xcbmNvbnN0IHBvaW50SW5CZXppZXJFcXVhdGlvbiA9IChwMCwgcDEsIHAyLCBwMywgW214LCBteV0sIGxpbmVUaHJlc2hvbGQpID0+IHtcXG4gICAgLy8gQih0KSA9IHAwICogKDEtdCleMyArIDNwMSAqIHQgKiAoMS10KV4yICsgM3AyICogdF4yICogKDEtdCkgKyBwMyAqIHReM1xcbiAgICBjb25zdCBlcXVhdGlvbiA9ICh0LCBpZHgpID0+IE1hdGgucG93KDEgLSB0LCAzKSAqIHAzW2lkeF0gK1xcbiAgICAgICAgMyAqIHQgKiBNYXRoLnBvdygxIC0gdCwgMikgKiBwMltpZHhdICtcXG4gICAgICAgIDMgKiBNYXRoLnBvdyh0LCAyKSAqICgxIC0gdCkgKiBwMVtpZHhdICtcXG4gICAgICAgIHAwW2lkeF0gKiBNYXRoLnBvdyh0LCAzKTtcXG4gICAgLy8gZ28gdGhyb3VnaCB0IGluIGluY3JlbWVudHMgb2YgMC4wMVxcbiAgICBsZXQgdCA9IDA7XFxuICAgIHdoaWxlICh0IDw9IDEuMCkge1xcbiAgICAgICAgY29uc3QgdHggPSBlcXVhdGlvbih0LCAwKTtcXG4gICAgICAgIGNvbnN0IHR5ID0gZXF1YXRpb24odCwgMSk7XFxuICAgICAgICBjb25zdCBkaWZmID0gTWF0aC5zcXJ0KE1hdGgucG93KHR4IC0gbXgsIDIpICsgTWF0aC5wb3codHkgLSBteSwgMikpO1xcbiAgICAgICAgaWYgKGRpZmYgPCBsaW5lVGhyZXNob2xkKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgICB9XFxuICAgICAgICB0ICs9IDAuMDE7XFxuICAgIH1cXG4gICAgcmV0dXJuIGZhbHNlO1xcbn07XFxuY29uc3QgaGl0VGVzdEN1cnZlSW5zaWRlID0gKGRyYXdhYmxlLCB4LCB5LCBzaGFycG5lc3MpID0+IHtcXG4gICAgY29uc3Qgb3BzID0gKDAsX2JvdW5kc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmdldEN1cnZlUGF0aE9wcykoZHJhd2FibGUpO1xcbiAgICBjb25zdCBwb2ludHMgPSBbXTtcXG4gICAgbGV0IG9kZCA9IGZhbHNlOyAvLyBzZWxlY3Qgb25lIGxpbmUgb3V0IG9mIGRvdWJsZSBsaW5lc1xcbiAgICBmb3IgKGNvbnN0IG9wZXJhdGlvbiBvZiBvcHMpIHtcXG4gICAgICAgIGlmIChvcGVyYXRpb24ub3AgPT09IFxcXCJtb3ZlXFxcIikge1xcbiAgICAgICAgICAgIG9kZCA9ICFvZGQ7XFxuICAgICAgICAgICAgaWYgKG9kZCkge1xcbiAgICAgICAgICAgICAgICBwb2ludHMucHVzaChbb3BlcmF0aW9uLmRhdGFbMF0sIG9wZXJhdGlvbi5kYXRhWzFdXSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSBpZiAob3BlcmF0aW9uLm9wID09PSBcXFwiYmN1cnZlVG9cXFwiKSB7XFxuICAgICAgICAgICAgaWYgKG9kZCkge1xcbiAgICAgICAgICAgICAgICBwb2ludHMucHVzaChbb3BlcmF0aW9uLmRhdGFbMF0sIG9wZXJhdGlvbi5kYXRhWzFdXSk7XFxuICAgICAgICAgICAgICAgIHBvaW50cy5wdXNoKFtvcGVyYXRpb24uZGF0YVsyXSwgb3BlcmF0aW9uLmRhdGFbM11dKTtcXG4gICAgICAgICAgICAgICAgcG9pbnRzLnB1c2goW29wZXJhdGlvbi5kYXRhWzRdLCBvcGVyYXRpb24uZGF0YVs1XV0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKG9wZXJhdGlvbi5vcCA9PT0gXFxcImxpbmVUb1xcXCIpIHtcXG4gICAgICAgICAgICBpZiAob2RkKSB7XFxuICAgICAgICAgICAgICAgIHBvaW50cy5wdXNoKFtvcGVyYXRpb24uZGF0YVswXSwgb3BlcmF0aW9uLmRhdGFbMV1dKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgaWYgKHBvaW50cy5sZW5ndGggPj0gNCkge1xcbiAgICAgICAgaWYgKHNoYXJwbmVzcyA9PT0gXFxcInNoYXJwXFxcIikge1xcbiAgICAgICAgICAgIHJldHVybiAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmlzUG9pbnRJblBvbHlnb24pKHBvaW50cywgeCwgeSk7XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBwb2x5Z29uUG9pbnRzID0gKDAscG9pbnRzX29uX2N1cnZlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18ucG9pbnRzT25CZXppZXJDdXJ2ZXMpKHBvaW50cywgMTAsIDUpO1xcbiAgICAgICAgcmV0dXJuICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uaXNQb2ludEluUG9seWdvbikocG9seWdvblBvaW50cywgeCwgeSk7XFxuICAgIH1cXG4gICAgcmV0dXJuIGZhbHNlO1xcbn07XFxuY29uc3QgaGl0VGVzdFJvdWdoU2hhcGUgPSAoZHJhd2FibGUsIHgsIHksIGxpbmVUaHJlc2hvbGQpID0+IHtcXG4gICAgLy8gcmVhZCBvcGVyYXRpb25zIGZyb20gZmlyc3Qgb3BTZXRcXG4gICAgY29uc3Qgb3BzID0gKDAsX2JvdW5kc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmdldEN1cnZlUGF0aE9wcykoZHJhd2FibGUpO1xcbiAgICAvLyBzZXQgc3RhcnQgcG9zaXRpb24gYXMgKDAsMCkganVzdCBpbiBjYXNlXFxuICAgIC8vIG1vdmUgb3BlcmF0aW9uIGRvZXMgbm90IGV4aXN0ICh1bmxpa2VseSBidXQgaXQgaXMgd29ydGggc2FmZWtlZXBpbmcgaXQpXFxuICAgIGxldCBjdXJyZW50UCA9IFswLCAwXTtcXG4gICAgcmV0dXJuIG9wcy5zb21lKCh7IG9wLCBkYXRhIH0sIGlkeCkgPT4ge1xcbiAgICAgICAgLy8gVGhlcmUgYXJlIG9ubHkgZm91ciBvcGVyYXRpb24gdHlwZXM6XFxuICAgICAgICAvLyBtb3ZlLCBiY3VydmVUbywgbGluZVRvLCBhbmQgY3VydmVUb1xcbiAgICAgICAgaWYgKG9wID09PSBcXFwibW92ZVxcXCIpIHtcXG4gICAgICAgICAgICAvLyBjaGFuZ2Ugc3RhcnRpbmcgcG9pbnRcXG4gICAgICAgICAgICBjdXJyZW50UCA9IGRhdGE7XFxuICAgICAgICAgICAgLy8gbW92ZSBvcGVyYXRpb24gZG9lcyBub3QgZHJhdyBhbnl0aGluZzsgc28sIGl0IGFsd2F5c1xcbiAgICAgICAgICAgIC8vIHJldHVybnMgZmFsc2VcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKG9wID09PSBcXFwiYmN1cnZlVG9cXFwiKSB7XFxuICAgICAgICAgICAgLy8gY3JlYXRlIHBvaW50cyBmcm9tIGJlemllciBjdXJ2ZVxcbiAgICAgICAgICAgIC8vIGJlemllciBjdXJ2ZSBzdG9yZXMgZGF0YSBhcyBhIGZsYXR0ZW5lZCBhcnJheSBvZiB0aHJlZSBwb3NpdGlvbnNcXG4gICAgICAgICAgICAvLyBbeDEsIHkxLCB4MiwgeTIsIHgzLCB5M11cXG4gICAgICAgICAgICBjb25zdCBwMSA9IFtkYXRhWzBdLCBkYXRhWzFdXTtcXG4gICAgICAgICAgICBjb25zdCBwMiA9IFtkYXRhWzJdLCBkYXRhWzNdXTtcXG4gICAgICAgICAgICBjb25zdCBwMyA9IFtkYXRhWzRdLCBkYXRhWzVdXTtcXG4gICAgICAgICAgICBjb25zdCBwMCA9IGN1cnJlbnRQO1xcbiAgICAgICAgICAgIGN1cnJlbnRQID0gcDM7XFxuICAgICAgICAgICAgLy8gY2hlY2sgaWYgcG9pbnRzIGFyZSBvbiB0aGUgY3VydmVcXG4gICAgICAgICAgICAvLyBjdWJpYyBiZXppZXIgY3VydmVzIHJlcXVpcmUgZm91ciBwYXJhbWV0ZXJzXFxuICAgICAgICAgICAgLy8gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyB0aGUgbGFzdCBzdG9yZWQgcG9zaXRpb24gKHAwKVxcbiAgICAgICAgICAgIGNvbnN0IHJldFZhbCA9IHBvaW50SW5CZXppZXJFcXVhdGlvbihwMCwgcDEsIHAyLCBwMywgW3gsIHldLCBsaW5lVGhyZXNob2xkKTtcXG4gICAgICAgICAgICAvLyBzZXQgZW5kIHBvaW50IG9mIGJlemllciBjdXJ2ZSBhcyB0aGUgbmV3IHN0YXJ0aW5nIHBvaW50IGZvclxcbiAgICAgICAgICAgIC8vIHVwY29taW5nIG9wZXJhdGlvbnMgYXMgZWFjaCBvcGVyYXRpb24gaXMgYmFzZWQgb24gdGhlIGxhc3QgZHJhd25cXG4gICAgICAgICAgICAvLyBwb3NpdGlvbiBvZiB0aGUgcHJldmlvdXMgb3BlcmF0aW9uXFxuICAgICAgICAgICAgcmV0dXJuIHJldFZhbDtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKG9wID09PSBcXFwibGluZVRvXFxcIikge1xcbiAgICAgICAgICAgIHJldHVybiBoaXRUZXN0Q3VydmVJbnNpZGUoZHJhd2FibGUsIHgsIHksIFxcXCJzaGFycFxcXCIpO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSBpZiAob3AgPT09IFxcXCJxY3VydmVUb1xcXCIpIHtcXG4gICAgICAgICAgICAvLyBUT0RPOiBJbXBsZW1lbnQgdGhpc1xcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcXFwicWN1cnZlVG8gaXMgbm90IGltcGxlbWVudGVkIHlldFxcXCIpO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICB9KTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2Wld4bGJXVnVkQzlqYjJ4c2FYTnBiMjR1ZEhNdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN1FVRkJORUk3UVVGRFZ6dEJRVU5STzBGQlExWTdRVUZEVlR0QlFWRTVRanRCUVVOelF6dEJRV2RDYzBJN1FVRkpaRHRCUVVOSk8wRkJRMnBETzBGQlEwODdRVUZGZWtNc1RVRkJUU3cwUWtGQk5FSXNSMEZCUnl4RFFVTnVReXhQUVVGdlF5eEZRVU16UWl4RlFVRkZPMGxCUTFnc1NVRkJTU3hQUVVGUExFTkJRVU1zU1VGQlNTeExRVUZMTEU5QlFVOHNSVUZCUlR0UlFVTTFRaXhQUVVGUExFdEJRVXNzUTBGQlF6dExRVU5rTzBsQlJVUXNTVUZCU1N4UFFVRlBMRU5CUVVNc1NVRkJTU3hMUVVGTExGVkJRVlVzUlVGQlJUdFJRVU12UWl4UFFVRlBMRWxCUVVrc1EwRkJRenRMUVVOaU8wbEJRMFFzVFVGQlRTeHhRa0ZCY1VJc1IwRkRla0lzUTBGQlF5eHpSRUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhsUVVGbExFTkJRVU1zU1VGQlNTeG5SVUZCYlVJc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU14UlN4SlFVRkpMRTlCUVU4c1EwRkJReXhKUVVGSkxFdEJRVXNzVFVGQlRTeEZRVUZGTzFGQlF6TkNMRTlCUVU4c2NVSkJRWEZDTEVsQlFVa3NhMFJCUVZjc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTMEZETjBRN1NVRkRSQ3hQUVVGUExIRkNRVUZ4UWl4SlFVRkpMREpFUVVGakxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdRVUZETVVRc1EwRkJReXhEUVVGRE8wRkJSVXNzVFVGQlRTeFBRVUZQTEVkQlFVY3NRMEZEY2tJc1QwRkJiME1zUlVGRGNFTXNVVUZCYTBJc1JVRkRiRUlzUTBGQlV5eEZRVU5VTEVOQlFWTXNSVUZEUVN4RlFVRkZPMGxCUTFnc2FVVkJRV2xGTzBsQlEycEZMRTFCUVUwc1UwRkJVeXhIUVVGSExFVkJRVVVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVNelF5eE5RVUZOTEV0QlFVc3NSMEZCVlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVUxUWl4SlFVRkpMR2xDUVVGcFFpeERRVUZETEZGQlFWRXNSVUZCUlN4UFFVRlBMRU5CUVVNc1JVRkJSVHRSUVVONFF5eFBRVUZQTEdkRFFVRm5ReXhEUVVGRExFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNN1MwRkRjRVU3U1VGRlJDeFBRVUZQTEhsRFFVRjVReXhEUVVGRExFOUJRVThzUlVGQlJTeFJRVUZSTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkROMFVzUTBGQlF5eERRVUZETzBGQlJVc3NUVUZCVFN4blJFRkJaMFFzUjBGQlJ5eERRVU01UkN4UFFVRnZReXhGUVVOd1F5eFJRVUZyUWl4RlFVTnNRaXhEUVVGVExFVkJRMVFzUTBGQlV5eEZRVU5CTEVWQlFVVTdTVUZEV0N4TlFVRk5MRk5CUVZNc1IwRkJSeXhGUVVGRkxFZEJRVWNzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNN1NVRkZNME1zVDBGQlR5eERRVU5NTEVOQlFVTXNlVU5CUVhsRExFTkJRVU1zVDBGQlR5eEZRVUZGTEZGQlFWRXNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU55UlN4blEwRkJaME1zUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFVkJRVVVzVTBGQlV5eERRVUZETEVOQlF6ZEVMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEhsRFFVRjVReXhIUVVGSExFTkJRM1pFTEU5QlFXOURMRVZCUTNCRExGRkJRV3RDTEVWQlEyeENMRXRCUVZrc1JVRkRTQ3hGUVVGRk8wbEJRMWdzVFVGQlRTeFRRVUZUTEVkQlFVY3NSVUZCUlN4SFFVRkhMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETzBsQlJUTkRMRTFCUVUwc1MwRkJTeXhIUVVGSExHbEVRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRPMUZCUTJ4RExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJN1VVRkRiRUlzUTBGQlF5eERRVUZETERSQ1FVRTBRaXhEUVVGRExFOUJRVThzUTBGQlF6dFpRVU4yUXl4RFFVRkRMRU5CUVVNc1lVRkJZVHRaUVVObUxFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTTdTVUZEYUVJc1QwRkJUeXd3UWtGQk1FSXNRMEZCUXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVTBGQlV5eEZRVUZGTEV0QlFVc3NSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRNVVVzUTBGQlF5eERRVUZETzBGQlJVWXNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eERRVU40UWl4UlFVRnJRaXhGUVVOc1FpeFBRVUZ6UXl4RlFVTjBReXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVVjBReXhOUVVGTkxHZERRVUZuUXl4SFFVRkhMRU5CUXpsRExFOUJRWE5ETEVWQlEzUkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlVTeEZRVU5pTEZOQlFXbENMRVZCUTJwQ0xFVkJRVVU3U1VGRFJpeE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NhVVZCUVhkQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTVUZETTBRc1RVRkJUU3hqUVVGakxFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRM0pETEUxQlFVMHNZMEZCWXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTnlReXgxUkVGQmRVUTdTVUZEZGtRc1RVRkJUU3hEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVOQlFVTXNSMEZCUnl3MlEwRkJUU3hEUVVOcVF5eERRVUZETEVWQlEwUXNRMEZCUXl4RlFVTkVMR05CUVdNc1JVRkRaQ3hqUVVGakxFVkJRMlFzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVTm1MRU5CUVVNN1NVRkZSaXhQUVVGUExFTkJRMHdzVVVGQlVTeEhRVUZITEVWQlFVVXNSMEZCUnl4VFFVRlRPMUZCUTNwQ0xGRkJRVkVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NVMEZCVXp0UlFVTjZRaXhSUVVGUkxFZEJRVWNzUlVGQlJTeEhRVUZITEZOQlFWTTdVVUZEZWtJc1VVRkJVU3hIUVVGSExFVkJRVVVzUjBGQlJ5eFRRVUZUTEVOQlF6RkNMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExFTkJReTlDTEU5QlFUaERMRVZCUXpsRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCTkVJc1JVRkRla0lzUlVGQlJUdEpRVU5ZTEUxQlFVMHNVMEZCVXl4SFFVRkhMR0ZCUVdFc1EwRkJReXhQUVVGUExFVkJRVVVzVDBGQlR5eERRVUZETEV0QlFVc3NSVUZCUlN4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRGVFVXNUVUZCVFN4TFFVRkxMRWRCUVVjc1kwRkJZeXhEUVVGRE8wbEJRemRDTEUxQlFVMHNTMEZCU3l4SFFVRlZMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6VkNMRTlCUVU4c01FSkJRVEJDTEVOQlFVTXNSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxGTkJRVk1zUlVGQlJTeExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUXpGRkxFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNZVUZCWVN4SFFVRkhMRU5CUXpOQ0xFOUJRVEJDTEVWQlF6RkNMRmxCUVc5Q0xFVkJRM0JDTEdGQlFYRkNMRVZCUTJJc1JVRkJSVHRKUVVOV0xHdERRVUZyUXp0SlFVTnNReXhOUVVGTkxGVkJRVlVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNTVUZCU1N4TFFVRkxMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnlSU3hOUVVGTkxHZENRVUZuUWl4SFFVRkhMRlZCUVZVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEZsQlFWa3NSVUZCUlN4aFFVRmhMRU5CUVVNc1EwRkJRenRKUVVNMVJTd3lSRUZCTWtRN1NVRkRNMFFzVDBGQlR5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NSMEZCUnl4blFrRkJaMElzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpkRUxFTkJRVU1zUTBGQlF6dEJRVk5HTEUxQlFVMHNNRUpCUVRCQ0xFZEJRVWNzUTBGQlF5eEpRVUZwUWl4RlFVRlhMRVZCUVVVN1NVRkRhRVVzVVVGQlVTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1JVRkJSVHRSUVVONlFpeExRVUZMTEZkQlFWY3NRMEZCUXp0UlFVTnFRaXhMUVVGTExFOUJRVThzUTBGQlF6dFJRVU5pTEV0QlFVc3NUVUZCVFN4RFFVRkRPMUZCUTFvc1MwRkJTeXhUUVVGVExFTkJRVU03VVVGRFppeExRVUZMTEZOQlFWTTdXVUZEV2l4TlFVRk5MRkZCUVZFc1IwRkJSeXg1UWtGQmVVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTnlSU3hQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU01UXl4TFFVRkxMRlZCUVZVc1EwRkJReXhEUVVGRE8xbEJRMllzU1VGRFJTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUTFRc2JVSkJRVzFDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6ZERMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRMllzUlVGRFJEdG5Ra0ZEUVN4UFFVRlBMRXRCUVVzc1EwRkJRenRoUVVOa08xbEJSVVFzVDBGQlR5eHpRa0ZCYzBJc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFOQlEzcEZPMUZCUTBRc1MwRkJTeXhQUVVGUExFTkJRVU03VVVGRFlpeExRVUZMTEUxQlFVMDdXVUZEVkN4UFFVRlBMR0ZCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU0zUWl4TFFVRkxMRmRCUVZjN1dVRkRaQ3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVU5XTERaRVFVRTJSQ3hEUVVNNVJDeERRVUZETzFsQlEwWXNUMEZCVHl4TFFVRkxMRU5CUVVNN1MwRkRhRUk3UVVGRFNDeERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MSGxDUVVGNVFpeEhRVUZITEVOQlEzWkRMRTlCUVd0RExFVkJRMnhETEV0QlFWa3NSVUZEU2l4RlFVRkZPMGxCUTFZc1VVRkJVU3hQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTzFGQlEzQkNMRXRCUVVzc1YwRkJWeXhEUVVGRE8xRkJRMnBDTEV0QlFVc3NUMEZCVHl4RFFVRkRPMUZCUTJJc1MwRkJTeXhOUVVGTk8xbEJRMVFzVDBGQlR5eHRRa0ZCYlVJc1EwRkJReXhQUVVGUExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZETjBNc1MwRkJTeXhUUVVGVE8xbEJRMW9zVDBGQlR5eHBRa0ZCYVVJc1EwRkJReXhQUVVGUExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZETTBNc1MwRkJTeXhUUVVGVE8xbEJRMW9zVDBGQlR5eHBRa0ZCYVVJc1EwRkJReXhQUVVGUExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdTMEZETlVNN1FVRkRTQ3hEUVVGRExFTkJRVU03UVVGRlJpeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFTkJRVU1zVVVGQlowSXNSVUZCUlN4VFFVRnBRaXhGUVVGWExFVkJRVVU3U1VGRGVFVXNUMEZCVHl4UlFVRlJMRWRCUVVjc1EwRkJReXhEUVVGRE8wRkJRM1JDTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc1lVRkJZU3hIUVVGSExFTkJRVU1zVVVGQlowSXNSVUZCUlN4VFFVRnBRaXhGUVVGWExFVkJRVVU3U1VGRGNrVXNUMEZCVHl4UlFVRlJMRWRCUVVjc1UwRkJVeXhEUVVGRE8wRkJRemxDTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc1YwRkJWeXhIUVVGSExFTkJRVU1zVVVGQlowSXNSVUZCUlN4VFFVRnBRaXhGUVVGWExFVkJRVVU3U1VGRGJrVXNUMEZCVHl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXp0QlFVTjRReXhEUVVGRExFTkJRVU03UVVGRlJpeE5RVUZOTEdOQlFXTXNSMEZCUnl4RFFVRkRMRkZCUVdkQ0xFVkJRVVVzVTBGQmFVSXNSVUZCVnl4RlFVRkZPMGxCUTNSRkxFOUJRVThzUTBGQlF5eEpRVUZKTEZGQlFWRXNTVUZCU1N4UlFVRlJMRWRCUVVjc1UwRkJVeXhEUVVGRE8wRkJReTlETEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NRMEZETVVJc1QwRkpNRUlzUlVGRE1VSXNTMEZCV1N4RlFVTktMRVZCUVVVN1NVRkRWaXhOUVVGTkxFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVVXNUVUZCVFN4RlFVRkZMRTlCUVU4c1EwRkJReXhIUVVGSExITkNRVUZ6UWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU0zUlN4UFFVRlBMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRMklzY1VSQlFYTkNMRU5CUVVNc1VVRkJVU3hGUVVGRkxEaERRVUZsTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVWQlEycEZMSEZFUVVGelFpeERRVUZETEZGQlFWRXNSVUZCUlN3NFEwRkJaU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVOcVJTeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRPMEZCUlVZc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnl4RFFVTjRRaXhQUVVGcFF5eEZRVU5xUXl4TFFVRlpMRVZCUTBvc1JVRkJSVHRKUVVOV0xFMUJRVTBzUTBGQlF5eEZRVUZGTEZGQlFWRXNSVUZCUlN4TlFVRk5MRVZCUVVVc1QwRkJUeXhEUVVGRExFZEJRVWNzYzBKQlFYTkNMRU5CUVVNc1QwRkJUeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBsQlF6ZEZMRTFCUVUwc1NVRkJTU3hIUVVGSExEaERRVUZsTEVOQlFVTXNUMEZCVHl4RlFVRkZMRTFCUVUwc1JVRkJSU3hEUVVGRExFOUJRVThzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXp0SlFVTnFSU3hQUVVGUExIRkVRVUZ6UWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU5vUkN4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxHbENRVUZwUWl4SFFVRkhMRU5CUTNoQ0xFOUJRV2xETEVWQlEycERMRXRCUVZrc1JVRkRTaXhGUVVGRk8wbEJRMVlzVFVGQlRTeERRVUZETEZGQlFWRXNSVUZCUlN4UFFVRlBMRU5CUVVNc1IwRkJSeXh2UWtGQmIwSXNRMEZCUXl4UFFVRlBMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRGFrVXNUMEZCVHl4RFFVRkRMREJEUVVGWExFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NjVVJCUVhOQ0xFTkJRVU1zVVVGQlVTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMEZCUXpORkxFTkJRVU1zUTBGQlF6dEJRVVZHTEUxQlFVMHNiMEpCUVc5Q0xFZEJRVWNzUTBGRE0wSXNUMEZCYVVNc1JVRkRha01zUzBGQldTeEZRVU5UTEVWQlFVVTdTVUZEZGtJc1RVRkJUU3hEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEUxQlFVMHNSVUZCUlN4UFFVRlBMRU5CUVVNc1IwRkJSeXh6UWtGQmMwSXNRMEZCUXl4UFFVRlBMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRE4wVXNUVUZCVFN4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5dzRRMEZCWlN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wbEJSVE5ETERaRlFVRTJSVHRKUVVNM1JTeEpRVUZKTEVWQlFVVXNSMEZCUnl4TFFVRkxMRU5CUVVNN1NVRkRaaXhKUVVGSkxFVkJRVVVzUjBGQlJ5eExRVUZMTEVOQlFVTTdTVUZGWml4TlFVRk5MRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU03U1VGRGFrSXNUVUZCVFN4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRE8wbEJSV3hDTEdkRlFVRm5SVHRKUVVOb1JTeDFSRUZCZFVRN1NVRkRka1FzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSVHRSUVVONlFpeE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRMnhDTEUxQlFVMHNSVUZCUlN4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRmJFSXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExGZEJRVVVzUlVGQlNTeERRVUZETEVWQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRNME1zVFVGQlRTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRmRCUVVVc1JVRkJTU3hEUVVGRExFVkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGTTBNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXp0UlFVTnVRaXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUlc1Q0xFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRia0lzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJRenRSUVVWdVFpeE5RVUZOTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTTNRaXhOUVVGTkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVVUzUWl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOMlJDeEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjJSQ3hOUVVGTkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU0zUWl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRMUlzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTldMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSVWdzVFVGQlRTeFpRVUZaTEVkQlFVY3NjME5CUVZFc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVVNVF5eE5RVUZOTEU5QlFVOHNSMEZCUnl4MVJFRkJkMElzUTBGQlF5eFJRVUZSTEVWQlFVVXNXVUZCV1N4RFFVRkRMRU5CUVVNN1NVRkRha1VzVDBGQlR5eERRVUZETEZGQlFWRXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVNM1FpeERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MSE5DUVVGelFpeEhRVUZITEVOQlF6ZENMRTlCUVd0RExFVkJRMnhETEV0QlFWa3NSVUZEV2l4VFFVRnBRaXhGUVVOU0xFVkJRVVU3U1VGRFdDeG5SVUZCWjBVN1NVRkRhRVVzSzBSQlFTdEVPMGxCUXk5RUxEUkVRVUUwUkR0SlFVTTFSQ3gzUWtGQmQwSTdTVUZGZUVJc1NVRkJTU3hEUVVGVExFTkJRVU03U1VGRFpDeEpRVUZKTEVOQlFWTXNRMEZCUXp0SlFVVmtMRWxCUVVrc1QwRkJUeXhEUVVGRExFdEJRVXNzUzBGQlN5eERRVUZETEVWQlFVVTdVVUZEZGtJc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM3BDTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTXhRanRUUVVGTk8xRkJRMHdzZDBSQlFYZEVPMUZCUTNoRUxFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eHBSVUZCZDBJc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU51UlN4TlFVRk5MRmxCUVZrc1IwRkJSeXhyUkVGQlZ5eERRVU01UWl4TFFVRkxMRVZCUTB3c1EwRkJReXhKUVVGSkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFbEJRVWtzUjBGQlJ5eERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGRGNFUXNRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVObUxFTkJRVU03VVVGRFJpeERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYUVNc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8wdEJRMnBETzBsQlJVUXNTVUZCU1N4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRPMGxCUXpWQ0xFbEJRVWtzUTBGQk5FSXNRMEZCUXp0SlFVVnFReXh2UWtGQmIwSTdTVUZEY0VJc1NVRkRSU3hwUkVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExGTkJRVk03VVVGRGVFTXNhVVJCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4VFFVRlRMRVZCUTNoRE8xRkJRMEVzVDBGQlR5eEpRVUZKTEVOQlFVTTdTMEZEWWp0SlFVVkVMSEZDUVVGeFFqdEpRVU55UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdVVUZET1VNc1RVRkJUU3hMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjZReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVVNVF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlEycEVMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRMMElzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXZSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJSWFpETEUxQlFVMHNSVUZCUlN4SFFVRkhMR2xFUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZET1VNc1RVRkJUU3hGUVVGRkxFZEJRVWNzYVVSQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVVNVF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1NVRkJTU3hGUVVGRkxFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVsQlFVa3NSVUZCUlN4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZhRVVzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEZOQlFWTXNSVUZCUlR0WlFVTTVReXhQUVVGUExFbEJRVWtzUTBGQlF6dFRRVU5pTzFGQlJVUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOT0xFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU16UWp0SlFVVkVMRTFCUVUwc1MwRkJTeXhIUVVGSExESkZRVUZyUWl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJSVEZETEhORFFVRnpRenRKUVVOMFF5eDNRa0ZCZDBJN1NVRkRlRUlzU1VGQlNTeExRVUZMTEVsQlFVa3NTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVU3VVVGRE9VSXNUMEZCVHl4cFFrRkJhVUlzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dExRVU5zUkR0SlFVVkVMRTlCUVU4c1MwRkJTeXhEUVVGRE8wRkJRMllzUTBGQlF5eERRVUZETzBGQlJVWXNUVUZCVFN4aFFVRmhMRWRCUVVjc1EwRkJReXhKUVVGcFFpeEZRVUZYTEVWQlFVVTdTVUZEYmtRc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeFRRVUZUTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNN1NVRkRjRU1zU1VGQlNTeERRVUZETERKRlFVRnJRaXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzFGQlEyaERMRTlCUVU4c1MwRkJTeXhEUVVGRE8wdEJRMlE3U1VGRFJDeE5RVUZOTEVOQlFVTXNTMEZCU3l4RlFVRkZMRkZCUVZFc1JVRkJSU3hOUVVGTkxFVkJRVVVzVDBGQlR5eERRVUZETEVkQlFVY3NjMEpCUVhOQ0xFTkJReTlFTEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUTFvc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGRFdDeERRVUZETzBsQlEwWXNUVUZCVFN4TFFVRkxMRWRCUVVjc09FTkJRV1VzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRE9VTXNUVUZCVFN4TFFVRkxMRWRCUVVjc09FTkJRV1VzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRE4wTXNTVUZEUlN4RFFVRkRMR0ZCUVdFc1EwRkJReXh4UkVGQmMwSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1MwRkJTeXhEUVVGRExFVkJRVVVzVTBGQlV5eERRVUZETzFGQlEyeEZMRU5CUVVNc1lVRkJZU3hEUVVGRExIRkVRVUZ6UWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hMUVVGTExFTkJRVU1zUlVGQlJTeFRRVUZUTEVOQlFVTXNSVUZEYkVVN1VVRkRRU3hQUVVGUExFdEJRVXNzUTBGQlF6dExRVU5rTzBsQlEwUXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5dzRRMEZCWlN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJSVFZETEUxQlFVMHNTMEZCU3l4SFFVRkhMREpGUVVGclFpeERRVUZETEU5QlFXdERMRU5CUVVNc1EwRkJRenRKUVVWeVJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZPMUZCUTFZc1QwRkJUeXhMUVVGTExFTkJRVU03UzBGRFpEdEpRVVZFTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1MwRkJTeXhoUVVGaExFVkJRVVU3VVVGRGFFTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRU5CUTJ4RExHdENRVUZyUWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZGTEU5QlFVOHNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkRiRVVzUTBGQlF6dFJRVU5HTEVsQlFVa3NSMEZCUnl4RlFVRkZPMWxCUTFBc1QwRkJUeXhKUVVGSkxFTkJRVU03VTBGRFlqdExRVU5HTzBsQlJVUXNhVVJCUVdsRU8wbEJRMnBFTEU5QlFVOHNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTEVOQlF6ZENMR2xDUVVGcFFpeERRVUZETEZGQlFWRXNSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxGTkJRVk1zUTBGQlF5eERRVU51UkN4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRE8wRkJSVVlzVjBGQlZ6dEJRVU5ZTERCRVFVRXdSRHRCUVVNeFJDeDFSVUZCZFVVN1FVRkRka1VzTUVKQlFUQkNPMEZCUXpGQ0xESkNRVUV5UWp0QlFVTXpRaXhGUVVGRk8wRkJRMFlzYTBWQlFXdEZPMEZCUTJ4RkxITkRRVUZ6UXp0QlFVTjBReXhGUVVGRk8wRkJRMFlzSzBSQlFTdEVPMEZCUXk5RUxHdEVRVUZyUkR0QlFVTnNSQ3hyUlVGQmEwVTdRVUZEYkVVc1RVRkJUU3h6UWtGQmMwSXNSMEZCUnl4RFFVTTNRaXhQUVVFd1FpeEZRVU14UWl4VlFVRnBRaXhGUVVOeFFpeEZRVUZGTzBsQlEzaERMRTFCUVUwc1MwRkJTeXhIUVVGSExESkRRVUZaTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1NVRkRka01zVFVGQlRTeGhRVUZoTEVkQlFVY3NhVVZCUVhkQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEZUVRc1RVRkJUU3hOUVVGTkxFZEJRVWNzV1VGQldTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRPMGxCUXpORExHZEVRVUZuUkR0SlFVTm9SQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eHRSRUZCYjBJc1EwRkJReXhOUVVGTkxFVkJRVVVzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUXpORUxFMUJRVTBzV1VGQldTeEhRVUZITEdkRVFVRnBRaXhEUVVGRExFMUJRVTBzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTjBSQ3hOUVVGTkxHZENRVUZuUWl4SFFVRkhMRzlEUVVGTkxFTkJRVU1zV1VGQldTeEZRVUZGTEN0RFFVRm5RaXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZUVVc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl3d1EwRkJWeXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNN1NVRkRNVVFzVFVGQlRTeFZRVUZWTEVkQlFVY3NkVU5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOdVJDeE5RVUZOTEdGQlFXRXNSMEZCUnl4dlEwRkJUU3hEUVVGRExGbEJRVmtzUlVGQlJTeFZRVUZWTEVOQlFVTXNRMEZCUXp0SlFVTjJSQ3hOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzWVVGQllTeERRVUZETzBsQlEzWkRMRTFCUVUwc1UwRkJVeXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVOb1F5eE5RVUZOTEZWQlFWVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEYWtNc1QwRkJUeXhEUVVGRExHRkJRV0VzUlVGQlJTeHRRa0ZCYlVJc1JVRkJSU3hUUVVGVExFVkJRVVVzVlVGQlZTeERRVUZETEVOQlFVTTdRVUZEY2tVc1EwRkJReXhEUVVGRE8wRkJSVVlzZDBOQlFYZERPMEZCUTJwRExFMUJRVTBzY1VKQlFYRkNMRWRCUVVjc1EwRkRia01zVDBGQk1FSTdRVUZETVVJc2VVTkJRWGxETzBGQlEzcERMRXRCUVZrc1JVRkRUQ3hGUVVGRk8wbEJRMVFzVFVGQlRTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU03U1VGRGNrSXNUVUZCVFN4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4SFFVRkhMR2xGUVVGM1FpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpORUxFMUJRVTBzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU42UWl4TlFVRk5MRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRla0lzVFVGQlRTeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRU5CUVVNc1IwRkJSeXcyUTBGQlRTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1NVRkRha1VzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1VVRkJVU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNN1FVRkRkRVFzUTBGQlF5eERRVUZETzBGQlJVWXNUVUZCVFN3MlFrRkJOa0lzUjBGQlJ5eERRVU53UXl4UFFVRXdRaXhGUVVOYUxFVkJRVVU3U1VGRGFFSXNUVUZCVFN4aFFVRmhMRWRCUVVjc2FVVkJRWGRDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRlRVFzVFVGQlRTeE5RVUZOTEVkQlFVY3NXVUZCV1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8wbEJRek5ETEdkRVFVRm5SRHRKUVVOb1JDeE5RVUZOTEUxQlFVMHNSMEZCUnl4dFJFRkJiMElzUTBGQlF5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRek5FTEUxQlFVMHNVMEZCVXl4SFFVRkhMSGREUVVGVkxFTkJRekZDTEhORVFVRjFRaXhEUVVGRExDdERRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRMnhFTEVOQlFVTTdTVUZEUml4UFFVRlBMR3RFUVVGdFFpeERRVUZETEUxQlFVMHNSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRCUVVOb1JDeERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MRmxCUVZrc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGVExFVkJRVmtzUlVGQlJUdEpRVU14UkN4UFFVRlBMSE5EUVVGUkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMmhFTEVOQlFVTXNRMEZCUXp0QlFVVkdMQ3RFUVVFclJEdEJRVU12UkN3NFJFRkJPRVE3UVVGRE9VUXNNa1JCUVRKRU8wRkJRek5FTEhWRlFVRjFSVHRCUVVOMlJTeHJRa0ZCYTBJN1FVRkRXQ3hOUVVGTkxITkNRVUZ6UWl4SFFVRkhMRU5CUTNCRExFOUJRV3RETzBGQlEyeERMRFpEUVVFMlF6dEJRVU0zUXl4RFFVRlJPMEZCUTFJc2VVVkJRWGxGTzBGQlEzcEZMRU5CUVZFc1JVRkRRU3hGUVVGRk8wbEJRMVlzVFVGQlRTeGpRVUZqTEVkQlFVY3NOa0pCUVRaQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTVUZET1VRc1RVRkJUU3hKUVVGSkxFZEJRVWNzWjBSQlFXbENMRU5CUVVNc1kwRkJZeXhGUVVGRkxESkRRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOb1JTeE5RVUZOTEVsQlFVa3NSMEZCUnl4blJFRkJhVUlzUTBGQlF5eGpRVUZqTEVWQlFVVXNNa05CUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEyaEZMRTFCUVUwc1NVRkJTU3hIUVVGSExEWkRRVUZqTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRM2hETEUxQlFVMHNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXp0SlFVTjZReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVOcVF5eE5RVUZOTEU5QlFVOHNSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU51UXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEYkVJc1RVRkJUU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTJ4Q0xFMUJRVTBzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOc1FpeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzcENMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRla0lzVVVGQlVTeFBRVUZQTEVOQlFVTXNTVUZCU1N4RlFVRkZPMUZCUTNCQ0xFdEJRVXNzVjBGQlZ5eERRVUZETzFGQlEycENMRXRCUVVzc1QwRkJUeXhEUVVGRE8xRkJRMklzUzBGQlN5eE5RVUZOTzFsQlExUXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVkQlFVY3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRE1VTXNTMEZCU3l4VFFVRlRPMWxCUTFvc1QwRkJUeXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnNSU3hMUVVGTExGTkJRVk03V1VGRFdpeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFVTXNSVUZCU1N4RFFVRkRMRWxCUVVjc1ZVRkJReXhGUVVGSkxFTkJRVU1zU1VGQlJ5eFZRVUZETEVWQlFVa3NRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJRenRMUVVNM1JEdEJRVU5JTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NRMEZEYWtNc1QwRkJhME03UVVGRGJFTXNjMFZCUVhORk8wRkJRM1JGTEhOQ1FVRnpRanRCUVVOMFFpeExRVUZoTEVWQlEySXNZVUZCYjBJc1JVRkRZaXhGUVVGRk8wbEJRMVFzU1VGQlNTeExRVUZMTEV0QlFVc3NRMEZCUXl4RlFVRkZPMUZCUTJZc1RVRkJUU3hoUVVGaExFZEJRVWNzYVVWQlFYZENMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGVFUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1dVRkJXU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzFGQlF6TkRMRTlCUVU4c09FTkJRV1VzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0TFFVTm9RenRKUVVORUxFMUJRVTBzWTBGQll5eEhRVUZITERaQ1FVRTJRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6bEVMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NaMFJCUVdsQ0xFTkJRM2hETEdOQlFXTXNSVUZEWkN3eVEwRkJXU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVU0xUWl4RFFVRkRPMGxCUTBZc1RVRkJUU3h4UWtGQmNVSXNSMEZCUnl4M1EwRkJWU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzBsQlEzcEVMRWxCUVVrc1MwRkJTeXhEUVVGRE8wbEJRMVlzVVVGQlVTeFBRVUZQTEVOQlFVTXNTVUZCU1N4RlFVRkZPMUZCUTNCQ0xFdEJRVXNzVjBGQlZ5eERRVUZETzFGQlEycENMRXRCUVVzc1QwRkJUeXhEUVVGRE8xRkJRMklzUzBGQlN5eE5RVUZOTEVOQlFVTTdVVUZEV2l4TFFVRkxMRk5CUVZNN1dVRkRXaXhMUVVGTExFZEJRVWNzTmtKQlFUWkNMRU5CUVVNc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJReXhEUVVGRE8xbEJRM2hGTEUxQlFVMDdVVUZEVWl4TFFVRkxMRk5CUVZNN1dVRkRXaXhMUVVGTExFZEJRVWNzZDBKQlFYZENMRU5CUVVNc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJReXhEUVVGRE8xbEJRMjVGTEUxQlFVMDdTMEZEVkR0SlFVTkVMRTlCUVU4c09FTkJRV1VzUTBGQlF5eG5SRUZCYVVJc1EwRkJReXh4UWtGQmNVSXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRekZGTEVOQlFVTXNRMEZCUXp0QlFVVkdMRFJGUVVFMFJUdEJRVU0xUlN3NFJFRkJPRVE3UVVGRGRrUXNUVUZCVFN4M1FrRkJkMElzUjBGQlJ5eERRVU4wUXl4UFFVRnJRenRCUVVOc1F5dzJRMEZCTmtNN1FVRkROME1zUTBGQlVUdEJRVU5TTEhGRVFVRnhSRHRCUVVOeVJDeERRVUZSTzBGQlExSXNhMFJCUVd0RU8wRkJRMnhFTEUxQlFXTXNRMEZCUXl4RlFVTk9MRVZCUVVVN1NVRkRXQ3hOUVVGTkxHTkJRV01zUjBGQlJ5dzJRa0ZCTmtJc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU01UkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhuUkVGQmFVSXNRMEZCUXl4alFVRmpMRVZCUVVVc01rTkJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTJoRkxFMUJRVTBzU1VGQlNTeEhRVUZITEdkRVFVRnBRaXhEUVVGRExHTkJRV01zUlVGQlJTd3lRMEZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGFFVXNUVUZCVFN4SlFVRkpMRWRCUVVjc05rTkJRV01zUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRlRU1zVFVGQlRTeHhRa0ZCY1VJc1IwRkJSeXgzUTBGQlZTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRPMGxCUTNwRUxFMUJRVTBzWVVGQllTeEhRVUZITEdsRFFVRnBReXhEUVVOeVJDeFBRVUZQTEVWQlExQXNTVUZCU1N4RlFVTktMRWxCUVVrc1JVRkRTaXhIUVVGSExFTkJRMG9zUTBGQlF6dEpRVU5HTEU5QlFVOHNZVUZCWVN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlEycERMRGhEUVVGbExFTkJRVU1zWjBSQlFXbENMRU5CUVVNc2NVSkJRWEZDTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkRha1VzUTBGQlF6dEJRVU5LTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc2FVTkJRV2xETEVkQlFVY3NRMEZEZUVNc1QwRkJhME03UVVGRGJFTXNOa0pCUVRaQ08wRkJRemRDTEVsQlFXRTdRVUZEWWl3MlFrRkJOa0k3UVVGRE4wSXNVMEZCYlVJc1JVRkRia0lzVFVGQll5eERRVUZETEVWQlEwZ3NSVUZCUlR0SlFVTmtMRWxCUVVrc1lVRkJlVUlzUTBGQlF6dEpRVU01UWl4UlFVRlJMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVU3VVVGRGNFSXNTMEZCU3l4WFFVRlhMRU5CUVVNN1VVRkRha0lzUzBGQlN5eFBRVUZQTEVOQlFVTTdVVUZEWWl4TFFVRkxMRTFCUVUwc1EwRkJRenRSUVVOYUxFdEJRVXNzVTBGQlV6dFpRVU5hTEUxQlFVMHNUMEZCVHl4SFFVRkhMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFpRVU53UXl4aFFVRmhMRWRCUVVjc1QwRkJUenRwUWtGRGNFSXNUMEZCVHl4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzJkQ1FVTndRaXhOUVVGTkxFbEJRVWtzUjBGQmVVSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEycEZMRTlCUVU4c1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RlFVRkZMR0ZCUVdFc1EwRkJReXhKUVVGSkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTXhSQ3hEUVVGRExFTkJRVU03YVVKQlEwUXNUVUZCVFN4RFFVTk1MRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMSE5DUVVGelFpeERRVUZETEV0QlFVc3NSVUZCUlN4SFFVRkhMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGRGNrVXNRMEZCUXp0WlFVTktMRTFCUVUwN1VVRkRVaXhMUVVGTExGTkJRVk03V1VGRFdpeGhRVUZoTEVkQlFVY3NkVUpCUVhWQ0xFTkJRVU1zVDBGQlR5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVNMVJDeE5RVUZOTzB0QlExUTdTVUZEUkN4SlFVRkpMR0ZCUVdFc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzFGQlF6VkNMRzFGUVVGdFJUdFJRVU51UlN4UFFVRlBMRVZCUVVVc1EwRkJRenRMUVVOWU8wbEJRMFFzVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXhoUVVGaExFTkJRVU1zU1VGQlNTeERRVU0xUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVU5VTEN0RFFVRm5RaXhEUVVGRExFVkJRVVVzUlVGQlJTeFRRVUZUTEVOQlFVTXNSMEZCUnl3clEwRkJaMElzUTBGQlF5eEZRVUZGTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUTNCRkxFTkJRVU03U1VGRFJpeFBRVUZQTzFGQlEwd3NiVUpCUVcxQ0xFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzUkNMRzFDUVVGdFFpeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdTMEZEY0VRc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF6dEJRVVZHTEUxQlFVMHNWVUZCVlN4SFFVRkhMRU5CUTJwQ0xFOUJTWGxDTEVWQlEzcENMRkZCUVdkQ0xFTkJRVU1zUlVGRFRDeEZRVUZGTzBsQlEyUXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhMUVVGTExFZEJRVWNzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVOMlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRXRCUVVzc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTNoRExGRkJRVkVzVDBGQlR5eERRVUZETEVsQlFVa3NSVUZCUlR0UlFVTndRaXhMUVVGTExGZEJRVmNzUTBGQlF6dFJRVU5xUWl4TFFVRkxMRTlCUVU4c1EwRkJRenRSUVVOaUxFdEJRVXNzVFVGQlRUdFpRVU5VTEU5QlFVODdaMEpCUTB3c2MwTkJRVkVzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRPMmRDUVVOb1FpeHpRMEZCVVN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF6dG5Ra0ZEYWtJc2MwTkJRVkVzUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJRenRuUWtGRGJFSXNjME5CUVZFc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTTdZVUZEYkVJc1EwRkJRenRSUVVOS0xFdEJRVXNzVTBGQlV6dFpRVU5hTEU5QlFVODdaMEpCUTB3c2MwTkJRVkVzUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRPMmRDUVVObUxITkRRVUZSTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRFppeHpRMEZCVVN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF6dG5Ra0ZEYUVJc2MwTkJRVkVzUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1lVRkRha0lzUTBGQlF6dExRVU5NTzBGQlEwZ3NRMEZCUXl4RFFVRkRPMEZCUlVZc2VVVkJRWGxGTzBGQlEzcEZMR2REUVVGblF6dEJRVU5vUXl3MFJVRkJORVU3UVVGRE5VVXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eERRVU4yUWl4SlFVRmhMRVZCUTJJc1QwRkJOa0lzUlVGRGFrSXNSVUZCUlR0SlFVTmtMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRPMGxCUTNaQ0xFMUJRVTBzUzBGQlN5eEhRVUZITEhGRVFVRnpRaXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTTVReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eHhSRUZCYzBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZET1VNc1NVRkJTU3hMUVVGTExFZEJRVWNzUzBGQlN5eEpRVUZKTEVOQlFVTXNSVUZCUlR0UlFVTjBRaXdyUTBGQkswTTdVVUZETDBNc1QwRkJUeXhGUVVGRkxFTkJRVU03UzBGRFdEdEpRVU5FTEU5QlFVOHNRMEZCUXl4blJFRkJhVUlzUTBGQlF5eEpRVUZKTEVWQlFVVXNOa05CUVdNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNwRUxFTkJRVU1zUTBGQlF6dEJRVVZHTEUxQlFVMHNZVUZCWVN4SFFVRkhMRU5CUTNCQ0xFOUJRVFpDTEVWQlF6ZENMRkZCUVdkQ0xFVkJRMDBzUlVGQlJUdEpRVU40UWl4TlFVRk5MRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXp0SlFVTjJRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eG5SVUZCYVVNc1EwRkRPVU1zYVVSQlFXdENMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVU40UWl4UlFVRlJMRU5CUTFRc1EwRkJRenRKUVVOR0xFOUJRVThzUTBGQlF5eG5SRUZCYVVJc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVXNaMFJCUVdsQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRkRVVzUTBGQlF5eERRVUZETzBGQlJVWXNUVUZCVFN4MVFrRkJkVUlzUjBGQlJ5eERRVU01UWl4UFFVRnBReXhGUVVOcVF5eEhRVUZYTEVWQlExZ3NTVUZCWVN4RlFVTkVMRVZCUVVVN1NVRkRaQ3hOUVVGTkxFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNTMEZCU3l4SFFVRkhMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU03U1VGRGJFTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMGxCUTI1RExFMUJRVTBzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOc1FpeE5RVUZOTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGJFSXNUVUZCVFN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEyeENMRTFCUVUwc1QwRkJUeXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRPVU1zVFVGQlRTeExRVUZMTEVkQlFVY3NUMEZCVHl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRE9VSXNTVUZCU1N4UFFVRlBMRXRCUVVzc1EwRkJReXhKUVVGSkxFdEJRVXNzU1VGQlNTeERRVUZETEVWQlFVVTdVVUZETDBJc1QwRkJUeXhGUVVGRkxFTkJRVU03UzBGRFdEdEpRVU5FTEUxQlFVMHNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdTVUZEYmtNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRE1VSXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRNVUlzVDBGQlR6dFJRVU5NTEhORFFVRlJMRU5CUTA0c1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFZEJRVWNzVDBGQlR5eEZRVU4wUXl4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRM1pETzFGQlEwUXNjME5CUVZFc1EwRkRUaXhEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU1zUjBGQlJ5eFBRVUZQTEVWQlEzUkRMRU5CUVVNc1JVRkJSU3hIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJReXhIUVVGSExFOUJRVThzUTBGRGRrTTdTMEZEUml4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRE8wRkJSVXNzVFVGQlRTeHpRa0ZCYzBJc1IwRkJSeXhEUVVOd1F5eE5RVUZuUWl4RlFVTm9RaXhOUVVGakxFVkJRMlFzU1VGQllTeEZRVU5FTEVWQlFVVTdTVUZEWkN4SlFVRkpMRTFCUVUwc1MwRkJTeXhEUVVGRExFVkJRVVU3VVVGRGFFSXNUMEZCVHl4eFJFRkJjMElzUTBGQlF5eEpRVUZKTEVWQlFVVXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03UzBGRGJrVTdTVUZEUkN4TlFVRk5MRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEYkVJc1RVRkJUU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTJ4Q0xFMUJRVTBzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOc1FpeE5RVUZOTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExEaERRVUZsTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkRka01zVFVGQlRTeERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRPMGxCUTJwQ0xFMUJRVTBzVDBGQlR5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU01UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEU5QlFVOHNSMEZCUnl4VlFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJTU3hEUVVGRExFVkJRVU03U1VGRGVrUXNTVUZCU1N4UFFVRlBMRXRCUVVzc1EwRkJReXhKUVVGSkxFdEJRVXNzU1VGQlNTeERRVUZETEVWQlFVVTdVVUZETDBJc1QwRkJUeXhGUVVGRkxFTkJRVU03UzBGRFdEdEpRVU5FTEUxQlFVMHNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdTVUZEYmtNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVONlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlJYcERMRTlCUVU4N1VVRkRUQ3h6UTBGQlVTeERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU1zUjBGQlJ5eFBRVUZQTEVWQlFVVXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXp0UlFVTjRSU3h6UTBGQlVTeERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU1zUjBGQlJ5eFBRVUZQTEVWQlFVVXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXp0TFFVTjZSU3hEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETzBGQlJVWXNiVVZCUVcxRk8wRkJRMjVGTEhGRVFVRnhSRHRCUVVNNVF5eE5RVUZOTEhkQ1FVRjNRaXhIUVVGSExFTkJRM1JETEU5QlFXbERPMEZCUTJwRExIRkZRVUZ4UlR0QlFVTnlSU3cwUTBGQk5FTTdRVUZETlVNc1owSkJRWGRDTzBGQlEzaENMSEZGUVVGeFJUdEJRVU55UlN4NVFrRkJlVUk3UVVGRGVrSXNTMEZCWlN4RlFVTk1MRVZCUVVVN1NVRkRXaXhOUVVGTkxHMUNRVUZ0UWl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJRenRKUVVOMlJDeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFZEJRVWNzYlVKQlFXMUNMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGNFUXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeEhRVUZITEcxQ1FVRnRRaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlJYSkVMRTFCUVUwc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dEpRVU5vUkN4TlFVRk5MRU5CUVVNc1JVRkJSU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEhRVUZITERoRFFVRmxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRmVrTXNORU5CUVRSRE8wbEJRelZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRWRCUVVjc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRE8wbEJSWEJETEUxQlFVMHNUMEZCVHl4SFFVRkhMRmRCUVVVc1JVRkJTU3hEUVVGRExFbEJRVWNzVlVGQlF5eEZRVUZKTEVOQlFVTXNTVUZCUnl4WFFVRkZMRVZCUVVrc1EwRkJReXhKUVVGSExGVkJRVU1zUlVGQlNTeERRVUZETEVWQlFVTTdTVUZEY0VRc01FSkJRVEJDTzBsQlF6RkNMRTFCUVUwc1EwRkJReXhIUVVOTUxFTkJRVU1zUTBGQlF5eEZRVUZGTEVkQlFVY3NWVUZCUXl4RlFVRkpMRU5CUVVNN1VVRkRXQ3hYUVVGWExFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFVVXNUMEZCVHl4SFFVRkhMRlZCUVVNc1JVRkJTU3hEUVVGRExFbEJRVWNzVlVGQlF5eEZRVUZKTEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNN1VVRkRka1VzVDBGQlR5eERRVUZETzBsQlJWWXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRE8wbEJSVGRDTEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhWUVVGRExFVkJRVWtzUTBGQlF5eEpRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1ZVRkJReXhGUVVGSkxFTkJRVU1zU1VGQlJ5eFZRVUZETEVWQlFVa3NRMEZCUXl4SlFVRkhMRlZCUVVNc1JVRkJTU3hEUVVGRExFbEJRVWNzVlVGQlF5eEZRVUZKTEVOQlFVTXNSVUZCUXl4RFFVRkRPMGxCUXpsRUxFOUJRVThzYzBOQlFWRXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGRrTXNRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3cyUWtGQk5rSXNSMEZCUnl4RFFVTXpReXhQUVVsNVFqdEJRVU42UWl4MVJVRkJkVVU3UVVGRGRrVXNNa1JCUVRKRU8wRkJRek5FTEdkQ1FVRjNRanRCUVVONFFpeHhSVUZCY1VVN1FVRkRja1VzZVVKQlFYbENPMEZCUTNwQ0xFdEJRV1VzUlVGRFRDeEZRVUZGTzBsQlExb3NUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTTdTVUZEZGtRc1RVRkJUU3hYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETzBsQlEyaEVMRTFCUVUwc1QwRkJUeXhIUVVGSExGVkJRVlVzUTBGQlF5eFBRVUZQTEVWQlFVVXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dEpRVVY2UkN4SlFVRkpMRmRCUVZjc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGNFSXNTVUZCU1N4WlFVRlpMRWRCUVc5Q0xFbEJRVWtzUTBGQlF6dEpRVU42UXl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVFVGQlRTeEZRVUZGTEVWQlFVVTdVVUZEZWtJc1RVRkJUU3hSUVVGUkxFZEJRVWNzVjBGQlZ5eEhRVUZITERaRFFVRmpMRU5CUVVNc1MwRkJTeXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTJoRkxFbEJRVWtzVVVGQlVTeEhRVUZITEZkQlFWY3NSVUZCUlR0WlFVTXhRaXhYUVVGWExFZEJRVWNzVVVGQlVTeERRVUZETzFsQlEzWkNMRmxCUVZrc1IwRkJSeXhOUVVGTkxFTkJRVU03VTBGRGRrSTdTVUZEU0N4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOSUxFOUJRVThzV1VGQllTeERRVUZETzBGQlEzWkNMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzY1VKQlFYRkNMRWRCUVVjc1EwRkROVUlzUlVGQlV5eEZRVU5VTEVWQlFWTXNSVUZEVkN4RlFVRlRMRVZCUTFRc1JVRkJVeXhGUVVOVUxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCVVN4RlFVTm1MR0ZCUVhGQ0xFVkJRM0pDTEVWQlFVVTdTVUZEUml4NVJVRkJlVVU3U1VGRGVrVXNUVUZCVFN4UlFVRlJMRWRCUVVjc1EwRkJReXhEUVVGVExFVkJRVVVzUjBGQlZ5eEZRVUZGTEVWQlFVVXNRMEZETVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTTdVVUZETlVJc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJRenRSUVVOd1F5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXp0UlFVTjBReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGTTBJc2NVTkJRWEZETzBsQlEzSkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU5XTEU5QlFVOHNRMEZCUXl4SlFVRkpMRWRCUVVjc1JVRkJSVHRSUVVObUxFMUJRVTBzUlVGQlJTeEhRVUZITEZGQlFWRXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRE1VSXNUVUZCVFN4RlFVRkZMRWRCUVVjc1VVRkJVU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVXhRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVZ3UlN4SlFVRkpMRWxCUVVrc1IwRkJSeXhoUVVGaExFVkJRVVU3V1VGRGVFSXNUMEZCVHl4SlFVRkpMRU5CUVVNN1UwRkRZanRSUVVWRUxFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTTdTMEZEV0R0SlFVVkVMRTlCUVU4c1MwRkJTeXhEUVVGRE8wRkJRMllzUTBGQlF5eERRVUZETzBGQlJVWXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eERRVU42UWl4UlFVRnJRaXhGUVVOc1FpeERRVUZUTEVWQlExUXNRMEZCVXl4RlFVTlVMRk5CUVN0RExFVkJReTlETEVWQlFVVTdTVUZEUml4TlFVRk5MRWRCUVVjc1IwRkJSeXgzUkVGQlpTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMGxCUTNSRExFMUJRVTBzVFVGQlRTeEhRVUZ4UWl4RlFVRkZMRU5CUVVNN1NVRkRjRU1zU1VGQlNTeEhRVUZITEVkQlFVY3NTMEZCU3l4RFFVRkRMRU5CUVVNc2MwTkJRWE5ETzBsQlEzWkVMRXRCUVVzc1RVRkJUU3hUUVVGVExFbEJRVWtzUjBGQlJ5eEZRVUZGTzFGQlF6TkNMRWxCUVVrc1UwRkJVeXhEUVVGRExFVkJRVVVzUzBGQlN5eE5RVUZOTEVWQlFVVTdXVUZETTBJc1IwRkJSeXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETzFsQlExZ3NTVUZCU1N4SFFVRkhMRVZCUVVVN1owSkJRMUFzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdZVUZEY2tRN1UwRkRSanRoUVVGTkxFbEJRVWtzVTBGQlV5eERRVUZETEVWQlFVVXNTMEZCU3l4VlFVRlZMRVZCUVVVN1dVRkRkRU1zU1VGQlNTeEhRVUZITEVWQlFVVTdaMEpCUTFBc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEzQkVMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU53UkN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVOeVJEdFRRVU5HTzJGQlFVMHNTVUZCU1N4VFFVRlRMRU5CUVVNc1JVRkJSU3hMUVVGTExGRkJRVkVzUlVGQlJUdFpRVU53UXl4SlFVRkpMRWRCUVVjc1JVRkJSVHRuUWtGRFVDeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0aFFVTnlSRHRUUVVOR08wdEJRMFk3U1VGRFJDeEpRVUZKTEUxQlFVMHNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhGUVVGRk8xRkJRM1JDTEVsQlFVa3NVMEZCVXl4TFFVRkxMRTlCUVU4c1JVRkJSVHRaUVVONlFpeFBRVUZQTEhWRVFVRm5RaXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkRka003VVVGRFJDeE5RVUZOTEdGQlFXRXNSMEZCUnl4eFJVRkJiMElzUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRekZFTEU5QlFVOHNkVVJCUVdkQ0xFTkJRVU1zWVVGQllTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVNNVF6dEpRVU5FTEU5QlFVOHNTMEZCU3l4RFFVRkRPMEZCUTJZc1EwRkJReXhEUVVGRE8wRkJSVVlzVFVGQlRTeHBRa0ZCYVVJc1IwRkJSeXhEUVVONFFpeFJRVUZyUWl4RlFVTnNRaXhEUVVGVExFVkJRMVFzUTBGQlV5eEZRVU5VTEdGQlFYRkNMRVZCUTNKQ0xFVkJRVVU3U1VGRFJpeHRRMEZCYlVNN1NVRkRia01zVFVGQlRTeEhRVUZITEVkQlFVY3NkMFJCUVdVc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVVYwUXl3eVEwRkJNa003U1VGRE0wTXNNRVZCUVRCRk8wbEJRekZGTEVsQlFVa3NVVUZCVVN4SFFVRlZMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJUZENMRTlCUVU4c1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTzFGQlEzQkRMSFZEUVVGMVF6dFJRVU4yUXl4elEwRkJjME03VVVGRGRFTXNTVUZCU1N4RlFVRkZMRXRCUVVzc1RVRkJUU3hGUVVGRk8xbEJRMnBDTEhkQ1FVRjNRanRaUVVONFFpeFJRVUZSTEVkQlFVY3NTVUZCZDBJc1EwRkJRenRaUVVOd1F5eDFSRUZCZFVRN1dVRkRka1FzWjBKQlFXZENPMU5CUTJwQ08yRkJRVTBzU1VGQlNTeEZRVUZGTEV0QlFVc3NWVUZCVlN4RlFVRkZPMWxCUXpWQ0xHdERRVUZyUXp0WlFVTnNReXh0UlVGQmJVVTdXVUZEYmtVc01rSkJRVEpDTzFsQlF6TkNMRTFCUVUwc1JVRkJSU3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlZTeERRVUZETzFsQlEzWkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlZTeERRVUZETzFsQlEzWkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlZTeERRVUZETzFsQlJYWkRMRTFCUVUwc1JVRkJSU3hIUVVGSExGRkJRVkVzUTBGQlF6dFpRVU53UWl4UlFVRlJMRWRCUVVjc1JVRkJSU3hEUVVGRE8xbEJSV1FzYlVOQlFXMURPMWxCUTI1RExEaERRVUU0UXp0WlFVTTVReXgxUkVGQmRVUTdXVUZEZGtRc1RVRkJUU3hOUVVGTkxFZEJRVWNzY1VKQlFYRkNMRU5CUTJ4RExFVkJRVVVzUlVGRFJpeEZRVUZGTEVWQlEwWXNSVUZCUlN4RlFVTkdMRVZCUVVVc1JVRkRSaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSVUZEVGl4aFFVRmhMRU5CUTJRc1EwRkJRenRaUVVWR0xEaEVRVUU0UkR0WlFVTTVSQ3h0UlVGQmJVVTdXVUZEYmtVc2NVTkJRWEZETzFsQlEzSkRMRTlCUVU4c1RVRkJUU3hEUVVGRE8xTkJRMlk3WVVGQlRTeEpRVUZKTEVWQlFVVXNTMEZCU3l4UlFVRlJMRVZCUVVVN1dVRkRNVUlzVDBGQlR5eHJRa0ZCYTBJc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRUUVVOd1JEdGhRVUZOTEVsQlFVa3NSVUZCUlN4TFFVRkxMRlZCUVZVc1JVRkJSVHRaUVVNMVFpeDFRa0ZCZFVJN1dVRkRka0lzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4cFEwRkJhVU1zUTBGQlF5eERRVUZETzFOQlEycEVPMUZCUlVRc1QwRkJUeXhMUVVGTExFTkJRVU03U1VGRFppeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTk1MRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5bGJHVnRaVzUwTDJOdmJHeHBjMmx2Ymk1MGN6ODBPVGRoSWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENBcUlHRnpJRWRCSUdaeWIyMGdYQ0l1TGk5bllWd2lPMXh1YVcxd2IzSjBJQ29nWVhNZ1IwRlFiMmx1ZENCbWNtOXRJRndpTGk0dloyRndiMmx1ZEhOY0lqdGNibWx0Y0c5eWRDQXFJR0Z6SUVkQlJHbHlaV04wYVc5dUlHWnliMjBnWENJdUxpOW5ZV1JwY21WamRHbHZibk5jSWp0Y2JtbHRjRzl5ZENBcUlHRnpJRWRCVEdsdVpTQm1jbTl0SUZ3aUxpNHZaMkZzYVc1bGMxd2lPMXh1YVcxd2IzSjBJQ29nWVhNZ1IwRlVjbUZ1YzJadmNtMGdabkp2YlNCY0lpNHVMMmRoZEhKaGJuTm1iM0p0YzF3aU8xeHVYRzVwYlhCdmNuUWdlMXh1SUNCa2FYTjBZVzVqWlRKa0xGeHVJQ0J5YjNSaGRHVlFiMmx1ZEN4Y2JpQWdhWE5RWVhSb1FVeHZiM0FzWEc0Z0lHbHpVRzlwYm5SSmJsQnZiSGxuYjI0c1hHNGdJSEp2ZEdGMFpTeGNibjBnWm5KdmJTQmNJaTR1TDIxaGRHaGNJanRjYm1sdGNHOXlkQ0I3SUhCdmFXNTBjMDl1UW1WNmFXVnlRM1Z5ZG1WeklIMGdabkp2YlNCY0luQnZhVzUwY3kxdmJpMWpkWEoyWlZ3aU8xeHVYRzVwYlhCdmNuUWdlMXh1SUNCT2IyNUVaV3hsZEdWa1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5Rc1hHNGdJRVY0WTJGc2FXUnlZWGRDYVc1a1lXSnNaVVZzWlcxbGJuUXNYRzRnSUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwTEZ4dUlDQkZlR05oYkdsa2NtRjNVbVZqZEdGdVoyeGxSV3hsYldWdWRDeGNiaUFnUlhoallXeHBaSEpoZDBScFlXMXZibVJGYkdWdFpXNTBMRnh1SUNCRmVHTmhiR2xrY21GM1ZHVjRkRVZzWlcxbGJuUXNYRzRnSUVWNFkyRnNhV1J5WVhkRmJHeHBjSE5sUld4bGJXVnVkQ3hjYmlBZ1RtOXVSR1ZzWlhSbFpDeGNiaUFnUlhoallXeHBaSEpoZDBaeVpXVkVjbUYzUld4bGJXVnVkQ3hjYmlBZ1JYaGpZV3hwWkhKaGQwbHRZV2RsUld4bGJXVnVkQ3hjYmlBZ1JYaGpZV3hwWkhKaGQweHBibVZoY2tWc1pXMWxiblFzWEc1OUlHWnliMjBnWENJdUwzUjVjR1Z6WENJN1hHNWNibWx0Y0c5eWRDQjdJR2RsZEVWc1pXMWxiblJCWW5OdmJIVjBaVU52YjNKa2N5d2daMlYwUTNWeWRtVlFZWFJvVDNCekxDQkNiM1Z1WkhNZ2ZTQm1jbTl0SUZ3aUxpOWliM1Z1WkhOY0lqdGNibWx0Y0c5eWRDQjdJRkJ2YVc1MElIMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdleUJFY21GM1lXSnNaU0I5SUdaeWIyMGdYQ0p5YjNWbmFHcHpMMkpwYmk5amIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCQmNIQlRkR0YwWlNCOUlHWnliMjBnWENJdUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2daMlYwVTJoaGNHVkdiM0pGYkdWdFpXNTBJSDBnWm5KdmJTQmNJaTR1TDNKbGJtUmxjbVZ5TDNKbGJtUmxja1ZzWlcxbGJuUmNJanRjYm1sdGNHOXlkQ0I3SUdoaGMwSnZkVzVrVkdWNGRFVnNaVzFsYm5Rc0lHbHpTVzFoWjJWRmJHVnRaVzUwSUgwZ1puSnZiU0JjSWk0dmRIbHdaVU5vWldOcmMxd2lPMXh1YVcxd2IzSjBJSHNnYVhOVVpYaDBSV3hsYldWdWRDQjlJR1p5YjIwZ1hDSXVYQ0k3WEc1cGJYQnZjblFnZXlCcGMxUnlZVzV6Y0dGeVpXNTBJSDBnWm5KdmJTQmNJaTR1TDNWMGFXeHpYQ0k3WEc1Y2JtTnZibk4wSUdselJXeGxiV1Z1ZEVSeVlXZG5ZV0pzWlVaeWIyMUpibk5wWkdVZ1BTQW9YRzRnSUdWc1pXMWxiblE2SUU1dmJrUmxiR1YwWldSRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEN4Y2JpazZJR0p2YjJ4bFlXNGdQVDRnZTF4dUlDQnBaaUFvWld4bGJXVnVkQzUwZVhCbElEMDlQU0JjSW1GeWNtOTNYQ0lwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJSDFjYmx4dUlDQnBaaUFvWld4bGJXVnVkQzUwZVhCbElEMDlQU0JjSW1aeVpXVmtjbUYzWENJcElIdGNiaUFnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnZlZ4dUlDQmpiMjV6ZENCcGMwUnlZV2RuWVdKc1pVWnliMjFKYm5OcFpHVWdQVnh1SUNBZ0lDRnBjMVJ5WVc1emNHRnlaVzUwS0dWc1pXMWxiblF1WW1GamEyZHliM1Z1WkVOdmJHOXlLU0I4ZkNCb1lYTkNiM1Z1WkZSbGVIUkZiR1Z0Wlc1MEtHVnNaVzFsYm5RcE8xeHVJQ0JwWmlBb1pXeGxiV1Z1ZEM1MGVYQmxJRDA5UFNCY0lteHBibVZjSWlrZ2UxeHVJQ0FnSUhKbGRIVnliaUJwYzBSeVlXZG5ZV0pzWlVaeWIyMUpibk5wWkdVZ0ppWWdhWE5RWVhSb1FVeHZiM0FvWld4bGJXVnVkQzV3YjJsdWRITXBPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQnBjMFJ5WVdkbllXSnNaVVp5YjIxSmJuTnBaR1VnZkh3Z2FYTkpiV0ZuWlVWc1pXMWxiblFvWld4bGJXVnVkQ2s3WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2FHbDBWR1Z6ZENBOUlDaGNiaUFnWld4bGJXVnVkRG9nVG05dVJHVnNaWFJsWkVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwTEZ4dUlDQmhjSEJUZEdGMFpUb2dRWEJ3VTNSaGRHVXNYRzRnSUhnNklHNTFiV0psY2l4Y2JpQWdlVG9nYm5WdFltVnlMRnh1S1RvZ1ltOXZiR1ZoYmlBOVBpQjdYRzRnSUM4dklFaHZkeUJ0WVc1NUlIQnBlR1ZzY3lCdlptWWdkR2hsSUhOb1lYQmxJR0p2ZFc1a1lYSjVJSGRsSUhOMGFXeHNJR052Ym5OcFpHVnlJR0VnYUdsMFhHNGdJR052Ym5OMElIUm9jbVZ6YUc5c1pDQTlJREV3SUM4Z1lYQndVM1JoZEdVdWVtOXZiUzUyWVd4MVpUdGNiaUFnWTI5dWMzUWdjRzlwYm5RNklGQnZhVzUwSUQwZ1czZ3NJSGxkTzF4dVhHNGdJR2xtSUNocGMwVnNaVzFsYm5SVFpXeGxZM1JsWkNoaGNIQlRkR0YwWlN3Z1pXeGxiV1Z1ZENrcElIdGNiaUFnSUNCeVpYUjFjbTRnYVhOUWIybHVkRWhwZEhScGJtZEZiR1Z0Wlc1MFFtOTFibVJwYm1kQ2IzZ29aV3hsYldWdWRDd2djRzlwYm5Rc0lIUm9jbVZ6YUc5c1pDazdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdhWE5JYVhSMGFXNW5SV3hsYldWdWRFNXZkRU52Ym5OcFpHVnlhVzVuUW05MWJtUnBibWRDYjNnb1pXeGxiV1Z1ZEN3Z1lYQndVM1JoZEdVc0lIQnZhVzUwS1R0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnBjMGhwZEhScGJtZEZiR1Z0Wlc1MFFtOTFibVJwYm1kQ2IzaFhhWFJvYjNWMFNHbDBkR2x1WjBWc1pXMWxiblFnUFNBb1hHNGdJR1ZzWlcxbGJuUTZJRTV2YmtSbGJHVjBaV1JGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ3hjYmlBZ1lYQndVM1JoZEdVNklFRndjRk4wWVhSbExGeHVJQ0I0T2lCdWRXMWlaWElzWEc0Z0lIazZJRzUxYldKbGNpeGNiaWs2SUdKdmIyeGxZVzRnUFQ0Z2UxeHVJQ0JqYjI1emRDQjBhSEpsYzJodmJHUWdQU0F4TUNBdklHRndjRk4wWVhSbExucHZiMjB1ZG1Gc2RXVTdYRzVjYmlBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FoYVhOSWFYUjBhVzVuUld4bGJXVnVkRTV2ZEVOdmJuTnBaR1Z5YVc1blFtOTFibVJwYm1kQ2IzZ29aV3hsYldWdWRDd2dZWEJ3VTNSaGRHVXNJRnQ0TENCNVhTa2dKaVpjYmlBZ0lDQnBjMUJ2YVc1MFNHbDBkR2x1WjBWc1pXMWxiblJDYjNWdVpHbHVaMEp2ZUNobGJHVnRaVzUwTENCYmVDd2dlVjBzSUhSb2NtVnphRzlzWkNsY2JpQWdLVHRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCcGMwaHBkSFJwYm1kRmJHVnRaVzUwVG05MFEyOXVjMmxrWlhKcGJtZENiM1Z1WkdsdVowSnZlQ0E5SUNoY2JpQWdaV3hsYldWdWREb2dUbTl1UkdWc1pYUmxaRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBMRnh1SUNCaGNIQlRkR0YwWlRvZ1FYQndVM1JoZEdVc1hHNGdJSEJ2YVc1ME9pQlFiMmx1ZEN4Y2JpazZJR0p2YjJ4bFlXNGdQVDRnZTF4dUlDQmpiMjV6ZENCMGFISmxjMmh2YkdRZ1BTQXhNQ0F2SUdGd2NGTjBZWFJsTG5wdmIyMHVkbUZzZFdVN1hHNWNiaUFnWTI5dWMzUWdZMmhsWTJzZ1BTQnBjMVJsZUhSRmJHVnRaVzUwS0dWc1pXMWxiblFwWEc0Z0lDQWdQeUJwYzFOMGNtbGpkR3g1U1c1emFXUmxYRzRnSUNBZ09pQnBjMFZzWlcxbGJuUkVjbUZuWjJGaWJHVkdjbTl0U1c1emFXUmxLR1ZzWlcxbGJuUXBYRzRnSUNBZ1B5QnBjMGx1YzJsa1pVTm9aV05yWEc0Z0lDQWdPaUJwYzA1bFlYSkRhR1ZqYXp0Y2JpQWdjbVYwZFhKdUlHaHBkRlJsYzNSUWIybHVkRUZuWVdsdWMzUkZiR1Z0Wlc1MEtIc2daV3hsYldWdWRDd2djRzlwYm5Rc0lIUm9jbVZ6YUc5c1pDd2dZMmhsWTJzZ2ZTazdYRzU5TzF4dVhHNWpiMjV6ZENCcGMwVnNaVzFsYm5SVFpXeGxZM1JsWkNBOUlDaGNiaUFnWVhCd1UzUmhkR1U2SUVGd2NGTjBZWFJsTEZ4dUlDQmxiR1Z0Wlc1ME9pQk9iMjVFWld4bGRHVmtQRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBQaXhjYmlrZ1BUNGdZWEJ3VTNSaGRHVXVjMlZzWldOMFpXUkZiR1Z0Wlc1MFNXUnpXMlZzWlcxbGJuUXVhV1JkTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYVhOUWIybHVkRWhwZEhScGJtZEZiR1Z0Wlc1MFFtOTFibVJwYm1kQ2IzZ2dQU0FvWEc0Z0lHVnNaVzFsYm5RNklFNXZia1JsYkdWMFpXUThSWGhqWVd4cFpISmhkMFZzWlcxbGJuUStMRnh1SUNCYmVDd2dlVjA2SUZCdmFXNTBMRnh1SUNCMGFISmxjMmh2YkdRNklHNTFiV0psY2l4Y2Jpa2dQVDRnZTF4dUlDQmpiMjV6ZENCYmVERXNJSGt4TENCNE1pd2dlVEpkSUQwZ1oyVjBSV3hsYldWdWRFRmljMjlzZFhSbFEyOXZjbVJ6S0dWc1pXMWxiblFwTzF4dUlDQmpiMjV6ZENCbGJHVnRaVzUwUTJWdWRHVnlXQ0E5SUNoNE1TQXJJSGd5S1NBdklESTdYRzRnSUdOdmJuTjBJR1ZzWlcxbGJuUkRaVzUwWlhKWklEMGdLSGt4SUNzZ2VUSXBJQzhnTWp0Y2JpQWdMeThnY21WMlpYSnpaU0J5YjNSaGRHVWdkRzhnZEdGclpTQmxiR1Z0Wlc1MEozTWdZVzVuYkdVZ2FXNTBieUJoWTJOdmRXNTBMbHh1SUNCamIyNXpkQ0JiY205MFlYUmxaRmdzSUhKdmRHRjBaV1JaWFNBOUlISnZkR0YwWlNoY2JpQWdJQ0I0TEZ4dUlDQWdJSGtzWEc0Z0lDQWdaV3hsYldWdWRFTmxiblJsY2xnc1hHNGdJQ0FnWld4bGJXVnVkRU5sYm5SbGNsa3NYRzRnSUNBZ0xXVnNaVzFsYm5RdVlXNW5iR1VzWEc0Z0lDazdYRzVjYmlBZ2NtVjBkWEp1SUNoY2JpQWdJQ0J5YjNSaGRHVmtXQ0ErSUhneElDMGdkR2h5WlhOb2IyeGtJQ1ltWEc0Z0lDQWdjbTkwWVhSbFpGZ2dQQ0I0TWlBcklIUm9jbVZ6YUc5c1pDQW1KbHh1SUNBZ0lISnZkR0YwWldSWklENGdlVEVnTFNCMGFISmxjMmh2YkdRZ0ppWmNiaUFnSUNCeWIzUmhkR1ZrV1NBOElIa3lJQ3NnZEdoeVpYTm9iMnhrWEc0Z0lDazdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWW1sdVpHbHVaMEp2Y21SbGNsUmxjM1FnUFNBb1hHNGdJR1ZzWlcxbGJuUTZJRTV2YmtSbGJHVjBaV1E4UlhoallXeHBaSEpoZDBKcGJtUmhZbXhsUld4bGJXVnVkRDRzWEc0Z0lIc2dlQ3dnZVNCOU9pQjdJSGc2SUc1MWJXSmxjanNnZVRvZ2JuVnRZbVZ5SUgwc1hHNHBPaUJpYjI5c1pXRnVJRDArSUh0Y2JpQWdZMjl1YzNRZ2RHaHlaWE5vYjJ4a0lEMGdiV0Y0UW1sdVpHbHVaMGRoY0NobGJHVnRaVzUwTENCbGJHVnRaVzUwTG5kcFpIUm9MQ0JsYkdWdFpXNTBMbWhsYVdkb2RDazdYRzRnSUdOdmJuTjBJR05vWldOcklEMGdhWE5QZFhSemFXUmxRMmhsWTJzN1hHNGdJR052Ym5OMElIQnZhVzUwT2lCUWIybHVkQ0E5SUZ0NExDQjVYVHRjYmlBZ2NtVjBkWEp1SUdocGRGUmxjM1JRYjJsdWRFRm5ZV2x1YzNSRmJHVnRaVzUwS0hzZ1pXeGxiV1Z1ZEN3Z2NHOXBiblFzSUhSb2NtVnphRzlzWkN3Z1kyaGxZMnNnZlNrN1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdiV0Y0UW1sdVpHbHVaMGRoY0NBOUlDaGNiaUFnWld4bGJXVnVkRG9nUlhoallXeHBaSEpoZDBWc1pXMWxiblFzWEc0Z0lHVnNaVzFsYm5SWGFXUjBhRG9nYm5WdFltVnlMRnh1SUNCbGJHVnRaVzUwU0dWcFoyaDBPaUJ1ZFcxaVpYSXNYRzRwT2lCdWRXMWlaWElnUFQ0Z2UxeHVJQ0F2THlCQmJHbG5ibk1nWkdsaGJXOXVaSE1nZDJsMGFDQnlaV04wWVc1bmJHVnpYRzRnSUdOdmJuTjBJSE5vWVhCbFVtRjBhVzhnUFNCbGJHVnRaVzUwTG5SNWNHVWdQVDA5SUZ3aVpHbGhiVzl1WkZ3aUlEOGdNU0F2SUUxaGRHZ3VjM0Z5ZENneUtTQTZJREU3WEc0Z0lHTnZibk4wSUhOdFlXeHNaWEpFYVcxbGJuTnBiMjRnUFNCemFHRndaVkpoZEdsdklDb2dUV0YwYUM1dGFXNG9aV3hsYldWdWRGZHBaSFJvTENCbGJHVnRaVzUwU0dWcFoyaDBLVHRjYmlBZ0x5OGdWMlVnYldGclpTQjBhR1VnWW1sdVpHRmliR1VnWW05MWJtUmhjbmtnWW1sbloyVnlJR1p2Y2lCaWFXZG5aWElnWld4bGJXVnVkSE5jYmlBZ2NtVjBkWEp1SUUxaGRHZ3ViV0Y0S0RFMkxDQk5ZWFJvTG0xcGJpZ3dMakkxSUNvZ2MyMWhiR3hsY2tScGJXVnVjMmx2Yml3Z016SXBLVHRjYm4wN1hHNWNiblI1Y0dVZ1NHbDBWR1Z6ZEVGeVozTWdQU0I3WEc0Z0lHVnNaVzFsYm5RNklFNXZia1JsYkdWMFpXUkZlR05oYkdsa2NtRjNSV3hsYldWdWREdGNiaUFnY0c5cGJuUTZJRkJ2YVc1ME8xeHVJQ0IwYUhKbGMyaHZiR1E2SUc1MWJXSmxjanRjYmlBZ1kyaGxZMnM2SUNoa2FYTjBZVzVqWlRvZ2JuVnRZbVZ5TENCMGFISmxjMmh2YkdRNklHNTFiV0psY2lrZ1BUNGdZbTl2YkdWaGJqdGNibjA3WEc1Y2JtTnZibk4wSUdocGRGUmxjM1JRYjJsdWRFRm5ZV2x1YzNSRmJHVnRaVzUwSUQwZ0tHRnlaM002SUVocGRGUmxjM1JCY21kektUb2dZbTl2YkdWaGJpQTlQaUI3WEc0Z0lITjNhWFJqYUNBb1lYSm5jeTVsYkdWdFpXNTBMblI1Y0dVcElIdGNiaUFnSUNCallYTmxJRndpY21WamRHRnVaMnhsWENJNlhHNGdJQ0FnWTJGelpTQmNJbWx0WVdkbFhDSTZYRzRnSUNBZ1kyRnpaU0JjSW5SbGVIUmNJanBjYmlBZ0lDQmpZWE5sSUZ3aVpHbGhiVzl1WkZ3aU9seHVJQ0FnSUdOaGMyVWdYQ0psYkd4cGNITmxYQ0k2WEc0Z0lDQWdJQ0JqYjI1emRDQmthWE4wWVc1alpTQTlJR1JwYzNSaGJtTmxWRzlDYVc1a1lXSnNaVVZzWlcxbGJuUW9ZWEpuY3k1bGJHVnRaVzUwTENCaGNtZHpMbkJ2YVc1MEtUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCaGNtZHpMbU5vWldOcktHUnBjM1JoYm1ObExDQmhjbWR6TG5Sb2NtVnphRzlzWkNrN1hHNGdJQ0FnWTJGelpTQmNJbVp5WldWa2NtRjNYQ0k2SUh0Y2JpQWdJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lDQWdJV0Z5WjNNdVkyaGxZMnNvWEc0Z0lDQWdJQ0FnSUNBZ1pHbHpkR0Z1WTJWVWIxSmxZM1JoYm1kc1pTaGhjbWR6TG1Wc1pXMWxiblFzSUdGeVozTXVjRzlwYm5RcExGeHVJQ0FnSUNBZ0lDQWdJR0Z5WjNNdWRHaHlaWE5vYjJ4a0xGeHVJQ0FnSUNBZ0lDQXBYRzRnSUNBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnlaWFIxY200Z2FHbDBWR1Z6ZEVaeVpXVkVjbUYzUld4bGJXVnVkQ2hoY21kekxtVnNaVzFsYm5Rc0lHRnlaM011Y0c5cGJuUXNJR0Z5WjNNdWRHaHlaWE5vYjJ4a0tUdGNiaUFnSUNCOVhHNGdJQ0FnWTJGelpTQmNJbUZ5Y205M1hDSTZYRzRnSUNBZ1kyRnpaU0JjSW14cGJtVmNJanBjYmlBZ0lDQWdJSEpsZEhWeWJpQm9hWFJVWlhOMFRHbHVaV0Z5S0dGeVozTXBPMXh1SUNBZ0lHTmhjMlVnWENKelpXeGxZM1JwYjI1Y0lqcGNiaUFnSUNBZ0lHTnZibk52YkdVdWQyRnliaWhjYmlBZ0lDQWdJQ0FnWENKVWFHbHpJSE5vYjNWc1pDQnViM1FnYUdGd2NHVnVMQ0IzWlNCdVpXVmtJSFJ2SUdsdWRtVnpkR2xuWVhSbElIZG9lU0JwZENCa2IyVnpMbHdpTEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnZlZ4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHUnBjM1JoYm1ObFZHOUNhVzVrWVdKc1pVVnNaVzFsYm5RZ1BTQW9YRzRnSUdWc1pXMWxiblE2SUVWNFkyRnNhV1J5WVhkQ2FXNWtZV0pzWlVWc1pXMWxiblFzWEc0Z0lIQnZhVzUwT2lCUWIybHVkQ3hjYmlrNklHNTFiV0psY2lBOVBpQjdYRzRnSUhOM2FYUmphQ0FvWld4bGJXVnVkQzUwZVhCbEtTQjdYRzRnSUNBZ1kyRnpaU0JjSW5KbFkzUmhibWRzWlZ3aU9seHVJQ0FnSUdOaGMyVWdYQ0pwYldGblpWd2lPbHh1SUNBZ0lHTmhjMlVnWENKMFpYaDBYQ0k2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdaR2x6ZEdGdVkyVlViMUpsWTNSaGJtZHNaU2hsYkdWdFpXNTBMQ0J3YjJsdWRDazdYRzRnSUNBZ1kyRnpaU0JjSW1ScFlXMXZibVJjSWpwY2JpQWdJQ0FnSUhKbGRIVnliaUJrYVhOMFlXNWpaVlJ2UkdsaGJXOXVaQ2hsYkdWdFpXNTBMQ0J3YjJsdWRDazdYRzRnSUNBZ1kyRnpaU0JjSW1Wc2JHbHdjMlZjSWpwY2JpQWdJQ0FnSUhKbGRIVnliaUJrYVhOMFlXNWpaVlJ2Uld4c2FYQnpaU2hsYkdWdFpXNTBMQ0J3YjJsdWRDazdYRzRnSUgxY2JuMDdYRzVjYm1OdmJuTjBJR2x6VTNSeWFXTjBiSGxKYm5OcFpHVWdQU0FvWkdsemRHRnVZMlU2SUc1MWJXSmxjaXdnZEdoeVpYTm9iMnhrT2lCdWRXMWlaWElwT2lCaWIyOXNaV0Z1SUQwK0lIdGNiaUFnY21WMGRYSnVJR1JwYzNSaGJtTmxJRHdnTUR0Y2JuMDdYRzVjYm1OdmJuTjBJR2x6U1c1emFXUmxRMmhsWTJzZ1BTQW9aR2x6ZEdGdVkyVTZJRzUxYldKbGNpd2dkR2h5WlhOb2IyeGtPaUJ1ZFcxaVpYSXBPaUJpYjI5c1pXRnVJRDArSUh0Y2JpQWdjbVYwZFhKdUlHUnBjM1JoYm1ObElEd2dkR2h5WlhOb2IyeGtPMXh1ZlR0Y2JseHVZMjl1YzNRZ2FYTk9aV0Z5UTJobFkyc2dQU0FvWkdsemRHRnVZMlU2SUc1MWJXSmxjaXdnZEdoeVpYTm9iMnhrT2lCdWRXMWlaWElwT2lCaWIyOXNaV0Z1SUQwK0lIdGNiaUFnY21WMGRYSnVJRTFoZEdndVlXSnpLR1JwYzNSaGJtTmxLU0E4SUhSb2NtVnphRzlzWkR0Y2JuMDdYRzVjYm1OdmJuTjBJR2x6VDNWMGMybGtaVU5vWldOcklEMGdLR1JwYzNSaGJtTmxPaUJ1ZFcxaVpYSXNJSFJvY21WemFHOXNaRG9nYm5WdFltVnlLVG9nWW05dmJHVmhiaUE5UGlCN1hHNGdJSEpsZEhWeWJpQXdJRHc5SUdScGMzUmhibU5sSUNZbUlHUnBjM1JoYm1ObElEd2dkR2h5WlhOb2IyeGtPMXh1ZlR0Y2JseHVZMjl1YzNRZ1pHbHpkR0Z1WTJWVWIxSmxZM1JoYm1kc1pTQTlJQ2hjYmlBZ1pXeGxiV1Z1ZERwY2JpQWdJQ0I4SUVWNFkyRnNhV1J5WVhkU1pXTjBZVzVuYkdWRmJHVnRaVzUwWEc0Z0lDQWdmQ0JGZUdOaGJHbGtjbUYzVkdWNGRFVnNaVzFsYm5SY2JpQWdJQ0I4SUVWNFkyRnNhV1J5WVhkR2NtVmxSSEpoZDBWc1pXMWxiblJjYmlBZ0lDQjhJRVY0WTJGc2FXUnlZWGRKYldGblpVVnNaVzFsYm5Rc1hHNGdJSEJ2YVc1ME9pQlFiMmx1ZEN4Y2JpazZJRzUxYldKbGNpQTlQaUI3WEc0Z0lHTnZibk4wSUZzc0lIQnZhVzUwVW1Wc0xDQm9kMmxrZEdnc0lHaG9aV2xuYUhSZElEMGdjRzlwYm5SU1pXeGhkR2wyWlZSdlJXeGxiV1Z1ZENobGJHVnRaVzUwTENCd2IybHVkQ2s3WEc0Z0lISmxkSFZ5YmlCTllYUm9MbTFoZUNoY2JpQWdJQ0JIUVZCdmFXNTBMbVJwYzNSaGJtTmxWRzlNYVc1bEtIQnZhVzUwVW1Wc0xDQkhRVXhwYm1VdVpYRjFZWFJwYjI0b01Dd2dNU3dnTFdob1pXbG5hSFFwS1N4Y2JpQWdJQ0JIUVZCdmFXNTBMbVJwYzNSaGJtTmxWRzlNYVc1bEtIQnZhVzUwVW1Wc0xDQkhRVXhwYm1VdVpYRjFZWFJwYjI0b01Td2dNQ3dnTFdoM2FXUjBhQ2twTEZ4dUlDQXBPMXh1ZlR0Y2JseHVZMjl1YzNRZ1pHbHpkR0Z1WTJWVWIwUnBZVzF2Ym1RZ1BTQW9YRzRnSUdWc1pXMWxiblE2SUVWNFkyRnNhV1J5WVhkRWFXRnRiMjVrUld4bGJXVnVkQ3hjYmlBZ2NHOXBiblE2SUZCdmFXNTBMRnh1S1RvZ2JuVnRZbVZ5SUQwK0lIdGNiaUFnWTI5dWMzUWdXeXdnY0c5cGJuUlNaV3dzSUdoM2FXUjBhQ3dnYUdobGFXZG9kRjBnUFNCd2IybHVkRkpsYkdGMGFYWmxWRzlGYkdWdFpXNTBLR1ZzWlcxbGJuUXNJSEJ2YVc1MEtUdGNiaUFnWTI5dWMzUWdjMmxrWlNBOUlFZEJUR2x1WlM1bGNYVmhkR2x2Ymlob2FHVnBaMmgwTENCb2QybGtkR2dzSUMxb2FHVnBaMmgwSUNvZ2FIZHBaSFJvS1R0Y2JpQWdjbVYwZFhKdUlFZEJVRzlwYm5RdVpHbHpkR0Z1WTJWVWIweHBibVVvY0c5cGJuUlNaV3dzSUhOcFpHVXBPMXh1ZlR0Y2JseHVZMjl1YzNRZ1pHbHpkR0Z1WTJWVWIwVnNiR2x3YzJVZ1BTQW9YRzRnSUdWc1pXMWxiblE2SUVWNFkyRnNhV1J5WVhkRmJHeHBjSE5sUld4bGJXVnVkQ3hjYmlBZ2NHOXBiblE2SUZCdmFXNTBMRnh1S1RvZ2JuVnRZbVZ5SUQwK0lIdGNiaUFnWTI5dWMzUWdXM0J2YVc1MFVtVnNMQ0IwWVc1blpXNTBYU0E5SUdWc2JHbHdjMlZRWVhKaGJYTkdiM0pVWlhOMEtHVnNaVzFsYm5Rc0lIQnZhVzUwS1R0Y2JpQWdjbVYwZFhKdUlDMUhRVXhwYm1VdWMybG5iaWgwWVc1blpXNTBLU0FxSUVkQlVHOXBiblF1WkdsemRHRnVZMlZVYjB4cGJtVW9jRzlwYm5SU1pXd3NJSFJoYm1kbGJuUXBPMXh1ZlR0Y2JseHVZMjl1YzNRZ1pXeHNhWEJ6WlZCaGNtRnRjMFp2Y2xSbGMzUWdQU0FvWEc0Z0lHVnNaVzFsYm5RNklFVjRZMkZzYVdSeVlYZEZiR3hwY0hObFJXeGxiV1Z1ZEN4Y2JpQWdjRzlwYm5RNklGQnZhVzUwTEZ4dUtUb2dXMGRCTGxCdmFXNTBMQ0JIUVM1TWFXNWxYU0E5UGlCN1hHNGdJR052Ym5OMElGc3NJSEJ2YVc1MFVtVnNMQ0JvZDJsa2RHZ3NJR2hvWldsbmFIUmRJRDBnY0c5cGJuUlNaV3hoZEdsMlpWUnZSV3hsYldWdWRDaGxiR1Z0Wlc1MExDQndiMmx1ZENrN1hHNGdJR052Ym5OMElGdHdlQ3dnY0hsZElEMGdSMEZRYjJsdWRDNTBiMVIxY0d4bEtIQnZhVzUwVW1Wc0tUdGNibHh1SUNBdkx5QlhaU2R5WlNCM2IzSnJhVzVuSUdsdUlIQnZjMmwwYVhabElIRjFZV1J5WVc1MExDQnpieUJ6ZEdGeWRDQjNhWFJvSUdCMElEMGdORFZrWldkZ0xDQmdkSGc5WTI5ektIUXBZRnh1SUNCc1pYUWdkSGdnUFNBd0xqY3dOenRjYmlBZ2JHVjBJSFI1SUQwZ01DNDNNRGM3WEc1Y2JpQWdZMjl1YzNRZ1lTQTlJR2gzYVdSMGFEdGNiaUFnWTI5dWMzUWdZaUE5SUdob1pXbG5hSFE3WEc1Y2JpQWdMeThnVkdocGN5QnBjeUJoSUc1MWJXVnlhV05oYkNCdFpYUm9iMlFnZEc4Z1ptbHVaQ0IwYUdVZ2NHRnlZVzF6SUhSNExDQjBlU0JoZENCM2FHbGphRnh1SUNBdkx5QjBhR1VnWld4c2FYQnpaU0JvWVhNZ2RHaGxJR05zYjNObGMzUWdjRzlwYm5RZ2RHOGdkR2hsSUdkcGRtVnVJSEJ2YVc1MFhHNGdJRnN3TENBeExDQXlMQ0F6WFM1bWIzSkZZV05vS0NoZktTQTlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2VIZ2dQU0JoSUNvZ2RIZzdYRzRnSUNBZ1kyOXVjM1FnZVhrZ1BTQmlJQ29nZEhrN1hHNWNiaUFnSUNCamIyNXpkQ0JsZUNBOUlDZ29ZU0FxSUdFZ0xTQmlJQ29nWWlrZ0tpQjBlQ0FxS2lBektTQXZJR0U3WEc0Z0lDQWdZMjl1YzNRZ1pYa2dQU0FvS0dJZ0tpQmlJQzBnWVNBcUlHRXBJQ29nZEhrZ0tpb2dNeWtnTHlCaU8xeHVYRzRnSUNBZ1kyOXVjM1FnY25nZ1BTQjRlQ0F0SUdWNE8xeHVJQ0FnSUdOdmJuTjBJSEo1SUQwZ2VYa2dMU0JsZVR0Y2JseHVJQ0FnSUdOdmJuTjBJSEY0SUQwZ2NIZ2dMU0JsZUR0Y2JpQWdJQ0JqYjI1emRDQnhlU0E5SUhCNUlDMGdaWGs3WEc1Y2JpQWdJQ0JqYjI1emRDQnlJRDBnVFdGMGFDNW9lWEJ2ZENoeWVTd2djbmdwTzF4dUlDQWdJR052Ym5OMElIRWdQU0JOWVhSb0xtaDVjRzkwS0hGNUxDQnhlQ2s3WEc1Y2JpQWdJQ0IwZUNBOUlFMWhkR2d1YldsdUtERXNJRTFoZEdndWJXRjRLREFzSUNnb2NYZ2dLaUJ5S1NBdklIRWdLeUJsZUNrZ0x5QmhLU2s3WEc0Z0lDQWdkSGtnUFNCTllYUm9MbTFwYmlneExDQk5ZWFJvTG0xaGVDZ3dMQ0FvS0hGNUlDb2djaWtnTHlCeElDc2daWGtwSUM4Z1lpa3BPMXh1SUNBZ0lHTnZibk4wSUhRZ1BTQk5ZWFJvTG1oNWNHOTBLSFI1TENCMGVDazdYRzRnSUNBZ2RIZ2dMejBnZER0Y2JpQWdJQ0IwZVNBdlBTQjBPMXh1SUNCOUtUdGNibHh1SUNCamIyNXpkQ0JqYkc5elpYTjBVRzlwYm5RZ1BTQkhRUzV3YjJsdWRDaGhJQ29nZEhnc0lHSWdLaUIwZVNrN1hHNWNiaUFnWTI5dWMzUWdkR0Z1WjJWdWRDQTlJRWRCVEdsdVpTNXZjblJvYjJkdmJtRnNWR2h5YjNWbmFDaHdiMmx1ZEZKbGJDd2dZMnh2YzJWemRGQnZhVzUwS1R0Y2JpQWdjbVYwZFhKdUlGdHdiMmx1ZEZKbGJDd2dkR0Z1WjJWdWRGMDdYRzU5TzF4dVhHNWpiMjV6ZENCb2FYUlVaWE4wUm5KbFpVUnlZWGRGYkdWdFpXNTBJRDBnS0Z4dUlDQmxiR1Z0Wlc1ME9pQkZlR05oYkdsa2NtRjNSbkpsWlVSeVlYZEZiR1Z0Wlc1MExGeHVJQ0J3YjJsdWREb2dVRzlwYm5Rc1hHNGdJSFJvY21WemFHOXNaRG9nYm5WdFltVnlMRnh1S1RvZ1ltOXZiR1ZoYmlBOVBpQjdYRzRnSUM4dklFTm9aV05ySUhCdmFXNTBMV1JwYzNSaGJtTmxMWFJ2TFd4cGJtVXRjMlZuYldWdWRDQm1iM0lnWlhabGNua2djMlZuYldWdWRDQnBiaUIwYUdWY2JpQWdMeThnWld4bGJXVnVkQ2R6SUhCdmFXNTBjeUFvYVhSeklHbHVjSFYwSUhCdmFXNTBjeXdnYm05MElHbDBjeUJ2ZFhSc2FXNWxJSEJ2YVc1MGN5a3VYRzRnSUM4dklGUm9hWE1nYVhNdUxpNGdiMnRoZVQ4Z1NYUW5jeUJ3YkdWdWRIa2dabUZ6ZEN3Z1luVjBJSFJvWlNCSFFTQnNhV0p5WVhKNUlHMWhlVnh1SUNBdkx5Qm9ZWFpsSUdFZ1ptRnpkR1Z5SUc5d2RHbHZiaTVjYmx4dUlDQnNaWFFnZURvZ2JuVnRZbVZ5TzF4dUlDQnNaWFFnZVRvZ2JuVnRZbVZ5TzF4dVhHNGdJR2xtSUNobGJHVnRaVzUwTG1GdVoyeGxJRDA5UFNBd0tTQjdYRzRnSUNBZ2VDQTlJSEJ2YVc1MFd6QmRJQzBnWld4bGJXVnVkQzU0TzF4dUlDQWdJSGtnUFNCd2IybHVkRnN4WFNBdElHVnNaVzFsYm5RdWVUdGNiaUFnZlNCbGJITmxJSHRjYmlBZ0lDQXZMeUJEYjNWdWRHVnlMWEp2ZEdGMFpTQjBhR1VnY0c5cGJuUWdZWEp2ZFc1a0lHTmxiblJsY2lCaVpXWnZjbVVnZEdWemRHbHVaMXh1SUNBZ0lHTnZibk4wSUZ0dGFXNVlMQ0J0YVc1WkxDQnRZWGhZTENCdFlYaFpYU0E5SUdkbGRFVnNaVzFsYm5SQlluTnZiSFYwWlVOdmIzSmtjeWhsYkdWdFpXNTBLVHRjYmlBZ0lDQmpiMjV6ZENCeWIzUmhkR1ZrVUc5cGJuUWdQU0J5YjNSaGRHVlFiMmx1ZENoY2JpQWdJQ0FnSUhCdmFXNTBMRnh1SUNBZ0lDQWdXMjFwYmxnZ0t5QW9iV0Y0V0NBdElHMXBibGdwSUM4Z01pd2diV2x1V1NBcklDaHRZWGhaSUMwZ2JXbHVXU2tnTHlBeVhTeGNiaUFnSUNBZ0lDMWxiR1Z0Wlc1MExtRnVaMnhsTEZ4dUlDQWdJQ2s3WEc0Z0lDQWdlQ0E5SUhKdmRHRjBaV1JRYjJsdWRGc3dYU0F0SUdWc1pXMWxiblF1ZUR0Y2JpQWdJQ0I1SUQwZ2NtOTBZWFJsWkZCdmFXNTBXekZkSUMwZ1pXeGxiV1Z1ZEM1NU8xeHVJQ0I5WEc1Y2JpQWdiR1YwSUZ0QkxDQkNYU0E5SUdWc1pXMWxiblF1Y0c5cGJuUnpPMXh1SUNCc1pYUWdVRG9nY21WaFpHOXViSGtnVzI1MWJXSmxjaXdnYm5WdFltVnlYVHRjYmx4dUlDQXZMeUJHYjNJZ1puSmxaV1J5WVhjZ1pHOTBjMXh1SUNCcFppQW9YRzRnSUNBZ1pHbHpkR0Z1WTJVeVpDaEJXekJkTENCQld6RmRMQ0I0TENCNUtTQThJSFJvY21WemFHOXNaQ0I4ZkZ4dUlDQWdJR1JwYzNSaGJtTmxNbVFvUWxzd1hTd2dRbHN4WFN3Z2VDd2dlU2tnUENCMGFISmxjMmh2YkdSY2JpQWdLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lIMWNibHh1SUNBdkx5QkdiM0lnWm5KbFpXUnlZWGNnYkdsdVpYTmNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCbGJHVnRaVzUwTG5CdmFXNTBjeTVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUdOdmJuTjBJR1JsYkhSaElEMGdXMEpiTUYwZ0xTQkJXekJkTENCQ1d6RmRJQzBnUVZzeFhWMDdYRzRnSUNBZ1kyOXVjM1FnYkdWdVozUm9JRDBnVFdGMGFDNW9lWEJ2ZENoa1pXeDBZVnN4WFN3Z1pHVnNkR0ZiTUYwcE8xeHVYRzRnSUNBZ1kyOXVjM1FnVlNBOUlGdGtaV3gwWVZzd1hTQXZJR3hsYm1kMGFDd2daR1ZzZEdGYk1WMGdMeUJzWlc1bmRHaGRPMXh1SUNBZ0lHTnZibk4wSUVNZ1BTQmJlQ0F0SUVGYk1GMHNJSGtnTFNCQld6RmRYVHRjYmlBZ0lDQmpiMjV6ZENCa0lEMGdLRU5iTUYwZ0tpQlZXekJkSUNzZ1Exc3hYU0FxSUZWYk1WMHBJQzhnVFdGMGFDNW9lWEJ2ZENoVld6RmRMQ0JWV3pCZEtUdGNiaUFnSUNCUUlEMGdXMEZiTUYwZ0t5QlZXekJkSUNvZ1pDd2dRVnN4WFNBcklGVmJNVjBnS2lCa1hUdGNibHh1SUNBZ0lHTnZibk4wSUdSaElEMGdaR2x6ZEdGdVkyVXlaQ2hRV3pCZExDQlFXekZkTENCQld6QmRMQ0JCV3pGZEtUdGNiaUFnSUNCamIyNXpkQ0JrWWlBOUlHUnBjM1JoYm1ObE1tUW9VRnN3WFN3Z1VGc3hYU3dnUWxzd1hTd2dRbHN4WFNrN1hHNWNiaUFnSUNCUUlEMGdaR0lnUENCa1lTQW1KaUJrWVNBK0lHeGxibWQwYUNBL0lFSWdPaUJrWVNBOElHUmlJQ1ltSUdSaUlENGdiR1Z1WjNSb0lEOGdRU0E2SUZBN1hHNWNiaUFnSUNCcFppQW9UV0YwYUM1b2VYQnZkQ2g1SUMwZ1VGc3hYU3dnZUNBdElGQmJNRjBwSUR3Z2RHaHlaWE5vYjJ4a0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQkJJRDBnUWp0Y2JpQWdJQ0JDSUQwZ1pXeGxiV1Z1ZEM1d2IybHVkSE5iYVNBcklERmRPMXh1SUNCOVhHNWNiaUFnWTI5dWMzUWdjMmhoY0dVZ1BTQm5aWFJUYUdGd1pVWnZja1ZzWlcxbGJuUW9aV3hsYldWdWRDazdYRzVjYmlBZ0x5OGdabTl5SUdacGJHeGxaQ0JtY21WbFpISmhkeUJ6YUdGd1pYTXNJSE4xY0hCdmNuUmNiaUFnTHk4Z2MyVnNaV04wYVc1bklHWnliMjBnYVc1emFXUmxYRzRnSUdsbUlDaHphR0Z3WlNBbUppQnphR0Z3WlM1elpYUnpMbXhsYm1kMGFDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCb2FYUlVaWE4wVW05MVoyaFRhR0Z3WlNoemFHRndaU3dnZUN3Z2VTd2dkR2h5WlhOb2IyeGtLVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJtWVd4elpUdGNibjA3WEc1Y2JtTnZibk4wSUdocGRGUmxjM1JNYVc1bFlYSWdQU0FvWVhKbmN6b2dTR2wwVkdWemRFRnlaM01wT2lCaWIyOXNaV0Z1SUQwK0lIdGNiaUFnWTI5dWMzUWdleUJsYkdWdFpXNTBMQ0IwYUhKbGMyaHZiR1FnZlNBOUlHRnlaM003WEc0Z0lHbG1JQ2doWjJWMFUyaGhjR1ZHYjNKRmJHVnRaVzUwS0dWc1pXMWxiblFwS1NCN1hHNGdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0I5WEc0Z0lHTnZibk4wSUZ0d2IybHVkQ3dnY0c5cGJuUkJZbk1zSUdoM2FXUjBhQ3dnYUdobGFXZG9kRjBnUFNCd2IybHVkRkpsYkdGMGFYWmxWRzlGYkdWdFpXNTBLRnh1SUNBZ0lHRnlaM011Wld4bGJXVnVkQ3hjYmlBZ0lDQmhjbWR6TG5CdmFXNTBMRnh1SUNBcE8xeHVJQ0JqYjI1emRDQnphV1JsTVNBOUlFZEJUR2x1WlM1bGNYVmhkR2x2Ymlnd0xDQXhMQ0F0YUdobGFXZG9kQ2s3WEc0Z0lHTnZibk4wSUhOcFpHVXlJRDBnUjBGTWFXNWxMbVZ4ZFdGMGFXOXVLREVzSURBc0lDMW9kMmxrZEdncE8xeHVJQ0JwWmlBb1hHNGdJQ0FnSVdselNXNXphV1JsUTJobFkyc29SMEZRYjJsdWRDNWthWE4wWVc1alpWUnZUR2x1WlNod2IybHVkRUZpY3l3Z2MybGtaVEVwTENCMGFISmxjMmh2YkdRcElIeDhYRzRnSUNBZ0lXbHpTVzV6YVdSbFEyaGxZMnNvUjBGUWIybHVkQzVrYVhOMFlXNWpaVlJ2VEdsdVpTaHdiMmx1ZEVGaWN5d2djMmxrWlRJcExDQjBhSEpsYzJodmJHUXBYRzRnSUNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnZlZ4dUlDQmpiMjV6ZENCYmNtVnNXQ3dnY21Wc1dWMGdQU0JIUVZCdmFXNTBMblJ2VkhWd2JHVW9jRzlwYm5RcE8xeHVYRzRnSUdOdmJuTjBJSE5vWVhCbElEMGdaMlYwVTJoaGNHVkdiM0pGYkdWdFpXNTBLR1ZzWlcxbGJuUWdZWE1nUlhoallXeHBaSEpoZDB4cGJtVmhja1ZzWlcxbGJuUXBPMXh1WEc0Z0lHbG1JQ2doYzJoaGNHVXBJSHRjYmlBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lIMWNibHh1SUNCcFppQW9ZWEpuY3k1amFHVmpheUE5UFQwZ2FYTkpibk5wWkdWRGFHVmpheWtnZTF4dUlDQWdJR052Ym5OMElHaHBkQ0E5SUhOb1lYQmxMbk52YldVb0tITjFZbk5vWVhCbEtTQTlQbHh1SUNBZ0lDQWdhR2wwVkdWemRFTjFjblpsU1c1emFXUmxLSE4xWW5Ob1lYQmxMQ0J5Wld4WUxDQnlaV3haTENCbGJHVnRaVzUwTG5OMGNtOXJaVk5vWVhKd2JtVnpjeWtzWEc0Z0lDQWdLVHRjYmlBZ0lDQnBaaUFvYUdsMEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2THlCb2FYUWdkR1Z6ZENCaGJHd2dYQ0p6ZFdKemFHRndaWE5jSWlCdlppQjBhR1VnYkdsdVpXRnlJR1ZzWlcxbGJuUmNiaUFnY21WMGRYSnVJSE5vWVhCbExuTnZiV1VvS0hOMVluTm9ZWEJsS1NBOVBseHVJQ0FnSUdocGRGUmxjM1JTYjNWbmFGTm9ZWEJsS0hOMVluTm9ZWEJsTENCeVpXeFlMQ0J5Wld4WkxDQjBhSEpsYzJodmJHUXBMRnh1SUNBcE8xeHVmVHRjYmx4dUx5OGdVbVYwZFhKdWN6cGNiaTh2SUNBZ01TNGdkR2hsSUhCdmFXNTBJSEpsYkdGMGFYWmxJSFJ2SUhSb1pTQmxiR1Z0Wlc1MGN5QW9lQ3dnZVNrZ2NHOXphWFJwYjI1Y2JpOHZJQ0FnTWk0Z2RHaGxJSEJ2YVc1MElISmxiR0YwYVhabElIUnZJSFJvWlNCbGJHVnRaVzUwSjNNZ1kyVnVkR1Z5SUhkcGRHZ2djRzl6YVhScGRtVWdLSGdzSUhrcFhHNHZMeUFnSURNdUlHaGhiR1lnWld4bGJXVnVkQ0IzYVdSMGFGeHVMeThnSUNBMExpQm9ZV3htSUdWc1pXMWxiblFnYUdWcFoyaDBYRzR2TDF4dUx5OGdUbTkwWlNCMGFHRjBJR1p2Y2lCc2FXNWxZWElnWld4bGJXVnVkSE1nZEdobElDaDRMQ0I1S1NCd2IzTnBkR2x2YmlCcGN5QnViM1FnWVhRZ2RHaGxYRzR2THlCMGIzQWdjbWxuYUhRZ1kyOXlibVZ5SUc5bUlIUm9aV2x5SUdKdmRXNWtZWEo1TGx4dUx5OWNiaTh2SUZKbFkzUmhibWRzWlhNc0lHUnBZVzF2Ym1SeklHRnVaQ0JsYkd4cGNITmxjeUJoY21VZ2MzbHRiV1YwY21sallXd2diM1psY2lCaGVHVnpMRnh1THk4Z1lXNWtJRzkwYUdWeUlHVnNaVzFsYm5SeklHaGhkbVVnWVNCeVpXTjBZVzVuZFd4aGNpQmliM1Z1WkdGeWVTeGNiaTh2SUhOdklIZGxJRzl1YkhrZ2JtVmxaQ0IwYnlCd1pYSm1iM0p0SUdocGRDQjBaWE4wY3lCbWIzSWdkR2hsSUhCdmMybDBhWFpsSUhGMVlXUnlZVzUwTGx4dVkyOXVjM1FnY0c5cGJuUlNaV3hoZEdsMlpWUnZSV3hsYldWdWRDQTlJQ2hjYmlBZ1pXeGxiV1Z1ZERvZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5Rc1hHNGdJSEJ2YVc1MFZIVndiR1U2SUZCdmFXNTBMRnh1S1RvZ1cwZEJMbEJ2YVc1MExDQkhRUzVRYjJsdWRDd2diblZ0WW1WeUxDQnVkVzFpWlhKZElEMCtJSHRjYmlBZ1kyOXVjM1FnY0c5cGJuUWdQU0JIUVZCdmFXNTBMbVp5YjIwb2NHOXBiblJVZFhCc1pTazdYRzRnSUdOdmJuTjBJR1ZzWlcxbGJuUkRiMjl5WkhNZ1BTQm5aWFJGYkdWdFpXNTBRV0p6YjJ4MWRHVkRiMjl5WkhNb1pXeGxiV1Z1ZENrN1hHNGdJR052Ym5OMElHTmxiblJsY2lBOUlHTnZiM0prYzBObGJuUmxjaWhsYkdWdFpXNTBRMjl2Y21SektUdGNiaUFnTHk4Z1IwRWdhR0Z6SUdGdVoyeGxJRzl5YVdWdWRHRjBhVzl1SUc5d2NHOXphWFJsSUhSdklHQnliM1JoZEdWZ1hHNGdJR052Ym5OMElISnZkR0YwWlNBOUlFZEJWSEpoYm5ObWIzSnRMbkp2ZEdGMGFXOXVLR05sYm5SbGNpd2daV3hsYldWdWRDNWhibWRzWlNrN1hHNGdJR052Ym5OMElIQnZhVzUwVW05MFlYUmxaQ0E5SUVkQlZISmhibk5tYjNKdExtRndjR3g1S0hKdmRHRjBaU3dnY0c5cGJuUXBPMXh1SUNCamIyNXpkQ0J3YjJsdWRGSmxiRlJ2UTJWdWRHVnlJRDBnUjBFdWMzVmlLSEJ2YVc1MFVtOTBZWFJsWkN3Z1IwRkVhWEpsWTNScGIyNHVabkp2YlNoalpXNTBaWElwS1R0Y2JpQWdZMjl1YzNRZ2NHOXBiblJTWld4VWIwTmxiblJsY2tGaWN5QTlJRWRCVUc5cGJuUXVZV0p6S0hCdmFXNTBVbVZzVkc5RFpXNTBaWElwTzF4dUlDQmpiMjV6ZENCbGJHVnRaVzUwVUc5eklEMGdSMEV1YjJabWMyVjBLR1ZzWlcxbGJuUXVlQ3dnWld4bGJXVnVkQzU1S1R0Y2JpQWdZMjl1YzNRZ2NHOXBiblJTWld4VWIxQnZjeUE5SUVkQkxuTjFZaWh3YjJsdWRGSnZkR0YwWldRc0lHVnNaVzFsYm5SUWIzTXBPMXh1SUNCamIyNXpkQ0JiWVhnc0lHRjVMQ0JpZUN3Z1lubGRJRDBnWld4bGJXVnVkRU52YjNKa2N6dGNiaUFnWTI5dWMzUWdhR0ZzWmxkcFpIUm9JRDBnS0dKNElDMGdZWGdwSUM4Z01qdGNiaUFnWTI5dWMzUWdhR0ZzWmtobGFXZG9kQ0E5SUNoaWVTQXRJR0Y1S1NBdklESTdYRzRnSUhKbGRIVnliaUJiY0c5cGJuUlNaV3hVYjFCdmN5d2djRzlwYm5SU1pXeFViME5sYm5SbGNrRmljeXdnYUdGc1psZHBaSFJvTENCb1lXeG1TR1ZwWjJoMFhUdGNibjA3WEc1Y2JpOHZJRkpsZEhWeWJuTWdjRzlwYm5RZ2FXNGdZV0p6YjJ4MWRHVWdZMjl2Y21ScGJtRjBaWE5jYm1WNGNHOXlkQ0JqYjI1emRDQndiMmx1ZEVsdVFXSnpiMngxZEdWRGIyOXlaSE1nUFNBb1hHNGdJR1ZzWlcxbGJuUTZJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBMRnh1SUNBdkx5QlFiMmx1ZENCeVpXeGhkR2wyWlNCMGJ5QjBhR1VnWld4bGJXVnVkQ0J3YjNOcGRHbHZibHh1SUNCd2IybHVkRG9nVUc5cGJuUXNYRzRwT2lCUWIybHVkQ0E5UGlCN1hHNGdJR052Ym5OMElGdDRMQ0I1WFNBOUlIQnZhVzUwTzF4dUlDQmpiMjV6ZENCYmVERXNJSGt4TENCNE1pd2dlVEpkSUQwZ1oyVjBSV3hsYldWdWRFRmljMjlzZFhSbFEyOXZjbVJ6S0dWc1pXMWxiblFwTzF4dUlDQmpiMjV6ZENCamVDQTlJQ2g0TWlBdElIZ3hLU0F2SURJN1hHNGdJR052Ym5OMElHTjVJRDBnS0hreUlDMGdlVEVwSUM4Z01qdGNiaUFnWTI5dWMzUWdXM0p2ZEdGMFpXUllMQ0J5YjNSaGRHVmtXVjBnUFNCeWIzUmhkR1VvZUN3Z2VTd2dZM2dzSUdONUxDQmxiR1Z0Wlc1MExtRnVaMnhsS1R0Y2JpQWdjbVYwZFhKdUlGdGxiR1Z0Wlc1MExuZ2dLeUJ5YjNSaGRHVmtXQ3dnWld4bGJXVnVkQzU1SUNzZ2NtOTBZWFJsWkZsZE8xeHVmVHRjYmx4dVkyOXVjM1FnY21Wc1lYUnBkbWw2WVhScGIyNVViMFZzWlcxbGJuUkRaVzUwWlhJZ1BTQW9YRzRnSUdWc1pXMWxiblE2SUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwTEZ4dUtUb2dSMEV1VkhKaGJuTm1iM0p0SUQwK0lIdGNiaUFnWTI5dWMzUWdaV3hsYldWdWRFTnZiM0prY3lBOUlHZGxkRVZzWlcxbGJuUkJZbk52YkhWMFpVTnZiM0prY3lobGJHVnRaVzUwS1R0Y2JpQWdZMjl1YzNRZ1kyVnVkR1Z5SUQwZ1kyOXZjbVJ6UTJWdWRHVnlLR1ZzWlcxbGJuUkRiMjl5WkhNcE8xeHVJQ0F2THlCSFFTQm9ZWE1nWVc1bmJHVWdiM0pwWlc1MFlYUnBiMjRnYjNCd2IzTnBkR1VnZEc4Z1lISnZkR0YwWldCY2JpQWdZMjl1YzNRZ2NtOTBZWFJsSUQwZ1IwRlVjbUZ1YzJadmNtMHVjbTkwWVhScGIyNG9ZMlZ1ZEdWeUxDQmxiR1Z0Wlc1MExtRnVaMnhsS1R0Y2JpQWdZMjl1YzNRZ2RISmhibk5zWVhSbElEMGdSMEV1Y21WMlpYSnpaU2hjYmlBZ0lDQkhRVlJ5WVc1elptOXliUzUwY21GdWMyeGhkR2x2YmloSFFVUnBjbVZqZEdsdmJpNW1jbTl0S0dObGJuUmxjaWtwTEZ4dUlDQXBPMXh1SUNCeVpYUjFjbTRnUjBGVWNtRnVjMlp2Y20wdVkyOXRjRzl6WlNoeWIzUmhkR1VzSUhSeVlXNXpiR0YwWlNrN1hHNTlPMXh1WEc1amIyNXpkQ0JqYjI5eVpITkRaVzUwWlhJZ1BTQW9XMkY0TENCaGVTd2dZbmdzSUdKNVhUb2dRbTkxYm1SektUb2dSMEV1VUc5cGJuUWdQVDRnZTF4dUlDQnlaWFIxY200Z1IwRXVjRzlwYm5Rb0tHRjRJQ3NnWW5ncElDOGdNaXdnS0dGNUlDc2dZbmtwSUM4Z01pazdYRzU5TzF4dVhHNHZMeUJVYUdVZ1ptOWpkWE1nWkdsemRHRnVZMlVnYVhNZ2RHaGxJRzl5YVdWdWRHVmtJSEpoZEdsdklHSmxkSGRsWlc0Z2RHaGxJSE5wZW1VZ2IyWmNiaTh2SUhSb1pTQmdaV3hsYldWdWRHQWdZVzVrSUhSb1pTQmNJbVp2WTNWeklHbHRZV2RsWENJZ2IyWWdkR2hsSUdWc1pXMWxiblFnYjI0Z2QyaHBZMmhjYmk4dklHRnNiQ0JtYjJOMWN5QndiMmx1ZEhNZ2JHbGxMQ0J6YnlCcGRDZHpJR0VnYm5WdFltVnlJR0psZEhkbFpXNGdMVEVnWVc1a0lERXVYRzR2THlCVWFHVWdiR2x1WlNCbmIybHVaeUIwYUhKdmRXZG9JR0JoWUNCaGJtUWdZR0pnSUdseklHRWdkR0Z1WjJWdWRDQjBieUIwYUdVZ1hDSm1iMk4xY3lCcGJXRm5aVndpWEc0dkx5QnZaaUIwYUdVZ1pXeGxiV1Z1ZEM1Y2JtVjRjRzl5ZENCamIyNXpkQ0JrWlhSbGNtMXBibVZHYjJOMWMwUnBjM1JoYm1ObElEMGdLRnh1SUNCbGJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1FtbHVaR0ZpYkdWRmJHVnRaVzUwTEZ4dUlDQXZMeUJRYjJsdWRDQnZiaUIwYUdVZ2JHbHVaU3dnYVc0Z1lXSnpiMngxZEdVZ1kyOXZjbVJwYm1GMFpYTmNiaUFnWVRvZ1VHOXBiblFzWEc0Z0lDOHZJRUZ1YjNSb1pYSWdjRzlwYm5RZ2IyNGdkR2hsSUd4cGJtVXNJR2x1SUdGaWMyOXNkWFJsSUdOdmIzSmthVzVoZEdWeklDaGpiRzl6WlhJZ2RHOGdaV3hsYldWdWRDbGNiaUFnWWpvZ1VHOXBiblFzWEc0cE9pQnVkVzFpWlhJZ1BUNGdlMXh1SUNCamIyNXpkQ0J5Wld4aGRHVlViME5sYm5SbGNpQTlJSEpsYkdGMGFYWnBlbUYwYVc5dVZHOUZiR1Z0Wlc1MFEyVnVkR1Z5S0dWc1pXMWxiblFwTzF4dUlDQmpiMjV6ZENCaFVtVnNJRDBnUjBGVWNtRnVjMlp2Y20wdVlYQndiSGtvY21Wc1lYUmxWRzlEWlc1MFpYSXNJRWRCVUc5cGJuUXVabkp2YlNoaEtTazdYRzRnSUdOdmJuTjBJR0pTWld3Z1BTQkhRVlJ5WVc1elptOXliUzVoY0hCc2VTaHlaV3hoZEdWVWIwTmxiblJsY2l3Z1IwRlFiMmx1ZEM1bWNtOXRLR0lwS1R0Y2JpQWdZMjl1YzNRZ2JHbHVaU0E5SUVkQlRHbHVaUzUwYUhKdmRXZG9LR0ZTWld3c0lHSlNaV3dwTzF4dUlDQmpiMjV6ZENCeElEMGdaV3hsYldWdWRDNW9aV2xuYUhRZ0x5QmxiR1Z0Wlc1MExuZHBaSFJvTzF4dUlDQmpiMjV6ZENCb2QybGtkR2dnUFNCbGJHVnRaVzUwTG5kcFpIUm9JQzhnTWp0Y2JpQWdZMjl1YzNRZ2FHaGxhV2RvZENBOUlHVnNaVzFsYm5RdWFHVnBaMmgwSUM4Z01qdGNiaUFnWTI5dWMzUWdiaUE5SUd4cGJtVmJNbDA3WEc0Z0lHTnZibk4wSUcwZ1BTQnNhVzVsV3pOZE8xeHVJQ0JqYjI1emRDQmpJRDBnYkdsdVpWc3hYVHRjYmlBZ1kyOXVjM1FnYldGaWN5QTlJRTFoZEdndVlXSnpLRzBwTzF4dUlDQmpiMjV6ZENCdVlXSnpJRDBnVFdGMGFDNWhZbk1vYmlrN1hHNGdJSE4zYVhSamFDQW9aV3hsYldWdWRDNTBlWEJsS1NCN1hHNGdJQ0FnWTJGelpTQmNJbkpsWTNSaGJtZHNaVndpT2x4dUlDQWdJR05oYzJVZ1hDSnBiV0ZuWlZ3aU9seHVJQ0FnSUdOaGMyVWdYQ0owWlhoMFhDSTZYRzRnSUNBZ0lDQnlaWFIxY200Z1l5QXZJQ2hvZDJsa2RHZ2dLaUFvYm1GaWN5QXJJSEVnS2lCdFlXSnpLU2s3WEc0Z0lDQWdZMkZ6WlNCY0ltUnBZVzF2Ym1SY0lqcGNiaUFnSUNBZ0lISmxkSFZ5YmlCdFlXSnpJRHdnYm1GaWN5QS9JR01nTHlBb2JtRmljeUFxSUdoM2FXUjBhQ2tnT2lCaklDOGdLRzFoWW5NZ0tpQm9hR1ZwWjJoMEtUdGNiaUFnSUNCallYTmxJRndpWld4c2FYQnpaVndpT2x4dUlDQWdJQ0FnY21WMGRYSnVJR01nTHlBb2FIZHBaSFJvSUNvZ1RXRjBhQzV6Y1hKMEtHNGdLaW9nTWlBcklIRWdLaW9nTWlBcUlHMGdLaW9nTWlrcE8xeHVJQ0I5WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1pHVjBaWEp0YVc1bFJtOWpkWE5RYjJsdWRDQTlJQ2hjYmlBZ1pXeGxiV1Z1ZERvZ1JYaGpZV3hwWkhKaGQwSnBibVJoWW14bFJXeGxiV1Z1ZEN4Y2JpQWdMeThnVkdobElHOXlhV1Z1ZEdWa0xDQnlaV3hoZEdsMlpTQmthWE4wWVc1alpTQm1jbTl0SUhSb1pTQmpaVzUwWlhJZ2IyWWdZR1ZzWlcxbGJuUmdJRzltSUhSb1pWeHVJQ0F2THlCeVpYUjFjbTVsWkNCbWIyTjFjMUJ2YVc1MFhHNGdJR1p2WTNWek9pQnVkVzFpWlhJc1hHNGdJR0ZrYW1WalpXNTBVRzlwYm5RNklGQnZhVzUwTEZ4dUtUb2dVRzlwYm5RZ1BUNGdlMXh1SUNCcFppQW9abTlqZFhNZ1BUMDlJREFwSUh0Y2JpQWdJQ0JqYjI1emRDQmxiR1Z0Wlc1MFEyOXZjbVJ6SUQwZ1oyVjBSV3hsYldWdWRFRmljMjlzZFhSbFEyOXZjbVJ6S0dWc1pXMWxiblFwTzF4dUlDQWdJR052Ym5OMElHTmxiblJsY2lBOUlHTnZiM0prYzBObGJuUmxjaWhsYkdWdFpXNTBRMjl2Y21SektUdGNiaUFnSUNCeVpYUjFjbTRnUjBGUWIybHVkQzUwYjFSMWNHeGxLR05sYm5SbGNpazdYRzRnSUgxY2JpQWdZMjl1YzNRZ2NtVnNZWFJsVkc5RFpXNTBaWElnUFNCeVpXeGhkR2wyYVhwaGRHbHZibFJ2Uld4bGJXVnVkRU5sYm5SbGNpaGxiR1Z0Wlc1MEtUdGNiaUFnWTI5dWMzUWdZV1JxWldObGJuUlFiMmx1ZEZKbGJDQTlJRWRCVkhKaGJuTm1iM0p0TG1Gd2NHeDVLRnh1SUNBZ0lISmxiR0YwWlZSdlEyVnVkR1Z5TEZ4dUlDQWdJRWRCVUc5cGJuUXVabkp2YlNoaFpHcGxZMlZ1ZEZCdmFXNTBLU3hjYmlBZ0tUdGNiaUFnWTI5dWMzUWdjbVYyWlhKelpWSmxiR0YwWlZSdlEyVnVkR1Z5SUQwZ1IwRXVjbVYyWlhKelpTaHlaV3hoZEdWVWIwTmxiblJsY2lrN1hHNGdJR3hsZENCd2IybHVkRHRjYmlBZ2MzZHBkR05vSUNobGJHVnRaVzUwTG5SNWNHVXBJSHRjYmlBZ0lDQmpZWE5sSUZ3aWNtVmpkR0Z1WjJ4bFhDSTZYRzRnSUNBZ1kyRnpaU0JjSW1sdFlXZGxYQ0k2WEc0Z0lDQWdZMkZ6WlNCY0luUmxlSFJjSWpwY2JpQWdJQ0JqWVhObElGd2laR2xoYlc5dVpGd2lPbHh1SUNBZ0lDQWdjRzlwYm5RZ1BTQm1hVzVrUm05amRYTlFiMmx1ZEVadmNsSmxZM1JoYm1kMWJHRnljeWhsYkdWdFpXNTBMQ0JtYjJOMWN5d2dZV1JxWldObGJuUlFiMmx1ZEZKbGJDazdYRzRnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0JqWVhObElGd2laV3hzYVhCelpWd2lPbHh1SUNBZ0lDQWdjRzlwYm5RZ1BTQm1hVzVrUm05amRYTlFiMmx1ZEVadmNrVnNiR2x3YzJVb1pXeGxiV1Z1ZEN3Z1ptOWpkWE1zSUdGa2FtVmpaVzUwVUc5cGJuUlNaV3dwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUgxY2JpQWdjbVYwZFhKdUlFZEJVRzlwYm5RdWRHOVVkWEJzWlNoSFFWUnlZVzV6Wm05eWJTNWhjSEJzZVNoeVpYWmxjbk5sVW1Wc1lYUmxWRzlEWlc1MFpYSXNJSEJ2YVc1MEtTazdYRzU5TzF4dVhHNHZMeUJTWlhSMWNtNXpJRElnYjNJZ01DQnBiblJsY25ObFkzUnBiMjRnY0c5cGJuUnpJR0psZEhkbFpXNGdiR2x1WlNCbmIybHVaeUIwYUhKdmRXZG9JR0JoWUNCaGJtUWdZR0pnWEc0dkx5QmhibVFnZEdobElHQmxiR1Z0Wlc1MFlDd2dhVzRnWVhOalpXNWthVzVuSUc5eVpHVnlJRzltSUdScGMzUmhibU5sSUdaeWIyMGdZR0ZnTGx4dVpYaHdiM0owSUdOdmJuTjBJR2x1ZEdWeWMyVmpkRVZzWlcxbGJuUlhhWFJvVEdsdVpTQTlJQ2hjYmlBZ1pXeGxiV1Z1ZERvZ1JYaGpZV3hwWkhKaGQwSnBibVJoWW14bFJXeGxiV1Z1ZEN4Y2JpQWdMeThnVUc5cGJuUWdiMjRnZEdobElHeHBibVVzSUdsdUlHRmljMjlzZFhSbElHTnZiM0prYVc1aGRHVnpYRzRnSUdFNklGQnZhVzUwTEZ4dUlDQXZMeUJCYm05MGFHVnlJSEJ2YVc1MElHOXVJSFJvWlNCc2FXNWxMQ0JwYmlCaFluTnZiSFYwWlNCamIyOXlaR2x1WVhSbGMxeHVJQ0JpT2lCUWIybHVkQ3hjYmlBZ0x5OGdTV1lnWjJsMlpXNHNJSFJvWlNCbGJHVnRaVzUwSUdseklHbHVabXhoZEdWa0lHSjVJSFJvYVhNZ2RtRnNkV1ZjYmlBZ1oyRndPaUJ1ZFcxaVpYSWdQU0F3TEZ4dUtUb2dVRzlwYm5SYlhTQTlQaUI3WEc0Z0lHTnZibk4wSUhKbGJHRjBaVlJ2UTJWdWRHVnlJRDBnY21Wc1lYUnBkbWw2WVhScGIyNVViMFZzWlcxbGJuUkRaVzUwWlhJb1pXeGxiV1Z1ZENrN1hHNGdJR052Ym5OMElHRlNaV3dnUFNCSFFWUnlZVzV6Wm05eWJTNWhjSEJzZVNoeVpXeGhkR1ZVYjBObGJuUmxjaXdnUjBGUWIybHVkQzVtY205dEtHRXBLVHRjYmlBZ1kyOXVjM1FnWWxKbGJDQTlJRWRCVkhKaGJuTm1iM0p0TG1Gd2NHeDVLSEpsYkdGMFpWUnZRMlZ1ZEdWeUxDQkhRVkJ2YVc1MExtWnliMjBvWWlrcE8xeHVJQ0JqYjI1emRDQnNhVzVsSUQwZ1IwRk1hVzVsTG5Sb2NtOTFaMmdvWVZKbGJDd2dZbEpsYkNrN1hHNGdJR052Ym5OMElISmxkbVZ5YzJWU1pXeGhkR1ZVYjBObGJuUmxjaUE5SUVkQkxuSmxkbVZ5YzJVb2NtVnNZWFJsVkc5RFpXNTBaWElwTzF4dUlDQmpiMjV6ZENCcGJuUmxjbk5sWTNScGIyNXpJRDBnWjJWMFUyOXlkR1ZrUld4bGJXVnVkRXhwYm1WSmJuUmxjbk5sWTNScGIyNXpLRnh1SUNBZ0lHVnNaVzFsYm5Rc1hHNGdJQ0FnYkdsdVpTeGNiaUFnSUNCaFVtVnNMRnh1SUNBZ0lHZGhjQ3hjYmlBZ0tUdGNiaUFnY21WMGRYSnVJR2x1ZEdWeWMyVmpkR2x2Ym5NdWJXRndLQ2h3YjJsdWRDa2dQVDVjYmlBZ0lDQkhRVkJ2YVc1MExuUnZWSFZ3YkdVb1IwRlVjbUZ1YzJadmNtMHVZWEJ3Ykhrb2NtVjJaWEp6WlZKbGJHRjBaVlJ2UTJWdWRHVnlMQ0J3YjJsdWRDa3BMRnh1SUNBcE8xeHVmVHRjYmx4dVkyOXVjM1FnWjJWMFUyOXlkR1ZrUld4bGJXVnVkRXhwYm1WSmJuUmxjbk5sWTNScGIyNXpJRDBnS0Z4dUlDQmxiR1Z0Wlc1ME9pQkZlR05oYkdsa2NtRjNRbWx1WkdGaWJHVkZiR1Z0Wlc1MExGeHVJQ0F2THlCU1pXeGhkR2wyWlNCMGJ5QmxiR1Z0Wlc1MElHTmxiblJsY2x4dUlDQnNhVzVsT2lCSFFTNU1hVzVsTEZ4dUlDQXZMeUJTWld4aGRHbDJaU0IwYnlCbGJHVnRaVzUwSUdObGJuUmxjbHh1SUNCdVpXRnlVRzlwYm5RNklFZEJMbEJ2YVc1MExGeHVJQ0JuWVhBNklHNTFiV0psY2lBOUlEQXNYRzRwT2lCSFFTNVFiMmx1ZEZ0ZElEMCtJSHRjYmlBZ2JHVjBJR2x1ZEdWeWMyVmpkR2x2Ym5NNklFZEJMbEJ2YVc1MFcxMDdYRzRnSUhOM2FYUmphQ0FvWld4bGJXVnVkQzUwZVhCbEtTQjdYRzRnSUNBZ1kyRnpaU0JjSW5KbFkzUmhibWRzWlZ3aU9seHVJQ0FnSUdOaGMyVWdYQ0pwYldGblpWd2lPbHh1SUNBZ0lHTmhjMlVnWENKMFpYaDBYQ0k2WEc0Z0lDQWdZMkZ6WlNCY0ltUnBZVzF2Ym1SY0lqcGNiaUFnSUNBZ0lHTnZibk4wSUdOdmNtNWxjbk1nUFNCblpYUkRiM0p1WlhKektHVnNaVzFsYm5RcE8xeHVJQ0FnSUNBZ2FXNTBaWEp6WldOMGFXOXVjeUE5SUdOdmNtNWxjbk5jYmlBZ0lDQWdJQ0FnTG1ac1lYUk5ZWEFvS0hCdmFXNTBMQ0JwS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdaV1JuWlRvZ1cwZEJMbEJ2YVc1MExDQkhRUzVRYjJsdWRGMGdQU0JiY0c5cGJuUXNJR052Y201bGNuTmJLR2tnS3lBeEtTQWxJRFJkWFR0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FXNTBaWEp6WldOMFUyVm5iV1Z1ZENoc2FXNWxMQ0J2Wm1aelpYUlRaV2R0Wlc1MEtHVmtaMlVzSUdkaGNDa3BPMXh1SUNBZ0lDQWdJQ0I5S1Z4dUlDQWdJQ0FnSUNBdVkyOXVZMkYwS0Z4dUlDQWdJQ0FnSUNBZ0lHTnZjbTVsY25NdVpteGhkRTFoY0Nnb2NHOXBiblFwSUQwK0lHZGxkRU5wY21Oc1pVbHVkR1Z5YzJWamRHbHZibk1vY0c5cGJuUXNJR2RoY0N3Z2JHbHVaU2twTEZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdZMkZ6WlNCY0ltVnNiR2x3YzJWY0lqcGNiaUFnSUNBZ0lHbHVkR1Z5YzJWamRHbHZibk1nUFNCblpYUkZiR3hwY0hObFNXNTBaWEp6WldOMGFXOXVjeWhsYkdWdFpXNTBMQ0JuWVhBc0lHeHBibVVwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUgxY2JpQWdhV1lnS0dsdWRHVnljMlZqZEdsdmJuTXViR1Z1WjNSb0lEd2dNaWtnZTF4dUlDQWdJQzh2SUVsbmJtOXlaU0IwYUdVZ1hDSmxaR2RsWENJZ1kyRnpaU0J2WmlCdmJteDVJR2x1ZEdWeWMyVmpkR2x1WnlCM2FYUm9JR0VnYzJsdVoyeGxJR052Y201bGNseHVJQ0FnSUhKbGRIVnliaUJiWFR0Y2JpQWdmVnh1SUNCamIyNXpkQ0J6YjNKMFpXUkpiblJsY25ObFkzUnBiMjV6SUQwZ2FXNTBaWEp6WldOMGFXOXVjeTV6YjNKMEtGeHVJQ0FnSUNocE1Td2dhVElwSUQwK1hHNGdJQ0FnSUNCSFFWQnZhVzUwTG1ScGMzUmhibU5sS0dreExDQnVaV0Z5VUc5cGJuUXBJQzBnUjBGUWIybHVkQzVrYVhOMFlXNWpaU2hwTWl3Z2JtVmhjbEJ2YVc1MEtTeGNiaUFnS1R0Y2JpQWdjbVYwZFhKdUlGdGNiaUFnSUNCemIzSjBaV1JKYm5SbGNuTmxZM1JwYjI1eld6QmRMRnh1SUNBZ0lITnZjblJsWkVsdWRHVnljMlZqZEdsdmJuTmJjMjl5ZEdWa1NXNTBaWEp6WldOMGFXOXVjeTVzWlc1bmRHZ2dMU0F4WFN4Y2JpQWdYVHRjYm4wN1hHNWNibU52Ym5OMElHZGxkRU52Y201bGNuTWdQU0FvWEc0Z0lHVnNaVzFsYm5RNlhHNGdJQ0FnZkNCRmVHTmhiR2xrY21GM1VtVmpkR0Z1WjJ4bFJXeGxiV1Z1ZEZ4dUlDQWdJSHdnUlhoallXeHBaSEpoZDBsdFlXZGxSV3hsYldWdWRGeHVJQ0FnSUh3Z1JYaGpZV3hwWkhKaGQwUnBZVzF2Ym1SRmJHVnRaVzUwWEc0Z0lDQWdmQ0JGZUdOaGJHbGtjbUYzVkdWNGRFVnNaVzFsYm5Rc1hHNGdJSE5qWVd4bE9pQnVkVzFpWlhJZ1BTQXhMRnh1S1RvZ1IwRXVVRzlwYm5SYlhTQTlQaUI3WEc0Z0lHTnZibk4wSUdoNElEMGdLSE5qWVd4bElDb2daV3hsYldWdWRDNTNhV1IwYUNrZ0x5QXlPMXh1SUNCamIyNXpkQ0JvZVNBOUlDaHpZMkZzWlNBcUlHVnNaVzFsYm5RdWFHVnBaMmgwS1NBdklESTdYRzRnSUhOM2FYUmphQ0FvWld4bGJXVnVkQzUwZVhCbEtTQjdYRzRnSUNBZ1kyRnpaU0JjSW5KbFkzUmhibWRzWlZ3aU9seHVJQ0FnSUdOaGMyVWdYQ0pwYldGblpWd2lPbHh1SUNBZ0lHTmhjMlVnWENKMFpYaDBYQ0k2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdXMXh1SUNBZ0lDQWdJQ0JIUVM1d2IybHVkQ2hvZUN3Z2FIa3BMRnh1SUNBZ0lDQWdJQ0JIUVM1d2IybHVkQ2hvZUN3Z0xXaDVLU3hjYmlBZ0lDQWdJQ0FnUjBFdWNHOXBiblFvTFdoNExDQXRhSGtwTEZ4dUlDQWdJQ0FnSUNCSFFTNXdiMmx1ZENndGFIZ3NJR2g1S1N4Y2JpQWdJQ0FnSUYwN1hHNGdJQ0FnWTJGelpTQmNJbVJwWVcxdmJtUmNJanBjYmlBZ0lDQWdJSEpsZEhWeWJpQmJYRzRnSUNBZ0lDQWdJRWRCTG5CdmFXNTBLREFzSUdoNUtTeGNiaUFnSUNBZ0lDQWdSMEV1Y0c5cGJuUW9hSGdzSURBcExGeHVJQ0FnSUNBZ0lDQkhRUzV3YjJsdWRDZ3dMQ0F0YUhrcExGeHVJQ0FnSUNBZ0lDQkhRUzV3YjJsdWRDZ3RhSGdzSURBcExGeHVJQ0FnSUNBZ1hUdGNiaUFnZlZ4dWZUdGNibHh1THk4Z1VtVjBkWEp1Y3lCcGJuUmxjbk5sWTNScGIyNGdiMllnWUd4cGJtVmdJSGRwZEdnZ1lITmxaMjFsYm5SZ0xDQjNhWFJvSUdCelpXZHRaVzUwWUNCdGIzWmxaQ0JpZVZ4dUx5OGdZR2RoY0dBZ2FXNGdhWFJ6SUhCdmJHRnlJR1JwY21WamRHbHZiaTVjYmk4dklFbG1JR2x1ZEdWeWMyVmpkR2x2YmlCamIyNXBibU5wWkdWeklIZHBkR2dnYzJWamIyNWtJSE5sWjIxbGJuUWdjRzlwYm5RZ2NtVjBkWEp1Y3lCbGJYQjBlU0JoY25KaGVTNWNibU52Ym5OMElHbHVkR1Z5YzJWamRGTmxaMjFsYm5RZ1BTQW9YRzRnSUd4cGJtVTZJRWRCTGt4cGJtVXNYRzRnSUhObFoyMWxiblE2SUZ0SFFTNVFiMmx1ZEN3Z1IwRXVVRzlwYm5SZExGeHVLVG9nUjBFdVVHOXBiblJiWFNBOVBpQjdYRzRnSUdOdmJuTjBJRnRoTENCaVhTQTlJSE5sWjIxbGJuUTdYRzRnSUdOdmJuTjBJR0ZFYVhOMElEMGdSMEZRYjJsdWRDNWthWE4wWVc1alpWUnZUR2x1WlNoaExDQnNhVzVsS1R0Y2JpQWdZMjl1YzNRZ1lrUnBjM1FnUFNCSFFWQnZhVzUwTG1ScGMzUmhibU5sVkc5TWFXNWxLR0lzSUd4cGJtVXBPMXh1SUNCcFppQW9ZVVJwYzNRZ0tpQmlSR2x6ZENBK1BTQXdLU0I3WEc0Z0lDQWdMeThnVkdobElHbHVkR1Z5YzJWamRHbHZiaUJwY3lCdmRYUnphV1JsSUhObFoyMWxiblFnWUNoaExDQmlLV0JjYmlBZ0lDQnlaWFIxY200Z1cxMDdYRzRnSUgxY2JpQWdjbVYwZFhKdUlGdEhRVkJ2YVc1MExtbHVkR1Z5YzJWamRDaHNhVzVsTENCSFFVeHBibVV1ZEdoeWIzVm5hQ2hoTENCaUtTbGRPMXh1ZlR0Y2JseHVZMjl1YzNRZ2IyWm1jMlYwVTJWbmJXVnVkQ0E5SUNoY2JpQWdjMlZuYldWdWREb2dXMGRCTGxCdmFXNTBMQ0JIUVM1UWIybHVkRjBzWEc0Z0lHUnBjM1JoYm1ObE9pQnVkVzFpWlhJc1hHNHBPaUJiUjBFdVVHOXBiblFzSUVkQkxsQnZhVzUwWFNBOVBpQjdYRzRnSUdOdmJuTjBJRnRoTENCaVhTQTlJSE5sWjIxbGJuUTdYRzRnSUdOdmJuTjBJRzltWm5ObGRDQTlJRWRCVkhKaGJuTm1iM0p0TG5SeVlXNXpiR0YwYVc5dVQzSjBhRzluYjI1aGJDaGNiaUFnSUNCSFFVUnBjbVZqZEdsdmJpNW1jbTl0Vkc4b1lTd2dZaWtzWEc0Z0lDQWdaR2x6ZEdGdVkyVXNYRzRnSUNrN1hHNGdJSEpsZEhWeWJpQmJSMEZVY21GdWMyWnZjbTB1WVhCd2JIa29iMlptYzJWMExDQmhLU3dnUjBGVWNtRnVjMlp2Y20wdVlYQndiSGtvYjJabWMyVjBMQ0JpS1YwN1hHNTlPMXh1WEc1amIyNXpkQ0JuWlhSRmJHeHBjSE5sU1c1MFpYSnpaV04wYVc5dWN5QTlJQ2hjYmlBZ1pXeGxiV1Z1ZERvZ1JYaGpZV3hwWkhKaGQwVnNiR2x3YzJWRmJHVnRaVzUwTEZ4dUlDQm5ZWEE2SUc1MWJXSmxjaXhjYmlBZ2JHbHVaVG9nUjBFdVRHbHVaU3hjYmlrNklFZEJMbEJ2YVc1MFcxMGdQVDRnZTF4dUlDQmpiMjV6ZENCaElEMGdaV3hsYldWdWRDNTNhV1IwYUNBdklESWdLeUJuWVhBN1hHNGdJR052Ym5OMElHSWdQU0JsYkdWdFpXNTBMbWhsYVdkb2RDQXZJRElnS3lCbllYQTdYRzRnSUdOdmJuTjBJRzBnUFNCc2FXNWxXekpkTzF4dUlDQmpiMjV6ZENCdUlEMGdiR2x1WlZzelhUdGNiaUFnWTI5dWMzUWdZeUE5SUd4cGJtVmJNVjA3WEc0Z0lHTnZibk4wSUhOeGRXRnlaWE1nUFNCaElDb2dZU0FxSUcwZ0tpQnRJQ3NnWWlBcUlHSWdLaUJ1SUNvZ2JqdGNiaUFnWTI5dWMzUWdaR2x6WTNJZ1BTQnpjWFZoY21WeklDMGdZeUFxSUdNN1hHNGdJR2xtSUNoemNYVmhjbVZ6SUQwOVBTQXdJSHg4SUdScGMyTnlJRHc5SURBcElIdGNiaUFnSUNCeVpYUjFjbTRnVzEwN1hHNGdJSDFjYmlBZ1kyOXVjM1FnWkdselkzSlNiMjkwSUQwZ1RXRjBhQzV6Y1hKMEtHUnBjMk55S1R0Y2JpQWdZMjl1YzNRZ2VHNGdQU0F0WVNBcUlHRWdLaUJ0SUNvZ1l6dGNiaUFnWTI5dWMzUWdlVzRnUFNBdFlpQXFJR0lnS2lCdUlDb2dZenRjYmlBZ2NtVjBkWEp1SUZ0Y2JpQWdJQ0JIUVM1d2IybHVkQ2hjYmlBZ0lDQWdJQ2g0YmlBcklHRWdLaUJpSUNvZ2JpQXFJR1JwYzJOeVVtOXZkQ2tnTHlCemNYVmhjbVZ6TEZ4dUlDQWdJQ0FnS0hsdUlDMGdZU0FxSUdJZ0tpQnRJQ29nWkdselkzSlNiMjkwS1NBdklITnhkV0Z5WlhNc1hHNGdJQ0FnS1N4Y2JpQWdJQ0JIUVM1d2IybHVkQ2hjYmlBZ0lDQWdJQ2g0YmlBdElHRWdLaUJpSUNvZ2JpQXFJR1JwYzJOeVVtOXZkQ2tnTHlCemNYVmhjbVZ6TEZ4dUlDQWdJQ0FnS0hsdUlDc2dZU0FxSUdJZ0tpQnRJQ29nWkdselkzSlNiMjkwS1NBdklITnhkV0Z5WlhNc1hHNGdJQ0FnS1N4Y2JpQWdYVHRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCblpYUkRhWEpqYkdWSmJuUmxjbk5sWTNScGIyNXpJRDBnS0Z4dUlDQmpaVzUwWlhJNklFZEJMbEJ2YVc1MExGeHVJQ0J5WVdScGRYTTZJRzUxYldKbGNpeGNiaUFnYkdsdVpUb2dSMEV1VEdsdVpTeGNiaWs2SUVkQkxsQnZhVzUwVzEwZ1BUNGdlMXh1SUNCcFppQW9jbUZrYVhWeklEMDlQU0F3S1NCN1hHNGdJQ0FnY21WMGRYSnVJRWRCVUc5cGJuUXVaR2x6ZEdGdVkyVlViMHhwYm1Vb2JHbHVaU3dnWTJWdWRHVnlLU0E5UFQwZ01DQS9JRnRqWlc1MFpYSmRJRG9nVzEwN1hHNGdJSDFjYmlBZ1kyOXVjM1FnYlNBOUlHeHBibVZiTWwwN1hHNGdJR052Ym5OMElHNGdQU0JzYVc1bFd6TmRPMXh1SUNCamIyNXpkQ0JqSUQwZ2JHbHVaVnN4WFR0Y2JpQWdZMjl1YzNRZ1cyRXNJR0pkSUQwZ1IwRlFiMmx1ZEM1MGIxUjFjR3hsS0dObGJuUmxjaWs3WEc0Z0lHTnZibk4wSUhJZ1BTQnlZV1JwZFhNN1hHNGdJR052Ym5OMElITnhkV0Z5WlhNZ1BTQnRJQ29nYlNBcklHNGdLaUJ1TzF4dUlDQmpiMjV6ZENCa2FYTmpjaUE5SUhJZ0tpQnlJQ29nYzNGMVlYSmxjeUF0SUNodElDb2dZU0FySUc0Z0tpQmlJQ3NnWXlrZ0tpb2dNanRjYmlBZ2FXWWdLSE54ZFdGeVpYTWdQVDA5SURBZ2ZId2daR2x6WTNJZ1BEMGdNQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQmJYVHRjYmlBZ2ZWeHVJQ0JqYjI1emRDQmthWE5qY2xKdmIzUWdQU0JOWVhSb0xuTnhjblFvWkdselkzSXBPMXh1SUNCamIyNXpkQ0I0YmlBOUlHRWdLaUJ1SUNvZ2JpQXRJR0lnS2lCdElDb2diaUF0SUcwZ0tpQmpPMXh1SUNCamIyNXpkQ0I1YmlBOUlHSWdLaUJ0SUNvZ2JTQXRJR0VnS2lCdElDb2diaUF0SUc0Z0tpQmpPMXh1WEc0Z0lISmxkSFZ5YmlCYlhHNGdJQ0FnUjBFdWNHOXBiblFvS0hodUlDc2diaUFxSUdScGMyTnlVbTl2ZENrZ0x5QnpjWFZoY21WekxDQW9lVzRnTFNCdElDb2daR2x6WTNKU2IyOTBLU0F2SUhOeGRXRnlaWE1wTEZ4dUlDQWdJRWRCTG5CdmFXNTBLQ2g0YmlBdElHNGdLaUJrYVhOamNsSnZiM1FwSUM4Z2MzRjFZWEpsY3l3Z0tIbHVJQ3NnYlNBcUlHUnBjMk55VW05dmRDa2dMeUJ6Y1hWaGNtVnpLU3hjYmlBZ1hUdGNibjA3WEc1Y2JpOHZJRlJvWlNCbWIyTjFjeUJ3YjJsdWRDQnBjeUIwYUdVZ2RHRnVaMlZ1ZENCd2IybHVkQ0J2WmlCMGFHVWdYQ0ptYjJOMWN5QnBiV0ZuWlZ3aUlHOW1JSFJvWlZ4dUx5OGdZR1ZzWlcxbGJuUmdMQ0IzYUdWeVpTQjBhR1VnZEdGdVoyVnVkQ0JuYjJWeklIUm9jbTkxWjJnZ1lIQnZhVzUwWUM1Y2JtVjRjRzl5ZENCamIyNXpkQ0JtYVc1a1JtOWpkWE5RYjJsdWRFWnZja1ZzYkdsd2MyVWdQU0FvWEc0Z0lHVnNiR2x3YzJVNklFVjRZMkZzYVdSeVlYZEZiR3hwY0hObFJXeGxiV1Z1ZEN4Y2JpQWdMeThnUW1WMGQyVmxiaUF0TVNCaGJtUWdNU0FvYm05MElEQXBJSFJvWlNCeVpXeGhkR2wyWlNCemFYcGxJRzltSUhSb1pTQmNJbVp2WTNWeklHbHRZV2RsWENJZ2IyWmNiaUFnTHk4Z2RHaGxJR1ZzWlcxbGJuUWdiMjRnZDJocFkyZ2dkR2hsSUdadlkzVnpJSEJ2YVc1MElHeHBaWE5jYmlBZ2NtVnNZWFJwZG1WRWFYTjBZVzVqWlRvZ2JuVnRZbVZ5TEZ4dUlDQXZMeUJVYUdVZ2NHOXBiblFnWm05eUlIZG9hV05vSUhkbEozSmxJSFJ5ZVdsdVp5QjBieUJtYVc1a0lIUm9aU0JtYjJOMWN5QndiMmx1ZEN3Z2NtVnNZWFJwZG1WY2JpQWdMeThnZEc4Z2RHaGxJR1ZzYkdsd2MyVWdZMlZ1ZEdWeUxseHVJQ0J3YjJsdWREb2dSMEV1VUc5cGJuUXNYRzRwT2lCSFFTNVFiMmx1ZENBOVBpQjdYRzRnSUdOdmJuTjBJSEpsYkdGMGFYWmxSR2x6ZEdGdVkyVkJZbk1nUFNCTllYUm9MbUZpY3loeVpXeGhkR2wyWlVScGMzUmhibU5sS1R0Y2JpQWdZMjl1YzNRZ1lTQTlJQ2hsYkd4cGNITmxMbmRwWkhSb0lDb2djbVZzWVhScGRtVkVhWE4wWVc1alpVRmljeWtnTHlBeU8xeHVJQ0JqYjI1emRDQmlJRDBnS0dWc2JHbHdjMlV1YUdWcFoyaDBJQ29nY21Wc1lYUnBkbVZFYVhOMFlXNWpaVUZpY3lrZ0x5QXlPMXh1WEc0Z0lHTnZibk4wSUc5eWFXVnVkR0YwYVc5dUlEMGdUV0YwYUM1emFXZHVLSEpsYkdGMGFYWmxSR2x6ZEdGdVkyVXBPMXh1SUNCamIyNXpkQ0JiY0hnc0lIQjViMTBnUFNCSFFWQnZhVzUwTG5SdlZIVndiR1VvY0c5cGJuUXBPMXh1WEc0Z0lDOHZJRlJvWlNCallXeGpkV3hoZEdsdmJpQmlaV3h2ZHlCallXNG5kQ0JvWVc1a2JHVWdjSGtnUFNBd1hHNGdJR052Ym5OMElIQjVJRDBnY0hsdklEMDlQU0F3SUQ4Z01DNHdNREF4SURvZ2NIbHZPMXh1WEc0Z0lHTnZibk4wSUhOeGRXRnlaWE1nUFNCd2VDQXFLaUF5SUNvZ1lpQXFLaUF5SUNzZ2NIa2dLaW9nTWlBcUlHRWdLaW9nTWp0Y2JpQWdMeThnVkdGdVoyVnVkQ0J0ZUNBcklHNTVJQ3NnTVNBOUlEQmNiaUFnWTI5dWMzUWdiU0E5WEc0Z0lDQWdLQzF3ZUNBcUlHSWdLaW9nTWlBclhHNGdJQ0FnSUNCdmNtbGxiblJoZEdsdmJpQXFJSEI1SUNvZ1RXRjBhQzV6Y1hKMEtFMWhkR2d1YldGNEtEQXNJSE54ZFdGeVpYTWdMU0JoSUNvcUlESWdLaUJpSUNvcUlESXBLU2tnTDF4dUlDQWdJSE54ZFdGeVpYTTdYRzVjYmlBZ1kyOXVjM1FnYmlBOUlDZ3RiU0FxSUhCNElDMGdNU2tnTHlCd2VUdGNibHh1SUNCamIyNXpkQ0I0SUQwZ0xTaGhJQ29xSURJZ0tpQnRLU0F2SUNodUlDb3FJRElnS2lCaUlDb3FJRElnS3lCdElDb3FJRElnS2lCaElDb3FJRElwTzF4dUlDQnlaWFIxY200Z1IwRXVjRzlwYm5Rb2VDd2dLQzF0SUNvZ2VDQXRJREVwSUM4Z2JpazdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWm1sdVpFWnZZM1Z6VUc5cGJuUkdiM0pTWldOMFlXNW5kV3hoY25NZ1BTQW9YRzRnSUdWc1pXMWxiblE2WEc0Z0lDQWdmQ0JGZUdOaGJHbGtjbUYzVW1WamRHRnVaMnhsUld4bGJXVnVkRnh1SUNBZ0lId2dSWGhqWVd4cFpISmhkMGx0WVdkbFJXeGxiV1Z1ZEZ4dUlDQWdJSHdnUlhoallXeHBaSEpoZDBScFlXMXZibVJGYkdWdFpXNTBYRzRnSUNBZ2ZDQkZlR05oYkdsa2NtRjNWR1Y0ZEVWc1pXMWxiblFzWEc0Z0lDOHZJRUpsZEhkbFpXNGdMVEVnWVc1a0lERWdabTl5SUdodmR5Qm1ZWElnWVhkaGVTQnphRzkxYkdRZ2RHaGxJR1p2WTNWeklIQnZhVzUwSUdKbElISmxiR0YwYVhabFhHNGdJQzh2SUhSdklIUm9aU0J6YVhwbElHOW1JSFJvWlNCbGJHVnRaVzUwTGlCVGFXZHVJR1JsZEdWeWJXbHVaWE1nYjNKcFpXNTBZWFJwYjI0dVhHNGdJSEpsYkdGMGFYWmxSR2x6ZEdGdVkyVTZJRzUxYldKbGNpeGNiaUFnTHk4Z1ZHaGxJSEJ2YVc1MElHWnZjaUIzYUdsamFDQjNaU2R5WlNCMGNubHBibWNnZEc4Z1ptbHVaQ0IwYUdVZ1ptOWpkWE1nY0c5cGJuUXNJSEpsYkdGMGFYWmxYRzRnSUM4dklIUnZJSFJvWlNCbGJHVnRaVzUwSUdObGJuUmxjaTVjYmlBZ2NHOXBiblE2SUVkQkxsQnZhVzUwTEZ4dUtUb2dSMEV1VUc5cGJuUWdQVDRnZTF4dUlDQmpiMjV6ZENCeVpXeGhkR2wyWlVScGMzUmhibU5sUVdKeklEMGdUV0YwYUM1aFluTW9jbVZzWVhScGRtVkVhWE4wWVc1alpTazdYRzRnSUdOdmJuTjBJRzl5YVdWdWRHRjBhVzl1SUQwZ1RXRjBhQzV6YVdkdUtISmxiR0YwYVhabFJHbHpkR0Z1WTJVcE8xeHVJQ0JqYjI1emRDQmpiM0p1WlhKeklEMGdaMlYwUTI5eWJtVnljeWhsYkdWdFpXNTBMQ0J5Wld4aGRHbDJaVVJwYzNSaGJtTmxRV0p6S1R0Y2JseHVJQ0JzWlhRZ2JXRjRSR2x6ZEdGdVkyVWdQU0F3TzF4dUlDQnNaWFFnZEdGdVoyVnVkRkJ2YVc1ME9pQnVkV3hzSUh3Z1IwRXVVRzlwYm5RZ1BTQnVkV3hzTzF4dUlDQmpiM0p1WlhKekxtWnZja1ZoWTJnb0tHTnZjbTVsY2lrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUdScGMzUmhibU5sSUQwZ2IzSnBaVzUwWVhScGIyNGdLaUJIUVV4cGJtVXVkR2h5YjNWbmFDaHdiMmx1ZEN3Z1kyOXlibVZ5S1ZzeFhUdGNiaUFnSUNCcFppQW9aR2x6ZEdGdVkyVWdQaUJ0WVhoRWFYTjBZVzVqWlNrZ2UxeHVJQ0FnSUNBZ2JXRjRSR2x6ZEdGdVkyVWdQU0JrYVhOMFlXNWpaVHRjYmlBZ0lDQWdJSFJoYm1kbGJuUlFiMmx1ZENBOUlHTnZjbTVsY2p0Y2JpQWdJQ0I5WEc0Z0lIMHBPMXh1SUNCeVpYUjFjbTRnZEdGdVoyVnVkRkJ2YVc1MElUdGNibjA3WEc1Y2JtTnZibk4wSUhCdmFXNTBTVzVDWlhwcFpYSkZjWFZoZEdsdmJpQTlJQ2hjYmlBZ2NEQTZJRkJ2YVc1MExGeHVJQ0J3TVRvZ1VHOXBiblFzWEc0Z0lIQXlPaUJRYjJsdWRDeGNiaUFnY0RNNklGQnZhVzUwTEZ4dUlDQmJiWGdzSUcxNVhUb2dVRzlwYm5Rc1hHNGdJR3hwYm1WVWFISmxjMmh2YkdRNklHNTFiV0psY2l4Y2Jpa2dQVDRnZTF4dUlDQXZMeUJDS0hRcElEMGdjREFnS2lBb01TMTBLVjR6SUNzZ00zQXhJQ29nZENBcUlDZ3hMWFFwWGpJZ0t5QXpjRElnS2lCMFhqSWdLaUFvTVMxMEtTQXJJSEF6SUNvZ2RGNHpYRzRnSUdOdmJuTjBJR1Z4ZFdGMGFXOXVJRDBnS0hRNklHNTFiV0psY2l3Z2FXUjRPaUJ1ZFcxaVpYSXBJRDArWEc0Z0lDQWdUV0YwYUM1d2IzY29NU0F0SUhRc0lETXBJQ29nY0ROYmFXUjRYU0FyWEc0Z0lDQWdNeUFxSUhRZ0tpQk5ZWFJvTG5CdmR5Z3hJQzBnZEN3Z01pa2dLaUJ3TWx0cFpIaGRJQ3RjYmlBZ0lDQXpJQ29nVFdGMGFDNXdiM2NvZEN3Z01pa2dLaUFvTVNBdElIUXBJQ29nY0RGYmFXUjRYU0FyWEc0Z0lDQWdjREJiYVdSNFhTQXFJRTFoZEdndWNHOTNLSFFzSURNcE8xeHVYRzRnSUM4dklHZHZJSFJvY205MVoyZ2dkQ0JwYmlCcGJtTnlaVzFsYm5SeklHOW1JREF1TURGY2JpQWdiR1YwSUhRZ1BTQXdPMXh1SUNCM2FHbHNaU0FvZENBOFBTQXhMakFwSUh0Y2JpQWdJQ0JqYjI1emRDQjBlQ0E5SUdWeGRXRjBhVzl1S0hRc0lEQXBPMXh1SUNBZ0lHTnZibk4wSUhSNUlEMGdaWEYxWVhScGIyNG9kQ3dnTVNrN1hHNWNiaUFnSUNCamIyNXpkQ0JrYVdabUlEMGdUV0YwYUM1emNYSjBLRTFoZEdndWNHOTNLSFI0SUMwZ2JYZ3NJRElwSUNzZ1RXRjBhQzV3YjNjb2RIa2dMU0J0ZVN3Z01pa3BPMXh1WEc0Z0lDQWdhV1lnS0dScFptWWdQQ0JzYVc1bFZHaHlaWE5vYjJ4a0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjBJQ3M5SURBdU1ERTdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNTlPMXh1WEc1amIyNXpkQ0JvYVhSVVpYTjBRM1Z5ZG1WSmJuTnBaR1VnUFNBb1hHNGdJR1J5WVhkaFlteGxPaUJFY21GM1lXSnNaU3hjYmlBZ2VEb2diblZ0WW1WeUxGeHVJQ0I1T2lCdWRXMWlaWElzWEc0Z0lITm9ZWEp3Ym1WemN6b2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYQ0p6ZEhKdmEyVlRhR0Z5Y0c1bGMzTmNJbDBzWEc0cElEMCtJSHRjYmlBZ1kyOXVjM1FnYjNCeklEMGdaMlYwUTNWeWRtVlFZWFJvVDNCektHUnlZWGRoWW14bEtUdGNiaUFnWTI5dWMzUWdjRzlwYm5Sek9pQk5kWFJoWW14bFBGQnZhVzUwUGx0ZElEMGdXMTA3WEc0Z0lHeGxkQ0J2WkdRZ1BTQm1ZV3h6WlRzZ0x5OGdjMlZzWldOMElHOXVaU0JzYVc1bElHOTFkQ0J2WmlCa2IzVmliR1VnYkdsdVpYTmNiaUFnWm05eUlDaGpiMjV6ZENCdmNHVnlZWFJwYjI0Z2IyWWdiM0J6S1NCN1hHNGdJQ0FnYVdZZ0tHOXdaWEpoZEdsdmJpNXZjQ0E5UFQwZ1hDSnRiM1psWENJcElIdGNiaUFnSUNBZ0lHOWtaQ0E5SUNGdlpHUTdYRzRnSUNBZ0lDQnBaaUFvYjJSa0tTQjdYRzRnSUNBZ0lDQWdJSEJ2YVc1MGN5NXdkWE5vS0Z0dmNHVnlZWFJwYjI0dVpHRjBZVnN3WFN3Z2IzQmxjbUYwYVc5dUxtUmhkR0ZiTVYxZEtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tHOXdaWEpoZEdsdmJpNXZjQ0E5UFQwZ1hDSmlZM1Z5ZG1WVWIxd2lLU0I3WEc0Z0lDQWdJQ0JwWmlBb2IyUmtLU0I3WEc0Z0lDQWdJQ0FnSUhCdmFXNTBjeTV3ZFhOb0tGdHZjR1Z5WVhScGIyNHVaR0YwWVZzd1hTd2diM0JsY21GMGFXOXVMbVJoZEdGYk1WMWRLVHRjYmlBZ0lDQWdJQ0FnY0c5cGJuUnpMbkIxYzJnb1cyOXdaWEpoZEdsdmJpNWtZWFJoV3pKZExDQnZjR1Z5WVhScGIyNHVaR0YwWVZzelhWMHBPMXh1SUNBZ0lDQWdJQ0J3YjJsdWRITXVjSFZ6YUNoYmIzQmxjbUYwYVc5dUxtUmhkR0ZiTkYwc0lHOXdaWEpoZEdsdmJpNWtZWFJoV3pWZFhTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaHZjR1Z5WVhScGIyNHViM0FnUFQwOUlGd2liR2x1WlZSdlhDSXBJSHRjYmlBZ0lDQWdJR2xtSUNodlpHUXBJSHRjYmlBZ0lDQWdJQ0FnY0c5cGJuUnpMbkIxYzJnb1cyOXdaWEpoZEdsdmJpNWtZWFJoV3pCZExDQnZjR1Z5WVhScGIyNHVaR0YwWVZzeFhWMHBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlZ4dUlDQnBaaUFvY0c5cGJuUnpMbXhsYm1kMGFDQStQU0EwS1NCN1hHNGdJQ0FnYVdZZ0tITm9ZWEp3Ym1WemN5QTlQVDBnWENKemFHRnljRndpS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYVhOUWIybHVkRWx1VUc5c2VXZHZiaWh3YjJsdWRITXNJSGdzSUhrcE8xeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQndiMng1WjI5dVVHOXBiblJ6SUQwZ2NHOXBiblJ6VDI1Q1pYcHBaWEpEZFhKMlpYTW9jRzlwYm5SekxDQXhNQ3dnTlNrN1hHNGdJQ0FnY21WMGRYSnVJR2x6VUc5cGJuUkpibEJ2YkhsbmIyNG9jRzlzZVdkdmJsQnZhVzUwY3l3Z2VDd2dlU2s3WEc0Z0lIMWNiaUFnY21WMGRYSnVJR1poYkhObE8xeHVmVHRjYmx4dVkyOXVjM1FnYUdsMFZHVnpkRkp2ZFdkb1UyaGhjR1VnUFNBb1hHNGdJR1J5WVhkaFlteGxPaUJFY21GM1lXSnNaU3hjYmlBZ2VEb2diblZ0WW1WeUxGeHVJQ0I1T2lCdWRXMWlaWElzWEc0Z0lHeHBibVZVYUhKbGMyaHZiR1E2SUc1MWJXSmxjaXhjYmlrZ1BUNGdlMXh1SUNBdkx5QnlaV0ZrSUc5d1pYSmhkR2x2Ym5NZ1puSnZiU0JtYVhKemRDQnZjRk5sZEZ4dUlDQmpiMjV6ZENCdmNITWdQU0JuWlhSRGRYSjJaVkJoZEdoUGNITW9aSEpoZDJGaWJHVXBPMXh1WEc0Z0lDOHZJSE5sZENCemRHRnlkQ0J3YjNOcGRHbHZiaUJoY3lBb01Dd3dLU0JxZFhOMElHbHVJR05oYzJWY2JpQWdMeThnYlc5MlpTQnZjR1Z5WVhScGIyNGdaRzlsY3lCdWIzUWdaWGhwYzNRZ0tIVnViR2xyWld4NUlHSjFkQ0JwZENCcGN5QjNiM0owYUNCellXWmxhMlZsY0dsdVp5QnBkQ2xjYmlBZ2JHVjBJR04xY25KbGJuUlFPaUJRYjJsdWRDQTlJRnN3TENBd1hUdGNibHh1SUNCeVpYUjFjbTRnYjNCekxuTnZiV1VvS0hzZ2IzQXNJR1JoZEdFZ2ZTd2dhV1I0S1NBOVBpQjdYRzRnSUNBZ0x5OGdWR2hsY21VZ1lYSmxJRzl1YkhrZ1ptOTFjaUJ2Y0dWeVlYUnBiMjRnZEhsd1pYTTZYRzRnSUNBZ0x5OGdiVzkyWlN3Z1ltTjFjblpsVkc4c0lHeHBibVZVYnl3Z1lXNWtJR04xY25abFZHOWNiaUFnSUNCcFppQW9iM0FnUFQwOUlGd2liVzkyWlZ3aUtTQjdYRzRnSUNBZ0lDQXZMeUJqYUdGdVoyVWdjM1JoY25ScGJtY2djRzlwYm5SY2JpQWdJQ0FnSUdOMWNuSmxiblJRSUQwZ1pHRjBZU0JoY3lCMWJtdHViM2R1SUdGeklGQnZhVzUwTzF4dUlDQWdJQ0FnTHk4Z2JXOTJaU0J2Y0dWeVlYUnBiMjRnWkc5bGN5QnViM1FnWkhKaGR5QmhibmwwYUdsdVp6c2djMjhzSUdsMElHRnNkMkY1YzF4dUlDQWdJQ0FnTHk4Z2NtVjBkWEp1Y3lCbVlXeHpaVnh1SUNBZ0lIMGdaV3h6WlNCcFppQW9iM0FnUFQwOUlGd2lZbU4xY25abFZHOWNJaWtnZTF4dUlDQWdJQ0FnTHk4Z1kzSmxZWFJsSUhCdmFXNTBjeUJtY205dElHSmxlbWxsY2lCamRYSjJaVnh1SUNBZ0lDQWdMeThnWW1WNmFXVnlJR04xY25abElITjBiM0psY3lCa1lYUmhJR0Z6SUdFZ1pteGhkSFJsYm1Wa0lHRnljbUY1SUc5bUlIUm9jbVZsSUhCdmMybDBhVzl1YzF4dUlDQWdJQ0FnTHk4Z1czZ3hMQ0I1TVN3Z2VESXNJSGt5TENCNE15d2dlVE5kWEc0Z0lDQWdJQ0JqYjI1emRDQndNU0E5SUZ0a1lYUmhXekJkTENCa1lYUmhXekZkWFNCaGN5QlFiMmx1ZER0Y2JpQWdJQ0FnSUdOdmJuTjBJSEF5SUQwZ1cyUmhkR0ZiTWwwc0lHUmhkR0ZiTTExZElHRnpJRkJ2YVc1ME8xeHVJQ0FnSUNBZ1kyOXVjM1FnY0RNZ1BTQmJaR0YwWVZzMFhTd2daR0YwWVZzMVhWMGdZWE1nVUc5cGJuUTdYRzVjYmlBZ0lDQWdJR052Ym5OMElIQXdJRDBnWTNWeWNtVnVkRkE3WEc0Z0lDQWdJQ0JqZFhKeVpXNTBVQ0E5SUhBek8xeHVYRzRnSUNBZ0lDQXZMeUJqYUdWamF5QnBaaUJ3YjJsdWRITWdZWEpsSUc5dUlIUm9aU0JqZFhKMlpWeHVJQ0FnSUNBZ0x5OGdZM1ZpYVdNZ1ltVjZhV1Z5SUdOMWNuWmxjeUJ5WlhGMWFYSmxJR1p2ZFhJZ2NHRnlZVzFsZEdWeWMxeHVJQ0FnSUNBZ0x5OGdkR2hsSUdacGNuTjBJSEJoY21GdFpYUmxjaUJwY3lCMGFHVWdiR0Z6ZENCemRHOXlaV1FnY0c5emFYUnBiMjRnS0hBd0tWeHVJQ0FnSUNBZ1kyOXVjM1FnY21WMFZtRnNJRDBnY0c5cGJuUkpia0psZW1sbGNrVnhkV0YwYVc5dUtGeHVJQ0FnSUNBZ0lDQndNQ3hjYmlBZ0lDQWdJQ0FnY0RFc1hHNGdJQ0FnSUNBZ0lIQXlMRnh1SUNBZ0lDQWdJQ0J3TXl4Y2JpQWdJQ0FnSUNBZ1czZ3NJSGxkTEZ4dUlDQWdJQ0FnSUNCc2FXNWxWR2h5WlhOb2IyeGtMRnh1SUNBZ0lDQWdLVHRjYmx4dUlDQWdJQ0FnTHk4Z2MyVjBJR1Z1WkNCd2IybHVkQ0J2WmlCaVpYcHBaWElnWTNWeWRtVWdZWE1nZEdobElHNWxkeUJ6ZEdGeWRHbHVaeUJ3YjJsdWRDQm1iM0pjYmlBZ0lDQWdJQzh2SUhWd1kyOXRhVzVuSUc5d1pYSmhkR2x2Ym5NZ1lYTWdaV0ZqYUNCdmNHVnlZWFJwYjI0Z2FYTWdZbUZ6WldRZ2IyNGdkR2hsSUd4aGMzUWdaSEpoZDI1Y2JpQWdJQ0FnSUM4dklIQnZjMmwwYVc5dUlHOW1JSFJvWlNCd2NtVjJhVzkxY3lCdmNHVnlZWFJwYjI1Y2JpQWdJQ0FnSUhKbGRIVnliaUJ5WlhSV1lXdzdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaHZjQ0E5UFQwZ1hDSnNhVzVsVkc5Y0lpa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHaHBkRlJsYzNSRGRYSjJaVWx1YzJsa1pTaGtjbUYzWVdKc1pTd2dlQ3dnZVN3Z1hDSnphR0Z5Y0Z3aUtUdGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tHOXdJRDA5UFNCY0luRmpkWEoyWlZSdlhDSXBJSHRjYmlBZ0lDQWdJQzh2SUZSUFJFODZJRWx0Y0d4bGJXVnVkQ0IwYUdselhHNGdJQ0FnSUNCamIyNXpiMnhsTG5kaGNtNG9YQ0p4WTNWeWRtVlVieUJwY3lCdWIzUWdhVzF3YkdWdFpXNTBaV1FnZVdWMFhDSXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ2ZTazdYRzU5TzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZWxlbWVudC9jb2xsaXNpb24udHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2VsZW1lbnQvZHJhZ0VsZW1lbnRzLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2VsZW1lbnQvZHJhZ0VsZW1lbnRzLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkcmFnU2VsZWN0ZWRFbGVtZW50c1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGRyYWdTZWxlY3RlZEVsZW1lbnRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXREcmFnT2Zmc2V0WFlcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXREcmFnT2Zmc2V0WFkpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRyYWdOZXdFbGVtZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZHJhZ05ld0VsZW1lbnQpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2JpbmRpbmcgKi8gXFxcIi4uLy4uL2VsZW1lbnQvYmluZGluZy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2JvdW5kcyAqLyBcXFwiLi4vLi4vZWxlbWVudC9ib3VuZHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vbXV0YXRlRWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9tdXRhdGVFbGVtZW50LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zaXplSGVscGVyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9zaXplSGVscGVycyAqLyBcXFwiLi4vLi4vZWxlbWVudC9zaXplSGVscGVycy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfU2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lL1NjZW5lICovIFxcXCIuLi8uLi9zY2VuZS9TY2VuZS50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vdGV4dEVsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdGV4dEVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZ3JvdXBzICovIFxcXCIuLi8uLi9ncm91cHMudHNcXFwiKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBkcmFnU2VsZWN0ZWRFbGVtZW50cyA9IChwb2ludGVyRG93blN0YXRlLCBzZWxlY3RlZEVsZW1lbnRzLCBwb2ludGVyWCwgcG9pbnRlclksIGxvY2tEaXJlY3Rpb24gPSBmYWxzZSwgZGlzdGFuY2VYID0gMCwgZGlzdGFuY2VZID0gMCwgYXBwU3RhdGUpID0+IHtcXG4gICAgY29uc3QgW3gxLCB5MV0gPSAoMCxfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0Q29tbW9uQm91bmRzKShzZWxlY3RlZEVsZW1lbnRzKTtcXG4gICAgY29uc3Qgb2Zmc2V0ID0geyB4OiBwb2ludGVyWCAtIHgxLCB5OiBwb2ludGVyWSAtIHkxIH07XFxuICAgIHNlbGVjdGVkRWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xcbiAgICAgICAgdXBkYXRlRWxlbWVudENvb3Jkcyhsb2NrRGlyZWN0aW9uLCBkaXN0YW5jZVgsIGRpc3RhbmNlWSwgcG9pbnRlckRvd25TdGF0ZSwgZWxlbWVudCwgb2Zmc2V0KTtcXG4gICAgICAgIC8vIHVwZGF0ZSBjb29yZHMgb2YgYm91bmQgdGV4dCBvbmx5IGlmIHdlJ3JlIGRyYWdnaW5nIHRoZSBjb250YWluZXIgZGlyZWN0bHlcXG4gICAgICAgIC8vICh3ZSBkb24ndCBkcmFnIHRoZSBncm91cCB0aGF0IGl0J3MgcGFydCBvZilcXG4gICAgICAgIGlmIChcXG4gICAgICAgIC8vIGNvbnRhaW5lciBpc24ndCBwYXJ0IG9mIGFueSBncm91cFxcbiAgICAgICAgLy8gKHBlcmYgb3B0aW0gc28gd2UgZG9uJ3QgY2hlY2sgYGlzU2VsZWN0ZWRWaWFHcm91cCgpYCBpbiBldmVyeSBjYXNlKVxcbiAgICAgICAgIWVsZW1lbnQuZ3JvdXBJZHMubGVuZ3RoIHx8XFxuICAgICAgICAgICAgLy8gY29udGFpbmVyIGlzIHBhcnQgb2YgYSBncm91cCwgYnV0IHdlJ3JlIGRyYWdnaW5nIHRoZSBjb250YWluZXIgZGlyZWN0bHlcXG4gICAgICAgICAgICAoYXBwU3RhdGUuZWRpdGluZ0dyb3VwSWQgJiYgISgwLF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5pc1NlbGVjdGVkVmlhR3JvdXApKGFwcFN0YXRlLCBlbGVtZW50KSkpIHtcXG4gICAgICAgICAgICBjb25zdCBib3VuZFRleHRFbGVtZW50SWQgPSAoMCxfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRCb3VuZFRleHRFbGVtZW50SWQpKGVsZW1lbnQpO1xcbiAgICAgICAgICAgIGlmIChib3VuZFRleHRFbGVtZW50SWQpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgdGV4dEVsZW1lbnQgPSBfc2NlbmVfU2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1tcXFwiZGVmYXVsdFxcXCJdLmdldFNjZW5lKGVsZW1lbnQpLmdldEVsZW1lbnQoYm91bmRUZXh0RWxlbWVudElkKTtcXG4gICAgICAgICAgICAgICAgdXBkYXRlRWxlbWVudENvb3Jkcyhsb2NrRGlyZWN0aW9uLCBkaXN0YW5jZVgsIGRpc3RhbmNlWSwgcG9pbnRlckRvd25TdGF0ZSwgdGV4dEVsZW1lbnQsIG9mZnNldCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgKDAsX2JpbmRpbmdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51cGRhdGVCb3VuZEVsZW1lbnRzKShlbGVtZW50LCB7XFxuICAgICAgICAgICAgc2ltdWx0YW5lb3VzbHlVcGRhdGVkOiBzZWxlY3RlZEVsZW1lbnRzLFxcbiAgICAgICAgfSk7XFxuICAgIH0pO1xcbn07XFxuY29uc3QgdXBkYXRlRWxlbWVudENvb3JkcyA9IChsb2NrRGlyZWN0aW9uLCBkaXN0YW5jZVgsIGRpc3RhbmNlWSwgcG9pbnRlckRvd25TdGF0ZSwgZWxlbWVudCwgb2Zmc2V0KSA9PiB7XFxuICAgIGxldCB4O1xcbiAgICBsZXQgeTtcXG4gICAgaWYgKGxvY2tEaXJlY3Rpb24pIHtcXG4gICAgICAgIGNvbnN0IGxvY2tYID0gbG9ja0RpcmVjdGlvbiAmJiBkaXN0YW5jZVggPCBkaXN0YW5jZVk7XFxuICAgICAgICBjb25zdCBsb2NrWSA9IGxvY2tEaXJlY3Rpb24gJiYgZGlzdGFuY2VYID4gZGlzdGFuY2VZO1xcbiAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSBwb2ludGVyRG93blN0YXRlLm9yaWdpbmFsRWxlbWVudHMuZ2V0KGVsZW1lbnQuaWQpO1xcbiAgICAgICAgeCA9IGxvY2tYICYmIG9yaWdpbmFsID8gb3JpZ2luYWwueCA6IGVsZW1lbnQueCArIG9mZnNldC54O1xcbiAgICAgICAgeSA9IGxvY2tZICYmIG9yaWdpbmFsID8gb3JpZ2luYWwueSA6IGVsZW1lbnQueSArIG9mZnNldC55O1xcbiAgICB9XFxuICAgIGVsc2Uge1xcbiAgICAgICAgeCA9IGVsZW1lbnQueCArIG9mZnNldC54O1xcbiAgICAgICAgeSA9IGVsZW1lbnQueSArIG9mZnNldC55O1xcbiAgICB9XFxuICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ubXV0YXRlRWxlbWVudCkoZWxlbWVudCwge1xcbiAgICAgICAgeCxcXG4gICAgICAgIHksXFxuICAgIH0pO1xcbn07XFxuY29uc3QgZ2V0RHJhZ09mZnNldFhZID0gKHNlbGVjdGVkRWxlbWVudHMsIHgsIHkpID0+IHtcXG4gICAgY29uc3QgW3gxLCB5MV0gPSAoMCxfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0Q29tbW9uQm91bmRzKShzZWxlY3RlZEVsZW1lbnRzKTtcXG4gICAgcmV0dXJuIFt4IC0geDEsIHkgLSB5MV07XFxufTtcXG5jb25zdCBkcmFnTmV3RWxlbWVudCA9IChkcmFnZ2luZ0VsZW1lbnQsIGVsZW1lbnRUeXBlLCBvcmlnaW5YLCBvcmlnaW5ZLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBzaG91bGRNYWludGFpbkFzcGVjdFJhdGlvLCBzaG91bGRSZXNpemVGcm9tQ2VudGVyLCBcXG4vKiogd2hldGhlciB0byBrZWVwIGdpdmVuIGFzcGVjdCByYXRpbyB3aGVuIGBpc1Jlc2l6ZVdpdGhTaWRlc1NhbWVMZW5ndGhgIGlzXFxuICAgIHRydWUgKi9cXG53aWR0aEFzcGVjdFJhdGlvKSA9PiB7XFxuICAgIGlmIChzaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKSB7XFxuICAgICAgICBpZiAod2lkdGhBc3BlY3RSYXRpbykge1xcbiAgICAgICAgICAgIGhlaWdodCA9IHdpZHRoIC8gd2lkdGhBc3BlY3RSYXRpbztcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICh7IHdpZHRoLCBoZWlnaHQgfSA9ICgwLF9zaXplSGVscGVyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmdldFBlcmZlY3RFbGVtZW50U2l6ZSkoZWxlbWVudFR5cGUsIHdpZHRoLCB5IDwgb3JpZ2luWSA/IC1oZWlnaHQgOiBoZWlnaHQpKTtcXG4gICAgICAgICAgICBpZiAoaGVpZ2h0IDwgMCkge1xcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSAtaGVpZ2h0O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBsZXQgbmV3WCA9IHggPCBvcmlnaW5YID8gb3JpZ2luWCAtIHdpZHRoIDogb3JpZ2luWDtcXG4gICAgbGV0IG5ld1kgPSB5IDwgb3JpZ2luWSA/IG9yaWdpblkgLSBoZWlnaHQgOiBvcmlnaW5ZO1xcbiAgICBpZiAoc2hvdWxkUmVzaXplRnJvbUNlbnRlcikge1xcbiAgICAgICAgd2lkdGggKz0gd2lkdGg7XFxuICAgICAgICBoZWlnaHQgKz0gaGVpZ2h0O1xcbiAgICAgICAgbmV3WCA9IG9yaWdpblggLSB3aWR0aCAvIDI7XFxuICAgICAgICBuZXdZID0gb3JpZ2luWSAtIGhlaWdodCAvIDI7XFxuICAgIH1cXG4gICAgaWYgKHdpZHRoICE9PSAwICYmIGhlaWdodCAhPT0gMCkge1xcbiAgICAgICAgKDAsX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5tdXRhdGVFbGVtZW50KShkcmFnZ2luZ0VsZW1lbnQsIHtcXG4gICAgICAgICAgICB4OiBuZXdYLFxcbiAgICAgICAgICAgIHk6IG5ld1ksXFxuICAgICAgICAgICAgd2lkdGgsXFxuICAgICAgICAgICAgaGVpZ2h0LFxcbiAgICAgICAgfSk7XFxuICAgIH1cXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2Wld4bGJXVnVkQzlrY21GblJXeGxiV1Z1ZEhNdWRITXVhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenRCUVVOblJEdEJRVU5NTzBGQlEwczdRVUZEVFR0QlFVTnVRanRCUVVkdFFqdEJRVU5RTzBGQlJYaERMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NRMEZEYkVNc1owSkJRV3RETEVWQlEyeERMR2RDUVVFclF5eEZRVU12UXl4UlFVRm5RaXhGUVVOb1FpeFJRVUZuUWl4RlFVTm9RaXhuUWtGQmVVSXNTMEZCU3l4RlFVTTVRaXhaUVVGdlFpeERRVUZETEVWQlEzSkNMRmxCUVc5Q0xFTkJRVU1zUlVGRGNrSXNVVUZCYTBJc1JVRkRiRUlzUlVGQlJUdEpRVU5HTEUxQlFVMHNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzZDBSQlFXVXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETzBsQlEyNUVMRTFCUVUwc1RVRkJUU3hIUVVGSExFVkJRVVVzUTBGQlF5eEZRVUZGTEZGQlFWRXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxGRkJRVkVzUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXp0SlFVTjBSQ3huUWtGQlowSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJUdFJRVU51UXl4dFFrRkJiVUlzUTBGRGFrSXNZVUZCWVN4RlFVTmlMRk5CUVZNc1JVRkRWQ3hUUVVGVExFVkJRMVFzWjBKQlFXZENMRVZCUTJoQ0xFOUJRVThzUlVGRFVDeE5RVUZOTEVOQlExQXNRMEZCUXp0UlFVTkdMRFJGUVVFMFJUdFJRVU0xUlN3NFEwRkJPRU03VVVGRE9VTTdVVUZEUlN4dlEwRkJiME03VVVGRGNFTXNjMFZCUVhORk8xRkJRM1JGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTk8xbEJRM2hDTERCRlFVRXdSVHRaUVVNeFJTeERRVUZETEZGQlFWRXNRMEZCUXl4alFVRmpMRWxCUVVrc1EwRkJReXd5UkVGQmEwSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zUlVGRGJrVTdXVUZEUVN4TlFVRk5MR3RDUVVGclFpeEhRVUZITEcxRlFVRnhRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFsQlF6RkVMRWxCUVVrc2EwSkJRV3RDTEVWQlFVVTdaMEpCUTNSQ0xFMUJRVTBzVjBGQlZ5eEhRVU5tTERaRVFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFTkJRVU03WjBKQlF6RkVMRzFDUVVGdFFpeERRVU5xUWl4aFFVRmhMRVZCUTJJc1UwRkJVeXhGUVVOVUxGTkJRVk1zUlVGRFZDeG5Ra0ZCWjBJc1JVRkRhRUlzVjBGQldTeEZRVU5hTEUxQlFVMHNRMEZEVUN4RFFVRkRPMkZCUTBnN1UwRkRSanRSUVVORUxEWkVRVUZ0UWl4RFFVRkRMRTlCUVU4c1JVRkJSVHRaUVVNelFpeHhRa0ZCY1VJc1JVRkJSU3huUWtGQlowSTdVMEZEZUVNc1EwRkJReXhEUVVGRE8wbEJRMHdzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVEN4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxHMUNRVUZ0UWl4SFFVRkhMRU5CUXpGQ0xHRkJRWE5DTEVWQlEzUkNMRk5CUVdsQ0xFVkJRMnBDTEZOQlFXbENMRVZCUTJwQ0xHZENRVUZyUXl4RlFVTnNReXhQUVVGdlF5eEZRVU53UXl4TlFVRm5ReXhGUVVOb1F5eEZRVUZGTzBsQlEwWXNTVUZCU1N4RFFVRlRMRU5CUVVNN1NVRkRaQ3hKUVVGSkxFTkJRVk1zUTBGQlF6dEpRVU5rTEVsQlFVa3NZVUZCWVN4RlFVRkZPMUZCUTJwQ0xFMUJRVTBzUzBGQlN5eEhRVUZITEdGQlFXRXNTVUZCU1N4VFFVRlRMRWRCUVVjc1UwRkJVeXhEUVVGRE8xRkJRM0pFTEUxQlFVMHNTMEZCU3l4SFFVRkhMR0ZCUVdFc1NVRkJTU3hUUVVGVExFZEJRVWNzVTBGQlV5eERRVUZETzFGQlEzSkVMRTFCUVUwc1VVRkJVU3hIUVVGSExHZENRVUZuUWl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGJrVXNRMEZCUXl4SFFVRkhMRXRCUVVzc1NVRkJTU3hSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNeFJDeERRVUZETEVkQlFVY3NTMEZCU3l4SlFVRkpMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRPMHRCUXpORU8xTkJRVTA3VVVGRFRDeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzcENMRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRNVUk3U1VGRlJDdzJSRUZCWVN4RFFVRkRMRTlCUVU4c1JVRkJSVHRSUVVOeVFpeERRVUZETzFGQlEwUXNRMEZCUXp0TFFVTkdMRU5CUVVNc1EwRkJRenRCUVVOTUxFTkJRVU1zUTBGQlF6dEJRVU5MTEUxQlFVMHNaVUZCWlN4SFFVRkhMRU5CUXpkQ0xHZENRVUVyUXl4RlFVTXZReXhEUVVGVExFVkJRMVFzUTBGQlV5eEZRVU5UTEVWQlFVVTdTVUZEY0VJc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4M1JFRkJaU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNN1NVRkRia1FzVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETzBGQlF6RkNMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzWTBGQll5eEhRVUZITEVOQlF6VkNMR1ZCUVRSRExFVkJRelZETEZkQlFUSkRMRVZCUXpORExFOUJRV1VzUlVGRFppeFBRVUZsTEVWQlEyWXNRMEZCVXl4RlFVTlVMRU5CUVZNc1JVRkRWQ3hMUVVGaExFVkJRMklzVFVGQll5eEZRVU5rTEhsQ1FVRnJReXhGUVVOc1F5eHpRa0ZCSzBJN1FVRkRMMEk3VjBGRFZ6dEJRVU5ZTEdkQ1FVRm5ReXhGUVVOb1F5eEZRVUZGTzBsQlEwWXNTVUZCU1N4NVFrRkJlVUlzUlVGQlJUdFJRVU0zUWl4SlFVRkpMR2RDUVVGblFpeEZRVUZGTzFsQlEzQkNMRTFCUVUwc1IwRkJSeXhMUVVGTExFZEJRVWNzWjBKQlFXZENMRU5CUVVNN1UwRkRia003WVVGQlRUdFpRVU5NTEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVVVc1RVRkJUU3hGUVVGRkxFZEJRVWNzYlVWQlFYRkNMRU5CUTNoRExGZEJRVmNzUlVGRFdDeExRVUZMTEVWQlEwd3NRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkRMMElzUTBGQlF5eERRVUZETzFsQlJVZ3NTVUZCU1N4TlFVRk5MRWRCUVVjc1EwRkJReXhGUVVGRk8yZENRVU5rTEUxQlFVMHNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJRenRoUVVOc1FqdFRRVU5HTzB0QlEwWTdTVUZGUkN4SlFVRkpMRWxCUVVrc1IwRkJSeXhEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRWRCUVVjc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTTdTVUZEYmtRc1NVRkJTU3hKUVVGSkxFZEJRVWNzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRPMGxCUlhCRUxFbEJRVWtzYzBKQlFYTkNMRVZCUVVVN1VVRkRNVUlzUzBGQlN5eEpRVUZKTEV0QlFVc3NRMEZCUXp0UlFVTm1MRTFCUVUwc1NVRkJTU3hOUVVGTkxFTkJRVU03VVVGRGFrSXNTVUZCU1N4SFFVRkhMRTlCUVU4c1IwRkJSeXhMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlF6TkNMRWxCUVVrc1IwRkJSeXhQUVVGUExFZEJRVWNzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0TFFVTTNRanRKUVVWRUxFbEJRVWtzUzBGQlN5eExRVUZMTEVOQlFVTXNTVUZCU1N4TlFVRk5MRXRCUVVzc1EwRkJReXhGUVVGRk8xRkJReTlDTERaRVFVRmhMRU5CUVVNc1pVRkJaU3hGUVVGRk8xbEJRemRDTEVOQlFVTXNSVUZCUlN4SlFVRkpPMWxCUTFBc1EwRkJReXhGUVVGRkxFbEJRVWs3V1VGRFVDeExRVUZMTzFsQlEwd3NUVUZCVFR0VFFVTlFMRU5CUVVNc1EwRkJRenRMUVVOS08wRkJRMGdzUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyVnNaVzFsYm5RdlpISmhaMFZzWlcxbGJuUnpMblJ6UHpZME1USWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnVTBoQlVFVlRJSDBnWm5KdmJTQmNJaTR1TDNOb1lYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ2RYQmtZWFJsUW05MWJtUkZiR1Z0Wlc1MGN5QjlJR1p5YjIwZ1hDSXVMMkpwYm1ScGJtZGNJanRjYm1sdGNHOXlkQ0I3SUdkbGRFTnZiVzF2YmtKdmRXNWtjeUI5SUdaeWIyMGdYQ0l1TDJKdmRXNWtjMXdpTzF4dWFXMXdiM0owSUhzZ2JYVjBZWFJsUld4bGJXVnVkQ0I5SUdaeWIyMGdYQ0l1TDIxMWRHRjBaVVZzWlcxbGJuUmNJanRjYm1sdGNHOXlkQ0I3SUdkbGRGQmxjbVpsWTNSRmJHVnRaVzUwVTJsNlpTQjlJR1p5YjIwZ1hDSXVMM05wZW1WSVpXeHdaWEp6WENJN1hHNXBiWEJ2Y25RZ1UyTmxibVVnWm5KdmJTQmNJaTR1TDNOalpXNWxMMU5qWlc1bFhDSTdYRzVwYlhCdmNuUWdleUJPYjI1RVpXeGxkR1ZrUlhoallXeHBaSEpoZDBWc1pXMWxiblFnZlNCbWNtOXRJRndpTGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1FYQndVM1JoZEdVc0lGQnZhVzUwWlhKRWIzZHVVM1JoZEdVZ2ZTQm1jbTl0SUZ3aUxpNHZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdJR2RsZEVKdmRXNWtWR1Y0ZEVWc1pXMWxiblJKWkNCOUlHWnliMjBnWENJdUwzUmxlSFJGYkdWdFpXNTBYQ0k3WEc1cGJYQnZjblFnZXlCcGMxTmxiR1ZqZEdWa1ZtbGhSM0p2ZFhBZ2ZTQm1jbTl0SUZ3aUxpNHZaM0p2ZFhCelhDSTdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmtjbUZuVTJWc1pXTjBaV1JGYkdWdFpXNTBjeUE5SUNoY2JpQWdjRzlwYm5SbGNrUnZkMjVUZEdGMFpUb2dVRzlwYm5SbGNrUnZkMjVUZEdGMFpTeGNiaUFnYzJWc1pXTjBaV1JGYkdWdFpXNTBjem9nVG05dVJHVnNaWFJsWkVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzEwc1hHNGdJSEJ2YVc1MFpYSllPaUJ1ZFcxaVpYSXNYRzRnSUhCdmFXNTBaWEpaT2lCdWRXMWlaWElzWEc0Z0lHeHZZMnRFYVhKbFkzUnBiMjQ2SUdKdmIyeGxZVzRnUFNCbVlXeHpaU3hjYmlBZ1pHbHpkR0Z1WTJWWU9pQnVkVzFpWlhJZ1BTQXdMRnh1SUNCa2FYTjBZVzVqWlZrNklHNTFiV0psY2lBOUlEQXNYRzRnSUdGd2NGTjBZWFJsT2lCQmNIQlRkR0YwWlN4Y2Jpa2dQVDRnZTF4dUlDQmpiMjV6ZENCYmVERXNJSGt4WFNBOUlHZGxkRU52YlcxdmJrSnZkVzVrY3loelpXeGxZM1JsWkVWc1pXMWxiblJ6S1R0Y2JpQWdZMjl1YzNRZ2IyWm1jMlYwSUQwZ2V5QjRPaUJ3YjJsdWRHVnlXQ0F0SUhneExDQjVPaUJ3YjJsdWRHVnlXU0F0SUhreElIMDdYRzRnSUhObGJHVmpkR1ZrUld4bGJXVnVkSE11Wm05eVJXRmphQ2dvWld4bGJXVnVkQ2tnUFQ0Z2UxeHVJQ0FnSUhWd1pHRjBaVVZzWlcxbGJuUkRiMjl5WkhNb1hHNGdJQ0FnSUNCc2IyTnJSR2x5WldOMGFXOXVMRnh1SUNBZ0lDQWdaR2x6ZEdGdVkyVllMRnh1SUNBZ0lDQWdaR2x6ZEdGdVkyVlpMRnh1SUNBZ0lDQWdjRzlwYm5SbGNrUnZkMjVUZEdGMFpTeGNiaUFnSUNBZ0lHVnNaVzFsYm5Rc1hHNGdJQ0FnSUNCdlptWnpaWFFzWEc0Z0lDQWdLVHRjYmlBZ0lDQXZMeUIxY0dSaGRHVWdZMjl2Y21SeklHOW1JR0p2ZFc1a0lIUmxlSFFnYjI1c2VTQnBaaUIzWlNkeVpTQmtjbUZuWjJsdVp5QjBhR1VnWTI5dWRHRnBibVZ5SUdScGNtVmpkR3g1WEc0Z0lDQWdMeThnS0hkbElHUnZiaWQwSUdSeVlXY2dkR2hsSUdkeWIzVndJSFJvWVhRZ2FYUW5jeUJ3WVhKMElHOW1LVnh1SUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQzh2SUdOdmJuUmhhVzVsY2lCcGMyNG5kQ0J3WVhKMElHOW1JR0Z1ZVNCbmNtOTFjRnh1SUNBZ0lDQWdMeThnS0hCbGNtWWdiM0IwYVcwZ2MyOGdkMlVnWkc5dUozUWdZMmhsWTJzZ1lHbHpVMlZzWldOMFpXUldhV0ZIY205MWNDZ3BZQ0JwYmlCbGRtVnllU0JqWVhObEtWeHVJQ0FnSUNBZ0lXVnNaVzFsYm5RdVozSnZkWEJKWkhNdWJHVnVaM1JvSUh4OFhHNGdJQ0FnSUNBdkx5QmpiMjUwWVdsdVpYSWdhWE1nY0dGeWRDQnZaaUJoSUdkeWIzVndMQ0JpZFhRZ2QyVW5jbVVnWkhKaFoyZHBibWNnZEdobElHTnZiblJoYVc1bGNpQmthWEpsWTNSc2VWeHVJQ0FnSUNBZ0tHRndjRk4wWVhSbExtVmthWFJwYm1kSGNtOTFjRWxrSUNZbUlDRnBjMU5sYkdWamRHVmtWbWxoUjNKdmRYQW9ZWEJ3VTNSaGRHVXNJR1ZzWlcxbGJuUXBLVnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1ltOTFibVJVWlhoMFJXeGxiV1Z1ZEVsa0lEMGdaMlYwUW05MWJtUlVaWGgwUld4bGJXVnVkRWxrS0dWc1pXMWxiblFwTzF4dUlDQWdJQ0FnYVdZZ0tHSnZkVzVrVkdWNGRFVnNaVzFsYm5SSlpDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjBaWGgwUld4bGJXVnVkQ0E5WEc0Z0lDQWdJQ0FnSUNBZ1UyTmxibVV1WjJWMFUyTmxibVVvWld4bGJXVnVkQ2toTG1kbGRFVnNaVzFsYm5Rb1ltOTFibVJVWlhoMFJXeGxiV1Z1ZEVsa0tUdGNiaUFnSUNBZ0lDQWdkWEJrWVhSbFJXeGxiV1Z1ZEVOdmIzSmtjeWhjYmlBZ0lDQWdJQ0FnSUNCc2IyTnJSR2x5WldOMGFXOXVMRnh1SUNBZ0lDQWdJQ0FnSUdScGMzUmhibU5sV0N4Y2JpQWdJQ0FnSUNBZ0lDQmthWE4wWVc1alpWa3NYRzRnSUNBZ0lDQWdJQ0FnY0c5cGJuUmxja1J2ZDI1VGRHRjBaU3hjYmlBZ0lDQWdJQ0FnSUNCMFpYaDBSV3hsYldWdWRDRXNYRzRnSUNBZ0lDQWdJQ0FnYjJabWMyVjBMRnh1SUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQjFjR1JoZEdWQ2IzVnVaRVZzWlcxbGJuUnpLR1ZzWlcxbGJuUXNJSHRjYmlBZ0lDQWdJSE5wYlhWc2RHRnVaVzkxYzJ4NVZYQmtZWFJsWkRvZ2MyVnNaV04wWldSRmJHVnRaVzUwY3l4Y2JpQWdJQ0I5S1R0Y2JpQWdmU2s3WEc1OU8xeHVYRzVqYjI1emRDQjFjR1JoZEdWRmJHVnRaVzUwUTI5dmNtUnpJRDBnS0Z4dUlDQnNiMk5yUkdseVpXTjBhVzl1T2lCaWIyOXNaV0Z1TEZ4dUlDQmthWE4wWVc1alpWZzZJRzUxYldKbGNpeGNiaUFnWkdsemRHRnVZMlZaT2lCdWRXMWlaWElzWEc0Z0lIQnZhVzUwWlhKRWIzZHVVM1JoZEdVNklGQnZhVzUwWlhKRWIzZHVVM1JoZEdVc1hHNGdJR1ZzWlcxbGJuUTZJRTV2YmtSbGJHVjBaV1JGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ3hjYmlBZ2IyWm1jMlYwT2lCN0lIZzZJRzUxYldKbGNqc2dlVG9nYm5WdFltVnlJSDBzWEc0cElEMCtJSHRjYmlBZ2JHVjBJSGc2SUc1MWJXSmxjanRjYmlBZ2JHVjBJSGs2SUc1MWJXSmxjanRjYmlBZ2FXWWdLR3h2WTJ0RWFYSmxZM1JwYjI0cElIdGNiaUFnSUNCamIyNXpkQ0JzYjJOcldDQTlJR3h2WTJ0RWFYSmxZM1JwYjI0Z0ppWWdaR2x6ZEdGdVkyVllJRHdnWkdsemRHRnVZMlZaTzF4dUlDQWdJR052Ym5OMElHeHZZMnRaSUQwZ2JHOWphMFJwY21WamRHbHZiaUFtSmlCa2FYTjBZVzVqWlZnZ1BpQmthWE4wWVc1alpWazdYRzRnSUNBZ1kyOXVjM1FnYjNKcFoybHVZV3dnUFNCd2IybHVkR1Z5Ukc5M2JsTjBZWFJsTG05eWFXZHBibUZzUld4bGJXVnVkSE11WjJWMEtHVnNaVzFsYm5RdWFXUXBPMXh1SUNBZ0lIZ2dQU0JzYjJOcldDQW1KaUJ2Y21sbmFXNWhiQ0EvSUc5eWFXZHBibUZzTG5nZ09pQmxiR1Z0Wlc1MExuZ2dLeUJ2Wm1aelpYUXVlRHRjYmlBZ0lDQjVJRDBnYkc5amExa2dKaVlnYjNKcFoybHVZV3dnUHlCdmNtbG5hVzVoYkM1NUlEb2daV3hsYldWdWRDNTVJQ3NnYjJabWMyVjBMbms3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnZUNBOUlHVnNaVzFsYm5RdWVDQXJJRzltWm5ObGRDNTRPMXh1SUNBZ0lIa2dQU0JsYkdWdFpXNTBMbmtnS3lCdlptWnpaWFF1ZVR0Y2JpQWdmVnh1WEc0Z0lHMTFkR0YwWlVWc1pXMWxiblFvWld4bGJXVnVkQ3dnZTF4dUlDQWdJSGdzWEc0Z0lDQWdlU3hjYmlBZ2ZTazdYRzU5TzF4dVpYaHdiM0owSUdOdmJuTjBJR2RsZEVSeVlXZFBabVp6WlhSWVdTQTlJQ2hjYmlBZ2MyVnNaV04wWldSRmJHVnRaVzUwY3pvZ1RtOXVSR1ZzWlhSbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMHNYRzRnSUhnNklHNTFiV0psY2l4Y2JpQWdlVG9nYm5WdFltVnlMRnh1S1RvZ1cyNTFiV0psY2l3Z2JuVnRZbVZ5WFNBOVBpQjdYRzRnSUdOdmJuTjBJRnQ0TVN3Z2VURmRJRDBnWjJWMFEyOXRiVzl1UW05MWJtUnpLSE5sYkdWamRHVmtSV3hsYldWdWRITXBPMXh1SUNCeVpYUjFjbTRnVzNnZ0xTQjRNU3dnZVNBdElIa3hYVHRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCa2NtRm5UbVYzUld4bGJXVnVkQ0E5SUNoY2JpQWdaSEpoWjJkcGJtZEZiR1Z0Wlc1ME9pQk9iMjVFWld4bGRHVmtSWGhqWVd4cFpISmhkMFZzWlcxbGJuUXNYRzRnSUdWc1pXMWxiblJVZVhCbE9pQjBlWEJsYjJZZ1UwaEJVRVZUVzI1MWJXSmxjbDFiWENKMllXeDFaVndpWFN4Y2JpQWdiM0pwWjJsdVdEb2diblZ0WW1WeUxGeHVJQ0J2Y21sbmFXNVpPaUJ1ZFcxaVpYSXNYRzRnSUhnNklHNTFiV0psY2l4Y2JpQWdlVG9nYm5WdFltVnlMRnh1SUNCM2FXUjBhRG9nYm5WdFltVnlMRnh1SUNCb1pXbG5hSFE2SUc1MWJXSmxjaXhjYmlBZ2MyaHZkV3hrVFdGcGJuUmhhVzVCYzNCbFkzUlNZWFJwYnpvZ1ltOXZiR1ZoYml4Y2JpQWdjMmh2ZFd4a1VtVnphWHBsUm5KdmJVTmxiblJsY2pvZ1ltOXZiR1ZoYml4Y2JpQWdMeW9xSUhkb1pYUm9aWElnZEc4Z2EyVmxjQ0JuYVhabGJpQmhjM0JsWTNRZ2NtRjBhVzhnZDJobGJpQmdhWE5TWlhOcGVtVlhhWFJvVTJsa1pYTlRZVzFsVEdWdVozUm9ZQ0JwYzF4dUlDQWdJQ0FnZEhKMVpTQXFMMXh1SUNCM2FXUjBhRUZ6Y0dWamRGSmhkR2x2UHpvZ2JuVnRZbVZ5SUh3Z2JuVnNiQ3hjYmlrZ1BUNGdlMXh1SUNCcFppQW9jMmh2ZFd4a1RXRnBiblJoYVc1QmMzQmxZM1JTWVhScGJ5a2dlMXh1SUNBZ0lHbG1JQ2gzYVdSMGFFRnpjR1ZqZEZKaGRHbHZLU0I3WEc0Z0lDQWdJQ0JvWldsbmFIUWdQU0IzYVdSMGFDQXZJSGRwWkhSb1FYTndaV04wVW1GMGFXODdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNoN0lIZHBaSFJvTENCb1pXbG5hSFFnZlNBOUlHZGxkRkJsY21abFkzUkZiR1Z0Wlc1MFUybDZaU2hjYmlBZ0lDQWdJQ0FnWld4bGJXVnVkRlI1Y0dVc1hHNGdJQ0FnSUNBZ0lIZHBaSFJvTEZ4dUlDQWdJQ0FnSUNCNUlEd2diM0pwWjJsdVdTQS9JQzFvWldsbmFIUWdPaUJvWldsbmFIUXNYRzRnSUNBZ0lDQXBLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tHaGxhV2RvZENBOElEQXBJSHRjYmlBZ0lDQWdJQ0FnYUdWcFoyaDBJRDBnTFdobGFXZG9kRHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JzWlhRZ2JtVjNXQ0E5SUhnZ1BDQnZjbWxuYVc1WUlEOGdiM0pwWjJsdVdDQXRJSGRwWkhSb0lEb2diM0pwWjJsdVdEdGNiaUFnYkdWMElHNWxkMWtnUFNCNUlEd2diM0pwWjJsdVdTQS9JRzl5YVdkcGJsa2dMU0JvWldsbmFIUWdPaUJ2Y21sbmFXNVpPMXh1WEc0Z0lHbG1JQ2h6YUc5MWJHUlNaWE5wZW1WR2NtOXRRMlZ1ZEdWeUtTQjdYRzRnSUNBZ2QybGtkR2dnS3owZ2QybGtkR2c3WEc0Z0lDQWdhR1ZwWjJoMElDczlJR2hsYVdkb2REdGNiaUFnSUNCdVpYZFlJRDBnYjNKcFoybHVXQ0F0SUhkcFpIUm9JQzhnTWp0Y2JpQWdJQ0J1WlhkWklEMGdiM0pwWjJsdVdTQXRJR2hsYVdkb2RDQXZJREk3WEc0Z0lIMWNibHh1SUNCcFppQW9kMmxrZEdnZ0lUMDlJREFnSmlZZ2FHVnBaMmgwSUNFOVBTQXdLU0I3WEc0Z0lDQWdiWFYwWVhSbFJXeGxiV1Z1ZENoa2NtRm5aMmx1WjBWc1pXMWxiblFzSUh0Y2JpQWdJQ0FnSUhnNklHNWxkMWdzWEc0Z0lDQWdJQ0I1T2lCdVpYZFpMRnh1SUNBZ0lDQWdkMmxrZEdnc1hHNGdJQ0FnSUNCb1pXbG5hSFFzWEc0Z0lDQWdmU2s3WEc0Z0lIMWNibjA3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZWxlbWVudC9kcmFnRWxlbWVudHMudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2VsZW1lbnQvaW1hZ2UudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9lbGVtZW50L2ltYWdlLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImxvYWRIVE1MSW1hZ2VFbGVtZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gbG9hZEhUTUxJbWFnZUVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInVwZGF0ZUltYWdlQ2FjaGVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB1cGRhdGVJbWFnZUNhY2hlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRJbml0aWFsaXplZEltYWdlRWxlbWVudHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRJbml0aWFsaXplZEltYWdlRWxlbWVudHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzSFRNTFNWR0VsZW1lbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpc0hUTUxTVkdFbGVtZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJub3JtYWxpemVTVkdcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBub3JtYWxpemVTVkcpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbnN0YW50cyAqLyBcXFwiLi4vLi4vY29uc3RhbnRzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pMThuICovIFxcXCIuLi8uLi9pMThuLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3R5cGVDaGVja3MgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdHlwZUNoZWNrcy50c1xcXCIpO1xcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuLy8gRXhjYWxpZHJhd0ltYWdlRWxlbWVudCAmIHJlbGF0ZWQgaGVscGVyc1xcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxudmFyIF9fYXdhaXRlciA9ICh1bmRlZmluZWQgJiYgdW5kZWZpbmVkLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XFxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XFxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcXFwidGhyb3dcXFwiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XFxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xcbiAgICB9KTtcXG59O1xcblxcblxcblxcbmNvbnN0IGxvYWRIVE1MSW1hZ2VFbGVtZW50ID0gKGRhdGFVUkwpID0+IHtcXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcXG4gICAgICAgIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XFxuICAgICAgICBpbWFnZS5vbmxvYWQgPSAoKSA9PiB7XFxuICAgICAgICAgICAgcmVzb2x2ZShpbWFnZSk7XFxuICAgICAgICB9O1xcbiAgICAgICAgaW1hZ2Uub25lcnJvciA9IChlcnJvcikgPT4ge1xcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XFxuICAgICAgICB9O1xcbiAgICAgICAgaW1hZ2Uuc3JjID0gZGF0YVVSTDtcXG4gICAgfSk7XFxufTtcXG4vKiogTk9URTogdXBkYXRlcyBjYWNoZSBldmVuIGlmIGFscmVhZHkgcG9wdWxhdGVkIHdpdGggZ2l2ZW4gaW1hZ2UuIFRodXMsXFxuICogeW91IHNob3VsZCBmaWx0ZXIgb3V0IHRoZSBpbWFnZXMgdXBzdHJlYW0gaWYgeW91IHdhbnQgdG8gb3B0aW1pemUgdGhpcy4gKi9cXG5jb25zdCB1cGRhdGVJbWFnZUNhY2hlID0gKHsgZmlsZUlkcywgZmlsZXMsIGltYWdlQ2FjaGUsIH0pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICBjb25zdCB1cGRhdGVkRmlsZXMgPSBuZXcgTWFwKCk7XFxuICAgIGNvbnN0IGVycm9yZWRGaWxlcyA9IG5ldyBNYXAoKTtcXG4gICAgeWllbGQgUHJvbWlzZS5hbGwoZmlsZUlkcy5yZWR1Y2UoKHByb21pc2VzLCBmaWxlSWQpID0+IHtcXG4gICAgICAgIGNvbnN0IGZpbGVEYXRhID0gZmlsZXNbZmlsZUlkXTtcXG4gICAgICAgIGlmIChmaWxlRGF0YSAmJiAhdXBkYXRlZEZpbGVzLmhhcyhmaWxlSWQpKSB7XFxuICAgICAgICAgICAgdXBkYXRlZEZpbGVzLnNldChmaWxlSWQsIHRydWUpO1xcbiAgICAgICAgICAgIHJldHVybiBwcm9taXNlcy5jb25jYXQoKCgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGVEYXRhLm1pbWVUeXBlID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uTUlNRV9UWVBFUy5iaW5hcnkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXFxcIk9ubHkgaW1hZ2VzIGNhbiBiZSBhZGRlZCB0byBJbWFnZUNhY2hlXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWFnZVByb21pc2UgPSBsb2FkSFRNTEltYWdlRWxlbWVudChmaWxlRGF0YS5kYXRhVVJMKTtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IGltYWdlUHJvbWlzZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW1lVHlwZTogZmlsZURhdGEubWltZVR5cGUsXFxuICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgLy8gc3RvcmUgdGhlIHByb21pc2UgaW1tZWRpYXRlbHkgdG8gaW5kaWNhdGUgdGhlcmUncyBhbiBpbi1wcm9ncmVzc1xcbiAgICAgICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6YXRpb25cXG4gICAgICAgICAgICAgICAgICAgIGltYWdlQ2FjaGUuc2V0KGZpbGVJZCwgZGF0YSk7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWFnZSA9IHlpZWxkIGltYWdlUHJvbWlzZTtcXG4gICAgICAgICAgICAgICAgICAgIGltYWdlQ2FjaGUuc2V0KGZpbGVJZCwgT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBkYXRhKSwgeyBpbWFnZSB9KSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XFxuICAgICAgICAgICAgICAgICAgICBlcnJvcmVkRmlsZXMuc2V0KGZpbGVJZCwgdHJ1ZSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KSkoKSk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gcHJvbWlzZXM7XFxuICAgIH0sIFtdKSk7XFxuICAgIHJldHVybiB7XFxuICAgICAgICBpbWFnZUNhY2hlLFxcbiAgICAgICAgLyoqIGluY2x1ZGVzIGVycm9yZWQgZmlsZXMgYmVjYXVzZSB0aGV5IGNhY2hlIHdhcyB1cGRhdGVkIG5vbmV0aGVsZXNzICovXFxuICAgICAgICB1cGRhdGVkRmlsZXMsXFxuICAgICAgICAvKiogZmlsZXMgdGhhdCBmYWlsZWQgd2hlbiBjcmVhdGluZyBIVE1MSW1hZ2VFbGVtZW50ICovXFxuICAgICAgICBlcnJvcmVkRmlsZXMsXFxuICAgIH07XFxufSk7XFxuY29uc3QgZ2V0SW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnRzID0gKGVsZW1lbnRzKSA9PiBlbGVtZW50cy5maWx0ZXIoKGVsZW1lbnQpID0+ICgwLF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uaXNJbml0aWFsaXplZEltYWdlRWxlbWVudCkoZWxlbWVudCkpO1xcbmNvbnN0IGlzSFRNTFNWR0VsZW1lbnQgPSAobm9kZSkgPT4ge1xcbiAgICAvLyBsb3dlci1jYXNpbmcgZHVlIHRvIFhNTC9IVE1MIGNvbnZlbnRpb24gZGlmZmVyZW5jZXNcXG4gICAgLy8gaHR0cHM6Ly9qb2hucmVzaWcuY29tL2Jsb2cvbm9kZW5hbWUtY2FzZS1zZW5zaXRpdml0eVxcbiAgICByZXR1cm4gKG5vZGUgPT09IG51bGwgfHwgbm9kZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKSA9PT0gXFxcInN2Z1xcXCI7XFxufTtcXG5jb25zdCBub3JtYWxpemVTVkcgPSAoU1ZHU3RyaW5nKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgY29uc3QgZG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhTVkdTdHJpbmcsIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5NSU1FX1RZUEVTLnN2Zyk7XFxuICAgIGNvbnN0IHN2ZyA9IGRvYy5xdWVyeVNlbGVjdG9yKFxcXCJzdmdcXFwiKTtcXG4gICAgY29uc3QgZXJyb3JOb2RlID0gZG9jLnF1ZXJ5U2VsZWN0b3IoXFxcInBhcnNlcmVycm9yXFxcIik7XFxuICAgIGlmIChlcnJvck5vZGUgfHwgIWlzSFRNTFNWR0VsZW1lbnQoc3ZnKSkge1xcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCgwLF9pMThuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udCkoXFxcImVycm9ycy5pbnZhbGlkU1ZHU3RyaW5nXFxcIikpO1xcbiAgICB9XFxuICAgIGVsc2Uge1xcbiAgICAgICAgaWYgKCFzdmcuaGFzQXR0cmlidXRlKFxcXCJ4bWxuc1xcXCIpKSB7XFxuICAgICAgICAgICAgc3ZnLnNldEF0dHJpYnV0ZShcXFwieG1sbnNcXFwiLCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uU1ZHX05TKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiBzdmcub3V0ZXJIVE1MO1xcbiAgICB9XFxufSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZaV3hsYldWdWRDOXBiV0ZuWlM1MGN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN096dEJRVUZCTEdkR1FVRm5SanRCUVVOb1Jpd3lRMEZCTWtNN1FVRkRNME1zWjBaQlFXZEdPenM3T3pzN096czdPMEZCUlRsQ08wRkJRM1JDTzBGQlJUWkNPMEZCVDJ4RUxFMUJRVTBzYjBKQlFXOUNMRWRCUVVjc1EwRkJReXhQUVVGblFpeEZRVUZGTEVWQlFVVTdTVUZEZGtRc1QwRkJUeXhKUVVGSkxFOUJRVThzUTBGQmJVSXNRMEZCUXl4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGRkxFVkJRVVU3VVVGRGRrUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hMUVVGTExFVkJRVVVzUTBGQlF6dFJRVU14UWl4TFFVRkxMRU5CUVVNc1RVRkJUU3hIUVVGSExFZEJRVWNzUlVGQlJUdFpRVU5zUWl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGFrSXNRMEZCUXl4RFFVRkRPMUZCUTBZc1MwRkJTeXhEUVVGRExFOUJRVThzUjBGQlJ5eERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZPMWxCUTNoQ0xFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTm9RaXhEUVVGRExFTkJRVU03VVVGRFJpeExRVUZMTEVOQlFVTXNSMEZCUnl4SFFVRkhMRTlCUVU4c1EwRkJRenRKUVVOMFFpeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTk1MRU5CUVVNc1EwRkJRenRCUVVWR096WkZRVU0yUlR0QlFVTjBSU3hOUVVGTkxHZENRVUZuUWl4SFFVRkhMRU5CUVU4c1JVRkRja01zVDBGQlR5eEZRVU5RTEV0QlFVc3NSVUZEVEN4VlFVRlZMRWRCUzFnc1JVRkJSU3hGUVVGRk8wbEJRMGdzVFVGQlRTeFpRVUZaTEVkQlFVY3NTVUZCU1N4SFFVRkhMRVZCUVdkQ0xFTkJRVU03U1VGRE4wTXNUVUZCVFN4WlFVRlpMRWRCUVVjc1NVRkJTU3hIUVVGSExFVkJRV2RDTEVOQlFVTTdTVUZGTjBNc1RVRkJUU3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVU5tTEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhSUVVGUkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVWQlFVVTdVVUZEYkVNc1RVRkJUU3hSUVVGUkxFZEJRVWNzUzBGQlN5eERRVUZETEUxQlFXZENMRU5CUVVNc1EwRkJRenRSUVVONlF5eEpRVUZKTEZGQlFWRXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVTdXVUZEZWtNc1dVRkJXU3hEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkRMMElzVDBGQlR5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVTndRaXhEUVVGRExFZEJRVk1zUlVGQlJUdG5Ra0ZEVml4SlFVRkpPMjlDUVVOR0xFbEJRVWtzVVVGQlVTeERRVUZETEZGQlFWRXNTMEZCU3l4NVJFRkJhVUlzUlVGQlJUdDNRa0ZETTBNc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eDNRMEZCZDBNc1EwRkJReXhEUVVGRE8zRkNRVU16UkR0dlFrRkZSQ3hOUVVGTkxGbEJRVmtzUjBGQlJ5eHZRa0ZCYjBJc1EwRkJReXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdiMEpCUXpWRUxFMUJRVTBzU1VGQlNTeEhRVUZITzNkQ1FVTllMRXRCUVVzc1JVRkJSU3haUVVGWk8zZENRVU51UWl4UlFVRlJMRVZCUVVVc1VVRkJVU3hEUVVGRExGRkJRVkU3Y1VKQlEyNUNMRU5CUVVNN2IwSkJRMWdzYlVWQlFXMUZPMjlDUVVOdVJTeHBRa0ZCYVVJN2IwSkJRMnBDTEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzI5Q1FVVTNRaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eE5RVUZOTEZsQlFWa3NRMEZCUXp0dlFrRkZha01zVlVGQlZTeERRVUZETEVkQlFVY3NRMEZCUXl4TlFVRk5MR3REUVVGUExFbEJRVWtzUzBGQlJTeExRVUZMTEVsQlFVY3NRMEZCUXp0cFFrRkROVU03WjBKQlFVTXNUMEZCVHl4TFFVRlZMRVZCUVVVN2IwSkJRMjVDTEZsQlFWa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzJsQ1FVTm9RenRaUVVOSUxFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlEwd3NRMEZCUXp0VFFVTklPMUZCUTBRc1QwRkJUeXhSUVVGUkxFTkJRVU03U1VGRGJFSXNRMEZCUXl4RlFVRkZMRVZCUVc5Q0xFTkJRVU1zUTBGRGVrSXNRMEZCUXp0SlFVVkdMRTlCUVU4N1VVRkRUQ3hWUVVGVk8xRkJRMVlzZDBWQlFYZEZPMUZCUTNoRkxGbEJRVms3VVVGRFdpeDFSRUZCZFVRN1VVRkRka1FzV1VGQldUdExRVU5pTEVOQlFVTTdRVUZEU2l4RFFVRkRMRVZCUVVNN1FVRkZTeXhOUVVGTkxESkNRVUV5UWl4SFFVRkhMRU5CUTNwRExGRkJRWE5ETEVWQlEzUkRMRVZCUVVVc1EwRkRSaXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkRNVUlzYzBWQlFYbENMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRMGtzUTBGQlF6dEJRVVZ3UXl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVOQlFVTXNTVUZCYVVJc1JVRkJjMElzUlVGQlJUdEpRVU40UlN4elJFRkJjMFE3U1VGRGRFUXNkVVJCUVhWRU8wbEJRM1pFTEU5QlFVOHNTMEZCU1N4aFFVRktMRWxCUVVrc2RVSkJRVW9zU1VGQlNTeERRVUZGTEZGQlFWRXNRMEZCUXl4WFFVRlhMRVZCUVVVc1RVRkJTeXhMUVVGTExFTkJRVU03UVVGRGFFUXNRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3haUVVGWkxFZEJRVWNzUTBGQlR5eFRRVUZwUWl4RlFVRkZMRVZCUVVVN1NVRkRkRVFzVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4VFFVRlRMRVZCUVVVc1EwRkJReXhsUVVGbExFTkJRVU1zVTBGQlV5eEZRVUZGTEhORVFVRmpMRU5CUVVNc1EwRkJRenRKUVVOMlJTeE5RVUZOTEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1lVRkJZU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlEzSkRMRTFCUVUwc1UwRkJVeXhIUVVGSExFZEJRVWNzUTBGQlF5eGhRVUZoTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1NVRkRia1FzU1VGQlNTeFRRVUZUTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlR0UlFVTjJReXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEhkRFFVRkRMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMHRCUXk5RE8xTkJRVTA3VVVGRFRDeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdFpRVU01UWl4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFOUJRVThzUlVGQlJTdzRRMEZCVFN4RFFVRkRMRU5CUVVNN1UwRkRia003VVVGRlJDeFBRVUZQTEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNN1MwRkRkRUk3UVVGRFNDeERRVUZETEVWQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2Wld4bGJXVnVkQzlwYldGblpTNTBjejgyWWpBM0lsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaTh2SUMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRYRzR2THlCRmVHTmhiR2xrY21GM1NXMWhaMlZGYkdWdFpXNTBJQ1lnY21Wc1lYUmxaQ0JvWld4d1pYSnpYRzR2THlBdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMVnh1WEc1cGJYQnZjblFnZXlCTlNVMUZYMVJaVUVWVExDQlRWa2RmVGxNZ2ZTQm1jbTl0SUZ3aUxpNHZZMjl1YzNSaGJuUnpYQ0k3WEc1cGJYQnZjblFnZXlCMElIMGdabkp2YlNCY0lpNHVMMmt4T0c1Y0lqdGNibWx0Y0c5eWRDQjdJRUZ3Y0VOc1lYTnpVSEp2Y0dWeWRHbGxjeXdnUkdGMFlWVlNUQ3dnUW1sdVlYSjVSbWxzWlhNZ2ZTQm1jbTl0SUZ3aUxpNHZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdJR2x6U1c1cGRHbGhiR2w2WldSSmJXRm5aVVZzWlcxbGJuUWdmU0JtY205dElGd2lMaTkwZVhCbFEyaGxZMnR6WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ3hjYmlBZ1JtbHNaVWxrTEZ4dUlDQkpibWwwYVdGc2FYcGxaRVY0WTJGc2FXUnlZWGRKYldGblpVVnNaVzFsYm5Rc1hHNTlJR1p5YjIwZ1hDSXVMM1I1Y0dWelhDSTdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnNiMkZrU0ZSTlRFbHRZV2RsUld4bGJXVnVkQ0E5SUNoa1lYUmhWVkpNT2lCRVlYUmhWVkpNS1NBOVBpQjdYRzRnSUhKbGRIVnliaUJ1WlhjZ1VISnZiV2x6WlR4SVZFMU1TVzFoWjJWRmJHVnRaVzUwUGlnb2NtVnpiMngyWlN3Z2NtVnFaV04wS1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnYVcxaFoyVWdQU0J1WlhjZ1NXMWhaMlVvS1R0Y2JpQWdJQ0JwYldGblpTNXZibXh2WVdRZ1BTQW9LU0E5UGlCN1hHNGdJQ0FnSUNCeVpYTnZiSFpsS0dsdFlXZGxLVHRjYmlBZ0lDQjlPMXh1SUNBZ0lHbHRZV2RsTG05dVpYSnliM0lnUFNBb1pYSnliM0lwSUQwK0lIdGNiaUFnSUNBZ0lISmxhbVZqZENobGNuSnZjaWs3WEc0Z0lDQWdmVHRjYmlBZ0lDQnBiV0ZuWlM1emNtTWdQU0JrWVhSaFZWSk1PMXh1SUNCOUtUdGNibjA3WEc1Y2JpOHFLaUJPVDFSRk9pQjFjR1JoZEdWeklHTmhZMmhsSUdWMlpXNGdhV1lnWVd4eVpXRmtlU0J3YjNCMWJHRjBaV1FnZDJsMGFDQm5hWFpsYmlCcGJXRm5aUzRnVkdoMWN5eGNiaUFxSUhsdmRTQnphRzkxYkdRZ1ptbHNkR1Z5SUc5MWRDQjBhR1VnYVcxaFoyVnpJSFZ3YzNSeVpXRnRJR2xtSUhsdmRTQjNZVzUwSUhSdklHOXdkR2x0YVhwbElIUm9hWE11SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnZFhCa1lYUmxTVzFoWjJWRFlXTm9aU0E5SUdGemVXNWpJQ2g3WEc0Z0lHWnBiR1ZKWkhNc1hHNGdJR1pwYkdWekxGeHVJQ0JwYldGblpVTmhZMmhsTEZ4dWZUb2dlMXh1SUNCbWFXeGxTV1J6T2lCR2FXeGxTV1JiWFR0Y2JpQWdabWxzWlhNNklFSnBibUZ5ZVVacGJHVnpPMXh1SUNCcGJXRm5aVU5oWTJobE9pQkJjSEJEYkdGemMxQnliM0JsY25ScFpYTmJYQ0pwYldGblpVTmhZMmhsWENKZE8xeHVmU2tnUFQ0Z2UxeHVJQ0JqYjI1emRDQjFjR1JoZEdWa1JtbHNaWE1nUFNCdVpYY2dUV0Z3UEVacGJHVkpaQ3dnZEhKMVpUNG9LVHRjYmlBZ1kyOXVjM1FnWlhKeWIzSmxaRVpwYkdWeklEMGdibVYzSUUxaGNEeEdhV3hsU1dRc0lIUnlkV1UrS0NrN1hHNWNiaUFnWVhkaGFYUWdVSEp2YldselpTNWhiR3dvWEc0Z0lDQWdabWxzWlVsa2N5NXlaV1IxWTJVb0tIQnliMjFwYzJWekxDQm1hV3hsU1dRcElEMCtJSHRjYmlBZ0lDQWdJR052Ym5OMElHWnBiR1ZFWVhSaElEMGdabWxzWlhOYlptbHNaVWxrSUdGeklITjBjbWx1WjEwN1hHNGdJQ0FnSUNCcFppQW9abWxzWlVSaGRHRWdKaVlnSVhWd1pHRjBaV1JHYVd4bGN5NW9ZWE1vWm1sc1pVbGtLU2tnZTF4dUlDQWdJQ0FnSUNCMWNHUmhkR1ZrUm1sc1pYTXVjMlYwS0dacGJHVkpaQ3dnZEhKMVpTazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQndjbTl0YVhObGN5NWpiMjVqWVhRb1hHNGdJQ0FnSUNBZ0lDQWdLR0Z6ZVc1aklDZ3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaG1hV3hsUkdGMFlTNXRhVzFsVkhsd1pTQTlQVDBnVFVsTlJWOVVXVkJGVXk1aWFXNWhjbmtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWENKUGJteDVJR2x0WVdkbGN5QmpZVzRnWW1VZ1lXUmtaV1FnZEc4Z1NXMWhaMlZEWVdOb1pWd2lLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHbHRZV2RsVUhKdmJXbHpaU0E5SUd4dllXUklWRTFNU1cxaFoyVkZiR1Z0Wlc1MEtHWnBiR1ZFWVhSaExtUmhkR0ZWVWt3cE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JrWVhSaElEMGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x0WVdkbE9pQnBiV0ZuWlZCeWIyMXBjMlVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYldsdFpWUjVjR1U2SUdacGJHVkVZWFJoTG0xcGJXVlVlWEJsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I5SUdGeklHTnZibk4wTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCemRHOXlaU0IwYUdVZ2NISnZiV2x6WlNCcGJXMWxaR2xoZEdWc2VTQjBieUJwYm1ScFkyRjBaU0IwYUdWeVpTZHpJR0Z1SUdsdUxYQnliMmR5WlhOelhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklHbHVhWFJwWVd4cGVtRjBhVzl1WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR2x0WVdkbFEyRmphR1V1YzJWMEtHWnBiR1ZKWkN3Z1pHRjBZU2s3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdhVzFoWjJVZ1BTQmhkMkZwZENCcGJXRm5aVkJ5YjIxcGMyVTdYRzVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdhVzFoWjJWRFlXTm9aUzV6WlhRb1ptbHNaVWxrTENCN0lDNHVMbVJoZEdFc0lHbHRZV2RsSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlNCallYUmphQ0FvWlhKeWIzSTZJR0Z1ZVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGNuSnZjbVZrUm1sc1pYTXVjMlYwS0dacGJHVkpaQ3dnZEhKMVpTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdmU2tvS1N4Y2JpQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCd2NtOXRhWE5sY3p0Y2JpQWdJQ0I5TENCYlhTQmhjeUJRY205dGFYTmxQR0Z1ZVQ1YlhTa3NYRzRnSUNrN1hHNWNiaUFnY21WMGRYSnVJSHRjYmlBZ0lDQnBiV0ZuWlVOaFkyaGxMRnh1SUNBZ0lDOHFLaUJwYm1Oc2RXUmxjeUJsY25KdmNtVmtJR1pwYkdWeklHSmxZMkYxYzJVZ2RHaGxlU0JqWVdOb1pTQjNZWE1nZFhCa1lYUmxaQ0J1YjI1bGRHaGxiR1Z6Y3lBcUwxeHVJQ0FnSUhWd1pHRjBaV1JHYVd4bGN5eGNiaUFnSUNBdktpb2dabWxzWlhNZ2RHaGhkQ0JtWVdsc1pXUWdkMmhsYmlCamNtVmhkR2x1WnlCSVZFMU1TVzFoWjJWRmJHVnRaVzUwSUNvdlhHNGdJQ0FnWlhKeWIzSmxaRVpwYkdWekxGeHVJQ0I5TzF4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHZGxkRWx1YVhScFlXeHBlbVZrU1cxaFoyVkZiR1Z0Wlc1MGN5QTlJQ2hjYmlBZ1pXeGxiV1Z1ZEhNNklISmxZV1J2Ym14NUlFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMHNYRzRwSUQwK1hHNGdJR1ZzWlcxbGJuUnpMbVpwYkhSbGNpZ29aV3hsYldWdWRDa2dQVDVjYmlBZ0lDQnBjMGx1YVhScFlXeHBlbVZrU1cxaFoyVkZiR1Z0Wlc1MEtHVnNaVzFsYm5RcExGeHVJQ0FwSUdGeklFbHVhWFJwWVd4cGVtVmtSWGhqWVd4cFpISmhkMGx0WVdkbFJXeGxiV1Z1ZEZ0ZE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2FYTklWRTFNVTFaSFJXeGxiV1Z1ZENBOUlDaHViMlJsT2lCT2IyUmxJSHdnYm5Wc2JDazZJRzV2WkdVZ2FYTWdVMVpIUld4bGJXVnVkQ0E5UGlCN1hHNGdJQzh2SUd4dmQyVnlMV05oYzJsdVp5QmtkV1VnZEc4Z1dFMU1MMGhVVFV3Z1kyOXVkbVZ1ZEdsdmJpQmthV1ptWlhKbGJtTmxjMXh1SUNBdkx5Qm9kSFJ3Y3pvdkwycHZhRzV5WlhOcFp5NWpiMjB2WW14dlp5OXViMlJsYm1GdFpTMWpZWE5sTFhObGJuTnBkR2wyYVhSNVhHNGdJSEpsZEhWeWJpQnViMlJsUHk1dWIyUmxUbUZ0WlM1MGIweHZkMlZ5UTJGelpTZ3BJRDA5UFNCY0luTjJaMXdpTzF4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHNXZjbTFoYkdsNlpWTldSeUE5SUdGemVXNWpJQ2hUVmtkVGRISnBibWM2SUhOMGNtbHVaeWtnUFQ0Z2UxeHVJQ0JqYjI1emRDQmtiMk1nUFNCdVpYY2dSRTlOVUdGeWMyVnlLQ2t1Y0dGeWMyVkdjbTl0VTNSeWFXNW5LRk5XUjFOMGNtbHVaeXdnVFVsTlJWOVVXVkJGVXk1emRtY3BPMXh1SUNCamIyNXpkQ0J6ZG1jZ1BTQmtiMk11Y1hWbGNubFRaV3hsWTNSdmNpaGNJbk4yWjF3aUtUdGNiaUFnWTI5dWMzUWdaWEp5YjNKT2IyUmxJRDBnWkc5akxuRjFaWEo1VTJWc1pXTjBiM0lvWENKd1lYSnpaWEpsY25KdmNsd2lLVHRjYmlBZ2FXWWdLR1Z5Y205eVRtOWtaU0I4ZkNBaGFYTklWRTFNVTFaSFJXeGxiV1Z1ZENoemRtY3BLU0I3WEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtIUW9YQ0psY25KdmNuTXVhVzUyWVd4cFpGTldSMU4wY21sdVoxd2lLU2s3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnYVdZZ0tDRnpkbWN1YUdGelFYUjBjbWxpZFhSbEtGd2llRzFzYm5OY0lpa3BJSHRjYmlBZ0lDQWdJSE4yWnk1elpYUkJkSFJ5YVdKMWRHVW9YQ0o0Yld4dWMxd2lMQ0JUVmtkZlRsTXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCemRtY3ViM1YwWlhKSVZFMU1PMXh1SUNCOVhHNTlPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9lbGVtZW50L2ltYWdlLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9lbGVtZW50L2luZGV4LnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vZWxlbWVudC9pbmRleC50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJuZXdFbGVtZW50XFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX25ld0VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5uZXdFbGVtZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJuZXdUZXh0RWxlbWVudFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9uZXdFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ubmV3VGV4dEVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInVwZGF0ZVRleHRFbGVtZW50XFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX25ld0VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy51cGRhdGVUZXh0RWxlbWVudCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibmV3TGluZWFyRWxlbWVudFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9uZXdFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ubmV3TGluZWFyRWxlbWVudCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibmV3SW1hZ2VFbGVtZW50XFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX25ld0VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5uZXdJbWFnZUVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImR1cGxpY2F0ZUVsZW1lbnRcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfbmV3RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmR1cGxpY2F0ZUVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEVsZW1lbnRBYnNvbHV0ZUNvb3Jkc1xcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5nZXRFbGVtZW50QWJzb2x1dGVDb29yZHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEVsZW1lbnRCb3VuZHNcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZ2V0RWxlbWVudEJvdW5kcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0Q29tbW9uQm91bmRzXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2JvdW5kc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmdldENvbW1vbkJvdW5kcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0RGlhbW9uZFBvaW50c1xcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5nZXREaWFtb25kUG9pbnRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRBcnJvd2hlYWRQb2ludHNcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZ2V0QXJyb3doZWFkUG9pbnRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRDbG9zZXN0RWxlbWVudEJvdW5kc1xcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5nZXRDbG9zZXN0RWxlbWVudEJvdW5kcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiT01JVF9TSURFU19GT1JfTVVMVElQTEVfRUxFTUVOVFNcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfdHJhbnNmb3JtSGFuZGxlc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLk9NSVRfU0lERVNfRk9SX01VTFRJUExFX0VMRU1FTlRTKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRUcmFuc2Zvcm1IYW5kbGVzRnJvbUNvb3Jkc1xcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF90cmFuc2Zvcm1IYW5kbGVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uZ2V0VHJhbnNmb3JtSGFuZGxlc0Zyb21Db29yZHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldFRyYW5zZm9ybUhhbmRsZXNcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfdHJhbnNmb3JtSGFuZGxlc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmdldFRyYW5zZm9ybUhhbmRsZXMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImhpdFRlc3RcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfY29sbGlzaW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uaGl0VGVzdCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNIaXR0aW5nRWxlbWVudEJvdW5kaW5nQm94V2l0aG91dEhpdHRpbmdFbGVtZW50XFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2NvbGxpc2lvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmlzSGl0dGluZ0VsZW1lbnRCb3VuZGluZ0JveFdpdGhvdXRIaXR0aW5nRWxlbWVudCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicmVzaXplVGVzdFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9yZXNpemVUZXN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18ucmVzaXplVGVzdCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0Q3Vyc29yRm9yUmVzaXppbmdFbGVtZW50XFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX3Jlc2l6ZVRlc3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5nZXRDdXJzb3JGb3JSZXNpemluZ0VsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEVsZW1lbnRXaXRoVHJhbnNmb3JtSGFuZGxlVHlwZVxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9yZXNpemVUZXN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uZ2V0RWxlbWVudFdpdGhUcmFuc2Zvcm1IYW5kbGVUeXBlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRUcmFuc2Zvcm1IYW5kbGVUeXBlRnJvbUNvb3Jkc1xcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9yZXNpemVUZXN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uZ2V0VHJhbnNmb3JtSGFuZGxlVHlwZUZyb21Db29yZHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInRyYW5zZm9ybUVsZW1lbnRzXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX3Jlc2l6ZUVsZW1lbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18udHJhbnNmb3JtRWxlbWVudHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldFJlc2l6ZU9mZnNldFhZXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX3Jlc2l6ZUVsZW1lbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uZ2V0UmVzaXplT2Zmc2V0WFkpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldFJlc2l6ZUFycm93RGlyZWN0aW9uXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX3Jlc2l6ZUVsZW1lbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uZ2V0UmVzaXplQXJyb3dEaXJlY3Rpb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRyYWdTZWxlY3RlZEVsZW1lbnRzXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2RyYWdFbGVtZW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmRyYWdTZWxlY3RlZEVsZW1lbnRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXREcmFnT2Zmc2V0WFlcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfZHJhZ0VsZW1lbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uZ2V0RHJhZ09mZnNldFhZKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkcmFnTmV3RWxlbWVudFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9kcmFnRWxlbWVudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5kcmFnTmV3RWxlbWVudCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNUZXh0RWxlbWVudFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaXNUZXh0RWxlbWVudCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNFeGNhbGlkcmF3RWxlbWVudFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaXNFeGNhbGlkcmF3RWxlbWVudCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwidGV4dFd5c2l3eWdcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfdGV4dFd5c2l3eWdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy50ZXh0V3lzaXd5ZyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicmVkcmF3VGV4dEJvdW5kaW5nQm94XFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnJlZHJhd1RleHRCb3VuZGluZ0JveCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0UGVyZmVjdEVsZW1lbnRTaXplXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX3NpemVIZWxwZXJzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2V0UGVyZmVjdEVsZW1lbnRTaXplKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpc0ludmlzaWJseVNtYWxsRWxlbWVudFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9zaXplSGVscGVyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmlzSW52aXNpYmx5U21hbGxFbGVtZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJyZXNpemVQZXJmZWN0TGluZUZvck5XSGFuZGxlclxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9zaXplSGVscGVyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJlc2l6ZVBlcmZlY3RMaW5lRm9yTldIYW5kbGVyKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXROb3JtYWxpemVkRGltZW5zaW9uc1xcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9zaXplSGVscGVyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmdldE5vcm1hbGl6ZWREaW1lbnNpb25zKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJzaG93U2VsZWN0ZWRTaGFwZUFjdGlvbnNcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfc2hvd1NlbGVjdGVkU2hhcGVBY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLnNob3dTZWxlY3RlZFNoYXBlQWN0aW9ucyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0U2NlbmVWZXJzaW9uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0U2NlbmVWZXJzaW9uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRWaXNpYmxlRWxlbWVudHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRWaXNpYmxlRWxlbWVudHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldE5vbkRlbGV0ZWRFbGVtZW50c1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldE5vbkRlbGV0ZWRFbGVtZW50cyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNOb25EZWxldGVkRWxlbWVudFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlzTm9uRGVsZXRlZEVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImNsZWFyRWxlbWVudHNGb3JEYXRhYmFzZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGNsZWFyRWxlbWVudHNGb3JEYXRhYmFzZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiY2xlYXJFbGVtZW50c0ZvckV4cG9ydFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGNsZWFyRWxlbWVudHNGb3JFeHBvcnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImNsZWFyRWxlbWVudHNGb3JMb2NhbFN0b3JhZ2VcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBjbGVhckVsZW1lbnRzRm9yTG9jYWxTdG9yYWdlKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2l6ZUhlbHBlcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vc2l6ZUhlbHBlcnMgKi8gXFxcIi4uLy4uL2VsZW1lbnQvc2l6ZUhlbHBlcnMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vdHlwZUNoZWNrcyAqLyBcXFwiLi4vLi4vZWxlbWVudC90eXBlQ2hlY2tzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9uZXdFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL25ld0VsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvbmV3RWxlbWVudC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2JvdW5kcyAqLyBcXFwiLi4vLi4vZWxlbWVudC9ib3VuZHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3RyYW5zZm9ybUhhbmRsZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vdHJhbnNmb3JtSGFuZGxlcyAqLyBcXFwiLi4vLi4vZWxlbWVudC90cmFuc2Zvcm1IYW5kbGVzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb2xsaXNpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vY29sbGlzaW9uICovIFxcXCIuLi8uLi9lbGVtZW50L2NvbGxpc2lvbi50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmVzaXplVGVzdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9yZXNpemVUZXN0ICovIFxcXCIuLi8uLi9lbGVtZW50L3Jlc2l6ZVRlc3QudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Jlc2l6ZUVsZW1lbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3Jlc2l6ZUVsZW1lbnRzICovIFxcXCIuLi8uLi9lbGVtZW50L3Jlc2l6ZUVsZW1lbnRzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9kcmFnRWxlbWVudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vZHJhZ0VsZW1lbnRzICovIFxcXCIuLi8uLi9lbGVtZW50L2RyYWdFbGVtZW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdGV4dFd5c2l3eWdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vdGV4dFd5c2l3eWcgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdGV4dFd5c2l3eWcudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90ZXh0RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vdGV4dEVsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdGV4dEVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Nob3dTZWxlY3RlZFNoYXBlQWN0aW9uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vc2hvd1NlbGVjdGVkU2hhcGVBY3Rpb25zICovIFxcXCIuLi8uLi9lbGVtZW50L3Nob3dTZWxlY3RlZFNoYXBlQWN0aW9ucy50c1xcXCIpO1xcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcbmNvbnN0IGdldFNjZW5lVmVyc2lvbiA9IChlbGVtZW50cykgPT4gZWxlbWVudHMucmVkdWNlKChhY2MsIGVsKSA9PiBhY2MgKyBlbC52ZXJzaW9uLCAwKTtcXG5jb25zdCBnZXRWaXNpYmxlRWxlbWVudHMgPSAoZWxlbWVudHMpID0+IGVsZW1lbnRzLmZpbHRlcigoZWwpID0+ICFlbC5pc0RlbGV0ZWQgJiYgISgwLF9zaXplSGVscGVyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmlzSW52aXNpYmx5U21hbGxFbGVtZW50KShlbCkpO1xcbmNvbnN0IGdldE5vbkRlbGV0ZWRFbGVtZW50cyA9IChlbGVtZW50cykgPT4gZWxlbWVudHMuZmlsdGVyKChlbGVtZW50KSA9PiAhZWxlbWVudC5pc0RlbGV0ZWQpO1xcbmNvbnN0IGlzTm9uRGVsZXRlZEVsZW1lbnQgPSAoZWxlbWVudCkgPT4gIWVsZW1lbnQuaXNEZWxldGVkO1xcbmNvbnN0IF9jbGVhckVsZW1lbnRzID0gKGVsZW1lbnRzKSA9PiBnZXROb25EZWxldGVkRWxlbWVudHMoZWxlbWVudHMpLm1hcCgoZWxlbWVudCkgPT4gKDAsX3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5pc0xpbmVhckVsZW1lbnRUeXBlKShlbGVtZW50LnR5cGUpXFxuICAgID8gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBlbGVtZW50KSwgeyBsYXN0Q29tbWl0dGVkUG9pbnQ6IG51bGwgfSkgOiBlbGVtZW50KTtcXG5jb25zdCBjbGVhckVsZW1lbnRzRm9yRGF0YWJhc2UgPSAoZWxlbWVudHMpID0+IF9jbGVhckVsZW1lbnRzKGVsZW1lbnRzKTtcXG5jb25zdCBjbGVhckVsZW1lbnRzRm9yRXhwb3J0ID0gKGVsZW1lbnRzKSA9PiBfY2xlYXJFbGVtZW50cyhlbGVtZW50cyk7XFxuY29uc3QgY2xlYXJFbGVtZW50c0ZvckxvY2FsU3RvcmFnZSA9IChlbGVtZW50cykgPT4gX2NsZWFyRWxlbWVudHMoZWxlbWVudHMpO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2Wld4bGJXVnVkQzlwYm1SbGVDNTBjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3TzBGQlMzZEVPMEZCUTB3N1FVRlROMEk3UVVGUlNqdEJRVTFWTzBGQlNWQTdRVUZOUXp0QlFVdEpPMEZCUzBZN1FVRkRNRU03UVVGRGRFSTdRVUZEVlR0QlFVMHZRanRCUVVNclF6dEJRVVV2UkN4TlFVRk5MR1ZCUVdVc1IwRkJSeXhEUVVGRExGRkJRWE5ETEVWQlFVVXNSVUZCUlN4RFFVTjRSU3hSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVWQlFVVXNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRk4wTXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eERRVUZETEZGQlFYTkRMRVZCUVVVc1JVRkJSU3hEUVVNelJTeFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVTmlMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4VFFVRlRMRWxCUVVrc1EwRkJReXh4UlVGQmRVSXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkRXaXhEUVVGRE8wRkJSWFpETEUxQlFVMHNjVUpCUVhGQ0xFZEJRVWNzUTBGQlF5eFJRVUZ6UXl4RlFVRkZMRVZCUVVVc1EwRkRPVVVzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZEWWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVTlZMRU5CUVVNN1FVRkZka01zVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXhEUVVOcVF5eFBRVUZWTEVWQlEyZENMRVZCUVVVc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTTdRVUZGYkVRc1RVRkJUU3hqUVVGakxFZEJRVWNzUTBGRGNrSXNVVUZCYzBNc1JVRkRha0lzUlVGQlJTeERRVU4yUWl4eFFrRkJjVUlzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeERRVU01UXl4blJVRkJiVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRPMGxCUXk5Q0xFTkJRVU1zYVVOQlFVMHNUMEZCVHl4TFFVRkZMR3RDUVVGclFpeEZRVUZGTEVsQlFVa3NTVUZEZUVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGRFdpeERRVUZETzBGQlJVY3NUVUZCVFN4M1FrRkJkMElzUjBGQlJ5eERRVU4wUXl4UlFVRnpReXhGUVVOMFF5eEZRVUZGTEVOQlFVTXNZMEZCWXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJSWFpDTEUxQlFVMHNjMEpCUVhOQ0xFZEJRVWNzUTBGRGNFTXNVVUZCYzBNc1JVRkRkRU1zUlVGQlJTeERRVUZETEdOQlFXTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVWMlFpeE5RVUZOTERSQ1FVRTBRaXhIUVVGSExFTkJRekZETEZGQlFYTkRMRVZCUTNSRExFVkJRVVVzUTBGQlF5eGpRVUZqTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZaV3hsYldWdWRDOXBibVJsZUM1MGN6OHhNakU0SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN1hHNGdJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBMRnh1SUNCT2IyNUVaV3hsZEdWa1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5Rc1hHNGdJRTV2YmtSbGJHVjBaV1FzWEc1OUlHWnliMjBnWENJdUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5QnBjMGx1ZG1semFXSnNlVk50WVd4c1JXeGxiV1Z1ZENCOUlHWnliMjBnWENJdUwzTnBlbVZJWld4d1pYSnpYQ0k3WEc1cGJYQnZjblFnZXlCcGMweHBibVZoY2tWc1pXMWxiblJVZVhCbElIMGdabkp2YlNCY0lpNHZkSGx3WlVOb1pXTnJjMXdpTzF4dVhHNWxlSEJ2Y25RZ2UxeHVJQ0J1WlhkRmJHVnRaVzUwTEZ4dUlDQnVaWGRVWlhoMFJXeGxiV1Z1ZEN4Y2JpQWdkWEJrWVhSbFZHVjRkRVZzWlcxbGJuUXNYRzRnSUc1bGQweHBibVZoY2tWc1pXMWxiblFzWEc0Z0lHNWxkMGx0WVdkbFJXeGxiV1Z1ZEN4Y2JpQWdaSFZ3YkdsallYUmxSV3hsYldWdWRDeGNibjBnWm5KdmJTQmNJaTR2Ym1WM1JXeGxiV1Z1ZEZ3aU8xeHVaWGh3YjNKMElIdGNiaUFnWjJWMFJXeGxiV1Z1ZEVGaWMyOXNkWFJsUTI5dmNtUnpMRnh1SUNCblpYUkZiR1Z0Wlc1MFFtOTFibVJ6TEZ4dUlDQm5aWFJEYjIxdGIyNUNiM1Z1WkhNc1hHNGdJR2RsZEVScFlXMXZibVJRYjJsdWRITXNYRzRnSUdkbGRFRnljbTkzYUdWaFpGQnZhVzUwY3l4Y2JpQWdaMlYwUTJ4dmMyVnpkRVZzWlcxbGJuUkNiM1Z1WkhNc1hHNTlJR1p5YjIwZ1hDSXVMMkp2ZFc1a2Mxd2lPMXh1WEc1bGVIQnZjblFnZTF4dUlDQlBUVWxVWDFOSlJFVlRYMFpQVWw5TlZVeFVTVkJNUlY5RlRFVk5SVTVVVXl4Y2JpQWdaMlYwVkhKaGJuTm1iM0p0U0dGdVpHeGxjMFp5YjIxRGIyOXlaSE1zWEc0Z0lHZGxkRlJ5WVc1elptOXliVWhoYm1Sc1pYTXNYRzU5SUdaeWIyMGdYQ0l1TDNSeVlXNXpabTl5YlVoaGJtUnNaWE5jSWp0Y2JtVjRjRzl5ZENCN1hHNGdJR2hwZEZSbGMzUXNYRzRnSUdselNHbDBkR2x1WjBWc1pXMWxiblJDYjNWdVpHbHVaMEp2ZUZkcGRHaHZkWFJJYVhSMGFXNW5SV3hsYldWdWRDeGNibjBnWm5KdmJTQmNJaTR2WTI5c2JHbHphVzl1WENJN1hHNWxlSEJ2Y25RZ2UxeHVJQ0J5WlhOcGVtVlVaWE4wTEZ4dUlDQm5aWFJEZFhKemIzSkdiM0pTWlhOcGVtbHVaMFZzWlcxbGJuUXNYRzRnSUdkbGRFVnNaVzFsYm5SWGFYUm9WSEpoYm5ObWIzSnRTR0Z1Wkd4bFZIbHdaU3hjYmlBZ1oyVjBWSEpoYm5ObWIzSnRTR0Z1Wkd4bFZIbHdaVVp5YjIxRGIyOXlaSE1zWEc1OUlHWnliMjBnWENJdUwzSmxjMmw2WlZSbGMzUmNJanRjYm1WNGNHOXlkQ0I3WEc0Z0lIUnlZVzV6Wm05eWJVVnNaVzFsYm5SekxGeHVJQ0JuWlhSU1pYTnBlbVZQWm1aelpYUllXU3hjYmlBZ1oyVjBVbVZ6YVhwbFFYSnliM2RFYVhKbFkzUnBiMjRzWEc1OUlHWnliMjBnWENJdUwzSmxjMmw2WlVWc1pXMWxiblJ6WENJN1hHNWxlSEJ2Y25RZ2UxeHVJQ0JrY21GblUyVnNaV04wWldSRmJHVnRaVzUwY3l4Y2JpQWdaMlYwUkhKaFowOW1abk5sZEZoWkxGeHVJQ0JrY21GblRtVjNSV3hsYldWdWRDeGNibjBnWm5KdmJTQmNJaTR2WkhKaFowVnNaVzFsYm5SelhDSTdYRzVsZUhCdmNuUWdleUJwYzFSbGVIUkZiR1Z0Wlc1MExDQnBjMFY0WTJGc2FXUnlZWGRGYkdWdFpXNTBJSDBnWm5KdmJTQmNJaTR2ZEhsd1pVTm9aV05yYzF3aU8xeHVaWGh3YjNKMElIc2dkR1Y0ZEZkNWMybDNlV2NnZlNCbWNtOXRJRndpTGk5MFpYaDBWM2x6YVhkNVoxd2lPMXh1Wlhod2IzSjBJSHNnY21Wa2NtRjNWR1Y0ZEVKdmRXNWthVzVuUW05NElIMGdabkp2YlNCY0lpNHZkR1Y0ZEVWc1pXMWxiblJjSWp0Y2JtVjRjRzl5ZENCN1hHNGdJR2RsZEZCbGNtWmxZM1JGYkdWdFpXNTBVMmw2WlN4Y2JpQWdhWE5KYm5acGMybGliSGxUYldGc2JFVnNaVzFsYm5Rc1hHNGdJSEpsYzJsNlpWQmxjbVpsWTNSTWFXNWxSbTl5VGxkSVlXNWtiR1Z5TEZ4dUlDQm5aWFJPYjNKdFlXeHBlbVZrUkdsdFpXNXphVzl1Y3l4Y2JuMGdabkp2YlNCY0lpNHZjMmw2WlVobGJIQmxjbk5jSWp0Y2JtVjRjRzl5ZENCN0lITm9iM2RUWld4bFkzUmxaRk5vWVhCbFFXTjBhVzl1Y3lCOUlHWnliMjBnWENJdUwzTm9iM2RUWld4bFkzUmxaRk5vWVhCbFFXTjBhVzl1YzF3aU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1oyVjBVMk5sYm1WV1pYSnphVzl1SUQwZ0tHVnNaVzFsYm5Sek9pQnlaV0ZrYjI1c2VTQkZlR05oYkdsa2NtRjNSV3hsYldWdWRGdGRLU0E5UGx4dUlDQmxiR1Z0Wlc1MGN5NXlaV1IxWTJVb0tHRmpZeXdnWld3cElEMCtJR0ZqWXlBcklHVnNMblpsY25OcGIyNHNJREFwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWjJWMFZtbHphV0pzWlVWc1pXMWxiblJ6SUQwZ0tHVnNaVzFsYm5Sek9pQnlaV0ZrYjI1c2VTQkZlR05oYkdsa2NtRjNSV3hsYldWdWRGdGRLU0E5UGx4dUlDQmxiR1Z0Wlc1MGN5NW1hV3gwWlhJb1hHNGdJQ0FnS0dWc0tTQTlQaUFoWld3dWFYTkVaV3hsZEdWa0lDWW1JQ0ZwYzBsdWRtbHphV0pzZVZOdFlXeHNSV3hsYldWdWRDaGxiQ2tzWEc0Z0lDa2dZWE1nY21WaFpHOXViSGtnVG05dVJHVnNaWFJsWkVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzEwN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCblpYUk9iMjVFWld4bGRHVmtSV3hsYldWdWRITWdQU0FvWld4bGJXVnVkSE02SUhKbFlXUnZibXg1SUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzEwcElEMCtYRzRnSUdWc1pXMWxiblJ6TG1acGJIUmxjaWhjYmlBZ0lDQW9aV3hsYldWdWRDa2dQVDRnSVdWc1pXMWxiblF1YVhORVpXeGxkR1ZrTEZ4dUlDQXBJR0Z6SUhKbFlXUnZibXg1SUU1dmJrUmxiR1YwWldSRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2FYTk9iMjVFWld4bGRHVmtSV3hsYldWdWRDQTlJRHhVSUdWNGRHVnVaSE1nUlhoallXeHBaSEpoZDBWc1pXMWxiblErS0Z4dUlDQmxiR1Z0Wlc1ME9pQlVMRnh1S1RvZ1pXeGxiV1Z1ZENCcGN5Qk9iMjVFWld4bGRHVmtQRlErSUQwK0lDRmxiR1Z0Wlc1MExtbHpSR1ZzWlhSbFpEdGNibHh1WTI5dWMzUWdYMk5zWldGeVJXeGxiV1Z1ZEhNZ1BTQW9YRzRnSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZExGeHVLVG9nUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFNBOVBseHVJQ0JuWlhST2IyNUVaV3hsZEdWa1JXeGxiV1Z1ZEhNb1pXeGxiV1Z1ZEhNcExtMWhjQ2dvWld4bGJXVnVkQ2tnUFQ1Y2JpQWdJQ0JwYzB4cGJtVmhja1ZzWlcxbGJuUlVlWEJsS0dWc1pXMWxiblF1ZEhsd1pTbGNiaUFnSUNBZ0lEOGdleUF1TGk1bGJHVnRaVzUwTENCc1lYTjBRMjl0YldsMGRHVmtVRzlwYm5RNklHNTFiR3dnZlZ4dUlDQWdJQ0FnT2lCbGJHVnRaVzUwTEZ4dUlDQXBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdZMnhsWVhKRmJHVnRaVzUwYzBadmNrUmhkR0ZpWVhObElEMGdLRnh1SUNCbGJHVnRaVzUwY3pvZ2NtVmhaRzl1YkhrZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTeGNiaWtnUFQ0Z1gyTnNaV0Z5Uld4bGJXVnVkSE1vWld4bGJXVnVkSE1wTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWTJ4bFlYSkZiR1Z0Wlc1MGMwWnZja1Y0Y0c5eWRDQTlJQ2hjYmlBZ1pXeGxiV1Z1ZEhNNklISmxZV1J2Ym14NUlFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMHNYRzRwSUQwK0lGOWpiR1ZoY2tWc1pXMWxiblJ6S0dWc1pXMWxiblJ6S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdOc1pXRnlSV3hsYldWdWRITkdiM0pNYjJOaGJGTjBiM0poWjJVZ1BTQW9YRzRnSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZExGeHVLU0E5UGlCZlkyeGxZWEpGYkdWdFpXNTBjeWhsYkdWdFpXNTBjeWs3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZWxlbWVudC9pbmRleC50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vZWxlbWVudC9saW5lYXJFbGVtZW50RWRpdG9yLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9lbGVtZW50L2xpbmVhckVsZW1lbnRFZGl0b3IudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJMaW5lYXJFbGVtZW50RWRpdG9yXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gTGluZWFyRWxlbWVudEVkaXRvcilcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL21hdGggKi8gXFxcIi4uLy4uL21hdGgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLiAqLyBcXFwiLi4vLi4vZWxlbWVudC9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2JvdW5kcyAqLyBcXFwiLi4vLi4vZWxlbWVudC9ib3VuZHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vbXV0YXRlRWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9tdXRhdGVFbGVtZW50LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2VuZV9TY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vc2NlbmUvU2NlbmUgKi8gXFxcIi4uLy4uL3NjZW5lL1NjZW5lLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2JpbmRpbmcgKi8gXFxcIi4uLy4uL2VsZW1lbnQvYmluZGluZy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi90eXBlQ2hlY2tzICovIFxcXCIuLi8uLi9lbGVtZW50L3R5cGVDaGVja3MudHNcXFwiKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jbGFzcyBMaW5lYXJFbGVtZW50RWRpdG9yIHtcXG4gICAgY29uc3RydWN0b3IoZWxlbWVudCwgc2NlbmUpIHtcXG4gICAgICAgIHRoaXMuZWxlbWVudElkID0gZWxlbWVudC5pZDtcXG4gICAgICAgIF9zY2VuZV9TY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fW1xcXCJkZWZhdWx0XFxcIl0ubWFwRWxlbWVudFRvU2NlbmUodGhpcy5lbGVtZW50SWQsIHNjZW5lKTtcXG4gICAgICAgIExpbmVhckVsZW1lbnRFZGl0b3Iubm9ybWFsaXplUG9pbnRzKGVsZW1lbnQpO1xcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBvaW50c0luZGljZXMgPSBudWxsO1xcbiAgICAgICAgdGhpcy5sYXN0VW5jb21taXR0ZWRQb2ludCA9IG51bGw7XFxuICAgICAgICB0aGlzLmlzRHJhZ2dpbmcgPSBmYWxzZTtcXG4gICAgICAgIHRoaXMucG9pbnRlck9mZnNldCA9IHsgeDogMCwgeTogMCB9O1xcbiAgICAgICAgdGhpcy5zdGFydEJpbmRpbmdFbGVtZW50ID0gXFxcImtlZXBcXFwiO1xcbiAgICAgICAgdGhpcy5lbmRCaW5kaW5nRWxlbWVudCA9IFxcXCJrZWVwXFxcIjtcXG4gICAgICAgIHRoaXMucG9pbnRlckRvd25TdGF0ZSA9IHtcXG4gICAgICAgICAgICBwcmV2U2VsZWN0ZWRQb2ludHNJbmRpY2VzOiBudWxsLFxcbiAgICAgICAgICAgIGxhc3RDbGlja2VkUG9pbnQ6IC0xLFxcbiAgICAgICAgfTtcXG4gICAgfVxcbiAgICAvKipcXG4gICAgICogQHBhcmFtIGlkIHRoZSBgZWxlbWVudElkYCBmcm9tIHRoZSBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIChzbyB0aGF0IHdlIGNhblxcbiAgICAgKiAgc3RhdGljYWxseSBndWFyYW50ZWUgdGhpcyBtZXRob2QgcmV0dXJucyBhbiBFeGNhbGlkcmF3TGluZWFyRWxlbWVudClcXG4gICAgICovXFxuICAgIHN0YXRpYyBnZXRFbGVtZW50KGlkKSB7XFxuICAgICAgICB2YXIgX2E7XFxuICAgICAgICBjb25zdCBlbGVtZW50ID0gKF9hID0gX3NjZW5lX1NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bXFxcImRlZmF1bHRcXFwiXS5nZXRTY2VuZShpZCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXROb25EZWxldGVkRWxlbWVudChpZCk7XFxuICAgICAgICBpZiAoZWxlbWVudCkge1xcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50O1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIG51bGw7XFxuICAgIH1cXG4gICAgc3RhdGljIGhhbmRsZUJveFNlbGVjdGlvbihldmVudCwgYXBwU3RhdGUsIHNldFN0YXRlKSB7XFxuICAgICAgICB2YXIgX2E7XFxuICAgICAgICBpZiAoIWFwcFN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50IHx8XFxuICAgICAgICAgICAgKChfYSA9IGFwcFN0YXRlLmRyYWdnaW5nRWxlbWVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnR5cGUpICE9PSBcXFwic2VsZWN0aW9uXFxcIikge1xcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IHsgZWRpdGluZ0xpbmVhckVsZW1lbnQgfSA9IGFwcFN0YXRlO1xcbiAgICAgICAgY29uc3QgeyBzZWxlY3RlZFBvaW50c0luZGljZXMsIGVsZW1lbnRJZCB9ID0gZWRpdGluZ0xpbmVhckVsZW1lbnQ7XFxuICAgICAgICBjb25zdCBlbGVtZW50ID0gTGluZWFyRWxlbWVudEVkaXRvci5nZXRFbGVtZW50KGVsZW1lbnRJZCk7XFxuICAgICAgICBpZiAoIWVsZW1lbnQpIHtcXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBbc2VsZWN0aW9uWDEsIHNlbGVjdGlvblkxLCBzZWxlY3Rpb25YMiwgc2VsZWN0aW9uWTJdID0gKDAsX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmdldEVsZW1lbnRBYnNvbHV0ZUNvb3JkcykoYXBwU3RhdGUuZHJhZ2dpbmdFbGVtZW50KTtcXG4gICAgICAgIGNvbnN0IHBvaW50c1NjZW5lQ29vcmRzID0gTGluZWFyRWxlbWVudEVkaXRvci5nZXRQb2ludHNHbG9iYWxDb29yZGluYXRlcyhlbGVtZW50KTtcXG4gICAgICAgIGNvbnN0IG5leHRTZWxlY3RlZFBvaW50cyA9IHBvaW50c1NjZW5lQ29vcmRzLnJlZHVjZSgoYWNjLCBwb2ludCwgaW5kZXgpID0+IHtcXG4gICAgICAgICAgICBpZiAoKHBvaW50WzBdID49IHNlbGVjdGlvblgxICYmXFxuICAgICAgICAgICAgICAgIHBvaW50WzBdIDw9IHNlbGVjdGlvblgyICYmXFxuICAgICAgICAgICAgICAgIHBvaW50WzFdID49IHNlbGVjdGlvblkxICYmXFxuICAgICAgICAgICAgICAgIHBvaW50WzFdIDw9IHNlbGVjdGlvblkyKSB8fFxcbiAgICAgICAgICAgICAgICAoZXZlbnQuc2hpZnRLZXkgJiYgKHNlbGVjdGVkUG9pbnRzSW5kaWNlcyA9PT0gbnVsbCB8fCBzZWxlY3RlZFBvaW50c0luZGljZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlbGVjdGVkUG9pbnRzSW5kaWNlcy5pbmNsdWRlcyhpbmRleCkpKSkge1xcbiAgICAgICAgICAgICAgICBhY2MucHVzaChpbmRleCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiBhY2M7XFxuICAgICAgICB9LCBbXSk7XFxuICAgICAgICBzZXRTdGF0ZSh7XFxuICAgICAgICAgICAgZWRpdGluZ0xpbmVhckVsZW1lbnQ6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZWRpdGluZ0xpbmVhckVsZW1lbnQpLCB7IHNlbGVjdGVkUG9pbnRzSW5kaWNlczogbmV4dFNlbGVjdGVkUG9pbnRzLmxlbmd0aFxcbiAgICAgICAgICAgICAgICAgICAgPyBuZXh0U2VsZWN0ZWRQb2ludHNcXG4gICAgICAgICAgICAgICAgICAgIDogbnVsbCB9KSxcXG4gICAgICAgIH0pO1xcbiAgICB9XFxuICAgIC8qKiBAcmV0dXJucyB3aGV0aGVyIHBvaW50IHdhcyBkcmFnZ2VkICovXFxuICAgIHN0YXRpYyBoYW5kbGVQb2ludERyYWdnaW5nKGFwcFN0YXRlLCBzZXRTdGF0ZSwgc2NlbmVQb2ludGVyWCwgc2NlbmVQb2ludGVyWSwgbWF5YmVTdWdnZXN0QmluZGluZykge1xcbiAgICAgICAgaWYgKCFhcHBTdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudCkge1xcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IHsgZWRpdGluZ0xpbmVhckVsZW1lbnQgfSA9IGFwcFN0YXRlO1xcbiAgICAgICAgY29uc3QgeyBzZWxlY3RlZFBvaW50c0luZGljZXMsIGVsZW1lbnRJZCwgaXNEcmFnZ2luZyB9ID0gZWRpdGluZ0xpbmVhckVsZW1lbnQ7XFxuICAgICAgICBjb25zdCBlbGVtZW50ID0gTGluZWFyRWxlbWVudEVkaXRvci5nZXRFbGVtZW50KGVsZW1lbnRJZCk7XFxuICAgICAgICBpZiAoIWVsZW1lbnQpIHtcXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgICAgICB9XFxuICAgICAgICAvLyBwb2ludCB0aGF0J3MgYmVpbmcgZHJhZ2dlZCAob3V0IG9mIGFsbCBzZWxlY3RlZCBwb2ludHMpXFxuICAgICAgICBjb25zdCBkcmFnZ2luZ1BvaW50ID0gZWxlbWVudC5wb2ludHNbZWRpdGluZ0xpbmVhckVsZW1lbnQucG9pbnRlckRvd25TdGF0ZS5sYXN0Q2xpY2tlZFBvaW50XTtcXG4gICAgICAgIGlmIChzZWxlY3RlZFBvaW50c0luZGljZXMgJiYgZHJhZ2dpbmdQb2ludCkge1xcbiAgICAgICAgICAgIGlmIChpc0RyYWdnaW5nID09PSBmYWxzZSkge1xcbiAgICAgICAgICAgICAgICBzZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgICAgICBlZGl0aW5nTGluZWFyRWxlbWVudDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBlZGl0aW5nTGluZWFyRWxlbWVudCksIHsgaXNEcmFnZ2luZzogdHJ1ZSB9KSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnN0IG5ld0RyYWdnaW5nUG9pbnRQb3NpdGlvbiA9IExpbmVhckVsZW1lbnRFZGl0b3IuY3JlYXRlUG9pbnRBdChlbGVtZW50LCBzY2VuZVBvaW50ZXJYIC0gZWRpdGluZ0xpbmVhckVsZW1lbnQucG9pbnRlck9mZnNldC54LCBzY2VuZVBvaW50ZXJZIC0gZWRpdGluZ0xpbmVhckVsZW1lbnQucG9pbnRlck9mZnNldC55LCBhcHBTdGF0ZS5ncmlkU2l6ZSk7XFxuICAgICAgICAgICAgY29uc3QgZGVsdGFYID0gbmV3RHJhZ2dpbmdQb2ludFBvc2l0aW9uWzBdIC0gZHJhZ2dpbmdQb2ludFswXTtcXG4gICAgICAgICAgICBjb25zdCBkZWx0YVkgPSBuZXdEcmFnZ2luZ1BvaW50UG9zaXRpb25bMV0gLSBkcmFnZ2luZ1BvaW50WzFdO1xcbiAgICAgICAgICAgIExpbmVhckVsZW1lbnRFZGl0b3IubW92ZVBvaW50cyhlbGVtZW50LCBzZWxlY3RlZFBvaW50c0luZGljZXMubWFwKChwb2ludEluZGV4KSA9PiB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1BvaW50UG9zaXRpb24gPSBwb2ludEluZGV4ID09PVxcbiAgICAgICAgICAgICAgICAgICAgZWRpdGluZ0xpbmVhckVsZW1lbnQucG9pbnRlckRvd25TdGF0ZS5sYXN0Q2xpY2tlZFBvaW50XFxuICAgICAgICAgICAgICAgICAgICA/IExpbmVhckVsZW1lbnRFZGl0b3IuY3JlYXRlUG9pbnRBdChlbGVtZW50LCBzY2VuZVBvaW50ZXJYIC0gZWRpdGluZ0xpbmVhckVsZW1lbnQucG9pbnRlck9mZnNldC54LCBzY2VuZVBvaW50ZXJZIC0gZWRpdGluZ0xpbmVhckVsZW1lbnQucG9pbnRlck9mZnNldC55LCBhcHBTdGF0ZS5ncmlkU2l6ZSlcXG4gICAgICAgICAgICAgICAgICAgIDogW1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQucG9pbnRzW3BvaW50SW5kZXhdWzBdICsgZGVsdGFYLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQucG9pbnRzW3BvaW50SW5kZXhdWzFdICsgZGVsdGFZLFxcbiAgICAgICAgICAgICAgICAgICAgXTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBwb2ludEluZGV4LFxcbiAgICAgICAgICAgICAgICAgICAgcG9pbnQ6IG5ld1BvaW50UG9zaXRpb24sXFxuICAgICAgICAgICAgICAgICAgICBpc0RyYWdnaW5nOiBwb2ludEluZGV4ID09PVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRpbmdMaW5lYXJFbGVtZW50LnBvaW50ZXJEb3duU3RhdGUubGFzdENsaWNrZWRQb2ludCxcXG4gICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgLy8gc3VnZ2VzdCBiaW5kaW5ncyBmb3IgZmlyc3QgYW5kIGxhc3QgcG9pbnQgaWYgc2VsZWN0ZWRcXG4gICAgICAgICAgICBpZiAoKDAsX3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5pc0JpbmRpbmdFbGVtZW50KShlbGVtZW50KSkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBjb29yZHMgPSBbXTtcXG4gICAgICAgICAgICAgICAgY29uc3QgZmlyc3RTZWxlY3RlZEluZGV4ID0gc2VsZWN0ZWRQb2ludHNJbmRpY2VzWzBdO1xcbiAgICAgICAgICAgICAgICBpZiAoZmlyc3RTZWxlY3RlZEluZGV4ID09PSAwKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb29yZHMucHVzaCgoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy50dXBsZVRvQ29vcnMpKExpbmVhckVsZW1lbnRFZGl0b3IuZ2V0UG9pbnRHbG9iYWxDb29yZGluYXRlcyhlbGVtZW50LCBlbGVtZW50LnBvaW50c1swXSkpKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0U2VsZWN0ZWRJbmRleCA9IHNlbGVjdGVkUG9pbnRzSW5kaWNlc1tzZWxlY3RlZFBvaW50c0luZGljZXMubGVuZ3RoIC0gMV07XFxuICAgICAgICAgICAgICAgIGlmIChsYXN0U2VsZWN0ZWRJbmRleCA9PT0gZWxlbWVudC5wb2ludHMubGVuZ3RoIC0gMSkge1xcbiAgICAgICAgICAgICAgICAgICAgY29vcmRzLnB1c2goKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udHVwbGVUb0Nvb3JzKShMaW5lYXJFbGVtZW50RWRpdG9yLmdldFBvaW50R2xvYmFsQ29vcmRpbmF0ZXMoZWxlbWVudCwgZWxlbWVudC5wb2ludHNbbGFzdFNlbGVjdGVkSW5kZXhdKSkpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGlmIChjb29yZHMubGVuZ3RoKSB7XFxuICAgICAgICAgICAgICAgICAgICBtYXliZVN1Z2dlc3RCaW5kaW5nKGVsZW1lbnQsIGNvb3Jkcyk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgIH1cXG4gICAgc3RhdGljIGhhbmRsZVBvaW50ZXJVcChldmVudCwgZWRpdGluZ0xpbmVhckVsZW1lbnQsIGFwcFN0YXRlKSB7XFxuICAgICAgICB2YXIgX2E7XFxuICAgICAgICBjb25zdCB7IGVsZW1lbnRJZCwgc2VsZWN0ZWRQb2ludHNJbmRpY2VzLCBpc0RyYWdnaW5nLCBwb2ludGVyRG93blN0YXRlIH0gPSBlZGl0aW5nTGluZWFyRWxlbWVudDtcXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBMaW5lYXJFbGVtZW50RWRpdG9yLmdldEVsZW1lbnQoZWxlbWVudElkKTtcXG4gICAgICAgIGlmICghZWxlbWVudCkge1xcbiAgICAgICAgICAgIHJldHVybiBlZGl0aW5nTGluZWFyRWxlbWVudDtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IGJpbmRpbmdzID0ge307XFxuICAgICAgICBpZiAoaXNEcmFnZ2luZyAmJiBzZWxlY3RlZFBvaW50c0luZGljZXMpIHtcXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHNlbGVjdGVkUG9pbnQgb2Ygc2VsZWN0ZWRQb2ludHNJbmRpY2VzKSB7XFxuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZFBvaW50ID09PSAwIHx8XFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFBvaW50ID09PSBlbGVtZW50LnBvaW50cy5sZW5ndGggLSAxKSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5pc1BhdGhBTG9vcCkoZWxlbWVudC5wb2ludHMsIGFwcFN0YXRlLnpvb20udmFsdWUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgTGluZWFyRWxlbWVudEVkaXRvci5tb3ZlUG9pbnRzKGVsZW1lbnQsIFtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IHNlbGVjdGVkUG9pbnQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludDogc2VsZWN0ZWRQb2ludCA9PT0gMFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZWxlbWVudC5wb2ludHNbZWxlbWVudC5wb2ludHMubGVuZ3RoIC0gMV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGVsZW1lbnQucG9pbnRzWzBdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmluZGluZ0VsZW1lbnQgPSAoMCxfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmlzQmluZGluZ0VuYWJsZWQpKGFwcFN0YXRlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gKDAsX2JpbmRpbmdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRIb3ZlcmVkRWxlbWVudEZvckJpbmRpbmcpKCgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnR1cGxlVG9Db29ycykoTGluZWFyRWxlbWVudEVkaXRvci5nZXRQb2ludEF0SW5kZXhHbG9iYWxDb29yZGluYXRlcyhlbGVtZW50LCBzZWxlY3RlZFBvaW50KSksIF9zY2VuZV9TY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fW1xcXCJkZWZhdWx0XFxcIl0uZ2V0U2NlbmUoZWxlbWVudCkpXFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xcbiAgICAgICAgICAgICAgICAgICAgYmluZGluZ3Nbc2VsZWN0ZWRQb2ludCA9PT0gMCA/IFxcXCJzdGFydEJpbmRpbmdFbGVtZW50XFxcIiA6IFxcXCJlbmRCaW5kaW5nRWxlbWVudFxcXCJdID0gYmluZGluZ0VsZW1lbnQ7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGVkaXRpbmdMaW5lYXJFbGVtZW50KSwgYmluZGluZ3MpLCB7IFxcbiAgICAgICAgICAgIC8vIGlmIGNsaWNraW5nIHdpdGhvdXQgcHJldmlvdXNseSBkcmFnZ2luZyBhIHBvaW50KHMpLCBhbmQgbm90IGhvbGRpbmdcXG4gICAgICAgICAgICAvLyBzaGlmdCwgZGVzZWxlY3QgYWxsIHBvaW50cyBleGNlcHQgdGhlIG9uZSBjbGlja2VkLiBJZiBob2xkaW5nIHNoaWZ0LFxcbiAgICAgICAgICAgIC8vIHRvZ2dsZSB0aGUgcG9pbnQuXFxuICAgICAgICAgICAgc2VsZWN0ZWRQb2ludHNJbmRpY2VzOiBpc0RyYWdnaW5nIHx8IGV2ZW50LnNoaWZ0S2V5XFxuICAgICAgICAgICAgICAgID8gIWlzRHJhZ2dpbmcgJiZcXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnNoaWZ0S2V5ICYmXFxuICAgICAgICAgICAgICAgICAgICAoKF9hID0gcG9pbnRlckRvd25TdGF0ZS5wcmV2U2VsZWN0ZWRQb2ludHNJbmRpY2VzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaW5jbHVkZXMocG9pbnRlckRvd25TdGF0ZS5sYXN0Q2xpY2tlZFBvaW50KSlcXG4gICAgICAgICAgICAgICAgICAgID8gc2VsZWN0ZWRQb2ludHNJbmRpY2VzICYmXFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRQb2ludHNJbmRpY2VzLmZpbHRlcigocG9pbnRJbmRleCkgPT4gcG9pbnRJbmRleCAhPT0gcG9pbnRlckRvd25TdGF0ZS5sYXN0Q2xpY2tlZFBvaW50KVxcbiAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3RlZFBvaW50c0luZGljZXNcXG4gICAgICAgICAgICAgICAgOiAoc2VsZWN0ZWRQb2ludHNJbmRpY2VzID09PSBudWxsIHx8IHNlbGVjdGVkUG9pbnRzSW5kaWNlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VsZWN0ZWRQb2ludHNJbmRpY2VzLmluY2x1ZGVzKHBvaW50ZXJEb3duU3RhdGUubGFzdENsaWNrZWRQb2ludCkpXFxuICAgICAgICAgICAgICAgICAgICA/IFtwb2ludGVyRG93blN0YXRlLmxhc3RDbGlja2VkUG9pbnRdXFxuICAgICAgICAgICAgICAgICAgICA6IHNlbGVjdGVkUG9pbnRzSW5kaWNlcywgaXNEcmFnZ2luZzogZmFsc2UsIHBvaW50ZXJPZmZzZXQ6IHsgeDogMCwgeTogMCB9IH0pO1xcbiAgICB9XFxuICAgIHN0YXRpYyBoYW5kbGVQb2ludGVyRG93bihldmVudCwgYXBwU3RhdGUsIHNldFN0YXRlLCBoaXN0b3J5LCBzY2VuZVBvaW50ZXIpIHtcXG4gICAgICAgIHZhciBfYTtcXG4gICAgICAgIGNvbnN0IHJldCA9IHtcXG4gICAgICAgICAgICBkaWRBZGRQb2ludDogZmFsc2UsXFxuICAgICAgICAgICAgaGl0RWxlbWVudDogbnVsbCxcXG4gICAgICAgIH07XFxuICAgICAgICBpZiAoIWFwcFN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50KSB7XFxuICAgICAgICAgICAgcmV0dXJuIHJldDtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IHsgZWxlbWVudElkIH0gPSBhcHBTdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudDtcXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBMaW5lYXJFbGVtZW50RWRpdG9yLmdldEVsZW1lbnQoZWxlbWVudElkKTtcXG4gICAgICAgIGlmICghZWxlbWVudCkge1xcbiAgICAgICAgICAgIHJldHVybiByZXQ7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoZXZlbnQuYWx0S2V5KSB7XFxuICAgICAgICAgICAgaWYgKGFwcFN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50Lmxhc3RVbmNvbW1pdHRlZFBvaW50ID09IG51bGwpIHtcXG4gICAgICAgICAgICAgICAgKDAsX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5tdXRhdGVFbGVtZW50KShlbGVtZW50LCB7XFxuICAgICAgICAgICAgICAgICAgICBwb2ludHM6IFtcXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5lbGVtZW50LnBvaW50cyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBMaW5lYXJFbGVtZW50RWRpdG9yLmNyZWF0ZVBvaW50QXQoZWxlbWVudCwgc2NlbmVQb2ludGVyLngsIHNjZW5lUG9pbnRlci55LCBhcHBTdGF0ZS5ncmlkU2l6ZSksXFxuICAgICAgICAgICAgICAgICAgICBdLFxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaGlzdG9yeS5yZXN1bWVSZWNvcmRpbmcoKTtcXG4gICAgICAgICAgICBzZXRTdGF0ZSh7XFxuICAgICAgICAgICAgICAgIGVkaXRpbmdMaW5lYXJFbGVtZW50OiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50KSwgeyBwb2ludGVyRG93blN0YXRlOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJldlNlbGVjdGVkUG9pbnRzSW5kaWNlczogYXBwU3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQuc2VsZWN0ZWRQb2ludHNJbmRpY2VzLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RDbGlja2VkUG9pbnQ6IC0xLFxcbiAgICAgICAgICAgICAgICAgICAgfSwgc2VsZWN0ZWRQb2ludHNJbmRpY2VzOiBbZWxlbWVudC5wb2ludHMubGVuZ3RoIC0gMV0sIGxhc3RVbmNvbW1pdHRlZFBvaW50OiBudWxsLCBlbmRCaW5kaW5nRWxlbWVudDogKDAsX2JpbmRpbmdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRIb3ZlcmVkRWxlbWVudEZvckJpbmRpbmcpKHNjZW5lUG9pbnRlciwgX3NjZW5lX1NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bXFxcImRlZmF1bHRcXFwiXS5nZXRTY2VuZShlbGVtZW50KSkgfSksXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgcmV0LmRpZEFkZFBvaW50ID0gdHJ1ZTtcXG4gICAgICAgICAgICByZXR1cm4gcmV0O1xcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3QgY2xpY2tlZFBvaW50SW5kZXggPSBMaW5lYXJFbGVtZW50RWRpdG9yLmdldFBvaW50SW5kZXhVbmRlckN1cnNvcihlbGVtZW50LCBhcHBTdGF0ZS56b29tLCBzY2VuZVBvaW50ZXIueCwgc2NlbmVQb2ludGVyLnkpO1xcbiAgICAgICAgLy8gaWYgd2UgY2xpY2tlZCBvbiBhIHBvaW50LCBzZXQgdGhlIGVsZW1lbnQgYXMgaGl0RWxlbWVudCBvdGhlcndpc2VcXG4gICAgICAgIC8vIGl0IHdvdWxkIGdldCBkZXNlbGVjdGVkIGlmIHRoZSBwb2ludCBpcyBvdXRzaWRlIHRoZSBoaXRib3ggYXJlYVxcbiAgICAgICAgaWYgKGNsaWNrZWRQb2ludEluZGV4ID4gLTEpIHtcXG4gICAgICAgICAgICByZXQuaGl0RWxlbWVudCA9IGVsZW1lbnQ7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAvLyBZb3UgbWlnaHQgYmUgd2FuZGVyaW5nIHdoeSB3ZSBhcmUgc3RvcmluZyB0aGUgYmluZGluZyBlbGVtZW50cyBvblxcbiAgICAgICAgICAgIC8vIExpbmVhckVsZW1lbnRFZGl0b3IgYW5kIHBhc3NpbmcgdGhlbSBpbiwgaW5zdGVkIG9mIGNhbGN1bGF0aW5nIHRoZW1cXG4gICAgICAgICAgICAvLyBmcm9tIHRoZSBlbmQgcG9pbnRzIG9mIHRoZSBgbGluZWFyRWxlbWVudGAgLSB0aGlzIGlzIHRvIGFsbG93IGRpc2FibGluZ1xcbiAgICAgICAgICAgIC8vIGJpbmRpbmcgKHdoaWNoIG5lZWRzIHRvIGhhcHBlbiBhdCB0aGUgcG9pbnQgdGhlIHVzZXIgZmluaXNoZXMgbW92aW5nXFxuICAgICAgICAgICAgLy8gdGhlIHBvaW50KS5cXG4gICAgICAgICAgICBjb25zdCB7IHN0YXJ0QmluZGluZ0VsZW1lbnQsIGVuZEJpbmRpbmdFbGVtZW50IH0gPSBhcHBTdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudDtcXG4gICAgICAgICAgICBpZiAoKDAsX2JpbmRpbmdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5pc0JpbmRpbmdFbmFibGVkKShhcHBTdGF0ZSkgJiYgKDAsX3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5pc0JpbmRpbmdFbGVtZW50KShlbGVtZW50KSkge1xcbiAgICAgICAgICAgICAgICAoMCxfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmJpbmRPclVuYmluZExpbmVhckVsZW1lbnQpKGVsZW1lbnQsIHN0YXJ0QmluZGluZ0VsZW1lbnQsIGVuZEJpbmRpbmdFbGVtZW50KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBbeDEsIHkxLCB4MiwgeTJdID0gKDAsX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmdldEVsZW1lbnRBYnNvbHV0ZUNvb3JkcykoZWxlbWVudCk7XFxuICAgICAgICBjb25zdCBjeCA9ICh4MSArIHgyKSAvIDI7XFxuICAgICAgICBjb25zdCBjeSA9ICh5MSArIHkyKSAvIDI7XFxuICAgICAgICBjb25zdCB0YXJnZXRQb2ludCA9IGNsaWNrZWRQb2ludEluZGV4ID4gLTEgJiZcXG4gICAgICAgICAgICAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJvdGF0ZSkoZWxlbWVudC54ICsgZWxlbWVudC5wb2ludHNbY2xpY2tlZFBvaW50SW5kZXhdWzBdLCBlbGVtZW50LnkgKyBlbGVtZW50LnBvaW50c1tjbGlja2VkUG9pbnRJbmRleF1bMV0sIGN4LCBjeSwgZWxlbWVudC5hbmdsZSk7XFxuICAgICAgICBjb25zdCBuZXh0U2VsZWN0ZWRQb2ludHNJbmRpY2VzID0gY2xpY2tlZFBvaW50SW5kZXggPiAtMSB8fCBldmVudC5zaGlmdEtleVxcbiAgICAgICAgICAgID8gZXZlbnQuc2hpZnRLZXkgfHxcXG4gICAgICAgICAgICAgICAgKChfYSA9IGFwcFN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50LnNlbGVjdGVkUG9pbnRzSW5kaWNlcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmluY2x1ZGVzKGNsaWNrZWRQb2ludEluZGV4KSlcXG4gICAgICAgICAgICAgICAgPyBub3JtYWxpemVTZWxlY3RlZFBvaW50cyhbXFxuICAgICAgICAgICAgICAgICAgICAuLi4oYXBwU3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQuc2VsZWN0ZWRQb2ludHNJbmRpY2VzIHx8IFtdKSxcXG4gICAgICAgICAgICAgICAgICAgIGNsaWNrZWRQb2ludEluZGV4LFxcbiAgICAgICAgICAgICAgICBdKVxcbiAgICAgICAgICAgICAgICA6IFtjbGlja2VkUG9pbnRJbmRleF1cXG4gICAgICAgICAgICA6IG51bGw7XFxuICAgICAgICBzZXRTdGF0ZSh7XFxuICAgICAgICAgICAgZWRpdGluZ0xpbmVhckVsZW1lbnQ6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQpLCB7IHBvaW50ZXJEb3duU3RhdGU6IHtcXG4gICAgICAgICAgICAgICAgICAgIHByZXZTZWxlY3RlZFBvaW50c0luZGljZXM6IGFwcFN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50LnNlbGVjdGVkUG9pbnRzSW5kaWNlcyxcXG4gICAgICAgICAgICAgICAgICAgIGxhc3RDbGlja2VkUG9pbnQ6IGNsaWNrZWRQb2ludEluZGV4LFxcbiAgICAgICAgICAgICAgICB9LCBzZWxlY3RlZFBvaW50c0luZGljZXM6IG5leHRTZWxlY3RlZFBvaW50c0luZGljZXMsIHBvaW50ZXJPZmZzZXQ6IHRhcmdldFBvaW50XFxuICAgICAgICAgICAgICAgICAgICA/IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB4OiBzY2VuZVBvaW50ZXIueCAtIHRhcmdldFBvaW50WzBdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHk6IHNjZW5lUG9pbnRlci55IC0gdGFyZ2V0UG9pbnRbMV0sXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICA6IHsgeDogMCwgeTogMCB9IH0pLFxcbiAgICAgICAgfSk7XFxuICAgICAgICByZXR1cm4gcmV0O1xcbiAgICB9XFxuICAgIHN0YXRpYyBoYW5kbGVQb2ludGVyTW92ZShldmVudCwgc2NlbmVQb2ludGVyWCwgc2NlbmVQb2ludGVyWSwgZWRpdGluZ0xpbmVhckVsZW1lbnQsIGdyaWRTaXplKSB7XFxuICAgICAgICBjb25zdCB7IGVsZW1lbnRJZCwgbGFzdFVuY29tbWl0dGVkUG9pbnQgfSA9IGVkaXRpbmdMaW5lYXJFbGVtZW50O1xcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IExpbmVhckVsZW1lbnRFZGl0b3IuZ2V0RWxlbWVudChlbGVtZW50SWQpO1xcbiAgICAgICAgaWYgKCFlbGVtZW50KSB7XFxuICAgICAgICAgICAgcmV0dXJuIGVkaXRpbmdMaW5lYXJFbGVtZW50O1xcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3QgeyBwb2ludHMgfSA9IGVsZW1lbnQ7XFxuICAgICAgICBjb25zdCBsYXN0UG9pbnQgPSBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdO1xcbiAgICAgICAgaWYgKCFldmVudC5hbHRLZXkpIHtcXG4gICAgICAgICAgICBpZiAobGFzdFBvaW50ID09PSBsYXN0VW5jb21taXR0ZWRQb2ludCkge1xcbiAgICAgICAgICAgICAgICBMaW5lYXJFbGVtZW50RWRpdG9yLmRlbGV0ZVBvaW50cyhlbGVtZW50LCBbcG9pbnRzLmxlbmd0aCAtIDFdKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZWRpdGluZ0xpbmVhckVsZW1lbnQpLCB7IGxhc3RVbmNvbW1pdHRlZFBvaW50OiBudWxsIH0pO1xcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3QgbmV3UG9pbnQgPSBMaW5lYXJFbGVtZW50RWRpdG9yLmNyZWF0ZVBvaW50QXQoZWxlbWVudCwgc2NlbmVQb2ludGVyWCAtIGVkaXRpbmdMaW5lYXJFbGVtZW50LnBvaW50ZXJPZmZzZXQueCwgc2NlbmVQb2ludGVyWSAtIGVkaXRpbmdMaW5lYXJFbGVtZW50LnBvaW50ZXJPZmZzZXQueSwgZ3JpZFNpemUpO1xcbiAgICAgICAgaWYgKGxhc3RQb2ludCA9PT0gbGFzdFVuY29tbWl0dGVkUG9pbnQpIHtcXG4gICAgICAgICAgICBMaW5lYXJFbGVtZW50RWRpdG9yLm1vdmVQb2ludHMoZWxlbWVudCwgW1xcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBpbmRleDogZWxlbWVudC5wb2ludHMubGVuZ3RoIC0gMSxcXG4gICAgICAgICAgICAgICAgICAgIHBvaW50OiBuZXdQb2ludCxcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICBdKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgIExpbmVhckVsZW1lbnRFZGl0b3IuYWRkUG9pbnRzKGVsZW1lbnQsIFt7IHBvaW50OiBuZXdQb2ludCB9XSk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBlZGl0aW5nTGluZWFyRWxlbWVudCksIHsgbGFzdFVuY29tbWl0dGVkUG9pbnQ6IGVsZW1lbnQucG9pbnRzW2VsZW1lbnQucG9pbnRzLmxlbmd0aCAtIDFdIH0pO1xcbiAgICB9XFxuICAgIC8qKiBzY2VuZSBjb29yZHMgKi9cXG4gICAgc3RhdGljIGdldFBvaW50R2xvYmFsQ29vcmRpbmF0ZXMoZWxlbWVudCwgcG9pbnQpIHtcXG4gICAgICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzKShlbGVtZW50KTtcXG4gICAgICAgIGNvbnN0IGN4ID0gKHgxICsgeDIpIC8gMjtcXG4gICAgICAgIGNvbnN0IGN5ID0gKHkxICsgeTIpIC8gMjtcXG4gICAgICAgIGxldCB7IHgsIHkgfSA9IGVsZW1lbnQ7XFxuICAgICAgICBbeCwgeV0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJvdGF0ZSkoeCArIHBvaW50WzBdLCB5ICsgcG9pbnRbMV0sIGN4LCBjeSwgZWxlbWVudC5hbmdsZSk7XFxuICAgICAgICByZXR1cm4gW3gsIHldO1xcbiAgICB9XFxuICAgIC8qKiBzY2VuZSBjb29yZHMgKi9cXG4gICAgc3RhdGljIGdldFBvaW50c0dsb2JhbENvb3JkaW5hdGVzKGVsZW1lbnQpIHtcXG4gICAgICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzKShlbGVtZW50KTtcXG4gICAgICAgIGNvbnN0IGN4ID0gKHgxICsgeDIpIC8gMjtcXG4gICAgICAgIGNvbnN0IGN5ID0gKHkxICsgeTIpIC8gMjtcXG4gICAgICAgIHJldHVybiBlbGVtZW50LnBvaW50cy5tYXAoKHBvaW50KSA9PiB7XFxuICAgICAgICAgICAgbGV0IHsgeCwgeSB9ID0gZWxlbWVudDtcXG4gICAgICAgICAgICBbeCwgeV0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJvdGF0ZSkoeCArIHBvaW50WzBdLCB5ICsgcG9pbnRbMV0sIGN4LCBjeSwgZWxlbWVudC5hbmdsZSk7XFxuICAgICAgICAgICAgcmV0dXJuIFt4LCB5XTtcXG4gICAgICAgIH0pO1xcbiAgICB9XFxuICAgIHN0YXRpYyBnZXRQb2ludEF0SW5kZXhHbG9iYWxDb29yZGluYXRlcyhlbGVtZW50LCBpbmRleE1heWJlRnJvbUVuZCkge1xcbiAgICAgICAgY29uc3QgaW5kZXggPSBpbmRleE1heWJlRnJvbUVuZCA8IDBcXG4gICAgICAgICAgICA/IGVsZW1lbnQucG9pbnRzLmxlbmd0aCArIGluZGV4TWF5YmVGcm9tRW5kXFxuICAgICAgICAgICAgOiBpbmRleE1heWJlRnJvbUVuZDtcXG4gICAgICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzKShlbGVtZW50KTtcXG4gICAgICAgIGNvbnN0IGN4ID0gKHgxICsgeDIpIC8gMjtcXG4gICAgICAgIGNvbnN0IGN5ID0gKHkxICsgeTIpIC8gMjtcXG4gICAgICAgIGNvbnN0IHBvaW50ID0gZWxlbWVudC5wb2ludHNbaW5kZXhdO1xcbiAgICAgICAgY29uc3QgeyB4LCB5IH0gPSBlbGVtZW50O1xcbiAgICAgICAgcmV0dXJuICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucm90YXRlKSh4ICsgcG9pbnRbMF0sIHkgKyBwb2ludFsxXSwgY3gsIGN5LCBlbGVtZW50LmFuZ2xlKTtcXG4gICAgfVxcbiAgICBzdGF0aWMgcG9pbnRGcm9tQWJzb2x1dGVDb29yZHMoZWxlbWVudCwgYWJzb2x1dGVDb29yZHMpIHtcXG4gICAgICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzKShlbGVtZW50KTtcXG4gICAgICAgIGNvbnN0IGN4ID0gKHgxICsgeDIpIC8gMjtcXG4gICAgICAgIGNvbnN0IGN5ID0gKHkxICsgeTIpIC8gMjtcXG4gICAgICAgIGNvbnN0IFt4LCB5XSA9ICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucm90YXRlKShhYnNvbHV0ZUNvb3Jkc1swXSwgYWJzb2x1dGVDb29yZHNbMV0sIGN4LCBjeSwgLWVsZW1lbnQuYW5nbGUpO1xcbiAgICAgICAgcmV0dXJuIFt4IC0gZWxlbWVudC54LCB5IC0gZWxlbWVudC55XTtcXG4gICAgfVxcbiAgICBzdGF0aWMgZ2V0UG9pbnRJbmRleFVuZGVyQ3Vyc29yKGVsZW1lbnQsIHpvb20sIHgsIHkpIHtcXG4gICAgICAgIGNvbnN0IHBvaW50SGFuZGxlcyA9IHRoaXMuZ2V0UG9pbnRzR2xvYmFsQ29vcmRpbmF0ZXMoZWxlbWVudCk7XFxuICAgICAgICBsZXQgaWR4ID0gcG9pbnRIYW5kbGVzLmxlbmd0aDtcXG4gICAgICAgIC8vIGxvb3AgZnJvbSByaWdodCB0byBsZWZ0IGJlY2F1c2UgcG9pbnRzIG9uIHRoZSByaWdodCBhcmUgcmVuZGVyZWQgb3ZlclxcbiAgICAgICAgLy8gcG9pbnRzIG9uIHRoZSBsZWZ0LCB0aHVzIHNob3VsZCB0YWtlIHByZWNlZGVuY2Ugd2hlbiBjbGlja2luZywgaWYgdGhleVxcbiAgICAgICAgLy8gb3ZlcmxhcFxcbiAgICAgICAgd2hpbGUgKC0taWR4ID4gLTEpIHtcXG4gICAgICAgICAgICBjb25zdCBwb2ludCA9IHBvaW50SGFuZGxlc1tpZHhdO1xcbiAgICAgICAgICAgIGlmICgoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmRpc3RhbmNlMmQpKHgsIHksIHBvaW50WzBdLCBwb2ludFsxXSkgKiB6b29tLnZhbHVlIDxcXG4gICAgICAgICAgICAgICAgLy8gKzFweCB0byBhY2NvdW50IGZvciBvdXRsaW5lIHN0cm9rZVxcbiAgICAgICAgICAgICAgICB0aGlzLlBPSU5UX0hBTkRMRV9TSVpFIC8gMiArIDEpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIGlkeDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gLTE7XFxuICAgIH1cXG4gICAgc3RhdGljIGNyZWF0ZVBvaW50QXQoZWxlbWVudCwgc2NlbmVQb2ludGVyWCwgc2NlbmVQb2ludGVyWSwgZ3JpZFNpemUpIHtcXG4gICAgICAgIGNvbnN0IHBvaW50ZXJPbkdyaWQgPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmdldEdyaWRQb2ludCkoc2NlbmVQb2ludGVyWCwgc2NlbmVQb2ludGVyWSwgZ3JpZFNpemUpO1xcbiAgICAgICAgY29uc3QgW3gxLCB5MSwgeDIsIHkyXSA9ICgwLF9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRFbGVtZW50QWJzb2x1dGVDb29yZHMpKGVsZW1lbnQpO1xcbiAgICAgICAgY29uc3QgY3ggPSAoeDEgKyB4MikgLyAyO1xcbiAgICAgICAgY29uc3QgY3kgPSAoeTEgKyB5MikgLyAyO1xcbiAgICAgICAgY29uc3QgW3JvdGF0ZWRYLCByb3RhdGVkWV0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJvdGF0ZSkocG9pbnRlck9uR3JpZFswXSwgcG9pbnRlck9uR3JpZFsxXSwgY3gsIGN5LCAtZWxlbWVudC5hbmdsZSk7XFxuICAgICAgICByZXR1cm4gW3JvdGF0ZWRYIC0gZWxlbWVudC54LCByb3RhdGVkWSAtIGVsZW1lbnQueV07XFxuICAgIH1cXG4gICAgLyoqXFxuICAgICAqIE5vcm1hbGl6ZXMgbGluZSBwb2ludHMgc28gdGhhdCB0aGUgc3RhcnQgcG9pbnQgaXMgYXQgWzAsMF0uIFRoaXMgaXNcXG4gICAgICogZXhwZWN0ZWQgaW4gdmFyaW91cyBwYXJ0cyBvZiB0aGUgY29kZWJhc2UuIEFsc28gcmV0dXJucyBuZXcgeC95IHRvIGFjY291bnRcXG4gICAgICogZm9yIHRoZSBwb3RlbnRpYWwgbm9ybWFsaXphdGlvbi5cXG4gICAgICovXFxuICAgIHN0YXRpYyBnZXROb3JtYWxpemVkUG9pbnRzKGVsZW1lbnQpIHtcXG4gICAgICAgIGNvbnN0IHsgcG9pbnRzIH0gPSBlbGVtZW50O1xcbiAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IHBvaW50c1swXVswXTtcXG4gICAgICAgIGNvbnN0IG9mZnNldFkgPSBwb2ludHNbMF1bMV07XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIHBvaW50czogcG9pbnRzLm1hcCgocG9pbnQsIF9pZHgpID0+IHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtwb2ludFswXSAtIG9mZnNldFgsIHBvaW50WzFdIC0gb2Zmc2V0WV07XFxuICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgeDogZWxlbWVudC54ICsgb2Zmc2V0WCxcXG4gICAgICAgICAgICB5OiBlbGVtZW50LnkgKyBvZmZzZXRZLFxcbiAgICAgICAgfTtcXG4gICAgfVxcbiAgICAvLyBlbGVtZW50LW11dGF0aW5nIG1ldGhvZHNcXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgIHN0YXRpYyBub3JtYWxpemVQb2ludHMoZWxlbWVudCkge1xcbiAgICAgICAgKDAsX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5tdXRhdGVFbGVtZW50KShlbGVtZW50LCBMaW5lYXJFbGVtZW50RWRpdG9yLmdldE5vcm1hbGl6ZWRQb2ludHMoZWxlbWVudCkpO1xcbiAgICB9XFxuICAgIHN0YXRpYyBkdXBsaWNhdGVTZWxlY3RlZFBvaW50cyhhcHBTdGF0ZSkge1xcbiAgICAgICAgaWYgKCFhcHBTdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudCkge1xcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IHsgc2VsZWN0ZWRQb2ludHNJbmRpY2VzLCBlbGVtZW50SWQgfSA9IGFwcFN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50O1xcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IExpbmVhckVsZW1lbnRFZGl0b3IuZ2V0RWxlbWVudChlbGVtZW50SWQpO1xcbiAgICAgICAgaWYgKCFlbGVtZW50IHx8IHNlbGVjdGVkUG9pbnRzSW5kaWNlcyA9PT0gbnVsbCkge1xcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IHsgcG9pbnRzIH0gPSBlbGVtZW50O1xcbiAgICAgICAgY29uc3QgbmV4dFNlbGVjdGVkSW5kaWNlcyA9IFtdO1xcbiAgICAgICAgbGV0IHBvaW50QWRkZWRUb0VuZCA9IGZhbHNlO1xcbiAgICAgICAgbGV0IGluZGV4Q3Vyc29yID0gLTE7XFxuICAgICAgICBjb25zdCBuZXh0UG9pbnRzID0gcG9pbnRzLnJlZHVjZSgoYWNjLCBwb2ludCwgaW5kZXgpID0+IHtcXG4gICAgICAgICAgICArK2luZGV4Q3Vyc29yO1xcbiAgICAgICAgICAgIGFjYy5wdXNoKHBvaW50KTtcXG4gICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gc2VsZWN0ZWRQb2ludHNJbmRpY2VzLmluY2x1ZGVzKGluZGV4KTtcXG4gICAgICAgICAgICBpZiAoaXNTZWxlY3RlZCkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0UG9pbnQgPSBwb2ludHNbaW5kZXggKyAxXTtcXG4gICAgICAgICAgICAgICAgaWYgKCFuZXh0UG9pbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgIHBvaW50QWRkZWRUb0VuZCA9IHRydWU7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgYWNjLnB1c2gobmV4dFBvaW50XFxuICAgICAgICAgICAgICAgICAgICA/IFsocG9pbnRbMF0gKyBuZXh0UG9pbnRbMF0pIC8gMiwgKHBvaW50WzFdICsgbmV4dFBvaW50WzFdKSAvIDJdXFxuICAgICAgICAgICAgICAgICAgICA6IFtwb2ludFswXSwgcG9pbnRbMV1dKTtcXG4gICAgICAgICAgICAgICAgbmV4dFNlbGVjdGVkSW5kaWNlcy5wdXNoKGluZGV4Q3Vyc29yICsgMSk7XFxuICAgICAgICAgICAgICAgICsraW5kZXhDdXJzb3I7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiBhY2M7XFxuICAgICAgICB9LCBbXSk7XFxuICAgICAgICAoMCxfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLm11dGF0ZUVsZW1lbnQpKGVsZW1lbnQsIHsgcG9pbnRzOiBuZXh0UG9pbnRzIH0pO1xcbiAgICAgICAgLy8gdGVtcCBoYWNrIHRvIGVuc3VyZSB0aGUgbGluZSBkb2Vzbid0IG1vdmUgd2hlbiBhZGRpbmcgcG9pbnQgdG8gdGhlIGVuZCxcXG4gICAgICAgIC8vIHBvdGVudGlhbGx5IGV4cGFuZGluZyB0aGUgYm91bmRpbmcgYm94XFxuICAgICAgICBpZiAocG9pbnRBZGRlZFRvRW5kKSB7XFxuICAgICAgICAgICAgY29uc3QgbGFzdFBvaW50ID0gZWxlbWVudC5wb2ludHNbZWxlbWVudC5wb2ludHMubGVuZ3RoIC0gMV07XFxuICAgICAgICAgICAgTGluZWFyRWxlbWVudEVkaXRvci5tb3ZlUG9pbnRzKGVsZW1lbnQsIFtcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGVsZW1lbnQucG9pbnRzLmxlbmd0aCAtIDEsXFxuICAgICAgICAgICAgICAgICAgICBwb2ludDogW2xhc3RQb2ludFswXSArIDMwLCBsYXN0UG9pbnRbMV0gKyAzMF0sXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgXSk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBlZGl0aW5nTGluZWFyRWxlbWVudDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhcHBTdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudCksIHsgc2VsZWN0ZWRQb2ludHNJbmRpY2VzOiBuZXh0U2VsZWN0ZWRJbmRpY2VzIH0pIH0pLFxcbiAgICAgICAgfTtcXG4gICAgfVxcbiAgICBzdGF0aWMgZGVsZXRlUG9pbnRzKGVsZW1lbnQsIHBvaW50SW5kaWNlcykge1xcbiAgICAgICAgbGV0IG9mZnNldFggPSAwO1xcbiAgICAgICAgbGV0IG9mZnNldFkgPSAwO1xcbiAgICAgICAgY29uc3QgaXNEZWxldGluZ09yaWdpblBvaW50ID0gcG9pbnRJbmRpY2VzLmluY2x1ZGVzKDApO1xcbiAgICAgICAgLy8gaWYgZGVsZXRpbmcgZmlyc3QgcG9pbnQsIG1ha2UgdGhlIG5leHQgdG8gYmUgWzAsMF0gYW5kIHJlY2FsY3VsYXRlXFxuICAgICAgICAvLyBwb3NpdGlvbnMgb2YgdGhlIHJlc3Qgd2l0aCByZXNwZWN0IHRvIGl0XFxuICAgICAgICBpZiAoaXNEZWxldGluZ09yaWdpblBvaW50KSB7XFxuICAgICAgICAgICAgY29uc3QgZmlyc3ROb25EZWxldGVkUG9pbnQgPSBlbGVtZW50LnBvaW50cy5maW5kKChwb2ludCwgaWR4KSA9PiB7XFxuICAgICAgICAgICAgICAgIHJldHVybiAhcG9pbnRJbmRpY2VzLmluY2x1ZGVzKGlkeCk7XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgaWYgKGZpcnN0Tm9uRGVsZXRlZFBvaW50KSB7XFxuICAgICAgICAgICAgICAgIG9mZnNldFggPSBmaXJzdE5vbkRlbGV0ZWRQb2ludFswXTtcXG4gICAgICAgICAgICAgICAgb2Zmc2V0WSA9IGZpcnN0Tm9uRGVsZXRlZFBvaW50WzFdO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IG5leHRQb2ludHMgPSBlbGVtZW50LnBvaW50cy5yZWR1Y2UoKGFjYywgcG9pbnQsIGlkeCkgPT4ge1xcbiAgICAgICAgICAgIGlmICghcG9pbnRJbmRpY2VzLmluY2x1ZGVzKGlkeCkpIHtcXG4gICAgICAgICAgICAgICAgYWNjLnB1c2goIWFjYy5sZW5ndGggPyBbMCwgMF0gOiBbcG9pbnRbMF0gLSBvZmZzZXRYLCBwb2ludFsxXSAtIG9mZnNldFldKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIGFjYztcXG4gICAgICAgIH0sIFtdKTtcXG4gICAgICAgIExpbmVhckVsZW1lbnRFZGl0b3IuX3VwZGF0ZVBvaW50cyhlbGVtZW50LCBuZXh0UG9pbnRzLCBvZmZzZXRYLCBvZmZzZXRZKTtcXG4gICAgfVxcbiAgICBzdGF0aWMgYWRkUG9pbnRzKGVsZW1lbnQsIHRhcmdldFBvaW50cykge1xcbiAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IDA7XFxuICAgICAgICBjb25zdCBvZmZzZXRZID0gMDtcXG4gICAgICAgIGNvbnN0IG5leHRQb2ludHMgPSBbLi4uZWxlbWVudC5wb2ludHMsIC4uLnRhcmdldFBvaW50cy5tYXAoKHgpID0+IHgucG9pbnQpXTtcXG4gICAgICAgIExpbmVhckVsZW1lbnRFZGl0b3IuX3VwZGF0ZVBvaW50cyhlbGVtZW50LCBuZXh0UG9pbnRzLCBvZmZzZXRYLCBvZmZzZXRZKTtcXG4gICAgfVxcbiAgICBzdGF0aWMgbW92ZVBvaW50cyhlbGVtZW50LCB0YXJnZXRQb2ludHMsIG90aGVyVXBkYXRlcykge1xcbiAgICAgICAgY29uc3QgeyBwb2ludHMgfSA9IGVsZW1lbnQ7XFxuICAgICAgICAvLyBpbiBjYXNlIHdlJ3JlIG1vdmluZyBzdGFydCBwb2ludCwgaW5zdGVhZCBvZiBtb2RpZnlpbmcgaXRzIHBvc2l0aW9uXFxuICAgICAgICAvLyB3aGljaCB3b3VsZCBicmVhayB0aGUgaW52YXJpYW50IG9mIGl0IGJlaW5nIGF0IFswLDBdLCB3ZSBtb3ZlXFxuICAgICAgICAvLyBhbGwgdGhlIG90aGVyIHBvaW50cyBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIGJ5IGRlbHRhIHRvXFxuICAgICAgICAvLyBvZmZzZXQgaXQuIFdlIGRvIHRoZSBzYW1lIHdpdGggYWN0dWFsIGVsZW1lbnQueC95IHBvc2l0aW9uLCBzb1xcbiAgICAgICAgLy8gdGhpcyBoYWNrcyBhcmUgY29tcGxldGVseSB0cmFuc3BhcmVudCB0byB0aGUgdXNlci5cXG4gICAgICAgIGxldCBvZmZzZXRYID0gMDtcXG4gICAgICAgIGxldCBvZmZzZXRZID0gMDtcXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3JpZ2luUG9pbnQgPSB0YXJnZXRQb2ludHMuZmluZCgoeyBpbmRleCB9KSA9PiBpbmRleCA9PT0gMCk7XFxuICAgICAgICBpZiAoc2VsZWN0ZWRPcmlnaW5Qb2ludCkge1xcbiAgICAgICAgICAgIG9mZnNldFggPVxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZE9yaWdpblBvaW50LnBvaW50WzBdIC0gcG9pbnRzW3NlbGVjdGVkT3JpZ2luUG9pbnQuaW5kZXhdWzBdO1xcbiAgICAgICAgICAgIG9mZnNldFkgPVxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZE9yaWdpblBvaW50LnBvaW50WzFdIC0gcG9pbnRzW3NlbGVjdGVkT3JpZ2luUG9pbnQuaW5kZXhdWzFdO1xcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3QgbmV4dFBvaW50cyA9IHBvaW50cy5tYXAoKHBvaW50LCBpZHgpID0+IHtcXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZFBvaW50RGF0YSA9IHRhcmdldFBvaW50cy5maW5kKChwKSA9PiBwLmluZGV4ID09PSBpZHgpO1xcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZFBvaW50RGF0YSkge1xcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRPcmlnaW5Qb2ludCkge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvaW50O1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGNvbnN0IGRlbHRhWCA9IHNlbGVjdGVkUG9pbnREYXRhLnBvaW50WzBdIC0gcG9pbnRzW3NlbGVjdGVkUG9pbnREYXRhLmluZGV4XVswXTtcXG4gICAgICAgICAgICAgICAgY29uc3QgZGVsdGFZID0gc2VsZWN0ZWRQb2ludERhdGEucG9pbnRbMV0gLSBwb2ludHNbc2VsZWN0ZWRQb2ludERhdGEuaW5kZXhdWzFdO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gW3BvaW50WzBdICsgZGVsdGFYLCBwb2ludFsxXSArIGRlbHRhWV07XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiBvZmZzZXRYIHx8IG9mZnNldFlcXG4gICAgICAgICAgICAgICAgPyBbcG9pbnRbMF0gLSBvZmZzZXRYLCBwb2ludFsxXSAtIG9mZnNldFldXFxuICAgICAgICAgICAgICAgIDogcG9pbnQ7XFxuICAgICAgICB9KTtcXG4gICAgICAgIExpbmVhckVsZW1lbnRFZGl0b3IuX3VwZGF0ZVBvaW50cyhlbGVtZW50LCBuZXh0UG9pbnRzLCBvZmZzZXRYLCBvZmZzZXRZLCBvdGhlclVwZGF0ZXMpO1xcbiAgICB9XFxuICAgIHN0YXRpYyBfdXBkYXRlUG9pbnRzKGVsZW1lbnQsIG5leHRQb2ludHMsIG9mZnNldFgsIG9mZnNldFksIG90aGVyVXBkYXRlcykge1xcbiAgICAgICAgY29uc3QgbmV4dENvb3JkcyA9ICgwLF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXRFbGVtZW50UG9pbnRzQ29vcmRzKShlbGVtZW50LCBuZXh0UG9pbnRzLCBlbGVtZW50LnN0cm9rZVNoYXJwbmVzcyB8fCBcXFwicm91bmRcXFwiKTtcXG4gICAgICAgIGNvbnN0IHByZXZDb29yZHMgPSAoMCxfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZ2V0RWxlbWVudFBvaW50c0Nvb3JkcykoZWxlbWVudCwgZWxlbWVudC5wb2ludHMsIGVsZW1lbnQuc3Ryb2tlU2hhcnBuZXNzIHx8IFxcXCJyb3VuZFxcXCIpO1xcbiAgICAgICAgY29uc3QgbmV4dENlbnRlclggPSAobmV4dENvb3Jkc1swXSArIG5leHRDb29yZHNbMl0pIC8gMjtcXG4gICAgICAgIGNvbnN0IG5leHRDZW50ZXJZID0gKG5leHRDb29yZHNbMV0gKyBuZXh0Q29vcmRzWzNdKSAvIDI7XFxuICAgICAgICBjb25zdCBwcmV2Q2VudGVyWCA9IChwcmV2Q29vcmRzWzBdICsgcHJldkNvb3Jkc1syXSkgLyAyO1xcbiAgICAgICAgY29uc3QgcHJldkNlbnRlclkgPSAocHJldkNvb3Jkc1sxXSArIHByZXZDb29yZHNbM10pIC8gMjtcXG4gICAgICAgIGNvbnN0IGRYID0gcHJldkNlbnRlclggLSBuZXh0Q2VudGVyWDtcXG4gICAgICAgIGNvbnN0IGRZID0gcHJldkNlbnRlclkgLSBuZXh0Q2VudGVyWTtcXG4gICAgICAgIGNvbnN0IHJvdGF0ZWQgPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJvdGF0ZSkob2Zmc2V0WCwgb2Zmc2V0WSwgZFgsIGRZLCBlbGVtZW50LmFuZ2xlKTtcXG4gICAgICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ubXV0YXRlRWxlbWVudCkoZWxlbWVudCwgT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBvdGhlclVwZGF0ZXMpLCB7IHBvaW50czogbmV4dFBvaW50cywgeDogZWxlbWVudC54ICsgcm90YXRlZFswXSwgeTogZWxlbWVudC55ICsgcm90YXRlZFsxXSB9KSk7XFxuICAgIH1cXG59XFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuLy8gc3RhdGljIG1ldGhvZHNcXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG5MaW5lYXJFbGVtZW50RWRpdG9yLlBPSU5UX0hBTkRMRV9TSVpFID0gMjA7XFxuY29uc3Qgbm9ybWFsaXplU2VsZWN0ZWRQb2ludHMgPSAocG9pbnRzKSA9PiB7XFxuICAgIGxldCBuZXh0UG9pbnRzID0gW1xcbiAgICAgICAgLi4ubmV3IFNldChwb2ludHMuZmlsdGVyKChwKSA9PiBwICE9PSBudWxsICYmIHAgIT09IC0xKSksXFxuICAgIF07XFxuICAgIG5leHRQb2ludHMgPSBuZXh0UG9pbnRzLnNvcnQoKGEsIGIpID0+IGEgLSBiKTtcXG4gICAgcmV0dXJuIG5leHRQb2ludHMubGVuZ3RoID8gbmV4dFBvaW50cyA6IG51bGw7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlpXeGxiV1Z1ZEM5c2FXNWxZWEpGYkdWdFpXNTBSV1JwZEc5eUxuUnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPenRCUVU5M1JUdEJRVU16UWp0QlFVTkxPMEZCUlVZN1FVRkhZanRCUVV0b1FqdEJRVU54UWp0QlFVTlJPMEZCUlhwRExFMUJRVTBzYlVKQlFXMUNPMGxCYjBJNVFpeFpRVUZaTEU5QlFUUkRMRVZCUVVVc1MwRkJXVHRSUVVOd1JTeEpRVUZKTEVOQlFVTXNVMEZCVXl4SFFVRkhMRTlCUVU4c1EwRkJReXhGUVVWNFFpeERRVUZETzFGQlEwWXNjMFZCUVhWQ0xFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVNdlF5eHRRa0ZCYlVJc1EwRkJReXhsUVVGbExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZGTjBNc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVOc1F5eEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFZEJRVWNzU1VGQlNTeERRVUZETzFGQlEycERMRWxCUVVrc1EwRkJReXhWUVVGVkxFZEJRVWNzUzBGQlN5eERRVUZETzFGQlEzaENMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF6dFJRVU53UXl4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVkQlFVY3NUVUZCVFN4RFFVRkRPMUZCUTJ4RExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1IwRkJSeXhOUVVGTkxFTkJRVU03VVVGRGFFTXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeEhRVUZITzFsQlEzUkNMSGxDUVVGNVFpeEZRVUZGTEVsQlFVazdXVUZETDBJc1owSkJRV2RDTEVWQlFVVXNRMEZCUXl4RFFVRkRPMU5CUTNKQ0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlVVUTdPenRQUVVkSE8wbEJRMGdzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRjVSRHM3VVVGRGVrVXNUVUZCVFN4UFFVRlBMRWRCUVVjc2JVVkJRV01zUTBGQlF5eEZRVUZGTEVOQlFVTXNNRU5CUVVVc2IwSkJRVzlDTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkROMFFzU1VGQlNTeFBRVUZQTEVWQlFVVTdXVUZEV0N4UFFVRlBMRTlCUVRoRExFTkJRVU03VTBGRGRrUTdVVUZEUkN4UFFVRlBMRWxCUVVrc1EwRkJRenRKUVVOa0xFTkJRVU03U1VGRlJDeE5RVUZOTEVOQlFVTXNhMEpCUVd0Q0xFTkJRM1pDTEV0QlFXMUNMRVZCUTI1Q0xGRkJRV3RDTEVWQlEyeENMRkZCUVc5RU96dFJRVVZ3UkN4SlFVTkZMRU5CUVVNc1VVRkJVU3hEUVVGRExHOUNRVUZ2UWp0WlFVTTVRaXhsUVVGUkxFTkJRVU1zWlVGQlpTd3dRMEZCUlN4SlFVRkpMRTFCUVVzc1YwRkJWeXhGUVVNNVF6dFpRVU5CTEU5QlFVOHNTMEZCU3l4RFFVRkRPMU5CUTJRN1VVRkRSQ3hOUVVGTkxFVkJRVVVzYjBKQlFXOUNMRVZCUVVVc1IwRkJSeXhSUVVGUkxFTkJRVU03VVVGRE1VTXNUVUZCVFN4RlFVRkZMSEZDUVVGeFFpeEZRVUZGTEZOQlFWTXNSVUZCUlN4SFFVRkhMRzlDUVVGdlFpeERRVUZETzFGQlJXeEZMRTFCUVUwc1QwRkJUeXhIUVVGSExHMUNRVUZ0UWl4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU14UkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRk8xbEJRMW9zVDBGQlR5eExRVUZMTEVOQlFVTTdVMEZEWkR0UlFVVkVMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzVjBGQlZ5eEZRVUZGTEZkQlFWY3NSVUZCUlN4WFFVRlhMRU5CUVVNc1IwRkRlRVFzTWtSQlFYZENMRU5CUVVNc1VVRkJVU3hEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETzFGQlJYSkVMRTFCUVUwc2FVSkJRV2xDTEVkQlEzSkNMRzFDUVVGdFFpeERRVUZETERCQ1FVRXdRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlJURkVMRTFCUVUwc2EwSkJRV3RDTEVkQlFVY3NhVUpCUVdsQ0xFTkJRVU1zVFVGQlRTeERRVU5xUkN4RFFVRkRMRWRCUVdFc1JVRkJSU3hMUVVGTExFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVTdXVUZET1VJc1NVRkRSU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4WFFVRlhPMmRDUVVOMFFpeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1YwRkJWenRuUWtGRGRrSXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxGZEJRVmM3WjBKQlEzWkNMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFhRVUZYTEVOQlFVTTdaMEpCUXpGQ0xFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNTMEZCU1N4eFFrRkJjVUlzWVVGQmNrSXNjVUpCUVhGQ0xIVkNRVUZ5UWl4eFFrRkJjVUlzUTBGQlJTeFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVNc1JVRkRNVVE3WjBKQlEwRXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dGhRVU5xUWp0WlFVVkVMRTlCUVU4c1IwRkJSeXhEUVVGRE8xRkJRMklzUTBGQlF5eEZRVU5FTEVWQlFVVXNRMEZEU0N4RFFVRkRPMUZCUlVZc1VVRkJVU3hEUVVGRE8xbEJRMUFzYjBKQlFXOUNMR3REUVVObUxHOUNRVUZ2UWl4TFFVTjJRaXh4UWtGQmNVSXNSVUZCUlN4clFrRkJhMElzUTBGQlF5eE5RVUZOTzI5Q1FVTTVReXhEUVVGRExFTkJRVU1zYTBKQlFXdENPMjlDUVVOd1FpeERRVUZETEVOQlFVTXNTVUZCU1N4SFFVTlVPMU5CUTBZc1EwRkJReXhEUVVGRE8wbEJRMHdzUTBGQlF6dEpRVVZFTEhsRFFVRjVRenRKUVVONlF5eE5RVUZOTEVOQlFVTXNiVUpCUVcxQ0xFTkJRM2hDTEZGQlFXdENMRVZCUTJ4Q0xGRkJRVzlFTEVWQlEzQkVMR0ZCUVhGQ0xFVkJRM0pDTEdGQlFYRkNMRVZCUTNKQ0xHMUNRVWRUTzFGQlJWUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXh2UWtGQmIwSXNSVUZCUlR0WlFVTnNReXhQUVVGUExFdEJRVXNzUTBGQlF6dFRRVU5rTzFGQlEwUXNUVUZCVFN4RlFVRkZMRzlDUVVGdlFpeEZRVUZGTEVkQlFVY3NVVUZCVVN4RFFVRkRPMUZCUXpGRExFMUJRVTBzUlVGQlJTeHhRa0ZCY1VJc1JVRkJSU3hUUVVGVExFVkJRVVVzVlVGQlZTeEZRVUZGTEVkQlEzQkVMRzlDUVVGdlFpeERRVUZETzFGQlJYWkNMRTFCUVUwc1QwRkJUeXhIUVVGSExHMUNRVUZ0UWl4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU14UkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRk8xbEJRMW9zVDBGQlR5eExRVUZMTEVOQlFVTTdVMEZEWkR0UlFVVkVMREJFUVVFd1JEdFJRVU14UkN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVU5zUXl4dlFrRkJiMElzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhuUWtGQlowSXNRMEZEZGtJc1EwRkJRenRSUVVWc1F5eEpRVUZKTEhGQ1FVRnhRaXhKUVVGSkxHRkJRV0VzUlVGQlJUdFpRVU14UXl4SlFVRkpMRlZCUVZVc1MwRkJTeXhMUVVGTExFVkJRVVU3WjBKQlEzaENMRkZCUVZFc1EwRkJRenR2UWtGRFVDeHZRa0ZCYjBJc2EwTkJRMllzYjBKQlFXOUNMRXRCUTNaQ0xGVkJRVlVzUlVGQlJTeEpRVUZKTEVkQlEycENPMmxDUVVOR0xFTkJRVU1zUTBGQlF6dGhRVU5LTzFsQlJVUXNUVUZCVFN4M1FrRkJkMElzUjBGQlJ5eHRRa0ZCYlVJc1EwRkJReXhoUVVGaExFTkJRMmhGTEU5QlFVOHNSVUZEVUN4aFFVRmhMRWRCUVVjc2IwSkJRVzlDTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNc1JVRkRjRVFzWVVGQllTeEhRVUZITEc5Q1FVRnZRaXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEVWQlEzQkVMRkZCUVZFc1EwRkJReXhSUVVGUkxFTkJRMnhDTEVOQlFVTTdXVUZGUml4TlFVRk5MRTFCUVUwc1IwRkJSeXgzUWtGQmQwSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhoUVVGaExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZET1VRc1RVRkJUU3hOUVVGTkxFZEJRVWNzZDBKQlFYZENMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUlRsRUxHMUNRVUZ0UWl4RFFVRkRMRlZCUVZVc1EwRkROVUlzVDBGQlR5eEZRVU5RTEhGQ1FVRnhRaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZWQlFWVXNSVUZCUlN4RlFVRkZPMmRDUVVOMlF5eE5RVUZOTEdkQ1FVRm5RaXhIUVVOd1FpeFZRVUZWTzI5Q1FVTldMRzlDUVVGdlFpeERRVUZETEdkQ1FVRm5RaXhEUVVGRExHZENRVUZuUWp0dlFrRkRjRVFzUTBGQlF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExHRkJRV0VzUTBGREwwSXNUMEZCVHl4RlFVTlFMR0ZCUVdFc1IwRkJSeXh2UWtGQmIwSXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhGUVVOd1JDeGhRVUZoTEVkQlFVY3NiMEpCUVc5Q0xFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNSVUZEY0VRc1VVRkJVU3hEUVVGRExGRkJRVkVzUTBGRGJFSTdiMEpCUTBnc1EwRkJReXhEUVVGRk8zZENRVU5ETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NUVUZCVFR0M1FrRkRkRU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eE5RVUZOTzNGQ1FVTTNRaXhEUVVGRE8yZENRVU5zUWl4UFFVRlBPMjlDUVVOTUxFdEJRVXNzUlVGQlJTeFZRVUZWTzI5Q1FVTnFRaXhMUVVGTExFVkJRVVVzWjBKQlFXZENPMjlDUVVOMlFpeFZRVUZWTEVWQlExSXNWVUZCVlR0M1FrRkRWaXh2UWtGQmIwSXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eG5Ra0ZCWjBJN2FVSkJRM3BFTEVOQlFVTTdXVUZEU2l4RFFVRkRMRU5CUVVNc1EwRkRTQ3hEUVVGRE8xbEJSVVlzZDBSQlFYZEVPMWxCUTNoRUxFbEJRVWtzTmtSQlFXZENMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVU3WjBKQlF6ZENMRTFCUVUwc1RVRkJUU3hIUVVFclFpeEZRVUZGTEVOQlFVTTdaMEpCUlRsRExFMUJRVTBzYTBKQlFXdENMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRM0JFTEVsQlFVa3NhMEpCUVd0Q0xFdEJRVXNzUTBGQlF5eEZRVUZGTzI5Q1FVTTFRaXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVU5VTEc5RVFVRlpMRU5CUTFZc2JVSkJRVzFDTEVOQlFVTXNlVUpCUVhsQ0xFTkJRek5ETEU5QlFVOHNSVUZEVUN4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVU5zUWl4RFFVTkdMRU5CUTBZc1EwRkJRenRwUWtGRFNEdG5Ra0ZGUkN4TlFVRk5MR2xDUVVGcFFpeEhRVU55UWl4eFFrRkJjVUlzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUXpGRUxFbEJRVWtzYVVKQlFXbENMRXRCUVVzc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZPMjlDUVVOdVJDeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVTlVMRzlFUVVGWkxFTkJRMVlzYlVKQlFXMUNMRU5CUVVNc2VVSkJRWGxDTEVOQlF6TkRMRTlCUVU4c1JVRkRVQ3hQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRMnhETEVOQlEwWXNRMEZEUml4RFFVRkRPMmxDUVVOSU8yZENRVVZFTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1JVRkJSVHR2UWtGRGFrSXNiVUpCUVcxQ0xFTkJRVU1zVDBGQlR5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMmxDUVVOMFF6dGhRVU5HTzFsQlJVUXNUMEZCVHl4SlFVRkpMRU5CUVVNN1UwRkRZanRSUVVWRUxFOUJRVThzUzBGQlN5eERRVUZETzBsQlEyWXNRMEZCUXp0SlFVVkVMRTFCUVUwc1EwRkJReXhsUVVGbExFTkJRM0JDTEV0QlFXMUNMRVZCUTI1Q0xHOUNRVUY1UXl4RlFVTjZReXhSUVVGclFqczdVVUZGYkVJc1RVRkJUU3hGUVVGRkxGTkJRVk1zUlVGQlJTeHhRa0ZCY1VJc1JVRkJSU3hWUVVGVkxFVkJRVVVzWjBKQlFXZENMRVZCUVVVc1IwRkRkRVVzYjBKQlFXOUNMRU5CUVVNN1VVRkRka0lzVFVGQlRTeFBRVUZQTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zVlVGQlZTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMUZCUXpGRUxFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVTdXVUZEV2l4UFFVRlBMRzlDUVVGdlFpeERRVUZETzFOQlF6ZENPMUZCUlVRc1RVRkJUU3hSUVVGUkxFZEJTMVlzUlVGQlJTeERRVUZETzFGQlJWQXNTVUZCU1N4VlFVRlZMRWxCUVVrc2NVSkJRWEZDTEVWQlFVVTdXVUZEZGtNc1MwRkJTeXhOUVVGTkxHRkJRV0VzU1VGQlNTeHhRa0ZCY1VJc1JVRkJSVHRuUWtGRGFrUXNTVUZEUlN4aFFVRmhMRXRCUVVzc1EwRkJRenR2UWtGRGJrSXNZVUZCWVN4TFFVRkxMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNSVUZETTBNN2IwSkJRMEVzU1VGQlNTeHJSRUZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFVkJRVVVzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSVHQzUWtGRGNFUXNiVUpCUVcxQ0xFTkJRVU1zVlVGQlZTeERRVUZETEU5QlFVOHNSVUZCUlRzMFFrRkRkRU03WjBOQlEwVXNTMEZCU3l4RlFVRkZMR0ZCUVdFN1owTkJRM0JDTEV0QlFVc3NSVUZEU0N4aFFVRmhMRXRCUVVzc1EwRkJRenR2UTBGRGFrSXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRE8yOURRVU16UXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTTdOa0pCUTNoQ08zbENRVU5HTEVOQlFVTXNRMEZCUXp0eFFrRkRTanR2UWtGRlJDeE5RVUZOTEdOQlFXTXNSMEZCUnl3d1JFRkJaMElzUTBGQlF5eFJRVUZSTEVOQlFVTTdkMEpCUXk5RExFTkJRVU1zUTBGQlF5eHhSVUZCTWtJc1EwRkRla0lzYjBSQlFWa3NRMEZEVml4dFFrRkJiVUlzUTBGQlF5eG5RMEZCWjBNc1EwRkRiRVFzVDBGQlR5eEZRVU5RTEdGQlFXTXNRMEZEWml4RFFVTkdMRVZCUTBRc05rUkJRV01zUTBGQlF5eFBRVUZQTEVOQlFVVXNRMEZEZWtJN2QwSkJRMGdzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXp0dlFrRkZWQ3hSUVVGUkxFTkJRMDRzWVVGQllTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRzFDUVVGdFFpeERRVU5zUlN4SFFVRkhMR05CUVdNc1EwRkJRenRwUWtGRGNFSTdZVUZEUmp0VFFVTkdPMUZCUlVRc2NVUkJRMHNzYjBKQlFXOUNMRWRCUTNCQ0xGRkJRVkU3V1VGRFdDeHpSVUZCYzBVN1dVRkRkRVVzZFVWQlFYVkZPMWxCUTNaRkxHOUNRVUZ2UWp0WlFVTndRaXh4UWtGQmNVSXNSVUZEYmtJc1ZVRkJWU3hKUVVGSkxFdEJRVXNzUTBGQlF5eFJRVUZSTzJkQ1FVTXhRaXhEUVVGRExFTkJRVU1zUTBGQlF5eFZRVUZWTzI5Q1FVTllMRXRCUVVzc1EwRkJReXhSUVVGUk8zRkNRVU5rTEhOQ1FVRm5RaXhEUVVGRExIbENRVUY1UWl3d1EwRkJSU3hSUVVGUkxFTkJRMnhFTEdkQ1FVRm5RaXhEUVVGRExHZENRVUZuUWl4RFFVTnNRenR2UWtGRFJDeERRVUZETEVOQlFVTXNjVUpCUVhGQ08zZENRVU55UWl4eFFrRkJjVUlzUTBGQlF5eE5RVUZOTEVOQlF6RkNMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUTBGRFlpeFZRVUZWTEV0QlFVc3NaMEpCUVdkQ0xFTkJRVU1zWjBKQlFXZENMRU5CUTI1RU8yOUNRVU5JTEVOQlFVTXNRMEZCUXl4eFFrRkJjVUk3WjBKQlEzcENMRU5CUVVNc1EwRkJReXh6UWtGQmNVSXNZVUZCY2tJc2NVSkJRWEZDTEhWQ1FVRnlRaXh4UWtGQmNVSXNRMEZCUlN4UlFVRlJMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03YjBKQlEzQkZMRU5CUVVNc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMR2RDUVVGblFpeERRVUZETzI5Q1FVTnlReXhEUVVGRExFTkJRVU1zY1VKQlFYRkNMRVZCUXpOQ0xGVkJRVlVzUlVGQlJTeExRVUZMTEVWQlEycENMR0ZCUVdFc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hKUVVNM1FqdEpRVU5LTEVOQlFVTTdTVUZGUkN4TlFVRk5MRU5CUVVNc2FVSkJRV2xDTEVOQlEzUkNMRXRCUVRSRExFVkJRelZETEZGQlFXdENMRVZCUTJ4Q0xGRkJRVzlFTEVWQlEzQkVMRTlCUVdkQ0xFVkJRMmhDTEZsQlFYTkRPenRSUVV0MFF5eE5RVUZOTEVkQlFVY3NSMEZCWjBVN1dVRkRka1VzVjBGQlZ5eEZRVUZGTEV0QlFVczdXVUZEYkVJc1ZVRkJWU3hGUVVGRkxFbEJRVWs3VTBGRGFrSXNRMEZCUXp0UlFVVkdMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zYjBKQlFXOUNMRVZCUVVVN1dVRkRiRU1zVDBGQlR5eEhRVUZITEVOQlFVTTdVMEZEV2p0UlFVVkVMRTFCUVUwc1JVRkJSU3hUUVVGVExFVkJRVVVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU03VVVGRGNFUXNUVUZCVFN4UFFVRlBMRWRCUVVjc2JVSkJRVzFDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJSVEZFTEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVN1dVRkRXaXhQUVVGUExFZEJRVWNzUTBGQlF6dFRRVU5hTzFGQlJVUXNTVUZCU1N4TFFVRkxMRU5CUVVNc1RVRkJUU3hGUVVGRk8xbEJRMmhDTEVsQlFVa3NVVUZCVVN4RFFVRkRMRzlDUVVGdlFpeERRVUZETEc5Q1FVRnZRaXhKUVVGSkxFbEJRVWtzUlVGQlJUdG5Ra0ZET1VRc05rUkJRV0VzUTBGQlF5eFBRVUZQTEVWQlFVVTdiMEpCUTNKQ0xFMUJRVTBzUlVGQlJUdDNRa0ZEVGl4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTk8zZENRVU5xUWl4dFFrRkJiVUlzUTBGQlF5eGhRVUZoTEVOQlF5OUNMRTlCUVU4c1JVRkRVQ3haUVVGWkxFTkJRVU1zUTBGQlF5eEZRVU5rTEZsQlFWa3NRMEZCUXl4RFFVRkRMRVZCUTJRc1VVRkJVU3hEUVVGRExGRkJRVkVzUTBGRGJFSTdjVUpCUTBZN2FVSkJRMFlzUTBGQlF5eERRVUZETzJGQlEwbzdXVUZEUkN4UFFVRlBMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU03V1VGRE1VSXNVVUZCVVN4RFFVRkRPMmRDUVVOUUxHOUNRVUZ2UWl4clEwRkRaaXhSUVVGUkxFTkJRVU1zYjBKQlFXOUNMRXRCUTJoRExHZENRVUZuUWl4RlFVRkZPM2RDUVVOb1FpeDVRa0ZCZVVJc1JVRkRka0lzVVVGQlVTeERRVUZETEc5Q1FVRnZRaXhEUVVGRExIRkNRVUZ4UWp0M1FrRkRja1FzWjBKQlFXZENMRVZCUVVVc1EwRkJReXhEUVVGRE8zRkNRVU55UWl4RlFVTkVMSEZDUVVGeFFpeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVWQlEyeEVMRzlDUVVGdlFpeEZRVUZGTEVsQlFVa3NSVUZETVVJc2FVSkJRV2xDTEVWQlFVVXNjVVZCUVRKQ0xFTkJRelZETEZsQlFWa3NSVUZEV2l3MlJFRkJZeXhEUVVGRExFOUJRVThzUTBGQlJTeERRVU42UWl4SFFVTkdPMkZCUTBZc1EwRkJReXhEUVVGRE8xbEJRMGdzUjBGQlJ5eERRVUZETEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNN1dVRkRka0lzVDBGQlR5eEhRVUZITEVOQlFVTTdVMEZEV2p0UlFVVkVMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zZDBKQlFYZENMRU5CUTNCRkxFOUJRVThzUlVGRFVDeFJRVUZSTEVOQlFVTXNTVUZCU1N4RlFVTmlMRmxCUVZrc1EwRkJReXhEUVVGRExFVkJRMlFzV1VGQldTeERRVUZETEVOQlFVTXNRMEZEWml4RFFVRkRPMUZCUlVZc2IwVkJRVzlGTzFGQlEzQkZMR3RGUVVGclJUdFJRVU5zUlN4SlFVRkpMR2xDUVVGcFFpeEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZPMWxCUXpGQ0xFZEJRVWNzUTBGQlF5eFZRVUZWTEVkQlFVY3NUMEZCVHl4RFFVRkRPMU5CUXpGQ08yRkJRVTA3V1VGRFRDeHZSVUZCYjBVN1dVRkRjRVVzYzBWQlFYTkZPMWxCUTNSRkxEQkZRVUV3UlR0WlFVTXhSU3gxUlVGQmRVVTdXVUZEZGtVc1kwRkJZenRaUVVOa0xFMUJRVTBzUlVGQlJTeHRRa0ZCYlVJc1JVRkJSU3hwUWtGQmFVSXNSVUZCUlN4SFFVTTVReXhSUVVGUkxFTkJRVU1zYjBKQlFXOUNMRU5CUVVNN1dVRkRhRU1zU1VGQlNTd3dSRUZCWjBJc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTdzJSRUZCWjBJc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdG5Ra0ZETTBRc2JVVkJRWGxDTEVOQlEzWkNMRTlCUVU4c1JVRkRVQ3h0UWtGQmJVSXNSVUZEYmtJc2FVSkJRV2xDTEVOQlEyeENMRU5CUVVNN1lVRkRTRHRUUVVOR08xRkJSVVFzVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITERKRVFVRjNRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlF6TkVMRTFCUVUwc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVONlFpeE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZWtJc1RVRkJUU3hYUVVGWExFZEJRMllzYVVKQlFXbENMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRM1JDTERaRFFVRk5MRU5CUTBvc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUTJoRUxFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVOb1JDeEZRVUZGTEVWQlEwWXNSVUZCUlN4RlFVTkdMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRMlFzUTBGQlF6dFJRVVZLTEUxQlFVMHNlVUpCUVhsQ0xFZEJRemRDTEdsQ1FVRnBRaXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UlFVRlJPMWxCUTNSRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVR0cFFrRkRaQ3hqUVVGUkxFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc2NVSkJRWEZDTERCRFFVRkZMRkZCUVZFc1EwRkRNMFFzYVVKQlFXbENMRU5CUTJ4Q08yZENRVU5FTEVOQlFVTXNRMEZCUXl4MVFrRkJkVUlzUTBGQlF6dHZRa0ZEZEVJc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXh4UWtGQmNVSXNTVUZCU1N4RlFVRkZMRU5CUVVNN2IwSkJRemxFTEdsQ1FVRnBRanRwUWtGRGJFSXNRMEZCUXp0blFrRkRTaXhEUVVGRExFTkJRVU1zUTBGQlF5eHBRa0ZCYVVJc1EwRkJRenRaUVVOMlFpeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUlZnc1VVRkJVU3hEUVVGRE8xbEJRMUFzYjBKQlFXOUNMR3REUVVObUxGRkJRVkVzUTBGQlF5eHZRa0ZCYjBJc1MwRkRhRU1zWjBKQlFXZENMRVZCUVVVN2IwSkJRMmhDTEhsQ1FVRjVRaXhGUVVOMlFpeFJRVUZSTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zY1VKQlFYRkNPMjlDUVVOeVJDeG5Ra0ZCWjBJc1JVRkJSU3hwUWtGQmFVSTdhVUpCUTNCRExFVkJRMFFzY1VKQlFYRkNMRVZCUVVVc2VVSkJRWGxDTEVWQlEyaEVMR0ZCUVdFc1JVRkJSU3hYUVVGWE8yOUNRVU40UWl4RFFVRkRMRU5CUVVNN2QwSkJRMFVzUTBGQlF5eEZRVUZGTEZsQlFWa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF6dDNRa0ZEYkVNc1EwRkJReXhGUVVGRkxGbEJRVmtzUTBGQlF5eERRVUZETEVkQlFVY3NWMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJRenR4UWtGRGJrTTdiMEpCUTBnc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFZEJRMjVDTzFOQlEwWXNRMEZCUXl4RFFVRkRPMUZCUTBnc1QwRkJUeXhIUVVGSExFTkJRVU03U1VGRFlpeERRVUZETzBsQlJVUXNUVUZCVFN4RFFVRkRMR2xDUVVGcFFpeERRVU4wUWl4TFFVRTBReXhGUVVNMVF5eGhRVUZ4UWl4RlFVTnlRaXhoUVVGeFFpeEZRVU55UWl4dlFrRkJlVU1zUlVGRGVrTXNVVUZCZFVJN1VVRkZka0lzVFVGQlRTeEZRVUZGTEZOQlFWTXNSVUZCUlN4dlFrRkJiMElzUlVGQlJTeEhRVUZITEc5Q1FVRnZRaXhEUVVGRE8xRkJRMnBGTEUxQlFVMHNUMEZCVHl4SFFVRkhMRzFDUVVGdFFpeERRVUZETEZWQlFWVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVNeFJDeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZPMWxCUTFvc1QwRkJUeXh2UWtGQmIwSXNRMEZCUXp0VFFVTTNRanRSUVVWRUxFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNN1VVRkRNMElzVFVGQlRTeFRRVUZUTEVkQlFVY3NUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGTlVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVWQlFVVTdXVUZEYWtJc1NVRkJTU3hUUVVGVExFdEJRVXNzYjBKQlFXOUNMRVZCUVVVN1owSkJRM1JETEcxQ1FVRnRRaXhEUVVGRExGbEJRVmtzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdZVUZEYUVVN1dVRkRSQ3gxUTBGQldTeHZRa0ZCYjBJc1MwRkJSU3h2UWtGQmIwSXNSVUZCUlN4SlFVRkpMRWxCUVVjN1UwRkRhRVU3VVVGRlJDeE5RVUZOTEZGQlFWRXNSMEZCUnl4dFFrRkJiVUlzUTBGQlF5eGhRVUZoTEVOQlEyaEVMRTlCUVU4c1JVRkRVQ3hoUVVGaExFZEJRVWNzYjBKQlFXOUNMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU1zUlVGRGNFUXNZVUZCWVN4SFFVRkhMRzlDUVVGdlFpeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRVZCUTNCRUxGRkJRVkVzUTBGRFZDeERRVUZETzFGQlJVWXNTVUZCU1N4VFFVRlRMRXRCUVVzc2IwSkJRVzlDTEVWQlFVVTdXVUZEZEVNc2JVSkJRVzFDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRTlCUVU4c1JVRkJSVHRuUWtGRGRFTTdiMEpCUTBVc1MwRkJTeXhGUVVGRkxFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNN2IwSkJRMmhETEV0QlFVc3NSVUZCUlN4UlFVRlJPMmxDUVVOb1FqdGhRVU5HTEVOQlFVTXNRMEZCUXp0VFFVTktPMkZCUVUwN1dVRkRUQ3h0UWtGQmJVSXNRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFVVXNVVUZCVVN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xTkJReTlFTzFGQlJVUXNkVU5CUTBzc2IwSkJRVzlDTEV0QlEzWkNMRzlDUVVGdlFpeEZRVUZGTEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWxCUXk5RU8wbEJRMG9zUTBGQlF6dEpRVVZFTEcxQ1FVRnRRanRKUVVOdVFpeE5RVUZOTEVOQlFVTXNlVUpCUVhsQ0xFTkJRemxDTEU5QlFUUkRMRVZCUXpWRExFdEJRVms3VVVGRldpeE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NNa1JCUVhkQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZETTBRc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM3BDTEUxQlFVMHNSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVVjZRaXhKUVVGSkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJRenRSUVVOMlFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXcyUTBGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVOdVJTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJWU3hEUVVGRE8wbEJRM3BDTEVOQlFVTTdTVUZGUkN4dFFrRkJiVUk3U1VGRGJrSXNUVUZCVFN4RFFVRkRMREJDUVVFd1FpeERRVU12UWl4UFFVRTBRenRSUVVVMVF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NNa1JCUVhkQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZETTBRc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM3BDTEUxQlFVMHNSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTjZRaXhQUVVGUExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVU3V1VGRGJFTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTTdXVUZEZGtJc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NOa05CUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdXVUZEYmtVc1QwRkJUeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTm9RaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5NTEVOQlFVTTdTVUZGUkN4TlFVRk5MRU5CUVVNc1owTkJRV2RETEVOQlEzSkRMRTlCUVRSRExFVkJRelZETEdsQ1FVRjVRanRSUVVWNlFpeE5RVUZOTEV0QlFVc3NSMEZEVkN4cFFrRkJhVUlzUjBGQlJ5eERRVUZETzFsQlEyNUNMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNSMEZCUnl4cFFrRkJhVUk3V1VGRE0wTXNRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeERRVUZETzFGQlEzaENMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXd5UkVGQmQwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVNelJDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZWtJc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJSWHBDTEUxQlFVMHNTMEZCU3l4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEY0VNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNN1VVRkRla0lzVDBGQlR5dzJRMEZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU51UlN4RFFVRkRPMGxCUlVRc1RVRkJUU3hEUVVGRExIVkNRVUYxUWl4RFFVTTFRaXhQUVVFMFF5eEZRVU0xUXl4alFVRnhRanRSUVVWeVFpeE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NNa1JCUVhkQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZETTBRc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM3BDTEUxQlFVMHNSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTjZRaXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SFFVRkhMRFpEUVVGTkxFTkJRMjVDTEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkRha0lzWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVTnFRaXhGUVVGRkxFVkJRMFlzUlVGQlJTeEZRVU5HTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkRaaXhEUVVGRE8xRkJRMFlzVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRlRU1zUTBGQlF6dEpRVVZFTEUxQlFVMHNRMEZCUXl4M1FrRkJkMElzUTBGRE4wSXNUMEZCTkVNc1JVRkROVU1zU1VGQmMwSXNSVUZEZEVJc1EwRkJVeXhGUVVOVUxFTkJRVk03VVVGRlZDeE5RVUZOTEZsQlFWa3NSMEZCUnl4SlFVRkpMRU5CUVVNc01FSkJRVEJDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRPVVFzU1VGQlNTeEhRVUZITEVkQlFVY3NXVUZCV1N4RFFVRkRMRTFCUVUwc1EwRkJRenRSUVVNNVFpeDNSVUZCZDBVN1VVRkRlRVVzZVVWQlFYbEZPMUZCUTNwRkxGVkJRVlU3VVVGRFZpeFBRVUZQTEVWQlFVVXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRk8xbEJRMnBDTEUxQlFVMHNTMEZCU3l4SFFVRkhMRmxCUVZrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU5vUXl4SlFVTkZMR2xFUVVGVkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXM3WjBKQlEycEVMSEZEUVVGeFF6dG5Ra0ZEY2tNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRemxDTzJkQ1FVTkJMRTlCUVU4c1IwRkJSeXhEUVVGRE8yRkJRMW83VTBGRFJqdFJRVU5FTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRXaXhEUVVGRE8wbEJSVVFzVFVGQlRTeERRVUZETEdGQlFXRXNRMEZEYkVJc1QwRkJORU1zUlVGRE5VTXNZVUZCY1VJc1JVRkRja0lzWVVGQmNVSXNSVUZEY2tJc1VVRkJkVUk3VVVGRmRrSXNUVUZCVFN4aFFVRmhMRWRCUVVjc2JVUkJRVmtzUTBGQlF5eGhRVUZoTEVWQlFVVXNZVUZCWVN4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRek5GTEUxQlFVMHNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl3eVJFRkJkMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTXpSQ3hOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGVrSXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNwQ0xFMUJRVTBzUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RFFVRkRMRWRCUVVjc05rTkJRVTBzUTBGRGFrTXNZVUZCWVN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVOb1FpeGhRVUZoTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUTJoQ0xFVkJRVVVzUlVGRFJpeEZRVUZGTEVWQlEwWXNRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVObUxFTkJRVU03VVVGRlJpeFBRVUZQTEVOQlFVTXNVVUZCVVN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFVkJRVVVzVVVGQlVTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOMFJDeERRVUZETzBsQlJVUTdPenM3VDBGSlJ6dEpRVU5JTEUxQlFVMHNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eFBRVUZuUXp0UlFVTjZSQ3hOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRPMUZCUlROQ0xFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU0zUWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZOMElzVDBGQlR6dFpRVU5NTEUxQlFVMHNSVUZCUlN4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZPMmRDUVVOcVF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFOUJRVThzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGVkxFTkJRVU03V1VGRE0wUXNRMEZCUXl4RFFVRkRPMWxCUTBZc1EwRkJReXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NUMEZCVHp0WlFVTjBRaXhEUVVGRExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4UFFVRlBPMU5CUTNaQ0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNNa0pCUVRKQ08wbEJRek5DTERoRlFVRTRSVHRKUVVVNVJTeE5RVUZOTEVOQlFVTXNaVUZCWlN4RFFVRkRMRTlCUVRSRE8xRkJRMnBGTERaRVFVRmhMRU5CUVVNc1QwRkJUeXhGUVVGRkxHMUNRVUZ0UWl4RFFVRkRMRzFDUVVGdFFpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRNMFVzUTBGQlF6dEpRVVZFTEUxQlFVMHNRMEZCUXl4MVFrRkJkVUlzUTBGQlF5eFJRVUZyUWp0UlFVTXZReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEc5Q1FVRnZRaXhGUVVGRk8xbEJRMnhETEU5QlFVOHNTMEZCU3l4RFFVRkRPMU5CUTJRN1VVRkZSQ3hOUVVGTkxFVkJRVVVzY1VKQlFYRkNMRVZCUVVVc1UwRkJVeXhGUVVGRkxFZEJRVWNzVVVGQlVTeERRVUZETEc5Q1FVRnZRaXhEUVVGRE8xRkJSVE5GTEUxQlFVMHNUMEZCVHl4SFFVRkhMRzFDUVVGdFFpeERRVUZETEZWQlFWVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVVeFJDeEpRVUZKTEVOQlFVTXNUMEZCVHl4SlFVRkpMSEZDUVVGeFFpeExRVUZMTEVsQlFVa3NSVUZCUlR0WlFVTTVReXhQUVVGUExFdEJRVXNzUTBGQlF6dFRRVU5rTzFGQlJVUXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF6dFJRVVV6UWl4TlFVRk5MRzFDUVVGdFFpeEhRVUZoTEVWQlFVVXNRMEZCUXp0UlFVVjZReXhKUVVGSkxHVkJRV1VzUjBGQlJ5eExRVUZMTEVOQlFVTTdVVUZETlVJc1NVRkJTU3hYUVVGWExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY2tJc1RVRkJUU3hWUVVGVkxFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVZrc1JVRkJSU3hMUVVGTExFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVTdXVUZET1VRc1JVRkJSU3hYUVVGWExFTkJRVU03V1VGRFpDeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xbEJSV2hDTEUxQlFVMHNWVUZCVlN4SFFVRkhMSEZDUVVGeFFpeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRaUVVONlJDeEpRVUZKTEZWQlFWVXNSVUZCUlR0blFrRkRaQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVVZ3UXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRk8yOUNRVU5rTEdWQlFXVXNSMEZCUnl4SlFVRkpMRU5CUVVNN2FVSkJRM2hDTzJkQ1FVTkVMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRMDRzVTBGQlV6dHZRa0ZEVUN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yOUNRVU5vUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRM3BDTEVOQlFVTTdaMEpCUlVZc2JVSkJRVzFDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZETVVNc1JVRkJSU3hYUVVGWExFTkJRVU03WVVGRFpqdFpRVVZFTEU5QlFVOHNSMEZCUnl4RFFVRkRPMUZCUTJJc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlJWQXNOa1JCUVdFc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeE5RVUZOTEVWQlFVVXNWVUZCVlN4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVVdlF5d3dSVUZCTUVVN1VVRkRNVVVzZVVOQlFYbERPMUZCUTNwRExFbEJRVWtzWlVGQlpTeEZRVUZGTzFsQlEyNUNMRTFCUVUwc1UwRkJVeXhIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZETlVRc2JVSkJRVzFDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRTlCUVU4c1JVRkJSVHRuUWtGRGRFTTdiMEpCUTBVc1MwRkJTeXhGUVVGRkxFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNN2IwSkJRMmhETEV0QlFVc3NSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dHBRa0ZET1VNN1lVRkRSaXhEUVVGRExFTkJRVU03VTBGRFNqdFJRVVZFTEU5QlFVODdXVUZEVEN4UlFVRlJMR3REUVVOSUxGRkJRVkVzUzBGRFdDeHZRa0ZCYjBJc2EwTkJRMllzVVVGQlVTeERRVUZETEc5Q1FVRnZRaXhMUVVOb1F5eHhRa0ZCY1VJc1JVRkJSU3h0UWtGQmJVSXNUVUZGTjBNN1UwRkRSaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUTJwQ0xFOUJRVFJETEVWQlF6VkRMRmxCUVN0Q08xRkJSUzlDTEVsQlFVa3NUMEZCVHl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOb1FpeEpRVUZKTEU5QlFVOHNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkZhRUlzVFVGQlRTeHhRa0ZCY1VJc1IwRkJSeXhaUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlhaRUxIRkZRVUZ4UlR0UlFVTnlSU3d5UTBGQk1rTTdVVUZETTBNc1NVRkJTU3h4UWtGQmNVSXNSVUZCUlR0WlFVTjZRaXhOUVVGTkxHOUNRVUZ2UWl4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8yZENRVU01UkN4UFFVRlBMRU5CUVVNc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTnlReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5JTEVsQlFVa3NiMEpCUVc5Q0xFVkJRVVU3WjBKQlEzaENMRTlCUVU4c1IwRkJSeXh2UWtGQmIwSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGJFTXNUMEZCVHl4SFFVRkhMRzlDUVVGdlFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTI1RE8xTkJRMFk3VVVGRlJDeE5RVUZOTEZWQlFWVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFWa3NSVUZCUlN4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVU3V1VGRGNFVXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVTdaMEpCUXk5Q0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlEwNHNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1QwRkJUeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkRhRVVzUTBGQlF6dGhRVU5JTzFsQlEwUXNUMEZCVHl4SFFVRkhMRU5CUVVNN1VVRkRZaXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZGVUN4dFFrRkJiVUlzUTBGQlF5eGhRVUZoTEVOQlFVTXNUMEZCVHl4RlFVRkZMRlZCUVZVc1JVRkJSU3hQUVVGUExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZETTBVc1EwRkJRenRKUVVWRUxFMUJRVTBzUTBGQlF5eFRRVUZUTEVOQlEyUXNUMEZCTkVNc1JVRkROVU1zV1VGQlowTTdVVUZGYUVNc1RVRkJUU3hQUVVGUExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEyeENMRTFCUVUwc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVVZzUWl4TlFVRk5MRlZCUVZVc1IwRkJSeXhEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRmxCUVZrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJUVkZMRzFDUVVGdFFpeERRVUZETEdGQlFXRXNRMEZCUXl4UFFVRlBMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFOUJRVThzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTXpSU3hEUVVGRE8wbEJSVVFzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZEWml4UFFVRTBReXhGUVVNMVF5eFpRVUZ4UlN4RlFVTnlSU3haUVVGNVJUdFJRVVY2UlN4TlFVRk5MRVZCUVVVc1RVRkJUU3hGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETzFGQlJUTkNMSE5GUVVGelJUdFJRVU4wUlN4blJVRkJaMFU3VVVGRGFFVXNOa1JCUVRaRU8xRkJRemRFTEdsRlFVRnBSVHRSUVVOcVJTeHhSRUZCY1VRN1VVRkRja1FzU1VGQlNTeFBRVUZQTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTJoQ0xFbEJRVWtzVDBGQlR5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVVm9RaXhOUVVGTkxHMUNRVUZ0UWl4SFFVRkhMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhMUVVGTExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGTVVVc1NVRkJTU3h0UWtGQmJVSXNSVUZCUlR0WlFVTjJRaXhQUVVGUE8yZENRVU5NTEcxQ1FVRnRRaXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGRFVXNUMEZCVHp0blFrRkRUQ3h0UWtGQmJVSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUTNaRk8xRkJSVVFzVFVGQlRTeFZRVUZWTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0WlFVTXpReXhOUVVGTkxHbENRVUZwUWl4SFFVRkhMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZEY0VVc1NVRkJTU3hwUWtGQmFVSXNSVUZCUlR0blFrRkRja0lzU1VGQlNTeHRRa0ZCYlVJc1JVRkJSVHR2UWtGRGRrSXNUMEZCVHl4TFFVRkxMRU5CUVVNN2FVSkJRMlE3WjBKQlJVUXNUVUZCVFN4TlFVRk5MRWRCUTFZc2FVSkJRV2xDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRiRVVzVFVGQlRTeE5RVUZOTEVkQlExWXNhVUpCUVdsQ0xFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZGYkVVc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEUxQlFVMHNRMEZCVlN4RFFVRkRPMkZCUTNoRU8xbEJRMFFzVDBGQlR5eFBRVUZQTEVsQlFVa3NUMEZCVHp0blFrRkRka0lzUTBGQlF5eERRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFOUJRVThzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGWE8yZENRVU55UkN4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRMW9zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGU0N4dFFrRkJiVUlzUTBGQlF5eGhRVUZoTEVOQlF5OUNMRTlCUVU4c1JVRkRVQ3hWUVVGVkxFVkJRMVlzVDBGQlR5eEZRVU5RTEU5QlFVOHNSVUZEVUN4WlFVRlpMRU5CUTJJc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlR5eE5RVUZOTEVOQlFVTXNZVUZCWVN4RFFVTXhRaXhQUVVFMFF5eEZRVU0xUXl4VlFVRTBRaXhGUVVNMVFpeFBRVUZsTEVWQlEyWXNUMEZCWlN4RlFVTm1MRmxCUVhsRk8xRkJSWHBGTEUxQlFVMHNWVUZCVlN4SFFVRkhMQ3RFUVVGelFpeERRVU4yUXl4UFFVRlBMRVZCUTFBc1ZVRkJWU3hGUVVOV0xFOUJRVThzUTBGQlF5eGxRVUZsTEVsQlFVa3NUMEZCVHl4RFFVTnVReXhEUVVGRE8xRkJRMFlzVFVGQlRTeFZRVUZWTEVkQlFVY3NLMFJCUVhOQ0xFTkJRM1pETEU5QlFVOHNSVUZEVUN4UFFVRlBMRU5CUVVNc1RVRkJUU3hGUVVOa0xFOUJRVThzUTBGQlF5eGxRVUZsTEVsQlFVa3NUMEZCVHl4RFFVTnVReXhEUVVGRE8xRkJRMFlzVFVGQlRTeFhRVUZYTEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM2hFTEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU40UkN4TlFVRk5MRmRCUVZjc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZUVRc1RVRkJUU3hYUVVGWExFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNoRUxFMUJRVTBzUlVGQlJTeEhRVUZITEZkQlFWY3NSMEZCUnl4WFFVRlhMRU5CUVVNN1VVRkRja01zVFVGQlRTeEZRVUZGTEVkQlFVY3NWMEZCVnl4SFFVRkhMRmRCUVZjc1EwRkJRenRSUVVOeVF5eE5RVUZOTEU5QlFVOHNSMEZCUnl3MlEwRkJUU3hEUVVGRExFOUJRVThzUlVGQlJTeFBRVUZQTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZGYUVVc05rUkJRV0VzUTBGQlF5eFBRVUZQTEd0RFFVTm9RaXhaUVVGWkxFdEJRMllzVFVGQlRTeEZRVUZGTEZWQlFWVXNSVUZEYkVJc1EwRkJReXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVONlFpeERRVUZETEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlEzcENMRU5CUVVNN1NVRkRUQ3hEUVVGRE96dEJRVE4zUWtRc09FVkJRVGhGTzBGQlF6bEZMR2xDUVVGcFFqdEJRVU5xUWl3NFJVRkJPRVU3UVVGRmRrVXNjVU5CUVdsQ0xFZEJRVWNzUlVGQlJTeERRVUZETzBGQk1IZENhRU1zVFVGQlRTeDFRa0ZCZFVJc1IwRkJSeXhEUVVNNVFpeE5RVUY1UWl4RlFVTlNMRVZCUVVVN1NVRkRia0lzU1VGQlNTeFZRVUZWTEVkQlFVYzdVVUZEWml4SFFVRkhMRWxCUVVrc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUzBGQlN5eEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UzBGRE4wTXNRMEZCUXp0SlFVTmtMRlZCUVZVc1IwRkJSeXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUXpsRExFOUJRVThzVlVGQlZTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZETDBNc1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMlZzWlcxbGJuUXZiR2x1WldGeVJXeGxiV1Z1ZEVWa2FYUnZjaTUwY3o5bVl6UXpJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3WEc0Z0lFNXZia1JsYkdWMFpXUXNYRzRnSUVWNFkyRnNhV1J5WVhkTWFXNWxZWEpGYkdWdFpXNTBMRnh1SUNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEN4Y2JpQWdVRzlwYm5SQ2FXNWthVzVuTEZ4dUlDQkZlR05oYkdsa2NtRjNRbWx1WkdGaWJHVkZiR1Z0Wlc1MExGeHVmU0JtY205dElGd2lMaTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnWkdsemRHRnVZMlV5WkN3Z2NtOTBZWFJsTENCcGMxQmhkR2hCVEc5dmNDd2daMlYwUjNKcFpGQnZhVzUwSUgwZ1puSnZiU0JjSWk0dUwyMWhkR2hjSWp0Y2JtbHRjRzl5ZENCN0lHZGxkRVZzWlcxbGJuUkJZbk52YkhWMFpVTnZiM0prY3lCOUlHWnliMjBnWENJdVhDSTdYRzVwYlhCdmNuUWdleUJuWlhSRmJHVnRaVzUwVUc5cGJuUnpRMjl2Y21SeklIMGdabkp2YlNCY0lpNHZZbTkxYm1SelhDSTdYRzVwYlhCdmNuUWdleUJRYjJsdWRDd2dRWEJ3VTNSaGRHVWdmU0JtY205dElGd2lMaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUcxMWRHRjBaVVZzWlcxbGJuUWdmU0JtY205dElGd2lMaTl0ZFhSaGRHVkZiR1Z0Wlc1MFhDSTdYRzVwYlhCdmNuUWdTR2x6ZEc5eWVTQm1jbTl0SUZ3aUxpNHZhR2x6ZEc5eWVWd2lPMXh1WEc1cGJYQnZjblFnVTJObGJtVWdabkp2YlNCY0lpNHVMM05qWlc1bEwxTmpaVzVsWENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JpYVc1a1QzSlZibUpwYm1STWFXNWxZWEpGYkdWdFpXNTBMRnh1SUNCblpYUkliM1psY21Wa1JXeGxiV1Z1ZEVadmNrSnBibVJwYm1jc1hHNGdJR2x6UW1sdVpHbHVaMFZ1WVdKc1pXUXNYRzU5SUdaeWIyMGdYQ0l1TDJKcGJtUnBibWRjSWp0Y2JtbHRjRzl5ZENCN0lIUjFjR3hsVkc5RGIyOXljeUI5SUdaeWIyMGdYQ0l1TGk5MWRHbHNjMXdpTzF4dWFXMXdiM0owSUhzZ2FYTkNhVzVrYVc1blJXeGxiV1Z1ZENCOUlHWnliMjBnWENJdUwzUjVjR1ZEYUdWamEzTmNJanRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRXhwYm1WaGNrVnNaVzFsYm5SRlpHbDBiM0lnZTF4dUlDQndkV0pzYVdNZ1pXeGxiV1Z1ZEVsa09pQkZlR05oYkdsa2NtRjNSV3hsYldWdWRGdGNJbWxrWENKZElDWWdlMXh1SUNBZ0lGOWljbUZ1WkRvZ1hDSmxlR05oYkdsa2NtRjNUR2x1WldGeVJXeGxiV1Z1ZEVsa1hDSTdYRzRnSUgwN1hHNGdJQzhxS2lCcGJtUnBZMlZ6SUNvdlhHNGdJSEIxWW14cFl5QnpaV3hsWTNSbFpGQnZhVzUwYzBsdVpHbGpaWE02SUhKbFlXUnZibXg1SUc1MWJXSmxjbHRkSUh3Z2JuVnNiRHRjYmx4dUlDQndkV0pzYVdNZ2NHOXBiblJsY2tSdmQyNVRkR0YwWlRvZ1VtVmhaRzl1YkhrOGUxeHVJQ0FnSUhCeVpYWlRaV3hsWTNSbFpGQnZhVzUwYzBsdVpHbGpaWE02SUhKbFlXUnZibXg1SUc1MWJXSmxjbHRkSUh3Z2JuVnNiRHRjYmlBZ0lDQXZLaW9nYVc1a1pYZ2dLaTljYmlBZ0lDQnNZWE4wUTJ4cFkydGxaRkJ2YVc1ME9pQnVkVzFpWlhJN1hHNGdJSDArTzF4dVhHNGdJQzhxS2lCM2FHVjBhR1Z5SUhsdmRTZHlaU0JrY21GbloybHVaeUJoSUhCdmFXNTBJQ292WEc0Z0lIQjFZbXhwWXlCcGMwUnlZV2RuYVc1bk9pQmliMjlzWldGdU8xeHVJQ0J3ZFdKc2FXTWdiR0Z6ZEZWdVkyOXRiV2wwZEdWa1VHOXBiblE2SUZCdmFXNTBJSHdnYm5Wc2JEdGNiaUFnY0hWaWJHbGpJSEJ2YVc1MFpYSlBabVp6WlhRNklGSmxZV1J2Ym14NVBIc2dlRG9nYm5WdFltVnlPeUI1T2lCdWRXMWlaWElnZlQ0N1hHNGdJSEIxWW14cFl5QnpkR0Z5ZEVKcGJtUnBibWRGYkdWdFpXNTBPaUJGZUdOaGJHbGtjbUYzUW1sdVpHRmliR1ZGYkdWdFpXNTBJSHdnYm5Wc2JDQjhJRndpYTJWbGNGd2lPMXh1SUNCd2RXSnNhV01nWlc1a1FtbHVaR2x1WjBWc1pXMWxiblE2SUVWNFkyRnNhV1J5WVhkQ2FXNWtZV0pzWlVWc1pXMWxiblFnZkNCdWRXeHNJSHdnWENKclpXVndYQ0k3WEc1Y2JpQWdZMjl1YzNSeWRXTjBiM0lvWld4bGJXVnVkRG9nVG05dVJHVnNaWFJsWkR4RmVHTmhiR2xrY21GM1RHbHVaV0Z5Uld4bGJXVnVkRDRzSUhOalpXNWxPaUJUWTJWdVpTa2dlMXh1SUNBZ0lIUm9hWE11Wld4bGJXVnVkRWxrSUQwZ1pXeGxiV1Z1ZEM1cFpDQmhjeUJ6ZEhKcGJtY2dKaUI3WEc0Z0lDQWdJQ0JmWW5KaGJtUTZJRndpWlhoallXeHBaSEpoZDB4cGJtVmhja1ZzWlcxbGJuUkpaRndpTzF4dUlDQWdJSDA3WEc0Z0lDQWdVMk5sYm1VdWJXRndSV3hsYldWdWRGUnZVMk5sYm1Vb2RHaHBjeTVsYkdWdFpXNTBTV1FzSUhOalpXNWxLVHRjYmlBZ0lDQk1hVzVsWVhKRmJHVnRaVzUwUldScGRHOXlMbTV2Y20xaGJHbDZaVkJ2YVc1MGN5aGxiR1Z0Wlc1MEtUdGNibHh1SUNBZ0lIUm9hWE11YzJWc1pXTjBaV1JRYjJsdWRITkpibVJwWTJWeklEMGdiblZzYkR0Y2JpQWdJQ0IwYUdsekxteGhjM1JWYm1OdmJXMXBkSFJsWkZCdmFXNTBJRDBnYm5Wc2JEdGNiaUFnSUNCMGFHbHpMbWx6UkhKaFoyZHBibWNnUFNCbVlXeHpaVHRjYmlBZ0lDQjBhR2x6TG5CdmFXNTBaWEpQWm1aelpYUWdQU0I3SUhnNklEQXNJSGs2SURBZ2ZUdGNiaUFnSUNCMGFHbHpMbk4wWVhKMFFtbHVaR2x1WjBWc1pXMWxiblFnUFNCY0ltdGxaWEJjSWp0Y2JpQWdJQ0IwYUdsekxtVnVaRUpwYm1ScGJtZEZiR1Z0Wlc1MElEMGdYQ0pyWldWd1hDSTdYRzRnSUNBZ2RHaHBjeTV3YjJsdWRHVnlSRzkzYmxOMFlYUmxJRDBnZTF4dUlDQWdJQ0FnY0hKbGRsTmxiR1ZqZEdWa1VHOXBiblJ6U1c1a2FXTmxjem9nYm5Wc2JDeGNiaUFnSUNBZ0lHeGhjM1JEYkdsamEyVmtVRzlwYm5RNklDMHhMRnh1SUNBZ0lIMDdYRzRnSUgxY2JseHVJQ0F2THlBdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMWNiaUFnTHk4Z2MzUmhkR2xqSUcxbGRHaHZaSE5jYmlBZ0x5OGdMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0WEc1Y2JpQWdjM1JoZEdsaklGQlBTVTVVWDBoQlRrUk1SVjlUU1ZwRklEMGdNakE3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJ3WVhKaGJTQnBaQ0IwYUdVZ1lHVnNaVzFsYm5SSlpHQWdabkp2YlNCMGFHVWdhVzV6ZEdGdVkyVWdiMllnZEdocGN5QmpiR0Z6Y3lBb2MyOGdkR2hoZENCM1pTQmpZVzVjYmlBZ0lDb2dJSE4wWVhScFkyRnNiSGtnWjNWaGNtRnVkR1ZsSUhSb2FYTWdiV1YwYUc5a0lISmxkSFZ5Ym5NZ1lXNGdSWGhqWVd4cFpISmhkMHhwYm1WaGNrVnNaVzFsYm5RcFhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1oyVjBSV3hsYldWdWRDaHBaRG9nU1c1emRHRnVZMlZVZVhCbFBIUjVjR1Z2WmlCTWFXNWxZWEpGYkdWdFpXNTBSV1JwZEc5eVBsdGNJbVZzWlcxbGJuUkpaRndpWFNrZ2UxeHVJQ0FnSUdOdmJuTjBJR1ZzWlcxbGJuUWdQU0JUWTJWdVpTNW5aWFJUWTJWdVpTaHBaQ2svTG1kbGRFNXZia1JsYkdWMFpXUkZiR1Z0Wlc1MEtHbGtLVHRjYmlBZ0lDQnBaaUFvWld4bGJXVnVkQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1ZzWlcxbGJuUWdZWE1nVG05dVJHVnNaWFJsWkR4RmVHTmhiR2xrY21GM1RHbHVaV0Z5Uld4bGJXVnVkRDQ3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNCOVhHNWNiaUFnYzNSaGRHbGpJR2hoYm1Sc1pVSnZlRk5sYkdWamRHbHZiaWhjYmlBZ0lDQmxkbVZ1ZERvZ1VHOXBiblJsY2tWMlpXNTBMRnh1SUNBZ0lHRndjRk4wWVhSbE9pQkJjSEJUZEdGMFpTeGNiaUFnSUNCelpYUlRkR0YwWlRvZ1VtVmhZM1F1UTI5dGNHOXVaVzUwUEdGdWVTd2dRWEJ3VTNSaGRHVStXMXdpYzJWMFUzUmhkR1ZjSWwwc1hHNGdJQ2tnZTF4dUlDQWdJR2xtSUNoY2JpQWdJQ0FnSUNGaGNIQlRkR0YwWlM1bFpHbDBhVzVuVEdsdVpXRnlSV3hsYldWdWRDQjhmRnh1SUNBZ0lDQWdZWEJ3VTNSaGRHVXVaSEpoWjJkcGJtZEZiR1Z0Wlc1MFB5NTBlWEJsSUNFOVBTQmNJbk5sYkdWamRHbHZibHdpWEc0Z0lDQWdLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElIc2daV1JwZEdsdVoweHBibVZoY2tWc1pXMWxiblFnZlNBOUlHRndjRk4wWVhSbE8xeHVJQ0FnSUdOdmJuTjBJSHNnYzJWc1pXTjBaV1JRYjJsdWRITkpibVJwWTJWekxDQmxiR1Z0Wlc1MFNXUWdmU0E5SUdWa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1ME8xeHVYRzRnSUNBZ1kyOXVjM1FnWld4bGJXVnVkQ0E5SUV4cGJtVmhja1ZzWlcxbGJuUkZaR2wwYjNJdVoyVjBSV3hsYldWdWRDaGxiR1Z0Wlc1MFNXUXBPMXh1SUNBZ0lHbG1JQ2doWld4bGJXVnVkQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJRnR6Wld4bFkzUnBiMjVZTVN3Z2MyVnNaV04wYVc5dVdURXNJSE5sYkdWamRHbHZibGd5TENCelpXeGxZM1JwYjI1Wk1sMGdQVnh1SUNBZ0lDQWdaMlYwUld4bGJXVnVkRUZpYzI5c2RYUmxRMjl2Y21SektHRndjRk4wWVhSbExtUnlZV2RuYVc1blJXeGxiV1Z1ZENrN1hHNWNiaUFnSUNCamIyNXpkQ0J3YjJsdWRITlRZMlZ1WlVOdmIzSmtjeUE5WEc0Z0lDQWdJQ0JNYVc1bFlYSkZiR1Z0Wlc1MFJXUnBkRzl5TG1kbGRGQnZhVzUwYzBkc2IySmhiRU52YjNKa2FXNWhkR1Z6S0dWc1pXMWxiblFwTzF4dVhHNGdJQ0FnWTI5dWMzUWdibVY0ZEZObGJHVmpkR1ZrVUc5cGJuUnpJRDBnY0c5cGJuUnpVMk5sYm1WRGIyOXlaSE11Y21Wa2RXTmxLRnh1SUNBZ0lDQWdLR0ZqWXpvZ2JuVnRZbVZ5VzEwc0lIQnZhVzUwTENCcGJtUmxlQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0FnSUNBZ0tIQnZhVzUwV3pCZElENDlJSE5sYkdWamRHbHZibGd4SUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0J3YjJsdWRGc3dYU0E4UFNCelpXeGxZM1JwYjI1WU1pQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NHOXBiblJiTVYwZ1BqMGdjMlZzWldOMGFXOXVXVEVnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJSEJ2YVc1MFd6RmRJRHc5SUhObGJHVmpkR2x2YmxreUtTQjhmRnh1SUNBZ0lDQWdJQ0FnSUNobGRtVnVkQzV6YUdsbWRFdGxlU0FtSmlCelpXeGxZM1JsWkZCdmFXNTBjMGx1WkdsalpYTS9MbWx1WTJ4MVpHVnpLR2x1WkdWNEtTbGNiaUFnSUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1lXTmpMbkIxYzJnb2FXNWtaWGdwTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHRmpZenRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0JiWFN4Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnYzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnWldScGRHbHVaMHhwYm1WaGNrVnNaVzFsYm5RNklIdGNiaUFnSUNBZ0lDQWdMaTR1WldScGRHbHVaMHhwYm1WaGNrVnNaVzFsYm5Rc1hHNGdJQ0FnSUNBZ0lITmxiR1ZqZEdWa1VHOXBiblJ6U1c1a2FXTmxjem9nYm1WNGRGTmxiR1ZqZEdWa1VHOXBiblJ6TG14bGJtZDBhRnh1SUNBZ0lDQWdJQ0FnSUQ4Z2JtVjRkRk5sYkdWamRHVmtVRzlwYm5SelhHNGdJQ0FnSUNBZ0lDQWdPaUJ1ZFd4c0xGeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNCOUtUdGNiaUFnZlZ4dVhHNGdJQzhxS2lCQWNtVjBkWEp1Y3lCM2FHVjBhR1Z5SUhCdmFXNTBJSGRoY3lCa2NtRm5aMlZrSUNvdlhHNGdJSE4wWVhScFl5Qm9ZVzVrYkdWUWIybHVkRVJ5WVdkbmFXNW5LRnh1SUNBZ0lHRndjRk4wWVhSbE9pQkJjSEJUZEdGMFpTeGNiaUFnSUNCelpYUlRkR0YwWlRvZ1VtVmhZM1F1UTI5dGNHOXVaVzUwUEdGdWVTd2dRWEJ3VTNSaGRHVStXMXdpYzJWMFUzUmhkR1ZjSWwwc1hHNGdJQ0FnYzJObGJtVlFiMmx1ZEdWeVdEb2diblZ0WW1WeUxGeHVJQ0FnSUhOalpXNWxVRzlwYm5SbGNsazZJRzUxYldKbGNpeGNiaUFnSUNCdFlYbGlaVk4xWjJkbGMzUkNhVzVrYVc1bk9pQW9YRzRnSUNBZ0lDQmxiR1Z0Wlc1ME9pQk9iMjVFWld4bGRHVmtQRVY0WTJGc2FXUnlZWGRNYVc1bFlYSkZiR1Z0Wlc1MFBpeGNiaUFnSUNBZ0lIQnZhVzUwVTJObGJtVkRiMjl5WkhNNklIc2dlRG9nYm5WdFltVnlPeUI1T2lCdWRXMWlaWElnZlZ0ZExGeHVJQ0FnSUNrZ1BUNGdkbTlwWkN4Y2JpQWdLVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdhV1lnS0NGaGNIQlRkR0YwWlM1bFpHbDBhVzVuVEdsdVpXRnlSV3hsYldWdWRDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJSDFjYmlBZ0lDQmpiMjV6ZENCN0lHVmthWFJwYm1kTWFXNWxZWEpGYkdWdFpXNTBJSDBnUFNCaGNIQlRkR0YwWlR0Y2JpQWdJQ0JqYjI1emRDQjdJSE5sYkdWamRHVmtVRzlwYm5SelNXNWthV05sY3l3Z1pXeGxiV1Z1ZEVsa0xDQnBjMFJ5WVdkbmFXNW5JSDBnUFZ4dUlDQWdJQ0FnWldScGRHbHVaMHhwYm1WaGNrVnNaVzFsYm5RN1hHNWNiaUFnSUNCamIyNXpkQ0JsYkdWdFpXNTBJRDBnVEdsdVpXRnlSV3hsYldWdWRFVmthWFJ2Y2k1blpYUkZiR1Z0Wlc1MEtHVnNaVzFsYm5SSlpDazdYRzRnSUNBZ2FXWWdLQ0ZsYkdWdFpXNTBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z2NHOXBiblFnZEdoaGRDZHpJR0psYVc1bklHUnlZV2RuWldRZ0tHOTFkQ0J2WmlCaGJHd2djMlZzWldOMFpXUWdjRzlwYm5SektWeHVJQ0FnSUdOdmJuTjBJR1J5WVdkbmFXNW5VRzlwYm5RZ1BTQmxiR1Z0Wlc1MExuQnZhVzUwYzF0Y2JpQWdJQ0FnSUdWa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1MExuQnZhVzUwWlhKRWIzZHVVM1JoZEdVdWJHRnpkRU5zYVdOclpXUlFiMmx1ZEZ4dUlDQWdJRjBnWVhNZ1cyNTFiV0psY2l3Z2JuVnRZbVZ5WFNCOElIVnVaR1ZtYVc1bFpEdGNibHh1SUNBZ0lHbG1JQ2h6Wld4bFkzUmxaRkJ2YVc1MGMwbHVaR2xqWlhNZ0ppWWdaSEpoWjJkcGJtZFFiMmx1ZENrZ2UxeHVJQ0FnSUNBZ2FXWWdLR2x6UkhKaFoyZHBibWNnUFQwOUlHWmhiSE5sS1NCN1hHNGdJQ0FnSUNBZ0lITmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdJQ0JsWkdsMGFXNW5UR2x1WldGeVJXeGxiV1Z1ZERvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnTGk0dVpXUnBkR2x1WjB4cGJtVmhja1ZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCcGMwUnlZV2RuYVc1bk9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCamIyNXpkQ0J1WlhkRWNtRm5aMmx1WjFCdmFXNTBVRzl6YVhScGIyNGdQU0JNYVc1bFlYSkZiR1Z0Wlc1MFJXUnBkRzl5TG1OeVpXRjBaVkJ2YVc1MFFYUW9YRzRnSUNBZ0lDQWdJR1ZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJSE5qWlc1bFVHOXBiblJsY2xnZ0xTQmxaR2wwYVc1blRHbHVaV0Z5Uld4bGJXVnVkQzV3YjJsdWRHVnlUMlptYzJWMExuZ3NYRzRnSUNBZ0lDQWdJSE5qWlc1bFVHOXBiblJsY2xrZ0xTQmxaR2wwYVc1blRHbHVaV0Z5Uld4bGJXVnVkQzV3YjJsdWRHVnlUMlptYzJWMExua3NYRzRnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxMbWR5YVdSVGFYcGxMRnh1SUNBZ0lDQWdLVHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdaR1ZzZEdGWUlEMGdibVYzUkhKaFoyZHBibWRRYjJsdWRGQnZjMmwwYVc5dVd6QmRJQzBnWkhKaFoyZHBibWRRYjJsdWRGc3dYVHRjYmlBZ0lDQWdJR052Ym5OMElHUmxiSFJoV1NBOUlHNWxkMFJ5WVdkbmFXNW5VRzlwYm5SUWIzTnBkR2x2YmxzeFhTQXRJR1J5WVdkbmFXNW5VRzlwYm5SYk1WMDdYRzVjYmlBZ0lDQWdJRXhwYm1WaGNrVnNaVzFsYm5SRlpHbDBiM0l1Ylc5MlpWQnZhVzUwY3loY2JpQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUNBZ2MyVnNaV04wWldSUWIybHVkSE5KYm1ScFkyVnpMbTFoY0Nnb2NHOXBiblJKYm1SbGVDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUc1bGQxQnZhVzUwVUc5emFYUnBiMjRnUFZ4dUlDQWdJQ0FnSUNBZ0lDQWdjRzlwYm5SSmJtUmxlQ0E5UFQxY2JpQWdJQ0FnSUNBZ0lDQWdJR1ZrYVhScGJtZE1hVzVsWVhKRmJHVnRaVzUwTG5CdmFXNTBaWEpFYjNkdVUzUmhkR1V1YkdGemRFTnNhV05yWldSUWIybHVkRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQS9JRXhwYm1WaGNrVnNaVzFsYm5SRlpHbDBiM0l1WTNKbFlYUmxVRzlwYm5SQmRDaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6WTJWdVpWQnZhVzUwWlhKWUlDMGdaV1JwZEdsdVoweHBibVZoY2tWc1pXMWxiblF1Y0c5cGJuUmxjazltWm5ObGRDNTRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJObGJtVlFiMmx1ZEdWeVdTQXRJR1ZrYVhScGJtZE1hVzVsWVhKRmJHVnRaVzUwTG5CdmFXNTBaWEpQWm1aelpYUXVlU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdGd2NGTjBZWFJsTG1keWFXUlRhWHBsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnT2lBb1cxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRDNXdiMmx1ZEhOYmNHOXBiblJKYm1SbGVGMWJNRjBnS3lCa1pXeDBZVmdzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJHVnRaVzUwTG5CdmFXNTBjMXR3YjJsdWRFbHVaR1Y0WFZzeFhTQXJJR1JsYkhSaFdTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmRJR0Z6SUdOdmJuTjBLVHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhVzVrWlhnNklIQnZhVzUwU1c1a1pYZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNCd2IybHVkRG9nYm1WM1VHOXBiblJRYjNOcGRHbHZiaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHbHpSSEpoWjJkcGJtYzZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIQnZhVzUwU1c1a1pYZ2dQVDA5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR1ZrYVhScGJtZE1hVzVsWVhKRmJHVnRaVzUwTG5CdmFXNTBaWEpFYjNkdVUzUmhkR1V1YkdGemRFTnNhV05yWldSUWIybHVkQ3hjYmlBZ0lDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJQ2s3WEc1Y2JpQWdJQ0FnSUM4dklITjFaMmRsYzNRZ1ltbHVaR2x1WjNNZ1ptOXlJR1pwY25OMElHRnVaQ0JzWVhOMElIQnZhVzUwSUdsbUlITmxiR1ZqZEdWa1hHNGdJQ0FnSUNCcFppQW9hWE5DYVc1a2FXNW5SV3hsYldWdWRDaGxiR1Z0Wlc1MEtTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmpiMjl5WkhNNklIc2dlRG9nYm5WdFltVnlPeUI1T2lCdWRXMWlaWElnZlZ0ZElEMGdXMTA3WEc1Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWm1seWMzUlRaV3hsWTNSbFpFbHVaR1Y0SUQwZ2MyVnNaV04wWldSUWIybHVkSE5KYm1ScFkyVnpXekJkTzF4dUlDQWdJQ0FnSUNCcFppQW9abWx5YzNSVFpXeGxZM1JsWkVsdVpHVjRJRDA5UFNBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dmNtUnpMbkIxYzJnb1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwZFhCc1pWUnZRMjl2Y25Nb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUV4cGJtVmhja1ZzWlcxbGJuUkZaR2wwYjNJdVoyVjBVRzlwYm5SSGJHOWlZV3hEYjI5eVpHbHVZWFJsY3loY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJHVnRaVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWc1pXMWxiblF1Y0c5cGJuUnpXekJkTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdLU3hjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdiR0Z6ZEZObGJHVmpkR1ZrU1c1a1pYZ2dQVnh1SUNBZ0lDQWdJQ0FnSUhObGJHVmpkR1ZrVUc5cGJuUnpTVzVrYVdObGMxdHpaV3hsWTNSbFpGQnZhVzUwYzBsdVpHbGpaWE11YkdWdVozUm9JQzBnTVYwN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hzWVhOMFUyVnNaV04wWldSSmJtUmxlQ0E5UFQwZ1pXeGxiV1Z1ZEM1d2IybHVkSE11YkdWdVozUm9JQzBnTVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052YjNKa2N5NXdkWE5vS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdkSFZ3YkdWVWIwTnZiM0p6S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JNYVc1bFlYSkZiR1Z0Wlc1MFJXUnBkRzl5TG1kbGRGQnZhVzUwUjJ4dlltRnNRMjl2Y21ScGJtRjBaWE1vWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4bGJXVnVkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBMbkJ2YVc1MGMxdHNZWE4wVTJWc1pXTjBaV1JKYm1SbGVGMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBcExGeHVJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQnBaaUFvWTI5dmNtUnpMbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0FnSUcxaGVXSmxVM1ZuWjJWemRFSnBibVJwYm1jb1pXeGxiV1Z1ZEN3Z1kyOXZjbVJ6S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lIMWNibHh1SUNCemRHRjBhV01nYUdGdVpHeGxVRzlwYm5SbGNsVndLRnh1SUNBZ0lHVjJaVzUwT2lCUWIybHVkR1Z5UlhabGJuUXNYRzRnSUNBZ1pXUnBkR2x1WjB4cGJtVmhja1ZzWlcxbGJuUTZJRXhwYm1WaGNrVnNaVzFsYm5SRlpHbDBiM0lzWEc0Z0lDQWdZWEJ3VTNSaGRHVTZJRUZ3Y0ZOMFlYUmxMRnh1SUNBcE9pQk1hVzVsWVhKRmJHVnRaVzUwUldScGRHOXlJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHVnNaVzFsYm5SSlpDd2djMlZzWldOMFpXUlFiMmx1ZEhOSmJtUnBZMlZ6TENCcGMwUnlZV2RuYVc1bkxDQndiMmx1ZEdWeVJHOTNibE4wWVhSbElIMGdQVnh1SUNBZ0lDQWdaV1JwZEdsdVoweHBibVZoY2tWc1pXMWxiblE3WEc0Z0lDQWdZMjl1YzNRZ1pXeGxiV1Z1ZENBOUlFeHBibVZoY2tWc1pXMWxiblJGWkdsMGIzSXVaMlYwUld4bGJXVnVkQ2hsYkdWdFpXNTBTV1FwTzF4dUlDQWdJR2xtSUNnaFpXeGxiV1Z1ZENrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdWa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1ME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR0pwYm1ScGJtZHpPaUJRWVhKMGFXRnNQRnh1SUNBZ0lDQWdVR2xqYXp4Y2JpQWdJQ0FnSUNBZ1NXNXpkR0Z1WTJWVWVYQmxQSFI1Y0dWdlppQk1hVzVsWVhKRmJHVnRaVzUwUldScGRHOXlQaXhjYmlBZ0lDQWdJQ0FnWENKemRHRnlkRUpwYm1ScGJtZEZiR1Z0Wlc1MFhDSWdmQ0JjSW1WdVpFSnBibVJwYm1kRmJHVnRaVzUwWENKY2JpQWdJQ0FnSUQ1Y2JpQWdJQ0ErSUQwZ2UzMDdYRzVjYmlBZ0lDQnBaaUFvYVhORWNtRm5aMmx1WnlBbUppQnpaV3hsWTNSbFpGQnZhVzUwYzBsdVpHbGpaWE1wSUh0Y2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2MyVnNaV04wWldSUWIybHVkQ0J2WmlCelpXeGxZM1JsWkZCdmFXNTBjMGx1WkdsalpYTXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ0lDQWdJSE5sYkdWamRHVmtVRzlwYm5RZ1BUMDlJREFnZkh4Y2JpQWdJQ0FnSUNBZ0lDQnpaV3hsWTNSbFpGQnZhVzUwSUQwOVBTQmxiR1Z0Wlc1MExuQnZhVzUwY3k1c1pXNW5kR2dnTFNBeFhHNGdJQ0FnSUNBZ0lDa2dlMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaHBjMUJoZEdoQlRHOXZjQ2hsYkdWdFpXNTBMbkJ2YVc1MGN5d2dZWEJ3VTNSaGRHVXVlbTl2YlM1MllXeDFaU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRXhwYm1WaGNrVnNaVzFsYm5SRlpHbDBiM0l1Ylc5MlpWQnZhVzUwY3lobGJHVnRaVzUwTENCYlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcGJtUmxlRG9nYzJWc1pXTjBaV1JRYjJsdWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndiMmx1ZERwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxiR1ZqZEdWa1VHOXBiblFnUFQwOUlEQmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUHlCbGJHVnRaVzUwTG5CdmFXNTBjMXRsYkdWdFpXNTBMbkJ2YVc1MGN5NXNaVzVuZEdnZ0xTQXhYVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBNklHVnNaVzFsYm5RdWNHOXBiblJ6V3pCZExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnWFNrN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWW1sdVpHbHVaMFZzWlcxbGJuUWdQU0JwYzBKcGJtUnBibWRGYm1GaWJHVmtLR0Z3Y0ZOMFlYUmxLVnh1SUNBZ0lDQWdJQ0FnSUNBZ1B5Qm5aWFJJYjNabGNtVmtSV3hsYldWdWRFWnZja0pwYm1ScGJtY29YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkSFZ3YkdWVWIwTnZiM0p6S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1RHbHVaV0Z5Uld4bGJXVnVkRVZrYVhSdmNpNW5aWFJRYjJsdWRFRjBTVzVrWlhoSGJHOWlZV3hEYjI5eVpHbHVZWFJsY3loY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJWc1pXTjBaV1JRYjJsdWRDRXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1UyTmxibVV1WjJWMFUyTmxibVVvWld4bGJXVnVkQ2toTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FwWEc0Z0lDQWdJQ0FnSUNBZ0lDQTZJRzUxYkd3N1hHNWNiaUFnSUNBZ0lDQWdJQ0JpYVc1a2FXNW5jMXRjYmlBZ0lDQWdJQ0FnSUNBZ0lITmxiR1ZqZEdWa1VHOXBiblFnUFQwOUlEQWdQeUJjSW5OMFlYSjBRbWx1WkdsdVowVnNaVzFsYm5SY0lpQTZJRndpWlc1a1FtbHVaR2x1WjBWc1pXMWxiblJjSWx4dUlDQWdJQ0FnSUNBZ0lGMGdQU0JpYVc1a2FXNW5SV3hsYldWdWREdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNBdUxpNWxaR2wwYVc1blRHbHVaV0Z5Uld4bGJXVnVkQ3hjYmlBZ0lDQWdJQzR1TG1KcGJtUnBibWR6TEZ4dUlDQWdJQ0FnTHk4Z2FXWWdZMnhwWTJ0cGJtY2dkMmwwYUc5MWRDQndjbVYyYVc5MWMyeDVJR1J5WVdkbmFXNW5JR0VnY0c5cGJuUW9jeWtzSUdGdVpDQnViM1FnYUc5c1pHbHVaMXh1SUNBZ0lDQWdMeThnYzJocFpuUXNJR1JsYzJWc1pXTjBJR0ZzYkNCd2IybHVkSE1nWlhoalpYQjBJSFJvWlNCdmJtVWdZMnhwWTJ0bFpDNGdTV1lnYUc5c1pHbHVaeUJ6YUdsbWRDeGNiaUFnSUNBZ0lDOHZJSFJ2WjJkc1pTQjBhR1VnY0c5cGJuUXVYRzRnSUNBZ0lDQnpaV3hsWTNSbFpGQnZhVzUwYzBsdVpHbGpaWE02WEc0Z0lDQWdJQ0FnSUdselJISmhaMmRwYm1jZ2ZId2daWFpsYm5RdWMyaHBablJMWlhsY2JpQWdJQ0FnSUNBZ0lDQS9JQ0ZwYzBSeVlXZG5hVzVuSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0JsZG1WdWRDNXphR2xtZEV0bGVTQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NHOXBiblJsY2tSdmQyNVRkR0YwWlM1d2NtVjJVMlZzWldOMFpXUlFiMmx1ZEhOSmJtUnBZMlZ6UHk1cGJtTnNkV1JsY3loY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnY0c5cGJuUmxja1J2ZDI1VGRHRjBaUzVzWVhOMFEyeHBZMnRsWkZCdmFXNTBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnUHlCelpXeGxZM1JsWkZCdmFXNTBjMGx1WkdsalpYTWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjMlZzWldOMFpXUlFiMmx1ZEhOSmJtUnBZMlZ6TG1acGJIUmxjaWhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FvY0c5cGJuUkpibVJsZUNrZ1BUNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJ2YVc1MFNXNWtaWGdnSVQwOUlIQnZhVzUwWlhKRWIzZHVVM1JoZEdVdWJHRnpkRU5zYVdOclpXUlFiMmx1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdPaUJ6Wld4bFkzUmxaRkJ2YVc1MGMwbHVaR2xqWlhOY2JpQWdJQ0FnSUNBZ0lDQTZJSE5sYkdWamRHVmtVRzlwYm5SelNXNWthV05sY3o4dWFXNWpiSFZrWlhNb2NHOXBiblJsY2tSdmQyNVRkR0YwWlM1c1lYTjBRMnhwWTJ0bFpGQnZhVzUwS1Z4dUlDQWdJQ0FnSUNBZ0lEOGdXM0J2YVc1MFpYSkViM2R1VTNSaGRHVXViR0Z6ZEVOc2FXTnJaV1JRYjJsdWRGMWNiaUFnSUNBZ0lDQWdJQ0E2SUhObGJHVmpkR1ZrVUc5cGJuUnpTVzVrYVdObGN5eGNiaUFnSUNBZ0lHbHpSSEpoWjJkcGJtYzZJR1poYkhObExGeHVJQ0FnSUNBZ2NHOXBiblJsY2s5bVpuTmxkRG9nZXlCNE9pQXdMQ0I1T2lBd0lIMHNYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJSE4wWVhScFl5Qm9ZVzVrYkdWUWIybHVkR1Z5Ukc5M2JpaGNiaUFnSUNCbGRtVnVkRG9nVW1WaFkzUXVVRzlwYm5SbGNrVjJaVzUwUEVoVVRVeERZVzUyWVhORmJHVnRaVzUwUGl4Y2JpQWdJQ0JoY0hCVGRHRjBaVG9nUVhCd1UzUmhkR1VzWEc0Z0lDQWdjMlYwVTNSaGRHVTZJRkpsWVdOMExrTnZiWEJ2Ym1WdWREeGhibmtzSUVGd2NGTjBZWFJsUGx0Y0luTmxkRk4wWVhSbFhDSmRMRnh1SUNBZ0lHaHBjM1J2Y25rNklFaHBjM1J2Y25rc1hHNGdJQ0FnYzJObGJtVlFiMmx1ZEdWeU9pQjdJSGc2SUc1MWJXSmxjanNnZVRvZ2JuVnRZbVZ5SUgwc1hHNGdJQ2s2SUh0Y2JpQWdJQ0JrYVdSQlpHUlFiMmx1ZERvZ1ltOXZiR1ZoYmp0Y2JpQWdJQ0JvYVhSRmJHVnRaVzUwT2lCT2IyNUVaV3hsZEdWa1BFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFBpQjhJRzUxYkd3N1hHNGdJSDBnZTF4dUlDQWdJR052Ym5OMElISmxkRG9nVW1WMGRYSnVWSGx3WlR4MGVYQmxiMllnVEdsdVpXRnlSV3hsYldWdWRFVmthWFJ2Y2x0Y0ltaGhibVJzWlZCdmFXNTBaWEpFYjNkdVhDSmRQaUE5SUh0Y2JpQWdJQ0FnSUdScFpFRmtaRkJ2YVc1ME9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUdocGRFVnNaVzFsYm5RNklHNTFiR3dzWEc0Z0lDQWdmVHRjYmx4dUlDQWdJR2xtSUNnaFlYQndVM1JoZEdVdVpXUnBkR2x1WjB4cGJtVmhja1ZzWlcxbGJuUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnlaWFE3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2V5QmxiR1Z0Wlc1MFNXUWdmU0E5SUdGd2NGTjBZWFJsTG1Wa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1ME8xeHVJQ0FnSUdOdmJuTjBJR1ZzWlcxbGJuUWdQU0JNYVc1bFlYSkZiR1Z0Wlc1MFJXUnBkRzl5TG1kbGRFVnNaVzFsYm5Rb1pXeGxiV1Z1ZEVsa0tUdGNibHh1SUNBZ0lHbG1JQ2doWld4bGJXVnVkQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSEpsZER0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb1pYWmxiblF1WVd4MFMyVjVLU0I3WEc0Z0lDQWdJQ0JwWmlBb1lYQndVM1JoZEdVdVpXUnBkR2x1WjB4cGJtVmhja1ZzWlcxbGJuUXViR0Z6ZEZWdVkyOXRiV2wwZEdWa1VHOXBiblFnUFQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnSUNCdGRYUmhkR1ZGYkdWdFpXNTBLR1ZzWlcxbGJuUXNJSHRjYmlBZ0lDQWdJQ0FnSUNCd2IybHVkSE02SUZ0Y2JpQWdJQ0FnSUNBZ0lDQWdJQzR1TG1Wc1pXMWxiblF1Y0c5cGJuUnpMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1RHbHVaV0Z5Uld4bGJXVnVkRVZrYVhSdmNpNWpjbVZoZEdWUWIybHVkRUYwS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnpZMlZ1WlZCdmFXNTBaWEl1ZUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJObGJtVlFiMmx1ZEdWeUxua3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHRndjRk4wWVhSbExtZHlhV1JUYVhwbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUNBZ0lDQmRMRnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdocGMzUnZjbmt1Y21WemRXMWxVbVZqYjNKa2FXNW5LQ2s3WEc0Z0lDQWdJQ0J6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0FnSUdWa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1ME9pQjdYRzRnSUNBZ0lDQWdJQ0FnTGk0dVlYQndVM1JoZEdVdVpXUnBkR2x1WjB4cGJtVmhja1ZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnY0c5cGJuUmxja1J2ZDI1VGRHRjBaVG9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjSEpsZGxObGJHVmpkR1ZrVUc5cGJuUnpTVzVrYVdObGN6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1lYQndVM1JoZEdVdVpXUnBkR2x1WjB4cGJtVmhja1ZzWlcxbGJuUXVjMlZzWldOMFpXUlFiMmx1ZEhOSmJtUnBZMlZ6TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiR0Z6ZEVOc2FXTnJaV1JRYjJsdWREb2dMVEVzWEc0Z0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0J6Wld4bFkzUmxaRkJ2YVc1MGMwbHVaR2xqWlhNNklGdGxiR1Z0Wlc1MExuQnZhVzUwY3k1c1pXNW5kR2dnTFNBeFhTeGNiaUFnSUNBZ0lDQWdJQ0JzWVhOMFZXNWpiMjF0YVhSMFpXUlFiMmx1ZERvZ2JuVnNiQ3hjYmlBZ0lDQWdJQ0FnSUNCbGJtUkNhVzVrYVc1blJXeGxiV1Z1ZERvZ1oyVjBTRzkyWlhKbFpFVnNaVzFsYm5SR2IzSkNhVzVrYVc1bktGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzJObGJtVlFiMmx1ZEdWeUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnVTJObGJtVXVaMlYwVTJObGJtVW9aV3hsYldWdWRDa2hMRnh1SUNBZ0lDQWdJQ0FnSUNrc1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSEpsZEM1a2FXUkJaR1JRYjJsdWRDQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNCeVpYUjFjbTRnY21WME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR05zYVdOclpXUlFiMmx1ZEVsdVpHVjRJRDBnVEdsdVpXRnlSV3hsYldWdWRFVmthWFJ2Y2k1blpYUlFiMmx1ZEVsdVpHVjRWVzVrWlhKRGRYSnpiM0lvWEc0Z0lDQWdJQ0JsYkdWdFpXNTBMRnh1SUNBZ0lDQWdZWEJ3VTNSaGRHVXVlbTl2YlN4Y2JpQWdJQ0FnSUhOalpXNWxVRzlwYm5SbGNpNTRMRnh1SUNBZ0lDQWdjMk5sYm1WUWIybHVkR1Z5TG5rc1hHNGdJQ0FnS1R0Y2JseHVJQ0FnSUM4dklHbG1JSGRsSUdOc2FXTnJaV1FnYjI0Z1lTQndiMmx1ZEN3Z2MyVjBJSFJvWlNCbGJHVnRaVzUwSUdGeklHaHBkRVZzWlcxbGJuUWdiM1JvWlhKM2FYTmxYRzRnSUNBZ0x5OGdhWFFnZDI5MWJHUWdaMlYwSUdSbGMyVnNaV04wWldRZ2FXWWdkR2hsSUhCdmFXNTBJR2x6SUc5MWRITnBaR1VnZEdobElHaHBkR0p2ZUNCaGNtVmhYRzRnSUNBZ2FXWWdLR05zYVdOclpXUlFiMmx1ZEVsdVpHVjRJRDRnTFRFcElIdGNiaUFnSUNBZ0lISmxkQzVvYVhSRmJHVnRaVzUwSUQwZ1pXeGxiV1Z1ZER0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdMeThnV1c5MUlHMXBaMmgwSUdKbElIZGhibVJsY21sdVp5QjNhSGtnZDJVZ1lYSmxJSE4wYjNKcGJtY2dkR2hsSUdKcGJtUnBibWNnWld4bGJXVnVkSE1nYjI1Y2JpQWdJQ0FnSUM4dklFeHBibVZoY2tWc1pXMWxiblJGWkdsMGIzSWdZVzVrSUhCaGMzTnBibWNnZEdobGJTQnBiaXdnYVc1emRHVmtJRzltSUdOaGJHTjFiR0YwYVc1bklIUm9aVzFjYmlBZ0lDQWdJQzh2SUdaeWIyMGdkR2hsSUdWdVpDQndiMmx1ZEhNZ2IyWWdkR2hsSUdCc2FXNWxZWEpGYkdWdFpXNTBZQ0F0SUhSb2FYTWdhWE1nZEc4Z1lXeHNiM2NnWkdsellXSnNhVzVuWEc0Z0lDQWdJQ0F2THlCaWFXNWthVzVuSUNoM2FHbGphQ0J1WldWa2N5QjBieUJvWVhCd1pXNGdZWFFnZEdobElIQnZhVzUwSUhSb1pTQjFjMlZ5SUdacGJtbHphR1Z6SUcxdmRtbHVaMXh1SUNBZ0lDQWdMeThnZEdobElIQnZhVzUwS1M1Y2JpQWdJQ0FnSUdOdmJuTjBJSHNnYzNSaGNuUkNhVzVrYVc1blJXeGxiV1Z1ZEN3Z1pXNWtRbWx1WkdsdVowVnNaVzFsYm5RZ2ZTQTlYRzRnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxMbVZrYVhScGJtZE1hVzVsWVhKRmJHVnRaVzUwTzF4dUlDQWdJQ0FnYVdZZ0tHbHpRbWx1WkdsdVowVnVZV0pzWldRb1lYQndVM1JoZEdVcElDWW1JR2x6UW1sdVpHbHVaMFZzWlcxbGJuUW9aV3hsYldWdWRDa3BJSHRjYmlBZ0lDQWdJQ0FnWW1sdVpFOXlWVzVpYVc1a1RHbHVaV0Z5Uld4bGJXVnVkQ2hjYmlBZ0lDQWdJQ0FnSUNCbGJHVnRaVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lITjBZWEowUW1sdVpHbHVaMFZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnWlc1a1FtbHVaR2x1WjBWc1pXMWxiblFzWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdXM2d4TENCNU1Td2dlRElzSUhreVhTQTlJR2RsZEVWc1pXMWxiblJCWW5OdmJIVjBaVU52YjNKa2N5aGxiR1Z0Wlc1MEtUdGNiaUFnSUNCamIyNXpkQ0JqZUNBOUlDaDRNU0FySUhneUtTQXZJREk3WEc0Z0lDQWdZMjl1YzNRZ1kza2dQU0FvZVRFZ0t5QjVNaWtnTHlBeU8xeHVJQ0FnSUdOdmJuTjBJSFJoY21kbGRGQnZhVzUwSUQxY2JpQWdJQ0FnSUdOc2FXTnJaV1JRYjJsdWRFbHVaR1Y0SUQ0Z0xURWdKaVpjYmlBZ0lDQWdJSEp2ZEdGMFpTaGNiaUFnSUNBZ0lDQWdaV3hsYldWdWRDNTRJQ3NnWld4bGJXVnVkQzV3YjJsdWRITmJZMnhwWTJ0bFpGQnZhVzUwU1c1a1pYaGRXekJkTEZ4dUlDQWdJQ0FnSUNCbGJHVnRaVzUwTG5rZ0t5QmxiR1Z0Wlc1MExuQnZhVzUwYzF0amJHbGphMlZrVUc5cGJuUkpibVJsZUYxYk1WMHNYRzRnSUNBZ0lDQWdJR040TEZ4dUlDQWdJQ0FnSUNCamVTeGNiaUFnSUNBZ0lDQWdaV3hsYldWdWRDNWhibWRzWlN4Y2JpQWdJQ0FnSUNrN1hHNWNiaUFnSUNCamIyNXpkQ0J1WlhoMFUyVnNaV04wWldSUWIybHVkSE5KYm1ScFkyVnpJRDFjYmlBZ0lDQWdJR05zYVdOclpXUlFiMmx1ZEVsdVpHVjRJRDRnTFRFZ2ZId2daWFpsYm5RdWMyaHBablJMWlhsY2JpQWdJQ0FnSUNBZ1B5QmxkbVZ1ZEM1emFHbG1kRXRsZVNCOGZGeHVJQ0FnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxMbVZrYVhScGJtZE1hVzVsWVhKRmJHVnRaVzUwTG5ObGJHVmpkR1ZrVUc5cGJuUnpTVzVrYVdObGN6OHVhVzVqYkhWa1pYTW9YRzRnSUNBZ0lDQWdJQ0FnSUNCamJHbGphMlZrVUc5cGJuUkpibVJsZUN4Y2JpQWdJQ0FnSUNBZ0lDQXBYRzRnSUNBZ0lDQWdJQ0FnUHlCdWIzSnRZV3hwZW1WVFpXeGxZM1JsWkZCdmFXNTBjeWhiWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQzR1TGloaGNIQlRkR0YwWlM1bFpHbDBhVzVuVEdsdVpXRnlSV3hsYldWdWRDNXpaV3hsWTNSbFpGQnZhVzUwYzBsdVpHbGpaWE1nZkh3Z1cxMHBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiR2xqYTJWa1VHOXBiblJKYm1SbGVDeGNiaUFnSUNBZ0lDQWdJQ0FnSUYwcFhHNGdJQ0FnSUNBZ0lDQWdPaUJiWTJ4cFkydGxaRkJ2YVc1MFNXNWtaWGhkWEc0Z0lDQWdJQ0FnSURvZ2JuVnNiRHRjYmx4dUlDQWdJSE5sZEZOMFlYUmxLSHRjYmlBZ0lDQWdJR1ZrYVhScGJtZE1hVzVsWVhKRmJHVnRaVzUwT2lCN1hHNGdJQ0FnSUNBZ0lDNHVMbUZ3Y0ZOMFlYUmxMbVZrYVhScGJtZE1hVzVsWVhKRmJHVnRaVzUwTEZ4dUlDQWdJQ0FnSUNCd2IybHVkR1Z5Ukc5M2JsTjBZWFJsT2lCN1hHNGdJQ0FnSUNBZ0lDQWdjSEpsZGxObGJHVmpkR1ZrVUc5cGJuUnpTVzVrYVdObGN6cGNiaUFnSUNBZ0lDQWdJQ0FnSUdGd2NGTjBZWFJsTG1Wa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1MExuTmxiR1ZqZEdWa1VHOXBiblJ6U1c1a2FXTmxjeXhjYmlBZ0lDQWdJQ0FnSUNCc1lYTjBRMnhwWTJ0bFpGQnZhVzUwT2lCamJHbGphMlZrVUc5cGJuUkpibVJsZUN4Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdjMlZzWldOMFpXUlFiMmx1ZEhOSmJtUnBZMlZ6T2lCdVpYaDBVMlZzWldOMFpXUlFiMmx1ZEhOSmJtUnBZMlZ6TEZ4dUlDQWdJQ0FnSUNCd2IybHVkR1Z5VDJabWMyVjBPaUIwWVhKblpYUlFiMmx1ZEZ4dUlDQWdJQ0FnSUNBZ0lEOGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjRPaUJ6WTJWdVpWQnZhVzUwWlhJdWVDQXRJSFJoY21kbGRGQnZhVzUwV3pCZExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCNU9pQnpZMlZ1WlZCdmFXNTBaWEl1ZVNBdElIUmhjbWRsZEZCdmFXNTBXekZkTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSURvZ2V5QjRPaUF3TENCNU9pQXdJSDBzWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJSDBwTzF4dUlDQWdJSEpsZEhWeWJpQnlaWFE3WEc0Z0lIMWNibHh1SUNCemRHRjBhV01nYUdGdVpHeGxVRzlwYm5SbGNrMXZkbVVvWEc0Z0lDQWdaWFpsYm5RNklGSmxZV04wTGxCdmFXNTBaWEpGZG1WdWREeElWRTFNUTJGdWRtRnpSV3hsYldWdWRENHNYRzRnSUNBZ2MyTmxibVZRYjJsdWRHVnlXRG9nYm5WdFltVnlMRnh1SUNBZ0lITmpaVzVsVUc5cGJuUmxjbGs2SUc1MWJXSmxjaXhjYmlBZ0lDQmxaR2wwYVc1blRHbHVaV0Z5Uld4bGJXVnVkRG9nVEdsdVpXRnlSV3hsYldWdWRFVmthWFJ2Y2l4Y2JpQWdJQ0JuY21sa1UybDZaVG9nYm5WdFltVnlJSHdnYm5Wc2JDeGNiaUFnS1RvZ1RHbHVaV0Z5Uld4bGJXVnVkRVZrYVhSdmNpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCbGJHVnRaVzUwU1dRc0lHeGhjM1JWYm1OdmJXMXBkSFJsWkZCdmFXNTBJSDBnUFNCbFpHbDBhVzVuVEdsdVpXRnlSV3hsYldWdWREdGNiaUFnSUNCamIyNXpkQ0JsYkdWdFpXNTBJRDBnVEdsdVpXRnlSV3hsYldWdWRFVmthWFJ2Y2k1blpYUkZiR1Z0Wlc1MEtHVnNaVzFsYm5SSlpDazdYRzRnSUNBZ2FXWWdLQ0ZsYkdWdFpXNTBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdaV1JwZEdsdVoweHBibVZoY2tWc1pXMWxiblE3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2V5QndiMmx1ZEhNZ2ZTQTlJR1ZzWlcxbGJuUTdYRzRnSUNBZ1kyOXVjM1FnYkdGemRGQnZhVzUwSUQwZ2NHOXBiblJ6VzNCdmFXNTBjeTVzWlc1bmRHZ2dMU0F4WFR0Y2JseHVJQ0FnSUdsbUlDZ2haWFpsYm5RdVlXeDBTMlY1S1NCN1hHNGdJQ0FnSUNCcFppQW9iR0Z6ZEZCdmFXNTBJRDA5UFNCc1lYTjBWVzVqYjIxdGFYUjBaV1JRYjJsdWRDa2dlMXh1SUNBZ0lDQWdJQ0JNYVc1bFlYSkZiR1Z0Wlc1MFJXUnBkRzl5TG1SbGJHVjBaVkJ2YVc1MGN5aGxiR1Z0Wlc1MExDQmJjRzlwYm5SekxteGxibWQwYUNBdElERmRLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQjdJQzR1TG1Wa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1MExDQnNZWE4wVlc1amIyMXRhWFIwWldSUWIybHVkRG9nYm5Wc2JDQjlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUc1bGQxQnZhVzUwSUQwZ1RHbHVaV0Z5Uld4bGJXVnVkRVZrYVhSdmNpNWpjbVZoZEdWUWIybHVkRUYwS0Z4dUlDQWdJQ0FnWld4bGJXVnVkQ3hjYmlBZ0lDQWdJSE5qWlc1bFVHOXBiblJsY2xnZ0xTQmxaR2wwYVc1blRHbHVaV0Z5Uld4bGJXVnVkQzV3YjJsdWRHVnlUMlptYzJWMExuZ3NYRzRnSUNBZ0lDQnpZMlZ1WlZCdmFXNTBaWEpaSUMwZ1pXUnBkR2x1WjB4cGJtVmhja1ZzWlcxbGJuUXVjRzlwYm5SbGNrOW1abk5sZEM1NUxGeHVJQ0FnSUNBZ1ozSnBaRk5wZW1Vc1hHNGdJQ0FnS1R0Y2JseHVJQ0FnSUdsbUlDaHNZWE4wVUc5cGJuUWdQVDA5SUd4aGMzUlZibU52YlcxcGRIUmxaRkJ2YVc1MEtTQjdYRzRnSUNBZ0lDQk1hVzVsWVhKRmJHVnRaVzUwUldScGRHOXlMbTF2ZG1WUWIybHVkSE1vWld4bGJXVnVkQ3dnVzF4dUlDQWdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDQWdhVzVrWlhnNklHVnNaVzFsYm5RdWNHOXBiblJ6TG14bGJtZDBhQ0F0SURFc1hHNGdJQ0FnSUNBZ0lDQWdjRzlwYm5RNklHNWxkMUJ2YVc1MExGeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdYU2s3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lFeHBibVZoY2tWc1pXMWxiblJGWkdsMGIzSXVZV1JrVUc5cGJuUnpLR1ZzWlcxbGJuUXNJRnQ3SUhCdmFXNTBPaUJ1WlhkUWIybHVkQ0I5WFNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQzR1TG1Wa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1MExGeHVJQ0FnSUNBZ2JHRnpkRlZ1WTI5dGJXbDBkR1ZrVUc5cGJuUTZJR1ZzWlcxbGJuUXVjRzlwYm5SelcyVnNaVzFsYm5RdWNHOXBiblJ6TG14bGJtZDBhQ0F0SURGZExGeHVJQ0FnSUgwN1hHNGdJSDFjYmx4dUlDQXZLaW9nYzJObGJtVWdZMjl2Y21SeklDb3ZYRzRnSUhOMFlYUnBZeUJuWlhSUWIybHVkRWRzYjJKaGJFTnZiM0prYVc1aGRHVnpLRnh1SUNBZ0lHVnNaVzFsYm5RNklFNXZia1JsYkdWMFpXUThSWGhqWVd4cFpISmhkMHhwYm1WaGNrVnNaVzFsYm5RK0xGeHVJQ0FnSUhCdmFXNTBPaUJRYjJsdWRDeGNiaUFnS1NCN1hHNGdJQ0FnWTI5dWMzUWdXM2d4TENCNU1Td2dlRElzSUhreVhTQTlJR2RsZEVWc1pXMWxiblJCWW5OdmJIVjBaVU52YjNKa2N5aGxiR1Z0Wlc1MEtUdGNiaUFnSUNCamIyNXpkQ0JqZUNBOUlDaDRNU0FySUhneUtTQXZJREk3WEc0Z0lDQWdZMjl1YzNRZ1kza2dQU0FvZVRFZ0t5QjVNaWtnTHlBeU8xeHVYRzRnSUNBZ2JHVjBJSHNnZUN3Z2VTQjlJRDBnWld4bGJXVnVkRHRjYmlBZ0lDQmJlQ3dnZVYwZ1BTQnliM1JoZEdVb2VDQXJJSEJ2YVc1MFd6QmRMQ0I1SUNzZ2NHOXBiblJiTVYwc0lHTjRMQ0JqZVN3Z1pXeGxiV1Z1ZEM1aGJtZHNaU2s3WEc0Z0lDQWdjbVYwZFhKdUlGdDRMQ0I1WFNCaGN5QmpiMjV6ZER0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJ6WTJWdVpTQmpiMjl5WkhNZ0tpOWNiaUFnYzNSaGRHbGpJR2RsZEZCdmFXNTBjMGRzYjJKaGJFTnZiM0prYVc1aGRHVnpLRnh1SUNBZ0lHVnNaVzFsYm5RNklFNXZia1JsYkdWMFpXUThSWGhqWVd4cFpISmhkMHhwYm1WaGNrVnNaVzFsYm5RK0xGeHVJQ0FwSUh0Y2JpQWdJQ0JqYjI1emRDQmJlREVzSUhreExDQjRNaXdnZVRKZElEMGdaMlYwUld4bGJXVnVkRUZpYzI5c2RYUmxRMjl2Y21SektHVnNaVzFsYm5RcE8xeHVJQ0FnSUdOdmJuTjBJR040SUQwZ0tIZ3hJQ3NnZURJcElDOGdNanRjYmlBZ0lDQmpiMjV6ZENCamVTQTlJQ2g1TVNBcklIa3lLU0F2SURJN1hHNGdJQ0FnY21WMGRYSnVJR1ZzWlcxbGJuUXVjRzlwYm5SekxtMWhjQ2dvY0c5cGJuUXBJRDArSUh0Y2JpQWdJQ0FnSUd4bGRDQjdJSGdzSUhrZ2ZTQTlJR1ZzWlcxbGJuUTdYRzRnSUNBZ0lDQmJlQ3dnZVYwZ1BTQnliM1JoZEdVb2VDQXJJSEJ2YVc1MFd6QmRMQ0I1SUNzZ2NHOXBiblJiTVYwc0lHTjRMQ0JqZVN3Z1pXeGxiV1Z1ZEM1aGJtZHNaU2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdXM2dzSUhsZE8xeHVJQ0FnSUgwcE8xeHVJQ0I5WEc1Y2JpQWdjM1JoZEdsaklHZGxkRkJ2YVc1MFFYUkpibVJsZUVkc2IySmhiRU52YjNKa2FXNWhkR1Z6S0Z4dUlDQWdJR1ZzWlcxbGJuUTZJRTV2YmtSbGJHVjBaV1E4UlhoallXeHBaSEpoZDB4cGJtVmhja1ZzWlcxbGJuUStMRnh1SUNBZ0lHbHVaR1Y0VFdGNVltVkdjbTl0Ulc1a09pQnVkVzFpWlhJc0lDOHZJQzB4SUdadmNpQnNZWE4wSUdWc1pXMWxiblJjYmlBZ0tUb2dVRzlwYm5RZ2UxeHVJQ0FnSUdOdmJuTjBJR2x1WkdWNElEMWNiaUFnSUNBZ0lHbHVaR1Y0VFdGNVltVkdjbTl0Ulc1a0lEd2dNRnh1SUNBZ0lDQWdJQ0EvSUdWc1pXMWxiblF1Y0c5cGJuUnpMbXhsYm1kMGFDQXJJR2x1WkdWNFRXRjVZbVZHY205dFJXNWtYRzRnSUNBZ0lDQWdJRG9nYVc1a1pYaE5ZWGxpWlVaeWIyMUZibVE3WEc0Z0lDQWdZMjl1YzNRZ1czZ3hMQ0I1TVN3Z2VESXNJSGt5WFNBOUlHZGxkRVZzWlcxbGJuUkJZbk52YkhWMFpVTnZiM0prY3lobGJHVnRaVzUwS1R0Y2JpQWdJQ0JqYjI1emRDQmplQ0E5SUNoNE1TQXJJSGd5S1NBdklESTdYRzRnSUNBZ1kyOXVjM1FnWTNrZ1BTQW9lVEVnS3lCNU1pa2dMeUF5TzF4dVhHNGdJQ0FnWTI5dWMzUWdjRzlwYm5RZ1BTQmxiR1Z0Wlc1MExuQnZhVzUwYzF0cGJtUmxlRjA3WEc0Z0lDQWdZMjl1YzNRZ2V5QjRMQ0I1SUgwZ1BTQmxiR1Z0Wlc1ME8xeHVJQ0FnSUhKbGRIVnliaUJ5YjNSaGRHVW9lQ0FySUhCdmFXNTBXekJkTENCNUlDc2djRzlwYm5SYk1WMHNJR040TENCamVTd2daV3hsYldWdWRDNWhibWRzWlNrN1hHNGdJSDFjYmx4dUlDQnpkR0YwYVdNZ2NHOXBiblJHY205dFFXSnpiMngxZEdWRGIyOXlaSE1vWEc0Z0lDQWdaV3hsYldWdWREb2dUbTl1UkdWc1pYUmxaRHhGZUdOaGJHbGtjbUYzVEdsdVpXRnlSV3hsYldWdWRENHNYRzRnSUNBZ1lXSnpiMngxZEdWRGIyOXlaSE02SUZCdmFXNTBMRnh1SUNBcE9pQlFiMmx1ZENCN1hHNGdJQ0FnWTI5dWMzUWdXM2d4TENCNU1Td2dlRElzSUhreVhTQTlJR2RsZEVWc1pXMWxiblJCWW5OdmJIVjBaVU52YjNKa2N5aGxiR1Z0Wlc1MEtUdGNiaUFnSUNCamIyNXpkQ0JqZUNBOUlDaDRNU0FySUhneUtTQXZJREk3WEc0Z0lDQWdZMjl1YzNRZ1kza2dQU0FvZVRFZ0t5QjVNaWtnTHlBeU8xeHVJQ0FnSUdOdmJuTjBJRnQ0TENCNVhTQTlJSEp2ZEdGMFpTaGNiaUFnSUNBZ0lHRmljMjlzZFhSbFEyOXZjbVJ6V3pCZExGeHVJQ0FnSUNBZ1lXSnpiMngxZEdWRGIyOXlaSE5iTVYwc1hHNGdJQ0FnSUNCamVDeGNiaUFnSUNBZ0lHTjVMRnh1SUNBZ0lDQWdMV1ZzWlcxbGJuUXVZVzVuYkdVc1hHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdXM2dnTFNCbGJHVnRaVzUwTG5nc0lIa2dMU0JsYkdWdFpXNTBMbmxkTzF4dUlDQjlYRzVjYmlBZ2MzUmhkR2xqSUdkbGRGQnZhVzUwU1c1a1pYaFZibVJsY2tOMWNuTnZjaWhjYmlBZ0lDQmxiR1Z0Wlc1ME9pQk9iMjVFWld4bGRHVmtQRVY0WTJGc2FXUnlZWGRNYVc1bFlYSkZiR1Z0Wlc1MFBpeGNiaUFnSUNCNmIyOXRPaUJCY0hCVGRHRjBaVnRjSW5wdmIyMWNJbDBzWEc0Z0lDQWdlRG9nYm5WdFltVnlMRnh1SUNBZ0lIazZJRzUxYldKbGNpeGNiaUFnS1NCN1hHNGdJQ0FnWTI5dWMzUWdjRzlwYm5SSVlXNWtiR1Z6SUQwZ2RHaHBjeTVuWlhSUWIybHVkSE5IYkc5aVlXeERiMjl5WkdsdVlYUmxjeWhsYkdWdFpXNTBLVHRjYmlBZ0lDQnNaWFFnYVdSNElEMGdjRzlwYm5SSVlXNWtiR1Z6TG14bGJtZDBhRHRjYmlBZ0lDQXZMeUJzYjI5d0lHWnliMjBnY21sbmFIUWdkRzhnYkdWbWRDQmlaV05oZFhObElIQnZhVzUwY3lCdmJpQjBhR1VnY21sbmFIUWdZWEpsSUhKbGJtUmxjbVZrSUc5MlpYSmNiaUFnSUNBdkx5QndiMmx1ZEhNZ2IyNGdkR2hsSUd4bFpuUXNJSFJvZFhNZ2MyaHZkV3hrSUhSaGEyVWdjSEpsWTJWa1pXNWpaU0IzYUdWdUlHTnNhV05yYVc1bkxDQnBaaUIwYUdWNVhHNGdJQ0FnTHk4Z2IzWmxjbXhoY0Z4dUlDQWdJSGRvYVd4bElDZ3RMV2xrZUNBK0lDMHhLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQndiMmx1ZENBOUlIQnZhVzUwU0dGdVpHeGxjMXRwWkhoZE8xeHVJQ0FnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdJQ0JrYVhOMFlXNWpaVEprS0hnc0lIa3NJSEJ2YVc1MFd6QmRMQ0J3YjJsdWRGc3hYU2tnS2lCNmIyOXRMblpoYkhWbElEeGNiaUFnSUNBZ0lDQWdMeThnS3pGd2VDQjBieUJoWTJOdmRXNTBJR1p2Y2lCdmRYUnNhVzVsSUhOMGNtOXJaVnh1SUNBZ0lDQWdJQ0IwYUdsekxsQlBTVTVVWDBoQlRrUk1SVjlUU1ZwRklDOGdNaUFySURGY2JpQWdJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2FXUjRPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnTFRFN1hHNGdJSDFjYmx4dUlDQnpkR0YwYVdNZ1kzSmxZWFJsVUc5cGJuUkJkQ2hjYmlBZ0lDQmxiR1Z0Wlc1ME9pQk9iMjVFWld4bGRHVmtQRVY0WTJGc2FXUnlZWGRNYVc1bFlYSkZiR1Z0Wlc1MFBpeGNiaUFnSUNCelkyVnVaVkJ2YVc1MFpYSllPaUJ1ZFcxaVpYSXNYRzRnSUNBZ2MyTmxibVZRYjJsdWRHVnlXVG9nYm5WdFltVnlMRnh1SUNBZ0lHZHlhV1JUYVhwbE9pQnVkVzFpWlhJZ2ZDQnVkV3hzTEZ4dUlDQXBPaUJRYjJsdWRDQjdYRzRnSUNBZ1kyOXVjM1FnY0c5cGJuUmxjazl1UjNKcFpDQTlJR2RsZEVkeWFXUlFiMmx1ZENoelkyVnVaVkJ2YVc1MFpYSllMQ0J6WTJWdVpWQnZhVzUwWlhKWkxDQm5jbWxrVTJsNlpTazdYRzRnSUNBZ1kyOXVjM1FnVzNneExDQjVNU3dnZURJc0lIa3lYU0E5SUdkbGRFVnNaVzFsYm5SQlluTnZiSFYwWlVOdmIzSmtjeWhsYkdWdFpXNTBLVHRjYmlBZ0lDQmpiMjV6ZENCamVDQTlJQ2g0TVNBcklIZ3lLU0F2SURJN1hHNGdJQ0FnWTI5dWMzUWdZM2tnUFNBb2VURWdLeUI1TWlrZ0x5QXlPMXh1SUNBZ0lHTnZibk4wSUZ0eWIzUmhkR1ZrV0N3Z2NtOTBZWFJsWkZsZElEMGdjbTkwWVhSbEtGeHVJQ0FnSUNBZ2NHOXBiblJsY2s5dVIzSnBaRnN3WFN4Y2JpQWdJQ0FnSUhCdmFXNTBaWEpQYmtkeWFXUmJNVjBzWEc0Z0lDQWdJQ0JqZUN4Y2JpQWdJQ0FnSUdONUxGeHVJQ0FnSUNBZ0xXVnNaVzFsYm5RdVlXNW5iR1VzWEc0Z0lDQWdLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQmJjbTkwWVhSbFpGZ2dMU0JsYkdWdFpXNTBMbmdzSUhKdmRHRjBaV1JaSUMwZ1pXeGxiV1Z1ZEM1NVhUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJPYjNKdFlXeHBlbVZ6SUd4cGJtVWdjRzlwYm5SeklITnZJSFJvWVhRZ2RHaGxJSE4wWVhKMElIQnZhVzUwSUdseklHRjBJRnN3TERCZExpQlVhR2x6SUdselhHNGdJQ0FxSUdWNGNHVmpkR1ZrSUdsdUlIWmhjbWx2ZFhNZ2NHRnlkSE1nYjJZZ2RHaGxJR052WkdWaVlYTmxMaUJCYkhOdklISmxkSFZ5Ym5NZ2JtVjNJSGd2ZVNCMGJ5QmhZMk52ZFc1MFhHNGdJQ0FxSUdadmNpQjBhR1VnY0c5MFpXNTBhV0ZzSUc1dmNtMWhiR2w2WVhScGIyNHVYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdaMlYwVG05eWJXRnNhWHBsWkZCdmFXNTBjeWhsYkdWdFpXNTBPaUJGZUdOaGJHbGtjbUYzVEdsdVpXRnlSV3hsYldWdWRDa2dlMXh1SUNBZ0lHTnZibk4wSUhzZ2NHOXBiblJ6SUgwZ1BTQmxiR1Z0Wlc1ME8xeHVYRzRnSUNBZ1kyOXVjM1FnYjJabWMyVjBXQ0E5SUhCdmFXNTBjMXN3WFZzd1hUdGNiaUFnSUNCamIyNXpkQ0J2Wm1aelpYUlpJRDBnY0c5cGJuUnpXekJkV3pGZE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUhCdmFXNTBjem9nY0c5cGJuUnpMbTFoY0Nnb2NHOXBiblFzSUY5cFpIZ3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ0d2IybHVkRnN3WFNBdElHOW1abk5sZEZnc0lIQnZhVzUwV3pGZElDMGdiMlptYzJWMFdWMGdZWE1nWTI5dWMzUTdYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJSGc2SUdWc1pXMWxiblF1ZUNBcklHOW1abk5sZEZnc1hHNGdJQ0FnSUNCNU9pQmxiR1Z0Wlc1MExua2dLeUJ2Wm1aelpYUlpMRnh1SUNBZ0lIMDdYRzRnSUgxY2JseHVJQ0F2THlCbGJHVnRaVzUwTFcxMWRHRjBhVzVuSUcxbGRHaHZaSE5jYmlBZ0x5OGdMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0WEc1Y2JpQWdjM1JoZEdsaklHNXZjbTFoYkdsNlpWQnZhVzUwY3lobGJHVnRaVzUwT2lCT2IyNUVaV3hsZEdWa1BFVjRZMkZzYVdSeVlYZE1hVzVsWVhKRmJHVnRaVzUwUGlrZ2UxeHVJQ0FnSUcxMWRHRjBaVVZzWlcxbGJuUW9aV3hsYldWdWRDd2dUR2x1WldGeVJXeGxiV1Z1ZEVWa2FYUnZjaTVuWlhST2IzSnRZV3hwZW1Wa1VHOXBiblJ6S0dWc1pXMWxiblFwS1R0Y2JpQWdmVnh1WEc0Z0lITjBZWFJwWXlCa2RYQnNhV05oZEdWVFpXeGxZM1JsWkZCdmFXNTBjeWhoY0hCVGRHRjBaVG9nUVhCd1UzUmhkR1VwSUh0Y2JpQWdJQ0JwWmlBb0lXRndjRk4wWVhSbExtVmthWFJwYm1kTWFXNWxZWEpGYkdWdFpXNTBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdleUJ6Wld4bFkzUmxaRkJ2YVc1MGMwbHVaR2xqWlhNc0lHVnNaVzFsYm5SSlpDQjlJRDBnWVhCd1UzUmhkR1V1WldScGRHbHVaMHhwYm1WaGNrVnNaVzFsYm5RN1hHNWNiaUFnSUNCamIyNXpkQ0JsYkdWdFpXNTBJRDBnVEdsdVpXRnlSV3hsYldWdWRFVmthWFJ2Y2k1blpYUkZiR1Z0Wlc1MEtHVnNaVzFsYm5SSlpDazdYRzVjYmlBZ0lDQnBaaUFvSVdWc1pXMWxiblFnZkh3Z2MyVnNaV04wWldSUWIybHVkSE5KYm1ScFkyVnpJRDA5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdleUJ3YjJsdWRITWdmU0E5SUdWc1pXMWxiblE3WEc1Y2JpQWdJQ0JqYjI1emRDQnVaWGgwVTJWc1pXTjBaV1JKYm1ScFkyVnpPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVYRzRnSUNBZ2JHVjBJSEJ2YVc1MFFXUmtaV1JVYjBWdVpDQTlJR1poYkhObE8xeHVJQ0FnSUd4bGRDQnBibVJsZUVOMWNuTnZjaUE5SUMweE8xeHVJQ0FnSUdOdmJuTjBJRzVsZUhSUWIybHVkSE1nUFNCd2IybHVkSE11Y21Wa2RXTmxLQ2hoWTJNNklGQnZhVzUwVzEwc0lIQnZhVzUwTENCcGJtUmxlQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0t5dHBibVJsZUVOMWNuTnZjanRjYmlBZ0lDQWdJR0ZqWXk1d2RYTm9LSEJ2YVc1MEtUdGNibHh1SUNBZ0lDQWdZMjl1YzNRZ2FYTlRaV3hsWTNSbFpDQTlJSE5sYkdWamRHVmtVRzlwYm5SelNXNWthV05sY3k1cGJtTnNkV1JsY3locGJtUmxlQ2s3WEc0Z0lDQWdJQ0JwWmlBb2FYTlRaV3hsWTNSbFpDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnVaWGgwVUc5cGJuUWdQU0J3YjJsdWRITmJhVzVrWlhnZ0t5QXhYVHRjYmx4dUlDQWdJQ0FnSUNCcFppQW9JVzVsZUhSUWIybHVkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lIQnZhVzUwUVdSa1pXUlViMFZ1WkNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1lXTmpMbkIxYzJnb1hHNGdJQ0FnSUNBZ0lDQWdibVY0ZEZCdmFXNTBYRzRnSUNBZ0lDQWdJQ0FnSUNBL0lGc29jRzlwYm5SYk1GMGdLeUJ1WlhoMFVHOXBiblJiTUYwcElDOGdNaXdnS0hCdmFXNTBXekZkSUNzZ2JtVjRkRkJ2YVc1MFd6RmRLU0F2SURKZFhHNGdJQ0FnSUNBZ0lDQWdJQ0E2SUZ0d2IybHVkRnN3WFN3Z2NHOXBiblJiTVYxZExGeHVJQ0FnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0FnSUc1bGVIUlRaV3hsWTNSbFpFbHVaR2xqWlhNdWNIVnphQ2hwYm1SbGVFTjFjbk52Y2lBcklERXBPMXh1SUNBZ0lDQWdJQ0FySzJsdVpHVjRRM1Z5YzI5eU8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnlaWFIxY200Z1lXTmpPMXh1SUNBZ0lIMHNJRnRkS1R0Y2JseHVJQ0FnSUcxMWRHRjBaVVZzWlcxbGJuUW9aV3hsYldWdWRDd2dleUJ3YjJsdWRITTZJRzVsZUhSUWIybHVkSE1nZlNrN1hHNWNiaUFnSUNBdkx5QjBaVzF3SUdoaFkyc2dkRzhnWlc1emRYSmxJSFJvWlNCc2FXNWxJR1J2WlhOdUozUWdiVzkyWlNCM2FHVnVJR0ZrWkdsdVp5QndiMmx1ZENCMGJ5QjBhR1VnWlc1a0xGeHVJQ0FnSUM4dklIQnZkR1Z1ZEdsaGJHeDVJR1Y0Y0dGdVpHbHVaeUIwYUdVZ1ltOTFibVJwYm1jZ1ltOTRYRzRnSUNBZ2FXWWdLSEJ2YVc1MFFXUmtaV1JVYjBWdVpDa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2JHRnpkRkJ2YVc1MElEMGdaV3hsYldWdWRDNXdiMmx1ZEhOYlpXeGxiV1Z1ZEM1d2IybHVkSE11YkdWdVozUm9JQzBnTVYwN1hHNGdJQ0FnSUNCTWFXNWxZWEpGYkdWdFpXNTBSV1JwZEc5eUxtMXZkbVZRYjJsdWRITW9aV3hsYldWdWRDd2dXMXh1SUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ2FXNWtaWGc2SUdWc1pXMWxiblF1Y0c5cGJuUnpMbXhsYm1kMGFDQXRJREVzWEc0Z0lDQWdJQ0FnSUNBZ2NHOXBiblE2SUZ0c1lYTjBVRzlwYm5SYk1GMGdLeUF6TUN3Z2JHRnpkRkJ2YVc1MFd6RmRJQ3NnTXpCZExGeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdYU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lHRndjRk4wWVhSbE9pQjdYRzRnSUNBZ0lDQWdJQzR1TG1Gd2NGTjBZWFJsTEZ4dUlDQWdJQ0FnSUNCbFpHbDBhVzVuVEdsdVpXRnlSV3hsYldWdWREb2dlMXh1SUNBZ0lDQWdJQ0FnSUM0dUxtRndjRk4wWVhSbExtVmthWFJwYm1kTWFXNWxZWEpGYkdWdFpXNTBMRnh1SUNBZ0lDQWdJQ0FnSUhObGJHVmpkR1ZrVUc5cGJuUnpTVzVrYVdObGN6b2dibVY0ZEZObGJHVmpkR1ZrU1c1a2FXTmxjeXhjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnZlR0Y2JpQWdmVnh1WEc0Z0lITjBZWFJwWXlCa1pXeGxkR1ZRYjJsdWRITW9YRzRnSUNBZ1pXeGxiV1Z1ZERvZ1RtOXVSR1ZzWlhSbFpEeEZlR05oYkdsa2NtRjNUR2x1WldGeVJXeGxiV1Z1ZEQ0c1hHNGdJQ0FnY0c5cGJuUkpibVJwWTJWek9pQnlaV0ZrYjI1c2VTQnVkVzFpWlhKYlhTeGNiaUFnS1NCN1hHNGdJQ0FnYkdWMElHOW1abk5sZEZnZ1BTQXdPMXh1SUNBZ0lHeGxkQ0J2Wm1aelpYUlpJRDBnTUR0Y2JseHVJQ0FnSUdOdmJuTjBJR2x6UkdWc1pYUnBibWRQY21sbmFXNVFiMmx1ZENBOUlIQnZhVzUwU1c1a2FXTmxjeTVwYm1Oc2RXUmxjeWd3S1R0Y2JseHVJQ0FnSUM4dklHbG1JR1JsYkdWMGFXNW5JR1pwY25OMElIQnZhVzUwTENCdFlXdGxJSFJvWlNCdVpYaDBJSFJ2SUdKbElGc3dMREJkSUdGdVpDQnlaV05oYkdOMWJHRjBaVnh1SUNBZ0lDOHZJSEJ2YzJsMGFXOXVjeUJ2WmlCMGFHVWdjbVZ6ZENCM2FYUm9JSEpsYzNCbFkzUWdkRzhnYVhSY2JpQWdJQ0JwWmlBb2FYTkVaV3hsZEdsdVowOXlhV2RwYmxCdmFXNTBLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQm1hWEp6ZEU1dmJrUmxiR1YwWldSUWIybHVkQ0E5SUdWc1pXMWxiblF1Y0c5cGJuUnpMbVpwYm1Rb0tIQnZhVzUwTENCcFpIZ3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNGd2IybHVkRWx1WkdsalpYTXVhVzVqYkhWa1pYTW9hV1I0S1R0Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2FXWWdLR1pwY25OMFRtOXVSR1ZzWlhSbFpGQnZhVzUwS1NCN1hHNGdJQ0FnSUNBZ0lHOW1abk5sZEZnZ1BTQm1hWEp6ZEU1dmJrUmxiR1YwWldSUWIybHVkRnN3WFR0Y2JpQWdJQ0FnSUNBZ2IyWm1jMlYwV1NBOUlHWnBjbk4wVG05dVJHVnNaWFJsWkZCdmFXNTBXekZkTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHNWxlSFJRYjJsdWRITWdQU0JsYkdWdFpXNTBMbkJ2YVc1MGN5NXlaV1IxWTJVb0tHRmpZem9nVUc5cGJuUmJYU3dnY0c5cGJuUXNJR2xrZUNrZ1BUNGdlMXh1SUNBZ0lDQWdhV1lnS0NGd2IybHVkRWx1WkdsalpYTXVhVzVqYkhWa1pYTW9hV1I0S1NrZ2UxeHVJQ0FnSUNBZ0lDQmhZMk11Y0hWemFDaGNiaUFnSUNBZ0lDQWdJQ0FoWVdOakxteGxibWQwYUNBL0lGc3dMQ0F3WFNBNklGdHdiMmx1ZEZzd1hTQXRJRzltWm5ObGRGZ3NJSEJ2YVc1MFd6RmRJQzBnYjJabWMyVjBXVjBzWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnWVdOak8xeHVJQ0FnSUgwc0lGdGRLVHRjYmx4dUlDQWdJRXhwYm1WaGNrVnNaVzFsYm5SRlpHbDBiM0l1WDNWd1pHRjBaVkJ2YVc1MGN5aGxiR1Z0Wlc1MExDQnVaWGgwVUc5cGJuUnpMQ0J2Wm1aelpYUllMQ0J2Wm1aelpYUlpLVHRjYmlBZ2ZWeHVYRzRnSUhOMFlYUnBZeUJoWkdSUWIybHVkSE1vWEc0Z0lDQWdaV3hsYldWdWREb2dUbTl1UkdWc1pYUmxaRHhGZUdOaGJHbGtjbUYzVEdsdVpXRnlSV3hsYldWdWRENHNYRzRnSUNBZ2RHRnlaMlYwVUc5cGJuUnpPaUI3SUhCdmFXNTBPaUJRYjJsdWRDQjlXMTBzWEc0Z0lDa2dlMXh1SUNBZ0lHTnZibk4wSUc5bVpuTmxkRmdnUFNBd08xeHVJQ0FnSUdOdmJuTjBJRzltWm5ObGRGa2dQU0F3TzF4dVhHNGdJQ0FnWTI5dWMzUWdibVY0ZEZCdmFXNTBjeUE5SUZzdUxpNWxiR1Z0Wlc1MExuQnZhVzUwY3l3Z0xpNHVkR0Z5WjJWMFVHOXBiblJ6TG0xaGNDZ29lQ2tnUFQ0Z2VDNXdiMmx1ZENsZE8xeHVYRzRnSUNBZ1RHbHVaV0Z5Uld4bGJXVnVkRVZrYVhSdmNpNWZkWEJrWVhSbFVHOXBiblJ6S0dWc1pXMWxiblFzSUc1bGVIUlFiMmx1ZEhNc0lHOW1abk5sZEZnc0lHOW1abk5sZEZrcE8xeHVJQ0I5WEc1Y2JpQWdjM1JoZEdsaklHMXZkbVZRYjJsdWRITW9YRzRnSUNBZ1pXeGxiV1Z1ZERvZ1RtOXVSR1ZzWlhSbFpEeEZlR05oYkdsa2NtRjNUR2x1WldGeVJXeGxiV1Z1ZEQ0c1hHNGdJQ0FnZEdGeVoyVjBVRzlwYm5Sek9pQjdJR2x1WkdWNE9pQnVkVzFpWlhJN0lIQnZhVzUwT2lCUWIybHVkRHNnYVhORWNtRm5aMmx1Wno4NklHSnZiMnhsWVc0Z2ZWdGRMRnh1SUNBZ0lHOTBhR1Z5VlhCa1lYUmxjejg2SUhzZ2MzUmhjblJDYVc1a2FXNW5Qem9nVUc5cGJuUkNhVzVrYVc1bk95QmxibVJDYVc1a2FXNW5Qem9nVUc5cGJuUkNhVzVrYVc1bklIMHNYRzRnSUNrZ2UxeHVJQ0FnSUdOdmJuTjBJSHNnY0c5cGJuUnpJSDBnUFNCbGJHVnRaVzUwTzF4dVhHNGdJQ0FnTHk4Z2FXNGdZMkZ6WlNCM1pTZHlaU0J0YjNacGJtY2djM1JoY25RZ2NHOXBiblFzSUdsdWMzUmxZV1FnYjJZZ2JXOWthV1o1YVc1bklHbDBjeUJ3YjNOcGRHbHZibHh1SUNBZ0lDOHZJSGRvYVdOb0lIZHZkV3hrSUdKeVpXRnJJSFJvWlNCcGJuWmhjbWxoYm5RZ2IyWWdhWFFnWW1WcGJtY2dZWFFnV3pBc01GMHNJSGRsSUcxdmRtVmNiaUFnSUNBdkx5QmhiR3dnZEdobElHOTBhR1Z5SUhCdmFXNTBjeUJwYmlCMGFHVWdiM0J3YjNOcGRHVWdaR2x5WldOMGFXOXVJR0o1SUdSbGJIUmhJSFJ2WEc0Z0lDQWdMeThnYjJabWMyVjBJR2wwTGlCWFpTQmtieUIwYUdVZ2MyRnRaU0IzYVhSb0lHRmpkSFZoYkNCbGJHVnRaVzUwTG5ndmVTQndiM05wZEdsdmJpd2djMjljYmlBZ0lDQXZMeUIwYUdseklHaGhZMnR6SUdGeVpTQmpiMjF3YkdWMFpXeDVJSFJ5WVc1emNHRnlaVzUwSUhSdklIUm9aU0IxYzJWeUxseHVJQ0FnSUd4bGRDQnZabVp6WlhSWUlEMGdNRHRjYmlBZ0lDQnNaWFFnYjJabWMyVjBXU0E5SURBN1hHNWNiaUFnSUNCamIyNXpkQ0J6Wld4bFkzUmxaRTl5YVdkcGJsQnZhVzUwSUQwZ2RHRnlaMlYwVUc5cGJuUnpMbVpwYm1Rb0tIc2dhVzVrWlhnZ2ZTa2dQVDRnYVc1a1pYZ2dQVDA5SURBcE8xeHVYRzRnSUNBZ2FXWWdLSE5sYkdWamRHVmtUM0pwWjJsdVVHOXBiblFwSUh0Y2JpQWdJQ0FnSUc5bVpuTmxkRmdnUFZ4dUlDQWdJQ0FnSUNCelpXeGxZM1JsWkU5eWFXZHBibEJ2YVc1MExuQnZhVzUwV3pCZElDMGdjRzlwYm5SelczTmxiR1ZqZEdWa1QzSnBaMmx1VUc5cGJuUXVhVzVrWlhoZFd6QmRPMXh1SUNBZ0lDQWdiMlptYzJWMFdTQTlYRzRnSUNBZ0lDQWdJSE5sYkdWamRHVmtUM0pwWjJsdVVHOXBiblF1Y0c5cGJuUmJNVjBnTFNCd2IybHVkSE5iYzJWc1pXTjBaV1JQY21sbmFXNVFiMmx1ZEM1cGJtUmxlRjFiTVYwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdibVY0ZEZCdmFXNTBjeUE5SUhCdmFXNTBjeTV0WVhBb0tIQnZhVzUwTENCcFpIZ3BJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE5sYkdWamRHVmtVRzlwYm5SRVlYUmhJRDBnZEdGeVoyVjBVRzlwYm5SekxtWnBibVFvS0hBcElEMCtJSEF1YVc1a1pYZ2dQVDA5SUdsa2VDazdYRzRnSUNBZ0lDQnBaaUFvYzJWc1pXTjBaV1JRYjJsdWRFUmhkR0VwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSE5sYkdWamRHVmtUM0pwWjJsdVVHOXBiblFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NHOXBiblE3WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa1pXeDBZVmdnUFZ4dUlDQWdJQ0FnSUNBZ0lITmxiR1ZqZEdWa1VHOXBiblJFWVhSaExuQnZhVzUwV3pCZElDMGdjRzlwYm5SelczTmxiR1ZqZEdWa1VHOXBiblJFWVhSaExtbHVaR1Y0WFZzd1hUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1pHVnNkR0ZaSUQxY2JpQWdJQ0FnSUNBZ0lDQnpaV3hsWTNSbFpGQnZhVzUwUkdGMFlTNXdiMmx1ZEZzeFhTQXRJSEJ2YVc1MGMxdHpaV3hsWTNSbFpGQnZhVzUwUkdGMFlTNXBibVJsZUYxYk1WMDdYRzVjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRnR3YjJsdWRGc3dYU0FySUdSbGJIUmhXQ3dnY0c5cGJuUmJNVjBnS3lCa1pXeDBZVmxkSUdGeklHTnZibk4wTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJRzltWm5ObGRGZ2dmSHdnYjJabWMyVjBXVnh1SUNBZ0lDQWdJQ0EvSUNoYmNHOXBiblJiTUYwZ0xTQnZabVp6WlhSWUxDQndiMmx1ZEZzeFhTQXRJRzltWm5ObGRGbGRJR0Z6SUdOdmJuTjBLVnh1SUNBZ0lDQWdJQ0E2SUhCdmFXNTBPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdUR2x1WldGeVJXeGxiV1Z1ZEVWa2FYUnZjaTVmZFhCa1lYUmxVRzlwYm5SektGeHVJQ0FnSUNBZ1pXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUc1bGVIUlFiMmx1ZEhNc1hHNGdJQ0FnSUNCdlptWnpaWFJZTEZ4dUlDQWdJQ0FnYjJabWMyVjBXU3hjYmlBZ0lDQWdJRzkwYUdWeVZYQmtZWFJsY3l4Y2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCemRHRjBhV01nWDNWd1pHRjBaVkJ2YVc1MGN5aGNiaUFnSUNCbGJHVnRaVzUwT2lCT2IyNUVaV3hsZEdWa1BFVjRZMkZzYVdSeVlYZE1hVzVsWVhKRmJHVnRaVzUwUGl4Y2JpQWdJQ0J1WlhoMFVHOXBiblJ6T2lCeVpXRmtiMjVzZVNCUWIybHVkRnRkTEZ4dUlDQWdJRzltWm5ObGRGZzZJRzUxYldKbGNpeGNiaUFnSUNCdlptWnpaWFJaT2lCdWRXMWlaWElzWEc0Z0lDQWdiM1JvWlhKVmNHUmhkR1Z6UHpvZ2V5QnpkR0Z5ZEVKcGJtUnBibWMvT2lCUWIybHVkRUpwYm1ScGJtYzdJR1Z1WkVKcGJtUnBibWMvT2lCUWIybHVkRUpwYm1ScGJtY2dmU3hjYmlBZ0tTQjdYRzRnSUNBZ1kyOXVjM1FnYm1WNGRFTnZiM0prY3lBOUlHZGxkRVZzWlcxbGJuUlFiMmx1ZEhORGIyOXlaSE1vWEc0Z0lDQWdJQ0JsYkdWdFpXNTBMRnh1SUNBZ0lDQWdibVY0ZEZCdmFXNTBjeXhjYmlBZ0lDQWdJR1ZzWlcxbGJuUXVjM1J5YjJ0bFUyaGhjbkJ1WlhOeklIeDhJRndpY205MWJtUmNJaXhjYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUhCeVpYWkRiMjl5WkhNZ1BTQm5aWFJGYkdWdFpXNTBVRzlwYm5SelEyOXZjbVJ6S0Z4dUlDQWdJQ0FnWld4bGJXVnVkQ3hjYmlBZ0lDQWdJR1ZzWlcxbGJuUXVjRzlwYm5SekxGeHVJQ0FnSUNBZ1pXeGxiV1Z1ZEM1emRISnZhMlZUYUdGeWNHNWxjM01nZkh3Z1hDSnliM1Z1WkZ3aUxGeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdibVY0ZEVObGJuUmxjbGdnUFNBb2JtVjRkRU52YjNKa2Mxc3dYU0FySUc1bGVIUkRiMjl5WkhOYk1sMHBJQzhnTWp0Y2JpQWdJQ0JqYjI1emRDQnVaWGgwUTJWdWRHVnlXU0E5SUNodVpYaDBRMjl2Y21Seld6RmRJQ3NnYm1WNGRFTnZiM0prYzFzelhTa2dMeUF5TzF4dUlDQWdJR052Ym5OMElIQnlaWFpEWlc1MFpYSllJRDBnS0hCeVpYWkRiMjl5WkhOYk1GMGdLeUJ3Y21WMlEyOXZjbVJ6V3pKZEtTQXZJREk3WEc0Z0lDQWdZMjl1YzNRZ2NISmxka05sYm5SbGNsa2dQU0FvY0hKbGRrTnZiM0prYzFzeFhTQXJJSEJ5WlhaRGIyOXlaSE5iTTEwcElDOGdNanRjYmlBZ0lDQmpiMjV6ZENCa1dDQTlJSEJ5WlhaRFpXNTBaWEpZSUMwZ2JtVjRkRU5sYm5SbGNsZzdYRzRnSUNBZ1kyOXVjM1FnWkZrZ1BTQndjbVYyUTJWdWRHVnlXU0F0SUc1bGVIUkRaVzUwWlhKWk8xeHVJQ0FnSUdOdmJuTjBJSEp2ZEdGMFpXUWdQU0J5YjNSaGRHVW9iMlptYzJWMFdDd2diMlptYzJWMFdTd2daRmdzSUdSWkxDQmxiR1Z0Wlc1MExtRnVaMnhsS1R0Y2JseHVJQ0FnSUcxMWRHRjBaVVZzWlcxbGJuUW9aV3hsYldWdWRDd2dlMXh1SUNBZ0lDQWdMaTR1YjNSb1pYSlZjR1JoZEdWekxGeHVJQ0FnSUNBZ2NHOXBiblJ6T2lCdVpYaDBVRzlwYm5SekxGeHVJQ0FnSUNBZ2VEb2daV3hsYldWdWRDNTRJQ3NnY205MFlYUmxaRnN3WFN4Y2JpQWdJQ0FnSUhrNklHVnNaVzFsYm5RdWVTQXJJSEp2ZEdGMFpXUmJNVjBzWEc0Z0lDQWdmU2s3WEc0Z0lIMWNibjFjYmx4dVkyOXVjM1FnYm05eWJXRnNhWHBsVTJWc1pXTjBaV1JRYjJsdWRITWdQU0FvWEc0Z0lIQnZhVzUwY3pvZ0tHNTFiV0psY2lCOElHNTFiR3dwVzEwc1hHNHBPaUJ1ZFcxaVpYSmJYU0I4SUc1MWJHd2dQVDRnZTF4dUlDQnNaWFFnYm1WNGRGQnZhVzUwY3lBOUlGdGNiaUFnSUNBdUxpNXVaWGNnVTJWMEtIQnZhVzUwY3k1bWFXeDBaWElvS0hBcElEMCtJSEFnSVQwOUlHNTFiR3dnSmlZZ2NDQWhQVDBnTFRFcEtTeGNiaUFnWFNCaGN5QnVkVzFpWlhKYlhUdGNiaUFnYm1WNGRGQnZhVzUwY3lBOUlHNWxlSFJRYjJsdWRITXVjMjl5ZENnb1lTd2dZaWtnUFQ0Z1lTQXRJR0lwTzF4dUlDQnlaWFIxY200Z2JtVjRkRkJ2YVc1MGN5NXNaVzVuZEdnZ1B5QnVaWGgwVUc5cGJuUnpJRG9nYm5Wc2JEdGNibjA3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZWxlbWVudC9saW5lYXJFbGVtZW50RWRpdG9yLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9lbGVtZW50L211dGF0ZUVsZW1lbnQudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2VsZW1lbnQvbXV0YXRlRWxlbWVudC50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIm11dGF0ZUVsZW1lbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBtdXRhdGVFbGVtZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJuZXdFbGVtZW50V2l0aFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIG5ld0VsZW1lbnRXaXRoKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJidW1wVmVyc2lvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGJ1bXBWZXJzaW9uKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmVuZGVyZXJfcmVuZGVyRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcmVuZGVyZXIvcmVuZGVyRWxlbWVudCAqLyBcXFwiLi4vLi4vcmVuZGVyZXIvcmVuZGVyRWxlbWVudC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfU2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lL1NjZW5lICovIFxcXCIuLi8uLi9zY2VuZS9TY2VuZS50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcG9pbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wb2ludHMgKi8gXFxcIi4uLy4uL3BvaW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcmFuZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9yYW5kb20gKi8gXFxcIi4uLy4uL3JhbmRvbS50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcblxcblxcblxcblxcblxcbi8vIFRoaXMgZnVuY3Rpb24gdHJhY2tzIHVwZGF0ZXMgb2YgdGV4dCBlbGVtZW50cyBmb3IgdGhlIHB1cnBvc2VzIGZvciBjb2xsYWJvcmF0aW9uLlxcbi8vIFRoZSB2ZXJzaW9uIGlzIHVzZWQgdG8gY29tcGFyZSB1cGRhdGVzIHdoZW4gbW9yZSB0aGFuIG9uZSB1c2VyIGlzIHdvcmtpbmcgaW5cXG4vLyB0aGUgc2FtZSBkcmF3aW5nLiBOb3RlOiB0aGlzIHdpbGwgdHJpZ2dlciB0aGUgY29tcG9uZW50IHRvIHVwZGF0ZS4gTWFrZSBzdXJlIHlvdVxcbi8vIGFyZSBjYWxsaW5nIGl0IGVpdGhlciBmcm9tIGEgUmVhY3QgZXZlbnQgaGFuZGxlciBvciB3aXRoaW4gdW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMoKS5cXG5jb25zdCBtdXRhdGVFbGVtZW50ID0gKGVsZW1lbnQsIHVwZGF0ZXMsIGluZm9ybU11dGF0aW9uID0gdHJ1ZSkgPT4ge1xcbiAgICB2YXIgX2E7XFxuICAgIGxldCBkaWRDaGFuZ2UgPSBmYWxzZTtcXG4gICAgLy8gY2FzdGluZyB0byBhbnkgYmVjYXVzZSBjYW4ndCB1c2UgYGluYCBvcGVyYXRvclxcbiAgICAvLyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvMjE3MzIpXFxuICAgIGNvbnN0IHsgcG9pbnRzLCBmaWxlSWQgfSA9IHVwZGF0ZXM7XFxuICAgIGlmICh0eXBlb2YgcG9pbnRzICE9PSBcXFwidW5kZWZpbmVkXFxcIikge1xcbiAgICAgICAgdXBkYXRlcyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgKDAsX3BvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldFNpemVGcm9tUG9pbnRzKShwb2ludHMpKSwgdXBkYXRlcyk7XFxuICAgIH1cXG4gICAgZm9yIChjb25zdCBrZXkgaW4gdXBkYXRlcykge1xcbiAgICAgICAgY29uc3QgdmFsdWUgPSB1cGRhdGVzW2tleV07XFxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcXFwidW5kZWZpbmVkXFxcIikge1xcbiAgICAgICAgICAgIGlmIChlbGVtZW50W2tleV0gPT09IHZhbHVlICYmXFxuICAgICAgICAgICAgICAgIC8vIGlmIG9iamVjdCwgYWx3YXlzIHVwZGF0ZSBiZWNhdXNlIGl0cyBhdHRycyBjb3VsZCBoYXZlIGNoYW5nZWRcXG4gICAgICAgICAgICAgICAgLy8gKGV4Y2VwdCBmb3Igc3BlY2lmaWMga2V5cyB3ZSBoYW5kbGUgYmVsb3cpXFxuICAgICAgICAgICAgICAgICh0eXBlb2YgdmFsdWUgIT09IFxcXCJvYmplY3RcXFwiIHx8XFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gbnVsbCB8fFxcbiAgICAgICAgICAgICAgICAgICAga2V5ID09PSBcXFwiZ3JvdXBJZHNcXFwiIHx8XFxuICAgICAgICAgICAgICAgICAgICBrZXkgPT09IFxcXCJzY2FsZVxcXCIpKSB7XFxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoa2V5ID09PSBcXFwic2NhbGVcXFwiKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHByZXZTY2FsZSA9IGVsZW1lbnRba2V5XTtcXG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dFNjYWxlID0gdmFsdWU7XFxuICAgICAgICAgICAgICAgIGlmIChwcmV2U2NhbGVbMF0gPT09IG5leHRTY2FsZVswXSAmJiBwcmV2U2NhbGVbMV0gPT09IG5leHRTY2FsZVsxXSkge1xcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZWxzZSBpZiAoa2V5ID09PSBcXFwicG9pbnRzXFxcIikge1xcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2UG9pbnRzID0gZWxlbWVudFtrZXldO1xcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0UG9pbnRzID0gdmFsdWU7XFxuICAgICAgICAgICAgICAgIGlmIChwcmV2UG9pbnRzLmxlbmd0aCA9PT0gbmV4dFBvaW50cy5sZW5ndGgpIHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBkaWRDaGFuZ2VQb2ludHMgPSBmYWxzZTtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IHByZXZQb2ludHMubGVuZ3RoO1xcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKC0taW5kZXgpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2UG9pbnQgPSBwcmV2UG9pbnRzW2luZGV4XTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0UG9pbnQgPSBuZXh0UG9pbnRzW2luZGV4XTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldlBvaW50WzBdICE9PSBuZXh0UG9pbnRbMF0gfHxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldlBvaW50WzFdICE9PSBuZXh0UG9pbnRbMV0pIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlUG9pbnRzID0gdHJ1ZTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkaWRDaGFuZ2VQb2ludHMpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbGVtZW50W2tleV0gPSB2YWx1ZTtcXG4gICAgICAgICAgICBkaWRDaGFuZ2UgPSB0cnVlO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIGlmICghZGlkQ2hhbmdlKSB7XFxuICAgICAgICByZXR1cm4gZWxlbWVudDtcXG4gICAgfVxcbiAgICBpZiAodHlwZW9mIHVwZGF0ZXMuaGVpZ2h0ICE9PSBcXFwidW5kZWZpbmVkXFxcIiB8fFxcbiAgICAgICAgdHlwZW9mIHVwZGF0ZXMud2lkdGggIT09IFxcXCJ1bmRlZmluZWRcXFwiIHx8XFxuICAgICAgICB0eXBlb2YgZmlsZUlkICE9IFxcXCJ1bmRlZmluZWRcXFwiIHx8XFxuICAgICAgICB0eXBlb2YgcG9pbnRzICE9PSBcXFwidW5kZWZpbmVkXFxcIikge1xcbiAgICAgICAgKDAsX3JlbmRlcmVyX3JlbmRlckVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5pbnZhbGlkYXRlU2hhcGVGb3JFbGVtZW50KShlbGVtZW50KTtcXG4gICAgfVxcbiAgICBlbGVtZW50LnZlcnNpb24rKztcXG4gICAgZWxlbWVudC52ZXJzaW9uTm9uY2UgPSAoMCxfcmFuZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ucmFuZG9tSW50ZWdlcikoKTtcXG4gICAgZWxlbWVudC51cGRhdGVkID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uZ2V0VXBkYXRlZFRpbWVzdGFtcCkoKTtcXG4gICAgaWYgKGluZm9ybU11dGF0aW9uKSB7XFxuICAgICAgICAoX2EgPSBfc2NlbmVfU2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1tcXFwiZGVmYXVsdFxcXCJdLmdldFNjZW5lKGVsZW1lbnQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaW5mb3JtTXV0YXRpb24oKTtcXG4gICAgfVxcbiAgICByZXR1cm4gZWxlbWVudDtcXG59O1xcbmNvbnN0IG5ld0VsZW1lbnRXaXRoID0gKGVsZW1lbnQsIHVwZGF0ZXMpID0+IHtcXG4gICAgbGV0IGRpZENoYW5nZSA9IGZhbHNlO1xcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB1cGRhdGVzKSB7XFxuICAgICAgICBjb25zdCB2YWx1ZSA9IHVwZGF0ZXNba2V5XTtcXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFxcXCJ1bmRlZmluZWRcXFwiKSB7XFxuICAgICAgICAgICAgaWYgKGVsZW1lbnRba2V5XSA9PT0gdmFsdWUgJiZcXG4gICAgICAgICAgICAgICAgLy8gaWYgb2JqZWN0LCBhbHdheXMgdXBkYXRlIGJlY2F1c2UgaXRzIGF0dHJzIGNvdWxkIGhhdmUgY2hhbmdlZFxcbiAgICAgICAgICAgICAgICAodHlwZW9mIHZhbHVlICE9PSBcXFwib2JqZWN0XFxcIiB8fCB2YWx1ZSA9PT0gbnVsbCkpIHtcXG4gICAgICAgICAgICAgICAgY29udGludWU7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGRpZENoYW5nZSA9IHRydWU7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgaWYgKCFkaWRDaGFuZ2UpIHtcXG4gICAgICAgIHJldHVybiBlbGVtZW50O1xcbiAgICB9XFxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZWxlbWVudCksIHVwZGF0ZXMpLCB7IHVwZGF0ZWQ6ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmdldFVwZGF0ZWRUaW1lc3RhbXApKCksIHZlcnNpb246IGVsZW1lbnQudmVyc2lvbiArIDEsIHZlcnNpb25Ob25jZTogKDAsX3JhbmRvbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnJhbmRvbUludGVnZXIpKCkgfSk7XFxufTtcXG4vKipcXG4gKiBNdXRhdGVzIGVsZW1lbnQsIGJ1bXBpbmcgYHZlcnNpb25gLCBgdmVyc2lvbk5vbmNlYCwgYW5kIGB1cGRhdGVkYC5cXG4gKlxcbiAqIE5PVEU6IGRvZXMgbm90IHRyaWdnZXIgcmUtcmVuZGVyLlxcbiAqL1xcbmNvbnN0IGJ1bXBWZXJzaW9uID0gKGVsZW1lbnQsIHZlcnNpb24pID0+IHtcXG4gICAgZWxlbWVudC52ZXJzaW9uID0gKHZlcnNpb24gIT09IG51bGwgJiYgdmVyc2lvbiAhPT0gdm9pZCAwID8gdmVyc2lvbiA6IGVsZW1lbnQudmVyc2lvbikgKyAxO1xcbiAgICBlbGVtZW50LnZlcnNpb25Ob25jZSA9ICgwLF9yYW5kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5yYW5kb21JbnRlZ2VyKSgpO1xcbiAgICBlbGVtZW50LnVwZGF0ZWQgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5nZXRVcGRhdGVkVGltZXN0YW1wKSgpO1xcbiAgICByZXR1cm4gZWxlbWVudDtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2Wld4bGJXVnVkQzl0ZFhSaGRHVkZiR1Z0Wlc1MExuUnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPMEZCUTNORk8wRkJRMjVETzBGQlExYzdRVUZEU2p0QlFVVkxPMEZCVHk5RExHOUdRVUZ2Ump0QlFVTndSaXdyUlVGQkswVTdRVUZETDBVc2JVWkJRVzFHTzBGQlEyNUdMSGRHUVVGM1JqdEJRVU5xUml4TlFVRk5MR0ZCUVdFc1IwRkJSeXhEUVVNelFpeFBRVUZwUWl4RlFVTnFRaXhQUVVGblF5eEZRVU5vUXl4alFVRmpMRWRCUVVjc1NVRkJTU3hGUVVOWUxFVkJRVVU3TzBsQlExb3NTVUZCU1N4VFFVRlRMRWRCUVVjc1MwRkJTeXhEUVVGRE8wbEJSWFJDTEdsRVFVRnBSRHRKUVVOcVJDdzJSRUZCTmtRN1NVRkROMFFzVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVVc1IwRkJSeXhQUVVGakxFTkJRVU03U1VGRk1VTXNTVUZCU1N4UFFVRlBMRTFCUVUwc1MwRkJTeXhYUVVGWExFVkJRVVU3VVVGRGFrTXNUMEZCVHl4dFEwRkJVU3d3UkVGQmFVSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJTeXhQUVVGUExFTkJRVVVzUTBGQlF6dExRVU40UkR0SlFVVkVMRXRCUVVzc1RVRkJUU3hIUVVGSExFbEJRVWtzVDBGQlR5eEZRVUZGTzFGQlEzcENMRTFCUVUwc1MwRkJTeXhIUVVGSkxFOUJRV1VzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTndReXhKUVVGSkxFOUJRVThzUzBGQlN5eExRVUZMTEZkQlFWY3NSVUZCUlR0WlFVTm9ReXhKUVVOSExFOUJRV1VzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4TFFVRkxPMmRDUVVNdlFpeG5SVUZCWjBVN1owSkJRMmhGTERaRFFVRTJRenRuUWtGRE4wTXNRMEZCUXl4UFFVRlBMRXRCUVVzc1MwRkJTeXhSUVVGUk8yOUNRVU40UWl4TFFVRkxMRXRCUVVzc1NVRkJTVHR2UWtGRFpDeEhRVUZITEV0QlFVc3NWVUZCVlR0dlFrRkRiRUlzUjBGQlJ5eExRVUZMTEU5QlFVOHNRMEZCUXl4RlFVTnNRanRuUWtGRFFTeFRRVUZUTzJGQlExWTdXVUZGUkN4SlFVRkpMRWRCUVVjc1MwRkJTeXhQUVVGUExFVkJRVVU3WjBKQlEyNUNMRTFCUVUwc1UwRkJVeXhIUVVGSkxFOUJRV1VzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0blFrRkRlRU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NTMEZCU3l4RFFVRkRPMmRDUVVONFFpeEpRVUZKTEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlR0dlFrRkRiRVVzVTBGQlV6dHBRa0ZEVmp0aFFVTkdPMmxDUVVGTkxFbEJRVWtzUjBGQlJ5eExRVUZMTEZGQlFWRXNSVUZCUlR0blFrRkRNMElzVFVGQlRTeFZRVUZWTEVkQlFVa3NUMEZCWlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU42UXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhMUVVGTExFTkJRVU03WjBKQlEzcENMRWxCUVVrc1ZVRkJWU3hEUVVGRExFMUJRVTBzUzBGQlN5eFZRVUZWTEVOQlFVTXNUVUZCVFN4RlFVRkZPMjlDUVVNelF5eEpRVUZKTEdWQlFXVXNSMEZCUnl4TFFVRkxMRU5CUVVNN2IwSkJRelZDTEVsQlFVa3NTMEZCU3l4SFFVRkhMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU03YjBKQlF6bENMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVU3ZDBKQlEyUXNUVUZCVFN4VFFVRlRMRWRCUVZVc1ZVRkJWU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzNkQ1FVTXpReXhOUVVGTkxGTkJRVk1zUjBGQlZTeFZRVUZWTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN2QwSkJRek5ETEVsQlEwVXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTTdORUpCUXpkQ0xGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRemRDT3pSQ1FVTkJMR1ZCUVdVc1IwRkJSeXhKUVVGSkxFTkJRVU03TkVKQlEzWkNMRTFCUVUwN2VVSkJRMUE3Y1VKQlEwWTdiMEpCUTBRc1NVRkJTU3hEUVVGRExHVkJRV1VzUlVGQlJUdDNRa0ZEY0VJc1UwRkJVenR4UWtGRFZqdHBRa0ZEUmp0aFFVTkdPMWxCUlVFc1QwRkJaU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXp0WlFVTTVRaXhUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETzFOQlEyeENPMHRCUTBZN1NVRkRSQ3hKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTzFGQlEyUXNUMEZCVHl4UFFVRlBMRU5CUVVNN1MwRkRhRUk3U1VGRlJDeEpRVU5GTEU5QlFVOHNUMEZCVHl4RFFVRkRMRTFCUVUwc1MwRkJTeXhYUVVGWE8xRkJRM0pETEU5QlFVOHNUMEZCVHl4RFFVRkRMRXRCUVVzc1MwRkJTeXhYUVVGWE8xRkJRM0JETEU5QlFVOHNUVUZCVFN4SlFVRkpMRmRCUVZjN1VVRkROVUlzVDBGQlR5eE5RVUZOTEV0QlFVc3NWMEZCVnl4RlFVTTNRanRSUVVOQkxHdEdRVUY1UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wdEJRM0JETzBsQlJVUXNUMEZCVHl4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wbEJRMnhDTEU5QlFVOHNRMEZCUXl4WlFVRlpMRWRCUVVjc2MwUkJRV0VzUlVGQlJTeERRVUZETzBsQlEzWkRMRTlCUVU4c1EwRkJReXhQUVVGUExFZEJRVWNzTWtSQlFXMUNMRVZCUVVVc1EwRkJRenRKUVVWNFF5eEpRVUZKTEdOQlFXTXNSVUZCUlR0UlFVTnNRaXh0UlVGQll5eERRVUZETEU5QlFVOHNRMEZCUXl3d1EwRkJSU3hqUVVGakxFVkJRVVVzUTBGQlF6dExRVU16UXp0SlFVVkVMRTlCUVU4c1QwRkJUeXhEUVVGRE8wRkJRMnBDTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc1kwRkJZeXhIUVVGSExFTkJRelZDTEU5QlFXbENMRVZCUTJwQ0xFOUJRV2RETEVWQlEzUkNMRVZCUVVVN1NVRkRXaXhKUVVGSkxGTkJRVk1zUjBGQlJ5eExRVUZMTEVOQlFVTTdTVUZEZEVJc1MwRkJTeXhOUVVGTkxFZEJRVWNzU1VGQlNTeFBRVUZQTEVWQlFVVTdVVUZEZWtJc1RVRkJUU3hMUVVGTExFZEJRVWtzVDBGQlpTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNCRExFbEJRVWtzVDBGQlR5eExRVUZMTEV0QlFVc3NWMEZCVnl4RlFVRkZPMWxCUTJoRExFbEJRMGNzVDBGQlpTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRXRCUVVzN1owSkJReTlDTEdkRlFVRm5SVHRuUWtGRGFFVXNRMEZCUXl4UFFVRlBMRXRCUVVzc1MwRkJTeXhSUVVGUkxFbEJRVWtzUzBGQlN5eExRVUZMTEVsQlFVa3NRMEZCUXl4RlFVTTNRenRuUWtGRFFTeFRRVUZUTzJGQlExWTdXVUZEUkN4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRE8xTkJRMnhDTzB0QlEwWTdTVUZGUkN4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRk8xRkJRMlFzVDBGQlR5eFBRVUZQTEVOQlFVTTdTMEZEYUVJN1NVRkZSQ3h4UkVGRFN5eFBRVUZQTEVkQlExQXNUMEZCVHl4TFFVTldMRTlCUVU4c1JVRkJSU3d5UkVGQmJVSXNSVUZCUlN4RlFVTTVRaXhQUVVGUExFVkJRVVVzVDBGQlR5eERRVUZETEU5QlFVOHNSMEZCUnl4RFFVRkRMRVZCUXpWQ0xGbEJRVmtzUlVGQlJTeHpSRUZCWVN4RlFVRkZMRWxCUXpkQ08wRkJRMG9zUTBGQlF5eERRVUZETzBGQlJVWTdPenM3UjBGSlJ6dEJRVU5KTEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUTNwQ0xFOUJRVzFETEVWQlEyNURMRTlCUVhORExFVkJRM1JETEVWQlFVVTdTVUZEUml4UFFVRlBMRU5CUVVNc1QwRkJUeXhIUVVGSExFTkJRVU1zVDBGQlR5eGhRVUZRTEU5QlFVOHNZMEZCVUN4UFFVRlBMRWRCUVVrc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTnVSQ3hQUVVGUExFTkJRVU1zV1VGQldTeEhRVUZITEhORVFVRmhMRVZCUVVVc1EwRkJRenRKUVVOMlF5eFBRVUZQTEVOQlFVTXNUMEZCVHl4SFFVRkhMREpFUVVGdFFpeEZRVUZGTEVOQlFVTTdTVUZEZUVNc1QwRkJUeXhQUVVGUExFTkJRVU03UVVGRGFrSXNRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJWc1pXMWxiblF2YlhWMFlYUmxSV3hsYldWdWRDNTBjejlqTm1RM0lsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBJSDBnWm5KdmJTQmNJaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUdsdWRtRnNhV1JoZEdWVGFHRndaVVp2Y2tWc1pXMWxiblFnZlNCbWNtOXRJRndpTGk0dmNtVnVaR1Z5WlhJdmNtVnVaR1Z5Uld4bGJXVnVkRndpTzF4dWFXMXdiM0owSUZOalpXNWxJR1p5YjIwZ1hDSXVMaTl6WTJWdVpTOVRZMlZ1WlZ3aU8xeHVhVzF3YjNKMElIc2daMlYwVTJsNlpVWnliMjFRYjJsdWRITWdmU0JtY205dElGd2lMaTR2Y0c5cGJuUnpYQ0k3WEc1cGJYQnZjblFnZXlCeVlXNWtiMjFKYm5SbFoyVnlJSDBnWm5KdmJTQmNJaTR1TDNKaGJtUnZiVndpTzF4dWFXMXdiM0owSUhzZ1VHOXBiblFnZlNCbWNtOXRJRndpTGk0dmRIbHdaWE5jSWp0Y2JtbHRjRzl5ZENCN0lHZGxkRlZ3WkdGMFpXUlVhVzFsYzNSaGJYQWdmU0JtY205dElGd2lMaTR2ZFhScGJITmNJanRjYmx4dWRIbHdaU0JGYkdWdFpXNTBWWEJrWVhSbFBGUkZiR1Z0Wlc1MElHVjRkR1Z1WkhNZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5RK0lEMGdUMjFwZER4Y2JpQWdVR0Z5ZEdsaGJEeFVSV3hsYldWdWRENHNYRzRnSUZ3aWFXUmNJaUI4SUZ3aWRtVnljMmx2Ymx3aUlId2dYQ0oyWlhKemFXOXVUbTl1WTJWY0lseHVQanRjYmx4dUx5OGdWR2hwY3lCbWRXNWpkR2x2YmlCMGNtRmphM01nZFhCa1lYUmxjeUJ2WmlCMFpYaDBJR1ZzWlcxbGJuUnpJR1p2Y2lCMGFHVWdjSFZ5Y0c5elpYTWdabTl5SUdOdmJHeGhZbTl5WVhScGIyNHVYRzR2THlCVWFHVWdkbVZ5YzJsdmJpQnBjeUIxYzJWa0lIUnZJR052YlhCaGNtVWdkWEJrWVhSbGN5QjNhR1Z1SUcxdmNtVWdkR2hoYmlCdmJtVWdkWE5sY2lCcGN5QjNiM0pyYVc1bklHbHVYRzR2THlCMGFHVWdjMkZ0WlNCa2NtRjNhVzVuTGlCT2IzUmxPaUIwYUdseklIZHBiR3dnZEhKcFoyZGxjaUIwYUdVZ1kyOXRjRzl1Wlc1MElIUnZJSFZ3WkdGMFpTNGdUV0ZyWlNCemRYSmxJSGx2ZFZ4dUx5OGdZWEpsSUdOaGJHeHBibWNnYVhRZ1pXbDBhR1Z5SUdaeWIyMGdZU0JTWldGamRDQmxkbVZ1ZENCb1lXNWtiR1Z5SUc5eUlIZHBkR2hwYmlCMWJuTjBZV0pzWlY5aVlYUmphR1ZrVlhCa1lYUmxjeWdwTGx4dVpYaHdiM0owSUdOdmJuTjBJRzExZEdGMFpVVnNaVzFsYm5RZ1BTQThWRVZzWlcxbGJuUWdaWGgwWlc1a2N5Qk5kWFJoWW14bFBFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFBqNG9YRzRnSUdWc1pXMWxiblE2SUZSRmJHVnRaVzUwTEZ4dUlDQjFjR1JoZEdWek9pQkZiR1Z0Wlc1MFZYQmtZWFJsUEZSRmJHVnRaVzUwUGl4Y2JpQWdhVzVtYjNKdFRYVjBZWFJwYjI0Z1BTQjBjblZsTEZ4dUtUb2dWRVZzWlcxbGJuUWdQVDRnZTF4dUlDQnNaWFFnWkdsa1EyaGhibWRsSUQwZ1ptRnNjMlU3WEc1Y2JpQWdMeThnWTJGemRHbHVaeUIwYnlCaGJua2dZbVZqWVhWelpTQmpZVzRuZENCMWMyVWdZR2x1WUNCdmNHVnlZWFJ2Y2x4dUlDQXZMeUFvYzJWbElHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOXRhV055YjNOdlpuUXZWSGx3WlZOamNtbHdkQzlwYzNOMVpYTXZNakUzTXpJcFhHNGdJR052Ym5OMElIc2djRzlwYm5SekxDQm1hV3hsU1dRZ2ZTQTlJSFZ3WkdGMFpYTWdZWE1nWVc1NU8xeHVYRzRnSUdsbUlDaDBlWEJsYjJZZ2NHOXBiblJ6SUNFOVBTQmNJblZ1WkdWbWFXNWxaRndpS1NCN1hHNGdJQ0FnZFhCa1lYUmxjeUE5SUhzZ0xpNHVaMlYwVTJsNlpVWnliMjFRYjJsdWRITW9jRzlwYm5SektTd2dMaTR1ZFhCa1lYUmxjeUI5TzF4dUlDQjlYRzVjYmlBZ1ptOXlJQ2hqYjI1emRDQnJaWGtnYVc0Z2RYQmtZWFJsY3lrZ2UxeHVJQ0FnSUdOdmJuTjBJSFpoYkhWbElEMGdLSFZ3WkdGMFpYTWdZWE1nWVc1NUtWdHJaWGxkTzF4dUlDQWdJR2xtSUNoMGVYQmxiMllnZG1Gc2RXVWdJVDA5SUZ3aWRXNWtaV1pwYm1Wa1hDSXBJSHRjYmlBZ0lDQWdJR2xtSUNoY2JpQWdJQ0FnSUNBZ0tHVnNaVzFsYm5RZ1lYTWdZVzU1S1Z0clpYbGRJRDA5UFNCMllXeDFaU0FtSmx4dUlDQWdJQ0FnSUNBdkx5QnBaaUJ2WW1wbFkzUXNJR0ZzZDJGNWN5QjFjR1JoZEdVZ1ltVmpZWFZ6WlNCcGRITWdZWFIwY25NZ1kyOTFiR1FnYUdGMlpTQmphR0Z1WjJWa1hHNGdJQ0FnSUNBZ0lDOHZJQ2hsZUdObGNIUWdabTl5SUhOd1pXTnBabWxqSUd0bGVYTWdkMlVnYUdGdVpHeGxJR0psYkc5M0tWeHVJQ0FnSUNBZ0lDQW9kSGx3Wlc5bUlIWmhiSFZsSUNFOVBTQmNJbTlpYW1WamRGd2lJSHg4WEc0Z0lDQWdJQ0FnSUNBZ2RtRnNkV1VnUFQwOUlHNTFiR3dnZkh4Y2JpQWdJQ0FnSUNBZ0lDQnJaWGtnUFQwOUlGd2laM0p2ZFhCSlpITmNJaUI4ZkZ4dUlDQWdJQ0FnSUNBZ0lHdGxlU0E5UFQwZ1hDSnpZMkZzWlZ3aUtWeHVJQ0FnSUNBZ0tTQjdYRzRnSUNBZ0lDQWdJR052Ym5ScGJuVmxPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb2EyVjVJRDA5UFNCY0luTmpZV3hsWENJcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NISmxkbE5qWVd4bElEMGdLR1ZzWlcxbGJuUWdZWE1nWVc1NUtWdHJaWGxkTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J1WlhoMFUyTmhiR1VnUFNCMllXeDFaVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tIQnlaWFpUWTJGc1pWc3dYU0E5UFQwZ2JtVjRkRk5qWVd4bFd6QmRJQ1ltSUhCeVpYWlRZMkZzWlZzeFhTQTlQVDBnYm1WNGRGTmpZV3hsV3pGZEtTQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwZ1pXeHpaU0JwWmlBb2EyVjVJRDA5UFNCY0luQnZhVzUwYzF3aUtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIQnlaWFpRYjJsdWRITWdQU0FvWld4bGJXVnVkQ0JoY3lCaGJua3BXMnRsZVYwN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc1bGVIUlFiMmx1ZEhNZ1BTQjJZV3gxWlR0Y2JpQWdJQ0FnSUNBZ2FXWWdLSEJ5WlhaUWIybHVkSE11YkdWdVozUm9JRDA5UFNCdVpYaDBVRzlwYm5SekxteGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR3hsZENCa2FXUkRhR0Z1WjJWUWIybHVkSE1nUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNCc1pYUWdhVzVrWlhnZ1BTQndjbVYyVUc5cGJuUnpMbXhsYm1kMGFEdGNiaUFnSUNBZ0lDQWdJQ0IzYUdsc1pTQW9MUzFwYm1SbGVDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY0hKbGRsQnZhVzUwT2lCUWIybHVkQ0E5SUhCeVpYWlFiMmx1ZEhOYmFXNWtaWGhkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JtVjRkRkJ2YVc1ME9pQlFiMmx1ZENBOUlHNWxlSFJRYjJsdWRITmJhVzVrWlhoZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCd2NtVjJVRzlwYm5SYk1GMGdJVDA5SUc1bGVIUlFiMmx1ZEZzd1hTQjhmRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQndjbVYyVUc5cGJuUmJNVjBnSVQwOUlHNWxlSFJRYjJsdWRGc3hYVnh1SUNBZ0lDQWdJQ0FnSUNBZ0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHUnBaRU5vWVc1blpWQnZhVzUwY3lBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0JwWmlBb0lXUnBaRU5vWVc1blpWQnZhVzUwY3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ2hsYkdWdFpXNTBJR0Z6SUdGdWVTbGJhMlY1WFNBOUlIWmhiSFZsTzF4dUlDQWdJQ0FnWkdsa1EyaGhibWRsSUQwZ2RISjFaVHRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdhV1lnS0NGa2FXUkRhR0Z1WjJVcElIdGNiaUFnSUNCeVpYUjFjbTRnWld4bGJXVnVkRHRjYmlBZ2ZWeHVYRzRnSUdsbUlDaGNiaUFnSUNCMGVYQmxiMllnZFhCa1lYUmxjeTVvWldsbmFIUWdJVDA5SUZ3aWRXNWtaV1pwYm1Wa1hDSWdmSHhjYmlBZ0lDQjBlWEJsYjJZZ2RYQmtZWFJsY3k1M2FXUjBhQ0FoUFQwZ1hDSjFibVJsWm1sdVpXUmNJaUI4ZkZ4dUlDQWdJSFI1Y0dWdlppQm1hV3hsU1dRZ0lUMGdYQ0oxYm1SbFptbHVaV1JjSWlCOGZGeHVJQ0FnSUhSNWNHVnZaaUJ3YjJsdWRITWdJVDA5SUZ3aWRXNWtaV1pwYm1Wa1hDSmNiaUFnS1NCN1hHNGdJQ0FnYVc1MllXeHBaR0YwWlZOb1lYQmxSbTl5Uld4bGJXVnVkQ2hsYkdWdFpXNTBLVHRjYmlBZ2ZWeHVYRzRnSUdWc1pXMWxiblF1ZG1WeWMybHZiaXNyTzF4dUlDQmxiR1Z0Wlc1MExuWmxjbk5wYjI1T2IyNWpaU0E5SUhKaGJtUnZiVWx1ZEdWblpYSW9LVHRjYmlBZ1pXeGxiV1Z1ZEM1MWNHUmhkR1ZrSUQwZ1oyVjBWWEJrWVhSbFpGUnBiV1Z6ZEdGdGNDZ3BPMXh1WEc0Z0lHbG1JQ2hwYm1admNtMU5kWFJoZEdsdmJpa2dlMXh1SUNBZ0lGTmpaVzVsTG1kbGRGTmpaVzVsS0dWc1pXMWxiblFwUHk1cGJtWnZjbTFOZFhSaGRHbHZiaWdwTzF4dUlDQjlYRzVjYmlBZ2NtVjBkWEp1SUdWc1pXMWxiblE3WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2JtVjNSV3hsYldWdWRGZHBkR2dnUFNBOFZFVnNaVzFsYm5RZ1pYaDBaVzVrY3lCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEQ0b1hHNGdJR1ZzWlcxbGJuUTZJRlJGYkdWdFpXNTBMRnh1SUNCMWNHUmhkR1Z6T2lCRmJHVnRaVzUwVlhCa1lYUmxQRlJGYkdWdFpXNTBQaXhjYmlrNklGUkZiR1Z0Wlc1MElEMCtJSHRjYmlBZ2JHVjBJR1JwWkVOb1lXNW5aU0E5SUdaaGJITmxPMXh1SUNCbWIzSWdLR052Ym5OMElHdGxlU0JwYmlCMWNHUmhkR1Z6S1NCN1hHNGdJQ0FnWTI5dWMzUWdkbUZzZFdVZ1BTQW9kWEJrWVhSbGN5QmhjeUJoYm5rcFcydGxlVjA3WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUIyWVd4MVpTQWhQVDBnWENKMWJtUmxabWx1WldSY0lpa2dlMXh1SUNBZ0lDQWdhV1lnS0Z4dUlDQWdJQ0FnSUNBb1pXeGxiV1Z1ZENCaGN5QmhibmtwVzJ0bGVWMGdQVDA5SUhaaGJIVmxJQ1ltWEc0Z0lDQWdJQ0FnSUM4dklHbG1JRzlpYW1WamRDd2dZV3gzWVhseklIVndaR0YwWlNCaVpXTmhkWE5sSUdsMGN5QmhkSFJ5Y3lCamIzVnNaQ0JvWVhabElHTm9ZVzVuWldSY2JpQWdJQ0FnSUNBZ0tIUjVjR1Z2WmlCMllXeDFaU0FoUFQwZ1hDSnZZbXBsWTNSY0lpQjhmQ0IyWVd4MVpTQTlQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR1JwWkVOb1lXNW5aU0E5SUhSeWRXVTdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdhV1lnS0NGa2FXUkRhR0Z1WjJVcElIdGNiaUFnSUNCeVpYUjFjbTRnWld4bGJXVnVkRHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUI3WEc0Z0lDQWdMaTR1Wld4bGJXVnVkQ3hjYmlBZ0lDQXVMaTUxY0dSaGRHVnpMRnh1SUNBZ0lIVndaR0YwWldRNklHZGxkRlZ3WkdGMFpXUlVhVzFsYzNSaGJYQW9LU3hjYmlBZ0lDQjJaWEp6YVc5dU9pQmxiR1Z0Wlc1MExuWmxjbk5wYjI0Z0t5QXhMRnh1SUNBZ0lIWmxjbk5wYjI1T2IyNWpaVG9nY21GdVpHOXRTVzUwWldkbGNpZ3BMRnh1SUNCOU8xeHVmVHRjYmx4dUx5b3FYRzRnS2lCTmRYUmhkR1Z6SUdWc1pXMWxiblFzSUdKMWJYQnBibWNnWUhabGNuTnBiMjVnTENCZ2RtVnljMmx2Yms1dmJtTmxZQ3dnWVc1a0lHQjFjR1JoZEdWa1lDNWNiaUFxWEc0Z0tpQk9UMVJGT2lCa2IyVnpJRzV2ZENCMGNtbG5aMlZ5SUhKbExYSmxibVJsY2k1Y2JpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElHSjFiWEJXWlhKemFXOXVJRDBnS0Z4dUlDQmxiR1Z0Wlc1ME9pQk5kWFJoWW14bFBFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFBpeGNiaUFnZG1WeWMybHZiajg2SUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzF3aWRtVnljMmx2Ymx3aVhTeGNiaWtnUFQ0Z2UxeHVJQ0JsYkdWdFpXNTBMblpsY25OcGIyNGdQU0FvZG1WeWMybHZiaUEvUHlCbGJHVnRaVzUwTG5abGNuTnBiMjRwSUNzZ01UdGNiaUFnWld4bGJXVnVkQzUyWlhKemFXOXVUbTl1WTJVZ1BTQnlZVzVrYjIxSmJuUmxaMlZ5S0NrN1hHNGdJR1ZzWlcxbGJuUXVkWEJrWVhSbFpDQTlJR2RsZEZWd1pHRjBaV1JVYVcxbGMzUmhiWEFvS1R0Y2JpQWdjbVYwZFhKdUlHVnNaVzFsYm5RN1hHNTlPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9lbGVtZW50L211dGF0ZUVsZW1lbnQudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2VsZW1lbnQvbmV3RWxlbWVudC50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vZWxlbWVudC9uZXdFbGVtZW50LnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibmV3RWxlbWVudFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIG5ld0VsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIm5ld1RleHRFbGVtZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gbmV3VGV4dEVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInVwZGF0ZVRleHRFbGVtZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gdXBkYXRlVGV4dEVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIm5ld0ZyZWVEcmF3RWxlbWVudFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIG5ld0ZyZWVEcmF3RWxlbWVudCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibmV3TGluZWFyRWxlbWVudFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIG5ld0xpbmVhckVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIm5ld0ltYWdlRWxlbWVudFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIG5ld0ltYWdlRWxlbWVudCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVlcENvcHlFbGVtZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZGVlcENvcHlFbGVtZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkdXBsaWNhdGVFbGVtZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZHVwbGljYXRlRWxlbWVudClcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi91dGlscyAqLyBcXFwiLi4vLi4vdXRpbHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3JhbmRvbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcmFuZG9tICovIFxcXCIuLi8uLi9yYW5kb20udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vbXV0YXRlRWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9tdXRhdGVFbGVtZW50LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2dyb3VwcyAqLyBcXFwiLi4vLi4vZ3JvdXBzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4gKi8gXFxcIi4uLy4uL2VsZW1lbnQvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL21hdGggKi8gXFxcIi4uLy4uL21hdGgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2JvdW5kc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9ib3VuZHMgKi8gXFxcIi4uLy4uL2VsZW1lbnQvYm91bmRzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90ZXh0RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi90ZXh0RWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC90ZXh0RWxlbWVudC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi90eXBlQ2hlY2tzICovIFxcXCIuLi8uLi9lbGVtZW50L3R5cGVDaGVja3MudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29uc3RhbnRzICovIFxcXCIuLi8uLi9jb25zdGFudHMudHNcXFwiKTtcXG52YXIgX19yZXN0ID0gKHVuZGVmaW5lZCAmJiB1bmRlZmluZWQuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xcbiAgICB2YXIgdCA9IHt9O1xcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcXG4gICAgICAgIHRbcF0gPSBzW3BdO1xcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcXFwiZnVuY3Rpb25cXFwiKVxcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XFxuICAgICAgICB9XFxuICAgIHJldHVybiB0O1xcbn07XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3QgX25ld0VsZW1lbnRCYXNlID0gKHR5cGUsIF9hKSA9PiB7XFxuICAgIHZhciBfYiwgX2M7XFxuICAgIHZhciB7IHgsIHksIHN0cm9rZUNvbG9yLCBiYWNrZ3JvdW5kQ29sb3IsIGZpbGxTdHlsZSwgc3Ryb2tlV2lkdGgsIHN0cm9rZVN0eWxlLCByb3VnaG5lc3MsIG9wYWNpdHksIHdpZHRoID0gMCwgaGVpZ2h0ID0gMCwgYW5nbGUgPSAwLCBncm91cElkcyA9IFtdLCBzdHJva2VTaGFycG5lc3MsIGJvdW5kRWxlbWVudHMgPSBudWxsLCBsaW5rID0gbnVsbCB9ID0gX2EsIHJlc3QgPSBfX3Jlc3QoX2EsIFtcXFwieFxcXCIsIFxcXCJ5XFxcIiwgXFxcInN0cm9rZUNvbG9yXFxcIiwgXFxcImJhY2tncm91bmRDb2xvclxcXCIsIFxcXCJmaWxsU3R5bGVcXFwiLCBcXFwic3Ryb2tlV2lkdGhcXFwiLCBcXFwic3Ryb2tlU3R5bGVcXFwiLCBcXFwicm91Z2huZXNzXFxcIiwgXFxcIm9wYWNpdHlcXFwiLCBcXFwid2lkdGhcXFwiLCBcXFwiaGVpZ2h0XFxcIiwgXFxcImFuZ2xlXFxcIiwgXFxcImdyb3VwSWRzXFxcIiwgXFxcInN0cm9rZVNoYXJwbmVzc1xcXCIsIFxcXCJib3VuZEVsZW1lbnRzXFxcIiwgXFxcImxpbmtcXFwiXSk7XFxuICAgIGNvbnN0IGVsZW1lbnQgPSB7XFxuICAgICAgICBpZDogcmVzdC5pZCB8fCAoMCxfcmFuZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ucmFuZG9tSWQpKCksXFxuICAgICAgICB0eXBlLFxcbiAgICAgICAgeCxcXG4gICAgICAgIHksXFxuICAgICAgICB3aWR0aCxcXG4gICAgICAgIGhlaWdodCxcXG4gICAgICAgIGFuZ2xlLFxcbiAgICAgICAgc3Ryb2tlQ29sb3IsXFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3IsXFxuICAgICAgICBmaWxsU3R5bGUsXFxuICAgICAgICBzdHJva2VXaWR0aCxcXG4gICAgICAgIHN0cm9rZVN0eWxlLFxcbiAgICAgICAgcm91Z2huZXNzLFxcbiAgICAgICAgb3BhY2l0eSxcXG4gICAgICAgIGdyb3VwSWRzLFxcbiAgICAgICAgc3Ryb2tlU2hhcnBuZXNzLFxcbiAgICAgICAgc2VlZDogKF9iID0gcmVzdC5zZWVkKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAoMCxfcmFuZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ucmFuZG9tSW50ZWdlcikoKSxcXG4gICAgICAgIHZlcnNpb246IHJlc3QudmVyc2lvbiB8fCAxLFxcbiAgICAgICAgdmVyc2lvbk5vbmNlOiAoX2MgPSByZXN0LnZlcnNpb25Ob25jZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMCxcXG4gICAgICAgIGlzRGVsZXRlZDogZmFsc2UsXFxuICAgICAgICBib3VuZEVsZW1lbnRzLFxcbiAgICAgICAgdXBkYXRlZDogKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2V0VXBkYXRlZFRpbWVzdGFtcCkoKSxcXG4gICAgICAgIGxpbmssXFxuICAgIH07XFxuICAgIHJldHVybiBlbGVtZW50O1xcbn07XFxuY29uc3QgbmV3RWxlbWVudCA9IChvcHRzKSA9PiBfbmV3RWxlbWVudEJhc2Uob3B0cy50eXBlLCBvcHRzKTtcXG4vKiogY29tcHV0ZXMgZWxlbWVudCB4L3kgb2Zmc2V0IGJhc2VkIG9uIHRleHRBbGlnbi92ZXJ0aWNhbEFsaWduICovXFxuY29uc3QgZ2V0VGV4dEVsZW1lbnRQb3NpdGlvbk9mZnNldHMgPSAob3B0cywgbWV0cmljcykgPT4ge1xcbiAgICByZXR1cm4ge1xcbiAgICAgICAgeDogb3B0cy50ZXh0QWxpZ24gPT09IFxcXCJjZW50ZXJcXFwiXFxuICAgICAgICAgICAgPyBtZXRyaWNzLndpZHRoIC8gMlxcbiAgICAgICAgICAgIDogb3B0cy50ZXh0QWxpZ24gPT09IFxcXCJyaWdodFxcXCJcXG4gICAgICAgICAgICAgICAgPyBtZXRyaWNzLndpZHRoXFxuICAgICAgICAgICAgICAgIDogMCxcXG4gICAgICAgIHk6IG9wdHMudmVydGljYWxBbGlnbiA9PT0gXFxcIm1pZGRsZVxcXCIgPyBtZXRyaWNzLmhlaWdodCAvIDIgOiAwLFxcbiAgICB9O1xcbn07XFxuY29uc3QgbmV3VGV4dEVsZW1lbnQgPSAob3B0cykgPT4ge1xcbiAgICBjb25zdCBtZXRyaWNzID0gKDAsX3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18ubWVhc3VyZVRleHQpKG9wdHMudGV4dCwgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2V0Rm9udFN0cmluZykob3B0cykpO1xcbiAgICBjb25zdCBvZmZzZXRzID0gZ2V0VGV4dEVsZW1lbnRQb3NpdGlvbk9mZnNldHMob3B0cywgbWV0cmljcyk7XFxuICAgIGNvbnN0IHRleHRFbGVtZW50ID0gKDAsX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5uZXdFbGVtZW50V2l0aCkoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBfbmV3RWxlbWVudEJhc2UoXFxcInRleHRcXFwiLCBvcHRzKSksIHsgdGV4dDogb3B0cy50ZXh0LCBmb250U2l6ZTogb3B0cy5mb250U2l6ZSwgZm9udEZhbWlseTogb3B0cy5mb250RmFtaWx5LCB0ZXh0QWxpZ246IG9wdHMudGV4dEFsaWduLCB2ZXJ0aWNhbEFsaWduOiBvcHRzLnZlcnRpY2FsQWxpZ24sIHg6IG9wdHMueCAtIG9mZnNldHMueCwgeTogb3B0cy55IC0gb2Zmc2V0cy55LCB3aWR0aDogbWV0cmljcy53aWR0aCwgaGVpZ2h0OiBtZXRyaWNzLmhlaWdodCwgYmFzZWxpbmU6IG1ldHJpY3MuYmFzZWxpbmUsIGNvbnRhaW5lcklkOiBvcHRzLmNvbnRhaW5lcklkIHx8IG51bGwsIG9yaWdpbmFsVGV4dDogb3B0cy50ZXh0IH0pLCB7fSk7XFxuICAgIHJldHVybiB0ZXh0RWxlbWVudDtcXG59O1xcbmNvbnN0IGdldEFkanVzdGVkRGltZW5zaW9ucyA9IChlbGVtZW50LCBuZXh0VGV4dCkgPT4ge1xcbiAgICBsZXQgbWF4V2lkdGggPSBudWxsO1xcbiAgICBjb25zdCBjb250YWluZXIgPSAoMCxfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5nZXRDb250YWluZXJFbGVtZW50KShlbGVtZW50KTtcXG4gICAgaWYgKGNvbnRhaW5lcikge1xcbiAgICAgICAgbWF4V2lkdGggPSBjb250YWluZXIud2lkdGggLSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uQk9VTkRfVEVYVF9QQURESU5HICogMjtcXG4gICAgfVxcbiAgICBjb25zdCB7IHdpZHRoOiBuZXh0V2lkdGgsIGhlaWdodDogbmV4dEhlaWdodCwgYmFzZWxpbmU6IG5leHRCYXNlbGluZSwgfSA9ICgwLF90ZXh0RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLm1lYXN1cmVUZXh0KShuZXh0VGV4dCwgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2V0Rm9udFN0cmluZykoZWxlbWVudCksIG1heFdpZHRoKTtcXG4gICAgY29uc3QgeyB0ZXh0QWxpZ24sIHZlcnRpY2FsQWxpZ24gfSA9IGVsZW1lbnQ7XFxuICAgIGxldCB4O1xcbiAgICBsZXQgeTtcXG4gICAgaWYgKHRleHRBbGlnbiA9PT0gXFxcImNlbnRlclxcXCIgJiZcXG4gICAgICAgIHZlcnRpY2FsQWxpZ24gPT09IFxcXCJtaWRkbGVcXFwiICYmXFxuICAgICAgICAhZWxlbWVudC5jb250YWluZXJJZCkge1xcbiAgICAgICAgY29uc3QgcHJldk1ldHJpY3MgPSAoMCxfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5tZWFzdXJlVGV4dCkoZWxlbWVudC50ZXh0LCAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5nZXRGb250U3RyaW5nKShlbGVtZW50KSwgbWF4V2lkdGgpO1xcbiAgICAgICAgY29uc3Qgb2Zmc2V0cyA9IGdldFRleHRFbGVtZW50UG9zaXRpb25PZmZzZXRzKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICB3aWR0aDogbmV4dFdpZHRoIC0gcHJldk1ldHJpY3Mud2lkdGgsXFxuICAgICAgICAgICAgaGVpZ2h0OiBuZXh0SGVpZ2h0IC0gcHJldk1ldHJpY3MuaGVpZ2h0LFxcbiAgICAgICAgfSk7XFxuICAgICAgICB4ID0gZWxlbWVudC54IC0gb2Zmc2V0cy54O1xcbiAgICAgICAgeSA9IGVsZW1lbnQueSAtIG9mZnNldHMueTtcXG4gICAgfVxcbiAgICBlbHNlIHtcXG4gICAgICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzKShlbGVtZW50KTtcXG4gICAgICAgIGNvbnN0IFtuZXh0WDEsIG5leHRZMSwgbmV4dFgyLCBuZXh0WTJdID0gKDAsX2JvdW5kc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmdldFJlc2l6ZWRFbGVtZW50QWJzb2x1dGVDb29yZHMpKGVsZW1lbnQsIG5leHRXaWR0aCwgbmV4dEhlaWdodCk7XFxuICAgICAgICBjb25zdCBkZWx0YVgxID0gKHgxIC0gbmV4dFgxKSAvIDI7XFxuICAgICAgICBjb25zdCBkZWx0YVkxID0gKHkxIC0gbmV4dFkxKSAvIDI7XFxuICAgICAgICBjb25zdCBkZWx0YVgyID0gKHgyIC0gbmV4dFgyKSAvIDI7XFxuICAgICAgICBjb25zdCBkZWx0YVkyID0gKHkyIC0gbmV4dFkyKSAvIDI7XFxuICAgICAgICBbeCwgeV0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmFkanVzdFhZV2l0aFJvdGF0aW9uKSh7XFxuICAgICAgICAgICAgczogdHJ1ZSxcXG4gICAgICAgICAgICBlOiB0ZXh0QWxpZ24gPT09IFxcXCJjZW50ZXJcXFwiIHx8IHRleHRBbGlnbiA9PT0gXFxcImxlZnRcXFwiLFxcbiAgICAgICAgICAgIHc6IHRleHRBbGlnbiA9PT0gXFxcImNlbnRlclxcXCIgfHwgdGV4dEFsaWduID09PSBcXFwicmlnaHRcXFwiLFxcbiAgICAgICAgfSwgZWxlbWVudC54LCBlbGVtZW50LnksIGVsZW1lbnQuYW5nbGUsIGRlbHRhWDEsIGRlbHRhWTEsIGRlbHRhWDIsIGRlbHRhWTIpO1xcbiAgICB9XFxuICAgIC8vIG1ha2Ugc3VyZSBjb250YWluZXIgZGltZW5zaW9ucyBhcmUgc2V0IHByb3Blcmx5IHdoZW5cXG4gICAgLy8gdGV4dCBlZGl0b3Igb3ZlcmZsb3dzIGJleW9uZCB2aWV3cG9ydCBkaW1lbnNpb25zXFxuICAgIGlmICgoMCxfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmlzQm91bmRUb0NvbnRhaW5lcikoZWxlbWVudCkpIHtcXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9ICgwLF90ZXh0RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmdldENvbnRhaW5lckVsZW1lbnQpKGVsZW1lbnQpO1xcbiAgICAgICAgbGV0IGhlaWdodCA9IGNvbnRhaW5lci5oZWlnaHQ7XFxuICAgICAgICBsZXQgd2lkdGggPSBjb250YWluZXIud2lkdGg7XFxuICAgICAgICBpZiAobmV4dEhlaWdodCA+IGhlaWdodCAtIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5CT1VORF9URVhUX1BBRERJTkcgKiAyKSB7XFxuICAgICAgICAgICAgaGVpZ2h0ID0gbmV4dEhlaWdodCArIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5CT1VORF9URVhUX1BBRERJTkcgKiAyO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKG5leHRXaWR0aCA+IHdpZHRoIC0gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLkJPVU5EX1RFWFRfUEFERElORyAqIDIpIHtcXG4gICAgICAgICAgICB3aWR0aCA9IG5leHRXaWR0aCArIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5CT1VORF9URVhUX1BBRERJTkcgKiAyO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKGhlaWdodCAhPT0gY29udGFpbmVyLmhlaWdodCB8fCB3aWR0aCAhPT0gY29udGFpbmVyLndpZHRoKSB7XFxuICAgICAgICAgICAgKDAsX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5tdXRhdGVFbGVtZW50KShjb250YWluZXIsIHsgaGVpZ2h0LCB3aWR0aCB9KTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICByZXR1cm4ge1xcbiAgICAgICAgd2lkdGg6IG5leHRXaWR0aCxcXG4gICAgICAgIGhlaWdodDogbmV4dEhlaWdodCxcXG4gICAgICAgIHg6IE51bWJlci5pc0Zpbml0ZSh4KSA/IHggOiBlbGVtZW50LngsXFxuICAgICAgICB5OiBOdW1iZXIuaXNGaW5pdGUoeSkgPyB5IDogZWxlbWVudC55LFxcbiAgICAgICAgYmFzZWxpbmU6IG5leHRCYXNlbGluZSxcXG4gICAgfTtcXG59O1xcbmNvbnN0IHVwZGF0ZVRleHRFbGVtZW50ID0gKGVsZW1lbnQsIHsgdGV4dCwgaXNEZWxldGVkLCBvcmlnaW5hbFRleHQsIH0pID0+IHtcXG4gICAgY29uc3QgY29udGFpbmVyID0gKDAsX3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uZ2V0Q29udGFpbmVyRWxlbWVudCkoZWxlbWVudCk7XFxuICAgIGlmIChjb250YWluZXIpIHtcXG4gICAgICAgIHRleHQgPSAoMCxfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy53cmFwVGV4dCkodGV4dCwgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2V0Rm9udFN0cmluZykoZWxlbWVudCksIGNvbnRhaW5lci53aWR0aCk7XFxuICAgIH1cXG4gICAgY29uc3QgZGltZW5zaW9ucyA9IGdldEFkanVzdGVkRGltZW5zaW9ucyhlbGVtZW50LCB0ZXh0KTtcXG4gICAgcmV0dXJuICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ubmV3RWxlbWVudFdpdGgpKGVsZW1lbnQsIE9iamVjdC5hc3NpZ24oeyB0ZXh0LFxcbiAgICAgICAgb3JpZ2luYWxUZXh0LCBpc0RlbGV0ZWQ6IGlzRGVsZXRlZCAhPT0gbnVsbCAmJiBpc0RlbGV0ZWQgIT09IHZvaWQgMCA/IGlzRGVsZXRlZCA6IGVsZW1lbnQuaXNEZWxldGVkIH0sIGRpbWVuc2lvbnMpKTtcXG59O1xcbmNvbnN0IG5ld0ZyZWVEcmF3RWxlbWVudCA9IChvcHRzKSA9PiB7XFxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIF9uZXdFbGVtZW50QmFzZShvcHRzLnR5cGUsIG9wdHMpKSwgeyBwb2ludHM6IG9wdHMucG9pbnRzIHx8IFtdLCBwcmVzc3VyZXM6IFtdLCBzaW11bGF0ZVByZXNzdXJlOiBvcHRzLnNpbXVsYXRlUHJlc3N1cmUsIGxhc3RDb21taXR0ZWRQb2ludDogbnVsbCB9KTtcXG59O1xcbmNvbnN0IG5ld0xpbmVhckVsZW1lbnQgPSAob3B0cykgPT4ge1xcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBfbmV3RWxlbWVudEJhc2Uob3B0cy50eXBlLCBvcHRzKSksIHsgcG9pbnRzOiBvcHRzLnBvaW50cyB8fCBbXSwgbGFzdENvbW1pdHRlZFBvaW50OiBudWxsLCBzdGFydEJpbmRpbmc6IG51bGwsIGVuZEJpbmRpbmc6IG51bGwsIHN0YXJ0QXJyb3doZWFkOiBvcHRzLnN0YXJ0QXJyb3doZWFkLCBlbmRBcnJvd2hlYWQ6IG9wdHMuZW5kQXJyb3doZWFkIH0pO1xcbn07XFxuY29uc3QgbmV3SW1hZ2VFbGVtZW50ID0gKG9wdHMpID0+IHtcXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgX25ld0VsZW1lbnRCYXNlKFxcXCJpbWFnZVxcXCIsIG9wdHMpKSwgeyBcXG4gICAgICAgIC8vIGluIHRoZSBmdXR1cmUgd2UnbGwgc3VwcG9ydCBjaGFuZ2luZyBzdHJva2UgY29sb3IgZm9yIHNvbWUgU1ZHIGVsZW1lbnRzLFxcbiAgICAgICAgLy8gYW5kIGB0cmFuc3BhcmVudGAgd2lsbCBsaWtlbHkgbWVhbiBcXFwidXNlIG9yaWdpbmFsIGNvbG9ycyBvZiB0aGUgaW1hZ2VcXFwiXFxuICAgICAgICBzdHJva2VDb2xvcjogXFxcInRyYW5zcGFyZW50XFxcIiwgc3RhdHVzOiBcXFwicGVuZGluZ1xcXCIsIGZpbGVJZDogbnVsbCwgc2NhbGU6IFsxLCAxXSB9KTtcXG59O1xcbi8vIFNpbXBsaWZpZWQgZGVlcCBjbG9uZSBmb3IgdGhlIHB1cnBvc2Ugb2YgY2xvbmluZyBFeGNhbGlkcmF3RWxlbWVudCBvbmx5XFxuLy8gKGRvZXNuJ3QgY2xvbmUgRGF0ZSwgUmVnRXhwLCBNYXAsIFNldCwgVHlwZWQgYXJyYXlzIGV0Yy4pXFxuLy9cXG4vLyBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2x1a2VlZC9rbG9uYVxcbmNvbnN0IGRlZXBDb3B5RWxlbWVudCA9ICh2YWwsIGRlcHRoID0gMCkgPT4ge1xcbiAgICBpZiAodmFsID09IG51bGwgfHwgdHlwZW9mIHZhbCAhPT0gXFxcIm9iamVjdFxcXCIpIHtcXG4gICAgICAgIHJldHVybiB2YWw7XFxuICAgIH1cXG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWwpID09PSBcXFwiW29iamVjdCBPYmplY3RdXFxcIikge1xcbiAgICAgICAgY29uc3QgdG1wID0gdHlwZW9mIHZhbC5jb25zdHJ1Y3RvciA9PT0gXFxcImZ1bmN0aW9uXFxcIlxcbiAgICAgICAgICAgID8gT2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsKSlcXG4gICAgICAgICAgICA6IHt9O1xcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdmFsKSB7XFxuICAgICAgICAgICAgaWYgKHZhbC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XFxuICAgICAgICAgICAgICAgIC8vIGRvbid0IGNvcHkgdG9wLWxldmVsIHNoYXBlIHByb3BlcnR5LCB3aGljaCB3ZSB3YW50IHRvIHJlZ2VuZXJhdGVcXG4gICAgICAgICAgICAgICAgaWYgKGRlcHRoID09PSAwICYmIChrZXkgPT09IFxcXCJzaGFwZVxcXCIgfHwga2V5ID09PSBcXFwiY2FudmFzXFxcIikpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHRtcFtrZXldID0gZGVlcENvcHlFbGVtZW50KHZhbFtrZXldLCBkZXB0aCArIDEpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiB0bXA7XFxuICAgIH1cXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xcbiAgICAgICAgbGV0IGsgPSB2YWwubGVuZ3RoO1xcbiAgICAgICAgY29uc3QgYXJyID0gbmV3IEFycmF5KGspO1xcbiAgICAgICAgd2hpbGUgKGstLSkge1xcbiAgICAgICAgICAgIGFycltrXSA9IGRlZXBDb3B5RWxlbWVudCh2YWxba10sIGRlcHRoICsgMSk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gYXJyO1xcbiAgICB9XFxuICAgIHJldHVybiB2YWw7XFxufTtcXG4vKipcXG4gKiBEdXBsaWNhdGUgYW4gZWxlbWVudCwgb2Z0ZW4gdXNlZCBpbiB0aGUgYWx0LWRyYWcgb3BlcmF0aW9uLlxcbiAqIE5vdGUgdGhhdCB0aGlzIG1ldGhvZCBoYXMgZ290dGVuIGEgYml0IGNvbXBsaWNhdGVkIHNpbmNlIHRoZVxcbiAqIGludHJvZHVjdGlvbiBvZiBncnVvcGluZy91bmdyb3VwaW5nIGVsZW1lbnRzLlxcbiAqIEBwYXJhbSBlZGl0aW5nR3JvdXBJZCBUaGUgY3VycmVudCBncm91cCBiZWluZyBlZGl0ZWQuIFRoZSBuZXdcXG4gKiAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCB3aWxsIGluaGVyaXQgdGhpcyBncm91cCBhbmQgaXRzXFxuICogICAgICAgICAgICAgICAgICAgICAgIHBhcmVudHMuXFxuICogQHBhcmFtIGdyb3VwSWRNYXBGb3JPcGVyYXRpb24gQSBNYXAgdGhhdCBtYXBzIG9sZCBncm91cCBJRHMgdG9cXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdXBsaWNhdGVkIG9uZXMuIElmIHlvdSBhcmUgZHVwbGljYXRpbmdcXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSBlbGVtZW50cyBhdCBvbmNlLCBzaGFyZSB0aGlzIG1hcFxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb25nc3QgYWxsIG9mIHRoZW1cXG4gKiBAcGFyYW0gZWxlbWVudCBFbGVtZW50IHRvIGR1cGxpY2F0ZVxcbiAqIEBwYXJhbSBvdmVycmlkZXMgQW55IGVsZW1lbnQgcHJvcGVydGllcyB0byBvdmVycmlkZVxcbiAqL1xcbmNvbnN0IGR1cGxpY2F0ZUVsZW1lbnQgPSAoZWRpdGluZ0dyb3VwSWQsIGdyb3VwSWRNYXBGb3JPcGVyYXRpb24sIGVsZW1lbnQsIG92ZXJyaWRlcykgPT4ge1xcbiAgICB2YXIgX2EsIF9iO1xcbiAgICBsZXQgY29weSA9IGRlZXBDb3B5RWxlbWVudChlbGVtZW50KTtcXG4gICAgaWYgKCgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmlzVGVzdEVudikoKSkge1xcbiAgICAgICAgY29weS5pZCA9IGAke2NvcHkuaWR9X2NvcHlgO1xcbiAgICAgICAgLy8gYHdpbmRvdy5oYCBtYXkgbm90IGJlIGRlZmluZWQgaW4gc29tZSB1bml0IHRlc3RzXFxuICAgICAgICBpZiAoKF9iID0gKF9hID0gd2luZG93LmgpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hcHApID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5nZXRTY2VuZUVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpLmZpbmQoKGVsKSA9PiBlbC5pZCA9PT0gY29weS5pZCkpIHtcXG4gICAgICAgICAgICBjb3B5LmlkICs9IFxcXCJfY29weVxcXCI7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgZWxzZSB7XFxuICAgICAgICBjb3B5LmlkID0gKDAsX3JhbmRvbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnJhbmRvbUlkKSgpO1xcbiAgICB9XFxuICAgIGNvcHkudXBkYXRlZCA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmdldFVwZGF0ZWRUaW1lc3RhbXApKCk7XFxuICAgIGNvcHkuc2VlZCA9ICgwLF9yYW5kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5yYW5kb21JbnRlZ2VyKSgpO1xcbiAgICBjb3B5Lmdyb3VwSWRzID0gKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmdldE5ld0dyb3VwSWRzRm9yRHVwbGljYXRpb24pKGNvcHkuZ3JvdXBJZHMsIGVkaXRpbmdHcm91cElkLCAoZ3JvdXBJZCkgPT4ge1xcbiAgICAgICAgaWYgKCFncm91cElkTWFwRm9yT3BlcmF0aW9uLmhhcyhncm91cElkKSkge1xcbiAgICAgICAgICAgIGdyb3VwSWRNYXBGb3JPcGVyYXRpb24uc2V0KGdyb3VwSWQsICgwLF9yYW5kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5yYW5kb21JZCkoKSk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gZ3JvdXBJZE1hcEZvck9wZXJhdGlvbi5nZXQoZ3JvdXBJZCk7XFxuICAgIH0pO1xcbiAgICBpZiAob3ZlcnJpZGVzKSB7XFxuICAgICAgICBjb3B5ID0gT2JqZWN0LmFzc2lnbihjb3B5LCBvdmVycmlkZXMpO1xcbiAgICB9XFxuICAgIHJldHVybiBjb3B5O1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZaV3hsYldWdWRDOXVaWGRGYkdWdFpXNTBMblJ6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJaWGxGTzBGQlEzSkNPMEZCUTFrN1FVRkRVRHRCUVVWYU8wRkJRMFU3UVVGRFdUdEJRVU5uUWp0QlFVTjZRanRCUVVOQk8wRkJaV3hFTEUxQlFVMHNaVUZCWlN4SFFVRkhMRU5CUTNSQ0xFbEJRV1VzUlVGRFppeEZRV3RDTWtVc1JVRkRNMFVzUlVGQlJUczdVVUZ1UWtZc1JVRkRSU3hEUVVGRExFVkJRMFFzUTBGQlF5eEZRVU5FTEZkQlFWY3NSVUZEV0N4bFFVRmxMRVZCUTJZc1UwRkJVeXhGUVVOVUxGZEJRVmNzUlVGRFdDeFhRVUZYTEVWQlExZ3NVMEZCVXl4RlFVTlVMRTlCUVU4c1JVRkRVQ3hMUVVGTExFZEJRVWNzUTBGQlF5eEZRVU5VTEUxQlFVMHNSMEZCUnl4RFFVRkRMRVZCUTFZc1MwRkJTeXhIUVVGSExFTkJRVU1zUlVGRFZDeFJRVUZSTEVkQlFVY3NSVUZCUlN4RlFVTmlMR1ZCUVdVc1JVRkRaaXhoUVVGaExFZEJRVWNzU1VGQlNTeEZRVU53UWl4SlFVRkpMRWRCUVVjc1NVRkJTU3hQUVVVNFJDeEZRVVIwUlN4SlFVRkpMR05CYWtKVUxHMU5RV3RDUXl4RFFVUlJPMGxCUjFRc1RVRkJUU3hQUVVGUExFZEJRVWM3VVVGRFpDeEZRVUZGTEVWQlFVVXNTVUZCU1N4RFFVRkRMRVZCUVVVc1NVRkJTU3hwUkVGQlVTeEZRVUZGTzFGQlEzcENMRWxCUVVrN1VVRkRTaXhEUVVGRE8xRkJRMFFzUTBGQlF6dFJRVU5FTEV0QlFVczdVVUZEVEN4TlFVRk5PMUZCUTA0c1MwRkJTenRSUVVOTUxGZEJRVmM3VVVGRFdDeGxRVUZsTzFGQlEyWXNVMEZCVXp0UlFVTlVMRmRCUVZjN1VVRkRXQ3hYUVVGWE8xRkJRMWdzVTBGQlV6dFJRVU5VTEU5QlFVODdVVUZEVUN4UlFVRlJPMUZCUTFJc1pVRkJaVHRSUVVObUxFbEJRVWtzUlVGQlJTeFZRVUZKTEVOQlFVTXNTVUZCU1N4dFEwRkJTU3h6UkVGQllTeEZRVUZGTzFGQlEyeERMRTlCUVU4c1JVRkJSU3hKUVVGSkxFTkJRVU1zVDBGQlR5eEpRVUZKTEVOQlFVTTdVVUZETVVJc1dVRkJXU3hGUVVGRkxGVkJRVWtzUTBGQlF5eFpRVUZaTEcxRFFVRkpMRU5CUVVNN1VVRkRjRU1zVTBGQlV5eEZRVUZGTEV0QlFXTTdVVUZEZWtJc1lVRkJZVHRSUVVOaUxFOUJRVThzUlVGQlJTd3lSRUZCYlVJc1JVRkJSVHRSUVVNNVFpeEpRVUZKTzB0QlEwd3NRMEZCUXp0SlFVTkdMRTlCUVU4c1QwRkJUeXhEUVVGRE8wRkJRMnBDTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc1ZVRkJWU3hIUVVGSExFTkJRM2hDTEVsQlJUQkNMRVZCUTFrc1JVRkJSU3hEUVVONFF5eGxRVUZsTEVOQlFUSkNMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdRVUZGTjBRc2JVVkJRVzFGTzBGQlEyNUZMRTFCUVUwc05rSkJRVFpDTEVkQlFVY3NRMEZEY0VNc1NVRkhReXhGUVVORUxFOUJSME1zUlVGRFJDeEZRVUZGTzBsQlEwWXNUMEZCVHp0UlFVTk1MRU5CUVVNc1JVRkRReXhKUVVGSkxFTkJRVU1zVTBGQlV5eExRVUZMTEZGQlFWRTdXVUZEZWtJc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVkQlFVY3NRMEZCUXp0WlFVTnVRaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNTMEZCU3l4UFFVRlBPMmRDUVVNMVFpeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzN1owSkJRMllzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEVUN4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExHRkJRV0VzUzBGQlN5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMHRCUXpWRUxFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MR05CUVdNc1IwRkJSeXhEUVVNMVFpeEpRVTh3UWl4RlFVTlRMRVZCUVVVN1NVRkRja01zVFVGQlRTeFBRVUZQTEVkQlFVY3NlVVJCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTEhGRVFVRmhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU0xUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXcyUWtGQk5rSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRE4wUXNUVUZCVFN4WFFVRlhMRWRCUVVjc09FUkJRV01zYVVOQlJUTkNMR1ZCUVdVc1EwRkJkMElzVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVTjJSQ3hKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVsQlFVa3NSVUZEWml4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGRGRrSXNWVUZCVlN4RlFVRkZMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRek5DTEZOQlFWTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVONlFpeGhRVUZoTEVWQlFVVXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1JVRkRha01zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU1zUlVGRGNrSXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNSVUZEY2tJc1MwRkJTeXhGUVVGRkxFOUJRVThzUTBGQlF5eExRVUZMTEVWQlEzQkNMRTFCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU1zVFVGQlRTeEZRVU4wUWl4UlFVRlJMRVZCUVVVc1QwRkJUeXhEUVVGRExGRkJRVkVzUlVGRE1VSXNWMEZCVnl4RlFVRkZMRWxCUVVrc1EwRkJReXhYUVVGWExFbEJRVWtzU1VGQlNTeEZRVU55UXl4WlFVRlpMRVZCUVVVc1NVRkJTU3hEUVVGRExFbEJRVWtzUzBGRmVrSXNSVUZCUlN4RFFVTklMRU5CUVVNN1NVRkRSaXhQUVVGUExGZEJRVmNzUTBGQlF6dEJRVU55UWl4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxIRkNRVUZ4UWl4SFFVRkhMRU5CUXpWQ0xFOUJRVGhDTEVWQlF6bENMRkZCUVdkQ0xFVkJUMmhDTEVWQlFVVTdTVUZEUml4SlFVRkpMRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU03U1VGRGNFSXNUVUZCVFN4VFFVRlRMRWRCUVVjc2FVVkJRVzFDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRMME1zU1VGQlNTeFRRVUZUTEVWQlFVVTdVVUZEWWl4UlFVRlJMRWRCUVVjc1UwRkJVeXhEUVVGRExFdEJRVXNzUjBGQlJ5d3dSRUZCYTBJc1IwRkJSeXhEUVVGRExFTkJRVU03UzBGRGNrUTdTVUZEUkN4TlFVRk5MRVZCUTBvc1MwRkJTeXhGUVVGRkxGTkJRVk1zUlVGRGFFSXNUVUZCVFN4RlFVRkZMRlZCUVZVc1JVRkRiRUlzVVVGQlVTeEZRVUZGTEZsQlFWa3NSMEZEZGtJc1IwRkJSeXg1UkVGQlZ5eERRVUZETEZGQlFWRXNSVUZCUlN4eFJFRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRPMGxCUXpWRUxFMUJRVTBzUlVGQlJTeFRRVUZUTEVWQlFVVXNZVUZCWVN4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRE8wbEJRemRETEVsQlFVa3NRMEZCVXl4RFFVRkRPMGxCUTJRc1NVRkJTU3hEUVVGVExFTkJRVU03U1VGRFpDeEpRVU5GTEZOQlFWTXNTMEZCU3l4UlFVRlJPMUZCUTNSQ0xHRkJRV0VzUzBGQlN5eFJRVUZSTzFGQlF6RkNMRU5CUVVNc1QwRkJUeXhEUVVGRExGZEJRVmNzUlVGRGNFSTdVVUZEUVN4TlFVRk5MRmRCUVZjc1IwRkJSeXg1UkVGQlZ5eERRVU0zUWl4UFFVRlBMRU5CUVVNc1NVRkJTU3hGUVVOYUxIRkVRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUTNSQ0xGRkJRVkVzUTBGRFZDeERRVUZETzFGQlEwWXNUVUZCVFN4UFFVRlBMRWRCUVVjc05rSkJRVFpDTEVOQlFVTXNUMEZCVHl4RlFVRkZPMWxCUTNKRUxFdEJRVXNzUlVGQlJTeFRRVUZUTEVkQlFVY3NWMEZCVnl4RFFVRkRMRXRCUVVzN1dVRkRjRU1zVFVGQlRTeEZRVUZGTEZWQlFWVXNSMEZCUnl4WFFVRlhMRU5CUVVNc1RVRkJUVHRUUVVONFF5eERRVUZETEVOQlFVTTdVVUZGU0N4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpGQ0xFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU03UzBGRE0wSTdVMEZCVFR0UlFVTk1MRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXd5UkVGQmQwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVVelJDeE5RVUZOTEVOQlFVTXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVVVzVFVGQlRTeERRVUZETEVkQlFVY3NkMFZCUVN0Q0xFTkJRM1JGTEU5QlFVOHNSVUZEVUN4VFFVRlRMRVZCUTFRc1ZVRkJWU3hEUVVOWUxFTkJRVU03VVVGRFJpeE5RVUZOTEU5QlFVOHNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEYkVNc1RVRkJUU3hQUVVGUExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMnhETEUxQlFVMHNUMEZCVHl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTnNReXhOUVVGTkxFOUJRVThzUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRmJFTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFZEJRVWNzTWtSQlFXOUNMRU5CUXpOQ08xbEJRMFVzUTBGQlF5eEZRVUZGTEVsQlFVazdXVUZEVUN4RFFVRkRMRVZCUVVVc1UwRkJVeXhMUVVGTExGRkJRVkVzU1VGQlNTeFRRVUZUTEV0QlFVc3NUVUZCVFR0WlFVTnFSQ3hEUVVGRExFVkJRVVVzVTBGQlV5eExRVUZMTEZGQlFWRXNTVUZCU1N4VFFVRlRMRXRCUVVzc1QwRkJUenRUUVVOdVJDeEZRVU5FTEU5QlFVOHNRMEZCUXl4RFFVRkRMRVZCUTFRc1QwRkJUeXhEUVVGRExFTkJRVU1zUlVGRFZDeFBRVUZQTEVOQlFVTXNTMEZCU3l4RlFVTmlMRTlCUVU4c1JVRkRVQ3hQUVVGUExFVkJRMUFzVDBGQlR5eEZRVU5RTEU5QlFVOHNRMEZEVWl4RFFVRkRPMHRCUTBnN1NVRkZSQ3gxUkVGQmRVUTdTVUZEZGtRc2JVUkJRVzFFTzBsQlEyNUVMRWxCUVVrc0swUkJRV3RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVN1VVRkRMMElzVFVGQlRTeFRRVUZUTEVkQlFVY3NhVVZCUVcxQ0xFTkJRVU1zVDBGQlR5eERRVUZGTEVOQlFVTTdVVUZEYUVRc1NVRkJTU3hOUVVGTkxFZEJRVWNzVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTTVRaXhKUVVGSkxFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUXpWQ0xFbEJRVWtzVlVGQlZTeEhRVUZITEUxQlFVMHNSMEZCUnl3d1JFRkJhMElzUjBGQlJ5eERRVUZETEVWQlFVVTdXVUZEYUVRc1RVRkJUU3hIUVVGSExGVkJRVlVzUjBGQlJ5d3dSRUZCYTBJc1IwRkJSeXhEUVVGRExFTkJRVU03VTBGRE9VTTdVVUZEUkN4SlFVRkpMRk5CUVZNc1IwRkJSeXhMUVVGTExFZEJRVWNzTUVSQlFXdENMRWRCUVVjc1EwRkJReXhGUVVGRk8xbEJRemxETEV0QlFVc3NSMEZCUnl4VFFVRlRMRWRCUVVjc01FUkJRV3RDTEVkQlFVY3NRMEZCUXl4RFFVRkRPMU5CUXpWRE8xRkJRMFFzU1VGQlNTeE5RVUZOTEV0QlFVc3NVMEZCVXl4RFFVRkRMRTFCUVUwc1NVRkJTU3hMUVVGTExFdEJRVXNzVTBGQlV5eERRVUZETEV0QlFVc3NSVUZCUlR0WlFVTTFSQ3cyUkVGQllTeERRVUZETEZOQlFWTXNSVUZCUlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETzFOQlF6ZERPMHRCUTBZN1NVRkRSQ3hQUVVGUE8xRkJRMHdzUzBGQlN5eEZRVUZGTEZOQlFWTTdVVUZEYUVJc1RVRkJUU3hGUVVGRkxGVkJRVlU3VVVGRGJFSXNRMEZCUXl4RlFVRkZMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY2tNc1EwRkJReXhGUVVGRkxFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRja01zVVVGQlVTeEZRVUZGTEZsQlFWazdTMEZEZGtJc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzUTBGREwwSXNUMEZCT0VJc1JVRkRPVUlzUlVGRFJTeEpRVUZKTEVWQlEwb3NVMEZCVXl4RlFVTlVMRmxCUVZrc1IwRkxZaXhGUVVOelFpeEZRVUZGTzBsQlEzcENMRTFCUVUwc1UwRkJVeXhIUVVGSExHbEZRVUZ0UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJReTlETEVsQlFVa3NVMEZCVXl4RlFVRkZPMUZCUTJJc1NVRkJTU3hIUVVGSExITkVRVUZSTEVOQlFVTXNTVUZCU1N4RlFVRkZMSEZFUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wdEJRMmhGTzBsQlEwUXNUVUZCVFN4VlFVRlZMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTXNUMEZCVHl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRM2hFTEU5QlFVOHNPRVJCUVdNc1EwRkJReXhQUVVGUExHdENRVU16UWl4SlFVRkpPMUZCUTBvc1dVRkJXU3hGUVVOYUxGTkJRVk1zUlVGQlJTeFRRVUZUTEdGQlFWUXNVMEZCVXl4alFVRlVMRk5CUVZNc1IwRkJTU3hQUVVGUExFTkJRVU1zVTBGQlV5eEpRVU4wUXl4VlFVRlZMRVZCUTJJc1EwRkJRenRCUVVOTUxFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNhMEpCUVd0Q0xFZEJRVWNzUTBGRGFFTXNTVUZKTUVJc1JVRkRZU3hGUVVGRk8wbEJRM3BETEhWRFFVTkxMR1ZCUVdVc1EwRkJORUlzU1VGQlNTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkRPVVFzVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1JVRkJSU3hGUVVONlFpeFRRVUZUTEVWQlFVVXNSVUZCUlN4RlFVTmlMR2RDUVVGblFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUlVGRGRrTXNhMEpCUVd0Q0xFVkJRVVVzU1VGQlNTeEpRVU40UWp0QlFVTktMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1EwRkRPVUlzU1VGTE1FSXNSVUZEVnl4RlFVRkZPMGxCUTNaRExIVkRRVU5MTEdWQlFXVXNRMEZCTUVJc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZETlVRc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NSVUZCUlN4RlFVTjZRaXhyUWtGQmEwSXNSVUZCUlN4SlFVRkpMRVZCUTNoQ0xGbEJRVmtzUlVGQlJTeEpRVUZKTEVWQlEyeENMRlZCUVZVc1JVRkJSU3hKUVVGSkxFVkJRMmhDTEdOQlFXTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVOdVF5eFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRmxCUVZrc1NVRkRMMEk3UVVGRFNpeERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MR1ZCUVdVc1IwRkJSeXhEUVVNM1FpeEpRVVV3UWl4RlFVTlZMRVZCUVVVN1NVRkRkRU1zZFVOQlEwc3NaVUZCWlN4RFFVRjVRaXhQUVVGUExFVkJRVVVzU1VGQlNTeERRVUZETzFGQlEzcEVMREpGUVVFeVJUdFJRVU16UlN4M1JVRkJkMFU3VVVGRGVFVXNWMEZCVnl4RlFVRkZMR0ZCUVdFc1JVRkRNVUlzVFVGQlRTeEZRVUZGTEZOQlFWTXNSVUZEYWtJc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGRFdpeExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFbEJRMkk3UVVGRFNpeERRVUZETEVOQlFVTTdRVUZGUml3d1JVRkJNRVU3UVVGRE1VVXNORVJCUVRSRU8wRkJRelZFTEVWQlFVVTdRVUZEUml3clEwRkJLME03UVVGRGVFTXNUVUZCVFN4bFFVRmxMRWRCUVVjc1EwRkJReXhIUVVGUkxFVkJRVVVzVVVGQlowSXNRMEZCUXl4RlFVRkZMRVZCUVVVN1NVRkROMFFzU1VGQlNTeEhRVUZITEVsQlFVa3NTVUZCU1N4SlFVRkpMRTlCUVU4c1IwRkJSeXhMUVVGTExGRkJRVkVzUlVGQlJUdFJRVU14UXl4UFFVRlBMRWRCUVVjc1EwRkJRenRMUVVOYU8wbEJSVVFzU1VGQlNTeE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NhVUpCUVdsQ0xFVkJRVVU3VVVGRE4wUXNUVUZCVFN4SFFVRkhMRWRCUTFBc1QwRkJUeXhIUVVGSExFTkJRVU1zVjBGQlZ5eExRVUZMTEZWQlFWVTdXVUZEYmtNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMR05CUVdNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU16UXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8xRkJRMVFzUzBGQlN5eE5RVUZOTEVkQlFVY3NTVUZCU1N4SFFVRkhMRVZCUVVVN1dVRkRja0lzU1VGQlNTeEhRVUZITEVOQlFVTXNZMEZCWXl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRk8yZENRVU16UWl4dFJVRkJiVVU3WjBKQlEyNUZMRWxCUVVrc1MwRkJTeXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NTMEZCU3l4UFFVRlBMRWxCUVVrc1IwRkJSeXhMUVVGTExGRkJRVkVzUTBGQlF5eEZRVUZGTzI5Q1FVTjRSQ3hUUVVGVE8ybENRVU5XTzJkQ1FVTkVMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eGxRVUZsTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0aFFVTnFSRHRUUVVOR08xRkJRMFFzVDBGQlR5eEhRVUZITEVOQlFVTTdTMEZEV2p0SlFVVkVMRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlR0UlFVTjBRaXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUTI1Q0xFMUJRVTBzUjBGQlJ5eEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM3BDTEU5QlFVOHNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRWaXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NaVUZCWlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkROME03VVVGRFJDeFBRVUZQTEVkQlFVY3NRMEZCUXp0TFFVTmFPMGxCUlVRc1QwRkJUeXhIUVVGSExFTkJRVU03UVVGRFlpeERRVUZETEVOQlFVTTdRVUZGUmpzN096czdPenM3T3pzN096dEhRV0ZITzBGQlEwa3NUVUZCVFN4blFrRkJaMElzUjBGQlJ5eERRVU01UWl4alFVRXdReXhGUVVNeFF5eHpRa0ZCTmtNc1JVRkROME1zVDBGQmFVSXNSVUZEYWtJc1UwRkJOa0lzUlVGRGJrSXNSVUZCUlRzN1NVRkRXaXhKUVVGSkxFbEJRVWtzUjBGQllTeGxRVUZsTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRPVU1zU1VGQlNTeHBSRUZCVXl4RlFVRkZMRVZCUVVVN1VVRkRaaXhKUVVGSkxFTkJRVU1zUlVGQlJTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRVZCUVVVc1QwRkJUeXhEUVVGRE8xRkJRelZDTEcxRVFVRnRSRHRSUVVOdVJDeEpRVU5GTEd0Q1FVRk5MRU5CUVVNc1EwRkJReXd3UTBGQlJTeEhRVUZITERCRFFVTlVMR2REUVVGblF5eEhRVU5xUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRXRCUVVzc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVU5zUXp0WlFVTkJMRWxCUVVrc1EwRkJReXhGUVVGRkxFbEJRVWtzVDBGQlR5eERRVUZETzFOQlEzQkNPMHRCUTBZN1UwRkJUVHRSUVVOTUxFbEJRVWtzUTBGQlF5eEZRVUZGTEVkQlFVY3NhVVJCUVZFc1JVRkJSU3hEUVVGRE8wdEJRM1JDTzBsQlEwUXNTVUZCU1N4RFFVRkRMRTlCUVU4c1IwRkJSeXd5UkVGQmJVSXNSVUZCUlN4RFFVRkRPMGxCUTNKRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NjMFJCUVdFc1JVRkJSU3hEUVVGRE8wbEJRelZDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc2NVVkJRVFJDTEVOQlF6RkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRMklzWTBGQll5eEZRVU5rTEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVN1VVRkRWaXhKUVVGSkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzFsQlEzaERMSE5DUVVGelFpeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRVZCUVVVc2FVUkJRVkVzUlVGQlJTeERRVUZETEVOQlFVTTdVMEZEYWtRN1VVRkRSQ3hQUVVGUExITkNRVUZ6UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVVVzUTBGQlF6dEpRVU01UXl4RFFVRkRMRU5CUTBZc1EwRkJRenRKUVVOR0xFbEJRVWtzVTBGQlV5eEZRVUZGTzFGQlEySXNTVUZCU1N4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRkRPMHRCUTNaRE8wbEJRMFFzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWkN4RFFVRkRMRU5CUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZaV3hsYldWdWRDOXVaWGRGYkdWdFpXNTBMblJ6UHpFeU5UTWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHRjYmlBZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5Rc1hHNGdJRVY0WTJGc2FXUnlZWGRKYldGblpVVnNaVzFsYm5Rc1hHNGdJRVY0WTJGc2FXUnlZWGRVWlhoMFJXeGxiV1Z1ZEN4Y2JpQWdSWGhqWVd4cFpISmhkMHhwYm1WaGNrVnNaVzFsYm5Rc1hHNGdJRVY0WTJGc2FXUnlZWGRIWlc1bGNtbGpSV3hsYldWdWRDeGNiaUFnVG05dVJHVnNaWFJsWkN4Y2JpQWdWR1Y0ZEVGc2FXZHVMRnh1SUNCSGNtOTFjRWxrTEZ4dUlDQldaWEowYVdOaGJFRnNhV2R1TEZ4dUlDQkJjbkp2ZDJobFlXUXNYRzRnSUVWNFkyRnNhV1J5WVhkR2NtVmxSSEpoZDBWc1pXMWxiblFzWEc0Z0lFWnZiblJHWVcxcGJIbFdZV3gxWlhNc1hHNGdJRVY0WTJGc2FXUnlZWGRTWldOMFlXNW5iR1ZGYkdWdFpXNTBMRnh1ZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEM5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1oyVjBSbTl1ZEZOMGNtbHVaeXdnWjJWMFZYQmtZWFJsWkZScGJXVnpkR0Z0Y0N3Z2FYTlVaWE4wUlc1MklIMGdabkp2YlNCY0lpNHVMM1YwYVd4elhDSTdYRzVwYlhCdmNuUWdleUJ5WVc1a2IyMUpiblJsWjJWeUxDQnlZVzVrYjIxSlpDQjlJR1p5YjIwZ1hDSXVMaTl5WVc1a2IyMWNJanRjYm1sdGNHOXlkQ0I3SUcxMWRHRjBaVVZzWlcxbGJuUXNJRzVsZDBWc1pXMWxiblJYYVhSb0lIMGdabkp2YlNCY0lpNHZiWFYwWVhSbFJXeGxiV1Z1ZEZ3aU8xeHVhVzF3YjNKMElIc2daMlYwVG1WM1IzSnZkWEJKWkhOR2IzSkVkWEJzYVdOaGRHbHZiaUI5SUdaeWIyMGdYQ0l1TGk5bmNtOTFjSE5jSWp0Y2JtbHRjRzl5ZENCN0lFRndjRk4wWVhSbElIMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdleUJuWlhSRmJHVnRaVzUwUVdKemIyeDFkR1ZEYjI5eVpITWdmU0JtY205dElGd2lMbHdpTzF4dWFXMXdiM0owSUhzZ1lXUnFkWE4wV0ZsWGFYUm9VbTkwWVhScGIyNGdmU0JtY205dElGd2lMaTR2YldGMGFGd2lPMXh1YVcxd2IzSjBJSHNnWjJWMFVtVnphWHBsWkVWc1pXMWxiblJCWW5OdmJIVjBaVU52YjNKa2N5QjlJR1p5YjIwZ1hDSXVMMkp2ZFc1a2Mxd2lPMXh1YVcxd2IzSjBJSHNnWjJWMFEyOXVkR0ZwYm1WeVJXeGxiV1Z1ZEN3Z2JXVmhjM1Z5WlZSbGVIUXNJSGR5WVhCVVpYaDBJSDBnWm5KdmJTQmNJaTR2ZEdWNGRFVnNaVzFsYm5SY0lqdGNibWx0Y0c5eWRDQjdJR2x6UW05MWJtUlViME52Ym5SaGFXNWxjaUI5SUdaeWIyMGdYQ0l1TDNSNWNHVkRhR1ZqYTNOY0lqdGNibWx0Y0c5eWRDQjdJRUpQVlU1RVgxUkZXRlJmVUVGRVJFbE9SeUI5SUdaeWIyMGdYQ0l1TGk5amIyNXpkR0Z1ZEhOY0lqdGNibHh1ZEhsd1pTQkZiR1Z0Wlc1MFEyOXVjM1J5ZFdOMGIzSlBjSFJ6SUQwZ1RXRnlhMDl3ZEdsdmJtRnNQRnh1SUNCUGJXbDBQRVY0WTJGc2FXUnlZWGRIWlc1bGNtbGpSV3hsYldWdWRDd2dYQ0pwWkZ3aUlId2dYQ0owZVhCbFhDSWdmQ0JjSW1selJHVnNaWFJsWkZ3aUlId2dYQ0oxY0dSaGRHVmtYQ0krTEZ4dUlDQjhJRndpZDJsa2RHaGNJbHh1SUNCOElGd2lhR1ZwWjJoMFhDSmNiaUFnZkNCY0ltRnVaMnhsWENKY2JpQWdmQ0JjSW1keWIzVndTV1J6WENKY2JpQWdmQ0JjSW1KdmRXNWtSV3hsYldWdWRITmNJbHh1SUNCOElGd2ljMlZsWkZ3aVhHNGdJSHdnWENKMlpYSnphVzl1WENKY2JpQWdmQ0JjSW5abGNuTnBiMjVPYjI1alpWd2lYRzRnSUh3Z1hDSnNhVzVyWENKY2JqNDdYRzVjYm1OdmJuTjBJRjl1WlhkRmJHVnRaVzUwUW1GelpTQTlJRHhVSUdWNGRHVnVaSE1nUlhoallXeHBaSEpoZDBWc1pXMWxiblErS0Z4dUlDQjBlWEJsT2lCVVcxd2lkSGx3WlZ3aVhTeGNiaUFnZTF4dUlDQWdJSGdzWEc0Z0lDQWdlU3hjYmlBZ0lDQnpkSEp2YTJWRGIyeHZjaXhjYmlBZ0lDQmlZV05yWjNKdmRXNWtRMjlzYjNJc1hHNGdJQ0FnWm1sc2JGTjBlV3hsTEZ4dUlDQWdJSE4wY205clpWZHBaSFJvTEZ4dUlDQWdJSE4wY205clpWTjBlV3hsTEZ4dUlDQWdJSEp2ZFdkb2JtVnpjeXhjYmlBZ0lDQnZjR0ZqYVhSNUxGeHVJQ0FnSUhkcFpIUm9JRDBnTUN4Y2JpQWdJQ0JvWldsbmFIUWdQU0F3TEZ4dUlDQWdJR0Z1WjJ4bElEMGdNQ3hjYmlBZ0lDQm5jbTkxY0Vsa2N5QTlJRnRkTEZ4dUlDQWdJSE4wY205clpWTm9ZWEp3Ym1WemN5eGNiaUFnSUNCaWIzVnVaRVZzWlcxbGJuUnpJRDBnYm5Wc2JDeGNiaUFnSUNCc2FXNXJJRDBnYm5Wc2JDeGNiaUFnSUNBdUxpNXlaWE4wWEc0Z0lIMDZJRVZzWlcxbGJuUkRiMjV6ZEhKMVkzUnZjazl3ZEhNZ0ppQlBiV2wwUEZCaGNuUnBZV3c4UlhoallXeHBaSEpoZDBkbGJtVnlhV05GYkdWdFpXNTBQaXdnWENKMGVYQmxYQ0krTEZ4dUtTQTlQaUI3WEc0Z0lHTnZibk4wSUdWc1pXMWxiblFnUFNCN1hHNGdJQ0FnYVdRNklISmxjM1F1YVdRZ2ZId2djbUZ1Wkc5dFNXUW9LU3hjYmlBZ0lDQjBlWEJsTEZ4dUlDQWdJSGdzWEc0Z0lDQWdlU3hjYmlBZ0lDQjNhV1IwYUN4Y2JpQWdJQ0JvWldsbmFIUXNYRzRnSUNBZ1lXNW5iR1VzWEc0Z0lDQWdjM1J5YjJ0bFEyOXNiM0lzWEc0Z0lDQWdZbUZqYTJkeWIzVnVaRU52Ykc5eUxGeHVJQ0FnSUdacGJHeFRkSGxzWlN4Y2JpQWdJQ0J6ZEhKdmEyVlhhV1IwYUN4Y2JpQWdJQ0J6ZEhKdmEyVlRkSGxzWlN4Y2JpQWdJQ0J5YjNWbmFHNWxjM01zWEc0Z0lDQWdiM0JoWTJsMGVTeGNiaUFnSUNCbmNtOTFjRWxrY3l4Y2JpQWdJQ0J6ZEhKdmEyVlRhR0Z5Y0c1bGMzTXNYRzRnSUNBZ2MyVmxaRG9nY21WemRDNXpaV1ZrSUQ4L0lISmhibVJ2YlVsdWRHVm5aWElvS1N4Y2JpQWdJQ0IyWlhKemFXOXVPaUJ5WlhOMExuWmxjbk5wYjI0Z2ZId2dNU3hjYmlBZ0lDQjJaWEp6YVc5dVRtOXVZMlU2SUhKbGMzUXVkbVZ5YzJsdmJrNXZibU5sSUQ4L0lEQXNYRzRnSUNBZ2FYTkVaV3hsZEdWa09pQm1ZV3h6WlNCaGN5Qm1ZV3h6WlN4Y2JpQWdJQ0JpYjNWdVpFVnNaVzFsYm5SekxGeHVJQ0FnSUhWd1pHRjBaV1E2SUdkbGRGVndaR0YwWldSVWFXMWxjM1JoYlhBb0tTeGNiaUFnSUNCc2FXNXJMRnh1SUNCOU8xeHVJQ0J5WlhSMWNtNGdaV3hsYldWdWREdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J1WlhkRmJHVnRaVzUwSUQwZ0tGeHVJQ0J2Y0hSek9pQjdYRzRnSUNBZ2RIbHdaVG9nUlhoallXeHBaSEpoZDBkbGJtVnlhV05GYkdWdFpXNTBXMXdpZEhsd1pWd2lYVHRjYmlBZ2ZTQW1JRVZzWlcxbGJuUkRiMjV6ZEhKMVkzUnZjazl3ZEhNc1hHNHBPaUJPYjI1RVpXeGxkR1ZrUEVWNFkyRnNhV1J5WVhkSFpXNWxjbWxqUld4bGJXVnVkRDRnUFQ1Y2JpQWdYMjVsZDBWc1pXMWxiblJDWVhObFBFVjRZMkZzYVdSeVlYZEhaVzVsY21salJXeGxiV1Z1ZEQ0b2IzQjBjeTUwZVhCbExDQnZjSFJ6S1R0Y2JseHVMeW9xSUdOdmJYQjFkR1Z6SUdWc1pXMWxiblFnZUM5NUlHOW1abk5sZENCaVlYTmxaQ0J2YmlCMFpYaDBRV3hwWjI0dmRtVnlkR2xqWVd4QmJHbG5iaUFxTDF4dVkyOXVjM1FnWjJWMFZHVjRkRVZzWlcxbGJuUlFiM05wZEdsdmJrOW1abk5sZEhNZ1BTQW9YRzRnSUc5d2RITTZJSHRjYmlBZ0lDQjBaWGgwUVd4cFoyNDZJRVY0WTJGc2FXUnlZWGRVWlhoMFJXeGxiV1Z1ZEZ0Y0luUmxlSFJCYkdsbmJsd2lYVHRjYmlBZ0lDQjJaWEowYVdOaGJFRnNhV2R1T2lCRmVHTmhiR2xrY21GM1ZHVjRkRVZzWlcxbGJuUmJYQ0oyWlhKMGFXTmhiRUZzYVdkdVhDSmRPMXh1SUNCOUxGeHVJQ0J0WlhSeWFXTnpPaUI3WEc0Z0lDQWdkMmxrZEdnNklHNTFiV0psY2p0Y2JpQWdJQ0JvWldsbmFIUTZJRzUxYldKbGNqdGNiaUFnZlN4Y2Jpa2dQVDRnZTF4dUlDQnlaWFIxY200Z2UxeHVJQ0FnSUhnNlhHNGdJQ0FnSUNCdmNIUnpMblJsZUhSQmJHbG5iaUE5UFQwZ1hDSmpaVzUwWlhKY0lseHVJQ0FnSUNBZ0lDQS9JRzFsZEhKcFkzTXVkMmxrZEdnZ0x5QXlYRzRnSUNBZ0lDQWdJRG9nYjNCMGN5NTBaWGgwUVd4cFoyNGdQVDA5SUZ3aWNtbG5hSFJjSWx4dUlDQWdJQ0FnSUNBL0lHMWxkSEpwWTNNdWQybGtkR2hjYmlBZ0lDQWdJQ0FnT2lBd0xGeHVJQ0FnSUhrNklHOXdkSE11ZG1WeWRHbGpZV3hCYkdsbmJpQTlQVDBnWENKdGFXUmtiR1ZjSWlBL0lHMWxkSEpwWTNNdWFHVnBaMmgwSUM4Z01pQTZJREFzWEc0Z0lIMDdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYm1WM1ZHVjRkRVZzWlcxbGJuUWdQU0FvWEc0Z0lHOXdkSE02SUh0Y2JpQWdJQ0IwWlhoME9pQnpkSEpwYm1jN1hHNGdJQ0FnWm05dWRGTnBlbVU2SUc1MWJXSmxjanRjYmlBZ0lDQm1iMjUwUm1GdGFXeDVPaUJHYjI1MFJtRnRhV3g1Vm1Gc2RXVnpPMXh1SUNBZ0lIUmxlSFJCYkdsbmJqb2dWR1Y0ZEVGc2FXZHVPMXh1SUNBZ0lIWmxjblJwWTJGc1FXeHBaMjQ2SUZabGNuUnBZMkZzUVd4cFoyNDdYRzRnSUNBZ1kyOXVkR0ZwYm1WeVNXUS9PaUJGZUdOaGJHbGtjbUYzVW1WamRHRnVaMnhsUld4bGJXVnVkRnRjSW1sa1hDSmRPMXh1SUNCOUlDWWdSV3hsYldWdWRFTnZibk4wY25WamRHOXlUM0IwY3l4Y2JpazZJRTV2YmtSbGJHVjBaV1E4UlhoallXeHBaSEpoZDFSbGVIUkZiR1Z0Wlc1MFBpQTlQaUI3WEc0Z0lHTnZibk4wSUcxbGRISnBZM01nUFNCdFpXRnpkWEpsVkdWNGRDaHZjSFJ6TG5SbGVIUXNJR2RsZEVadmJuUlRkSEpwYm1jb2IzQjBjeWtwTzF4dUlDQmpiMjV6ZENCdlptWnpaWFJ6SUQwZ1oyVjBWR1Y0ZEVWc1pXMWxiblJRYjNOcGRHbHZiazltWm5ObGRITW9iM0IwY3l3Z2JXVjBjbWxqY3lrN1hHNGdJR052Ym5OMElIUmxlSFJGYkdWdFpXNTBJRDBnYm1WM1JXeGxiV1Z1ZEZkcGRHZ29YRzRnSUNBZ2UxeHVJQ0FnSUNBZ0xpNHVYMjVsZDBWc1pXMWxiblJDWVhObFBFVjRZMkZzYVdSeVlYZFVaWGgwUld4bGJXVnVkRDRvWENKMFpYaDBYQ0lzSUc5d2RITXBMRnh1SUNBZ0lDQWdkR1Y0ZERvZ2IzQjBjeTUwWlhoMExGeHVJQ0FnSUNBZ1ptOXVkRk5wZW1VNklHOXdkSE11Wm05dWRGTnBlbVVzWEc0Z0lDQWdJQ0JtYjI1MFJtRnRhV3g1T2lCdmNIUnpMbVp2Ym5SR1lXMXBiSGtzWEc0Z0lDQWdJQ0IwWlhoMFFXeHBaMjQ2SUc5d2RITXVkR1Y0ZEVGc2FXZHVMRnh1SUNBZ0lDQWdkbVZ5ZEdsallXeEJiR2xuYmpvZ2IzQjBjeTUyWlhKMGFXTmhiRUZzYVdkdUxGeHVJQ0FnSUNBZ2VEb2diM0IwY3k1NElDMGdiMlptYzJWMGN5NTRMRnh1SUNBZ0lDQWdlVG9nYjNCMGN5NTVJQzBnYjJabWMyVjBjeTU1TEZ4dUlDQWdJQ0FnZDJsa2RHZzZJRzFsZEhKcFkzTXVkMmxrZEdnc1hHNGdJQ0FnSUNCb1pXbG5hSFE2SUcxbGRISnBZM011YUdWcFoyaDBMRnh1SUNBZ0lDQWdZbUZ6Wld4cGJtVTZJRzFsZEhKcFkzTXVZbUZ6Wld4cGJtVXNYRzRnSUNBZ0lDQmpiMjUwWVdsdVpYSkpaRG9nYjNCMGN5NWpiMjUwWVdsdVpYSkpaQ0I4ZkNCdWRXeHNMRnh1SUNBZ0lDQWdiM0pwWjJsdVlXeFVaWGgwT2lCdmNIUnpMblJsZUhRc1hHNGdJQ0FnZlN4Y2JpQWdJQ0I3ZlN4Y2JpQWdLVHRjYmlBZ2NtVjBkWEp1SUhSbGVIUkZiR1Z0Wlc1ME8xeHVmVHRjYmx4dVkyOXVjM1FnWjJWMFFXUnFkWE4wWldSRWFXMWxibk5wYjI1eklEMGdLRnh1SUNCbGJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1ZHVjRkRVZzWlcxbGJuUXNYRzRnSUc1bGVIUlVaWGgwT2lCemRISnBibWNzWEc0cE9pQjdYRzRnSUhnNklHNTFiV0psY2p0Y2JpQWdlVG9nYm5WdFltVnlPMXh1SUNCM2FXUjBhRG9nYm5WdFltVnlPMXh1SUNCb1pXbG5hSFE2SUc1MWJXSmxjanRjYmlBZ1ltRnpaV3hwYm1VNklHNTFiV0psY2p0Y2JuMGdQVDRnZTF4dUlDQnNaWFFnYldGNFYybGtkR2dnUFNCdWRXeHNPMXh1SUNCamIyNXpkQ0JqYjI1MFlXbHVaWElnUFNCblpYUkRiMjUwWVdsdVpYSkZiR1Z0Wlc1MEtHVnNaVzFsYm5RcE8xeHVJQ0JwWmlBb1kyOXVkR0ZwYm1WeUtTQjdYRzRnSUNBZ2JXRjRWMmxrZEdnZ1BTQmpiMjUwWVdsdVpYSXVkMmxrZEdnZ0xTQkNUMVZPUkY5VVJWaFVYMUJCUkVSSlRrY2dLaUF5TzF4dUlDQjlYRzRnSUdOdmJuTjBJSHRjYmlBZ0lDQjNhV1IwYURvZ2JtVjRkRmRwWkhSb0xGeHVJQ0FnSUdobGFXZG9kRG9nYm1WNGRFaGxhV2RvZEN4Y2JpQWdJQ0JpWVhObGJHbHVaVG9nYm1WNGRFSmhjMlZzYVc1bExGeHVJQ0I5SUQwZ2JXVmhjM1Z5WlZSbGVIUW9ibVY0ZEZSbGVIUXNJR2RsZEVadmJuUlRkSEpwYm1jb1pXeGxiV1Z1ZENrc0lHMWhlRmRwWkhSb0tUdGNiaUFnWTI5dWMzUWdleUIwWlhoMFFXeHBaMjRzSUhabGNuUnBZMkZzUVd4cFoyNGdmU0E5SUdWc1pXMWxiblE3WEc0Z0lHeGxkQ0I0T2lCdWRXMWlaWEk3WEc0Z0lHeGxkQ0I1T2lCdWRXMWlaWEk3WEc0Z0lHbG1JQ2hjYmlBZ0lDQjBaWGgwUVd4cFoyNGdQVDA5SUZ3aVkyVnVkR1Z5WENJZ0ppWmNiaUFnSUNCMlpYSjBhV05oYkVGc2FXZHVJRDA5UFNCY0ltMXBaR1JzWlZ3aUlDWW1YRzRnSUNBZ0lXVnNaVzFsYm5RdVkyOXVkR0ZwYm1WeVNXUmNiaUFnS1NCN1hHNGdJQ0FnWTI5dWMzUWdjSEpsZGsxbGRISnBZM01nUFNCdFpXRnpkWEpsVkdWNGRDaGNiaUFnSUNBZ0lHVnNaVzFsYm5RdWRHVjRkQ3hjYmlBZ0lDQWdJR2RsZEVadmJuUlRkSEpwYm1jb1pXeGxiV1Z1ZENrc1hHNGdJQ0FnSUNCdFlYaFhhV1IwYUN4Y2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElHOW1abk5sZEhNZ1BTQm5aWFJVWlhoMFJXeGxiV1Z1ZEZCdmMybDBhVzl1VDJabWMyVjBjeWhsYkdWdFpXNTBMQ0I3WEc0Z0lDQWdJQ0IzYVdSMGFEb2dibVY0ZEZkcFpIUm9JQzBnY0hKbGRrMWxkSEpwWTNNdWQybGtkR2dzWEc0Z0lDQWdJQ0JvWldsbmFIUTZJRzVsZUhSSVpXbG5hSFFnTFNCd2NtVjJUV1YwY21samN5NW9aV2xuYUhRc1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCNElEMGdaV3hsYldWdWRDNTRJQzBnYjJabWMyVjBjeTU0TzF4dUlDQWdJSGtnUFNCbGJHVnRaVzUwTG5rZ0xTQnZabVp6WlhSekxuazdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdZMjl1YzNRZ1czZ3hMQ0I1TVN3Z2VESXNJSGt5WFNBOUlHZGxkRVZzWlcxbGJuUkJZbk52YkhWMFpVTnZiM0prY3lobGJHVnRaVzUwS1R0Y2JseHVJQ0FnSUdOdmJuTjBJRnR1WlhoMFdERXNJRzVsZUhSWk1Td2dibVY0ZEZneUxDQnVaWGgwV1RKZElEMGdaMlYwVW1WemFYcGxaRVZzWlcxbGJuUkJZbk52YkhWMFpVTnZiM0prY3loY2JpQWdJQ0FnSUdWc1pXMWxiblFzWEc0Z0lDQWdJQ0J1WlhoMFYybGtkR2dzWEc0Z0lDQWdJQ0J1WlhoMFNHVnBaMmgwTEZ4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ1pHVnNkR0ZZTVNBOUlDaDRNU0F0SUc1bGVIUllNU2tnTHlBeU8xeHVJQ0FnSUdOdmJuTjBJR1JsYkhSaFdURWdQU0FvZVRFZ0xTQnVaWGgwV1RFcElDOGdNanRjYmlBZ0lDQmpiMjV6ZENCa1pXeDBZVmd5SUQwZ0tIZ3lJQzBnYm1WNGRGZ3lLU0F2SURJN1hHNGdJQ0FnWTI5dWMzUWdaR1ZzZEdGWk1pQTlJQ2g1TWlBdElHNWxlSFJaTWlrZ0x5QXlPMXh1WEc0Z0lDQWdXM2dzSUhsZElEMGdZV1JxZFhOMFdGbFhhWFJvVW05MFlYUnBiMjRvWEc0Z0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUhNNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUdVNklIUmxlSFJCYkdsbmJpQTlQVDBnWENKalpXNTBaWEpjSWlCOGZDQjBaWGgwUVd4cFoyNGdQVDA5SUZ3aWJHVm1kRndpTEZ4dUlDQWdJQ0FnSUNCM09pQjBaWGgwUVd4cFoyNGdQVDA5SUZ3aVkyVnVkR1Z5WENJZ2ZId2dkR1Y0ZEVGc2FXZHVJRDA5UFNCY0luSnBaMmgwWENJc1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ1pXeGxiV1Z1ZEM1NExGeHVJQ0FnSUNBZ1pXeGxiV1Z1ZEM1NUxGeHVJQ0FnSUNBZ1pXeGxiV1Z1ZEM1aGJtZHNaU3hjYmlBZ0lDQWdJR1JsYkhSaFdERXNYRzRnSUNBZ0lDQmtaV3gwWVZreExGeHVJQ0FnSUNBZ1pHVnNkR0ZZTWl4Y2JpQWdJQ0FnSUdSbGJIUmhXVElzWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUM4dklHMWhhMlVnYzNWeVpTQmpiMjUwWVdsdVpYSWdaR2x0Wlc1emFXOXVjeUJoY21VZ2MyVjBJSEJ5YjNCbGNteDVJSGRvWlc1Y2JpQWdMeThnZEdWNGRDQmxaR2wwYjNJZ2IzWmxjbVpzYjNkeklHSmxlVzl1WkNCMmFXVjNjRzl5ZENCa2FXMWxibk5wYjI1elhHNGdJR2xtSUNocGMwSnZkVzVrVkc5RGIyNTBZV2x1WlhJb1pXeGxiV1Z1ZENrcElIdGNiaUFnSUNCamIyNXpkQ0JqYjI1MFlXbHVaWElnUFNCblpYUkRiMjUwWVdsdVpYSkZiR1Z0Wlc1MEtHVnNaVzFsYm5RcElUdGNiaUFnSUNCc1pYUWdhR1ZwWjJoMElEMGdZMjl1ZEdGcGJtVnlMbWhsYVdkb2REdGNiaUFnSUNCc1pYUWdkMmxrZEdnZ1BTQmpiMjUwWVdsdVpYSXVkMmxrZEdnN1hHNGdJQ0FnYVdZZ0tHNWxlSFJJWldsbmFIUWdQaUJvWldsbmFIUWdMU0JDVDFWT1JGOVVSVmhVWDFCQlJFUkpUa2NnS2lBeUtTQjdYRzRnSUNBZ0lDQm9aV2xuYUhRZ1BTQnVaWGgwU0dWcFoyaDBJQ3NnUWs5VlRrUmZWRVZZVkY5UVFVUkVTVTVISUNvZ01qdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tHNWxlSFJYYVdSMGFDQStJSGRwWkhSb0lDMGdRazlWVGtSZlZFVllWRjlRUVVSRVNVNUhJQ29nTWlrZ2UxeHVJQ0FnSUNBZ2QybGtkR2dnUFNCdVpYaDBWMmxrZEdnZ0t5QkNUMVZPUkY5VVJWaFVYMUJCUkVSSlRrY2dLaUF5TzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvYUdWcFoyaDBJQ0U5UFNCamIyNTBZV2x1WlhJdWFHVnBaMmgwSUh4OElIZHBaSFJvSUNFOVBTQmpiMjUwWVdsdVpYSXVkMmxrZEdncElIdGNiaUFnSUNBZ0lHMTFkR0YwWlVWc1pXMWxiblFvWTI5dWRHRnBibVZ5TENCN0lHaGxhV2RvZEN3Z2QybGtkR2dnZlNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzRnSUhKbGRIVnliaUI3WEc0Z0lDQWdkMmxrZEdnNklHNWxlSFJYYVdSMGFDeGNiaUFnSUNCb1pXbG5hSFE2SUc1bGVIUklaV2xuYUhRc1hHNGdJQ0FnZURvZ1RuVnRZbVZ5TG1selJtbHVhWFJsS0hncElEOGdlQ0E2SUdWc1pXMWxiblF1ZUN4Y2JpQWdJQ0I1T2lCT2RXMWlaWEl1YVhOR2FXNXBkR1VvZVNrZ1B5QjVJRG9nWld4bGJXVnVkQzU1TEZ4dUlDQWdJR0poYzJWc2FXNWxPaUJ1WlhoMFFtRnpaV3hwYm1Vc1hHNGdJSDA3WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2RYQmtZWFJsVkdWNGRFVnNaVzFsYm5RZ1BTQW9YRzRnSUdWc1pXMWxiblE2SUVWNFkyRnNhV1J5WVhkVVpYaDBSV3hsYldWdWRDeGNiaUFnZTF4dUlDQWdJSFJsZUhRc1hHNGdJQ0FnYVhORVpXeGxkR1ZrTEZ4dUlDQWdJRzl5YVdkcGJtRnNWR1Y0ZEN4Y2JpQWdmVG9nZTF4dUlDQWdJSFJsZUhRNklITjBjbWx1Wnp0Y2JpQWdJQ0JwYzBSbGJHVjBaV1EvT2lCaWIyOXNaV0Z1TzF4dUlDQWdJRzl5YVdkcGJtRnNWR1Y0ZERvZ2MzUnlhVzVuTzF4dUlDQjlMRnh1S1RvZ1JYaGpZV3hwWkhKaGQxUmxlSFJGYkdWdFpXNTBJRDArSUh0Y2JpQWdZMjl1YzNRZ1kyOXVkR0ZwYm1WeUlEMGdaMlYwUTI5dWRHRnBibVZ5Uld4bGJXVnVkQ2hsYkdWdFpXNTBLVHRjYmlBZ2FXWWdLR052Ym5SaGFXNWxjaWtnZTF4dUlDQWdJSFJsZUhRZ1BTQjNjbUZ3VkdWNGRDaDBaWGgwTENCblpYUkdiMjUwVTNSeWFXNW5LR1ZzWlcxbGJuUXBMQ0JqYjI1MFlXbHVaWEl1ZDJsa2RHZ3BPMXh1SUNCOVhHNGdJR052Ym5OMElHUnBiV1Z1YzJsdmJuTWdQU0JuWlhSQlpHcDFjM1JsWkVScGJXVnVjMmx2Ym5Nb1pXeGxiV1Z1ZEN3Z2RHVjRkQ2s3WEc0Z0lISmxkSFZ5YmlCdVpYZEZiR1Z0Wlc1MFYybDBhQ2hsYkdWdFpXNTBMQ0I3WEc0Z0lDQWdkR1Y0ZEN4Y2JpQWdJQ0J2Y21sbmFXNWhiRlJsZUhRc1hHNGdJQ0FnYVhORVpXeGxkR1ZrT2lCcGMwUmxiR1YwWldRZ1B6OGdaV3hsYldWdWRDNXBjMFJsYkdWMFpXUXNYRzRnSUNBZ0xpNHVaR2x0Wlc1emFXOXVjeXhjYmlBZ2ZTazdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYm1WM1JuSmxaVVJ5WVhkRmJHVnRaVzUwSUQwZ0tGeHVJQ0J2Y0hSek9pQjdYRzRnSUNBZ2RIbHdaVG9nWENKbWNtVmxaSEpoZDF3aU8xeHVJQ0FnSUhCdmFXNTBjejg2SUVWNFkyRnNhV1J5WVhkR2NtVmxSSEpoZDBWc1pXMWxiblJiWENKd2IybHVkSE5jSWwwN1hHNGdJQ0FnYzJsdGRXeGhkR1ZRY21WemMzVnlaVG9nWW05dmJHVmhianRjYmlBZ2ZTQW1JRVZzWlcxbGJuUkRiMjV6ZEhKMVkzUnZjazl3ZEhNc1hHNHBPaUJPYjI1RVpXeGxkR1ZrUEVWNFkyRnNhV1J5WVhkR2NtVmxSSEpoZDBWc1pXMWxiblErSUQwK0lIdGNiaUFnY21WMGRYSnVJSHRjYmlBZ0lDQXVMaTVmYm1WM1JXeGxiV1Z1ZEVKaGMyVThSWGhqWVd4cFpISmhkMFp5WldWRWNtRjNSV3hsYldWdWRENG9iM0IwY3k1MGVYQmxMQ0J2Y0hSektTeGNiaUFnSUNCd2IybHVkSE02SUc5d2RITXVjRzlwYm5SeklIeDhJRnRkTEZ4dUlDQWdJSEJ5WlhOemRYSmxjem9nVzEwc1hHNGdJQ0FnYzJsdGRXeGhkR1ZRY21WemMzVnlaVG9nYjNCMGN5NXphVzExYkdGMFpWQnlaWE56ZFhKbExGeHVJQ0FnSUd4aGMzUkRiMjF0YVhSMFpXUlFiMmx1ZERvZ2JuVnNiQ3hjYmlBZ2ZUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J1WlhkTWFXNWxZWEpGYkdWdFpXNTBJRDBnS0Z4dUlDQnZjSFJ6T2lCN1hHNGdJQ0FnZEhsd1pUb2dSWGhqWVd4cFpISmhkMHhwYm1WaGNrVnNaVzFsYm5SYlhDSjBlWEJsWENKZE8xeHVJQ0FnSUhOMFlYSjBRWEp5YjNkb1pXRmtPaUJCY25KdmQyaGxZV1FnZkNCdWRXeHNPMXh1SUNBZ0lHVnVaRUZ5Y205M2FHVmhaRG9nUVhKeWIzZG9aV0ZrSUh3Z2JuVnNiRHRjYmlBZ0lDQndiMmx1ZEhNL09pQkZlR05oYkdsa2NtRjNUR2x1WldGeVJXeGxiV1Z1ZEZ0Y0luQnZhVzUwYzF3aVhUdGNiaUFnZlNBbUlFVnNaVzFsYm5SRGIyNXpkSEoxWTNSdmNrOXdkSE1zWEc0cE9pQk9iMjVFWld4bGRHVmtQRVY0WTJGc2FXUnlZWGRNYVc1bFlYSkZiR1Z0Wlc1MFBpQTlQaUI3WEc0Z0lISmxkSFZ5YmlCN1hHNGdJQ0FnTGk0dVgyNWxkMFZzWlcxbGJuUkNZWE5sUEVWNFkyRnNhV1J5WVhkTWFXNWxZWEpGYkdWdFpXNTBQaWh2Y0hSekxuUjVjR1VzSUc5d2RITXBMRnh1SUNBZ0lIQnZhVzUwY3pvZ2IzQjBjeTV3YjJsdWRITWdmSHdnVzEwc1hHNGdJQ0FnYkdGemRFTnZiVzFwZEhSbFpGQnZhVzUwT2lCdWRXeHNMRnh1SUNBZ0lITjBZWEowUW1sdVpHbHVaem9nYm5Wc2JDeGNiaUFnSUNCbGJtUkNhVzVrYVc1bk9pQnVkV3hzTEZ4dUlDQWdJSE4wWVhKMFFYSnliM2RvWldGa09pQnZjSFJ6TG5OMFlYSjBRWEp5YjNkb1pXRmtMRnh1SUNBZ0lHVnVaRUZ5Y205M2FHVmhaRG9nYjNCMGN5NWxibVJCY25KdmQyaGxZV1FzWEc0Z0lIMDdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYm1WM1NXMWhaMlZGYkdWdFpXNTBJRDBnS0Z4dUlDQnZjSFJ6T2lCN1hHNGdJQ0FnZEhsd1pUb2dSWGhqWVd4cFpISmhkMGx0WVdkbFJXeGxiV1Z1ZEZ0Y0luUjVjR1ZjSWwwN1hHNGdJSDBnSmlCRmJHVnRaVzUwUTI5dWMzUnlkV04wYjNKUGNIUnpMRnh1S1RvZ1RtOXVSR1ZzWlhSbFpEeEZlR05oYkdsa2NtRjNTVzFoWjJWRmJHVnRaVzUwUGlBOVBpQjdYRzRnSUhKbGRIVnliaUI3WEc0Z0lDQWdMaTR1WDI1bGQwVnNaVzFsYm5SQ1lYTmxQRVY0WTJGc2FXUnlZWGRKYldGblpVVnNaVzFsYm5RK0tGd2lhVzFoWjJWY0lpd2diM0IwY3lrc1hHNGdJQ0FnTHk4Z2FXNGdkR2hsSUdaMWRIVnlaU0IzWlNkc2JDQnpkWEJ3YjNKMElHTm9ZVzVuYVc1bklITjBjbTlyWlNCamIyeHZjaUJtYjNJZ2MyOXRaU0JUVmtjZ1pXeGxiV1Z1ZEhNc1hHNGdJQ0FnTHk4Z1lXNWtJR0IwY21GdWMzQmhjbVZ1ZEdBZ2QybHNiQ0JzYVd0bGJIa2diV1ZoYmlCY0luVnpaU0J2Y21sbmFXNWhiQ0JqYjJ4dmNuTWdiMllnZEdobElHbHRZV2RsWENKY2JpQWdJQ0J6ZEhKdmEyVkRiMnh2Y2pvZ1hDSjBjbUZ1YzNCaGNtVnVkRndpTEZ4dUlDQWdJSE4wWVhSMWN6b2dYQ0p3Wlc1a2FXNW5YQ0lzWEc0Z0lDQWdabWxzWlVsa09pQnVkV3hzTEZ4dUlDQWdJSE5qWVd4bE9pQmJNU3dnTVYwc1hHNGdJSDA3WEc1OU8xeHVYRzR2THlCVGFXMXdiR2xtYVdWa0lHUmxaWEFnWTJ4dmJtVWdabTl5SUhSb1pTQndkWEp3YjNObElHOW1JR05zYjI1cGJtY2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUWdiMjVzZVZ4dUx5OGdLR1J2WlhOdUozUWdZMnh2Ym1VZ1JHRjBaU3dnVW1WblJYaHdMQ0JOWVhBc0lGTmxkQ3dnVkhsd1pXUWdZWEp5WVhseklHVjBZeTRwWEc0dkwxeHVMeThnUVdSaGNIUmxaQ0JtY205dElHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOXNkV3RsWldRdmEyeHZibUZjYm1WNGNHOXlkQ0JqYjI1emRDQmtaV1Z3UTI5d2VVVnNaVzFsYm5RZ1BTQW9kbUZzT2lCaGJua3NJR1JsY0hSb09pQnVkVzFpWlhJZ1BTQXdLU0E5UGlCN1hHNGdJR2xtSUNoMllXd2dQVDBnYm5Wc2JDQjhmQ0IwZVhCbGIyWWdkbUZzSUNFOVBTQmNJbTlpYW1WamRGd2lLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIWmhiRHRjYmlBZ2ZWeHVYRzRnSUdsbUlDaFBZbXBsWTNRdWNISnZkRzkwZVhCbExuUnZVM1J5YVc1bkxtTmhiR3dvZG1Gc0tTQTlQVDBnWENKYmIySnFaV04wSUU5aWFtVmpkRjFjSWlrZ2UxeHVJQ0FnSUdOdmJuTjBJSFJ0Y0NBOVhHNGdJQ0FnSUNCMGVYQmxiMllnZG1Gc0xtTnZibk4wY25WamRHOXlJRDA5UFNCY0ltWjFibU4wYVc5dVhDSmNiaUFnSUNBZ0lDQWdQeUJQWW1wbFkzUXVZM0psWVhSbEtFOWlhbVZqZEM1blpYUlFjbTkwYjNSNWNHVlBaaWgyWVd3cEtWeHVJQ0FnSUNBZ0lDQTZJSHQ5TzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYTJWNUlHbHVJSFpoYkNrZ2UxeHVJQ0FnSUNBZ2FXWWdLSFpoYkM1b1lYTlBkMjVRY205d1pYSjBlU2hyWlhrcEtTQjdYRzRnSUNBZ0lDQWdJQzh2SUdSdmJpZDBJR052Y0hrZ2RHOXdMV3hsZG1Wc0lITm9ZWEJsSUhCeWIzQmxjblI1TENCM2FHbGphQ0IzWlNCM1lXNTBJSFJ2SUhKbFoyVnVaWEpoZEdWY2JpQWdJQ0FnSUNBZ2FXWWdLR1JsY0hSb0lEMDlQU0F3SUNZbUlDaHJaWGtnUFQwOUlGd2ljMmhoY0dWY0lpQjhmQ0JyWlhrZ1BUMDlJRndpWTJGdWRtRnpYQ0lwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1ZEdsdWRXVTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZEcxd1cydGxlVjBnUFNCa1pXVndRMjl3ZVVWc1pXMWxiblFvZG1Gc1cydGxlVjBzSUdSbGNIUm9JQ3NnTVNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjBiWEE3WEc0Z0lIMWNibHh1SUNCcFppQW9RWEp5WVhrdWFYTkJjbkpoZVNoMllXd3BLU0I3WEc0Z0lDQWdiR1YwSUdzZ1BTQjJZV3d1YkdWdVozUm9PMXh1SUNBZ0lHTnZibk4wSUdGeWNpQTlJRzVsZHlCQmNuSmhlU2hyS1R0Y2JpQWdJQ0IzYUdsc1pTQW9heTB0S1NCN1hHNGdJQ0FnSUNCaGNuSmJhMTBnUFNCa1pXVndRMjl3ZVVWc1pXMWxiblFvZG1Gc1cydGRMQ0JrWlhCMGFDQXJJREVwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z1lYSnlPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJSFpoYkR0Y2JuMDdYRzVjYmk4cUtseHVJQ29nUkhWd2JHbGpZWFJsSUdGdUlHVnNaVzFsYm5Rc0lHOW1kR1Z1SUhWelpXUWdhVzRnZEdobElHRnNkQzFrY21GbklHOXdaWEpoZEdsdmJpNWNiaUFxSUU1dmRHVWdkR2hoZENCMGFHbHpJRzFsZEdodlpDQm9ZWE1nWjI5MGRHVnVJR0VnWW1sMElHTnZiWEJzYVdOaGRHVmtJSE5wYm1ObElIUm9aVnh1SUNvZ2FXNTBjbTlrZFdOMGFXOXVJRzltSUdkeWRXOXdhVzVuTDNWdVozSnZkWEJwYm1jZ1pXeGxiV1Z1ZEhNdVhHNGdLaUJBY0dGeVlXMGdaV1JwZEdsdVowZHliM1Z3U1dRZ1ZHaGxJR04xY25KbGJuUWdaM0p2ZFhBZ1ltVnBibWNnWldScGRHVmtMaUJVYUdVZ2JtVjNYRzRnS2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRDQjNhV3hzSUdsdWFHVnlhWFFnZEdocGN5Qm5jbTkxY0NCaGJtUWdhWFJ6WEc0Z0tpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0dGeVpXNTBjeTVjYmlBcUlFQndZWEpoYlNCbmNtOTFjRWxrVFdGd1JtOXlUM0JsY21GMGFXOXVJRUVnVFdGd0lIUm9ZWFFnYldGd2N5QnZiR1FnWjNKdmRYQWdTVVJ6SUhSdlhHNGdLaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa2RYQnNhV05oZEdWa0lHOXVaWE11SUVsbUlIbHZkU0JoY21VZ1pIVndiR2xqWVhScGJtZGNiaUFxSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHMTFiSFJwY0d4bElHVnNaVzFsYm5SeklHRjBJRzl1WTJVc0lITm9ZWEpsSUhSb2FYTWdiV0Z3WEc0Z0tpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JoYlc5dVozTjBJR0ZzYkNCdlppQjBhR1Z0WEc0Z0tpQkFjR0Z5WVcwZ1pXeGxiV1Z1ZENCRmJHVnRaVzUwSUhSdklHUjFjR3hwWTJGMFpWeHVJQ29nUUhCaGNtRnRJRzkyWlhKeWFXUmxjeUJCYm5rZ1pXeGxiV1Z1ZENCd2NtOXdaWEowYVdWeklIUnZJRzkyWlhKeWFXUmxYRzRnS2k5Y2JtVjRjRzl5ZENCamIyNXpkQ0JrZFhCc2FXTmhkR1ZGYkdWdFpXNTBJRDBnUEZSRmJHVnRaVzUwSUdWNGRHVnVaSE1nVFhWMFlXSnNaVHhGZUdOaGJHbGtjbUYzUld4bGJXVnVkRDQrS0Z4dUlDQmxaR2wwYVc1blIzSnZkWEJKWkRvZ1FYQndVM1JoZEdWYlhDSmxaR2wwYVc1blIzSnZkWEJKWkZ3aVhTeGNiaUFnWjNKdmRYQkpaRTFoY0VadmNrOXdaWEpoZEdsdmJqb2dUV0Z3UEVkeWIzVndTV1FzSUVkeWIzVndTV1ErTEZ4dUlDQmxiR1Z0Wlc1ME9pQlVSV3hsYldWdWRDeGNiaUFnYjNabGNuSnBaR1Z6UHpvZ1VHRnlkR2xoYkR4VVJXeGxiV1Z1ZEQ0c1hHNHBPaUJVUld4bGJXVnVkQ0E5UGlCN1hHNGdJR3hsZENCamIzQjVPaUJVUld4bGJXVnVkQ0E5SUdSbFpYQkRiM0I1Uld4bGJXVnVkQ2hsYkdWdFpXNTBLVHRjYmlBZ2FXWWdLR2x6VkdWemRFVnVkaWdwS1NCN1hHNGdJQ0FnWTI5d2VTNXBaQ0E5SUdBa2UyTnZjSGt1YVdSOVgyTnZjSGxnTzF4dUlDQWdJQzh2SUdCM2FXNWtiM2N1YUdBZ2JXRjVJRzV2ZENCaVpTQmtaV1pwYm1Wa0lHbHVJSE52YldVZ2RXNXBkQ0IwWlhOMGMxeHVJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lIZHBibVJ2ZHk1b1B5NWhjSEJjYmlBZ0lDQWdJQ0FnUHk1blpYUlRZMlZ1WlVWc1pXMWxiblJ6U1c1amJIVmthVzVuUkdWc1pYUmxaQ2dwWEc0Z0lDQWdJQ0FnSUM1bWFXNWtLQ2hsYkNrZ1BUNGdaV3d1YVdRZ1BUMDlJR052Y0hrdWFXUXBYRzRnSUNBZ0tTQjdYRzRnSUNBZ0lDQmpiM0I1TG1sa0lDczlJRndpWDJOdmNIbGNJanRjYmlBZ0lDQjlYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdZMjl3ZVM1cFpDQTlJSEpoYm1SdmJVbGtLQ2s3WEc0Z0lIMWNiaUFnWTI5d2VTNTFjR1JoZEdWa0lEMGdaMlYwVlhCa1lYUmxaRlJwYldWemRHRnRjQ2dwTzF4dUlDQmpiM0I1TG5ObFpXUWdQU0J5WVc1a2IyMUpiblJsWjJWeUtDazdYRzRnSUdOdmNIa3VaM0p2ZFhCSlpITWdQU0JuWlhST1pYZEhjbTkxY0Vsa2MwWnZja1IxY0d4cFkyRjBhVzl1S0Z4dUlDQWdJR052Y0hrdVozSnZkWEJKWkhNc1hHNGdJQ0FnWldScGRHbHVaMGR5YjNWd1NXUXNYRzRnSUNBZ0tHZHliM1Z3U1dRcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNnaFozSnZkWEJKWkUxaGNFWnZjazl3WlhKaGRHbHZiaTVvWVhNb1ozSnZkWEJKWkNrcElIdGNiaUFnSUNBZ0lDQWdaM0p2ZFhCSlpFMWhjRVp2Y2s5d1pYSmhkR2x2Ymk1elpYUW9aM0p2ZFhCSlpDd2djbUZ1Wkc5dFNXUW9LU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdaM0p2ZFhCSlpFMWhjRVp2Y2s5d1pYSmhkR2x2Ymk1blpYUW9aM0p2ZFhCSlpDa2hPMXh1SUNBZ0lIMHNYRzRnSUNrN1hHNGdJR2xtSUNodmRtVnljbWxrWlhNcElIdGNiaUFnSUNCamIzQjVJRDBnVDJKcVpXTjBMbUZ6YzJsbmJpaGpiM0I1TENCdmRtVnljbWxrWlhNcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCamIzQjVPMXh1ZlR0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2VsZW1lbnQvbmV3RWxlbWVudC50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vZWxlbWVudC9yZXNpemVFbGVtZW50cy50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2VsZW1lbnQvcmVzaXplRWxlbWVudHMudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibm9ybWFsaXplQW5nbGVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBub3JtYWxpemVBbmdsZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwidHJhbnNmb3JtRWxlbWVudHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB0cmFuc2Zvcm1FbGVtZW50cyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicmVzaGFwZVNpbmdsZVR3b1BvaW50RWxlbWVudFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJlc2hhcGVTaW5nbGVUd29Qb2ludEVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJlc2l6ZVNpbmdsZUVsZW1lbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZXNpemVTaW5nbGVFbGVtZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRSZXNpemVPZmZzZXRYWVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldFJlc2l6ZU9mZnNldFhZKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRSZXNpemVBcnJvd0RpcmVjdGlvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldFJlc2l6ZUFycm93RGlyZWN0aW9uKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcG9pbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9wb2ludHMgKi8gXFxcIi4uLy4uL3BvaW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vbWF0aCAqLyBcXFwiLi4vLi4vbWF0aC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2JvdW5kcyAqLyBcXFwiLi4vLi4vZWxlbWVudC9ib3VuZHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vdHlwZUNoZWNrcyAqLyBcXFwiLi4vLi4vZWxlbWVudC90eXBlQ2hlY2tzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL211dGF0ZUVsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvbXV0YXRlRWxlbWVudC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2l6ZUhlbHBlcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vc2l6ZUhlbHBlcnMgKi8gXFxcIi4uLy4uL2VsZW1lbnQvc2l6ZUhlbHBlcnMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi91dGlscyAqLyBcXFwiLi4vLi4vdXRpbHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2JpbmRpbmdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vYmluZGluZyAqLyBcXFwiLi4vLi4vZWxlbWVudC9iaW5kaW5nLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2VuZV9TY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vc2NlbmUvU2NlbmUgKi8gXFxcIi4uLy4uL3NjZW5lL1NjZW5lLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90ZXh0RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vdGV4dEVsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdGV4dEVsZW1lbnQudHNcXFwiKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBub3JtYWxpemVBbmdsZSA9IChhbmdsZSkgPT4ge1xcbiAgICBpZiAoYW5nbGUgPj0gMiAqIE1hdGguUEkpIHtcXG4gICAgICAgIHJldHVybiBhbmdsZSAtIDIgKiBNYXRoLlBJO1xcbiAgICB9XFxuICAgIHJldHVybiBhbmdsZTtcXG59O1xcbi8vIFJldHVybnMgdHJ1ZSB3aGVuIHRyYW5zZm9ybSAocmVzaXppbmcvcm90YXRpb24pIGhhcHBlbmVkXFxuY29uc3QgdHJhbnNmb3JtRWxlbWVudHMgPSAocG9pbnRlckRvd25TdGF0ZSwgdHJhbnNmb3JtSGFuZGxlVHlwZSwgc2VsZWN0ZWRFbGVtZW50cywgcmVzaXplQXJyb3dEaXJlY3Rpb24sIHNob3VsZFJvdGF0ZVdpdGhEaXNjcmV0ZUFuZ2xlLCBzaG91bGRSZXNpemVGcm9tQ2VudGVyLCBzaG91bGRNYWludGFpbkFzcGVjdFJhdGlvLCBwb2ludGVyWCwgcG9pbnRlclksIGNlbnRlclgsIGNlbnRlclkpID0+IHtcXG4gICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxKSB7XFxuICAgICAgICBjb25zdCBbZWxlbWVudF0gPSBzZWxlY3RlZEVsZW1lbnRzO1xcbiAgICAgICAgaWYgKHRyYW5zZm9ybUhhbmRsZVR5cGUgPT09IFxcXCJyb3RhdGlvblxcXCIpIHtcXG4gICAgICAgICAgICByb3RhdGVTaW5nbGVFbGVtZW50KGVsZW1lbnQsIHBvaW50ZXJYLCBwb2ludGVyWSwgc2hvdWxkUm90YXRlV2l0aERpc2NyZXRlQW5nbGUpO1xcbiAgICAgICAgICAgICgwLF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18udXBkYXRlQm91bmRFbGVtZW50cykoZWxlbWVudCk7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIGlmICgoMCxfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmlzTGluZWFyRWxlbWVudCkoZWxlbWVudCkgJiZcXG4gICAgICAgICAgICBlbGVtZW50LnBvaW50cy5sZW5ndGggPT09IDIgJiZcXG4gICAgICAgICAgICAodHJhbnNmb3JtSGFuZGxlVHlwZSA9PT0gXFxcIm53XFxcIiB8fFxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1IYW5kbGVUeXBlID09PSBcXFwibmVcXFwiIHx8XFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybUhhbmRsZVR5cGUgPT09IFxcXCJzd1xcXCIgfHxcXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtSGFuZGxlVHlwZSA9PT0gXFxcInNlXFxcIikpIHtcXG4gICAgICAgICAgICByZXNoYXBlU2luZ2xlVHdvUG9pbnRFbGVtZW50KGVsZW1lbnQsIHJlc2l6ZUFycm93RGlyZWN0aW9uLCBzaG91bGRSb3RhdGVXaXRoRGlzY3JldGVBbmdsZSwgcG9pbnRlclgsIHBvaW50ZXJZKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKCgwLF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uaXNUZXh0RWxlbWVudCkoZWxlbWVudCkgJiZcXG4gICAgICAgICAgICAodHJhbnNmb3JtSGFuZGxlVHlwZSA9PT0gXFxcIm53XFxcIiB8fFxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1IYW5kbGVUeXBlID09PSBcXFwibmVcXFwiIHx8XFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybUhhbmRsZVR5cGUgPT09IFxcXCJzd1xcXCIgfHxcXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtSGFuZGxlVHlwZSA9PT0gXFxcInNlXFxcIikpIHtcXG4gICAgICAgICAgICByZXNpemVTaW5nbGVUZXh0RWxlbWVudChlbGVtZW50LCB0cmFuc2Zvcm1IYW5kbGVUeXBlLCBzaG91bGRSZXNpemVGcm9tQ2VudGVyLCBwb2ludGVyWCwgcG9pbnRlclkpO1xcbiAgICAgICAgICAgICgwLF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18udXBkYXRlQm91bmRFbGVtZW50cykoZWxlbWVudCk7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIGlmICh0cmFuc2Zvcm1IYW5kbGVUeXBlKSB7XFxuICAgICAgICAgICAgcmVzaXplU2luZ2xlRWxlbWVudChwb2ludGVyRG93blN0YXRlLm9yaWdpbmFsRWxlbWVudHMuZ2V0KGVsZW1lbnQuaWQpLCBzaG91bGRNYWludGFpbkFzcGVjdFJhdGlvLCBlbGVtZW50LCB0cmFuc2Zvcm1IYW5kbGVUeXBlLCBzaG91bGRSZXNpemVGcm9tQ2VudGVyLCBwb2ludGVyWCwgcG9pbnRlclkpO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgIH1cXG4gICAgZWxzZSBpZiAoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPiAxKSB7XFxuICAgICAgICBpZiAodHJhbnNmb3JtSGFuZGxlVHlwZSA9PT0gXFxcInJvdGF0aW9uXFxcIikge1xcbiAgICAgICAgICAgIHJvdGF0ZU11bHRpcGxlRWxlbWVudHMocG9pbnRlckRvd25TdGF0ZSwgc2VsZWN0ZWRFbGVtZW50cywgcG9pbnRlclgsIHBvaW50ZXJZLCBzaG91bGRSb3RhdGVXaXRoRGlzY3JldGVBbmdsZSwgY2VudGVyWCwgY2VudGVyWSk7XFxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIGlmICh0cmFuc2Zvcm1IYW5kbGVUeXBlID09PSBcXFwibndcXFwiIHx8XFxuICAgICAgICAgICAgdHJhbnNmb3JtSGFuZGxlVHlwZSA9PT0gXFxcIm5lXFxcIiB8fFxcbiAgICAgICAgICAgIHRyYW5zZm9ybUhhbmRsZVR5cGUgPT09IFxcXCJzd1xcXCIgfHxcXG4gICAgICAgICAgICB0cmFuc2Zvcm1IYW5kbGVUeXBlID09PSBcXFwic2VcXFwiKSB7XFxuICAgICAgICAgICAgcmVzaXplTXVsdGlwbGVFbGVtZW50cyhzZWxlY3RlZEVsZW1lbnRzLCB0cmFuc2Zvcm1IYW5kbGVUeXBlLCBwb2ludGVyWCwgcG9pbnRlclkpO1xcbiAgICAgICAgICAgICgwLF90ZXh0RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5oYW5kbGVCaW5kVGV4dFJlc2l6ZSkoc2VsZWN0ZWRFbGVtZW50cywgdHJhbnNmb3JtSGFuZGxlVHlwZSk7XFxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIGZhbHNlO1xcbn07XFxuY29uc3Qgcm90YXRlU2luZ2xlRWxlbWVudCA9IChlbGVtZW50LCBwb2ludGVyWCwgcG9pbnRlclksIHNob3VsZFJvdGF0ZVdpdGhEaXNjcmV0ZUFuZ2xlKSA9PiB7XFxuICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzKShlbGVtZW50KTtcXG4gICAgY29uc3QgY3ggPSAoeDEgKyB4MikgLyAyO1xcbiAgICBjb25zdCBjeSA9ICh5MSArIHkyKSAvIDI7XFxuICAgIGxldCBhbmdsZSA9ICg1ICogTWF0aC5QSSkgLyAyICsgTWF0aC5hdGFuMihwb2ludGVyWSAtIGN5LCBwb2ludGVyWCAtIGN4KTtcXG4gICAgaWYgKHNob3VsZFJvdGF0ZVdpdGhEaXNjcmV0ZUFuZ2xlKSB7XFxuICAgICAgICBhbmdsZSArPSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uU0hJRlRfTE9DS0lOR19BTkdMRSAvIDI7XFxuICAgICAgICBhbmdsZSAtPSBhbmdsZSAlIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5TSElGVF9MT0NLSU5HX0FOR0xFO1xcbiAgICB9XFxuICAgIGFuZ2xlID0gbm9ybWFsaXplQW5nbGUoYW5nbGUpO1xcbiAgICAoMCxfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLm11dGF0ZUVsZW1lbnQpKGVsZW1lbnQsIHsgYW5nbGUgfSk7XFxuICAgIGNvbnN0IGJvdW5kVGV4dEVsZW1lbnRJZCA9ICgwLF90ZXh0RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5nZXRCb3VuZFRleHRFbGVtZW50SWQpKGVsZW1lbnQpO1xcbiAgICBpZiAoYm91bmRUZXh0RWxlbWVudElkKSB7XFxuICAgICAgICBjb25zdCB0ZXh0RWxlbWVudCA9IF9zY2VuZV9TY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fW1xcXCJkZWZhdWx0XFxcIl0uZ2V0U2NlbmUoZWxlbWVudCkuZ2V0RWxlbWVudChib3VuZFRleHRFbGVtZW50SWQpO1xcbiAgICAgICAgKDAsX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5tdXRhdGVFbGVtZW50KSh0ZXh0RWxlbWVudCwgeyBhbmdsZSB9KTtcXG4gICAgfVxcbn07XFxuLy8gdXNlZCBpbiBERVYgb25seVxcbmNvbnN0IHZhbGlkYXRlVHdvUG9pbnRFbGVtZW50Tm9ybWFsaXplZCA9IChlbGVtZW50KSA9PiB7XFxuICAgIGlmIChlbGVtZW50LnBvaW50cy5sZW5ndGggIT09IDIgfHxcXG4gICAgICAgIGVsZW1lbnQucG9pbnRzWzBdWzBdICE9PSAwIHx8XFxuICAgICAgICBlbGVtZW50LnBvaW50c1swXVsxXSAhPT0gMCB8fFxcbiAgICAgICAgTWF0aC5hYnMoZWxlbWVudC5wb2ludHNbMV1bMF0pICE9PSBlbGVtZW50LndpZHRoIHx8XFxuICAgICAgICBNYXRoLmFicyhlbGVtZW50LnBvaW50c1sxXVsxXSkgIT09IGVsZW1lbnQuaGVpZ2h0KSB7XFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXFxcIlR3by1wb2ludCBlbGVtZW50IGlzIG5vdCBub3JtYWxpemVkXFxcIik7XFxuICAgIH1cXG59O1xcbmNvbnN0IGdldFBlcmZlY3RFbGVtZW50U2l6ZVdpdGhSb3RhdGlvbiA9IChlbGVtZW50VHlwZSwgd2lkdGgsIGhlaWdodCwgYW5nbGUpID0+IHtcXG4gICAgY29uc3Qgc2l6ZSA9ICgwLF9zaXplSGVscGVyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmdldFBlcmZlY3RFbGVtZW50U2l6ZSkoZWxlbWVudFR5cGUsIC4uLigwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ucm90YXRlKSh3aWR0aCwgaGVpZ2h0LCAwLCAwLCBhbmdsZSkpO1xcbiAgICByZXR1cm4gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5yb3RhdGUpKHNpemUud2lkdGgsIHNpemUuaGVpZ2h0LCAwLCAwLCAtYW5nbGUpO1xcbn07XFxuY29uc3QgcmVzaGFwZVNpbmdsZVR3b1BvaW50RWxlbWVudCA9IChlbGVtZW50LCByZXNpemVBcnJvd0RpcmVjdGlvbiwgc2hvdWxkUm90YXRlV2l0aERpc2NyZXRlQW5nbGUsIHBvaW50ZXJYLCBwb2ludGVyWSkgPT4ge1xcbiAgICBpZiAodHJ1ZSkge1xcbiAgICAgICAgdmFsaWRhdGVUd29Qb2ludEVsZW1lbnROb3JtYWxpemVkKGVsZW1lbnQpO1xcbiAgICB9XFxuICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzKShlbGVtZW50KTtcXG4gICAgY29uc3QgY3ggPSAoeDEgKyB4MikgLyAyO1xcbiAgICBjb25zdCBjeSA9ICh5MSArIHkyKSAvIDI7XFxuICAgIC8vIHJvdGF0aW9uIHBvaW50ZXIgd2l0aCByZXZlcnNlIGFuZ2xlXFxuICAgIGNvbnN0IFtyb3RhdGVkWCwgcm90YXRlZFldID0gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5yb3RhdGUpKHBvaW50ZXJYLCBwb2ludGVyWSwgY3gsIGN5LCAtZWxlbWVudC5hbmdsZSk7XFxuICAgIGxldCBbd2lkdGgsIGhlaWdodF0gPSByZXNpemVBcnJvd0RpcmVjdGlvbiA9PT0gXFxcImVuZFxcXCJcXG4gICAgICAgID8gW3JvdGF0ZWRYIC0gZWxlbWVudC54LCByb3RhdGVkWSAtIGVsZW1lbnQueV1cXG4gICAgICAgIDogW1xcbiAgICAgICAgICAgIGVsZW1lbnQueCArIGVsZW1lbnQucG9pbnRzWzFdWzBdIC0gcm90YXRlZFgsXFxuICAgICAgICAgICAgZWxlbWVudC55ICsgZWxlbWVudC5wb2ludHNbMV1bMV0gLSByb3RhdGVkWSxcXG4gICAgICAgIF07XFxuICAgIGlmIChzaG91bGRSb3RhdGVXaXRoRGlzY3JldGVBbmdsZSkge1xcbiAgICAgICAgW3dpZHRoLCBoZWlnaHRdID0gZ2V0UGVyZmVjdEVsZW1lbnRTaXplV2l0aFJvdGF0aW9uKGVsZW1lbnQudHlwZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudC5hbmdsZSk7XFxuICAgIH1cXG4gICAgY29uc3QgW25leHRFbGVtZW50WCwgbmV4dEVsZW1lbnRZXSA9ICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uYWRqdXN0WFlXaXRoUm90YXRpb24pKHJlc2l6ZUFycm93RGlyZWN0aW9uID09PSBcXFwiZW5kXFxcIlxcbiAgICAgICAgPyB7IHM6IHRydWUsIGU6IHRydWUgfVxcbiAgICAgICAgOiB7IG46IHRydWUsIHc6IHRydWUgfSwgZWxlbWVudC54LCBlbGVtZW50LnksIGVsZW1lbnQuYW5nbGUsIDAsIDAsIChlbGVtZW50LnBvaW50c1sxXVswXSAtIHdpZHRoKSAvIDIsIChlbGVtZW50LnBvaW50c1sxXVsxXSAtIGhlaWdodCkgLyAyKTtcXG4gICAgKDAsX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5tdXRhdGVFbGVtZW50KShlbGVtZW50LCB7XFxuICAgICAgICB4OiBuZXh0RWxlbWVudFgsXFxuICAgICAgICB5OiBuZXh0RWxlbWVudFksXFxuICAgICAgICBwb2ludHM6IFtcXG4gICAgICAgICAgICBbMCwgMF0sXFxuICAgICAgICAgICAgW3dpZHRoLCBoZWlnaHRdLFxcbiAgICAgICAgXSxcXG4gICAgfSk7XFxufTtcXG5jb25zdCByZXNjYWxlUG9pbnRzSW5FbGVtZW50ID0gKGVsZW1lbnQsIHdpZHRoLCBoZWlnaHQpID0+ICgwLF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uaXNMaW5lYXJFbGVtZW50KShlbGVtZW50KSB8fCAoMCxfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmlzRnJlZURyYXdFbGVtZW50KShlbGVtZW50KVxcbiAgICA/IHtcXG4gICAgICAgIHBvaW50czogKDAsX3BvaW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnJlc2NhbGVQb2ludHMpKDAsIHdpZHRoLCAoMCxfcG9pbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ucmVzY2FsZVBvaW50cykoMSwgaGVpZ2h0LCBlbGVtZW50LnBvaW50cykpLFxcbiAgICB9XFxuICAgIDoge307XFxuY29uc3QgTUlOX0ZPTlRfU0laRSA9IDE7XFxuY29uc3QgbWVhc3VyZUZvbnRTaXplRnJvbVdIID0gKGVsZW1lbnQsIG5leHRXaWR0aCwgbmV4dEhlaWdodCkgPT4ge1xcbiAgICAvLyBXZSBvbmx5IHVzZSB3aWR0aCB0byBzY2FsZSBmb250IG9uIHJlc2l6ZVxcbiAgICBjb25zdCBuZXh0Rm9udFNpemUgPSBlbGVtZW50LmZvbnRTaXplICogKG5leHRXaWR0aCAvIGVsZW1lbnQud2lkdGgpO1xcbiAgICBpZiAobmV4dEZvbnRTaXplIDwgTUlOX0ZPTlRfU0laRSkge1xcbiAgICAgICAgcmV0dXJuIG51bGw7XFxuICAgIH1cXG4gICAgY29uc3QgbWV0cmljcyA9ICgwLF90ZXh0RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5tZWFzdXJlVGV4dCkoZWxlbWVudC50ZXh0LCAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5nZXRGb250U3RyaW5nKSh7IGZvbnRTaXplOiBuZXh0Rm9udFNpemUsIGZvbnRGYW1pbHk6IGVsZW1lbnQuZm9udEZhbWlseSB9KSwgZWxlbWVudC5jb250YWluZXJJZCA/IGVsZW1lbnQud2lkdGggOiBudWxsKTtcXG4gICAgcmV0dXJuIHtcXG4gICAgICAgIHNpemU6IG5leHRGb250U2l6ZSxcXG4gICAgICAgIGJhc2VsaW5lOiBtZXRyaWNzLmJhc2VsaW5lICsgKG5leHRIZWlnaHQgLSBtZXRyaWNzLmhlaWdodCksXFxuICAgIH07XFxufTtcXG5jb25zdCBnZXRTaWRlc0ZvclRyYW5zZm9ybUhhbmRsZSA9ICh0cmFuc2Zvcm1IYW5kbGVUeXBlLCBzaG91bGRSZXNpemVGcm9tQ2VudGVyKSA9PiB7XFxuICAgIHJldHVybiB7XFxuICAgICAgICBuOiAvXihufG5lfG53KSQvLnRlc3QodHJhbnNmb3JtSGFuZGxlVHlwZSkgfHxcXG4gICAgICAgICAgICAoc2hvdWxkUmVzaXplRnJvbUNlbnRlciAmJiAvXihzfHNlfHN3KSQvLnRlc3QodHJhbnNmb3JtSGFuZGxlVHlwZSkpLFxcbiAgICAgICAgczogL14oc3xzZXxzdykkLy50ZXN0KHRyYW5zZm9ybUhhbmRsZVR5cGUpIHx8XFxuICAgICAgICAgICAgKHNob3VsZFJlc2l6ZUZyb21DZW50ZXIgJiYgL14obnxuZXxudykkLy50ZXN0KHRyYW5zZm9ybUhhbmRsZVR5cGUpKSxcXG4gICAgICAgIHc6IC9eKHd8bnd8c3cpJC8udGVzdCh0cmFuc2Zvcm1IYW5kbGVUeXBlKSB8fFxcbiAgICAgICAgICAgIChzaG91bGRSZXNpemVGcm9tQ2VudGVyICYmIC9eKGV8bmV8c2UpJC8udGVzdCh0cmFuc2Zvcm1IYW5kbGVUeXBlKSksXFxuICAgICAgICBlOiAvXihlfG5lfHNlKSQvLnRlc3QodHJhbnNmb3JtSGFuZGxlVHlwZSkgfHxcXG4gICAgICAgICAgICAoc2hvdWxkUmVzaXplRnJvbUNlbnRlciAmJiAvXih3fG53fHN3KSQvLnRlc3QodHJhbnNmb3JtSGFuZGxlVHlwZSkpLFxcbiAgICB9O1xcbn07XFxuY29uc3QgcmVzaXplU2luZ2xlVGV4dEVsZW1lbnQgPSAoZWxlbWVudCwgdHJhbnNmb3JtSGFuZGxlVHlwZSwgc2hvdWxkUmVzaXplRnJvbUNlbnRlciwgcG9pbnRlclgsIHBvaW50ZXJZKSA9PiB7XFxuICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzKShlbGVtZW50KTtcXG4gICAgY29uc3QgY3ggPSAoeDEgKyB4MikgLyAyO1xcbiAgICBjb25zdCBjeSA9ICh5MSArIHkyKSAvIDI7XFxuICAgIC8vIHJvdGF0aW9uIHBvaW50ZXIgd2l0aCByZXZlcnNlIGFuZ2xlXFxuICAgIGNvbnN0IFtyb3RhdGVkWCwgcm90YXRlZFldID0gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5yb3RhdGUpKHBvaW50ZXJYLCBwb2ludGVyWSwgY3gsIGN5LCAtZWxlbWVudC5hbmdsZSk7XFxuICAgIGxldCBzY2FsZTtcXG4gICAgc3dpdGNoICh0cmFuc2Zvcm1IYW5kbGVUeXBlKSB7XFxuICAgICAgICBjYXNlIFxcXCJzZVxcXCI6XFxuICAgICAgICAgICAgc2NhbGUgPSBNYXRoLm1heCgocm90YXRlZFggLSB4MSkgLyAoeDIgLSB4MSksIChyb3RhdGVkWSAtIHkxKSAvICh5MiAtIHkxKSk7XFxuICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICBjYXNlIFxcXCJud1xcXCI6XFxuICAgICAgICAgICAgc2NhbGUgPSBNYXRoLm1heCgoeDIgLSByb3RhdGVkWCkgLyAoeDIgLSB4MSksICh5MiAtIHJvdGF0ZWRZKSAvICh5MiAtIHkxKSk7XFxuICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICBjYXNlIFxcXCJuZVxcXCI6XFxuICAgICAgICAgICAgc2NhbGUgPSBNYXRoLm1heCgocm90YXRlZFggLSB4MSkgLyAoeDIgLSB4MSksICh5MiAtIHJvdGF0ZWRZKSAvICh5MiAtIHkxKSk7XFxuICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICBjYXNlIFxcXCJzd1xcXCI6XFxuICAgICAgICAgICAgc2NhbGUgPSBNYXRoLm1heCgoeDIgLSByb3RhdGVkWCkgLyAoeDIgLSB4MSksIChyb3RhdGVkWSAtIHkxKSAvICh5MiAtIHkxKSk7XFxuICAgICAgICAgICAgYnJlYWs7XFxuICAgIH1cXG4gICAgaWYgKHNjYWxlID4gMCkge1xcbiAgICAgICAgY29uc3QgbmV4dFdpZHRoID0gZWxlbWVudC53aWR0aCAqIHNjYWxlO1xcbiAgICAgICAgY29uc3QgbmV4dEhlaWdodCA9IGVsZW1lbnQuaGVpZ2h0ICogc2NhbGU7XFxuICAgICAgICBjb25zdCBuZXh0Rm9udCA9IG1lYXN1cmVGb250U2l6ZUZyb21XSChlbGVtZW50LCBuZXh0V2lkdGgsIG5leHRIZWlnaHQpO1xcbiAgICAgICAgaWYgKG5leHRGb250ID09PSBudWxsKSB7XFxuICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3QgW25leHRYMSwgbmV4dFkxLCBuZXh0WDIsIG5leHRZMl0gPSAoMCxfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZ2V0UmVzaXplZEVsZW1lbnRBYnNvbHV0ZUNvb3JkcykoZWxlbWVudCwgbmV4dFdpZHRoLCBuZXh0SGVpZ2h0KTtcXG4gICAgICAgIGNvbnN0IGRlbHRhWDEgPSAoeDEgLSBuZXh0WDEpIC8gMjtcXG4gICAgICAgIGNvbnN0IGRlbHRhWTEgPSAoeTEgLSBuZXh0WTEpIC8gMjtcXG4gICAgICAgIGNvbnN0IGRlbHRhWDIgPSAoeDIgLSBuZXh0WDIpIC8gMjtcXG4gICAgICAgIGNvbnN0IGRlbHRhWTIgPSAoeTIgLSBuZXh0WTIpIC8gMjtcXG4gICAgICAgIGNvbnN0IFtuZXh0RWxlbWVudFgsIG5leHRFbGVtZW50WV0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmFkanVzdFhZV2l0aFJvdGF0aW9uKShnZXRTaWRlc0ZvclRyYW5zZm9ybUhhbmRsZSh0cmFuc2Zvcm1IYW5kbGVUeXBlLCBzaG91bGRSZXNpemVGcm9tQ2VudGVyKSwgZWxlbWVudC54LCBlbGVtZW50LnksIGVsZW1lbnQuYW5nbGUsIGRlbHRhWDEsIGRlbHRhWTEsIGRlbHRhWDIsIGRlbHRhWTIpO1xcbiAgICAgICAgKDAsX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5tdXRhdGVFbGVtZW50KShlbGVtZW50LCB7XFxuICAgICAgICAgICAgZm9udFNpemU6IG5leHRGb250LnNpemUsXFxuICAgICAgICAgICAgd2lkdGg6IG5leHRXaWR0aCxcXG4gICAgICAgICAgICBoZWlnaHQ6IG5leHRIZWlnaHQsXFxuICAgICAgICAgICAgYmFzZWxpbmU6IG5leHRGb250LmJhc2VsaW5lLFxcbiAgICAgICAgICAgIHg6IG5leHRFbGVtZW50WCxcXG4gICAgICAgICAgICB5OiBuZXh0RWxlbWVudFksXFxuICAgICAgICB9KTtcXG4gICAgfVxcbn07XFxuY29uc3QgcmVzaXplU2luZ2xlRWxlbWVudCA9IChzdGF0ZUF0UmVzaXplU3RhcnQsIHNob3VsZE1haW50YWluQXNwZWN0UmF0aW8sIGVsZW1lbnQsIHRyYW5zZm9ybUhhbmRsZURpcmVjdGlvbiwgc2hvdWxkUmVzaXplRnJvbUNlbnRlciwgcG9pbnRlclgsIHBvaW50ZXJZKSA9PiB7XFxuICAgIC8vIEdldHMgYm91bmRzIGNvcm5lcnNcXG4gICAgY29uc3QgW3gxLCB5MSwgeDIsIHkyXSA9ICgwLF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5nZXRSZXNpemVkRWxlbWVudEFic29sdXRlQ29vcmRzKShzdGF0ZUF0UmVzaXplU3RhcnQsIHN0YXRlQXRSZXNpemVTdGFydC53aWR0aCwgc3RhdGVBdFJlc2l6ZVN0YXJ0LmhlaWdodCk7XFxuICAgIGNvbnN0IHN0YXJ0VG9wTGVmdCA9IFt4MSwgeTFdO1xcbiAgICBjb25zdCBzdGFydEJvdHRvbVJpZ2h0ID0gW3gyLCB5Ml07XFxuICAgIGNvbnN0IHN0YXJ0Q2VudGVyID0gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5jZW50ZXJQb2ludCkoc3RhcnRUb3BMZWZ0LCBzdGFydEJvdHRvbVJpZ2h0KTtcXG4gICAgLy8gQ2FsY3VsYXRlIG5ldyBkaW1lbnNpb25zIGJhc2VkIG9uIGN1cnNvciBwb3NpdGlvblxcbiAgICBjb25zdCByb3RhdGVkUG9pbnRlciA9ICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ucm90YXRlUG9pbnQpKFtwb2ludGVyWCwgcG9pbnRlclldLCBzdGFydENlbnRlciwgLXN0YXRlQXRSZXNpemVTdGFydC5hbmdsZSk7XFxuICAgIC8vIEdldCBib3VuZHMgY29ybmVycyByZW5kZXJlZCBvbiBzY3JlZW5cXG4gICAgY29uc3QgW2VzeDEsIGVzeTEsIGVzeDIsIGVzeTJdID0gKDAsX2JvdW5kc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmdldFJlc2l6ZWRFbGVtZW50QWJzb2x1dGVDb29yZHMpKGVsZW1lbnQsIGVsZW1lbnQud2lkdGgsIGVsZW1lbnQuaGVpZ2h0KTtcXG4gICAgY29uc3QgYm91bmRUZXh0RWxlbWVudElkID0gKDAsX3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLmdldEJvdW5kVGV4dEVsZW1lbnRJZCkoZWxlbWVudCk7XFxuICAgIGNvbnN0IGJvdW5kc0N1cnJlbnRXaWR0aCA9IGVzeDIgLSBlc3gxO1xcbiAgICBjb25zdCBib3VuZHNDdXJyZW50SGVpZ2h0ID0gZXN5MiAtIGVzeTE7XFxuICAgIC8vIEl0J3MgaW1wb3J0YW50IHdlIHNldCB0aGUgaW5pdGlhbCBzY2FsZSB2YWx1ZSBiYXNlZCBvbiB0aGUgd2lkdGggYW5kIGhlaWdodCBhdCByZXNpemUgc3RhcnQsXFxuICAgIC8vIG90aGVyd2lzZSBwcmV2aW91cyBkaW1lbnNpb25zIGFmZmVjdGVkIGJ5IG1vZGlmaWVycyB3aWxsIGJlIHRha2VuIGludG8gYWNjb3VudC5cXG4gICAgY29uc3QgYXRTdGFydEJvdW5kc1dpZHRoID0gc3RhcnRCb3R0b21SaWdodFswXSAtIHN0YXJ0VG9wTGVmdFswXTtcXG4gICAgY29uc3QgYXRTdGFydEJvdW5kc0hlaWdodCA9IHN0YXJ0Qm90dG9tUmlnaHRbMV0gLSBzdGFydFRvcExlZnRbMV07XFxuICAgIGxldCBzY2FsZVggPSBhdFN0YXJ0Qm91bmRzV2lkdGggLyBib3VuZHNDdXJyZW50V2lkdGg7XFxuICAgIGxldCBzY2FsZVkgPSBhdFN0YXJ0Qm91bmRzSGVpZ2h0IC8gYm91bmRzQ3VycmVudEhlaWdodDtcXG4gICAgaWYgKHRyYW5zZm9ybUhhbmRsZURpcmVjdGlvbi5pbmNsdWRlcyhcXFwiZVxcXCIpKSB7XFxuICAgICAgICBzY2FsZVggPSAocm90YXRlZFBvaW50ZXJbMF0gLSBzdGFydFRvcExlZnRbMF0pIC8gYm91bmRzQ3VycmVudFdpZHRoO1xcbiAgICB9XFxuICAgIGlmICh0cmFuc2Zvcm1IYW5kbGVEaXJlY3Rpb24uaW5jbHVkZXMoXFxcInNcXFwiKSkge1xcbiAgICAgICAgc2NhbGVZID0gKHJvdGF0ZWRQb2ludGVyWzFdIC0gc3RhcnRUb3BMZWZ0WzFdKSAvIGJvdW5kc0N1cnJlbnRIZWlnaHQ7XFxuICAgIH1cXG4gICAgaWYgKHRyYW5zZm9ybUhhbmRsZURpcmVjdGlvbi5pbmNsdWRlcyhcXFwid1xcXCIpKSB7XFxuICAgICAgICBzY2FsZVggPSAoc3RhcnRCb3R0b21SaWdodFswXSAtIHJvdGF0ZWRQb2ludGVyWzBdKSAvIGJvdW5kc0N1cnJlbnRXaWR0aDtcXG4gICAgfVxcbiAgICBpZiAodHJhbnNmb3JtSGFuZGxlRGlyZWN0aW9uLmluY2x1ZGVzKFxcXCJuXFxcIikpIHtcXG4gICAgICAgIHNjYWxlWSA9IChzdGFydEJvdHRvbVJpZ2h0WzFdIC0gcm90YXRlZFBvaW50ZXJbMV0pIC8gYm91bmRzQ3VycmVudEhlaWdodDtcXG4gICAgfVxcbiAgICAvLyBMaW5lYXIgZWxlbWVudHMgZGltZW5zaW9ucyBkaWZmZXIgZnJvbSBib3VuZHMgZGltZW5zaW9uc1xcbiAgICBjb25zdCBlbGVJbml0aWFsV2lkdGggPSBzdGF0ZUF0UmVzaXplU3RhcnQud2lkdGg7XFxuICAgIGNvbnN0IGVsZUluaXRpYWxIZWlnaHQgPSBzdGF0ZUF0UmVzaXplU3RhcnQuaGVpZ2h0O1xcbiAgICAvLyBXZSBoYXZlIHRvIHVzZSBkaW1lbnNpb25zIG9mIGVsZW1lbnQgb24gc2NyZWVuLCBvdGhlcndpc2UgdGhlIHNjYWxpbmcgb2YgdGhlXFxuICAgIC8vIGRpbWVuc2lvbnMgd29uJ3QgbWF0Y2ggdGhlIGN1cnNvciBmb3IgbGluZWFyIGVsZW1lbnRzLlxcbiAgICBsZXQgZWxlTmV3V2lkdGggPSBlbGVtZW50LndpZHRoICogc2NhbGVYO1xcbiAgICBsZXQgZWxlTmV3SGVpZ2h0ID0gZWxlbWVudC5oZWlnaHQgKiBzY2FsZVk7XFxuICAgIC8vIGFkanVzdCBkaW1lbnNpb25zIGZvciByZXNpemluZyBmcm9tIGNlbnRlclxcbiAgICBpZiAoc2hvdWxkUmVzaXplRnJvbUNlbnRlcikge1xcbiAgICAgICAgZWxlTmV3V2lkdGggPSAyICogZWxlTmV3V2lkdGggLSBlbGVJbml0aWFsV2lkdGg7XFxuICAgICAgICBlbGVOZXdIZWlnaHQgPSAyICogZWxlTmV3SGVpZ2h0IC0gZWxlSW5pdGlhbEhlaWdodDtcXG4gICAgfVxcbiAgICAvLyBhZGp1c3QgZGltZW5zaW9ucyB0byBrZWVwIHNpZGVzIHJhdGlvXFxuICAgIGlmIChzaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKSB7XFxuICAgICAgICBjb25zdCB3aWR0aFJhdGlvID0gTWF0aC5hYnMoZWxlTmV3V2lkdGgpIC8gZWxlSW5pdGlhbFdpZHRoO1xcbiAgICAgICAgY29uc3QgaGVpZ2h0UmF0aW8gPSBNYXRoLmFicyhlbGVOZXdIZWlnaHQpIC8gZWxlSW5pdGlhbEhlaWdodDtcXG4gICAgICAgIGlmICh0cmFuc2Zvcm1IYW5kbGVEaXJlY3Rpb24ubGVuZ3RoID09PSAxKSB7XFxuICAgICAgICAgICAgZWxlTmV3SGVpZ2h0ICo9IHdpZHRoUmF0aW87XFxuICAgICAgICAgICAgZWxlTmV3V2lkdGggKj0gaGVpZ2h0UmF0aW87XFxuICAgICAgICB9XFxuICAgICAgICBpZiAodHJhbnNmb3JtSGFuZGxlRGlyZWN0aW9uLmxlbmd0aCA9PT0gMikge1xcbiAgICAgICAgICAgIGNvbnN0IHJhdGlvID0gTWF0aC5tYXgod2lkdGhSYXRpbywgaGVpZ2h0UmF0aW8pO1xcbiAgICAgICAgICAgIGVsZU5ld1dpZHRoID0gZWxlSW5pdGlhbFdpZHRoICogcmF0aW8gKiBNYXRoLnNpZ24oZWxlTmV3V2lkdGgpO1xcbiAgICAgICAgICAgIGVsZU5ld0hlaWdodCA9IGVsZUluaXRpYWxIZWlnaHQgKiByYXRpbyAqIE1hdGguc2lnbihlbGVOZXdIZWlnaHQpO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIGNvbnN0IFtuZXdCb3VuZHNYMSwgbmV3Qm91bmRzWTEsIG5ld0JvdW5kc1gyLCBuZXdCb3VuZHNZMl0gPSAoMCxfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZ2V0UmVzaXplZEVsZW1lbnRBYnNvbHV0ZUNvb3Jkcykoc3RhdGVBdFJlc2l6ZVN0YXJ0LCBlbGVOZXdXaWR0aCwgZWxlTmV3SGVpZ2h0KTtcXG4gICAgY29uc3QgbmV3Qm91bmRzV2lkdGggPSBuZXdCb3VuZHNYMiAtIG5ld0JvdW5kc1gxO1xcbiAgICBjb25zdCBuZXdCb3VuZHNIZWlnaHQgPSBuZXdCb3VuZHNZMiAtIG5ld0JvdW5kc1kxO1xcbiAgICAvLyBkb24ndCBhbGxvdyByZXNpemUgdG8gbmVnYXRpdmUgZGltZW5zaW9ucyB3aGVuIHRleHQgaXMgYm91bmRlZCB0byBjb250YWluZXJcXG4gICAgaWYgKChuZXdCb3VuZHNXaWR0aCA8IDAgfHwgbmV3Qm91bmRzSGVpZ2h0IDwgMCkgJiYgYm91bmRUZXh0RWxlbWVudElkKSB7XFxuICAgICAgICByZXR1cm47XFxuICAgIH1cXG4gICAgLy8gQ2FsY3VsYXRlIG5ldyB0b3BMZWZ0IGJhc2VkIG9uIGZpeGVkIGNvcm5lciBkdXJpbmcgcmVzaXplXFxuICAgIGxldCBuZXdUb3BMZWZ0ID0gWy4uLnN0YXJ0VG9wTGVmdF07XFxuICAgIGlmIChbXFxcIm5cXFwiLCBcXFwid1xcXCIsIFxcXCJud1xcXCJdLmluY2x1ZGVzKHRyYW5zZm9ybUhhbmRsZURpcmVjdGlvbikpIHtcXG4gICAgICAgIG5ld1RvcExlZnQgPSBbXFxuICAgICAgICAgICAgc3RhcnRCb3R0b21SaWdodFswXSAtIE1hdGguYWJzKG5ld0JvdW5kc1dpZHRoKSxcXG4gICAgICAgICAgICBzdGFydEJvdHRvbVJpZ2h0WzFdIC0gTWF0aC5hYnMobmV3Qm91bmRzSGVpZ2h0KSxcXG4gICAgICAgIF07XFxuICAgIH1cXG4gICAgaWYgKHRyYW5zZm9ybUhhbmRsZURpcmVjdGlvbiA9PT0gXFxcIm5lXFxcIikge1xcbiAgICAgICAgY29uc3QgYm90dG9tTGVmdCA9IFtzdGFydFRvcExlZnRbMF0sIHN0YXJ0Qm90dG9tUmlnaHRbMV1dO1xcbiAgICAgICAgbmV3VG9wTGVmdCA9IFtib3R0b21MZWZ0WzBdLCBib3R0b21MZWZ0WzFdIC0gTWF0aC5hYnMobmV3Qm91bmRzSGVpZ2h0KV07XFxuICAgIH1cXG4gICAgaWYgKHRyYW5zZm9ybUhhbmRsZURpcmVjdGlvbiA9PT0gXFxcInN3XFxcIikge1xcbiAgICAgICAgY29uc3QgdG9wUmlnaHQgPSBbc3RhcnRCb3R0b21SaWdodFswXSwgc3RhcnRUb3BMZWZ0WzFdXTtcXG4gICAgICAgIG5ld1RvcExlZnQgPSBbdG9wUmlnaHRbMF0gLSBNYXRoLmFicyhuZXdCb3VuZHNXaWR0aCksIHRvcFJpZ2h0WzFdXTtcXG4gICAgfVxcbiAgICAvLyBLZWVwcyBvcHBvc2l0ZSBoYW5kbGUgZml4ZWQgZHVyaW5nIHJlc2l6ZVxcbiAgICBpZiAoc2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbykge1xcbiAgICAgICAgaWYgKFtcXFwic1xcXCIsIFxcXCJuXFxcIl0uaW5jbHVkZXModHJhbnNmb3JtSGFuZGxlRGlyZWN0aW9uKSkge1xcbiAgICAgICAgICAgIG5ld1RvcExlZnRbMF0gPSBzdGFydENlbnRlclswXSAtIG5ld0JvdW5kc1dpZHRoIC8gMjtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChbXFxcImVcXFwiLCBcXFwid1xcXCJdLmluY2x1ZGVzKHRyYW5zZm9ybUhhbmRsZURpcmVjdGlvbikpIHtcXG4gICAgICAgICAgICBuZXdUb3BMZWZ0WzFdID0gc3RhcnRDZW50ZXJbMV0gLSBuZXdCb3VuZHNIZWlnaHQgLyAyO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIC8vIEZsaXAgaG9yaXpvbnRhbGx5XFxuICAgIGlmIChlbGVOZXdXaWR0aCA8IDApIHtcXG4gICAgICAgIGlmICh0cmFuc2Zvcm1IYW5kbGVEaXJlY3Rpb24uaW5jbHVkZXMoXFxcImVcXFwiKSkge1xcbiAgICAgICAgICAgIG5ld1RvcExlZnRbMF0gLT0gTWF0aC5hYnMobmV3Qm91bmRzV2lkdGgpO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKHRyYW5zZm9ybUhhbmRsZURpcmVjdGlvbi5pbmNsdWRlcyhcXFwid1xcXCIpKSB7XFxuICAgICAgICAgICAgbmV3VG9wTGVmdFswXSArPSBNYXRoLmFicyhuZXdCb3VuZHNXaWR0aCk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgLy8gRmxpcCB2ZXJ0aWNhbGx5XFxuICAgIGlmIChlbGVOZXdIZWlnaHQgPCAwKSB7XFxuICAgICAgICBpZiAodHJhbnNmb3JtSGFuZGxlRGlyZWN0aW9uLmluY2x1ZGVzKFxcXCJzXFxcIikpIHtcXG4gICAgICAgICAgICBuZXdUb3BMZWZ0WzFdIC09IE1hdGguYWJzKG5ld0JvdW5kc0hlaWdodCk7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAodHJhbnNmb3JtSGFuZGxlRGlyZWN0aW9uLmluY2x1ZGVzKFxcXCJuXFxcIikpIHtcXG4gICAgICAgICAgICBuZXdUb3BMZWZ0WzFdICs9IE1hdGguYWJzKG5ld0JvdW5kc0hlaWdodCk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgaWYgKHNob3VsZFJlc2l6ZUZyb21DZW50ZXIpIHtcXG4gICAgICAgIG5ld1RvcExlZnRbMF0gPSBzdGFydENlbnRlclswXSAtIE1hdGguYWJzKG5ld0JvdW5kc1dpZHRoKSAvIDI7XFxuICAgICAgICBuZXdUb3BMZWZ0WzFdID0gc3RhcnRDZW50ZXJbMV0gLSBNYXRoLmFicyhuZXdCb3VuZHNIZWlnaHQpIC8gMjtcXG4gICAgfVxcbiAgICAvLyBhZGp1c3QgdG9wTGVmdCB0byBuZXcgcm90YXRpb24gcG9pbnRcXG4gICAgY29uc3QgYW5nbGUgPSBzdGF0ZUF0UmVzaXplU3RhcnQuYW5nbGU7XFxuICAgIGNvbnN0IHJvdGF0ZWRUb3BMZWZ0ID0gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5yb3RhdGVQb2ludCkobmV3VG9wTGVmdCwgc3RhcnRDZW50ZXIsIGFuZ2xlKTtcXG4gICAgY29uc3QgbmV3Q2VudGVyID0gW1xcbiAgICAgICAgbmV3VG9wTGVmdFswXSArIE1hdGguYWJzKG5ld0JvdW5kc1dpZHRoKSAvIDIsXFxuICAgICAgICBuZXdUb3BMZWZ0WzFdICsgTWF0aC5hYnMobmV3Qm91bmRzSGVpZ2h0KSAvIDIsXFxuICAgIF07XFxuICAgIGNvbnN0IHJvdGF0ZWROZXdDZW50ZXIgPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnJvdGF0ZVBvaW50KShuZXdDZW50ZXIsIHN0YXJ0Q2VudGVyLCBhbmdsZSk7XFxuICAgIG5ld1RvcExlZnQgPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnJvdGF0ZVBvaW50KShyb3RhdGVkVG9wTGVmdCwgcm90YXRlZE5ld0NlbnRlciwgLWFuZ2xlKTtcXG4gICAgLy8gUmVhZGp1c3QgcG9pbnRzIGZvciBsaW5lYXIgZWxlbWVudHNcXG4gICAgY29uc3QgcmVzY2FsZWRQb2ludHMgPSByZXNjYWxlUG9pbnRzSW5FbGVtZW50KHN0YXRlQXRSZXNpemVTdGFydCwgZWxlTmV3V2lkdGgsIGVsZU5ld0hlaWdodCk7XFxuICAgIC8vIEZvciBsaW5lYXIgZWxlbWVudHMgKHgseSkgYXJlIHRoZSBjb29yZGluYXRlcyBvZiB0aGUgZmlyc3QgZHJhd24gcG9pbnQgbm90IHRoZSB0b3AtbGVmdCBjb3JuZXJcXG4gICAgLy8gU28gd2UgbmVlZCB0byByZWFkanVzdCAoeCx5KSB0byBiZSB3aGVyZSB0aGUgZmlyc3QgcG9pbnQgc2hvdWxkIGJlXFxuICAgIGNvbnN0IG5ld09yaWdpbiA9IFsuLi5uZXdUb3BMZWZ0XTtcXG4gICAgbmV3T3JpZ2luWzBdICs9IHN0YXRlQXRSZXNpemVTdGFydC54IC0gbmV3Qm91bmRzWDE7XFxuICAgIG5ld09yaWdpblsxXSArPSBzdGF0ZUF0UmVzaXplU3RhcnQueSAtIG5ld0JvdW5kc1kxO1xcbiAgICBjb25zdCByZXNpemVkRWxlbWVudCA9IE9iamVjdC5hc3NpZ24oeyB3aWR0aDogTWF0aC5hYnMoZWxlTmV3V2lkdGgpLCBoZWlnaHQ6IE1hdGguYWJzKGVsZU5ld0hlaWdodCksIHg6IG5ld09yaWdpblswXSwgeTogbmV3T3JpZ2luWzFdIH0sIHJlc2NhbGVkUG9pbnRzKTtcXG4gICAgaWYgKFxcXCJzY2FsZVxcXCIgaW4gZWxlbWVudCAmJiBcXFwic2NhbGVcXFwiIGluIHN0YXRlQXRSZXNpemVTdGFydCkge1xcbiAgICAgICAgKDAsX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5tdXRhdGVFbGVtZW50KShlbGVtZW50LCB7XFxuICAgICAgICAgICAgc2NhbGU6IFtcXG4gICAgICAgICAgICAgICAgLy8gZGVmYXVsdGluZyBiZWNhdXNlIHNjYWxlWC9ZIGNhbiBiZSAwLy0wXFxuICAgICAgICAgICAgICAgIChNYXRoLnNpZ24oc2NhbGVYKSB8fCBzdGF0ZUF0UmVzaXplU3RhcnQuc2NhbGVbMF0pICpcXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlQXRSZXNpemVTdGFydC5zY2FsZVswXSxcXG4gICAgICAgICAgICAgICAgKE1hdGguc2lnbihzY2FsZVkpIHx8IHN0YXRlQXRSZXNpemVTdGFydC5zY2FsZVsxXSkgKlxcbiAgICAgICAgICAgICAgICAgICAgc3RhdGVBdFJlc2l6ZVN0YXJ0LnNjYWxlWzFdLFxcbiAgICAgICAgICAgIF0sXFxuICAgICAgICB9KTtcXG4gICAgfVxcbiAgICBsZXQgbWluV2lkdGggPSAwO1xcbiAgICBjb25zdCBib3VuZFRleHRFbGVtZW50ID0gKDAsX3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLmdldEJvdW5kVGV4dEVsZW1lbnQpKGVsZW1lbnQpO1xcbiAgICBpZiAoYm91bmRUZXh0RWxlbWVudCkge1xcbiAgICAgICAgbWluV2lkdGggPSAoMCxfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uZ2V0QXBwcm94TWluTGluZVdpZHRoKSgoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5nZXRGb250U3RyaW5nKShib3VuZFRleHRFbGVtZW50KSk7XFxuICAgIH1cXG4gICAgaWYgKHJlc2l6ZWRFbGVtZW50LndpZHRoID49IG1pbldpZHRoICYmXFxuICAgICAgICByZXNpemVkRWxlbWVudC5oZWlnaHQgIT09IDAgJiZcXG4gICAgICAgIE51bWJlci5pc0Zpbml0ZShyZXNpemVkRWxlbWVudC54KSAmJlxcbiAgICAgICAgTnVtYmVyLmlzRmluaXRlKHJlc2l6ZWRFbGVtZW50LnkpKSB7XFxuICAgICAgICAoMCxfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLnVwZGF0ZUJvdW5kRWxlbWVudHMpKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICBuZXdTaXplOiB7IHdpZHRoOiByZXNpemVkRWxlbWVudC53aWR0aCwgaGVpZ2h0OiByZXNpemVkRWxlbWVudC5oZWlnaHQgfSxcXG4gICAgICAgIH0pO1xcbiAgICAgICAgKDAsX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5tdXRhdGVFbGVtZW50KShlbGVtZW50LCByZXNpemVkRWxlbWVudCk7XFxuICAgICAgICAoMCxfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uaGFuZGxlQmluZFRleHRSZXNpemUpKFtlbGVtZW50XSwgdHJhbnNmb3JtSGFuZGxlRGlyZWN0aW9uKTtcXG4gICAgfVxcbn07XFxuY29uc3QgcmVzaXplTXVsdGlwbGVFbGVtZW50cyA9IChlbGVtZW50cywgdHJhbnNmb3JtSGFuZGxlVHlwZSwgcG9pbnRlclgsIHBvaW50ZXJZKSA9PiB7XFxuICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZ2V0Q29tbW9uQm91bmRzKShlbGVtZW50cyk7XFxuICAgIGxldCBzY2FsZTtcXG4gICAgbGV0IGdldE5leHRYWTtcXG4gICAgc3dpdGNoICh0cmFuc2Zvcm1IYW5kbGVUeXBlKSB7XFxuICAgICAgICBjYXNlIFxcXCJzZVxcXCI6XFxuICAgICAgICAgICAgc2NhbGUgPSBNYXRoLm1heCgocG9pbnRlclggLSB4MSkgLyAoeDIgLSB4MSksIChwb2ludGVyWSAtIHkxKSAvICh5MiAtIHkxKSk7XFxuICAgICAgICAgICAgZ2V0TmV4dFhZID0gKGVsZW1lbnQsIFtvcmlnWDEsIG9yaWdZMV0sIFtmaW5hbFgxLCBmaW5hbFkxXSkgPT4ge1xcbiAgICAgICAgICAgICAgICBjb25zdCB4ID0gZWxlbWVudC54ICsgKG9yaWdYMSAtIHgxKSAqIChzY2FsZSAtIDEpICsgb3JpZ1gxIC0gZmluYWxYMTtcXG4gICAgICAgICAgICAgICAgY29uc3QgeSA9IGVsZW1lbnQueSArIChvcmlnWTEgLSB5MSkgKiAoc2NhbGUgLSAxKSArIG9yaWdZMSAtIGZpbmFsWTE7XFxuICAgICAgICAgICAgICAgIHJldHVybiB7IHgsIHkgfTtcXG4gICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgY2FzZSBcXFwibndcXFwiOlxcbiAgICAgICAgICAgIHNjYWxlID0gTWF0aC5tYXgoKHgyIC0gcG9pbnRlclgpIC8gKHgyIC0geDEpLCAoeTIgLSBwb2ludGVyWSkgLyAoeTIgLSB5MSkpO1xcbiAgICAgICAgICAgIGdldE5leHRYWSA9IChlbGVtZW50LCBbLCAsIG9yaWdYMiwgb3JpZ1kyXSwgWywgLCBmaW5hbFgyLCBmaW5hbFkyXSkgPT4ge1xcbiAgICAgICAgICAgICAgICBjb25zdCB4ID0gZWxlbWVudC54IC0gKHgyIC0gb3JpZ1gyKSAqIChzY2FsZSAtIDEpICsgb3JpZ1gyIC0gZmluYWxYMjtcXG4gICAgICAgICAgICAgICAgY29uc3QgeSA9IGVsZW1lbnQueSAtICh5MiAtIG9yaWdZMikgKiAoc2NhbGUgLSAxKSArIG9yaWdZMiAtIGZpbmFsWTI7XFxuICAgICAgICAgICAgICAgIHJldHVybiB7IHgsIHkgfTtcXG4gICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgY2FzZSBcXFwibmVcXFwiOlxcbiAgICAgICAgICAgIHNjYWxlID0gTWF0aC5tYXgoKHBvaW50ZXJYIC0geDEpIC8gKHgyIC0geDEpLCAoeTIgLSBwb2ludGVyWSkgLyAoeTIgLSB5MSkpO1xcbiAgICAgICAgICAgIGdldE5leHRYWSA9IChlbGVtZW50LCBbb3JpZ1gxLCAsICwgb3JpZ1kyXSwgW2ZpbmFsWDEsICwgLCBmaW5hbFkyXSkgPT4ge1xcbiAgICAgICAgICAgICAgICBjb25zdCB4ID0gZWxlbWVudC54ICsgKG9yaWdYMSAtIHgxKSAqIChzY2FsZSAtIDEpICsgb3JpZ1gxIC0gZmluYWxYMTtcXG4gICAgICAgICAgICAgICAgY29uc3QgeSA9IGVsZW1lbnQueSAtICh5MiAtIG9yaWdZMikgKiAoc2NhbGUgLSAxKSArIG9yaWdZMiAtIGZpbmFsWTI7XFxuICAgICAgICAgICAgICAgIHJldHVybiB7IHgsIHkgfTtcXG4gICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgY2FzZSBcXFwic3dcXFwiOlxcbiAgICAgICAgICAgIHNjYWxlID0gTWF0aC5tYXgoKHgyIC0gcG9pbnRlclgpIC8gKHgyIC0geDEpLCAocG9pbnRlclkgLSB5MSkgLyAoeTIgLSB5MSkpO1xcbiAgICAgICAgICAgIGdldE5leHRYWSA9IChlbGVtZW50LCBbLCBvcmlnWTEsIG9yaWdYMl0sIFssIGZpbmFsWTEsIGZpbmFsWDJdKSA9PiB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHggPSBlbGVtZW50LnggLSAoeDIgLSBvcmlnWDIpICogKHNjYWxlIC0gMSkgKyBvcmlnWDIgLSBmaW5hbFgyO1xcbiAgICAgICAgICAgICAgICBjb25zdCB5ID0gZWxlbWVudC55ICsgKG9yaWdZMSAtIHkxKSAqIChzY2FsZSAtIDEpICsgb3JpZ1kxIC0gZmluYWxZMTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgeCwgeSB9O1xcbiAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgYnJlYWs7XFxuICAgIH1cXG4gICAgaWYgKHNjYWxlID4gMCkge1xcbiAgICAgICAgY29uc3QgdXBkYXRlcyA9IGVsZW1lbnRzLnJlZHVjZSgocHJldiwgZWxlbWVudCkgPT4ge1xcbiAgICAgICAgICAgIGlmICghcHJldikge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBlbGVtZW50LndpZHRoICogc2NhbGU7XFxuICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gZWxlbWVudC5oZWlnaHQgKiBzY2FsZTtcXG4gICAgICAgICAgICBsZXQgZm9udCA9IHt9O1xcbiAgICAgICAgICAgIGlmICgoMCxfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmlzVGV4dEVsZW1lbnQpKGVsZW1lbnQpKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRGb250ID0gbWVhc3VyZUZvbnRTaXplRnJvbVdIKGVsZW1lbnQsIHdpZHRoLCBoZWlnaHQpO1xcbiAgICAgICAgICAgICAgICBpZiAobmV4dEZvbnQgPT09IG51bGwpIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGZvbnQgPSB7IGZvbnRTaXplOiBuZXh0Rm9udC5zaXplLCBiYXNlbGluZTogbmV4dEZvbnQuYmFzZWxpbmUgfTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY29uc3Qgb3JpZ0Nvb3JkcyA9ICgwLF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5nZXRFbGVtZW50QWJzb2x1dGVDb29yZHMpKGVsZW1lbnQpO1xcbiAgICAgICAgICAgIGNvbnN0IHJlc2NhbGVkUG9pbnRzID0gcmVzY2FsZVBvaW50c0luRWxlbWVudChlbGVtZW50LCB3aWR0aCwgaGVpZ2h0KTtcXG4gICAgICAgICAgICAoMCxfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLnVwZGF0ZUJvdW5kRWxlbWVudHMpKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgbmV3U2l6ZTogeyB3aWR0aCwgaGVpZ2h0IH0sXFxuICAgICAgICAgICAgICAgIHNpbXVsdGFuZW91c2x5VXBkYXRlZDogZWxlbWVudHMsXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgY29uc3QgZmluYWxDb29yZHMgPSAoMCxfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZ2V0UmVzaXplZEVsZW1lbnRBYnNvbHV0ZUNvb3JkcykoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBlbGVtZW50KSwgcmVzY2FsZWRQb2ludHMpLCB3aWR0aCwgaGVpZ2h0KTtcXG4gICAgICAgICAgICBjb25zdCB7IHgsIHkgfSA9IGdldE5leHRYWShlbGVtZW50LCBvcmlnQ29vcmRzLCBmaW5hbENvb3Jkcyk7XFxuICAgICAgICAgICAgcmV0dXJuIFsuLi5wcmV2LCBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oeyB3aWR0aCwgaGVpZ2h0LCB4LCB5IH0sIHJlc2NhbGVkUG9pbnRzKSwgZm9udCldO1xcbiAgICAgICAgfSwgW10pO1xcbiAgICAgICAgaWYgKHVwZGF0ZXMpIHtcXG4gICAgICAgICAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50LCBpbmRleCkgPT4ge1xcbiAgICAgICAgICAgICAgICAoMCxfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLm11dGF0ZUVsZW1lbnQpKGVsZW1lbnQsIHVwZGF0ZXNbaW5kZXhdKTtcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH1cXG4gICAgfVxcbn07XFxuY29uc3Qgcm90YXRlTXVsdGlwbGVFbGVtZW50cyA9IChwb2ludGVyRG93blN0YXRlLCBlbGVtZW50cywgcG9pbnRlclgsIHBvaW50ZXJZLCBzaG91bGRSb3RhdGVXaXRoRGlzY3JldGVBbmdsZSwgY2VudGVyWCwgY2VudGVyWSkgPT4ge1xcbiAgICBsZXQgY2VudGVyQW5nbGUgPSAoNSAqIE1hdGguUEkpIC8gMiArIE1hdGguYXRhbjIocG9pbnRlclkgLSBjZW50ZXJZLCBwb2ludGVyWCAtIGNlbnRlclgpO1xcbiAgICBpZiAoc2hvdWxkUm90YXRlV2l0aERpc2NyZXRlQW5nbGUpIHtcXG4gICAgICAgIGNlbnRlckFuZ2xlICs9IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5TSElGVF9MT0NLSU5HX0FOR0xFIC8gMjtcXG4gICAgICAgIGNlbnRlckFuZ2xlIC09IGNlbnRlckFuZ2xlICUgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlNISUZUX0xPQ0tJTkdfQU5HTEU7XFxuICAgIH1cXG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCwgaW5kZXgpID0+IHtcXG4gICAgICAgIHZhciBfYSwgX2I7XFxuICAgICAgICBjb25zdCBbeDEsIHkxLCB4MiwgeTJdID0gKDAsX2JvdW5kc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmdldEVsZW1lbnRBYnNvbHV0ZUNvb3JkcykoZWxlbWVudCk7XFxuICAgICAgICBjb25zdCBjeCA9ICh4MSArIHgyKSAvIDI7XFxuICAgICAgICBjb25zdCBjeSA9ICh5MSArIHkyKSAvIDI7XFxuICAgICAgICBjb25zdCBvcmlnQW5nbGUgPSAoX2IgPSAoX2EgPSBwb2ludGVyRG93blN0YXRlLm9yaWdpbmFsRWxlbWVudHMuZ2V0KGVsZW1lbnQuaWQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYW5nbGUpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGVsZW1lbnQuYW5nbGU7XFxuICAgICAgICBjb25zdCBbcm90YXRlZENYLCByb3RhdGVkQ1ldID0gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5yb3RhdGUpKGN4LCBjeSwgY2VudGVyWCwgY2VudGVyWSwgY2VudGVyQW5nbGUgKyBvcmlnQW5nbGUgLSBlbGVtZW50LmFuZ2xlKTtcXG4gICAgICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18ubXV0YXRlRWxlbWVudCkoZWxlbWVudCwge1xcbiAgICAgICAgICAgIHg6IGVsZW1lbnQueCArIChyb3RhdGVkQ1ggLSBjeCksXFxuICAgICAgICAgICAgeTogZWxlbWVudC55ICsgKHJvdGF0ZWRDWSAtIGN5KSxcXG4gICAgICAgICAgICBhbmdsZTogbm9ybWFsaXplQW5nbGUoY2VudGVyQW5nbGUgKyBvcmlnQW5nbGUpLFxcbiAgICAgICAgfSk7XFxuICAgICAgICBjb25zdCBib3VuZFRleHRFbGVtZW50SWQgPSAoMCxfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uZ2V0Qm91bmRUZXh0RWxlbWVudElkKShlbGVtZW50KTtcXG4gICAgICAgIGlmIChib3VuZFRleHRFbGVtZW50SWQpIHtcXG4gICAgICAgICAgICBjb25zdCB0ZXh0RWxlbWVudCA9IF9zY2VuZV9TY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fW1xcXCJkZWZhdWx0XFxcIl0uZ2V0U2NlbmUoZWxlbWVudCkuZ2V0RWxlbWVudChib3VuZFRleHRFbGVtZW50SWQpO1xcbiAgICAgICAgICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18ubXV0YXRlRWxlbWVudCkodGV4dEVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgeDogdGV4dEVsZW1lbnQueCArIChyb3RhdGVkQ1ggLSBjeCksXFxuICAgICAgICAgICAgICAgIHk6IHRleHRFbGVtZW50LnkgKyAocm90YXRlZENZIC0gY3kpLFxcbiAgICAgICAgICAgICAgICBhbmdsZTogbm9ybWFsaXplQW5nbGUoY2VudGVyQW5nbGUgKyBvcmlnQW5nbGUpLFxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfVxcbiAgICB9KTtcXG59O1xcbmNvbnN0IGdldFJlc2l6ZU9mZnNldFhZID0gKHRyYW5zZm9ybUhhbmRsZVR5cGUsIHNlbGVjdGVkRWxlbWVudHMsIHgsIHkpID0+IHtcXG4gICAgY29uc3QgW3gxLCB5MSwgeDIsIHkyXSA9IHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxXFxuICAgICAgICA/ICgwLF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5nZXRFbGVtZW50QWJzb2x1dGVDb29yZHMpKHNlbGVjdGVkRWxlbWVudHNbMF0pXFxuICAgICAgICA6ICgwLF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5nZXRDb21tb25Cb3VuZHMpKHNlbGVjdGVkRWxlbWVudHMpO1xcbiAgICBjb25zdCBjeCA9ICh4MSArIHgyKSAvIDI7XFxuICAgIGNvbnN0IGN5ID0gKHkxICsgeTIpIC8gMjtcXG4gICAgY29uc3QgYW5nbGUgPSBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSA/IHNlbGVjdGVkRWxlbWVudHNbMF0uYW5nbGUgOiAwO1xcbiAgICBbeCwgeV0gPSAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnJvdGF0ZSkoeCwgeSwgY3gsIGN5LCAtYW5nbGUpO1xcbiAgICBzd2l0Y2ggKHRyYW5zZm9ybUhhbmRsZVR5cGUpIHtcXG4gICAgICAgIGNhc2UgXFxcIm5cXFwiOlxcbiAgICAgICAgICAgIHJldHVybiAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnJvdGF0ZSkoeCAtICh4MSArIHgyKSAvIDIsIHkgLSB5MSwgMCwgMCwgYW5nbGUpO1xcbiAgICAgICAgY2FzZSBcXFwic1xcXCI6XFxuICAgICAgICAgICAgcmV0dXJuICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ucm90YXRlKSh4IC0gKHgxICsgeDIpIC8gMiwgeSAtIHkyLCAwLCAwLCBhbmdsZSk7XFxuICAgICAgICBjYXNlIFxcXCJ3XFxcIjpcXG4gICAgICAgICAgICByZXR1cm4gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5yb3RhdGUpKHggLSB4MSwgeSAtICh5MSArIHkyKSAvIDIsIDAsIDAsIGFuZ2xlKTtcXG4gICAgICAgIGNhc2UgXFxcImVcXFwiOlxcbiAgICAgICAgICAgIHJldHVybiAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnJvdGF0ZSkoeCAtIHgyLCB5IC0gKHkxICsgeTIpIC8gMiwgMCwgMCwgYW5nbGUpO1xcbiAgICAgICAgY2FzZSBcXFwibndcXFwiOlxcbiAgICAgICAgICAgIHJldHVybiAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnJvdGF0ZSkoeCAtIHgxLCB5IC0geTEsIDAsIDAsIGFuZ2xlKTtcXG4gICAgICAgIGNhc2UgXFxcIm5lXFxcIjpcXG4gICAgICAgICAgICByZXR1cm4gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5yb3RhdGUpKHggLSB4MiwgeSAtIHkxLCAwLCAwLCBhbmdsZSk7XFxuICAgICAgICBjYXNlIFxcXCJzd1xcXCI6XFxuICAgICAgICAgICAgcmV0dXJuICgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ucm90YXRlKSh4IC0geDEsIHkgLSB5MiwgMCwgMCwgYW5nbGUpO1xcbiAgICAgICAgY2FzZSBcXFwic2VcXFwiOlxcbiAgICAgICAgICAgIHJldHVybiAoMCxfbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnJvdGF0ZSkoeCAtIHgyLCB5IC0geTIsIDAsIDAsIGFuZ2xlKTtcXG4gICAgICAgIGRlZmF1bHQ6XFxuICAgICAgICAgICAgcmV0dXJuIFswLCAwXTtcXG4gICAgfVxcbn07XFxuY29uc3QgZ2V0UmVzaXplQXJyb3dEaXJlY3Rpb24gPSAodHJhbnNmb3JtSGFuZGxlVHlwZSwgZWxlbWVudCkgPT4ge1xcbiAgICBjb25zdCBbLCBbcHgsIHB5XV0gPSBlbGVtZW50LnBvaW50cztcXG4gICAgY29uc3QgaXNSZXNpemVFbmQgPSAodHJhbnNmb3JtSGFuZGxlVHlwZSA9PT0gXFxcIm53XFxcIiAmJiAocHggPCAwIHx8IHB5IDwgMCkpIHx8XFxuICAgICAgICAodHJhbnNmb3JtSGFuZGxlVHlwZSA9PT0gXFxcIm5lXFxcIiAmJiBweCA+PSAwKSB8fFxcbiAgICAgICAgKHRyYW5zZm9ybUhhbmRsZVR5cGUgPT09IFxcXCJzd1xcXCIgJiYgcHggPD0gMCkgfHxcXG4gICAgICAgICh0cmFuc2Zvcm1IYW5kbGVUeXBlID09PSBcXFwic2VcXFwiICYmIChweCA+IDAgfHwgcHkgPiAwKSk7XFxuICAgIHJldHVybiBpc1Jlc2l6ZUVuZCA/IFxcXCJlbmRcXFwiIDogXFxcIm9yaWdpblxcXCI7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlpXeGxiV1Z1ZEM5eVpYTnBlbVZGYkdWdFpXNTBjeTUwY3k1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3T3pzN096czdPenM3T3p0QlFVRnRSRHRCUVVOVU8wRkJUM3BDTzBGQlYwTTdRVUZMU1R0QlFVTXdRanRCUVVOTk8wRkJRMkk3UVVGRFR6dEJRVTlpTzBGQlQxbzdRVUZGYUVJc1RVRkJUU3hqUVVGakxFZEJRVWNzUTBGQlF5eExRVUZoTEVWQlFWVXNSVUZCUlR0SlFVTjBSQ3hKUVVGSkxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRVZCUVVVc1JVRkJSVHRSUVVONFFpeFBRVUZQTEV0QlFVc3NSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF6dExRVU0xUWp0SlFVTkVMRTlCUVU4c1MwRkJTeXhEUVVGRE8wRkJRMllzUTBGQlF5eERRVUZETzBGQlJVWXNNa1JCUVRKRU8wRkJRM0JFTEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzUTBGREwwSXNaMEpCUVd0RExFVkJRMnhETEcxQ1FVRTJReXhGUVVNM1F5eG5Ra0ZCZDBRc1JVRkRlRVFzYjBKQlFYTkRMRVZCUTNSRExEWkNRVUZ6UXl4RlFVTjBReXh6UWtGQkswSXNSVUZETDBJc2VVSkJRV3RETEVWQlEyeERMRkZCUVdkQ0xFVkJRMmhDTEZGQlFXZENMRVZCUTJoQ0xFOUJRV1VzUlVGRFppeFBRVUZsTEVWQlEyWXNSVUZCUlR0SlFVTkdMRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNc1JVRkJSVHRSUVVOcVF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1owSkJRV2RDTEVOQlFVTTdVVUZEYmtNc1NVRkJTU3h0UWtGQmJVSXNTMEZCU3l4VlFVRlZMRVZCUVVVN1dVRkRkRU1zYlVKQlFXMUNMRU5CUTJwQ0xFOUJRVThzUlVGRFVDeFJRVUZSTEVWQlExSXNVVUZCVVN4RlFVTlNMRFpDUVVFMlFpeERRVU01UWl4RFFVRkRPMWxCUTBZc05rUkJRVzFDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1UwRkRPVUk3WVVGQlRTeEpRVU5NTERSRVFVRmxMRU5CUVVNc1QwRkJUeXhEUVVGRE8xbEJRM2hDTEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU03V1VGRE0wSXNRMEZCUXl4dFFrRkJiVUlzUzBGQlN5eEpRVUZKTzJkQ1FVTXpRaXh0UWtGQmJVSXNTMEZCU3l4SlFVRkpPMmRDUVVNMVFpeHRRa0ZCYlVJc1MwRkJTeXhKUVVGSk8yZENRVU0xUWl4dFFrRkJiVUlzUzBGQlN5eEpRVUZKTEVOQlFVTXNSVUZETDBJN1dVRkRRU3cwUWtGQk5FSXNRMEZETVVJc1QwRkJUeXhGUVVOUUxHOUNRVUZ2UWl4RlFVTndRaXcyUWtGQk5rSXNSVUZETjBJc1VVRkJVU3hGUVVOU0xGRkJRVkVzUTBGRFZDeERRVUZETzFOQlEwZzdZVUZCVFN4SlFVTk1MREJFUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETzFsQlEzUkNMRU5CUVVNc2JVSkJRVzFDTEV0QlFVc3NTVUZCU1R0blFrRkRNMElzYlVKQlFXMUNMRXRCUVVzc1NVRkJTVHRuUWtGRE5VSXNiVUpCUVcxQ0xFdEJRVXNzU1VGQlNUdG5Ra0ZETlVJc2JVSkJRVzFDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRVZCUXk5Q08xbEJRMEVzZFVKQlFYVkNMRU5CUTNKQ0xFOUJRVThzUlVGRFVDeHRRa0ZCYlVJc1JVRkRia0lzYzBKQlFYTkNMRVZCUTNSQ0xGRkJRVkVzUlVGRFVpeFJRVUZSTEVOQlExUXNRMEZCUXp0WlFVTkdMRFpFUVVGdFFpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMU5CUXpsQ08yRkJRVTBzU1VGQlNTeHRRa0ZCYlVJc1JVRkJSVHRaUVVNNVFpeHRRa0ZCYlVJc1EwRkRha0lzWjBKQlFXZENMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFTkJRVzFDTEVWQlEyNUZMSGxDUVVGNVFpeEZRVU42UWl4UFFVRlBMRVZCUTFBc2JVSkJRVzFDTEVWQlEyNUNMSE5DUVVGelFpeEZRVU4wUWl4UlFVRlJMRVZCUTFJc1VVRkJVU3hEUVVOVUxFTkJRVU03VTBGRFNEdFJRVVZFTEU5QlFVOHNTVUZCU1N4RFFVRkRPMHRCUTJJN1UwRkJUU3hKUVVGSkxHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVU3VVVGRGRFTXNTVUZCU1N4dFFrRkJiVUlzUzBGQlN5eFZRVUZWTEVWQlFVVTdXVUZEZEVNc2MwSkJRWE5DTEVOQlEzQkNMR2RDUVVGblFpeEZRVU5vUWl4blFrRkJaMElzUlVGRGFFSXNVVUZCVVN4RlFVTlNMRkZCUVZFc1JVRkRVaXcyUWtGQk5rSXNSVUZETjBJc1QwRkJUeXhGUVVOUUxFOUJRVThzUTBGRFVpeERRVUZETzFsQlEwWXNUMEZCVHl4SlFVRkpMRU5CUVVNN1UwRkRZanRoUVVGTkxFbEJRMHdzYlVKQlFXMUNMRXRCUVVzc1NVRkJTVHRaUVVNMVFpeHRRa0ZCYlVJc1MwRkJTeXhKUVVGSk8xbEJRelZDTEcxQ1FVRnRRaXhMUVVGTExFbEJRVWs3V1VGRE5VSXNiVUpCUVcxQ0xFdEJRVXNzU1VGQlNTeEZRVU0xUWp0WlFVTkJMSE5DUVVGelFpeERRVU53UWl4blFrRkJaMElzUlVGRGFFSXNiVUpCUVcxQ0xFVkJRMjVDTEZGQlFWRXNSVUZEVWl4UlFVRlJMRU5CUTFRc1EwRkJRenRaUVVOR0xHMUZRVUZ2UWl4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEcxQ1FVRnRRaXhEUVVGRExFTkJRVU03V1VGRE5VUXNUMEZCVHl4SlFVRkpMRU5CUVVNN1UwRkRZanRMUVVOR08wbEJRMFFzVDBGQlR5eExRVUZMTEVOQlFVTTdRVUZEWml4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxHMUNRVUZ0UWl4SFFVRkhMRU5CUXpGQ0xFOUJRVzlETEVWQlEzQkRMRkZCUVdkQ0xFVkJRMmhDTEZGQlFXZENMRVZCUTJoQ0xEWkNRVUZ6UXl4RlFVTjBReXhGUVVGRk8wbEJRMFlzVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITEdsRlFVRjNRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6TkVMRTFCUVUwc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVONlFpeE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEZWtJc1NVRkJTU3hMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1IwRkJSeXhGUVVGRkxFVkJRVVVzVVVGQlVTeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUTNwRkxFbEJRVWtzTmtKQlFUWkNMRVZCUVVVN1VVRkRha01zUzBGQlN5eEpRVUZKTERKRVFVRnRRaXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5xUXl4TFFVRkxMRWxCUVVrc1MwRkJTeXhIUVVGSExESkVRVUZ0UWl4RFFVRkRPMHRCUTNSRE8wbEJRMFFzUzBGQlN5eEhRVUZITEdOQlFXTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVNNVFpdzJSRUZCWVN4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTTdTVUZEYkVNc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4dlJVRkJjVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTXhSQ3hKUVVGSkxHdENRVUZyUWl4RlFVRkZPMUZCUTNSQ0xFMUJRVTBzVjBGQlZ5eEhRVUZITERaRVFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFTkJRVU03VVVGRE5VVXNOa1JCUVdFc1EwRkJReXhYUVVGWkxFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRPMHRCUTNoRE8wRkJRMGdzUTBGQlF5eERRVUZETzBGQlJVWXNiVUpCUVcxQ08wRkJRMjVDTEUxQlFVMHNhVU5CUVdsRExFZEJRVWNzUTBGRGVFTXNUMEZCTkVNc1JVRkROVU1zUlVGQlJUdEpRVU5HTEVsQlEwVXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF6dFJRVU16UWl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1VVRkRNVUlzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETzFGQlF6RkNMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEU5QlFVOHNRMEZCUXl4TFFVRkxPMUZCUTJoRUxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRTlCUVU4c1EwRkJReXhOUVVGTkxFVkJRMnBFTzFGQlEwRXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXh4UTBGQmNVTXNRMEZCUXl4RFFVRkRPMHRCUTNoRU8wRkJRMGdzUTBGQlF5eERRVUZETzBGQlJVWXNUVUZCVFN4cFEwRkJhVU1zUjBGQlJ5eERRVU40UXl4WFFVRnRRaXhGUVVOdVFpeExRVUZoTEVWQlEySXNUVUZCWXl4RlFVTmtMRXRCUVdFc1JVRkRTeXhGUVVGRk8wbEJRM0JDTEUxQlFVMHNTVUZCU1N4SFFVRkhMRzFGUVVGeFFpeERRVU5vUXl4WFFVRlhMRVZCUTFnc1IwRkJSeXcyUTBGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZEZEVNc1EwRkJRenRKUVVOR0xFOUJRVThzTmtOQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBGQlEzWkVMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzTkVKQlFUUkNMRWRCUVVjc1EwRkRNVU1zVDBGQk5FTXNSVUZETlVNc2IwSkJRWE5ETEVWQlEzUkRMRFpDUVVGelF5eEZRVU4wUXl4UlFVRm5RaXhGUVVOb1FpeFJRVUZuUWl4RlFVTm9RaXhGUVVGRk8wbEJRMFlzU1VGQlNTeEpRVUZ4UXl4RlFVRkZPMUZCUTNwRExHbERRVUZwUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wdEJRelZETzBsQlEwUXNUVUZCVFN4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4SFFVRkhMR2xGUVVGM1FpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpORUxFMUJRVTBzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU42UWl4TlFVRk5MRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRla0lzYzBOQlFYTkRPMGxCUTNSRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RFFVRkRMRWRCUVVjc05rTkJRVTBzUTBGRGFrTXNVVUZCVVN4RlFVTlNMRkZCUVZFc1JVRkRVaXhGUVVGRkxFVkJRMFlzUlVGQlJTeEZRVU5HTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkRaaXhEUVVGRE8wbEJRMFlzU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlN4TlFVRk5MRU5CUVVNc1IwRkRha0lzYjBKQlFXOUNMRXRCUVVzc1MwRkJTenRSUVVNMVFpeERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU1zUlVGQlJTeFJRVUZSTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNNVF5eERRVUZETEVOQlFVTTdXVUZEUlN4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVVVGQlVUdFpRVU16UXl4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVVVGQlVUdFRRVU0xUXl4RFFVRkRPMGxCUTFJc1NVRkJTU3cyUWtGQk5rSXNSVUZCUlR0UlFVTnFReXhEUVVGRExFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNSMEZCUnl4cFEwRkJhVU1zUTBGRGFrUXNUMEZCVHl4RFFVRkRMRWxCUVVrc1JVRkRXaXhMUVVGTExFVkJRMHdzVFVGQlRTeEZRVU5PTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUTJRc1EwRkJRenRMUVVOSU8wbEJRMFFzVFVGQlRTeERRVUZETEZsQlFWa3NSVUZCUlN4WlFVRlpMRU5CUVVNc1IwRkJSeXd5UkVGQmIwSXNRMEZEZGtRc2IwSkJRVzlDTEV0QlFVc3NTMEZCU3p0UlFVTTFRaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNTVUZCU1N4RlFVRkZMRU5CUVVNc1JVRkJSU3hKUVVGSkxFVkJRVVU3VVVGRGRFSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFbEJRVWtzUlVGQlJTeERRVUZETEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUTNoQ0xFOUJRVThzUTBGQlF5eERRVUZETEVWQlExUXNUMEZCVHl4RFFVRkRMRU5CUVVNc1JVRkRWQ3hQUVVGUExFTkJRVU1zUzBGQlN5eEZRVU5pTEVOQlFVTXNSVUZEUkN4RFFVRkRMRVZCUTBRc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZEYkVNc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZEY0VNc1EwRkJRenRKUVVOR0xEWkVRVUZoTEVOQlFVTXNUMEZCVHl4RlFVRkZPMUZCUTNKQ0xFTkJRVU1zUlVGQlJTeFpRVUZaTzFGQlEyWXNRMEZCUXl4RlFVRkZMRmxCUVZrN1VVRkRaaXhOUVVGTkxFVkJRVVU3V1VGRFRpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkRUaXhEUVVGRExFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTTdVMEZEYUVJN1MwRkRSaXhEUVVGRExFTkJRVU03UVVGRFRDeERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MSE5DUVVGelFpeEhRVUZITEVOQlF6ZENMRTlCUVc5RExFVkJRM0JETEV0QlFXRXNSVUZEWWl4TlFVRmpMRVZCUTJRc1JVRkJSU3hEUVVOR0xEUkVRVUZsTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc09FUkJRV2xDTEVOQlFVTXNUMEZCVHl4RFFVRkRPMGxCUTNCRUxFTkJRVU1zUTBGQlF6dFJRVU5GTEUxQlFVMHNSVUZCUlN4elJFRkJZU3hEUVVOdVFpeERRVUZETEVWQlEwUXNTMEZCU3l4RlFVTk1MSE5FUVVGaExFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNSVUZCUlN4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRM3BETzB0QlEwWTdTVUZEU0N4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wRkJSVlFzVFVGQlRTeGhRVUZoTEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUlhoQ0xFMUJRVTBzY1VKQlFYRkNMRWRCUVVjc1EwRkROVUlzVDBGQk1FTXNSVUZETVVNc1UwRkJhVUlzUlVGRGFrSXNWVUZCYTBJc1JVRkRlVUlzUlVGQlJUdEpRVU0zUXl3MFEwRkJORU03U1VGRE5VTXNUVUZCVFN4WlFVRlpMRWRCUVVjc1QwRkJUeXhEUVVGRExGRkJRVkVzUjBGQlJ5eERRVUZETEZOQlFWTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRGNFVXNTVUZCU1N4WlFVRlpMRWRCUVVjc1lVRkJZU3hGUVVGRk8xRkJRMmhETEU5QlFVOHNTVUZCU1N4RFFVRkRPMHRCUTJJN1NVRkRSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5d3dSRUZCVnl4RFFVTjZRaXhQUVVGUExFTkJRVU1zU1VGQlNTeEZRVU5hTEhGRVFVRmhMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzV1VGQldTeEZRVUZGTEZWQlFWVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUlVGRGVrVXNUMEZCVHl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVNelF5eERRVUZETzBsQlEwWXNUMEZCVHp0UlFVTk1MRWxCUVVrc1JVRkJSU3haUVVGWk8xRkJRMnhDTEZGQlFWRXNSVUZCUlN4UFFVRlBMRU5CUVVNc1VVRkJVU3hIUVVGSExFTkJRVU1zVlVGQlZTeEhRVUZITEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNN1MwRkRNMFFzUTBGQlF6dEJRVU5LTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc01FSkJRVEJDTEVkQlFVY3NRMEZEYWtNc2JVSkJRWGRETEVWQlEzaERMSE5DUVVFclFpeEZRVU12UWl4RlFVRkZPMGxCUTBZc1QwRkJUenRSUVVOTUxFTkJRVU1zUlVGRFF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETzFsQlEzWkRMRU5CUVVNc2MwSkJRWE5DTEVsQlFVa3NZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RFFVRkRPMUZCUTNKRkxFTkJRVU1zUlVGRFF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETzFsQlEzWkRMRU5CUVVNc2MwSkJRWE5DTEVsQlFVa3NZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RFFVRkRPMUZCUTNKRkxFTkJRVU1zUlVGRFF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETzFsQlEzWkRMRU5CUVVNc2MwSkJRWE5DTEVsQlFVa3NZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RFFVRkRPMUZCUTNKRkxFTkJRVU1zUlVGRFF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETzFsQlEzWkRMRU5CUVVNc2MwSkJRWE5DTEVsQlFVa3NZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RFFVRkRPMHRCUTNSRkxFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MSFZDUVVGMVFpeEhRVUZITEVOQlF6bENMRTlCUVRCRExFVkJRekZETEcxQ1FVRTRReXhGUVVNNVF5eHpRa0ZCSzBJc1JVRkRMMElzVVVGQlowSXNSVUZEYUVJc1VVRkJaMElzUlVGRGFFSXNSVUZCUlR0SlFVTkdMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhwUlVGQmQwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVNelJDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEZWtJc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRM3BDTEhORFFVRnpRenRKUVVOMFF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1EwRkJReXhIUVVGSExEWkRRVUZOTEVOQlEycERMRkZCUVZFc1JVRkRVaXhSUVVGUkxFVkJRMUlzUlVGQlJTeEZRVU5HTEVWQlFVVXNSVUZEUml4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRMllzUTBGQlF6dEpRVU5HTEVsQlFVa3NTMEZCWVN4RFFVRkRPMGxCUTJ4Q0xGRkJRVkVzYlVKQlFXMUNMRVZCUVVVN1VVRkRNMElzUzBGQlN5eEpRVUZKTzFsQlExQXNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRMlFzUTBGQlF5eFJRVUZSTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVWQlF6TkNMRU5CUVVNc1VVRkJVU3hIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVNMVFpeERRVUZETzFsQlEwWXNUVUZCVFR0UlFVTlNMRXRCUVVzc1NVRkJTVHRaUVVOUUxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVTmtMRU5CUVVNc1JVRkJSU3hIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhGUVVNelFpeERRVUZETEVWQlFVVXNSMEZCUnl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZETlVJc1EwRkJRenRaUVVOR0xFMUJRVTA3VVVGRFVpeExRVUZMTEVsQlFVazdXVUZEVUN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGRFpDeERRVUZETEZGQlFWRXNSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSVUZETTBJc1EwRkJReXhGUVVGRkxFZEJRVWNzVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRelZDTEVOQlFVTTdXVUZEUml4TlFVRk5PMUZCUTFJc1MwRkJTeXhKUVVGSk8xbEJRMUFzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUTJRc1EwRkJReXhGUVVGRkxFZEJRVWNzVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFVkJRek5DTEVOQlFVTXNVVUZCVVN4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVTTFRaXhEUVVGRE8xbEJRMFlzVFVGQlRUdExRVU5VTzBsQlEwUXNTVUZCU1N4TFFVRkxMRWRCUVVjc1EwRkJReXhGUVVGRk8xRkJRMklzVFVGQlRTeFRRVUZUTEVkQlFVY3NUMEZCVHl4RFFVRkRMRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU03VVVGRGVFTXNUVUZCVFN4VlFVRlZMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUjBGQlJ5eExRVUZMTEVOQlFVTTdVVUZETVVNc1RVRkJUU3hSUVVGUkxFZEJRVWNzY1VKQlFYRkNMRU5CUVVNc1QwRkJUeXhGUVVGRkxGTkJRVk1zUlVGQlJTeFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTjJSU3hKUVVGSkxGRkJRVkVzUzBGQlN5eEpRVUZKTEVWQlFVVTdXVUZEY2tJc1QwRkJUenRUUVVOU08xRkJRMFFzVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVVc1RVRkJUU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEhRVUZITEhkRlFVRXJRaXhEUVVOMFJTeFBRVUZQTEVWQlExQXNVMEZCVXl4RlFVTlVMRlZCUVZVc1EwRkRXQ3hEUVVGRE8xRkJRMFlzVFVGQlRTeFBRVUZQTEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEyeERMRTFCUVUwc1QwRkJUeXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOc1F5eE5RVUZOTEU5QlFVOHNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEYkVNc1RVRkJUU3hQUVVGUExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMnhETEUxQlFVMHNRMEZCUXl4WlFVRlpMRVZCUVVVc1dVRkJXU3hEUVVGRExFZEJRVWNzTWtSQlFXOUNMRU5CUTNaRUxEQkNRVUV3UWl4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTEhOQ1FVRnpRaXhEUVVGRExFVkJRM1pGTEU5QlFVOHNRMEZCUXl4RFFVRkRMRVZCUTFRc1QwRkJUeXhEUVVGRExFTkJRVU1zUlVGRFZDeFBRVUZQTEVOQlFVTXNTMEZCU3l4RlFVTmlMRTlCUVU4c1JVRkRVQ3hQUVVGUExFVkJRMUFzVDBGQlR5eEZRVU5RTEU5QlFVOHNRMEZEVWl4RFFVRkRPMUZCUTBZc05rUkJRV0VzUTBGQlF5eFBRVUZQTEVWQlFVVTdXVUZEY2tJc1VVRkJVU3hGUVVGRkxGRkJRVkVzUTBGQlF5eEpRVUZKTzFsQlEzWkNMRXRCUVVzc1JVRkJSU3hUUVVGVE8xbEJRMmhDTEUxQlFVMHNSVUZCUlN4VlFVRlZPMWxCUTJ4Q0xGRkJRVkVzUlVGQlJTeFJRVUZSTEVOQlFVTXNVVUZCVVR0WlFVTXpRaXhEUVVGRExFVkJRVVVzV1VGQldUdFpRVU5tTEVOQlFVTXNSVUZCUlN4WlFVRlpPMU5CUTJoQ0xFTkJRVU1zUTBGQlF6dExRVU5LTzBGQlEwZ3NRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl4RFFVTnFReXhyUWtGQkswTXNSVUZETDBNc2VVSkJRV3RETEVWQlEyeERMRTlCUVc5RExFVkJRM0JETEhkQ1FVRnJSQ3hGUVVOc1JDeHpRa0ZCSzBJc1JVRkRMMElzVVVGQlowSXNSVUZEYUVJc1VVRkJaMElzUlVGRGFFSXNSVUZCUlR0SlFVTkdMSE5DUVVGelFqdEpRVU4wUWl4TlFVRk5MRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc2QwVkJRU3RDTEVOQlEzUkVMR3RDUVVGclFpeEZRVU5zUWl4clFrRkJhMElzUTBGQlF5eExRVUZMTEVWQlEzaENMR3RDUVVGclFpeERRVUZETEUxQlFVMHNRMEZETVVJc1EwRkJRenRKUVVOR0xFMUJRVTBzV1VGQldTeEhRVUZWTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRM0pETEUxQlFVMHNaMEpCUVdkQ0xFZEJRVlVzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRla01zVFVGQlRTeFhRVUZYTEVkQlFWVXNhMFJCUVZjc1EwRkJReXhaUVVGWkxFVkJRVVVzWjBKQlFXZENMRU5CUVVNc1EwRkJRenRKUVVWMlJTeHZSRUZCYjBRN1NVRkRjRVFzVFVGQlRTeGpRVUZqTEVkQlFVY3NhMFJCUVZjc1EwRkRhRU1zUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RFFVRkRMRVZCUTNCQ0xGZEJRVmNzUlVGRFdDeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFdEJRVXNzUTBGRE1VSXNRMEZCUXp0SlFVVkdMSGREUVVGM1F6dEpRVU40UXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc2QwVkJRU3RDTEVOQlF6bEVMRTlCUVU4c1JVRkRVQ3hQUVVGUExFTkJRVU1zUzBGQlN5eEZRVU5pTEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUTJZc1EwRkJRenRKUVVWR0xFMUJRVTBzYTBKQlFXdENMRWRCUVVjc2IwVkJRWEZDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkZNVVFzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETzBsQlEzWkRMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVWNFF5d3JSa0ZCSzBZN1NVRkRMMFlzYTBaQlFXdEdPMGxCUTJ4R0xFMUJRVTBzYTBKQlFXdENMRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEycEZMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMnhGTEVsQlFVa3NUVUZCVFN4SFFVRkhMR3RDUVVGclFpeEhRVUZITEd0Q1FVRnJRaXhEUVVGRE8wbEJRM0pFTEVsQlFVa3NUVUZCVFN4SFFVRkhMRzFDUVVGdFFpeEhRVUZITEcxQ1FVRnRRaXhEUVVGRE8wbEJSWFpFTEVsQlFVa3NkMEpCUVhkQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUXpGRExFMUJRVTBzUjBGQlJ5eERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4clFrRkJhMElzUTBGQlF6dExRVU55UlR0SlFVTkVMRWxCUVVrc2QwSkJRWGRDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRk8xRkJRekZETEUxQlFVMHNSMEZCUnl4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXh0UWtGQmJVSXNRMEZCUXp0TFFVTjBSVHRKUVVORUxFbEJRVWtzZDBKQlFYZENMRU5CUVVNc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTzFGQlF6RkRMRTFCUVUwc1IwRkJSeXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMR3RDUVVGclFpeERRVUZETzB0QlEzcEZPMGxCUTBRc1NVRkJTU3gzUWtGQmQwSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVU3VVVGRE1VTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU03UzBGRE1VVTdTVUZEUkN3eVJFRkJNa1E3U1VGRE0wUXNUVUZCVFN4bFFVRmxMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4RFFVRkRPMGxCUTJwRUxFMUJRVTBzWjBKQlFXZENMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTXNUVUZCVFN4RFFVRkRPMGxCUTI1RUxDdEZRVUVyUlR0SlFVTXZSU3g1UkVGQmVVUTdTVUZEZWtRc1NVRkJTU3hYUVVGWExFZEJRVWNzVDBGQlR5eERRVUZETEV0QlFVc3NSMEZCUnl4TlFVRk5MRU5CUVVNN1NVRkRla01zU1VGQlNTeFpRVUZaTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU03U1VGRk0wTXNOa05CUVRaRE8wbEJRemRETEVsQlFVa3NjMEpCUVhOQ0xFVkJRVVU3VVVGRE1VSXNWMEZCVnl4SFFVRkhMRU5CUVVNc1IwRkJSeXhYUVVGWExFZEJRVWNzWlVGQlpTeERRVUZETzFGQlEyaEVMRmxCUVZrc1IwRkJSeXhEUVVGRExFZEJRVWNzV1VGQldTeEhRVUZITEdkQ1FVRm5RaXhEUVVGRE8wdEJRM0JFTzBsQlJVUXNkME5CUVhkRE8wbEJRM2hETEVsQlFVa3NlVUpCUVhsQ0xFVkJRVVU3VVVGRE4wSXNUVUZCVFN4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eFhRVUZYTEVOQlFVTXNSMEZCUnl4bFFVRmxMRU5CUVVNN1VVRkRNMFFzVFVGQlRTeFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhaUVVGWkxFTkJRVU1zUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJRenRSUVVNNVJDeEpRVUZKTEhkQ1FVRjNRaXhEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETEVWQlFVVTdXVUZEZWtNc1dVRkJXU3hKUVVGSkxGVkJRVlVzUTBGQlF6dFpRVU16UWl4WFFVRlhMRWxCUVVrc1YwRkJWeXhEUVVGRE8xTkJRelZDTzFGQlEwUXNTVUZCU1N4M1FrRkJkMElzUTBGQlF5eE5RVUZOTEV0QlFVc3NRMEZCUXl4RlFVRkZPMWxCUTNwRExFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hGUVVGRkxGZEJRVmNzUTBGQlF5eERRVUZETzFsQlEyaEVMRmRCUVZjc1IwRkJSeXhsUVVGbExFZEJRVWNzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03V1VGREwwUXNXVUZCV1N4SFFVRkhMR2RDUVVGblFpeEhRVUZITEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFOQlEyNUZPMHRCUTBZN1NVRkZSQ3hOUVVGTkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEZkQlFWY3NSVUZCUlN4WFFVRlhMRVZCUVVVc1YwRkJWeXhEUVVGRExFZEJRM2hFTEhkRlFVRXJRaXhEUVVNM1FpeHJRa0ZCYTBJc1JVRkRiRUlzVjBGQlZ5eEZRVU5ZTEZsQlFWa3NRMEZEWWl4RFFVRkRPMGxCUTBvc1RVRkJUU3hqUVVGakxFZEJRVWNzVjBGQlZ5eEhRVUZITEZkQlFWY3NRMEZCUXp0SlFVTnFSQ3hOUVVGTkxHVkJRV1VzUjBGQlJ5eFhRVUZYTEVkQlFVY3NWMEZCVnl4RFFVRkRPMGxCUld4RUxEaEZRVUU0UlR0SlFVTTVSU3hKUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEVOQlFVTXNTVUZCU1N4bFFVRmxMRWRCUVVjc1EwRkJReXhEUVVGRExFbEJRVWtzYTBKQlFXdENMRVZCUVVVN1VVRkRja1VzVDBGQlR6dExRVU5TTzBsQlJVUXNORVJCUVRSRU8wbEJRelZFTEVsQlFVa3NWVUZCVlN4SFFVRkhMRU5CUVVNc1IwRkJSeXhaUVVGWkxFTkJRWEZDTEVOQlFVTTdTVUZEZGtRc1NVRkJTU3hEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExIZENRVUYzUWl4RFFVRkRMRVZCUVVVN1VVRkRka1FzVlVGQlZTeEhRVUZITzFsQlExZ3NaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhqUVVGakxFTkJRVU03V1VGRE9VTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhsUVVGbExFTkJRVU03VTBGRGFFUXNRMEZCUXp0TFFVTklPMGxCUTBRc1NVRkJTU3gzUWtGQmQwSXNTMEZCU3l4SlFVRkpMRVZCUVVVN1VVRkRja01zVFVGQlRTeFZRVUZWTEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzWjBKQlFXZENMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU14UkN4VlFVRlZMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVONlJUdEpRVU5FTEVsQlFVa3NkMEpCUVhkQ0xFdEJRVXNzU1VGQlNTeEZRVUZGTzFGQlEzSkRMRTFCUVUwc1VVRkJVU3hIUVVGSExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRlRVFzVlVGQlZTeEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNZMEZCWXl4RFFVRkRMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTMEZEY0VVN1NVRkZSQ3cwUTBGQk5FTTdTVUZETlVNc1NVRkJTU3g1UWtGQmVVSXNSVUZCUlR0UlFVTTNRaXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4RlFVRkZPMWxCUTJwRUxGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzWTBGQll5eEhRVUZITEVOQlFVTXNRMEZCUXp0VFFVTnlSRHRSUVVORUxFbEJRVWtzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExIZENRVUYzUWl4RFFVRkRMRVZCUVVVN1dVRkRha1FzVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eGxRVUZsTEVkQlFVY3NRMEZCUXl4RFFVRkRPMU5CUTNSRU8wdEJRMFk3U1VGRlJDeHZRa0ZCYjBJN1NVRkRjRUlzU1VGQlNTeFhRVUZYTEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUTI1Q0xFbEJRVWtzZDBKQlFYZENMRU5CUVVNc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTzFsQlF6RkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8xTkJRek5ETzFGQlEwUXNTVUZCU1N4M1FrRkJkMElzUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVN1dVRkRNVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdVMEZETTBNN1MwRkRSanRKUVVORUxHdENRVUZyUWp0SlFVTnNRaXhKUVVGSkxGbEJRVmtzUjBGQlJ5eERRVUZETEVWQlFVVTdVVUZEY0VJc1NVRkJTU3gzUWtGQmQwSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVU3V1VGRE1VTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNN1UwRkROVU03VVVGRFJDeEpRVUZKTEhkQ1FVRjNRaXhEUVVGRExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlR0WlFVTXhReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF6dFRRVU0xUXp0TFFVTkdPMGxCUlVRc1NVRkJTU3h6UWtGQmMwSXNSVUZCUlR0UlFVTXhRaXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNZMEZCWXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRemxFTEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhsUVVGbExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTMEZEYUVVN1NVRkZSQ3gxUTBGQmRVTTdTVUZEZGtNc1RVRkJUU3hMUVVGTExFZEJRVWNzYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRM1pETEUxQlFVMHNZMEZCWXl4SFFVRkhMR3RFUVVGWExFTkJRVU1zVlVGQlZTeEZRVUZGTEZkQlFWY3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVOdVJTeE5RVUZOTEZOQlFWTXNSMEZCVlR0UlFVTjJRaXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhqUVVGakxFTkJRVU1zUjBGQlJ5eERRVUZETzFGQlF6VkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMR1ZCUVdVc1EwRkJReXhIUVVGSExFTkJRVU03UzBGRE9VTXNRMEZCUXp0SlFVTkdMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NhMFJCUVZjc1EwRkJReXhUUVVGVExFVkJRVVVzVjBGQlZ5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUTNCRkxGVkJRVlVzUjBGQlJ5eHJSRUZCVnl4RFFVRkRMR05CUVdNc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJSVzVGTEhORFFVRnpRenRKUVVOMFF5eE5RVUZOTEdOQlFXTXNSMEZCUnl4elFrRkJjMElzUTBGRE0wTXNhMEpCUVd0Q0xFVkJRMnhDTEZkQlFWY3NSVUZEV0N4WlFVRlpMRU5CUTJJc1EwRkJRenRKUVVOR0xHbEhRVUZwUnp0SlFVTnFSeXh4UlVGQmNVVTdTVUZEY2tVc1RVRkJUU3hUUVVGVExFZEJRVWNzUTBGQlF5eEhRVUZITEZWQlFWVXNRMEZCUXl4RFFVRkRPMGxCUTJ4RExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4clFrRkJhMElzUTBGQlF5eERRVUZETEVkQlFVY3NWMEZCVnl4RFFVRkRPMGxCUTI1RUxGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4clFrRkJhMElzUTBGQlF5eERRVUZETEVkQlFVY3NWMEZCVnl4RFFVRkRPMGxCUlc1RUxFMUJRVTBzWTBGQll5eHRRa0ZEYkVJc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNWMEZCVnl4RFFVRkRMRVZCUXpWQ0xFMUJRVTBzUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhGUVVNNVFpeERRVUZETEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVObUxFTkJRVU1zUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUTFvc1kwRkJZeXhEUVVOc1FpeERRVUZETzBsQlJVWXNTVUZCU1N4UFFVRlBMRWxCUVVrc1QwRkJUeXhKUVVGSkxFOUJRVThzU1VGQlNTeHJRa0ZCYTBJc1JVRkJSVHRSUVVOMlJDdzJSRUZCWVN4RFFVRkRMRTlCUVU4c1JVRkJSVHRaUVVOeVFpeExRVUZMTEVWQlFVVTdaMEpCUTB3c01FTkJRVEJETzJkQ1FVTXhReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU5vUkN4clFrRkJhMElzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVNM1FpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTm9SQ3hyUWtGQmEwSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRE8yRkJRemxDTzFOQlEwWXNRMEZCUXl4RFFVRkRPMHRCUTBvN1NVRkRSQ3hKUVVGSkxGRkJRVkVzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEYWtJc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4clJVRkJiVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTjBSQ3hKUVVGSkxHZENRVUZuUWl4RlFVRkZPMUZCUTNCQ0xGRkJRVkVzUjBGQlJ5eHZSVUZCY1VJc1EwRkJReXh4UkVGQllTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU51UlR0SlFVTkVMRWxCUTBVc1kwRkJZeXhEUVVGRExFdEJRVXNzU1VGQlNTeFJRVUZSTzFGQlEyaERMR05CUVdNc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF6dFJRVU16UWl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYWtNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUTJwRE8xRkJRMEVzTmtSQlFXMUNMRU5CUVVNc1QwRkJUeXhGUVVGRk8xbEJRek5DTEU5QlFVOHNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hqUVVGakxFTkJRVU1zUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4alFVRmpMRU5CUVVNc1RVRkJUU3hGUVVGRk8xTkJRM2hGTEVOQlFVTXNRMEZCUXp0UlFVTklMRFpFUVVGaExFTkJRVU1zVDBGQlR5eEZRVUZGTEdOQlFXTXNRMEZCUXl4RFFVRkRPMUZCUTNaRExHMUZRVUZ2UWl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzZDBKQlFYZENMRU5CUVVNc1EwRkJRenRMUVVNelJEdEJRVU5JTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc2MwSkJRWE5DTEVkQlFVY3NRMEZETjBJc1VVRkJaMFFzUlVGRGFFUXNiVUpCUVRoRExFVkJRemxETEZGQlFXZENMRVZCUTJoQ0xGRkJRV2RDTEVWQlEyaENMRVZCUVVVN1NVRkRSaXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzZDBSQlFXVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRKUVVOdVJDeEpRVUZKTEV0QlFXRXNRMEZCUXp0SlFVTnNRaXhKUVVGSkxGTkJTWGxDTEVOQlFVTTdTVUZET1VJc1VVRkJVU3h0UWtGQmJVSXNSVUZCUlR0UlFVTXpRaXhMUVVGTExFbEJRVWs3V1VGRFVDeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkRaQ3hEUVVGRExGRkJRVkVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUlVGRE0wSXNRMEZCUXl4UlFVRlJMRWRCUVVjc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUXpWQ0xFTkJRVU03V1VGRFJpeFRRVUZUTEVkQlFVY3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJReXhOUVVGTkxFVkJRVVVzVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4UFFVRlBMRVZCUVVVc1QwRkJUeXhEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZETlVRc1RVRkJUU3hEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETzJkQ1FVTnlSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTTdaMEpCUTNKRkxFOUJRVThzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRiRUlzUTBGQlF5eERRVUZETzFsQlEwWXNUVUZCVFR0UlFVTlNMRXRCUVVzc1NVRkJTVHRaUVVOUUxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVTmtMRU5CUVVNc1JVRkJSU3hIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhGUVVNelFpeERRVUZETEVWQlFVVXNSMEZCUnl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZETlVJc1EwRkJRenRaUVVOR0xGTkJRVk1zUjBGQlJ5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hOUVVGTkxFVkJRVVVzVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1QwRkJUeXhGUVVGRkxFOUJRVThzUTBGQlF5eEZRVUZGTEVWQlFVVTdaMEpCUTNCRkxFMUJRVTBzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzVFVGQlRTeEhRVUZITEU5QlFVOHNRMEZCUXp0blFrRkRja1VzVFVGQlRTeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eE5RVUZOTEVkQlFVY3NUMEZCVHl4RFFVRkRPMmRDUVVOeVJTeFBRVUZQTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRMnhDTEVOQlFVTXNRMEZCUXp0WlFVTkdMRTFCUVUwN1VVRkRVaXhMUVVGTExFbEJRVWs3V1VGRFVDeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkRaQ3hEUVVGRExGRkJRVkVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUlVGRE0wSXNRMEZCUXl4RlFVRkZMRWRCUVVjc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUXpWQ0xFTkJRVU03V1VGRFJpeFRRVUZUTEVkQlFVY3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeEZRVUZGTEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzUlVGQlJTeFBRVUZQTEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVOd1JTeE5RVUZOTEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEUxQlFVMHNSMEZCUnl4UFFVRlBMRU5CUVVNN1owSkJRM0pGTEUxQlFVMHNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NUVUZCVFN4SFFVRkhMRTlCUVU4c1EwRkJRenRuUWtGRGNrVXNUMEZCVHl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU5zUWl4RFFVRkRMRU5CUVVNN1dVRkRSaXhOUVVGTk8xRkJRMUlzUzBGQlN5eEpRVUZKTzFsQlExQXNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRMlFzUTBGQlF5eEZRVUZGTEVkQlFVY3NVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVWQlF6TkNMRU5CUVVNc1VVRkJVU3hIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVNMVFpeERRVUZETzFsQlEwWXNVMEZCVXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zUlVGQlJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFOUJRVThzUlVGQlJTeFBRVUZQTEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVOb1JTeE5RVUZOTEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEUxQlFVMHNSMEZCUnl4UFFVRlBMRU5CUVVNN1owSkJRM0pGTEUxQlFVMHNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NUVUZCVFN4SFFVRkhMRTlCUVU4c1EwRkJRenRuUWtGRGNrVXNUMEZCVHl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU5zUWl4RFFVRkRMRU5CUVVNN1dVRkRSaXhOUVVGTk8wdEJRMVE3U1VGRFJDeEpRVUZKTEV0QlFVc3NSMEZCUnl4RFFVRkRMRVZCUVVVN1VVRkRZaXhOUVVGTkxFOUJRVThzUjBGQlJ5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVTTNRaXhEUVVGRExFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNSVUZCUlR0WlFVTm9RaXhKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTzJkQ1FVTlVMRTlCUVU4c1NVRkJTU3hEUVVGRE8yRkJRMkk3V1VGRFJDeE5RVUZOTEV0QlFVc3NSMEZCUnl4UFFVRlBMRU5CUVVNc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF6dFpRVU53UXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeEhRVUZITEV0QlFVc3NRMEZCUXp0WlFVTjBReXhKUVVGSkxFbEJRVWtzUjBGQk5rTXNSVUZCUlN4RFFVRkRPMWxCUTNoRUxFbEJRVWtzTUVSQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSVHRuUWtGRE1VSXNUVUZCVFN4UlFVRlJMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dG5Ra0ZETDBRc1NVRkJTU3hSUVVGUkxFdEJRVXNzU1VGQlNTeEZRVUZGTzI5Q1FVTnlRaXhQUVVGUExFbEJRVWtzUTBGQlF6dHBRa0ZEWWp0blFrRkRSQ3hKUVVGSkxFZEJRVWNzUlVGQlJTeFJRVUZSTEVWQlFVVXNVVUZCVVN4RFFVRkRMRWxCUVVrc1JVRkJSU3hSUVVGUkxFVkJRVVVzVVVGQlVTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMkZCUTJwRk8xbEJRMFFzVFVGQlRTeFZRVUZWTEVkQlFVY3NhVVZCUVhkQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdXVUZGY2tRc1RVRkJUU3hqUVVGakxFZEJRVWNzYzBKQlFYTkNMRU5CUVVNc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0WlFVVjBSU3cyUkVGQmJVSXNRMEZCUXl4UFFVRlBMRVZCUVVVN1owSkJRek5DTEU5QlFVOHNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVU3WjBKQlF6RkNMSEZDUVVGeFFpeEZRVUZGTEZGQlFWRTdZVUZEYUVNc1EwRkJReXhEUVVGRE8xbEJSVWdzVFVGQlRTeFhRVUZYTEVkQlFVY3NkMFZCUVN0Q0xHbERRVVUxUXl4UFFVRlBMRWRCUTFBc1kwRkJZeXhIUVVWdVFpeExRVUZMTEVWQlEwd3NUVUZCVFN4RFFVTlFMRU5CUVVNN1dVRkZSaXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkhMRk5CUVZNc1EwRkJReXhQUVVGUExFVkJRVVVzVlVGQlZTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRPMWxCUXpkRUxFOUJRVThzUTBGQlF5eEhRVUZITEVsQlFVa3NaME5CUVVrc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkxMR05CUVdNc1IwRkJTeXhKUVVGSkxFVkJRVWNzUTBGQlF6dFJRVU40UlN4RFFVRkRMRVZCUTBRc1JVRlZVU3hEUVVOVUxFTkJRVU03VVVGRFJpeEpRVUZKTEU5QlFVOHNSVUZCUlR0WlFVTllMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eFBRVUZQTEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVN1owSkJRMnhETERaRVFVRmhMRU5CUVVNc1QwRkJUeXhGUVVGRkxFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNwRExFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEwbzdTMEZEUmp0QlFVTklMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzYzBKQlFYTkNMRWRCUVVjc1EwRkROMElzWjBKQlFXdERMRVZCUTJ4RExGRkJRV2RFTEVWQlEyaEVMRkZCUVdkQ0xFVkJRMmhDTEZGQlFXZENMRVZCUTJoQ0xEWkNRVUZ6UXl4RlFVTjBReXhQUVVGbExFVkJRMllzVDBGQlpTeEZRVU5tTEVWQlFVVTdTVUZEUml4SlFVRkpMRmRCUVZjc1IwRkRZaXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4SFFVRkhMRTlCUVU4c1JVRkJSU3hSUVVGUkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEZWtVc1NVRkJTU3cyUWtGQk5rSXNSVUZCUlR0UlFVTnFReXhYUVVGWExFbEJRVWtzTWtSQlFXMUNMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM1pETEZkQlFWY3NTVUZCU1N4WFFVRlhMRWRCUVVjc01rUkJRVzFDTEVOQlFVTTdTMEZEYkVRN1NVRkRSQ3hSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRk96dFJRVU5zUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc2FVVkJRWGRDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRNMFFzVFVGQlRTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzcENMRTFCUVUwc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVONlFpeE5RVUZOTEZOQlFWTXNSMEZEWWl3MFFrRkJaMElzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXl3d1EwRkJSU3hMUVVGTExHMURRVUZKTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNN1VVRkROVVVzVFVGQlRTeERRVUZETEZOQlFWTXNSVUZCUlN4VFFVRlRMRU5CUVVNc1IwRkJSeXcyUTBGQlRTeERRVU51UXl4RlFVRkZMRVZCUTBZc1JVRkJSU3hGUVVOR0xFOUJRVThzUlVGRFVDeFBRVUZQTEVWQlExQXNWMEZCVnl4SFFVRkhMRk5CUVZNc1IwRkJSeXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVU40UXl4RFFVRkRPMUZCUTBZc05rUkJRV0VzUTBGQlF5eFBRVUZQTEVWQlFVVTdXVUZEY2tJc1EwRkJReXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRWRCUVVjc1JVRkJSU3hEUVVGRE8xbEJReTlDTEVOQlFVTXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zVTBGQlV5eEhRVUZITEVWQlFVVXNRMEZCUXp0WlFVTXZRaXhMUVVGTExFVkJRVVVzWTBGQll5eERRVUZETEZkQlFWY3NSMEZCUnl4VFFVRlRMRU5CUVVNN1UwRkRMME1zUTBGQlF5eERRVUZETzFGQlEwZ3NUVUZCVFN4clFrRkJhMElzUjBGQlJ5eHZSVUZCY1VJc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU14UkN4SlFVRkpMR3RDUVVGclFpeEZRVUZGTzFsQlEzUkNMRTFCUVUwc1YwRkJWeXhIUVVObUxEWkVRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExHdENRVUZyUWl4RFFVRkZMRU5CUVVNN1dVRkRNMFFzTmtSQlFXRXNRMEZCUXl4WFFVRlhMRVZCUVVVN1owSkJRM3BDTEVOQlFVTXNSVUZCUlN4WFFVRlhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zVTBGQlV5eEhRVUZITEVWQlFVVXNRMEZCUXp0blFrRkRia01zUTBGQlF5eEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFZEJRVWNzUlVGQlJTeERRVUZETzJkQ1FVTnVReXhMUVVGTExFVkJRVVVzWTBGQll5eERRVUZETEZkQlFWY3NSMEZCUnl4VFFVRlRMRU5CUVVNN1lVRkRMME1zUTBGQlF5eERRVUZETzFOQlEwbzdTVUZEU0N4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOTUxFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzUTBGREwwSXNiVUpCUVRaRExFVkJRemRETEdkQ1FVRXJReXhGUVVNdlF5eERRVUZUTEVWQlExUXNRMEZCVXl4RlFVTlRMRVZCUVVVN1NVRkRjRUlzVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVU53UWl4blFrRkJaMElzUTBGQlF5eE5RVUZOTEV0QlFVc3NRMEZCUXp0UlFVTXpRaXhEUVVGRExFTkJRVU1zYVVWQlFYZENMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRMME1zUTBGQlF5eERRVUZETEhkRVFVRmxMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0SlFVTjRReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGVrSXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTNwQ0xFMUJRVTBzUzBGQlN5eEhRVUZITEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6VkZMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEhRVUZITERaRFFVRk5MRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRGRFTXNVVUZCVVN4dFFrRkJiVUlzUlVGQlJUdFJRVU16UWl4TFFVRkxMRWRCUVVjN1dVRkRUaXhQUVVGUExEWkRRVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRlRVFzUzBGQlN5eEhRVUZITzFsQlEwNHNUMEZCVHl3MlEwRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzaEVMRXRCUVVzc1IwRkJSenRaUVVOT0xFOUJRVThzTmtOQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVONFJDeExRVUZMTEVkQlFVYzdXVUZEVGl4UFFVRlBMRFpEUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEZUVRc1MwRkJTeXhKUVVGSk8xbEJRMUFzVDBGQlR5dzJRMEZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlF6ZERMRXRCUVVzc1NVRkJTVHRaUVVOUUxFOUJRVThzTmtOQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU0zUXl4TFFVRkxMRWxCUVVrN1dVRkRVQ3hQUVVGUExEWkRRVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRE4wTXNTMEZCU3l4SlFVRkpPMWxCUTFBc1QwRkJUeXcyUTBGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhIUVVGSExFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRemRETzFsQlEwVXNUMEZCVHl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dExRVU5xUWp0QlFVTklMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzZFVKQlFYVkNMRWRCUVVjc1EwRkRja01zYlVKQlFUWkRMRVZCUXpkRExFOUJRVFJETEVWQlF6RkNMRVZCUVVVN1NVRkRjRUlzVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRPMGxCUTNCRExFMUJRVTBzVjBGQlZ5eEhRVU5tTEVOQlFVTXNiVUpCUVcxQ0xFdEJRVXNzU1VGQlNTeEpRVUZKTEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY0VRc1EwRkJReXh0UWtGQmJVSXNTMEZCU3l4SlFVRkpMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU42UXl4RFFVRkRMRzFDUVVGdFFpeExRVUZMTEVsQlFVa3NTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM3BETEVOQlFVTXNiVUpCUVcxQ0xFdEJRVXNzU1VGQlNTeEpRVUZKTEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjJSQ3hQUVVGUExGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU03UVVGRGVFTXNRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDJWc1pXMWxiblF2Y21WemFYcGxSV3hsYldWdWRITXVkSE0vWTJFNFpTSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJUU0VsR1ZGOU1UME5MU1U1SFgwRk9SMHhGSUgwZ1puSnZiU0JjSWk0dUwyTnZibk4wWVc1MGMxd2lPMXh1YVcxd2IzSjBJSHNnY21WelkyRnNaVkJ2YVc1MGN5QjlJR1p5YjIwZ1hDSXVMaTl3YjJsdWRITmNJanRjYmx4dWFXMXdiM0owSUh0Y2JpQWdjbTkwWVhSbExGeHVJQ0JoWkdwMWMzUllXVmRwZEdoU2IzUmhkR2x2Yml4Y2JpQWdZMlZ1ZEdWeVVHOXBiblFzWEc0Z0lISnZkR0YwWlZCdmFXNTBMRnh1ZlNCbWNtOXRJRndpTGk0dmJXRjBhRndpTzF4dWFXMXdiM0owSUh0Y2JpQWdSWGhqWVd4cFpISmhkMHhwYm1WaGNrVnNaVzFsYm5Rc1hHNGdJRVY0WTJGc2FXUnlZWGRVWlhoMFJXeGxiV1Z1ZEN4Y2JpQWdUbTl1UkdWc1pYUmxaRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBMRnh1SUNCT2IyNUVaV3hsZEdWa0xGeHVmU0JtY205dElGd2lMaTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1oyVjBSV3hsYldWdWRFRmljMjlzZFhSbFEyOXZjbVJ6TEZ4dUlDQm5aWFJEYjIxdGIyNUNiM1Z1WkhNc1hHNGdJR2RsZEZKbGMybDZaV1JGYkdWdFpXNTBRV0p6YjJ4MWRHVkRiMjl5WkhNc1hHNTlJR1p5YjIwZ1hDSXVMMkp2ZFc1a2Mxd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ2FYTkdjbVZsUkhKaGQwVnNaVzFsYm5Rc1hHNGdJR2x6VEdsdVpXRnlSV3hsYldWdWRDeGNiaUFnYVhOVVpYaDBSV3hsYldWdWRDeGNibjBnWm5KdmJTQmNJaTR2ZEhsd1pVTm9aV05yYzF3aU8xeHVhVzF3YjNKMElIc2diWFYwWVhSbFJXeGxiV1Z1ZENCOUlHWnliMjBnWENJdUwyMTFkR0YwWlVWc1pXMWxiblJjSWp0Y2JtbHRjRzl5ZENCN0lHZGxkRkJsY21abFkzUkZiR1Z0Wlc1MFUybDZaU0I5SUdaeWIyMGdYQ0l1TDNOcGVtVklaV3h3WlhKelhDSTdYRzVwYlhCdmNuUWdleUJuWlhSR2IyNTBVM1J5YVc1bklIMGdabkp2YlNCY0lpNHVMM1YwYVd4elhDSTdYRzVwYlhCdmNuUWdleUIxY0dSaGRHVkNiM1Z1WkVWc1pXMWxiblJ6SUgwZ1puSnZiU0JjSWk0dlltbHVaR2x1WjF3aU8xeHVhVzF3YjNKMElIdGNiaUFnVkhKaGJuTm1iM0p0U0dGdVpHeGxWSGx3WlN4Y2JpQWdUV0Y1WW1WVWNtRnVjMlp2Y20xSVlXNWtiR1ZVZVhCbExGeHVJQ0JVY21GdWMyWnZjbTFJWVc1a2JHVkVhWEpsWTNScGIyNHNYRzU5SUdaeWIyMGdYQ0l1TDNSeVlXNXpabTl5YlVoaGJtUnNaWE5jSWp0Y2JtbHRjRzl5ZENCN0lGQnZhVzUwTENCUWIybHVkR1Z5Ukc5M2JsTjBZWFJsSUgwZ1puSnZiU0JjSWk0dUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ1UyTmxibVVnWm5KdmJTQmNJaTR1TDNOalpXNWxMMU5qWlc1bFhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCblpYUkJjSEJ5YjNoTmFXNU1hVzVsVjJsa2RHZ3NYRzRnSUdkbGRFSnZkVzVrVkdWNGRFVnNaVzFsYm5Rc1hHNGdJR2RsZEVKdmRXNWtWR1Y0ZEVWc1pXMWxiblJKWkN4Y2JpQWdhR0Z1Wkd4bFFtbHVaRlJsZUhSU1pYTnBlbVVzWEc0Z0lHMWxZWE4xY21WVVpYaDBMRnh1ZlNCbWNtOXRJRndpTGk5MFpYaDBSV3hsYldWdWRGd2lPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdibTl5YldGc2FYcGxRVzVuYkdVZ1BTQW9ZVzVuYkdVNklHNTFiV0psY2lrNklHNTFiV0psY2lBOVBpQjdYRzRnSUdsbUlDaGhibWRzWlNBK1BTQXlJQ29nVFdGMGFDNVFTU2tnZTF4dUlDQWdJSEpsZEhWeWJpQmhibWRzWlNBdElESWdLaUJOWVhSb0xsQkpPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQmhibWRzWlR0Y2JuMDdYRzVjYmk4dklGSmxkSFZ5Ym5NZ2RISjFaU0IzYUdWdUlIUnlZVzV6Wm05eWJTQW9jbVZ6YVhwcGJtY3ZjbTkwWVhScGIyNHBJR2hoY0hCbGJtVmtYRzVsZUhCdmNuUWdZMjl1YzNRZ2RISmhibk5tYjNKdFJXeGxiV1Z1ZEhNZ1BTQW9YRzRnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1U2SUZCdmFXNTBaWEpFYjNkdVUzUmhkR1VzWEc0Z0lIUnlZVzV6Wm05eWJVaGhibVJzWlZSNWNHVTZJRTFoZVdKbFZISmhibk5tYjNKdFNHRnVaR3hsVkhsd1pTeGNiaUFnYzJWc1pXTjBaV1JGYkdWdFpXNTBjem9nY21WaFpHOXViSGtnVG05dVJHVnNaWFJsWkVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzEwc1hHNGdJSEpsYzJsNlpVRnljbTkzUkdseVpXTjBhVzl1T2lCY0ltOXlhV2RwYmx3aUlId2dYQ0psYm1SY0lpeGNiaUFnYzJodmRXeGtVbTkwWVhSbFYybDBhRVJwYzJOeVpYUmxRVzVuYkdVNklHSnZiMnhsWVc0c1hHNGdJSE5vYjNWc1pGSmxjMmw2WlVaeWIyMURaVzUwWlhJNklHSnZiMnhsWVc0c1hHNGdJSE5vYjNWc1pFMWhhVzUwWVdsdVFYTndaV04wVW1GMGFXODZJR0p2YjJ4bFlXNHNYRzRnSUhCdmFXNTBaWEpZT2lCdWRXMWlaWElzWEc0Z0lIQnZhVzUwWlhKWk9pQnVkVzFpWlhJc1hHNGdJR05sYm5SbGNsZzZJRzUxYldKbGNpeGNiaUFnWTJWdWRHVnlXVG9nYm5WdFltVnlMRnh1S1NBOVBpQjdYRzRnSUdsbUlDaHpaV3hsWTNSbFpFVnNaVzFsYm5SekxteGxibWQwYUNBOVBUMGdNU2tnZTF4dUlDQWdJR052Ym5OMElGdGxiR1Z0Wlc1MFhTQTlJSE5sYkdWamRHVmtSV3hsYldWdWRITTdYRzRnSUNBZ2FXWWdLSFJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1VnUFQwOUlGd2ljbTkwWVhScGIyNWNJaWtnZTF4dUlDQWdJQ0FnY205MFlYUmxVMmx1WjJ4bFJXeGxiV1Z1ZENoY2JpQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUNBZ2NHOXBiblJsY2xnc1hHNGdJQ0FnSUNBZ0lIQnZhVzUwWlhKWkxGeHVJQ0FnSUNBZ0lDQnphRzkxYkdSU2IzUmhkR1ZYYVhSb1JHbHpZM0psZEdWQmJtZHNaU3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0IxY0dSaGRHVkNiM1Z1WkVWc1pXMWxiblJ6S0dWc1pXMWxiblFwTzF4dUlDQWdJSDBnWld4elpTQnBaaUFvWEc0Z0lDQWdJQ0JwYzB4cGJtVmhja1ZzWlcxbGJuUW9aV3hsYldWdWRDa2dKaVpjYmlBZ0lDQWdJR1ZzWlcxbGJuUXVjRzlwYm5SekxteGxibWQwYUNBOVBUMGdNaUFtSmx4dUlDQWdJQ0FnS0hSeVlXNXpabTl5YlVoaGJtUnNaVlI1Y0dVZ1BUMDlJRndpYm5kY0lpQjhmRnh1SUNBZ0lDQWdJQ0IwY21GdWMyWnZjbTFJWVc1a2JHVlVlWEJsSUQwOVBTQmNJbTVsWENJZ2ZIeGNiaUFnSUNBZ0lDQWdkSEpoYm5ObWIzSnRTR0Z1Wkd4bFZIbHdaU0E5UFQwZ1hDSnpkMXdpSUh4OFhHNGdJQ0FnSUNBZ0lIUnlZVzV6Wm05eWJVaGhibVJzWlZSNWNHVWdQVDA5SUZ3aWMyVmNJaWxjYmlBZ0lDQXBJSHRjYmlBZ0lDQWdJSEpsYzJoaGNHVlRhVzVuYkdWVWQyOVFiMmx1ZEVWc1pXMWxiblFvWEc0Z0lDQWdJQ0FnSUdWc1pXMWxiblFzWEc0Z0lDQWdJQ0FnSUhKbGMybDZaVUZ5Y205M1JHbHlaV04wYVc5dUxGeHVJQ0FnSUNBZ0lDQnphRzkxYkdSU2IzUmhkR1ZYYVhSb1JHbHpZM0psZEdWQmJtZHNaU3hjYmlBZ0lDQWdJQ0FnY0c5cGJuUmxjbGdzWEc0Z0lDQWdJQ0FnSUhCdmFXNTBaWEpaTEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5SUdWc2MyVWdhV1lnS0Z4dUlDQWdJQ0FnYVhOVVpYaDBSV3hsYldWdWRDaGxiR1Z0Wlc1MEtTQW1KbHh1SUNBZ0lDQWdLSFJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1VnUFQwOUlGd2libmRjSWlCOGZGeHVJQ0FnSUNBZ0lDQjBjbUZ1YzJadmNtMUlZVzVrYkdWVWVYQmxJRDA5UFNCY0ltNWxYQ0lnZkh4Y2JpQWdJQ0FnSUNBZ2RISmhibk5tYjNKdFNHRnVaR3hsVkhsd1pTQTlQVDBnWENKemQxd2lJSHg4WEc0Z0lDQWdJQ0FnSUhSeVlXNXpabTl5YlVoaGJtUnNaVlI1Y0dVZ1BUMDlJRndpYzJWY0lpbGNiaUFnSUNBcElIdGNiaUFnSUNBZ0lISmxjMmw2WlZOcGJtZHNaVlJsZUhSRmJHVnRaVzUwS0Z4dUlDQWdJQ0FnSUNCbGJHVnRaVzUwTEZ4dUlDQWdJQ0FnSUNCMGNtRnVjMlp2Y20xSVlXNWtiR1ZVZVhCbExGeHVJQ0FnSUNBZ0lDQnphRzkxYkdSU1pYTnBlbVZHY205dFEyVnVkR1Z5TEZ4dUlDQWdJQ0FnSUNCd2IybHVkR1Z5V0N4Y2JpQWdJQ0FnSUNBZ2NHOXBiblJsY2xrc1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2RYQmtZWFJsUW05MWJtUkZiR1Z0Wlc1MGN5aGxiR1Z0Wlc1MEtUdGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tIUnlZVzV6Wm05eWJVaGhibVJzWlZSNWNHVXBJSHRjYmlBZ0lDQWdJSEpsYzJsNlpWTnBibWRzWlVWc1pXMWxiblFvWEc0Z0lDQWdJQ0FnSUhCdmFXNTBaWEpFYjNkdVUzUmhkR1V1YjNKcFoybHVZV3hGYkdWdFpXNTBjeTVuWlhRb1pXeGxiV1Z1ZEM1cFpDa2dZWE1nZEhsd1pXOW1JR1ZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJSE5vYjNWc1pFMWhhVzUwWVdsdVFYTndaV04wVW1GMGFXOHNYRzRnSUNBZ0lDQWdJR1ZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJSFJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1VzWEc0Z0lDQWdJQ0FnSUhOb2IzVnNaRkpsYzJsNlpVWnliMjFEWlc1MFpYSXNYRzRnSUNBZ0lDQWdJSEJ2YVc1MFpYSllMRnh1SUNBZ0lDQWdJQ0J3YjJsdWRHVnlXU3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lIMGdaV3h6WlNCcFppQW9jMlZzWldOMFpXUkZiR1Z0Wlc1MGN5NXNaVzVuZEdnZ1BpQXhLU0I3WEc0Z0lDQWdhV1lnS0hSeVlXNXpabTl5YlVoaGJtUnNaVlI1Y0dVZ1BUMDlJRndpY205MFlYUnBiMjVjSWlrZ2UxeHVJQ0FnSUNBZ2NtOTBZWFJsVFhWc2RHbHdiR1ZGYkdWdFpXNTBjeWhjYmlBZ0lDQWdJQ0FnY0c5cGJuUmxja1J2ZDI1VGRHRjBaU3hjYmlBZ0lDQWdJQ0FnYzJWc1pXTjBaV1JGYkdWdFpXNTBjeXhjYmlBZ0lDQWdJQ0FnY0c5cGJuUmxjbGdzWEc0Z0lDQWdJQ0FnSUhCdmFXNTBaWEpaTEZ4dUlDQWdJQ0FnSUNCemFHOTFiR1JTYjNSaGRHVlhhWFJvUkdselkzSmxkR1ZCYm1kc1pTeGNiaUFnSUNBZ0lDQWdZMlZ1ZEdWeVdDeGNiaUFnSUNBZ0lDQWdZMlZ1ZEdWeVdTeGNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ0lDQjlJR1ZzYzJVZ2FXWWdLRnh1SUNBZ0lDQWdkSEpoYm5ObWIzSnRTR0Z1Wkd4bFZIbHdaU0E5UFQwZ1hDSnVkMXdpSUh4OFhHNGdJQ0FnSUNCMGNtRnVjMlp2Y20xSVlXNWtiR1ZVZVhCbElEMDlQU0JjSW01bFhDSWdmSHhjYmlBZ0lDQWdJSFJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1VnUFQwOUlGd2ljM2RjSWlCOGZGeHVJQ0FnSUNBZ2RISmhibk5tYjNKdFNHRnVaR3hsVkhsd1pTQTlQVDBnWENKelpWd2lYRzRnSUNBZ0tTQjdYRzRnSUNBZ0lDQnlaWE5wZW1WTmRXeDBhWEJzWlVWc1pXMWxiblJ6S0Z4dUlDQWdJQ0FnSUNCelpXeGxZM1JsWkVWc1pXMWxiblJ6TEZ4dUlDQWdJQ0FnSUNCMGNtRnVjMlp2Y20xSVlXNWtiR1ZVZVhCbExGeHVJQ0FnSUNBZ0lDQndiMmx1ZEdWeVdDeGNiaUFnSUNBZ0lDQWdjRzlwYm5SbGNsa3NYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdhR0Z1Wkd4bFFtbHVaRlJsZUhSU1pYTnBlbVVvYzJWc1pXTjBaV1JGYkdWdFpXNTBjeXdnZEhKaGJuTm1iM0p0U0dGdVpHeGxWSGx3WlNrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnSUNCOVhHNGdJSDFjYmlBZ2NtVjBkWEp1SUdaaGJITmxPMXh1ZlR0Y2JseHVZMjl1YzNRZ2NtOTBZWFJsVTJsdVoyeGxSV3hsYldWdWRDQTlJQ2hjYmlBZ1pXeGxiV1Z1ZERvZ1RtOXVSR1ZzWlhSbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MExGeHVJQ0J3YjJsdWRHVnlXRG9nYm5WdFltVnlMRnh1SUNCd2IybHVkR1Z5V1RvZ2JuVnRZbVZ5TEZ4dUlDQnphRzkxYkdSU2IzUmhkR1ZYYVhSb1JHbHpZM0psZEdWQmJtZHNaVG9nWW05dmJHVmhiaXhjYmlrZ1BUNGdlMXh1SUNCamIyNXpkQ0JiZURFc0lIa3hMQ0I0TWl3Z2VUSmRJRDBnWjJWMFJXeGxiV1Z1ZEVGaWMyOXNkWFJsUTI5dmNtUnpLR1ZzWlcxbGJuUXBPMXh1SUNCamIyNXpkQ0JqZUNBOUlDaDRNU0FySUhneUtTQXZJREk3WEc0Z0lHTnZibk4wSUdONUlEMGdLSGt4SUNzZ2VUSXBJQzhnTWp0Y2JpQWdiR1YwSUdGdVoyeGxJRDBnS0RVZ0tpQk5ZWFJvTGxCSktTQXZJRElnS3lCTllYUm9MbUYwWVc0eUtIQnZhVzUwWlhKWklDMGdZM2tzSUhCdmFXNTBaWEpZSUMwZ1kzZ3BPMXh1SUNCcFppQW9jMmh2ZFd4a1VtOTBZWFJsVjJsMGFFUnBjMk55WlhSbFFXNW5iR1VwSUh0Y2JpQWdJQ0JoYm1kc1pTQXJQU0JUU0VsR1ZGOU1UME5MU1U1SFgwRk9SMHhGSUM4Z01qdGNiaUFnSUNCaGJtZHNaU0F0UFNCaGJtZHNaU0FsSUZOSVNVWlVYMHhQUTB0SlRrZGZRVTVIVEVVN1hHNGdJSDFjYmlBZ1lXNW5iR1VnUFNCdWIzSnRZV3hwZW1WQmJtZHNaU2hoYm1kc1pTazdYRzRnSUcxMWRHRjBaVVZzWlcxbGJuUW9aV3hsYldWdWRDd2dleUJoYm1kc1pTQjlLVHRjYmlBZ1kyOXVjM1FnWW05MWJtUlVaWGgwUld4bGJXVnVkRWxrSUQwZ1oyVjBRbTkxYm1SVVpYaDBSV3hsYldWdWRFbGtLR1ZzWlcxbGJuUXBPMXh1SUNCcFppQW9ZbTkxYm1SVVpYaDBSV3hsYldWdWRFbGtLU0I3WEc0Z0lDQWdZMjl1YzNRZ2RHVjRkRVZzWlcxbGJuUWdQU0JUWTJWdVpTNW5aWFJUWTJWdVpTaGxiR1Z0Wlc1MEtTRXVaMlYwUld4bGJXVnVkQ2hpYjNWdVpGUmxlSFJGYkdWdFpXNTBTV1FwTzF4dUlDQWdJRzExZEdGMFpVVnNaVzFsYm5Rb2RHVjRkRVZzWlcxbGJuUWhMQ0I3SUdGdVoyeGxJSDBwTzF4dUlDQjlYRzU5TzF4dVhHNHZMeUIxYzJWa0lHbHVJRVJGVmlCdmJteDVYRzVqYjI1emRDQjJZV3hwWkdGMFpWUjNiMUJ2YVc1MFJXeGxiV1Z1ZEU1dmNtMWhiR2w2WldRZ1BTQW9YRzRnSUdWc1pXMWxiblE2SUU1dmJrUmxiR1YwWldROFJYaGpZV3hwWkhKaGQweHBibVZoY2tWc1pXMWxiblErTEZ4dUtTQTlQaUI3WEc0Z0lHbG1JQ2hjYmlBZ0lDQmxiR1Z0Wlc1MExuQnZhVzUwY3k1c1pXNW5kR2dnSVQwOUlESWdmSHhjYmlBZ0lDQmxiR1Z0Wlc1MExuQnZhVzUwYzFzd1hWc3dYU0FoUFQwZ01DQjhmRnh1SUNBZ0lHVnNaVzFsYm5RdWNHOXBiblJ6V3pCZFd6RmRJQ0U5UFNBd0lIeDhYRzRnSUNBZ1RXRjBhQzVoWW5Nb1pXeGxiV1Z1ZEM1d2IybHVkSE5iTVYxYk1GMHBJQ0U5UFNCbGJHVnRaVzUwTG5kcFpIUm9JSHg4WEc0Z0lDQWdUV0YwYUM1aFluTW9aV3hsYldWdWRDNXdiMmx1ZEhOYk1WMWJNVjBwSUNFOVBTQmxiR1Z0Wlc1MExtaGxhV2RvZEZ4dUlDQXBJSHRjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb1hDSlVkMjh0Y0c5cGJuUWdaV3hsYldWdWRDQnBjeUJ1YjNRZ2JtOXliV0ZzYVhwbFpGd2lLVHRjYmlBZ2ZWeHVmVHRjYmx4dVkyOXVjM1FnWjJWMFVHVnlabVZqZEVWc1pXMWxiblJUYVhwbFYybDBhRkp2ZEdGMGFXOXVJRDBnS0Z4dUlDQmxiR1Z0Wlc1MFZIbHdaVG9nYzNSeWFXNW5MRnh1SUNCM2FXUjBhRG9nYm5WdFltVnlMRnh1SUNCb1pXbG5hSFE2SUc1MWJXSmxjaXhjYmlBZ1lXNW5iR1U2SUc1MWJXSmxjaXhjYmlrNklGdHVkVzFpWlhJc0lHNTFiV0psY2wwZ1BUNGdlMXh1SUNCamIyNXpkQ0J6YVhwbElEMGdaMlYwVUdWeVptVmpkRVZzWlcxbGJuUlRhWHBsS0Z4dUlDQWdJR1ZzWlcxbGJuUlVlWEJsTEZ4dUlDQWdJQzR1TG5KdmRHRjBaU2gzYVdSMGFDd2dhR1ZwWjJoMExDQXdMQ0F3TENCaGJtZHNaU2tzWEc0Z0lDazdYRzRnSUhKbGRIVnliaUJ5YjNSaGRHVW9jMmw2WlM1M2FXUjBhQ3dnYzJsNlpTNW9aV2xuYUhRc0lEQXNJREFzSUMxaGJtZHNaU2s3WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2NtVnphR0Z3WlZOcGJtZHNaVlIzYjFCdmFXNTBSV3hsYldWdWRDQTlJQ2hjYmlBZ1pXeGxiV1Z1ZERvZ1RtOXVSR1ZzWlhSbFpEeEZlR05oYkdsa2NtRjNUR2x1WldGeVJXeGxiV1Z1ZEQ0c1hHNGdJSEpsYzJsNlpVRnljbTkzUkdseVpXTjBhVzl1T2lCY0ltOXlhV2RwYmx3aUlId2dYQ0psYm1SY0lpeGNiaUFnYzJodmRXeGtVbTkwWVhSbFYybDBhRVJwYzJOeVpYUmxRVzVuYkdVNklHSnZiMnhsWVc0c1hHNGdJSEJ2YVc1MFpYSllPaUJ1ZFcxaVpYSXNYRzRnSUhCdmFXNTBaWEpaT2lCdWRXMWlaWElzWEc0cElEMCtJSHRjYmlBZ2FXWWdLSEJ5YjJObGMzTXVaVzUyTGs1UFJFVmZSVTVXSUNFOVBTQmNJbkJ5YjJSMVkzUnBiMjVjSWlrZ2UxeHVJQ0FnSUhaaGJHbGtZWFJsVkhkdlVHOXBiblJGYkdWdFpXNTBUbTl5YldGc2FYcGxaQ2hsYkdWdFpXNTBLVHRjYmlBZ2ZWeHVJQ0JqYjI1emRDQmJlREVzSUhreExDQjRNaXdnZVRKZElEMGdaMlYwUld4bGJXVnVkRUZpYzI5c2RYUmxRMjl2Y21SektHVnNaVzFsYm5RcE8xeHVJQ0JqYjI1emRDQmplQ0E5SUNoNE1TQXJJSGd5S1NBdklESTdYRzRnSUdOdmJuTjBJR041SUQwZ0tIa3hJQ3NnZVRJcElDOGdNanRjYmlBZ0x5OGdjbTkwWVhScGIyNGdjRzlwYm5SbGNpQjNhWFJvSUhKbGRtVnljMlVnWVc1bmJHVmNiaUFnWTI5dWMzUWdXM0p2ZEdGMFpXUllMQ0J5YjNSaGRHVmtXVjBnUFNCeWIzUmhkR1VvWEc0Z0lDQWdjRzlwYm5SbGNsZ3NYRzRnSUNBZ2NHOXBiblJsY2xrc1hHNGdJQ0FnWTNnc1hHNGdJQ0FnWTNrc1hHNGdJQ0FnTFdWc1pXMWxiblF1WVc1bmJHVXNYRzRnSUNrN1hHNGdJR3hsZENCYmQybGtkR2dzSUdobGFXZG9kRjBnUFZ4dUlDQWdJSEpsYzJsNlpVRnljbTkzUkdseVpXTjBhVzl1SUQwOVBTQmNJbVZ1WkZ3aVhHNGdJQ0FnSUNBL0lGdHliM1JoZEdWa1dDQXRJR1ZzWlcxbGJuUXVlQ3dnY205MFlYUmxaRmtnTFNCbGJHVnRaVzUwTG5sZFhHNGdJQ0FnSUNBNklGdGNiaUFnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBMbmdnS3lCbGJHVnRaVzUwTG5CdmFXNTBjMXN4WFZzd1hTQXRJSEp2ZEdGMFpXUllMRnh1SUNBZ0lDQWdJQ0FnSUdWc1pXMWxiblF1ZVNBcklHVnNaVzFsYm5RdWNHOXBiblJ6V3pGZFd6RmRJQzBnY205MFlYUmxaRmtzWEc0Z0lDQWdJQ0FnSUYwN1hHNGdJR2xtSUNoemFHOTFiR1JTYjNSaGRHVlhhWFJvUkdselkzSmxkR1ZCYm1kc1pTa2dlMXh1SUNBZ0lGdDNhV1IwYUN3Z2FHVnBaMmgwWFNBOUlHZGxkRkJsY21abFkzUkZiR1Z0Wlc1MFUybDZaVmRwZEdoU2IzUmhkR2x2YmloY2JpQWdJQ0FnSUdWc1pXMWxiblF1ZEhsd1pTeGNiaUFnSUNBZ0lIZHBaSFJvTEZ4dUlDQWdJQ0FnYUdWcFoyaDBMRnh1SUNBZ0lDQWdaV3hsYldWdWRDNWhibWRzWlN4Y2JpQWdJQ0FwTzF4dUlDQjlYRzRnSUdOdmJuTjBJRnR1WlhoMFJXeGxiV1Z1ZEZnc0lHNWxlSFJGYkdWdFpXNTBXVjBnUFNCaFpHcDFjM1JZV1ZkcGRHaFNiM1JoZEdsdmJpaGNiaUFnSUNCeVpYTnBlbVZCY25KdmQwUnBjbVZqZEdsdmJpQTlQVDBnWENKbGJtUmNJbHh1SUNBZ0lDQWdQeUI3SUhNNklIUnlkV1VzSUdVNklIUnlkV1VnZlZ4dUlDQWdJQ0FnT2lCN0lHNDZJSFJ5ZFdVc0lIYzZJSFJ5ZFdVZ2ZTeGNiaUFnSUNCbGJHVnRaVzUwTG5nc1hHNGdJQ0FnWld4bGJXVnVkQzU1TEZ4dUlDQWdJR1ZzWlcxbGJuUXVZVzVuYkdVc1hHNGdJQ0FnTUN4Y2JpQWdJQ0F3TEZ4dUlDQWdJQ2hsYkdWdFpXNTBMbkJ2YVc1MGMxc3hYVnN3WFNBdElIZHBaSFJvS1NBdklESXNYRzRnSUNBZ0tHVnNaVzFsYm5RdWNHOXBiblJ6V3pGZFd6RmRJQzBnYUdWcFoyaDBLU0F2SURJc1hHNGdJQ2s3WEc0Z0lHMTFkR0YwWlVWc1pXMWxiblFvWld4bGJXVnVkQ3dnZTF4dUlDQWdJSGc2SUc1bGVIUkZiR1Z0Wlc1MFdDeGNiaUFnSUNCNU9pQnVaWGgwUld4bGJXVnVkRmtzWEc0Z0lDQWdjRzlwYm5Sek9pQmJYRzRnSUNBZ0lDQmJNQ3dnTUYwc1hHNGdJQ0FnSUNCYmQybGtkR2dzSUdobGFXZG9kRjBzWEc0Z0lDQWdYU3hjYmlBZ2ZTazdYRzU5TzF4dVhHNWpiMjV6ZENCeVpYTmpZV3hsVUc5cGJuUnpTVzVGYkdWdFpXNTBJRDBnS0Z4dUlDQmxiR1Z0Wlc1ME9pQk9iMjVFWld4bGRHVmtSWGhqWVd4cFpISmhkMFZzWlcxbGJuUXNYRzRnSUhkcFpIUm9PaUJ1ZFcxaVpYSXNYRzRnSUdobGFXZG9kRG9nYm5WdFltVnlMRnh1S1NBOVBseHVJQ0JwYzB4cGJtVmhja1ZzWlcxbGJuUW9aV3hsYldWdWRDa2dmSHdnYVhOR2NtVmxSSEpoZDBWc1pXMWxiblFvWld4bGJXVnVkQ2xjYmlBZ0lDQS9JSHRjYmlBZ0lDQWdJQ0FnY0c5cGJuUnpPaUJ5WlhOallXeGxVRzlwYm5SektGeHVJQ0FnSUNBZ0lDQWdJREFzWEc0Z0lDQWdJQ0FnSUNBZ2QybGtkR2dzWEc0Z0lDQWdJQ0FnSUNBZ2NtVnpZMkZzWlZCdmFXNTBjeWd4TENCb1pXbG5hSFFzSUdWc1pXMWxiblF1Y0c5cGJuUnpLU3hjYmlBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUgxY2JpQWdJQ0E2SUh0OU8xeHVYRzVqYjI1emRDQk5TVTVmUms5T1ZGOVRTVnBGSUQwZ01UdGNibHh1WTI5dWMzUWdiV1ZoYzNWeVpVWnZiblJUYVhwbFJuSnZiVmRJSUQwZ0tGeHVJQ0JsYkdWdFpXNTBPaUJPYjI1RVpXeGxkR1ZrUEVWNFkyRnNhV1J5WVhkVVpYaDBSV3hsYldWdWRENHNYRzRnSUc1bGVIUlhhV1IwYURvZ2JuVnRZbVZ5TEZ4dUlDQnVaWGgwU0dWcFoyaDBPaUJ1ZFcxaVpYSXNYRzRwT2lCN0lITnBlbVU2SUc1MWJXSmxjanNnWW1GelpXeHBibVU2SUc1MWJXSmxjaUI5SUh3Z2JuVnNiQ0E5UGlCN1hHNGdJQzh2SUZkbElHOXViSGtnZFhObElIZHBaSFJvSUhSdklITmpZV3hsSUdadmJuUWdiMjRnY21WemFYcGxYRzRnSUdOdmJuTjBJRzVsZUhSR2IyNTBVMmw2WlNBOUlHVnNaVzFsYm5RdVptOXVkRk5wZW1VZ0tpQW9ibVY0ZEZkcFpIUm9JQzhnWld4bGJXVnVkQzUzYVdSMGFDazdYRzRnSUdsbUlDaHVaWGgwUm05dWRGTnBlbVVnUENCTlNVNWZSazlPVkY5VFNWcEZLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lIMWNiaUFnWTI5dWMzUWdiV1YwY21samN5QTlJRzFsWVhOMWNtVlVaWGgwS0Z4dUlDQWdJR1ZzWlcxbGJuUXVkR1Y0ZEN4Y2JpQWdJQ0JuWlhSR2IyNTBVM1J5YVc1bktIc2dabTl1ZEZOcGVtVTZJRzVsZUhSR2IyNTBVMmw2WlN3Z1ptOXVkRVpoYldsc2VUb2daV3hsYldWdWRDNW1iMjUwUm1GdGFXeDVJSDBwTEZ4dUlDQWdJR1ZzWlcxbGJuUXVZMjl1ZEdGcGJtVnlTV1FnUHlCbGJHVnRaVzUwTG5kcFpIUm9JRG9nYm5Wc2JDeGNiaUFnS1R0Y2JpQWdjbVYwZFhKdUlIdGNiaUFnSUNCemFYcGxPaUJ1WlhoMFJtOXVkRk5wZW1Vc1hHNGdJQ0FnWW1GelpXeHBibVU2SUcxbGRISnBZM011WW1GelpXeHBibVVnS3lBb2JtVjRkRWhsYVdkb2RDQXRJRzFsZEhKcFkzTXVhR1ZwWjJoMEtTeGNiaUFnZlR0Y2JuMDdYRzVjYm1OdmJuTjBJR2RsZEZOcFpHVnpSbTl5VkhKaGJuTm1iM0p0U0dGdVpHeGxJRDBnS0Z4dUlDQjBjbUZ1YzJadmNtMUlZVzVrYkdWVWVYQmxPaUJVY21GdWMyWnZjbTFJWVc1a2JHVlVlWEJsTEZ4dUlDQnphRzkxYkdSU1pYTnBlbVZHY205dFEyVnVkR1Z5T2lCaWIyOXNaV0Z1TEZ4dUtTQTlQaUI3WEc0Z0lISmxkSFZ5YmlCN1hHNGdJQ0FnYmpwY2JpQWdJQ0FnSUM5ZUtHNThibVY4Ym5jcEpDOHVkR1Z6ZENoMGNtRnVjMlp2Y20xSVlXNWtiR1ZVZVhCbEtTQjhmRnh1SUNBZ0lDQWdLSE5vYjNWc1pGSmxjMmw2WlVaeWIyMURaVzUwWlhJZ0ppWWdMMTRvYzN4elpYeHpkeWtrTHk1MFpYTjBLSFJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1VwS1N4Y2JpQWdJQ0J6T2x4dUlDQWdJQ0FnTDE0b2MzeHpaWHh6ZHlra0x5NTBaWE4wS0hSeVlXNXpabTl5YlVoaGJtUnNaVlI1Y0dVcElIeDhYRzRnSUNBZ0lDQW9jMmh2ZFd4a1VtVnphWHBsUm5KdmJVTmxiblJsY2lBbUppQXZYaWh1Zkc1bGZHNTNLU1F2TG5SbGMzUW9kSEpoYm5ObWIzSnRTR0Z1Wkd4bFZIbHdaU2twTEZ4dUlDQWdJSGM2WEc0Z0lDQWdJQ0F2WGloM2ZHNTNmSE4zS1NRdkxuUmxjM1FvZEhKaGJuTm1iM0p0U0dGdVpHeGxWSGx3WlNrZ2ZIeGNiaUFnSUNBZ0lDaHphRzkxYkdSU1pYTnBlbVZHY205dFEyVnVkR1Z5SUNZbUlDOWVLR1Y4Ym1WOGMyVXBKQzh1ZEdWemRDaDBjbUZ1YzJadmNtMUlZVzVrYkdWVWVYQmxLU2tzWEc0Z0lDQWdaVHBjYmlBZ0lDQWdJQzllS0dWOGJtVjhjMlVwSkM4dWRHVnpkQ2gwY21GdWMyWnZjbTFJWVc1a2JHVlVlWEJsS1NCOGZGeHVJQ0FnSUNBZ0tITm9iM1ZzWkZKbGMybDZaVVp5YjIxRFpXNTBaWElnSmlZZ0wxNG9kM3h1ZDN4emR5a2tMeTUwWlhOMEtIUnlZVzV6Wm05eWJVaGhibVJzWlZSNWNHVXBLU3hjYmlBZ2ZUdGNibjA3WEc1Y2JtTnZibk4wSUhKbGMybDZaVk5wYm1kc1pWUmxlSFJGYkdWdFpXNTBJRDBnS0Z4dUlDQmxiR1Z0Wlc1ME9pQk9iMjVFWld4bGRHVmtQRVY0WTJGc2FXUnlZWGRVWlhoMFJXeGxiV1Z1ZEQ0c1hHNGdJSFJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1U2SUZ3aWJuZGNJaUI4SUZ3aWJtVmNJaUI4SUZ3aWMzZGNJaUI4SUZ3aWMyVmNJaXhjYmlBZ2MyaHZkV3hrVW1WemFYcGxSbkp2YlVObGJuUmxjam9nWW05dmJHVmhiaXhjYmlBZ2NHOXBiblJsY2xnNklHNTFiV0psY2l4Y2JpQWdjRzlwYm5SbGNsazZJRzUxYldKbGNpeGNiaWtnUFQ0Z2UxeHVJQ0JqYjI1emRDQmJlREVzSUhreExDQjRNaXdnZVRKZElEMGdaMlYwUld4bGJXVnVkRUZpYzI5c2RYUmxRMjl2Y21SektHVnNaVzFsYm5RcE8xeHVJQ0JqYjI1emRDQmplQ0E5SUNoNE1TQXJJSGd5S1NBdklESTdYRzRnSUdOdmJuTjBJR041SUQwZ0tIa3hJQ3NnZVRJcElDOGdNanRjYmlBZ0x5OGdjbTkwWVhScGIyNGdjRzlwYm5SbGNpQjNhWFJvSUhKbGRtVnljMlVnWVc1bmJHVmNiaUFnWTI5dWMzUWdXM0p2ZEdGMFpXUllMQ0J5YjNSaGRHVmtXVjBnUFNCeWIzUmhkR1VvWEc0Z0lDQWdjRzlwYm5SbGNsZ3NYRzRnSUNBZ2NHOXBiblJsY2xrc1hHNGdJQ0FnWTNnc1hHNGdJQ0FnWTNrc1hHNGdJQ0FnTFdWc1pXMWxiblF1WVc1bmJHVXNYRzRnSUNrN1hHNGdJR3hsZENCelkyRnNaVG9nYm5WdFltVnlPMXh1SUNCemQybDBZMmdnS0hSeVlXNXpabTl5YlVoaGJtUnNaVlI1Y0dVcElIdGNiaUFnSUNCallYTmxJRndpYzJWY0lqcGNiaUFnSUNBZ0lITmpZV3hsSUQwZ1RXRjBhQzV0WVhnb1hHNGdJQ0FnSUNBZ0lDaHliM1JoZEdWa1dDQXRJSGd4S1NBdklDaDRNaUF0SUhneEtTeGNiaUFnSUNBZ0lDQWdLSEp2ZEdGMFpXUlpJQzBnZVRFcElDOGdLSGt5SUMwZ2VURXBMRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdYQ0p1ZDF3aU9seHVJQ0FnSUNBZ2MyTmhiR1VnUFNCTllYUm9MbTFoZUNoY2JpQWdJQ0FnSUNBZ0tIZ3lJQzBnY205MFlYUmxaRmdwSUM4Z0tIZ3lJQzBnZURFcExGeHVJQ0FnSUNBZ0lDQW9lVElnTFNCeWIzUmhkR1ZrV1NrZ0x5QW9lVElnTFNCNU1Ta3NYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnWTJGelpTQmNJbTVsWENJNlhHNGdJQ0FnSUNCelkyRnNaU0E5SUUxaGRHZ3ViV0Y0S0Z4dUlDQWdJQ0FnSUNBb2NtOTBZWFJsWkZnZ0xTQjRNU2tnTHlBb2VESWdMU0I0TVNrc1hHNGdJQ0FnSUNBZ0lDaDVNaUF0SUhKdmRHRjBaV1JaS1NBdklDaDVNaUF0SUhreEtTeGNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0JqWVhObElGd2ljM2RjSWpwY2JpQWdJQ0FnSUhOallXeGxJRDBnVFdGMGFDNXRZWGdvWEc0Z0lDQWdJQ0FnSUNoNE1pQXRJSEp2ZEdGMFpXUllLU0F2SUNoNE1pQXRJSGd4S1N4Y2JpQWdJQ0FnSUNBZ0tISnZkR0YwWldSWklDMGdlVEVwSUM4Z0tIa3lJQzBnZVRFcExGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lHSnlaV0ZyTzF4dUlDQjlYRzRnSUdsbUlDaHpZMkZzWlNBK0lEQXBJSHRjYmlBZ0lDQmpiMjV6ZENCdVpYaDBWMmxrZEdnZ1BTQmxiR1Z0Wlc1MExuZHBaSFJvSUNvZ2MyTmhiR1U3WEc0Z0lDQWdZMjl1YzNRZ2JtVjRkRWhsYVdkb2RDQTlJR1ZzWlcxbGJuUXVhR1ZwWjJoMElDb2djMk5oYkdVN1hHNGdJQ0FnWTI5dWMzUWdibVY0ZEVadmJuUWdQU0J0WldGemRYSmxSbTl1ZEZOcGVtVkdjbTl0VjBnb1pXeGxiV1Z1ZEN3Z2JtVjRkRmRwWkhSb0xDQnVaWGgwU0dWcFoyaDBLVHRjYmlBZ0lDQnBaaUFvYm1WNGRFWnZiblFnUFQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzRnSUNBZ1kyOXVjM1FnVzI1bGVIUllNU3dnYm1WNGRGa3hMQ0J1WlhoMFdESXNJRzVsZUhSWk1sMGdQU0JuWlhSU1pYTnBlbVZrUld4bGJXVnVkRUZpYzI5c2RYUmxRMjl2Y21SektGeHVJQ0FnSUNBZ1pXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUc1bGVIUlhhV1IwYUN4Y2JpQWdJQ0FnSUc1bGVIUklaV2xuYUhRc1hHNGdJQ0FnS1R0Y2JpQWdJQ0JqYjI1emRDQmtaV3gwWVZneElEMGdLSGd4SUMwZ2JtVjRkRmd4S1NBdklESTdYRzRnSUNBZ1kyOXVjM1FnWkdWc2RHRlpNU0E5SUNoNU1TQXRJRzVsZUhSWk1Ta2dMeUF5TzF4dUlDQWdJR052Ym5OMElHUmxiSFJoV0RJZ1BTQW9lRElnTFNCdVpYaDBXRElwSUM4Z01qdGNiaUFnSUNCamIyNXpkQ0JrWld4MFlWa3lJRDBnS0hreUlDMGdibVY0ZEZreUtTQXZJREk3WEc0Z0lDQWdZMjl1YzNRZ1cyNWxlSFJGYkdWdFpXNTBXQ3dnYm1WNGRFVnNaVzFsYm5SWlhTQTlJR0ZrYW5WemRGaFpWMmwwYUZKdmRHRjBhVzl1S0Z4dUlDQWdJQ0FnWjJWMFUybGtaWE5HYjNKVWNtRnVjMlp2Y20xSVlXNWtiR1VvZEhKaGJuTm1iM0p0U0dGdVpHeGxWSGx3WlN3Z2MyaHZkV3hrVW1WemFYcGxSbkp2YlVObGJuUmxjaWtzWEc0Z0lDQWdJQ0JsYkdWdFpXNTBMbmdzWEc0Z0lDQWdJQ0JsYkdWdFpXNTBMbmtzWEc0Z0lDQWdJQ0JsYkdWdFpXNTBMbUZ1WjJ4bExGeHVJQ0FnSUNBZ1pHVnNkR0ZZTVN4Y2JpQWdJQ0FnSUdSbGJIUmhXVEVzWEc0Z0lDQWdJQ0JrWld4MFlWZ3lMRnh1SUNBZ0lDQWdaR1ZzZEdGWk1peGNiaUFnSUNBcE8xeHVJQ0FnSUcxMWRHRjBaVVZzWlcxbGJuUW9aV3hsYldWdWRDd2dlMXh1SUNBZ0lDQWdabTl1ZEZOcGVtVTZJRzVsZUhSR2IyNTBMbk5wZW1Vc1hHNGdJQ0FnSUNCM2FXUjBhRG9nYm1WNGRGZHBaSFJvTEZ4dUlDQWdJQ0FnYUdWcFoyaDBPaUJ1WlhoMFNHVnBaMmgwTEZ4dUlDQWdJQ0FnWW1GelpXeHBibVU2SUc1bGVIUkdiMjUwTG1KaGMyVnNhVzVsTEZ4dUlDQWdJQ0FnZURvZ2JtVjRkRVZzWlcxbGJuUllMRnh1SUNBZ0lDQWdlVG9nYm1WNGRFVnNaVzFsYm5SWkxGeHVJQ0FnSUgwcE8xeHVJQ0I5WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2NtVnphWHBsVTJsdVoyeGxSV3hsYldWdWRDQTlJQ2hjYmlBZ2MzUmhkR1ZCZEZKbGMybDZaVk4wWVhKME9pQk9iMjVFWld4bGRHVmtSWGhqWVd4cFpISmhkMFZzWlcxbGJuUXNYRzRnSUhOb2IzVnNaRTFoYVc1MFlXbHVRWE53WldOMFVtRjBhVzg2SUdKdmIyeGxZVzRzWEc0Z0lHVnNaVzFsYm5RNklFNXZia1JsYkdWMFpXUkZlR05oYkdsa2NtRjNSV3hsYldWdWRDeGNiaUFnZEhKaGJuTm1iM0p0U0dGdVpHeGxSR2x5WldOMGFXOXVPaUJVY21GdWMyWnZjbTFJWVc1a2JHVkVhWEpsWTNScGIyNHNYRzRnSUhOb2IzVnNaRkpsYzJsNlpVWnliMjFEWlc1MFpYSTZJR0p2YjJ4bFlXNHNYRzRnSUhCdmFXNTBaWEpZT2lCdWRXMWlaWElzWEc0Z0lIQnZhVzUwWlhKWk9pQnVkVzFpWlhJc1hHNHBJRDArSUh0Y2JpQWdMeThnUjJWMGN5QmliM1Z1WkhNZ1kyOXlibVZ5YzF4dUlDQmpiMjV6ZENCYmVERXNJSGt4TENCNE1pd2dlVEpkSUQwZ1oyVjBVbVZ6YVhwbFpFVnNaVzFsYm5SQlluTnZiSFYwWlVOdmIzSmtjeWhjYmlBZ0lDQnpkR0YwWlVGMFVtVnphWHBsVTNSaGNuUXNYRzRnSUNBZ2MzUmhkR1ZCZEZKbGMybDZaVk4wWVhKMExuZHBaSFJvTEZ4dUlDQWdJSE4wWVhSbFFYUlNaWE5wZW1WVGRHRnlkQzVvWldsbmFIUXNYRzRnSUNrN1hHNGdJR052Ym5OMElITjBZWEowVkc5d1RHVm1kRG9nVUc5cGJuUWdQU0JiZURFc0lIa3hYVHRjYmlBZ1kyOXVjM1FnYzNSaGNuUkNiM1IwYjIxU2FXZG9kRG9nVUc5cGJuUWdQU0JiZURJc0lIa3lYVHRjYmlBZ1kyOXVjM1FnYzNSaGNuUkRaVzUwWlhJNklGQnZhVzUwSUQwZ1kyVnVkR1Z5VUc5cGJuUW9jM1JoY25SVWIzQk1aV1owTENCemRHRnlkRUp2ZEhSdmJWSnBaMmgwS1R0Y2JseHVJQ0F2THlCRFlXeGpkV3hoZEdVZ2JtVjNJR1JwYldWdWMybHZibk1nWW1GelpXUWdiMjRnWTNWeWMyOXlJSEJ2YzJsMGFXOXVYRzRnSUdOdmJuTjBJSEp2ZEdGMFpXUlFiMmx1ZEdWeUlEMGdjbTkwWVhSbFVHOXBiblFvWEc0Z0lDQWdXM0J2YVc1MFpYSllMQ0J3YjJsdWRHVnlXVjBzWEc0Z0lDQWdjM1JoY25SRFpXNTBaWElzWEc0Z0lDQWdMWE4wWVhSbFFYUlNaWE5wZW1WVGRHRnlkQzVoYm1kc1pTeGNiaUFnS1R0Y2JseHVJQ0F2THlCSFpYUWdZbTkxYm1SeklHTnZjbTVsY25NZ2NtVnVaR1Z5WldRZ2IyNGdjMk55WldWdVhHNGdJR052Ym5OMElGdGxjM2d4TENCbGMza3hMQ0JsYzNneUxDQmxjM2t5WFNBOUlHZGxkRkpsYzJsNlpXUkZiR1Z0Wlc1MFFXSnpiMngxZEdWRGIyOXlaSE1vWEc0Z0lDQWdaV3hsYldWdWRDeGNiaUFnSUNCbGJHVnRaVzUwTG5kcFpIUm9MRnh1SUNBZ0lHVnNaVzFsYm5RdWFHVnBaMmgwTEZ4dUlDQXBPMXh1WEc0Z0lHTnZibk4wSUdKdmRXNWtWR1Y0ZEVWc1pXMWxiblJKWkNBOUlHZGxkRUp2ZFc1a1ZHVjRkRVZzWlcxbGJuUkpaQ2hsYkdWdFpXNTBLVHRjYmx4dUlDQmpiMjV6ZENCaWIzVnVaSE5EZFhKeVpXNTBWMmxrZEdnZ1BTQmxjM2d5SUMwZ1pYTjRNVHRjYmlBZ1kyOXVjM1FnWW05MWJtUnpRM1Z5Y21WdWRFaGxhV2RvZENBOUlHVnplVElnTFNCbGMza3hPMXh1WEc0Z0lDOHZJRWwwSjNNZ2FXMXdiM0owWVc1MElIZGxJSE5sZENCMGFHVWdhVzVwZEdsaGJDQnpZMkZzWlNCMllXeDFaU0JpWVhObFpDQnZiaUIwYUdVZ2QybGtkR2dnWVc1a0lHaGxhV2RvZENCaGRDQnlaWE5wZW1VZ2MzUmhjblFzWEc0Z0lDOHZJRzkwYUdWeWQybHpaU0J3Y21WMmFXOTFjeUJrYVcxbGJuTnBiMjV6SUdGbVptVmpkR1ZrSUdKNUlHMXZaR2xtYVdWeWN5QjNhV3hzSUdKbElIUmhhMlZ1SUdsdWRHOGdZV05qYjNWdWRDNWNiaUFnWTI5dWMzUWdZWFJUZEdGeWRFSnZkVzVrYzFkcFpIUm9JRDBnYzNSaGNuUkNiM1IwYjIxU2FXZG9kRnN3WFNBdElITjBZWEowVkc5d1RHVm1kRnN3WFR0Y2JpQWdZMjl1YzNRZ1lYUlRkR0Z5ZEVKdmRXNWtjMGhsYVdkb2RDQTlJSE4wWVhKMFFtOTBkRzl0VW1sbmFIUmJNVjBnTFNCemRHRnlkRlJ2Y0V4bFpuUmJNVjA3WEc0Z0lHeGxkQ0J6WTJGc1pWZ2dQU0JoZEZOMFlYSjBRbTkxYm1SelYybGtkR2dnTHlCaWIzVnVaSE5EZFhKeVpXNTBWMmxrZEdnN1hHNGdJR3hsZENCelkyRnNaVmtnUFNCaGRGTjBZWEowUW05MWJtUnpTR1ZwWjJoMElDOGdZbTkxYm1SelEzVnljbVZ1ZEVobGFXZG9kRHRjYmx4dUlDQnBaaUFvZEhKaGJuTm1iM0p0U0dGdVpHeGxSR2x5WldOMGFXOXVMbWx1WTJ4MVpHVnpLRndpWlZ3aUtTa2dlMXh1SUNBZ0lITmpZV3hsV0NBOUlDaHliM1JoZEdWa1VHOXBiblJsY2xzd1hTQXRJSE4wWVhKMFZHOXdUR1ZtZEZzd1hTa2dMeUJpYjNWdVpITkRkWEp5Wlc1MFYybGtkR2c3WEc0Z0lIMWNiaUFnYVdZZ0tIUnlZVzV6Wm05eWJVaGhibVJzWlVScGNtVmpkR2x2Ymk1cGJtTnNkV1JsY3loY0luTmNJaWtwSUh0Y2JpQWdJQ0J6WTJGc1pWa2dQU0FvY205MFlYUmxaRkJ2YVc1MFpYSmJNVjBnTFNCemRHRnlkRlJ2Y0V4bFpuUmJNVjBwSUM4Z1ltOTFibVJ6UTNWeWNtVnVkRWhsYVdkb2REdGNiaUFnZlZ4dUlDQnBaaUFvZEhKaGJuTm1iM0p0U0dGdVpHeGxSR2x5WldOMGFXOXVMbWx1WTJ4MVpHVnpLRndpZDF3aUtTa2dlMXh1SUNBZ0lITmpZV3hsV0NBOUlDaHpkR0Z5ZEVKdmRIUnZiVkpwWjJoMFd6QmRJQzBnY205MFlYUmxaRkJ2YVc1MFpYSmJNRjBwSUM4Z1ltOTFibVJ6UTNWeWNtVnVkRmRwWkhSb08xeHVJQ0I5WEc0Z0lHbG1JQ2gwY21GdWMyWnZjbTFJWVc1a2JHVkVhWEpsWTNScGIyNHVhVzVqYkhWa1pYTW9YQ0p1WENJcEtTQjdYRzRnSUNBZ2MyTmhiR1ZaSUQwZ0tITjBZWEowUW05MGRHOXRVbWxuYUhSYk1WMGdMU0J5YjNSaGRHVmtVRzlwYm5SbGNsc3hYU2tnTHlCaWIzVnVaSE5EZFhKeVpXNTBTR1ZwWjJoME8xeHVJQ0I5WEc0Z0lDOHZJRXhwYm1WaGNpQmxiR1Z0Wlc1MGN5QmthVzFsYm5OcGIyNXpJR1JwWm1abGNpQm1jbTl0SUdKdmRXNWtjeUJrYVcxbGJuTnBiMjV6WEc0Z0lHTnZibk4wSUdWc1pVbHVhWFJwWVd4WGFXUjBhQ0E5SUhOMFlYUmxRWFJTWlhOcGVtVlRkR0Z5ZEM1M2FXUjBhRHRjYmlBZ1kyOXVjM1FnWld4bFNXNXBkR2xoYkVobGFXZG9kQ0E5SUhOMFlYUmxRWFJTWlhOcGVtVlRkR0Z5ZEM1b1pXbG5hSFE3WEc0Z0lDOHZJRmRsSUdoaGRtVWdkRzhnZFhObElHUnBiV1Z1YzJsdmJuTWdiMllnWld4bGJXVnVkQ0J2YmlCelkzSmxaVzRzSUc5MGFHVnlkMmx6WlNCMGFHVWdjMk5oYkdsdVp5QnZaaUIwYUdWY2JpQWdMeThnWkdsdFpXNXphVzl1Y3lCM2IyNG5kQ0J0WVhSamFDQjBhR1VnWTNWeWMyOXlJR1p2Y2lCc2FXNWxZWElnWld4bGJXVnVkSE11WEc0Z0lHeGxkQ0JsYkdWT1pYZFhhV1IwYUNBOUlHVnNaVzFsYm5RdWQybGtkR2dnS2lCelkyRnNaVmc3WEc0Z0lHeGxkQ0JsYkdWT1pYZElaV2xuYUhRZ1BTQmxiR1Z0Wlc1MExtaGxhV2RvZENBcUlITmpZV3hsV1R0Y2JseHVJQ0F2THlCaFpHcDFjM1FnWkdsdFpXNXphVzl1Y3lCbWIzSWdjbVZ6YVhwcGJtY2dabkp2YlNCalpXNTBaWEpjYmlBZ2FXWWdLSE5vYjNWc1pGSmxjMmw2WlVaeWIyMURaVzUwWlhJcElIdGNiaUFnSUNCbGJHVk9aWGRYYVdSMGFDQTlJRElnS2lCbGJHVk9aWGRYYVdSMGFDQXRJR1ZzWlVsdWFYUnBZV3hYYVdSMGFEdGNiaUFnSUNCbGJHVk9aWGRJWldsbmFIUWdQU0F5SUNvZ1pXeGxUbVYzU0dWcFoyaDBJQzBnWld4bFNXNXBkR2xoYkVobGFXZG9kRHRjYmlBZ2ZWeHVYRzRnSUM4dklHRmthblZ6ZENCa2FXMWxibk5wYjI1eklIUnZJR3RsWlhBZ2MybGtaWE1nY21GMGFXOWNiaUFnYVdZZ0tITm9iM1ZzWkUxaGFXNTBZV2x1UVhOd1pXTjBVbUYwYVc4cElIdGNiaUFnSUNCamIyNXpkQ0IzYVdSMGFGSmhkR2x2SUQwZ1RXRjBhQzVoWW5Nb1pXeGxUbVYzVjJsa2RHZ3BJQzhnWld4bFNXNXBkR2xoYkZkcFpIUm9PMXh1SUNBZ0lHTnZibk4wSUdobGFXZG9kRkpoZEdsdklEMGdUV0YwYUM1aFluTW9aV3hsVG1WM1NHVnBaMmgwS1NBdklHVnNaVWx1YVhScFlXeElaV2xuYUhRN1hHNGdJQ0FnYVdZZ0tIUnlZVzV6Wm05eWJVaGhibVJzWlVScGNtVmpkR2x2Ymk1c1pXNW5kR2dnUFQwOUlERXBJSHRjYmlBZ0lDQWdJR1ZzWlU1bGQwaGxhV2RvZENBcVBTQjNhV1IwYUZKaGRHbHZPMXh1SUNBZ0lDQWdaV3hsVG1WM1YybGtkR2dnS2owZ2FHVnBaMmgwVW1GMGFXODdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaDBjbUZ1YzJadmNtMUlZVzVrYkdWRWFYSmxZM1JwYjI0dWJHVnVaM1JvSUQwOVBTQXlLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnlZWFJwYnlBOUlFMWhkR2d1YldGNEtIZHBaSFJvVW1GMGFXOHNJR2hsYVdkb2RGSmhkR2x2S1R0Y2JpQWdJQ0FnSUdWc1pVNWxkMWRwWkhSb0lEMGdaV3hsU1c1cGRHbGhiRmRwWkhSb0lDb2djbUYwYVc4Z0tpQk5ZWFJvTG5OcFoyNG9aV3hsVG1WM1YybGtkR2dwTzF4dUlDQWdJQ0FnWld4bFRtVjNTR1ZwWjJoMElEMGdaV3hsU1c1cGRHbGhiRWhsYVdkb2RDQXFJSEpoZEdsdklDb2dUV0YwYUM1emFXZHVLR1ZzWlU1bGQwaGxhV2RvZENrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnVzI1bGQwSnZkVzVrYzFneExDQnVaWGRDYjNWdVpITlpNU3dnYm1WM1FtOTFibVJ6V0RJc0lHNWxkMEp2ZFc1a2Mxa3lYU0E5WEc0Z0lDQWdaMlYwVW1WemFYcGxaRVZzWlcxbGJuUkJZbk52YkhWMFpVTnZiM0prY3loY2JpQWdJQ0FnSUhOMFlYUmxRWFJTWlhOcGVtVlRkR0Z5ZEN4Y2JpQWdJQ0FnSUdWc1pVNWxkMWRwWkhSb0xGeHVJQ0FnSUNBZ1pXeGxUbVYzU0dWcFoyaDBMRnh1SUNBZ0lDazdYRzRnSUdOdmJuTjBJRzVsZDBKdmRXNWtjMWRwWkhSb0lEMGdibVYzUW05MWJtUnpXRElnTFNCdVpYZENiM1Z1WkhOWU1UdGNiaUFnWTI5dWMzUWdibVYzUW05MWJtUnpTR1ZwWjJoMElEMGdibVYzUW05MWJtUnpXVElnTFNCdVpYZENiM1Z1WkhOWk1UdGNibHh1SUNBdkx5QmtiMjRuZENCaGJHeHZkeUJ5WlhOcGVtVWdkRzhnYm1WbllYUnBkbVVnWkdsdFpXNXphVzl1Y3lCM2FHVnVJSFJsZUhRZ2FYTWdZbTkxYm1SbFpDQjBieUJqYjI1MFlXbHVaWEpjYmlBZ2FXWWdLQ2h1WlhkQ2IzVnVaSE5YYVdSMGFDQThJREFnZkh3Z2JtVjNRbTkxYm1SelNHVnBaMmgwSUR3Z01Da2dKaVlnWW05MWJtUlVaWGgwUld4bGJXVnVkRWxrS1NCN1hHNGdJQ0FnY21WMGRYSnVPMXh1SUNCOVhHNWNiaUFnTHk4Z1EyRnNZM1ZzWVhSbElHNWxkeUIwYjNCTVpXWjBJR0poYzJWa0lHOXVJR1pwZUdWa0lHTnZjbTVsY2lCa2RYSnBibWNnY21WemFYcGxYRzRnSUd4bGRDQnVaWGRVYjNCTVpXWjBJRDBnV3k0dUxuTjBZWEowVkc5d1RHVm1kRjBnWVhNZ1cyNTFiV0psY2l3Z2JuVnRZbVZ5WFR0Y2JpQWdhV1lnS0Z0Y0ltNWNJaXdnWENKM1hDSXNJRndpYm5kY0lsMHVhVzVqYkhWa1pYTW9kSEpoYm5ObWIzSnRTR0Z1Wkd4bFJHbHlaV04wYVc5dUtTa2dlMXh1SUNBZ0lHNWxkMVJ2Y0V4bFpuUWdQU0JiWEc0Z0lDQWdJQ0J6ZEdGeWRFSnZkSFJ2YlZKcFoyaDBXekJkSUMwZ1RXRjBhQzVoWW5Nb2JtVjNRbTkxYm1SelYybGtkR2dwTEZ4dUlDQWdJQ0FnYzNSaGNuUkNiM1IwYjIxU2FXZG9kRnN4WFNBdElFMWhkR2d1WVdKektHNWxkMEp2ZFc1a2MwaGxhV2RvZENrc1hHNGdJQ0FnWFR0Y2JpQWdmVnh1SUNCcFppQW9kSEpoYm5ObWIzSnRTR0Z1Wkd4bFJHbHlaV04wYVc5dUlEMDlQU0JjSW01bFhDSXBJSHRjYmlBZ0lDQmpiMjV6ZENCaWIzUjBiMjFNWldaMElEMGdXM04wWVhKMFZHOXdUR1ZtZEZzd1hTd2djM1JoY25SQ2IzUjBiMjFTYVdkb2RGc3hYVjA3WEc0Z0lDQWdibVYzVkc5d1RHVm1kQ0E5SUZ0aWIzUjBiMjFNWldaMFd6QmRMQ0JpYjNSMGIyMU1aV1owV3pGZElDMGdUV0YwYUM1aFluTW9ibVYzUW05MWJtUnpTR1ZwWjJoMEtWMDdYRzRnSUgxY2JpQWdhV1lnS0hSeVlXNXpabTl5YlVoaGJtUnNaVVJwY21WamRHbHZiaUE5UFQwZ1hDSnpkMXdpS1NCN1hHNGdJQ0FnWTI5dWMzUWdkRzl3VW1sbmFIUWdQU0JiYzNSaGNuUkNiM1IwYjIxU2FXZG9kRnN3WFN3Z2MzUmhjblJVYjNCTVpXWjBXekZkWFR0Y2JpQWdJQ0J1WlhkVWIzQk1aV1owSUQwZ1czUnZjRkpwWjJoMFd6QmRJQzBnVFdGMGFDNWhZbk1vYm1WM1FtOTFibVJ6VjJsa2RHZ3BMQ0IwYjNCU2FXZG9kRnN4WFYwN1hHNGdJSDFjYmx4dUlDQXZMeUJMWldWd2N5QnZjSEJ2YzJsMFpTQm9ZVzVrYkdVZ1ptbDRaV1FnWkhWeWFXNW5JSEpsYzJsNlpWeHVJQ0JwWmlBb2MyaHZkV3hrVFdGcGJuUmhhVzVCYzNCbFkzUlNZWFJwYnlrZ2UxeHVJQ0FnSUdsbUlDaGJYQ0p6WENJc0lGd2libHdpWFM1cGJtTnNkV1JsY3loMGNtRnVjMlp2Y20xSVlXNWtiR1ZFYVhKbFkzUnBiMjRwS1NCN1hHNGdJQ0FnSUNCdVpYZFViM0JNWldaMFd6QmRJRDBnYzNSaGNuUkRaVzUwWlhKYk1GMGdMU0J1WlhkQ2IzVnVaSE5YYVdSMGFDQXZJREk3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hiWENKbFhDSXNJRndpZDF3aVhTNXBibU5zZFdSbGN5aDBjbUZ1YzJadmNtMUlZVzVrYkdWRWFYSmxZM1JwYjI0cEtTQjdYRzRnSUNBZ0lDQnVaWGRVYjNCTVpXWjBXekZkSUQwZ2MzUmhjblJEWlc1MFpYSmJNVjBnTFNCdVpYZENiM1Z1WkhOSVpXbG5hSFFnTHlBeU8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHZJRVpzYVhBZ2FHOXlhWHB2Ym5SaGJHeDVYRzRnSUdsbUlDaGxiR1ZPWlhkWGFXUjBhQ0E4SURBcElIdGNiaUFnSUNCcFppQW9kSEpoYm5ObWIzSnRTR0Z1Wkd4bFJHbHlaV04wYVc5dUxtbHVZMngxWkdWektGd2laVndpS1NrZ2UxeHVJQ0FnSUNBZ2JtVjNWRzl3VEdWbWRGc3dYU0F0UFNCTllYUm9MbUZpY3lodVpYZENiM1Z1WkhOWGFXUjBhQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2gwY21GdWMyWnZjbTFJWVc1a2JHVkVhWEpsWTNScGIyNHVhVzVqYkhWa1pYTW9YQ0ozWENJcEtTQjdYRzRnSUNBZ0lDQnVaWGRVYjNCTVpXWjBXekJkSUNzOUlFMWhkR2d1WVdKektHNWxkMEp2ZFc1a2MxZHBaSFJvS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNiaUFnTHk4Z1JteHBjQ0IyWlhKMGFXTmhiR3g1WEc0Z0lHbG1JQ2hsYkdWT1pYZElaV2xuYUhRZ1BDQXdLU0I3WEc0Z0lDQWdhV1lnS0hSeVlXNXpabTl5YlVoaGJtUnNaVVJwY21WamRHbHZiaTVwYm1Oc2RXUmxjeWhjSW5OY0lpa3BJSHRjYmlBZ0lDQWdJRzVsZDFSdmNFeGxablJiTVYwZ0xUMGdUV0YwYUM1aFluTW9ibVYzUW05MWJtUnpTR1ZwWjJoMEtUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tIUnlZVzV6Wm05eWJVaGhibVJzWlVScGNtVmpkR2x2Ymk1cGJtTnNkV1JsY3loY0ltNWNJaWtwSUh0Y2JpQWdJQ0FnSUc1bGQxUnZjRXhsWm5SYk1WMGdLejBnVFdGMGFDNWhZbk1vYm1WM1FtOTFibVJ6U0dWcFoyaDBLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JwWmlBb2MyaHZkV3hrVW1WemFYcGxSbkp2YlVObGJuUmxjaWtnZTF4dUlDQWdJRzVsZDFSdmNFeGxablJiTUYwZ1BTQnpkR0Z5ZEVObGJuUmxjbHN3WFNBdElFMWhkR2d1WVdKektHNWxkMEp2ZFc1a2MxZHBaSFJvS1NBdklESTdYRzRnSUNBZ2JtVjNWRzl3VEdWbWRGc3hYU0E5SUhOMFlYSjBRMlZ1ZEdWeVd6RmRJQzBnVFdGMGFDNWhZbk1vYm1WM1FtOTFibVJ6U0dWcFoyaDBLU0F2SURJN1hHNGdJSDFjYmx4dUlDQXZMeUJoWkdwMWMzUWdkRzl3VEdWbWRDQjBieUJ1WlhjZ2NtOTBZWFJwYjI0Z2NHOXBiblJjYmlBZ1kyOXVjM1FnWVc1bmJHVWdQU0J6ZEdGMFpVRjBVbVZ6YVhwbFUzUmhjblF1WVc1bmJHVTdYRzRnSUdOdmJuTjBJSEp2ZEdGMFpXUlViM0JNWldaMElEMGdjbTkwWVhSbFVHOXBiblFvYm1WM1ZHOXdUR1ZtZEN3Z2MzUmhjblJEWlc1MFpYSXNJR0Z1WjJ4bEtUdGNiaUFnWTI5dWMzUWdibVYzUTJWdWRHVnlPaUJRYjJsdWRDQTlJRnRjYmlBZ0lDQnVaWGRVYjNCTVpXWjBXekJkSUNzZ1RXRjBhQzVoWW5Nb2JtVjNRbTkxYm1SelYybGtkR2dwSUM4Z01peGNiaUFnSUNCdVpYZFViM0JNWldaMFd6RmRJQ3NnVFdGMGFDNWhZbk1vYm1WM1FtOTFibVJ6U0dWcFoyaDBLU0F2SURJc1hHNGdJRjA3WEc0Z0lHTnZibk4wSUhKdmRHRjBaV1JPWlhkRFpXNTBaWElnUFNCeWIzUmhkR1ZRYjJsdWRDaHVaWGREWlc1MFpYSXNJSE4wWVhKMFEyVnVkR1Z5TENCaGJtZHNaU2s3WEc0Z0lHNWxkMVJ2Y0V4bFpuUWdQU0J5YjNSaGRHVlFiMmx1ZENoeWIzUmhkR1ZrVkc5d1RHVm1kQ3dnY205MFlYUmxaRTVsZDBObGJuUmxjaXdnTFdGdVoyeGxLVHRjYmx4dUlDQXZMeUJTWldGa2FuVnpkQ0J3YjJsdWRITWdabTl5SUd4cGJtVmhjaUJsYkdWdFpXNTBjMXh1SUNCamIyNXpkQ0J5WlhOallXeGxaRkJ2YVc1MGN5QTlJSEpsYzJOaGJHVlFiMmx1ZEhOSmJrVnNaVzFsYm5Rb1hHNGdJQ0FnYzNSaGRHVkJkRkpsYzJsNlpWTjBZWEowTEZ4dUlDQWdJR1ZzWlU1bGQxZHBaSFJvTEZ4dUlDQWdJR1ZzWlU1bGQwaGxhV2RvZEN4Y2JpQWdLVHRjYmlBZ0x5OGdSbTl5SUd4cGJtVmhjaUJsYkdWdFpXNTBjeUFvZUN4NUtTQmhjbVVnZEdobElHTnZiM0prYVc1aGRHVnpJRzltSUhSb1pTQm1hWEp6ZENCa2NtRjNiaUJ3YjJsdWRDQnViM1FnZEdobElIUnZjQzFzWldaMElHTnZjbTVsY2x4dUlDQXZMeUJUYnlCM1pTQnVaV1ZrSUhSdklISmxZV1JxZFhOMElDaDRMSGtwSUhSdklHSmxJSGRvWlhKbElIUm9aU0JtYVhKemRDQndiMmx1ZENCemFHOTFiR1FnWW1WY2JpQWdZMjl1YzNRZ2JtVjNUM0pwWjJsdUlEMGdXeTR1TG01bGQxUnZjRXhsWm5SZE8xeHVJQ0J1WlhkUGNtbG5hVzViTUYwZ0t6MGdjM1JoZEdWQmRGSmxjMmw2WlZOMFlYSjBMbmdnTFNCdVpYZENiM1Z1WkhOWU1UdGNiaUFnYm1WM1QzSnBaMmx1V3pGZElDczlJSE4wWVhSbFFYUlNaWE5wZW1WVGRHRnlkQzU1SUMwZ2JtVjNRbTkxYm1SeldURTdYRzVjYmlBZ1kyOXVjM1FnY21WemFYcGxaRVZzWlcxbGJuUWdQU0I3WEc0Z0lDQWdkMmxrZEdnNklFMWhkR2d1WVdKektHVnNaVTVsZDFkcFpIUm9LU3hjYmlBZ0lDQm9aV2xuYUhRNklFMWhkR2d1WVdKektHVnNaVTVsZDBobGFXZG9kQ2tzWEc0Z0lDQWdlRG9nYm1WM1QzSnBaMmx1V3pCZExGeHVJQ0FnSUhrNklHNWxkMDl5YVdkcGJsc3hYU3hjYmlBZ0lDQXVMaTV5WlhOallXeGxaRkJ2YVc1MGN5eGNiaUFnZlR0Y2JseHVJQ0JwWmlBb1hDSnpZMkZzWlZ3aUlHbHVJR1ZzWlcxbGJuUWdKaVlnWENKelkyRnNaVndpSUdsdUlITjBZWFJsUVhSU1pYTnBlbVZUZEdGeWRDa2dlMXh1SUNBZ0lHMTFkR0YwWlVWc1pXMWxiblFvWld4bGJXVnVkQ3dnZTF4dUlDQWdJQ0FnYzJOaGJHVTZJRnRjYmlBZ0lDQWdJQ0FnTHk4Z1pHVm1ZWFZzZEdsdVp5QmlaV05oZFhObElITmpZV3hsV0M5WklHTmhiaUJpWlNBd0x5MHdYRzRnSUNBZ0lDQWdJQ2hOWVhSb0xuTnBaMjRvYzJOaGJHVllLU0I4ZkNCemRHRjBaVUYwVW1WemFYcGxVM1JoY25RdWMyTmhiR1ZiTUYwcElDcGNiaUFnSUNBZ0lDQWdJQ0J6ZEdGMFpVRjBVbVZ6YVhwbFUzUmhjblF1YzJOaGJHVmJNRjBzWEc0Z0lDQWdJQ0FnSUNoTllYUm9Mbk5wWjI0b2MyTmhiR1ZaS1NCOGZDQnpkR0YwWlVGMFVtVnphWHBsVTNSaGNuUXVjMk5oYkdWYk1WMHBJQ3BjYmlBZ0lDQWdJQ0FnSUNCemRHRjBaVUYwVW1WemFYcGxVM1JoY25RdWMyTmhiR1ZiTVYwc1hHNGdJQ0FnSUNCZExGeHVJQ0FnSUgwcE8xeHVJQ0I5WEc0Z0lHeGxkQ0J0YVc1WGFXUjBhQ0E5SURBN1hHNGdJR052Ym5OMElHSnZkVzVrVkdWNGRFVnNaVzFsYm5RZ1BTQm5aWFJDYjNWdVpGUmxlSFJGYkdWdFpXNTBLR1ZzWlcxbGJuUXBPMXh1SUNCcFppQW9ZbTkxYm1SVVpYaDBSV3hsYldWdWRDa2dlMXh1SUNBZ0lHMXBibGRwWkhSb0lEMGdaMlYwUVhCd2NtOTRUV2x1VEdsdVpWZHBaSFJvS0dkbGRFWnZiblJUZEhKcGJtY29ZbTkxYm1SVVpYaDBSV3hsYldWdWRDa3BPMXh1SUNCOVhHNGdJR2xtSUNoY2JpQWdJQ0J5WlhOcGVtVmtSV3hsYldWdWRDNTNhV1IwYUNBK1BTQnRhVzVYYVdSMGFDQW1KbHh1SUNBZ0lISmxjMmw2WldSRmJHVnRaVzUwTG1obGFXZG9kQ0FoUFQwZ01DQW1KbHh1SUNBZ0lFNTFiV0psY2k1cGMwWnBibWwwWlNoeVpYTnBlbVZrUld4bGJXVnVkQzU0S1NBbUpseHVJQ0FnSUU1MWJXSmxjaTVwYzBacGJtbDBaU2h5WlhOcGVtVmtSV3hsYldWdWRDNTVLVnh1SUNBcElIdGNiaUFnSUNCMWNHUmhkR1ZDYjNWdVpFVnNaVzFsYm5SektHVnNaVzFsYm5Rc0lIdGNiaUFnSUNBZ0lHNWxkMU5wZW1VNklIc2dkMmxrZEdnNklISmxjMmw2WldSRmJHVnRaVzUwTG5kcFpIUm9MQ0JvWldsbmFIUTZJSEpsYzJsNlpXUkZiR1Z0Wlc1MExtaGxhV2RvZENCOUxGeHVJQ0FnSUgwcE8xeHVJQ0FnSUcxMWRHRjBaVVZzWlcxbGJuUW9aV3hsYldWdWRDd2djbVZ6YVhwbFpFVnNaVzFsYm5RcE8xeHVJQ0FnSUdoaGJtUnNaVUpwYm1SVVpYaDBVbVZ6YVhwbEtGdGxiR1Z0Wlc1MFhTd2dkSEpoYm5ObWIzSnRTR0Z1Wkd4bFJHbHlaV04wYVc5dUtUdGNiaUFnZlZ4dWZUdGNibHh1WTI5dWMzUWdjbVZ6YVhwbFRYVnNkR2x3YkdWRmJHVnRaVzUwY3lBOUlDaGNiaUFnWld4bGJXVnVkSE02SUhKbFlXUnZibXg1SUU1dmJrUmxiR1YwWldSRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZExGeHVJQ0IwY21GdWMyWnZjbTFJWVc1a2JHVlVlWEJsT2lCY0ltNTNYQ0lnZkNCY0ltNWxYQ0lnZkNCY0luTjNYQ0lnZkNCY0luTmxYQ0lzWEc0Z0lIQnZhVzUwWlhKWU9pQnVkVzFpWlhJc1hHNGdJSEJ2YVc1MFpYSlpPaUJ1ZFcxaVpYSXNYRzRwSUQwK0lIdGNiaUFnWTI5dWMzUWdXM2d4TENCNU1Td2dlRElzSUhreVhTQTlJR2RsZEVOdmJXMXZia0p2ZFc1a2N5aGxiR1Z0Wlc1MGN5azdYRzRnSUd4bGRDQnpZMkZzWlRvZ2JuVnRZbVZ5TzF4dUlDQnNaWFFnWjJWMFRtVjRkRmhaT2lBb1hHNGdJQ0FnWld4bGJXVnVkRG9nVG05dVJHVnNaWFJsWkVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwTEZ4dUlDQWdJRzl5YVdkRGIyOXlaSE02SUhKbFlXUnZibXg1SUZ0dWRXMWlaWElzSUc1MWJXSmxjaXdnYm5WdFltVnlMQ0J1ZFcxaVpYSmRMRnh1SUNBZ0lHWnBibUZzUTI5dmNtUnpPaUJ5WldGa2IyNXNlU0JiYm5WdFltVnlMQ0J1ZFcxaVpYSXNJRzUxYldKbGNpd2diblZ0WW1WeVhTeGNiaUFnS1NBOVBpQjdJSGc2SUc1MWJXSmxjanNnZVRvZ2JuVnRZbVZ5SUgwN1hHNGdJSE4zYVhSamFDQW9kSEpoYm5ObWIzSnRTR0Z1Wkd4bFZIbHdaU2tnZTF4dUlDQWdJR05oYzJVZ1hDSnpaVndpT2x4dUlDQWdJQ0FnYzJOaGJHVWdQU0JOWVhSb0xtMWhlQ2hjYmlBZ0lDQWdJQ0FnS0hCdmFXNTBaWEpZSUMwZ2VERXBJQzhnS0hneUlDMGdlREVwTEZ4dUlDQWdJQ0FnSUNBb2NHOXBiblJsY2xrZ0xTQjVNU2tnTHlBb2VUSWdMU0I1TVNrc1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ1oyVjBUbVY0ZEZoWklEMGdLR1ZzWlcxbGJuUXNJRnR2Y21sbldERXNJRzl5YVdkWk1WMHNJRnRtYVc1aGJGZ3hMQ0JtYVc1aGJGa3hYU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCNElEMGdaV3hsYldWdWRDNTRJQ3NnS0c5eWFXZFlNU0F0SUhneEtTQXFJQ2h6WTJGc1pTQXRJREVwSUNzZ2IzSnBaMWd4SUMwZ1ptbHVZV3hZTVR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZVNBOUlHVnNaVzFsYm5RdWVTQXJJQ2h2Y21sbldURWdMU0I1TVNrZ0tpQW9jMk5oYkdVZ0xTQXhLU0FySUc5eWFXZFpNU0F0SUdacGJtRnNXVEU3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3SUhnc0lIa2dmVHRjYmlBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJRndpYm5kY0lqcGNiaUFnSUNBZ0lITmpZV3hsSUQwZ1RXRjBhQzV0WVhnb1hHNGdJQ0FnSUNBZ0lDaDRNaUF0SUhCdmFXNTBaWEpZS1NBdklDaDRNaUF0SUhneEtTeGNiaUFnSUNBZ0lDQWdLSGt5SUMwZ2NHOXBiblJsY2xrcElDOGdLSGt5SUMwZ2VURXBMRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJR2RsZEU1bGVIUllXU0E5SUNobGJHVnRaVzUwTENCYkxDQXNJRzl5YVdkWU1pd2diM0pwWjFreVhTd2dXeXdnTENCbWFXNWhiRmd5TENCbWFXNWhiRmt5WFNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjRJRDBnWld4bGJXVnVkQzU0SUMwZ0tIZ3lJQzBnYjNKcFoxZ3lLU0FxSUNoelkyRnNaU0F0SURFcElDc2diM0pwWjFneUlDMGdabWx1WVd4WU1qdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2VTQTlJR1ZzWlcxbGJuUXVlU0F0SUNoNU1pQXRJRzl5YVdkWk1pa2dLaUFvYzJOaGJHVWdMU0F4S1NBcklHOXlhV2RaTWlBdElHWnBibUZzV1RJN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCN0lIZ3NJSGtnZlR0Y2JpQWdJQ0FnSUgwN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmpZWE5sSUZ3aWJtVmNJanBjYmlBZ0lDQWdJSE5qWVd4bElEMGdUV0YwYUM1dFlYZ29YRzRnSUNBZ0lDQWdJQ2h3YjJsdWRHVnlXQ0F0SUhneEtTQXZJQ2g0TWlBdElIZ3hLU3hjYmlBZ0lDQWdJQ0FnS0hreUlDMGdjRzlwYm5SbGNsa3BJQzhnS0hreUlDMGdlVEVwTEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUdkbGRFNWxlSFJZV1NBOUlDaGxiR1Z0Wlc1MExDQmJiM0pwWjFneExDQXNJQ3dnYjNKcFoxa3lYU3dnVzJacGJtRnNXREVzSUN3Z0xDQm1hVzVoYkZreVhTa2dQVDRnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0I0SUQwZ1pXeGxiV1Z1ZEM1NElDc2dLRzl5YVdkWU1TQXRJSGd4S1NBcUlDaHpZMkZzWlNBdElERXBJQ3NnYjNKcFoxZ3hJQzBnWm1sdVlXeFlNVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdlU0E5SUdWc1pXMWxiblF1ZVNBdElDaDVNaUF0SUc5eWFXZFpNaWtnS2lBb2MyTmhiR1VnTFNBeEtTQXJJRzl5YVdkWk1pQXRJR1pwYm1Gc1dUSTdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjdJSGdzSUhrZ2ZUdGNiaUFnSUNBZ0lIMDdYRzRnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0JqWVhObElGd2ljM2RjSWpwY2JpQWdJQ0FnSUhOallXeGxJRDBnVFdGMGFDNXRZWGdvWEc0Z0lDQWdJQ0FnSUNoNE1pQXRJSEJ2YVc1MFpYSllLU0F2SUNoNE1pQXRJSGd4S1N4Y2JpQWdJQ0FnSUNBZ0tIQnZhVzUwWlhKWklDMGdlVEVwSUM4Z0tIa3lJQzBnZVRFcExGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lHZGxkRTVsZUhSWVdTQTlJQ2hsYkdWdFpXNTBMQ0JiTENCdmNtbG5XVEVzSUc5eWFXZFlNbDBzSUZzc0lHWnBibUZzV1RFc0lHWnBibUZzV0RKZEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSGdnUFNCbGJHVnRaVzUwTG5nZ0xTQW9lRElnTFNCdmNtbG5XRElwSUNvZ0tITmpZV3hsSUMwZ01Ta2dLeUJ2Y21sbldESWdMU0JtYVc1aGJGZ3lPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjVJRDBnWld4bGJXVnVkQzU1SUNzZ0tHOXlhV2RaTVNBdElIa3hLU0FxSUNoelkyRnNaU0F0SURFcElDc2diM0pwWjFreElDMGdabWx1WVd4Wk1UdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIc2dlQ3dnZVNCOU8xeHVJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lHSnlaV0ZyTzF4dUlDQjlYRzRnSUdsbUlDaHpZMkZzWlNBK0lEQXBJSHRjYmlBZ0lDQmpiMjV6ZENCMWNHUmhkR1Z6SUQwZ1pXeGxiV1Z1ZEhNdWNtVmtkV05sS0Z4dUlDQWdJQ0FnS0hCeVpYWXNJR1ZzWlcxbGJuUXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0Z3Y21WMktTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSEJ5WlhZN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2QybGtkR2dnUFNCbGJHVnRaVzUwTG5kcFpIUm9JQ29nYzJOaGJHVTdYRzRnSUNBZ0lDQWdJR052Ym5OMElHaGxhV2RvZENBOUlHVnNaVzFsYm5RdWFHVnBaMmgwSUNvZ2MyTmhiR1U3WEc0Z0lDQWdJQ0FnSUd4bGRDQm1iMjUwT2lCN0lHWnZiblJUYVhwbFB6b2diblZ0WW1WeU95QmlZWE5sYkdsdVpUODZJRzUxYldKbGNpQjlJRDBnZTMwN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hwYzFSbGVIUkZiR1Z0Wlc1MEtHVnNaVzFsYm5RcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdibVY0ZEVadmJuUWdQU0J0WldGemRYSmxSbTl1ZEZOcGVtVkdjbTl0VjBnb1pXeGxiV1Z1ZEN3Z2QybGtkR2dzSUdobGFXZG9kQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLRzVsZUhSR2IyNTBJRDA5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdabTl1ZENBOUlIc2dabTl1ZEZOcGVtVTZJRzVsZUhSR2IyNTBMbk5wZW1Vc0lHSmhjMlZzYVc1bE9pQnVaWGgwUm05dWRDNWlZWE5sYkdsdVpTQjlPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzl5YVdkRGIyOXlaSE1nUFNCblpYUkZiR1Z0Wlc1MFFXSnpiMngxZEdWRGIyOXlaSE1vWld4bGJXVnVkQ2s3WEc1Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY21WelkyRnNaV1JRYjJsdWRITWdQU0J5WlhOallXeGxVRzlwYm5SelNXNUZiR1Z0Wlc1MEtHVnNaVzFsYm5Rc0lIZHBaSFJvTENCb1pXbG5hSFFwTzF4dVhHNGdJQ0FnSUNBZ0lIVndaR0YwWlVKdmRXNWtSV3hsYldWdWRITW9aV3hsYldWdWRDd2dlMXh1SUNBZ0lDQWdJQ0FnSUc1bGQxTnBlbVU2SUhzZ2QybGtkR2dzSUdobGFXZG9kQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lITnBiWFZzZEdGdVpXOTFjMng1VlhCa1lYUmxaRG9nWld4bGJXVnVkSE1zWEc0Z0lDQWdJQ0FnSUgwcE8xeHVYRzRnSUNBZ0lDQWdJR052Ym5OMElHWnBibUZzUTI5dmNtUnpJRDBnWjJWMFVtVnphWHBsWkVWc1pXMWxiblJCWW5OdmJIVjBaVU52YjNKa2N5aGNiaUFnSUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXVMaTVsYkdWdFpXNTBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0xpNHVjbVZ6WTJGc1pXUlFiMmx1ZEhNc1hHNGdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnSUNCM2FXUjBhQ3hjYmlBZ0lDQWdJQ0FnSUNCb1pXbG5hSFFzWEc0Z0lDQWdJQ0FnSUNrN1hHNWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2V5QjRMQ0I1SUgwZ1BTQm5aWFJPWlhoMFdGa29aV3hsYldWdWRDd2diM0pwWjBOdmIzSmtjeXdnWm1sdVlXeERiMjl5WkhNcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1d5NHVMbkJ5WlhZc0lIc2dkMmxrZEdnc0lHaGxhV2RvZEN3Z2VDd2dlU3dnTGk0dWNtVnpZMkZzWldSUWIybHVkSE1zSUM0dUxtWnZiblFnZlYwN1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ1cxMGdZWE5jYmlBZ0lDQWdJQ0FnZkNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IzYVdSMGFEb2diblZ0WW1WeU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYUdWcFoyaDBPaUJ1ZFcxaVpYSTdYRzRnSUNBZ0lDQWdJQ0FnSUNCNE9pQnVkVzFpWlhJN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I1T2lCdWRXMWlaWEk3WEc0Z0lDQWdJQ0FnSUNBZ0lDQndiMmx1ZEhNL09pQW9jbVZoWkc5dWJIa2dXMjUxYldKbGNpd2diblZ0WW1WeVhTbGJYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnZiblJUYVhwbFB6b2diblZ0WW1WeU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWW1GelpXeHBibVUvT2lCdWRXMWlaWEk3WEc0Z0lDQWdJQ0FnSUNBZ2ZWdGRYRzRnSUNBZ0lDQWdJSHdnYm5Wc2JDeGNiaUFnSUNBcE8xeHVJQ0FnSUdsbUlDaDFjR1JoZEdWektTQjdYRzRnSUNBZ0lDQmxiR1Z0Wlc1MGN5NW1iM0pGWVdOb0tDaGxiR1Z0Wlc1MExDQnBibVJsZUNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0J0ZFhSaGRHVkZiR1Z0Wlc1MEtHVnNaVzFsYm5Rc0lIVndaR0YwWlhOYmFXNWtaWGhkS1R0Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgxY2JpQWdmVnh1ZlR0Y2JseHVZMjl1YzNRZ2NtOTBZWFJsVFhWc2RHbHdiR1ZGYkdWdFpXNTBjeUE5SUNoY2JpQWdjRzlwYm5SbGNrUnZkMjVUZEdGMFpUb2dVRzlwYm5SbGNrUnZkMjVUZEdGMFpTeGNiaUFnWld4bGJXVnVkSE02SUhKbFlXUnZibXg1SUU1dmJrUmxiR1YwWldSRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZExGeHVJQ0J3YjJsdWRHVnlXRG9nYm5WdFltVnlMRnh1SUNCd2IybHVkR1Z5V1RvZ2JuVnRZbVZ5TEZ4dUlDQnphRzkxYkdSU2IzUmhkR1ZYYVhSb1JHbHpZM0psZEdWQmJtZHNaVG9nWW05dmJHVmhiaXhjYmlBZ1kyVnVkR1Z5V0RvZ2JuVnRZbVZ5TEZ4dUlDQmpaVzUwWlhKWk9pQnVkVzFpWlhJc1hHNHBJRDArSUh0Y2JpQWdiR1YwSUdObGJuUmxja0Z1WjJ4bElEMWNiaUFnSUNBb05TQXFJRTFoZEdndVVFa3BJQzhnTWlBcklFMWhkR2d1WVhSaGJqSW9jRzlwYm5SbGNsa2dMU0JqWlc1MFpYSlpMQ0J3YjJsdWRHVnlXQ0F0SUdObGJuUmxjbGdwTzF4dUlDQnBaaUFvYzJodmRXeGtVbTkwWVhSbFYybDBhRVJwYzJOeVpYUmxRVzVuYkdVcElIdGNiaUFnSUNCalpXNTBaWEpCYm1kc1pTQXJQU0JUU0VsR1ZGOU1UME5MU1U1SFgwRk9SMHhGSUM4Z01qdGNiaUFnSUNCalpXNTBaWEpCYm1kc1pTQXRQU0JqWlc1MFpYSkJibWRzWlNBbElGTklTVVpVWDB4UFEwdEpUa2RmUVU1SFRFVTdYRzRnSUgxY2JpQWdaV3hsYldWdWRITXVabTl5UldGamFDZ29aV3hsYldWdWRDd2dhVzVrWlhncElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCYmVERXNJSGt4TENCNE1pd2dlVEpkSUQwZ1oyVjBSV3hsYldWdWRFRmljMjlzZFhSbFEyOXZjbVJ6S0dWc1pXMWxiblFwTzF4dUlDQWdJR052Ym5OMElHTjRJRDBnS0hneElDc2dlRElwSUM4Z01qdGNiaUFnSUNCamIyNXpkQ0JqZVNBOUlDaDVNU0FySUhreUtTQXZJREk3WEc0Z0lDQWdZMjl1YzNRZ2IzSnBaMEZ1WjJ4bElEMWNiaUFnSUNBZ0lIQnZhVzUwWlhKRWIzZHVVM1JoZEdVdWIzSnBaMmx1WVd4RmJHVnRaVzUwY3k1blpYUW9aV3hsYldWdWRDNXBaQ2svTG1GdVoyeGxJRDgvSUdWc1pXMWxiblF1WVc1bmJHVTdYRzRnSUNBZ1kyOXVjM1FnVzNKdmRHRjBaV1JEV0N3Z2NtOTBZWFJsWkVOWlhTQTlJSEp2ZEdGMFpTaGNiaUFnSUNBZ0lHTjRMRnh1SUNBZ0lDQWdZM2tzWEc0Z0lDQWdJQ0JqWlc1MFpYSllMRnh1SUNBZ0lDQWdZMlZ1ZEdWeVdTeGNiaUFnSUNBZ0lHTmxiblJsY2tGdVoyeGxJQ3NnYjNKcFowRnVaMnhsSUMwZ1pXeGxiV1Z1ZEM1aGJtZHNaU3hjYmlBZ0lDQXBPMXh1SUNBZ0lHMTFkR0YwWlVWc1pXMWxiblFvWld4bGJXVnVkQ3dnZTF4dUlDQWdJQ0FnZURvZ1pXeGxiV1Z1ZEM1NElDc2dLSEp2ZEdGMFpXUkRXQ0F0SUdONEtTeGNiaUFnSUNBZ0lIazZJR1ZzWlcxbGJuUXVlU0FySUNoeWIzUmhkR1ZrUTFrZ0xTQmplU2tzWEc0Z0lDQWdJQ0JoYm1kc1pUb2dibTl5YldGc2FYcGxRVzVuYkdVb1kyVnVkR1Z5UVc1bmJHVWdLeUJ2Y21sblFXNW5iR1VwTEZ4dUlDQWdJSDBwTzF4dUlDQWdJR052Ym5OMElHSnZkVzVrVkdWNGRFVnNaVzFsYm5SSlpDQTlJR2RsZEVKdmRXNWtWR1Y0ZEVWc1pXMWxiblJKWkNobGJHVnRaVzUwS1R0Y2JpQWdJQ0JwWmlBb1ltOTFibVJVWlhoMFJXeGxiV1Z1ZEVsa0tTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCMFpYaDBSV3hsYldWdWRDQTlYRzRnSUNBZ0lDQWdJRk5qWlc1bExtZGxkRk5qWlc1bEtHVnNaVzFsYm5RcElTNW5aWFJGYkdWdFpXNTBLR0p2ZFc1a1ZHVjRkRVZzWlcxbGJuUkpaQ2toTzF4dUlDQWdJQ0FnYlhWMFlYUmxSV3hsYldWdWRDaDBaWGgwUld4bGJXVnVkQ3dnZTF4dUlDQWdJQ0FnSUNCNE9pQjBaWGgwUld4bGJXVnVkQzU0SUNzZ0tISnZkR0YwWldSRFdDQXRJR040S1N4Y2JpQWdJQ0FnSUNBZ2VUb2dkR1Y0ZEVWc1pXMWxiblF1ZVNBcklDaHliM1JoZEdWa1Exa2dMU0JqZVNrc1hHNGdJQ0FnSUNBZ0lHRnVaMnhsT2lCdWIzSnRZV3hwZW1WQmJtZHNaU2hqWlc1MFpYSkJibWRzWlNBcklHOXlhV2RCYm1kc1pTa3NYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzRnSUgwcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2RsZEZKbGMybDZaVTltWm5ObGRGaFpJRDBnS0Z4dUlDQjBjbUZ1YzJadmNtMUlZVzVrYkdWVWVYQmxPaUJOWVhsaVpWUnlZVzV6Wm05eWJVaGhibVJzWlZSNWNHVXNYRzRnSUhObGJHVmpkR1ZrUld4bGJXVnVkSE02SUU1dmJrUmxiR1YwWldSRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZExGeHVJQ0I0T2lCdWRXMWlaWElzWEc0Z0lIazZJRzUxYldKbGNpeGNiaWs2SUZ0dWRXMWlaWElzSUc1MWJXSmxjbDBnUFQ0Z2UxeHVJQ0JqYjI1emRDQmJlREVzSUhreExDQjRNaXdnZVRKZElEMWNiaUFnSUNCelpXeGxZM1JsWkVWc1pXMWxiblJ6TG14bGJtZDBhQ0E5UFQwZ01WeHVJQ0FnSUNBZ1B5Qm5aWFJGYkdWdFpXNTBRV0p6YjJ4MWRHVkRiMjl5WkhNb2MyVnNaV04wWldSRmJHVnRaVzUwYzFzd1hTbGNiaUFnSUNBZ0lEb2daMlYwUTI5dGJXOXVRbTkxYm1SektITmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNcE8xeHVJQ0JqYjI1emRDQmplQ0E5SUNoNE1TQXJJSGd5S1NBdklESTdYRzRnSUdOdmJuTjBJR041SUQwZ0tIa3hJQ3NnZVRJcElDOGdNanRjYmlBZ1kyOXVjM1FnWVc1bmJHVWdQU0J6Wld4bFkzUmxaRVZzWlcxbGJuUnpMbXhsYm1kMGFDQTlQVDBnTVNBL0lITmxiR1ZqZEdWa1JXeGxiV1Z1ZEhOYk1GMHVZVzVuYkdVZ09pQXdPMXh1SUNCYmVDd2dlVjBnUFNCeWIzUmhkR1VvZUN3Z2VTd2dZM2dzSUdONUxDQXRZVzVuYkdVcE8xeHVJQ0J6ZDJsMFkyZ2dLSFJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1VwSUh0Y2JpQWdJQ0JqWVhObElGd2libHdpT2x4dUlDQWdJQ0FnY21WMGRYSnVJSEp2ZEdGMFpTaDRJQzBnS0hneElDc2dlRElwSUM4Z01pd2dlU0F0SUhreExDQXdMQ0F3TENCaGJtZHNaU2s3WEc0Z0lDQWdZMkZ6WlNCY0luTmNJanBjYmlBZ0lDQWdJSEpsZEhWeWJpQnliM1JoZEdVb2VDQXRJQ2g0TVNBcklIZ3lLU0F2SURJc0lIa2dMU0I1TWl3Z01Dd2dNQ3dnWVc1bmJHVXBPMXh1SUNBZ0lHTmhjMlVnWENKM1hDSTZYRzRnSUNBZ0lDQnlaWFIxY200Z2NtOTBZWFJsS0hnZ0xTQjRNU3dnZVNBdElDaDVNU0FySUhreUtTQXZJRElzSURBc0lEQXNJR0Z1WjJ4bEtUdGNiaUFnSUNCallYTmxJRndpWlZ3aU9seHVJQ0FnSUNBZ2NtVjBkWEp1SUhKdmRHRjBaU2g0SUMwZ2VESXNJSGtnTFNBb2VURWdLeUI1TWlrZ0x5QXlMQ0F3TENBd0xDQmhibWRzWlNrN1hHNGdJQ0FnWTJGelpTQmNJbTUzWENJNlhHNGdJQ0FnSUNCeVpYUjFjbTRnY205MFlYUmxLSGdnTFNCNE1Td2dlU0F0SUhreExDQXdMQ0F3TENCaGJtZHNaU2s3WEc0Z0lDQWdZMkZ6WlNCY0ltNWxYQ0k2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbTkwWVhSbEtIZ2dMU0I0TWl3Z2VTQXRJSGt4TENBd0xDQXdMQ0JoYm1kc1pTazdYRzRnSUNBZ1kyRnpaU0JjSW5OM1hDSTZYRzRnSUNBZ0lDQnlaWFIxY200Z2NtOTBZWFJsS0hnZ0xTQjRNU3dnZVNBdElIa3lMQ0F3TENBd0xDQmhibWRzWlNrN1hHNGdJQ0FnWTJGelpTQmNJbk5sWENJNlhHNGdJQ0FnSUNCeVpYUjFjbTRnY205MFlYUmxLSGdnTFNCNE1pd2dlU0F0SUhreUxDQXdMQ0F3TENCaGJtZHNaU2s3WEc0Z0lDQWdaR1ZtWVhWc2REcGNiaUFnSUNBZ0lISmxkSFZ5YmlCYk1Dd2dNRjA3WEc0Z0lIMWNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JuWlhSU1pYTnBlbVZCY25KdmQwUnBjbVZqZEdsdmJpQTlJQ2hjYmlBZ2RISmhibk5tYjNKdFNHRnVaR3hsVkhsd1pUb2dUV0Y1WW1WVWNtRnVjMlp2Y20xSVlXNWtiR1ZVZVhCbExGeHVJQ0JsYkdWdFpXNTBPaUJPYjI1RVpXeGxkR1ZrUEVWNFkyRnNhV1J5WVhkTWFXNWxZWEpGYkdWdFpXNTBQaXhjYmlrNklGd2liM0pwWjJsdVhDSWdmQ0JjSW1WdVpGd2lJRDArSUh0Y2JpQWdZMjl1YzNRZ1d5d2dXM0I0TENCd2VWMWRJRDBnWld4bGJXVnVkQzV3YjJsdWRITTdYRzRnSUdOdmJuTjBJR2x6VW1WemFYcGxSVzVrSUQxY2JpQWdJQ0FvZEhKaGJuTm1iM0p0U0dGdVpHeGxWSGx3WlNBOVBUMGdYQ0p1ZDF3aUlDWW1JQ2h3ZUNBOElEQWdmSHdnY0hrZ1BDQXdLU2tnZkh4Y2JpQWdJQ0FvZEhKaGJuTm1iM0p0U0dGdVpHeGxWSGx3WlNBOVBUMGdYQ0p1WlZ3aUlDWW1JSEI0SUQ0OUlEQXBJSHg4WEc0Z0lDQWdLSFJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1VnUFQwOUlGd2ljM2RjSWlBbUppQndlQ0E4UFNBd0tTQjhmRnh1SUNBZ0lDaDBjbUZ1YzJadmNtMUlZVzVrYkdWVWVYQmxJRDA5UFNCY0luTmxYQ0lnSmlZZ0tIQjRJRDRnTUNCOGZDQndlU0ErSURBcEtUdGNiaUFnY21WMGRYSnVJR2x6VW1WemFYcGxSVzVrSUQ4Z1hDSmxibVJjSWlBNklGd2liM0pwWjJsdVhDSTdYRzU5TzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZWxlbWVudC9yZXNpemVFbGVtZW50cy50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vZWxlbWVudC9yZXNpemVUZXN0LnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9lbGVtZW50L3Jlc2l6ZVRlc3QudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJyZXNpemVUZXN0XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcmVzaXplVGVzdCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0RWxlbWVudFdpdGhUcmFuc2Zvcm1IYW5kbGVUeXBlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0RWxlbWVudFdpdGhUcmFuc2Zvcm1IYW5kbGVUeXBlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRUcmFuc2Zvcm1IYW5kbGVUeXBlRnJvbUNvb3Jkc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldFRyYW5zZm9ybUhhbmRsZVR5cGVGcm9tQ29vcmRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRDdXJzb3JGb3JSZXNpemluZ0VsZW1lbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRDdXJzb3JGb3JSZXNpemluZ0VsZW1lbnQpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90cmFuc2Zvcm1IYW5kbGVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3RyYW5zZm9ybUhhbmRsZXMgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdHJhbnNmb3JtSGFuZGxlcy50c1xcXCIpO1xcbnZhciBfX3Jlc3QgPSAodW5kZWZpbmVkICYmIHVuZGVmaW5lZC5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XFxuICAgIHZhciB0ID0ge307XFxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxcbiAgICAgICAgdFtwXSA9IHNbcF07XFxuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFxcXCJmdW5jdGlvblxcXCIpXFxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcXG4gICAgICAgIH1cXG4gICAgcmV0dXJuIHQ7XFxufTtcXG5cXG5jb25zdCBpc0luc2lkZVRyYW5zZm9ybUhhbmRsZSA9ICh0cmFuc2Zvcm1IYW5kbGUsIHgsIHkpID0+IHggPj0gdHJhbnNmb3JtSGFuZGxlWzBdICYmXFxuICAgIHggPD0gdHJhbnNmb3JtSGFuZGxlWzBdICsgdHJhbnNmb3JtSGFuZGxlWzJdICYmXFxuICAgIHkgPj0gdHJhbnNmb3JtSGFuZGxlWzFdICYmXFxuICAgIHkgPD0gdHJhbnNmb3JtSGFuZGxlWzFdICsgdHJhbnNmb3JtSGFuZGxlWzNdO1xcbmNvbnN0IHJlc2l6ZVRlc3QgPSAoZWxlbWVudCwgYXBwU3RhdGUsIHgsIHksIHpvb20sIHBvaW50ZXJUeXBlKSA9PiB7XFxuICAgIGlmICghYXBwU3RhdGUuc2VsZWN0ZWRFbGVtZW50SWRzW2VsZW1lbnQuaWRdKSB7XFxuICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgIH1cXG4gICAgY29uc3QgX2EgPSAoMCxfdHJhbnNmb3JtSGFuZGxlc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmdldFRyYW5zZm9ybUhhbmRsZXMpKGVsZW1lbnQsIHpvb20sIHBvaW50ZXJUeXBlKSwgeyByb3RhdGlvbjogcm90YXRpb25UcmFuc2Zvcm1IYW5kbGUgfSA9IF9hLCB0cmFuc2Zvcm1IYW5kbGVzID0gX19yZXN0KF9hLCBbXFxcInJvdGF0aW9uXFxcIl0pO1xcbiAgICBpZiAocm90YXRpb25UcmFuc2Zvcm1IYW5kbGUgJiZcXG4gICAgICAgIGlzSW5zaWRlVHJhbnNmb3JtSGFuZGxlKHJvdGF0aW9uVHJhbnNmb3JtSGFuZGxlLCB4LCB5KSkge1xcbiAgICAgICAgcmV0dXJuIFxcXCJyb3RhdGlvblxcXCI7XFxuICAgIH1cXG4gICAgY29uc3QgZmlsdGVyID0gT2JqZWN0LmtleXModHJhbnNmb3JtSGFuZGxlcykuZmlsdGVyKChrZXkpID0+IHtcXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybUhhbmRsZSA9IHRyYW5zZm9ybUhhbmRsZXNba2V5XTtcXG4gICAgICAgIGlmICghdHJhbnNmb3JtSGFuZGxlKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIGlzSW5zaWRlVHJhbnNmb3JtSGFuZGxlKHRyYW5zZm9ybUhhbmRsZSwgeCwgeSk7XFxuICAgIH0pO1xcbiAgICBpZiAoZmlsdGVyLmxlbmd0aCA+IDApIHtcXG4gICAgICAgIHJldHVybiBmaWx0ZXJbMF07XFxuICAgIH1cXG4gICAgcmV0dXJuIGZhbHNlO1xcbn07XFxuY29uc3QgZ2V0RWxlbWVudFdpdGhUcmFuc2Zvcm1IYW5kbGVUeXBlID0gKGVsZW1lbnRzLCBhcHBTdGF0ZSwgc2NlbmVQb2ludGVyWCwgc2NlbmVQb2ludGVyWSwgem9vbSwgcG9pbnRlclR5cGUpID0+IHtcXG4gICAgcmV0dXJuIGVsZW1lbnRzLnJlZHVjZSgocmVzdWx0LCBlbGVtZW50KSA9PiB7XFxuICAgICAgICBpZiAocmVzdWx0KSB7XFxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybUhhbmRsZVR5cGUgPSByZXNpemVUZXN0KGVsZW1lbnQsIGFwcFN0YXRlLCBzY2VuZVBvaW50ZXJYLCBzY2VuZVBvaW50ZXJZLCB6b29tLCBwb2ludGVyVHlwZSk7XFxuICAgICAgICByZXR1cm4gdHJhbnNmb3JtSGFuZGxlVHlwZSA/IHsgZWxlbWVudCwgdHJhbnNmb3JtSGFuZGxlVHlwZSB9IDogbnVsbDtcXG4gICAgfSwgbnVsbCk7XFxufTtcXG5jb25zdCBnZXRUcmFuc2Zvcm1IYW5kbGVUeXBlRnJvbUNvb3JkcyA9IChbeDEsIHkxLCB4MiwgeTJdLCBzY2VuZVBvaW50ZXJYLCBzY2VuZVBvaW50ZXJZLCB6b29tLCBwb2ludGVyVHlwZSkgPT4ge1xcbiAgICBjb25zdCB0cmFuc2Zvcm1IYW5kbGVzID0gKDAsX3RyYW5zZm9ybUhhbmRsZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5nZXRUcmFuc2Zvcm1IYW5kbGVzRnJvbUNvb3JkcykoW3gxLCB5MSwgeDIsIHkyXSwgMCwgem9vbSwgcG9pbnRlclR5cGUsIF90cmFuc2Zvcm1IYW5kbGVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uT01JVF9TSURFU19GT1JfTVVMVElQTEVfRUxFTUVOVFMpO1xcbiAgICBjb25zdCBmb3VuZCA9IE9iamVjdC5rZXlzKHRyYW5zZm9ybUhhbmRsZXMpLmZpbmQoKGtleSkgPT4ge1xcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtSGFuZGxlID0gdHJhbnNmb3JtSGFuZGxlc1trZXldO1xcbiAgICAgICAgcmV0dXJuICh0cmFuc2Zvcm1IYW5kbGUgJiZcXG4gICAgICAgICAgICBpc0luc2lkZVRyYW5zZm9ybUhhbmRsZSh0cmFuc2Zvcm1IYW5kbGUsIHNjZW5lUG9pbnRlclgsIHNjZW5lUG9pbnRlclkpKTtcXG4gICAgfSk7XFxuICAgIHJldHVybiAoZm91bmQgfHwgZmFsc2UpO1xcbn07XFxuY29uc3QgUkVTSVpFX0NVUlNPUlMgPSBbXFxcIm5zXFxcIiwgXFxcIm5lc3dcXFwiLCBcXFwiZXdcXFwiLCBcXFwibndzZVxcXCJdO1xcbmNvbnN0IHJvdGF0ZVJlc2l6ZUN1cnNvciA9IChjdXJzb3IsIGFuZ2xlKSA9PiB7XFxuICAgIGNvbnN0IGluZGV4ID0gUkVTSVpFX0NVUlNPUlMuaW5kZXhPZihjdXJzb3IpO1xcbiAgICBpZiAoaW5kZXggPj0gMCkge1xcbiAgICAgICAgY29uc3QgYSA9IE1hdGgucm91bmQoYW5nbGUgLyAoTWF0aC5QSSAvIDQpKTtcXG4gICAgICAgIGN1cnNvciA9IFJFU0laRV9DVVJTT1JTWyhpbmRleCArIGEpICUgUkVTSVpFX0NVUlNPUlMubGVuZ3RoXTtcXG4gICAgfVxcbiAgICByZXR1cm4gY3Vyc29yO1xcbn07XFxuLypcXG4gKiBSZXR1cm5zIGJpLWRpcmVjdGlvbmFsIGN1cnNvciBmb3IgdGhlIGVsZW1lbnQgYmVpbmcgcmVzaXplZFxcbiAqL1xcbmNvbnN0IGdldEN1cnNvckZvclJlc2l6aW5nRWxlbWVudCA9IChyZXNpemluZ0VsZW1lbnQpID0+IHtcXG4gICAgY29uc3QgeyBlbGVtZW50LCB0cmFuc2Zvcm1IYW5kbGVUeXBlIH0gPSByZXNpemluZ0VsZW1lbnQ7XFxuICAgIGNvbnN0IHNob3VsZFN3YXBDdXJzb3JzID0gZWxlbWVudCAmJiBNYXRoLnNpZ24oZWxlbWVudC5oZWlnaHQpICogTWF0aC5zaWduKGVsZW1lbnQud2lkdGgpID09PSAtMTtcXG4gICAgbGV0IGN1cnNvciA9IG51bGw7XFxuICAgIHN3aXRjaCAodHJhbnNmb3JtSGFuZGxlVHlwZSkge1xcbiAgICAgICAgY2FzZSBcXFwiblxcXCI6XFxuICAgICAgICBjYXNlIFxcXCJzXFxcIjpcXG4gICAgICAgICAgICBjdXJzb3IgPSBcXFwibnNcXFwiO1xcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgY2FzZSBcXFwid1xcXCI6XFxuICAgICAgICBjYXNlIFxcXCJlXFxcIjpcXG4gICAgICAgICAgICBjdXJzb3IgPSBcXFwiZXdcXFwiO1xcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgY2FzZSBcXFwibndcXFwiOlxcbiAgICAgICAgY2FzZSBcXFwic2VcXFwiOlxcbiAgICAgICAgICAgIGlmIChzaG91bGRTd2FwQ3Vyc29ycykge1xcbiAgICAgICAgICAgICAgICBjdXJzb3IgPSBcXFwibmVzd1xcXCI7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICBjdXJzb3IgPSBcXFwibndzZVxcXCI7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgY2FzZSBcXFwibmVcXFwiOlxcbiAgICAgICAgY2FzZSBcXFwic3dcXFwiOlxcbiAgICAgICAgICAgIGlmIChzaG91bGRTd2FwQ3Vyc29ycykge1xcbiAgICAgICAgICAgICAgICBjdXJzb3IgPSBcXFwibndzZVxcXCI7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICBjdXJzb3IgPSBcXFwibmVzd1xcXCI7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgY2FzZSBcXFwicm90YXRpb25cXFwiOlxcbiAgICAgICAgICAgIHJldHVybiBcXFwiZ3JhYlxcXCI7XFxuICAgIH1cXG4gICAgaWYgKGN1cnNvciAmJiBlbGVtZW50KSB7XFxuICAgICAgICBjdXJzb3IgPSByb3RhdGVSZXNpemVDdXJzb3IoY3Vyc29yLCBlbGVtZW50LmFuZ2xlKTtcXG4gICAgfVxcbiAgICByZXR1cm4gY3Vyc29yID8gYCR7Y3Vyc29yfS1yZXNpemVgIDogXFxcIlxcXCI7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlpXeGxiV1Z1ZEM5eVpYTnBlbVZVWlhOMExuUnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPenM3T3pzN096czdRVUZoTkVJN1FVRkhOVUlzVFVGQlRTeDFRa0ZCZFVJc1IwRkJSeXhEUVVNNVFpeGxRVUZuUXl4RlFVTm9ReXhEUVVGVExFVkJRMVFzUTBGQlV5eEZRVU5VTEVWQlFVVXNRMEZEUml4RFFVRkRMRWxCUVVrc1pVRkJaU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU4yUWl4RFFVRkRMRWxCUVVrc1pVRkJaU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEdWQlFXVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkROVU1zUTBGQlF5eEpRVUZKTEdWQlFXVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRka0lzUTBGQlF5eEpRVUZKTEdWQlFXVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhsUVVGbExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZGZUVNc1RVRkJUU3hWUVVGVkxFZEJRVWNzUTBGRGVFSXNUMEZCYjBNc1JVRkRjRU1zVVVGQmEwSXNSVUZEYkVJc1EwRkJVeXhGUVVOVUxFTkJRVk1zUlVGRFZDeEpRVUZWTEVWQlExWXNWMEZCZDBJc1JVRkRSU3hGUVVGRk8wbEJRelZDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRk8xRkJRelZETEU5QlFVOHNTMEZCU3l4RFFVRkRPMHRCUTJRN1NVRkZSQ3hOUVVGTkxFdEJRMG9zYzBWQlFXMUNMRU5CUVVNc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeFhRVUZYTEVOQlFVTXNSVUZFTTBNc1JVRkJSU3hSUVVGUkxFVkJRVVVzZFVKQlFYVkNMRTlCUTFFc1JVRkVTQ3huUWtGQlowSXNZMEZCZUVRc1dVRkJNRVFzUTBGRFppeERRVUZETzBsQlJXeEVMRWxCUTBVc2RVSkJRWFZDTzFGQlEzWkNMSFZDUVVGMVFpeERRVUZETEhWQ1FVRjFRaXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSVUZEZEVRN1VVRkRRU3hQUVVGUExGVkJRV2xETEVOQlFVTTdTMEZETVVNN1NVRkZSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRVVU3VVVGRE1VUXNUVUZCVFN4bFFVRmxMRWRCUTI1Q0xHZENRVUZuUWl4RFFVRkRMRWRCUVN0RExFTkJRVVVzUTBGQlF6dFJRVU55UlN4SlFVRkpMRU5CUVVNc1pVRkJaU3hGUVVGRk8xbEJRM0JDTEU5QlFVOHNTMEZCU3l4RFFVRkRPMU5CUTJRN1VVRkRSQ3hQUVVGUExIVkNRVUYxUWl4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZUVRc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRlNDeEpRVUZKTEUxQlFVMHNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhGUVVGRk8xRkJRM0pDTEU5QlFVOHNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJkMElzUTBGQlF6dExRVU42UXp0SlFVVkVMRTlCUVU4c1MwRkJTeXhEUVVGRE8wRkJRMllzUTBGQlF5eERRVUZETzBGQlJVc3NUVUZCVFN4cFEwRkJhVU1zUjBGQlJ5eERRVU12UXl4UlFVRm5SQ3hGUVVOb1JDeFJRVUZyUWl4RlFVTnNRaXhoUVVGeFFpeEZRVU55UWl4aFFVRnhRaXhGUVVOeVFpeEpRVUZWTEVWQlExWXNWMEZCZDBJc1JVRkRlRUlzUlVGQlJUdEpRVU5HTEU5QlFVOHNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSVUZCUlR0UlFVTjZReXhKUVVGSkxFMUJRVTBzUlVGQlJUdFpRVU5XTEU5QlFVOHNUVUZCVFN4RFFVRkRPMU5CUTJZN1VVRkRSQ3hOUVVGTkxHMUNRVUZ0UWl4SFFVRkhMRlZCUVZVc1EwRkRjRU1zVDBGQlR5eEZRVU5RTEZGQlFWRXNSVUZEVWl4aFFVRmhMRVZCUTJJc1lVRkJZU3hGUVVOaUxFbEJRVWtzUlVGRFNpeFhRVUZYTEVOQlExb3NRMEZCUXp0UlFVTkdMRTlCUVU4c2JVSkJRVzFDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1QwRkJUeXhGUVVGRkxHMUNRVUZ0UWl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF6dEpRVU4yUlN4RFFVRkRMRVZCUVVVc1NVRkJjMGNzUTBGQlF5eERRVUZETzBGQlF6ZEhMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzWjBOQlFXZERMRWRCUVVjc1EwRkRPVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVFJETEVWQlF6TkVMR0ZCUVhGQ0xFVkJRM0pDTEdGQlFYRkNMRVZCUTNKQ0xFbEJRVlVzUlVGRFZpeFhRVUYzUWl4RlFVTkZMRVZCUVVVN1NVRkROVUlzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhuUmtGQk5rSXNRMEZEY0VRc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkRhRUlzUTBGQlF5eEZRVU5FTEVsQlFVa3NSVUZEU2l4WFFVRlhMRVZCUTFnc0swVkJRV2RETEVOQlEycERMRU5CUVVNN1NVRkZSaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRVVU3VVVGRGRrUXNUVUZCVFN4bFFVRmxMRWRCUTI1Q0xHZENRVUZuUWl4RFFVRkRMRWRCUVN0RExFTkJRVVVzUTBGQlF6dFJRVU55UlN4UFFVRlBMRU5CUTB3c1pVRkJaVHRaUVVObUxIVkNRVUYxUWl4RFFVRkRMR1ZCUVdVc1JVRkJSU3hoUVVGaExFVkJRVVVzWVVGQllTeERRVUZETEVOQlEzWkZMRU5CUVVNN1NVRkRTaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5JTEU5QlFVOHNRMEZCUXl4TFFVRkxMRWxCUVVrc1MwRkJTeXhEUVVFMlFpeERRVUZETzBGQlEzUkVMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzWTBGQll5eEhRVUZITEVOQlFVTXNTVUZCU1N4RlFVRkZMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdRVUZEY0VRc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4RFFVRkRMRTFCUVdNc1JVRkJSU3hMUVVGaExFVkJRVVVzUlVGQlJUdEpRVU16UkN4TlFVRk5MRXRCUVVzc1IwRkJSeXhqUVVGakxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMGxCUXpkRExFbEJRVWtzUzBGQlN5eEpRVUZKTEVOQlFVTXNSVUZCUlR0UlFVTmtMRTFCUVUwc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpWRExFMUJRVTBzUjBGQlJ5eGpRVUZqTEVOQlFVTXNRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzWTBGQll5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMHRCUXpsRU8wbEJRMFFzVDBGQlR5eE5RVUZOTEVOQlFVTTdRVUZEYUVJc1EwRkJReXhEUVVGRE8wRkJSVVk3TzBkQlJVYzdRVUZEU1N4TlFVRk5MREpDUVVFeVFpeEhRVUZITEVOQlFVTXNaVUZITTBNc1JVRkJWU3hGUVVGRk8wbEJRMWdzVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4dFFrRkJiVUlzUlVGQlJTeEhRVUZITEdWQlFXVXNRMEZCUXp0SlFVTjZSQ3hOUVVGTkxHbENRVUZwUWl4SFFVTnlRaXhQUVVGUExFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZWtVc1NVRkJTU3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETzBsQlJXeENMRkZCUVZFc2JVSkJRVzFDTEVWQlFVVTdVVUZETTBJc1MwRkJTeXhIUVVGSExFTkJRVU03VVVGRFZDeExRVUZMTEVkQlFVYzdXVUZEVGl4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRE8xbEJRMlFzVFVGQlRUdFJRVU5TTEV0QlFVc3NSMEZCUnl4RFFVRkRPMUZCUTFRc1MwRkJTeXhIUVVGSE8xbEJRMDRzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXp0WlFVTmtMRTFCUVUwN1VVRkRVaXhMUVVGTExFbEJRVWtzUTBGQlF6dFJRVU5XTEV0QlFVc3NTVUZCU1R0WlFVTlFMRWxCUVVrc2FVSkJRV2xDTEVWQlFVVTdaMEpCUTNKQ0xFMUJRVTBzUjBGQlJ5eE5RVUZOTEVOQlFVTTdZVUZEYWtJN2FVSkJRVTA3WjBKQlEwd3NUVUZCVFN4SFFVRkhMRTFCUVUwc1EwRkJRenRoUVVOcVFqdFpRVU5FTEUxQlFVMDdVVUZEVWl4TFFVRkxMRWxCUVVrc1EwRkJRenRSUVVOV0xFdEJRVXNzU1VGQlNUdFpRVU5RTEVsQlFVa3NhVUpCUVdsQ0xFVkJRVVU3WjBKQlEzSkNMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU03WVVGRGFrSTdhVUpCUVUwN1owSkJRMHdzVFVGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXp0aFFVTnFRanRaUVVORUxFMUJRVTA3VVVGRFVpeExRVUZMTEZWQlFWVTdXVUZEWWl4UFFVRlBMRTFCUVUwc1EwRkJRenRMUVVOcVFqdEpRVVZFTEVsQlFVa3NUVUZCVFN4SlFVRkpMRTlCUVU4c1JVRkJSVHRSUVVOeVFpeE5RVUZOTEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRMUVVOd1JEdEpRVVZFTEU5QlFVOHNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFMUJRVTBzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1FVRkRNVU1zUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyVnNaVzFsYm5RdmNtVnphWHBsVkdWemRDNTBjejh6TUdaaElsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdYRzRnSUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwTEZ4dUlDQlFiMmx1ZEdWeVZIbHdaU3hjYmlBZ1RtOXVSR1ZzWlhSbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MExGeHVmU0JtY205dElGd2lMaTkwZVhCbGMxd2lPMXh1WEc1cGJYQnZjblFnZTF4dUlDQlBUVWxVWDFOSlJFVlRYMFpQVWw5TlZVeFVTVkJNUlY5RlRFVk5SVTVVVXl4Y2JpQWdaMlYwVkhKaGJuTm1iM0p0U0dGdVpHeGxjMFp5YjIxRGIyOXlaSE1zWEc0Z0lHZGxkRlJ5WVc1elptOXliVWhoYm1Sc1pYTXNYRzRnSUZSeVlXNXpabTl5YlVoaGJtUnNaVlI1Y0dVc1hHNGdJRlJ5WVc1elptOXliVWhoYm1Sc1pTeGNiaUFnVFdGNVltVlVjbUZ1YzJadmNtMUlZVzVrYkdWVWVYQmxMRnh1ZlNCbWNtOXRJRndpTGk5MGNtRnVjMlp2Y20xSVlXNWtiR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5QkJjSEJUZEdGMFpTd2dXbTl2YlNCOUlHWnliMjBnWENJdUxpOTBlWEJsYzF3aU8xeHVYRzVqYjI1emRDQnBjMGx1YzJsa1pWUnlZVzV6Wm05eWJVaGhibVJzWlNBOUlDaGNiaUFnZEhKaGJuTm1iM0p0U0dGdVpHeGxPaUJVY21GdWMyWnZjbTFJWVc1a2JHVXNYRzRnSUhnNklHNTFiV0psY2l4Y2JpQWdlVG9nYm5WdFltVnlMRnh1S1NBOVBseHVJQ0I0SUQ0OUlIUnlZVzV6Wm05eWJVaGhibVJzWlZzd1hTQW1KbHh1SUNCNElEdzlJSFJ5WVc1elptOXliVWhoYm1Sc1pWc3dYU0FySUhSeVlXNXpabTl5YlVoaGJtUnNaVnN5WFNBbUpseHVJQ0I1SUQ0OUlIUnlZVzV6Wm05eWJVaGhibVJzWlZzeFhTQW1KbHh1SUNCNUlEdzlJSFJ5WVc1elptOXliVWhoYm1Sc1pWc3hYU0FySUhSeVlXNXpabTl5YlVoaGJtUnNaVnN6WFR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUhKbGMybDZaVlJsYzNRZ1BTQW9YRzRnSUdWc1pXMWxiblE2SUU1dmJrUmxiR1YwWldSRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEN4Y2JpQWdZWEJ3VTNSaGRHVTZJRUZ3Y0ZOMFlYUmxMRnh1SUNCNE9pQnVkVzFpWlhJc1hHNGdJSGs2SUc1MWJXSmxjaXhjYmlBZ2VtOXZiVG9nV205dmJTeGNiaUFnY0c5cGJuUmxjbFI1Y0dVNklGQnZhVzUwWlhKVWVYQmxMRnh1S1RvZ1RXRjVZbVZVY21GdWMyWnZjbTFJWVc1a2JHVlVlWEJsSUQwK0lIdGNiaUFnYVdZZ0tDRmhjSEJUZEdGMFpTNXpaV3hsWTNSbFpFVnNaVzFsYm5SSlpITmJaV3hsYldWdWRDNXBaRjBwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJSDFjYmx4dUlDQmpiMjV6ZENCN0lISnZkR0YwYVc5dU9pQnliM1JoZEdsdmJsUnlZVzV6Wm05eWJVaGhibVJzWlN3Z0xpNHVkSEpoYm5ObWIzSnRTR0Z1Wkd4bGN5QjlJRDFjYmlBZ0lDQm5aWFJVY21GdWMyWnZjbTFJWVc1a2JHVnpLR1ZzWlcxbGJuUXNJSHB2YjIwc0lIQnZhVzUwWlhKVWVYQmxLVHRjYmx4dUlDQnBaaUFvWEc0Z0lDQWdjbTkwWVhScGIyNVVjbUZ1YzJadmNtMUlZVzVrYkdVZ0ppWmNiaUFnSUNCcGMwbHVjMmxrWlZSeVlXNXpabTl5YlVoaGJtUnNaU2h5YjNSaGRHbHZibFJ5WVc1elptOXliVWhoYm1Sc1pTd2dlQ3dnZVNsY2JpQWdLU0I3WEc0Z0lDQWdjbVYwZFhKdUlGd2ljbTkwWVhScGIyNWNJaUJoY3lCVWNtRnVjMlp2Y20xSVlXNWtiR1ZVZVhCbE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ1ptbHNkR1Z5SUQwZ1QySnFaV04wTG10bGVYTW9kSEpoYm5ObWIzSnRTR0Z1Wkd4bGN5a3VabWxzZEdWeUtDaHJaWGtwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0IwY21GdWMyWnZjbTFJWVc1a2JHVWdQVnh1SUNBZ0lDQWdkSEpoYm5ObWIzSnRTR0Z1Wkd4bGMxdHJaWGtnWVhNZ1JYaGpiSFZrWlR4VWNtRnVjMlp2Y20xSVlXNWtiR1ZVZVhCbExDQmNJbkp2ZEdGMGFXOXVYQ0krWFNFN1hHNGdJQ0FnYVdZZ0tDRjBjbUZ1YzJadmNtMUlZVzVrYkdVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdselNXNXphV1JsVkhKaGJuTm1iM0p0U0dGdVpHeGxLSFJ5WVc1elptOXliVWhoYm1Sc1pTd2dlQ3dnZVNrN1hHNGdJSDBwTzF4dVhHNGdJR2xtSUNobWFXeDBaWEl1YkdWdVozUm9JRDRnTUNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJtYVd4MFpYSmJNRjBnWVhNZ1ZISmhibk5tYjNKdFNHRnVaR3hsVkhsd1pUdGNiaUFnZlZ4dVhHNGdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm5aWFJGYkdWdFpXNTBWMmwwYUZSeVlXNXpabTl5YlVoaGJtUnNaVlI1Y0dVZ1BTQW9YRzRnSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCT2IyNUVaV3hsZEdWa1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTeGNiaUFnWVhCd1UzUmhkR1U2SUVGd2NGTjBZWFJsTEZ4dUlDQnpZMlZ1WlZCdmFXNTBaWEpZT2lCdWRXMWlaWElzWEc0Z0lITmpaVzVsVUc5cGJuUmxjbGs2SUc1MWJXSmxjaXhjYmlBZ2VtOXZiVG9nV205dmJTeGNiaUFnY0c5cGJuUmxjbFI1Y0dVNklGQnZhVzUwWlhKVWVYQmxMRnh1S1NBOVBpQjdYRzRnSUhKbGRIVnliaUJsYkdWdFpXNTBjeTV5WldSMVkyVW9LSEpsYzNWc2RDd2daV3hsYldWdWRDa2dQVDRnZTF4dUlDQWdJR2xtSUNoeVpYTjFiSFFwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJSFJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1VnUFNCeVpYTnBlbVZVWlhOMEtGeHVJQ0FnSUNBZ1pXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUdGd2NGTjBZWFJsTEZ4dUlDQWdJQ0FnYzJObGJtVlFiMmx1ZEdWeVdDeGNiaUFnSUNBZ0lITmpaVzVsVUc5cGJuUmxjbGtzWEc0Z0lDQWdJQ0I2YjI5dExGeHVJQ0FnSUNBZ2NHOXBiblJsY2xSNWNHVXNYRzRnSUNBZ0tUdGNiaUFnSUNCeVpYUjFjbTRnZEhKaGJuTm1iM0p0U0dGdVpHeGxWSGx3WlNBL0lIc2daV3hsYldWdWRDd2dkSEpoYm5ObWIzSnRTR0Z1Wkd4bFZIbHdaU0I5SURvZ2JuVnNiRHRjYmlBZ2ZTd2diblZzYkNCaGN5QjdJR1ZzWlcxbGJuUTZJRTV2YmtSbGJHVjBaV1JGZUdOaGJHbGtjbUYzUld4bGJXVnVkRHNnZEhKaGJuTm1iM0p0U0dGdVpHeGxWSGx3WlRvZ1RXRjVZbVZVY21GdWMyWnZjbTFJWVc1a2JHVlVlWEJsSUgwZ2ZDQnVkV3hzS1R0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm5aWFJVY21GdWMyWnZjbTFJWVc1a2JHVlVlWEJsUm5KdmJVTnZiM0prY3lBOUlDaGNiaUFnVzNneExDQjVNU3dnZURJc0lIa3lYVG9nY21WaFpHOXViSGtnVzI1MWJXSmxjaXdnYm5WdFltVnlMQ0J1ZFcxaVpYSXNJRzUxYldKbGNsMHNYRzRnSUhOalpXNWxVRzlwYm5SbGNsZzZJRzUxYldKbGNpeGNiaUFnYzJObGJtVlFiMmx1ZEdWeVdUb2diblZ0WW1WeUxGeHVJQ0I2YjI5dE9pQmFiMjl0TEZ4dUlDQndiMmx1ZEdWeVZIbHdaVG9nVUc5cGJuUmxjbFI1Y0dVc1hHNHBPaUJOWVhsaVpWUnlZVzV6Wm05eWJVaGhibVJzWlZSNWNHVWdQVDRnZTF4dUlDQmpiMjV6ZENCMGNtRnVjMlp2Y20xSVlXNWtiR1Z6SUQwZ1oyVjBWSEpoYm5ObWIzSnRTR0Z1Wkd4bGMwWnliMjFEYjI5eVpITW9YRzRnSUNBZ1czZ3hMQ0I1TVN3Z2VESXNJSGt5WFN4Y2JpQWdJQ0F3TEZ4dUlDQWdJSHB2YjIwc1hHNGdJQ0FnY0c5cGJuUmxjbFI1Y0dVc1hHNGdJQ0FnVDAxSlZGOVRTVVJGVTE5R1QxSmZUVlZNVkVsUVRFVmZSVXhGVFVWT1ZGTXNYRzRnSUNrN1hHNWNiaUFnWTI5dWMzUWdabTkxYm1RZ1BTQlBZbXBsWTNRdWEyVjVjeWgwY21GdWMyWnZjbTFJWVc1a2JHVnpLUzVtYVc1a0tDaHJaWGtwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0IwY21GdWMyWnZjbTFJWVc1a2JHVWdQVnh1SUNBZ0lDQWdkSEpoYm5ObWIzSnRTR0Z1Wkd4bGMxdHJaWGtnWVhNZ1JYaGpiSFZrWlR4VWNtRnVjMlp2Y20xSVlXNWtiR1ZVZVhCbExDQmNJbkp2ZEdGMGFXOXVYQ0krWFNFN1hHNGdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJSFJ5WVc1elptOXliVWhoYm1Sc1pTQW1KbHh1SUNBZ0lDQWdhWE5KYm5OcFpHVlVjbUZ1YzJadmNtMUlZVzVrYkdVb2RISmhibk5tYjNKdFNHRnVaR3hsTENCelkyVnVaVkJ2YVc1MFpYSllMQ0J6WTJWdVpWQnZhVzUwWlhKWktWeHVJQ0FnSUNrN1hHNGdJSDBwTzF4dUlDQnlaWFIxY200Z0tHWnZkVzVrSUh4OElHWmhiSE5sS1NCaGN5Qk5ZWGxpWlZSeVlXNXpabTl5YlVoaGJtUnNaVlI1Y0dVN1hHNTlPMXh1WEc1amIyNXpkQ0JTUlZOSldrVmZRMVZTVTA5U1V5QTlJRnRjSW01elhDSXNJRndpYm1WemQxd2lMQ0JjSW1WM1hDSXNJRndpYm5kelpWd2lYVHRjYm1OdmJuTjBJSEp2ZEdGMFpWSmxjMmw2WlVOMWNuTnZjaUE5SUNoamRYSnpiM0k2SUhOMGNtbHVaeXdnWVc1bmJHVTZJRzUxYldKbGNpa2dQVDRnZTF4dUlDQmpiMjV6ZENCcGJtUmxlQ0E5SUZKRlUwbGFSVjlEVlZKVFQxSlRMbWx1WkdWNFQyWW9ZM1Z5YzI5eUtUdGNiaUFnYVdZZ0tHbHVaR1Y0SUQ0OUlEQXBJSHRjYmlBZ0lDQmpiMjV6ZENCaElEMGdUV0YwYUM1eWIzVnVaQ2hoYm1kc1pTQXZJQ2hOWVhSb0xsQkpJQzhnTkNrcE8xeHVJQ0FnSUdOMWNuTnZjaUE5SUZKRlUwbGFSVjlEVlZKVFQxSlRXeWhwYm1SbGVDQXJJR0VwSUNVZ1VrVlRTVnBGWDBOVlVsTlBVbE11YkdWdVozUm9YVHRjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdZM1Z5YzI5eU8xeHVmVHRjYmx4dUx5cGNiaUFxSUZKbGRIVnlibk1nWW1rdFpHbHlaV04wYVc5dVlXd2dZM1Z5YzI5eUlHWnZjaUIwYUdVZ1pXeGxiV1Z1ZENCaVpXbHVaeUJ5WlhOcGVtVmtYRzRnS2k5Y2JtVjRjRzl5ZENCamIyNXpkQ0JuWlhSRGRYSnpiM0pHYjNKU1pYTnBlbWx1WjBWc1pXMWxiblFnUFNBb2NtVnphWHBwYm1kRmJHVnRaVzUwT2lCN1hHNGdJR1ZzWlcxbGJuUS9PaUJGZUdOaGJHbGtjbUYzUld4bGJXVnVkRHRjYmlBZ2RISmhibk5tYjNKdFNHRnVaR3hsVkhsd1pUb2dUV0Y1WW1WVWNtRnVjMlp2Y20xSVlXNWtiR1ZVZVhCbE8xeHVmU2s2SUhOMGNtbHVaeUE5UGlCN1hHNGdJR052Ym5OMElIc2daV3hsYldWdWRDd2dkSEpoYm5ObWIzSnRTR0Z1Wkd4bFZIbHdaU0I5SUQwZ2NtVnphWHBwYm1kRmJHVnRaVzUwTzF4dUlDQmpiMjV6ZENCemFHOTFiR1JUZDJGd1EzVnljMjl5Y3lBOVhHNGdJQ0FnWld4bGJXVnVkQ0FtSmlCTllYUm9Mbk5wWjI0b1pXeGxiV1Z1ZEM1b1pXbG5hSFFwSUNvZ1RXRjBhQzV6YVdkdUtHVnNaVzFsYm5RdWQybGtkR2dwSUQwOVBTQXRNVHRjYmlBZ2JHVjBJR04xY25OdmNpQTlJRzUxYkd3N1hHNWNiaUFnYzNkcGRHTm9JQ2gwY21GdWMyWnZjbTFJWVc1a2JHVlVlWEJsS1NCN1hHNGdJQ0FnWTJGelpTQmNJbTVjSWpwY2JpQWdJQ0JqWVhObElGd2ljMXdpT2x4dUlDQWdJQ0FnWTNWeWMyOXlJRDBnWENKdWMxd2lPMXh1SUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnWTJGelpTQmNJbmRjSWpwY2JpQWdJQ0JqWVhObElGd2laVndpT2x4dUlDQWdJQ0FnWTNWeWMyOXlJRDBnWENKbGQxd2lPMXh1SUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnWTJGelpTQmNJbTUzWENJNlhHNGdJQ0FnWTJGelpTQmNJbk5sWENJNlhHNGdJQ0FnSUNCcFppQW9jMmh2ZFd4a1UzZGhjRU4xY25OdmNuTXBJSHRjYmlBZ0lDQWdJQ0FnWTNWeWMyOXlJRDBnWENKdVpYTjNYQ0k3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0JqZFhKemIzSWdQU0JjSW01M2MyVmNJanRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdYQ0p1WlZ3aU9seHVJQ0FnSUdOaGMyVWdYQ0p6ZDF3aU9seHVJQ0FnSUNBZ2FXWWdLSE5vYjNWc1pGTjNZWEJEZFhKemIzSnpLU0I3WEc0Z0lDQWdJQ0FnSUdOMWNuTnZjaUE5SUZ3aWJuZHpaVndpTzF4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnWTNWeWMyOXlJRDBnWENKdVpYTjNYQ0k3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJRndpY205MFlYUnBiMjVjSWpwY2JpQWdJQ0FnSUhKbGRIVnliaUJjSW1keVlXSmNJanRjYmlBZ2ZWeHVYRzRnSUdsbUlDaGpkWEp6YjNJZ0ppWWdaV3hsYldWdWRDa2dlMXh1SUNBZ0lHTjFjbk52Y2lBOUlISnZkR0YwWlZKbGMybDZaVU4xY25OdmNpaGpkWEp6YjNJc0lHVnNaVzFsYm5RdVlXNW5iR1VwTzF4dUlDQjlYRzVjYmlBZ2NtVjBkWEp1SUdOMWNuTnZjaUEvSUdBa2UyTjFjbk52Y24wdGNtVnphWHBsWUNBNklGd2lYQ0k3WEc1OU8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2VsZW1lbnQvcmVzaXplVGVzdC50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vZWxlbWVudC9zaG93U2VsZWN0ZWRTaGFwZUFjdGlvbnMudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vZWxlbWVudC9zaG93U2VsZWN0ZWRTaGFwZUFjdGlvbnMudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInNob3dTZWxlY3RlZFNoYXBlQWN0aW9uc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHNob3dTZWxlY3RlZFNoYXBlQWN0aW9ucylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZSAqLyBcXFwiLi4vLi4vc2NlbmUvaW5kZXgudHNcXFwiKTtcXG5cXG5jb25zdCBzaG93U2VsZWN0ZWRTaGFwZUFjdGlvbnMgPSAoYXBwU3RhdGUsIGVsZW1lbnRzKSA9PiBCb29sZWFuKCFhcHBTdGF0ZS52aWV3TW9kZUVuYWJsZWQgJiZcXG4gICAgKGFwcFN0YXRlLmVkaXRpbmdFbGVtZW50IHx8XFxuICAgICAgICAoMCxfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5nZXRTZWxlY3RlZEVsZW1lbnRzKShlbGVtZW50cywgYXBwU3RhdGUpLmxlbmd0aCB8fFxcbiAgICAgICAgYXBwU3RhdGUuZWxlbWVudFR5cGUgIT09IFxcXCJzZWxlY3Rpb25cXFwiKSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZaV3hsYldWdWRDOXphRzkzVTJWc1pXTjBaV1JUYUdGd1pVRmpkR2x2Ym5NdWRITXVhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3UVVGRkswTTdRVUZGZUVNc1RVRkJUU3gzUWtGQmQwSXNSMEZCUnl4RFFVTjBReXhSUVVGclFpeEZRVU5zUWl4UlFVRm5SQ3hGUVVOb1JDeEZRVUZGTEVOQlEwWXNUMEZCVHl4RFFVTk1MRU5CUVVNc1VVRkJVU3hEUVVGRExHVkJRV1U3U1VGRGRrSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1kwRkJZenRSUVVOMFFpd3lSRUZCYlVJc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTXNUVUZCVFR0UlFVTTVReXhSUVVGUkxFTkJRVU1zVjBGQlZ5eExRVUZMTEZkQlFWY3NRMEZCUXl4RFFVTXhReXhEUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMlZzWlcxbGJuUXZjMmh2ZDFObGJHVmpkR1ZrVTJoaGNHVkJZM1JwYjI1ekxuUnpQemRsTW1VaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dRWEJ3VTNSaGRHVWdmU0JtY205dElGd2lMaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUU1dmJrUmxiR1YwWldSRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZENCOUlHWnliMjBnWENJdUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5Qm5aWFJUWld4bFkzUmxaRVZzWlcxbGJuUnpJSDBnWm5KdmJTQmNJaTR1TDNOalpXNWxYQ0k3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J6YUc5M1UyVnNaV04wWldSVGFHRndaVUZqZEdsdmJuTWdQU0FvWEc0Z0lHRndjRk4wWVhSbE9pQkJjSEJUZEdGMFpTeGNiaUFnWld4bGJXVnVkSE02SUhKbFlXUnZibXg1SUU1dmJrUmxiR1YwWldSRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZExGeHVLU0E5UGx4dUlDQkNiMjlzWldGdUtGeHVJQ0FnSUNGaGNIQlRkR0YwWlM1MmFXVjNUVzlrWlVWdVlXSnNaV1FnSmlaY2JpQWdJQ0FnSUNoaGNIQlRkR0YwWlM1bFpHbDBhVzVuUld4bGJXVnVkQ0I4ZkZ4dUlDQWdJQ0FnSUNCblpYUlRaV3hsWTNSbFpFVnNaVzFsYm5SektHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTa3ViR1Z1WjNSb0lIeDhYRzRnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxMbVZzWlcxbGJuUlVlWEJsSUNFOVBTQmNJbk5sYkdWamRHbHZibHdpS1N4Y2JpQWdLVHRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZWxlbWVudC9zaG93U2VsZWN0ZWRTaGFwZUFjdGlvbnMudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2VsZW1lbnQvc2l6ZUhlbHBlcnMudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9lbGVtZW50L3NpemVIZWxwZXJzLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzSW52aXNpYmx5U21hbGxFbGVtZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNJbnZpc2libHlTbWFsbEVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldFBlcmZlY3RFbGVtZW50U2l6ZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldFBlcmZlY3RFbGVtZW50U2l6ZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicmVzaXplUGVyZmVjdExpbmVGb3JOV0hhbmRsZXJcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZXNpemVQZXJmZWN0TGluZUZvck5XSGFuZGxlciksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0Tm9ybWFsaXplZERpbWVuc2lvbnNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXROb3JtYWxpemVkRGltZW5zaW9ucylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vbXV0YXRlRWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9tdXRhdGVFbGVtZW50LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3R5cGVDaGVja3MgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdHlwZUNoZWNrcy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcblxcblxcblxcbmNvbnN0IGlzSW52aXNpYmx5U21hbGxFbGVtZW50ID0gKGVsZW1lbnQpID0+IHtcXG4gICAgaWYgKCgwLF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaXNMaW5lYXJFbGVtZW50KShlbGVtZW50KSB8fCAoMCxfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmlzRnJlZURyYXdFbGVtZW50KShlbGVtZW50KSkge1xcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucG9pbnRzLmxlbmd0aCA8IDI7XFxuICAgIH1cXG4gICAgcmV0dXJuIGVsZW1lbnQud2lkdGggPT09IDAgJiYgZWxlbWVudC5oZWlnaHQgPT09IDA7XFxufTtcXG4vKipcXG4gKiBNYWtlcyBhIHBlcmZlY3Qgc2hhcGUgb3IgZGlhZ29uYWwvaG9yaXpvbnRhbC92ZXJ0aWNhbCBsaW5lXFxuICovXFxuY29uc3QgZ2V0UGVyZmVjdEVsZW1lbnRTaXplID0gKGVsZW1lbnRUeXBlLCB3aWR0aCwgaGVpZ2h0KSA9PiB7XFxuICAgIGNvbnN0IGFic1dpZHRoID0gTWF0aC5hYnMod2lkdGgpO1xcbiAgICBjb25zdCBhYnNIZWlnaHQgPSBNYXRoLmFicyhoZWlnaHQpO1xcbiAgICBpZiAoZWxlbWVudFR5cGUgPT09IFxcXCJsaW5lXFxcIiB8fFxcbiAgICAgICAgZWxlbWVudFR5cGUgPT09IFxcXCJhcnJvd1xcXCIgfHxcXG4gICAgICAgIGVsZW1lbnRUeXBlID09PSBcXFwiZnJlZWRyYXdcXFwiKSB7XFxuICAgICAgICBjb25zdCBsb2NrZWRBbmdsZSA9IE1hdGgucm91bmQoTWF0aC5hdGFuKGFic0hlaWdodCAvIGFic1dpZHRoKSAvIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5TSElGVF9MT0NLSU5HX0FOR0xFKSAqXFxuICAgICAgICAgICAgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlNISUZUX0xPQ0tJTkdfQU5HTEU7XFxuICAgICAgICBpZiAobG9ja2VkQW5nbGUgPT09IDApIHtcXG4gICAgICAgICAgICBoZWlnaHQgPSAwO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSBpZiAobG9ja2VkQW5nbGUgPT09IE1hdGguUEkgLyAyKSB7XFxuICAgICAgICAgICAgd2lkdGggPSAwO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgaGVpZ2h0ID1cXG4gICAgICAgICAgICAgICAgTWF0aC5yb3VuZChhYnNXaWR0aCAqIE1hdGgudGFuKGxvY2tlZEFuZ2xlKSkgKiBNYXRoLnNpZ24oaGVpZ2h0KSB8fFxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0O1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIGVsc2UgaWYgKGVsZW1lbnRUeXBlICE9PSBcXFwic2VsZWN0aW9uXFxcIikge1xcbiAgICAgICAgaGVpZ2h0ID0gYWJzV2lkdGggKiBNYXRoLnNpZ24oaGVpZ2h0KTtcXG4gICAgfVxcbiAgICByZXR1cm4geyB3aWR0aCwgaGVpZ2h0IH07XFxufTtcXG5jb25zdCByZXNpemVQZXJmZWN0TGluZUZvck5XSGFuZGxlciA9IChlbGVtZW50LCB4LCB5KSA9PiB7XFxuICAgIGNvbnN0IGFuY2hvclggPSBlbGVtZW50LnggKyBlbGVtZW50LndpZHRoO1xcbiAgICBjb25zdCBhbmNob3JZID0gZWxlbWVudC55ICsgZWxlbWVudC5oZWlnaHQ7XFxuICAgIGNvbnN0IGRpc3RhbmNlVG9BbmNob3JYID0geCAtIGFuY2hvclg7XFxuICAgIGNvbnN0IGRpc3RhbmNlVG9BbmNob3JZID0geSAtIGFuY2hvclk7XFxuICAgIGlmIChNYXRoLmFicyhkaXN0YW5jZVRvQW5jaG9yWCkgPCBNYXRoLmFicyhkaXN0YW5jZVRvQW5jaG9yWSkgLyAyKSB7XFxuICAgICAgICAoMCxfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm11dGF0ZUVsZW1lbnQpKGVsZW1lbnQsIHtcXG4gICAgICAgICAgICB4OiBhbmNob3JYLFxcbiAgICAgICAgICAgIHdpZHRoOiAwLFxcbiAgICAgICAgICAgIHksXFxuICAgICAgICAgICAgaGVpZ2h0OiAtZGlzdGFuY2VUb0FuY2hvclksXFxuICAgICAgICB9KTtcXG4gICAgfVxcbiAgICBlbHNlIGlmIChNYXRoLmFicyhkaXN0YW5jZVRvQW5jaG9yWSkgPCBNYXRoLmFicyhlbGVtZW50LndpZHRoKSAvIDIpIHtcXG4gICAgICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubXV0YXRlRWxlbWVudCkoZWxlbWVudCwge1xcbiAgICAgICAgICAgIHk6IGFuY2hvclksXFxuICAgICAgICAgICAgaGVpZ2h0OiAwLFxcbiAgICAgICAgfSk7XFxuICAgIH1cXG4gICAgZWxzZSB7XFxuICAgICAgICBjb25zdCBuZXh0SGVpZ2h0ID0gTWF0aC5zaWduKGRpc3RhbmNlVG9BbmNob3JZKSAqXFxuICAgICAgICAgICAgTWF0aC5zaWduKGRpc3RhbmNlVG9BbmNob3JYKSAqXFxuICAgICAgICAgICAgZWxlbWVudC53aWR0aDtcXG4gICAgICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubXV0YXRlRWxlbWVudCkoZWxlbWVudCwge1xcbiAgICAgICAgICAgIHgsXFxuICAgICAgICAgICAgeTogYW5jaG9yWSAtIG5leHRIZWlnaHQsXFxuICAgICAgICAgICAgd2lkdGg6IC1kaXN0YW5jZVRvQW5jaG9yWCxcXG4gICAgICAgICAgICBoZWlnaHQ6IG5leHRIZWlnaHQsXFxuICAgICAgICB9KTtcXG4gICAgfVxcbn07XFxuY29uc3QgZ2V0Tm9ybWFsaXplZERpbWVuc2lvbnMgPSAoZWxlbWVudCkgPT4ge1xcbiAgICBjb25zdCByZXQgPSB7XFxuICAgICAgICB3aWR0aDogZWxlbWVudC53aWR0aCxcXG4gICAgICAgIGhlaWdodDogZWxlbWVudC5oZWlnaHQsXFxuICAgICAgICB4OiBlbGVtZW50LngsXFxuICAgICAgICB5OiBlbGVtZW50LnksXFxuICAgIH07XFxuICAgIGlmIChlbGVtZW50LndpZHRoIDwgMCkge1xcbiAgICAgICAgY29uc3QgbmV4dFdpZHRoID0gTWF0aC5hYnMoZWxlbWVudC53aWR0aCk7XFxuICAgICAgICByZXQud2lkdGggPSBuZXh0V2lkdGg7XFxuICAgICAgICByZXQueCA9IGVsZW1lbnQueCAtIG5leHRXaWR0aDtcXG4gICAgfVxcbiAgICBpZiAoZWxlbWVudC5oZWlnaHQgPCAwKSB7XFxuICAgICAgICBjb25zdCBuZXh0SGVpZ2h0ID0gTWF0aC5hYnMoZWxlbWVudC5oZWlnaHQpO1xcbiAgICAgICAgcmV0LmhlaWdodCA9IG5leHRIZWlnaHQ7XFxuICAgICAgICByZXQueSA9IGVsZW1lbnQueSAtIG5leHRIZWlnaHQ7XFxuICAgIH1cXG4gICAgcmV0dXJuIHJldDtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2Wld4bGJXVnVkQzl6YVhwbFNHVnNjR1Z5Y3k1MGN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN08wRkJRMmRFTzBGQlEydENPMEZCUTJZN1FVRkZOVU1zVFVGQlRTeDFRa0ZCZFVJc1IwRkJSeXhEUVVOeVF5eFBRVUV3UWl4RlFVTnFRaXhGUVVGRk8wbEJRMWdzU1VGQlNTdzBSRUZCWlN4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxEaEVRVUZwUWl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRk8xRkJRekZFTEU5QlFVOHNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETzB0QlEyeERPMGxCUTBRc1QwRkJUeXhQUVVGUExFTkJRVU1zUzBGQlN5eExRVUZMTEVOQlFVTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU1zUTBGQlF6dEJRVU55UkN4RFFVRkRMRU5CUVVNN1FVRkZSanM3UjBGRlJ6dEJRVU5KTEUxQlFVMHNjVUpCUVhGQ0xFZEJRVWNzUTBGRGJrTXNWMEZCYlVJc1JVRkRia0lzUzBGQllTeEZRVU5pTEUxQlFXTXNSVUZEY1VJc1JVRkJSVHRKUVVOeVF5eE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlEycERMRTFCUVUwc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkZia01zU1VGRFJTeFhRVUZYTEV0QlFVc3NUVUZCVFR0UlFVTjBRaXhYUVVGWExFdEJRVXNzVDBGQlR6dFJRVU4yUWl4WFFVRlhMRXRCUVVzc1ZVRkJWU3hGUVVNeFFqdFJRVU5CTEUxQlFVMHNWMEZCVnl4SFFVTm1MRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRWRCUVVjc1VVRkJVU3hEUVVGRExFZEJRVWNzTWtSQlFXMUNMRU5CUVVNN1dVRkRha1VzTWtSQlFXMUNMRU5CUVVNN1VVRkRkRUlzU1VGQlNTeFhRVUZYTEV0QlFVc3NRMEZCUXl4RlFVRkZPMWxCUTNKQ0xFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZEV2p0aFFVRk5MRWxCUVVrc1YwRkJWeXhMUVVGTExFbEJRVWtzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZPMWxCUTNSRExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZEV0R0aFFVRk5PMWxCUTB3c1RVRkJUVHRuUWtGRFNpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdiMEpCUTJoRkxFMUJRVTBzUTBGQlF6dFRRVU5XTzB0QlEwWTdVMEZCVFN4SlFVRkpMRmRCUVZjc1MwRkJTeXhYUVVGWExFVkJRVVU3VVVGRGRFTXNUVUZCVFN4SFFVRkhMRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMHRCUTNaRE8wbEJRMFFzVDBGQlR5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJRenRCUVVNelFpeERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MRFpDUVVFMlFpeEhRVUZITEVOQlF6TkRMRTlCUVRCQ0xFVkJRekZDTEVOQlFWTXNSVUZEVkN4RFFVRlRMRVZCUTFRc1JVRkJSVHRKUVVOR0xFMUJRVTBzVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF6dEpRVU14UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRNME1zVFVGQlRTeHBRa0ZCYVVJc1IwRkJSeXhEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETzBsQlEzUkRMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJRenRKUVVOMFF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRk8xRkJRMnBGTERaRVFVRmhMRU5CUVVNc1QwRkJUeXhGUVVGRk8xbEJRM0pDTEVOQlFVTXNSVUZCUlN4UFFVRlBPMWxCUTFZc1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRFVpeERRVUZETzFsQlEwUXNUVUZCVFN4RlFVRkZMRU5CUVVNc2FVSkJRV2xDTzFOQlF6TkNMRU5CUVVNc1EwRkJRenRMUVVOS08xTkJRVTBzU1VGQlNTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUTNCRkxEWkVRVUZoTEVOQlFVTXNUMEZCVHl4RlFVRkZPMWxCUTNKQ0xFTkJRVU1zUlVGQlJTeFBRVUZQTzFsQlExWXNUVUZCVFN4RlFVRkZMRU5CUVVNN1UwRkRWaXhEUVVGRExFTkJRVU03UzBGRFNqdFRRVUZOTzFGQlEwd3NUVUZCVFN4VlFVRlZMRWRCUTJRc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJRenRaUVVNMVFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETzFsQlF6VkNMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU03VVVGRGFFSXNOa1JCUVdFc1EwRkJReXhQUVVGUExFVkJRVVU3V1VGRGNrSXNRMEZCUXp0WlFVTkVMRU5CUVVNc1JVRkJSU3hQUVVGUExFZEJRVWNzVlVGQlZUdFpRVU4yUWl4TFFVRkxMRVZCUVVVc1EwRkJReXhwUWtGQmFVSTdXVUZEZWtJc1RVRkJUU3hGUVVGRkxGVkJRVlU3VTBGRGJrSXNRMEZCUXl4RFFVRkRPMHRCUTBvN1FVRkRTQ3hEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEhWQ1FVRjFRaXhIUVVGSExFTkJRM0pETEU5QlFXZEZMRVZCVFdoRkxFVkJRVVU3U1VGRFJpeE5RVUZOTEVkQlFVY3NSMEZCUnp0UlFVTldMRXRCUVVzc1JVRkJSU3hQUVVGUExFTkJRVU1zUzBGQlN6dFJRVU53UWl4TlFVRk5MRVZCUVVVc1QwRkJUeXhEUVVGRExFMUJRVTA3VVVGRGRFSXNRMEZCUXl4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRMW9zUTBGQlF5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMHRCUTJJc1EwRkJRenRKUVVWR0xFbEJRVWtzVDBGQlR5eERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRVZCUVVVN1VVRkRja0lzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZETVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTTdVVUZEZEVJc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJRenRMUVVNdlFqdEpRVVZFTEVsQlFVa3NUMEZCVHl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVU3VVVGRGRFSXNUVUZCVFN4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkROVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNSMEZCUnl4VlFVRlZMRU5CUVVNN1VVRkRlRUlzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExGVkJRVlVzUTBGQlF6dExRVU5vUXp0SlFVVkVMRTlCUVU4c1IwRkJSeXhEUVVGRE8wRkJRMklzUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyVnNaVzFsYm5RdmMybDZaVWhsYkhCbGNuTXVkSE0vWlRVeU5pSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ0I5SUdaeWIyMGdYQ0l1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCdGRYUmhkR1ZGYkdWdFpXNTBJSDBnWm5KdmJTQmNJaTR2YlhWMFlYUmxSV3hsYldWdWRGd2lPMXh1YVcxd2IzSjBJSHNnYVhOR2NtVmxSSEpoZDBWc1pXMWxiblFzSUdselRHbHVaV0Z5Uld4bGJXVnVkQ0I5SUdaeWIyMGdYQ0l1TDNSNWNHVkRhR1ZqYTNOY0lqdGNibWx0Y0c5eWRDQjdJRk5JU1VaVVgweFBRMHRKVGtkZlFVNUhURVVnZlNCbWNtOXRJRndpTGk0dlkyOXVjM1JoYm5SelhDSTdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnBjMGx1ZG1semFXSnNlVk50WVd4c1JXeGxiV1Z1ZENBOUlDaGNiaUFnWld4bGJXVnVkRG9nUlhoallXeHBaSEpoZDBWc1pXMWxiblFzWEc0cE9pQmliMjlzWldGdUlEMCtJSHRjYmlBZ2FXWWdLR2x6VEdsdVpXRnlSV3hsYldWdWRDaGxiR1Z0Wlc1MEtTQjhmQ0JwYzBaeVpXVkVjbUYzUld4bGJXVnVkQ2hsYkdWdFpXNTBLU2tnZTF4dUlDQWdJSEpsZEhWeWJpQmxiR1Z0Wlc1MExuQnZhVzUwY3k1c1pXNW5kR2dnUENBeU8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCbGJHVnRaVzUwTG5kcFpIUm9JRDA5UFNBd0lDWW1JR1ZzWlcxbGJuUXVhR1ZwWjJoMElEMDlQU0F3TzF4dWZUdGNibHh1THlvcVhHNGdLaUJOWVd0bGN5QmhJSEJsY21abFkzUWdjMmhoY0dVZ2IzSWdaR2xoWjI5dVlXd3ZhRzl5YVhwdmJuUmhiQzkyWlhKMGFXTmhiQ0JzYVc1bFhHNGdLaTljYm1WNGNHOXlkQ0JqYjI1emRDQm5aWFJRWlhKbVpXTjBSV3hsYldWdWRGTnBlbVVnUFNBb1hHNGdJR1ZzWlcxbGJuUlVlWEJsT2lCemRISnBibWNzWEc0Z0lIZHBaSFJvT2lCdWRXMWlaWElzWEc0Z0lHaGxhV2RvZERvZ2JuVnRZbVZ5TEZ4dUtUb2dleUIzYVdSMGFEb2diblZ0WW1WeU95Qm9aV2xuYUhRNklHNTFiV0psY2lCOUlEMCtJSHRjYmlBZ1kyOXVjM1FnWVdKelYybGtkR2dnUFNCTllYUm9MbUZpY3loM2FXUjBhQ2s3WEc0Z0lHTnZibk4wSUdGaWMwaGxhV2RvZENBOUlFMWhkR2d1WVdKektHaGxhV2RvZENrN1hHNWNiaUFnYVdZZ0tGeHVJQ0FnSUdWc1pXMWxiblJVZVhCbElEMDlQU0JjSW14cGJtVmNJaUI4ZkZ4dUlDQWdJR1ZzWlcxbGJuUlVlWEJsSUQwOVBTQmNJbUZ5Y205M1hDSWdmSHhjYmlBZ0lDQmxiR1Z0Wlc1MFZIbHdaU0E5UFQwZ1hDSm1jbVZsWkhKaGQxd2lYRzRnSUNrZ2UxeHVJQ0FnSUdOdmJuTjBJR3h2WTJ0bFpFRnVaMnhsSUQxY2JpQWdJQ0FnSUUxaGRHZ3VjbTkxYm1Rb1RXRjBhQzVoZEdGdUtHRmljMGhsYVdkb2RDQXZJR0ZpYzFkcFpIUm9LU0F2SUZOSVNVWlVYMHhQUTB0SlRrZGZRVTVIVEVVcElDcGNiaUFnSUNBZ0lGTklTVVpVWDB4UFEwdEpUa2RmUVU1SFRFVTdYRzRnSUNBZ2FXWWdLR3h2WTJ0bFpFRnVaMnhsSUQwOVBTQXdLU0I3WEc0Z0lDQWdJQ0JvWldsbmFIUWdQU0F3TzF4dUlDQWdJSDBnWld4elpTQnBaaUFvYkc5amEyVmtRVzVuYkdVZ1BUMDlJRTFoZEdndVVFa2dMeUF5S1NCN1hHNGdJQ0FnSUNCM2FXUjBhQ0E5SURBN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR2hsYVdkb2RDQTlYRzRnSUNBZ0lDQWdJRTFoZEdndWNtOTFibVFvWVdKelYybGtkR2dnS2lCTllYUm9MblJoYmloc2IyTnJaV1JCYm1kc1pTa3BJQ29nVFdGMGFDNXphV2R1S0dobGFXZG9kQ2tnZkh4Y2JpQWdJQ0FnSUNBZ2FHVnBaMmgwTzF4dUlDQWdJSDFjYmlBZ2ZTQmxiSE5sSUdsbUlDaGxiR1Z0Wlc1MFZIbHdaU0FoUFQwZ1hDSnpaV3hsWTNScGIyNWNJaWtnZTF4dUlDQWdJR2hsYVdkb2RDQTlJR0ZpYzFkcFpIUm9JQ29nVFdGMGFDNXphV2R1S0dobGFXZG9kQ2s3WEc0Z0lIMWNiaUFnY21WMGRYSnVJSHNnZDJsa2RHZ3NJR2hsYVdkb2RDQjlPMXh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUhKbGMybDZaVkJsY21abFkzUk1hVzVsUm05eVRsZElZVzVrYkdWeUlEMGdLRnh1SUNCbGJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEN4Y2JpQWdlRG9nYm5WdFltVnlMRnh1SUNCNU9pQnVkVzFpWlhJc1hHNHBJRDArSUh0Y2JpQWdZMjl1YzNRZ1lXNWphRzl5V0NBOUlHVnNaVzFsYm5RdWVDQXJJR1ZzWlcxbGJuUXVkMmxrZEdnN1hHNGdJR052Ym5OMElHRnVZMmh2Y2xrZ1BTQmxiR1Z0Wlc1MExua2dLeUJsYkdWdFpXNTBMbWhsYVdkb2REdGNiaUFnWTI5dWMzUWdaR2x6ZEdGdVkyVlViMEZ1WTJodmNsZ2dQU0I0SUMwZ1lXNWphRzl5V0R0Y2JpQWdZMjl1YzNRZ1pHbHpkR0Z1WTJWVWIwRnVZMmh2Y2xrZ1BTQjVJQzBnWVc1amFHOXlXVHRjYmlBZ2FXWWdLRTFoZEdndVlXSnpLR1JwYzNSaGJtTmxWRzlCYm1Ob2IzSllLU0E4SUUxaGRHZ3VZV0p6S0dScGMzUmhibU5sVkc5QmJtTm9iM0paS1NBdklESXBJSHRjYmlBZ0lDQnRkWFJoZEdWRmJHVnRaVzUwS0dWc1pXMWxiblFzSUh0Y2JpQWdJQ0FnSUhnNklHRnVZMmh2Y2xnc1hHNGdJQ0FnSUNCM2FXUjBhRG9nTUN4Y2JpQWdJQ0FnSUhrc1hHNGdJQ0FnSUNCb1pXbG5hSFE2SUMxa2FYTjBZVzVqWlZSdlFXNWphRzl5V1N4Y2JpQWdJQ0I5S1R0Y2JpQWdmU0JsYkhObElHbG1JQ2hOWVhSb0xtRmljeWhrYVhOMFlXNWpaVlJ2UVc1amFHOXlXU2tnUENCTllYUm9MbUZpY3lobGJHVnRaVzUwTG5kcFpIUm9LU0F2SURJcElIdGNiaUFnSUNCdGRYUmhkR1ZGYkdWdFpXNTBLR1ZzWlcxbGJuUXNJSHRjYmlBZ0lDQWdJSGs2SUdGdVkyaHZjbGtzWEc0Z0lDQWdJQ0JvWldsbmFIUTZJREFzWEc0Z0lDQWdmU2s3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnWTI5dWMzUWdibVY0ZEVobGFXZG9kQ0E5WEc0Z0lDQWdJQ0JOWVhSb0xuTnBaMjRvWkdsemRHRnVZMlZVYjBGdVkyaHZjbGtwSUNwY2JpQWdJQ0FnSUUxaGRHZ3VjMmxuYmloa2FYTjBZVzVqWlZSdlFXNWphRzl5V0NrZ0tseHVJQ0FnSUNBZ1pXeGxiV1Z1ZEM1M2FXUjBhRHRjYmlBZ0lDQnRkWFJoZEdWRmJHVnRaVzUwS0dWc1pXMWxiblFzSUh0Y2JpQWdJQ0FnSUhnc1hHNGdJQ0FnSUNCNU9pQmhibU5vYjNKWklDMGdibVY0ZEVobGFXZG9kQ3hjYmlBZ0lDQWdJSGRwWkhSb09pQXRaR2x6ZEdGdVkyVlViMEZ1WTJodmNsZ3NYRzRnSUNBZ0lDQm9aV2xuYUhRNklHNWxlSFJJWldsbmFIUXNYRzRnSUNBZ2ZTazdYRzRnSUgxY2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm5aWFJPYjNKdFlXeHBlbVZrUkdsdFpXNXphVzl1Y3lBOUlDaGNiaUFnWld4bGJXVnVkRG9nVUdsamF6eEZlR05oYkdsa2NtRjNSV3hsYldWdWRDd2dYQ0ozYVdSMGFGd2lJSHdnWENKb1pXbG5hSFJjSWlCOElGd2llRndpSUh3Z1hDSjVYQ0krTEZ4dUtUb2dlMXh1SUNCM2FXUjBhRG9nUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWENKM2FXUjBhRndpWFR0Y2JpQWdhR1ZwWjJoME9pQkZlR05oYkdsa2NtRjNSV3hsYldWdWRGdGNJbWhsYVdkb2RGd2lYVHRjYmlBZ2VEb2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYQ0o0WENKZE8xeHVJQ0I1T2lCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0Y0lubGNJbDA3WEc1OUlEMCtJSHRjYmlBZ1kyOXVjM1FnY21WMElEMGdlMXh1SUNBZ0lIZHBaSFJvT2lCbGJHVnRaVzUwTG5kcFpIUm9MRnh1SUNBZ0lHaGxhV2RvZERvZ1pXeGxiV1Z1ZEM1b1pXbG5hSFFzWEc0Z0lDQWdlRG9nWld4bGJXVnVkQzU0TEZ4dUlDQWdJSGs2SUdWc1pXMWxiblF1ZVN4Y2JpQWdmVHRjYmx4dUlDQnBaaUFvWld4bGJXVnVkQzUzYVdSMGFDQThJREFwSUh0Y2JpQWdJQ0JqYjI1emRDQnVaWGgwVjJsa2RHZ2dQU0JOWVhSb0xtRmljeWhsYkdWdFpXNTBMbmRwWkhSb0tUdGNiaUFnSUNCeVpYUXVkMmxrZEdnZ1BTQnVaWGgwVjJsa2RHZzdYRzRnSUNBZ2NtVjBMbmdnUFNCbGJHVnRaVzUwTG5nZ0xTQnVaWGgwVjJsa2RHZzdYRzRnSUgxY2JseHVJQ0JwWmlBb1pXeGxiV1Z1ZEM1b1pXbG5hSFFnUENBd0tTQjdYRzRnSUNBZ1kyOXVjM1FnYm1WNGRFaGxhV2RvZENBOUlFMWhkR2d1WVdKektHVnNaVzFsYm5RdWFHVnBaMmgwS1R0Y2JpQWdJQ0J5WlhRdWFHVnBaMmgwSUQwZ2JtVjRkRWhsYVdkb2REdGNiaUFnSUNCeVpYUXVlU0E5SUdWc1pXMWxiblF1ZVNBdElHNWxlSFJJWldsbmFIUTdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdjbVYwTzF4dWZUdGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9lbGVtZW50L3NpemVIZWxwZXJzLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9lbGVtZW50L3RleHRFbGVtZW50LnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vZWxlbWVudC90ZXh0RWxlbWVudC50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJyZWRyYXdUZXh0Qm91bmRpbmdCb3hcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZWRyYXdUZXh0Qm91bmRpbmdCb3gpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImJpbmRUZXh0VG9TaGFwZUFmdGVyRHVwbGljYXRpb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBiaW5kVGV4dFRvU2hhcGVBZnRlckR1cGxpY2F0aW9uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJoYW5kbGVCaW5kVGV4dFJlc2l6ZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGhhbmRsZUJpbmRUZXh0UmVzaXplKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJtZWFzdXJlVGV4dFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIG1lYXN1cmVUZXh0KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRBcHByb3hMaW5lSGVpZ2h0XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0QXBwcm94TGluZUhlaWdodCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwid3JhcFRleHRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB3cmFwVGV4dCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiY2hhcldpZHRoXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY2hhcldpZHRoKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRBcHByb3hNaW5MaW5lV2lkdGhcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRBcHByb3hNaW5MaW5lV2lkdGgpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEFwcHJveE1pbkxpbmVIZWlnaHRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRBcHByb3hNaW5MaW5lSGVpZ2h0KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRNaW5DaGFyV2lkdGhcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRNaW5DaGFyV2lkdGgpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEFwcHJveENoYXJzVG9GaXRJbldpZHRoXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0QXBwcm94Q2hhcnNUb0ZpdEluV2lkdGgpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEJvdW5kVGV4dEVsZW1lbnRJZFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldEJvdW5kVGV4dEVsZW1lbnRJZCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0Qm91bmRUZXh0RWxlbWVudFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldEJvdW5kVGV4dEVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldENvbnRhaW5lckVsZW1lbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRDb250YWluZXJFbGVtZW50KVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9tdXRhdGVFbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L211dGF0ZUVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29uc3RhbnRzICovIFxcXCIuLi8uLi9jb25zdGFudHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3NjZW5lX1NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZS9TY2VuZSAqLyBcXFwiLi4vLi4vc2NlbmUvU2NlbmUudHNcXFwiKTtcXG5cXG5cXG5cXG5cXG5jb25zdCByZWRyYXdUZXh0Qm91bmRpbmdCb3ggPSAoZWxlbWVudCwgY29udGFpbmVyLCBhcHBTdGF0ZSkgPT4ge1xcbiAgICBjb25zdCBtYXhXaWR0aCA9IGNvbnRhaW5lclxcbiAgICAgICAgPyBjb250YWluZXIud2lkdGggLSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQk9VTkRfVEVYVF9QQURESU5HICogMlxcbiAgICAgICAgOiB1bmRlZmluZWQ7XFxuICAgIGxldCB0ZXh0ID0gZWxlbWVudC50ZXh0O1xcbiAgICBpZiAoY29udGFpbmVyKSB7XFxuICAgICAgICB0ZXh0ID0gd3JhcFRleHQoZWxlbWVudC5vcmlnaW5hbFRleHQsICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmdldEZvbnRTdHJpbmcpKGVsZW1lbnQpLCBjb250YWluZXIud2lkdGgpO1xcbiAgICB9XFxuICAgIGNvbnN0IG1ldHJpY3MgPSBtZWFzdXJlVGV4dChlbGVtZW50Lm9yaWdpbmFsVGV4dCwgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2V0Rm9udFN0cmluZykoZWxlbWVudCksIG1heFdpZHRoKTtcXG4gICAgbGV0IGNvb3JkWSA9IGVsZW1lbnQueTtcXG4gICAgLy8gUmVzaXplIGNvbnRhaW5lciBhbmQgdmVydGljYWxseSBjZW50ZXIgYWxpZ24gdGhlIHRleHRcXG4gICAgaWYgKGNvbnRhaW5lcikge1xcbiAgICAgICAgY29vcmRZID0gY29udGFpbmVyLnkgKyBjb250YWluZXIuaGVpZ2h0IC8gMiAtIG1ldHJpY3MuaGVpZ2h0IC8gMjtcXG4gICAgICAgIGxldCBuZXh0SGVpZ2h0ID0gY29udGFpbmVyLmhlaWdodDtcXG4gICAgICAgIGlmIChtZXRyaWNzLmhlaWdodCA+IGNvbnRhaW5lci5oZWlnaHQgLSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQk9VTkRfVEVYVF9QQURESU5HICogMikge1xcbiAgICAgICAgICAgIG5leHRIZWlnaHQgPSBtZXRyaWNzLmhlaWdodCArIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5CT1VORF9URVhUX1BBRERJTkcgKiAyO1xcbiAgICAgICAgICAgIGNvb3JkWSA9IGNvbnRhaW5lci55ICsgbmV4dEhlaWdodCAvIDIgLSBtZXRyaWNzLmhlaWdodCAvIDI7XFxuICAgICAgICB9XFxuICAgICAgICAoMCxfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLm11dGF0ZUVsZW1lbnQpKGNvbnRhaW5lciwgeyBoZWlnaHQ6IG5leHRIZWlnaHQgfSk7XFxuICAgIH1cXG4gICAgKDAsX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5tdXRhdGVFbGVtZW50KShlbGVtZW50LCB7XFxuICAgICAgICB3aWR0aDogbWV0cmljcy53aWR0aCxcXG4gICAgICAgIGhlaWdodDogbWV0cmljcy5oZWlnaHQsXFxuICAgICAgICBiYXNlbGluZTogbWV0cmljcy5iYXNlbGluZSxcXG4gICAgICAgIHk6IGNvb3JkWSxcXG4gICAgICAgIHRleHQsXFxuICAgIH0pO1xcbn07XFxuY29uc3QgYmluZFRleHRUb1NoYXBlQWZ0ZXJEdXBsaWNhdGlvbiA9IChzY2VuZUVsZW1lbnRzLCBvbGRFbGVtZW50cywgb2xkSWRUb0R1cGxpY2F0ZWRJZCkgPT4ge1xcbiAgICBjb25zdCBzY2VuZUVsZW1lbnRNYXAgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5hcnJheVRvTWFwKShzY2VuZUVsZW1lbnRzKTtcXG4gICAgb2xkRWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xcbiAgICAgICAgdmFyIF9hO1xcbiAgICAgICAgY29uc3QgbmV3RWxlbWVudElkID0gb2xkSWRUb0R1cGxpY2F0ZWRJZC5nZXQoZWxlbWVudC5pZCk7XFxuICAgICAgICBjb25zdCBib3VuZFRleHRFbGVtZW50SWQgPSBnZXRCb3VuZFRleHRFbGVtZW50SWQoZWxlbWVudCk7XFxuICAgICAgICBpZiAoYm91bmRUZXh0RWxlbWVudElkKSB7XFxuICAgICAgICAgICAgY29uc3QgbmV3VGV4dEVsZW1lbnRJZCA9IG9sZElkVG9EdXBsaWNhdGVkSWQuZ2V0KGJvdW5kVGV4dEVsZW1lbnRJZCk7XFxuICAgICAgICAgICAgKDAsX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5tdXRhdGVFbGVtZW50KShzY2VuZUVsZW1lbnRNYXAuZ2V0KG5ld0VsZW1lbnRJZCksIHtcXG4gICAgICAgICAgICAgICAgYm91bmRFbGVtZW50czogKF9hID0gZWxlbWVudC5ib3VuZEVsZW1lbnRzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29uY2F0KHtcXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFxcXCJ0ZXh0XFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGlkOiBuZXdUZXh0RWxlbWVudElkLFxcbiAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAoMCxfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLm11dGF0ZUVsZW1lbnQpKHNjZW5lRWxlbWVudE1hcC5nZXQobmV3VGV4dEVsZW1lbnRJZCksIHtcXG4gICAgICAgICAgICAgICAgY29udGFpbmVySWQ6IG5ld0VsZW1lbnRJZCxcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH1cXG4gICAgfSk7XFxufTtcXG5jb25zdCBoYW5kbGVCaW5kVGV4dFJlc2l6ZSA9IChlbGVtZW50cywgdHJhbnNmb3JtSGFuZGxlVHlwZSkgPT4ge1xcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XFxuICAgICAgICBjb25zdCBib3VuZFRleHRFbGVtZW50SWQgPSBnZXRCb3VuZFRleHRFbGVtZW50SWQoZWxlbWVudCk7XFxuICAgICAgICBpZiAoYm91bmRUZXh0RWxlbWVudElkKSB7XFxuICAgICAgICAgICAgY29uc3QgdGV4dEVsZW1lbnQgPSBfc2NlbmVfU2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1tcXFwiZGVmYXVsdFxcXCJdLmdldFNjZW5lKGVsZW1lbnQpLmdldEVsZW1lbnQoYm91bmRUZXh0RWxlbWVudElkKTtcXG4gICAgICAgICAgICBpZiAodGV4dEVsZW1lbnQgJiYgdGV4dEVsZW1lbnQudGV4dCkge1xcbiAgICAgICAgICAgICAgICBpZiAoIWVsZW1lbnQpIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBsZXQgdGV4dCA9IHRleHRFbGVtZW50LnRleHQ7XFxuICAgICAgICAgICAgICAgIGxldCBuZXh0SGVpZ2h0ID0gdGV4dEVsZW1lbnQuaGVpZ2h0O1xcbiAgICAgICAgICAgICAgICBsZXQgY29udGFpbmVySGVpZ2h0ID0gZWxlbWVudC5oZWlnaHQ7XFxuICAgICAgICAgICAgICAgIGxldCBuZXh0QmFzZUxpbmUgPSB0ZXh0RWxlbWVudC5iYXNlbGluZTtcXG4gICAgICAgICAgICAgICAgaWYgKHRyYW5zZm9ybUhhbmRsZVR5cGUgIT09IFxcXCJuXFxcIiAmJiB0cmFuc2Zvcm1IYW5kbGVUeXBlICE9PSBcXFwic1xcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9IHdyYXBUZXh0KHRleHRFbGVtZW50Lm9yaWdpbmFsVGV4dCwgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2V0Rm9udFN0cmluZykodGV4dEVsZW1lbnQpLCBlbGVtZW50LndpZHRoKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpbWVuc2lvbnMgPSBtZWFzdXJlVGV4dCh0ZXh0LCAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5nZXRGb250U3RyaW5nKSh0ZXh0RWxlbWVudCksIGVsZW1lbnQud2lkdGgpO1xcbiAgICAgICAgICAgICAgICAgICAgbmV4dEhlaWdodCA9IGRpbWVuc2lvbnMuaGVpZ2h0O1xcbiAgICAgICAgICAgICAgICAgICAgbmV4dEJhc2VMaW5lID0gZGltZW5zaW9ucy5iYXNlbGluZTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAvLyBpbmNyZWFzZSBoZWlnaHQgaW4gY2FzZSB0ZXh0IGVsZW1lbnQgaGVpZ2h0IGV4Y2VlZHNcXG4gICAgICAgICAgICAgICAgaWYgKG5leHRIZWlnaHQgPiBlbGVtZW50LmhlaWdodCAtIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5CT1VORF9URVhUX1BBRERJTkcgKiAyKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSBuZXh0SGVpZ2h0ICsgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkJPVU5EX1RFWFRfUEFERElORyAqIDI7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaWZmID0gY29udGFpbmVySGVpZ2h0IC0gZWxlbWVudC5oZWlnaHQ7XFxuICAgICAgICAgICAgICAgICAgICAvLyBmaXggdGhlIHkgY29vcmQgd2hlbiByZXNpemluZyBmcm9tIG5lL253L25cXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRZID0gdHJhbnNmb3JtSGFuZGxlVHlwZSA9PT0gXFxcIm5lXFxcIiB8fFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybUhhbmRsZVR5cGUgPT09IFxcXCJud1xcXCIgfHxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1IYW5kbGVUeXBlID09PSBcXFwiblxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGVsZW1lbnQueSAtIGRpZmZcXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGVsZW1lbnQueTtcXG4gICAgICAgICAgICAgICAgICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ubXV0YXRlRWxlbWVudCkoZWxlbWVudCwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogY29udGFpbmVySGVpZ2h0LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHk6IHVwZGF0ZWRZLFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZFkgPSBlbGVtZW50LnkgKyBjb250YWluZXJIZWlnaHQgLyAyIC0gbmV4dEhlaWdodCAvIDI7XFxuICAgICAgICAgICAgICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ubXV0YXRlRWxlbWVudCkodGV4dEVsZW1lbnQsIHtcXG4gICAgICAgICAgICAgICAgICAgIHRleHQsXFxuICAgICAgICAgICAgICAgICAgICAvLyBwcmVzZXJ2ZSBwYWRkaW5nIGFuZCBzZXQgd2lkdGggY29ycmVjdGx5XFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogZWxlbWVudC53aWR0aCAtIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5CT1VORF9URVhUX1BBRERJTkcgKiAyLFxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBuZXh0SGVpZ2h0LFxcbiAgICAgICAgICAgICAgICAgICAgeDogZWxlbWVudC54ICsgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkJPVU5EX1RFWFRfUEFERElORyxcXG4gICAgICAgICAgICAgICAgICAgIHk6IHVwZGF0ZWRZLFxcbiAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmU6IG5leHRCYXNlTGluZSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICB9KTtcXG59O1xcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFzc2F0b3IvY2FudmFzLXRleHQtZWRpdG9yL2Jsb2IvbWFzdGVyL2xpYi9Gb250TWV0cmljcy5qc1xcbmNvbnN0IG1lYXN1cmVUZXh0ID0gKHRleHQsIGZvbnQsIG1heFdpZHRoKSA9PiB7XFxuICAgIHRleHQgPSB0ZXh0XFxuICAgICAgICAuc3BsaXQoXFxcIlxcXFxuXFxcIilcXG4gICAgICAgIC8vIHJlcGxhY2UgZW1wdHkgbGluZXMgd2l0aCBzaW5nbGUgc3BhY2UgYmVjYXVzZSBsZWFkaW5nL3RyYWlsaW5nIGVtcHR5XFxuICAgICAgICAvLyBsaW5lcyB3b3VsZCBiZSBzdHJpcHBlZCBmcm9tIGNvbXB1dGF0aW9uXFxuICAgICAgICAubWFwKCh4KSA9PiB4IHx8IFxcXCIgXFxcIilcXG4gICAgICAgIC5qb2luKFxcXCJcXFxcblxcXCIpO1xcbiAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFxcXCJkaXZcXFwiKTtcXG4gICAgY29udGFpbmVyLnN0eWxlLnBvc2l0aW9uID0gXFxcImFic29sdXRlXFxcIjtcXG4gICAgY29udGFpbmVyLnN0eWxlLndoaXRlU3BhY2UgPSBcXFwicHJlXFxcIjtcXG4gICAgY29udGFpbmVyLnN0eWxlLmZvbnQgPSBmb250O1xcbiAgICBjb250YWluZXIuc3R5bGUubWluSGVpZ2h0ID0gXFxcIjFlbVxcXCI7XFxuICAgIGlmIChtYXhXaWR0aCkge1xcbiAgICAgICAgY29uc3QgbGluZUhlaWdodCA9IGdldEFwcHJveExpbmVIZWlnaHQoZm9udCk7XFxuICAgICAgICBjb250YWluZXIuc3R5bGUud2lkdGggPSBgJHtTdHJpbmcobWF4V2lkdGgpfXB4YDtcXG4gICAgICAgIGNvbnRhaW5lci5zdHlsZS5tYXhXaWR0aCA9IGAke1N0cmluZyhtYXhXaWR0aCl9cHhgO1xcbiAgICAgICAgY29udGFpbmVyLnN0eWxlLm92ZXJmbG93ID0gXFxcImhpZGRlblxcXCI7XFxuICAgICAgICBjb250YWluZXIuc3R5bGUud29yZEJyZWFrID0gXFxcImJyZWFrLXdvcmRcXFwiO1xcbiAgICAgICAgY29udGFpbmVyLnN0eWxlLmxpbmVIZWlnaHQgPSBgJHtTdHJpbmcobGluZUhlaWdodCl9cHhgO1xcbiAgICAgICAgY29udGFpbmVyLnN0eWxlLndoaXRlU3BhY2UgPSBcXFwicHJlLXdyYXBcXFwiO1xcbiAgICB9XFxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTtcXG4gICAgY29udGFpbmVyLmlubmVyVGV4dCA9IHRleHQ7XFxuICAgIGNvbnN0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFxcXCJzcGFuXFxcIik7XFxuICAgIHNwYW4uc3R5bGUuZGlzcGxheSA9IFxcXCJpbmxpbmUtYmxvY2tcXFwiO1xcbiAgICBzcGFuLnN0eWxlLm92ZXJmbG93ID0gXFxcImhpZGRlblxcXCI7XFxuICAgIHNwYW4uc3R5bGUud2lkdGggPSBcXFwiMXB4XFxcIjtcXG4gICAgc3Bhbi5zdHlsZS5oZWlnaHQgPSBcXFwiMXB4XFxcIjtcXG4gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHNwYW4pO1xcbiAgICAvLyBCYXNlbGluZSBpcyBpbXBvcnRhbnQgZm9yIHBvc2l0aW9uaW5nIHRleHQgb24gY2FudmFzXFxuICAgIGNvbnN0IGJhc2VsaW5lID0gc3Bhbi5vZmZzZXRUb3AgKyBzcGFuLm9mZnNldEhlaWdodDtcXG4gICAgY29uc3Qgd2lkdGggPSBjb250YWluZXIub2Zmc2V0V2lkdGg7XFxuICAgIGNvbnN0IGhlaWdodCA9IGNvbnRhaW5lci5vZmZzZXRIZWlnaHQ7XFxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoY29udGFpbmVyKTtcXG4gICAgcmV0dXJuIHsgd2lkdGgsIGhlaWdodCwgYmFzZWxpbmUgfTtcXG59O1xcbmNvbnN0IERVTU1ZX1RFWFQgPSBcXFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5XFxcIi50b0xvY2FsZVVwcGVyQ2FzZSgpO1xcbmNvbnN0IGNhY2hlQXBwcm94TGluZUhlaWdodCA9IHt9O1xcbmNvbnN0IGdldEFwcHJveExpbmVIZWlnaHQgPSAoZm9udCkgPT4ge1xcbiAgICBpZiAoY2FjaGVBcHByb3hMaW5lSGVpZ2h0W2ZvbnRdKSB7XFxuICAgICAgICByZXR1cm4gY2FjaGVBcHByb3hMaW5lSGVpZ2h0W2ZvbnRdO1xcbiAgICB9XFxuICAgIGNhY2hlQXBwcm94TGluZUhlaWdodFtmb250XSA9IG1lYXN1cmVUZXh0KERVTU1ZX1RFWFQsIGZvbnQsIG51bGwpLmhlaWdodDtcXG4gICAgcmV0dXJuIGNhY2hlQXBwcm94TGluZUhlaWdodFtmb250XTtcXG59O1xcbmxldCBjYW52YXM7XFxuY29uc3QgZ2V0VGV4dFdpZHRoID0gKHRleHQsIGZvbnQpID0+IHtcXG4gICAgaWYgKCFjYW52YXMpIHtcXG4gICAgICAgIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXFxcImNhbnZhc1xcXCIpO1xcbiAgICB9XFxuICAgIGNvbnN0IGNhbnZhczJkQ29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KFxcXCIyZFxcXCIpO1xcbiAgICBjYW52YXMyZENvbnRleHQuZm9udCA9IGZvbnQ7XFxuICAgIGNvbnN0IG1ldHJpY3MgPSBjYW52YXMyZENvbnRleHQubWVhc3VyZVRleHQodGV4dCk7XFxuICAgIC8vIHNpbmNlIGluIHRlc3QgZW52IHRoZSBjYW52YXMgbWVhc3VyZVRleHQgYWxnb1xcbiAgICAvLyBkb2Vzbid0IG1lYXN1cmUgdGV4dCBhbmQgaW5zdGVhZCBqdXN0IHJldHVybnMgbnVtYmVyIG9mXFxuICAgIC8vIGNoYXJhY3RlcnMgaGVuY2Ugd2UgYXNzdW1lIHRoYXQgZWFjaCBsZXR0ZXJpcyAxMHB4XFxuICAgIGlmICgoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5pc1Rlc3RFbnYpKCkpIHtcXG4gICAgICAgIHJldHVybiBtZXRyaWNzLndpZHRoICogMTA7XFxuICAgIH1cXG4gICAgcmV0dXJuIG1ldHJpY3Mud2lkdGg7XFxufTtcXG5jb25zdCB3cmFwVGV4dCA9ICh0ZXh0LCBmb250LCBjb250YWluZXJXaWR0aCkgPT4ge1xcbiAgICBjb25zdCBtYXhXaWR0aCA9IGNvbnRhaW5lcldpZHRoIC0gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkJPVU5EX1RFWFRfUEFERElORyAqIDI7XFxuICAgIGNvbnN0IGxpbmVzID0gW107XFxuICAgIGNvbnN0IG9yaWdpbmFsTGluZXMgPSB0ZXh0LnNwbGl0KFxcXCJcXFxcblxcXCIpO1xcbiAgICBjb25zdCBzcGFjZVdpZHRoID0gZ2V0VGV4dFdpZHRoKFxcXCIgXFxcIiwgZm9udCk7XFxuICAgIG9yaWdpbmFsTGluZXMuZm9yRWFjaCgob3JpZ2luYWxMaW5lKSA9PiB7XFxuICAgICAgICBjb25zdCB3b3JkcyA9IG9yaWdpbmFsTGluZS5zcGxpdChcXFwiIFxcXCIpO1xcbiAgICAgICAgLy8gVGhpcyBtZWFucyBpdHMgbmV3bGluZSBzbyBwdXNoIGl0XFxuICAgICAgICBpZiAod29yZHMubGVuZ3RoID09PSAxICYmIHdvcmRzWzBdID09PSBcXFwiXFxcIikge1xcbiAgICAgICAgICAgIGxpbmVzLnB1c2god29yZHNbMF0pO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgbGV0IGN1cnJlbnRMaW5lID0gXFxcIlxcXCI7XFxuICAgICAgICAgICAgbGV0IGN1cnJlbnRMaW5lV2lkdGhUaWxsTm93ID0gMDtcXG4gICAgICAgICAgICBsZXQgaW5kZXggPSAwO1xcbiAgICAgICAgICAgIHdoaWxlIChpbmRleCA8IHdvcmRzLmxlbmd0aCkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50V29yZFdpZHRoID0gZ2V0VGV4dFdpZHRoKHdvcmRzW2luZGV4XSwgZm9udCk7XFxuICAgICAgICAgICAgICAgIC8vIFN0YXJ0IGJyZWFraW5nIGxvbmdlciB3b3JkcyBleGNlZWRpbmcgbWF4IHdpZHRoXFxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50V29yZFdpZHRoID49IG1heFdpZHRoKSB7XFxuICAgICAgICAgICAgICAgICAgICAvLyBwdXNoIGN1cnJlbnQgbGluZSBzaW5jZSB0aGUgY3VycmVudCB3b3JkIGV4Y2VlZHMgdGhlIG1heCB3aWR0aFxcbiAgICAgICAgICAgICAgICAgICAgLy8gc28gd2lsbCBiZSBhcHBlbmRlZCBpbiBuZXh0IGxpbmVcXG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50TGluZSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goY3VycmVudExpbmUpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudExpbmUgPSBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMaW5lV2lkdGhUaWxsTm93ID0gMDtcXG4gICAgICAgICAgICAgICAgICAgIHdoaWxlICh3b3Jkc1tpbmRleF0ubGVuZ3RoID4gMCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRDaGFyID0gd29yZHNbaW5kZXhdWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gY2hhcldpZHRoLmNhbGN1bGF0ZShjdXJyZW50Q2hhciwgZm9udCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudExpbmVXaWR0aFRpbGxOb3cgKz0gd2lkdGg7XFxuICAgICAgICAgICAgICAgICAgICAgICAgd29yZHNbaW5kZXhdID0gd29yZHNbaW5kZXhdLnNsaWNlKDEpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50TGluZVdpZHRoVGlsbE5vdyA+PSBtYXhXaWR0aCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IHJlbW92ZSBsYXN0IHRyYWlsaW5nIHNwYWNlIHdoaWNoIHdlIGhhdmUgYWRkZWQgd2hlbiBqb2luaW5nIHdvcmRzXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50TGluZS5zbGljZSgtMSkgPT09IFxcXCIgXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudExpbmUgPSBjdXJyZW50TGluZS5zbGljZSgwLCAtMSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZXMucHVzaChjdXJyZW50TGluZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMaW5lID0gY3VycmVudENoYXI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMaW5lV2lkdGhUaWxsTm93ID0gd2lkdGg7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50TGluZVdpZHRoVGlsbE5vdyA9PT0gbWF4V2lkdGgpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMaW5lID0gXFxcIlxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TGluZVdpZHRoVGlsbE5vdyA9IDA7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMaW5lICs9IGN1cnJlbnRDaGFyO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIC8vIHB1c2ggY3VycmVudCBsaW5lIGlmIGFwcGVuZGluZyBzcGFjZSBleGNlZWRzIG1heCB3aWR0aFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRMaW5lV2lkdGhUaWxsTm93ICsgc3BhY2VXaWR0aCA+PSBtYXhXaWR0aCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goY3VycmVudExpbmUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMaW5lID0gXFxcIlxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudExpbmVXaWR0aFRpbGxOb3cgPSAwO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BhY2UgbmVlZHMgdG8gYmUgYXBwZW5kZWQgYmVmb3JlIG5leHQgd29yZFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzIGN1cnJlbnRMaW5lIGNvbnRhaW5zIGNoYXJzIHdoaWNoIGNvdWxkbid0IGJlIGFwcGVuZGVkXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gcHJldmlvdXMgbGluZVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMaW5lICs9IFxcXCIgXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TGluZVdpZHRoVGlsbE5vdyArPSBzcGFjZVdpZHRoO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgaW5kZXgrKztcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0IGFwcGVuZGluZyB3b3JkcyBpbiBhIGxpbmUgdGlsbCBtYXggd2lkdGggcmVhY2hlZFxcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnRMaW5lV2lkdGhUaWxsTm93IDwgbWF4V2lkdGggJiYgaW5kZXggPCB3b3Jkcy5sZW5ndGgpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JkID0gd29yZHNbaW5kZXhdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMaW5lV2lkdGhUaWxsTm93ID0gZ2V0VGV4dFdpZHRoKGN1cnJlbnRMaW5lICsgd29yZCwgZm9udCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRMaW5lV2lkdGhUaWxsTm93ID49IG1heFdpZHRoKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goY3VycmVudExpbmUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TGluZVdpZHRoVGlsbE5vdyA9IDA7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMaW5lID0gXFxcIlxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMaW5lICs9IGAke3dvcmR9IGA7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUHVzaCB0aGUgd29yZCBpZiBhcHBlbmRpbmcgc3BhY2UgZXhjZWVkcyBtYXggd2lkdGhcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudExpbmVXaWR0aFRpbGxOb3cgKyBzcGFjZVdpZHRoID49IG1heFdpZHRoKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzLnB1c2goY3VycmVudExpbmUuc2xpY2UoMCwgLTEpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudExpbmUgPSBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudExpbmVXaWR0aFRpbGxOb3cgPSAwO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudExpbmVXaWR0aFRpbGxOb3cgPT09IG1heFdpZHRoKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudExpbmUgPSBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TGluZVdpZHRoVGlsbE5vdyA9IDA7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKGN1cnJlbnRMaW5lKSB7XFxuICAgICAgICAgICAgICAgIC8vIG9ubHkgcmVtb3ZlIGxhc3QgdHJhaWxpbmcgc3BhY2Ugd2hpY2ggd2UgaGF2ZSBhZGRlZCB3aGVuIGpvaW5pbmcgd29yZHNcXG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRMaW5lLnNsaWNlKC0xKSA9PT0gXFxcIiBcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50TGluZSA9IGN1cnJlbnRMaW5lLnNsaWNlKDAsIC0xKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKGN1cnJlbnRMaW5lKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgIH0pO1xcbiAgICByZXR1cm4gbGluZXMuam9pbihcXFwiXFxcXG5cXFwiKTtcXG59O1xcbmNvbnN0IGNoYXJXaWR0aCA9ICgoKSA9PiB7XFxuICAgIGNvbnN0IGNhY2hlZENoYXJXaWR0aCA9IHt9O1xcbiAgICBjb25zdCBjYWxjdWxhdGUgPSAoY2hhciwgZm9udCkgPT4ge1xcbiAgICAgICAgY29uc3QgYXNjaWkgPSBjaGFyLmNoYXJDb2RlQXQoMCk7XFxuICAgICAgICBpZiAoIWNhY2hlZENoYXJXaWR0aFtmb250XSkge1xcbiAgICAgICAgICAgIGNhY2hlZENoYXJXaWR0aFtmb250XSA9IFtdO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKCFjYWNoZWRDaGFyV2lkdGhbZm9udF1bYXNjaWldKSB7XFxuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBnZXRUZXh0V2lkdGgoY2hhciwgZm9udCk7XFxuICAgICAgICAgICAgY2FjaGVkQ2hhcldpZHRoW2ZvbnRdW2FzY2lpXSA9IHdpZHRoO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIGNhY2hlZENoYXJXaWR0aFtmb250XVthc2NpaV07XFxuICAgIH07XFxuICAgIGNvbnN0IGdldENhY2hlID0gKGZvbnQpID0+IHtcXG4gICAgICAgIHJldHVybiBjYWNoZWRDaGFyV2lkdGhbZm9udF07XFxuICAgIH07XFxuICAgIHJldHVybiB7XFxuICAgICAgICBjYWxjdWxhdGUsXFxuICAgICAgICBnZXRDYWNoZSxcXG4gICAgfTtcXG59KSgpO1xcbmNvbnN0IGdldEFwcHJveE1pbkxpbmVXaWR0aCA9IChmb250KSA9PiB7XFxuICAgIGNvbnN0IG1pbkNoYXJXaWR0aCA9IGdldE1pbkNoYXJXaWR0aChmb250KTtcXG4gICAgaWYgKG1pbkNoYXJXaWR0aCA9PT0gMCkge1xcbiAgICAgICAgcmV0dXJuIChtZWFzdXJlVGV4dChEVU1NWV9URVhULnNwbGl0KFxcXCJcXFwiKS5qb2luKFxcXCJcXFxcblxcXCIpLCBmb250KS53aWR0aCArXFxuICAgICAgICAgICAgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkJPVU5EX1RFWFRfUEFERElORyAqIDIpO1xcbiAgICB9XFxuICAgIHJldHVybiBtaW5DaGFyV2lkdGggKyBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQk9VTkRfVEVYVF9QQURESU5HICogMjtcXG59O1xcbmNvbnN0IGdldEFwcHJveE1pbkxpbmVIZWlnaHQgPSAoZm9udCkgPT4ge1xcbiAgICByZXR1cm4gZ2V0QXBwcm94TGluZUhlaWdodChmb250KSArIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5CT1VORF9URVhUX1BBRERJTkcgKiAyO1xcbn07XFxuY29uc3QgZ2V0TWluQ2hhcldpZHRoID0gKGZvbnQpID0+IHtcXG4gICAgY29uc3QgY2FjaGUgPSBjaGFyV2lkdGguZ2V0Q2FjaGUoZm9udCk7XFxuICAgIGlmICghY2FjaGUpIHtcXG4gICAgICAgIHJldHVybiAwO1xcbiAgICB9XFxuICAgIGNvbnN0IGNhY2hlV2l0aE91dEVtcHR5ID0gY2FjaGUuZmlsdGVyKCh2YWwpID0+IHZhbCAhPT0gdW5kZWZpbmVkKTtcXG4gICAgcmV0dXJuIE1hdGgubWluKC4uLmNhY2hlV2l0aE91dEVtcHR5KTtcXG59O1xcbmNvbnN0IGdldEFwcHJveENoYXJzVG9GaXRJbldpZHRoID0gKGZvbnQsIHdpZHRoKSA9PiB7XFxuICAgIC8vIEdlbmVyYWxseSBsb3dlciBjYXNlIGlzIHVzZWQgc28gY29udmVydGluZyB0byBsb3dlciBjYXNlXFxuICAgIGNvbnN0IGR1bW15VGV4dCA9IERVTU1ZX1RFWFQudG9Mb2NhbGVMb3dlckNhc2UoKTtcXG4gICAgY29uc3QgYmF0Y2hMZW5ndGggPSA2O1xcbiAgICBsZXQgaW5kZXggPSAwO1xcbiAgICBsZXQgd2lkdGhUaWxsTm93ID0gMDtcXG4gICAgbGV0IHN0ciA9IFxcXCJcXFwiO1xcbiAgICB3aGlsZSAod2lkdGhUaWxsTm93IDw9IHdpZHRoKSB7XFxuICAgICAgICBjb25zdCBiYXRjaCA9IGR1bW15VGV4dC5zdWJzdHIoaW5kZXgsIGluZGV4ICsgYmF0Y2hMZW5ndGgpO1xcbiAgICAgICAgc3RyICs9IGJhdGNoO1xcbiAgICAgICAgd2lkdGhUaWxsTm93ICs9IGdldFRleHRXaWR0aChzdHIsIGZvbnQpO1xcbiAgICAgICAgaWYgKGluZGV4ID09PSBkdW1teVRleHQubGVuZ3RoIC0gMSkge1xcbiAgICAgICAgICAgIGluZGV4ID0gMDtcXG4gICAgICAgIH1cXG4gICAgICAgIGluZGV4ID0gaW5kZXggKyBiYXRjaExlbmd0aDtcXG4gICAgfVxcbiAgICB3aGlsZSAod2lkdGhUaWxsTm93ID4gd2lkdGgpIHtcXG4gICAgICAgIHN0ciA9IHN0ci5zdWJzdHIoMCwgc3RyLmxlbmd0aCAtIDEpO1xcbiAgICAgICAgd2lkdGhUaWxsTm93ID0gZ2V0VGV4dFdpZHRoKHN0ciwgZm9udCk7XFxuICAgIH1cXG4gICAgcmV0dXJuIHN0ci5sZW5ndGg7XFxufTtcXG5jb25zdCBnZXRCb3VuZFRleHRFbGVtZW50SWQgPSAoY29udGFpbmVyKSA9PiB7XFxuICAgIHZhciBfYSwgX2I7XFxuICAgIHJldHVybiAoX2IgPSAoX2EgPSBjb250YWluZXIgPT09IG51bGwgfHwgY29udGFpbmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb250YWluZXIuYm91bmRFbGVtZW50cykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZpbHRlcigoZWxlKSA9PiBlbGUudHlwZSA9PT0gXFxcInRleHRcXFwiKVswXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmlkO1xcbn07XFxuY29uc3QgZ2V0Qm91bmRUZXh0RWxlbWVudCA9IChlbGVtZW50KSA9PiB7XFxuICAgIHZhciBfYTtcXG4gICAgaWYgKCFlbGVtZW50KSB7XFxuICAgICAgICByZXR1cm4gbnVsbDtcXG4gICAgfVxcbiAgICBjb25zdCBib3VuZFRleHRFbGVtZW50SWQgPSBnZXRCb3VuZFRleHRFbGVtZW50SWQoZWxlbWVudCk7XFxuICAgIGlmIChib3VuZFRleHRFbGVtZW50SWQpIHtcXG4gICAgICAgIHJldHVybiAoKChfYSA9IF9zY2VuZV9TY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fW1xcXCJkZWZhdWx0XFxcIl0uZ2V0U2NlbmUoZWxlbWVudCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRFbGVtZW50KGJvdW5kVGV4dEVsZW1lbnRJZCkpIHx8IG51bGwpO1xcbiAgICB9XFxuICAgIHJldHVybiBudWxsO1xcbn07XFxuY29uc3QgZ2V0Q29udGFpbmVyRWxlbWVudCA9IChlbGVtZW50KSA9PiB7XFxuICAgIHZhciBfYTtcXG4gICAgaWYgKCFlbGVtZW50KSB7XFxuICAgICAgICByZXR1cm4gbnVsbDtcXG4gICAgfVxcbiAgICBpZiAoZWxlbWVudC5jb250YWluZXJJZCkge1xcbiAgICAgICAgcmV0dXJuICgoX2EgPSBfc2NlbmVfU2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1tcXFwiZGVmYXVsdFxcXCJdLmdldFNjZW5lKGVsZW1lbnQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0RWxlbWVudChlbGVtZW50LmNvbnRhaW5lcklkKSkgfHwgbnVsbDtcXG4gICAgfVxcbiAgICByZXR1cm4gbnVsbDtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2Wld4bGJXVnVkQzkwWlhoMFJXeGxiV1Z1ZEM1MGN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN096czdPenM3T3pzN096czdRVUZCWjBVN1FVRlRhRUk3UVVGRFJUdEJRVVZtTzBGQlJ6VkNMRTFCUVUwc2NVSkJRWEZDTEVkQlFVY3NRMEZEYmtNc1QwRkJPRUlzUlVGRE9VSXNVMEZCYlVNc1JVRkRia01zVVVGQmEwSXNSVUZEYkVJc1JVRkJSVHRKUVVOR0xFMUJRVTBzVVVGQlVTeEhRVUZITEZOQlFWTTdVVUZEZUVJc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVkQlFVY3NNRVJCUVd0Q0xFZEJRVWNzUTBGQlF6dFJRVU14UXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRE8wbEJRMlFzU1VGQlNTeEpRVUZKTEVkQlFVY3NUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJRenRKUVVWNFFpeEpRVUZKTEZOQlFWTXNSVUZCUlR0UlFVTmlMRWxCUVVrc1IwRkJSeXhSUVVGUkxFTkJRMklzVDBGQlR5eERRVUZETEZsQlFWa3NSVUZEY0VJc2NVUkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZEZEVJc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGRGFFSXNRMEZCUXp0TFFVTklPMGxCUTBRc1RVRkJUU3hQUVVGUExFZEJRVWNzVjBGQlZ5eERRVU42UWl4UFFVRlBMRU5CUVVNc1dVRkJXU3hGUVVOd1FpeHhSRUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVOMFFpeFJRVUZSTEVOQlExUXNRMEZCUXp0SlFVVkdMRWxCUVVrc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZGtJc2QwUkJRWGRFTzBsQlEzaEVMRWxCUVVrc1UwRkJVeXhGUVVGRk8xRkJRMklzVFVGQlRTeEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGFrVXNTVUZCU1N4VlFVRlZMRWRCUVVjc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF6dFJRVU5zUXl4SlFVRkpMRTlCUVU4c1EwRkJReXhOUVVGTkxFZEJRVWNzVTBGQlV5eERRVUZETEUxQlFVMHNSMEZCUnl3d1JFRkJhMElzUjBGQlJ5eERRVUZETEVWQlFVVTdXVUZET1VRc1ZVRkJWU3hIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVkQlFVY3NNRVJCUVd0Q0xFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEzSkVMRTFCUVUwc1IwRkJSeXhUUVVGVExFTkJRVU1zUTBGQlF5eEhRVUZITEZWQlFWVXNSMEZCUnl4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZETlVRN1VVRkRSQ3cyUkVGQllTeERRVUZETEZOQlFWTXNSVUZCUlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzB0QlEyeEVPMGxCUlVRc05rUkJRV0VzUTBGQlF5eFBRVUZQTEVWQlFVVTdVVUZEY2tJc1MwRkJTeXhGUVVGRkxFOUJRVThzUTBGQlF5eExRVUZMTzFGQlEzQkNMRTFCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU1zVFVGQlRUdFJRVU4wUWl4UlFVRlJMRVZCUVVVc1QwRkJUeXhEUVVGRExGRkJRVkU3VVVGRE1VSXNRMEZCUXl4RlFVRkZMRTFCUVUwN1VVRkRWQ3hKUVVGSk8wdEJRMHdzUTBGQlF5eERRVUZETzBGQlEwd3NRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3dyUWtGQkswSXNSMEZCUnl4RFFVTTNReXhoUVVGclF5eEZRVU5zUXl4WFFVRm5ReXhGUVVOb1F5eHRRa0ZCTUVVc1JVRkRjRVVzUlVGQlJUdEpRVU5TTEUxQlFVMHNaVUZCWlN4SFFVRkhMR3RFUVVGVkxFTkJRVU1zWVVGQllTeERRVWN2UXl4RFFVRkRPMGxCUTBZc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZPenRSUVVNNVFpeE5RVUZOTEZsQlFWa3NSMEZCUnl4dFFrRkJiVUlzUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJWeXhEUVVGRE8xRkJRMjVGTEUxQlFVMHNhMEpCUVd0Q0xFZEJRVWNzY1VKQlFYRkNMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRk1VUXNTVUZCU1N4clFrRkJhMElzUlVGQlJUdFpRVU4wUWl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEcxQ1FVRnRRaXhEUVVGRExFZEJRVWNzUTBGQlF5eHJRa0ZCYTBJc1EwRkJSU3hEUVVGRE8xbEJRM1JGTERaRVFVRmhMRU5CUTFnc1pVRkJaU3hEUVVGRExFZEJRVWNzUTBGQlF5eFpRVUZaTEVOQlFUaENMRVZCUXpsRU8yZENRVU5GTEdGQlFXRXNSVUZCUlN4aFFVRlBMRU5CUVVNc1lVRkJZU3d3UTBGQlJTeE5RVUZOTEVOQlFVTTdiMEpCUXpORExFbEJRVWtzUlVGQlJTeE5RVUZOTzI5Q1FVTmFMRVZCUVVVc1JVRkJSU3huUWtGQlowSTdhVUpCUTNKQ0xFTkJRVU03WVVGRFNDeERRVU5HTEVOQlFVTTdXVUZEUml3MlJFRkJZU3hEUVVOWUxHVkJRV1VzUTBGQlF5eEhRVUZITEVOQlFVTXNaMEpCUVdkQ0xFTkJRVEJDTEVWQlF6bEVPMmRDUVVORkxGZEJRVmNzUlVGQlJTeFpRVUZaTzJGQlF6RkNMRU5CUTBZc1EwRkJRenRUUVVOSU8wbEJRMGdzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVEN4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxHOUNRVUZ2UWl4SFFVRkhMRU5CUTJ4RExGRkJRV2RFTEVWQlEyaEVMRzFDUVVFMlF5eEZRVU0zUXl4RlFVRkZPMGxCUTBZc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZPMUZCUXpOQ0xFMUJRVTBzYTBKQlFXdENMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRNVVFzU1VGQlNTeHJRa0ZCYTBJc1JVRkJSVHRaUVVOMFFpeE5RVUZOTEZkQlFWY3NSMEZCUnl3MlJFRkJZeXhEUVVGRExFOUJRVThzUTBGQlJTeERRVUZETEZWQlFWVXNRMEZEY2tRc2EwSkJRV3RDTEVOQlEwMHNRMEZCUXp0WlFVTXpRaXhKUVVGSkxGZEJRVmNzU1VGQlNTeFhRVUZYTEVOQlFVTXNTVUZCU1N4RlFVRkZPMmRDUVVOdVF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZPMjlDUVVOYUxFOUJRVTg3YVVKQlExSTdaMEpCUTBRc1NVRkJTU3hKUVVGSkxFZEJRVWNzVjBGQlZ5eERRVUZETEVsQlFVa3NRMEZCUXp0blFrRkROVUlzU1VGQlNTeFZRVUZWTEVkQlFVY3NWMEZCVnl4RFFVRkRMRTFCUVUwc1EwRkJRenRuUWtGRGNFTXNTVUZCU1N4bFFVRmxMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF6dG5Ra0ZEY2tNc1NVRkJTU3haUVVGWkxFZEJRVWNzVjBGQlZ5eERRVUZETEZGQlFWRXNRMEZCUXp0blFrRkRlRU1zU1VGQlNTeHRRa0ZCYlVJc1MwRkJTeXhIUVVGSExFbEJRVWtzYlVKQlFXMUNMRXRCUVVzc1IwRkJSeXhGUVVGRk8yOUNRVU01UkN4SlFVRkpMRWxCUVVrc1JVRkJSVHQzUWtGRFVpeEpRVUZKTEVkQlFVY3NVVUZCVVN4RFFVTmlMRmRCUVZjc1EwRkJReXhaUVVGWkxFVkJRM2hDTEhGRVFVRmhMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRekZDTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUTJRc1EwRkJRenR4UWtGRFNEdHZRa0ZGUkN4TlFVRk5MRlZCUVZVc1IwRkJSeXhYUVVGWExFTkJRelZDTEVsQlFVa3NSVUZEU2l4eFJFRkJZU3hEUVVGRExGZEJRVmNzUTBGQlF5eEZRVU14UWl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVOa0xFTkJRVU03YjBKQlEwWXNWVUZCVlN4SFFVRkhMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU03YjBKQlF5OUNMRmxCUVZrc1IwRkJSeXhWUVVGVkxFTkJRVU1zVVVGQlVTeERRVUZETzJsQ1FVTndRenRuUWtGRFJDeHpSRUZCYzBRN1owSkJRM1JFTEVsQlFVa3NWVUZCVlN4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFZEJRVWNzTUVSQlFXdENMRWRCUVVjc1EwRkJReXhGUVVGRk8yOUNRVU40UkN4bFFVRmxMRWRCUVVjc1ZVRkJWU3hIUVVGSExEQkVRVUZyUWl4SFFVRkhMRU5CUVVNc1EwRkJRenR2UWtGRGRFUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1pVRkJaU3hIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTTdiMEpCUXpsRExEWkRRVUUyUXp0dlFrRkROME1zVFVGQlRTeFJRVUZSTEVkQlExb3NiVUpCUVcxQ0xFdEJRVXNzU1VGQlNUdDNRa0ZETlVJc2JVSkJRVzFDTEV0QlFVc3NTVUZCU1R0M1FrRkROVUlzYlVKQlFXMUNMRXRCUVVzc1IwRkJSenQzUWtGRGVrSXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNUdDNRa0ZEYkVJc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTJoQ0xEWkVRVUZoTEVOQlFVTXNUMEZCVHl4RlFVRkZPM2RDUVVOeVFpeE5RVUZOTEVWQlFVVXNaVUZCWlR0M1FrRkRka0lzUTBGQlF5eEZRVUZGTEZGQlFWRTdjVUpCUTFvc1EwRkJReXhEUVVGRE8ybENRVU5LTzJkQ1FVVkVMRTFCUVUwc1VVRkJVU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NaVUZCWlN4SFFVRkhMRU5CUVVNc1IwRkJSeXhWUVVGVkxFZEJRVWNzUTBGQlF5eERRVUZETzJkQ1FVTnNSU3cyUkVGQllTeERRVUZETEZkQlFWY3NSVUZCUlR0dlFrRkRla0lzU1VGQlNUdHZRa0ZEU2l3eVEwRkJNa003YjBKQlF6TkRMRXRCUVVzc1JVRkJSU3hQUVVGUExFTkJRVU1zUzBGQlN5eEhRVUZITERCRVFVRnJRaXhIUVVGSExFTkJRVU03YjBKQlF6ZERMRTFCUVUwc1JVRkJSU3hWUVVGVk8yOUNRVU5zUWl4RFFVRkRMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlJ5d3dSRUZCYTBJN2IwSkJRMnBETEVOQlFVTXNSVUZCUlN4UlFVRlJPMjlDUVVOWUxGRkJRVkVzUlVGQlJTeFpRVUZaTzJsQ1FVTjJRaXhEUVVGRExFTkJRVU03WVVGRFNqdFRRVU5HTzBsQlEwZ3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRUQ3hEUVVGRExFTkJRVU03UVVGRlJpeHBSa0ZCYVVZN1FVRkRNVVVzVFVGQlRTeFhRVUZYTEVkQlFVY3NRMEZEZWtJc1NVRkJXU3hGUVVOYUxFbEJRV2RDTEVWQlEyaENMRkZCUVhkQ0xFVkJRM2hDTEVWQlFVVTdTVUZEUml4SlFVRkpMRWRCUVVjc1NVRkJTVHRUUVVOU0xFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTTdVVUZEV2l4MVJVRkJkVVU3VVVGRGRrVXNNa05CUVRKRE8xTkJRekZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVkQlFVY3NRMEZCUXp0VFFVTndRaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEWkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhSUVVGUkxFTkJRVU1zWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUTJoRUxGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4SFFVRkhMRlZCUVZVc1EwRkJRenRKUVVOMFF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRlZCUVZVc1IwRkJSeXhMUVVGTExFTkJRVU03U1VGRGJrTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETzBsQlF6VkNMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eEhRVUZITEV0QlFVc3NRMEZCUXp0SlFVTnNReXhKUVVGSkxGRkJRVkVzUlVGQlJUdFJRVU5hTEUxQlFVMHNWVUZCVlN4SFFVRkhMRzFDUVVGdFFpeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUXpkRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4SFFVRkhMRWRCUVVjc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTTdVVUZEYUVRc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVkQlFVY3NSMEZCUnl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF6dFJRVU51UkN4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUjBGQlJ5eFJRVUZSTEVOQlFVTTdVVUZEY0VNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVkQlFVY3NXVUZCV1N4RFFVRkRPMUZCUTNwRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNWVUZCVlN4SFFVRkhMRWRCUVVjc1RVRkJUU3hEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTTdVVUZEZGtRc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eFZRVUZWTEVkQlFVY3NWVUZCVlN4RFFVRkRPMHRCUTNwRE8wbEJRMFFzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03U1VGRGNrTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU03U1VGRk0wSXNUVUZCVFN4SlFVRkpMRWRCUVVjc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0SlFVTTFReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4alFVRmpMRU5CUVVNN1NVRkRjRU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRWRCUVVjc1VVRkJVU3hEUVVGRE8wbEJReTlDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF6dEpRVU42UWl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUjBGQlJ5eExRVUZMTEVOQlFVTTdTVUZETVVJc1UwRkJVeXhEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTTFRaXgxUkVGQmRVUTdTVUZEZGtRc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRE8wbEJRM0JFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRk5CUVZNc1EwRkJReXhYUVVGWExFTkJRVU03U1VGRmNFTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1UwRkJVeXhEUVVGRExGbEJRVmtzUTBGQlF6dEpRVU4wUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0SlFVVnlReXhQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4UlFVRlJMRVZCUVVVc1EwRkJRenRCUVVOeVF5eERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MRlZCUVZVc1IwRkJSeXh6UTBGQmMwTXNRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeERRVUZETzBGQlF6bEZMRTFCUVUwc2NVSkJRWEZDTEVkQlFXdERMRVZCUVVVc1EwRkJRenRCUVVWNlJDeE5RVUZOTEcxQ1FVRnRRaXhIUVVGSExFTkJRVU1zU1VGQlowSXNSVUZCUlN4RlFVRkZPMGxCUTNSRUxFbEJRVWtzY1VKQlFYRkNMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3VVVGREwwSXNUMEZCVHl4eFFrRkJjVUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0TFFVTndRenRKUVVORUxIRkNRVUZ4UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExGZEJRVmNzUTBGQlF5eFZRVUZWTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dEpRVU42UlN4UFFVRlBMSEZDUVVGeFFpeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTNKRExFTkJRVU1zUTBGQlF6dEJRVVZHTEVsQlFVa3NUVUZCY1VNc1EwRkJRenRCUVVNeFF5eE5RVUZOTEZsQlFWa3NSMEZCUnl4RFFVRkRMRWxCUVZrc1JVRkJSU3hKUVVGblFpeEZRVUZGTEVWQlFVVTdTVUZEZEVRc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJUdFJRVU5ZTEUxQlFVMHNSMEZCUnl4UlFVRlJMRU5CUVVNc1lVRkJZU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzB0QlF6TkRPMGxCUTBRc1RVRkJUU3hsUVVGbExFZEJRVWNzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVVc1EwRkJRenRKUVVOcVJDeGxRVUZsTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVVMVFpeE5RVUZOTEU5QlFVOHNSMEZCUnl4bFFVRmxMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlEyeEVMR2RFUVVGblJEdEpRVU5vUkN3d1JFRkJNRVE3U1VGRE1VUXNjVVJCUVhGRU8wbEJRM0pFTEVsQlFVa3NhVVJCUVZNc1JVRkJSU3hGUVVGRk8xRkJRMllzVDBGQlR5eFBRVUZQTEVOQlFVTXNTMEZCU3l4SFFVRkhMRVZCUVVVc1EwRkJRenRMUVVNelFqdEpRVVZFTEU5QlFVOHNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJRenRCUVVOMlFpeERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MRkZCUVZFc1IwRkJSeXhEUVVOMFFpeEpRVUZaTEVWQlExb3NTVUZCWjBJc1JVRkRhRUlzWTBGQmMwSXNSVUZEZEVJc1JVRkJSVHRKUVVOR0xFMUJRVTBzVVVGQlVTeEhRVUZITEdOQlFXTXNSMEZCUnl3d1JFRkJhMElzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZGZWtRc1RVRkJUU3hMUVVGTExFZEJRV3RDTEVWQlFVVXNRMEZCUXp0SlFVTm9ReXhOUVVGTkxHRkJRV0VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRM1pETEUxQlFVMHNWVUZCVlN4SFFVRkhMRmxCUVZrc1EwRkJReXhIUVVGSExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBNc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEZsQlFWa3NSVUZCUlN4RlFVRkZPMUZCUTNKRExFMUJRVTBzUzBGQlN5eEhRVUZITEZsQlFWa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGRFTXNiME5CUVc5RE8xRkJRM0JETEVsQlFVa3NTMEZCU3l4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSVHRaUVVONlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEzUkNPMkZCUVUwN1dVRkRUQ3hKUVVGSkxGZEJRVmNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEY2tJc1NVRkJTU3gxUWtGQmRVSXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkZhRU1zU1VGQlNTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJRc1QwRkJUeXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEUxQlFVMHNSVUZCUlR0blFrRkRNMElzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhaUVVGWkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8yZENRVVV4UkN4clJFRkJhMFE3WjBKQlEyeEVMRWxCUVVrc1owSkJRV2RDTEVsQlFVa3NVVUZCVVN4RlFVRkZPMjlDUVVOb1F5eHBSVUZCYVVVN2IwSkJRMnBGTEcxRFFVRnRRenR2UWtGRGJrTXNTVUZCU1N4WFFVRlhMRVZCUVVVN2QwSkJRMllzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenR4UWtGRGVrSTdiMEpCUTBRc1YwRkJWeXhIUVVGSExFVkJRVVVzUTBGQlF6dHZRa0ZEYWtJc2RVSkJRWFZDTEVkQlFVY3NRMEZCUXl4RFFVRkRPMjlDUVVNMVFpeFBRVUZQTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzNkQ1FVTTVRaXhOUVVGTkxGZEJRVmNzUjBGQlJ5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03ZDBKQlEzQkRMRTFCUVUwc1MwRkJTeXhIUVVGSExGTkJRVk1zUTBGQlF5eFRRVUZUTEVOQlFVTXNWMEZCVnl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8zZENRVU55UkN4MVFrRkJkVUlzU1VGQlNTeExRVUZMTEVOQlFVTTdkMEpCUTJwRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPM2RDUVVWeVF5eEpRVUZKTEhWQ1FVRjFRaXhKUVVGSkxGRkJRVkVzUlVGQlJUczBRa0ZEZGtNc2VVVkJRWGxGT3pSQ1FVTjZSU3hKUVVGSkxGZEJRVmNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhIUVVGSExFVkJRVVU3WjBOQlEycERMRmRCUVZjc1IwRkJSeXhYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE96WkNRVU40UXpzMFFrRkRSQ3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPelJDUVVONFFpeFhRVUZYTEVkQlFVY3NWMEZCVnl4RFFVRkRPelJDUVVNeFFpeDFRa0ZCZFVJc1IwRkJSeXhMUVVGTExFTkJRVU03TkVKQlEyaERMRWxCUVVrc2RVSkJRWFZDTEV0QlFVc3NVVUZCVVN4RlFVRkZPMmREUVVONFF5eFhRVUZYTEVkQlFVY3NSVUZCUlN4RFFVRkRPMmREUVVOcVFpeDFRa0ZCZFVJc1IwRkJSeXhEUVVGRExFTkJRVU03TmtKQlF6ZENPM2xDUVVOR096WkNRVUZOT3pSQ1FVTk1MRmRCUVZjc1NVRkJTU3hYUVVGWExFTkJRVU03ZVVKQlF6VkNPM0ZDUVVOR08yOUNRVU5FTEhsRVFVRjVSRHR2UWtGRGVrUXNTVUZCU1N4MVFrRkJkVUlzUjBGQlJ5eFZRVUZWTEVsQlFVa3NVVUZCVVN4RlFVRkZPM2RDUVVOd1JDeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8zZENRVU40UWl4WFFVRlhMRWRCUVVjc1JVRkJSU3hEUVVGRE8zZENRVU5xUWl4MVFrRkJkVUlzUjBGQlJ5eERRVUZETEVOQlFVTTdjVUpCUXpkQ08zbENRVUZOTzNkQ1FVTk1MRGhEUVVFNFF6dDNRa0ZET1VNc01rUkJRVEpFTzNkQ1FVTXpSQ3h0UWtGQmJVSTdkMEpCUTI1Q0xGZEJRVmNzU1VGQlNTeEhRVUZITEVOQlFVTTdkMEpCUTI1Q0xIVkNRVUYxUWl4SlFVRkpMRlZCUVZVc1EwRkJRenR4UWtGRGRrTTdiMEpCUlVRc1MwRkJTeXhGUVVGRkxFTkJRVU03YVVKQlExUTdjVUpCUVUwN2IwSkJRMHdzZVVSQlFYbEVPMjlDUVVONlJDeFBRVUZQTEhWQ1FVRjFRaXhIUVVGSExGRkJRVkVzU1VGQlNTeExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRMRTFCUVUwc1JVRkJSVHQzUWtGRGFrVXNUVUZCVFN4SlFVRkpMRWRCUVVjc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzNkQ1FVTXhRaXgxUWtGQmRVSXNSMEZCUnl4WlFVRlpMRU5CUVVNc1YwRkJWeXhIUVVGSExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0M1FrRkZha1VzU1VGQlNTeDFRa0ZCZFVJc1NVRkJTU3hSUVVGUkxFVkJRVVU3TkVKQlEzWkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdORUpCUTNoQ0xIVkNRVUYxUWl4SFFVRkhMRU5CUVVNc1EwRkJRenMwUWtGRE5VSXNWMEZCVnl4SFFVRkhMRVZCUVVVc1EwRkJRenMwUWtGRmFrSXNUVUZCVFR0NVFrRkRVRHQzUWtGRFJDeExRVUZMTEVWQlFVVXNRMEZCUXp0M1FrRkRVaXhYUVVGWExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZCUXp0M1FrRkZNVUlzY1VSQlFYRkVPM2RDUVVOeVJDeEpRVUZKTEhWQ1FVRjFRaXhIUVVGSExGVkJRVlVzU1VGQlNTeFJRVUZSTEVWQlFVVTdORUpCUTNCRUxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPelJDUVVOeVF5eFhRVUZYTEVkQlFVY3NSVUZCUlN4RFFVRkRPelJDUVVOcVFpeDFRa0ZCZFVJc1IwRkJSeXhEUVVGRExFTkJRVU03TkVKQlF6VkNMRTFCUVUwN2VVSkJRMUE3Y1VKQlEwWTdiMEpCUTBRc1NVRkJTU3gxUWtGQmRVSXNTMEZCU3l4UlFVRlJMRVZCUVVVN2QwSkJRM2hETEZkQlFWY3NSMEZCUnl4RlFVRkZMRU5CUVVNN2QwSkJRMnBDTEhWQ1FVRjFRaXhIUVVGSExFTkJRVU1zUTBGQlF6dHhRa0ZETjBJN2FVSkJRMFk3WVVGRFJqdFpRVU5FTEVsQlFVa3NWMEZCVnl4RlFVRkZPMmRDUVVObUxIbEZRVUY1UlR0blFrRkRla1VzU1VGQlNTeFhRVUZYTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUjBGQlJ5eEZRVUZGTzI5Q1FVTnFReXhYUVVGWExFZEJRVWNzVjBGQlZ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHBRa0ZEZUVNN1owSkJRMFFzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRoUVVONlFqdFRRVU5HTzBsQlEwZ3NRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRTQ3hQUVVGUExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRNVUlzUTBGQlF5eERRVUZETzBGQlJVc3NUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVU3U1VGRE4wSXNUVUZCVFN4bFFVRmxMRWRCUVhsRExFVkJRVVVzUTBGQlF6dEpRVVZxUlN4TlFVRk5MRk5CUVZNc1IwRkJSeXhEUVVGRExFbEJRVmtzUlVGQlJTeEpRVUZuUWl4RlFVRkZMRVZCUVVVN1VVRkRia1FzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5xUXl4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTzFsQlF6RkNMR1ZCUVdVc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdVMEZETlVJN1VVRkRSQ3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRk8xbEJRMnBETEUxQlFVMHNTMEZCU3l4SFFVRkhMRmxCUVZrc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdXVUZEZGtNc1pVRkJaU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRXRCUVVzc1EwRkJRenRUUVVOMFF6dFJRVU5FTEU5QlFVOHNaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlEzUkRMRU5CUVVNc1EwRkJRenRKUVVWR0xFMUJRVTBzVVVGQlVTeEhRVUZITEVOQlFVTXNTVUZCWjBJc1JVRkJSU3hGUVVGRk8xRkJRM0JETEU5QlFVOHNaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJReTlDTEVOQlFVTXNRMEZCUXp0SlFVTkdMRTlCUVU4N1VVRkRUQ3hUUVVGVE8xRkJRMVFzVVVGQlVUdExRVU5VTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wRkJRMFVzVFVGQlRTeHhRa0ZCY1VJc1IwRkJSeXhEUVVGRExFbEJRV2RDTEVWQlFVVXNSVUZCUlR0SlFVTjRSQ3hOUVVGTkxGbEJRVmtzUjBGQlJ5eGxRVUZsTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRNME1zU1VGQlNTeFpRVUZaTEV0QlFVc3NRMEZCUXl4RlFVRkZPMUZCUTNSQ0xFOUJRVThzUTBGRFRDeFhRVUZYTEVOQlFVTXNWVUZCVlN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUzBGQlN6dFpRVU40UkN3d1JFRkJhMElzUjBGQlJ5eERRVUZETEVOQlEzWkNMRU5CUVVNN1MwRkRTRHRKUVVORUxFOUJRVThzV1VGQldTeEhRVUZITERCRVFVRnJRaXhIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU12UXl4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxITkNRVUZ6UWl4SFFVRkhMRU5CUVVNc1NVRkJaMElzUlVGQlJTeEZRVUZGTzBsQlEzcEVMRTlCUVU4c2JVSkJRVzFDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc01FUkJRV3RDTEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUXpWRUxFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNaVUZCWlN4SFFVRkhMRU5CUVVNc1NVRkJaMElzUlVGQlJTeEZRVUZGTzBsQlEyeEVMRTFCUVUwc1MwRkJTeXhIUVVGSExGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRka01zU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlR0UlFVTldMRTlCUVU4c1EwRkJReXhEUVVGRE8wdEJRMVk3U1VGRFJDeE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUzBGQlN5eFRRVUZUTEVOQlFVTXNRMEZCUXp0SlFVVnVSU3hQUVVGUExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4cFFrRkJhVUlzUTBGQlF5eERRVUZETzBGQlEzaERMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzTUVKQlFUQkNMRWRCUVVjc1EwRkJReXhKUVVGblFpeEZRVUZGTEV0QlFXRXNSVUZCUlN4RlFVRkZPMGxCUXpWRkxESkVRVUV5UkR0SlFVTXpSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eFZRVUZWTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzUTBGQlF6dEpRVU5xUkN4TlFVRk5MRmRCUVZjc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGRFSXNTVUZCU1N4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRMlFzU1VGQlNTeFpRVUZaTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTNKQ0xFbEJRVWtzUjBGQlJ5eEhRVUZITEVWQlFVVXNRMEZCUXp0SlFVTmlMRTlCUVU4c1dVRkJXU3hKUVVGSkxFdEJRVXNzUlVGQlJUdFJRVU0xUWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRWRCUVVjc1YwRkJWeXhEUVVGRExFTkJRVU03VVVGRE0wUXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJRenRSUVVOaUxGbEJRVmtzU1VGQlNTeFpRVUZaTEVOQlFVTXNSMEZCUnl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM2hETEVsQlFVa3NTMEZCU3l4TFFVRkxMRk5CUVZNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzFsQlEyeERMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU03VTBGRFdEdFJRVU5FTEV0QlFVc3NSMEZCUnl4TFFVRkxMRWRCUVVjc1YwRkJWeXhEUVVGRE8wdEJRemRDTzBsQlJVUXNUMEZCVHl4WlFVRlpMRWRCUVVjc1MwRkJTeXhGUVVGRk8xRkJRek5DTEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0JETEZsQlFWa3NSMEZCUnl4WlFVRlpMRU5CUVVNc1IwRkJSeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzB0QlEzaERPMGxCUTBRc1QwRkJUeXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETzBGQlEzQkNMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzY1VKQlFYRkNMRWRCUVVjc1EwRkJReXhUUVVGdFF5eEZRVUZGTEVWQlFVVTdPMGxCUXpORkxFOUJRVThzY1VKQlFWTXNZVUZCVkN4VFFVRlRMSFZDUVVGVUxGTkJRVk1zUTBGQlJTeGhRVUZoTERCRFFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1MwRkJTeXhOUVVGTkxFVkJRVVVzUTBGQlF5eERRVUZETERCRFFVRkZMRVZCUVVVc1EwRkJRenRCUVVNdlJTeERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEVOQlFVTXNUMEZCYVVNc1JVRkJSU3hGUVVGRk96dEpRVU4yUlN4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRk8xRkJRMW9zVDBGQlR5eEpRVUZKTEVOQlFVTTdTMEZEWWp0SlFVTkVMRTFCUVUwc2EwSkJRV3RDTEVkQlFVY3NjVUpCUVhGQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTVUZETVVRc1NVRkJTU3hyUWtGQmEwSXNSVUZCUlR0UlFVTjBRaXhQUVVGUExFTkJRMHdzUTBGQlF5eHRSVUZCWXl4RFFVRkRMRTlCUVU4c1EwRkJReXd3UTBGQlJTeFZRVUZWTEVOQlEyeERMR3RDUVVGclFpeERRVU52UWl4TFFVRkpMRWxCUVVrc1EwRkRha1FzUTBGQlF6dExRVU5JTzBsQlEwUXNUMEZCVHl4SlFVRkpMRU5CUVVNN1FVRkRaQ3hEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEcxQ1FVRnRRaXhIUVVGSExFTkJRMnBETEU5QlJWRXNSVUZEVWl4RlFVRkZPenRKUVVOR0xFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVTdVVUZEV2l4UFFVRlBMRWxCUVVrc1EwRkJRenRMUVVOaU8wbEJRMFFzU1VGQlNTeFBRVUZQTEVOQlFVTXNWMEZCVnl4RlFVRkZPMUZCUTNaQ0xFOUJRVThzYjBWQlFXTXNRMEZCUXl4UFFVRlBMRU5CUVVNc01FTkJRVVVzVlVGQlZTeERRVUZETEU5QlFVOHNRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTU3hKUVVGSkxFTkJRVU03UzBGRGVrVTdTVUZEUkN4UFFVRlBMRWxCUVVrc1EwRkJRenRCUVVOa0xFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTlsYkdWdFpXNTBMM1JsZUhSRmJHVnRaVzUwTG5SelB6UXlaRElpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ1oyVjBSbTl1ZEZOMGNtbHVaeXdnWVhKeVlYbFViMDFoY0N3Z2FYTlVaWE4wUlc1MklIMGdabkp2YlNCY0lpNHVMM1YwYVd4elhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCRmVHTmhiR2xrY21GM1FtbHVaR0ZpYkdWRmJHVnRaVzUwTEZ4dUlDQkZlR05oYkdsa2NtRjNSV3hsYldWdWRDeGNiaUFnUlhoallXeHBaSEpoZDFSbGVIUkZiR1Z0Wlc1MExGeHVJQ0JGZUdOaGJHbGtjbUYzVkdWNGRFVnNaVzFsYm5SWGFYUm9RMjl1ZEdGcGJtVnlMRnh1SUNCR2IyNTBVM1J5YVc1bkxGeHVJQ0JPYjI1RVpXeGxkR1ZrUlhoallXeHBaSEpoZDBWc1pXMWxiblFzWEc1OUlHWnliMjBnWENJdUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5QnRkWFJoZEdWRmJHVnRaVzUwSUgwZ1puSnZiU0JjSWk0dmJYVjBZWFJsUld4bGJXVnVkRndpTzF4dWFXMXdiM0owSUhzZ1FrOVZUa1JmVkVWWVZGOVFRVVJFU1U1SElIMGdabkp2YlNCY0lpNHVMMk52Ym5OMFlXNTBjMXdpTzF4dWFXMXdiM0owSUhzZ1RXRjVZbVZVY21GdWMyWnZjbTFJWVc1a2JHVlVlWEJsSUgwZ1puSnZiU0JjSWk0dmRISmhibk5tYjNKdFNHRnVaR3hsYzF3aU8xeHVhVzF3YjNKMElGTmpaVzVsSUdaeWIyMGdYQ0l1TGk5elkyVnVaUzlUWTJWdVpWd2lPMXh1YVcxd2IzSjBJSHNnUVhCd1UzUmhkR1VnZlNCbWNtOXRJRndpTGk0dmRIbHdaWE5jSWp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUhKbFpISmhkMVJsZUhSQ2IzVnVaR2x1WjBKdmVDQTlJQ2hjYmlBZ1pXeGxiV1Z1ZERvZ1JYaGpZV3hwWkhKaGQxUmxlSFJGYkdWdFpXNTBMRnh1SUNCamIyNTBZV2x1WlhJNklFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MElId2diblZzYkN4Y2JpQWdZWEJ3VTNSaGRHVTZJRUZ3Y0ZOMFlYUmxMRnh1S1NBOVBpQjdYRzRnSUdOdmJuTjBJRzFoZUZkcFpIUm9JRDBnWTI5dWRHRnBibVZ5WEc0Z0lDQWdQeUJqYjI1MFlXbHVaWEl1ZDJsa2RHZ2dMU0JDVDFWT1JGOVVSVmhVWDFCQlJFUkpUa2NnS2lBeVhHNGdJQ0FnT2lCMWJtUmxabWx1WldRN1hHNGdJR3hsZENCMFpYaDBJRDBnWld4bGJXVnVkQzUwWlhoME8xeHVYRzRnSUdsbUlDaGpiMjUwWVdsdVpYSXBJSHRjYmlBZ0lDQjBaWGgwSUQwZ2QzSmhjRlJsZUhRb1hHNGdJQ0FnSUNCbGJHVnRaVzUwTG05eWFXZHBibUZzVkdWNGRDeGNiaUFnSUNBZ0lHZGxkRVp2Ym5SVGRISnBibWNvWld4bGJXVnVkQ2tzWEc0Z0lDQWdJQ0JqYjI1MFlXbHVaWEl1ZDJsa2RHZ3NYRzRnSUNBZ0tUdGNiaUFnZlZ4dUlDQmpiMjV6ZENCdFpYUnlhV056SUQwZ2JXVmhjM1Z5WlZSbGVIUW9YRzRnSUNBZ1pXeGxiV1Z1ZEM1dmNtbG5hVzVoYkZSbGVIUXNYRzRnSUNBZ1oyVjBSbTl1ZEZOMGNtbHVaeWhsYkdWdFpXNTBLU3hjYmlBZ0lDQnRZWGhYYVdSMGFDeGNiaUFnS1R0Y2JseHVJQ0JzWlhRZ1kyOXZjbVJaSUQwZ1pXeGxiV1Z1ZEM1NU8xeHVJQ0F2THlCU1pYTnBlbVVnWTI5dWRHRnBibVZ5SUdGdVpDQjJaWEowYVdOaGJHeDVJR05sYm5SbGNpQmhiR2xuYmlCMGFHVWdkR1Y0ZEZ4dUlDQnBaaUFvWTI5dWRHRnBibVZ5S1NCN1hHNGdJQ0FnWTI5dmNtUlpJRDBnWTI5dWRHRnBibVZ5TG5rZ0t5QmpiMjUwWVdsdVpYSXVhR1ZwWjJoMElDOGdNaUF0SUcxbGRISnBZM011YUdWcFoyaDBJQzhnTWp0Y2JpQWdJQ0JzWlhRZ2JtVjRkRWhsYVdkb2RDQTlJR052Ym5SaGFXNWxjaTVvWldsbmFIUTdYRzRnSUNBZ2FXWWdLRzFsZEhKcFkzTXVhR1ZwWjJoMElENGdZMjl1ZEdGcGJtVnlMbWhsYVdkb2RDQXRJRUpQVlU1RVgxUkZXRlJmVUVGRVJFbE9SeUFxSURJcElIdGNiaUFnSUNBZ0lHNWxlSFJJWldsbmFIUWdQU0J0WlhSeWFXTnpMbWhsYVdkb2RDQXJJRUpQVlU1RVgxUkZXRlJmVUVGRVJFbE9SeUFxSURJN1hHNGdJQ0FnSUNCamIyOXlaRmtnUFNCamIyNTBZV2x1WlhJdWVTQXJJRzVsZUhSSVpXbG5hSFFnTHlBeUlDMGdiV1YwY21samN5NW9aV2xuYUhRZ0x5QXlPMXh1SUNBZ0lIMWNiaUFnSUNCdGRYUmhkR1ZGYkdWdFpXNTBLR052Ym5SaGFXNWxjaXdnZXlCb1pXbG5hSFE2SUc1bGVIUklaV2xuYUhRZ2ZTazdYRzRnSUgxY2JseHVJQ0J0ZFhSaGRHVkZiR1Z0Wlc1MEtHVnNaVzFsYm5Rc0lIdGNiaUFnSUNCM2FXUjBhRG9nYldWMGNtbGpjeTUzYVdSMGFDeGNiaUFnSUNCb1pXbG5hSFE2SUcxbGRISnBZM011YUdWcFoyaDBMRnh1SUNBZ0lHSmhjMlZzYVc1bE9pQnRaWFJ5YVdOekxtSmhjMlZzYVc1bExGeHVJQ0FnSUhrNklHTnZiM0prV1N4Y2JpQWdJQ0IwWlhoMExGeHVJQ0I5S1R0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmlhVzVrVkdWNGRGUnZVMmhoY0dWQlpuUmxja1IxY0d4cFkyRjBhVzl1SUQwZ0tGeHVJQ0J6WTJWdVpVVnNaVzFsYm5Sek9pQkZlR05oYkdsa2NtRjNSV3hsYldWdWRGdGRMRnh1SUNCdmJHUkZiR1Z0Wlc1MGN6b2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYU3hjYmlBZ2IyeGtTV1JVYjBSMWNHeHBZMkYwWldSSlpEb2dUV0Z3UEVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzF3aWFXUmNJbDBzSUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzF3aWFXUmNJbDArTEZ4dUtUb2dkbTlwWkNBOVBpQjdYRzRnSUdOdmJuTjBJSE5qWlc1bFJXeGxiV1Z1ZEUxaGNDQTlJR0Z5Y21GNVZHOU5ZWEFvYzJObGJtVkZiR1Z0Wlc1MGN5a2dZWE1nVFdGd1BGeHVJQ0FnSUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzF3aWFXUmNJbDBzWEc0Z0lDQWdSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmNiaUFnUGp0Y2JpQWdiMnhrUld4bGJXVnVkSE11Wm05eVJXRmphQ2dvWld4bGJXVnVkQ2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJRzVsZDBWc1pXMWxiblJKWkNBOUlHOXNaRWxrVkc5RWRYQnNhV05oZEdWa1NXUXVaMlYwS0dWc1pXMWxiblF1YVdRcElHRnpJSE4wY21sdVp6dGNiaUFnSUNCamIyNXpkQ0JpYjNWdVpGUmxlSFJGYkdWdFpXNTBTV1FnUFNCblpYUkNiM1Z1WkZSbGVIUkZiR1Z0Wlc1MFNXUW9aV3hsYldWdWRDazdYRzVjYmlBZ0lDQnBaaUFvWW05MWJtUlVaWGgwUld4bGJXVnVkRWxrS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J1WlhkVVpYaDBSV3hsYldWdWRFbGtJRDBnYjJ4a1NXUlViMFIxY0d4cFkyRjBaV1JKWkM1blpYUW9ZbTkxYm1SVVpYaDBSV3hsYldWdWRFbGtLU0U3WEc0Z0lDQWdJQ0J0ZFhSaGRHVkZiR1Z0Wlc1MEtGeHVJQ0FnSUNBZ0lDQnpZMlZ1WlVWc1pXMWxiblJOWVhBdVoyVjBLRzVsZDBWc1pXMWxiblJKWkNrZ1lYTWdSWGhqWVd4cFpISmhkMEpwYm1SaFlteGxSV3hsYldWdWRDeGNiaUFnSUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0FnSUdKdmRXNWtSV3hsYldWdWRITTZJR1ZzWlcxbGJuUXVZbTkxYm1SRmJHVnRaVzUwY3o4dVkyOXVZMkYwS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFI1Y0dVNklGd2lkR1Y0ZEZ3aUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdRNklHNWxkMVJsZUhSRmJHVnRaVzUwU1dRc1hHNGdJQ0FnSUNBZ0lDQWdmU2tzWEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2JYVjBZWFJsUld4bGJXVnVkQ2hjYmlBZ0lDQWdJQ0FnYzJObGJtVkZiR1Z0Wlc1MFRXRndMbWRsZENodVpYZFVaWGgwUld4bGJXVnVkRWxrS1NCaGN5QkZlR05oYkdsa2NtRjNWR1Y0ZEVWc1pXMWxiblFzWEc0Z0lDQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjUwWVdsdVpYSkpaRG9nYm1WM1JXeGxiV1Z1ZEVsa0xGeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzRnSUgwcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2hoYm1Sc1pVSnBibVJVWlhoMFVtVnphWHBsSUQwZ0tGeHVJQ0JsYkdWdFpXNTBjem9nY21WaFpHOXViSGtnVG05dVJHVnNaWFJsWkVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzEwc1hHNGdJSFJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1U2SUUxaGVXSmxWSEpoYm5ObWIzSnRTR0Z1Wkd4bFZIbHdaU3hjYmlrZ1BUNGdlMXh1SUNCbGJHVnRaVzUwY3k1bWIzSkZZV05vS0NobGJHVnRaVzUwS1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnWW05MWJtUlVaWGgwUld4bGJXVnVkRWxrSUQwZ1oyVjBRbTkxYm1SVVpYaDBSV3hsYldWdWRFbGtLR1ZzWlcxbGJuUXBPMXh1SUNBZ0lHbG1JQ2hpYjNWdVpGUmxlSFJGYkdWdFpXNTBTV1FwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSFJsZUhSRmJHVnRaVzUwSUQwZ1UyTmxibVV1WjJWMFUyTmxibVVvWld4bGJXVnVkQ2toTG1kbGRFVnNaVzFsYm5Rb1hHNGdJQ0FnSUNBZ0lHSnZkVzVrVkdWNGRFVnNaVzFsYm5SSlpDeGNiaUFnSUNBZ0lDa2dZWE1nUlhoallXeHBaSEpoZDFSbGVIUkZiR1Z0Wlc1ME8xeHVJQ0FnSUNBZ2FXWWdLSFJsZUhSRmJHVnRaVzUwSUNZbUlIUmxlSFJGYkdWdFpXNTBMblJsZUhRcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGbGJHVnRaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR3hsZENCMFpYaDBJRDBnZEdWNGRFVnNaVzFsYm5RdWRHVjRkRHRjYmlBZ0lDQWdJQ0FnYkdWMElHNWxlSFJJWldsbmFIUWdQU0IwWlhoMFJXeGxiV1Z1ZEM1b1pXbG5hSFE3WEc0Z0lDQWdJQ0FnSUd4bGRDQmpiMjUwWVdsdVpYSklaV2xuYUhRZ1BTQmxiR1Z0Wlc1MExtaGxhV2RvZER0Y2JpQWdJQ0FnSUNBZ2JHVjBJRzVsZUhSQ1lYTmxUR2x1WlNBOUlIUmxlSFJGYkdWdFpXNTBMbUpoYzJWc2FXNWxPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RISmhibk5tYjNKdFNHRnVaR3hsVkhsd1pTQWhQVDBnWENKdVhDSWdKaVlnZEhKaGJuTm1iM0p0U0dGdVpHeGxWSGx3WlNBaFBUMGdYQ0p6WENJcElIdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2RHVjRkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkR1Y0ZENBOUlIZHlZWEJVWlhoMEtGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCMFpYaDBSV3hsYldWdWRDNXZjbWxuYVc1aGJGUmxlSFFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR2RsZEVadmJuUlRkSEpwYm1jb2RHVjRkRVZzWlcxbGJuUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MExuZHBaSFJvTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQmthVzFsYm5OcGIyNXpJRDBnYldWaGMzVnlaVlJsZUhRb1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwWlhoMExGeHVJQ0FnSUNBZ0lDQWdJQ0FnWjJWMFJtOXVkRk4wY21sdVp5aDBaWGgwUld4bGJXVnVkQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MExuZHBaSFJvTEZ4dUlDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQ0FnYm1WNGRFaGxhV2RvZENBOUlHUnBiV1Z1YzJsdmJuTXVhR1ZwWjJoME8xeHVJQ0FnSUNBZ0lDQWdJRzVsZUhSQ1lYTmxUR2x1WlNBOUlHUnBiV1Z1YzJsdmJuTXVZbUZ6Wld4cGJtVTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnTHk4Z2FXNWpjbVZoYzJVZ2FHVnBaMmgwSUdsdUlHTmhjMlVnZEdWNGRDQmxiR1Z0Wlc1MElHaGxhV2RvZENCbGVHTmxaV1J6WEc0Z0lDQWdJQ0FnSUdsbUlDaHVaWGgwU0dWcFoyaDBJRDRnWld4bGJXVnVkQzVvWldsbmFIUWdMU0JDVDFWT1JGOVVSVmhVWDFCQlJFUkpUa2NnS2lBeUtTQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWRHRnBibVZ5U0dWcFoyaDBJRDBnYm1WNGRFaGxhV2RvZENBcklFSlBWVTVFWDFSRldGUmZVRUZFUkVsT1J5QXFJREk3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWkdsbVppQTlJR052Ym5SaGFXNWxja2hsYVdkb2RDQXRJR1ZzWlcxbGJuUXVhR1ZwWjJoME8xeHVJQ0FnSUNBZ0lDQWdJQzh2SUdacGVDQjBhR1VnZVNCamIyOXlaQ0IzYUdWdUlISmxjMmw2YVc1bklHWnliMjBnYm1VdmJuY3ZibHh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSFZ3WkdGMFpXUlpJRDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIUnlZVzV6Wm05eWJVaGhibVJzWlZSNWNHVWdQVDA5SUZ3aWJtVmNJaUI4ZkZ4dUlDQWdJQ0FnSUNBZ0lDQWdkSEpoYm5ObWIzSnRTR0Z1Wkd4bFZIbHdaU0E5UFQwZ1hDSnVkMXdpSUh4OFhHNGdJQ0FnSUNBZ0lDQWdJQ0IwY21GdWMyWnZjbTFJWVc1a2JHVlVlWEJsSUQwOVBTQmNJbTVjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0EvSUdWc1pXMWxiblF1ZVNBdElHUnBabVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdPaUJsYkdWdFpXNTBMbms3WEc0Z0lDQWdJQ0FnSUNBZ2JYVjBZWFJsUld4bGJXVnVkQ2hsYkdWdFpXNTBMQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQm9aV2xuYUhRNklHTnZiblJoYVc1bGNraGxhV2RvZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSGs2SUhWd1pHRjBaV1JaTEZ4dUlDQWdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZFhCa1lYUmxaRmtnUFNCbGJHVnRaVzUwTG5rZ0t5QmpiMjUwWVdsdVpYSklaV2xuYUhRZ0x5QXlJQzBnYm1WNGRFaGxhV2RvZENBdklESTdYRzRnSUNBZ0lDQWdJRzExZEdGMFpVVnNaVzFsYm5Rb2RHVjRkRVZzWlcxbGJuUXNJSHRjYmlBZ0lDQWdJQ0FnSUNCMFpYaDBMRnh1SUNBZ0lDQWdJQ0FnSUM4dklIQnlaWE5sY25abElIQmhaR1JwYm1jZ1lXNWtJSE5sZENCM2FXUjBhQ0JqYjNKeVpXTjBiSGxjYmlBZ0lDQWdJQ0FnSUNCM2FXUjBhRG9nWld4bGJXVnVkQzUzYVdSMGFDQXRJRUpQVlU1RVgxUkZXRlJmVUVGRVJFbE9SeUFxSURJc1hHNGdJQ0FnSUNBZ0lDQWdhR1ZwWjJoME9pQnVaWGgwU0dWcFoyaDBMRnh1SUNBZ0lDQWdJQ0FnSUhnNklHVnNaVzFsYm5RdWVDQXJJRUpQVlU1RVgxUkZXRlJmVUVGRVJFbE9SeXhjYmlBZ0lDQWdJQ0FnSUNCNU9pQjFjR1JoZEdWa1dTeGNiaUFnSUNBZ0lDQWdJQ0JpWVhObGJHbHVaVG9nYm1WNGRFSmhjMlZNYVc1bExGeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgwcE8xeHVmVHRjYmx4dUx5OGdhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMmR5WVhOellYUnZjaTlqWVc1MllYTXRkR1Y0ZEMxbFpHbDBiM0l2WW14dllpOXRZWE4wWlhJdmJHbGlMMFp2Ym5STlpYUnlhV056TG1welhHNWxlSEJ2Y25RZ1kyOXVjM1FnYldWaGMzVnlaVlJsZUhRZ1BTQW9YRzRnSUhSbGVIUTZJSE4wY21sdVp5eGNiaUFnWm05dWREb2dSbTl1ZEZOMGNtbHVaeXhjYmlBZ2JXRjRWMmxrZEdnL09pQnVkVzFpWlhJZ2ZDQnVkV3hzTEZ4dUtTQTlQaUI3WEc0Z0lIUmxlSFFnUFNCMFpYaDBYRzRnSUNBZ0xuTndiR2wwS0Z3aVhGeHVYQ0lwWEc0Z0lDQWdMeThnY21Wd2JHRmpaU0JsYlhCMGVTQnNhVzVsY3lCM2FYUm9JSE5wYm1kc1pTQnpjR0ZqWlNCaVpXTmhkWE5sSUd4bFlXUnBibWN2ZEhKaGFXeHBibWNnWlcxd2RIbGNiaUFnSUNBdkx5QnNhVzVsY3lCM2IzVnNaQ0JpWlNCemRISnBjSEJsWkNCbWNtOXRJR052YlhCMWRHRjBhVzl1WEc0Z0lDQWdMbTFoY0Nnb2VDa2dQVDRnZUNCOGZDQmNJaUJjSWlsY2JpQWdJQ0F1YW05cGJpaGNJbHhjYmx3aUtUdGNiaUFnWTI5dWMzUWdZMjl1ZEdGcGJtVnlJRDBnWkc5amRXMWxiblF1WTNKbFlYUmxSV3hsYldWdWRDaGNJbVJwZGx3aUtUdGNiaUFnWTI5dWRHRnBibVZ5TG5OMGVXeGxMbkJ2YzJsMGFXOXVJRDBnWENKaFluTnZiSFYwWlZ3aU8xeHVJQ0JqYjI1MFlXbHVaWEl1YzNSNWJHVXVkMmhwZEdWVGNHRmpaU0E5SUZ3aWNISmxYQ0k3WEc0Z0lHTnZiblJoYVc1bGNpNXpkSGxzWlM1bWIyNTBJRDBnWm05dWREdGNiaUFnWTI5dWRHRnBibVZ5TG5OMGVXeGxMbTFwYmtobGFXZG9kQ0E5SUZ3aU1XVnRYQ0k3WEc0Z0lHbG1JQ2h0WVhoWGFXUjBhQ2tnZTF4dUlDQWdJR052Ym5OMElHeHBibVZJWldsbmFIUWdQU0JuWlhSQmNIQnliM2hNYVc1bFNHVnBaMmgwS0dadmJuUXBPMXh1SUNBZ0lHTnZiblJoYVc1bGNpNXpkSGxzWlM1M2FXUjBhQ0E5SUdBa2UxTjBjbWx1WnlodFlYaFhhV1IwYUNsOWNIaGdPMXh1SUNBZ0lHTnZiblJoYVc1bGNpNXpkSGxzWlM1dFlYaFhhV1IwYUNBOUlHQWtlMU4wY21sdVp5aHRZWGhYYVdSMGFDbDljSGhnTzF4dUlDQWdJR052Ym5SaGFXNWxjaTV6ZEhsc1pTNXZkbVZ5Wm14dmR5QTlJRndpYUdsa1pHVnVYQ0k3WEc0Z0lDQWdZMjl1ZEdGcGJtVnlMbk4wZVd4bExuZHZjbVJDY21WaGF5QTlJRndpWW5KbFlXc3RkMjl5WkZ3aU8xeHVJQ0FnSUdOdmJuUmhhVzVsY2k1emRIbHNaUzVzYVc1bFNHVnBaMmgwSUQwZ1lDUjdVM1J5YVc1bktHeHBibVZJWldsbmFIUXBmWEI0WUR0Y2JpQWdJQ0JqYjI1MFlXbHVaWEl1YzNSNWJHVXVkMmhwZEdWVGNHRmpaU0E5SUZ3aWNISmxMWGR5WVhCY0lqdGNiaUFnZlZ4dUlDQmtiMk4xYldWdWRDNWliMlI1TG1Gd2NHVnVaRU5vYVd4a0tHTnZiblJoYVc1bGNpazdYRzRnSUdOdmJuUmhhVzVsY2k1cGJtNWxjbFJsZUhRZ1BTQjBaWGgwTzF4dVhHNGdJR052Ym5OMElITndZVzRnUFNCa2IyTjFiV1Z1ZEM1amNtVmhkR1ZGYkdWdFpXNTBLRndpYzNCaGJsd2lLVHRjYmlBZ2MzQmhiaTV6ZEhsc1pTNWthWE53YkdGNUlEMGdYQ0pwYm14cGJtVXRZbXh2WTJ0Y0lqdGNiaUFnYzNCaGJpNXpkSGxzWlM1dmRtVnlabXh2ZHlBOUlGd2lhR2xrWkdWdVhDSTdYRzRnSUhOd1lXNHVjM1I1YkdVdWQybGtkR2dnUFNCY0lqRndlRndpTzF4dUlDQnpjR0Z1TG5OMGVXeGxMbWhsYVdkb2RDQTlJRndpTVhCNFhDSTdYRzRnSUdOdmJuUmhhVzVsY2k1aGNIQmxibVJEYUdsc1pDaHpjR0Z1S1R0Y2JpQWdMeThnUW1GelpXeHBibVVnYVhNZ2FXMXdiM0owWVc1MElHWnZjaUJ3YjNOcGRHbHZibWx1WnlCMFpYaDBJRzl1SUdOaGJuWmhjMXh1SUNCamIyNXpkQ0JpWVhObGJHbHVaU0E5SUhOd1lXNHViMlptYzJWMFZHOXdJQ3NnYzNCaGJpNXZabVp6WlhSSVpXbG5hSFE3WEc0Z0lHTnZibk4wSUhkcFpIUm9JRDBnWTI5dWRHRnBibVZ5TG05bVpuTmxkRmRwWkhSb08xeHVYRzRnSUdOdmJuTjBJR2hsYVdkb2RDQTlJR052Ym5SaGFXNWxjaTV2Wm1aelpYUklaV2xuYUhRN1hHNGdJR1J2WTNWdFpXNTBMbUp2WkhrdWNtVnRiM1psUTJocGJHUW9ZMjl1ZEdGcGJtVnlLVHRjYmx4dUlDQnlaWFIxY200Z2V5QjNhV1IwYUN3Z2FHVnBaMmgwTENCaVlYTmxiR2x1WlNCOU8xeHVmVHRjYmx4dVkyOXVjM1FnUkZWTlRWbGZWRVZZVkNBOUlGd2lRVUpEUkVWR1IwaEpTa3RNVFU1UFVGRlNVMVJWVmxkWVdWb3dNVEl6TkRVMk56ZzVYQ0l1ZEc5TWIyTmhiR1ZWY0hCbGNrTmhjMlVvS1R0Y2JtTnZibk4wSUdOaFkyaGxRWEJ3Y205NFRHbHVaVWhsYVdkb2REb2dleUJiYTJWNU9pQkdiMjUwVTNSeWFXNW5YVG9nYm5WdFltVnlJSDBnUFNCN2ZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHZGxkRUZ3Y0hKdmVFeHBibVZJWldsbmFIUWdQU0FvWm05dWREb2dSbTl1ZEZOMGNtbHVaeWtnUFQ0Z2UxeHVJQ0JwWmlBb1kyRmphR1ZCY0hCeWIzaE1hVzVsU0dWcFoyaDBXMlp2Ym5SZEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUdOaFkyaGxRWEJ3Y205NFRHbHVaVWhsYVdkb2RGdG1iMjUwWFR0Y2JpQWdmVnh1SUNCallXTm9aVUZ3Y0hKdmVFeHBibVZJWldsbmFIUmJabTl1ZEYwZ1BTQnRaV0Z6ZFhKbFZHVjRkQ2hFVlUxTldWOVVSVmhVTENCbWIyNTBMQ0J1ZFd4c0tTNW9aV2xuYUhRN1hHNGdJSEpsZEhWeWJpQmpZV05vWlVGd2NISnZlRXhwYm1WSVpXbG5hSFJiWm05dWRGMDdYRzU5TzF4dVhHNXNaWFFnWTJGdWRtRnpPaUJJVkUxTVEyRnVkbUZ6Uld4bGJXVnVkQ0I4SUhWdVpHVm1hVzVsWkR0Y2JtTnZibk4wSUdkbGRGUmxlSFJYYVdSMGFDQTlJQ2gwWlhoME9pQnpkSEpwYm1jc0lHWnZiblE2SUVadmJuUlRkSEpwYm1jcElEMCtJSHRjYmlBZ2FXWWdLQ0ZqWVc1MllYTXBJSHRjYmlBZ0lDQmpZVzUyWVhNZ1BTQmtiMk4xYldWdWRDNWpjbVZoZEdWRmJHVnRaVzUwS0Z3aVkyRnVkbUZ6WENJcE8xeHVJQ0I5WEc0Z0lHTnZibk4wSUdOaGJuWmhjekprUTI5dWRHVjRkQ0E5SUdOaGJuWmhjeTVuWlhSRGIyNTBaWGgwS0Z3aU1tUmNJaWtoTzF4dUlDQmpZVzUyWVhNeVpFTnZiblJsZUhRdVptOXVkQ0E5SUdadmJuUTdYRzVjYmlBZ1kyOXVjM1FnYldWMGNtbGpjeUE5SUdOaGJuWmhjekprUTI5dWRHVjRkQzV0WldGemRYSmxWR1Y0ZENoMFpYaDBLVHRjYmlBZ0x5OGdjMmx1WTJVZ2FXNGdkR1Z6ZENCbGJuWWdkR2hsSUdOaGJuWmhjeUJ0WldGemRYSmxWR1Y0ZENCaGJHZHZYRzRnSUM4dklHUnZaWE51SjNRZ2JXVmhjM1Z5WlNCMFpYaDBJR0Z1WkNCcGJuTjBaV0ZrSUdwMWMzUWdjbVYwZFhKdWN5QnVkVzFpWlhJZ2IyWmNiaUFnTHk4Z1kyaGhjbUZqZEdWeWN5Qm9aVzVqWlNCM1pTQmhjM04xYldVZ2RHaGhkQ0JsWVdOb0lHeGxkSFJsY21seklERXdjSGhjYmlBZ2FXWWdLR2x6VkdWemRFVnVkaWdwS1NCN1hHNGdJQ0FnY21WMGRYSnVJRzFsZEhKcFkzTXVkMmxrZEdnZ0tpQXhNRHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJ0WlhSeWFXTnpMbmRwWkhSb08xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJSGR5WVhCVVpYaDBJRDBnS0Z4dUlDQjBaWGgwT2lCemRISnBibWNzWEc0Z0lHWnZiblE2SUVadmJuUlRkSEpwYm1jc1hHNGdJR052Ym5SaGFXNWxjbGRwWkhSb09pQnVkVzFpWlhJc1hHNHBJRDArSUh0Y2JpQWdZMjl1YzNRZ2JXRjRWMmxrZEdnZ1BTQmpiMjUwWVdsdVpYSlhhV1IwYUNBdElFSlBWVTVFWDFSRldGUmZVRUZFUkVsT1J5QXFJREk3WEc1Y2JpQWdZMjl1YzNRZ2JHbHVaWE02SUVGeWNtRjVQSE4wY21sdVp6NGdQU0JiWFR0Y2JpQWdZMjl1YzNRZ2IzSnBaMmx1WVd4TWFXNWxjeUE5SUhSbGVIUXVjM0JzYVhRb1hDSmNYRzVjSWlrN1hHNGdJR052Ym5OMElITndZV05sVjJsa2RHZ2dQU0JuWlhSVVpYaDBWMmxrZEdnb1hDSWdYQ0lzSUdadmJuUXBPMXh1SUNCdmNtbG5hVzVoYkV4cGJtVnpMbVp2Y2tWaFkyZ29LRzl5YVdkcGJtRnNUR2x1WlNrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUhkdmNtUnpJRDBnYjNKcFoybHVZV3hNYVc1bExuTndiR2wwS0Z3aUlGd2lLVHRjYmlBZ0lDQXZMeUJVYUdseklHMWxZVzV6SUdsMGN5QnVaWGRzYVc1bElITnZJSEIxYzJnZ2FYUmNiaUFnSUNCcFppQW9kMjl5WkhNdWJHVnVaM1JvSUQwOVBTQXhJQ1ltSUhkdmNtUnpXekJkSUQwOVBTQmNJbHdpS1NCN1hHNGdJQ0FnSUNCc2FXNWxjeTV3ZFhOb0tIZHZjbVJ6V3pCZEtUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnYkdWMElHTjFjbkpsYm5STWFXNWxJRDBnWENKY0lqdGNiaUFnSUNBZ0lHeGxkQ0JqZFhKeVpXNTBUR2x1WlZkcFpIUm9WR2xzYkU1dmR5QTlJREE3WEc1Y2JpQWdJQ0FnSUd4bGRDQnBibVJsZUNBOUlEQTdYRzRnSUNBZ0lDQjNhR2xzWlNBb2FXNWtaWGdnUENCM2IzSmtjeTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZM1Z5Y21WdWRGZHZjbVJYYVdSMGFDQTlJR2RsZEZSbGVIUlhhV1IwYUNoM2IzSmtjMXRwYm1SbGVGMHNJR1p2Ym5RcE8xeHVYRzRnSUNBZ0lDQWdJQzh2SUZOMFlYSjBJR0p5WldGcmFXNW5JR3h2Ym1kbGNpQjNiM0prY3lCbGVHTmxaV1JwYm1jZ2JXRjRJSGRwWkhSb1hHNGdJQ0FnSUNBZ0lHbG1JQ2hqZFhKeVpXNTBWMjl5WkZkcFpIUm9JRDQ5SUcxaGVGZHBaSFJvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdMeThnY0hWemFDQmpkWEp5Wlc1MElHeHBibVVnYzJsdVkyVWdkR2hsSUdOMWNuSmxiblFnZDI5eVpDQmxlR05sWldSeklIUm9aU0J0WVhnZ2QybGtkR2hjYmlBZ0lDQWdJQ0FnSUNBdkx5QnpieUIzYVd4c0lHSmxJR0Z3Y0dWdVpHVmtJR2x1SUc1bGVIUWdiR2x1WlZ4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2hqZFhKeVpXNTBUR2x1WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYkdsdVpYTXVjSFZ6YUNoamRYSnlaVzUwVEdsdVpTazdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lHTjFjbkpsYm5STWFXNWxJRDBnWENKY0lqdGNiaUFnSUNBZ0lDQWdJQ0JqZFhKeVpXNTBUR2x1WlZkcFpIUm9WR2xzYkU1dmR5QTlJREE3WEc0Z0lDQWdJQ0FnSUNBZ2QyaHBiR1VnS0hkdmNtUnpXMmx1WkdWNFhTNXNaVzVuZEdnZ1BpQXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCamRYSnlaVzUwUTJoaGNpQTlJSGR2Y21SelcybHVaR1Y0WFZzd1hUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSGRwWkhSb0lEMGdZMmhoY2xkcFpIUm9MbU5oYkdOMWJHRjBaU2hqZFhKeVpXNTBRMmhoY2l3Z1ptOXVkQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpkWEp5Wlc1MFRHbHVaVmRwWkhSb1ZHbHNiRTV2ZHlBclBTQjNhV1IwYUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSGR2Y21SelcybHVaR1Y0WFNBOUlIZHZjbVJ6VzJsdVpHVjRYUzV6YkdsalpTZ3hLVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dOMWNuSmxiblJNYVc1bFYybGtkR2hVYVd4c1RtOTNJRDQ5SUcxaGVGZHBaSFJvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklHOXViSGtnY21WdGIzWmxJR3hoYzNRZ2RISmhhV3hwYm1jZ2MzQmhZMlVnZDJocFkyZ2dkMlVnYUdGMlpTQmhaR1JsWkNCM2FHVnVJR3B2YVc1cGJtY2dkMjl5WkhOY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHTjFjbkpsYm5STWFXNWxMbk5zYVdObEtDMHhLU0E5UFQwZ1hDSWdYQ0lwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamRYSnlaVzUwVEdsdVpTQTlJR04xY25KbGJuUk1hVzVsTG5Oc2FXTmxLREFzSUMweEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCc2FXNWxjeTV3ZFhOb0tHTjFjbkpsYm5STWFXNWxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdZM1Z5Y21WdWRFeHBibVVnUFNCamRYSnlaVzUwUTJoaGNqdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1kzVnljbVZ1ZEV4cGJtVlhhV1IwYUZScGJHeE9iM2NnUFNCM2FXUjBhRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dOMWNuSmxiblJNYVc1bFYybGtkR2hVYVd4c1RtOTNJRDA5UFNCdFlYaFhhV1IwYUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTjFjbkpsYm5STWFXNWxJRDBnWENKY0lqdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpkWEp5Wlc1MFRHbHVaVmRwWkhSb1ZHbHNiRTV2ZHlBOUlEQTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR04xY25KbGJuUk1hVzVsSUNzOUlHTjFjbkpsYm5SRGFHRnlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBdkx5QndkWE5vSUdOMWNuSmxiblFnYkdsdVpTQnBaaUJoY0hCbGJtUnBibWNnYzNCaFkyVWdaWGhqWldWa2N5QnRZWGdnZDJsa2RHaGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb1kzVnljbVZ1ZEV4cGJtVlhhV1IwYUZScGJHeE9iM2NnS3lCemNHRmpaVmRwWkhSb0lENDlJRzFoZUZkcFpIUm9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnNhVzVsY3k1d2RYTm9LR04xY25KbGJuUk1hVzVsS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR04xY25KbGJuUk1hVzVsSUQwZ1hDSmNJanRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTjFjbkpsYm5STWFXNWxWMmxrZEdoVWFXeHNUbTkzSUQwZ01EdGNiaUFnSUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdjM0JoWTJVZ2JtVmxaSE1nZEc4Z1ltVWdZWEJ3Wlc1a1pXUWdZbVZtYjNKbElHNWxlSFFnZDI5eVpGeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1lYTWdZM1Z5Y21WdWRFeHBibVVnWTI5dWRHRnBibk1nWTJoaGNuTWdkMmhwWTJnZ1kyOTFiR1J1SjNRZ1ltVWdZWEJ3Wlc1a1pXUmNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklIUnZJSEJ5WlhacGIzVnpJR3hwYm1WY2JpQWdJQ0FnSUNBZ0lDQWdJR04xY25KbGJuUk1hVzVsSUNzOUlGd2lJRndpTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZM1Z5Y21WdWRFeHBibVZYYVdSMGFGUnBiR3hPYjNjZ0t6MGdjM0JoWTJWWGFXUjBhRHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0JwYm1SbGVDc3JPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUM4dklGTjBZWEowSUdGd2NHVnVaR2x1WnlCM2IzSmtjeUJwYmlCaElHeHBibVVnZEdsc2JDQnRZWGdnZDJsa2RHZ2djbVZoWTJobFpGeHVJQ0FnSUNBZ0lDQWdJSGRvYVd4bElDaGpkWEp5Wlc1MFRHbHVaVmRwWkhSb1ZHbHNiRTV2ZHlBOElHMWhlRmRwWkhSb0lDWW1JR2x1WkdWNElEd2dkMjl5WkhNdWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQjNiM0prSUQwZ2QyOXlaSE5iYVc1a1pYaGRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kzVnljbVZ1ZEV4cGJtVlhhV1IwYUZScGJHeE9iM2NnUFNCblpYUlVaWGgwVjJsa2RHZ29ZM1Z5Y21WdWRFeHBibVVnS3lCM2IzSmtMQ0JtYjI1MEtUdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR04xY25KbGJuUk1hVzVsVjJsa2RHaFVhV3hzVG05M0lENDlJRzFoZUZkcFpIUm9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR3hwYm1WekxuQjFjMmdvWTNWeWNtVnVkRXhwYm1VcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamRYSnlaVzUwVEdsdVpWZHBaSFJvVkdsc2JFNXZkeUE5SURBN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdOMWNuSmxiblJNYVc1bElEMGdYQ0pjSWp0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdsdVpHVjRLeXM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpkWEp5Wlc1MFRHbHVaU0FyUFNCZ0pIdDNiM0prZlNCZ08xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QlFkWE5vSUhSb1pTQjNiM0prSUdsbUlHRndjR1Z1WkdsdVp5QnpjR0ZqWlNCbGVHTmxaV1J6SUcxaGVDQjNhV1IwYUZ4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dOMWNuSmxiblJNYVc1bFYybGtkR2hVYVd4c1RtOTNJQ3NnYzNCaFkyVlhhV1IwYUNBK1BTQnRZWGhYYVdSMGFDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnNhVzVsY3k1d2RYTm9LR04xY25KbGJuUk1hVzVsTG5Oc2FXTmxLREFzSUMweEtTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHTjFjbkpsYm5STWFXNWxJRDBnWENKY0lqdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1kzVnljbVZ1ZEV4cGJtVlhhV1IwYUZScGJHeE9iM2NnUFNBd08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLR04xY25KbGJuUk1hVzVsVjJsa2RHaFVhV3hzVG05M0lEMDlQU0J0WVhoWGFXUjBhQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZM1Z5Y21WdWRFeHBibVVnUFNCY0lsd2lPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kzVnljbVZ1ZEV4cGJtVlhhV1IwYUZScGJHeE9iM2NnUFNBd08xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tHTjFjbkpsYm5STWFXNWxLU0I3WEc0Z0lDQWdJQ0FnSUM4dklHOXViSGtnY21WdGIzWmxJR3hoYzNRZ2RISmhhV3hwYm1jZ2MzQmhZMlVnZDJocFkyZ2dkMlVnYUdGMlpTQmhaR1JsWkNCM2FHVnVJR3B2YVc1cGJtY2dkMjl5WkhOY2JpQWdJQ0FnSUNBZ2FXWWdLR04xY25KbGJuUk1hVzVsTG5Oc2FXTmxLQzB4S1NBOVBUMGdYQ0lnWENJcElIdGNiaUFnSUNBZ0lDQWdJQ0JqZFhKeVpXNTBUR2x1WlNBOUlHTjFjbkpsYm5STWFXNWxMbk5zYVdObEtEQXNJQzB4S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnNhVzVsY3k1d2RYTm9LR04xY25KbGJuUk1hVzVsS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lIMHBPMXh1SUNCeVpYUjFjbTRnYkdsdVpYTXVhbTlwYmloY0lseGNibHdpS1R0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmphR0Z5VjJsa2RHZ2dQU0FvS0NrZ1BUNGdlMXh1SUNCamIyNXpkQ0JqWVdOb1pXUkRhR0Z5VjJsa2RHZzZJSHNnVzJ0bGVUb2dSbTl1ZEZOMGNtbHVaMTA2SUVGeWNtRjVQRzUxYldKbGNqNGdmU0E5SUh0OU8xeHVYRzRnSUdOdmJuTjBJR05oYkdOMWJHRjBaU0E5SUNoamFHRnlPaUJ6ZEhKcGJtY3NJR1p2Ym5RNklFWnZiblJUZEhKcGJtY3BJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQmhjMk5wYVNBOUlHTm9ZWEl1WTJoaGNrTnZaR1ZCZENnd0tUdGNiaUFnSUNCcFppQW9JV05oWTJobFpFTm9ZWEpYYVdSMGFGdG1iMjUwWFNrZ2UxeHVJQ0FnSUNBZ1kyRmphR1ZrUTJoaGNsZHBaSFJvVzJadmJuUmRJRDBnVzEwN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNnaFkyRmphR1ZrUTJoaGNsZHBaSFJvVzJadmJuUmRXMkZ6WTJscFhTa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2QybGtkR2dnUFNCblpYUlVaWGgwVjJsa2RHZ29ZMmhoY2l3Z1ptOXVkQ2s3WEc0Z0lDQWdJQ0JqWVdOb1pXUkRhR0Z5VjJsa2RHaGJabTl1ZEYxYllYTmphV2xkSUQwZ2QybGtkR2c3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCallXTm9aV1JEYUdGeVYybGtkR2hiWm05dWRGMWJZWE5qYVdsZE8xeHVJQ0I5TzF4dVhHNGdJR052Ym5OMElHZGxkRU5oWTJobElEMGdLR1p2Ym5RNklFWnZiblJUZEhKcGJtY3BJRDArSUh0Y2JpQWdJQ0J5WlhSMWNtNGdZMkZqYUdWa1EyaGhjbGRwWkhSb1cyWnZiblJkTzF4dUlDQjlPMXh1SUNCeVpYUjFjbTRnZTF4dUlDQWdJR05oYkdOMWJHRjBaU3hjYmlBZ0lDQm5aWFJEWVdOb1pTeGNiaUFnZlR0Y2JuMHBLQ2s3WEc1bGVIQnZjblFnWTI5dWMzUWdaMlYwUVhCd2NtOTRUV2x1VEdsdVpWZHBaSFJvSUQwZ0tHWnZiblE2SUVadmJuUlRkSEpwYm1jcElEMCtJSHRjYmlBZ1kyOXVjM1FnYldsdVEyaGhjbGRwWkhSb0lEMGdaMlYwVFdsdVEyaGhjbGRwWkhSb0tHWnZiblFwTzF4dUlDQnBaaUFvYldsdVEyaGhjbGRwWkhSb0lEMDlQU0F3S1NCN1hHNGdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJRzFsWVhOMWNtVlVaWGgwS0VSVlRVMVpYMVJGV0ZRdWMzQnNhWFFvWENKY0lpa3VhbTlwYmloY0lseGNibHdpS1N3Z1ptOXVkQ2t1ZDJsa2RHZ2dLMXh1SUNBZ0lDQWdRazlWVGtSZlZFVllWRjlRUVVSRVNVNUhJQ29nTWx4dUlDQWdJQ2s3WEc0Z0lIMWNiaUFnY21WMGRYSnVJRzFwYmtOb1lYSlhhV1IwYUNBcklFSlBWVTVFWDFSRldGUmZVRUZFUkVsT1J5QXFJREk3WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1oyVjBRWEJ3Y205NFRXbHVUR2x1WlVobGFXZG9kQ0E5SUNobWIyNTBPaUJHYjI1MFUzUnlhVzVuS1NBOVBpQjdYRzRnSUhKbGRIVnliaUJuWlhSQmNIQnliM2hNYVc1bFNHVnBaMmgwS0dadmJuUXBJQ3NnUWs5VlRrUmZWRVZZVkY5UVFVUkVTVTVISUNvZ01qdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JuWlhSTmFXNURhR0Z5VjJsa2RHZ2dQU0FvWm05dWREb2dSbTl1ZEZOMGNtbHVaeWtnUFQ0Z2UxeHVJQ0JqYjI1emRDQmpZV05vWlNBOUlHTm9ZWEpYYVdSMGFDNW5aWFJEWVdOb1pTaG1iMjUwS1R0Y2JpQWdhV1lnS0NGallXTm9aU2tnZTF4dUlDQWdJSEpsZEhWeWJpQXdPMXh1SUNCOVhHNGdJR052Ym5OMElHTmhZMmhsVjJsMGFFOTFkRVZ0Y0hSNUlEMGdZMkZqYUdVdVptbHNkR1Z5S0NoMllXd3BJRDArSUhaaGJDQWhQVDBnZFc1a1pXWnBibVZrS1R0Y2JseHVJQ0J5WlhSMWNtNGdUV0YwYUM1dGFXNG9MaTR1WTJGamFHVlhhWFJvVDNWMFJXMXdkSGtwTzF4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHZGxkRUZ3Y0hKdmVFTm9ZWEp6Vkc5R2FYUkpibGRwWkhSb0lEMGdLR1p2Ym5RNklFWnZiblJUZEhKcGJtY3NJSGRwWkhSb09pQnVkVzFpWlhJcElEMCtJSHRjYmlBZ0x5OGdSMlZ1WlhKaGJHeDVJR3h2ZDJWeUlHTmhjMlVnYVhNZ2RYTmxaQ0J6YnlCamIyNTJaWEowYVc1bklIUnZJR3h2ZDJWeUlHTmhjMlZjYmlBZ1kyOXVjM1FnWkhWdGJYbFVaWGgwSUQwZ1JGVk5UVmxmVkVWWVZDNTBiMHh2WTJGc1pVeHZkMlZ5UTJGelpTZ3BPMXh1SUNCamIyNXpkQ0JpWVhSamFFeGxibWQwYUNBOUlEWTdYRzRnSUd4bGRDQnBibVJsZUNBOUlEQTdYRzRnSUd4bGRDQjNhV1IwYUZScGJHeE9iM2NnUFNBd08xeHVJQ0JzWlhRZ2MzUnlJRDBnWENKY0lqdGNiaUFnZDJocGJHVWdLSGRwWkhSb1ZHbHNiRTV2ZHlBOFBTQjNhV1IwYUNrZ2UxeHVJQ0FnSUdOdmJuTjBJR0poZEdOb0lEMGdaSFZ0YlhsVVpYaDBMbk4xWW5OMGNpaHBibVJsZUN3Z2FXNWtaWGdnS3lCaVlYUmphRXhsYm1kMGFDazdYRzRnSUNBZ2MzUnlJQ3M5SUdKaGRHTm9PMXh1SUNBZ0lIZHBaSFJvVkdsc2JFNXZkeUFyUFNCblpYUlVaWGgwVjJsa2RHZ29jM1J5TENCbWIyNTBLVHRjYmlBZ0lDQnBaaUFvYVc1a1pYZ2dQVDA5SUdSMWJXMTVWR1Y0ZEM1c1pXNW5kR2dnTFNBeEtTQjdYRzRnSUNBZ0lDQnBibVJsZUNBOUlEQTdYRzRnSUNBZ2ZWeHVJQ0FnSUdsdVpHVjRJRDBnYVc1a1pYZ2dLeUJpWVhSamFFeGxibWQwYUR0Y2JpQWdmVnh1WEc0Z0lIZG9hV3hsSUNoM2FXUjBhRlJwYkd4T2IzY2dQaUIzYVdSMGFDa2dlMXh1SUNBZ0lITjBjaUE5SUhOMGNpNXpkV0p6ZEhJb01Dd2djM1J5TG14bGJtZDBhQ0F0SURFcE8xeHVJQ0FnSUhkcFpIUm9WR2xzYkU1dmR5QTlJR2RsZEZSbGVIUlhhV1IwYUNoemRISXNJR1p2Ym5RcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCemRISXViR1Z1WjNSb08xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2RsZEVKdmRXNWtWR1Y0ZEVWc1pXMWxiblJKWkNBOUlDaGpiMjUwWVdsdVpYSTZJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBJSHdnYm5Wc2JDa2dQVDRnZTF4dUlDQnlaWFIxY200Z1kyOXVkR0ZwYm1WeVB5NWliM1Z1WkVWc1pXMWxiblJ6UHk1bWFXeDBaWElvS0dWc1pTa2dQVDRnWld4bExuUjVjR1VnUFQwOUlGd2lkR1Y0ZEZ3aUtWc3dYVDh1YVdRN1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdaMlYwUW05MWJtUlVaWGgwUld4bGJXVnVkQ0E5SUNobGJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZENCOElHNTFiR3dwSUQwK0lIdGNiaUFnYVdZZ0tDRmxiR1Z0Wlc1MEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUgxY2JpQWdZMjl1YzNRZ1ltOTFibVJVWlhoMFJXeGxiV1Z1ZEVsa0lEMGdaMlYwUW05MWJtUlVaWGgwUld4bGJXVnVkRWxrS0dWc1pXMWxiblFwTzF4dUlDQnBaaUFvWW05MWJtUlVaWGgwUld4bGJXVnVkRWxrS1NCN1hHNGdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJQ2hUWTJWdVpTNW5aWFJUWTJWdVpTaGxiR1Z0Wlc1MEtUOHVaMlYwUld4bGJXVnVkQ2hjYmlBZ0lDQWdJQ0FnWW05MWJtUlVaWGgwUld4bGJXVnVkRWxrTEZ4dUlDQWdJQ0FnS1NCaGN5QkZlR05oYkdsa2NtRjNWR1Y0ZEVWc1pXMWxiblJYYVhSb1EyOXVkR0ZwYm1WeUtTQjhmQ0J1ZFd4c1hHNGdJQ0FnS1R0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnYm5Wc2JEdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JuWlhSRGIyNTBZV2x1WlhKRmJHVnRaVzUwSUQwZ0tGeHVJQ0JsYkdWdFpXNTBPbHh1SUNBZ0lId2dLRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBJQ1lnZXlCamIyNTBZV2x1WlhKSlpEb2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYQ0pwWkZ3aVhTQjhJRzUxYkd3Z2ZTbGNiaUFnSUNCOElHNTFiR3dzWEc0cElEMCtJSHRjYmlBZ2FXWWdLQ0ZsYkdWdFpXNTBLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lIMWNiaUFnYVdZZ0tHVnNaVzFsYm5RdVkyOXVkR0ZwYm1WeVNXUXBJSHRjYmlBZ0lDQnlaWFIxY200Z1UyTmxibVV1WjJWMFUyTmxibVVvWld4bGJXVnVkQ2svTG1kbGRFVnNaVzFsYm5Rb1pXeGxiV1Z1ZEM1amIyNTBZV2x1WlhKSlpDa2dmSHdnYm5Wc2JEdGNiaUFnZlZ4dUlDQnlaWFIxY200Z2JuVnNiRHRjYm4wN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2VsZW1lbnQvdGV4dEVsZW1lbnQudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2VsZW1lbnQvdGV4dFd5c2l3eWcudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2VsZW1lbnQvdGV4dFd5c2l3eWcudHN4ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJ0ZXh0V3lzaXd5Z1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHRleHRXeXNpd3lnKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4va2V5cyAqLyBcXFwiLi4vLi4va2V5cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfU2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lL1NjZW5lICovIFxcXCIuLi8uLi9zY2VuZS9TY2VuZS50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi90eXBlQ2hlY2tzICovIFxcXCIuLi8uLi9lbGVtZW50L3R5cGVDaGVja3MudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29uc3RhbnRzICovIFxcXCIuLi8uLi9jb25zdGFudHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vbXV0YXRlRWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9tdXRhdGVFbGVtZW50LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90ZXh0RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi90ZXh0RWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC90ZXh0RWxlbWVudC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYWN0aW9uc19hY3Rpb25Qcm9wZXJ0aWVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9hY3Rpb25zL2FjdGlvblByb3BlcnRpZXMgKi8gXFxcIi4uLy4uL2FjdGlvbnMvYWN0aW9uUHJvcGVydGllcy50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FjdGlvbnNfYWN0aW9uQ2FudmFzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9hY3Rpb25zL2FjdGlvbkNhbnZhcyAqLyBcXFwiLi4vLi4vYWN0aW9ucy9hY3Rpb25DYW52YXMudHN4XFxcIik7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuY29uc3Qgbm9ybWFsaXplVGV4dCA9ICh0ZXh0KSA9PiB7XFxuICAgIHJldHVybiAodGV4dFxcbiAgICAgICAgLy8gcmVwbGFjZSB0YWJzIHdpdGggc3BhY2VzIHNvIHRoZXkgcmVuZGVyIGFuZCBtZWFzdXJlIGNvcnJlY3RseVxcbiAgICAgICAgLnJlcGxhY2UoL1xcXFx0L2csIFxcXCIgICAgICAgIFxcXCIpXFxuICAgICAgICAvLyBub3JtYWxpemUgbmV3bGluZXNcXG4gICAgICAgIC5yZXBsYWNlKC9cXFxccj9cXFxcbnxcXFxcci9nLCBcXFwiXFxcXG5cXFwiKSk7XFxufTtcXG5jb25zdCBnZXRUcmFuc2Zvcm0gPSAod2lkdGgsIGhlaWdodCwgYW5nbGUsIGFwcFN0YXRlLCBtYXhXaWR0aCwgbWF4SGVpZ2h0KSA9PiB7XFxuICAgIGNvbnN0IHsgem9vbSB9ID0gYXBwU3RhdGU7XFxuICAgIGNvbnN0IGRlZ3JlZSA9ICgxODAgKiBhbmdsZSkgLyBNYXRoLlBJO1xcbiAgICBsZXQgdHJhbnNsYXRlWCA9ICh3aWR0aCAqICh6b29tLnZhbHVlIC0gMSkpIC8gMjtcXG4gICAgbGV0IHRyYW5zbGF0ZVkgPSAoaGVpZ2h0ICogKHpvb20udmFsdWUgLSAxKSkgLyAyO1xcbiAgICBpZiAod2lkdGggPiBtYXhXaWR0aCAmJiB6b29tLnZhbHVlICE9PSAxKSB7XFxuICAgICAgICB0cmFuc2xhdGVYID0gKG1heFdpZHRoICogKHpvb20udmFsdWUgLSAxKSkgLyAyO1xcbiAgICB9XFxuICAgIGlmIChoZWlnaHQgPiBtYXhIZWlnaHQgJiYgem9vbS52YWx1ZSAhPT0gMSkge1xcbiAgICAgICAgdHJhbnNsYXRlWSA9IChtYXhIZWlnaHQgKiAoem9vbS52YWx1ZSAtIDEpKSAvIDI7XFxuICAgIH1cXG4gICAgcmV0dXJuIGB0cmFuc2xhdGUoJHt0cmFuc2xhdGVYfXB4LCAke3RyYW5zbGF0ZVl9cHgpIHNjYWxlKCR7em9vbS52YWx1ZX0pIHJvdGF0ZSgke2RlZ3JlZX1kZWcpYDtcXG59O1xcbmNvbnN0IHRleHRXeXNpd3lnID0gKHsgaWQsIG9uQ2hhbmdlLCBvblN1Ym1pdCwgZ2V0Vmlld3BvcnRDb29yZHMsIGVsZW1lbnQsIGNhbnZhcywgZXhjYWxpZHJhd0NvbnRhaW5lciwgYXBwLCB9KSA9PiB7XFxuICAgIGNvbnN0IHRleHRQcm9wZXJ0aWVzVXBkYXRlZCA9ICh1cGRhdGVkRWxlbWVudCwgZWRpdGFibGUpID0+IHtcXG4gICAgICAgIGNvbnN0IGN1cnJlbnRGb250ID0gZWRpdGFibGUuc3R5bGUuZm9udEZhbWlseS5yZXBsYWNlKC9cXFwiL2csIFxcXCJcXFwiKTtcXG4gICAgICAgIGlmICgoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRGb250RmFtaWx5U3RyaW5nKSh7IGZvbnRGYW1pbHk6IHVwZGF0ZWRFbGVtZW50LmZvbnRGYW1pbHkgfSkgIT09XFxuICAgICAgICAgICAgY3VycmVudEZvbnQpIHtcXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChgJHt1cGRhdGVkRWxlbWVudC5mb250U2l6ZX1weGAgIT09IGVkaXRhYmxlLnN0eWxlLmZvbnRTaXplKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgIH07XFxuICAgIGxldCBvcmlnaW5hbENvbnRhaW5lckhlaWdodDtcXG4gICAgY29uc3QgdXBkYXRlV3lzaXd5Z1N0eWxlID0gKCkgPT4ge1xcbiAgICAgICAgdmFyIF9hO1xcbiAgICAgICAgY29uc3QgYXBwU3RhdGUgPSBhcHAuc3RhdGU7XFxuICAgICAgICBjb25zdCB1cGRhdGVkRWxlbWVudCA9IChfYSA9IF9zY2VuZV9TY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fW1xcXCJkZWZhdWx0XFxcIl0uZ2V0U2NlbmUoZWxlbWVudCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRFbGVtZW50KGlkKTtcXG4gICAgICAgIGNvbnN0IGFwcHJveExpbmVIZWlnaHQgPSAoMCxfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5nZXRBcHByb3hMaW5lSGVpZ2h0KSgoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRGb250U3RyaW5nKSh1cGRhdGVkRWxlbWVudCkpO1xcbiAgICAgICAgaWYgKHVwZGF0ZWRFbGVtZW50ICYmICgwLF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uaXNUZXh0RWxlbWVudCkodXBkYXRlZEVsZW1lbnQpKSB7XFxuICAgICAgICAgICAgbGV0IGNvb3JkWCA9IHVwZGF0ZWRFbGVtZW50Lng7XFxuICAgICAgICAgICAgbGV0IGNvb3JkWSA9IHVwZGF0ZWRFbGVtZW50Lnk7XFxuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gKDAsX3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uZ2V0Q29udGFpbmVyRWxlbWVudCkodXBkYXRlZEVsZW1lbnQpO1xcbiAgICAgICAgICAgIGxldCBtYXhXaWR0aCA9IHVwZGF0ZWRFbGVtZW50LndpZHRoO1xcbiAgICAgICAgICAgIGxldCBtYXhIZWlnaHQgPSB1cGRhdGVkRWxlbWVudC5oZWlnaHQ7XFxuICAgICAgICAgICAgbGV0IHdpZHRoID0gdXBkYXRlZEVsZW1lbnQud2lkdGg7XFxuICAgICAgICAgICAgLy8gU2V0IHRvIGVsZW1lbnQgaGVpZ2h0IGJ5IGRlZmF1bHQgc2luY2UgdGhhdHNcXG4gICAgICAgICAgICAvLyB3aGF0IGlzIGdvaW5nIHRvIGJlIHVzZWQgZm9yIHVuYm91bmRlZCB0ZXh0XFxuICAgICAgICAgICAgbGV0IGhlaWdodCA9IHVwZGF0ZWRFbGVtZW50LmhlaWdodDtcXG4gICAgICAgICAgICBpZiAoY29udGFpbmVyICYmIHVwZGF0ZWRFbGVtZW50LmNvbnRhaW5lcklkKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXNVcGRhdGVkID0gdGV4dFByb3BlcnRpZXNVcGRhdGVkKHVwZGF0ZWRFbGVtZW50LCBlZGl0YWJsZSk7XFxuICAgICAgICAgICAgICAgIC8vIHVzaW5nIGVkaXRvci5zdHlsZS5oZWlnaHQgdG8gZ2V0IHRoZSBhY2N1cmF0ZSBoZWlnaHQgb2YgdGV4dCBlZGl0b3JcXG4gICAgICAgICAgICAgICAgY29uc3QgZWRpdG9ySGVpZ2h0ID0gTnVtYmVyKGVkaXRhYmxlLnN0eWxlLmhlaWdodC5zbGljZSgwLCAtMikpO1xcbiAgICAgICAgICAgICAgICBpZiAoZWRpdG9ySGVpZ2h0ID4gMCkge1xcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0ID0gZWRpdG9ySGVpZ2h0O1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzVXBkYXRlZCkge1xcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxDb250YWluZXJIZWlnaHQgPSBjb250YWluZXIuaGVpZ2h0O1xcbiAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIGhlaWdodCBvZiB0aGUgZWRpdG9yIGFmdGVyIHByb3BlcnRpZXMgdXBkYXRlZFxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0ID0gdXBkYXRlZEVsZW1lbnQuaGVpZ2h0O1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGlmICghb3JpZ2luYWxDb250YWluZXJIZWlnaHQpIHtcXG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsQ29udGFpbmVySGVpZ2h0ID0gY29udGFpbmVyLmhlaWdodDtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBtYXhXaWR0aCA9IGNvbnRhaW5lci53aWR0aCAtIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5CT1VORF9URVhUX1BBRERJTkcgKiAyO1xcbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQgPSBjb250YWluZXIuaGVpZ2h0IC0gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLkJPVU5EX1RFWFRfUEFERElORyAqIDI7XFxuICAgICAgICAgICAgICAgIHdpZHRoID0gbWF4V2lkdGg7XFxuICAgICAgICAgICAgICAgIC8vIFRoZSBjb29yZGluYXRlcyBvZiB0ZXh0IGJveCBzZXQgYSBkaXN0YW5jZSBvZlxcbiAgICAgICAgICAgICAgICAvLyAzMHB4IHRvIHByZXNlcnZlIHBhZGRpbmdcXG4gICAgICAgICAgICAgICAgY29vcmRYID0gY29udGFpbmVyLnggKyBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uQk9VTkRfVEVYVF9QQURESU5HO1xcbiAgICAgICAgICAgICAgICAvLyBhdXRvZ3JvdyBjb250YWluZXIgaGVpZ2h0IGlmIHRleHQgZXhjZWVkc1xcbiAgICAgICAgICAgICAgICBpZiAoaGVpZ2h0ID4gbWF4SGVpZ2h0KSB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaWZmID0gTWF0aC5taW4oaGVpZ2h0IC0gbWF4SGVpZ2h0LCBhcHByb3hMaW5lSGVpZ2h0KTtcXG4gICAgICAgICAgICAgICAgICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18ubXV0YXRlRWxlbWVudCkoY29udGFpbmVyLCB7IGhlaWdodDogY29udGFpbmVyLmhlaWdodCArIGRpZmYgfSk7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoXFxuICAgICAgICAgICAgICAgIC8vIGF1dG9zaHJpbmsgY29udGFpbmVyIGhlaWdodCB1bnRpbCBvcmlnaW5hbCBjb250YWluZXIgaGVpZ2h0XFxuICAgICAgICAgICAgICAgIC8vIGlzIHJlYWNoZWQgd2hlbiB0ZXh0IGlzIHJlbW92ZWRcXG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmhlaWdodCA+IG9yaWdpbmFsQ29udGFpbmVySGVpZ2h0ICYmXFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQgPCBtYXhIZWlnaHQpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpZmYgPSBNYXRoLm1pbihtYXhIZWlnaHQgLSBoZWlnaHQsIGFwcHJveExpbmVIZWlnaHQpO1xcbiAgICAgICAgICAgICAgICAgICAgKDAsX211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5tdXRhdGVFbGVtZW50KShjb250YWluZXIsIHsgaGVpZ2h0OiBjb250YWluZXIuaGVpZ2h0IC0gZGlmZiB9KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAvLyBTdGFydCBwdXNoaW5nIHRleHQgdXB3YXJkIHVudGlsIGEgZGlmZiBvZiAzMHB4IChwYWRkaW5nKVxcbiAgICAgICAgICAgICAgICAvLyBpcyByZWFjaGVkXFxuICAgICAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgLy8gdmVydGljYWxseSBjZW50ZXIgYWxpZ24gdGhlIHRleHRcXG4gICAgICAgICAgICAgICAgICAgIGNvb3JkWSA9IGNvbnRhaW5lci55ICsgY29udGFpbmVyLmhlaWdodCAvIDIgLSBoZWlnaHQgLyAyO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnN0IFt2aWV3cG9ydFgsIHZpZXdwb3J0WV0gPSBnZXRWaWV3cG9ydENvb3Jkcyhjb29yZFgsIGNvb3JkWSk7XFxuICAgICAgICAgICAgY29uc3QgeyB0ZXh0QWxpZ24gfSA9IHVwZGF0ZWRFbGVtZW50O1xcbiAgICAgICAgICAgIGVkaXRhYmxlLnZhbHVlID0gdXBkYXRlZEVsZW1lbnQub3JpZ2luYWxUZXh0O1xcbiAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gdXBkYXRlZEVsZW1lbnQub3JpZ2luYWxUZXh0LnNwbGl0KFxcXCJcXFxcblxcXCIpO1xcbiAgICAgICAgICAgIGNvbnN0IGxpbmVIZWlnaHQgPSB1cGRhdGVkRWxlbWVudC5jb250YWluZXJJZFxcbiAgICAgICAgICAgICAgICA/IGFwcHJveExpbmVIZWlnaHRcXG4gICAgICAgICAgICAgICAgOiB1cGRhdGVkRWxlbWVudC5oZWlnaHQgLyBsaW5lcy5sZW5ndGg7XFxuICAgICAgICAgICAgaWYgKCFjb250YWluZXIpIHtcXG4gICAgICAgICAgICAgICAgbWF4V2lkdGggPSAoYXBwU3RhdGUud2lkdGggLSA4IC0gdmlld3BvcnRYKSAvIGFwcFN0YXRlLnpvb20udmFsdWU7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0ZXh0IGVkaXRvciBoZWlnaHQgZG9lc24ndCBnbyBiZXlvbmQgdmlld3BvcnRcXG4gICAgICAgICAgICBjb25zdCBlZGl0b3JNYXhIZWlnaHQgPSAoYXBwU3RhdGUuaGVpZ2h0IC0gdmlld3BvcnRZKSAvIGFwcFN0YXRlLnpvb20udmFsdWU7XFxuICAgICAgICAgICAgY29uc3QgYW5nbGUgPSBjb250YWluZXIgPyBjb250YWluZXIuYW5nbGUgOiB1cGRhdGVkRWxlbWVudC5hbmdsZTtcXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGVkaXRhYmxlLnN0eWxlLCB7XFxuICAgICAgICAgICAgICAgIGZvbnQ6ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmdldEZvbnRTdHJpbmcpKHVwZGF0ZWRFbGVtZW50KSxcXG4gICAgICAgICAgICAgICAgLy8gbXVzdCBiZSBkZWZpbmVkICphZnRlciogZm9udCBcdTAwQUZcXFxcXyhcdTMwQzQpXy9cdTAwQUZcXG4gICAgICAgICAgICAgICAgbGluZUhlaWdodDogYCR7bGluZUhlaWdodH1weGAsXFxuICAgICAgICAgICAgICAgIHdpZHRoOiBgJHt3aWR0aH1weGAsXFxuICAgICAgICAgICAgICAgIGhlaWdodDogYCR7aGVpZ2h0fXB4YCxcXG4gICAgICAgICAgICAgICAgbGVmdDogYCR7dmlld3BvcnRYfXB4YCxcXG4gICAgICAgICAgICAgICAgdG9wOiBgJHt2aWV3cG9ydFl9cHhgLFxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IGdldFRyYW5zZm9ybSh3aWR0aCwgaGVpZ2h0LCBhbmdsZSwgYXBwU3RhdGUsIG1heFdpZHRoLCBlZGl0b3JNYXhIZWlnaHQpLFxcbiAgICAgICAgICAgICAgICB0ZXh0QWxpZ24sXFxuICAgICAgICAgICAgICAgIGNvbG9yOiB1cGRhdGVkRWxlbWVudC5zdHJva2VDb2xvcixcXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogdXBkYXRlZEVsZW1lbnQub3BhY2l0eSAvIDEwMCxcXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBcXFwidmFyKC0tdGhlbWUtZmlsdGVyKVxcXCIsXFxuICAgICAgICAgICAgICAgIG1heFdpZHRoOiBgJHttYXhXaWR0aH1weGAsXFxuICAgICAgICAgICAgICAgIG1heEhlaWdodDogYCR7ZWRpdG9yTWF4SGVpZ2h0fXB4YCxcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAvLyBGb3Igc29tZSByZWFzb24gdXBkYXRpbmcgZm9udCBhdHRyaWJ1dGUgZG9lc24ndCBzZXQgZm9udCBmYW1pbHlcXG4gICAgICAgICAgICAvLyBoZW5jZSB1cGRhdGluZyBmb250IGZhbWlseSBleHBsaWNpdGx5IGZvciB0ZXN0IGVudmlyb25tZW50XFxuICAgICAgICAgICAgaWYgKCgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmlzVGVzdEVudikoKSkge1xcbiAgICAgICAgICAgICAgICBlZGl0YWJsZS5zdHlsZS5mb250RmFtaWx5ID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0Rm9udEZhbWlseVN0cmluZykodXBkYXRlZEVsZW1lbnQpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAoMCxfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLm11dGF0ZUVsZW1lbnQpKHVwZGF0ZWRFbGVtZW50LCB7IHg6IGNvb3JkWCwgeTogY29vcmRZIH0pO1xcbiAgICAgICAgfVxcbiAgICB9O1xcbiAgICBjb25zdCBlZGl0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXFxcInRleHRhcmVhXFxcIik7XFxuICAgIGVkaXRhYmxlLmRpciA9IFxcXCJhdXRvXFxcIjtcXG4gICAgZWRpdGFibGUudGFiSW5kZXggPSAwO1xcbiAgICBlZGl0YWJsZS5kYXRhc2V0LnR5cGUgPSBcXFwid3lzaXd5Z1xcXCI7XFxuICAgIC8vIHByZXZlbnQgbGluZSB3cmFwcGluZyBvbiBTYWZhcmlcXG4gICAgZWRpdGFibGUud3JhcCA9IFxcXCJvZmZcXFwiO1xcbiAgICBlZGl0YWJsZS5jbGFzc0xpc3QuYWRkKFxcXCJleGNhbGlkcmF3LXd5c2l3eWdcXFwiKTtcXG4gICAgbGV0IHdoaXRlU3BhY2UgPSBcXFwicHJlXFxcIjtcXG4gICAgbGV0IHdvcmRCcmVhayA9IFxcXCJub3JtYWxcXFwiO1xcbiAgICBpZiAoKDAsX3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5pc0JvdW5kVG9Db250YWluZXIpKGVsZW1lbnQpKSB7XFxuICAgICAgICB3aGl0ZVNwYWNlID0gXFxcInByZS13cmFwXFxcIjtcXG4gICAgICAgIHdvcmRCcmVhayA9IFxcXCJicmVhay13b3JkXFxcIjtcXG4gICAgfVxcbiAgICBPYmplY3QuYXNzaWduKGVkaXRhYmxlLnN0eWxlLCB7XFxuICAgICAgICBwb3NpdGlvbjogXFxcImFic29sdXRlXFxcIixcXG4gICAgICAgIGRpc3BsYXk6IFxcXCJpbmxpbmUtYmxvY2tcXFwiLFxcbiAgICAgICAgbWluSGVpZ2h0OiBcXFwiMWVtXFxcIixcXG4gICAgICAgIGJhY2tmYWNlVmlzaWJpbGl0eTogXFxcImhpZGRlblxcXCIsXFxuICAgICAgICBtYXJnaW46IDAsXFxuICAgICAgICBwYWRkaW5nOiAwLFxcbiAgICAgICAgYm9yZGVyOiAwLFxcbiAgICAgICAgb3V0bGluZTogMCxcXG4gICAgICAgIHJlc2l6ZTogXFxcIm5vbmVcXFwiLFxcbiAgICAgICAgYmFja2dyb3VuZDogXFxcInRyYW5zcGFyZW50XFxcIixcXG4gICAgICAgIG92ZXJmbG93OiBcXFwiaGlkZGVuXFxcIixcXG4gICAgICAgIC8vIG11c3QgYmUgc3BlY2lmaWVkIGJlY2F1c2UgaW4gZGFyayBtb2RlIGNhbnZhcyBjcmVhdGVzIGEgc3RhY2tpbmcgY29udGV4dFxcbiAgICAgICAgekluZGV4OiBcXFwidmFyKC0tekluZGV4LXd5c2l3eWcpXFxcIixcXG4gICAgICAgIHdvcmRCcmVhayxcXG4gICAgICAgIC8vIHByZXZlbnQgbGluZSB3cmFwcGluZyAoYHdoaXRlc3BhY2U6IG5vd3JhcGAgZG9lc24ndCB3b3JrIG9uIEZGKVxcbiAgICAgICAgd2hpdGVTcGFjZSxcXG4gICAgICAgIG92ZXJmbG93V3JhcDogXFxcImJyZWFrLXdvcmRcXFwiLFxcbiAgICB9KTtcXG4gICAgdXBkYXRlV3lzaXd5Z1N0eWxlKCk7XFxuICAgIGlmIChvbkNoYW5nZSkge1xcbiAgICAgICAgZWRpdGFibGUub25pbnB1dCA9ICgpID0+IHtcXG4gICAgICAgICAgICB2YXIgX2E7XFxuICAgICAgICAgICAgY29uc3QgdXBkYXRlZEVsZW1lbnQgPSAoX2EgPSBfc2NlbmVfU2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1tcXFwiZGVmYXVsdFxcXCJdLmdldFNjZW5lKGVsZW1lbnQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0RWxlbWVudChpZCk7XFxuICAgICAgICAgICAgY29uc3QgZm9udCA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmdldEZvbnRTdHJpbmcpKHVwZGF0ZWRFbGVtZW50KTtcXG4gICAgICAgICAgICAvLyB1c2luZyBzY3JvbGxIZWlnaHQgaGVyZSBzaW5jZSB3ZSBuZWVkIHRvIGNhbGN1bGF0ZVxcbiAgICAgICAgICAgIC8vIG51bWJlciBvZiBsaW5lcyBzbyBjYW5ub3QgdXNlIGVkaXRhYmxlLnN0eWxlLmhlaWdodFxcbiAgICAgICAgICAgIC8vIGFzIHRoYXQgZ2V0cyB1cGRhdGVkIGJlbG93XFxuICAgICAgICAgICAgY29uc3QgbGluZXMgPSBlZGl0YWJsZS5zY3JvbGxIZWlnaHQgLyAoMCxfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5nZXRBcHByb3hMaW5lSGVpZ2h0KShmb250KTtcXG4gICAgICAgICAgICAvLyBhdXRvIGluY3JlYXNlIGhlaWdodCBvbmx5IHdoZW4gbGluZXMgID4gMSBzbyBpdHNcXG4gICAgICAgICAgICAvLyBtZWFzdXJlZCBjb3JyZWN0bHkgYW5kIHZlcnRpY2FsbHkgYWxpZ25lcyBmb3JcXG4gICAgICAgICAgICAvLyBmaXJzdCBsaW5lIGFzIHdlbGwgYXMgc2V0dGluZyBoZWlnaHQgdG8gXFxcImF1dG9cXFwiXFxuICAgICAgICAgICAgLy8gZG91YmxlcyB0aGUgaGVpZ2h0IGFzIHNvb24gYXMgdXNlciBzdGFydHMgdHlwaW5nXFxuICAgICAgICAgICAgaWYgKCgwLF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uaXNCb3VuZFRvQ29udGFpbmVyKShlbGVtZW50KSAmJiBsaW5lcyA+IDEpIHtcXG4gICAgICAgICAgICAgICAgbGV0IGhlaWdodCA9IFxcXCJhdXRvXFxcIjtcXG4gICAgICAgICAgICAgICAgaWYgKGxpbmVzID09PSAyKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSAoMCxfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5nZXRDb250YWluZXJFbGVtZW50KShlbGVtZW50KTtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdHVhbExpbmVDb3VudCA9ICgwLF90ZXh0RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLndyYXBUZXh0KShlZGl0YWJsZS52YWx1ZSwgZm9udCwgY29udGFpbmVyLndpZHRoKS5zcGxpdChcXFwiXFxcXG5cXFwiKS5sZW5ndGg7XFxuICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGJyb3dzZXIgYmVoYXZpb3VyIHdoZW4gc2V0dGluZyBoZWlnaHQgdG8gXFxcImF1dG9cXFwiXFxuICAgICAgICAgICAgICAgICAgICAvLyBJdCBzZXRzIHRoZSBoZWlnaHQgbmVlZGVkIGZvciAyIGxpbmVzIGV2ZW4gaWYgYWN0dWFsXFxuICAgICAgICAgICAgICAgICAgICAvLyBsaW5lIGNvdW50IGlzIDEgYXMgbWVudGlvbmVkIGFib3ZlIGFzIHdlbGxcXG4gICAgICAgICAgICAgICAgICAgIC8vIGhlbmNlIHJlZHVjaW5nIHRoZSBoZWlnaHQgYnkgaGFsZiBpZiBhY3R1YWwgbGluZSBjb3VudCBpcyAxXFxuICAgICAgICAgICAgICAgICAgICAvLyBzbyBzaW5nbGUgbGluZSBhbGlnbnMgdmVydGljYWxseSB3aGVuIGRlbGV0aW5nXFxuICAgICAgICAgICAgICAgICAgICBpZiAoYWN0dWFsTGluZUNvdW50ID09PSAxKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0ID0gYCR7ZWRpdGFibGUuc2Nyb2xsSGVpZ2h0IC8gMn1weGA7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWRpdGFibGUuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0O1xcbiAgICAgICAgICAgICAgICBlZGl0YWJsZS5zdHlsZS5oZWlnaHQgPSBgJHtlZGl0YWJsZS5zY3JvbGxIZWlnaHR9cHhgO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBvbkNoYW5nZShub3JtYWxpemVUZXh0KGVkaXRhYmxlLnZhbHVlKSk7XFxuICAgICAgICB9O1xcbiAgICB9XFxuICAgIGVkaXRhYmxlLm9ua2V5ZG93biA9IChldmVudCkgPT4ge1xcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XFxuICAgICAgICBpZiAoIWV2ZW50LnNoaWZ0S2V5ICYmIF9hY3Rpb25zX2FjdGlvbkNhbnZhc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmFjdGlvblpvb21Jbi5rZXlUZXN0KGV2ZW50KSkge1xcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XFxuICAgICAgICAgICAgYXBwLmFjdGlvbk1hbmFnZXIuZXhlY3V0ZUFjdGlvbihfYWN0aW9uc19hY3Rpb25DYW52YXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5hY3Rpb25ab29tSW4pO1xcbiAgICAgICAgICAgIHVwZGF0ZVd5c2l3eWdTdHlsZSgpO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSBpZiAoIWV2ZW50LnNoaWZ0S2V5ICYmIF9hY3Rpb25zX2FjdGlvbkNhbnZhc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmFjdGlvblpvb21PdXQua2V5VGVzdChldmVudCkpIHtcXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xcbiAgICAgICAgICAgIGFwcC5hY3Rpb25NYW5hZ2VyLmV4ZWN1dGVBY3Rpb24oX2FjdGlvbnNfYWN0aW9uQ2FudmFzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uYWN0aW9uWm9vbU91dCk7XFxuICAgICAgICAgICAgdXBkYXRlV3lzaXd5Z1N0eWxlKCk7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIGlmIChfYWN0aW9uc19hY3Rpb25Qcm9wZXJ0aWVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uYWN0aW9uRGVjcmVhc2VGb250U2l6ZS5rZXlUZXN0KGV2ZW50KSkge1xcbiAgICAgICAgICAgIGFwcC5hY3Rpb25NYW5hZ2VyLmV4ZWN1dGVBY3Rpb24oX2FjdGlvbnNfYWN0aW9uUHJvcGVydGllc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmFjdGlvbkRlY3JlYXNlRm9udFNpemUpO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSBpZiAoX2FjdGlvbnNfYWN0aW9uUHJvcGVydGllc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmFjdGlvbkluY3JlYXNlRm9udFNpemUua2V5VGVzdChldmVudCkpIHtcXG4gICAgICAgICAgICBhcHAuYWN0aW9uTWFuYWdlci5leGVjdXRlQWN0aW9uKF9hY3Rpb25zX2FjdGlvblByb3BlcnRpZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5hY3Rpb25JbmNyZWFzZUZvbnRTaXplKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5LRVlTLkVTQ0FQRSkge1xcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XFxuICAgICAgICAgICAgc3VibWl0dGVkVmlhS2V5Ym9hcmQgPSB0cnVlO1xcbiAgICAgICAgICAgIGhhbmRsZVN1Ym1pdCgpO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSBpZiAoZXZlbnQua2V5ID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLktFWVMuRU5URVIgJiYgZXZlbnRbX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5LRVlTLkNUUkxfT1JfQ01EXSkge1xcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XFxuICAgICAgICAgICAgaWYgKGV2ZW50LmlzQ29tcG9zaW5nIHx8IGV2ZW50LmtleUNvZGUgPT09IDIyOSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHN1Ym1pdHRlZFZpYUtleWJvYXJkID0gdHJ1ZTtcXG4gICAgICAgICAgICBoYW5kbGVTdWJtaXQoKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5LRVlTLlRBQiB8fFxcbiAgICAgICAgICAgIChldmVudFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLktFWVMuQ1RSTF9PUl9DTURdICYmXFxuICAgICAgICAgICAgICAgIChldmVudC5jb2RlID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkNPREVTLkJSQUNLRVRfTEVGVCB8fFxcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuY29kZSA9PT0gX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5DT0RFUy5CUkFDS0VUX1JJR0hUKSkpIHtcXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xcbiAgICAgICAgICAgIGlmIChldmVudC5zaGlmdEtleSB8fCBldmVudC5jb2RlID09PSBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkNPREVTLkJSQUNLRVRfTEVGVCkge1xcbiAgICAgICAgICAgICAgICBvdXRkZW50KCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICBpbmRlbnQoKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgLy8gV2UgbXVzdCBzZW5kIGFuIGlucHV0IGV2ZW50IHRvIHJlc2l6ZSB0aGUgZWxlbWVudFxcbiAgICAgICAgICAgIGVkaXRhYmxlLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFxcXCJpbnB1dFxcXCIpKTtcXG4gICAgICAgIH1cXG4gICAgfTtcXG4gICAgY29uc3QgVEFCX1NJWkUgPSA0O1xcbiAgICBjb25zdCBUQUIgPSBcXFwiIFxcXCIucmVwZWF0KFRBQl9TSVpFKTtcXG4gICAgY29uc3QgUkVfTEVBRElOR19UQUIgPSBuZXcgUmVnRXhwKGBeIHsxLCR7VEFCX1NJWkV9fWApO1xcbiAgICBjb25zdCBpbmRlbnQgPSAoKSA9PiB7XFxuICAgICAgICBjb25zdCB7IHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQgfSA9IGVkaXRhYmxlO1xcbiAgICAgICAgY29uc3QgbGluZXNTdGFydEluZGljZXMgPSBnZXRTZWxlY3RlZExpbmVzU3RhcnRJbmRpY2VzKCk7XFxuICAgICAgICBsZXQgdmFsdWUgPSBlZGl0YWJsZS52YWx1ZTtcXG4gICAgICAgIGxpbmVzU3RhcnRJbmRpY2VzLmZvckVhY2goKHN0YXJ0SW5kZXgpID0+IHtcXG4gICAgICAgICAgICBjb25zdCBzdGFydFZhbHVlID0gdmFsdWUuc2xpY2UoMCwgc3RhcnRJbmRleCk7XFxuICAgICAgICAgICAgY29uc3QgZW5kVmFsdWUgPSB2YWx1ZS5zbGljZShzdGFydEluZGV4KTtcXG4gICAgICAgICAgICB2YWx1ZSA9IGAke3N0YXJ0VmFsdWV9JHtUQUJ9JHtlbmRWYWx1ZX1gO1xcbiAgICAgICAgfSk7XFxuICAgICAgICBlZGl0YWJsZS52YWx1ZSA9IHZhbHVlO1xcbiAgICAgICAgZWRpdGFibGUuc2VsZWN0aW9uU3RhcnQgPSBzZWxlY3Rpb25TdGFydCArIFRBQl9TSVpFO1xcbiAgICAgICAgZWRpdGFibGUuc2VsZWN0aW9uRW5kID0gc2VsZWN0aW9uRW5kICsgVEFCX1NJWkUgKiBsaW5lc1N0YXJ0SW5kaWNlcy5sZW5ndGg7XFxuICAgIH07XFxuICAgIGNvbnN0IG91dGRlbnQgPSAoKSA9PiB7XFxuICAgICAgICBjb25zdCB7IHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQgfSA9IGVkaXRhYmxlO1xcbiAgICAgICAgY29uc3QgbGluZXNTdGFydEluZGljZXMgPSBnZXRTZWxlY3RlZExpbmVzU3RhcnRJbmRpY2VzKCk7XFxuICAgICAgICBjb25zdCByZW1vdmVkVGFicyA9IFtdO1xcbiAgICAgICAgbGV0IHZhbHVlID0gZWRpdGFibGUudmFsdWU7XFxuICAgICAgICBsaW5lc1N0YXJ0SW5kaWNlcy5mb3JFYWNoKChzdGFydEluZGV4KSA9PiB7XFxuICAgICAgICAgICAgY29uc3QgdGFiTWF0Y2ggPSB2YWx1ZVxcbiAgICAgICAgICAgICAgICAuc2xpY2Uoc3RhcnRJbmRleCwgc3RhcnRJbmRleCArIFRBQl9TSVpFKVxcbiAgICAgICAgICAgICAgICAubWF0Y2goUkVfTEVBRElOR19UQUIpO1xcbiAgICAgICAgICAgIGlmICh0YWJNYXRjaCkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydFZhbHVlID0gdmFsdWUuc2xpY2UoMCwgc3RhcnRJbmRleCk7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGVuZFZhbHVlID0gdmFsdWUuc2xpY2Uoc3RhcnRJbmRleCArIHRhYk1hdGNoWzBdLmxlbmd0aCk7XFxuICAgICAgICAgICAgICAgIC8vIERlbGV0ZSBhIHRhYiBmcm9tIHRoZSBsaW5lXFxuICAgICAgICAgICAgICAgIHZhbHVlID0gYCR7c3RhcnRWYWx1ZX0ke2VuZFZhbHVlfWA7XFxuICAgICAgICAgICAgICAgIHJlbW92ZWRUYWJzLnB1c2goc3RhcnRJbmRleCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgICAgICBlZGl0YWJsZS52YWx1ZSA9IHZhbHVlO1xcbiAgICAgICAgaWYgKHJlbW92ZWRUYWJzLmxlbmd0aCkge1xcbiAgICAgICAgICAgIGlmIChzZWxlY3Rpb25TdGFydCA+IHJlbW92ZWRUYWJzW3JlbW92ZWRUYWJzLmxlbmd0aCAtIDFdKSB7XFxuICAgICAgICAgICAgICAgIGVkaXRhYmxlLnNlbGVjdGlvblN0YXJ0ID0gTWF0aC5tYXgoc2VsZWN0aW9uU3RhcnQgLSBUQUJfU0laRSwgcmVtb3ZlZFRhYnNbcmVtb3ZlZFRhYnMubGVuZ3RoIC0gMV0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGN1cnNvciBpcyBiZWZvcmUgdGhlIGZpcnN0IHRhYiByZW1vdmVkLCBleDpcXG4gICAgICAgICAgICAgICAgLy8gTGluZXwgIzFcXG4gICAgICAgICAgICAgICAgLy8gICAgIExpbmUgIzJcXG4gICAgICAgICAgICAgICAgLy8gTGlufGUgIzNcXG4gICAgICAgICAgICAgICAgLy8gd2Ugc2hvdWxkIHJlc2V0IHRoZSBzZWxlY3Rpb25TdGFydCB0byBoaXMgaW5pdGlhbCB2YWx1ZS5cXG4gICAgICAgICAgICAgICAgZWRpdGFibGUuc2VsZWN0aW9uU3RhcnQgPSBzZWxlY3Rpb25TdGFydDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZWRpdGFibGUuc2VsZWN0aW9uRW5kID0gTWF0aC5tYXgoZWRpdGFibGUuc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCAtIFRBQl9TSVpFICogcmVtb3ZlZFRhYnMubGVuZ3RoKTtcXG4gICAgICAgIH1cXG4gICAgfTtcXG4gICAgLyoqXFxuICAgICAqIEByZXR1cm5zIGluZGVjZXMgb2Ygc3RhcnQgcG9zaXRpb25zIG9mIHNlbGVjdGVkIGxpbmVzLCBpbiByZXZlcnNlIG9yZGVyXFxuICAgICAqL1xcbiAgICBjb25zdCBnZXRTZWxlY3RlZExpbmVzU3RhcnRJbmRpY2VzID0gKCkgPT4ge1xcbiAgICAgICAgbGV0IHsgc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCwgdmFsdWUgfSA9IGVkaXRhYmxlO1xcbiAgICAgICAgLy8gY2hhcnMgYmVmb3JlIHNlbGVjdGlvblN0YXJ0IG9uIHRoZSBzYW1lIGxpbmVcXG4gICAgICAgIGNvbnN0IHN0YXJ0T2Zmc2V0ID0gdmFsdWUuc2xpY2UoMCwgc2VsZWN0aW9uU3RhcnQpLm1hdGNoKC9bXlxcXFxuXSokLylbMF1cXG4gICAgICAgICAgICAubGVuZ3RoO1xcbiAgICAgICAgLy8gcHV0IGNhcmV0IGF0IHRoZSBzdGFydCBvZiB0aGUgbGluZVxcbiAgICAgICAgc2VsZWN0aW9uU3RhcnQgPSBzZWxlY3Rpb25TdGFydCAtIHN0YXJ0T2Zmc2V0O1xcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB2YWx1ZS5zbGljZShzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTtcXG4gICAgICAgIHJldHVybiBzZWxlY3RlZFxcbiAgICAgICAgICAgIC5zcGxpdChcXFwiXFxcXG5cXFwiKVxcbiAgICAgICAgICAgIC5yZWR1Y2UoKHN0YXJ0SW5kaWNlcywgbGluZSwgaWR4LCBsaW5lcykgPT4gc3RhcnRJbmRpY2VzLmNvbmNhdChpZHhcXG4gICAgICAgICAgICA/IC8vIGN1cnIgbGluZSBpbmRleCBpcyBwcmV2IGxpbmUncyBzdGFydCArIHByZXYgbGluZSdzIGxlbmd0aCArIFxcXFxuXFxuICAgICAgICAgICAgICAgIHN0YXJ0SW5kaWNlc1tpZHggLSAxXSArIGxpbmVzW2lkeCAtIDFdLmxlbmd0aCArIDFcXG4gICAgICAgICAgICA6IC8vIGZpcnN0IHNlbGVjdGVkIGxpbmVcXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQpLCBbXSlcXG4gICAgICAgICAgICAucmV2ZXJzZSgpO1xcbiAgICB9O1xcbiAgICBjb25zdCBzdG9wRXZlbnQgPSAoZXZlbnQpID0+IHtcXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XFxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcXG4gICAgfTtcXG4gICAgLy8gdXNpbmcgYSBzdGF0ZSB2YXJpYWJsZSBpbnN0ZWFkIG9mIHBhc3NpbmcgaXQgdG8gdGhlIGhhbmRsZVN1Ym1pdCBjYWxsYmFja1xcbiAgICAvLyBzbyB0aGF0IHdlIGRvbid0IG5lZWQgdG8gY3JlYXRlIHNlcGFyYXRlIGEgY2FsbGJhY2sgZm9yIGV2ZW50IGhhbmRsZXJzXFxuICAgIGxldCBzdWJtaXR0ZWRWaWFLZXlib2FyZCA9IGZhbHNlO1xcbiAgICBjb25zdCBoYW5kbGVTdWJtaXQgPSAoKSA9PiB7XFxuICAgICAgICB2YXIgX2EsIF9iO1xcbiAgICAgICAgLy8gY2xlYW51cCBtdXN0IGJlIHJ1biBiZWZvcmUgb25TdWJtaXQgb3RoZXJ3aXNlIHdoZW4gYXBwIGJsdXJzIHRoZSB3eXNpd3lnXFxuICAgICAgICAvLyBpdCdkIGdldCBzdHVjayBpbiBhbiBpbmZpbml0ZSBsb29wIG9mIGJsdXJcdTIxOTJvblN1Ym1pdCBhZnRlciB3ZSByZS1mb2N1cyB0aGVcXG4gICAgICAgIC8vIHd5c2l3eWcgb24gdXBkYXRlXFxuICAgICAgICBjbGVhbnVwKCk7XFxuICAgICAgICBjb25zdCB1cGRhdGVFbGVtZW50ID0gKF9hID0gX3NjZW5lX1NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bXFxcImRlZmF1bHRcXFwiXS5nZXRTY2VuZShlbGVtZW50KSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldEVsZW1lbnQoZWxlbWVudC5pZCk7XFxuICAgICAgICBpZiAoIXVwZGF0ZUVsZW1lbnQpIHtcXG4gICAgICAgICAgICByZXR1cm47XFxuICAgICAgICB9XFxuICAgICAgICBsZXQgdGV4dCA9IGVkaXRhYmxlLnZhbHVlO1xcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gKDAsX3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uZ2V0Q29udGFpbmVyRWxlbWVudCkodXBkYXRlRWxlbWVudCk7XFxuICAgICAgICBpZiAoY29udGFpbmVyKSB7XFxuICAgICAgICAgICAgdGV4dCA9IHVwZGF0ZUVsZW1lbnQudGV4dDtcXG4gICAgICAgICAgICBpZiAoZWRpdGFibGUudmFsdWUpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgYm91bmRUZXh0RWxlbWVudElkID0gKDAsX3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uZ2V0Qm91bmRUZXh0RWxlbWVudElkKShjb250YWluZXIpO1xcbiAgICAgICAgICAgICAgICBpZiAoIWJvdW5kVGV4dEVsZW1lbnRJZCB8fCBib3VuZFRleHRFbGVtZW50SWQgIT09IGVsZW1lbnQuaWQpIHtcXG4gICAgICAgICAgICAgICAgICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18ubXV0YXRlRWxlbWVudCkoY29udGFpbmVyLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRFbGVtZW50czogKGNvbnRhaW5lci5ib3VuZEVsZW1lbnRzIHx8IFtdKS5jb25jYXQoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcXFwidGV4dFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBlbGVtZW50LmlkLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgICgwLF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18ubXV0YXRlRWxlbWVudCkoY29udGFpbmVyLCB7XFxuICAgICAgICAgICAgICAgICAgICBib3VuZEVsZW1lbnRzOiAoX2IgPSBjb250YWluZXIuYm91bmRFbGVtZW50cykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmZpbHRlcigoZWxlKSA9PiAhKDAsX3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5pc1RleHRFbGVtZW50KShlbGUpKSxcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgb25TdWJtaXQoe1xcbiAgICAgICAgICAgIHRleHQsXFxuICAgICAgICAgICAgdmlhS2V5Ym9hcmQ6IHN1Ym1pdHRlZFZpYUtleWJvYXJkLFxcbiAgICAgICAgICAgIG9yaWdpbmFsVGV4dDogZWRpdGFibGUudmFsdWUsXFxuICAgICAgICB9KTtcXG4gICAgfTtcXG4gICAgY29uc3QgY2xlYW51cCA9ICgpID0+IHtcXG4gICAgICAgIGlmIChpc0Rlc3Ryb3llZCkge1xcbiAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgIH1cXG4gICAgICAgIGlzRGVzdHJveWVkID0gdHJ1ZTtcXG4gICAgICAgIC8vIHJlbW92ZSBldmVudHMgdG8gZW5zdXJlIHRoZXkgZG9uJ3QgbGF0ZS1maXJlXFxuICAgICAgICBlZGl0YWJsZS5vbmJsdXIgPSBudWxsO1xcbiAgICAgICAgZWRpdGFibGUub25pbnB1dCA9IG51bGw7XFxuICAgICAgICBlZGl0YWJsZS5vbmtleWRvd24gPSBudWxsO1xcbiAgICAgICAgaWYgKG9ic2VydmVyKSB7XFxuICAgICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xcbiAgICAgICAgfVxcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXFxcInJlc2l6ZVxcXCIsIHVwZGF0ZVd5c2l3eWdTdHlsZSk7XFxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcXFwid2hlZWxcXFwiLCBzdG9wRXZlbnQsIHRydWUpO1xcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXFxcInBvaW50ZXJkb3duXFxcIiwgb25Qb2ludGVyRG93bik7XFxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcXFwicG9pbnRlcnVwXFxcIiwgYmluZEJsdXJFdmVudCk7XFxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcXFwiYmx1clxcXCIsIGhhbmRsZVN1Ym1pdCk7XFxuICAgICAgICB1bmJpbmRVcGRhdGUoKTtcXG4gICAgICAgIGVkaXRhYmxlLnJlbW92ZSgpO1xcbiAgICB9O1xcbiAgICBjb25zdCBiaW5kQmx1ckV2ZW50ID0gKGV2ZW50KSA9PiB7XFxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcXFwicG9pbnRlcnVwXFxcIiwgYmluZEJsdXJFdmVudCk7XFxuICAgICAgICAvLyBEZWZlcnJlZCBzbyB0aGF0IHRoZSBwb2ludGVyZG93biB0aGF0IGluaXRpYXRlcyB0aGUgd3lzaXd5ZyBkb2Vzbid0XFxuICAgICAgICAvLyB0cmlnZ2VyIHRoZSBibHVyIG9uIGVuc3VpbmcgcG9pbnRlcnVwLlxcbiAgICAgICAgLy8gQWxzbyB0byBoYW5kbGUgY2FzZXMgc3VjaCBhcyBwaWNraW5nIGEgY29sb3Igd2hpY2ggd291bGQgdHJpZ2dlciBhIGJsdXJcXG4gICAgICAgIC8vIGluIHRoYXQgc2FtZSB0aWNrLlxcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQgPT09IG51bGwgfHwgZXZlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV2ZW50LnRhcmdldDtcXG4gICAgICAgIGNvbnN0IGlzVGFyZ2V0Q29sb3JQaWNrZXIgPSB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50ICYmXFxuICAgICAgICAgICAgdGFyZ2V0LmNsb3Nlc3QoXFxcIi5jb2xvci1waWNrZXItaW5wdXRcXFwiKSAmJlxcbiAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmlzV3JpdGFibGVFbGVtZW50KSh0YXJnZXQpO1xcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XFxuICAgICAgICAgICAgZWRpdGFibGUub25ibHVyID0gaGFuZGxlU3VibWl0O1xcbiAgICAgICAgICAgIGlmICh0YXJnZXQgJiYgaXNUYXJnZXRDb2xvclBpY2tlcikge1xcbiAgICAgICAgICAgICAgICB0YXJnZXQub25ibHVyID0gKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgZWRpdGFibGUuZm9jdXMoKTtcXG4gICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgLy8gY2FzZTogY2xpY2tpbmcgb24gdGhlIHNhbWUgcHJvcGVydHkgXHUyMTkyIG5vIGNoYW5nZSBcdTIxOTIgbm8gdXBkYXRlIFx1MjE5MiBubyBmb2N1c1xcbiAgICAgICAgICAgIGlmICghaXNUYXJnZXRDb2xvclBpY2tlcikge1xcbiAgICAgICAgICAgICAgICBlZGl0YWJsZS5mb2N1cygpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcbiAgICB9O1xcbiAgICAvLyBwcmV2ZW50IGJsdXIgd2hlbiBjaGFuZ2luZyBwcm9wZXJ0aWVzIGZyb20gdGhlIG1lbnVcXG4gICAgY29uc3Qgb25Qb2ludGVyRG93biA9IChldmVudCkgPT4ge1xcbiAgICAgICAgY29uc3QgaXNUYXJnZXRDb2xvclBpY2tlciA9IGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgJiZcXG4gICAgICAgICAgICBldmVudC50YXJnZXQuY2xvc2VzdChcXFwiLmNvbG9yLXBpY2tlci1pbnB1dFxcXCIpICYmXFxuICAgICAgICAgICAgKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaXNXcml0YWJsZUVsZW1lbnQpKGV2ZW50LnRhcmdldCk7XFxuICAgICAgICBpZiAoKChldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCB8fFxcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIFNWR0VsZW1lbnQpICYmXFxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LmNsb3Nlc3QoYC4ke19jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5DTEFTU0VTLlNIQVBFX0FDVElPTlNfTUVOVX1gKSAmJlxcbiAgICAgICAgICAgICEoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5pc1dyaXRhYmxlRWxlbWVudCkoZXZlbnQudGFyZ2V0KSkgfHxcXG4gICAgICAgICAgICBpc1RhcmdldENvbG9yUGlja2VyKSB7XFxuICAgICAgICAgICAgZWRpdGFibGUub25ibHVyID0gbnVsbDtcXG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcXFwicG9pbnRlcnVwXFxcIiwgYmluZEJsdXJFdmVudCk7XFxuICAgICAgICAgICAgLy8gaGFuZGxlIGVkZ2UtY2FzZSB3aGVyZSBwb2ludGVydXAgZG9lc24ndCBmaXJlIGUuZy4gZHVlIHRvIHVzZXJcXG4gICAgICAgICAgICAvLyBhbHQtdGFiYmluZyBhd2F5XFxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXFxcImJsdXJcXFwiLCBoYW5kbGVTdWJtaXQpO1xcbiAgICAgICAgfVxcbiAgICB9O1xcbiAgICAvLyBoYW5kbGUgdXBkYXRlcyBvZiB0ZXh0RWxlbWVudCBwcm9wZXJ0aWVzIG9mIGVkaXRpbmcgZWxlbWVudFxcbiAgICBjb25zdCB1bmJpbmRVcGRhdGUgPSBfc2NlbmVfU2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1tcXFwiZGVmYXVsdFxcXCJdLmdldFNjZW5lKGVsZW1lbnQpLmFkZENhbGxiYWNrKCgpID0+IHtcXG4gICAgICAgIHZhciBfYTtcXG4gICAgICAgIHVwZGF0ZVd5c2l3eWdTdHlsZSgpO1xcbiAgICAgICAgY29uc3QgaXNDb2xvclBpY2tlckFjdGl2ZSA9ICEhKChfYSA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jbG9zZXN0KFxcXCIuY29sb3ItcGlja2VyLWlucHV0XFxcIikpO1xcbiAgICAgICAgaWYgKCFpc0NvbG9yUGlja2VyQWN0aXZlKSB7XFxuICAgICAgICAgICAgZWRpdGFibGUuZm9jdXMoKTtcXG4gICAgICAgIH1cXG4gICAgfSk7XFxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgICBsZXQgaXNEZXN0cm95ZWQgPSBmYWxzZTtcXG4gICAgLy8gc2VsZWN0IG9uIGluaXQgKGZvY3VzaW5nIGlzIGRvbmUgc2VwYXJhdGVseSBpbnNpZGUgdGhlIGJpbmRCbHVyRXZlbnQoKVxcbiAgICAvLyBiZWNhdXNlIHdlIG5lZWQgaXQgdG8gaGFwcGVuICphZnRlciogdGhlIGJsdXIgZXZlbnQgZnJvbSBgcG9pbnRlcmRvd25gKVxcbiAgICBlZGl0YWJsZS5zZWxlY3QoKTtcXG4gICAgYmluZEJsdXJFdmVudCgpO1xcbiAgICAvLyByZXBvc2l0aW9uIHd5c2l3eWcgaW4gY2FzZSBvZiBjYW52YXMgaXMgcmVzaXplZC4gVXNpbmcgUmVzaXplT2JzZXJ2ZXJcXG4gICAgLy8gaXMgcHJlZmVycmVkIHNvIHdlIGNhdGNoIGNoYW5nZXMgZnJvbSBob3N0LCB3aGVyZSB3aW5kb3cgbWF5IG5vdCByZXNpemUuXFxuICAgIGxldCBvYnNlcnZlciA9IG51bGw7XFxuICAgIGlmIChjYW52YXMgJiYgXFxcIlJlc2l6ZU9ic2VydmVyXFxcIiBpbiB3aW5kb3cpIHtcXG4gICAgICAgIG9ic2VydmVyID0gbmV3IHdpbmRvdy5SZXNpemVPYnNlcnZlcigoKSA9PiB7XFxuICAgICAgICAgICAgdXBkYXRlV3lzaXd5Z1N0eWxlKCk7XFxuICAgICAgICB9KTtcXG4gICAgICAgIG9ic2VydmVyLm9ic2VydmUoY2FudmFzKTtcXG4gICAgfVxcbiAgICBlbHNlIHtcXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFxcXCJyZXNpemVcXFwiLCB1cGRhdGVXeXNpd3lnU3R5bGUpO1xcbiAgICB9XFxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFxcXCJwb2ludGVyZG93blxcXCIsIG9uUG9pbnRlckRvd24pO1xcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcXFwid2hlZWxcXFwiLCBzdG9wRXZlbnQsIHtcXG4gICAgICAgIHBhc3NpdmU6IGZhbHNlLFxcbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcXG4gICAgfSk7XFxuICAgIGV4Y2FsaWRyYXdDb250YWluZXIgPT09IG51bGwgfHwgZXhjYWxpZHJhd0NvbnRhaW5lciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhjYWxpZHJhd0NvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFxcXCIuZXhjYWxpZHJhdy10ZXh0RWRpdG9yQ29udGFpbmVyXFxcIikuYXBwZW5kQ2hpbGQoZWRpdGFibGUpO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZaV3hsYldWdWRDOTBaWGgwVjNsemFYZDVaeTUwYzNndWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3pzN096dEJRVUZ6UXp0QlFVMXdRanRCUVVOcFFqdEJRVU00UWp0QlFVTk9PMEZCVDFnN1FVRk5la0k3UVVGSll6dEJRVU5wUXp0QlFVZDBSU3hOUVVGTkxHRkJRV0VzUjBGQlJ5eERRVUZETEVsQlFWa3NSVUZCUlN4RlFVRkZPMGxCUTNKRExFOUJRVThzUTBGRFRDeEpRVUZKTzFGQlEwWXNaMFZCUVdkRk8xTkJReTlFTEU5QlFVOHNRMEZCUXl4TFFVRkxMRVZCUVVVc1ZVRkJWU3hEUVVGRE8xRkJRek5DTEhGQ1FVRnhRanRUUVVOd1FpeFBRVUZQTEVOQlFVTXNWMEZCVnl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNNVFpeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRPMEZCUlVZc1RVRkJUU3haUVVGWkxFZEJRVWNzUTBGRGJrSXNTMEZCWVN4RlFVTmlMRTFCUVdNc1JVRkRaQ3hMUVVGaExFVkJRMklzVVVGQmEwSXNSVUZEYkVJc1VVRkJaMElzUlVGRGFFSXNVMEZCYVVJc1JVRkRha0lzUlVGQlJUdEpRVU5HTEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1IwRkJSeXhSUVVGUkxFTkJRVU03U1VGRE1VSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhIUVVGSExFZEJRVWNzUzBGQlN5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJRenRKUVVOMlF5eEpRVUZKTEZWQlFWVXNSMEZCUnl4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGFFUXNTVUZCU1N4VlFVRlZMRWRCUVVjc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlEycEVMRWxCUVVrc1MwRkJTeXhIUVVGSExGRkJRVkVzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4TFFVRkxMRU5CUVVNc1JVRkJSVHRSUVVONFF5eFZRVUZWTEVkQlFVY3NRMEZCUXl4UlFVRlJMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wdEJRMmhFTzBsQlEwUXNTVUZCU1N4TlFVRk5MRWRCUVVjc1UwRkJVeXhKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEV0QlFVc3NRMEZCUXl4RlFVRkZPMUZCUXpGRExGVkJRVlVzUjBGQlJ5eERRVUZETEZOQlFWTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1MwRkRha1E3U1VGRFJDeFBRVUZQTEdGQlFXRXNWVUZCVlN4UFFVRlBMRlZCUVZVc1lVRkJZU3hKUVVGSkxFTkJRVU1zUzBGQlN5eFpRVUZaTEUxQlFVMHNUVUZCVFN4RFFVRkRPMEZCUTJwSExFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUVVNc1JVRkRNVUlzUlVGQlJTeEZRVU5HTEZGQlFWRXNSVUZEVWl4UlFVRlJMRVZCUTFJc2FVSkJRV2xDTEVWQlEycENMRTlCUVU4c1JVRkRVQ3hOUVVGTkxFVkJRMDRzYlVKQlFXMUNMRVZCUTI1Q0xFZEJRVWNzUjBGalNpeEZRVUZGTEVWQlFVVTdTVUZEU0N4TlFVRk5MSEZDUVVGeFFpeEhRVUZITEVOQlF6VkNMR05CUVhGRExFVkJRM0pETEZGQlFUWkNMRVZCUXpkQ0xFVkJRVVU3VVVGRFJpeE5RVUZOTEZkQlFWY3NSMEZCUnl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExGVkJRVlVzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRMmhGTEVsQlEwVXNNa1JCUVcxQ0xFTkJRVU1zUlVGQlJTeFZRVUZWTEVWQlFVVXNZMEZCWXl4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8xbEJRemxFTEZkQlFWY3NSVUZEV0R0WlFVTkJMRTlCUVU4c1NVRkJTU3hEUVVGRE8xTkJRMkk3VVVGRFJDeEpRVUZKTEVkQlFVY3NZMEZCWXl4RFFVRkRMRkZCUVZFc1NVRkJTU3hMUVVGTExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RlFVRkZPMWxCUXpsRUxFOUJRVThzU1VGQlNTeERRVUZETzFOQlEySTdVVUZEUkN4UFFVRlBMRXRCUVVzc1EwRkJRenRKUVVObUxFTkJRVU1zUTBGQlF6dEpRVU5HTEVsQlFVa3NkVUpCUVN0Q0xFTkJRVU03U1VGRmNFTXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eEhRVUZITEVWQlFVVTdPMUZCUXpsQ0xFMUJRVTBzVVVGQlVTeEhRVUZITEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNN1VVRkRNMElzVFVGQlRTeGpRVUZqTEVkQlFVY3NiVVZCUVdNc1EwRkJReXhQUVVGUExFTkJRVU1zTUVOQlFVVXNWVUZCVlN4RFFVTjRSQ3hGUVVGRkxFTkJRM05DTEVOQlFVTTdVVUZETTBJc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4cFJVRkJiVUlzUTBGQlF5eHhSRUZCWVN4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRE5VVXNTVUZCU1N4alFVRmpMRWxCUVVrc01FUkJRV0VzUTBGQlF5eGpRVUZqTEVOQlFVTXNSVUZCUlR0WlFVTnVSQ3hKUVVGSkxFMUJRVTBzUjBGQlJ5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUXpsQ0xFbEJRVWtzVFVGQlRTeEhRVUZITEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRPVUlzVFVGQlRTeFRRVUZUTEVkQlFVY3NhVVZCUVcxQ0xFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdXVUZEZEVRc1NVRkJTU3hSUVVGUkxFZEJRVWNzWTBGQll5eERRVUZETEV0QlFVc3NRMEZCUXp0WlFVVndReXhKUVVGSkxGTkJRVk1zUjBGQlJ5eGpRVUZqTEVOQlFVTXNUVUZCVFN4RFFVRkRPMWxCUTNSRExFbEJRVWtzUzBGQlN5eEhRVUZITEdOQlFXTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1dVRkRha01zSzBOQlFTdERPMWxCUXk5RExEaERRVUU0UXp0WlFVTTVReXhKUVVGSkxFMUJRVTBzUjBGQlJ5eGpRVUZqTEVOQlFVTXNUVUZCVFN4RFFVRkRPMWxCUTI1RExFbEJRVWtzVTBGQlV5eEpRVUZKTEdOQlFXTXNRMEZCUXl4WFFVRlhMRVZCUVVVN1owSkJRek5ETEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzY1VKQlFYRkNMRU5CUXpkRExHTkJRV01zUlVGRFpDeFJRVUZSTEVOQlExUXNRMEZCUXp0blFrRkRSaXh6UlVGQmMwVTdaMEpCUTNSRkxFMUJRVTBzV1VGQldTeEhRVUZITEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEYUVVc1NVRkJTU3haUVVGWkxFZEJRVWNzUTBGQlF5eEZRVUZGTzI5Q1FVTndRaXhOUVVGTkxFZEJRVWNzV1VGQldTeERRVUZETzJsQ1FVTjJRanRuUWtGRFJDeEpRVUZKTEdsQ1FVRnBRaXhGUVVGRk8yOUNRVU55UWl4MVFrRkJkVUlzUjBGQlJ5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRPMjlDUVVVelF5eDFSRUZCZFVRN2IwSkJRM1pFTEUxQlFVMHNSMEZCUnl4alFVRmpMRU5CUVVNc1RVRkJUU3hEUVVGRE8ybENRVU5vUXp0blFrRkRSQ3hKUVVGSkxFTkJRVU1zZFVKQlFYVkNMRVZCUVVVN2IwSkJRelZDTEhWQ1FVRjFRaXhIUVVGSExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTTdhVUpCUXpWRE8yZENRVU5FTEZGQlFWRXNSMEZCUnl4VFFVRlRMRU5CUVVNc1MwRkJTeXhIUVVGSExEQkVRVUZyUWl4SFFVRkhMRU5CUVVNc1EwRkJRenRuUWtGRGNFUXNVMEZCVXl4SFFVRkhMRk5CUVZNc1EwRkJReXhOUVVGTkxFZEJRVWNzTUVSQlFXdENMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU4wUkN4TFFVRkxMRWRCUVVjc1VVRkJVU3hEUVVGRE8yZENRVU5xUWl4blJFRkJaMFE3WjBKQlEyaEVMREpDUVVFeVFqdG5Ra0ZETTBJc1RVRkJUU3hIUVVGSExGTkJRVk1zUTBGQlF5eERRVUZETEVkQlFVY3NNRVJCUVd0Q0xFTkJRVU03WjBKQlF6RkRMRFJEUVVFMFF6dG5Ra0ZETlVNc1NVRkJTU3hOUVVGTkxFZEJRVWNzVTBGQlV5eEZRVUZGTzI5Q1FVTjBRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1IwRkJSeXhUUVVGVExFVkJRVVVzWjBKQlFXZENMRU5CUVVNc1EwRkJRenR2UWtGRE5VUXNOa1JCUVdFc1EwRkJReXhUUVVGVExFVkJRVVVzUlVGQlJTeE5RVUZOTEVWQlFVVXNVMEZCVXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETzI5Q1FVTTVSQ3hQUVVGUE8ybENRVU5TTzNGQ1FVRk5PMmRDUVVOTUxEaEVRVUU0UkR0blFrRkRPVVFzYTBOQlFXdERPMmRDUVVOc1F5eFRRVUZUTEVOQlFVTXNUVUZCVFN4SFFVRkhMSFZDUVVGMVFqdHZRa0ZETVVNc1RVRkJUU3hIUVVGSExGTkJRVk1zUlVGRGJFSTdiMEpCUTBFc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRWRCUVVjc1RVRkJUU3hGUVVGRkxHZENRVUZuUWl4RFFVRkRMRU5CUVVNN2IwSkJRelZFTERaRVFVRmhMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEZOQlFWTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF6dHBRa0ZETDBRN1owSkJRMFFzTWtSQlFUSkVPMmRDUVVNelJDeGhRVUZoTzNGQ1FVTlNPMjlDUVVOSUxHMURRVUZ0UXp0dlFrRkRia01zVFVGQlRTeEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVkQlFVY3NUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenRwUWtGRE1VUTdZVUZEUmp0WlFVTkVMRTFCUVUwc1EwRkJReXhUUVVGVExFVkJRVVVzVTBGQlV5eERRVUZETEVkQlFVY3NhVUpCUVdsQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUTJwRkxFMUJRVTBzUlVGQlJTeFRRVUZUTEVWQlFVVXNSMEZCUnl4alFVRmpMRU5CUVVNN1dVRkRja01zVVVGQlVTeERRVUZETEV0QlFVc3NSMEZCUnl4alFVRmpMRU5CUVVNc1dVRkJXU3hEUVVGRE8xbEJRemRETEUxQlFVMHNTMEZCU3l4SFFVRkhMR05CUVdNc1EwRkJReXhaUVVGWkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMWxCUTNSRUxFMUJRVTBzVlVGQlZTeEhRVUZITEdOQlFXTXNRMEZCUXl4WFFVRlhPMmRDUVVNelF5eERRVUZETEVOQlFVTXNaMEpCUVdkQ08yZENRVU5zUWl4RFFVRkRMRU5CUVVNc1kwRkJZeXhEUVVGRExFMUJRVTBzUjBGQlJ5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRPMWxCUTNwRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVTdaMEpCUTJRc1VVRkJVU3hIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNN1lVRkRia1U3V1VGRlJDd3dSRUZCTUVRN1dVRkRNVVFzVFVGQlRTeGxRVUZsTEVkQlEyNUNMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUjBGQlJ5eFRRVUZUTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF6dFpRVU4wUkN4TlFVRk5MRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eExRVUZMTEVOQlFVTTdXVUZEYWtVc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RlFVRkZPMmRDUVVNMVFpeEpRVUZKTEVWQlFVVXNjVVJCUVdFc1EwRkJReXhqUVVGakxFTkJRVU03WjBKQlEyNURMSGxEUVVGNVF6dG5Ra0ZEZWtNc1ZVRkJWU3hGUVVGRkxFZEJRVWNzVlVGQlZTeEpRVUZKTzJkQ1FVTTNRaXhMUVVGTExFVkJRVVVzUjBGQlJ5eExRVUZMTEVsQlFVazdaMEpCUTI1Q0xFMUJRVTBzUlVGQlJTeEhRVUZITEUxQlFVMHNTVUZCU1R0blFrRkRja0lzU1VGQlNTeEZRVUZGTEVkQlFVY3NVMEZCVXl4SlFVRkpPMmRDUVVOMFFpeEhRVUZITEVWQlFVVXNSMEZCUnl4VFFVRlRMRWxCUVVrN1owSkJRM0pDTEZOQlFWTXNSVUZCUlN4WlFVRlpMRU5CUTNKQ0xFdEJRVXNzUlVGRFRDeE5RVUZOTEVWQlEwNHNTMEZCU3l4RlFVTk1MRkZCUVZFc1JVRkRVaXhSUVVGUkxFVkJRMUlzWlVGQlpTeERRVU5vUWp0blFrRkRSQ3hUUVVGVE8yZENRVU5VTEV0QlFVc3NSVUZCUlN4alFVRmpMRU5CUVVNc1YwRkJWenRuUWtGRGFrTXNUMEZCVHl4RlFVRkZMR05CUVdNc1EwRkJReXhQUVVGUExFZEJRVWNzUjBGQlJ6dG5Ra0ZEY2tNc1RVRkJUU3hGUVVGRkxIRkNRVUZ4UWp0blFrRkROMElzVVVGQlVTeEZRVUZGTEVkQlFVY3NVVUZCVVN4SlFVRkpPMmRDUVVONlFpeFRRVUZUTEVWQlFVVXNSMEZCUnl4bFFVRmxMRWxCUVVrN1lVRkRiRU1zUTBGQlF5eERRVUZETzFsQlEwZ3NhMFZCUVd0Rk8xbEJRMnhGTERaRVFVRTJSRHRaUVVNM1JDeEpRVUZKTEdsRVFVRlRMRVZCUVVVc1JVRkJSVHRuUWtGRFppeFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRlZCUVZVc1IwRkJSeXd5UkVGQmJVSXNRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJRenRoUVVOcVJUdFpRVU5FTERaRVFVRmhMRU5CUVVNc1kwRkJZeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1RVRkJUU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFRRVU42UkR0SlFVTklMRU5CUVVNc1EwRkJRenRKUVVWR0xFMUJRVTBzVVVGQlVTeEhRVUZITEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03U1VGRmNFUXNVVUZCVVN4RFFVRkRMRWRCUVVjc1IwRkJSeXhOUVVGTkxFTkJRVU03U1VGRGRFSXNVVUZCVVN4RFFVRkRMRkZCUVZFc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGRFSXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETzBsQlEyeERMR3REUVVGclF6dEpRVU5zUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hIUVVGSExFdEJRVXNzUTBGQlF6dEpRVU4wUWl4UlFVRlJMRU5CUVVNc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhEUVVGRE8wbEJSVGRETEVsQlFVa3NWVUZCVlN4SFFVRkhMRXRCUVVzc1EwRkJRenRKUVVOMlFpeEpRVUZKTEZOQlFWTXNSMEZCUnl4UlFVRlJMRU5CUVVNN1NVRkZla0lzU1VGQlNTd3JSRUZCYTBJc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdFJRVU12UWl4VlFVRlZMRWRCUVVjc1ZVRkJWU3hEUVVGRE8xRkJRM2hDTEZOQlFWTXNSMEZCUnl4WlFVRlpMRU5CUVVNN1MwRkRNVUk3U1VGRFJDeE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFVkJRVVU3VVVGRE5VSXNVVUZCVVN4RlFVRkZMRlZCUVZVN1VVRkRjRUlzVDBGQlR5eEZRVUZGTEdOQlFXTTdVVUZEZGtJc1UwRkJVeXhGUVVGRkxFdEJRVXM3VVVGRGFFSXNhMEpCUVd0Q0xFVkJRVVVzVVVGQlVUdFJRVU0xUWl4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVOVUxFOUJRVThzUlVGQlJTeERRVUZETzFGQlExWXNUVUZCVFN4RlFVRkZMRU5CUVVNN1VVRkRWQ3hQUVVGUExFVkJRVVVzUTBGQlF6dFJRVU5XTEUxQlFVMHNSVUZCUlN4TlFVRk5PMUZCUTJRc1ZVRkJWU3hGUVVGRkxHRkJRV0U3VVVGRGVrSXNVVUZCVVN4RlFVRkZMRkZCUVZFN1VVRkRiRUlzTWtWQlFUSkZPMUZCUXpORkxFMUJRVTBzUlVGQlJTeDFRa0ZCZFVJN1VVRkRMMElzVTBGQlV6dFJRVU5VTEd0RlFVRnJSVHRSUVVOc1JTeFZRVUZWTzFGQlExWXNXVUZCV1N4RlFVRkZMRmxCUVZrN1MwRkRNMElzUTBGQlF5eERRVUZETzBsQlEwZ3NhMEpCUVd0Q0xFVkJRVVVzUTBGQlF6dEpRVVZ5UWl4SlFVRkpMRkZCUVZFc1JVRkJSVHRSUVVOYUxGRkJRVkVzUTBGQlF5eFBRVUZQTEVkQlFVY3NSMEZCUnl4RlFVRkZPenRaUVVOMFFpeE5RVUZOTEdOQlFXTXNSMEZCUnl4dFJVRkJZeXhEUVVGRExFOUJRVThzUTBGQlF5d3dRMEZCUlN4VlFVRlZMRU5CUTNoRUxFVkJRVVVzUTBGRGMwSXNRMEZCUXp0WlFVTXpRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eHhSRUZCWVN4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8xbEJRek5ETEhGRVFVRnhSRHRaUVVOeVJDeHpSRUZCYzBRN1dVRkRkRVFzTmtKQlFUWkNPMWxCUXpkQ0xFMUJRVTBzUzBGQlN5eEhRVUZITEZGQlFWRXNRMEZCUXl4WlFVRlpMRWRCUVVjc2FVVkJRVzFDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkRhRVVzYlVSQlFXMUVPMWxCUTI1RUxHZEVRVUZuUkR0WlFVTm9SQ3hwUkVGQmFVUTdXVUZEYWtRc2JVUkJRVzFFTzFsQlEyNUVMRWxCUVVrc0swUkJRV3RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1MwRkJTeXhIUVVGSExFTkJRVU1zUlVGQlJUdG5Ra0ZETlVNc1NVRkJTU3hOUVVGTkxFZEJRVWNzVFVGQlRTeERRVUZETzJkQ1FVVndRaXhKUVVGSkxFdEJRVXNzUzBGQlN5eERRVUZETEVWQlFVVTdiMEpCUTJZc1RVRkJUU3hUUVVGVExFZEJRVWNzYVVWQlFXMUNMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03YjBKQlF5OURMRTFCUVUwc1pVRkJaU3hIUVVGSExITkVRVUZSTEVOQlF6bENMRkZCUVZFc1EwRkJReXhMUVVGTExFVkJRMlFzU1VGQlNTeEZRVU5LTEZOQlFWVXNRMEZCUXl4TFFVRkxMRU5CUTJwQ0xFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenR2UWtGRmNrSXNNRVJCUVRCRU8yOUNRVU14UkN4MVJFRkJkVVE3YjBKQlEzWkVMRFpEUVVFMlF6dHZRa0ZETjBNc09FUkJRVGhFTzI5Q1FVTTVSQ3hwUkVGQmFVUTdiMEpCUTJwRUxFbEJRVWtzWlVGQlpTeExRVUZMTEVOQlFVTXNSVUZCUlR0M1FrRkRla0lzVFVGQlRTeEhRVUZITEVkQlFVY3NVVUZCVVN4RFFVRkRMRmxCUVZrc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF6dHhRa0ZETTBNN2FVSkJRMFk3WjBKQlEwUXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFZEJRVWNzVFVGQlRTeERRVUZETzJkQ1FVTXZRaXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNSMEZCUnl4SFFVRkhMRkZCUVZFc1EwRkJReXhaUVVGWkxFbEJRVWtzUTBGQlF6dGhRVU4wUkR0WlFVTkVMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRNVU1zUTBGQlF5eERRVUZETzB0QlEwZzdTVUZGUkN4UlFVRlJMRU5CUVVNc1UwRkJVeXhIUVVGSExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVTdVVUZETjBJc1MwRkJTeXhEUVVGRExHVkJRV1VzUlVGQlJTeERRVUZETzFGQlJYaENMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeEpRVUZKTEhWRlFVRnZRaXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTzFsQlEyeEVMRXRCUVVzc1EwRkJReXhqUVVGakxFVkJRVVVzUTBGQlF6dFpRVU4yUWl4SFFVRkhMRU5CUVVNc1lVRkJZU3hEUVVGRExHRkJRV0VzUTBGQlF5d3JSRUZCV1N4RFFVRkRMRU5CUVVNN1dVRkRPVU1zYTBKQlFXdENMRVZCUVVVc1EwRkJRenRUUVVOMFFqdGhRVUZOTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hKUVVGSkxIZEZRVUZ4UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRk8xbEJRekZFTEV0QlFVc3NRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenRaUVVOMlFpeEhRVUZITEVOQlFVTXNZVUZCWVN4RFFVRkRMR0ZCUVdFc1EwRkJReXhuUlVGQllTeERRVUZETEVOQlFVTTdXVUZETDBNc2EwSkJRV3RDTEVWQlFVVXNRMEZCUXp0VFFVTjBRanRoUVVGTkxFbEJRVWtzY1VaQlFUaENMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVU3V1VGRGFFUXNSMEZCUnl4RFFVRkRMR0ZCUVdFc1EwRkJReXhoUVVGaExFTkJRVU1zTmtWQlFYTkNMRU5CUVVNc1EwRkJRenRUUVVONlJEdGhRVUZOTEVsQlFVa3NjVVpCUVRoQ0xFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVTdXVUZEYUVRc1IwRkJSeXhEUVVGRExHRkJRV0VzUTBGQlF5eGhRVUZoTEVOQlFVTXNOa1ZCUVhOQ0xFTkJRVU1zUTBGQlF6dFRRVU42UkR0aFFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExFZEJRVWNzUzBGQlN5dzRRMEZCVnl4RlFVRkZPMWxCUTNCRExFdEJRVXNzUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0WlFVTjJRaXh2UWtGQmIwSXNSMEZCUnl4SlFVRkpMRU5CUVVNN1dVRkROVUlzV1VGQldTeEZRVUZGTEVOQlFVTTdVMEZEYUVJN1lVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eEhRVUZITEV0QlFVc3NOa05CUVZVc1NVRkJTU3hMUVVGTExFTkJRVU1zYlVSQlFXZENMRU5CUVVNc1JVRkJSVHRaUVVNNVJDeExRVUZMTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNN1dVRkRka0lzU1VGQlNTeExRVUZMTEVOQlFVTXNWMEZCVnl4SlFVRkpMRXRCUVVzc1EwRkJReXhQUVVGUExFdEJRVXNzUjBGQlJ5eEZRVUZGTzJkQ1FVTTVReXhQUVVGUE8yRkJRMUk3V1VGRFJDeHZRa0ZCYjBJc1IwRkJSeXhKUVVGSkxFTkJRVU03V1VGRE5VSXNXVUZCV1N4RlFVRkZMRU5CUVVNN1UwRkRhRUk3WVVGQlRTeEpRVU5NTEV0QlFVc3NRMEZCUXl4SFFVRkhMRXRCUVVzc01rTkJRVkU3V1VGRGRFSXNRMEZCUXl4TFFVRkxMRU5CUVVNc2JVUkJRV2RDTEVOQlFVTTdaMEpCUTNSQ0xFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NTMEZCU3l4eFJFRkJhMEk3YjBKQlEyaERMRXRCUVVzc1EwRkJReXhKUVVGSkxFdEJRVXNzYzBSQlFXMUNMRU5CUVVNc1EwRkJReXhGUVVONFF6dFpRVU5CTEV0QlFVc3NRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenRaUVVOMlFpeEpRVUZKTEV0QlFVc3NRMEZCUXl4UlFVRlJMRWxCUVVrc1MwRkJTeXhEUVVGRExFbEJRVWtzUzBGQlN5eHhSRUZCYTBJc1JVRkJSVHRuUWtGRGRrUXNUMEZCVHl4RlFVRkZMRU5CUVVNN1lVRkRXRHRwUWtGQlRUdG5Ra0ZEVEN4TlFVRk5MRVZCUVVVc1EwRkJRenRoUVVOV08xbEJRMFFzYjBSQlFXOUVPMWxCUTNCRUxGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dFRRVU0xUXp0SlFVTklMRU5CUVVNc1EwRkJRenRKUVVWR0xFMUJRVTBzVVVGQlVTeEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTnVRaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wbEJRMnBETEUxQlFVMHNZMEZCWXl4SFFVRkhMRWxCUVVrc1RVRkJUU3hEUVVGRExGRkJRVkVzVVVGQlVTeEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTjJSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEhRVUZITEVWQlFVVTdVVUZEYkVJc1RVRkJUU3hGUVVGRkxHTkJRV01zUlVGQlJTeFpRVUZaTEVWQlFVVXNSMEZCUnl4UlFVRlJMRU5CUVVNN1VVRkRiRVFzVFVGQlRTeHBRa0ZCYVVJc1IwRkJSeXcwUWtGQk5FSXNSVUZCUlN4RFFVRkRPMUZCUlhwRUxFbEJRVWtzUzBGQlN5eEhRVUZITEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNN1VVRkRNMElzYVVKQlFXbENMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVlVGQmEwSXNSVUZCUlN4RlFVRkZPMWxCUXk5RExFMUJRVTBzVlVGQlZTeEhRVUZITEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRkxGVkJRVlVzUTBGQlF5eERRVUZETzFsQlF6bERMRTFCUVUwc1VVRkJVU3hIUVVGSExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1dVRkZla01zUzBGQlN5eEhRVUZITEVkQlFVY3NWVUZCVlN4SFFVRkhMRWRCUVVjc1IwRkJSeXhSUVVGUkxFVkJRVVVzUTBGQlF6dFJRVU16UXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWSUxGRkJRVkVzUTBGQlF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRPMUZCUlhaQ0xGRkJRVkVzUTBGQlF5eGpRVUZqTEVkQlFVY3NZMEZCWXl4SFFVRkhMRkZCUVZFc1EwRkJRenRSUVVOd1JDeFJRVUZSTEVOQlFVTXNXVUZCV1N4SFFVRkhMRmxCUVZrc1IwRkJSeXhSUVVGUkxFZEJRVWNzYVVKQlFXbENMRU5CUVVNc1RVRkJUU3hEUVVGRE8wbEJRemRGTEVOQlFVTXNRMEZCUXp0SlFVVkdMRTFCUVUwc1QwRkJUeXhIUVVGSExFZEJRVWNzUlVGQlJUdFJRVU51UWl4TlFVRk5MRVZCUVVVc1kwRkJZeXhGUVVGRkxGbEJRVmtzUlVGQlJTeEhRVUZITEZGQlFWRXNRMEZCUXp0UlFVTnNSQ3hOUVVGTkxHbENRVUZwUWl4SFFVRkhMRFJDUVVFMFFpeEZRVUZGTEVOQlFVTTdVVUZEZWtRc1RVRkJUU3hYUVVGWExFZEJRV0VzUlVGQlJTeERRVUZETzFGQlJXcERMRWxCUVVrc1MwRkJTeXhIUVVGSExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTTdVVUZETTBJc2FVSkJRV2xDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFVkJRVVU3V1VGRGRrTXNUVUZCVFN4UlFVRlJMRWRCUVVjc1MwRkJTenRwUWtGRGJrSXNTMEZCU3l4RFFVRkRMRlZCUVZVc1JVRkJSU3hWUVVGVkxFZEJRVWNzVVVGQlVTeERRVUZETzJsQ1FVTjRReXhMUVVGTExFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdXVUZGZWtJc1NVRkJTU3hSUVVGUkxFVkJRVVU3WjBKQlExb3NUVUZCVFN4VlFVRlZMRWRCUVVjc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNN1owSkJRemxETEUxQlFVMHNVVUZCVVN4SFFVRkhMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zVlVGQlZTeEhRVUZITEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dG5Ra0ZGT1VRc05rSkJRVFpDTzJkQ1FVTTNRaXhMUVVGTExFZEJRVWNzUjBGQlJ5eFZRVUZWTEVkQlFVY3NVVUZCVVN4RlFVRkZMRU5CUVVNN1owSkJRMjVETEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03WVVGRE9VSTdVVUZEU0N4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWSUxGRkJRVkVzUTBGQlF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRPMUZCUlhaQ0xFbEJRVWtzVjBGQlZ5eERRVUZETEUxQlFVMHNSVUZCUlR0WlFVTjBRaXhKUVVGSkxHTkJRV01zUjBGQlJ5eFhRVUZYTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJUdG5Ra0ZEZUVRc1VVRkJVU3hEUVVGRExHTkJRV01zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVTm9ReXhqUVVGakxFZEJRVWNzVVVGQlVTeEZRVU42UWl4WFFVRlhMRU5CUVVNc1YwRkJWeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZEY0VNc1EwRkJRenRoUVVOSU8ybENRVUZOTzJkQ1FVTk1MSEZFUVVGeFJEdG5Ra0ZEY2tRc1YwRkJWenRuUWtGRFdDeGpRVUZqTzJkQ1FVTmtMRmRCUVZjN1owSkJRMWdzTWtSQlFUSkVPMmRDUVVNelJDeFJRVUZSTEVOQlFVTXNZMEZCWXl4SFFVRkhMR05CUVdNc1EwRkJRenRoUVVNeFF6dFpRVU5FTEZGQlFWRXNRMEZCUXl4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGRE9VSXNVVUZCVVN4RFFVRkRMR05CUVdNc1JVRkRka0lzV1VGQldTeEhRVUZITEZGQlFWRXNSMEZCUnl4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVNM1F5eERRVUZETzFOQlEwZzdTVUZEU0N4RFFVRkRMRU5CUVVNN1NVRkZSanM3VDBGRlJ6dEpRVU5JTEUxQlFVMHNORUpCUVRSQ0xFZEJRVWNzUjBGQlJ5eEZRVUZGTzFGQlEzaERMRWxCUVVrc1JVRkJSU3hqUVVGakxFVkJRVVVzV1VGQldTeEZRVUZGTEV0QlFVc3NSVUZCUlN4SFFVRkhMRkZCUVZFc1EwRkJRenRSUVVWMlJDd3JRMEZCSzBNN1VVRkRMME1zVFVGQlRTeFhRVUZYTEVkQlFVY3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzWTBGQll5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dGhRVU53UlN4TlFVRk5MRU5CUVVNN1VVRkRWaXh4UTBGQmNVTTdVVUZEY2tNc1kwRkJZeXhIUVVGSExHTkJRV01zUjBGQlJ5eFhRVUZYTEVOQlFVTTdVVUZGT1VNc1RVRkJUU3hSUVVGUkxFZEJRVWNzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4alFVRmpMRVZCUVVVc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRk0wUXNUMEZCVHl4UlFVRlJPMkZCUTFvc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF6dGhRVU5ZTEUxQlFVMHNRMEZEVEN4RFFVRkRMRmxCUVZrc1JVRkJSU3hKUVVGSkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUTJwRExGbEJRVmtzUTBGQlF5eE5RVUZOTEVOQlEycENMRWRCUVVjN1dVRkRSQ3hEUVVGRExFTkJRVU1zYVVWQlFXbEZPMmRDUVVOcVJTeFpRVUZaTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU03V1VGRGJrUXNRMEZCUXl4RFFVRkRMSE5DUVVGelFqdG5Ra0ZEZEVJc1kwRkJZeXhEUVVOdVFpeEZRVU5JTEVWQlFXTXNRMEZEWmp0aFFVTkJMRTlCUVU4c1JVRkJSU3hEUVVGRE8wbEJRMllzUTBGQlF5eERRVUZETzBsQlJVWXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJReXhMUVVGWkxFVkJRVVVzUlVGQlJUdFJRVU5xUXl4TFFVRkxMRU5CUVVNc1kwRkJZeXhGUVVGRkxFTkJRVU03VVVGRGRrSXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRE8wbEJRekZDTEVOQlFVTXNRMEZCUXp0SlFVVkdMRFJGUVVFMFJUdEpRVU0xUlN4NVJVRkJlVVU3U1VGRGVrVXNTVUZCU1N4dlFrRkJiMElzUjBGQlJ5eExRVUZMTEVOQlFVTTdTVUZEYWtNc1RVRkJUU3haUVVGWkxFZEJRVWNzUjBGQlJ5eEZRVUZGT3p0UlFVTjRRaXd5UlVGQk1rVTdVVUZETTBVc05FVkJRVFJGTzFGQlF6VkZMRzlDUVVGdlFqdFJRVU53UWl4UFFVRlBMRVZCUVVVc1EwRkJRenRSUVVOV0xFMUJRVTBzWVVGQllTeEhRVUZITEcxRlFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExEQkRRVUZGTEZWQlFWVXNRMEZEZGtRc1QwRkJUeXhEUVVGRExFVkJRVVVzUTBGRFl5eERRVUZETzFGQlF6TkNMRWxCUVVrc1EwRkJReXhoUVVGaExFVkJRVVU3V1VGRGJFSXNUMEZCVHp0VFFVTlNPMUZCUTBRc1NVRkJTU3hKUVVGSkxFZEJRVWNzVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXp0UlFVTXhRaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eHBSVUZCYlVJc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dFJRVVZ5UkN4SlFVRkpMRk5CUVZNc1JVRkJSVHRaUVVOaUxFbEJRVWtzUjBGQlJ5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRPMWxCUXpGQ0xFbEJRVWtzVVVGQlVTeERRVUZETEV0QlFVc3NSVUZCUlR0blFrRkRiRUlzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXh0UlVGQmNVSXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRuUWtGRE5VUXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeEpRVUZKTEd0Q1FVRnJRaXhMUVVGTExFOUJRVThzUTBGQlF5eEZRVUZGTEVWQlFVVTdiMEpCUXpWRUxEWkVRVUZoTEVOQlFVTXNVMEZCVXl4RlFVRkZPM2RDUVVOMlFpeGhRVUZoTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1lVRkJZU3hKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXpzMFFrRkRjRVFzU1VGQlNTeEZRVUZGTEUxQlFVMDdORUpCUTFvc1JVRkJSU3hGUVVGRkxFOUJRVThzUTBGQlF5eEZRVUZGTzNsQ1FVTm1MRU5CUVVNN2NVSkJRMGdzUTBGQlF5eERRVUZETzJsQ1FVTktPMkZCUTBZN2FVSkJRVTA3WjBKQlEwd3NOa1JCUVdFc1EwRkJReXhUUVVGVExFVkJRVVU3YjBKQlEzWkNMR0ZCUVdFc1JVRkJSU3hsUVVGVExFTkJRVU1zWVVGQllTd3dRMEZCUlN4TlFVRk5MRU5CUXpWRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZEVGl4RFFVRkRMREJFUVVGaExFTkJRMW9zUjBGQmMwUXNRMEZEZGtRc1EwRkRTanRwUWtGRFJpeERRVUZETEVOQlFVTTdZVUZEU2p0VFFVTkdPMUZCUlVRc1VVRkJVU3hEUVVGRE8xbEJRMUFzU1VGQlNUdFpRVU5LTEZkQlFWY3NSVUZCUlN4dlFrRkJiMEk3V1VGRGFrTXNXVUZCV1N4RlFVRkZMRkZCUVZFc1EwRkJReXhMUVVGTE8xTkJRemRDTEVOQlFVTXNRMEZCUXp0SlFVTk1MRU5CUVVNc1EwRkJRenRKUVVWR0xFMUJRVTBzVDBGQlR5eEhRVUZITEVkQlFVY3NSVUZCUlR0UlFVTnVRaXhKUVVGSkxGZEJRVmNzUlVGQlJUdFpRVU5tTEU5QlFVODdVMEZEVWp0UlFVTkVMRmRCUVZjc1IwRkJSeXhKUVVGSkxFTkJRVU03VVVGRGJrSXNLME5CUVN0RE8xRkJReTlETEZGQlFWRXNRMEZCUXl4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRM1pDTEZGQlFWRXNRMEZCUXl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRM2hDTEZGQlFWRXNRMEZCUXl4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJSVEZDTEVsQlFVa3NVVUZCVVN4RlFVRkZPMWxCUTFvc1VVRkJVU3hEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFOQlEzWkNPMUZCUlVRc1RVRkJUU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMUZCUTNwRUxFMUJRVTBzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhQUVVGUExFVkJRVVVzVTBGQlV5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTNKRUxFMUJRVTBzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhoUVVGaExFVkJRVVVzWVVGQllTeERRVUZETEVOQlFVTTdVVUZEZWtRc1RVRkJUU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRmRCUVZjc1JVRkJSU3hoUVVGaExFTkJRVU1zUTBGQlF6dFJRVU4yUkN4TlFVRk5MRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNUVUZCVFN4RlFVRkZMRmxCUVZrc1EwRkJReXhEUVVGRE8xRkJSV3BFTEZsQlFWa3NSVUZCUlN4RFFVRkRPMUZCUldZc1VVRkJVU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzBsQlEzQkNMRU5CUVVNc1EwRkJRenRKUVVWR0xFMUJRVTBzWVVGQllTeEhRVUZITEVOQlFVTXNTMEZCYTBJc1JVRkJSU3hGUVVGRk8xRkJRek5ETEUxQlFVMHNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eFhRVUZYTEVWQlFVVXNZVUZCWVN4RFFVRkRMRU5CUVVNN1VVRkRka1FzYzBWQlFYTkZPMUZCUTNSRkxIbERRVUY1UXp0UlFVTjZReXd3UlVGQk1FVTdVVUZETVVVc2NVSkJRWEZDTzFGQlEzSkNMRTFCUVUwc1RVRkJUU3hIUVVGSExFdEJRVXNzWVVGQlRDeExRVUZMTEhWQ1FVRk1MRXRCUVVzc1EwRkJSU3hOUVVGTkxFTkJRVU03VVVGRk4wSXNUVUZCVFN4dFFrRkJiVUlzUjBGRGRrSXNUVUZCVFN4WlFVRlpMR2RDUVVGblFqdFpRVU5zUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRPMWxCUTNKRExIbEVRVUZwUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJSVFZDTEZWQlFWVXNRMEZCUXl4SFFVRkhMRVZCUVVVN1dVRkRaQ3hSUVVGUkxFTkJRVU1zVFVGQlRTeEhRVUZITEZsQlFWa3NRMEZCUXp0WlFVTXZRaXhKUVVGSkxFMUJRVTBzU1VGQlNTeHRRa0ZCYlVJc1JVRkJSVHRuUWtGRGFrTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1IwRkJSeXhIUVVGSExFVkJRVVU3YjBKQlEyNUNMRkZCUVZFc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dG5Ra0ZEYmtJc1EwRkJReXhEUVVGRE8yRkJRMGc3V1VGRFJDeDVSVUZCZVVVN1dVRkRla1VzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhGUVVGRk8yZENRVU40UWl4UlFVRlJMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03WVVGRGJFSTdVVUZEU0N4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOTUxFTkJRVU1zUTBGQlF6dEpRVVZHTEhORVFVRnpSRHRKUVVOMFJDeE5RVUZOTEdGQlFXRXNSMEZCUnl4RFFVRkRMRXRCUVdsQ0xFVkJRVVVzUlVGQlJUdFJRVU14UXl4TlFVRk5MRzFDUVVGdFFpeEhRVU4yUWl4TFFVRkxMRU5CUVVNc1RVRkJUU3haUVVGWkxHZENRVUZuUWp0WlFVTjRReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4eFFrRkJjVUlzUTBGQlF6dFpRVU16UXl4NVJFRkJhVUlzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRiRU1zU1VGRFJTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1dVRkJXU3hYUVVGWE8xbEJRMjVETEV0QlFVc3NRMEZCUXl4TlFVRk5MRmxCUVZrc1ZVRkJWU3hEUVVGRE8xbEJRMjVETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzYTBWQlFUQkNMRVZCUVVVc1EwRkJRenRaUVVOMFJDeERRVUZETEhsRVFVRnBRaXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0WlFVTnVReXh0UWtGQmJVSXNSVUZEYmtJN1dVRkRRU3hSUVVGUkxFTkJRVU1zVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXp0WlFVTjJRaXhOUVVGTkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1YwRkJWeXhGUVVGRkxHRkJRV0VzUTBGQlF5eERRVUZETzFsQlEzQkVMR2xGUVVGcFJUdFpRVU5xUlN4dFFrRkJiVUk3V1VGRGJrSXNUVUZCVFN4RFFVRkRMR2RDUVVGblFpeERRVUZETEUxQlFVMHNSVUZCUlN4WlFVRlpMRU5CUVVNc1EwRkJRenRUUVVNdlF6dEpRVU5JTEVOQlFVTXNRMEZCUXp0SlFVVkdMRGhFUVVFNFJEdEpRVU01UkN4TlFVRk5MRmxCUVZrc1IwRkJSeXcyUkVGQll5eERRVUZETEU5QlFVOHNRMEZCUlN4RFFVRkRMRmRCUVZjc1EwRkJReXhIUVVGSExFVkJRVVU3TzFGQlF6ZEVMR3RDUVVGclFpeEZRVUZGTEVOQlFVTTdVVUZEY2tJc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl4RFFVRkRMRU5CUVVNc1pVRkJVU3hEUVVGRExHRkJRV0VzTUVOQlFVVXNUMEZCVHl4RFFVTXpSQ3h4UWtGQmNVSXNRMEZEZEVJc1JVRkJRenRSUVVOR0xFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1JVRkJSVHRaUVVONFFpeFJRVUZSTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1UwRkRiRUk3U1VGRFNDeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVklMRGhGUVVFNFJUdEpRVVU1UlN4SlFVRkpMRmRCUVZjc1IwRkJSeXhMUVVGTExFTkJRVU03U1VGRmVFSXNlVVZCUVhsRk8wbEJRM3BGTERCRlFVRXdSVHRKUVVNeFJTeFJRVUZSTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1NVRkRiRUlzWVVGQllTeEZRVUZGTEVOQlFVTTdTVUZGYUVJc2QwVkJRWGRGTzBsQlEzaEZMREpGUVVFeVJUdEpRVU16UlN4SlFVRkpMRkZCUVZFc1IwRkJNRUlzU1VGQlNTeERRVUZETzBsQlF6TkRMRWxCUVVrc1RVRkJUU3hKUVVGSkxHZENRVUZuUWl4SlFVRkpMRTFCUVUwc1JVRkJSVHRSUVVONFF5eFJRVUZSTEVkQlFVY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1kwRkJZeXhEUVVGRExFZEJRVWNzUlVGQlJUdFpRVU40UXl4clFrRkJhMElzUlVGQlJTeERRVUZETzFGQlEzWkNMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRMUVVNeFFqdFRRVUZOTzFGQlEwd3NUVUZCVFN4RFFVRkRMR2RDUVVGblFpeERRVUZETEZGQlFWRXNSVUZCUlN4clFrRkJhMElzUTBGQlF5eERRVUZETzB0QlEzWkVPMGxCUlVRc1RVRkJUU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMR0ZCUVdFc1JVRkJSU3hoUVVGaExFTkJRVU1zUTBGQlF6dEpRVU4wUkN4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNUMEZCVHl4RlFVRkZMRk5CUVZNc1JVRkJSVHRSUVVNeFF5eFBRVUZQTEVWQlFVVXNTMEZCU3p0UlFVTmtMRTlCUVU4c1JVRkJSU3hKUVVGSk8wdEJRMlFzUTBGQlF5eERRVUZETzBsQlEwZ3NiVUpCUVcxQ0xHRkJRVzVDTEcxQ1FVRnRRaXgxUWtGQmJrSXNiVUpCUVcxQ0xFTkJRMllzWVVGQllTeERRVUZETEdsRFFVRnBReXhGUVVOb1JDeFhRVUZYTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1FVRkRNMElzUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyVnNaVzFsYm5RdmRHVjRkRmQ1YzJsM2VXY3VkSE40UHpobU5HUWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnUTA5RVJWTXNJRXRGV1ZNZ2ZTQm1jbTl0SUZ3aUxpNHZhMlY1YzF3aU8xeHVhVzF3YjNKMElIdGNiaUFnYVhOWGNtbDBZV0pzWlVWc1pXMWxiblFzWEc0Z0lHZGxkRVp2Ym5SVGRISnBibWNzWEc0Z0lHZGxkRVp2Ym5SR1lXMXBiSGxUZEhKcGJtY3NYRzRnSUdselZHVnpkRVZ1ZGl4Y2JuMGdabkp2YlNCY0lpNHVMM1YwYVd4elhDSTdYRzVwYlhCdmNuUWdVMk5sYm1VZ1puSnZiU0JjSWk0dUwzTmpaVzVsTDFOalpXNWxYQ0k3WEc1cGJYQnZjblFnZXlCcGMwSnZkVzVrVkc5RGIyNTBZV2x1WlhJc0lHbHpWR1Y0ZEVWc1pXMWxiblFnZlNCbWNtOXRJRndpTGk5MGVYQmxRMmhsWTJ0elhDSTdYRzVwYlhCdmNuUWdleUJEVEVGVFUwVlRMQ0JDVDFWT1JGOVVSVmhVWDFCQlJFUkpUa2NnZlNCbWNtOXRJRndpTGk0dlkyOXVjM1JoYm5SelhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEN4Y2JpQWdSWGhqWVd4cFpISmhkMVJsZUhSRmJHVnRaVzUwTEZ4dUlDQkZlR05oYkdsa2NtRjNUR2x1WldGeVJXeGxiV1Z1ZEN4Y2JuMGdabkp2YlNCY0lpNHZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdJRUZ3Y0ZOMFlYUmxJSDBnWm5KdmJTQmNJaTR1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCdGRYUmhkR1ZGYkdWdFpXNTBJSDBnWm5KdmJTQmNJaTR2YlhWMFlYUmxSV3hsYldWdWRGd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1oyVjBRWEJ3Y205NFRHbHVaVWhsYVdkb2RDeGNiaUFnWjJWMFFtOTFibVJVWlhoMFJXeGxiV1Z1ZEVsa0xGeHVJQ0JuWlhSRGIyNTBZV2x1WlhKRmJHVnRaVzUwTEZ4dUlDQjNjbUZ3VkdWNGRDeGNibjBnWm5KdmJTQmNJaTR2ZEdWNGRFVnNaVzFsYm5SY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUdGamRHbHZia1JsWTNKbFlYTmxSbTl1ZEZOcGVtVXNYRzRnSUdGamRHbHZia2x1WTNKbFlYTmxSbTl1ZEZOcGVtVXNYRzU5SUdaeWIyMGdYQ0l1TGk5aFkzUnBiMjV6TDJGamRHbHZibEJ5YjNCbGNuUnBaWE5jSWp0Y2JtbHRjRzl5ZENCN0lHRmpkR2x2YmxwdmIyMUpiaXdnWVdOMGFXOXVXbTl2YlU5MWRDQjlJR1p5YjIwZ1hDSXVMaTloWTNScGIyNXpMMkZqZEdsdmJrTmhiblpoYzF3aU8xeHVhVzF3YjNKMElFRndjQ0JtY205dElGd2lMaTR2WTI5dGNHOXVaVzUwY3k5QmNIQmNJanRjYmx4dVkyOXVjM1FnYm05eWJXRnNhWHBsVkdWNGRDQTlJQ2gwWlhoME9pQnpkSEpwYm1jcElEMCtJSHRjYmlBZ2NtVjBkWEp1SUNoY2JpQWdJQ0IwWlhoMFhHNGdJQ0FnSUNBdkx5QnlaWEJzWVdObElIUmhZbk1nZDJsMGFDQnpjR0ZqWlhNZ2MyOGdkR2hsZVNCeVpXNWtaWElnWVc1a0lHMWxZWE4xY21VZ1kyOXljbVZqZEd4NVhHNGdJQ0FnSUNBdWNtVndiR0ZqWlNndlhGeDBMMmNzSUZ3aUlDQWdJQ0FnSUNCY0lpbGNiaUFnSUNBZ0lDOHZJRzV2Y20xaGJHbDZaU0J1Wlhkc2FXNWxjMXh1SUNBZ0lDQWdMbkpsY0d4aFkyVW9MMXhjY2o5Y1hHNThYRnh5TDJjc0lGd2lYRnh1WENJcFhHNGdJQ2s3WEc1OU8xeHVYRzVqYjI1emRDQm5aWFJVY21GdWMyWnZjbTBnUFNBb1hHNGdJSGRwWkhSb09pQnVkVzFpWlhJc1hHNGdJR2hsYVdkb2REb2diblZ0WW1WeUxGeHVJQ0JoYm1kc1pUb2diblZ0WW1WeUxGeHVJQ0JoY0hCVGRHRjBaVG9nUVhCd1UzUmhkR1VzWEc0Z0lHMWhlRmRwWkhSb09pQnVkVzFpWlhJc1hHNGdJRzFoZUVobGFXZG9kRG9nYm5WdFltVnlMRnh1S1NBOVBpQjdYRzRnSUdOdmJuTjBJSHNnZW05dmJTQjlJRDBnWVhCd1UzUmhkR1U3WEc0Z0lHTnZibk4wSUdSbFozSmxaU0E5SUNneE9EQWdLaUJoYm1kc1pTa2dMeUJOWVhSb0xsQkpPMXh1SUNCc1pYUWdkSEpoYm5Oc1lYUmxXQ0E5SUNoM2FXUjBhQ0FxSUNoNmIyOXRMblpoYkhWbElDMGdNU2twSUM4Z01qdGNiaUFnYkdWMElIUnlZVzV6YkdGMFpWa2dQU0FvYUdWcFoyaDBJQ29nS0hwdmIyMHVkbUZzZFdVZ0xTQXhLU2tnTHlBeU8xeHVJQ0JwWmlBb2QybGtkR2dnUGlCdFlYaFhhV1IwYUNBbUppQjZiMjl0TG5aaGJIVmxJQ0U5UFNBeEtTQjdYRzRnSUNBZ2RISmhibk5zWVhSbFdDQTlJQ2h0WVhoWGFXUjBhQ0FxSUNoNmIyOXRMblpoYkhWbElDMGdNU2twSUM4Z01qdGNiaUFnZlZ4dUlDQnBaaUFvYUdWcFoyaDBJRDRnYldGNFNHVnBaMmgwSUNZbUlIcHZiMjB1ZG1Gc2RXVWdJVDA5SURFcElIdGNiaUFnSUNCMGNtRnVjMnhoZEdWWklEMGdLRzFoZUVobGFXZG9kQ0FxSUNoNmIyOXRMblpoYkhWbElDMGdNU2twSUM4Z01qdGNiaUFnZlZ4dUlDQnlaWFIxY200Z1lIUnlZVzV6YkdGMFpTZ2tlM1J5WVc1emJHRjBaVmg5Y0hnc0lDUjdkSEpoYm5Oc1lYUmxXWDF3ZUNrZ2MyTmhiR1VvSkh0NmIyOXRMblpoYkhWbGZTa2djbTkwWVhSbEtDUjdaR1ZuY21WbGZXUmxaeWxnTzF4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElIUmxlSFJYZVhOcGQzbG5JRDBnS0h0Y2JpQWdhV1FzWEc0Z0lHOXVRMmhoYm1kbExGeHVJQ0J2YmxOMVltMXBkQ3hjYmlBZ1oyVjBWbWxsZDNCdmNuUkRiMjl5WkhNc1hHNGdJR1ZzWlcxbGJuUXNYRzRnSUdOaGJuWmhjeXhjYmlBZ1pYaGpZV3hwWkhKaGQwTnZiblJoYVc1bGNpeGNiaUFnWVhCd0xGeHVmVG9nZTF4dUlDQnBaRG9nUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWENKcFpGd2lYVHRjYmlBZ2IyNURhR0Z1WjJVL09pQW9kR1Y0ZERvZ2MzUnlhVzVuS1NBOVBpQjJiMmxrTzF4dUlDQnZibE4xWW0xcGREb2dLR1JoZEdFNklIdGNiaUFnSUNCMFpYaDBPaUJ6ZEhKcGJtYzdYRzRnSUNBZ2RtbGhTMlY1WW05aGNtUTZJR0p2YjJ4bFlXNDdYRzRnSUNBZ2IzSnBaMmx1WVd4VVpYaDBPaUJ6ZEhKcGJtYzdYRzRnSUgwcElEMCtJSFp2YVdRN1hHNGdJR2RsZEZacFpYZHdiM0owUTI5dmNtUnpPaUFvZURvZ2JuVnRZbVZ5TENCNU9pQnVkVzFpWlhJcElEMCtJRnR1ZFcxaVpYSXNJRzUxYldKbGNsMDdYRzRnSUdWc1pXMWxiblE2SUVWNFkyRnNhV1J5WVhkVVpYaDBSV3hsYldWdWREdGNiaUFnWTJGdWRtRnpPaUJJVkUxTVEyRnVkbUZ6Uld4bGJXVnVkQ0I4SUc1MWJHdzdYRzRnSUdWNFkyRnNhV1J5WVhkRGIyNTBZV2x1WlhJNklFaFVUVXhFYVhaRmJHVnRaVzUwSUh3Z2JuVnNiRHRjYmlBZ1lYQndPaUJCY0hBN1hHNTlLU0E5UGlCN1hHNGdJR052Ym5OMElIUmxlSFJRY205d1pYSjBhV1Z6VlhCa1lYUmxaQ0E5SUNoY2JpQWdJQ0IxY0dSaGRHVmtSV3hsYldWdWREb2dSWGhqWVd4cFpISmhkMVJsZUhSRmJHVnRaVzUwTEZ4dUlDQWdJR1ZrYVhSaFlteGxPaUJJVkUxTVZHVjRkRUZ5WldGRmJHVnRaVzUwTEZ4dUlDQXBJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQmpkWEp5Wlc1MFJtOXVkQ0E5SUdWa2FYUmhZbXhsTG5OMGVXeGxMbVp2Ym5SR1lXMXBiSGt1Y21Wd2JHRmpaU2d2WENJdlp5d2dYQ0pjSWlrN1hHNGdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ1oyVjBSbTl1ZEVaaGJXbHNlVk4wY21sdVp5aDdJR1p2Ym5SR1lXMXBiSGs2SUhWd1pHRjBaV1JGYkdWdFpXNTBMbVp2Ym5SR1lXMXBiSGtnZlNrZ0lUMDlYRzRnSUNBZ0lDQmpkWEp5Wlc1MFJtOXVkRnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hnSkh0MWNHUmhkR1ZrUld4bGJXVnVkQzVtYjI1MFUybDZaWDF3ZUdBZ0lUMDlJR1ZrYVhSaFlteGxMbk4wZVd4bExtWnZiblJUYVhwbEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNCOU8xeHVJQ0JzWlhRZ2IzSnBaMmx1WVd4RGIyNTBZV2x1WlhKSVpXbG5hSFE2SUc1MWJXSmxjanRjYmx4dUlDQmpiMjV6ZENCMWNHUmhkR1ZYZVhOcGQzbG5VM1I1YkdVZ1BTQW9LU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdZWEJ3VTNSaGRHVWdQU0JoY0hBdWMzUmhkR1U3WEc0Z0lDQWdZMjl1YzNRZ2RYQmtZWFJsWkVWc1pXMWxiblFnUFNCVFkyVnVaUzVuWlhSVFkyVnVaU2hsYkdWdFpXNTBLVDh1WjJWMFJXeGxiV1Z1ZENoY2JpQWdJQ0FnSUdsa0xGeHVJQ0FnSUNrZ1lYTWdSWGhqWVd4cFpISmhkMVJsZUhSRmJHVnRaVzUwTzF4dUlDQWdJR052Ym5OMElHRndjSEp2ZUV4cGJtVklaV2xuYUhRZ1BTQm5aWFJCY0hCeWIzaE1hVzVsU0dWcFoyaDBLR2RsZEVadmJuUlRkSEpwYm1jb2RYQmtZWFJsWkVWc1pXMWxiblFwS1R0Y2JpQWdJQ0JwWmlBb2RYQmtZWFJsWkVWc1pXMWxiblFnSmlZZ2FYTlVaWGgwUld4bGJXVnVkQ2gxY0dSaGRHVmtSV3hsYldWdWRDa3BJSHRjYmlBZ0lDQWdJR3hsZENCamIyOXlaRmdnUFNCMWNHUmhkR1ZrUld4bGJXVnVkQzU0TzF4dUlDQWdJQ0FnYkdWMElHTnZiM0prV1NBOUlIVndaR0YwWldSRmJHVnRaVzUwTG5rN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYjI1MFlXbHVaWElnUFNCblpYUkRiMjUwWVdsdVpYSkZiR1Z0Wlc1MEtIVndaR0YwWldSRmJHVnRaVzUwS1R0Y2JpQWdJQ0FnSUd4bGRDQnRZWGhYYVdSMGFDQTlJSFZ3WkdGMFpXUkZiR1Z0Wlc1MExuZHBaSFJvTzF4dVhHNGdJQ0FnSUNCc1pYUWdiV0Y0U0dWcFoyaDBJRDBnZFhCa1lYUmxaRVZzWlcxbGJuUXVhR1ZwWjJoME8xeHVJQ0FnSUNBZ2JHVjBJSGRwWkhSb0lEMGdkWEJrWVhSbFpFVnNaVzFsYm5RdWQybGtkR2c3WEc0Z0lDQWdJQ0F2THlCVFpYUWdkRzhnWld4bGJXVnVkQ0JvWldsbmFIUWdZbmtnWkdWbVlYVnNkQ0J6YVc1alpTQjBhR0YwYzF4dUlDQWdJQ0FnTHk4Z2QyaGhkQ0JwY3lCbmIybHVaeUIwYnlCaVpTQjFjMlZrSUdadmNpQjFibUp2ZFc1a1pXUWdkR1Y0ZEZ4dUlDQWdJQ0FnYkdWMElHaGxhV2RvZENBOUlIVndaR0YwWldSRmJHVnRaVzUwTG1obGFXZG9kRHRjYmlBZ0lDQWdJR2xtSUNoamIyNTBZV2x1WlhJZ0ppWWdkWEJrWVhSbFpFVnNaVzFsYm5RdVkyOXVkR0ZwYm1WeVNXUXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjSEp2Y0dWeWRHbGxjMVZ3WkdGMFpXUWdQU0IwWlhoMFVISnZjR1Z5ZEdsbGMxVndaR0YwWldRb1hHNGdJQ0FnSUNBZ0lDQWdkWEJrWVhSbFpFVnNaVzFsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdaV1JwZEdGaWJHVXNYRzRnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUM4dklIVnphVzVuSUdWa2FYUnZjaTV6ZEhsc1pTNW9aV2xuYUhRZ2RHOGdaMlYwSUhSb1pTQmhZMk4xY21GMFpTQm9aV2xuYUhRZ2IyWWdkR1Y0ZENCbFpHbDBiM0pjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaV1JwZEc5eVNHVnBaMmgwSUQwZ1RuVnRZbVZ5S0dWa2FYUmhZbXhsTG5OMGVXeGxMbWhsYVdkb2RDNXpiR2xqWlNnd0xDQXRNaWtwTzF4dUlDQWdJQ0FnSUNCcFppQW9aV1JwZEc5eVNHVnBaMmgwSUQ0Z01Da2dlMXh1SUNBZ0lDQWdJQ0FnSUdobGFXZG9kQ0E5SUdWa2FYUnZja2hsYVdkb2REdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JwWmlBb2NISnZjR1Z5ZEdsbGMxVndaR0YwWldRcElIdGNiaUFnSUNBZ0lDQWdJQ0J2Y21sbmFXNWhiRU52Ym5SaGFXNWxja2hsYVdkb2RDQTlJR052Ym5SaGFXNWxjaTVvWldsbmFIUTdYRzVjYmlBZ0lDQWdJQ0FnSUNBdkx5QjFjR1JoZEdVZ2FHVnBaMmgwSUc5bUlIUm9aU0JsWkdsMGIzSWdZV1owWlhJZ2NISnZjR1Z5ZEdsbGN5QjFjR1JoZEdWa1hHNGdJQ0FnSUNBZ0lDQWdhR1ZwWjJoMElEMGdkWEJrWVhSbFpFVnNaVzFsYm5RdWFHVnBaMmgwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2doYjNKcFoybHVZV3hEYjI1MFlXbHVaWEpJWldsbmFIUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCdmNtbG5hVzVoYkVOdmJuUmhhVzVsY2tobGFXZG9kQ0E5SUdOdmJuUmhhVzVsY2k1b1pXbG5hSFE3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2JXRjRWMmxrZEdnZ1BTQmpiMjUwWVdsdVpYSXVkMmxrZEdnZ0xTQkNUMVZPUkY5VVJWaFVYMUJCUkVSSlRrY2dLaUF5TzF4dUlDQWdJQ0FnSUNCdFlYaElaV2xuYUhRZ1BTQmpiMjUwWVdsdVpYSXVhR1ZwWjJoMElDMGdRazlWVGtSZlZFVllWRjlRUVVSRVNVNUhJQ29nTWp0Y2JpQWdJQ0FnSUNBZ2QybGtkR2dnUFNCdFlYaFhhV1IwYUR0Y2JpQWdJQ0FnSUNBZ0x5OGdWR2hsSUdOdmIzSmthVzVoZEdWeklHOW1JSFJsZUhRZ1ltOTRJSE5sZENCaElHUnBjM1JoYm1ObElHOW1YRzRnSUNBZ0lDQWdJQzh2SURNd2NIZ2dkRzhnY0hKbGMyVnlkbVVnY0dGa1pHbHVaMXh1SUNBZ0lDQWdJQ0JqYjI5eVpGZ2dQU0JqYjI1MFlXbHVaWEl1ZUNBcklFSlBWVTVFWDFSRldGUmZVRUZFUkVsT1J6dGNiaUFnSUNBZ0lDQWdMeThnWVhWMGIyZHliM2NnWTI5dWRHRnBibVZ5SUdobGFXZG9kQ0JwWmlCMFpYaDBJR1Y0WTJWbFpITmNiaUFnSUNBZ0lDQWdhV1lnS0dobGFXZG9kQ0ErSUcxaGVFaGxhV2RvZENrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHUnBabVlnUFNCTllYUm9MbTFwYmlob1pXbG5hSFFnTFNCdFlYaElaV2xuYUhRc0lHRndjSEp2ZUV4cGJtVklaV2xuYUhRcE8xeHVJQ0FnSUNBZ0lDQWdJRzExZEdGMFpVVnNaVzFsYm5Rb1kyOXVkR0ZwYm1WeUxDQjdJR2hsYVdkb2REb2dZMjl1ZEdGcGJtVnlMbWhsYVdkb2RDQXJJR1JwWm1ZZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0Z4dUlDQWdJQ0FnSUNBZ0lDOHZJR0YxZEc5emFISnBibXNnWTI5dWRHRnBibVZ5SUdobGFXZG9kQ0IxYm5ScGJDQnZjbWxuYVc1aGJDQmpiMjUwWVdsdVpYSWdhR1ZwWjJoMFhHNGdJQ0FnSUNBZ0lDQWdMeThnYVhNZ2NtVmhZMmhsWkNCM2FHVnVJSFJsZUhRZ2FYTWdjbVZ0YjNabFpGeHVJQ0FnSUNBZ0lDQWdJR052Ym5SaGFXNWxjaTVvWldsbmFIUWdQaUJ2Y21sbmFXNWhiRU52Ym5SaGFXNWxja2hsYVdkb2RDQW1KbHh1SUNBZ0lDQWdJQ0FnSUdobGFXZG9kQ0E4SUcxaGVFaGxhV2RvZEZ4dUlDQWdJQ0FnSUNBcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQmthV1ptSUQwZ1RXRjBhQzV0YVc0b2JXRjRTR1ZwWjJoMElDMGdhR1ZwWjJoMExDQmhjSEJ5YjNoTWFXNWxTR1ZwWjJoMEtUdGNiaUFnSUNBZ0lDQWdJQ0J0ZFhSaGRHVkZiR1Z0Wlc1MEtHTnZiblJoYVc1bGNpd2dleUJvWldsbmFIUTZJR052Ym5SaGFXNWxjaTVvWldsbmFIUWdMU0JrYVdabUlIMHBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUM4dklGTjBZWEowSUhCMWMyaHBibWNnZEdWNGRDQjFjSGRoY21RZ2RXNTBhV3dnWVNCa2FXWm1JRzltSURNd2NIZ2dLSEJoWkdScGJtY3BYRzRnSUNBZ0lDQWdJQzh2SUdseklISmxZV05vWldSY2JpQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdkbVZ5ZEdsallXeHNlU0JqWlc1MFpYSWdZV3hwWjI0Z2RHaGxJSFJsZUhSY2JpQWdJQ0FnSUNBZ0lDQmpiMjl5WkZrZ1BTQmpiMjUwWVdsdVpYSXVlU0FySUdOdmJuUmhhVzVsY2k1b1pXbG5hSFFnTHlBeUlDMGdhR1ZwWjJoMElDOGdNanRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnWTI5dWMzUWdXM1pwWlhkd2IzSjBXQ3dnZG1sbGQzQnZjblJaWFNBOUlHZGxkRlpwWlhkd2IzSjBRMjl2Y21SektHTnZiM0prV0N3Z1kyOXZjbVJaS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJSHNnZEdWNGRFRnNhV2R1SUgwZ1BTQjFjR1JoZEdWa1JXeGxiV1Z1ZER0Y2JpQWdJQ0FnSUdWa2FYUmhZbXhsTG5aaGJIVmxJRDBnZFhCa1lYUmxaRVZzWlcxbGJuUXViM0pwWjJsdVlXeFVaWGgwTzF4dUlDQWdJQ0FnWTI5dWMzUWdiR2x1WlhNZ1BTQjFjR1JoZEdWa1JXeGxiV1Z1ZEM1dmNtbG5hVzVoYkZSbGVIUXVjM0JzYVhRb1hDSmNYRzVjSWlrN1hHNGdJQ0FnSUNCamIyNXpkQ0JzYVc1bFNHVnBaMmgwSUQwZ2RYQmtZWFJsWkVWc1pXMWxiblF1WTI5dWRHRnBibVZ5U1dSY2JpQWdJQ0FnSUNBZ1B5QmhjSEJ5YjNoTWFXNWxTR1ZwWjJoMFhHNGdJQ0FnSUNBZ0lEb2dkWEJrWVhSbFpFVnNaVzFsYm5RdWFHVnBaMmgwSUM4Z2JHbHVaWE11YkdWdVozUm9PMXh1SUNBZ0lDQWdhV1lnS0NGamIyNTBZV2x1WlhJcElIdGNiaUFnSUNBZ0lDQWdiV0Y0VjJsa2RHZ2dQU0FvWVhCd1UzUmhkR1V1ZDJsa2RHZ2dMU0E0SUMwZ2RtbGxkM0J2Y25SWUtTQXZJR0Z3Y0ZOMFlYUmxMbnB2YjIwdWRtRnNkV1U3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUM4dklFMWhhMlVnYzNWeVpTQjBaWGgwSUdWa2FYUnZjaUJvWldsbmFIUWdaRzlsYzI0bmRDQm5ieUJpWlhsdmJtUWdkbWxsZDNCdmNuUmNiaUFnSUNBZ0lHTnZibk4wSUdWa2FYUnZjazFoZUVobGFXZG9kQ0E5WEc0Z0lDQWdJQ0FnSUNoaGNIQlRkR0YwWlM1b1pXbG5hSFFnTFNCMmFXVjNjRzl5ZEZrcElDOGdZWEJ3VTNSaGRHVXVlbTl2YlM1MllXeDFaVHRjYmlBZ0lDQWdJR052Ym5OMElHRnVaMnhsSUQwZ1kyOXVkR0ZwYm1WeUlEOGdZMjl1ZEdGcGJtVnlMbUZ1WjJ4bElEb2dkWEJrWVhSbFpFVnNaVzFsYm5RdVlXNW5iR1U3WEc0Z0lDQWdJQ0JQWW1wbFkzUXVZWE56YVdkdUtHVmthWFJoWW14bExuTjBlV3hsTENCN1hHNGdJQ0FnSUNBZ0lHWnZiblE2SUdkbGRFWnZiblJUZEhKcGJtY29kWEJrWVhSbFpFVnNaVzFsYm5RcExGeHVJQ0FnSUNBZ0lDQXZMeUJ0ZFhOMElHSmxJR1JsWm1sdVpXUWdLbUZtZEdWeUtpQm1iMjUwSU1LdlhGeGZLT09EaENsZkw4S3ZYRzRnSUNBZ0lDQWdJR3hwYm1WSVpXbG5hSFE2SUdBa2UyeHBibVZJWldsbmFIUjljSGhnTEZ4dUlDQWdJQ0FnSUNCM2FXUjBhRG9nWUNSN2QybGtkR2g5Y0hoZ0xGeHVJQ0FnSUNBZ0lDQm9aV2xuYUhRNklHQWtlMmhsYVdkb2RIMXdlR0FzWEc0Z0lDQWdJQ0FnSUd4bFpuUTZJR0FrZTNacFpYZHdiM0owV0gxd2VHQXNYRzRnSUNBZ0lDQWdJSFJ2Y0RvZ1lDUjdkbWxsZDNCdmNuUlpmWEI0WUN4Y2JpQWdJQ0FnSUNBZ2RISmhibk5tYjNKdE9pQm5aWFJVY21GdWMyWnZjbTBvWEc0Z0lDQWdJQ0FnSUNBZ2QybGtkR2dzWEc0Z0lDQWdJQ0FnSUNBZ2FHVnBaMmgwTEZ4dUlDQWdJQ0FnSUNBZ0lHRnVaMnhsTEZ4dUlDQWdJQ0FnSUNBZ0lHRndjRk4wWVhSbExGeHVJQ0FnSUNBZ0lDQWdJRzFoZUZkcFpIUm9MRnh1SUNBZ0lDQWdJQ0FnSUdWa2FYUnZjazFoZUVobGFXZG9kQ3hjYmlBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUNBZ2RHVjRkRUZzYVdkdUxGeHVJQ0FnSUNBZ0lDQmpiMnh2Y2pvZ2RYQmtZWFJsWkVWc1pXMWxiblF1YzNSeWIydGxRMjlzYjNJc1hHNGdJQ0FnSUNBZ0lHOXdZV05wZEhrNklIVndaR0YwWldSRmJHVnRaVzUwTG05d1lXTnBkSGtnTHlBeE1EQXNYRzRnSUNBZ0lDQWdJR1pwYkhSbGNqb2dYQ0oyWVhJb0xTMTBhR1Z0WlMxbWFXeDBaWElwWENJc1hHNGdJQ0FnSUNBZ0lHMWhlRmRwWkhSb09pQmdKSHR0WVhoWGFXUjBhSDF3ZUdBc1hHNGdJQ0FnSUNBZ0lHMWhlRWhsYVdkb2REb2dZQ1I3WldScGRHOXlUV0Y0U0dWcFoyaDBmWEI0WUN4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0x5OGdSbTl5SUhOdmJXVWdjbVZoYzI5dUlIVndaR0YwYVc1bklHWnZiblFnWVhSMGNtbGlkWFJsSUdSdlpYTnVKM1FnYzJWMElHWnZiblFnWm1GdGFXeDVYRzRnSUNBZ0lDQXZMeUJvWlc1alpTQjFjR1JoZEdsdVp5Qm1iMjUwSUdaaGJXbHNlU0JsZUhCc2FXTnBkR3g1SUdadmNpQjBaWE4wSUdWdWRtbHliMjV0Wlc1MFhHNGdJQ0FnSUNCcFppQW9hWE5VWlhOMFJXNTJLQ2twSUh0Y2JpQWdJQ0FnSUNBZ1pXUnBkR0ZpYkdVdWMzUjViR1V1Wm05dWRFWmhiV2xzZVNBOUlHZGxkRVp2Ym5SR1lXMXBiSGxUZEhKcGJtY29kWEJrWVhSbFpFVnNaVzFsYm5RcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2JYVjBZWFJsUld4bGJXVnVkQ2gxY0dSaGRHVmtSV3hsYldWdWRDd2dleUI0T2lCamIyOXlaRmdzSUhrNklHTnZiM0prV1NCOUtUdGNiaUFnSUNCOVhHNGdJSDA3WEc1Y2JpQWdZMjl1YzNRZ1pXUnBkR0ZpYkdVZ1BTQmtiMk4xYldWdWRDNWpjbVZoZEdWRmJHVnRaVzUwS0Z3aWRHVjRkR0Z5WldGY0lpazdYRzVjYmlBZ1pXUnBkR0ZpYkdVdVpHbHlJRDBnWENKaGRYUnZYQ0k3WEc0Z0lHVmthWFJoWW14bExuUmhZa2x1WkdWNElEMGdNRHRjYmlBZ1pXUnBkR0ZpYkdVdVpHRjBZWE5sZEM1MGVYQmxJRDBnWENKM2VYTnBkM2xuWENJN1hHNGdJQzh2SUhCeVpYWmxiblFnYkdsdVpTQjNjbUZ3Y0dsdVp5QnZiaUJUWVdaaGNtbGNiaUFnWldScGRHRmliR1V1ZDNKaGNDQTlJRndpYjJabVhDSTdYRzRnSUdWa2FYUmhZbXhsTG1Oc1lYTnpUR2x6ZEM1aFpHUW9YQ0psZUdOaGJHbGtjbUYzTFhkNWMybDNlV2RjSWlrN1hHNWNiaUFnYkdWMElIZG9hWFJsVTNCaFkyVWdQU0JjSW5CeVpWd2lPMXh1SUNCc1pYUWdkMjl5WkVKeVpXRnJJRDBnWENKdWIzSnRZV3hjSWp0Y2JseHVJQ0JwWmlBb2FYTkNiM1Z1WkZSdlEyOXVkR0ZwYm1WeUtHVnNaVzFsYm5RcEtTQjdYRzRnSUNBZ2QyaHBkR1ZUY0dGalpTQTlJRndpY0hKbExYZHlZWEJjSWp0Y2JpQWdJQ0IzYjNKa1FuSmxZV3NnUFNCY0ltSnlaV0ZyTFhkdmNtUmNJanRjYmlBZ2ZWeHVJQ0JQWW1wbFkzUXVZWE56YVdkdUtHVmthWFJoWW14bExuTjBlV3hsTENCN1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUZ3aVlXSnpiMngxZEdWY0lpeGNiaUFnSUNCa2FYTndiR0Y1T2lCY0ltbHViR2x1WlMxaWJHOWphMXdpTEZ4dUlDQWdJRzFwYmtobGFXZG9kRG9nWENJeFpXMWNJaXhjYmlBZ0lDQmlZV05yWm1GalpWWnBjMmxpYVd4cGRIazZJRndpYUdsa1pHVnVYQ0lzWEc0Z0lDQWdiV0Z5WjJsdU9pQXdMRnh1SUNBZ0lIQmhaR1JwYm1jNklEQXNYRzRnSUNBZ1ltOXlaR1Z5T2lBd0xGeHVJQ0FnSUc5MWRHeHBibVU2SURBc1hHNGdJQ0FnY21WemFYcGxPaUJjSW01dmJtVmNJaXhjYmlBZ0lDQmlZV05yWjNKdmRXNWtPaUJjSW5SeVlXNXpjR0Z5Wlc1MFhDSXNYRzRnSUNBZ2IzWmxjbVpzYjNjNklGd2lhR2xrWkdWdVhDSXNYRzRnSUNBZ0x5OGdiWFZ6ZENCaVpTQnpjR1ZqYVdacFpXUWdZbVZqWVhWelpTQnBiaUJrWVhKcklHMXZaR1VnWTJGdWRtRnpJR055WldGMFpYTWdZU0J6ZEdGamEybHVaeUJqYjI1MFpYaDBYRzRnSUNBZ2VrbHVaR1Y0T2lCY0luWmhjaWd0TFhwSmJtUmxlQzEzZVhOcGQzbG5LVndpTEZ4dUlDQWdJSGR2Y21SQ2NtVmhheXhjYmlBZ0lDQXZMeUJ3Y21WMlpXNTBJR3hwYm1VZ2QzSmhjSEJwYm1jZ0tHQjNhR2wwWlhOd1lXTmxPaUJ1YjNkeVlYQmdJR1J2WlhOdUozUWdkMjl5YXlCdmJpQkdSaWxjYmlBZ0lDQjNhR2wwWlZOd1lXTmxMRnh1SUNBZ0lHOTJaWEptYkc5M1YzSmhjRG9nWENKaWNtVmhheTEzYjNKa1hDSXNYRzRnSUgwcE8xeHVJQ0IxY0dSaGRHVlhlWE5wZDNsblUzUjViR1VvS1R0Y2JseHVJQ0JwWmlBb2IyNURhR0Z1WjJVcElIdGNiaUFnSUNCbFpHbDBZV0pzWlM1dmJtbHVjSFYwSUQwZ0tDa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdkWEJrWVhSbFpFVnNaVzFsYm5RZ1BTQlRZMlZ1WlM1blpYUlRZMlZ1WlNobGJHVnRaVzUwS1Q4dVoyVjBSV3hsYldWdWRDaGNiaUFnSUNBZ0lDQWdhV1FzWEc0Z0lDQWdJQ0FwSUdGeklFVjRZMkZzYVdSeVlYZFVaWGgwUld4bGJXVnVkRHRjYmlBZ0lDQWdJR052Ym5OMElHWnZiblFnUFNCblpYUkdiMjUwVTNSeWFXNW5LSFZ3WkdGMFpXUkZiR1Z0Wlc1MEtUdGNiaUFnSUNBZ0lDOHZJSFZ6YVc1bklITmpjbTlzYkVobGFXZG9kQ0JvWlhKbElITnBibU5sSUhkbElHNWxaV1FnZEc4Z1kyRnNZM1ZzWVhSbFhHNGdJQ0FnSUNBdkx5QnVkVzFpWlhJZ2IyWWdiR2x1WlhNZ2MyOGdZMkZ1Ym05MElIVnpaU0JsWkdsMFlXSnNaUzV6ZEhsc1pTNW9aV2xuYUhSY2JpQWdJQ0FnSUM4dklHRnpJSFJvWVhRZ1oyVjBjeUIxY0dSaGRHVmtJR0psYkc5M1hHNGdJQ0FnSUNCamIyNXpkQ0JzYVc1bGN5QTlJR1ZrYVhSaFlteGxMbk5qY205c2JFaGxhV2RvZENBdklHZGxkRUZ3Y0hKdmVFeHBibVZJWldsbmFIUW9abTl1ZENrN1hHNGdJQ0FnSUNBdkx5QmhkWFJ2SUdsdVkzSmxZWE5sSUdobGFXZG9kQ0J2Ym14NUlIZG9aVzRnYkdsdVpYTWdJRDRnTVNCemJ5QnBkSE5jYmlBZ0lDQWdJQzh2SUcxbFlYTjFjbVZrSUdOdmNuSmxZM1JzZVNCaGJtUWdkbVZ5ZEdsallXeHNlU0JoYkdsbmJtVnpJR1p2Y2x4dUlDQWdJQ0FnTHk4Z1ptbHljM1FnYkdsdVpTQmhjeUIzWld4c0lHRnpJSE5sZEhScGJtY2dhR1ZwWjJoMElIUnZJRndpWVhWMGIxd2lYRzRnSUNBZ0lDQXZMeUJrYjNWaWJHVnpJSFJvWlNCb1pXbG5hSFFnWVhNZ2MyOXZiaUJoY3lCMWMyVnlJSE4wWVhKMGN5QjBlWEJwYm1kY2JpQWdJQ0FnSUdsbUlDaHBjMEp2ZFc1a1ZHOURiMjUwWVdsdVpYSW9aV3hsYldWdWRDa2dKaVlnYkdsdVpYTWdQaUF4S1NCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JvWldsbmFIUWdQU0JjSW1GMWRHOWNJanRjYmx4dUlDQWdJQ0FnSUNCcFppQW9iR2x1WlhNZ1BUMDlJRElwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCamIyNTBZV2x1WlhJZ1BTQm5aWFJEYjI1MFlXbHVaWEpGYkdWdFpXNTBLR1ZzWlcxbGJuUXBPMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR0ZqZEhWaGJFeHBibVZEYjNWdWRDQTlJSGR5WVhCVVpYaDBLRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXUnBkR0ZpYkdVdWRtRnNkV1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQm1iMjUwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1ZEdGcGJtVnlJUzUzYVdSMGFDeGNiaUFnSUNBZ0lDQWdJQ0FwTG5Od2JHbDBLRndpWEZ4dVhDSXBMbXhsYm1kMGFEdGNibHh1SUNBZ0lDQWdJQ0FnSUM4dklGUm9hWE1nYVhNZ1luSnZkM05sY2lCaVpXaGhkbWx2ZFhJZ2QyaGxiaUJ6WlhSMGFXNW5JR2hsYVdkb2RDQjBieUJjSW1GMWRHOWNJbHh1SUNBZ0lDQWdJQ0FnSUM4dklFbDBJSE5sZEhNZ2RHaGxJR2hsYVdkb2RDQnVaV1ZrWldRZ1ptOXlJRElnYkdsdVpYTWdaWFpsYmlCcFppQmhZM1IxWVd4Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJzYVc1bElHTnZkVzUwSUdseklERWdZWE1nYldWdWRHbHZibVZrSUdGaWIzWmxJR0Z6SUhkbGJHeGNiaUFnSUNBZ0lDQWdJQ0F2THlCb1pXNWpaU0J5WldSMVkybHVaeUIwYUdVZ2FHVnBaMmgwSUdKNUlHaGhiR1lnYVdZZ1lXTjBkV0ZzSUd4cGJtVWdZMjkxYm5RZ2FYTWdNVnh1SUNBZ0lDQWdJQ0FnSUM4dklITnZJSE5wYm1kc1pTQnNhVzVsSUdGc2FXZHVjeUIyWlhKMGFXTmhiR3g1SUhkb1pXNGdaR1ZzWlhScGJtZGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb1lXTjBkV0ZzVEdsdVpVTnZkVzUwSUQwOVBTQXhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQm9aV2xuYUhRZ1BTQmdKSHRsWkdsMFlXSnNaUzV6WTNKdmJHeElaV2xuYUhRZ0x5QXlmWEI0WUR0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWldScGRHRmliR1V1YzNSNWJHVXVhR1ZwWjJoMElEMGdhR1ZwWjJoME8xeHVJQ0FnSUNBZ0lDQmxaR2wwWVdKc1pTNXpkSGxzWlM1b1pXbG5hSFFnUFNCZ0pIdGxaR2wwWVdKc1pTNXpZM0p2Ykd4SVpXbG5hSFI5Y0hoZ08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2IyNURhR0Z1WjJVb2JtOXliV0ZzYVhwbFZHVjRkQ2hsWkdsMFlXSnNaUzUyWVd4MVpTa3BPMXh1SUNBZ0lIMDdYRzRnSUgxY2JseHVJQ0JsWkdsMFlXSnNaUzV2Ym10bGVXUnZkMjRnUFNBb1pYWmxiblFwSUQwK0lIdGNiaUFnSUNCbGRtVnVkQzV6ZEc5d1VISnZjR0ZuWVhScGIyNG9LVHRjYmx4dUlDQWdJR2xtSUNnaFpYWmxiblF1YzJocFpuUkxaWGtnSmlZZ1lXTjBhVzl1V205dmJVbHVMbXRsZVZSbGMzUW9aWFpsYm5RcEtTQjdYRzRnSUNBZ0lDQmxkbVZ1ZEM1d2NtVjJaVzUwUkdWbVlYVnNkQ2dwTzF4dUlDQWdJQ0FnWVhCd0xtRmpkR2x2YmsxaGJtRm5aWEl1WlhobFkzVjBaVUZqZEdsdmJpaGhZM1JwYjI1YWIyOXRTVzRwTzF4dUlDQWdJQ0FnZFhCa1lYUmxWM2x6YVhkNVoxTjBlV3hsS0NrN1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNnaFpYWmxiblF1YzJocFpuUkxaWGtnSmlZZ1lXTjBhVzl1V205dmJVOTFkQzVyWlhsVVpYTjBLR1YyWlc1MEtTa2dlMXh1SUNBZ0lDQWdaWFpsYm5RdWNISmxkbVZ1ZEVSbFptRjFiSFFvS1R0Y2JpQWdJQ0FnSUdGd2NDNWhZM1JwYjI1TllXNWhaMlZ5TG1WNFpXTjFkR1ZCWTNScGIyNG9ZV04wYVc5dVdtOXZiVTkxZENrN1hHNGdJQ0FnSUNCMWNHUmhkR1ZYZVhOcGQzbG5VM1I1YkdVb0tUdGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tHRmpkR2x2YmtSbFkzSmxZWE5sUm05dWRGTnBlbVV1YTJWNVZHVnpkQ2hsZG1WdWRDa3BJSHRjYmlBZ0lDQWdJR0Z3Y0M1aFkzUnBiMjVOWVc1aFoyVnlMbVY0WldOMWRHVkJZM1JwYjI0b1lXTjBhVzl1UkdWamNtVmhjMlZHYjI1MFUybDZaU2s3WEc0Z0lDQWdmU0JsYkhObElHbG1JQ2hoWTNScGIyNUpibU55WldGelpVWnZiblJUYVhwbExtdGxlVlJsYzNRb1pYWmxiblFwS1NCN1hHNGdJQ0FnSUNCaGNIQXVZV04wYVc5dVRXRnVZV2RsY2k1bGVHVmpkWFJsUVdOMGFXOXVLR0ZqZEdsdmJrbHVZM0psWVhObFJtOXVkRk5wZW1VcE8xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb1pYWmxiblF1YTJWNUlEMDlQU0JMUlZsVExrVlRRMEZRUlNrZ2UxeHVJQ0FnSUNBZ1pYWmxiblF1Y0hKbGRtVnVkRVJsWm1GMWJIUW9LVHRjYmlBZ0lDQWdJSE4xWW0xcGRIUmxaRlpwWVV0bGVXSnZZWEprSUQwZ2RISjFaVHRjYmlBZ0lDQWdJR2hoYm1Sc1pWTjFZbTFwZENncE8xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb1pYWmxiblF1YTJWNUlEMDlQU0JMUlZsVExrVk9WRVZTSUNZbUlHVjJaVzUwVzB0RldWTXVRMVJTVEY5UFVsOURUVVJkS1NCN1hHNGdJQ0FnSUNCbGRtVnVkQzV3Y21WMlpXNTBSR1ZtWVhWc2RDZ3BPMXh1SUNBZ0lDQWdhV1lnS0dWMlpXNTBMbWx6UTI5dGNHOXphVzVuSUh4OElHVjJaVzUwTG10bGVVTnZaR1VnUFQwOUlESXlPU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J6ZFdKdGFYUjBaV1JXYVdGTFpYbGliMkZ5WkNBOUlIUnlkV1U3WEc0Z0lDQWdJQ0JvWVc1a2JHVlRkV0p0YVhRb0tUdGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tGeHVJQ0FnSUNBZ1pYWmxiblF1YTJWNUlEMDlQU0JMUlZsVExsUkJRaUI4ZkZ4dUlDQWdJQ0FnS0dWMlpXNTBXMHRGV1ZNdVExUlNURjlQVWw5RFRVUmRJQ1ltWEc0Z0lDQWdJQ0FnSUNobGRtVnVkQzVqYjJSbElEMDlQU0JEVDBSRlV5NUNVa0ZEUzBWVVgweEZSbFFnZkh4Y2JpQWdJQ0FnSUNBZ0lDQmxkbVZ1ZEM1amIyUmxJRDA5UFNCRFQwUkZVeTVDVWtGRFMwVlVYMUpKUjBoVUtTbGNiaUFnSUNBcElIdGNiaUFnSUNBZ0lHVjJaVzUwTG5CeVpYWmxiblJFWldaaGRXeDBLQ2s3WEc0Z0lDQWdJQ0JwWmlBb1pYWmxiblF1YzJocFpuUkxaWGtnZkh3Z1pYWmxiblF1WTI5a1pTQTlQVDBnUTA5RVJWTXVRbEpCUTB0RlZGOU1SVVpVS1NCN1hHNGdJQ0FnSUNBZ0lHOTFkR1JsYm5Rb0tUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHbHVaR1Z1ZENncE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0x5OGdWMlVnYlhWemRDQnpaVzVrSUdGdUlHbHVjSFYwSUdWMlpXNTBJSFJ2SUhKbGMybDZaU0IwYUdVZ1pXeGxiV1Z1ZEZ4dUlDQWdJQ0FnWldScGRHRmliR1V1WkdsemNHRjBZMmhGZG1WdWRDaHVaWGNnUlhabGJuUW9YQ0pwYm5CMWRGd2lLU2s3WEc0Z0lDQWdmVnh1SUNCOU8xeHVYRzRnSUdOdmJuTjBJRlJCUWw5VFNWcEZJRDBnTkR0Y2JpQWdZMjl1YzNRZ1ZFRkNJRDBnWENJZ1hDSXVjbVZ3WldGMEtGUkJRbDlUU1ZwRktUdGNiaUFnWTI5dWMzUWdVa1ZmVEVWQlJFbE9SMTlVUVVJZ1BTQnVaWGNnVW1WblJYaHdLR0JlSUhzeExDUjdWRUZDWDFOSldrVjlmV0FwTzF4dUlDQmpiMjV6ZENCcGJtUmxiblFnUFNBb0tTQTlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnpaV3hsWTNScGIyNVRkR0Z5ZEN3Z2MyVnNaV04wYVc5dVJXNWtJSDBnUFNCbFpHbDBZV0pzWlR0Y2JpQWdJQ0JqYjI1emRDQnNhVzVsYzFOMFlYSjBTVzVrYVdObGN5QTlJR2RsZEZObGJHVmpkR1ZrVEdsdVpYTlRkR0Z5ZEVsdVpHbGpaWE1vS1R0Y2JseHVJQ0FnSUd4bGRDQjJZV3gxWlNBOUlHVmthWFJoWW14bExuWmhiSFZsTzF4dUlDQWdJR3hwYm1WelUzUmhjblJKYm1ScFkyVnpMbVp2Y2tWaFkyZ29LSE4wWVhKMFNXNWtaWGc2SUc1MWJXSmxjaWtnUFQ0Z2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYzNSaGNuUldZV3gxWlNBOUlIWmhiSFZsTG5Oc2FXTmxLREFzSUhOMFlYSjBTVzVrWlhncE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWlc1a1ZtRnNkV1VnUFNCMllXeDFaUzV6YkdsalpTaHpkR0Z5ZEVsdVpHVjRLVHRjYmx4dUlDQWdJQ0FnZG1Gc2RXVWdQU0JnSkh0emRHRnlkRlpoYkhWbGZTUjdWRUZDZlNSN1pXNWtWbUZzZFdWOVlEdGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lHVmthWFJoWW14bExuWmhiSFZsSUQwZ2RtRnNkV1U3WEc1Y2JpQWdJQ0JsWkdsMFlXSnNaUzV6Wld4bFkzUnBiMjVUZEdGeWRDQTlJSE5sYkdWamRHbHZibE4wWVhKMElDc2dWRUZDWDFOSldrVTdYRzRnSUNBZ1pXUnBkR0ZpYkdVdWMyVnNaV04wYVc5dVJXNWtJRDBnYzJWc1pXTjBhVzl1Ulc1a0lDc2dWRUZDWDFOSldrVWdLaUJzYVc1bGMxTjBZWEowU1c1a2FXTmxjeTVzWlc1bmRHZzdYRzRnSUgwN1hHNWNiaUFnWTI5dWMzUWdiM1YwWkdWdWRDQTlJQ2dwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUhObGJHVmpkR2x2YmxOMFlYSjBMQ0J6Wld4bFkzUnBiMjVGYm1RZ2ZTQTlJR1ZrYVhSaFlteGxPMXh1SUNBZ0lHTnZibk4wSUd4cGJtVnpVM1JoY25SSmJtUnBZMlZ6SUQwZ1oyVjBVMlZzWldOMFpXUk1hVzVsYzFOMFlYSjBTVzVrYVdObGN5Z3BPMXh1SUNBZ0lHTnZibk4wSUhKbGJXOTJaV1JVWVdKek9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dVhHNGdJQ0FnYkdWMElIWmhiSFZsSUQwZ1pXUnBkR0ZpYkdVdWRtRnNkV1U3WEc0Z0lDQWdiR2x1WlhOVGRHRnlkRWx1WkdsalpYTXVabTl5UldGamFDZ29jM1JoY25SSmJtUmxlQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ1kyOXVjM1FnZEdGaVRXRjBZMmdnUFNCMllXeDFaVnh1SUNBZ0lDQWdJQ0F1YzJ4cFkyVW9jM1JoY25SSmJtUmxlQ3dnYzNSaGNuUkpibVJsZUNBcklGUkJRbDlUU1ZwRktWeHVJQ0FnSUNBZ0lDQXViV0YwWTJnb1VrVmZURVZCUkVsT1IxOVVRVUlwTzF4dVhHNGdJQ0FnSUNCcFppQW9kR0ZpVFdGMFkyZ3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjM1JoY25SV1lXeDFaU0E5SUhaaGJIVmxMbk5zYVdObEtEQXNJSE4wWVhKMFNXNWtaWGdwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JsYm1SV1lXeDFaU0E5SUhaaGJIVmxMbk5zYVdObEtITjBZWEowU1c1a1pYZ2dLeUIwWVdKTllYUmphRnN3WFM1c1pXNW5kR2dwTzF4dVhHNGdJQ0FnSUNBZ0lDOHZJRVJsYkdWMFpTQmhJSFJoWWlCbWNtOXRJSFJvWlNCc2FXNWxYRzRnSUNBZ0lDQWdJSFpoYkhWbElEMGdZQ1I3YzNSaGNuUldZV3gxWlgwa2UyVnVaRlpoYkhWbGZXQTdYRzRnSUNBZ0lDQWdJSEpsYlc5MlpXUlVZV0p6TG5CMWMyZ29jM1JoY25SSmJtUmxlQ2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0JsWkdsMFlXSnNaUzUyWVd4MVpTQTlJSFpoYkhWbE8xeHVYRzRnSUNBZ2FXWWdLSEpsYlc5MlpXUlVZV0p6TG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnYVdZZ0tITmxiR1ZqZEdsdmJsTjBZWEowSUQ0Z2NtVnRiM1psWkZSaFluTmJjbVZ0YjNabFpGUmhZbk11YkdWdVozUm9JQzBnTVYwcElIdGNiaUFnSUNBZ0lDQWdaV1JwZEdGaWJHVXVjMlZzWldOMGFXOXVVM1JoY25RZ1BTQk5ZWFJvTG0xaGVDaGNiaUFnSUNBZ0lDQWdJQ0J6Wld4bFkzUnBiMjVUZEdGeWRDQXRJRlJCUWw5VFNWcEZMRnh1SUNBZ0lDQWdJQ0FnSUhKbGJXOTJaV1JVWVdKelczSmxiVzkyWldSVVlXSnpMbXhsYm1kMGFDQXRJREZkTEZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0x5OGdTV1lnZEdobElHTjFjbk52Y2lCcGN5QmlaV1p2Y21VZ2RHaGxJR1pwY25OMElIUmhZaUJ5WlcxdmRtVmtMQ0JsZURwY2JpQWdJQ0FnSUNBZ0x5OGdUR2x1Wlh3Z0l6RmNiaUFnSUNBZ0lDQWdMeThnSUNBZ0lFeHBibVVnSXpKY2JpQWdJQ0FnSUNBZ0x5OGdUR2x1ZkdVZ0l6TmNiaUFnSUNBZ0lDQWdMeThnZDJVZ2MyaHZkV3hrSUhKbGMyVjBJSFJvWlNCelpXeGxZM1JwYjI1VGRHRnlkQ0IwYnlCb2FYTWdhVzVwZEdsaGJDQjJZV3gxWlM1Y2JpQWdJQ0FnSUNBZ1pXUnBkR0ZpYkdVdWMyVnNaV04wYVc5dVUzUmhjblFnUFNCelpXeGxZM1JwYjI1VGRHRnlkRHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR1ZrYVhSaFlteGxMbk5sYkdWamRHbHZia1Z1WkNBOUlFMWhkR2d1YldGNEtGeHVJQ0FnSUNBZ0lDQmxaR2wwWVdKc1pTNXpaV3hsWTNScGIyNVRkR0Z5ZEN4Y2JpQWdJQ0FnSUNBZ2MyVnNaV04wYVc5dVJXNWtJQzBnVkVGQ1gxTkpXa1VnS2lCeVpXMXZkbVZrVkdGaWN5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgxY2JpQWdmVHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRSEpsZEhWeWJuTWdhVzVrWldObGN5QnZaaUJ6ZEdGeWRDQndiM05wZEdsdmJuTWdiMllnYzJWc1pXTjBaV1FnYkdsdVpYTXNJR2x1SUhKbGRtVnljMlVnYjNKa1pYSmNiaUFnSUNvdlhHNGdJR052Ym5OMElHZGxkRk5sYkdWamRHVmtUR2x1WlhOVGRHRnlkRWx1WkdsalpYTWdQU0FvS1NBOVBpQjdYRzRnSUNBZ2JHVjBJSHNnYzJWc1pXTjBhVzl1VTNSaGNuUXNJSE5sYkdWamRHbHZia1Z1WkN3Z2RtRnNkV1VnZlNBOUlHVmthWFJoWW14bE8xeHVYRzRnSUNBZ0x5OGdZMmhoY25NZ1ltVm1iM0psSUhObGJHVmpkR2x2YmxOMFlYSjBJRzl1SUhSb1pTQnpZVzFsSUd4cGJtVmNiaUFnSUNCamIyNXpkQ0J6ZEdGeWRFOW1abk5sZENBOUlIWmhiSFZsTG5Oc2FXTmxLREFzSUhObGJHVmpkR2x2YmxOMFlYSjBLUzV0WVhSamFDZ3ZXMTVjWEc1ZEtpUXZLU0ZiTUYxY2JpQWdJQ0FnSUM1c1pXNW5kR2c3WEc0Z0lDQWdMeThnY0hWMElHTmhjbVYwSUdGMElIUm9aU0J6ZEdGeWRDQnZaaUIwYUdVZ2JHbHVaVnh1SUNBZ0lITmxiR1ZqZEdsdmJsTjBZWEowSUQwZ2MyVnNaV04wYVc5dVUzUmhjblFnTFNCemRHRnlkRTltWm5ObGREdGNibHh1SUNBZ0lHTnZibk4wSUhObGJHVmpkR1ZrSUQwZ2RtRnNkV1V1YzJ4cFkyVW9jMlZzWldOMGFXOXVVM1JoY25Rc0lITmxiR1ZqZEdsdmJrVnVaQ2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdjMlZzWldOMFpXUmNiaUFnSUNBZ0lDNXpjR3hwZENoY0lseGNibHdpS1Z4dUlDQWdJQ0FnTG5KbFpIVmpaU2hjYmlBZ0lDQWdJQ0FnS0hOMFlYSjBTVzVrYVdObGN5d2diR2x1WlN3Z2FXUjRMQ0JzYVc1bGN5a2dQVDVjYmlBZ0lDQWdJQ0FnSUNCemRHRnlkRWx1WkdsalpYTXVZMjl1WTJGMEtGeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdSNFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z0x5OGdZM1Z5Y2lCc2FXNWxJR2x1WkdWNElHbHpJSEJ5WlhZZ2JHbHVaU2R6SUhOMFlYSjBJQ3NnY0hKbGRpQnNhVzVsSjNNZ2JHVnVaM1JvSUNzZ1hGeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1JoY25SSmJtUnBZMlZ6VzJsa2VDQXRJREZkSUNzZ2JHbHVaWE5iYVdSNElDMGdNVjB1YkdWdVozUm9JQ3NnTVZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0E2SUM4dklHWnBjbk4wSUhObGJHVmpkR1ZrSUd4cGJtVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpaV3hsWTNScGIyNVRkR0Z5ZEN4Y2JpQWdJQ0FnSUNBZ0lDQXBMRnh1SUNBZ0lDQWdJQ0JiWFNCaGN5QnVkVzFpWlhKYlhTeGNiaUFnSUNBZ0lDbGNiaUFnSUNBZ0lDNXlaWFpsY25ObEtDazdYRzRnSUgwN1hHNWNiaUFnWTI5dWMzUWdjM1J2Y0VWMlpXNTBJRDBnS0dWMlpXNTBPaUJGZG1WdWRDa2dQVDRnZTF4dUlDQWdJR1YyWlc1MExuQnlaWFpsYm5SRVpXWmhkV3gwS0NrN1hHNGdJQ0FnWlhabGJuUXVjM1J2Y0ZCeWIzQmhaMkYwYVc5dUtDazdYRzRnSUgwN1hHNWNiaUFnTHk4Z2RYTnBibWNnWVNCemRHRjBaU0IyWVhKcFlXSnNaU0JwYm5OMFpXRmtJRzltSUhCaGMzTnBibWNnYVhRZ2RHOGdkR2hsSUdoaGJtUnNaVk4xWW0xcGRDQmpZV3hzWW1GamExeHVJQ0F2THlCemJ5QjBhR0YwSUhkbElHUnZiaWQwSUc1bFpXUWdkRzhnWTNKbFlYUmxJSE5sY0dGeVlYUmxJR0VnWTJGc2JHSmhZMnNnWm05eUlHVjJaVzUwSUdoaGJtUnNaWEp6WEc0Z0lHeGxkQ0J6ZFdKdGFYUjBaV1JXYVdGTFpYbGliMkZ5WkNBOUlHWmhiSE5sTzF4dUlDQmpiMjV6ZENCb1lXNWtiR1ZUZFdKdGFYUWdQU0FvS1NBOVBpQjdYRzRnSUNBZ0x5OGdZMnhsWVc1MWNDQnRkWE4wSUdKbElISjFiaUJpWldadmNtVWdiMjVUZFdKdGFYUWdiM1JvWlhKM2FYTmxJSGRvWlc0Z1lYQndJR0pzZFhKeklIUm9aU0IzZVhOcGQzbG5YRzRnSUNBZ0x5OGdhWFFuWkNCblpYUWdjM1IxWTJzZ2FXNGdZVzRnYVc1bWFXNXBkR1VnYkc5dmNDQnZaaUJpYkhWeTRvYVNiMjVUZFdKdGFYUWdZV1owWlhJZ2QyVWdjbVV0Wm05amRYTWdkR2hsWEc0Z0lDQWdMeThnZDNsemFYZDVaeUJ2YmlCMWNHUmhkR1ZjYmlBZ0lDQmpiR1ZoYm5Wd0tDazdYRzRnSUNBZ1kyOXVjM1FnZFhCa1lYUmxSV3hsYldWdWRDQTlJRk5qWlc1bExtZGxkRk5qWlc1bEtHVnNaVzFsYm5RcFB5NW5aWFJGYkdWdFpXNTBLRnh1SUNBZ0lDQWdaV3hsYldWdWRDNXBaQ3hjYmlBZ0lDQXBJR0Z6SUVWNFkyRnNhV1J5WVhkVVpYaDBSV3hsYldWdWREdGNiaUFnSUNCcFppQW9JWFZ3WkdGMFpVVnNaVzFsYm5RcElIdGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0I5WEc0Z0lDQWdiR1YwSUhSbGVIUWdQU0JsWkdsMFlXSnNaUzUyWVd4MVpUdGNiaUFnSUNCamIyNXpkQ0JqYjI1MFlXbHVaWElnUFNCblpYUkRiMjUwWVdsdVpYSkZiR1Z0Wlc1MEtIVndaR0YwWlVWc1pXMWxiblFwTzF4dVhHNGdJQ0FnYVdZZ0tHTnZiblJoYVc1bGNpa2dlMXh1SUNBZ0lDQWdkR1Y0ZENBOUlIVndaR0YwWlVWc1pXMWxiblF1ZEdWNGREdGNiaUFnSUNBZ0lHbG1JQ2hsWkdsMFlXSnNaUzUyWVd4MVpTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmliM1Z1WkZSbGVIUkZiR1Z0Wlc1MFNXUWdQU0JuWlhSQ2IzVnVaRlJsZUhSRmJHVnRaVzUwU1dRb1kyOXVkR0ZwYm1WeUtUdGNiaUFnSUNBZ0lDQWdhV1lnS0NGaWIzVnVaRlJsZUhSRmJHVnRaVzUwU1dRZ2ZId2dZbTkxYm1SVVpYaDBSV3hsYldWdWRFbGtJQ0U5UFNCbGJHVnRaVzUwTG1sa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnYlhWMFlYUmxSV3hsYldWdWRDaGpiMjUwWVdsdVpYSXNJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHSnZkVzVrUld4bGJXVnVkSE02SUNoamIyNTBZV2x1WlhJdVltOTFibVJGYkdWdFpXNTBjeUI4ZkNCYlhTa3VZMjl1WTJGMEtIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2RIbHdaVG9nWENKMFpYaDBYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR2xrT2lCbGJHVnRaVzUwTG1sa0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnZlNrc1hHNGdJQ0FnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUcxMWRHRjBaVVZzWlcxbGJuUW9ZMjl1ZEdGcGJtVnlMQ0I3WEc0Z0lDQWdJQ0FnSUNBZ1ltOTFibVJGYkdWdFpXNTBjem9nWTI5dWRHRnBibVZ5TG1KdmRXNWtSV3hsYldWdWRITS9MbVpwYkhSbGNpaGNiaUFnSUNBZ0lDQWdJQ0FnSUNobGJHVXBJRDArWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0ZwYzFSbGVIUkZiR1Z0Wlc1MEtGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNaU0JoY3lCRmVHTmhiR2xrY21GM1ZHVjRkRVZzWlcxbGJuUWdmQ0JGZUdOaGJHbGtjbUYzVEdsdVpXRnlSV3hsYldWdWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCdmJsTjFZbTFwZENoN1hHNGdJQ0FnSUNCMFpYaDBMRnh1SUNBZ0lDQWdkbWxoUzJWNVltOWhjbVE2SUhOMVltMXBkSFJsWkZacFlVdGxlV0p2WVhKa0xGeHVJQ0FnSUNBZ2IzSnBaMmx1WVd4VVpYaDBPaUJsWkdsMFlXSnNaUzUyWVd4MVpTeGNiaUFnSUNCOUtUdGNiaUFnZlR0Y2JseHVJQ0JqYjI1emRDQmpiR1ZoYm5Wd0lEMGdLQ2tnUFQ0Z2UxeHVJQ0FnSUdsbUlDaHBjMFJsYzNSeWIzbGxaQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lIMWNiaUFnSUNCcGMwUmxjM1J5YjNsbFpDQTlJSFJ5ZFdVN1hHNGdJQ0FnTHk4Z2NtVnRiM1psSUdWMlpXNTBjeUIwYnlCbGJuTjFjbVVnZEdobGVTQmtiMjRuZENCc1lYUmxMV1pwY21WY2JpQWdJQ0JsWkdsMFlXSnNaUzV2Ym1Kc2RYSWdQU0J1ZFd4c08xeHVJQ0FnSUdWa2FYUmhZbXhsTG05dWFXNXdkWFFnUFNCdWRXeHNPMXh1SUNBZ0lHVmthWFJoWW14bExtOXVhMlY1Wkc5M2JpQTlJRzUxYkd3N1hHNWNiaUFnSUNCcFppQW9iMkp6WlhKMlpYSXBJSHRjYmlBZ0lDQWdJRzlpYzJWeWRtVnlMbVJwYzJOdmJtNWxZM1FvS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IzYVc1a2IzY3VjbVZ0YjNabFJYWmxiblJNYVhOMFpXNWxjaWhjSW5KbGMybDZaVndpTENCMWNHUmhkR1ZYZVhOcGQzbG5VM1I1YkdVcE8xeHVJQ0FnSUhkcGJtUnZkeTV5WlcxdmRtVkZkbVZ1ZEV4cGMzUmxibVZ5S0Z3aWQyaGxaV3hjSWl3Z2MzUnZjRVYyWlc1MExDQjBjblZsS1R0Y2JpQWdJQ0IzYVc1a2IzY3VjbVZ0YjNabFJYWmxiblJNYVhOMFpXNWxjaWhjSW5CdmFXNTBaWEprYjNkdVhDSXNJRzl1VUc5cGJuUmxja1J2ZDI0cE8xeHVJQ0FnSUhkcGJtUnZkeTV5WlcxdmRtVkZkbVZ1ZEV4cGMzUmxibVZ5S0Z3aWNHOXBiblJsY25Wd1hDSXNJR0pwYm1SQ2JIVnlSWFpsYm5RcE8xeHVJQ0FnSUhkcGJtUnZkeTV5WlcxdmRtVkZkbVZ1ZEV4cGMzUmxibVZ5S0Z3aVlteDFjbHdpTENCb1lXNWtiR1ZUZFdKdGFYUXBPMXh1WEc0Z0lDQWdkVzVpYVc1a1ZYQmtZWFJsS0NrN1hHNWNiaUFnSUNCbFpHbDBZV0pzWlM1eVpXMXZkbVVvS1R0Y2JpQWdmVHRjYmx4dUlDQmpiMjV6ZENCaWFXNWtRbXgxY2tWMlpXNTBJRDBnS0dWMlpXNTBQem9nVFc5MWMyVkZkbVZ1ZENrZ1BUNGdlMXh1SUNBZ0lIZHBibVJ2ZHk1eVpXMXZkbVZGZG1WdWRFeHBjM1JsYm1WeUtGd2ljRzlwYm5SbGNuVndYQ0lzSUdKcGJtUkNiSFZ5UlhabGJuUXBPMXh1SUNBZ0lDOHZJRVJsWm1WeWNtVmtJSE52SUhSb1lYUWdkR2hsSUhCdmFXNTBaWEprYjNkdUlIUm9ZWFFnYVc1cGRHbGhkR1Z6SUhSb1pTQjNlWE5wZDNsbklHUnZaWE51SjNSY2JpQWdJQ0F2THlCMGNtbG5aMlZ5SUhSb1pTQmliSFZ5SUc5dUlHVnVjM1ZwYm1jZ2NHOXBiblJsY25Wd0xseHVJQ0FnSUM4dklFRnNjMjhnZEc4Z2FHRnVaR3hsSUdOaGMyVnpJSE4xWTJnZ1lYTWdjR2xqYTJsdVp5QmhJR052Ykc5eUlIZG9hV05vSUhkdmRXeGtJSFJ5YVdkblpYSWdZU0JpYkhWeVhHNGdJQ0FnTHk4Z2FXNGdkR2hoZENCellXMWxJSFJwWTJzdVhHNGdJQ0FnWTI5dWMzUWdkR0Z5WjJWMElEMGdaWFpsYm5RL0xuUmhjbWRsZER0Y2JseHVJQ0FnSUdOdmJuTjBJR2x6VkdGeVoyVjBRMjlzYjNKUWFXTnJaWElnUFZ4dUlDQWdJQ0FnZEdGeVoyVjBJR2x1YzNSaGJtTmxiMllnU0ZSTlRFbHVjSFYwUld4bGJXVnVkQ0FtSmx4dUlDQWdJQ0FnZEdGeVoyVjBMbU5zYjNObGMzUW9YQ0l1WTI5c2IzSXRjR2xqYTJWeUxXbHVjSFYwWENJcElDWW1YRzRnSUNBZ0lDQnBjMWR5YVhSaFlteGxSV3hsYldWdWRDaDBZWEpuWlhRcE8xeHVYRzRnSUNBZ2MyVjBWR2x0Wlc5MWRDZ29LU0E5UGlCN1hHNGdJQ0FnSUNCbFpHbDBZV0pzWlM1dmJtSnNkWElnUFNCb1lXNWtiR1ZUZFdKdGFYUTdYRzRnSUNBZ0lDQnBaaUFvZEdGeVoyVjBJQ1ltSUdselZHRnlaMlYwUTI5c2IzSlFhV05yWlhJcElIdGNiaUFnSUNBZ0lDQWdkR0Z5WjJWMExtOXVZbXgxY2lBOUlDZ3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQmxaR2wwWVdKc1pTNW1iMk4xY3lncE8xeHVJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdMeThnWTJGelpUb2dZMnhwWTJ0cGJtY2diMjRnZEdobElITmhiV1VnY0hKdmNHVnlkSGtnNG9hU0lHNXZJR05vWVc1blpTRGlocElnYm04Z2RYQmtZWFJsSU9LR2tpQnVieUJtYjJOMWMxeHVJQ0FnSUNBZ2FXWWdLQ0ZwYzFSaGNtZGxkRU52Ykc5eVVHbGphMlZ5S1NCN1hHNGdJQ0FnSUNBZ0lHVmthWFJoWW14bExtWnZZM1Z6S0NrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNGdJSDA3WEc1Y2JpQWdMeThnY0hKbGRtVnVkQ0JpYkhWeUlIZG9aVzRnWTJoaGJtZHBibWNnY0hKdmNHVnlkR2xsY3lCbWNtOXRJSFJvWlNCdFpXNTFYRzRnSUdOdmJuTjBJRzl1VUc5cGJuUmxja1J2ZDI0Z1BTQW9aWFpsYm5RNklFMXZkWE5sUlhabGJuUXBJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQnBjMVJoY21kbGRFTnZiRzl5VUdsamEyVnlJRDFjYmlBZ0lDQWdJR1YyWlc1MExuUmhjbWRsZENCcGJuTjBZVzVqWlc5bUlFaFVUVXhKYm5CMWRFVnNaVzFsYm5RZ0ppWmNiaUFnSUNBZ0lHVjJaVzUwTG5SaGNtZGxkQzVqYkc5elpYTjBLRndpTG1OdmJHOXlMWEJwWTJ0bGNpMXBibkIxZEZ3aUtTQW1KbHh1SUNBZ0lDQWdhWE5YY21sMFlXSnNaVVZzWlcxbGJuUW9aWFpsYm5RdWRHRnlaMlYwS1R0Y2JpQWdJQ0JwWmlBb1hHNGdJQ0FnSUNBb0tHVjJaVzUwTG5SaGNtZGxkQ0JwYm5OMFlXNWpaVzltSUVoVVRVeEZiR1Z0Wlc1MElIeDhYRzRnSUNBZ0lDQWdJR1YyWlc1MExuUmhjbWRsZENCcGJuTjBZVzVqWlc5bUlGTldSMFZzWlcxbGJuUXBJQ1ltWEc0Z0lDQWdJQ0FnSUdWMlpXNTBMblJoY21kbGRDNWpiRzl6WlhOMEtHQXVKSHREVEVGVFUwVlRMbE5JUVZCRlgwRkRWRWxQVGxOZlRVVk9WWDFnS1NBbUpseHVJQ0FnSUNBZ0lDQWhhWE5YY21sMFlXSnNaVVZzWlcxbGJuUW9aWFpsYm5RdWRHRnlaMlYwS1NrZ2ZIeGNiaUFnSUNBZ0lHbHpWR0Z5WjJWMFEyOXNiM0pRYVdOclpYSmNiaUFnSUNBcElIdGNiaUFnSUNBZ0lHVmthWFJoWW14bExtOXVZbXgxY2lBOUlHNTFiR3c3WEc0Z0lDQWdJQ0IzYVc1a2IzY3VZV1JrUlhabGJuUk1hWE4wWlc1bGNpaGNJbkJ2YVc1MFpYSjFjRndpTENCaWFXNWtRbXgxY2tWMlpXNTBLVHRjYmlBZ0lDQWdJQzh2SUdoaGJtUnNaU0JsWkdkbExXTmhjMlVnZDJobGNtVWdjRzlwYm5SbGNuVndJR1J2WlhOdUozUWdabWx5WlNCbExtY3VJR1IxWlNCMGJ5QjFjMlZ5WEc0Z0lDQWdJQ0F2THlCaGJIUXRkR0ZpWW1sdVp5QmhkMkY1WEc0Z0lDQWdJQ0IzYVc1a2IzY3VZV1JrUlhabGJuUk1hWE4wWlc1bGNpaGNJbUpzZFhKY0lpd2dhR0Z1Wkd4bFUzVmliV2wwS1R0Y2JpQWdJQ0I5WEc0Z0lIMDdYRzVjYmlBZ0x5OGdhR0Z1Wkd4bElIVndaR0YwWlhNZ2IyWWdkR1Y0ZEVWc1pXMWxiblFnY0hKdmNHVnlkR2xsY3lCdlppQmxaR2wwYVc1bklHVnNaVzFsYm5SY2JpQWdZMjl1YzNRZ2RXNWlhVzVrVlhCa1lYUmxJRDBnVTJObGJtVXVaMlYwVTJObGJtVW9aV3hsYldWdWRDa2hMbUZrWkVOaGJHeGlZV05yS0NncElEMCtJSHRjYmlBZ0lDQjFjR1JoZEdWWGVYTnBkM2xuVTNSNWJHVW9LVHRjYmlBZ0lDQmpiMjV6ZENCcGMwTnZiRzl5VUdsamEyVnlRV04wYVhabElEMGdJU0ZrYjJOMWJXVnVkQzVoWTNScGRtVkZiR1Z0Wlc1MFB5NWpiRzl6WlhOMEtGeHVJQ0FnSUNBZ1hDSXVZMjlzYjNJdGNHbGphMlZ5TFdsdWNIVjBYQ0lzWEc0Z0lDQWdLVHRjYmlBZ0lDQnBaaUFvSVdselEyOXNiM0pRYVdOclpYSkJZM1JwZG1VcElIdGNiaUFnSUNBZ0lHVmthWFJoWW14bExtWnZZM1Z6S0NrN1hHNGdJQ0FnZlZ4dUlDQjlLVHRjYmx4dUlDQXZMeUF0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMxY2JseHVJQ0JzWlhRZ2FYTkVaWE4wY205NVpXUWdQU0JtWVd4elpUdGNibHh1SUNBdkx5QnpaV3hsWTNRZ2IyNGdhVzVwZENBb1ptOWpkWE5wYm1jZ2FYTWdaRzl1WlNCelpYQmhjbUYwWld4NUlHbHVjMmxrWlNCMGFHVWdZbWx1WkVKc2RYSkZkbVZ1ZENncFhHNGdJQzh2SUdKbFkyRjFjMlVnZDJVZ2JtVmxaQ0JwZENCMGJ5Qm9ZWEJ3Wlc0Z0ttRm1kR1Z5S2lCMGFHVWdZbXgxY2lCbGRtVnVkQ0JtY205dElHQndiMmx1ZEdWeVpHOTNibUFwWEc0Z0lHVmthWFJoWW14bExuTmxiR1ZqZENncE8xeHVJQ0JpYVc1a1FteDFja1YyWlc1MEtDazdYRzVjYmlBZ0x5OGdjbVZ3YjNOcGRHbHZiaUIzZVhOcGQzbG5JR2x1SUdOaGMyVWdiMllnWTJGdWRtRnpJR2x6SUhKbGMybDZaV1F1SUZWemFXNW5JRkpsYzJsNlpVOWljMlZ5ZG1WeVhHNGdJQzh2SUdseklIQnlaV1psY25KbFpDQnpieUIzWlNCallYUmphQ0JqYUdGdVoyVnpJR1p5YjIwZ2FHOXpkQ3dnZDJobGNtVWdkMmx1Wkc5M0lHMWhlU0J1YjNRZ2NtVnphWHBsTGx4dUlDQnNaWFFnYjJKelpYSjJaWEk2SUZKbGMybDZaVTlpYzJWeWRtVnlJSHdnYm5Wc2JDQTlJRzUxYkd3N1hHNGdJR2xtSUNoallXNTJZWE1nSmlZZ1hDSlNaWE5wZW1WUFluTmxjblpsY2x3aUlHbHVJSGRwYm1SdmR5a2dlMXh1SUNBZ0lHOWljMlZ5ZG1WeUlEMGdibVYzSUhkcGJtUnZkeTVTWlhOcGVtVlBZbk5sY25abGNpZ29LU0E5UGlCN1hHNGdJQ0FnSUNCMWNHUmhkR1ZYZVhOcGQzbG5VM1I1YkdVb0tUdGNiaUFnSUNCOUtUdGNiaUFnSUNCdlluTmxjblpsY2k1dlluTmxjblpsS0dOaGJuWmhjeWs3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnZDJsdVpHOTNMbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSW9YQ0p5WlhOcGVtVmNJaXdnZFhCa1lYUmxWM2x6YVhkNVoxTjBlV3hsS1R0Y2JpQWdmVnh1WEc0Z0lIZHBibVJ2ZHk1aFpHUkZkbVZ1ZEV4cGMzUmxibVZ5S0Z3aWNHOXBiblJsY21SdmQyNWNJaXdnYjI1UWIybHVkR1Z5Ukc5M2JpazdYRzRnSUhkcGJtUnZkeTVoWkdSRmRtVnVkRXhwYzNSbGJtVnlLRndpZDJobFpXeGNJaXdnYzNSdmNFVjJaVzUwTENCN1hHNGdJQ0FnY0dGemMybDJaVG9nWm1Gc2MyVXNYRzRnSUNBZ1kyRndkSFZ5WlRvZ2RISjFaU3hjYmlBZ2ZTazdYRzRnSUdWNFkyRnNhV1J5WVhkRGIyNTBZV2x1WlhKY2JpQWdJQ0EvTG5GMVpYSjVVMlZzWldOMGIzSW9YQ0l1WlhoallXeHBaSEpoZHkxMFpYaDBSV1JwZEc5eVEyOXVkR0ZwYm1WeVhDSXBJVnh1SUNBZ0lDNWhjSEJsYm1SRGFHbHNaQ2hsWkdsMFlXSnNaU2s3WEc1OU8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2VsZW1lbnQvdGV4dFd5c2l3eWcudHN4XFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9lbGVtZW50L3RyYW5zZm9ybUhhbmRsZXMudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2VsZW1lbnQvdHJhbnNmb3JtSGFuZGxlcy50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIk9NSVRfU0lERVNfRk9SX01VTFRJUExFX0VMRU1FTlRTXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gT01JVF9TSURFU19GT1JfTVVMVElQTEVfRUxFTUVOVFMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldFRyYW5zZm9ybUhhbmRsZXNGcm9tQ29vcmRzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0VHJhbnNmb3JtSGFuZGxlc0Zyb21Db29yZHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldFRyYW5zZm9ybUhhbmRsZXNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRUcmFuc2Zvcm1IYW5kbGVzKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2JvdW5kcyAqLyBcXFwiLi4vLi4vZWxlbWVudC9ib3VuZHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL21hdGggKi8gXFxcIi4uLy4uL21hdGgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLiAqLyBcXFwiLi4vLi4vZWxlbWVudC9pbmRleC50c1xcXCIpO1xcblxcblxcblxcbmNvbnN0IHRyYW5zZm9ybUhhbmRsZVNpemVzID0ge1xcbiAgICBtb3VzZTogOCxcXG4gICAgcGVuOiAxNixcXG4gICAgdG91Y2g6IDI4LFxcbn07XFxuY29uc3QgUk9UQVRJT05fUkVTSVpFX0hBTkRMRV9HQVAgPSAxNjtcXG5jb25zdCBPTUlUX1NJREVTX0ZPUl9NVUxUSVBMRV9FTEVNRU5UUyA9IHtcXG4gICAgZTogdHJ1ZSxcXG4gICAgczogdHJ1ZSxcXG4gICAgbjogdHJ1ZSxcXG4gICAgdzogdHJ1ZSxcXG59O1xcbmNvbnN0IE9NSVRfU0lERVNfRk9SX1RFWFRfRUxFTUVOVCA9IHtcXG4gICAgZTogdHJ1ZSxcXG4gICAgczogdHJ1ZSxcXG4gICAgbjogdHJ1ZSxcXG4gICAgdzogdHJ1ZSxcXG59O1xcbmNvbnN0IE9NSVRfU0lERVNfRk9SX0xJTkVfU0xBU0ggPSB7XFxuICAgIGU6IHRydWUsXFxuICAgIHM6IHRydWUsXFxuICAgIG46IHRydWUsXFxuICAgIHc6IHRydWUsXFxuICAgIG53OiB0cnVlLFxcbiAgICBzZTogdHJ1ZSxcXG59O1xcbmNvbnN0IE9NSVRfU0lERVNfRk9SX0xJTkVfQkFDS1NMQVNIID0ge1xcbiAgICBlOiB0cnVlLFxcbiAgICBzOiB0cnVlLFxcbiAgICBuOiB0cnVlLFxcbiAgICB3OiB0cnVlLFxcbiAgICBuZTogdHJ1ZSxcXG4gICAgc3c6IHRydWUsXFxufTtcXG5jb25zdCBnZW5lcmF0ZVRyYW5zZm9ybUhhbmRsZSA9ICh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjeCwgY3ksIGFuZ2xlKSA9PiB7XFxuICAgIGNvbnN0IFt4eCwgeXldID0gKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5yb3RhdGUpKHggKyB3aWR0aCAvIDIsIHkgKyBoZWlnaHQgLyAyLCBjeCwgY3ksIGFuZ2xlKTtcXG4gICAgcmV0dXJuIFt4eCAtIHdpZHRoIC8gMiwgeXkgLSBoZWlnaHQgLyAyLCB3aWR0aCwgaGVpZ2h0XTtcXG59O1xcbmNvbnN0IGdldFRyYW5zZm9ybUhhbmRsZXNGcm9tQ29vcmRzID0gKFt4MSwgeTEsIHgyLCB5Ml0sIGFuZ2xlLCB6b29tLCBwb2ludGVyVHlwZSwgb21pdFNpZGVzID0ge30pID0+IHtcXG4gICAgY29uc3Qgc2l6ZSA9IHRyYW5zZm9ybUhhbmRsZVNpemVzW3BvaW50ZXJUeXBlXTtcXG4gICAgY29uc3QgaGFuZGxlV2lkdGggPSBzaXplIC8gem9vbS52YWx1ZTtcXG4gICAgY29uc3QgaGFuZGxlSGVpZ2h0ID0gc2l6ZSAvIHpvb20udmFsdWU7XFxuICAgIGNvbnN0IGhhbmRsZU1hcmdpblggPSBzaXplIC8gem9vbS52YWx1ZTtcXG4gICAgY29uc3QgaGFuZGxlTWFyZ2luWSA9IHNpemUgLyB6b29tLnZhbHVlO1xcbiAgICBjb25zdCB3aWR0aCA9IHgyIC0geDE7XFxuICAgIGNvbnN0IGhlaWdodCA9IHkyIC0geTE7XFxuICAgIGNvbnN0IGN4ID0gKHgxICsgeDIpIC8gMjtcXG4gICAgY29uc3QgY3kgPSAoeTEgKyB5MikgLyAyO1xcbiAgICBjb25zdCBkYXNoZWRMaW5lTWFyZ2luID0gNCAvIHpvb20udmFsdWU7XFxuICAgIGNvbnN0IGNlbnRlcmluZ09mZnNldCA9IChzaXplIC0gOCkgLyAoMiAqIHpvb20udmFsdWUpO1xcbiAgICBjb25zdCB0cmFuc2Zvcm1IYW5kbGVzID0ge1xcbiAgICAgICAgbnc6IG9taXRTaWRlcy5ud1xcbiAgICAgICAgICAgID8gdW5kZWZpbmVkXFxuICAgICAgICAgICAgOiBnZW5lcmF0ZVRyYW5zZm9ybUhhbmRsZSh4MSAtIGRhc2hlZExpbmVNYXJnaW4gLSBoYW5kbGVNYXJnaW5YICsgY2VudGVyaW5nT2Zmc2V0LCB5MSAtIGRhc2hlZExpbmVNYXJnaW4gLSBoYW5kbGVNYXJnaW5ZICsgY2VudGVyaW5nT2Zmc2V0LCBoYW5kbGVXaWR0aCwgaGFuZGxlSGVpZ2h0LCBjeCwgY3ksIGFuZ2xlKSxcXG4gICAgICAgIG5lOiBvbWl0U2lkZXMubmVcXG4gICAgICAgICAgICA/IHVuZGVmaW5lZFxcbiAgICAgICAgICAgIDogZ2VuZXJhdGVUcmFuc2Zvcm1IYW5kbGUoeDIgKyBkYXNoZWRMaW5lTWFyZ2luIC0gY2VudGVyaW5nT2Zmc2V0LCB5MSAtIGRhc2hlZExpbmVNYXJnaW4gLSBoYW5kbGVNYXJnaW5ZICsgY2VudGVyaW5nT2Zmc2V0LCBoYW5kbGVXaWR0aCwgaGFuZGxlSGVpZ2h0LCBjeCwgY3ksIGFuZ2xlKSxcXG4gICAgICAgIHN3OiBvbWl0U2lkZXMuc3dcXG4gICAgICAgICAgICA/IHVuZGVmaW5lZFxcbiAgICAgICAgICAgIDogZ2VuZXJhdGVUcmFuc2Zvcm1IYW5kbGUoeDEgLSBkYXNoZWRMaW5lTWFyZ2luIC0gaGFuZGxlTWFyZ2luWCArIGNlbnRlcmluZ09mZnNldCwgeTIgKyBkYXNoZWRMaW5lTWFyZ2luIC0gY2VudGVyaW5nT2Zmc2V0LCBoYW5kbGVXaWR0aCwgaGFuZGxlSGVpZ2h0LCBjeCwgY3ksIGFuZ2xlKSxcXG4gICAgICAgIHNlOiBvbWl0U2lkZXMuc2VcXG4gICAgICAgICAgICA/IHVuZGVmaW5lZFxcbiAgICAgICAgICAgIDogZ2VuZXJhdGVUcmFuc2Zvcm1IYW5kbGUoeDIgKyBkYXNoZWRMaW5lTWFyZ2luIC0gY2VudGVyaW5nT2Zmc2V0LCB5MiArIGRhc2hlZExpbmVNYXJnaW4gLSBjZW50ZXJpbmdPZmZzZXQsIGhhbmRsZVdpZHRoLCBoYW5kbGVIZWlnaHQsIGN4LCBjeSwgYW5nbGUpLFxcbiAgICAgICAgcm90YXRpb246IG9taXRTaWRlcy5yb3RhdGlvblxcbiAgICAgICAgICAgID8gdW5kZWZpbmVkXFxuICAgICAgICAgICAgOiBnZW5lcmF0ZVRyYW5zZm9ybUhhbmRsZSh4MSArIHdpZHRoIC8gMiAtIGhhbmRsZVdpZHRoIC8gMiwgeTEgLVxcbiAgICAgICAgICAgICAgICBkYXNoZWRMaW5lTWFyZ2luIC1cXG4gICAgICAgICAgICAgICAgaGFuZGxlTWFyZ2luWSArXFxuICAgICAgICAgICAgICAgIGNlbnRlcmluZ09mZnNldCAtXFxuICAgICAgICAgICAgICAgIFJPVEFUSU9OX1JFU0laRV9IQU5ETEVfR0FQIC8gem9vbS52YWx1ZSwgaGFuZGxlV2lkdGgsIGhhbmRsZUhlaWdodCwgY3gsIGN5LCBhbmdsZSksXFxuICAgIH07XFxuICAgIC8vIFdlIG9ubHkgd2FudCB0byBzaG93IGhlaWdodCBoYW5kbGVzIChhbGwgY2FyZGluYWwgZGlyZWN0aW9ucykgIGFib3ZlIGEgY2VydGFpbiBzaXplXFxuICAgIC8vIE5vdGU6IHdlIHJlbmRlciB1c2luZyBcXFwibW91c2VcXFwiIHNpemUgc28gd2Ugc2hvdWxkIGFsc28gdXNlIFxcXCJtb3VzZVxcXCIgc2l6ZSBmb3IgdGhpcyBjaGVja1xcbiAgICBjb25zdCBtaW5pbXVtU2l6ZUZvckVpZ2h0SGFuZGxlcyA9ICg1ICogdHJhbnNmb3JtSGFuZGxlU2l6ZXMubW91c2UpIC8gem9vbS52YWx1ZTtcXG4gICAgaWYgKE1hdGguYWJzKHdpZHRoKSA+IG1pbmltdW1TaXplRm9yRWlnaHRIYW5kbGVzKSB7XFxuICAgICAgICBpZiAoIW9taXRTaWRlcy5uKSB7XFxuICAgICAgICAgICAgdHJhbnNmb3JtSGFuZGxlcy5uID0gZ2VuZXJhdGVUcmFuc2Zvcm1IYW5kbGUoeDEgKyB3aWR0aCAvIDIgLSBoYW5kbGVXaWR0aCAvIDIsIHkxIC0gZGFzaGVkTGluZU1hcmdpbiAtIGhhbmRsZU1hcmdpblkgKyBjZW50ZXJpbmdPZmZzZXQsIGhhbmRsZVdpZHRoLCBoYW5kbGVIZWlnaHQsIGN4LCBjeSwgYW5nbGUpO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKCFvbWl0U2lkZXMucykge1xcbiAgICAgICAgICAgIHRyYW5zZm9ybUhhbmRsZXMucyA9IGdlbmVyYXRlVHJhbnNmb3JtSGFuZGxlKHgxICsgd2lkdGggLyAyIC0gaGFuZGxlV2lkdGggLyAyLCB5MiArIGRhc2hlZExpbmVNYXJnaW4gLSBjZW50ZXJpbmdPZmZzZXQsIGhhbmRsZVdpZHRoLCBoYW5kbGVIZWlnaHQsIGN4LCBjeSwgYW5nbGUpO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIGlmIChNYXRoLmFicyhoZWlnaHQpID4gbWluaW11bVNpemVGb3JFaWdodEhhbmRsZXMpIHtcXG4gICAgICAgIGlmICghb21pdFNpZGVzLncpIHtcXG4gICAgICAgICAgICB0cmFuc2Zvcm1IYW5kbGVzLncgPSBnZW5lcmF0ZVRyYW5zZm9ybUhhbmRsZSh4MSAtIGRhc2hlZExpbmVNYXJnaW4gLSBoYW5kbGVNYXJnaW5YICsgY2VudGVyaW5nT2Zmc2V0LCB5MSArIGhlaWdodCAvIDIgLSBoYW5kbGVIZWlnaHQgLyAyLCBoYW5kbGVXaWR0aCwgaGFuZGxlSGVpZ2h0LCBjeCwgY3ksIGFuZ2xlKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmICghb21pdFNpZGVzLmUpIHtcXG4gICAgICAgICAgICB0cmFuc2Zvcm1IYW5kbGVzLmUgPSBnZW5lcmF0ZVRyYW5zZm9ybUhhbmRsZSh4MiArIGRhc2hlZExpbmVNYXJnaW4gLSBjZW50ZXJpbmdPZmZzZXQsIHkxICsgaGVpZ2h0IC8gMiAtIGhhbmRsZUhlaWdodCAvIDIsIGhhbmRsZVdpZHRoLCBoYW5kbGVIZWlnaHQsIGN4LCBjeSwgYW5nbGUpO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiB0cmFuc2Zvcm1IYW5kbGVzO1xcbn07XFxuY29uc3QgZ2V0VHJhbnNmb3JtSGFuZGxlcyA9IChlbGVtZW50LCB6b29tLCBwb2ludGVyVHlwZSA9IFxcXCJtb3VzZVxcXCIpID0+IHtcXG4gICAgbGV0IG9taXRTaWRlcyA9IHt9O1xcbiAgICBpZiAoZWxlbWVudC50eXBlID09PSBcXFwiYXJyb3dcXFwiIHx8XFxuICAgICAgICBlbGVtZW50LnR5cGUgPT09IFxcXCJsaW5lXFxcIiB8fFxcbiAgICAgICAgZWxlbWVudC50eXBlID09PSBcXFwiZnJlZWRyYXdcXFwiKSB7XFxuICAgICAgICBpZiAoZWxlbWVudC5wb2ludHMubGVuZ3RoID09PSAyKSB7XFxuICAgICAgICAgICAgLy8gb25seSBjaGVjayB0aGUgbGFzdCBwb2ludCBiZWNhdXNlIHN0YXJ0aW5nIHBvaW50IGlzIGFsd2F5cyAoMCwwKVxcbiAgICAgICAgICAgIGNvbnN0IFssIHAxXSA9IGVsZW1lbnQucG9pbnRzO1xcbiAgICAgICAgICAgIGlmIChwMVswXSA9PT0gMCB8fCBwMVsxXSA9PT0gMCkge1xcbiAgICAgICAgICAgICAgICBvbWl0U2lkZXMgPSBPTUlUX1NJREVTX0ZPUl9MSU5FX0JBQ0tTTEFTSDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZWxzZSBpZiAocDFbMF0gPiAwICYmIHAxWzFdIDwgMCkge1xcbiAgICAgICAgICAgICAgICBvbWl0U2lkZXMgPSBPTUlUX1NJREVTX0ZPUl9MSU5FX1NMQVNIO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIGlmIChwMVswXSA+IDAgJiYgcDFbMV0gPiAwKSB7XFxuICAgICAgICAgICAgICAgIG9taXRTaWRlcyA9IE9NSVRfU0lERVNfRk9SX0xJTkVfQkFDS1NMQVNIO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIGlmIChwMVswXSA8IDAgJiYgcDFbMV0gPiAwKSB7XFxuICAgICAgICAgICAgICAgIG9taXRTaWRlcyA9IE9NSVRfU0lERVNfRk9SX0xJTkVfU0xBU0g7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2UgaWYgKHAxWzBdIDwgMCAmJiBwMVsxXSA8IDApIHtcXG4gICAgICAgICAgICAgICAgb21pdFNpZGVzID0gT01JVF9TSURFU19GT1JfTElORV9CQUNLU0xBU0g7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIGVsc2UgaWYgKCgwLF9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5pc1RleHRFbGVtZW50KShlbGVtZW50KSkge1xcbiAgICAgICAgb21pdFNpZGVzID0gT01JVF9TSURFU19GT1JfVEVYVF9FTEVNRU5UO1xcbiAgICB9XFxuICAgIHJldHVybiBnZXRUcmFuc2Zvcm1IYW5kbGVzRnJvbUNvb3JkcygoMCxfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzKShlbGVtZW50KSwgZWxlbWVudC5hbmdsZSwgem9vbSwgcG9pbnRlclR5cGUsIG9taXRTaWRlcyk7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlpXeGxiV1Z1ZEM5MGNtRnVjMlp2Y20xSVlXNWtiR1Z6TG5SekxtcHpJaXdpYldGd2NHbHVaM01pT2lJN096czdPenM3T3p0QlFVVTBSRHRCUVVNelFqdEJRVVZETzBGQmIwSnNReXhOUVVGTkxHOUNRVUZ2UWl4SFFVRnRRenRKUVVNelJDeExRVUZMTEVWQlFVVXNRMEZCUXp0SlFVTlNMRWRCUVVjc1JVRkJSU3hGUVVGRk8wbEJRMUFzUzBGQlN5eEZRVUZGTEVWQlFVVTdRMEZEVml4RFFVRkRPMEZCUlVZc1RVRkJUU3d3UWtGQk1FSXNSMEZCUnl4RlFVRkZMRU5CUVVNN1FVRkZMMElzVFVGQlRTeG5RMEZCWjBNc1IwRkJSenRKUVVNNVF5eERRVUZETEVWQlFVVXNTVUZCU1R0SlFVTlFMRU5CUVVNc1JVRkJSU3hKUVVGSk8wbEJRMUFzUTBGQlF5eEZRVUZGTEVsQlFVazdTVUZEVUN4RFFVRkRMRVZCUVVVc1NVRkJTVHREUVVOU0xFTkJRVU03UVVGRlJpeE5RVUZOTERKQ1FVRXlRaXhIUVVGSE8wbEJRMnhETEVOQlFVTXNSVUZCUlN4SlFVRkpPMGxCUTFBc1EwRkJReXhGUVVGRkxFbEJRVWs3U1VGRFVDeERRVUZETEVWQlFVVXNTVUZCU1R0SlFVTlFMRU5CUVVNc1JVRkJSU3hKUVVGSk8wTkJRMUlzUTBGQlF6dEJRVVZHTEUxQlFVMHNlVUpCUVhsQ0xFZEJRVWM3U1VGRGFFTXNRMEZCUXl4RlFVRkZMRWxCUVVrN1NVRkRVQ3hEUVVGRExFVkJRVVVzU1VGQlNUdEpRVU5RTEVOQlFVTXNSVUZCUlN4SlFVRkpPMGxCUTFBc1EwRkJReXhGUVVGRkxFbEJRVWs3U1VGRFVDeEZRVUZGTEVWQlFVVXNTVUZCU1R0SlFVTlNMRVZCUVVVc1JVRkJSU3hKUVVGSk8wTkJRMVFzUTBGQlF6dEJRVVZHTEUxQlFVMHNOa0pCUVRaQ0xFZEJRVWM3U1VGRGNFTXNRMEZCUXl4RlFVRkZMRWxCUVVrN1NVRkRVQ3hEUVVGRExFVkJRVVVzU1VGQlNUdEpRVU5RTEVOQlFVTXNSVUZCUlN4SlFVRkpPMGxCUTFBc1EwRkJReXhGUVVGRkxFbEJRVWs3U1VGRFVDeEZRVUZGTEVWQlFVVXNTVUZCU1R0SlFVTlNMRVZCUVVVc1JVRkJSU3hKUVVGSk8wTkJRMVFzUTBGQlF6dEJRVVZHTEUxQlFVMHNkVUpCUVhWQ0xFZEJRVWNzUTBGRE9VSXNRMEZCVXl4RlFVTlVMRU5CUVZNc1JVRkRWQ3hMUVVGaExFVkJRMklzVFVGQll5eEZRVU5rTEVWQlFWVXNSVUZEVml4RlFVRlZMRVZCUTFZc1MwRkJZU3hGUVVOSkxFVkJRVVU3U1VGRGJrSXNUVUZCVFN4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5dzJRMEZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhMUVVGTExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRWRCUVVjc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1NVRkRkRVVzVDBGQlR5eERRVUZETEVWQlFVVXNSMEZCUnl4TFFVRkxMRWRCUVVjc1EwRkJReXhGUVVGRkxFVkJRVVVzUjBGQlJ5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU14UkN4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxEWkNRVUUyUWl4SFFVRkhMRU5CUXpORExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGVExFVkJRM2hDTEV0QlFXRXNSVUZEWWl4SlFVRlZMRVZCUTFZc1YwRkJkMElzUlVGRGVFSXNXVUZCYzBRc1JVRkJSU3hGUVVOMFF5eEZRVUZGTzBsQlEzQkNMRTFCUVUwc1NVRkJTU3hIUVVGSExHOUNRVUZ2UWl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8wbEJReTlETEUxQlFVMHNWMEZCVnl4SFFVRkhMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETzBsQlEzUkRMRTFCUVUwc1dVRkJXU3hIUVVGSExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRPMGxCUlhaRExFMUJRVTBzWVVGQllTeEhRVUZITEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRM2hETEUxQlFVMHNZVUZCWVN4SFFVRkhMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETzBsQlJYaERMRTFCUVUwc1MwRkJTeXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZEZEVJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXp0SlFVTjJRaXhOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGVrSXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUlhwQ0xFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTTdTVUZGZUVNc1RVRkJUU3hsUVVGbExFZEJRVWNzUTBGQlF5eEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUlhSRUxFMUJRVTBzWjBKQlFXZENMRWRCUVhGQ08xRkJRM3BETEVWQlFVVXNSVUZCUlN4VFFVRlRMRU5CUVVNc1JVRkJSVHRaUVVOa0xFTkJRVU1zUTBGQlF5eFRRVUZUTzFsQlExZ3NRMEZCUXl4RFFVRkRMSFZDUVVGMVFpeERRVU55UWl4RlFVRkZMRWRCUVVjc1owSkJRV2RDTEVkQlFVY3NZVUZCWVN4SFFVRkhMR1ZCUVdVc1JVRkRka1FzUlVGQlJTeEhRVUZITEdkQ1FVRm5RaXhIUVVGSExHRkJRV0VzUjBGQlJ5eGxRVUZsTEVWQlEzWkVMRmRCUVZjc1JVRkRXQ3haUVVGWkxFVkJRMW9zUlVGQlJTeEZRVU5HTEVWQlFVVXNSVUZEUml4TFFVRkxMRU5CUTA0N1VVRkRUQ3hGUVVGRkxFVkJRVVVzVTBGQlV5eERRVUZETEVWQlFVVTdXVUZEWkN4RFFVRkRMRU5CUVVNc1UwRkJVenRaUVVOWUxFTkJRVU1zUTBGQlF5eDFRa0ZCZFVJc1EwRkRja0lzUlVGQlJTeEhRVUZITEdkQ1FVRm5RaXhIUVVGSExHVkJRV1VzUlVGRGRrTXNSVUZCUlN4SFFVRkhMR2RDUVVGblFpeEhRVUZITEdGQlFXRXNSMEZCUnl4bFFVRmxMRVZCUTNaRUxGZEJRVmNzUlVGRFdDeFpRVUZaTEVWQlExb3NSVUZCUlN4RlFVTkdMRVZCUVVVc1JVRkRSaXhMUVVGTExFTkJRMDQ3VVVGRFRDeEZRVUZGTEVWQlFVVXNVMEZCVXl4RFFVRkRMRVZCUVVVN1dVRkRaQ3hEUVVGRExFTkJRVU1zVTBGQlV6dFpRVU5ZTEVOQlFVTXNRMEZCUXl4MVFrRkJkVUlzUTBGRGNrSXNSVUZCUlN4SFFVRkhMR2RDUVVGblFpeEhRVUZITEdGQlFXRXNSMEZCUnl4bFFVRmxMRVZCUTNaRUxFVkJRVVVzUjBGQlJ5eG5Ra0ZCWjBJc1IwRkJSeXhsUVVGbExFVkJRM1pETEZkQlFWY3NSVUZEV0N4WlFVRlpMRVZCUTFvc1JVRkJSU3hGUVVOR0xFVkJRVVVzUlVGRFJpeExRVUZMTEVOQlEwNDdVVUZEVEN4RlFVRkZMRVZCUVVVc1UwRkJVeXhEUVVGRExFVkJRVVU3V1VGRFpDeERRVUZETEVOQlFVTXNVMEZCVXp0WlFVTllMRU5CUVVNc1EwRkJReXgxUWtGQmRVSXNRMEZEY2tJc1JVRkJSU3hIUVVGSExHZENRVUZuUWl4SFFVRkhMR1ZCUVdVc1JVRkRka01zUlVGQlJTeEhRVUZITEdkQ1FVRm5RaXhIUVVGSExHVkJRV1VzUlVGRGRrTXNWMEZCVnl4RlFVTllMRmxCUVZrc1JVRkRXaXhGUVVGRkxFVkJRMFlzUlVGQlJTeEZRVU5HTEV0QlFVc3NRMEZEVGp0UlFVTk1MRkZCUVZFc1JVRkJSU3hUUVVGVExFTkJRVU1zVVVGQlVUdFpRVU14UWl4RFFVRkRMRU5CUVVNc1UwRkJVenRaUVVOWUxFTkJRVU1zUTBGQlF5eDFRa0ZCZFVJc1EwRkRja0lzUlVGQlJTeEhRVUZITEV0QlFVc3NSMEZCUnl4RFFVRkRMRWRCUVVjc1YwRkJWeXhIUVVGSExFTkJRVU1zUlVGRGFFTXNSVUZCUlR0blFrRkRRU3huUWtGQlowSTdaMEpCUTJoQ0xHRkJRV0U3WjBKQlEySXNaVUZCWlR0blFrRkRaaXd3UWtGQk1FSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVONlF5eFhRVUZYTEVWQlExZ3NXVUZCV1N4RlFVTmFMRVZCUVVVc1JVRkRSaXhGUVVGRkxFVkJRMFlzUzBGQlN5eERRVU5PTzB0QlEwNHNRMEZCUXp0SlFVVkdMSE5HUVVGelJqdEpRVU4wUml4MVJrRkJkVVk3U1VGRGRrWXNUVUZCVFN3d1FrRkJNRUlzUjBGRE9VSXNRMEZCUXl4RFFVRkRMRWRCUVVjc2IwSkJRVzlDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF6dEpRVU5vUkN4SlFVRkpMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NNRUpCUVRCQ0xFVkJRVVU3VVVGRGFFUXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFVkJRVVU3V1VGRGFFSXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eEhRVUZITEhWQ1FVRjFRaXhEUVVNeFF5eEZRVUZGTEVkQlFVY3NTMEZCU3l4SFFVRkhMRU5CUVVNc1IwRkJSeXhYUVVGWExFZEJRVWNzUTBGQlF5eEZRVU5vUXl4RlFVRkZMRWRCUVVjc1owSkJRV2RDTEVkQlFVY3NZVUZCWVN4SFFVRkhMR1ZCUVdVc1JVRkRka1FzVjBGQlZ5eEZRVU5ZTEZsQlFWa3NSVUZEV2l4RlFVRkZMRVZCUTBZc1JVRkJSU3hGUVVOR0xFdEJRVXNzUTBGRFRpeERRVUZETzFOQlEwZzdVVUZEUkN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUlVGQlJUdFpRVU5vUWl4blFrRkJaMElzUTBGQlF5eERRVUZETEVkQlFVY3NkVUpCUVhWQ0xFTkJRekZETEVWQlFVVXNSMEZCUnl4TFFVRkxMRWRCUVVjc1EwRkJReXhIUVVGSExGZEJRVmNzUjBGQlJ5eERRVUZETEVWQlEyaERMRVZCUVVVc1IwRkJSeXhuUWtGQlowSXNSMEZCUnl4bFFVRmxMRVZCUTNaRExGZEJRVmNzUlVGRFdDeFpRVUZaTEVWQlExb3NSVUZCUlN4RlFVTkdMRVZCUVVVc1JVRkRSaXhMUVVGTExFTkJRMDRzUTBGQlF6dFRRVU5JTzB0QlEwWTdTVUZEUkN4SlFVRkpMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NNRUpCUVRCQ0xFVkJRVVU3VVVGRGFrUXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFVkJRVVU3V1VGRGFFSXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eEhRVUZITEhWQ1FVRjFRaXhEUVVNeFF5eEZRVUZGTEVkQlFVY3NaMEpCUVdkQ0xFZEJRVWNzWVVGQllTeEhRVUZITEdWQlFXVXNSVUZEZGtRc1JVRkJSU3hIUVVGSExFMUJRVTBzUjBGQlJ5eERRVUZETEVkQlFVY3NXVUZCV1N4SFFVRkhMRU5CUVVNc1JVRkRiRU1zVjBGQlZ5eEZRVU5ZTEZsQlFWa3NSVUZEV2l4RlFVRkZMRVZCUTBZc1JVRkJSU3hGUVVOR0xFdEJRVXNzUTBGRFRpeERRVUZETzFOQlEwZzdVVUZEUkN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUlVGQlJUdFpRVU5vUWl4blFrRkJaMElzUTBGQlF5eERRVUZETEVkQlFVY3NkVUpCUVhWQ0xFTkJRekZETEVWQlFVVXNSMEZCUnl4blFrRkJaMElzUjBGQlJ5eGxRVUZsTEVWQlEzWkRMRVZCUVVVc1IwRkJSeXhOUVVGTkxFZEJRVWNzUTBGQlF5eEhRVUZITEZsQlFWa3NSMEZCUnl4RFFVRkRMRVZCUTJ4RExGZEJRVmNzUlVGRFdDeFpRVUZaTEVWQlExb3NSVUZCUlN4RlFVTkdMRVZCUVVVc1JVRkRSaXhMUVVGTExFTkJRMDRzUTBGQlF6dFRRVU5JTzB0QlEwWTdTVUZGUkN4UFFVRlBMR2RDUVVGblFpeERRVUZETzBGQlF6RkNMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzYlVKQlFXMUNMRWRCUVVjc1EwRkRha01zVDBGQk1FSXNSVUZETVVJc1NVRkJWU3hGUVVOV0xHTkJRVEpDTEU5QlFVOHNSVUZEYUVJc1JVRkJSVHRKUVVOd1FpeEpRVUZKTEZOQlFWTXNSMEZCTmtNc1JVRkJSU3hEUVVGRE8wbEJRemRFTEVsQlEwVXNUMEZCVHl4RFFVRkRMRWxCUVVrc1MwRkJTeXhQUVVGUE8xRkJRM2hDTEU5QlFVOHNRMEZCUXl4SlFVRkpMRXRCUVVzc1RVRkJUVHRSUVVOMlFpeFBRVUZQTEVOQlFVTXNTVUZCU1N4TFFVRkxMRlZCUVZVc1JVRkRNMEk3VVVGRFFTeEpRVUZKTEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU1zUlVGQlJUdFpRVU12UWl4dFJVRkJiVVU3V1VGRGJrVXNUVUZCVFN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXp0WlFVTTVRaXhKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlR0blFrRkRPVUlzVTBGQlV5eEhRVUZITERaQ1FVRTJRaXhEUVVGRE8yRkJRek5ETzJsQ1FVRk5MRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTzJkQ1FVTnFReXhUUVVGVExFZEJRVWNzZVVKQlFYbENMRU5CUVVNN1lVRkRka003YVVKQlFVMHNTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVU3WjBKQlEycERMRk5CUVZNc1IwRkJSeXcyUWtGQk5rSXNRMEZCUXp0aFFVTXpRenRwUWtGQlRTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSVHRuUWtGRGFrTXNVMEZCVXl4SFFVRkhMSGxDUVVGNVFpeERRVUZETzJGQlEzWkRPMmxDUVVGTkxFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZPMmRDUVVOcVF5eFRRVUZUTEVkQlFVY3NOa0pCUVRaQ0xFTkJRVU03WVVGRE0wTTdVMEZEUmp0TFFVTkdPMU5CUVUwc1NVRkJTU3huUkVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZPMUZCUTJwRExGTkJRVk1zUjBGQlJ5d3lRa0ZCTWtJc1EwRkJRenRMUVVONlF6dEpRVVZFTEU5QlFVOHNOa0pCUVRaQ0xFTkJRMnhETEdsRlFVRjNRaXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVU5xUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhGUVVOaUxFbEJRVWtzUlVGRFNpeFhRVUZYTEVWQlExZ3NVMEZCVXl4RFFVTldMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dlpXeGxiV1Z1ZEM5MGNtRnVjMlp2Y20xSVlXNWtiR1Z6TG5SelB6VTFNMklpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5Rc0lGQnZhVzUwWlhKVWVYQmxJSDBnWm5KdmJTQmNJaTR2ZEhsd1pYTmNJanRjYmx4dWFXMXdiM0owSUhzZ1oyVjBSV3hsYldWdWRFRmljMjlzZFhSbFEyOXZjbVJ6TENCQ2IzVnVaSE1nZlNCbWNtOXRJRndpTGk5aWIzVnVaSE5jSWp0Y2JtbHRjRzl5ZENCN0lISnZkR0YwWlNCOUlHWnliMjBnWENJdUxpOXRZWFJvWENJN1hHNXBiWEJ2Y25RZ2V5QmFiMjl0SUgwZ1puSnZiU0JjSWk0dUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5QnBjMVJsZUhSRmJHVnRaVzUwSUgwZ1puSnZiU0JjSWk1Y0lqdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1ZISmhibk5tYjNKdFNHRnVaR3hsUkdseVpXTjBhVzl1SUQxY2JpQWdmQ0JjSW01Y0lseHVJQ0I4SUZ3aWMxd2lYRzRnSUh3Z1hDSjNYQ0pjYmlBZ2ZDQmNJbVZjSWx4dUlDQjhJRndpYm5kY0lseHVJQ0I4SUZ3aWJtVmNJbHh1SUNCOElGd2ljM2RjSWx4dUlDQjhJRndpYzJWY0lqdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1ZISmhibk5tYjNKdFNHRnVaR3hsVkhsd1pTQTlJRlJ5WVc1elptOXliVWhoYm1Sc1pVUnBjbVZqZEdsdmJpQjhJRndpY205MFlYUnBiMjVjSWp0Y2JseHVaWGh3YjNKMElIUjVjR1VnVkhKaGJuTm1iM0p0U0dGdVpHeGxJRDBnVzI1MWJXSmxjaXdnYm5WdFltVnlMQ0J1ZFcxaVpYSXNJRzUxYldKbGNsMDdYRzVsZUhCdmNuUWdkSGx3WlNCVWNtRnVjMlp2Y20xSVlXNWtiR1Z6SUQwZ1VHRnlkR2xoYkR4N1hHNGdJRnRVSUdsdUlGUnlZVzV6Wm05eWJVaGhibVJzWlZSNWNHVmRPaUJVY21GdWMyWnZjbTFJWVc1a2JHVTdYRzU5UGp0Y2JtVjRjRzl5ZENCMGVYQmxJRTFoZVdKbFZISmhibk5tYjNKdFNHRnVaR3hsVkhsd1pTQTlJRlJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1VnZkNCbVlXeHpaVHRjYmx4dVkyOXVjM1FnZEhKaGJuTm1iM0p0U0dGdVpHeGxVMmw2WlhNNklIc2dXMnNnYVc0Z1VHOXBiblJsY2xSNWNHVmRPaUJ1ZFcxaVpYSWdmU0E5SUh0Y2JpQWdiVzkxYzJVNklEZ3NYRzRnSUhCbGJqb2dNVFlzWEc0Z0lIUnZkV05vT2lBeU9DeGNibjA3WEc1Y2JtTnZibk4wSUZKUFZFRlVTVTlPWDFKRlUwbGFSVjlJUVU1RVRFVmZSMEZRSUQwZ01UWTdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQlBUVWxVWDFOSlJFVlRYMFpQVWw5TlZVeFVTVkJNUlY5RlRFVk5SVTVVVXlBOUlIdGNiaUFnWlRvZ2RISjFaU3hjYmlBZ2N6b2dkSEoxWlN4Y2JpQWdiam9nZEhKMVpTeGNiaUFnZHpvZ2RISjFaU3hjYm4wN1hHNWNibU52Ym5OMElFOU5TVlJmVTBsRVJWTmZSazlTWDFSRldGUmZSVXhGVFVWT1ZDQTlJSHRjYmlBZ1pUb2dkSEoxWlN4Y2JpQWdjem9nZEhKMVpTeGNiaUFnYmpvZ2RISjFaU3hjYmlBZ2R6b2dkSEoxWlN4Y2JuMDdYRzVjYm1OdmJuTjBJRTlOU1ZSZlUwbEVSVk5mUms5U1gweEpUa1ZmVTB4QlUwZ2dQU0I3WEc0Z0lHVTZJSFJ5ZFdVc1hHNGdJSE02SUhSeWRXVXNYRzRnSUc0NklIUnlkV1VzWEc0Z0lIYzZJSFJ5ZFdVc1hHNGdJRzUzT2lCMGNuVmxMRnh1SUNCelpUb2dkSEoxWlN4Y2JuMDdYRzVjYm1OdmJuTjBJRTlOU1ZSZlUwbEVSVk5mUms5U1gweEpUa1ZmUWtGRFMxTk1RVk5JSUQwZ2UxeHVJQ0JsT2lCMGNuVmxMRnh1SUNCek9pQjBjblZsTEZ4dUlDQnVPaUIwY25WbExGeHVJQ0IzT2lCMGNuVmxMRnh1SUNCdVpUb2dkSEoxWlN4Y2JpQWdjM2M2SUhSeWRXVXNYRzU5TzF4dVhHNWpiMjV6ZENCblpXNWxjbUYwWlZSeVlXNXpabTl5YlVoaGJtUnNaU0E5SUNoY2JpQWdlRG9nYm5WdFltVnlMRnh1SUNCNU9pQnVkVzFpWlhJc1hHNGdJSGRwWkhSb09pQnVkVzFpWlhJc1hHNGdJR2hsYVdkb2REb2diblZ0WW1WeUxGeHVJQ0JqZURvZ2JuVnRZbVZ5TEZ4dUlDQmplVG9nYm5WdFltVnlMRnh1SUNCaGJtZHNaVG9nYm5WdFltVnlMRnh1S1RvZ1ZISmhibk5tYjNKdFNHRnVaR3hsSUQwK0lIdGNiaUFnWTI5dWMzUWdXM2g0TENCNWVWMGdQU0J5YjNSaGRHVW9lQ0FySUhkcFpIUm9JQzhnTWl3Z2VTQXJJR2hsYVdkb2RDQXZJRElzSUdONExDQmplU3dnWVc1bmJHVXBPMXh1SUNCeVpYUjFjbTRnVzNoNElDMGdkMmxrZEdnZ0x5QXlMQ0I1ZVNBdElHaGxhV2RvZENBdklESXNJSGRwWkhSb0xDQm9aV2xuYUhSZE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2RsZEZSeVlXNXpabTl5YlVoaGJtUnNaWE5HY205dFEyOXZjbVJ6SUQwZ0tGeHVJQ0JiZURFc0lIa3hMQ0I0TWl3Z2VUSmRPaUJDYjNWdVpITXNYRzRnSUdGdVoyeGxPaUJ1ZFcxaVpYSXNYRzRnSUhwdmIyMDZJRnB2YjIwc1hHNGdJSEJ2YVc1MFpYSlVlWEJsT2lCUWIybHVkR1Z5Vkhsd1pTeGNiaUFnYjIxcGRGTnBaR1Z6T2lCN0lGdFVJR2x1SUZSeVlXNXpabTl5YlVoaGJtUnNaVlI1Y0dWZFB6b2dZbTl2YkdWaGJpQjlJRDBnZTMwc1hHNHBPaUJVY21GdWMyWnZjbTFJWVc1a2JHVnpJRDArSUh0Y2JpQWdZMjl1YzNRZ2MybDZaU0E5SUhSeVlXNXpabTl5YlVoaGJtUnNaVk5wZW1WelczQnZhVzUwWlhKVWVYQmxYVHRjYmlBZ1kyOXVjM1FnYUdGdVpHeGxWMmxrZEdnZ1BTQnphWHBsSUM4Z2VtOXZiUzUyWVd4MVpUdGNiaUFnWTI5dWMzUWdhR0Z1Wkd4bFNHVnBaMmgwSUQwZ2MybDZaU0F2SUhwdmIyMHVkbUZzZFdVN1hHNWNiaUFnWTI5dWMzUWdhR0Z1Wkd4bFRXRnlaMmx1V0NBOUlITnBlbVVnTHlCNmIyOXRMblpoYkhWbE8xeHVJQ0JqYjI1emRDQm9ZVzVrYkdWTllYSm5hVzVaSUQwZ2MybDZaU0F2SUhwdmIyMHVkbUZzZFdVN1hHNWNiaUFnWTI5dWMzUWdkMmxrZEdnZ1BTQjRNaUF0SUhneE8xeHVJQ0JqYjI1emRDQm9aV2xuYUhRZ1BTQjVNaUF0SUhreE8xeHVJQ0JqYjI1emRDQmplQ0E5SUNoNE1TQXJJSGd5S1NBdklESTdYRzRnSUdOdmJuTjBJR041SUQwZ0tIa3hJQ3NnZVRJcElDOGdNanRjYmx4dUlDQmpiMjV6ZENCa1lYTm9aV1JNYVc1bFRXRnlaMmx1SUQwZ05DQXZJSHB2YjIwdWRtRnNkV1U3WEc1Y2JpQWdZMjl1YzNRZ1kyVnVkR1Z5YVc1blQyWm1jMlYwSUQwZ0tITnBlbVVnTFNBNEtTQXZJQ2d5SUNvZ2VtOXZiUzUyWVd4MVpTazdYRzVjYmlBZ1kyOXVjM1FnZEhKaGJuTm1iM0p0U0dGdVpHeGxjem9nVkhKaGJuTm1iM0p0U0dGdVpHeGxjeUE5SUh0Y2JpQWdJQ0J1ZHpvZ2IyMXBkRk5wWkdWekxtNTNYRzRnSUNBZ0lDQS9JSFZ1WkdWbWFXNWxaRnh1SUNBZ0lDQWdPaUJuWlc1bGNtRjBaVlJ5WVc1elptOXliVWhoYm1Sc1pTaGNiaUFnSUNBZ0lDQWdJQ0I0TVNBdElHUmhjMmhsWkV4cGJtVk5ZWEpuYVc0Z0xTQm9ZVzVrYkdWTllYSm5hVzVZSUNzZ1kyVnVkR1Z5YVc1blQyWm1jMlYwTEZ4dUlDQWdJQ0FnSUNBZ0lIa3hJQzBnWkdGemFHVmtUR2x1WlUxaGNtZHBiaUF0SUdoaGJtUnNaVTFoY21kcGJsa2dLeUJqWlc1MFpYSnBibWRQWm1aelpYUXNYRzRnSUNBZ0lDQWdJQ0FnYUdGdVpHeGxWMmxrZEdnc1hHNGdJQ0FnSUNBZ0lDQWdhR0Z1Wkd4bFNHVnBaMmgwTEZ4dUlDQWdJQ0FnSUNBZ0lHTjRMRnh1SUNBZ0lDQWdJQ0FnSUdONUxGeHVJQ0FnSUNBZ0lDQWdJR0Z1WjJ4bExGeHVJQ0FnSUNBZ0lDQXBMRnh1SUNBZ0lHNWxPaUJ2YldsMFUybGtaWE11Ym1WY2JpQWdJQ0FnSUQ4Z2RXNWtaV1pwYm1Wa1hHNGdJQ0FnSUNBNklHZGxibVZ5WVhSbFZISmhibk5tYjNKdFNHRnVaR3hsS0Z4dUlDQWdJQ0FnSUNBZ0lIZ3lJQ3NnWkdGemFHVmtUR2x1WlUxaGNtZHBiaUF0SUdObGJuUmxjbWx1WjA5bVpuTmxkQ3hjYmlBZ0lDQWdJQ0FnSUNCNU1TQXRJR1JoYzJobFpFeHBibVZOWVhKbmFXNGdMU0JvWVc1a2JHVk5ZWEpuYVc1WklDc2dZMlZ1ZEdWeWFXNW5UMlptYzJWMExGeHVJQ0FnSUNBZ0lDQWdJR2hoYm1Sc1pWZHBaSFJvTEZ4dUlDQWdJQ0FnSUNBZ0lHaGhibVJzWlVobGFXZG9kQ3hjYmlBZ0lDQWdJQ0FnSUNCamVDeGNiaUFnSUNBZ0lDQWdJQ0JqZVN4Y2JpQWdJQ0FnSUNBZ0lDQmhibWRzWlN4Y2JpQWdJQ0FnSUNBZ0tTeGNiaUFnSUNCemR6b2diMjFwZEZOcFpHVnpMbk4zWEc0Z0lDQWdJQ0EvSUhWdVpHVm1hVzVsWkZ4dUlDQWdJQ0FnT2lCblpXNWxjbUYwWlZSeVlXNXpabTl5YlVoaGJtUnNaU2hjYmlBZ0lDQWdJQ0FnSUNCNE1TQXRJR1JoYzJobFpFeHBibVZOWVhKbmFXNGdMU0JvWVc1a2JHVk5ZWEpuYVc1WUlDc2dZMlZ1ZEdWeWFXNW5UMlptYzJWMExGeHVJQ0FnSUNBZ0lDQWdJSGt5SUNzZ1pHRnphR1ZrVEdsdVpVMWhjbWRwYmlBdElHTmxiblJsY21sdVowOW1abk5sZEN4Y2JpQWdJQ0FnSUNBZ0lDQm9ZVzVrYkdWWGFXUjBhQ3hjYmlBZ0lDQWdJQ0FnSUNCb1lXNWtiR1ZJWldsbmFIUXNYRzRnSUNBZ0lDQWdJQ0FnWTNnc1hHNGdJQ0FnSUNBZ0lDQWdZM2tzWEc0Z0lDQWdJQ0FnSUNBZ1lXNW5iR1VzWEc0Z0lDQWdJQ0FnSUNrc1hHNGdJQ0FnYzJVNklHOXRhWFJUYVdSbGN5NXpaVnh1SUNBZ0lDQWdQeUIxYm1SbFptbHVaV1JjYmlBZ0lDQWdJRG9nWjJWdVpYSmhkR1ZVY21GdWMyWnZjbTFJWVc1a2JHVW9YRzRnSUNBZ0lDQWdJQ0FnZURJZ0t5QmtZWE5vWldSTWFXNWxUV0Z5WjJsdUlDMGdZMlZ1ZEdWeWFXNW5UMlptYzJWMExGeHVJQ0FnSUNBZ0lDQWdJSGt5SUNzZ1pHRnphR1ZrVEdsdVpVMWhjbWRwYmlBdElHTmxiblJsY21sdVowOW1abk5sZEN4Y2JpQWdJQ0FnSUNBZ0lDQm9ZVzVrYkdWWGFXUjBhQ3hjYmlBZ0lDQWdJQ0FnSUNCb1lXNWtiR1ZJWldsbmFIUXNYRzRnSUNBZ0lDQWdJQ0FnWTNnc1hHNGdJQ0FnSUNBZ0lDQWdZM2tzWEc0Z0lDQWdJQ0FnSUNBZ1lXNW5iR1VzWEc0Z0lDQWdJQ0FnSUNrc1hHNGdJQ0FnY205MFlYUnBiMjQ2SUc5dGFYUlRhV1JsY3k1eWIzUmhkR2x2Ymx4dUlDQWdJQ0FnUHlCMWJtUmxabWx1WldSY2JpQWdJQ0FnSURvZ1oyVnVaWEpoZEdWVWNtRnVjMlp2Y20xSVlXNWtiR1VvWEc0Z0lDQWdJQ0FnSUNBZ2VERWdLeUIzYVdSMGFDQXZJRElnTFNCb1lXNWtiR1ZYYVdSMGFDQXZJRElzWEc0Z0lDQWdJQ0FnSUNBZ2VURWdMVnh1SUNBZ0lDQWdJQ0FnSUNBZ1pHRnphR1ZrVEdsdVpVMWhjbWRwYmlBdFhHNGdJQ0FnSUNBZ0lDQWdJQ0JvWVc1a2JHVk5ZWEpuYVc1WklDdGNiaUFnSUNBZ0lDQWdJQ0FnSUdObGJuUmxjbWx1WjA5bVpuTmxkQ0F0WEc0Z0lDQWdJQ0FnSUNBZ0lDQlNUMVJCVkVsUFRsOVNSVk5KV2tWZlNFRk9SRXhGWDBkQlVDQXZJSHB2YjIwdWRtRnNkV1VzWEc0Z0lDQWdJQ0FnSUNBZ2FHRnVaR3hsVjJsa2RHZ3NYRzRnSUNBZ0lDQWdJQ0FnYUdGdVpHeGxTR1ZwWjJoMExGeHVJQ0FnSUNBZ0lDQWdJR040TEZ4dUlDQWdJQ0FnSUNBZ0lHTjVMRnh1SUNBZ0lDQWdJQ0FnSUdGdVoyeGxMRnh1SUNBZ0lDQWdJQ0FwTEZ4dUlDQjlPMXh1WEc0Z0lDOHZJRmRsSUc5dWJIa2dkMkZ1ZENCMGJ5QnphRzkzSUdobGFXZG9kQ0JvWVc1a2JHVnpJQ2hoYkd3Z1kyRnlaR2x1WVd3Z1pHbHlaV04wYVc5dWN5a2dJR0ZpYjNabElHRWdZMlZ5ZEdGcGJpQnphWHBsWEc0Z0lDOHZJRTV2ZEdVNklIZGxJSEpsYm1SbGNpQjFjMmx1WnlCY0ltMXZkWE5sWENJZ2MybDZaU0J6YnlCM1pTQnphRzkxYkdRZ1lXeHpieUIxYzJVZ1hDSnRiM1Z6WlZ3aUlITnBlbVVnWm05eUlIUm9hWE1nWTJobFkydGNiaUFnWTI5dWMzUWdiV2x1YVcxMWJWTnBlbVZHYjNKRmFXZG9kRWhoYm1Sc1pYTWdQVnh1SUNBZ0lDZzFJQ29nZEhKaGJuTm1iM0p0U0dGdVpHeGxVMmw2WlhNdWJXOTFjMlVwSUM4Z2VtOXZiUzUyWVd4MVpUdGNiaUFnYVdZZ0tFMWhkR2d1WVdKektIZHBaSFJvS1NBK0lHMXBibWx0ZFcxVGFYcGxSbTl5UldsbmFIUklZVzVrYkdWektTQjdYRzRnSUNBZ2FXWWdLQ0Z2YldsMFUybGtaWE11YmlrZ2UxeHVJQ0FnSUNBZ2RISmhibk5tYjNKdFNHRnVaR3hsY3k1dUlEMGdaMlZ1WlhKaGRHVlVjbUZ1YzJadmNtMUlZVzVrYkdVb1hHNGdJQ0FnSUNBZ0lIZ3hJQ3NnZDJsa2RHZ2dMeUF5SUMwZ2FHRnVaR3hsVjJsa2RHZ2dMeUF5TEZ4dUlDQWdJQ0FnSUNCNU1TQXRJR1JoYzJobFpFeHBibVZOWVhKbmFXNGdMU0JvWVc1a2JHVk5ZWEpuYVc1WklDc2dZMlZ1ZEdWeWFXNW5UMlptYzJWMExGeHVJQ0FnSUNBZ0lDQm9ZVzVrYkdWWGFXUjBhQ3hjYmlBZ0lDQWdJQ0FnYUdGdVpHeGxTR1ZwWjJoMExGeHVJQ0FnSUNBZ0lDQmplQ3hjYmlBZ0lDQWdJQ0FnWTNrc1hHNGdJQ0FnSUNBZ0lHRnVaMnhsTEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0NGdmJXbDBVMmxrWlhNdWN5a2dlMXh1SUNBZ0lDQWdkSEpoYm5ObWIzSnRTR0Z1Wkd4bGN5NXpJRDBnWjJWdVpYSmhkR1ZVY21GdWMyWnZjbTFJWVc1a2JHVW9YRzRnSUNBZ0lDQWdJSGd4SUNzZ2QybGtkR2dnTHlBeUlDMGdhR0Z1Wkd4bFYybGtkR2dnTHlBeUxGeHVJQ0FnSUNBZ0lDQjVNaUFySUdSaGMyaGxaRXhwYm1WTllYSm5hVzRnTFNCalpXNTBaWEpwYm1kUFptWnpaWFFzWEc0Z0lDQWdJQ0FnSUdoaGJtUnNaVmRwWkhSb0xGeHVJQ0FnSUNBZ0lDQm9ZVzVrYkdWSVpXbG5hSFFzWEc0Z0lDQWdJQ0FnSUdONExGeHVJQ0FnSUNBZ0lDQmplU3hjYmlBZ0lDQWdJQ0FnWVc1bmJHVXNYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dUlDQnBaaUFvVFdGMGFDNWhZbk1vYUdWcFoyaDBLU0ErSUcxcGJtbHRkVzFUYVhwbFJtOXlSV2xuYUhSSVlXNWtiR1Z6S1NCN1hHNGdJQ0FnYVdZZ0tDRnZiV2wwVTJsa1pYTXVkeWtnZTF4dUlDQWdJQ0FnZEhKaGJuTm1iM0p0U0dGdVpHeGxjeTUzSUQwZ1oyVnVaWEpoZEdWVWNtRnVjMlp2Y20xSVlXNWtiR1VvWEc0Z0lDQWdJQ0FnSUhneElDMGdaR0Z6YUdWa1RHbHVaVTFoY21kcGJpQXRJR2hoYm1Sc1pVMWhjbWRwYmxnZ0t5QmpaVzUwWlhKcGJtZFBabVp6WlhRc1hHNGdJQ0FnSUNBZ0lIa3hJQ3NnYUdWcFoyaDBJQzhnTWlBdElHaGhibVJzWlVobGFXZG9kQ0F2SURJc1hHNGdJQ0FnSUNBZ0lHaGhibVJzWlZkcFpIUm9MRnh1SUNBZ0lDQWdJQ0JvWVc1a2JHVklaV2xuYUhRc1hHNGdJQ0FnSUNBZ0lHTjRMRnh1SUNBZ0lDQWdJQ0JqZVN4Y2JpQWdJQ0FnSUNBZ1lXNW5iR1VzWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvSVc5dGFYUlRhV1JsY3k1bEtTQjdYRzRnSUNBZ0lDQjBjbUZ1YzJadmNtMUlZVzVrYkdWekxtVWdQU0JuWlc1bGNtRjBaVlJ5WVc1elptOXliVWhoYm1Sc1pTaGNiaUFnSUNBZ0lDQWdlRElnS3lCa1lYTm9aV1JNYVc1bFRXRnlaMmx1SUMwZ1kyVnVkR1Z5YVc1blQyWm1jMlYwTEZ4dUlDQWdJQ0FnSUNCNU1TQXJJR2hsYVdkb2RDQXZJRElnTFNCb1lXNWtiR1ZJWldsbmFIUWdMeUF5TEZ4dUlDQWdJQ0FnSUNCb1lXNWtiR1ZYYVdSMGFDeGNiaUFnSUNBZ0lDQWdhR0Z1Wkd4bFNHVnBaMmgwTEZ4dUlDQWdJQ0FnSUNCamVDeGNiaUFnSUNBZ0lDQWdZM2tzWEc0Z0lDQWdJQ0FnSUdGdVoyeGxMRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdkSEpoYm5ObWIzSnRTR0Z1Wkd4bGN6dGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JuWlhSVWNtRnVjMlp2Y20xSVlXNWtiR1Z6SUQwZ0tGeHVJQ0JsYkdWdFpXNTBPaUJGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ3hjYmlBZ2VtOXZiVG9nV205dmJTeGNiaUFnY0c5cGJuUmxjbFI1Y0dVNklGQnZhVzUwWlhKVWVYQmxJRDBnWENKdGIzVnpaVndpTEZ4dUtUb2dWSEpoYm5ObWIzSnRTR0Z1Wkd4bGN5QTlQaUI3WEc0Z0lHeGxkQ0J2YldsMFUybGtaWE02SUhzZ1cxUWdhVzRnVkhKaGJuTm1iM0p0U0dGdVpHeGxWSGx3WlYwL09pQmliMjlzWldGdUlIMGdQU0I3ZlR0Y2JpQWdhV1lnS0Z4dUlDQWdJR1ZzWlcxbGJuUXVkSGx3WlNBOVBUMGdYQ0poY25KdmQxd2lJSHg4WEc0Z0lDQWdaV3hsYldWdWRDNTBlWEJsSUQwOVBTQmNJbXhwYm1WY0lpQjhmRnh1SUNBZ0lHVnNaVzFsYm5RdWRIbHdaU0E5UFQwZ1hDSm1jbVZsWkhKaGQxd2lYRzRnSUNrZ2UxeHVJQ0FnSUdsbUlDaGxiR1Z0Wlc1MExuQnZhVzUwY3k1c1pXNW5kR2dnUFQwOUlESXBJSHRjYmlBZ0lDQWdJQzh2SUc5dWJIa2dZMmhsWTJzZ2RHaGxJR3hoYzNRZ2NHOXBiblFnWW1WallYVnpaU0J6ZEdGeWRHbHVaeUJ3YjJsdWRDQnBjeUJoYkhkaGVYTWdLREFzTUNsY2JpQWdJQ0FnSUdOdmJuTjBJRnNzSUhBeFhTQTlJR1ZzWlcxbGJuUXVjRzlwYm5Sek8xeHVJQ0FnSUNBZ2FXWWdLSEF4V3pCZElEMDlQU0F3SUh4OElIQXhXekZkSUQwOVBTQXdLU0I3WEc0Z0lDQWdJQ0FnSUc5dGFYUlRhV1JsY3lBOUlFOU5TVlJmVTBsRVJWTmZSazlTWDB4SlRrVmZRa0ZEUzFOTVFWTklPMXh1SUNBZ0lDQWdmU0JsYkhObElHbG1JQ2h3TVZzd1hTQStJREFnSmlZZ2NERmJNVjBnUENBd0tTQjdYRzRnSUNBZ0lDQWdJRzl0YVhSVGFXUmxjeUE5SUU5TlNWUmZVMGxFUlZOZlJrOVNYMHhKVGtWZlUweEJVMGc3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0hBeFd6QmRJRDRnTUNBbUppQndNVnN4WFNBK0lEQXBJSHRjYmlBZ0lDQWdJQ0FnYjIxcGRGTnBaR1Z6SUQwZ1QwMUpWRjlUU1VSRlUxOUdUMUpmVEVsT1JWOUNRVU5MVTB4QlUwZzdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLSEF4V3pCZElEd2dNQ0FtSmlCd01Wc3hYU0ErSURBcElIdGNiaUFnSUNBZ0lDQWdiMjFwZEZOcFpHVnpJRDBnVDAxSlZGOVRTVVJGVTE5R1QxSmZURWxPUlY5VFRFRlRTRHRjYmlBZ0lDQWdJSDBnWld4elpTQnBaaUFvY0RGYk1GMGdQQ0F3SUNZbUlIQXhXekZkSUR3Z01Da2dlMXh1SUNBZ0lDQWdJQ0J2YldsMFUybGtaWE1nUFNCUFRVbFVYMU5KUkVWVFgwWlBVbDlNU1U1RlgwSkJRMHRUVEVGVFNEdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDBnWld4elpTQnBaaUFvYVhOVVpYaDBSV3hsYldWdWRDaGxiR1Z0Wlc1MEtTa2dlMXh1SUNBZ0lHOXRhWFJUYVdSbGN5QTlJRTlOU1ZSZlUwbEVSVk5mUms5U1gxUkZXRlJmUlV4RlRVVk9WRHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJuWlhSVWNtRnVjMlp2Y20xSVlXNWtiR1Z6Um5KdmJVTnZiM0prY3loY2JpQWdJQ0JuWlhSRmJHVnRaVzUwUVdKemIyeDFkR1ZEYjI5eVpITW9aV3hsYldWdWRDa3NYRzRnSUNBZ1pXeGxiV1Z1ZEM1aGJtZHNaU3hjYmlBZ0lDQjZiMjl0TEZ4dUlDQWdJSEJ2YVc1MFpYSlVlWEJsTEZ4dUlDQWdJRzl0YVhSVGFXUmxjeXhjYmlBZ0tUdGNibjA3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZWxlbWVudC90cmFuc2Zvcm1IYW5kbGVzLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9lbGVtZW50L3R5cGVDaGVja3MudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2VsZW1lbnQvdHlwZUNoZWNrcy50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzR2VuZXJpY0VsZW1lbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpc0dlbmVyaWNFbGVtZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpc0luaXRpYWxpemVkSW1hZ2VFbGVtZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNJbml0aWFsaXplZEltYWdlRWxlbWVudCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNJbWFnZUVsZW1lbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpc0ltYWdlRWxlbWVudCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNUZXh0RWxlbWVudFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlzVGV4dEVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzRnJlZURyYXdFbGVtZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNGcmVlRHJhd0VsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzRnJlZURyYXdFbGVtZW50VHlwZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlzRnJlZURyYXdFbGVtZW50VHlwZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNMaW5lYXJFbGVtZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNMaW5lYXJFbGVtZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpc0xpbmVhckVsZW1lbnRUeXBlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNMaW5lYXJFbGVtZW50VHlwZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNCaW5kaW5nRWxlbWVudFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlzQmluZGluZ0VsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzQmluZGluZ0VsZW1lbnRUeXBlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNCaW5kaW5nRWxlbWVudFR5cGUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzQmluZGFibGVFbGVtZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNCaW5kYWJsZUVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzVGV4dEJpbmRhYmxlQ29udGFpbmVyXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNUZXh0QmluZGFibGVDb250YWluZXIpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzRXhjYWxpZHJhd0VsZW1lbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpc0V4Y2FsaWRyYXdFbGVtZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJoYXNCb3VuZFRleHRFbGVtZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaGFzQm91bmRUZXh0RWxlbWVudCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNCb3VuZFRvQ29udGFpbmVyXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNCb3VuZFRvQ29udGFpbmVyKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbmNvbnN0IGlzR2VuZXJpY0VsZW1lbnQgPSAoZWxlbWVudCkgPT4ge1xcbiAgICByZXR1cm4gKGVsZW1lbnQgIT0gbnVsbCAmJlxcbiAgICAgICAgKGVsZW1lbnQudHlwZSA9PT0gXFxcInNlbGVjdGlvblxcXCIgfHxcXG4gICAgICAgICAgICBlbGVtZW50LnR5cGUgPT09IFxcXCJyZWN0YW5nbGVcXFwiIHx8XFxuICAgICAgICAgICAgZWxlbWVudC50eXBlID09PSBcXFwiZGlhbW9uZFxcXCIgfHxcXG4gICAgICAgICAgICBlbGVtZW50LnR5cGUgPT09IFxcXCJlbGxpcHNlXFxcIikpO1xcbn07XFxuY29uc3QgaXNJbml0aWFsaXplZEltYWdlRWxlbWVudCA9IChlbGVtZW50KSA9PiB7XFxuICAgIHJldHVybiAhIWVsZW1lbnQgJiYgZWxlbWVudC50eXBlID09PSBcXFwiaW1hZ2VcXFwiICYmICEhZWxlbWVudC5maWxlSWQ7XFxufTtcXG5jb25zdCBpc0ltYWdlRWxlbWVudCA9IChlbGVtZW50KSA9PiB7XFxuICAgIHJldHVybiAhIWVsZW1lbnQgJiYgZWxlbWVudC50eXBlID09PSBcXFwiaW1hZ2VcXFwiO1xcbn07XFxuY29uc3QgaXNUZXh0RWxlbWVudCA9IChlbGVtZW50KSA9PiB7XFxuICAgIHJldHVybiBlbGVtZW50ICE9IG51bGwgJiYgZWxlbWVudC50eXBlID09PSBcXFwidGV4dFxcXCI7XFxufTtcXG5jb25zdCBpc0ZyZWVEcmF3RWxlbWVudCA9IChlbGVtZW50KSA9PiB7XFxuICAgIHJldHVybiBlbGVtZW50ICE9IG51bGwgJiYgaXNGcmVlRHJhd0VsZW1lbnRUeXBlKGVsZW1lbnQudHlwZSk7XFxufTtcXG5jb25zdCBpc0ZyZWVEcmF3RWxlbWVudFR5cGUgPSAoZWxlbWVudFR5cGUpID0+IHtcXG4gICAgcmV0dXJuIGVsZW1lbnRUeXBlID09PSBcXFwiZnJlZWRyYXdcXFwiO1xcbn07XFxuY29uc3QgaXNMaW5lYXJFbGVtZW50ID0gKGVsZW1lbnQpID0+IHtcXG4gICAgcmV0dXJuIGVsZW1lbnQgIT0gbnVsbCAmJiBpc0xpbmVhckVsZW1lbnRUeXBlKGVsZW1lbnQudHlwZSk7XFxufTtcXG5jb25zdCBpc0xpbmVhckVsZW1lbnRUeXBlID0gKGVsZW1lbnRUeXBlKSA9PiB7XFxuICAgIHJldHVybiAoZWxlbWVudFR5cGUgPT09IFxcXCJhcnJvd1xcXCIgfHwgZWxlbWVudFR5cGUgPT09IFxcXCJsaW5lXFxcIiAvLyB8fCBlbGVtZW50VHlwZSA9PT0gXFxcImZyZWVkcmF3XFxcIlxcbiAgICApO1xcbn07XFxuY29uc3QgaXNCaW5kaW5nRWxlbWVudCA9IChlbGVtZW50KSA9PiB7XFxuICAgIHJldHVybiBlbGVtZW50ICE9IG51bGwgJiYgaXNCaW5kaW5nRWxlbWVudFR5cGUoZWxlbWVudC50eXBlKTtcXG59O1xcbmNvbnN0IGlzQmluZGluZ0VsZW1lbnRUeXBlID0gKGVsZW1lbnRUeXBlKSA9PiB7XFxuICAgIHJldHVybiBlbGVtZW50VHlwZSA9PT0gXFxcImFycm93XFxcIjtcXG59O1xcbmNvbnN0IGlzQmluZGFibGVFbGVtZW50ID0gKGVsZW1lbnQpID0+IHtcXG4gICAgcmV0dXJuIChlbGVtZW50ICE9IG51bGwgJiZcXG4gICAgICAgIChlbGVtZW50LnR5cGUgPT09IFxcXCJyZWN0YW5nbGVcXFwiIHx8XFxuICAgICAgICAgICAgZWxlbWVudC50eXBlID09PSBcXFwiZGlhbW9uZFxcXCIgfHxcXG4gICAgICAgICAgICBlbGVtZW50LnR5cGUgPT09IFxcXCJlbGxpcHNlXFxcIiB8fFxcbiAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9PT0gXFxcImltYWdlXFxcIiB8fFxcbiAgICAgICAgICAgIChlbGVtZW50LnR5cGUgPT09IFxcXCJ0ZXh0XFxcIiAmJiAhZWxlbWVudC5jb250YWluZXJJZCkpKTtcXG59O1xcbmNvbnN0IGlzVGV4dEJpbmRhYmxlQ29udGFpbmVyID0gKGVsZW1lbnQpID0+IHtcXG4gICAgcmV0dXJuIChlbGVtZW50ICE9IG51bGwgJiZcXG4gICAgICAgIChlbGVtZW50LnR5cGUgPT09IFxcXCJyZWN0YW5nbGVcXFwiIHx8XFxuICAgICAgICAgICAgZWxlbWVudC50eXBlID09PSBcXFwiZGlhbW9uZFxcXCIgfHxcXG4gICAgICAgICAgICBlbGVtZW50LnR5cGUgPT09IFxcXCJlbGxpcHNlXFxcIiB8fFxcbiAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9PT0gXFxcImltYWdlXFxcIikpO1xcbn07XFxuY29uc3QgaXNFeGNhbGlkcmF3RWxlbWVudCA9IChlbGVtZW50KSA9PiB7XFxuICAgIHJldHVybiAoKGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZWxlbWVudC50eXBlKSA9PT0gXFxcInRleHRcXFwiIHx8XFxuICAgICAgICAoZWxlbWVudCA9PT0gbnVsbCB8fCBlbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbGVtZW50LnR5cGUpID09PSBcXFwiZGlhbW9uZFxcXCIgfHxcXG4gICAgICAgIChlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVsZW1lbnQudHlwZSkgPT09IFxcXCJyZWN0YW5nbGVcXFwiIHx8XFxuICAgICAgICAoZWxlbWVudCA9PT0gbnVsbCB8fCBlbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbGVtZW50LnR5cGUpID09PSBcXFwiZWxsaXBzZVxcXCIgfHxcXG4gICAgICAgIChlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVsZW1lbnQudHlwZSkgPT09IFxcXCJhcnJvd1xcXCIgfHxcXG4gICAgICAgIChlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVsZW1lbnQudHlwZSkgPT09IFxcXCJmcmVlZHJhd1xcXCIgfHxcXG4gICAgICAgIChlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVsZW1lbnQudHlwZSkgPT09IFxcXCJsaW5lXFxcIik7XFxufTtcXG5jb25zdCBoYXNCb3VuZFRleHRFbGVtZW50ID0gKGVsZW1lbnQpID0+IHtcXG4gICAgdmFyIF9hO1xcbiAgICByZXR1cm4gKGlzQmluZGFibGVFbGVtZW50KGVsZW1lbnQpICYmXFxuICAgICAgICAhISgoX2EgPSBlbGVtZW50LmJvdW5kRWxlbWVudHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zb21lKCh7IHR5cGUgfSkgPT4gdHlwZSA9PT0gXFxcInRleHRcXFwiKSkpO1xcbn07XFxuY29uc3QgaXNCb3VuZFRvQ29udGFpbmVyID0gKGVsZW1lbnQpID0+IHtcXG4gICAgcmV0dXJuIChlbGVtZW50ICE9PSBudWxsICYmIGlzVGV4dEVsZW1lbnQoZWxlbWVudCkgJiYgZWxlbWVudC5jb250YWluZXJJZCAhPT0gbnVsbCk7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlpXeGxiV1Z1ZEM5MGVYQmxRMmhsWTJ0ekxuUnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPenM3T3pzN096dEJRVmxQTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzUTBGRE9VSXNUMEZCYVVNc1JVRkRTU3hGUVVGRk8wbEJRM1pETEU5QlFVOHNRMEZEVEN4UFFVRlBMRWxCUVVrc1NVRkJTVHRSUVVObUxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NTMEZCU3l4WFFVRlhPMWxCUXpOQ0xFOUJRVThzUTBGQlF5eEpRVUZKTEV0QlFVc3NWMEZCVnp0WlFVTTFRaXhQUVVGUExFTkJRVU1zU1VGQlNTeExRVUZMTEZOQlFWTTdXVUZETVVJc1QwRkJUeXhEUVVGRExFbEJRVWtzUzBGQlN5eFRRVUZUTEVOQlFVTXNRMEZET1VJc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNlVUpCUVhsQ0xFZEJRVWNzUTBGRGRrTXNUMEZCYVVNc1JVRkRZU3hGUVVGRk8wbEJRMmhFTEU5QlFVOHNRMEZCUXl4RFFVRkRMRTlCUVU4c1NVRkJTU3hQUVVGUExFTkJRVU1zU1VGQlNTeExRVUZMTEU5QlFVOHNTVUZCU1N4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU51UlN4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxHTkJRV01zUjBGQlJ5eERRVU0xUWl4UFFVRnBReXhGUVVORkxFVkJRVVU3U1VGRGNrTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1QwRkJUeXhKUVVGSkxFOUJRVThzUTBGQlF5eEpRVUZKTEV0QlFVc3NUMEZCVHl4RFFVRkRPMEZCUXk5RExFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNZVUZCWVN4SFFVRkhMRU5CUXpOQ0xFOUJRV2xETEVWQlEwTXNSVUZCUlR0SlFVTndReXhQUVVGUExFOUJRVThzU1VGQlNTeEpRVUZKTEVsQlFVa3NUMEZCVHl4RFFVRkRMRWxCUVVrc1MwRkJTeXhOUVVGTkxFTkJRVU03UVVGRGNFUXNRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnl4RFFVTXZRaXhQUVVGclF5eEZRVU5KTEVWQlFVVTdTVUZEZUVNc1QwRkJUeXhQUVVGUExFbEJRVWtzU1VGQlNTeEpRVUZKTEhGQ1FVRnhRaXhEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTm9SU3hEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEhGQ1FVRnhRaXhIUVVGSExFTkJRMjVETEZkQlFYTkRMRVZCUXpkQ0xFVkJRVVU3U1VGRFdDeFBRVUZQTEZkQlFWY3NTMEZCU3l4VlFVRlZMRU5CUVVNN1FVRkRjRU1zUTBGQlF5eERRVUZETzBGQlJVc3NUVUZCVFN4bFFVRmxMRWRCUVVjc1EwRkROMElzVDBGQmEwTXNSVUZEUlN4RlFVRkZPMGxCUTNSRExFOUJRVThzVDBGQlR5eEpRVUZKTEVsQlFVa3NTVUZCU1N4dFFrRkJiVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRPVVFzUTBGQlF5eERRVUZETzBGQlJVc3NUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eERRVU5xUXl4WFFVRnpReXhGUVVNM1FpeEZRVUZGTzBsQlExZ3NUMEZCVHl4RFFVTk1MRmRCUVZjc1MwRkJTeXhQUVVGUExFbEJRVWtzVjBGQlZ5eExRVUZMTEUxQlFVMHNRMEZCUXl4blEwRkJaME03UzBGRGJrWXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1EwRkRPVUlzVDBGQmEwTXNSVUZEUlN4RlFVRkZPMGxCUTNSRExFOUJRVThzVDBGQlR5eEpRVUZKTEVsQlFVa3NTVUZCU1N4dlFrRkJiMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRMMFFzUTBGQlF5eERRVUZETzBGQlJVc3NUVUZCVFN4dlFrRkJiMElzUjBGQlJ5eERRVU5zUXl4WFFVRnpReXhGUVVNM1FpeEZRVUZGTzBsQlExZ3NUMEZCVHl4WFFVRlhMRXRCUVVzc1QwRkJUeXhEUVVGRE8wRkJRMnBETEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NRMEZETDBJc1QwRkJhVU1zUlVGRFN5eEZRVUZGTzBsQlEzaERMRTlCUVU4c1EwRkRUQ3hQUVVGUExFbEJRVWtzU1VGQlNUdFJRVU5tTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1MwRkJTeXhYUVVGWE8xbEJRek5DTEU5QlFVOHNRMEZCUXl4SlFVRkpMRXRCUVVzc1UwRkJVenRaUVVNeFFpeFBRVUZQTEVOQlFVTXNTVUZCU1N4TFFVRkxMRk5CUVZNN1dVRkRNVUlzVDBGQlR5eERRVUZETEVsQlFVa3NTMEZCU3l4UFFVRlBPMWxCUTNoQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NTMEZCU3l4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZEY2tRc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNkVUpCUVhWQ0xFZEJRVWNzUTBGQlF5eFBRVUZwUXl4RlFVRkZMRVZCUVVVN1NVRkRNMFVzVDBGQlR5eERRVU5NTEU5QlFVOHNTVUZCU1N4SlFVRkpPMUZCUTJZc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeExRVUZMTEZkQlFWYzdXVUZETTBJc1QwRkJUeXhEUVVGRExFbEJRVWtzUzBGQlN5eFRRVUZUTzFsQlF6RkNMRTlCUVU4c1EwRkJReXhKUVVGSkxFdEJRVXNzVTBGQlV6dFpRVU14UWl4UFFVRlBMRU5CUVVNc1NVRkJTU3hMUVVGTExFOUJRVThzUTBGQlF5eERRVU0xUWl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRE8wRkJSVXNzVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXhEUVVGRExFOUJRVmtzUlVGQlZ5eEZRVUZGTzBsQlF6TkVMRTlCUVU4c1EwRkRUQ3hSUVVGUExHRkJRVkFzVDBGQlR5eDFRa0ZCVUN4UFFVRlBMRU5CUVVVc1NVRkJTU3hOUVVGTExFMUJRVTA3VVVGRGVFSXNVVUZCVHl4aFFVRlFMRTlCUVU4c2RVSkJRVkFzVDBGQlR5eERRVUZGTEVsQlFVa3NUVUZCU3l4VFFVRlRPMUZCUXpOQ0xGRkJRVThzWVVGQlVDeFBRVUZQTEhWQ1FVRlFMRTlCUVU4c1EwRkJSU3hKUVVGSkxFMUJRVXNzVjBGQlZ6dFJRVU0zUWl4UlFVRlBMR0ZCUVZBc1QwRkJUeXgxUWtGQlVDeFBRVUZQTEVOQlFVVXNTVUZCU1N4TlFVRkxMRk5CUVZNN1VVRkRNMElzVVVGQlR5eGhRVUZRTEU5QlFVOHNkVUpCUVZBc1QwRkJUeXhEUVVGRkxFbEJRVWtzVFVGQlN5eFBRVUZQTzFGQlEzcENMRkZCUVU4c1lVRkJVQ3hQUVVGUExIVkNRVUZRTEU5QlFVOHNRMEZCUlN4SlFVRkpMRTFCUVVzc1ZVRkJWVHRSUVVNMVFpeFJRVUZQTEdGQlFWQXNUMEZCVHl4MVFrRkJVQ3hQUVVGUExFTkJRVVVzU1VGQlNTeE5RVUZMTEUxQlFVMHNRMEZEZWtJc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNiVUpCUVcxQ0xFZEJRVWNzUTBGRGFrTXNUMEZCYVVNc1JVRkRTeXhGUVVGRk96dEpRVU40UXl4UFFVRlBMRU5CUTB3c2FVSkJRV2xDTEVOQlFVTXNUMEZCVHl4RFFVRkRPMUZCUXpGQ0xFTkJRVU1zUTBGQlF5eGpRVUZQTEVOQlFVTXNZVUZCWVN3d1EwRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFdEJRVXNzVFVGQlRTeERRVUZETEVWQlF6ZEVMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExFTkJRMmhETEU5QlFXbERMRVZCUTJNc1JVRkJSVHRKUVVOcVJDeFBRVUZQTEVOQlEwd3NUMEZCVHl4TFFVRkxMRWxCUVVrc1NVRkJTU3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NUMEZCVHl4RFFVRkRMRmRCUVZjc1MwRkJTeXhKUVVGSkxFTkJRek5GTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZaV3hsYldWdWRDOTBlWEJsUTJobFkydHpMblJ6UHpjelkyTWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHRjYmlBZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5Rc1hHNGdJRVY0WTJGc2FXUnlZWGRVWlhoMFJXeGxiV1Z1ZEN4Y2JpQWdSWGhqWVd4cFpISmhkMHhwYm1WaGNrVnNaVzFsYm5Rc1hHNGdJRVY0WTJGc2FXUnlZWGRDYVc1a1lXSnNaVVZzWlcxbGJuUXNYRzRnSUVWNFkyRnNhV1J5WVhkSFpXNWxjbWxqUld4bGJXVnVkQ3hjYmlBZ1JYaGpZV3hwWkhKaGQwWnlaV1ZFY21GM1JXeGxiV1Z1ZEN4Y2JpQWdTVzVwZEdsaGJHbDZaV1JGZUdOaGJHbGtjbUYzU1cxaFoyVkZiR1Z0Wlc1MExGeHVJQ0JGZUdOaGJHbGtjbUYzU1cxaFoyVkZiR1Z0Wlc1MExGeHVJQ0JGZUdOaGJHbGtjbUYzVkdWNGRFVnNaVzFsYm5SWGFYUm9RMjl1ZEdGcGJtVnlMRnh1ZlNCbWNtOXRJRndpTGk5MGVYQmxjMXdpTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYVhOSFpXNWxjbWxqUld4bGJXVnVkQ0E5SUNoY2JpQWdaV3hsYldWdWREb2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUWdmQ0J1ZFd4c0xGeHVLVG9nWld4bGJXVnVkQ0JwY3lCRmVHTmhiR2xrY21GM1IyVnVaWEpwWTBWc1pXMWxiblFnUFQ0Z2UxeHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lHVnNaVzFsYm5RZ0lUMGdiblZzYkNBbUpseHVJQ0FnSUNobGJHVnRaVzUwTG5SNWNHVWdQVDA5SUZ3aWMyVnNaV04wYVc5dVhDSWdmSHhjYmlBZ0lDQWdJR1ZzWlcxbGJuUXVkSGx3WlNBOVBUMGdYQ0p5WldOMFlXNW5iR1ZjSWlCOGZGeHVJQ0FnSUNBZ1pXeGxiV1Z1ZEM1MGVYQmxJRDA5UFNCY0ltUnBZVzF2Ym1SY0lpQjhmRnh1SUNBZ0lDQWdaV3hsYldWdWRDNTBlWEJsSUQwOVBTQmNJbVZzYkdsd2MyVmNJaWxjYmlBZ0tUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JwYzBsdWFYUnBZV3hwZW1Wa1NXMWhaMlZGYkdWdFpXNTBJRDBnS0Z4dUlDQmxiR1Z0Wlc1ME9pQkZlR05oYkdsa2NtRjNSV3hsYldWdWRDQjhJRzUxYkd3c1hHNHBPaUJsYkdWdFpXNTBJR2x6SUVsdWFYUnBZV3hwZW1Wa1JYaGpZV3hwWkhKaGQwbHRZV2RsUld4bGJXVnVkQ0E5UGlCN1hHNGdJSEpsZEhWeWJpQWhJV1ZzWlcxbGJuUWdKaVlnWld4bGJXVnVkQzUwZVhCbElEMDlQU0JjSW1sdFlXZGxYQ0lnSmlZZ0lTRmxiR1Z0Wlc1MExtWnBiR1ZKWkR0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnBjMGx0WVdkbFJXeGxiV1Z1ZENBOUlDaGNiaUFnWld4bGJXVnVkRG9nUlhoallXeHBaSEpoZDBWc1pXMWxiblFnZkNCdWRXeHNMRnh1S1RvZ1pXeGxiV1Z1ZENCcGN5QkZlR05oYkdsa2NtRjNTVzFoWjJWRmJHVnRaVzUwSUQwK0lIdGNiaUFnY21WMGRYSnVJQ0VoWld4bGJXVnVkQ0FtSmlCbGJHVnRaVzUwTG5SNWNHVWdQVDA5SUZ3aWFXMWhaMlZjSWp0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnBjMVJsZUhSRmJHVnRaVzUwSUQwZ0tGeHVJQ0JsYkdWdFpXNTBPaUJGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ0I4SUc1MWJHd3NYRzRwT2lCbGJHVnRaVzUwSUdseklFVjRZMkZzYVdSeVlYZFVaWGgwUld4bGJXVnVkQ0E5UGlCN1hHNGdJSEpsZEhWeWJpQmxiR1Z0Wlc1MElDRTlJRzUxYkd3Z0ppWWdaV3hsYldWdWRDNTBlWEJsSUQwOVBTQmNJblJsZUhSY0lqdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JwYzBaeVpXVkVjbUYzUld4bGJXVnVkQ0E5SUNoY2JpQWdaV3hsYldWdWREODZJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBJSHdnYm5Wc2JDeGNiaWs2SUdWc1pXMWxiblFnYVhNZ1JYaGpZV3hwWkhKaGQwWnlaV1ZFY21GM1JXeGxiV1Z1ZENBOVBpQjdYRzRnSUhKbGRIVnliaUJsYkdWdFpXNTBJQ0U5SUc1MWJHd2dKaVlnYVhOR2NtVmxSSEpoZDBWc1pXMWxiblJVZVhCbEtHVnNaVzFsYm5RdWRIbHdaU2s3WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2FYTkdjbVZsUkhKaGQwVnNaVzFsYm5SVWVYQmxJRDBnS0Z4dUlDQmxiR1Z0Wlc1MFZIbHdaVG9nUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWENKMGVYQmxYQ0pkTEZ4dUtUb2dZbTl2YkdWaGJpQTlQaUI3WEc0Z0lISmxkSFZ5YmlCbGJHVnRaVzUwVkhsd1pTQTlQVDBnWENKbWNtVmxaSEpoZDF3aU8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2x6VEdsdVpXRnlSV3hsYldWdWRDQTlJQ2hjYmlBZ1pXeGxiV1Z1ZEQ4NklFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MElId2diblZzYkN4Y2JpazZJR1ZzWlcxbGJuUWdhWE1nUlhoallXeHBaSEpoZDB4cGJtVmhja1ZzWlcxbGJuUWdQVDRnZTF4dUlDQnlaWFIxY200Z1pXeGxiV1Z1ZENBaFBTQnVkV3hzSUNZbUlHbHpUR2x1WldGeVJXeGxiV1Z1ZEZSNWNHVW9aV3hsYldWdWRDNTBlWEJsS1R0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnBjMHhwYm1WaGNrVnNaVzFsYm5SVWVYQmxJRDBnS0Z4dUlDQmxiR1Z0Wlc1MFZIbHdaVG9nUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWENKMGVYQmxYQ0pkTEZ4dUtUb2dZbTl2YkdWaGJpQTlQaUI3WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnWld4bGJXVnVkRlI1Y0dVZ1BUMDlJRndpWVhKeWIzZGNJaUI4ZkNCbGJHVnRaVzUwVkhsd1pTQTlQVDBnWENKc2FXNWxYQ0lnTHk4Z2ZId2daV3hsYldWdWRGUjVjR1VnUFQwOUlGd2labkpsWldSeVlYZGNJbHh1SUNBcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2x6UW1sdVpHbHVaMFZzWlcxbGJuUWdQU0FvWEc0Z0lHVnNaVzFsYm5RL09pQkZlR05oYkdsa2NtRjNSV3hsYldWdWRDQjhJRzUxYkd3c1hHNHBPaUJsYkdWdFpXNTBJR2x6SUVWNFkyRnNhV1J5WVhkTWFXNWxZWEpGYkdWdFpXNTBJRDArSUh0Y2JpQWdjbVYwZFhKdUlHVnNaVzFsYm5RZ0lUMGdiblZzYkNBbUppQnBjMEpwYm1ScGJtZEZiR1Z0Wlc1MFZIbHdaU2hsYkdWdFpXNTBMblI1Y0dVcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2x6UW1sdVpHbHVaMFZzWlcxbGJuUlVlWEJsSUQwZ0tGeHVJQ0JsYkdWdFpXNTBWSGx3WlRvZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhDSjBlWEJsWENKZExGeHVLVG9nWW05dmJHVmhiaUE5UGlCN1hHNGdJSEpsZEhWeWJpQmxiR1Z0Wlc1MFZIbHdaU0E5UFQwZ1hDSmhjbkp2ZDF3aU8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2x6UW1sdVpHRmliR1ZGYkdWdFpXNTBJRDBnS0Z4dUlDQmxiR1Z0Wlc1ME9pQkZlR05oYkdsa2NtRjNSV3hsYldWdWRDQjhJRzUxYkd3c1hHNHBPaUJsYkdWdFpXNTBJR2x6SUVWNFkyRnNhV1J5WVhkQ2FXNWtZV0pzWlVWc1pXMWxiblFnUFQ0Z2UxeHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lHVnNaVzFsYm5RZ0lUMGdiblZzYkNBbUpseHVJQ0FnSUNobGJHVnRaVzUwTG5SNWNHVWdQVDA5SUZ3aWNtVmpkR0Z1WjJ4bFhDSWdmSHhjYmlBZ0lDQWdJR1ZzWlcxbGJuUXVkSGx3WlNBOVBUMGdYQ0prYVdGdGIyNWtYQ0lnZkh4Y2JpQWdJQ0FnSUdWc1pXMWxiblF1ZEhsd1pTQTlQVDBnWENKbGJHeHBjSE5sWENJZ2ZIeGNiaUFnSUNBZ0lHVnNaVzFsYm5RdWRIbHdaU0E5UFQwZ1hDSnBiV0ZuWlZ3aUlIeDhYRzRnSUNBZ0lDQW9aV3hsYldWdWRDNTBlWEJsSUQwOVBTQmNJblJsZUhSY0lpQW1KaUFoWld4bGJXVnVkQzVqYjI1MFlXbHVaWEpKWkNrcFhHNGdJQ2s3WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2FYTlVaWGgwUW1sdVpHRmliR1ZEYjI1MFlXbHVaWElnUFNBb1pXeGxiV1Z1ZERvZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5RZ2ZDQnVkV3hzS1NBOVBpQjdYRzRnSUhKbGRIVnliaUFvWEc0Z0lDQWdaV3hsYldWdWRDQWhQU0J1ZFd4c0lDWW1YRzRnSUNBZ0tHVnNaVzFsYm5RdWRIbHdaU0E5UFQwZ1hDSnlaV04wWVc1bmJHVmNJaUI4ZkZ4dUlDQWdJQ0FnWld4bGJXVnVkQzUwZVhCbElEMDlQU0JjSW1ScFlXMXZibVJjSWlCOGZGeHVJQ0FnSUNBZ1pXeGxiV1Z1ZEM1MGVYQmxJRDA5UFNCY0ltVnNiR2x3YzJWY0lpQjhmRnh1SUNBZ0lDQWdaV3hsYldWdWRDNTBlWEJsSUQwOVBTQmNJbWx0WVdkbFhDSXBYRzRnSUNrN1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdhWE5GZUdOaGJHbGtjbUYzUld4bGJXVnVkQ0E5SUNobGJHVnRaVzUwT2lCaGJua3BPaUJpYjI5c1pXRnVJRDArSUh0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNCbGJHVnRaVzUwUHk1MGVYQmxJRDA5UFNCY0luUmxlSFJjSWlCOGZGeHVJQ0FnSUdWc1pXMWxiblEvTG5SNWNHVWdQVDA5SUZ3aVpHbGhiVzl1WkZ3aUlIeDhYRzRnSUNBZ1pXeGxiV1Z1ZEQ4dWRIbHdaU0E5UFQwZ1hDSnlaV04wWVc1bmJHVmNJaUI4ZkZ4dUlDQWdJR1ZzWlcxbGJuUS9MblI1Y0dVZ1BUMDlJRndpWld4c2FYQnpaVndpSUh4OFhHNGdJQ0FnWld4bGJXVnVkRDh1ZEhsd1pTQTlQVDBnWENKaGNuSnZkMXdpSUh4OFhHNGdJQ0FnWld4bGJXVnVkRDh1ZEhsd1pTQTlQVDBnWENKbWNtVmxaSEpoZDF3aUlIeDhYRzRnSUNBZ1pXeGxiV1Z1ZEQ4dWRIbHdaU0E5UFQwZ1hDSnNhVzVsWENKY2JpQWdLVHRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCb1lYTkNiM1Z1WkZSbGVIUkZiR1Z0Wlc1MElEMGdLRnh1SUNCbGJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZENCOElHNTFiR3dzWEc0cE9pQmxiR1Z0Wlc1MElHbHpJRVY0WTJGc2FXUnlZWGRDYVc1a1lXSnNaVVZzWlcxbGJuUWdQVDRnZTF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUdselFtbHVaR0ZpYkdWRmJHVnRaVzUwS0dWc1pXMWxiblFwSUNZbVhHNGdJQ0FnSVNGbGJHVnRaVzUwTG1KdmRXNWtSV3hsYldWdWRITS9Mbk52YldVb0tIc2dkSGx3WlNCOUtTQTlQaUIwZVhCbElEMDlQU0JjSW5SbGVIUmNJaWxjYmlBZ0tUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JwYzBKdmRXNWtWRzlEYjI1MFlXbHVaWElnUFNBb1hHNGdJR1ZzWlcxbGJuUTZJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBJSHdnYm5Wc2JDeGNiaWs2SUdWc1pXMWxiblFnYVhNZ1JYaGpZV3hwWkhKaGQxUmxlSFJGYkdWdFpXNTBWMmwwYUVOdmJuUmhhVzVsY2lBOVBpQjdYRzRnSUhKbGRIVnliaUFvWEc0Z0lDQWdaV3hsYldWdWRDQWhQVDBnYm5Wc2JDQW1KaUJwYzFSbGVIUkZiR1Z0Wlc1MEtHVnNaVzFsYm5RcElDWW1JR1ZzWlcxbGJuUXVZMjl1ZEdGcGJtVnlTV1FnSVQwOUlHNTFiR3hjYmlBZ0tUdGNibjA3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZWxlbWVudC90eXBlQ2hlY2tzLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9lcnJvcnMudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2Vycm9ycy50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkNhbnZhc0Vycm9yXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gQ2FudmFzRXJyb3IpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkFib3J0RXJyb3JcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBBYm9ydEVycm9yKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbmNsYXNzIENhbnZhc0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gXFxcIkNvdWxkbid0IGV4cG9ydCBjYW52YXMuXFxcIiwgbmFtZSA9IFxcXCJDQU5WQVNfRVJST1JcXFwiKSB7XFxuICAgICAgICBzdXBlcigpO1xcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcXG4gICAgICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XFxuICAgIH1cXG59XFxuY2xhc3MgQWJvcnRFcnJvciBleHRlbmRzIERPTUV4Y2VwdGlvbiB7XFxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UgPSBcXFwiUmVxdWVzdCBBYm9ydGVkXFxcIikge1xcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgXFxcIkFib3J0RXJyb3JcXFwiKTtcXG4gICAgfVxcbn1cXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dlpYSnliM0p6TG5SekxtcHpJaXdpYldGd2NHbHVaM01pT2lJN096czdPMEZCUlU4c1RVRkJUU3hYUVVGWkxGTkJRVkVzUzBGQlN6dEpRVU53UXl4WlFVTkZMRlZCUVd0Q0xIbENRVUY1UWl4RlFVTXpReXhQUVVFeVFpeGpRVUZqTzFGQlJYcERMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJRMUlzU1VGQlNTeERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1VVRkRha0lzU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4UFFVRlBMRU5CUVVNN1NVRkRla0lzUTBGQlF6dERRVU5HTzBGQlJVMHNUVUZCVFN4VlFVRlhMRk5CUVZFc1dVRkJXVHRKUVVNeFF5eFpRVUZaTEZWQlFXdENMR2xDUVVGcFFqdFJRVU0zUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxGbEJRVmtzUTBGQlF5eERRVUZETzBsQlF5OUNMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5bGNuSnZjbk11ZEhNL01qZ3hOaUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKMGVYQmxJRU5CVGxaQlUxOUZVbEpQVWw5T1FVMUZVeUE5SUZ3aVEwRk9Wa0ZUWDBWU1VrOVNYQ0lnZkNCY0lrTkJUbFpCVTE5UVQxTlRTVUpNV1Y5VVQwOWZRa2xIWENJN1hHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCRFlXNTJZWE5GY25KdmNpQmxlSFJsYm1SeklFVnljbTl5SUh0Y2JpQWdZMjl1YzNSeWRXTjBiM0lvWEc0Z0lDQWdiV1Z6YzJGblpUb2djM1J5YVc1bklEMGdYQ0pEYjNWc1pHNG5kQ0JsZUhCdmNuUWdZMkZ1ZG1Gekxsd2lMRnh1SUNBZ0lHNWhiV1U2SUVOQlRsWkJVMTlGVWxKUFVsOU9RVTFGVXlBOUlGd2lRMEZPVmtGVFgwVlNVazlTWENJc1hHNGdJQ2tnZTF4dUlDQWdJSE4xY0dWeUtDazdYRzRnSUNBZ2RHaHBjeTV1WVcxbElEMGdibUZ0WlR0Y2JpQWdJQ0IwYUdsekxtMWxjM05oWjJVZ1BTQnRaWE56WVdkbE8xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCQlltOXlkRVZ5Y205eUlHVjRkR1Z1WkhNZ1JFOU5SWGhqWlhCMGFXOXVJSHRjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9iV1Z6YzJGblpUb2djM1J5YVc1bklEMGdYQ0pTWlhGMVpYTjBJRUZpYjNKMFpXUmNJaWtnZTF4dUlDQWdJSE4xY0dWeUtHMWxjM05oWjJVc0lGd2lRV0p2Y25SRmNuSnZjbHdpS1R0Y2JpQWdmVnh1ZlZ4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZXJyb3JzLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9nYS50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9nYS50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicG9pbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBwb2ludCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwib3JpZ2luXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gb3JpZ2luKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkaXJlY3Rpb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBkaXJlY3Rpb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIm9mZnNldFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIG9mZnNldCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibnZlY3RvclxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIG52ZWN0b3IpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInRvU3RyaW5nXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gdG9TdHJpbmcpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJldmVyc2VcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZXZlcnNlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkdWFsXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZHVhbCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiY29uanVnYXRlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY29uanVnYXRlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpbnZvbHV0ZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGludm9sdXRlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhZGRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhZGQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInN1YlxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHN1YiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibXVsXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gbXVsKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJtdWxTY2FsYXJcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBtdWxTY2FsYXIpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIm1lZXRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBtZWV0KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJqb2luXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gam9pbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiam9pblNjYWxhclxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGpvaW5TY2FsYXIpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRvdFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGRvdCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibm9ybVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIG5vcm0pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlub3JtXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaW5vcm0pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIm5vcm1hbGl6ZWRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBub3JtYWxpemVkKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpbm9ybWFsaXplZFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlub3JtYWxpemVkKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJFMFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEUwKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJFMVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEUxKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJFMlxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEUyKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJFMDFcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBFMDEpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIkUyMFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEUyMCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiRTEyXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRTEyKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJFMDEyXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRTAxMiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiSVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEkpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyoqXFxuICogVGhpcyBpcyBhIDJEIFByb2plY3RpdmUgR2VvbWV0cmljIEFsZ2VicmEgaW1wbGVtZW50YXRpb24uXFxuICpcXG4gKiBGb3Igd2lkZXIgY29udGV4dCBvbiBnZW9tZXRyaWMgYWxnZWJyYSB2aXNpdCBzZWUgaHR0cHM6Ly9iaXZlY3Rvci5uZXQuXFxuICpcXG4gKiBGb3IgdGhpcyBzcGVjaWZpYyBhbGdlYnJhIHNlZSBjaGVhdHNoZWV0IGh0dHBzOi8vYml2ZWN0b3IubmV0LzJEUEdBLnBkZi5cXG4gKlxcbiAqIENvbnZlcnRlZCBmcm9tIGdlbmVyYXRvciB3cml0dGVuIGJ5IGVua2ksIHdpdGggYSB0b24gb2YgYWRkZWQgb24gdG9wLlxcbiAqXFxuICogVGhpcyBsaWJyYXJ5IHVzZXMgOC12ZWN0b3JzIHRvIHJlcHJlc2VudCBwb2ludHMsIGRpcmVjdGlvbnMgYW5kIGxpbmVzXFxuICogaW4gMkQgc3BhY2UuXFxuICpcXG4gKiBBbiBhcnJheSBgW2EsIGIsIGMsIGQsIGUsIGYsIGcsIGhdYCByZXByZXNlbnRzIGEgbig4KXZlY3RvcjpcXG4gKiAgIGEgKyBiKmUwICsgYyplMSArIGQqZTIgKyBlKmUwMSArIGYqZTIwICsgZyplMTIgKyBoKmUwMTJcXG4gKlxcbiAqIFNlZSBHQVBvaW50LCBHQUxpbmUsIEdBRGlyZWN0aW9uIGFuZCBHQVRyYW5zZm9ybSBtb2R1bGVzIGZvciBjb21tb25cXG4gKiBvcGVyYXRpb25zLlxcbiAqL1xcbmNvbnN0IHBvaW50ID0gKHgsIHkpID0+IFswLCAwLCAwLCAwLCB5LCB4LCAxLCAwXTtcXG5jb25zdCBvcmlnaW4gPSAoKSA9PiBbMCwgMCwgMCwgMCwgMCwgMCwgMSwgMF07XFxuY29uc3QgZGlyZWN0aW9uID0gKHgsIHkpID0+IHtcXG4gICAgY29uc3Qgbm9ybSA9IE1hdGguaHlwb3QoeCwgeSk7IC8vIHNhbWUgYXMgYGlub3JtKGRpcmVjdGlvbih4LCB5KSlgXFxuICAgIHJldHVybiBbMCwgMCwgMCwgMCwgeSAvIG5vcm0sIHggLyBub3JtLCAwLCAwXTtcXG59O1xcbmNvbnN0IG9mZnNldCA9ICh4LCB5KSA9PiBbXFxuICAgIDAsXFxuICAgIDAsXFxuICAgIDAsXFxuICAgIDAsXFxuICAgIHksXFxuICAgIHgsXFxuICAgIDAsXFxuICAgIDAsXFxuXTtcXG4vLyBUaGVzZSBhcmUgbGFiZWxzIGZvciB3aGF0IGVhY2ggbnVtYmVyIGluIGFuIG52ZWN0b3IgcmVwcmVzZW50c1xcbmNvbnN0IE5WRUNUT1JfQkFTRSA9IFtcXFwiMVxcXCIsIFxcXCJlMFxcXCIsIFxcXCJlMVxcXCIsIFxcXCJlMlxcXCIsIFxcXCJlMDFcXFwiLCBcXFwiZTIwXFxcIiwgXFxcImUxMlxcXCIsIFxcXCJlMDEyXFxcIl07XFxuLy8gVXNlZCB0byByZXByZXNlbnQgcG9pbnRzLCBsaW5lcyBhbmQgdHJhbnNmb3JtYXRpb25zXFxuY29uc3QgbnZlY3RvciA9ICh2YWx1ZSA9IDAsIGluZGV4ID0gMCkgPT4ge1xcbiAgICBjb25zdCByZXN1bHQgPSBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF07XFxuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPiA3KSB7XFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFxcXFxgaW5kZXhcXFxcYCBiZXR3ZW4gMCBhbmQgNywgZ290IFxcXFxgJHtpbmRleH1cXFxcYGApO1xcbiAgICB9XFxuICAgIGlmICh2YWx1ZSAhPT0gMCkge1xcbiAgICAgICAgcmVzdWx0W2luZGV4XSA9IHZhbHVlO1xcbiAgICB9XFxuICAgIHJldHVybiByZXN1bHQ7XFxufTtcXG5jb25zdCBTVFJJTkdfRVBTSUxPTiA9IDAuMDAwMDAxO1xcbmNvbnN0IHRvU3RyaW5nID0gKG52ZWN0b3IpID0+IHtcXG4gICAgY29uc3QgcmVzdWx0ID0gbnZlY3RvclxcbiAgICAgICAgLm1hcCgodmFsdWUsIGluZGV4KSA9PiBNYXRoLmFicyh2YWx1ZSkgPiBTVFJJTkdfRVBTSUxPTlxcbiAgICAgICAgPyB2YWx1ZS50b0ZpeGVkKDcpLnJlcGxhY2UoLyhcXFxcLnwwKykkLywgXFxcIlxcXCIpICtcXG4gICAgICAgICAgICAoaW5kZXggPiAwID8gTlZFQ1RPUl9CQVNFW2luZGV4XSA6IFxcXCJcXFwiKVxcbiAgICAgICAgOiBudWxsKVxcbiAgICAgICAgLmZpbHRlcigocmVwcmVzZW50YXRpb24pID0+IHJlcHJlc2VudGF0aW9uICE9IG51bGwpXFxuICAgICAgICAuam9pbihcXFwiICsgXFxcIik7XFxuICAgIHJldHVybiByZXN1bHQgPT09IFxcXCJcXFwiID8gXFxcIjBcXFwiIDogcmVzdWx0O1xcbn07XFxuLy8gUmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlIGJhc2lzIGJsYWRlcy5cXG5jb25zdCByZXZlcnNlID0gKG52ZWN0b3IpID0+IFtcXG4gICAgbnZlY3RvclswXSxcXG4gICAgbnZlY3RvclsxXSxcXG4gICAgbnZlY3RvclsyXSxcXG4gICAgbnZlY3RvclszXSxcXG4gICAgLW52ZWN0b3JbNF0sXFxuICAgIC1udmVjdG9yWzVdLFxcbiAgICAtbnZlY3Rvcls2XSxcXG4gICAgLW52ZWN0b3JbN10sXFxuXTtcXG4vLyBQb2luY2FyZSBkdWFsaXR5IG9wZXJhdG9yLlxcbmNvbnN0IGR1YWwgPSAobnZlY3RvcikgPT4gW1xcbiAgICBudmVjdG9yWzddLFxcbiAgICBudmVjdG9yWzZdLFxcbiAgICBudmVjdG9yWzVdLFxcbiAgICBudmVjdG9yWzRdLFxcbiAgICBudmVjdG9yWzNdLFxcbiAgICBudmVjdG9yWzJdLFxcbiAgICBudmVjdG9yWzFdLFxcbiAgICBudmVjdG9yWzBdLFxcbl07XFxuLy8gQ2xpZmZvcmQgQ29uanVnYXRpb25cXG5jb25zdCBjb25qdWdhdGUgPSAobnZlY3RvcikgPT4gW1xcbiAgICBudmVjdG9yWzBdLFxcbiAgICAtbnZlY3RvclsxXSxcXG4gICAgLW52ZWN0b3JbMl0sXFxuICAgIC1udmVjdG9yWzNdLFxcbiAgICAtbnZlY3Rvcls0XSxcXG4gICAgLW52ZWN0b3JbNV0sXFxuICAgIC1udmVjdG9yWzZdLFxcbiAgICBudmVjdG9yWzddLFxcbl07XFxuLy8gTWFpbiBpbnZvbHV0aW9uXFxuY29uc3QgaW52b2x1dGUgPSAobnZlY3RvcikgPT4gW1xcbiAgICBudmVjdG9yWzBdLFxcbiAgICAtbnZlY3RvclsxXSxcXG4gICAgLW52ZWN0b3JbMl0sXFxuICAgIC1udmVjdG9yWzNdLFxcbiAgICBudmVjdG9yWzRdLFxcbiAgICBudmVjdG9yWzVdLFxcbiAgICBudmVjdG9yWzZdLFxcbiAgICAtbnZlY3Rvcls3XSxcXG5dO1xcbi8vIE11bHRpdmVjdG9yIGFkZGl0aW9uXFxuY29uc3QgYWRkID0gKGEsIGIpID0+IHtcXG4gICAgaWYgKGlzTnVtYmVyKGIpKSB7XFxuICAgICAgICByZXR1cm4gW2FbMF0gKyBiLCBhWzFdLCBhWzJdLCBhWzNdLCBhWzRdLCBhWzVdLCBhWzZdLCBhWzddXTtcXG4gICAgfVxcbiAgICByZXR1cm4gW1xcbiAgICAgICAgYVswXSArIGJbMF0sXFxuICAgICAgICBhWzFdICsgYlsxXSxcXG4gICAgICAgIGFbMl0gKyBiWzJdLFxcbiAgICAgICAgYVszXSArIGJbM10sXFxuICAgICAgICBhWzRdICsgYls0XSxcXG4gICAgICAgIGFbNV0gKyBiWzVdLFxcbiAgICAgICAgYVs2XSArIGJbNl0sXFxuICAgICAgICBhWzddICsgYls3XSxcXG4gICAgXTtcXG59O1xcbi8vIE11bHRpdmVjdG9yIHN1YnRyYWN0aW9uXFxuY29uc3Qgc3ViID0gKGEsIGIpID0+IHtcXG4gICAgaWYgKGlzTnVtYmVyKGIpKSB7XFxuICAgICAgICByZXR1cm4gW2FbMF0gLSBiLCBhWzFdLCBhWzJdLCBhWzNdLCBhWzRdLCBhWzVdLCBhWzZdLCBhWzddXTtcXG4gICAgfVxcbiAgICByZXR1cm4gW1xcbiAgICAgICAgYVswXSAtIGJbMF0sXFxuICAgICAgICBhWzFdIC0gYlsxXSxcXG4gICAgICAgIGFbMl0gLSBiWzJdLFxcbiAgICAgICAgYVszXSAtIGJbM10sXFxuICAgICAgICBhWzRdIC0gYls0XSxcXG4gICAgICAgIGFbNV0gLSBiWzVdLFxcbiAgICAgICAgYVs2XSAtIGJbNl0sXFxuICAgICAgICBhWzddIC0gYls3XSxcXG4gICAgXTtcXG59O1xcbi8vIFRoZSBnZW9tZXRyaWMgcHJvZHVjdC5cXG5jb25zdCBtdWwgPSAoYSwgYikgPT4ge1xcbiAgICBpZiAoaXNOdW1iZXIoYikpIHtcXG4gICAgICAgIHJldHVybiBbXFxuICAgICAgICAgICAgYVswXSAqIGIsXFxuICAgICAgICAgICAgYVsxXSAqIGIsXFxuICAgICAgICAgICAgYVsyXSAqIGIsXFxuICAgICAgICAgICAgYVszXSAqIGIsXFxuICAgICAgICAgICAgYVs0XSAqIGIsXFxuICAgICAgICAgICAgYVs1XSAqIGIsXFxuICAgICAgICAgICAgYVs2XSAqIGIsXFxuICAgICAgICAgICAgYVs3XSAqIGIsXFxuICAgICAgICBdO1xcbiAgICB9XFxuICAgIHJldHVybiBbXFxuICAgICAgICBtdWxTY2FsYXIoYSwgYiksXFxuICAgICAgICBiWzFdICogYVswXSArXFxuICAgICAgICAgICAgYlswXSAqIGFbMV0gLVxcbiAgICAgICAgICAgIGJbNF0gKiBhWzJdICtcXG4gICAgICAgICAgICBiWzVdICogYVszXSArXFxuICAgICAgICAgICAgYlsyXSAqIGFbNF0gLVxcbiAgICAgICAgICAgIGJbM10gKiBhWzVdIC1cXG4gICAgICAgICAgICBiWzddICogYVs2XSAtXFxuICAgICAgICAgICAgYls2XSAqIGFbN10sXFxuICAgICAgICBiWzJdICogYVswXSArIGJbMF0gKiBhWzJdIC0gYls2XSAqIGFbM10gKyBiWzNdICogYVs2XSxcXG4gICAgICAgIGJbM10gKiBhWzBdICsgYls2XSAqIGFbMl0gKyBiWzBdICogYVszXSAtIGJbMl0gKiBhWzZdLFxcbiAgICAgICAgYls0XSAqIGFbMF0gK1xcbiAgICAgICAgICAgIGJbMl0gKiBhWzFdIC1cXG4gICAgICAgICAgICBiWzFdICogYVsyXSArXFxuICAgICAgICAgICAgYls3XSAqIGFbM10gK1xcbiAgICAgICAgICAgIGJbMF0gKiBhWzRdICtcXG4gICAgICAgICAgICBiWzZdICogYVs1XSAtXFxuICAgICAgICAgICAgYls1XSAqIGFbNl0gK1xcbiAgICAgICAgICAgIGJbM10gKiBhWzddLFxcbiAgICAgICAgYls1XSAqIGFbMF0gLVxcbiAgICAgICAgICAgIGJbM10gKiBhWzFdICtcXG4gICAgICAgICAgICBiWzddICogYVsyXSArXFxuICAgICAgICAgICAgYlsxXSAqIGFbM10gLVxcbiAgICAgICAgICAgIGJbNl0gKiBhWzRdICtcXG4gICAgICAgICAgICBiWzBdICogYVs1XSArXFxuICAgICAgICAgICAgYls0XSAqIGFbNl0gK1xcbiAgICAgICAgICAgIGJbMl0gKiBhWzddLFxcbiAgICAgICAgYls2XSAqIGFbMF0gKyBiWzNdICogYVsyXSAtIGJbMl0gKiBhWzNdICsgYlswXSAqIGFbNl0sXFxuICAgICAgICBiWzddICogYVswXSArXFxuICAgICAgICAgICAgYls2XSAqIGFbMV0gK1xcbiAgICAgICAgICAgIGJbNV0gKiBhWzJdICtcXG4gICAgICAgICAgICBiWzRdICogYVszXSArXFxuICAgICAgICAgICAgYlszXSAqIGFbNF0gK1xcbiAgICAgICAgICAgIGJbMl0gKiBhWzVdICtcXG4gICAgICAgICAgICBiWzFdICogYVs2XSArXFxuICAgICAgICAgICAgYlswXSAqIGFbN10sXFxuICAgIF07XFxufTtcXG5jb25zdCBtdWxTY2FsYXIgPSAoYSwgYikgPT4gYlswXSAqIGFbMF0gKyBiWzJdICogYVsyXSArIGJbM10gKiBhWzNdIC0gYls2XSAqIGFbNl07XFxuLy8gVGhlIG91dGVyL2V4dGVyaW9yL3dlZGdlIHByb2R1Y3QuXFxuY29uc3QgbWVldCA9IChhLCBiKSA9PiBbXFxuICAgIGJbMF0gKiBhWzBdLFxcbiAgICBiWzFdICogYVswXSArIGJbMF0gKiBhWzFdLFxcbiAgICBiWzJdICogYVswXSArIGJbMF0gKiBhWzJdLFxcbiAgICBiWzNdICogYVswXSArIGJbMF0gKiBhWzNdLFxcbiAgICBiWzRdICogYVswXSArIGJbMl0gKiBhWzFdIC0gYlsxXSAqIGFbMl0gKyBiWzBdICogYVs0XSxcXG4gICAgYls1XSAqIGFbMF0gLSBiWzNdICogYVsxXSArIGJbMV0gKiBhWzNdICsgYlswXSAqIGFbNV0sXFxuICAgIGJbNl0gKiBhWzBdICsgYlszXSAqIGFbMl0gLSBiWzJdICogYVszXSArIGJbMF0gKiBhWzZdLFxcbiAgICBiWzddICogYVswXSArXFxuICAgICAgICBiWzZdICogYVsxXSArXFxuICAgICAgICBiWzVdICogYVsyXSArXFxuICAgICAgICBiWzRdICogYVszXSArXFxuICAgICAgICBiWzNdICogYVs0XSArXFxuICAgICAgICBiWzJdICogYVs1XSArXFxuICAgICAgICBiWzFdICogYVs2XSxcXG5dO1xcbi8vIFRoZSByZWdyZXNzaXZlIHByb2R1Y3QuXFxuY29uc3Qgam9pbiA9IChhLCBiKSA9PiBbXFxuICAgIGpvaW5TY2FsYXIoYSwgYiksXFxuICAgIGFbMV0gKiBiWzddICsgYVs0XSAqIGJbNV0gLSBhWzVdICogYls0XSArIGFbN10gKiBiWzFdLFxcbiAgICBhWzJdICogYls3XSAtIGFbNF0gKiBiWzZdICsgYVs2XSAqIGJbNF0gKyBhWzddICogYlsyXSxcXG4gICAgYVszXSAqIGJbN10gKyBhWzVdICogYls2XSAtIGFbNl0gKiBiWzVdICsgYVs3XSAqIGJbM10sXFxuICAgIGFbNF0gKiBiWzddICsgYVs3XSAqIGJbNF0sXFxuICAgIGFbNV0gKiBiWzddICsgYVs3XSAqIGJbNV0sXFxuICAgIGFbNl0gKiBiWzddICsgYVs3XSAqIGJbNl0sXFxuICAgIGFbN10gKiBiWzddLFxcbl07XFxuY29uc3Qgam9pblNjYWxhciA9IChhLCBiKSA9PiBhWzBdICogYls3XSArXFxuICAgIGFbMV0gKiBiWzZdICtcXG4gICAgYVsyXSAqIGJbNV0gK1xcbiAgICBhWzNdICogYls0XSArXFxuICAgIGFbNF0gKiBiWzNdICtcXG4gICAgYVs1XSAqIGJbMl0gK1xcbiAgICBhWzZdICogYlsxXSArXFxuICAgIGFbN10gKiBiWzBdO1xcbi8vIFRoZSBpbm5lciBwcm9kdWN0LlxcbmNvbnN0IGRvdCA9IChhLCBiKSA9PiBbXFxuICAgIGJbMF0gKiBhWzBdICsgYlsyXSAqIGFbMl0gKyBiWzNdICogYVszXSAtIGJbNl0gKiBhWzZdLFxcbiAgICBiWzFdICogYVswXSArXFxuICAgICAgICBiWzBdICogYVsxXSAtXFxuICAgICAgICBiWzRdICogYVsyXSArXFxuICAgICAgICBiWzVdICogYVszXSArXFxuICAgICAgICBiWzJdICogYVs0XSAtXFxuICAgICAgICBiWzNdICogYVs1XSAtXFxuICAgICAgICBiWzddICogYVs2XSAtXFxuICAgICAgICBiWzZdICogYVs3XSxcXG4gICAgYlsyXSAqIGFbMF0gKyBiWzBdICogYVsyXSAtIGJbNl0gKiBhWzNdICsgYlszXSAqIGFbNl0sXFxuICAgIGJbM10gKiBhWzBdICsgYls2XSAqIGFbMl0gKyBiWzBdICogYVszXSAtIGJbMl0gKiBhWzZdLFxcbiAgICBiWzRdICogYVswXSArIGJbN10gKiBhWzNdICsgYlswXSAqIGFbNF0gKyBiWzNdICogYVs3XSxcXG4gICAgYls1XSAqIGFbMF0gKyBiWzddICogYVsyXSArIGJbMF0gKiBhWzVdICsgYlsyXSAqIGFbN10sXFxuICAgIGJbNl0gKiBhWzBdICsgYlswXSAqIGFbNl0sXFxuICAgIGJbN10gKiBhWzBdICsgYlswXSAqIGFbN10sXFxuXTtcXG5jb25zdCBub3JtID0gKGEpID0+IE1hdGguc3FydChNYXRoLmFicyhhWzBdICogYVswXSAtIGFbMl0gKiBhWzJdIC0gYVszXSAqIGFbM10gKyBhWzZdICogYVs2XSkpO1xcbmNvbnN0IGlub3JtID0gKGEpID0+IE1hdGguc3FydChNYXRoLmFicyhhWzddICogYVs3XSAtIGFbNV0gKiBhWzVdIC0gYVs0XSAqIGFbNF0gKyBhWzFdICogYVsxXSkpO1xcbmNvbnN0IG5vcm1hbGl6ZWQgPSAoYSkgPT4ge1xcbiAgICBjb25zdCBuID0gbm9ybShhKTtcXG4gICAgaWYgKG4gPT09IDAgfHwgbiA9PT0gMSkge1xcbiAgICAgICAgcmV0dXJuIGE7XFxuICAgIH1cXG4gICAgY29uc3Qgc2lnbiA9IGFbNl0gPCAwID8gLTEgOiAxO1xcbiAgICByZXR1cm4gbXVsKGEsIHNpZ24gLyBuKTtcXG59O1xcbmNvbnN0IGlub3JtYWxpemVkID0gKGEpID0+IHtcXG4gICAgY29uc3QgbiA9IGlub3JtKGEpO1xcbiAgICBpZiAobiA9PT0gMCB8fCBuID09PSAxKSB7XFxuICAgICAgICByZXR1cm4gYTtcXG4gICAgfVxcbiAgICByZXR1cm4gbXVsKGEsIDEgLyBuKTtcXG59O1xcbmNvbnN0IGlzTnVtYmVyID0gKGEpID0+IHR5cGVvZiBhID09PSBcXFwibnVtYmVyXFxcIjtcXG5jb25zdCBFMCA9IG52ZWN0b3IoMSwgMSk7XFxuY29uc3QgRTEgPSBudmVjdG9yKDEsIDIpO1xcbmNvbnN0IEUyID0gbnZlY3RvcigxLCAzKTtcXG5jb25zdCBFMDEgPSBudmVjdG9yKDEsIDQpO1xcbmNvbnN0IEUyMCA9IG52ZWN0b3IoMSwgNSk7XFxuY29uc3QgRTEyID0gbnZlY3RvcigxLCA2KTtcXG5jb25zdCBFMDEyID0gbnZlY3RvcigxLCA3KTtcXG5jb25zdCBJID0gRTAxMjtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dloyRXVkSE11YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJRVUU3T3pzN096czdPenM3T3pzN096czdPMGRCYVVKSE8wRkJUMGtzVFVGQlRTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRlRMRVZCUVVVc1EwRkJVeXhGUVVGVExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVVY0UlN4TlFVRk5MRTFCUVUwc1IwRkJSeXhIUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVVZ5UkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhEUVVGRExFTkJRVk1zUlVGQlJTeERRVUZUTEVWQlFXRXNSVUZCUlR0SlFVTXpSQ3hOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEcxRFFVRnRRenRKUVVOc1JTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4SlFVRkpMRVZCUVVVc1EwRkJReXhIUVVGSExFbEJRVWtzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRhRVFzUTBGQlF5eERRVUZETzBGQlJVc3NUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGVExFVkJRVVVzUTBGQlV5eEZRVUZoTEVWQlFVVXNRMEZCUXp0SlFVTjZSQ3hEUVVGRE8wbEJRMFFzUTBGQlF6dEpRVU5FTEVOQlFVTTdTVUZEUkN4RFFVRkRPMGxCUTBRc1EwRkJRenRKUVVORUxFTkJRVU03U1VGRFJDeERRVUZETzBsQlEwUXNRMEZCUXp0RFFVTkdMRU5CUVVNN1FVRmxSaXhwUlVGQmFVVTdRVUZEYWtVc1RVRkJUU3haUVVGWkxFZEJRVWNzUTBGQlF5eEhRVUZITEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRk1VVXNjMFJCUVhORU8wRkJReTlETEUxQlFVMHNUMEZCVHl4SFFVRkhMRU5CUVVNc1VVRkJaMElzUTBGQlF5eEZRVUZGTEZGQlFXZENMRU5CUVVNc1JVRkJWeXhGUVVGRk8wbEJRM1pGTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNoRExFbEJRVWtzUzBGQlN5eEhRVUZITEVOQlFVTXNTVUZCU1N4TFFVRkxMRWRCUVVjc1EwRkJReXhGUVVGRk8xRkJRekZDTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc05FTkJRVFJETEV0QlFVc3NTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRlRVU3U1VGRFJDeEpRVUZKTEV0QlFVc3NTMEZCU3l4RFFVRkRMRVZCUVVVN1VVRkRaaXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRPMHRCUTNaQ08wbEJRMFFzVDBGQlR5eE5RVUUwUWl4RFFVRkRPMEZCUTNSRExFTkJRVU1zUTBGQlF6dEJRVVZHTEUxQlFVMHNZMEZCWXl4SFFVRkhMRkZCUVZFc1EwRkJRenRCUVVONlFpeE5RVUZOTEZGQlFWRXNSMEZCUnl4RFFVRkRMRTlCUVdkQ0xFVkJRVlVzUlVGQlJUdEpRVU51UkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhQUVVGUE8xTkJRMjVDTEVkQlFVY3NRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJTeERRVU53UWl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEdOQlFXTTdVVUZET1VJc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzUlVGQlJTeEZRVUZGTEVOQlFVTTdXVUZEZUVNc1EwRkJReXhMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXp0UlFVTjRReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVU5VTzFOQlEwRXNUVUZCVFN4RFFVRkRMRU5CUVVNc1kwRkJZeXhGUVVGRkxFVkJRVVVzUTBGQlF5eGpRVUZqTEVsQlFVa3NTVUZCU1N4RFFVRkRPMU5CUTJ4RUxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTm1MRTlCUVU4c1RVRkJUU3hMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03UVVGRGRFTXNRMEZCUXl4RFFVRkRPMEZCUlVZc2VVTkJRWGxETzBGQlEyeERMRTFCUVUwc1QwRkJUeXhIUVVGSExFTkJRVU1zVDBGQlowSXNSVUZCVnl4RlFVRkZMRU5CUVVNN1NVRkRjRVFzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTldMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFZpeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTFZc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5XTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOWUxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTllMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5ZTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenREUVVOYUxFTkJRVU03UVVGRlJpdzJRa0ZCTmtJN1FVRkRkRUlzVFVGQlRTeEpRVUZKTEVkQlFVY3NRMEZCUXl4UFFVRm5RaXhGUVVGWExFVkJRVVVzUTBGQlF6dEpRVU5xUkN4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMVlzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTldMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFZpeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTFZc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5XTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRWaXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlExWXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenREUVVOWUxFTkJRVU03UVVGRlJpeDFRa0ZCZFVJN1FVRkRhRUlzVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUXl4UFFVRm5RaXhGUVVGWExFVkJRVVVzUTBGQlF6dEpRVU4wUkN4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMVlzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTFnc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlExZ3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMWdzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTFnc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlExZ3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMWdzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0RFFVTllMRU5CUVVNN1FVRkZSaXhyUWtGQmEwSTdRVUZEV0N4TlFVRk5MRkZCUVZFc1IwRkJSeXhEUVVGRExFOUJRV2RDTEVWQlFWY3NSVUZCUlN4RFFVRkRPMGxCUTNKRUxFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEVml4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFdDeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRXQ3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEV0N4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMVlzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTldMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFZpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN1EwRkRXaXhEUVVGRE8wRkJSVVlzZFVKQlFYVkNPMEZCUTJoQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCVlN4RlFVRkZMRU5CUVcxQ0xFVkJRVmNzUlVGQlJUdEpRVU01UkN4SlFVRkpMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJUdFJRVU5tTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzB0QlF6ZEVPMGxCUTBRc1QwRkJUenRSUVVOTUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMWdzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRFdDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5ZTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlExZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEV0N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTllMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTFnc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRXaXhEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETzBGQlJVWXNNRUpCUVRCQ08wRkJRMjVDTEUxQlFVMHNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJWU3hGUVVGRkxFTkJRVzFDTEVWQlFWY3NSVUZCUlR0SlFVTTVSQ3hKUVVGSkxGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlR0UlFVTm1MRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMHRCUXpkRU8wbEJRMFFzVDBGQlR6dFJRVU5NTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlExZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEV0N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTllMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTFnc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRXQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOWUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMWdzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UzBGRFdpeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRPMEZCUlVZc2VVSkJRWGxDTzBGQlEyeENMRTFCUVUwc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlZTeEZRVUZGTEVOQlFXMUNMRVZCUVZjc1JVRkJSVHRKUVVNNVJDeEpRVUZKTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSVHRSUVVObUxFOUJRVTg3V1VGRFRDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJRenRaUVVOU0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRPMWxCUTFJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTTdXVUZEVWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF6dFpRVU5TTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRE8xbEJRMUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNN1dVRkRVaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXp0WlFVTlNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETzFOQlExUXNRMEZCUXp0TFFVTklPMGxCUTBRc1QwRkJUenRSUVVOTUxGTkJRVk1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTJZc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRWQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOWUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMWdzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRFdDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5ZTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlExZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEV0N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTmlMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0pFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNKRUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMVFzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRFdDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5ZTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlExZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEV0N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTllMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTFnc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRZaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOVUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMWdzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRFdDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5ZTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlExZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEV0N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTllMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTJJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGNrUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEVkN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTllMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTFnc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRXQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOWUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMWdzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRFdDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU5rTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxGTkJRVk1zUjBGQlJ5eERRVUZETEVOQlFWVXNSVUZCUlN4RFFVRlZMRVZCUVZVc1JVRkJSU3hEUVVNeFJDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUlhoRUxHOURRVUZ2UXp0QlFVTTNRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eERRVUZETEVOQlFWVXNSVUZCUlN4RFFVRlZMRVZCUVZjc1JVRkJSU3hEUVVGRE8wbEJRM1pFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlExZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjZRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM3BDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZWtJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGNrUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRja1FzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEY2tRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRWQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOWUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMWdzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRFdDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5ZTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlExZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRMEZEWkN4RFFVRkRPMEZCUlVZc01FSkJRVEJDTzBGQlEyNUNMRTFCUVUwc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlZTeEZRVUZGTEVOQlFWVXNSVUZCVnl4RlFVRkZMRU5CUVVNN1NVRkRka1FzVlVGQlZTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRhRUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEY2tRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGNrUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRja1FzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU42UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNwQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGVrSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRMEZEV2l4RFFVRkRPMEZCUlVzc1RVRkJUU3hWUVVGVkxFZEJRVWNzUTBGQlF5eERRVUZWTEVWQlFVVXNRMEZCVlN4RlFVRlZMRVZCUVVVc1EwRkRNMFFzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFdDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5ZTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlExZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEV0N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTllMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTFnc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRXQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJSV1FzY1VKQlFYRkNPMEZCUTJRc1RVRkJUU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZWTEVWQlFVVXNRMEZCVlN4RlFVRlhMRVZCUVVVc1EwRkJRenRKUVVOMFJDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnlSQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOVUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMWdzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRFdDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5ZTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlExZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEV0N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTllMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTJJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGNrUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRja1FzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEY2tRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGNrUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjZRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wTkJRekZDTEVOQlFVTTdRVUZGU3l4TlFVRk5MRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVlVzUlVGQlZTeEZRVUZGTEVOQlEzcERMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVVYwUlN4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVlVzUlVGQlZTeEZRVUZGTEVOQlF6RkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVVYwUlN4TlFVRk5MRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVlVzUlVGQlZ5eEZRVUZGTzBsQlEyaEVMRTFCUVUwc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnNRaXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSVHRSUVVOMFFpeFBRVUZQTEVOQlFVTXNRMEZCUXp0TFFVTldPMGxCUTBRc1RVRkJUU3hKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNdlFpeFBRVUZQTEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6RkNMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzVjBGQlZ5eEhRVUZITEVOQlFVTXNRMEZCVlN4RlFVRlhMRVZCUVVVN1NVRkRha1FzVFVGQlRTeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMjVDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTzFGQlEzUkNMRTlCUVU4c1EwRkJReXhEUVVGRE8wdEJRMVk3U1VGRFJDeFBRVUZQTEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzWkNMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzVVVGQlVTeEhRVUZITEVOQlFVTXNRMEZCVFN4RlFVRmxMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eFJRVUZSTEVOQlFVTTdRVUZGZWtRc1RVRkJUU3hGUVVGRkxFZEJRVmtzVDBGQlR5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOc1F5eE5RVUZOTEVWQlFVVXNSMEZCV1N4UFFVRlBMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyeERMRTFCUVUwc1JVRkJSU3hIUVVGWkxFOUJRVThzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRiRU1zVFVGQlRTeEhRVUZITEVkQlFWa3NUMEZCVHl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU51UXl4TlFVRk5MRWRCUVVjc1IwRkJXU3hQUVVGUExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTI1RExFMUJRVTBzUjBGQlJ5eEhRVUZaTEU5QlFVOHNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGJrTXNUVUZCVFN4SlFVRkpMRWRCUVZrc1QwRkJUeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTndReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WjJFdWRITS9OMkpoT0NKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaXBjYmlBcUlGUm9hWE1nYVhNZ1lTQXlSQ0JRY205cVpXTjBhWFpsSUVkbGIyMWxkSEpwWXlCQmJHZGxZbkpoSUdsdGNHeGxiV1Z1ZEdGMGFXOXVMbHh1SUNwY2JpQXFJRVp2Y2lCM2FXUmxjaUJqYjI1MFpYaDBJRzl1SUdkbGIyMWxkSEpwWXlCaGJHZGxZbkpoSUhacGMybDBJSE5sWlNCb2RIUndjem92TDJKcGRtVmpkRzl5TG01bGRDNWNiaUFxWEc0Z0tpQkdiM0lnZEdocGN5QnpjR1ZqYVdacFl5QmhiR2RsWW5KaElITmxaU0JqYUdWaGRITm9aV1YwSUdoMGRIQnpPaTh2WW1sMlpXTjBiM0l1Ym1WMEx6SkVVRWRCTG5Ca1ppNWNiaUFxWEc0Z0tpQkRiMjUyWlhKMFpXUWdabkp2YlNCblpXNWxjbUYwYjNJZ2QzSnBkSFJsYmlCaWVTQmxibXRwTENCM2FYUm9JR0VnZEc5dUlHOW1JR0ZrWkdWa0lHOXVJSFJ2Y0M1Y2JpQXFYRzRnS2lCVWFHbHpJR3hwWW5KaGNua2dkWE5sY3lBNExYWmxZM1J2Y25NZ2RHOGdjbVZ3Y21WelpXNTBJSEJ2YVc1MGN5d2daR2x5WldOMGFXOXVjeUJoYm1RZ2JHbHVaWE5jYmlBcUlHbHVJREpFSUhOd1lXTmxMbHh1SUNwY2JpQXFJRUZ1SUdGeWNtRjVJR0JiWVN3Z1lpd2dZeXdnWkN3Z1pTd2daaXdnWnl3Z2FGMWdJSEpsY0hKbGMyVnVkSE1nWVNCdUtEZ3BkbVZqZEc5eU9seHVJQ29nSUNCaElDc2dZaXBsTUNBcklHTXFaVEVnS3lCa0ttVXlJQ3NnWlNwbE1ERWdLeUJtS21VeU1DQXJJR2NxWlRFeUlDc2dhQ3BsTURFeVhHNGdLbHh1SUNvZ1UyVmxJRWRCVUc5cGJuUXNJRWRCVEdsdVpTd2dSMEZFYVhKbFkzUnBiMjRnWVc1a0lFZEJWSEpoYm5ObWIzSnRJRzF2WkhWc1pYTWdabTl5SUdOdmJXMXZibHh1SUNvZ2IzQmxjbUYwYVc5dWN5NWNiaUFxTDF4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JRYjJsdWRDQTlJRTVXWldOMGIzSTdYRzVsZUhCdmNuUWdkSGx3WlNCRWFYSmxZM1JwYjI0Z1BTQk9WbVZqZEc5eU8xeHVaWGh3YjNKMElIUjVjR1VnVEdsdVpTQTlJRTVXWldOMGIzSTdYRzVsZUhCdmNuUWdkSGx3WlNCVWNtRnVjMlp2Y20wZ1BTQk9WbVZqZEc5eU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2NHOXBiblFnUFNBb2VEb2diblZ0WW1WeUxDQjVPaUJ1ZFcxaVpYSXBPaUJRYjJsdWRDQTlQaUJiTUN3Z01Dd2dNQ3dnTUN3Z2VTd2dlQ3dnTVN3Z01GMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnZjbWxuYVc0Z1BTQW9LVG9nVUc5cGJuUWdQVDRnV3pBc0lEQXNJREFzSURBc0lEQXNJREFzSURFc0lEQmRPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdaR2x5WldOMGFXOXVJRDBnS0hnNklHNTFiV0psY2l3Z2VUb2diblZ0WW1WeUtUb2dSR2x5WldOMGFXOXVJRDArSUh0Y2JpQWdZMjl1YzNRZ2JtOXliU0E5SUUxaGRHZ3VhSGx3YjNRb2VDd2dlU2s3SUM4dklITmhiV1VnWVhNZ1lHbHViM0p0S0dScGNtVmpkR2x2YmloNExDQjVLU2xnWEc0Z0lISmxkSFZ5YmlCYk1Dd2dNQ3dnTUN3Z01Dd2dlU0F2SUc1dmNtMHNJSGdnTHlCdWIzSnRMQ0F3TENBd1hUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J2Wm1aelpYUWdQU0FvZURvZ2JuVnRZbVZ5TENCNU9pQnVkVzFpWlhJcE9pQkVhWEpsWTNScGIyNGdQVDRnVzF4dUlDQXdMRnh1SUNBd0xGeHVJQ0F3TEZ4dUlDQXdMRnh1SUNCNUxGeHVJQ0I0TEZ4dUlDQXdMRnh1SUNBd0xGeHVYVHRjYmx4dUx5OHZJRlJvYVhNZ2FYTWdkR2hsSUZ3aWFXMXdiR1Z0Wlc1MFlYUnBiMjVjSWlCd1lYSjBJRzltSUhSb1pTQnNhV0p5WVhKNVhHNWNiblI1Y0dVZ1RsWmxZM1J2Y2lBOUlISmxZV1J2Ym14NUlGdGNiaUFnYm5WdFltVnlMRnh1SUNCdWRXMWlaWElzWEc0Z0lHNTFiV0psY2l4Y2JpQWdiblZ0WW1WeUxGeHVJQ0J1ZFcxaVpYSXNYRzRnSUc1MWJXSmxjaXhjYmlBZ2JuVnRZbVZ5TEZ4dUlDQnVkVzFpWlhJc1hHNWRPMXh1WEc0dkx5QlVhR1Z6WlNCaGNtVWdiR0ZpWld4eklHWnZjaUIzYUdGMElHVmhZMmdnYm5WdFltVnlJR2x1SUdGdUlHNTJaV04wYjNJZ2NtVndjbVZ6Wlc1MGMxeHVZMjl1YzNRZ1RsWkZRMVJQVWw5Q1FWTkZJRDBnVzF3aU1Wd2lMQ0JjSW1Vd1hDSXNJRndpWlRGY0lpd2dYQ0psTWx3aUxDQmNJbVV3TVZ3aUxDQmNJbVV5TUZ3aUxDQmNJbVV4TWx3aUxDQmNJbVV3TVRKY0lsMDdYRzVjYmk4dklGVnpaV1FnZEc4Z2NtVndjbVZ6Wlc1MElIQnZhVzUwY3l3Z2JHbHVaWE1nWVc1a0lIUnlZVzV6Wm05eWJXRjBhVzl1YzF4dVpYaHdiM0owSUdOdmJuTjBJRzUyWldOMGIzSWdQU0FvZG1Gc2RXVTZJRzUxYldKbGNpQTlJREFzSUdsdVpHVjRPaUJ1ZFcxaVpYSWdQU0F3S1RvZ1RsWmxZM1J2Y2lBOVBpQjdYRzRnSUdOdmJuTjBJSEpsYzNWc2RDQTlJRnN3TENBd0xDQXdMQ0F3TENBd0xDQXdMQ0F3TENBd1hUdGNiaUFnYVdZZ0tHbHVaR1Y0SUR3Z01DQjhmQ0JwYm1SbGVDQStJRGNwSUh0Y2JpQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZRVY0Y0dWamRHVmtJRnhjWUdsdVpHVjRYRnhnSUdKbGRIZGxiaUF3SUdGdVpDQTNMQ0JuYjNRZ1hGeGdKSHRwYm1SbGVIMWNYR0JnS1R0Y2JpQWdmVnh1SUNCcFppQW9kbUZzZFdVZ0lUMDlJREFwSUh0Y2JpQWdJQ0J5WlhOMWJIUmJhVzVrWlhoZElEMGdkbUZzZFdVN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUhKbGMzVnNkQ0JoY3lCMWJtdHViM2R1SUdGeklFNVdaV04wYjNJN1hHNTlPMXh1WEc1amIyNXpkQ0JUVkZKSlRrZGZSVkJUU1V4UFRpQTlJREF1TURBd01EQXhPMXh1Wlhod2IzSjBJR052Ym5OMElIUnZVM1J5YVc1bklEMGdLRzUyWldOMGIzSTZJRTVXWldOMGIzSXBPaUJ6ZEhKcGJtY2dQVDRnZTF4dUlDQmpiMjV6ZENCeVpYTjFiSFFnUFNCdWRtVmpkRzl5WEc0Z0lDQWdMbTFoY0Nnb2RtRnNkV1VzSUdsdVpHVjRLU0E5UGx4dUlDQWdJQ0FnVFdGMGFDNWhZbk1vZG1Gc2RXVXBJRDRnVTFSU1NVNUhYMFZRVTBsTVQwNWNiaUFnSUNBZ0lDQWdQeUIyWVd4MVpTNTBiMFpwZUdWa0tEY3BMbkpsY0d4aFkyVW9MeWhjWEM1OE1Dc3BKQzhzSUZ3aVhDSXBJQ3RjYmlBZ0lDQWdJQ0FnSUNBb2FXNWtaWGdnUGlBd0lEOGdUbFpGUTFSUFVsOUNRVk5GVzJsdVpHVjRYU0E2SUZ3aVhDSXBYRzRnSUNBZ0lDQWdJRG9nYm5Wc2JDeGNiaUFnSUNBcFhHNGdJQ0FnTG1acGJIUmxjaWdvY21Wd2NtVnpaVzUwWVhScGIyNHBJRDArSUhKbGNISmxjMlZ1ZEdGMGFXOXVJQ0U5SUc1MWJHd3BYRzRnSUNBZ0xtcHZhVzRvWENJZ0t5QmNJaWs3WEc0Z0lISmxkSFZ5YmlCeVpYTjFiSFFnUFQwOUlGd2lYQ0lnUHlCY0lqQmNJaUE2SUhKbGMzVnNkRHRjYm4wN1hHNWNiaTh2SUZKbGRtVnljMlVnZEdobElHOXlaR1Z5SUc5bUlIUm9aU0JpWVhOcGN5QmliR0ZrWlhNdVhHNWxlSEJ2Y25RZ1kyOXVjM1FnY21WMlpYSnpaU0E5SUNodWRtVmpkRzl5T2lCT1ZtVmpkRzl5S1RvZ1RsWmxZM1J2Y2lBOVBpQmJYRzRnSUc1MlpXTjBiM0piTUYwc1hHNGdJRzUyWldOMGIzSmJNVjBzWEc0Z0lHNTJaV04wYjNKYk1sMHNYRzRnSUc1MlpXTjBiM0piTTEwc1hHNGdJQzF1ZG1WamRHOXlXelJkTEZ4dUlDQXRiblpsWTNSdmNsczFYU3hjYmlBZ0xXNTJaV04wYjNKYk5sMHNYRzRnSUMxdWRtVmpkRzl5V3pkZExGeHVYVHRjYmx4dUx5OGdVRzlwYm1OaGNtVWdaSFZoYkdsMGVTQnZjR1Z5WVhSdmNpNWNibVY0Y0c5eWRDQmpiMjV6ZENCa2RXRnNJRDBnS0c1MlpXTjBiM0k2SUU1V1pXTjBiM0lwT2lCT1ZtVmpkRzl5SUQwK0lGdGNiaUFnYm5abFkzUnZjbHMzWFN4Y2JpQWdiblpsWTNSdmNsczJYU3hjYmlBZ2JuWmxZM1J2Y2xzMVhTeGNiaUFnYm5abFkzUnZjbHMwWFN4Y2JpQWdiblpsWTNSdmNsc3pYU3hjYmlBZ2JuWmxZM1J2Y2xzeVhTeGNiaUFnYm5abFkzUnZjbHN4WFN4Y2JpQWdiblpsWTNSdmNsc3dYU3hjYmwwN1hHNWNiaTh2SUVOc2FXWm1iM0prSUVOdmJtcDFaMkYwYVc5dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWTI5dWFuVm5ZWFJsSUQwZ0tHNTJaV04wYjNJNklFNVdaV04wYjNJcE9pQk9WbVZqZEc5eUlEMCtJRnRjYmlBZ2JuWmxZM1J2Y2xzd1hTeGNiaUFnTFc1MlpXTjBiM0piTVYwc1hHNGdJQzF1ZG1WamRHOXlXekpkTEZ4dUlDQXRiblpsWTNSdmNsc3pYU3hjYmlBZ0xXNTJaV04wYjNKYk5GMHNYRzRnSUMxdWRtVmpkRzl5V3pWZExGeHVJQ0F0Ym5abFkzUnZjbHMyWFN4Y2JpQWdiblpsWTNSdmNsczNYU3hjYmwwN1hHNWNiaTh2SUUxaGFXNGdhVzUyYjJ4MWRHbHZibHh1Wlhod2IzSjBJR052Ym5OMElHbHVkbTlzZFhSbElEMGdLRzUyWldOMGIzSTZJRTVXWldOMGIzSXBPaUJPVm1WamRHOXlJRDArSUZ0Y2JpQWdiblpsWTNSdmNsc3dYU3hjYmlBZ0xXNTJaV04wYjNKYk1WMHNYRzRnSUMxdWRtVmpkRzl5V3pKZExGeHVJQ0F0Ym5abFkzUnZjbHN6WFN4Y2JpQWdiblpsWTNSdmNsczBYU3hjYmlBZ2JuWmxZM1J2Y2xzMVhTeGNiaUFnYm5abFkzUnZjbHMyWFN4Y2JpQWdMVzUyWldOMGIzSmJOMTBzWEc1ZE8xeHVYRzR2THlCTmRXeDBhWFpsWTNSdmNpQmhaR1JwZEdsdmJseHVaWGh3YjNKMElHTnZibk4wSUdGa1pDQTlJQ2hoT2lCT1ZtVmpkRzl5TENCaU9pQk9WbVZqZEc5eUlId2diblZ0WW1WeUtUb2dUbFpsWTNSdmNpQTlQaUI3WEc0Z0lHbG1JQ2hwYzA1MWJXSmxjaWhpS1NrZ2UxeHVJQ0FnSUhKbGRIVnliaUJiWVZzd1hTQXJJR0lzSUdGYk1WMHNJR0ZiTWwwc0lHRmJNMTBzSUdGYk5GMHNJR0ZiTlYwc0lHRmJObDBzSUdGYk4xMWRPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQmJYRzRnSUNBZ1lWc3dYU0FySUdKYk1GMHNYRzRnSUNBZ1lWc3hYU0FySUdKYk1WMHNYRzRnSUNBZ1lWc3lYU0FySUdKYk1sMHNYRzRnSUNBZ1lWc3pYU0FySUdKYk0xMHNYRzRnSUNBZ1lWczBYU0FySUdKYk5GMHNYRzRnSUNBZ1lWczFYU0FySUdKYk5WMHNYRzRnSUNBZ1lWczJYU0FySUdKYk5sMHNYRzRnSUNBZ1lWczNYU0FySUdKYk4xMHNYRzRnSUYwN1hHNTlPMXh1WEc0dkx5Qk5kV3gwYVhabFkzUnZjaUJ6ZFdKMGNtRmpkR2x2Ymx4dVpYaHdiM0owSUdOdmJuTjBJSE4xWWlBOUlDaGhPaUJPVm1WamRHOXlMQ0JpT2lCT1ZtVmpkRzl5SUh3Z2JuVnRZbVZ5S1RvZ1RsWmxZM1J2Y2lBOVBpQjdYRzRnSUdsbUlDaHBjMDUxYldKbGNpaGlLU2tnZTF4dUlDQWdJSEpsZEhWeWJpQmJZVnN3WFNBdElHSXNJR0ZiTVYwc0lHRmJNbDBzSUdGYk0xMHNJR0ZiTkYwc0lHRmJOVjBzSUdGYk5sMHNJR0ZiTjExZE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCYlhHNGdJQ0FnWVZzd1hTQXRJR0piTUYwc1hHNGdJQ0FnWVZzeFhTQXRJR0piTVYwc1hHNGdJQ0FnWVZzeVhTQXRJR0piTWwwc1hHNGdJQ0FnWVZzelhTQXRJR0piTTEwc1hHNGdJQ0FnWVZzMFhTQXRJR0piTkYwc1hHNGdJQ0FnWVZzMVhTQXRJR0piTlYwc1hHNGdJQ0FnWVZzMlhTQXRJR0piTmwwc1hHNGdJQ0FnWVZzM1hTQXRJR0piTjEwc1hHNGdJRjA3WEc1OU8xeHVYRzR2THlCVWFHVWdaMlZ2YldWMGNtbGpJSEJ5YjJSMVkzUXVYRzVsZUhCdmNuUWdZMjl1YzNRZ2JYVnNJRDBnS0dFNklFNVdaV04wYjNJc0lHSTZJRTVXWldOMGIzSWdmQ0J1ZFcxaVpYSXBPaUJPVm1WamRHOXlJRDArSUh0Y2JpQWdhV1lnS0dselRuVnRZbVZ5S0dJcEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUZ0Y2JpQWdJQ0FnSUdGYk1GMGdLaUJpTEZ4dUlDQWdJQ0FnWVZzeFhTQXFJR0lzWEc0Z0lDQWdJQ0JoV3pKZElDb2dZaXhjYmlBZ0lDQWdJR0ZiTTEwZ0tpQmlMRnh1SUNBZ0lDQWdZVnMwWFNBcUlHSXNYRzRnSUNBZ0lDQmhXelZkSUNvZ1lpeGNiaUFnSUNBZ0lHRmJObDBnS2lCaUxGeHVJQ0FnSUNBZ1lWczNYU0FxSUdJc1hHNGdJQ0FnWFR0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnVzF4dUlDQWdJRzExYkZOallXeGhjaWhoTENCaUtTeGNiaUFnSUNCaVd6RmRJQ29nWVZzd1hTQXJYRzRnSUNBZ0lDQmlXekJkSUNvZ1lWc3hYU0F0WEc0Z0lDQWdJQ0JpV3pSZElDb2dZVnN5WFNBclhHNGdJQ0FnSUNCaVd6VmRJQ29nWVZzelhTQXJYRzRnSUNBZ0lDQmlXekpkSUNvZ1lWczBYU0F0WEc0Z0lDQWdJQ0JpV3pOZElDb2dZVnMxWFNBdFhHNGdJQ0FnSUNCaVd6ZGRJQ29nWVZzMlhTQXRYRzRnSUNBZ0lDQmlXelpkSUNvZ1lWczNYU3hjYmlBZ0lDQmlXekpkSUNvZ1lWc3dYU0FySUdKYk1GMGdLaUJoV3pKZElDMGdZbHMyWFNBcUlHRmJNMTBnS3lCaVd6TmRJQ29nWVZzMlhTeGNiaUFnSUNCaVd6TmRJQ29nWVZzd1hTQXJJR0piTmwwZ0tpQmhXekpkSUNzZ1lsc3dYU0FxSUdGYk0xMGdMU0JpV3pKZElDb2dZVnMyWFN4Y2JpQWdJQ0JpV3pSZElDb2dZVnN3WFNBclhHNGdJQ0FnSUNCaVd6SmRJQ29nWVZzeFhTQXRYRzRnSUNBZ0lDQmlXekZkSUNvZ1lWc3lYU0FyWEc0Z0lDQWdJQ0JpV3pkZElDb2dZVnN6WFNBclhHNGdJQ0FnSUNCaVd6QmRJQ29nWVZzMFhTQXJYRzRnSUNBZ0lDQmlXelpkSUNvZ1lWczFYU0F0WEc0Z0lDQWdJQ0JpV3pWZElDb2dZVnMyWFNBclhHNGdJQ0FnSUNCaVd6TmRJQ29nWVZzM1hTeGNiaUFnSUNCaVd6VmRJQ29nWVZzd1hTQXRYRzRnSUNBZ0lDQmlXek5kSUNvZ1lWc3hYU0FyWEc0Z0lDQWdJQ0JpV3pkZElDb2dZVnN5WFNBclhHNGdJQ0FnSUNCaVd6RmRJQ29nWVZzelhTQXRYRzRnSUNBZ0lDQmlXelpkSUNvZ1lWczBYU0FyWEc0Z0lDQWdJQ0JpV3pCZElDb2dZVnMxWFNBclhHNGdJQ0FnSUNCaVd6UmRJQ29nWVZzMlhTQXJYRzRnSUNBZ0lDQmlXekpkSUNvZ1lWczNYU3hjYmlBZ0lDQmlXelpkSUNvZ1lWc3dYU0FySUdKYk0xMGdLaUJoV3pKZElDMGdZbHN5WFNBcUlHRmJNMTBnS3lCaVd6QmRJQ29nWVZzMlhTeGNiaUFnSUNCaVd6ZGRJQ29nWVZzd1hTQXJYRzRnSUNBZ0lDQmlXelpkSUNvZ1lWc3hYU0FyWEc0Z0lDQWdJQ0JpV3pWZElDb2dZVnN5WFNBclhHNGdJQ0FnSUNCaVd6UmRJQ29nWVZzelhTQXJYRzRnSUNBZ0lDQmlXek5kSUNvZ1lWczBYU0FyWEc0Z0lDQWdJQ0JpV3pKZElDb2dZVnMxWFNBclhHNGdJQ0FnSUNCaVd6RmRJQ29nWVZzMlhTQXJYRzRnSUNBZ0lDQmlXekJkSUNvZ1lWczNYU3hjYmlBZ1hUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J0ZFd4VFkyRnNZWElnUFNBb1lUb2dUbFpsWTNSdmNpd2dZam9nVGxabFkzUnZjaWs2SUc1MWJXSmxjaUE5UGx4dUlDQmlXekJkSUNvZ1lWc3dYU0FySUdKYk1sMGdLaUJoV3pKZElDc2dZbHN6WFNBcUlHRmJNMTBnTFNCaVd6WmRJQ29nWVZzMlhUdGNibHh1THk4Z1ZHaGxJRzkxZEdWeUwyVjRkR1Z5YVc5eUwzZGxaR2RsSUhCeWIyUjFZM1F1WEc1bGVIQnZjblFnWTI5dWMzUWdiV1ZsZENBOUlDaGhPaUJPVm1WamRHOXlMQ0JpT2lCT1ZtVmpkRzl5S1RvZ1RsWmxZM1J2Y2lBOVBpQmJYRzRnSUdKYk1GMGdLaUJoV3pCZExGeHVJQ0JpV3pGZElDb2dZVnN3WFNBcklHSmJNRjBnS2lCaFd6RmRMRnh1SUNCaVd6SmRJQ29nWVZzd1hTQXJJR0piTUYwZ0tpQmhXekpkTEZ4dUlDQmlXek5kSUNvZ1lWc3dYU0FySUdKYk1GMGdLaUJoV3pOZExGeHVJQ0JpV3pSZElDb2dZVnN3WFNBcklHSmJNbDBnS2lCaFd6RmRJQzBnWWxzeFhTQXFJR0ZiTWwwZ0t5QmlXekJkSUNvZ1lWczBYU3hjYmlBZ1lsczFYU0FxSUdGYk1GMGdMU0JpV3pOZElDb2dZVnN4WFNBcklHSmJNVjBnS2lCaFd6TmRJQ3NnWWxzd1hTQXFJR0ZiTlYwc1hHNGdJR0piTmwwZ0tpQmhXekJkSUNzZ1lsc3pYU0FxSUdGYk1sMGdMU0JpV3pKZElDb2dZVnN6WFNBcklHSmJNRjBnS2lCaFd6WmRMRnh1SUNCaVd6ZGRJQ29nWVZzd1hTQXJYRzRnSUNBZ1lsczJYU0FxSUdGYk1WMGdLMXh1SUNBZ0lHSmJOVjBnS2lCaFd6SmRJQ3RjYmlBZ0lDQmlXelJkSUNvZ1lWc3pYU0FyWEc0Z0lDQWdZbHN6WFNBcUlHRmJORjBnSzF4dUlDQWdJR0piTWwwZ0tpQmhXelZkSUN0Y2JpQWdJQ0JpV3pGZElDb2dZVnMyWFN4Y2JsMDdYRzVjYmk4dklGUm9aU0J5WldkeVpYTnphWFpsSUhCeWIyUjFZM1F1WEc1bGVIQnZjblFnWTI5dWMzUWdhbTlwYmlBOUlDaGhPaUJPVm1WamRHOXlMQ0JpT2lCT1ZtVmpkRzl5S1RvZ1RsWmxZM1J2Y2lBOVBpQmJYRzRnSUdwdmFXNVRZMkZzWVhJb1lTd2dZaWtzWEc0Z0lHRmJNVjBnS2lCaVd6ZGRJQ3NnWVZzMFhTQXFJR0piTlYwZ0xTQmhXelZkSUNvZ1lsczBYU0FySUdGYk4xMGdLaUJpV3pGZExGeHVJQ0JoV3pKZElDb2dZbHMzWFNBdElHRmJORjBnS2lCaVd6WmRJQ3NnWVZzMlhTQXFJR0piTkYwZ0t5QmhXemRkSUNvZ1lsc3lYU3hjYmlBZ1lWc3pYU0FxSUdKYk4xMGdLeUJoV3pWZElDb2dZbHMyWFNBdElHRmJObDBnS2lCaVd6VmRJQ3NnWVZzM1hTQXFJR0piTTEwc1hHNGdJR0ZiTkYwZ0tpQmlXemRkSUNzZ1lWczNYU0FxSUdKYk5GMHNYRzRnSUdGYk5WMGdLaUJpV3pkZElDc2dZVnMzWFNBcUlHSmJOVjBzWEc0Z0lHRmJObDBnS2lCaVd6ZGRJQ3NnWVZzM1hTQXFJR0piTmwwc1hHNGdJR0ZiTjEwZ0tpQmlXemRkTEZ4dVhUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHcHZhVzVUWTJGc1lYSWdQU0FvWVRvZ1RsWmxZM1J2Y2l3Z1lqb2dUbFpsWTNSdmNpazZJRzUxYldKbGNpQTlQbHh1SUNCaFd6QmRJQ29nWWxzM1hTQXJYRzRnSUdGYk1WMGdLaUJpV3paZElDdGNiaUFnWVZzeVhTQXFJR0piTlYwZ0sxeHVJQ0JoV3pOZElDb2dZbHMwWFNBclhHNGdJR0ZiTkYwZ0tpQmlXek5kSUN0Y2JpQWdZVnMxWFNBcUlHSmJNbDBnSzF4dUlDQmhXelpkSUNvZ1lsc3hYU0FyWEc0Z0lHRmJOMTBnS2lCaVd6QmRPMXh1WEc0dkx5QlVhR1VnYVc1dVpYSWdjSEp2WkhWamRDNWNibVY0Y0c5eWRDQmpiMjV6ZENCa2IzUWdQU0FvWVRvZ1RsWmxZM1J2Y2l3Z1lqb2dUbFpsWTNSdmNpazZJRTVXWldOMGIzSWdQVDRnVzF4dUlDQmlXekJkSUNvZ1lWc3dYU0FySUdKYk1sMGdLaUJoV3pKZElDc2dZbHN6WFNBcUlHRmJNMTBnTFNCaVd6WmRJQ29nWVZzMlhTeGNiaUFnWWxzeFhTQXFJR0ZiTUYwZ0sxeHVJQ0FnSUdKYk1GMGdLaUJoV3pGZElDMWNiaUFnSUNCaVd6UmRJQ29nWVZzeVhTQXJYRzRnSUNBZ1lsczFYU0FxSUdGYk0xMGdLMXh1SUNBZ0lHSmJNbDBnS2lCaFd6UmRJQzFjYmlBZ0lDQmlXek5kSUNvZ1lWczFYU0F0WEc0Z0lDQWdZbHMzWFNBcUlHRmJObDBnTFZ4dUlDQWdJR0piTmwwZ0tpQmhXemRkTEZ4dUlDQmlXekpkSUNvZ1lWc3dYU0FySUdKYk1GMGdLaUJoV3pKZElDMGdZbHMyWFNBcUlHRmJNMTBnS3lCaVd6TmRJQ29nWVZzMlhTeGNiaUFnWWxzelhTQXFJR0ZiTUYwZ0t5QmlXelpkSUNvZ1lWc3lYU0FySUdKYk1GMGdLaUJoV3pOZElDMGdZbHN5WFNBcUlHRmJObDBzWEc0Z0lHSmJORjBnS2lCaFd6QmRJQ3NnWWxzM1hTQXFJR0ZiTTEwZ0t5QmlXekJkSUNvZ1lWczBYU0FySUdKYk0xMGdLaUJoV3pkZExGeHVJQ0JpV3pWZElDb2dZVnN3WFNBcklHSmJOMTBnS2lCaFd6SmRJQ3NnWWxzd1hTQXFJR0ZiTlYwZ0t5QmlXekpkSUNvZ1lWczNYU3hjYmlBZ1lsczJYU0FxSUdGYk1GMGdLeUJpV3pCZElDb2dZVnMyWFN4Y2JpQWdZbHMzWFNBcUlHRmJNRjBnS3lCaVd6QmRJQ29nWVZzM1hTeGNibDA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J1YjNKdElEMGdLR0U2SUU1V1pXTjBiM0lwT2lCdWRXMWlaWElnUFQ1Y2JpQWdUV0YwYUM1emNYSjBLRTFoZEdndVlXSnpLR0ZiTUYwZ0tpQmhXekJkSUMwZ1lWc3lYU0FxSUdGYk1sMGdMU0JoV3pOZElDb2dZVnN6WFNBcklHRmJObDBnS2lCaFd6WmRLU2s3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JwYm05eWJTQTlJQ2hoT2lCT1ZtVmpkRzl5S1RvZ2JuVnRZbVZ5SUQwK1hHNGdJRTFoZEdndWMzRnlkQ2hOWVhSb0xtRmljeWhoV3pkZElDb2dZVnMzWFNBdElHRmJOVjBnS2lCaFd6VmRJQzBnWVZzMFhTQXFJR0ZiTkYwZ0t5QmhXekZkSUNvZ1lWc3hYU2twTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYm05eWJXRnNhWHBsWkNBOUlDaGhPaUJPVm1WamRHOXlLVG9nVGxabFkzUnZjaUE5UGlCN1hHNGdJR052Ym5OMElHNGdQU0J1YjNKdEtHRXBPMXh1SUNCcFppQW9iaUE5UFQwZ01DQjhmQ0J1SUQwOVBTQXhLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHRTdYRzRnSUgxY2JpQWdZMjl1YzNRZ2MybG5iaUE5SUdGYk5sMGdQQ0F3SUQ4Z0xURWdPaUF4TzF4dUlDQnlaWFIxY200Z2JYVnNLR0VzSUhOcFoyNGdMeUJ1S1R0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnBibTl5YldGc2FYcGxaQ0E5SUNoaE9pQk9WbVZqZEc5eUtUb2dUbFpsWTNSdmNpQTlQaUI3WEc0Z0lHTnZibk4wSUc0Z1BTQnBibTl5YlNoaEtUdGNiaUFnYVdZZ0tHNGdQVDA5SURBZ2ZId2diaUE5UFQwZ01Ta2dlMXh1SUNBZ0lISmxkSFZ5YmlCaE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCdGRXd29ZU3dnTVNBdklHNHBPMXh1ZlR0Y2JseHVZMjl1YzNRZ2FYTk9kVzFpWlhJZ1BTQW9ZVG9nWVc1NUtUb2dZU0JwY3lCdWRXMWlaWElnUFQ0Z2RIbHdaVzltSUdFZ1BUMDlJRndpYm5WdFltVnlYQ0k3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JGTURvZ1RsWmxZM1J2Y2lBOUlHNTJaV04wYjNJb01Td2dNU2s3WEc1bGVIQnZjblFnWTI5dWMzUWdSVEU2SUU1V1pXTjBiM0lnUFNCdWRtVmpkRzl5S0RFc0lESXBPMXh1Wlhod2IzSjBJR052Ym5OMElFVXlPaUJPVm1WamRHOXlJRDBnYm5abFkzUnZjaWd4TENBektUdGNibVY0Y0c5eWRDQmpiMjV6ZENCRk1ERTZJRTVXWldOMGIzSWdQU0J1ZG1WamRHOXlLREVzSURRcE8xeHVaWGh3YjNKMElHTnZibk4wSUVVeU1Eb2dUbFpsWTNSdmNpQTlJRzUyWldOMGIzSW9NU3dnTlNrN1hHNWxlSEJ2Y25RZ1kyOXVjM1FnUlRFeU9pQk9WbVZqZEc5eUlEMGdiblpsWTNSdmNpZ3hMQ0EyS1R0Y2JtVjRjRzl5ZENCamIyNXpkQ0JGTURFeU9pQk9WbVZqZEc5eUlEMGdiblpsWTNSdmNpZ3hMQ0EzS1R0Y2JtVjRjRzl5ZENCamIyNXpkQ0JKSUQwZ1JUQXhNanRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZ2EudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2dhZGlyZWN0aW9ucy50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vZ2FkaXJlY3Rpb25zLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZnJvbVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGZyb20pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImZyb21Ub1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGZyb21UbyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwib3J0aG9nb25hbFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIG9ydGhvZ29uYWwpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIm9ydGhvZ29uYWxUb0xpbmVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBvcnRob2dvbmFsVG9MaW5lKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vZ2EgKi8gXFxcIi4uLy4uL2dhLnRzXFxcIik7XFxuXFxuLyoqXFxuICogQSBkaXJlY3Rpb24gaXMgc3RvcmVkIGFzIGFuIGFycmF5IGBbMCwgMCwgMCwgMCwgeSwgeCwgMCwgMF1gIHJlcHJlc2VudGluZ1xcbiAqIHZlY3RvciBgKHgsIHkpYC5cXG4gKi9cXG5jb25zdCBmcm9tID0gKHBvaW50KSA9PiBbXFxuICAgIDAsXFxuICAgIDAsXFxuICAgIDAsXFxuICAgIDAsXFxuICAgIHBvaW50WzRdLFxcbiAgICBwb2ludFs1XSxcXG4gICAgMCxcXG4gICAgMCxcXG5dO1xcbmNvbnN0IGZyb21UbyA9IChmcm9tLCB0bykgPT4gX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uaW5vcm1hbGl6ZWQoWzAsIDAsIDAsIDAsIHRvWzRdIC0gZnJvbVs0XSwgdG9bNV0gLSBmcm9tWzVdLCAwLCAwXSk7XFxuY29uc3Qgb3J0aG9nb25hbCA9IChkaXJlY3Rpb24pID0+IF9nYV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmlub3JtYWxpemVkKFswLCAwLCAwLCAwLCAtZGlyZWN0aW9uWzVdLCBkaXJlY3Rpb25bNF0sIDAsIDBdKTtcXG5jb25zdCBvcnRob2dvbmFsVG9MaW5lID0gKGxpbmUpID0+IF9nYV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm11bChsaW5lLCBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5JKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dloyRmthWEpsWTNScGIyNXpMblJ6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPMEZCUVRKQ08wRkJSek5DT3pzN1IwRkhSenRCUVVWSkxFMUJRVTBzU1VGQlNTeEhRVUZITEVOQlFVTXNTMEZCV1N4RlFVRlRMRVZCUVVVc1EwRkJRenRKUVVNelF5eERRVUZETzBsQlEwUXNRMEZCUXp0SlFVTkVMRU5CUVVNN1NVRkRSQ3hEUVVGRE8wbEJRMFFzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTlNMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFVpeERRVUZETzBsQlEwUXNRMEZCUXp0RFFVTkdMRU5CUVVNN1FVRkZTeXhOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEVsQlFWY3NSVUZCUlN4RlFVRlRMRVZCUVdFc1JVRkJSU3hEUVVNeFJDdzBRMEZCWXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVVm9SU3hOUVVGTkxGVkJRVlVzUjBGQlJ5eERRVUZETEZOQlFXOUNMRVZCUVdFc1JVRkJSU3hEUVVNMVJDdzBRMEZCWXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVVXpSQ3hOUVVGTkxHZENRVUZuUWl4SFFVRkhMRU5CUVVNc1NVRkJWU3hGUVVGaExFVkJRVVVzUTBGQlF5eHZRMEZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hyUTBGQlNTeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2WjJGa2FYSmxZM1JwYjI1ekxuUnpQemcyWWpFaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElDb2dZWE1nUjBFZ1puSnZiU0JjSWk0dloyRmNJanRjYm1sdGNHOXlkQ0I3SUV4cGJtVXNJRVJwY21WamRHbHZiaXdnVUc5cGJuUWdmU0JtY205dElGd2lMaTluWVZ3aU8xeHVYRzR2S2lwY2JpQXFJRUVnWkdseVpXTjBhVzl1SUdseklITjBiM0psWkNCaGN5QmhiaUJoY25KaGVTQmdXekFzSURBc0lEQXNJREFzSUhrc0lIZ3NJREFzSURCZFlDQnlaWEJ5WlhObGJuUnBibWRjYmlBcUlIWmxZM1J2Y2lCZ0tIZ3NJSGtwWUM1Y2JpQXFMMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdabkp2YlNBOUlDaHdiMmx1ZERvZ1VHOXBiblFwT2lCUWIybHVkQ0E5UGlCYlhHNGdJREFzWEc0Z0lEQXNYRzRnSURBc1hHNGdJREFzWEc0Z0lIQnZhVzUwV3pSZExGeHVJQ0J3YjJsdWRGczFYU3hjYmlBZ01DeGNiaUFnTUN4Y2JsMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm1jbTl0Vkc4Z1BTQW9abkp2YlRvZ1VHOXBiblFzSUhSdk9pQlFiMmx1ZENrNklFUnBjbVZqZEdsdmJpQTlQbHh1SUNCSFFTNXBibTl5YldGc2FYcGxaQ2hiTUN3Z01Dd2dNQ3dnTUN3Z2RHOWJORjBnTFNCbWNtOXRXelJkTENCMGIxczFYU0F0SUdaeWIyMWJOVjBzSURBc0lEQmRLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRzl5ZEdodloyOXVZV3dnUFNBb1pHbHlaV04wYVc5dU9pQkVhWEpsWTNScGIyNHBPaUJFYVhKbFkzUnBiMjRnUFQ1Y2JpQWdSMEV1YVc1dmNtMWhiR2w2WldRb1d6QXNJREFzSURBc0lEQXNJQzFrYVhKbFkzUnBiMjViTlYwc0lHUnBjbVZqZEdsdmJsczBYU3dnTUN3Z01GMHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdiM0owYUc5bmIyNWhiRlJ2VEdsdVpTQTlJQ2hzYVc1bE9pQk1hVzVsS1RvZ1JHbHlaV04wYVc5dUlEMCtJRWRCTG0xMWJDaHNhVzVsTENCSFFTNUpLVHRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZ2FkaXJlY3Rpb25zLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9nYWxpbmVzLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vZ2FsaW5lcy50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJ2ZWN0b3JcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB2ZWN0b3IpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImVxdWF0aW9uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZXF1YXRpb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInRocm91Z2hcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB0aHJvdWdoKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJvcnRob2dvbmFsXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gb3J0aG9nb25hbCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwib3J0aG9nb25hbFRocm91Z2hcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBvcnRob2dvbmFsVGhyb3VnaCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicGFyYWxsZWxcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBwYXJhbGxlbCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicGFyYWxsZWxUaHJvdWdoXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcGFyYWxsZWxUaHJvdWdoKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkaXN0YW5jZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGRpc3RhbmNlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhbmdsZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFuZ2xlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJzaWduXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gc2lnbilcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2dhICovIFxcXCIuLi8uLi9nYS50c1xcXCIpO1xcblxcbi8qKlxcbiAqIEEgbGluZSBpcyBzdG9yZWQgYXMgYW4gYXJyYXkgYFswLCBjLCBhLCBiLCAwLCAwLCAwLCAwXWAgcmVwcmVzZW50aW5nOlxcbiAqICAgYyAqIGUwICsgYSAqIGUxICsgYiplMlxcbiAqXFxuICogVGhpcyBtYXBzIHRvIGEgc3RhbmRhcmQgZm9ybXVsYSBgYSAqIHggKyBiICogeSArIGNgLlxcbiAqXFxuICogYCgtYiwgYSlgIGNvcnJlcG9uZHMgdG8gYSAyRCB2ZWN0b3IgcGFyYWxsZWwgdG8gdGhlIGxpbmUuIFRoZSBsaW5lc1xcbiAqIGhhdmUgYSBuYXR1cmFsIG9yaWVudGF0aW9uLCBjb3JyZXNwb25kaW5nIHRvIHRoYXQgdmVjdG9yLlxcbiAqXFxuICogVGhlIG1hZ25pdHVkZSAoXFxcIm5vcm1cXFwiKSBvZiB0aGUgbGluZSBpcyBgc3FydChhIF4gMiArIGIgXiAyKWAuXFxuICogYGMgLyBub3JtKGxpbmUpYCBpcyB0aGUgb3JpZW50ZWQgZGlzdGFuY2UgZnJvbSBsaW5lIHRvIG9yaWdpbi5cXG4gKi9cXG4vLyBSZXR1cm5zIGxpbmUgd2l0aCBkaXJlY3Rpb24gKHgsIHkpIHRocm91Z2ggb3JpZ2luXFxuY29uc3QgdmVjdG9yID0gKHgsIHkpID0+IF9nYV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm5vcm1hbGl6ZWQoWzAsIDAsIC15LCB4LCAwLCAwLCAwLCAwXSk7XFxuLy8gRm9yIGVxdWF0aW9uIGF4ICsgYnkgKyBjID0gMC5cXG5jb25zdCBlcXVhdGlvbiA9IChhLCBiLCBjKSA9PiBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5ub3JtYWxpemVkKFswLCBjLCBhLCBiLCAwLCAwLCAwLCAwXSk7XFxuY29uc3QgdGhyb3VnaCA9IChmcm9tLCB0bykgPT4gX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubm9ybWFsaXplZChfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qb2luKHRvLCBmcm9tKSk7XFxuY29uc3Qgb3J0aG9nb25hbCA9IChsaW5lLCBwb2ludCkgPT4gX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZG90KGxpbmUsIHBvaW50KTtcXG4vLyBSZXR1cm5zIGEgbGluZSBwZXJwZW5kaWN1bGFyIHRvIHRoZSBsaW5lIHRocm91Z2ggYGFnYWluc3RgIGFuZCBgaW50ZXJzZWN0aW9uYFxcbi8vIGdvaW5nIHRocm91Z2ggYGludGVyc2VjdGlvbmAuXFxuY29uc3Qgb3J0aG9nb25hbFRocm91Z2ggPSAoYWdhaW5zdCwgaW50ZXJzZWN0aW9uKSA9PiBvcnRob2dvbmFsKHRocm91Z2goYWdhaW5zdCwgaW50ZXJzZWN0aW9uKSwgaW50ZXJzZWN0aW9uKTtcXG5jb25zdCBwYXJhbGxlbCA9IChsaW5lLCBkaXN0YW5jZSkgPT4ge1xcbiAgICBjb25zdCByZXN1bHQgPSBsaW5lLnNsaWNlKCk7XFxuICAgIHJlc3VsdFsxXSAtPSBkaXN0YW5jZTtcXG4gICAgcmV0dXJuIHJlc3VsdDtcXG59O1xcbmNvbnN0IHBhcmFsbGVsVGhyb3VnaCA9IChsaW5lLCBwb2ludCkgPT4gb3J0aG9nb25hbChvcnRob2dvbmFsKHBvaW50LCBsaW5lKSwgcG9pbnQpO1xcbmNvbnN0IGRpc3RhbmNlID0gKGxpbmUxLCBsaW5lMikgPT4gX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uaW5vcm0oX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubWVldChsaW5lMSwgbGluZTIpKTtcXG5jb25zdCBhbmdsZSA9IChsaW5lMSwgbGluZTIpID0+IE1hdGguYWNvcyhfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5kb3QobGluZTEsIGxpbmUyKVswXSk7XFxuLy8gVGhlIG9yaWVudGF0aW9uIG9mIHRoZSBsaW5lXFxuY29uc3Qgc2lnbiA9IChsaW5lKSA9PiBNYXRoLnNpZ24obGluZVsxXSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZaMkZzYVc1bGN5NTBjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3T3p0QlFVRXlRanRCUVVjelFqczdPenM3T3pzN096czdSMEZYUnp0QlFVVklMRzlFUVVGdlJEdEJRVU0zUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVk1zUlVGQlJTeERRVUZUTEVWQlFWRXNSVUZCUlN4RFFVTnVSQ3d5UTBGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVVXpReXhuUTBGQlowTTdRVUZEZWtJc1RVRkJUU3hSUVVGUkxFZEJRVWNzUTBGQlF5eERRVUZUTEVWQlFVVXNRMEZCVXl4RlFVRkZMRU5CUVZNc1JVRkJVU3hGUVVGRkxFTkJRMmhGTERKRFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVWdVF5eE5RVUZOTEU5QlFVOHNSMEZCUnl4RFFVRkRMRWxCUVZjc1JVRkJSU3hGUVVGVExFVkJRVkVzUlVGQlJTeERRVU4wUkN3eVEwRkJZU3hEUVVGRExIRkRRVUZQTEVOQlFVTXNSVUZCUlN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRk5VSXNUVUZCVFN4VlFVRlZMRWRCUVVjc1EwRkJReXhKUVVGVkxFVkJRVVVzUzBGQldTeEZRVUZSTEVWQlFVVXNRMEZETTBRc2IwTkJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkZkRUlzWjBaQlFXZEdPMEZCUTJoR0xHZERRVUZuUXp0QlFVTjZRaXhOUVVGTkxHbENRVUZwUWl4SFFVRkhMRU5CUVVNc1QwRkJZeXhGUVVGRkxGbEJRVzFDTEVWQlFWRXNSVUZCUlN4RFFVTTNSU3hWUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNSVUZCUlN4WlFVRlpMRU5CUVVNc1JVRkJSU3haUVVGWkxFTkJRVU1zUTBGQlF6dEJRVVZ3UkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhEUVVGRExFbEJRVlVzUlVGQlJTeFJRVUZuUWl4RlFVRlJMRVZCUVVVN1NVRkROMFFzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRE8wbEJRelZDTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hSUVVGUkxFTkJRVU03U1VGRGRFSXNUMEZCVHl4TlFVRjVRaXhEUVVGRE8wRkJRMjVETEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc1pVRkJaU3hIUVVGSExFTkJRVU1zU1VGQlZTeEZRVUZGTEV0QlFWa3NSVUZCVVN4RlFVRkZMRU5CUTJoRkxGVkJRVlVzUTBGQlF5eFZRVUZWTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBGQlJYUkRMRTFCUVUwc1VVRkJVU3hIUVVGSExFTkJRVU1zUzBGQlZ5eEZRVUZGTEV0QlFWY3NSVUZCVlN4RlFVRkZMRU5CUXpORUxITkRRVUZSTEVOQlFVTXNjVU5CUVU4c1EwRkJReXhMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVVXpRaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEV0QlFWY3NSVUZCUlN4TFFVRlhMRVZCUVZVc1JVRkJSU3hEUVVONFJDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRzlEUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRmNrTXNPRUpCUVRoQ08wRkJRM1pDTEUxQlFVMHNTVUZCU1N4SFFVRkhMRU5CUVVNc1NVRkJWU3hGUVVGVkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyZGhiR2x1WlhNdWRITS9NbUZsTlNKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ0tpQmhjeUJIUVNCbWNtOXRJRndpTGk5bllWd2lPMXh1YVcxd2IzSjBJSHNnVEdsdVpTd2dVRzlwYm5RZ2ZTQm1jbTl0SUZ3aUxpOW5ZVndpTzF4dVhHNHZLaXBjYmlBcUlFRWdiR2x1WlNCcGN5QnpkRzl5WldRZ1lYTWdZVzRnWVhKeVlYa2dZRnN3TENCakxDQmhMQ0JpTENBd0xDQXdMQ0F3TENBd1hXQWdjbVZ3Y21WelpXNTBhVzVuT2x4dUlDb2dJQ0JqSUNvZ1pUQWdLeUJoSUNvZ1pURWdLeUJpS21VeVhHNGdLbHh1SUNvZ1ZHaHBjeUJ0WVhCeklIUnZJR0VnYzNSaGJtUmhjbVFnWm05eWJYVnNZU0JnWVNBcUlIZ2dLeUJpSUNvZ2VTQXJJR05nTGx4dUlDcGNiaUFxSUdBb0xXSXNJR0VwWUNCamIzSnlaWEJ2Ym1SeklIUnZJR0VnTWtRZ2RtVmpkRzl5SUhCaGNtRnNiR1ZzSUhSdklIUm9aU0JzYVc1bExpQlVhR1VnYkdsdVpYTmNiaUFxSUdoaGRtVWdZU0J1WVhSMWNtRnNJRzl5YVdWdWRHRjBhVzl1TENCamIzSnlaWE53YjI1a2FXNW5JSFJ2SUhSb1lYUWdkbVZqZEc5eUxseHVJQ3BjYmlBcUlGUm9aU0J0WVdkdWFYUjFaR1VnS0Z3aWJtOXliVndpS1NCdlppQjBhR1VnYkdsdVpTQnBjeUJnYzNGeWRDaGhJRjRnTWlBcklHSWdYaUF5S1dBdVhHNGdLaUJnWXlBdklHNXZjbTBvYkdsdVpTbGdJR2x6SUhSb1pTQnZjbWxsYm5SbFpDQmthWE4wWVc1alpTQm1jbTl0SUd4cGJtVWdkRzhnYjNKcFoybHVMbHh1SUNvdlhHNWNiaTh2SUZKbGRIVnlibk1nYkdsdVpTQjNhWFJvSUdScGNtVmpkR2x2YmlBb2VDd2dlU2tnZEdoeWIzVm5hQ0J2Y21sbmFXNWNibVY0Y0c5eWRDQmpiMjV6ZENCMlpXTjBiM0lnUFNBb2VEb2diblZ0WW1WeUxDQjVPaUJ1ZFcxaVpYSXBPaUJNYVc1bElEMCtYRzRnSUVkQkxtNXZjbTFoYkdsNlpXUW9XekFzSURBc0lDMTVMQ0I0TENBd0xDQXdMQ0F3TENBd1hTazdYRzVjYmk4dklFWnZjaUJsY1hWaGRHbHZiaUJoZUNBcklHSjVJQ3NnWXlBOUlEQXVYRzVsZUhCdmNuUWdZMjl1YzNRZ1pYRjFZWFJwYjI0Z1BTQW9ZVG9nYm5WdFltVnlMQ0JpT2lCdWRXMWlaWElzSUdNNklHNTFiV0psY2lrNklFeHBibVVnUFQ1Y2JpQWdSMEV1Ym05eWJXRnNhWHBsWkNoYk1Dd2dZeXdnWVN3Z1lpd2dNQ3dnTUN3Z01Dd2dNRjBwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnZEdoeWIzVm5hQ0E5SUNobWNtOXRPaUJRYjJsdWRDd2dkRzg2SUZCdmFXNTBLVG9nVEdsdVpTQTlQbHh1SUNCSFFTNXViM0p0WVd4cGVtVmtLRWRCTG1wdmFXNG9kRzhzSUdaeWIyMHBLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRzl5ZEdodloyOXVZV3dnUFNBb2JHbHVaVG9nVEdsdVpTd2djRzlwYm5RNklGQnZhVzUwS1RvZ1RHbHVaU0E5UGx4dUlDQkhRUzVrYjNRb2JHbHVaU3dnY0c5cGJuUXBPMXh1WEc0dkx5QlNaWFIxY201eklHRWdiR2x1WlNCd1pYSndaVzVrYVdOMWJHRnlJSFJ2SUhSb1pTQnNhVzVsSUhSb2NtOTFaMmdnWUdGbllXbHVjM1JnSUdGdVpDQmdhVzUwWlhKelpXTjBhVzl1WUZ4dUx5OGdaMjlwYm1jZ2RHaHliM1ZuYUNCZ2FXNTBaWEp6WldOMGFXOXVZQzVjYm1WNGNHOXlkQ0JqYjI1emRDQnZjblJvYjJkdmJtRnNWR2h5YjNWbmFDQTlJQ2hoWjJGcGJuTjBPaUJRYjJsdWRDd2dhVzUwWlhKelpXTjBhVzl1T2lCUWIybHVkQ2s2SUV4cGJtVWdQVDVjYmlBZ2IzSjBhRzluYjI1aGJDaDBhSEp2ZFdkb0tHRm5ZV2x1YzNRc0lHbHVkR1Z5YzJWamRHbHZiaWtzSUdsdWRHVnljMlZqZEdsdmJpazdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQndZWEpoYkd4bGJDQTlJQ2hzYVc1bE9pQk1hVzVsTENCa2FYTjBZVzVqWlRvZ2JuVnRZbVZ5S1RvZ1RHbHVaU0E5UGlCN1hHNGdJR052Ym5OMElISmxjM1ZzZENBOUlHeHBibVV1YzJ4cFkyVW9LVHRjYmlBZ2NtVnpkV3gwV3pGZElDMDlJR1JwYzNSaGJtTmxPMXh1SUNCeVpYUjFjbTRnY21WemRXeDBJR0Z6SUhWdWEyNXZkMjRnWVhNZ1RHbHVaVHRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCd1lYSmhiR3hsYkZSb2NtOTFaMmdnUFNBb2JHbHVaVG9nVEdsdVpTd2djRzlwYm5RNklGQnZhVzUwS1RvZ1RHbHVaU0E5UGx4dUlDQnZjblJvYjJkdmJtRnNLRzl5ZEdodloyOXVZV3dvY0c5cGJuUXNJR3hwYm1VcExDQndiMmx1ZENrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCa2FYTjBZVzVqWlNBOUlDaHNhVzVsTVRvZ1RHbHVaU3dnYkdsdVpUSTZJRXhwYm1VcE9pQnVkVzFpWlhJZ1BUNWNiaUFnUjBFdWFXNXZjbTBvUjBFdWJXVmxkQ2hzYVc1bE1Td2diR2x1WlRJcEtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHRnVaMnhsSUQwZ0tHeHBibVV4T2lCTWFXNWxMQ0JzYVc1bE1qb2dUR2x1WlNrNklHNTFiV0psY2lBOVBseHVJQ0JOWVhSb0xtRmpiM01vUjBFdVpHOTBLR3hwYm1VeExDQnNhVzVsTWlsYk1GMHBPMXh1WEc0dkx5QlVhR1VnYjNKcFpXNTBZWFJwYjI0Z2IyWWdkR2hsSUd4cGJtVmNibVY0Y0c5eWRDQmpiMjV6ZENCemFXZHVJRDBnS0d4cGJtVTZJRXhwYm1VcE9pQnVkVzFpWlhJZ1BUNGdUV0YwYUM1emFXZHVLR3hwYm1WYk1WMHBPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9nYWxpbmVzLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9nYXBvaW50cy50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9nYXBvaW50cy50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZnJvbVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGZyb20pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInRvVHVwbGVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB0b1R1cGxlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhYnNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhYnMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImludGVyc2VjdFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGludGVyc2VjdCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicHJvamVjdFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHByb2plY3QpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRpc3RhbmNlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZGlzdGFuY2UpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRpc3RhbmNlVG9MaW5lXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZGlzdGFuY2VUb0xpbmUpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9nYV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9nYSAqLyBcXFwiLi4vLi4vZ2EudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2dhbGluZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vZ2FsaW5lcyAqLyBcXFwiLi4vLi4vZ2FsaW5lcy50c1xcXCIpO1xcblxcblxcblxcbmNvbnN0IGZyb20gPSAoW3gsIHldKSA9PiBbXFxuICAgIDAsXFxuICAgIDAsXFxuICAgIDAsXFxuICAgIDAsXFxuICAgIHksXFxuICAgIHgsXFxuICAgIDEsXFxuICAgIDAsXFxuXTtcXG5jb25zdCB0b1R1cGxlID0gKHBvaW50KSA9PiBbcG9pbnRbNV0sIHBvaW50WzRdXTtcXG5jb25zdCBhYnMgPSAocG9pbnQpID0+IFtcXG4gICAgMCxcXG4gICAgMCxcXG4gICAgMCxcXG4gICAgMCxcXG4gICAgTWF0aC5hYnMocG9pbnRbNF0pLFxcbiAgICBNYXRoLmFicyhwb2ludFs1XSksXFxuICAgIDEsXFxuICAgIDAsXFxuXTtcXG5jb25zdCBpbnRlcnNlY3QgPSAobGluZTEsIGxpbmUyKSA9PiBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5ub3JtYWxpemVkKF9nYV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm1lZXQobGluZTEsIGxpbmUyKSk7XFxuLy8gUHJvamVjdHMgYHBvaW50YCBvbnRvIHRoZSBgbGluZWAuXFxuLy8gVGhlIHJldHVybmVkIHBvaW50IGlzIHRoZSBjbG9zZXN0IHBvaW50IG9uIHRoZSBgbGluZWAgdG8gdGhlIGBwb2ludGAuXFxuY29uc3QgcHJvamVjdCA9IChwb2ludCwgbGluZSkgPT4gaW50ZXJzZWN0KF9nYWxpbmVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ub3J0aG9nb25hbChsaW5lLCBwb2ludCksIGxpbmUpO1xcbmNvbnN0IGRpc3RhbmNlID0gKHBvaW50MSwgcG9pbnQyKSA9PiBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5ub3JtKCgwLF9nYV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpvaW4pKHBvaW50MSwgcG9pbnQyKSk7XFxuY29uc3QgZGlzdGFuY2VUb0xpbmUgPSAocG9pbnQsIGxpbmUpID0+IF9nYV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpvaW5TY2FsYXIocG9pbnQsIGxpbmUpO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WjJGd2IybHVkSE11ZEhNdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3pzN08wRkJRVEpDTzBGQlExTTdRVUZEU3p0QlFVVnNReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJORUlzUlVGQlV5eEZRVUZGTEVOQlFVTTdTVUZEYUVVc1EwRkJRenRKUVVORUxFTkJRVU03U1VGRFJDeERRVUZETzBsQlEwUXNRMEZCUXp0SlFVTkVMRU5CUVVNN1NVRkRSQ3hEUVVGRE8wbEJRMFFzUTBGQlF6dEpRVU5FTEVOQlFVTTdRMEZEUml4RFFVRkRPMEZCUlVzc1RVRkJUU3hQUVVGUExFZEJRVWNzUTBGQlF5eExRVUZaTEVWQlFXOUNMRVZCUVVVc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVVY2UlN4TlFVRk5MRWRCUVVjc1IwRkJSeXhEUVVGRExFdEJRVmtzUlVGQlV5eEZRVUZGTEVOQlFVTTdTVUZETVVNc1EwRkJRenRKUVVORUxFTkJRVU03U1VGRFJDeERRVUZETzBsQlEwUXNRMEZCUXp0SlFVTkVMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTJ4Q0xFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMnhDTEVOQlFVTTdTVUZEUkN4RFFVRkRPME5CUTBZc1EwRkJRenRCUVVWTExFMUJRVTBzVTBGQlV5eEhRVUZITEVOQlFVTXNTMEZCVnl4RlFVRkZMRXRCUVZjc1JVRkJVeXhGUVVGRkxFTkJRek5FTERKRFFVRmhMRU5CUVVNc2NVTkJRVThzUTBGQlF5eExRVUZMTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVWMlF5eHZRMEZCYjBNN1FVRkRjRU1zZDBWQlFYZEZPMEZCUTJwRkxFMUJRVTBzVDBGQlR5eEhRVUZITEVOQlFVTXNTMEZCV1N4RlFVRkZMRWxCUVZVc1JVRkJVeXhGUVVGRkxFTkJRM3BFTEZOQlFWTXNRMEZCUXl4blJFRkJhVUlzUTBGQlF5eEpRVUZKTEVWQlFVVXNTMEZCU3l4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRk0wTXNUVUZCVFN4UlFVRlJMRWRCUVVjc1EwRkJReXhOUVVGaExFVkJRVVVzVFVGQllTeEZRVUZWTEVWQlFVVXNRMEZETDBRc2NVTkJRVThzUTBGQlF5eDVRMEZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlJYcENMRTFCUVUwc1kwRkJZeXhIUVVGSExFTkJRVU1zUzBGQldTeEZRVUZGTEVsQlFWVXNSVUZCVlN4RlFVRkZMRU5CUTJwRkxESkRRVUZoTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2THk0dUx5NHVMMmRoY0c5cGJuUnpMblJ6UDJaaVlXRWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJQ29nWVhNZ1IwRWdabkp2YlNCY0lpNHZaMkZjSWp0Y2JtbHRjRzl5ZENBcUlHRnpJRWRCVEdsdVpTQm1jbTl0SUZ3aUxpOW5ZV3hwYm1WelhDSTdYRzVwYlhCdmNuUWdleUJRYjJsdWRDd2dUR2x1WlN3Z2FtOXBiaUI5SUdaeWIyMGdYQ0l1TDJkaFhDSTdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm1jbTl0SUQwZ0tGdDRMQ0I1WFRvZ2NtVmhaRzl1YkhrZ1cyNTFiV0psY2l3Z2JuVnRZbVZ5WFNrNklGQnZhVzUwSUQwK0lGdGNiaUFnTUN4Y2JpQWdNQ3hjYmlBZ01DeGNiaUFnTUN4Y2JpQWdlU3hjYmlBZ2VDeGNiaUFnTVN4Y2JpQWdNQ3hjYmwwN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCMGIxUjFjR3hsSUQwZ0tIQnZhVzUwT2lCUWIybHVkQ2s2SUZ0dWRXMWlaWElzSUc1MWJXSmxjbDBnUFQ0Z1czQnZhVzUwV3pWZExDQndiMmx1ZEZzMFhWMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmhZbk1nUFNBb2NHOXBiblE2SUZCdmFXNTBLVG9nVUc5cGJuUWdQVDRnVzF4dUlDQXdMRnh1SUNBd0xGeHVJQ0F3TEZ4dUlDQXdMRnh1SUNCTllYUm9MbUZpY3lod2IybHVkRnMwWFNrc1hHNGdJRTFoZEdndVlXSnpLSEJ2YVc1MFd6VmRLU3hjYmlBZ01TeGNiaUFnTUN4Y2JsMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnBiblJsY25ObFkzUWdQU0FvYkdsdVpURTZJRXhwYm1Vc0lHeHBibVV5T2lCTWFXNWxLVG9nVUc5cGJuUWdQVDVjYmlBZ1IwRXVibTl5YldGc2FYcGxaQ2hIUVM1dFpXVjBLR3hwYm1VeExDQnNhVzVsTWlrcE8xeHVYRzR2THlCUWNtOXFaV04wY3lCZ2NHOXBiblJnSUc5dWRHOGdkR2hsSUdCc2FXNWxZQzVjYmk4dklGUm9aU0J5WlhSMWNtNWxaQ0J3YjJsdWRDQnBjeUIwYUdVZ1kyeHZjMlZ6ZENCd2IybHVkQ0J2YmlCMGFHVWdZR3hwYm1WZ0lIUnZJSFJvWlNCZ2NHOXBiblJnTGx4dVpYaHdiM0owSUdOdmJuTjBJSEJ5YjJwbFkzUWdQU0FvY0c5cGJuUTZJRkJ2YVc1MExDQnNhVzVsT2lCTWFXNWxLVG9nVUc5cGJuUWdQVDVjYmlBZ2FXNTBaWEp6WldOMEtFZEJUR2x1WlM1dmNuUm9iMmR2Ym1Gc0tHeHBibVVzSUhCdmFXNTBLU3dnYkdsdVpTazdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmthWE4wWVc1alpTQTlJQ2h3YjJsdWRERTZJRkJ2YVc1MExDQndiMmx1ZERJNklGQnZhVzUwS1RvZ2JuVnRZbVZ5SUQwK1hHNGdJRWRCTG01dmNtMG9hbTlwYmlod2IybHVkREVzSUhCdmFXNTBNaWtwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWkdsemRHRnVZMlZVYjB4cGJtVWdQU0FvY0c5cGJuUTZJRkJ2YVc1MExDQnNhVzVsT2lCTWFXNWxLVG9nYm5WdFltVnlJRDArWEc0Z0lFZEJMbXB2YVc1VFkyRnNZWElvY0c5cGJuUXNJR3hwYm1VcE8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2dhcG9pbnRzLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9nYXRyYW5zZm9ybXMudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2dhdHJhbnNmb3Jtcy50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJvdGF0aW9uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcm90YXRpb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInRyYW5zbGF0aW9uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gdHJhbnNsYXRpb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInRyYW5zbGF0aW9uT3J0aG9nb25hbFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHRyYW5zbGF0aW9uT3J0aG9nb25hbCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwidHJhbnNsYXRpb25BbG9uZ1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHRyYW5zbGF0aW9uQWxvbmcpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImNvbXBvc2VcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBjb21wb3NlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhcHBseVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFwcGx5KVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vZ2EgKi8gXFxcIi4uLy4uL2dhLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9nYWRpcmVjdGlvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vZ2FkaXJlY3Rpb25zICovIFxcXCIuLi8uLi9nYWRpcmVjdGlvbnMudHNcXFwiKTtcXG5cXG5cXG4vKipcXG4gKiBUT0RPOiBkb2NzXFxuICovXFxuY29uc3Qgcm90YXRpb24gPSAocGl2b3QsIGFuZ2xlKSA9PiBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5hZGQoX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubXVsKHBpdm90LCBNYXRoLnNpbihhbmdsZSAvIDIpKSwgTWF0aC5jb3MoYW5nbGUgLyAyKSk7XFxuY29uc3QgdHJhbnNsYXRpb24gPSAoZGlyZWN0aW9uKSA9PiBbXFxuICAgIDEsXFxuICAgIDAsXFxuICAgIDAsXFxuICAgIDAsXFxuICAgIC0oMC41ICogZGlyZWN0aW9uWzVdKSxcXG4gICAgMC41ICogZGlyZWN0aW9uWzRdLFxcbiAgICAwLFxcbiAgICAwLFxcbl07XFxuY29uc3QgdHJhbnNsYXRpb25PcnRob2dvbmFsID0gKGRpcmVjdGlvbiwgZGlzdGFuY2UpID0+IHtcXG4gICAgY29uc3Qgc2NhbGUgPSAwLjUgKiBkaXN0YW5jZTtcXG4gICAgcmV0dXJuIFsxLCAwLCAwLCAwLCBzY2FsZSAqIGRpcmVjdGlvbls0XSwgc2NhbGUgKiBkaXJlY3Rpb25bNV0sIDAsIDBdO1xcbn07XFxuY29uc3QgdHJhbnNsYXRpb25BbG9uZyA9IChsaW5lLCBkaXN0YW5jZSkgPT4gX2dhX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uYWRkKF9nYV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm11bChfZ2FkaXJlY3Rpb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ub3J0aG9nb25hbFRvTGluZShsaW5lKSwgMC41ICogZGlzdGFuY2UpLCAxKTtcXG5jb25zdCBjb21wb3NlID0gKG1vdG9yMSwgbW90b3IyKSA9PiBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5tdWwobW90b3IyLCBtb3RvcjEpO1xcbmNvbnN0IGFwcGx5ID0gKG1vdG9yLCBudmVjdG9yKSA9PiBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5ub3JtYWxpemVkKF9nYV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm11bChfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5tdWwobW90b3IsIG52ZWN0b3IpLCBfZ2FfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5yZXZlcnNlKG1vdG9yKSkpO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2WjJGMGNtRnVjMlp2Y20xekxuUnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPMEZCUVRKQ08wRkJSVzFDTzBGQlJUbERPenRIUVVWSE8wRkJSVWtzVFVGQlRTeFJRVUZSTEVkQlFVY3NRMEZCUXl4TFFVRlpMRVZCUVVVc1MwRkJZU3hGUVVGaExFVkJRVVVzUTBGRGFrVXNiME5CUVUwc1EwRkJReXh2UTBGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkZNMFFzVFVGQlRTeFhRVUZYTEVkQlFVY3NRMEZCUXl4VFFVRnZRaXhGUVVGaExFVkJRVVVzUTBGQlF6dEpRVU01UkN4RFFVRkRPMGxCUTBRc1EwRkJRenRKUVVORUxFTkJRVU03U1VGRFJDeERRVUZETzBsQlEwUXNRMEZCUXl4RFFVRkRMRWRCUVVjc1IwRkJSeXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEY2tJc1IwRkJSeXhIUVVGSExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEYkVJc1EwRkJRenRKUVVORUxFTkJRVU03UTBGRFJpeERRVUZETzBGQlJVc3NUVUZCVFN4eFFrRkJjVUlzUjBGQlJ5eERRVU51UXl4VFFVRnZRaXhGUVVOd1FpeFJRVUZuUWl4RlFVTk1MRVZCUVVVN1NVRkRZaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEhRVUZITEVkQlFVY3NVVUZCVVN4RFFVRkRPMGxCUXpkQ0xFOUJRVThzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hMUVVGTExFZEJRVWNzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU40UlN4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMRU5CUVVNc1NVRkJWU3hGUVVGRkxGRkJRV2RDTEVWQlFXRXNSVUZCUlN4RFFVTXhSU3h2UTBGQlRTeERRVUZETEc5RFFVRk5MRU5CUVVNc01rUkJRVFJDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1IwRkJSeXhIUVVGSExGRkJRVkVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUldwRkxFMUJRVTBzVDBGQlR5eEhRVUZITEVOQlFVTXNUVUZCYVVJc1JVRkJSU3hOUVVGcFFpeEZRVUZoTEVWQlFVVXNRMEZEZWtVc2IwTkJRVTBzUTBGQlF5eE5RVUZOTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1FVRkZiRUlzVFVGQlRTeExRVUZMTEVkQlFVY3NRMEZEYmtJc1MwRkJaMElzUlVGRGFFSXNUMEZCYVVNc1JVRkRVQ3hGUVVGRkxFTkJRelZDTERKRFFVRmhMRU5CUVVNc2IwTkJRVTBzUTBGQlF5eHZRMEZCVFN4RFFVRkRMRXRCUVVzc1JVRkJSU3hQUVVGUExFTkJRVU1zUlVGQlJTeDNRMEZCVlN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTluWVhSeVlXNXpabTl5YlhNdWRITS9ZVFpqTmlKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ0tpQmhjeUJIUVNCbWNtOXRJRndpTGk5bllWd2lPMXh1YVcxd2IzSjBJSHNnVEdsdVpTd2dSR2x5WldOMGFXOXVMQ0JRYjJsdWRDd2dWSEpoYm5ObWIzSnRJSDBnWm5KdmJTQmNJaTR2WjJGY0lqdGNibWx0Y0c5eWRDQXFJR0Z6SUVkQlJHbHlaV04wYVc5dUlHWnliMjBnWENJdUwyZGhaR2x5WldOMGFXOXVjMXdpTzF4dVhHNHZLaXBjYmlBcUlGUlBSRTg2SUdSdlkzTmNiaUFxTDF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnY205MFlYUnBiMjRnUFNBb2NHbDJiM1E2SUZCdmFXNTBMQ0JoYm1kc1pUb2diblZ0WW1WeUtUb2dWSEpoYm5ObWIzSnRJRDArWEc0Z0lFZEJMbUZrWkNoSFFTNXRkV3dvY0dsMmIzUXNJRTFoZEdndWMybHVLR0Z1WjJ4bElDOGdNaWtwTENCTllYUm9MbU52Y3loaGJtZHNaU0F2SURJcEtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElIUnlZVzV6YkdGMGFXOXVJRDBnS0dScGNtVmpkR2x2YmpvZ1JHbHlaV04wYVc5dUtUb2dWSEpoYm5ObWIzSnRJRDArSUZ0Y2JpQWdNU3hjYmlBZ01DeGNiaUFnTUN4Y2JpQWdNQ3hjYmlBZ0xTZ3dMalVnS2lCa2FYSmxZM1JwYjI1Yk5WMHBMRnh1SUNBd0xqVWdLaUJrYVhKbFkzUnBiMjViTkYwc1hHNGdJREFzWEc0Z0lEQXNYRzVkTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnZEhKaGJuTnNZWFJwYjI1UGNuUm9iMmR2Ym1Gc0lEMGdLRnh1SUNCa2FYSmxZM1JwYjI0NklFUnBjbVZqZEdsdmJpeGNiaUFnWkdsemRHRnVZMlU2SUc1MWJXSmxjaXhjYmlrNklGUnlZVzV6Wm05eWJTQTlQaUI3WEc0Z0lHTnZibk4wSUhOallXeGxJRDBnTUM0MUlDb2daR2x6ZEdGdVkyVTdYRzRnSUhKbGRIVnliaUJiTVN3Z01Dd2dNQ3dnTUN3Z2MyTmhiR1VnS2lCa2FYSmxZM1JwYjI1Yk5GMHNJSE5qWVd4bElDb2daR2x5WldOMGFXOXVXelZkTENBd0xDQXdYVHRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCMGNtRnVjMnhoZEdsdmJrRnNiMjVuSUQwZ0tHeHBibVU2SUV4cGJtVXNJR1JwYzNSaGJtTmxPaUJ1ZFcxaVpYSXBPaUJVY21GdWMyWnZjbTBnUFQ1Y2JpQWdSMEV1WVdSa0tFZEJMbTExYkNoSFFVUnBjbVZqZEdsdmJpNXZjblJvYjJkdmJtRnNWRzlNYVc1bEtHeHBibVVwTENBd0xqVWdLaUJrYVhOMFlXNWpaU2tzSURFcE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1kyOXRjRzl6WlNBOUlDaHRiM1J2Y2pFNklGUnlZVzV6Wm05eWJTd2diVzkwYjNJeU9pQlVjbUZ1YzJadmNtMHBPaUJVY21GdWMyWnZjbTBnUFQ1Y2JpQWdSMEV1YlhWc0tHMXZkRzl5TWl3Z2JXOTBiM0l4S1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdGd2NHeDVJRDBnS0Z4dUlDQnRiM1J2Y2pvZ1ZISmhibk5tYjNKdExGeHVJQ0J1ZG1WamRHOXlPaUJRYjJsdWRDQjhJRVJwY21WamRHbHZiaUI4SUV4cGJtVXNYRzRwT2lCUWIybHVkQ0I4SUVScGNtVmpkR2x2YmlCOElFeHBibVVnUFQ1Y2JpQWdSMEV1Ym05eWJXRnNhWHBsWkNoSFFTNXRkV3dvUjBFdWJYVnNLRzF2ZEc5eUxDQnVkbVZqZEc5eUtTd2dSMEV1Y21WMlpYSnpaU2h0YjNSdmNpa3BLVHRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vZ2F0cmFuc2Zvcm1zLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9nZXN0dXJlLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vZ2VzdHVyZS50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRDZW50ZXJcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRDZW50ZXIpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldERpc3RhbmNlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0RGlzdGFuY2UpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuY29uc3QgZ2V0Q2VudGVyID0gKHBvaW50ZXJzKSA9PiB7XFxuICAgIGNvbnN0IGFsbENvb3JkcyA9IEFycmF5LmZyb20ocG9pbnRlcnMudmFsdWVzKCkpO1xcbiAgICByZXR1cm4ge1xcbiAgICAgICAgeDogc3VtKGFsbENvb3JkcywgKGNvb3JkcykgPT4gY29vcmRzLngpIC8gYWxsQ29vcmRzLmxlbmd0aCxcXG4gICAgICAgIHk6IHN1bShhbGxDb29yZHMsIChjb29yZHMpID0+IGNvb3Jkcy55KSAvIGFsbENvb3Jkcy5sZW5ndGgsXFxuICAgIH07XFxufTtcXG5jb25zdCBnZXREaXN0YW5jZSA9IChbYSwgYl0pID0+IE1hdGguaHlwb3QoYS54IC0gYi54LCBhLnkgLSBiLnkpO1xcbmNvbnN0IHN1bSA9IChhcnJheSwgbWFwcGVyKSA9PiBhcnJheS5yZWR1Y2UoKGFjYywgaXRlbSkgPT4gYWNjICsgbWFwcGVyKGl0ZW0pLCAwKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dloyVnpkSFZ5WlM1MGN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenRCUVVWUExFMUJRVTBzVTBGQlV5eEhRVUZITEVOQlFVTXNVVUZCYjBNc1JVRkJSU3hGUVVGRk8wbEJRMmhGTEUxQlFVMHNVMEZCVXl4SFFVRkhMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRhRVFzVDBGQlR6dFJRVU5NTEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETEUxQlFVMDdVVUZETVVRc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNc1RVRkJUVHRMUVVNelJDeERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3hYUVVGWExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVRKQ0xFVkJRVVVzUlVGQlJTeERRVU01UkN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVWdVF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4RFFVRkpMRXRCUVcxQ0xFVkJRVVVzVFVGQk1rSXNSVUZCVlN4RlFVRkZMRU5CUXpGRkxFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyZGxjM1IxY21VdWRITS9aRGc1WWlKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QlFiMmx1ZEdWeVEyOXZjbVJ6SUgwZ1puSnZiU0JjSWk0dmRIbHdaWE5jSWp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdkbGRFTmxiblJsY2lBOUlDaHdiMmx1ZEdWeWN6b2dUV0Z3UEc1MWJXSmxjaXdnVUc5cGJuUmxja052YjNKa2N6NHBJRDArSUh0Y2JpQWdZMjl1YzNRZ1lXeHNRMjl2Y21SeklEMGdRWEp5WVhrdVpuSnZiU2h3YjJsdWRHVnljeTUyWVd4MVpYTW9LU2s3WEc0Z0lISmxkSFZ5YmlCN1hHNGdJQ0FnZURvZ2MzVnRLR0ZzYkVOdmIzSmtjeXdnS0dOdmIzSmtjeWtnUFQ0Z1kyOXZjbVJ6TG5ncElDOGdZV3hzUTI5dmNtUnpMbXhsYm1kMGFDeGNiaUFnSUNCNU9pQnpkVzBvWVd4c1EyOXZjbVJ6TENBb1kyOXZjbVJ6S1NBOVBpQmpiMjl5WkhNdWVTa2dMeUJoYkd4RGIyOXlaSE11YkdWdVozUm9MRnh1SUNCOU8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2RsZEVScGMzUmhibU5sSUQwZ0tGdGhMQ0JpWFRvZ2NtVmhaRzl1YkhrZ1VHOXBiblJsY2tOdmIzSmtjMXRkS1NBOVBseHVJQ0JOWVhSb0xtaDVjRzkwS0dFdWVDQXRJR0l1ZUN3Z1lTNTVJQzBnWWk1NUtUdGNibHh1WTI5dWMzUWdjM1Z0SUQwZ1BGUStLR0Z5Y21GNU9pQnlaV0ZrYjI1c2VTQlVXMTBzSUcxaGNIQmxjam9nS0dsMFpXMDZJRlFwSUQwK0lHNTFiV0psY2lrNklHNTFiV0psY2lBOVBseHVJQ0JoY25KaGVTNXlaV1IxWTJVb0tHRmpZeXdnYVhSbGJTa2dQVDRnWVdOaklDc2diV0Z3Y0dWeUtHbDBaVzBwTENBd0tUdGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9nZXN0dXJlLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9ncm91cHMudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2dyb3Vwcy50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInNlbGVjdEdyb3VwXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gc2VsZWN0R3JvdXApLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzU2VsZWN0ZWRWaWFHcm91cFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlzU2VsZWN0ZWRWaWFHcm91cCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0U2VsZWN0ZWRHcm91cEZvckVsZW1lbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRTZWxlY3RlZEdyb3VwRm9yRWxlbWVudCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0U2VsZWN0ZWRHcm91cElkc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldFNlbGVjdGVkR3JvdXBJZHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInNlbGVjdEdyb3Vwc0ZvclNlbGVjdGVkRWxlbWVudHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBzZWxlY3RHcm91cHNGb3JTZWxlY3RlZEVsZW1lbnRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJlZGl0R3JvdXBGb3JTZWxlY3RlZEVsZW1lbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBlZGl0R3JvdXBGb3JTZWxlY3RlZEVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzRWxlbWVudEluR3JvdXBcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpc0VsZW1lbnRJbkdyb3VwKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRFbGVtZW50c0luR3JvdXBcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRFbGVtZW50c0luR3JvdXApLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldFNlbGVjdGVkR3JvdXBJZEZvckVsZW1lbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRTZWxlY3RlZEdyb3VwSWRGb3JFbGVtZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXROZXdHcm91cElkc0ZvckR1cGxpY2F0aW9uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0TmV3R3JvdXBJZHNGb3JEdXBsaWNhdGlvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWRkVG9Hcm91cFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFkZFRvR3JvdXApLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJlbW92ZUZyb21TZWxlY3RlZEdyb3Vwc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJlbW92ZUZyb21TZWxlY3RlZEdyb3VwcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0TWF4aW11bUdyb3Vwc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldE1heGltdW1Hcm91cHMpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9zY2VuZSAqLyBcXFwiLi4vLi4vc2NlbmUvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vZWxlbWVudC90ZXh0RWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC90ZXh0RWxlbWVudC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfU2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vc2NlbmUvU2NlbmUgKi8gXFxcIi4uLy4uL3NjZW5lL1NjZW5lLnRzXFxcIik7XFxuXFxuXFxuXFxuY29uc3Qgc2VsZWN0R3JvdXAgPSAoZ3JvdXBJZCwgYXBwU3RhdGUsIGVsZW1lbnRzKSA9PiB7XFxuICAgIGNvbnN0IGVsZW1lbnRzSW5Hcm91cCA9IGVsZW1lbnRzLmZpbHRlcigoZWxlbWVudCkgPT4gZWxlbWVudC5ncm91cElkcy5pbmNsdWRlcyhncm91cElkKSk7XFxuICAgIGlmIChlbGVtZW50c0luR3JvdXAubGVuZ3RoIDwgMikge1xcbiAgICAgICAgaWYgKGFwcFN0YXRlLnNlbGVjdGVkR3JvdXBJZHNbZ3JvdXBJZF0gfHxcXG4gICAgICAgICAgICBhcHBTdGF0ZS5lZGl0aW5nR3JvdXBJZCA9PT0gZ3JvdXBJZCkge1xcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBzZWxlY3RlZEdyb3VwSWRzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlLnNlbGVjdGVkR3JvdXBJZHMpLCB7IFtncm91cElkXTogZmFsc2UgfSksIGVkaXRpbmdHcm91cElkOiBudWxsIH0pO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIGFwcFN0YXRlO1xcbiAgICB9XFxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlKSwgeyBzZWxlY3RlZEdyb3VwSWRzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlLnNlbGVjdGVkR3JvdXBJZHMpLCB7IFtncm91cElkXTogdHJ1ZSB9KSwgc2VsZWN0ZWRFbGVtZW50SWRzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGFwcFN0YXRlLnNlbGVjdGVkRWxlbWVudElkcyksIE9iamVjdC5mcm9tRW50cmllcyhlbGVtZW50c0luR3JvdXAubWFwKChlbGVtZW50KSA9PiBbZWxlbWVudC5pZCwgdHJ1ZV0pKSkgfSk7XFxufTtcXG4vKipcXG4gKiBJZiB0aGUgZWxlbWVudCdzIGdyb3VwIGlzIHNlbGVjdGVkLCBkb24ndCByZW5kZXIgYW4gaW5kaXZpZHVhbFxcbiAqIHNlbGVjdGlvbiBib3JkZXIgYXJvdW5kIGl0LlxcbiAqL1xcbmNvbnN0IGlzU2VsZWN0ZWRWaWFHcm91cCA9IChhcHBTdGF0ZSwgZWxlbWVudCkgPT4gZ2V0U2VsZWN0ZWRHcm91cEZvckVsZW1lbnQoYXBwU3RhdGUsIGVsZW1lbnQpICE9IG51bGw7XFxuY29uc3QgZ2V0U2VsZWN0ZWRHcm91cEZvckVsZW1lbnQgPSAoYXBwU3RhdGUsIGVsZW1lbnQpID0+IGVsZW1lbnQuZ3JvdXBJZHNcXG4gICAgLmZpbHRlcigoZ3JvdXBJZCkgPT4gZ3JvdXBJZCAhPT0gYXBwU3RhdGUuZWRpdGluZ0dyb3VwSWQpXFxuICAgIC5maW5kKChncm91cElkKSA9PiBhcHBTdGF0ZS5zZWxlY3RlZEdyb3VwSWRzW2dyb3VwSWRdKTtcXG5jb25zdCBnZXRTZWxlY3RlZEdyb3VwSWRzID0gKGFwcFN0YXRlKSA9PiBPYmplY3QuZW50cmllcyhhcHBTdGF0ZS5zZWxlY3RlZEdyb3VwSWRzKVxcbiAgICAuZmlsdGVyKChbZ3JvdXBJZCwgaXNTZWxlY3RlZF0pID0+IGlzU2VsZWN0ZWQpXFxuICAgIC5tYXAoKFtncm91cElkLCBpc1NlbGVjdGVkXSkgPT4gZ3JvdXBJZCk7XFxuLyoqXFxuICogV2hlbiB5b3Ugc2VsZWN0IGFuIGVsZW1lbnQsIHlvdSBvZnRlbiB3YW50IHRvIGFjdHVhbGx5IHNlbGVjdCB0aGUgd2hvbGUgZ3JvdXAgaXQncyBpbiwgdW5sZXNzXFxuICogeW91J3JlIGN1cnJlbnRseSBlZGl0aW5nIHRoYXQgZ3JvdXAuXFxuICovXFxuY29uc3Qgc2VsZWN0R3JvdXBzRm9yU2VsZWN0ZWRFbGVtZW50cyA9IChhcHBTdGF0ZSwgZWxlbWVudHMpID0+IHtcXG4gICAgbGV0IG5leHRBcHBTdGF0ZSA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB7IHNlbGVjdGVkR3JvdXBJZHM6IHt9IH0pO1xcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2V0U2VsZWN0ZWRFbGVtZW50cykoZWxlbWVudHMsIGFwcFN0YXRlKTtcXG4gICAgaWYgKCFzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCkge1xcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgbmV4dEFwcFN0YXRlKSwgeyBlZGl0aW5nR3JvdXBJZDogbnVsbCB9KTtcXG4gICAgfVxcbiAgICBmb3IgKGNvbnN0IHNlbGVjdGVkRWxlbWVudCBvZiBzZWxlY3RlZEVsZW1lbnRzKSB7XFxuICAgICAgICBsZXQgZ3JvdXBJZHMgPSBzZWxlY3RlZEVsZW1lbnQuZ3JvdXBJZHM7XFxuICAgICAgICBpZiAoYXBwU3RhdGUuZWRpdGluZ0dyb3VwSWQpIHtcXG4gICAgICAgICAgICAvLyBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBncm91cCBpcyBuZXN0ZWQgd2l0aGluIGEgZ3JvdXBcXG4gICAgICAgICAgICBjb25zdCBpbmRleE9mRWRpdGluZ0dyb3VwID0gZ3JvdXBJZHMuaW5kZXhPZihhcHBTdGF0ZS5lZGl0aW5nR3JvdXBJZCk7XFxuICAgICAgICAgICAgaWYgKGluZGV4T2ZFZGl0aW5nR3JvdXAgPiAtMSkge1xcbiAgICAgICAgICAgICAgICBncm91cElkcyA9IGdyb3VwSWRzLnNsaWNlKDAsIGluZGV4T2ZFZGl0aW5nR3JvdXApO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChncm91cElkcy5sZW5ndGggPiAwKSB7XFxuICAgICAgICAgICAgY29uc3QgZ3JvdXBJZCA9IGdyb3VwSWRzW2dyb3VwSWRzLmxlbmd0aCAtIDFdO1xcbiAgICAgICAgICAgIG5leHRBcHBTdGF0ZSA9IHNlbGVjdEdyb3VwKGdyb3VwSWQsIG5leHRBcHBTdGF0ZSwgZWxlbWVudHMpO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiBuZXh0QXBwU3RhdGU7XFxufTtcXG5jb25zdCBlZGl0R3JvdXBGb3JTZWxlY3RlZEVsZW1lbnQgPSAoYXBwU3RhdGUsIGVsZW1lbnQpID0+IHtcXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYXBwU3RhdGUpLCB7IGVkaXRpbmdHcm91cElkOiBlbGVtZW50Lmdyb3VwSWRzLmxlbmd0aCA/IGVsZW1lbnQuZ3JvdXBJZHNbMF0gOiBudWxsLCBzZWxlY3RlZEdyb3VwSWRzOiB7fSwgc2VsZWN0ZWRFbGVtZW50SWRzOiB7XFxuICAgICAgICAgICAgW2VsZW1lbnQuaWRdOiB0cnVlLFxcbiAgICAgICAgfSB9KTtcXG59O1xcbmNvbnN0IGlzRWxlbWVudEluR3JvdXAgPSAoZWxlbWVudCwgZ3JvdXBJZCkgPT4gZWxlbWVudC5ncm91cElkcy5pbmNsdWRlcyhncm91cElkKTtcXG5jb25zdCBnZXRFbGVtZW50c0luR3JvdXAgPSAoZWxlbWVudHMsIGdyb3VwSWQpID0+IGVsZW1lbnRzLmZpbHRlcigoZWxlbWVudCkgPT4gaXNFbGVtZW50SW5Hcm91cChlbGVtZW50LCBncm91cElkKSk7XFxuY29uc3QgZ2V0U2VsZWN0ZWRHcm91cElkRm9yRWxlbWVudCA9IChlbGVtZW50LCBzZWxlY3RlZEdyb3VwSWRzKSA9PiBlbGVtZW50Lmdyb3VwSWRzLmZpbmQoKGdyb3VwSWQpID0+IHNlbGVjdGVkR3JvdXBJZHNbZ3JvdXBJZF0pO1xcbmNvbnN0IGdldE5ld0dyb3VwSWRzRm9yRHVwbGljYXRpb24gPSAoZ3JvdXBJZHMsIGVkaXRpbmdHcm91cElkLCBtYXBwZXIpID0+IHtcXG4gICAgY29uc3QgY29weSA9IFsuLi5ncm91cElkc107XFxuICAgIGNvbnN0IHBvc2l0aW9uT2ZFZGl0aW5nR3JvdXBJZCA9IGVkaXRpbmdHcm91cElkXFxuICAgICAgICA/IGdyb3VwSWRzLmluZGV4T2YoZWRpdGluZ0dyb3VwSWQpXFxuICAgICAgICA6IC0xO1xcbiAgICBjb25zdCBlbmRJbmRleCA9IHBvc2l0aW9uT2ZFZGl0aW5nR3JvdXBJZCA+IC0xID8gcG9zaXRpb25PZkVkaXRpbmdHcm91cElkIDogZ3JvdXBJZHMubGVuZ3RoO1xcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZW5kSW5kZXg7IGluZGV4KyspIHtcXG4gICAgICAgIGNvcHlbaW5kZXhdID0gbWFwcGVyKGNvcHlbaW5kZXhdKTtcXG4gICAgfVxcbiAgICByZXR1cm4gY29weTtcXG59O1xcbmNvbnN0IGFkZFRvR3JvdXAgPSAocHJldkdyb3VwSWRzLCBuZXdHcm91cElkLCBlZGl0aW5nR3JvdXBJZCkgPT4ge1xcbiAgICAvLyBpbnNlcnQgYmVmb3JlIHRoZSBlZGl0aW5nR3JvdXBJZCwgb3IgcHVzaCB0byB0aGUgZW5kLlxcbiAgICBjb25zdCBncm91cElkcyA9IFsuLi5wcmV2R3JvdXBJZHNdO1xcbiAgICBjb25zdCBwb3NpdGlvbk9mRWRpdGluZ0dyb3VwSWQgPSBlZGl0aW5nR3JvdXBJZFxcbiAgICAgICAgPyBncm91cElkcy5pbmRleE9mKGVkaXRpbmdHcm91cElkKVxcbiAgICAgICAgOiAtMTtcXG4gICAgY29uc3QgcG9zaXRpb25Ub0luc2VydCA9IHBvc2l0aW9uT2ZFZGl0aW5nR3JvdXBJZCA+IC0xID8gcG9zaXRpb25PZkVkaXRpbmdHcm91cElkIDogZ3JvdXBJZHMubGVuZ3RoO1xcbiAgICBncm91cElkcy5zcGxpY2UocG9zaXRpb25Ub0luc2VydCwgMCwgbmV3R3JvdXBJZCk7XFxuICAgIHJldHVybiBncm91cElkcztcXG59O1xcbmNvbnN0IHJlbW92ZUZyb21TZWxlY3RlZEdyb3VwcyA9IChncm91cElkcywgc2VsZWN0ZWRHcm91cElkcykgPT4gZ3JvdXBJZHMuZmlsdGVyKChncm91cElkKSA9PiAhc2VsZWN0ZWRHcm91cElkc1tncm91cElkXSk7XFxuY29uc3QgZ2V0TWF4aW11bUdyb3VwcyA9IChlbGVtZW50cykgPT4ge1xcbiAgICBjb25zdCBncm91cHMgPSBuZXcgTWFwKCk7XFxuICAgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcXG4gICAgICAgIGNvbnN0IGdyb3VwSWQgPSBlbGVtZW50Lmdyb3VwSWRzLmxlbmd0aCA9PT0gMFxcbiAgICAgICAgICAgID8gZWxlbWVudC5pZFxcbiAgICAgICAgICAgIDogZWxlbWVudC5ncm91cElkc1tlbGVtZW50Lmdyb3VwSWRzLmxlbmd0aCAtIDFdO1xcbiAgICAgICAgY29uc3QgY3VycmVudEdyb3VwTWVtYmVycyA9IGdyb3Vwcy5nZXQoZ3JvdXBJZCkgfHwgW107XFxuICAgICAgICAvLyBJbmNsdWRlIGJvdW5kZWQgdGV4dCBpZiBwcmVzZW50IHdoZW4gZ3JvdXBpbmdcXG4gICAgICAgIGNvbnN0IGJvdW5kVGV4dEVsZW1lbnRJZCA9ICgwLF9lbGVtZW50X3RleHRFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0Qm91bmRUZXh0RWxlbWVudElkKShlbGVtZW50KTtcXG4gICAgICAgIGlmIChib3VuZFRleHRFbGVtZW50SWQpIHtcXG4gICAgICAgICAgICBjb25zdCB0ZXh0RWxlbWVudCA9IF9zY2VuZV9TY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fW1xcXCJkZWZhdWx0XFxcIl0uZ2V0U2NlbmUoZWxlbWVudCkuZ2V0RWxlbWVudChib3VuZFRleHRFbGVtZW50SWQpO1xcbiAgICAgICAgICAgIGN1cnJlbnRHcm91cE1lbWJlcnMucHVzaCh0ZXh0RWxlbWVudCk7XFxuICAgICAgICB9XFxuICAgICAgICBncm91cHMuc2V0KGdyb3VwSWQsIFsuLi5jdXJyZW50R3JvdXBNZW1iZXJzLCBlbGVtZW50XSk7XFxuICAgIH0pO1xcbiAgICByZXR1cm4gQXJyYXkuZnJvbShncm91cHMudmFsdWVzKCkpO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZaM0p2ZFhCekxuUnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPenM3T3pzN096czdRVUZQT0VNN1FVRkRaMEk3UVVGRE5VSTdRVUZGTTBJc1RVRkJUU3hYUVVGWExFZEJRVWNzUTBGRGVrSXNUMEZCWjBJc1JVRkRhRUlzVVVGQmEwSXNSVUZEYkVJc1VVRkJhMFFzUlVGRGVFTXNSVUZCUlR0SlFVTmFMRTFCUVUwc1pVRkJaU3hIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hEUVVOc1JDeFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGRGJrTXNRMEZCUXp0SlFVVkdMRWxCUVVrc1pVRkJaU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlFVVTdVVUZET1VJc1NVRkRSU3hSUVVGUkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1QwRkJUeXhEUVVGRE8xbEJRMnhETEZGQlFWRXNRMEZCUXl4alFVRmpMRXRCUVVzc1QwRkJUeXhGUVVOdVF6dFpRVU5CTEhWRFFVTkxMRkZCUVZFc1MwRkRXQ3huUWtGQlowSXNhME5CUVU4c1VVRkJVU3hEUVVGRExHZENRVUZuUWl4TFFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzUzBGQlN5eExRVU5zUlN4alFVRmpMRVZCUVVVc1NVRkJTU3hKUVVOd1FqdFRRVU5JTzFGQlEwUXNUMEZCVHl4UlFVRlJMRU5CUVVNN1MwRkRha0k3U1VGRlJDeDFRMEZEU3l4UlFVRlJMRXRCUTFnc1owSkJRV2RDTEd0RFFVRlBMRkZCUVZFc1EwRkJReXhuUWtGQlowSXNTMEZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFbEJRVWtzUzBGRGFrVXNhMEpCUVd0Q0xHdERRVU5pTEZGQlFWRXNRMEZCUXl4clFrRkJhMElzUjBGRE0wSXNUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkRia0lzWlVGQlpTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRM0pFTEV0QlJVZzdRVUZEU2l4RFFVRkRMRU5CUVVNN1FVRkZSanM3TzBkQlIwYzdRVUZEU1N4TlFVRk5MR3RDUVVGclFpeEhRVUZITEVOQlEyaERMRkZCUVd0Q0xFVkJRMnhDTEU5QlFUQkNMRVZCUXpGQ0xFVkJRVVVzUTBGQlF5d3dRa0ZCTUVJc1EwRkJReXhSUVVGUkxFVkJRVVVzVDBGQlR5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRPMEZCUlhCRUxFMUJRVTBzTUVKQlFUQkNMRWRCUVVjc1EwRkRlRU1zVVVGQmEwSXNSVUZEYkVJc1QwRkJNRUlzUlVGRE1VSXNSVUZCUlN4RFFVTkdMRTlCUVU4c1EwRkJReXhSUVVGUk8wdEJRMklzVFVGQlRTeERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkJReXhQUVVGUExFdEJRVXNzVVVGQlVTeERRVUZETEdOQlFXTXNRMEZCUXp0TFFVTjRSQ3hKUVVGSkxFTkJRVU1zUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJSWEJFTEUxQlFVMHNiVUpCUVcxQ0xFZEJRVWNzUTBGQlF5eFJRVUZyUWl4RlFVRmhMRVZCUVVVc1EwRkRia1VzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdTMEZEZEVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVWQlFVVXNWVUZCVlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF6dExRVU0zUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeFZRVUZWTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGRk4wTTdPenRIUVVkSE8wRkJRMGtzVFVGQlRTd3JRa0ZCSzBJc1IwRkJSeXhEUVVNM1F5eFJRVUZyUWl4RlFVTnNRaXhSUVVGclJDeEZRVU40UXl4RlFVRkZPMGxCUTFvc1NVRkJTU3haUVVGWkxHMURRVUZyUWl4UlFVRlJMRXRCUVVVc1owSkJRV2RDTEVWQlFVVXNSVUZCUlN4SFFVRkZMRU5CUVVNN1NVRkZia1VzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXd5UkVGQmJVSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU03U1VGRmFrVXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEUxQlFVMHNSVUZCUlR0UlFVTTFRaXgxUTBGQldTeFpRVUZaTEV0QlFVVXNZMEZCWXl4RlFVRkZMRWxCUVVrc1NVRkJSenRMUVVOc1JEdEpRVVZFTEV0QlFVc3NUVUZCVFN4bFFVRmxMRWxCUVVrc1owSkJRV2RDTEVWQlFVVTdVVUZET1VNc1NVRkJTU3hSUVVGUkxFZEJRVWNzWlVGQlpTeERRVUZETEZGQlFWRXNRMEZCUXp0UlFVTjRReXhKUVVGSkxGRkJRVkVzUTBGQlF5eGpRVUZqTEVWQlFVVTdXVUZETTBJc2VVUkJRWGxFTzFsQlEzcEVMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdXVUZEZEVVc1NVRkJTU3h0UWtGQmJVSXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJSVHRuUWtGRE5VSXNVVUZCVVN4SFFVRkhMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGTEcxQ1FVRnRRaXhEUVVGRExFTkJRVU03WVVGRGJrUTdVMEZEUmp0UlFVTkVMRWxCUVVrc1VVRkJVU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlFVVTdXVUZEZGtJc1RVRkJUU3hQUVVGUExFZEJRVWNzVVVGQlVTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRE9VTXNXVUZCV1N4SFFVRkhMRmRCUVZjc1EwRkJReXhQUVVGUExFVkJRVVVzV1VGQldTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRPMU5CUXpkRU8wdEJRMFk3U1VGRlJDeFBRVUZQTEZsQlFWa3NRMEZCUXp0QlFVTjBRaXhEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTERKQ1FVRXlRaXhIUVVGSExFTkJRM3BETEZGQlFXdENMRVZCUTJ4Q0xFOUJRWE5ETEVWQlF6VkNMRVZCUVVVN1NVRkRXaXgxUTBGRFN5eFJRVUZSTEV0QlExZ3NZMEZCWXl4RlFVRkZMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUTNCRkxHZENRVUZuUWl4RlFVRkZMRVZCUVVVc1JVRkRjRUlzYTBKQlFXdENMRVZCUVVVN1dVRkRiRUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1NVRkJTVHRUUVVOdVFpeEpRVU5FTzBGQlEwb3NRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RFFVRkRMRTlCUVRCQ0xFVkJRVVVzVDBGQlpTeEZRVUZGTEVWQlFVVXNRMEZET1VVc1QwRkJUeXhEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1FVRkZPVUlzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhEUVVOb1F5eFJRVUZ6UXl4RlFVTjBReXhQUVVGbExFVkJRMllzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFOUJRVThzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUlM5RUxFMUJRVTBzTkVKQlFUUkNMRWRCUVVjc1EwRkRNVU1zVDBGQk1FSXNSVUZETVVJc1owSkJRV2RFTEVWQlEyaEVMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVVUxUkN4TlFVRk5MRFJDUVVFMFFpeEhRVUZITEVOQlF6RkRMRkZCUVhWRExFVkJRM1pETEdOQlFUQkRMRVZCUXpGRExFMUJRWEZETEVWQlEzSkRMRVZCUVVVN1NVRkRSaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNN1NVRkRNMElzVFVGQlRTeDNRa0ZCZDBJc1IwRkJSeXhqUVVGak8xRkJRemRETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExHTkJRV01zUTBGQlF6dFJRVU5zUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFVDeE5RVUZOTEZGQlFWRXNSMEZEV2l4M1FrRkJkMElzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc2QwSkJRWGRDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRE4wVXNTMEZCU3l4SlFVRkpMRXRCUVVzc1IwRkJSeXhEUVVGRExFVkJRVVVzUzBGQlN5eEhRVUZITEZGQlFWRXNSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSVHRSUVVNM1F5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMHRCUTI1RE8wbEJSVVFzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWkN4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxGVkJRVlVzUjBGQlJ5eERRVU40UWl4WlFVRXlReXhGUVVNelF5eFZRVUZ0UWl4RlFVTnVRaXhqUVVFd1F5eEZRVU14UXl4RlFVRkZPMGxCUTBZc2QwUkJRWGRFTzBsQlEzaEVMRTFCUVUwc1VVRkJVU3hIUVVGSExFTkJRVU1zUjBGQlJ5eFpRVUZaTEVOQlFVTXNRMEZCUXp0SlFVTnVReXhOUVVGTkxIZENRVUYzUWl4SFFVRkhMR05CUVdNN1VVRkROME1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1kwRkJZeXhEUVVGRE8xRkJRMnhETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOUUxFMUJRVTBzWjBKQlFXZENMRWRCUTNCQ0xIZENRVUYzUWl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXp0SlFVTTNSU3hSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhGUVVGRkxFTkJRVU1zUlVGQlJTeFZRVUZWTEVOQlFVTXNRMEZCUXp0SlFVTnFSQ3hQUVVGUExGRkJRVkVzUTBGQlF6dEJRVU5zUWl4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxIZENRVUYzUWl4SFFVRkhMRU5CUTNSRExGRkJRWFZETEVWQlEzWkRMR2RDUVVGblJDeEZRVU5vUkN4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJSWFpFTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzUTBGRE9VSXNVVUZCTmtJc1JVRkRUaXhGUVVGRk8wbEJRM3BDTEUxQlFVMHNUVUZCVFN4SFFVRnhReXhKUVVGSkxFZEJRVWNzUlVGSGNrUXNRMEZCUXp0SlFVVktMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eFBRVUV3UWl4RlFVRkZMRVZCUVVVN1VVRkRPVU1zVFVGQlRTeFBRVUZQTEVkQlExZ3NUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF6dFpRVU16UWl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVU3V1VGRFdpeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWd1JDeE5RVUZOTEcxQ1FVRnRRaXhIUVVGSExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8xRkJSWFJFTEdkRVFVRm5SRHRSUVVOb1JDeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExESkZRVUZ4UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRekZFTEVsQlFVa3NhMEpCUVd0Q0xFVkJRVVU3V1VGRGRFSXNUVUZCVFN4WFFVRlhMRWRCUVVjc05rUkJRV01zUTBGQlF5eFBRVUZQTEVOQlFVVXNRMEZCUXl4VlFVRlZMRU5CUTNKRUxHdENRVUZyUWl4RFFVTnRRaXhEUVVGRE8xbEJRM2hETEcxQ1FVRnRRaXhEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0VFFVTjJRenRSUVVORUxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1IwRkJSeXh0UWtGQmJVSXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM3BFTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlVnc1QwRkJUeXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRM0pETEVOQlFVTXNRMEZCUXlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOW5jbTkxY0hNdWRITS9ZMk5pWlNKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UxeHVJQ0JIY205MWNFbGtMRnh1SUNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEN4Y2JpQWdUbTl1UkdWc1pYUmxaQ3hjYmlBZ1JYaGpZV3hwWkhKaGQxUmxlSFJGYkdWdFpXNTBWMmwwYUVOdmJuUmhhVzVsY2l4Y2JuMGdabkp2YlNCY0lpNHZaV3hsYldWdWRDOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dRWEJ3VTNSaGRHVWdmU0JtY205dElGd2lMaTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnWjJWMFUyVnNaV04wWldSRmJHVnRaVzUwY3lCOUlHWnliMjBnWENJdUwzTmpaVzVsWENJN1hHNXBiWEJ2Y25RZ2V5Qm5aWFJDYjNWdVpGUmxlSFJGYkdWdFpXNTBTV1FnZlNCbWNtOXRJRndpTGk5bGJHVnRaVzUwTDNSbGVIUkZiR1Z0Wlc1MFhDSTdYRzVwYlhCdmNuUWdVMk5sYm1VZ1puSnZiU0JjSWk0dmMyTmxibVV2VTJObGJtVmNJanRjYmx4dVpYaHdiM0owSUdOdmJuTjBJSE5sYkdWamRFZHliM1Z3SUQwZ0tGeHVJQ0JuY205MWNFbGtPaUJIY205MWNFbGtMRnh1SUNCaGNIQlRkR0YwWlRvZ1FYQndVM1JoZEdVc1hHNGdJR1ZzWlcxbGJuUnpPaUJ5WldGa2IyNXNlU0JPYjI1RVpXeGxkR1ZrUEVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwUGx0ZExGeHVLVG9nUVhCd1UzUmhkR1VnUFQ0Z2UxeHVJQ0JqYjI1emRDQmxiR1Z0Wlc1MGMwbHVSM0p2ZFhBZ1BTQmxiR1Z0Wlc1MGN5NW1hV3gwWlhJb0tHVnNaVzFsYm5RcElEMCtYRzRnSUNBZ1pXeGxiV1Z1ZEM1bmNtOTFjRWxrY3k1cGJtTnNkV1JsY3lobmNtOTFjRWxrS1N4Y2JpQWdLVHRjYmx4dUlDQnBaaUFvWld4bGJXVnVkSE5KYmtkeWIzVndMbXhsYm1kMGFDQThJRElwSUh0Y2JpQWdJQ0JwWmlBb1hHNGdJQ0FnSUNCaGNIQlRkR0YwWlM1elpXeGxZM1JsWkVkeWIzVndTV1J6VzJkeWIzVndTV1JkSUh4OFhHNGdJQ0FnSUNCaGNIQlRkR0YwWlM1bFpHbDBhVzVuUjNKdmRYQkpaQ0E5UFQwZ1ozSnZkWEJKWkZ4dUlDQWdJQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnTGk0dVlYQndVM1JoZEdVc1hHNGdJQ0FnSUNBZ0lITmxiR1ZqZEdWa1IzSnZkWEJKWkhNNklIc2dMaTR1WVhCd1UzUmhkR1V1YzJWc1pXTjBaV1JIY205MWNFbGtjeXdnVzJkeWIzVndTV1JkT2lCbVlXeHpaU0I5TEZ4dUlDQWdJQ0FnSUNCbFpHbDBhVzVuUjNKdmRYQkpaRG9nYm5Wc2JDeGNiaUFnSUNBZ0lIMDdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJoY0hCVGRHRjBaVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUI3WEc0Z0lDQWdMaTR1WVhCd1UzUmhkR1VzWEc0Z0lDQWdjMlZzWldOMFpXUkhjbTkxY0Vsa2N6b2dleUF1TGk1aGNIQlRkR0YwWlM1elpXeGxZM1JsWkVkeWIzVndTV1J6TENCYlozSnZkWEJKWkYwNklIUnlkV1VnZlN4Y2JpQWdJQ0J6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE02SUh0Y2JpQWdJQ0FnSUM0dUxtRndjRk4wWVhSbExuTmxiR1ZqZEdWa1JXeGxiV1Z1ZEVsa2N5eGNiaUFnSUNBZ0lDNHVMazlpYW1WamRDNW1jbTl0Ulc1MGNtbGxjeWhjYmlBZ0lDQWdJQ0FnWld4bGJXVnVkSE5KYmtkeWIzVndMbTFoY0Nnb1pXeGxiV1Z1ZENrZ1BUNGdXMlZzWlcxbGJuUXVhV1FzSUhSeWRXVmRLU3hjYmlBZ0lDQWdJQ2tzWEc0Z0lDQWdmU3hjYmlBZ2ZUdGNibjA3WEc1Y2JpOHFLbHh1SUNvZ1NXWWdkR2hsSUdWc1pXMWxiblFuY3lCbmNtOTFjQ0JwY3lCelpXeGxZM1JsWkN3Z1pHOXVKM1FnY21WdVpHVnlJR0Z1SUdsdVpHbDJhV1IxWVd4Y2JpQXFJSE5sYkdWamRHbHZiaUJpYjNKa1pYSWdZWEp2ZFc1a0lHbDBMbHh1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnYVhOVFpXeGxZM1JsWkZacFlVZHliM1Z3SUQwZ0tGeHVJQ0JoY0hCVGRHRjBaVG9nUVhCd1UzUmhkR1VzWEc0Z0lHVnNaVzFsYm5RNklFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MExGeHVLU0E5UGlCblpYUlRaV3hsWTNSbFpFZHliM1Z3Um05eVJXeGxiV1Z1ZENoaGNIQlRkR0YwWlN3Z1pXeGxiV1Z1ZENrZ0lUMGdiblZzYkR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdkbGRGTmxiR1ZqZEdWa1IzSnZkWEJHYjNKRmJHVnRaVzUwSUQwZ0tGeHVJQ0JoY0hCVGRHRjBaVG9nUVhCd1UzUmhkR1VzWEc0Z0lHVnNaVzFsYm5RNklFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MExGeHVLU0E5UGx4dUlDQmxiR1Z0Wlc1MExtZHliM1Z3U1dSelhHNGdJQ0FnTG1acGJIUmxjaWdvWjNKdmRYQkpaQ2tnUFQ0Z1ozSnZkWEJKWkNBaFBUMGdZWEJ3VTNSaGRHVXVaV1JwZEdsdVowZHliM1Z3U1dRcFhHNGdJQ0FnTG1acGJtUW9LR2R5YjNWd1NXUXBJRDArSUdGd2NGTjBZWFJsTG5ObGJHVmpkR1ZrUjNKdmRYQkpaSE5iWjNKdmRYQkpaRjBwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWjJWMFUyVnNaV04wWldSSGNtOTFjRWxrY3lBOUlDaGhjSEJUZEdGMFpUb2dRWEJ3VTNSaGRHVXBPaUJIY205MWNFbGtXMTBnUFQ1Y2JpQWdUMkpxWldOMExtVnVkSEpwWlhNb1lYQndVM1JoZEdVdWMyVnNaV04wWldSSGNtOTFjRWxrY3lsY2JpQWdJQ0F1Wm1sc2RHVnlLQ2hiWjNKdmRYQkpaQ3dnYVhOVFpXeGxZM1JsWkYwcElEMCtJR2x6VTJWc1pXTjBaV1FwWEc0Z0lDQWdMbTFoY0Nnb1cyZHliM1Z3U1dRc0lHbHpVMlZzWldOMFpXUmRLU0E5UGlCbmNtOTFjRWxrS1R0Y2JseHVMeW9xWEc0Z0tpQlhhR1Z1SUhsdmRTQnpaV3hsWTNRZ1lXNGdaV3hsYldWdWRDd2dlVzkxSUc5bWRHVnVJSGRoYm5RZ2RHOGdZV04wZFdGc2JIa2djMlZzWldOMElIUm9aU0IzYUc5c1pTQm5jbTkxY0NCcGRDZHpJR2x1TENCMWJteGxjM05jYmlBcUlIbHZkU2R5WlNCamRYSnlaVzUwYkhrZ1pXUnBkR2x1WnlCMGFHRjBJR2R5YjNWd0xseHVJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdjMlZzWldOMFIzSnZkWEJ6Um05eVUyVnNaV04wWldSRmJHVnRaVzUwY3lBOUlDaGNiaUFnWVhCd1UzUmhkR1U2SUVGd2NGTjBZWFJsTEZ4dUlDQmxiR1Z0Wlc1MGN6b2djbVZoWkc5dWJIa2dUbTl1UkdWc1pYUmxaRHhGZUdOaGJHbGtjbUYzUld4bGJXVnVkRDViWFN4Y2JpazZJRUZ3Y0ZOMFlYUmxJRDArSUh0Y2JpQWdiR1YwSUc1bGVIUkJjSEJUZEdGMFpUb2dRWEJ3VTNSaGRHVWdQU0I3SUM0dUxtRndjRk4wWVhSbExDQnpaV3hsWTNSbFpFZHliM1Z3U1dSek9pQjdmU0I5TzF4dVhHNGdJR052Ym5OMElITmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNZ1BTQm5aWFJUWld4bFkzUmxaRVZzWlcxbGJuUnpLR1ZzWlcxbGJuUnpMQ0JoY0hCVGRHRjBaU2s3WEc1Y2JpQWdhV1lnS0NGelpXeGxZM1JsWkVWc1pXMWxiblJ6TG14bGJtZDBhQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjdJQzR1TG01bGVIUkJjSEJUZEdGMFpTd2daV1JwZEdsdVowZHliM1Z3U1dRNklHNTFiR3dnZlR0Y2JpQWdmVnh1WEc0Z0lHWnZjaUFvWTI5dWMzUWdjMlZzWldOMFpXUkZiR1Z0Wlc1MElHOW1JSE5sYkdWamRHVmtSV3hsYldWdWRITXBJSHRjYmlBZ0lDQnNaWFFnWjNKdmRYQkpaSE1nUFNCelpXeGxZM1JsWkVWc1pXMWxiblF1WjNKdmRYQkpaSE03WEc0Z0lDQWdhV1lnS0dGd2NGTjBZWFJsTG1Wa2FYUnBibWRIY205MWNFbGtLU0I3WEc0Z0lDQWdJQ0F2THlCb1lXNWtiR1VnZEdobElHTmhjMlVnZDJobGNtVWdZU0JuY205MWNDQnBjeUJ1WlhOMFpXUWdkMmwwYUdsdUlHRWdaM0p2ZFhCY2JpQWdJQ0FnSUdOdmJuTjBJR2x1WkdWNFQyWkZaR2wwYVc1blIzSnZkWEFnUFNCbmNtOTFjRWxrY3k1cGJtUmxlRTltS0dGd2NGTjBZWFJsTG1Wa2FYUnBibWRIY205MWNFbGtLVHRjYmlBZ0lDQWdJR2xtSUNocGJtUmxlRTltUldScGRHbHVaMGR5YjNWd0lENGdMVEVwSUh0Y2JpQWdJQ0FnSUNBZ1ozSnZkWEJKWkhNZ1BTQm5jbTkxY0Vsa2N5NXpiR2xqWlNnd0xDQnBibVJsZUU5bVJXUnBkR2x1WjBkeWIzVndLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLR2R5YjNWd1NXUnpMbXhsYm1kMGFDQStJREFwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR2R5YjNWd1NXUWdQU0JuY205MWNFbGtjMXRuY205MWNFbGtjeTVzWlc1bmRHZ2dMU0F4WFR0Y2JpQWdJQ0FnSUc1bGVIUkJjSEJUZEdGMFpTQTlJSE5sYkdWamRFZHliM1Z3S0dkeWIzVndTV1FzSUc1bGVIUkJjSEJUZEdGMFpTd2daV3hsYldWdWRITXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEpsZEhWeWJpQnVaWGgwUVhCd1UzUmhkR1U3WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1pXUnBkRWR5YjNWd1JtOXlVMlZzWldOMFpXUkZiR1Z0Wlc1MElEMGdLRnh1SUNCaGNIQlRkR0YwWlRvZ1FYQndVM1JoZEdVc1hHNGdJR1ZzWlcxbGJuUTZJRTV2YmtSbGJHVjBaV1E4UlhoallXeHBaSEpoZDBWc1pXMWxiblErTEZ4dUtUb2dRWEJ3VTNSaGRHVWdQVDRnZTF4dUlDQnlaWFIxY200Z2UxeHVJQ0FnSUM0dUxtRndjRk4wWVhSbExGeHVJQ0FnSUdWa2FYUnBibWRIY205MWNFbGtPaUJsYkdWdFpXNTBMbWR5YjNWd1NXUnpMbXhsYm1kMGFDQS9JR1ZzWlcxbGJuUXVaM0p2ZFhCSlpITmJNRjBnT2lCdWRXeHNMRnh1SUNBZ0lITmxiR1ZqZEdWa1IzSnZkWEJKWkhNNklIdDlMRnh1SUNBZ0lITmxiR1ZqZEdWa1JXeGxiV1Z1ZEVsa2N6b2dlMXh1SUNBZ0lDQWdXMlZzWlcxbGJuUXVhV1JkT2lCMGNuVmxMRnh1SUNBZ0lIMHNYRzRnSUgwN1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdhWE5GYkdWdFpXNTBTVzVIY205MWNDQTlJQ2hsYkdWdFpXNTBPaUJGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ3dnWjNKdmRYQkpaRG9nYzNSeWFXNW5LU0E5UGx4dUlDQmxiR1Z0Wlc1MExtZHliM1Z3U1dSekxtbHVZMngxWkdWektHZHliM1Z3U1dRcE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1oyVjBSV3hsYldWdWRITkpia2R5YjNWd0lEMGdLRnh1SUNCbGJHVnRaVzUwY3pvZ2NtVmhaRzl1YkhrZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTeGNiaUFnWjNKdmRYQkpaRG9nYzNSeWFXNW5MRnh1S1NBOVBpQmxiR1Z0Wlc1MGN5NW1hV3gwWlhJb0tHVnNaVzFsYm5RcElEMCtJR2x6Uld4bGJXVnVkRWx1UjNKdmRYQW9aV3hsYldWdWRDd2daM0p2ZFhCSlpDa3BPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdaMlYwVTJWc1pXTjBaV1JIY205MWNFbGtSbTl5Uld4bGJXVnVkQ0E5SUNoY2JpQWdaV3hsYldWdWREb2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUXNYRzRnSUhObGJHVmpkR1ZrUjNKdmRYQkpaSE02SUhzZ1cyZHliM1Z3U1dRNklITjBjbWx1WjEwNklHSnZiMnhsWVc0Z2ZTeGNiaWtnUFQ0Z1pXeGxiV1Z1ZEM1bmNtOTFjRWxrY3k1bWFXNWtLQ2huY205MWNFbGtLU0E5UGlCelpXeGxZM1JsWkVkeWIzVndTV1J6VzJkeWIzVndTV1JkS1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdkbGRFNWxkMGR5YjNWd1NXUnpSbTl5UkhWd2JHbGpZWFJwYjI0Z1BTQW9YRzRnSUdkeWIzVndTV1J6T2lCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0Y0ltZHliM1Z3U1dSelhDSmRMRnh1SUNCbFpHbDBhVzVuUjNKdmRYQkpaRG9nUVhCd1UzUmhkR1ZiWENKbFpHbDBhVzVuUjNKdmRYQkpaRndpWFN4Y2JpQWdiV0Z3Y0dWeU9pQW9aM0p2ZFhCSlpEb2dSM0p2ZFhCSlpDa2dQVDRnUjNKdmRYQkpaQ3hjYmlrZ1BUNGdlMXh1SUNCamIyNXpkQ0JqYjNCNUlEMGdXeTR1TG1keWIzVndTV1J6WFR0Y2JpQWdZMjl1YzNRZ2NHOXphWFJwYjI1UFprVmthWFJwYm1kSGNtOTFjRWxrSUQwZ1pXUnBkR2x1WjBkeWIzVndTV1JjYmlBZ0lDQS9JR2R5YjNWd1NXUnpMbWx1WkdWNFQyWW9aV1JwZEdsdVowZHliM1Z3U1dRcFhHNGdJQ0FnT2lBdE1UdGNiaUFnWTI5dWMzUWdaVzVrU1c1a1pYZ2dQVnh1SUNBZ0lIQnZjMmwwYVc5dVQyWkZaR2wwYVc1blIzSnZkWEJKWkNBK0lDMHhJRDhnY0c5emFYUnBiMjVQWmtWa2FYUnBibWRIY205MWNFbGtJRG9nWjNKdmRYQkpaSE11YkdWdVozUm9PMXh1SUNCbWIzSWdLR3hsZENCcGJtUmxlQ0E5SURBN0lHbHVaR1Y0SUR3Z1pXNWtTVzVrWlhnN0lHbHVaR1Y0S3lzcElIdGNiaUFnSUNCamIzQjVXMmx1WkdWNFhTQTlJRzFoY0hCbGNpaGpiM0I1VzJsdVpHVjRYU2s3WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnWTI5d2VUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JoWkdSVWIwZHliM1Z3SUQwZ0tGeHVJQ0J3Y21WMlIzSnZkWEJKWkhNNklFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxd2laM0p2ZFhCSlpITmNJbDBzWEc0Z0lHNWxkMGR5YjNWd1NXUTZJRWR5YjNWd1NXUXNYRzRnSUdWa2FYUnBibWRIY205MWNFbGtPaUJCY0hCVGRHRjBaVnRjSW1Wa2FYUnBibWRIY205MWNFbGtYQ0pkTEZ4dUtTQTlQaUI3WEc0Z0lDOHZJR2x1YzJWeWRDQmlaV1p2Y21VZ2RHaGxJR1ZrYVhScGJtZEhjbTkxY0Vsa0xDQnZjaUJ3ZFhOb0lIUnZJSFJvWlNCbGJtUXVYRzRnSUdOdmJuTjBJR2R5YjNWd1NXUnpJRDBnV3k0dUxuQnlaWFpIY205MWNFbGtjMTA3WEc0Z0lHTnZibk4wSUhCdmMybDBhVzl1VDJaRlpHbDBhVzVuUjNKdmRYQkpaQ0E5SUdWa2FYUnBibWRIY205MWNFbGtYRzRnSUNBZ1B5Qm5jbTkxY0Vsa2N5NXBibVJsZUU5bUtHVmthWFJwYm1kSGNtOTFjRWxrS1Z4dUlDQWdJRG9nTFRFN1hHNGdJR052Ym5OMElIQnZjMmwwYVc5dVZHOUpibk5sY25RZ1BWeHVJQ0FnSUhCdmMybDBhVzl1VDJaRlpHbDBhVzVuUjNKdmRYQkpaQ0ErSUMweElEOGdjRzl6YVhScGIyNVBaa1ZrYVhScGJtZEhjbTkxY0Vsa0lEb2daM0p2ZFhCSlpITXViR1Z1WjNSb08xeHVJQ0JuY205MWNFbGtjeTV6Y0d4cFkyVW9jRzl6YVhScGIyNVViMGx1YzJWeWRDd2dNQ3dnYm1WM1IzSnZkWEJKWkNrN1hHNGdJSEpsZEhWeWJpQm5jbTkxY0Vsa2N6dGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J5WlcxdmRtVkdjbTl0VTJWc1pXTjBaV1JIY205MWNITWdQU0FvWEc0Z0lHZHliM1Z3U1dSek9pQkZlR05oYkdsa2NtRjNSV3hsYldWdWRGdGNJbWR5YjNWd1NXUnpYQ0pkTEZ4dUlDQnpaV3hsWTNSbFpFZHliM1Z3U1dSek9pQjdJRnRuY205MWNFbGtPaUJ6ZEhKcGJtZGRPaUJpYjI5c1pXRnVJSDBzWEc0cElEMCtJR2R5YjNWd1NXUnpMbVpwYkhSbGNpZ29aM0p2ZFhCSlpDa2dQVDRnSVhObGJHVmpkR1ZrUjNKdmRYQkpaSE5iWjNKdmRYQkpaRjBwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWjJWMFRXRjRhVzExYlVkeWIzVndjeUE5SUNoY2JpQWdaV3hsYldWdWRITTZJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTBzWEc0cE9pQkZlR05oYkdsa2NtRjNSV3hsYldWdWRGdGRXMTBnUFQ0Z2UxeHVJQ0JqYjI1emRDQm5jbTkxY0hNNklFMWhjRHhUZEhKcGJtY3NJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTArSUQwZ2JtVjNJRTFoY0R4Y2JpQWdJQ0JUZEhKcGJtY3NYRzRnSUNBZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhWeHVJQ0ErS0NrN1hHNWNiaUFnWld4bGJXVnVkSE11Wm05eVJXRmphQ2dvWld4bGJXVnVkRG9nUlhoallXeHBaSEpoZDBWc1pXMWxiblFwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0JuY205MWNFbGtJRDFjYmlBZ0lDQWdJR1ZzWlcxbGJuUXVaM0p2ZFhCSlpITXViR1Z1WjNSb0lEMDlQU0F3WEc0Z0lDQWdJQ0FnSUQ4Z1pXeGxiV1Z1ZEM1cFpGeHVJQ0FnSUNBZ0lDQTZJR1ZzWlcxbGJuUXVaM0p2ZFhCSlpITmJaV3hsYldWdWRDNW5jbTkxY0Vsa2N5NXNaVzVuZEdnZ0xTQXhYVHRjYmx4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5SSGNtOTFjRTFsYldKbGNuTWdQU0JuY205MWNITXVaMlYwS0dkeWIzVndTV1FwSUh4OElGdGRPMXh1WEc0Z0lDQWdMeThnU1c1amJIVmtaU0JpYjNWdVpHVmtJSFJsZUhRZ2FXWWdjSEpsYzJWdWRDQjNhR1Z1SUdkeWIzVndhVzVuWEc0Z0lDQWdZMjl1YzNRZ1ltOTFibVJVWlhoMFJXeGxiV1Z1ZEVsa0lEMGdaMlYwUW05MWJtUlVaWGgwUld4bGJXVnVkRWxrS0dWc1pXMWxiblFwTzF4dUlDQWdJR2xtSUNoaWIzVnVaRlJsZUhSRmJHVnRaVzUwU1dRcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhSbGVIUkZiR1Z0Wlc1MElEMGdVMk5sYm1VdVoyVjBVMk5sYm1Vb1pXeGxiV1Z1ZENraExtZGxkRVZzWlcxbGJuUW9YRzRnSUNBZ0lDQWdJR0p2ZFc1a1ZHVjRkRVZzWlcxbGJuUkpaQ3hjYmlBZ0lDQWdJQ2tnWVhNZ1JYaGpZV3hwWkhKaGQxUmxlSFJGYkdWdFpXNTBWMmwwYUVOdmJuUmhhVzVsY2p0Y2JpQWdJQ0FnSUdOMWNuSmxiblJIY205MWNFMWxiV0psY25NdWNIVnphQ2gwWlhoMFJXeGxiV1Z1ZENrN1hHNGdJQ0FnZlZ4dUlDQWdJR2R5YjNWd2N5NXpaWFFvWjNKdmRYQkpaQ3dnV3k0dUxtTjFjbkpsYm5SSGNtOTFjRTFsYldKbGNuTXNJR1ZzWlcxbGJuUmRLVHRjYmlBZ2ZTazdYRzVjYmlBZ2NtVjBkWEp1SUVGeWNtRjVMbVp5YjIwb1ozSnZkWEJ6TG5aaGJIVmxjeWdwS1R0Y2JuMDdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9ncm91cHMudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2hpc3RvcnkudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9oaXN0b3J5LnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRcXFwiOiAoKSA9PiAoX19XRUJQQUNLX0RFRkFVTFRfRVhQT1JUX18pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vZWxlbWVudC90eXBlQ2hlY2tzICovIFxcXCIuLi8uLi9lbGVtZW50L3R5cGVDaGVja3MudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfbmV3RWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9lbGVtZW50L25ld0VsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvbmV3RWxlbWVudC50c1xcXCIpO1xcblxcblxcbmNvbnN0IGNsZWFyQXBwU3RhdGVQcm9wZXJ0aWVzRm9ySGlzdG9yeSA9IChhcHBTdGF0ZSkgPT4ge1xcbiAgICByZXR1cm4ge1xcbiAgICAgICAgc2VsZWN0ZWRFbGVtZW50SWRzOiBhcHBTdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHMsXFxuICAgICAgICBzZWxlY3RlZEdyb3VwSWRzOiBhcHBTdGF0ZS5zZWxlY3RlZEdyb3VwSWRzLFxcbiAgICAgICAgdmlld0JhY2tncm91bmRDb2xvcjogYXBwU3RhdGUudmlld0JhY2tncm91bmRDb2xvcixcXG4gICAgICAgIGVkaXRpbmdMaW5lYXJFbGVtZW50OiBhcHBTdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudCxcXG4gICAgICAgIGVkaXRpbmdHcm91cElkOiBhcHBTdGF0ZS5lZGl0aW5nR3JvdXBJZCxcXG4gICAgICAgIG5hbWU6IGFwcFN0YXRlLm5hbWUsXFxuICAgIH07XFxufTtcXG5jbGFzcyBIaXN0b3J5IHtcXG4gICAgY29uc3RydWN0b3IoKSB7XFxuICAgICAgICB0aGlzLmVsZW1lbnRDYWNoZSA9IG5ldyBNYXAoKTtcXG4gICAgICAgIHRoaXMucmVjb3JkaW5nID0gdHJ1ZTtcXG4gICAgICAgIHRoaXMuc3RhdGVIaXN0b3J5ID0gW107XFxuICAgICAgICB0aGlzLnJlZG9TdGFjayA9IFtdO1xcbiAgICAgICAgdGhpcy5sYXN0RW50cnkgPSBudWxsO1xcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUVudHJ5ID0gKGFwcFN0YXRlLCBlbGVtZW50cykgPT4gdGhpcy5kZWh5ZHJhdGVIaXN0b3J5RW50cnkoe1xcbiAgICAgICAgICAgIGFwcFN0YXRlOiBjbGVhckFwcFN0YXRlUHJvcGVydGllc0Zvckhpc3RvcnkoYXBwU3RhdGUpLFxcbiAgICAgICAgICAgIGVsZW1lbnRzOiBlbGVtZW50cy5yZWR1Y2UoKGVsZW1lbnRzLCBlbGVtZW50KSA9PiB7XFxuICAgICAgICAgICAgICAgIGlmICgoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uaXNMaW5lYXJFbGVtZW50KShlbGVtZW50KSAmJlxcbiAgICAgICAgICAgICAgICAgICAgYXBwU3RhdGUubXVsdGlFbGVtZW50ICYmXFxuICAgICAgICAgICAgICAgICAgICBhcHBTdGF0ZS5tdWx0aUVsZW1lbnQuaWQgPT09IGVsZW1lbnQuaWQpIHtcXG4gICAgICAgICAgICAgICAgICAgIC8vIGRvbid0IHN0b3JlIG11bHRpLXBvaW50IGFycm93IGlmIHN0aWxsIGhhcyBvbmx5IG9uZSBwb2ludFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFwcFN0YXRlLm11bHRpRWxlbWVudCAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcFN0YXRlLm11bHRpRWxlbWVudC5pZCA9PT0gZWxlbWVudC5pZCAmJlxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQucG9pbnRzLmxlbmd0aCA8IDIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZWxlbWVudCksIHsgXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG9uJ3Qgc3RvcmUgbGFzdCBwb2ludCBpZiBub3QgY29tbWl0dGVkXFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzOiBlbGVtZW50Lmxhc3RDb21taXR0ZWRQb2ludCAhPT1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5wb2ludHNbZWxlbWVudC5wb2ludHMubGVuZ3RoIC0gMV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBlbGVtZW50LnBvaW50cy5zbGljZSgwLCAtMSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBlbGVtZW50LnBvaW50cyB9KSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKGVsZW1lbnQpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50cztcXG4gICAgICAgICAgICB9LCBbXSksXFxuICAgICAgICB9KTtcXG4gICAgfVxcbiAgICBoeWRyYXRlSGlzdG9yeUVudHJ5KHsgYXBwU3RhdGUsIGVsZW1lbnRzLCB9KSB7XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGFwcFN0YXRlOiBKU09OLnBhcnNlKGFwcFN0YXRlKSxcXG4gICAgICAgICAgICBlbGVtZW50czogZWxlbWVudHMubWFwKChkZWh5ZHJhdGVkRXhjYWxpZHJhd0VsZW1lbnQpID0+IHtcXG4gICAgICAgICAgICAgICAgdmFyIF9hO1xcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gKF9hID0gdGhpcy5lbGVtZW50Q2FjaGVcXG4gICAgICAgICAgICAgICAgICAgIC5nZXQoZGVoeWRyYXRlZEV4Y2FsaWRyYXdFbGVtZW50LmlkKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldChkZWh5ZHJhdGVkRXhjYWxpZHJhd0VsZW1lbnQudmVyc2lvbk5vbmNlKTtcXG4gICAgICAgICAgICAgICAgaWYgKCFlbGVtZW50KSB7XFxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVsZW1lbnQgbm90IGZvdW5kOiAke2RlaHlkcmF0ZWRFeGNhbGlkcmF3RWxlbWVudC5pZH06JHtkZWh5ZHJhdGVkRXhjYWxpZHJhd0VsZW1lbnQudmVyc2lvbk5vbmNlfWApO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50O1xcbiAgICAgICAgICAgIH0pLFxcbiAgICAgICAgfTtcXG4gICAgfVxcbiAgICBkZWh5ZHJhdGVIaXN0b3J5RW50cnkoeyBhcHBTdGF0ZSwgZWxlbWVudHMsIH0pIHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgYXBwU3RhdGU6IEpTT04uc3RyaW5naWZ5KGFwcFN0YXRlKSxcXG4gICAgICAgICAgICBlbGVtZW50czogZWxlbWVudHMubWFwKChlbGVtZW50KSA9PiB7XFxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5lbGVtZW50Q2FjaGUuaGFzKGVsZW1lbnQuaWQpKSB7XFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRDYWNoZS5zZXQoZWxlbWVudC5pZCwgbmV3IE1hcCgpKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBjb25zdCB2ZXJzaW9ucyA9IHRoaXMuZWxlbWVudENhY2hlLmdldChlbGVtZW50LmlkKTtcXG4gICAgICAgICAgICAgICAgaWYgKCF2ZXJzaW9ucy5oYXMoZWxlbWVudC52ZXJzaW9uTm9uY2UpKSB7XFxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9ucy5zZXQoZWxlbWVudC52ZXJzaW9uTm9uY2UsICgwLF9lbGVtZW50X25ld0VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5kZWVwQ29weUVsZW1lbnQpKGVsZW1lbnQpKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGVsZW1lbnQuaWQsXFxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uTm9uY2U6IGVsZW1lbnQudmVyc2lvbk5vbmNlLFxcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIH0pLFxcbiAgICAgICAgfTtcXG4gICAgfVxcbiAgICBnZXRTbmFwc2hvdEZvclRlc3QoKSB7XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIHJlY29yZGluZzogdGhpcy5yZWNvcmRpbmcsXFxuICAgICAgICAgICAgc3RhdGVIaXN0b3J5OiB0aGlzLnN0YXRlSGlzdG9yeS5tYXAoKGRlaHlkcmF0ZWRIaXN0b3J5RW50cnkpID0+IHRoaXMuaHlkcmF0ZUhpc3RvcnlFbnRyeShkZWh5ZHJhdGVkSGlzdG9yeUVudHJ5KSksXFxuICAgICAgICAgICAgcmVkb1N0YWNrOiB0aGlzLnJlZG9TdGFjay5tYXAoKGRlaHlkcmF0ZWRIaXN0b3J5RW50cnkpID0+IHRoaXMuaHlkcmF0ZUhpc3RvcnlFbnRyeShkZWh5ZHJhdGVkSGlzdG9yeUVudHJ5KSksXFxuICAgICAgICB9O1xcbiAgICB9XFxuICAgIGNsZWFyKCkge1xcbiAgICAgICAgdGhpcy5zdGF0ZUhpc3RvcnkubGVuZ3RoID0gMDtcXG4gICAgICAgIHRoaXMucmVkb1N0YWNrLmxlbmd0aCA9IDA7XFxuICAgICAgICB0aGlzLmxhc3RFbnRyeSA9IG51bGw7XFxuICAgICAgICB0aGlzLmVsZW1lbnRDYWNoZS5jbGVhcigpO1xcbiAgICB9XFxuICAgIHNob3VsZENyZWF0ZUVudHJ5KG5leHRFbnRyeSkge1xcbiAgICAgICAgdmFyIF9hLCBfYjtcXG4gICAgICAgIGNvbnN0IHsgbGFzdEVudHJ5IH0gPSB0aGlzO1xcbiAgICAgICAgaWYgKCFsYXN0RW50cnkpIHtcXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChuZXh0RW50cnkuZWxlbWVudHMubGVuZ3RoICE9PSBsYXN0RW50cnkuZWxlbWVudHMubGVuZ3RoKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgICB9XFxuICAgICAgICAvLyBsb29wIGZyb20gcmlnaHQgdG8gbGVmdCBhcyBjaGFuZ2VzIGFyZSBsaWtlbGllciB0byBoYXBwZW4gb24gbmV3IGVsZW1lbnRzXFxuICAgICAgICBmb3IgKGxldCBpID0gbmV4dEVudHJ5LmVsZW1lbnRzLmxlbmd0aCAtIDE7IGkgPiAtMTsgaS0tKSB7XFxuICAgICAgICAgICAgY29uc3QgcHJldiA9IG5leHRFbnRyeS5lbGVtZW50c1tpXTtcXG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gbGFzdEVudHJ5LmVsZW1lbnRzW2ldO1xcbiAgICAgICAgICAgIGlmICghcHJldiB8fFxcbiAgICAgICAgICAgICAgICAhbmV4dCB8fFxcbiAgICAgICAgICAgICAgICBwcmV2LmlkICE9PSBuZXh0LmlkIHx8XFxuICAgICAgICAgICAgICAgIHByZXYudmVyc2lvbk5vbmNlICE9PSBuZXh0LnZlcnNpb25Ob25jZSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICAvLyBub3RlOiB0aGlzIGlzIHNhZmUgYmVjYXVzZSBlbnRyeSdzIGFwcFN0YXRlIGlzIGd1YXJhbnRlZWQgbm8gZXhjZXNzIHByb3BzXFxuICAgICAgICBsZXQga2V5O1xcbiAgICAgICAgZm9yIChrZXkgaW4gbmV4dEVudHJ5LmFwcFN0YXRlKSB7XFxuICAgICAgICAgICAgaWYgKGtleSA9PT0gXFxcImVkaXRpbmdMaW5lYXJFbGVtZW50XFxcIikge1xcbiAgICAgICAgICAgICAgICBpZiAoKChfYSA9IG5leHRFbnRyeS5hcHBTdGF0ZVtrZXldKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZWxlbWVudElkKSA9PT1cXG4gICAgICAgICAgICAgICAgICAgICgoX2IgPSBsYXN0RW50cnkuYXBwU3RhdGVba2V5XSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmVsZW1lbnRJZCkpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmIChrZXkgPT09IFxcXCJzZWxlY3RlZEVsZW1lbnRJZHNcXFwiIHx8IGtleSA9PT0gXFxcInNlbGVjdGVkR3JvdXBJZHNcXFwiKSB7XFxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAobmV4dEVudHJ5LmFwcFN0YXRlW2tleV0gIT09IGxhc3RFbnRyeS5hcHBTdGF0ZVtrZXldKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgfVxcbiAgICBwdXNoRW50cnkoYXBwU3RhdGUsIGVsZW1lbnRzKSB7XFxuICAgICAgICBjb25zdCBuZXdFbnRyeURlaHlkcmF0ZWQgPSB0aGlzLmdlbmVyYXRlRW50cnkoYXBwU3RhdGUsIGVsZW1lbnRzKTtcXG4gICAgICAgIGNvbnN0IG5ld0VudHJ5ID0gdGhpcy5oeWRyYXRlSGlzdG9yeUVudHJ5KG5ld0VudHJ5RGVoeWRyYXRlZCk7XFxuICAgICAgICBpZiAobmV3RW50cnkpIHtcXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2hvdWxkQ3JlYXRlRW50cnkobmV3RW50cnkpKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgdGhpcy5zdGF0ZUhpc3RvcnkucHVzaChuZXdFbnRyeURlaHlkcmF0ZWQpO1xcbiAgICAgICAgICAgIHRoaXMubGFzdEVudHJ5ID0gbmV3RW50cnk7XFxuICAgICAgICAgICAgLy8gQXMgYSBuZXcgZW50cnkgd2FzIHB1c2hlZCwgd2UgaW52YWxpZGF0ZSB0aGUgcmVkbyBzdGFja1xcbiAgICAgICAgICAgIHRoaXMuY2xlYXJSZWRvU3RhY2soKTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBjbGVhclJlZG9TdGFjaygpIHtcXG4gICAgICAgIHRoaXMucmVkb1N0YWNrLnNwbGljZSgwLCB0aGlzLnJlZG9TdGFjay5sZW5ndGgpO1xcbiAgICB9XFxuICAgIHJlZG9PbmNlKCkge1xcbiAgICAgICAgaWYgKHRoaXMucmVkb1N0YWNrLmxlbmd0aCA9PT0gMCkge1xcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3QgZW50cnlUb1Jlc3RvcmUgPSB0aGlzLnJlZG9TdGFjay5wb3AoKTtcXG4gICAgICAgIGlmIChlbnRyeVRvUmVzdG9yZSAhPT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICAgICAgdGhpcy5zdGF0ZUhpc3RvcnkucHVzaChlbnRyeVRvUmVzdG9yZSk7XFxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHlkcmF0ZUhpc3RvcnlFbnRyeShlbnRyeVRvUmVzdG9yZSk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gbnVsbDtcXG4gICAgfVxcbiAgICB1bmRvT25jZSgpIHtcXG4gICAgICAgIGlmICh0aGlzLnN0YXRlSGlzdG9yeS5sZW5ndGggPT09IDEpIHtcXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbnRyeSA9IHRoaXMuc3RhdGVIaXN0b3J5LnBvcCgpO1xcbiAgICAgICAgY29uc3QgZW50cnlUb1Jlc3RvcmUgPSB0aGlzLnN0YXRlSGlzdG9yeVt0aGlzLnN0YXRlSGlzdG9yeS5sZW5ndGggLSAxXTtcXG4gICAgICAgIGlmIChjdXJyZW50RW50cnkgIT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgIHRoaXMucmVkb1N0YWNrLnB1c2goY3VycmVudEVudHJ5KTtcXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oeWRyYXRlSGlzdG9yeUVudHJ5KGVudHJ5VG9SZXN0b3JlKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiBudWxsO1xcbiAgICB9XFxuICAgIC8qKlxcbiAgICAgKiBVcGRhdGVzIGhpc3RvcnkncyBgbGFzdEVudHJ5YCB0byBsYXRlc3QgYXBwIHN0YXRlLiBUaGlzIGlzIG5lY2Vzc2FyeVxcbiAgICAgKiAgd2hlbiBkb2luZyB1bmRvL3JlZG8gd2hpY2ggaXRzZWxmIGRvZXNuJ3QgY29tbWl0IHRvIGhpc3RvcnksIGJ1dCB1cGRhdGVzXFxuICAgICAqICBhcHAgc3RhdGUgaW4gYSB3YXkgdGhhdCB3b3VsZCBicmVhayBgc2hvdWxkQ3JlYXRlRW50cnlgIHdoaWNoIHJlbGllcyBvblxcbiAgICAgKiAgYGxhc3RFbnRyeWAgdG8gcmVmbGVjdCBsYXN0IGNvbWl0dGFibGUgaGlzdG9yeSBzdGF0ZS5cXG4gICAgICogV2UgY2FuJ3QgdXBkYXRlIGBsYXN0RW50cnlgIGZyb20gd2l0aGluIGhpc3Rvcnkgd2hlbiBjYWxsaW5nIHVuZG8vcmVkb1xcbiAgICAgKiAgYmVjYXVzZSB0aGUgYWN0aW9uIHBvdGVudGlhbGx5IG11dGF0ZXMgYXBwU3RhdGUvZWxlbWVudHMgYmVmb3JlIHN0b3JpbmdcXG4gICAgICogIGl0LlxcbiAgICAgKi9cXG4gICAgc2V0Q3VycmVudFN0YXRlKGFwcFN0YXRlLCBlbGVtZW50cykge1xcbiAgICAgICAgdGhpcy5sYXN0RW50cnkgPSB0aGlzLmh5ZHJhdGVIaXN0b3J5RW50cnkodGhpcy5nZW5lcmF0ZUVudHJ5KGFwcFN0YXRlLCBlbGVtZW50cykpO1xcbiAgICB9XFxuICAgIC8vIFN1c3BpY2lvdXMgdGhhdCB0aGlzIGlzIGNhbGxlZCBzbyBtYW55IHBsYWNlcy4gU2VlbXMgZXJyb3ItcHJvbmUuXFxuICAgIHJlc3VtZVJlY29yZGluZygpIHtcXG4gICAgICAgIHRoaXMucmVjb3JkaW5nID0gdHJ1ZTtcXG4gICAgfVxcbiAgICByZWNvcmQoc3RhdGUsIGVsZW1lbnRzKSB7XFxuICAgICAgICBpZiAodGhpcy5yZWNvcmRpbmcpIHtcXG4gICAgICAgICAgICB0aGlzLnB1c2hFbnRyeShzdGF0ZSwgZWxlbWVudHMpO1xcbiAgICAgICAgICAgIHRoaXMucmVjb3JkaW5nID0gZmFsc2U7XFxuICAgICAgICB9XFxuICAgIH1cXG59XFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9IChIaXN0b3J5KTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dmFHbHpkRzl5ZVM1MGN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3UVVGRmRVUTdRVUZEUVR0QlFXbENka1FzVFVGQlRTeHBRMEZCYVVNc1IwRkJSeXhEUVVGRExGRkJRV3RDTEVWQlFVVXNSVUZCUlR0SlFVTXZSQ3hQUVVGUE8xRkJRMHdzYTBKQlFXdENMRVZCUVVVc1VVRkJVU3hEUVVGRExHdENRVUZyUWp0UlFVTXZReXhuUWtGQlowSXNSVUZCUlN4UlFVRlJMRU5CUVVNc1owSkJRV2RDTzFGQlF6TkRMRzFDUVVGdFFpeEZRVUZGTEZGQlFWRXNRMEZCUXl4dFFrRkJiVUk3VVVGRGFrUXNiMEpCUVc5Q0xFVkJRVVVzVVVGQlVTeERRVUZETEc5Q1FVRnZRanRSUVVOdVJDeGpRVUZqTEVWQlFVVXNVVUZCVVN4RFFVRkRMR05CUVdNN1VVRkRka01zU1VGQlNTeEZRVUZGTEZGQlFWRXNRMEZCUXl4SlFVRkpPMHRCUTNCQ0xFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MRTlCUVU4N1NVRkJZanRSUVVOVkxHbENRVUZaTEVkQlFVY3NTVUZCU1N4SFFVRkhMRVZCUVRCRExFTkJRVU03VVVGRGFrVXNZMEZCVXl4SFFVRlpMRWxCUVVrc1EwRkJRenRSUVVNeFFpeHBRa0ZCV1N4SFFVRTJRaXhGUVVGRkxFTkJRVU03VVVGRE5VTXNZMEZCVXl4SFFVRTJRaXhGUVVGRkxFTkJRVU03VVVGRGVrTXNZMEZCVXl4SFFVRjNRaXhKUVVGSkxFTkJRVU03VVVFclJIUkRMR3RDUVVGaExFZEJRVWNzUTBGRGRFSXNVVUZCYTBJc1JVRkRiRUlzVVVGQmMwTXNSVUZEWkN4RlFVRkZMRU5CUXpGQ0xFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJRenRaUVVONlFpeFJRVUZSTEVWQlFVVXNhVU5CUVdsRExFTkJRVU1zVVVGQlVTeERRVUZETzFsQlEzSkVMRkZCUVZFc1JVRkJSU3hSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNVVUZCVVN4RlFVRkZMRTlCUVU4c1JVRkJSU3hGUVVGRk8yZENRVU01UXl4SlFVTkZMRzlGUVVGbExFTkJRVU1zVDBGQlR5eERRVUZETzI5Q1FVTjRRaXhSUVVGUkxFTkJRVU1zV1VGQldUdHZRa0ZEY2tJc1VVRkJVU3hEUVVGRExGbEJRVmtzUTBGQlF5eEZRVUZGTEV0QlFVc3NUMEZCVHl4RFFVRkRMRVZCUVVVc1JVRkRka003YjBKQlEwRXNORVJCUVRSRU8yOUNRVU0xUkN4SlFVTkZMRkZCUVZFc1EwRkJReXhaUVVGWk8zZENRVU55UWl4UlFVRlJMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVVzUzBGQlN5eFBRVUZQTEVOQlFVTXNSVUZCUlR0M1FrRkRka01zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhGUVVONlFqdDNRa0ZEUVN4UFFVRlBMRkZCUVZFc1EwRkJRenR4UWtGRGFrSTdiMEpCUlVRc1VVRkJVU3hEUVVGRExFbEJRVWtzYVVOQlExSXNUMEZCVHp0M1FrRkRWaXd3UTBGQk1FTTdkMEpCUXpGRExFMUJRVTBzUlVGRFNpeFBRVUZQTEVOQlFVTXNhMEpCUVd0Q096UkNRVU14UWl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenMwUWtGRGRrTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenMwUWtGRE4wSXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRM0JDTEVOQlFVTTdhVUpCUTBvN2NVSkJRVTA3YjBKQlEwd3NVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dHBRa0ZEZUVJN1owSkJRMFFzVDBGQlR5eFJRVUZSTEVOQlFVTTdXVUZEYkVJc1EwRkJReXhGUVVGRkxFVkJRVGhDTEVOQlFVTTdVMEZEYmtNc1EwRkJReXhEUVVGRE8wbEJLMGhRTEVOQlFVTTdTVUV2VGxNc2JVSkJRVzFDTEVOQlFVTXNSVUZETVVJc1VVRkJVU3hGUVVOU0xGRkJRVkVzUjBGRFpUdFJRVU4yUWl4UFFVRlBPMWxCUTB3c1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRPMWxCUXpsQ0xGRkJRVkVzUlVGQlJTeFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc01rSkJRVEpDTEVWQlFVVXNSVUZCUlRzN1owSkJRM0pFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRlZCUVVrc1EwRkJReXhaUVVGWk8zRkNRVU01UWl4SFFVRkhMRU5CUVVNc01rSkJRVEpDTEVOQlFVTXNSVUZCUlN4RFFVRkRMREJEUVVOc1F5eEhRVUZITEVOQlFVTXNNa0pCUVRKQ0xFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdaMEpCUTJ4RUxFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVTdiMEpCUTFvc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGRFlpeHpRa0ZCYzBJc01rSkJRVEpDTEVOQlFVTXNSVUZCUlN4SlFVRkpMREpDUVVFeVFpeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVTnVSeXhEUVVGRE8ybENRVU5JTzJkQ1FVTkVMRTlCUVU4c1QwRkJUeXhEUVVGRE8xbEJRMnBDTEVOQlFVTXNRMEZCUXp0VFFVTklMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVThzY1VKQlFYRkNMRU5CUVVNc1JVRkROVUlzVVVGQlVTeEZRVU5TTEZGQlFWRXNSMEZEU3p0UlFVTmlMRTlCUVU4N1dVRkRUQ3hSUVVGUkxFVkJRVVVzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNN1dVRkRiRU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhQUVVFd1FpeEZRVUZGTEVWQlFVVTdaMEpCUTNCRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVTdiMEpCUTNSRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFVkJRVVVzU1VGQlNTeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRPMmxDUVVNNVF6dG5Ra0ZEUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRkxFTkJRVU03WjBKQlEzQkVMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4WlFVRlpMRU5CUVVNc1JVRkJSVHR2UWtGRGRrTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zV1VGQldTeEZRVUZGTEc5RlFVRmxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dHBRa0ZET1VRN1owSkJRMFFzVDBGQlR6dHZRa0ZEVEN4RlFVRkZMRVZCUVVVc1QwRkJUeXhEUVVGRExFVkJRVVU3YjBKQlEyUXNXVUZCV1N4RlFVRkZMRTlCUVU4c1EwRkJReXhaUVVGWk8ybENRVU51UXl4RFFVRkRPMWxCUTBvc1EwRkJReXhEUVVGRE8xTkJRMGdzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4clFrRkJhMEk3VVVGRGFFSXNUMEZCVHp0WlFVTk1MRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zVTBGQlV6dFpRVU42UWl4WlFVRlpMRVZCUVVVc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4elFrRkJjMElzUlVGQlJTeEZRVUZGTEVOQlF6ZEVMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4elFrRkJjMElzUTBGQlF5eERRVU5xUkR0WlFVTkVMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMSE5DUVVGelFpeEZRVUZGTEVWQlFVVXNRMEZEZGtRc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMSE5DUVVGelFpeERRVUZETEVOQlEycEVPMU5CUTBZc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJDeExRVUZMTzFGQlEwZ3NTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlF6ZENMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTXhRaXhKUVVGSkxFTkJRVU1zVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVTjBRaXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRPMGxCUXpWQ0xFTkJRVU03U1VGMVEwUXNhVUpCUVdsQ0xFTkJRVU1zVTBGQmRVSTdPMUZCUTNaRExFMUJRVTBzUlVGQlJTeFRRVUZUTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNN1VVRkZNMElzU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlR0WlFVTmtMRTlCUVU4c1NVRkJTU3hEUVVGRE8xTkJRMkk3VVVGRlJDeEpRVUZKTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hMUVVGTExGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RlFVRkZPMWxCUXpORUxFOUJRVThzU1VGQlNTeERRVUZETzFOQlEySTdVVUZGUkN3MFJVRkJORVU3VVVGRE5VVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMWxCUTNaRUxFMUJRVTBzU1VGQlNTeEhRVUZITEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGJrTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnVReXhKUVVORkxFTkJRVU1zU1VGQlNUdG5Ra0ZEVEN4RFFVRkRMRWxCUVVrN1owSkJRMHdzU1VGQlNTeERRVUZETEVWQlFVVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1JVRkJSVHRuUWtGRGJrSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1MwRkJTeXhKUVVGSkxFTkJRVU1zV1VGQldTeEZRVU4yUXp0blFrRkRRU3hQUVVGUExFbEJRVWtzUTBGQlF6dGhRVU5pTzFOQlEwWTdVVUZGUkN3MFJVRkJORVU3VVVGRE5VVXNTVUZCU1N4SFFVRnZReXhEUVVGRE8xRkJRM3BETEV0QlFVc3NSMEZCUnl4SlFVRkpMRk5CUVZNc1EwRkJReXhSUVVGUkxFVkJRVVU3V1VGRE9VSXNTVUZCU1N4SFFVRkhMRXRCUVVzc2MwSkJRWE5DTEVWQlFVVTdaMEpCUTJ4RExFbEJRMFVzWjBKQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExEQkRRVUZGTEZOQlFWTTdjVUpCUTJ4RExHVkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMREJEUVVGRkxGTkJRVk1zUjBGRGJFTTdiMEpCUTBFc1UwRkJVenRwUWtGRFZqdGhRVU5HTzFsQlEwUXNTVUZCU1N4SFFVRkhMRXRCUVVzc2IwSkJRVzlDTEVsQlFVa3NSMEZCUnl4TFFVRkxMR3RDUVVGclFpeEZRVUZGTzJkQ1FVTTVSQ3hUUVVGVE8yRkJRMVk3V1VGRFJDeEpRVUZKTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSVHRuUWtGRGRrUXNUMEZCVHl4SlFVRkpMRU5CUVVNN1lVRkRZanRUUVVOR08xRkJSVVFzVDBGQlR5eExRVUZMTEVOQlFVTTdTVUZEWml4RFFVRkRPMGxCUlVRc1UwRkJVeXhEUVVGRExGRkJRV3RDTEVWQlFVVXNVVUZCYzBNN1VVRkRiRVVzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVOc1JTeE5RVUZOTEZGQlFWRXNSMEZCYVVJc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMR3RDUVVGclFpeERRVUZETEVOQlFVTTdVVUZGTlVVc1NVRkJTU3hSUVVGUkxFVkJRVVU3V1VGRFdpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZPMmRDUVVOeVF5eFBRVUZQTzJGQlExSTdXVUZGUkN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRE8xbEJRek5ETEVsQlFVa3NRMEZCUXl4VFFVRlRMRWRCUVVjc1VVRkJVU3hEUVVGRE8xbEJRekZDTERCRVFVRXdSRHRaUVVNeFJDeEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNN1UwRkRka0k3U1VGRFNDeERRVUZETzBsQlJVUXNZMEZCWXp0UlFVTmFMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBsQlEyeEVMRU5CUVVNN1NVRkZSQ3hSUVVGUk8xRkJRMDRzU1VGQlNTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFVkJRVVU3V1VGREwwSXNUMEZCVHl4SlFVRkpMRU5CUVVNN1UwRkRZanRSUVVWRUxFMUJRVTBzWTBGQll5eEhRVUZITEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRk5VTXNTVUZCU1N4alFVRmpMRXRCUVVzc1UwRkJVeXhGUVVGRk8xbEJRMmhETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzFsQlEzWkRMRTlCUVU4c1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8xTkJRMnBFTzFGQlJVUXNUMEZCVHl4SlFVRkpMRU5CUVVNN1NVRkRaQ3hEUVVGRE8wbEJSVVFzVVVGQlVUdFJRVU5PTEVsQlFVa3NTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF5eEZRVUZGTzFsQlEyeERMRTlCUVU4c1NVRkJTU3hEUVVGRE8xTkJRMkk3VVVGRlJDeE5RVUZOTEZsQlFWa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzFGQlJUZERMRTFCUVUwc1kwRkJZeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGZGtVc1NVRkJTU3haUVVGWkxFdEJRVXNzVTBGQlV5eEZRVUZGTzFsQlF6bENMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMWxCUTJ4RExFOUJRVThzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzFOQlEycEVPMUZCUlVRc1QwRkJUeXhKUVVGSkxFTkJRVU03U1VGRFpDeERRVUZETzBsQlJVUTdPenM3T3pzN08wOUJVVWM3U1VGRFNDeGxRVUZsTEVOQlFVTXNVVUZCYTBJc1JVRkJSU3hSUVVGelF6dFJRVU40UlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkRka01zU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRM1pETEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc2IwVkJRVzlGTzBsQlEzQkZMR1ZCUVdVN1VVRkRZaXhKUVVGSkxFTkJRVU1zVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXp0SlFVTjRRaXhEUVVGRE8wbEJSVVFzVFVGQlRTeERRVUZETEV0QlFXVXNSVUZCUlN4UlFVRnpRenRSUVVNMVJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVN1dVRkRiRUlzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU03V1VGRGFFTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1IwRkJSeXhMUVVGTExFTkJRVU03VTBGRGVFSTdTVUZEU0N4RFFVRkRPME5CUTBZN1FVRkZSQ3hwUlVGQlpTeFBRVUZQTEVWQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2YUdsemRHOXllUzUwY3o4M1ltWXlJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUVGd2NGTjBZWFJsSUgwZ1puSnZiU0JjSWk0dmRIbHdaWE5jSWp0Y2JtbHRjRzl5ZENCN0lFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MElIMGdabkp2YlNCY0lpNHZaV3hsYldWdWRDOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dhWE5NYVc1bFlYSkZiR1Z0Wlc1MElIMGdabkp2YlNCY0lpNHZaV3hsYldWdWRDOTBlWEJsUTJobFkydHpYQ0k3WEc1cGJYQnZjblFnZXlCa1pXVndRMjl3ZVVWc1pXMWxiblFnZlNCbWNtOXRJRndpTGk5bGJHVnRaVzUwTDI1bGQwVnNaVzFsYm5SY0lqdGNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JJYVhOMGIzSjVSVzUwY25rZ2UxeHVJQ0JoY0hCVGRHRjBaVG9nVW1WMGRYSnVWSGx3WlR4MGVYQmxiMllnWTJ4bFlYSkJjSEJUZEdGMFpWQnliM0JsY25ScFpYTkdiM0pJYVhOMGIzSjVQanRjYmlBZ1pXeGxiV1Z1ZEhNNklFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMDdYRzU5WEc1Y2JtbHVkR1Z5Wm1GalpTQkVaV2g1WkhKaGRHVmtSWGhqWVd4cFpISmhkMFZzWlcxbGJuUWdlMXh1SUNCcFpEb2djM1J5YVc1bk8xeHVJQ0IyWlhKemFXOXVUbTl1WTJVNklHNTFiV0psY2p0Y2JuMWNibHh1YVc1MFpYSm1ZV05sSUVSbGFIbGtjbUYwWldSSWFYTjBiM0o1Ulc1MGNua2dlMXh1SUNCaGNIQlRkR0YwWlRvZ2MzUnlhVzVuTzF4dUlDQmxiR1Z0Wlc1MGN6b2dSR1ZvZVdSeVlYUmxaRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTA3WEc1OVhHNWNibU52Ym5OMElHTnNaV0Z5UVhCd1UzUmhkR1ZRY205d1pYSjBhV1Z6Um05eVNHbHpkRzl5ZVNBOUlDaGhjSEJUZEdGMFpUb2dRWEJ3VTNSaGRHVXBJRDArSUh0Y2JpQWdjbVYwZFhKdUlIdGNiaUFnSUNCelpXeGxZM1JsWkVWc1pXMWxiblJKWkhNNklHRndjRk4wWVhSbExuTmxiR1ZqZEdWa1JXeGxiV1Z1ZEVsa2N5eGNiaUFnSUNCelpXeGxZM1JsWkVkeWIzVndTV1J6T2lCaGNIQlRkR0YwWlM1elpXeGxZM1JsWkVkeWIzVndTV1J6TEZ4dUlDQWdJSFpwWlhkQ1lXTnJaM0p2ZFc1a1EyOXNiM0k2SUdGd2NGTjBZWFJsTG5acFpYZENZV05yWjNKdmRXNWtRMjlzYjNJc1hHNGdJQ0FnWldScGRHbHVaMHhwYm1WaGNrVnNaVzFsYm5RNklHRndjRk4wWVhSbExtVmthWFJwYm1kTWFXNWxZWEpGYkdWdFpXNTBMRnh1SUNBZ0lHVmthWFJwYm1kSGNtOTFjRWxrT2lCaGNIQlRkR0YwWlM1bFpHbDBhVzVuUjNKdmRYQkpaQ3hjYmlBZ0lDQnVZVzFsT2lCaGNIQlRkR0YwWlM1dVlXMWxMRnh1SUNCOU8xeHVmVHRjYmx4dVkyeGhjM01nU0dsemRHOXllU0I3WEc0Z0lIQnlhWFpoZEdVZ1pXeGxiV1Z1ZEVOaFkyaGxJRDBnYm1WM0lFMWhjRHh6ZEhKcGJtY3NJRTFoY0R4dWRXMWlaWElzSUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwUGo0b0tUdGNiaUFnY0hKcGRtRjBaU0J5WldOdmNtUnBibWM2SUdKdmIyeGxZVzRnUFNCMGNuVmxPMXh1SUNCd2NtbDJZWFJsSUhOMFlYUmxTR2x6ZEc5eWVUb2dSR1ZvZVdSeVlYUmxaRWhwYzNSdmNubEZiblJ5ZVZ0ZElEMGdXMTA3WEc0Z0lIQnlhWFpoZEdVZ2NtVmtiMU4wWVdOck9pQkVaV2g1WkhKaGRHVmtTR2x6ZEc5eWVVVnVkSEo1VzEwZ1BTQmJYVHRjYmlBZ2NISnBkbUYwWlNCc1lYTjBSVzUwY25rNklFaHBjM1J2Y25sRmJuUnllU0I4SUc1MWJHd2dQU0J1ZFd4c08xeHVYRzRnSUhCeWFYWmhkR1VnYUhsa2NtRjBaVWhwYzNSdmNubEZiblJ5ZVNoN1hHNGdJQ0FnWVhCd1UzUmhkR1VzWEc0Z0lDQWdaV3hsYldWdWRITXNYRzRnSUgwNklFUmxhSGxrY21GMFpXUklhWE4wYjNKNVJXNTBjbmtwT2lCSWFYTjBiM0o1Ulc1MGNua2dlMXh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCaGNIQlRkR0YwWlRvZ1NsTlBUaTV3WVhKelpTaGhjSEJUZEdGMFpTa3NYRzRnSUNBZ0lDQmxiR1Z0Wlc1MGN6b2daV3hsYldWdWRITXViV0Z3S0Noa1pXaDVaSEpoZEdWa1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5RcElEMCtJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaV3hsYldWdWRDQTlJSFJvYVhNdVpXeGxiV1Z1ZEVOaFkyaGxYRzRnSUNBZ0lDQWdJQ0FnTG1kbGRDaGtaV2g1WkhKaGRHVmtSWGhqWVd4cFpISmhkMFZzWlcxbGJuUXVhV1FwWEc0Z0lDQWdJQ0FnSUNBZ1B5NW5aWFFvWkdWb2VXUnlZWFJsWkVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwTG5abGNuTnBiMjVPYjI1alpTazdYRzRnSUNBZ0lDQWdJR2xtSUNnaFpXeGxiV1Z1ZENrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGNiaUFnSUNBZ0lDQWdJQ0FnSUdCRmJHVnRaVzUwSUc1dmRDQm1iM1Z1WkRvZ0pIdGtaV2g1WkhKaGRHVmtSWGhqWVd4cFpISmhkMFZzWlcxbGJuUXVhV1I5T2lSN1pHVm9lV1J5WVhSbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MExuWmxjbk5wYjI1T2IyNWpaWDFnTEZ4dUlDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1ZzWlcxbGJuUTdYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQjlPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JrWldoNVpISmhkR1ZJYVhOMGIzSjVSVzUwY25rb2UxeHVJQ0FnSUdGd2NGTjBZWFJsTEZ4dUlDQWdJR1ZzWlcxbGJuUnpMRnh1SUNCOU9pQklhWE4wYjNKNVJXNTBjbmtwT2lCRVpXaDVaSEpoZEdWa1NHbHpkRzl5ZVVWdWRISjVJSHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ1lYQndVM1JoZEdVNklFcFRUMDR1YzNSeWFXNW5hV1o1S0dGd2NGTjBZWFJsS1N4Y2JpQWdJQ0FnSUdWc1pXMWxiblJ6T2lCbGJHVnRaVzUwY3k1dFlYQW9LR1ZzWlcxbGJuUTZJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doZEdocGN5NWxiR1Z0Wlc1MFEyRmphR1V1YUdGektHVnNaVzFsYm5RdWFXUXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTVsYkdWdFpXNTBRMkZqYUdVdWMyVjBLR1ZzWlcxbGJuUXVhV1FzSUc1bGR5Qk5ZWEFvS1NrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2RtVnljMmx2Ym5NZ1BTQjBhR2x6TG1Wc1pXMWxiblJEWVdOb1pTNW5aWFFvWld4bGJXVnVkQzVwWkNraE8xeHVJQ0FnSUNBZ0lDQnBaaUFvSVhabGNuTnBiMjV6TG1oaGN5aGxiR1Z0Wlc1MExuWmxjbk5wYjI1T2IyNWpaU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQjJaWEp6YVc5dWN5NXpaWFFvWld4bGJXVnVkQzUyWlhKemFXOXVUbTl1WTJVc0lHUmxaWEJEYjNCNVJXeGxiV1Z1ZENobGJHVnRaVzUwS1NrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdJQ0JwWkRvZ1pXeGxiV1Z1ZEM1cFpDeGNiaUFnSUNBZ0lDQWdJQ0IyWlhKemFXOXVUbTl1WTJVNklHVnNaVzFsYm5RdWRtVnljMmx2Yms1dmJtTmxMRnh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnZlNrc1hHNGdJQ0FnZlR0Y2JpQWdmVnh1WEc0Z0lHZGxkRk51WVhCemFHOTBSbTl5VkdWemRDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ2NtVmpiM0prYVc1bk9pQjBhR2x6TG5KbFkyOXlaR2x1Wnl4Y2JpQWdJQ0FnSUhOMFlYUmxTR2x6ZEc5eWVUb2dkR2hwY3k1emRHRjBaVWhwYzNSdmNua3ViV0Z3S0Noa1pXaDVaSEpoZEdWa1NHbHpkRzl5ZVVWdWRISjVLU0E5UGx4dUlDQWdJQ0FnSUNCMGFHbHpMbWg1WkhKaGRHVklhWE4wYjNKNVJXNTBjbmtvWkdWb2VXUnlZWFJsWkVocGMzUnZjbmxGYm5SeWVTa3NYRzRnSUNBZ0lDQXBMRnh1SUNBZ0lDQWdjbVZrYjFOMFlXTnJPaUIwYUdsekxuSmxaRzlUZEdGamF5NXRZWEFvS0dSbGFIbGtjbUYwWldSSWFYTjBiM0o1Ulc1MGNua3BJRDArWEc0Z0lDQWdJQ0FnSUhSb2FYTXVhSGxrY21GMFpVaHBjM1J2Y25sRmJuUnllU2hrWldoNVpISmhkR1ZrU0dsemRHOXllVVZ1ZEhKNUtTeGNiaUFnSUNBZ0lDa3NYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJR05zWldGeUtDa2dlMXh1SUNBZ0lIUm9hWE11YzNSaGRHVklhWE4wYjNKNUxteGxibWQwYUNBOUlEQTdYRzRnSUNBZ2RHaHBjeTV5WldSdlUzUmhZMnN1YkdWdVozUm9JRDBnTUR0Y2JpQWdJQ0IwYUdsekxteGhjM1JGYm5SeWVTQTlJRzUxYkd3N1hHNGdJQ0FnZEdocGN5NWxiR1Z0Wlc1MFEyRmphR1V1WTJ4bFlYSW9LVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWjJWdVpYSmhkR1ZGYm5SeWVTQTlJQ2hjYmlBZ0lDQmhjSEJUZEdGMFpUb2dRWEJ3VTNSaGRHVXNYRzRnSUNBZ1pXeGxiV1Z1ZEhNNklISmxZV1J2Ym14NUlFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMHNYRzRnSUNrNklFUmxhSGxrY21GMFpXUklhWE4wYjNKNVJXNTBjbmtnUFQ1Y2JpQWdJQ0IwYUdsekxtUmxhSGxrY21GMFpVaHBjM1J2Y25sRmJuUnllU2g3WEc0Z0lDQWdJQ0JoY0hCVGRHRjBaVG9nWTJ4bFlYSkJjSEJUZEdGMFpWQnliM0JsY25ScFpYTkdiM0pJYVhOMGIzSjVLR0Z3Y0ZOMFlYUmxLU3hjYmlBZ0lDQWdJR1ZzWlcxbGJuUnpPaUJsYkdWdFpXNTBjeTV5WldSMVkyVW9LR1ZzWlcxbGJuUnpMQ0JsYkdWdFpXNTBLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnSUNCcGMweHBibVZoY2tWc1pXMWxiblFvWld4bGJXVnVkQ2tnSmlaY2JpQWdJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpTNXRkV3gwYVVWc1pXMWxiblFnSmlaY2JpQWdJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpTNXRkV3gwYVVWc1pXMWxiblF1YVdRZ1BUMDlJR1ZzWlcxbGJuUXVhV1JjYmlBZ0lDQWdJQ0FnS1NCN1hHNGdJQ0FnSUNBZ0lDQWdMeThnWkc5dUozUWdjM1J2Y21VZ2JYVnNkR2t0Y0c5cGJuUWdZWEp5YjNjZ2FXWWdjM1JwYkd3Z2FHRnpJRzl1YkhrZ2IyNWxJSEJ2YVc1MFhHNGdJQ0FnSUNBZ0lDQWdhV1lnS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdZWEJ3VTNSaGRHVXViWFZzZEdsRmJHVnRaVzUwSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0JoY0hCVGRHRjBaUzV0ZFd4MGFVVnNaVzFsYm5RdWFXUWdQVDA5SUdWc1pXMWxiblF1YVdRZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUdWc1pXMWxiblF1Y0c5cGJuUnpMbXhsYm1kMGFDQThJREpjYmlBZ0lDQWdJQ0FnSUNBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJsYkdWdFpXNTBjenRjYmlBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBjeTV3ZFhOb0tIdGNiaUFnSUNBZ0lDQWdJQ0FnSUM0dUxtVnNaVzFsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCa2IyNG5kQ0J6ZEc5eVpTQnNZWE4wSUhCdmFXNTBJR2xtSUc1dmRDQmpiMjF0YVhSMFpXUmNiaUFnSUNBZ0lDQWdJQ0FnSUhCdmFXNTBjenBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRDNXNZWE4wUTI5dGJXbDBkR1ZrVUc5cGJuUWdJVDA5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzWlcxbGJuUXVjRzlwYm5SelcyVnNaVzFsYm5RdWNHOXBiblJ6TG14bGJtZDBhQ0F0SURGZFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1B5QmxiR1Z0Wlc1MExuQnZhVzUwY3k1emJHbGpaU2d3TENBdE1TbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJR1ZzWlcxbGJuUXVjRzlwYm5SekxGeHVJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lHVnNaVzFsYm5SekxuQjFjMmdvWld4bGJXVnVkQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdWc1pXMWxiblJ6TzF4dUlDQWdJQ0FnZlN3Z1cxMGdZWE1nVFhWMFlXSnNaVHgwZVhCbGIyWWdaV3hsYldWdWRITStLU3hjYmlBZ0lDQjlLVHRjYmx4dUlDQnphRzkxYkdSRGNtVmhkR1ZGYm5SeWVTaHVaWGgwUlc1MGNuazZJRWhwYzNSdmNubEZiblJ5ZVNrNklHSnZiMnhsWVc0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnYkdGemRFVnVkSEo1SUgwZ1BTQjBhR2x6TzF4dVhHNGdJQ0FnYVdZZ0tDRnNZWE4wUlc1MGNua3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBjblZsTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNodVpYaDBSVzUwY25rdVpXeGxiV1Z1ZEhNdWJHVnVaM1JvSUNFOVBTQnNZWE4wUlc1MGNua3VaV3hsYldWdWRITXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJzYjI5d0lHWnliMjBnY21sbmFIUWdkRzhnYkdWbWRDQmhjeUJqYUdGdVoyVnpJR0Z5WlNCc2FXdGxiR2xsY2lCMGJ5Qm9ZWEJ3Wlc0Z2IyNGdibVYzSUdWc1pXMWxiblJ6WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SUc1bGVIUkZiblJ5ZVM1bGJHVnRaVzUwY3k1c1pXNW5kR2dnTFNBeE95QnBJRDRnTFRFN0lHa3RMU2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjSEpsZGlBOUlHNWxlSFJGYm5SeWVTNWxiR1Z0Wlc1MGMxdHBYVHRjYmlBZ0lDQWdJR052Ym5OMElHNWxlSFFnUFNCc1lYTjBSVzUwY25rdVpXeGxiV1Z1ZEhOYmFWMDdYRzRnSUNBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0FnSUNGd2NtVjJJSHg4WEc0Z0lDQWdJQ0FnSUNGdVpYaDBJSHg4WEc0Z0lDQWdJQ0FnSUhCeVpYWXVhV1FnSVQwOUlHNWxlSFF1YVdRZ2ZIeGNiaUFnSUNBZ0lDQWdjSEpsZGk1MlpYSnphVzl1VG05dVkyVWdJVDA5SUc1bGVIUXVkbVZ5YzJsdmJrNXZibU5sWEc0Z0lDQWdJQ0FwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdibTkwWlRvZ2RHaHBjeUJwY3lCellXWmxJR0psWTJGMWMyVWdaVzUwY25rbmN5QmhjSEJUZEdGMFpTQnBjeUJuZFdGeVlXNTBaV1ZrSUc1dklHVjRZMlZ6Y3lCd2NtOXdjMXh1SUNBZ0lHeGxkQ0JyWlhrNklHdGxlVzltSUhSNWNHVnZaaUJ1WlhoMFJXNTBjbmt1WVhCd1UzUmhkR1U3WEc0Z0lDQWdabTl5SUNoclpYa2dhVzRnYm1WNGRFVnVkSEo1TG1Gd2NGTjBZWFJsS1NCN1hHNGdJQ0FnSUNCcFppQW9hMlY1SUQwOVBTQmNJbVZrYVhScGJtZE1hVzVsWVhKRmJHVnRaVzUwWENJcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0Z4dUlDQWdJQ0FnSUNBZ0lHNWxlSFJGYm5SeWVTNWhjSEJUZEdGMFpWdHJaWGxkUHk1bGJHVnRaVzUwU1dRZ1BUMDlYRzRnSUNBZ0lDQWdJQ0FnYkdGemRFVnVkSEo1TG1Gd2NGTjBZWFJsVzJ0bGVWMC9MbVZzWlcxbGJuUkpaRnh1SUNBZ0lDQWdJQ0FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdhV1lnS0d0bGVTQTlQVDBnWENKelpXeGxZM1JsWkVWc1pXMWxiblJKWkhOY0lpQjhmQ0JyWlhrZ1BUMDlJRndpYzJWc1pXTjBaV1JIY205MWNFbGtjMXdpS1NCN1hHNGdJQ0FnSUNBZ0lHTnZiblJwYm5WbE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLRzVsZUhSRmJuUnllUzVoY0hCVGRHRjBaVnRyWlhsZElDRTlQU0JzWVhOMFJXNTBjbmt1WVhCd1UzUmhkR1ZiYTJWNVhTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJSDFjYmx4dUlDQndkWE5vUlc1MGNua29ZWEJ3VTNSaGRHVTZJRUZ3Y0ZOMFlYUmxMQ0JsYkdWdFpXNTBjem9nY21WaFpHOXViSGtnUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFNrZ2UxeHVJQ0FnSUdOdmJuTjBJRzVsZDBWdWRISjVSR1ZvZVdSeVlYUmxaQ0E5SUhSb2FYTXVaMlZ1WlhKaGRHVkZiblJ5ZVNoaGNIQlRkR0YwWlN3Z1pXeGxiV1Z1ZEhNcE8xeHVJQ0FnSUdOdmJuTjBJRzVsZDBWdWRISjVPaUJJYVhOMGIzSjVSVzUwY25rZ1BTQjBhR2x6TG1oNVpISmhkR1ZJYVhOMGIzSjVSVzUwY25rb2JtVjNSVzUwY25sRVpXaDVaSEpoZEdWa0tUdGNibHh1SUNBZ0lHbG1JQ2h1WlhkRmJuUnllU2tnZTF4dUlDQWdJQ0FnYVdZZ0tDRjBhR2x6TG5Ob2IzVnNaRU55WldGMFpVVnVkSEo1S0c1bGQwVnVkSEo1S1NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lIUm9hWE11YzNSaGRHVklhWE4wYjNKNUxuQjFjMmdvYm1WM1JXNTBjbmxFWldoNVpISmhkR1ZrS1R0Y2JpQWdJQ0FnSUhSb2FYTXViR0Z6ZEVWdWRISjVJRDBnYm1WM1JXNTBjbms3WEc0Z0lDQWdJQ0F2THlCQmN5QmhJRzVsZHlCbGJuUnllU0IzWVhNZ2NIVnphR1ZrTENCM1pTQnBiblpoYkdsa1lYUmxJSFJvWlNCeVpXUnZJSE4wWVdOclhHNGdJQ0FnSUNCMGFHbHpMbU5zWldGeVVtVmtiMU4wWVdOcktDazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdZMnhsWVhKU1pXUnZVM1JoWTJzb0tTQjdYRzRnSUNBZ2RHaHBjeTV5WldSdlUzUmhZMnN1YzNCc2FXTmxLREFzSUhSb2FYTXVjbVZrYjFOMFlXTnJMbXhsYm1kMGFDazdYRzRnSUgxY2JseHVJQ0J5WldSdlQyNWpaU2dwT2lCSWFYTjBiM0o1Ulc1MGNua2dmQ0J1ZFd4c0lIdGNiaUFnSUNCcFppQW9kR2hwY3k1eVpXUnZVM1JoWTJzdWJHVnVaM1JvSUQwOVBTQXdLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQmxiblJ5ZVZSdlVtVnpkRzl5WlNBOUlIUm9hWE11Y21Wa2IxTjBZV05yTG5CdmNDZ3BPMXh1WEc0Z0lDQWdhV1lnS0dWdWRISjVWRzlTWlhOMGIzSmxJQ0U5UFNCMWJtUmxabWx1WldRcElIdGNiaUFnSUNBZ0lIUm9hWE11YzNSaGRHVklhWE4wYjNKNUxuQjFjMmdvWlc1MGNubFViMUpsYzNSdmNtVXBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11YUhsa2NtRjBaVWhwYzNSdmNubEZiblJ5ZVNobGJuUnllVlJ2VW1WemRHOXlaU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lIMWNibHh1SUNCMWJtUnZUMjVqWlNncE9pQklhWE4wYjNKNVJXNTBjbmtnZkNCdWRXeHNJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NXpkR0YwWlVocGMzUnZjbmt1YkdWdVozUm9JRDA5UFNBeEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCamRYSnlaVzUwUlc1MGNua2dQU0IwYUdsekxuTjBZWFJsU0dsemRHOXllUzV3YjNBb0tUdGNibHh1SUNBZ0lHTnZibk4wSUdWdWRISjVWRzlTWlhOMGIzSmxJRDBnZEdocGN5NXpkR0YwWlVocGMzUnZjbmxiZEdocGN5NXpkR0YwWlVocGMzUnZjbmt1YkdWdVozUm9JQzBnTVYwN1hHNWNiaUFnSUNCcFppQW9ZM1Z5Y21WdWRFVnVkSEo1SUNFOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJSFJvYVhNdWNtVmtiMU4wWVdOckxuQjFjMmdvWTNWeWNtVnVkRVZ1ZEhKNUtUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWg1WkhKaGRHVklhWE4wYjNKNVJXNTBjbmtvWlc1MGNubFViMUpsYzNSdmNtVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZWd1pHRjBaWE1nYUdsemRHOXllU2R6SUdCc1lYTjBSVzUwY25sZ0lIUnZJR3hoZEdWemRDQmhjSEFnYzNSaGRHVXVJRlJvYVhNZ2FYTWdibVZqWlhOellYSjVYRzRnSUNBcUlDQjNhR1Z1SUdSdmFXNW5JSFZ1Wkc4dmNtVmtieUIzYUdsamFDQnBkSE5sYkdZZ1pHOWxjMjRuZENCamIyMXRhWFFnZEc4Z2FHbHpkRzl5ZVN3Z1luVjBJSFZ3WkdGMFpYTmNiaUFnSUNvZ0lHRndjQ0J6ZEdGMFpTQnBiaUJoSUhkaGVTQjBhR0YwSUhkdmRXeGtJR0p5WldGcklHQnphRzkxYkdSRGNtVmhkR1ZGYm5SeWVXQWdkMmhwWTJnZ2NtVnNhV1Z6SUc5dVhHNGdJQ0FxSUNCZ2JHRnpkRVZ1ZEhKNVlDQjBieUJ5Wldac1pXTjBJR3hoYzNRZ1kyOXRhWFIwWVdKc1pTQm9hWE4wYjNKNUlITjBZWFJsTGx4dUlDQWdLaUJYWlNCallXNG5kQ0IxY0dSaGRHVWdZR3hoYzNSRmJuUnllV0FnWm5KdmJTQjNhWFJvYVc0Z2FHbHpkRzl5ZVNCM2FHVnVJR05oYkd4cGJtY2dkVzVrYnk5eVpXUnZYRzRnSUNBcUlDQmlaV05oZFhObElIUm9aU0JoWTNScGIyNGdjRzkwWlc1MGFXRnNiSGtnYlhWMFlYUmxjeUJoY0hCVGRHRjBaUzlsYkdWdFpXNTBjeUJpWldadmNtVWdjM1J2Y21sdVoxeHVJQ0FnS2lBZ2FYUXVYRzRnSUNBcUwxeHVJQ0J6WlhSRGRYSnlaVzUwVTNSaGRHVW9ZWEJ3VTNSaGRHVTZJRUZ3Y0ZOMFlYUmxMQ0JsYkdWdFpXNTBjem9nY21WaFpHOXViSGtnUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFNrZ2UxeHVJQ0FnSUhSb2FYTXViR0Z6ZEVWdWRISjVJRDBnZEdocGN5NW9lV1J5WVhSbFNHbHpkRzl5ZVVWdWRISjVLRnh1SUNBZ0lDQWdkR2hwY3k1blpXNWxjbUYwWlVWdWRISjVLR0Z3Y0ZOMFlYUmxMQ0JsYkdWdFpXNTBjeWtzWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUM4dklGTjFjM0JwWTJsdmRYTWdkR2hoZENCMGFHbHpJR2x6SUdOaGJHeGxaQ0J6YnlCdFlXNTVJSEJzWVdObGN5NGdVMlZsYlhNZ1pYSnliM0l0Y0hKdmJtVXVYRzRnSUhKbGMzVnRaVkpsWTI5eVpHbHVaeWdwSUh0Y2JpQWdJQ0IwYUdsekxuSmxZMjl5WkdsdVp5QTlJSFJ5ZFdVN1hHNGdJSDFjYmx4dUlDQnlaV052Y21Rb2MzUmhkR1U2SUVGd2NGTjBZWFJsTENCbGJHVnRaVzUwY3pvZ2NtVmhaRzl1YkhrZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTa2dlMXh1SUNBZ0lHbG1JQ2gwYUdsekxuSmxZMjl5WkdsdVp5a2dlMXh1SUNBZ0lDQWdkR2hwY3k1d2RYTm9SVzUwY25rb2MzUmhkR1VzSUdWc1pXMWxiblJ6S1R0Y2JpQWdJQ0FnSUhSb2FYTXVjbVZqYjNKa2FXNW5JRDBnWm1Gc2MyVTdYRzRnSUNBZ2ZWeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQmtaV1poZFd4MElFaHBjM1J2Y25rN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2hpc3RvcnkudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2hvb2tzL3VzZUNhbGxiYWNrUmVmU3RhdGUudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9ob29rcy91c2VDYWxsYmFja1JlZlN0YXRlLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInVzZUNhbGxiYWNrUmVmU3RhdGVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB1c2VDYWxsYmFja1JlZlN0YXRlKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyk7XFxuXFxuY29uc3QgdXNlQ2FsbGJhY2tSZWZTdGF0ZSA9ICgpID0+IHtcXG4gICAgY29uc3QgW3JlZlZhbHVlLCBzZXRSZWZWYWx1ZV0gPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZVN0YXRlKShudWxsKTtcXG4gICAgY29uc3QgcmVmQ2FsbGJhY2sgPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZUNhbGxiYWNrKSgodmFsdWUpID0+IHNldFJlZlZhbHVlKHZhbHVlKSwgW10pO1xcbiAgICByZXR1cm4gW3JlZlZhbHVlLCByZWZDYWxsYmFja107XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dmFHOXZhM012ZFhObFEyRnNiR0poWTJ0U1pXWlRkR0YwWlM1MGN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3UVVGQk9FTTdRVUZGZGtNc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl4SFFVRk5MRVZCUVVVN1NVRkRla01zVFVGQlRTeERRVUZETEZGQlFWRXNSVUZCUlN4WFFVRlhMRU5CUVVNc1IwRkJSeXdyUTBGQlVTeERRVUZYTEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUTNwRUxFMUJRVTBzVjBGQlZ5eEhRVUZITEd0RVFVRlhMRU5CUVVNc1EwRkJReXhMUVVGbExFVkJRVVVzUlVGQlJTeERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEpRVU0zUlN4UFFVRlBMRU5CUVVNc1VVRkJVU3hGUVVGRkxGZEJRVmNzUTBGQlZTeERRVUZETzBGQlF6RkRMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5b2IyOXJjeTkxYzJWRFlXeHNZbUZqYTFKbFpsTjBZWFJsTG5SelAySTRZbVlpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ2RYTmxRMkZzYkdKaFkyc3NJSFZ6WlZOMFlYUmxJSDBnWm5KdmJTQmNJbkpsWVdOMFhDSTdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQjFjMlZEWVd4c1ltRmphMUpsWmxOMFlYUmxJRDBnUEZRK0tDa2dQVDRnZTF4dUlDQmpiMjV6ZENCYmNtVm1WbUZzZFdVc0lITmxkRkpsWmxaaGJIVmxYU0E5SUhWelpWTjBZWFJsUEZRZ2ZDQnVkV3hzUGlodWRXeHNLVHRjYmlBZ1kyOXVjM1FnY21WbVEyRnNiR0poWTJzZ1BTQjFjMlZEWVd4c1ltRmpheWdvZG1Gc2RXVTZJRlFnZkNCdWRXeHNLU0E5UGlCelpYUlNaV1pXWVd4MVpTaDJZV3gxWlNrc0lGdGRLVHRjYmlBZ2NtVjBkWEp1SUZ0eVpXWldZV3gxWlN3Z2NtVm1RMkZzYkdKaFkydGRJR0Z6SUdOdmJuTjBPMXh1ZlR0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2hvb2tzL3VzZUNhbGxiYWNrUmVmU3RhdGUudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2kxOG4udHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9pMThuLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRMYW5nXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZGVmYXVsdExhbmcpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImxhbmd1YWdlc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGxhbmd1YWdlcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwic2V0TGFuZ3VhZ2VcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBzZXRMYW5ndWFnZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0TGFuZ3VhZ2VcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRMYW5ndWFnZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwidFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHQpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9sb2NhbGVzX2VuX2pzb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vbG9jYWxlcy9lbi5qc29uICovIFxcXCIuLi8uLi9sb2NhbGVzL2VuLmpzb25cXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2xvY2FsZXNfcGVyY2VudGFnZXNfanNvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9sb2NhbGVzL3BlcmNlbnRhZ2VzLmpzb24gKi8gXFxcIi4uLy4uL2xvY2FsZXMvcGVyY2VudGFnZXMuanNvblxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2NvbnN0YW50cyAqLyBcXFwiLi4vLi4vY29uc3RhbnRzLnRzXFxcIik7XFxudmFyIF9fYXdhaXRlciA9ICh1bmRlZmluZWQgJiYgdW5kZWZpbmVkLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XFxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XFxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcXFwidGhyb3dcXFwiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XFxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xcbiAgICB9KTtcXG59O1xcblxcblxcblxcbmNvbnN0IENPTVBMRVRJT05fVEhSRVNIT0xEID0gODU7XFxuY29uc3QgZGVmYXVsdExhbmcgPSB7IGNvZGU6IFxcXCJlblxcXCIsIGxhYmVsOiBcXFwiRW5nbGlzaFxcXCIgfTtcXG5jb25zdCBhbGxMYW5ndWFnZXMgPSBbXFxuICAgIHsgY29kZTogXFxcImFyLVNBXFxcIiwgbGFiZWw6IFxcXCJcdTA2MjdcdTA2NDRcdTA2MzlcdTA2MzFcdTA2MjhcdTA2NEFcdTA2MjlcXFwiLCBydGw6IHRydWUgfSxcXG4gICAgeyBjb2RlOiBcXFwiYmctQkdcXFwiLCBsYWJlbDogXFxcIlx1MDQxMVx1MDQ0QVx1MDQzQlx1MDQzM1x1MDQzMFx1MDQ0MFx1MDQ0MVx1MDQzQVx1MDQzOFxcXCIgfSxcXG4gICAgeyBjb2RlOiBcXFwiY2EtRVNcXFwiLCBsYWJlbDogXFxcIkNhdGFsXHUwMEUwXFxcIiB9LFxcbiAgICB7IGNvZGU6IFxcXCJjcy1DWlxcXCIsIGxhYmVsOiBcXFwiXHUwMTBDZXNreVxcXCIgfSxcXG4gICAgeyBjb2RlOiBcXFwiZGUtREVcXFwiLCBsYWJlbDogXFxcIkRldXRzY2hcXFwiIH0sXFxuICAgIHsgY29kZTogXFxcImVsLUdSXFxcIiwgbGFiZWw6IFxcXCJcdTAzOTVcdTAzQkJcdTAzQkJcdTAzQjdcdTAzQkRcdTAzQjlcdTAzQkFcdTAzQUNcXFwiIH0sXFxuICAgIHsgY29kZTogXFxcImVzLUVTXFxcIiwgbGFiZWw6IFxcXCJFc3BhXHUwMEYxb2xcXFwiIH0sXFxuICAgIHsgY29kZTogXFxcImV1LUVTXFxcIiwgbGFiZWw6IFxcXCJFdXNrYXJhXFxcIiB9LFxcbiAgICB7IGNvZGU6IFxcXCJmYS1JUlxcXCIsIGxhYmVsOiBcXFwiXHUwNjQxXHUwNjI3XHUwNjMxXHUwNjMzXHUwNkNDXFxcIiwgcnRsOiB0cnVlIH0sXFxuICAgIHsgY29kZTogXFxcImZpLUZJXFxcIiwgbGFiZWw6IFxcXCJTdW9taVxcXCIgfSxcXG4gICAgeyBjb2RlOiBcXFwiZnItRlJcXFwiLCBsYWJlbDogXFxcIkZyYW5cdTAwRTdhaXNcXFwiIH0sXFxuICAgIHsgY29kZTogXFxcImhlLUlMXFxcIiwgbGFiZWw6IFxcXCJcdTA1RTJcdTA1RDFcdTA1RThcdTA1RDlcdTA1RUFcXFwiLCBydGw6IHRydWUgfSxcXG4gICAgeyBjb2RlOiBcXFwiaGktSU5cXFwiLCBsYWJlbDogXFxcIlx1MDkzOVx1MDkzRlx1MDkyOFx1MDk0RFx1MDkyNlx1MDk0MFxcXCIgfSxcXG4gICAgeyBjb2RlOiBcXFwiaHUtSFVcXFwiLCBsYWJlbDogXFxcIk1hZ3lhclxcXCIgfSxcXG4gICAgeyBjb2RlOiBcXFwiaWQtSURcXFwiLCBsYWJlbDogXFxcIkJhaGFzYSBJbmRvbmVzaWFcXFwiIH0sXFxuICAgIHsgY29kZTogXFxcIml0LUlUXFxcIiwgbGFiZWw6IFxcXCJJdGFsaWFub1xcXCIgfSxcXG4gICAgeyBjb2RlOiBcXFwiamEtSlBcXFwiLCBsYWJlbDogXFxcIlx1NjVFNVx1NjcyQ1x1OEE5RVxcXCIgfSxcXG4gICAgeyBjb2RlOiBcXFwia2FiLUtBQlxcXCIsIGxhYmVsOiBcXFwiVGFxYmF5bGl0XFxcIiB9LFxcbiAgICB7IGNvZGU6IFxcXCJray1LWlxcXCIsIGxhYmVsOiBcXFwiXHUwNDlBXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDlCIFx1MDQ0Mlx1MDQ1Nlx1MDQzQlx1MDQ1NlxcXCIgfSxcXG4gICAgeyBjb2RlOiBcXFwia28tS1JcXFwiLCBsYWJlbDogXFxcIlx1RDU1Q1x1QUQ2RFx1QzVCNFxcXCIgfSxcXG4gICAgeyBjb2RlOiBcXFwibHQtTFRcXFwiLCBsYWJlbDogXFxcIkxpZXR1dmlcdTAxNzNcXFwiIH0sXFxuICAgIHsgY29kZTogXFxcImx2LUxWXFxcIiwgbGFiZWw6IFxcXCJMYXR2aWVcdTAxNjF1XFxcIiB9LFxcbiAgICB7IGNvZGU6IFxcXCJteS1NTVxcXCIsIGxhYmVsOiBcXFwiQnVybWVzZVxcXCIgfSxcXG4gICAgeyBjb2RlOiBcXFwibmItTk9cXFwiLCBsYWJlbDogXFxcIk5vcnNrIGJva21cdTAwRTVsXFxcIiB9LFxcbiAgICB7IGNvZGU6IFxcXCJubC1OTFxcXCIsIGxhYmVsOiBcXFwiTmVkZXJsYW5kc1xcXCIgfSxcXG4gICAgeyBjb2RlOiBcXFwibm4tTk9cXFwiLCBsYWJlbDogXFxcIk5vcnNrIG55bm9yc2tcXFwiIH0sXFxuICAgIHsgY29kZTogXFxcIm9jLUZSXFxcIiwgbGFiZWw6IFxcXCJPY2NpdGFuXFxcIiB9LFxcbiAgICB7IGNvZGU6IFxcXCJwYS1JTlxcXCIsIGxhYmVsOiBcXFwiXHUwQTJBXHUwQTcwXHUwQTFDXHUwQTNFXHUwQTJDXHUwQTQwXFxcIiB9LFxcbiAgICB7IGNvZGU6IFxcXCJwbC1QTFxcXCIsIGxhYmVsOiBcXFwiUG9sc2tpXFxcIiB9LFxcbiAgICB7IGNvZGU6IFxcXCJwdC1CUlxcXCIsIGxhYmVsOiBcXFwiUG9ydHVndVx1MDBFQXMgQnJhc2lsZWlyb1xcXCIgfSxcXG4gICAgeyBjb2RlOiBcXFwicHQtUFRcXFwiLCBsYWJlbDogXFxcIlBvcnR1Z3VcdTAwRUFzXFxcIiB9LFxcbiAgICB7IGNvZGU6IFxcXCJyby1ST1xcXCIsIGxhYmVsOiBcXFwiUm9tXHUwMEUyblx1MDEwM1xcXCIgfSxcXG4gICAgeyBjb2RlOiBcXFwicnUtUlVcXFwiLCBsYWJlbDogXFxcIlx1MDQyMFx1MDQ0M1x1MDQ0MVx1MDQ0MVx1MDQzQVx1MDQzOFx1MDQzOVxcXCIgfSxcXG4gICAgeyBjb2RlOiBcXFwic2stU0tcXFwiLCBsYWJlbDogXFxcIlNsb3Zlblx1MDEwRGluYVxcXCIgfSxcXG4gICAgeyBjb2RlOiBcXFwic3YtU0VcXFwiLCBsYWJlbDogXFxcIlN2ZW5za2FcXFwiIH0sXFxuICAgIHsgY29kZTogXFxcInRyLVRSXFxcIiwgbGFiZWw6IFxcXCJUXHUwMEZDcmtcdTAwRTdlXFxcIiB9LFxcbiAgICB7IGNvZGU6IFxcXCJ1ay1VQVxcXCIsIGxhYmVsOiBcXFwiXHUwNDIzXHUwNDNBXHUwNDQwXHUwNDMwXHUwNDU3XHUwNDNEXHUwNDQxXHUwNDRDXHUwNDNBXHUwNDMwXFxcIiB9LFxcbiAgICB7IGNvZGU6IFxcXCJ6aC1DTlxcXCIsIGxhYmVsOiBcXFwiXHU3QjgwXHU0RjUzXHU0RTJEXHU2NTg3XFxcIiB9LFxcbiAgICB7IGNvZGU6IFxcXCJ6aC1UV1xcXCIsIGxhYmVsOiBcXFwiXHU3RTQxXHU5QUQ0XHU0RTJEXHU2NTg3XFxcIiB9LFxcbl0uY29uY2F0KFtkZWZhdWx0TGFuZ10pO1xcbmNvbnN0IGxhbmd1YWdlcyA9IGFsbExhbmd1YWdlc1xcbiAgICAuc29ydCgobGVmdCwgcmlnaHQpID0+IChsZWZ0LmxhYmVsID4gcmlnaHQubGFiZWwgPyAxIDogLTEpKVxcbiAgICAuZmlsdGVyKChsYW5nKSA9PiBfbG9jYWxlc19wZXJjZW50YWdlc19qc29uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bbGFuZy5jb2RlXSA+PVxcbiAgICBDT01QTEVUSU9OX1RIUkVTSE9MRCk7XFxuY29uc3QgVEVTVF9MQU5HX0NPREUgPSBcXFwiX190ZXN0X19cXFwiO1xcbmlmIChcXFwiZGV2ZWxvcG1lbnRcXFwiID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uRU5WLkRFVkVMT1BNRU5UKSB7XFxuICAgIGxhbmd1YWdlcy51bnNoaWZ0KHsgY29kZTogVEVTVF9MQU5HX0NPREUsIGxhYmVsOiBcXFwidGVzdCBsYW5ndWFnZVxcXCIgfSwge1xcbiAgICAgICAgY29kZTogYCR7VEVTVF9MQU5HX0NPREV9LnJ0bGAsXFxuICAgICAgICBsYWJlbDogXFxcIlxcXFx1ezIwMmF9dGVzdCBsYW5ndWFnZSAocnRsKVxcXFx1ezIwMmN9XFxcIixcXG4gICAgICAgIHJ0bDogdHJ1ZSxcXG4gICAgfSk7XFxufVxcbmxldCBjdXJyZW50TGFuZyA9IGRlZmF1bHRMYW5nO1xcbmxldCBjdXJyZW50TGFuZ0RhdGEgPSB7fTtcXG5jb25zdCBzZXRMYW5ndWFnZSA9IChsYW5nKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgY3VycmVudExhbmcgPSBsYW5nO1xcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGlyID0gY3VycmVudExhbmcucnRsID8gXFxcInJ0bFxcXCIgOiBcXFwibHRyXFxcIjtcXG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSBjdXJyZW50TGFuZy5jb2RlO1xcbiAgICBpZiAobGFuZy5jb2RlLnN0YXJ0c1dpdGgoVEVTVF9MQU5HX0NPREUpKSB7XFxuICAgICAgICBjdXJyZW50TGFuZ0RhdGEgPSB7fTtcXG4gICAgfVxcbiAgICBlbHNlIHtcXG4gICAgICAgIGN1cnJlbnRMYW5nRGF0YSA9IHlpZWxkIF9fd2VicGFja19yZXF1aXJlX18oXFxcIi4uLy4uL2xvY2FsZXMgbGF6eSByZWN1cnNpdmUgXlxcXFxcXFxcLlxcXFxcXFxcLy4qXFxcXFxcXFwuanNvbiRcXFwiKShgLi8ke2N1cnJlbnRMYW5nLmNvZGV9Lmpzb25gKTtcXG4gICAgfVxcbn0pO1xcbmNvbnN0IGdldExhbmd1YWdlID0gKCkgPT4gY3VycmVudExhbmc7XFxuY29uc3QgZmluZFBhcnRzRm9yRGF0YSA9IChkYXRhLCBwYXJ0cykgPT4ge1xcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgcGFydHMubGVuZ3RoOyArK2luZGV4KSB7XFxuICAgICAgICBjb25zdCBwYXJ0ID0gcGFydHNbaW5kZXhdO1xcbiAgICAgICAgaWYgKGRhdGFbcGFydF0gPT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XFxuICAgICAgICB9XFxuICAgICAgICBkYXRhID0gZGF0YVtwYXJ0XTtcXG4gICAgfVxcbiAgICBpZiAodHlwZW9mIGRhdGEgIT09IFxcXCJzdHJpbmdcXFwiKSB7XFxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xcbiAgICB9XFxuICAgIHJldHVybiBkYXRhO1xcbn07XFxuY29uc3QgdCA9IChwYXRoLCByZXBsYWNlbWVudCkgPT4ge1xcbiAgICBpZiAoY3VycmVudExhbmcuY29kZS5zdGFydHNXaXRoKFRFU1RfTEFOR19DT0RFKSkge1xcbiAgICAgICAgY29uc3QgbmFtZSA9IHJlcGxhY2VtZW50XFxuICAgICAgICAgICAgPyBgJHtwYXRofSgke0pTT04uc3RyaW5naWZ5KHJlcGxhY2VtZW50KS5zbGljZSgxLCAtMSl9KWBcXG4gICAgICAgICAgICA6IHBhdGg7XFxuICAgICAgICByZXR1cm4gYFxcXFx1ezIwMmF9W1ske25hbWV9XV1cXFxcdXsyMDJjfWA7XFxuICAgIH1cXG4gICAgY29uc3QgcGFydHMgPSBwYXRoLnNwbGl0KFxcXCIuXFxcIik7XFxuICAgIGxldCB0cmFuc2xhdGlvbiA9IGZpbmRQYXJ0c0ZvckRhdGEoY3VycmVudExhbmdEYXRhLCBwYXJ0cykgfHxcXG4gICAgICAgIGZpbmRQYXJ0c0ZvckRhdGEoX2xvY2FsZXNfZW5fanNvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLCBwYXJ0cyk7XFxuICAgIGlmICh0cmFuc2xhdGlvbiA9PT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbid0IGZpbmQgdHJhbnNsYXRpb24gZm9yICR7cGF0aH1gKTtcXG4gICAgfVxcbiAgICBpZiAocmVwbGFjZW1lbnQpIHtcXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHJlcGxhY2VtZW50KSB7XFxuICAgICAgICAgICAgdHJhbnNsYXRpb24gPSB0cmFuc2xhdGlvbi5yZXBsYWNlKGB7eyR7a2V5fX19YCwgU3RyaW5nKHJlcGxhY2VtZW50W2tleV0pKTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICByZXR1cm4gdHJhbnNsYXRpb247XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dmFURTRiaTUwY3k1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3T3pzN096czdPenM3T3p0QlFVRnBSRHRCUVVOSk8wRkJRMjVDTzBGQlJXeERMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NSVUZCUlN4RFFVRkRPMEZCVVhwQ0xFMUJRVTBzVjBGQlZ5eEhRVUZITEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hMUVVGTExFVkJRVVVzVTBGQlV5eEZRVUZGTEVOQlFVTTdRVUZGTlVRc1RVRkJUU3haUVVGWkxFZEJRV1U3U1VGREwwSXNSVUZCUlN4SlFVRkpMRVZCUVVVc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeFRRVUZUTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWxCUVVrc1JVRkJSVHRKUVVNNVF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxGZEJRVmNzUlVGQlJUdEpRVU55UXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEZGQlFWRXNSVUZCUlR0SlFVTnNReXhGUVVGRkxFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTlCUVU4c1JVRkJSVHRKUVVOcVF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxGTkJRVk1zUlVGQlJUdEpRVU51UXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEZWQlFWVXNSVUZCUlR0SlFVTndReXhGUVVGRkxFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNTMEZCU3l4RlFVRkZMRk5CUVZNc1JVRkJSVHRKUVVOdVF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxGTkJRVk1zUlVGQlJUdEpRVU51UXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRVZCUVVVc1NVRkJTU3hGUVVGRk8wbEJRelZETEVWQlFVVXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVDBGQlR5eEZRVUZGTzBsQlEycERMRVZCUVVVc1NVRkJTU3hGUVVGRkxFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNWVUZCVlN4RlFVRkZPMGxCUTNCRExFVkJRVVVzU1VGQlNTeEZRVUZGTEU5QlFVOHNSVUZCUlN4TFFVRkxMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEpRVUZKTEVWQlFVVTdTVUZETlVNc1JVRkJSU3hKUVVGSkxFVkJRVVVzVDBGQlR5eEZRVUZGTEV0QlFVc3NSVUZCUlN4UlFVRlJMRVZCUVVVN1NVRkRiRU1zUlVGQlJTeEpRVUZKTEVWQlFVVXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hSUVVGUkxFVkJRVVU3U1VGRGJFTXNSVUZCUlN4SlFVRkpMRVZCUVVVc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSVHRKUVVNMVF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxGVkJRVlVzUlVGQlJUdEpRVU53UXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlR0SlFVTXZRaXhGUVVGRkxFbEJRVWtzUlVGQlJTeFRRVUZUTEVWQlFVVXNTMEZCU3l4RlFVRkZMRmRCUVZjc1JVRkJSVHRKUVVOMlF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxGbEJRVmtzUlVGQlJUdEpRVU4wUXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlR0SlFVTXZRaXhGUVVGRkxFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNTMEZCU3l4RlFVRkZMRlZCUVZVc1JVRkJSVHRKUVVOd1F5eEZRVUZGTEVsQlFVa3NSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxGVkJRVlVzUlVGQlJUdEpRVU53UXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEZOQlFWTXNSVUZCUlR0SlFVTnVReXhGUVVGRkxFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNTMEZCU3l4RlFVRkZMR05CUVdNc1JVRkJSVHRKUVVONFF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxGbEJRVmtzUlVGQlJUdEpRVU4wUXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEdWQlFXVXNSVUZCUlR0SlFVTjZReXhGUVVGRkxFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNTMEZCU3l4RlFVRkZMRk5CUVZNc1JVRkJSVHRKUVVOdVF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxGRkJRVkVzUlVGQlJUdEpRVU5zUXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEZGQlFWRXNSVUZCUlR0SlFVTnNReXhGUVVGRkxFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNTMEZCU3l4RlFVRkZMSE5DUVVGelFpeEZRVUZGTzBsQlEyaEVMRVZCUVVVc1NVRkJTU3hGUVVGRkxFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNWMEZCVnl4RlFVRkZPMGxCUTNKRExFVkJRVVVzU1VGQlNTeEZRVUZGTEU5QlFVOHNSVUZCUlN4TFFVRkxMRVZCUVVVc1VVRkJVU3hGUVVGRk8wbEJRMnhETEVWQlFVVXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVTBGQlV5eEZRVUZGTzBsQlEyNURMRVZCUVVVc1NVRkJTU3hGUVVGRkxFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNXVUZCV1N4RlFVRkZPMGxCUTNSRExFVkJRVVVzU1VGQlNTeEZRVUZGTEU5QlFVOHNSVUZCUlN4TFFVRkxMRVZCUVVVc1UwRkJVeXhGUVVGRk8wbEJRMjVETEVWQlFVVXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVVVGQlVTeEZRVUZGTzBsQlEyeERMRVZCUVVVc1NVRkJTU3hGUVVGRkxFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNXVUZCV1N4RlFVRkZPMGxCUTNSRExFVkJRVVVzU1VGQlNTeEZRVUZGTEU5QlFVOHNSVUZCUlN4TFFVRkxMRVZCUVVVc1RVRkJUU3hGUVVGRk8wbEJRMmhETEVWQlFVVXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTzBOQlEycERMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVVnFRaXhOUVVGTkxGTkJRVk1zUjBGQlpTeFpRVUZaTzB0QlF6bERMRWxCUVVrc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRNVVFzVFVGQlRTeERRVU5NTEVOQlFVTXNTVUZCU1N4RlFVRkZMRVZCUVVVc1EwRkRUaXh6UkVGQmMwTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRE8wbEJRMnhFTEc5Q1FVRnZRaXhEUVVOMlFpeERRVUZETzBGQlJVb3NUVUZCVFN4alFVRmpMRWRCUVVjc1ZVRkJWU3hEUVVGRE8wRkJRMnhETEVsQlFVa3NZVUZCYjBJc1MwRkJTeXgxUkVGQlpTeEZRVUZGTzBsQlF6VkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRMllzUlVGQlJTeEpRVUZKTEVWQlFVVXNZMEZCWXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hsUVVGbExFVkJRVVVzUlVGRGFFUTdVVUZEUlN4SlFVRkpMRVZCUVVVc1IwRkJSeXhqUVVGakxFMUJRVTA3VVVGRE4wSXNTMEZCU3l4RlFVRkZMSEZEUVVGeFF6dFJRVU0xUXl4SFFVRkhMRVZCUVVVc1NVRkJTVHRMUVVOV0xFTkJRMFlzUTBGQlF6dERRVU5JTzBGQlJVUXNTVUZCU1N4WFFVRlhMRWRCUVdFc1YwRkJWeXhEUVVGRE8wRkJRM2hETEVsQlFVa3NaVUZCWlN4SFFVRkhMRVZCUVVVc1EwRkJRenRCUVVWc1FpeE5RVUZOTEZkQlFWY3NSMEZCUnl4RFFVRlBMRWxCUVdNc1JVRkJSU3hGUVVGRk8wbEJRMnhFTEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNN1NVRkRia0lzVVVGQlVTeERRVUZETEdWQlFXVXNRMEZCUXl4SFFVRkhMRWRCUVVjc1YwRkJWeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU03U1VGREwwUXNVVUZCVVN4RFFVRkRMR1ZCUVdVc1EwRkJReXhKUVVGSkxFZEJRVWNzVjBGQlZ5eERRVUZETEVsQlFVa3NRMEZCUXp0SlFVVnFSQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMR05CUVdNc1EwRkJReXhGUVVGRk8xRkJRM2hETEdWQlFXVXNSMEZCUnl4RlFVRkZMRU5CUVVNN1MwRkRkRUk3VTBGQlRUdFJRVU5NTEdWQlFXVXNSMEZCUnl4TlFVRk5MSE5GUVVOdFFpeEhRVUZYTEVWQlFVVXNWMEZCVnl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRemxGTEVOQlFVTTdTMEZEU0R0QlFVTklMRU5CUVVNc1JVRkJRenRCUVVWTExFMUJRVTBzVjBGQlZ5eEhRVUZITEVkQlFVY3NSVUZCUlN4RFFVRkRMRmRCUVZjc1EwRkJRenRCUVVVM1F5eE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFTkJRVU1zU1VGQlV5eEZRVUZGTEV0QlFXVXNSVUZCUlN4RlFVRkZPMGxCUTNSRUxFdEJRVXNzU1VGQlNTeExRVUZMTEVkQlFVY3NRMEZCUXl4RlFVRkZMRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU1zVFVGQlRTeEZRVUZGTEVWQlFVVXNTMEZCU3l4RlFVRkZPMUZCUTJwRUxFMUJRVTBzU1VGQlNTeEhRVUZITEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVNeFFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhUUVVGVExFVkJRVVU3V1VGRE5VSXNUMEZCVHl4VFFVRlRMRU5CUVVNN1UwRkRiRUk3VVVGRFJDeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wdEJRMjVDTzBsQlEwUXNTVUZCU1N4UFFVRlBMRWxCUVVrc1MwRkJTeXhSUVVGUkxFVkJRVVU3VVVGRE5VSXNUMEZCVHl4VFFVRlRMRU5CUVVNN1MwRkRiRUk3U1VGRFJDeFBRVUZQTEVsQlFVa3NRMEZCUXp0QlFVTmtMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlEyWXNTVUZCV1N4RlFVTmFMRmRCUVdkRUxFVkJRMmhFTEVWQlFVVTdTVUZEUml4SlFVRkpMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEdOQlFXTXNRMEZCUXl4RlFVRkZPMUZCUXk5RExFMUJRVTBzU1VGQlNTeEhRVUZITEZkQlFWYzdXVUZEZEVJc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeEpRVUZKTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSE8xbEJRM2hFTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1VVRkRWQ3hQUVVGUExHRkJRV0VzU1VGQlNTeFpRVUZaTEVOQlFVTTdTMEZEZEVNN1NVRkZSQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRemxDTEVsQlFVa3NWMEZCVnl4SFFVTmlMR2RDUVVGblFpeERRVUZETEdWQlFXVXNSVUZCUlN4TFFVRkxMRU5CUVVNN1VVRkRlRU1zWjBKQlFXZENMRU5CUVVNc05rTkJRV2RDTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1NVRkROVU1zU1VGQlNTeFhRVUZYTEV0QlFVc3NVMEZCVXl4RlFVRkZPMUZCUXpkQ0xFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNPRUpCUVRoQ0xFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTTdTMEZEZGtRN1NVRkZSQ3hKUVVGSkxGZEJRVmNzUlVGQlJUdFJRVU5tTEV0QlFVc3NUVUZCVFN4SFFVRkhMRWxCUVVrc1YwRkJWeXhGUVVGRk8xbEJRemRDTEZkQlFWY3NSMEZCUnl4WFFVRlhMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEVWQlFVVXNUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVMEZETTBVN1MwRkRSanRKUVVORUxFOUJRVThzVjBGQlZ5eERRVUZETzBGQlEzSkNMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5cE1UaHVMblJ6UHpNNFpEZ2lYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJR1poYkd4aVlXTnJUR0Z1WjBSaGRHRWdabkp2YlNCY0lpNHZiRzlqWVd4bGN5OWxiaTVxYzI5dVhDSTdYRzVwYlhCdmNuUWdjR1Z5WTJWdWRHRm5aWE1nWm5KdmJTQmNJaTR2Ykc5allXeGxjeTl3WlhKalpXNTBZV2RsY3k1cWMyOXVYQ0k3WEc1cGJYQnZjblFnZXlCRlRsWWdmU0JtY205dElGd2lMaTlqYjI1emRHRnVkSE5jSWp0Y2JseHVZMjl1YzNRZ1EwOU5VRXhGVkVsUFRsOVVTRkpGVTBoUFRFUWdQU0E0TlR0Y2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQk1ZVzVuZFdGblpTQjdYRzRnSUdOdlpHVTZJSE4wY21sdVp6dGNiaUFnYkdGaVpXdzZJSE4wY21sdVp6dGNiaUFnY25Sc1B6b2dZbTl2YkdWaGJqdGNibjFjYmx4dVpYaHdiM0owSUdOdmJuTjBJR1JsWm1GMWJIUk1ZVzVuSUQwZ2V5QmpiMlJsT2lCY0ltVnVYQ0lzSUd4aFltVnNPaUJjSWtWdVoyeHBjMmhjSWlCOU8xeHVYRzVqYjI1emRDQmhiR3hNWVc1bmRXRm5aWE02SUV4aGJtZDFZV2RsVzEwZ1BTQmJYRzRnSUhzZ1kyOWtaVG9nWENKaGNpMVRRVndpTENCc1lXSmxiRG9nWENMWXA5bUUyTG5Zc2RpbzJZcllxVndpTENCeWRHdzZJSFJ5ZFdVZ2ZTeGNiaUFnZXlCamIyUmxPaUJjSW1KbkxVSkhYQ0lzSUd4aFltVnNPaUJjSXRDUjBZclF1OUN6MExEUmdOR0IwTHJRdUZ3aUlIMHNYRzRnSUhzZ1kyOWtaVG9nWENKallTMUZVMXdpTENCc1lXSmxiRG9nWENKRFlYUmhiTU9nWENJZ2ZTeGNiaUFnZXlCamIyUmxPaUJjSW1OekxVTmFYQ0lzSUd4aFltVnNPaUJjSXNTTVpYTnJlVndpSUgwc1hHNGdJSHNnWTI5a1pUb2dYQ0prWlMxRVJWd2lMQ0JzWVdKbGJEb2dYQ0pFWlhWMGMyTm9YQ0lnZlN4Y2JpQWdleUJqYjJSbE9pQmNJbVZzTFVkU1hDSXNJR3hoWW1Wc09pQmNJczZWenJ2T3U4NjN6cjNPdWM2NnpxeGNJaUI5TEZ4dUlDQjdJR052WkdVNklGd2laWE10UlZOY0lpd2diR0ZpWld3NklGd2lSWE53WWNPeGIyeGNJaUI5TEZ4dUlDQjdJR052WkdVNklGd2laWFV0UlZOY0lpd2diR0ZpWld3NklGd2lSWFZ6YTJGeVlWd2lJSDBzWEc0Z0lIc2dZMjlrWlRvZ1hDSm1ZUzFKVWx3aUxDQnNZV0psYkRvZ1hDTFpnZGluMkxIWXM5dU1YQ0lzSUhKMGJEb2dkSEoxWlNCOUxGeHVJQ0I3SUdOdlpHVTZJRndpWm1rdFJrbGNJaXdnYkdGaVpXdzZJRndpVTNWdmJXbGNJaUI5TEZ4dUlDQjdJR052WkdVNklGd2labkl0UmxKY0lpd2diR0ZpWld3NklGd2lSbkpoYnNPbllXbHpYQ0lnZlN4Y2JpQWdleUJqYjJSbE9pQmNJbWhsTFVsTVhDSXNJR3hoWW1Wc09pQmNJdGVpMTVIWHFOZVoxNnBjSWl3Z2NuUnNPaUIwY25WbElIMHNYRzRnSUhzZ1kyOWtaVG9nWENKb2FTMUpUbHdpTENCc1lXSmxiRG9nWENMZ3BMbmdwTC9ncEtqZ3BZM2dwS2JncFlCY0lpQjlMRnh1SUNCN0lHTnZaR1U2SUZ3aWFIVXRTRlZjSWl3Z2JHRmlaV3c2SUZ3aVRXRm5lV0Z5WENJZ2ZTeGNiaUFnZXlCamIyUmxPaUJjSW1sa0xVbEVYQ0lzSUd4aFltVnNPaUJjSWtKaGFHRnpZU0JKYm1SdmJtVnphV0ZjSWlCOUxGeHVJQ0I3SUdOdlpHVTZJRndpYVhRdFNWUmNJaXdnYkdGaVpXdzZJRndpU1hSaGJHbGhibTljSWlCOUxGeHVJQ0I3SUdOdlpHVTZJRndpYW1FdFNsQmNJaXdnYkdGaVpXdzZJRndpNXBlbDVweXM2S3FlWENJZ2ZTeGNiaUFnZXlCamIyUmxPaUJjSW10aFlpMUxRVUpjSWl3Z2JHRmlaV3c2SUZ3aVZHRnhZbUY1YkdsMFhDSWdmU3hjYmlBZ2V5QmpiMlJsT2lCY0ltdHJMVXRhWENJc0lHeGhZbVZzT2lCY0l0S2EwTERRdDlDdzBwc2cwWUxSbHRDNzBaWmNJaUI5TEZ4dUlDQjdJR052WkdVNklGd2lhMjh0UzFKY0lpd2diR0ZpWld3NklGd2k3WldjNnJXdDdKYTBYQ0lnZlN4Y2JpQWdleUJqYjJSbE9pQmNJbXgwTFV4VVhDSXNJR3hoWW1Wc09pQmNJa3hwWlhSMWRtbkZzMXdpSUgwc1hHNGdJSHNnWTI5a1pUb2dYQ0pzZGkxTVZsd2lMQ0JzWVdKbGJEb2dYQ0pNWVhSMmFXWEZvWFZjSWlCOUxGeHVJQ0I3SUdOdlpHVTZJRndpYlhrdFRVMWNJaXdnYkdGaVpXdzZJRndpUW5WeWJXVnpaVndpSUgwc1hHNGdJSHNnWTI5a1pUb2dYQ0p1WWkxT1Qxd2lMQ0JzWVdKbGJEb2dYQ0pPYjNKemF5QmliMnR0dzZWc1hDSWdmU3hjYmlBZ2V5QmpiMlJsT2lCY0ltNXNMVTVNWENJc0lHeGhZbVZzT2lCY0lrNWxaR1Z5YkdGdVpITmNJaUI5TEZ4dUlDQjdJR052WkdVNklGd2libTR0VGs5Y0lpd2diR0ZpWld3NklGd2lUbTl5YzJzZ2JubHViM0p6YTF3aUlIMHNYRzRnSUhzZ1kyOWtaVG9nWENKdll5MUdVbHdpTENCc1lXSmxiRG9nWENKUFkyTnBkR0Z1WENJZ2ZTeGNiaUFnZXlCamIyUmxPaUJjSW5CaExVbE9YQ0lzSUd4aFltVnNPaUJjSXVDb3F1Q3BzT0Nvbk9Db3Z1Q29yT0NwZ0Z3aUlIMHNYRzRnSUhzZ1kyOWtaVG9nWENKd2JDMVFURndpTENCc1lXSmxiRG9nWENKUWIyeHphMmxjSWlCOUxGeHVJQ0I3SUdOdlpHVTZJRndpY0hRdFFsSmNJaXdnYkdGaVpXdzZJRndpVUc5eWRIVm5kY09xY3lCQ2NtRnphV3hsYVhKdlhDSWdmU3hjYmlBZ2V5QmpiMlJsT2lCY0luQjBMVkJVWENJc0lHeGhZbVZzT2lCY0lsQnZjblIxWjNYRHFuTmNJaUI5TEZ4dUlDQjdJR052WkdVNklGd2ljbTh0VWs5Y0lpd2diR0ZpWld3NklGd2lVbTl0dzZKdXhJTmNJaUI5TEZ4dUlDQjdJR052WkdVNklGd2ljblV0VWxWY0lpd2diR0ZpWld3NklGd2kwS0RSZzlHQjBZSFF1dEM0MExsY0lpQjlMRnh1SUNCN0lHTnZaR1U2SUZ3aWMyc3RVMHRjSWl3Z2JHRmlaV3c2SUZ3aVUyeHZkbVZ1eEkxcGJtRmNJaUI5TEZ4dUlDQjdJR052WkdVNklGd2ljM1l0VTBWY0lpd2diR0ZpWld3NklGd2lVM1psYm5OcllWd2lJSDBzWEc0Z0lIc2dZMjlrWlRvZ1hDSjBjaTFVVWx3aUxDQnNZV0psYkRvZ1hDSlV3N3h5YThPblpWd2lJSDBzWEc0Z0lIc2dZMjlrWlRvZ1hDSjFheTFWUVZ3aUxDQnNZV0psYkRvZ1hDTFFvOUM2MFlEUXNOR1gwTDNSZ2RHTTBMclFzRndpSUgwc1hHNGdJSHNnWTI5a1pUb2dYQ0o2YUMxRFRsd2lMQ0JzWVdKbGJEb2dYQ0xucm9Ea3ZaUGt1SzNtbG9kY0lpQjlMRnh1SUNCN0lHTnZaR1U2SUZ3aWVtZ3RWRmRjSWl3Z2JHRmlaV3c2SUZ3aTU3bUI2YXVVNUxpdDVwYUhYQ0lnZlN4Y2JsMHVZMjl1WTJGMEtGdGtaV1poZFd4MFRHRnVaMTBwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYkdGdVozVmhaMlZ6T2lCTVlXNW5kV0ZuWlZ0ZElEMGdZV3hzVEdGdVozVmhaMlZ6WEc0Z0lDNXpiM0owS0Noc1pXWjBMQ0J5YVdkb2RDa2dQVDRnS0d4bFpuUXViR0ZpWld3Z1BpQnlhV2RvZEM1c1lXSmxiQ0EvSURFZ09pQXRNU2twWEc0Z0lDNW1hV3gwWlhJb1hHNGdJQ0FnS0d4aGJtY3BJRDArWEc0Z0lDQWdJQ0FvY0dWeVkyVnVkR0ZuWlhNZ1lYTWdVbVZqYjNKa1BITjBjbWx1Wnl3Z2JuVnRZbVZ5UGlsYmJHRnVaeTVqYjJSbFhTQStQVnh1SUNBZ0lDQWdRMDlOVUV4RlZFbFBUbDlVU0ZKRlUwaFBURVFzWEc0Z0lDazdYRzVjYm1OdmJuTjBJRlJGVTFSZlRFRk9SMTlEVDBSRklEMGdYQ0pmWDNSbGMzUmZYMXdpTzF4dWFXWWdLSEJ5YjJObGMzTXVaVzUyTGs1UFJFVmZSVTVXSUQwOVBTQkZUbFl1UkVWV1JVeFBVRTFGVGxRcElIdGNiaUFnYkdGdVozVmhaMlZ6TG5WdWMyaHBablFvWEc0Z0lDQWdleUJqYjJSbE9pQlVSVk5VWDB4QlRrZGZRMDlFUlN3Z2JHRmlaV3c2SUZ3aWRHVnpkQ0JzWVc1bmRXRm5aVndpSUgwc1hHNGdJQ0FnZTF4dUlDQWdJQ0FnWTI5a1pUb2dZQ1I3VkVWVFZGOU1RVTVIWDBOUFJFVjlMbkowYkdBc1hHNGdJQ0FnSUNCc1lXSmxiRG9nWENKY1hIVjdNakF5WVgxMFpYTjBJR3hoYm1kMVlXZGxJQ2h5ZEd3cFhGeDFlekl3TW1OOVhDSXNYRzRnSUNBZ0lDQnlkR3c2SUhSeWRXVXNYRzRnSUNBZ2ZTeGNiaUFnS1R0Y2JuMWNibHh1YkdWMElHTjFjbkpsYm5STVlXNW5PaUJNWVc1bmRXRm5aU0E5SUdSbFptRjFiSFJNWVc1bk8xeHViR1YwSUdOMWNuSmxiblJNWVc1blJHRjBZU0E5SUh0OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2MyVjBUR0Z1WjNWaFoyVWdQU0JoYzNsdVl5QW9iR0Z1WnpvZ1RHRnVaM1ZoWjJVcElEMCtJSHRjYmlBZ1kzVnljbVZ1ZEV4aGJtY2dQU0JzWVc1bk8xeHVJQ0JrYjJOMWJXVnVkQzVrYjJOMWJXVnVkRVZzWlcxbGJuUXVaR2x5SUQwZ1kzVnljbVZ1ZEV4aGJtY3VjblJzSUQ4Z1hDSnlkR3hjSWlBNklGd2liSFJ5WENJN1hHNGdJR1J2WTNWdFpXNTBMbVJ2WTNWdFpXNTBSV3hsYldWdWRDNXNZVzVuSUQwZ1kzVnljbVZ1ZEV4aGJtY3VZMjlrWlR0Y2JseHVJQ0JwWmlBb2JHRnVaeTVqYjJSbExuTjBZWEowYzFkcGRHZ29WRVZUVkY5TVFVNUhYME5QUkVVcEtTQjdYRzRnSUNBZ1kzVnljbVZ1ZEV4aGJtZEVZWFJoSUQwZ2UzMDdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdZM1Z5Y21WdWRFeGhibWRFWVhSaElEMGdZWGRoYVhRZ2FXMXdiM0owS0Z4dUlDQWdJQ0FnTHlvZ2QyVmljR0ZqYTBOb2RXNXJUbUZ0WlRvZ1hDSnBNVGh1TFZ0eVpYRjFaWE4wWFZ3aUlDb3ZJR0F1TDJ4dlkyRnNaWE12Skh0amRYSnlaVzUwVEdGdVp5NWpiMlJsZlM1cWMyOXVZRnh1SUNBZ0lDazdYRzRnSUgxY2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm5aWFJNWVc1bmRXRm5aU0E5SUNncElEMCtJR04xY25KbGJuUk1ZVzVuTzF4dVhHNWpiMjV6ZENCbWFXNWtVR0Z5ZEhOR2IzSkVZWFJoSUQwZ0tHUmhkR0U2SUdGdWVTd2djR0Z5ZEhNNklITjBjbWx1WjF0ZEtTQTlQaUI3WEc0Z0lHWnZjaUFvYkdWMElHbHVaR1Y0SUQwZ01Ec2dhVzVrWlhnZ1BDQndZWEowY3k1c1pXNW5kR2c3SUNzcmFXNWtaWGdwSUh0Y2JpQWdJQ0JqYjI1emRDQndZWEowSUQwZ2NHRnlkSE5iYVc1a1pYaGRPMXh1SUNBZ0lHbG1JQ2hrWVhSaFczQmhjblJkSUQwOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2ZWeHVJQ0FnSUdSaGRHRWdQU0JrWVhSaFczQmhjblJkTzF4dUlDQjlYRzRnSUdsbUlDaDBlWEJsYjJZZ1pHRjBZU0FoUFQwZ1hDSnpkSEpwYm1kY0lpa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUdSaGRHRTdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnZENBOUlDaGNiaUFnY0dGMGFEb2djM1J5YVc1bkxGeHVJQ0J5WlhCc1lXTmxiV1Z1ZEQ4NklIc2dXMnRsZVRvZ2MzUnlhVzVuWFRvZ2MzUnlhVzVuSUh3Z2JuVnRZbVZ5SUgwc1hHNHBJRDArSUh0Y2JpQWdhV1lnS0dOMWNuSmxiblJNWVc1bkxtTnZaR1V1YzNSaGNuUnpWMmwwYUNoVVJWTlVYMHhCVGtkZlEwOUVSU2twSUh0Y2JpQWdJQ0JqYjI1emRDQnVZVzFsSUQwZ2NtVndiR0ZqWlcxbGJuUmNiaUFnSUNBZ0lEOGdZQ1I3Y0dGMGFIMG9KSHRLVTA5T0xuTjBjbWx1WjJsbWVTaHlaWEJzWVdObGJXVnVkQ2t1YzJ4cFkyVW9NU3dnTFRFcGZTbGdYRzRnSUNBZ0lDQTZJSEJoZEdnN1hHNGdJQ0FnY21WMGRYSnVJR0JjWEhWN01qQXlZWDFiV3lSN2JtRnRaWDFkWFZ4Y2RYc3lNREpqZldBN1hHNGdJSDFjYmx4dUlDQmpiMjV6ZENCd1lYSjBjeUE5SUhCaGRHZ3VjM0JzYVhRb1hDSXVYQ0lwTzF4dUlDQnNaWFFnZEhKaGJuTnNZWFJwYjI0Z1BWeHVJQ0FnSUdacGJtUlFZWEowYzBadmNrUmhkR0VvWTNWeWNtVnVkRXhoYm1kRVlYUmhMQ0J3WVhKMGN5a2dmSHhjYmlBZ0lDQm1hVzVrVUdGeWRITkdiM0pFWVhSaEtHWmhiR3hpWVdOclRHRnVaMFJoZEdFc0lIQmhjblJ6S1R0Y2JpQWdhV1lnS0hSeVlXNXpiR0YwYVc5dUlEMDlQU0IxYm1SbFptbHVaV1FwSUh0Y2JpQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZRU5oYmlkMElHWnBibVFnZEhKaGJuTnNZWFJwYjI0Z1ptOXlJQ1I3Y0dGMGFIMWdLVHRjYmlBZ2ZWeHVYRzRnSUdsbUlDaHlaWEJzWVdObGJXVnVkQ2tnZTF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYTJWNUlHbHVJSEpsY0d4aFkyVnRaVzUwS1NCN1hHNGdJQ0FnSUNCMGNtRnVjMnhoZEdsdmJpQTlJSFJ5WVc1emJHRjBhVzl1TG5KbGNHeGhZMlVvWUh0N0pIdHJaWGw5ZlgxZ0xDQlRkSEpwYm1jb2NtVndiR0ZqWlcxbGJuUmJhMlY1WFNrcE8xeHVJQ0FnSUgxY2JpQWdmVnh1SUNCeVpYUjFjbTRnZEhKaGJuTnNZWFJwYjI0N1hHNTlPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9pMThuLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9rZXlzLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4va2V5cy50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpc0RhcndpblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlzRGFyd2luKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpc1dpbmRvd3NcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpc1dpbmRvd3MpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzQW5kcm9pZFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlzQW5kcm9pZCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiQ09ERVNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBDT0RFUyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiS0VZU1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEtFWVMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzQXJyb3dLZXlcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpc0Fycm93S2V5KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJzaG91bGRSZXNpemVGcm9tQ2VudGVyXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gc2hvdWxkUmVzaXplRnJvbUNlbnRlciksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwic2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpb1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHNob3VsZE1haW50YWluQXNwZWN0UmF0aW8pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInNob3VsZFJvdGF0ZVdpdGhEaXNjcmV0ZUFuZ2xlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gc2hvdWxkUm90YXRlV2l0aERpc2NyZXRlQW5nbGUpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuY29uc3QgaXNEYXJ3aW4gPSAvTWFjfGlQb2R8aVBob25lfGlQYWQvLnRlc3Qod2luZG93Lm5hdmlnYXRvci5wbGF0Zm9ybSk7XFxuY29uc3QgaXNXaW5kb3dzID0gL15XaW4vLnRlc3Qod2luZG93Lm5hdmlnYXRvci5wbGF0Zm9ybSk7XFxuY29uc3QgaXNBbmRyb2lkID0gL1xcXFxiKGFuZHJvaWQpXFxcXGIvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xcbmNvbnN0IENPREVTID0ge1xcbiAgICBFUVVBTDogXFxcIkVxdWFsXFxcIixcXG4gICAgTUlOVVM6IFxcXCJNaW51c1xcXCIsXFxuICAgIE5VTV9BREQ6IFxcXCJOdW1wYWRBZGRcXFwiLFxcbiAgICBOVU1fU1VCVFJBQ1Q6IFxcXCJOdW1wYWRTdWJ0cmFjdFxcXCIsXFxuICAgIE5VTV9aRVJPOiBcXFwiTnVtcGFkMFxcXCIsXFxuICAgIEJSQUNLRVRfUklHSFQ6IFxcXCJCcmFja2V0UmlnaHRcXFwiLFxcbiAgICBCUkFDS0VUX0xFRlQ6IFxcXCJCcmFja2V0TGVmdFxcXCIsXFxuICAgIE9ORTogXFxcIkRpZ2l0MVxcXCIsXFxuICAgIFRXTzogXFxcIkRpZ2l0MlxcXCIsXFxuICAgIE5JTkU6IFxcXCJEaWdpdDlcXFwiLFxcbiAgICBRVU9URTogXFxcIlF1b3RlXFxcIixcXG4gICAgWkVSTzogXFxcIkRpZ2l0MFxcXCIsXFxuICAgIFNMQVNIOiBcXFwiU2xhc2hcXFwiLFxcbiAgICBDOiBcXFwiS2V5Q1xcXCIsXFxuICAgIEQ6IFxcXCJLZXlEXFxcIixcXG4gICAgRzogXFxcIktleUdcXFwiLFxcbiAgICBGOiBcXFwiS2V5RlxcXCIsXFxuICAgIEg6IFxcXCJLZXlIXFxcIixcXG4gICAgVjogXFxcIktleVZcXFwiLFxcbiAgICBYOiBcXFwiS2V5WFxcXCIsXFxuICAgIFo6IFxcXCJLZXlaXFxcIixcXG4gICAgUjogXFxcIktleVJcXFwiLFxcbn07XFxuY29uc3QgS0VZUyA9IHtcXG4gICAgQVJST1dfRE9XTjogXFxcIkFycm93RG93blxcXCIsXFxuICAgIEFSUk9XX0xFRlQ6IFxcXCJBcnJvd0xlZnRcXFwiLFxcbiAgICBBUlJPV19SSUdIVDogXFxcIkFycm93UmlnaHRcXFwiLFxcbiAgICBBUlJPV19VUDogXFxcIkFycm93VXBcXFwiLFxcbiAgICBCQUNLU1BBQ0U6IFxcXCJCYWNrc3BhY2VcXFwiLFxcbiAgICBBTFQ6IFxcXCJBbHRcXFwiLFxcbiAgICBDVFJMX09SX0NNRDogaXNEYXJ3aW4gPyBcXFwibWV0YUtleVxcXCIgOiBcXFwiY3RybEtleVxcXCIsXFxuICAgIERFTEVURTogXFxcIkRlbGV0ZVxcXCIsXFxuICAgIEVOVEVSOiBcXFwiRW50ZXJcXFwiLFxcbiAgICBFU0NBUEU6IFxcXCJFc2NhcGVcXFwiLFxcbiAgICBRVUVTVElPTl9NQVJLOiBcXFwiP1xcXCIsXFxuICAgIFNQQUNFOiBcXFwiIFxcXCIsXFxuICAgIFRBQjogXFxcIlRhYlxcXCIsXFxuICAgIENIRVZST05fTEVGVDogXFxcIjxcXFwiLFxcbiAgICBDSEVWUk9OX1JJR0hUOiBcXFwiPlxcXCIsXFxuICAgIFBFUklPRDogXFxcIi5cXFwiLFxcbiAgICBDT01NQTogXFxcIixcXFwiLFxcbiAgICBBOiBcXFwiYVxcXCIsXFxuICAgIEQ6IFxcXCJkXFxcIixcXG4gICAgRTogXFxcImVcXFwiLFxcbiAgICBHOiBcXFwiZ1xcXCIsXFxuICAgIEk6IFxcXCJpXFxcIixcXG4gICAgTDogXFxcImxcXFwiLFxcbiAgICBPOiBcXFwib1xcXCIsXFxuICAgIFA6IFxcXCJwXFxcIixcXG4gICAgUTogXFxcInFcXFwiLFxcbiAgICBSOiBcXFwiclxcXCIsXFxuICAgIFM6IFxcXCJzXFxcIixcXG4gICAgVDogXFxcInRcXFwiLFxcbiAgICBWOiBcXFwidlxcXCIsXFxuICAgIFg6IFxcXCJ4XFxcIixcXG4gICAgWTogXFxcInlcXFwiLFxcbiAgICBaOiBcXFwielxcXCIsXFxuICAgIEs6IFxcXCJrXFxcIixcXG59O1xcbmNvbnN0IGlzQXJyb3dLZXkgPSAoa2V5KSA9PiBrZXkgPT09IEtFWVMuQVJST1dfTEVGVCB8fFxcbiAgICBrZXkgPT09IEtFWVMuQVJST1dfUklHSFQgfHxcXG4gICAga2V5ID09PSBLRVlTLkFSUk9XX0RPV04gfHxcXG4gICAga2V5ID09PSBLRVlTLkFSUk9XX1VQO1xcbmNvbnN0IHNob3VsZFJlc2l6ZUZyb21DZW50ZXIgPSAoZXZlbnQpID0+IGV2ZW50LmFsdEtleTtcXG5jb25zdCBzaG91bGRNYWludGFpbkFzcGVjdFJhdGlvID0gKGV2ZW50KSA9PiBldmVudC5zaGlmdEtleTtcXG5jb25zdCBzaG91bGRSb3RhdGVXaXRoRGlzY3JldGVBbmdsZSA9IChldmVudCkgPT4gZXZlbnQuc2hpZnRLZXk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZhMlY1Y3k1MGN5NXFjeUlzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN096czdRVUZCVHl4TlFVRk5MRkZCUVZFc1IwRkJSeXh6UWtGQmMwSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVTjRSU3hOUVVGTkxGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdRVUZEZWtRc1RVRkJUU3hUUVVGVExFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0QlFVVTNSQ3hOUVVGTkxFdEJRVXNzUjBGQlJ6dEpRVU51UWl4TFFVRkxMRVZCUVVVc1QwRkJUenRKUVVOa0xFdEJRVXNzUlVGQlJTeFBRVUZQTzBsQlEyUXNUMEZCVHl4RlFVRkZMRmRCUVZjN1NVRkRjRUlzV1VGQldTeEZRVUZGTEdkQ1FVRm5RanRKUVVNNVFpeFJRVUZSTEVWQlFVVXNVMEZCVXp0SlFVTnVRaXhoUVVGaExFVkJRVVVzWTBGQll6dEpRVU0zUWl4WlFVRlpMRVZCUVVVc1lVRkJZVHRKUVVNelFpeEhRVUZITEVWQlFVVXNVVUZCVVR0SlFVTmlMRWRCUVVjc1JVRkJSU3hSUVVGUk8wbEJRMklzU1VGQlNTeEZRVUZGTEZGQlFWRTdTVUZEWkN4TFFVRkxMRVZCUVVVc1QwRkJUenRKUVVOa0xFbEJRVWtzUlVGQlJTeFJRVUZSTzBsQlEyUXNTMEZCU3l4RlFVRkZMRTlCUVU4N1NVRkRaQ3hEUVVGRExFVkJRVVVzVFVGQlRUdEpRVU5VTEVOQlFVTXNSVUZCUlN4TlFVRk5PMGxCUTFRc1EwRkJReXhGUVVGRkxFMUJRVTA3U1VGRFZDeERRVUZETEVWQlFVVXNUVUZCVFR0SlFVTlVMRU5CUVVNc1JVRkJSU3hOUVVGTk8wbEJRMVFzUTBGQlF5eEZRVUZGTEUxQlFVMDdTVUZEVkN4RFFVRkRMRVZCUVVVc1RVRkJUVHRKUVVOVUxFTkJRVU1zUlVGQlJTeE5RVUZOTzBsQlExUXNRMEZCUXl4RlFVRkZMRTFCUVUwN1EwRkRSQ3hEUVVGRE8wRkJSVW9zVFVGQlRTeEpRVUZKTEVkQlFVYzdTVUZEYkVJc1ZVRkJWU3hGUVVGRkxGZEJRVmM3U1VGRGRrSXNWVUZCVlN4RlFVRkZMRmRCUVZjN1NVRkRka0lzVjBGQlZ5eEZRVUZGTEZsQlFWazdTVUZEZWtJc1VVRkJVU3hGUVVGRkxGTkJRVk03U1VGRGJrSXNVMEZCVXl4RlFVRkZMRmRCUVZjN1NVRkRkRUlzUjBGQlJ5eEZRVUZGTEV0QlFVczdTVUZEVml4WFFVRlhMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNN1NVRkROME1zVFVGQlRTeEZRVUZGTEZGQlFWRTdTVUZEYUVJc1MwRkJTeXhGUVVGRkxFOUJRVTg3U1VGRFpDeE5RVUZOTEVWQlFVVXNVVUZCVVR0SlFVTm9RaXhoUVVGaExFVkJRVVVzUjBGQlJ6dEpRVU5zUWl4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFZEJRVWNzUlVGQlJTeExRVUZMTzBsQlExWXNXVUZCV1N4RlFVRkZMRWRCUVVjN1NVRkRha0lzWVVGQllTeEZRVUZGTEVkQlFVYzdTVUZEYkVJc1RVRkJUU3hGUVVGRkxFZEJRVWM3U1VGRFdDeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVVldMRU5CUVVNc1JVRkJSU3hIUVVGSE8wbEJRMDRzUTBGQlF5eEZRVUZGTEVkQlFVYzdTVUZEVGl4RFFVRkRMRVZCUVVVc1IwRkJSenRKUVVOT0xFTkJRVU1zUlVGQlJTeEhRVUZITzBsQlEwNHNRMEZCUXl4RlFVRkZMRWRCUVVjN1NVRkRUaXhEUVVGRExFVkJRVVVzUjBGQlJ6dEpRVU5PTEVOQlFVTXNSVUZCUlN4SFFVRkhPMGxCUTA0c1EwRkJReXhGUVVGRkxFZEJRVWM3U1VGRFRpeERRVUZETEVWQlFVVXNSMEZCUnp0SlFVTk9MRU5CUVVNc1JVRkJSU3hIUVVGSE8wbEJRMDRzUTBGQlF5eEZRVUZGTEVkQlFVYzdTVUZEVGl4RFFVRkRMRVZCUVVVc1IwRkJSenRKUVVOT0xFTkJRVU1zUlVGQlJTeEhRVUZITzBsQlEwNHNRMEZCUXl4RlFVRkZMRWRCUVVjN1NVRkRUaXhEUVVGRExFVkJRVVVzUjBGQlJ6dEpRVU5PTEVOQlFVTXNSVUZCUlN4SFFVRkhPMGxCUTA0c1EwRkJReXhGUVVGRkxFZEJRVWM3UTBGRFJTeERRVUZETzBGQlNVb3NUVUZCVFN4VlFVRlZMRWRCUVVjc1EwRkJReXhIUVVGWExFVkJRVVVzUlVGQlJTeERRVU40UXl4SFFVRkhMRXRCUVVzc1NVRkJTU3hEUVVGRExGVkJRVlU3U1VGRGRrSXNSMEZCUnl4TFFVRkxMRWxCUVVrc1EwRkJReXhYUVVGWE8wbEJRM2hDTEVkQlFVY3NTMEZCU3l4SlFVRkpMRU5CUVVNc1ZVRkJWVHRKUVVOMlFpeEhRVUZITEV0QlFVc3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJRenRCUVVWcVFpeE5RVUZOTEhOQ1FVRnpRaXhIUVVGSExFTkJRVU1zUzBGQmFVTXNSVUZCUlN4RlFVRkZMRU5CUXpGRkxFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZGVWl4TlFVRk5MSGxDUVVGNVFpeEhRVUZITEVOQlFVTXNTMEZCYVVNc1JVRkJSU3hGUVVGRkxFTkJRemRGTEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNN1FVRkZWaXhOUVVGTkxEWkNRVUUyUWl4SFFVRkhMRU5CUXpORExFdEJRV2xETEVWQlEycERMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwydGxlWE11ZEhNL01XRTRNU0pkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKbGVIQnZjblFnWTI5dWMzUWdhWE5FWVhKM2FXNGdQU0F2VFdGamZHbFFiMlI4YVZCb2IyNWxmR2xRWVdRdkxuUmxjM1FvZDJsdVpHOTNMbTVoZG1sbllYUnZjaTV3YkdGMFptOXliU2s3WEc1bGVIQnZjblFnWTI5dWMzUWdhWE5YYVc1a2IzZHpJRDBnTDE1WGFXNHZMblJsYzNRb2QybHVaRzkzTG01aGRtbG5ZWFJ2Y2k1d2JHRjBabTl5YlNrN1hHNWxlSEJ2Y25RZ1kyOXVjM1FnYVhOQmJtUnliMmxrSUQwZ0wxeGNZaWhoYm1SeWIybGtLVnhjWWk5cExuUmxjM1FvYm1GMmFXZGhkRzl5TG5WelpYSkJaMlZ1ZENrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCRFQwUkZVeUE5SUh0Y2JpQWdSVkZWUVV3NklGd2lSWEYxWVd4Y0lpeGNiaUFnVFVsT1ZWTTZJRndpVFdsdWRYTmNJaXhjYmlBZ1RsVk5YMEZFUkRvZ1hDSk9kVzF3WVdSQlpHUmNJaXhjYmlBZ1RsVk5YMU5WUWxSU1FVTlVPaUJjSWs1MWJYQmhaRk4xWW5SeVlXTjBYQ0lzWEc0Z0lFNVZUVjlhUlZKUE9pQmNJazUxYlhCaFpEQmNJaXhjYmlBZ1FsSkJRMHRGVkY5U1NVZElWRG9nWENKQ2NtRmphMlYwVW1sbmFIUmNJaXhjYmlBZ1FsSkJRMHRGVkY5TVJVWlVPaUJjSWtKeVlXTnJaWFJNWldaMFhDSXNYRzRnSUU5T1JUb2dYQ0pFYVdkcGRERmNJaXhjYmlBZ1ZGZFBPaUJjSWtScFoybDBNbHdpTEZ4dUlDQk9TVTVGT2lCY0lrUnBaMmwwT1Z3aUxGeHVJQ0JSVlU5VVJUb2dYQ0pSZFc5MFpWd2lMRnh1SUNCYVJWSlBPaUJjSWtScFoybDBNRndpTEZ4dUlDQlRURUZUU0RvZ1hDSlRiR0Z6YUZ3aUxGeHVJQ0JET2lCY0lrdGxlVU5jSWl4Y2JpQWdSRG9nWENKTFpYbEVYQ0lzWEc0Z0lFYzZJRndpUzJWNVIxd2lMRnh1SUNCR09pQmNJa3RsZVVaY0lpeGNiaUFnU0RvZ1hDSkxaWGxJWENJc1hHNGdJRlk2SUZ3aVMyVjVWbHdpTEZ4dUlDQllPaUJjSWt0bGVWaGNJaXhjYmlBZ1dqb2dYQ0pMWlhsYVhDSXNYRzRnSUZJNklGd2lTMlY1VWx3aUxGeHVmU0JoY3lCamIyNXpkRHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRXRGV1ZNZ1BTQjdYRzRnSUVGU1VrOVhYMFJQVjA0NklGd2lRWEp5YjNkRWIzZHVYQ0lzWEc0Z0lFRlNVazlYWDB4RlJsUTZJRndpUVhKeWIzZE1aV1owWENJc1hHNGdJRUZTVWs5WFgxSkpSMGhVT2lCY0lrRnljbTkzVW1sbmFIUmNJaXhjYmlBZ1FWSlNUMWRmVlZBNklGd2lRWEp5YjNkVmNGd2lMRnh1SUNCQ1FVTkxVMUJCUTBVNklGd2lRbUZqYTNOd1lXTmxYQ0lzWEc0Z0lFRk1WRG9nWENKQmJIUmNJaXhjYmlBZ1ExUlNURjlQVWw5RFRVUTZJR2x6UkdGeWQybHVJRDhnWENKdFpYUmhTMlY1WENJZ09pQmNJbU4wY214TFpYbGNJaXhjYmlBZ1JFVk1SVlJGT2lCY0lrUmxiR1YwWlZ3aUxGeHVJQ0JGVGxSRlVqb2dYQ0pGYm5SbGNsd2lMRnh1SUNCRlUwTkJVRVU2SUZ3aVJYTmpZWEJsWENJc1hHNGdJRkZWUlZOVVNVOU9YMDFCVWtzNklGd2lQMXdpTEZ4dUlDQlRVRUZEUlRvZ1hDSWdYQ0lzWEc0Z0lGUkJRam9nWENKVVlXSmNJaXhjYmlBZ1EwaEZWbEpQVGw5TVJVWlVPaUJjSWp4Y0lpeGNiaUFnUTBoRlZsSlBUbDlTU1VkSVZEb2dYQ0krWENJc1hHNGdJRkJGVWtsUFJEb2dYQ0l1WENJc1hHNGdJRU5QVFUxQk9pQmNJaXhjSWl4Y2JseHVJQ0JCT2lCY0ltRmNJaXhjYmlBZ1JEb2dYQ0prWENJc1hHNGdJRVU2SUZ3aVpWd2lMRnh1SUNCSE9pQmNJbWRjSWl4Y2JpQWdTVG9nWENKcFhDSXNYRzRnSUV3NklGd2liRndpTEZ4dUlDQlBPaUJjSW05Y0lpeGNiaUFnVURvZ1hDSndYQ0lzWEc0Z0lGRTZJRndpY1Z3aUxGeHVJQ0JTT2lCY0luSmNJaXhjYmlBZ1V6b2dYQ0p6WENJc1hHNGdJRlE2SUZ3aWRGd2lMRnh1SUNCV09pQmNJblpjSWl4Y2JpQWdXRG9nWENKNFhDSXNYRzRnSUZrNklGd2llVndpTEZ4dUlDQmFPaUJjSW5wY0lpeGNiaUFnU3pvZ1hDSnJYQ0lzWEc1OUlHRnpJR052Ym5OME8xeHVYRzVsZUhCdmNuUWdkSGx3WlNCTFpYa2dQU0JyWlhsdlppQjBlWEJsYjJZZ1MwVlpVenRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2x6UVhKeWIzZExaWGtnUFNBb2EyVjVPaUJ6ZEhKcGJtY3BJRDArWEc0Z0lHdGxlU0E5UFQwZ1MwVlpVeTVCVWxKUFYxOU1SVVpVSUh4OFhHNGdJR3RsZVNBOVBUMGdTMFZaVXk1QlVsSlBWMTlTU1VkSVZDQjhmRnh1SUNCclpYa2dQVDA5SUV0RldWTXVRVkpTVDFkZlJFOVhUaUI4ZkZ4dUlDQnJaWGtnUFQwOUlFdEZXVk11UVZKU1QxZGZWVkE3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J6YUc5MWJHUlNaWE5wZW1WR2NtOXRRMlZ1ZEdWeUlEMGdLR1YyWlc1ME9pQk5iM1Z6WlVWMlpXNTBJSHdnUzJWNVltOWhjbVJGZG1WdWRDa2dQVDVjYmlBZ1pYWmxiblF1WVd4MFMyVjVPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdjMmh2ZFd4a1RXRnBiblJoYVc1QmMzQmxZM1JTWVhScGJ5QTlJQ2hsZG1WdWREb2dUVzkxYzJWRmRtVnVkQ0I4SUV0bGVXSnZZWEprUlhabGJuUXBJRDArWEc0Z0lHVjJaVzUwTG5Ob2FXWjBTMlY1TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYzJodmRXeGtVbTkwWVhSbFYybDBhRVJwYzJOeVpYUmxRVzVuYkdVZ1BTQW9YRzRnSUdWMlpXNTBPaUJOYjNWelpVVjJaVzUwSUh3Z1MyVjVZbTloY21SRmRtVnVkQ3hjYmlrZ1BUNGdaWFpsYm5RdWMyaHBablJMWlhrN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL2tleXMudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL21hdGgudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9tYXRoLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJvdGF0ZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJvdGF0ZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicm90YXRlUG9pbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyByb3RhdGVQb2ludCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYWRqdXN0WFlXaXRoUm90YXRpb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhZGp1c3RYWVdpdGhSb3RhdGlvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0UG9pbnRPbkFQYXRoXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0UG9pbnRPbkFQYXRoKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkaXN0YW5jZTJkXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZGlzdGFuY2UyZCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiY2VudGVyUG9pbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBjZW50ZXJQb2ludCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNQYXRoQUxvb3BcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpc1BhdGhBTG9vcCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNQb2ludEluUG9seWdvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlzUG9pbnRJblBvbHlnb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEdyaWRQb2ludFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldEdyaWRQb2ludClcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcblxcbmNvbnN0IHJvdGF0ZSA9ICh4MSwgeTEsIHgyLCB5MiwgYW5nbGUpID0+IFxcbi8vIFx1RDgzNVx1REM0RVx1MjAzMlx1RDgzNVx1REM2NT0oXHVEODM1XHVEQzRFXHVEODM1XHVEQzY1XHUyMjEyXHVEODM1XHVEQzUwXHVEODM1XHVEQzY1KWNvc1x1RDgzNVx1REYwM1x1MjIxMihcdUQ4MzVcdURDNEVcdUQ4MzVcdURDNjZcdTIyMTJcdUQ4MzVcdURDNTBcdUQ4MzVcdURDNjYpc2luXHVEODM1XHVERjAzK1x1RDgzNVx1REM1MFx1RDgzNVx1REM2NVxcbi8vIFx1RDgzNVx1REM0RVx1MjAzMlx1RDgzNVx1REM2Nj0oXHVEODM1XHVEQzRFXHVEODM1XHVEQzY1XHUyMjEyXHVEODM1XHVEQzUwXHVEODM1XHVEQzY1KXNpblx1RDgzNVx1REYwMysoXHVEODM1XHVEQzRFXHVEODM1XHVEQzY2XHUyMjEyXHVEODM1XHVEQzUwXHVEODM1XHVEQzY2KWNvc1x1RDgzNVx1REYwMytcdUQ4MzVcdURDNTBcdUQ4MzVcdURDNjYuXFxuLy8gaHR0cHM6Ly9tYXRoLnN0YWNrZXhjaGFuZ2UuY29tL3F1ZXN0aW9ucy8yMjA0NTIwL2hvdy1kby1pLXJvdGF0ZS1hLWxpbmUtc2VnbWVudC1pbi1hLXNwZWNpZmljLXBvaW50LW9uLXRoZS1saW5lXFxuW1xcbiAgICAoeDEgLSB4MikgKiBNYXRoLmNvcyhhbmdsZSkgLSAoeTEgLSB5MikgKiBNYXRoLnNpbihhbmdsZSkgKyB4MixcXG4gICAgKHgxIC0geDIpICogTWF0aC5zaW4oYW5nbGUpICsgKHkxIC0geTIpICogTWF0aC5jb3MoYW5nbGUpICsgeTIsXFxuXTtcXG5jb25zdCByb3RhdGVQb2ludCA9IChwb2ludCwgY2VudGVyLCBhbmdsZSkgPT4gcm90YXRlKHBvaW50WzBdLCBwb2ludFsxXSwgY2VudGVyWzBdLCBjZW50ZXJbMV0sIGFuZ2xlKTtcXG5jb25zdCBhZGp1c3RYWVdpdGhSb3RhdGlvbiA9IChzaWRlcywgeCwgeSwgYW5nbGUsIGRlbHRhWDEsIGRlbHRhWTEsIGRlbHRhWDIsIGRlbHRhWTIpID0+IHtcXG4gICAgY29uc3QgY29zID0gTWF0aC5jb3MoYW5nbGUpO1xcbiAgICBjb25zdCBzaW4gPSBNYXRoLnNpbihhbmdsZSk7XFxuICAgIGlmIChzaWRlcy5lICYmIHNpZGVzLncpIHtcXG4gICAgICAgIHggKz0gZGVsdGFYMSArIGRlbHRhWDI7XFxuICAgIH1cXG4gICAgZWxzZSBpZiAoc2lkZXMuZSkge1xcbiAgICAgICAgeCArPSBkZWx0YVgxICogKDEgKyBjb3MpO1xcbiAgICAgICAgeSArPSBkZWx0YVgxICogc2luO1xcbiAgICAgICAgeCArPSBkZWx0YVgyICogKDEgLSBjb3MpO1xcbiAgICAgICAgeSArPSBkZWx0YVgyICogLXNpbjtcXG4gICAgfVxcbiAgICBlbHNlIGlmIChzaWRlcy53KSB7XFxuICAgICAgICB4ICs9IGRlbHRhWDEgKiAoMSAtIGNvcyk7XFxuICAgICAgICB5ICs9IGRlbHRhWDEgKiAtc2luO1xcbiAgICAgICAgeCArPSBkZWx0YVgyICogKDEgKyBjb3MpO1xcbiAgICAgICAgeSArPSBkZWx0YVgyICogc2luO1xcbiAgICB9XFxuICAgIGlmIChzaWRlcy5uICYmIHNpZGVzLnMpIHtcXG4gICAgICAgIHkgKz0gZGVsdGFZMSArIGRlbHRhWTI7XFxuICAgIH1cXG4gICAgZWxzZSBpZiAoc2lkZXMubikge1xcbiAgICAgICAgeCArPSBkZWx0YVkxICogc2luO1xcbiAgICAgICAgeSArPSBkZWx0YVkxICogKDEgLSBjb3MpO1xcbiAgICAgICAgeCArPSBkZWx0YVkyICogLXNpbjtcXG4gICAgICAgIHkgKz0gZGVsdGFZMiAqICgxICsgY29zKTtcXG4gICAgfVxcbiAgICBlbHNlIGlmIChzaWRlcy5zKSB7XFxuICAgICAgICB4ICs9IGRlbHRhWTEgKiAtc2luO1xcbiAgICAgICAgeSArPSBkZWx0YVkxICogKDEgKyBjb3MpO1xcbiAgICAgICAgeCArPSBkZWx0YVkyICogc2luO1xcbiAgICAgICAgeSArPSBkZWx0YVkyICogKDEgLSBjb3MpO1xcbiAgICB9XFxuICAgIHJldHVybiBbeCwgeV07XFxufTtcXG5jb25zdCBnZXRQb2ludE9uQVBhdGggPSAocG9pbnQsIHBhdGgpID0+IHtcXG4gICAgY29uc3QgW3B4LCBweV0gPSBwb2ludDtcXG4gICAgY29uc3QgW3N0YXJ0LCAuLi5vdGhlcl0gPSBwYXRoO1xcbiAgICBsZXQgW2xhc3RYLCBsYXN0WV0gPSBzdGFydDtcXG4gICAgbGV0IGtMaW5lID0gMDtcXG4gICAgbGV0IGlkeCA9IDA7XFxuICAgIC8vIGlmIGFueSBpdGVtIGluIHRoZSBhcnJheSBpcyB0cnVlLCBpdCBtZWFucyB0aGF0IGEgcG9pbnQgaXNcXG4gICAgLy8gb24gc29tZSBzZWdtZW50IG9mIGEgbGluZSBiYXNlZCBwYXRoXFxuICAgIGNvbnN0IHJldFZhbCA9IG90aGVyLnNvbWUoKFt4MiwgeTJdLCBpKSA9PiB7XFxuICAgICAgICAvLyB3ZSBhbHdheXMgdGFrZSBhIGxpbmUgd2hlbiBkZWFsaW5nIHdpdGggbGluZSBzZWdtZW50c1xcbiAgICAgICAgY29uc3QgeDEgPSBsYXN0WDtcXG4gICAgICAgIGNvbnN0IHkxID0gbGFzdFk7XFxuICAgICAgICBsYXN0WCA9IHgyO1xcbiAgICAgICAgbGFzdFkgPSB5MjtcXG4gICAgICAgIC8vIGlmIGEgcG9pbnQgaXMgbm90IHdpdGhpbiB0aGUgZG9tYWluIG9mIHRoZSBsaW5lIHNlZ21lbnRcXG4gICAgICAgIC8vIGl0IGlzIG5vdCBvbiB0aGUgbGluZSBzZWdtZW50XFxuICAgICAgICBpZiAocHggPCB4MSB8fCBweCA+IHgyKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgICAgfVxcbiAgICAgICAgLy8gY2hlY2sgaWYgYWxsIHBvaW50cyBsaWUgb24gdGhlIHNhbWUgbGluZVxcbiAgICAgICAgLy8geTEgPSBreDEgKyBiLCB5MiA9IGt4MiArIGJcXG4gICAgICAgIC8vIHkyIC0geTEgPSBrKHgyIC0geDIpIC0+IGsgPSAoeTIgLSB5MSkgLyAoeDIgLSB4MSlcXG4gICAgICAgIC8vIGNvZWZmaWNpZW50IGZvciB0aGUgbGluZSAocDAsIHAxKVxcbiAgICAgICAgY29uc3Qga0wgPSAoeTIgLSB5MSkgLyAoeDIgLSB4MSk7XFxuICAgICAgICAvLyBjb2VmZmljaWVudCBmb3IgdGhlIGxpbmUgc2VnbWVudCAocDAsIHBvaW50KVxcbiAgICAgICAgY29uc3Qga1AxID0gKHB5IC0geTEpIC8gKHB4IC0geDEpO1xcbiAgICAgICAgLy8gY29lZmZpY2llbnQgZm9yIHRoZSBsaW5lIHNlZ21lbnQgKHBvaW50LCBwMSlcXG4gICAgICAgIGNvbnN0IGtQMiA9IChweSAtIHkyKSAvIChweCAtIHgyKTtcXG4gICAgICAgIC8vIGJlY2F1c2Ugd2UgYXJlIGJhc2luZyBib3RoIGxpbmVzIGZyb20gdGhlIHNhbWUgc3RhcnRpbmcgcG9pbnRcXG4gICAgICAgIC8vIHRoZSBvbmx5IG9wdGlvbiBmb3IgY29sbGluZWFyaXR5IGlzIGhhdmluZyBzYW1lIGNvZWZmaWNpZW50c1xcbiAgICAgICAgLy8gdXNpbmcgaXQgZm9yIGZsb2F0aW5nIHBvaW50IGNvbXBhcmlzb25zXFxuICAgICAgICBjb25zdCBlcHNpbG9uID0gMC4zO1xcbiAgICAgICAgLy8gaWYgY29lZmZpY2llbnQgaXMgbW9yZSB0aGFuIGFuIGFyYml0cmFyeSBlcHNpbG9uLFxcbiAgICAgICAgLy8gdGhlc2UgbGluZXMgYXJlIG5vciBjb2xsaW5lYXJcXG4gICAgICAgIGlmIChNYXRoLmFicyhrUDEgLSBrTCkgPiBlcHNpbG9uICYmIE1hdGguYWJzKGtQMiAtIGtMKSA+IGVwc2lsb24pIHtcXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgICAgICB9XFxuICAgICAgICAvLyBzdG9yZSB0aGUgY29lZmZpY2llbnQgYmVjYXVzZSB3ZSBhcmUgZ29pbnQgdG8gbmVlZCBpdFxcbiAgICAgICAga0xpbmUgPSBrTDtcXG4gICAgICAgIGlkeCA9IGk7XFxuICAgICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgfSk7XFxuICAgIC8vIFJldHVybiBhIGNvb3JkaW5hdGUgdGhhdCBpcyBhbHdheXMgb24gdGhlIGxpbmUgc2VnbWVudFxcbiAgICBpZiAocmV0VmFsID09PSB0cnVlKSB7XFxuICAgICAgICByZXR1cm4geyB4OiBwb2ludFswXSwgeToga0xpbmUgKiBwb2ludFswXSwgc2VnbWVudDogaWR4IH07XFxuICAgIH1cXG4gICAgcmV0dXJuIG51bGw7XFxufTtcXG5jb25zdCBkaXN0YW5jZTJkID0gKHgxLCB5MSwgeDIsIHkyKSA9PiB7XFxuICAgIGNvbnN0IHhkID0geDIgLSB4MTtcXG4gICAgY29uc3QgeWQgPSB5MiAtIHkxO1xcbiAgICByZXR1cm4gTWF0aC5oeXBvdCh4ZCwgeWQpO1xcbn07XFxuY29uc3QgY2VudGVyUG9pbnQgPSAoYSwgYikgPT4ge1xcbiAgICByZXR1cm4gWyhhWzBdICsgYlswXSkgLyAyLCAoYVsxXSArIGJbMV0pIC8gMl07XFxufTtcXG4vLyBDaGVja3MgaWYgdGhlIGZpcnN0IGFuZCBsYXN0IHBvaW50IGFyZSBjbG9zZSBlbm91Z2hcXG4vLyB0byBiZSBjb25zaWRlcmVkIGEgbG9vcFxcbmNvbnN0IGlzUGF0aEFMb29wID0gKHBvaW50cywgXFxuLyoqIHN1cHBseSBpZiB5b3Ugd2FudCB0aGUgbG9vcCBkZXRlY3Rpb24gdG8gYWNjb3VudCBmb3IgY3VycmVudCB6b29tICovXFxuem9vbVZhbHVlID0gMSkgPT4ge1xcbiAgICBpZiAocG9pbnRzLmxlbmd0aCA+PSAzKSB7XFxuICAgICAgICBjb25zdCBbZmlyc3QsIGxhc3RdID0gW3BvaW50c1swXSwgcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXV07XFxuICAgICAgICBjb25zdCBkaXN0YW5jZSA9IGRpc3RhbmNlMmQoZmlyc3RbMF0sIGZpcnN0WzFdLCBsYXN0WzBdLCBsYXN0WzFdKTtcXG4gICAgICAgIC8vIEFkanVzdGluZyBMSU5FX0NPTkZJUk1fVEhSRVNIT0xEIHRvIGN1cnJlbnQgem9vbSBzbyB0aGF0IHdoZW4gem9vbWVkIGluXFxuICAgICAgICAvLyByZWFsbHkgY2xvc2Ugd2UgbWFrZSB0aGUgdGhyZXNob2xkIHNtYWxsZXIsIGFuZCB2aWNlIHZlcnNhLlxcbiAgICAgICAgcmV0dXJuIGRpc3RhbmNlIDw9IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5MSU5FX0NPTkZJUk1fVEhSRVNIT0xEIC8gem9vbVZhbHVlO1xcbiAgICB9XFxuICAgIHJldHVybiBmYWxzZTtcXG59O1xcbi8vIERyYXcgYSBsaW5lIGZyb20gdGhlIHBvaW50IHRvIHRoZSByaWdodCB0aWxsIGluZmlpbnR5XFxuLy8gQ2hlY2sgaG93IG1hbnkgbGluZXMgb2YgdGhlIHBvbHlnb24gZG9lcyB0aGlzIGluZmluaXRlIGxpbmUgaW50ZXJzZWN0cyB3aXRoXFxuLy8gSWYgdGhlIG51bWJlciBvZiBpbnRlcnNlY3Rpb25zIGlzIG9kZCwgcG9pbnQgaXMgaW4gdGhlIHBvbHlnb25cXG5jb25zdCBpc1BvaW50SW5Qb2x5Z29uID0gKHBvaW50cywgeCwgeSkgPT4ge1xcbiAgICBjb25zdCB2ZXJ0aWNlcyA9IHBvaW50cy5sZW5ndGg7XFxuICAgIC8vIFRoZXJlIG11c3QgYmUgYXQgbGVhc3QgMyB2ZXJ0aWNlcyBpbiBwb2x5Z29uXFxuICAgIGlmICh2ZXJ0aWNlcyA8IDMpIHtcXG4gICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgfVxcbiAgICBjb25zdCBleHRyZW1lID0gW051bWJlci5NQVhfU0FGRV9JTlRFR0VSLCB5XTtcXG4gICAgY29uc3QgcCA9IFt4LCB5XTtcXG4gICAgbGV0IGNvdW50ID0gMDtcXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2ZXJ0aWNlczsgaSsrKSB7XFxuICAgICAgICBjb25zdCBjdXJyZW50ID0gcG9pbnRzW2ldO1xcbiAgICAgICAgY29uc3QgbmV4dCA9IHBvaW50c1soaSArIDEpICUgdmVydGljZXNdO1xcbiAgICAgICAgaWYgKGRvU2VnbWVudHNJbnRlcnNlY3QoY3VycmVudCwgbmV4dCwgcCwgZXh0cmVtZSkpIHtcXG4gICAgICAgICAgICBpZiAob3JkZXJlZENvbGluZWFyT3JpZW50YXRpb24oY3VycmVudCwgcCwgbmV4dCkgPT09IDApIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzUG9pbnRXaXRoaW5Cb3VuZHMoY3VycmVudCwgcCwgbmV4dCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvdW50Kys7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgLy8gdHJ1ZSBpZiBjb3VudCBpcyBvZmZcXG4gICAgcmV0dXJuIGNvdW50ICUgMiA9PT0gMTtcXG59O1xcbi8vIFJldHVybnMgd2hldGhlciBgcWAgbGllcyBpbnNpZGUgdGhlIHNlZ21lbnQvcmVjdGFuZ2xlIGRlZmluZWQgYnkgYHBgIGFuZCBgcmAuXFxuLy8gVGhpcyBpcyBhbiBhcHByb3hpbWF0aW9uIHRvIFxcXCJkb2VzIGBxYCBsaWUgb24gYSBzZWdtZW50IGBwcmBcXFwiIGNoZWNrLlxcbmNvbnN0IGlzUG9pbnRXaXRoaW5Cb3VuZHMgPSAocCwgcSwgcikgPT4ge1xcbiAgICByZXR1cm4gKHFbMF0gPD0gTWF0aC5tYXgocFswXSwgclswXSkgJiZcXG4gICAgICAgIHFbMF0gPj0gTWF0aC5taW4ocFswXSwgclswXSkgJiZcXG4gICAgICAgIHFbMV0gPD0gTWF0aC5tYXgocFsxXSwgclsxXSkgJiZcXG4gICAgICAgIHFbMV0gPj0gTWF0aC5taW4ocFsxXSwgclsxXSkpO1xcbn07XFxuLy8gRm9yIHRoZSBvcmRlcmVkIHBvaW50cyBwLCBxLCByLCByZXR1cm5cXG4vLyAwIGlmIHAsIHEsIHIgYXJlIGNvbGluZWFyXFxuLy8gMSBpZiBDbG9ja3dpc2VcXG4vLyAyIGlmIGNvdW50ZXJjbGlja3dpc2VcXG5jb25zdCBvcmRlcmVkQ29saW5lYXJPcmllbnRhdGlvbiA9IChwLCBxLCByKSA9PiB7XFxuICAgIGNvbnN0IHZhbCA9IChxWzFdIC0gcFsxXSkgKiAoclswXSAtIHFbMF0pIC0gKHFbMF0gLSBwWzBdKSAqIChyWzFdIC0gcVsxXSk7XFxuICAgIGlmICh2YWwgPT09IDApIHtcXG4gICAgICAgIHJldHVybiAwO1xcbiAgICB9XFxuICAgIHJldHVybiB2YWwgPiAwID8gMSA6IDI7XFxufTtcXG4vLyBDaGVjayBpcyBwMXExIGludGVyc2VjdHMgd2l0aCBwMnEyXFxuY29uc3QgZG9TZWdtZW50c0ludGVyc2VjdCA9IChwMSwgcTEsIHAyLCBxMikgPT4ge1xcbiAgICBjb25zdCBvMSA9IG9yZGVyZWRDb2xpbmVhck9yaWVudGF0aW9uKHAxLCBxMSwgcDIpO1xcbiAgICBjb25zdCBvMiA9IG9yZGVyZWRDb2xpbmVhck9yaWVudGF0aW9uKHAxLCBxMSwgcTIpO1xcbiAgICBjb25zdCBvMyA9IG9yZGVyZWRDb2xpbmVhck9yaWVudGF0aW9uKHAyLCBxMiwgcDEpO1xcbiAgICBjb25zdCBvNCA9IG9yZGVyZWRDb2xpbmVhck9yaWVudGF0aW9uKHAyLCBxMiwgcTEpO1xcbiAgICBpZiAobzEgIT09IG8yICYmIG8zICE9PSBvNCkge1xcbiAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgIH1cXG4gICAgLy8gcDEsIHExIGFuZCBwMiBhcmUgY29saW5lYXIgYW5kIHAyIGxpZXMgb24gc2VnbWVudCBwMXExXFxuICAgIGlmIChvMSA9PT0gMCAmJiBpc1BvaW50V2l0aGluQm91bmRzKHAxLCBwMiwgcTEpKSB7XFxuICAgICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgfVxcbiAgICAvLyBwMSwgcTEgYW5kIHAyIGFyZSBjb2xpbmVhciBhbmQgcTIgbGllcyBvbiBzZWdtZW50IHAxcTFcXG4gICAgaWYgKG8yID09PSAwICYmIGlzUG9pbnRXaXRoaW5Cb3VuZHMocDEsIHEyLCBxMSkpIHtcXG4gICAgICAgIHJldHVybiB0cnVlO1xcbiAgICB9XFxuICAgIC8vIHAyLCBxMiBhbmQgcDEgYXJlIGNvbGluZWFyIGFuZCBwMSBsaWVzIG9uIHNlZ21lbnQgcDJxMlxcbiAgICBpZiAobzMgPT09IDAgJiYgaXNQb2ludFdpdGhpbkJvdW5kcyhwMiwgcDEsIHEyKSkge1xcbiAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgIH1cXG4gICAgLy8gcDIsIHEyIGFuZCBxMSBhcmUgY29saW5lYXIgYW5kIHExIGxpZXMgb24gc2VnbWVudCBwMnEyXFxuICAgIGlmIChvNCA9PT0gMCAmJiBpc1BvaW50V2l0aGluQm91bmRzKHAyLCBxMSwgcTIpKSB7XFxuICAgICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgfVxcbiAgICByZXR1cm4gZmFsc2U7XFxufTtcXG4vLyBUT0RPOiBSb3VuZGluZyB0aGlzIHBvaW50IGNhdXNlcyBzb21lIHNoYWtlIHdoZW4gZnJlZSBkcmF3aW5nXFxuY29uc3QgZ2V0R3JpZFBvaW50ID0gKHgsIHksIGdyaWRTaXplKSA9PiB7XFxuICAgIGlmIChncmlkU2l6ZSkge1xcbiAgICAgICAgcmV0dXJuIFtcXG4gICAgICAgICAgICBNYXRoLnJvdW5kKHggLyBncmlkU2l6ZSkgKiBncmlkU2l6ZSxcXG4gICAgICAgICAgICBNYXRoLnJvdW5kKHkgLyBncmlkU2l6ZSkgKiBncmlkU2l6ZSxcXG4gICAgICAgIF07XFxuICAgIH1cXG4gICAgcmV0dXJuIFt4LCB5XTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2YldGMGFDNTBjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3TzBGQlEzRkVPMEZCUnpsRExFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlEzQkNMRVZCUVZVc1JVRkRWaXhGUVVGVkxFVkJRMVlzUlVGQlZTeEZRVU5XTEVWQlFWVXNSVUZEVml4TFFVRmhMRVZCUTBzc1JVRkJSVHRCUVVOd1Fpd3JRMEZCSzBNN1FVRkRMME1zWjBSQlFXZEVPMEZCUTJoRUxHdElRVUZyU0R0QlFVTnNTRHRKUVVORkxFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhGUVVGRk8wbEJRemxFTEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eEZRVUZGTzBOQlF5OUVMRU5CUVVNN1FVRkZSeXhOUVVGTkxGZEJRVmNzUjBGQlJ5eERRVU42UWl4TFFVRlpMRVZCUTFvc1RVRkJZU3hGUVVOaUxFdEJRV0VzUlVGRFN5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dEJRVVY0UlN4TlFVRk5MRzlDUVVGdlFpeEhRVUZITEVOQlEyeERMRXRCUzBNc1JVRkRSQ3hEUVVGVExFVkJRMVFzUTBGQlV5eEZRVU5VTEV0QlFXRXNSVUZEWWl4UFFVRmxMRVZCUTJZc1QwRkJaU3hGUVVObUxFOUJRV1VzUlVGRFppeFBRVUZsTEVWQlEwY3NSVUZCUlR0SlFVTndRaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRelZDTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdTVUZETlVJc1NVRkJTU3hMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVN1VVRkRkRUlzUTBGQlF5eEpRVUZKTEU5QlFVOHNSMEZCUnl4UFFVRlBMRU5CUVVNN1MwRkRlRUk3VTBGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVN1VVRkRiRUlzUTBGQlF5eEpRVUZKTEU5QlFVOHNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU42UWl4RFFVRkRMRWxCUVVrc1QwRkJUeXhIUVVGSExFZEJRVWNzUTBGQlF6dFJRVU51UWl4RFFVRkRMRWxCUVVrc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNwQ0xFTkJRVU1zU1VGQlNTeFBRVUZQTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNN1MwRkRja0k3VTBGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVN1VVRkRiRUlzUTBGQlF5eEpRVUZKTEU5QlFVOHNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU42UWl4RFFVRkRMRWxCUVVrc1QwRkJUeXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETzFGQlEzQkNMRU5CUVVNc1NVRkJTU3hQUVVGUExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRla0lzUTBGQlF5eEpRVUZKTEU5QlFVOHNSMEZCUnl4SFFVRkhMRU5CUVVNN1MwRkRjRUk3U1VGRlJDeEpRVUZKTEV0QlFVc3NRMEZCUXl4RFFVRkRMRWxCUVVrc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJUdFJRVU4wUWl4RFFVRkRMRWxCUVVrc1QwRkJUeXhIUVVGSExFOUJRVThzUTBGQlF6dExRVU40UWp0VFFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJUdFJRVU5zUWl4RFFVRkRMRWxCUVVrc1QwRkJUeXhIUVVGSExFZEJRVWNzUTBGQlF6dFJRVU51UWl4RFFVRkRMRWxCUVVrc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNwQ0xFTkJRVU1zU1VGQlNTeFBRVUZQTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNN1VVRkRjRUlzUTBGQlF5eEpRVUZKTEU5QlFVOHNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dExRVU14UWp0VFFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJUdFJRVU5zUWl4RFFVRkRMRWxCUVVrc1QwRkJUeXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETzFGQlEzQkNMRU5CUVVNc1NVRkJTU3hQUVVGUExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRla0lzUTBGQlF5eEpRVUZKTEU5QlFVOHNSMEZCUnl4SFFVRkhMRU5CUVVNN1VVRkRia0lzUTBGQlF5eEpRVUZKTEU5QlFVOHNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dExRVU14UWp0SlFVTkVMRTlCUVU4c1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYUVJc1EwRkJReXhEUVVGRE8wRkJSVXNzVFVGQlRTeGxRVUZsTEVkQlFVY3NRMEZCUXl4TFFVRlpMRVZCUVVVc1NVRkJZU3hGUVVGRkxFVkJRVVU3U1VGRE4wUXNUVUZCVFN4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTTdTVUZEZGtJc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeEhRVUZITEV0QlFVc3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVNdlFpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF6dEpRVU16UWl4SlFVRkpMRXRCUVVzc1IwRkJWeXhEUVVGRExFTkJRVU03U1VGRGRFSXNTVUZCU1N4SFFVRkhMRWRCUVZjc1EwRkJReXhEUVVGRE8wbEJSWEJDTERaRVFVRTJSRHRKUVVNM1JDeDFRMEZCZFVNN1NVRkRka01zVFVGQlRTeE5RVUZOTEVkQlFVY3NTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xRkJRM2hETEhkRVFVRjNSRHRSUVVONFJDeE5RVUZOTEVWQlFVVXNSMEZCUnl4TFFVRkxMRU5CUVVNN1VVRkRha0lzVFVGQlRTeEZRVUZGTEVkQlFVY3NTMEZCU3l4RFFVRkRPMUZCUldwQ0xFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZEV0N4TFFVRkxMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJSVmdzTUVSQlFUQkVPMUZCUXpGRUxHZERRVUZuUXp0UlFVTm9ReXhKUVVGSkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVsQlFVa3NSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRaUVVOMFFpeFBRVUZQTEV0QlFVc3NRMEZCUXp0VFFVTmtPMUZCUlVRc01rTkJRVEpETzFGQlF6TkRMRFpDUVVFMlFqdFJRVU0zUWl4dlJFRkJiMFE3VVVGRmNFUXNiME5CUVc5RE8xRkJRM0JETEUxQlFVMHNSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSV3BETEN0RFFVRXJRenRSUVVNdlF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVWc1F5d3JRMEZCSzBNN1VVRkRMME1zVFVGQlRTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkZiRU1zWjBWQlFXZEZPMUZCUTJoRkxDdEVRVUVyUkR0UlFVVXZSQ3d3UTBGQk1FTTdVVUZETVVNc1RVRkJUU3hQUVVGUExFZEJRVWNzUjBGQlJ5eERRVUZETzFGQlJYQkNMRzlFUVVGdlJEdFJRVU53UkN4blEwRkJaME03VVVGRGFFTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSMEZCUnl4UFFVRlBMRWxCUVVrc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1QwRkJUeXhGUVVGRk8xbEJRMmhGTEU5QlFVOHNTMEZCU3l4RFFVRkRPMU5CUTJRN1VVRkZSQ3gzUkVGQmQwUTdVVUZEZUVRc1MwRkJTeXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVU5ZTEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkZVaXhQUVVGUExFbEJRVWtzUTBGQlF6dEpRVU5rTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlVnc2VVUkJRWGxFTzBsQlEzcEVMRWxCUVVrc1RVRkJUU3hMUVVGTExFbEJRVWtzUlVGQlJUdFJRVU51UWl4UFFVRlBMRVZCUVVVc1EwRkJReXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU03UzBGRE0wUTdTVUZGUkN4UFFVRlBMRWxCUVVrc1EwRkJRenRCUVVOa0xFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNWVUZCVlN4SFFVRkhMRU5CUVVNc1JVRkJWU3hGUVVGRkxFVkJRVlVzUlVGQlJTeEZRVUZWTEVWQlFVVXNSVUZCVlN4RlFVRkZMRVZCUVVVN1NVRkRNMFVzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVOdVFpeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRE8wbEJRMjVDTEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdRVUZETlVJc1EwRkJReXhEUVVGRE8wRkJSVXNzVFVGQlRTeFhRVUZYTEVkQlFVY3NRMEZCUXl4RFFVRlJMRVZCUVVVc1EwRkJVU3hGUVVGVExFVkJRVVU3U1VGRGRrUXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOb1JDeERRVUZETEVOQlFVTTdRVUZGUml4elJFRkJjMFE3UVVGRGRFUXNNRUpCUVRCQ08wRkJRMjVDTEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUTNwQ0xFMUJRWGxETzBGQlEzcERMSGRGUVVGM1JUdEJRVU40UlN4WlFVRXlRaXhEUVVGM1FpeEZRVU14UXl4RlFVRkZPMGxCUTFnc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNSVUZCUlR0UlFVTjBRaXhOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZETjBRc1RVRkJUU3hSUVVGUkxFZEJRVWNzVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUld4RkxEQkZRVUV3UlR0UlFVTXhSU3c0UkVGQk9FUTdVVUZET1VRc1QwRkJUeXhSUVVGUkxFbEJRVWtzT0VSQlFYTkNMRWRCUVVjc1UwRkJVeXhEUVVGRE8wdEJRM1pFTzBsQlEwUXNUMEZCVHl4TFFVRkxMRU5CUVVNN1FVRkRaaXhEUVVGRExFTkJRVU03UVVGRlJpeDNSRUZCZDBRN1FVRkRlRVFzT0VWQlFUaEZPMEZCUXpsRkxHbEZRVUZwUlR0QlFVTXhSQ3hOUVVGTkxHZENRVUZuUWl4SFFVRkhMRU5CUXpsQ0xFMUJRV1VzUlVGRFppeERRVUZUTEVWQlExUXNRMEZCVXl4RlFVTkJMRVZCUVVVN1NVRkRXQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRPMGxCUlM5Q0xDdERRVUVyUXp0SlFVTXZReXhKUVVGSkxGRkJRVkVzUjBGQlJ5eERRVUZETEVWQlFVVTdVVUZEYUVJc1QwRkJUeXhMUVVGTExFTkJRVU03UzBGRFpEdEpRVU5FTEUxQlFVMHNUMEZCVHl4SFFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0JFTEUxQlFVMHNRMEZCUXl4SFFVRlZMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzaENMRWxCUVVrc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU5rTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFJRVUZSTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1VVRkRha01zVFVGQlRTeFBRVUZQTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRekZDTEUxQlFVMHNTVUZCU1N4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVONFF5eEpRVUZKTEcxQ1FVRnRRaXhEUVVGRExFOUJRVThzUlVGQlJTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RlFVRkZMRTlCUVU4c1EwRkJReXhGUVVGRk8xbEJRMnhFTEVsQlFVa3NNRUpCUVRCQ0xFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVU3WjBKQlEzUkVMRTlCUVU4c2JVSkJRVzFDTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dGhRVU01UXp0WlFVTkVMRXRCUVVzc1JVRkJSU3hEUVVGRE8xTkJRMVE3UzBGRFJqdEpRVU5FTEhWQ1FVRjFRanRKUVVOMlFpeFBRVUZQTEV0QlFVc3NSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRM3BDTEVOQlFVTXNRMEZCUXp0QlFVVkdMR2RHUVVGblJqdEJRVU5vUml4elJVRkJjMFU3UVVGRGRFVXNUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eERRVUZETEVOQlFWRXNSVUZCUlN4RFFVRlJMRVZCUVVVc1EwRkJVU3hGUVVGRkxFVkJRVVU3U1VGRE0wUXNUMEZCVHl4RFFVTk1MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkROVUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU0xUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpWQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGRE4wSXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJRenRCUVVWR0xIbERRVUY1UXp0QlFVTjZReXcwUWtGQk5FSTdRVUZETlVJc2FVSkJRV2xDTzBGQlEycENMSGRDUVVGM1FqdEJRVU40UWl4TlFVRk5MREJDUVVFd1FpeEhRVUZITEVOQlFVTXNRMEZCVVN4RlFVRkZMRU5CUVZFc1JVRkJSU3hEUVVGUkxFVkJRVVVzUlVGQlJUdEpRVU5zUlN4TlFVRk5MRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU14UlN4SlFVRkpMRWRCUVVjc1MwRkJTeXhEUVVGRExFVkJRVVU3VVVGRFlpeFBRVUZQTEVOQlFVTXNRMEZCUXp0TFFVTldPMGxCUTBRc1QwRkJUeXhIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU42UWl4RFFVRkRMRU5CUVVNN1FVRkZSaXh4UTBGQmNVTTdRVUZEY2tNc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl4RFFVRkRMRVZCUVZNc1JVRkJSU3hGUVVGVExFVkJRVVVzUlVGQlV5eEZRVUZGTEVWQlFWTXNSVUZCUlN4RlFVRkZPMGxCUTNwRkxFMUJRVTBzUlVGQlJTeEhRVUZITERCQ1FVRXdRaXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRiRVFzVFVGQlRTeEZRVUZGTEVkQlFVY3NNRUpCUVRCQ0xFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVOc1JDeE5RVUZOTEVWQlFVVXNSMEZCUnl3d1FrRkJNRUlzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRMnhFTEUxQlFVMHNSVUZCUlN4SFFVRkhMREJDUVVFd1FpeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRmJFUXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSU3hKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVTdVVUZETVVJc1QwRkJUeXhKUVVGSkxFTkJRVU03UzBGRFlqdEpRVVZFTEhsRVFVRjVSRHRKUVVONlJDeEpRVUZKTEVWQlFVVXNTMEZCU3l4RFFVRkRMRWxCUVVrc2JVSkJRVzFDTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdFJRVU12UXl4UFFVRlBMRWxCUVVrc1EwRkJRenRMUVVOaU8wbEJSVVFzZVVSQlFYbEVPMGxCUTNwRUxFbEJRVWtzUlVGQlJTeExRVUZMTEVOQlFVTXNTVUZCU1N4dFFrRkJiVUlzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRk8xRkJReTlETEU5QlFVOHNTVUZCU1N4RFFVRkRPMHRCUTJJN1NVRkZSQ3g1UkVGQmVVUTdTVUZEZWtRc1NVRkJTU3hGUVVGRkxFdEJRVXNzUTBGQlF5eEpRVUZKTEcxQ1FVRnRRaXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1VVRkRMME1zVDBGQlR5eEpRVUZKTEVOQlFVTTdTMEZEWWp0SlFVVkVMSGxFUVVGNVJEdEpRVU42UkN4SlFVRkpMRVZCUVVVc1MwRkJTeXhEUVVGRExFbEJRVWtzYlVKQlFXMUNMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlR0UlFVTXZReXhQUVVGUExFbEJRVWtzUTBGQlF6dExRVU5pTzBsQlJVUXNUMEZCVHl4TFFVRkxMRU5CUVVNN1FVRkRaaXhEUVVGRExFTkJRVU03UVVGRlJpeG5SVUZCWjBVN1FVRkRla1FzVFVGQlRTeFpRVUZaTEVkQlFVY3NRMEZETVVJc1EwRkJVeXhGUVVOVUxFTkJRVk1zUlVGRFZDeFJRVUYxUWl4RlFVTk1MRVZCUVVVN1NVRkRjRUlzU1VGQlNTeFJRVUZSTEVWQlFVVTdVVUZEV2l4UFFVRlBPMWxCUTB3c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMRWRCUVVjc1VVRkJVVHRaUVVOdVF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zUjBGQlJ5eFJRVUZSTzFOQlEzQkRMRU5CUVVNN1MwRkRTRHRKUVVORUxFOUJRVThzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRhRUlzUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR1THk0dUwyMWhkR2d1ZEhNL1pEVTJZeUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZXlCT2IzSnRZV3hwZW1Wa1dtOXZiVlpoYkhWbExDQlFiMmx1ZEN3Z1dtOXZiU0I5SUdaeWIyMGdYQ0l1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCTVNVNUZYME5QVGtaSlVrMWZWRWhTUlZOSVQweEVJSDBnWm5KdmJTQmNJaTR2WTI5dWMzUmhiblJ6WENJN1hHNXBiWEJ2Y25RZ2V5QkZlR05oYkdsa2NtRjNUR2x1WldGeVJXeGxiV1Z1ZENCOUlHWnliMjBnWENJdUwyVnNaVzFsYm5RdmRIbHdaWE5jSWp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUhKdmRHRjBaU0E5SUNoY2JpQWdlREU2SUc1MWJXSmxjaXhjYmlBZ2VURTZJRzUxYldKbGNpeGNiaUFnZURJNklHNTFiV0psY2l4Y2JpQWdlVEk2SUc1MWJXSmxjaXhjYmlBZ1lXNW5iR1U2SUc1MWJXSmxjaXhjYmlrNklGdHVkVzFpWlhJc0lHNTFiV0psY2wwZ1BUNWNiaUFnTHk4ZzhKMlJqdUtBc3ZDZGthVTlLUENka1k3d25aR2w0b2lTOEoyUmtQQ2RrYVVwWTI5ejhKMmNnK0tJa2lqd25aR084SjJScHVLSWt2Q2RrWkR3blpHbUtYTnBidkNkbklNcjhKMlJrUENka2FWY2JpQWdMeThnOEoyUmp1S0FzdkNka2FZOUtQQ2RrWTd3blpHbDRvaVM4SjJSa1BDZGthVXBjMmx1OEoyY2d5c284SjJSanZDZGthYmlpSkx3blpHUThKMlJwaWxqYjNQd25aeURLL0Nka1pEd25aR21MbHh1SUNBdkx5Qm9kSFJ3Y3pvdkwyMWhkR2d1YzNSaFkydGxlR05vWVc1blpTNWpiMjB2Y1hWbGMzUnBiMjV6THpJeU1EUTFNakF2YUc5M0xXUnZMV2t0Y205MFlYUmxMV0V0YkdsdVpTMXpaV2R0Wlc1MExXbHVMV0V0YzNCbFkybG1hV010Y0c5cGJuUXRiMjR0ZEdobExXeHBibVZjYmlBZ1cxeHVJQ0FnSUNoNE1TQXRJSGd5S1NBcUlFMWhkR2d1WTI5ektHRnVaMnhsS1NBdElDaDVNU0F0SUhreUtTQXFJRTFoZEdndWMybHVLR0Z1WjJ4bEtTQXJJSGd5TEZ4dUlDQWdJQ2g0TVNBdElIZ3lLU0FxSUUxaGRHZ3VjMmx1S0dGdVoyeGxLU0FySUNoNU1TQXRJSGt5S1NBcUlFMWhkR2d1WTI5ektHRnVaMnhsS1NBcklIa3lMRnh1SUNCZE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2NtOTBZWFJsVUc5cGJuUWdQU0FvWEc0Z0lIQnZhVzUwT2lCUWIybHVkQ3hjYmlBZ1kyVnVkR1Z5T2lCUWIybHVkQ3hjYmlBZ1lXNW5iR1U2SUc1MWJXSmxjaXhjYmlrNklGdHVkVzFpWlhJc0lHNTFiV0psY2wwZ1BUNGdjbTkwWVhSbEtIQnZhVzUwV3pCZExDQndiMmx1ZEZzeFhTd2dZMlZ1ZEdWeVd6QmRMQ0JqWlc1MFpYSmJNVjBzSUdGdVoyeGxLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR0ZrYW5WemRGaFpWMmwwYUZKdmRHRjBhVzl1SUQwZ0tGeHVJQ0J6YVdSbGN6b2dlMXh1SUNBZ0lHNC9PaUJpYjI5c1pXRnVPMXh1SUNBZ0lHVS9PaUJpYjI5c1pXRnVPMXh1SUNBZ0lITS9PaUJpYjI5c1pXRnVPMXh1SUNBZ0lIYy9PaUJpYjI5c1pXRnVPMXh1SUNCOUxGeHVJQ0I0T2lCdWRXMWlaWElzWEc0Z0lIazZJRzUxYldKbGNpeGNiaUFnWVc1bmJHVTZJRzUxYldKbGNpeGNiaUFnWkdWc2RHRllNVG9nYm5WdFltVnlMRnh1SUNCa1pXeDBZVmt4T2lCdWRXMWlaWElzWEc0Z0lHUmxiSFJoV0RJNklHNTFiV0psY2l4Y2JpQWdaR1ZzZEdGWk1qb2diblZ0WW1WeUxGeHVLVG9nVzI1MWJXSmxjaXdnYm5WdFltVnlYU0E5UGlCN1hHNGdJR052Ym5OMElHTnZjeUE5SUUxaGRHZ3VZMjl6S0dGdVoyeGxLVHRjYmlBZ1kyOXVjM1FnYzJsdUlEMGdUV0YwYUM1emFXNG9ZVzVuYkdVcE8xeHVJQ0JwWmlBb2MybGtaWE11WlNBbUppQnphV1JsY3k1M0tTQjdYRzRnSUNBZ2VDQXJQU0JrWld4MFlWZ3hJQ3NnWkdWc2RHRllNanRjYmlBZ2ZTQmxiSE5sSUdsbUlDaHphV1JsY3k1bEtTQjdYRzRnSUNBZ2VDQXJQU0JrWld4MFlWZ3hJQ29nS0RFZ0t5QmpiM01wTzF4dUlDQWdJSGtnS3owZ1pHVnNkR0ZZTVNBcUlITnBianRjYmlBZ0lDQjRJQ3M5SUdSbGJIUmhXRElnS2lBb01TQXRJR052Y3lrN1hHNGdJQ0FnZVNBclBTQmtaV3gwWVZneUlDb2dMWE5wYmp0Y2JpQWdmU0JsYkhObElHbG1JQ2h6YVdSbGN5NTNLU0I3WEc0Z0lDQWdlQ0FyUFNCa1pXeDBZVmd4SUNvZ0tERWdMU0JqYjNNcE8xeHVJQ0FnSUhrZ0t6MGdaR1ZzZEdGWU1TQXFJQzF6YVc0N1hHNGdJQ0FnZUNBclBTQmtaV3gwWVZneUlDb2dLREVnS3lCamIzTXBPMXh1SUNBZ0lIa2dLejBnWkdWc2RHRllNaUFxSUhOcGJqdGNiaUFnZlZ4dVhHNGdJR2xtSUNoemFXUmxjeTV1SUNZbUlITnBaR1Z6TG5NcElIdGNiaUFnSUNCNUlDczlJR1JsYkhSaFdURWdLeUJrWld4MFlWa3lPMXh1SUNCOUlHVnNjMlVnYVdZZ0tITnBaR1Z6TG00cElIdGNiaUFnSUNCNElDczlJR1JsYkhSaFdURWdLaUJ6YVc0N1hHNGdJQ0FnZVNBclBTQmtaV3gwWVZreElDb2dLREVnTFNCamIzTXBPMXh1SUNBZ0lIZ2dLejBnWkdWc2RHRlpNaUFxSUMxemFXNDdYRzRnSUNBZ2VTQXJQU0JrWld4MFlWa3lJQ29nS0RFZ0t5QmpiM01wTzF4dUlDQjlJR1ZzYzJVZ2FXWWdLSE5wWkdWekxuTXBJSHRjYmlBZ0lDQjRJQ3M5SUdSbGJIUmhXVEVnS2lBdGMybHVPMXh1SUNBZ0lIa2dLejBnWkdWc2RHRlpNU0FxSUNneElDc2dZMjl6S1R0Y2JpQWdJQ0I0SUNzOUlHUmxiSFJoV1RJZ0tpQnphVzQ3WEc0Z0lDQWdlU0FyUFNCa1pXeDBZVmt5SUNvZ0tERWdMU0JqYjNNcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCYmVDd2dlVjA3WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1oyVjBVRzlwYm5SUGJrRlFZWFJvSUQwZ0tIQnZhVzUwT2lCUWIybHVkQ3dnY0dGMGFEb2dVRzlwYm5SYlhTa2dQVDRnZTF4dUlDQmpiMjV6ZENCYmNIZ3NJSEI1WFNBOUlIQnZhVzUwTzF4dUlDQmpiMjV6ZENCYmMzUmhjblFzSUM0dUxtOTBhR1Z5WFNBOUlIQmhkR2c3WEc0Z0lHeGxkQ0JiYkdGemRGZ3NJR3hoYzNSWlhTQTlJSE4wWVhKME8xeHVJQ0JzWlhRZ2EweHBibVU2SUc1MWJXSmxjaUE5SURBN1hHNGdJR3hsZENCcFpIZzZJRzUxYldKbGNpQTlJREE3WEc1Y2JpQWdMeThnYVdZZ1lXNTVJR2wwWlcwZ2FXNGdkR2hsSUdGeWNtRjVJR2x6SUhSeWRXVXNJR2wwSUcxbFlXNXpJSFJvWVhRZ1lTQndiMmx1ZENCcGMxeHVJQ0F2THlCdmJpQnpiMjFsSUhObFoyMWxiblFnYjJZZ1lTQnNhVzVsSUdKaGMyVmtJSEJoZEdoY2JpQWdZMjl1YzNRZ2NtVjBWbUZzSUQwZ2IzUm9aWEl1YzI5dFpTZ29XM2d5TENCNU1sMHNJR2twSUQwK0lIdGNiaUFnSUNBdkx5QjNaU0JoYkhkaGVYTWdkR0ZyWlNCaElHeHBibVVnZDJobGJpQmtaV0ZzYVc1bklIZHBkR2dnYkdsdVpTQnpaV2R0Wlc1MGMxeHVJQ0FnSUdOdmJuTjBJSGd4SUQwZ2JHRnpkRmc3WEc0Z0lDQWdZMjl1YzNRZ2VURWdQU0JzWVhOMFdUdGNibHh1SUNBZ0lHeGhjM1JZSUQwZ2VESTdYRzRnSUNBZ2JHRnpkRmtnUFNCNU1qdGNibHh1SUNBZ0lDOHZJR2xtSUdFZ2NHOXBiblFnYVhNZ2JtOTBJSGRwZEdocGJpQjBhR1VnWkc5dFlXbHVJRzltSUhSb1pTQnNhVzVsSUhObFoyMWxiblJjYmlBZ0lDQXZMeUJwZENCcGN5QnViM1FnYjI0Z2RHaGxJR3hwYm1VZ2MyVm5iV1Z1ZEZ4dUlDQWdJR2xtSUNod2VDQThJSGd4SUh4OElIQjRJRDRnZURJcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJqYUdWamF5QnBaaUJoYkd3Z2NHOXBiblJ6SUd4cFpTQnZiaUIwYUdVZ2MyRnRaU0JzYVc1bFhHNGdJQ0FnTHk4Z2VURWdQU0JyZURFZ0t5QmlMQ0I1TWlBOUlHdDRNaUFySUdKY2JpQWdJQ0F2THlCNU1pQXRJSGt4SUQwZ2F5aDRNaUF0SUhneUtTQXRQaUJySUQwZ0tIa3lJQzBnZVRFcElDOGdLSGd5SUMwZ2VERXBYRzVjYmlBZ0lDQXZMeUJqYjJWbVptbGphV1Z1ZENCbWIzSWdkR2hsSUd4cGJtVWdLSEF3TENCd01TbGNiaUFnSUNCamIyNXpkQ0JyVENBOUlDaDVNaUF0SUhreEtTQXZJQ2g0TWlBdElIZ3hLVHRjYmx4dUlDQWdJQzh2SUdOdlpXWm1hV05wWlc1MElHWnZjaUIwYUdVZ2JHbHVaU0J6WldkdFpXNTBJQ2h3TUN3Z2NHOXBiblFwWEc0Z0lDQWdZMjl1YzNRZ2ExQXhJRDBnS0hCNUlDMGdlVEVwSUM4Z0tIQjRJQzBnZURFcE8xeHVYRzRnSUNBZ0x5OGdZMjlsWm1acFkybGxiblFnWm05eUlIUm9aU0JzYVc1bElITmxaMjFsYm5RZ0tIQnZhVzUwTENCd01TbGNiaUFnSUNCamIyNXpkQ0JyVURJZ1BTQW9jSGtnTFNCNU1pa2dMeUFvY0hnZ0xTQjRNaWs3WEc1Y2JpQWdJQ0F2THlCaVpXTmhkWE5sSUhkbElHRnlaU0JpWVhOcGJtY2dZbTkwYUNCc2FXNWxjeUJtY205dElIUm9aU0J6WVcxbElITjBZWEowYVc1bklIQnZhVzUwWEc0Z0lDQWdMeThnZEdobElHOXViSGtnYjNCMGFXOXVJR1p2Y2lCamIyeHNhVzVsWVhKcGRIa2dhWE1nYUdGMmFXNW5JSE5oYldVZ1kyOWxabVpwWTJsbGJuUnpYRzVjYmlBZ0lDQXZMeUIxYzJsdVp5QnBkQ0JtYjNJZ1pteHZZWFJwYm1jZ2NHOXBiblFnWTI5dGNHRnlhWE52Ym5OY2JpQWdJQ0JqYjI1emRDQmxjSE5wYkc5dUlEMGdNQzR6TzF4dVhHNGdJQ0FnTHk4Z2FXWWdZMjlsWm1acFkybGxiblFnYVhNZ2JXOXlaU0IwYUdGdUlHRnVJR0Z5WW1sMGNtRnllU0JsY0hOcGJHOXVMRnh1SUNBZ0lDOHZJSFJvWlhObElHeHBibVZ6SUdGeVpTQnViM0lnWTI5c2JHbHVaV0Z5WEc0Z0lDQWdhV1lnS0UxaGRHZ3VZV0p6S0d0UU1TQXRJR3RNS1NBK0lHVndjMmxzYjI0Z0ppWWdUV0YwYUM1aFluTW9hMUF5SUMwZ2Ewd3BJRDRnWlhCemFXeHZiaWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklITjBiM0psSUhSb1pTQmpiMlZtWm1samFXVnVkQ0JpWldOaGRYTmxJSGRsSUdGeVpTQm5iMmx1ZENCMGJ5QnVaV1ZrSUdsMFhHNGdJQ0FnYTB4cGJtVWdQU0JyVER0Y2JpQWdJQ0JwWkhnZ1BTQnBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lIMHBPMXh1WEc0Z0lDOHZJRkpsZEhWeWJpQmhJR052YjNKa2FXNWhkR1VnZEdoaGRDQnBjeUJoYkhkaGVYTWdiMjRnZEdobElHeHBibVVnYzJWbmJXVnVkRnh1SUNCcFppQW9jbVYwVm1Gc0lEMDlQU0IwY25WbEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhzZ2VEb2djRzlwYm5SYk1GMHNJSGs2SUd0TWFXNWxJQ29nY0c5cGJuUmJNRjBzSUhObFoyMWxiblE2SUdsa2VDQjlPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJRzUxYkd3N1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdaR2x6ZEdGdVkyVXlaQ0E5SUNoNE1Ub2diblZ0WW1WeUxDQjVNVG9nYm5WdFltVnlMQ0I0TWpvZ2JuVnRZbVZ5TENCNU1qb2diblZ0WW1WeUtTQTlQaUI3WEc0Z0lHTnZibk4wSUhoa0lEMGdlRElnTFNCNE1UdGNiaUFnWTI5dWMzUWdlV1FnUFNCNU1pQXRJSGt4TzF4dUlDQnlaWFIxY200Z1RXRjBhQzVvZVhCdmRDaDRaQ3dnZVdRcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR05sYm5SbGNsQnZhVzUwSUQwZ0tHRTZJRkJ2YVc1MExDQmlPaUJRYjJsdWRDazZJRkJ2YVc1MElEMCtJSHRjYmlBZ2NtVjBkWEp1SUZzb1lWc3dYU0FySUdKYk1GMHBJQzhnTWl3Z0tHRmJNVjBnS3lCaVd6RmRLU0F2SURKZE8xeHVmVHRjYmx4dUx5OGdRMmhsWTJ0eklHbG1JSFJvWlNCbWFYSnpkQ0JoYm1RZ2JHRnpkQ0J3YjJsdWRDQmhjbVVnWTJ4dmMyVWdaVzV2ZFdkb1hHNHZMeUIwYnlCaVpTQmpiMjV6YVdSbGNtVmtJR0VnYkc5dmNGeHVaWGh3YjNKMElHTnZibk4wSUdselVHRjBhRUZNYjI5d0lEMGdLRnh1SUNCd2IybHVkSE02SUVWNFkyRnNhV1J5WVhkTWFXNWxZWEpGYkdWdFpXNTBXMXdpY0c5cGJuUnpYQ0pkTEZ4dUlDQXZLaW9nYzNWd2NHeDVJR2xtSUhsdmRTQjNZVzUwSUhSb1pTQnNiMjl3SUdSbGRHVmpkR2x2YmlCMGJ5QmhZMk52ZFc1MElHWnZjaUJqZFhKeVpXNTBJSHB2YjIwZ0tpOWNiaUFnZW05dmJWWmhiSFZsT2lCYWIyOXRXMXdpZG1Gc2RXVmNJbDBnUFNBeElHRnpJRTV2Y20xaGJHbDZaV1JhYjI5dFZtRnNkV1VzWEc0cE9pQmliMjlzWldGdUlEMCtJSHRjYmlBZ2FXWWdLSEJ2YVc1MGN5NXNaVzVuZEdnZ1BqMGdNeWtnZTF4dUlDQWdJR052Ym5OMElGdG1hWEp6ZEN3Z2JHRnpkRjBnUFNCYmNHOXBiblJ6V3pCZExDQndiMmx1ZEhOYmNHOXBiblJ6TG14bGJtZDBhQ0F0SURGZFhUdGNiaUFnSUNCamIyNXpkQ0JrYVhOMFlXNWpaU0E5SUdScGMzUmhibU5sTW1Rb1ptbHljM1JiTUYwc0lHWnBjbk4wV3pGZExDQnNZWE4wV3pCZExDQnNZWE4wV3pGZEtUdGNibHh1SUNBZ0lDOHZJRUZrYW5WemRHbHVaeUJNU1U1RlgwTlBUa1pKVWsxZlZFaFNSVk5JVDB4RUlIUnZJR04xY25KbGJuUWdlbTl2YlNCemJ5QjBhR0YwSUhkb1pXNGdlbTl2YldWa0lHbHVYRzRnSUNBZ0x5OGdjbVZoYkd4NUlHTnNiM05sSUhkbElHMWhhMlVnZEdobElIUm9jbVZ6YUc5c1pDQnpiV0ZzYkdWeUxDQmhibVFnZG1salpTQjJaWEp6WVM1Y2JpQWdJQ0J5WlhSMWNtNGdaR2x6ZEdGdVkyVWdQRDBnVEVsT1JWOURUMDVHU1ZKTlgxUklVa1ZUU0U5TVJDQXZJSHB2YjIxV1lXeDFaVHRjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNTlPMXh1WEc0dkx5QkVjbUYzSUdFZ2JHbHVaU0JtY205dElIUm9aU0J3YjJsdWRDQjBieUIwYUdVZ2NtbG5hSFFnZEdsc2JDQnBibVpwYVc1MGVWeHVMeThnUTJobFkyc2dhRzkzSUcxaGJua2diR2x1WlhNZ2IyWWdkR2hsSUhCdmJIbG5iMjRnWkc5bGN5QjBhR2x6SUdsdVptbHVhWFJsSUd4cGJtVWdhVzUwWlhKelpXTjBjeUIzYVhSb1hHNHZMeUJKWmlCMGFHVWdiblZ0WW1WeUlHOW1JR2x1ZEdWeWMyVmpkR2x2Ym5NZ2FYTWdiMlJrTENCd2IybHVkQ0JwY3lCcGJpQjBhR1VnY0c5c2VXZHZibHh1Wlhod2IzSjBJR052Ym5OMElHbHpVRzlwYm5SSmJsQnZiSGxuYjI0Z1BTQW9YRzRnSUhCdmFXNTBjem9nVUc5cGJuUmJYU3hjYmlBZ2VEb2diblZ0WW1WeUxGeHVJQ0I1T2lCdWRXMWlaWElzWEc0cE9pQmliMjlzWldGdUlEMCtJSHRjYmlBZ1kyOXVjM1FnZG1WeWRHbGpaWE1nUFNCd2IybHVkSE11YkdWdVozUm9PMXh1WEc0Z0lDOHZJRlJvWlhKbElHMTFjM1FnWW1VZ1lYUWdiR1ZoYzNRZ015QjJaWEowYVdObGN5QnBiaUJ3YjJ4NVoyOXVYRzRnSUdsbUlDaDJaWEowYVdObGN5QThJRE1wSUh0Y2JpQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJSDFjYmlBZ1kyOXVjM1FnWlhoMGNtVnRaVG9nVUc5cGJuUWdQU0JiVG5WdFltVnlMazFCV0Y5VFFVWkZYMGxPVkVWSFJWSXNJSGxkTzF4dUlDQmpiMjV6ZENCd09pQlFiMmx1ZENBOUlGdDRMQ0I1WFR0Y2JpQWdiR1YwSUdOdmRXNTBJRDBnTUR0Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0IyWlhKMGFXTmxjenNnYVNzcktTQjdYRzRnSUNBZ1kyOXVjM1FnWTNWeWNtVnVkQ0E5SUhCdmFXNTBjMXRwWFR0Y2JpQWdJQ0JqYjI1emRDQnVaWGgwSUQwZ2NHOXBiblJ6V3locElDc2dNU2tnSlNCMlpYSjBhV05sYzEwN1hHNGdJQ0FnYVdZZ0tHUnZVMlZuYldWdWRITkpiblJsY25ObFkzUW9ZM1Z5Y21WdWRDd2dibVY0ZEN3Z2NDd2daWGgwY21WdFpTa3BJSHRjYmlBZ0lDQWdJR2xtSUNodmNtUmxjbVZrUTI5c2FXNWxZWEpQY21sbGJuUmhkR2x2YmloamRYSnlaVzUwTENCd0xDQnVaWGgwS1NBOVBUMGdNQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYVhOUWIybHVkRmRwZEdocGJrSnZkVzVrY3loamRYSnlaVzUwTENCd0xDQnVaWGgwS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdOdmRXNTBLeXM3WEc0Z0lDQWdmVnh1SUNCOVhHNGdJQzh2SUhSeWRXVWdhV1lnWTI5MWJuUWdhWE1nYjJabVhHNGdJSEpsZEhWeWJpQmpiM1Z1ZENBbElESWdQVDA5SURFN1hHNTlPMXh1WEc0dkx5QlNaWFIxY201eklIZG9aWFJvWlhJZ1lIRmdJR3hwWlhNZ2FXNXphV1JsSUhSb1pTQnpaV2R0Wlc1MEwzSmxZM1JoYm1kc1pTQmtaV1pwYm1Wa0lHSjVJR0J3WUNCaGJtUWdZSEpnTGx4dUx5OGdWR2hwY3lCcGN5QmhiaUJoY0hCeWIzaHBiV0YwYVc5dUlIUnZJRndpWkc5bGN5QmdjV0FnYkdsbElHOXVJR0VnYzJWbmJXVnVkQ0JnY0hKZ1hDSWdZMmhsWTJzdVhHNWpiMjV6ZENCcGMxQnZhVzUwVjJsMGFHbHVRbTkxYm1SeklEMGdLSEE2SUZCdmFXNTBMQ0J4T2lCUWIybHVkQ3dnY2pvZ1VHOXBiblFwSUQwK0lIdGNiaUFnY21WMGRYSnVJQ2hjYmlBZ0lDQnhXekJkSUR3OUlFMWhkR2d1YldGNEtIQmJNRjBzSUhKYk1GMHBJQ1ltWEc0Z0lDQWdjVnN3WFNBK1BTQk5ZWFJvTG0xcGJpaHdXekJkTENCeVd6QmRLU0FtSmx4dUlDQWdJSEZiTVYwZ1BEMGdUV0YwYUM1dFlYZ29jRnN4WFN3Z2Nsc3hYU2tnSmlaY2JpQWdJQ0J4V3pGZElENDlJRTFoZEdndWJXbHVLSEJiTVYwc0lISmJNVjBwWEc0Z0lDazdYRzU5TzF4dVhHNHZMeUJHYjNJZ2RHaGxJRzl5WkdWeVpXUWdjRzlwYm5SeklIQXNJSEVzSUhJc0lISmxkSFZ5Ymx4dUx5OGdNQ0JwWmlCd0xDQnhMQ0J5SUdGeVpTQmpiMnhwYm1WaGNseHVMeThnTVNCcFppQkRiRzlqYTNkcGMyVmNiaTh2SURJZ2FXWWdZMjkxYm5SbGNtTnNhV05yZDJselpWeHVZMjl1YzNRZ2IzSmtaWEpsWkVOdmJHbHVaV0Z5VDNKcFpXNTBZWFJwYjI0Z1BTQW9jRG9nVUc5cGJuUXNJSEU2SUZCdmFXNTBMQ0J5T2lCUWIybHVkQ2tnUFQ0Z2UxeHVJQ0JqYjI1emRDQjJZV3dnUFNBb2NWc3hYU0F0SUhCYk1WMHBJQ29nS0hKYk1GMGdMU0J4V3pCZEtTQXRJQ2h4V3pCZElDMGdjRnN3WFNrZ0tpQW9jbHN4WFNBdElIRmJNVjBwTzF4dUlDQnBaaUFvZG1Gc0lEMDlQU0F3S1NCN1hHNGdJQ0FnY21WMGRYSnVJREE3WEc0Z0lIMWNiaUFnY21WMGRYSnVJSFpoYkNBK0lEQWdQeUF4SURvZ01qdGNibjA3WEc1Y2JpOHZJRU5vWldOcklHbHpJSEF4Y1RFZ2FXNTBaWEp6WldOMGN5QjNhWFJvSUhBeWNUSmNibU52Ym5OMElHUnZVMlZuYldWdWRITkpiblJsY25ObFkzUWdQU0FvY0RFNklGQnZhVzUwTENCeE1Ub2dVRzlwYm5Rc0lIQXlPaUJRYjJsdWRDd2djVEk2SUZCdmFXNTBLU0E5UGlCN1hHNGdJR052Ym5OMElHOHhJRDBnYjNKa1pYSmxaRU52YkdsdVpXRnlUM0pwWlc1MFlYUnBiMjRvY0RFc0lIRXhMQ0J3TWlrN1hHNGdJR052Ym5OMElHOHlJRDBnYjNKa1pYSmxaRU52YkdsdVpXRnlUM0pwWlc1MFlYUnBiMjRvY0RFc0lIRXhMQ0J4TWlrN1hHNGdJR052Ym5OMElHOHpJRDBnYjNKa1pYSmxaRU52YkdsdVpXRnlUM0pwWlc1MFlYUnBiMjRvY0RJc0lIRXlMQ0J3TVNrN1hHNGdJR052Ym5OMElHODBJRDBnYjNKa1pYSmxaRU52YkdsdVpXRnlUM0pwWlc1MFlYUnBiMjRvY0RJc0lIRXlMQ0J4TVNrN1hHNWNiaUFnYVdZZ0tHOHhJQ0U5UFNCdk1pQW1KaUJ2TXlBaFBUMGdielFwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdmVnh1WEc0Z0lDOHZJSEF4TENCeE1TQmhibVFnY0RJZ1lYSmxJR052YkdsdVpXRnlJR0Z1WkNCd01pQnNhV1Z6SUc5dUlITmxaMjFsYm5RZ2NERnhNVnh1SUNCcFppQW9iekVnUFQwOUlEQWdKaVlnYVhOUWIybHVkRmRwZEdocGJrSnZkVzVrY3lod01Td2djRElzSUhFeEtTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNCOVhHNWNiaUFnTHk4Z2NERXNJSEV4SUdGdVpDQndNaUJoY21VZ1kyOXNhVzVsWVhJZ1lXNWtJSEV5SUd4cFpYTWdiMjRnYzJWbmJXVnVkQ0J3TVhFeFhHNGdJR2xtSUNodk1pQTlQVDBnTUNBbUppQnBjMUJ2YVc1MFYybDBhR2x1UW05MWJtUnpLSEF4TENCeE1pd2djVEVwS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJSDFjYmx4dUlDQXZMeUJ3TWl3Z2NUSWdZVzVrSUhBeElHRnlaU0JqYjJ4cGJtVmhjaUJoYm1RZ2NERWdiR2xsY3lCdmJpQnpaV2R0Wlc1MElIQXljVEpjYmlBZ2FXWWdLRzh6SUQwOVBTQXdJQ1ltSUdselVHOXBiblJYYVhSb2FXNUNiM1Z1WkhNb2NESXNJSEF4TENCeE1pa3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ2ZWeHVYRzRnSUM4dklIQXlMQ0J4TWlCaGJtUWdjVEVnWVhKbElHTnZiR2x1WldGeUlHRnVaQ0J4TVNCc2FXVnpJRzl1SUhObFoyMWxiblFnY0RKeE1seHVJQ0JwWmlBb2J6UWdQVDA5SURBZ0ppWWdhWE5RYjJsdWRGZHBkR2hwYmtKdmRXNWtjeWh3TWl3Z2NURXNJSEV5S1NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0I5WEc1Y2JpQWdjbVYwZFhKdUlHWmhiSE5sTzF4dWZUdGNibHh1THk4Z1ZFOUVUem9nVW05MWJtUnBibWNnZEdocGN5QndiMmx1ZENCallYVnpaWE1nYzI5dFpTQnphR0ZyWlNCM2FHVnVJR1p5WldVZ1pISmhkMmx1WjF4dVpYaHdiM0owSUdOdmJuTjBJR2RsZEVkeWFXUlFiMmx1ZENBOUlDaGNiaUFnZURvZ2JuVnRZbVZ5TEZ4dUlDQjVPaUJ1ZFcxaVpYSXNYRzRnSUdkeWFXUlRhWHBsT2lCdWRXMWlaWElnZkNCdWRXeHNMRnh1S1RvZ1cyNTFiV0psY2l3Z2JuVnRZbVZ5WFNBOVBpQjdYRzRnSUdsbUlDaG5jbWxrVTJsNlpTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCYlhHNGdJQ0FnSUNCTllYUm9Mbkp2ZFc1a0tIZ2dMeUJuY21sa1UybDZaU2tnS2lCbmNtbGtVMmw2WlN4Y2JpQWdJQ0FnSUUxaGRHZ3VjbTkxYm1Rb2VTQXZJR2R5YVdSVGFYcGxLU0FxSUdkeWFXUlRhWHBsTEZ4dUlDQWdJRjA3WEc0Z0lIMWNiaUFnY21WMGRYSnVJRnQ0TENCNVhUdGNibjA3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vbWF0aC50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9lbnRyeS5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vZW50cnkuanMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiRk9OVF9GQU1JTFlcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GT05UX0ZBTUlMWSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiVEhFTUVcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5USEVNRSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYnVtcFZlcnNpb25cXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5idW1wVmVyc2lvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdExhbmdcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5kZWZhdWx0TGFuZyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZXhwb3J0VG9CbG9iXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2luZGV4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZXhwb3J0VG9CbG9iKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJleHBvcnRUb0NhbnZhc1xcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9pbmRleF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmV4cG9ydFRvQ2FudmFzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJleHBvcnRUb1N2Z1xcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9pbmRleF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmV4cG9ydFRvU3ZnKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRGcmVlRHJhd1N2Z1BhdGhcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5nZXRGcmVlRHJhd1N2Z1BhdGgpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldE5vbkRlbGV0ZWRFbGVtZW50c1xcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9pbmRleF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmdldE5vbkRlbGV0ZWRFbGVtZW50cyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0U2NlbmVWZXJzaW9uXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2luZGV4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2V0U2NlbmVWZXJzaW9uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpc0ludmlzaWJseVNtYWxsRWxlbWVudFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9pbmRleF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmlzSW52aXNpYmx5U21hbGxFbGVtZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpc0xpbmVhckVsZW1lbnRcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5pc0xpbmVhckVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImxhbmd1YWdlc1xcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9pbmRleF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmxhbmd1YWdlcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibG9hZEZyb21CbG9iXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2luZGV4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubG9hZEZyb21CbG9iKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJsb2FkTGlicmFyeUZyb21CbG9iXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2luZGV4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubG9hZExpYnJhcnlGcm9tQmxvYiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibXV0YXRlRWxlbWVudFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9pbmRleF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm11dGF0ZUVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIm5ld0VsZW1lbnRXaXRoXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2luZGV4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubmV3RWxlbWVudFdpdGgpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJlc3RvcmVcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5yZXN0b3JlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJyZXN0b3JlQXBwU3RhdGVcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5yZXN0b3JlQXBwU3RhdGUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJlc3RvcmVFbGVtZW50c1xcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9pbmRleF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJlc3RvcmVFbGVtZW50cyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwic2VyaWFsaXplQXNKU09OXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2luZGV4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uc2VyaWFsaXplQXNKU09OKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vaW5kZXggKi8gXFxcIi4vaW5kZXgudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wdWJsaWNfZm9udHNfY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi8uLi9wdWJsaWMvZm9udHMuY3NzICovIFxcXCIuLi8uLi8uLi9wdWJsaWMvZm9udHMuY3NzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wdWJsaWNfZm9udHNfY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX3B1YmxpY19mb250c19jc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuXFxuXFxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBjb25zdCBfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyA9IChfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1tcXFwiZGVmYXVsdFxcXCJdKTtcXG5cXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTlsYm5SeWVTNXFjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMEZCUVdsRE8wRkJSVVU3UVVGRmJrTXNhVVZCUVdVc09FTkJRVlVzUlVGQlF6dEJRVU5HSWl3aWMyOTFjbU5sY3lJNld5SjNaV0p3WVdOck9pOHZMeTR2Wlc1MGNua3Vhbk0vTURrNFppSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdSWGhqWVd4cFpISmhkeUJtY205dElGd2lMaTlwYm1SbGVGd2lPMXh1WEc1cGJYQnZjblFnWENJdUxpOHVMaTh1TGk5d2RXSnNhV012Wm05dWRITXVZM056WENJN1hHNWNibVY0Y0c5eWRDQmtaV1poZFd4MElFVjRZMkZzYVdSeVlYYzdYRzVsZUhCdmNuUWdLaUJtY205dElGd2lMaTlwYm1SbGVGd2lPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL2VudHJ5LmpzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL2luZGV4LnRzeFwiOlxuLyohKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL2luZGV4LnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0U2NlbmVWZXJzaW9uXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5nZXRTY2VuZVZlcnNpb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzSW52aXNpYmx5U21hbGxFbGVtZW50XFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5pc0ludmlzaWJseVNtYWxsRWxlbWVudCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5nZXROb25EZWxldGVkRWxlbWVudHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImRlZmF1bHRMYW5nXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5kZWZhdWx0TGFuZyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibGFuZ3VhZ2VzXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5sYW5ndWFnZXMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJlc3RvcmVcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfZGF0YV9yZXN0b3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnJlc3RvcmUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJlc3RvcmVBcHBTdGF0ZVxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9kYXRhX3Jlc3RvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18ucmVzdG9yZUFwcFN0YXRlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJyZXN0b3JlRWxlbWVudHNcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfZGF0YV9yZXN0b3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnJlc3RvcmVFbGVtZW50cyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZXhwb3J0VG9DYW52YXNcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfcGFja2FnZXNfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uZXhwb3J0VG9DYW52YXMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImV4cG9ydFRvQmxvYlxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9wYWNrYWdlc191dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5leHBvcnRUb0Jsb2IpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImV4cG9ydFRvU3ZnXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX3BhY2thZ2VzX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLmV4cG9ydFRvU3ZnKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJzZXJpYWxpemVBc0pTT05cXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfcGFja2FnZXNfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uc2VyaWFsaXplQXNKU09OKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJsb2FkTGlicmFyeUZyb21CbG9iXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX3BhY2thZ2VzX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLmxvYWRMaWJyYXJ5RnJvbUJsb2IpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImxvYWRGcm9tQmxvYlxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9wYWNrYWdlc191dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5sb2FkRnJvbUJsb2IpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEZyZWVEcmF3U3ZnUGF0aFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9wYWNrYWdlc191dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5nZXRGcmVlRHJhd1N2Z1BhdGgpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzTGluZWFyRWxlbWVudFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uaXNMaW5lYXJFbGVtZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJGT05UX0ZBTUlMWVxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5GT05UX0ZBTUlMWSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiVEhFTUVcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uVEhFTUUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIm11dGF0ZUVsZW1lbnRcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLm11dGF0ZUVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIm5ld0VsZW1lbnRXaXRoXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5uZXdFbGVtZW50V2l0aCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYnVtcFZlcnNpb25cXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfZWxlbWVudF9tdXRhdGVFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLmJ1bXBWZXJzaW9uKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QvanN4LXJ1bnRpbWUgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcmVhY3QgKi8gXFxcInJlYWN0XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wdWJsaWNQYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3B1YmxpY1BhdGggKi8gXFxcIi4vcHVibGljUGF0aC5qc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29tcG9uZW50c19Jbml0aWFsaXplQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9jb21wb25lbnRzL0luaXRpYWxpemVBcHAgKi8gXFxcIi4uLy4uL2NvbXBvbmVudHMvSW5pdGlhbGl6ZUFwcC50c3hcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbXBvbmVudHNfQXBwX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9jb21wb25lbnRzL0FwcCAqLyBcXFwiLi4vLi4vY29tcG9uZW50cy9BcHAudHN4XFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jc3NfYXBwX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL2Nzcy9hcHAuc2NzcyAqLyBcXFwiLi4vLi4vY3NzL2FwcC5zY3NzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jc3NfYXBwX3Njc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19fd2VicGFja19yZXF1aXJlX18ubihfY3NzX2FwcF9zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY3NzX3N0eWxlc19zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9jc3Mvc3R5bGVzLnNjc3MgKi8gXFxcIi4uLy4uL2Nzcy9zdHlsZXMuc2Nzc1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY3NzX3N0eWxlc19zY3NzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19fZGVmYXVsdCA9IC8qI19fUFVSRV9fKi9fX3dlYnBhY2tfcmVxdWlyZV9fLm4oX2Nzc19zdHlsZXNfc2Nzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL2kxOG4gKi8gXFxcIi4uLy4uL2kxOG4udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vY29uc3RhbnRzICovIFxcXCIuLi8uLi9jb25zdGFudHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL2VsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2RhdGFfcmVzdG9yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL2RhdGEvcmVzdG9yZSAqLyBcXFwiLi4vLi4vZGF0YS9yZXN0b3JlLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlc191dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL3BhY2thZ2VzL3V0aWxzICovIFxcXCIuLi91dGlscy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vZWxlbWVudC90eXBlQ2hlY2tzICovIFxcXCIuLi8uLi9lbGVtZW50L3R5cGVDaGVja3MudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfbXV0YXRlRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL2VsZW1lbnQvbXV0YXRlRWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9tdXRhdGVFbGVtZW50LnRzXFxcIik7XFxudmFyIF9fcmVzdCA9ICh1bmRlZmluZWQgJiYgdW5kZWZpbmVkLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcXG4gICAgdmFyIHQgPSB7fTtcXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXFxuICAgICAgICB0W3BdID0gc1twXTtcXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXFxcImZ1bmN0aW9uXFxcIilcXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXFxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xcbiAgICAgICAgfVxcbiAgICByZXR1cm4gdDtcXG59O1xcblxcblxcblxcblxcblxcblxcblxcblxcblxcbmNvbnN0IEV4Y2FsaWRyYXcgPSAocHJvcHMpID0+IHtcXG4gICAgdmFyIF9hLCBfYiwgX2M7XFxuICAgIGNvbnN0IHsgb25DaGFuZ2UsIGluaXRpYWxEYXRhLCBleGNhbGlkcmF3UmVmLCBvbkNvbGxhYkJ1dHRvbkNsaWNrLCBpc0NvbGxhYm9yYXRpbmcgPSBmYWxzZSwgb25Qb2ludGVyVXBkYXRlLCByZW5kZXJUb3BSaWdodFVJLCByZW5kZXJGb290ZXIsIGxhbmdDb2RlID0gX2kxOG5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5kZWZhdWx0TGFuZy5jb2RlLCB2aWV3TW9kZUVuYWJsZWQsIHplbk1vZGVFbmFibGVkLCBncmlkTW9kZUVuYWJsZWQsIGxpYnJhcnlSZXR1cm5VcmwsIHRoZW1lLCBuYW1lLCByZW5kZXJDdXN0b21TdGF0cywgb25QYXN0ZSwgZGV0ZWN0U2Nyb2xsID0gdHJ1ZSwgaGFuZGxlS2V5Ym9hcmRHbG9iYWxseSA9IGZhbHNlLCBvbkxpYnJhcnlDaGFuZ2UsIGF1dG9Gb2N1cyA9IGZhbHNlLCBnZW5lcmF0ZUlkRm9yRmlsZSwgb25MaW5rT3BlbiwgfSA9IHByb3BzO1xcbiAgICBjb25zdCBjYW52YXNBY3Rpb25zID0gKF9hID0gcHJvcHMuVUlPcHRpb25zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FudmFzQWN0aW9ucztcXG4gICAgY29uc3QgVUlPcHRpb25zID0ge1xcbiAgICAgICAgY2FudmFzQWN0aW9uczogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uREVGQVVMVF9VSV9PUFRJT05TLmNhbnZhc0FjdGlvbnMpLCBjYW52YXNBY3Rpb25zKSxcXG4gICAgfTtcXG4gICAgaWYgKGNhbnZhc0FjdGlvbnMgPT09IG51bGwgfHwgY2FudmFzQWN0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2FudmFzQWN0aW9ucy5leHBvcnQpIHtcXG4gICAgICAgIFVJT3B0aW9ucy5jYW52YXNBY3Rpb25zLmV4cG9ydC5zYXZlRmlsZVRvRGlzayA9XFxuICAgICAgICAgICAgKF9jID0gKF9iID0gY2FudmFzQWN0aW9ucy5leHBvcnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5zYXZlRmlsZVRvRGlzaykgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLkRFRkFVTFRfVUlfT1BUSU9OUy5jYW52YXNBY3Rpb25zW1xcXCJleHBvcnRcXFwiXS5zYXZlRmlsZVRvRGlzaztcXG4gICAgfVxcbiAgICAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVzZUVmZmVjdCkoKCkgPT4ge1xcbiAgICAgICAgLy8gQmxvY2sgcGluY2gtem9vbWluZyBvbiBpT1Mgb3V0c2lkZSBvZiB0aGUgY29udGVudCBhcmVhXFxuICAgICAgICBjb25zdCBoYW5kbGVUb3VjaE1vdmUgPSAoZXZlbnQpID0+IHtcXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXFxuICAgICAgICAgICAgaWYgKHR5cGVvZiBldmVudC5zY2FsZSA9PT0gXFxcIm51bWJlclxcXCIgJiYgZXZlbnQuc2NhbGUgIT09IDEpIHtcXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9O1xcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcXFwidG91Y2htb3ZlXFxcIiwgaGFuZGxlVG91Y2hNb3ZlLCB7XFxuICAgICAgICAgICAgcGFzc2l2ZTogZmFsc2UsXFxuICAgICAgICB9KTtcXG4gICAgICAgIHJldHVybiAoKSA9PiB7XFxuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcXFwidG91Y2htb3ZlXFxcIiwgaGFuZGxlVG91Y2hNb3ZlKTtcXG4gICAgICAgIH07XFxuICAgIH0sIFtdKTtcXG4gICAgcmV0dXJuICgoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoX2NvbXBvbmVudHNfSW5pdGlhbGl6ZUFwcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkluaXRpYWxpemVBcHAsIE9iamVjdC5hc3NpZ24oeyBsYW5nQ29kZTogbGFuZ0NvZGUgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKF9jb21wb25lbnRzX0FwcF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fW1xcXCJkZWZhdWx0XFxcIl0sIHsgb25DaGFuZ2U6IG9uQ2hhbmdlLCBpbml0aWFsRGF0YTogaW5pdGlhbERhdGEsIGV4Y2FsaWRyYXdSZWY6IGV4Y2FsaWRyYXdSZWYsIG9uQ29sbGFiQnV0dG9uQ2xpY2s6IG9uQ29sbGFiQnV0dG9uQ2xpY2ssIGlzQ29sbGFib3JhdGluZzogaXNDb2xsYWJvcmF0aW5nLCBvblBvaW50ZXJVcGRhdGU6IG9uUG9pbnRlclVwZGF0ZSwgcmVuZGVyVG9wUmlnaHRVSTogcmVuZGVyVG9wUmlnaHRVSSwgcmVuZGVyRm9vdGVyOiByZW5kZXJGb290ZXIsIGxhbmdDb2RlOiBsYW5nQ29kZSwgdmlld01vZGVFbmFibGVkOiB2aWV3TW9kZUVuYWJsZWQsIHplbk1vZGVFbmFibGVkOiB6ZW5Nb2RlRW5hYmxlZCwgZ3JpZE1vZGVFbmFibGVkOiBncmlkTW9kZUVuYWJsZWQsIGxpYnJhcnlSZXR1cm5Vcmw6IGxpYnJhcnlSZXR1cm5VcmwsIHRoZW1lOiB0aGVtZSwgbmFtZTogbmFtZSwgcmVuZGVyQ3VzdG9tU3RhdHM6IHJlbmRlckN1c3RvbVN0YXRzLCBVSU9wdGlvbnM6IFVJT3B0aW9ucywgb25QYXN0ZTogb25QYXN0ZSwgZGV0ZWN0U2Nyb2xsOiBkZXRlY3RTY3JvbGwsIGhhbmRsZUtleWJvYXJkR2xvYmFsbHk6IGhhbmRsZUtleWJvYXJkR2xvYmFsbHksIG9uTGlicmFyeUNoYW5nZTogb25MaWJyYXJ5Q2hhbmdlLCBhdXRvRm9jdXM6IGF1dG9Gb2N1cywgZ2VuZXJhdGVJZEZvckZpbGU6IGdlbmVyYXRlSWRGb3JGaWxlLCBvbkxpbmtPcGVuOiBvbkxpbmtPcGVuIH0sIHZvaWQgMCkgfSksIHZvaWQgMCkpO1xcbn07XFxuY29uc3QgYXJlRXF1YWwgPSAocHJldlByb3BzLCBuZXh0UHJvcHMpID0+IHtcXG4gICAgY29uc3QgeyBpbml0aWFsRGF0YTogcHJldkluaXRpYWxEYXRhLCBVSU9wdGlvbnM6IHByZXZVSU9wdGlvbnMgPSB7fSB9ID0gcHJldlByb3BzLCBwcmV2ID0gX19yZXN0KHByZXZQcm9wcywgW1xcXCJpbml0aWFsRGF0YVxcXCIsIFxcXCJVSU9wdGlvbnNcXFwiXSk7XFxuICAgIGNvbnN0IHsgaW5pdGlhbERhdGE6IG5leHRJbml0aWFsRGF0YSwgVUlPcHRpb25zOiBuZXh0VUlPcHRpb25zID0ge30gfSA9IG5leHRQcm9wcywgbmV4dCA9IF9fcmVzdChuZXh0UHJvcHMsIFtcXFwiaW5pdGlhbERhdGFcXFwiLCBcXFwiVUlPcHRpb25zXFxcIl0pO1xcbiAgICAvLyBjb21wYXJpbmcgVUlPcHRpb25zXFxuICAgIGNvbnN0IHByZXZVSU9wdGlvbnNLZXlzID0gT2JqZWN0LmtleXMocHJldlVJT3B0aW9ucyk7XFxuICAgIGNvbnN0IG5leHRVSU9wdGlvbnNLZXlzID0gT2JqZWN0LmtleXMobmV4dFVJT3B0aW9ucyk7XFxuICAgIGlmIChwcmV2VUlPcHRpb25zS2V5cy5sZW5ndGggIT09IG5leHRVSU9wdGlvbnNLZXlzLmxlbmd0aCkge1xcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICB9XFxuICAgIGNvbnN0IGlzVUlPcHRpb25zU2FtZSA9IHByZXZVSU9wdGlvbnNLZXlzLmV2ZXJ5KChrZXkpID0+IHtcXG4gICAgICAgIGlmIChrZXkgPT09IFxcXCJjYW52YXNBY3Rpb25zXFxcIikge1xcbiAgICAgICAgICAgIGNvbnN0IGNhbnZhc09wdGlvbktleXMgPSBPYmplY3Qua2V5cyhwcmV2VUlPcHRpb25zLmNhbnZhc0FjdGlvbnMpO1xcbiAgICAgICAgICAgIGNhbnZhc09wdGlvbktleXMuZXZlcnkoKGtleSkgPT4ge1xcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XFxuICAgICAgICAgICAgICAgIGlmIChrZXkgPT09IFxcXCJleHBvcnRcXFwiICYmXFxuICAgICAgICAgICAgICAgICAgICAoKF9hID0gcHJldlVJT3B0aW9ucyA9PT0gbnVsbCB8fCBwcmV2VUlPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcmV2VUlPcHRpb25zLmNhbnZhc0FjdGlvbnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5leHBvcnQpICYmXFxuICAgICAgICAgICAgICAgICAgICAoKF9iID0gbmV4dFVJT3B0aW9ucyA9PT0gbnVsbCB8fCBuZXh0VUlPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuZXh0VUlPcHRpb25zLmNhbnZhc0FjdGlvbnMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5leHBvcnQpKSB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHByZXZVSU9wdGlvbnMuY2FudmFzQWN0aW9ucy5leHBvcnQuc2F2ZUZpbGVUb0Rpc2sgPT09XFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFVJT3B0aW9ucy5jYW52YXNBY3Rpb25zLmV4cG9ydC5zYXZlRmlsZVRvRGlzayk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgcmV0dXJuICgoKF9jID0gcHJldlVJT3B0aW9ucyA9PT0gbnVsbCB8fCBwcmV2VUlPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcmV2VUlPcHRpb25zLmNhbnZhc0FjdGlvbnMpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfY1trZXldKSA9PT1cXG4gICAgICAgICAgICAgICAgICAgICgoX2QgPSBuZXh0VUlPcHRpb25zID09PSBudWxsIHx8IG5leHRVSU9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5leHRVSU9wdGlvbnMuY2FudmFzQWN0aW9ucykgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kW2tleV0pKTtcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiB0cnVlO1xcbiAgICB9KTtcXG4gICAgY29uc3QgcHJldktleXMgPSBPYmplY3Qua2V5cyhwcmV2UHJvcHMpO1xcbiAgICBjb25zdCBuZXh0S2V5cyA9IE9iamVjdC5rZXlzKG5leHRQcm9wcyk7XFxuICAgIHJldHVybiAoaXNVSU9wdGlvbnNTYW1lICYmXFxuICAgICAgICBwcmV2S2V5cy5sZW5ndGggPT09IG5leHRLZXlzLmxlbmd0aCAmJlxcbiAgICAgICAgcHJldktleXMuZXZlcnkoKGtleSkgPT4gcHJldltrZXldID09PSBuZXh0W2tleV0pKTtcXG59O1xcbmNvbnN0IGZvcndhcmRlZFJlZkNvbXAgPSAoMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmZvcndhcmRSZWYpKChwcm9wcywgcmVmKSA9PiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoRXhjYWxpZHJhdywgT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMsIHsgZXhjYWxpZHJhd1JlZjogcmVmIH0pLCB2b2lkIDApKTtcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLm1lbW8oZm9yd2FyZGVkUmVmQ29tcCwgYXJlRXF1YWwpKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTlwYm1SbGVDNTBjM2d1YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMEZCUVhGRU8wRkJReTlDTzBGQlJYbERPMEZCUTNoQ08wRkJSVmc3UVVGRFJ6dEJRVWRWTzBGQlExazdRVUZGY2tRc1RVRkJUU3hWUVVGVkxFZEJRVWNzUTBGQlF5eExRVUZ6UWl4RlFVRkZMRVZCUVVVN08wbEJRelZETEUxQlFVMHNSVUZEU2l4UlFVRlJMRVZCUTFJc1YwRkJWeXhGUVVOWUxHRkJRV0VzUlVGRFlpeHRRa0ZCYlVJc1JVRkRia0lzWlVGQlpTeEhRVUZITEV0QlFVc3NSVUZEZGtJc1pVRkJaU3hGUVVObUxHZENRVUZuUWl4RlFVTm9RaXhaUVVGWkxFVkJRMW9zVVVGQlVTeEhRVUZITEcxRVFVRm5RaXhGUVVNelFpeGxRVUZsTEVWQlEyWXNZMEZCWXl4RlFVTmtMR1ZCUVdVc1JVRkRaaXhuUWtGQlowSXNSVUZEYUVJc1MwRkJTeXhGUVVOTUxFbEJRVWtzUlVGRFNpeHBRa0ZCYVVJc1JVRkRha0lzVDBGQlR5eEZRVU5RTEZsQlFWa3NSMEZCUnl4SlFVRkpMRVZCUTI1Q0xITkNRVUZ6UWl4SFFVRkhMRXRCUVVzc1JVRkRPVUlzWlVGQlpTeEZRVU5tTEZOQlFWTXNSMEZCUnl4TFFVRkxMRVZCUTJwQ0xHbENRVUZwUWl4RlFVTnFRaXhWUVVGVkxFZEJRMWdzUjBGQlJ5eExRVUZMTEVOQlFVTTdTVUZGVml4TlFVRk5MR0ZCUVdFc1IwRkJSeXhYUVVGTExFTkJRVU1zVTBGQlV5d3dRMEZCUlN4aFFVRmhMRU5CUVVNN1NVRkZja1FzVFVGQlRTeFRRVUZUTEVkQlFUQkNPMUZCUTNaRExHRkJRV0VzYTBOQlExSXNkMFZCUVdkRExFZEJRMmhETEdGQlFXRXNRMEZEYWtJN1MwRkRSaXhEUVVGRE8wbEJSVVlzU1VGQlNTeGhRVUZoTEdGQlFXSXNZVUZCWVN4MVFrRkJZaXhoUVVGaExFTkJRVVVzVFVGQlRTeEZRVUZGTzFGQlEzcENMRk5CUVZNc1EwRkJReXhoUVVGaExFTkJRVU1zVFVGQlRTeERRVUZETEdOQlFXTTdXVUZETTBNc2VVSkJRV0VzUTBGQlF5eE5RVUZOTERCRFFVRkZMR05CUVdNc2JVTkJRM0JETEdsSFFVRnpSQ3hEUVVGRE8wdEJRekZFTzBsQlJVUXNaMFJCUVZNc1EwRkJReXhIUVVGSExFVkJRVVU3VVVGRFlpeDVSRUZCZVVRN1VVRkRla1FzVFVGQlRTeGxRVUZsTEVkQlFVY3NRMEZCUXl4TFFVRnBRaXhGUVVGRkxFVkJRVVU3V1VGRE5VTXNZVUZCWVR0WlFVTmlMRWxCUVVrc1QwRkJUeXhMUVVGTExFTkJRVU1zUzBGQlN5eExRVUZMTEZGQlFWRXNTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhMUVVGTExFTkJRVU1zUlVGQlJUdG5Ra0ZEZUVRc1MwRkJTeXhEUVVGRExHTkJRV01zUlVGQlJTeERRVUZETzJGQlEzaENPMUZCUTBnc1EwRkJReXhEUVVGRE8xRkJSVVlzVVVGQlVTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExGZEJRVmNzUlVGQlJTeGxRVUZsTEVWQlFVVTdXVUZEZEVRc1QwRkJUeXhGUVVGRkxFdEJRVXM3VTBGRFppeERRVUZETEVOQlFVTTdVVUZGU0N4UFFVRlBMRWRCUVVjc1JVRkJSVHRaUVVOV0xGRkJRVkVzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhYUVVGWExFVkJRVVVzWlVGQlpTeERRVUZETEVOQlFVTTdVVUZETjBRc1EwRkJReXhEUVVGRE8wbEJRMG9zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUlZBc1QwRkJUeXhEUVVOTUxIVkVRVUZETEc5RlFVRmhMR3RDUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEdkQ1FVTXZRaXgxUkVGQlF5eDFSRUZCUnl4SlFVTkdMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRMnhDTEZkQlFWY3NSVUZCUlN4WFFVRlhMRVZCUTNoQ0xHRkJRV0VzUlVGQlJTeGhRVUZoTEVWQlF6VkNMRzFDUVVGdFFpeEZRVUZGTEcxQ1FVRnRRaXhGUVVONFF5eGxRVUZsTEVWQlFVVXNaVUZCWlN4RlFVTm9ReXhsUVVGbExFVkJRVVVzWlVGQlpTeEZRVU5vUXl4blFrRkJaMElzUlVGQlJTeG5Ra0ZCWjBJc1JVRkRiRU1zV1VGQldTeEZRVUZGTEZsQlFWa3NSVUZETVVJc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGRGJFSXNaVUZCWlN4RlFVRkZMR1ZCUVdVc1JVRkRhRU1zWTBGQll5eEZRVUZGTEdOQlFXTXNSVUZET1VJc1pVRkJaU3hGUVVGRkxHVkJRV1VzUlVGRGFFTXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENMRVZCUTJ4RExFdEJRVXNzUlVGQlJTeExRVUZMTEVWQlExb3NTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkRWaXhwUWtGQmFVSXNSVUZCUlN4cFFrRkJhVUlzUlVGRGNFTXNVMEZCVXl4RlFVRkZMRk5CUVZNc1JVRkRjRUlzVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZEYUVJc1dVRkJXU3hGUVVGRkxGbEJRVmtzUlVGRE1VSXNjMEpCUVhOQ0xFVkJRVVVzYzBKQlFYTkNMRVZCUXpsRExHVkJRV1VzUlVGQlJTeGxRVUZsTEVWQlEyaERMRk5CUVZNc1JVRkJSU3hUUVVGVExFVkJRM0JDTEdsQ1FVRnBRaXhGUVVGRkxHbENRVUZwUWl4RlFVTndReXhWUVVGVkxFVkJRVVVzVlVGQlZTeFhRVU4wUWl4WlFVTlpMRU5CUTJwQ0xFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZKUml4TlFVRk5MRkZCUVZFc1IwRkJSeXhEUVVObUxGTkJRV2RETEVWQlEyaERMRk5CUVdkRExFVkJRMmhETEVWQlFVVTdTVUZEUml4TlFVRk5MRVZCUTBvc1YwRkJWeXhGUVVGRkxHVkJRV1VzUlVGRE5VSXNVMEZCVXl4RlFVRkZMR0ZCUVdFc1IwRkJSeXhGUVVGRkxFdEJSVE5DTEZOQlFWTXNSVUZFVWl4SlFVRkpMRlZCUTB3c1UwRkJVeXhGUVVwUUxEUkNRVWxNTEVOQlFWa3NRMEZCUXp0SlFVTmtMRTFCUVUwc1JVRkRTaXhYUVVGWExFVkJRVVVzWlVGQlpTeEZRVU0xUWl4VFFVRlRMRVZCUVVVc1lVRkJZU3hIUVVGSExFVkJRVVVzUzBGRk0wSXNVMEZCVXl4RlFVUlNMRWxCUVVrc1ZVRkRUQ3hUUVVGVExFVkJTbEFzTkVKQlNVd3NRMEZCV1N4RFFVRkRPMGxCUldRc2MwSkJRWE5DTzBsQlEzUkNMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJSUzlETEVOQlFVTTdTVUZEVEN4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVVdlF5eERRVUZETzBsQlJVd3NTVUZCU1N4cFFrRkJhVUlzUTBGQlF5eE5RVUZOTEV0QlFVc3NhVUpCUVdsQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTzFGQlEzcEVMRTlCUVU4c1MwRkJTeXhEUVVGRE8wdEJRMlE3U1VGRlJDeE5RVUZOTEdWQlFXVXNSMEZCUnl4cFFrRkJhVUlzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSVHRSUVVOMFJDeEpRVUZKTEVkQlFVY3NTMEZCU3l4bFFVRmxMRVZCUVVVN1dVRkRNMElzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVU5zUXl4aFFVRmhMRU5CUVVNc1lVRkJZeXhEUVVOcFF5eERRVUZETzFsQlEyaEZMR2RDUVVGblFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRk96dG5Ra0ZETjBJc1NVRkRSU3hIUVVGSExFdEJRVXNzVVVGQlVUdHhRa0ZEYUVJc2JVSkJRV0VzWVVGQllpeGhRVUZoTEhWQ1FVRmlMR0ZCUVdFc1EwRkJSU3hoUVVGaExEQkRRVUZGTEUxQlFVMDdjVUpCUTNCRExHMUNRVUZoTEdGQlFXSXNZVUZCWVN4MVFrRkJZaXhoUVVGaExFTkJRVVVzWVVGQllTd3dRMEZCUlN4TlFVRk5MRWRCUTNCRE8yOUNRVU5CTEU5QlFVOHNRMEZEVEN4aFFVRmhMRU5CUVVNc1lVRkJZU3hEUVVGRExFMUJRVTBzUTBGQlF5eGpRVUZqTzNkQ1FVTnFSQ3hoUVVGaExFTkJRVU1zWVVGQllTeERRVUZETEUxQlFVMHNRMEZCUXl4alFVRmpMRU5CUTJ4RUxFTkJRVU03YVVKQlEwZzdaMEpCUTBRc1QwRkJUeXhEUVVOTUxHOUNRVUZoTEdGQlFXSXNZVUZCWVN4MVFrRkJZaXhoUVVGaExFTkJRVVVzWVVGQllTd3dRMEZCUnl4SFFVRkhMRU5CUVVNN2NVSkJRMjVETEcxQ1FVRmhMR0ZCUVdJc1lVRkJZU3gxUWtGQllpeGhRVUZoTEVOQlFVVXNZVUZCWVN3d1EwRkJSeXhIUVVGSExFTkJRVU1zUlVGRGNFTXNRMEZCUXp0WlFVTktMRU5CUVVNc1EwRkJReXhEUVVGRE8xTkJRMG83VVVGRFJDeFBRVUZQTEVsQlFVa3NRMEZCUXp0SlFVTmtMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSVWdzVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVEJDTEVOQlFVTTdTVUZEYWtVc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVRCQ0xFTkJRVU03U1VGRGFrVXNUMEZCVHl4RFFVTk1MR1ZCUVdVN1VVRkRaaXhSUVVGUkxFTkJRVU1zVFVGQlRTeExRVUZMTEZGQlFWRXNRMEZCUXl4TlFVRk5PMUZCUTI1RExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGRGFrUXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzWjBKQlFXZENMRWRCUVVjc2FVUkJRVlVzUTBGSGFrTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eDFSRUZCUXl4VlFVRlZMRzlDUVVGTExFdEJRVXNzU1VGQlJTeGhRVUZoTEVWQlFVVXNSMEZCUnl4WlFVRkpMRU5CUVVNc1EwRkJRenRCUVVOcVJTeHBSVUZCWlN4cFJFRkJWU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMRkZCUVZFc1EwRkJReXhGUVVGRE8wRkJTeTlDTzBGQlF6WkNPMEZCUXpKQ08wRkJVMnBFTzBGQlF6WkNPMEZCUlU0N1FVRk5hRUlpTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTlwYm1SbGVDNTBjM2cvWm1VeFlpSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdVbVZoWTNRc0lIc2dkWE5sUldabVpXTjBMQ0JtYjNKM1lYSmtVbVZtSUgwZ1puSnZiU0JjSW5KbFlXTjBYQ0k3WEc1cGJYQnZjblFnWENJdUwzQjFZbXhwWTFCaGRHaGNJanRjYmx4dWFXMXdiM0owSUhzZ1NXNXBkR2xoYkdsNlpVRndjQ0I5SUdaeWIyMGdYQ0l1TGk4dUxpOWpiMjF3YjI1bGJuUnpMMGx1YVhScFlXeHBlbVZCY0hCY0lqdGNibWx0Y0c5eWRDQkJjSEFnWm5KdmJTQmNJaTR1THk0dUwyTnZiWEJ2Ym1WdWRITXZRWEJ3WENJN1hHNWNibWx0Y0c5eWRDQmNJaTR1THk0dUwyTnpjeTloY0hBdWMyTnpjMXdpTzF4dWFXMXdiM0owSUZ3aUxpNHZMaTR2WTNOekwzTjBlV3hsY3k1elkzTnpYQ0k3WEc1Y2JtbHRjRzl5ZENCN0lFRndjRkJ5YjNCekxDQkZlR05oYkdsa2NtRjNRVkJKVW1WbVZtRnNkV1VzSUVWNFkyRnNhV1J5WVhkUWNtOXdjeUI5SUdaeWIyMGdYQ0l1TGk4dUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2daR1ZtWVhWc2RFeGhibWNnZlNCbWNtOXRJRndpTGk0dkxpNHZhVEU0Ymx3aU8xeHVhVzF3YjNKMElIc2dSRVZHUVZWTVZGOVZTVjlQVUZSSlQwNVRJSDBnWm5KdmJTQmNJaTR1THk0dUwyTnZibk4wWVc1MGMxd2lPMXh1WEc1amIyNXpkQ0JGZUdOaGJHbGtjbUYzSUQwZ0tIQnliM0J6T2lCRmVHTmhiR2xrY21GM1VISnZjSE1wSUQwK0lIdGNiaUFnWTI5dWMzUWdlMXh1SUNBZ0lHOXVRMmhoYm1kbExGeHVJQ0FnSUdsdWFYUnBZV3hFWVhSaExGeHVJQ0FnSUdWNFkyRnNhV1J5WVhkU1pXWXNYRzRnSUNBZ2IyNURiMnhzWVdKQ2RYUjBiMjVEYkdsamF5eGNiaUFnSUNCcGMwTnZiR3hoWW05eVlYUnBibWNnUFNCbVlXeHpaU3hjYmlBZ0lDQnZibEJ2YVc1MFpYSlZjR1JoZEdVc1hHNGdJQ0FnY21WdVpHVnlWRzl3VW1sbmFIUlZTU3hjYmlBZ0lDQnlaVzVrWlhKR2IyOTBaWElzWEc0Z0lDQWdiR0Z1WjBOdlpHVWdQU0JrWldaaGRXeDBUR0Z1Wnk1amIyUmxMRnh1SUNBZ0lIWnBaWGROYjJSbFJXNWhZbXhsWkN4Y2JpQWdJQ0I2Wlc1TmIyUmxSVzVoWW14bFpDeGNiaUFnSUNCbmNtbGtUVzlrWlVWdVlXSnNaV1FzWEc0Z0lDQWdiR2xpY21GeWVWSmxkSFZ5YmxWeWJDeGNiaUFnSUNCMGFHVnRaU3hjYmlBZ0lDQnVZVzFsTEZ4dUlDQWdJSEpsYm1SbGNrTjFjM1J2YlZOMFlYUnpMRnh1SUNBZ0lHOXVVR0Z6ZEdVc1hHNGdJQ0FnWkdWMFpXTjBVMk55YjJ4c0lEMGdkSEoxWlN4Y2JpQWdJQ0JvWVc1a2JHVkxaWGxpYjJGeVpFZHNiMkpoYkd4NUlEMGdabUZzYzJVc1hHNGdJQ0FnYjI1TWFXSnlZWEo1UTJoaGJtZGxMRnh1SUNBZ0lHRjFkRzlHYjJOMWN5QTlJR1poYkhObExGeHVJQ0FnSUdkbGJtVnlZWFJsU1dSR2IzSkdhV3hsTEZ4dUlDQWdJRzl1VEdsdWEwOXdaVzRzWEc0Z0lIMGdQU0J3Y205d2N6dGNibHh1SUNCamIyNXpkQ0JqWVc1MllYTkJZM1JwYjI1eklEMGdjSEp2Y0hNdVZVbFBjSFJwYjI1elB5NWpZVzUyWVhOQlkzUnBiMjV6TzF4dVhHNGdJR052Ym5OMElGVkpUM0IwYVc5dWN6b2dRWEJ3VUhKdmNITmJYQ0pWU1U5d2RHbHZibk5jSWwwZ1BTQjdYRzRnSUNBZ1kyRnVkbUZ6UVdOMGFXOXVjem9nZTF4dUlDQWdJQ0FnTGk0dVJFVkdRVlZNVkY5VlNWOVBVRlJKVDA1VExtTmhiblpoYzBGamRHbHZibk1zWEc0Z0lDQWdJQ0F1TGk1allXNTJZWE5CWTNScGIyNXpMRnh1SUNBZ0lIMHNYRzRnSUgwN1hHNWNiaUFnYVdZZ0tHTmhiblpoYzBGamRHbHZibk0vTG1WNGNHOXlkQ2tnZTF4dUlDQWdJRlZKVDNCMGFXOXVjeTVqWVc1MllYTkJZM1JwYjI1ekxtVjRjRzl5ZEM1ellYWmxSbWxzWlZSdlJHbHpheUE5WEc0Z0lDQWdJQ0JqWVc1MllYTkJZM1JwYjI1ekxtVjRjRzl5ZEQ4dWMyRjJaVVpwYkdWVWIwUnBjMnNnUHo5Y2JpQWdJQ0FnSUVSRlJrRlZURlJmVlVsZlQxQlVTVTlPVXk1allXNTJZWE5CWTNScGIyNXpMbVY0Y0c5eWRDNXpZWFpsUm1sc1pWUnZSR2x6YXp0Y2JpQWdmVnh1WEc0Z0lIVnpaVVZtWm1WamRDZ29LU0E5UGlCN1hHNGdJQ0FnTHk4Z1FteHZZMnNnY0dsdVkyZ3RlbTl2YldsdVp5QnZiaUJwVDFNZ2IzVjBjMmxrWlNCdlppQjBhR1VnWTI5dWRHVnVkQ0JoY21WaFhHNGdJQ0FnWTI5dWMzUWdhR0Z1Wkd4bFZHOTFZMmhOYjNabElEMGdLR1YyWlc1ME9pQlViM1ZqYUVWMlpXNTBLU0E5UGlCN1hHNGdJQ0FnSUNBdkx5QkFkSE10YVdkdWIzSmxYRzRnSUNBZ0lDQnBaaUFvZEhsd1pXOW1JR1YyWlc1MExuTmpZV3hsSUQwOVBTQmNJbTUxYldKbGNsd2lJQ1ltSUdWMlpXNTBMbk5qWVd4bElDRTlQU0F4S1NCN1hHNGdJQ0FnSUNBZ0lHVjJaVzUwTG5CeVpYWmxiblJFWldaaGRXeDBLQ2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVHRjYmx4dUlDQWdJR1J2WTNWdFpXNTBMbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSW9YQ0owYjNWamFHMXZkbVZjSWl3Z2FHRnVaR3hsVkc5MVkyaE5iM1psTENCN1hHNGdJQ0FnSUNCd1lYTnphWFpsT2lCbVlXeHpaU3hjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQW9LU0E5UGlCN1hHNGdJQ0FnSUNCa2IyTjFiV1Z1ZEM1eVpXMXZkbVZGZG1WdWRFeHBjM1JsYm1WeUtGd2lkRzkxWTJodGIzWmxYQ0lzSUdoaGJtUnNaVlJ2ZFdOb1RXOTJaU2s3WEc0Z0lDQWdmVHRjYmlBZ2ZTd2dXMTBwTzF4dVhHNGdJSEpsZEhWeWJpQW9YRzRnSUNBZ1BFbHVhWFJwWVd4cGVtVkJjSEFnYkdGdVowTnZaR1U5ZTJ4aGJtZERiMlJsZlQ1Y2JpQWdJQ0FnSUR4QmNIQmNiaUFnSUNBZ0lDQWdiMjVEYUdGdVoyVTllMjl1UTJoaGJtZGxmVnh1SUNBZ0lDQWdJQ0JwYm1sMGFXRnNSR0YwWVQxN2FXNXBkR2xoYkVSaGRHRjlYRzRnSUNBZ0lDQWdJR1Y0WTJGc2FXUnlZWGRTWldZOWUyVjRZMkZzYVdSeVlYZFNaV1o5WEc0Z0lDQWdJQ0FnSUc5dVEyOXNiR0ZpUW5WMGRHOXVRMnhwWTJzOWUyOXVRMjlzYkdGaVFuVjBkRzl1UTJ4cFkydDlYRzRnSUNBZ0lDQWdJR2x6UTI5c2JHRmliM0poZEdsdVp6MTdhWE5EYjJ4c1lXSnZjbUYwYVc1bmZWeHVJQ0FnSUNBZ0lDQnZibEJ2YVc1MFpYSlZjR1JoZEdVOWUyOXVVRzlwYm5SbGNsVndaR0YwWlgxY2JpQWdJQ0FnSUNBZ2NtVnVaR1Z5Vkc5d1VtbG5hSFJWU1QxN2NtVnVaR1Z5Vkc5d1VtbG5hSFJWU1gxY2JpQWdJQ0FnSUNBZ2NtVnVaR1Z5Um05dmRHVnlQWHR5Wlc1a1pYSkdiMjkwWlhKOVhHNGdJQ0FnSUNBZ0lHeGhibWREYjJSbFBYdHNZVzVuUTI5a1pYMWNiaUFnSUNBZ0lDQWdkbWxsZDAxdlpHVkZibUZpYkdWa1BYdDJhV1YzVFc5a1pVVnVZV0pzWldSOVhHNGdJQ0FnSUNBZ0lIcGxiazF2WkdWRmJtRmliR1ZrUFh0NlpXNU5iMlJsUlc1aFlteGxaSDFjYmlBZ0lDQWdJQ0FnWjNKcFpFMXZaR1ZGYm1GaWJHVmtQWHRuY21sa1RXOWtaVVZ1WVdKc1pXUjlYRzRnSUNBZ0lDQWdJR3hwWW5KaGNubFNaWFIxY201VmNtdzllMnhwWW5KaGNubFNaWFIxY201VmNteDlYRzRnSUNBZ0lDQWdJSFJvWlcxbFBYdDBhR1Z0WlgxY2JpQWdJQ0FnSUNBZ2JtRnRaVDE3Ym1GdFpYMWNiaUFnSUNBZ0lDQWdjbVZ1WkdWeVEzVnpkRzl0VTNSaGRITTllM0psYm1SbGNrTjFjM1J2YlZOMFlYUnpmVnh1SUNBZ0lDQWdJQ0JWU1U5d2RHbHZibk05ZTFWSlQzQjBhVzl1YzMxY2JpQWdJQ0FnSUNBZ2IyNVFZWE4wWlQxN2IyNVFZWE4wWlgxY2JpQWdJQ0FnSUNBZ1pHVjBaV04wVTJOeWIyeHNQWHRrWlhSbFkzUlRZM0p2Ykd4OVhHNGdJQ0FnSUNBZ0lHaGhibVJzWlV0bGVXSnZZWEprUjJ4dlltRnNiSGs5ZTJoaGJtUnNaVXRsZVdKdllYSmtSMnh2WW1Gc2JIbDlYRzRnSUNBZ0lDQWdJRzl1VEdsaWNtRnllVU5vWVc1blpUMTdiMjVNYVdKeVlYSjVRMmhoYm1kbGZWeHVJQ0FnSUNBZ0lDQmhkWFJ2Um05amRYTTllMkYxZEc5R2IyTjFjMzFjYmlBZ0lDQWdJQ0FnWjJWdVpYSmhkR1ZKWkVadmNrWnBiR1U5ZTJkbGJtVnlZWFJsU1dSR2IzSkdhV3hsZlZ4dUlDQWdJQ0FnSUNCdmJreHBibXRQY0dWdVBYdHZia3hwYm10UGNHVnVmVnh1SUNBZ0lDQWdMejVjYmlBZ0lDQThMMGx1YVhScFlXeHBlbVZCY0hBK1hHNGdJQ2s3WEc1OU8xeHVYRzUwZVhCbElGQjFZbXhwWTBWNFkyRnNhV1J5WVhkUWNtOXdjeUE5SUU5dGFYUThSWGhqWVd4cFpISmhkMUJ5YjNCekxDQmNJbVp2Y25kaGNtUmxaRkpsWmx3aVBqdGNibHh1WTI5dWMzUWdZWEpsUlhGMVlXd2dQU0FvWEc0Z0lIQnlaWFpRY205d2N6b2dVSFZpYkdsalJYaGpZV3hwWkhKaGQxQnliM0J6TEZ4dUlDQnVaWGgwVUhKdmNITTZJRkIxWW14cFkwVjRZMkZzYVdSeVlYZFFjbTl3Y3l4Y2Jpa2dQVDRnZTF4dUlDQmpiMjV6ZENCN1hHNGdJQ0FnYVc1cGRHbGhiRVJoZEdFNklIQnlaWFpKYm1sMGFXRnNSR0YwWVN4Y2JpQWdJQ0JWU1U5d2RHbHZibk02SUhCeVpYWlZTVTl3ZEdsdmJuTWdQU0I3ZlN4Y2JpQWdJQ0F1TGk1d2NtVjJYRzRnSUgwZ1BTQndjbVYyVUhKdmNITTdYRzRnSUdOdmJuTjBJSHRjYmlBZ0lDQnBibWwwYVdGc1JHRjBZVG9nYm1WNGRFbHVhWFJwWVd4RVlYUmhMRnh1SUNBZ0lGVkpUM0IwYVc5dWN6b2dibVY0ZEZWSlQzQjBhVzl1Y3lBOUlIdDlMRnh1SUNBZ0lDNHVMbTVsZUhSY2JpQWdmU0E5SUc1bGVIUlFjbTl3Y3p0Y2JseHVJQ0F2THlCamIyMXdZWEpwYm1jZ1ZVbFBjSFJwYjI1elhHNGdJR052Ym5OMElIQnlaWFpWU1U5d2RHbHZibk5MWlhseklEMGdUMkpxWldOMExtdGxlWE1vY0hKbGRsVkpUM0IwYVc5dWN5a2dZWE1nS0d0bGVXOW1JRkJoY25ScFlXdzhYRzRnSUNBZ2RIbHdaVzltSUVSRlJrRlZURlJmVlVsZlQxQlVTVTlPVTF4dUlDQStLVnRkTzF4dUlDQmpiMjV6ZENCdVpYaDBWVWxQY0hScGIyNXpTMlY1Y3lBOUlFOWlhbVZqZEM1clpYbHpLRzVsZUhSVlNVOXdkR2x2Ym5NcElHRnpJQ2hyWlhsdlppQlFZWEowYVdGc1BGeHVJQ0FnSUhSNWNHVnZaaUJFUlVaQlZVeFVYMVZKWDA5UVZFbFBUbE5jYmlBZ1BpbGJYVHRjYmx4dUlDQnBaaUFvY0hKbGRsVkpUM0IwYVc5dWMwdGxlWE11YkdWdVozUm9JQ0U5UFNCdVpYaDBWVWxQY0hScGIyNXpTMlY1Y3k1c1pXNW5kR2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJSDFjYmx4dUlDQmpiMjV6ZENCcGMxVkpUM0IwYVc5dWMxTmhiV1VnUFNCd2NtVjJWVWxQY0hScGIyNXpTMlY1Y3k1bGRtVnllU2dvYTJWNUtTQTlQaUI3WEc0Z0lDQWdhV1lnS0d0bGVTQTlQVDBnWENKallXNTJZWE5CWTNScGIyNXpYQ0lwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR05oYm5aaGMwOXdkR2x2Ymt0bGVYTWdQU0JQWW1wbFkzUXVhMlY1Y3loY2JpQWdJQ0FnSUNBZ2NISmxkbFZKVDNCMGFXOXVjeTVqWVc1MllYTkJZM1JwYjI1eklTeGNiaUFnSUNBZ0lDa2dZWE1nS0d0bGVXOW1JRkJoY25ScFlXdzhkSGx3Wlc5bUlFUkZSa0ZWVEZSZlZVbGZUMUJVU1U5T1V5NWpZVzUyWVhOQlkzUnBiMjV6UGlsYlhUdGNiaUFnSUNBZ0lHTmhiblpoYzA5d2RHbHZia3RsZVhNdVpYWmxjbmtvS0d0bGVTa2dQVDRnZTF4dUlDQWdJQ0FnSUNCcFppQW9YRzRnSUNBZ0lDQWdJQ0FnYTJWNUlEMDlQU0JjSW1WNGNHOXlkRndpSUNZbVhHNGdJQ0FnSUNBZ0lDQWdjSEpsZGxWSlQzQjBhVzl1Y3o4dVkyRnVkbUZ6UVdOMGFXOXVjejh1Wlhod2IzSjBJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ2JtVjRkRlZKVDNCMGFXOXVjejh1WTJGdWRtRnpRV04wYVc5dWN6OHVaWGh3YjNKMFhHNGdJQ0FnSUNBZ0lDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUFvWEc0Z0lDQWdJQ0FnSUNBZ0lDQndjbVYyVlVsUGNIUnBiMjV6TG1OaGJuWmhjMEZqZEdsdmJuTXVaWGh3YjNKMExuTmhkbVZHYVd4bFZHOUVhWE5ySUQwOVBWeHVJQ0FnSUNBZ0lDQWdJQ0FnYm1WNGRGVkpUM0IwYVc5dWN5NWpZVzUyWVhOQlkzUnBiMjV6TG1WNGNHOXlkQzV6WVhabFJtbHNaVlJ2UkdsemExeHVJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FnSUNBZ0lDQndjbVYyVlVsUGNIUnBiMjV6UHk1allXNTJZWE5CWTNScGIyNXpQeTViYTJWNVhTQTlQVDFjYmlBZ0lDQWdJQ0FnSUNCdVpYaDBWVWxQY0hScGIyNXpQeTVqWVc1MllYTkJZM1JwYjI1elB5NWJhMlY1WFZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0I5S1R0Y2JseHVJQ0JqYjI1emRDQndjbVYyUzJWNWN5QTlJRTlpYW1WamRDNXJaWGx6S0hCeVpYWlFjbTl3Y3lrZ1lYTWdLR3RsZVc5bUlIUjVjR1Z2WmlCd2NtVjJLVnRkTzF4dUlDQmpiMjV6ZENCdVpYaDBTMlY1Y3lBOUlFOWlhbVZqZEM1clpYbHpLRzVsZUhSUWNtOXdjeWtnWVhNZ0tHdGxlVzltSUhSNWNHVnZaaUJ1WlhoMEtWdGRPMXh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJR2x6VlVsUGNIUnBiMjV6VTJGdFpTQW1KbHh1SUNBZ0lIQnlaWFpMWlhsekxteGxibWQwYUNBOVBUMGdibVY0ZEV0bGVYTXViR1Z1WjNSb0lDWW1YRzRnSUNBZ2NISmxka3RsZVhNdVpYWmxjbmtvS0d0bGVTa2dQVDRnY0hKbGRsdHJaWGxkSUQwOVBTQnVaWGgwVzJ0bGVWMHBYRzRnSUNrN1hHNTlPMXh1WEc1amIyNXpkQ0JtYjNKM1lYSmtaV1JTWldaRGIyMXdJRDBnWm05eWQyRnlaRkpsWmp4Y2JpQWdSWGhqWVd4cFpISmhkMEZRU1ZKbFpsWmhiSFZsTEZ4dUlDQlFkV0pzYVdORmVHTmhiR2xrY21GM1VISnZjSE5jYmo0b0tIQnliM0J6TENCeVpXWXBJRDArSUR4RmVHTmhiR2xrY21GM0lIc3VMaTV3Y205d2MzMGdaWGhqWVd4cFpISmhkMUpsWmoxN2NtVm1mU0F2UGlrN1hHNWxlSEJ2Y25RZ1pHVm1ZWFZzZENCU1pXRmpkQzV0WlcxdktHWnZjbmRoY21SbFpGSmxaa052YlhBc0lHRnlaVVZ4ZFdGc0tUdGNibVY0Y0c5eWRDQjdYRzRnSUdkbGRGTmpaVzVsVm1WeWMybHZiaXhjYmlBZ2FYTkpiblpwYzJsaWJIbFRiV0ZzYkVWc1pXMWxiblFzWEc0Z0lHZGxkRTV2YmtSbGJHVjBaV1JGYkdWdFpXNTBjeXhjYm4wZ1puSnZiU0JjSWk0dUx5NHVMMlZzWlcxbGJuUmNJanRjYm1WNGNHOXlkQ0I3SUdSbFptRjFiSFJNWVc1bkxDQnNZVzVuZFdGblpYTWdmU0JtY205dElGd2lMaTR2TGk0dmFURTRibHdpTzF4dVpYaHdiM0owSUhzZ2NtVnpkRzl5WlN3Z2NtVnpkRzl5WlVGd2NGTjBZWFJsTENCeVpYTjBiM0psUld4bGJXVnVkSE1nZlNCbWNtOXRJRndpTGk0dkxpNHZaR0YwWVM5eVpYTjBiM0psWENJN1hHNWxlSEJ2Y25RZ2UxeHVJQ0JsZUhCdmNuUlViME5oYm5aaGN5eGNiaUFnWlhod2IzSjBWRzlDYkc5aUxGeHVJQ0JsZUhCdmNuUlViMU4yWnl4Y2JpQWdjMlZ5YVdGc2FYcGxRWE5LVTA5T0xGeHVJQ0JzYjJGa1RHbGljbUZ5ZVVaeWIyMUNiRzlpTEZ4dUlDQnNiMkZrUm5KdmJVSnNiMklzWEc0Z0lHZGxkRVp5WldWRWNtRjNVM1puVUdGMGFDeGNibjBnWm5KdmJTQmNJaTR1THk0dUwzQmhZMnRoWjJWekwzVjBhV3h6WENJN1hHNWxlSEJ2Y25RZ2V5QnBjMHhwYm1WaGNrVnNaVzFsYm5RZ2ZTQm1jbTl0SUZ3aUxpNHZMaTR2Wld4bGJXVnVkQzkwZVhCbFEyaGxZMnR6WENJN1hHNWNibVY0Y0c5eWRDQjdJRVpQVGxSZlJrRk5TVXhaTENCVVNFVk5SU0I5SUdaeWIyMGdYQ0l1TGk4dUxpOWpiMjV6ZEdGdWRITmNJanRjYmx4dVpYaHdiM0owSUh0Y2JpQWdiWFYwWVhSbFJXeGxiV1Z1ZEN4Y2JpQWdibVYzUld4bGJXVnVkRmRwZEdnc1hHNGdJR0oxYlhCV1pYSnphVzl1TEZ4dWZTQm1jbTl0SUZ3aUxpNHZMaTR2Wld4bGJXVnVkQzl0ZFhSaGRHVkZiR1Z0Wlc1MFhDSTdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL2luZGV4LnRzeFxcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9wdWJsaWNQYXRoLmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL3B1YmxpY1BhdGguanMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL2NvbnN0YW50cyAqLyBcXFwiLi4vLi4vY29uc3RhbnRzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wYWNrYWdlX2pzb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vcGFja2FnZS5qc29uICovIFxcXCIuL3BhY2thZ2UuanNvblxcXCIpO1xcblxcblxcbmlmIChcXFwiZGV2ZWxvcG1lbnRcXFwiICE9PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRU5WLlRFU1QpIHtcXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cXG4gICAgLyogZ2xvYmFsIF9fd2VicGFja19wdWJsaWNfcGF0aF9fOndyaXRhYmxlICovXFxuICAgIF9fd2VicGFja19yZXF1aXJlX18ucCA9XFxuICAgICAgICB3aW5kb3cuRVhDQUxJRFJBV19BU1NFVF9QQVRIIHx8XFxuICAgICAgICAgICAgYGh0dHBzOi8vdW5wa2cuY29tLyR7X3BhY2thZ2VfanNvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLm5hbWV9QCR7X3BhY2thZ2VfanNvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnZlcnNpb259L2Rpc3QvYDtcXG59XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk5d2RXSnNhV05RWVhSb0xtcHpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenRCUVVGelF6dEJRVU5NTzBGQlEycERMRWxCUVVrc1lVRkJiMElzUzBGQlN5eG5SRUZCVVN4RlFVRkZPMGxCUTNKRExHOUNRVUZ2UWp0SlFVTndRaXcyUTBGQk5rTTdTVUZETjBNc2NVSkJRWFZDTzFGQlEzSkNMRTFCUVUwc1EwRkJReXh4UWtGQmNVSTdXVUZETlVJc2NVSkJRWEZDTEN0RFFVRlJMRWxCUVVrc2EwUkJRVmNzVVVGQlVTeERRVUZETzBOQlEzaEVJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHZjSFZpYkdsalVHRjBhQzVxY3o5aE9EZGtJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUVWT1ZpQjlJR1p5YjIwZ1hDSXVMaTh1TGk5amIyNXpkR0Z1ZEhOY0lqdGNibWx0Y0c5eWRDQndhMmNnWm5KdmJTQmNJaTR2Y0dGamEyRm5aUzVxYzI5dVhDSTdYRzVwWmlBb2NISnZZMlZ6Y3k1bGJuWXVUazlFUlY5RlRsWWdJVDA5SUVWT1ZpNVVSVk5VS1NCN1hHNGdJQzhxSUdWemJHbHVkQzFrYVhOaFlteGxJQ292WEc0Z0lDOHFJR2RzYjJKaGJDQmZYM2RsWW5CaFkydGZjSFZpYkdsalgzQmhkR2hmWHpwM2NtbDBZV0pzWlNBcUwxeHVJQ0JmWDNkbFluQmhZMnRmY0hWaWJHbGpYM0JoZEdoZlh5QTlYRzRnSUNBZ2QybHVaRzkzTGtWWVEwRk1TVVJTUVZkZlFWTlRSVlJmVUVGVVNDQjhmRnh1SUNBZ0lHQm9kSFJ3Y3pvdkwzVnVjR3RuTG1OdmJTOGtlM0JyWnk1dVlXMWxmVUFrZTNCclp5NTJaWEp6YVc5dWZTOWthWE4wTDJBN1hHNTlYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uL3B1YmxpY1BhdGguanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uL3V0aWxzLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uL3V0aWxzLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJleHBvcnRUb0NhbnZhc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGV4cG9ydFRvQ2FudmFzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJleHBvcnRUb0Jsb2JcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBleHBvcnRUb0Jsb2IpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImV4cG9ydFRvU3ZnXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZXhwb3J0VG9TdmcpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInNlcmlhbGl6ZUFzSlNPTlxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9kYXRhX2pzb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5zZXJpYWxpemVBc0pTT04pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImxvYWRGcm9tQmxvYlxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9kYXRhX2Jsb2JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5sb2FkRnJvbUJsb2IpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImxvYWRMaWJyYXJ5RnJvbUJsb2JcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfZGF0YV9ibG9iX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18ubG9hZExpYnJhcnlGcm9tQmxvYiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0RnJlZURyYXdTdmdQYXRoXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX3JlbmRlcmVyX3JlbmRlckVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5nZXRGcmVlRHJhd1N2Z1BhdGgpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2VuZV9leHBvcnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lL2V4cG9ydCAqLyBcXFwiLi4vLi4vc2NlbmUvZXhwb3J0LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hcHBTdGF0ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vYXBwU3RhdGUgKi8gXFxcIi4uLy4uL2FwcFN0YXRlLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9kYXRhX3Jlc3RvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2RhdGEvcmVzdG9yZSAqLyBcXFwiLi4vLi4vZGF0YS9yZXN0b3JlLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbnN0YW50cyAqLyBcXFwiLi4vLi4vY29uc3RhbnRzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9kYXRhX2pzb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2RhdGEvanNvbiAqLyBcXFwiLi4vLi4vZGF0YS9qc29uLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9kYXRhX2Jsb2JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2RhdGEvYmxvYiAqLyBcXFwiLi4vLi4vZGF0YS9ibG9iLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9yZW5kZXJlcl9yZW5kZXJFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9yZW5kZXJlci9yZW5kZXJFbGVtZW50ICovIFxcXCIuLi8uLi9yZW5kZXJlci9yZW5kZXJFbGVtZW50LnRzXFxcIik7XFxudmFyIF9fYXdhaXRlciA9ICh1bmRlZmluZWQgJiYgdW5kZWZpbmVkLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XFxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XFxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcXFwidGhyb3dcXFwiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XFxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xcbiAgICB9KTtcXG59O1xcblxcblxcblxcblxcblxcbmNvbnN0IGV4cG9ydFRvQ2FudmFzID0gKHsgZWxlbWVudHMsIGFwcFN0YXRlLCBmaWxlcywgbWF4V2lkdGhPckhlaWdodCwgZ2V0RGltZW5zaW9ucywgfSkgPT4ge1xcbiAgICBjb25zdCB7IGVsZW1lbnRzOiByZXN0b3JlZEVsZW1lbnRzLCBhcHBTdGF0ZTogcmVzdG9yZWRBcHBTdGF0ZSB9ID0gKDAsX2RhdGFfcmVzdG9yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnJlc3RvcmUpKHsgZWxlbWVudHMsIGFwcFN0YXRlIH0sIG51bGwsIG51bGwpO1xcbiAgICBjb25zdCB7IGV4cG9ydEJhY2tncm91bmQsIHZpZXdCYWNrZ3JvdW5kQ29sb3IgfSA9IHJlc3RvcmVkQXBwU3RhdGU7XFxuICAgIHJldHVybiAoMCxfc2NlbmVfZXhwb3J0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZXhwb3J0VG9DYW52YXMpKCgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKShyZXN0b3JlZEVsZW1lbnRzKSwgT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCByZXN0b3JlZEFwcFN0YXRlKSwgeyBvZmZzZXRUb3A6IDAsIG9mZnNldExlZnQ6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSksIGZpbGVzIHx8IHt9LCB7IGV4cG9ydEJhY2tncm91bmQsIHZpZXdCYWNrZ3JvdW5kQ29sb3IgfSwgKHdpZHRoLCBoZWlnaHQpID0+IHtcXG4gICAgICAgIHZhciBfYTtcXG4gICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXFxcImNhbnZhc1xcXCIpO1xcbiAgICAgICAgaWYgKG1heFdpZHRoT3JIZWlnaHQpIHtcXG4gICAgICAgICAgICBpZiAodHlwZW9mIGdldERpbWVuc2lvbnMgPT09IFxcXCJmdW5jdGlvblxcXCIpIHtcXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxcXCJgZ2V0RGltZW5zaW9ucygpYCBpcyBpZ25vcmVkIHdoZW4gYG1heFdpZHRoT3JIZWlnaHRgIGlzIHN1cHBsaWVkLlxcXCIpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjb25zdCBtYXggPSBNYXRoLm1heCh3aWR0aCwgaGVpZ2h0KTtcXG4gICAgICAgICAgICBjb25zdCBzY2FsZSA9IG1heFdpZHRoT3JIZWlnaHQgLyBtYXg7XFxuICAgICAgICAgICAgY2FudmFzLndpZHRoID0gd2lkdGggKiBzY2FsZTtcXG4gICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0ICogc2NhbGU7XFxuICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgY2FudmFzLFxcbiAgICAgICAgICAgICAgICBzY2FsZSxcXG4gICAgICAgICAgICB9O1xcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3QgcmV0ID0gKGdldERpbWVuc2lvbnMgPT09IG51bGwgfHwgZ2V0RGltZW5zaW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZ2V0RGltZW5zaW9ucyh3aWR0aCwgaGVpZ2h0KSkgfHwgeyB3aWR0aCwgaGVpZ2h0IH07XFxuICAgICAgICBjYW52YXMud2lkdGggPSByZXQud2lkdGg7XFxuICAgICAgICBjYW52YXMuaGVpZ2h0ID0gcmV0LmhlaWdodDtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgY2FudmFzLFxcbiAgICAgICAgICAgIHNjYWxlOiAoX2EgPSByZXQuc2NhbGUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDEsXFxuICAgICAgICB9O1xcbiAgICB9KTtcXG59O1xcbmNvbnN0IGV4cG9ydFRvQmxvYiA9IChvcHRzKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcXG4gICAgdmFyIF9hO1xcbiAgICBsZXQgeyBtaW1lVHlwZSA9IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5NSU1FX1RZUEVTLnBuZywgcXVhbGl0eSB9ID0gb3B0cztcXG4gICAgaWYgKG1pbWVUeXBlID09PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uTUlNRV9UWVBFUy5wbmcgJiYgdHlwZW9mIHF1YWxpdHkgPT09IFxcXCJudW1iZXJcXFwiKSB7XFxuICAgICAgICBjb25zb2xlLndhcm4oYFxcXCJxdWFsaXR5XFxcIiB3aWxsIGJlIGlnbm9yZWQgZm9yIFxcXCIke19jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5NSU1FX1RZUEVTLnBuZ31cXFwiIG1pbWVUeXBlYCk7XFxuICAgIH1cXG4gICAgLy8gdHlwbyBpbiBNSU1FIHR5cGUgKHNob3VsZCBiZSBcXFwianBlZ1xcXCIpXFxuICAgIGlmIChtaW1lVHlwZSA9PT0gXFxcImltYWdlL2pwZ1xcXCIpIHtcXG4gICAgICAgIG1pbWVUeXBlID0gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLk1JTUVfVFlQRVMuanBnO1xcbiAgICB9XFxuICAgIGlmIChtaW1lVHlwZSA9PT0gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLk1JTUVfVFlQRVMuanBnICYmICEoKF9hID0gb3B0cy5hcHBTdGF0ZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmV4cG9ydEJhY2tncm91bmQpKSB7XFxuICAgICAgICBjb25zb2xlLndhcm4oYERlZmF1bHRpbmcgXFxcImV4cG9ydEJhY2tncm91bmRcXFwiIHRvIFxcXCJ0cnVlXFxcIiBmb3IgXFxcIiR7X2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLk1JTUVfVFlQRVMuanBnfVxcXCIgbWltZVR5cGVgKTtcXG4gICAgICAgIG9wdHMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG9wdHMpLCB7IGFwcFN0YXRlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG9wdHMuYXBwU3RhdGUpLCB7IGV4cG9ydEJhY2tncm91bmQ6IHRydWUgfSkgfSk7XFxuICAgIH1cXG4gICAgY29uc3QgY2FudmFzID0geWllbGQgZXhwb3J0VG9DYW52YXMob3B0cyk7XFxuICAgIHF1YWxpdHkgPSBxdWFsaXR5ID8gcXVhbGl0eSA6IC9pbWFnZVxcXFwvanBlP2cvLnRlc3QobWltZVR5cGUpID8gMC45MiA6IDAuODtcXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XFxuICAgICAgICBjYW52YXMudG9CbG9iKChibG9iKSA9PiB7XFxuICAgICAgICAgICAgcmVzb2x2ZShibG9iKTtcXG4gICAgICAgIH0sIG1pbWVUeXBlLCBxdWFsaXR5KTtcXG4gICAgfSk7XFxufSk7XFxuY29uc3QgZXhwb3J0VG9TdmcgPSAoeyBlbGVtZW50cywgYXBwU3RhdGUgPSAoMCxfYXBwU3RhdGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXREZWZhdWx0QXBwU3RhdGUpKCksIGZpbGVzID0ge30sIGV4cG9ydFBhZGRpbmcsIH0pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICBjb25zdCB7IGVsZW1lbnRzOiByZXN0b3JlZEVsZW1lbnRzLCBhcHBTdGF0ZTogcmVzdG9yZWRBcHBTdGF0ZSB9ID0gKDAsX2RhdGFfcmVzdG9yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnJlc3RvcmUpKHsgZWxlbWVudHMsIGFwcFN0YXRlIH0sIG51bGwsIG51bGwpO1xcbiAgICByZXR1cm4gKDAsX3NjZW5lX2V4cG9ydF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmV4cG9ydFRvU3ZnKSgoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldE5vbkRlbGV0ZWRFbGVtZW50cykocmVzdG9yZWRFbGVtZW50cyksIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcmVzdG9yZWRBcHBTdGF0ZSksIHsgZXhwb3J0UGFkZGluZyB9KSwgZmlsZXMpO1xcbn0pO1xcblxcblxcblxcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZkWFJwYkhNdWRITXVhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJSM2xDTzBGQlEzZENPMEZCUjBVN1FVRkRWRHRCUVVOQk8wRkJZVzVETEUxQlFVMHNZMEZCWXl4SFFVRkhMRU5CUVVNc1JVRkROMElzVVVGQlVTeEZRVU5TTEZGQlFWRXNSVUZEVWl4TFFVRkxMRVZCUTB3c1owSkJRV2RDTEVWQlEyaENMR0ZCUVdFc1IwRkRSaXhGUVVGRkxFVkJRVVU3U1VGRFppeE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMR2RDUVVGblFpeEZRVUZGTEZGQlFWRXNSVUZCUlN4blFrRkJaMElzUlVGQlJTeEhRVUZITEhORVFVRlBMRU5CUTNoRkxFVkJRVVVzVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4RlFVTjBRaXhKUVVGSkxFVkJRMG9zU1VGQlNTeERRVU5NTEVOQlFVTTdTVUZEUml4TlFVRk5MRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNiVUpCUVcxQ0xFVkJRVVVzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJRenRKUVVOdVJTeFBRVUZQTERaRVFVRmxMRU5CUTNCQ0xDdEVRVUZ4UWl4RFFVRkRMR2RDUVVGblFpeERRVUZETEd0RFFVTnNReXhuUWtGQlowSXNTMEZCUlN4VFFVRlRMRVZCUVVVc1EwRkJReXhGUVVGRkxGVkJRVlVzUlVGQlJTeERRVUZETEVWQlFVVXNTMEZCU3l4RlFVRkZMRU5CUVVNc1JVRkJSU3hOUVVGTkxFVkJRVVVzUTBGQlF5eExRVU4yUlN4TFFVRkxMRWxCUVVrc1JVRkJSU3hGUVVOWUxFVkJRVVVzWjBKQlFXZENMRVZCUVVVc2JVSkJRVzFDTEVWQlFVVXNSVUZEZWtNc1EwRkJReXhMUVVGaExFVkJRVVVzVFVGQll5eEZRVUZGTEVWQlFVVTdPMUZCUTJoRExFMUJRVTBzVFVGQlRTeEhRVUZITEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGRmFFUXNTVUZCU1N4blFrRkJaMElzUlVGQlJUdFpRVU53UWl4SlFVRkpMRTlCUVU4c1lVRkJZU3hMUVVGTExGVkJRVlVzUlVGQlJUdG5Ra0ZEZGtNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGRFZpeHRSVUZCYlVVc1EwRkRjRVVzUTBGQlF6dGhRVU5JTzFsQlJVUXNUVUZCVFN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkZjRU1zVFVGQlRTeExRVUZMTEVkQlFVY3NaMEpCUVdkQ0xFZEJRVWNzUjBGQlJ5eERRVUZETzFsQlJYSkRMRTFCUVUwc1EwRkJReXhMUVVGTExFZEJRVWNzUzBGQlN5eEhRVUZITEV0QlFVc3NRMEZCUXp0WlFVTTNRaXhOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEUxQlFVMHNSMEZCUnl4TFFVRkxMRU5CUVVNN1dVRkZMMElzVDBGQlR6dG5Ra0ZEVEN4TlFVRk5PMmRDUVVOT0xFdEJRVXM3WVVGRFRpeERRVUZETzFOQlEwZzdVVUZGUkN4TlFVRk5MRWRCUVVjc1IwRkJSeXhqUVVGaExHRkJRV0lzWVVGQllTeDFRa0ZCWWl4aFFVRmhMRU5CUVVjc1MwRkJTeXhGUVVGRkxFMUJRVTBzUTBGQlF5eExRVUZKTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1JVRkJSU3hEUVVGRE8xRkJSV2hGTEUxQlFVMHNRMEZCUXl4TFFVRkxMRWRCUVVjc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF6dFJRVU42UWl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTTdVVUZGTTBJc1QwRkJUenRaUVVOTUxFMUJRVTA3V1VGRFRpeExRVUZMTEVWQlFVVXNVMEZCUnl4RFFVRkRMRXRCUVVzc2JVTkJRVWtzUTBGQlF6dFRRVU4wUWl4RFFVRkRPMGxCUTBvc1EwRkJReXhEUVVOR0xFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MRmxCUVZrc1IwRkJSeXhEUVVNeFFpeEpRVWRETEVWQlEzRkNMRVZCUVVVN08wbEJRM2hDTEVsQlFVa3NSVUZCUlN4UlFVRlJMRWRCUVVjc2MwUkJRV01zUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNN1NVRkZiRVFzU1VGQlNTeFJRVUZSTEV0QlFVc3NjMFJCUVdNc1NVRkJTU3hQUVVGUExFOUJRVThzUzBGQlN5eFJRVUZSTEVWQlFVVTdVVUZET1VRc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eHJRMEZCYTBNc2MwUkJRV01zV1VGQldTeERRVUZETEVOQlFVTTdTMEZETlVVN1NVRkZSQ3gxUTBGQmRVTTdTVUZEZGtNc1NVRkJTU3hSUVVGUkxFdEJRVXNzVjBGQlZ5eEZRVUZGTzFGQlF6VkNMRkZCUVZFc1IwRkJSeXh6UkVGQll5eERRVUZETzB0QlF6TkNPMGxCUlVRc1NVRkJTU3hSUVVGUkxFdEJRVXNzYzBSQlFXTXNTVUZCU1N4RFFVRkRMRmRCUVVrc1EwRkJReXhSUVVGUkxEQkRRVUZGTEdkQ1FVRm5RaXhIUVVGRk8xRkJRMjVGTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUTFZc1owUkJRV2RFTEhORVFVRmpMRmxCUVZrc1EwRkRNMFVzUTBGQlF6dFJRVU5HTEVsQlFVa3NiVU5CUTBNc1NVRkJTU3hMUVVOUUxGRkJRVkVzYTBOQlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc1MwRkJSU3huUWtGQlowSXNSVUZCUlN4SlFVRkpMRTFCUTNKRUxFTkJRVU03UzBGRFNEdEpRVVZFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1kwRkJZeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlJURkRMRTlCUVU4c1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1kwRkJZeXhEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTTdTVUZGZWtVc1QwRkJUeXhKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZPMUZCUXpkQ0xFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlExZ3NRMEZCUXl4SlFVRnBRaXhGUVVGRkxFVkJRVVU3V1VGRGNFSXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRMmhDTEVOQlFVTXNSVUZEUkN4UlFVRlJMRVZCUTFJc1QwRkJUeXhEUVVOU0xFTkJRVU03U1VGRFNpeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTk1MRU5CUVVNc1JVRkJRenRCUVVWTExFMUJRVTBzVjBGQlZ5eEhRVUZITEVOQlFVOHNSVUZEYUVNc1VVRkJVU3hGUVVOU0xGRkJRVkVzUjBGQlJ5dzJSRUZCYTBJc1JVRkJSU3hGUVVNdlFpeExRVUZMTEVkQlFVY3NSVUZCUlN4RlFVTldMR0ZCUVdFc1IwRkhaQ3hGUVVFd1FpeEZRVUZGTzBsQlF6TkNMRTFCUVUwc1JVRkJSU3hSUVVGUkxFVkJRVVVzWjBKQlFXZENMRVZCUVVVc1VVRkJVU3hGUVVGRkxHZENRVUZuUWl4RlFVRkZMRWRCUVVjc2MwUkJRVThzUTBGRGVFVXNSVUZCUlN4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRM1JDTEVsQlFVa3NSVUZEU2l4SlFVRkpMRU5CUTB3c1EwRkJRenRKUVVOR0xFOUJRVThzTUVSQlFWa3NRMEZEYWtJc0swUkJRWEZDTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zYTBOQlJXeERMR2RDUVVGblFpeExRVU51UWl4aFFVRmhMRXRCUldZc1MwRkJTeXhEUVVOT0xFTkJRVU03UVVGRFNpeERRVUZETEVWQlFVTTdRVUZGTmtNN1FVRkRhMEk3UVVGRFJpSXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOTFkR2xzY3k1MGN6OWhZekV4SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN1hHNGdJR1Y0Y0c5eWRGUnZRMkZ1ZG1GeklHRnpJRjlsZUhCdmNuUlViME5oYm5aaGN5eGNiaUFnWlhod2IzSjBWRzlUZG1jZ1lYTWdYMlY0Y0c5eWRGUnZVM1puTEZ4dWZTQm1jbTl0SUZ3aUxpNHZjMk5sYm1VdlpYaHdiM0owWENJN1hHNXBiWEJ2Y25RZ2V5Qm5aWFJFWldaaGRXeDBRWEJ3VTNSaGRHVWdmU0JtY205dElGd2lMaTR2WVhCd1UzUmhkR1ZjSWp0Y2JtbHRjRzl5ZENCN0lFRndjRk4wWVhSbExDQkNhVzVoY25sR2FXeGxjeUI5SUdaeWIyMGdYQ0l1TGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5Rc0lFNXZia1JsYkdWMFpXUWdmU0JtY205dElGd2lMaTR2Wld4bGJXVnVkQzkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnWjJWMFRtOXVSR1ZzWlhSbFpFVnNaVzFsYm5SeklIMGdabkp2YlNCY0lpNHVMMlZzWlcxbGJuUmNJanRjYm1sdGNHOXlkQ0I3SUhKbGMzUnZjbVVnZlNCbWNtOXRJRndpTGk0dlpHRjBZUzl5WlhOMGIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCTlNVMUZYMVJaVUVWVElIMGdabkp2YlNCY0lpNHVMMk52Ym5OMFlXNTBjMXdpTzF4dVhHNTBlWEJsSUVWNGNHOXlkRTl3ZEhNZ1BTQjdYRzRnSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCT2IyNUVaV3hsZEdWa1BFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFBsdGRPMXh1SUNCaGNIQlRkR0YwWlQ4NklGQmhjblJwWVd3OFQyMXBkRHhCY0hCVGRHRjBaU3dnWENKdlptWnpaWFJVYjNCY0lpQjhJRndpYjJabWMyVjBUR1ZtZEZ3aVBqNDdYRzRnSUdacGJHVnpPaUJDYVc1aGNubEdhV3hsY3lCOElHNTFiR3c3WEc0Z0lHMWhlRmRwWkhSb1QzSklaV2xuYUhRL09pQnVkVzFpWlhJN1hHNGdJR2RsZEVScGJXVnVjMmx2Ym5NL09pQW9YRzRnSUNBZ2QybGtkR2c2SUc1MWJXSmxjaXhjYmlBZ0lDQm9aV2xuYUhRNklHNTFiV0psY2l4Y2JpQWdLU0E5UGlCN0lIZHBaSFJvT2lCdWRXMWlaWEk3SUdobGFXZG9kRG9nYm5WdFltVnlPeUJ6WTJGc1pUODZJRzUxYldKbGNpQjlPMXh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdWNGNHOXlkRlJ2UTJGdWRtRnpJRDBnS0h0Y2JpQWdaV3hsYldWdWRITXNYRzRnSUdGd2NGTjBZWFJsTEZ4dUlDQm1hV3hsY3l4Y2JpQWdiV0Y0VjJsa2RHaFBja2hsYVdkb2RDeGNiaUFnWjJWMFJHbHRaVzV6YVc5dWN5eGNibjA2SUVWNGNHOXlkRTl3ZEhNcElEMCtJSHRjYmlBZ1kyOXVjM1FnZXlCbGJHVnRaVzUwY3pvZ2NtVnpkRzl5WldSRmJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVNklISmxjM1J2Y21Wa1FYQndVM1JoZEdVZ2ZTQTlJSEpsYzNSdmNtVW9YRzRnSUNBZ2V5QmxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVWdmU3hjYmlBZ0lDQnVkV3hzTEZ4dUlDQWdJRzUxYkd3c1hHNGdJQ2s3WEc0Z0lHTnZibk4wSUhzZ1pYaHdiM0owUW1GamEyZHliM1Z1WkN3Z2RtbGxkMEpoWTJ0bmNtOTFibVJEYjJ4dmNpQjlJRDBnY21WemRHOXlaV1JCY0hCVGRHRjBaVHRjYmlBZ2NtVjBkWEp1SUY5bGVIQnZjblJVYjBOaGJuWmhjeWhjYmlBZ0lDQm5aWFJPYjI1RVpXeGxkR1ZrUld4bGJXVnVkSE1vY21WemRHOXlaV1JGYkdWdFpXNTBjeWtzWEc0Z0lDQWdleUF1TGk1eVpYTjBiM0psWkVGd2NGTjBZWFJsTENCdlptWnpaWFJVYjNBNklEQXNJRzltWm5ObGRFeGxablE2SURBc0lIZHBaSFJvT2lBd0xDQm9aV2xuYUhRNklEQWdmU3hjYmlBZ0lDQm1hV3hsY3lCOGZDQjdmU3hjYmlBZ0lDQjdJR1Y0Y0c5eWRFSmhZMnRuY205MWJtUXNJSFpwWlhkQ1lXTnJaM0p2ZFc1a1EyOXNiM0lnZlN4Y2JpQWdJQ0FvZDJsa2RHZzZJRzUxYldKbGNpd2dhR1ZwWjJoME9pQnVkVzFpWlhJcElEMCtJSHRjYmlBZ0lDQWdJR052Ym5OMElHTmhiblpoY3lBOUlHUnZZM1Z0Wlc1MExtTnlaV0YwWlVWc1pXMWxiblFvWENKallXNTJZWE5jSWlrN1hHNWNiaUFnSUNBZ0lHbG1JQ2h0WVhoWGFXUjBhRTl5U0dWcFoyaDBLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBlWEJsYjJZZ1oyVjBSR2x0Wlc1emFXOXVjeUE5UFQwZ1hDSm1kVzVqZEdsdmJsd2lLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjMjlzWlM1M1lYSnVLRnh1SUNBZ0lDQWdJQ0FnSUNBZ1hDSmdaMlYwUkdsdFpXNXphVzl1Y3lncFlDQnBjeUJwWjI1dmNtVmtJSGRvWlc0Z1lHMWhlRmRwWkhSb1QzSklaV2xuYUhSZ0lHbHpJSE4xY0hCc2FXVmtMbHdpTEZ4dUlDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0WVhnZ1BTQk5ZWFJvTG0xaGVDaDNhV1IwYUN3Z2FHVnBaMmgwS1R0Y2JseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCelkyRnNaU0E5SUcxaGVGZHBaSFJvVDNKSVpXbG5hSFFnTHlCdFlYZzdYRzVjYmlBZ0lDQWdJQ0FnWTJGdWRtRnpMbmRwWkhSb0lEMGdkMmxrZEdnZ0tpQnpZMkZzWlR0Y2JpQWdJQ0FnSUNBZ1kyRnVkbUZ6TG1obGFXZG9kQ0E5SUdobGFXZG9kQ0FxSUhOallXeGxPMXh1WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnVkbUZ6TEZ4dUlDQWdJQ0FnSUNBZ0lITmpZV3hsTEZ4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYUWdQU0JuWlhSRWFXMWxibk5wYjI1elB5NG9kMmxrZEdnc0lHaGxhV2RvZENrZ2ZId2dleUIzYVdSMGFDd2dhR1ZwWjJoMElIMDdYRzVjYmlBZ0lDQWdJR05oYm5aaGN5NTNhV1IwYUNBOUlISmxkQzUzYVdSMGFEdGNiaUFnSUNBZ0lHTmhiblpoY3k1b1pXbG5hSFFnUFNCeVpYUXVhR1ZwWjJoME8xeHVYRzRnSUNBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ0lDQmpZVzUyWVhNc1hHNGdJQ0FnSUNBZ0lITmpZV3hsT2lCeVpYUXVjMk5oYkdVZ1B6OGdNU3hjYmlBZ0lDQWdJSDA3WEc0Z0lDQWdmU3hjYmlBZ0tUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JsZUhCdmNuUlViMEpzYjJJZ1BTQmhjM2x1WXlBb1hHNGdJRzl3ZEhNNklFVjRjRzl5ZEU5d2RITWdKaUI3WEc0Z0lDQWdiV2x0WlZSNWNHVS9PaUJ6ZEhKcGJtYzdYRzRnSUNBZ2NYVmhiR2wwZVQ4NklHNTFiV0psY2p0Y2JpQWdmU3hjYmlrNklGQnliMjFwYzJVOFFteHZZaUI4SUc1MWJHdytJRDArSUh0Y2JpQWdiR1YwSUhzZ2JXbHRaVlI1Y0dVZ1BTQk5TVTFGWDFSWlVFVlRMbkJ1Wnl3Z2NYVmhiR2wwZVNCOUlEMGdiM0IwY3p0Y2JseHVJQ0JwWmlBb2JXbHRaVlI1Y0dVZ1BUMDlJRTFKVFVWZlZGbFFSVk11Y0c1bklDWW1JSFI1Y0dWdlppQnhkV0ZzYVhSNUlEMDlQU0JjSW01MWJXSmxjbHdpS1NCN1hHNGdJQ0FnWTI5dWMyOXNaUzUzWVhKdUtHQmNJbkYxWVd4cGRIbGNJaUIzYVd4c0lHSmxJR2xuYm05eVpXUWdabTl5SUZ3aUpIdE5TVTFGWDFSWlVFVlRMbkJ1WjMxY0lpQnRhVzFsVkhsd1pXQXBPMXh1SUNCOVhHNWNiaUFnTHk4Z2RIbHdieUJwYmlCTlNVMUZJSFI1Y0dVZ0tITm9iM1ZzWkNCaVpTQmNJbXB3WldkY0lpbGNiaUFnYVdZZ0tHMXBiV1ZVZVhCbElEMDlQU0JjSW1sdFlXZGxMMnB3WjF3aUtTQjdYRzRnSUNBZ2JXbHRaVlI1Y0dVZ1BTQk5TVTFGWDFSWlVFVlRMbXB3Wnp0Y2JpQWdmVnh1WEc0Z0lHbG1JQ2h0YVcxbFZIbHdaU0E5UFQwZ1RVbE5SVjlVV1ZCRlV5NXFjR2NnSmlZZ0lXOXdkSE11WVhCd1UzUmhkR1UvTG1WNGNHOXlkRUpoWTJ0bmNtOTFibVFwSUh0Y2JpQWdJQ0JqYjI1emIyeGxMbmRoY200b1hHNGdJQ0FnSUNCZ1JHVm1ZWFZzZEdsdVp5QmNJbVY0Y0c5eWRFSmhZMnRuY205MWJtUmNJaUIwYnlCY0luUnlkV1ZjSWlCbWIzSWdYQ0lrZTAxSlRVVmZWRmxRUlZNdWFuQm5mVndpSUcxcGJXVlVlWEJsWUN4Y2JpQWdJQ0FwTzF4dUlDQWdJRzl3ZEhNZ1BTQjdYRzRnSUNBZ0lDQXVMaTV2Y0hSekxGeHVJQ0FnSUNBZ1lYQndVM1JoZEdVNklIc2dMaTR1YjNCMGN5NWhjSEJUZEdGMFpTd2daWGh3YjNKMFFtRmphMmR5YjNWdVpEb2dkSEoxWlNCOUxGeHVJQ0FnSUgwN1hHNGdJSDFjYmx4dUlDQmpiMjV6ZENCallXNTJZWE1nUFNCaGQyRnBkQ0JsZUhCdmNuUlViME5oYm5aaGN5aHZjSFJ6S1R0Y2JseHVJQ0J4ZFdGc2FYUjVJRDBnY1hWaGJHbDBlU0EvSUhGMVlXeHBkSGtnT2lBdmFXMWhaMlZjWEM5cWNHVS9aeTh1ZEdWemRDaHRhVzFsVkhsd1pTa2dQeUF3TGpreUlEb2dNQzQ0TzF4dVhHNGdJSEpsZEhWeWJpQnVaWGNnVUhKdmJXbHpaU2dvY21WemIyeDJaU2tnUFQ0Z2UxeHVJQ0FnSUdOaGJuWmhjeTUwYjBKc2IySW9YRzRnSUNBZ0lDQW9ZbXh2WWpvZ1FteHZZaUI4SUc1MWJHd3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ2NtVnpiMngyWlNoaWJHOWlLVHRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0J0YVcxbFZIbHdaU3hjYmlBZ0lDQWdJSEYxWVd4cGRIa3NYRzRnSUNBZ0tUdGNiaUFnZlNrN1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdaWGh3YjNKMFZHOVRkbWNnUFNCaGMzbHVZeUFvZTF4dUlDQmxiR1Z0Wlc1MGN5eGNiaUFnWVhCd1UzUmhkR1VnUFNCblpYUkVaV1poZFd4MFFYQndVM1JoZEdVb0tTeGNiaUFnWm1sc1pYTWdQU0I3ZlN4Y2JpQWdaWGh3YjNKMFVHRmtaR2x1Wnl4Y2JuMDZJRTl0YVhROFJYaHdiM0owVDNCMGN5d2dYQ0puWlhSRWFXMWxibk5wYjI1elhDSStJQ1lnZTF4dUlDQmxlSEJ2Y25SUVlXUmthVzVuUHpvZ2JuVnRZbVZ5TzF4dWZTazZJRkJ5YjIxcGMyVThVMVpIVTFaSFJXeGxiV1Z1ZEQ0Z1BUNGdlMXh1SUNCamIyNXpkQ0I3SUdWc1pXMWxiblJ6T2lCeVpYTjBiM0psWkVWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlRvZ2NtVnpkRzl5WldSQmNIQlRkR0YwWlNCOUlEMGdjbVZ6ZEc5eVpTaGNiaUFnSUNCN0lHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTQjlMRnh1SUNBZ0lHNTFiR3dzWEc0Z0lDQWdiblZzYkN4Y2JpQWdLVHRjYmlBZ2NtVjBkWEp1SUY5bGVIQnZjblJVYjFOMlp5aGNiaUFnSUNCblpYUk9iMjVFWld4bGRHVmtSV3hsYldWdWRITW9jbVZ6ZEc5eVpXUkZiR1Z0Wlc1MGN5a3NYRzRnSUNBZ2UxeHVJQ0FnSUNBZ0xpNHVjbVZ6ZEc5eVpXUkJjSEJUZEdGMFpTeGNiaUFnSUNBZ0lHVjRjRzl5ZEZCaFpHUnBibWNzWEc0Z0lDQWdmU3hjYmlBZ0lDQm1hV3hsY3l4Y2JpQWdLVHRjYm4wN1hHNWNibVY0Y0c5eWRDQjdJSE5sY21saGJHbDZaVUZ6U2xOUFRpQjlJR1p5YjIwZ1hDSXVMaTlrWVhSaEwycHpiMjVjSWp0Y2JtVjRjRzl5ZENCN0lHeHZZV1JHY205dFFteHZZaXdnYkc5aFpFeHBZbkpoY25sR2NtOXRRbXh2WWlCOUlHWnliMjBnWENJdUxpOWtZWFJoTDJKc2IySmNJanRjYm1WNGNHOXlkQ0I3SUdkbGRFWnlaV1ZFY21GM1UzWm5VR0YwYUNCOUlHWnliMjBnWENJdUxpOXlaVzVrWlhKbGNpOXlaVzVrWlhKRmJHVnRaVzUwWENJN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uL3V0aWxzLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9wb2ludHMudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL3BvaW50cy50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldFNpemVGcm9tUG9pbnRzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0U2l6ZUZyb21Qb2ludHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJlc2NhbGVQb2ludHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZXNjYWxlUG9pbnRzKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbmNvbnN0IGdldFNpemVGcm9tUG9pbnRzID0gKHBvaW50cykgPT4ge1xcbiAgICBjb25zdCB4cyA9IHBvaW50cy5tYXAoKHBvaW50KSA9PiBwb2ludFswXSk7XFxuICAgIGNvbnN0IHlzID0gcG9pbnRzLm1hcCgocG9pbnQpID0+IHBvaW50WzFdKTtcXG4gICAgcmV0dXJuIHtcXG4gICAgICAgIHdpZHRoOiBNYXRoLm1heCguLi54cykgLSBNYXRoLm1pbiguLi54cyksXFxuICAgICAgICBoZWlnaHQ6IE1hdGgubWF4KC4uLnlzKSAtIE1hdGgubWluKC4uLnlzKSxcXG4gICAgfTtcXG59O1xcbmNvbnN0IHJlc2NhbGVQb2ludHMgPSAoZGltZW5zaW9uLCBuZXh0RGltZW5zaW9uU2l6ZSwgcHJldlBvaW50cykgPT4ge1xcbiAgICBjb25zdCBwcmV2RGltVmFsdWVzID0gcHJldlBvaW50cy5tYXAoKHBvaW50KSA9PiBwb2ludFtkaW1lbnNpb25dKTtcXG4gICAgY29uc3QgcHJldk1heERpbWVuc2lvbiA9IE1hdGgubWF4KC4uLnByZXZEaW1WYWx1ZXMpO1xcbiAgICBjb25zdCBwcmV2TWluRGltZW5zaW9uID0gTWF0aC5taW4oLi4ucHJldkRpbVZhbHVlcyk7XFxuICAgIGNvbnN0IHByZXZEaW1lbnNpb25TaXplID0gcHJldk1heERpbWVuc2lvbiAtIHByZXZNaW5EaW1lbnNpb247XFxuICAgIGNvbnN0IGRpbWVuc2lvblNjYWxlRmFjdG9yID0gcHJldkRpbWVuc2lvblNpemUgPT09IDAgPyAxIDogbmV4dERpbWVuc2lvblNpemUgLyBwcmV2RGltZW5zaW9uU2l6ZTtcXG4gICAgbGV0IG5leHRNaW5EaW1lbnNpb24gPSBJbmZpbml0eTtcXG4gICAgY29uc3Qgc2NhbGVkUG9pbnRzID0gcHJldlBvaW50cy5tYXAoKHByZXZQb2ludCkgPT4gcHJldlBvaW50Lm1hcCgodmFsdWUsIGN1cnJlbnREaW1lbnNpb24pID0+IHtcXG4gICAgICAgIGlmIChjdXJyZW50RGltZW5zaW9uICE9PSBkaW1lbnNpb24pIHtcXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBzY2FsZWRWYWx1ZSA9IHZhbHVlICogZGltZW5zaW9uU2NhbGVGYWN0b3I7XFxuICAgICAgICBuZXh0TWluRGltZW5zaW9uID0gTWF0aC5taW4oc2NhbGVkVmFsdWUsIG5leHRNaW5EaW1lbnNpb24pO1xcbiAgICAgICAgcmV0dXJuIHNjYWxlZFZhbHVlO1xcbiAgICB9KSk7XFxuICAgIGlmIChzY2FsZWRQb2ludHMubGVuZ3RoID09PSAyKSB7XFxuICAgICAgICAvLyB3ZSBkb24ndCB0cmFubGF0ZSB0d28tcG9pbnQgbGluZXNcXG4gICAgICAgIHJldHVybiBzY2FsZWRQb2ludHM7XFxuICAgIH1cXG4gICAgY29uc3QgdHJhbnNsYXRpb24gPSBwcmV2TWluRGltZW5zaW9uIC0gbmV4dE1pbkRpbWVuc2lvbjtcXG4gICAgY29uc3QgbmV4dFBvaW50cyA9IHNjYWxlZFBvaW50cy5tYXAoKHNjYWxlZFBvaW50KSA9PiBzY2FsZWRQb2ludC5tYXAoKHZhbHVlLCBjdXJyZW50RGltZW5zaW9uKSA9PiB7XFxuICAgICAgICByZXR1cm4gY3VycmVudERpbWVuc2lvbiA9PT0gZGltZW5zaW9uID8gdmFsdWUgKyB0cmFuc2xhdGlvbiA6IHZhbHVlO1xcbiAgICB9KSk7XFxuICAgIHJldHVybiBuZXh0UG9pbnRzO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZjRzlwYm5SekxuUnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3TzBGQlJVOHNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eERRVUZETEUxQlFYZENMRVZCUVVVc1JVRkJSVHRKUVVNMVJDeE5RVUZOTEVWQlFVVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU16UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTXpReXhQUVVGUE8xRkJRMHdzUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRM2hETEUxQlFVMHNSVUZCUlN4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dExRVU14UXl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRE8wRkJSVXNzVFVGQlRTeGhRVUZoTEVkQlFVY3NRMEZETTBJc1UwRkJaMElzUlVGRGFFSXNhVUpCUVhsQ0xFVkJRM3BDTEZWQlFUUkNMRVZCUTI1Q0xFVkJRVVU3U1VGRFdDeE5RVUZOTEdGQlFXRXNSMEZCUnl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5zUlN4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhoUVVGaExFTkJRVU1zUTBGQlF6dEpRVU53UkN4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhoUVVGaExFTkJRVU1zUTBGQlF6dEpRVU53UkN4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEdkQ1FVRm5RaXhIUVVGSExHZENRVUZuUWl4RFFVRkRPMGxCUlRsRUxFMUJRVTBzYjBKQlFXOUNMRWRCUTNoQ0xHbENRVUZwUWl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJRenRKUVVWMFJTeEpRVUZKTEdkQ1FVRm5RaXhIUVVGSExGRkJRVkVzUTBGQlF6dEpRVVZvUXl4TlFVRk5MRmxCUVZrc1IwRkJSeXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVU5xUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hGUVVGRkxFTkJRMW9zVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4RlFVRkZPMUZCUTNoRExFbEJRVWtzWjBKQlFXZENMRXRCUVVzc1UwRkJVeXhGUVVGRk8xbEJRMnhETEU5QlFVOHNTMEZCU3l4RFFVRkRPMU5CUTJRN1VVRkRSQ3hOUVVGTkxGZEJRVmNzUjBGQlJ5eExRVUZMTEVkQlFVY3NiMEpCUVc5Q0xFTkJRVU03VVVGRGFrUXNaMEpCUVdkQ0xFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4WFFVRlhMRVZCUVVVc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0UlFVTXpSQ3hQUVVGUExGZEJRVmNzUTBGQlF6dEpRVU55UWl4RFFVRkRMRU5CUVhGQ0xFTkJRM3BDTEVOQlFVTTdTVUZGUml4SlFVRkpMRmxCUVZrc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF5eEZRVUZGTzFGQlF6ZENMRzlEUVVGdlF6dFJRVU53UXl4UFFVRlBMRmxCUVZrc1EwRkJRenRMUVVOeVFqdEpRVVZFTEUxQlFVMHNWMEZCVnl4SFFVRkhMR2RDUVVGblFpeEhRVUZITEdkQ1FVRm5RaXhEUVVGRE8wbEJSWGhFTEUxQlFVMHNWVUZCVlN4SFFVRkhMRmxCUVZrc1EwRkJReXhIUVVGSExFTkJRMnBETEVOQlFVTXNWMEZCVnl4RlFVRkZMRVZCUVVVc1EwRkRaQ3hYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMR2RDUVVGblFpeEZRVUZGTEVWQlFVVTdVVUZETVVNc1QwRkJUeXhuUWtGQlowSXNTMEZCU3l4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUjBGQlJ5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVOMFJTeERRVUZETEVOQlFYRkNMRU5CUTNwQ0xFTkJRVU03U1VGRlJpeFBRVUZQTEZWQlFWVXNRMEZCUXp0QlFVTndRaXhEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dmNHOXBiblJ6TG5SelB6WTNNVFFpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ1VHOXBiblFnZlNCbWNtOXRJRndpTGk5MGVYQmxjMXdpTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWjJWMFUybDZaVVp5YjIxUWIybHVkSE1nUFNBb2NHOXBiblJ6T2lCeVpXRmtiMjVzZVNCUWIybHVkRnRkS1NBOVBpQjdYRzRnSUdOdmJuTjBJSGh6SUQwZ2NHOXBiblJ6TG0xaGNDZ29jRzlwYm5RcElEMCtJSEJ2YVc1MFd6QmRLVHRjYmlBZ1kyOXVjM1FnZVhNZ1BTQndiMmx1ZEhNdWJXRndLQ2h3YjJsdWRDa2dQVDRnY0c5cGJuUmJNVjBwTzF4dUlDQnlaWFIxY200Z2UxeHVJQ0FnSUhkcFpIUm9PaUJOWVhSb0xtMWhlQ2d1TGk1NGN5a2dMU0JOWVhSb0xtMXBiaWd1TGk1NGN5a3NYRzRnSUNBZ2FHVnBaMmgwT2lCTllYUm9MbTFoZUNndUxpNTVjeWtnTFNCTllYUm9MbTFwYmlndUxpNTVjeWtzWEc0Z0lIMDdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnY21WelkyRnNaVkJ2YVc1MGN5QTlJQ2hjYmlBZ1pHbHRaVzV6YVc5dU9pQXdJSHdnTVN4Y2JpQWdibVY0ZEVScGJXVnVjMmx2YmxOcGVtVTZJRzUxYldKbGNpeGNiaUFnY0hKbGRsQnZhVzUwY3pvZ2NtVmhaRzl1YkhrZ1VHOXBiblJiWFN4Y2JpazZJRkJ2YVc1MFcxMGdQVDRnZTF4dUlDQmpiMjV6ZENCd2NtVjJSR2x0Vm1Gc2RXVnpJRDBnY0hKbGRsQnZhVzUwY3k1dFlYQW9LSEJ2YVc1MEtTQTlQaUJ3YjJsdWRGdGthVzFsYm5OcGIyNWRLVHRjYmlBZ1kyOXVjM1FnY0hKbGRrMWhlRVJwYldWdWMybHZiaUE5SUUxaGRHZ3ViV0Y0S0M0dUxuQnlaWFpFYVcxV1lXeDFaWE1wTzF4dUlDQmpiMjV6ZENCd2NtVjJUV2x1UkdsdFpXNXphVzl1SUQwZ1RXRjBhQzV0YVc0b0xpNHVjSEpsZGtScGJWWmhiSFZsY3lrN1hHNGdJR052Ym5OMElIQnlaWFpFYVcxbGJuTnBiMjVUYVhwbElEMGdjSEpsZGsxaGVFUnBiV1Z1YzJsdmJpQXRJSEJ5WlhaTmFXNUVhVzFsYm5OcGIyNDdYRzVjYmlBZ1kyOXVjM1FnWkdsdFpXNXphVzl1VTJOaGJHVkdZV04wYjNJZ1BWeHVJQ0FnSUhCeVpYWkVhVzFsYm5OcGIyNVRhWHBsSUQwOVBTQXdJRDhnTVNBNklHNWxlSFJFYVcxbGJuTnBiMjVUYVhwbElDOGdjSEpsZGtScGJXVnVjMmx2YmxOcGVtVTdYRzVjYmlBZ2JHVjBJRzVsZUhSTmFXNUVhVzFsYm5OcGIyNGdQU0JKYm1acGJtbDBlVHRjYmx4dUlDQmpiMjV6ZENCelkyRnNaV1JRYjJsdWRITWdQU0J3Y21WMlVHOXBiblJ6TG0xaGNDaGNiaUFnSUNBb2NISmxkbEJ2YVc1MEtTQTlQbHh1SUNBZ0lDQWdjSEpsZGxCdmFXNTBMbTFoY0Nnb2RtRnNkV1VzSUdOMWNuSmxiblJFYVcxbGJuTnBiMjRwSUQwK0lIdGNiaUFnSUNBZ0lDQWdhV1lnS0dOMWNuSmxiblJFYVcxbGJuTnBiMjRnSVQwOUlHUnBiV1Z1YzJsdmJpa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIyWVd4MVpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JqYjI1emRDQnpZMkZzWldSV1lXeDFaU0E5SUhaaGJIVmxJQ29nWkdsdFpXNXphVzl1VTJOaGJHVkdZV04wYjNJN1hHNGdJQ0FnSUNBZ0lHNWxlSFJOYVc1RWFXMWxibk5wYjI0Z1BTQk5ZWFJvTG0xcGJpaHpZMkZzWldSV1lXeDFaU3dnYm1WNGRFMXBia1JwYldWdWMybHZiaWs3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ6WTJGc1pXUldZV3gxWlR0Y2JpQWdJQ0FnSUgwcElHRnpJRnR1ZFcxaVpYSXNJRzUxYldKbGNsMHNYRzRnSUNrN1hHNWNiaUFnYVdZZ0tITmpZV3hsWkZCdmFXNTBjeTVzWlc1bmRHZ2dQVDA5SURJcElIdGNiaUFnSUNBdkx5QjNaU0JrYjI0bmRDQjBjbUZ1YkdGMFpTQjBkMjh0Y0c5cGJuUWdiR2x1WlhOY2JpQWdJQ0J5WlhSMWNtNGdjMk5oYkdWa1VHOXBiblJ6TzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnZEhKaGJuTnNZWFJwYjI0Z1BTQndjbVYyVFdsdVJHbHRaVzV6YVc5dUlDMGdibVY0ZEUxcGJrUnBiV1Z1YzJsdmJqdGNibHh1SUNCamIyNXpkQ0J1WlhoMFVHOXBiblJ6SUQwZ2MyTmhiR1ZrVUc5cGJuUnpMbTFoY0NoY2JpQWdJQ0FvYzJOaGJHVmtVRzlwYm5RcElEMCtYRzRnSUNBZ0lDQnpZMkZzWldSUWIybHVkQzV0WVhBb0tIWmhiSFZsTENCamRYSnlaVzUwUkdsdFpXNXphVzl1S1NBOVBpQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmpkWEp5Wlc1MFJHbHRaVzV6YVc5dUlEMDlQU0JrYVcxbGJuTnBiMjRnUHlCMllXeDFaU0FySUhSeVlXNXpiR0YwYVc5dUlEb2dkbUZzZFdVN1hHNGdJQ0FnSUNCOUtTQmhjeUJiYm5WdFltVnlMQ0J1ZFcxaVpYSmRMRnh1SUNBcE8xeHVYRzRnSUhKbGRIVnliaUJ1WlhoMFVHOXBiblJ6TzF4dWZUdGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9wb2ludHMudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL3JhbmRvbS50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vcmFuZG9tLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicmFuZG9tSW50ZWdlclxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJhbmRvbUludGVnZXIpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJlc2VlZFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJlc2VlZCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicmFuZG9tSWRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyByYW5kb21JZClcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcm91Z2hqc19iaW5fbWF0aF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcm91Z2hqcy9iaW4vbWF0aCAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL21hdGguanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgbmFub2lkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISBuYW5vaWQgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9uYW5vaWQvaW5kZXguZGV2LmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi91dGlscyAqLyBcXFwiLi4vLi4vdXRpbHMudHNcXFwiKTtcXG5cXG5cXG5cXG5sZXQgcmFuZG9tID0gbmV3IHJvdWdoanNfYmluX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5SYW5kb20oRGF0ZS5ub3coKSk7XFxubGV0IHRlc3RJZEJhc2UgPSAwO1xcbmNvbnN0IHJhbmRvbUludGVnZXIgPSAoKSA9PiBNYXRoLmZsb29yKHJhbmRvbS5uZXh0KCkgKiBNYXRoLnBvdygyLCAzMSkpO1xcbmNvbnN0IHJlc2VlZCA9IChzZWVkKSA9PiB7XFxuICAgIHJhbmRvbSA9IG5ldyByb3VnaGpzX2Jpbl9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uUmFuZG9tKHNlZWQpO1xcbiAgICB0ZXN0SWRCYXNlID0gMDtcXG59O1xcbmNvbnN0IHJhbmRvbUlkID0gKCkgPT4gKCgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmlzVGVzdEVudikoKSA/IGBpZCR7dGVzdElkQmFzZSsrfWAgOiAoMCxuYW5vaWRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5uYW5vaWQpKCkpO1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2Y21GdVpHOXRMblJ6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenRCUVVFd1F6dEJRVU5XTzBGQlEwazdRVUZGY0VNc1NVRkJTU3hOUVVGTkxFZEJRVWNzU1VGQlNTeHZSRUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEzQkRMRWxCUVVrc1ZVRkJWU3hIUVVGSExFTkJRVU1zUTBGQlF6dEJRVVZhTEUxQlFVMHNZVUZCWVN4SFFVRkhMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hIUVVGSExGVkJRVU1zUlVGQlNTeEZRVUZGTEVWQlFVTXNRMEZCUXp0QlFVVm9SU3hOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEVsQlFWa3NSVUZCUlN4RlFVRkZPMGxCUTNKRExFMUJRVTBzUjBGQlJ5eEpRVUZKTEc5RVFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE1VSXNWVUZCVlN4SFFVRkhMRU5CUVVNc1EwRkJRenRCUVVOcVFpeERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MRkZCUVZFc1IwRkJSeXhIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETEdsRVFVRlRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eFZRVUZWTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXc0UTBGQlRTeEZRVUZGTEVOQlFVTXNRMEZCUXlJc0luTnZkWEpqWlhNaU9sc2lkMlZpY0dGamF6b3ZMeTh1TGk4dUxpOXlZVzVrYjIwdWRITS9NV015WVNKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QlNZVzVrYjIwZ2ZTQm1jbTl0SUZ3aWNtOTFaMmhxY3k5aWFXNHZiV0YwYUZ3aU8xeHVhVzF3YjNKMElIc2dibUZ1YjJsa0lIMGdabkp2YlNCY0ltNWhibTlwWkZ3aU8xeHVhVzF3YjNKMElIc2dhWE5VWlhOMFJXNTJJSDBnWm5KdmJTQmNJaTR2ZFhScGJITmNJanRjYmx4dWJHVjBJSEpoYm1SdmJTQTlJRzVsZHlCU1lXNWtiMjBvUkdGMFpTNXViM2NvS1NrN1hHNXNaWFFnZEdWemRFbGtRbUZ6WlNBOUlEQTdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnlZVzVrYjIxSmJuUmxaMlZ5SUQwZ0tDa2dQVDRnVFdGMGFDNW1iRzl2Y2loeVlXNWtiMjB1Ym1WNGRDZ3BJQ29nTWlBcUtpQXpNU2s3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J5WlhObFpXUWdQU0FvYzJWbFpEb2diblZ0WW1WeUtTQTlQaUI3WEc0Z0lISmhibVJ2YlNBOUlHNWxkeUJTWVc1a2IyMG9jMlZsWkNrN1hHNGdJSFJsYzNSSlpFSmhjMlVnUFNBd08xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJSEpoYm1SdmJVbGtJRDBnS0NrZ1BUNGdLR2x6VkdWemRFVnVkaWdwSUQ4Z1lHbGtKSHQwWlhOMFNXUkNZWE5sS3l0OVlDQTZJRzVoYm05cFpDZ3BLVHRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vcmFuZG9tLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9yZW5kZXJlci9pbmRleC50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9yZW5kZXJlci9pbmRleC50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicmVuZGVyU2NlbmVcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfcmVuZGVyU2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5yZW5kZXJTY2VuZSlcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3JlbmRlclNjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3JlbmRlclNjZW5lICovIFxcXCIuLi8uLi9yZW5kZXJlci9yZW5kZXJTY2VuZS50c1xcXCIpO1xcblxcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2Y21WdVpHVnlaWEl2YVc1a1pYZ3VkSE11YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN1FVRkJORU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dmNtVnVaR1Z5WlhJdmFXNWtaWGd1ZEhNL1ltVm1ZaUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKbGVIQnZjblFnZXlCeVpXNWtaWEpUWTJWdVpTQjlJR1p5YjIwZ1hDSXVMM0psYm1SbGNsTmpaVzVsWENJN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL3JlbmRlcmVyL2luZGV4LnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9yZW5kZXJlci9yZW5kZXJFbGVtZW50LnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vcmVuZGVyZXIvcmVuZGVyRWxlbWVudC50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJERUZBVUxUX0xJTktfU0laRVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIERFRkFVTFRfTElOS19TSVpFKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRTaGFwZUZvckVsZW1lbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRTaGFwZUZvckVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInNldFNoYXBlRm9yRWxlbWVudFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHNldFNoYXBlRm9yRWxlbWVudCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaW52YWxpZGF0ZVNoYXBlRm9yRWxlbWVudFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGludmFsaWRhdGVTaGFwZUZvckVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdlbmVyYXRlUm91Z2hPcHRpb25zXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2VuZXJhdGVSb3VnaE9wdGlvbnMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJlbmRlckVsZW1lbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZW5kZXJFbGVtZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJyZW5kZXJFbGVtZW50VG9TdmdcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZW5kZXJFbGVtZW50VG9TdmcpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInBhdGhzQ2FjaGVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBwYXRoc0NhY2hlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZW5lcmF0ZUZyZWVEcmF3U2hhcGVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZW5lcmF0ZUZyZWVEcmF3U2hhcGUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEZyZWVEcmF3UGF0aDJEXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0RnJlZURyYXdQYXRoMkQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEZyZWVEcmF3U3ZnUGF0aFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldEZyZWVEcmF3U3ZnUGF0aClcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC90eXBlQ2hlY2tzICovIFxcXCIuLi8uLi9lbGVtZW50L3R5cGVDaGVja3MudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L2JvdW5kcyAqLyBcXFwiLi4vLi4vZWxlbWVudC9ib3VuZHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi91dGlscyAqLyBcXFwiLi4vLi4vdXRpbHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL21hdGggKi8gXFxcIi4uLy4uL21hdGgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcm91Z2hqc19iaW5fcm91Z2hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJvdWdoanMvYmluL3JvdWdoICovIFxcXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvcm91Z2hqcy9iaW4vcm91Z2guanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FwcFN0YXRlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9hcHBTdGF0ZSAqLyBcXFwiLi4vLi4vYXBwU3RhdGUudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29uc3RhbnRzICovIFxcXCIuLi8uLi9jb25zdGFudHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgcGVyZmVjdF9mcmVlaGFuZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgcGVyZmVjdC1mcmVlaGFuZCAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3BlcmZlY3QtZnJlZWhhbmQvZGlzdC9lc20vaW5kZXguanNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvdGV4dEVsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvdGV4dEVsZW1lbnQudHNcXFwiKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG4vLyB1c2luZyBhIHN0cm9uZ2VyIGludmVydCAoMTAwJSB2cyBvdXIgcmVndWxhciA5MyUpIGFuZCBzYXR1cmF0ZVxcbi8vIGFzIGEgdGVtcCBoYWNrIHRvIG1ha2UgaW1hZ2VzIGluIGRhcmsgdGhlbWUgbG9vayBjbG9zZXIgdG8gb3JpZ2luYWxcXG4vLyBjb2xvciBzY2hlbWUgKGl0J3Mgc3RpbGwgbm90IHF1aXRlIHRoZXJlIGFuZCB0aGUgY29sb3JzIGxvb2sgc2xpZ2h0bHlcXG4vLyBkZXNhdHVyZWQsIGFsYXMuLi4pXFxuY29uc3QgSU1BR0VfSU5WRVJUX0ZJTFRFUiA9IFxcXCJpbnZlcnQoMTAwJSkgaHVlLXJvdGF0ZSgxODBkZWcpIHNhdHVyYXRlKDEuMjUpXFxcIjtcXG5jb25zdCBkZWZhdWx0QXBwU3RhdGUgPSAoMCxfYXBwU3RhdGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXREZWZhdWx0QXBwU3RhdGUpKCk7XFxuY29uc3QgaXNQZW5kaW5nSW1hZ2VFbGVtZW50ID0gKGVsZW1lbnQsIHJlbmRlckNvbmZpZykgPT4gKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmlzSW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnQpKGVsZW1lbnQpICYmXFxuICAgICFyZW5kZXJDb25maWcuaW1hZ2VDYWNoZS5oYXMoZWxlbWVudC5maWxlSWQpO1xcbmNvbnN0IHNob3VsZFJlc2V0SW1hZ2VGaWx0ZXIgPSAoZWxlbWVudCwgcmVuZGVyQ29uZmlnKSA9PiB7XFxuICAgIHZhciBfYTtcXG4gICAgcmV0dXJuIChyZW5kZXJDb25maWcudGhlbWUgPT09IFxcXCJkYXJrXFxcIiAmJlxcbiAgICAgICAgKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmlzSW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnQpKGVsZW1lbnQpICYmXFxuICAgICAgICAhaXNQZW5kaW5nSW1hZ2VFbGVtZW50KGVsZW1lbnQsIHJlbmRlckNvbmZpZykgJiZcXG4gICAgICAgICgoX2EgPSByZW5kZXJDb25maWcuaW1hZ2VDYWNoZS5nZXQoZWxlbWVudC5maWxlSWQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubWltZVR5cGUpICE9PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uTUlNRV9UWVBFUy5zdmcpO1xcbn07XFxuY29uc3QgZ2V0RGFzaEFycmF5RGFzaGVkID0gKHN0cm9rZVdpZHRoKSA9PiBbOCwgOCArIHN0cm9rZVdpZHRoXTtcXG5jb25zdCBnZXREYXNoQXJyYXlEb3R0ZWQgPSAoc3Ryb2tlV2lkdGgpID0+IFsxLjUsIDYgKyBzdHJva2VXaWR0aF07XFxuY29uc3QgZ2V0Q2FudmFzUGFkZGluZyA9IChlbGVtZW50KSA9PiBlbGVtZW50LnR5cGUgPT09IFxcXCJmcmVlZHJhd1xcXCIgPyBlbGVtZW50LnN0cm9rZVdpZHRoICogMTIgOiAyMDtcXG5jb25zdCBnZW5lcmF0ZUVsZW1lbnRDYW52YXMgPSAoZWxlbWVudCwgem9vbSwgcmVuZGVyQ29uZmlnKSA9PiB7XFxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXFxcImNhbnZhc1xcXCIpO1xcbiAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoXFxcIjJkXFxcIik7XFxuICAgIGNvbnN0IHBhZGRpbmcgPSBnZXRDYW52YXNQYWRkaW5nKGVsZW1lbnQpO1xcbiAgICBsZXQgY2FudmFzT2Zmc2V0WCA9IDA7XFxuICAgIGxldCBjYW52YXNPZmZzZXRZID0gMDtcXG4gICAgaWYgKCgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5pc0xpbmVhckVsZW1lbnQpKGVsZW1lbnQpIHx8ICgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5pc0ZyZWVEcmF3RWxlbWVudCkoZWxlbWVudCkpIHtcXG4gICAgICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfZWxlbWVudF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRFbGVtZW50QWJzb2x1dGVDb29yZHMpKGVsZW1lbnQpO1xcbiAgICAgICAgY2FudmFzLndpZHRoID1cXG4gICAgICAgICAgICAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5kaXN0YW5jZSkoeDEsIHgyKSAqIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvICogem9vbS52YWx1ZSArXFxuICAgICAgICAgICAgICAgIHBhZGRpbmcgKiB6b29tLnZhbHVlICogMjtcXG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPVxcbiAgICAgICAgICAgICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmRpc3RhbmNlKSh5MSwgeTIpICogd2luZG93LmRldmljZVBpeGVsUmF0aW8gKiB6b29tLnZhbHVlICtcXG4gICAgICAgICAgICAgICAgcGFkZGluZyAqIHpvb20udmFsdWUgKiAyO1xcbiAgICAgICAgY2FudmFzT2Zmc2V0WCA9XFxuICAgICAgICAgICAgZWxlbWVudC54ID4geDFcXG4gICAgICAgICAgICAgICAgPyAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5kaXN0YW5jZSkoZWxlbWVudC54LCB4MSkgKiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyAqIHpvb20udmFsdWVcXG4gICAgICAgICAgICAgICAgOiAwO1xcbiAgICAgICAgY2FudmFzT2Zmc2V0WSA9XFxuICAgICAgICAgICAgZWxlbWVudC55ID4geTFcXG4gICAgICAgICAgICAgICAgPyAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5kaXN0YW5jZSkoZWxlbWVudC55LCB5MSkgKiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyAqIHpvb20udmFsdWVcXG4gICAgICAgICAgICAgICAgOiAwO1xcbiAgICAgICAgY29udGV4dC50cmFuc2xhdGUoY2FudmFzT2Zmc2V0WCwgY2FudmFzT2Zmc2V0WSk7XFxuICAgIH1cXG4gICAgZWxzZSB7XFxuICAgICAgICBjYW52YXMud2lkdGggPVxcbiAgICAgICAgICAgIGVsZW1lbnQud2lkdGggKiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyAqIHpvb20udmFsdWUgK1xcbiAgICAgICAgICAgICAgICBwYWRkaW5nICogem9vbS52YWx1ZSAqIDI7XFxuICAgICAgICBjYW52YXMuaGVpZ2h0ID1cXG4gICAgICAgICAgICBlbGVtZW50LmhlaWdodCAqIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvICogem9vbS52YWx1ZSArXFxuICAgICAgICAgICAgICAgIHBhZGRpbmcgKiB6b29tLnZhbHVlICogMjtcXG4gICAgfVxcbiAgICBjb250ZXh0LnNhdmUoKTtcXG4gICAgY29udGV4dC50cmFuc2xhdGUocGFkZGluZyAqIHpvb20udmFsdWUsIHBhZGRpbmcgKiB6b29tLnZhbHVlKTtcXG4gICAgY29udGV4dC5zY2FsZSh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyAqIHpvb20udmFsdWUsIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvICogem9vbS52YWx1ZSk7XFxuICAgIGNvbnN0IHJjID0gcm91Z2hqc19iaW5fcm91Z2hfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1tcXFwiZGVmYXVsdFxcXCJdLmNhbnZhcyhjYW52YXMpO1xcbiAgICAvLyBpbiBkYXJrIHRoZW1lLCByZXZlcnQgdGhlIGltYWdlIGNvbG9yIGZpbHRlclxcbiAgICBpZiAoc2hvdWxkUmVzZXRJbWFnZUZpbHRlcihlbGVtZW50LCByZW5kZXJDb25maWcpKSB7XFxuICAgICAgICBjb250ZXh0LmZpbHRlciA9IElNQUdFX0lOVkVSVF9GSUxURVI7XFxuICAgIH1cXG4gICAgZHJhd0VsZW1lbnRPbkNhbnZhcyhlbGVtZW50LCByYywgY29udGV4dCwgcmVuZGVyQ29uZmlnKTtcXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XFxuICAgIHJldHVybiB7XFxuICAgICAgICBlbGVtZW50LFxcbiAgICAgICAgY2FudmFzLFxcbiAgICAgICAgdGhlbWU6IHJlbmRlckNvbmZpZy50aGVtZSxcXG4gICAgICAgIGNhbnZhc1pvb206IHpvb20udmFsdWUsXFxuICAgICAgICBjYW52YXNPZmZzZXRYLFxcbiAgICAgICAgY2FudmFzT2Zmc2V0WSxcXG4gICAgfTtcXG59O1xcbmNvbnN0IERFRkFVTFRfTElOS19TSVpFID0gMTQ7XFxuY29uc3QgSU1BR0VfUExBQ0VIT0xERVJfSU1HID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcXFwiaW1nXFxcIik7XFxuSU1BR0VfUExBQ0VIT0xERVJfSU1HLnNyYyA9IGBkYXRhOiR7X2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLk1JTUVfVFlQRVMuc3ZnfSwke2VuY29kZVVSSUNvbXBvbmVudChgPHN2ZyBhcmlhLWhpZGRlbj1cXFwidHJ1ZVxcXCIgZm9jdXNhYmxlPVxcXCJmYWxzZVxcXCIgZGF0YS1wcmVmaXg9XFxcImZhc1xcXCIgZGF0YS1pY29uPVxcXCJpbWFnZVxcXCIgY2xhc3M9XFxcInN2Zy1pbmxpbmUtLWZhIGZhLWltYWdlIGZhLXctMTZcXFwiIHJvbGU9XFxcImltZ1xcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgNTEyIDUxMlxcXCI+PHBhdGggZmlsbD1cXFwiIzg4OFxcXCIgZD1cXFwiTTQ2NCA0NDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMTEyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoNDE2YzI2LjUxIDAgNDggMjEuNDkgNDggNDh2Mjg4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDh6TTExMiAxMjBjLTMwLjkyOCAwLTU2IDI1LjA3Mi01NiA1NnMyNS4wNzIgNTYgNTYgNTYgNTYtMjUuMDcyIDU2LTU2LTI1LjA3Mi01Ni01Ni01NnpNNjQgMzg0aDM4NFYyNzJsLTg3LjUxNS04Ny41MTVjLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEwyMDggMzIwbC01NS41MTUtNTUuNTE1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMNjQgMzM2djQ4elxcXCI+PC9wYXRoPjwvc3ZnPmApfWA7XFxuY29uc3QgSU1BR0VfRVJST1JfUExBQ0VIT0xERVJfSU1HID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcXFwiaW1nXFxcIik7XFxuSU1BR0VfRVJST1JfUExBQ0VIT0xERVJfSU1HLnNyYyA9IGBkYXRhOiR7X2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLk1JTUVfVFlQRVMuc3ZnfSwke2VuY29kZVVSSUNvbXBvbmVudChgPHN2ZyB2aWV3Qm94PVxcXCIwIDAgNjY4IDY2OFxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB4bWw6c3BhY2U9XFxcInByZXNlcnZlXFxcIiBzdHlsZT1cXFwiZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjJcXFwiPjxwYXRoIGQ9XFxcIk00NjQgNDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjExMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDQxNmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djI4OGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4Wk0xMTIgMTIwYy0zMC45MjggMC01NiAyNS4wNzItNTYgNTZzMjUuMDcyIDU2IDU2IDU2IDU2LTI1LjA3MiA1Ni01Ni0yNS4wNzItNTYtNTYtNTZaTTY0IDM4NGgzODRWMjcybC04Ny41MTUtODcuNTE1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMMjA4IDMyMGwtNTUuNTE1LTU1LjUxNWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDY0IDMzNnY0OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ODg7ZmlsbC1ydWxlOm5vbnplcm9cXFwiIHRyYW5zZm9ybT1cXFwibWF0cml4KC44MTcwOSAwIDAgLjgxNzA5IDEyNC44MjUgMTQ1LjgyNSlcXFwiLz48cGF0aCBkPVxcXCJNMjU2IDhDMTE5LjAzNCA4IDggMTE5LjAzMyA4IDI1NmMwIDEzNi45NjcgMTExLjAzNCAyNDggMjQ4IDI0OHMyNDgtMTExLjAzNCAyNDgtMjQ4UzM5Mi45NjcgOCAyNTYgOFptMTMwLjEwOCAxMTcuODkyYzY1LjQ0OCA2NS40NDggNzAgMTY1LjQ4MSAyMC42NzcgMjM1LjYzN0wxNTAuNDcgMTA1LjIxNmM3MC4yMDQtNDkuMzU2IDE3MC4yMjYtNDQuNzM1IDIzNS42MzggMjAuNjc2Wk0xMjUuODkyIDM4Ni4xMDhjLTY1LjQ0OC02NS40NDgtNzAtMTY1LjQ4MS0yMC42NzctMjM1LjYzN0wzNjEuNTMgNDA2Ljc4NGMtNzAuMjAzIDQ5LjM1Ni0xNzAuMjI2IDQ0LjczNi0yMzUuNjM4LTIwLjY3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ODg7ZmlsbC1ydWxlOm5vbnplcm9cXFwiIHRyYW5zZm9ybT1cXFwibWF0cml4KC4zMDM2NiAwIDAgLjMwMzY2IDUwNi44MjIgNjAuMDY1KVxcXCIvPjwvc3ZnPmApfWA7XFxuY29uc3QgZHJhd0ltYWdlUGxhY2Vob2xkZXIgPSAoZWxlbWVudCwgY29udGV4dCwgem9vbVZhbHVlKSA9PiB7XFxuICAgIGNvbnRleHQuZmlsbFN0eWxlID0gXFxcIiNFN0U3RTdcXFwiO1xcbiAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIGVsZW1lbnQud2lkdGgsIGVsZW1lbnQuaGVpZ2h0KTtcXG4gICAgY29uc3QgaW1hZ2VNaW5XaWR0aE9ySGVpZ2h0ID0gTWF0aC5taW4oZWxlbWVudC53aWR0aCwgZWxlbWVudC5oZWlnaHQpO1xcbiAgICBjb25zdCBzaXplID0gTWF0aC5taW4oaW1hZ2VNaW5XaWR0aE9ySGVpZ2h0LCBNYXRoLm1pbihpbWFnZU1pbldpZHRoT3JIZWlnaHQgKiAwLjQsIDEwMCkpO1xcbiAgICBjb250ZXh0LmRyYXdJbWFnZShlbGVtZW50LnN0YXR1cyA9PT0gXFxcImVycm9yXFxcIlxcbiAgICAgICAgPyBJTUFHRV9FUlJPUl9QTEFDRUhPTERFUl9JTUdcXG4gICAgICAgIDogSU1BR0VfUExBQ0VIT0xERVJfSU1HLCBlbGVtZW50LndpZHRoIC8gMiAtIHNpemUgLyAyLCBlbGVtZW50LmhlaWdodCAvIDIgLSBzaXplIC8gMiwgc2l6ZSwgc2l6ZSk7XFxufTtcXG5jb25zdCBkcmF3RWxlbWVudE9uQ2FudmFzID0gKGVsZW1lbnQsIHJjLCBjb250ZXh0LCByZW5kZXJDb25maWcpID0+IHtcXG4gICAgdmFyIF9hO1xcbiAgICBjb250ZXh0Lmdsb2JhbEFscGhhID0gZWxlbWVudC5vcGFjaXR5IC8gMTAwO1xcbiAgICBzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xcbiAgICAgICAgY2FzZSBcXFwicmVjdGFuZ2xlXFxcIjpcXG4gICAgICAgIGNhc2UgXFxcImRpYW1vbmRcXFwiOlxcbiAgICAgICAgY2FzZSBcXFwiZWxsaXBzZVxcXCI6IHtcXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVKb2luID0gXFxcInJvdW5kXFxcIjtcXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVDYXAgPSBcXFwicm91bmRcXFwiO1xcbiAgICAgICAgICAgIHJjLmRyYXcoZ2V0U2hhcGVGb3JFbGVtZW50KGVsZW1lbnQpKTtcXG4gICAgICAgICAgICBicmVhaztcXG4gICAgICAgIH1cXG4gICAgICAgIGNhc2UgXFxcImFycm93XFxcIjpcXG4gICAgICAgIGNhc2UgXFxcImxpbmVcXFwiOiB7XFxuICAgICAgICAgICAgY29udGV4dC5saW5lSm9pbiA9IFxcXCJyb3VuZFxcXCI7XFxuICAgICAgICAgICAgY29udGV4dC5saW5lQ2FwID0gXFxcInJvdW5kXFxcIjtcXG4gICAgICAgICAgICBnZXRTaGFwZUZvckVsZW1lbnQoZWxlbWVudCkuZm9yRWFjaCgoc2hhcGUpID0+IHtcXG4gICAgICAgICAgICAgICAgcmMuZHJhdyhzaGFwZSk7XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICB9XFxuICAgICAgICBjYXNlIFxcXCJmcmVlZHJhd1xcXCI6IHtcXG4gICAgICAgICAgICAvLyBEcmF3IGRpcmVjdGx5IHRvIGNhbnZhc1xcbiAgICAgICAgICAgIGNvbnRleHQuc2F2ZSgpO1xcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gZWxlbWVudC5zdHJva2VDb2xvcjtcXG4gICAgICAgICAgICBjb25zdCBwYXRoID0gZ2V0RnJlZURyYXdQYXRoMkQoZWxlbWVudCk7XFxuICAgICAgICAgICAgY29uc3QgZmlsbFNoYXBlID0gZ2V0U2hhcGVGb3JFbGVtZW50KGVsZW1lbnQpO1xcbiAgICAgICAgICAgIGlmIChmaWxsU2hhcGUpIHtcXG4gICAgICAgICAgICAgICAgcmMuZHJhdyhmaWxsU2hhcGUpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9IGVsZW1lbnQuc3Ryb2tlQ29sb3I7XFxuICAgICAgICAgICAgY29udGV4dC5maWxsKHBhdGgpO1xcbiAgICAgICAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfVxcbiAgICAgICAgY2FzZSBcXFwiaW1hZ2VcXFwiOiB7XFxuICAgICAgICAgICAgY29uc3QgaW1nID0gKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmlzSW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnQpKGVsZW1lbnQpXFxuICAgICAgICAgICAgICAgID8gKF9hID0gcmVuZGVyQ29uZmlnLmltYWdlQ2FjaGUuZ2V0KGVsZW1lbnQuZmlsZUlkKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmltYWdlXFxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xcbiAgICAgICAgICAgIGlmIChpbWcgIT0gbnVsbCAmJiAhKGltZyBpbnN0YW5jZW9mIFByb21pc2UpKSB7XFxuICAgICAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltZywgMCAvKiBoYXJkY29kZWQgZm9yIHRoZSBzZWxlY3Rpb24gYm94Ki8sIDAsIGVsZW1lbnQud2lkdGgsIGVsZW1lbnQuaGVpZ2h0KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgIGRyYXdJbWFnZVBsYWNlaG9sZGVyKGVsZW1lbnQsIGNvbnRleHQsIHJlbmRlckNvbmZpZy56b29tLnZhbHVlKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICB9XFxuICAgICAgICBkZWZhdWx0OiB7XFxuICAgICAgICAgICAgaWYgKCgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5pc1RleHRFbGVtZW50KShlbGVtZW50KSkge1xcbiAgICAgICAgICAgICAgICBjb25zdCBydGwgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5pc1JUTCkoZWxlbWVudC50ZXh0KTtcXG4gICAgICAgICAgICAgICAgY29uc3Qgc2hvdWxkVGVtcG9yYXJpbHlBdHRhY2ggPSBydGwgJiYgIWNvbnRleHQuY2FudmFzLmlzQ29ubmVjdGVkO1xcbiAgICAgICAgICAgICAgICBpZiAoc2hvdWxkVGVtcG9yYXJpbHlBdHRhY2gpIHtcXG4gICAgICAgICAgICAgICAgICAgIC8vIHRvIGNvcnJlY3RseSByZW5kZXIgUlRMIHRleHQgbWl4ZWQgd2l0aCBMVFIsIHdlIGhhdmUgdG8gYXBwZW5kIGl0XFxuICAgICAgICAgICAgICAgICAgICAvLyB0byB0aGUgRE9NXFxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRleHQuY2FudmFzKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBjb250ZXh0LmNhbnZhcy5zZXRBdHRyaWJ1dGUoXFxcImRpclxcXCIsIHJ0bCA/IFxcXCJydGxcXFwiIDogXFxcImx0clxcXCIpO1xcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNhdmUoKTtcXG4gICAgICAgICAgICAgICAgY29udGV4dC5mb250ID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZ2V0Rm9udFN0cmluZykoZWxlbWVudCk7XFxuICAgICAgICAgICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gZWxlbWVudC5zdHJva2VDb2xvcjtcXG4gICAgICAgICAgICAgICAgY29udGV4dC50ZXh0QWxpZ24gPSBlbGVtZW50LnRleHRBbGlnbjtcXG4gICAgICAgICAgICAgICAgLy8gQ2FudmFzIGRvZXMgbm90IHN1cHBvcnQgbXVsdGlsaW5lIHRleHQgYnkgZGVmYXVsdFxcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lcyA9IGVsZW1lbnQudGV4dC5yZXBsYWNlKC9cXFxcclxcXFxuPy9nLCBcXFwiXFxcXG5cXFwiKS5zcGxpdChcXFwiXFxcXG5cXFwiKTtcXG4gICAgICAgICAgICAgICAgY29uc3QgbGluZUhlaWdodCA9IGVsZW1lbnQuY29udGFpbmVySWRcXG4gICAgICAgICAgICAgICAgICAgID8gKDAsX2VsZW1lbnRfdGV4dEVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5nZXRBcHByb3hMaW5lSGVpZ2h0KSgoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5nZXRGb250U3RyaW5nKShlbGVtZW50KSlcXG4gICAgICAgICAgICAgICAgICAgIDogZWxlbWVudC5oZWlnaHQgLyBsaW5lcy5sZW5ndGg7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHZlcnRpY2FsT2Zmc2V0ID0gZWxlbWVudC5oZWlnaHQgLSBlbGVtZW50LmJhc2VsaW5lO1xcbiAgICAgICAgICAgICAgICBjb25zdCBob3Jpem9udGFsT2Zmc2V0ID0gZWxlbWVudC50ZXh0QWxpZ24gPT09IFxcXCJjZW50ZXJcXFwiXFxuICAgICAgICAgICAgICAgICAgICA/IGVsZW1lbnQud2lkdGggLyAyXFxuICAgICAgICAgICAgICAgICAgICA6IGVsZW1lbnQudGV4dEFsaWduID09PSBcXFwicmlnaHRcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBlbGVtZW50LndpZHRoXFxuICAgICAgICAgICAgICAgICAgICAgICAgOiAwO1xcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGluZXMubGVuZ3RoOyBpbmRleCsrKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KGxpbmVzW2luZGV4XSwgaG9yaXpvbnRhbE9mZnNldCwgKGluZGV4ICsgMSkgKiBsaW5lSGVpZ2h0IC0gdmVydGljYWxPZmZzZXQpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xcbiAgICAgICAgICAgICAgICBpZiAoc2hvdWxkVGVtcG9yYXJpbHlBdHRhY2gpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQuY2FudmFzLnJlbW92ZSgpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuaW1wbGVtZW50ZWQgdHlwZSAke2VsZW1lbnQudHlwZX1gKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgY29udGV4dC5nbG9iYWxBbHBoYSA9IDE7XFxufTtcXG5jb25zdCBlbGVtZW50V2l0aENhbnZhc0NhY2hlID0gbmV3IFdlYWtNYXAoKTtcXG5jb25zdCBzaGFwZUNhY2hlID0gbmV3IFdlYWtNYXAoKTtcXG5jb25zdCBnZXRTaGFwZUZvckVsZW1lbnQgPSAoZWxlbWVudCkgPT4gc2hhcGVDYWNoZS5nZXQoZWxlbWVudCk7XFxuY29uc3Qgc2V0U2hhcGVGb3JFbGVtZW50ID0gKGVsZW1lbnQsIHNoYXBlKSA9PiBzaGFwZUNhY2hlLnNldChlbGVtZW50LCBzaGFwZSk7XFxuY29uc3QgaW52YWxpZGF0ZVNoYXBlRm9yRWxlbWVudCA9IChlbGVtZW50KSA9PiBzaGFwZUNhY2hlLmRlbGV0ZShlbGVtZW50KTtcXG5jb25zdCBnZW5lcmF0ZVJvdWdoT3B0aW9ucyA9IChlbGVtZW50LCBjb250aW51b3VzUGF0aCA9IGZhbHNlKSA9PiB7XFxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XFxuICAgICAgICBzZWVkOiBlbGVtZW50LnNlZWQsXFxuICAgICAgICBzdHJva2VMaW5lRGFzaDogZWxlbWVudC5zdHJva2VTdHlsZSA9PT0gXFxcImRhc2hlZFxcXCJcXG4gICAgICAgICAgICA/IGdldERhc2hBcnJheURhc2hlZChlbGVtZW50LnN0cm9rZVdpZHRoKVxcbiAgICAgICAgICAgIDogZWxlbWVudC5zdHJva2VTdHlsZSA9PT0gXFxcImRvdHRlZFxcXCJcXG4gICAgICAgICAgICAgICAgPyBnZXREYXNoQXJyYXlEb3R0ZWQoZWxlbWVudC5zdHJva2VXaWR0aClcXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXFxuICAgICAgICAvLyBmb3Igbm9uLXNvbGlkIHN0cm9rZXMsIGRpc2FibGUgbXVsdGlTdHJva2UgYmVjYXVzZSBpdCB0ZW5kcyB0byBtYWtlXFxuICAgICAgICAvLyBkYXNoZXMvZG90cyBvdmVybGF5IGVhY2ggb3RoZXJcXG4gICAgICAgIGRpc2FibGVNdWx0aVN0cm9rZTogZWxlbWVudC5zdHJva2VTdHlsZSAhPT0gXFxcInNvbGlkXFxcIixcXG4gICAgICAgIC8vIGZvciBub24tc29saWQgc3Ryb2tlcywgaW5jcmVhc2UgdGhlIHdpZHRoIGEgYml0IHRvIG1ha2UgaXQgdmlzdWFsbHlcXG4gICAgICAgIC8vIHNpbWlsYXIgdG8gc29saWQgc3Ryb2tlcywgYmVjYXVzZSB3ZSdyZSBhbHNvIGRpc2FibGluZyBtdWx0aVN0cm9rZVxcbiAgICAgICAgc3Ryb2tlV2lkdGg6IGVsZW1lbnQuc3Ryb2tlU3R5bGUgIT09IFxcXCJzb2xpZFxcXCJcXG4gICAgICAgICAgICA/IGVsZW1lbnQuc3Ryb2tlV2lkdGggKyAwLjVcXG4gICAgICAgICAgICA6IGVsZW1lbnQuc3Ryb2tlV2lkdGgsXFxuICAgICAgICAvLyB3aGVuIGluY3JlYXNpbmcgc3Ryb2tlV2lkdGgsIHdlIG11c3QgZXhwbGljaXRseSBzZXQgZmlsbFdlaWdodCBhbmRcXG4gICAgICAgIC8vIGhhY2h1cmVHYXAgYmVjYXVzZSBpZiBub3Qgc3BlY2lmaWVkLCByb3VnaGpzIHVzZXMgc3Ryb2tlV2lkdGggdG9cXG4gICAgICAgIC8vIGNhbGN1bGF0ZSB0aGVtIChhbmQgd2UgZG9uJ3Qgd2FudCB0aGUgZmlsbHMgdG8gYmUgbW9kaWZpZWQpXFxuICAgICAgICBmaWxsV2VpZ2h0OiBlbGVtZW50LnN0cm9rZVdpZHRoIC8gMixcXG4gICAgICAgIGhhY2h1cmVHYXA6IGVsZW1lbnQuc3Ryb2tlV2lkdGggKiA0LFxcbiAgICAgICAgcm91Z2huZXNzOiBlbGVtZW50LnJvdWdobmVzcyxcXG4gICAgICAgIHN0cm9rZTogZWxlbWVudC5zdHJva2VDb2xvcixcXG4gICAgICAgIHByZXNlcnZlVmVydGljZXM6IGNvbnRpbnVvdXNQYXRoLFxcbiAgICB9O1xcbiAgICBzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xcbiAgICAgICAgY2FzZSBcXFwicmVjdGFuZ2xlXFxcIjpcXG4gICAgICAgIGNhc2UgXFxcImRpYW1vbmRcXFwiOlxcbiAgICAgICAgY2FzZSBcXFwiZWxsaXBzZVxcXCI6IHtcXG4gICAgICAgICAgICBvcHRpb25zLmZpbGxTdHlsZSA9IGVsZW1lbnQuZmlsbFN0eWxlO1xcbiAgICAgICAgICAgIG9wdGlvbnMuZmlsbCA9XFxuICAgICAgICAgICAgICAgIGVsZW1lbnQuYmFja2dyb3VuZENvbG9yID09PSBcXFwidHJhbnNwYXJlbnRcXFwiXFxuICAgICAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxcbiAgICAgICAgICAgICAgICAgICAgOiBlbGVtZW50LmJhY2tncm91bmRDb2xvcjtcXG4gICAgICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSBcXFwiZWxsaXBzZVxcXCIpIHtcXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5jdXJ2ZUZpdHRpbmcgPSAxO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucztcXG4gICAgICAgIH1cXG4gICAgICAgIGNhc2UgXFxcImxpbmVcXFwiOlxcbiAgICAgICAgY2FzZSBcXFwiZnJlZWRyYXdcXFwiOiB7XFxuICAgICAgICAgICAgaWYgKCgwLF9tYXRoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uaXNQYXRoQUxvb3ApKGVsZW1lbnQucG9pbnRzKSkge1xcbiAgICAgICAgICAgICAgICBvcHRpb25zLmZpbGxTdHlsZSA9IGVsZW1lbnQuZmlsbFN0eWxlO1xcbiAgICAgICAgICAgICAgICBvcHRpb25zLmZpbGwgPVxcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5iYWNrZ3JvdW5kQ29sb3IgPT09IFxcXCJ0cmFuc3BhcmVudFxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZWxlbWVudC5iYWNrZ3JvdW5kQ29sb3I7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiBvcHRpb25zO1xcbiAgICAgICAgfVxcbiAgICAgICAgY2FzZSBcXFwiYXJyb3dcXFwiOlxcbiAgICAgICAgICAgIHJldHVybiBvcHRpb25zO1xcbiAgICAgICAgZGVmYXVsdDoge1xcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5pbXBsZW1lbnRlZCB0eXBlICR7ZWxlbWVudC50eXBlfWApO1xcbiAgICAgICAgfVxcbiAgICB9XFxufTtcXG4vKipcXG4gKiBHZW5lcmF0ZXMgdGhlIGVsZW1lbnQncyBzaGFwZSBhbmQgcHV0cyBpdCBpbnRvIHRoZSBjYWNoZS5cXG4gKiBAcGFyYW0gZWxlbWVudFxcbiAqIEBwYXJhbSBnZW5lcmF0b3JcXG4gKi9cXG5jb25zdCBnZW5lcmF0ZUVsZW1lbnRTaGFwZSA9IChlbGVtZW50LCBnZW5lcmF0b3IpID0+IHtcXG4gICAgbGV0IHNoYXBlID0gc2hhcGVDYWNoZS5nZXQoZWxlbWVudCk7XFxuICAgIC8vIGBudWxsYCBpbmRpY2F0ZXMgbm8gcmMgc2hhcGUgYXBwbGljYWJsZSBmb3IgdGhpcyBlbGVtZW50IHR5cGVcXG4gICAgLy8gKD0gZG8gbm90IGdlbmVyYXRlIGFueXRoaW5nKVxcbiAgICBpZiAoc2hhcGUgPT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgZWxlbWVudFdpdGhDYW52YXNDYWNoZS5kZWxldGUoZWxlbWVudCk7XFxuICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xcbiAgICAgICAgICAgIGNhc2UgXFxcInJlY3RhbmdsZVxcXCI6XFxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnN0cm9rZVNoYXJwbmVzcyA9PT0gXFxcInJvdW5kXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdyA9IGVsZW1lbnQud2lkdGg7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoID0gZWxlbWVudC5oZWlnaHQ7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCByID0gTWF0aC5taW4odywgaCkgKiAwLjI1O1xcbiAgICAgICAgICAgICAgICAgICAgc2hhcGUgPSBnZW5lcmF0b3IucGF0aChgTSAke3J9IDAgTCAke3cgLSByfSAwIFEgJHt3fSAwLCAke3d9ICR7cn0gTCAke3d9ICR7aCAtIHJ9IFEgJHt3fSAke2h9LCAke3cgLSByfSAke2h9IEwgJHtyfSAke2h9IFEgMCAke2h9LCAwICR7aCAtIHJ9IEwgMCAke3J9IFEgMCAwLCAke3J9IDBgLCBnZW5lcmF0ZVJvdWdoT3B0aW9ucyhlbGVtZW50LCB0cnVlKSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBzaGFwZSA9IGdlbmVyYXRvci5yZWN0YW5nbGUoMCwgMCwgZWxlbWVudC53aWR0aCwgZWxlbWVudC5oZWlnaHQsIGdlbmVyYXRlUm91Z2hPcHRpb25zKGVsZW1lbnQpKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBzZXRTaGFwZUZvckVsZW1lbnQoZWxlbWVudCwgc2hhcGUpO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlIFxcXCJkaWFtb25kXFxcIjoge1xcbiAgICAgICAgICAgICAgICBjb25zdCBbdG9wWCwgdG9wWSwgcmlnaHRYLCByaWdodFksIGJvdHRvbVgsIGJvdHRvbVksIGxlZnRYLCBsZWZ0WV0gPSAoMCxfZWxlbWVudF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXREaWFtb25kUG9pbnRzKShlbGVtZW50KTtcXG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuc3Ryb2tlU2hhcnBuZXNzID09PSBcXFwicm91bmRcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICBzaGFwZSA9IGdlbmVyYXRvci5wYXRoKGBNICR7dG9wWCArIChyaWdodFggLSB0b3BYKSAqIDAuMjV9ICR7dG9wWSArIChyaWdodFkgLSB0b3BZKSAqIDAuMjV9IEwgJHtyaWdodFggLSAocmlnaHRYIC0gdG9wWCkgKiAwLjI1fSAke3JpZ2h0WSAtIChyaWdodFkgLSB0b3BZKSAqIDAuMjV9XFxuICAgICAgICAgICAgQyAke3JpZ2h0WH0gJHtyaWdodFl9LCAke3JpZ2h0WH0gJHtyaWdodFl9LCAke3JpZ2h0WCAtIChyaWdodFggLSBib3R0b21YKSAqIDAuMjV9ICR7cmlnaHRZICsgKGJvdHRvbVkgLSByaWdodFkpICogMC4yNX1cXG4gICAgICAgICAgICBMICR7Ym90dG9tWCArIChyaWdodFggLSBib3R0b21YKSAqIDAuMjV9ICR7Ym90dG9tWSAtIChib3R0b21ZIC0gcmlnaHRZKSAqIDAuMjV9XFxuICAgICAgICAgICAgQyAke2JvdHRvbVh9ICR7Ym90dG9tWX0sICR7Ym90dG9tWH0gJHtib3R0b21ZfSwgJHtib3R0b21YIC0gKGJvdHRvbVggLSBsZWZ0WCkgKiAwLjI1fSAke2JvdHRvbVkgLSAoYm90dG9tWSAtIGxlZnRZKSAqIDAuMjV9XFxuICAgICAgICAgICAgTCAke2xlZnRYICsgKGJvdHRvbVggLSBsZWZ0WCkgKiAwLjI1fSAke2xlZnRZICsgKGJvdHRvbVkgLSBsZWZ0WSkgKiAwLjI1fVxcbiAgICAgICAgICAgIEMgJHtsZWZ0WH0gJHtsZWZ0WX0sICR7bGVmdFh9ICR7bGVmdFl9LCAke2xlZnRYICsgKHRvcFggLSBsZWZ0WCkgKiAwLjI1fSAke2xlZnRZIC0gKGxlZnRZIC0gdG9wWSkgKiAwLjI1fVxcbiAgICAgICAgICAgIEwgJHt0b3BYIC0gKHRvcFggLSBsZWZ0WCkgKiAwLjI1fSAke3RvcFkgKyAobGVmdFkgLSB0b3BZKSAqIDAuMjV9XFxuICAgICAgICAgICAgQyAke3RvcFh9ICR7dG9wWX0sICR7dG9wWH0gJHt0b3BZfSwgJHt0b3BYICsgKHJpZ2h0WCAtIHRvcFgpICogMC4yNX0gJHt0b3BZICsgKHJpZ2h0WSAtIHRvcFkpICogMC4yNX1gLCBnZW5lcmF0ZVJvdWdoT3B0aW9ucyhlbGVtZW50LCB0cnVlKSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBzaGFwZSA9IGdlbmVyYXRvci5wb2x5Z29uKFtcXG4gICAgICAgICAgICAgICAgICAgICAgICBbdG9wWCwgdG9wWV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgW3JpZ2h0WCwgcmlnaHRZXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBbYm90dG9tWCwgYm90dG9tWV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgW2xlZnRYLCBsZWZ0WV0sXFxuICAgICAgICAgICAgICAgICAgICBdLCBnZW5lcmF0ZVJvdWdoT3B0aW9ucyhlbGVtZW50KSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgc2V0U2hhcGVGb3JFbGVtZW50KGVsZW1lbnQsIHNoYXBlKTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNhc2UgXFxcImVsbGlwc2VcXFwiOlxcbiAgICAgICAgICAgICAgICBzaGFwZSA9IGdlbmVyYXRvci5lbGxpcHNlKGVsZW1lbnQud2lkdGggLyAyLCBlbGVtZW50LmhlaWdodCAvIDIsIGVsZW1lbnQud2lkdGgsIGVsZW1lbnQuaGVpZ2h0LCBnZW5lcmF0ZVJvdWdoT3B0aW9ucyhlbGVtZW50KSk7XFxuICAgICAgICAgICAgICAgIHNldFNoYXBlRm9yRWxlbWVudChlbGVtZW50LCBzaGFwZSk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgXFxcImxpbmVcXFwiOlxcbiAgICAgICAgICAgIGNhc2UgXFxcImFycm93XFxcIjoge1xcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gZ2VuZXJhdGVSb3VnaE9wdGlvbnMoZWxlbWVudCk7XFxuICAgICAgICAgICAgICAgIC8vIHBvaW50cyBhcnJheSBjYW4gYmUgZW1wdHkgaW4gdGhlIGJlZ2lubmluZywgc28gaXQgaXMgaW1wb3J0YW50IHRvIGFkZFxcbiAgICAgICAgICAgICAgICAvLyBpbml0aWFsIHBvc2l0aW9uIHRvIGl0XFxuICAgICAgICAgICAgICAgIGNvbnN0IHBvaW50cyA9IGVsZW1lbnQucG9pbnRzLmxlbmd0aCA/IGVsZW1lbnQucG9pbnRzIDogW1swLCAwXV07XFxuICAgICAgICAgICAgICAgIC8vIGN1cnZlIGlzIGFsd2F5cyB0aGUgZmlyc3QgZWxlbWVudFxcbiAgICAgICAgICAgICAgICAvLyB0aGlzIHNpbXBsaWZpZXMgZmluZGluZyB0aGUgY3VydmUgZm9yIGFuIGVsZW1lbnRcXG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuc3Ryb2tlU2hhcnBuZXNzID09PSBcXFwic2hhcnBcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5maWxsKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGUgPSBbZ2VuZXJhdG9yLnBvbHlnb24ocG9pbnRzLCBvcHRpb25zKV07XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBzaGFwZSA9IFtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmxpbmVhclBhdGgocG9pbnRzLCBvcHRpb25zKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBdO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgc2hhcGUgPSBbZ2VuZXJhdG9yLmN1cnZlKHBvaW50cywgb3B0aW9ucyldO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIC8vIGFkZCBsaW5lcyBvbmx5IGluIGFycm93XFxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IFxcXCJhcnJvd1xcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgc3RhcnRBcnJvd2hlYWQgPSBudWxsLCBlbmRBcnJvd2hlYWQgPSBcXFwiYXJyb3dcXFwiIH0gPSBlbGVtZW50O1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2V0QXJyb3doZWFkU2hhcGVzID0gKGVsZW1lbnQsIHNoYXBlLCBwb3NpdGlvbiwgYXJyb3doZWFkKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJyb3doZWFkUG9pbnRzID0gKDAsX2VsZW1lbnRfYm91bmRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0QXJyb3doZWFkUG9pbnRzKShlbGVtZW50LCBzaGFwZSwgcG9zaXRpb24sIGFycm93aGVhZCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFycm93aGVhZFBvaW50cyA9PT0gbnVsbCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVyIGFycm93aGVhZHMgaGVyZS4uLlxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcnJvd2hlYWQgPT09IFxcXCJkb3RcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFt4LCB5LCByXSA9IGFycm93aGVhZFBvaW50cztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci5jaXJjbGUoeCwgeSwgciwgT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zKSwgeyBmaWxsOiBlbGVtZW50LnN0cm9rZUNvbG9yLCBmaWxsU3R5bGU6IFxcXCJzb2xpZFxcXCIsIHN0cm9rZTogXFxcIm5vbmVcXFwiIH0pKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFycm93aGVhZCA9PT0gXFxcInRyaWFuZ2xlXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbeCwgeSwgeDIsIHkyLCB4MywgeTNdID0gYXJyb3doZWFkUG9pbnRzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbHdheXMgdXNlIHNvbGlkIHN0cm9rZSBmb3IgdHJpYW5nbGUgYXJyb3doZWFkXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBvcHRpb25zLnN0cm9rZUxpbmVEYXNoO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLnBvbHlnb24oW1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt4LCB5XSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbeDIsIHkyXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbeDMsIHkzXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbeCwgeV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLCBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMpLCB7IGZpbGw6IGVsZW1lbnQuc3Ryb2tlQ29sb3IsIGZpbGxTdHlsZTogXFxcInNvbGlkXFxcIiB9KSksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFycm93IGFycm93aGVhZHNcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbeDIsIHkyLCB4MywgeTMsIHg0LCB5NF0gPSBhcnJvd2hlYWRQb2ludHM7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuc3Ryb2tlU3R5bGUgPT09IFxcXCJkb3R0ZWRcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBkb3R0ZWQgYXJyb3dzIGNhcHMsIHJlZHVjZSBnYXAgdG8gbWFrZSBpdCBtb3JlIGxlZ2libGVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGFzaCA9IGdldERhc2hBcnJheURvdHRlZChlbGVtZW50LnN0cm9rZVdpZHRoIC0gMSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuc3Ryb2tlTGluZURhc2ggPSBbZGFzaFswXSwgZGFzaFsxXSAtIDFdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHNvbGlkL2Rhc2hlZCwga2VlcCBzb2xpZCBhcnJvdyBjYXBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG9wdGlvbnMuc3Ryb2tlTGluZURhc2g7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci5saW5lKHgzLCB5MywgeDIsIHkyLCBvcHRpb25zKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmxpbmUoeDQsIHk0LCB4MiwgeTIsIG9wdGlvbnMpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIF07XFxuICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0QXJyb3doZWFkICE9PSBudWxsKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2hhcGVzID0gZ2V0QXJyb3doZWFkU2hhcGVzKGVsZW1lbnQsIHNoYXBlLCBcXFwic3RhcnRcXFwiLCBzdGFydEFycm93aGVhZCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGUucHVzaCguLi5zaGFwZXMpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVuZEFycm93aGVhZCAhPT0gbnVsbCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbmRBcnJvd2hlYWQgPT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBIZXksIHdlIGhhdmUgYW4gb2xkIGFycm93IGhlcmUhXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNoYXBlcyA9IGdldEFycm93aGVhZFNoYXBlcyhlbGVtZW50LCBzaGFwZSwgXFxcImVuZFxcXCIsIGVuZEFycm93aGVhZCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGUucHVzaCguLi5zaGFwZXMpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHNldFNoYXBlRm9yRWxlbWVudChlbGVtZW50LCBzaGFwZSk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBjYXNlIFxcXCJmcmVlZHJhd1xcXCI6IHtcXG4gICAgICAgICAgICAgICAgZ2VuZXJhdGVGcmVlRHJhd1NoYXBlKGVsZW1lbnQpO1xcbiAgICAgICAgICAgICAgICBpZiAoKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5pc1BhdGhBTG9vcCkoZWxlbWVudC5wb2ludHMpKSB7XFxuICAgICAgICAgICAgICAgICAgICAvLyBnZW5lcmF0ZSByb3VnaCBwb2x5Z29uIHRvIGZpbGwgZnJlZWRyYXcgc2hhcGVcXG4gICAgICAgICAgICAgICAgICAgIHNoYXBlID0gZ2VuZXJhdG9yLnBvbHlnb24oZWxlbWVudC5wb2ludHMsIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2VuZXJhdGVSb3VnaE9wdGlvbnMoZWxlbWVudCkpLCB7IHN0cm9rZTogXFxcIm5vbmVcXFwiIH0pKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHNoYXBlID0gbnVsbDtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBzZXRTaGFwZUZvckVsZW1lbnQoZWxlbWVudCwgc2hhcGUpO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY2FzZSBcXFwidGV4dFxcXCI6XFxuICAgICAgICAgICAgY2FzZSBcXFwiaW1hZ2VcXFwiOiB7XFxuICAgICAgICAgICAgICAgIC8vIGp1c3QgdG8gZW5zdXJlIHdlIGRvbid0IHJlZ2VuZXJhdGUgZWxlbWVudC5jYW52YXMgb24gcmVyZW5kZXJzXFxuICAgICAgICAgICAgICAgIHNldFNoYXBlRm9yRWxlbWVudChlbGVtZW50LCBudWxsKTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICB9XFxufTtcXG5jb25zdCBnZW5lcmF0ZUVsZW1lbnRXaXRoQ2FudmFzID0gKGVsZW1lbnQsIHJlbmRlckNvbmZpZykgPT4ge1xcbiAgICBjb25zdCB6b29tID0gcmVuZGVyQ29uZmlnID8gcmVuZGVyQ29uZmlnLnpvb20gOiBkZWZhdWx0QXBwU3RhdGUuem9vbTtcXG4gICAgY29uc3QgcHJldkVsZW1lbnRXaXRoQ2FudmFzID0gZWxlbWVudFdpdGhDYW52YXNDYWNoZS5nZXQoZWxlbWVudCk7XFxuICAgIGNvbnN0IHNob3VsZFJlZ2VuZXJhdGVCZWNhdXNlWm9vbSA9IHByZXZFbGVtZW50V2l0aENhbnZhcyAmJlxcbiAgICAgICAgcHJldkVsZW1lbnRXaXRoQ2FudmFzLmNhbnZhc1pvb20gIT09IHpvb20udmFsdWUgJiZcXG4gICAgICAgICEocmVuZGVyQ29uZmlnID09PSBudWxsIHx8IHJlbmRlckNvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVuZGVyQ29uZmlnLnNob3VsZENhY2hlSWdub3JlWm9vbSk7XFxuICAgIGlmICghcHJldkVsZW1lbnRXaXRoQ2FudmFzIHx8XFxuICAgICAgICBzaG91bGRSZWdlbmVyYXRlQmVjYXVzZVpvb20gfHxcXG4gICAgICAgIHByZXZFbGVtZW50V2l0aENhbnZhcy50aGVtZSAhPT0gcmVuZGVyQ29uZmlnLnRoZW1lKSB7XFxuICAgICAgICBjb25zdCBlbGVtZW50V2l0aENhbnZhcyA9IGdlbmVyYXRlRWxlbWVudENhbnZhcyhlbGVtZW50LCB6b29tLCByZW5kZXJDb25maWcpO1xcbiAgICAgICAgZWxlbWVudFdpdGhDYW52YXNDYWNoZS5zZXQoZWxlbWVudCwgZWxlbWVudFdpdGhDYW52YXMpO1xcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRXaXRoQ2FudmFzO1xcbiAgICB9XFxuICAgIHJldHVybiBwcmV2RWxlbWVudFdpdGhDYW52YXM7XFxufTtcXG5jb25zdCBkcmF3RWxlbWVudEZyb21DYW52YXMgPSAoZWxlbWVudFdpdGhDYW52YXMsIHJjLCBjb250ZXh0LCByZW5kZXJDb25maWcpID0+IHtcXG4gICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRXaXRoQ2FudmFzLmVsZW1lbnQ7XFxuICAgIGNvbnN0IHBhZGRpbmcgPSBnZXRDYW52YXNQYWRkaW5nKGVsZW1lbnQpO1xcbiAgICBsZXQgW3gxLCB5MSwgeDIsIHkyXSA9ICgwLF9lbGVtZW50X2JvdW5kc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmdldEVsZW1lbnRBYnNvbHV0ZUNvb3JkcykoZWxlbWVudCk7XFxuICAgIC8vIEZyZWUgZHJhdyBlbGVtZW50cyB3aWxsIG90aGVyd2lzZSBcXFwic2h1ZmZsZVxcXCIgYXMgdGhlIG1pbiB4IGFuZCB5IGNoYW5nZVxcbiAgICBpZiAoKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmlzRnJlZURyYXdFbGVtZW50KShlbGVtZW50KSkge1xcbiAgICAgICAgeDEgPSBNYXRoLmZsb29yKHgxKTtcXG4gICAgICAgIHgyID0gTWF0aC5jZWlsKHgyKTtcXG4gICAgICAgIHkxID0gTWF0aC5mbG9vcih5MSk7XFxuICAgICAgICB5MiA9IE1hdGguY2VpbCh5Mik7XFxuICAgIH1cXG4gICAgY29uc3QgY3ggPSAoKHgxICsgeDIpIC8gMiArIHJlbmRlckNvbmZpZy5zY3JvbGxYKSAqIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xcbiAgICBjb25zdCBjeSA9ICgoeTEgKyB5MikgLyAyICsgcmVuZGVyQ29uZmlnLnNjcm9sbFkpICogd2luZG93LmRldmljZVBpeGVsUmF0aW87XFxuICAgIGNvbnN0IF9pc1BlbmRpbmdJbWFnZUVsZW1lbnQgPSBpc1BlbmRpbmdJbWFnZUVsZW1lbnQoZWxlbWVudCwgcmVuZGVyQ29uZmlnKTtcXG4gICAgY29uc3Qgc2NhbGVYRmFjdG9yID0gXFxcInNjYWxlXFxcIiBpbiBlbGVtZW50V2l0aENhbnZhcy5lbGVtZW50ICYmICFfaXNQZW5kaW5nSW1hZ2VFbGVtZW50XFxuICAgICAgICA/IGVsZW1lbnRXaXRoQ2FudmFzLmVsZW1lbnQuc2NhbGVbMF1cXG4gICAgICAgIDogMTtcXG4gICAgY29uc3Qgc2NhbGVZRmFjdG9yID0gXFxcInNjYWxlXFxcIiBpbiBlbGVtZW50V2l0aENhbnZhcy5lbGVtZW50ICYmICFfaXNQZW5kaW5nSW1hZ2VFbGVtZW50XFxuICAgICAgICA/IGVsZW1lbnRXaXRoQ2FudmFzLmVsZW1lbnQuc2NhbGVbMV1cXG4gICAgICAgIDogMTtcXG4gICAgY29udGV4dC5zYXZlKCk7XFxuICAgIGNvbnRleHQuc2NhbGUoKDEgLyB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbykgKiBzY2FsZVhGYWN0b3IsICgxIC8gd2luZG93LmRldmljZVBpeGVsUmF0aW8pICogc2NhbGVZRmFjdG9yKTtcXG4gICAgY29udGV4dC50cmFuc2xhdGUoY3ggKiBzY2FsZVhGYWN0b3IsIGN5ICogc2NhbGVZRmFjdG9yKTtcXG4gICAgY29udGV4dC5yb3RhdGUoZWxlbWVudC5hbmdsZSAqIHNjYWxlWEZhY3RvciAqIHNjYWxlWUZhY3Rvcik7XFxuICAgIGNvbnRleHQuZHJhd0ltYWdlKGVsZW1lbnRXaXRoQ2FudmFzLmNhbnZhcywgKC0oeDIgLSB4MSkgLyAyKSAqIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIC1cXG4gICAgICAgIChwYWRkaW5nICogZWxlbWVudFdpdGhDYW52YXMuY2FudmFzWm9vbSkgLyBlbGVtZW50V2l0aENhbnZhcy5jYW52YXNab29tLCAoLSh5MiAtIHkxKSAvIDIpICogd2luZG93LmRldmljZVBpeGVsUmF0aW8gLVxcbiAgICAgICAgKHBhZGRpbmcgKiBlbGVtZW50V2l0aENhbnZhcy5jYW52YXNab29tKSAvIGVsZW1lbnRXaXRoQ2FudmFzLmNhbnZhc1pvb20sIGVsZW1lbnRXaXRoQ2FudmFzLmNhbnZhcy53aWR0aCAvIGVsZW1lbnRXaXRoQ2FudmFzLmNhbnZhc1pvb20sIGVsZW1lbnRXaXRoQ2FudmFzLmNhbnZhcy5oZWlnaHQgLyBlbGVtZW50V2l0aENhbnZhcy5jYW52YXNab29tKTtcXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XFxuICAgIC8vIENsZWFyIHRoZSBuZXN0ZWQgZWxlbWVudCB3ZSBhcHBlbmRlZCB0byB0aGUgRE9NXFxufTtcXG5jb25zdCByZW5kZXJFbGVtZW50ID0gKGVsZW1lbnQsIHJjLCBjb250ZXh0LCByZW5kZXJDb25maWcpID0+IHtcXG4gICAgY29uc3QgZ2VuZXJhdG9yID0gcmMuZ2VuZXJhdG9yO1xcbiAgICBzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xcbiAgICAgICAgY2FzZSBcXFwic2VsZWN0aW9uXFxcIjoge1xcbiAgICAgICAgICAgIGNvbnRleHQuc2F2ZSgpO1xcbiAgICAgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKGVsZW1lbnQueCArIHJlbmRlckNvbmZpZy5zY3JvbGxYLCBlbGVtZW50LnkgKyByZW5kZXJDb25maWcuc2Nyb2xsWSk7XFxuICAgICAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPSBcXFwicmdiYSgwLCAwLCAyNTUsIDAuMTApXFxcIjtcXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIGVsZW1lbnQud2lkdGgsIGVsZW1lbnQuaGVpZ2h0KTtcXG4gICAgICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTtcXG4gICAgICAgICAgICBicmVhaztcXG4gICAgICAgIH1cXG4gICAgICAgIGNhc2UgXFxcImZyZWVkcmF3XFxcIjoge1xcbiAgICAgICAgICAgIGdlbmVyYXRlRWxlbWVudFNoYXBlKGVsZW1lbnQsIGdlbmVyYXRvcik7XFxuICAgICAgICAgICAgaWYgKHJlbmRlckNvbmZpZy5pc0V4cG9ydGluZykge1xcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50V2l0aENhbnZhcyA9IGdlbmVyYXRlRWxlbWVudFdpdGhDYW52YXMoZWxlbWVudCwgcmVuZGVyQ29uZmlnKTtcXG4gICAgICAgICAgICAgICAgZHJhd0VsZW1lbnRGcm9tQ2FudmFzKGVsZW1lbnRXaXRoQ2FudmFzLCByYywgY29udGV4dCwgcmVuZGVyQ29uZmlnKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfZWxlbWVudF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRFbGVtZW50QWJzb2x1dGVDb29yZHMpKGVsZW1lbnQpO1xcbiAgICAgICAgICAgICAgICBjb25zdCBjeCA9ICh4MSArIHgyKSAvIDIgKyByZW5kZXJDb25maWcuc2Nyb2xsWDtcXG4gICAgICAgICAgICAgICAgY29uc3QgY3kgPSAoeTEgKyB5MikgLyAyICsgcmVuZGVyQ29uZmlnLnNjcm9sbFk7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHNoaWZ0WCA9ICh4MiAtIHgxKSAvIDIgLSAoZWxlbWVudC54IC0geDEpO1xcbiAgICAgICAgICAgICAgICBjb25zdCBzaGlmdFkgPSAoeTIgLSB5MSkgLyAyIC0gKGVsZW1lbnQueSAtIHkxKTtcXG4gICAgICAgICAgICAgICAgY29udGV4dC5zYXZlKCk7XFxuICAgICAgICAgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKGN4LCBjeSk7XFxuICAgICAgICAgICAgICAgIGNvbnRleHQucm90YXRlKGVsZW1lbnQuYW5nbGUpO1xcbiAgICAgICAgICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgtc2hpZnRYLCAtc2hpZnRZKTtcXG4gICAgICAgICAgICAgICAgZHJhd0VsZW1lbnRPbkNhbnZhcyhlbGVtZW50LCByYywgY29udGV4dCwgcmVuZGVyQ29uZmlnKTtcXG4gICAgICAgICAgICAgICAgY29udGV4dC5yZXN0b3JlKCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfVxcbiAgICAgICAgY2FzZSBcXFwicmVjdGFuZ2xlXFxcIjpcXG4gICAgICAgIGNhc2UgXFxcImRpYW1vbmRcXFwiOlxcbiAgICAgICAgY2FzZSBcXFwiZWxsaXBzZVxcXCI6XFxuICAgICAgICBjYXNlIFxcXCJsaW5lXFxcIjpcXG4gICAgICAgIGNhc2UgXFxcImFycm93XFxcIjpcXG4gICAgICAgIGNhc2UgXFxcImltYWdlXFxcIjpcXG4gICAgICAgIGNhc2UgXFxcInRleHRcXFwiOiB7XFxuICAgICAgICAgICAgZ2VuZXJhdGVFbGVtZW50U2hhcGUoZWxlbWVudCwgZ2VuZXJhdG9yKTtcXG4gICAgICAgICAgICBpZiAocmVuZGVyQ29uZmlnLmlzRXhwb3J0aW5nKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfZWxlbWVudF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRFbGVtZW50QWJzb2x1dGVDb29yZHMpKGVsZW1lbnQpO1xcbiAgICAgICAgICAgICAgICBjb25zdCBjeCA9ICh4MSArIHgyKSAvIDIgKyByZW5kZXJDb25maWcuc2Nyb2xsWDtcXG4gICAgICAgICAgICAgICAgY29uc3QgY3kgPSAoeTEgKyB5MikgLyAyICsgcmVuZGVyQ29uZmlnLnNjcm9sbFk7XFxuICAgICAgICAgICAgICAgIGNvbnN0IHNoaWZ0WCA9ICh4MiAtIHgxKSAvIDIgLSAoZWxlbWVudC54IC0geDEpO1xcbiAgICAgICAgICAgICAgICBjb25zdCBzaGlmdFkgPSAoeTIgLSB5MSkgLyAyIC0gKGVsZW1lbnQueSAtIHkxKTtcXG4gICAgICAgICAgICAgICAgY29udGV4dC5zYXZlKCk7XFxuICAgICAgICAgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKGN4LCBjeSk7XFxuICAgICAgICAgICAgICAgIGNvbnRleHQucm90YXRlKGVsZW1lbnQuYW5nbGUpO1xcbiAgICAgICAgICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgtc2hpZnRYLCAtc2hpZnRZKTtcXG4gICAgICAgICAgICAgICAgaWYgKHNob3VsZFJlc2V0SW1hZ2VGaWx0ZXIoZWxlbWVudCwgcmVuZGVyQ29uZmlnKSkge1xcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5maWx0ZXIgPSBcXFwibm9uZVxcXCI7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZHJhd0VsZW1lbnRPbkNhbnZhcyhlbGVtZW50LCByYywgY29udGV4dCwgcmVuZGVyQ29uZmlnKTtcXG4gICAgICAgICAgICAgICAgY29udGV4dC5yZXN0b3JlKCk7XFxuICAgICAgICAgICAgICAgIC8vIG5vdCBleHBvcnRpbmcgXHUyMTkyIG9wdGltaXplZCByZW5kZXJpbmcgKGNhY2hlICYgcmVuZGVyIGZyb20gZWxlbWVudFxcbiAgICAgICAgICAgICAgICAvLyBjYW52YXNlcylcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRXaXRoQ2FudmFzID0gZ2VuZXJhdGVFbGVtZW50V2l0aENhbnZhcyhlbGVtZW50LCByZW5kZXJDb25maWcpO1xcbiAgICAgICAgICAgICAgICBkcmF3RWxlbWVudEZyb21DYW52YXMoZWxlbWVudFdpdGhDYW52YXMsIHJjLCBjb250ZXh0LCByZW5kZXJDb25maWcpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBicmVhaztcXG4gICAgICAgIH1cXG4gICAgICAgIGRlZmF1bHQ6IHtcXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXFxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmltcGxlbWVudGVkIHR5cGUgJHtlbGVtZW50LnR5cGV9YCk7XFxuICAgICAgICB9XFxuICAgIH1cXG59O1xcbmNvbnN0IHJvdWdoU1ZHRHJhd1dpdGhQcmVjaXNpb24gPSAocnN2ZywgZHJhd2FibGUsIHByZWNpc2lvbikgPT4ge1xcbiAgICBpZiAodHlwZW9mIHByZWNpc2lvbiA9PT0gXFxcInVuZGVmaW5lZFxcXCIpIHtcXG4gICAgICAgIHJldHVybiByc3ZnLmRyYXcoZHJhd2FibGUpO1xcbiAgICB9XFxuICAgIGNvbnN0IHBzaGFwZSA9IHtcXG4gICAgICAgIHNldHM6IGRyYXdhYmxlLnNldHMsXFxuICAgICAgICBzaGFwZTogZHJhd2FibGUuc2hhcGUsXFxuICAgICAgICBvcHRpb25zOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGRyYXdhYmxlLm9wdGlvbnMpLCB7IGZpeGVkRGVjaW1hbFBsYWNlRGlnaXRzOiBwcmVjaXNpb24gfSksXFxuICAgIH07XFxuICAgIHJldHVybiByc3ZnLmRyYXcocHNoYXBlKTtcXG59O1xcbmNvbnN0IHJlbmRlckVsZW1lbnRUb1N2ZyA9IChlbGVtZW50LCByc3ZnLCBzdmdSb290LCBmaWxlcywgb2Zmc2V0WCwgb2Zmc2V0WSwgZXhwb3J0V2l0aERhcmtNb2RlKSA9PiB7XFxuICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSAoMCxfZWxlbWVudF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRFbGVtZW50QWJzb2x1dGVDb29yZHMpKGVsZW1lbnQpO1xcbiAgICBjb25zdCBjeCA9ICh4MiAtIHgxKSAvIDIgLSAoZWxlbWVudC54IC0geDEpO1xcbiAgICBjb25zdCBjeSA9ICh5MiAtIHkxKSAvIDIgLSAoZWxlbWVudC55IC0geTEpO1xcbiAgICBjb25zdCBkZWdyZWUgPSAoMTgwICogZWxlbWVudC5hbmdsZSkgLyBNYXRoLlBJO1xcbiAgICBjb25zdCBnZW5lcmF0b3IgPSByc3ZnLmdlbmVyYXRvcjtcXG4gICAgc3dpdGNoIChlbGVtZW50LnR5cGUpIHtcXG4gICAgICAgIGNhc2UgXFxcInNlbGVjdGlvblxcXCI6IHtcXG4gICAgICAgICAgICAvLyBTaW5jZSB0aGlzIGlzIHVzZWQgb25seSBkdXJpbmcgZWRpdGluZyBleHBlcmllbmNlLCB3aGljaCBpcyBjYW52YXMgYmFzZWQsXFxuICAgICAgICAgICAgLy8gdGhpcyBzaG91bGQgbm90IGhhcHBlblxcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcXFwiU2VsZWN0aW9uIHJlbmRlcmluZyBpcyBub3Qgc3VwcG9ydGVkIGZvciBTVkdcXFwiKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNhc2UgXFxcInJlY3RhbmdsZVxcXCI6XFxuICAgICAgICBjYXNlIFxcXCJkaWFtb25kXFxcIjpcXG4gICAgICAgIGNhc2UgXFxcImVsbGlwc2VcXFwiOiB7XFxuICAgICAgICAgICAgZ2VuZXJhdGVFbGVtZW50U2hhcGUoZWxlbWVudCwgZ2VuZXJhdG9yKTtcXG4gICAgICAgICAgICBjb25zdCBub2RlID0gcm91Z2hTVkdEcmF3V2l0aFByZWNpc2lvbihyc3ZnLCBnZXRTaGFwZUZvckVsZW1lbnQoZWxlbWVudCksIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5NQVhfREVDSU1BTFNfRk9SX1NWR19FWFBPUlQpO1xcbiAgICAgICAgICAgIGNvbnN0IG9wYWNpdHkgPSBlbGVtZW50Lm9wYWNpdHkgLyAxMDA7XFxuICAgICAgICAgICAgaWYgKG9wYWNpdHkgIT09IDEpIHtcXG4gICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXFxcInN0cm9rZS1vcGFjaXR5XFxcIiwgYCR7b3BhY2l0eX1gKTtcXG4gICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXFxcImZpbGwtb3BhY2l0eVxcXCIsIGAke29wYWNpdHl9YCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFxcXCJzdHJva2UtbGluZWNhcFxcXCIsIFxcXCJyb3VuZFxcXCIpO1xcbiAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFxcXCJ0cmFuc2Zvcm1cXFwiLCBgdHJhbnNsYXRlKCR7b2Zmc2V0WCB8fCAwfSAke29mZnNldFkgfHwgMH0pIHJvdGF0ZSgke2RlZ3JlZX0gJHtjeH0gJHtjeX0pYCk7XFxuICAgICAgICAgICAgc3ZnUm9vdC5hcHBlbmRDaGlsZChub2RlKTtcXG4gICAgICAgICAgICBicmVhaztcXG4gICAgICAgIH1cXG4gICAgICAgIGNhc2UgXFxcImxpbmVcXFwiOlxcbiAgICAgICAgY2FzZSBcXFwiYXJyb3dcXFwiOiB7XFxuICAgICAgICAgICAgZ2VuZXJhdGVFbGVtZW50U2hhcGUoZWxlbWVudCwgZ2VuZXJhdG9yKTtcXG4gICAgICAgICAgICBjb25zdCBncm91cCA9IHN2Z1Jvb3Qub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLlNWR19OUywgXFxcImdcXFwiKTtcXG4gICAgICAgICAgICBjb25zdCBvcGFjaXR5ID0gZWxlbWVudC5vcGFjaXR5IC8gMTAwO1xcbiAgICAgICAgICAgIGdyb3VwLnNldEF0dHJpYnV0ZShcXFwic3Ryb2tlLWxpbmVjYXBcXFwiLCBcXFwicm91bmRcXFwiKTtcXG4gICAgICAgICAgICBnZXRTaGFwZUZvckVsZW1lbnQoZWxlbWVudCkuZm9yRWFjaCgoc2hhcGUpID0+IHtcXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHJvdWdoU1ZHRHJhd1dpdGhQcmVjaXNpb24ocnN2Zywgc2hhcGUsIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5NQVhfREVDSU1BTFNfRk9SX1NWR19FWFBPUlQpO1xcbiAgICAgICAgICAgICAgICBpZiAob3BhY2l0eSAhPT0gMSkge1xcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXFxcInN0cm9rZS1vcGFjaXR5XFxcIiwgYCR7b3BhY2l0eX1gKTtcXG4gICAgICAgICAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFxcXCJmaWxsLW9wYWNpdHlcXFwiLCBgJHtvcGFjaXR5fWApO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFxcXCJ0cmFuc2Zvcm1cXFwiLCBgdHJhbnNsYXRlKCR7b2Zmc2V0WCB8fCAwfSAke29mZnNldFkgfHwgMH0pIHJvdGF0ZSgke2RlZ3JlZX0gJHtjeH0gJHtjeX0pYCk7XFxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IFxcXCJsaW5lXFxcIiAmJlxcbiAgICAgICAgICAgICAgICAgICAgKDAsX21hdGhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5pc1BhdGhBTG9vcCkoZWxlbWVudC5wb2ludHMpICYmXFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmJhY2tncm91bmRDb2xvciAhPT0gXFxcInRyYW5zcGFyZW50XFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXFxcImZpbGwtcnVsZVxcXCIsIFxcXCJldmVub2RkXFxcIik7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZ3JvdXAuYXBwZW5kQ2hpbGQobm9kZSk7XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgc3ZnUm9vdC5hcHBlbmRDaGlsZChncm91cCk7XFxuICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICB9XFxuICAgICAgICBjYXNlIFxcXCJmcmVlZHJhd1xcXCI6IHtcXG4gICAgICAgICAgICBnZW5lcmF0ZUZyZWVEcmF3U2hhcGUoZWxlbWVudCk7XFxuICAgICAgICAgICAgY29uc3Qgb3BhY2l0eSA9IGVsZW1lbnQub3BhY2l0eSAvIDEwMDtcXG4gICAgICAgICAgICBjb25zdCBzaGFwZSA9IGdldFNoYXBlRm9yRWxlbWVudChlbGVtZW50KTtcXG4gICAgICAgICAgICBjb25zdCBub2RlID0gc2hhcGVcXG4gICAgICAgICAgICAgICAgPyByb3VnaFNWR0RyYXdXaXRoUHJlY2lzaW9uKHJzdmcsIHNoYXBlLCBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uTUFYX0RFQ0lNQUxTX0ZPUl9TVkdfRVhQT1JUKVxcbiAgICAgICAgICAgICAgICA6IHN2Z1Jvb3Qub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLlNWR19OUywgXFxcImdcXFwiKTtcXG4gICAgICAgICAgICBpZiAob3BhY2l0eSAhPT0gMSkge1xcbiAgICAgICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcXFwic3Ryb2tlLW9wYWNpdHlcXFwiLCBgJHtvcGFjaXR5fWApO1xcbiAgICAgICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcXFwiZmlsbC1vcGFjaXR5XFxcIiwgYCR7b3BhY2l0eX1gKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXFxcInRyYW5zZm9ybVxcXCIsIGB0cmFuc2xhdGUoJHtvZmZzZXRYIHx8IDB9ICR7b2Zmc2V0WSB8fCAwfSkgcm90YXRlKCR7ZGVncmVlfSAke2N4fSAke2N5fSlgKTtcXG4gICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcXFwic3Ryb2tlXFxcIiwgXFxcIm5vbmVcXFwiKTtcXG4gICAgICAgICAgICBjb25zdCBwYXRoID0gc3ZnUm9vdC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uU1ZHX05TLCBcXFwicGF0aFxcXCIpO1xcbiAgICAgICAgICAgIHBhdGguc2V0QXR0cmlidXRlKFxcXCJmaWxsXFxcIiwgZWxlbWVudC5zdHJva2VDb2xvcik7XFxuICAgICAgICAgICAgcGF0aC5zZXRBdHRyaWJ1dGUoXFxcImRcXFwiLCBnZXRGcmVlRHJhd1N2Z1BhdGgoZWxlbWVudCkpO1xcbiAgICAgICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQocGF0aCk7XFxuICAgICAgICAgICAgc3ZnUm9vdC5hcHBlbmRDaGlsZChub2RlKTtcXG4gICAgICAgICAgICBicmVhaztcXG4gICAgICAgIH1cXG4gICAgICAgIGNhc2UgXFxcImltYWdlXFxcIjoge1xcbiAgICAgICAgICAgIGNvbnN0IGZpbGVEYXRhID0gKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmlzSW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnQpKGVsZW1lbnQpICYmIGZpbGVzW2VsZW1lbnQuZmlsZUlkXTtcXG4gICAgICAgICAgICBpZiAoZmlsZURhdGEpIHtcXG4gICAgICAgICAgICAgICAgY29uc3Qgc3ltYm9sSWQgPSBgaW1hZ2UtJHtmaWxlRGF0YS5pZH1gO1xcbiAgICAgICAgICAgICAgICBsZXQgc3ltYm9sID0gc3ZnUm9vdC5xdWVyeVNlbGVjdG9yKGAjJHtzeW1ib2xJZH1gKTtcXG4gICAgICAgICAgICAgICAgaWYgKCFzeW1ib2wpIHtcXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbCA9IHN2Z1Jvb3Qub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLlNWR19OUywgXFxcInN5bWJvbFxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgc3ltYm9sLmlkID0gc3ltYm9sSWQ7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWFnZSA9IHN2Z1Jvb3Qub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLlNWR19OUywgXFxcImltYWdlXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICBpbWFnZS5zZXRBdHRyaWJ1dGUoXFxcIndpZHRoXFxcIiwgXFxcIjEwMCVcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgIGltYWdlLnNldEF0dHJpYnV0ZShcXFwiaGVpZ2h0XFxcIiwgXFxcIjEwMCVcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgIGltYWdlLnNldEF0dHJpYnV0ZShcXFwiaHJlZlxcXCIsIGZpbGVEYXRhLmRhdGFVUkwpO1xcbiAgICAgICAgICAgICAgICAgICAgc3ltYm9sLmFwcGVuZENoaWxkKGltYWdlKTtcXG4gICAgICAgICAgICAgICAgICAgIHN2Z1Jvb3QucHJlcGVuZChzeW1ib2wpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGNvbnN0IHVzZSA9IHN2Z1Jvb3Qub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLlNWR19OUywgXFxcInVzZVxcXCIpO1xcbiAgICAgICAgICAgICAgICB1c2Uuc2V0QXR0cmlidXRlKFxcXCJocmVmXFxcIiwgYCMke3N5bWJvbElkfWApO1xcbiAgICAgICAgICAgICAgICAvLyBpbiBkYXJrIHRoZW1lLCByZXZlcnQgdGhlIGltYWdlIGNvbG9yIGZpbHRlclxcbiAgICAgICAgICAgICAgICBpZiAoZXhwb3J0V2l0aERhcmtNb2RlICYmIGZpbGVEYXRhLm1pbWVUeXBlICE9PSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uTUlNRV9UWVBFUy5zdmcpIHtcXG4gICAgICAgICAgICAgICAgICAgIHVzZS5zZXRBdHRyaWJ1dGUoXFxcImZpbHRlclxcXCIsIElNQUdFX0lOVkVSVF9GSUxURVIpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHVzZS5zZXRBdHRyaWJ1dGUoXFxcIndpZHRoXFxcIiwgYCR7TWF0aC5yb3VuZChlbGVtZW50LndpZHRoKX1gKTtcXG4gICAgICAgICAgICAgICAgdXNlLnNldEF0dHJpYnV0ZShcXFwiaGVpZ2h0XFxcIiwgYCR7TWF0aC5yb3VuZChlbGVtZW50LmhlaWdodCl9YCk7XFxuICAgICAgICAgICAgICAgIHVzZS5zZXRBdHRyaWJ1dGUoXFxcInRyYW5zZm9ybVxcXCIsIGB0cmFuc2xhdGUoJHtvZmZzZXRYIHx8IDB9ICR7b2Zmc2V0WSB8fCAwfSkgcm90YXRlKCR7ZGVncmVlfSAke2N4fSAke2N5fSlgKTtcXG4gICAgICAgICAgICAgICAgc3ZnUm9vdC5hcHBlbmRDaGlsZCh1c2UpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBicmVhaztcXG4gICAgICAgIH1cXG4gICAgICAgIGRlZmF1bHQ6IHtcXG4gICAgICAgICAgICBpZiAoKDAsX2VsZW1lbnRfdHlwZUNoZWNrc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmlzVGV4dEVsZW1lbnQpKGVsZW1lbnQpKSB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IG9wYWNpdHkgPSBlbGVtZW50Lm9wYWNpdHkgLyAxMDA7XFxuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBzdmdSb290Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5TVkdfTlMsIFxcXCJnXFxcIik7XFxuICAgICAgICAgICAgICAgIGlmIChvcGFjaXR5ICE9PSAxKSB7XFxuICAgICAgICAgICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcXFwic3Ryb2tlLW9wYWNpdHlcXFwiLCBgJHtvcGFjaXR5fWApO1xcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXFxcImZpbGwtb3BhY2l0eVxcXCIsIGAke29wYWNpdHl9YCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXFxcInRyYW5zZm9ybVxcXCIsIGB0cmFuc2xhdGUoJHtvZmZzZXRYIHx8IDB9ICR7b2Zmc2V0WSB8fCAwfSkgcm90YXRlKCR7ZGVncmVlfSAke2N4fSAke2N5fSlgKTtcXG4gICAgICAgICAgICAgICAgY29uc3QgbGluZXMgPSBlbGVtZW50LnRleHQucmVwbGFjZSgvXFxcXHJcXFxcbj8vZywgXFxcIlxcXFxuXFxcIikuc3BsaXQoXFxcIlxcXFxuXFxcIik7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVIZWlnaHQgPSBlbGVtZW50LmhlaWdodCAvIGxpbmVzLmxlbmd0aDtcXG4gICAgICAgICAgICAgICAgY29uc3QgdmVydGljYWxPZmZzZXQgPSBlbGVtZW50LmhlaWdodCAtIGVsZW1lbnQuYmFzZWxpbmU7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGhvcml6b250YWxPZmZzZXQgPSBlbGVtZW50LnRleHRBbGlnbiA9PT0gXFxcImNlbnRlclxcXCJcXG4gICAgICAgICAgICAgICAgICAgID8gZWxlbWVudC53aWR0aCAvIDJcXG4gICAgICAgICAgICAgICAgICAgIDogZWxlbWVudC50ZXh0QWxpZ24gPT09IFxcXCJyaWdodFxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGVsZW1lbnQud2lkdGhcXG4gICAgICAgICAgICAgICAgICAgICAgICA6IDA7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmlzUlRMKShlbGVtZW50LnRleHQpID8gXFxcInJ0bFxcXCIgOiBcXFwibHRyXFxcIjtcXG4gICAgICAgICAgICAgICAgY29uc3QgdGV4dEFuY2hvciA9IGVsZW1lbnQudGV4dEFsaWduID09PSBcXFwiY2VudGVyXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgPyBcXFwibWlkZGxlXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgOiBlbGVtZW50LnRleHRBbGlnbiA9PT0gXFxcInJpZ2h0XFxcIiB8fCBkaXJlY3Rpb24gPT09IFxcXCJydGxcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcXFwiZW5kXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgIDogXFxcInN0YXJ0XFxcIjtcXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IHN2Z1Jvb3Qub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLlNWR19OUywgXFxcInRleHRcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgIHRleHQudGV4dENvbnRlbnQgPSBsaW5lc1tpXTtcXG4gICAgICAgICAgICAgICAgICAgIHRleHQuc2V0QXR0cmlidXRlKFxcXCJ4XFxcIiwgYCR7aG9yaXpvbnRhbE9mZnNldH1gKTtcXG4gICAgICAgICAgICAgICAgICAgIHRleHQuc2V0QXR0cmlidXRlKFxcXCJ5XFxcIiwgYCR7KGkgKyAxKSAqIGxpbmVIZWlnaHQgLSB2ZXJ0aWNhbE9mZnNldH1gKTtcXG4gICAgICAgICAgICAgICAgICAgIHRleHQuc2V0QXR0cmlidXRlKFxcXCJmb250LWZhbWlseVxcXCIsICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldEZvbnRGYW1pbHlTdHJpbmcpKGVsZW1lbnQpKTtcXG4gICAgICAgICAgICAgICAgICAgIHRleHQuc2V0QXR0cmlidXRlKFxcXCJmb250LXNpemVcXFwiLCBgJHtlbGVtZW50LmZvbnRTaXplfXB4YCk7XFxuICAgICAgICAgICAgICAgICAgICB0ZXh0LnNldEF0dHJpYnV0ZShcXFwiZmlsbFxcXCIsIGVsZW1lbnQuc3Ryb2tlQ29sb3IpO1xcbiAgICAgICAgICAgICAgICAgICAgdGV4dC5zZXRBdHRyaWJ1dGUoXFxcInRleHQtYW5jaG9yXFxcIiwgdGV4dEFuY2hvcik7XFxuICAgICAgICAgICAgICAgICAgICB0ZXh0LnNldEF0dHJpYnV0ZShcXFwic3R5bGVcXFwiLCBcXFwid2hpdGUtc3BhY2U6IHByZTtcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgIHRleHQuc2V0QXR0cmlidXRlKFxcXCJkaXJlY3Rpb25cXFwiLCBkaXJlY3Rpb24pO1xcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hcHBlbmRDaGlsZCh0ZXh0KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBzdmdSb290LmFwcGVuZENoaWxkKG5vZGUpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuaW1wbGVtZW50ZWQgdHlwZSAke2VsZW1lbnQudHlwZX1gKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgIH1cXG59O1xcbmNvbnN0IHBhdGhzQ2FjaGUgPSBuZXcgV2Vha01hcChbXSk7XFxuZnVuY3Rpb24gZ2VuZXJhdGVGcmVlRHJhd1NoYXBlKGVsZW1lbnQpIHtcXG4gICAgY29uc3Qgc3ZnUGF0aERhdGEgPSBnZXRGcmVlRHJhd1N2Z1BhdGgoZWxlbWVudCk7XFxuICAgIGNvbnN0IHBhdGggPSBuZXcgUGF0aDJEKHN2Z1BhdGhEYXRhKTtcXG4gICAgcGF0aHNDYWNoZS5zZXQoZWxlbWVudCwgcGF0aCk7XFxuICAgIHJldHVybiBwYXRoO1xcbn1cXG5mdW5jdGlvbiBnZXRGcmVlRHJhd1BhdGgyRChlbGVtZW50KSB7XFxuICAgIHJldHVybiBwYXRoc0NhY2hlLmdldChlbGVtZW50KTtcXG59XFxuZnVuY3Rpb24gZ2V0RnJlZURyYXdTdmdQYXRoKGVsZW1lbnQpIHtcXG4gICAgLy8gSWYgaW5wdXQgcG9pbnRzIGFyZSBlbXB0eSAoc2hvdWxkIHRoZXkgZXZlciBiZT8pIHJldHVybiBhIGRvdFxcbiAgICBjb25zdCBpbnB1dFBvaW50cyA9IGVsZW1lbnQuc2ltdWxhdGVQcmVzc3VyZVxcbiAgICAgICAgPyBlbGVtZW50LnBvaW50c1xcbiAgICAgICAgOiBlbGVtZW50LnBvaW50cy5sZW5ndGhcXG4gICAgICAgICAgICA/IGVsZW1lbnQucG9pbnRzLm1hcCgoW3gsIHldLCBpKSA9PiBbeCwgeSwgZWxlbWVudC5wcmVzc3VyZXNbaV1dKVxcbiAgICAgICAgICAgIDogW1swLCAwLCAwLjVdXTtcXG4gICAgLy8gQ29uc2lkZXIgY2hhbmdpbmcgdGhlIG9wdGlvbnMgZm9yIHNpbXVsYXRlZCBwcmVzc3VyZSB2cyByZWFsIHByZXNzdXJlXFxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XFxuICAgICAgICBzaW11bGF0ZVByZXNzdXJlOiBlbGVtZW50LnNpbXVsYXRlUHJlc3N1cmUsXFxuICAgICAgICBzaXplOiBlbGVtZW50LnN0cm9rZVdpZHRoICogNC4yNSxcXG4gICAgICAgIHRoaW5uaW5nOiAwLjYsXFxuICAgICAgICBzbW9vdGhpbmc6IDAuNSxcXG4gICAgICAgIHN0cmVhbWxpbmU6IDAuNSxcXG4gICAgICAgIGVhc2luZzogKHQpID0+IE1hdGguc2luKCh0ICogTWF0aC5QSSkgLyAyKSxcXG4gICAgICAgIGxhc3Q6ICEhZWxlbWVudC5sYXN0Q29tbWl0dGVkUG9pbnQsIC8vIExhc3RDb21taXR0ZWRQb2ludCBpcyBhZGRlZCBvbiBwb2ludGVydXBcXG4gICAgfTtcXG4gICAgcmV0dXJuIGdldFN2Z1BhdGhGcm9tU3Ryb2tlKCgwLHBlcmZlY3RfZnJlZWhhbmRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5nZXRTdHJva2UpKGlucHV0UG9pbnRzLCBvcHRpb25zKSk7XFxufVxcbmZ1bmN0aW9uIG1lZChBLCBCKSB7XFxuICAgIHJldHVybiBbKEFbMF0gKyBCWzBdKSAvIDIsIChBWzFdICsgQlsxXSkgLyAyXTtcXG59XFxuLy8gVHJpbSBTVkcgcGF0aCBkYXRhIHNvIG51bWJlciBhcmUgZWFjaCB0d28gZGVjaW1hbCBwb2ludHMuIFRoaXNcXG4vLyBpbXByb3ZlcyBTVkcgZXhwb3J0cywgYW5kIHByZXZlbnRzIHJlbmRlcmluZyBlcnJvcnMgb24gcG9pbnRzXFxuLy8gd2l0aCBsb25nIGRlY2ltYWxzLlxcbmNvbnN0IFRPX0ZJWEVEX1BSRUNJU0lPTiA9IC8oXFxcXHM/W0EtWl0/LD8tP1swLTldKlxcXFwuWzAtOV17MCwyfSkoKFswLTldfGV8LSkqKS9nO1xcbmZ1bmN0aW9uIGdldFN2Z1BhdGhGcm9tU3Ryb2tlKHBvaW50cykge1xcbiAgICBpZiAoIXBvaW50cy5sZW5ndGgpIHtcXG4gICAgICAgIHJldHVybiBcXFwiXFxcIjtcXG4gICAgfVxcbiAgICBjb25zdCBtYXggPSBwb2ludHMubGVuZ3RoIC0gMTtcXG4gICAgcmV0dXJuIHBvaW50c1xcbiAgICAgICAgLnJlZHVjZSgoYWNjLCBwb2ludCwgaSwgYXJyKSA9PiB7XFxuICAgICAgICBpZiAoaSA9PT0gbWF4KSB7XFxuICAgICAgICAgICAgYWNjLnB1c2gocG9pbnQsIG1lZChwb2ludCwgYXJyWzBdKSwgXFxcIkxcXFwiLCBhcnJbMF0sIFxcXCJaXFxcIik7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICBhY2MucHVzaChwb2ludCwgbWVkKHBvaW50LCBhcnJbaSArIDFdKSk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gYWNjO1xcbiAgICB9LCBbXFxcIk1cXFwiLCBwb2ludHNbMF0sIFxcXCJRXFxcIl0pXFxuICAgICAgICAuam9pbihcXFwiIFxcXCIpXFxuICAgICAgICAucmVwbGFjZShUT19GSVhFRF9QUkVDSVNJT04sIFxcXCIkMVxcXCIpO1xcbn1cXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dmNtVnVaR1Z5WlhJdmNtVnVaR1Z5Uld4bGJXVnVkQzUwY3k1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dEJRV01yUWp0QlFVdEtPMEZCVDI5RU8wRkJRM3BETzBGQlEwRTdRVUZGVnp0QlFVTTRRanRCUVVOdVFqdEJRVU5ETzBGQlJUZEVMR2xGUVVGcFJUdEJRVU5xUlN4elJVRkJjMFU3UVVGRGRFVXNkMFZCUVhkRk8wRkJRM2hGTEhOQ1FVRnpRanRCUVVOMFFpeE5RVUZOTEcxQ1FVRnRRaXhIUVVGSExHZEVRVUZuUkN4RFFVRkRPMEZCUlRkRkxFMUJRVTBzWlVGQlpTeEhRVUZITERaRVFVRnJRaXhGUVVGRkxFTkJRVU03UVVGRk4wTXNUVUZCVFN4eFFrRkJjVUlzUjBGQlJ5eERRVU0xUWl4UFFVRXdRaXhGUVVNeFFpeFpRVUV3UWl4RlFVTXhRaXhGUVVGRkxFTkJRMFlzT0VWQlFYbENMRU5CUVVNc1QwRkJUeXhEUVVGRE8wbEJRMnhETEVOQlFVTXNXVUZCV1N4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUlM5RExFMUJRVTBzYzBKQlFYTkNMRWRCUVVjc1EwRkROMElzVDBGQk1FSXNSVUZETVVJc1dVRkJNRUlzUlVGRE1VSXNSVUZCUlRzN1NVRkRSaXhQUVVGUExFTkJRMHdzV1VGQldTeERRVUZETEV0QlFVc3NTMEZCU3l4TlFVRk5PMUZCUXpkQ0xEaEZRVUY1UWl4RFFVRkRMRTlCUVU4c1EwRkJRenRSUVVOc1F5eERRVUZETEhGQ1FVRnhRaXhEUVVGRExFOUJRVThzUlVGQlJTeFpRVUZaTEVOQlFVTTdVVUZETjBNc2JVSkJRVmtzUTBGQlF5eFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zTUVOQlFVVXNVVUZCVVN4TlFVRkxMSE5FUVVGakxFTkJRM3BGTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxHdENRVUZyUWl4SFFVRkhMRU5CUVVNc1YwRkJiVUlzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExGZEJRVmNzUTBGQlF5eERRVUZETzBGQlJYcEZMRTFCUVUwc2EwSkJRV3RDTEVkQlFVY3NRMEZCUXl4WFFVRnRRaXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1YwRkJWeXhEUVVGRExFTkJRVU03UVVGRk0wVXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eERRVUZETEU5QlFUQkNMRVZCUVVVc1JVRkJSU3hEUVVOMFJDeFBRVUZQTEVOQlFVTXNTVUZCU1N4TFFVRkxMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEZkQlFWY3NSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dEJRVmM1UkN4TlFVRk5MSEZDUVVGeFFpeEhRVUZITEVOQlF6VkNMRTlCUVc5RExFVkJRM0JETEVsQlFWVXNSVUZEVml4WlFVRXdRaXhGUVVOSExFVkJRVVU3U1VGREwwSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0SlFVTm9SQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eE5RVUZOTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1EwRkJSU3hEUVVGRE8wbEJRM3BETEUxQlFVMHNUMEZCVHl4SFFVRkhMR2RDUVVGblFpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUlRGRExFbEJRVWtzWVVGQllTeEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTjBRaXhKUVVGSkxHRkJRV0VzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZGZEVJc1NVRkJTU3h2UlVGQlpTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMSE5GUVVGcFFpeERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZPMUZCUXpGRUxFMUJRVTBzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eDVSVUZCZDBJc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVVV6UkN4TlFVRk5MRU5CUVVNc1MwRkJTenRaUVVOV0xHZEVRVUZSTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN6dG5Ra0ZEZGtRc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUXpOQ0xFMUJRVTBzUTBGQlF5eE5RVUZOTzFsQlExZ3NaMFJCUVZFc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMR2RDUVVGblFpeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxPMmRDUVVOMlJDeFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRk0wSXNZVUZCWVR0WlFVTllMRTlCUVU4c1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJUdG5Ra0ZEV2l4RFFVRkRMRU5CUVVNc1owUkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN6dG5Ra0ZEYUVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVZTTEdGQlFXRTdXVUZEV0N4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVU3WjBKQlExb3NRMEZCUXl4RFFVRkRMR2RFUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zWjBKQlFXZENMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXM3WjBKQlEyaEZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRlVpeFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMR0ZCUVdFc1JVRkJSU3hoUVVGaExFTkJRVU1zUTBGQlF6dExRVU5xUkR0VFFVRk5PMUZCUTB3c1RVRkJUU3hEUVVGRExFdEJRVXM3V1VGRFZpeFBRVUZQTEVOQlFVTXNTMEZCU3l4SFFVRkhMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTenRuUWtGRGNFUXNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlF6TkNMRTFCUVUwc1EwRkJReXhOUVVGTk8xbEJRMWdzVDBGQlR5eERRVUZETEUxQlFVMHNSMEZCUnl4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzN1owSkJRM0pFTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF6dExRVU0xUWp0SlFVVkVMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dEpRVU5tTEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlFVVXNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU01UkN4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVOWUxFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVU53UXl4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkRja01zUTBGQlF6dEpRVVZHTEUxQlFVMHNSVUZCUlN4SFFVRkhMR2RGUVVGWkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZGYUVNc0swTkJRU3RETzBsQlF5OURMRWxCUVVrc2MwSkJRWE5DTEVOQlFVTXNUMEZCVHl4RlFVRkZMRmxCUVZrc1EwRkJReXhGUVVGRk8xRkJRMnBFTEU5QlFVOHNRMEZCUXl4TlFVRk5MRWRCUVVjc2JVSkJRVzFDTEVOQlFVTTdTMEZEZEVNN1NVRkZSQ3h0UWtGQmJVSXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeFpRVUZaTEVOQlFVTXNRMEZCUXp0SlFVTjRSQ3hQUVVGUExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdTVUZGYkVJc1QwRkJUenRSUVVOTUxFOUJRVTg3VVVGRFVDeE5RVUZOTzFGQlEwNHNTMEZCU3l4RlFVRkZMRmxCUVZrc1EwRkJReXhMUVVGTE8xRkJRM3BDTEZWQlFWVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTenRSUVVOMFFpeGhRVUZoTzFGQlEySXNZVUZCWVR0TFFVTmtMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExFVkJRVVVzUTBGQlF6dEJRVVZ3UXl4TlFVRk5MSEZDUVVGeFFpeEhRVUZITEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRE5VUXNjVUpCUVhGQ0xFTkJRVU1zUjBGQlJ5eEhRVUZITEZGQlFWRXNjMFJCUVdNc1NVRkJTU3hyUWtGQmEwSXNRMEZEZEVVc09HbENRVUU0YVVJc1EwRkRMMmxDTEVWQlFVVXNRMEZCUXp0QlFVVktMRTFCUVUwc01rSkJRVEpDTEVkQlFVY3NVVUZCVVN4RFFVRkRMR0ZCUVdFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEJRVU5zUlN3eVFrRkJNa0lzUTBGQlF5eEhRVUZITEVkQlFVY3NVVUZCVVN4elJFRkJZeXhKUVVGSkxHdENRVUZyUWl4RFFVTTFSU3gxYUVOQlFYVm9ReXhEUVVONGFFTXNSVUZCUlN4RFFVRkRPMEZCUlVvc1RVRkJUU3h2UWtGQmIwSXNSMEZCUnl4RFFVTXpRaXhQUVVFclFpeEZRVU12UWl4UFFVRnBReXhGUVVOcVF5eFRRVUZ2UXl4RlFVTndReXhGUVVGRk8wbEJRMFlzVDBGQlR5eERRVUZETEZOQlFWTXNSMEZCUnl4VFFVRlRMRU5CUVVNN1NVRkRPVUlzVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFOUJRVThzUTBGQlF5eExRVUZMTEVWQlFVVXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJSWFJFTEUxQlFVMHNjVUpCUVhGQ0xFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhGUVVGRkxFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0SlFVVjBSU3hOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVTnVRaXh4UWtGQmNVSXNSVUZEY2tJc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eHhRa0ZCY1VJc1IwRkJSeXhIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlF6TkRMRU5CUVVNN1NVRkZSaXhQUVVGUExFTkJRVU1zVTBGQlV5eERRVU5tTEU5QlFVOHNRMEZCUXl4TlFVRk5MRXRCUVVzc1QwRkJUenRSUVVONFFpeERRVUZETEVOQlFVTXNNa0pCUVRKQ08xRkJRemRDTEVOQlFVTXNRMEZCUXl4eFFrRkJjVUlzUlVGRGVrSXNUMEZCVHl4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNSVUZETlVJc1QwRkJUeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVVNc1JVRkROMElzU1VGQlNTeEZRVU5LTEVsQlFVa3NRMEZEVEN4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRE8wRkJSVVlzVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXhEUVVNeFFpeFBRVUZ2UXl4RlFVTndReXhGUVVGbExFVkJRMllzVDBGQmFVTXNSVUZEYWtNc1dVRkJNRUlzUlVGRE1VSXNSVUZCUlRzN1NVRkRSaXhQUVVGUExFTkJRVU1zVjBGQlZ5eEhRVUZITEU5QlFVOHNRMEZCUXl4UFFVRlBMRWRCUVVjc1IwRkJSeXhEUVVGRE8wbEJRelZETEZGQlFWRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1JVRkJSVHRSUVVOd1FpeExRVUZMTEZkQlFWY3NRMEZCUXp0UlFVTnFRaXhMUVVGTExGTkJRVk1zUTBGQlF6dFJRVU5tTEV0QlFVc3NVMEZCVXl4RFFVRkRMRU5CUVVNN1dVRkRaQ3hQUVVGUExFTkJRVU1zVVVGQlVTeEhRVUZITEU5QlFVOHNRMEZCUXp0WlFVTXpRaXhQUVVGUExFTkJRVU1zVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXp0WlFVTXhRaXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFOUJRVThzUTBGQlJTeERRVUZETEVOQlFVTTdXVUZEZEVNc1RVRkJUVHRUUVVOUU8xRkJRMFFzUzBGQlN5eFBRVUZQTEVOQlFVTTdVVUZEWWl4TFFVRkxMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJRMWdzVDBGQlR5eERRVUZETEZGQlFWRXNSMEZCUnl4UFFVRlBMRU5CUVVNN1dVRkRNMElzVDBGQlR5eERRVUZETEU5QlFVOHNSMEZCUnl4UFFVRlBMRU5CUVVNN1dVRkZNVUlzYTBKQlFXdENMRU5CUVVNc1QwRkJUeXhEUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVN1owSkJRemRETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03V1VGRGFrSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRTQ3hOUVVGTk8xTkJRMUE3VVVGRFJDeExRVUZMTEZWQlFWVXNRMEZCUXl4RFFVRkRPMWxCUTJZc01FSkJRVEJDTzFsQlF6RkNMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFpRVU5tTEU5QlFVOHNRMEZCUXl4VFFVRlRMRWRCUVVjc1QwRkJUeXhEUVVGRExGZEJRVmNzUTBGQlF6dFpRVVY0UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhwUWtGQmFVSXNRMEZCUXl4UFFVRlBMRU5CUVZjc1EwRkJRenRaUVVOc1JDeE5RVUZOTEZOQlFWTXNSMEZCUnl4clFrRkJhMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0WlFVVTVReXhKUVVGSkxGTkJRVk1zUlVGQlJUdG5Ra0ZEWWl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzJGQlEzQkNPMWxCUlVRc1QwRkJUeXhEUVVGRExGTkJRVk1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RFFVRkRPMWxCUTNoRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkZia0lzVDBGQlR5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMWxCUTJ4Q0xFMUJRVTA3VTBGRFVEdFJRVU5FTEV0QlFVc3NUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRXaXhOUVVGTkxFZEJRVWNzUjBGQlJ5dzRSVUZCZVVJc1EwRkJReXhQUVVGUExFTkJRVU03WjBKQlF6VkRMRU5CUVVNc1EwRkJReXhyUWtGQldTeERRVUZETEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5d3dRMEZCUlN4TFFVRkxPMmRDUVVOd1JDeERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRPMWxCUTJRc1NVRkJTU3hIUVVGSExFbEJRVWtzU1VGQlNTeEpRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRmxCUVZrc1QwRkJUeXhEUVVGRExFVkJRVVU3WjBKQlF6VkRMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRMllzUjBGQlJ5eEZRVU5JTEVOQlFVTXNRMEZCUXl4dlEwRkJiME1zUlVGRGRFTXNRMEZCUXl4RlFVTkVMRTlCUVU4c1EwRkJReXhMUVVGTExFVkJRMklzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZEWml4RFFVRkRPMkZCUTBnN2FVSkJRVTA3WjBKQlEwd3NiMEpCUVc5Q0xFTkJRVU1zVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZCUlN4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzJGQlEycEZPMWxCUTBRc1RVRkJUVHRUUVVOUU8xRkJRMFFzVDBGQlR5eERRVUZETEVOQlFVTTdXVUZEVUN4SlFVRkpMR3RGUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVTdaMEpCUXpGQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITERaRFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzJkQ1FVTm9ReXhOUVVGTkxIVkNRVUYxUWl4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RFFVRkRPMmRDUVVOdVJTeEpRVUZKTEhWQ1FVRjFRaXhGUVVGRk8yOUNRVU16UWl4dlJVRkJiMFU3YjBKQlEzQkZMR0ZCUVdFN2IwSkJRMklzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzJsQ1FVTXpRenRuUWtGRFJDeFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmxCUVZrc1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzJkQ1FVTjRSQ3hQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdaMEpCUTJZc1QwRkJUeXhEUVVGRExFbEJRVWtzUjBGQlJ5eHhSRUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8yZENRVU4wUXl4UFFVRlBMRU5CUVVNc1UwRkJVeXhIUVVGSExFOUJRVThzUTBGQlF5eFhRVUZYTEVOQlFVTTdaMEpCUTNoRExFOUJRVThzUTBGQlF5eFRRVUZUTEVkQlFVY3NUMEZCVHl4RFFVRkRMRk5CUVRSQ0xFTkJRVU03WjBKQlJYcEVMRzlFUVVGdlJEdG5Ra0ZEY0VRc1RVRkJUU3hMUVVGTExFZEJRVWNzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRuUWtGREwwUXNUVUZCVFN4VlFVRlZMRWRCUVVjc1QwRkJUeXhEUVVGRExGZEJRVmM3YjBKQlEzQkRMRU5CUVVNc1EwRkJReXg1UlVGQmJVSXNRMEZCUXl4eFJFRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzI5Q1FVTTNReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNSMEZCUnl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRE8yZENRVU5zUXl4TlFVRk5MR05CUVdNc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeEhRVUZITEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNN1owSkJRM3BFTEUxQlFVMHNaMEpCUVdkQ0xFZEJRM0JDTEU5QlFVOHNRMEZCUXl4VFFVRlRMRXRCUVVzc1VVRkJVVHR2UWtGRE5VSXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFZEJRVWNzUTBGQlF6dHZRa0ZEYmtJc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eFRRVUZUTEV0QlFVc3NUMEZCVHp0M1FrRkRMMElzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4TFFVRkxPM2RDUVVObUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTFJc1MwRkJTeXhKUVVGSkxFdEJRVXNzUjBGQlJ5eERRVUZETEVWQlFVVXNTMEZCU3l4SFFVRkhMRXRCUVVzc1EwRkJReXhOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVTdiMEpCUTJwRUxFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlEyUXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVOYUxHZENRVUZuUWl4RlFVTm9RaXhEUVVGRExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRWRCUVVjc1kwRkJZeXhEUVVNeFF5eERRVUZETzJsQ1FVTklPMmRDUVVORUxFOUJRVThzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0blFrRkRiRUlzU1VGQlNTeDFRa0ZCZFVJc1JVRkJSVHR2UWtGRE0wSXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dHBRa0ZEZWtJN1lVRkRSanRwUWtGQlRUdG5Ra0ZEVEN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExITkNRVUZ6UWl4UFFVRlBMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF6dGhRVU4yUkR0VFFVTkdPMHRCUTBZN1NVRkRSQ3hQUVVGUExFTkJRVU1zVjBGQlZ5eEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTXhRaXhEUVVGRExFTkJRVU03UVVGRlJpeE5RVUZOTEhOQ1FVRnpRaXhIUVVGSExFbEJRVWtzVDBGQlR5eEZRVWQyUXl4RFFVRkRPMEZCUlVvc1RVRkJUU3hWUVVGVkxFZEJRVWNzU1VGQlNTeFBRVUZQTEVWQlFXMURMRU5CUVVNN1FVRlpNMFFzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhEUVVFNFFpeFBRVUZWTEVWQlFVVXNSVUZCUlN4RFFVTTFSU3hWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZGVXl4RFFVRkRPMEZCUlROQ0xFMUJRVTBzYTBKQlFXdENMRWRCUVVjc1EwRkRhRU1zVDBGQlZTeEZRVU5XTEV0QlJWa3NSVUZEV2l4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkZOMElzVFVGQlRTeDVRa0ZCZVVJc1IwRkJSeXhEUVVGRExFOUJRVEJDTEVWQlFVVXNSVUZCUlN4RFFVTjBSU3hWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMEZCUlhSQ0xFMUJRVTBzYjBKQlFXOUNMRWRCUVVjc1EwRkRiRU1zVDBGQk1FSXNSVUZETVVJc1kwRkJZeXhIUVVGSExFdEJRVXNzUlVGRFlpeEZRVUZGTzBsQlExZ3NUVUZCVFN4UFFVRlBMRWRCUVZrN1VVRkRka0lzU1VGQlNTeEZRVUZGTEU5QlFVOHNRMEZCUXl4SlFVRkpPMUZCUTJ4Q0xHTkJRV01zUlVGRFdpeFBRVUZQTEVOQlFVTXNWMEZCVnl4TFFVRkxMRkZCUVZFN1dVRkRPVUlzUTBGQlF5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFOUJRVThzUTBGQlF5eFhRVUZYTEVOQlFVTTdXVUZEZWtNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eFhRVUZYTEV0QlFVc3NVVUZCVVR0blFrRkRiRU1zUTBGQlF5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFOUJRVThzUTBGQlF5eFhRVUZYTEVOQlFVTTdaMEpCUTNwRExFTkJRVU1zUTBGQlF5eFRRVUZUTzFGQlEyWXNjMFZCUVhORk8xRkJRM1JGTEdsRFFVRnBRenRSUVVOcVF5eHJRa0ZCYTBJc1JVRkJSU3hQUVVGUExFTkJRVU1zVjBGQlZ5eExRVUZMTEU5QlFVODdVVUZEYmtRc2MwVkJRWE5GTzFGQlEzUkZMSEZGUVVGeFJUdFJRVU55UlN4WFFVRlhMRVZCUTFRc1QwRkJUeXhEUVVGRExGZEJRVmNzUzBGQlN5eFBRVUZQTzFsQlF6ZENMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zVjBGQlZ5eEhRVUZITEVkQlFVYzdXVUZETTBJc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eFhRVUZYTzFGQlEzcENMSEZGUVVGeFJUdFJRVU55UlN4dFJVRkJiVVU3VVVGRGJrVXNPRVJCUVRoRU8xRkJRemxFTEZWQlFWVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1YwRkJWeXhIUVVGSExFTkJRVU03VVVGRGJrTXNWVUZCVlN4RlFVRkZMRTlCUVU4c1EwRkJReXhYUVVGWExFZEJRVWNzUTBGQlF6dFJRVU51UXl4VFFVRlRMRVZCUVVVc1QwRkJUeXhEUVVGRExGTkJRVk03VVVGRE5VSXNUVUZCVFN4RlFVRkZMRTlCUVU4c1EwRkJReXhYUVVGWE8xRkJRek5DTEdkQ1FVRm5RaXhGUVVGRkxHTkJRV003UzBGRGFrTXNRMEZCUXp0SlFVVkdMRkZCUVZFc1QwRkJUeXhEUVVGRExFbEJRVWtzUlVGQlJUdFJRVU53UWl4TFFVRkxMRmRCUVZjc1EwRkJRenRSUVVOcVFpeExRVUZMTEZOQlFWTXNRMEZCUXp0UlFVTm1MRXRCUVVzc1UwRkJVeXhEUVVGRExFTkJRVU03V1VGRFpDeFBRVUZQTEVOQlFVTXNVMEZCVXl4SFFVRkhMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU03V1VGRGRFTXNUMEZCVHl4RFFVRkRMRWxCUVVrN1owSkJRMVlzVDBGQlR5eERRVUZETEdWQlFXVXNTMEZCU3l4aFFVRmhPMjlDUVVOMlF5eERRVUZETEVOQlFVTXNVMEZCVXp0dlFrRkRXQ3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEdWQlFXVXNRMEZCUXp0WlFVTTVRaXhKUVVGSkxFOUJRVThzUTBGQlF5eEpRVUZKTEV0QlFVc3NVMEZCVXl4RlFVRkZPMmRDUVVNNVFpeFBRVUZQTEVOQlFVTXNXVUZCV1N4SFFVRkhMRU5CUVVNc1EwRkJRenRoUVVNeFFqdFpRVU5FTEU5QlFVOHNUMEZCVHl4RFFVRkRPMU5CUTJoQ08xRkJRMFFzUzBGQlN5eE5RVUZOTEVOQlFVTTdVVUZEV2l4TFFVRkxMRlZCUVZVc1EwRkJReXhEUVVGRE8xbEJRMllzU1VGQlNTeHJSRUZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJUdG5Ra0ZETDBJc1QwRkJUeXhEUVVGRExGTkJRVk1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRPMmRDUVVOMFF5eFBRVUZQTEVOQlFVTXNTVUZCU1R0dlFrRkRWaXhQUVVGUExFTkJRVU1zWlVGQlpTeExRVUZMTEdGQlFXRTdkMEpCUTNaRExFTkJRVU1zUTBGQlF5eFRRVUZUTzNkQ1FVTllMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zWlVGQlpTeERRVUZETzJGQlF5OUNPMWxCUTBRc1QwRkJUeXhQUVVGUExFTkJRVU03VTBGRGFFSTdVVUZEUkN4TFFVRkxMRTlCUVU4N1dVRkRWaXhQUVVGUExFOUJRVThzUTBGQlF6dFJRVU5xUWl4UFFVRlBMRU5CUVVNc1EwRkJRenRaUVVOUUxFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNjMEpCUVhOQ0xFOUJRVThzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMU5CUTNaRU8wdEJRMFk3UVVGRFNDeERRVUZETEVOQlFVTTdRVUZGUmpzN096dEhRVWxITzBGQlEwZ3NUVUZCVFN4dlFrRkJiMElzUjBGQlJ5eERRVU16UWl4UFFVRnZReXhGUVVOd1F5eFRRVUY1UWl4RlFVTjZRaXhGUVVGRk8wbEJRMFlzU1VGQlNTeExRVUZMTEVkQlFVY3NWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVVZ3UXl4blJVRkJaMFU3U1VGRGFFVXNLMEpCUVN0Q08wbEJReTlDTEVsQlFVa3NTMEZCU3l4TFFVRkxMRk5CUVZNc1JVRkJSVHRSUVVOMlFpeHpRa0ZCYzBJc1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZGZGtNc1VVRkJVU3hQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTzFsQlEzQkNMRXRCUVVzc1YwRkJWenRuUWtGRFpDeEpRVUZKTEU5QlFVOHNRMEZCUXl4bFFVRmxMRXRCUVVzc1QwRkJUeXhGUVVGRk8yOUNRVU4yUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETzI5Q1FVTjRRaXhOUVVGTkxFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRPMjlDUVVONlFpeE5RVUZOTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNN2IwSkJRMmhETEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVOd1FpeExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkRPVU1zUTBGQlF5eEhRVUZITEVOQlEwNHNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFBRVU01UXl4RFFVRkRMRWRCUVVjc1EwRkRUaXhSUVVGUkxFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NSVUZEZWtJc2IwSkJRVzlDTEVOQlFVTXNUMEZCVHl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVOd1F5eERRVUZETzJsQ1FVTklPM0ZDUVVGTk8yOUNRVU5NTEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNc1UwRkJVeXhEUVVONlFpeERRVUZETEVWQlEwUXNRMEZCUXl4RlFVTkVMRTlCUVU4c1EwRkJReXhMUVVGTExFVkJRMklzVDBGQlR5eERRVUZETEUxQlFVMHNSVUZEWkN4dlFrRkJiMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZET1VJc1EwRkJRenRwUWtGRFNEdG5Ra0ZEUkN4clFrRkJhMElzUTBGQlF5eFBRVUZQTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1owSkJSVzVETEUxQlFVMDdXVUZEVWl4TFFVRkxMRk5CUVZNc1EwRkJReXhEUVVGRE8yZENRVU5rTEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEVkQlEyaEZMR2xGUVVGblFpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMmRDUVVNMVFpeEpRVUZKTEU5QlFVOHNRMEZCUXl4bFFVRmxMRXRCUVVzc1QwRkJUeXhGUVVGRk8yOUNRVU4yUXl4TFFVRkxMRWRCUVVjc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGRGNFSXNTMEZCU3l4SlFVRkpMRWRCUVVjc1EwRkJReXhOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NTVUZCU1N4SlFVTm9ReXhKUVVGSkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1NVRkRNMElzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzU1VGQlNTeEpRVU51UXl4TlFVRk5MRWRCUVVjc1EwRkJReXhOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NTVUZETjBJN1owSkJRMGtzVFVGQlRTeEpRVUZKTEUxQlFVMHNTMEZCU3l4TlFVRk5MRWxCUVVrc1RVRkJUU3hMUVVOMlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWRCUVVjc1QwRkJUeXhEUVVGRExFZEJRVWNzU1VGRGFFTXNTVUZCU1N4TlFVRk5MRWRCUVVjc1EwRkJReXhQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETEVkQlFVY3NTVUZCU1R0blFrRkRiRU1zVDBGQlR5eEhRVUZITEVOQlFVTXNUVUZCVFN4SFFVRkhMRTlCUVU4c1EwRkJReXhIUVVGSExFbEJRVWtzU1VGRGNrTXNUMEZCVHl4SFFVRkhMRU5CUVVNc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF5eEhRVUZITEVsQlEycERPMmRDUVVOSkxFOUJRVThzU1VGQlNTeFBRVUZQTEV0QlFVc3NUMEZCVHl4SlFVRkpMRTlCUVU4c1MwRkRNME1zVDBGQlR5eEhRVUZITEVOQlFVTXNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJReXhIUVVGSExFbEJRMmhETEVsQlFVa3NUMEZCVHl4SFFVRkhMRU5CUVVNc1QwRkJUeXhIUVVGSExFdEJRVXNzUTBGQlF5eEhRVUZITEVsQlFVazdaMEpCUTJ4RExFdEJRVXNzUjBGQlJ5eERRVUZETEU5QlFVOHNSMEZCUnl4TFFVRkxMRU5CUVVNc1IwRkJSeXhKUVVGSkxFbEJRMnhETEV0QlFVc3NSMEZCUnl4RFFVRkRMRTlCUVU4c1IwRkJSeXhMUVVGTExFTkJRVU1zUjBGQlJ5eEpRVU01UWp0blFrRkRTU3hMUVVGTExFbEJRVWtzUzBGQlN5eExRVUZMTEV0QlFVc3NTVUZCU1N4TFFVRkxMRXRCUTI1RExFdEJRVXNzUjBGQlJ5eERRVUZETEVsQlFVa3NSMEZCUnl4TFFVRkxMRU5CUVVNc1IwRkJSeXhKUVVNelFpeEpRVUZKTEV0QlFVc3NSMEZCUnl4RFFVRkRMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEpRVUZKTzJkQ1FVTTNRaXhKUVVGSkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVkQlFVY3NTMEZCU3l4RFFVRkRMRWRCUVVjc1NVRkJTU3hKUVVGSkxFbEJRVWtzUjBGQlJ5eERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhKUVVGSk8yZENRVU0xUkN4SlFVRkpMRWxCUVVrc1NVRkJTU3hMUVVGTExFbEJRVWtzU1VGQlNTeEpRVUZKTEV0QlF5OUNMRWxCUVVrc1IwRkJSeXhEUVVGRExFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4SlFVTXpRaXhKUVVGSkxFbEJRVWtzUjBGQlJ5eERRVUZETEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhKUVVGSkxFVkJRVVVzUlVGRGJrTXNiMEpCUVc5Q0xFTkJRVU1zVDBGQlR5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTndReXhEUVVGRE8ybENRVU5JTzNGQ1FVRk5PMjlDUVVOTUxFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVTjJRanQzUWtGRFJTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNN2QwSkJRMW9zUTBGQlF5eE5RVUZOTEVWQlFVVXNUVUZCVFN4RFFVRkRPM2RDUVVOb1FpeERRVUZETEU5QlFVOHNSVUZCUlN4UFFVRlBMRU5CUVVNN2QwSkJRMnhDTEVOQlFVTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJRenR4UWtGRFppeEZRVU5FTEc5Q1FVRnZRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVU01UWl4RFFVRkRPMmxDUVVOSU8yZENRVU5FTEd0Q1FVRnJRaXhEUVVGRExFOUJRVThzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0blFrRkZia01zVFVGQlRUdGhRVU5RTzFsQlEwUXNTMEZCU3l4VFFVRlRPMmRDUVVOYUxFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVTjJRaXhQUVVGUExFTkJRVU1zUzBGQlN5eEhRVUZITEVOQlFVTXNSVUZEYWtJc1QwRkJUeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlEyeENMRTlCUVU4c1EwRkJReXhMUVVGTExFVkJRMklzVDBGQlR5eERRVUZETEUxQlFVMHNSVUZEWkN4dlFrRkJiMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZET1VJc1EwRkJRenRuUWtGRFJpeHJRa0ZCYTBJc1EwRkJReXhQUVVGUExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdaMEpCUlc1RExFMUJRVTA3V1VGRFVpeExRVUZMTEUxQlFVMHNRMEZCUXp0WlFVTmFMRXRCUVVzc1QwRkJUeXhEUVVGRExFTkJRVU03WjBKQlExb3NUVUZCVFN4UFFVRlBMRWRCUVVjc2IwSkJRVzlDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1owSkJSVGxETEhkRlFVRjNSVHRuUWtGRGVFVXNlVUpCUVhsQ08yZENRVU42UWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVVnFSU3h2UTBGQmIwTTdaMEpCUTNCRExHMUVRVUZ0UkR0blFrRkRia1FzU1VGQlNTeFBRVUZQTEVOQlFVTXNaVUZCWlN4TFFVRkxMRTlCUVU4c1JVRkJSVHR2UWtGRGRrTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1NVRkJTU3hGUVVGRk8zZENRVU5vUWl4TFFVRkxMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFUUkNMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dHhRa0ZEY0VVN2VVSkJRVTA3ZDBKQlEwd3NTMEZCU3l4SFFVRkhPelJDUVVOT0xGTkJRVk1zUTBGQlF5eFZRVUZWTEVOQlFVTXNUVUZCTkVJc1JVRkJSU3hQUVVGUExFTkJRVU03ZVVKQlF6VkVMRU5CUVVNN2NVSkJRMGc3YVVKQlEwWTdjVUpCUVUwN2IwSkJRMHdzUzBGQlN5eEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVFMFFpeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN2FVSkJRMnhGTzJkQ1FVVkVMREJDUVVFd1FqdG5Ra0ZETVVJc1NVRkJTU3hQUVVGUExFTkJRVU1zU1VGQlNTeExRVUZMTEU5QlFVOHNSVUZCUlR0dlFrRkROVUlzVFVGQlRTeEZRVUZGTEdOQlFXTXNSMEZCUnl4SlFVRkpMRVZCUVVVc1dVRkJXU3hIUVVGSExFOUJRVThzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXp0dlFrRkZiRVVzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhEUVVONlFpeFBRVUZuUXl4RlFVTm9ReXhMUVVGcFFpeEZRVU5xUWl4UlFVRjVRaXhGUVVONlFpeFRRVUZ2UWl4RlFVTndRaXhGUVVGRk8zZENRVU5HTEUxQlFVMHNaVUZCWlN4SFFVRkhMRzFGUVVGclFpeERRVU40UXl4UFFVRlBMRVZCUTFBc1MwRkJTeXhGUVVOTUxGRkJRVkVzUlVGRFVpeFRRVUZUTEVOQlExWXNRMEZCUXp0M1FrRkZSaXhKUVVGSkxHVkJRV1VzUzBGQlN5eEpRVUZKTEVWQlFVVTdORUpCUXpWQ0xFOUJRVThzUlVGQlJTeERRVUZETzNsQ1FVTllPM2RDUVVWRUxESkNRVUV5UWp0M1FrRkRNMElzU1VGQlNTeFRRVUZUTEV0QlFVc3NTMEZCU3l4RlFVRkZPelJDUVVOMlFpeE5RVUZOTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUjBGQlJ5eGxRVUZsTEVOQlFVTTdORUpCUld4RExFOUJRVTg3WjBOQlEwd3NVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNhME5CUTI1Q0xFOUJRVThzUzBGRFZpeEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRmRCUVZjc1JVRkRla0lzVTBGQlV5eEZRVUZGTEU5QlFVOHNSVUZEYkVJc1RVRkJUU3hGUVVGRkxFMUJRVTBzU1VGRFpEczJRa0ZEU0N4RFFVRkRPM2xDUVVOSU8zZENRVVZFTEVsQlFVa3NVMEZCVXl4TFFVRkxMRlZCUVZVc1JVRkJSVHMwUWtGRE5VSXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzWlVGQlpTeERRVUZET3pSQ1FVVXZReXhwUkVGQmFVUTdORUpCUTJwRUxFOUJRVThzVDBGQlR5eERRVUZETEdOQlFXTXNRMEZCUXpzMFFrRkZPVUlzVDBGQlR6dG5RMEZEVEN4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVObU8yOURRVU5GTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenR2UTBGRFRpeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNN2IwTkJRMUlzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRPMjlEUVVOU0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0cFEwRkRVQ3hyUTBGRlNTeFBRVUZQTEV0QlExWXNTVUZCU1N4RlFVRkZMRTlCUVU4c1EwRkJReXhYUVVGWExFVkJRM3BDTEZOQlFWTXNSVUZCUlN4UFFVRlBMRWxCUlhKQ096WkNRVU5HTEVOQlFVTTdlVUpCUTBnN2QwSkJSVVFzYlVKQlFXMUNPM2RDUVVOdVFpeE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhsUVVGbExFTkJRVU03ZDBKQlJXcEVMRWxCUVVrc1QwRkJUeXhEUVVGRExGZEJRVmNzUzBGQlN5eFJRVUZSTEVWQlFVVTdORUpCUTNCRExEWkVRVUUyUkRzMFFrRkROMFFzVFVGQlRTeEpRVUZKTEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU1zVDBGQlR5eERRVUZETEZkQlFWY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenMwUWtGRGVrUXNUMEZCVHl4RFFVRkRMR05CUVdNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdlVUpCUTJwRU96WkNRVUZOT3pSQ1FVTk1MSGxEUVVGNVF6czBRa0ZEZWtNc1QwRkJUeXhQUVVGUExFTkJRVU1zWTBGQll5eERRVUZETzNsQ1FVTXZRanQzUWtGRFJDeFBRVUZQT3pSQ1FVTk1MRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFOUJRVThzUTBGQlF6czBRa0ZEZGtNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzVDBGQlR5eERRVUZETzNsQ1FVTjRReXhEUVVGRE8yOUNRVU5LTEVOQlFVTXNRMEZCUXp0dlFrRkZSaXhKUVVGSkxHTkJRV01zUzBGQlN5eEpRVUZKTEVWQlFVVTdkMEpCUXpOQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEd0Q1FVRnJRaXhEUVVNdlFpeFBRVUZQTEVWQlExQXNTMEZCU3l4RlFVTk1MRTlCUVU4c1JVRkRVQ3hqUVVGakxFTkJRMllzUTBGQlF6dDNRa0ZEUml4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTTdjVUpCUTNaQ08yOUNRVVZFTEVsQlFVa3NXVUZCV1N4TFFVRkxMRWxCUVVrc1JVRkJSVHQzUWtGRGVrSXNTVUZCU1N4WlFVRlpMRXRCUVVzc1UwRkJVeXhGUVVGRk96UkNRVU01UWl4clEwRkJhME03ZVVKQlEyNURPM2RDUVVWRUxFMUJRVTBzVFVGQlRTeEhRVUZITEd0Q1FVRnJRaXhEUVVNdlFpeFBRVUZQTEVWQlExQXNTMEZCU3l4RlFVTk1MRXRCUVVzc1JVRkRUQ3haUVVGWkxFTkJRMklzUTBGQlF6dDNRa0ZEUml4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTTdjVUpCUTNaQ08ybENRVU5HTzJkQ1FVVkVMR3RDUVVGclFpeERRVUZETEU5QlFVOHNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRuUWtGRmJrTXNUVUZCVFR0aFFVTlFPMWxCUTBRc1MwRkJTeXhWUVVGVkxFTkJRVU1zUTBGQlF6dG5Ra0ZEWml4eFFrRkJjVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0blFrRkZMMElzU1VGQlNTeHJSRUZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJUdHZRa0ZETDBJc1owUkJRV2RFTzI5Q1FVTm9SQ3hMUVVGTExFZEJRVWNzVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJORUlzYTBOQlEzcEVMRzlDUVVGdlFpeERRVUZETEU5QlFVOHNRMEZCUXl4TFFVTm9ReXhOUVVGTkxFVkJRVVVzVFVGQlRTeEpRVU5rTEVOQlFVTTdhVUpCUTBvN2NVSkJRVTA3YjBKQlEwd3NTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJRenRwUWtGRFpEdG5Ra0ZEUkN4clFrRkJhMElzUTBGQlF5eFBRVUZQTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1owSkJRMjVETEUxQlFVMDdZVUZEVUR0WlFVTkVMRXRCUVVzc1RVRkJUU3hEUVVGRE8xbEJRMW9zUzBGQlN5eFBRVUZQTEVOQlFVTXNRMEZCUXp0blFrRkRXaXhwUlVGQmFVVTdaMEpCUTJwRkxHdENRVUZyUWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYkVNc1RVRkJUVHRoUVVOUU8xTkJRMFk3UzBGRFJqdEJRVU5JTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc2VVSkJRWGxDTEVkQlFVY3NRMEZEYUVNc1QwRkJiME1zUlVGRGNFTXNXVUZCTUVJc1JVRkRNVUlzUlVGQlJUdEpRVU5HTEUxQlFVMHNTVUZCU1N4SFFVRlRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1pVRkJaU3hEUVVGRExFbEJRVWtzUTBGQlF6dEpRVU16UlN4TlFVRk5MSEZDUVVGeFFpeEhRVUZITEhOQ1FVRnpRaXhEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTnNSU3hOUVVGTkxESkNRVUV5UWl4SFFVTXZRaXh4UWtGQmNVSTdVVUZEY2tJc2NVSkJRWEZDTEVOQlFVTXNWVUZCVlN4TFFVRkxMRWxCUVVrc1EwRkJReXhMUVVGTE8xRkJReTlETEVOQlFVTXNZVUZCV1N4aFFVRmFMRmxCUVZrc2RVSkJRVm9zV1VGQldTeERRVUZGTEhGQ1FVRnhRaXhGUVVGRE8wbEJSWFpETEVsQlEwVXNRMEZCUXl4eFFrRkJjVUk3VVVGRGRFSXNNa0pCUVRKQ08xRkJRek5DTEhGQ1FVRnhRaXhEUVVGRExFdEJRVXNzUzBGQlN5eFpRVUZaTEVOQlFVTXNTMEZCU3l4RlFVTnNSRHRSUVVOQkxFMUJRVTBzYVVKQlFXbENMRWRCUVVjc2NVSkJRWEZDTEVOQlF6ZERMRTlCUVU4c1JVRkRVQ3hKUVVGSkxFVkJRMG9zV1VGQldTeERRVU5pTEVOQlFVTTdVVUZGUml4elFrRkJjMElzUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RlFVRkZMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdVVUZGZGtRc1QwRkJUeXhwUWtGQmFVSXNRMEZCUXp0TFFVTXhRanRKUVVORUxFOUJRVThzY1VKQlFYRkNMRU5CUVVNN1FVRkRMMElzUTBGQlF5eERRVUZETzBGQlJVWXNUVUZCVFN4eFFrRkJjVUlzUjBGQlJ5eERRVU0xUWl4cFFrRkJPRU1zUlVGRE9VTXNSVUZCWlN4RlFVTm1MRTlCUVdsRExFVkJRMnBETEZsQlFUQkNMRVZCUXpGQ0xFVkJRVVU3U1VGRFJpeE5RVUZOTEU5QlFVOHNSMEZCUnl4cFFrRkJhVUlzUTBGQlF5eFBRVUZQTEVOQlFVTTdTVUZETVVNc1RVRkJUU3hQUVVGUExFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRE1VTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4SFFVRkhMSGxGUVVGM1FpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUlhwRUxIZEZRVUYzUlR0SlFVTjRSU3hKUVVGSkxITkZRVUZwUWl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRk8xRkJRemxDTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzQkNMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTI1Q0xFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM0JDTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzB0QlEzQkNPMGxCUlVRc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0SlFVTTFSU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExHZENRVUZuUWl4RFFVRkRPMGxCUlRWRkxFMUJRVTBzYzBKQlFYTkNMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTXNUMEZCVHl4RlFVRkZMRmxCUVZrc1EwRkJReXhEUVVGRE8wbEJSVFZGTEUxQlFVMHNXVUZCV1N4SFFVTm9RaXhQUVVGUExFbEJRVWtzYVVKQlFXbENMRU5CUVVNc1QwRkJUeXhKUVVGSkxFTkJRVU1zYzBKQlFYTkNPMUZCUXpkRUxFTkJRVU1zUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTndReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlExSXNUVUZCVFN4WlFVRlpMRWRCUTJoQ0xFOUJRVThzU1VGQlNTeHBRa0ZCYVVJc1EwRkJReXhQUVVGUExFbEJRVWtzUTBGQlF5eHpRa0ZCYzBJN1VVRkROMFFzUTBGQlF5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNCRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGVWl4UFFVRlBMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03U1VGRFppeFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVTllMRU5CUVVNc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhIUVVGSExGbEJRVmtzUlVGRE5VTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVNM1F5eERRVUZETzBsQlEwWXNUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkJReXhGUVVGRkxFZEJRVWNzV1VGQldTeEZRVUZGTEVWQlFVVXNSMEZCUnl4WlFVRlpMRU5CUVVNc1EwRkJRenRKUVVONFJDeFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFZEJRVWNzV1VGQldTeEhRVUZITEZsQlFWa3NRMEZCUXl4RFFVRkRPMGxCUlRWRUxFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlEyWXNhVUpCUVdsQ0xFTkJRVU1zVFVGQlR5eEZRVU42UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExHZENRVUZuUWp0UlFVTjRReXhEUVVGRExFOUJRVThzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhWUVVGVkxFTkJRVU1zUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhWUVVGVkxFVkJRM3BGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1owSkJRV2RDTzFGQlEzaERMRU5CUVVNc1QwRkJUeXhIUVVGSExHbENRVUZwUWl4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExHbENRVUZwUWl4RFFVRkRMRlZCUVZVc1JVRkRla1VzYVVKQlFXbENMRU5CUVVNc1RVRkJUeXhEUVVGRExFdEJRVXNzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhWUVVGVkxFVkJRemxFTEdsQ1FVRnBRaXhEUVVGRExFMUJRVThzUTBGQlF5eE5RVUZOTEVkQlFVY3NhVUpCUVdsQ0xFTkJRVU1zVlVGQlZTeERRVU5vUlN4RFFVRkRPMGxCUTBZc1QwRkJUeXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzBsQlJXeENMR3RFUVVGclJEdEJRVU53UkN4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxHRkJRV0VzUjBGQlJ5eERRVU16UWl4UFFVRnZReXhGUVVOd1F5eEZRVUZsTEVWQlEyWXNUMEZCYVVNc1JVRkRha01zV1VGQk1FSXNSVUZETVVJc1JVRkJSVHRKUVVOR0xFMUJRVTBzVTBGQlV5eEhRVUZITEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNN1NVRkRMMElzVVVGQlVTeFBRVUZQTEVOQlFVTXNTVUZCU1N4RlFVRkZPMUZCUTNCQ0xFdEJRVXNzVjBGQlZ5eERRVUZETEVOQlFVTTdXVUZEYUVJc1QwRkJUeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFsQlEyWXNUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkRaaXhQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4UFFVRlBMRVZCUTJoRExFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkRha01zUTBGQlF6dFpRVU5HTEU5QlFVOHNRMEZCUXl4VFFVRlRMRWRCUVVjc2RVSkJRWFZDTEVOQlFVTTdXVUZETlVNc1QwRkJUeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRTlCUVU4c1EwRkJReXhMUVVGTExFVkJRVVVzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUTNSRUxFOUJRVThzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0WlFVTnNRaXhOUVVGTk8xTkJRMUE3VVVGRFJDeExRVUZMTEZWQlFWVXNRMEZCUXl4RFFVRkRPMWxCUTJZc2IwSkJRVzlDTEVOQlFVTXNUMEZCVHl4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRE8xbEJSWHBETEVsQlFVa3NXVUZCV1N4RFFVRkRMRmRCUVZjc1JVRkJSVHRuUWtGRE5VSXNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eDVRa0ZCZVVJc1EwRkRha1FzVDBGQlR5eEZRVU5RTEZsQlFWa3NRMEZEWWl4RFFVRkRPMmRDUVVOR0xIRkNRVUZ4UWl4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1dVRkJXU3hEUVVGRExFTkJRVU03WVVGRGNrVTdhVUpCUVUwN1owSkJRMHdzVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITEhsRlFVRjNRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJkQ1FVTXpSQ3hOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEU5QlFVOHNRMEZCUXp0blFrRkRhRVFzVFVGQlRTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4UFFVRlBMRU5CUVVNN1owSkJRMmhFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTTdaMEpCUTJoRUxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU03WjBKQlEyaEVMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dG5Ra0ZEWml4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0blFrRkRNVUlzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03WjBKQlF6bENMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRuUWtGRGNFTXNiVUpCUVcxQ0xFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1dVRkJXU3hEUVVGRExFTkJRVU03WjBKQlEzaEVMRTlCUVU4c1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dGhRVU51UWp0WlFVVkVMRTFCUVUwN1UwRkRVRHRSUVVORUxFdEJRVXNzVjBGQlZ5eERRVUZETzFGQlEycENMRXRCUVVzc1UwRkJVeXhEUVVGRE8xRkJRMllzUzBGQlN5eFRRVUZUTEVOQlFVTTdVVUZEWml4TFFVRkxMRTFCUVUwc1EwRkJRenRSUVVOYUxFdEJRVXNzVDBGQlR5eERRVUZETzFGQlEySXNTMEZCU3l4UFFVRlBMRU5CUVVNN1VVRkRZaXhMUVVGTExFMUJRVTBzUTBGQlF5eERRVUZETzFsQlExZ3NiMEpCUVc5Q0xFTkJRVU1zVDBGQlR5eEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRkRPMWxCUTNwRExFbEJRVWtzV1VGQldTeERRVUZETEZkQlFWY3NSVUZCUlR0blFrRkROVUlzVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITEhsRlFVRjNRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJkQ1FVTXpSQ3hOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEU5QlFVOHNRMEZCUXp0blFrRkRhRVFzVFVGQlRTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4UFFVRlBMRU5CUVVNN1owSkJRMmhFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTTdaMEpCUTJoRUxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU03WjBKQlEyaEVMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dG5Ra0ZEWml4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0blFrRkRNVUlzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03WjBKQlF6bENMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRuUWtGRmNFTXNTVUZCU1N4elFrRkJjMElzUTBGQlF5eFBRVUZQTEVWQlFVVXNXVUZCV1N4RFFVRkRMRVZCUVVVN2IwSkJRMnBFTEU5QlFVOHNRMEZCUXl4TlFVRk5MRWRCUVVjc1RVRkJUU3hEUVVGRE8ybENRVU42UWp0blFrRkZSQ3h0UWtGQmJVSXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeFpRVUZaTEVOQlFVTXNRMEZCUXp0blFrRkRlRVFzVDBGQlR5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMmRDUVVOc1FpeHRSVUZCYlVVN1owSkJRMjVGTEZsQlFWazdZVUZEWWp0cFFrRkJUVHRuUWtGRFRDeE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExIbENRVUY1UWl4RFFVTnFSQ3hQUVVGUExFVkJRMUFzV1VGQldTeERRVU5pTEVOQlFVTTdaMEpCUTBZc2NVSkJRWEZDTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzUlVGQlJTeEZRVUZGTEU5QlFVOHNSVUZCUlN4WlFVRlpMRU5CUVVNc1EwRkJRenRoUVVOeVJUdFpRVU5FTEUxQlFVMDdVMEZEVUR0UlFVTkVMRTlCUVU4c1EwRkJReXhEUVVGRE8xbEJRMUFzWVVGQllUdFpRVU5pTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc2MwSkJRWE5DTEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRE8xTkJRM1pFTzB0QlEwWTdRVUZEU0N4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxIbENRVUY1UWl4SFFVRkhMRU5CUTJoRExFbEJRV01zUlVGRFpDeFJRVUZyUWl4RlFVTnNRaXhUUVVGclFpeEZRVU5zUWl4RlFVRkZPMGxCUTBZc1NVRkJTU3hQUVVGUExGTkJRVk1zUzBGQlN5eFhRVUZYTEVWQlFVVTdVVUZEY0VNc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMHRCUXpWQ08wbEJRMFFzVFVGQlRTeE5RVUZOTEVkQlFXRTdVVUZEZGtJc1NVRkJTU3hGUVVGRkxGRkJRVkVzUTBGQlF5eEpRVUZKTzFGQlEyNUNMRXRCUVVzc1JVRkJSU3hSUVVGUkxFTkJRVU1zUzBGQlN6dFJRVU55UWl4UFFVRlBMR3REUVVGUExGRkJRVkVzUTBGQlF5eFBRVUZQTEV0QlFVVXNkVUpCUVhWQ0xFVkJRVVVzVTBGQlV5eEhRVUZGTzB0QlEzSkZMRU5CUVVNN1NVRkRSaXhQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1FVRkRNMElzUTBGQlF5eERRVUZETzBGQlJVc3NUVUZCVFN4clFrRkJhMElzUjBGQlJ5eERRVU5vUXl4UFFVRnZReXhGUVVOd1F5eEpRVUZqTEVWQlEyUXNUMEZCYlVJc1JVRkRia0lzUzBGQmEwSXNSVUZEYkVJc1QwRkJaMElzUlVGRGFFSXNUMEZCWjBJc1JVRkRhRUlzYTBKQlFUUkNMRVZCUXpWQ0xFVkJRVVU3U1VGRFJpeE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NlVVZCUVhkQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTVUZETTBRc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVNMVF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETzBsQlF6VkRMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUjBGQlJ5eEhRVUZITEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETzBsQlF5OURMRTFCUVUwc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTTdTVUZEYWtNc1VVRkJVU3hQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTzFGQlEzQkNMRXRCUVVzc1YwRkJWeXhEUVVGRExFTkJRVU03V1VGRGFFSXNORVZCUVRSRk8xbEJRelZGTEhsQ1FVRjVRanRaUVVONlFpeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMRGhEUVVFNFF5eERRVUZETEVOQlFVTTdVMEZEYWtVN1VVRkRSQ3hMUVVGTExGZEJRVmNzUTBGQlF6dFJRVU5xUWl4TFFVRkxMRk5CUVZNc1EwRkJRenRSUVVObUxFdEJRVXNzVTBGQlV5eERRVUZETEVOQlFVTTdXVUZEWkN4dlFrRkJiMElzUTBGQlF5eFBRVUZQTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNN1dVRkRla01zVFVGQlRTeEpRVUZKTEVkQlFVY3NlVUpCUVhsQ0xFTkJRM0JETEVsQlFVa3NSVUZEU2l4clFrRkJhMElzUTBGQlF5eFBRVUZQTEVOQlFVVXNSVUZETlVJc2JVVkJRVEpDTEVOQlF6VkNMRU5CUVVNN1dVRkRSaXhOUVVGTkxFOUJRVThzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUMEZCVHl4SFFVRkhMRWRCUVVjc1EwRkJRenRaUVVOMFF5eEpRVUZKTEU5QlFVOHNTMEZCU3l4RFFVRkRMRVZCUVVVN1owSkJRMnBDTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNSMEZCUnl4UFFVRlBMRVZCUVVVc1EwRkJReXhEUVVGRE8yZENRVU5zUkN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExHTkJRV01zUlVGQlJTeEhRVUZITEU5QlFVOHNSVUZCUlN4RFFVRkRMRU5CUVVNN1lVRkRha1E3V1VGRFJDeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMWxCUXpkRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlEyWXNWMEZCVnl4RlFVTllMR0ZCUVdFc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGRGRrSXNUMEZCVHl4SlFVRkpMRU5CUTJJc1dVRkJXU3hOUVVGTkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNSMEZCUnl4RFFVTnNReXhEUVVGRE8xbEJRMFlzVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVNeFFpeE5RVUZOTzFOQlExQTdVVUZEUkN4TFFVRkxMRTFCUVUwc1EwRkJRenRSUVVOYUxFdEJRVXNzVDBGQlR5eERRVUZETEVOQlFVTTdXVUZEV2l4dlFrRkJiMElzUTBGQlF5eFBRVUZQTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNN1dVRkRla01zVFVGQlRTeExRVUZMTEVkQlFVY3NUMEZCVHl4RFFVRkRMR0ZCUVdNc1EwRkJReXhsUVVGbExFTkJRVU1zT0VOQlFVMHNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOc1JTeE5RVUZOTEU5QlFVOHNSMEZCUnl4UFFVRlBMRU5CUVVNc1QwRkJUeXhIUVVGSExFZEJRVWNzUTBGQlF6dFpRVU4wUXl4TFFVRkxMRU5CUVVNc1dVRkJXU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE8xbEJSVGxETEd0Q1FVRnJRaXhEUVVGRExFOUJRVThzUTBGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRk8yZENRVU0zUXl4TlFVRk5MRWxCUVVrc1IwRkJSeXg1UWtGQmVVSXNRMEZEY0VNc1NVRkJTU3hGUVVOS0xFdEJRVXNzUlVGRFRDeHRSVUZCTWtJc1EwRkROVUlzUTBGQlF6dG5Ra0ZEUml4SlFVRkpMRTlCUVU4c1MwRkJTeXhEUVVGRExFVkJRVVU3YjBKQlEycENMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1IwRkJSeXhQUVVGUExFVkJRVVVzUTBGQlF5eERRVUZETzI5Q1FVTnNSQ3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEdOQlFXTXNSVUZCUlN4SFFVRkhMRTlCUVU4c1JVRkJSU3hEUVVGRExFTkJRVU03YVVKQlEycEVPMmRDUVVORUxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlEyWXNWMEZCVnl4RlFVTllMR0ZCUVdFc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGRGRrSXNUMEZCVHl4SlFVRkpMRU5CUTJJc1dVRkJXU3hOUVVGTkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNSMEZCUnl4RFFVTnNReXhEUVVGRE8yZENRVU5HTEVsQlEwVXNUMEZCVHl4RFFVRkRMRWxCUVVrc1MwRkJTeXhOUVVGTk8yOUNRVU4yUWl4clJFRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTTdiMEpCUXpOQ0xFOUJRVThzUTBGQlF5eGxRVUZsTEV0QlFVc3NZVUZCWVN4RlFVTjZRenR2UWtGRFFTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRmRCUVZjc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dHBRa0ZETTBNN1owSkJRMFFzUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVNeFFpeERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTklMRTlCUVU4c1EwRkJReXhYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdXVUZETTBJc1RVRkJUVHRUUVVOUU8xRkJRMFFzUzBGQlN5eFZRVUZWTEVOQlFVTXNRMEZCUXp0WlFVTm1MSEZDUVVGeFFpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMWxCUXk5Q0xFMUJRVTBzVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXl4UFFVRlBMRWRCUVVjc1IwRkJSeXhEUVVGRE8xbEJRM1JETEUxQlFVMHNTMEZCU3l4SFFVRkhMR3RDUVVGclFpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMWxCUXpGRExFMUJRVTBzU1VGQlNTeEhRVUZITEV0QlFVczdaMEpCUTJoQ0xFTkJRVU1zUTBGQlF5eDVRa0ZCZVVJc1EwRkJReXhKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTEcxRlFVRXlRaXhEUVVGRE8yZENRVU55UlN4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV01zUTBGQlF5eGxRVUZsTEVOQlFVTXNPRU5CUVUwc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU40UkN4SlFVRkpMRTlCUVU4c1MwRkJTeXhEUVVGRExFVkJRVVU3WjBKQlEycENMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1IwRkJSeXhQUVVGUExFVkJRVVVzUTBGQlF5eERRVUZETzJkQ1FVTnNSQ3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEdOQlFXTXNSVUZCUlN4SFFVRkhMRTlCUVU4c1JVRkJSU3hEUVVGRExFTkJRVU03WVVGRGFrUTdXVUZEUkN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVObUxGZEJRVmNzUlVGRFdDeGhRVUZoTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUTNaQ0xFOUJRVThzU1VGQlNTeERRVU5pTEZsQlFWa3NUVUZCVFN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFZEJRVWNzUTBGRGJFTXNRMEZCUXp0WlFVTkdMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVVVGQlVTeEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUTNCRExFMUJRVTBzU1VGQlNTeEhRVUZITEU5QlFVOHNRMEZCUXl4aFFVRmpMRU5CUVVNc1pVRkJaU3hEUVVGRExEaERRVUZOTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRjRVVzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzFsQlF5OURMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEd0Q1FVRnJRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEY0VRc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0WlFVTjJRaXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMWxCUXpGQ0xFMUJRVTA3VTBGRFVEdFJRVU5FTEV0QlFVc3NUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRXaXhOUVVGTkxGRkJRVkVzUjBGRFdpdzRSVUZCZVVJc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJRemxFTEVsQlFVa3NVVUZCVVN4RlFVRkZPMmRDUVVOYUxFMUJRVTBzVVVGQlVTeEhRVUZITEZOQlFWTXNVVUZCVVN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRE8yZENRVU40UXl4SlFVRkpMRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NVVUZCVVN4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRGJrUXNTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSVHR2UWtGRFdDeE5RVUZOTEVkQlFVY3NUMEZCVHl4RFFVRkRMR0ZCUVdNc1EwRkJReXhsUVVGbExFTkJRVU1zT0VOQlFVMHNSVUZCUlN4UlFVRlJMRU5CUVVNc1EwRkJRenR2UWtGRGJFVXNUVUZCVFN4RFFVRkRMRVZCUVVVc1IwRkJSeXhSUVVGUkxFTkJRVU03YjBKQlJYSkNMRTFCUVUwc1MwRkJTeXhIUVVGSExFOUJRVThzUTBGQlF5eGhRVUZqTEVOQlFVTXNaVUZCWlN4RFFVRkRMRGhEUVVGTkxFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdiMEpCUlhSRkxFdEJRVXNzUTBGQlF5eFpRVUZaTEVOQlFVTXNUMEZCVHl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8yOUNRVU53UXl4TFFVRkxMRU5CUVVNc1dVRkJXU3hEUVVGRExGRkJRVkVzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0dlFrRkRja01zUzBGQlN5eERRVUZETEZsQlFWa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzI5Q1FVVTNReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMjlDUVVVeFFpeFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8ybENRVU42UWp0blFrRkZSQ3hOUVVGTkxFZEJRVWNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNZVUZCWXl4RFFVRkRMR1ZCUVdVc1EwRkJReXc0UTBGQlRTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMmRDUVVOc1JTeEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxGRkJRVkVzUlVGQlJTeERRVUZETEVOQlFVTTdaMEpCUlhwRExDdERRVUVyUXp0blFrRkRMME1zU1VGQlNTeHJRa0ZCYTBJc1NVRkJTU3hSUVVGUkxFTkJRVU1zVVVGQlVTeExRVUZMTEhORVFVRmpMRVZCUVVVN2IwSkJRemxFTEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1VVRkJVU3hGUVVGRkxHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNN2FVSkJRMnBFTzJkQ1FVVkVMRWRCUVVjc1EwRkJReXhaUVVGWkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMmRDUVVNeFJDeEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dG5Ra0ZGTlVRc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGRFpDeFhRVUZYTEVWQlExZ3NZVUZCWVN4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVOMlFpeFBRVUZQTEVsQlFVa3NRMEZEWWl4WlFVRlpMRTFCUVUwc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEhRVUZITEVOQlEyeERMRU5CUVVNN1owSkJSVVlzVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRoUVVNeFFqdFpRVU5FTEUxQlFVMDdVMEZEVUR0UlFVTkVMRTlCUVU4c1EwRkJReXhEUVVGRE8xbEJRMUFzU1VGQlNTeHJSVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRk8yZENRVU14UWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhQUVVGUExFTkJRVU1zVDBGQlR5eEhRVUZITEVkQlFVY3NRMEZCUXp0blFrRkRkRU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NUMEZCVHl4RFFVRkRMR0ZCUVdNc1EwRkJReXhsUVVGbExFTkJRVU1zT0VOQlFVMHNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRuUWtGRGFrVXNTVUZCU1N4UFFVRlBMRXRCUVVzc1EwRkJReXhGUVVGRk8yOUNRVU5xUWl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMRWRCUVVjc1QwRkJUeXhGUVVGRkxFTkJRVU1zUTBGQlF6dHZRa0ZEYkVRc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eGpRVUZqTEVWQlFVVXNSMEZCUnl4UFFVRlBMRVZCUVVVc1EwRkJReXhEUVVGRE8ybENRVU5xUkR0blFrRkRSQ3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVU5tTEZkQlFWY3NSVUZEV0N4aFFVRmhMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRM1pDTEU5QlFVOHNTVUZCU1N4RFFVTmlMRmxCUVZrc1RVRkJUU3hKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVkQlFVY3NRMEZEYkVNc1EwRkJRenRuUWtGRFJpeE5RVUZOTEV0QlFVc3NSMEZCUnl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFJRVUZSTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzJkQ1FVTXZSQ3hOUVVGTkxGVkJRVlVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4SFFVRkhMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU03WjBKQlEycEVMRTFCUVUwc1kwRkJZeXhIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVkQlFVY3NUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJRenRuUWtGRGVrUXNUVUZCVFN4blFrRkJaMElzUjBGRGNFSXNUMEZCVHl4RFFVRkRMRk5CUVZNc1MwRkJTeXhSUVVGUk8yOUNRVU0xUWl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUjBGQlJ5eERRVUZETzI5Q1FVTnVRaXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNTMEZCU3l4UFFVRlBPM2RDUVVNdlFpeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzN2QwSkJRMllzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRVaXhOUVVGTkxGTkJRVk1zUjBGQlJ5dzJRMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU03WjBKQlEzUkVMRTFCUVUwc1ZVRkJWU3hIUVVOa0xFOUJRVThzUTBGQlF5eFRRVUZUTEV0QlFVc3NVVUZCVVR0dlFrRkROVUlzUTBGQlF5eERRVUZETEZGQlFWRTdiMEpCUTFZc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eFRRVUZUTEV0QlFVc3NUMEZCVHl4SlFVRkpMRk5CUVZNc1MwRkJTeXhMUVVGTE8zZENRVU4wUkN4RFFVRkRMRU5CUVVNc1MwRkJTenQzUWtGRFVDeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRPMmRDUVVOa0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMjlDUVVOeVF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4UFFVRlBMRU5CUVVNc1lVRkJZeXhEUVVGRExHVkJRV1VzUTBGQlF5dzRRMEZCVFN4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8yOUNRVU53UlN4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkROVUlzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhuUWtGQlowSXNSVUZCUlN4RFFVRkRMRU5CUVVNN2IwSkJRemxETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hIUVVGSExHTkJRV01zUlVGQlJTeERRVUZETEVOQlFVTTdiMEpCUTI1RkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNZVUZCWVN4RlFVRkZMREpFUVVGdFFpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJReTlFTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1YwRkJWeXhGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEZGQlFWRXNTVUZCU1N4RFFVRkRMRU5CUVVNN2IwSkJRM2hFTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0dlFrRkRMME1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4aFFVRmhMRVZCUVVVc1ZVRkJWU3hEUVVGRExFTkJRVU03YjBKQlF6ZERMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVDBGQlR5eEZRVUZGTEcxQ1FVRnRRaXhEUVVGRExFTkJRVU03YjBKQlEyaEVMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRkRPMjlDUVVNeFF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8ybENRVU40UWp0blFrRkRSQ3hQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMkZCUXpOQ08ybENRVUZOTzJkQ1FVTk1MR0ZCUVdFN1owSkJRMklzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4elFrRkJjMElzVDBGQlR5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1lVRkRka1E3VTBGRFJqdExRVU5HTzBGQlEwZ3NRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3hWUVVGVkxFZEJRVWNzU1VGQlNTeFBRVUZQTEVOQlFXOURMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJSWFJGTEZOQlFWTXNjVUpCUVhGQ0xFTkJRVU1zVDBGQmEwTTdTVUZEZEVVc1RVRkJUU3hYUVVGWExFZEJRVWNzYTBKQlFXdENMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGFFUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hOUVVGTkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdTVUZEY2tNc1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRPVUlzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWkN4RFFVRkRPMEZCUlUwc1UwRkJVeXhwUWtGQmFVSXNRMEZCUXl4UFFVRnJRenRKUVVOc1JTeFBRVUZQTEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGRGFrTXNRMEZCUXp0QlFVVk5MRk5CUVZNc2EwSkJRV3RDTEVOQlFVTXNUMEZCYTBNN1NVRkRia1VzWjBWQlFXZEZPMGxCUTJoRkxFMUJRVTBzVjBGQlZ5eEhRVUZITEU5QlFVOHNRMEZCUXl4blFrRkJaMEk3VVVGRE1VTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTk8xRkJRMmhDTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTA3V1VGRGRrSXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMnBGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUld4Q0xIZEZRVUYzUlR0SlFVTjRSU3hOUVVGTkxFOUJRVThzUjBGQmEwSTdVVUZETjBJc1owSkJRV2RDTEVWQlFVVXNUMEZCVHl4RFFVRkRMR2RDUVVGblFqdFJRVU14UXl4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExGZEJRVmNzUjBGQlJ5eEpRVUZKTzFGQlEyaERMRkZCUVZFc1JVRkJSU3hIUVVGSE8xRkJRMklzVTBGQlV5eEZRVUZGTEVkQlFVYzdVVUZEWkN4VlFVRlZMRVZCUVVVc1IwRkJSenRSUVVObUxFMUJRVTBzUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlF6RkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEd0Q1FVRnJRaXhGUVVGRkxESkRRVUV5UXp0TFFVTm9SaXhEUVVGRE8wbEJSVVlzVDBGQlR5eHZRa0ZCYjBJc1EwRkJReXd5UkVGQlV5eERRVUZETEZkQlFYbENMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU0zUlN4RFFVRkRPMEZCUlVRc1UwRkJVeXhIUVVGSExFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZEYmtNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5vUkN4RFFVRkRPMEZCUlVRc2FVVkJRV2xGTzBGQlEycEZMR2RGUVVGblJUdEJRVU5vUlN4elFrRkJjMEk3UVVGRGRFSXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eHJSRUZCYTBRc1EwRkJRenRCUVVVNVJTeFRRVUZUTEc5Q1FVRnZRaXhEUVVGRExFMUJRV3RDTzBsQlF6bERMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTzFGQlEyeENMRTlCUVU4c1JVRkJSU3hEUVVGRE8wdEJRMWc3U1VGRlJDeE5RVUZOTEVkQlFVY3NSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF6dEpRVVU1UWl4UFFVRlBMRTFCUVUwN1UwRkRWaXhOUVVGTkxFTkJRMHdzUTBGQlF5eEhRVUZITEVWQlFVVXNTMEZCU3l4RlFVRkZMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU55UWl4SlFVRkpMRU5CUVVNc1MwRkJTeXhIUVVGSExFVkJRVVU3V1VGRFlpeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hIUVVGSExFTkJRVU1zUzBGQlN5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03VTBGRGRrUTdZVUZCVFR0WlFVTk1MRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVkQlFVY3NRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkRla003VVVGRFJDeFBRVUZQTEVkQlFVY3NRMEZCUXp0SlFVTmlMRU5CUVVNc1JVRkRSQ3hEUVVGRExFZEJRVWNzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRM1JDTzFOQlEwRXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJRenRUUVVOVUxFOUJRVThzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU4yUXl4RFFVRkRJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDNKbGJtUmxjbVZ5TDNKbGJtUmxja1ZzWlcxbGJuUXVkSE0vWVRaa1l5SmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMXh1SUNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEN4Y2JpQWdSWGhqWVd4cFpISmhkMHhwYm1WaGNrVnNaVzFsYm5Rc1hHNGdJRVY0WTJGc2FXUnlZWGRVWlhoMFJXeGxiV1Z1ZEN4Y2JpQWdRWEp5YjNkb1pXRmtMRnh1SUNCT2IyNUVaV3hsZEdWa1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5Rc1hHNGdJRVY0WTJGc2FXUnlZWGRHY21WbFJISmhkMFZzWlcxbGJuUXNYRzRnSUVWNFkyRnNhV1J5WVhkSmJXRm5aVVZzWlcxbGJuUXNYRzU5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwTDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQnBjMVJsZUhSRmJHVnRaVzUwTEZ4dUlDQnBjMHhwYm1WaGNrVnNaVzFsYm5Rc1hHNGdJR2x6Um5KbFpVUnlZWGRGYkdWdFpXNTBMRnh1SUNCcGMwbHVhWFJwWVd4cGVtVmtTVzFoWjJWRmJHVnRaVzUwTEZ4dWZTQm1jbTl0SUZ3aUxpNHZaV3hsYldWdWRDOTBlWEJsUTJobFkydHpYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQm5aWFJFYVdGdGIyNWtVRzlwYm5SekxGeHVJQ0JuWlhSRmJHVnRaVzUwUVdKemIyeDFkR1ZEYjI5eVpITXNYRzRnSUdkbGRFRnljbTkzYUdWaFpGQnZhVzUwY3l4Y2JuMGdabkp2YlNCY0lpNHVMMlZzWlcxbGJuUXZZbTkxYm1SelhDSTdYRzVwYlhCdmNuUWdleUJTYjNWbmFFTmhiblpoY3lCOUlHWnliMjBnWENKeWIzVm5hR3B6TDJKcGJpOWpZVzUyWVhOY0lqdGNibWx0Y0c5eWRDQjdJRVJ5WVhkaFlteGxMQ0JQY0hScGIyNXpJSDBnWm5KdmJTQmNJbkp2ZFdkb2FuTXZZbWx1TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0I3SUZKdmRXZG9VMVpISUgwZ1puSnZiU0JjSW5KdmRXZG9hbk12WW1sdUwzTjJaMXdpTzF4dWFXMXdiM0owSUhzZ1VtOTFaMmhIWlc1bGNtRjBiM0lnZlNCbWNtOXRJRndpY205MVoyaHFjeTlpYVc0dloyVnVaWEpoZEc5eVhDSTdYRzVjYm1sdGNHOXlkQ0I3SUZKbGJtUmxja052Ym1acFp5QjlJR1p5YjIwZ1hDSXVMaTl6WTJWdVpTOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2daR2x6ZEdGdVkyVXNJR2RsZEVadmJuUlRkSEpwYm1jc0lHZGxkRVp2Ym5SR1lXMXBiSGxUZEhKcGJtY3NJR2x6VWxSTUlIMGdabkp2YlNCY0lpNHVMM1YwYVd4elhDSTdYRzVwYlhCdmNuUWdleUJwYzFCaGRHaEJURzl2Y0NCOUlHWnliMjBnWENJdUxpOXRZWFJvWENJN1hHNXBiWEJ2Y25RZ2NtOTFaMmdnWm5KdmJTQmNJbkp2ZFdkb2FuTXZZbWx1TDNKdmRXZG9YQ0k3WEc1cGJYQnZjblFnZXlCQmNIQlRkR0YwWlN3Z1FtbHVZWEo1Um1sc1pYTXNJRnB2YjIwZ2ZTQm1jbTl0SUZ3aUxpNHZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdJR2RsZEVSbFptRjFiSFJCY0hCVGRHRjBaU0I5SUdaeWIyMGdYQ0l1TGk5aGNIQlRkR0YwWlZ3aU8xeHVhVzF3YjNKMElIc2dUVUZZWDBSRlEwbE5RVXhUWDBaUFVsOVRWa2RmUlZoUVQxSlVMQ0JOU1UxRlgxUlpVRVZUTENCVFZrZGZUbE1nZlNCbWNtOXRJRndpTGk0dlkyOXVjM1JoYm5SelhDSTdYRzVwYlhCdmNuUWdleUJuWlhSVGRISnZhMlVzSUZOMGNtOXJaVTl3ZEdsdmJuTWdmU0JtY205dElGd2ljR1Z5Wm1WamRDMW1jbVZsYUdGdVpGd2lPMXh1YVcxd2IzSjBJSHNnWjJWMFFYQndjbTk0VEdsdVpVaGxhV2RvZENCOUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MEwzUmxlSFJGYkdWdFpXNTBYQ0k3WEc1Y2JpOHZJSFZ6YVc1bklHRWdjM1J5YjI1blpYSWdhVzUyWlhKMElDZ3hNREFsSUhaeklHOTFjaUJ5WldkMWJHRnlJRGt6SlNrZ1lXNWtJSE5oZEhWeVlYUmxYRzR2THlCaGN5QmhJSFJsYlhBZ2FHRmpheUIwYnlCdFlXdGxJR2x0WVdkbGN5QnBiaUJrWVhKcklIUm9aVzFsSUd4dmIyc2dZMnh2YzJWeUlIUnZJRzl5YVdkcGJtRnNYRzR2THlCamIyeHZjaUJ6WTJobGJXVWdLR2wwSjNNZ2MzUnBiR3dnYm05MElIRjFhWFJsSUhSb1pYSmxJR0Z1WkNCMGFHVWdZMjlzYjNKeklHeHZiMnNnYzJ4cFoyaDBiSGxjYmk4dklHUmxjMkYwZFhKbFpDd2dZV3hoY3k0dUxpbGNibU52Ym5OMElFbE5RVWRGWDBsT1ZrVlNWRjlHU1V4VVJWSWdQU0JjSW1sdWRtVnlkQ2d4TURBbEtTQm9kV1V0Y205MFlYUmxLREU0TUdSbFp5a2djMkYwZFhKaGRHVW9NUzR5TlNsY0lqdGNibHh1WTI5dWMzUWdaR1ZtWVhWc2RFRndjRk4wWVhSbElEMGdaMlYwUkdWbVlYVnNkRUZ3Y0ZOMFlYUmxLQ2s3WEc1Y2JtTnZibk4wSUdselVHVnVaR2x1WjBsdFlXZGxSV3hsYldWdWRDQTlJQ2hjYmlBZ1pXeGxiV1Z1ZERvZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5Rc1hHNGdJSEpsYm1SbGNrTnZibVpwWnpvZ1VtVnVaR1Z5UTI5dVptbG5MRnh1S1NBOVBseHVJQ0JwYzBsdWFYUnBZV3hwZW1Wa1NXMWhaMlZGYkdWdFpXNTBLR1ZzWlcxbGJuUXBJQ1ltWEc0Z0lDRnlaVzVrWlhKRGIyNW1hV2N1YVcxaFoyVkRZV05vWlM1b1lYTW9aV3hsYldWdWRDNW1hV3hsU1dRcE8xeHVYRzVqYjI1emRDQnphRzkxYkdSU1pYTmxkRWx0WVdkbFJtbHNkR1Z5SUQwZ0tGeHVJQ0JsYkdWdFpXNTBPaUJGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ3hjYmlBZ2NtVnVaR1Z5UTI5dVptbG5PaUJTWlc1a1pYSkRiMjVtYVdjc1hHNHBJRDArSUh0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNCeVpXNWtaWEpEYjI1bWFXY3VkR2hsYldVZ1BUMDlJRndpWkdGeWExd2lJQ1ltWEc0Z0lDQWdhWE5KYm1sMGFXRnNhWHBsWkVsdFlXZGxSV3hsYldWdWRDaGxiR1Z0Wlc1MEtTQW1KbHh1SUNBZ0lDRnBjMUJsYm1ScGJtZEpiV0ZuWlVWc1pXMWxiblFvWld4bGJXVnVkQ3dnY21WdVpHVnlRMjl1Wm1sbktTQW1KbHh1SUNBZ0lISmxibVJsY2tOdmJtWnBaeTVwYldGblpVTmhZMmhsTG1kbGRDaGxiR1Z0Wlc1MExtWnBiR1ZKWkNrL0xtMXBiV1ZVZVhCbElDRTlQU0JOU1UxRlgxUlpVRVZUTG5OMloxeHVJQ0FwTzF4dWZUdGNibHh1WTI5dWMzUWdaMlYwUkdGemFFRnljbUY1UkdGemFHVmtJRDBnS0hOMGNtOXJaVmRwWkhSb09pQnVkVzFpWlhJcElEMCtJRnM0TENBNElDc2djM1J5YjJ0bFYybGtkR2hkTzF4dVhHNWpiMjV6ZENCblpYUkVZWE5vUVhKeVlYbEViM1IwWldRZ1BTQW9jM1J5YjJ0bFYybGtkR2c2SUc1MWJXSmxjaWtnUFQ0Z1d6RXVOU3dnTmlBcklITjBjbTlyWlZkcFpIUm9YVHRjYmx4dVkyOXVjM1FnWjJWMFEyRnVkbUZ6VUdGa1pHbHVaeUE5SUNobGJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZENrZ1BUNWNiaUFnWld4bGJXVnVkQzUwZVhCbElEMDlQU0JjSW1aeVpXVmtjbUYzWENJZ1B5QmxiR1Z0Wlc1MExuTjBjbTlyWlZkcFpIUm9JQ29nTVRJZ09pQXlNRHRjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZkcGRHaERZVzUyWVhNZ2UxeHVJQ0JsYkdWdFpXNTBPaUJGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ0I4SUVWNFkyRnNhV1J5WVhkVVpYaDBSV3hsYldWdWREdGNiaUFnWTJGdWRtRnpPaUJJVkUxTVEyRnVkbUZ6Uld4bGJXVnVkRHRjYmlBZ2RHaGxiV1U2SUZKbGJtUmxja052Ym1acFoxdGNJblJvWlcxbFhDSmRPMXh1SUNCallXNTJZWE5hYjI5dE9pQmFiMjl0VzF3aWRtRnNkV1ZjSWwwN1hHNGdJR05oYm5aaGMwOW1abk5sZEZnNklHNTFiV0psY2p0Y2JpQWdZMkZ1ZG1GelQyWm1jMlYwV1RvZ2JuVnRZbVZ5TzF4dWZWeHVYRzVqYjI1emRDQm5aVzVsY21GMFpVVnNaVzFsYm5SRFlXNTJZWE1nUFNBb1hHNGdJR1ZzWlcxbGJuUTZJRTV2YmtSbGJHVjBaV1JGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ3hjYmlBZ2VtOXZiVG9nV205dmJTeGNiaUFnY21WdVpHVnlRMjl1Wm1sbk9pQlNaVzVrWlhKRGIyNW1hV2NzWEc0cE9pQkZlR05oYkdsa2NtRjNSV3hsYldWdWRGZHBkR2hEWVc1MllYTWdQVDRnZTF4dUlDQmpiMjV6ZENCallXNTJZWE1nUFNCa2IyTjFiV1Z1ZEM1amNtVmhkR1ZGYkdWdFpXNTBLRndpWTJGdWRtRnpYQ0lwTzF4dUlDQmpiMjV6ZENCamIyNTBaWGgwSUQwZ1kyRnVkbUZ6TG1kbGRFTnZiblJsZUhRb1hDSXlaRndpS1NFN1hHNGdJR052Ym5OMElIQmhaR1JwYm1jZ1BTQm5aWFJEWVc1MllYTlFZV1JrYVc1bktHVnNaVzFsYm5RcE8xeHVYRzRnSUd4bGRDQmpZVzUyWVhOUFptWnpaWFJZSUQwZ01EdGNiaUFnYkdWMElHTmhiblpoYzA5bVpuTmxkRmtnUFNBd08xeHVYRzRnSUdsbUlDaHBjMHhwYm1WaGNrVnNaVzFsYm5Rb1pXeGxiV1Z1ZENrZ2ZId2dhWE5HY21WbFJISmhkMFZzWlcxbGJuUW9aV3hsYldWdWRDa3BJSHRjYmlBZ0lDQmpiMjV6ZENCYmVERXNJSGt4TENCNE1pd2dlVEpkSUQwZ1oyVjBSV3hsYldWdWRFRmljMjlzZFhSbFEyOXZjbVJ6S0dWc1pXMWxiblFwTzF4dVhHNGdJQ0FnWTJGdWRtRnpMbmRwWkhSb0lEMWNiaUFnSUNBZ0lHUnBjM1JoYm1ObEtIZ3hMQ0I0TWlrZ0tpQjNhVzVrYjNjdVpHVjJhV05sVUdsNFpXeFNZWFJwYnlBcUlIcHZiMjB1ZG1Gc2RXVWdLMXh1SUNBZ0lDQWdjR0ZrWkdsdVp5QXFJSHB2YjIwdWRtRnNkV1VnS2lBeU8xeHVJQ0FnSUdOaGJuWmhjeTVvWldsbmFIUWdQVnh1SUNBZ0lDQWdaR2x6ZEdGdVkyVW9lVEVzSUhreUtTQXFJSGRwYm1SdmR5NWtaWFpwWTJWUWFYaGxiRkpoZEdsdklDb2dlbTl2YlM1MllXeDFaU0FyWEc0Z0lDQWdJQ0J3WVdSa2FXNW5JQ29nZW05dmJTNTJZV3gxWlNBcUlESTdYRzVjYmlBZ0lDQmpZVzUyWVhOUFptWnpaWFJZSUQxY2JpQWdJQ0FnSUdWc1pXMWxiblF1ZUNBK0lIZ3hYRzRnSUNBZ0lDQWdJRDhnWkdsemRHRnVZMlVvWld4bGJXVnVkQzU0TENCNE1Ta2dLaUIzYVc1a2IzY3VaR1YyYVdObFVHbDRaV3hTWVhScGJ5QXFJSHB2YjIwdWRtRnNkV1ZjYmlBZ0lDQWdJQ0FnT2lBd08xeHVYRzRnSUNBZ1kyRnVkbUZ6VDJabWMyVjBXU0E5WEc0Z0lDQWdJQ0JsYkdWdFpXNTBMbmtnUGlCNU1WeHVJQ0FnSUNBZ0lDQS9JR1JwYzNSaGJtTmxLR1ZzWlcxbGJuUXVlU3dnZVRFcElDb2dkMmx1Wkc5M0xtUmxkbWxqWlZCcGVHVnNVbUYwYVc4Z0tpQjZiMjl0TG5aaGJIVmxYRzRnSUNBZ0lDQWdJRG9nTUR0Y2JseHVJQ0FnSUdOdmJuUmxlSFF1ZEhKaGJuTnNZWFJsS0dOaGJuWmhjMDltWm5ObGRGZ3NJR05oYm5aaGMwOW1abk5sZEZrcE8xeHVJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lHTmhiblpoY3k1M2FXUjBhQ0E5WEc0Z0lDQWdJQ0JsYkdWdFpXNTBMbmRwWkhSb0lDb2dkMmx1Wkc5M0xtUmxkbWxqWlZCcGVHVnNVbUYwYVc4Z0tpQjZiMjl0TG5aaGJIVmxJQ3RjYmlBZ0lDQWdJSEJoWkdScGJtY2dLaUI2YjI5dExuWmhiSFZsSUNvZ01qdGNiaUFnSUNCallXNTJZWE11YUdWcFoyaDBJRDFjYmlBZ0lDQWdJR1ZzWlcxbGJuUXVhR1ZwWjJoMElDb2dkMmx1Wkc5M0xtUmxkbWxqWlZCcGVHVnNVbUYwYVc4Z0tpQjZiMjl0TG5aaGJIVmxJQ3RjYmlBZ0lDQWdJSEJoWkdScGJtY2dLaUI2YjI5dExuWmhiSFZsSUNvZ01qdGNiaUFnZlZ4dVhHNGdJR052Ym5SbGVIUXVjMkYyWlNncE8xeHVJQ0JqYjI1MFpYaDBMblJ5WVc1emJHRjBaU2h3WVdSa2FXNW5JQ29nZW05dmJTNTJZV3gxWlN3Z2NHRmtaR2x1WnlBcUlIcHZiMjB1ZG1Gc2RXVXBPMXh1SUNCamIyNTBaWGgwTG5OallXeGxLRnh1SUNBZ0lIZHBibVJ2ZHk1a1pYWnBZMlZRYVhobGJGSmhkR2x2SUNvZ2VtOXZiUzUyWVd4MVpTeGNiaUFnSUNCM2FXNWtiM2N1WkdWMmFXTmxVR2w0Wld4U1lYUnBieUFxSUhwdmIyMHVkbUZzZFdVc1hHNGdJQ2s3WEc1Y2JpQWdZMjl1YzNRZ2NtTWdQU0J5YjNWbmFDNWpZVzUyWVhNb1kyRnVkbUZ6S1R0Y2JseHVJQ0F2THlCcGJpQmtZWEpySUhSb1pXMWxMQ0J5WlhabGNuUWdkR2hsSUdsdFlXZGxJR052Ykc5eUlHWnBiSFJsY2x4dUlDQnBaaUFvYzJodmRXeGtVbVZ6WlhSSmJXRm5aVVpwYkhSbGNpaGxiR1Z0Wlc1MExDQnlaVzVrWlhKRGIyNW1hV2NwS1NCN1hHNGdJQ0FnWTI5dWRHVjRkQzVtYVd4MFpYSWdQU0JKVFVGSFJWOUpUbFpGVWxSZlJrbE1WRVZTTzF4dUlDQjlYRzVjYmlBZ1pISmhkMFZzWlcxbGJuUlBia05oYm5aaGN5aGxiR1Z0Wlc1MExDQnlZeXdnWTI5dWRHVjRkQ3dnY21WdVpHVnlRMjl1Wm1sbktUdGNiaUFnWTI5dWRHVjRkQzV5WlhOMGIzSmxLQ2s3WEc1Y2JpQWdjbVYwZFhKdUlIdGNiaUFnSUNCbGJHVnRaVzUwTEZ4dUlDQWdJR05oYm5aaGN5eGNiaUFnSUNCMGFHVnRaVG9nY21WdVpHVnlRMjl1Wm1sbkxuUm9aVzFsTEZ4dUlDQWdJR05oYm5aaGMxcHZiMjA2SUhwdmIyMHVkbUZzZFdVc1hHNGdJQ0FnWTJGdWRtRnpUMlptYzJWMFdDeGNiaUFnSUNCallXNTJZWE5QWm1aelpYUlpMRnh1SUNCOU8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRVJGUmtGVlRGUmZURWxPUzE5VFNWcEZJRDBnTVRRN1hHNWNibU52Ym5OMElFbE5RVWRGWDFCTVFVTkZTRTlNUkVWU1gwbE5SeUE5SUdSdlkzVnRaVzUwTG1OeVpXRjBaVVZzWlcxbGJuUW9YQ0pwYldkY0lpazdYRzVKVFVGSFJWOVFURUZEUlVoUFRFUkZVbDlKVFVjdWMzSmpJRDBnWUdSaGRHRTZKSHROU1UxRlgxUlpVRVZUTG5OMlozMHNKSHRsYm1OdlpHVlZVa2xEYjIxd2IyNWxiblFvWEc0Z0lHQThjM1puSUdGeWFXRXRhR2xrWkdWdVBWd2lkSEoxWlZ3aUlHWnZZM1Z6WVdKc1pUMWNJbVpoYkhObFhDSWdaR0YwWVMxd2NtVm1hWGc5WENKbVlYTmNJaUJrWVhSaExXbGpiMjQ5WENKcGJXRm5aVndpSUdOc1lYTnpQVndpYzNabkxXbHViR2x1WlMwdFptRWdabUV0YVcxaFoyVWdabUV0ZHkweE5sd2lJSEp2YkdVOVhDSnBiV2RjSWlCNGJXeHVjejFjSW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puWENJZ2RtbGxkMEp2ZUQxY0lqQWdNQ0ExTVRJZ05URXlYQ0krUEhCaGRHZ2dabWxzYkQxY0lpTTRPRGhjSWlCa1BWd2lUVFEyTkNBME5EaElORGhqTFRJMkxqVXhJREF0TkRndE1qRXVORGt0TkRndE5EaFdNVEV5WXpBdE1qWXVOVEVnTWpFdU5Ea3RORGdnTkRndE5EaG9OREUyWXpJMkxqVXhJREFnTkRnZ01qRXVORGtnTkRnZ05EaDJNamc0WXpBZ01qWXVOVEV0TWpFdU5Ea2dORGd0TkRnZ05EaDZUVEV4TWlBeE1qQmpMVE13TGpreU9DQXdMVFUySURJMUxqQTNNaTAxTmlBMU5uTXlOUzR3TnpJZ05UWWdOVFlnTlRZZ05UWXRNalV1TURjeUlEVTJMVFUyTFRJMUxqQTNNaTAxTmkwMU5pMDFObnBOTmpRZ016ZzBhRE00TkZZeU56SnNMVGczTGpVeE5TMDROeTQxTVRWakxUUXVOamcyTFRRdU5qZzJMVEV5TGpJNE5DMDBMalk0TmkweE5pNDVOekVnTUV3eU1EZ2dNekl3YkMwMU5TNDFNVFV0TlRVdU5URTFZeTAwTGpZNE5pMDBMalk0TmkweE1pNHlPRFF0TkM0Mk9EWXRNVFl1T1RjeElEQk1OalFnTXpNMmRqUTRlbHdpUGp3dmNHRjBhRDQ4TDNOMlp6NWdMRnh1S1gxZ08xeHVYRzVqYjI1emRDQkpUVUZIUlY5RlVsSlBVbDlRVEVGRFJVaFBURVJGVWw5SlRVY2dQU0JrYjJOMWJXVnVkQzVqY21WaGRHVkZiR1Z0Wlc1MEtGd2lhVzFuWENJcE8xeHVTVTFCUjBWZlJWSlNUMUpmVUV4QlEwVklUMHhFUlZKZlNVMUhMbk55WXlBOUlHQmtZWFJoT2lSN1RVbE5SVjlVV1ZCRlV5NXpkbWQ5TENSN1pXNWpiMlJsVlZKSlEyOXRjRzl1Wlc1MEtGeHVJQ0JnUEhOMlp5QjJhV1YzUW05NFBWd2lNQ0F3SURZMk9DQTJOamhjSWlCNGJXeHVjejFjSW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puWENJZ2VHMXNPbk53WVdObFBWd2ljSEpsYzJWeWRtVmNJaUJ6ZEhsc1pUMWNJbVpwYkd3dGNuVnNaVHBsZG1WdWIyUmtPMk5zYVhBdGNuVnNaVHBsZG1WdWIyUmtPM04wY205clpTMXNhVzVsYW05cGJqcHliM1Z1WkR0emRISnZhMlV0YldsMFpYSnNhVzFwZERveVhDSStQSEJoZEdnZ1pEMWNJazAwTmpRZ05EUTRTRFE0WXkweU5pNDFNU0F3TFRRNExUSXhMalE1TFRRNExUUTRWakV4TW1Nd0xUSTJMalV4SURJeExqUTVMVFE0SURRNExUUTRhRFF4Tm1NeU5pNDFNU0F3SURRNElESXhMalE1SURRNElEUTRkakk0T0dNd0lESTJMalV4TFRJeExqUTVJRFE0TFRRNElEUTRXazB4TVRJZ01USXdZeTB6TUM0NU1qZ2dNQzAxTmlBeU5TNHdOekl0TlRZZ05UWnpNalV1TURjeUlEVTJJRFUySURVMklEVTJMVEkxTGpBM01pQTFOaTAxTmkweU5TNHdOekl0TlRZdE5UWXROVFphVFRZMElETTROR2d6T0RSV01qY3liQzA0Tnk0MU1UVXRPRGN1TlRFMVl5MDBMalk0TmkwMExqWTROaTB4TWk0eU9EUXROQzQyT0RZdE1UWXVPVGN4SURCTU1qQTRJRE15TUd3dE5UVXVOVEUxTFRVMUxqVXhOV010TkM0Mk9EWXROQzQyT0RZdE1USXVNamcwTFRRdU5qZzJMVEUyTGprM01TQXdURFkwSURNek5uWTBPRnBjSWlCemRIbHNaVDFjSW1acGJHdzZJemc0T0R0bWFXeHNMWEoxYkdVNmJtOXVlbVZ5YjF3aUlIUnlZVzV6Wm05eWJUMWNJbTFoZEhKcGVDZ3VPREUzTURrZ01DQXdJQzQ0TVRjd09TQXhNalF1T0RJMUlERTBOUzQ0TWpVcFhDSXZQanh3WVhSb0lHUTlYQ0pOTWpVMklEaERNVEU1TGpBek5DQTRJRGdnTVRFNUxqQXpNeUE0SURJMU5tTXdJREV6Tmk0NU5qY2dNVEV4TGpBek5DQXlORGdnTWpRNElESTBPSE15TkRndE1URXhMakF6TkNBeU5EZ3RNalE0VXpNNU1pNDVOamNnT0NBeU5UWWdPRnB0TVRNd0xqRXdPQ0F4TVRjdU9Ea3lZelkxTGpRME9DQTJOUzQwTkRnZ056QWdNVFkxTGpRNE1TQXlNQzQyTnpjZ01qTTFMall6TjB3eE5UQXVORGNnTVRBMUxqSXhObU0zTUM0eU1EUXRORGt1TXpVMklERTNNQzR5TWpZdE5EUXVOek0xSURJek5TNDJNemdnTWpBdU5qYzJXazB4TWpVdU9Ea3lJRE00Tmk0eE1EaGpMVFkxTGpRME9DMDJOUzQwTkRndE56QXRNVFkxTGpRNE1TMHlNQzQyTnpjdE1qTTFMall6TjB3ek5qRXVOVE1nTkRBMkxqYzROR010TnpBdU1qQXpJRFE1TGpNMU5pMHhOekF1TWpJMklEUTBMamN6TmkweU16VXVOak00TFRJd0xqWTNObHBjSWlCemRIbHNaVDFjSW1acGJHdzZJemc0T0R0bWFXeHNMWEoxYkdVNmJtOXVlbVZ5YjF3aUlIUnlZVzV6Wm05eWJUMWNJbTFoZEhKcGVDZ3VNekF6TmpZZ01DQXdJQzR6TURNMk5pQTFNRFl1T0RJeUlEWXdMakEyTlNsY0lpOCtQQzl6ZG1jK1lDeGNiaWw5WUR0Y2JseHVZMjl1YzNRZ1pISmhkMGx0WVdkbFVHeGhZMlZvYjJ4a1pYSWdQU0FvWEc0Z0lHVnNaVzFsYm5RNklFVjRZMkZzYVdSeVlYZEpiV0ZuWlVWc1pXMWxiblFzWEc0Z0lHTnZiblJsZUhRNklFTmhiblpoYzFKbGJtUmxjbWx1WjBOdmJuUmxlSFF5UkN4Y2JpQWdlbTl2YlZaaGJIVmxPaUJCY0hCVGRHRjBaVnRjSW5wdmIyMWNJbDFiWENKMllXeDFaVndpWFN4Y2Jpa2dQVDRnZTF4dUlDQmpiMjUwWlhoMExtWnBiR3hUZEhsc1pTQTlJRndpSTBVM1JUZEZOMXdpTzF4dUlDQmpiMjUwWlhoMExtWnBiR3hTWldOMEtEQXNJREFzSUdWc1pXMWxiblF1ZDJsa2RHZ3NJR1ZzWlcxbGJuUXVhR1ZwWjJoMEtUdGNibHh1SUNCamIyNXpkQ0JwYldGblpVMXBibGRwWkhSb1QzSklaV2xuYUhRZ1BTQk5ZWFJvTG0xcGJpaGxiR1Z0Wlc1MExuZHBaSFJvTENCbGJHVnRaVzUwTG1obGFXZG9kQ2s3WEc1Y2JpQWdZMjl1YzNRZ2MybDZaU0E5SUUxaGRHZ3ViV2x1S0Z4dUlDQWdJR2x0WVdkbFRXbHVWMmxrZEdoUGNraGxhV2RvZEN4Y2JpQWdJQ0JOWVhSb0xtMXBiaWhwYldGblpVMXBibGRwWkhSb1QzSklaV2xuYUhRZ0tpQXdMalFzSURFd01Da3NYRzRnSUNrN1hHNWNiaUFnWTI5dWRHVjRkQzVrY21GM1NXMWhaMlVvWEc0Z0lDQWdaV3hsYldWdWRDNXpkR0YwZFhNZ1BUMDlJRndpWlhKeWIzSmNJbHh1SUNBZ0lDQWdQeUJKVFVGSFJWOUZVbEpQVWw5UVRFRkRSVWhQVEVSRlVsOUpUVWRjYmlBZ0lDQWdJRG9nU1UxQlIwVmZVRXhCUTBWSVQweEVSVkpmU1UxSExGeHVJQ0FnSUdWc1pXMWxiblF1ZDJsa2RHZ2dMeUF5SUMwZ2MybDZaU0F2SURJc1hHNGdJQ0FnWld4bGJXVnVkQzVvWldsbmFIUWdMeUF5SUMwZ2MybDZaU0F2SURJc1hHNGdJQ0FnYzJsNlpTeGNiaUFnSUNCemFYcGxMRnh1SUNBcE8xeHVmVHRjYmx4dVkyOXVjM1FnWkhKaGQwVnNaVzFsYm5SUGJrTmhiblpoY3lBOUlDaGNiaUFnWld4bGJXVnVkRG9nVG05dVJHVnNaWFJsWkVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwTEZ4dUlDQnlZem9nVW05MVoyaERZVzUyWVhNc1hHNGdJR052Ym5SbGVIUTZJRU5oYm5aaGMxSmxibVJsY21sdVowTnZiblJsZUhReVJDeGNiaUFnY21WdVpHVnlRMjl1Wm1sbk9pQlNaVzVrWlhKRGIyNW1hV2NzWEc0cElEMCtJSHRjYmlBZ1kyOXVkR1Y0ZEM1bmJHOWlZV3hCYkhCb1lTQTlJR1ZzWlcxbGJuUXViM0JoWTJsMGVTQXZJREV3TUR0Y2JpQWdjM2RwZEdOb0lDaGxiR1Z0Wlc1MExuUjVjR1VwSUh0Y2JpQWdJQ0JqWVhObElGd2ljbVZqZEdGdVoyeGxYQ0k2WEc0Z0lDQWdZMkZ6WlNCY0ltUnBZVzF2Ym1SY0lqcGNiaUFnSUNCallYTmxJRndpWld4c2FYQnpaVndpT2lCN1hHNGdJQ0FnSUNCamIyNTBaWGgwTG14cGJtVktiMmx1SUQwZ1hDSnliM1Z1WkZ3aU8xeHVJQ0FnSUNBZ1kyOXVkR1Y0ZEM1c2FXNWxRMkZ3SUQwZ1hDSnliM1Z1WkZ3aU8xeHVJQ0FnSUNBZ2NtTXVaSEpoZHloblpYUlRhR0Z3WlVadmNrVnNaVzFsYm5Rb1pXeGxiV1Z1ZENraEtUdGNiaUFnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJSDFjYmlBZ0lDQmpZWE5sSUZ3aVlYSnliM2RjSWpwY2JpQWdJQ0JqWVhObElGd2liR2x1WlZ3aU9pQjdYRzRnSUNBZ0lDQmpiMjUwWlhoMExteHBibVZLYjJsdUlEMGdYQ0p5YjNWdVpGd2lPMXh1SUNBZ0lDQWdZMjl1ZEdWNGRDNXNhVzVsUTJGd0lEMGdYQ0p5YjNWdVpGd2lPMXh1WEc0Z0lDQWdJQ0JuWlhSVGFHRndaVVp2Y2tWc1pXMWxiblFvWld4bGJXVnVkQ2toTG1admNrVmhZMmdvS0hOb1lYQmxLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lISmpMbVJ5WVhjb2MyaGhjR1VwTzF4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQjlYRzRnSUNBZ1kyRnpaU0JjSW1aeVpXVmtjbUYzWENJNklIdGNiaUFnSUNBZ0lDOHZJRVJ5WVhjZ1pHbHlaV04wYkhrZ2RHOGdZMkZ1ZG1GelhHNGdJQ0FnSUNCamIyNTBaWGgwTG5OaGRtVW9LVHRjYmlBZ0lDQWdJR052Ym5SbGVIUXVabWxzYkZOMGVXeGxJRDBnWld4bGJXVnVkQzV6ZEhKdmEyVkRiMnh2Y2p0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnY0dGMGFDQTlJR2RsZEVaeVpXVkVjbUYzVUdGMGFESkVLR1ZzWlcxbGJuUXBJR0Z6SUZCaGRHZ3lSRHRjYmlBZ0lDQWdJR052Ym5OMElHWnBiR3hUYUdGd1pTQTlJR2RsZEZOb1lYQmxSbTl5Uld4bGJXVnVkQ2hsYkdWdFpXNTBLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tHWnBiR3hUYUdGd1pTa2dlMXh1SUNBZ0lDQWdJQ0J5WXk1a2NtRjNLR1pwYkd4VGFHRndaU2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdOdmJuUmxlSFF1Wm1sc2JGTjBlV3hsSUQwZ1pXeGxiV1Z1ZEM1emRISnZhMlZEYjJ4dmNqdGNiaUFnSUNBZ0lHTnZiblJsZUhRdVptbHNiQ2h3WVhSb0tUdGNibHh1SUNBZ0lDQWdZMjl1ZEdWNGRDNXlaWE4wYjNKbEtDazdYRzRnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0I5WEc0Z0lDQWdZMkZ6WlNCY0ltbHRZV2RsWENJNklIdGNiaUFnSUNBZ0lHTnZibk4wSUdsdFp5QTlJR2x6U1c1cGRHbGhiR2w2WldSSmJXRm5aVVZzWlcxbGJuUW9aV3hsYldWdWRDbGNiaUFnSUNBZ0lDQWdQeUJ5Wlc1a1pYSkRiMjVtYVdjdWFXMWhaMlZEWVdOb1pTNW5aWFFvWld4bGJXVnVkQzVtYVd4bFNXUXBQeTVwYldGblpWeHVJQ0FnSUNBZ0lDQTZJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQWdJR2xtSUNocGJXY2dJVDBnYm5Wc2JDQW1KaUFoS0dsdFp5QnBibk4wWVc1alpXOW1JRkJ5YjIxcGMyVXBLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuUmxlSFF1WkhKaGQwbHRZV2RsS0Z4dUlDQWdJQ0FnSUNBZ0lHbHRaeXhjYmlBZ0lDQWdJQ0FnSUNBd0lDOHFJR2hoY21SamIyUmxaQ0JtYjNJZ2RHaGxJSE5sYkdWamRHbHZiaUJpYjNncUx5eGNiaUFnSUNBZ0lDQWdJQ0F3TEZ4dUlDQWdJQ0FnSUNBZ0lHVnNaVzFsYm5RdWQybGtkR2dzWEc0Z0lDQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEM1b1pXbG5hSFFzWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCa2NtRjNTVzFoWjJWUWJHRmpaV2h2YkdSbGNpaGxiR1Z0Wlc1MExDQmpiMjUwWlhoMExDQnlaVzVrWlhKRGIyNW1hV2N1ZW05dmJTNTJZV3gxWlNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQjlYRzRnSUNBZ1pHVm1ZWFZzZERvZ2UxeHVJQ0FnSUNBZ2FXWWdLR2x6VkdWNGRFVnNaVzFsYm5Rb1pXeGxiV1Z1ZENrcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NuUnNJRDBnYVhOU1ZFd29aV3hsYldWdWRDNTBaWGgwS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzJodmRXeGtWR1Z0Y0c5eVlYSnBiSGxCZEhSaFkyZ2dQU0J5ZEd3Z0ppWWdJV052Ym5SbGVIUXVZMkZ1ZG1GekxtbHpRMjl1Ym1WamRHVmtPMXh1SUNBZ0lDQWdJQ0JwWmlBb2MyaHZkV3hrVkdWdGNHOXlZWEpwYkhsQmRIUmhZMmdwSUh0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUIwYnlCamIzSnlaV04wYkhrZ2NtVnVaR1Z5SUZKVVRDQjBaWGgwSUcxcGVHVmtJSGRwZEdnZ1RGUlNMQ0IzWlNCb1lYWmxJSFJ2SUdGd2NHVnVaQ0JwZEZ4dUlDQWdJQ0FnSUNBZ0lDOHZJSFJ2SUhSb1pTQkVUMDFjYmlBZ0lDQWdJQ0FnSUNCa2IyTjFiV1Z1ZEM1aWIyUjVMbUZ3Y0dWdVpFTm9hV3hrS0dOdmJuUmxlSFF1WTJGdWRtRnpLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCamIyNTBaWGgwTG1OaGJuWmhjeTV6WlhSQmRIUnlhV0oxZEdVb1hDSmthWEpjSWl3Z2NuUnNJRDhnWENKeWRHeGNJaUE2SUZ3aWJIUnlYQ0lwTzF4dUlDQWdJQ0FnSUNCamIyNTBaWGgwTG5OaGRtVW9LVHRjYmlBZ0lDQWdJQ0FnWTI5dWRHVjRkQzVtYjI1MElEMGdaMlYwUm05dWRGTjBjbWx1WnlobGJHVnRaVzUwS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVkR1Y0ZEM1bWFXeHNVM1I1YkdVZ1BTQmxiR1Z0Wlc1MExuTjBjbTlyWlVOdmJHOXlPMXh1SUNBZ0lDQWdJQ0JqYjI1MFpYaDBMblJsZUhSQmJHbG5iaUE5SUdWc1pXMWxiblF1ZEdWNGRFRnNhV2R1SUdGeklFTmhiblpoYzFSbGVIUkJiR2xuYmp0Y2JseHVJQ0FnSUNBZ0lDQXZMeUJEWVc1MllYTWdaRzlsY3lCdWIzUWdjM1Z3Y0c5eWRDQnRkV3gwYVd4cGJtVWdkR1Y0ZENCaWVTQmtaV1poZFd4MFhHNGdJQ0FnSUNBZ0lHTnZibk4wSUd4cGJtVnpJRDBnWld4bGJXVnVkQzUwWlhoMExuSmxjR3hoWTJVb0wxeGNjbHhjYmo4dlp5d2dYQ0pjWEc1Y0lpa3VjM0JzYVhRb1hDSmNYRzVjSWlrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUd4cGJtVklaV2xuYUhRZ1BTQmxiR1Z0Wlc1MExtTnZiblJoYVc1bGNrbGtYRzRnSUNBZ0lDQWdJQ0FnUHlCblpYUkJjSEJ5YjNoTWFXNWxTR1ZwWjJoMEtHZGxkRVp2Ym5SVGRISnBibWNvWld4bGJXVnVkQ2twWEc0Z0lDQWdJQ0FnSUNBZ09pQmxiR1Z0Wlc1MExtaGxhV2RvZENBdklHeHBibVZ6TG14bGJtZDBhRHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdkbVZ5ZEdsallXeFBabVp6WlhRZ1BTQmxiR1Z0Wlc1MExtaGxhV2RvZENBdElHVnNaVzFsYm5RdVltRnpaV3hwYm1VN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdodmNtbDZiMjUwWVd4UFptWnpaWFFnUFZ4dUlDQWdJQ0FnSUNBZ0lHVnNaVzFsYm5RdWRHVjRkRUZzYVdkdUlEMDlQU0JjSW1ObGJuUmxjbHdpWEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JR1ZzWlcxbGJuUXVkMmxrZEdnZ0x5QXlYRzRnSUNBZ0lDQWdJQ0FnSUNBNklHVnNaVzFsYm5RdWRHVjRkRUZzYVdkdUlEMDlQU0JjSW5KcFoyaDBYQ0pjYmlBZ0lDQWdJQ0FnSUNBZ0lEOGdaV3hsYldWdWRDNTNhV1IwYUZ4dUlDQWdJQ0FnSUNBZ0lDQWdPaUF3TzF4dUlDQWdJQ0FnSUNCbWIzSWdLR3hsZENCcGJtUmxlQ0E5SURBN0lHbHVaR1Y0SUR3Z2JHbHVaWE11YkdWdVozUm9PeUJwYm1SbGVDc3JLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVkR1Y0ZEM1bWFXeHNWR1Y0ZENoY2JpQWdJQ0FnSUNBZ0lDQWdJR3hwYm1WelcybHVaR1Y0WFN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR2h2Y21sNmIyNTBZV3hQWm1aelpYUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBb2FXNWtaWGdnS3lBeEtTQXFJR3hwYm1WSVpXbG5hSFFnTFNCMlpYSjBhV05oYkU5bVpuTmxkQ3hjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR052Ym5SbGVIUXVjbVZ6ZEc5eVpTZ3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb2MyaHZkV3hrVkdWdGNHOXlZWEpwYkhsQmRIUmhZMmdwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjUwWlhoMExtTmhiblpoY3k1eVpXMXZkbVVvS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCVmJtbHRjR3hsYldWdWRHVmtJSFI1Y0dVZ0pIdGxiR1Z0Wlc1MExuUjVjR1Y5WUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQjlYRzRnSUdOdmJuUmxlSFF1WjJ4dlltRnNRV3h3YUdFZ1BTQXhPMXh1ZlR0Y2JseHVZMjl1YzNRZ1pXeGxiV1Z1ZEZkcGRHaERZVzUyWVhORFlXTm9aU0E5SUc1bGR5QlhaV0ZyVFdGd1BGeHVJQ0JGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ3hjYmlBZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SWGFYUm9RMkZ1ZG1GelhHNCtLQ2s3WEc1Y2JtTnZibk4wSUhOb1lYQmxRMkZqYUdVZ1BTQnVaWGNnVjJWaGEwMWhjRHhGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ3dnUld4bGJXVnVkRk5vWVhCbFBpZ3BPMXh1WEc1MGVYQmxJRVZzWlcxbGJuUlRhR0Z3WlNBOUlFUnlZWGRoWW14bElId2dSSEpoZDJGaWJHVmJYU0I4SUc1MWJHdzdYRzVjYm5SNWNHVWdSV3hsYldWdWRGTm9ZWEJsY3lBOUlIdGNiaUFnWm5KbFpXUnlZWGM2SUVSeVlYZGhZbXhsSUh3Z2JuVnNiRHRjYmlBZ1lYSnliM2M2SUVSeVlYZGhZbXhsVzEwN1hHNGdJR3hwYm1VNklFUnlZWGRoWW14bFcxMDdYRzRnSUhSbGVIUTZJRzUxYkd3N1hHNGdJR2x0WVdkbE9pQnVkV3hzTzF4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHZGxkRk5vWVhCbFJtOXlSV3hsYldWdWRDQTlJRHhVSUdWNGRHVnVaSE1nUlhoallXeHBaSEpoZDBWc1pXMWxiblErS0dWc1pXMWxiblE2SUZRcElEMCtYRzRnSUhOb1lYQmxRMkZqYUdVdVoyVjBLR1ZzWlcxbGJuUXBJR0Z6SUZSYlhDSjBlWEJsWENKZElHVjRkR1Z1WkhNZ2EyVjViMllnUld4bGJXVnVkRk5vWVhCbGMxeHVJQ0FnSUQ4Z1JXeGxiV1Z1ZEZOb1lYQmxjMXRVVzF3aWRIbHdaVndpWFYwZ2ZDQjFibVJsWm1sdVpXUmNiaUFnSUNBNklFUnlZWGRoWW14bElId2diblZzYkNCOElIVnVaR1ZtYVc1bFpEdGNibHh1Wlhod2IzSjBJR052Ym5OMElITmxkRk5vWVhCbFJtOXlSV3hsYldWdWRDQTlJRHhVSUdWNGRHVnVaSE1nUlhoallXeHBaSEpoZDBWc1pXMWxiblErS0Z4dUlDQmxiR1Z0Wlc1ME9pQlVMRnh1SUNCemFHRndaVG9nVkZ0Y0luUjVjR1ZjSWwwZ1pYaDBaVzVrY3lCclpYbHZaaUJGYkdWdFpXNTBVMmhoY0dWelhHNGdJQ0FnUHlCRmJHVnRaVzUwVTJoaGNHVnpXMVJiWENKMGVYQmxYQ0pkWFZ4dUlDQWdJRG9nUkhKaGQyRmliR1VzWEc0cElEMCtJSE5vWVhCbFEyRmphR1V1YzJWMEtHVnNaVzFsYm5Rc0lITm9ZWEJsS1R0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdsdWRtRnNhV1JoZEdWVGFHRndaVVp2Y2tWc1pXMWxiblFnUFNBb1pXeGxiV1Z1ZERvZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5RcElEMCtYRzRnSUhOb1lYQmxRMkZqYUdVdVpHVnNaWFJsS0dWc1pXMWxiblFwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWjJWdVpYSmhkR1ZTYjNWbmFFOXdkR2x2Ym5NZ1BTQW9YRzRnSUdWc1pXMWxiblE2SUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwTEZ4dUlDQmpiMjUwYVc1MWIzVnpVR0YwYUNBOUlHWmhiSE5sTEZ4dUtUb2dUM0IwYVc5dWN5QTlQaUI3WEc0Z0lHTnZibk4wSUc5d2RHbHZibk02SUU5d2RHbHZibk1nUFNCN1hHNGdJQ0FnYzJWbFpEb2daV3hsYldWdWRDNXpaV1ZrTEZ4dUlDQWdJSE4wY205clpVeHBibVZFWVhOb09seHVJQ0FnSUNBZ1pXeGxiV1Z1ZEM1emRISnZhMlZUZEhsc1pTQTlQVDBnWENKa1lYTm9aV1JjSWx4dUlDQWdJQ0FnSUNBL0lHZGxkRVJoYzJoQmNuSmhlVVJoYzJobFpDaGxiR1Z0Wlc1MExuTjBjbTlyWlZkcFpIUm9LVnh1SUNBZ0lDQWdJQ0E2SUdWc1pXMWxiblF1YzNSeWIydGxVM1I1YkdVZ1BUMDlJRndpWkc5MGRHVmtYQ0pjYmlBZ0lDQWdJQ0FnUHlCblpYUkVZWE5vUVhKeVlYbEViM1IwWldRb1pXeGxiV1Z1ZEM1emRISnZhMlZYYVdSMGFDbGNiaUFnSUNBZ0lDQWdPaUIxYm1SbFptbHVaV1FzWEc0Z0lDQWdMeThnWm05eUlHNXZiaTF6YjJ4cFpDQnpkSEp2YTJWekxDQmthWE5oWW14bElHMTFiSFJwVTNSeWIydGxJR0psWTJGMWMyVWdhWFFnZEdWdVpITWdkRzhnYldGclpWeHVJQ0FnSUM4dklHUmhjMmhsY3k5a2IzUnpJRzkyWlhKc1lYa2daV0ZqYUNCdmRHaGxjbHh1SUNBZ0lHUnBjMkZpYkdWTmRXeDBhVk4wY205clpUb2daV3hsYldWdWRDNXpkSEp2YTJWVGRIbHNaU0FoUFQwZ1hDSnpiMnhwWkZ3aUxGeHVJQ0FnSUM4dklHWnZjaUJ1YjI0dGMyOXNhV1FnYzNSeWIydGxjeXdnYVc1amNtVmhjMlVnZEdobElIZHBaSFJvSUdFZ1ltbDBJSFJ2SUcxaGEyVWdhWFFnZG1semRXRnNiSGxjYmlBZ0lDQXZMeUJ6YVcxcGJHRnlJSFJ2SUhOdmJHbGtJSE4wY205clpYTXNJR0psWTJGMWMyVWdkMlVuY21VZ1lXeHpieUJrYVhOaFlteHBibWNnYlhWc2RHbFRkSEp2YTJWY2JpQWdJQ0J6ZEhKdmEyVlhhV1IwYURwY2JpQWdJQ0FnSUdWc1pXMWxiblF1YzNSeWIydGxVM1I1YkdVZ0lUMDlJRndpYzI5c2FXUmNJbHh1SUNBZ0lDQWdJQ0EvSUdWc1pXMWxiblF1YzNSeWIydGxWMmxrZEdnZ0t5QXdMalZjYmlBZ0lDQWdJQ0FnT2lCbGJHVnRaVzUwTG5OMGNtOXJaVmRwWkhSb0xGeHVJQ0FnSUM4dklIZG9aVzRnYVc1amNtVmhjMmx1WnlCemRISnZhMlZYYVdSMGFDd2dkMlVnYlhWemRDQmxlSEJzYVdOcGRHeDVJSE5sZENCbWFXeHNWMlZwWjJoMElHRnVaRnh1SUNBZ0lDOHZJR2hoWTJoMWNtVkhZWEFnWW1WallYVnpaU0JwWmlCdWIzUWdjM0JsWTJsbWFXVmtMQ0J5YjNWbmFHcHpJSFZ6WlhNZ2MzUnliMnRsVjJsa2RHZ2dkRzljYmlBZ0lDQXZMeUJqWVd4amRXeGhkR1VnZEdobGJTQW9ZVzVrSUhkbElHUnZiaWQwSUhkaGJuUWdkR2hsSUdacGJHeHpJSFJ2SUdKbElHMXZaR2xtYVdWa0tWeHVJQ0FnSUdacGJHeFhaV2xuYUhRNklHVnNaVzFsYm5RdWMzUnliMnRsVjJsa2RHZ2dMeUF5TEZ4dUlDQWdJR2hoWTJoMWNtVkhZWEE2SUdWc1pXMWxiblF1YzNSeWIydGxWMmxrZEdnZ0tpQTBMRnh1SUNBZ0lISnZkV2RvYm1WemN6b2daV3hsYldWdWRDNXliM1ZuYUc1bGMzTXNYRzRnSUNBZ2MzUnliMnRsT2lCbGJHVnRaVzUwTG5OMGNtOXJaVU52Ykc5eUxGeHVJQ0FnSUhCeVpYTmxjblpsVm1WeWRHbGpaWE02SUdOdmJuUnBiblZ2ZFhOUVlYUm9MRnh1SUNCOU8xeHVYRzRnSUhOM2FYUmphQ0FvWld4bGJXVnVkQzUwZVhCbEtTQjdYRzRnSUNBZ1kyRnpaU0JjSW5KbFkzUmhibWRzWlZ3aU9seHVJQ0FnSUdOaGMyVWdYQ0prYVdGdGIyNWtYQ0k2WEc0Z0lDQWdZMkZ6WlNCY0ltVnNiR2x3YzJWY0lqb2dlMXh1SUNBZ0lDQWdiM0IwYVc5dWN5NW1hV3hzVTNSNWJHVWdQU0JsYkdWdFpXNTBMbVpwYkd4VGRIbHNaVHRjYmlBZ0lDQWdJRzl3ZEdsdmJuTXVabWxzYkNBOVhHNGdJQ0FnSUNBZ0lHVnNaVzFsYm5RdVltRmphMmR5YjNWdVpFTnZiRzl5SUQwOVBTQmNJblJ5WVc1emNHRnlaVzUwWENKY2JpQWdJQ0FnSUNBZ0lDQS9JSFZ1WkdWbWFXNWxaRnh1SUNBZ0lDQWdJQ0FnSURvZ1pXeGxiV1Z1ZEM1aVlXTnJaM0p2ZFc1a1EyOXNiM0k3WEc0Z0lDQWdJQ0JwWmlBb1pXeGxiV1Z1ZEM1MGVYQmxJRDA5UFNCY0ltVnNiR2x3YzJWY0lpa2dlMXh1SUNBZ0lDQWdJQ0J2Y0hScGIyNXpMbU4xY25abFJtbDBkR2x1WnlBOUlERTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z2IzQjBhVzl1Y3p0Y2JpQWdJQ0I5WEc0Z0lDQWdZMkZ6WlNCY0lteHBibVZjSWpwY2JpQWdJQ0JqWVhObElGd2labkpsWldSeVlYZGNJam9nZTF4dUlDQWdJQ0FnYVdZZ0tHbHpVR0YwYUVGTWIyOXdLR1ZzWlcxbGJuUXVjRzlwYm5SektTa2dlMXh1SUNBZ0lDQWdJQ0J2Y0hScGIyNXpMbVpwYkd4VGRIbHNaU0E5SUdWc1pXMWxiblF1Wm1sc2JGTjBlV3hsTzF4dUlDQWdJQ0FnSUNCdmNIUnBiMjV6TG1acGJHd2dQVnh1SUNBZ0lDQWdJQ0FnSUdWc1pXMWxiblF1WW1GamEyZHliM1Z1WkVOdmJHOXlJRDA5UFNCY0luUnlZVzV6Y0dGeVpXNTBYQ0pjYmlBZ0lDQWdJQ0FnSUNBZ0lEOGdkVzVrWldacGJtVmtYRzRnSUNBZ0lDQWdJQ0FnSUNBNklHVnNaVzFsYm5RdVltRmphMmR5YjNWdVpFTnZiRzl5TzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJRzl3ZEdsdmJuTTdYRzRnSUNBZ2ZWeHVJQ0FnSUdOaGMyVWdYQ0poY25KdmQxd2lPbHh1SUNBZ0lDQWdjbVYwZFhKdUlHOXdkR2x2Ym5NN1hHNGdJQ0FnWkdWbVlYVnNkRG9nZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLR0JWYm1sdGNHeGxiV1Z1ZEdWa0lIUjVjR1VnSkh0bGJHVnRaVzUwTG5SNWNHVjlZQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNTlPMXh1WEc0dktpcGNiaUFxSUVkbGJtVnlZWFJsY3lCMGFHVWdaV3hsYldWdWRDZHpJSE5vWVhCbElHRnVaQ0J3ZFhSeklHbDBJR2x1ZEc4Z2RHaGxJR05oWTJobExseHVJQ29nUUhCaGNtRnRJR1ZzWlcxbGJuUmNiaUFxSUVCd1lYSmhiU0JuWlc1bGNtRjBiM0pjYmlBcUwxeHVZMjl1YzNRZ1oyVnVaWEpoZEdWRmJHVnRaVzUwVTJoaGNHVWdQU0FvWEc0Z0lHVnNaVzFsYm5RNklFNXZia1JsYkdWMFpXUkZlR05oYkdsa2NtRjNSV3hsYldWdWRDeGNiaUFnWjJWdVpYSmhkRzl5T2lCU2IzVm5hRWRsYm1WeVlYUnZjaXhjYmlrZ1BUNGdlMXh1SUNCc1pYUWdjMmhoY0dVZ1BTQnphR0Z3WlVOaFkyaGxMbWRsZENobGJHVnRaVzUwS1R0Y2JseHVJQ0F2THlCZ2JuVnNiR0FnYVc1a2FXTmhkR1Z6SUc1dklISmpJSE5vWVhCbElHRndjR3hwWTJGaWJHVWdabTl5SUhSb2FYTWdaV3hsYldWdWRDQjBlWEJsWEc0Z0lDOHZJQ2c5SUdSdklHNXZkQ0JuWlc1bGNtRjBaU0JoYm5sMGFHbHVaeWxjYmlBZ2FXWWdLSE5vWVhCbElEMDlQU0IxYm1SbFptbHVaV1FwSUh0Y2JpQWdJQ0JsYkdWdFpXNTBWMmwwYUVOaGJuWmhjME5oWTJobExtUmxiR1YwWlNobGJHVnRaVzUwS1R0Y2JseHVJQ0FnSUhOM2FYUmphQ0FvWld4bGJXVnVkQzUwZVhCbEtTQjdYRzRnSUNBZ0lDQmpZWE5sSUZ3aWNtVmpkR0Z1WjJ4bFhDSTZYRzRnSUNBZ0lDQWdJR2xtSUNobGJHVnRaVzUwTG5OMGNtOXJaVk5vWVhKd2JtVnpjeUE5UFQwZ1hDSnliM1Z1WkZ3aUtTQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdkeUE5SUdWc1pXMWxiblF1ZDJsa2RHZzdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdhQ0E5SUdWc1pXMWxiblF1YUdWcFoyaDBPMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSElnUFNCTllYUm9MbTFwYmloM0xDQm9LU0FxSURBdU1qVTdYRzRnSUNBZ0lDQWdJQ0FnYzJoaGNHVWdQU0JuWlc1bGNtRjBiM0l1Y0dGMGFDaGNiaUFnSUNBZ0lDQWdJQ0FnSUdCTklDUjdjbjBnTUNCTUlDUjdkeUF0SUhKOUlEQWdVU0FrZTNkOUlEQXNJQ1I3ZDMwZ0pIdHlmU0JNSUNSN2QzMGdKSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdhQ0F0SUhKY2JpQWdJQ0FnSUNBZ0lDQWdJSDBnVVNBa2UzZDlJQ1I3YUgwc0lDUjdkeUF0SUhKOUlDUjdhSDBnVENBa2UzSjlJQ1I3YUgwZ1VTQXdJQ1I3YUgwc0lEQWdKSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdhQ0F0SUhKY2JpQWdJQ0FnSUNBZ0lDQWdJSDBnVENBd0lDUjdjbjBnVVNBd0lEQXNJQ1I3Y24wZ01HQXNYRzRnSUNBZ0lDQWdJQ0FnSUNCblpXNWxjbUYwWlZKdmRXZG9UM0IwYVc5dWN5aGxiR1Z0Wlc1MExDQjBjblZsS1N4Y2JpQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUhOb1lYQmxJRDBnWjJWdVpYSmhkRzl5TG5KbFkzUmhibWRzWlNoY2JpQWdJQ0FnSUNBZ0lDQWdJREFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQXdMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEM1M2FXUjBhQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNaVzFsYm5RdWFHVnBaMmgwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdaMlZ1WlhKaGRHVlNiM1ZuYUU5d2RHbHZibk1vWld4bGJXVnVkQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J6WlhSVGFHRndaVVp2Y2tWc1pXMWxiblFvWld4bGJXVnVkQ3dnYzJoaGNHVXBPMXh1WEc0Z0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdZMkZ6WlNCY0ltUnBZVzF2Ym1SY0lqb2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmJkRzl3V0N3Z2RHOXdXU3dnY21sbmFIUllMQ0J5YVdkb2RGa3NJR0p2ZEhSdmJWZ3NJR0p2ZEhSdmJWa3NJR3hsWm5SWUxDQnNaV1owV1YwZ1BWeHVJQ0FnSUNBZ0lDQWdJR2RsZEVScFlXMXZibVJRYjJsdWRITW9aV3hsYldWdWRDazdYRzRnSUNBZ0lDQWdJR2xtSUNobGJHVnRaVzUwTG5OMGNtOXJaVk5vWVhKd2JtVnpjeUE5UFQwZ1hDSnliM1Z1WkZ3aUtTQjdYRzRnSUNBZ0lDQWdJQ0FnYzJoaGNHVWdQU0JuWlc1bGNtRjBiM0l1Y0dGMGFDaGNiaUFnSUNBZ0lDQWdJQ0FnSUdCTklDUjdkRzl3V0NBcklDaHlhV2RvZEZnZ0xTQjBiM0JZS1NBcUlEQXVNalY5SUNSN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhSdmNGa2dLeUFvY21sbmFIUlpJQzBnZEc5d1dTa2dLaUF3TGpJMVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5SUV3Z0pIdHlhV2RvZEZnZ0xTQW9jbWxuYUhSWUlDMGdkRzl3V0NrZ0tpQXdMakkxZlNBa2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCeWFXZG9kRmtnTFNBb2NtbG5hSFJaSUMwZ2RHOXdXU2tnS2lBd0xqSTFYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JESUNSN2NtbG5hSFJZZlNBa2UzSnBaMmgwV1gwc0lDUjdjbWxuYUhSWWZTQWtlM0pwWjJoMFdYMHNJQ1I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSEpwWjJoMFdDQXRJQ2h5YVdkb2RGZ2dMU0JpYjNSMGIyMVlLU0FxSURBdU1qVmNiaUFnSUNBZ0lDQWdJQ0FnSUgwZ0pIdHlhV2RvZEZrZ0t5QW9ZbTkwZEc5dFdTQXRJSEpwWjJoMFdTa2dLaUF3TGpJMWZWeHVJQ0FnSUNBZ0lDQWdJQ0FnVENBa2UySnZkSFJ2YlZnZ0t5QW9jbWxuYUhSWUlDMGdZbTkwZEc5dFdDa2dLaUF3TGpJMWZTQWtlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmliM1IwYjIxWklDMGdLR0p2ZEhSdmJWa2dMU0J5YVdkb2RGa3BJQ29nTUM0eU5WeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdReUFrZTJKdmRIUnZiVmg5SUNSN1ltOTBkRzl0V1gwc0lDUjdZbTkwZEc5dFdIMGdKSHRpYjNSMGIyMVpmU3dnSkh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWW05MGRHOXRXQ0F0SUNoaWIzUjBiMjFZSUMwZ2JHVm1kRmdwSUNvZ01DNHlOVnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTQWtlMkp2ZEhSdmJWa2dMU0FvWW05MGRHOXRXU0F0SUd4bFpuUlpLU0FxSURBdU1qVjlYRzRnSUNBZ0lDQWdJQ0FnSUNCTUlDUjdiR1ZtZEZnZ0t5QW9ZbTkwZEc5dFdDQXRJR3hsWm5SWUtTQXFJREF1TWpWOUlDUjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGxablJaSUNzZ0tHSnZkSFJ2YlZrZ0xTQnNaV1owV1NrZ0tpQXdMakkxWEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCRElDUjdiR1ZtZEZoOUlDUjdiR1ZtZEZsOUxDQWtlMnhsWm5SWWZTQWtlMnhsWm5SWmZTd2dKSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdiR1ZtZEZnZ0t5QW9kRzl3V0NBdElHeGxablJZS1NBcUlEQXVNalZjYmlBZ0lDQWdJQ0FnSUNBZ0lIMGdKSHRzWldaMFdTQXRJQ2hzWldaMFdTQXRJSFJ2Y0ZrcElDb2dNQzR5TlgxY2JpQWdJQ0FnSUNBZ0lDQWdJRXdnSkh0MGIzQllJQzBnS0hSdmNGZ2dMU0JzWldaMFdDa2dLaUF3TGpJMWZTQWtlM1J2Y0ZrZ0t5QW9iR1ZtZEZrZ0xTQjBiM0JaS1NBcUlEQXVNalY5WEc0Z0lDQWdJQ0FnSUNBZ0lDQkRJQ1I3ZEc5d1dIMGdKSHQwYjNCWmZTd2dKSHQwYjNCWWZTQWtlM1J2Y0ZsOUxDQWtlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjBiM0JZSUNzZ0tISnBaMmgwV0NBdElIUnZjRmdwSUNvZ01DNHlOVnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTQWtlM1J2Y0ZrZ0t5QW9jbWxuYUhSWklDMGdkRzl3V1NrZ0tpQXdMakkxZldBc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JuWlc1bGNtRjBaVkp2ZFdkb1QzQjBhVzl1Y3lobGJHVnRaVzUwTENCMGNuVmxLU3hjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJSE5vWVhCbElEMGdaMlZ1WlhKaGRHOXlMbkJ2YkhsbmIyNG9YRzRnSUNBZ0lDQWdJQ0FnSUNCYlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUZ0MGIzQllMQ0IwYjNCWlhTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1czSnBaMmgwV0N3Z2NtbG5hSFJaWFN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnVzJKdmRIUnZiVmdzSUdKdmRIUnZiVmxkTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JiYkdWbWRGZ3NJR3hsWm5SWlhTeGNiaUFnSUNBZ0lDQWdJQ0FnSUYwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JuWlc1bGNtRjBaVkp2ZFdkb1QzQjBhVzl1Y3lobGJHVnRaVzUwS1N4Y2JpQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhObGRGTm9ZWEJsUm05eVJXeGxiV1Z1ZENobGJHVnRaVzUwTENCemFHRndaU2s3WEc1Y2JpQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JqWVhObElGd2laV3hzYVhCelpWd2lPbHh1SUNBZ0lDQWdJQ0J6YUdGd1pTQTlJR2RsYm1WeVlYUnZjaTVsYkd4cGNITmxLRnh1SUNBZ0lDQWdJQ0FnSUdWc1pXMWxiblF1ZDJsa2RHZ2dMeUF5TEZ4dUlDQWdJQ0FnSUNBZ0lHVnNaVzFsYm5RdWFHVnBaMmgwSUM4Z01peGNiaUFnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBMbmRwWkhSb0xGeHVJQ0FnSUNBZ0lDQWdJR1ZzWlcxbGJuUXVhR1ZwWjJoMExGeHVJQ0FnSUNBZ0lDQWdJR2RsYm1WeVlYUmxVbTkxWjJoUGNIUnBiMjV6S0dWc1pXMWxiblFwTEZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQnpaWFJUYUdGd1pVWnZja1ZzWlcxbGJuUW9aV3hsYldWdWRDd2djMmhoY0dVcE8xeHVYRzRnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ1kyRnpaU0JjSW14cGJtVmNJanBjYmlBZ0lDQWdJR05oYzJVZ1hDSmhjbkp2ZDF3aU9pQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHOXdkR2x2Ym5NZ1BTQm5aVzVsY21GMFpWSnZkV2RvVDNCMGFXOXVjeWhsYkdWdFpXNTBLVHRjYmx4dUlDQWdJQ0FnSUNBdkx5QndiMmx1ZEhNZ1lYSnlZWGtnWTJGdUlHSmxJR1Z0Y0hSNUlHbHVJSFJvWlNCaVpXZHBibTVwYm1jc0lITnZJR2wwSUdseklHbHRjRzl5ZEdGdWRDQjBieUJoWkdSY2JpQWdJQ0FnSUNBZ0x5OGdhVzVwZEdsaGJDQndiM05wZEdsdmJpQjBieUJwZEZ4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3YjJsdWRITWdQU0JsYkdWdFpXNTBMbkJ2YVc1MGN5NXNaVzVuZEdnZ1B5QmxiR1Z0Wlc1MExuQnZhVzUwY3lBNklGdGJNQ3dnTUYxZE8xeHVYRzRnSUNBZ0lDQWdJQzh2SUdOMWNuWmxJR2x6SUdGc2QyRjVjeUIwYUdVZ1ptbHljM1FnWld4bGJXVnVkRnh1SUNBZ0lDQWdJQ0F2THlCMGFHbHpJSE5wYlhCc2FXWnBaWE1nWm1sdVpHbHVaeUIwYUdVZ1kzVnlkbVVnWm05eUlHRnVJR1ZzWlcxbGJuUmNiaUFnSUNBZ0lDQWdhV1lnS0dWc1pXMWxiblF1YzNSeWIydGxVMmhoY25CdVpYTnpJRDA5UFNCY0luTm9ZWEp3WENJcElIdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1bWFXeHNLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnphR0Z3WlNBOUlGdG5aVzVsY21GMGIzSXVjRzlzZVdkdmJpaHdiMmx1ZEhNZ1lYTWdXMjUxYldKbGNpd2diblZ0WW1WeVhWdGRMQ0J2Y0hScGIyNXpLVjA3WEc0Z0lDQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSE5vWVhCbElEMGdXMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQm5aVzVsY21GMGIzSXViR2x1WldGeVVHRjBhQ2h3YjJsdWRITWdZWE1nVzI1MWJXSmxjaXdnYm5WdFltVnlYVnRkTENCdmNIUnBiMjV6S1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJRjA3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJSE5vWVhCbElEMGdXMmRsYm1WeVlYUnZjaTVqZFhKMlpTaHdiMmx1ZEhNZ1lYTWdXMjUxYldKbGNpd2diblZ0WW1WeVhWdGRMQ0J2Y0hScGIyNXpLVjA3WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQXZMeUJoWkdRZ2JHbHVaWE1nYjI1c2VTQnBiaUJoY25KdmQxeHVJQ0FnSUNBZ0lDQnBaaUFvWld4bGJXVnVkQzUwZVhCbElEMDlQU0JjSW1GeWNtOTNYQ0lwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCN0lITjBZWEowUVhKeWIzZG9aV0ZrSUQwZ2JuVnNiQ3dnWlc1a1FYSnliM2RvWldGa0lEMGdYQ0poY25KdmQxd2lJSDBnUFNCbGJHVnRaVzUwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1oyVjBRWEp5YjNkb1pXRmtVMmhoY0dWeklEMGdLRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeGxiV1Z1ZERvZ1JYaGpZV3hwWkhKaGQweHBibVZoY2tWc1pXMWxiblFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnphR0Z3WlRvZ1JISmhkMkZpYkdWYlhTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhCdmMybDBhVzl1T2lCY0luTjBZWEowWENJZ2ZDQmNJbVZ1WkZ3aUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnWVhKeWIzZG9aV0ZrT2lCQmNuSnZkMmhsWVdRc1hHNGdJQ0FnSUNBZ0lDQWdLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmhjbkp2ZDJobFlXUlFiMmx1ZEhNZ1BTQm5aWFJCY25KdmQyaGxZV1JRYjJsdWRITW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNaVzFsYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhOb1lYQmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQndiM05wZEdsdmJpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1lYSnliM2RvWldGa0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHRnljbTkzYUdWaFpGQnZhVzUwY3lBOVBUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnVzEwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUU5MGFHVnlJR0Z5Y205M2FHVmhaSE1nYUdWeVpTNHVMbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR0Z5Y205M2FHVmhaQ0E5UFQwZ1hDSmtiM1JjSWlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JiZUN3Z2VTd2djbDBnUFNCaGNuSnZkMmhsWVdSUWIybHVkSE03WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRnRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JuWlc1bGNtRjBiM0l1WTJseVkyeGxLSGdzSUhrc0lISXNJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM0dUxtOXdkR2x2Ym5Nc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm1hV3hzT2lCbGJHVnRaVzUwTG5OMGNtOXJaVU52Ykc5eUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdabWxzYkZOMGVXeGxPaUJjSW5OdmJHbGtYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRISnZhMlU2SUZ3aWJtOXVaVndpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgwcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1lYSnliM2RvWldGa0lEMDlQU0JjSW5SeWFXRnVaMnhsWENJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnVzNnc0lIa3NJSGd5TENCNU1pd2dlRE1zSUhrelhTQTlJR0Z5Y205M2FHVmhaRkJ2YVc1MGN6dGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJoYkhkaGVYTWdkWE5sSUhOdmJHbGtJSE4wY205clpTQm1iM0lnZEhKcFlXNW5iR1VnWVhKeWIzZG9aV0ZrWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR1JsYkdWMFpTQnZjSFJwYjI1ekxuTjBjbTlyWlV4cGJtVkVZWE5vTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJiWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWjJWdVpYSmhkRzl5TG5CdmJIbG5iMjRvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCYlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRnQ0TENCNVhTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnVzNneUxDQjVNbDBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lGdDRNeXdnZVROZExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JiZUN3Z2VWMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JkTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F1TGk1dmNIUnBiMjV6TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm1hV3hzT2lCbGJHVnRaVzUwTG5OMGNtOXJaVU52Ykc5eUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JtYVd4c1UzUjViR1U2SUZ3aWMyOXNhV1JjSWl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdRWEp5YjNjZ1lYSnliM2RvWldGa2MxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdXM2d5TENCNU1pd2dlRE1zSUhrekxDQjROQ3dnZVRSZElEMGdZWEp5YjNkb1pXRmtVRzlwYm5Sek8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9aV3hsYldWdWRDNXpkSEp2YTJWVGRIbHNaU0E5UFQwZ1hDSmtiM1IwWldSY0lpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJtYjNJZ1pHOTBkR1ZrSUdGeWNtOTNjeUJqWVhCekxDQnlaV1IxWTJVZ1oyRndJSFJ2SUcxaGEyVWdhWFFnYlc5eVpTQnNaV2RwWW14bFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR1JoYzJnZ1BTQm5aWFJFWVhOb1FYSnlZWGxFYjNSMFpXUW9aV3hsYldWdWRDNXpkSEp2YTJWWGFXUjBhQ0F0SURFcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmNIUnBiMjV6TG5OMGNtOXJaVXhwYm1WRVlYTm9JRDBnVzJSaGMyaGJNRjBzSUdSaGMyaGJNVjBnTFNBeFhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUdadmNpQnpiMnhwWkM5a1lYTm9aV1FzSUd0bFpYQWdjMjlzYVdRZ1lYSnliM2NnWTJGd1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdSbGJHVjBaU0J2Y0hScGIyNXpMbk4wY205clpVeHBibVZFWVhOb08xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlGdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1oyVnVaWEpoZEc5eUxteHBibVVvZURNc0lIa3pMQ0I0TWl3Z2VUSXNJRzl3ZEdsdmJuTXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQm5aVzVsY21GMGIzSXViR2x1WlNoNE5Dd2dlVFFzSUhneUxDQjVNaXdnYjNCMGFXOXVjeWtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lDQWdJQ0FnSUgwN1hHNWNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2MzUmhjblJCY25KdmQyaGxZV1FnSVQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElITm9ZWEJsY3lBOUlHZGxkRUZ5Y205M2FHVmhaRk5vWVhCbGN5aGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJoaGNHVXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lGd2ljM1JoY25SY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2MzUmhjblJCY25KdmQyaGxZV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MyaGhjR1V1Y0hWemFDZ3VMaTV6YUdGd1pYTXBPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQWdJR2xtSUNobGJtUkJjbkp2ZDJobFlXUWdJVDA5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hsYm1SQmNuSnZkMmhsWVdRZ1BUMDlJSFZ1WkdWbWFXNWxaQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCSVpYa3NJSGRsSUdoaGRtVWdZVzRnYjJ4a0lHRnljbTkzSUdobGNtVWhYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE5vWVhCbGN5QTlJR2RsZEVGeWNtOTNhR1ZoWkZOb1lYQmxjeWhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2MyaGhjR1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRndpWlc1a1hDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnVaRUZ5Y205M2FHVmhaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCemFHRndaUzV3ZFhOb0tDNHVMbk5vWVhCbGN5azdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdjMlYwVTJoaGNHVkdiM0pGYkdWdFpXNTBLR1ZzWlcxbGJuUXNJSE5vWVhCbEtUdGNibHh1SUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHTmhjMlVnWENKbWNtVmxaSEpoZDF3aU9pQjdYRzRnSUNBZ0lDQWdJR2RsYm1WeVlYUmxSbkpsWlVSeVlYZFRhR0Z3WlNobGJHVnRaVzUwS1R0Y2JseHVJQ0FnSUNBZ0lDQnBaaUFvYVhOUVlYUm9RVXh2YjNBb1pXeGxiV1Z1ZEM1d2IybHVkSE1wS1NCN1hHNGdJQ0FnSUNBZ0lDQWdMeThnWjJWdVpYSmhkR1VnY205MVoyZ2djRzlzZVdkdmJpQjBieUJtYVd4c0lHWnlaV1ZrY21GM0lITm9ZWEJsWEc0Z0lDQWdJQ0FnSUNBZ2MyaGhjR1VnUFNCblpXNWxjbUYwYjNJdWNHOXNlV2R2YmlobGJHVnRaVzUwTG5CdmFXNTBjeUJoY3lCYmJuVnRZbVZ5TENCdWRXMWlaWEpkVzEwc0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUM0dUxtZGxibVZ5WVhSbFVtOTFaMmhQY0hScGIyNXpLR1ZzWlcxbGJuUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzUnliMnRsT2lCY0ltNXZibVZjSWl4Y2JpQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNCemFHRndaU0E5SUc1MWJHdzdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYzJWMFUyaGhjR1ZHYjNKRmJHVnRaVzUwS0dWc1pXMWxiblFzSUhOb1lYQmxLVHRjYmlBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQmpZWE5sSUZ3aWRHVjRkRndpT2x4dUlDQWdJQ0FnWTJGelpTQmNJbWx0WVdkbFhDSTZJSHRjYmlBZ0lDQWdJQ0FnTHk4Z2FuVnpkQ0IwYnlCbGJuTjFjbVVnZDJVZ1pHOXVKM1FnY21WblpXNWxjbUYwWlNCbGJHVnRaVzUwTG1OaGJuWmhjeUJ2YmlCeVpYSmxibVJsY25OY2JpQWdJQ0FnSUNBZ2MyVjBVMmhoY0dWR2IzSkZiR1Z0Wlc1MEtHVnNaVzFsYm5Rc0lHNTFiR3dwTzF4dUlDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JuMDdYRzVjYm1OdmJuTjBJR2RsYm1WeVlYUmxSV3hsYldWdWRGZHBkR2hEWVc1MllYTWdQU0FvWEc0Z0lHVnNaVzFsYm5RNklFNXZia1JsYkdWMFpXUkZlR05oYkdsa2NtRjNSV3hsYldWdWRDeGNiaUFnY21WdVpHVnlRMjl1Wm1sbk9pQlNaVzVrWlhKRGIyNW1hV2NzWEc0cElEMCtJSHRjYmlBZ1kyOXVjM1FnZW05dmJUb2dXbTl2YlNBOUlISmxibVJsY2tOdmJtWnBaeUEvSUhKbGJtUmxja052Ym1acFp5NTZiMjl0SURvZ1pHVm1ZWFZzZEVGd2NGTjBZWFJsTG5wdmIyMDdYRzRnSUdOdmJuTjBJSEJ5WlhaRmJHVnRaVzUwVjJsMGFFTmhiblpoY3lBOUlHVnNaVzFsYm5SWGFYUm9RMkZ1ZG1GelEyRmphR1V1WjJWMEtHVnNaVzFsYm5RcE8xeHVJQ0JqYjI1emRDQnphRzkxYkdSU1pXZGxibVZ5WVhSbFFtVmpZWFZ6WlZwdmIyMGdQVnh1SUNBZ0lIQnlaWFpGYkdWdFpXNTBWMmwwYUVOaGJuWmhjeUFtSmx4dUlDQWdJSEJ5WlhaRmJHVnRaVzUwVjJsMGFFTmhiblpoY3k1allXNTJZWE5hYjI5dElDRTlQU0I2YjI5dExuWmhiSFZsSUNZbVhHNGdJQ0FnSVhKbGJtUmxja052Ym1acFp6OHVjMmh2ZFd4a1EyRmphR1ZKWjI1dmNtVmFiMjl0TzF4dVhHNGdJR2xtSUNoY2JpQWdJQ0FoY0hKbGRrVnNaVzFsYm5SWGFYUm9RMkZ1ZG1GeklIeDhYRzRnSUNBZ2MyaHZkV3hrVW1WblpXNWxjbUYwWlVKbFkyRjFjMlZhYjI5dElIeDhYRzRnSUNBZ2NISmxka1ZzWlcxbGJuUlhhWFJvUTJGdWRtRnpMblJvWlcxbElDRTlQU0J5Wlc1a1pYSkRiMjVtYVdjdWRHaGxiV1ZjYmlBZ0tTQjdYRzRnSUNBZ1kyOXVjM1FnWld4bGJXVnVkRmRwZEdoRFlXNTJZWE1nUFNCblpXNWxjbUYwWlVWc1pXMWxiblJEWVc1MllYTW9YRzRnSUNBZ0lDQmxiR1Z0Wlc1MExGeHVJQ0FnSUNBZ2VtOXZiU3hjYmlBZ0lDQWdJSEpsYm1SbGNrTnZibVpwWnl4Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWld4bGJXVnVkRmRwZEdoRFlXNTJZWE5EWVdOb1pTNXpaWFFvWld4bGJXVnVkQ3dnWld4bGJXVnVkRmRwZEdoRFlXNTJZWE1wTzF4dVhHNGdJQ0FnY21WMGRYSnVJR1ZzWlcxbGJuUlhhWFJvUTJGdWRtRnpPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQndjbVYyUld4bGJXVnVkRmRwZEdoRFlXNTJZWE03WEc1OU8xeHVYRzVqYjI1emRDQmtjbUYzUld4bGJXVnVkRVp5YjIxRFlXNTJZWE1nUFNBb1hHNGdJR1ZzWlcxbGJuUlhhWFJvUTJGdWRtRnpPaUJGZUdOaGJHbGtjbUYzUld4bGJXVnVkRmRwZEdoRFlXNTJZWE1zWEc0Z0lISmpPaUJTYjNWbmFFTmhiblpoY3l4Y2JpQWdZMjl1ZEdWNGREb2dRMkZ1ZG1GelVtVnVaR1Z5YVc1blEyOXVkR1Y0ZERKRUxGeHVJQ0J5Wlc1a1pYSkRiMjVtYVdjNklGSmxibVJsY2tOdmJtWnBaeXhjYmlrZ1BUNGdlMXh1SUNCamIyNXpkQ0JsYkdWdFpXNTBJRDBnWld4bGJXVnVkRmRwZEdoRFlXNTJZWE11Wld4bGJXVnVkRHRjYmlBZ1kyOXVjM1FnY0dGa1pHbHVaeUE5SUdkbGRFTmhiblpoYzFCaFpHUnBibWNvWld4bGJXVnVkQ2s3WEc0Z0lHeGxkQ0JiZURFc0lIa3hMQ0I0TWl3Z2VUSmRJRDBnWjJWMFJXeGxiV1Z1ZEVGaWMyOXNkWFJsUTI5dmNtUnpLR1ZzWlcxbGJuUXBPMXh1WEc0Z0lDOHZJRVp5WldVZ1pISmhkeUJsYkdWdFpXNTBjeUIzYVd4c0lHOTBhR1Z5ZDJselpTQmNJbk5vZFdabWJHVmNJaUJoY3lCMGFHVWdiV2x1SUhnZ1lXNWtJSGtnWTJoaGJtZGxYRzRnSUdsbUlDaHBjMFp5WldWRWNtRjNSV3hsYldWdWRDaGxiR1Z0Wlc1MEtTa2dlMXh1SUNBZ0lIZ3hJRDBnVFdGMGFDNW1iRzl2Y2loNE1TazdYRzRnSUNBZ2VESWdQU0JOWVhSb0xtTmxhV3dvZURJcE8xeHVJQ0FnSUhreElEMGdUV0YwYUM1bWJHOXZjaWg1TVNrN1hHNGdJQ0FnZVRJZ1BTQk5ZWFJvTG1ObGFXd29lVElwTzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnWTNnZ1BTQW9LSGd4SUNzZ2VESXBJQzhnTWlBcklISmxibVJsY2tOdmJtWnBaeTV6WTNKdmJHeFlLU0FxSUhkcGJtUnZkeTVrWlhacFkyVlFhWGhsYkZKaGRHbHZPMXh1SUNCamIyNXpkQ0JqZVNBOUlDZ29lVEVnS3lCNU1pa2dMeUF5SUNzZ2NtVnVaR1Z5UTI5dVptbG5Mbk5qY205c2JGa3BJQ29nZDJsdVpHOTNMbVJsZG1salpWQnBlR1ZzVW1GMGFXODdYRzVjYmlBZ1kyOXVjM1FnWDJselVHVnVaR2x1WjBsdFlXZGxSV3hsYldWdWRDQTlJR2x6VUdWdVpHbHVaMGx0WVdkbFJXeGxiV1Z1ZENobGJHVnRaVzUwTENCeVpXNWtaWEpEYjI1bWFXY3BPMXh1WEc0Z0lHTnZibk4wSUhOallXeGxXRVpoWTNSdmNpQTlYRzRnSUNBZ1hDSnpZMkZzWlZ3aUlHbHVJR1ZzWlcxbGJuUlhhWFJvUTJGdWRtRnpMbVZzWlcxbGJuUWdKaVlnSVY5cGMxQmxibVJwYm1kSmJXRm5aVVZzWlcxbGJuUmNiaUFnSUNBZ0lEOGdaV3hsYldWdWRGZHBkR2hEWVc1MllYTXVaV3hsYldWdWRDNXpZMkZzWlZzd1hWeHVJQ0FnSUNBZ09pQXhPMXh1SUNCamIyNXpkQ0J6WTJGc1pWbEdZV04wYjNJZ1BWeHVJQ0FnSUZ3aWMyTmhiR1ZjSWlCcGJpQmxiR1Z0Wlc1MFYybDBhRU5oYm5aaGN5NWxiR1Z0Wlc1MElDWW1JQ0ZmYVhOUVpXNWthVzVuU1cxaFoyVkZiR1Z0Wlc1MFhHNGdJQ0FnSUNBL0lHVnNaVzFsYm5SWGFYUm9RMkZ1ZG1GekxtVnNaVzFsYm5RdWMyTmhiR1ZiTVYxY2JpQWdJQ0FnSURvZ01UdGNibHh1SUNCamIyNTBaWGgwTG5OaGRtVW9LVHRjYmlBZ1kyOXVkR1Y0ZEM1elkyRnNaU2hjYmlBZ0lDQW9NU0F2SUhkcGJtUnZkeTVrWlhacFkyVlFhWGhsYkZKaGRHbHZLU0FxSUhOallXeGxXRVpoWTNSdmNpeGNiaUFnSUNBb01TQXZJSGRwYm1SdmR5NWtaWFpwWTJWUWFYaGxiRkpoZEdsdktTQXFJSE5qWVd4bFdVWmhZM1J2Y2l4Y2JpQWdLVHRjYmlBZ1kyOXVkR1Y0ZEM1MGNtRnVjMnhoZEdVb1kzZ2dLaUJ6WTJGc1pWaEdZV04wYjNJc0lHTjVJQ29nYzJOaGJHVlpSbUZqZEc5eUtUdGNiaUFnWTI5dWRHVjRkQzV5YjNSaGRHVW9aV3hsYldWdWRDNWhibWRzWlNBcUlITmpZV3hsV0VaaFkzUnZjaUFxSUhOallXeGxXVVpoWTNSdmNpazdYRzVjYmlBZ1kyOXVkR1Y0ZEM1a2NtRjNTVzFoWjJVb1hHNGdJQ0FnWld4bGJXVnVkRmRwZEdoRFlXNTJZWE11WTJGdWRtRnpJU3hjYmlBZ0lDQW9MU2g0TWlBdElIZ3hLU0F2SURJcElDb2dkMmx1Wkc5M0xtUmxkbWxqWlZCcGVHVnNVbUYwYVc4Z0xWeHVJQ0FnSUNBZ0tIQmhaR1JwYm1jZ0tpQmxiR1Z0Wlc1MFYybDBhRU5oYm5aaGN5NWpZVzUyWVhOYWIyOXRLU0F2SUdWc1pXMWxiblJYYVhSb1EyRnVkbUZ6TG1OaGJuWmhjMXB2YjIwc1hHNGdJQ0FnS0Mwb2VUSWdMU0I1TVNrZ0x5QXlLU0FxSUhkcGJtUnZkeTVrWlhacFkyVlFhWGhsYkZKaGRHbHZJQzFjYmlBZ0lDQWdJQ2h3WVdSa2FXNW5JQ29nWld4bGJXVnVkRmRwZEdoRFlXNTJZWE11WTJGdWRtRnpXbTl2YlNrZ0x5QmxiR1Z0Wlc1MFYybDBhRU5oYm5aaGN5NWpZVzUyWVhOYWIyOXRMRnh1SUNBZ0lHVnNaVzFsYm5SWGFYUm9RMkZ1ZG1GekxtTmhiblpoY3lFdWQybGtkR2dnTHlCbGJHVnRaVzUwVjJsMGFFTmhiblpoY3k1allXNTJZWE5hYjI5dExGeHVJQ0FnSUdWc1pXMWxiblJYYVhSb1EyRnVkbUZ6TG1OaGJuWmhjeUV1YUdWcFoyaDBJQzhnWld4bGJXVnVkRmRwZEdoRFlXNTJZWE11WTJGdWRtRnpXbTl2YlN4Y2JpQWdLVHRjYmlBZ1kyOXVkR1Y0ZEM1eVpYTjBiM0psS0NrN1hHNWNiaUFnTHk4Z1EyeGxZWElnZEdobElHNWxjM1JsWkNCbGJHVnRaVzUwSUhkbElHRndjR1Z1WkdWa0lIUnZJSFJvWlNCRVQwMWNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J5Wlc1a1pYSkZiR1Z0Wlc1MElEMGdLRnh1SUNCbGJHVnRaVzUwT2lCT2IyNUVaV3hsZEdWa1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5Rc1hHNGdJSEpqT2lCU2IzVm5hRU5oYm5aaGN5eGNiaUFnWTI5dWRHVjRkRG9nUTJGdWRtRnpVbVZ1WkdWeWFXNW5RMjl1ZEdWNGRESkVMRnh1SUNCeVpXNWtaWEpEYjI1bWFXYzZJRkpsYm1SbGNrTnZibVpwWnl4Y2Jpa2dQVDRnZTF4dUlDQmpiMjV6ZENCblpXNWxjbUYwYjNJZ1BTQnlZeTVuWlc1bGNtRjBiM0k3WEc0Z0lITjNhWFJqYUNBb1pXeGxiV1Z1ZEM1MGVYQmxLU0I3WEc0Z0lDQWdZMkZ6WlNCY0luTmxiR1ZqZEdsdmJsd2lPaUI3WEc0Z0lDQWdJQ0JqYjI1MFpYaDBMbk5oZG1Vb0tUdGNiaUFnSUNBZ0lHTnZiblJsZUhRdWRISmhibk5zWVhSbEtGeHVJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MExuZ2dLeUJ5Wlc1a1pYSkRiMjVtYVdjdWMyTnliMnhzV0N4Y2JpQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEM1NUlDc2djbVZ1WkdWeVEyOXVabWxuTG5OamNtOXNiRmtzWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnWTI5dWRHVjRkQzVtYVd4c1UzUjViR1VnUFNCY0luSm5ZbUVvTUN3Z01Dd2dNalUxTENBd0xqRXdLVndpTzF4dUlDQWdJQ0FnWTI5dWRHVjRkQzVtYVd4c1VtVmpkQ2d3TENBd0xDQmxiR1Z0Wlc1MExuZHBaSFJvTENCbGJHVnRaVzUwTG1obGFXZG9kQ2s3WEc0Z0lDQWdJQ0JqYjI1MFpYaDBMbkpsYzNSdmNtVW9LVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUgxY2JpQWdJQ0JqWVhObElGd2labkpsWldSeVlYZGNJam9nZTF4dUlDQWdJQ0FnWjJWdVpYSmhkR1ZGYkdWdFpXNTBVMmhoY0dVb1pXeGxiV1Z1ZEN3Z1oyVnVaWEpoZEc5eUtUdGNibHh1SUNBZ0lDQWdhV1lnS0hKbGJtUmxja052Ym1acFp5NXBjMFY0Y0c5eWRHbHVaeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JsYkdWdFpXNTBWMmwwYUVOaGJuWmhjeUE5SUdkbGJtVnlZWFJsUld4bGJXVnVkRmRwZEdoRFlXNTJZWE1vWEc0Z0lDQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQnlaVzVrWlhKRGIyNW1hV2NzWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lHUnlZWGRGYkdWdFpXNTBSbkp2YlVOaGJuWmhjeWhsYkdWdFpXNTBWMmwwYUVOaGJuWmhjeXdnY21Nc0lHTnZiblJsZUhRc0lISmxibVJsY2tOdmJtWnBaeWs3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmJlREVzSUhreExDQjRNaXdnZVRKZElEMGdaMlYwUld4bGJXVnVkRUZpYzI5c2RYUmxRMjl2Y21SektHVnNaVzFsYm5RcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCamVDQTlJQ2g0TVNBcklIZ3lLU0F2SURJZ0t5QnlaVzVrWlhKRGIyNW1hV2N1YzJOeWIyeHNXRHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZM2tnUFNBb2VURWdLeUI1TWlrZ0x5QXlJQ3NnY21WdVpHVnlRMjl1Wm1sbkxuTmpjbTlzYkZrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhOb2FXWjBXQ0E5SUNoNE1pQXRJSGd4S1NBdklESWdMU0FvWld4bGJXVnVkQzU0SUMwZ2VERXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnphR2xtZEZrZ1BTQW9lVElnTFNCNU1Ta2dMeUF5SUMwZ0tHVnNaVzFsYm5RdWVTQXRJSGt4S1R0Y2JpQWdJQ0FnSUNBZ1kyOXVkR1Y0ZEM1ellYWmxLQ2s3WEc0Z0lDQWdJQ0FnSUdOdmJuUmxlSFF1ZEhKaGJuTnNZWFJsS0dONExDQmplU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuUmxlSFF1Y205MFlYUmxLR1ZzWlcxbGJuUXVZVzVuYkdVcE8xeHVJQ0FnSUNBZ0lDQmpiMjUwWlhoMExuUnlZVzV6YkdGMFpTZ3RjMmhwWm5SWUxDQXRjMmhwWm5SWktUdGNiaUFnSUNBZ0lDQWdaSEpoZDBWc1pXMWxiblJQYmtOaGJuWmhjeWhsYkdWdFpXNTBMQ0J5WXl3Z1kyOXVkR1Y0ZEN3Z2NtVnVaR1Z5UTI5dVptbG5LVHRjYmlBZ0lDQWdJQ0FnWTI5dWRHVjRkQzV5WlhOMGIzSmxLQ2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lIMWNiaUFnSUNCallYTmxJRndpY21WamRHRnVaMnhsWENJNlhHNGdJQ0FnWTJGelpTQmNJbVJwWVcxdmJtUmNJanBjYmlBZ0lDQmpZWE5sSUZ3aVpXeHNhWEJ6WlZ3aU9seHVJQ0FnSUdOaGMyVWdYQ0pzYVc1bFhDSTZYRzRnSUNBZ1kyRnpaU0JjSW1GeWNtOTNYQ0k2WEc0Z0lDQWdZMkZ6WlNCY0ltbHRZV2RsWENJNlhHNGdJQ0FnWTJGelpTQmNJblJsZUhSY0lqb2dlMXh1SUNBZ0lDQWdaMlZ1WlhKaGRHVkZiR1Z0Wlc1MFUyaGhjR1VvWld4bGJXVnVkQ3dnWjJWdVpYSmhkRzl5S1R0Y2JpQWdJQ0FnSUdsbUlDaHlaVzVrWlhKRGIyNW1hV2N1YVhORmVIQnZjblJwYm1jcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1czZ3hMQ0I1TVN3Z2VESXNJSGt5WFNBOUlHZGxkRVZzWlcxbGJuUkJZbk52YkhWMFpVTnZiM0prY3lobGJHVnRaVzUwS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTNnZ1BTQW9lREVnS3lCNE1pa2dMeUF5SUNzZ2NtVnVaR1Z5UTI5dVptbG5Mbk5qY205c2JGZzdYRzRnSUNBZ0lDQWdJR052Ym5OMElHTjVJRDBnS0hreElDc2dlVElwSUM4Z01pQXJJSEpsYm1SbGNrTnZibVpwWnk1elkzSnZiR3haTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6YUdsbWRGZ2dQU0FvZURJZ0xTQjRNU2tnTHlBeUlDMGdLR1ZzWlcxbGJuUXVlQ0F0SUhneEtUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MyaHBablJaSUQwZ0tIa3lJQzBnZVRFcElDOGdNaUF0SUNobGJHVnRaVzUwTG5rZ0xTQjVNU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuUmxlSFF1YzJGMlpTZ3BPMXh1SUNBZ0lDQWdJQ0JqYjI1MFpYaDBMblJ5WVc1emJHRjBaU2hqZUN3Z1kza3BPMXh1SUNBZ0lDQWdJQ0JqYjI1MFpYaDBMbkp2ZEdGMFpTaGxiR1Z0Wlc1MExtRnVaMnhsS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVkR1Y0ZEM1MGNtRnVjMnhoZEdVb0xYTm9hV1owV0N3Z0xYTm9hV1owV1NrN1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0hOb2IzVnNaRkpsYzJWMFNXMWhaMlZHYVd4MFpYSW9aV3hsYldWdWRDd2djbVZ1WkdWeVEyOXVabWxuS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5SbGVIUXVabWxzZEdWeUlEMGdYQ0p1YjI1bFhDSTdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCa2NtRjNSV3hsYldWdWRFOXVRMkZ1ZG1GektHVnNaVzFsYm5Rc0lISmpMQ0JqYjI1MFpYaDBMQ0J5Wlc1a1pYSkRiMjVtYVdjcE8xeHVJQ0FnSUNBZ0lDQmpiMjUwWlhoMExuSmxjM1J2Y21Vb0tUdGNiaUFnSUNBZ0lDQWdMeThnYm05MElHVjRjRzl5ZEdsdVp5RGlocElnYjNCMGFXMXBlbVZrSUhKbGJtUmxjbWx1WnlBb1kyRmphR1VnSmlCeVpXNWtaWElnWm5KdmJTQmxiR1Z0Wlc1MFhHNGdJQ0FnSUNBZ0lDOHZJR05oYm5aaGMyVnpLVnh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1pXeGxiV1Z1ZEZkcGRHaERZVzUyWVhNZ1BTQm5aVzVsY21GMFpVVnNaVzFsYm5SWGFYUm9RMkZ1ZG1GektGeHVJQ0FnSUNBZ0lDQWdJR1ZzWlcxbGJuUXNYRzRnSUNBZ0lDQWdJQ0FnY21WdVpHVnlRMjl1Wm1sbkxGeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0JrY21GM1JXeGxiV1Z1ZEVaeWIyMURZVzUyWVhNb1pXeGxiV1Z1ZEZkcGRHaERZVzUyWVhNc0lISmpMQ0JqYjI1MFpYaDBMQ0J5Wlc1a1pYSkRiMjVtYVdjcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdmVnh1SUNBZ0lHUmxabUYxYkhRNklIdGNiaUFnSUNBZ0lDOHZJRUIwY3kxcFoyNXZjbVZjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdWVzVwYlhCc1pXMWxiblJsWkNCMGVYQmxJQ1I3Wld4bGJXVnVkQzUwZVhCbGZXQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dWZUdGNibHh1WTI5dWMzUWdjbTkxWjJoVFZrZEVjbUYzVjJsMGFGQnlaV05wYzJsdmJpQTlJQ2hjYmlBZ2NuTjJaem9nVW05MVoyaFRWa2NzWEc0Z0lHUnlZWGRoWW14bE9pQkVjbUYzWVdKc1pTeGNiaUFnY0hKbFkybHphVzl1UHpvZ2JuVnRZbVZ5TEZ4dUtTQTlQaUI3WEc0Z0lHbG1JQ2gwZVhCbGIyWWdjSEpsWTJsemFXOXVJRDA5UFNCY0luVnVaR1ZtYVc1bFpGd2lLU0I3WEc0Z0lDQWdjbVYwZFhKdUlISnpkbWN1WkhKaGR5aGtjbUYzWVdKc1pTazdYRzRnSUgxY2JpQWdZMjl1YzNRZ2NITm9ZWEJsT2lCRWNtRjNZV0pzWlNBOUlIdGNiaUFnSUNCelpYUnpPaUJrY21GM1lXSnNaUzV6WlhSekxGeHVJQ0FnSUhOb1lYQmxPaUJrY21GM1lXSnNaUzV6YUdGd1pTeGNiaUFnSUNCdmNIUnBiMjV6T2lCN0lDNHVMbVJ5WVhkaFlteGxMbTl3ZEdsdmJuTXNJR1pwZUdWa1JHVmphVzFoYkZCc1lXTmxSR2xuYVhSek9pQndjbVZqYVhOcGIyNGdmU3hjYmlBZ2ZUdGNiaUFnY21WMGRYSnVJSEp6ZG1jdVpISmhkeWh3YzJoaGNHVXBPMXh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUhKbGJtUmxja1ZzWlcxbGJuUlViMU4yWnlBOUlDaGNiaUFnWld4bGJXVnVkRG9nVG05dVJHVnNaWFJsWkVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwTEZ4dUlDQnljM1puT2lCU2IzVm5hRk5XUnl4Y2JpQWdjM1puVW05dmREb2dVMVpIUld4bGJXVnVkQ3hjYmlBZ1ptbHNaWE02SUVKcGJtRnllVVpwYkdWekxGeHVJQ0J2Wm1aelpYUllQem9nYm5WdFltVnlMRnh1SUNCdlptWnpaWFJaUHpvZ2JuVnRZbVZ5TEZ4dUlDQmxlSEJ2Y25SWGFYUm9SR0Z5YTAxdlpHVS9PaUJpYjI5c1pXRnVMRnh1S1NBOVBpQjdYRzRnSUdOdmJuTjBJRnQ0TVN3Z2VURXNJSGd5TENCNU1sMGdQU0JuWlhSRmJHVnRaVzUwUVdKemIyeDFkR1ZEYjI5eVpITW9aV3hsYldWdWRDazdYRzRnSUdOdmJuTjBJR040SUQwZ0tIZ3lJQzBnZURFcElDOGdNaUF0SUNobGJHVnRaVzUwTG5nZ0xTQjRNU2s3WEc0Z0lHTnZibk4wSUdONUlEMGdLSGt5SUMwZ2VURXBJQzhnTWlBdElDaGxiR1Z0Wlc1MExua2dMU0I1TVNrN1hHNGdJR052Ym5OMElHUmxaM0psWlNBOUlDZ3hPREFnS2lCbGJHVnRaVzUwTG1GdVoyeGxLU0F2SUUxaGRHZ3VVRWs3WEc0Z0lHTnZibk4wSUdkbGJtVnlZWFJ2Y2lBOUlISnpkbWN1WjJWdVpYSmhkRzl5TzF4dUlDQnpkMmwwWTJnZ0tHVnNaVzFsYm5RdWRIbHdaU2tnZTF4dUlDQWdJR05oYzJVZ1hDSnpaV3hsWTNScGIyNWNJam9nZTF4dUlDQWdJQ0FnTHk4Z1UybHVZMlVnZEdocGN5QnBjeUIxYzJWa0lHOXViSGtnWkhWeWFXNW5JR1ZrYVhScGJtY2daWGh3WlhKcFpXNWpaU3dnZDJocFkyZ2dhWE1nWTJGdWRtRnpJR0poYzJWa0xGeHVJQ0FnSUNBZ0x5OGdkR2hwY3lCemFHOTFiR1FnYm05MElHaGhjSEJsYmx4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLRndpVTJWc1pXTjBhVzl1SUhKbGJtUmxjbWx1WnlCcGN5QnViM1FnYzNWd2NHOXlkR1ZrSUdadmNpQlRWa2RjSWlrN1hHNGdJQ0FnZlZ4dUlDQWdJR05oYzJVZ1hDSnlaV04wWVc1bmJHVmNJanBjYmlBZ0lDQmpZWE5sSUZ3aVpHbGhiVzl1WkZ3aU9seHVJQ0FnSUdOaGMyVWdYQ0psYkd4cGNITmxYQ0k2SUh0Y2JpQWdJQ0FnSUdkbGJtVnlZWFJsUld4bGJXVnVkRk5vWVhCbEtHVnNaVzFsYm5Rc0lHZGxibVZ5WVhSdmNpazdYRzRnSUNBZ0lDQmpiMjV6ZENCdWIyUmxJRDBnY205MVoyaFRWa2RFY21GM1YybDBhRkJ5WldOcGMybHZiaWhjYmlBZ0lDQWdJQ0FnY25OMlp5eGNiaUFnSUNBZ0lDQWdaMlYwVTJoaGNHVkdiM0pGYkdWdFpXNTBLR1ZzWlcxbGJuUXBJU3hjYmlBZ0lDQWdJQ0FnVFVGWVgwUkZRMGxOUVV4VFgwWlBVbDlUVmtkZlJWaFFUMUpVTEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJRzl3WVdOcGRIa2dQU0JsYkdWdFpXNTBMbTl3WVdOcGRIa2dMeUF4TURBN1hHNGdJQ0FnSUNCcFppQW9iM0JoWTJsMGVTQWhQVDBnTVNrZ2UxeHVJQ0FnSUNBZ0lDQnViMlJsTG5ObGRFRjBkSEpwWW5WMFpTaGNJbk4wY205clpTMXZjR0ZqYVhSNVhDSXNJR0FrZTI5d1lXTnBkSGw5WUNrN1hHNGdJQ0FnSUNBZ0lHNXZaR1V1YzJWMFFYUjBjbWxpZFhSbEtGd2labWxzYkMxdmNHRmphWFI1WENJc0lHQWtlMjl3WVdOcGRIbDlZQ2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J1YjJSbExuTmxkRUYwZEhKcFluVjBaU2hjSW5OMGNtOXJaUzFzYVc1bFkyRndYQ0lzSUZ3aWNtOTFibVJjSWlrN1hHNGdJQ0FnSUNCdWIyUmxMbk5sZEVGMGRISnBZblYwWlNoY2JpQWdJQ0FnSUNBZ1hDSjBjbUZ1YzJadmNtMWNJaXhjYmlBZ0lDQWdJQ0FnWUhSeVlXNXpiR0YwWlNna2UyOW1abk5sZEZnZ2ZId2dNSDBnSkh0Y2JpQWdJQ0FnSUNBZ0lDQnZabVp6WlhSWklIeDhJREJjYmlBZ0lDQWdJQ0FnZlNrZ2NtOTBZWFJsS0NSN1pHVm5jbVZsZlNBa2UyTjRmU0FrZTJONWZTbGdMRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSE4yWjFKdmIzUXVZWEJ3Wlc1a1EyaHBiR1FvYm05a1pTazdYRzRnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0I5WEc0Z0lDQWdZMkZ6WlNCY0lteHBibVZjSWpwY2JpQWdJQ0JqWVhObElGd2lZWEp5YjNkY0lqb2dlMXh1SUNBZ0lDQWdaMlZ1WlhKaGRHVkZiR1Z0Wlc1MFUyaGhjR1VvWld4bGJXVnVkQ3dnWjJWdVpYSmhkRzl5S1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR2R5YjNWd0lEMGdjM1puVW05dmRDNXZkMjVsY2tSdlkzVnRaVzUwSVM1amNtVmhkR1ZGYkdWdFpXNTBUbE1vVTFaSFgwNVRMQ0JjSW1kY0lpazdYRzRnSUNBZ0lDQmpiMjV6ZENCdmNHRmphWFI1SUQwZ1pXeGxiV1Z1ZEM1dmNHRmphWFI1SUM4Z01UQXdPMXh1SUNBZ0lDQWdaM0p2ZFhBdWMyVjBRWFIwY21saWRYUmxLRndpYzNSeWIydGxMV3hwYm1WallYQmNJaXdnWENKeWIzVnVaRndpS1R0Y2JseHVJQ0FnSUNBZ1oyVjBVMmhoY0dWR2IzSkZiR1Z0Wlc1MEtHVnNaVzFsYm5RcElTNW1iM0pGWVdOb0tDaHphR0Z3WlNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnViMlJsSUQwZ2NtOTFaMmhUVmtkRWNtRjNWMmwwYUZCeVpXTnBjMmx2YmloY2JpQWdJQ0FnSUNBZ0lDQnljM1puTEZ4dUlDQWdJQ0FnSUNBZ0lITm9ZWEJsTEZ4dUlDQWdJQ0FnSUNBZ0lFMUJXRjlFUlVOSlRVRk1VMTlHVDFKZlUxWkhYMFZZVUU5U1ZDeGNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHOXdZV05wZEhrZ0lUMDlJREVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnViMlJsTG5ObGRFRjBkSEpwWW5WMFpTaGNJbk4wY205clpTMXZjR0ZqYVhSNVhDSXNJR0FrZTI5d1lXTnBkSGw5WUNrN1hHNGdJQ0FnSUNBZ0lDQWdibTlrWlM1elpYUkJkSFJ5YVdKMWRHVW9YQ0ptYVd4c0xXOXdZV05wZEhsY0lpd2dZQ1I3YjNCaFkybDBlWDFnS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnViMlJsTG5ObGRFRjBkSEpwWW5WMFpTaGNiaUFnSUNBZ0lDQWdJQ0JjSW5SeVlXNXpabTl5YlZ3aUxGeHVJQ0FnSUNBZ0lDQWdJR0IwY21GdWMyeGhkR1VvSkh0dlptWnpaWFJZSUh4OElEQjlJQ1I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnZabVp6WlhSWklIeDhJREJjYmlBZ0lDQWdJQ0FnSUNCOUtTQnliM1JoZEdVb0pIdGtaV2R5WldWOUlDUjdZM2g5SUNSN1kzbDlLV0FzWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnSUNCbGJHVnRaVzUwTG5SNWNHVWdQVDA5SUZ3aWJHbHVaVndpSUNZbVhHNGdJQ0FnSUNBZ0lDQWdhWE5RWVhSb1FVeHZiM0FvWld4bGJXVnVkQzV3YjJsdWRITXBJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEM1aVlXTnJaM0p2ZFc1a1EyOXNiM0lnSVQwOUlGd2lkSEpoYm5Od1lYSmxiblJjSWx4dUlDQWdJQ0FnSUNBcElIdGNiaUFnSUNBZ0lDQWdJQ0J1YjJSbExuTmxkRUYwZEhKcFluVjBaU2hjSW1acGJHd3RjblZzWlZ3aUxDQmNJbVYyWlc1dlpHUmNJaWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1ozSnZkWEF1WVhCd1pXNWtRMmhwYkdRb2JtOWtaU2s3WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUhOMloxSnZiM1F1WVhCd1pXNWtRMmhwYkdRb1ozSnZkWEFwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ2ZWeHVJQ0FnSUdOaGMyVWdYQ0ptY21WbFpISmhkMXdpT2lCN1hHNGdJQ0FnSUNCblpXNWxjbUYwWlVaeVpXVkVjbUYzVTJoaGNHVW9aV3hsYldWdWRDazdYRzRnSUNBZ0lDQmpiMjV6ZENCdmNHRmphWFI1SUQwZ1pXeGxiV1Z1ZEM1dmNHRmphWFI1SUM4Z01UQXdPMXh1SUNBZ0lDQWdZMjl1YzNRZ2MyaGhjR1VnUFNCblpYUlRhR0Z3WlVadmNrVnNaVzFsYm5Rb1pXeGxiV1Z1ZENrN1hHNGdJQ0FnSUNCamIyNXpkQ0J1YjJSbElEMGdjMmhoY0dWY2JpQWdJQ0FnSUNBZ1B5QnliM1ZuYUZOV1IwUnlZWGRYYVhSb1VISmxZMmx6YVc5dUtISnpkbWNzSUhOb1lYQmxMQ0JOUVZoZlJFVkRTVTFCVEZOZlJrOVNYMU5XUjE5RldGQlBVbFFwWEc0Z0lDQWdJQ0FnSURvZ2MzWm5VbTl2ZEM1dmQyNWxja1J2WTNWdFpXNTBJUzVqY21WaGRHVkZiR1Z0Wlc1MFRsTW9VMVpIWDA1VExDQmNJbWRjSWlrN1hHNGdJQ0FnSUNCcFppQW9iM0JoWTJsMGVTQWhQVDBnTVNrZ2UxeHVJQ0FnSUNBZ0lDQnViMlJsTG5ObGRFRjBkSEpwWW5WMFpTaGNJbk4wY205clpTMXZjR0ZqYVhSNVhDSXNJR0FrZTI5d1lXTnBkSGw5WUNrN1hHNGdJQ0FnSUNBZ0lHNXZaR1V1YzJWMFFYUjBjbWxpZFhSbEtGd2labWxzYkMxdmNHRmphWFI1WENJc0lHQWtlMjl3WVdOcGRIbDlZQ2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J1YjJSbExuTmxkRUYwZEhKcFluVjBaU2hjYmlBZ0lDQWdJQ0FnWENKMGNtRnVjMlp2Y20xY0lpeGNiaUFnSUNBZ0lDQWdZSFJ5WVc1emJHRjBaU2drZTI5bVpuTmxkRmdnZkh3Z01IMGdKSHRjYmlBZ0lDQWdJQ0FnSUNCdlptWnpaWFJaSUh4OElEQmNiaUFnSUNBZ0lDQWdmU2tnY205MFlYUmxLQ1I3WkdWbmNtVmxmU0FrZTJONGZTQWtlMk41ZlNsZ0xGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lHNXZaR1V1YzJWMFFYUjBjbWxpZFhSbEtGd2ljM1J5YjJ0bFhDSXNJRndpYm05dVpWd2lLVHRjYmlBZ0lDQWdJR052Ym5OMElIQmhkR2dnUFNCemRtZFNiMjkwTG05M2JtVnlSRzlqZFcxbGJuUWhMbU55WldGMFpVVnNaVzFsYm5ST1V5aFRWa2RmVGxNc0lGd2ljR0YwYUZ3aUtUdGNiaUFnSUNBZ0lIQmhkR2d1YzJWMFFYUjBjbWxpZFhSbEtGd2labWxzYkZ3aUxDQmxiR1Z0Wlc1MExuTjBjbTlyWlVOdmJHOXlLVHRjYmlBZ0lDQWdJSEJoZEdndWMyVjBRWFIwY21saWRYUmxLRndpWkZ3aUxDQm5aWFJHY21WbFJISmhkMU4yWjFCaGRHZ29aV3hsYldWdWRDa3BPMXh1SUNBZ0lDQWdibTlrWlM1aGNIQmxibVJEYUdsc1pDaHdZWFJvS1R0Y2JpQWdJQ0FnSUhOMloxSnZiM1F1WVhCd1pXNWtRMmhwYkdRb2JtOWtaU2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCOVhHNGdJQ0FnWTJGelpTQmNJbWx0WVdkbFhDSTZJSHRjYmlBZ0lDQWdJR052Ym5OMElHWnBiR1ZFWVhSaElEMWNiaUFnSUNBZ0lDQWdhWE5KYm1sMGFXRnNhWHBsWkVsdFlXZGxSV3hsYldWdWRDaGxiR1Z0Wlc1MEtTQW1KaUJtYVd4bGMxdGxiR1Z0Wlc1MExtWnBiR1ZKWkYwN1hHNGdJQ0FnSUNCcFppQW9abWxzWlVSaGRHRXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjM2x0WW05c1NXUWdQU0JnYVcxaFoyVXRKSHRtYVd4bFJHRjBZUzVwWkgxZ08xeHVJQ0FnSUNBZ0lDQnNaWFFnYzNsdFltOXNJRDBnYzNablVtOXZkQzV4ZFdWeWVWTmxiR1ZqZEc5eUtHQWpKSHR6ZVcxaWIyeEpaSDFnS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0Z6ZVcxaWIyd3BJSHRjYmlBZ0lDQWdJQ0FnSUNCemVXMWliMndnUFNCemRtZFNiMjkwTG05M2JtVnlSRzlqZFcxbGJuUWhMbU55WldGMFpVVnNaVzFsYm5ST1V5aFRWa2RmVGxNc0lGd2ljM2x0WW05c1hDSXBPMXh1SUNBZ0lDQWdJQ0FnSUhONWJXSnZiQzVwWkNBOUlITjViV0p2YkVsa08xeHVYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdhVzFoWjJVZ1BTQnpkbWRTYjI5MExtOTNibVZ5Ukc5amRXMWxiblFoTG1OeVpXRjBaVVZzWlcxbGJuUk9VeWhUVmtkZlRsTXNJRndpYVcxaFoyVmNJaWs3WEc1Y2JpQWdJQ0FnSUNBZ0lDQnBiV0ZuWlM1elpYUkJkSFJ5YVdKMWRHVW9YQ0ozYVdSMGFGd2lMQ0JjSWpFd01DVmNJaWs3WEc0Z0lDQWdJQ0FnSUNBZ2FXMWhaMlV1YzJWMFFYUjBjbWxpZFhSbEtGd2lhR1ZwWjJoMFhDSXNJRndpTVRBd0pWd2lLVHRjYmlBZ0lDQWdJQ0FnSUNCcGJXRm5aUzV6WlhSQmRIUnlhV0oxZEdVb1hDSm9jbVZtWENJc0lHWnBiR1ZFWVhSaExtUmhkR0ZWVWt3cE8xeHVYRzRnSUNBZ0lDQWdJQ0FnYzNsdFltOXNMbUZ3Y0dWdVpFTm9hV3hrS0dsdFlXZGxLVHRjYmx4dUlDQWdJQ0FnSUNBZ0lITjJaMUp2YjNRdWNISmxjR1Z1WkNoemVXMWliMndwTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2RYTmxJRDBnYzNablVtOXZkQzV2ZDI1bGNrUnZZM1Z0Wlc1MElTNWpjbVZoZEdWRmJHVnRaVzUwVGxNb1UxWkhYMDVUTENCY0luVnpaVndpS1R0Y2JpQWdJQ0FnSUNBZ2RYTmxMbk5sZEVGMGRISnBZblYwWlNoY0ltaHlaV1pjSWl3Z1lDTWtlM041YldKdmJFbGtmV0FwTzF4dVhHNGdJQ0FnSUNBZ0lDOHZJR2x1SUdSaGNtc2dkR2hsYldVc0lISmxkbVZ5ZENCMGFHVWdhVzFoWjJVZ1kyOXNiM0lnWm1sc2RHVnlYRzRnSUNBZ0lDQWdJR2xtSUNobGVIQnZjblJYYVhSb1JHRnlhMDF2WkdVZ0ppWWdabWxzWlVSaGRHRXViV2x0WlZSNWNHVWdJVDA5SUUxSlRVVmZWRmxRUlZNdWMzWm5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RYTmxMbk5sZEVGMGRISnBZblYwWlNoY0ltWnBiSFJsY2x3aUxDQkpUVUZIUlY5SlRsWkZVbFJmUmtsTVZFVlNLVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lIVnpaUzV6WlhSQmRIUnlhV0oxZEdVb1hDSjNhV1IwYUZ3aUxDQmdKSHROWVhSb0xuSnZkVzVrS0dWc1pXMWxiblF1ZDJsa2RHZ3BmV0FwTzF4dUlDQWdJQ0FnSUNCMWMyVXVjMlYwUVhSMGNtbGlkWFJsS0Z3aWFHVnBaMmgwWENJc0lHQWtlMDFoZEdndWNtOTFibVFvWld4bGJXVnVkQzVvWldsbmFIUXBmV0FwTzF4dVhHNGdJQ0FnSUNBZ0lIVnpaUzV6WlhSQmRIUnlhV0oxZEdVb1hHNGdJQ0FnSUNBZ0lDQWdYQ0owY21GdWMyWnZjbTFjSWl4Y2JpQWdJQ0FnSUNBZ0lDQmdkSEpoYm5Oc1lYUmxLQ1I3YjJabWMyVjBXQ0I4ZkNBd2ZTQWtlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2IyWm1jMlYwV1NCOGZDQXdYRzRnSUNBZ0lDQWdJQ0FnZlNrZ2NtOTBZWFJsS0NSN1pHVm5jbVZsZlNBa2UyTjRmU0FrZTJONWZTbGdMRnh1SUNBZ0lDQWdJQ0FwTzF4dVhHNGdJQ0FnSUNBZ0lITjJaMUp2YjNRdVlYQndaVzVrUTJocGJHUW9kWE5sS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lIMWNiaUFnSUNCa1pXWmhkV3gwT2lCN1hHNGdJQ0FnSUNCcFppQW9hWE5VWlhoMFJXeGxiV1Z1ZENobGJHVnRaVzUwS1NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdmNHRmphWFI1SUQwZ1pXeGxiV1Z1ZEM1dmNHRmphWFI1SUM4Z01UQXdPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnViMlJsSUQwZ2MzWm5VbTl2ZEM1dmQyNWxja1J2WTNWdFpXNTBJUzVqY21WaGRHVkZiR1Z0Wlc1MFRsTW9VMVpIWDA1VExDQmNJbWRjSWlrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h2Y0dGamFYUjVJQ0U5UFNBeEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYm05a1pTNXpaWFJCZEhSeWFXSjFkR1VvWENKemRISnZhMlV0YjNCaFkybDBlVndpTENCZ0pIdHZjR0ZqYVhSNWZXQXBPMXh1SUNBZ0lDQWdJQ0FnSUc1dlpHVXVjMlYwUVhSMGNtbGlkWFJsS0Z3aVptbHNiQzF2Y0dGamFYUjVYQ0lzSUdBa2UyOXdZV05wZEhsOVlDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYm05a1pTNXpaWFJCZEhSeWFXSjFkR1VvWEc0Z0lDQWdJQ0FnSUNBZ1hDSjBjbUZ1YzJadmNtMWNJaXhjYmlBZ0lDQWdJQ0FnSUNCZ2RISmhibk5zWVhSbEtDUjdiMlptYzJWMFdDQjhmQ0F3ZlNBa2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYjJabWMyVjBXU0I4ZkNBd1hHNGdJQ0FnSUNBZ0lDQWdmU2tnY205MFlYUmxLQ1I3WkdWbmNtVmxmU0FrZTJONGZTQWtlMk41ZlNsZ0xGeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnNhVzVsY3lBOUlHVnNaVzFsYm5RdWRHVjRkQzV5WlhCc1lXTmxLQzljWEhKY1hHNC9MMmNzSUZ3aVhGeHVYQ0lwTG5Od2JHbDBLRndpWEZ4dVhDSXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnNhVzVsU0dWcFoyaDBJRDBnWld4bGJXVnVkQzVvWldsbmFIUWdMeUJzYVc1bGN5NXNaVzVuZEdnN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhabGNuUnBZMkZzVDJabWMyVjBJRDBnWld4bGJXVnVkQzVvWldsbmFIUWdMU0JsYkdWdFpXNTBMbUpoYzJWc2FXNWxPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQm9iM0pwZW05dWRHRnNUMlptYzJWMElEMWNiaUFnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBMblJsZUhSQmJHbG5iaUE5UFQwZ1hDSmpaVzUwWlhKY0lseHVJQ0FnSUNBZ0lDQWdJQ0FnUHlCbGJHVnRaVzUwTG5kcFpIUm9JQzhnTWx4dUlDQWdJQ0FnSUNBZ0lDQWdPaUJsYkdWdFpXNTBMblJsZUhSQmJHbG5iaUE5UFQwZ1hDSnlhV2RvZEZ3aVhHNGdJQ0FnSUNBZ0lDQWdJQ0EvSUdWc1pXMWxiblF1ZDJsa2RHaGNiaUFnSUNBZ0lDQWdJQ0FnSURvZ01EdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1pHbHlaV04wYVc5dUlEMGdhWE5TVkV3b1pXeGxiV1Z1ZEM1MFpYaDBLU0EvSUZ3aWNuUnNYQ0lnT2lCY0lteDBjbHdpTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IwWlhoMFFXNWphRzl5SUQxY2JpQWdJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MExuUmxlSFJCYkdsbmJpQTlQVDBnWENKalpXNTBaWEpjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdQeUJjSW0xcFpHUnNaVndpWEc0Z0lDQWdJQ0FnSUNBZ0lDQTZJR1ZzWlcxbGJuUXVkR1Y0ZEVGc2FXZHVJRDA5UFNCY0luSnBaMmgwWENJZ2ZId2daR2x5WldOMGFXOXVJRDA5UFNCY0luSjBiRndpWEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JRndpWlc1a1hDSmNiaUFnSUNBZ0lDQWdJQ0FnSURvZ1hDSnpkR0Z5ZEZ3aU8xeHVJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR3hwYm1WekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnZEdWNGRDQTlJSE4yWjFKdmIzUXViM2R1WlhKRWIyTjFiV1Z1ZENFdVkzSmxZWFJsUld4bGJXVnVkRTVUS0ZOV1IxOU9VeXdnWENKMFpYaDBYQ0lwTzF4dUlDQWdJQ0FnSUNBZ0lIUmxlSFF1ZEdWNGRFTnZiblJsYm5RZ1BTQnNhVzVsYzF0cFhUdGNiaUFnSUNBZ0lDQWdJQ0IwWlhoMExuTmxkRUYwZEhKcFluVjBaU2hjSW5oY0lpd2dZQ1I3YUc5eWFYcHZiblJoYkU5bVpuTmxkSDFnS1R0Y2JpQWdJQ0FnSUNBZ0lDQjBaWGgwTG5ObGRFRjBkSEpwWW5WMFpTaGNJbmxjSWl3Z1lDUjdLR2tnS3lBeEtTQXFJR3hwYm1WSVpXbG5hSFFnTFNCMlpYSjBhV05oYkU5bVpuTmxkSDFnS1R0Y2JpQWdJQ0FnSUNBZ0lDQjBaWGgwTG5ObGRFRjBkSEpwWW5WMFpTaGNJbVp2Ym5RdFptRnRhV3g1WENJc0lHZGxkRVp2Ym5SR1lXMXBiSGxUZEhKcGJtY29aV3hsYldWdWRDa3BPMXh1SUNBZ0lDQWdJQ0FnSUhSbGVIUXVjMlYwUVhSMGNtbGlkWFJsS0Z3aVptOXVkQzF6YVhwbFhDSXNJR0FrZTJWc1pXMWxiblF1Wm05dWRGTnBlbVY5Y0hoZ0tUdGNiaUFnSUNBZ0lDQWdJQ0IwWlhoMExuTmxkRUYwZEhKcFluVjBaU2hjSW1acGJHeGNJaXdnWld4bGJXVnVkQzV6ZEhKdmEyVkRiMnh2Y2lrN1hHNGdJQ0FnSUNBZ0lDQWdkR1Y0ZEM1elpYUkJkSFJ5YVdKMWRHVW9YQ0owWlhoMExXRnVZMmh2Y2x3aUxDQjBaWGgwUVc1amFHOXlLVHRjYmlBZ0lDQWdJQ0FnSUNCMFpYaDBMbk5sZEVGMGRISnBZblYwWlNoY0luTjBlV3hsWENJc0lGd2lkMmhwZEdVdGMzQmhZMlU2SUhCeVpUdGNJaWs3WEc0Z0lDQWdJQ0FnSUNBZ2RHVjRkQzV6WlhSQmRIUnlhV0oxZEdVb1hDSmthWEpsWTNScGIyNWNJaXdnWkdseVpXTjBhVzl1S1R0Y2JpQWdJQ0FnSUNBZ0lDQnViMlJsTG1Gd2NHVnVaRU5vYVd4a0tIUmxlSFFwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lITjJaMUp2YjNRdVlYQndaVzVrUTJocGJHUW9ibTlrWlNrN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBdkx5QkFkSE10YVdkdWIzSmxYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdWVzVwYlhCc1pXMWxiblJsWkNCMGVYQmxJQ1I3Wld4bGJXVnVkQzUwZVhCbGZXQXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlZ4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElIQmhkR2h6UTJGamFHVWdQU0J1WlhjZ1YyVmhhMDFoY0R4RmVHTmhiR2xrY21GM1JuSmxaVVJ5WVhkRmJHVnRaVzUwTENCUVlYUm9Na1ErS0Z0ZEtUdGNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2RsYm1WeVlYUmxSbkpsWlVSeVlYZFRhR0Z3WlNobGJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1JuSmxaVVJ5WVhkRmJHVnRaVzUwS1NCN1hHNGdJR052Ym5OMElITjJaMUJoZEdoRVlYUmhJRDBnWjJWMFJuSmxaVVJ5WVhkVGRtZFFZWFJvS0dWc1pXMWxiblFwTzF4dUlDQmpiMjV6ZENCd1lYUm9JRDBnYm1WM0lGQmhkR2d5UkNoemRtZFFZWFJvUkdGMFlTazdYRzRnSUhCaGRHaHpRMkZqYUdVdWMyVjBLR1ZzWlcxbGJuUXNJSEJoZEdncE8xeHVJQ0J5WlhSMWNtNGdjR0YwYUR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2RsZEVaeVpXVkVjbUYzVUdGMGFESkVLR1ZzWlcxbGJuUTZJRVY0WTJGc2FXUnlZWGRHY21WbFJISmhkMFZzWlcxbGJuUXBJSHRjYmlBZ2NtVjBkWEp1SUhCaGRHaHpRMkZqYUdVdVoyVjBLR1ZzWlcxbGJuUXBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBSbkpsWlVSeVlYZFRkbWRRWVhSb0tHVnNaVzFsYm5RNklFVjRZMkZzYVdSeVlYZEdjbVZsUkhKaGQwVnNaVzFsYm5RcElIdGNiaUFnTHk4Z1NXWWdhVzV3ZFhRZ2NHOXBiblJ6SUdGeVpTQmxiWEIwZVNBb2MyaHZkV3hrSUhSb1pYa2daWFpsY2lCaVpUOHBJSEpsZEhWeWJpQmhJR1J2ZEZ4dUlDQmpiMjV6ZENCcGJuQjFkRkJ2YVc1MGN5QTlJR1ZzWlcxbGJuUXVjMmx0ZFd4aGRHVlFjbVZ6YzNWeVpWeHVJQ0FnSUQ4Z1pXeGxiV1Z1ZEM1d2IybHVkSE5jYmlBZ0lDQTZJR1ZzWlcxbGJuUXVjRzlwYm5SekxteGxibWQwYUZ4dUlDQWdJRDhnWld4bGJXVnVkQzV3YjJsdWRITXViV0Z3S0NoYmVDd2dlVjBzSUdrcElEMCtJRnQ0TENCNUxDQmxiR1Z0Wlc1MExuQnlaWE56ZFhKbGMxdHBYVjBwWEc0Z0lDQWdPaUJiV3pBc0lEQXNJREF1TlYxZE8xeHVYRzRnSUM4dklFTnZibk5wWkdWeUlHTm9ZVzVuYVc1bklIUm9aU0J2Y0hScGIyNXpJR1p2Y2lCemFXMTFiR0YwWldRZ2NISmxjM04xY21VZ2RuTWdjbVZoYkNCd2NtVnpjM1Z5WlZ4dUlDQmpiMjV6ZENCdmNIUnBiMjV6T2lCVGRISnZhMlZQY0hScGIyNXpJRDBnZTF4dUlDQWdJSE5wYlhWc1lYUmxVSEpsYzNOMWNtVTZJR1ZzWlcxbGJuUXVjMmx0ZFd4aGRHVlFjbVZ6YzNWeVpTeGNiaUFnSUNCemFYcGxPaUJsYkdWdFpXNTBMbk4wY205clpWZHBaSFJvSUNvZ05DNHlOU3hjYmlBZ0lDQjBhR2x1Ym1sdVp6b2dNQzQyTEZ4dUlDQWdJSE50YjI5MGFHbHVaem9nTUM0MUxGeHVJQ0FnSUhOMGNtVmhiV3hwYm1VNklEQXVOU3hjYmlBZ0lDQmxZWE5wYm1jNklDaDBLU0E5UGlCTllYUm9Mbk5wYmlnb2RDQXFJRTFoZEdndVVFa3BJQzhnTWlrc0lDOHZJR2gwZEhCek9pOHZaV0Z6YVc1bmN5NXVaWFF2STJWaGMyVlBkWFJUYVc1bFhHNGdJQ0FnYkdGemREb2dJU0ZsYkdWdFpXNTBMbXhoYzNSRGIyMXRhWFIwWldSUWIybHVkQ3dnTHk4Z1RHRnpkRU52YlcxcGRIUmxaRkJ2YVc1MElHbHpJR0ZrWkdWa0lHOXVJSEJ2YVc1MFpYSjFjRnh1SUNCOU8xeHVYRzRnSUhKbGRIVnliaUJuWlhSVGRtZFFZWFJvUm5KdmJWTjBjbTlyWlNoblpYUlRkSEp2YTJVb2FXNXdkWFJRYjJsdWRITWdZWE1nYm5WdFltVnlXMTFiWFN3Z2IzQjBhVzl1Y3lrcE8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCdFpXUW9RVG9nYm5WdFltVnlXMTBzSUVJNklHNTFiV0psY2x0ZEtTQjdYRzRnSUhKbGRIVnliaUJiS0VGYk1GMGdLeUJDV3pCZEtTQXZJRElzSUNoQld6RmRJQ3NnUWxzeFhTa2dMeUF5WFR0Y2JuMWNibHh1THk4Z1ZISnBiU0JUVmtjZ2NHRjBhQ0JrWVhSaElITnZJRzUxYldKbGNpQmhjbVVnWldGamFDQjBkMjhnWkdWamFXMWhiQ0J3YjJsdWRITXVJRlJvYVhOY2JpOHZJR2x0Y0hKdmRtVnpJRk5XUnlCbGVIQnZjblJ6TENCaGJtUWdjSEpsZG1WdWRITWdjbVZ1WkdWeWFXNW5JR1Z5Y205eWN5QnZiaUJ3YjJsdWRITmNiaTh2SUhkcGRHZ2diRzl1WnlCa1pXTnBiV0ZzY3k1Y2JtTnZibk4wSUZSUFgwWkpXRVZFWDFCU1JVTkpVMGxQVGlBOUlDOG9YRnh6UDF0QkxWcGRQeXcvTFQ5Yk1DMDVYU3BjWEM1Yk1DMDVYWHN3TERKOUtTZ29XekF0T1YxOFpYd3RLU29wTDJjN1hHNWNibVoxYm1OMGFXOXVJR2RsZEZOMloxQmhkR2hHY205dFUzUnliMnRsS0hCdmFXNTBjem9nYm5WdFltVnlXMTFiWFNrNklITjBjbWx1WnlCN1hHNGdJR2xtSUNnaGNHOXBiblJ6TG14bGJtZDBhQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQmNJbHdpTzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnYldGNElEMGdjRzlwYm5SekxteGxibWQwYUNBdElERTdYRzVjYmlBZ2NtVjBkWEp1SUhCdmFXNTBjMXh1SUNBZ0lDNXlaV1IxWTJVb1hHNGdJQ0FnSUNBb1lXTmpMQ0J3YjJsdWRDd2dhU3dnWVhKeUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBJRDA5UFNCdFlYZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNCaFkyTXVjSFZ6YUNod2IybHVkQ3dnYldWa0tIQnZhVzUwTENCaGNuSmJNRjBwTENCY0lreGNJaXdnWVhKeVd6QmRMQ0JjSWxwY0lpazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnWVdOakxuQjFjMmdvY0c5cGJuUXNJRzFsWkNod2IybHVkQ3dnWVhKeVcya2dLeUF4WFNrcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmhZMk03WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnVzF3aVRWd2lMQ0J3YjJsdWRITmJNRjBzSUZ3aVVWd2lYU3hjYmlBZ0lDQXBYRzRnSUNBZ0xtcHZhVzRvWENJZ1hDSXBYRzRnSUNBZ0xuSmxjR3hoWTJVb1ZFOWZSa2xZUlVSZlVGSkZRMGxUU1U5T0xDQmNJaVF4WENJcE8xeHVmVnh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9yZW5kZXJlci9yZW5kZXJFbGVtZW50LnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9yZW5kZXJlci9yZW5kZXJTY2VuZS50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9yZW5kZXJlci9yZW5kZXJTY2VuZS50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicmVuZGVyU2NlbmVcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZW5kZXJTY2VuZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicmVuZGVyU2NlbmVUb1N2Z1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJlbmRlclNjZW5lVG9TdmcpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIG9wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIG9wZW4tY29sb3IgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9vcGVuLWNvbG9yL29wZW4tY29sb3IuanNvblxcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcm91bmRSZWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3JvdW5kUmVjdCAqLyBcXFwiLi4vLi4vcmVuZGVyZXIvcm91bmRSZWN0LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2VuZV9zY3JvbGxiYXJzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9zY2VuZS9zY3JvbGxiYXJzICovIFxcXCIuLi8uLi9zY2VuZS9zY3JvbGxiYXJzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2VuZV9zZWxlY3Rpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3NjZW5lL3NlbGVjdGlvbiAqLyBcXFwiLi4vLi4vc2NlbmUvc2VsZWN0aW9uLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9yZW5kZXJFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3JlbmRlckVsZW1lbnQgKi8gXFxcIi4uLy4uL3JlbmRlcmVyL3JlbmRlckVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NsaWVudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NsaWVudHMgKi8gXFxcIi4uLy4uL2NsaWVudHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfbGluZWFyRWxlbWVudEVkaXRvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC9saW5lYXJFbGVtZW50RWRpdG9yICovIFxcXCIuLi8uLi9lbGVtZW50L2xpbmVhckVsZW1lbnRFZGl0b3IudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZ3JvdXBzICovIFxcXCIuLi8uLi9ncm91cHMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfY29sbGlzaW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L2NvbGxpc2lvbiAqLyBcXFwiLi4vLi4vZWxlbWVudC9jb2xsaXNpb24udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfYmluZGluZ19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvYmluZGluZyAqLyBcXFwiLi4vLi4vZWxlbWVudC9iaW5kaW5nLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdHlwZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi90eXBlcyAqLyBcXFwiLi4vLi4vdHlwZXMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbnN0YW50cyAqLyBcXFwiLi4vLi4vY29uc3RhbnRzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X0h5cGVybGlua19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvSHlwZXJsaW5rICovIFxcXCIuLi8uLi9lbGVtZW50L0h5cGVybGluay50c3hcXFwiKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5jb25zdCBoYXNFbW9qaVN1cHBvcnQgPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uc3VwcG9ydHNFbW9qaSkoKTtcXG5jb25zdCBzdHJva2VSZWN0V2l0aFJvdGF0aW9uID0gKGNvbnRleHQsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGN4LCBjeSwgYW5nbGUsIGZpbGwgPSBmYWxzZSkgPT4ge1xcbiAgICBjb250ZXh0LnNhdmUoKTtcXG4gICAgY29udGV4dC50cmFuc2xhdGUoY3gsIGN5KTtcXG4gICAgY29udGV4dC5yb3RhdGUoYW5nbGUpO1xcbiAgICBpZiAoZmlsbCkge1xcbiAgICAgICAgY29udGV4dC5maWxsUmVjdCh4IC0gY3gsIHkgLSBjeSwgd2lkdGgsIGhlaWdodCk7XFxuICAgIH1cXG4gICAgY29udGV4dC5zdHJva2VSZWN0KHggLSBjeCwgeSAtIGN5LCB3aWR0aCwgaGVpZ2h0KTtcXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XFxufTtcXG5jb25zdCBzdHJva2VEaWFtb25kV2l0aFJvdGF0aW9uID0gKGNvbnRleHQsIHdpZHRoLCBoZWlnaHQsIGN4LCBjeSwgYW5nbGUpID0+IHtcXG4gICAgY29udGV4dC5zYXZlKCk7XFxuICAgIGNvbnRleHQudHJhbnNsYXRlKGN4LCBjeSk7XFxuICAgIGNvbnRleHQucm90YXRlKGFuZ2xlKTtcXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcXG4gICAgY29udGV4dC5tb3ZlVG8oMCwgaGVpZ2h0IC8gMik7XFxuICAgIGNvbnRleHQubGluZVRvKHdpZHRoIC8gMiwgMCk7XFxuICAgIGNvbnRleHQubGluZVRvKDAsIC1oZWlnaHQgLyAyKTtcXG4gICAgY29udGV4dC5saW5lVG8oLXdpZHRoIC8gMiwgMCk7XFxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XFxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XFxuICAgIGNvbnRleHQucmVzdG9yZSgpO1xcbn07XFxuY29uc3Qgc3Ryb2tlRWxsaXBzZVdpdGhSb3RhdGlvbiA9IChjb250ZXh0LCB3aWR0aCwgaGVpZ2h0LCBjeCwgY3ksIGFuZ2xlKSA9PiB7XFxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XFxuICAgIGNvbnRleHQuZWxsaXBzZShjeCwgY3ksIHdpZHRoIC8gMiwgaGVpZ2h0IC8gMiwgYW5nbGUsIDAsIE1hdGguUEkgKiAyKTtcXG4gICAgY29udGV4dC5zdHJva2UoKTtcXG59O1xcbmNvbnN0IGZpbGxDaXJjbGUgPSAoY29udGV4dCwgY3gsIGN5LCByYWRpdXMpID0+IHtcXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcXG4gICAgY29udGV4dC5hcmMoY3gsIGN5LCByYWRpdXMsIDAsIE1hdGguUEkgKiAyKTtcXG4gICAgY29udGV4dC5maWxsKCk7XFxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XFxufTtcXG5jb25zdCBzdHJva2VHcmlkID0gKGNvbnRleHQsIGdyaWRTaXplLCBvZmZzZXRYLCBvZmZzZXRZLCB3aWR0aCwgaGVpZ2h0KSA9PiB7XFxuICAgIGNvbnRleHQuc2F2ZSgpO1xcbiAgICBjb250ZXh0LnN0cm9rZVN0eWxlID0gXFxcInJnYmEoMCwwLDAsMC4xKVxcXCI7XFxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XFxuICAgIGZvciAobGV0IHggPSBvZmZzZXRYOyB4IDwgb2Zmc2V0WCArIHdpZHRoICsgZ3JpZFNpemUgKiAyOyB4ICs9IGdyaWRTaXplKSB7XFxuICAgICAgICBjb250ZXh0Lm1vdmVUbyh4LCBvZmZzZXRZIC0gZ3JpZFNpemUpO1xcbiAgICAgICAgY29udGV4dC5saW5lVG8oeCwgb2Zmc2V0WSArIGhlaWdodCArIGdyaWRTaXplICogMik7XFxuICAgIH1cXG4gICAgZm9yIChsZXQgeSA9IG9mZnNldFk7IHkgPCBvZmZzZXRZICsgaGVpZ2h0ICsgZ3JpZFNpemUgKiAyOyB5ICs9IGdyaWRTaXplKSB7XFxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhvZmZzZXRYIC0gZ3JpZFNpemUsIHkpO1xcbiAgICAgICAgY29udGV4dC5saW5lVG8ob2Zmc2V0WCArIHdpZHRoICsgZ3JpZFNpemUgKiAyLCB5KTtcXG4gICAgfVxcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcXG59O1xcbmNvbnN0IHJlbmRlckxpbmVhclBvaW50SGFuZGxlcyA9IChjb250ZXh0LCBhcHBTdGF0ZSwgcmVuZGVyQ29uZmlnLCBlbGVtZW50KSA9PiB7XFxuICAgIGNvbnRleHQuc2F2ZSgpO1xcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShyZW5kZXJDb25maWcuc2Nyb2xsWCwgcmVuZGVyQ29uZmlnLnNjcm9sbFkpO1xcbiAgICBjb250ZXh0LmxpbmVXaWR0aCA9IDEgLyByZW5kZXJDb25maWcuem9vbS52YWx1ZTtcXG4gICAgX2VsZW1lbnRfbGluZWFyRWxlbWVudEVkaXRvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLkxpbmVhckVsZW1lbnRFZGl0b3IuZ2V0UG9pbnRzR2xvYmFsQ29vcmRpbmF0ZXMoZWxlbWVudCkuZm9yRWFjaCgocG9pbnQsIGlkeCkgPT4ge1xcbiAgICAgICAgdmFyIF9hLCBfYjtcXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSBcXFwicmVkXFxcIjtcXG4gICAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xcbiAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPVxcbiAgICAgICAgICAgICgoX2IgPSAoX2EgPSBhcHBTdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNlbGVjdGVkUG9pbnRzSW5kaWNlcykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmluY2x1ZGVzKGlkeCkpXFxuICAgICAgICAgICAgICAgID8gXFxcInJnYmEoMjU1LCAxMjcsIDEyNywgMC45KVxcXCJcXG4gICAgICAgICAgICAgICAgOiBcXFwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpXFxcIjtcXG4gICAgICAgIGNvbnN0IHsgUE9JTlRfSEFORExFX1NJWkUgfSA9IF9lbGVtZW50X2xpbmVhckVsZW1lbnRFZGl0b3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5MaW5lYXJFbGVtZW50RWRpdG9yO1xcbiAgICAgICAgZmlsbENpcmNsZShjb250ZXh0LCBwb2ludFswXSwgcG9pbnRbMV0sIFBPSU5UX0hBTkRMRV9TSVpFIC8gMiAvIHJlbmRlckNvbmZpZy56b29tLnZhbHVlKTtcXG4gICAgfSk7XFxuICAgIGNvbnRleHQucmVzdG9yZSgpO1xcbn07XFxuY29uc3QgcmVuZGVyU2NlbmUgPSAoZWxlbWVudHMsIGFwcFN0YXRlLCBzZWxlY3Rpb25FbGVtZW50LCBzY2FsZSwgcmMsIGNhbnZhcywgcmVuZGVyQ29uZmlnKSA9PiB7XFxuICAgIGlmIChjYW52YXMgPT09IG51bGwpIHtcXG4gICAgICAgIHJldHVybiB7IGF0TGVhc3RPbmVWaXNpYmxlRWxlbWVudDogZmFsc2UgfTtcXG4gICAgfVxcbiAgICBjb25zdCB7IHJlbmRlclNjcm9sbGJhcnMgPSB0cnVlLCByZW5kZXJTZWxlY3Rpb24gPSB0cnVlLCByZW5kZXJHcmlkID0gdHJ1ZSwgaXNFeHBvcnRpbmcsIH0gPSByZW5kZXJDb25maWc7XFxuICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dChcXFwiMmRcXFwiKTtcXG4gICAgY29udGV4dC5zZXRUcmFuc2Zvcm0oMSwgMCwgMCwgMSwgMCwgMCk7XFxuICAgIGNvbnRleHQuc2F2ZSgpO1xcbiAgICBjb250ZXh0LnNjYWxlKHNjYWxlLCBzY2FsZSk7XFxuICAgIC8vIFdoZW4gZG9pbmcgY2FsY3VsYXRpb25zIGJhc2VkIG9uIGNhbnZhcyB3aWR0aCB3ZSBzaG91bGQgdXNlZCBub3JtYWxpemVkIG9uZVxcbiAgICBjb25zdCBub3JtYWxpemVkQ2FudmFzV2lkdGggPSBjYW52YXMud2lkdGggLyBzY2FsZTtcXG4gICAgY29uc3Qgbm9ybWFsaXplZENhbnZhc0hlaWdodCA9IGNhbnZhcy5oZWlnaHQgLyBzY2FsZTtcXG4gICAgaWYgKGlzRXhwb3J0aW5nICYmIHJlbmRlckNvbmZpZy50aGVtZSA9PT0gXFxcImRhcmtcXFwiKSB7XFxuICAgICAgICBjb250ZXh0LmZpbHRlciA9IF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18uVEhFTUVfRklMVEVSO1xcbiAgICB9XFxuICAgIC8vIFBhaW50IGJhY2tncm91bmRcXG4gICAgaWYgKHR5cGVvZiByZW5kZXJDb25maWcudmlld0JhY2tncm91bmRDb2xvciA9PT0gXFxcInN0cmluZ1xcXCIpIHtcXG4gICAgICAgIGNvbnN0IGhhc1RyYW5zcGFyZW5jZSA9IHJlbmRlckNvbmZpZy52aWV3QmFja2dyb3VuZENvbG9yID09PSBcXFwidHJhbnNwYXJlbnRcXFwiIHx8XFxuICAgICAgICAgICAgcmVuZGVyQ29uZmlnLnZpZXdCYWNrZ3JvdW5kQ29sb3IubGVuZ3RoID09PSA1IHx8IC8vICNSR0JBXFxuICAgICAgICAgICAgcmVuZGVyQ29uZmlnLnZpZXdCYWNrZ3JvdW5kQ29sb3IubGVuZ3RoID09PSA5IHx8IC8vICNSUkdHQkJBXFxuICAgICAgICAgICAgLyhoc2xhfHJnYmEpXFxcXCgvLnRlc3QocmVuZGVyQ29uZmlnLnZpZXdCYWNrZ3JvdW5kQ29sb3IpO1xcbiAgICAgICAgaWYgKGhhc1RyYW5zcGFyZW5jZSkge1xcbiAgICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG5vcm1hbGl6ZWRDYW52YXNXaWR0aCwgbm9ybWFsaXplZENhbnZhc0hlaWdodCk7XFxuICAgICAgICB9XFxuICAgICAgICBjb250ZXh0LnNhdmUoKTtcXG4gICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gcmVuZGVyQ29uZmlnLnZpZXdCYWNrZ3JvdW5kQ29sb3I7XFxuICAgICAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIG5vcm1hbGl6ZWRDYW52YXNXaWR0aCwgbm9ybWFsaXplZENhbnZhc0hlaWdodCk7XFxuICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTtcXG4gICAgfVxcbiAgICBlbHNlIHtcXG4gICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG5vcm1hbGl6ZWRDYW52YXNXaWR0aCwgbm9ybWFsaXplZENhbnZhc0hlaWdodCk7XFxuICAgIH1cXG4gICAgLy8gQXBwbHkgem9vbVxcbiAgICBjb250ZXh0LnNhdmUoKTtcXG4gICAgY29udGV4dC5zY2FsZShyZW5kZXJDb25maWcuem9vbS52YWx1ZSwgcmVuZGVyQ29uZmlnLnpvb20udmFsdWUpO1xcbiAgICAvLyBHcmlkXFxuICAgIGlmIChyZW5kZXJHcmlkICYmIGFwcFN0YXRlLmdyaWRTaXplKSB7XFxuICAgICAgICBzdHJva2VHcmlkKGNvbnRleHQsIGFwcFN0YXRlLmdyaWRTaXplLCAtTWF0aC5jZWlsKHJlbmRlckNvbmZpZy56b29tLnZhbHVlIC8gYXBwU3RhdGUuZ3JpZFNpemUpICpcXG4gICAgICAgICAgICBhcHBTdGF0ZS5ncmlkU2l6ZSArXFxuICAgICAgICAgICAgKHJlbmRlckNvbmZpZy5zY3JvbGxYICUgYXBwU3RhdGUuZ3JpZFNpemUpLCAtTWF0aC5jZWlsKHJlbmRlckNvbmZpZy56b29tLnZhbHVlIC8gYXBwU3RhdGUuZ3JpZFNpemUpICpcXG4gICAgICAgICAgICBhcHBTdGF0ZS5ncmlkU2l6ZSArXFxuICAgICAgICAgICAgKHJlbmRlckNvbmZpZy5zY3JvbGxZICUgYXBwU3RhdGUuZ3JpZFNpemUpLCBub3JtYWxpemVkQ2FudmFzV2lkdGggLyByZW5kZXJDb25maWcuem9vbS52YWx1ZSwgbm9ybWFsaXplZENhbnZhc0hlaWdodCAvIHJlbmRlckNvbmZpZy56b29tLnZhbHVlKTtcXG4gICAgfVxcbiAgICAvLyBQYWludCB2aXNpYmxlIGVsZW1lbnRzXFxuICAgIGNvbnN0IHZpc2libGVFbGVtZW50cyA9IGVsZW1lbnRzLmZpbHRlcigoZWxlbWVudCkgPT4gaXNWaXNpYmxlRWxlbWVudChlbGVtZW50LCBub3JtYWxpemVkQ2FudmFzV2lkdGgsIG5vcm1hbGl6ZWRDYW52YXNIZWlnaHQsIHtcXG4gICAgICAgIHpvb206IHJlbmRlckNvbmZpZy56b29tLFxcbiAgICAgICAgb2Zmc2V0TGVmdDogYXBwU3RhdGUub2Zmc2V0TGVmdCxcXG4gICAgICAgIG9mZnNldFRvcDogYXBwU3RhdGUub2Zmc2V0VG9wLFxcbiAgICAgICAgc2Nyb2xsWDogcmVuZGVyQ29uZmlnLnNjcm9sbFgsXFxuICAgICAgICBzY3JvbGxZOiByZW5kZXJDb25maWcuc2Nyb2xsWSxcXG4gICAgfSkpO1xcbiAgICB2aXNpYmxlRWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAoMCxfcmVuZGVyRWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnJlbmRlckVsZW1lbnQpKGVsZW1lbnQsIHJjLCBjb250ZXh0LCByZW5kZXJDb25maWcpO1xcbiAgICAgICAgICAgIGlmICghaXNFeHBvcnRpbmcpIHtcXG4gICAgICAgICAgICAgICAgcmVuZGVyTGlua0ljb24oZWxlbWVudCwgY29udGV4dCwgYXBwU3RhdGUpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xcbiAgICAgICAgfVxcbiAgICB9KTtcXG4gICAgaWYgKGFwcFN0YXRlLmVkaXRpbmdMaW5lYXJFbGVtZW50KSB7XFxuICAgICAgICBjb25zdCBlbGVtZW50ID0gX2VsZW1lbnRfbGluZWFyRWxlbWVudEVkaXRvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLkxpbmVhckVsZW1lbnRFZGl0b3IuZ2V0RWxlbWVudChhcHBTdGF0ZS5lZGl0aW5nTGluZWFyRWxlbWVudC5lbGVtZW50SWQpO1xcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcXG4gICAgICAgICAgICByZW5kZXJMaW5lYXJQb2ludEhhbmRsZXMoY29udGV4dCwgYXBwU3RhdGUsIHJlbmRlckNvbmZpZywgZWxlbWVudCk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgLy8gUGFpbnQgc2VsZWN0aW9uIGVsZW1lbnRcXG4gICAgaWYgKHNlbGVjdGlvbkVsZW1lbnQpIHtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgKDAsX3JlbmRlckVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5yZW5kZXJFbGVtZW50KShzZWxlY3Rpb25FbGVtZW50LCByYywgY29udGV4dCwgcmVuZGVyQ29uZmlnKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIGlmICgoMCxfZWxlbWVudF9iaW5kaW5nX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLmlzQmluZGluZ0VuYWJsZWQpKGFwcFN0YXRlKSkge1xcbiAgICAgICAgYXBwU3RhdGUuc3VnZ2VzdGVkQmluZGluZ3NcXG4gICAgICAgICAgICAuZmlsdGVyKChiaW5kaW5nKSA9PiBiaW5kaW5nICE9IG51bGwpXFxuICAgICAgICAgICAgLmZvckVhY2goKHN1Z2dlc3RlZEJpbmRpbmcpID0+IHtcXG4gICAgICAgICAgICByZW5kZXJCaW5kaW5nSGlnaGxpZ2h0KGNvbnRleHQsIHJlbmRlckNvbmZpZywgc3VnZ2VzdGVkQmluZGluZyk7XFxuICAgICAgICB9KTtcXG4gICAgfVxcbiAgICAvLyBQYWludCBzZWxlY3RlZCBlbGVtZW50c1xcbiAgICBpZiAocmVuZGVyU2VsZWN0aW9uICYmXFxuICAgICAgICAhYXBwU3RhdGUubXVsdGlFbGVtZW50ICYmXFxuICAgICAgICAhYXBwU3RhdGUuZWRpdGluZ0xpbmVhckVsZW1lbnQpIHtcXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbnMgPSBlbGVtZW50cy5yZWR1Y2UoKGFjYywgZWxlbWVudCkgPT4ge1xcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbkNvbG9ycyA9IFtdO1xcbiAgICAgICAgICAgIC8vIGxvY2FsIHVzZXJcXG4gICAgICAgICAgICBpZiAoYXBwU3RhdGUuc2VsZWN0ZWRFbGVtZW50SWRzW2VsZW1lbnQuaWRdICYmXFxuICAgICAgICAgICAgICAgICEoMCxfZ3JvdXBzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uaXNTZWxlY3RlZFZpYUdyb3VwKShhcHBTdGF0ZSwgZWxlbWVudCkpIHtcXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uQ29sb3JzLnB1c2gob3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmJsYWNrKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgLy8gcmVtb3RlIHVzZXJzXFxuICAgICAgICAgICAgaWYgKHJlbmRlckNvbmZpZy5yZW1vdGVTZWxlY3RlZEVsZW1lbnRJZHNbZWxlbWVudC5pZF0pIHtcXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uQ29sb3JzLnB1c2goLi4ucmVuZGVyQ29uZmlnLnJlbW90ZVNlbGVjdGVkRWxlbWVudElkc1tlbGVtZW50LmlkXS5tYXAoKHNvY2tldElkKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGJhY2tncm91bmQgfSA9ICgwLF9jbGllbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uZ2V0Q2xpZW50Q29sb3JzKShzb2NrZXRJZCwgYXBwU3RhdGUpO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhY2tncm91bmQ7XFxuICAgICAgICAgICAgICAgIH0pKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNvbG9ycy5sZW5ndGgpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgW2VsZW1lbnRYMSwgZWxlbWVudFkxLCBlbGVtZW50WDIsIGVsZW1lbnRZMl0gPSAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmdldEVsZW1lbnRBYnNvbHV0ZUNvb3JkcykoZWxlbWVudCk7XFxuICAgICAgICAgICAgICAgIGFjYy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIGFuZ2xlOiBlbGVtZW50LmFuZ2xlLFxcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFgxLFxcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFkxLFxcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFgyLFxcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFkyLFxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uQ29sb3JzLFxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIGFjYztcXG4gICAgICAgIH0sIFtdKTtcXG4gICAgICAgIGNvbnN0IGFkZFNlbGVjdGlvbkZvckdyb3VwSWQgPSAoZ3JvdXBJZCkgPT4ge1xcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwRWxlbWVudHMgPSAoMCxfZ3JvdXBzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uZ2V0RWxlbWVudHNJbkdyb3VwKShlbGVtZW50cywgZ3JvdXBJZCk7XFxuICAgICAgICAgICAgY29uc3QgW2VsZW1lbnRYMSwgZWxlbWVudFkxLCBlbGVtZW50WDIsIGVsZW1lbnRZMl0gPSAoMCxfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmdldENvbW1vbkJvdW5kcykoZ3JvdXBFbGVtZW50cyk7XFxuICAgICAgICAgICAgc2VsZWN0aW9ucy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgYW5nbGU6IDAsXFxuICAgICAgICAgICAgICAgIGVsZW1lbnRYMSxcXG4gICAgICAgICAgICAgICAgZWxlbWVudFgyLFxcbiAgICAgICAgICAgICAgICBlbGVtZW50WTEsXFxuICAgICAgICAgICAgICAgIGVsZW1lbnRZMixcXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uQ29sb3JzOiBbb3Blbl9jb2xvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmJsYWNrXSxcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH07XFxuICAgICAgICBmb3IgKGNvbnN0IGdyb3VwSWQgb2YgKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLmdldFNlbGVjdGVkR3JvdXBJZHMpKGFwcFN0YXRlKSkge1xcbiAgICAgICAgICAgIC8vIFRPRE86IHN1cHBvcnQgbXVsdGlwbGF5ZXIgc2VsZWN0ZWQgZ3JvdXAgSURzXFxuICAgICAgICAgICAgYWRkU2VsZWN0aW9uRm9yR3JvdXBJZChncm91cElkKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChhcHBTdGF0ZS5lZGl0aW5nR3JvdXBJZCkge1xcbiAgICAgICAgICAgIGFkZFNlbGVjdGlvbkZvckdyb3VwSWQoYXBwU3RhdGUuZWRpdGluZ0dyb3VwSWQpO1xcbiAgICAgICAgfVxcbiAgICAgICAgc2VsZWN0aW9ucy5mb3JFYWNoKChzZWxlY3Rpb24pID0+IHJlbmRlclNlbGVjdGlvbkJvcmRlcihjb250ZXh0LCByZW5kZXJDb25maWcsIHNlbGVjdGlvbikpO1xcbiAgICAgICAgY29uc3QgbG9jYWxseVNlbGVjdGVkRWxlbWVudHMgPSAoMCxfc2NlbmVfc2VsZWN0aW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uZ2V0U2VsZWN0ZWRFbGVtZW50cykoZWxlbWVudHMsIGFwcFN0YXRlKTtcXG4gICAgICAgIC8vIFBhaW50IHJlc2l6ZSB0cmFuc2Zvcm1IYW5kbGVzXFxuICAgICAgICBjb250ZXh0LnNhdmUoKTtcXG4gICAgICAgIGNvbnRleHQudHJhbnNsYXRlKHJlbmRlckNvbmZpZy5zY3JvbGxYLCByZW5kZXJDb25maWcuc2Nyb2xsWSk7XFxuICAgICAgICBpZiAobG9jYWxseVNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxKSB7XFxuICAgICAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPSBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ud2hpdGU7XFxuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtSGFuZGxlcyA9ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0VHJhbnNmb3JtSGFuZGxlcykobG9jYWxseVNlbGVjdGVkRWxlbWVudHNbMF0sIHJlbmRlckNvbmZpZy56b29tLCBcXFwibW91c2VcXFwiKTtcXG4gICAgICAgICAgICBpZiAoIWFwcFN0YXRlLnZpZXdNb2RlRW5hYmxlZCkge1xcbiAgICAgICAgICAgICAgICByZW5kZXJUcmFuc2Zvcm1IYW5kbGVzKGNvbnRleHQsIHJlbmRlckNvbmZpZywgdHJhbnNmb3JtSGFuZGxlcywgbG9jYWxseVNlbGVjdGVkRWxlbWVudHNbMF0uYW5nbGUpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKGxvY2FsbHlTZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA+IDEgJiYgIWFwcFN0YXRlLmlzUm90YXRpbmcpIHtcXG4gICAgICAgICAgICBjb25zdCBkYXNoZWRMaW5lUGFkZGluZyA9IDQgLyByZW5kZXJDb25maWcuem9vbS52YWx1ZTtcXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9IG9wZW5fY29sb3JfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy53aGl0ZTtcXG4gICAgICAgICAgICBjb25zdCBbeDEsIHkxLCB4MiwgeTJdID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRDb21tb25Cb3VuZHMpKGxvY2FsbHlTZWxlY3RlZEVsZW1lbnRzKTtcXG4gICAgICAgICAgICBjb25zdCBpbml0aWFsTGluZURhc2ggPSBjb250ZXh0LmdldExpbmVEYXNoKCk7XFxuICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbMiAvIHJlbmRlckNvbmZpZy56b29tLnZhbHVlXSk7XFxuICAgICAgICAgICAgY29uc3QgbGluZVdpZHRoID0gY29udGV4dC5saW5lV2lkdGg7XFxuICAgICAgICAgICAgY29udGV4dC5saW5lV2lkdGggPSAxIC8gcmVuZGVyQ29uZmlnLnpvb20udmFsdWU7XFxuICAgICAgICAgICAgc3Ryb2tlUmVjdFdpdGhSb3RhdGlvbihjb250ZXh0LCB4MSAtIGRhc2hlZExpbmVQYWRkaW5nLCB5MSAtIGRhc2hlZExpbmVQYWRkaW5nLCB4MiAtIHgxICsgZGFzaGVkTGluZVBhZGRpbmcgKiAyLCB5MiAtIHkxICsgZGFzaGVkTGluZVBhZGRpbmcgKiAyLCAoeDEgKyB4MikgLyAyLCAoeTEgKyB5MikgLyAyLCAwKTtcXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVXaWR0aCA9IGxpbmVXaWR0aDtcXG4gICAgICAgICAgICBjb250ZXh0LnNldExpbmVEYXNoKGluaXRpYWxMaW5lRGFzaCk7XFxuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtSGFuZGxlcyA9ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0VHJhbnNmb3JtSGFuZGxlc0Zyb21Db29yZHMpKFt4MSwgeTEsIHgyLCB5Ml0sIDAsIHJlbmRlckNvbmZpZy56b29tLCBcXFwibW91c2VcXFwiLCBfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLk9NSVRfU0lERVNfRk9SX01VTFRJUExFX0VMRU1FTlRTKTtcXG4gICAgICAgICAgICByZW5kZXJUcmFuc2Zvcm1IYW5kbGVzKGNvbnRleHQsIHJlbmRlckNvbmZpZywgdHJhbnNmb3JtSGFuZGxlcywgMCk7XFxuICAgICAgICB9XFxuICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTtcXG4gICAgfVxcbiAgICAvLyBSZXNldCB6b29tXFxuICAgIGNvbnRleHQucmVzdG9yZSgpO1xcbiAgICAvLyBQYWludCByZW1vdGUgcG9pbnRlcnNcXG4gICAgZm9yIChjb25zdCBjbGllbnRJZCBpbiByZW5kZXJDb25maWcucmVtb3RlUG9pbnRlclZpZXdwb3J0Q29vcmRzKSB7XFxuICAgICAgICBsZXQgeyB4LCB5IH0gPSByZW5kZXJDb25maWcucmVtb3RlUG9pbnRlclZpZXdwb3J0Q29vcmRzW2NsaWVudElkXTtcXG4gICAgICAgIHggLT0gYXBwU3RhdGUub2Zmc2V0TGVmdDtcXG4gICAgICAgIHkgLT0gYXBwU3RhdGUub2Zmc2V0VG9wO1xcbiAgICAgICAgY29uc3Qgd2lkdGggPSA5O1xcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gMTQ7XFxuICAgICAgICBjb25zdCBpc091dE9mQm91bmRzID0geCA8IDAgfHxcXG4gICAgICAgICAgICB4ID4gbm9ybWFsaXplZENhbnZhc1dpZHRoIC0gd2lkdGggfHxcXG4gICAgICAgICAgICB5IDwgMCB8fFxcbiAgICAgICAgICAgIHkgPiBub3JtYWxpemVkQ2FudmFzSGVpZ2h0IC0gaGVpZ2h0O1xcbiAgICAgICAgeCA9IE1hdGgubWF4KHgsIDApO1xcbiAgICAgICAgeCA9IE1hdGgubWluKHgsIG5vcm1hbGl6ZWRDYW52YXNXaWR0aCAtIHdpZHRoKTtcXG4gICAgICAgIHkgPSBNYXRoLm1heCh5LCAwKTtcXG4gICAgICAgIHkgPSBNYXRoLm1pbih5LCBub3JtYWxpemVkQ2FudmFzSGVpZ2h0IC0gaGVpZ2h0KTtcXG4gICAgICAgIGNvbnN0IHsgYmFja2dyb3VuZCwgc3Ryb2tlIH0gPSAoMCxfY2xpZW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmdldENsaWVudENvbG9ycykoY2xpZW50SWQsIGFwcFN0YXRlKTtcXG4gICAgICAgIGNvbnRleHQuc2F2ZSgpO1xcbiAgICAgICAgY29udGV4dC5zdHJva2VTdHlsZSA9IHN0cm9rZTtcXG4gICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gYmFja2dyb3VuZDtcXG4gICAgICAgIGNvbnN0IHVzZXJTdGF0ZSA9IHJlbmRlckNvbmZpZy5yZW1vdGVQb2ludGVyVXNlclN0YXRlc1tjbGllbnRJZF07XFxuICAgICAgICBpZiAoaXNPdXRPZkJvdW5kcyB8fCB1c2VyU3RhdGUgPT09IF90eXBlc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5Vc2VySWRsZVN0YXRlLkFXQVkpIHtcXG4gICAgICAgICAgICBjb250ZXh0Lmdsb2JhbEFscGhhID0gMC40ODtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChyZW5kZXJDb25maWcucmVtb3RlUG9pbnRlckJ1dHRvbiAmJlxcbiAgICAgICAgICAgIHJlbmRlckNvbmZpZy5yZW1vdGVQb2ludGVyQnV0dG9uW2NsaWVudElkXSA9PT0gXFxcImRvd25cXFwiKSB7XFxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcXG4gICAgICAgICAgICBjb250ZXh0LmFyYyh4LCB5LCAxNSwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVXaWR0aCA9IDM7XFxuICAgICAgICAgICAgY29udGV4dC5zdHJva2VTdHlsZSA9IFxcXCIjZmZmZmZmODhcXFwiO1xcbiAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XFxuICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xcbiAgICAgICAgICAgIGNvbnRleHQuYXJjKHgsIHksIDE1LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xcbiAgICAgICAgICAgIGNvbnRleHQubGluZVdpZHRoID0gMTtcXG4gICAgICAgICAgICBjb250ZXh0LnN0cm9rZVN0eWxlID0gc3Ryb2tlO1xcbiAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XFxuICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XFxuICAgICAgICBjb250ZXh0Lm1vdmVUbyh4LCB5KTtcXG4gICAgICAgIGNvbnRleHQubGluZVRvKHggKyAxLCB5ICsgMTQpO1xcbiAgICAgICAgY29udGV4dC5saW5lVG8oeCArIDQsIHkgKyA5KTtcXG4gICAgICAgIGNvbnRleHQubGluZVRvKHggKyA5LCB5ICsgMTApO1xcbiAgICAgICAgY29udGV4dC5saW5lVG8oeCwgeSk7XFxuICAgICAgICBjb250ZXh0LmZpbGwoKTtcXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XFxuICAgICAgICBjb25zdCB1c2VybmFtZSA9IHJlbmRlckNvbmZpZy5yZW1vdGVQb2ludGVyVXNlcm5hbWVzW2NsaWVudElkXTtcXG4gICAgICAgIGxldCBpZGxlU3RhdGUgPSBcXFwiXFxcIjtcXG4gICAgICAgIGlmICh1c2VyU3RhdGUgPT09IF90eXBlc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5Vc2VySWRsZVN0YXRlLkFXQVkpIHtcXG4gICAgICAgICAgICBpZGxlU3RhdGUgPSBoYXNFbW9qaVN1cHBvcnQgPyBcXFwiXHUyNkFCXHVGRTBGXFxcIiA6IGAgKCR7X3R5cGVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fLlVzZXJJZGxlU3RhdGUuQVdBWX0pYDtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKHVzZXJTdGF0ZSA9PT0gX3R5cGVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fLlVzZXJJZGxlU3RhdGUuSURMRSkge1xcbiAgICAgICAgICAgIGlkbGVTdGF0ZSA9IGhhc0Vtb2ppU3VwcG9ydCA/IFxcXCJcdUQ4M0RcdURDQTRcXFwiIDogYCAoJHtfdHlwZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uVXNlcklkbGVTdGF0ZS5JRExFfSlgO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSBpZiAodXNlclN0YXRlID09PSBfdHlwZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uVXNlcklkbGVTdGF0ZS5BQ1RJVkUpIHtcXG4gICAgICAgICAgICBpZGxlU3RhdGUgPSBoYXNFbW9qaVN1cHBvcnQgPyBcXFwiXHVEODNEXHVERkUyXFxcIiA6IFxcXCJcXFwiO1xcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3QgdXNlcm5hbWVBbmRJZGxlU3RhdGUgPSBgJHt1c2VybmFtZSA/IGAke3VzZXJuYW1lfSBgIDogXFxcIlxcXCJ9JHtpZGxlU3RhdGV9YDtcXG4gICAgICAgIGlmICghaXNPdXRPZkJvdW5kcyAmJiB1c2VybmFtZUFuZElkbGVTdGF0ZSkge1xcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldFggPSB4ICsgd2lkdGg7XFxuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0WSA9IHkgKyBoZWlnaHQ7XFxuICAgICAgICAgICAgY29uc3QgcGFkZGluZ0hvcml6b250YWwgPSA0O1xcbiAgICAgICAgICAgIGNvbnN0IHBhZGRpbmdWZXJ0aWNhbCA9IDQ7XFxuICAgICAgICAgICAgY29uc3QgbWVhc3VyZSA9IGNvbnRleHQubWVhc3VyZVRleHQodXNlcm5hbWVBbmRJZGxlU3RhdGUpO1xcbiAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVIZWlnaHQgPSBtZWFzdXJlLmFjdHVhbEJvdW5kaW5nQm94RGVzY2VudCArIG1lYXN1cmUuYWN0dWFsQm91bmRpbmdCb3hBc2NlbnQ7XFxuICAgICAgICAgICAgLy8gQm9yZGVyXFxuICAgICAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPSBzdHJva2U7XFxuICAgICAgICAgICAgY29udGV4dC5maWxsUmVjdChvZmZzZXRYIC0gMSwgb2Zmc2V0WSAtIDEsIG1lYXN1cmUud2lkdGggKyAyICogcGFkZGluZ0hvcml6b250YWwgKyAyLCBtZWFzdXJlSGVpZ2h0ICsgMiAqIHBhZGRpbmdWZXJ0aWNhbCArIDIpO1xcbiAgICAgICAgICAgIC8vIEJhY2tncm91bmRcXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9IGJhY2tncm91bmQ7XFxuICAgICAgICAgICAgY29udGV4dC5maWxsUmVjdChvZmZzZXRYLCBvZmZzZXRZLCBtZWFzdXJlLndpZHRoICsgMiAqIHBhZGRpbmdIb3Jpem9udGFsLCBtZWFzdXJlSGVpZ2h0ICsgMiAqIHBhZGRpbmdWZXJ0aWNhbCk7XFxuICAgICAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPSBvcGVuX2NvbG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ud2hpdGU7XFxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dCh1c2VybmFtZUFuZElkbGVTdGF0ZSwgb2Zmc2V0WCArIHBhZGRpbmdIb3Jpem9udGFsLCBvZmZzZXRZICsgcGFkZGluZ1ZlcnRpY2FsICsgbWVhc3VyZS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudCk7XFxuICAgICAgICB9XFxuICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTtcXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XFxuICAgIH1cXG4gICAgLy8gUGFpbnQgc2Nyb2xsYmFyc1xcbiAgICBsZXQgc2Nyb2xsQmFycztcXG4gICAgaWYgKHJlbmRlclNjcm9sbGJhcnMpIHtcXG4gICAgICAgIHNjcm9sbEJhcnMgPSAoMCxfc2NlbmVfc2Nyb2xsYmFyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmdldFNjcm9sbEJhcnMpKGVsZW1lbnRzLCBub3JtYWxpemVkQ2FudmFzV2lkdGgsIG5vcm1hbGl6ZWRDYW52YXNIZWlnaHQsIHJlbmRlckNvbmZpZyk7XFxuICAgICAgICBjb250ZXh0LnNhdmUoKTtcXG4gICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gX3NjZW5lX3Njcm9sbGJhcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5TQ1JPTExCQVJfQ09MT1I7XFxuICAgICAgICBjb250ZXh0LnN0cm9rZVN0eWxlID0gXFxcInJnYmEoMjU1LDI1NSwyNTUsMC44KVxcXCI7XFxuICAgICAgICBbc2Nyb2xsQmFycy5ob3Jpem9udGFsLCBzY3JvbGxCYXJzLnZlcnRpY2FsXS5mb3JFYWNoKChzY3JvbGxCYXIpID0+IHtcXG4gICAgICAgICAgICBpZiAoc2Nyb2xsQmFyKSB7XFxuICAgICAgICAgICAgICAgICgwLF9yb3VuZFJlY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5yb3VuZFJlY3QpKGNvbnRleHQsIHNjcm9sbEJhci54LCBzY3JvbGxCYXIueSwgc2Nyb2xsQmFyLndpZHRoLCBzY3JvbGxCYXIuaGVpZ2h0LCBfc2NlbmVfc2Nyb2xsYmFyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLlNDUk9MTEJBUl9XSURUSCAvIDIpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcbiAgICAgICAgY29udGV4dC5yZXN0b3JlKCk7XFxuICAgIH1cXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XFxuICAgIHJldHVybiB7IGF0TGVhc3RPbmVWaXNpYmxlRWxlbWVudDogdmlzaWJsZUVsZW1lbnRzLmxlbmd0aCA+IDAsIHNjcm9sbEJhcnMgfTtcXG59O1xcbmNvbnN0IHJlbmRlclRyYW5zZm9ybUhhbmRsZXMgPSAoY29udGV4dCwgcmVuZGVyQ29uZmlnLCB0cmFuc2Zvcm1IYW5kbGVzLCBhbmdsZSkgPT4ge1xcbiAgICBPYmplY3Qua2V5cyh0cmFuc2Zvcm1IYW5kbGVzKS5mb3JFYWNoKChrZXkpID0+IHtcXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybUhhbmRsZSA9IHRyYW5zZm9ybUhhbmRsZXNba2V5XTtcXG4gICAgICAgIGlmICh0cmFuc2Zvcm1IYW5kbGUgIT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgIGNvbnRleHQuc2F2ZSgpO1xcbiAgICAgICAgICAgIGNvbnRleHQubGluZVdpZHRoID0gMSAvIHJlbmRlckNvbmZpZy56b29tLnZhbHVlO1xcbiAgICAgICAgICAgIGlmIChrZXkgPT09IFxcXCJyb3RhdGlvblxcXCIpIHtcXG4gICAgICAgICAgICAgICAgZmlsbENpcmNsZShjb250ZXh0LCB0cmFuc2Zvcm1IYW5kbGVbMF0gKyB0cmFuc2Zvcm1IYW5kbGVbMl0gLyAyLCB0cmFuc2Zvcm1IYW5kbGVbMV0gKyB0cmFuc2Zvcm1IYW5kbGVbM10gLyAyLCB0cmFuc2Zvcm1IYW5kbGVbMl0gLyAyKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgICAgIHN0cm9rZVJlY3RXaXRoUm90YXRpb24oY29udGV4dCwgdHJhbnNmb3JtSGFuZGxlWzBdLCB0cmFuc2Zvcm1IYW5kbGVbMV0sIHRyYW5zZm9ybUhhbmRsZVsyXSwgdHJhbnNmb3JtSGFuZGxlWzNdLCB0cmFuc2Zvcm1IYW5kbGVbMF0gKyB0cmFuc2Zvcm1IYW5kbGVbMl0gLyAyLCB0cmFuc2Zvcm1IYW5kbGVbMV0gKyB0cmFuc2Zvcm1IYW5kbGVbM10gLyAyLCBhbmdsZSwgdHJ1ZSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xcbiAgICAgICAgfVxcbiAgICB9KTtcXG59O1xcbmNvbnN0IHJlbmRlclNlbGVjdGlvbkJvcmRlciA9IChjb250ZXh0LCByZW5kZXJDb25maWcsIGVsZW1lbnRQcm9wZXJ0aWVzKSA9PiB7XFxuICAgIGNvbnN0IHsgYW5nbGUsIGVsZW1lbnRYMSwgZWxlbWVudFkxLCBlbGVtZW50WDIsIGVsZW1lbnRZMiwgc2VsZWN0aW9uQ29sb3JzIH0gPSBlbGVtZW50UHJvcGVydGllcztcXG4gICAgY29uc3QgZWxlbWVudFdpZHRoID0gZWxlbWVudFgyIC0gZWxlbWVudFgxO1xcbiAgICBjb25zdCBlbGVtZW50SGVpZ2h0ID0gZWxlbWVudFkyIC0gZWxlbWVudFkxO1xcbiAgICBjb25zdCBkYXNoZWRMaW5lUGFkZGluZyA9IDQgLyByZW5kZXJDb25maWcuem9vbS52YWx1ZTtcXG4gICAgY29uc3QgZGFzaFdpZHRoID0gOCAvIHJlbmRlckNvbmZpZy56b29tLnZhbHVlO1xcbiAgICBjb25zdCBzcGFjZVdpZHRoID0gNCAvIHJlbmRlckNvbmZpZy56b29tLnZhbHVlO1xcbiAgICBjb250ZXh0LnNhdmUoKTtcXG4gICAgY29udGV4dC50cmFuc2xhdGUocmVuZGVyQ29uZmlnLnNjcm9sbFgsIHJlbmRlckNvbmZpZy5zY3JvbGxZKTtcXG4gICAgY29udGV4dC5saW5lV2lkdGggPSAxIC8gcmVuZGVyQ29uZmlnLnpvb20udmFsdWU7XFxuICAgIGNvbnN0IGNvdW50ID0gc2VsZWN0aW9uQ29sb3JzLmxlbmd0aDtcXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7XFxuICAgICAgICBjb250ZXh0LnN0cm9rZVN0eWxlID0gc2VsZWN0aW9uQ29sb3JzW2luZGV4XTtcXG4gICAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW1xcbiAgICAgICAgICAgIGRhc2hXaWR0aCxcXG4gICAgICAgICAgICBzcGFjZVdpZHRoICsgKGRhc2hXaWR0aCArIHNwYWNlV2lkdGgpICogKGNvdW50IC0gMSksXFxuICAgICAgICBdKTtcXG4gICAgICAgIGNvbnRleHQubGluZURhc2hPZmZzZXQgPSAoZGFzaFdpZHRoICsgc3BhY2VXaWR0aCkgKiBpbmRleDtcXG4gICAgICAgIHN0cm9rZVJlY3RXaXRoUm90YXRpb24oY29udGV4dCwgZWxlbWVudFgxIC0gZGFzaGVkTGluZVBhZGRpbmcsIGVsZW1lbnRZMSAtIGRhc2hlZExpbmVQYWRkaW5nLCBlbGVtZW50V2lkdGggKyBkYXNoZWRMaW5lUGFkZGluZyAqIDIsIGVsZW1lbnRIZWlnaHQgKyBkYXNoZWRMaW5lUGFkZGluZyAqIDIsIGVsZW1lbnRYMSArIGVsZW1lbnRXaWR0aCAvIDIsIGVsZW1lbnRZMSArIGVsZW1lbnRIZWlnaHQgLyAyLCBhbmdsZSk7XFxuICAgIH1cXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XFxufTtcXG5jb25zdCByZW5kZXJCaW5kaW5nSGlnaGxpZ2h0ID0gKGNvbnRleHQsIHJlbmRlckNvbmZpZywgc3VnZ2VzdGVkQmluZGluZykgPT4ge1xcbiAgICBjb25zdCByZW5kZXJIaWdobGlnaHQgPSBBcnJheS5pc0FycmF5KHN1Z2dlc3RlZEJpbmRpbmcpXFxuICAgICAgICA/IHJlbmRlckJpbmRpbmdIaWdobGlnaHRGb3JTdWdnZXN0ZWRQb2ludEJpbmRpbmdcXG4gICAgICAgIDogcmVuZGVyQmluZGluZ0hpZ2hsaWdodEZvckJpbmRhYmxlRWxlbWVudDtcXG4gICAgY29udGV4dC5zYXZlKCk7XFxuICAgIGNvbnRleHQudHJhbnNsYXRlKHJlbmRlckNvbmZpZy5zY3JvbGxYLCByZW5kZXJDb25maWcuc2Nyb2xsWSk7XFxuICAgIHJlbmRlckhpZ2hsaWdodChjb250ZXh0LCBzdWdnZXN0ZWRCaW5kaW5nKTtcXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XFxufTtcXG5jb25zdCByZW5kZXJCaW5kaW5nSGlnaGxpZ2h0Rm9yQmluZGFibGVFbGVtZW50ID0gKGNvbnRleHQsIGVsZW1lbnQpID0+IHtcXG4gICAgY29uc3QgW3gxLCB5MSwgeDIsIHkyXSA9ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzKShlbGVtZW50KTtcXG4gICAgY29uc3Qgd2lkdGggPSB4MiAtIHgxO1xcbiAgICBjb25zdCBoZWlnaHQgPSB5MiAtIHkxO1xcbiAgICBjb25zdCB0aHJlc2hvbGQgPSAoMCxfZWxlbWVudF9jb2xsaXNpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5tYXhCaW5kaW5nR2FwKShlbGVtZW50LCB3aWR0aCwgaGVpZ2h0KTtcXG4gICAgLy8gU28gdGhhdCB3ZSBkb24ndCBvdmVybGFwIHRoZSBlbGVtZW50IGl0c2VsZlxcbiAgICBjb25zdCBzdHJva2VPZmZzZXQgPSA0O1xcbiAgICBjb250ZXh0LnN0cm9rZVN0eWxlID0gXFxcInJnYmEoMCwwLDAsLjA1KVxcXCI7XFxuICAgIGNvbnRleHQubGluZVdpZHRoID0gdGhyZXNob2xkIC0gc3Ryb2tlT2Zmc2V0O1xcbiAgICBjb25zdCBwYWRkaW5nID0gc3Ryb2tlT2Zmc2V0IC8gMiArIHRocmVzaG9sZCAvIDI7XFxuICAgIHN3aXRjaCAoZWxlbWVudC50eXBlKSB7XFxuICAgICAgICBjYXNlIFxcXCJyZWN0YW5nbGVcXFwiOlxcbiAgICAgICAgY2FzZSBcXFwidGV4dFxcXCI6XFxuICAgICAgICBjYXNlIFxcXCJpbWFnZVxcXCI6XFxuICAgICAgICAgICAgc3Ryb2tlUmVjdFdpdGhSb3RhdGlvbihjb250ZXh0LCB4MSAtIHBhZGRpbmcsIHkxIC0gcGFkZGluZywgd2lkdGggKyBwYWRkaW5nICogMiwgaGVpZ2h0ICsgcGFkZGluZyAqIDIsIHgxICsgd2lkdGggLyAyLCB5MSArIGhlaWdodCAvIDIsIGVsZW1lbnQuYW5nbGUpO1xcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgY2FzZSBcXFwiZGlhbW9uZFxcXCI6XFxuICAgICAgICAgICAgY29uc3Qgc2lkZSA9IE1hdGguaHlwb3Qod2lkdGgsIGhlaWdodCk7XFxuICAgICAgICAgICAgY29uc3Qgd1BhZGRpbmcgPSAocGFkZGluZyAqIHNpZGUpIC8gaGVpZ2h0O1xcbiAgICAgICAgICAgIGNvbnN0IGhQYWRkaW5nID0gKHBhZGRpbmcgKiBzaWRlKSAvIHdpZHRoO1xcbiAgICAgICAgICAgIHN0cm9rZURpYW1vbmRXaXRoUm90YXRpb24oY29udGV4dCwgd2lkdGggKyB3UGFkZGluZyAqIDIsIGhlaWdodCArIGhQYWRkaW5nICogMiwgeDEgKyB3aWR0aCAvIDIsIHkxICsgaGVpZ2h0IC8gMiwgZWxlbWVudC5hbmdsZSk7XFxuICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICBjYXNlIFxcXCJlbGxpcHNlXFxcIjpcXG4gICAgICAgICAgICBzdHJva2VFbGxpcHNlV2l0aFJvdGF0aW9uKGNvbnRleHQsIHdpZHRoICsgcGFkZGluZyAqIDIsIGhlaWdodCArIHBhZGRpbmcgKiAyLCB4MSArIHdpZHRoIC8gMiwgeTEgKyBoZWlnaHQgLyAyLCBlbGVtZW50LmFuZ2xlKTtcXG4gICAgICAgICAgICBicmVhaztcXG4gICAgfVxcbn07XFxuY29uc3QgcmVuZGVyQmluZGluZ0hpZ2hsaWdodEZvclN1Z2dlc3RlZFBvaW50QmluZGluZyA9IChjb250ZXh0LCBzdWdnZXN0ZWRCaW5kaW5nKSA9PiB7XFxuICAgIGNvbnN0IFtlbGVtZW50LCBzdGFydE9yRW5kLCBiaW5kYWJsZUVsZW1lbnRdID0gc3VnZ2VzdGVkQmluZGluZztcXG4gICAgY29uc3QgdGhyZXNob2xkID0gKDAsX2VsZW1lbnRfY29sbGlzaW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18ubWF4QmluZGluZ0dhcCkoYmluZGFibGVFbGVtZW50LCBiaW5kYWJsZUVsZW1lbnQud2lkdGgsIGJpbmRhYmxlRWxlbWVudC5oZWlnaHQpO1xcbiAgICBjb250ZXh0LnN0cm9rZVN0eWxlID0gXFxcInJnYmEoMCwwLDAsMClcXFwiO1xcbiAgICBjb250ZXh0LmZpbGxTdHlsZSA9IFxcXCJyZ2JhKDAsMCwwLC4wNSlcXFwiO1xcbiAgICBjb25zdCBwb2ludEluZGljZXMgPSBzdGFydE9yRW5kID09PSBcXFwiYm90aFxcXCIgPyBbMCwgLTFdIDogc3RhcnRPckVuZCA9PT0gXFxcInN0YXJ0XFxcIiA/IFswXSA6IFstMV07XFxuICAgIHBvaW50SW5kaWNlcy5mb3JFYWNoKChpbmRleCkgPT4ge1xcbiAgICAgICAgY29uc3QgW3gsIHldID0gX2VsZW1lbnRfbGluZWFyRWxlbWVudEVkaXRvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLkxpbmVhckVsZW1lbnRFZGl0b3IuZ2V0UG9pbnRBdEluZGV4R2xvYmFsQ29vcmRpbmF0ZXMoZWxlbWVudCwgaW5kZXgpO1xcbiAgICAgICAgZmlsbENpcmNsZShjb250ZXh0LCB4LCB5LCB0aHJlc2hvbGQpO1xcbiAgICB9KTtcXG59O1xcbmxldCBsaW5rQ2FudmFzQ2FjaGU7XFxuY29uc3QgcmVuZGVyTGlua0ljb24gPSAoZWxlbWVudCwgY29udGV4dCwgYXBwU3RhdGUpID0+IHtcXG4gICAgaWYgKGVsZW1lbnQubGluayAmJiAhYXBwU3RhdGUuc2VsZWN0ZWRFbGVtZW50SWRzW2VsZW1lbnQuaWRdKSB7XFxuICAgICAgICBjb25zdCBbeDEsIHkxLCB4MiwgeTJdID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRFbGVtZW50QWJzb2x1dGVDb29yZHMpKGVsZW1lbnQpO1xcbiAgICAgICAgY29uc3QgW3gsIHksIHdpZHRoLCBoZWlnaHRdID0gKDAsX2VsZW1lbnRfSHlwZXJsaW5rX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLmdldExpbmtIYW5kbGVGcm9tQ29vcmRzKShbeDEsIHkxLCB4MiwgeTJdLCBlbGVtZW50LmFuZ2xlLCBhcHBTdGF0ZSk7XFxuICAgICAgICBjb25zdCBjZW50ZXJYID0geCArIHdpZHRoIC8gMjtcXG4gICAgICAgIGNvbnN0IGNlbnRlclkgPSB5ICsgaGVpZ2h0IC8gMjtcXG4gICAgICAgIGNvbnRleHQuc2F2ZSgpO1xcbiAgICAgICAgY29udGV4dC50cmFuc2xhdGUoYXBwU3RhdGUuc2Nyb2xsWCArIGNlbnRlclgsIGFwcFN0YXRlLnNjcm9sbFkgKyBjZW50ZXJZKTtcXG4gICAgICAgIGNvbnRleHQucm90YXRlKGVsZW1lbnQuYW5nbGUpO1xcbiAgICAgICAgaWYgKCFsaW5rQ2FudmFzQ2FjaGUgfHwgbGlua0NhbnZhc0NhY2hlLnpvb20gIT09IGFwcFN0YXRlLnpvb20udmFsdWUpIHtcXG4gICAgICAgICAgICBsaW5rQ2FudmFzQ2FjaGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFxcXCJjYW52YXNcXFwiKTtcXG4gICAgICAgICAgICBsaW5rQ2FudmFzQ2FjaGUuem9vbSA9IGFwcFN0YXRlLnpvb20udmFsdWU7XFxuICAgICAgICAgICAgbGlua0NhbnZhc0NhY2hlLndpZHRoID1cXG4gICAgICAgICAgICAgICAgd2lkdGggKiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyAqIGFwcFN0YXRlLnpvb20udmFsdWU7XFxuICAgICAgICAgICAgbGlua0NhbnZhc0NhY2hlLmhlaWdodCA9XFxuICAgICAgICAgICAgICAgIGhlaWdodCAqIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvICogYXBwU3RhdGUuem9vbS52YWx1ZTtcXG4gICAgICAgICAgICBjb25zdCBsaW5rQ2FudmFzQ2FjaGVDb250ZXh0ID0gbGlua0NhbnZhc0NhY2hlLmdldENvbnRleHQoXFxcIjJkXFxcIik7XFxuICAgICAgICAgICAgbGlua0NhbnZhc0NhY2hlQ29udGV4dC5zY2FsZSh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyAqIGFwcFN0YXRlLnpvb20udmFsdWUsIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvICogYXBwU3RhdGUuem9vbS52YWx1ZSk7XFxuICAgICAgICAgICAgbGlua0NhbnZhc0NhY2hlQ29udGV4dC5maWxsU3R5bGUgPSBcXFwiI2ZmZlxcXCI7XFxuICAgICAgICAgICAgbGlua0NhbnZhc0NhY2hlQ29udGV4dC5maWxsUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcXG4gICAgICAgICAgICBsaW5rQ2FudmFzQ2FjaGVDb250ZXh0LmRyYXdJbWFnZShfZWxlbWVudF9IeXBlcmxpbmtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18uRVhURVJOQUxfTElOS19JTUcsIDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xcbiAgICAgICAgICAgIGxpbmtDYW52YXNDYWNoZUNvbnRleHQucmVzdG9yZSgpO1xcbiAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGxpbmtDYW52YXNDYWNoZSwgeCAtIGNlbnRlclgsIHkgLSBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0KTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGxpbmtDYW52YXNDYWNoZSwgeCAtIGNlbnRlclgsIHkgLSBjZW50ZXJZLCB3aWR0aCwgaGVpZ2h0KTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xcbiAgICB9XFxufTtcXG5jb25zdCBpc1Zpc2libGVFbGVtZW50ID0gKGVsZW1lbnQsIGNhbnZhc1dpZHRoLCBjYW52YXNIZWlnaHQsIHZpZXdUcmFuc2Zvcm1hdGlvbnMpID0+IHtcXG4gICAgY29uc3QgW3gxLCB5MSwgeDIsIHkyXSA9ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0RWxlbWVudEJvdW5kcykoZWxlbWVudCk7IC8vIHNjZW5lIGNvb3JkaW5hdGVzXFxuICAgIGNvbnN0IHRvcExlZnRTY2VuZUNvb3JkcyA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy52aWV3cG9ydENvb3Jkc1RvU2NlbmVDb29yZHMpKHtcXG4gICAgICAgIGNsaWVudFg6IHZpZXdUcmFuc2Zvcm1hdGlvbnMub2Zmc2V0TGVmdCxcXG4gICAgICAgIGNsaWVudFk6IHZpZXdUcmFuc2Zvcm1hdGlvbnMub2Zmc2V0VG9wLFxcbiAgICB9LCB2aWV3VHJhbnNmb3JtYXRpb25zKTtcXG4gICAgY29uc3QgYm90dG9tUmlnaHRTY2VuZUNvb3JkcyA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy52aWV3cG9ydENvb3Jkc1RvU2NlbmVDb29yZHMpKHtcXG4gICAgICAgIGNsaWVudFg6IHZpZXdUcmFuc2Zvcm1hdGlvbnMub2Zmc2V0TGVmdCArIGNhbnZhc1dpZHRoLFxcbiAgICAgICAgY2xpZW50WTogdmlld1RyYW5zZm9ybWF0aW9ucy5vZmZzZXRUb3AgKyBjYW52YXNIZWlnaHQsXFxuICAgIH0sIHZpZXdUcmFuc2Zvcm1hdGlvbnMpO1xcbiAgICByZXR1cm4gKHRvcExlZnRTY2VuZUNvb3Jkcy54IDw9IHgyICYmXFxuICAgICAgICB0b3BMZWZ0U2NlbmVDb29yZHMueSA8PSB5MiAmJlxcbiAgICAgICAgYm90dG9tUmlnaHRTY2VuZUNvb3Jkcy54ID49IHgxICYmXFxuICAgICAgICBib3R0b21SaWdodFNjZW5lQ29vcmRzLnkgPj0geTEpO1xcbn07XFxuLy8gVGhpcyBzaG91bGQgYmUgb25seSBjYWxsZWQgZm9yIGV4cG9ydGluZyBwdXJwb3Nlc1xcbmNvbnN0IHJlbmRlclNjZW5lVG9TdmcgPSAoZWxlbWVudHMsIHJzdmcsIHN2Z1Jvb3QsIGZpbGVzLCB7IG9mZnNldFggPSAwLCBvZmZzZXRZID0gMCwgZXhwb3J0V2l0aERhcmtNb2RlID0gZmFsc2UsIH0gPSB7fSkgPT4ge1xcbiAgICBpZiAoIXN2Z1Jvb3QpIHtcXG4gICAgICAgIHJldHVybjtcXG4gICAgfVxcbiAgICAvLyByZW5kZXIgZWxlbWVudHNcXG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xcbiAgICAgICAgaWYgKCFlbGVtZW50LmlzRGVsZXRlZCkge1xcbiAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICgwLF9yZW5kZXJFbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18ucmVuZGVyRWxlbWVudFRvU3ZnKShlbGVtZW50LCByc3ZnLCBzdmdSb290LCBmaWxlcywgZWxlbWVudC54ICsgb2Zmc2V0WCwgZWxlbWVudC55ICsgb2Zmc2V0WSwgZXhwb3J0V2l0aERhcmtNb2RlKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XFxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgfSk7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dmNtVnVaR1Z5WlhJdmNtVnVaR1Z5VTJObGJtVXVkSE11YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPenM3UVVGRk5FSTdRVUZyUWxJN1FVRkZiMEk3UVVGTldEdEJRVU0wUWp0QlFVVlhPMEZCUTNaQ08wRkJRM2RDTzBGQlMyeEVPMEZCUTJ0RE8wRkJTM3BDTzBGQlN6QkRPMEZCUXpkQ08wRkJRMGM3UVVGSlpEdEJRVVU1UWl4TlFVRk5MR1ZCUVdVc1IwRkJSeXh6UkVGQllTeEZRVUZGTEVOQlFVTTdRVUZGZUVNc1RVRkJUU3h6UWtGQmMwSXNSMEZCUnl4RFFVTTNRaXhQUVVGcFF5eEZRVU5xUXl4RFFVRlRMRVZCUTFRc1EwRkJVeXhGUVVOVUxFdEJRV0VzUlVGRFlpeE5RVUZqTEVWQlEyUXNSVUZCVlN4RlFVTldMRVZCUVZVc1JVRkRWaXhMUVVGaExFVkJRMklzVDBGQlowSXNTMEZCU3l4RlFVTnlRaXhGUVVGRk8wbEJRMFlzVDBGQlR5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMGxCUTJZc1QwRkJUeXhEUVVGRExGTkJRVk1zUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRNVUlzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVOMFFpeEpRVUZKTEVsQlFVa3NSVUZCUlR0UlFVTlNMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0TFFVTnFSRHRKUVVORUxFOUJRVThzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVVOc1JDeFBRVUZQTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1FVRkRjRUlzUTBGQlF5eERRVUZETzBGQlJVWXNUVUZCVFN4NVFrRkJlVUlzUjBGQlJ5eERRVU5vUXl4UFFVRnBReXhGUVVOcVF5eExRVUZoTEVWQlEySXNUVUZCWXl4RlFVTmtMRVZCUVZVc1JVRkRWaXhGUVVGVkxFVkJRMVlzUzBGQllTeEZRVU5pTEVWQlFVVTdTVUZEUml4UFFVRlBMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03U1VGRFppeFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEpRVU14UWl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlEzUkNMRTlCUVU4c1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dEpRVU53UWl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGQlJTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRPVUlzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6ZENMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJReTlDTEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhMUVVGTExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUXpsQ0xFOUJRVThzUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0SlFVTndRaXhQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdTVUZEYWtJc1QwRkJUeXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzBGQlEzQkNMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzZVVKQlFYbENMRWRCUVVjc1EwRkRhRU1zVDBGQmFVTXNSVUZEYWtNc1MwRkJZU3hGUVVOaUxFMUJRV01zUlVGRFpDeEZRVUZWTEVWQlExWXNSVUZCVlN4RlFVTldMRXRCUVdFc1JVRkRZaXhGUVVGRk8wbEJRMFlzVDBGQlR5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMGxCUTNCQ0xFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hMUVVGTExFZEJRVWNzUTBGQlF5eEZRVUZGTEUxQlFVMHNSMEZCUnl4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM1JGTEU5QlFVOHNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRCUVVOdVFpeERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MRlZCUVZVc1IwRkJSeXhEUVVOcVFpeFBRVUZwUXl4RlFVTnFReXhGUVVGVkxFVkJRMVlzUlVGQlZTeEZRVU5XTEUxQlFXTXNSVUZEWkN4RlFVRkZPMGxCUTBZc1QwRkJUeXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzBsQlEzQkNMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkROVU1zVDBGQlR5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMGxCUTJZc1QwRkJUeXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzBGQlEyNUNMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzVlVGQlZTeEhRVUZITEVOQlEycENMRTlCUVdsRExFVkJRMnBETEZGQlFXZENMRVZCUTJoQ0xFOUJRV1VzUlVGRFppeFBRVUZsTEVWQlEyWXNTMEZCWVN4RlFVTmlMRTFCUVdNc1JVRkRaQ3hGUVVGRk8wbEJRMFlzVDBGQlR5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMGxCUTJZc1QwRkJUeXhEUVVGRExGZEJRVmNzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJRenRKUVVONFF5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkRjRUlzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4UFFVRlBMRVZCUVVVc1EwRkJReXhIUVVGSExFOUJRVThzUjBGQlJ5eExRVUZMTEVkQlFVY3NVVUZCVVN4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzVVVGQlVTeEZRVUZGTzFGQlEzWkZMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEU5QlFVOHNSMEZCUnl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVOMFF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkJSU3hQUVVGUExFZEJRVWNzVFVGQlRTeEhRVUZITEZGQlFWRXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOd1JEdEpRVU5FTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1QwRkJUeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFBRVUZQTEVkQlFVY3NUVUZCVFN4SFFVRkhMRkZCUVZFc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEZGQlFWRXNSVUZCUlR0UlFVTjRSU3hQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVOHNSMEZCUnl4UlFVRlJMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGRFTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhQUVVGUExFZEJRVWNzUzBGQlN5eEhRVUZITEZGQlFWRXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03UzBGRGJrUTdTVUZEUkN4UFFVRlBMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03U1VGRGFrSXNUMEZCVHl4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wRkJRM0JDTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc2QwSkJRWGRDTEVkQlFVY3NRMEZETDBJc1QwRkJhVU1zUlVGRGFrTXNVVUZCYTBJc1JVRkRiRUlzV1VGQk1FSXNSVUZETVVJc1QwRkJORU1zUlVGRE5VTXNSVUZCUlR0SlFVTkdMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dEpRVU5tTEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1dVRkJXU3hEUVVGRExFOUJRVThzUlVGQlJTeFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRPVVFzVDBGQlR5eERRVUZETEZOQlFWTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTTdTVUZGYUVRc2QwZEJRVGhETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVNM1JDeERRVUZETEV0QlFVc3NSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHM3VVVGRFlpeFBRVUZQTEVOQlFVTXNWMEZCVnl4SFFVRkhMRXRCUVVzc1EwRkJRenRSUVVNMVFpeFBRVUZQTEVOQlFVTXNWMEZCVnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM2hDTEU5QlFVOHNRMEZCUXl4VFFVRlRPMWxCUTJZc2NVSkJRVkVzUTBGQlF5eHZRa0ZCYjBJc01FTkJRVVVzY1VKQlFYRkNMREJEUVVGRkxGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTTdaMEpCUTJwRkxFTkJRVU1zUTBGQlF5d3dRa0ZCTUVJN1owSkJRelZDTEVOQlFVTXNRMEZCUXl3d1FrRkJNRUlzUTBGQlF6dFJRVU5xUXl4TlFVRk5MRVZCUVVVc2FVSkJRV2xDTEVWQlFVVXNSMEZCUnl3MlJVRkJiVUlzUTBGQlF6dFJRVU5zUkN4VlFVRlZMRU5CUTFJc1QwRkJUeXhGUVVOUUxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZEVWl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRMUlzYVVKQlFXbENMRWRCUVVjc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVTm9SQ3hEUVVGRE8wbEJRMG9zUTBGQlF5eERRVU5HTEVOQlFVTTdTVUZEUml4UFFVRlBMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRGNFSXNRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3hYUVVGWExFZEJRVWNzUTBGRGVrSXNVVUZCWjBRc1JVRkRhRVFzVVVGQmEwSXNSVUZEYkVJc1owSkJRVzlFTEVWQlEzQkVMRXRCUVdFc1JVRkRZaXhGUVVGbExFVkJRMllzVFVGQmVVSXNSVUZEZWtJc1dVRkJNRUlzUlVGRk1VSXNSVUZCUlR0SlFVTkdMRWxCUVVrc1RVRkJUU3hMUVVGTExFbEJRVWtzUlVGQlJUdFJRVU51UWl4UFFVRlBMRVZCUVVVc2QwSkJRWGRDTEVWQlFVVXNTMEZCU3l4RlFVRkZMRU5CUVVNN1MwRkROVU03U1VGRlJDeE5RVUZOTEVWQlEwb3NaMEpCUVdkQ0xFZEJRVWNzU1VGQlNTeEZRVU4yUWl4bFFVRmxMRWRCUVVjc1NVRkJTU3hGUVVOMFFpeFZRVUZWTEVkQlFVY3NTVUZCU1N4RlFVTnFRaXhYUVVGWExFZEJRMW9zUjBGQlJ5eFpRVUZaTEVOQlFVTTdTVUZGYWtJc1RVRkJUU3hQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVVc1EwRkJRenRKUVVWNlF5eFBRVUZQTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGRrTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8wbEJRMllzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRk5VSXNPRVZCUVRoRk8wbEJRemxGTEUxQlFVMHNjVUpCUVhGQ0xFZEJRVWNzVFVGQlRTeERRVUZETEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNN1NVRkRia1FzVFVGQlRTeHpRa0ZCYzBJc1IwRkJSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEV0QlFVc3NRMEZCUXp0SlFVVnlSQ3hKUVVGSkxGZEJRVmNzU1VGQlNTeFpRVUZaTEVOQlFVTXNTMEZCU3l4TFFVRkxMRTFCUVUwc1JVRkJSVHRSUVVOb1JDeFBRVUZQTEVOQlFVTXNUVUZCVFN4SFFVRkhMSEZFUVVGWkxFTkJRVU03UzBGREwwSTdTVUZGUkN4dFFrRkJiVUk3U1VGRGJrSXNTVUZCU1N4UFFVRlBMRmxCUVZrc1EwRkJReXh0UWtGQmJVSXNTMEZCU3l4UlFVRlJMRVZCUVVVN1VVRkRlRVFzVFVGQlRTeGxRVUZsTEVkQlEyNUNMRmxCUVZrc1EwRkJReXh0UWtGQmJVSXNTMEZCU3l4aFFVRmhPMWxCUTJ4RUxGbEJRVmtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF5eEpRVUZKTEZGQlFWRTdXVUZEZWtRc1dVRkJXU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFbEJRVWtzVjBGQlZ6dFpRVU0xUkN4bFFVRmxMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRE8xRkJRM3BFTEVsQlFVa3NaVUZCWlN4RlFVRkZPMWxCUTI1Q0xFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3h4UWtGQmNVSXNSVUZCUlN4elFrRkJjMElzUTBGQlF5eERRVUZETzFOQlEzaEZPMUZCUTBRc1QwRkJUeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFGQlEyWXNUMEZCVHl4RFFVRkRMRk5CUVZNc1IwRkJSeXhaUVVGWkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNN1VVRkRja1FzVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxIRkNRVUZ4UWl4RlFVRkZMSE5DUVVGelFpeERRVUZETEVOQlFVTTdVVUZEZEVVc1QwRkJUeXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzB0QlEyNUNPMU5CUVUwN1VVRkRUQ3hQUVVGUExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc2NVSkJRWEZDTEVWQlFVVXNjMEpCUVhOQ0xFTkJRVU1zUTBGQlF6dExRVU40UlR0SlFVVkVMR0ZCUVdFN1NVRkRZaXhQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdTVUZEWml4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdTVUZGYUVVc1QwRkJUenRKUVVOUUxFbEJRVWtzVlVGQlZTeEpRVUZKTEZGQlFWRXNRMEZCUXl4UlFVRlJMRVZCUVVVN1VVRkRia01zVlVGQlZTeERRVU5TTEU5QlFVOHNSVUZEVUN4UlFVRlJMRU5CUVVNc1VVRkJVU3hGUVVOcVFpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NVVUZCVVN4RFFVRkRMRkZCUVZFc1EwRkJRenRaUVVOeVJDeFJRVUZSTEVOQlFVTXNVVUZCVVR0WlFVTnFRaXhEUVVGRExGbEJRVmtzUTBGQlF5eFBRVUZQTEVkQlFVY3NVVUZCVVN4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVNMVF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NVVUZCVVN4RFFVRkRMRkZCUVZFc1EwRkJRenRaUVVOeVJDeFJRVUZSTEVOQlFVTXNVVUZCVVR0WlFVTnFRaXhEUVVGRExGbEJRVmtzUTBGQlF5eFBRVUZQTEVkQlFVY3NVVUZCVVN4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVNMVF5eHhRa0ZCY1VJc1IwRkJSeXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NSVUZETDBNc2MwSkJRWE5DTEVkQlFVY3NXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRMnBFTEVOQlFVTTdTMEZEU0R0SlFVVkVMSGxDUVVGNVFqdEpRVU42UWl4TlFVRk5MR1ZCUVdVc1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkRiRVFzWjBKQlFXZENMRU5CUVVNc1QwRkJUeXhGUVVGRkxIRkNRVUZ4UWl4RlFVRkZMSE5DUVVGelFpeEZRVUZGTzFGQlEzWkZMRWxCUVVrc1JVRkJSU3haUVVGWkxFTkJRVU1zU1VGQlNUdFJRVU4yUWl4VlFVRlZMRVZCUVVVc1VVRkJVU3hEUVVGRExGVkJRVlU3VVVGREwwSXNVMEZCVXl4RlFVRkZMRkZCUVZFc1EwRkJReXhUUVVGVE8xRkJRemRDTEU5QlFVOHNSVUZCUlN4WlFVRlpMRU5CUVVNc1QwRkJUenRSUVVNM1FpeFBRVUZQTEVWQlFVVXNXVUZCV1N4RFFVRkRMRTlCUVU4N1MwRkRPVUlzUTBGQlF5eERRVU5JTEVOQlFVTTdTVUZGUml4bFFVRmxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVTdVVUZEYkVNc1NVRkJTVHRaUVVOR0xEWkVRVUZoTEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1JVRkJSU3hQUVVGUExFVkJRVVVzV1VGQldTeERRVUZETEVOQlFVTTdXVUZEYkVRc1NVRkJTU3hEUVVGRExGZEJRVmNzUlVGQlJUdG5Ra0ZEYUVJc1kwRkJZeXhEUVVGRExFOUJRVThzUlVGQlJTeFBRVUZQTEVWQlFVVXNVVUZCVVN4RFFVRkRMRU5CUVVNN1lVRkROVU03VTBGRFJqdFJRVUZETEU5QlFVOHNTMEZCVlN4RlFVRkZPMWxCUTI1Q0xFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1UwRkRkRUk3U1VGRFNDeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVklMRWxCUVVrc1VVRkJVU3hEUVVGRExHOUNRVUZ2UWl4RlFVRkZPMUZCUTJwRExFMUJRVTBzVDBGQlR5eEhRVUZITEhkR1FVRTRRaXhEUVVNMVF5eFJRVUZSTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zVTBGQlV5eERRVU40UXl4RFFVRkRPMUZCUTBZc1NVRkJTU3hQUVVGUExFVkJRVVU3V1VGRFdDeDNRa0ZCZDBJc1EwRkJReXhQUVVGUExFVkJRVVVzVVVGQlVTeEZRVUZGTEZsQlFWa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRUUVVOd1JUdExRVU5HTzBsQlJVUXNNRUpCUVRCQ08wbEJRekZDTEVsQlFVa3NaMEpCUVdkQ0xFVkJRVVU3VVVGRGNFSXNTVUZCU1R0WlFVTkdMRFpFUVVGaExFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1JVRkJSU3hGUVVGRkxFOUJRVThzUlVGQlJTeFpRVUZaTEVOQlFVTXNRMEZCUXp0VFFVTTFSRHRSUVVGRExFOUJRVThzUzBGQlZTeEZRVUZGTzFsQlEyNUNMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVMEZEZEVJN1MwRkRSanRKUVVWRUxFbEJRVWtzYlVWQlFXZENMRU5CUVVNc1VVRkJVU3hEUVVGRExFVkJRVVU3VVVGRE9VSXNVVUZCVVN4RFFVRkRMR2xDUVVGcFFqdGhRVU4yUWl4TlFVRk5MRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeERRVUZETEU5QlFVOHNTVUZCU1N4SlFVRkpMRU5CUVVNN1lVRkRjRU1zVDBGQlR5eERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzUlVGQlJUdFpRVU0xUWl4elFrRkJjMElzUTBGQlF5eFBRVUZQTEVWQlFVVXNXVUZCV1N4RlFVRkZMR2RDUVVGcFFpeERRVUZETEVOQlFVTTdVVUZEYmtVc1EwRkJReXhEUVVGRExFTkJRVU03UzBGRFRqdEpRVVZFTERCQ1FVRXdRanRKUVVNeFFpeEpRVU5GTEdWQlFXVTdVVUZEWml4RFFVRkRMRkZCUVZFc1EwRkJReXhaUVVGWk8xRkJRM1JDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRzlDUVVGdlFpeEZRVU01UWp0UlFVTkJMRTFCUVUwc1ZVRkJWU3hIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFVkJRVVU3V1VGRGJFUXNUVUZCVFN4bFFVRmxMRWRCUVVjc1JVRkJSU3hEUVVGRE8xbEJRek5DTEdGQlFXRTdXVUZEWWl4SlFVTkZMRkZCUVZFc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRE8yZENRVU4yUXl4RFFVRkRMREpFUVVGclFpeERRVUZETEZGQlFWRXNSVUZCUlN4UFFVRlBMRU5CUVVNc1JVRkRkRU03WjBKQlEwRXNaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJReXcyUTBGQlVTeERRVUZETEVOQlFVTTdZVUZEYUVNN1dVRkRSQ3hsUVVGbE8xbEJRMllzU1VGQlNTeFpRVUZaTEVOQlFVTXNkMEpCUVhkQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZPMmRDUVVOeVJDeGxRVUZsTEVOQlFVTXNTVUZCU1N4RFFVTnNRaXhIUVVGSExGbEJRVmtzUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVTjBSQ3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTzI5Q1FVTllMRTFCUVUwc1JVRkJSU3hWUVVGVkxFVkJRVVVzUjBGQlJ5eDVSRUZCWlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dHZRa0ZETTBRc1QwRkJUeXhWUVVGVkxFTkJRVU03WjBKQlEzQkNMRU5CUVVNc1EwRkRSaXhEUVVOR0xFTkJRVU03WVVGRFNEdFpRVU5FTEVsQlFVa3NaVUZCWlN4RFFVRkRMRTFCUVUwc1JVRkJSVHRuUWtGRE1VSXNUVUZCVFN4RFFVRkRMRk5CUVZNc1JVRkJSU3hUUVVGVExFVkJRVVVzVTBGQlV5eEZRVUZGTEZOQlFWTXNRMEZCUXl4SFFVTm9SQ3hyUlVGQmQwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRuUWtGRGNFTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJRenR2UWtGRFVDeExRVUZMTEVWQlFVVXNUMEZCVHl4RFFVRkRMRXRCUVVzN2IwSkJRM0JDTEZOQlFWTTdiMEpCUTFRc1UwRkJVenR2UWtGRFZDeFRRVUZUTzI5Q1FVTlVMRk5CUVZNN2IwSkJRMVFzWlVGQlpUdHBRa0ZEYUVJc1EwRkJReXhEUVVGRE8yRkJRMG83V1VGRFJDeFBRVUZQTEVkQlFVY3NRMEZCUXp0UlFVTmlMRU5CUVVNc1JVRkJSU3hGUVVGblNTeERRVUZETEVOQlFVTTdVVUZGY2trc1RVRkJUU3h6UWtGQmMwSXNSMEZCUnl4RFFVRkRMRTlCUVdkQ0xFVkJRVVVzUlVGQlJUdFpRVU5zUkN4TlFVRk5MR0ZCUVdFc1IwRkJSeXd5UkVGQmEwSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRE5VUXNUVUZCVFN4RFFVRkRMRk5CUVZNc1JVRkJSU3hUUVVGVExFVkJRVVVzVTBGQlV5eEZRVUZGTEZOQlFWTXNRMEZCUXl4SFFVTm9SQ3g1UkVGQlpTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRPMWxCUTJwRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTTdaMEpCUTJRc1MwRkJTeXhGUVVGRkxFTkJRVU03WjBKQlExSXNVMEZCVXp0blFrRkRWQ3hUUVVGVE8yZENRVU5VTEZOQlFWTTdaMEpCUTFRc1UwRkJVenRuUWtGRFZDeGxRVUZsTEVWQlFVVXNRMEZCUXl3MlEwRkJVU3hEUVVGRE8yRkJRelZDTEVOQlFVTXNRMEZCUXp0UlFVTk1MRU5CUVVNc1EwRkJRenRSUVVWR0xFdEJRVXNzVFVGQlRTeFBRVUZQTEVsQlFVa3NORVJCUVcxQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVTdXVUZEYmtRc0swTkJRU3RETzFsQlF5OURMSE5DUVVGelFpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMU5CUTJwRE8xRkJSVVFzU1VGQlNTeFJRVUZSTEVOQlFVTXNZMEZCWXl4RlFVRkZPMWxCUXpOQ0xITkNRVUZ6UWl4RFFVRkRMRkZCUVZFc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF6dFRRVU5xUkR0UlFVVkVMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSVUZCUlN4RFFVTXZRaXh4UWtGQmNVSXNRMEZCUXl4UFFVRlBMRVZCUVVVc1dVRkJXU3hGUVVGRkxGTkJRVk1zUTBGQlF5eERRVU40UkN4RFFVRkRPMUZCUlVZc1RVRkJUU3gxUWtGQmRVSXNSMEZCUnl4eFJVRkJiVUlzUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkZlRVVzWjBOQlFXZERPMUZCUTJoRExFOUJRVThzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0UlFVTm1MRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zV1VGQldTeERRVUZETEU5QlFVOHNSVUZCUlN4WlFVRlpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRE9VUXNTVUZCU1N4MVFrRkJkVUlzUTBGQlF5eE5RVUZOTEV0QlFVc3NRMEZCUXl4RlFVRkZPMWxCUTNoRExFOUJRVThzUTBGQlF5eFRRVUZUTEVkQlFVY3NOa05CUVZFc1EwRkJRenRaUVVNM1FpeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExEWkVRVUZ0UWl4RFFVTXhReXgxUWtGQmRVSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkRNVUlzV1VGQldTeERRVUZETEVsQlFVa3NSVUZEYWtJc1QwRkJUeXhEUVVOU0xFTkJRVU03V1VGRFJpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMR1ZCUVdVc1JVRkJSVHRuUWtGRE4wSXNjMEpCUVhOQ0xFTkJRM0JDTEU5QlFVOHNSVUZEVUN4WlFVRlpMRVZCUTFvc1owSkJRV2RDTEVWQlEyaENMSFZDUVVGMVFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkRha01zUTBGQlF6dGhRVU5JTzFOQlEwWTdZVUZCVFN4SlFVRkpMSFZDUVVGMVFpeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zVlVGQlZTeEZRVUZGTzFsQlEzSkZMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NRMEZCUXl4SFFVRkhMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETzFsQlEzUkVMRTlCUVU4c1EwRkJReXhUUVVGVExFZEJRVWNzTmtOQlFWRXNRMEZCUXp0WlFVTTNRaXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzZVVSQlFXVXNRMEZCUXl4MVFrRkJkVUlzUTBGQlF5eERRVUZETzFsQlEyeEZMRTFCUVUwc1pVRkJaU3hIUVVGSExFOUJRVThzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0WlFVTTVReXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnVSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRPMWxCUTNCRExFOUJRVThzUTBGQlF5eFRRVUZUTEVkQlFVY3NRMEZCUXl4SFFVRkhMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETzFsQlEyaEVMSE5DUVVGelFpeERRVU53UWl4UFFVRlBMRVZCUTFBc1JVRkJSU3hIUVVGSExHbENRVUZwUWl4RlFVTjBRaXhGUVVGRkxFZEJRVWNzYVVKQlFXbENMRVZCUTNSQ0xFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NhVUpCUVdsQ0xFZEJRVWNzUTBGQlF5eEZRVU12UWl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExHbENRVUZwUWl4SFFVRkhMRU5CUVVNc1JVRkRMMElzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVOaUxFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkRZaXhEUVVGRExFTkJRMFlzUTBGQlF6dFpRVU5HTEU5QlFVOHNRMEZCUXl4VFFVRlRMRWRCUVVjc1UwRkJVeXhEUVVGRE8xbEJRemxDTEU5QlFVOHNRMEZCUXl4WFFVRlhMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU03V1VGRGNrTXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eDFSVUZCTmtJc1EwRkRjRVFzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGRGFFSXNRMEZCUXl4RlFVTkVMRmxCUVZrc1EwRkJReXhKUVVGSkxFVkJRMnBDTEU5QlFVOHNSVUZEVUN4elJVRkJaME1zUTBGRGFrTXNRMEZCUXp0WlFVTkdMSE5DUVVGelFpeERRVUZETEU5QlFVOHNSVUZCUlN4WlFVRlpMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkRjRVU3VVVGRFJDeFBRVUZQTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1MwRkRia0k3U1VGRlJDeGhRVUZoTzBsQlEySXNUMEZCVHl4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wbEJSV3hDTEhkQ1FVRjNRanRKUVVONFFpeExRVUZMTEUxQlFVMHNVVUZCVVN4SlFVRkpMRmxCUVZrc1EwRkJReXd5UWtGQk1rSXNSVUZCUlR0UlFVTXZSQ3hKUVVGSkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkhMRmxCUVZrc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVWc1JTeERRVUZETEVsQlFVa3NVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJRenRSUVVONlFpeERRVUZETEVsQlFVa3NVVUZCVVN4RFFVRkRMRk5CUVZNc1EwRkJRenRSUVVWNFFpeE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRhRUlzVFVGQlRTeE5RVUZOTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUld4Q0xFMUJRVTBzWVVGQllTeEhRVU5xUWl4RFFVRkRMRWRCUVVjc1EwRkJRenRaUVVOTUxFTkJRVU1zUjBGQlJ5eHhRa0ZCY1VJc1IwRkJSeXhMUVVGTE8xbEJRMnBETEVOQlFVTXNSMEZCUnl4RFFVRkRPMWxCUTB3c1EwRkJReXhIUVVGSExITkNRVUZ6UWl4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVWMFF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYmtJc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMSEZDUVVGeFFpeEhRVUZITEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUXk5RExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU51UWl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFVVXNjMEpCUVhOQ0xFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTTdVVUZGYWtRc1RVRkJUU3hGUVVGRkxGVkJRVlVzUlVGQlJTeE5RVUZOTEVWQlFVVXNSMEZCUnl4NVJFRkJaU3hEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVVnVSU3hQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdVVUZEWml4UFFVRlBMRU5CUVVNc1YwRkJWeXhIUVVGSExFMUJRVTBzUTBGQlF6dFJRVU0zUWl4UFFVRlBMRU5CUVVNc1UwRkJVeXhIUVVGSExGVkJRVlVzUTBGQlF6dFJRVVV2UWl4TlFVRk5MRk5CUVZNc1IwRkJSeXhaUVVGWkxFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGRGFrVXNTVUZCU1N4aFFVRmhMRWxCUVVrc1UwRkJVeXhMUVVGTExIVkVRVUZyUWl4RlFVRkZPMWxCUTNKRUxFOUJRVThzUTBGQlF5eFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRPMU5CUXpWQ08xRkJSVVFzU1VGRFJTeFpRVUZaTEVOQlFVTXNiVUpCUVcxQ08xbEJRMmhETEZsQlFWa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4TlFVRk5MRVZCUTNKRU8xbEJRMEVzVDBGQlR5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMWxCUTNCQ0xFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1JVRkJSU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFsQlF6ZERMRTlCUVU4c1EwRkJReXhUUVVGVExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEzUkNMRTlCUVU4c1EwRkJReXhYUVVGWExFZEJRVWNzVjBGQlZ5eERRVUZETzFsQlEyeERMRTlCUVU4c1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFpRVU5xUWl4UFFVRlBMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03V1VGRmNFSXNUMEZCVHl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8xbEJRM0JDTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUlVGQlJTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUXpkRExFOUJRVThzUTBGQlF5eFRRVUZUTEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTNSQ0xFOUJRVThzUTBGQlF5eFhRVUZYTEVkQlFVY3NUVUZCVFN4RFFVRkRPMWxCUXpkQ0xFOUJRVThzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0WlFVTnFRaXhQUVVGUExFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdVMEZEY2tJN1VVRkZSQ3hQUVVGUExFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdVVUZEY0VJc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRja0lzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTTVRaXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6ZENMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRE9VSXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY2tJc1QwRkJUeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFGQlEyWXNUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRE8xRkJSV3BDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRmxCUVZrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVVdlJDeEpRVUZKTEZOQlFWTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRia0lzU1VGQlNTeFRRVUZUTEV0QlFVc3NkVVJCUVd0Q0xFVkJRVVU3V1VGRGNFTXNVMEZCVXl4SFFVRkhMR1ZCUVdVc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMSFZFUVVGclFpeEhRVUZITEVOQlFVTTdVMEZEYWtVN1lVRkJUU3hKUVVGSkxGTkJRVk1zUzBGQlN5eDFSRUZCYTBJc1JVRkJSVHRaUVVNelF5eFRRVUZUTEVkQlFVY3NaVUZCWlN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NkVVJCUVd0Q0xFZEJRVWNzUTBGQlF6dFRRVU5xUlR0aFFVRk5MRWxCUVVrc1UwRkJVeXhMUVVGTExIbEVRVUZ2UWl4RlFVRkZPMWxCUXpkRExGTkJRVk1zUjBGQlJ5eGxRVUZsTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETzFOQlEzcERPMUZCUlVRc1RVRkJUU3h2UWtGQmIwSXNSMEZCUnl4SFFVTXpRaXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NVVUZCVVN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRemxDTEVkQlFVY3NVMEZCVXl4RlFVRkZMRU5CUVVNN1VVRkZaaXhKUVVGSkxFTkJRVU1zWVVGQllTeEpRVUZKTEc5Q1FVRnZRaXhGUVVGRk8xbEJRekZETEUxQlFVMHNUMEZCVHl4SFFVRkhMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU03V1VGRE1VSXNUVUZCVFN4UFFVRlBMRWRCUVVjc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF6dFpRVU16UWl4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTTFRaXhOUVVGTkxHVkJRV1VzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZETVVJc1RVRkJUU3hQUVVGUExFZEJRVWNzVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4dlFrRkJiMElzUTBGQlF5eERRVUZETzFsQlF6RkVMRTFCUVUwc1lVRkJZU3hIUVVOcVFpeFBRVUZQTEVOQlFVTXNkMEpCUVhkQ0xFZEJRVWNzVDBGQlR5eERRVUZETEhWQ1FVRjFRaXhEUVVGRE8xbEJSWEpGTEZOQlFWTTdXVUZEVkN4UFFVRlBMRU5CUVVNc1UwRkJVeXhIUVVGSExFMUJRVTBzUTBGQlF6dFpRVU16UWl4UFFVRlBMRU5CUVVNc1VVRkJVU3hEUVVOa0xFOUJRVThzUjBGQlJ5eERRVUZETEVWQlExZ3NUMEZCVHl4SFFVRkhMRU5CUVVNc1JVRkRXQ3hQUVVGUExFTkJRVU1zUzBGQlN5eEhRVUZITEVOQlFVTXNSMEZCUnl4cFFrRkJhVUlzUjBGQlJ5eERRVUZETEVWQlEzcERMR0ZCUVdFc1IwRkJSeXhEUVVGRExFZEJRVWNzWlVGQlpTeEhRVUZITEVOQlFVTXNRMEZEZUVNc1EwRkJRenRaUVVOR0xHRkJRV0U3V1VGRFlpeFBRVUZQTEVOQlFVTXNVMEZCVXl4SFFVRkhMRlZCUVZVc1EwRkJRenRaUVVNdlFpeFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVTmtMRTlCUVU4c1JVRkRVQ3hQUVVGUExFVkJRMUFzVDBGQlR5eERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRWRCUVVjc2FVSkJRV2xDTEVWQlEzSkRMR0ZCUVdFc1IwRkJSeXhEUVVGRExFZEJRVWNzWlVGQlpTeERRVU53UXl4RFFVRkRPMWxCUTBZc1QwRkJUeXhEUVVGRExGTkJRVk1zUjBGQlJ5dzJRMEZCVVN4RFFVRkRPMWxCUlRkQ0xFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlEyUXNiMEpCUVc5Q0xFVkJRM0JDTEU5QlFVOHNSMEZCUnl4cFFrRkJhVUlzUlVGRE0wSXNUMEZCVHl4SFFVRkhMR1ZCUVdVc1IwRkJSeXhQUVVGUExFTkJRVU1zZFVKQlFYVkNMRU5CUXpWRUxFTkJRVU03VTBGRFNEdFJRVVZFTEU5QlFVOHNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRSUVVOc1FpeFBRVUZQTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1MwRkRja0k3U1VGRlJDeHRRa0ZCYlVJN1NVRkRia0lzU1VGQlNTeFZRVUZWTEVOQlFVTTdTVUZEWml4SlFVRkpMR2RDUVVGblFpeEZRVUZGTzFGQlEzQkNMRlZCUVZVc1IwRkJSeXhuUlVGQllTeERRVU40UWl4UlFVRlJMRVZCUTFJc2NVSkJRWEZDTEVWQlEzSkNMSE5DUVVGelFpeEZRVU4wUWl4WlFVRlpMRU5CUTJJc1EwRkJRenRSUVVWR0xFOUJRVThzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0UlFVTm1MRTlCUVU4c1EwRkJReXhUUVVGVExFZEJRVWNzT0VSQlFXVXNRMEZCUXp0UlFVTndReXhQUVVGUExFTkJRVU1zVjBGQlZ5eEhRVUZITEhWQ1FVRjFRaXhEUVVGRE8xRkJRemxETEVOQlFVTXNWVUZCVlN4RFFVRkRMRlZCUVZVc1JVRkJSU3hWUVVGVkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVU3V1VGRGFrVXNTVUZCU1N4VFFVRlRMRVZCUVVVN1owSkJRMklzY1VSQlFWTXNRMEZEVUN4UFFVRlBMRVZCUTFBc1UwRkJVeXhEUVVGRExFTkJRVU1zUlVGRFdDeFRRVUZUTEVOQlFVTXNRMEZCUXl4RlFVTllMRk5CUVZNc1EwRkJReXhMUVVGTExFVkJRMllzVTBGQlV5eERRVUZETEUxQlFVMHNSVUZEYUVJc09FUkJRV1VzUjBGQlJ5eERRVUZETEVOQlEzQkNMRU5CUVVNN1lVRkRTRHRSUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEwZ3NUMEZCVHl4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wdEJRMjVDTzBsQlJVUXNUMEZCVHl4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wbEJRMnhDTEU5QlFVOHNSVUZCUlN4M1FrRkJkMElzUlVGQlJTeGxRVUZsTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1JVRkJSU3hWUVVGVkxFVkJRVVVzUTBGQlF6dEJRVU01UlN4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxITkNRVUZ6UWl4SFFVRkhMRU5CUXpkQ0xFOUJRV2xETEVWQlEycERMRmxCUVRCQ0xFVkJRekZDTEdkQ1FVRnJReXhGUVVOc1F5eExRVUZoTEVWQlExQXNSVUZCUlR0SlFVTlNMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlR0UlFVTTFReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJReXhIUVVFd1FpeERRVUZETEVOQlFVTTdVVUZEY2tVc1NVRkJTU3hsUVVGbExFdEJRVXNzVTBGQlV5eEZRVUZGTzFsQlEycERMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFpRVU5tTEU5QlFVOHNRMEZCUXl4VFFVRlRMRWRCUVVjc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRPMWxCUTJoRUxFbEJRVWtzUjBGQlJ5eExRVUZMTEZWQlFWVXNSVUZCUlR0blFrRkRkRUlzVlVGQlZTeERRVU5TTEU5QlFVOHNSVUZEVUN4bFFVRmxMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzWlVGQlpTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkRNME1zWlVGQlpTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMR1ZCUVdVc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlF6TkRMR1ZCUVdVc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlEzWkNMRU5CUVVNN1lVRkRTRHRwUWtGQlRUdG5Ra0ZEVEN4elFrRkJjMElzUTBGRGNFSXNUMEZCVHl4RlFVTlFMR1ZCUVdVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGRGJFSXNaVUZCWlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVOc1FpeGxRVUZsTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUTJ4Q0xHVkJRV1VzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZEYkVJc1pVRkJaU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEdWQlFXVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRek5ETEdWQlFXVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhsUVVGbExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVTXpReXhMUVVGTExFVkJRMHdzU1VGQlNTeERRVU5NTEVOQlFVTTdZVUZEU0R0WlFVTkVMRTlCUVU4c1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dFRRVU51UWp0SlFVTklMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMHdzUTBGQlF5eERRVUZETzBGQlJVWXNUVUZCVFN4eFFrRkJjVUlzUjBGQlJ5eERRVU0xUWl4UFFVRnBReXhGUVVOcVF5eFpRVUV3UWl4RlFVTXhRaXhwUWtGUFF5eEZRVU5FTEVWQlFVVTdTVUZEUml4TlFVRk5MRVZCUVVVc1MwRkJTeXhGUVVGRkxGTkJRVk1zUlVGQlJTeFRRVUZUTEVWQlFVVXNVMEZCVXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hsUVVGbExFVkJRVVVzUjBGRE1VVXNhVUpCUVdsQ0xFTkJRVU03U1VGRGNFSXNUVUZCVFN4WlFVRlpMRWRCUVVjc1UwRkJVeXhIUVVGSExGTkJRVk1zUTBGQlF6dEpRVU16UXl4TlFVRk5MR0ZCUVdFc1IwRkJSeXhUUVVGVExFZEJRVWNzVTBGQlV5eERRVUZETzBsQlJUVkRMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NRMEZCUXl4SFFVRkhMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETzBsQlEzUkVMRTFCUVUwc1UwRkJVeXhIUVVGSExFTkJRVU1zUjBGQlJ5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVNNVF5eE5RVUZOTEZWQlFWVXNSMEZCUnl4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTTdTVUZGTDBNc1QwRkJUeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzBsQlEyWXNUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkJReXhaUVVGWkxFTkJRVU1zVDBGQlR5eEZRVUZGTEZsQlFWa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVNNVJDeFBRVUZQTEVOQlFVTXNVMEZCVXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXp0SlFVVm9SQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eGxRVUZsTEVOQlFVTXNUVUZCVFN4RFFVRkRPMGxCUTNKRExFdEJRVXNzU1VGQlNTeExRVUZMTEVkQlFVY3NRMEZCUXl4RlFVRkZMRXRCUVVzc1IwRkJSeXhMUVVGTExFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVTdVVUZETVVNc1QwRkJUeXhEUVVGRExGZEJRVmNzUjBGQlJ5eGxRVUZsTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkROME1zVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXp0WlFVTnNRaXhUUVVGVE8xbEJRMVFzVlVGQlZTeEhRVUZITEVOQlFVTXNVMEZCVXl4SFFVRkhMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eEhRVUZITEVOQlFVTXNRMEZCUXp0VFFVTndSQ3hEUVVGRExFTkJRVU03VVVGRFNDeFBRVUZQTEVOQlFVTXNZMEZCWXl4SFFVRkhMRU5CUVVNc1UwRkJVeXhIUVVGSExGVkJRVlVzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXp0UlFVTXhSQ3h6UWtGQmMwSXNRMEZEY0VJc1QwRkJUeXhGUVVOUUxGTkJRVk1zUjBGQlJ5eHBRa0ZCYVVJc1JVRkROMElzVTBGQlV5eEhRVUZITEdsQ1FVRnBRaXhGUVVNM1FpeFpRVUZaTEVkQlFVY3NhVUpCUVdsQ0xFZEJRVWNzUTBGQlF5eEZRVU53UXl4aFFVRmhMRWRCUVVjc2FVSkJRV2xDTEVkQlFVY3NRMEZCUXl4RlFVTnlReXhUUVVGVExFZEJRVWNzV1VGQldTeEhRVUZITEVOQlFVTXNSVUZETlVJc1UwRkJVeXhIUVVGSExHRkJRV0VzUjBGQlJ5eERRVUZETEVWQlF6ZENMRXRCUVVzc1EwRkRUaXhEUVVGRE8wdEJRMGc3U1VGRFJDeFBRVUZQTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1FVRkRjRUlzUTBGQlF5eERRVUZETzBGQlJVWXNUVUZCVFN4elFrRkJjMElzUjBGQlJ5eERRVU0zUWl4UFFVRnBReXhGUVVOcVF5eFpRVUV3UWl4RlFVTXhRaXhuUWtGQmEwTXNSVUZEYkVNc1JVRkJSVHRKUVVOR0xFMUJRVTBzWlVGQlpTeEhRVUZITEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdVVUZEY2tRc1EwRkJReXhEUVVGRExEaERRVUU0UXp0UlFVTm9SQ3hEUVVGRExFTkJRVU1zZDBOQlFYZERMRU5CUVVNN1NVRkZOME1zVDBGQlR5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMGxCUTJZc1QwRkJUeXhEUVVGRExGTkJRVk1zUTBGQlF5eFpRVUZaTEVOQlFVTXNUMEZCVHl4RlFVRkZMRmxCUVZrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU01UkN4bFFVRmxMRU5CUVVNc1QwRkJUeXhGUVVGRkxHZENRVUYxUWl4RFFVRkRMRU5CUVVNN1NVRkZiRVFzVDBGQlR5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMEZCUTNCQ0xFTkJRVU1zUTBGQlF6dEJRVVZHTEUxQlFVMHNkME5CUVhkRExFZEJRVWNzUTBGREwwTXNUMEZCYVVNc1JVRkRha01zVDBGQmEwTXNSVUZEYkVNc1JVRkJSVHRKUVVOR0xFMUJRVTBzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eHJSVUZCZDBJc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU16UkN4TlFVRk5MRXRCUVVzc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETzBsQlEzUkNMRTFCUVUwc1RVRkJUU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZEZGtJc1RVRkJUU3hUUVVGVExFZEJRVWNzYVVWQlFXRXNRMEZCUXl4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzBsQlJYaEVMRGhEUVVFNFF6dEpRVU01UXl4TlFVRk5MRmxCUVZrc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGRrSXNUMEZCVHl4RFFVRkRMRmRCUVZjc1IwRkJSeXhwUWtGQmFVSXNRMEZCUXp0SlFVTjRReXhQUVVGUExFTkJRVU1zVTBGQlV5eEhRVUZITEZOQlFWTXNSMEZCUnl4WlFVRlpMRU5CUVVNN1NVRkROME1zVFVGQlRTeFBRVUZQTEVkQlFVY3NXVUZCV1N4SFFVRkhMRU5CUVVNc1IwRkJSeXhUUVVGVExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlJXcEVMRkZCUVZFc1QwRkJUeXhEUVVGRExFbEJRVWtzUlVGQlJUdFJRVU53UWl4TFFVRkxMRmRCUVZjc1EwRkJRenRSUVVOcVFpeExRVUZMTEUxQlFVMHNRMEZCUXp0UlFVTmFMRXRCUVVzc1QwRkJUenRaUVVOV0xITkNRVUZ6UWl4RFFVTndRaXhQUVVGUExFVkJRMUFzUlVGQlJTeEhRVUZITEU5QlFVOHNSVUZEV2l4RlFVRkZMRWRCUVVjc1QwRkJUeXhGUVVOYUxFdEJRVXNzUjBGQlJ5eFBRVUZQTEVkQlFVY3NRMEZCUXl4RlFVTnVRaXhOUVVGTkxFZEJRVWNzVDBGQlR5eEhRVUZITEVOQlFVTXNSVUZEY0VJc1JVRkJSU3hIUVVGSExFdEJRVXNzUjBGQlJ5eERRVUZETEVWQlEyUXNSVUZCUlN4SFFVRkhMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRMllzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZEWkN4RFFVRkRPMWxCUTBZc1RVRkJUVHRSUVVOU0xFdEJRVXNzVTBGQlV6dFpRVU5hTEUxQlFVMHNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUTNaRExFMUJRVTBzVVVGQlVTeEhRVUZITEVOQlFVTXNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF6dFpRVU16UXl4TlFVRk5MRkZCUVZFc1IwRkJSeXhEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNN1dVRkRNVU1zZVVKQlFYbENMRU5CUTNaQ0xFOUJRVThzUlVGRFVDeExRVUZMTEVkQlFVY3NVVUZCVVN4SFFVRkhMRU5CUVVNc1JVRkRjRUlzVFVGQlRTeEhRVUZITEZGQlFWRXNSMEZCUnl4RFFVRkRMRVZCUTNKQ0xFVkJRVVVzUjBGQlJ5eExRVUZMTEVkQlFVY3NRMEZCUXl4RlFVTmtMRVZCUVVVc1IwRkJSeXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVU5tTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUTJRc1EwRkJRenRaUVVOR0xFMUJRVTA3VVVGRFVpeExRVUZMTEZOQlFWTTdXVUZEV2l4NVFrRkJlVUlzUTBGRGRrSXNUMEZCVHl4RlFVTlFMRXRCUVVzc1IwRkJSeXhQUVVGUExFZEJRVWNzUTBGQlF5eEZRVU51UWl4TlFVRk5MRWRCUVVjc1QwRkJUeXhIUVVGSExFTkJRVU1zUlVGRGNFSXNSVUZCUlN4SFFVRkhMRXRCUVVzc1IwRkJSeXhEUVVGRExFVkJRMlFzUlVGQlJTeEhRVUZITEUxQlFVMHNSMEZCUnl4RFFVRkRMRVZCUTJZc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGRFpDeERRVUZETzFsQlEwWXNUVUZCVFR0TFFVTlVPMEZCUTBnc1EwRkJReXhEUVVGRE8wRkJSVVlzVFVGQlRTdzRRMEZCT0VNc1IwRkJSeXhEUVVOeVJDeFBRVUZwUXl4RlFVTnFReXhuUWtGQmRVTXNSVUZEZGtNc1JVRkJSVHRKUVVOR0xFMUJRVTBzUTBGQlF5eFBRVUZQTEVWQlFVVXNWVUZCVlN4RlFVRkZMR1ZCUVdVc1EwRkJReXhIUVVGSExHZENRVUZuUWl4RFFVRkRPMGxCUldoRkxFMUJRVTBzVTBGQlV5eEhRVUZITEdsRlFVRmhMRU5CUXpkQ0xHVkJRV1VzUlVGRFppeGxRVUZsTEVOQlFVTXNTMEZCU3l4RlFVTnlRaXhsUVVGbExFTkJRVU1zVFVGQlRTeERRVU4yUWl4RFFVRkRPMGxCUlVZc1QwRkJUeXhEUVVGRExGZEJRVmNzUjBGQlJ5eGxRVUZsTEVOQlFVTTdTVUZEZEVNc1QwRkJUeXhEUVVGRExGTkJRVk1zUjBGQlJ5eHBRa0ZCYVVJc1EwRkJRenRKUVVWMFF5eE5RVUZOTEZsQlFWa3NSMEZEYUVJc1ZVRkJWU3hMUVVGTExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWVUZCVlN4TFFVRkxMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzaEZMRmxCUVZrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlR0UlFVTTNRaXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SFFVRkhMRGhIUVVGdlJDeERRVU5xUlN4UFFVRlBMRVZCUTFBc1MwRkJTeXhEUVVOT0xFTkJRVU03VVVGRFJpeFZRVUZWTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTTdTVUZEZGtNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFRDeERRVUZETEVOQlFVTTdRVUZGUml4SlFVRkpMR1ZCUVc5Q0xFTkJRVU03UVVGRGVrSXNUVUZCVFN4alFVRmpMRWRCUVVjc1EwRkRja0lzVDBGQmIwTXNSVUZEY0VNc1QwRkJhVU1zUlVGRGFrTXNVVUZCYTBJc1JVRkRiRUlzUlVGQlJUdEpRVU5HTEVsQlFVa3NUMEZCVHl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVTdVVUZETlVRc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhIUVVGSExHdEZRVUYzUWl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRek5FTEUxQlFVMHNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNSMEZCUnl3MFJVRkJkVUlzUTBGRGJrUXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZEYUVJc1QwRkJUeXhEUVVGRExFdEJRVXNzUlVGRFlpeFJRVUZSTEVOQlExUXNRMEZCUXp0UlFVTkdMRTFCUVUwc1QwRkJUeXhIUVVGSExFTkJRVU1zUjBGQlJ5eExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUXpsQ0xFMUJRVTBzVDBGQlR5eEhRVUZITEVOQlFVTXNSMEZCUnl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJReTlDTEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRSUVVObUxFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1IwRkJSeXhQUVVGUExFVkJRVVVzVVVGQlVTeERRVUZETEU5QlFVOHNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVNeFJTeFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVVU1UWl4SlFVRkpMRU5CUVVNc1pVRkJaU3hKUVVGSkxHVkJRV1VzUTBGQlF5eEpRVUZKTEV0QlFVc3NVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVU3V1VGRGNFVXNaVUZCWlN4SFFVRkhMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdXVUZEYmtRc1pVRkJaU3hEUVVGRExFbEJRVWtzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJRenRaUVVNelF5eGxRVUZsTEVOQlFVTXNTMEZCU3p0blFrRkRia0lzUzBGQlN5eEhRVUZITEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJRenRaUVVONFJDeGxRVUZsTEVOQlFVTXNUVUZCVFR0blFrRkRjRUlzVFVGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJRenRaUVVONlJDeE5RVUZOTEhOQ1FVRnpRaXhIUVVGSExHVkJRV1VzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkZMRU5CUVVNN1dVRkRha1VzYzBKQlFYTkNMRU5CUVVNc1MwRkJTeXhEUVVNeFFpeE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFZEJRVWNzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUXpkRExFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1IwRkJSeXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZET1VNc1EwRkJRenRaUVVOR0xITkNRVUZ6UWl4RFFVRkRMRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU03V1VGRE1VTXNjMEpCUVhOQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzFsQlEzSkVMSE5DUVVGelFpeERRVUZETEZOQlFWTXNRMEZCUXl4clJVRkJhVUlzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dFpRVU42UlN4elFrRkJjMElzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0WlFVTnFReXhQUVVGUExFTkJRVU1zVTBGQlV5eERRVU5tTEdWQlFXVXNSVUZEWml4RFFVRkRMRWRCUVVjc1QwRkJUeXhGUVVOWUxFTkJRVU1zUjBGQlJ5eFBRVUZQTEVWQlExZ3NTMEZCU3l4RlFVTk1MRTFCUVUwc1EwRkRVQ3hEUVVGRE8xTkJRMGc3WVVGQlRUdFpRVU5NTEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUTJZc1pVRkJaU3hGUVVObUxFTkJRVU1zUjBGQlJ5eFBRVUZQTEVWQlExZ3NRMEZCUXl4SFFVRkhMRTlCUVU4c1JVRkRXQ3hMUVVGTExFVkJRMHdzVFVGQlRTeERRVU5RTEVOQlFVTTdVMEZEU0R0UlFVTkVMRTlCUVU4c1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dExRVU51UWp0QlFVTklMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1EwRkRka0lzVDBGQk1FSXNSVUZETVVJc1YwRkJiVUlzUlVGRGJrSXNXVUZCYjBJc1JVRkRjRUlzYlVKQlRVTXNSVUZEUkN4RlFVRkZPMGxCUTBZc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhIUVVGSExEQkVRVUZuUWl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zYjBKQlFXOUNPMGxCUTNoRkxFMUJRVTBzYTBKQlFXdENMRWRCUVVjc2IwVkJRVEpDTEVOQlEzQkVPMUZCUTBVc1QwRkJUeXhGUVVGRkxHMUNRVUZ0UWl4RFFVRkRMRlZCUVZVN1VVRkRka01zVDBGQlR5eEZRVUZGTEcxQ1FVRnRRaXhEUVVGRExGTkJRVk03UzBGRGRrTXNSVUZEUkN4dFFrRkJiVUlzUTBGRGNFSXNRMEZCUXp0SlFVTkdMRTFCUVUwc2MwSkJRWE5DTEVkQlFVY3NiMFZCUVRKQ0xFTkJRM2hFTzFGQlEwVXNUMEZCVHl4RlFVRkZMRzFDUVVGdFFpeERRVUZETEZWQlFWVXNSMEZCUnl4WFFVRlhPMUZCUTNKRUxFOUJRVThzUlVGQlJTeHRRa0ZCYlVJc1EwRkJReXhUUVVGVExFZEJRVWNzV1VGQldUdExRVU4wUkN4RlFVTkVMRzFDUVVGdFFpeERRVU53UWl4RFFVRkRPMGxCUlVZc1QwRkJUeXhEUVVOTUxHdENRVUZyUWl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRk8xRkJRekZDTEd0Q1FVRnJRaXhEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTzFGQlF6RkNMSE5DUVVGelFpeERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZPMUZCUXpsQ0xITkNRVUZ6UWl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJReTlDTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNN1FVRkZSaXh2UkVGQmIwUTdRVUZETjBNc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RFFVTTVRaXhSUVVGblJDeEZRVU5vUkN4SlFVRmpMRVZCUTJRc1QwRkJiVUlzUlVGRGJrSXNTMEZCYTBJc1JVRkRiRUlzUlVGRFJTeFBRVUZQTEVkQlFVY3NRMEZCUXl4RlFVTllMRTlCUVU4c1IwRkJSeXhEUVVGRExFVkJRMWdzYTBKQlFXdENMRWRCUVVjc1MwRkJTeXhOUVV0NFFpeEZRVUZGTEVWQlEwNHNSVUZCUlR0SlFVTkdMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVU3VVVGRFdpeFBRVUZQTzB0QlExSTdTVUZEUkN4clFrRkJhMEk3U1VGRGJFSXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTzFGQlF6TkNMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVTBGQlV5eEZRVUZGTzFsQlEzUkNMRWxCUVVrN1owSkJRMFlzYTBWQlFXdENMRU5CUTJoQ0xFOUJRVThzUlVGRFVDeEpRVUZKTEVWQlEwb3NUMEZCVHl4RlFVTlFMRXRCUVVzc1JVRkRUQ3hQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEU5QlFVOHNSVUZEYmtJc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlJ5eFBRVUZQTEVWQlEyNUNMR3RDUVVGclFpeERRVU51UWl4RFFVRkRPMkZCUTBnN1dVRkJReXhQUVVGUExFdEJRVlVzUlVGQlJUdG5Ra0ZEYmtJc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0aFFVTjBRanRUUVVOR08wbEJRMGdzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVEN4RFFVRkRMRU5CUVVNaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZjbVZ1WkdWeVpYSXZjbVZ1WkdWeVUyTmxibVV1ZEhNL1pUSTJaaUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZXlCU2IzVm5hRU5oYm5aaGN5QjlJR1p5YjIwZ1hDSnliM1ZuYUdwekwySnBiaTlqWVc1MllYTmNJanRjYm1sdGNHOXlkQ0I3SUZKdmRXZG9VMVpISUgwZ1puSnZiU0JjSW5KdmRXZG9hbk12WW1sdUwzTjJaMXdpTzF4dWFXMXdiM0owSUc5aklHWnliMjBnWENKdmNHVnVMV052Ykc5eVhDSTdYRzVjYm1sdGNHOXlkQ0I3SUVGd2NGTjBZWFJsTENCQ2FXNWhjbmxHYVd4bGN5d2dXbTl2YlNCOUlHWnliMjBnWENJdUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIdGNiaUFnUlhoallXeHBaSEpoZDBWc1pXMWxiblFzWEc0Z0lFNXZia1JsYkdWMFpXUkZlR05oYkdsa2NtRjNSV3hsYldWdWRDeGNiaUFnUlhoallXeHBaSEpoZDB4cGJtVmhja1ZzWlcxbGJuUXNYRzRnSUU1dmJrUmxiR1YwWldRc1hHNGdJRWR5YjNWd1NXUXNYRzRnSUVWNFkyRnNhV1J5WVhkQ2FXNWtZV0pzWlVWc1pXMWxiblFzWEc1OUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MEwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JuWlhSRmJHVnRaVzUwUVdKemIyeDFkR1ZEYjI5eVpITXNYRzRnSUU5TlNWUmZVMGxFUlZOZlJrOVNYMDFWVEZSSlVFeEZYMFZNUlUxRlRsUlRMRnh1SUNCblpYUlVjbUZ1YzJadmNtMUlZVzVrYkdWelJuSnZiVU52YjNKa2N5eGNiaUFnWjJWMFZISmhibk5tYjNKdFNHRnVaR3hsY3l4Y2JpQWdaMlYwUld4bGJXVnVkRUp2ZFc1a2N5eGNiaUFnWjJWMFEyOXRiVzl1UW05MWJtUnpMRnh1ZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEZ3aU8xeHVYRzVwYlhCdmNuUWdleUJ5YjNWdVpGSmxZM1FnZlNCbWNtOXRJRndpTGk5eWIzVnVaRkpsWTNSY0lqdGNibWx0Y0c5eWRDQjdJRkpsYm1SbGNrTnZibVpwWnlCOUlHWnliMjBnWENJdUxpOXpZMlZ1WlM5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUh0Y2JpQWdaMlYwVTJOeWIyeHNRbUZ5Y3l4Y2JpQWdVME5TVDB4TVFrRlNYME5QVEU5U0xGeHVJQ0JUUTFKUFRFeENRVkpmVjBsRVZFZ3NYRzU5SUdaeWIyMGdYQ0l1TGk5elkyVnVaUzl6WTNKdmJHeGlZWEp6WENJN1hHNXBiWEJ2Y25RZ2V5Qm5aWFJUWld4bFkzUmxaRVZzWlcxbGJuUnpJSDBnWm5KdmJTQmNJaTR1TDNOalpXNWxMM05sYkdWamRHbHZibHdpTzF4dVhHNXBiWEJ2Y25RZ2V5QnlaVzVrWlhKRmJHVnRaVzUwTENCeVpXNWtaWEpGYkdWdFpXNTBWRzlUZG1jZ2ZTQm1jbTl0SUZ3aUxpOXlaVzVrWlhKRmJHVnRaVzUwWENJN1hHNXBiWEJ2Y25RZ2V5Qm5aWFJEYkdsbGJuUkRiMnh2Y25NZ2ZTQm1jbTl0SUZ3aUxpNHZZMnhwWlc1MGMxd2lPMXh1YVcxd2IzSjBJSHNnVEdsdVpXRnlSV3hsYldWdWRFVmthWFJ2Y2lCOUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MEwyeHBibVZoY2tWc1pXMWxiblJGWkdsMGIzSmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lHbHpVMlZzWldOMFpXUldhV0ZIY205MWNDeGNiaUFnWjJWMFUyVnNaV04wWldSSGNtOTFjRWxrY3l4Y2JpQWdaMlYwUld4bGJXVnVkSE5KYmtkeWIzVndMRnh1ZlNCbWNtOXRJRndpTGk0dlozSnZkWEJ6WENJN1hHNXBiWEJ2Y25RZ2V5QnRZWGhDYVc1a2FXNW5SMkZ3SUgwZ1puSnZiU0JjSWk0dUwyVnNaVzFsYm5RdlkyOXNiR2x6YVc5dVhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCVGRXZG5aWE4wWldSQ2FXNWthVzVuTEZ4dUlDQlRkV2RuWlhOMFpXUlFiMmx1ZEVKcGJtUnBibWNzWEc0Z0lHbHpRbWx1WkdsdVowVnVZV0pzWldRc1hHNTlJR1p5YjIwZ1hDSXVMaTlsYkdWdFpXNTBMMkpwYm1ScGJtZGNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lGUnlZVzV6Wm05eWJVaGhibVJzWlhNc1hHNGdJRlJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1VzWEc1OUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MEwzUnlZVzV6Wm05eWJVaGhibVJzWlhOY0lqdGNibWx0Y0c5eWRDQjdJSFpwWlhkd2IzSjBRMjl2Y21SelZHOVRZMlZ1WlVOdmIzSmtjeXdnYzNWd2NHOXlkSE5GYlc5cWFTQjlJR1p5YjIwZ1hDSXVMaTkxZEdsc2Mxd2lPMXh1YVcxd2IzSjBJSHNnVlhObGNrbGtiR1ZUZEdGMFpTQjlJR1p5YjIwZ1hDSXVMaTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnVkVoRlRVVmZSa2xNVkVWU0lIMGdabkp2YlNCY0lpNHVMMk52Ym5OMFlXNTBjMXdpTzF4dWFXMXdiM0owSUh0Y2JpQWdSVmhVUlZKT1FVeGZURWxPUzE5SlRVY3NYRzRnSUdkbGRFeHBibXRJWVc1a2JHVkdjbTl0UTI5dmNtUnpMRnh1ZlNCbWNtOXRJRndpTGk0dlpXeGxiV1Z1ZEM5SWVYQmxjbXhwYm10Y0lqdGNibHh1WTI5dWMzUWdhR0Z6UlcxdmFtbFRkWEJ3YjNKMElEMGdjM1Z3Y0c5eWRITkZiVzlxYVNncE8xeHVYRzVqYjI1emRDQnpkSEp2YTJWU1pXTjBWMmwwYUZKdmRHRjBhVzl1SUQwZ0tGeHVJQ0JqYjI1MFpYaDBPaUJEWVc1MllYTlNaVzVrWlhKcGJtZERiMjUwWlhoME1rUXNYRzRnSUhnNklHNTFiV0psY2l4Y2JpQWdlVG9nYm5WdFltVnlMRnh1SUNCM2FXUjBhRG9nYm5WdFltVnlMRnh1SUNCb1pXbG5hSFE2SUc1MWJXSmxjaXhjYmlBZ1kzZzZJRzUxYldKbGNpeGNiaUFnWTNrNklHNTFiV0psY2l4Y2JpQWdZVzVuYkdVNklHNTFiV0psY2l4Y2JpQWdabWxzYkRvZ1ltOXZiR1ZoYmlBOUlHWmhiSE5sTEZ4dUtTQTlQaUI3WEc0Z0lHTnZiblJsZUhRdWMyRjJaU2dwTzF4dUlDQmpiMjUwWlhoMExuUnlZVzV6YkdGMFpTaGplQ3dnWTNrcE8xeHVJQ0JqYjI1MFpYaDBMbkp2ZEdGMFpTaGhibWRzWlNrN1hHNGdJR2xtSUNobWFXeHNLU0I3WEc0Z0lDQWdZMjl1ZEdWNGRDNW1hV3hzVW1WamRDaDRJQzBnWTNnc0lIa2dMU0JqZVN3Z2QybGtkR2dzSUdobGFXZG9kQ2s3WEc0Z0lIMWNiaUFnWTI5dWRHVjRkQzV6ZEhKdmEyVlNaV04wS0hnZ0xTQmplQ3dnZVNBdElHTjVMQ0IzYVdSMGFDd2dhR1ZwWjJoMEtUdGNiaUFnWTI5dWRHVjRkQzV5WlhOMGIzSmxLQ2s3WEc1OU8xeHVYRzVqYjI1emRDQnpkSEp2YTJWRWFXRnRiMjVrVjJsMGFGSnZkR0YwYVc5dUlEMGdLRnh1SUNCamIyNTBaWGgwT2lCRFlXNTJZWE5TWlc1a1pYSnBibWREYjI1MFpYaDBNa1FzWEc0Z0lIZHBaSFJvT2lCdWRXMWlaWElzWEc0Z0lHaGxhV2RvZERvZ2JuVnRZbVZ5TEZ4dUlDQmplRG9nYm5WdFltVnlMRnh1SUNCamVUb2diblZ0WW1WeUxGeHVJQ0JoYm1kc1pUb2diblZ0WW1WeUxGeHVLU0E5UGlCN1hHNGdJR052Ym5SbGVIUXVjMkYyWlNncE8xeHVJQ0JqYjI1MFpYaDBMblJ5WVc1emJHRjBaU2hqZUN3Z1kza3BPMXh1SUNCamIyNTBaWGgwTG5KdmRHRjBaU2hoYm1kc1pTazdYRzRnSUdOdmJuUmxlSFF1WW1WbmFXNVFZWFJvS0NrN1hHNGdJR052Ym5SbGVIUXViVzkyWlZSdktEQXNJR2hsYVdkb2RDQXZJRElwTzF4dUlDQmpiMjUwWlhoMExteHBibVZVYnloM2FXUjBhQ0F2SURJc0lEQXBPMXh1SUNCamIyNTBaWGgwTG14cGJtVlVieWd3TENBdGFHVnBaMmgwSUM4Z01pazdYRzRnSUdOdmJuUmxlSFF1YkdsdVpWUnZLQzEzYVdSMGFDQXZJRElzSURBcE8xeHVJQ0JqYjI1MFpYaDBMbU5zYjNObFVHRjBhQ2dwTzF4dUlDQmpiMjUwWlhoMExuTjBjbTlyWlNncE8xeHVJQ0JqYjI1MFpYaDBMbkpsYzNSdmNtVW9LVHRjYm4wN1hHNWNibU52Ym5OMElITjBjbTlyWlVWc2JHbHdjMlZYYVhSb1VtOTBZWFJwYjI0Z1BTQW9YRzRnSUdOdmJuUmxlSFE2SUVOaGJuWmhjMUpsYm1SbGNtbHVaME52Ym5SbGVIUXlSQ3hjYmlBZ2QybGtkR2c2SUc1MWJXSmxjaXhjYmlBZ2FHVnBaMmgwT2lCdWRXMWlaWElzWEc0Z0lHTjRPaUJ1ZFcxaVpYSXNYRzRnSUdONU9pQnVkVzFpWlhJc1hHNGdJR0Z1WjJ4bE9pQnVkVzFpWlhJc1hHNHBJRDArSUh0Y2JpQWdZMjl1ZEdWNGRDNWlaV2RwYmxCaGRHZ29LVHRjYmlBZ1kyOXVkR1Y0ZEM1bGJHeHBjSE5sS0dONExDQmplU3dnZDJsa2RHZ2dMeUF5TENCb1pXbG5hSFFnTHlBeUxDQmhibWRzWlN3Z01Dd2dUV0YwYUM1UVNTQXFJRElwTzF4dUlDQmpiMjUwWlhoMExuTjBjbTlyWlNncE8xeHVmVHRjYmx4dVkyOXVjM1FnWm1sc2JFTnBjbU5zWlNBOUlDaGNiaUFnWTI5dWRHVjRkRG9nUTJGdWRtRnpVbVZ1WkdWeWFXNW5RMjl1ZEdWNGRESkVMRnh1SUNCamVEb2diblZ0WW1WeUxGeHVJQ0JqZVRvZ2JuVnRZbVZ5TEZ4dUlDQnlZV1JwZFhNNklHNTFiV0psY2l4Y2Jpa2dQVDRnZTF4dUlDQmpiMjUwWlhoMExtSmxaMmx1VUdGMGFDZ3BPMXh1SUNCamIyNTBaWGgwTG1GeVl5aGplQ3dnWTNrc0lISmhaR2wxY3l3Z01Dd2dUV0YwYUM1UVNTQXFJRElwTzF4dUlDQmpiMjUwWlhoMExtWnBiR3dvS1R0Y2JpQWdZMjl1ZEdWNGRDNXpkSEp2YTJVb0tUdGNibjA3WEc1Y2JtTnZibk4wSUhOMGNtOXJaVWR5YVdRZ1BTQW9YRzRnSUdOdmJuUmxlSFE2SUVOaGJuWmhjMUpsYm1SbGNtbHVaME52Ym5SbGVIUXlSQ3hjYmlBZ1ozSnBaRk5wZW1VNklHNTFiV0psY2l4Y2JpQWdiMlptYzJWMFdEb2diblZ0WW1WeUxGeHVJQ0J2Wm1aelpYUlpPaUJ1ZFcxaVpYSXNYRzRnSUhkcFpIUm9PaUJ1ZFcxaVpYSXNYRzRnSUdobGFXZG9kRG9nYm5WdFltVnlMRnh1S1NBOVBpQjdYRzRnSUdOdmJuUmxlSFF1YzJGMlpTZ3BPMXh1SUNCamIyNTBaWGgwTG5OMGNtOXJaVk4wZVd4bElEMGdYQ0p5WjJKaEtEQXNNQ3d3TERBdU1TbGNJanRjYmlBZ1kyOXVkR1Y0ZEM1aVpXZHBibEJoZEdnb0tUdGNiaUFnWm05eUlDaHNaWFFnZUNBOUlHOW1abk5sZEZnN0lIZ2dQQ0J2Wm1aelpYUllJQ3NnZDJsa2RHZ2dLeUJuY21sa1UybDZaU0FxSURJN0lIZ2dLejBnWjNKcFpGTnBlbVVwSUh0Y2JpQWdJQ0JqYjI1MFpYaDBMbTF2ZG1WVWJ5aDRMQ0J2Wm1aelpYUlpJQzBnWjNKcFpGTnBlbVVwTzF4dUlDQWdJR052Ym5SbGVIUXViR2x1WlZSdktIZ3NJRzltWm5ObGRGa2dLeUJvWldsbmFIUWdLeUJuY21sa1UybDZaU0FxSURJcE8xeHVJQ0I5WEc0Z0lHWnZjaUFvYkdWMElIa2dQU0J2Wm1aelpYUlpPeUI1SUR3Z2IyWm1jMlYwV1NBcklHaGxhV2RvZENBcklHZHlhV1JUYVhwbElDb2dNanNnZVNBclBTQm5jbWxrVTJsNlpTa2dlMXh1SUNBZ0lHTnZiblJsZUhRdWJXOTJaVlJ2S0c5bVpuTmxkRmdnTFNCbmNtbGtVMmw2WlN3Z2VTazdYRzRnSUNBZ1kyOXVkR1Y0ZEM1c2FXNWxWRzhvYjJabWMyVjBXQ0FySUhkcFpIUm9JQ3NnWjNKcFpGTnBlbVVnS2lBeUxDQjVLVHRjYmlBZ2ZWeHVJQ0JqYjI1MFpYaDBMbk4wY205clpTZ3BPMXh1SUNCamIyNTBaWGgwTG5KbGMzUnZjbVVvS1R0Y2JuMDdYRzVjYm1OdmJuTjBJSEpsYm1SbGNreHBibVZoY2xCdmFXNTBTR0Z1Wkd4bGN5QTlJQ2hjYmlBZ1kyOXVkR1Y0ZERvZ1EyRnVkbUZ6VW1WdVpHVnlhVzVuUTI5dWRHVjRkREpFTEZ4dUlDQmhjSEJUZEdGMFpUb2dRWEJ3VTNSaGRHVXNYRzRnSUhKbGJtUmxja052Ym1acFp6b2dVbVZ1WkdWeVEyOXVabWxuTEZ4dUlDQmxiR1Z0Wlc1ME9pQk9iMjVFWld4bGRHVmtQRVY0WTJGc2FXUnlZWGRNYVc1bFlYSkZiR1Z0Wlc1MFBpeGNiaWtnUFQ0Z2UxeHVJQ0JqYjI1MFpYaDBMbk5oZG1Vb0tUdGNiaUFnWTI5dWRHVjRkQzUwY21GdWMyeGhkR1VvY21WdVpHVnlRMjl1Wm1sbkxuTmpjbTlzYkZnc0lISmxibVJsY2tOdmJtWnBaeTV6WTNKdmJHeFpLVHRjYmlBZ1kyOXVkR1Y0ZEM1c2FXNWxWMmxrZEdnZ1BTQXhJQzhnY21WdVpHVnlRMjl1Wm1sbkxucHZiMjB1ZG1Gc2RXVTdYRzVjYmlBZ1RHbHVaV0Z5Uld4bGJXVnVkRVZrYVhSdmNpNW5aWFJRYjJsdWRITkhiRzlpWVd4RGIyOXlaR2x1WVhSbGN5aGxiR1Z0Wlc1MEtTNW1iM0pGWVdOb0tGeHVJQ0FnSUNod2IybHVkQ3dnYVdSNEtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1MFpYaDBMbk4wY205clpWTjBlV3hsSUQwZ1hDSnlaV1JjSWp0Y2JpQWdJQ0FnSUdOdmJuUmxlSFF1YzJWMFRHbHVaVVJoYzJnb1cxMHBPMXh1SUNBZ0lDQWdZMjl1ZEdWNGRDNW1hV3hzVTNSNWJHVWdQVnh1SUNBZ0lDQWdJQ0JoY0hCVGRHRjBaUzVsWkdsMGFXNW5UR2x1WldGeVJXeGxiV1Z1ZEQ4dWMyVnNaV04wWldSUWIybHVkSE5KYm1ScFkyVnpQeTVwYm1Oc2RXUmxjeWhwWkhncFhHNGdJQ0FnSUNBZ0lDQWdQeUJjSW5KblltRW9NalUxTENBeE1qY3NJREV5Tnl3Z01DNDVLVndpWEc0Z0lDQWdJQ0FnSUNBZ09pQmNJbkpuWW1Fb01qVTFMQ0F5TlRVc0lESTFOU3dnTUM0NUtWd2lPMXh1SUNBZ0lDQWdZMjl1YzNRZ2V5QlFUMGxPVkY5SVFVNUVURVZmVTBsYVJTQjlJRDBnVEdsdVpXRnlSV3hsYldWdWRFVmthWFJ2Y2p0Y2JpQWdJQ0FnSUdacGJHeERhWEpqYkdVb1hHNGdJQ0FnSUNBZ0lHTnZiblJsZUhRc1hHNGdJQ0FnSUNBZ0lIQnZhVzUwV3pCZExGeHVJQ0FnSUNBZ0lDQndiMmx1ZEZzeFhTeGNiaUFnSUNBZ0lDQWdVRTlKVGxSZlNFRk9SRXhGWDFOSldrVWdMeUF5SUM4Z2NtVnVaR1Z5UTI5dVptbG5MbnB2YjIwdWRtRnNkV1VzWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDBzWEc0Z0lDazdYRzRnSUdOdmJuUmxlSFF1Y21WemRHOXlaU2dwTzF4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElISmxibVJsY2xOalpXNWxJRDBnS0Z4dUlDQmxiR1Z0Wlc1MGN6b2djbVZoWkc5dWJIa2dUbTl1UkdWc1pYUmxaRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTBzWEc0Z0lHRndjRk4wWVhSbE9pQkJjSEJUZEdGMFpTeGNiaUFnYzJWc1pXTjBhVzl1Uld4bGJXVnVkRG9nVG05dVJHVnNaWFJsWkVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwSUh3Z2JuVnNiQ3hjYmlBZ2MyTmhiR1U2SUc1MWJXSmxjaXhjYmlBZ2NtTTZJRkp2ZFdkb1EyRnVkbUZ6TEZ4dUlDQmpZVzUyWVhNNklFaFVUVXhEWVc1MllYTkZiR1Z0Wlc1MExGeHVJQ0J5Wlc1a1pYSkRiMjVtYVdjNklGSmxibVJsY2tOdmJtWnBaeXhjYmlBZ0x5OGdaWGgwY21FZ2IzQjBhVzl1Y3lCd1lYTnpaV1FnZEc4Z2RHaGxJSEpsYm1SbGNtVnlYRzRwSUQwK0lIdGNiaUFnYVdZZ0tHTmhiblpoY3lBOVBUMGdiblZzYkNrZ2UxeHVJQ0FnSUhKbGRIVnliaUI3SUdGMFRHVmhjM1JQYm1WV2FYTnBZbXhsUld4bGJXVnVkRG9nWm1Gc2MyVWdmVHRjYmlBZ2ZWeHVYRzRnSUdOdmJuTjBJSHRjYmlBZ0lDQnlaVzVrWlhKVFkzSnZiR3hpWVhKeklEMGdkSEoxWlN4Y2JpQWdJQ0J5Wlc1a1pYSlRaV3hsWTNScGIyNGdQU0IwY25WbExGeHVJQ0FnSUhKbGJtUmxja2R5YVdRZ1BTQjBjblZsTEZ4dUlDQWdJR2x6Ulhod2IzSjBhVzVuTEZ4dUlDQjlJRDBnY21WdVpHVnlRMjl1Wm1sbk8xeHVYRzRnSUdOdmJuTjBJR052Ym5SbGVIUWdQU0JqWVc1MllYTXVaMlYwUTI5dWRHVjRkQ2hjSWpKa1hDSXBJVHRjYmx4dUlDQmpiMjUwWlhoMExuTmxkRlJ5WVc1elptOXliU2d4TENBd0xDQXdMQ0F4TENBd0xDQXdLVHRjYmlBZ1kyOXVkR1Y0ZEM1ellYWmxLQ2s3WEc0Z0lHTnZiblJsZUhRdWMyTmhiR1VvYzJOaGJHVXNJSE5qWVd4bEtUdGNibHh1SUNBdkx5QlhhR1Z1SUdSdmFXNW5JR05oYkdOMWJHRjBhVzl1Y3lCaVlYTmxaQ0J2YmlCallXNTJZWE1nZDJsa2RHZ2dkMlVnYzJodmRXeGtJSFZ6WldRZ2JtOXliV0ZzYVhwbFpDQnZibVZjYmlBZ1kyOXVjM1FnYm05eWJXRnNhWHBsWkVOaGJuWmhjMWRwWkhSb0lEMGdZMkZ1ZG1GekxuZHBaSFJvSUM4Z2MyTmhiR1U3WEc0Z0lHTnZibk4wSUc1dmNtMWhiR2w2WldSRFlXNTJZWE5JWldsbmFIUWdQU0JqWVc1MllYTXVhR1ZwWjJoMElDOGdjMk5oYkdVN1hHNWNiaUFnYVdZZ0tHbHpSWGh3YjNKMGFXNW5JQ1ltSUhKbGJtUmxja052Ym1acFp5NTBhR1Z0WlNBOVBUMGdYQ0prWVhKclhDSXBJSHRjYmlBZ0lDQmpiMjUwWlhoMExtWnBiSFJsY2lBOUlGUklSVTFGWDBaSlRGUkZVanRjYmlBZ2ZWeHVYRzRnSUM4dklGQmhhVzUwSUdKaFkydG5jbTkxYm1SY2JpQWdhV1lnS0hSNWNHVnZaaUJ5Wlc1a1pYSkRiMjVtYVdjdWRtbGxkMEpoWTJ0bmNtOTFibVJEYjJ4dmNpQTlQVDBnWENKemRISnBibWRjSWlrZ2UxeHVJQ0FnSUdOdmJuTjBJR2hoYzFSeVlXNXpjR0Z5Wlc1alpTQTlYRzRnSUNBZ0lDQnlaVzVrWlhKRGIyNW1hV2N1ZG1sbGQwSmhZMnRuY205MWJtUkRiMnh2Y2lBOVBUMGdYQ0owY21GdWMzQmhjbVZ1ZEZ3aUlIeDhYRzRnSUNBZ0lDQnlaVzVrWlhKRGIyNW1hV2N1ZG1sbGQwSmhZMnRuY205MWJtUkRiMnh2Y2k1c1pXNW5kR2dnUFQwOUlEVWdmSHdnTHk4Z0kxSkhRa0ZjYmlBZ0lDQWdJSEpsYm1SbGNrTnZibVpwWnk1MmFXVjNRbUZqYTJkeWIzVnVaRU52Ykc5eUxteGxibWQwYUNBOVBUMGdPU0I4ZkNBdkx5QWpVbEpIUjBKQ1FWeHVJQ0FnSUNBZ0x5aG9jMnhoZkhKblltRXBYRndvTHk1MFpYTjBLSEpsYm1SbGNrTnZibVpwWnk1MmFXVjNRbUZqYTJkeWIzVnVaRU52Ykc5eUtUdGNiaUFnSUNCcFppQW9hR0Z6VkhKaGJuTndZWEpsYm1ObEtTQjdYRzRnSUNBZ0lDQmpiMjUwWlhoMExtTnNaV0Z5VW1WamRDZ3dMQ0F3TENCdWIzSnRZV3hwZW1Wa1EyRnVkbUZ6VjJsa2RHZ3NJRzV2Y20xaGJHbDZaV1JEWVc1MllYTklaV2xuYUhRcE8xeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1MFpYaDBMbk5oZG1Vb0tUdGNiaUFnSUNCamIyNTBaWGgwTG1acGJHeFRkSGxzWlNBOUlISmxibVJsY2tOdmJtWnBaeTUyYVdWM1FtRmphMmR5YjNWdVpFTnZiRzl5TzF4dUlDQWdJR052Ym5SbGVIUXVabWxzYkZKbFkzUW9NQ3dnTUN3Z2JtOXliV0ZzYVhwbFpFTmhiblpoYzFkcFpIUm9MQ0J1YjNKdFlXeHBlbVZrUTJGdWRtRnpTR1ZwWjJoMEtUdGNiaUFnSUNCamIyNTBaWGgwTG5KbGMzUnZjbVVvS1R0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNCamIyNTBaWGgwTG1Oc1pXRnlVbVZqZENnd0xDQXdMQ0J1YjNKdFlXeHBlbVZrUTJGdWRtRnpWMmxrZEdnc0lHNXZjbTFoYkdsNlpXUkRZVzUyWVhOSVpXbG5hSFFwTzF4dUlDQjlYRzVjYmlBZ0x5OGdRWEJ3YkhrZ2VtOXZiVnh1SUNCamIyNTBaWGgwTG5OaGRtVW9LVHRjYmlBZ1kyOXVkR1Y0ZEM1elkyRnNaU2h5Wlc1a1pYSkRiMjVtYVdjdWVtOXZiUzUyWVd4MVpTd2djbVZ1WkdWeVEyOXVabWxuTG5wdmIyMHVkbUZzZFdVcE8xeHVYRzRnSUM4dklFZHlhV1JjYmlBZ2FXWWdLSEpsYm1SbGNrZHlhV1FnSmlZZ1lYQndVM1JoZEdVdVozSnBaRk5wZW1VcElIdGNiaUFnSUNCemRISnZhMlZIY21sa0tGeHVJQ0FnSUNBZ1kyOXVkR1Y0ZEN4Y2JpQWdJQ0FnSUdGd2NGTjBZWFJsTG1keWFXUlRhWHBsTEZ4dUlDQWdJQ0FnTFUxaGRHZ3VZMlZwYkNoeVpXNWtaWEpEYjI1bWFXY3VlbTl2YlM1MllXeDFaU0F2SUdGd2NGTjBZWFJsTG1keWFXUlRhWHBsS1NBcVhHNGdJQ0FnSUNBZ0lHRndjRk4wWVhSbExtZHlhV1JUYVhwbElDdGNiaUFnSUNBZ0lDQWdLSEpsYm1SbGNrTnZibVpwWnk1elkzSnZiR3hZSUNVZ1lYQndVM1JoZEdVdVozSnBaRk5wZW1VcExGeHVJQ0FnSUNBZ0xVMWhkR2d1WTJWcGJDaHlaVzVrWlhKRGIyNW1hV2N1ZW05dmJTNTJZV3gxWlNBdklHRndjRk4wWVhSbExtZHlhV1JUYVhwbEtTQXFYRzRnSUNBZ0lDQWdJR0Z3Y0ZOMFlYUmxMbWR5YVdSVGFYcGxJQ3RjYmlBZ0lDQWdJQ0FnS0hKbGJtUmxja052Ym1acFp5NXpZM0p2Ykd4WklDVWdZWEJ3VTNSaGRHVXVaM0pwWkZOcGVtVXBMRnh1SUNBZ0lDQWdibTl5YldGc2FYcGxaRU5oYm5aaGMxZHBaSFJvSUM4Z2NtVnVaR1Z5UTI5dVptbG5MbnB2YjIwdWRtRnNkV1VzWEc0Z0lDQWdJQ0J1YjNKdFlXeHBlbVZrUTJGdWRtRnpTR1ZwWjJoMElDOGdjbVZ1WkdWeVEyOXVabWxuTG5wdmIyMHVkbUZzZFdVc1hHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lDOHZJRkJoYVc1MElIWnBjMmxpYkdVZ1pXeGxiV1Z1ZEhOY2JpQWdZMjl1YzNRZ2RtbHphV0pzWlVWc1pXMWxiblJ6SUQwZ1pXeGxiV1Z1ZEhNdVptbHNkR1Z5S0NobGJHVnRaVzUwS1NBOVBseHVJQ0FnSUdselZtbHphV0pzWlVWc1pXMWxiblFvWld4bGJXVnVkQ3dnYm05eWJXRnNhWHBsWkVOaGJuWmhjMWRwWkhSb0xDQnViM0p0WVd4cGVtVmtRMkZ1ZG1GelNHVnBaMmgwTENCN1hHNGdJQ0FnSUNCNmIyOXRPaUJ5Wlc1a1pYSkRiMjVtYVdjdWVtOXZiU3hjYmlBZ0lDQWdJRzltWm5ObGRFeGxablE2SUdGd2NGTjBZWFJsTG05bVpuTmxkRXhsWm5Rc1hHNGdJQ0FnSUNCdlptWnpaWFJVYjNBNklHRndjRk4wWVhSbExtOW1abk5sZEZSdmNDeGNiaUFnSUNBZ0lITmpjbTlzYkZnNklISmxibVJsY2tOdmJtWnBaeTV6WTNKdmJHeFlMRnh1SUNBZ0lDQWdjMk55YjJ4c1dUb2djbVZ1WkdWeVEyOXVabWxuTG5OamNtOXNiRmtzWEc0Z0lDQWdmU2tzWEc0Z0lDazdYRzVjYmlBZ2RtbHphV0pzWlVWc1pXMWxiblJ6TG1admNrVmhZMmdvS0dWc1pXMWxiblFwSUQwK0lIdGNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdjbVZ1WkdWeVJXeGxiV1Z1ZENobGJHVnRaVzUwTENCeVl5d2dZMjl1ZEdWNGRDd2djbVZ1WkdWeVEyOXVabWxuS1R0Y2JpQWdJQ0FnSUdsbUlDZ2hhWE5GZUhCdmNuUnBibWNwSUh0Y2JpQWdJQ0FnSUNBZ2NtVnVaR1Z5VEdsdWEwbGpiMjRvWld4bGJXVnVkQ3dnWTI5dWRHVjRkQ3dnWVhCd1UzUmhkR1VwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBnWTJGMFkyZ2dLR1Z5Y205eU9pQmhibmtwSUh0Y2JpQWdJQ0FnSUdOdmJuTnZiR1V1WlhKeWIzSW9aWEp5YjNJcE8xeHVJQ0FnSUgxY2JpQWdmU2s3WEc1Y2JpQWdhV1lnS0dGd2NGTjBZWFJsTG1Wa2FYUnBibWRNYVc1bFlYSkZiR1Z0Wlc1MEtTQjdYRzRnSUNBZ1kyOXVjM1FnWld4bGJXVnVkQ0E5SUV4cGJtVmhja1ZzWlcxbGJuUkZaR2wwYjNJdVoyVjBSV3hsYldWdWRDaGNiaUFnSUNBZ0lHRndjRk4wWVhSbExtVmthWFJwYm1kTWFXNWxZWEpGYkdWdFpXNTBMbVZzWlcxbGJuUkpaQ3hjYmlBZ0lDQXBPMXh1SUNBZ0lHbG1JQ2hsYkdWdFpXNTBLU0I3WEc0Z0lDQWdJQ0J5Wlc1a1pYSk1hVzVsWVhKUWIybHVkRWhoYm1Sc1pYTW9ZMjl1ZEdWNGRDd2dZWEJ3VTNSaGRHVXNJSEpsYm1SbGNrTnZibVpwWnl3Z1pXeGxiV1Z1ZENrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5OGdVR0ZwYm5RZ2MyVnNaV04wYVc5dUlHVnNaVzFsYm5SY2JpQWdhV1lnS0hObGJHVmpkR2x2YmtWc1pXMWxiblFwSUh0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ2NtVnVaR1Z5Uld4bGJXVnVkQ2h6Wld4bFkzUnBiMjVGYkdWdFpXNTBMQ0J5WXl3Z1kyOXVkR1Y0ZEN3Z2NtVnVaR1Z5UTI5dVptbG5LVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxjbkp2Y2pvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0JqYjI1emIyeGxMbVZ5Y205eUtHVnljbTl5S1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCcFppQW9hWE5DYVc1a2FXNW5SVzVoWW14bFpDaGhjSEJUZEdGMFpTa3BJSHRjYmlBZ0lDQmhjSEJUZEdGMFpTNXpkV2RuWlhOMFpXUkNhVzVrYVc1bmMxeHVJQ0FnSUNBZ0xtWnBiSFJsY2lnb1ltbHVaR2x1WnlrZ1BUNGdZbWx1WkdsdVp5QWhQU0J1ZFd4c0tWeHVJQ0FnSUNBZ0xtWnZja1ZoWTJnb0tITjFaMmRsYzNSbFpFSnBibVJwYm1jcElEMCtJSHRjYmlBZ0lDQWdJQ0FnY21WdVpHVnlRbWx1WkdsdVowaHBaMmhzYVdkb2RDaGpiMjUwWlhoMExDQnlaVzVrWlhKRGIyNW1hV2NzSUhOMVoyZGxjM1JsWkVKcGJtUnBibWNoS1R0Y2JpQWdJQ0FnSUgwcE8xeHVJQ0I5WEc1Y2JpQWdMeThnVUdGcGJuUWdjMlZzWldOMFpXUWdaV3hsYldWdWRITmNiaUFnYVdZZ0tGeHVJQ0FnSUhKbGJtUmxjbE5sYkdWamRHbHZiaUFtSmx4dUlDQWdJQ0ZoY0hCVGRHRjBaUzV0ZFd4MGFVVnNaVzFsYm5RZ0ppWmNiaUFnSUNBaFlYQndVM1JoZEdVdVpXUnBkR2x1WjB4cGJtVmhja1ZzWlcxbGJuUmNiaUFnS1NCN1hHNGdJQ0FnWTI5dWMzUWdjMlZzWldOMGFXOXVjeUE5SUdWc1pXMWxiblJ6TG5KbFpIVmpaU2dvWVdOakxDQmxiR1Z0Wlc1MEtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQnpaV3hsWTNScGIyNURiMnh2Y25NZ1BTQmJYVHRjYmlBZ0lDQWdJQzh2SUd4dlkyRnNJSFZ6WlhKY2JpQWdJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lDQWdZWEJ3VTNSaGRHVXVjMlZzWldOMFpXUkZiR1Z0Wlc1MFNXUnpXMlZzWlcxbGJuUXVhV1JkSUNZbVhHNGdJQ0FnSUNBZ0lDRnBjMU5sYkdWamRHVmtWbWxoUjNKdmRYQW9ZWEJ3VTNSaGRHVXNJR1ZzWlcxbGJuUXBYRzRnSUNBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnYzJWc1pXTjBhVzl1UTI5c2IzSnpMbkIxYzJnb2IyTXVZbXhoWTJzcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0x5OGdjbVZ0YjNSbElIVnpaWEp6WEc0Z0lDQWdJQ0JwWmlBb2NtVnVaR1Z5UTI5dVptbG5MbkpsYlc5MFpWTmxiR1ZqZEdWa1JXeGxiV1Z1ZEVsa2MxdGxiR1Z0Wlc1MExtbGtYU2tnZTF4dUlDQWdJQ0FnSUNCelpXeGxZM1JwYjI1RGIyeHZjbk11Y0hWemFDaGNiaUFnSUNBZ0lDQWdJQ0F1TGk1eVpXNWtaWEpEYjI1bWFXY3VjbVZ0YjNSbFUyVnNaV04wWldSRmJHVnRaVzUwU1dSelcyVnNaVzFsYm5RdWFXUmRMbTFoY0NoY2JpQWdJQ0FnSUNBZ0lDQWdJQ2h6YjJOclpYUkpaQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0I3SUdKaFkydG5jbTkxYm1RZ2ZTQTlJR2RsZEVOc2FXVnVkRU52Ykc5eWN5aHpiMk5yWlhSSlpDd2dZWEJ3VTNSaGRHVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1ltRmphMmR5YjNWdVpEdGNiaUFnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdLU3hjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdsbUlDaHpaV3hsWTNScGIyNURiMnh2Y25NdWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUZ0bGJHVnRaVzUwV0RFc0lHVnNaVzFsYm5SWk1Td2daV3hsYldWdWRGZ3lMQ0JsYkdWdFpXNTBXVEpkSUQxY2JpQWdJQ0FnSUNBZ0lDQm5aWFJGYkdWdFpXNTBRV0p6YjJ4MWRHVkRiMjl5WkhNb1pXeGxiV1Z1ZENrN1hHNGdJQ0FnSUNBZ0lHRmpZeTV3ZFhOb0tIdGNiaUFnSUNBZ0lDQWdJQ0JoYm1kc1pUb2daV3hsYldWdWRDNWhibWRzWlN4Y2JpQWdJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MFdERXNYRzRnSUNBZ0lDQWdJQ0FnWld4bGJXVnVkRmt4TEZ4dUlDQWdJQ0FnSUNBZ0lHVnNaVzFsYm5SWU1peGNiaUFnSUNBZ0lDQWdJQ0JsYkdWdFpXNTBXVElzWEc0Z0lDQWdJQ0FnSUNBZ2MyVnNaV04wYVc5dVEyOXNiM0p6TEZ4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCaFkyTTdYRzRnSUNBZ2ZTd2dXMTBnWVhNZ2V5QmhibWRzWlRvZ2JuVnRZbVZ5T3lCbGJHVnRaVzUwV0RFNklHNTFiV0psY2pzZ1pXeGxiV1Z1ZEZreE9pQnVkVzFpWlhJN0lHVnNaVzFsYm5SWU1qb2diblZ0WW1WeU95QmxiR1Z0Wlc1MFdUSTZJRzUxYldKbGNqc2djMlZzWldOMGFXOXVRMjlzYjNKek9pQnpkSEpwYm1kYlhTQjlXMTBwTzF4dVhHNGdJQ0FnWTI5dWMzUWdZV1JrVTJWc1pXTjBhVzl1Um05eVIzSnZkWEJKWkNBOUlDaG5jbTkxY0Vsa09pQkhjbTkxY0Vsa0tTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQm5jbTkxY0VWc1pXMWxiblJ6SUQwZ1oyVjBSV3hsYldWdWRITkpia2R5YjNWd0tHVnNaVzFsYm5SekxDQm5jbTkxY0Vsa0tUdGNiaUFnSUNBZ0lHTnZibk4wSUZ0bGJHVnRaVzUwV0RFc0lHVnNaVzFsYm5SWk1Td2daV3hsYldWdWRGZ3lMQ0JsYkdWdFpXNTBXVEpkSUQxY2JpQWdJQ0FnSUNBZ1oyVjBRMjl0Ylc5dVFtOTFibVJ6S0dkeWIzVndSV3hsYldWdWRITXBPMXh1SUNBZ0lDQWdjMlZzWldOMGFXOXVjeTV3ZFhOb0tIdGNiaUFnSUNBZ0lDQWdZVzVuYkdVNklEQXNYRzRnSUNBZ0lDQWdJR1ZzWlcxbGJuUllNU3hjYmlBZ0lDQWdJQ0FnWld4bGJXVnVkRmd5TEZ4dUlDQWdJQ0FnSUNCbGJHVnRaVzUwV1RFc1hHNGdJQ0FnSUNBZ0lHVnNaVzFsYm5SWk1peGNiaUFnSUNBZ0lDQWdjMlZzWldOMGFXOXVRMjlzYjNKek9pQmJiMk11WW14aFkydGRMRnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmVHRjYmx4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnWjNKdmRYQkpaQ0J2WmlCblpYUlRaV3hsWTNSbFpFZHliM1Z3U1dSektHRndjRk4wWVhSbEtTa2dlMXh1SUNBZ0lDQWdMeThnVkU5RVR6b2djM1Z3Y0c5eWRDQnRkV3gwYVhCc1lYbGxjaUJ6Wld4bFkzUmxaQ0JuY205MWNDQkpSSE5jYmlBZ0lDQWdJR0ZrWkZObGJHVmpkR2x2YmtadmNrZHliM1Z3U1dRb1ozSnZkWEJKWkNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHRndjRk4wWVhSbExtVmthWFJwYm1kSGNtOTFjRWxrS1NCN1hHNGdJQ0FnSUNCaFpHUlRaV3hsWTNScGIyNUdiM0pIY205MWNFbGtLR0Z3Y0ZOMFlYUmxMbVZrYVhScGJtZEhjbTkxY0Vsa0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCelpXeGxZM1JwYjI1ekxtWnZja1ZoWTJnb0tITmxiR1ZqZEdsdmJpa2dQVDVjYmlBZ0lDQWdJSEpsYm1SbGNsTmxiR1ZqZEdsdmJrSnZjbVJsY2loamIyNTBaWGgwTENCeVpXNWtaWEpEYjI1bWFXY3NJSE5sYkdWamRHbHZiaWtzWEc0Z0lDQWdLVHRjYmx4dUlDQWdJR052Ym5OMElHeHZZMkZzYkhsVFpXeGxZM1JsWkVWc1pXMWxiblJ6SUQwZ1oyVjBVMlZzWldOMFpXUkZiR1Z0Wlc1MGN5aGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXBPMXh1WEc0Z0lDQWdMeThnVUdGcGJuUWdjbVZ6YVhwbElIUnlZVzV6Wm05eWJVaGhibVJzWlhOY2JpQWdJQ0JqYjI1MFpYaDBMbk5oZG1Vb0tUdGNiaUFnSUNCamIyNTBaWGgwTG5SeVlXNXpiR0YwWlNoeVpXNWtaWEpEYjI1bWFXY3VjMk55YjJ4c1dDd2djbVZ1WkdWeVEyOXVabWxuTG5OamNtOXNiRmtwTzF4dUlDQWdJR2xtSUNoc2IyTmhiR3g1VTJWc1pXTjBaV1JGYkdWdFpXNTBjeTVzWlc1bmRHZ2dQVDA5SURFcElIdGNiaUFnSUNBZ0lHTnZiblJsZUhRdVptbHNiRk4wZVd4bElEMGdiMk11ZDJocGRHVTdYRzRnSUNBZ0lDQmpiMjV6ZENCMGNtRnVjMlp2Y20xSVlXNWtiR1Z6SUQwZ1oyVjBWSEpoYm5ObWIzSnRTR0Z1Wkd4bGN5aGNiaUFnSUNBZ0lDQWdiRzlqWVd4c2VWTmxiR1ZqZEdWa1JXeGxiV1Z1ZEhOYk1GMHNYRzRnSUNBZ0lDQWdJSEpsYm1SbGNrTnZibVpwWnk1NmIyOXRMRnh1SUNBZ0lDQWdJQ0JjSW0xdmRYTmxYQ0lzSUM4dklIZG9aVzRnZDJVZ2NtVnVaR1Z5SUhkbElHUnZiaWQwSUd0dWIzY2dkMmhwWTJnZ2NHOXBiblJsY2lCMGVYQmxJSE52SUhWelpTQnRiM1Z6WlZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUdsbUlDZ2hZWEJ3VTNSaGRHVXVkbWxsZDAxdlpHVkZibUZpYkdWa0tTQjdYRzRnSUNBZ0lDQWdJSEpsYm1SbGNsUnlZVzV6Wm05eWJVaGhibVJzWlhNb1hHNGdJQ0FnSUNBZ0lDQWdZMjl1ZEdWNGRDeGNiaUFnSUNBZ0lDQWdJQ0J5Wlc1a1pYSkRiMjVtYVdjc1hHNGdJQ0FnSUNBZ0lDQWdkSEpoYm5ObWIzSnRTR0Z1Wkd4bGN5eGNiaUFnSUNBZ0lDQWdJQ0JzYjJOaGJHeDVVMlZzWldOMFpXUkZiR1Z0Wlc1MGMxc3dYUzVoYm1kc1pTeGNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlJR1ZzYzJVZ2FXWWdLR3h2WTJGc2JIbFRaV3hsWTNSbFpFVnNaVzFsYm5SekxteGxibWQwYUNBK0lERWdKaVlnSVdGd2NGTjBZWFJsTG1selVtOTBZWFJwYm1jcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdSaGMyaGxaRXhwYm1WUVlXUmthVzVuSUQwZ05DQXZJSEpsYm1SbGNrTnZibVpwWnk1NmIyOXRMblpoYkhWbE8xeHVJQ0FnSUNBZ1kyOXVkR1Y0ZEM1bWFXeHNVM1I1YkdVZ1BTQnZZeTUzYUdsMFpUdGNiaUFnSUNBZ0lHTnZibk4wSUZ0NE1Td2dlVEVzSUhneUxDQjVNbDBnUFNCblpYUkRiMjF0YjI1Q2IzVnVaSE1vYkc5allXeHNlVk5sYkdWamRHVmtSV3hsYldWdWRITXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2FXNXBkR2xoYkV4cGJtVkVZWE5vSUQwZ1kyOXVkR1Y0ZEM1blpYUk1hVzVsUkdGemFDZ3BPMXh1SUNBZ0lDQWdZMjl1ZEdWNGRDNXpaWFJNYVc1bFJHRnphQ2hiTWlBdklISmxibVJsY2tOdmJtWnBaeTU2YjI5dExuWmhiSFZsWFNrN1hHNGdJQ0FnSUNCamIyNXpkQ0JzYVc1bFYybGtkR2dnUFNCamIyNTBaWGgwTG14cGJtVlhhV1IwYUR0Y2JpQWdJQ0FnSUdOdmJuUmxlSFF1YkdsdVpWZHBaSFJvSUQwZ01TQXZJSEpsYm1SbGNrTnZibVpwWnk1NmIyOXRMblpoYkhWbE8xeHVJQ0FnSUNBZ2MzUnliMnRsVW1WamRGZHBkR2hTYjNSaGRHbHZiaWhjYmlBZ0lDQWdJQ0FnWTI5dWRHVjRkQ3hjYmlBZ0lDQWdJQ0FnZURFZ0xTQmtZWE5vWldSTWFXNWxVR0ZrWkdsdVp5eGNiaUFnSUNBZ0lDQWdlVEVnTFNCa1lYTm9aV1JNYVc1bFVHRmtaR2x1Wnl4Y2JpQWdJQ0FnSUNBZ2VESWdMU0I0TVNBcklHUmhjMmhsWkV4cGJtVlFZV1JrYVc1bklDb2dNaXhjYmlBZ0lDQWdJQ0FnZVRJZ0xTQjVNU0FySUdSaGMyaGxaRXhwYm1WUVlXUmthVzVuSUNvZ01peGNiaUFnSUNBZ0lDQWdLSGd4SUNzZ2VESXBJQzhnTWl4Y2JpQWdJQ0FnSUNBZ0tIa3hJQ3NnZVRJcElDOGdNaXhjYmlBZ0lDQWdJQ0FnTUN4Y2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCamIyNTBaWGgwTG14cGJtVlhhV1IwYUNBOUlHeHBibVZYYVdSMGFEdGNiaUFnSUNBZ0lHTnZiblJsZUhRdWMyVjBUR2x1WlVSaGMyZ29hVzVwZEdsaGJFeHBibVZFWVhOb0tUdGNiaUFnSUNBZ0lHTnZibk4wSUhSeVlXNXpabTl5YlVoaGJtUnNaWE1nUFNCblpYUlVjbUZ1YzJadmNtMUlZVzVrYkdWelJuSnZiVU52YjNKa2N5aGNiaUFnSUNBZ0lDQWdXM2d4TENCNU1Td2dlRElzSUhreVhTeGNiaUFnSUNBZ0lDQWdNQ3hjYmlBZ0lDQWdJQ0FnY21WdVpHVnlRMjl1Wm1sbkxucHZiMjBzWEc0Z0lDQWdJQ0FnSUZ3aWJXOTFjMlZjSWl4Y2JpQWdJQ0FnSUNBZ1QwMUpWRjlUU1VSRlUxOUdUMUpmVFZWTVZFbFFURVZmUlV4RlRVVk9WRk1zWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnY21WdVpHVnlWSEpoYm5ObWIzSnRTR0Z1Wkd4bGN5aGpiMjUwWlhoMExDQnlaVzVrWlhKRGIyNW1hV2NzSUhSeVlXNXpabTl5YlVoaGJtUnNaWE1zSURBcE8xeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1MFpYaDBMbkpsYzNSdmNtVW9LVHRjYmlBZ2ZWeHVYRzRnSUM4dklGSmxjMlYwSUhwdmIyMWNiaUFnWTI5dWRHVjRkQzV5WlhOMGIzSmxLQ2s3WEc1Y2JpQWdMeThnVUdGcGJuUWdjbVZ0YjNSbElIQnZhVzUwWlhKelhHNGdJR1p2Y2lBb1kyOXVjM1FnWTJ4cFpXNTBTV1FnYVc0Z2NtVnVaR1Z5UTI5dVptbG5MbkpsYlc5MFpWQnZhVzUwWlhKV2FXVjNjRzl5ZEVOdmIzSmtjeWtnZTF4dUlDQWdJR3hsZENCN0lIZ3NJSGtnZlNBOUlISmxibVJsY2tOdmJtWnBaeTV5WlcxdmRHVlFiMmx1ZEdWeVZtbGxkM0J2Y25SRGIyOXlaSE5iWTJ4cFpXNTBTV1JkTzF4dVhHNGdJQ0FnZUNBdFBTQmhjSEJUZEdGMFpTNXZabVp6WlhSTVpXWjBPMXh1SUNBZ0lIa2dMVDBnWVhCd1UzUmhkR1V1YjJabWMyVjBWRzl3TzF4dVhHNGdJQ0FnWTI5dWMzUWdkMmxrZEdnZ1BTQTVPMXh1SUNBZ0lHTnZibk4wSUdobGFXZG9kQ0E5SURFME8xeHVYRzRnSUNBZ1kyOXVjM1FnYVhOUGRYUlBaa0p2ZFc1a2N5QTlYRzRnSUNBZ0lDQjRJRHdnTUNCOGZGeHVJQ0FnSUNBZ2VDQStJRzV2Y20xaGJHbDZaV1JEWVc1MllYTlhhV1IwYUNBdElIZHBaSFJvSUh4OFhHNGdJQ0FnSUNCNUlEd2dNQ0I4ZkZ4dUlDQWdJQ0FnZVNBK0lHNXZjbTFoYkdsNlpXUkRZVzUyWVhOSVpXbG5hSFFnTFNCb1pXbG5hSFE3WEc1Y2JpQWdJQ0I0SUQwZ1RXRjBhQzV0WVhnb2VDd2dNQ2s3WEc0Z0lDQWdlQ0E5SUUxaGRHZ3ViV2x1S0hnc0lHNXZjbTFoYkdsNlpXUkRZVzUyWVhOWGFXUjBhQ0F0SUhkcFpIUm9LVHRjYmlBZ0lDQjVJRDBnVFdGMGFDNXRZWGdvZVN3Z01DazdYRzRnSUNBZ2VTQTlJRTFoZEdndWJXbHVLSGtzSUc1dmNtMWhiR2w2WldSRFlXNTJZWE5JWldsbmFIUWdMU0JvWldsbmFIUXBPMXh1WEc0Z0lDQWdZMjl1YzNRZ2V5QmlZV05yWjNKdmRXNWtMQ0J6ZEhKdmEyVWdmU0E5SUdkbGRFTnNhV1Z1ZEVOdmJHOXljeWhqYkdsbGJuUkpaQ3dnWVhCd1UzUmhkR1VwTzF4dVhHNGdJQ0FnWTI5dWRHVjRkQzV6WVhabEtDazdYRzRnSUNBZ1kyOXVkR1Y0ZEM1emRISnZhMlZUZEhsc1pTQTlJSE4wY205clpUdGNiaUFnSUNCamIyNTBaWGgwTG1acGJHeFRkSGxzWlNBOUlHSmhZMnRuY205MWJtUTdYRzVjYmlBZ0lDQmpiMjV6ZENCMWMyVnlVM1JoZEdVZ1BTQnlaVzVrWlhKRGIyNW1hV2N1Y21WdGIzUmxVRzlwYm5SbGNsVnpaWEpUZEdGMFpYTmJZMnhwWlc1MFNXUmRPMXh1SUNBZ0lHbG1JQ2hwYzA5MWRFOW1RbTkxYm1SeklIeDhJSFZ6WlhKVGRHRjBaU0E5UFQwZ1ZYTmxja2xrYkdWVGRHRjBaUzVCVjBGWktTQjdYRzRnSUNBZ0lDQmpiMjUwWlhoMExtZHNiMkpoYkVGc2NHaGhJRDBnTUM0ME9EdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9YRzRnSUNBZ0lDQnlaVzVrWlhKRGIyNW1hV2N1Y21WdGIzUmxVRzlwYm5SbGNrSjFkSFJ2YmlBbUpseHVJQ0FnSUNBZ2NtVnVaR1Z5UTI5dVptbG5MbkpsYlc5MFpWQnZhVzUwWlhKQ2RYUjBiMjViWTJ4cFpXNTBTV1JkSUQwOVBTQmNJbVJ2ZDI1Y0lseHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ1kyOXVkR1Y0ZEM1aVpXZHBibEJoZEdnb0tUdGNiaUFnSUNBZ0lHTnZiblJsZUhRdVlYSmpLSGdzSUhrc0lERTFMQ0F3TENBeUlDb2dUV0YwYUM1UVNTd2dabUZzYzJVcE8xeHVJQ0FnSUNBZ1kyOXVkR1Y0ZEM1c2FXNWxWMmxrZEdnZ1BTQXpPMXh1SUNBZ0lDQWdZMjl1ZEdWNGRDNXpkSEp2YTJWVGRIbHNaU0E5SUZ3aUkyWm1abVptWmpnNFhDSTdYRzRnSUNBZ0lDQmpiMjUwWlhoMExuTjBjbTlyWlNncE8xeHVJQ0FnSUNBZ1kyOXVkR1Y0ZEM1amJHOXpaVkJoZEdnb0tUdGNibHh1SUNBZ0lDQWdZMjl1ZEdWNGRDNWlaV2RwYmxCaGRHZ29LVHRjYmlBZ0lDQWdJR052Ym5SbGVIUXVZWEpqS0hnc0lIa3NJREUxTENBd0xDQXlJQ29nVFdGMGFDNVFTU3dnWm1Gc2MyVXBPMXh1SUNBZ0lDQWdZMjl1ZEdWNGRDNXNhVzVsVjJsa2RHZ2dQU0F4TzF4dUlDQWdJQ0FnWTI5dWRHVjRkQzV6ZEhKdmEyVlRkSGxzWlNBOUlITjBjbTlyWlR0Y2JpQWdJQ0FnSUdOdmJuUmxlSFF1YzNSeWIydGxLQ2s3WEc0Z0lDQWdJQ0JqYjI1MFpYaDBMbU5zYjNObFVHRjBhQ2dwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5SbGVIUXVZbVZuYVc1UVlYUm9LQ2s3WEc0Z0lDQWdZMjl1ZEdWNGRDNXRiM1psVkc4b2VDd2dlU2s3WEc0Z0lDQWdZMjl1ZEdWNGRDNXNhVzVsVkc4b2VDQXJJREVzSUhrZ0t5QXhOQ2s3WEc0Z0lDQWdZMjl1ZEdWNGRDNXNhVzVsVkc4b2VDQXJJRFFzSUhrZ0t5QTVLVHRjYmlBZ0lDQmpiMjUwWlhoMExteHBibVZVYnloNElDc2dPU3dnZVNBcklERXdLVHRjYmlBZ0lDQmpiMjUwWlhoMExteHBibVZVYnloNExDQjVLVHRjYmlBZ0lDQmpiMjUwWlhoMExtWnBiR3dvS1R0Y2JpQWdJQ0JqYjI1MFpYaDBMbk4wY205clpTZ3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ2RYTmxjbTVoYldVZ1BTQnlaVzVrWlhKRGIyNW1hV2N1Y21WdGIzUmxVRzlwYm5SbGNsVnpaWEp1WVcxbGMxdGpiR2xsYm5SSlpGMDdYRzVjYmlBZ0lDQnNaWFFnYVdSc1pWTjBZWFJsSUQwZ1hDSmNJanRjYmlBZ0lDQnBaaUFvZFhObGNsTjBZWFJsSUQwOVBTQlZjMlZ5U1dSc1pWTjBZWFJsTGtGWFFWa3BJSHRjYmlBZ0lDQWdJR2xrYkdWVGRHRjBaU0E5SUdoaGMwVnRiMnBwVTNWd2NHOXlkQ0EvSUZ3aTRwcXI3N2lQWENJZ09pQmdJQ2drZTFWelpYSkpaR3hsVTNSaGRHVXVRVmRCV1gwcFlEdGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tIVnpaWEpUZEdGMFpTQTlQVDBnVlhObGNrbGtiR1ZUZEdGMFpTNUpSRXhGS1NCN1hHNGdJQ0FnSUNCcFpHeGxVM1JoZEdVZ1BTQm9ZWE5GYlc5cWFWTjFjSEJ2Y25RZ1B5QmNJdkNma3FSY0lpQTZJR0FnS0NSN1ZYTmxja2xrYkdWVGRHRjBaUzVKUkV4RmZTbGdPMXh1SUNBZ0lIMGdaV3h6WlNCcFppQW9kWE5sY2xOMFlYUmxJRDA5UFNCVmMyVnlTV1JzWlZOMFlYUmxMa0ZEVkVsV1JTa2dlMXh1SUNBZ0lDQWdhV1JzWlZOMFlYUmxJRDBnYUdGelJXMXZhbWxUZFhCd2IzSjBJRDhnWENMd241K2lYQ0lnT2lCY0lsd2lPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhWelpYSnVZVzFsUVc1a1NXUnNaVk4wWVhSbElEMGdZQ1I3WEc0Z0lDQWdJQ0IxYzJWeWJtRnRaU0EvSUdBa2UzVnpaWEp1WVcxbGZTQmdJRG9nWENKY0lseHVJQ0FnSUgwa2UybGtiR1ZUZEdGMFpYMWdPMXh1WEc0Z0lDQWdhV1lnS0NGcGMwOTFkRTltUW05MWJtUnpJQ1ltSUhWelpYSnVZVzFsUVc1a1NXUnNaVk4wWVhSbEtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCdlptWnpaWFJZSUQwZ2VDQXJJSGRwWkhSb08xeHVJQ0FnSUNBZ1kyOXVjM1FnYjJabWMyVjBXU0E5SUhrZ0t5Qm9aV2xuYUhRN1hHNGdJQ0FnSUNCamIyNXpkQ0J3WVdSa2FXNW5TRzl5YVhwdmJuUmhiQ0E5SURRN1hHNGdJQ0FnSUNCamIyNXpkQ0J3WVdSa2FXNW5WbVZ5ZEdsallXd2dQU0EwTzF4dUlDQWdJQ0FnWTI5dWMzUWdiV1ZoYzNWeVpTQTlJR052Ym5SbGVIUXViV1ZoYzNWeVpWUmxlSFFvZFhObGNtNWhiV1ZCYm1SSlpHeGxVM1JoZEdVcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYldWaGMzVnlaVWhsYVdkb2RDQTlYRzRnSUNBZ0lDQWdJRzFsWVhOMWNtVXVZV04wZFdGc1FtOTFibVJwYm1kQ2IzaEVaWE5qWlc1MElDc2diV1ZoYzNWeVpTNWhZM1IxWVd4Q2IzVnVaR2x1WjBKdmVFRnpZMlZ1ZER0Y2JseHVJQ0FnSUNBZ0x5OGdRbTl5WkdWeVhHNGdJQ0FnSUNCamIyNTBaWGgwTG1acGJHeFRkSGxzWlNBOUlITjBjbTlyWlR0Y2JpQWdJQ0FnSUdOdmJuUmxlSFF1Wm1sc2JGSmxZM1FvWEc0Z0lDQWdJQ0FnSUc5bVpuTmxkRmdnTFNBeExGeHVJQ0FnSUNBZ0lDQnZabVp6WlhSWklDMGdNU3hjYmlBZ0lDQWdJQ0FnYldWaGMzVnlaUzUzYVdSMGFDQXJJRElnS2lCd1lXUmthVzVuU0c5eWFYcHZiblJoYkNBcklESXNYRzRnSUNBZ0lDQWdJRzFsWVhOMWNtVklaV2xuYUhRZ0t5QXlJQ29nY0dGa1pHbHVaMVpsY25ScFkyRnNJQ3NnTWl4Y2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBdkx5QkNZV05yWjNKdmRXNWtYRzRnSUNBZ0lDQmpiMjUwWlhoMExtWnBiR3hUZEhsc1pTQTlJR0poWTJ0bmNtOTFibVE3WEc0Z0lDQWdJQ0JqYjI1MFpYaDBMbVpwYkd4U1pXTjBLRnh1SUNBZ0lDQWdJQ0J2Wm1aelpYUllMRnh1SUNBZ0lDQWdJQ0J2Wm1aelpYUlpMRnh1SUNBZ0lDQWdJQ0J0WldGemRYSmxMbmRwWkhSb0lDc2dNaUFxSUhCaFpHUnBibWRJYjNKcGVtOXVkR0ZzTEZ4dUlDQWdJQ0FnSUNCdFpXRnpkWEpsU0dWcFoyaDBJQ3NnTWlBcUlIQmhaR1JwYm1kV1pYSjBhV05oYkN4Y2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCamIyNTBaWGgwTG1acGJHeFRkSGxzWlNBOUlHOWpMbmRvYVhSbE8xeHVYRzRnSUNBZ0lDQmpiMjUwWlhoMExtWnBiR3hVWlhoMEtGeHVJQ0FnSUNBZ0lDQjFjMlZ5Ym1GdFpVRnVaRWxrYkdWVGRHRjBaU3hjYmlBZ0lDQWdJQ0FnYjJabWMyVjBXQ0FySUhCaFpHUnBibWRJYjNKcGVtOXVkR0ZzTEZ4dUlDQWdJQ0FnSUNCdlptWnpaWFJaSUNzZ2NHRmtaR2x1WjFabGNuUnBZMkZzSUNzZ2JXVmhjM1Z5WlM1aFkzUjFZV3hDYjNWdVpHbHVaMEp2ZUVGelkyVnVkQ3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1ZEdWNGRDNXlaWE4wYjNKbEtDazdYRzRnSUNBZ1kyOXVkR1Y0ZEM1amJHOXpaVkJoZEdnb0tUdGNiaUFnZlZ4dVhHNGdJQzh2SUZCaGFXNTBJSE5qY205c2JHSmhjbk5jYmlBZ2JHVjBJSE5qY205c2JFSmhjbk03WEc0Z0lHbG1JQ2h5Wlc1a1pYSlRZM0p2Ykd4aVlYSnpLU0I3WEc0Z0lDQWdjMk55YjJ4c1FtRnljeUE5SUdkbGRGTmpjbTlzYkVKaGNuTW9YRzRnSUNBZ0lDQmxiR1Z0Wlc1MGN5eGNiaUFnSUNBZ0lHNXZjbTFoYkdsNlpXUkRZVzUyWVhOWGFXUjBhQ3hjYmlBZ0lDQWdJRzV2Y20xaGJHbDZaV1JEWVc1MllYTklaV2xuYUhRc1hHNGdJQ0FnSUNCeVpXNWtaWEpEYjI1bWFXY3NYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHTnZiblJsZUhRdWMyRjJaU2dwTzF4dUlDQWdJR052Ym5SbGVIUXVabWxzYkZOMGVXeGxJRDBnVTBOU1QweE1Ra0ZTWDBOUFRFOVNPMXh1SUNBZ0lHTnZiblJsZUhRdWMzUnliMnRsVTNSNWJHVWdQU0JjSW5KblltRW9NalUxTERJMU5Td3lOVFVzTUM0NEtWd2lPMXh1SUNBZ0lGdHpZM0p2Ykd4Q1lYSnpMbWh2Y21sNmIyNTBZV3dzSUhOamNtOXNiRUpoY25NdWRtVnlkR2xqWVd4ZExtWnZja1ZoWTJnb0tITmpjbTlzYkVKaGNpa2dQVDRnZTF4dUlDQWdJQ0FnYVdZZ0tITmpjbTlzYkVKaGNpa2dlMXh1SUNBZ0lDQWdJQ0J5YjNWdVpGSmxZM1FvWEc0Z0lDQWdJQ0FnSUNBZ1kyOXVkR1Y0ZEN4Y2JpQWdJQ0FnSUNBZ0lDQnpZM0p2Ykd4Q1lYSXVlQ3hjYmlBZ0lDQWdJQ0FnSUNCelkzSnZiR3hDWVhJdWVTeGNiaUFnSUNBZ0lDQWdJQ0J6WTNKdmJHeENZWEl1ZDJsa2RHZ3NYRzRnSUNBZ0lDQWdJQ0FnYzJOeWIyeHNRbUZ5TG1obGFXZG9kQ3hjYmlBZ0lDQWdJQ0FnSUNCVFExSlBURXhDUVZKZlYwbEVWRWdnTHlBeUxGeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHBPMXh1SUNBZ0lHTnZiblJsZUhRdWNtVnpkRzl5WlNncE8xeHVJQ0I5WEc1Y2JpQWdZMjl1ZEdWNGRDNXlaWE4wYjNKbEtDazdYRzRnSUhKbGRIVnliaUI3SUdGMFRHVmhjM1JQYm1WV2FYTnBZbXhsUld4bGJXVnVkRG9nZG1semFXSnNaVVZzWlcxbGJuUnpMbXhsYm1kMGFDQStJREFzSUhOamNtOXNiRUpoY25NZ2ZUdGNibjA3WEc1Y2JtTnZibk4wSUhKbGJtUmxjbFJ5WVc1elptOXliVWhoYm1Sc1pYTWdQU0FvWEc0Z0lHTnZiblJsZUhRNklFTmhiblpoYzFKbGJtUmxjbWx1WjBOdmJuUmxlSFF5UkN4Y2JpQWdjbVZ1WkdWeVEyOXVabWxuT2lCU1pXNWtaWEpEYjI1bWFXY3NYRzRnSUhSeVlXNXpabTl5YlVoaGJtUnNaWE02SUZSeVlXNXpabTl5YlVoaGJtUnNaWE1zWEc0Z0lHRnVaMnhsT2lCdWRXMWlaWElzWEc0cE9pQjJiMmxrSUQwK0lIdGNiaUFnVDJKcVpXTjBMbXRsZVhNb2RISmhibk5tYjNKdFNHRnVaR3hsY3lrdVptOXlSV0ZqYUNnb2EyVjVLU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdkSEpoYm5ObWIzSnRTR0Z1Wkd4bElEMGdkSEpoYm5ObWIzSnRTR0Z1Wkd4bGMxdHJaWGtnWVhNZ1ZISmhibk5tYjNKdFNHRnVaR3hsVkhsd1pWMDdYRzRnSUNBZ2FXWWdLSFJ5WVc1elptOXliVWhoYm1Sc1pTQWhQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNCamIyNTBaWGgwTG5OaGRtVW9LVHRjYmlBZ0lDQWdJR052Ym5SbGVIUXViR2x1WlZkcFpIUm9JRDBnTVNBdklISmxibVJsY2tOdmJtWnBaeTU2YjI5dExuWmhiSFZsTzF4dUlDQWdJQ0FnYVdZZ0tHdGxlU0E5UFQwZ1hDSnliM1JoZEdsdmJsd2lLU0I3WEc0Z0lDQWdJQ0FnSUdacGJHeERhWEpqYkdVb1hHNGdJQ0FnSUNBZ0lDQWdZMjl1ZEdWNGRDeGNiaUFnSUNBZ0lDQWdJQ0IwY21GdWMyWnZjbTFJWVc1a2JHVmJNRjBnS3lCMGNtRnVjMlp2Y20xSVlXNWtiR1ZiTWwwZ0x5QXlMRnh1SUNBZ0lDQWdJQ0FnSUhSeVlXNXpabTl5YlVoaGJtUnNaVnN4WFNBcklIUnlZVzV6Wm05eWJVaGhibVJzWlZzelhTQXZJRElzWEc0Z0lDQWdJQ0FnSUNBZ2RISmhibk5tYjNKdFNHRnVaR3hsV3pKZElDOGdNaXhjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhOMGNtOXJaVkpsWTNSWGFYUm9VbTkwWVhScGIyNG9YRzRnSUNBZ0lDQWdJQ0FnWTI5dWRHVjRkQ3hjYmlBZ0lDQWdJQ0FnSUNCMGNtRnVjMlp2Y20xSVlXNWtiR1ZiTUYwc1hHNGdJQ0FnSUNBZ0lDQWdkSEpoYm5ObWIzSnRTR0Z1Wkd4bFd6RmRMRnh1SUNBZ0lDQWdJQ0FnSUhSeVlXNXpabTl5YlVoaGJtUnNaVnN5WFN4Y2JpQWdJQ0FnSUNBZ0lDQjBjbUZ1YzJadmNtMUlZVzVrYkdWYk0xMHNYRzRnSUNBZ0lDQWdJQ0FnZEhKaGJuTm1iM0p0U0dGdVpHeGxXekJkSUNzZ2RISmhibk5tYjNKdFNHRnVaR3hsV3pKZElDOGdNaXhjYmlBZ0lDQWdJQ0FnSUNCMGNtRnVjMlp2Y20xSVlXNWtiR1ZiTVYwZ0t5QjBjbUZ1YzJadmNtMUlZVzVrYkdWYk0xMGdMeUF5TEZ4dUlDQWdJQ0FnSUNBZ0lHRnVaMnhsTEZ4dUlDQWdJQ0FnSUNBZ0lIUnlkV1VzSUM4dklHWnBiR3dnWW1WbWIzSmxJSE4wY205clpWeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdZMjl1ZEdWNGRDNXlaWE4wYjNKbEtDazdYRzRnSUNBZ2ZWeHVJQ0I5S1R0Y2JuMDdYRzVjYm1OdmJuTjBJSEpsYm1SbGNsTmxiR1ZqZEdsdmJrSnZjbVJsY2lBOUlDaGNiaUFnWTI5dWRHVjRkRG9nUTJGdWRtRnpVbVZ1WkdWeWFXNW5RMjl1ZEdWNGRESkVMRnh1SUNCeVpXNWtaWEpEYjI1bWFXYzZJRkpsYm1SbGNrTnZibVpwWnl4Y2JpQWdaV3hsYldWdWRGQnliM0JsY25ScFpYTTZJSHRjYmlBZ0lDQmhibWRzWlRvZ2JuVnRZbVZ5TzF4dUlDQWdJR1ZzWlcxbGJuUllNVG9nYm5WdFltVnlPMXh1SUNBZ0lHVnNaVzFsYm5SWk1Ub2diblZ0WW1WeU8xeHVJQ0FnSUdWc1pXMWxiblJZTWpvZ2JuVnRZbVZ5TzF4dUlDQWdJR1ZzWlcxbGJuUlpNam9nYm5WdFltVnlPMXh1SUNBZ0lITmxiR1ZqZEdsdmJrTnZiRzl5Y3pvZ2MzUnlhVzVuVzEwN1hHNGdJSDBzWEc0cElEMCtJSHRjYmlBZ1kyOXVjM1FnZXlCaGJtZHNaU3dnWld4bGJXVnVkRmd4TENCbGJHVnRaVzUwV1RFc0lHVnNaVzFsYm5SWU1pd2daV3hsYldWdWRGa3lMQ0J6Wld4bFkzUnBiMjVEYjJ4dmNuTWdmU0E5WEc0Z0lDQWdaV3hsYldWdWRGQnliM0JsY25ScFpYTTdYRzRnSUdOdmJuTjBJR1ZzWlcxbGJuUlhhV1IwYUNBOUlHVnNaVzFsYm5SWU1pQXRJR1ZzWlcxbGJuUllNVHRjYmlBZ1kyOXVjM1FnWld4bGJXVnVkRWhsYVdkb2RDQTlJR1ZzWlcxbGJuUlpNaUF0SUdWc1pXMWxiblJaTVR0Y2JseHVJQ0JqYjI1emRDQmtZWE5vWldSTWFXNWxVR0ZrWkdsdVp5QTlJRFFnTHlCeVpXNWtaWEpEYjI1bWFXY3VlbTl2YlM1MllXeDFaVHRjYmlBZ1kyOXVjM1FnWkdGemFGZHBaSFJvSUQwZ09DQXZJSEpsYm1SbGNrTnZibVpwWnk1NmIyOXRMblpoYkhWbE8xeHVJQ0JqYjI1emRDQnpjR0ZqWlZkcFpIUm9JRDBnTkNBdklISmxibVJsY2tOdmJtWnBaeTU2YjI5dExuWmhiSFZsTzF4dVhHNGdJR052Ym5SbGVIUXVjMkYyWlNncE8xeHVJQ0JqYjI1MFpYaDBMblJ5WVc1emJHRjBaU2h5Wlc1a1pYSkRiMjVtYVdjdWMyTnliMnhzV0N3Z2NtVnVaR1Z5UTI5dVptbG5Mbk5qY205c2JGa3BPMXh1SUNCamIyNTBaWGgwTG14cGJtVlhhV1IwYUNBOUlERWdMeUJ5Wlc1a1pYSkRiMjVtYVdjdWVtOXZiUzUyWVd4MVpUdGNibHh1SUNCamIyNXpkQ0JqYjNWdWRDQTlJSE5sYkdWamRHbHZia052Ykc5eWN5NXNaVzVuZEdnN1hHNGdJR1p2Y2lBb2JHVjBJR2x1WkdWNElEMGdNRHNnYVc1a1pYZ2dQQ0JqYjNWdWREc2dLeXRwYm1SbGVDa2dlMXh1SUNBZ0lHTnZiblJsZUhRdWMzUnliMnRsVTNSNWJHVWdQU0J6Wld4bFkzUnBiMjVEYjJ4dmNuTmJhVzVrWlhoZE8xeHVJQ0FnSUdOdmJuUmxlSFF1YzJWMFRHbHVaVVJoYzJnb1cxeHVJQ0FnSUNBZ1pHRnphRmRwWkhSb0xGeHVJQ0FnSUNBZ2MzQmhZMlZYYVdSMGFDQXJJQ2hrWVhOb1YybGtkR2dnS3lCemNHRmpaVmRwWkhSb0tTQXFJQ2hqYjNWdWRDQXRJREVwTEZ4dUlDQWdJRjBwTzF4dUlDQWdJR052Ym5SbGVIUXViR2x1WlVSaGMyaFBabVp6WlhRZ1BTQW9aR0Z6YUZkcFpIUm9JQ3NnYzNCaFkyVlhhV1IwYUNrZ0tpQnBibVJsZUR0Y2JpQWdJQ0J6ZEhKdmEyVlNaV04wVjJsMGFGSnZkR0YwYVc5dUtGeHVJQ0FnSUNBZ1kyOXVkR1Y0ZEN4Y2JpQWdJQ0FnSUdWc1pXMWxiblJZTVNBdElHUmhjMmhsWkV4cGJtVlFZV1JrYVc1bkxGeHVJQ0FnSUNBZ1pXeGxiV1Z1ZEZreElDMGdaR0Z6YUdWa1RHbHVaVkJoWkdScGJtY3NYRzRnSUNBZ0lDQmxiR1Z0Wlc1MFYybGtkR2dnS3lCa1lYTm9aV1JNYVc1bFVHRmtaR2x1WnlBcUlESXNYRzRnSUNBZ0lDQmxiR1Z0Wlc1MFNHVnBaMmgwSUNzZ1pHRnphR1ZrVEdsdVpWQmhaR1JwYm1jZ0tpQXlMRnh1SUNBZ0lDQWdaV3hsYldWdWRGZ3hJQ3NnWld4bGJXVnVkRmRwWkhSb0lDOGdNaXhjYmlBZ0lDQWdJR1ZzWlcxbGJuUlpNU0FySUdWc1pXMWxiblJJWldsbmFIUWdMeUF5TEZ4dUlDQWdJQ0FnWVc1bmJHVXNYRzRnSUNBZ0tUdGNiaUFnZlZ4dUlDQmpiMjUwWlhoMExuSmxjM1J2Y21Vb0tUdGNibjA3WEc1Y2JtTnZibk4wSUhKbGJtUmxja0pwYm1ScGJtZElhV2RvYkdsbmFIUWdQU0FvWEc0Z0lHTnZiblJsZUhRNklFTmhiblpoYzFKbGJtUmxjbWx1WjBOdmJuUmxlSFF5UkN4Y2JpQWdjbVZ1WkdWeVEyOXVabWxuT2lCU1pXNWtaWEpEYjI1bWFXY3NYRzRnSUhOMVoyZGxjM1JsWkVKcGJtUnBibWM2SUZOMVoyZGxjM1JsWkVKcGJtUnBibWNzWEc0cElEMCtJSHRjYmlBZ1kyOXVjM1FnY21WdVpHVnlTR2xuYUd4cFoyaDBJRDBnUVhKeVlYa3VhWE5CY25KaGVTaHpkV2RuWlhOMFpXUkNhVzVrYVc1bktWeHVJQ0FnSUQ4Z2NtVnVaR1Z5UW1sdVpHbHVaMGhwWjJoc2FXZG9kRVp2Y2xOMVoyZGxjM1JsWkZCdmFXNTBRbWx1WkdsdVoxeHVJQ0FnSURvZ2NtVnVaR1Z5UW1sdVpHbHVaMGhwWjJoc2FXZG9kRVp2Y2tKcGJtUmhZbXhsUld4bGJXVnVkRHRjYmx4dUlDQmpiMjUwWlhoMExuTmhkbVVvS1R0Y2JpQWdZMjl1ZEdWNGRDNTBjbUZ1YzJ4aGRHVW9jbVZ1WkdWeVEyOXVabWxuTG5OamNtOXNiRmdzSUhKbGJtUmxja052Ym1acFp5NXpZM0p2Ykd4WktUdGNiaUFnY21WdVpHVnlTR2xuYUd4cFoyaDBLR052Ym5SbGVIUXNJSE4xWjJkbGMzUmxaRUpwYm1ScGJtY2dZWE1nWVc1NUtUdGNibHh1SUNCamIyNTBaWGgwTG5KbGMzUnZjbVVvS1R0Y2JuMDdYRzVjYm1OdmJuTjBJSEpsYm1SbGNrSnBibVJwYm1kSWFXZG9iR2xuYUhSR2IzSkNhVzVrWVdKc1pVVnNaVzFsYm5RZ1BTQW9YRzRnSUdOdmJuUmxlSFE2SUVOaGJuWmhjMUpsYm1SbGNtbHVaME52Ym5SbGVIUXlSQ3hjYmlBZ1pXeGxiV1Z1ZERvZ1JYaGpZV3hwWkhKaGQwSnBibVJoWW14bFJXeGxiV1Z1ZEN4Y2Jpa2dQVDRnZTF4dUlDQmpiMjV6ZENCYmVERXNJSGt4TENCNE1pd2dlVEpkSUQwZ1oyVjBSV3hsYldWdWRFRmljMjlzZFhSbFEyOXZjbVJ6S0dWc1pXMWxiblFwTzF4dUlDQmpiMjV6ZENCM2FXUjBhQ0E5SUhneUlDMGdlREU3WEc0Z0lHTnZibk4wSUdobGFXZG9kQ0E5SUhreUlDMGdlVEU3WEc0Z0lHTnZibk4wSUhSb2NtVnphRzlzWkNBOUlHMWhlRUpwYm1ScGJtZEhZWEFvWld4bGJXVnVkQ3dnZDJsa2RHZ3NJR2hsYVdkb2RDazdYRzVjYmlBZ0x5OGdVMjhnZEdoaGRDQjNaU0JrYjI0bmRDQnZkbVZ5YkdGd0lIUm9aU0JsYkdWdFpXNTBJR2wwYzJWc1pseHVJQ0JqYjI1emRDQnpkSEp2YTJWUFptWnpaWFFnUFNBME8xeHVJQ0JqYjI1MFpYaDBMbk4wY205clpWTjBlV3hsSUQwZ1hDSnlaMkpoS0RBc01Dd3dMQzR3TlNsY0lqdGNiaUFnWTI5dWRHVjRkQzVzYVc1bFYybGtkR2dnUFNCMGFISmxjMmh2YkdRZ0xTQnpkSEp2YTJWUFptWnpaWFE3WEc0Z0lHTnZibk4wSUhCaFpHUnBibWNnUFNCemRISnZhMlZQWm1aelpYUWdMeUF5SUNzZ2RHaHlaWE5vYjJ4a0lDOGdNanRjYmx4dUlDQnpkMmwwWTJnZ0tHVnNaVzFsYm5RdWRIbHdaU2tnZTF4dUlDQWdJR05oYzJVZ1hDSnlaV04wWVc1bmJHVmNJanBjYmlBZ0lDQmpZWE5sSUZ3aWRHVjRkRndpT2x4dUlDQWdJR05oYzJVZ1hDSnBiV0ZuWlZ3aU9seHVJQ0FnSUNBZ2MzUnliMnRsVW1WamRGZHBkR2hTYjNSaGRHbHZiaWhjYmlBZ0lDQWdJQ0FnWTI5dWRHVjRkQ3hjYmlBZ0lDQWdJQ0FnZURFZ0xTQndZV1JrYVc1bkxGeHVJQ0FnSUNBZ0lDQjVNU0F0SUhCaFpHUnBibWNzWEc0Z0lDQWdJQ0FnSUhkcFpIUm9JQ3NnY0dGa1pHbHVaeUFxSURJc1hHNGdJQ0FnSUNBZ0lHaGxhV2RvZENBcklIQmhaR1JwYm1jZ0tpQXlMRnh1SUNBZ0lDQWdJQ0I0TVNBcklIZHBaSFJvSUM4Z01peGNiaUFnSUNBZ0lDQWdlVEVnS3lCb1pXbG5hSFFnTHlBeUxGeHVJQ0FnSUNBZ0lDQmxiR1Z0Wlc1MExtRnVaMnhsTEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lHTmhjMlVnWENKa2FXRnRiMjVrWENJNlhHNGdJQ0FnSUNCamIyNXpkQ0J6YVdSbElEMGdUV0YwYUM1b2VYQnZkQ2gzYVdSMGFDd2dhR1ZwWjJoMEtUdGNiaUFnSUNBZ0lHTnZibk4wSUhkUVlXUmthVzVuSUQwZ0tIQmhaR1JwYm1jZ0tpQnphV1JsS1NBdklHaGxhV2RvZER0Y2JpQWdJQ0FnSUdOdmJuTjBJR2hRWVdSa2FXNW5JRDBnS0hCaFpHUnBibWNnS2lCemFXUmxLU0F2SUhkcFpIUm9PMXh1SUNBZ0lDQWdjM1J5YjJ0bFJHbGhiVzl1WkZkcGRHaFNiM1JoZEdsdmJpaGNiaUFnSUNBZ0lDQWdZMjl1ZEdWNGRDeGNiaUFnSUNBZ0lDQWdkMmxrZEdnZ0t5QjNVR0ZrWkdsdVp5QXFJRElzWEc0Z0lDQWdJQ0FnSUdobGFXZG9kQ0FySUdoUVlXUmthVzVuSUNvZ01peGNiaUFnSUNBZ0lDQWdlREVnS3lCM2FXUjBhQ0F2SURJc1hHNGdJQ0FnSUNBZ0lIa3hJQ3NnYUdWcFoyaDBJQzhnTWl4Y2JpQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEM1aGJtZHNaU3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJRndpWld4c2FYQnpaVndpT2x4dUlDQWdJQ0FnYzNSeWIydGxSV3hzYVhCelpWZHBkR2hTYjNSaGRHbHZiaWhjYmlBZ0lDQWdJQ0FnWTI5dWRHVjRkQ3hjYmlBZ0lDQWdJQ0FnZDJsa2RHZ2dLeUJ3WVdSa2FXNW5JQ29nTWl4Y2JpQWdJQ0FnSUNBZ2FHVnBaMmgwSUNzZ2NHRmtaR2x1WnlBcUlESXNYRzRnSUNBZ0lDQWdJSGd4SUNzZ2QybGtkR2dnTHlBeUxGeHVJQ0FnSUNBZ0lDQjVNU0FySUdobGFXZG9kQ0F2SURJc1hHNGdJQ0FnSUNBZ0lHVnNaVzFsYm5RdVlXNW5iR1VzWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUgxY2JuMDdYRzVjYm1OdmJuTjBJSEpsYm1SbGNrSnBibVJwYm1kSWFXZG9iR2xuYUhSR2IzSlRkV2RuWlhOMFpXUlFiMmx1ZEVKcGJtUnBibWNnUFNBb1hHNGdJR052Ym5SbGVIUTZJRU5oYm5aaGMxSmxibVJsY21sdVowTnZiblJsZUhReVJDeGNiaUFnYzNWbloyVnpkR1ZrUW1sdVpHbHVaem9nVTNWbloyVnpkR1ZrVUc5cGJuUkNhVzVrYVc1bkxGeHVLU0E5UGlCN1hHNGdJR052Ym5OMElGdGxiR1Z0Wlc1MExDQnpkR0Z5ZEU5eVJXNWtMQ0JpYVc1a1lXSnNaVVZzWlcxbGJuUmRJRDBnYzNWbloyVnpkR1ZrUW1sdVpHbHVaenRjYmx4dUlDQmpiMjV6ZENCMGFISmxjMmh2YkdRZ1BTQnRZWGhDYVc1a2FXNW5SMkZ3S0Z4dUlDQWdJR0pwYm1SaFlteGxSV3hsYldWdWRDeGNiaUFnSUNCaWFXNWtZV0pzWlVWc1pXMWxiblF1ZDJsa2RHZ3NYRzRnSUNBZ1ltbHVaR0ZpYkdWRmJHVnRaVzUwTG1obGFXZG9kQ3hjYmlBZ0tUdGNibHh1SUNCamIyNTBaWGgwTG5OMGNtOXJaVk4wZVd4bElEMGdYQ0p5WjJKaEtEQXNNQ3d3TERBcFhDSTdYRzRnSUdOdmJuUmxlSFF1Wm1sc2JGTjBlV3hsSUQwZ1hDSnlaMkpoS0RBc01Dd3dMQzR3TlNsY0lqdGNibHh1SUNCamIyNXpkQ0J3YjJsdWRFbHVaR2xqWlhNZ1BWeHVJQ0FnSUhOMFlYSjBUM0pGYm1RZ1BUMDlJRndpWW05MGFGd2lJRDhnV3pBc0lDMHhYU0E2SUhOMFlYSjBUM0pGYm1RZ1BUMDlJRndpYzNSaGNuUmNJaUEvSUZzd1hTQTZJRnN0TVYwN1hHNGdJSEJ2YVc1MFNXNWthV05sY3k1bWIzSkZZV05vS0NocGJtUmxlQ2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJRnQ0TENCNVhTQTlJRXhwYm1WaGNrVnNaVzFsYm5SRlpHbDBiM0l1WjJWMFVHOXBiblJCZEVsdVpHVjRSMnh2WW1Gc1EyOXZjbVJwYm1GMFpYTW9YRzRnSUNBZ0lDQmxiR1Z0Wlc1MExGeHVJQ0FnSUNBZ2FXNWtaWGdzWEc0Z0lDQWdLVHRjYmlBZ0lDQm1hV3hzUTJseVkyeGxLR052Ym5SbGVIUXNJSGdzSUhrc0lIUm9jbVZ6YUc5c1pDazdYRzRnSUgwcE8xeHVmVHRjYmx4dWJHVjBJR3hwYm10RFlXNTJZWE5EWVdOb1pUb2dZVzU1TzF4dVkyOXVjM1FnY21WdVpHVnlUR2x1YTBsamIyNGdQU0FvWEc0Z0lHVnNaVzFsYm5RNklFNXZia1JsYkdWMFpXUkZlR05oYkdsa2NtRjNSV3hsYldWdWRDeGNiaUFnWTI5dWRHVjRkRG9nUTJGdWRtRnpVbVZ1WkdWeWFXNW5RMjl1ZEdWNGRESkVMRnh1SUNCaGNIQlRkR0YwWlRvZ1FYQndVM1JoZEdVc1hHNHBJRDArSUh0Y2JpQWdhV1lnS0dWc1pXMWxiblF1YkdsdWF5QW1KaUFoWVhCd1UzUmhkR1V1YzJWc1pXTjBaV1JGYkdWdFpXNTBTV1J6VzJWc1pXMWxiblF1YVdSZEtTQjdYRzRnSUNBZ1kyOXVjM1FnVzNneExDQjVNU3dnZURJc0lIa3lYU0E5SUdkbGRFVnNaVzFsYm5SQlluTnZiSFYwWlVOdmIzSmtjeWhsYkdWdFpXNTBLVHRjYmlBZ0lDQmpiMjV6ZENCYmVDd2dlU3dnZDJsa2RHZ3NJR2hsYVdkb2RGMGdQU0JuWlhSTWFXNXJTR0Z1Wkd4bFJuSnZiVU52YjNKa2N5aGNiaUFnSUNBZ0lGdDRNU3dnZVRFc0lIZ3lMQ0I1TWwwc1hHNGdJQ0FnSUNCbGJHVnRaVzUwTG1GdVoyeGxMRnh1SUNBZ0lDQWdZWEJ3VTNSaGRHVXNYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0JqWlc1MFpYSllJRDBnZUNBcklIZHBaSFJvSUM4Z01qdGNiaUFnSUNCamIyNXpkQ0JqWlc1MFpYSlpJRDBnZVNBcklHaGxhV2RvZENBdklESTdYRzRnSUNBZ1kyOXVkR1Y0ZEM1ellYWmxLQ2s3WEc0Z0lDQWdZMjl1ZEdWNGRDNTBjbUZ1YzJ4aGRHVW9ZWEJ3VTNSaGRHVXVjMk55YjJ4c1dDQXJJR05sYm5SbGNsZ3NJR0Z3Y0ZOMFlYUmxMbk5qY205c2JGa2dLeUJqWlc1MFpYSlpLVHRjYmlBZ0lDQmpiMjUwWlhoMExuSnZkR0YwWlNobGJHVnRaVzUwTG1GdVoyeGxLVHRjYmx4dUlDQWdJR2xtSUNnaGJHbHVhME5oYm5aaGMwTmhZMmhsSUh4OElHeHBibXREWVc1MllYTkRZV05vWlM1NmIyOXRJQ0U5UFNCaGNIQlRkR0YwWlM1NmIyOXRMblpoYkhWbEtTQjdYRzRnSUNBZ0lDQnNhVzVyUTJGdWRtRnpRMkZqYUdVZ1BTQmtiMk4xYldWdWRDNWpjbVZoZEdWRmJHVnRaVzUwS0Z3aVkyRnVkbUZ6WENJcE8xeHVJQ0FnSUNBZ2JHbHVhME5oYm5aaGMwTmhZMmhsTG5wdmIyMGdQU0JoY0hCVGRHRjBaUzU2YjI5dExuWmhiSFZsTzF4dUlDQWdJQ0FnYkdsdWEwTmhiblpoYzBOaFkyaGxMbmRwWkhSb0lEMWNiaUFnSUNBZ0lDQWdkMmxrZEdnZ0tpQjNhVzVrYjNjdVpHVjJhV05sVUdsNFpXeFNZWFJwYnlBcUlHRndjRk4wWVhSbExucHZiMjB1ZG1Gc2RXVTdYRzRnSUNBZ0lDQnNhVzVyUTJGdWRtRnpRMkZqYUdVdWFHVnBaMmgwSUQxY2JpQWdJQ0FnSUNBZ2FHVnBaMmgwSUNvZ2QybHVaRzkzTG1SbGRtbGpaVkJwZUdWc1VtRjBhVzhnS2lCaGNIQlRkR0YwWlM1NmIyOXRMblpoYkhWbE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYkdsdWEwTmhiblpoYzBOaFkyaGxRMjl1ZEdWNGRDQTlJR3hwYm10RFlXNTJZWE5EWVdOb1pTNW5aWFJEYjI1MFpYaDBLRndpTW1SY0lpa2hPMXh1SUNBZ0lDQWdiR2x1YTBOaGJuWmhjME5oWTJobFEyOXVkR1Y0ZEM1elkyRnNaU2hjYmlBZ0lDQWdJQ0FnZDJsdVpHOTNMbVJsZG1salpWQnBlR1ZzVW1GMGFXOGdLaUJoY0hCVGRHRjBaUzU2YjI5dExuWmhiSFZsTEZ4dUlDQWdJQ0FnSUNCM2FXNWtiM2N1WkdWMmFXTmxVR2w0Wld4U1lYUnBieUFxSUdGd2NGTjBZWFJsTG5wdmIyMHVkbUZzZFdVc1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2JHbHVhME5oYm5aaGMwTmhZMmhsUTI5dWRHVjRkQzVtYVd4c1UzUjViR1VnUFNCY0lpTm1abVpjSWp0Y2JpQWdJQ0FnSUd4cGJtdERZVzUyWVhORFlXTm9aVU52Ym5SbGVIUXVabWxzYkZKbFkzUW9NQ3dnTUN3Z2QybGtkR2dzSUdobGFXZG9kQ2s3WEc0Z0lDQWdJQ0JzYVc1clEyRnVkbUZ6UTJGamFHVkRiMjUwWlhoMExtUnlZWGRKYldGblpTaEZXRlJGVWs1QlRGOU1TVTVMWDBsTlJ5d2dNQ3dnTUN3Z2QybGtkR2dzSUdobGFXZG9kQ2s3WEc0Z0lDQWdJQ0JzYVc1clEyRnVkbUZ6UTJGamFHVkRiMjUwWlhoMExuSmxjM1J2Y21Vb0tUdGNiaUFnSUNBZ0lHTnZiblJsZUhRdVpISmhkMGx0WVdkbEtGeHVJQ0FnSUNBZ0lDQnNhVzVyUTJGdWRtRnpRMkZqYUdVc1hHNGdJQ0FnSUNBZ0lIZ2dMU0JqWlc1MFpYSllMRnh1SUNBZ0lDQWdJQ0I1SUMwZ1kyVnVkR1Z5V1N4Y2JpQWdJQ0FnSUNBZ2QybGtkR2dzWEc0Z0lDQWdJQ0FnSUdobGFXZG9kQ3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lHTnZiblJsZUhRdVpISmhkMGx0WVdkbEtGeHVJQ0FnSUNBZ0lDQnNhVzVyUTJGdWRtRnpRMkZqYUdVc1hHNGdJQ0FnSUNBZ0lIZ2dMU0JqWlc1MFpYSllMRnh1SUNBZ0lDQWdJQ0I1SUMwZ1kyVnVkR1Z5V1N4Y2JpQWdJQ0FnSUNBZ2QybGtkR2dzWEc0Z0lDQWdJQ0FnSUdobGFXZG9kQ3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZiblJsZUhRdWNtVnpkRzl5WlNncE8xeHVJQ0I5WEc1OU8xeHVYRzVqYjI1emRDQnBjMVpwYzJsaWJHVkZiR1Z0Wlc1MElEMGdLRnh1SUNCbGJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEN4Y2JpQWdZMkZ1ZG1GelYybGtkR2c2SUc1MWJXSmxjaXhjYmlBZ1kyRnVkbUZ6U0dWcFoyaDBPaUJ1ZFcxaVpYSXNYRzRnSUhacFpYZFVjbUZ1YzJadmNtMWhkR2x2Ym5NNklIdGNiaUFnSUNCNmIyOXRPaUJhYjI5dE8xeHVJQ0FnSUc5bVpuTmxkRXhsWm5RNklHNTFiV0psY2p0Y2JpQWdJQ0J2Wm1aelpYUlViM0E2SUc1MWJXSmxjanRjYmlBZ0lDQnpZM0p2Ykd4WU9pQnVkVzFpWlhJN1hHNGdJQ0FnYzJOeWIyeHNXVG9nYm5WdFltVnlPMXh1SUNCOUxGeHVLU0E5UGlCN1hHNGdJR052Ym5OMElGdDRNU3dnZVRFc0lIZ3lMQ0I1TWwwZ1BTQm5aWFJGYkdWdFpXNTBRbTkxYm1SektHVnNaVzFsYm5RcE95QXZMeUJ6WTJWdVpTQmpiMjl5WkdsdVlYUmxjMXh1SUNCamIyNXpkQ0IwYjNCTVpXWjBVMk5sYm1WRGIyOXlaSE1nUFNCMmFXVjNjRzl5ZEVOdmIzSmtjMVJ2VTJObGJtVkRiMjl5WkhNb1hHNGdJQ0FnZTF4dUlDQWdJQ0FnWTJ4cFpXNTBXRG9nZG1sbGQxUnlZVzV6Wm05eWJXRjBhVzl1Y3k1dlptWnpaWFJNWldaMExGeHVJQ0FnSUNBZ1kyeHBaVzUwV1RvZ2RtbGxkMVJ5WVc1elptOXliV0YwYVc5dWN5NXZabVp6WlhSVWIzQXNYRzRnSUNBZ2ZTeGNiaUFnSUNCMmFXVjNWSEpoYm5ObWIzSnRZWFJwYjI1ekxGeHVJQ0FwTzF4dUlDQmpiMjV6ZENCaWIzUjBiMjFTYVdkb2RGTmpaVzVsUTI5dmNtUnpJRDBnZG1sbGQzQnZjblJEYjI5eVpITlViMU5qWlc1bFEyOXZjbVJ6S0Z4dUlDQWdJSHRjYmlBZ0lDQWdJR05zYVdWdWRGZzZJSFpwWlhkVWNtRnVjMlp2Y20xaGRHbHZibk11YjJabWMyVjBUR1ZtZENBcklHTmhiblpoYzFkcFpIUm9MRnh1SUNBZ0lDQWdZMnhwWlc1MFdUb2dkbWxsZDFSeVlXNXpabTl5YldGMGFXOXVjeTV2Wm1aelpYUlViM0FnS3lCallXNTJZWE5JWldsbmFIUXNYRzRnSUNBZ2ZTeGNiaUFnSUNCMmFXVjNWSEpoYm5ObWIzSnRZWFJwYjI1ekxGeHVJQ0FwTzF4dVhHNGdJSEpsZEhWeWJpQW9YRzRnSUNBZ2RHOXdUR1ZtZEZOalpXNWxRMjl2Y21SekxuZ2dQRDBnZURJZ0ppWmNiaUFnSUNCMGIzQk1aV1owVTJObGJtVkRiMjl5WkhNdWVTQThQU0I1TWlBbUpseHVJQ0FnSUdKdmRIUnZiVkpwWjJoMFUyTmxibVZEYjI5eVpITXVlQ0ErUFNCNE1TQW1KbHh1SUNBZ0lHSnZkSFJ2YlZKcFoyaDBVMk5sYm1WRGIyOXlaSE11ZVNBK1BTQjVNVnh1SUNBcE8xeHVmVHRjYmx4dUx5OGdWR2hwY3lCemFHOTFiR1FnWW1VZ2IyNXNlU0JqWVd4c1pXUWdabTl5SUdWNGNHOXlkR2x1WnlCd2RYSndiM05sYzF4dVpYaHdiM0owSUdOdmJuTjBJSEpsYm1SbGNsTmpaVzVsVkc5VGRtY2dQU0FvWEc0Z0lHVnNaVzFsYm5Sek9pQnlaV0ZrYjI1c2VTQk9iMjVFWld4bGRHVmtSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYU3hjYmlBZ2NuTjJaem9nVW05MVoyaFRWa2NzWEc0Z0lITjJaMUp2YjNRNklGTldSMFZzWlcxbGJuUXNYRzRnSUdacGJHVnpPaUJDYVc1aGNubEdhV3hsY3l4Y2JpQWdlMXh1SUNBZ0lHOW1abk5sZEZnZ1BTQXdMRnh1SUNBZ0lHOW1abk5sZEZrZ1BTQXdMRnh1SUNBZ0lHVjRjRzl5ZEZkcGRHaEVZWEpyVFc5a1pTQTlJR1poYkhObExGeHVJQ0I5T2lCN1hHNGdJQ0FnYjJabWMyVjBXRDg2SUc1MWJXSmxjanRjYmlBZ0lDQnZabVp6WlhSWlB6b2diblZ0WW1WeU8xeHVJQ0FnSUdWNGNHOXlkRmRwZEdoRVlYSnJUVzlrWlQ4NklHSnZiMnhsWVc0N1hHNGdJSDBnUFNCN2ZTeGNiaWtnUFQ0Z2UxeHVJQ0JwWmlBb0lYTjJaMUp2YjNRcElIdGNiaUFnSUNCeVpYUjFjbTQ3WEc0Z0lIMWNiaUFnTHk4Z2NtVnVaR1Z5SUdWc1pXMWxiblJ6WEc0Z0lHVnNaVzFsYm5SekxtWnZja1ZoWTJnb0tHVnNaVzFsYm5RcElEMCtJSHRjYmlBZ0lDQnBaaUFvSVdWc1pXMWxiblF1YVhORVpXeGxkR1ZrS1NCN1hHNGdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0J5Wlc1a1pYSkZiR1Z0Wlc1MFZHOVRkbWNvWEc0Z0lDQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQnljM1puTEZ4dUlDQWdJQ0FnSUNBZ0lITjJaMUp2YjNRc1hHNGdJQ0FnSUNBZ0lDQWdabWxzWlhNc1hHNGdJQ0FnSUNBZ0lDQWdaV3hsYldWdWRDNTRJQ3NnYjJabWMyVjBXQ3hjYmlBZ0lDQWdJQ0FnSUNCbGJHVnRaVzUwTG5rZ0t5QnZabVp6WlhSWkxGeHVJQ0FnSUNBZ0lDQWdJR1Y0Y0c5eWRGZHBkR2hFWVhKclRXOWtaU3hjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNtOXlPaUJoYm5rcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzI5c1pTNWxjbkp2Y2lobGNuSnZjaWs3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNCOUtUdGNibjA3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vcmVuZGVyZXIvcmVuZGVyU2NlbmUudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL3JlbmRlcmVyL3JvdW5kUmVjdC50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vcmVuZGVyZXIvcm91bmRSZWN0LnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicm91bmRSZWN0XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcm91bmRSZWN0KVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qKlxcbiAqIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zMzY4MTE4XFxuICogRHJhd3MgYSByb3VuZGVkIHJlY3RhbmdsZSB1c2luZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgY2FudmFzLlxcbiAqIEBwYXJhbSB7Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBjb250ZXh0XFxuICogQHBhcmFtIHtOdW1iZXJ9IHggVGhlIHRvcCBsZWZ0IHggY29vcmRpbmF0ZVxcbiAqIEBwYXJhbSB7TnVtYmVyfSB5IFRoZSB0b3AgbGVmdCB5IGNvb3JkaW5hdGVcXG4gKiBAcGFyYW0ge051bWJlcn0gd2lkdGggVGhlIHdpZHRoIG9mIHRoZSByZWN0YW5nbGVcXG4gKiBAcGFyYW0ge051bWJlcn0gaGVpZ2h0IFRoZSBoZWlnaHQgb2YgdGhlIHJlY3RhbmdsZVxcbiAqIEBwYXJhbSB7TnVtYmVyfSByYWRpdXMgVGhlIGNvcm5lciByYWRpdXNcXG4gKi9cXG5jb25zdCByb3VuZFJlY3QgPSAoY29udGV4dCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgcmFkaXVzKSA9PiB7XFxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XFxuICAgIGNvbnRleHQubW92ZVRvKHggKyByYWRpdXMsIHkpO1xcbiAgICBjb250ZXh0LmxpbmVUbyh4ICsgd2lkdGggLSByYWRpdXMsIHkpO1xcbiAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8oeCArIHdpZHRoLCB5LCB4ICsgd2lkdGgsIHkgKyByYWRpdXMpO1xcbiAgICBjb250ZXh0LmxpbmVUbyh4ICsgd2lkdGgsIHkgKyBoZWlnaHQgLSByYWRpdXMpO1xcbiAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8oeCArIHdpZHRoLCB5ICsgaGVpZ2h0LCB4ICsgd2lkdGggLSByYWRpdXMsIHkgKyBoZWlnaHQpO1xcbiAgICBjb250ZXh0LmxpbmVUbyh4ICsgcmFkaXVzLCB5ICsgaGVpZ2h0KTtcXG4gICAgY29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKHgsIHkgKyBoZWlnaHQsIHgsIHkgKyBoZWlnaHQgLSByYWRpdXMpO1xcbiAgICBjb250ZXh0LmxpbmVUbyh4LCB5ICsgcmFkaXVzKTtcXG4gICAgY29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKHgsIHksIHggKyByYWRpdXMsIHkpO1xcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xcbiAgICBjb250ZXh0LmZpbGwoKTtcXG4gICAgY29udGV4dC5zdHJva2UoKTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2Y21WdVpHVnlaWEl2Y205MWJtUlNaV04wTG5SekxtcHpJaXdpYldGd2NHbHVaM01pT2lJN096czdRVUZCUVRzN096czdPenM3TzBkQlUwYzdRVUZEU1N4TlFVRk5MRk5CUVZNc1IwRkJSeXhEUVVOMlFpeFBRVUZwUXl4RlFVTnFReXhEUVVGVExFVkJRMVFzUTBGQlV5eEZRVU5VTEV0QlFXRXNSVUZEWWl4TlFVRmpMRVZCUTJRc1RVRkJZeXhGUVVOa0xFVkJRVVU3U1VGRFJpeFBRVUZQTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkRjRUlzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1RVRkJUU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6bENMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEV0QlFVc3NSMEZCUnl4TlFVRk5MRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGRFTXNUMEZCVHl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSMEZCUnl4TFFVRkxMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eExRVUZMTEVWQlFVVXNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJRemxFTEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFdEJRVXNzUlVGQlJTeERRVUZETEVkQlFVY3NUVUZCVFN4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJReTlETEU5QlFVOHNRMEZCUXl4blFrRkJaMElzUTBGRGRFSXNRMEZCUXl4SFFVRkhMRXRCUVVzc1JVRkRWQ3hEUVVGRExFZEJRVWNzVFVGQlRTeEZRVU5XTEVOQlFVTXNSMEZCUnl4TFFVRkxMRWRCUVVjc1RVRkJUU3hGUVVOc1FpeERRVUZETEVkQlFVY3NUVUZCVFN4RFFVTllMRU5CUVVNN1NVRkRSaXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETzBsQlEzWkRMRTlCUVU4c1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVU5vUlN4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkRPVUlzVDBGQlR5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRTFCUVUwc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU01UXl4UFFVRlBMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03U1VGRGNFSXNUMEZCVHl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8wbEJRMllzVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMEZCUTI1Q0xFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTl5Wlc1a1pYSmxjaTl5YjNWdVpGSmxZM1F1ZEhNL1pUTTRPU0pkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdktpcGNiaUFxSUdoMGRIQnpPaTh2YzNSaFkydHZkbVZ5Wm14dmR5NWpiMjB2WVM4ek16WTRNVEU0WEc0Z0tpQkVjbUYzY3lCaElISnZkVzVrWldRZ2NtVmpkR0Z1WjJ4bElIVnphVzVuSUhSb1pTQmpkWEp5Wlc1MElITjBZWFJsSUc5bUlIUm9aU0JqWVc1MllYTXVYRzRnS2lCQWNHRnlZVzBnZTBOaGJuWmhjMUpsYm1SbGNtbHVaME52Ym5SbGVIUXlSSDBnWTI5dWRHVjRkRnh1SUNvZ1FIQmhjbUZ0SUh0T2RXMWlaWEo5SUhnZ1ZHaGxJSFJ2Y0NCc1pXWjBJSGdnWTI5dmNtUnBibUYwWlZ4dUlDb2dRSEJoY21GdElIdE9kVzFpWlhKOUlIa2dWR2hsSUhSdmNDQnNaV1owSUhrZ1kyOXZjbVJwYm1GMFpWeHVJQ29nUUhCaGNtRnRJSHRPZFcxaVpYSjlJSGRwWkhSb0lGUm9aU0IzYVdSMGFDQnZaaUIwYUdVZ2NtVmpkR0Z1WjJ4bFhHNGdLaUJBY0dGeVlXMGdlMDUxYldKbGNuMGdhR1ZwWjJoMElGUm9aU0JvWldsbmFIUWdiMllnZEdobElISmxZM1JoYm1kc1pWeHVJQ29nUUhCaGNtRnRJSHRPZFcxaVpYSjlJSEpoWkdsMWN5QlVhR1VnWTI5eWJtVnlJSEpoWkdsMWMxeHVJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdjbTkxYm1SU1pXTjBJRDBnS0Z4dUlDQmpiMjUwWlhoME9pQkRZVzUyWVhOU1pXNWtaWEpwYm1kRGIyNTBaWGgwTWtRc1hHNGdJSGc2SUc1MWJXSmxjaXhjYmlBZ2VUb2diblZ0WW1WeUxGeHVJQ0IzYVdSMGFEb2diblZ0WW1WeUxGeHVJQ0JvWldsbmFIUTZJRzUxYldKbGNpeGNiaUFnY21Ga2FYVnpPaUJ1ZFcxaVpYSXNYRzRwSUQwK0lIdGNiaUFnWTI5dWRHVjRkQzVpWldkcGJsQmhkR2dvS1R0Y2JpQWdZMjl1ZEdWNGRDNXRiM1psVkc4b2VDQXJJSEpoWkdsMWN5d2dlU2s3WEc0Z0lHTnZiblJsZUhRdWJHbHVaVlJ2S0hnZ0t5QjNhV1IwYUNBdElISmhaR2wxY3l3Z2VTazdYRzRnSUdOdmJuUmxlSFF1Y1hWaFpISmhkR2xqUTNWeWRtVlVieWg0SUNzZ2QybGtkR2dzSUhrc0lIZ2dLeUIzYVdSMGFDd2dlU0FySUhKaFpHbDFjeWs3WEc0Z0lHTnZiblJsZUhRdWJHbHVaVlJ2S0hnZ0t5QjNhV1IwYUN3Z2VTQXJJR2hsYVdkb2RDQXRJSEpoWkdsMWN5azdYRzRnSUdOdmJuUmxlSFF1Y1hWaFpISmhkR2xqUTNWeWRtVlVieWhjYmlBZ0lDQjRJQ3NnZDJsa2RHZ3NYRzRnSUNBZ2VTQXJJR2hsYVdkb2RDeGNiaUFnSUNCNElDc2dkMmxrZEdnZ0xTQnlZV1JwZFhNc1hHNGdJQ0FnZVNBcklHaGxhV2RvZEN4Y2JpQWdLVHRjYmlBZ1kyOXVkR1Y0ZEM1c2FXNWxWRzhvZUNBcklISmhaR2wxY3l3Z2VTQXJJR2hsYVdkb2RDazdYRzRnSUdOdmJuUmxlSFF1Y1hWaFpISmhkR2xqUTNWeWRtVlVieWg0TENCNUlDc2dhR1ZwWjJoMExDQjRMQ0I1SUNzZ2FHVnBaMmgwSUMwZ2NtRmthWFZ6S1R0Y2JpQWdZMjl1ZEdWNGRDNXNhVzVsVkc4b2VDd2dlU0FySUhKaFpHbDFjeWs3WEc0Z0lHTnZiblJsZUhRdWNYVmhaSEpoZEdsalEzVnlkbVZVYnloNExDQjVMQ0I0SUNzZ2NtRmthWFZ6TENCNUtUdGNiaUFnWTI5dWRHVjRkQzVqYkc5elpWQmhkR2dvS1R0Y2JpQWdZMjl1ZEdWNGRDNW1hV3hzS0NrN1hHNGdJR052Ym5SbGVIUXVjM1J5YjJ0bEtDazdYRzU5TzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vcmVuZGVyZXIvcm91bmRSZWN0LnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9zY2VuZS9TY2VuZS50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9zY2VuZS9TY2VuZS50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVmYXVsdFxcXCI6ICgpID0+IChfX1dFQlBBQ0tfREVGQVVMVF9FWFBPUlRfXylcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvaW5kZXgudHNcXFwiKTtcXG5cXG5jb25zdCBpc0lkS2V5ID0gKGVsZW1lbnRLZXkpID0+IHtcXG4gICAgaWYgKHR5cGVvZiBlbGVtZW50S2V5ID09PSBcXFwic3RyaW5nXFxcIikge1xcbiAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgIH1cXG4gICAgcmV0dXJuIGZhbHNlO1xcbn07XFxuY2xhc3MgU2NlbmUge1xcbiAgICBjb25zdHJ1Y3RvcigpIHtcXG4gICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgICAgICAgLy8gc3RhdGljIG1ldGhvZHMvcHJvcHNcXG4gICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgICAgICAvLyBpbnN0YW5jZSBtZXRob2RzL3Byb3BzXFxuICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gICAgICAgIHRoaXMuY2FsbGJhY2tzID0gbmV3IFNldCgpO1xcbiAgICAgICAgdGhpcy5ub25EZWxldGVkRWxlbWVudHMgPSBbXTtcXG4gICAgICAgIHRoaXMuZWxlbWVudHMgPSBbXTtcXG4gICAgICAgIHRoaXMuZWxlbWVudHNNYXAgPSBuZXcgTWFwKCk7XFxuICAgIH1cXG4gICAgc3RhdGljIG1hcEVsZW1lbnRUb1NjZW5lKGVsZW1lbnRLZXksIHNjZW5lKSB7XFxuICAgICAgICBpZiAoaXNJZEtleShlbGVtZW50S2V5KSkge1xcbiAgICAgICAgICAgIHRoaXMuc2NlbmVNYXBCeUlkLnNldChlbGVtZW50S2V5LCBzY2VuZSk7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIHtcXG4gICAgICAgICAgICB0aGlzLnNjZW5lTWFwQnlFbGVtZW50LnNldChlbGVtZW50S2V5LCBzY2VuZSk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgc3RhdGljIGdldFNjZW5lKGVsZW1lbnRLZXkpIHtcXG4gICAgICAgIGlmIChpc0lkS2V5KGVsZW1lbnRLZXkpKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVNYXBCeUlkLmdldChlbGVtZW50S2V5KSB8fCBudWxsO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVNYXBCeUVsZW1lbnQuZ2V0KGVsZW1lbnRLZXkpIHx8IG51bGw7XFxuICAgIH1cXG4gICAgLy8gVE9ETzogZ2V0QWxsRWxlbWVudHNJbmNsdWRpbmdEZWxldGVkXFxuICAgIGdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpIHtcXG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRzO1xcbiAgICB9XFxuICAgIC8vIFRPRE86IGdldEFsbE5vbkRlbGV0ZWRFbGVtZW50c1xcbiAgICBnZXRFbGVtZW50cygpIHtcXG4gICAgICAgIHJldHVybiB0aGlzLm5vbkRlbGV0ZWRFbGVtZW50cztcXG4gICAgfVxcbiAgICBnZXRFbGVtZW50KGlkKSB7XFxuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50c01hcC5nZXQoaWQpIHx8IG51bGw7XFxuICAgIH1cXG4gICAgZ2V0Tm9uRGVsZXRlZEVsZW1lbnQoaWQpIHtcXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmdldEVsZW1lbnQoaWQpO1xcbiAgICAgICAgaWYgKGVsZW1lbnQgJiYgKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5pc05vbkRlbGV0ZWRFbGVtZW50KShlbGVtZW50KSkge1xcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50O1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIG51bGw7XFxuICAgIH1cXG4gICAgLy8gVE9ETzogUmVuYW1lIG1ldGhvZHMgaGVyZSwgdGhpcyBpcyBjb25mdXNpbmdcXG4gICAgZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKGlkcykge1xcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XFxuICAgICAgICBpZHMuZm9yRWFjaCgoaWQpID0+IHtcXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5nZXROb25EZWxldGVkRWxlbWVudChpZCk7XFxuICAgICAgICAgICAgaWYgKGVsZW1lbnQgIT0gbnVsbCkge1xcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChlbGVtZW50KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KTtcXG4gICAgICAgIHJldHVybiByZXN1bHQ7XFxuICAgIH1cXG4gICAgcmVwbGFjZUFsbEVsZW1lbnRzKG5leHRFbGVtZW50cykge1xcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9IG5leHRFbGVtZW50cztcXG4gICAgICAgIHRoaXMuZWxlbWVudHNNYXAuY2xlYXIoKTtcXG4gICAgICAgIG5leHRFbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50c01hcC5zZXQoZWxlbWVudC5pZCwgZWxlbWVudCk7XFxuICAgICAgICAgICAgU2NlbmUubWFwRWxlbWVudFRvU2NlbmUoZWxlbWVudCwgdGhpcyk7XFxuICAgICAgICB9KTtcXG4gICAgICAgIHRoaXMubm9uRGVsZXRlZEVsZW1lbnRzID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5nZXROb25EZWxldGVkRWxlbWVudHMpKHRoaXMuZWxlbWVudHMpO1xcbiAgICAgICAgdGhpcy5pbmZvcm1NdXRhdGlvbigpO1xcbiAgICB9XFxuICAgIGluZm9ybU11dGF0aW9uKCkge1xcbiAgICAgICAgZm9yIChjb25zdCBjYWxsYmFjayBvZiBBcnJheS5mcm9tKHRoaXMuY2FsbGJhY2tzKSkge1xcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgYWRkQ2FsbGJhY2soY2IpIHtcXG4gICAgICAgIGlmICh0aGlzLmNhbGxiYWNrcy5oYXMoY2IpKSB7XFxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XFxuICAgICAgICB9XFxuICAgICAgICB0aGlzLmNhbGxiYWNrcy5hZGQoY2IpO1xcbiAgICAgICAgcmV0dXJuICgpID0+IHtcXG4gICAgICAgICAgICBpZiAoIXRoaXMuY2FsbGJhY2tzLmhhcyhjYikpIHtcXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHRoaXMuY2FsbGJhY2tzLmRlbGV0ZShjYik7XFxuICAgICAgICB9O1xcbiAgICB9XFxuICAgIGRlc3Ryb3koKSB7XFxuICAgICAgICBTY2VuZS5zY2VuZU1hcEJ5SWQuZm9yRWFjaCgoc2NlbmUsIGVsZW1lbnRLZXkpID0+IHtcXG4gICAgICAgICAgICBpZiAoc2NlbmUgPT09IHRoaXMpIHtcXG4gICAgICAgICAgICAgICAgU2NlbmUuc2NlbmVNYXBCeUlkLmRlbGV0ZShlbGVtZW50S2V5KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KTtcXG4gICAgICAgIC8vIGRvbmUgbm90IGZvciBtZW1vcnkgbGVha3MsIGJ1dCB0byBndWFyZCBhZ2FpbnN0IHBvc3NpYmxlIGxhdGUgZmlyZXNcXG4gICAgICAgIC8vIChJIGd1ZXNzPylcXG4gICAgICAgIHRoaXMuY2FsbGJhY2tzLmNsZWFyKCk7XFxuICAgIH1cXG59XFxuU2NlbmUuc2NlbmVNYXBCeUVsZW1lbnQgPSBuZXcgV2Vha01hcCgpO1xcblNjZW5lLnNjZW5lTWFwQnlJZCA9IG5ldyBNYXAoKTtcXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIGNvbnN0IF9fV0VCUEFDS19ERUZBVUxUX0VYUE9SVF9fID0gKFNjZW5lKTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dmMyTmxibVV2VTJObGJtVXVkSE11YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN1FVRkxkMFU3UVVGVGVFVXNUVUZCVFN4UFFVRlBMRWRCUVVjc1EwRkJReXhWUVVGelFpeEZRVUU0UWl4RlFVRkZPMGxCUTNKRkxFbEJRVWtzVDBGQlR5eFZRVUZWTEV0QlFVc3NVVUZCVVN4RlFVRkZPMUZCUTJ4RExFOUJRVThzU1VGQlNTeERRVUZETzB0QlEySTdTVUZEUkN4UFFVRlBMRXRCUVVzc1EwRkJRenRCUVVObUxFTkJRVU1zUTBGQlF6dEJRVVZHTEUxQlFVMHNTMEZCU3p0SlFVRllPMUZCUTBVc09FVkJRVGhGTzFGQlF6bEZMSFZDUVVGMVFqdFJRVU4yUWl3NFJVRkJPRVU3VVVGdlFqbEZMRGhGUVVFNFJUdFJRVU01UlN4NVFrRkJlVUk3VVVGRGVrSXNPRVZCUVRoRk8xRkJSWFJGTEdOQlFWTXNSMEZCTkVJc1NVRkJTU3hIUVVGSExFVkJRVVVzUTBGQlF6dFJRVVV2UXl4MVFrRkJhMElzUjBGQk1rTXNSVUZCUlN4RFFVRkRPMUZCUTJoRkxHRkJRVkVzUjBGQmFVTXNSVUZCUlN4RFFVRkRPMUZCUXpWRExHZENRVUZYTEVkQlFVY3NTVUZCU1N4SFFVRkhMRVZCUVRoRExFTkJRVU03U1VGclJqbEZMRU5CUVVNN1NVRjZSME1zVFVGQlRTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExGVkJRWE5DTEVWQlFVVXNTMEZCV1R0UlFVTXpSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eFZRVUZWTEVOQlFVTXNSVUZCUlR0WlFVTjJRaXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVkQlFVY3NRMEZCUXl4VlFVRlZMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VTBGRE1VTTdZVUZCVFR0WlFVTk1MRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFOQlF5OURPMGxCUTBnc1EwRkJRenRKUVVWRUxFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCYzBJN1VVRkRjRU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUVVVN1dVRkRka0lzVDBGQlR5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTTdVMEZEYkVRN1VVRkRSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRPMGxCUTNoRUxFTkJRVU03U1VGWlJDeDFRMEZCZFVNN1NVRkRka01zTWtKQlFUSkNPMUZCUTNwQ0xFOUJRVThzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0SlFVTjJRaXhEUVVGRE8wbEJSVVFzYVVOQlFXbERPMGxCUTJwRExGZEJRVmM3VVVGRFZDeFBRVUZQTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF6dEpRVU5xUXl4RFFVRkRPMGxCUlVRc1ZVRkJWU3hEUVVGRExFVkJRVEpDTzFGQlEzQkRMRTlCUVU4c1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRE8wbEJRekZETEVOQlFVTTdTVUZGUkN4dlFrRkJiMElzUTBGRGJFSXNSVUZCTWtJN1VVRkZNMElzVFVGQlRTeFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU53UXl4SlFVRkpMRTlCUVU4c1NVRkJTU3cyUkVGQmJVSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSVHRaUVVNelF5eFBRVUZQTEU5QlFVOHNRMEZCUXp0VFFVTm9RanRSUVVORUxFOUJRVThzU1VGQlNTeERRVUZETzBsQlEyUXNRMEZCUXp0SlFVVkVMQ3REUVVFclF6dEpRVU12UXl4eFFrRkJjVUlzUTBGRGJrSXNSMEZCZFVNN1VVRkZka01zVFVGQlRTeE5RVUZOTEVkQlFXOURMRVZCUVVVc1EwRkJRenRSUVVOdVJDeEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVU3V1VGRGFrSXNUVUZCVFN4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xbEJRemxETEVsQlFVa3NUMEZCVHl4SlFVRkpMRWxCUVVrc1JVRkJSVHRuUWtGRGJrSXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dGhRVU4wUWp0UlFVTklMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzVDBGQlR5eE5RVUZOTEVOQlFVTTdTVUZEYUVJc1EwRkJRenRKUVVWRUxHdENRVUZyUWl4RFFVRkRMRmxCUVRCRE8xRkJRek5FTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1dVRkJXU3hEUVVGRE8xRkJRemRDTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03VVVGRGVrSXNXVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTzFsQlF5OUNMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRE1VTXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeERRVUZETEU5QlFVOHNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVONlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTklMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNSMEZCUnl3clJFRkJjVUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkRMMFFzU1VGQlNTeERRVUZETEdOQlFXTXNSVUZCUlN4RFFVRkRPMGxCUTNoQ0xFTkJRVU03U1VGRlJDeGpRVUZqTzFGQlExb3NTMEZCU3l4TlFVRk5MRkZCUVZFc1NVRkJTU3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1JVRkJSVHRaUVVOcVJDeFJRVUZSTEVWQlFVVXNRMEZCUXp0VFFVTmFPMGxCUTBnc1EwRkJRenRKUVVWRUxGZEJRVmNzUTBGQlF5eEZRVUZ6UWp0UlFVTm9ReXhKUVVGSkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRk8xbEJRekZDTEUxQlFVMHNTVUZCU1N4TFFVRkxMRVZCUVVVc1EwRkJRenRUUVVOdVFqdFJRVVZFTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlJYWkNMRTlCUVU4c1IwRkJSeXhGUVVGRk8xbEJRMVlzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTzJkQ1FVTXpRaXhOUVVGTkxFbEJRVWtzUzBGQlN5eEZRVUZGTEVOQlFVTTdZVUZEYmtJN1dVRkRSQ3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVNMVFpeERRVUZETEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1QwRkJUenRSUVVOTUxFdEJRVXNzUTBGQlF5eFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxGVkJRVlVzUlVGQlJTeEZRVUZGTzFsQlF5OURMRWxCUVVrc1MwRkJTeXhMUVVGTExFbEJRVWtzUlVGQlJUdG5Ra0ZEYkVJc1MwRkJTeXhEUVVGRExGbEJRVmtzUTBGQlF5eE5RVUZOTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1lVRkRka003VVVGRFNDeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTklMSE5GUVVGelJUdFJRVU4wUlN4aFFVRmhPMUZCUTJJc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXp0SlFVTjZRaXhEUVVGRE96dEJRVE5IWXl4MVFrRkJhVUlzUjBGQlJ5eEpRVUZKTEU5QlFVOHNSVUZCTkVJc1EwRkJRenRCUVVNMVJDeHJRa0ZCV1N4SFFVRkhMRWxCUVVrc1IwRkJSeXhGUVVGcFFpeERRVUZETzBGQk5rZDZSQ3hwUlVGQlpTeExRVUZMTEVWQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2YzJObGJtVXZVMk5sYm1VdWRITS9PV0V4TnlKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UxeHVJQ0JGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ3hjYmlBZ1RtOXVSR1ZzWlhSbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MExGeHVJQ0JPYjI1RVpXeGxkR1ZrTEZ4dWZTQm1jbTl0SUZ3aUxpNHZaV3hsYldWdWRDOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2daMlYwVG05dVJHVnNaWFJsWkVWc1pXMWxiblJ6TENCcGMwNXZia1JsYkdWMFpXUkZiR1Z0Wlc1MElIMGdabkp2YlNCY0lpNHVMMlZzWlcxbGJuUmNJanRjYm1sdGNHOXlkQ0I3SUV4cGJtVmhja1ZzWlcxbGJuUkZaR2wwYjNJZ2ZTQm1jbTl0SUZ3aUxpNHZaV3hsYldWdWRDOXNhVzVsWVhKRmJHVnRaVzUwUldScGRHOXlYQ0k3WEc1Y2JuUjVjR1VnUld4bGJXVnVkRWxrUzJWNUlEMGdTVzV6ZEdGdVkyVlVlWEJsUEhSNWNHVnZaaUJNYVc1bFlYSkZiR1Z0Wlc1MFJXUnBkRzl5UGx0Y0ltVnNaVzFsYm5SSlpGd2lYVHRjYm5SNWNHVWdSV3hsYldWdWRFdGxlU0E5SUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwSUh3Z1JXeGxiV1Z1ZEVsa1MyVjVPMXh1WEc1MGVYQmxJRk5qWlc1bFUzUmhkR1ZEWVd4c1ltRmpheUE5SUNncElEMCtJSFp2YVdRN1hHNTBlWEJsSUZOalpXNWxVM1JoZEdWRFlXeHNZbUZqYTFKbGJXOTJaWElnUFNBb0tTQTlQaUIyYjJsa08xeHVYRzVqYjI1emRDQnBjMGxrUzJWNUlEMGdLR1ZzWlcxbGJuUkxaWGs2SUVWc1pXMWxiblJMWlhrcE9pQmxiR1Z0Wlc1MFMyVjVJR2x6SUVWc1pXMWxiblJKWkV0bGVTQTlQaUI3WEc0Z0lHbG1JQ2gwZVhCbGIyWWdaV3hsYldWdWRFdGxlU0E5UFQwZ1hDSnpkSEpwYm1kY0lpa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JuMDdYRzVjYm1Oc1lYTnpJRk5qWlc1bElIdGNiaUFnTHk4Z0xTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRYRzRnSUM4dklITjBZWFJwWXlCdFpYUm9iMlJ6TDNCeWIzQnpYRzRnSUM4dklDMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMVnh1WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUhOalpXNWxUV0Z3UW5sRmJHVnRaVzUwSUQwZ2JtVjNJRmRsWVd0TllYQThSWGhqWVd4cFpISmhkMFZzWlcxbGJuUXNJRk5qWlc1bFBpZ3BPMXh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJ6WTJWdVpVMWhjRUo1U1dRZ1BTQnVaWGNnVFdGd1BITjBjbWx1Wnl3Z1UyTmxibVUrS0NrN1hHNWNiaUFnYzNSaGRHbGpJRzFoY0VWc1pXMWxiblJVYjFOalpXNWxLR1ZzWlcxbGJuUkxaWGs2SUVWc1pXMWxiblJMWlhrc0lITmpaVzVsT2lCVFkyVnVaU2tnZTF4dUlDQWdJR2xtSUNocGMwbGtTMlY1S0dWc1pXMWxiblJMWlhrcEtTQjdYRzRnSUNBZ0lDQjBhR2x6TG5OalpXNWxUV0Z3UW5sSlpDNXpaWFFvWld4bGJXVnVkRXRsZVN3Z2MyTmxibVVwTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQjBhR2x6TG5OalpXNWxUV0Z3UW5sRmJHVnRaVzUwTG5ObGRDaGxiR1Z0Wlc1MFMyVjVMQ0J6WTJWdVpTazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdjM1JoZEdsaklHZGxkRk5qWlc1bEtHVnNaVzFsYm5STFpYazZJRVZzWlcxbGJuUkxaWGtwT2lCVFkyVnVaU0I4SUc1MWJHd2dlMXh1SUNBZ0lHbG1JQ2hwYzBsa1MyVjVLR1ZzWlcxbGJuUkxaWGtwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NXpZMlZ1WlUxaGNFSjVTV1F1WjJWMEtHVnNaVzFsYm5STFpYa3BJSHg4SUc1MWJHdzdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuTmpaVzVsVFdGd1FubEZiR1Z0Wlc1MExtZGxkQ2hsYkdWdFpXNTBTMlY1S1NCOGZDQnVkV3hzTzF4dUlDQjlYRzVjYmlBZ0x5OGdMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0WEc0Z0lDOHZJR2x1YzNSaGJtTmxJRzFsZEdodlpITXZjSEp2Y0hOY2JpQWdMeThnTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdFhHNWNiaUFnY0hKcGRtRjBaU0JqWVd4c1ltRmphM002SUZObGREeFRZMlZ1WlZOMFlYUmxRMkZzYkdKaFkycytJRDBnYm1WM0lGTmxkQ2dwTzF4dVhHNGdJSEJ5YVhaaGRHVWdibTl1UkdWc1pYUmxaRVZzWlcxbGJuUnpPaUJ5WldGa2IyNXNlU0JPYjI1RVpXeGxkR1ZrUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFNBOUlGdGRPMXh1SUNCd2NtbDJZWFJsSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZElEMGdXMTA3WEc0Z0lIQnlhWFpoZEdVZ1pXeGxiV1Z1ZEhOTllYQWdQU0J1WlhjZ1RXRndQRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMXdpYVdSY0lsMHNJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBQaWdwTzF4dVhHNGdJQzh2SUZSUFJFODZJR2RsZEVGc2JFVnNaVzFsYm5SelNXNWpiSFZrYVc1blJHVnNaWFJsWkZ4dUlDQm5aWFJGYkdWdFpXNTBjMGx1WTJ4MVpHbHVaMFJsYkdWMFpXUW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11Wld4bGJXVnVkSE03WEc0Z0lIMWNibHh1SUNBdkx5QlVUMFJQT2lCblpYUkJiR3hPYjI1RVpXeGxkR1ZrUld4bGJXVnVkSE5jYmlBZ1oyVjBSV3hsYldWdWRITW9LVG9nY21WaFpHOXViSGtnVG05dVJHVnNaWFJsWkVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzEwZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtNXZia1JsYkdWMFpXUkZiR1Z0Wlc1MGN6dGNiaUFnZlZ4dVhHNGdJR2RsZEVWc1pXMWxiblFvYVdRNklFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxd2lhV1JjSWwwcE9pQkZlR05oYkdsa2NtRjNSV3hsYldWdWRDQjhJRzUxYkd3Z2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtVnNaVzFsYm5SelRXRndMbWRsZENocFpDa2dmSHdnYm5Wc2JEdGNiaUFnZlZ4dVhHNGdJR2RsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwS0Z4dUlDQWdJR2xrT2lCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0Y0ltbGtYQ0pkTEZ4dUlDQXBPaUJPYjI1RVpXeGxkR1ZrUEVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwUGlCOElHNTFiR3dnZTF4dUlDQWdJR052Ym5OMElHVnNaVzFsYm5RZ1BTQjBhR2x6TG1kbGRFVnNaVzFsYm5Rb2FXUXBPMXh1SUNBZ0lHbG1JQ2hsYkdWdFpXNTBJQ1ltSUdselRtOXVSR1ZzWlhSbFpFVnNaVzFsYm5Rb1pXeGxiV1Z1ZENrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCbGJHVnRaVzUwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ2ZWeHVYRzRnSUM4dklGUlBSRTg2SUZKbGJtRnRaU0J0WlhSb2IyUnpJR2hsY21Vc0lIUm9hWE1nYVhNZ1kyOXVablZ6YVc1blhHNGdJR2RsZEU1dmJrUmxiR1YwWldSRmJHVnRaVzUwY3loY2JpQWdJQ0JwWkhNNklISmxZV1J2Ym14NUlFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxd2lhV1JjSWwxYlhTeGNiaUFnS1RvZ1RtOXVSR1ZzWlhSbFpEeEZlR05oYkdsa2NtRjNSV3hsYldWdWRENWJYU0I3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpkV3gwT2lCT2IyNUVaV3hsZEdWa1BFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFBsdGRJRDBnVzEwN1hHNGdJQ0FnYVdSekxtWnZja1ZoWTJnb0tHbGtLU0E5UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0JsYkdWdFpXNTBJRDBnZEdocGN5NW5aWFJPYjI1RVpXeGxkR1ZrUld4bGJXVnVkQ2hwWkNrN1hHNGdJQ0FnSUNCcFppQW9aV3hsYldWdWRDQWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQWdJSEpsYzNWc2RDNXdkWE5vS0dWc1pXMWxiblFwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBwTzF4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJSDFjYmx4dUlDQnlaWEJzWVdObFFXeHNSV3hsYldWdWRITW9ibVY0ZEVWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZEtTQjdYRzRnSUNBZ2RHaHBjeTVsYkdWdFpXNTBjeUE5SUc1bGVIUkZiR1Z0Wlc1MGN6dGNiaUFnSUNCMGFHbHpMbVZzWlcxbGJuUnpUV0Z3TG1Oc1pXRnlLQ2s3WEc0Z0lDQWdibVY0ZEVWc1pXMWxiblJ6TG1admNrVmhZMmdvS0dWc1pXMWxiblFwSUQwK0lIdGNiaUFnSUNBZ0lIUm9hWE11Wld4bGJXVnVkSE5OWVhBdWMyVjBLR1ZzWlcxbGJuUXVhV1FzSUdWc1pXMWxiblFwTzF4dUlDQWdJQ0FnVTJObGJtVXViV0Z3Uld4bGJXVnVkRlJ2VTJObGJtVW9aV3hsYldWdWRDd2dkR2hwY3lrN1hHNGdJQ0FnZlNrN1hHNGdJQ0FnZEdocGN5NXViMjVFWld4bGRHVmtSV3hsYldWdWRITWdQU0JuWlhST2IyNUVaV3hsZEdWa1JXeGxiV1Z1ZEhNb2RHaHBjeTVsYkdWdFpXNTBjeWs3WEc0Z0lDQWdkR2hwY3k1cGJtWnZjbTFOZFhSaGRHbHZiaWdwTzF4dUlDQjlYRzVjYmlBZ2FXNW1iM0p0VFhWMFlYUnBiMjRvS1NCN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCallXeHNZbUZqYXlCdlppQkJjbkpoZVM1bWNtOXRLSFJvYVhNdVkyRnNiR0poWTJ0ektTa2dlMXh1SUNBZ0lDQWdZMkZzYkdKaFkyc29LVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JoWkdSRFlXeHNZbUZqYXloallqb2dVMk5sYm1WVGRHRjBaVU5oYkd4aVlXTnJLVG9nVTJObGJtVlRkR0YwWlVOaGJHeGlZV05yVW1WdGIzWmxjaUI3WEc0Z0lDQWdhV1lnS0hSb2FYTXVZMkZzYkdKaFkydHpMbWhoY3loallpa3BJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIUm9hWE11WTJGc2JHSmhZMnR6TG1Ga1pDaGpZaWs3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdLQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ2FXWWdLQ0YwYUdsekxtTmhiR3hpWVdOcmN5NW9ZWE1vWTJJcEtTQjdYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdkR2hwY3k1allXeHNZbUZqYTNNdVpHVnNaWFJsS0dOaUtUdGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdaR1Z6ZEhKdmVTZ3BJSHRjYmlBZ0lDQlRZMlZ1WlM1elkyVnVaVTFoY0VKNVNXUXVabTl5UldGamFDZ29jMk5sYm1Vc0lHVnNaVzFsYm5STFpYa3BJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaHpZMlZ1WlNBOVBUMGdkR2hwY3lrZ2UxeHVJQ0FnSUNBZ0lDQlRZMlZ1WlM1elkyVnVaVTFoY0VKNVNXUXVaR1ZzWlhSbEtHVnNaVzFsYm5STFpYa3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHBPMXh1SUNBZ0lDOHZJR1J2Ym1VZ2JtOTBJR1p2Y2lCdFpXMXZjbmtnYkdWaGEzTXNJR0oxZENCMGJ5Qm5kV0Z5WkNCaFoyRnBibk4wSUhCdmMzTnBZbXhsSUd4aGRHVWdabWx5WlhOY2JpQWdJQ0F2THlBb1NTQm5kV1Z6Y3o4cFhHNGdJQ0FnZEdocGN5NWpZV3hzWW1GamEzTXVZMnhsWVhJb0tUdGNiaUFnZlZ4dWZWeHVYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQlRZMlZ1WlR0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW5OdmRYSmpaVkp2YjNRaU9pSWlmUT09XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL3NjZW5lL1NjZW5lLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9zY2VuZS9jb21wYXJpc29ucy50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9zY2VuZS9jb21wYXJpc29ucy50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaGFzQmFja2dyb3VuZFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGhhc0JhY2tncm91bmQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImhhc1N0cm9rZUNvbG9yXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaGFzU3Ryb2tlQ29sb3IpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImhhc1N0cm9rZVdpZHRoXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaGFzU3Ryb2tlV2lkdGgpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImhhc1N0cm9rZVN0eWxlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaGFzU3Ryb2tlU3R5bGUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImNhbkNoYW5nZVNoYXJwbmVzc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGNhbkNoYW5nZVNoYXJwbmVzcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaGFzVGV4dFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGhhc1RleHQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImNhbkhhdmVBcnJvd2hlYWRzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY2FuSGF2ZUFycm93aGVhZHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEVsZW1lbnRBdFBvc2l0aW9uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0RWxlbWVudEF0UG9zaXRpb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEVsZW1lbnRzQXRQb3NpdGlvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldEVsZW1lbnRzQXRQb3NpdGlvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0RWxlbWVudENvbnRhaW5pbmdQb3NpdGlvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldEVsZW1lbnRDb250YWluaW5nUG9zaXRpb24pXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L2luZGV4LnRzXFxcIik7XFxuXFxuY29uc3QgaGFzQmFja2dyb3VuZCA9ICh0eXBlKSA9PiB0eXBlID09PSBcXFwicmVjdGFuZ2xlXFxcIiB8fFxcbiAgICB0eXBlID09PSBcXFwiZWxsaXBzZVxcXCIgfHxcXG4gICAgdHlwZSA9PT0gXFxcImRpYW1vbmRcXFwiIHx8XFxuICAgIHR5cGUgPT09IFxcXCJsaW5lXFxcIiB8fFxcbiAgICB0eXBlID09PSBcXFwiZnJlZWRyYXdcXFwiO1xcbmNvbnN0IGhhc1N0cm9rZUNvbG9yID0gKHR5cGUpID0+IHR5cGUgIT09IFxcXCJpbWFnZVxcXCI7XFxuY29uc3QgaGFzU3Ryb2tlV2lkdGggPSAodHlwZSkgPT4gdHlwZSA9PT0gXFxcInJlY3RhbmdsZVxcXCIgfHxcXG4gICAgdHlwZSA9PT0gXFxcImVsbGlwc2VcXFwiIHx8XFxuICAgIHR5cGUgPT09IFxcXCJkaWFtb25kXFxcIiB8fFxcbiAgICB0eXBlID09PSBcXFwiZnJlZWRyYXdcXFwiIHx8XFxuICAgIHR5cGUgPT09IFxcXCJhcnJvd1xcXCIgfHxcXG4gICAgdHlwZSA9PT0gXFxcImxpbmVcXFwiO1xcbmNvbnN0IGhhc1N0cm9rZVN0eWxlID0gKHR5cGUpID0+IHR5cGUgPT09IFxcXCJyZWN0YW5nbGVcXFwiIHx8XFxuICAgIHR5cGUgPT09IFxcXCJlbGxpcHNlXFxcIiB8fFxcbiAgICB0eXBlID09PSBcXFwiZGlhbW9uZFxcXCIgfHxcXG4gICAgdHlwZSA9PT0gXFxcImFycm93XFxcIiB8fFxcbiAgICB0eXBlID09PSBcXFwibGluZVxcXCI7XFxuY29uc3QgY2FuQ2hhbmdlU2hhcnBuZXNzID0gKHR5cGUpID0+IHR5cGUgPT09IFxcXCJyZWN0YW5nbGVcXFwiIHx8XFxuICAgIHR5cGUgPT09IFxcXCJhcnJvd1xcXCIgfHxcXG4gICAgdHlwZSA9PT0gXFxcImxpbmVcXFwiIHx8XFxuICAgIHR5cGUgPT09IFxcXCJkaWFtb25kXFxcIjtcXG5jb25zdCBoYXNUZXh0ID0gKHR5cGUpID0+IHR5cGUgPT09IFxcXCJ0ZXh0XFxcIjtcXG5jb25zdCBjYW5IYXZlQXJyb3doZWFkcyA9ICh0eXBlKSA9PiB0eXBlID09PSBcXFwiYXJyb3dcXFwiO1xcbmNvbnN0IGdldEVsZW1lbnRBdFBvc2l0aW9uID0gKGVsZW1lbnRzLCBpc0F0UG9zaXRpb25GbikgPT4ge1xcbiAgICBsZXQgaGl0RWxlbWVudCA9IG51bGw7XFxuICAgIC8vIFdlIG5lZWQgdG8gdG8gaGl0IHRlc3RpbmcgZnJvbSBmcm9udCAoZW5kIG9mIHRoZSBhcnJheSkgdG8gYmFjayAoYmVnaW5uaW5nIG9mIHRoZSBhcnJheSlcXG4gICAgLy8gYmVjYXVzZSBhcnJheSBpcyBvcmRlcmVkIGZyb20gbG93ZXIgei1pbmRleCB0byBoaWdoZXN0IGFuZCB3ZSB3YW50IGVsZW1lbnQgei1pbmRleFxcbiAgICAvLyB3aXRoIGhpZ2hlciB6LWluZGV4XFxuICAgIGZvciAobGV0IGluZGV4ID0gZWxlbWVudHMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgLS1pbmRleCkge1xcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRzW2luZGV4XTtcXG4gICAgICAgIGlmIChlbGVtZW50LmlzRGVsZXRlZCkge1xcbiAgICAgICAgICAgIGNvbnRpbnVlO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKGlzQXRQb3NpdGlvbkZuKGVsZW1lbnQpKSB7XFxuICAgICAgICAgICAgaGl0RWxlbWVudCA9IGVsZW1lbnQ7XFxuICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIGhpdEVsZW1lbnQ7XFxufTtcXG5jb25zdCBnZXRFbGVtZW50c0F0UG9zaXRpb24gPSAoZWxlbWVudHMsIGlzQXRQb3NpdGlvbkZuKSA9PiB7XFxuICAgIC8vIFRoZSBwYXJhbWV0ZXIgZWxlbWVudHMgY29tZXMgb3JkZXJlZCBmcm9tIGxvd2VyIHotaW5kZXggdG8gaGlnaGVyLlxcbiAgICAvLyBXZSB3YW50IHRvIHByZXNlcnZlIHRoYXQgb3JkZXIgb24gdGhlIHJldHVybmVkIGFycmF5LlxcbiAgICByZXR1cm4gZWxlbWVudHMuZmlsdGVyKChlbGVtZW50KSA9PiAhZWxlbWVudC5pc0RlbGV0ZWQgJiYgaXNBdFBvc2l0aW9uRm4oZWxlbWVudCkpO1xcbn07XFxuY29uc3QgZ2V0RWxlbWVudENvbnRhaW5pbmdQb3NpdGlvbiA9IChlbGVtZW50cywgeCwgeSkgPT4ge1xcbiAgICBsZXQgaGl0RWxlbWVudCA9IG51bGw7XFxuICAgIC8vIFdlIG5lZWQgdG8gdG8gaGl0IHRlc3RpbmcgZnJvbSBmcm9udCAoZW5kIG9mIHRoZSBhcnJheSkgdG8gYmFjayAoYmVnaW5uaW5nIG9mIHRoZSBhcnJheSlcXG4gICAgZm9yIChsZXQgaW5kZXggPSBlbGVtZW50cy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyAtLWluZGV4KSB7XFxuICAgICAgICBpZiAoZWxlbWVudHNbaW5kZXhdLmlzRGVsZXRlZCkge1xcbiAgICAgICAgICAgIGNvbnRpbnVlO1xcbiAgICAgICAgfVxcbiAgICAgICAgY29uc3QgW3gxLCB5MSwgeDIsIHkyXSA9ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzKShlbGVtZW50c1tpbmRleF0pO1xcbiAgICAgICAgaWYgKHgxIDwgeCAmJiB4IDwgeDIgJiYgeTEgPCB5ICYmIHkgPCB5Mikge1xcbiAgICAgICAgICAgIGhpdEVsZW1lbnQgPSBlbGVtZW50c1tpbmRleF07XFxuICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIGhpdEVsZW1lbnQ7XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dmMyTmxibVV2WTI5dGNHRnlhWE52Ym5NdWRITXVhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3UVVGTGMwUTdRVUZGTDBNc1RVRkJUU3hoUVVGaExFZEJRVWNzUTBGQlF5eEpRVUZaTEVWQlFVVXNSVUZCUlN4RFFVTTFReXhKUVVGSkxFdEJRVXNzVjBGQlZ6dEpRVU53UWl4SlFVRkpMRXRCUVVzc1UwRkJVenRKUVVOc1FpeEpRVUZKTEV0QlFVc3NVMEZCVXp0SlFVTnNRaXhKUVVGSkxFdEJRVXNzVFVGQlRUdEpRVU5tTEVsQlFVa3NTMEZCU3l4VlFVRlZMRU5CUVVNN1FVRkZaaXhOUVVGTkxHTkJRV01zUjBGQlJ5eERRVUZETEVsQlFWa3NSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hMUVVGTExFOUJRVThzUTBGQlF6dEJRVVV4UkN4TlFVRk5MR05CUVdNc1IwRkJSeXhEUVVGRExFbEJRVmtzUlVGQlJTeEZRVUZGTEVOQlF6ZERMRWxCUVVrc1MwRkJTeXhYUVVGWE8wbEJRM0JDTEVsQlFVa3NTMEZCU3l4VFFVRlRPMGxCUTJ4Q0xFbEJRVWtzUzBGQlN5eFRRVUZUTzBsQlEyeENMRWxCUVVrc1MwRkJTeXhWUVVGVk8wbEJRMjVDTEVsQlFVa3NTMEZCU3l4UFFVRlBPMGxCUTJoQ0xFbEJRVWtzUzBGQlN5eE5RVUZOTEVOQlFVTTdRVUZGV0N4TlFVRk5MR05CUVdNc1IwRkJSeXhEUVVGRExFbEJRVmtzUlVGQlJTeEZRVUZGTEVOQlF6ZERMRWxCUVVrc1MwRkJTeXhYUVVGWE8wbEJRM0JDTEVsQlFVa3NTMEZCU3l4VFFVRlRPMGxCUTJ4Q0xFbEJRVWtzUzBGQlN5eFRRVUZUTzBsQlEyeENMRWxCUVVrc1MwRkJTeXhQUVVGUE8wbEJRMmhDTEVsQlFVa3NTMEZCU3l4TlFVRk5MRU5CUVVNN1FVRkZXQ3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMRU5CUVVNc1NVRkJXU3hGUVVGRkxFVkJRVVVzUTBGRGFrUXNTVUZCU1N4TFFVRkxMRmRCUVZjN1NVRkRjRUlzU1VGQlNTeExRVUZMTEU5QlFVODdTVUZEYUVJc1NVRkJTU3hMUVVGTExFMUJRVTA3U1VGRFppeEpRVUZKTEV0QlFVc3NVMEZCVXl4RFFVRkRPMEZCUldRc1RVRkJUU3hQUVVGUExFZEJRVWNzUTBGQlF5eEpRVUZaTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1MwRkJTeXhOUVVGTkxFTkJRVU03UVVGRmJFUXNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eERRVUZETEVsQlFWa3NSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hMUVVGTExFOUJRVThzUTBGQlF6dEJRVVUzUkN4TlFVRk5MRzlDUVVGdlFpeEhRVUZITEVOQlEyeERMRkZCUVdkRUxFVkJRMmhFTEdOQlFXbEZMRVZCUTJwRkxFVkJRVVU3U1VGRFJpeEpRVUZKTEZWQlFWVXNSMEZCUnl4SlFVRkpMRU5CUVVNN1NVRkRkRUlzTWtaQlFUSkdPMGxCUXpOR0xIRkdRVUZ4Ump0SlFVTnlSaXh6UWtGQmMwSTdTVUZEZEVJc1MwRkJTeXhKUVVGSkxFdEJRVXNzUjBGQlJ5eFJRVUZSTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1JVRkJSU3hMUVVGTExFbEJRVWtzUTBGQlF5eEZRVUZGTEVWQlFVVXNTMEZCU3l4RlFVRkZPMUZCUTNwRUxFMUJRVTBzVDBGQlR5eEhRVUZITEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVOb1F5eEpRVUZKTEU5QlFVOHNRMEZCUXl4VFFVRlRMRVZCUVVVN1dVRkRja0lzVTBGQlV6dFRRVU5XTzFGQlEwUXNTVUZCU1N4alFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVU3V1VGRE0wSXNWVUZCVlN4SFFVRkhMRTlCUVU4c1EwRkJRenRaUVVOeVFpeE5RVUZOTzFOQlExQTdTMEZEUmp0SlFVVkVMRTlCUVU4c1ZVRkJWU3hEUVVGRE8wRkJRM0JDTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc2NVSkJRWEZDTEVkQlFVY3NRMEZEYmtNc1VVRkJaMFFzUlVGRGFFUXNZMEZCYVVVc1JVRkRha1VzUlVGQlJUdEpRVU5HTEhGRlFVRnhSVHRKUVVOeVJTeDNSRUZCZDBRN1NVRkRlRVFzVDBGQlR5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVTndRaXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1UwRkJVeXhKUVVGSkxHTkJRV01zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZETTBRc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNORUpCUVRSQ0xFZEJRVWNzUTBGRE1VTXNVVUZCYzBNc1JVRkRkRU1zUTBGQlV5eEZRVU5VTEVOQlFWTXNSVUZEVkN4RlFVRkZPMGxCUTBZc1NVRkJTU3hWUVVGVkxFZEJRVWNzU1VGQlNTeERRVUZETzBsQlEzUkNMREpHUVVFeVJqdEpRVU16Uml4TFFVRkxMRWxCUVVrc1MwRkJTeXhIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZMRXRCUVVzc1NVRkJTU3hEUVVGRExFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVTdVVUZEZWtRc1NVRkJTU3hSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZPMWxCUXpkQ0xGTkJRVk03VTBGRFZqdFJRVU5FTEUxQlFVMHNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4clJVRkJkMElzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOdVJTeEpRVUZKTEVWQlFVVXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFVkJRVVVzU1VGQlNTeEZRVUZGTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRVVU3V1VGRGVFTXNWVUZCVlN4SFFVRkhMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVU0zUWl4TlFVRk5PMU5CUTFBN1MwRkRSanRKUVVORUxFOUJRVThzVlVGQlZTeERRVUZETzBGQlEzQkNMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5elkyVnVaUzlqYjIxd1lYSnBjMjl1Y3k1MGN6OHdOVFF4SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN1hHNGdJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBMRnh1SUNCT2IyNUVaV3hsZEdWa1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5Rc1hHNTlJR1p5YjIwZ1hDSXVMaTlsYkdWdFpXNTBMM1I1Y0dWelhDSTdYRzVjYm1sdGNHOXlkQ0I3SUdkbGRFVnNaVzFsYm5SQlluTnZiSFYwWlVOdmIzSmtjeUI5SUdaeWIyMGdYQ0l1TGk5bGJHVnRaVzUwWENJN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCb1lYTkNZV05yWjNKdmRXNWtJRDBnS0hSNWNHVTZJSE4wY21sdVp5a2dQVDVjYmlBZ2RIbHdaU0E5UFQwZ1hDSnlaV04wWVc1bmJHVmNJaUI4ZkZ4dUlDQjBlWEJsSUQwOVBTQmNJbVZzYkdsd2MyVmNJaUI4ZkZ4dUlDQjBlWEJsSUQwOVBTQmNJbVJwWVcxdmJtUmNJaUI4ZkZ4dUlDQjBlWEJsSUQwOVBTQmNJbXhwYm1WY0lpQjhmRnh1SUNCMGVYQmxJRDA5UFNCY0ltWnlaV1ZrY21GM1hDSTdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm9ZWE5UZEhKdmEyVkRiMnh2Y2lBOUlDaDBlWEJsT2lCemRISnBibWNwSUQwK0lIUjVjR1VnSVQwOUlGd2lhVzFoWjJWY0lqdGNibHh1Wlhod2IzSjBJR052Ym5OMElHaGhjMU4wY205clpWZHBaSFJvSUQwZ0tIUjVjR1U2SUhOMGNtbHVaeWtnUFQ1Y2JpQWdkSGx3WlNBOVBUMGdYQ0p5WldOMFlXNW5iR1ZjSWlCOGZGeHVJQ0IwZVhCbElEMDlQU0JjSW1Wc2JHbHdjMlZjSWlCOGZGeHVJQ0IwZVhCbElEMDlQU0JjSW1ScFlXMXZibVJjSWlCOGZGeHVJQ0IwZVhCbElEMDlQU0JjSW1aeVpXVmtjbUYzWENJZ2ZIeGNiaUFnZEhsd1pTQTlQVDBnWENKaGNuSnZkMXdpSUh4OFhHNGdJSFI1Y0dVZ1BUMDlJRndpYkdsdVpWd2lPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdhR0Z6VTNSeWIydGxVM1I1YkdVZ1BTQW9kSGx3WlRvZ2MzUnlhVzVuS1NBOVBseHVJQ0IwZVhCbElEMDlQU0JjSW5KbFkzUmhibWRzWlZ3aUlIeDhYRzRnSUhSNWNHVWdQVDA5SUZ3aVpXeHNhWEJ6WlZ3aUlIeDhYRzRnSUhSNWNHVWdQVDA5SUZ3aVpHbGhiVzl1WkZ3aUlIeDhYRzRnSUhSNWNHVWdQVDA5SUZ3aVlYSnliM2RjSWlCOGZGeHVJQ0IwZVhCbElEMDlQU0JjSW14cGJtVmNJanRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR05oYmtOb1lXNW5aVk5vWVhKd2JtVnpjeUE5SUNoMGVYQmxPaUJ6ZEhKcGJtY3BJRDArWEc0Z0lIUjVjR1VnUFQwOUlGd2ljbVZqZEdGdVoyeGxYQ0lnZkh4Y2JpQWdkSGx3WlNBOVBUMGdYQ0poY25KdmQxd2lJSHg4WEc0Z0lIUjVjR1VnUFQwOUlGd2liR2x1WlZ3aUlIeDhYRzRnSUhSNWNHVWdQVDA5SUZ3aVpHbGhiVzl1WkZ3aU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2FHRnpWR1Y0ZENBOUlDaDBlWEJsT2lCemRISnBibWNwSUQwK0lIUjVjR1VnUFQwOUlGd2lkR1Y0ZEZ3aU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1kyRnVTR0YyWlVGeWNtOTNhR1ZoWkhNZ1BTQW9kSGx3WlRvZ2MzUnlhVzVuS1NBOVBpQjBlWEJsSUQwOVBTQmNJbUZ5Y205M1hDSTdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm5aWFJGYkdWdFpXNTBRWFJRYjNOcGRHbHZiaUE5SUNoY2JpQWdaV3hsYldWdWRITTZJSEpsWVdSdmJteDVJRTV2YmtSbGJHVjBaV1JGZUdOaGJHbGtjbUYzUld4bGJXVnVkRnRkTEZ4dUlDQnBjMEYwVUc5emFYUnBiMjVHYmpvZ0tHVnNaVzFsYm5RNklFNXZia1JsYkdWMFpXUkZlR05oYkdsa2NtRjNSV3hsYldWdWRDa2dQVDRnWW05dmJHVmhiaXhjYmlrZ1BUNGdlMXh1SUNCc1pYUWdhR2wwUld4bGJXVnVkQ0E5SUc1MWJHdzdYRzRnSUM4dklGZGxJRzVsWldRZ2RHOGdkRzhnYUdsMElIUmxjM1JwYm1jZ1puSnZiU0JtY205dWRDQW9aVzVrSUc5bUlIUm9aU0JoY25KaGVTa2dkRzhnWW1GamF5QW9ZbVZuYVc1dWFXNW5JRzltSUhSb1pTQmhjbkpoZVNsY2JpQWdMeThnWW1WallYVnpaU0JoY25KaGVTQnBjeUJ2Y21SbGNtVmtJR1p5YjIwZ2JHOTNaWElnZWkxcGJtUmxlQ0IwYnlCb2FXZG9aWE4wSUdGdVpDQjNaU0IzWVc1MElHVnNaVzFsYm5RZ2VpMXBibVJsZUZ4dUlDQXZMeUIzYVhSb0lHaHBaMmhsY2lCNkxXbHVaR1Y0WEc0Z0lHWnZjaUFvYkdWMElHbHVaR1Y0SUQwZ1pXeGxiV1Z1ZEhNdWJHVnVaM1JvSUMwZ01Uc2dhVzVrWlhnZ1BqMGdNRHNnTFMxcGJtUmxlQ2tnZTF4dUlDQWdJR052Ym5OMElHVnNaVzFsYm5RZ1BTQmxiR1Z0Wlc1MGMxdHBibVJsZUYwN1hHNGdJQ0FnYVdZZ0tHVnNaVzFsYm5RdWFYTkVaV3hsZEdWa0tTQjdYRzRnSUNBZ0lDQmpiMjUwYVc1MVpUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tHbHpRWFJRYjNOcGRHbHZia1p1S0dWc1pXMWxiblFwS1NCN1hHNGdJQ0FnSUNCb2FYUkZiR1Z0Wlc1MElEMGdaV3hsYldWdWREdGNiaUFnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJvYVhSRmJHVnRaVzUwTzF4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHZGxkRVZzWlcxbGJuUnpRWFJRYjNOcGRHbHZiaUE5SUNoY2JpQWdaV3hsYldWdWRITTZJSEpsWVdSdmJteDVJRTV2YmtSbGJHVjBaV1JGZUdOaGJHbGtjbUYzUld4bGJXVnVkRnRkTEZ4dUlDQnBjMEYwVUc5emFYUnBiMjVHYmpvZ0tHVnNaVzFsYm5RNklFNXZia1JsYkdWMFpXUkZlR05oYkdsa2NtRjNSV3hsYldWdWRDa2dQVDRnWW05dmJHVmhiaXhjYmlrZ1BUNGdlMXh1SUNBdkx5QlVhR1VnY0dGeVlXMWxkR1Z5SUdWc1pXMWxiblJ6SUdOdmJXVnpJRzl5WkdWeVpXUWdabkp2YlNCc2IzZGxjaUI2TFdsdVpHVjRJSFJ2SUdocFoyaGxjaTVjYmlBZ0x5OGdWMlVnZDJGdWRDQjBieUJ3Y21WelpYSjJaU0IwYUdGMElHOXlaR1Z5SUc5dUlIUm9aU0J5WlhSMWNtNWxaQ0JoY25KaGVTNWNiaUFnY21WMGRYSnVJR1ZzWlcxbGJuUnpMbVpwYkhSbGNpaGNiaUFnSUNBb1pXeGxiV1Z1ZENrZ1BUNGdJV1ZzWlcxbGJuUXVhWE5FWld4bGRHVmtJQ1ltSUdselFYUlFiM05wZEdsdmJrWnVLR1ZzWlcxbGJuUXBMRnh1SUNBcE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2RsZEVWc1pXMWxiblJEYjI1MFlXbHVhVzVuVUc5emFYUnBiMjRnUFNBb1hHNGdJR1ZzWlcxbGJuUnpPaUJ5WldGa2IyNXNlU0JGZUdOaGJHbGtjbUYzUld4bGJXVnVkRnRkTEZ4dUlDQjRPaUJ1ZFcxaVpYSXNYRzRnSUhrNklHNTFiV0psY2l4Y2Jpa2dQVDRnZTF4dUlDQnNaWFFnYUdsMFJXeGxiV1Z1ZENBOUlHNTFiR3c3WEc0Z0lDOHZJRmRsSUc1bFpXUWdkRzhnZEc4Z2FHbDBJSFJsYzNScGJtY2dabkp2YlNCbWNtOXVkQ0FvWlc1a0lHOW1JSFJvWlNCaGNuSmhlU2tnZEc4Z1ltRmpheUFvWW1WbmFXNXVhVzVuSUc5bUlIUm9aU0JoY25KaGVTbGNiaUFnWm05eUlDaHNaWFFnYVc1a1pYZ2dQU0JsYkdWdFpXNTBjeTVzWlc1bmRHZ2dMU0F4T3lCcGJtUmxlQ0ErUFNBd095QXRMV2x1WkdWNEtTQjdYRzRnSUNBZ2FXWWdLR1ZzWlcxbGJuUnpXMmx1WkdWNFhTNXBjMFJsYkdWMFpXUXBJSHRjYmlBZ0lDQWdJR052Ym5ScGJuVmxPMXh1SUNBZ0lIMWNiaUFnSUNCamIyNXpkQ0JiZURFc0lIa3hMQ0I0TWl3Z2VUSmRJRDBnWjJWMFJXeGxiV1Z1ZEVGaWMyOXNkWFJsUTI5dmNtUnpLR1ZzWlcxbGJuUnpXMmx1WkdWNFhTazdYRzRnSUNBZ2FXWWdLSGd4SUR3Z2VDQW1KaUI0SUR3Z2VESWdKaVlnZVRFZ1BDQjVJQ1ltSUhrZ1BDQjVNaWtnZTF4dUlDQWdJQ0FnYUdsMFJXeGxiV1Z1ZENBOUlHVnNaVzFsYm5SelcybHVaR1Y0WFR0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lIMWNiaUFnZlZ4dUlDQnlaWFIxY200Z2FHbDBSV3hsYldWdWREdGNibjA3WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vc2NlbmUvY29tcGFyaXNvbnMudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL3NjZW5lL2V4cG9ydC50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vc2NlbmUvZXhwb3J0LnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiU1ZHX0VYUE9SVF9UQUdcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBTVkdfRVhQT1JUX1RBRyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZXhwb3J0VG9DYW52YXNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBleHBvcnRUb0NhbnZhcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZXhwb3J0VG9TdmdcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBleHBvcnRUb1N2ZyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0RXhwb3J0U2l6ZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldEV4cG9ydFNpemUpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJvdWdoanNfYmluX3JvdWdoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByb3VnaGpzL2Jpbi9yb3VnaCAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JvdWdoanMvYmluL3JvdWdoLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X2JvdW5kc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudC9ib3VuZHMgKi8gXFxcIi4uLy4uL2VsZW1lbnQvYm91bmRzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9yZW5kZXJlcl9yZW5kZXJTY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vcmVuZGVyZXIvcmVuZGVyU2NlbmUgKi8gXFxcIi4uLy4uL3JlbmRlcmVyL3JlbmRlclNjZW5lLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vdXRpbHMgKi8gXFxcIi4uLy4uL3V0aWxzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbnN0YW50cyAqLyBcXFwiLi4vLi4vY29uc3RhbnRzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hcHBTdGF0ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vYXBwU3RhdGUgKi8gXFxcIi4uLy4uL2FwcFN0YXRlLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9kYXRhX2pzb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2RhdGEvanNvbiAqLyBcXFwiLi4vLi4vZGF0YS9qc29uLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X2ltYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50L2ltYWdlICovIFxcXCIuLi8uLi9lbGVtZW50L2ltYWdlLnRzXFxcIik7XFxudmFyIF9fYXdhaXRlciA9ICh1bmRlZmluZWQgJiYgdW5kZWZpbmVkLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XFxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XFxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcXFwidGhyb3dcXFwiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XFxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xcbiAgICB9KTtcXG59O1xcblxcblxcblxcblxcblxcblxcblxcblxcbmNvbnN0IFNWR19FWFBPUlRfVEFHID0gYDwhLS0gc3ZnLXNvdXJjZTpleGNhbGlkcmF3IC0tPmA7XFxuY29uc3QgZXhwb3J0VG9DYW52YXMgPSAoZWxlbWVudHMsIGFwcFN0YXRlLCBmaWxlcywgeyBleHBvcnRCYWNrZ3JvdW5kLCBleHBvcnRQYWRkaW5nID0gX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLkRFRkFVTFRfRVhQT1JUX1BBRERJTkcsIHZpZXdCYWNrZ3JvdW5kQ29sb3IsIH0sIGNyZWF0ZUNhbnZhcyA9ICh3aWR0aCwgaGVpZ2h0KSA9PiB7XFxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXFxcImNhbnZhc1xcXCIpO1xcbiAgICBjYW52YXMud2lkdGggPSB3aWR0aCAqIGFwcFN0YXRlLmV4cG9ydFNjYWxlO1xcbiAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0ICogYXBwU3RhdGUuZXhwb3J0U2NhbGU7XFxuICAgIHJldHVybiB7IGNhbnZhcywgc2NhbGU6IGFwcFN0YXRlLmV4cG9ydFNjYWxlIH07XFxufSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XFxuICAgIGNvbnN0IFttaW5YLCBtaW5ZLCB3aWR0aCwgaGVpZ2h0XSA9IGdldENhbnZhc1NpemUoZWxlbWVudHMsIGV4cG9ydFBhZGRpbmcpO1xcbiAgICBjb25zdCB7IGNhbnZhcywgc2NhbGUgPSAxIH0gPSBjcmVhdGVDYW52YXMod2lkdGgsIGhlaWdodCk7XFxuICAgIGNvbnN0IGRlZmF1bHRBcHBTdGF0ZSA9ICgwLF9hcHBTdGF0ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldERlZmF1bHRBcHBTdGF0ZSkoKTtcXG4gICAgY29uc3QgeyBpbWFnZUNhY2hlIH0gPSB5aWVsZCAoMCxfZWxlbWVudF9pbWFnZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLnVwZGF0ZUltYWdlQ2FjaGUpKHtcXG4gICAgICAgIGltYWdlQ2FjaGU6IG5ldyBNYXAoKSxcXG4gICAgICAgIGZpbGVJZHM6ICgwLF9lbGVtZW50X2ltYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uZ2V0SW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnRzKShlbGVtZW50cykubWFwKChlbGVtZW50KSA9PiBlbGVtZW50LmZpbGVJZCksXFxuICAgICAgICBmaWxlcyxcXG4gICAgfSk7XFxuICAgICgwLF9yZW5kZXJlcl9yZW5kZXJTY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnJlbmRlclNjZW5lKShlbGVtZW50cywgYXBwU3RhdGUsIG51bGwsIHNjYWxlLCByb3VnaGpzX2Jpbl9yb3VnaF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fW1xcXCJkZWZhdWx0XFxcIl0uY2FudmFzKGNhbnZhcyksIGNhbnZhcywge1xcbiAgICAgICAgdmlld0JhY2tncm91bmRDb2xvcjogZXhwb3J0QmFja2dyb3VuZCA/IHZpZXdCYWNrZ3JvdW5kQ29sb3IgOiBudWxsLFxcbiAgICAgICAgc2Nyb2xsWDogLW1pblggKyBleHBvcnRQYWRkaW5nLFxcbiAgICAgICAgc2Nyb2xsWTogLW1pblkgKyBleHBvcnRQYWRkaW5nLFxcbiAgICAgICAgem9vbTogZGVmYXVsdEFwcFN0YXRlLnpvb20sXFxuICAgICAgICByZW1vdGVQb2ludGVyVmlld3BvcnRDb29yZHM6IHt9LFxcbiAgICAgICAgcmVtb3RlU2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcXG4gICAgICAgIHNob3VsZENhY2hlSWdub3JlWm9vbTogZmFsc2UsXFxuICAgICAgICByZW1vdGVQb2ludGVyVXNlcm5hbWVzOiB7fSxcXG4gICAgICAgIHJlbW90ZVBvaW50ZXJVc2VyU3RhdGVzOiB7fSxcXG4gICAgICAgIHRoZW1lOiBhcHBTdGF0ZS5leHBvcnRXaXRoRGFya01vZGUgPyBcXFwiZGFya1xcXCIgOiBcXFwibGlnaHRcXFwiLFxcbiAgICAgICAgaW1hZ2VDYWNoZSxcXG4gICAgICAgIHJlbmRlclNjcm9sbGJhcnM6IGZhbHNlLFxcbiAgICAgICAgcmVuZGVyU2VsZWN0aW9uOiBmYWxzZSxcXG4gICAgICAgIHJlbmRlckdyaWQ6IGZhbHNlLFxcbiAgICAgICAgaXNFeHBvcnRpbmc6IHRydWUsXFxuICAgIH0pO1xcbiAgICByZXR1cm4gY2FudmFzO1xcbn0pO1xcbmNvbnN0IGV4cG9ydFRvU3ZnID0gKGVsZW1lbnRzLCBhcHBTdGF0ZSwgZmlsZXMpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xcbiAgICBjb25zdCB7IGV4cG9ydFBhZGRpbmcgPSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uREVGQVVMVF9FWFBPUlRfUEFERElORywgdmlld0JhY2tncm91bmRDb2xvciwgZXhwb3J0U2NhbGUgPSAxLCBleHBvcnRFbWJlZFNjZW5lLCB9ID0gYXBwU3RhdGU7XFxuICAgIGxldCBtZXRhZGF0YSA9IFxcXCJcXFwiO1xcbiAgICBpZiAoZXhwb3J0RW1iZWRTY2VuZSkge1xcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICBtZXRhZGF0YSA9IHlpZWxkICh5aWVsZCBQcm9taXNlLmFsbCgvKiEgaW1wb3J0KCkgfCBpbWFnZSAqL1tfX3dlYnBhY2tfcmVxdWlyZV9fLmUoXFxcInZlbmRvclxcXCIpLCBfX3dlYnBhY2tfcmVxdWlyZV9fLmUoXFxcImltYWdlXFxcIildKS50aGVuKF9fd2VicGFja19yZXF1aXJlX18uYmluZChfX3dlYnBhY2tfcmVxdWlyZV9fLCAvKiEgLi4vLi4vc3JjL2RhdGEvaW1hZ2UgKi8gXFxcIi4uLy4uL2RhdGEvaW1hZ2UudHNcXFwiKSkpLmVuY29kZVN2Z01ldGFkYXRhKHtcXG4gICAgICAgICAgICAgICAgdGV4dDogKDAsX2RhdGFfanNvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnNlcmlhbGl6ZUFzSlNPTikoZWxlbWVudHMsIGFwcFN0YXRlLCBmaWxlcyB8fCB7fSwgXFxcImxvY2FsXFxcIiksXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBjb25zdCBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF0gPSBnZXRDYW52YXNTaXplKGVsZW1lbnRzLCBleHBvcnRQYWRkaW5nKTtcXG4gICAgLy8gaW5pdGlhbHplIFNWRyByb290XFxuICAgIGNvbnN0IHN2Z1Jvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlNWR19OUywgXFxcInN2Z1xcXCIpO1xcbiAgICBzdmdSb290LnNldEF0dHJpYnV0ZShcXFwidmVyc2lvblxcXCIsIFxcXCIxLjFcXFwiKTtcXG4gICAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXFxcInhtbG5zXFxcIiwgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlNWR19OUyk7XFxuICAgIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFxcXCJ2aWV3Qm94XFxcIiwgYDAgMCAke3dpZHRofSAke2hlaWdodH1gKTtcXG4gICAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXFxcIndpZHRoXFxcIiwgYCR7d2lkdGggKiBleHBvcnRTY2FsZX1gKTtcXG4gICAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXFxcImhlaWdodFxcXCIsIGAke2hlaWdodCAqIGV4cG9ydFNjYWxlfWApO1xcbiAgICBpZiAoYXBwU3RhdGUuZXhwb3J0V2l0aERhcmtNb2RlKSB7XFxuICAgICAgICBzdmdSb290LnNldEF0dHJpYnV0ZShcXFwiZmlsdGVyXFxcIiwgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlRIRU1FX0ZJTFRFUik7XFxuICAgIH1cXG4gICAgc3ZnUm9vdC5pbm5lckhUTUwgPSBgXFxuICAke1NWR19FWFBPUlRfVEFHfVxcbiAgJHttZXRhZGF0YX1cXG4gIDxkZWZzPlxcbiAgICA8c3R5bGU+XFxuICAgICAgQGZvbnQtZmFjZSB7XFxuICAgICAgICBmb250LWZhbWlseTogXFxcIlZpcmdpbFxcXCI7XFxuICAgICAgICBzcmM6IHVybChcXFwiaHR0cHM6Ly9leGNhbGlkcmF3LmNvbS9WaXJnaWwud29mZjJcXFwiKTtcXG4gICAgICB9XFxuICAgICAgQGZvbnQtZmFjZSB7XFxuICAgICAgICBmb250LWZhbWlseTogXFxcIkNhc2NhZGlhXFxcIjtcXG4gICAgICAgIHNyYzogdXJsKFxcXCJodHRwczovL2V4Y2FsaWRyYXcuY29tL0Nhc2NhZGlhLndvZmYyXFxcIik7XFxuICAgICAgfVxcbiAgICA8L3N0eWxlPlxcbiAgPC9kZWZzPlxcbiAgYDtcXG4gICAgLy8gcmVuZGVyIGJhY2tncm91bmQgcmVjdFxcbiAgICBpZiAoYXBwU3RhdGUuZXhwb3J0QmFja2dyb3VuZCAmJiB2aWV3QmFja2dyb3VuZENvbG9yKSB7XFxuICAgICAgICBjb25zdCByZWN0ID0gc3ZnUm9vdC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uU1ZHX05TLCBcXFwicmVjdFxcXCIpO1xcbiAgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoXFxcInhcXFwiLCBcXFwiMFxcXCIpO1xcbiAgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoXFxcInlcXFwiLCBcXFwiMFxcXCIpO1xcbiAgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoXFxcIndpZHRoXFxcIiwgYCR7d2lkdGh9YCk7XFxuICAgICAgICByZWN0LnNldEF0dHJpYnV0ZShcXFwiaGVpZ2h0XFxcIiwgYCR7aGVpZ2h0fWApO1xcbiAgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoXFxcImZpbGxcXFwiLCB2aWV3QmFja2dyb3VuZENvbG9yKTtcXG4gICAgICAgIHN2Z1Jvb3QuYXBwZW5kQ2hpbGQocmVjdCk7XFxuICAgIH1cXG4gICAgY29uc3QgcnN2ZyA9IHJvdWdoanNfYmluX3JvdWdoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bXFxcImRlZmF1bHRcXFwiXS5zdmcoc3ZnUm9vdCk7XFxuICAgICgwLF9yZW5kZXJlcl9yZW5kZXJTY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnJlbmRlclNjZW5lVG9TdmcpKGVsZW1lbnRzLCByc3ZnLCBzdmdSb290LCBmaWxlcyB8fCB7fSwge1xcbiAgICAgICAgb2Zmc2V0WDogLW1pblggKyBleHBvcnRQYWRkaW5nLFxcbiAgICAgICAgb2Zmc2V0WTogLW1pblkgKyBleHBvcnRQYWRkaW5nLFxcbiAgICAgICAgZXhwb3J0V2l0aERhcmtNb2RlOiBhcHBTdGF0ZS5leHBvcnRXaXRoRGFya01vZGUsXFxuICAgIH0pO1xcbiAgICByZXR1cm4gc3ZnUm9vdDtcXG59KTtcXG4vLyBjYWxjdWxhdGUgc21hbGxlc3QgYXJlYSB0byBmaXQgdGhlIGNvbnRlbnRzIGluXFxuY29uc3QgZ2V0Q2FudmFzU2l6ZSA9IChlbGVtZW50cywgZXhwb3J0UGFkZGluZykgPT4ge1xcbiAgICBjb25zdCBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV0gPSAoMCxfZWxlbWVudF9ib3VuZHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRDb21tb25Cb3VuZHMpKGVsZW1lbnRzKTtcXG4gICAgY29uc3Qgd2lkdGggPSAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5kaXN0YW5jZSkobWluWCwgbWF4WCkgKyBleHBvcnRQYWRkaW5nICogMjtcXG4gICAgY29uc3QgaGVpZ2h0ID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZGlzdGFuY2UpKG1pblksIG1heFkpICsgZXhwb3J0UGFkZGluZyArIGV4cG9ydFBhZGRpbmc7XFxuICAgIHJldHVybiBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF07XFxufTtcXG5jb25zdCBnZXRFeHBvcnRTaXplID0gKGVsZW1lbnRzLCBleHBvcnRQYWRkaW5nLCBzY2FsZSkgPT4ge1xcbiAgICBjb25zdCBbLCAsIHdpZHRoLCBoZWlnaHRdID0gZ2V0Q2FudmFzU2l6ZShlbGVtZW50cywgZXhwb3J0UGFkZGluZykubWFwKChkaW1lbnNpb24pID0+IE1hdGgudHJ1bmMoZGltZW5zaW9uICogc2NhbGUpKTtcXG4gICAgcmV0dXJuIFt3aWR0aCwgaGVpZ2h0XTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2YzJObGJtVXZaWGh3YjNKMExuUnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3p0QlFVRnpRenRCUVVWak8wRkJRMjlDTzBGQlEzQkRPMEZCUlhkRE8wRkJRek5DTzBGQlEwWTdRVUZKY2tJN1FVRkZia0lzVFVGQlRTeGpRVUZqTEVkQlFVY3NaME5CUVdkRExFTkJRVU03UVVGRmVFUXNUVUZCVFN4alFVRmpMRWRCUVVjc1EwRkROVUlzVVVGQlowUXNSVUZEYUVRc1VVRkJhMElzUlVGRGJFSXNTMEZCYTBJc1JVRkRiRUlzUlVGRFJTeG5Ra0ZCWjBJc1JVRkRhRUlzWVVGQllTeEhRVUZITERoRVFVRnpRaXhGUVVOMFF5eHRRa0ZCYlVJc1IwRkxjRUlzUlVGRFJDeGxRVWR2UkN4RFFVRkRMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUlVGQlJUdEpRVU53UlN4TlFVRk5MRTFCUVUwc1IwRkJSeXhSUVVGUkxFTkJRVU1zWVVGQllTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMGxCUTJoRUxFMUJRVTBzUTBGQlF5eExRVUZMTEVkQlFVY3NTMEZCU3l4SFFVRkhMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU03U1VGRE5VTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1IwRkJSeXhOUVVGTkxFZEJRVWNzVVVGQlVTeERRVUZETEZkQlFWY3NRMEZCUXp0SlFVTTVReXhQUVVGUExFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlN4UlFVRlJMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03UVVGRGFrUXNRMEZCUXl4RlFVTkVMRVZCUVVVN1NVRkRSaXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlN4TFFVRkxMRVZCUVVVc1RVRkJUU3hEUVVGRExFZEJRVWNzWVVGQllTeERRVUZETEZGQlFWRXNSVUZCUlN4aFFVRmhMRU5CUVVNc1EwRkJRenRKUVVVelJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1IwRkJSeXhEUVVGRExFVkJRVVVzUjBGQlJ5eFpRVUZaTEVOQlFVTXNTMEZCU3l4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJSVEZFTEUxQlFVMHNaVUZCWlN4SFFVRkhMRFpFUVVGclFpeEZRVUZGTEVOQlFVTTdTVUZGTjBNc1RVRkJUU3hGUVVGRkxGVkJRVlVzUlVGQlJTeEhRVUZITEUxQlFVMHNaMFZCUVdkQ0xFTkJRVU03VVVGRE5VTXNWVUZCVlN4RlFVRkZMRWxCUVVrc1IwRkJSeXhGUVVGRk8xRkJRM0pDTEU5QlFVOHNSVUZCUlN3eVJVRkJNa0lzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUTJoRUxFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVNMVFqdFJRVU5FTEV0QlFVczdTMEZEVGl4RFFVRkRMRU5CUVVNN1NVRkZTQ3hyUlVGQlZ5eERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUVVVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJTeG5SVUZCV1N4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFMUJRVTBzUlVGQlJUdFJRVU42UlN4dFFrRkJiVUlzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWs3VVVGRGJFVXNUMEZCVHl4RlFVRkZMRU5CUVVNc1NVRkJTU3hIUVVGSExHRkJRV0U3VVVGRE9VSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1NVRkJTU3hIUVVGSExHRkJRV0U3VVVGRE9VSXNTVUZCU1N4RlFVRkZMR1ZCUVdVc1EwRkJReXhKUVVGSk8xRkJRekZDTERKQ1FVRXlRaXhGUVVGRkxFVkJRVVU3VVVGREwwSXNkMEpCUVhkQ0xFVkJRVVVzUlVGQlJUdFJRVU0xUWl4eFFrRkJjVUlzUlVGQlJTeExRVUZMTzFGQlF6VkNMSE5DUVVGelFpeEZRVUZGTEVWQlFVVTdVVUZETVVJc2RVSkJRWFZDTEVWQlFVVXNSVUZCUlR0UlFVTXpRaXhMUVVGTExFVkJRVVVzVVVGQlVTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4N1VVRkRja1FzVlVGQlZUdFJRVU5XTEdkQ1FVRm5RaXhGUVVGRkxFdEJRVXM3VVVGRGRrSXNaVUZCWlN4RlFVRkZMRXRCUVVzN1VVRkRkRUlzVlVGQlZTeEZRVUZGTEV0QlFVczdVVUZEYWtJc1YwRkJWeXhGUVVGRkxFbEJRVWs3UzBGRGJFSXNRMEZCUXl4RFFVRkRPMGxCUlVnc1QwRkJUeXhOUVVGTkxFTkJRVU03UVVGRGFFSXNRMEZCUXl4RlFVRkRPMEZCUlVzc1RVRkJUU3hYUVVGWExFZEJRVWNzUTBGRGVrSXNVVUZCWjBRc1JVRkRhRVFzVVVGUFF5eEZRVU5FTEV0QlFYbENMRVZCUTBRc1JVRkJSVHRKUVVNeFFpeE5RVUZOTEVWQlEwb3NZVUZCWVN4SFFVRkhMRGhFUVVGelFpeEZRVU4wUXl4dFFrRkJiVUlzUlVGRGJrSXNWMEZCVnl4SFFVRkhMRU5CUVVNc1JVRkRaaXhuUWtGQlowSXNSMEZEYWtJc1IwRkJSeXhSUVVGUkxFTkJRVU03U1VGRFlpeEpRVUZKTEZGQlFWRXNSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkRiRUlzU1VGQlNTeG5Ra0ZCWjBJc1JVRkJSVHRSUVVOd1FpeEpRVUZKTzFsQlEwWXNVVUZCVVN4SFFVRkhMRTFCUVUwc1EwRkRaaXhOUVVGTkxEUk5RVUU0UkN4RFFVTnlSU3hEUVVGRExHbENRVUZwUWl4RFFVRkRPMmRDUVVOc1FpeEpRVUZKTEVWQlFVVXNNa1JCUVdVc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEV0QlFVc3NTVUZCU1N4RlFVRkZMRVZCUVVVc1QwRkJUeXhEUVVGRE8yRkJRMmhGTEVOQlFVTXNRMEZCUXp0VFFVTktPMUZCUVVNc1QwRkJUeXhMUVVGVkxFVkJRVVU3V1VGRGJrSXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFRRVU4wUWp0TFFVTkdPMGxCUTBRc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1EwRkJReXhIUVVGSExHRkJRV0VzUTBGQlF5eFJRVUZSTEVWQlFVVXNZVUZCWVN4RFFVRkRMRU5CUVVNN1NVRkZNMFVzY1VKQlFYRkNPMGxCUTNKQ0xFMUJRVTBzVDBGQlR5eEhRVUZITEZGQlFWRXNRMEZCUXl4bFFVRmxMRU5CUVVNc09FTkJRVTBzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTjRSQ3hQUVVGUExFTkJRVU1zV1VGQldTeERRVUZETEZOQlFWTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVOMlF5eFBRVUZQTEVOQlFVTXNXVUZCV1N4RFFVRkRMRTlCUVU4c1JVRkJSU3c0UTBGQlRTeERRVUZETEVOQlFVTTdTVUZEZEVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQlF5eFRRVUZUTEVWQlFVVXNUMEZCVHl4TFFVRkxMRWxCUVVrc1RVRkJUU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEpRVU14UkN4UFFVRlBMRU5CUVVNc1dVRkJXU3hEUVVGRExFOUJRVThzUlVGQlJTeEhRVUZITEV0QlFVc3NSMEZCUnl4WFFVRlhMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRM2hFTEU5QlFVOHNRMEZCUXl4WlFVRlpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFZEJRVWNzVFVGQlRTeEhRVUZITEZkQlFWY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRNVVFzU1VGQlNTeFJRVUZSTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVU3VVVGREwwSXNUMEZCVHl4RFFVRkRMRmxCUVZrc1EwRkJReXhSUVVGUkxFVkJRVVVzYjBSQlFWa3NRMEZCUXl4RFFVRkRPMHRCUXpsRE8wbEJSVVFzVDBGQlR5eERRVUZETEZOQlFWTXNSMEZCUnp0SlFVTnNRaXhqUVVGak8wbEJRMlFzVVVGQlVUczdPenM3T3pzN096czdPenRIUVdGVUxFTkJRVU03U1VGRlJpeDVRa0ZCZVVJN1NVRkRla0lzU1VGQlNTeFJRVUZSTEVOQlFVTXNaMEpCUVdkQ0xFbEJRVWtzYlVKQlFXMUNMRVZCUVVVN1VVRkRjRVFzVFVGQlRTeEpRVUZKTEVkQlFVY3NUMEZCVHl4RFFVRkRMR0ZCUVdNc1EwRkJReXhsUVVGbExFTkJRVU1zT0VOQlFVMHNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVOd1JTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU0xUWl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTTFRaXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEU5QlFVOHNSVUZCUlN4SFFVRkhMRXRCUVVzc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGRrTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTNwRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNUVUZCVFN4RlFVRkZMRzFDUVVGdFFpeERRVUZETEVOQlFVTTdVVUZETDBNc1QwRkJUeXhEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0TFFVTXpRanRKUVVWRUxFMUJRVTBzU1VGQlNTeEhRVUZITERaRVFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGFFTXNkVVZCUVdkQ0xFTkJRVU1zVVVGQlVTeEZRVUZGTEVsQlFVa3NSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhKUVVGSkxFVkJRVVVzUlVGQlJUdFJRVU55UkN4UFFVRlBMRVZCUVVVc1EwRkJReXhKUVVGSkxFZEJRVWNzWVVGQllUdFJRVU01UWl4UFFVRlBMRVZCUVVVc1EwRkJReXhKUVVGSkxFZEJRVWNzWVVGQllUdFJRVU01UWl4clFrRkJhMElzUlVGQlJTeFJRVUZSTEVOQlFVTXNhMEpCUVd0Q08wdEJRMmhFTEVOQlFVTXNRMEZCUXp0SlFVVklMRTlCUVU4c1QwRkJUeXhEUVVGRE8wRkJRMnBDTEVOQlFVTXNSVUZCUXp0QlFVVkdMR2xFUVVGcFJEdEJRVU5xUkN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhEUVVOd1FpeFJRVUZuUkN4RlFVTm9SQ3hoUVVGeFFpeEZRVU5oTEVWQlFVVTdTVUZEY0VNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExHZEZRVUZsTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1NVRkRNMFFzVFVGQlRTeExRVUZMTEVkQlFVY3NaMFJCUVZFc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVkQlFVY3NZVUZCWVN4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVOMlJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4blJFRkJVU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4aFFVRmhMRWRCUVVjc1lVRkJZU3hEUVVGRE8wbEJSWEJGTEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTnlReXhEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEdGQlFXRXNSMEZCUnl4RFFVTXpRaXhSUVVGblJDeEZRVU5vUkN4aFFVRnhRaXhGUVVOeVFpeExRVUZoTEVWQlEwc3NSVUZCUlR0SlFVTndRaXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRU5CUVVNc1IwRkJSeXhoUVVGaExFTkJRVU1zVVVGQlVTeEZRVUZGTEdGQlFXRXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkRjRVVzUTBGQlF5eFRRVUZUTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eEhRVUZITEV0QlFVc3NRMEZCUXl4RFFVTTNReXhEUVVGRE8wbEJSVVlzVDBGQlR5eERRVUZETEV0QlFVc3NSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVONlFpeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2YzJObGJtVXZaWGh3YjNKMExuUnpQemxpWmpjaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElISnZkV2RvSUdaeWIyMGdYQ0p5YjNWbmFHcHpMMkpwYmk5eWIzVm5hRndpTzF4dWFXMXdiM0owSUhzZ1RtOXVSR1ZzWlhSbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MElIMGdabkp2YlNCY0lpNHVMMlZzWlcxbGJuUXZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdJR2RsZEVOdmJXMXZia0p2ZFc1a2N5QjlJR1p5YjIwZ1hDSXVMaTlsYkdWdFpXNTBMMkp2ZFc1a2Mxd2lPMXh1YVcxd2IzSjBJSHNnY21WdVpHVnlVMk5sYm1Vc0lISmxibVJsY2xOalpXNWxWRzlUZG1jZ2ZTQm1jbTl0SUZ3aUxpNHZjbVZ1WkdWeVpYSXZjbVZ1WkdWeVUyTmxibVZjSWp0Y2JtbHRjRzl5ZENCN0lHUnBjM1JoYm1ObElIMGdabkp2YlNCY0lpNHVMM1YwYVd4elhDSTdYRzVwYlhCdmNuUWdleUJCY0hCVGRHRjBaU3dnUW1sdVlYSjVSbWxzWlhNZ2ZTQm1jbTl0SUZ3aUxpNHZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdJRVJGUmtGVlRGUmZSVmhRVDFKVVgxQkJSRVJKVGtjc0lGTldSMTlPVXl3Z1ZFaEZUVVZmUmtsTVZFVlNJSDBnWm5KdmJTQmNJaTR1TDJOdmJuTjBZVzUwYzF3aU8xeHVhVzF3YjNKMElIc2daMlYwUkdWbVlYVnNkRUZ3Y0ZOMFlYUmxJSDBnWm5KdmJTQmNJaTR1TDJGd2NGTjBZWFJsWENJN1hHNXBiWEJ2Y25RZ2V5QnpaWEpwWVd4cGVtVkJjMHBUVDA0Z2ZTQm1jbTl0SUZ3aUxpNHZaR0YwWVM5cWMyOXVYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQm5aWFJKYm1sMGFXRnNhWHBsWkVsdFlXZGxSV3hsYldWdWRITXNYRzRnSUhWd1pHRjBaVWx0WVdkbFEyRmphR1VzWEc1OUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MEwybHRZV2RsWENJN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCVFZrZGZSVmhRVDFKVVgxUkJSeUE5SUdBOElTMHRJSE4yWnkxemIzVnlZMlU2WlhoallXeHBaSEpoZHlBdExUNWdPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdaWGh3YjNKMFZHOURZVzUyWVhNZ1BTQmhjM2x1WXlBb1hHNGdJR1ZzWlcxbGJuUnpPaUJ5WldGa2IyNXNlU0JPYjI1RVpXeGxkR1ZrUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFN4Y2JpQWdZWEJ3VTNSaGRHVTZJRUZ3Y0ZOMFlYUmxMRnh1SUNCbWFXeGxjem9nUW1sdVlYSjVSbWxzWlhNc1hHNGdJSHRjYmlBZ0lDQmxlSEJ2Y25SQ1lXTnJaM0p2ZFc1a0xGeHVJQ0FnSUdWNGNHOXlkRkJoWkdScGJtY2dQU0JFUlVaQlZVeFVYMFZZVUU5U1ZGOVFRVVJFU1U1SExGeHVJQ0FnSUhacFpYZENZV05yWjNKdmRXNWtRMjlzYjNJc1hHNGdJSDA2SUh0Y2JpQWdJQ0JsZUhCdmNuUkNZV05yWjNKdmRXNWtPaUJpYjI5c1pXRnVPMXh1SUNBZ0lHVjRjRzl5ZEZCaFpHUnBibWMvT2lCdWRXMWlaWEk3WEc0Z0lDQWdkbWxsZDBKaFkydG5jbTkxYm1SRGIyeHZjam9nYzNSeWFXNW5PMXh1SUNCOUxGeHVJQ0JqY21WaGRHVkRZVzUyWVhNNklDaGNiaUFnSUNCM2FXUjBhRG9nYm5WdFltVnlMRnh1SUNBZ0lHaGxhV2RvZERvZ2JuVnRZbVZ5TEZ4dUlDQXBJRDArSUhzZ1kyRnVkbUZ6T2lCSVZFMU1RMkZ1ZG1GelJXeGxiV1Z1ZERzZ2MyTmhiR1U2SUc1MWJXSmxjaUI5SUQwZ0tIZHBaSFJvTENCb1pXbG5hSFFwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0JqWVc1MllYTWdQU0JrYjJOMWJXVnVkQzVqY21WaGRHVkZiR1Z0Wlc1MEtGd2lZMkZ1ZG1GelhDSXBPMXh1SUNBZ0lHTmhiblpoY3k1M2FXUjBhQ0E5SUhkcFpIUm9JQ29nWVhCd1UzUmhkR1V1Wlhod2IzSjBVMk5oYkdVN1hHNGdJQ0FnWTJGdWRtRnpMbWhsYVdkb2RDQTlJR2hsYVdkb2RDQXFJR0Z3Y0ZOMFlYUmxMbVY0Y0c5eWRGTmpZV3hsTzF4dUlDQWdJSEpsZEhWeWJpQjdJR05oYm5aaGN5d2djMk5oYkdVNklHRndjRk4wWVhSbExtVjRjRzl5ZEZOallXeGxJSDA3WEc0Z0lIMHNYRzRwSUQwK0lIdGNiaUFnWTI5dWMzUWdXMjFwYmxnc0lHMXBibGtzSUhkcFpIUm9MQ0JvWldsbmFIUmRJRDBnWjJWMFEyRnVkbUZ6VTJsNlpTaGxiR1Z0Wlc1MGN5d2daWGh3YjNKMFVHRmtaR2x1WnlrN1hHNWNiaUFnWTI5dWMzUWdleUJqWVc1MllYTXNJSE5qWVd4bElEMGdNU0I5SUQwZ1kzSmxZWFJsUTJGdWRtRnpLSGRwWkhSb0xDQm9aV2xuYUhRcE8xeHVYRzRnSUdOdmJuTjBJR1JsWm1GMWJIUkJjSEJUZEdGMFpTQTlJR2RsZEVSbFptRjFiSFJCY0hCVGRHRjBaU2dwTzF4dVhHNGdJR052Ym5OMElIc2dhVzFoWjJWRFlXTm9aU0I5SUQwZ1lYZGhhWFFnZFhCa1lYUmxTVzFoWjJWRFlXTm9aU2g3WEc0Z0lDQWdhVzFoWjJWRFlXTm9aVG9nYm1WM0lFMWhjQ2dwTEZ4dUlDQWdJR1pwYkdWSlpITTZJR2RsZEVsdWFYUnBZV3hwZW1Wa1NXMWhaMlZGYkdWdFpXNTBjeWhsYkdWdFpXNTBjeWt1YldGd0tGeHVJQ0FnSUNBZ0tHVnNaVzFsYm5RcElEMCtJR1ZzWlcxbGJuUXVabWxzWlVsa0xGeHVJQ0FnSUNrc1hHNGdJQ0FnWm1sc1pYTXNYRzRnSUgwcE8xeHVYRzRnSUhKbGJtUmxjbE5qWlc1bEtHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTd2diblZzYkN3Z2MyTmhiR1VzSUhKdmRXZG9MbU5oYm5aaGN5aGpZVzUyWVhNcExDQmpZVzUyWVhNc0lIdGNiaUFnSUNCMmFXVjNRbUZqYTJkeWIzVnVaRU52Ykc5eU9pQmxlSEJ2Y25SQ1lXTnJaM0p2ZFc1a0lEOGdkbWxsZDBKaFkydG5jbTkxYm1SRGIyeHZjaUE2SUc1MWJHd3NYRzRnSUNBZ2MyTnliMnhzV0RvZ0xXMXBibGdnS3lCbGVIQnZjblJRWVdSa2FXNW5MRnh1SUNBZ0lITmpjbTlzYkZrNklDMXRhVzVaSUNzZ1pYaHdiM0owVUdGa1pHbHVaeXhjYmlBZ0lDQjZiMjl0T2lCa1pXWmhkV3gwUVhCd1UzUmhkR1V1ZW05dmJTeGNiaUFnSUNCeVpXMXZkR1ZRYjJsdWRHVnlWbWxsZDNCdmNuUkRiMjl5WkhNNklIdDlMRnh1SUNBZ0lISmxiVzkwWlZObGJHVmpkR1ZrUld4bGJXVnVkRWxrY3pvZ2UzMHNYRzRnSUNBZ2MyaHZkV3hrUTJGamFHVkpaMjV2Y21WYWIyOXRPaUJtWVd4elpTeGNiaUFnSUNCeVpXMXZkR1ZRYjJsdWRHVnlWWE5sY201aGJXVnpPaUI3ZlN4Y2JpQWdJQ0J5WlcxdmRHVlFiMmx1ZEdWeVZYTmxjbE4wWVhSbGN6b2dlMzBzWEc0Z0lDQWdkR2hsYldVNklHRndjRk4wWVhSbExtVjRjRzl5ZEZkcGRHaEVZWEpyVFc5a1pTQS9JRndpWkdGeWExd2lJRG9nWENKc2FXZG9kRndpTEZ4dUlDQWdJR2x0WVdkbFEyRmphR1VzWEc0Z0lDQWdjbVZ1WkdWeVUyTnliMnhzWW1GeWN6b2dabUZzYzJVc1hHNGdJQ0FnY21WdVpHVnlVMlZzWldOMGFXOXVPaUJtWVd4elpTeGNiaUFnSUNCeVpXNWtaWEpIY21sa09pQm1ZV3h6WlN4Y2JpQWdJQ0JwYzBWNGNHOXlkR2x1WnpvZ2RISjFaU3hjYmlBZ2ZTazdYRzVjYmlBZ2NtVjBkWEp1SUdOaGJuWmhjenRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCbGVIQnZjblJVYjFOMlp5QTlJR0Z6ZVc1aklDaGNiaUFnWld4bGJXVnVkSE02SUhKbFlXUnZibXg1SUU1dmJrUmxiR1YwWldSRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZExGeHVJQ0JoY0hCVGRHRjBaVG9nZTF4dUlDQWdJR1Y0Y0c5eWRFSmhZMnRuY205MWJtUTZJR0p2YjJ4bFlXNDdYRzRnSUNBZ1pYaHdiM0owVUdGa1pHbHVaejg2SUc1MWJXSmxjanRjYmlBZ0lDQmxlSEJ2Y25SVFkyRnNaVDg2SUc1MWJXSmxjanRjYmlBZ0lDQjJhV1YzUW1GamEyZHliM1Z1WkVOdmJHOXlPaUJ6ZEhKcGJtYzdYRzRnSUNBZ1pYaHdiM0owVjJsMGFFUmhjbXROYjJSbFB6b2dZbTl2YkdWaGJqdGNiaUFnSUNCbGVIQnZjblJGYldKbFpGTmpaVzVsUHpvZ1ltOXZiR1ZoYmp0Y2JpQWdmU3hjYmlBZ1ptbHNaWE02SUVKcGJtRnllVVpwYkdWeklId2diblZzYkN4Y2JpazZJRkJ5YjIxcGMyVThVMVpIVTFaSFJXeGxiV1Z1ZEQ0Z1BUNGdlMXh1SUNCamIyNXpkQ0I3WEc0Z0lDQWdaWGh3YjNKMFVHRmtaR2x1WnlBOUlFUkZSa0ZWVEZSZlJWaFFUMUpVWDFCQlJFUkpUa2NzWEc0Z0lDQWdkbWxsZDBKaFkydG5jbTkxYm1SRGIyeHZjaXhjYmlBZ0lDQmxlSEJ2Y25SVFkyRnNaU0E5SURFc1hHNGdJQ0FnWlhod2IzSjBSVzFpWldSVFkyVnVaU3hjYmlBZ2ZTQTlJR0Z3Y0ZOMFlYUmxPMXh1SUNCc1pYUWdiV1YwWVdSaGRHRWdQU0JjSWx3aU8xeHVJQ0JwWmlBb1pYaHdiM0owUlcxaVpXUlRZMlZ1WlNrZ2UxeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQnRaWFJoWkdGMFlTQTlJR0YzWVdsMElDaGNiaUFnSUNBZ0lDQWdZWGRoYVhRZ2FXMXdiM0owS0M4cUlIZGxZbkJoWTJ0RGFIVnVhMDVoYldVNklGd2lhVzFoWjJWY0lpQXFMeUJjSWk0dUx5NHVMM055WXk5a1lYUmhMMmx0WVdkbFhDSXBYRzRnSUNBZ0lDQXBMbVZ1WTI5a1pWTjJaMDFsZEdGa1lYUmhLSHRjYmlBZ0lDQWdJQ0FnZEdWNGREb2djMlZ5YVdGc2FYcGxRWE5LVTA5T0tHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTd2dabWxzWlhNZ2ZId2dlMzBzSUZ3aWJHOWpZV3hjSWlrc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOUlHTmhkR05vSUNobGNuSnZjam9nWVc1NUtTQjdYRzRnSUNBZ0lDQmpiMjV6YjJ4bExtVnljbTl5S0dWeWNtOXlLVHRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdZMjl1YzNRZ1cyMXBibGdzSUcxcGJsa3NJSGRwWkhSb0xDQm9aV2xuYUhSZElEMGdaMlYwUTJGdWRtRnpVMmw2WlNobGJHVnRaVzUwY3l3Z1pYaHdiM0owVUdGa1pHbHVaeWs3WEc1Y2JpQWdMeThnYVc1cGRHbGhiSHBsSUZOV1J5QnliMjkwWEc0Z0lHTnZibk4wSUhOMloxSnZiM1FnUFNCa2IyTjFiV1Z1ZEM1amNtVmhkR1ZGYkdWdFpXNTBUbE1vVTFaSFgwNVRMQ0JjSW5OMloxd2lLVHRjYmlBZ2MzWm5VbTl2ZEM1elpYUkJkSFJ5YVdKMWRHVW9YQ0oyWlhKemFXOXVYQ0lzSUZ3aU1TNHhYQ0lwTzF4dUlDQnpkbWRTYjI5MExuTmxkRUYwZEhKcFluVjBaU2hjSW5odGJHNXpYQ0lzSUZOV1IxOU9VeWs3WEc0Z0lITjJaMUp2YjNRdWMyVjBRWFIwY21saWRYUmxLRndpZG1sbGQwSnZlRndpTENCZ01DQXdJQ1I3ZDJsa2RHaDlJQ1I3YUdWcFoyaDBmV0FwTzF4dUlDQnpkbWRTYjI5MExuTmxkRUYwZEhKcFluVjBaU2hjSW5kcFpIUm9YQ0lzSUdBa2UzZHBaSFJvSUNvZ1pYaHdiM0owVTJOaGJHVjlZQ2s3WEc0Z0lITjJaMUp2YjNRdWMyVjBRWFIwY21saWRYUmxLRndpYUdWcFoyaDBYQ0lzSUdBa2UyaGxhV2RvZENBcUlHVjRjRzl5ZEZOallXeGxmV0FwTzF4dUlDQnBaaUFvWVhCd1UzUmhkR1V1Wlhod2IzSjBWMmwwYUVSaGNtdE5iMlJsS1NCN1hHNGdJQ0FnYzNablVtOXZkQzV6WlhSQmRIUnlhV0oxZEdVb1hDSm1hV3gwWlhKY0lpd2dWRWhGVFVWZlJrbE1WRVZTS1R0Y2JpQWdmVnh1WEc0Z0lITjJaMUp2YjNRdWFXNXVaWEpJVkUxTUlEMGdZRnh1SUNBa2UxTldSMTlGV0ZCUFVsUmZWRUZIZlZ4dUlDQWtlMjFsZEdGa1lYUmhmVnh1SUNBOFpHVm1jejVjYmlBZ0lDQThjM1I1YkdVK1hHNGdJQ0FnSUNCQVptOXVkQzFtWVdObElIdGNiaUFnSUNBZ0lDQWdabTl1ZEMxbVlXMXBiSGs2SUZ3aVZtbHlaMmxzWENJN1hHNGdJQ0FnSUNBZ0lITnlZem9nZFhKc0tGd2lhSFIwY0hNNkx5OWxlR05oYkdsa2NtRjNMbU52YlM5V2FYSm5hV3d1ZDI5bVpqSmNJaWs3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JBWm05dWRDMW1ZV05sSUh0Y2JpQWdJQ0FnSUNBZ1ptOXVkQzFtWVcxcGJIazZJRndpUTJGelkyRmthV0ZjSWp0Y2JpQWdJQ0FnSUNBZ2MzSmpPaUIxY213b1hDSm9kSFJ3Y3pvdkwyVjRZMkZzYVdSeVlYY3VZMjl0TDBOaGMyTmhaR2xoTG5kdlptWXlYQ0lwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJRHd2YzNSNWJHVStYRzRnSUR3dlpHVm1jejVjYmlBZ1lEdGNibHh1SUNBdkx5QnlaVzVrWlhJZ1ltRmphMmR5YjNWdVpDQnlaV04wWEc0Z0lHbG1JQ2hoY0hCVGRHRjBaUzVsZUhCdmNuUkNZV05yWjNKdmRXNWtJQ1ltSUhacFpYZENZV05yWjNKdmRXNWtRMjlzYjNJcElIdGNiaUFnSUNCamIyNXpkQ0J5WldOMElEMGdjM1puVW05dmRDNXZkMjVsY2tSdlkzVnRaVzUwSVM1amNtVmhkR1ZGYkdWdFpXNTBUbE1vVTFaSFgwNVRMQ0JjSW5KbFkzUmNJaWs3WEc0Z0lDQWdjbVZqZEM1elpYUkJkSFJ5YVdKMWRHVW9YQ0o0WENJc0lGd2lNRndpS1R0Y2JpQWdJQ0J5WldOMExuTmxkRUYwZEhKcFluVjBaU2hjSW5sY0lpd2dYQ0l3WENJcE8xeHVJQ0FnSUhKbFkzUXVjMlYwUVhSMGNtbGlkWFJsS0Z3aWQybGtkR2hjSWl3Z1lDUjdkMmxrZEdoOVlDazdYRzRnSUNBZ2NtVmpkQzV6WlhSQmRIUnlhV0oxZEdVb1hDSm9aV2xuYUhSY0lpd2dZQ1I3YUdWcFoyaDBmV0FwTzF4dUlDQWdJSEpsWTNRdWMyVjBRWFIwY21saWRYUmxLRndpWm1sc2JGd2lMQ0IyYVdWM1FtRmphMmR5YjNWdVpFTnZiRzl5S1R0Y2JpQWdJQ0J6ZG1kU2IyOTBMbUZ3Y0dWdVpFTm9hV3hrS0hKbFkzUXBPMXh1SUNCOVhHNWNiaUFnWTI5dWMzUWdjbk4yWnlBOUlISnZkV2RvTG5OMlp5aHpkbWRTYjI5MEtUdGNiaUFnY21WdVpHVnlVMk5sYm1WVWIxTjJaeWhsYkdWdFpXNTBjeXdnY25OMlp5d2djM1puVW05dmRDd2dabWxzWlhNZ2ZId2dlMzBzSUh0Y2JpQWdJQ0J2Wm1aelpYUllPaUF0YldsdVdDQXJJR1Y0Y0c5eWRGQmhaR1JwYm1jc1hHNGdJQ0FnYjJabWMyVjBXVG9nTFcxcGJsa2dLeUJsZUhCdmNuUlFZV1JrYVc1bkxGeHVJQ0FnSUdWNGNHOXlkRmRwZEdoRVlYSnJUVzlrWlRvZ1lYQndVM1JoZEdVdVpYaHdiM0owVjJsMGFFUmhjbXROYjJSbExGeHVJQ0I5S1R0Y2JseHVJQ0J5WlhSMWNtNGdjM1puVW05dmREdGNibjA3WEc1Y2JpOHZJR05oYkdOMWJHRjBaU0J6YldGc2JHVnpkQ0JoY21WaElIUnZJR1pwZENCMGFHVWdZMjl1ZEdWdWRITWdhVzVjYm1OdmJuTjBJR2RsZEVOaGJuWmhjMU5wZW1VZ1BTQW9YRzRnSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCT2IyNUVaV3hsZEdWa1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTeGNiaUFnWlhod2IzSjBVR0ZrWkdsdVp6b2diblZ0WW1WeUxGeHVLVG9nVzI1MWJXSmxjaXdnYm5WdFltVnlMQ0J1ZFcxaVpYSXNJRzUxYldKbGNsMGdQVDRnZTF4dUlDQmpiMjV6ZENCYmJXbHVXQ3dnYldsdVdTd2diV0Y0V0N3Z2JXRjRXVjBnUFNCblpYUkRiMjF0YjI1Q2IzVnVaSE1vWld4bGJXVnVkSE1wTzF4dUlDQmpiMjV6ZENCM2FXUjBhQ0E5SUdScGMzUmhibU5sS0cxcGJsZ3NJRzFoZUZncElDc2daWGh3YjNKMFVHRmtaR2x1WnlBcUlESTdYRzRnSUdOdmJuTjBJR2hsYVdkb2RDQTlJR1JwYzNSaGJtTmxLRzFwYmxrc0lHMWhlRmtwSUNzZ1pYaHdiM0owVUdGa1pHbHVaeUFySUdWNGNHOXlkRkJoWkdScGJtYzdYRzVjYmlBZ2NtVjBkWEp1SUZ0dGFXNVlMQ0J0YVc1WkxDQjNhV1IwYUN3Z2FHVnBaMmgwWFR0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm5aWFJGZUhCdmNuUlRhWHBsSUQwZ0tGeHVJQ0JsYkdWdFpXNTBjem9nY21WaFpHOXViSGtnVG05dVJHVnNaWFJsWkVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzEwc1hHNGdJR1Y0Y0c5eWRGQmhaR1JwYm1jNklHNTFiV0psY2l4Y2JpQWdjMk5oYkdVNklHNTFiV0psY2l4Y2JpazZJRnR1ZFcxaVpYSXNJRzUxYldKbGNsMGdQVDRnZTF4dUlDQmpiMjV6ZENCYkxDQXNJSGRwWkhSb0xDQm9aV2xuYUhSZElEMGdaMlYwUTJGdWRtRnpVMmw2WlNobGJHVnRaVzUwY3l3Z1pYaHdiM0owVUdGa1pHbHVaeWt1YldGd0tGeHVJQ0FnSUNoa2FXMWxibk5wYjI0cElEMCtJRTFoZEdndWRISjFibU1vWkdsdFpXNXphVzl1SUNvZ2MyTmhiR1VwTEZ4dUlDQXBPMXh1WEc0Z0lISmxkSFZ5YmlCYmQybGtkR2dzSUdobGFXZG9kRjA3WEc1OU8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL3NjZW5lL2V4cG9ydC50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vc2NlbmUvaW5kZXgudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vc2NlbmUvaW5kZXgudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzT3ZlclNjcm9sbEJhcnNcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfc2Nyb2xsYmFyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmlzT3ZlclNjcm9sbEJhcnMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzU29tZUVsZW1lbnRTZWxlY3RlZFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9zZWxlY3Rpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5pc1NvbWVFbGVtZW50U2VsZWN0ZWQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEVsZW1lbnRzV2l0aGluU2VsZWN0aW9uXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX3NlbGVjdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmdldEVsZW1lbnRzV2l0aGluU2VsZWN0aW9uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRDb21tb25BdHRyaWJ1dGVPZlNlbGVjdGVkRWxlbWVudHNcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfc2VsZWN0aW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0Q29tbW9uQXR0cmlidXRlT2ZTZWxlY3RlZEVsZW1lbnRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRTZWxlY3RlZEVsZW1lbnRzXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX3NlbGVjdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmdldFNlbGVjdGVkRWxlbWVudHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldFRhcmdldEVsZW1lbnRzXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX3NlbGVjdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmdldFRhcmdldEVsZW1lbnRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJjYWxjdWxhdGVTY3JvbGxDZW50ZXJcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfc2Nyb2xsX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uY2FsY3VsYXRlU2Nyb2xsQ2VudGVyKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJoYXNCYWNrZ3JvdW5kXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2NvbXBhcmlzb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uaGFzQmFja2dyb3VuZCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaGFzU3Ryb2tlV2lkdGhcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfY29tcGFyaXNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5oYXNTdHJva2VXaWR0aCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaGFzU3Ryb2tlU3R5bGVcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfY29tcGFyaXNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5oYXNTdHJva2VTdHlsZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiY2FuSGF2ZUFycm93aGVhZHNcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfY29tcGFyaXNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5jYW5IYXZlQXJyb3doZWFkcyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiY2FuQ2hhbmdlU2hhcnBuZXNzXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2NvbXBhcmlzb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uY2FuQ2hhbmdlU2hhcnBuZXNzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRFbGVtZW50QXRQb3NpdGlvblxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9jb21wYXJpc29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmdldEVsZW1lbnRBdFBvc2l0aW9uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRFbGVtZW50Q29udGFpbmluZ1Bvc2l0aW9uXFxcIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2NvbXBhcmlzb25zX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZ2V0RWxlbWVudENvbnRhaW5pbmdQb3NpdGlvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaGFzVGV4dFxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9jb21wYXJpc29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmhhc1RleHQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEVsZW1lbnRzQXRQb3NpdGlvblxcXCI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9jb21wYXJpc29uc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmdldEVsZW1lbnRzQXRQb3NpdGlvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0Tm9ybWFsaXplZFpvb21cXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfem9vbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmdldE5vcm1hbGl6ZWRab29tKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2Nyb2xsYmFyc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9zY3JvbGxiYXJzICovIFxcXCIuLi8uLi9zY2VuZS9zY3JvbGxiYXJzLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zZWxlY3Rpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vc2VsZWN0aW9uICovIFxcXCIuLi8uLi9zY2VuZS9zZWxlY3Rpb24udHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Njcm9sbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9zY3JvbGwgKi8gXFxcIi4uLy4uL3NjZW5lL3Njcm9sbC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29tcGFyaXNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vY29tcGFyaXNvbnMgKi8gXFxcIi4uLy4uL3NjZW5lL2NvbXBhcmlzb25zLnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF96b29tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3pvb20gKi8gXFxcIi4uLy4uL3NjZW5lL3pvb20udHNcXFwiKTtcXG5cXG5cXG5cXG5cXG5cXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dmMyTmxibVV2YVc1a1pYZ3VkSE11YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dEJRVUZuUkR0QlFVOHpRanRCUVVNMFFqdEJRVmN4UWp0QlFVTnZRaUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5elkyVnVaUzlwYm1SbGVDNTBjejlsTWpFeElsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbVY0Y0c5eWRDQjdJR2x6VDNabGNsTmpjbTlzYkVKaGNuTWdmU0JtY205dElGd2lMaTl6WTNKdmJHeGlZWEp6WENJN1hHNWxlSEJ2Y25RZ2UxeHVJQ0JwYzFOdmJXVkZiR1Z0Wlc1MFUyVnNaV04wWldRc1hHNGdJR2RsZEVWc1pXMWxiblJ6VjJsMGFHbHVVMlZzWldOMGFXOXVMRnh1SUNCblpYUkRiMjF0YjI1QmRIUnlhV0oxZEdWUFpsTmxiR1ZqZEdWa1JXeGxiV1Z1ZEhNc1hHNGdJR2RsZEZObGJHVmpkR1ZrUld4bGJXVnVkSE1zWEc0Z0lHZGxkRlJoY21kbGRFVnNaVzFsYm5SekxGeHVmU0JtY205dElGd2lMaTl6Wld4bFkzUnBiMjVjSWp0Y2JtVjRjRzl5ZENCN0lHTmhiR04xYkdGMFpWTmpjbTlzYkVObGJuUmxjaUI5SUdaeWIyMGdYQ0l1TDNOamNtOXNiRndpTzF4dVpYaHdiM0owSUh0Y2JpQWdhR0Z6UW1GamEyZHliM1Z1WkN4Y2JpQWdhR0Z6VTNSeWIydGxWMmxrZEdnc1hHNGdJR2hoYzFOMGNtOXJaVk4wZVd4bExGeHVJQ0JqWVc1SVlYWmxRWEp5YjNkb1pXRmtjeXhjYmlBZ1kyRnVRMmhoYm1kbFUyaGhjbkJ1WlhOekxGeHVJQ0JuWlhSRmJHVnRaVzUwUVhSUWIzTnBkR2x2Yml4Y2JpQWdaMlYwUld4bGJXVnVkRU52Ym5SaGFXNXBibWRRYjNOcGRHbHZiaXhjYmlBZ2FHRnpWR1Y0ZEN4Y2JpQWdaMlYwUld4bGJXVnVkSE5CZEZCdmMybDBhVzl1TEZ4dWZTQm1jbTl0SUZ3aUxpOWpiMjF3WVhKcGMyOXVjMXdpTzF4dVpYaHdiM0owSUhzZ1oyVjBUbTl5YldGc2FYcGxaRnB2YjIwZ2ZTQm1jbTl0SUZ3aUxpOTZiMjl0WENJN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL3NjZW5lL2luZGV4LnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9zY2VuZS9zY3JvbGwudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL3NjZW5lL3Njcm9sbC50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImNlbnRlclNjcm9sbE9uXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY2VudGVyU2Nyb2xsT24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImNhbGN1bGF0ZVNjcm9sbENlbnRlclxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGNhbGN1bGF0ZVNjcm9sbENlbnRlcilcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQgKi8gXFxcIi4uLy4uL2VsZW1lbnQvaW5kZXgudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi91dGlscyAqLyBcXFwiLi4vLi4vdXRpbHMudHNcXFwiKTtcXG5cXG5cXG5jb25zdCBpc091dHNpZGVWaWV3UG9ydCA9IChhcHBTdGF0ZSwgY2FudmFzLCBjb3JkcykgPT4ge1xcbiAgICBjb25zdCBbeDEsIHkxLCB4MiwgeTJdID0gY29yZHM7XFxuICAgIGNvbnN0IHsgeDogdmlld3BvcnRYMSwgeTogdmlld3BvcnRZMSB9ID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uc2NlbmVDb29yZHNUb1ZpZXdwb3J0Q29vcmRzKSh7IHNjZW5lWDogeDEsIHNjZW5lWTogeTEgfSwgYXBwU3RhdGUpO1xcbiAgICBjb25zdCB7IHg6IHZpZXdwb3J0WDIsIHk6IHZpZXdwb3J0WTIgfSA9ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnNjZW5lQ29vcmRzVG9WaWV3cG9ydENvb3JkcykoeyBzY2VuZVg6IHgyLCBzY2VuZVk6IHkyIH0sIGFwcFN0YXRlKTtcXG4gICAgcmV0dXJuICh2aWV3cG9ydFgyIC0gdmlld3BvcnRYMSA+IGFwcFN0YXRlLndpZHRoIHx8XFxuICAgICAgICB2aWV3cG9ydFkyIC0gdmlld3BvcnRZMSA+IGFwcFN0YXRlLmhlaWdodCk7XFxufTtcXG5jb25zdCBjZW50ZXJTY3JvbGxPbiA9ICh7IHNjZW5lUG9pbnQsIHZpZXdwb3J0RGltZW5zaW9ucywgem9vbSwgfSkgPT4ge1xcbiAgICByZXR1cm4ge1xcbiAgICAgICAgc2Nyb2xsWDogKHZpZXdwb3J0RGltZW5zaW9ucy53aWR0aCAvIDIpICogKDEgLyB6b29tLnZhbHVlKSAtIHNjZW5lUG9pbnQueCxcXG4gICAgICAgIHNjcm9sbFk6ICh2aWV3cG9ydERpbWVuc2lvbnMuaGVpZ2h0IC8gMikgKiAoMSAvIHpvb20udmFsdWUpIC0gc2NlbmVQb2ludC55LFxcbiAgICB9O1xcbn07XFxuY29uc3QgY2FsY3VsYXRlU2Nyb2xsQ2VudGVyID0gKGVsZW1lbnRzLCBhcHBTdGF0ZSwgY2FudmFzKSA9PiB7XFxuICAgIGVsZW1lbnRzID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5nZXRWaXNpYmxlRWxlbWVudHMpKGVsZW1lbnRzKTtcXG4gICAgaWYgKCFlbGVtZW50cy5sZW5ndGgpIHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgc2Nyb2xsWDogMCxcXG4gICAgICAgICAgICBzY3JvbGxZOiAwLFxcbiAgICAgICAgfTtcXG4gICAgfVxcbiAgICBsZXQgW3gxLCB5MSwgeDIsIHkyXSA9ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2V0Q29tbW9uQm91bmRzKShlbGVtZW50cyk7XFxuICAgIGlmIChpc091dHNpZGVWaWV3UG9ydChhcHBTdGF0ZSwgY2FudmFzLCBbeDEsIHkxLCB4MiwgeTJdKSkge1xcbiAgICAgICAgW3gxLCB5MSwgeDIsIHkyXSA9ICgwLF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZ2V0Q2xvc2VzdEVsZW1lbnRCb3VuZHMpKGVsZW1lbnRzLCAoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy52aWV3cG9ydENvb3Jkc1RvU2NlbmVDb29yZHMpKHsgY2xpZW50WDogYXBwU3RhdGUuc2Nyb2xsWCwgY2xpZW50WTogYXBwU3RhdGUuc2Nyb2xsWSB9LCBhcHBTdGF0ZSkpO1xcbiAgICB9XFxuICAgIGNvbnN0IGNlbnRlclggPSAoeDEgKyB4MikgLyAyO1xcbiAgICBjb25zdCBjZW50ZXJZID0gKHkxICsgeTIpIC8gMjtcXG4gICAgcmV0dXJuIGNlbnRlclNjcm9sbE9uKHtcXG4gICAgICAgIHNjZW5lUG9pbnQ6IHsgeDogY2VudGVyWCwgeTogY2VudGVyWSB9LFxcbiAgICAgICAgdmlld3BvcnREaW1lbnNpb25zOiB7IHdpZHRoOiBhcHBTdGF0ZS53aWR0aCwgaGVpZ2h0OiBhcHBTdGF0ZS5oZWlnaHQgfSxcXG4gICAgICAgIHpvb206IGFwcFN0YXRlLnpvb20sXFxuICAgIH0pO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZjMk5sYm1VdmMyTnliMnhzTG5SekxtcHpJaXdpYldGd2NHbHVaM01pT2lJN096czdPenM3UVVGTmIwSTdRVUZMUmp0QlFVVnNRaXhOUVVGTkxHbENRVUZwUWl4SFFVRkhMRU5CUTNoQ0xGRkJRV3RDTEVWQlEyeENMRTFCUVdkRExFVkJRMmhETEV0QlFXOUNMRVZCUTNCQ0xFVkJRVVU3U1VGRFJpeE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRPMGxCUXk5Q0xFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNWVUZCVlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hWUVVGVkxFVkJRVVVzUjBGQlJ5eHRSVUZCTWtJc1EwRkRiRVVzUlVGQlJTeE5RVUZOTEVWQlFVVXNSVUZCUlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGRE1VSXNVVUZCVVN4RFFVTlVMRU5CUVVNN1NVRkRSaXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEZWQlFWVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFZEJRVWNzYlVWQlFUSkNMRU5CUTJ4RkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVWQlFVVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRekZDTEZGQlFWRXNRMEZEVkN4RFFVRkRPMGxCUTBZc1QwRkJUeXhEUVVOTUxGVkJRVlVzUjBGQlJ5eFZRVUZWTEVkQlFVY3NVVUZCVVN4RFFVRkRMRXRCUVVzN1VVRkRlRU1zVlVGQlZTeEhRVUZITEZWQlFWVXNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVNeFF5eERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3hqUVVGakxFZEJRVWNzUTBGQlF5eEZRVU0zUWl4VlFVRlZMRVZCUTFZc2EwSkJRV3RDTEVWQlEyeENMRWxCUVVrc1IwRkxUQ3hGUVVGRkxFVkJRVVU3U1VGRFNDeFBRVUZQTzFGQlEwd3NUMEZCVHl4RlFVRkZMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU42UlN4UFFVRlBMRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExGVkJRVlVzUTBGQlF5eERRVUZETzB0QlF6TkZMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEhGQ1FVRnhRaXhIUVVGSExFTkJRMjVETEZGQlFYTkRMRVZCUTNSRExGRkJRV3RDTEVWQlEyeENMRTFCUVdkRExFVkJRMDBzUlVGQlJUdEpRVU40UXl4UlFVRlJMRWRCUVVjc05FUkJRV3RDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1NVRkZlRU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRVZCUVVVN1VVRkRjRUlzVDBGQlR6dFpRVU5NTEU5QlFVOHNSVUZCUlN4RFFVRkRPMWxCUTFZc1QwRkJUeXhGUVVGRkxFTkJRVU03VTBGRFdDeERRVUZETzB0QlEwZzdTVUZEUkN4SlFVRkpMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc2VVUkJRV1VzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0SlFVVnFSQ3hKUVVGSkxHbENRVUZwUWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVUZGTzFGQlEzcEVMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc2FVVkJRWFZDTEVOQlEzaERMRkZCUVZFc1JVRkRVaXh0UlVGQk1rSXNRMEZEZWtJc1JVRkJSU3hQUVVGUExFVkJRVVVzVVVGQlVTeERRVUZETEU5QlFVOHNSVUZCUlN4UFFVRlBMRVZCUVVVc1VVRkJVU3hEUVVGRExFOUJRVThzUlVGQlJTeEZRVU40UkN4UlFVRlJMRU5CUTFRc1EwRkRSaXhEUVVGRE8wdEJRMGc3U1VGRlJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZET1VJc1RVRkJUU3hQUVVGUExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJSVGxDTEU5QlFVOHNZMEZCWXl4RFFVRkRPMUZCUTNCQ0xGVkJRVlVzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4UFFVRlBMRVZCUVVVc1EwRkJReXhGUVVGRkxFOUJRVThzUlVGQlJUdFJRVU4wUXl4clFrRkJhMElzUlVGQlJTeEZRVUZGTEV0QlFVc3NSVUZCUlN4UlFVRlJMRU5CUVVNc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeFJRVUZSTEVOQlFVTXNUVUZCVFN4RlFVRkZPMUZCUTNSRkxFbEJRVWtzUlVGQlJTeFJRVUZSTEVOQlFVTXNTVUZCU1R0TFFVTndRaXhEUVVGRExFTkJRVU03UVVGRFRDeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpJanBiSW5kbFluQmhZMnM2THk4dkxpNHZMaTR2YzJObGJtVXZjMk55YjJ4c0xuUnpQMlE1Tm1ZaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dRWEJ3VTNSaGRHVXNJRkJ2YVc1MFpYSkRiMjl5WkhNc0lGcHZiMjBnZlNCbWNtOXRJRndpTGk0dmRIbHdaWE5jSWp0Y2JtbHRjRzl5ZENCN0lFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MElIMGdabkp2YlNCY0lpNHVMMlZzWlcxbGJuUXZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUdkbGRFTnZiVzF2YmtKdmRXNWtjeXhjYmlBZ1oyVjBRMnh2YzJWemRFVnNaVzFsYm5SQ2IzVnVaSE1zWEc0Z0lHZGxkRlpwYzJsaWJHVkZiR1Z0Wlc1MGN5eGNibjBnWm5KdmJTQmNJaTR1TDJWc1pXMWxiblJjSWp0Y2JseHVhVzF3YjNKMElIdGNiaUFnYzJObGJtVkRiMjl5WkhOVWIxWnBaWGR3YjNKMFEyOXZjbVJ6TEZ4dUlDQjJhV1YzY0c5eWRFTnZiM0prYzFSdlUyTmxibVZEYjI5eVpITXNYRzU5SUdaeWIyMGdYQ0l1TGk5MWRHbHNjMXdpTzF4dVhHNWpiMjV6ZENCcGMwOTFkSE5wWkdWV2FXVjNVRzl5ZENBOUlDaGNiaUFnWVhCd1UzUmhkR1U2SUVGd2NGTjBZWFJsTEZ4dUlDQmpZVzUyWVhNNklFaFVUVXhEWVc1MllYTkZiR1Z0Wlc1MElId2diblZzYkN4Y2JpQWdZMjl5WkhNNklFRnljbUY1UEc1MWJXSmxjajRzWEc0cElEMCtJSHRjYmlBZ1kyOXVjM1FnVzNneExDQjVNU3dnZURJc0lIa3lYU0E5SUdOdmNtUnpPMXh1SUNCamIyNXpkQ0I3SUhnNklIWnBaWGR3YjNKMFdERXNJSGs2SUhacFpYZHdiM0owV1RFZ2ZTQTlJSE5qWlc1bFEyOXZjbVJ6Vkc5V2FXVjNjRzl5ZEVOdmIzSmtjeWhjYmlBZ0lDQjdJSE5qWlc1bFdEb2dlREVzSUhOalpXNWxXVG9nZVRFZ2ZTeGNiaUFnSUNCaGNIQlRkR0YwWlN4Y2JpQWdLVHRjYmlBZ1kyOXVjM1FnZXlCNE9pQjJhV1YzY0c5eWRGZ3lMQ0I1T2lCMmFXVjNjRzl5ZEZreUlIMGdQU0J6WTJWdVpVTnZiM0prYzFSdlZtbGxkM0J2Y25SRGIyOXlaSE1vWEc0Z0lDQWdleUJ6WTJWdVpWZzZJSGd5TENCelkyVnVaVms2SUhreUlIMHNYRzRnSUNBZ1lYQndVM1JoZEdVc1hHNGdJQ2s3WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnZG1sbGQzQnZjblJZTWlBdElIWnBaWGR3YjNKMFdERWdQaUJoY0hCVGRHRjBaUzUzYVdSMGFDQjhmRnh1SUNBZ0lIWnBaWGR3YjNKMFdUSWdMU0IyYVdWM2NHOXlkRmt4SUQ0Z1lYQndVM1JoZEdVdWFHVnBaMmgwWEc0Z0lDazdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWTJWdWRHVnlVMk55YjJ4c1QyNGdQU0FvZTF4dUlDQnpZMlZ1WlZCdmFXNTBMRnh1SUNCMmFXVjNjRzl5ZEVScGJXVnVjMmx2Ym5Nc1hHNGdJSHB2YjIwc1hHNTlPaUI3WEc0Z0lITmpaVzVsVUc5cGJuUTZJRkJ2YVc1MFpYSkRiMjl5WkhNN1hHNGdJSFpwWlhkd2IzSjBSR2x0Wlc1emFXOXVjem9nZXlCb1pXbG5hSFE2SUc1MWJXSmxjanNnZDJsa2RHZzZJRzUxYldKbGNpQjlPMXh1SUNCNmIyOXRPaUJhYjI5dE8xeHVmU2tnUFQ0Z2UxeHVJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lITmpjbTlzYkZnNklDaDJhV1YzY0c5eWRFUnBiV1Z1YzJsdmJuTXVkMmxrZEdnZ0x5QXlLU0FxSUNneElDOGdlbTl2YlM1MllXeDFaU2tnTFNCelkyVnVaVkJ2YVc1MExuZ3NYRzRnSUNBZ2MyTnliMnhzV1RvZ0tIWnBaWGR3YjNKMFJHbHRaVzV6YVc5dWN5NW9aV2xuYUhRZ0x5QXlLU0FxSUNneElDOGdlbTl2YlM1MllXeDFaU2tnTFNCelkyVnVaVkJ2YVc1MExua3NYRzRnSUgwN1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdZMkZzWTNWc1lYUmxVMk55YjJ4c1EyVnVkR1Z5SUQwZ0tGeHVJQ0JsYkdWdFpXNTBjem9nY21WaFpHOXViSGtnUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFN4Y2JpQWdZWEJ3VTNSaGRHVTZJRUZ3Y0ZOMFlYUmxMRnh1SUNCallXNTJZWE02SUVoVVRVeERZVzUyWVhORmJHVnRaVzUwSUh3Z2JuVnNiQ3hjYmlrNklIc2djMk55YjJ4c1dEb2diblZ0WW1WeU95QnpZM0p2Ykd4Wk9pQnVkVzFpWlhJZ2ZTQTlQaUI3WEc0Z0lHVnNaVzFsYm5SeklEMGdaMlYwVm1semFXSnNaVVZzWlcxbGJuUnpLR1ZzWlcxbGJuUnpLVHRjYmx4dUlDQnBaaUFvSVdWc1pXMWxiblJ6TG14bGJtZDBhQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQnpZM0p2Ykd4WU9pQXdMRnh1SUNBZ0lDQWdjMk55YjJ4c1dUb2dNQ3hjYmlBZ0lDQjlPMXh1SUNCOVhHNGdJR3hsZENCYmVERXNJSGt4TENCNE1pd2dlVEpkSUQwZ1oyVjBRMjl0Ylc5dVFtOTFibVJ6S0dWc1pXMWxiblJ6S1R0Y2JseHVJQ0JwWmlBb2FYTlBkWFJ6YVdSbFZtbGxkMUJ2Y25Rb1lYQndVM1JoZEdVc0lHTmhiblpoY3l3Z1czZ3hMQ0I1TVN3Z2VESXNJSGt5WFNrcElIdGNiaUFnSUNCYmVERXNJSGt4TENCNE1pd2dlVEpkSUQwZ1oyVjBRMnh2YzJWemRFVnNaVzFsYm5SQ2IzVnVaSE1vWEc0Z0lDQWdJQ0JsYkdWdFpXNTBjeXhjYmlBZ0lDQWdJSFpwWlhkd2IzSjBRMjl2Y21SelZHOVRZMlZ1WlVOdmIzSmtjeWhjYmlBZ0lDQWdJQ0FnZXlCamJHbGxiblJZT2lCaGNIQlRkR0YwWlM1elkzSnZiR3hZTENCamJHbGxiblJaT2lCaGNIQlRkR0YwWlM1elkzSnZiR3haSUgwc1hHNGdJQ0FnSUNBZ0lHRndjRk4wWVhSbExGeHVJQ0FnSUNBZ0tTeGNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ1kyVnVkR1Z5V0NBOUlDaDRNU0FySUhneUtTQXZJREk3WEc0Z0lHTnZibk4wSUdObGJuUmxjbGtnUFNBb2VURWdLeUI1TWlrZ0x5QXlPMXh1WEc0Z0lISmxkSFZ5YmlCalpXNTBaWEpUWTNKdmJHeFBiaWg3WEc0Z0lDQWdjMk5sYm1WUWIybHVkRG9nZXlCNE9pQmpaVzUwWlhKWUxDQjVPaUJqWlc1MFpYSlpJSDBzWEc0Z0lDQWdkbWxsZDNCdmNuUkVhVzFsYm5OcGIyNXpPaUI3SUhkcFpIUm9PaUJoY0hCVGRHRjBaUzUzYVdSMGFDd2dhR1ZwWjJoME9pQmhjSEJUZEdGMFpTNW9aV2xuYUhRZ2ZTeGNiaUFnSUNCNmIyOXRPaUJoY0hCVGRHRjBaUzU2YjI5dExGeHVJQ0I5S1R0Y2JuMDdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnpiM1Z5WTJWU2IyOTBJam9pSW4wPVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9zY2VuZS9zY3JvbGwudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL3NjZW5lL3Njcm9sbGJhcnMudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9zY2VuZS9zY3JvbGxiYXJzLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlNDUk9MTEJBUl9NQVJHSU5cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBTQ1JPTExCQVJfTUFSR0lOKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJTQ1JPTExCQVJfV0lEVEhcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBTQ1JPTExCQVJfV0lEVEgpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIlNDUk9MTEJBUl9DT0xPUlxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIFNDUk9MTEJBUl9DT0xPUiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0U2Nyb2xsQmFyc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldFNjcm9sbEJhcnMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzT3ZlclNjcm9sbEJhcnNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpc092ZXJTY3JvbGxCYXJzKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZWxlbWVudF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vZWxlbWVudCAqLyBcXFwiLi4vLi4vZWxlbWVudC9pbmRleC50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaTE4biAqLyBcXFwiLi4vLi4vaTE4bi50c1xcXCIpO1xcblxcblxcblxcbmNvbnN0IFNDUk9MTEJBUl9NQVJHSU4gPSA0O1xcbmNvbnN0IFNDUk9MTEJBUl9XSURUSCA9IDY7XFxuY29uc3QgU0NST0xMQkFSX0NPTE9SID0gXFxcInJnYmEoMCwwLDAsMC4zKVxcXCI7XFxuY29uc3QgZ2V0U2Nyb2xsQmFycyA9IChlbGVtZW50cywgdmlld3BvcnRXaWR0aCwgdmlld3BvcnRIZWlnaHQsIHsgc2Nyb2xsWCwgc2Nyb2xsWSwgem9vbSwgfSkgPT4ge1xcbiAgICBpZiAoZWxlbWVudHMubGVuZ3RoID09PSAwKSB7XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGhvcml6b250YWw6IG51bGwsXFxuICAgICAgICAgICAgdmVydGljYWw6IG51bGwsXFxuICAgICAgICB9O1xcbiAgICB9XFxuICAgIC8vIFRoaXMgaXMgdGhlIGJvdW5kaW5nIGJveCBvZiBhbGwgdGhlIGVsZW1lbnRzXFxuICAgIGNvbnN0IFtlbGVtZW50c01pblgsIGVsZW1lbnRzTWluWSwgZWxlbWVudHNNYXhYLCBlbGVtZW50c01heFldID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5nZXRDb21tb25Cb3VuZHMpKGVsZW1lbnRzKTtcXG4gICAgLy8gQXBwbHkgem9vbVxcbiAgICBjb25zdCB2aWV3cG9ydFdpZHRoV2l0aFpvb20gPSB2aWV3cG9ydFdpZHRoIC8gem9vbS52YWx1ZTtcXG4gICAgY29uc3Qgdmlld3BvcnRIZWlnaHRXaXRoWm9vbSA9IHZpZXdwb3J0SGVpZ2h0IC8gem9vbS52YWx1ZTtcXG4gICAgY29uc3Qgdmlld3BvcnRXaWR0aERpZmYgPSB2aWV3cG9ydFdpZHRoIC0gdmlld3BvcnRXaWR0aFdpdGhab29tO1xcbiAgICBjb25zdCB2aWV3cG9ydEhlaWdodERpZmYgPSB2aWV3cG9ydEhlaWdodCAtIHZpZXdwb3J0SGVpZ2h0V2l0aFpvb207XFxuICAgIGNvbnN0IHNhZmVBcmVhID0ge1xcbiAgICAgICAgdG9wOiBwYXJzZUludCgoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRHbG9iYWxDU1NWYXJpYWJsZSkoXFxcInNhdFxcXCIpKSxcXG4gICAgICAgIGJvdHRvbTogcGFyc2VJbnQoKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0R2xvYmFsQ1NTVmFyaWFibGUpKFxcXCJzYWJcXFwiKSksXFxuICAgICAgICBsZWZ0OiBwYXJzZUludCgoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRHbG9iYWxDU1NWYXJpYWJsZSkoXFxcInNhbFxcXCIpKSxcXG4gICAgICAgIHJpZ2h0OiBwYXJzZUludCgoMCxfdXRpbHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRHbG9iYWxDU1NWYXJpYWJsZSkoXFxcInNhclxcXCIpKSxcXG4gICAgfTtcXG4gICAgY29uc3QgaXNSVEwgPSAoMCxfaTE4bl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmdldExhbmd1YWdlKSgpLnJ0bDtcXG4gICAgLy8gVGhlIHZpZXdwb3J0IGlzIHRoZSByZWN0YW5nbGUgY3VycmVudGx5IHZpc2libGUgZm9yIHRoZSB1c2VyXFxuICAgIGNvbnN0IHZpZXdwb3J0TWluWCA9IC1zY3JvbGxYICsgdmlld3BvcnRXaWR0aERpZmYgLyAyICsgc2FmZUFyZWEubGVmdDtcXG4gICAgY29uc3Qgdmlld3BvcnRNaW5ZID0gLXNjcm9sbFkgKyB2aWV3cG9ydEhlaWdodERpZmYgLyAyICsgc2FmZUFyZWEudG9wO1xcbiAgICBjb25zdCB2aWV3cG9ydE1heFggPSB2aWV3cG9ydE1pblggKyB2aWV3cG9ydFdpZHRoV2l0aFpvb20gLSBzYWZlQXJlYS5yaWdodDtcXG4gICAgY29uc3Qgdmlld3BvcnRNYXhZID0gdmlld3BvcnRNaW5ZICsgdmlld3BvcnRIZWlnaHRXaXRoWm9vbSAtIHNhZmVBcmVhLmJvdHRvbTtcXG4gICAgLy8gVGhlIHNjZW5lIGlzIHRoZSBib3VuZGluZyBib3ggb2YgYm90aCB0aGUgZWxlbWVudHMgYW5kIHZpZXdwb3J0XFxuICAgIGNvbnN0IHNjZW5lTWluWCA9IE1hdGgubWluKGVsZW1lbnRzTWluWCwgdmlld3BvcnRNaW5YKTtcXG4gICAgY29uc3Qgc2NlbmVNaW5ZID0gTWF0aC5taW4oZWxlbWVudHNNaW5ZLCB2aWV3cG9ydE1pblkpO1xcbiAgICBjb25zdCBzY2VuZU1heFggPSBNYXRoLm1heChlbGVtZW50c01heFgsIHZpZXdwb3J0TWF4WCk7XFxuICAgIGNvbnN0IHNjZW5lTWF4WSA9IE1hdGgubWF4KGVsZW1lbnRzTWF4WSwgdmlld3BvcnRNYXhZKTtcXG4gICAgLy8gVGhlIHNjcm9sbGJhciByZXByZXNlbnRzIHdoZXJlIHRoZSB2aWV3cG9ydCBpcyBpbiByZWxhdGlvbnNoaXAgdG8gdGhlIHNjZW5lXFxuICAgIHJldHVybiB7XFxuICAgICAgICBob3Jpem9udGFsOiB2aWV3cG9ydE1pblggPT09IHNjZW5lTWluWCAmJiB2aWV3cG9ydE1heFggPT09IHNjZW5lTWF4WFxcbiAgICAgICAgICAgID8gbnVsbFxcbiAgICAgICAgICAgIDoge1xcbiAgICAgICAgICAgICAgICB4OiBNYXRoLm1heChzYWZlQXJlYS5sZWZ0LCBTQ1JPTExCQVJfTUFSR0lOKSArXFxuICAgICAgICAgICAgICAgICAgICAoKHZpZXdwb3J0TWluWCAtIHNjZW5lTWluWCkgLyAoc2NlbmVNYXhYIC0gc2NlbmVNaW5YKSkgKlxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdwb3J0V2lkdGgsXFxuICAgICAgICAgICAgICAgIHk6IHZpZXdwb3J0SGVpZ2h0IC1cXG4gICAgICAgICAgICAgICAgICAgIFNDUk9MTEJBUl9XSURUSCAtXFxuICAgICAgICAgICAgICAgICAgICBNYXRoLm1heChTQ1JPTExCQVJfTUFSR0lOLCBzYWZlQXJlYS5ib3R0b20pLFxcbiAgICAgICAgICAgICAgICB3aWR0aDogKCh2aWV3cG9ydE1heFggLSB2aWV3cG9ydE1pblgpIC8gKHNjZW5lTWF4WCAtIHNjZW5lTWluWCkpICpcXG4gICAgICAgICAgICAgICAgICAgIHZpZXdwb3J0V2lkdGggLVxcbiAgICAgICAgICAgICAgICAgICAgTWF0aC5tYXgoU0NST0xMQkFSX01BUkdJTiAqIDIsIHNhZmVBcmVhLmxlZnQgKyBzYWZlQXJlYS5yaWdodCksXFxuICAgICAgICAgICAgICAgIGhlaWdodDogU0NST0xMQkFSX1dJRFRILFxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICB2ZXJ0aWNhbDogdmlld3BvcnRNaW5ZID09PSBzY2VuZU1pblkgJiYgdmlld3BvcnRNYXhZID09PSBzY2VuZU1heFlcXG4gICAgICAgICAgICA/IG51bGxcXG4gICAgICAgICAgICA6IHtcXG4gICAgICAgICAgICAgICAgeDogaXNSVExcXG4gICAgICAgICAgICAgICAgICAgID8gTWF0aC5tYXgoc2FmZUFyZWEubGVmdCwgU0NST0xMQkFSX01BUkdJTilcXG4gICAgICAgICAgICAgICAgICAgIDogdmlld3BvcnRXaWR0aCAtXFxuICAgICAgICAgICAgICAgICAgICAgICAgU0NST0xMQkFSX1dJRFRIIC1cXG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLm1heChzYWZlQXJlYS5yaWdodCwgU0NST0xMQkFSX01BUkdJTiksXFxuICAgICAgICAgICAgICAgIHk6ICgodmlld3BvcnRNaW5ZIC0gc2NlbmVNaW5ZKSAvIChzY2VuZU1heFkgLSBzY2VuZU1pblkpKSAqXFxuICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydEhlaWdodCArXFxuICAgICAgICAgICAgICAgICAgICBNYXRoLm1heChzYWZlQXJlYS50b3AsIFNDUk9MTEJBUl9NQVJHSU4pLFxcbiAgICAgICAgICAgICAgICB3aWR0aDogU0NST0xMQkFSX1dJRFRILFxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICgodmlld3BvcnRNYXhZIC0gdmlld3BvcnRNaW5ZKSAvIChzY2VuZU1heFkgLSBzY2VuZU1pblkpKSAqXFxuICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydEhlaWdodCAtXFxuICAgICAgICAgICAgICAgICAgICBNYXRoLm1heChTQ1JPTExCQVJfTUFSR0lOICogMiwgc2FmZUFyZWEudG9wICsgc2FmZUFyZWEuYm90dG9tKSxcXG4gICAgICAgICAgICB9LFxcbiAgICB9O1xcbn07XFxuY29uc3QgaXNPdmVyU2Nyb2xsQmFycyA9IChzY3JvbGxCYXJzLCB4LCB5KSA9PiB7XFxuICAgIGNvbnN0IFtpc092ZXJIb3Jpem9udGFsLCBpc092ZXJWZXJ0aWNhbF0gPSBbXFxuICAgICAgICBzY3JvbGxCYXJzLmhvcml6b250YWwsXFxuICAgICAgICBzY3JvbGxCYXJzLnZlcnRpY2FsLFxcbiAgICBdLm1hcCgoc2Nyb2xsQmFyKSA9PiB7XFxuICAgICAgICByZXR1cm4gKHNjcm9sbEJhciAhPSBudWxsICYmXFxuICAgICAgICAgICAgc2Nyb2xsQmFyLnggPD0geCAmJlxcbiAgICAgICAgICAgIHggPD0gc2Nyb2xsQmFyLnggKyBzY3JvbGxCYXIud2lkdGggJiZcXG4gICAgICAgICAgICBzY3JvbGxCYXIueSA8PSB5ICYmXFxuICAgICAgICAgICAgeSA8PSBzY3JvbGxCYXIueSArIHNjcm9sbEJhci5oZWlnaHQpO1xcbiAgICB9KTtcXG4gICAgY29uc3QgaXNPdmVyRWl0aGVyID0gaXNPdmVySG9yaXpvbnRhbCB8fCBpc092ZXJWZXJ0aWNhbDtcXG4gICAgcmV0dXJuIHsgaXNPdmVyRWl0aGVyLCBpc092ZXJIb3Jpem9udGFsLCBpc092ZXJWZXJ0aWNhbCB9O1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZjMk5sYm1VdmMyTnliMnhzWW1GeWN5NTBjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenRCUVVNMlF6dEJRVWRITzBGQlExWTdRVUZGTDBJc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkRNMElzVFVGQlRTeGxRVUZsTEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUXpGQ0xFMUJRVTBzWlVGQlpTeEhRVUZITEdsQ1FVRnBRaXhEUVVGRE8wRkJSVEZETEUxQlFVMHNZVUZCWVN4SFFVRkhMRU5CUXpOQ0xGRkJRWE5ETEVWQlEzUkRMR0ZCUVhGQ0xFVkJRM0pDTEdOQlFYTkNMRVZCUTNSQ0xFVkJRMFVzVDBGQlR5eEZRVU5RTEU5QlFVOHNSVUZEVUN4SlFVRkpMRWRCUzB3c1JVRkRWeXhGUVVGRk8wbEJRMlFzU1VGQlNTeFJRVUZSTEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNc1JVRkJSVHRSUVVONlFpeFBRVUZQTzFsQlEwd3NWVUZCVlN4RlFVRkZMRWxCUVVrN1dVRkRhRUlzVVVGQlVTeEZRVUZGTEVsQlFVazdVMEZEWml4RFFVRkRPMHRCUTBnN1NVRkRSQ3dyUTBGQkswTTdTVUZETDBNc1RVRkJUU3hEUVVGRExGbEJRVmtzUlVGQlJTeFpRVUZaTEVWQlFVVXNXVUZCV1N4RlFVRkZMRmxCUVZrc1EwRkJReXhIUVVNMVJDeDVSRUZCWlN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wbEJSVFZDTEdGQlFXRTdTVUZEWWl4TlFVRk5MSEZDUVVGeFFpeEhRVUZITEdGQlFXRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRM3BFTEUxQlFVMHNjMEpCUVhOQ0xFZEJRVWNzWTBGQll5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNN1NVRkZNMFFzVFVGQlRTeHBRa0ZCYVVJc1IwRkJSeXhoUVVGaExFZEJRVWNzY1VKQlFYRkNMRU5CUVVNN1NVRkRhRVVzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhqUVVGakxFZEJRVWNzYzBKQlFYTkNMRU5CUVVNN1NVRkZia1VzVFVGQlRTeFJRVUZSTEVkQlFVYzdVVUZEWml4SFFVRkhMRVZCUVVVc1VVRkJVU3hEUVVGRExEUkVRVUZ2UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRekZETEUxQlFVMHNSVUZCUlN4UlFVRlJMRU5CUVVNc05FUkJRVzlDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkROME1zU1VGQlNTeEZRVUZGTEZGQlFWRXNRMEZCUXl3MFJFRkJiMElzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTXpReXhMUVVGTExFVkJRVVVzVVVGQlVTeERRVUZETERSRVFVRnZRaXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzB0QlF6ZERMRU5CUVVNN1NVRkZSaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eHJSRUZCVnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRE8wbEJSV2hETEN0RVFVRXJSRHRKUVVNdlJDeE5RVUZOTEZsQlFWa3NSMEZCUnl4RFFVRkRMRTlCUVU4c1IwRkJSeXhwUWtGQmFVSXNSMEZCUnl4RFFVRkRMRWRCUVVjc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF6dEpRVU4wUlN4TlFVRk5MRmxCUVZrc1IwRkJSeXhEUVVGRExFOUJRVThzUjBGQlJ5eHJRa0ZCYTBJc1IwRkJSeXhEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXp0SlFVTjBSU3hOUVVGTkxGbEJRVmtzUjBGQlJ5eFpRVUZaTEVkQlFVY3NjVUpCUVhGQ0xFZEJRVWNzVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXp0SlFVTXpSU3hOUVVGTkxGbEJRVmtzUjBGQlJ5eFpRVUZaTEVkQlFVY3NjMEpCUVhOQ0xFZEJRVWNzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXp0SlFVVTNSU3hyUlVGQmEwVTdTVUZEYkVVc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4WlFVRlpMRVZCUVVVc1dVRkJXU3hEUVVGRExFTkJRVU03U1VGRGRrUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eFpRVUZaTEVWQlFVVXNXVUZCV1N4RFFVRkRMRU5CUVVNN1NVRkRka1FzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhaUVVGWkxFVkJRVVVzV1VGQldTeERRVUZETEVOQlFVTTdTVUZEZGtRc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4WlFVRlpMRVZCUVVVc1dVRkJXU3hEUVVGRExFTkJRVU03U1VGRmRrUXNPRVZCUVRoRk8wbEJSVGxGTEU5QlFVODdVVUZEVEN4VlFVRlZMRVZCUTFJc1dVRkJXU3hMUVVGTExGTkJRVk1zU1VGQlNTeFpRVUZaTEV0QlFVc3NVMEZCVXp0WlFVTjBSQ3hEUVVGRExFTkJRVU1zU1VGQlNUdFpRVU5PTEVOQlFVTXNRMEZCUXp0blFrRkRSU3hEUVVGRExFVkJRME1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hGUVVGRkxHZENRVUZuUWl4RFFVRkRPMjlDUVVONlF5eERRVUZETEVOQlFVTXNXVUZCV1N4SFFVRkhMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zVTBGQlV5eEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVRkRPM2RDUVVOd1JDeGhRVUZoTzJkQ1FVTnFRaXhEUVVGRExFVkJRME1zWTBGQll6dHZRa0ZEWkN4bFFVRmxPMjlDUVVObUxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXp0blFrRkROME1zUzBGQlN5eEZRVU5JTEVOQlFVTXNRMEZCUXl4WlFVRlpMRWRCUVVjc1dVRkJXU3hEUVVGRExFZEJRVWNzUTBGQlF5eFRRVUZUTEVkQlFVY3NVMEZCVXl4RFFVRkRMRU5CUVVNN2IwSkJRM1pFTEdGQlFXRTdiMEpCUTJZc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eG5Ra0ZCWjBJc1IwRkJSeXhEUVVGRExFVkJRVVVzVVVGQlVTeERRVUZETEVsQlFVa3NSMEZCUnl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRE8yZENRVU5vUlN4TlFVRk5MRVZCUVVVc1pVRkJaVHRoUVVONFFqdFJRVU5RTEZGQlFWRXNSVUZEVGl4WlFVRlpMRXRCUVVzc1UwRkJVeXhKUVVGSkxGbEJRVmtzUzBGQlN5eFRRVUZUTzFsQlEzUkVMRU5CUVVNc1EwRkJReXhKUVVGSk8xbEJRMDRzUTBGQlF5eERRVUZETzJkQ1FVTkZMRU5CUVVNc1JVRkJSU3hMUVVGTE8yOUNRVU5PTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU03YjBKQlF6TkRMRU5CUVVNc1EwRkJReXhoUVVGaE8zZENRVU5pTEdWQlFXVTdkMEpCUTJZc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RlFVRkZMR2RDUVVGblFpeERRVUZETzJkQ1FVTTVReXhEUVVGRExFVkJRME1zUTBGQlF5eERRVUZETEZsQlFWa3NSMEZCUnl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUjBGQlJ5eFRRVUZUTEVOQlFVTXNRMEZCUXp0dlFrRkRjRVFzWTBGQll6dHZRa0ZEYUVJc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RlFVRkZMR2RDUVVGblFpeERRVUZETzJkQ1FVTXhReXhMUVVGTExFVkJRVVVzWlVGQlpUdG5Ra0ZEZEVJc1RVRkJUU3hGUVVOS0xFTkJRVU1zUTBGQlF5eFpRVUZaTEVkQlFVY3NXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFZEJRVWNzVTBGQlV5eERRVUZETEVOQlFVTTdiMEpCUTNaRUxHTkJRV003YjBKQlEyaENMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zWjBKQlFXZENMRWRCUVVjc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF5eEhRVUZITEVkQlFVY3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJRenRoUVVOcVJUdExRVU5TTEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMRU5CUXpsQ0xGVkJRWE5DTEVWQlEzUkNMRU5CUVZNc1JVRkRWQ3hEUVVGVExFVkJTMVFzUlVGQlJUdEpRVU5HTEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUlVGQlJTeGpRVUZqTEVOQlFVTXNSMEZCUnp0UlFVTjZReXhWUVVGVkxFTkJRVU1zVlVGQlZUdFJRVU55UWl4VlFVRlZMRU5CUVVNc1VVRkJVVHRMUVVOd1FpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hGUVVGRk8xRkJRMnhDTEU5QlFVOHNRMEZEVEN4VFFVRlRMRWxCUVVrc1NVRkJTVHRaUVVOcVFpeFRRVUZUTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkRhRUlzUTBGQlF5eEpRVUZKTEZOQlFWTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFdEJRVXM3V1VGRGJFTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRE8xbEJRMmhDTEVOQlFVTXNTVUZCU1N4VFFVRlRMRU5CUVVNc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlEzQkRMRU5CUVVNN1NVRkRTaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5JTEUxQlFVMHNXVUZCV1N4SFFVRkhMR2RDUVVGblFpeEpRVUZKTEdOQlFXTXNRMEZCUXp0SlFVTjRSQ3hQUVVGUExFVkJRVVVzV1VGQldTeEZRVUZGTEdkQ1FVRm5RaXhGUVVGRkxHTkJRV01zUlVGQlJTeERRVUZETzBGQlF6VkVMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5elkyVnVaUzl6WTNKdmJHeGlZWEp6TG5SelAyRmhNemNpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5RZ2ZTQm1jbTl0SUZ3aUxpNHZaV3hsYldWdWRDOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2daMlYwUTI5dGJXOXVRbTkxYm1SeklIMGdabkp2YlNCY0lpNHVMMlZzWlcxbGJuUmNJanRjYm1sdGNHOXlkQ0I3SUZwdmIyMGdmU0JtY205dElGd2lMaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUZOamNtOXNiRUpoY25NZ2ZTQm1jbTl0SUZ3aUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2daMlYwUjJ4dlltRnNRMU5UVm1GeWFXRmliR1VnZlNCbWNtOXRJRndpTGk0dmRYUnBiSE5jSWp0Y2JtbHRjRzl5ZENCN0lHZGxkRXhoYm1kMVlXZGxJSDBnWm5KdmJTQmNJaTR1TDJreE9HNWNJanRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRk5EVWs5TVRFSkJVbDlOUVZKSFNVNGdQU0EwTzF4dVpYaHdiM0owSUdOdmJuTjBJRk5EVWs5TVRFSkJVbDlYU1VSVVNDQTlJRFk3WEc1bGVIQnZjblFnWTI5dWMzUWdVME5TVDB4TVFrRlNYME5QVEU5U0lEMGdYQ0p5WjJKaEtEQXNNQ3d3TERBdU15bGNJanRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2RsZEZOamNtOXNiRUpoY25NZ1BTQW9YRzRnSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZExGeHVJQ0IyYVdWM2NHOXlkRmRwWkhSb09pQnVkVzFpWlhJc1hHNGdJSFpwWlhkd2IzSjBTR1ZwWjJoME9pQnVkVzFpWlhJc1hHNGdJSHRjYmlBZ0lDQnpZM0p2Ykd4WUxGeHVJQ0FnSUhOamNtOXNiRmtzWEc0Z0lDQWdlbTl2YlN4Y2JpQWdmVG9nZTF4dUlDQWdJSE5qY205c2JGZzZJRzUxYldKbGNqdGNiaUFnSUNCelkzSnZiR3haT2lCdWRXMWlaWEk3WEc0Z0lDQWdlbTl2YlRvZ1dtOXZiVHRjYmlBZ2ZTeGNiaWs2SUZOamNtOXNiRUpoY25NZ1BUNGdlMXh1SUNCcFppQW9aV3hsYldWdWRITXViR1Z1WjNSb0lEMDlQU0F3S1NCN1hHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJR2h2Y21sNmIyNTBZV3c2SUc1MWJHd3NYRzRnSUNBZ0lDQjJaWEowYVdOaGJEb2diblZzYkN4Y2JpQWdJQ0I5TzF4dUlDQjlYRzRnSUM4dklGUm9hWE1nYVhNZ2RHaGxJR0p2ZFc1a2FXNW5JR0p2ZUNCdlppQmhiR3dnZEdobElHVnNaVzFsYm5SelhHNGdJR052Ym5OMElGdGxiR1Z0Wlc1MGMwMXBibGdzSUdWc1pXMWxiblJ6VFdsdVdTd2daV3hsYldWdWRITk5ZWGhZTENCbGJHVnRaVzUwYzAxaGVGbGRJRDFjYmlBZ0lDQm5aWFJEYjIxdGIyNUNiM1Z1WkhNb1pXeGxiV1Z1ZEhNcE8xeHVYRzRnSUM4dklFRndjR3g1SUhwdmIyMWNiaUFnWTI5dWMzUWdkbWxsZDNCdmNuUlhhV1IwYUZkcGRHaGFiMjl0SUQwZ2RtbGxkM0J2Y25SWGFXUjBhQ0F2SUhwdmIyMHVkbUZzZFdVN1hHNGdJR052Ym5OMElIWnBaWGR3YjNKMFNHVnBaMmgwVjJsMGFGcHZiMjBnUFNCMmFXVjNjRzl5ZEVobGFXZG9kQ0F2SUhwdmIyMHVkbUZzZFdVN1hHNWNiaUFnWTI5dWMzUWdkbWxsZDNCdmNuUlhhV1IwYUVScFptWWdQU0IyYVdWM2NHOXlkRmRwWkhSb0lDMGdkbWxsZDNCdmNuUlhhV1IwYUZkcGRHaGFiMjl0TzF4dUlDQmpiMjV6ZENCMmFXVjNjRzl5ZEVobGFXZG9kRVJwWm1ZZ1BTQjJhV1YzY0c5eWRFaGxhV2RvZENBdElIWnBaWGR3YjNKMFNHVnBaMmgwVjJsMGFGcHZiMjA3WEc1Y2JpQWdZMjl1YzNRZ2MyRm1aVUZ5WldFZ1BTQjdYRzRnSUNBZ2RHOXdPaUJ3WVhKelpVbHVkQ2huWlhSSGJHOWlZV3hEVTFOV1lYSnBZV0pzWlNoY0luTmhkRndpS1Nrc1hHNGdJQ0FnWW05MGRHOXRPaUJ3WVhKelpVbHVkQ2huWlhSSGJHOWlZV3hEVTFOV1lYSnBZV0pzWlNoY0luTmhZbHdpS1Nrc1hHNGdJQ0FnYkdWbWREb2djR0Z5YzJWSmJuUW9aMlYwUjJ4dlltRnNRMU5UVm1GeWFXRmliR1VvWENKellXeGNJaWtwTEZ4dUlDQWdJSEpwWjJoME9pQndZWEp6WlVsdWRDaG5aWFJIYkc5aVlXeERVMU5XWVhKcFlXSnNaU2hjSW5OaGNsd2lLU2tzWEc0Z0lIMDdYRzVjYmlBZ1kyOXVjM1FnYVhOU1ZFd2dQU0JuWlhSTVlXNW5kV0ZuWlNncExuSjBiRHRjYmx4dUlDQXZMeUJVYUdVZ2RtbGxkM0J2Y25RZ2FYTWdkR2hsSUhKbFkzUmhibWRzWlNCamRYSnlaVzUwYkhrZ2RtbHphV0pzWlNCbWIzSWdkR2hsSUhWelpYSmNiaUFnWTI5dWMzUWdkbWxsZDNCdmNuUk5hVzVZSUQwZ0xYTmpjbTlzYkZnZ0t5QjJhV1YzY0c5eWRGZHBaSFJvUkdsbVppQXZJRElnS3lCellXWmxRWEpsWVM1c1pXWjBPMXh1SUNCamIyNXpkQ0IyYVdWM2NHOXlkRTFwYmxrZ1BTQXRjMk55YjJ4c1dTQXJJSFpwWlhkd2IzSjBTR1ZwWjJoMFJHbG1aaUF2SURJZ0t5QnpZV1psUVhKbFlTNTBiM0E3WEc0Z0lHTnZibk4wSUhacFpYZHdiM0owVFdGNFdDQTlJSFpwWlhkd2IzSjBUV2x1V0NBcklIWnBaWGR3YjNKMFYybGtkR2hYYVhSb1dtOXZiU0F0SUhOaFptVkJjbVZoTG5KcFoyaDBPMXh1SUNCamIyNXpkQ0IyYVdWM2NHOXlkRTFoZUZrZ1BTQjJhV1YzY0c5eWRFMXBibGtnS3lCMmFXVjNjRzl5ZEVobGFXZG9kRmRwZEdoYWIyOXRJQzBnYzJGbVpVRnlaV0V1WW05MGRHOXRPMXh1WEc0Z0lDOHZJRlJvWlNCelkyVnVaU0JwY3lCMGFHVWdZbTkxYm1ScGJtY2dZbTk0SUc5bUlHSnZkR2dnZEdobElHVnNaVzFsYm5SeklHRnVaQ0IyYVdWM2NHOXlkRnh1SUNCamIyNXpkQ0J6WTJWdVpVMXBibGdnUFNCTllYUm9MbTFwYmlobGJHVnRaVzUwYzAxcGJsZ3NJSFpwWlhkd2IzSjBUV2x1V0NrN1hHNGdJR052Ym5OMElITmpaVzVsVFdsdVdTQTlJRTFoZEdndWJXbHVLR1ZzWlcxbGJuUnpUV2x1V1N3Z2RtbGxkM0J2Y25STmFXNVpLVHRjYmlBZ1kyOXVjM1FnYzJObGJtVk5ZWGhZSUQwZ1RXRjBhQzV0WVhnb1pXeGxiV1Z1ZEhOTllYaFlMQ0IyYVdWM2NHOXlkRTFoZUZncE8xeHVJQ0JqYjI1emRDQnpZMlZ1WlUxaGVGa2dQU0JOWVhSb0xtMWhlQ2hsYkdWdFpXNTBjMDFoZUZrc0lIWnBaWGR3YjNKMFRXRjRXU2s3WEc1Y2JpQWdMeThnVkdobElITmpjbTlzYkdKaGNpQnlaWEJ5WlhObGJuUnpJSGRvWlhKbElIUm9aU0IyYVdWM2NHOXlkQ0JwY3lCcGJpQnlaV3hoZEdsdmJuTm9hWEFnZEc4Z2RHaGxJSE5qWlc1bFhHNWNiaUFnY21WMGRYSnVJSHRjYmlBZ0lDQm9iM0pwZW05dWRHRnNPbHh1SUNBZ0lDQWdkbWxsZDNCdmNuUk5hVzVZSUQwOVBTQnpZMlZ1WlUxcGJsZ2dKaVlnZG1sbGQzQnZjblJOWVhoWUlEMDlQU0J6WTJWdVpVMWhlRmhjYmlBZ0lDQWdJQ0FnUHlCdWRXeHNYRzRnSUNBZ0lDQWdJRG9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdlRHBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdUV0YwYUM1dFlYZ29jMkZtWlVGeVpXRXViR1ZtZEN3Z1UwTlNUMHhNUWtGU1gwMUJVa2RKVGlrZ0sxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBb0tIWnBaWGR3YjNKMFRXbHVXQ0F0SUhOalpXNWxUV2x1V0NrZ0x5QW9jMk5sYm1WTllYaFlJQzBnYzJObGJtVk5hVzVZS1NrZ0tseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWnBaWGR3YjNKMFYybGtkR2dzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjVPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjJhV1YzY0c5eWRFaGxhV2RvZENBdFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUZORFVrOU1URUpCVWw5WFNVUlVTQ0F0WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRTFoZEdndWJXRjRLRk5EVWs5TVRFSkJVbDlOUVZKSFNVNHNJSE5oWm1WQmNtVmhMbUp2ZEhSdmJTa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCM2FXUjBhRHBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdLQ2gyYVdWM2NHOXlkRTFoZUZnZ0xTQjJhV1YzY0c5eWRFMXBibGdwSUM4Z0tITmpaVzVsVFdGNFdDQXRJSE5qWlc1bFRXbHVXQ2twSUNwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMmFXVjNjRzl5ZEZkcFpIUm9JQzFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdUV0YwYUM1dFlYZ29VME5TVDB4TVFrRlNYMDFCVWtkSlRpQXFJRElzSUhOaFptVkJjbVZoTG14bFpuUWdLeUJ6WVdabFFYSmxZUzV5YVdkb2RDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCb1pXbG5hSFE2SUZORFVrOU1URUpCVWw5WFNVUlVTQ3hjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUhabGNuUnBZMkZzT2x4dUlDQWdJQ0FnZG1sbGQzQnZjblJOYVc1WklEMDlQU0J6WTJWdVpVMXBibGtnSmlZZ2RtbGxkM0J2Y25STllYaFpJRDA5UFNCelkyVnVaVTFoZUZsY2JpQWdJQ0FnSUNBZ1B5QnVkV3hzWEc0Z0lDQWdJQ0FnSURvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZURvZ2FYTlNWRXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdQeUJOWVhSb0xtMWhlQ2h6WVdabFFYSmxZUzVzWldaMExDQlRRMUpQVEV4Q1FWSmZUVUZTUjBsT0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBNklIWnBaWGR3YjNKMFYybGtkR2dnTFZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUZORFVrOU1URUpCVWw5WFNVUlVTQ0F0WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnVFdGMGFDNXRZWGdvYzJGbVpVRnlaV0V1Y21sbmFIUXNJRk5EVWs5TVRFSkJVbDlOUVZKSFNVNHBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2VUcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0tDaDJhV1YzY0c5eWRFMXBibGtnTFNCelkyVnVaVTFwYmxrcElDOGdLSE5qWlc1bFRXRjRXU0F0SUhOalpXNWxUV2x1V1NrcElDcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJhV1YzY0c5eWRFaGxhV2RvZENBclhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUUxaGRHZ3ViV0Y0S0hOaFptVkJjbVZoTG5SdmNDd2dVME5TVDB4TVFrRlNYMDFCVWtkSlRpa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCM2FXUjBhRG9nVTBOU1QweE1Ra0ZTWDFkSlJGUklMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2FHVnBaMmgwT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FvS0hacFpYZHdiM0owVFdGNFdTQXRJSFpwWlhkd2IzSjBUV2x1V1NrZ0x5QW9jMk5sYm1WTllYaFpJQzBnYzJObGJtVk5hVzVaS1NrZ0tseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWnBaWGR3YjNKMFNHVnBaMmgwSUMxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnVFdGMGFDNXRZWGdvVTBOU1QweE1Ra0ZTWDAxQlVrZEpUaUFxSURJc0lITmhabVZCY21WaExuUnZjQ0FySUhOaFptVkJjbVZoTG1KdmRIUnZiU2tzWEc0Z0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnZlR0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnBjMDkyWlhKVFkzSnZiR3hDWVhKeklEMGdLRnh1SUNCelkzSnZiR3hDWVhKek9pQlRZM0p2Ykd4Q1lYSnpMRnh1SUNCNE9pQnVkVzFpWlhJc1hHNGdJSGs2SUc1MWJXSmxjaXhjYmlrNklIdGNiaUFnYVhOUGRtVnlSV2wwYUdWeU9pQmliMjlzWldGdU8xeHVJQ0JwYzA5MlpYSkliM0pwZW05dWRHRnNPaUJpYjI5c1pXRnVPMXh1SUNCcGMwOTJaWEpXWlhKMGFXTmhiRG9nWW05dmJHVmhianRjYm4wZ1BUNGdlMXh1SUNCamIyNXpkQ0JiYVhOUGRtVnlTRzl5YVhwdmJuUmhiQ3dnYVhOUGRtVnlWbVZ5ZEdsallXeGRJRDBnVzF4dUlDQWdJSE5qY205c2JFSmhjbk11YUc5eWFYcHZiblJoYkN4Y2JpQWdJQ0J6WTNKdmJHeENZWEp6TG5abGNuUnBZMkZzTEZ4dUlDQmRMbTFoY0Nnb2MyTnliMnhzUW1GeUtTQTlQaUI3WEc0Z0lDQWdjbVYwZFhKdUlDaGNiaUFnSUNBZ0lITmpjbTlzYkVKaGNpQWhQU0J1ZFd4c0lDWW1YRzRnSUNBZ0lDQnpZM0p2Ykd4Q1lYSXVlQ0E4UFNCNElDWW1YRzRnSUNBZ0lDQjRJRHc5SUhOamNtOXNiRUpoY2k1NElDc2djMk55YjJ4c1FtRnlMbmRwWkhSb0lDWW1YRzRnSUNBZ0lDQnpZM0p2Ykd4Q1lYSXVlU0E4UFNCNUlDWW1YRzRnSUNBZ0lDQjVJRHc5SUhOamNtOXNiRUpoY2k1NUlDc2djMk55YjJ4c1FtRnlMbWhsYVdkb2RGeHVJQ0FnSUNrN1hHNGdJSDBwTzF4dUlDQmpiMjV6ZENCcGMwOTJaWEpGYVhSb1pYSWdQU0JwYzA5MlpYSkliM0pwZW05dWRHRnNJSHg4SUdselQzWmxjbFpsY25ScFkyRnNPMXh1SUNCeVpYUjFjbTRnZXlCcGMwOTJaWEpGYVhSb1pYSXNJR2x6VDNabGNraHZjbWw2YjI1MFlXd3NJR2x6VDNabGNsWmxjblJwWTJGc0lIMDdYRzU5TzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vc2NlbmUvc2Nyb2xsYmFycy50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vc2NlbmUvc2VsZWN0aW9uLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi9zY2VuZS9zZWxlY3Rpb24udHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRFbGVtZW50c1dpdGhpblNlbGVjdGlvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldEVsZW1lbnRzV2l0aGluU2VsZWN0aW9uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpc1NvbWVFbGVtZW50U2VsZWN0ZWRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpc1NvbWVFbGVtZW50U2VsZWN0ZWQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldENvbW1vbkF0dHJpYnV0ZU9mU2VsZWN0ZWRFbGVtZW50c1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldENvbW1vbkF0dHJpYnV0ZU9mU2VsZWN0ZWRFbGVtZW50cyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0U2VsZWN0ZWRFbGVtZW50c1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldFNlbGVjdGVkRWxlbWVudHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldFRhcmdldEVsZW1lbnRzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0VGFyZ2V0RWxlbWVudHMpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9lbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2VsZW1lbnQvdHlwZUNoZWNrcyAqLyBcXFwiLi4vLi4vZWxlbWVudC90eXBlQ2hlY2tzLnRzXFxcIik7XFxuXFxuXFxuY29uc3QgZ2V0RWxlbWVudHNXaXRoaW5TZWxlY3Rpb24gPSAoZWxlbWVudHMsIHNlbGVjdGlvbikgPT4ge1xcbiAgICBjb25zdCBbc2VsZWN0aW9uWDEsIHNlbGVjdGlvblkxLCBzZWxlY3Rpb25YMiwgc2VsZWN0aW9uWTJdID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5nZXRFbGVtZW50QWJzb2x1dGVDb29yZHMpKHNlbGVjdGlvbik7XFxuICAgIHJldHVybiBlbGVtZW50cy5maWx0ZXIoKGVsZW1lbnQpID0+IHtcXG4gICAgICAgIGNvbnN0IFtlbGVtZW50WDEsIGVsZW1lbnRZMSwgZWxlbWVudFgyLCBlbGVtZW50WTJdID0gKDAsX2VsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5nZXRFbGVtZW50Qm91bmRzKShlbGVtZW50KTtcXG4gICAgICAgIHJldHVybiAoZWxlbWVudC50eXBlICE9PSBcXFwic2VsZWN0aW9uXFxcIiAmJlxcbiAgICAgICAgICAgICEoMCxfZWxlbWVudF90eXBlQ2hlY2tzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaXNCb3VuZFRvQ29udGFpbmVyKShlbGVtZW50KSAmJlxcbiAgICAgICAgICAgIHNlbGVjdGlvblgxIDw9IGVsZW1lbnRYMSAmJlxcbiAgICAgICAgICAgIHNlbGVjdGlvblkxIDw9IGVsZW1lbnRZMSAmJlxcbiAgICAgICAgICAgIHNlbGVjdGlvblgyID49IGVsZW1lbnRYMiAmJlxcbiAgICAgICAgICAgIHNlbGVjdGlvblkyID49IGVsZW1lbnRZMik7XFxuICAgIH0pO1xcbn07XFxuY29uc3QgaXNTb21lRWxlbWVudFNlbGVjdGVkID0gKGVsZW1lbnRzLCBhcHBTdGF0ZSkgPT4gZWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT4gYXBwU3RhdGUuc2VsZWN0ZWRFbGVtZW50SWRzW2VsZW1lbnQuaWRdKTtcXG4vKipcXG4gKiBSZXR1cm5zIGNvbW1vbiBhdHRyaWJ1dGUgKHBpY2tlZCBieSBgZ2V0QXR0cmlidXRlYCBjYWxsYmFjaykgb2Ygc2VsZWN0ZWRcXG4gKiAgZWxlbWVudHMuIElmIGVsZW1lbnRzIGRvbid0IHNoYXJlIHRoZSBzYW1lIHZhbHVlLCByZXR1cm5zIGBudWxsYC5cXG4gKi9cXG5jb25zdCBnZXRDb21tb25BdHRyaWJ1dGVPZlNlbGVjdGVkRWxlbWVudHMgPSAoZWxlbWVudHMsIGFwcFN0YXRlLCBnZXRBdHRyaWJ1dGUpID0+IHtcXG4gICAgY29uc3QgYXR0cmlidXRlcyA9IEFycmF5LmZyb20obmV3IFNldChnZXRTZWxlY3RlZEVsZW1lbnRzKGVsZW1lbnRzLCBhcHBTdGF0ZSkubWFwKChlbGVtZW50KSA9PiBnZXRBdHRyaWJ1dGUoZWxlbWVudCkpKSk7XFxuICAgIHJldHVybiBhdHRyaWJ1dGVzLmxlbmd0aCA9PT0gMSA/IGF0dHJpYnV0ZXNbMF0gOiBudWxsO1xcbn07XFxuY29uc3QgZ2V0U2VsZWN0ZWRFbGVtZW50cyA9IChlbGVtZW50cywgYXBwU3RhdGUsIGluY2x1ZGVCb3VuZFRleHRFbGVtZW50ID0gZmFsc2UpID0+IGVsZW1lbnRzLmZpbHRlcigoZWxlbWVudCkgPT4ge1xcbiAgICBpZiAoYXBwU3RhdGUuc2VsZWN0ZWRFbGVtZW50SWRzW2VsZW1lbnQuaWRdKSB7XFxuICAgICAgICByZXR1cm4gZWxlbWVudDtcXG4gICAgfVxcbiAgICBpZiAoaW5jbHVkZUJvdW5kVGV4dEVsZW1lbnQgJiZcXG4gICAgICAgICgwLF9lbGVtZW50X3R5cGVDaGVja3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5pc0JvdW5kVG9Db250YWluZXIpKGVsZW1lbnQpICYmXFxuICAgICAgICBhcHBTdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHNbZWxlbWVudCA9PT0gbnVsbCB8fCBlbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbGVtZW50LmNvbnRhaW5lcklkXSkge1xcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7XFxuICAgIH1cXG4gICAgcmV0dXJuIG51bGw7XFxufSk7XFxuY29uc3QgZ2V0VGFyZ2V0RWxlbWVudHMgPSAoZWxlbWVudHMsIGFwcFN0YXRlKSA9PiBhcHBTdGF0ZS5lZGl0aW5nRWxlbWVudFxcbiAgICA/IFthcHBTdGF0ZS5lZGl0aW5nRWxlbWVudF1cXG4gICAgOiBnZXRTZWxlY3RlZEVsZW1lbnRzKGVsZW1lbnRzLCBhcHBTdGF0ZSwgdHJ1ZSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZjMk5sYm1VdmMyVnNaV04wYVc5dUxuUnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdRVUZKZDBVN1FVRkZZanRCUVVWd1JDeE5RVUZOTERCQ1FVRXdRaXhIUVVGSExFTkJRM2hETEZGQlFXZEVMRVZCUTJoRUxGTkJRWE5ETEVWQlEzUkRMRVZCUVVVN1NVRkRSaXhOUVVGTkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEZkQlFWY3NSVUZCUlN4WFFVRlhMRVZCUVVVc1YwRkJWeXhEUVVGRExFZEJRM2hFTEd0RlFVRjNRaXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzBsQlEzUkRMRTlCUVU4c1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZPMUZCUTJwRExFMUJRVTBzUTBGQlF5eFRRVUZUTEVWQlFVVXNVMEZCVXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hUUVVGVExFTkJRVU1zUjBGRGFFUXNNRVJCUVdkQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZGTlVJc1QwRkJUeXhEUVVOTUxFOUJRVThzUTBGQlF5eEpRVUZKTEV0QlFVc3NWMEZCVnp0WlFVTTFRaXhEUVVGRExIVkZRVUZyUWl4RFFVRkRMRTlCUVU4c1EwRkJRenRaUVVNMVFpeFhRVUZYTEVsQlFVa3NVMEZCVXp0WlFVTjRRaXhYUVVGWExFbEJRVWtzVTBGQlV6dFpRVU40UWl4WFFVRlhMRWxCUVVrc1UwRkJVenRaUVVONFFpeFhRVUZYTEVsQlFVa3NVMEZCVXl4RFFVTjZRaXhEUVVGRE8wbEJRMG9zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVEN4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxIRkNRVUZ4UWl4SFFVRkhMRU5CUTI1RExGRkJRV2RFTEVWQlEyaEVMRkZCUVd0Q0xFVkJRMVFzUlVGQlJTeERRVU5ZTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVWMFJUczdPMGRCUjBjN1FVRkRTU3hOUVVGTkxHOURRVUZ2UXl4SFFVRkhMRU5CUTJ4RUxGRkJRV2RFTEVWQlEyaEVMRkZCUVd0Q0xFVkJRMnhDTEZsQlFTdERMRVZCUTNKRExFVkJRVVU3U1VGRFdpeE5RVUZOTEZWQlFWVXNSMEZCUnl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVNelFpeEpRVUZKTEVkQlFVY3NRMEZEVEN4dFFrRkJiVUlzUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNRMEZEZEVRc1dVRkJXU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVU4wUWl4RFFVTkdMRU5CUTBZc1EwRkJRenRKUVVOR0xFOUJRVThzVlVGQlZTeERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRE8wRkJRM2hFTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NRMEZEYWtNc1VVRkJaMFFzUlVGRGFFUXNVVUZCYTBJc1JVRkRiRUlzTUVKQlFXMURMRXRCUVVzc1JVRkRlRU1zUlVGQlJTeERRVU5HTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJUdEpRVU14UWl4SlFVRkpMRkZCUVZFc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVU3VVVGRE0wTXNUMEZCVHl4UFFVRlBMRU5CUVVNN1MwRkRhRUk3U1VGRFJDeEpRVU5GTEhWQ1FVRjFRanRSUVVOMlFpeDFSVUZCYTBJc1EwRkJReXhQUVVGUExFTkJRVU03VVVGRE0wSXNVVUZCVVN4RFFVRkRMR3RDUVVGclFpeERRVUZETEU5QlFVOHNZVUZCVUN4UFFVRlBMSFZDUVVGUUxFOUJRVThzUTBGQlJTeFhRVUZYTEVOQlFVTXNSVUZEYWtRN1VVRkRRU3hQUVVGUExFOUJRVThzUTBGQlF6dExRVU5vUWp0SlFVTkVMRTlCUVU4c1NVRkJTU3hEUVVGRE8wRkJRMlFzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZGUlN4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEVOQlF5OUNMRkZCUVdkRUxFVkJRMmhFTEZGQlFXdENMRVZCUTJ4Q0xFVkJRVVVzUTBGRFJpeFJRVUZSTEVOQlFVTXNZMEZCWXp0SlFVTnlRaXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNZMEZCWXl4RFFVRkRPMGxCUXpOQ0xFTkJRVU1zUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSndZV05yT2k4dkx5NHVMeTR1TDNOalpXNWxMM05sYkdWamRHbHZiaTUwY3o4eE1HTTVJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3WEc0Z0lFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MExGeHVJQ0JPYjI1RVpXeGxkR1ZrUlhoallXeHBaSEpoZDBWc1pXMWxiblFzWEc1OUlHWnliMjBnWENJdUxpOWxiR1Z0Wlc1MEwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5Qm5aWFJGYkdWdFpXNTBRV0p6YjJ4MWRHVkRiMjl5WkhNc0lHZGxkRVZzWlcxbGJuUkNiM1Z1WkhNZ2ZTQm1jbTl0SUZ3aUxpNHZaV3hsYldWdWRGd2lPMXh1YVcxd2IzSjBJSHNnUVhCd1UzUmhkR1VnZlNCbWNtOXRJRndpTGk0dmRIbHdaWE5jSWp0Y2JtbHRjRzl5ZENCN0lHbHpRbTkxYm1SVWIwTnZiblJoYVc1bGNpQjlJR1p5YjIwZ1hDSXVMaTlsYkdWdFpXNTBMM1I1Y0dWRGFHVmphM05jSWp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdkbGRFVnNaVzFsYm5SelYybDBhR2x1VTJWc1pXTjBhVzl1SUQwZ0tGeHVJQ0JsYkdWdFpXNTBjem9nY21WaFpHOXViSGtnVG05dVJHVnNaWFJsWkVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzEwc1hHNGdJSE5sYkdWamRHbHZiam9nVG05dVJHVnNaWFJsWkVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwTEZ4dUtTQTlQaUI3WEc0Z0lHTnZibk4wSUZ0elpXeGxZM1JwYjI1WU1Td2djMlZzWldOMGFXOXVXVEVzSUhObGJHVmpkR2x2YmxneUxDQnpaV3hsWTNScGIyNVpNbDBnUFZ4dUlDQWdJR2RsZEVWc1pXMWxiblJCWW5OdmJIVjBaVU52YjNKa2N5aHpaV3hsWTNScGIyNHBPMXh1SUNCeVpYUjFjbTRnWld4bGJXVnVkSE11Wm1sc2RHVnlLQ2hsYkdWdFpXNTBLU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdXMlZzWlcxbGJuUllNU3dnWld4bGJXVnVkRmt4TENCbGJHVnRaVzUwV0RJc0lHVnNaVzFsYm5SWk1sMGdQVnh1SUNBZ0lDQWdaMlYwUld4bGJXVnVkRUp2ZFc1a2N5aGxiR1Z0Wlc1MEtUdGNibHh1SUNBZ0lISmxkSFZ5YmlBb1hHNGdJQ0FnSUNCbGJHVnRaVzUwTG5SNWNHVWdJVDA5SUZ3aWMyVnNaV04wYVc5dVhDSWdKaVpjYmlBZ0lDQWdJQ0ZwYzBKdmRXNWtWRzlEYjI1MFlXbHVaWElvWld4bGJXVnVkQ2tnSmlaY2JpQWdJQ0FnSUhObGJHVmpkR2x2YmxneElEdzlJR1ZzWlcxbGJuUllNU0FtSmx4dUlDQWdJQ0FnYzJWc1pXTjBhVzl1V1RFZ1BEMGdaV3hsYldWdWRGa3hJQ1ltWEc0Z0lDQWdJQ0J6Wld4bFkzUnBiMjVZTWlBK1BTQmxiR1Z0Wlc1MFdESWdKaVpjYmlBZ0lDQWdJSE5sYkdWamRHbHZibGt5SUQ0OUlHVnNaVzFsYm5SWk1seHVJQ0FnSUNrN1hHNGdJSDBwTzF4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHbHpVMjl0WlVWc1pXMWxiblJUWld4bFkzUmxaQ0E5SUNoY2JpQWdaV3hsYldWdWRITTZJSEpsWVdSdmJteDVJRTV2YmtSbGJHVjBaV1JGZUdOaGJHbGtjbUYzUld4bGJXVnVkRnRkTEZ4dUlDQmhjSEJUZEdGMFpUb2dRWEJ3VTNSaGRHVXNYRzRwT2lCaWIyOXNaV0Z1SUQwK1hHNGdJR1ZzWlcxbGJuUnpMbk52YldVb0tHVnNaVzFsYm5RcElEMCtJR0Z3Y0ZOMFlYUmxMbk5sYkdWamRHVmtSV3hsYldWdWRFbGtjMXRsYkdWdFpXNTBMbWxrWFNrN1hHNWNiaThxS2x4dUlDb2dVbVYwZFhKdWN5QmpiMjF0YjI0Z1lYUjBjbWxpZFhSbElDaHdhV05yWldRZ1lua2dZR2RsZEVGMGRISnBZblYwWldBZ1kyRnNiR0poWTJzcElHOW1JSE5sYkdWamRHVmtYRzRnS2lBZ1pXeGxiV1Z1ZEhNdUlFbG1JR1ZzWlcxbGJuUnpJR1J2YmlkMElITm9ZWEpsSUhSb1pTQnpZVzFsSUhaaGJIVmxMQ0J5WlhSMWNtNXpJR0J1ZFd4c1lDNWNiaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJR2RsZEVOdmJXMXZia0YwZEhKcFluVjBaVTltVTJWc1pXTjBaV1JGYkdWdFpXNTBjeUE5SUR4VVBpaGNiaUFnWld4bGJXVnVkSE02SUhKbFlXUnZibXg1SUU1dmJrUmxiR1YwWldSRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZExGeHVJQ0JoY0hCVGRHRjBaVG9nUVhCd1UzUmhkR1VzWEc0Z0lHZGxkRUYwZEhKcFluVjBaVG9nS0dWc1pXMWxiblE2SUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwS1NBOVBpQlVMRnh1S1RvZ1ZDQjhJRzUxYkd3Z1BUNGdlMXh1SUNCamIyNXpkQ0JoZEhSeWFXSjFkR1Z6SUQwZ1FYSnlZWGt1Wm5KdmJTaGNiaUFnSUNCdVpYY2dVMlYwS0Z4dUlDQWdJQ0FnWjJWMFUyVnNaV04wWldSRmJHVnRaVzUwY3lobGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVcExtMWhjQ2dvWld4bGJXVnVkQ2tnUFQ1Y2JpQWdJQ0FnSUNBZ1oyVjBRWFIwY21saWRYUmxLR1ZzWlcxbGJuUXBMRnh1SUNBZ0lDQWdLU3hjYmlBZ0lDQXBMRnh1SUNBcE8xeHVJQ0J5WlhSMWNtNGdZWFIwY21saWRYUmxjeTVzWlc1bmRHZ2dQVDA5SURFZ1B5QmhkSFJ5YVdKMWRHVnpXekJkSURvZ2JuVnNiRHRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCblpYUlRaV3hsWTNSbFpFVnNaVzFsYm5SeklEMGdLRnh1SUNCbGJHVnRaVzUwY3pvZ2NtVmhaRzl1YkhrZ1RtOXVSR1ZzWlhSbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMHNYRzRnSUdGd2NGTjBZWFJsT2lCQmNIQlRkR0YwWlN4Y2JpQWdhVzVqYkhWa1pVSnZkVzVrVkdWNGRFVnNaVzFsYm5RNklHSnZiMnhsWVc0Z1BTQm1ZV3h6WlN4Y2Jpa2dQVDVjYmlBZ1pXeGxiV1Z1ZEhNdVptbHNkR1Z5S0NobGJHVnRaVzUwS1NBOVBpQjdYRzRnSUNBZ2FXWWdLR0Z3Y0ZOMFlYUmxMbk5sYkdWamRHVmtSV3hsYldWdWRFbGtjMXRsYkdWdFpXNTBMbWxrWFNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdWc1pXMWxiblE3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJR2x1WTJ4MVpHVkNiM1Z1WkZSbGVIUkZiR1Z0Wlc1MElDWW1YRzRnSUNBZ0lDQnBjMEp2ZFc1a1ZHOURiMjUwWVdsdVpYSW9aV3hsYldWdWRDa2dKaVpjYmlBZ0lDQWdJR0Z3Y0ZOMFlYUmxMbk5sYkdWamRHVmtSV3hsYldWdWRFbGtjMXRsYkdWdFpXNTBQeTVqYjI1MFlXbHVaWEpKWkYxY2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJsYkdWdFpXNTBPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnZlNrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCblpYUlVZWEpuWlhSRmJHVnRaVzUwY3lBOUlDaGNiaUFnWld4bGJXVnVkSE02SUhKbFlXUnZibXg1SUU1dmJrUmxiR1YwWldSRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZExGeHVJQ0JoY0hCVGRHRjBaVG9nUVhCd1UzUmhkR1VzWEc0cElEMCtYRzRnSUdGd2NGTjBZWFJsTG1Wa2FYUnBibWRGYkdWdFpXNTBYRzRnSUNBZ1B5QmJZWEJ3VTNSaGRHVXVaV1JwZEdsdVowVnNaVzFsYm5SZFhHNGdJQ0FnT2lCblpYUlRaV3hsWTNSbFpFVnNaVzFsYm5SektHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTd2dkSEoxWlNrN1hHNGlYU3dpYm1GdFpYTWlPbHRkTENKemIzVnlZMlZTYjI5MElqb2lJbjA9XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL3NjZW5lL3NlbGVjdGlvbi50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vc2NlbmUvem9vbS50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL3NjZW5lL3pvb20udHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0Tm9ybWFsaXplZFpvb21cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXROb3JtYWxpemVkWm9vbSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0U3RhdGVGb3Jab29tXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0U3RhdGVGb3Jab29tKVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbmNvbnN0IGdldE5vcm1hbGl6ZWRab29tID0gKHpvb20pID0+IHtcXG4gICAgcmV0dXJuIE1hdGgubWF4KDAuMSwgTWF0aC5taW4oem9vbSwgMzApKTtcXG59O1xcbmNvbnN0IGdldFN0YXRlRm9yWm9vbSA9ICh7IHZpZXdwb3J0WCwgdmlld3BvcnRZLCBuZXh0Wm9vbSwgfSwgYXBwU3RhdGUpID0+IHtcXG4gICAgY29uc3QgYXBwTGF5ZXJYID0gdmlld3BvcnRYIC0gYXBwU3RhdGUub2Zmc2V0TGVmdDtcXG4gICAgY29uc3QgYXBwTGF5ZXJZID0gdmlld3BvcnRZIC0gYXBwU3RhdGUub2Zmc2V0VG9wO1xcbiAgICBjb25zdCBjdXJyZW50Wm9vbSA9IGFwcFN0YXRlLnpvb20udmFsdWU7XFxuICAgIC8vIGdldCBvcmlnaW5hbCBzY3JvbGwgcG9zaXRpb24gd2l0aG91dCB6b29tXFxuICAgIGNvbnN0IGJhc2VTY3JvbGxYID0gYXBwU3RhdGUuc2Nyb2xsWCArIChhcHBMYXllclggLSBhcHBMYXllclggLyBjdXJyZW50Wm9vbSk7XFxuICAgIGNvbnN0IGJhc2VTY3JvbGxZID0gYXBwU3RhdGUuc2Nyb2xsWSArIChhcHBMYXllclkgLSBhcHBMYXllclkgLyBjdXJyZW50Wm9vbSk7XFxuICAgIC8vIGdldCBzY3JvbGwgb2Zmc2V0cyBmb3IgdGFyZ2V0IHpvb20gbGV2ZWxcXG4gICAgY29uc3Qgem9vbU9mZnNldFNjcm9sbFggPSAtKGFwcExheWVyWCAtIGFwcExheWVyWCAvIG5leHRab29tKTtcXG4gICAgY29uc3Qgem9vbU9mZnNldFNjcm9sbFkgPSAtKGFwcExheWVyWSAtIGFwcExheWVyWSAvIG5leHRab29tKTtcXG4gICAgcmV0dXJuIHtcXG4gICAgICAgIHNjcm9sbFg6IGJhc2VTY3JvbGxYICsgem9vbU9mZnNldFNjcm9sbFgsXFxuICAgICAgICBzY3JvbGxZOiBiYXNlU2Nyb2xsWSArIHpvb21PZmZzZXRTY3JvbGxZLFxcbiAgICAgICAgem9vbToge1xcbiAgICAgICAgICAgIHZhbHVlOiBuZXh0Wm9vbSxcXG4gICAgICAgIH0sXFxuICAgIH07XFxufTtcXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dmMyTmxibVV2ZW05dmJTNTBjeTVxY3lJc0ltMWhjSEJwYm1keklqb2lPenM3T3p0QlFVVlBMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NRMEZCUXl4SlFVRlpMRVZCUVhWQ0xFVkJRVVU3U1VGRGNrVXNUMEZCVHl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQmQwSXNRMEZCUXp0QlFVTnNSU3hEUVVGRExFTkJRVU03UVVGRlN5eE5RVUZOTEdWQlFXVXNSMEZCUnl4RFFVTTNRaXhGUVVORkxGTkJRVk1zUlVGRFZDeFRRVUZUTEVWQlExUXNVVUZCVVN4SFFVdFVMRVZCUTBRc1VVRkJhMElzUlVGRGJFSXNSVUZCUlR0SlFVTkdMRTFCUVUwc1UwRkJVeXhIUVVGSExGTkJRVk1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RFFVRkRPMGxCUTJ4RUxFMUJRVTBzVTBGQlV5eEhRVUZITEZOQlFWTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1UwRkJVeXhEUVVGRE8wbEJSV3BFTEUxQlFVMHNWMEZCVnl4SFFVRkhMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETzBsQlJYaERMRFJEUVVFMFF6dEpRVU0xUXl4TlFVRk5MRmRCUVZjc1IwRkJSeXhSUVVGUkxFTkJRVU1zVDBGQlR5eEhRVUZITEVOQlFVTXNVMEZCVXl4SFFVRkhMRk5CUVZNc1IwRkJSeXhYUVVGWExFTkJRVU1zUTBGQlF6dEpRVU0zUlN4TlFVRk5MRmRCUVZjc1IwRkJSeXhSUVVGUkxFTkJRVU1zVDBGQlR5eEhRVUZITEVOQlFVTXNVMEZCVXl4SFFVRkhMRk5CUVZNc1IwRkJSeXhYUVVGWExFTkJRVU1zUTBGQlF6dEpRVVUzUlN3eVEwRkJNa003U1VGRE0wTXNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4SFFVRkhMRk5CUVZNc1IwRkJSeXhSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVU01UkN4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1UwRkJVeXhIUVVGSExGRkJRVkVzUTBGQlF5eERRVUZETzBsQlJUbEVMRTlCUVU4N1VVRkRUQ3hQUVVGUExFVkJRVVVzVjBGQlZ5eEhRVUZITEdsQ1FVRnBRanRSUVVONFF5eFBRVUZQTEVWQlFVVXNWMEZCVnl4SFFVRkhMR2xDUVVGcFFqdFJRVU40UXl4SlFVRkpMRVZCUVVVN1dVRkRTaXhMUVVGTExFVkJRVVVzVVVGQlVUdFRRVU5vUWp0TFFVTkdMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dmMyTmxibVV2ZW05dmJTNTBjejlpT1dObUlsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJRUZ3Y0ZOMFlYUmxMQ0JPYjNKdFlXeHBlbVZrV205dmJWWmhiSFZsSUgwZ1puSnZiU0JjSWk0dUwzUjVjR1Z6WENJN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCblpYUk9iM0p0WVd4cGVtVmtXbTl2YlNBOUlDaDZiMjl0T2lCdWRXMWlaWElwT2lCT2IzSnRZV3hwZW1Wa1dtOXZiVlpoYkhWbElEMCtJSHRjYmlBZ2NtVjBkWEp1SUUxaGRHZ3ViV0Y0S0RBdU1Td2dUV0YwYUM1dGFXNG9lbTl2YlN3Z016QXBLU0JoY3lCT2IzSnRZV3hwZW1Wa1dtOXZiVlpoYkhWbE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2RsZEZOMFlYUmxSbTl5V205dmJTQTlJQ2hjYmlBZ2UxeHVJQ0FnSUhacFpYZHdiM0owV0N4Y2JpQWdJQ0IyYVdWM2NHOXlkRmtzWEc0Z0lDQWdibVY0ZEZwdmIyMHNYRzRnSUgwNklIdGNiaUFnSUNCMmFXVjNjRzl5ZEZnNklHNTFiV0psY2p0Y2JpQWdJQ0IyYVdWM2NHOXlkRms2SUc1MWJXSmxjanRjYmlBZ0lDQnVaWGgwV205dmJUb2dUbTl5YldGc2FYcGxaRnB2YjIxV1lXeDFaVHRjYmlBZ2ZTeGNiaUFnWVhCd1UzUmhkR1U2SUVGd2NGTjBZWFJsTEZ4dUtTQTlQaUI3WEc0Z0lHTnZibk4wSUdGd2NFeGhlV1Z5V0NBOUlIWnBaWGR3YjNKMFdDQXRJR0Z3Y0ZOMFlYUmxMbTltWm5ObGRFeGxablE3WEc0Z0lHTnZibk4wSUdGd2NFeGhlV1Z5V1NBOUlIWnBaWGR3YjNKMFdTQXRJR0Z3Y0ZOMFlYUmxMbTltWm5ObGRGUnZjRHRjYmx4dUlDQmpiMjV6ZENCamRYSnlaVzUwV205dmJTQTlJR0Z3Y0ZOMFlYUmxMbnB2YjIwdWRtRnNkV1U3WEc1Y2JpQWdMeThnWjJWMElHOXlhV2RwYm1Gc0lITmpjbTlzYkNCd2IzTnBkR2x2YmlCM2FYUm9iM1YwSUhwdmIyMWNiaUFnWTI5dWMzUWdZbUZ6WlZOamNtOXNiRmdnUFNCaGNIQlRkR0YwWlM1elkzSnZiR3hZSUNzZ0tHRndjRXhoZVdWeVdDQXRJR0Z3Y0V4aGVXVnlXQ0F2SUdOMWNuSmxiblJhYjI5dEtUdGNiaUFnWTI5dWMzUWdZbUZ6WlZOamNtOXNiRmtnUFNCaGNIQlRkR0YwWlM1elkzSnZiR3haSUNzZ0tHRndjRXhoZVdWeVdTQXRJR0Z3Y0V4aGVXVnlXU0F2SUdOMWNuSmxiblJhYjI5dEtUdGNibHh1SUNBdkx5Qm5aWFFnYzJOeWIyeHNJRzltWm5ObGRITWdabTl5SUhSaGNtZGxkQ0I2YjI5dElHeGxkbVZzWEc0Z0lHTnZibk4wSUhwdmIyMVBabVp6WlhSVFkzSnZiR3hZSUQwZ0xTaGhjSEJNWVhsbGNsZ2dMU0JoY0hCTVlYbGxjbGdnTHlCdVpYaDBXbTl2YlNrN1hHNGdJR052Ym5OMElIcHZiMjFQWm1aelpYUlRZM0p2Ykd4WklEMGdMU2hoY0hCTVlYbGxjbGtnTFNCaGNIQk1ZWGxsY2xrZ0x5QnVaWGgwV205dmJTazdYRzVjYmlBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0J6WTNKdmJHeFlPaUJpWVhObFUyTnliMnhzV0NBcklIcHZiMjFQWm1aelpYUlRZM0p2Ykd4WUxGeHVJQ0FnSUhOamNtOXNiRms2SUdKaGMyVlRZM0p2Ykd4WklDc2dlbTl2YlU5bVpuTmxkRk5qY205c2JGa3NYRzRnSUNBZ2VtOXZiVG9nZTF4dUlDQWdJQ0FnZG1Gc2RXVTZJRzVsZUhSYWIyOXRMRnh1SUNBZ0lIMHNYRzRnSUgwN1hHNTlPMXh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi9zY2VuZS96b29tLnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9zaGFwZXMudHN4XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vc2hhcGVzLnRzeCAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJTSEFQRVNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBTSEFQRVMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImZpbmRTaGFwZUJ5S2V5XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZmluZFNoYXBlQnlLZXkpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISByZWFjdC9qc3gtcnVudGltZSAqLyBcXFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2tleXMgKi8gXFxcIi4uLy4uL2tleXMudHNcXFwiKTtcXG5cXG5cXG4vLyBXZSBpbmxpbmUgZm9udC1hd2Vzb21lIGljb25zIGluIG9yZGVyIHRvIHNhdmUgb24ganMgc2l6ZSByYXRoZXIgdGhhbiBpbmNsdWRpbmcgdGhlIGZvbnQgYXdlc29tZSByZWFjdCBsaWJyYXJ5XFxuY29uc3QgU0hBUEVTID0gW1xcbiAgICB7XFxuICAgICAgICBpY29uOiAoXFxuICAgICAgICAvLyBmYS1tb3VzZS1wb2ludGVyXFxuICAgICAgICAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInN2Z1xcXCIsIE9iamVjdC5hc3NpZ24oeyB2aWV3Qm94OiBcXFwiMCAwIDMyMCA1MTJcXFwiLCBjbGFzc05hbWU6IFxcXCJcXFwiIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk0zMDIuMTg5IDMyOS4xMjZIMTk2LjEwNWw1NS44MzEgMTM1Ljk5M2MzLjg4OSA5LjQyOC0uNTU1IDE5Ljk5OS05LjQ0NCAyMy45OTlsLTQ5LjE2NSAyMS40MjdjLTkuMTY1IDQtMTkuNDQzLS41NzEtMjMuMzMyLTkuNzE0bC01My4wNTMtMTI5LjEzNi04Ni42NjQgODkuMTM4QzE4LjcyOSA0NzIuNzEgMCA0NjMuNTU0IDAgNDQ3Ljk3N1YxOC4yOTlDMCAxLjg5OSAxOS45MjEtNi4wOTYgMzAuMjc3IDUuNDQzbDI4NC40MTIgMjkyLjU0MmMxMS40NzIgMTEuMTc5IDMuMDA3IDMxLjE0MS0xMi41IDMxLjE0MXpcXFwiIH0sIHZvaWQgMCkgfSksIHZvaWQgMCkpLFxcbiAgICAgICAgdmFsdWU6IFxcXCJzZWxlY3Rpb25cXFwiLFxcbiAgICAgICAga2V5OiBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLktFWVMuVixcXG4gICAgfSxcXG4gICAge1xcbiAgICAgICAgaWNvbjogKFxcbiAgICAgICAgLy8gZmEtc3F1YXJlXFxuICAgICAgICAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInN2Z1xcXCIsIE9iamVjdC5hc3NpZ24oeyB2aWV3Qm94OiBcXFwiMCAwIDQ0OCA1MTJcXFwiIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwicGF0aFxcXCIsIHsgZDogXFxcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4elxcXCIgfSwgdm9pZCAwKSB9KSwgdm9pZCAwKSksXFxuICAgICAgICB2YWx1ZTogXFxcInJlY3RhbmdsZVxcXCIsXFxuICAgICAgICBrZXk6IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uS0VZUy5SLFxcbiAgICB9LFxcbiAgICB7XFxuICAgICAgICBpY29uOiAoXFxuICAgICAgICAvLyBjdXN0b21cXG4gICAgICAgICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3ZnXFxcIiwgT2JqZWN0LmFzc2lnbih7IHZpZXdCb3g6IFxcXCIwIDAgMjIzLjY0NiAyMjMuNjQ2XFxcIiB9LCB7IGNoaWxkcmVuOiAoMCxyZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeCkoXFxcInBhdGhcXFwiLCB7IGQ6IFxcXCJNMTExLjgyMyAwTDE2LjYyMiAxMTEuODIzIDExMS44MjMgMjIzLjY0NiAyMDcuMDI1IDExMS44MjN6XFxcIiB9LCB2b2lkIDApIH0pLCB2b2lkIDApKSxcXG4gICAgICAgIHZhbHVlOiBcXFwiZGlhbW9uZFxcXCIsXFxuICAgICAgICBrZXk6IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uS0VZUy5ELFxcbiAgICB9LFxcbiAgICB7XFxuICAgICAgICBpY29uOiAoXFxuICAgICAgICAvLyBmYS1jaXJjbGVcXG4gICAgICAgICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3ZnXFxcIiwgT2JqZWN0LmFzc2lnbih7IHZpZXdCb3g6IFxcXCIwIDAgNTEyIDUxMlxcXCIgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6XFxcIiB9LCB2b2lkIDApIH0pLCB2b2lkIDApKSxcXG4gICAgICAgIHZhbHVlOiBcXFwiZWxsaXBzZVxcXCIsXFxuICAgICAgICBrZXk6IF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uS0VZUy5FLFxcbiAgICB9LFxcbiAgICB7XFxuICAgICAgICBpY29uOiAoXFxuICAgICAgICAvLyBmYS1sb25nLWFycm93LWFsdC1yaWdodFxcbiAgICAgICAgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJzdmdcXFwiLCBPYmplY3QuYXNzaWduKHsgdmlld0JveDogXFxcIjAgMCA0NDggNTEyXFxcIiwgY2xhc3NOYW1lOiBcXFwicnRsLW1pcnJvclxcXCIgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTMxMy45NDEgMjE2SDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjU2YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMzAxLjk0MXY0Ni4wNTljMCAyMS4zODIgMjUuODUxIDMyLjA5IDQwLjk3MSAxNi45NzFsODYuMDU5LTg2LjA1OWM5LjM3My05LjM3MyA5LjM3My0yNC41NjkgMC0zMy45NDFsLTg2LjA1OS04Ni4wNTljLTE1LjExOS0xNS4xMTktNDAuOTcxLTQuNDExLTQwLjk3MSAxNi45NzFWMjE2elxcXCIgfSwgdm9pZCAwKSB9KSwgdm9pZCAwKSksXFxuICAgICAgICB2YWx1ZTogXFxcImFycm93XFxcIixcXG4gICAgICAgIGtleTogX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5LRVlTLkEsXFxuICAgIH0sXFxuICAgIHtcXG4gICAgICAgIGljb246IChcXG4gICAgICAgIC8vIGN1c3RvbVxcbiAgICAgICAgKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJzdmdcXFwiLCBPYmplY3QuYXNzaWduKHsgdmlld0JveDogXFxcIjAgMCA2IDZcXFwiIH0sIHsgY2hpbGRyZW46ICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwibGluZVxcXCIsIHsgeDE6IFxcXCIwXFxcIiwgeTE6IFxcXCIzXFxcIiwgeDI6IFxcXCI2XFxcIiwgeTI6IFxcXCIzXFxcIiwgc3Ryb2tlOiBcXFwiY3VycmVudENvbG9yXFxcIiwgc3Ryb2tlTGluZWNhcDogXFxcInJvdW5kXFxcIiB9LCB2b2lkIDApIH0pLCB2b2lkIDApKSxcXG4gICAgICAgIHZhbHVlOiBcXFwibGluZVxcXCIsXFxuICAgICAgICBrZXk6IFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLktFWVMuUCwgX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5LRVlTLkxdLFxcbiAgICB9LFxcbiAgICB7XFxuICAgICAgICBpY29uOiAoXFxuICAgICAgICAvLyBmYS1wZW5jaWxcXG4gICAgICAgICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3ZnXFxcIiwgT2JqZWN0LmFzc2lnbih7IHZpZXdCb3g6IFxcXCIwIDAgNTEyIDUxMlxcXCIgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBmaWxsOiBcXFwiY3VycmVudENvbG9yXFxcIiwgZDogXFxcIk0yOTAuNzQgOTMuMjRsMTI4LjAyIDEyOC4wMi0yNzcuOTkgMjc3Ljk5LTExNC4xNCAxMi42QzExLjM1IDUxMy41NC0xLjU2IDUwMC42Mi4xNCA0ODUuMzRsMTIuNy0xMTQuMjIgMjc3LjktMjc3Ljg4em0yMDcuMi0xOS4wNmwtNjAuMTEtNjAuMTFjLTE4Ljc1LTE4Ljc1LTQ5LjE2LTE4Ljc1LTY3LjkxIDBsLTU2LjU1IDU2LjU1IDEyOC4wMiAxMjguMDIgNTYuNTUtNTYuNTVjMTguNzUtMTguNzYgMTguNzUtNDkuMTYgMC02Ny45MXpcXFwiIH0sIHZvaWQgMCkgfSksIHZvaWQgMCkpLFxcbiAgICAgICAgdmFsdWU6IFxcXCJmcmVlZHJhd1xcXCIsXFxuICAgICAgICBrZXk6IFtfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLktFWVMuWCwgX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5LRVlTLlAudG9VcHBlckNhc2UoKV0sXFxuICAgIH0sXFxuICAgIHtcXG4gICAgICAgIGljb246IChcXG4gICAgICAgIC8vIGZhLWZvbnRcXG4gICAgICAgICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3ZnXFxcIiwgT2JqZWN0LmFzc2lnbih7IHZpZXdCb3g6IFxcXCIwIDAgNDQ4IDUxMlxcXCIgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBkOiBcXFwiTTQzMiA0MTZoLTIzLjQxTDI3Ny44OCA1My42OUEzMiAzMiAwIDAgMCAyNDcuNTggMzJoLTQ3LjE2YTMyIDMyIDAgMCAwLTMwLjMgMjEuNjlMMzkuNDEgNDE2SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTE5LjU4bDIzLjMtNjRoMTUyLjU2bDIzLjMgNjRIMzA0YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6TTE3Ni44NSAyNzJMMjI0IDE0Mi41MSAyNzEuMTUgMjcyelxcXCIgfSwgdm9pZCAwKSB9KSwgdm9pZCAwKSksXFxuICAgICAgICB2YWx1ZTogXFxcInRleHRcXFwiLFxcbiAgICAgICAga2V5OiBfa2V5c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLktFWVMuVCxcXG4gICAgfSxcXG4gICAge1xcbiAgICAgICAgaWNvbjogKFxcbiAgICAgICAgLy8gZmEtaW1hZ2VcXG4gICAgICAgICgwLHJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KShcXFwic3ZnXFxcIiwgT2JqZWN0LmFzc2lnbih7IHZpZXdCb3g6IFxcXCIwIDAgNTEyIDUxMlxcXCIgfSwgeyBjaGlsZHJlbjogKDAscmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3gpKFxcXCJwYXRoXFxcIiwgeyBmaWxsOiBcXFwiY3VycmVudENvbG9yXFxcIiwgZDogXFxcIk00NjQgNjRINDhDMjEuNDkgNjQgMCA4NS40OSAwIDExMnYyODhjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg0MTZjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYxMTJjMC0yNi41MS0yMS40OS00OC00OC00OHptLTYgMzM2SDU0YTYgNiAwIDAgMS02LTZWMTE4YTYgNiAwIDAgMSA2LTZoNDA0YTYgNiAwIDAgMSA2IDZ2Mjc2YTYgNiAwIDAgMS02IDZ6TTEyOCAxNTJjLTIyLjA5MSAwLTQwIDE3LjkwOS00MCA0MHMxNy45MDkgNDAgNDAgNDAgNDAtMTcuOTA5IDQwLTQwLTE3LjkwOS00MC00MC00MHpNOTYgMzUyaDMyMHYtODBsLTg3LjUxNS04Ny41MTVjLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEwxOTIgMzA0bC0zOS41MTUtMzkuNTE1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMOTYgMzA0djQ4elxcXCIgfSwgdm9pZCAwKSB9KSwgdm9pZCAwKSksXFxuICAgICAgICB2YWx1ZTogXFxcImltYWdlXFxcIixcXG4gICAgICAgIGtleTogbnVsbCxcXG4gICAgfSxcXG5dO1xcbmNvbnN0IGZpbmRTaGFwZUJ5S2V5ID0gKGtleSkgPT4ge1xcbiAgICBjb25zdCBzaGFwZSA9IFNIQVBFUy5maW5kKChzaGFwZSwgaW5kZXgpID0+IHtcXG4gICAgICAgIHJldHVybiAoa2V5ID09PSAoaW5kZXggKyAxKS50b1N0cmluZygpIHx8XFxuICAgICAgICAgICAgKHNoYXBlLmtleSAmJlxcbiAgICAgICAgICAgICAgICAodHlwZW9mIHNoYXBlLmtleSA9PT0gXFxcInN0cmluZ1xcXCJcXG4gICAgICAgICAgICAgICAgICAgID8gc2hhcGUua2V5ID09PSBrZXlcXG4gICAgICAgICAgICAgICAgICAgIDogc2hhcGUua2V5LmluY2x1ZGVzKGtleSkpKSk7XFxuICAgIH0pO1xcbiAgICByZXR1cm4gKHNoYXBlID09PSBudWxsIHx8IHNoYXBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzaGFwZS52YWx1ZSkgfHwgbnVsbDtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2YzJoaGNHVnpMblJ6ZUM1cWN5SXNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenRCUVVFNFFqdEJRVVU1UWl4blNFRkJaMGc3UVVGRGVrY3NUVUZCVFN4TlFVRk5MRWRCUVVjN1NVRkRjRUk3VVVGRFJTeEpRVUZKTEVWQlFVVTdVVUZEU2l4dFFrRkJiVUk3VVVGRGJrSXNPRVZCUVVzc1QwRkJUeXhGUVVGRExHRkJRV0VzUlVGQlF5eFRRVUZUTEVWQlFVTXNSVUZCUlN4blFrRkRja01zYVVWQlFVMHNRMEZCUXl4RlFVRkRMR2RUUVVGblV5eFhRVUZITEZsQlEzWlRMRU5CUTFBN1VVRkRSQ3hMUVVGTExFVkJRVVVzVjBGQlZ6dFJRVU5zUWl4SFFVRkhMRVZCUVVVc2VVTkJRVTA3UzBGRFdqdEpRVU5FTzFGQlEwVXNTVUZCU1N4RlFVRkZPMUZCUTBvc1dVRkJXVHRSUVVOYUxEaEZRVUZMTEU5QlFVOHNSVUZCUXl4aFFVRmhMR2RDUVVONFFpeHBSVUZCVFN4RFFVRkRMRVZCUVVNc01rZEJRVEpITEZkQlFVY3NXVUZEYkVnc1EwRkRVRHRSUVVORUxFdEJRVXNzUlVGQlJTeFhRVUZYTzFGQlEyeENMRWRCUVVjc1JVRkJSU3g1UTBGQlRUdExRVU5hTzBsQlEwUTdVVUZEUlN4SlFVRkpMRVZCUVVVN1VVRkRTaXhUUVVGVE8xRkJRMVFzT0VWQlFVc3NUMEZCVHl4RlFVRkRMSEZDUVVGeFFpeG5Ra0ZEYUVNc2FVVkJRVTBzUTBGQlF5eEZRVUZETERSRVFVRTBSQ3hYUVVGSExGbEJRMjVGTEVOQlExQTdVVUZEUkN4TFFVRkxMRVZCUVVVc1UwRkJVenRSUVVOb1FpeEhRVUZITEVWQlFVVXNlVU5CUVUwN1MwRkRXanRKUVVORU8xRkJRMFVzU1VGQlNTeEZRVUZGTzFGQlEwb3NXVUZCV1R0UlFVTmFMRGhGUVVGTExFOUJRVThzUlVGQlF5eGhRVUZoTEdkQ1FVTjRRaXhwUlVGQlRTeERRVUZETEVWQlFVTXNkVVZCUVhWRkxGZEJRVWNzV1VGRE9VVXNRMEZEVUR0UlFVTkVMRXRCUVVzc1JVRkJSU3hUUVVGVE8xRkJRMmhDTEVkQlFVY3NSVUZCUlN4NVEwRkJUVHRMUVVOYU8wbEJRMFE3VVVGRFJTeEpRVUZKTEVWQlFVVTdVVUZEU2l3d1FrRkJNRUk3VVVGRE1VSXNPRVZCUVVzc1QwRkJUeXhGUVVGRExHRkJRV0VzUlVGQlF5eFRRVUZUTEVWQlFVTXNXVUZCV1N4blFrRkRMME1zYVVWQlFVMHNRMEZCUXl4RlFVRkRMRzlQUVVGdlR5eFhRVUZITEZsQlF6TlBMRU5CUTFBN1VVRkRSQ3hMUVVGTExFVkJRVVVzVDBGQlR6dFJRVU5rTEVkQlFVY3NSVUZCUlN4NVEwRkJUVHRMUVVOYU8wbEJRMFE3VVVGRFJTeEpRVUZKTEVWQlFVVTdVVUZEU2l4VFFVRlRPMUZCUTFRc09FVkJRVXNzVDBGQlR5eEZRVUZETEZOQlFWTXNaMEpCUTNCQ0xHbEZRVU5GTEVWQlFVVXNSVUZCUXl4SFFVRkhMRVZCUTA0c1JVRkJSU3hGUVVGRExFZEJRVWNzUlVGRFRpeEZRVUZGTEVWQlFVTXNSMEZCUnl4RlFVTk9MRVZCUVVVc1JVRkJReXhIUVVGSExFVkJRMDRzVFVGQlRTeEZRVUZETEdOQlFXTXNSVUZEY2tJc1lVRkJZU3hGUVVGRExFOUJRVThzVjBGRGNrSXNXVUZEUlN4RFFVTlFPMUZCUTBRc1MwRkJTeXhGUVVGRkxFMUJRVTA3VVVGRFlpeEhRVUZITEVWQlFVVXNRMEZCUXl4NVEwRkJUU3hGUVVGRkxIbERRVUZOTEVOQlFVTTdTMEZEZEVJN1NVRkRSRHRSUVVORkxFbEJRVWtzUlVGQlJUdFJRVU5LTEZsQlFWazdVVUZEV2l3NFJVRkJTeXhQUVVGUExFVkJRVU1zWVVGQllTeG5Ra0ZEZUVJc2FVVkJRMFVzU1VGQlNTeEZRVUZETEdOQlFXTXNSVUZEYmtJc1EwRkJReXhGUVVGRExITlFRVUZ6VUN4WFFVTnNVQ3haUVVOS0xFTkJRMUE3VVVGRFJDeExRVUZMTEVWQlFVVXNWVUZCVlR0UlFVTnFRaXhIUVVGSExFVkJRVVVzUTBGQlF5eDVRMEZCVFN4RlFVRkZMSEZFUVVGclFpeEZRVUZGTEVOQlFVTTdTMEZEY0VNN1NVRkRSRHRSUVVORkxFbEJRVWtzUlVGQlJUdFJRVU5LTEZWQlFWVTdVVUZEVml3NFJVRkJTeXhQUVVGUExFVkJRVU1zWVVGQllTeG5Ra0ZEZUVJc2FVVkJRVTBzUTBGQlF5eEZRVUZETERCVlFVRXdWU3hYUVVGSExGbEJRMnBXTEVOQlExQTdVVUZEUkN4TFFVRkxMRVZCUVVVc1RVRkJUVHRSUVVOaUxFZEJRVWNzUlVGQlJTeDVRMEZCVFR0TFFVTmFPMGxCUTBRN1VVRkRSU3hKUVVGSkxFVkJRVVU3VVVGRFNpeFhRVUZYTzFGQlExZ3NPRVZCUVVzc1QwRkJUeXhGUVVGRExHRkJRV0VzWjBKQlEzaENMR2xGUVVORkxFbEJRVWtzUlVGQlF5eGpRVUZqTEVWQlEyNUNMRU5CUVVNc1JVRkJReXcyV2tGQk5sb3NWMEZEZWxvc1dVRkRTaXhEUVVOUU8xRkJRMFFzUzBGQlN5eEZRVUZGTEU5QlFVODdVVUZEWkN4SFFVRkhMRVZCUVVVc1NVRkJTVHRMUVVOV08wTkJRMDhzUTBGQlF6dEJRVVZLTEUxQlFVMHNZMEZCWXl4SFFVRkhMRU5CUVVNc1IwRkJWeXhGUVVGRkxFVkJRVVU3U1VGRE5VTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSVHRSUVVONlF5eFBRVUZQTEVOQlEwd3NSMEZCUnl4TFFVRkxMRU5CUVVNc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNSVUZCUlR0WlFVTTVRaXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITzJkQ1FVTlNMRU5CUVVNc1QwRkJUeXhMUVVGTExFTkJRVU1zUjBGQlJ5eExRVUZMTEZGQlFWRTdiMEpCUXpWQ0xFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4TFFVRkxMRWRCUVVjN2IwSkJRMjVDTEVOQlFVTXNRMEZCUlN4TFFVRkxMRU5CUVVNc1IwRkJlVUlzUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVOMlJDeERRVUZETzBsQlEwb3NRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRTQ3hQUVVGUExFMUJRVXNzWVVGQlRDeExRVUZMTEhWQ1FVRk1MRXRCUVVzc1EwRkJSU3hMUVVGTExFdEJRVWtzU1VGQlNTeERRVUZETzBGQlF6bENMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk5emFHRndaWE11ZEhONFAySTBNMk1pWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ1MwVlpVeUI5SUdaeWIyMGdYQ0l1TDJ0bGVYTmNJanRjYmx4dUx5OGdWMlVnYVc1c2FXNWxJR1p2Ym5RdFlYZGxjMjl0WlNCcFkyOXVjeUJwYmlCdmNtUmxjaUIwYnlCellYWmxJRzl1SUdweklITnBlbVVnY21GMGFHVnlJSFJvWVc0Z2FXNWpiSFZrYVc1bklIUm9aU0JtYjI1MElHRjNaWE52YldVZ2NtVmhZM1FnYkdsaWNtRnllVnh1Wlhod2IzSjBJR052Ym5OMElGTklRVkJGVXlBOUlGdGNiaUFnZTF4dUlDQWdJR2xqYjI0NklDaGNiaUFnSUNBZ0lDOHZJR1poTFcxdmRYTmxMWEJ2YVc1MFpYSmNiaUFnSUNBZ0lEeHpkbWNnZG1sbGQwSnZlRDFjSWpBZ01DQXpNakFnTlRFeVhDSWdZMnhoYzNOT1lXMWxQVndpWENJK1hHNGdJQ0FnSUNBZ0lEeHdZWFJvSUdROVhDSk5NekF5TGpFNE9TQXpNamt1TVRJMlNERTVOaTR4TURWc05UVXVPRE14SURFek5TNDVPVE5qTXk0NE9Ea2dPUzQwTWpndExqVTFOU0F4T1M0NU9Ua3RPUzQwTkRRZ01qTXVPVGs1YkMwME9TNHhOalVnTWpFdU5ESTNZeTA1TGpFMk5TQTBMVEU1TGpRME15MHVOVGN4TFRJekxqTXpNaTA1TGpjeE5Hd3ROVE11TURVekxURXlPUzR4TXpZdE9EWXVOalkwSURnNUxqRXpPRU14T0M0M01qa2dORGN5TGpjeElEQWdORFl6TGpVMU5DQXdJRFEwTnk0NU56ZFdNVGd1TWprNVF6QWdNUzQ0T1RrZ01Ua3VPVEl4TFRZdU1EazJJRE13TGpJM055QTFMalEwTTJ3eU9EUXVOREV5SURJNU1pNDFOREpqTVRFdU5EY3lJREV4TGpFM09TQXpMakF3TnlBek1TNHhOREV0TVRJdU5TQXpNUzR4TkRGNlhDSWdMejVjYmlBZ0lDQWdJRHd2YzNablBseHVJQ0FnSUNrc1hHNGdJQ0FnZG1Gc2RXVTZJRndpYzJWc1pXTjBhVzl1WENJc1hHNGdJQ0FnYTJWNU9pQkxSVmxUTGxZc1hHNGdJSDBzWEc0Z0lIdGNiaUFnSUNCcFkyOXVPaUFvWEc0Z0lDQWdJQ0F2THlCbVlTMXpjWFZoY21WY2JpQWdJQ0FnSUR4emRtY2dkbWxsZDBKdmVEMWNJakFnTUNBME5EZ2dOVEV5WENJK1hHNGdJQ0FnSUNBZ0lEeHdZWFJvSUdROVhDSk5OREF3SURNeVNEUTRRekl4TGpVZ016SWdNQ0ExTXk0MUlEQWdPREIyTXpVeVl6QWdNall1TlNBeU1TNDFJRFE0SURRNElEUTRhRE0xTW1NeU5pNDFJREFnTkRndE1qRXVOU0EwT0MwME9GWTRNR013TFRJMkxqVXRNakV1TlMwME9DMDBPQzAwT0hwY0lpQXZQbHh1SUNBZ0lDQWdQQzl6ZG1jK1hHNGdJQ0FnS1N4Y2JpQWdJQ0IyWVd4MVpUb2dYQ0p5WldOMFlXNW5iR1ZjSWl4Y2JpQWdJQ0JyWlhrNklFdEZXVk11VWl4Y2JpQWdmU3hjYmlBZ2UxeHVJQ0FnSUdsamIyNDZJQ2hjYmlBZ0lDQWdJQzh2SUdOMWMzUnZiVnh1SUNBZ0lDQWdQSE4yWnlCMmFXVjNRbTk0UFZ3aU1DQXdJREl5TXk0Mk5EWWdNakl6TGpZME5sd2lQbHh1SUNBZ0lDQWdJQ0E4Y0dGMGFDQmtQVndpVFRFeE1TNDRNak1nTUV3eE5pNDJNaklnTVRFeExqZ3lNeUF4TVRFdU9ESXpJREl5TXk0Mk5EWWdNakEzTGpBeU5TQXhNVEV1T0RJemVsd2lJQzgrWEc0Z0lDQWdJQ0E4TDNOMlp6NWNiaUFnSUNBcExGeHVJQ0FnSUhaaGJIVmxPaUJjSW1ScFlXMXZibVJjSWl4Y2JpQWdJQ0JyWlhrNklFdEZXVk11UkN4Y2JpQWdmU3hjYmlBZ2UxeHVJQ0FnSUdsamIyNDZJQ2hjYmlBZ0lDQWdJQzh2SUdaaExXTnBjbU5zWlZ4dUlDQWdJQ0FnUEhOMlp5QjJhV1YzUW05NFBWd2lNQ0F3SURVeE1pQTFNVEpjSWo1Y2JpQWdJQ0FnSUNBZ1BIQmhkR2dnWkQxY0lrMHlOVFlnT0VNeE1Ua2dPQ0E0SURFeE9TQTRJREkxTm5NeE1URWdNalE0SURJME9DQXlORGdnTWpRNExURXhNU0F5TkRndE1qUTRVek01TXlBNElESTFOaUE0ZWx3aUlDOCtYRzRnSUNBZ0lDQThMM04yWno1Y2JpQWdJQ0FwTEZ4dUlDQWdJSFpoYkhWbE9pQmNJbVZzYkdsd2MyVmNJaXhjYmlBZ0lDQnJaWGs2SUV0RldWTXVSU3hjYmlBZ2ZTeGNiaUFnZTF4dUlDQWdJR2xqYjI0NklDaGNiaUFnSUNBZ0lDOHZJR1poTFd4dmJtY3RZWEp5YjNjdFlXeDBMWEpwWjJoMFhHNGdJQ0FnSUNBOGMzWm5JSFpwWlhkQ2IzZzlYQ0l3SURBZ05EUTRJRFV4TWx3aUlHTnNZWE56VG1GdFpUMWNJbkowYkMxdGFYSnliM0pjSWo1Y2JpQWdJQ0FnSUNBZ1BIQmhkR2dnWkQxY0lrMHpNVE11T1RReElESXhOa2d4TW1NdE5pNDJNamNnTUMweE1pQTFMak0zTXkweE1pQXhNblkxTm1Nd0lEWXVOakkzSURVdU16Y3pJREV5SURFeUlERXlhRE13TVM0NU5ERjJORFl1TURVNVl6QWdNakV1TXpneUlESTFMamcxTVNBek1pNHdPU0EwTUM0NU56RWdNVFl1T1RjeGJEZzJMakExT1MwNE5pNHdOVGxqT1M0ek56TXRPUzR6TnpNZ09TNHpOek10TWpRdU5UWTVJREF0TXpNdU9UUXhiQzA0Tmk0d05Ua3RPRFl1TURVNVl5MHhOUzR4TVRrdE1UVXVNVEU1TFRRd0xqazNNUzAwTGpReE1TMDBNQzQ1TnpFZ01UWXVPVGN4VmpJeE5ucGNJaUF2UGx4dUlDQWdJQ0FnUEM5emRtYytYRzRnSUNBZ0tTeGNiaUFnSUNCMllXeDFaVG9nWENKaGNuSnZkMXdpTEZ4dUlDQWdJR3RsZVRvZ1MwVlpVeTVCTEZ4dUlDQjlMRnh1SUNCN1hHNGdJQ0FnYVdOdmJqb2dLRnh1SUNBZ0lDQWdMeThnWTNWemRHOXRYRzRnSUNBZ0lDQThjM1puSUhacFpYZENiM2c5WENJd0lEQWdOaUEyWENJK1hHNGdJQ0FnSUNBZ0lEeHNhVzVsWEc0Z0lDQWdJQ0FnSUNBZ2VERTlYQ0l3WENKY2JpQWdJQ0FnSUNBZ0lDQjVNVDFjSWpOY0lseHVJQ0FnSUNBZ0lDQWdJSGd5UFZ3aU5sd2lYRzRnSUNBZ0lDQWdJQ0FnZVRJOVhDSXpYQ0pjYmlBZ0lDQWdJQ0FnSUNCemRISnZhMlU5WENKamRYSnlaVzUwUTI5c2IzSmNJbHh1SUNBZ0lDQWdJQ0FnSUhOMGNtOXJaVXhwYm1WallYQTlYQ0p5YjNWdVpGd2lYRzRnSUNBZ0lDQWdJQzgrWEc0Z0lDQWdJQ0E4TDNOMlp6NWNiaUFnSUNBcExGeHVJQ0FnSUhaaGJIVmxPaUJjSW14cGJtVmNJaXhjYmlBZ0lDQnJaWGs2SUZ0TFJWbFRMbEFzSUV0RldWTXVURjBzWEc0Z0lIMHNYRzRnSUh0Y2JpQWdJQ0JwWTI5dU9pQW9YRzRnSUNBZ0lDQXZMeUJtWVMxd1pXNWphV3hjYmlBZ0lDQWdJRHh6ZG1jZ2RtbGxkMEp2ZUQxY0lqQWdNQ0ExTVRJZ05URXlYQ0krWEc0Z0lDQWdJQ0FnSUR4d1lYUm9YRzRnSUNBZ0lDQWdJQ0FnWm1sc2JEMWNJbU4xY25KbGJuUkRiMnh2Y2x3aVhHNGdJQ0FnSUNBZ0lDQWdaRDFjSWsweU9UQXVOelFnT1RNdU1qUnNNVEk0TGpBeUlERXlPQzR3TWkweU56Y3VPVGtnTWpjM0xqazVMVEV4TkM0eE5DQXhNaTQyUXpFeExqTTFJRFV4TXk0MU5DMHhMalUySURVd01DNDJNaTR4TkNBME9EVXVNelJzTVRJdU55MHhNVFF1TWpJZ01qYzNMamt0TWpjM0xqZzRlbTB5TURjdU1pMHhPUzR3Tm13dE5qQXVNVEV0TmpBdU1URmpMVEU0TGpjMUxURTRMamMxTFRRNUxqRTJMVEU0TGpjMUxUWTNMamt4SURCc0xUVTJMalUxSURVMkxqVTFJREV5T0M0d01pQXhNamd1TURJZ05UWXVOVFV0TlRZdU5UVmpNVGd1TnpVdE1UZ3VOellnTVRndU56VXRORGt1TVRZZ01DMDJOeTQ1TVhwY0lseHVJQ0FnSUNBZ0lDQStQQzl3WVhSb1BseHVJQ0FnSUNBZ1BDOXpkbWMrWEc0Z0lDQWdLU3hjYmlBZ0lDQjJZV3gxWlRvZ1hDSm1jbVZsWkhKaGQxd2lMRnh1SUNBZ0lHdGxlVG9nVzB0RldWTXVXQ3dnUzBWWlV5NVFMblJ2VlhCd1pYSkRZWE5sS0NsZExGeHVJQ0I5TEZ4dUlDQjdYRzRnSUNBZ2FXTnZiam9nS0Z4dUlDQWdJQ0FnTHk4Z1ptRXRabTl1ZEZ4dUlDQWdJQ0FnUEhOMlp5QjJhV1YzUW05NFBWd2lNQ0F3SURRME9DQTFNVEpjSWo1Y2JpQWdJQ0FnSUNBZ1BIQmhkR2dnWkQxY0lrMDBNeklnTkRFMmFDMHlNeTQwTVV3eU56Y3VPRGdnTlRNdU5qbEJNeklnTXpJZ01DQXdJREFnTWpRM0xqVTRJRE15YUMwME55NHhObUV6TWlBek1pQXdJREFnTUMwek1DNHpJREl4TGpZNVRETTVMalF4SURReE5rZ3hObUV4TmlBeE5pQXdJREFnTUMweE5pQXhObll6TW1FeE5pQXhOaUF3SURBZ01DQXhOaUF4Tm1neE1qaGhNVFlnTVRZZ01DQXdJREFnTVRZdE1UWjJMVE15WVRFMklERTJJREFnTUNBd0xURTJMVEUyYUMweE9TNDFPR3d5TXk0ekxUWTBhREUxTWk0MU5td3lNeTR6SURZMFNETXdOR0V4TmlBeE5pQXdJREFnTUMweE5pQXhObll6TW1FeE5pQXhOaUF3SURBZ01DQXhOaUF4Tm1neE1qaGhNVFlnTVRZZ01DQXdJREFnTVRZdE1UWjJMVE15WVRFMklERTJJREFnTUNBd0xURTJMVEUyZWsweE56WXVPRFVnTWpjeVRESXlOQ0F4TkRJdU5URWdNamN4TGpFMUlESTNNbnBjSWlBdlBseHVJQ0FnSUNBZ1BDOXpkbWMrWEc0Z0lDQWdLU3hjYmlBZ0lDQjJZV3gxWlRvZ1hDSjBaWGgwWENJc1hHNGdJQ0FnYTJWNU9pQkxSVmxUTGxRc1hHNGdJSDBzWEc0Z0lIdGNiaUFnSUNCcFkyOXVPaUFvWEc0Z0lDQWdJQ0F2THlCbVlTMXBiV0ZuWlZ4dUlDQWdJQ0FnUEhOMlp5QjJhV1YzUW05NFBWd2lNQ0F3SURVeE1pQTFNVEpjSWo1Y2JpQWdJQ0FnSUNBZ1BIQmhkR2hjYmlBZ0lDQWdJQ0FnSUNCbWFXeHNQVndpWTNWeWNtVnVkRU52Ykc5eVhDSmNiaUFnSUNBZ0lDQWdJQ0JrUFZ3aVRUUTJOQ0EyTkVnME9FTXlNUzQwT1NBMk5DQXdJRGcxTGpRNUlEQWdNVEV5ZGpJNE9HTXdJREkyTGpVeElESXhMalE1SURRNElEUTRJRFE0YURReE5tTXlOaTQxTVNBd0lEUTRMVEl4TGpRNUlEUTRMVFE0VmpFeE1tTXdMVEkyTGpVeExUSXhMalE1TFRRNExUUTRMVFE0ZW0wdE5pQXpNelpJTlRSaE5pQTJJREFnTUNBeExUWXRObFl4TVRoaE5pQTJJREFnTUNBeElEWXRObWcwTURSaE5pQTJJREFnTUNBeElEWWdObll5TnpaaE5pQTJJREFnTUNBeExUWWdObnBOTVRJNElERTFNbU10TWpJdU1Ea3hJREF0TkRBZ01UY3VPVEE1TFRRd0lEUXdjekUzTGprd09TQTBNQ0EwTUNBME1DQTBNQzB4Tnk0NU1Ea2dOREF0TkRBdE1UY3VPVEE1TFRRd0xUUXdMVFF3ZWswNU5pQXpOVEpvTXpJd2RpMDRNR3d0T0RjdU5URTFMVGczTGpVeE5XTXROQzQyT0RZdE5DNDJPRFl0TVRJdU1qZzBMVFF1TmpnMkxURTJMamszTVNBd1RERTVNaUF6TURSc0xUTTVMalV4TlMwek9TNDFNVFZqTFRRdU5qZzJMVFF1TmpnMkxURXlMakk0TkMwMExqWTROaTB4Tmk0NU56RWdNRXc1TmlBek1EUjJORGg2WENKY2JpQWdJQ0FnSUNBZ1Bqd3ZjR0YwYUQ1Y2JpQWdJQ0FnSUR3dmMzWm5QbHh1SUNBZ0lDa3NYRzRnSUNBZ2RtRnNkV1U2SUZ3aWFXMWhaMlZjSWl4Y2JpQWdJQ0JyWlhrNklHNTFiR3dzWEc0Z0lIMHNYRzVkSUdGeklHTnZibk4wTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWm1sdVpGTm9ZWEJsUW5sTFpYa2dQU0FvYTJWNU9pQnpkSEpwYm1jcElEMCtJSHRjYmlBZ1kyOXVjM1FnYzJoaGNHVWdQU0JUU0VGUVJWTXVabWx1WkNnb2MyaGhjR1VzSUdsdVpHVjRLU0E5UGlCN1hHNGdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJR3RsZVNBOVBUMGdLR2x1WkdWNElDc2dNU2t1ZEc5VGRISnBibWNvS1NCOGZGeHVJQ0FnSUNBZ0tITm9ZWEJsTG10bGVTQW1KbHh1SUNBZ0lDQWdJQ0FvZEhsd1pXOW1JSE5vWVhCbExtdGxlU0E5UFQwZ1hDSnpkSEpwYm1kY0lseHVJQ0FnSUNBZ0lDQWdJRDhnYzJoaGNHVXVhMlY1SUQwOVBTQnJaWGxjYmlBZ0lDQWdJQ0FnSUNBNklDaHphR0Z3WlM1clpYa2dZWE1nY21WaFpHOXViSGtnYzNSeWFXNW5XMTBwTG1sdVkyeDFaR1Z6S0d0bGVTa3BLVnh1SUNBZ0lDazdYRzRnSUgwcE8xeHVJQ0J5WlhSMWNtNGdjMmhoY0dVL0xuWmhiSFZsSUh4OElHNTFiR3c3WEc1OU8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWMyOTFjbU5sVW05dmRDSTZJaUo5XFxuLy8jIHNvdXJjZVVSTD13ZWJwYWNrLWludGVybmFsOi8vLy4uLy4uL3NoYXBlcy50c3hcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL3R5cGVzLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL3R5cGVzLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX21vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJVc2VySWRsZVN0YXRlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gVXNlcklkbGVTdGF0ZSlcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG52YXIgVXNlcklkbGVTdGF0ZTtcXG4oZnVuY3Rpb24gKFVzZXJJZGxlU3RhdGUpIHtcXG4gICAgVXNlcklkbGVTdGF0ZVtcXFwiQUNUSVZFXFxcIl0gPSBcXFwiYWN0aXZlXFxcIjtcXG4gICAgVXNlcklkbGVTdGF0ZVtcXFwiQVdBWVxcXCJdID0gXFxcImF3YXlcXFwiO1xcbiAgICBVc2VySWRsZVN0YXRlW1xcXCJJRExFXFxcIl0gPSBcXFwiaWRsZVxcXCI7XFxufSkoVXNlcklkbGVTdGF0ZSB8fCAoVXNlcklkbGVTdGF0ZSA9IHt9KSk7XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZkSGx3WlhNdWRITXVhbk1pTENKdFlYQndhVzVuY3lJNklqczdPenRCUVhsUlFTeEpRVUZaTEdGQlNWZzdRVUZLUkN4WFFVRlpMR0ZCUVdFN1NVRkRka0lzYTBOQlFXbENPMGxCUTJwQ0xEaENRVUZoTzBsQlEySXNPRUpCUVdFN1FVRkRaaXhEUVVGRExFVkJTbGNzWVVGQllTeExRVUZpTEdGQlFXRXNVVUZKZUVJaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZkSGx3WlhNdWRITS9NREkwTmlKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UxeHVJQ0JRYjJsdWRHVnlWSGx3WlN4Y2JpQWdSWGhqWVd4cFpISmhkMHhwYm1WaGNrVnNaVzFsYm5Rc1hHNGdJRTV2YmtSbGJHVjBaV1JGZUdOaGJHbGtjbUYzUld4bGJXVnVkQ3hjYmlBZ1RtOXVSR1ZzWlhSbFpDeGNiaUFnVkdWNGRFRnNhV2R1TEZ4dUlDQkZlR05oYkdsa2NtRjNSV3hsYldWdWRDeGNiaUFnUjNKdmRYQkpaQ3hjYmlBZ1JYaGpZV3hwWkhKaGQwSnBibVJoWW14bFJXeGxiV1Z1ZEN4Y2JpQWdRWEp5YjNkb1pXRmtMRnh1SUNCRGFHRnlkRlI1Y0dVc1hHNGdJRVp2Ym5SR1lXMXBiSGxXWVd4MVpYTXNYRzRnSUVacGJHVkpaQ3hjYmlBZ1JYaGpZV3hwWkhKaGQwbHRZV2RsUld4bGJXVnVkQ3hjYmlBZ1ZHaGxiV1VzWEc1OUlHWnliMjBnWENJdUwyVnNaVzFsYm5RdmRIbHdaWE5jSWp0Y2JtbHRjRzl5ZENCN0lGTklRVkJGVXlCOUlHWnliMjBnWENJdUwzTm9ZWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dVRzlwYm5RZ1lYTWdVbTkxWjJoUWIybHVkQ0I5SUdaeWIyMGdYQ0p5YjNWbmFHcHpMMkpwYmk5blpXOXRaWFJ5ZVZ3aU8xeHVhVzF3YjNKMElIc2dUR2x1WldGeVJXeGxiV1Z1ZEVWa2FYUnZjaUI5SUdaeWIyMGdYQ0l1TDJWc1pXMWxiblF2YkdsdVpXRnlSV3hsYldWdWRFVmthWFJ2Y2x3aU8xeHVhVzF3YjNKMElIc2dVM1ZuWjJWemRHVmtRbWx1WkdsdVp5QjlJR1p5YjIwZ1hDSXVMMlZzWlcxbGJuUXZZbWx1WkdsdVoxd2lPMXh1YVcxd2IzSjBJSHNnU1cxd2IzSjBaV1JFWVhSaFUzUmhkR1VnZlNCbWNtOXRJRndpTGk5a1lYUmhMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdkSGx3WlNCQmNIQWdabkp2YlNCY0lpNHZZMjl0Y0c5dVpXNTBjeTlCY0hCY0lqdGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1VtVnpiMngyWVdKc1pWQnliMjFwYzJVc0lIUm9jbTkwZEd4bFVrRkdJSDBnWm5KdmJTQmNJaTR2ZFhScGJITmNJanRjYm1sdGNHOXlkQ0I3SUZOd2NtVmhaSE5vWldWMElIMGdabkp2YlNCY0lpNHZZMmhoY25SelhDSTdYRzVwYlhCdmNuUWdleUJNWVc1bmRXRm5aU0I5SUdaeWIyMGdYQ0l1TDJreE9HNWNJanRjYm1sdGNHOXlkQ0I3SUVOc2FYQmliMkZ5WkVSaGRHRWdmU0JtY205dElGd2lMaTlqYkdsd1ltOWhjbVJjSWp0Y2JtbHRjRzl5ZENCN0lHbHpUM1psY2xOamNtOXNiRUpoY25NZ2ZTQm1jbTl0SUZ3aUxpOXpZMlZ1WlZ3aU8xeHVhVzF3YjNKMElIc2dUV0Y1WW1WVWNtRnVjMlp2Y20xSVlXNWtiR1ZVZVhCbElIMGdabkp2YlNCY0lpNHZaV3hsYldWdWRDOTBjbUZ1YzJadmNtMUlZVzVrYkdWelhDSTdYRzVwYlhCdmNuUWdUR2xpY21GeWVTQm1jbTl0SUZ3aUxpOWtZWFJoTDJ4cFluSmhjbmxjSWp0Y2JtbHRjRzl5ZENCMGVYQmxJSHNnUm1sc1pWTjVjM1JsYlVoaGJtUnNaU0I5SUdaeWIyMGdYQ0l1TDJSaGRHRXZabWxzWlhONWMzUmxiVndpTzF4dWFXMXdiM0owSUhSNWNHVWdleUJCVEV4UFYwVkVYMGxOUVVkRlgwMUpUVVZmVkZsUVJWTXNJRTFKVFVWZlZGbFFSVk1nZlNCbWNtOXRJRndpTGk5amIyNXpkR0Z1ZEhOY0lqdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1VHOXBiblFnUFNCU1pXRmtiMjVzZVR4U2IzVm5hRkJ2YVc1MFBqdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1EyOXNiR0ZpYjNKaGRHOXlJRDBnZTF4dUlDQndiMmx1ZEdWeVB6b2dlMXh1SUNBZ0lIZzZJRzUxYldKbGNqdGNiaUFnSUNCNU9pQnVkVzFpWlhJN1hHNGdJSDA3WEc0Z0lHSjFkSFJ2Ymo4NklGd2lkWEJjSWlCOElGd2laRzkzYmx3aU8xeHVJQ0J6Wld4bFkzUmxaRVZzWlcxbGJuUkpaSE0vT2lCQmNIQlRkR0YwWlZ0Y0luTmxiR1ZqZEdWa1JXeGxiV1Z1ZEVsa2Mxd2lYVHRjYmlBZ2RYTmxjbTVoYldVL09pQnpkSEpwYm1jZ2ZDQnVkV3hzTzF4dUlDQjFjMlZ5VTNSaGRHVS9PaUJWYzJWeVNXUnNaVk4wWVhSbE8xeHVJQ0JqYjJ4dmNqODZJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtPaUJ6ZEhKcGJtYzdYRzRnSUNBZ2MzUnliMnRsT2lCemRISnBibWM3WEc0Z0lIMDdYRzU5TzF4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JFWVhSaFZWSk1JRDBnYzNSeWFXNW5JQ1lnZXlCZlluSmhibVE2SUZ3aVJHRjBZVlZTVEZ3aUlIMDdYRzVjYm1WNGNHOXlkQ0IwZVhCbElFSnBibUZ5ZVVacGJHVkVZWFJoSUQwZ2UxeHVJQ0J0YVcxbFZIbHdaVHBjYmlBZ0lDQjhJSFI1Y0dWdlppQkJURXhQVjBWRVgwbE5RVWRGWDAxSlRVVmZWRmxRUlZOYmJuVnRZbVZ5WFZ4dUlDQWdJQzh2SUdaMWRIVnlaU0IxYzJWeUlHOXlJSFZ1YTI1dmQyNGdabWxzWlNCMGVYQmxYRzRnSUNBZ2ZDQjBlWEJsYjJZZ1RVbE5SVjlVV1ZCRlV5NWlhVzVoY25rN1hHNGdJR2xrT2lCR2FXeGxTV1E3WEc0Z0lHUmhkR0ZWVWt3NklFUmhkR0ZWVWt3N1hHNGdJR055WldGMFpXUTZJRzUxYldKbGNqdGNibjA3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRUpwYm1GeWVVWnBiR1ZOWlhSaFpHRjBZU0E5SUU5dGFYUThRbWx1WVhKNVJtbHNaVVJoZEdFc0lGd2laR0YwWVZWU1RGd2lQanRjYmx4dVpYaHdiM0owSUhSNWNHVWdRbWx1WVhKNVJtbHNaWE1nUFNCU1pXTnZjbVE4UlhoallXeHBaSEpoZDBWc1pXMWxiblJiWENKcFpGd2lYU3dnUW1sdVlYSjVSbWxzWlVSaGRHRStPMXh1WEc1bGVIQnZjblFnZEhsd1pTQkJjSEJUZEdGMFpTQTlJSHRjYmlBZ2FYTk1iMkZrYVc1bk9pQmliMjlzWldGdU8xeHVJQ0JsY25KdmNrMWxjM05oWjJVNklITjBjbWx1WnlCOElHNTFiR3c3WEc0Z0lHUnlZV2RuYVc1blJXeGxiV1Z1ZERvZ1RtOXVSR1ZzWlhSbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MElId2diblZzYkR0Y2JpQWdjbVZ6YVhwcGJtZEZiR1Z0Wlc1ME9pQk9iMjVFWld4bGRHVmtSWGhqWVd4cFpISmhkMFZzWlcxbGJuUWdmQ0J1ZFd4c08xeHVJQ0J0ZFd4MGFVVnNaVzFsYm5RNklFNXZia1JsYkdWMFpXUThSWGhqWVd4cFpISmhkMHhwYm1WaGNrVnNaVzFsYm5RK0lId2diblZzYkR0Y2JpQWdjMlZzWldOMGFXOXVSV3hsYldWdWREb2dUbTl1UkdWc1pYUmxaRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBJSHdnYm5Wc2JEdGNiaUFnYVhOQ2FXNWthVzVuUlc1aFlteGxaRG9nWW05dmJHVmhianRjYmlBZ2MzUmhjblJDYjNWdVpFVnNaVzFsYm5RNklFNXZia1JsYkdWMFpXUThSWGhqWVd4cFpISmhkMEpwYm1SaFlteGxSV3hsYldWdWRENGdmQ0J1ZFd4c08xeHVJQ0J6ZFdkblpYTjBaV1JDYVc1a2FXNW5jem9nVTNWbloyVnpkR1ZrUW1sdVpHbHVaMXRkTzF4dUlDQXZMeUJsYkdWdFpXNTBJR0psYVc1bklHVmthWFJsWkN3Z1luVjBJRzV2ZENCdVpXTmxjM05oY21sc2VTQmhaR1JsWkNCMGJ5QmxiR1Z0Wlc1MGN5QmhjbkpoZVNCNVpYUmNiaUFnTHk4Z0tHVXVaeTRnZEdWNGRDQmxiR1Z0Wlc1MElIZG9aVzRnZEhsd2FXNW5JR2x1ZEc4Z2RHaGxJR2x1Y0hWMEtWeHVJQ0JsWkdsMGFXNW5SV3hsYldWdWREb2dUbTl1UkdWc1pYUmxaRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBJSHdnYm5Wc2JEdGNiaUFnWldScGRHbHVaMHhwYm1WaGNrVnNaVzFsYm5RNklFeHBibVZoY2tWc1pXMWxiblJGWkdsMGIzSWdmQ0J1ZFd4c08xeHVJQ0JsYkdWdFpXNTBWSGx3WlRvZ2RIbHdaVzltSUZOSVFWQkZVMXR1ZFcxaVpYSmRXMXdpZG1Gc2RXVmNJbDA3WEc0Z0lHVnNaVzFsYm5STWIyTnJaV1E2SUdKdmIyeGxZVzQ3WEc0Z0lIQmxiazF2WkdVNklHSnZiMnhsWVc0N1hHNGdJSEJsYmtSbGRHVmpkR1ZrT2lCaWIyOXNaV0Z1TzF4dUlDQmxlSEJ2Y25SQ1lXTnJaM0p2ZFc1a09pQmliMjlzWldGdU8xeHVJQ0JsZUhCdmNuUkZiV0psWkZOalpXNWxPaUJpYjI5c1pXRnVPMXh1SUNCbGVIQnZjblJYYVhSb1JHRnlhMDF2WkdVNklHSnZiMnhsWVc0N1hHNGdJR1Y0Y0c5eWRGTmpZV3hsT2lCdWRXMWlaWEk3WEc0Z0lHTjFjbkpsYm5SSmRHVnRVM1J5YjJ0bFEyOXNiM0k2SUhOMGNtbHVaenRjYmlBZ1kzVnljbVZ1ZEVsMFpXMUNZV05yWjNKdmRXNWtRMjlzYjNJNklITjBjbWx1Wnp0Y2JpQWdZM1Z5Y21WdWRFbDBaVzFHYVd4c1UzUjViR1U2SUVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwVzF3aVptbHNiRk4wZVd4bFhDSmRPMXh1SUNCamRYSnlaVzUwU1hSbGJWTjBjbTlyWlZkcFpIUm9PaUJ1ZFcxaVpYSTdYRzRnSUdOMWNuSmxiblJKZEdWdFUzUnliMnRsVTNSNWJHVTZJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMXdpYzNSeWIydGxVM1I1YkdWY0lsMDdYRzRnSUdOMWNuSmxiblJKZEdWdFVtOTFaMmh1WlhOek9pQnVkVzFpWlhJN1hHNGdJR04xY25KbGJuUkpkR1Z0VDNCaFkybDBlVG9nYm5WdFltVnlPMXh1SUNCamRYSnlaVzUwU1hSbGJVWnZiblJHWVcxcGJIazZJRVp2Ym5SR1lXMXBiSGxXWVd4MVpYTTdYRzRnSUdOMWNuSmxiblJKZEdWdFJtOXVkRk5wZW1VNklHNTFiV0psY2p0Y2JpQWdZM1Z5Y21WdWRFbDBaVzFVWlhoMFFXeHBaMjQ2SUZSbGVIUkJiR2xuYmp0Y2JpQWdZM1Z5Y21WdWRFbDBaVzFUZEhKdmEyVlRhR0Z5Y0c1bGMzTTZJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMXdpYzNSeWIydGxVMmhoY25CdVpYTnpYQ0pkTzF4dUlDQmpkWEp5Wlc1MFNYUmxiVk4wWVhKMFFYSnliM2RvWldGa09pQkJjbkp2ZDJobFlXUWdmQ0J1ZFd4c08xeHVJQ0JqZFhKeVpXNTBTWFJsYlVWdVpFRnljbTkzYUdWaFpEb2dRWEp5YjNkb1pXRmtJSHdnYm5Wc2JEdGNiaUFnWTNWeWNtVnVkRWwwWlcxTWFXNWxZWEpUZEhKdmEyVlRhR0Z5Y0c1bGMzTTZJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMXdpYzNSeWIydGxVMmhoY25CdVpYTnpYQ0pkTzF4dUlDQjJhV1YzUW1GamEyZHliM1Z1WkVOdmJHOXlPaUJ6ZEhKcGJtYzdYRzRnSUhOamNtOXNiRmc2SUc1MWJXSmxjanRjYmlBZ2MyTnliMnhzV1RvZ2JuVnRZbVZ5TzF4dUlDQmpkWEp6YjNKQ2RYUjBiMjQ2SUZ3aWRYQmNJaUI4SUZ3aVpHOTNibHdpTzF4dUlDQnpZM0p2Ykd4bFpFOTFkSE5wWkdVNklHSnZiMnhsWVc0N1hHNGdJRzVoYldVNklITjBjbWx1Wnp0Y2JpQWdhWE5TWlhOcGVtbHVaem9nWW05dmJHVmhianRjYmlBZ2FYTlNiM1JoZEdsdVp6b2dZbTl2YkdWaGJqdGNiaUFnZW05dmJUb2dXbTl2YlR0Y2JpQWdiM0JsYmsxbGJuVTZJRndpWTJGdWRtRnpYQ0lnZkNCY0luTm9ZWEJsWENJZ2ZDQnVkV3hzTzF4dUlDQnZjR1Z1VUc5d2RYQTZYRzRnSUNBZ2ZDQmNJbU5oYm5aaGMwTnZiRzl5VUdsamEyVnlYQ0pjYmlBZ0lDQjhJRndpWW1GamEyZHliM1Z1WkVOdmJHOXlVR2xqYTJWeVhDSmNiaUFnSUNCOElGd2ljM1J5YjJ0bFEyOXNiM0pRYVdOclpYSmNJbHh1SUNBZ0lId2diblZzYkR0Y2JpQWdiR0Z6ZEZCdmFXNTBaWEpFYjNkdVYybDBhRG9nVUc5cGJuUmxjbFI1Y0dVN1hHNGdJSE5sYkdWamRHVmtSV3hsYldWdWRFbGtjem9nZXlCYmFXUTZJSE4wY21sdVoxMDZJR0p2YjJ4bFlXNGdmVHRjYmlBZ2NISmxkbWx2ZFhOVFpXeGxZM1JsWkVWc1pXMWxiblJKWkhNNklIc2dXMmxrT2lCemRISnBibWRkT2lCaWIyOXNaV0Z1SUgwN1hHNGdJSE5vYjNWc1pFTmhZMmhsU1dkdWIzSmxXbTl2YlRvZ1ltOXZiR1ZoYmp0Y2JpQWdjMmh2ZDBobGJIQkVhV0ZzYjJjNklHSnZiMnhsWVc0N1hHNGdJSFJ2WVhOMFRXVnpjMkZuWlRvZ2MzUnlhVzVuSUh3Z2JuVnNiRHRjYmlBZ2VtVnVUVzlrWlVWdVlXSnNaV1E2SUdKdmIyeGxZVzQ3WEc0Z0lIUm9aVzFsT2lCVWFHVnRaVHRjYmlBZ1ozSnBaRk5wZW1VNklHNTFiV0psY2lCOElHNTFiR3c3WEc0Z0lIWnBaWGROYjJSbFJXNWhZbXhsWkRvZ1ltOXZiR1ZoYmp0Y2JseHVJQ0F2S2lvZ2RHOXdMVzF2YzNRZ2MyVnNaV04wWldRZ1ozSnZkWEJ6SUNocExtVXVJR1J2WlhNZ2JtOTBJR2x1WTJ4MVpHVWdibVZ6ZEdWa0lHZHliM1Z3Y3lrZ0tpOWNiaUFnYzJWc1pXTjBaV1JIY205MWNFbGtjem9nZXlCYlozSnZkWEJKWkRvZ2MzUnlhVzVuWFRvZ1ltOXZiR1ZoYmlCOU8xeHVJQ0F2S2lvZ1ozSnZkWEFnWW1WcGJtY2daV1JwZEdWa0lIZG9aVzRnZVc5MUlHUnlhV3hzSUdSdmQyNGdkRzhnYVhSeklHTnZibk4wYVhSMVpXNTBJR1ZzWlcxbGJuUmNiaUFnSUNBb1pTNW5MaUIzYUdWdUlIbHZkU0JrYjNWaWJHVXRZMnhwWTJzZ2IyNGdZU0JuY205MWNDZHpJR1ZzWlcxbGJuUXBJQ292WEc0Z0lHVmthWFJwYm1kSGNtOTFjRWxrT2lCSGNtOTFjRWxrSUh3Z2JuVnNiRHRjYmlBZ2QybGtkR2c2SUc1MWJXSmxjanRjYmlBZ2FHVnBaMmgwT2lCdWRXMWlaWEk3WEc0Z0lHOW1abk5sZEZSdmNEb2diblZ0WW1WeU8xeHVJQ0J2Wm1aelpYUk1aV1owT2lCdWRXMWlaWEk3WEc1Y2JpQWdhWE5NYVdKeVlYSjVUM0JsYmpvZ1ltOXZiR1ZoYmp0Y2JpQWdabWxzWlVoaGJtUnNaVG9nUm1sc1pWTjVjM1JsYlVoaGJtUnNaU0I4SUc1MWJHdzdYRzRnSUdOdmJHeGhZbTl5WVhSdmNuTTZJRTFoY0R4emRISnBibWNzSUVOdmJHeGhZbTl5WVhSdmNqNDdYRzRnSUhOb2IzZFRkR0YwY3pvZ1ltOXZiR1ZoYmp0Y2JpQWdZM1Z5Y21WdWRFTm9ZWEowVkhsd1pUb2dRMmhoY25SVWVYQmxPMXh1SUNCd1lYTjBaVVJwWVd4dlp6cGNiaUFnSUNCOElIdGNiaUFnSUNBZ0lDQWdjMmh2ZDI0NklHWmhiSE5sTzF4dUlDQWdJQ0FnSUNCa1lYUmhPaUJ1ZFd4c08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUh3Z2UxeHVJQ0FnSUNBZ0lDQnphRzkzYmpvZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnWkdGMFlUb2dVM0J5WldGa2MyaGxaWFE3WEc0Z0lDQWdJQ0I5TzF4dUlDQXZLaW9nYVcxaFoyVkZiR1Z0Wlc1MElIZGhhWFJwYm1jZ2RHOGdZbVVnY0d4aFkyVmtJRzl1SUdOaGJuWmhjeUFxTDF4dUlDQndaVzVrYVc1blNXMWhaMlZGYkdWdFpXNTBPaUJPYjI1RVpXeGxkR1ZrUEVWNFkyRnNhV1J5WVhkSmJXRm5aVVZzWlcxbGJuUStJSHdnYm5Wc2JEdGNiaUFnYzJodmQwaDVjR1Z5YkdsdWExQnZjSFZ3T2lCbVlXeHpaU0I4SUZ3aWFXNW1iMXdpSUh3Z1hDSmxaR2wwYjNKY0lqdGNibjA3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRTV2Y20xaGJHbDZaV1JhYjI5dFZtRnNkV1VnUFNCdWRXMWlaWElnSmlCN0lGOWljbUZ1WkRvZ1hDSnViM0p0WVd4cGVtVmtXbTl2YlZ3aUlIMDdYRzVjYm1WNGNHOXlkQ0IwZVhCbElGcHZiMjBnUFNCU1pXRmtiMjVzZVR4N1hHNGdJSFpoYkhWbE9pQk9iM0p0WVd4cGVtVmtXbTl2YlZaaGJIVmxPMXh1ZlQ0N1hHNWNibVY0Y0c5eWRDQjBlWEJsSUZCdmFXNTBaWEpEYjI5eVpITWdQU0JTWldGa2IyNXNlVHg3WEc0Z0lIZzZJRzUxYldKbGNqdGNiaUFnZVRvZ2JuVnRZbVZ5TzF4dWZUNDdYRzVjYm1WNGNHOXlkQ0IwZVhCbElFZGxjM1IxY21VZ1BTQjdYRzRnSUhCdmFXNTBaWEp6T2lCTllYQThiblZ0WW1WeUxDQlFiMmx1ZEdWeVEyOXZjbVJ6UGp0Y2JpQWdiR0Z6ZEVObGJuUmxjam9nZXlCNE9pQnVkVzFpWlhJN0lIazZJRzUxYldKbGNpQjlJSHdnYm5Wc2JEdGNiaUFnYVc1cGRHbGhiRVJwYzNSaGJtTmxPaUJ1ZFcxaVpYSWdmQ0J1ZFd4c08xeHVJQ0JwYm1sMGFXRnNVMk5oYkdVNklHNTFiV0psY2lCOElHNTFiR3c3WEc1OU8xeHVYRzVsZUhCdmNuUWdaR1ZqYkdGeVpTQmpiR0Z6Y3lCSFpYTjBkWEpsUlhabGJuUWdaWGgwWlc1a2N5QlZTVVYyWlc1MElIdGNiaUFnY21WaFpHOXViSGtnY205MFlYUnBiMjQ2SUc1MWJXSmxjanRjYmlBZ2NtVmhaRzl1YkhrZ2MyTmhiR1U2SUc1MWJXSmxjanRjYm4xY2JseHVMeThnYkdsaWNtRnlhV1Z6WEc0dkx5QXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFZ4dUx5b3FJRUJrWlhCeVpXTmhkR1ZrSUd4bFoyRmplVG9nWkc4Z2JtOTBJSFZ6WlNCdmRYUnphV1JsSUc5bUlHMXBaM0poZEdsdmJpQndZWFJvY3lBcUwxeHVaWGh3YjNKMElIUjVjR1VnVEdsaWNtRnllVWwwWlcxZmRqRWdQU0J5WldGa2IyNXNlU0JPYjI1RVpXeGxkR1ZrUEVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwUGx0ZE8xeHVMeW9xSUVCa1pYQnlaV05oZEdWa0lHeGxaMkZqZVRvZ1pHOGdibTkwSUhWelpTQnZkWFJ6YVdSbElHOW1JRzFwWjNKaGRHbHZiaUJ3WVhSb2N5QXFMMXh1Wlhod2IzSjBJSFI1Y0dVZ1RHbGljbUZ5ZVVsMFpXMXpYM1l4SUQwZ2NtVmhaRzl1YkhrZ1RHbGljbUZ5ZVVsMFpXMWZkakZiWFR0Y2JseHVMeW9xSUhZeUlHeHBZbkpoY25rZ2FYUmxiU0FxTDF4dVpYaHdiM0owSUhSNWNHVWdUR2xpY21GeWVVbDBaVzBnUFNCN1hHNGdJR2xrT2lCemRISnBibWM3WEc0Z0lITjBZWFIxY3pvZ1hDSndkV0pzYVhOb1pXUmNJaUI4SUZ3aWRXNXdkV0pzYVhOb1pXUmNJanRjYmlBZ1pXeGxiV1Z1ZEhNNklISmxZV1J2Ym14NUlFNXZia1JsYkdWMFpXUThSWGhqWVd4cFpISmhkMFZzWlcxbGJuUStXMTA3WEc0Z0lDOHFLaUIwYVcxbGMzUmhiWEFnYVc0Z1pYQnZZMmdnS0cxektTQXFMMXh1SUNCamNtVmhkR1ZrT2lCdWRXMWlaWEk3WEc0Z0lHNWhiV1UvT2lCemRISnBibWM3WEc0Z0lHVnljbTl5UHpvZ2MzUnlhVzVuTzF4dWZUdGNibVY0Y0c5eWRDQjBlWEJsSUV4cFluSmhjbmxKZEdWdGN5QTlJSEpsWVdSdmJteDVJRXhwWW5KaGNubEpkR1Z0VzEwN1hHNHZMeUF0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExWeHVYRzR2THlCT1QxUkZJSEpsWVdSNUwzSmxZV1I1VUhKdmJXbHpaU0J3Y205d2N5QmhjbVVnYjNCMGFXOXVZV3dnWm05eUlHaHZjM1FnWVhCd2N5Y2djMkZyWlNBb2IzVnlJRzkzYmx4dUx5OGdhVzF3YkdWdElHZDFZWEpoYm5SbFpYTWdaWGhwYzNSbGJtTmxLVnh1Wlhod2IzSjBJSFI1Y0dVZ1JYaGpZV3hwWkhKaGQwRlFTVkpsWmxaaGJIVmxJRDFjYmlBZ2ZDQkZlR05oYkdsa2NtRjNTVzF3WlhKaGRHbDJaVUZRU1Z4dUlDQjhJSHRjYmlBZ0lDQWdJSEpsWVdSNVVISnZiV2x6WlQ4NklGSmxjMjlzZG1GaWJHVlFjbTl0YVhObFBFVjRZMkZzYVdSeVlYZEpiWEJsY21GMGFYWmxRVkJKUGp0Y2JpQWdJQ0FnSUhKbFlXUjVQem9nWm1Gc2MyVTdYRzRnSUNBZ2ZUdGNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JGZUdOaGJHbGtjbUYzVUhKdmNITWdlMXh1SUNCdmJrTm9ZVzVuWlQ4NklDaGNiaUFnSUNCbGJHVnRaVzUwY3pvZ2NtVmhaRzl1YkhrZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTeGNiaUFnSUNCaGNIQlRkR0YwWlRvZ1FYQndVM1JoZEdVc1hHNGdJQ0FnWm1sc1pYTTZJRUpwYm1GeWVVWnBiR1Z6TEZ4dUlDQXBJRDArSUhadmFXUTdYRzRnSUdsdWFYUnBZV3hFWVhSaFB6b2dTVzF3YjNKMFpXUkVZWFJoVTNSaGRHVWdmQ0J1ZFd4c0lId2dVSEp2YldselpUeEpiWEJ2Y25SbFpFUmhkR0ZUZEdGMFpTQjhJRzUxYkd3K08xeHVJQ0JsZUdOaGJHbGtjbUYzVW1WbVB6b2dSbTl5ZDJGeVpGSmxaanhGZUdOaGJHbGtjbUYzUVZCSlVtVm1WbUZzZFdVK08xeHVJQ0J2YmtOdmJHeGhZa0oxZEhSdmJrTnNhV05yUHpvZ0tDa2dQVDRnZG05cFpEdGNiaUFnYVhORGIyeHNZV0p2Y21GMGFXNW5Qem9nWW05dmJHVmhianRjYmlBZ2IyNVFiMmx1ZEdWeVZYQmtZWFJsUHpvZ0tIQmhlV3h2WVdRNklIdGNiaUFnSUNCd2IybHVkR1Z5T2lCN0lIZzZJRzUxYldKbGNqc2dlVG9nYm5WdFltVnlJSDA3WEc0Z0lDQWdZblYwZEc5dU9pQmNJbVJ2ZDI1Y0lpQjhJRndpZFhCY0lqdGNiaUFnSUNCd2IybHVkR1Z5YzAxaGNEb2dSMlZ6ZEhWeVpWdGNJbkJ2YVc1MFpYSnpYQ0pkTzF4dUlDQjlLU0E5UGlCMmIybGtPMXh1SUNCdmJsQmhjM1JsUHpvZ0tGeHVJQ0FnSUdSaGRHRTZJRU5zYVhCaWIyRnlaRVJoZEdFc1hHNGdJQ0FnWlhabGJuUTZJRU5zYVhCaWIyRnlaRVYyWlc1MElId2diblZzYkN4Y2JpQWdLU0E5UGlCUWNtOXRhWE5sUEdKdmIyeGxZVzQrSUh3Z1ltOXZiR1ZoYmp0Y2JpQWdjbVZ1WkdWeVZHOXdVbWxuYUhSVlNUODZJQ2hjYmlBZ0lDQnBjMDF2WW1sc1pUb2dZbTl2YkdWaGJpeGNiaUFnSUNCaGNIQlRkR0YwWlRvZ1FYQndVM1JoZEdVc1hHNGdJQ2tnUFQ0Z1NsTllMa1ZzWlcxbGJuUWdmQ0J1ZFd4c08xeHVJQ0J5Wlc1a1pYSkdiMjkwWlhJL09pQW9hWE5OYjJKcGJHVTZJR0p2YjJ4bFlXNHNJR0Z3Y0ZOMFlYUmxPaUJCY0hCVGRHRjBaU2tnUFQ0Z1NsTllMa1ZzWlcxbGJuUTdYRzRnSUd4aGJtZERiMlJsUHpvZ1RHRnVaM1ZoWjJWYlhDSmpiMlJsWENKZE8xeHVJQ0IyYVdWM1RXOWtaVVZ1WVdKc1pXUS9PaUJpYjI5c1pXRnVPMXh1SUNCNlpXNU5iMlJsUlc1aFlteGxaRDg2SUdKdmIyeGxZVzQ3WEc0Z0lHZHlhV1JOYjJSbFJXNWhZbXhsWkQ4NklHSnZiMnhsWVc0N1hHNGdJR3hwWW5KaGNubFNaWFIxY201VmNtdy9PaUJ6ZEhKcGJtYzdYRzRnSUhSb1pXMWxQem9nVkdobGJXVTdYRzRnSUc1aGJXVS9PaUJ6ZEhKcGJtYzdYRzRnSUhKbGJtUmxja04xYzNSdmJWTjBZWFJ6UHpvZ0tGeHVJQ0FnSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCT2IyNUVaV3hsZEdWa1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTeGNiaUFnSUNCaGNIQlRkR0YwWlRvZ1FYQndVM1JoZEdVc1hHNGdJQ2tnUFQ0Z1NsTllMa1ZzWlcxbGJuUTdYRzRnSUZWSlQzQjBhVzl1Y3o4NklGVkpUM0IwYVc5dWN6dGNiaUFnWkdWMFpXTjBVMk55YjJ4c1B6b2dZbTl2YkdWaGJqdGNiaUFnYUdGdVpHeGxTMlY1WW05aGNtUkhiRzlpWVd4c2VUODZJR0p2YjJ4bFlXNDdYRzRnSUc5dVRHbGljbUZ5ZVVOb1lXNW5aVDg2SUNoc2FXSnlZWEo1U1hSbGJYTTZJRXhwWW5KaGNubEpkR1Z0Y3lrZ1BUNGdkbTlwWkNCOElGQnliMjFwYzJVOFlXNTVQanRjYmlBZ1lYVjBiMFp2WTNWelB6b2dZbTl2YkdWaGJqdGNiaUFnWjJWdVpYSmhkR1ZKWkVadmNrWnBiR1UvT2lBb1ptbHNaVG9nUm1sc1pTa2dQVDRnYzNSeWFXNW5JSHdnVUhKdmJXbHpaVHh6ZEhKcGJtYytPMXh1SUNCdmJreHBibXRQY0dWdVB6b2dLRnh1SUNBZ0lHVnNaVzFsYm5RNklFNXZia1JsYkdWMFpXUkZlR05oYkdsa2NtRjNSV3hsYldWdWRDeGNiaUFnSUNCbGRtVnVkRG9nUTNWemRHOXRSWFpsYm5ROGUxeHVJQ0FnSUNBZ2JtRjBhWFpsUlhabGJuUTZJRTF2ZFhObFJYWmxiblFnZkNCU1pXRmpkQzVRYjJsdWRHVnlSWFpsYm5ROFNGUk5URU5oYm5aaGMwVnNaVzFsYm5RK08xeHVJQ0FnSUgwK0xGeHVJQ0FwSUQwK0lIWnZhV1E3WEc1OVhHNWNibVY0Y0c5eWRDQjBlWEJsSUZOalpXNWxSR0YwWVNBOUlIdGNiaUFnWld4bGJXVnVkSE0vT2lCSmJYQnZjblJsWkVSaGRHRlRkR0YwWlZ0Y0ltVnNaVzFsYm5SelhDSmRPMXh1SUNCaGNIQlRkR0YwWlQ4NklFbHRjRzl5ZEdWa1JHRjBZVk4wWVhSbFcxd2lZWEJ3VTNSaGRHVmNJbDA3WEc0Z0lHTnZiR3hoWW05eVlYUnZjbk0vT2lCTllYQThjM1J5YVc1bkxDQkRiMnhzWVdKdmNtRjBiM0krTzF4dUlDQmpiMjF0YVhSVWIwaHBjM1J2Y25rL09pQmliMjlzWldGdU8xeHVJQ0JzYVdKeVlYSjVTWFJsYlhNL09pQk1hV0p5WVhKNVNYUmxiWE1nZkNCTWFXSnlZWEo1U1hSbGJYTmZkakU3WEc1OU8xeHVYRzVsZUhCdmNuUWdaVzUxYlNCVmMyVnlTV1JzWlZOMFlYUmxJSHRjYmlBZ1FVTlVTVlpGSUQwZ1hDSmhZM1JwZG1WY0lpeGNiaUFnUVZkQldTQTlJRndpWVhkaGVWd2lMRnh1SUNCSlJFeEZJRDBnWENKcFpHeGxYQ0lzWEc1OVhHNWNibVY0Y0c5eWRDQjBlWEJsSUVWNGNHOXlkRTl3ZEhNZ1BTQjdYRzRnSUhOaGRtVkdhV3hsVkc5RWFYTnJQem9nWW05dmJHVmhianRjYmlBZ2IyNUZlSEJ2Y25SVWIwSmhZMnRsYm1RL09pQW9YRzRnSUNBZ1pYaHdiM0owWldSRmJHVnRaVzUwY3pvZ2NtVmhaRzl1YkhrZ1RtOXVSR1ZzWlhSbFpFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFcxMHNYRzRnSUNBZ1lYQndVM1JoZEdVNklFRndjRk4wWVhSbExGeHVJQ0FnSUdacGJHVnpPaUJDYVc1aGNubEdhV3hsY3l4Y2JpQWdJQ0JqWVc1MllYTTZJRWhVVFV4RFlXNTJZWE5GYkdWdFpXNTBJSHdnYm5Wc2JDeGNiaUFnS1NBOVBpQjJiMmxrTzF4dUlDQnlaVzVrWlhKRGRYTjBiMjFWU1Q4NklDaGNiaUFnSUNCbGVIQnZjblJsWkVWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCT2IyNUVaV3hsZEdWa1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTeGNiaUFnSUNCaGNIQlRkR0YwWlRvZ1FYQndVM1JoZEdVc1hHNGdJQ0FnWm1sc1pYTTZJRUpwYm1GeWVVWnBiR1Z6TEZ4dUlDQWdJR05oYm5aaGN6b2dTRlJOVEVOaGJuWmhjMFZzWlcxbGJuUWdmQ0J1ZFd4c0xGeHVJQ0FwSUQwK0lFcFRXQzVGYkdWdFpXNTBPMXh1ZlR0Y2JseHVkSGx3WlNCRFlXNTJZWE5CWTNScGIyNXpJRDBnZTF4dUlDQmphR0Z1WjJWV2FXVjNRbUZqYTJkeWIzVnVaRU52Ykc5eVB6b2dZbTl2YkdWaGJqdGNiaUFnWTJ4bFlYSkRZVzUyWVhNL09pQmliMjlzWldGdU8xeHVJQ0JsZUhCdmNuUS9PaUJtWVd4elpTQjhJRVY0Y0c5eWRFOXdkSE03WEc0Z0lHeHZZV1JUWTJWdVpUODZJR0p2YjJ4bFlXNDdYRzRnSUhOaGRtVlViMEZqZEdsMlpVWnBiR1UvT2lCaWIyOXNaV0Z1TzF4dUlDQjBhR1Z0WlQ4NklHSnZiMnhsWVc0N1hHNGdJSE5oZG1WQmMwbHRZV2RsUHpvZ1ltOXZiR1ZoYmp0Y2JuMDdYRzVjYm1WNGNHOXlkQ0IwZVhCbElGVkpUM0IwYVc5dWN5QTlJSHRjYmlBZ1kyRnVkbUZ6UVdOMGFXOXVjejg2SUVOaGJuWmhjMEZqZEdsdmJuTTdYRzU5TzF4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JCY0hCUWNtOXdjeUE5SUVWNFkyRnNhV1J5WVhkUWNtOXdjeUFtSUh0Y2JpQWdWVWxQY0hScGIyNXpPaUI3WEc0Z0lDQWdZMkZ1ZG1GelFXTjBhVzl1Y3pvZ1VtVnhkV2x5WldROFEyRnVkbUZ6UVdOMGFXOXVjejRnSmlCN0lHVjRjRzl5ZERvZ1JYaHdiM0owVDNCMGN5QjlPMXh1SUNCOU8xeHVJQ0JrWlhSbFkzUlRZM0p2Ykd3NklHSnZiMnhsWVc0N1hHNGdJR2hoYm1Sc1pVdGxlV0p2WVhKa1IyeHZZbUZzYkhrNklHSnZiMnhsWVc0N1hHNGdJR2x6UTI5c2JHRmliM0poZEdsdVp6b2dZbTl2YkdWaGJqdGNibjA3WEc1Y2JpOHFLaUJCSUhOMVluTmxkQ0J2WmlCQmNIQWdZMnhoYzNNZ2NISnZjR1Z5ZEdsbGN5QjBhR0YwSUhkbElHNWxaV1FnZEc4Z2RYTmxJR1ZzYzJWM2FHVnlaVnh1SUNvZ2FXNGdkR2hsSUdGd2NDd2daV2NnVFdGdVlXZGxjaTRnUm1GamRHOXlaV1FnYjNWMElHbHVkRzhnWVNCelpYQmhjbUYwWlNCMGVYQmxJSFJ2SUd0bFpYQWdSRkpaTGlBcUwxeHVaWGh3YjNKMElIUjVjR1VnUVhCd1EyeGhjM05RY205d1pYSjBhV1Z6SUQwZ2UxeHVJQ0J3Y205d2N6b2dRWEJ3VUhKdmNITTdYRzRnSUdOaGJuWmhjem9nU0ZSTlRFTmhiblpoYzBWc1pXMWxiblFnZkNCdWRXeHNPMXh1SUNCbWIyTjFjME52Ym5SaGFXNWxjaWdwT2lCMmIybGtPMXh1SUNCc2FXSnlZWEo1T2lCTWFXSnlZWEo1TzF4dUlDQnBiV0ZuWlVOaFkyaGxPaUJOWVhBOFhHNGdJQ0FnUm1sc1pVbGtMRnh1SUNBZ0lIdGNiaUFnSUNBZ0lHbHRZV2RsT2lCSVZFMU1TVzFoWjJWRmJHVnRaVzUwSUh3Z1VISnZiV2x6WlR4SVZFMU1TVzFoWjJWRmJHVnRaVzUwUGp0Y2JpQWdJQ0FnSUcxcGJXVlVlWEJsT2lCMGVYQmxiMllnUVV4TVQxZEZSRjlKVFVGSFJWOU5TVTFGWDFSWlVFVlRXMjUxYldKbGNsMDdYRzRnSUNBZ2ZWeHVJQ0ErTzF4dUlDQm1hV3hsY3pvZ1FtbHVZWEo1Um1sc1pYTTdYRzU5TzF4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JRYjJsdWRHVnlSRzkzYmxOMFlYUmxJRDBnVW1WaFpHOXViSGs4ZTF4dUlDQXZMeUJVYUdVZ1ptbHljM1FnY0c5emFYUnBiMjRnWVhRZ2QyaHBZMmdnY0c5cGJuUmxja1J2ZDI0Z2FHRndjR1Z1WldSY2JpQWdiM0pwWjJsdU9pQlNaV0ZrYjI1c2VUeDdJSGc2SUc1MWJXSmxjanNnZVRvZ2JuVnRZbVZ5SUgwK08xeHVJQ0F2THlCVFlXMWxJR0Z6SUZ3aWIzSnBaMmx1WENJZ1luVjBJSE51WVhCd1pXUWdkRzhnZEdobElHZHlhV1FzSUdsbUlHZHlhV1FnYVhNZ2IyNWNiaUFnYjNKcFoybHVTVzVIY21sa09pQlNaV0ZrYjI1c2VUeDdJSGc2SUc1MWJXSmxjanNnZVRvZ2JuVnRZbVZ5SUgwK08xeHVJQ0F2THlCVFkzSnZiR3hpWVhJZ1kyaGxZMnR6WEc0Z0lITmpjbTlzYkdKaGNuTTZJRkpsZEhWeWJsUjVjR1U4ZEhsd1pXOW1JR2x6VDNabGNsTmpjbTlzYkVKaGNuTStPMXh1SUNBdkx5QlVhR1VnY0hKbGRtbHZkWE1nY0c5cGJuUmxjaUJ3YjNOcGRHbHZibHh1SUNCc1lYTjBRMjl2Y21Sek9pQjdJSGc2SUc1MWJXSmxjanNnZVRvZ2JuVnRZbVZ5SUgwN1hHNGdJQzh2SUcxaGNDQnZaaUJ2Y21sbmFXNWhiQ0JsYkdWdFpXNTBjeUJrWVhSaFhHNGdJRzl5YVdkcGJtRnNSV3hsYldWdWRITTZJRTFoY0R4emRISnBibWNzSUU1dmJrUmxiR1YwWldROFJYaGpZV3hwWkhKaGQwVnNaVzFsYm5RK1BqdGNiaUFnY21WemFYcGxPaUI3WEc0Z0lDQWdMeThnU0dGdVpHeGxJSGRvWlc0Z2NtVnphWHBwYm1jc0lHMXBaMmgwSUdOb1lXNW5aU0JrZFhKcGJtY2dkR2hsSUhCdmFXNTBaWElnYVc1MFpYSmhZM1JwYjI1Y2JpQWdJQ0JvWVc1a2JHVlVlWEJsT2lCTllYbGlaVlJ5WVc1elptOXliVWhoYm1Sc1pWUjVjR1U3WEc0Z0lDQWdMeThnVkdocGN5QnBjeUJrWlhSbGNtMXBibVZrSUc5dUlIUm9aU0JwYm1sMGFXRnNJSEJ2YVc1MFpYSWdaRzkzYmlCbGRtVnVkRnh1SUNBZ0lHbHpVbVZ6YVhwcGJtYzZJR0p2YjJ4bFlXNDdYRzRnSUNBZ0x5OGdWR2hwY3lCcGN5QmtaWFJsY20xcGJtVmtJRzl1SUhSb1pTQnBibWwwYVdGc0lIQnZhVzUwWlhJZ1pHOTNiaUJsZG1WdWRGeHVJQ0FnSUc5bVpuTmxkRG9nZXlCNE9pQnVkVzFpWlhJN0lIazZJRzUxYldKbGNpQjlPMXh1SUNBZ0lDOHZJRlJvYVhNZ2FYTWdaR1YwWlhKdGFXNWxaQ0J2YmlCMGFHVWdhVzVwZEdsaGJDQndiMmx1ZEdWeUlHUnZkMjRnWlhabGJuUmNiaUFnSUNCaGNuSnZkMFJwY21WamRHbHZiam9nWENKdmNtbG5hVzVjSWlCOElGd2laVzVrWENJN1hHNGdJQ0FnTHk4Z1ZHaHBjeUJwY3lCaElHTmxiblJsY2lCd2IybHVkQ0J2WmlCelpXeGxZM1JsWkNCbGJHVnRaVzUwY3lCa1pYUmxjbTFwYm1Wa0lHOXVJSFJvWlNCcGJtbDBhV0ZzSUhCdmFXNTBaWElnWkc5M2JpQmxkbVZ1ZENBb1ptOXlJSEp2ZEdGMGFXOXVJRzl1YkhrcFhHNGdJQ0FnWTJWdWRHVnlPaUI3SUhnNklHNTFiV0psY2pzZ2VUb2diblZ0WW1WeUlIMDdYRzRnSUgwN1hHNGdJR2hwZERvZ2UxeHVJQ0FnSUM4dklGUm9aU0JsYkdWdFpXNTBJSFJvWlNCd2IybHVkR1Z5SUdseklGd2lhR2wwZEdsdVoxd2lMQ0JwY3lCa1pYUmxjbTFwYm1Wa0lHOXVJSFJvWlNCcGJtbDBhV0ZzWEc0Z0lDQWdMeThnY0c5cGJuUmxjaUJrYjNkdUlHVjJaVzUwWEc0Z0lDQWdaV3hsYldWdWREb2dUbTl1UkdWc1pYUmxaRHhGZUdOaGJHbGtjbUYzUld4bGJXVnVkRDRnZkNCdWRXeHNPMXh1SUNBZ0lDOHZJRlJvWlNCbGJHVnRaVzUwY3lCMGFHVWdjRzlwYm5SbGNpQnBjeUJjSW1ocGRIUnBibWRjSWl3Z2FYTWdaR1YwWlhKdGFXNWxaQ0J2YmlCMGFHVWdhVzVwZEdsaGJGeHVJQ0FnSUM4dklIQnZhVzUwWlhJZ1pHOTNiaUJsZG1WdWRGeHVJQ0FnSUdGc2JFaHBkRVZzWlcxbGJuUnpPaUJPYjI1RVpXeGxkR1ZrUEVWNFkyRnNhV1J5WVhkRmJHVnRaVzUwUGx0ZE8xeHVJQ0FnSUM4dklGUm9hWE1nYVhNZ1pHVjBaWEp0YVc1bFpDQnZiaUIwYUdVZ2FXNXBkR2xoYkNCd2IybHVkR1Z5SUdSdmQyNGdaWFpsYm5SY2JpQWdJQ0IzWVhOQlpHUmxaRlJ2VTJWc1pXTjBhVzl1T2lCaWIyOXNaV0Z1TzF4dUlDQWdJQzh2SUZkb1pYUm9aWElnYzJWc1pXTjBaV1FnWld4bGJXVnVkQ2h6S1NCM1pYSmxJR1IxY0d4cFkyRjBaV1FzSUcxcFoyaDBJR05vWVc1blpTQmtkWEpwYm1jZ2RHaGxYRzRnSUNBZ0x5OGdjRzlwYm5SbGNpQnBiblJsY21GamRHbHZibHh1SUNBZ0lHaGhjMEpsWlc1RWRYQnNhV05oZEdWa09pQmliMjlzWldGdU8xeHVJQ0FnSUdoaGMwaHBkRU52YlcxdmJrSnZkVzVrYVc1blFtOTRUMlpUWld4bFkzUmxaRVZzWlcxbGJuUnpPaUJpYjI5c1pXRnVPMXh1SUNBZ0lHaGhjMGhwZEVWc1pXMWxiblJKYm5OcFpHVTZJR0p2YjJ4bFlXNDdYRzRnSUgwN1hHNGdJSGRwZEdoRGJXUlBja04wY213NklHSnZiMnhsWVc0N1hHNGdJR1J5WVdjNklIdGNiaUFnSUNBdkx5Qk5hV2RvZENCamFHRnVaMlVnWkhWeWFXNW5JSFJvWlNCd2IybHVkR1Z5SUdsdWRHVnlZWFJwYjI1Y2JpQWdJQ0JvWVhOUFkyTjFjbkpsWkRvZ1ltOXZiR1ZoYmp0Y2JpQWdJQ0F2THlCTmFXZG9kQ0JqYUdGdVoyVWdaSFZ5YVc1bklIUm9aU0J3YjJsdWRHVnlJR2x1ZEdWeVlYUnBiMjVjYmlBZ0lDQnZabVp6WlhRNklIc2dlRG9nYm5WdFltVnlPeUI1T2lCdWRXMWlaWElnZlNCOElHNTFiR3c3WEc0Z0lIMDdYRzRnSUM4dklGZGxJRzVsWldRZ2RHOGdhR0YyWlNCMGFHVnpaU0JwYmlCMGFHVWdjM1JoZEdVZ2MyOGdkR2hoZENCM1pTQmpZVzRnZFc1emRXSnpZM0pwWW1VZ2RHaGxiVnh1SUNCbGRtVnVkRXhwYzNSbGJtVnljem9nZTF4dUlDQWdJQzh2SUVsMEozTWdaR1ZtYVc1bFpDQnZiaUIwYUdVZ2FXNXBkR2xoYkNCd2IybHVkR1Z5SUdSdmQyNGdaWFpsYm5SY2JpQWdJQ0J2YmsxdmRtVTZJRzUxYkd3Z2ZDQlNaWFIxY201VWVYQmxQSFI1Y0dWdlppQjBhSEp2ZEhSc1pWSkJSajQ3WEc0Z0lDQWdMeThnU1hRbmN5QmtaV1pwYm1Wa0lHOXVJSFJvWlNCcGJtbDBhV0ZzSUhCdmFXNTBaWElnWkc5M2JpQmxkbVZ1ZEZ4dUlDQWdJRzl1VlhBNklHNTFiR3dnZkNBb0tHVjJaVzUwT2lCUWIybHVkR1Z5UlhabGJuUXBJRDArSUhadmFXUXBPMXh1SUNBZ0lDOHZJRWwwSjNNZ1pHVm1hVzVsWkNCdmJpQjBhR1VnYVc1cGRHbGhiQ0J3YjJsdWRHVnlJR1J2ZDI0Z1pYWmxiblJjYmlBZ0lDQnZia3RsZVVSdmQyNDZJRzUxYkd3Z2ZDQW9LR1YyWlc1ME9pQkxaWGxpYjJGeVpFVjJaVzUwS1NBOVBpQjJiMmxrS1R0Y2JpQWdJQ0F2THlCSmRDZHpJR1JsWm1sdVpXUWdiMjRnZEdobElHbHVhWFJwWVd3Z2NHOXBiblJsY2lCa2IzZHVJR1YyWlc1MFhHNGdJQ0FnYjI1TFpYbFZjRG9nYm5Wc2JDQjhJQ2dvWlhabGJuUTZJRXRsZVdKdllYSmtSWFpsYm5RcElEMCtJSFp2YVdRcE8xeHVJQ0I5TzF4dUlDQmliM2hUWld4bFkzUnBiMjQ2SUh0Y2JpQWdJQ0JvWVhOUFkyTjFjbkpsWkRvZ1ltOXZiR1ZoYmp0Y2JpQWdmVHRjYm4wK08xeHVYRzVsZUhCdmNuUWdkSGx3WlNCRmVHTmhiR2xrY21GM1NXMXdaWEpoZEdsMlpVRlFTU0E5SUh0Y2JpQWdkWEJrWVhSbFUyTmxibVU2SUVsdWMzUmhibU5sVkhsd1pUeDBlWEJsYjJZZ1FYQndQbHRjSW5Wd1pHRjBaVk5qWlc1bFhDSmRPMXh1SUNCeVpYTmxkRk5qWlc1bE9pQkpibk4wWVc1alpWUjVjR1U4ZEhsd1pXOW1JRUZ3Y0Q1YlhDSnlaWE5sZEZOalpXNWxYQ0pkTzF4dUlDQm5aWFJUWTJWdVpVVnNaVzFsYm5SelNXNWpiSFZrYVc1blJHVnNaWFJsWkRvZ1NXNXpkR0Z1WTJWVWVYQmxQRnh1SUNBZ0lIUjVjR1Z2WmlCQmNIQmNiaUFnUGx0Y0ltZGxkRk5qWlc1bFJXeGxiV1Z1ZEhOSmJtTnNkV1JwYm1kRVpXeGxkR1ZrWENKZE8xeHVJQ0JvYVhOMGIzSjVPaUI3WEc0Z0lDQWdZMnhsWVhJNklFbHVjM1JoYm1ObFZIbHdaVHgwZVhCbGIyWWdRWEJ3UGx0Y0luSmxjMlYwU0dsemRHOXllVndpWFR0Y2JpQWdmVHRjYmlBZ2MyTnliMnhzVkc5RGIyNTBaVzUwT2lCSmJuTjBZVzVqWlZSNWNHVThkSGx3Wlc5bUlFRndjRDViWENKelkzSnZiR3hVYjBOdmJuUmxiblJjSWwwN1hHNGdJR2RsZEZOalpXNWxSV3hsYldWdWRITTZJRWx1YzNSaGJtTmxWSGx3WlR4MGVYQmxiMllnUVhCd1BsdGNJbWRsZEZOalpXNWxSV3hsYldWdWRITmNJbDA3WEc0Z0lHZGxkRUZ3Y0ZOMFlYUmxPaUFvS1NBOVBpQkpibk4wWVc1alpWUjVjR1U4ZEhsd1pXOW1JRUZ3Y0Q1YlhDSnpkR0YwWlZ3aVhUdGNiaUFnWjJWMFJtbHNaWE02SUNncElEMCtJRWx1YzNSaGJtTmxWSGx3WlR4MGVYQmxiMllnUVhCd1BsdGNJbVpwYkdWelhDSmRPMXh1SUNCeVpXWnlaWE5vT2lCSmJuTjBZVzVqWlZSNWNHVThkSGx3Wlc5bUlFRndjRDViWENKeVpXWnlaWE5vWENKZE8xeHVJQ0JwYlhCdmNuUk1hV0p5WVhKNU9pQkpibk4wWVc1alpWUjVjR1U4ZEhsd1pXOW1JRUZ3Y0Q1YlhDSnBiWEJ2Y25STWFXSnlZWEo1Um5KdmJWVnliRndpWFR0Y2JpQWdjMlYwVkc5aGMzUk5aWE56WVdkbE9pQkpibk4wWVc1alpWUjVjR1U4ZEhsd1pXOW1JRUZ3Y0Q1YlhDSnpaWFJVYjJGemRFMWxjM05oWjJWY0lsMDdYRzRnSUdGa1pFWnBiR1Z6T2lBb1pHRjBZVG9nUW1sdVlYSjVSbWxzWlVSaGRHRmJYU2tnUFQ0Z2RtOXBaRHRjYmlBZ2NtVmhaSGxRY205dGFYTmxPaUJTWlhOdmJIWmhZbXhsVUhKdmJXbHpaVHhGZUdOaGJHbGtjbUYzU1cxd1pYSmhkR2wyWlVGUVNUNDdYRzRnSUhKbFlXUjVPaUIwY25WbE8xeHVJQ0JwWkRvZ2MzUnlhVzVuTzF4dWZUdGNiaUpkTENKdVlXMWxjeUk2VzEwc0luTnZkWEpqWlZKdmIzUWlPaUlpZlE9PVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi90eXBlcy50c1xcblwiKTtcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vdXRpbHMudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vdXRpbHMudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xuZXZhbChcIl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywge1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInNldERhdGVUaW1lRm9yVGVzdHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBzZXREYXRlVGltZUZvclRlc3RzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXREYXRlVGltZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldERhdGVUaW1lKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJjYXBpdGFsaXplU3RyaW5nXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY2FwaXRhbGl6ZVN0cmluZyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNUb29sSWNvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlzVG9vbEljb24pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzSW5wdXRMaWtlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNJbnB1dExpa2UpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzV3JpdGFibGVFbGVtZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNXcml0YWJsZUVsZW1lbnQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEZvbnRGYW1pbHlTdHJpbmdcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRGb250RmFtaWx5U3RyaW5nKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJnZXRGb250U3RyaW5nXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0Rm9udFN0cmluZyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGVib3VuY2VcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBkZWJvdW5jZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwidGhyb3R0bGVSQUZcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB0aHJvdHRsZVJBRiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiY2h1bmtcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBjaHVuayksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwic2VsZWN0Tm9kZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHNlbGVjdE5vZGUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJlbW92ZVNlbGVjdGlvblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJlbW92ZVNlbGVjdGlvbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZGlzdGFuY2VcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBkaXN0YW5jZSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwicmVzZXRDdXJzb3JcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZXNldEN1cnNvciksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwic2V0Q3Vyc29yXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gc2V0Q3Vyc29yKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJzZXRDdXJzb3JGb3JTaGFwZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHNldEN1cnNvckZvclNoYXBlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJpc0Z1bGxTY3JlZW5cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpc0Z1bGxTY3JlZW4pLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImFsbG93RnVsbFNjcmVlblxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFsbG93RnVsbFNjcmVlbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZXhpdEZ1bGxTY3JlZW5cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBleGl0RnVsbFNjcmVlbiksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0U2hvcnRjdXRLZXlcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRTaG9ydGN1dEtleSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwidmlld3BvcnRDb29yZHNUb1NjZW5lQ29vcmRzXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gdmlld3BvcnRDb29yZHNUb1NjZW5lQ29vcmRzKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJzY2VuZUNvb3Jkc1RvVmlld3BvcnRDb29yZHNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBzY2VuZUNvb3Jkc1RvVmlld3BvcnRDb29yZHMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldEdsb2JhbENTU1ZhcmlhYmxlXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0R2xvYmFsQ1NTVmFyaWFibGUpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzUlRMXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNSVEwpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInR1cGxlVG9Db29yc1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHR1cGxlVG9Db29ycyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibXV0ZUZTQWJvcnRFcnJvclxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIG11dGVGU0Fib3J0RXJyb3IpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImZpbmRJbmRleFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGZpbmRJbmRleCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZmluZExhc3RJbmRleFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGZpbmRMYXN0SW5kZXgpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImlzVHJhbnNwYXJlbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBpc1RyYW5zcGFyZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJyZXNvbHZhYmxlUHJvbWlzZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJlc29sdmFibGVQcm9taXNlKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJ3aXRoQmF0Y2hlZFVwZGF0ZXNcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB3aXRoQmF0Y2hlZFVwZGF0ZXMpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcIndpdGhCYXRjaGVkVXBkYXRlc1Rocm90dGxlZFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHdpdGhCYXRjaGVkVXBkYXRlc1Rocm90dGxlZCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibkZvcm1hdHRlclxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIG5Gb3JtYXR0ZXIpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldFZlcnNpb25cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRWZXJzaW9uKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJzdXBwb3J0c0Vtb2ppXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gc3VwcG9ydHNFbW9qaSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZ2V0TmVhcmVzdFNjcm9sbGFibGVDb250YWluZXJcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXROZWFyZXN0U2Nyb2xsYWJsZUNvbnRhaW5lciksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZm9jdXNOZWFyZXN0UGFyZW50XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZm9jdXNOZWFyZXN0UGFyZW50KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJwcmV2ZW50VW5sb2FkXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gcHJldmVudFVubG9hZCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiYnl0ZXNUb0hleFN0cmluZ1xcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGJ5dGVzVG9IZXhTdHJpbmcpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImdldFVwZGF0ZWRUaW1lc3RhbXBcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBnZXRVcGRhdGVkVGltZXN0YW1wKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJhcnJheVRvTWFwXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYXJyYXlUb01hcCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiaXNUZXN0RW52XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gaXNUZXN0RW52KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJ3cmFwRXZlbnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyB3cmFwRXZlbnQpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb2xvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vY29sb3JzICovIFxcXCIuLi8uLi9jb2xvcnMudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9jb25zdGFudHMgKi8gXFxcIi4uLy4uL2NvbnN0YW50cy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciByZWFjdF9kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIHJlYWN0LWRvbSAqLyBcXFwicmVhY3QtZG9tXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIHJlYWN0X2RvbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKHJlYWN0X2RvbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2tleXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4va2V5cyAqLyBcXFwiLi4vLi4va2V5cy50c1xcXCIpO1xcblxcblxcblxcblxcbmxldCBtb2NrRGF0ZVRpbWUgPSBudWxsO1xcbmNvbnN0IHNldERhdGVUaW1lRm9yVGVzdHMgPSAoZGF0ZVRpbWUpID0+IHtcXG4gICAgbW9ja0RhdGVUaW1lID0gZGF0ZVRpbWU7XFxufTtcXG5jb25zdCBnZXREYXRlVGltZSA9ICgpID0+IHtcXG4gICAgaWYgKG1vY2tEYXRlVGltZSkge1xcbiAgICAgICAgcmV0dXJuIG1vY2tEYXRlVGltZTtcXG4gICAgfVxcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcXG4gICAgY29uc3QgbW9udGggPSBgJHtkYXRlLmdldE1vbnRoKCkgKyAxfWAucGFkU3RhcnQoMiwgXFxcIjBcXFwiKTtcXG4gICAgY29uc3QgZGF5ID0gYCR7ZGF0ZS5nZXREYXRlKCl9YC5wYWRTdGFydCgyLCBcXFwiMFxcXCIpO1xcbiAgICBjb25zdCBociA9IGAke2RhdGUuZ2V0SG91cnMoKX1gLnBhZFN0YXJ0KDIsIFxcXCIwXFxcIik7XFxuICAgIGNvbnN0IG1pbiA9IGAke2RhdGUuZ2V0TWludXRlcygpfWAucGFkU3RhcnQoMiwgXFxcIjBcXFwiKTtcXG4gICAgcmV0dXJuIGAke3llYXJ9LSR7bW9udGh9LSR7ZGF5fS0ke2hyfSR7bWlufWA7XFxufTtcXG5jb25zdCBjYXBpdGFsaXplU3RyaW5nID0gKHN0cikgPT4gc3RyLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpO1xcbmNvbnN0IGlzVG9vbEljb24gPSAodGFyZ2V0KSA9PiB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiB0YXJnZXQuY2xhc3NOYW1lLmluY2x1ZGVzKFxcXCJUb29sSWNvblxcXCIpO1xcbmNvbnN0IGlzSW5wdXRMaWtlID0gKHRhcmdldCkgPT4gKHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIHRhcmdldC5kYXRhc2V0LnR5cGUgPT09IFxcXCJ3eXNpd3lnXFxcIikgfHxcXG4gICAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTEJSRWxlbWVudCB8fCAvLyBuZXdsaW5lIGluIHd5c2l3eWdcXG4gICAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCB8fFxcbiAgICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50IHx8XFxuICAgIHRhcmdldCBpbnN0YW5jZW9mIEhUTUxTZWxlY3RFbGVtZW50O1xcbmNvbnN0IGlzV3JpdGFibGVFbGVtZW50ID0gKHRhcmdldCkgPT4gKHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIHRhcmdldC5kYXRhc2V0LnR5cGUgPT09IFxcXCJ3eXNpd3lnXFxcIikgfHxcXG4gICAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTEJSRWxlbWVudCB8fCAvLyBuZXdsaW5lIGluIHd5c2l3eWdcXG4gICAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCB8fFxcbiAgICAodGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCAmJlxcbiAgICAgICAgKHRhcmdldC50eXBlID09PSBcXFwidGV4dFxcXCIgfHwgdGFyZ2V0LnR5cGUgPT09IFxcXCJudW1iZXJcXFwiKSk7XFxuY29uc3QgZ2V0Rm9udEZhbWlseVN0cmluZyA9ICh7IGZvbnRGYW1pbHksIH0pID0+IHtcXG4gICAgZm9yIChjb25zdCBbZm9udEZhbWlseVN0cmluZywgaWRdIG9mIE9iamVjdC5lbnRyaWVzKF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5GT05UX0ZBTUlMWSkpIHtcXG4gICAgICAgIGlmIChpZCA9PT0gZm9udEZhbWlseSkge1xcbiAgICAgICAgICAgIHJldHVybiBgJHtmb250RmFtaWx5U3RyaW5nfSwgJHtfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uV0lORE9XU19FTU9KSV9GQUxMQkFDS19GT05UfWA7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIF9jb25zdGFudHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5XSU5ET1dTX0VNT0pJX0ZBTExCQUNLX0ZPTlQ7XFxufTtcXG4vKiogcmV0dXJucyBmb250U2l6ZStmb250RmFtaWx5IHN0cmluZyBmb3IgYXNzaWdubWVudCB0byBET00gZWxlbWVudHMgKi9cXG5jb25zdCBnZXRGb250U3RyaW5nID0gKHsgZm9udFNpemUsIGZvbnRGYW1pbHksIH0pID0+IHtcXG4gICAgcmV0dXJuIGAke2ZvbnRTaXplfXB4ICR7Z2V0Rm9udEZhbWlseVN0cmluZyh7IGZvbnRGYW1pbHkgfSl9YDtcXG59O1xcbmNvbnN0IGRlYm91bmNlID0gKGZuLCB0aW1lb3V0KSA9PiB7XFxuICAgIGxldCBoYW5kbGUgPSAwO1xcbiAgICBsZXQgbGFzdEFyZ3MgPSBudWxsO1xcbiAgICBjb25zdCByZXQgPSAoLi4uYXJncykgPT4ge1xcbiAgICAgICAgbGFzdEFyZ3MgPSBhcmdzO1xcbiAgICAgICAgY2xlYXJUaW1lb3V0KGhhbmRsZSk7XFxuICAgICAgICBoYW5kbGUgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XFxuICAgICAgICAgICAgbGFzdEFyZ3MgPSBudWxsO1xcbiAgICAgICAgICAgIGZuKC4uLmFyZ3MpO1xcbiAgICAgICAgfSwgdGltZW91dCk7XFxuICAgIH07XFxuICAgIHJldC5mbHVzaCA9ICgpID0+IHtcXG4gICAgICAgIGNsZWFyVGltZW91dChoYW5kbGUpO1xcbiAgICAgICAgaWYgKGxhc3RBcmdzKSB7XFxuICAgICAgICAgICAgY29uc3QgX2xhc3RBcmdzID0gbGFzdEFyZ3M7XFxuICAgICAgICAgICAgbGFzdEFyZ3MgPSBudWxsO1xcbiAgICAgICAgICAgIGZuKC4uLl9sYXN0QXJncyk7XFxuICAgICAgICB9XFxuICAgIH07XFxuICAgIHJldC5jYW5jZWwgPSAoKSA9PiB7XFxuICAgICAgICBsYXN0QXJncyA9IG51bGw7XFxuICAgICAgICBjbGVhclRpbWVvdXQoaGFuZGxlKTtcXG4gICAgfTtcXG4gICAgcmV0dXJuIHJldDtcXG59O1xcbi8vIHRocm90dGxlIGNhbGxiYWNrIHRvIGV4ZWN1dGUgb25jZSBwZXIgYW5pbWF0aW9uIGZyYW1lXFxuY29uc3QgdGhyb3R0bGVSQUYgPSAoZm4pID0+IHtcXG4gICAgbGV0IGhhbmRsZSA9IG51bGw7XFxuICAgIGxldCBsYXN0QXJncyA9IG51bGw7XFxuICAgIGxldCBjYWxsYmFjayA9IG51bGw7XFxuICAgIGNvbnN0IHJldCA9ICguLi5hcmdzKSA9PiB7XFxuICAgICAgICBpZiAoZmFsc2UpIHt9XFxuICAgICAgICBsYXN0QXJncyA9IGFyZ3M7XFxuICAgICAgICBjYWxsYmFjayA9IGZuO1xcbiAgICAgICAgaWYgKGhhbmRsZSA9PT0gbnVsbCkge1xcbiAgICAgICAgICAgIGhhbmRsZSA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICBoYW5kbGUgPSBudWxsO1xcbiAgICAgICAgICAgICAgICBsYXN0QXJncyA9IG51bGw7XFxuICAgICAgICAgICAgICAgIGNhbGxiYWNrID0gbnVsbDtcXG4gICAgICAgICAgICAgICAgZm4oLi4uYXJncyk7XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgIH07XFxuICAgIHJldC5mbHVzaCA9ICgpID0+IHtcXG4gICAgICAgIGlmIChoYW5kbGUgIT09IG51bGwpIHtcXG4gICAgICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShoYW5kbGUpO1xcbiAgICAgICAgICAgIGhhbmRsZSA9IG51bGw7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAobGFzdEFyZ3MpIHtcXG4gICAgICAgICAgICBjb25zdCBfbGFzdEFyZ3MgPSBsYXN0QXJncztcXG4gICAgICAgICAgICBjb25zdCBfY2FsbGJhY2sgPSBjYWxsYmFjaztcXG4gICAgICAgICAgICBsYXN0QXJncyA9IG51bGw7XFxuICAgICAgICAgICAgY2FsbGJhY2sgPSBudWxsO1xcbiAgICAgICAgICAgIGlmIChfY2FsbGJhY2sgIT09IG51bGwpIHtcXG4gICAgICAgICAgICAgICAgX2NhbGxiYWNrKC4uLl9sYXN0QXJncyk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICB9O1xcbiAgICByZXQuY2FuY2VsID0gKCkgPT4ge1xcbiAgICAgICAgbGFzdEFyZ3MgPSBudWxsO1xcbiAgICAgICAgY2FsbGJhY2sgPSBudWxsO1xcbiAgICAgICAgaWYgKGhhbmRsZSAhPT0gbnVsbCkge1xcbiAgICAgICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGhhbmRsZSk7XFxuICAgICAgICAgICAgaGFuZGxlID0gbnVsbDtcXG4gICAgICAgIH1cXG4gICAgfTtcXG4gICAgcmV0dXJuIHJldDtcXG59O1xcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9sb2Rhc2gvbG9kYXNoL2Jsb2IvZXMvY2h1bmsuanNcXG5jb25zdCBjaHVuayA9IChhcnJheSwgc2l6ZSkgPT4ge1xcbiAgICBpZiAoIWFycmF5Lmxlbmd0aCB8fCBzaXplIDwgMSkge1xcbiAgICAgICAgcmV0dXJuIFtdO1xcbiAgICB9XFxuICAgIGxldCBpbmRleCA9IDA7XFxuICAgIGxldCByZXNJbmRleCA9IDA7XFxuICAgIGNvbnN0IHJlc3VsdCA9IEFycmF5KE1hdGguY2VpbChhcnJheS5sZW5ndGggLyBzaXplKSk7XFxuICAgIHdoaWxlIChpbmRleCA8IGFycmF5Lmxlbmd0aCkge1xcbiAgICAgICAgcmVzdWx0W3Jlc0luZGV4KytdID0gYXJyYXkuc2xpY2UoaW5kZXgsIChpbmRleCArPSBzaXplKSk7XFxuICAgIH1cXG4gICAgcmV0dXJuIHJlc3VsdDtcXG59O1xcbmNvbnN0IHNlbGVjdE5vZGUgPSAobm9kZSkgPT4ge1xcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XFxuICAgIGlmIChzZWxlY3Rpb24pIHtcXG4gICAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcXG4gICAgICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhub2RlKTtcXG4gICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcXG4gICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7XFxuICAgIH1cXG59O1xcbmNvbnN0IHJlbW92ZVNlbGVjdGlvbiA9ICgpID0+IHtcXG4gICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xcbiAgICBpZiAoc2VsZWN0aW9uKSB7XFxuICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XFxuICAgIH1cXG59O1xcbmNvbnN0IGRpc3RhbmNlID0gKHgsIHkpID0+IE1hdGguYWJzKHggLSB5KTtcXG5jb25zdCByZXNldEN1cnNvciA9IChjYW52YXMpID0+IHtcXG4gICAgaWYgKGNhbnZhcykge1xcbiAgICAgICAgY2FudmFzLnN0eWxlLmN1cnNvciA9IFxcXCJcXFwiO1xcbiAgICB9XFxufTtcXG5jb25zdCBzZXRDdXJzb3IgPSAoY2FudmFzLCBjdXJzb3IpID0+IHtcXG4gICAgaWYgKGNhbnZhcykge1xcbiAgICAgICAgY2FudmFzLnN0eWxlLmN1cnNvciA9IGN1cnNvcjtcXG4gICAgfVxcbn07XFxuY29uc3Qgc2V0Q3Vyc29yRm9yU2hhcGUgPSAoY2FudmFzLCBzaGFwZSkgPT4ge1xcbiAgICBpZiAoIWNhbnZhcykge1xcbiAgICAgICAgcmV0dXJuO1xcbiAgICB9XFxuICAgIGlmIChzaGFwZSA9PT0gXFxcInNlbGVjdGlvblxcXCIpIHtcXG4gICAgICAgIHJlc2V0Q3Vyc29yKGNhbnZhcyk7XFxuICAgICAgICAvLyBkbyBub3RoaW5nIGlmIGltYWdlIHRvb2wgaXMgc2VsZWN0ZWQgd2hpY2ggc3VnZ2VzdHMgdGhlcmUnc1xcbiAgICAgICAgLy8gYSBpbWFnZS1wcmV2aWV3IHNldCBhcyB0aGUgY3Vyc29yXFxuICAgIH1cXG4gICAgZWxzZSBpZiAoc2hhcGUgIT09IFxcXCJpbWFnZVxcXCIpIHtcXG4gICAgICAgIGNhbnZhcy5zdHlsZS5jdXJzb3IgPSBfY29uc3RhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uQ1VSU09SX1RZUEUuQ1JPU1NIQUlSO1xcbiAgICB9XFxufTtcXG5jb25zdCBpc0Z1bGxTY3JlZW4gPSAoKSA9PiB7IHZhciBfYTsgcmV0dXJuICgoX2EgPSBkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVOYW1lKSA9PT0gXFxcIkhUTUxcXFwiOyB9O1xcbmNvbnN0IGFsbG93RnVsbFNjcmVlbiA9ICgpID0+IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZXF1ZXN0RnVsbHNjcmVlbigpO1xcbmNvbnN0IGV4aXRGdWxsU2NyZWVuID0gKCkgPT4gZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTtcXG5jb25zdCBnZXRTaG9ydGN1dEtleSA9IChzaG9ydGN1dCkgPT4ge1xcbiAgICBzaG9ydGN1dCA9IHNob3J0Y3V0XFxuICAgICAgICAucmVwbGFjZSgvXFxcXGJBbHRcXFxcYi9pLCBcXFwiQWx0XFxcIilcXG4gICAgICAgIC5yZXBsYWNlKC9cXFxcYlNoaWZ0XFxcXGIvaSwgXFxcIlNoaWZ0XFxcIilcXG4gICAgICAgIC5yZXBsYWNlKC9cXFxcYihFbnRlcnxSZXR1cm4pXFxcXGIvaSwgXFxcIkVudGVyXFxcIilcXG4gICAgICAgIC5yZXBsYWNlKC9cXFxcYkRlbFxcXFxiL2ksIFxcXCJEZWxldGVcXFwiKTtcXG4gICAgaWYgKF9rZXlzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uaXNEYXJ3aW4pIHtcXG4gICAgICAgIHJldHVybiBzaG9ydGN1dFxcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXFxcYkN0cmxPckNtZFxcXFxiL2ksIFxcXCJDbWRcXFwiKVxcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXFxcYkFsdFxcXFxiL2ksIFxcXCJPcHRpb25cXFwiKTtcXG4gICAgfVxcbiAgICByZXR1cm4gc2hvcnRjdXQucmVwbGFjZSgvXFxcXGJDdHJsT3JDbWRcXFxcYi9pLCBcXFwiQ3RybFxcXCIpO1xcbn07XFxuY29uc3Qgdmlld3BvcnRDb29yZHNUb1NjZW5lQ29vcmRzID0gKHsgY2xpZW50WCwgY2xpZW50WSB9LCB7IHpvb20sIG9mZnNldExlZnQsIG9mZnNldFRvcCwgc2Nyb2xsWCwgc2Nyb2xsWSwgfSkgPT4ge1xcbiAgICBjb25zdCBpbnZTY2FsZSA9IDEgLyB6b29tLnZhbHVlO1xcbiAgICBjb25zdCB4ID0gKGNsaWVudFggLSBvZmZzZXRMZWZ0KSAqIGludlNjYWxlIC0gc2Nyb2xsWDtcXG4gICAgY29uc3QgeSA9IChjbGllbnRZIC0gb2Zmc2V0VG9wKSAqIGludlNjYWxlIC0gc2Nyb2xsWTtcXG4gICAgcmV0dXJuIHsgeCwgeSB9O1xcbn07XFxuY29uc3Qgc2NlbmVDb29yZHNUb1ZpZXdwb3J0Q29vcmRzID0gKHsgc2NlbmVYLCBzY2VuZVkgfSwgeyB6b29tLCBvZmZzZXRMZWZ0LCBvZmZzZXRUb3AsIHNjcm9sbFgsIHNjcm9sbFksIH0pID0+IHtcXG4gICAgY29uc3QgeCA9IChzY2VuZVggKyBzY3JvbGxYKSAqIHpvb20udmFsdWUgKyBvZmZzZXRMZWZ0O1xcbiAgICBjb25zdCB5ID0gKHNjZW5lWSArIHNjcm9sbFkpICogem9vbS52YWx1ZSArIG9mZnNldFRvcDtcXG4gICAgcmV0dXJuIHsgeCwgeSB9O1xcbn07XFxuY29uc3QgZ2V0R2xvYmFsQ1NTVmFyaWFibGUgPSAobmFtZSkgPT4gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoYC0tJHtuYW1lfWApO1xcbmNvbnN0IFJTX0xUUl9DSEFSUyA9IFxcXCJBLVphLXpcXFxcdTAwQzAtXFxcXHUwMEQ2XFxcXHUwMEQ4LVxcXFx1MDBGNlxcXFx1MDBGOC1cXFxcdTAyQjhcXFxcdTAzMDAtXFxcXHUwNTkwXFxcXHUwODAwLVxcXFx1MUZGRlxcXCIgK1xcbiAgICBcXFwiXFxcXHUyQzAwLVxcXFx1RkIxQ1xcXFx1RkRGRS1cXFxcdUZFNkZcXFxcdUZFRkQtXFxcXHVGRkZGXFxcIjtcXG5jb25zdCBSU19SVExfQ0hBUlMgPSBcXFwiXFxcXHUwNTkxLVxcXFx1MDdGRlxcXFx1RkIxRC1cXFxcdUZERkRcXFxcdUZFNzAtXFxcXHVGRUZDXFxcIjtcXG5jb25zdCBSRV9SVExfQ0hFQ0sgPSBuZXcgUmVnRXhwKGBeW14ke1JTX0xUUl9DSEFSU31dKlske1JTX1JUTF9DSEFSU31dYCk7XFxuLyoqXFxuICogQ2hlY2tzIHdoZXRoZXIgZmlyc3QgZGlyZWN0aW9uYWwgY2hhcmFjdGVyIGlzIFJUTC4gTWVhbmluZyB3aGV0aGVyIGl0IHN0YXJ0c1xcbiAqICB3aXRoIFJUTCBjaGFyYWN0ZXJzLCBvciBpbmRldGVybWluYXRlIChudW1iZXJzIGV0Yy4pIGNoYXJhY3RlcnMgZm9sbG93ZWQgYnlcXG4gKiAgUlRMLlxcbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZXhjYWxpZHJhdy9leGNhbGlkcmF3L3B1bGwvMTcyMiNkaXNjdXNzaW9uX3I0MzYzNDAxNzFcXG4gKi9cXG5jb25zdCBpc1JUTCA9ICh0ZXh0KSA9PiBSRV9SVExfQ0hFQ0sudGVzdCh0ZXh0KTtcXG5jb25zdCB0dXBsZVRvQ29vcnMgPSAoeHlUdXBsZSkgPT4ge1xcbiAgICBjb25zdCBbeCwgeV0gPSB4eVR1cGxlO1xcbiAgICByZXR1cm4geyB4LCB5IH07XFxufTtcXG4vKiogdXNlIGFzIGEgcmVqZWN0aW9uSGFuZGxlciB0byBtdXRlIGZpbGVzeXN0ZW0gQWJvcnQgZXJyb3JzICovXFxuY29uc3QgbXV0ZUZTQWJvcnRFcnJvciA9IChlcnJvcikgPT4ge1xcbiAgICBpZiAoKGVycm9yID09PSBudWxsIHx8IGVycm9yID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnJvci5uYW1lKSA9PT0gXFxcIkFib3J0RXJyb3JcXFwiKSB7XFxuICAgICAgICBjb25zb2xlLndhcm4oZXJyb3IpO1xcbiAgICAgICAgcmV0dXJuO1xcbiAgICB9XFxuICAgIHRocm93IGVycm9yO1xcbn07XFxuY29uc3QgZmluZEluZGV4ID0gKGFycmF5LCBjYiwgZnJvbUluZGV4ID0gMCkgPT4ge1xcbiAgICBpZiAoZnJvbUluZGV4IDwgMCkge1xcbiAgICAgICAgZnJvbUluZGV4ID0gYXJyYXkubGVuZ3RoICsgZnJvbUluZGV4O1xcbiAgICB9XFxuICAgIGZyb21JbmRleCA9IE1hdGgubWluKGFycmF5Lmxlbmd0aCwgTWF0aC5tYXgoZnJvbUluZGV4LCAwKSk7XFxuICAgIGxldCBpbmRleCA9IGZyb21JbmRleCAtIDE7XFxuICAgIHdoaWxlICgrK2luZGV4IDwgYXJyYXkubGVuZ3RoKSB7XFxuICAgICAgICBpZiAoY2IoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiAtMTtcXG59O1xcbmNvbnN0IGZpbmRMYXN0SW5kZXggPSAoYXJyYXksIGNiLCBmcm9tSW5kZXggPSBhcnJheS5sZW5ndGggLSAxKSA9PiB7XFxuICAgIGlmIChmcm9tSW5kZXggPCAwKSB7XFxuICAgICAgICBmcm9tSW5kZXggPSBhcnJheS5sZW5ndGggKyBmcm9tSW5kZXg7XFxuICAgIH1cXG4gICAgZnJvbUluZGV4ID0gTWF0aC5taW4oYXJyYXkubGVuZ3RoIC0gMSwgTWF0aC5tYXgoZnJvbUluZGV4LCAwKSk7XFxuICAgIGxldCBpbmRleCA9IGZyb21JbmRleCArIDE7XFxuICAgIHdoaWxlICgtLWluZGV4ID4gLTEpIHtcXG4gICAgICAgIGlmIChjYihhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcXG4gICAgICAgICAgICByZXR1cm4gaW5kZXg7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIC0xO1xcbn07XFxuY29uc3QgaXNUcmFuc3BhcmVudCA9IChjb2xvcikgPT4ge1xcbiAgICBjb25zdCBpc1JHQlRyYW5zcGFyZW50ID0gY29sb3IubGVuZ3RoID09PSA1ICYmIGNvbG9yLnN1YnN0cig0LCAxKSA9PT0gXFxcIjBcXFwiO1xcbiAgICBjb25zdCBpc1JSR0dCQlRyYW5zcGFyZW50ID0gY29sb3IubGVuZ3RoID09PSA5ICYmIGNvbG9yLnN1YnN0cig3LCAyKSA9PT0gXFxcIjAwXFxcIjtcXG4gICAgcmV0dXJuIChpc1JHQlRyYW5zcGFyZW50IHx8XFxuICAgICAgICBpc1JSR0dCQlRyYW5zcGFyZW50IHx8XFxuICAgICAgICBjb2xvciA9PT0gX2NvbG9yc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fW1xcXCJkZWZhdWx0XFxcIl0uZWxlbWVudEJhY2tncm91bmRbMF0pO1xcbn07XFxuY29uc3QgcmVzb2x2YWJsZVByb21pc2UgPSAoKSA9PiB7XFxuICAgIGxldCByZXNvbHZlO1xcbiAgICBsZXQgcmVqZWN0O1xcbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKF9yZXNvbHZlLCBfcmVqZWN0KSA9PiB7XFxuICAgICAgICByZXNvbHZlID0gX3Jlc29sdmU7XFxuICAgICAgICByZWplY3QgPSBfcmVqZWN0O1xcbiAgICB9KTtcXG4gICAgcHJvbWlzZS5yZXNvbHZlID0gcmVzb2x2ZTtcXG4gICAgcHJvbWlzZS5yZWplY3QgPSByZWplY3Q7XFxuICAgIHJldHVybiBwcm9taXNlO1xcbn07XFxuLyoqXFxuICogQHBhcmFtIGZ1bmMgaGFuZGxlciB0YWtpbmcgYXQgbW9zdCBzaW5nbGUgcGFyYW1ldGVyIChldmVudCkuXFxuICovXFxuY29uc3Qgd2l0aEJhdGNoZWRVcGRhdGVzID0gKGZ1bmMpID0+ICgoZXZlbnQpID0+IHtcXG4gICAgKDAscmVhY3RfZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMpKGZ1bmMsIGV2ZW50KTtcXG59KTtcXG4vKipcXG4gKiBiYXJjaGVzIFJlYWN0IHN0YXRlIHVwZGF0ZXMgYW5kIHRocm90dGxlcyB0aGUgY2FsbHMgdG8gYSBzaW5nbGUgY2FsbCBwZXJcXG4gKiBhbmltYXRpb24gZnJhbWVcXG4gKi9cXG5jb25zdCB3aXRoQmF0Y2hlZFVwZGF0ZXNUaHJvdHRsZWQgPSAoZnVuYykgPT4ge1xcbiAgICAvLyBAdHMtaWdub3JlXFxuICAgIHJldHVybiB0aHJvdHRsZVJBRigoKGV2ZW50KSA9PiB7XFxuICAgICAgICAoMCxyZWFjdF9kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcykoZnVuYywgZXZlbnQpO1xcbiAgICB9KSk7XFxufTtcXG4vL2h0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS85NDYyMzgyLzg0MThcXG5jb25zdCBuRm9ybWF0dGVyID0gKG51bSwgZGlnaXRzKSA9PiB7XFxuICAgIGNvbnN0IHNpID0gW1xcbiAgICAgICAgeyB2YWx1ZTogMSwgc3ltYm9sOiBcXFwiYlxcXCIgfSxcXG4gICAgICAgIHsgdmFsdWU6IDFlMywgc3ltYm9sOiBcXFwia1xcXCIgfSxcXG4gICAgICAgIHsgdmFsdWU6IDFlNiwgc3ltYm9sOiBcXFwiTVxcXCIgfSxcXG4gICAgICAgIHsgdmFsdWU6IDFlOSwgc3ltYm9sOiBcXFwiR1xcXCIgfSxcXG4gICAgXTtcXG4gICAgY29uc3QgcnggPSAvXFxcXC4wKyR8KFxcXFwuWzAtOV0qWzEtOV0pMCskLztcXG4gICAgbGV0IGluZGV4O1xcbiAgICBmb3IgKGluZGV4ID0gc2kubGVuZ3RoIC0gMTsgaW5kZXggPiAwOyBpbmRleC0tKSB7XFxuICAgICAgICBpZiAobnVtID49IHNpW2luZGV4XS52YWx1ZSkge1xcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiAoKG51bSAvIHNpW2luZGV4XS52YWx1ZSkudG9GaXhlZChkaWdpdHMpLnJlcGxhY2UocngsIFxcXCIkMVxcXCIpICsgc2lbaW5kZXhdLnN5bWJvbCk7XFxufTtcXG5jb25zdCBnZXRWZXJzaW9uID0gKCkgPT4ge1xcbiAgICB2YXIgX2E7XFxuICAgIHJldHVybiAoKChfYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1cXFwidmVyc2lvblxcXCJdJykpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250ZW50KSB8fFxcbiAgICAgICAgX2NvbnN0YW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkRFRkFVTFRfVkVSU0lPTik7XFxufTtcXG4vLyBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL01vZGVybml6ci9Nb2Rlcm5penIvYmxvYi9tYXN0ZXIvZmVhdHVyZS1kZXRlY3RzL2Vtb2ppLmpzXFxuY29uc3Qgc3VwcG9ydHNFbW9qaSA9ICgpID0+IHtcXG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcXFwiY2FudmFzXFxcIik7XFxuICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KFxcXCIyZFxcXCIpO1xcbiAgICBpZiAoIWN0eCkge1xcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICB9XFxuICAgIGNvbnN0IG9mZnNldCA9IDEyO1xcbiAgICBjdHguZmlsbFN0eWxlID0gXFxcIiNmMDBcXFwiO1xcbiAgICBjdHgudGV4dEJhc2VsaW5lID0gXFxcInRvcFxcXCI7XFxuICAgIGN0eC5mb250ID0gXFxcIjMycHggQXJpYWxcXFwiO1xcbiAgICAvLyBNb2Rlcm5penIgdXNlZCBcdUQ4M0RcdURDMjgsIGJ1dCBpdCBpcyBzb3J0IG9mIHN1cHBvcnRlZCBvbiBXaW5kb3dzIDcuXFxuICAgIC8vIEx1Y2tpbHkgXHVEODNEXHVERTAwIGlzbid0IHN1cHBvcnRlZC5cXG4gICAgY3R4LmZpbGxUZXh0KFxcXCJcdUQ4M0RcdURFMDBcXFwiLCAwLCAwKTtcXG4gICAgcmV0dXJuIGN0eC5nZXRJbWFnZURhdGEob2Zmc2V0LCBvZmZzZXQsIDEsIDEpLmRhdGFbMF0gIT09IDA7XFxufTtcXG5jb25zdCBnZXROZWFyZXN0U2Nyb2xsYWJsZUNvbnRhaW5lciA9IChlbGVtZW50KSA9PiB7XFxuICAgIGxldCBwYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XFxuICAgIHdoaWxlIChwYXJlbnQpIHtcXG4gICAgICAgIGlmIChwYXJlbnQgPT09IGRvY3VtZW50LmJvZHkpIHtcXG4gICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQ7XFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCB7IG92ZXJmbG93WSB9ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50KTtcXG4gICAgICAgIGNvbnN0IGhhc1Njcm9sbGFibGVDb250ZW50ID0gcGFyZW50LnNjcm9sbEhlaWdodCA+IHBhcmVudC5jbGllbnRIZWlnaHQ7XFxuICAgICAgICBpZiAoaGFzU2Nyb2xsYWJsZUNvbnRlbnQgJiZcXG4gICAgICAgICAgICAob3ZlcmZsb3dZID09PSBcXFwiYXV0b1xcXCIgfHwgb3ZlcmZsb3dZID09PSBcXFwic2Nyb2xsXFxcIikpIHtcXG4gICAgICAgICAgICByZXR1cm4gcGFyZW50O1xcbiAgICAgICAgfVxcbiAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XFxuICAgIH1cXG4gICAgcmV0dXJuIGRvY3VtZW50O1xcbn07XFxuY29uc3QgZm9jdXNOZWFyZXN0UGFyZW50ID0gKGVsZW1lbnQpID0+IHtcXG4gICAgbGV0IHBhcmVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcXG4gICAgd2hpbGUgKHBhcmVudCkge1xcbiAgICAgICAgaWYgKHBhcmVudC50YWJJbmRleCA+IC0xKSB7XFxuICAgICAgICAgICAgcGFyZW50LmZvY3VzKCk7XFxuICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgfVxcbiAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XFxuICAgIH1cXG59O1xcbmNvbnN0IHByZXZlbnRVbmxvYWQgPSAoZXZlbnQpID0+IHtcXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcXG4gICAgLy8gTk9URTogbW9kZXJuIGJyb3dzZXJzIG5vIGxvbmdlciBhbGxvdyBzaG93aW5nIGEgY3VzdG9tIG1lc3NhZ2UgaGVyZVxcbiAgICBldmVudC5yZXR1cm5WYWx1ZSA9IFxcXCJcXFwiO1xcbn07XFxuY29uc3QgYnl0ZXNUb0hleFN0cmluZyA9IChieXRlcykgPT4ge1xcbiAgICByZXR1cm4gQXJyYXkuZnJvbShieXRlcylcXG4gICAgICAgIC5tYXAoKGJ5dGUpID0+IGAwJHtieXRlLnRvU3RyaW5nKDE2KX1gLnNsaWNlKC0yKSlcXG4gICAgICAgIC5qb2luKFxcXCJcXFwiKTtcXG59O1xcbmNvbnN0IGdldFVwZGF0ZWRUaW1lc3RhbXAgPSAoKSA9PiAoaXNUZXN0RW52KCkgPyAxIDogRGF0ZS5ub3coKSk7XFxuLyoqXFxuICogVHJhbnNmb3JtcyBhcnJheSBvZiBvYmplY3RzIGNvbnRhaW5pbmcgYGlkYCBhdHRyaWJ1dGUsXFxuICogb3IgYXJyYXkgb2YgaWRzIChzdHJpbmdzKSwgaW50byBhIE1hcCwga2V5ZCBieSBgaWRgLlxcbiAqL1xcbmNvbnN0IGFycmF5VG9NYXAgPSAoaXRlbXMpID0+IHtcXG4gICAgcmV0dXJuIGl0ZW1zLnJlZHVjZSgoYWNjLCBlbGVtZW50KSA9PiB7XFxuICAgICAgICBhY2Muc2V0KHR5cGVvZiBlbGVtZW50ID09PSBcXFwic3RyaW5nXFxcIiA/IGVsZW1lbnQgOiBlbGVtZW50LmlkLCBlbGVtZW50KTtcXG4gICAgICAgIHJldHVybiBhY2M7XFxuICAgIH0sIG5ldyBNYXAoKSk7XFxufTtcXG5jb25zdCBpc1Rlc3RFbnYgPSAoKSA9PiB7IHZhciBfYTsgcmV0dXJuIHR5cGVvZiBwcm9jZXNzICE9PSBcXFwidW5kZWZpbmVkXFxcIiAmJiAoKF9hID0gKHtcXFwiUkVBQ1RfQVBQX0JBQ0tFTkRfVjJfR0VUX1VSTFxcXCI6XFxcImh0dHBzOi8vanNvbi1kZXYuZXhjYWxpZHJhdy5jb20vYXBpL3YyL1xcXCIsXFxcIlJFQUNUX0FQUF9CQUNLRU5EX1YyX1BPU1RfVVJMXFxcIjpcXFwiaHR0cHM6Ly9qc29uLWRldi5leGNhbGlkcmF3LmNvbS9hcGkvdjIvcG9zdC9cXFwiLFxcXCJSRUFDVF9BUFBfTElCUkFSWV9VUkxcXFwiOlxcXCJodHRwczovL2xpYnJhcmllcy5leGNhbGlkcmF3LmNvbVxcXCIsXFxcIlJFQUNUX0FQUF9MSUJSQVJZX0JBQ0tFTkRcXFwiOlxcXCJodHRwczovL3VzLWNlbnRyYWwxLWV4Y2FsaWRyYXctcm9vbS1wZXJzaXN0ZW5jZS5jbG91ZGZ1bmN0aW9ucy5uZXQvbGlicmFyaWVzXFxcIixcXFwiUkVBQ1RfQVBQX1NPQ0tFVF9TRVJWRVJfVVJMXFxcIjpcXFwiaHR0cDovL2xvY2FsaG9zdDozMDAyXFxcIixcXFwiUkVBQ1RfQVBQX0ZJUkVCQVNFX0NPTkZJR1xcXCI6XFxcIntcXFxcXFxcImFwaUtleVxcXFxcXFwiOlxcXFxcXFwiQUl6YVN5Q01reEE2MFhJVzhLYnFNWUw3ZWRDNHFUNWw0cUhYMmg4XFxcXFxcXCIsXFxcXFxcXCJhdXRoRG9tYWluXFxcXFxcXCI6XFxcXFxcXCJleGNhbGlkcmF3LW9zcy1kZXYuZmlyZWJhc2VhcHAuY29tXFxcXFxcXCIsXFxcXFxcXCJwcm9qZWN0SWRcXFxcXFxcIjpcXFxcXFxcImV4Y2FsaWRyYXctb3NzLWRldlxcXFxcXFwiLFxcXFxcXFwic3RvcmFnZUJ1Y2tldFxcXFxcXFwiOlxcXFxcXFwiZXhjYWxpZHJhdy1vc3MtZGV2LmFwcHNwb3QuY29tXFxcXFxcXCIsXFxcXFxcXCJtZXNzYWdpbmdTZW5kZXJJZFxcXFxcXFwiOlxcXFxcXFwiNjY0NTU5NTEyNjc3XFxcXFxcXCIsXFxcXFxcXCJhcHBJZFxcXFxcXFwiOlxcXFxcXFwiMTo2NjQ1NTk1MTI2Nzc6d2ViOmEzODUxODFmMjkyOGQzMjhhN2FhOGNcXFxcXFxcIn1cXFwifSkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5OT0RFX0VOVikgPT09IFxcXCJ0ZXN0XFxcIjsgfTtcXG5jb25zdCB3cmFwRXZlbnQgPSAobmFtZSwgbmF0aXZlRXZlbnQpID0+IHtcXG4gICAgcmV0dXJuIG5ldyBDdXN0b21FdmVudChuYW1lLCB7XFxuICAgICAgICBkZXRhaWw6IHtcXG4gICAgICAgICAgICBuYXRpdmVFdmVudCxcXG4gICAgICAgIH0sXFxuICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxcbiAgICB9KTtcXG59O1xcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2ZFhScGJITXVkSE11YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dEJRVUU0UWp0QlFVOVVPMEZCUnl0Q08wRkJRMnhDTzBGQlJXeERMRWxCUVVrc1dVRkJXU3hIUVVGclFpeEpRVUZKTEVOQlFVTTdRVUZGYUVNc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl4RFFVRkRMRkZCUVdkQ0xFVkJRVVVzUlVGQlJUdEpRVU4wUkN4WlFVRlpMRWRCUVVjc1VVRkJVU3hEUVVGRE8wRkJRekZDTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc1YwRkJWeXhIUVVGSExFZEJRVWNzUlVGQlJUdEpRVU01UWl4SlFVRkpMRmxCUVZrc1JVRkJSVHRSUVVOb1FpeFBRVUZQTEZsQlFWa3NRMEZCUXp0TFFVTnlRanRKUVVWRUxFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NTVUZCU1N4RlFVRkZMRU5CUVVNN1NVRkRlRUlzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8wbEJRMmhETEUxQlFVMHNTMEZCU3l4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEZUVRc1RVRkJUU3hIUVVGSExFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTJwRUxFMUJRVTBzUlVGQlJTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVOcVJDeE5RVUZOTEVkQlFVY3NSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRmNFUXNUMEZCVHl4SFFVRkhMRWxCUVVrc1NVRkJTU3hMUVVGTExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVWQlFVVXNSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJRenRCUVVNdlF5eERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVOQlFVTXNSMEZCVnl4RlFVRkZMRVZCUVVVc1EwRkRPVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFVkJRVVVzUjBGQlJ5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJSWFJETEUxQlFVMHNWVUZCVlN4SFFVRkhMRU5CUTNoQ0xFMUJRVzlETEVWQlEySXNSVUZCUlN4RFFVTjZRaXhOUVVGTkxGbEJRVmtzVjBGQlZ5eEpRVUZKTEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzBGQlJXeEZMRTFCUVUwc1YwRkJWeXhIUVVGSExFTkJRM3BDTEUxQlFXOURMRVZCVFc1Q0xFVkJRVVVzUTBGRGJrSXNRMEZCUXl4TlFVRk5MRmxCUVZrc1YwRkJWeXhKUVVGSkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4TFFVRkxMRk5CUVZNc1EwRkJRenRKUVVOd1JTeE5RVUZOTEZsQlFWa3NZVUZCWVN4SlFVRkpMSEZDUVVGeFFqdEpRVU40UkN4TlFVRk5MRmxCUVZrc1owSkJRV2RDTzBsQlEyeERMRTFCUVUwc1dVRkJXU3h0UWtGQmJVSTdTVUZEY2tNc1RVRkJUU3haUVVGWkxHbENRVUZwUWl4RFFVRkRPMEZCUlM5Q0xFMUJRVTBzYVVKQlFXbENMRWRCUVVjc1EwRkRMMElzVFVGQmIwTXNSVUZMYmtJc1JVRkJSU3hEUVVOdVFpeERRVUZETEUxQlFVMHNXVUZCV1N4WFFVRlhMRWxCUVVrc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEV0QlFVc3NVMEZCVXl4RFFVRkRPMGxCUTNCRkxFMUJRVTBzV1VGQldTeGhRVUZoTEVsQlFVa3NjVUpCUVhGQ08wbEJRM2hFTEUxQlFVMHNXVUZCV1N4dFFrRkJiVUk3U1VGRGNrTXNRMEZCUXl4TlFVRk5MRmxCUVZrc1owSkJRV2RDTzFGQlEycERMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUzBGQlN5eE5RVUZOTEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1MwRkJTeXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlJXNUVMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NRMEZCUXl4RlFVTnNReXhWUVVGVkxFZEJSMWdzUlVGQlJTeEZRVUZGTzBsQlEwZ3NTMEZCU3l4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eHRSRUZCVnl4RFFVRkRMRVZCUVVVN1VVRkRhRVVzU1VGQlNTeEZRVUZGTEV0QlFVc3NWVUZCVlN4RlFVRkZPMWxCUTNKQ0xFOUJRVThzUjBGQlJ5eG5Ra0ZCWjBJc1MwRkJTeXh0UlVGQk1rSXNSVUZCUlN4RFFVRkRPMU5CUXpsRU8wdEJRMFk3U1VGRFJDeFBRVUZQTEcxRlFVRXlRaXhEUVVGRE8wRkJRM0pETEVOQlFVTXNRMEZCUXp0QlFVVkdMSGRGUVVGM1JUdEJRVU5xUlN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhEUVVGRExFVkJRelZDTEZGQlFWRXNSVUZEVWl4VlFVRlZMRWRCU1Znc1JVRkJSU3hGUVVGRk8wbEJRMGdzVDBGQlR5eEhRVUZITEZGQlFWRXNUVUZCVFN4dFFrRkJiVUlzUTBGQlF5eEZRVUZGTEZWQlFWVXNSVUZCUlN4RFFVRkRMRVZCUVdkQ0xFTkJRVU03UVVGRE9VVXNRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3hSUVVGUkxFZEJRVWNzUTBGRGRFSXNSVUZCZDBJc1JVRkRlRUlzVDBGQlpTeEZRVU5tTEVWQlFVVTdTVUZEUml4SlFVRkpMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRFppeEpRVUZKTEZGQlFWRXNSMEZCWVN4SlFVRkpMRU5CUVVNN1NVRkRPVUlzVFVGQlRTeEhRVUZITEVkQlFVY3NRMEZCUXl4SFFVRkhMRWxCUVU4c1JVRkJSU3hGUVVGRk8xRkJRM3BDTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNN1VVRkRhRUlzV1VGQldTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUTNKQ0xFMUJRVTBzUjBGQlJ5eE5RVUZOTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1JVRkJSVHRaUVVNNVFpeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRPMWxCUTJoQ0xFVkJRVVVzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTJRc1EwRkJReXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzBsQlEyUXNRMEZCUXl4RFFVRkRPMGxCUTBZc1IwRkJSeXhEUVVGRExFdEJRVXNzUjBGQlJ5eEhRVUZITEVWQlFVVTdVVUZEWml4WlFVRlpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRGNrSXNTVUZCU1N4UlFVRlJMRVZCUVVVN1dVRkRXaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eFJRVUZSTEVOQlFVTTdXVUZETTBJc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF6dFpRVU5vUWl4RlFVRkZMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU1zUTBGQlF6dFRRVU5zUWp0SlFVTklMRU5CUVVNc1EwRkJRenRKUVVOR0xFZEJRVWNzUTBGQlF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4RlFVRkZPMUZCUTJoQ0xGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTTdVVUZEYUVJc1dVRkJXU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBsQlEzWkNMRU5CUVVNc1EwRkJRenRKUVVOR0xFOUJRVThzUjBGQlJ5eERRVUZETzBGQlEySXNRMEZCUXl4RFFVRkRPMEZCUlVZc2QwUkJRWGRFTzBGQlEycEVMRTFCUVUwc1YwRkJWeXhIUVVGSExFTkJRV3RDTEVWQlFYZENMRVZCUVVVc1JVRkJSVHRKUVVOMlJTeEpRVUZKTEUxQlFVMHNSMEZCYTBJc1NVRkJTU3hEUVVGRE8wbEJRMnBETEVsQlFVa3NVVUZCVVN4SFFVRmhMRWxCUVVrc1EwRkJRenRKUVVNNVFpeEpRVUZKTEZGQlFWRXNSMEZCYTBNc1NVRkJTU3hEUVVGRE8wbEJRMjVFTEUxQlFVMHNSMEZCUnl4SFFVRkhMRU5CUVVNc1IwRkJSeXhKUVVGUExFVkJRVVVzUlVGQlJUdFJRVU42UWl4SlFVRkpMRXRCUVN0Q0xFVkJRVVVzUlVGSGNFTTdVVUZEUkN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRMmhDTEZGQlFWRXNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRaQ3hKUVVGSkxFMUJRVTBzUzBGQlN5eEpRVUZKTEVWQlFVVTdXVUZEYmtJc1RVRkJUU3hIUVVGSExFMUJRVTBzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhIUVVGSExFVkJRVVU3WjBKQlEzcERMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU03WjBKQlEyUXNVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJRenRuUWtGRGFFSXNVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJRenRuUWtGRGFFSXNSVUZCUlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03V1VGRFpDeERRVUZETEVOQlFVTXNRMEZCUXp0VFFVTktPMGxCUTBnc1EwRkJReXhEUVVGRE8wbEJRMFlzUjBGQlJ5eERRVUZETEV0QlFVc3NSMEZCUnl4SFFVRkhMRVZCUVVVN1VVRkRaaXhKUVVGSkxFMUJRVTBzUzBGQlN5eEpRVUZKTEVWQlFVVTdXVUZEYmtJc2IwSkJRVzlDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkROMElzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXp0VFFVTm1PMUZCUTBRc1NVRkJTU3hSUVVGUkxFVkJRVVU3V1VGRFdpeE5RVUZOTEZOQlFWTXNSMEZCUnl4UlFVRlJMRU5CUVVNN1dVRkRNMElzVFVGQlRTeFRRVUZUTEVkQlFVY3NVVUZCVVN4RFFVRkRPMWxCUXpOQ0xGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTTdXVUZEYUVJc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF6dFpRVU5vUWl4SlFVRkpMRk5CUVZNc1MwRkJTeXhKUVVGSkxFVkJRVVU3WjBKQlEzUkNMRk5CUVZNc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF5eERRVUZETzJGQlEzcENPMU5CUTBZN1NVRkRTQ3hEUVVGRExFTkJRVU03U1VGRFJpeEhRVUZITEVOQlFVTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1JVRkJSVHRSUVVOb1FpeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUTJoQ0xGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTTdVVUZEYUVJc1NVRkJTU3hOUVVGTkxFdEJRVXNzU1VGQlNTeEZRVUZGTzFsQlEyNUNMRzlDUVVGdlFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUXpkQ0xFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTTdVMEZEWmp0SlFVTklMRU5CUVVNc1EwRkJRenRKUVVOR0xFOUJRVThzUjBGQlJ5eERRVUZETzBGQlEySXNRMEZCUXl4RFFVRkRPMEZCUlVZc2IwUkJRVzlFTzBGQlF6ZERMRTFCUVUwc1MwRkJTeXhIUVVGSExFTkJRMjVDTEV0QlFXMUNMRVZCUTI1Q0xFbEJRVmtzUlVGRFRDeEZRVUZGTzBsQlExUXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFbEJRVWtzU1VGQlNTeEhRVUZITEVOQlFVTXNSVUZCUlR0UlFVTTNRaXhQUVVGUExFVkJRVVVzUTBGQlF6dExRVU5ZTzBsQlEwUXNTVUZCU1N4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRMlFzU1VGQlNTeFJRVUZSTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTJwQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOeVJDeFBRVUZQTEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNc1RVRkJUU3hGUVVGRk8xRkJRek5DTEUxQlFVMHNRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1MwRkJTeXhKUVVGSkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdTMEZETVVRN1NVRkRSQ3hQUVVGUExFMUJRVTBzUTBGQlF6dEJRVU5vUWl4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxGVkJRVlVzUjBGQlJ5eERRVUZETEVsQlFXRXNSVUZCUlN4RlFVRkZPMGxCUXpGRExFMUJRVTBzVTBGQlV5eEhRVUZITEUxQlFVMHNRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJRenRKUVVONFF5eEpRVUZKTEZOQlFWTXNSVUZCUlR0UlFVTmlMRTFCUVUwc1MwRkJTeXhIUVVGSExGRkJRVkVzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0UlFVTnlReXhMUVVGTExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGREwwSXNVMEZCVXl4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRE8xRkJRelZDTEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UzBGRE0wSTdRVUZEU0N4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxHVkJRV1VzUjBGQlJ5eEhRVUZITEVWQlFVVTdTVUZEYkVNc1RVRkJUU3hUUVVGVExFZEJRVWNzVFVGQlRTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMGxCUTNoRExFbEJRVWtzVTBGQlV5eEZRVUZGTzFGQlEySXNVMEZCVXl4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRE8wdEJRemRDTzBGQlEwZ3NRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3hSUVVGUkxFZEJRVWNzUTBGQlF5eERRVUZUTEVWQlFVVXNRMEZCVXl4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVVelJDeE5RVUZOTEZkQlFWY3NSMEZCUnl4RFFVRkRMRTFCUVdkRExFVkJRVVVzUlVGQlJUdEpRVU01UkN4SlFVRkpMRTFCUVUwc1JVRkJSVHRSUVVOV0xFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4SFFVRkhMRVZCUVVVc1EwRkJRenRMUVVNeFFqdEJRVU5JTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc1UwRkJVeXhIUVVGSExFTkJRVU1zVFVGQlowTXNSVUZCUlN4TlFVRmpMRVZCUVVVc1JVRkJSVHRKUVVNMVJTeEpRVUZKTEUxQlFVMHNSVUZCUlR0UlFVTldMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXp0TFFVTTVRanRCUVVOSUxFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzUTBGREwwSXNUVUZCWjBNc1JVRkRhRU1zUzBGQllTeEZRVU5pTEVWQlFVVTdTVUZEUml4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRk8xRkJRMWdzVDBGQlR6dExRVU5TTzBsQlEwUXNTVUZCU1N4TFFVRkxMRXRCUVVzc1YwRkJWeXhGUVVGRk8xRkJRM3BDTEZkQlFWY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVOd1FpdzRSRUZCT0VRN1VVRkRPVVFzYjBOQlFXOURPMHRCUTNKRE8xTkJRVTBzU1VGQlNTeExRVUZMTEV0QlFVc3NUMEZCVHl4RlFVRkZPMUZCUXpWQ0xFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4SFFVRkhMRFpFUVVGeFFpeERRVUZETzB0QlF6ZERPMEZCUTBnc1EwRkJReXhEUVVGRE8wRkJSVXNzVFVGQlRTeFpRVUZaTEVkQlFVY3NSMEZCUnl4RlFVRkZMRmRCUXk5Q0xITkNRVUZSTEVOQlFVTXNhVUpCUVdsQ0xEQkRRVUZGTEZGQlFWRXNUVUZCU3l4TlFVRk5MRWxCUVVNN1FVRkZNME1zVFVGQlRTeGxRVUZsTEVkQlFVY3NSMEZCUnl4RlFVRkZMRU5CUTJ4RExGRkJRVkVzUTBGQlF5eGxRVUZsTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzUTBGQlF6dEJRVVY0UXl4TlFVRk5MR05CUVdNc1IwRkJSeXhIUVVGSExFVkJRVVVzUTBGQlF5eFJRVUZSTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNN1FVRkZka1FzVFVGQlRTeGpRVUZqTEVkQlFVY3NRMEZCUXl4UlFVRm5RaXhGUVVGVkxFVkJRVVU3U1VGRGVrUXNVVUZCVVN4SFFVRkhMRkZCUVZFN1UwRkRhRUlzVDBGQlR5eERRVUZETEZWQlFWVXNSVUZCUlN4TFFVRkxMRU5CUVVNN1UwRkRNVUlzVDBGQlR5eERRVUZETEZsQlFWa3NSVUZCUlN4UFFVRlBMRU5CUVVNN1UwRkRPVUlzVDBGQlR5eERRVUZETEhGQ1FVRnhRaXhGUVVGRkxFOUJRVThzUTBGQlF6dFRRVU4yUXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETzBsQlJXcERMRWxCUVVrc01rTkJRVkVzUlVGQlJUdFJRVU5hTEU5QlFVOHNVVUZCVVR0aFFVTmFMRTlCUVU4c1EwRkJReXhuUWtGQlowSXNSVUZCUlN4TFFVRkxMRU5CUVVNN1lVRkRhRU1zVDBGQlR5eERRVUZETEZWQlFWVXNSVUZCUlN4UlFVRlJMRU5CUVVNc1EwRkJRenRMUVVOc1F6dEpRVU5FTEU5QlFVOHNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhuUWtGQlowSXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVOd1JDeERRVUZETEVOQlFVTTdRVUZGU3l4TlFVRk5MREpDUVVFeVFpeEhRVUZITEVOQlEzcERMRVZCUVVVc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGQmQwTXNSVUZETVVRc1JVRkRSU3hKUVVGSkxFVkJRMG9zVlVGQlZTeEZRVU5XTEZOQlFWTXNSVUZEVkN4UFFVRlBMRVZCUTFBc1QwRkJUeXhIUVU5U0xFVkJRMFFzUlVGQlJUdEpRVU5HTEUxQlFVMHNVVUZCVVN4SFFVRkhMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETzBsQlEyaERMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eEhRVUZITEZWQlFWVXNRMEZCUXl4SFFVRkhMRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU03U1VGRGRFUXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFZEJRVWNzVTBGQlV5eERRVUZETEVkQlFVY3NVVUZCVVN4SFFVRkhMRTlCUVU4c1EwRkJRenRKUVVWeVJDeFBRVUZQTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRE8wRkJRMnhDTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc01rSkJRVEpDTEVkQlFVY3NRMEZEZWtNc1JVRkJSU3hOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZ6UXl4RlFVTjBSQ3hGUVVORkxFbEJRVWtzUlVGRFNpeFZRVUZWTEVWQlExWXNVMEZCVXl4RlFVTlVMRTlCUVU4c1JVRkRVQ3hQUVVGUExFZEJUMUlzUlVGRFJDeEZRVUZGTzBsQlEwWXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1IwRkJSeXhWUVVGVkxFTkJRVU03U1VGRGRrUXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU03U1VGRGRFUXNUMEZCVHl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF6dEJRVU5zUWl4RFFVRkRMRU5CUVVNN1FVRkZTeXhOUVVGTkxHOUNRVUZ2UWl4SFFVRkhMRU5CUVVNc1NVRkJXU3hGUVVGRkxFVkJRVVVzUTBGRGJrUXNaMEpCUVdkQ0xFTkJRVU1zVVVGQlVTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEV0QlFVc3NTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVVVelJTeE5RVUZOTEZsQlFWa3NSMEZEYUVJc2VVVkJRWGxGTzBsQlEzcEZMSGxEUVVGNVF5eERRVUZETzBGQlF6VkRMRTFCUVUwc1dVRkJXU3hIUVVGSExIbERRVUY1UXl4RFFVRkRPMEZCUXk5RUxFMUJRVTBzV1VGQldTeEhRVUZITEVsQlFVa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1dVRkJXU3hOUVVGTkxGbEJRVmtzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZEZWtVN096czdPMGRCUzBjN1FVRkRTU3hOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEVsQlFWa3NSVUZCUlN4RlFVRkZMRU5CUVVNc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVVjRSQ3hOUVVGTkxGbEJRVmtzUjBGQlJ5eERRVU14UWl4UFFVRnJReXhGUVVOU0xFVkJRVVU3U1VGRE5VSXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTTdTVUZEZGtJc1QwRkJUeXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXp0QlFVTnNRaXhEUVVGRExFTkJRVU03UVVGRlJpeG5SVUZCWjBVN1FVRkRla1FzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhEUVVGRExFdEJRV0VzUlVGQlJTeEZRVUZGTzBsQlEyaEVMRWxCUVVrc1RVRkJTeXhoUVVGTUxFdEJRVXNzZFVKQlFVd3NTMEZCU3l4RFFVRkZMRWxCUVVrc1RVRkJTeXhaUVVGWkxFVkJRVVU3VVVGRGFFTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU53UWl4UFFVRlBPMHRCUTFJN1NVRkRSQ3hOUVVGTkxFdEJRVXNzUTBGQlF6dEJRVU5rTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc1UwRkJVeXhIUVVGSExFTkJRM1pDTEV0QlFXMUNMRVZCUTI1Q0xFVkJRU3RFTEVWQlF5OUVMRmxCUVc5Q0xFTkJRVU1zUlVGRGNrSXNSVUZCUlR0SlFVTkdMRWxCUVVrc1UwRkJVeXhIUVVGSExFTkJRVU1zUlVGQlJUdFJRVU5xUWl4VFFVRlRMRWRCUVVjc1MwRkJTeXhEUVVGRExFMUJRVTBzUjBGQlJ5eFRRVUZUTEVOQlFVTTdTMEZEZEVNN1NVRkRSQ3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRE0wUXNTVUZCU1N4TFFVRkxMRWRCUVVjc1UwRkJVeXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU14UWl4UFFVRlBMRVZCUVVVc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF5eE5RVUZOTEVWQlFVVTdVVUZETjBJc1NVRkJTU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hMUVVGTExFTkJRVU1zUlVGQlJUdFpRVU5zUXl4UFFVRlBMRXRCUVVzc1EwRkJRenRUUVVOa08wdEJRMFk3U1VGRFJDeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTFvc1EwRkJReXhEUVVGRE8wRkJSVXNzVFVGQlRTeGhRVUZoTEVkQlFVY3NRMEZETTBJc1MwRkJiVUlzUlVGRGJrSXNSVUZCSzBRc1JVRkRMMFFzV1VGQmIwSXNTMEZCU3l4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRM0JETEVWQlFVVTdTVUZEUml4SlFVRkpMRk5CUVZNc1IwRkJSeXhEUVVGRExFVkJRVVU3VVVGRGFrSXNVMEZCVXl4SFFVRkhMRXRCUVVzc1EwRkJReXhOUVVGTkxFZEJRVWNzVTBGQlV5eERRVUZETzB0QlEzUkRPMGxCUTBRc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU12UkN4SlFVRkpMRXRCUVVzc1IwRkJSeXhUUVVGVExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlF6RkNMRTlCUVU4c1JVRkJSU3hMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFVVTdVVUZEYmtJc1NVRkJTU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hMUVVGTExFTkJRVU1zUlVGQlJUdFpRVU5zUXl4UFFVRlBMRXRCUVVzc1EwRkJRenRUUVVOa08wdEJRMFk3U1VGRFJDeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTFvc1EwRkJReXhEUVVGRE8wRkJSVXNzVFVGQlRTeGhRVUZoTEVkQlFVY3NRMEZCUXl4TFFVRmhMRVZCUVVVc1JVRkJSVHRKUVVNM1F5eE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFdEJRVXNzUTBGQlF5eE5RVUZOTEV0QlFVc3NRMEZCUXl4SlFVRkpMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJRenRKUVVNeFJTeE5RVUZOTEcxQ1FVRnRRaXhIUVVGSExFdEJRVXNzUTBGQlF5eE5RVUZOTEV0QlFVc3NRMEZCUXl4SlFVRkpMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4TFFVRkxMRWxCUVVrc1EwRkJRenRKUVVNNVJTeFBRVUZQTEVOQlEwd3NaMEpCUVdkQ08xRkJRMmhDTEcxQ1FVRnRRanRSUVVOdVFpeExRVUZMTEV0QlFVc3NiMFZCUVRKQ0xFTkJRM1JETEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNN1FVRk5TeXhOUVVGTkxHbENRVUZwUWl4SFFVRkhMRWRCUVUwc1JVRkJSVHRKUVVOMlF5eEpRVUZKTEU5QlFXRXNRMEZCUXp0SlFVTnNRaXhKUVVGSkxFMUJRVmtzUTBGQlF6dEpRVU5xUWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEZGQlFWRXNSVUZCUlN4UFFVRlBMRVZCUVVVc1JVRkJSVHRSUVVOb1JDeFBRVUZQTEVkQlFVY3NVVUZCVVN4RFFVRkRPMUZCUTI1Q0xFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTTdTVUZEYmtJc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFJpeFBRVUZsTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTlCUVU4c1EwRkJRenRKUVVOc1F5eFBRVUZsTEVOQlFVTXNUVUZCVFN4SFFVRkhMRTFCUVUwc1EwRkJRenRKUVVOcVF5eFBRVUZQTEU5QlFTdENMRU5CUVVNN1FVRkRla01zUTBGQlF5eERRVUZETzBGQlJVWTdPMGRCUlVjN1FVRkRTU3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMRU5CUjJoRExFbEJRWFZGTEVWQlEzWkZMRVZCUVVVc1EwRkRSaXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVTdTVUZEVkN4clJVRkJkVUlzUTBGQlF5eEpRVUZwUWl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRM0JFTEVOQlFVTXNRMEZCWXl4RFFVRkRPMEZCUld4Q096czdSMEZIUnp0QlFVTkpMRTFCUVUwc01rSkJRVEpDTEVkQlFVY3NRMEZIZWtNc1NVRkJkVVVzUlVGRGRrVXNSVUZCUlR0SlFVTkdMR0ZCUVdFN1NVRkRZaXhQUVVGUExGZEJRVmNzUTBGQmQwSXNRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRk8xRkJRMjVFTEd0RlFVRjFRaXhEUVVGRExFbEJRVWtzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTjJReXhEUVVGRExFTkJRV01zUTBGQlF5eERRVUZETzBGQlEyNUNMRU5CUVVNc1EwRkJRenRCUVVWR0xEQkRRVUV3UXp0QlFVTnVReXhOUVVGTkxGVkJRVlVzUjBGQlJ5eERRVUZETEVkQlFWY3NSVUZCUlN4TlFVRmpMRVZCUVZVc1JVRkJSVHRKUVVOb1JTeE5RVUZOTEVWQlFVVXNSMEZCUnp0UlFVTlVMRVZCUVVVc1MwRkJTeXhGUVVGRkxFTkJRVU1zUlVGQlJTeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZPMUZCUTNwQ0xFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NSVUZCUlN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRk8xRkJRek5DTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWRCUVVjc1JVRkJSU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTzFGQlF6TkNMRVZCUVVVc1MwRkJTeXhGUVVGRkxFZEJRVWNzUlVGQlJTeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZPMHRCUXpWQ0xFTkJRVU03U1VGRFJpeE5RVUZOTEVWQlFVVXNSMEZCUnl3d1FrRkJNRUlzUTBGQlF6dEpRVU4wUXl4SlFVRkpMRXRCUVVzc1EwRkJRenRKUVVOV0xFdEJRVXNzUzBGQlN5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhGUVVGRkxFdEJRVXNzUjBGQlJ5eERRVUZETEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVN1VVRkRPVU1zU1VGQlNTeEhRVUZITEVsQlFVa3NSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJUdFpRVU14UWl4TlFVRk5PMU5CUTFBN1MwRkRSanRKUVVORUxFOUJRVThzUTBGRFRDeERRVUZETEVkQlFVY3NSMEZCUnl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEVWQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZETjBVc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNWVUZCVlN4SFFVRkhMRWRCUVVjc1JVRkJSVHM3U1VGRE4wSXNUMEZCVHl4RFFVTk1MR1ZCUVZFc1EwRkJReXhoUVVGaExFTkJRV3RDTEhOQ1FVRnpRaXhEUVVGRExEQkRRVUZGTEU5QlFVODdVVUZEZUVVc2RVUkJRV1VzUTBGRGFFSXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJRenRCUVVWR0xESkdRVUV5Ump0QlFVTndSaXhOUVVGTkxHRkJRV0VzUjBGQlJ5eEhRVUZITEVWQlFVVTdTVUZEYUVNc1RVRkJUU3hOUVVGTkxFZEJRVWNzVVVGQlVTeERRVUZETEdGQlFXRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRKUVVOb1JDeE5RVUZOTEVkQlFVY3NSMEZCUnl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlEzQkRMRWxCUVVrc1EwRkJReXhIUVVGSExFVkJRVVU3VVVGRFVpeFBRVUZQTEV0QlFVc3NRMEZCUXp0TFFVTmtPMGxCUTBRc1RVRkJUU3hOUVVGTkxFZEJRVWNzUlVGQlJTeERRVUZETzBsQlEyeENMRWRCUVVjc1EwRkJReXhUUVVGVExFZEJRVWNzVFVGQlRTeERRVUZETzBsQlEzWkNMRWRCUVVjc1EwRkJReXhaUVVGWkxFZEJRVWNzUzBGQlN5eERRVUZETzBsQlEzcENMRWRCUVVjc1EwRkJReXhKUVVGSkxFZEJRVWNzV1VGQldTeERRVUZETzBsQlEzaENMQ3RFUVVFclJEdEpRVU12UkN3NFFrRkJPRUk3U1VGRE9VSXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNwQ0xFOUJRVThzUjBGQlJ5eERRVUZETEZsQlFWa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBGQlF6bEVMRU5CUVVNc1EwRkJRenRCUVVWTExFMUJRVTBzTmtKQlFUWkNMRWRCUVVjc1EwRkRNME1zVDBGQmIwSXNSVUZEU1N4RlFVRkZPMGxCUXpGQ0xFbEJRVWtzVFVGQlRTeEhRVUZITEU5QlFVOHNRMEZCUXl4aFFVRmhMRU5CUVVNN1NVRkRia01zVDBGQlR5eE5RVUZOTEVWQlFVVTdVVUZEWWl4SlFVRkpMRTFCUVUwc1MwRkJTeXhSUVVGUkxFTkJRVU1zU1VGQlNTeEZRVUZGTzFsQlF6VkNMRTlCUVU4c1VVRkJVU3hEUVVGRE8xTkJRMnBDTzFGQlEwUXNUVUZCVFN4RlFVRkZMRk5CUVZNc1JVRkJSU3hIUVVGSExFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU4wUkN4TlFVRk5MRzlDUVVGdlFpeEhRVUZITEUxQlFVMHNRMEZCUXl4WlFVRlpMRWRCUVVjc1RVRkJUU3hEUVVGRExGbEJRVmtzUTBGQlF6dFJRVU4yUlN4SlFVTkZMRzlDUVVGdlFqdFpRVU53UWl4RFFVRkRMRk5CUVZNc1MwRkJTeXhOUVVGTkxFbEJRVWtzVTBGQlV5eExRVUZMTEZGQlFWRXNRMEZCUXl4RlFVTm9SRHRaUVVOQkxFOUJRVThzVFVGQlRTeERRVUZETzFOQlEyWTdVVUZEUkN4TlFVRk5MRWRCUVVjc1RVRkJUU3hEUVVGRExHRkJRV0VzUTBGQlF6dExRVU12UWp0SlFVTkVMRTlCUVU4c1VVRkJVU3hEUVVGRE8wRkJRMnhDTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc2EwSkJRV3RDTEVkQlFVY3NRMEZCUXl4UFFVRjVRaXhGUVVGRkxFVkJRVVU3U1VGRE9VUXNTVUZCU1N4TlFVRk5MRWRCUVVjc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF6dEpRVU51UXl4UFFVRlBMRTFCUVUwc1JVRkJSVHRSUVVOaUxFbEJRVWtzVFVGQlRTeERRVUZETEZGQlFWRXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJSVHRaUVVONFFpeE5RVUZOTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRaaXhQUVVGUE8xTkJRMUk3VVVGRFJDeE5RVUZOTEVkQlFVY3NUVUZCVFN4RFFVRkRMR0ZCUVdFc1EwRkJRenRMUVVNdlFqdEJRVU5JTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc1lVRkJZU3hIUVVGSExFTkJRVU1zUzBGQmQwSXNSVUZCUlN4RlFVRkZPMGxCUTNoRUxFdEJRVXNzUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0SlFVTjJRaXh6UlVGQmMwVTdTVUZEZEVVc1MwRkJTeXhEUVVGRExGZEJRVmNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdRVUZEZWtJc1EwRkJReXhEUVVGRE8wRkJSVXNzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhEUVVGRExFdEJRV2xDTEVWQlFVVXNSVUZCUlR0SlFVTndSQ3hQUVVGUExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRPMU5CUTNKQ0xFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVMEZEYUVRc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEyUXNRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUlhoRk96czdSMEZIUnp0QlFVTkpMRTFCUVUwc1ZVRkJWU3hIUVVGSExFTkJRM2hDTEV0QlFXMUNMRVZCUTI1Q0xFVkJRVVU3U1VGRFJpeFBRVUZQTEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGdFFpeEZRVUZGTEU5QlFVOHNSVUZCUlN4RlFVRkZPMUZCUTI1RUxFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4UFFVRlBMRXRCUVVzc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY2tVc1QwRkJUeXhIUVVGSExFTkJRVU03U1VGRFlpeERRVUZETEVWQlFVVXNTVUZCU1N4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRMmhDTEVOQlFVTXNRMEZCUXp0QlFVVkxMRTFCUVUwc1UwRkJVeXhIUVVGSExFZEJRVWNzUlVGQlJTeFhRVU0xUWl4alFVRlBMRTlCUVU4c1MwRkJTeXhYUVVGWExFbEJRVWtzYjNOQ1FVRlhMREJEUVVGRkxGRkJRVkVzVFVGQlN5eE5RVUZOTEVsQlFVTTdRVUZGT1VRc1RVRkJUU3hUUVVGVExFZEJRVWNzUTBGQmEwSXNTVUZCVnl4RlFVRkZMRmRCUVdNc1JVRkJSU3hGUVVGRk8wbEJRM2hGTEU5QlFVOHNTVUZCU1N4WFFVRlhMRU5CUVVNc1NVRkJTU3hGUVVGRk8xRkJRek5DTEUxQlFVMHNSVUZCUlR0WlFVTk9MRmRCUVZjN1UwRkRXanRSUVVORUxGVkJRVlVzUlVGQlJTeEpRVUZKTzB0QlEycENMRU5CUVVNc1EwRkJRenRCUVVOTUxFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTWlPbHNpZDJWaWNHRmphem92THk4dUxpOHVMaTkxZEdsc2N5NTBjejgzTmpOaElsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQmpiMnh2Y25NZ1puSnZiU0JjSWk0dlkyOXNiM0p6WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JEVlZKVFQxSmZWRmxRUlN4Y2JpQWdSRVZHUVZWTVZGOVdSVkpUU1U5T0xGeHVJQ0JGVmtWT1ZDeGNiaUFnUms5T1ZGOUdRVTFKVEZrc1hHNGdJRmRKVGtSUFYxTmZSVTFQU2tsZlJrRk1URUpCUTB0ZlJrOU9WQ3hjYm4wZ1puSnZiU0JjSWk0dlkyOXVjM1JoYm5SelhDSTdYRzVwYlhCdmNuUWdleUJHYjI1MFJtRnRhV3g1Vm1Gc2RXVnpMQ0JHYjI1MFUzUnlhVzVuSUgwZ1puSnZiU0JjSWk0dlpXeGxiV1Z1ZEM5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1dtOXZiU0I5SUdaeWIyMGdYQ0l1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCMWJuTjBZV0pzWlY5aVlYUmphR1ZrVlhCa1lYUmxjeUI5SUdaeWIyMGdYQ0p5WldGamRDMWtiMjFjSWp0Y2JtbHRjRzl5ZENCN0lHbHpSR0Z5ZDJsdUlIMGdabkp2YlNCY0lpNHZhMlY1YzF3aU8xeHVYRzVzWlhRZ2JXOWphMFJoZEdWVWFXMWxPaUJ6ZEhKcGJtY2dmQ0J1ZFd4c0lEMGdiblZzYkR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUhObGRFUmhkR1ZVYVcxbFJtOXlWR1Z6ZEhNZ1BTQW9aR0YwWlZScGJXVTZJSE4wY21sdVp5a2dQVDRnZTF4dUlDQnRiMk5yUkdGMFpWUnBiV1VnUFNCa1lYUmxWR2x0WlR0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm5aWFJFWVhSbFZHbHRaU0E5SUNncElEMCtJSHRjYmlBZ2FXWWdLRzF2WTJ0RVlYUmxWR2x0WlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ0YjJOclJHRjBaVlJwYldVN1hHNGdJSDFjYmx4dUlDQmpiMjV6ZENCa1lYUmxJRDBnYm1WM0lFUmhkR1VvS1R0Y2JpQWdZMjl1YzNRZ2VXVmhjaUE5SUdSaGRHVXVaMlYwUm5Wc2JGbGxZWElvS1R0Y2JpQWdZMjl1YzNRZ2JXOXVkR2dnUFNCZ0pIdGtZWFJsTG1kbGRFMXZiblJvS0NrZ0t5QXhmV0F1Y0dGa1UzUmhjblFvTWl3Z1hDSXdYQ0lwTzF4dUlDQmpiMjV6ZENCa1lYa2dQU0JnSkh0a1lYUmxMbWRsZEVSaGRHVW9LWDFnTG5CaFpGTjBZWEowS0RJc0lGd2lNRndpS1R0Y2JpQWdZMjl1YzNRZ2FISWdQU0JnSkh0a1lYUmxMbWRsZEVodmRYSnpLQ2w5WUM1d1lXUlRkR0Z5ZENneUxDQmNJakJjSWlrN1hHNGdJR052Ym5OMElHMXBiaUE5SUdBa2UyUmhkR1V1WjJWMFRXbHVkWFJsY3lncGZXQXVjR0ZrVTNSaGNuUW9NaXdnWENJd1hDSXBPMXh1WEc0Z0lISmxkSFZ5YmlCZ0pIdDVaV0Z5ZlMwa2UyMXZiblJvZlMwa2UyUmhlWDB0Skh0b2NuMGtlMjFwYm4xZ08xeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR05oY0dsMFlXeHBlbVZUZEhKcGJtY2dQU0FvYzNSeU9pQnpkSEpwYm1jcElEMCtYRzRnSUhOMGNpNWphR0Z5UVhRb01Da3VkRzlWY0hCbGNrTmhjMlVvS1NBcklITjBjaTV6YkdsalpTZ3hLVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2x6Vkc5dmJFbGpiMjRnUFNBb1hHNGdJSFJoY21kbGREb2dSV3hsYldWdWRDQjhJRVYyWlc1MFZHRnlaMlYwSUh3Z2JuVnNiQ3hjYmlrNklIUmhjbWRsZENCcGN5QklWRTFNUld4bGJXVnVkQ0E5UGx4dUlDQjBZWEpuWlhRZ2FXNXpkR0Z1WTJWdlppQklWRTFNUld4bGJXVnVkQ0FtSmlCMFlYSm5aWFF1WTJ4aGMzTk9ZVzFsTG1sdVkyeDFaR1Z6S0Z3aVZHOXZiRWxqYjI1Y0lpazdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnBjMGx1Y0hWMFRHbHJaU0E5SUNoY2JpQWdkR0Z5WjJWME9pQkZiR1Z0Wlc1MElId2dSWFpsYm5SVVlYSm5aWFFnZkNCdWRXeHNMRnh1S1RvZ2RHRnlaMlYwSUdselhHNGdJSHdnU0ZSTlRFbHVjSFYwUld4bGJXVnVkRnh1SUNCOElFaFVUVXhVWlhoMFFYSmxZVVZzWlcxbGJuUmNiaUFnZkNCSVZFMU1VMlZzWldOMFJXeGxiV1Z1ZEZ4dUlDQjhJRWhVVFV4Q1VrVnNaVzFsYm5SY2JpQWdmQ0JJVkUxTVJHbDJSV3hsYldWdWRDQTlQbHh1SUNBb2RHRnlaMlYwSUdsdWMzUmhibU5sYjJZZ1NGUk5URVZzWlcxbGJuUWdKaVlnZEdGeVoyVjBMbVJoZEdGelpYUXVkSGx3WlNBOVBUMGdYQ0ozZVhOcGQzbG5YQ0lwSUh4OFhHNGdJSFJoY21kbGRDQnBibk4wWVc1alpXOW1JRWhVVFV4Q1VrVnNaVzFsYm5RZ2ZId2dMeThnYm1WM2JHbHVaU0JwYmlCM2VYTnBkM2xuWEc0Z0lIUmhjbWRsZENCcGJuTjBZVzVqWlc5bUlFaFVUVXhKYm5CMWRFVnNaVzFsYm5RZ2ZIeGNiaUFnZEdGeVoyVjBJR2x1YzNSaGJtTmxiMllnU0ZSTlRGUmxlSFJCY21WaFJXeGxiV1Z1ZENCOGZGeHVJQ0IwWVhKblpYUWdhVzV6ZEdGdVkyVnZaaUJJVkUxTVUyVnNaV04wUld4bGJXVnVkRHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR2x6VjNKcGRHRmliR1ZGYkdWdFpXNTBJRDBnS0Z4dUlDQjBZWEpuWlhRNklFVnNaVzFsYm5RZ2ZDQkZkbVZ1ZEZSaGNtZGxkQ0I4SUc1MWJHd3NYRzRwT2lCMFlYSm5aWFFnYVhOY2JpQWdmQ0JJVkUxTVNXNXdkWFJGYkdWdFpXNTBYRzRnSUh3Z1NGUk5URlJsZUhSQmNtVmhSV3hsYldWdWRGeHVJQ0I4SUVoVVRVeENVa1ZzWlcxbGJuUmNiaUFnZkNCSVZFMU1SR2wyUld4bGJXVnVkQ0E5UGx4dUlDQW9kR0Z5WjJWMElHbHVjM1JoYm1ObGIyWWdTRlJOVEVWc1pXMWxiblFnSmlZZ2RHRnlaMlYwTG1SaGRHRnpaWFF1ZEhsd1pTQTlQVDBnWENKM2VYTnBkM2xuWENJcElIeDhYRzRnSUhSaGNtZGxkQ0JwYm5OMFlXNWpaVzltSUVoVVRVeENVa1ZzWlcxbGJuUWdmSHdnTHk4Z2JtVjNiR2x1WlNCcGJpQjNlWE5wZDNsblhHNGdJSFJoY21kbGRDQnBibk4wWVc1alpXOW1JRWhVVFV4VVpYaDBRWEpsWVVWc1pXMWxiblFnZkh4Y2JpQWdLSFJoY21kbGRDQnBibk4wWVc1alpXOW1JRWhVVFV4SmJuQjFkRVZzWlcxbGJuUWdKaVpjYmlBZ0lDQW9kR0Z5WjJWMExuUjVjR1VnUFQwOUlGd2lkR1Y0ZEZ3aUlIeDhJSFJoY21kbGRDNTBlWEJsSUQwOVBTQmNJbTUxYldKbGNsd2lLU2s3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JuWlhSR2IyNTBSbUZ0YVd4NVUzUnlhVzVuSUQwZ0tIdGNiaUFnWm05dWRFWmhiV2xzZVN4Y2JuMDZJSHRjYmlBZ1ptOXVkRVpoYldsc2VUb2dSbTl1ZEVaaGJXbHNlVlpoYkhWbGN6dGNibjBwSUQwK0lIdGNiaUFnWm05eUlDaGpiMjV6ZENCYlptOXVkRVpoYldsc2VWTjBjbWx1Wnl3Z2FXUmRJRzltSUU5aWFtVmpkQzVsYm5SeWFXVnpLRVpQVGxSZlJrRk5TVXhaS1NrZ2UxeHVJQ0FnSUdsbUlDaHBaQ0E5UFQwZ1ptOXVkRVpoYldsc2VTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHQWtlMlp2Ym5SR1lXMXBiSGxUZEhKcGJtZDlMQ0FrZTFkSlRrUlBWMU5mUlUxUFNrbGZSa0ZNVEVKQlEwdGZSazlPVkgxZ08xeHVJQ0FnSUgxY2JpQWdmVnh1SUNCeVpYUjFjbTRnVjBsT1JFOVhVMTlGVFU5S1NWOUdRVXhNUWtGRFMxOUdUMDVVTzF4dWZUdGNibHh1THlvcUlISmxkSFZ5Ym5NZ1ptOXVkRk5wZW1VclptOXVkRVpoYldsc2VTQnpkSEpwYm1jZ1ptOXlJR0Z6YzJsbmJtMWxiblFnZEc4Z1JFOU5JR1ZzWlcxbGJuUnpJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdaMlYwUm05dWRGTjBjbWx1WnlBOUlDaDdYRzRnSUdadmJuUlRhWHBsTEZ4dUlDQm1iMjUwUm1GdGFXeDVMRnh1ZlRvZ2UxeHVJQ0JtYjI1MFUybDZaVG9nYm5WdFltVnlPMXh1SUNCbWIyNTBSbUZ0YVd4NU9pQkdiMjUwUm1GdGFXeDVWbUZzZFdWek8xeHVmU2tnUFQ0Z2UxeHVJQ0J5WlhSMWNtNGdZQ1I3Wm05dWRGTnBlbVY5Y0hnZ0pIdG5aWFJHYjI1MFJtRnRhV3g1VTNSeWFXNW5LSHNnWm05dWRFWmhiV2xzZVNCOUtYMWdJR0Z6SUVadmJuUlRkSEpwYm1jN1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdaR1ZpYjNWdVkyVWdQU0E4VkNCbGVIUmxibVJ6SUdGdWVWdGRQaWhjYmlBZ1ptNDZJQ2d1TGk1aGNtZHpPaUJVS1NBOVBpQjJiMmxrTEZ4dUlDQjBhVzFsYjNWME9pQnVkVzFpWlhJc1hHNHBJRDArSUh0Y2JpQWdiR1YwSUdoaGJtUnNaU0E5SURBN1hHNGdJR3hsZENCc1lYTjBRWEpuY3pvZ1ZDQjhJRzUxYkd3Z1BTQnVkV3hzTzF4dUlDQmpiMjV6ZENCeVpYUWdQU0FvTGk0dVlYSm5jem9nVkNrZ1BUNGdlMXh1SUNBZ0lHeGhjM1JCY21keklEMGdZWEpuY3p0Y2JpQWdJQ0JqYkdWaGNsUnBiV1Z2ZFhRb2FHRnVaR3hsS1R0Y2JpQWdJQ0JvWVc1a2JHVWdQU0IzYVc1a2IzY3VjMlYwVkdsdFpXOTFkQ2dvS1NBOVBpQjdYRzRnSUNBZ0lDQnNZWE4wUVhKbmN5QTlJRzUxYkd3N1hHNGdJQ0FnSUNCbWJpZ3VMaTVoY21kektUdGNiaUFnSUNCOUxDQjBhVzFsYjNWMEtUdGNiaUFnZlR0Y2JpQWdjbVYwTG1ac2RYTm9JRDBnS0NrZ1BUNGdlMXh1SUNBZ0lHTnNaV0Z5VkdsdFpXOTFkQ2hvWVc1a2JHVXBPMXh1SUNBZ0lHbG1JQ2hzWVhOMFFYSm5jeWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdYMnhoYzNSQmNtZHpJRDBnYkdGemRFRnlaM003WEc0Z0lDQWdJQ0JzWVhOMFFYSm5jeUE5SUc1MWJHdzdYRzRnSUNBZ0lDQm1iaWd1TGk1ZmJHRnpkRUZ5WjNNcE8xeHVJQ0FnSUgxY2JpQWdmVHRjYmlBZ2NtVjBMbU5oYm1ObGJDQTlJQ2dwSUQwK0lIdGNiaUFnSUNCc1lYTjBRWEpuY3lBOUlHNTFiR3c3WEc0Z0lDQWdZMnhsWVhKVWFXMWxiM1YwS0doaGJtUnNaU2s3WEc0Z0lIMDdYRzRnSUhKbGRIVnliaUJ5WlhRN1hHNTlPMXh1WEc0dkx5QjBhSEp2ZEhSc1pTQmpZV3hzWW1GamF5QjBieUJsZUdWamRYUmxJRzl1WTJVZ2NHVnlJR0Z1YVcxaGRHbHZiaUJtY21GdFpWeHVaWGh3YjNKMElHTnZibk4wSUhSb2NtOTBkR3hsVWtGR0lEMGdQRlFnWlhoMFpXNWtjeUJoYm5sYlhUNG9abTQ2SUNndUxpNWhjbWR6T2lCVUtTQTlQaUIyYjJsa0tTQTlQaUI3WEc0Z0lHeGxkQ0JvWVc1a2JHVTZJRzUxYldKbGNpQjhJRzUxYkd3Z1BTQnVkV3hzTzF4dUlDQnNaWFFnYkdGemRFRnlaM002SUZRZ2ZDQnVkV3hzSUQwZ2JuVnNiRHRjYmlBZ2JHVjBJR05oYkd4aVlXTnJPaUFvS0M0dUxtRnlaM002SUZRcElEMCtJSFp2YVdRcElId2diblZzYkNBOUlHNTFiR3c3WEc0Z0lHTnZibk4wSUhKbGRDQTlJQ2d1TGk1aGNtZHpPaUJVS1NBOVBpQjdYRzRnSUNBZ2FXWWdLSEJ5YjJObGMzTXVaVzUyTGs1UFJFVmZSVTVXSUQwOVBTQmNJblJsYzNSY0lpa2dlMXh1SUNBZ0lDQWdabTRvTGk0dVlYSm5jeWs3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVJQ0FnSUd4aGMzUkJjbWR6SUQwZ1lYSm5jenRjYmlBZ0lDQmpZV3hzWW1GamF5QTlJR1p1TzF4dUlDQWdJR2xtSUNob1lXNWtiR1VnUFQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUdoaGJtUnNaU0E5SUhkcGJtUnZkeTV5WlhGMVpYTjBRVzVwYldGMGFXOXVSbkpoYldVb0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNCb1lXNWtiR1VnUFNCdWRXeHNPMXh1SUNBZ0lDQWdJQ0JzWVhOMFFYSm5jeUE5SUc1MWJHdzdYRzRnSUNBZ0lDQWdJR05oYkd4aVlXTnJJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdabTRvTGk0dVlYSm5jeWs3WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5WEc0Z0lIMDdYRzRnSUhKbGRDNW1iSFZ6YUNBOUlDZ3BJRDArSUh0Y2JpQWdJQ0JwWmlBb2FHRnVaR3hsSUNFOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNCallXNWpaV3hCYm1sdFlYUnBiMjVHY21GdFpTaG9ZVzVrYkdVcE8xeHVJQ0FnSUNBZ2FHRnVaR3hsSUQwZ2JuVnNiRHRjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLR3hoYzNSQmNtZHpLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmZiR0Z6ZEVGeVozTWdQU0JzWVhOMFFYSm5jenRjYmlBZ0lDQWdJR052Ym5OMElGOWpZV3hzWW1GamF5QTlJR05oYkd4aVlXTnJPMXh1SUNBZ0lDQWdiR0Z6ZEVGeVozTWdQU0J1ZFd4c08xeHVJQ0FnSUNBZ1kyRnNiR0poWTJzZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnYVdZZ0tGOWpZV3hzWW1GamF5QWhQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdJQ0JmWTJGc2JHSmhZMnNvTGk0dVgyeGhjM1JCY21kektUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDA3WEc0Z0lISmxkQzVqWVc1alpXd2dQU0FvS1NBOVBpQjdYRzRnSUNBZ2JHRnpkRUZ5WjNNZ1BTQnVkV3hzTzF4dUlDQWdJR05oYkd4aVlXTnJJRDBnYm5Wc2JEdGNiaUFnSUNCcFppQW9hR0Z1Wkd4bElDRTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQmpZVzVqWld4QmJtbHRZWFJwYjI1R2NtRnRaU2hvWVc1a2JHVXBPMXh1SUNBZ0lDQWdhR0Z1Wkd4bElEMGdiblZzYkR0Y2JpQWdJQ0I5WEc0Z0lIMDdYRzRnSUhKbGRIVnliaUJ5WlhRN1hHNTlPMXh1WEc0dkx5Qm9kSFJ3Y3pvdkwyZHBkR2gxWWk1amIyMHZiRzlrWVhOb0wyeHZaR0Z6YUM5aWJHOWlMMlZ6TDJOb2RXNXJMbXB6WEc1bGVIQnZjblFnWTI5dWMzUWdZMmgxYm1zZ1BTQThWQ0JsZUhSbGJtUnpJR0Z1ZVQ0b1hHNGdJR0Z5Y21GNU9pQnlaV0ZrYjI1c2VTQlVXMTBzWEc0Z0lITnBlbVU2SUc1MWJXSmxjaXhjYmlrNklGUmJYVnRkSUQwK0lIdGNiaUFnYVdZZ0tDRmhjbkpoZVM1c1pXNW5kR2dnZkh3Z2MybDZaU0E4SURFcElIdGNiaUFnSUNCeVpYUjFjbTRnVzEwN1hHNGdJSDFjYmlBZ2JHVjBJR2x1WkdWNElEMGdNRHRjYmlBZ2JHVjBJSEpsYzBsdVpHVjRJRDBnTUR0Y2JpQWdZMjl1YzNRZ2NtVnpkV3gwSUQwZ1FYSnlZWGtvVFdGMGFDNWpaV2xzS0dGeWNtRjVMbXhsYm1kMGFDQXZJSE5wZW1VcEtUdGNiaUFnZDJocGJHVWdLR2x1WkdWNElEd2dZWEp5WVhrdWJHVnVaM1JvS1NCN1hHNGdJQ0FnY21WemRXeDBXM0psYzBsdVpHVjRLeXRkSUQwZ1lYSnlZWGt1YzJ4cFkyVW9hVzVrWlhnc0lDaHBibVJsZUNBclBTQnphWHBsS1NrN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCelpXeGxZM1JPYjJSbElEMGdLRzV2WkdVNklFVnNaVzFsYm5RcElEMCtJSHRjYmlBZ1kyOXVjM1FnYzJWc1pXTjBhVzl1SUQwZ2QybHVaRzkzTG1kbGRGTmxiR1ZqZEdsdmJpZ3BPMXh1SUNCcFppQW9jMlZzWldOMGFXOXVLU0I3WEc0Z0lDQWdZMjl1YzNRZ2NtRnVaMlVnUFNCa2IyTjFiV1Z1ZEM1amNtVmhkR1ZTWVc1blpTZ3BPMXh1SUNBZ0lISmhibWRsTG5ObGJHVmpkRTV2WkdWRGIyNTBaVzUwY3lodWIyUmxLVHRjYmlBZ0lDQnpaV3hsWTNScGIyNHVjbVZ0YjNabFFXeHNVbUZ1WjJWektDazdYRzRnSUNBZ2MyVnNaV04wYVc5dUxtRmtaRkpoYm1kbEtISmhibWRsS1R0Y2JpQWdmVnh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUhKbGJXOTJaVk5sYkdWamRHbHZiaUE5SUNncElEMCtJSHRjYmlBZ1kyOXVjM1FnYzJWc1pXTjBhVzl1SUQwZ2QybHVaRzkzTG1kbGRGTmxiR1ZqZEdsdmJpZ3BPMXh1SUNCcFppQW9jMlZzWldOMGFXOXVLU0I3WEc0Z0lDQWdjMlZzWldOMGFXOXVMbkpsYlc5MlpVRnNiRkpoYm1kbGN5Z3BPMXh1SUNCOVhHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdaR2x6ZEdGdVkyVWdQU0FvZURvZ2JuVnRZbVZ5TENCNU9pQnVkVzFpWlhJcElEMCtJRTFoZEdndVlXSnpLSGdnTFNCNUtUdGNibHh1Wlhod2IzSjBJR052Ym5OMElISmxjMlYwUTNWeWMyOXlJRDBnS0dOaGJuWmhjem9nU0ZSTlRFTmhiblpoYzBWc1pXMWxiblFnZkNCdWRXeHNLU0E5UGlCN1hHNGdJR2xtSUNoallXNTJZWE1wSUh0Y2JpQWdJQ0JqWVc1MllYTXVjM1I1YkdVdVkzVnljMjl5SUQwZ1hDSmNJanRjYmlBZ2ZWeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJSE5sZEVOMWNuTnZjaUE5SUNoallXNTJZWE02SUVoVVRVeERZVzUyWVhORmJHVnRaVzUwSUh3Z2JuVnNiQ3dnWTNWeWMyOXlPaUJ6ZEhKcGJtY3BJRDArSUh0Y2JpQWdhV1lnS0dOaGJuWmhjeWtnZTF4dUlDQWdJR05oYm5aaGN5NXpkSGxzWlM1amRYSnpiM0lnUFNCamRYSnpiM0k3WEc0Z0lIMWNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J6WlhSRGRYSnpiM0pHYjNKVGFHRndaU0E5SUNoY2JpQWdZMkZ1ZG1Gek9pQklWRTFNUTJGdWRtRnpSV3hsYldWdWRDQjhJRzUxYkd3c1hHNGdJSE5vWVhCbE9pQnpkSEpwYm1jc1hHNHBJRDArSUh0Y2JpQWdhV1lnS0NGallXNTJZWE1wSUh0Y2JpQWdJQ0J5WlhSMWNtNDdYRzRnSUgxY2JpQWdhV1lnS0hOb1lYQmxJRDA5UFNCY0luTmxiR1ZqZEdsdmJsd2lLU0I3WEc0Z0lDQWdjbVZ6WlhSRGRYSnpiM0lvWTJGdWRtRnpLVHRjYmlBZ0lDQXZMeUJrYnlCdWIzUm9hVzVuSUdsbUlHbHRZV2RsSUhSdmIyd2dhWE1nYzJWc1pXTjBaV1FnZDJocFkyZ2djM1ZuWjJWemRITWdkR2hsY21VbmMxeHVJQ0FnSUM4dklHRWdhVzFoWjJVdGNISmxkbWxsZHlCelpYUWdZWE1nZEdobElHTjFjbk52Y2x4dUlDQjlJR1ZzYzJVZ2FXWWdLSE5vWVhCbElDRTlQU0JjSW1sdFlXZGxYQ0lwSUh0Y2JpQWdJQ0JqWVc1MllYTXVjM1I1YkdVdVkzVnljMjl5SUQwZ1ExVlNVMDlTWDFSWlVFVXVRMUpQVTFOSVFVbFNPMXh1SUNCOVhHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdhWE5HZFd4c1UyTnlaV1Z1SUQwZ0tDa2dQVDVjYmlBZ1pHOWpkVzFsYm5RdVpuVnNiSE5qY21WbGJrVnNaVzFsYm5RL0xtNXZaR1ZPWVcxbElEMDlQU0JjSWtoVVRVeGNJanRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR0ZzYkc5M1JuVnNiRk5qY21WbGJpQTlJQ2dwSUQwK1hHNGdJR1J2WTNWdFpXNTBMbVJ2WTNWdFpXNTBSV3hsYldWdWRDNXlaWEYxWlhOMFJuVnNiSE5qY21WbGJpZ3BPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdaWGhwZEVaMWJHeFRZM0psWlc0Z1BTQW9LU0E5UGlCa2IyTjFiV1Z1ZEM1bGVHbDBSblZzYkhOamNtVmxiaWdwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWjJWMFUyaHZjblJqZFhSTFpYa2dQU0FvYzJodmNuUmpkWFE2SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUE5UGlCN1hHNGdJSE5vYjNKMFkzVjBJRDBnYzJodmNuUmpkWFJjYmlBZ0lDQXVjbVZ3YkdGalpTZ3ZYRnhpUVd4MFhGeGlMMmtzSUZ3aVFXeDBYQ0lwWEc0Z0lDQWdMbkpsY0d4aFkyVW9MMXhjWWxOb2FXWjBYRnhpTDJrc0lGd2lVMmhwWm5SY0lpbGNiaUFnSUNBdWNtVndiR0ZqWlNndlhGeGlLRVZ1ZEdWeWZGSmxkSFZ5YmlsY1hHSXZhU3dnWENKRmJuUmxjbHdpS1Z4dUlDQWdJQzV5WlhCc1lXTmxLQzljWEdKRVpXeGNYR0l2YVN3Z1hDSkVaV3hsZEdWY0lpazdYRzVjYmlBZ2FXWWdLR2x6UkdGeWQybHVLU0I3WEc0Z0lDQWdjbVYwZFhKdUlITm9iM0owWTNWMFhHNGdJQ0FnSUNBdWNtVndiR0ZqWlNndlhGeGlRM1J5YkU5eVEyMWtYRnhpTDJrc0lGd2lRMjFrWENJcFhHNGdJQ0FnSUNBdWNtVndiR0ZqWlNndlhGeGlRV3gwWEZ4aUwya3NJRndpVDNCMGFXOXVYQ0lwTzF4dUlDQjlYRzRnSUhKbGRIVnliaUJ6YUc5eWRHTjFkQzV5WlhCc1lXTmxLQzljWEdKRGRISnNUM0pEYldSY1hHSXZhU3dnWENKRGRISnNYQ0lwTzF4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElIWnBaWGR3YjNKMFEyOXZjbVJ6Vkc5VFkyVnVaVU52YjNKa2N5QTlJQ2hjYmlBZ2V5QmpiR2xsYm5SWUxDQmpiR2xsYm5SWklIMDZJSHNnWTJ4cFpXNTBXRG9nYm5WdFltVnlPeUJqYkdsbGJuUlpPaUJ1ZFcxaVpYSWdmU3hjYmlBZ2UxeHVJQ0FnSUhwdmIyMHNYRzRnSUNBZ2IyWm1jMlYwVEdWbWRDeGNiaUFnSUNCdlptWnpaWFJVYjNBc1hHNGdJQ0FnYzJOeWIyeHNXQ3hjYmlBZ0lDQnpZM0p2Ykd4WkxGeHVJQ0I5T2lCN1hHNGdJQ0FnZW05dmJUb2dXbTl2YlR0Y2JpQWdJQ0J2Wm1aelpYUk1aV1owT2lCdWRXMWlaWEk3WEc0Z0lDQWdiMlptYzJWMFZHOXdPaUJ1ZFcxaVpYSTdYRzRnSUNBZ2MyTnliMnhzV0RvZ2JuVnRZbVZ5TzF4dUlDQWdJSE5qY205c2JGazZJRzUxYldKbGNqdGNiaUFnZlN4Y2Jpa2dQVDRnZTF4dUlDQmpiMjV6ZENCcGJuWlRZMkZzWlNBOUlERWdMeUI2YjI5dExuWmhiSFZsTzF4dUlDQmpiMjV6ZENCNElEMGdLR05zYVdWdWRGZ2dMU0J2Wm1aelpYUk1aV1owS1NBcUlHbHVkbE5qWVd4bElDMGdjMk55YjJ4c1dEdGNiaUFnWTI5dWMzUWdlU0E5SUNoamJHbGxiblJaSUMwZ2IyWm1jMlYwVkc5d0tTQXFJR2x1ZGxOallXeGxJQzBnYzJOeWIyeHNXVHRjYmx4dUlDQnlaWFIxY200Z2V5QjRMQ0I1SUgwN1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdjMk5sYm1WRGIyOXlaSE5VYjFacFpYZHdiM0owUTI5dmNtUnpJRDBnS0Z4dUlDQjdJSE5qWlc1bFdDd2djMk5sYm1WWklIMDZJSHNnYzJObGJtVllPaUJ1ZFcxaVpYSTdJSE5qWlc1bFdUb2diblZ0WW1WeUlIMHNYRzRnSUh0Y2JpQWdJQ0I2YjI5dExGeHVJQ0FnSUc5bVpuTmxkRXhsWm5Rc1hHNGdJQ0FnYjJabWMyVjBWRzl3TEZ4dUlDQWdJSE5qY205c2JGZ3NYRzRnSUNBZ2MyTnliMnhzV1N4Y2JpQWdmVG9nZTF4dUlDQWdJSHB2YjIwNklGcHZiMjA3WEc0Z0lDQWdiMlptYzJWMFRHVm1kRG9nYm5WdFltVnlPMXh1SUNBZ0lHOW1abk5sZEZSdmNEb2diblZ0WW1WeU8xeHVJQ0FnSUhOamNtOXNiRmc2SUc1MWJXSmxjanRjYmlBZ0lDQnpZM0p2Ykd4Wk9pQnVkVzFpWlhJN1hHNGdJSDBzWEc0cElEMCtJSHRjYmlBZ1kyOXVjM1FnZUNBOUlDaHpZMlZ1WlZnZ0t5QnpZM0p2Ykd4WUtTQXFJSHB2YjIwdWRtRnNkV1VnS3lCdlptWnpaWFJNWldaME8xeHVJQ0JqYjI1emRDQjVJRDBnS0hOalpXNWxXU0FySUhOamNtOXNiRmtwSUNvZ2VtOXZiUzUyWVd4MVpTQXJJRzltWm5ObGRGUnZjRHRjYmlBZ2NtVjBkWEp1SUhzZ2VDd2dlU0I5TzF4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHZGxkRWRzYjJKaGJFTlRVMVpoY21saFlteGxJRDBnS0c1aGJXVTZJSE4wY21sdVp5a2dQVDVjYmlBZ1oyVjBRMjl0Y0hWMFpXUlRkSGxzWlNoa2IyTjFiV1Z1ZEM1a2IyTjFiV1Z1ZEVWc1pXMWxiblFwTG1kbGRGQnliM0JsY25SNVZtRnNkV1VvWUMwdEpIdHVZVzFsZldBcE8xeHVYRzVqYjI1emRDQlNVMTlNVkZKZlEwaEJVbE1nUFZ4dUlDQmNJa0V0V21FdGVseGNkVEF3UXpBdFhGeDFNREJFTmx4Y2RUQXdSRGd0WEZ4MU1EQkdObHhjZFRBd1JqZ3RYRngxTURKQ09GeGNkVEF6TURBdFhGeDFNRFU1TUZ4Y2RUQTRNREF0WEZ4MU1VWkdSbHdpSUN0Y2JpQWdYQ0pjWEhVeVF6QXdMVnhjZFVaQ01VTmNYSFZHUkVaRkxWeGNkVVpGTmtaY1hIVkdSVVpFTFZ4Y2RVWkdSa1pjSWp0Y2JtTnZibk4wSUZKVFgxSlVURjlEU0VGU1V5QTlJRndpWEZ4MU1EVTVNUzFjWEhVd04wWkdYRngxUmtJeFJDMWNYSFZHUkVaRVhGeDFSa1UzTUMxY1hIVkdSVVpEWENJN1hHNWpiMjV6ZENCU1JWOVNWRXhmUTBoRlEwc2dQU0J1WlhjZ1VtVm5SWGh3S0dCZVcxNGtlMUpUWDB4VVVsOURTRUZTVTMxZEtsc2tlMUpUWDFKVVRGOURTRUZTVTMxZFlDazdYRzR2S2lwY2JpQXFJRU5vWldOcmN5QjNhR1YwYUdWeUlHWnBjbk4wSUdScGNtVmpkR2x2Ym1Gc0lHTm9ZWEpoWTNSbGNpQnBjeUJTVkV3dUlFMWxZVzVwYm1jZ2QyaGxkR2hsY2lCcGRDQnpkR0Z5ZEhOY2JpQXFJQ0IzYVhSb0lGSlVUQ0JqYUdGeVlXTjBaWEp6TENCdmNpQnBibVJsZEdWeWJXbHVZWFJsSUNodWRXMWlaWEp6SUdWMFl5NHBJR05vWVhKaFkzUmxjbk1nWm05c2JHOTNaV1FnWW5sY2JpQXFJQ0JTVkV3dVhHNGdLaUJUWldVZ2FIUjBjSE02THk5bmFYUm9kV0l1WTI5dEwyVjRZMkZzYVdSeVlYY3ZaWGhqWVd4cFpISmhkeTl3ZFd4c0x6RTNNaklqWkdselkzVnpjMmx2Ymw5eU5ETTJNelF3TVRjeFhHNGdLaTljYm1WNGNHOXlkQ0JqYjI1emRDQnBjMUpVVENBOUlDaDBaWGgwT2lCemRISnBibWNwSUQwK0lGSkZYMUpVVEY5RFNFVkRTeTUwWlhOMEtIUmxlSFFwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnZEhWd2JHVlViME52YjNKeklEMGdLRnh1SUNCNGVWUjFjR3hsT2lCeVpXRmtiMjVzZVNCYmJuVnRZbVZ5TENCdWRXMWlaWEpkTEZ4dUtUb2dleUI0T2lCdWRXMWlaWEk3SUhrNklHNTFiV0psY2lCOUlEMCtJSHRjYmlBZ1kyOXVjM1FnVzNnc0lIbGRJRDBnZUhsVWRYQnNaVHRjYmlBZ2NtVjBkWEp1SUhzZ2VDd2dlU0I5TzF4dWZUdGNibHh1THlvcUlIVnpaU0JoY3lCaElISmxhbVZqZEdsdmJraGhibVJzWlhJZ2RHOGdiWFYwWlNCbWFXeGxjM2x6ZEdWdElFRmliM0owSUdWeWNtOXljeUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRzExZEdWR1UwRmliM0owUlhKeWIzSWdQU0FvWlhKeWIzSS9PaUJGY25KdmNpa2dQVDRnZTF4dUlDQnBaaUFvWlhKeWIzSS9MbTVoYldVZ1BUMDlJRndpUVdKdmNuUkZjbkp2Y2x3aUtTQjdYRzRnSUNBZ1kyOXVjMjlzWlM1M1lYSnVLR1Z5Y205eUtUdGNiaUFnSUNCeVpYUjFjbTQ3WEc0Z0lIMWNiaUFnZEdoeWIzY2daWEp5YjNJN1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdabWx1WkVsdVpHVjRJRDBnUEZRK0tGeHVJQ0JoY25KaGVUb2djbVZoWkc5dWJIa2dWRnRkTEZ4dUlDQmpZam9nS0dWc1pXMWxiblE2SUZRc0lHbHVaR1Y0T2lCdWRXMWlaWElzSUdGeWNtRjVPaUJ5WldGa2IyNXNlU0JVVzEwcElEMCtJR0p2YjJ4bFlXNHNYRzRnSUdaeWIyMUpibVJsZURvZ2JuVnRZbVZ5SUQwZ01DeGNiaWtnUFQ0Z2UxeHVJQ0JwWmlBb1puSnZiVWx1WkdWNElEd2dNQ2tnZTF4dUlDQWdJR1p5YjIxSmJtUmxlQ0E5SUdGeWNtRjVMbXhsYm1kMGFDQXJJR1p5YjIxSmJtUmxlRHRjYmlBZ2ZWeHVJQ0JtY205dFNXNWtaWGdnUFNCTllYUm9MbTFwYmloaGNuSmhlUzVzWlc1bmRHZ3NJRTFoZEdndWJXRjRLR1p5YjIxSmJtUmxlQ3dnTUNrcE8xeHVJQ0JzWlhRZ2FXNWtaWGdnUFNCbWNtOXRTVzVrWlhnZ0xTQXhPMXh1SUNCM2FHbHNaU0FvS3l0cGJtUmxlQ0E4SUdGeWNtRjVMbXhsYm1kMGFDa2dlMXh1SUNBZ0lHbG1JQ2hqWWloaGNuSmhlVnRwYm1SbGVGMHNJR2x1WkdWNExDQmhjbkpoZVNrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCcGJtUmxlRHRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjbVYwZFhKdUlDMHhPMXh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdacGJtUk1ZWE4wU1c1a1pYZ2dQU0E4VkQ0b1hHNGdJR0Z5Y21GNU9pQnlaV0ZrYjI1c2VTQlVXMTBzWEc0Z0lHTmlPaUFvWld4bGJXVnVkRG9nVkN3Z2FXNWtaWGc2SUc1MWJXSmxjaXdnWVhKeVlYazZJSEpsWVdSdmJteDVJRlJiWFNrZ1BUNGdZbTl2YkdWaGJpeGNiaUFnWm5KdmJVbHVaR1Y0T2lCdWRXMWlaWElnUFNCaGNuSmhlUzVzWlc1bmRHZ2dMU0F4TEZ4dUtTQTlQaUI3WEc0Z0lHbG1JQ2htY205dFNXNWtaWGdnUENBd0tTQjdYRzRnSUNBZ1puSnZiVWx1WkdWNElEMGdZWEp5WVhrdWJHVnVaM1JvSUNzZ1puSnZiVWx1WkdWNE8xeHVJQ0I5WEc0Z0lHWnliMjFKYm1SbGVDQTlJRTFoZEdndWJXbHVLR0Z5Y21GNUxteGxibWQwYUNBdElERXNJRTFoZEdndWJXRjRLR1p5YjIxSmJtUmxlQ3dnTUNrcE8xeHVJQ0JzWlhRZ2FXNWtaWGdnUFNCbWNtOXRTVzVrWlhnZ0t5QXhPMXh1SUNCM2FHbHNaU0FvTFMxcGJtUmxlQ0ErSUMweEtTQjdYRzRnSUNBZ2FXWWdLR05pS0dGeWNtRjVXMmx1WkdWNFhTd2dhVzVrWlhnc0lHRnljbUY1S1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdsdVpHVjRPMXh1SUNBZ0lIMWNiaUFnZlZ4dUlDQnlaWFIxY200Z0xURTdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYVhOVWNtRnVjM0JoY21WdWRDQTlJQ2hqYjJ4dmNqb2djM1J5YVc1bktTQTlQaUI3WEc0Z0lHTnZibk4wSUdselVrZENWSEpoYm5Od1lYSmxiblFnUFNCamIyeHZjaTVzWlc1bmRHZ2dQVDA5SURVZ0ppWWdZMjlzYjNJdWMzVmljM1J5S0RRc0lERXBJRDA5UFNCY0lqQmNJanRjYmlBZ1kyOXVjM1FnYVhOU1VrZEhRa0pVY21GdWMzQmhjbVZ1ZENBOUlHTnZiRzl5TG14bGJtZDBhQ0E5UFQwZ09TQW1KaUJqYjJ4dmNpNXpkV0p6ZEhJb055d2dNaWtnUFQwOUlGd2lNREJjSWp0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNCcGMxSkhRbFJ5WVc1emNHRnlaVzUwSUh4OFhHNGdJQ0FnYVhOU1VrZEhRa0pVY21GdWMzQmhjbVZ1ZENCOGZGeHVJQ0FnSUdOdmJHOXlJRDA5UFNCamIyeHZjbk11Wld4bGJXVnVkRUpoWTJ0bmNtOTFibVJiTUYxY2JpQWdLVHRjYm4wN1hHNWNibVY0Y0c5eWRDQjBlWEJsSUZKbGMyOXNkbUZpYkdWUWNtOXRhWE5sUEZRK0lEMGdVSEp2YldselpUeFVQaUFtSUh0Y2JpQWdjbVZ6YjJ4MlpUb2dXMVJkSUdWNGRHVnVaSE1nVzNWdVpHVm1hVzVsWkYwZ1B5QW9kbUZzZFdVL09pQlVLU0E5UGlCMmIybGtJRG9nS0haaGJIVmxPaUJVS1NBOVBpQjJiMmxrTzF4dUlDQnlaV3BsWTNRNklDaGxjbkp2Y2pvZ1JYSnliM0lwSUQwK0lIWnZhV1E3WEc1OU8xeHVaWGh3YjNKMElHTnZibk4wSUhKbGMyOXNkbUZpYkdWUWNtOXRhWE5sSUQwZ1BGUStLQ2tnUFQ0Z2UxeHVJQ0JzWlhRZ2NtVnpiMngyWlNFNklHRnVlVHRjYmlBZ2JHVjBJSEpsYW1WamRDRTZJR0Z1ZVR0Y2JpQWdZMjl1YzNRZ2NISnZiV2x6WlNBOUlHNWxkeUJRY205dGFYTmxLQ2hmY21WemIyeDJaU3dnWDNKbGFtVmpkQ2tnUFQ0Z2UxeHVJQ0FnSUhKbGMyOXNkbVVnUFNCZmNtVnpiMngyWlR0Y2JpQWdJQ0J5WldwbFkzUWdQU0JmY21WcVpXTjBPMXh1SUNCOUtUdGNiaUFnS0hCeWIyMXBjMlVnWVhNZ1lXNTVLUzV5WlhOdmJIWmxJRDBnY21WemIyeDJaVHRjYmlBZ0tIQnliMjFwYzJVZ1lYTWdZVzU1S1M1eVpXcGxZM1FnUFNCeVpXcGxZM1E3WEc0Z0lISmxkSFZ5YmlCd2NtOXRhWE5sSUdGeklGSmxjMjlzZG1GaWJHVlFjbTl0YVhObFBGUStPMXh1ZlR0Y2JseHVMeW9xWEc0Z0tpQkFjR0Z5WVcwZ1puVnVZeUJvWVc1a2JHVnlJSFJoYTJsdVp5QmhkQ0J0YjNOMElITnBibWRzWlNCd1lYSmhiV1YwWlhJZ0tHVjJaVzUwS1M1Y2JpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElIZHBkR2hDWVhSamFHVmtWWEJrWVhSbGN5QTlJRHhjYmlBZ1ZFWjFibU4wYVc5dUlHVjRkR1Z1WkhNZ0tDaGxkbVZ1ZERvZ1lXNTVLU0E5UGlCMmIybGtLU0I4SUNnb0tTQTlQaUIyYjJsa0tTeGNiajRvWEc0Z0lHWjFibU02SUZCaGNtRnRaWFJsY25NOFZFWjFibU4wYVc5dVBsdGNJbXhsYm1kMGFGd2lYU0JsZUhSbGJtUnpJREFnZkNBeElEOGdWRVoxYm1OMGFXOXVJRG9nYm1WMlpYSXNYRzRwSUQwK1hHNGdJQ2dvWlhabGJuUXBJRDArSUh0Y2JpQWdJQ0IxYm5OMFlXSnNaVjlpWVhSamFHVmtWWEJrWVhSbGN5aG1kVzVqSUdGeklGUkdkVzVqZEdsdmJpd2daWFpsYm5RcE8xeHVJQ0I5S1NCaGN5QlVSblZ1WTNScGIyNDdYRzVjYmk4cUtseHVJQ29nWW1GeVkyaGxjeUJTWldGamRDQnpkR0YwWlNCMWNHUmhkR1Z6SUdGdVpDQjBhSEp2ZEhSc1pYTWdkR2hsSUdOaGJHeHpJSFJ2SUdFZ2MybHVaMnhsSUdOaGJHd2djR1Z5WEc0Z0tpQmhibWx0WVhScGIyNGdabkpoYldWY2JpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElIZHBkR2hDWVhSamFHVmtWWEJrWVhSbGMxUm9jbTkwZEd4bFpDQTlJRHhjYmlBZ1ZFWjFibU4wYVc5dUlHVjRkR1Z1WkhNZ0tDaGxkbVZ1ZERvZ1lXNTVLU0E5UGlCMmIybGtLU0I4SUNnb0tTQTlQaUIyYjJsa0tTeGNiajRvWEc0Z0lHWjFibU02SUZCaGNtRnRaWFJsY25NOFZFWjFibU4wYVc5dVBsdGNJbXhsYm1kMGFGd2lYU0JsZUhSbGJtUnpJREFnZkNBeElEOGdWRVoxYm1OMGFXOXVJRG9nYm1WMlpYSXNYRzRwSUQwK0lIdGNiaUFnTHk4Z1FIUnpMV2xuYm05eVpWeHVJQ0J5WlhSMWNtNGdkR2h5YjNSMGJHVlNRVVk4VUdGeVlXMWxkR1Z5Y3p4VVJuVnVZM1JwYjI0K1BpZ29LR1YyWlc1MEtTQTlQaUI3WEc0Z0lDQWdkVzV6ZEdGaWJHVmZZbUYwWTJobFpGVndaR0YwWlhNb1puVnVZeXdnWlhabGJuUXBPMXh1SUNCOUtTQmhjeUJVUm5WdVkzUnBiMjRwTzF4dWZUdGNibHh1THk5b2RIUndjem92TDNOMFlXTnJiM1psY21ac2IzY3VZMjl0TDJFdk9UUTJNak00TWk4NE5ERTRYRzVsZUhCdmNuUWdZMjl1YzNRZ2JrWnZjbTFoZEhSbGNpQTlJQ2h1ZFcwNklHNTFiV0psY2l3Z1pHbG5hWFJ6T2lCdWRXMWlaWElwT2lCemRISnBibWNnUFQ0Z2UxeHVJQ0JqYjI1emRDQnphU0E5SUZ0Y2JpQWdJQ0I3SUhaaGJIVmxPaUF4TENCemVXMWliMnc2SUZ3aVlsd2lJSDBzWEc0Z0lDQWdleUIyWVd4MVpUb2dNV1V6TENCemVXMWliMnc2SUZ3aWExd2lJSDBzWEc0Z0lDQWdleUIyWVd4MVpUb2dNV1UyTENCemVXMWliMnc2SUZ3aVRWd2lJSDBzWEc0Z0lDQWdleUIyWVd4MVpUb2dNV1U1TENCemVXMWliMnc2SUZ3aVIxd2lJSDBzWEc0Z0lGMDdYRzRnSUdOdmJuTjBJSEo0SUQwZ0wxeGNMakFySkh3b1hGd3VXekF0T1YwcVd6RXRPVjBwTUNza0x6dGNiaUFnYkdWMElHbHVaR1Y0TzF4dUlDQm1iM0lnS0dsdVpHVjRJRDBnYzJrdWJHVnVaM1JvSUMwZ01Uc2dhVzVrWlhnZ1BpQXdPeUJwYm1SbGVDMHRLU0I3WEc0Z0lDQWdhV1lnS0c1MWJTQStQU0J6YVZ0cGJtUmxlRjB1ZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUgxY2JpQWdmVnh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ2h1ZFcwZ0x5QnphVnRwYm1SbGVGMHVkbUZzZFdVcExuUnZSbWw0WldRb1pHbG5hWFJ6S1M1eVpYQnNZV05sS0hKNExDQmNJaVF4WENJcElDc2djMmxiYVc1a1pYaGRMbk41YldKdmJGeHVJQ0FwTzF4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHZGxkRlpsY25OcGIyNGdQU0FvS1NBOVBpQjdYRzRnSUhKbGRIVnliaUFvWEc0Z0lDQWdaRzlqZFcxbGJuUXVjWFZsY25sVFpXeGxZM1J2Y2p4SVZFMU1UV1YwWVVWc1pXMWxiblErS0NkdFpYUmhXMjVoYldVOVhDSjJaWEp6YVc5dVhDSmRKeWsvTG1OdmJuUmxiblFnZkh4Y2JpQWdJQ0JFUlVaQlZVeFVYMVpGVWxOSlQwNWNiaUFnS1R0Y2JuMDdYRzVjYmk4dklFRmtZWEIwWldRZ1puSnZiU0JvZEhSd2N6b3ZMMmRwZEdoMVlpNWpiMjB2VFc5a1pYSnVhWHB5TDAxdlpHVnlibWw2Y2k5aWJHOWlMMjFoYzNSbGNpOW1aV0YwZFhKbExXUmxkR1ZqZEhNdlpXMXZhbWt1YW5OY2JtVjRjRzl5ZENCamIyNXpkQ0J6ZFhCd2IzSjBjMFZ0YjJwcElEMGdLQ2tnUFQ0Z2UxeHVJQ0JqYjI1emRDQmpZVzUyWVhNZ1BTQmtiMk4xYldWdWRDNWpjbVZoZEdWRmJHVnRaVzUwS0Z3aVkyRnVkbUZ6WENJcE8xeHVJQ0JqYjI1emRDQmpkSGdnUFNCallXNTJZWE11WjJWMFEyOXVkR1Y0ZENoY0lqSmtYQ0lwTzF4dUlDQnBaaUFvSVdOMGVDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ2ZWeHVJQ0JqYjI1emRDQnZabVp6WlhRZ1BTQXhNanRjYmlBZ1kzUjRMbVpwYkd4VGRIbHNaU0E5SUZ3aUkyWXdNRndpTzF4dUlDQmpkSGd1ZEdWNGRFSmhjMlZzYVc1bElEMGdYQ0owYjNCY0lqdGNiaUFnWTNSNExtWnZiblFnUFNCY0lqTXljSGdnUVhKcFlXeGNJanRjYmlBZ0x5OGdUVzlrWlhKdWFYcHlJSFZ6WldRZzhKK1FxQ3dnWW5WMElHbDBJR2x6SUhOdmNuUWdiMllnYzNWd2NHOXlkR1ZrSUc5dUlGZHBibVJ2ZDNNZ055NWNiaUFnTHk4Z1RIVmphMmxzZVNEd241aUFJR2x6YmlkMElITjFjSEJ2Y25SbFpDNWNiaUFnWTNSNExtWnBiR3hVWlhoMEtGd2k4SitZZ0Z3aUxDQXdMQ0F3S1R0Y2JpQWdjbVYwZFhKdUlHTjBlQzVuWlhSSmJXRm5aVVJoZEdFb2IyWm1jMlYwTENCdlptWnpaWFFzSURFc0lERXBMbVJoZEdGYk1GMGdJVDA5SURBN1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdaMlYwVG1WaGNtVnpkRk5qY205c2JHRmliR1ZEYjI1MFlXbHVaWElnUFNBb1hHNGdJR1ZzWlcxbGJuUTZJRWhVVFV4RmJHVnRaVzUwTEZ4dUtUb2dTRlJOVEVWc1pXMWxiblFnZkNCRWIyTjFiV1Z1ZENBOVBpQjdYRzRnSUd4bGRDQndZWEpsYm5RZ1BTQmxiR1Z0Wlc1MExuQmhjbVZ1ZEVWc1pXMWxiblE3WEc0Z0lIZG9hV3hsSUNod1lYSmxiblFwSUh0Y2JpQWdJQ0JwWmlBb2NHRnlaVzUwSUQwOVBTQmtiMk4xYldWdWRDNWliMlI1S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWkc5amRXMWxiblE3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUhzZ2IzWmxjbVpzYjNkWklIMGdQU0IzYVc1a2IzY3VaMlYwUTI5dGNIVjBaV1JUZEhsc1pTaHdZWEpsYm5RcE8xeHVJQ0FnSUdOdmJuTjBJR2hoYzFOamNtOXNiR0ZpYkdWRGIyNTBaVzUwSUQwZ2NHRnlaVzUwTG5OamNtOXNiRWhsYVdkb2RDQStJSEJoY21WdWRDNWpiR2xsYm5SSVpXbG5hSFE3WEc0Z0lDQWdhV1lnS0Z4dUlDQWdJQ0FnYUdGelUyTnliMnhzWVdKc1pVTnZiblJsYm5RZ0ppWmNiaUFnSUNBZ0lDaHZkbVZ5Wm14dmQxa2dQVDA5SUZ3aVlYVjBiMXdpSUh4OElHOTJaWEptYkc5M1dTQTlQVDBnWENKelkzSnZiR3hjSWlsY2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ3WVhKbGJuUTdYRzRnSUNBZ2ZWeHVJQ0FnSUhCaGNtVnVkQ0E5SUhCaGNtVnVkQzV3WVhKbGJuUkZiR1Z0Wlc1ME8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCa2IyTjFiV1Z1ZER0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQm1iMk4xYzA1bFlYSmxjM1JRWVhKbGJuUWdQU0FvWld4bGJXVnVkRG9nU0ZSTlRFbHVjSFYwUld4bGJXVnVkQ2tnUFQ0Z2UxeHVJQ0JzWlhRZ2NHRnlaVzUwSUQwZ1pXeGxiV1Z1ZEM1d1lYSmxiblJGYkdWdFpXNTBPMXh1SUNCM2FHbHNaU0FvY0dGeVpXNTBLU0I3WEc0Z0lDQWdhV1lnS0hCaGNtVnVkQzUwWVdKSmJtUmxlQ0ErSUMweEtTQjdYRzRnSUNBZ0lDQndZWEpsYm5RdVptOWpkWE1vS1R0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzRnSUNBZ2NHRnlaVzUwSUQwZ2NHRnlaVzUwTG5CaGNtVnVkRVZzWlcxbGJuUTdYRzRnSUgxY2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQndjbVYyWlc1MFZXNXNiMkZrSUQwZ0tHVjJaVzUwT2lCQ1pXWnZjbVZWYm14dllXUkZkbVZ1ZENrZ1BUNGdlMXh1SUNCbGRtVnVkQzV3Y21WMlpXNTBSR1ZtWVhWc2RDZ3BPMXh1SUNBdkx5Qk9UMVJGT2lCdGIyUmxjbTRnWW5KdmQzTmxjbk1nYm04Z2JHOXVaMlZ5SUdGc2JHOTNJSE5vYjNkcGJtY2dZU0JqZFhOMGIyMGdiV1Z6YzJGblpTQm9aWEpsWEc0Z0lHVjJaVzUwTG5KbGRIVnlibFpoYkhWbElEMGdYQ0pjSWp0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmllWFJsYzFSdlNHVjRVM1J5YVc1bklEMGdLR0o1ZEdWek9pQlZhVzUwT0VGeWNtRjVLU0E5UGlCN1hHNGdJSEpsZEhWeWJpQkJjbkpoZVM1bWNtOXRLR0o1ZEdWektWeHVJQ0FnSUM1dFlYQW9LR0o1ZEdVcElEMCtJR0F3Skh0aWVYUmxMblJ2VTNSeWFXNW5LREUyS1gxZ0xuTnNhV05sS0MweUtTbGNiaUFnSUNBdWFtOXBiaWhjSWx3aUtUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JuWlhSVmNHUmhkR1ZrVkdsdFpYTjBZVzF3SUQwZ0tDa2dQVDRnS0dselZHVnpkRVZ1ZGlncElEOGdNU0E2SUVSaGRHVXVibTkzS0NrcE8xeHVYRzR2S2lwY2JpQXFJRlJ5WVc1elptOXliWE1nWVhKeVlYa2diMllnYjJKcVpXTjBjeUJqYjI1MFlXbHVhVzVuSUdCcFpHQWdZWFIwY21saWRYUmxMRnh1SUNvZ2IzSWdZWEp5WVhrZ2IyWWdhV1J6SUNoemRISnBibWR6S1N3Z2FXNTBieUJoSUUxaGNDd2dhMlY1WkNCaWVTQmdhV1JnTGx4dUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ1lYSnlZWGxVYjAxaGNDQTlJRHhVSUdWNGRHVnVaSE1nZXlCcFpEb2djM1J5YVc1bklIMGdmQ0J6ZEhKcGJtYytLRnh1SUNCcGRHVnRjem9nY21WaFpHOXViSGtnVkZ0ZExGeHVLU0E5UGlCN1hHNGdJSEpsZEhWeWJpQnBkR1Z0Y3k1eVpXUjFZMlVvS0dGall6b2dUV0Z3UEhOMGNtbHVaeXdnVkQ0c0lHVnNaVzFsYm5RcElEMCtJSHRjYmlBZ0lDQmhZMk11YzJWMEtIUjVjR1Z2WmlCbGJHVnRaVzUwSUQwOVBTQmNJbk4wY21sdVoxd2lJRDhnWld4bGJXVnVkQ0E2SUdWc1pXMWxiblF1YVdRc0lHVnNaVzFsYm5RcE8xeHVJQ0FnSUhKbGRIVnliaUJoWTJNN1hHNGdJSDBzSUc1bGR5Qk5ZWEFvS1NrN1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdhWE5VWlhOMFJXNTJJRDBnS0NrZ1BUNWNiaUFnZEhsd1pXOW1JSEJ5YjJObGMzTWdJVDA5SUZ3aWRXNWtaV1pwYm1Wa1hDSWdKaVlnY0hKdlkyVnpjeTVsYm5ZL0xrNVBSRVZmUlU1V0lEMDlQU0JjSW5SbGMzUmNJanRjYmx4dVpYaHdiM0owSUdOdmJuTjBJSGR5WVhCRmRtVnVkQ0E5SUR4VUlHVjRkR1Z1WkhNZ1JYWmxiblErS0c1aGJXVTZJRVZXUlU1VUxDQnVZWFJwZG1WRmRtVnVkRG9nVkNrZ1BUNGdlMXh1SUNCeVpYUjFjbTRnYm1WM0lFTjFjM1J2YlVWMlpXNTBLRzVoYldVc0lIdGNiaUFnSUNCa1pYUmhhV3c2SUh0Y2JpQWdJQ0FnSUc1aGRHbDJaVVYyWlc1MExGeHVJQ0FnSUgwc1hHNGdJQ0FnWTJGdVkyVnNZV0pzWlRvZ2RISjFaU3hjYmlBZ2ZTazdYRzU5TzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vdXRpbHMudHNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL3ppbmRleC50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vemluZGV4LnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgoX191bnVzZWRfd2VicGFja19tb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5ldmFsKFwiX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pO1xcbi8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibW92ZU9uZUxlZnRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBtb3ZlT25lTGVmdCksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwibW92ZU9uZVJpZ2h0XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gbW92ZU9uZVJpZ2h0KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJtb3ZlQWxsTGVmdFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIG1vdmVBbGxMZWZ0KSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJtb3ZlQWxsUmlnaHRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBtb3ZlQWxsUmlnaHQpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vZWxlbWVudC9tdXRhdGVFbGVtZW50ICovIFxcXCIuLi8uLi9lbGVtZW50L211dGF0ZUVsZW1lbnQudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9ncm91cHMgKi8gXFxcIi4uLy4uL2dyb3Vwcy50c1xcXCIpO1xcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfc2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vc2NlbmUgKi8gXFxcIi4uLy4uL3NjZW5lL2luZGV4LnRzXFxcIik7XFxuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9zY2VuZV9TY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9zY2VuZS9TY2VuZSAqLyBcXFwiLi4vLi4vc2NlbmUvU2NlbmUudHNcXFwiKTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3V0aWxzICovIFxcXCIuLi8uLi91dGlscy50c1xcXCIpO1xcblxcblxcblxcblxcblxcbi8qKlxcbiAqIFJldHVybnMgaW5kaWNlcyBvZiBlbGVtZW50cyB0byBtb3ZlIGJhc2VkIG9uIHNlbGVjdGVkIGVsZW1lbnRzLlxcbiAqIEluY2x1ZGVzIGNvbnRpZ3VvdXMgZGVsZXRlZCBlbGVtZW50cyB0aGF0IGFyZSBiZXR3ZWVuIHR3byBzZWxlY3RlZCBlbGVtZW50cyxcXG4gKiAgZS5nLjogWzAgKHNlbGVjdGVkKSwgMSAoZGVsZXRlZCksIDIgKGRlbGV0ZWQpLCAzIChzZWxlY3RlZCldXFxuICovXFxuY29uc3QgZ2V0SW5kaWNlc1RvTW92ZSA9IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgbGV0IHNlbGVjdGVkSW5kaWNlcyA9IFtdO1xcbiAgICBsZXQgZGVsZXRlZEluZGljZXMgPSBbXTtcXG4gICAgbGV0IGluY2x1ZGVEZWxldGVkSW5kZXggPSBudWxsO1xcbiAgICBsZXQgaW5kZXggPSAtMTtcXG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50SWRzID0gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYXJyYXlUb01hcCkoKDAsX3NjZW5lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZ2V0U2VsZWN0ZWRFbGVtZW50cykoZWxlbWVudHMsIGFwcFN0YXRlLCB0cnVlKSk7XFxuICAgIHdoaWxlICgrK2luZGV4IDwgZWxlbWVudHMubGVuZ3RoKSB7XFxuICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50SWRzLmdldChlbGVtZW50c1tpbmRleF0uaWQpKSB7XFxuICAgICAgICAgICAgaWYgKGRlbGV0ZWRJbmRpY2VzLmxlbmd0aCkge1xcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEluZGljZXMgPSBzZWxlY3RlZEluZGljZXMuY29uY2F0KGRlbGV0ZWRJbmRpY2VzKTtcXG4gICAgICAgICAgICAgICAgZGVsZXRlZEluZGljZXMgPSBbXTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgc2VsZWN0ZWRJbmRpY2VzLnB1c2goaW5kZXgpO1xcbiAgICAgICAgICAgIGluY2x1ZGVEZWxldGVkSW5kZXggPSBpbmRleCArIDE7XFxuICAgICAgICB9XFxuICAgICAgICBlbHNlIGlmIChlbGVtZW50c1tpbmRleF0uaXNEZWxldGVkICYmIGluY2x1ZGVEZWxldGVkSW5kZXggPT09IGluZGV4KSB7XFxuICAgICAgICAgICAgaW5jbHVkZURlbGV0ZWRJbmRleCA9IGluZGV4ICsgMTtcXG4gICAgICAgICAgICBkZWxldGVkSW5kaWNlcy5wdXNoKGluZGV4KTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgIGRlbGV0ZWRJbmRpY2VzID0gW107XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgcmV0dXJuIHNlbGVjdGVkSW5kaWNlcztcXG59O1xcbmNvbnN0IHRvQ29udGlndW91c0dyb3VwcyA9IChhcnJheSkgPT4ge1xcbiAgICBsZXQgY3Vyc29yID0gMDtcXG4gICAgcmV0dXJuIGFycmF5LnJlZHVjZSgoYWNjLCB2YWx1ZSwgaW5kZXgpID0+IHtcXG4gICAgICAgIGlmIChpbmRleCA+IDAgJiYgYXJyYXlbaW5kZXggLSAxXSAhPT0gdmFsdWUgLSAxKSB7XFxuICAgICAgICAgICAgY3Vyc29yID0gKytjdXJzb3I7XFxuICAgICAgICB9XFxuICAgICAgICAoYWNjW2N1cnNvcl0gfHwgKGFjY1tjdXJzb3JdID0gW10pKS5wdXNoKHZhbHVlKTtcXG4gICAgICAgIHJldHVybiBhY2M7XFxuICAgIH0sIFtdKTtcXG59O1xcbi8qKlxcbiAqIEByZXR1cm5zIGluZGV4IG9mIHRhcmdldCBlbGVtZW50LCBjb25zaW5kZXJpbmcgdGlnaHRseS1ib3VuZCBlbGVtZW50c1xcbiAqIChjdXJyZW50bHkgbm9uLWxpbmVhciBlbGVtZW50cyBib3VuZCB0byBhIGNvbnRhaW5lcikgYXMgYSBvbmUgdW5pdC5cXG4gKiBJZiBubyBiaW5kaW5nIHByZXNlbnQsIHJldHVybnMgYHVuZGVmaW5lZGAuXFxuICovXFxuY29uc3QgZ2V0VGFyZ2V0SW5kZXhBY2NvdW50aW5nRm9yQmluZGluZyA9IChuZXh0RWxlbWVudCwgZWxlbWVudHMsIGRpcmVjdGlvbikgPT4ge1xcbiAgICB2YXIgX2EsIF9iO1xcbiAgICBpZiAoXFxcImNvbnRhaW5lcklkXFxcIiBpbiBuZXh0RWxlbWVudCAmJiBuZXh0RWxlbWVudC5jb250YWluZXJJZCkge1xcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gXFxcImxlZnRcXFwiKSB7XFxuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9IF9zY2VuZV9TY2VuZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fW1xcXCJkZWZhdWx0XFxcIl0uZ2V0U2NlbmUobmV4dEVsZW1lbnQpLmdldEVsZW1lbnQobmV4dEVsZW1lbnQuY29udGFpbmVySWQpO1xcbiAgICAgICAgICAgIGlmIChjb250YWluZXJFbGVtZW50KSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50cy5pbmRleE9mKGNvbnRhaW5lckVsZW1lbnQpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50cy5pbmRleE9mKG5leHRFbGVtZW50KTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBlbHNlIHtcXG4gICAgICAgIGNvbnN0IGJvdW5kRWxlbWVudElkID0gKF9iID0gKF9hID0gbmV4dEVsZW1lbnQuYm91bmRFbGVtZW50cykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZpbmQoKGJpbmRpbmcpID0+IGJpbmRpbmcudHlwZSAhPT0gXFxcImFycm93XFxcIikpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5pZDtcXG4gICAgICAgIGlmIChib3VuZEVsZW1lbnRJZCkge1xcbiAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT09IFxcXCJsZWZ0XFxcIikge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudHMuaW5kZXhPZihuZXh0RWxlbWVudCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNvbnN0IGJvdW5kVGV4dEVsZW1lbnQgPSBfc2NlbmVfU2NlbmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1tcXFwiZGVmYXVsdFxcXCJdLmdldFNjZW5lKG5leHRFbGVtZW50KS5nZXRFbGVtZW50KGJvdW5kRWxlbWVudElkKTtcXG4gICAgICAgICAgICBpZiAoYm91bmRUZXh0RWxlbWVudCkge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudHMuaW5kZXhPZihib3VuZFRleHRFbGVtZW50KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgIH1cXG59O1xcbi8qKlxcbiAqIFJldHVybnMgbmV4dCBjYW5kaWRhdGUgaW5kZXggdGhhdCdzIGF2YWlsYWJsZSB0byBiZSBtb3ZlZCB0by4gQ3VycmVudGx5IHRoYXRcXG4gKiAgaXMgYSBub24tZGVsZXRlZCBlbGVtZW50LCBhbmQgbm90IGluc2lkZSBhIGdyb3VwICh1bmxlc3Mgd2UncmUgZWRpdGluZyBpdCkuXFxuICovXFxuY29uc3QgZ2V0VGFyZ2V0SW5kZXggPSAoYXBwU3RhdGUsIGVsZW1lbnRzLCBib3VuZGFyeUluZGV4LCBkaXJlY3Rpb24pID0+IHtcXG4gICAgdmFyIF9hLCBfYjtcXG4gICAgY29uc3Qgc291cmNlRWxlbWVudCA9IGVsZW1lbnRzW2JvdW5kYXJ5SW5kZXhdO1xcbiAgICBjb25zdCBpbmRleEZpbHRlciA9IChlbGVtZW50KSA9PiB7XFxuICAgICAgICBpZiAoZWxlbWVudC5pc0RlbGV0ZWQpIHtcXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgICAgICB9XFxuICAgICAgICAvLyBpZiB3ZSdyZSBlZGl0aW5nIGdyb3VwLCBmaW5kIGNsb3Nlc3Qgc2libGluZyBpcnJlc3BlY3RpdmUgb2Ygd2hldGhlclxcbiAgICAgICAgLy8gdGhlcmUncyBhIGRpZmZlcmVudC1ncm91cCBlbGVtZW50IGJldHdlZW4gdGhlbSAoZm9yIGxlZ2FjeSByZWFzb25zKVxcbiAgICAgICAgaWYgKGFwcFN0YXRlLmVkaXRpbmdHcm91cElkKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuZ3JvdXBJZHMuaW5jbHVkZXMoYXBwU3RhdGUuZWRpdGluZ0dyb3VwSWQpO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgIH07XFxuICAgIGNvbnN0IGNhbmRpZGF0ZUluZGV4ID0gZGlyZWN0aW9uID09PSBcXFwibGVmdFxcXCJcXG4gICAgICAgID8gKDAsX3V0aWxzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uZmluZExhc3RJbmRleCkoZWxlbWVudHMsIGluZGV4RmlsdGVyLCBNYXRoLm1heCgwLCBib3VuZGFyeUluZGV4IC0gMSkpXFxuICAgICAgICA6ICgwLF91dGlsc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmZpbmRJbmRleCkoZWxlbWVudHMsIGluZGV4RmlsdGVyLCBib3VuZGFyeUluZGV4ICsgMSk7XFxuICAgIGNvbnN0IG5leHRFbGVtZW50ID0gZWxlbWVudHNbY2FuZGlkYXRlSW5kZXhdO1xcbiAgICBpZiAoIW5leHRFbGVtZW50KSB7XFxuICAgICAgICByZXR1cm4gLTE7XFxuICAgIH1cXG4gICAgaWYgKGFwcFN0YXRlLmVkaXRpbmdHcm91cElkKSB7XFxuICAgICAgICBpZiAoXFxuICAgICAgICAvLyBjYW5kaWRhdGUgZWxlbWVudCBpcyBhIHNpYmxpbmcgaW4gY3VycmVudCBlZGl0aW5nIGdyb3VwIFx1MjE5MiByZXR1cm5cXG4gICAgICAgIChzb3VyY2VFbGVtZW50ID09PSBudWxsIHx8IHNvdXJjZUVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNvdXJjZUVsZW1lbnQuZ3JvdXBJZHMuam9pbihcXFwiXFxcIikpID09PSAobmV4dEVsZW1lbnQgPT09IG51bGwgfHwgbmV4dEVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5leHRFbGVtZW50Lmdyb3VwSWRzLmpvaW4oXFxcIlxcXCIpKSkge1xcbiAgICAgICAgICAgIHJldHVybiAoKF9hID0gZ2V0VGFyZ2V0SW5kZXhBY2NvdW50aW5nRm9yQmluZGluZyhuZXh0RWxlbWVudCwgZWxlbWVudHMsIGRpcmVjdGlvbikpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGNhbmRpZGF0ZUluZGV4KTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2UgaWYgKCEobmV4dEVsZW1lbnQgPT09IG51bGwgfHwgbmV4dEVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5leHRFbGVtZW50Lmdyb3VwSWRzLmluY2x1ZGVzKGFwcFN0YXRlLmVkaXRpbmdHcm91cElkKSkpIHtcXG4gICAgICAgICAgICAvLyBjYW5kaWRhdGUgZWxlbWVudCBpcyBvdXRzaWRlIGN1cnJlbnQgZWRpdGluZyBncm91cCBcdTIxOTIgcHJldmVudFxcbiAgICAgICAgICAgIHJldHVybiAtMTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBpZiAoIW5leHRFbGVtZW50Lmdyb3VwSWRzLmxlbmd0aCkge1xcbiAgICAgICAgcmV0dXJuICgoX2IgPSBnZXRUYXJnZXRJbmRleEFjY291bnRpbmdGb3JCaW5kaW5nKG5leHRFbGVtZW50LCBlbGVtZW50cywgZGlyZWN0aW9uKSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogY2FuZGlkYXRlSW5kZXgpO1xcbiAgICB9XFxuICAgIGNvbnN0IHNpYmxpbmdHcm91cElkID0gYXBwU3RhdGUuZWRpdGluZ0dyb3VwSWRcXG4gICAgICAgID8gbmV4dEVsZW1lbnQuZ3JvdXBJZHNbbmV4dEVsZW1lbnQuZ3JvdXBJZHMuaW5kZXhPZihhcHBTdGF0ZS5lZGl0aW5nR3JvdXBJZCkgLSAxXVxcbiAgICAgICAgOiBuZXh0RWxlbWVudC5ncm91cElkc1tuZXh0RWxlbWVudC5ncm91cElkcy5sZW5ndGggLSAxXTtcXG4gICAgY29uc3QgZWxlbWVudHNJblNpYmxpbmdHcm91cCA9ICgwLF9ncm91cHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5nZXRFbGVtZW50c0luR3JvdXApKGVsZW1lbnRzLCBzaWJsaW5nR3JvdXBJZCk7XFxuICAgIGlmIChlbGVtZW50c0luU2libGluZ0dyb3VwLmxlbmd0aCkge1xcbiAgICAgICAgLy8gYXNzdW1lcyBnZXRFbGVtZW50c0luR3JvdXAoKSByZXR1cm5lZCBlbGVtZW50cyBhcmUgc29ydGVkXFxuICAgICAgICAvLyBieSB6SW5kZXggKGFzY2VuZGluZylcXG4gICAgICAgIHJldHVybiBkaXJlY3Rpb24gPT09IFxcXCJsZWZ0XFxcIlxcbiAgICAgICAgICAgID8gZWxlbWVudHMuaW5kZXhPZihlbGVtZW50c0luU2libGluZ0dyb3VwWzBdKVxcbiAgICAgICAgICAgIDogZWxlbWVudHMuaW5kZXhPZihlbGVtZW50c0luU2libGluZ0dyb3VwW2VsZW1lbnRzSW5TaWJsaW5nR3JvdXAubGVuZ3RoIC0gMV0pO1xcbiAgICB9XFxuICAgIHJldHVybiBjYW5kaWRhdGVJbmRleDtcXG59O1xcbmNvbnN0IGdldFRhcmdldEVsZW1lbnRzTWFwID0gKGVsZW1lbnRzLCBpbmRpY2VzKSA9PiB7XFxuICAgIHJldHVybiBpbmRpY2VzLnJlZHVjZSgoYWNjLCBpbmRleCkgPT4ge1xcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRzW2luZGV4XTtcXG4gICAgICAgIGFjY1tlbGVtZW50LmlkXSA9IGVsZW1lbnQ7XFxuICAgICAgICByZXR1cm4gYWNjO1xcbiAgICB9LCB7fSk7XFxufTtcXG5jb25zdCBzaGlmdEVsZW1lbnRzID0gKGFwcFN0YXRlLCBlbGVtZW50cywgZGlyZWN0aW9uKSA9PiB7XFxuICAgIGNvbnN0IGluZGljZXNUb01vdmUgPSBnZXRJbmRpY2VzVG9Nb3ZlKGVsZW1lbnRzLCBhcHBTdGF0ZSk7XFxuICAgIGNvbnN0IHRhcmdldEVsZW1lbnRzTWFwID0gZ2V0VGFyZ2V0RWxlbWVudHNNYXAoZWxlbWVudHMsIGluZGljZXNUb01vdmUpO1xcbiAgICBsZXQgZ3JvdXBlZEluZGljZXMgPSB0b0NvbnRpZ3VvdXNHcm91cHMoaW5kaWNlc1RvTW92ZSk7XFxuICAgIGlmIChkaXJlY3Rpb24gPT09IFxcXCJyaWdodFxcXCIpIHtcXG4gICAgICAgIGdyb3VwZWRJbmRpY2VzID0gZ3JvdXBlZEluZGljZXMucmV2ZXJzZSgpO1xcbiAgICB9XFxuICAgIGdyb3VwZWRJbmRpY2VzLmZvckVhY2goKGluZGljZXMsIGkpID0+IHtcXG4gICAgICAgIGNvbnN0IGxlYWRpbmdJbmRleCA9IGluZGljZXNbMF07XFxuICAgICAgICBjb25zdCB0cmFpbGluZ0luZGV4ID0gaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdO1xcbiAgICAgICAgY29uc3QgYm91bmRhcnlJbmRleCA9IGRpcmVjdGlvbiA9PT0gXFxcImxlZnRcXFwiID8gbGVhZGluZ0luZGV4IDogdHJhaWxpbmdJbmRleDtcXG4gICAgICAgIGNvbnN0IHRhcmdldEluZGV4ID0gZ2V0VGFyZ2V0SW5kZXgoYXBwU3RhdGUsIGVsZW1lbnRzLCBib3VuZGFyeUluZGV4LCBkaXJlY3Rpb24pO1xcbiAgICAgICAgaWYgKHRhcmdldEluZGV4ID09PSAtMSB8fCBib3VuZGFyeUluZGV4ID09PSB0YXJnZXRJbmRleCkge1xcbiAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IGxlYWRpbmdFbGVtZW50cyA9IGRpcmVjdGlvbiA9PT0gXFxcImxlZnRcXFwiXFxuICAgICAgICAgICAgPyBlbGVtZW50cy5zbGljZSgwLCB0YXJnZXRJbmRleClcXG4gICAgICAgICAgICA6IGVsZW1lbnRzLnNsaWNlKDAsIGxlYWRpbmdJbmRleCk7XFxuICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50cyA9IGVsZW1lbnRzLnNsaWNlKGxlYWRpbmdJbmRleCwgdHJhaWxpbmdJbmRleCArIDEpO1xcbiAgICAgICAgY29uc3QgZGlzcGxhY2VkRWxlbWVudHMgPSBkaXJlY3Rpb24gPT09IFxcXCJsZWZ0XFxcIlxcbiAgICAgICAgICAgID8gZWxlbWVudHMuc2xpY2UodGFyZ2V0SW5kZXgsIGxlYWRpbmdJbmRleClcXG4gICAgICAgICAgICA6IGVsZW1lbnRzLnNsaWNlKHRyYWlsaW5nSW5kZXggKyAxLCB0YXJnZXRJbmRleCArIDEpO1xcbiAgICAgICAgY29uc3QgdHJhaWxpbmdFbGVtZW50cyA9IGRpcmVjdGlvbiA9PT0gXFxcImxlZnRcXFwiXFxuICAgICAgICAgICAgPyBlbGVtZW50cy5zbGljZSh0cmFpbGluZ0luZGV4ICsgMSlcXG4gICAgICAgICAgICA6IGVsZW1lbnRzLnNsaWNlKHRhcmdldEluZGV4ICsgMSk7XFxuICAgICAgICBlbGVtZW50cyA9XFxuICAgICAgICAgICAgZGlyZWN0aW9uID09PSBcXFwibGVmdFxcXCJcXG4gICAgICAgICAgICAgICAgPyBbXFxuICAgICAgICAgICAgICAgICAgICAuLi5sZWFkaW5nRWxlbWVudHMsXFxuICAgICAgICAgICAgICAgICAgICAuLi50YXJnZXRFbGVtZW50cyxcXG4gICAgICAgICAgICAgICAgICAgIC4uLmRpc3BsYWNlZEVsZW1lbnRzLFxcbiAgICAgICAgICAgICAgICAgICAgLi4udHJhaWxpbmdFbGVtZW50cyxcXG4gICAgICAgICAgICAgICAgXVxcbiAgICAgICAgICAgICAgICA6IFtcXG4gICAgICAgICAgICAgICAgICAgIC4uLmxlYWRpbmdFbGVtZW50cyxcXG4gICAgICAgICAgICAgICAgICAgIC4uLmRpc3BsYWNlZEVsZW1lbnRzLFxcbiAgICAgICAgICAgICAgICAgICAgLi4udGFyZ2V0RWxlbWVudHMsXFxuICAgICAgICAgICAgICAgICAgICAuLi50cmFpbGluZ0VsZW1lbnRzLFxcbiAgICAgICAgICAgICAgICBdO1xcbiAgICB9KTtcXG4gICAgcmV0dXJuIGVsZW1lbnRzLm1hcCgoZWxlbWVudCkgPT4ge1xcbiAgICAgICAgaWYgKHRhcmdldEVsZW1lbnRzTWFwW2VsZW1lbnQuaWRdKSB7XFxuICAgICAgICAgICAgcmV0dXJuICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5idW1wVmVyc2lvbikoZWxlbWVudCk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gZWxlbWVudDtcXG4gICAgfSk7XFxufTtcXG5jb25zdCBzaGlmdEVsZW1lbnRzVG9FbmQgPSAoZWxlbWVudHMsIGFwcFN0YXRlLCBkaXJlY3Rpb24pID0+IHtcXG4gICAgY29uc3QgaW5kaWNlc1RvTW92ZSA9IGdldEluZGljZXNUb01vdmUoZWxlbWVudHMsIGFwcFN0YXRlKTtcXG4gICAgY29uc3QgdGFyZ2V0RWxlbWVudHNNYXAgPSBnZXRUYXJnZXRFbGVtZW50c01hcChlbGVtZW50cywgaW5kaWNlc1RvTW92ZSk7XFxuICAgIGNvbnN0IGRpc3BsYWNlZEVsZW1lbnRzID0gW107XFxuICAgIGxldCBsZWFkaW5nSW5kZXg7XFxuICAgIGxldCB0cmFpbGluZ0luZGV4O1xcbiAgICBpZiAoZGlyZWN0aW9uID09PSBcXFwibGVmdFxcXCIpIHtcXG4gICAgICAgIGlmIChhcHBTdGF0ZS5lZGl0aW5nR3JvdXBJZCkge1xcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwRWxlbWVudHMgPSAoMCxfZ3JvdXBzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZ2V0RWxlbWVudHNJbkdyb3VwKShlbGVtZW50cywgYXBwU3RhdGUuZWRpdGluZ0dyb3VwSWQpO1xcbiAgICAgICAgICAgIGlmICghZ3JvdXBFbGVtZW50cy5sZW5ndGgpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBsZWFkaW5nSW5kZXggPSBlbGVtZW50cy5pbmRleE9mKGdyb3VwRWxlbWVudHNbMF0pO1xcbiAgICAgICAgfVxcbiAgICAgICAgZWxzZSB7XFxuICAgICAgICAgICAgbGVhZGluZ0luZGV4ID0gMDtcXG4gICAgICAgIH1cXG4gICAgICAgIHRyYWlsaW5nSW5kZXggPSBpbmRpY2VzVG9Nb3ZlW2luZGljZXNUb01vdmUubGVuZ3RoIC0gMV07XFxuICAgIH1cXG4gICAgZWxzZSB7XFxuICAgICAgICBpZiAoYXBwU3RhdGUuZWRpdGluZ0dyb3VwSWQpIHtcXG4gICAgICAgICAgICBjb25zdCBncm91cEVsZW1lbnRzID0gKDAsX2dyb3Vwc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmdldEVsZW1lbnRzSW5Hcm91cCkoZWxlbWVudHMsIGFwcFN0YXRlLmVkaXRpbmdHcm91cElkKTtcXG4gICAgICAgICAgICBpZiAoIWdyb3VwRWxlbWVudHMubGVuZ3RoKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50cztcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgdHJhaWxpbmdJbmRleCA9IGVsZW1lbnRzLmluZGV4T2YoZ3JvdXBFbGVtZW50c1tncm91cEVsZW1lbnRzLmxlbmd0aCAtIDFdKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVsc2Uge1xcbiAgICAgICAgICAgIHRyYWlsaW5nSW5kZXggPSBlbGVtZW50cy5sZW5ndGggLSAxO1xcbiAgICAgICAgfVxcbiAgICAgICAgbGVhZGluZ0luZGV4ID0gaW5kaWNlc1RvTW92ZVswXTtcXG4gICAgfVxcbiAgICBmb3IgKGxldCBpbmRleCA9IGxlYWRpbmdJbmRleDsgaW5kZXggPCB0cmFpbGluZ0luZGV4ICsgMTsgaW5kZXgrKykge1xcbiAgICAgICAgaWYgKCFpbmRpY2VzVG9Nb3ZlLmluY2x1ZGVzKGluZGV4KSkge1xcbiAgICAgICAgICAgIGRpc3BsYWNlZEVsZW1lbnRzLnB1c2goZWxlbWVudHNbaW5kZXhdKTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50cyA9IE9iamVjdC52YWx1ZXModGFyZ2V0RWxlbWVudHNNYXApLm1hcCgoZWxlbWVudCkgPT4ge1xcbiAgICAgICAgcmV0dXJuICgwLF9lbGVtZW50X211dGF0ZUVsZW1lbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5idW1wVmVyc2lvbikoZWxlbWVudCk7XFxuICAgIH0pO1xcbiAgICBjb25zdCBsZWFkaW5nRWxlbWVudHMgPSBlbGVtZW50cy5zbGljZSgwLCBsZWFkaW5nSW5kZXgpO1xcbiAgICBjb25zdCB0cmFpbGluZ0VsZW1lbnRzID0gZWxlbWVudHMuc2xpY2UodHJhaWxpbmdJbmRleCArIDEpO1xcbiAgICByZXR1cm4gZGlyZWN0aW9uID09PSBcXFwibGVmdFxcXCJcXG4gICAgICAgID8gW1xcbiAgICAgICAgICAgIC4uLmxlYWRpbmdFbGVtZW50cyxcXG4gICAgICAgICAgICAuLi50YXJnZXRFbGVtZW50cyxcXG4gICAgICAgICAgICAuLi5kaXNwbGFjZWRFbGVtZW50cyxcXG4gICAgICAgICAgICAuLi50cmFpbGluZ0VsZW1lbnRzLFxcbiAgICAgICAgXVxcbiAgICAgICAgOiBbXFxuICAgICAgICAgICAgLi4ubGVhZGluZ0VsZW1lbnRzLFxcbiAgICAgICAgICAgIC4uLmRpc3BsYWNlZEVsZW1lbnRzLFxcbiAgICAgICAgICAgIC4uLnRhcmdldEVsZW1lbnRzLFxcbiAgICAgICAgICAgIC4uLnRyYWlsaW5nRWxlbWVudHMsXFxuICAgICAgICBdO1xcbn07XFxuLy8gcHVibGljIEFQSVxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuY29uc3QgbW92ZU9uZUxlZnQgPSAoZWxlbWVudHMsIGFwcFN0YXRlKSA9PiB7XFxuICAgIHJldHVybiBzaGlmdEVsZW1lbnRzKGFwcFN0YXRlLCBlbGVtZW50cywgXFxcImxlZnRcXFwiKTtcXG59O1xcbmNvbnN0IG1vdmVPbmVSaWdodCA9IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgcmV0dXJuIHNoaWZ0RWxlbWVudHMoYXBwU3RhdGUsIGVsZW1lbnRzLCBcXFwicmlnaHRcXFwiKTtcXG59O1xcbmNvbnN0IG1vdmVBbGxMZWZ0ID0gKGVsZW1lbnRzLCBhcHBTdGF0ZSkgPT4ge1xcbiAgICByZXR1cm4gc2hpZnRFbGVtZW50c1RvRW5kKGVsZW1lbnRzLCBhcHBTdGF0ZSwgXFxcImxlZnRcXFwiKTtcXG59O1xcbmNvbnN0IG1vdmVBbGxSaWdodCA9IChlbGVtZW50cywgYXBwU3RhdGUpID0+IHtcXG4gICAgcmV0dXJuIHNoaWZ0RWxlbWVudHNUb0VuZChlbGVtZW50cywgYXBwU3RhdGUsIFxcXCJyaWdodFxcXCIpO1xcbn07XFxuLy8jIHNvdXJjZVVSTD1bbW9kdWxlXVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pTGk0dkxpNHZlbWx1WkdWNExuUnpMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPenRCUVVGelJEdEJRVVZTTzBGQlEwRTdRVUZEV2p0QlFVVTJRanRCUVVVdlJEczdPenRIUVVsSE8wRkJRMGdzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhEUVVOMlFpeFJRVUZ6UXl4RlFVTjBReXhSUVVGclFpeEZRVU5zUWl4RlFVRkZPMGxCUTBZc1NVRkJTU3hsUVVGbExFZEJRV0VzUlVGQlJTeERRVUZETzBsQlEyNURMRWxCUVVrc1kwRkJZeXhIUVVGaExFVkJRVVVzUTBGQlF6dEpRVU5zUXl4SlFVRkpMRzFDUVVGdFFpeEhRVUZITEVsQlFVa3NRMEZCUXp0SlFVTXZRaXhKUVVGSkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTm1MRTFCUVUwc2EwSkJRV3RDTEVkQlFVY3NhMFJCUVZVc1EwRkRia01zTWtSQlFXMUNMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZET1VNc1EwRkJRenRKUVVOR0xFOUJRVThzUlVGQlJTeExRVUZMTEVkQlFVY3NVVUZCVVN4RFFVRkRMRTFCUVUwc1JVRkJSVHRSUVVOb1F5eEpRVUZKTEd0Q1FVRnJRaXhEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVU3V1VGRE9VTXNTVUZCU1N4alFVRmpMRU5CUVVNc1RVRkJUU3hGUVVGRk8yZENRVU42UWl4bFFVRmxMRWRCUVVjc1pVRkJaU3hEUVVGRExFMUJRVTBzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXp0blFrRkRla1FzWTBGQll5eEhRVUZITEVWQlFVVXNRMEZCUXp0aFFVTnlRanRaUVVORUxHVkJRV1VzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1dVRkROVUlzYlVKQlFXMUNMRWRCUVVjc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF6dFRRVU5xUXp0aFFVRk5MRWxCUVVrc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEZOQlFWTXNTVUZCU1N4dFFrRkJiVUlzUzBGQlN5eExRVUZMTEVWQlFVVTdXVUZEY2tVc2JVSkJRVzFDTEVkQlFVY3NTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOb1F5eGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xTkJRelZDTzJGQlFVMDdXVUZEVEN4alFVRmpMRWRCUVVjc1JVRkJSU3hEUVVGRE8xTkJRM0pDTzB0QlEwWTdTVUZEUkN4UFFVRlBMR1ZCUVdVc1EwRkJRenRCUVVONlFpeERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MR3RDUVVGclFpeEhRVUZITEVOQlFVTXNTMEZCWlN4RlFVRkZMRVZCUVVVN1NVRkROME1zU1VGQlNTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTJZc1QwRkJUeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJUdFJRVU40UXl4SlFVRkpMRXRCUVVzc1IwRkJSeXhEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1MwRkJTeXhMUVVGTExFZEJRVWNzUTBGQlF5eEZRVUZGTzFsQlF5OURMRTFCUVUwc1IwRkJSeXhGUVVGRkxFMUJRVTBzUTBGQlF6dFRRVU51UWp0UlFVTkVMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMmhFTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1EwRkJReXhGUVVGRkxFVkJRV2RDTEVOQlFVTXNRMEZCUXp0QlFVTjJRaXhEUVVGRExFTkJRVU03UVVGRlJqczdPenRIUVVsSE8wRkJRMGdzVFVGQlRTeHJRMEZCYTBNc1IwRkJSeXhEUVVONlF5eFhRVUU0UWl4RlFVTTVRaXhSUVVGelF5eEZRVU4wUXl4VFFVRXlRaXhGUVVNelFpeEZRVUZGT3p0SlFVTkdMRWxCUVVrc1lVRkJZU3hKUVVGSkxGZEJRVmNzU1VGQlNTeFhRVUZYTEVOQlFVTXNWMEZCVnl4RlFVRkZPMUZCUXpORUxFbEJRVWtzVTBGQlV5eExRVUZMTEUxQlFVMHNSVUZCUlR0WlFVTjRRaXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMRFpFUVVGakxFTkJRVU1zVjBGQlZ5eERRVUZGTEVOQlFVTXNWVUZCVlN4RFFVTTVSQ3hYUVVGWExFTkJRVU1zVjBGQlZ5eERRVU40UWl4RFFVRkRPMWxCUTBZc1NVRkJTU3huUWtGQlowSXNSVUZCUlR0blFrRkRjRUlzVDBGQlR5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTTdZVUZETTBNN1UwRkRSanRoUVVGTk8xbEJRMHdzVDBGQlR5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8xTkJRM1JETzB0QlEwWTdVMEZCVFR0UlFVTk1MRTFCUVUwc1kwRkJZeXhIUVVGSExIVkNRVUZYTEVOQlFVTXNZVUZCWVN3d1EwRkJSU3hKUVVGSkxFTkJRM0JFTEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeExRVUZMTEU5QlFVOHNRMEZEZEVNc01FTkJRVVVzUlVGQlJTeERRVUZETzFGQlEwNHNTVUZCU1N4alFVRmpMRVZCUVVVN1dVRkRiRUlzU1VGQlNTeFRRVUZUTEV0QlFVc3NUVUZCVFN4RlFVRkZPMmRDUVVONFFpeFBRVUZQTEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03WVVGRGRFTTdXVUZEUkN4TlFVRk5MR2RDUVVGblFpeEhRVU53UWl3MlJFRkJZeXhEUVVGRExGZEJRVmNzUTBGQlJTeERRVUZETEZWQlFWVXNRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJRenRaUVVVeFJDeEpRVUZKTEdkQ1FVRm5RaXhGUVVGRk8yZENRVU53UWl4UFFVRlBMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJRenRoUVVNelF6dFRRVU5HTzB0QlEwWTdRVUZEU0N4RFFVRkRMRU5CUVVNN1FVRkZSanM3TzBkQlIwYzdRVUZEU0N4TlFVRk5MR05CUVdNc1IwRkJSeXhEUVVOeVFpeFJRVUZyUWl4RlFVTnNRaXhSUVVGelF5eEZRVU4wUXl4aFFVRnhRaXhGUVVOeVFpeFRRVUV5UWl4RlFVTXpRaXhGUVVGRk96dEpRVU5HTEUxQlFVMHNZVUZCWVN4SFFVRkhMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dEpRVVU1UXl4TlFVRk5MRmRCUVZjc1IwRkJSeXhEUVVGRExFOUJRVEJDTEVWQlFVVXNSVUZCUlR0UlFVTnFSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eFRRVUZUTEVWQlFVVTdXVUZEY2tJc1QwRkJUeXhMUVVGTExFTkJRVU03VTBGRFpEdFJRVU5FTEhWRlFVRjFSVHRSUVVOMlJTeHpSVUZCYzBVN1VVRkRkRVVzU1VGQlNTeFJRVUZSTEVOQlFVTXNZMEZCWXl4RlFVRkZPMWxCUXpOQ0xFOUJRVThzVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzFOQlF6TkVPMUZCUTBRc1QwRkJUeXhKUVVGSkxFTkJRVU03U1VGRFpDeERRVUZETEVOQlFVTTdTVUZGUml4TlFVRk5MR05CUVdNc1IwRkRiRUlzVTBGQlV5eExRVUZMTEUxQlFVMDdVVUZEYkVJc1EwRkJReXhEUVVGRExIRkVRVUZoTEVOQlFVTXNVVUZCVVN4RlFVRkZMRmRCUVZjc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4aFFVRmhMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGRFVXNRMEZCUXl4RFFVRkRMR2xFUVVGVExFTkJRVU1zVVVGQlVTeEZRVUZGTEZkQlFWY3NSVUZCUlN4aFFVRmhMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRk1VUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1VVRkJVU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzBsQlJUZERMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVU3VVVGRGFFSXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOWU8wbEJSVVFzU1VGQlNTeFJRVUZSTEVOQlFVTXNZMEZCWXl4RlFVRkZPMUZCUXpOQ08xRkJRMFVzYlVWQlFXMUZPMUZCUTI1RkxHTkJRV0VzWVVGQllpeGhRVUZoTEhWQ1FVRmlMR0ZCUVdFc1EwRkJSU3hSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4UFFVRkxMRmRCUVZjc1lVRkJXQ3hYUVVGWExIVkNRVUZZTEZkQlFWY3NRMEZCUlN4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eEhRVU51UlR0WlFVTkJMRTlCUVU4c1EwRkRUQ3gzUTBGQmEwTXNRMEZCUXl4WFFVRlhMRVZCUVVVc1VVRkJVU3hGUVVGRkxGTkJRVk1zUTBGQlF5eHRRMEZEY0VVc1kwRkJZeXhEUVVObUxFTkJRVU03VTBGRFNEdGhRVUZOTEVsQlFVa3NRMEZCUXl4WlFVRlhMR0ZCUVZnc1YwRkJWeXgxUWtGQldDeFhRVUZYTEVOQlFVVXNVVUZCVVN4RFFVRkRMRkZCUVZFc1EwRkJReXhSUVVGUkxFTkJRVU1zWTBGQll5eERRVUZETEVkQlFVVTdXVUZEYmtVc0swUkJRU3RFTzFsQlF5OUVMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU03VTBGRFdEdExRVU5HTzBsQlJVUXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeEZRVUZGTzFGQlEyaERMRTlCUVU4c1EwRkRUQ3gzUTBGQmEwTXNRMEZCUXl4WFFVRlhMRVZCUVVVc1VVRkJVU3hGUVVGRkxGTkJRVk1zUTBGQlF5eHRRMEZEY0VVc1kwRkJZeXhEUVVObUxFTkJRVU03UzBGRFNEdEpRVVZFTEUxQlFVMHNZMEZCWXl4SFFVRkhMRkZCUVZFc1EwRkJReXhqUVVGak8xRkJRelZETEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVOc1FpeFhRVUZYTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zWTBGQll5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVTXhSRHRSUVVOSUxFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlRGRUxFMUJRVTBzYzBKQlFYTkNMRWRCUVVjc01rUkJRV3RDTEVOQlFVTXNVVUZCVVN4RlFVRkZMR05CUVdNc1EwRkJReXhEUVVGRE8wbEJSVFZGTEVsQlFVa3NjMEpCUVhOQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTzFGQlEycERMRFJFUVVFMFJEdFJRVU0xUkN4M1FrRkJkMEk3VVVGRGVFSXNUMEZCVHl4VFFVRlRMRXRCUVVzc1RVRkJUVHRaUVVONlFpeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNM1F5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkRaQ3h6UWtGQmMwSXNRMEZCUXl4elFrRkJjMElzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUXpGRUxFTkJRVU03UzBGRFVEdEpRVVZFTEU5QlFVOHNZMEZCWXl4RFFVRkRPMEZCUTNoQ0xFTkJRVU1zUTBGQlF6dEJRVVZHTEUxQlFVMHNiMEpCUVc5Q0xFZEJRVWNzUTBGRE0wSXNVVUZCYzBNc1JVRkRkRU1zVDBGQmFVSXNSVUZEYWtJc1JVRkJSVHRKUVVOR0xFOUJRVThzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJUdFJRVU51UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEYUVNc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNN1VVRkRNVUlzVDBGQlR5eEhRVUZITEVOQlFVTTdTVUZEWWl4RFFVRkRMRVZCUVVVc1JVRkJkVU1zUTBGQlF5eERRVUZETzBGQlF6bERMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzWVVGQllTeEhRVUZITEVOQlEzQkNMRkZCUVd0Q0xFVkJRMnhDTEZGQlFYTkRMRVZCUTNSRExGTkJRVEpDTEVWQlF6TkNMRVZCUVVVN1NVRkRSaXhOUVVGTkxHRkJRV0VzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTTdTVUZETTBRc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnl4dlFrRkJiMElzUTBGQlF5eFJRVUZSTEVWQlFVVXNZVUZCWVN4RFFVRkRMRU5CUVVNN1NVRkRlRVVzU1VGQlNTeGpRVUZqTEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTTdTVUZGZGtRc1NVRkJTU3hUUVVGVExFdEJRVXNzVDBGQlR5eEZRVUZGTzFGQlEzcENMR05CUVdNc1IwRkJSeXhqUVVGakxFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdTMEZETTBNN1NVRkZSQ3hqUVVGakxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xRkJRM0JETEUxQlFVMHNXVUZCV1N4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5vUXl4TlFVRk5MR0ZCUVdFc1IwRkJSeXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOc1JDeE5RVUZOTEdGQlFXRXNSMEZCUnl4VFFVRlRMRXRCUVVzc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMR0ZCUVdFc1EwRkJRenRSUVVVeFJTeE5RVUZOTEZkQlFWY3NSMEZCUnl4alFVRmpMRU5CUTJoRExGRkJRVkVzUlVGRFVpeFJRVUZSTEVWQlExSXNZVUZCWVN4RlFVTmlMRk5CUVZNc1EwRkRWaXhEUVVGRE8xRkJSVVlzU1VGQlNTeFhRVUZYTEV0QlFVc3NRMEZCUXl4RFFVRkRMRWxCUVVrc1lVRkJZU3hMUVVGTExGZEJRVmNzUlVGQlJUdFpRVU4yUkN4UFFVRlBPMU5CUTFJN1VVRkZSQ3hOUVVGTkxHVkJRV1VzUjBGRGJrSXNVMEZCVXl4TFFVRkxMRTFCUVUwN1dVRkRiRUlzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRkxGZEJRVmNzUTBGQlF6dFpRVU5vUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRkRU1zVFVGQlRTeGpRVUZqTEVkQlFVY3NVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhaUVVGWkxFVkJRVVVzWVVGQllTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNaRkxFMUJRVTBzYVVKQlFXbENMRWRCUTNKQ0xGTkJRVk1zUzBGQlN5eE5RVUZOTzFsQlEyeENMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4WlFVRlpMRU5CUVVNN1dVRkRNME1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hIUVVGSExFTkJRVU1zUlVGQlJTeFhRVUZYTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRla1FzVFVGQlRTeG5Ra0ZCWjBJc1IwRkRjRUlzVTBGQlV5eExRVUZMTEUxQlFVMDdXVUZEYkVJc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOdVF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGZEVNc1VVRkJVVHRaUVVOT0xGTkJRVk1zUzBGQlN5eE5RVUZOTzJkQ1FVTnNRaXhEUVVGRExFTkJRVU03YjBKQlEwVXNSMEZCUnl4bFFVRmxPMjlDUVVOc1FpeEhRVUZITEdOQlFXTTdiMEpCUTJwQ0xFZEJRVWNzYVVKQlFXbENPMjlDUVVOd1FpeEhRVUZITEdkQ1FVRm5RanRwUWtGRGNFSTdaMEpCUTBnc1EwRkJReXhEUVVGRE8yOUNRVU5GTEVkQlFVY3NaVUZCWlR0dlFrRkRiRUlzUjBGQlJ5eHBRa0ZCYVVJN2IwSkJRM0JDTEVkQlFVY3NZMEZCWXp0dlFrRkRha0lzUjBGQlJ5eG5Ra0ZCWjBJN2FVSkJRM0JDTEVOQlFVTTdTVUZEVml4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWSUxFOUJRVThzVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRk8xRkJRemxDTEVsQlFVa3NhVUpCUVdsQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZPMWxCUTJwRExFOUJRVThzYlVWQlFWY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRUUVVNM1FqdFJRVU5FTEU5QlFVOHNUMEZCVHl4RFFVRkRPMGxCUTJwQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwd3NRMEZCUXl4RFFVRkRPMEZCUlVZc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4RFFVTjZRaXhSUVVGelF5eEZRVU4wUXl4UlFVRnJRaXhGUVVOc1FpeFRRVUV5UWl4RlFVTXpRaXhGUVVGRk8wbEJRMFlzVFVGQlRTeGhRVUZoTEVkQlFVY3NaMEpCUVdkQ0xFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRPMGxCUXpORUxFMUJRVTBzYVVKQlFXbENMRWRCUVVjc2IwSkJRVzlDTEVOQlFVTXNVVUZCVVN4RlFVRkZMR0ZCUVdFc1EwRkJReXhEUVVGRE8wbEJRM2hGTEUxQlFVMHNhVUpCUVdsQ0xFZEJRWGRDTEVWQlFVVXNRMEZCUXp0SlFVVnNSQ3hKUVVGSkxGbEJRVzlDTEVOQlFVTTdTVUZEZWtJc1NVRkJTU3hoUVVGeFFpeERRVUZETzBsQlF6RkNMRWxCUVVrc1UwRkJVeXhMUVVGTExFMUJRVTBzUlVGQlJUdFJRVU40UWl4SlFVRkpMRkZCUVZFc1EwRkJReXhqUVVGakxFVkJRVVU3V1VGRE0wSXNUVUZCVFN4aFFVRmhMRWRCUVVjc01rUkJRV3RDTEVOQlEzUkRMRkZCUVZFc1JVRkRVaXhSUVVGUkxFTkJRVU1zWTBGQll5eERRVU40UWl4RFFVRkRPMWxCUTBZc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eE5RVUZOTEVWQlFVVTdaMEpCUTNwQ0xFOUJRVThzVVVGQlVTeERRVUZETzJGQlEycENPMWxCUTBRc1dVRkJXU3hIUVVGSExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VTBGRGJrUTdZVUZCVFR0WlFVTk1MRmxCUVZrc1IwRkJSeXhEUVVGRExFTkJRVU03VTBGRGJFSTdVVUZGUkN4aFFVRmhMRWRCUVVjc1lVRkJZU3hEUVVGRExHRkJRV0VzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRla1E3VTBGQlRUdFJRVU5NTEVsQlFVa3NVVUZCVVN4RFFVRkRMR05CUVdNc1JVRkJSVHRaUVVNelFpeE5RVUZOTEdGQlFXRXNSMEZCUnl3eVJFRkJhMElzUTBGRGRFTXNVVUZCVVN4RlFVTlNMRkZCUVZFc1EwRkJReXhqUVVGakxFTkJRM2hDTEVOQlFVTTdXVUZEUml4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFMUJRVTBzUlVGQlJUdG5Ra0ZEZWtJc1QwRkJUeXhSUVVGUkxFTkJRVU03WVVGRGFrSTdXVUZEUkN4aFFVRmhMRWRCUVVjc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eGhRVUZoTEVOQlFVTXNZVUZCWVN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFOQlF6TkZPMkZCUVUwN1dVRkRUQ3hoUVVGaExFZEJRVWNzVVVGQlVTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNN1UwRkRja003VVVGRlJDeFpRVUZaTEVkQlFVY3NZVUZCWVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wdEJRMnBETzBsQlJVUXNTMEZCU3l4SlFVRkpMRXRCUVVzc1IwRkJSeXhaUVVGWkxFVkJRVVVzUzBGQlN5eEhRVUZITEdGQlFXRXNSMEZCUnl4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVU3VVVGRGFrVXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVTdXVUZEYkVNc2FVSkJRV2xDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEzcERPMHRCUTBZN1NVRkZSQ3hOUVVGTkxHTkJRV01zUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVU3VVVGRGRFVXNUMEZCVHl4dFJVRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6bENMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSVWdzVFVGQlRTeGxRVUZsTEVkQlFVY3NVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzV1VGQldTeERRVUZETEVOQlFVTTdTVUZEZUVRc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVXpSQ3hQUVVGUExGTkJRVk1zUzBGQlN5eE5RVUZOTzFGQlEzcENMRU5CUVVNc1EwRkJRenRaUVVORkxFZEJRVWNzWlVGQlpUdFpRVU5zUWl4SFFVRkhMR05CUVdNN1dVRkRha0lzUjBGQlJ5eHBRa0ZCYVVJN1dVRkRjRUlzUjBGQlJ5eG5Ra0ZCWjBJN1UwRkRjRUk3VVVGRFNDeERRVUZETEVOQlFVTTdXVUZEUlN4SFFVRkhMR1ZCUVdVN1dVRkRiRUlzUjBGQlJ5eHBRa0ZCYVVJN1dVRkRjRUlzUjBGQlJ5eGpRVUZqTzFsQlEycENMRWRCUVVjc1owSkJRV2RDTzFOQlEzQkNMRU5CUVVNN1FVRkRVaXhEUVVGRExFTkJRVU03UVVGRlJpeGhRVUZoTzBGQlEySXNaMFpCUVdkR08wRkJSWHBGTEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUTNwQ0xGRkJRWE5ETEVWQlEzUkRMRkZCUVd0Q0xFVkJRMnhDTEVWQlFVVTdTVUZEUml4UFFVRlBMR0ZCUVdFc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUTI1RUxFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNXVUZCV1N4SFFVRkhMRU5CUXpGQ0xGRkJRWE5ETEVWQlEzUkRMRkZCUVd0Q0xFVkJRMnhDTEVWQlFVVTdTVUZEUml4UFFVRlBMR0ZCUVdFc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMEZCUTNCRUxFTkJRVU1zUTBGQlF6dEJRVVZMTEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUTNwQ0xGRkJRWE5ETEVWQlEzUkRMRkZCUVd0Q0xFVkJRMnhDTEVWQlFVVTdTVUZEUml4UFFVRlBMR3RDUVVGclFpeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRGVFUXNRMEZCUXl4RFFVRkRPMEZCUlVzc1RVRkJUU3haUVVGWkxFZEJRVWNzUTBGRE1VSXNVVUZCYzBNc1JVRkRkRU1zVVVGQmEwSXNSVUZEYkVJc1JVRkJSVHRKUVVOR0xFOUJRVThzYTBKQlFXdENMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTjZSQ3hEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6SWpwYkluZGxZbkJoWTJzNkx5OHZMaTR2TGk0dmVtbHVaR1Y0TG5SelB6WTNZeklpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ1luVnRjRlpsY25OcGIyNGdmU0JtY205dElGd2lMaTlsYkdWdFpXNTBMMjExZEdGMFpVVnNaVzFsYm5SY0lqdGNibWx0Y0c5eWRDQjdJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBJSDBnWm5KdmJTQmNJaTR2Wld4bGJXVnVkQzkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnWjJWMFJXeGxiV1Z1ZEhOSmJrZHliM1Z3SUgwZ1puSnZiU0JjSWk0dlozSnZkWEJ6WENJN1hHNXBiWEJ2Y25RZ2V5Qm5aWFJUWld4bFkzUmxaRVZzWlcxbGJuUnpJSDBnWm5KdmJTQmNJaTR2YzJObGJtVmNJanRjYm1sdGNHOXlkQ0JUWTJWdVpTQm1jbTl0SUZ3aUxpOXpZMlZ1WlM5VFkyVnVaVndpTzF4dWFXMXdiM0owSUhzZ1FYQndVM1JoZEdVZ2ZTQm1jbTl0SUZ3aUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dZWEp5WVhsVWIwMWhjQ3dnWm1sdVpFbHVaR1Y0TENCbWFXNWtUR0Z6ZEVsdVpHVjRJSDBnWm5KdmJTQmNJaTR2ZFhScGJITmNJanRjYmx4dUx5b3FYRzRnS2lCU1pYUjFjbTV6SUdsdVpHbGpaWE1nYjJZZ1pXeGxiV1Z1ZEhNZ2RHOGdiVzkyWlNCaVlYTmxaQ0J2YmlCelpXeGxZM1JsWkNCbGJHVnRaVzUwY3k1Y2JpQXFJRWx1WTJ4MVpHVnpJR052Ym5ScFozVnZkWE1nWkdWc1pYUmxaQ0JsYkdWdFpXNTBjeUIwYUdGMElHRnlaU0JpWlhSM1pXVnVJSFIzYnlCelpXeGxZM1JsWkNCbGJHVnRaVzUwY3l4Y2JpQXFJQ0JsTG1jdU9pQmJNQ0FvYzJWc1pXTjBaV1FwTENBeElDaGtaV3hsZEdWa0tTd2dNaUFvWkdWc1pYUmxaQ2tzSURNZ0tITmxiR1ZqZEdWa0tWMWNiaUFxTDF4dVkyOXVjM1FnWjJWMFNXNWthV05sYzFSdlRXOTJaU0E5SUNoY2JpQWdaV3hsYldWdWRITTZJSEpsWVdSdmJteDVJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTBzWEc0Z0lHRndjRk4wWVhSbE9pQkJjSEJUZEdGMFpTeGNiaWtnUFQ0Z2UxeHVJQ0JzWlhRZ2MyVnNaV04wWldSSmJtUnBZMlZ6T2lCdWRXMWlaWEpiWFNBOUlGdGRPMXh1SUNCc1pYUWdaR1ZzWlhSbFpFbHVaR2xqWlhNNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lHeGxkQ0JwYm1Oc2RXUmxSR1ZzWlhSbFpFbHVaR1Y0SUQwZ2JuVnNiRHRjYmlBZ2JHVjBJR2x1WkdWNElEMGdMVEU3WEc0Z0lHTnZibk4wSUhObGJHVmpkR1ZrUld4bGJXVnVkRWxrY3lBOUlHRnljbUY1Vkc5TllYQW9YRzRnSUNBZ1oyVjBVMlZzWldOMFpXUkZiR1Z0Wlc1MGN5aGxiR1Z0Wlc1MGN5d2dZWEJ3VTNSaGRHVXNJSFJ5ZFdVcExGeHVJQ0FwTzF4dUlDQjNhR2xzWlNBb0t5dHBibVJsZUNBOElHVnNaVzFsYm5SekxteGxibWQwYUNrZ2UxeHVJQ0FnSUdsbUlDaHpaV3hsWTNSbFpFVnNaVzFsYm5SSlpITXVaMlYwS0dWc1pXMWxiblJ6VzJsdVpHVjRYUzVwWkNrcElIdGNiaUFnSUNBZ0lHbG1JQ2hrWld4bGRHVmtTVzVrYVdObGN5NXNaVzVuZEdncElIdGNiaUFnSUNBZ0lDQWdjMlZzWldOMFpXUkpibVJwWTJWeklEMGdjMlZzWldOMFpXUkpibVJwWTJWekxtTnZibU5oZENoa1pXeGxkR1ZrU1c1a2FXTmxjeWs3WEc0Z0lDQWdJQ0FnSUdSbGJHVjBaV1JKYm1ScFkyVnpJRDBnVzEwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCelpXeGxZM1JsWkVsdVpHbGpaWE11Y0hWemFDaHBibVJsZUNrN1hHNGdJQ0FnSUNCcGJtTnNkV1JsUkdWc1pYUmxaRWx1WkdWNElEMGdhVzVrWlhnZ0t5QXhPMXh1SUNBZ0lIMGdaV3h6WlNCcFppQW9aV3hsYldWdWRITmJhVzVrWlhoZExtbHpSR1ZzWlhSbFpDQW1KaUJwYm1Oc2RXUmxSR1ZzWlhSbFpFbHVaR1Y0SUQwOVBTQnBibVJsZUNrZ2UxeHVJQ0FnSUNBZ2FXNWpiSFZrWlVSbGJHVjBaV1JKYm1SbGVDQTlJR2x1WkdWNElDc2dNVHRjYmlBZ0lDQWdJR1JsYkdWMFpXUkpibVJwWTJWekxuQjFjMmdvYVc1a1pYZ3BPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCa1pXeGxkR1ZrU1c1a2FXTmxjeUE5SUZ0ZE8xeHVJQ0FnSUgxY2JpQWdmVnh1SUNCeVpYUjFjbTRnYzJWc1pXTjBaV1JKYm1ScFkyVnpPMXh1ZlR0Y2JseHVZMjl1YzNRZ2RHOURiMjUwYVdkMWIzVnpSM0p2ZFhCeklEMGdLR0Z5Y21GNU9pQnVkVzFpWlhKYlhTa2dQVDRnZTF4dUlDQnNaWFFnWTNWeWMyOXlJRDBnTUR0Y2JpQWdjbVYwZFhKdUlHRnljbUY1TG5KbFpIVmpaU2dvWVdOakxDQjJZV3gxWlN3Z2FXNWtaWGdwSUQwK0lIdGNiaUFnSUNCcFppQW9hVzVrWlhnZ1BpQXdJQ1ltSUdGeWNtRjVXMmx1WkdWNElDMGdNVjBnSVQwOUlIWmhiSFZsSUMwZ01Ta2dlMXh1SUNBZ0lDQWdZM1Z5YzI5eUlEMGdLeXRqZFhKemIzSTdYRzRnSUNBZ2ZWeHVJQ0FnSUNoaFkyTmJZM1Z5YzI5eVhTQjhmQ0FvWVdOalcyTjFjbk52Y2wwZ1BTQmJYU2twTG5CMWMyZ29kbUZzZFdVcE8xeHVJQ0FnSUhKbGRIVnliaUJoWTJNN1hHNGdJSDBzSUZ0ZElHRnpJRzUxYldKbGNsdGRXMTBwTzF4dWZUdGNibHh1THlvcVhHNGdLaUJBY21WMGRYSnVjeUJwYm1SbGVDQnZaaUIwWVhKblpYUWdaV3hsYldWdWRDd2dZMjl1YzJsdVpHVnlhVzVuSUhScFoyaDBiSGt0WW05MWJtUWdaV3hsYldWdWRITmNiaUFxSUNoamRYSnlaVzUwYkhrZ2JtOXVMV3hwYm1WaGNpQmxiR1Z0Wlc1MGN5QmliM1Z1WkNCMGJ5QmhJR052Ym5SaGFXNWxjaWtnWVhNZ1lTQnZibVVnZFc1cGRDNWNiaUFxSUVsbUlHNXZJR0pwYm1ScGJtY2djSEpsYzJWdWRDd2djbVYwZFhKdWN5QmdkVzVrWldacGJtVmtZQzVjYmlBcUwxeHVZMjl1YzNRZ1oyVjBWR0Z5WjJWMFNXNWtaWGhCWTJOdmRXNTBhVzVuUm05eVFtbHVaR2x1WnlBOUlDaGNiaUFnYm1WNGRFVnNaVzFsYm5RNklFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MExGeHVJQ0JsYkdWdFpXNTBjem9nY21WaFpHOXViSGtnUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFN4Y2JpQWdaR2x5WldOMGFXOXVPaUJjSW14bFpuUmNJaUI4SUZ3aWNtbG5hSFJjSWl4Y2Jpa2dQVDRnZTF4dUlDQnBaaUFvWENKamIyNTBZV2x1WlhKSlpGd2lJR2x1SUc1bGVIUkZiR1Z0Wlc1MElDWW1JRzVsZUhSRmJHVnRaVzUwTG1OdmJuUmhhVzVsY2tsa0tTQjdYRzRnSUNBZ2FXWWdLR1JwY21WamRHbHZiaUE5UFQwZ1hDSnNaV1owWENJcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdOdmJuUmhhVzVsY2tWc1pXMWxiblFnUFNCVFkyVnVaUzVuWlhSVFkyVnVaU2h1WlhoMFJXeGxiV1Z1ZENraExtZGxkRVZzWlcxbGJuUW9YRzRnSUNBZ0lDQWdJRzVsZUhSRmJHVnRaVzUwTG1OdmJuUmhhVzVsY2tsa0xGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lHbG1JQ2hqYjI1MFlXbHVaWEpGYkdWdFpXNTBLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJsYkdWdFpXNTBjeTVwYm1SbGVFOW1LR052Ym5SaGFXNWxja1ZzWlcxbGJuUXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWld4bGJXVnVkSE11YVc1a1pYaFBaaWh1WlhoMFJXeGxiV1Z1ZENrN1hHNGdJQ0FnZlZ4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUdOdmJuTjBJR0p2ZFc1a1JXeGxiV1Z1ZEVsa0lEMGdibVY0ZEVWc1pXMWxiblF1WW05MWJtUkZiR1Z0Wlc1MGN6OHVabWx1WkNoY2JpQWdJQ0FnSUNoaWFXNWthVzVuS1NBOVBpQmlhVzVrYVc1bkxuUjVjR1VnSVQwOUlGd2lZWEp5YjNkY0lpeGNiaUFnSUNBcFB5NXBaRHRjYmlBZ0lDQnBaaUFvWW05MWJtUkZiR1Z0Wlc1MFNXUXBJSHRjYmlBZ0lDQWdJR2xtSUNoa2FYSmxZM1JwYjI0Z1BUMDlJRndpYkdWbWRGd2lLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJsYkdWdFpXNTBjeTVwYm1SbGVFOW1LRzVsZUhSRmJHVnRaVzUwS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdOdmJuTjBJR0p2ZFc1a1ZHVjRkRVZzWlcxbGJuUWdQVnh1SUNBZ0lDQWdJQ0JUWTJWdVpTNW5aWFJUWTJWdVpTaHVaWGgwUld4bGJXVnVkQ2toTG1kbGRFVnNaVzFsYm5Rb1ltOTFibVJGYkdWdFpXNTBTV1FwTzF4dVhHNGdJQ0FnSUNCcFppQW9ZbTkxYm1SVVpYaDBSV3hsYldWdWRDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaV3hsYldWdWRITXVhVzVrWlhoUFppaGliM1Z1WkZSbGVIUkZiR1Z0Wlc1MEtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDFjYm4wN1hHNWNiaThxS2x4dUlDb2dVbVYwZFhKdWN5QnVaWGgwSUdOaGJtUnBaR0YwWlNCcGJtUmxlQ0IwYUdGMEozTWdZWFpoYVd4aFlteGxJSFJ2SUdKbElHMXZkbVZrSUhSdkxpQkRkWEp5Wlc1MGJIa2dkR2hoZEZ4dUlDb2dJR2x6SUdFZ2JtOXVMV1JsYkdWMFpXUWdaV3hsYldWdWRDd2dZVzVrSUc1dmRDQnBibk5wWkdVZ1lTQm5jbTkxY0NBb2RXNXNaWE56SUhkbEozSmxJR1ZrYVhScGJtY2dhWFFwTGx4dUlDb3ZYRzVqYjI1emRDQm5aWFJVWVhKblpYUkpibVJsZUNBOUlDaGNiaUFnWVhCd1UzUmhkR1U2SUVGd2NGTjBZWFJsTEZ4dUlDQmxiR1Z0Wlc1MGN6b2djbVZoWkc5dWJIa2dSWGhqWVd4cFpISmhkMFZzWlcxbGJuUmJYU3hjYmlBZ1ltOTFibVJoY25sSmJtUmxlRG9nYm5WdFltVnlMRnh1SUNCa2FYSmxZM1JwYjI0NklGd2liR1ZtZEZ3aUlId2dYQ0p5YVdkb2RGd2lMRnh1S1NBOVBpQjdYRzRnSUdOdmJuTjBJSE52ZFhKalpVVnNaVzFsYm5RZ1BTQmxiR1Z0Wlc1MGMxdGliM1Z1WkdGeWVVbHVaR1Y0WFR0Y2JseHVJQ0JqYjI1emRDQnBibVJsZUVacGJIUmxjaUE5SUNobGJHVnRaVzUwT2lCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZENrZ1BUNGdlMXh1SUNBZ0lHbG1JQ2hsYkdWdFpXNTBMbWx6UkdWc1pYUmxaQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUgxY2JpQWdJQ0F2THlCcFppQjNaU2R5WlNCbFpHbDBhVzVuSUdkeWIzVndMQ0JtYVc1a0lHTnNiM05sYzNRZ2MybGliR2x1WnlCcGNuSmxjM0JsWTNScGRtVWdiMllnZDJobGRHaGxjbHh1SUNBZ0lDOHZJSFJvWlhKbEozTWdZU0JrYVdabVpYSmxiblF0WjNKdmRYQWdaV3hsYldWdWRDQmlaWFIzWldWdUlIUm9aVzBnS0dadmNpQnNaV2RoWTNrZ2NtVmhjMjl1Y3lsY2JpQWdJQ0JwWmlBb1lYQndVM1JoZEdVdVpXUnBkR2x1WjBkeWIzVndTV1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJsYkdWdFpXNTBMbWR5YjNWd1NXUnpMbWx1WTJ4MVpHVnpLR0Z3Y0ZOMFlYUmxMbVZrYVhScGJtZEhjbTkxY0Vsa0tUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJSDA3WEc1Y2JpQWdZMjl1YzNRZ1kyRnVaR2xrWVhSbFNXNWtaWGdnUFZ4dUlDQWdJR1JwY21WamRHbHZiaUE5UFQwZ1hDSnNaV1owWENKY2JpQWdJQ0FnSUQ4Z1ptbHVaRXhoYzNSSmJtUmxlQ2hsYkdWdFpXNTBjeXdnYVc1a1pYaEdhV3gwWlhJc0lFMWhkR2d1YldGNEtEQXNJR0p2ZFc1a1lYSjVTVzVrWlhnZ0xTQXhLU2xjYmlBZ0lDQWdJRG9nWm1sdVpFbHVaR1Y0S0dWc1pXMWxiblJ6TENCcGJtUmxlRVpwYkhSbGNpd2dZbTkxYm1SaGNubEpibVJsZUNBcklERXBPMXh1WEc0Z0lHTnZibk4wSUc1bGVIUkZiR1Z0Wlc1MElEMGdaV3hsYldWdWRITmJZMkZ1Wkdsa1lYUmxTVzVrWlhoZE8xeHVYRzRnSUdsbUlDZ2hibVY0ZEVWc1pXMWxiblFwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdMVEU3WEc0Z0lIMWNibHh1SUNCcFppQW9ZWEJ3VTNSaGRHVXVaV1JwZEdsdVowZHliM1Z3U1dRcElIdGNiaUFnSUNCcFppQW9YRzRnSUNBZ0lDQXZMeUJqWVc1a2FXUmhkR1VnWld4bGJXVnVkQ0JwY3lCaElITnBZbXhwYm1jZ2FXNGdZM1Z5Y21WdWRDQmxaR2wwYVc1bklHZHliM1Z3SU9LR2tpQnlaWFIxY201Y2JpQWdJQ0FnSUhOdmRYSmpaVVZzWlcxbGJuUS9MbWR5YjNWd1NXUnpMbXB2YVc0b1hDSmNJaWtnUFQwOUlHNWxlSFJGYkdWdFpXNTBQeTVuY205MWNFbGtjeTVxYjJsdUtGd2lYQ0lwWEc0Z0lDQWdLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lDQWdJQ0JuWlhSVVlYSm5aWFJKYm1SbGVFRmpZMjkxYm5ScGJtZEdiM0pDYVc1a2FXNW5LRzVsZUhSRmJHVnRaVzUwTENCbGJHVnRaVzUwY3l3Z1pHbHlaV04wYVc5dUtTQS9QMXh1SUNBZ0lDQWdJQ0JqWVc1a2FXUmhkR1ZKYm1SbGVGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tDRnVaWGgwUld4bGJXVnVkRDh1WjNKdmRYQkpaSE11YVc1amJIVmtaWE1vWVhCd1UzUmhkR1V1WldScGRHbHVaMGR5YjNWd1NXUXBLU0I3WEc0Z0lDQWdJQ0F2THlCallXNWthV1JoZEdVZ1pXeGxiV1Z1ZENCcGN5QnZkWFJ6YVdSbElHTjFjbkpsYm5RZ1pXUnBkR2x1WnlCbmNtOTFjQ0RpaHBJZ2NISmxkbVZ1ZEZ4dUlDQWdJQ0FnY21WMGRYSnVJQzB4TzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUdsbUlDZ2hibVY0ZEVWc1pXMWxiblF1WjNKdmRYQkpaSE11YkdWdVozUm9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlDaGNiaUFnSUNBZ0lHZGxkRlJoY21kbGRFbHVaR1Y0UVdOamIzVnVkR2x1WjBadmNrSnBibVJwYm1jb2JtVjRkRVZzWlcxbGJuUXNJR1ZzWlcxbGJuUnpMQ0JrYVhKbFkzUnBiMjRwSUQ4L1hHNGdJQ0FnSUNCallXNWthV1JoZEdWSmJtUmxlRnh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0JqYjI1emRDQnphV0pzYVc1blIzSnZkWEJKWkNBOUlHRndjRk4wWVhSbExtVmthWFJwYm1kSGNtOTFjRWxrWEc0Z0lDQWdQeUJ1WlhoMFJXeGxiV1Z1ZEM1bmNtOTFjRWxrYzF0Y2JpQWdJQ0FnSUNBZ2JtVjRkRVZzWlcxbGJuUXVaM0p2ZFhCSlpITXVhVzVrWlhoUFppaGhjSEJUZEdGMFpTNWxaR2wwYVc1blIzSnZkWEJKWkNrZ0xTQXhYRzRnSUNBZ0lDQmRYRzRnSUNBZ09pQnVaWGgwUld4bGJXVnVkQzVuY205MWNFbGtjMXR1WlhoMFJXeGxiV1Z1ZEM1bmNtOTFjRWxrY3k1c1pXNW5kR2dnTFNBeFhUdGNibHh1SUNCamIyNXpkQ0JsYkdWdFpXNTBjMGx1VTJsaWJHbHVaMGR5YjNWd0lEMGdaMlYwUld4bGJXVnVkSE5KYmtkeWIzVndLR1ZzWlcxbGJuUnpMQ0J6YVdKc2FXNW5SM0p2ZFhCSlpDazdYRzVjYmlBZ2FXWWdLR1ZzWlcxbGJuUnpTVzVUYVdKc2FXNW5SM0p2ZFhBdWJHVnVaM1JvS1NCN1hHNGdJQ0FnTHk4Z1lYTnpkVzFsY3lCblpYUkZiR1Z0Wlc1MGMwbHVSM0p2ZFhBb0tTQnlaWFIxY201bFpDQmxiR1Z0Wlc1MGN5QmhjbVVnYzI5eWRHVmtYRzRnSUNBZ0x5OGdZbmtnZWtsdVpHVjRJQ2hoYzJObGJtUnBibWNwWEc0Z0lDQWdjbVYwZFhKdUlHUnBjbVZqZEdsdmJpQTlQVDBnWENKc1pXWjBYQ0pjYmlBZ0lDQWdJRDhnWld4bGJXVnVkSE11YVc1a1pYaFBaaWhsYkdWdFpXNTBjMGx1VTJsaWJHbHVaMGR5YjNWd1d6QmRLVnh1SUNBZ0lDQWdPaUJsYkdWdFpXNTBjeTVwYm1SbGVFOW1LRnh1SUNBZ0lDQWdJQ0FnSUdWc1pXMWxiblJ6U1c1VGFXSnNhVzVuUjNKdmRYQmJaV3hsYldWdWRITkpibE5wWW14cGJtZEhjbTkxY0M1c1pXNW5kR2dnTFNBeFhTeGNiaUFnSUNBZ0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJqWVc1a2FXUmhkR1ZKYm1SbGVEdGNibjA3WEc1Y2JtTnZibk4wSUdkbGRGUmhjbWRsZEVWc1pXMWxiblJ6VFdGd0lEMGdLRnh1SUNCbGJHVnRaVzUwY3pvZ2NtVmhaRzl1YkhrZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTeGNiaUFnYVc1a2FXTmxjem9nYm5WdFltVnlXMTBzWEc0cElEMCtJSHRjYmlBZ2NtVjBkWEp1SUdsdVpHbGpaWE11Y21Wa2RXTmxLQ2hoWTJNc0lHbHVaR1Y0S1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnWld4bGJXVnVkQ0E5SUdWc1pXMWxiblJ6VzJsdVpHVjRYVHRjYmlBZ0lDQmhZMk5iWld4bGJXVnVkQzVwWkYwZ1BTQmxiR1Z0Wlc1ME8xeHVJQ0FnSUhKbGRIVnliaUJoWTJNN1hHNGdJSDBzSUh0OUlHRnpJRkpsWTI5eVpEeHpkSEpwYm1jc0lFVjRZMkZzYVdSeVlYZEZiR1Z0Wlc1MFBpazdYRzU5TzF4dVhHNWpiMjV6ZENCemFHbG1kRVZzWlcxbGJuUnpJRDBnS0Z4dUlDQmhjSEJUZEdGMFpUb2dRWEJ3VTNSaGRHVXNYRzRnSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZExGeHVJQ0JrYVhKbFkzUnBiMjQ2SUZ3aWJHVm1kRndpSUh3Z1hDSnlhV2RvZEZ3aUxGeHVLU0E5UGlCN1hHNGdJR052Ym5OMElHbHVaR2xqWlhOVWIwMXZkbVVnUFNCblpYUkpibVJwWTJWelZHOU5iM1psS0dWc1pXMWxiblJ6TENCaGNIQlRkR0YwWlNrN1hHNGdJR052Ym5OMElIUmhjbWRsZEVWc1pXMWxiblJ6VFdGd0lEMGdaMlYwVkdGeVoyVjBSV3hsYldWdWRITk5ZWEFvWld4bGJXVnVkSE1zSUdsdVpHbGpaWE5VYjAxdmRtVXBPMXh1SUNCc1pYUWdaM0p2ZFhCbFpFbHVaR2xqWlhNZ1BTQjBiME52Ym5ScFozVnZkWE5IY205MWNITW9hVzVrYVdObGMxUnZUVzkyWlNrN1hHNWNiaUFnYVdZZ0tHUnBjbVZqZEdsdmJpQTlQVDBnWENKeWFXZG9kRndpS1NCN1hHNGdJQ0FnWjNKdmRYQmxaRWx1WkdsalpYTWdQU0JuY205MWNHVmtTVzVrYVdObGN5NXlaWFpsY25ObEtDazdYRzRnSUgxY2JseHVJQ0JuY205MWNHVmtTVzVrYVdObGN5NW1iM0pGWVdOb0tDaHBibVJwWTJWekxDQnBLU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdiR1ZoWkdsdVowbHVaR1Y0SUQwZ2FXNWthV05sYzFzd1hUdGNiaUFnSUNCamIyNXpkQ0IwY21GcGJHbHVaMGx1WkdWNElEMGdhVzVrYVdObGMxdHBibVJwWTJWekxteGxibWQwYUNBdElERmRPMXh1SUNBZ0lHTnZibk4wSUdKdmRXNWtZWEo1U1c1a1pYZ2dQU0JrYVhKbFkzUnBiMjRnUFQwOUlGd2liR1ZtZEZ3aUlEOGdiR1ZoWkdsdVowbHVaR1Y0SURvZ2RISmhhV3hwYm1kSmJtUmxlRHRjYmx4dUlDQWdJR052Ym5OMElIUmhjbWRsZEVsdVpHVjRJRDBnWjJWMFZHRnlaMlYwU1c1a1pYZ29YRzRnSUNBZ0lDQmhjSEJUZEdGMFpTeGNiaUFnSUNBZ0lHVnNaVzFsYm5SekxGeHVJQ0FnSUNBZ1ltOTFibVJoY25sSmJtUmxlQ3hjYmlBZ0lDQWdJR1JwY21WamRHbHZiaXhjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdhV1lnS0hSaGNtZGxkRWx1WkdWNElEMDlQU0F0TVNCOGZDQmliM1Z1WkdGeWVVbHVaR1Y0SUQwOVBTQjBZWEpuWlhSSmJtUmxlQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUd4bFlXUnBibWRGYkdWdFpXNTBjeUE5WEc0Z0lDQWdJQ0JrYVhKbFkzUnBiMjRnUFQwOUlGd2liR1ZtZEZ3aVhHNGdJQ0FnSUNBZ0lEOGdaV3hsYldWdWRITXVjMnhwWTJVb01Dd2dkR0Z5WjJWMFNXNWtaWGdwWEc0Z0lDQWdJQ0FnSURvZ1pXeGxiV1Z1ZEhNdWMyeHBZMlVvTUN3Z2JHVmhaR2x1WjBsdVpHVjRLVHRjYmlBZ0lDQmpiMjV6ZENCMFlYSm5aWFJGYkdWdFpXNTBjeUE5SUdWc1pXMWxiblJ6TG5Oc2FXTmxLR3hsWVdScGJtZEpibVJsZUN3Z2RISmhhV3hwYm1kSmJtUmxlQ0FySURFcE8xeHVJQ0FnSUdOdmJuTjBJR1JwYzNCc1lXTmxaRVZzWlcxbGJuUnpJRDFjYmlBZ0lDQWdJR1JwY21WamRHbHZiaUE5UFQwZ1hDSnNaV1owWENKY2JpQWdJQ0FnSUNBZ1B5QmxiR1Z0Wlc1MGN5NXpiR2xqWlNoMFlYSm5aWFJKYm1SbGVDd2diR1ZoWkdsdVowbHVaR1Y0S1Z4dUlDQWdJQ0FnSUNBNklHVnNaVzFsYm5SekxuTnNhV05sS0hSeVlXbHNhVzVuU1c1a1pYZ2dLeUF4TENCMFlYSm5aWFJKYm1SbGVDQXJJREVwTzF4dUlDQWdJR052Ym5OMElIUnlZV2xzYVc1blJXeGxiV1Z1ZEhNZ1BWeHVJQ0FnSUNBZ1pHbHlaV04wYVc5dUlEMDlQU0JjSW14bFpuUmNJbHh1SUNBZ0lDQWdJQ0EvSUdWc1pXMWxiblJ6TG5Oc2FXTmxLSFJ5WVdsc2FXNW5TVzVrWlhnZ0t5QXhLVnh1SUNBZ0lDQWdJQ0E2SUdWc1pXMWxiblJ6TG5Oc2FXTmxLSFJoY21kbGRFbHVaR1Y0SUNzZ01TazdYRzVjYmlBZ0lDQmxiR1Z0Wlc1MGN5QTlYRzRnSUNBZ0lDQmthWEpsWTNScGIyNGdQVDA5SUZ3aWJHVm1kRndpWEc0Z0lDQWdJQ0FnSUQ4Z1cxeHVJQ0FnSUNBZ0lDQWdJQ0FnTGk0dWJHVmhaR2x1WjBWc1pXMWxiblJ6TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdMaTR1ZEdGeVoyVjBSV3hsYldWdWRITXNYRzRnSUNBZ0lDQWdJQ0FnSUNBdUxpNWthWE53YkdGalpXUkZiR1Z0Wlc1MGN5eGNiaUFnSUNBZ0lDQWdJQ0FnSUM0dUxuUnlZV2xzYVc1blJXeGxiV1Z1ZEhNc1hHNGdJQ0FnSUNBZ0lDQWdYVnh1SUNBZ0lDQWdJQ0E2SUZ0Y2JpQWdJQ0FnSUNBZ0lDQWdJQzR1TG14bFlXUnBibWRGYkdWdFpXNTBjeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDNHVMbVJwYzNCc1lXTmxaRVZzWlcxbGJuUnpMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0xpNHVkR0Z5WjJWMFJXeGxiV1Z1ZEhNc1hHNGdJQ0FnSUNBZ0lDQWdJQ0F1TGk1MGNtRnBiR2x1WjBWc1pXMWxiblJ6TEZ4dUlDQWdJQ0FnSUNBZ0lGMDdYRzRnSUgwcE8xeHVYRzRnSUhKbGRIVnliaUJsYkdWdFpXNTBjeTV0WVhBb0tHVnNaVzFsYm5RcElEMCtJSHRjYmlBZ0lDQnBaaUFvZEdGeVoyVjBSV3hsYldWdWRITk5ZWEJiWld4bGJXVnVkQzVwWkYwcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCaWRXMXdWbVZ5YzJsdmJpaGxiR1Z0Wlc1MEtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJR1ZzWlcxbGJuUTdYRzRnSUgwcE8xeHVmVHRjYmx4dVkyOXVjM1FnYzJocFpuUkZiR1Z0Wlc1MGMxUnZSVzVrSUQwZ0tGeHVJQ0JsYkdWdFpXNTBjem9nY21WaFpHOXViSGtnUlhoallXeHBaSEpoZDBWc1pXMWxiblJiWFN4Y2JpQWdZWEJ3VTNSaGRHVTZJRUZ3Y0ZOMFlYUmxMRnh1SUNCa2FYSmxZM1JwYjI0NklGd2liR1ZtZEZ3aUlId2dYQ0p5YVdkb2RGd2lMRnh1S1NBOVBpQjdYRzRnSUdOdmJuTjBJR2x1WkdsalpYTlViMDF2ZG1VZ1BTQm5aWFJKYm1ScFkyVnpWRzlOYjNabEtHVnNaVzFsYm5SekxDQmhjSEJUZEdGMFpTazdYRzRnSUdOdmJuTjBJSFJoY21kbGRFVnNaVzFsYm5SelRXRndJRDBnWjJWMFZHRnlaMlYwUld4bGJXVnVkSE5OWVhBb1pXeGxiV1Z1ZEhNc0lHbHVaR2xqWlhOVWIwMXZkbVVwTzF4dUlDQmpiMjV6ZENCa2FYTndiR0ZqWldSRmJHVnRaVzUwY3pvZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTQTlJRnRkTzF4dVhHNGdJR3hsZENCc1pXRmthVzVuU1c1a1pYZzZJRzUxYldKbGNqdGNiaUFnYkdWMElIUnlZV2xzYVc1blNXNWtaWGc2SUc1MWJXSmxjanRjYmlBZ2FXWWdLR1JwY21WamRHbHZiaUE5UFQwZ1hDSnNaV1owWENJcElIdGNiaUFnSUNCcFppQW9ZWEJ3VTNSaGRHVXVaV1JwZEdsdVowZHliM1Z3U1dRcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdkeWIzVndSV3hsYldWdWRITWdQU0JuWlhSRmJHVnRaVzUwYzBsdVIzSnZkWEFvWEc0Z0lDQWdJQ0FnSUdWc1pXMWxiblJ6TEZ4dUlDQWdJQ0FnSUNCaGNIQlRkR0YwWlM1bFpHbDBhVzVuUjNKdmRYQkpaQ3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0JwWmlBb0lXZHliM1Z3Uld4bGJXVnVkSE11YkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJsYkdWdFpXNTBjenRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR3hsWVdScGJtZEpibVJsZUNBOUlHVnNaVzFsYm5SekxtbHVaR1Y0VDJZb1ozSnZkWEJGYkdWdFpXNTBjMXN3WFNrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR3hsWVdScGJtZEpibVJsZUNBOUlEQTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RISmhhV3hwYm1kSmJtUmxlQ0E5SUdsdVpHbGpaWE5VYjAxdmRtVmJhVzVrYVdObGMxUnZUVzkyWlM1c1pXNW5kR2dnTFNBeFhUdGNiaUFnZlNCbGJITmxJSHRjYmlBZ0lDQnBaaUFvWVhCd1UzUmhkR1V1WldScGRHbHVaMGR5YjNWd1NXUXBJSHRjYmlBZ0lDQWdJR052Ym5OMElHZHliM1Z3Uld4bGJXVnVkSE1nUFNCblpYUkZiR1Z0Wlc1MGMwbHVSM0p2ZFhBb1hHNGdJQ0FnSUNBZ0lHVnNaVzFsYm5SekxGeHVJQ0FnSUNBZ0lDQmhjSEJUZEdGMFpTNWxaR2wwYVc1blIzSnZkWEJKWkN4Y2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCcFppQW9JV2R5YjNWd1JXeGxiV1Z1ZEhNdWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCbGJHVnRaVzUwY3p0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhSeVlXbHNhVzVuU1c1a1pYZ2dQU0JsYkdWdFpXNTBjeTVwYm1SbGVFOW1LR2R5YjNWd1JXeGxiV1Z1ZEhOYlozSnZkWEJGYkdWdFpXNTBjeTVzWlc1bmRHZ2dMU0F4WFNrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSFJ5WVdsc2FXNW5TVzVrWlhnZ1BTQmxiR1Z0Wlc1MGN5NXNaVzVuZEdnZ0xTQXhPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHeGxZV1JwYm1kSmJtUmxlQ0E5SUdsdVpHbGpaWE5VYjAxdmRtVmJNRjA3WEc0Z0lIMWNibHh1SUNCbWIzSWdLR3hsZENCcGJtUmxlQ0E5SUd4bFlXUnBibWRKYm1SbGVEc2dhVzVrWlhnZ1BDQjBjbUZwYkdsdVowbHVaR1Y0SUNzZ01Uc2dhVzVrWlhnckt5a2dlMXh1SUNBZ0lHbG1JQ2doYVc1a2FXTmxjMVJ2VFc5MlpTNXBibU5zZFdSbGN5aHBibVJsZUNrcElIdGNiaUFnSUNBZ0lHUnBjM0JzWVdObFpFVnNaVzFsYm5SekxuQjFjMmdvWld4bGJXVnVkSE5iYVc1a1pYaGRLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JqYjI1emRDQjBZWEpuWlhSRmJHVnRaVzUwY3lBOUlFOWlhbVZqZEM1MllXeDFaWE1vZEdGeVoyVjBSV3hsYldWdWRITk5ZWEFwTG0xaGNDZ29aV3hsYldWdWRDa2dQVDRnZTF4dUlDQWdJSEpsZEhWeWJpQmlkVzF3Vm1WeWMybHZiaWhsYkdWdFpXNTBLVHRjYmlBZ2ZTazdYRzVjYmlBZ1kyOXVjM1FnYkdWaFpHbHVaMFZzWlcxbGJuUnpJRDBnWld4bGJXVnVkSE11YzJ4cFkyVW9NQ3dnYkdWaFpHbHVaMGx1WkdWNEtUdGNiaUFnWTI5dWMzUWdkSEpoYVd4cGJtZEZiR1Z0Wlc1MGN5QTlJR1ZzWlcxbGJuUnpMbk5zYVdObEtIUnlZV2xzYVc1blNXNWtaWGdnS3lBeEtUdGNibHh1SUNCeVpYUjFjbTRnWkdseVpXTjBhVzl1SUQwOVBTQmNJbXhsWm5SY0lseHVJQ0FnSUQ4Z1cxeHVJQ0FnSUNBZ0lDQXVMaTVzWldGa2FXNW5SV3hsYldWdWRITXNYRzRnSUNBZ0lDQWdJQzR1TG5SaGNtZGxkRVZzWlcxbGJuUnpMRnh1SUNBZ0lDQWdJQ0F1TGk1a2FYTndiR0ZqWldSRmJHVnRaVzUwY3l4Y2JpQWdJQ0FnSUNBZ0xpNHVkSEpoYVd4cGJtZEZiR1Z0Wlc1MGN5eGNiaUFnSUNBZ0lGMWNiaUFnSUNBNklGdGNiaUFnSUNBZ0lDQWdMaTR1YkdWaFpHbHVaMFZzWlcxbGJuUnpMRnh1SUNBZ0lDQWdJQ0F1TGk1a2FYTndiR0ZqWldSRmJHVnRaVzUwY3l4Y2JpQWdJQ0FnSUNBZ0xpNHVkR0Z5WjJWMFJXeGxiV1Z1ZEhNc1hHNGdJQ0FnSUNBZ0lDNHVMblJ5WVdsc2FXNW5SV3hsYldWdWRITXNYRzRnSUNBZ0lDQmRPMXh1ZlR0Y2JseHVMeThnY0hWaWJHbGpJRUZRU1Z4dUx5OGdMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMxY2JseHVaWGh3YjNKMElHTnZibk4wSUcxdmRtVlBibVZNWldaMElEMGdLRnh1SUNCbGJHVnRaVzUwY3pvZ2NtVmhaRzl1YkhrZ1JYaGpZV3hwWkhKaGQwVnNaVzFsYm5SYlhTeGNiaUFnWVhCd1UzUmhkR1U2SUVGd2NGTjBZWFJsTEZ4dUtTQTlQaUI3WEc0Z0lISmxkSFZ5YmlCemFHbG1kRVZzWlcxbGJuUnpLR0Z3Y0ZOMFlYUmxMQ0JsYkdWdFpXNTBjeXdnWENKc1pXWjBYQ0lwTzF4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElHMXZkbVZQYm1WU2FXZG9kQ0E5SUNoY2JpQWdaV3hsYldWdWRITTZJSEpsWVdSdmJteDVJRVY0WTJGc2FXUnlZWGRGYkdWdFpXNTBXMTBzWEc0Z0lHRndjRk4wWVhSbE9pQkJjSEJUZEdGMFpTeGNiaWtnUFQ0Z2UxeHVJQ0J5WlhSMWNtNGdjMmhwWm5SRmJHVnRaVzUwY3loaGNIQlRkR0YwWlN3Z1pXeGxiV1Z1ZEhNc0lGd2ljbWxuYUhSY0lpazdYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYlc5MlpVRnNiRXhsWm5RZ1BTQW9YRzRnSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZExGeHVJQ0JoY0hCVGRHRjBaVG9nUVhCd1UzUmhkR1VzWEc0cElEMCtJSHRjYmlBZ2NtVjBkWEp1SUhOb2FXWjBSV3hsYldWdWRITlViMFZ1WkNobGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVc0lGd2liR1ZtZEZ3aUtUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J0YjNabFFXeHNVbWxuYUhRZ1BTQW9YRzRnSUdWc1pXMWxiblJ6T2lCeVpXRmtiMjVzZVNCRmVHTmhiR2xrY21GM1JXeGxiV1Z1ZEZ0ZExGeHVJQ0JoY0hCVGRHRjBaVG9nUVhCd1UzUmhkR1VzWEc0cElEMCtJSHRjYmlBZ2NtVjBkWEp1SUhOb2FXWjBSV3hsYldWdWRITlViMFZ1WkNobGJHVnRaVzUwY3l3Z1lYQndVM1JoZEdVc0lGd2ljbWxuYUhSY0lpazdYRzU5TzF4dUlsMHNJbTVoYldWeklqcGJYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vemluZGV4LnRzXFxuXCIpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBTVVsRVFWUTRUMk5rWUdBUVljQVAzdUNUWmh3MWdHR1loQUdCWklBL25ZRENnQkRBbTlCR0RXQUFKeVJDZ0xhQkNBQWdYd2l4ekFTMHBnQUFBQUJKUlU1RXJrSmdnZz09XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQU1VbEVRVlE0VDJOa1lHQVFZY0FQM3VDVFpodzFnR0dZaEFHQlpJQS9uWURDZ0JEQW05QkdEV0FBSnlSQ2dMYUJDQUFnWHdpeHpBUzBwZ0FBQUFCSlJVNUVya0pnZ2c9PSAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUpID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQU1VbEVRVlE0VDJOa1lHQVFZY0FQM3VDVFpodzFnR0dZaEFHQlpJQS9uWURDZ0JEQW05QkdEV0FBSnlSQ2dMYUJDQUFnWHdpeHpBUzBwZ0FBQUFCSlJVNUVya0pnZ2c9PVwiO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHdpZHRoPVxcXCIyOTIuNFxcXCIgaGVpZ2h0PVxcXCIyOTIuNFxcXCIgdmlld0JveD1cXFwiMCAwIDI5MiAyOTJcXFwiPjxwYXRoIGQ9XFxcIk0yODcgMTk3TDE1OSA2OWMtNC0zLTgtNS0xMy01cy05IDItMTMgNUw1IDE5N2MtMyA0LTUgOC01IDEzczIgOSA1IDEzYzQgNCA4IDUgMTMgNWgyNTZjNSAwIDktMSAxMy01czUtOCA1LTEzLTEtOS01LTEzelxcXCIvPjwvc3ZnPlwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyOTIuNFwiIGhlaWdodD1cIjI5Mi40XCIgdmlld0JveD1cIjAgMCAyOTIgMjkyXCI+PHBhdGggZD1cIk0yODcgMTk3TDE1OSA2OWMtNC0zLTgtNS0xMy01cy05IDItMTMgNUw1IDE5N2MtMyA0LTUgOC01IDEzczIgOSA1IDEzYzQgNCA4IDUgMTMgNWgyNTZjNSAwIDktMSAxMy01czUtOCA1LTEzLTEtOS01LTEzelwiLz48L3N2Zz4gKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSkgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHdpZHRoPVxcXCIyOTIuNFxcXCIgaGVpZ2h0PVxcXCIyOTIuNFxcXCIgdmlld0JveD1cXFwiMCAwIDI5MiAyOTJcXFwiPjxwYXRoIGQ9XFxcIk0yODcgMTk3TDE1OSA2OWMtNC0zLTgtNS0xMy01cy05IDItMTMgNUw1IDE5N2MtMyA0LTUgOC01IDEzczIgOSA1IDEzYzQgNCA4IDUgMTMgNWgyNTZjNSAwIDktMSAxMy01czUtOCA1LTEzLTEtOS01LTEzelxcXCIvPjwvc3ZnPlwiO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHdpZHRoPVxcXCIyOTIuNFxcXCIgaGVpZ2h0PVxcXCIyOTIuNFxcXCIgdmlld0JveD1cXFwiMCAwIDI5MiAyOTJcXFwiPjxwYXRoIGZpbGw9XFxcIiUyM2NlZDRkYVxcXCIgZD1cXFwiTTI4NyAxOTdMMTU5IDY5Yy00LTMtOC01LTEzLTVzLTkgMi0xMyA1TDUgMTk3Yy0zIDQtNSA4LTUgMTNzMiA5IDUgMTNjNCA0IDggNSAxMyA1aDI1NmM1IDAgOS0xIDEzLTVzNS04IDUtMTMtMS05LTUtMTN6XFxcIi8+PC9zdmc+XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjkyLjRcIiBoZWlnaHQ9XCIyOTIuNFwiIHZpZXdCb3g9XCIwIDAgMjkyIDI5MlwiPjxwYXRoIGZpbGw9XCIlMjNjZWQ0ZGFcIiBkPVwiTTI4NyAxOTdMMTU5IDY5Yy00LTMtOC01LTEzLTVzLTkgMi0xMyA1TDUgMTk3Yy0zIDQtNSA4LTUgMTNzMiA5IDUgMTNjNCA0IDggNSAxMyA1aDI1NmM1IDAgOS0xIDEzLTVzNS04IDUtMTMtMS05LTUtMTN6XCIvPjwvc3ZnPiAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUpID0+IHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB3aWR0aD1cXFwiMjkyLjRcXFwiIGhlaWdodD1cXFwiMjkyLjRcXFwiIHZpZXdCb3g9XFxcIjAgMCAyOTIgMjkyXFxcIj48cGF0aCBmaWxsPVxcXCIlMjNjZWQ0ZGFcXFwiIGQ9XFxcIk0yODcgMTk3TDE1OSA2OWMtNC0zLTgtNS0xMy01cy05IDItMTMgNUw1IDE5N2MtMyA0LTUgOC01IDEzczIgOSA1IDEzYzQgNCA4IDUgMTMgNWgyNTZjNSAwIDktMSAxMy01czUtOCA1LTEzLTEtOS01LTEzelxcXCIvPjwvc3ZnPlwiO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi8uLi9wdWJsaWMvQ2FzY2FkaWEud29mZjJcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uLy4uL3B1YmxpYy9DYXNjYWRpYS53b2ZmMiAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSwgX191bnVzZWRfd2VicGFja19leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLnAgKyBcImV4Y2FsaWRyYXctYXNzZXRzLWRldi9DYXNjYWRpYS53b2ZmMlwiO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi8uLi9wdWJsaWMvVmlyZ2lsLndvZmYyXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vcHVibGljL1ZpcmdpbC53b2ZmMiAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChtb2R1bGUsIF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXy5wICsgXCJleGNhbGlkcmF3LWFzc2V0cy1kZXYvVmlyZ2lsLndvZmYyXCI7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcInJlYWN0XCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiBleHRlcm5hbCB7XCJyb290XCI6XCJSZWFjdFwiLFwiY29tbW9uanMyXCI6XCJyZWFjdFwiLFwiY29tbW9uanNcIjpcInJlYWN0XCIsXCJhbWRcIjpcInJlYWN0XCJ9ICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX3JlYWN0X187XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcInJlYWN0LWRvbVwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogZXh0ZXJuYWwge1wicm9vdFwiOlwiUmVhY3RET01cIixcImNvbW1vbmpzMlwiOlwicmVhY3QtZG9tXCIsXCJjb21tb25qc1wiOlwicmVhY3QtZG9tXCIsXCJhbWRcIjpcInJlYWN0LWRvbVwifSAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSkgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9kb21fXztcblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Jyb3dzZXItZnMtYWNjZXNzL2Rpc3QvZXNtL2luZGV4LmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuLi8uLi8uLi9ub2RlX21vZHVsZXMvYnJvd3Nlci1mcy1hY2Nlc3MvZGlzdC9lc20vaW5kZXguanMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJkaXJlY3RvcnlPcGVuXFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gVyksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwiZmlsZU9wZW5cXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBNKSxcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJmaWxlU2F2ZVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEcpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInN1cHBvcnRlZFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGYpXFxuLyogaGFybW9ueSBleHBvcnQgKi8gfSk7XFxudmFyIHk9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBGPWU9PnkoZSxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSk7dmFyIHU9KGUsdCk9PigpPT4oZSYmKHQ9ZShlPTApKSx0KTt2YXIgbT0oZSx0KT0+e0YoZSk7Zm9yKHZhciBpIGluIHQpeShlLGkse2dldDp0W2ldLGVudW1lcmFibGU6ITB9KX07dmFyIHA9e307bShwLHtkZWZhdWx0OigpPT5OfSk7dmFyIE4sbz11KCgpPT57Tj1hc3luYyhlPVt7fV0pPT4oQXJyYXkuaXNBcnJheShlKXx8KGU9W2VdKSxuZXcgUHJvbWlzZSgodCxpKT0+e2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXFxcImlucHV0XFxcIik7ci50eXBlPVxcXCJmaWxlXFxcIjtsZXQgbj1bLi4uZS5tYXAocz0+cy5taW1lVHlwZXN8fFtdKS5qb2luKCksZS5tYXAocz0+cy5leHRlbnNpb25zfHxbXSkuam9pbigpXS5qb2luKCk7ci5tdWx0aXBsZT1lWzBdLm11bHRpcGxlfHwhMSxyLmFjY2VwdD1ufHxcXFwiXFxcIjtsZXQgbD0oKT0+YyhpKSxhPXM9Pnt0eXBlb2YgYz09XFxcImZ1bmN0aW9uXFxcIiYmYygpLHQocyl9LGM9ZVswXS5sZWdhY3lTZXR1cCYmZVswXS5sZWdhY3lTZXR1cChhLGwscik7ci5hZGRFdmVudExpc3RlbmVyKFxcXCJjaGFuZ2VcXFwiLCgpPT57YShyLm11bHRpcGxlP0FycmF5LmZyb20oci5maWxlcyk6ci5maWxlc1swXSl9KSxyLmNsaWNrKCl9KSl9KTt2YXIgdz17fTttKHcse2RlZmF1bHQ6KCk9PlV9KTt2YXIgSSxVLGg9dSgoKT0+e0k9YXN5bmMgZT0+e2xldCB0PWF3YWl0IGUuZ2V0RmlsZSgpO3JldHVybiB0LmhhbmRsZT1lLHR9LFU9YXN5bmMoZT1be31dKT0+e0FycmF5LmlzQXJyYXkoZSl8fChlPVtlXSk7bGV0IHQ9W107ZS5mb3JFYWNoKChuLGwpPT57dFtsXT17ZGVzY3JpcHRpb246bi5kZXNjcmlwdGlvbnx8XFxcIlxcXCIsYWNjZXB0Ont9fSxuLm1pbWVUeXBlcz9uLm1pbWVUeXBlcy5tYXAoYT0+e3RbbF0uYWNjZXB0W2FdPW4uZXh0ZW5zaW9uc3x8W119KTp0W2xdLmFjY2VwdFtcXFwiKi8qXFxcIl09bi5leHRlbnNpb25zfHxbXX0pO2xldCBpPWF3YWl0IHdpbmRvdy5zaG93T3BlbkZpbGVQaWNrZXIoe2lkOmVbMF0uaWQsc3RhcnRJbjplWzBdLnN0YXJ0SW4sdHlwZXM6dCxtdWx0aXBsZTplWzBdLm11bHRpcGxlfHwhMSxleGNsdWRlQWNjZXB0QWxsT3B0aW9uOmVbMF0uZXhjbHVkZUFjY2VwdEFsbE9wdGlvbnx8ITF9KSxyPWF3YWl0IFByb21pc2UuYWxsKGkubWFwKEkpKTtyZXR1cm4gZVswXS5tdWx0aXBsZT9yOnJbMF19fSk7dmFyIGo9e307bShqLHtkZWZhdWx0OigpPT5CfSk7dmFyIEIsdj11KCgpPT57Qj1hc3luYyhlPVt7fV0pPT4oQXJyYXkuaXNBcnJheShlKXx8KGU9W2VdKSxlWzBdLnJlY3Vyc2l2ZT1lWzBdLnJlY3Vyc2l2ZXx8ITEsbmV3IFByb21pc2UoKHQsaSk9PntsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFxcXCJpbnB1dFxcXCIpO3IudHlwZT1cXFwiZmlsZVxcXCIsci53ZWJraXRkaXJlY3Rvcnk9ITA7bGV0IG49KCk9PmEoaSksbD1jPT57dHlwZW9mIGE9PVxcXCJmdW5jdGlvblxcXCImJmEoKSx0KGMpfSxhPWVbMF0ubGVnYWN5U2V0dXAmJmVbMF0ubGVnYWN5U2V0dXAobCxuLHIpO3IuYWRkRXZlbnRMaXN0ZW5lcihcXFwiY2hhbmdlXFxcIiwoKT0+e2xldCBjPUFycmF5LmZyb20oci5maWxlcyk7ZVswXS5yZWN1cnNpdmU/ZVswXS5yZWN1cnNpdmUmJmVbMF0uc2tpcERpcmVjdG9yeSYmKGM9Yy5maWx0ZXIocz0+cy53ZWJraXRSZWxhdGl2ZVBhdGguc3BsaXQoXFxcIi9cXFwiKS5ldmVyeShUPT4hZVswXS5za2lwRGlyZWN0b3J5KHtuYW1lOlQsa2luZDpcXFwiZGlyZWN0b3J5XFxcIn0pKSkpOmM9Yy5maWx0ZXIocz0+cy53ZWJraXRSZWxhdGl2ZVBhdGguc3BsaXQoXFxcIi9cXFwiKS5sZW5ndGg9PT0yKSxsKGMpfSksci5jbGljaygpfSkpfSk7dmFyIGc9e307bShnLHtkZWZhdWx0OigpPT5EfSk7dmFyIEEsRCx4PXUoKCk9PntBPWFzeW5jKGUsdCxpPWUubmFtZSxyKT0+e2xldCBuPVtdLGw9W107Zm9yIGF3YWl0KGxldCBhIG9mIGUudmFsdWVzKCkpe2xldCBjPWAke2l9LyR7YS5uYW1lfWA7YS5raW5kPT09XFxcImZpbGVcXFwiP2wucHVzaChhLmdldEZpbGUoKS50aGVuKHM9PihzLmRpcmVjdG9yeUhhbmRsZT1lLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLFxcXCJ3ZWJraXRSZWxhdGl2ZVBhdGhcXFwiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6KCk9PmN9KSkpKTphLmtpbmQ9PT1cXFwiZGlyZWN0b3J5XFxcIiYmdCYmKCFyfHwhcihhKSkmJm4ucHVzaChBKGEsdCxjLHIpKX1yZXR1cm5bLi4uKGF3YWl0IFByb21pc2UuYWxsKG4pKS5mbGF0KCksLi4uYXdhaXQgUHJvbWlzZS5hbGwobCldfSxEPWFzeW5jKGU9e30pPT57ZS5yZWN1cnNpdmU9ZS5yZWN1cnNpdmV8fCExO2xldCB0PWF3YWl0IHdpbmRvdy5zaG93RGlyZWN0b3J5UGlja2VyKHtpZDplLmlkLHN0YXJ0SW46ZS5zdGFydElufSk7cmV0dXJuIEEodCxlLnJlY3Vyc2l2ZSx2b2lkIDAsZS5za2lwRGlyZWN0b3J5KX19KTt2YXIgaz17fTttKGsse2RlZmF1bHQ6KCk9PiR9KTthc3luYyBmdW5jdGlvbiBxKGUsdCl7bGV0IGk9ZS5nZXRSZWFkZXIoKSxyPW5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQobCl7cmV0dXJuIGEoKTthc3luYyBmdW5jdGlvbiBhKCl7cmV0dXJuIGkucmVhZCgpLnRoZW4oKHtkb25lOmMsdmFsdWU6c30pPT57aWYoYyl7bC5jbG9zZSgpO3JldHVybn1yZXR1cm4gbC5lbnF1ZXVlKHMpLGEoKX0pfX19KSxuPW5ldyBSZXNwb25zZShyKTtyZXR1cm4gaS5yZWxlYXNlTG9jaygpLG5ldyBCbG9iKFthd2FpdCBuLmJsb2IoKV0se3R5cGU6dH0pfXZhciAkLFA9dSgoKT0+eyQ9YXN5bmMoZSx0PXt9KT0+e0FycmF5LmlzQXJyYXkodCkmJih0PXRbMF0pO2xldCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXFxcImFcXFwiKSxyPWU7XFxcImJvZHlcXFwiaW4gZSYmKHI9YXdhaXQgcShlLmJvZHksZS5oZWFkZXJzLmdldChcXFwiY29udGVudC10eXBlXFxcIikpKSxpLmRvd25sb2FkPXQuZmlsZU5hbWV8fFxcXCJVbnRpdGxlZFxcXCIsaS5ocmVmPVVSTC5jcmVhdGVPYmplY3RVUkwocik7bGV0IG49KCk9PmEocmVqZWN0KSxsPSgpPT57dHlwZW9mIGE9PVxcXCJmdW5jdGlvblxcXCImJmEoKX0sYT10LmxlZ2FjeVNldHVwJiZ0LmxlZ2FjeVNldHVwKGwsbixpKTtyZXR1cm4gaS5hZGRFdmVudExpc3RlbmVyKFxcXCJjbGlja1xcXCIsKCk9PntzZXRUaW1lb3V0KCgpPT5VUkwucmV2b2tlT2JqZWN0VVJMKGkuaHJlZiksMzAqMWUzKSxsKG51bGwpfSksaS5jbGljaygpLG51bGx9fSk7dmFyIEw9e307bShMLHtkZWZhdWx0OigpPT56fSk7dmFyIHosUz11KCgpPT57ej1hc3luYyhlLHQ9W3t9XSxpPW51bGwscj0hMSk9PntBcnJheS5pc0FycmF5KHQpfHwodD1bdF0pLHRbMF0uZmlsZU5hbWU9dFswXS5maWxlTmFtZXx8XFxcIlVudGl0bGVkXFxcIjtsZXQgbj1bXTtpZih0LmZvckVhY2goKGMscyk9PntuW3NdPXtkZXNjcmlwdGlvbjpjLmRlc2NyaXB0aW9ufHxcXFwiXFxcIixhY2NlcHQ6e319LGMubWltZVR5cGVzPyhzPT09MCYmKGUudHlwZT9jLm1pbWVUeXBlcy5wdXNoKGUudHlwZSk6ZS5oZWFkZXJzJiZlLmhlYWRlcnMuZ2V0KFxcXCJjb250ZW50LXR5cGVcXFwiKSYmYy5taW1lVHlwZXMucHVzaChlLmhlYWRlcnMuZ2V0KFxcXCJjb250ZW50LXR5cGVcXFwiKSkpLGMubWltZVR5cGVzLm1hcChkPT57bltzXS5hY2NlcHRbZF09Yy5leHRlbnNpb25zfHxbXX0pKTplLnR5cGUmJihuW3NdLmFjY2VwdFtlLnR5cGVdPWMuZXh0ZW5zaW9uc3x8W10pfSksaSl0cnl7YXdhaXQgaS5nZXRGaWxlKCl9Y2F0Y2goYyl7aWYoaT1udWxsLHIpdGhyb3cgY31sZXQgbD1pfHxhd2FpdCB3aW5kb3cuc2hvd1NhdmVGaWxlUGlja2VyKHtzdWdnZXN0ZWROYW1lOnRbMF0uZmlsZU5hbWUsaWQ6dFswXS5pZCxzdGFydEluOnRbMF0uc3RhcnRJbix0eXBlczpuLGV4Y2x1ZGVBY2NlcHRBbGxPcHRpb246dFswXS5leGNsdWRlQWNjZXB0QWxsT3B0aW9ufHwhMX0pLGE9YXdhaXQgbC5jcmVhdGVXcml0YWJsZSgpO3JldHVyblxcXCJzdHJlYW1cXFwiaW4gZT8oYXdhaXQgZS5zdHJlYW0oKS5waXBlVG8oYSksbCk6XFxcImJvZHlcXFwiaW4gZT8oYXdhaXQgZS5ib2R5LnBpcGVUbyhhKSxsKTooYXdhaXQgYS53cml0ZShibG9iKSxhd2FpdCBhLmNsb3NlKCksbCl9fSk7dmFyIEU9KCgpPT57aWYodHlwZW9mIHNlbGY9PVxcXCJ1bmRlZmluZWRcXFwiKXJldHVybiExO2lmKFxcXCJ0b3BcXFwiaW4gc2VsZiYmc2VsZiE9PXRvcCl0cnl7dG9wLmxvY2F0aW9uK1xcXCJcXFwifWNhdGNoe3JldHVybiExfWVsc2UgaWYoXFxcInNob3dPcGVuRmlsZVBpY2tlclxcXCJpbiBzZWxmKXJldHVyblxcXCJzaG93T3BlbkZpbGVQaWNrZXJcXFwiO3JldHVybiExfSkoKSxmPUU7dmFyIF89Zj9Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oaCgpLHcpKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4obygpLHApKTthc3luYyBmdW5jdGlvbiBNKC4uLmUpe3JldHVybihhd2FpdCBfKS5kZWZhdWx0KC4uLmUpfXZhciBPPWY/UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KHgoKSxnKSk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KHYoKSxqKSk7YXN5bmMgZnVuY3Rpb24gVyguLi5lKXtyZXR1cm4oYXdhaXQgTykuZGVmYXVsdCguLi5lKX12YXIgQz1mP1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihTKCksTCkpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihQKCksaykpO2FzeW5jIGZ1bmN0aW9uIEcoLi4uZSl7cmV0dXJuKGF3YWl0IEMpLmRlZmF1bHQoLi4uZSl9XFxuLy8gQGxpY2Vuc2UgXHUwMEE5IDIwMjAgR29vZ2xlIExMQy4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMC5cXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDJKeWIzZHpaWEl0Wm5NdFlXTmpaWE56TDJScGMzUXZaWE50TDJsdVpHVjRMbXB6TG1weklpd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdRVUZCUVN3MFFrRkJORUlzTWtKQlFUSkNMRk5CUVZNc1JVRkJSU3h0UTBGQmJVTXNZMEZCWXl4TFFVRkxMSE5DUVVGelFpeDFRa0ZCZFVJc1IwRkJSeXhUUVVGVExFdEJRVXNzWTBGQll5eEZRVUZGTEdWQlFXVXNZVUZCWVN4dFJFRkJiVVFzYzBOQlFYTkRMR05CUVdNc2NVWkJRWEZHTERSRFFVRTBReXh4UWtGQmNVSXNLMEpCUVN0Q0xEWkRRVUUyUXl4cFEwRkJhVU1zTmtOQlFUWkRMRmxCUVZrc1IwRkJSeXhGUVVGRkxGTkJRVk1zUzBGQlN5eGpRVUZqTEVWQlFVVXNhVUpCUVdsQ0xGbEJRVmtzZDBKQlFYZENMRzlDUVVGdlFpeGpRVUZqTEV0QlFVc3NNRUpCUVRCQ0xGTkJRVk1zYTBKQlFXdENMRTFCUVUwc2QwTkJRWGRETEdsRFFVRnBReXhuUTBGQlowTXNjME5CUVhORExFVkJRVVVzZFVOQlFYVkRMREJJUVVFd1NDeG5RMEZCWjBNc05rSkJRVFpDTEVWQlFVVXNVMEZCVXl4TFFVRkxMR05CUVdNc1JVRkJSU3hsUVVGbExHRkJRV0VzY1VaQlFYRkdMSE5EUVVGelF5eHRRMEZCYlVNc2NVSkJRWEZDTEN0Q1FVRXJRaXcyUTBGQk5rTXNhVU5CUVdsRExEQkNRVUV3UWl4blNVRkJaMGtzZDBKQlFYZENMRzlGUVVGdlJTeFpRVUZaTEVkQlFVY3NSVUZCUlN4VFFVRlRMRXRCUVVzc1kwRkJZeXhGUVVGRkxHbENRVUZwUWl3d1FrRkJNRUlzWTBGQll5d3JRa0ZCSzBJc1UwRkJVeXhGUVVGRkxFZEJRVWNzVDBGQlR5eEZRVUZGTERoSFFVRTRSeXgzUTBGQmQwTXNPRVJCUVRoRUxHbEZRVUZwUlN4aFFVRmhMRWxCUVVrc05FSkJRVFJDTEhkRFFVRjNReXd3UWtGQk1FSXNSVUZCUlN4blJFRkJaMFFzUlVGQlJTeFRRVUZUTEV0QlFVc3NZMEZCWXl4RlFVRkZMSE5DUVVGelFpd3dRMEZCTUVNc1UwRkJVeXhYUVVGWExHMUNRVUZ0UWl4MVFrRkJkVUlzWlVGQlpTeEpRVUZKTEUxQlFVMHNWVUZCVlN4UFFVRlBMSGRDUVVGM1FpeEpRVUZKTEc5Q1FVRnZRaXhyUkVGQmEwUXNUMEZCVHl4RlFVRkZMR1ZCUVdVc1kwRkJZeXhKUVVGSkxESkNRVUV5UWl4elEwRkJjME1zT0VoQlFUaElMREpDUVVFeVFpd3dRa0ZCTUVJc2RVTkJRWFZETEhWRFFVRjFReXd5UkVGQk1rUXNhMEpCUVd0Q0xFVkJRVVVzVTBGQlV5eExRVUZMTEdOQlFXTXNSVUZCUlN4bFFVRmxMR1ZCUVdVc2FVSkJRV2xDTEd0RlFVRnJSU3hUUVVGVExIRkNRVUZ4UWl4TlFVRk5MSGREUVVGM1F5eHhTMEZCY1Vzc1owTkJRV2RETEd0RVFVRnJSQ3hSUVVGUkxHdENRVUZyUWl4VFFVRlRMRzlDUVVGdlFpd3dRMEZCTUVNc01raEJRVEpJTERaQ1FVRTJRaXhwU1VGQmFVa3NSVUZCUlN4WlFVRlpMSEZEUVVGeFF5eG5RMEZCWjBNc1owSkJRV2RDTEUxQlFVMHNVMEZCVXl3clJFRkJLMFFzVTBGQlV5eFJRVUZSTEdkR1FVRm5SaXgxUWtGQmRVSXNPRUpCUVRoQ0xHZEdRVUZuUml4MVFrRkJkVUlzT0VKQlFUaENMR2RHUVVGblJpeDFRa0ZCZFVJc09FSkJRVzlITzBGQlF6Vm9TaUlzSW5OdmRYSmpaWE1pT2xzaWQyVmljR0ZqYXpvdkx5OHVMaTh1TGk4dUxpOXViMlJsWDIxdlpIVnNaWE12WW5KdmQzTmxjaTFtY3kxaFkyTmxjM012WkdsemRDOWxjMjB2YVc1a1pYZ3Vhbk0vWWpka05TSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUoyWVhJZ2VUMVBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGs3ZG1GeUlFWTlaVDArZVNobExGd2lYMTlsYzAxdlpIVnNaVndpTEh0MllXeDFaVG9oTUgwcE8zWmhjaUIxUFNobExIUXBQVDRvS1QwK0tHVW1KaWgwUFdVb1pUMHdLU2tzZENrN2RtRnlJRzA5S0dVc2RDazlQbnRHS0dVcE8yWnZjaWgyWVhJZ2FTQnBiaUIwS1hrb1pTeHBMSHRuWlhRNmRGdHBYU3hsYm5WdFpYSmhZbXhsT2lFd2ZTbDlPM1poY2lCd1BYdDlPMjBvY0N4N1pHVm1ZWFZzZERvb0tUMCtUbjBwTzNaaGNpQk9MRzg5ZFNnb0tUMCtlMDQ5WVhONWJtTW9aVDFiZTMxZEtUMCtLRUZ5Y21GNUxtbHpRWEp5WVhrb1pTbDhmQ2hsUFZ0bFhTa3NibVYzSUZCeWIyMXBjMlVvS0hRc2FTazlQbnRzWlhRZ2NqMWtiMk4xYldWdWRDNWpjbVZoZEdWRmJHVnRaVzUwS0Z3aWFXNXdkWFJjSWlrN2NpNTBlWEJsUFZ3aVptbHNaVndpTzJ4bGRDQnVQVnN1TGk1bExtMWhjQ2h6UFQ1ekxtMXBiV1ZVZVhCbGMzeDhXMTBwTG1wdmFXNG9LU3hsTG0xaGNDaHpQVDV6TG1WNGRHVnVjMmx2Ym5OOGZGdGRLUzVxYjJsdUtDbGRMbXB2YVc0b0tUdHlMbTExYkhScGNHeGxQV1ZiTUYwdWJYVnNkR2x3YkdWOGZDRXhMSEl1WVdOalpYQjBQVzU4ZkZ3aVhDSTdiR1YwSUd3OUtDazlQbU1vYVNrc1lUMXpQVDU3ZEhsd1pXOW1JR005UFZ3aVpuVnVZM1JwYjI1Y0lpWW1ZeWdwTEhRb2N5bDlMR005WlZzd1hTNXNaV2RoWTNsVFpYUjFjQ1ltWlZzd1hTNXNaV2RoWTNsVFpYUjFjQ2hoTEd3c2NpazdjaTVoWkdSRmRtVnVkRXhwYzNSbGJtVnlLRndpWTJoaGJtZGxYQ0lzS0NrOVBudGhLSEl1YlhWc2RHbHdiR1UvUVhKeVlYa3Vabkp2YlNoeUxtWnBiR1Z6S1RweUxtWnBiR1Z6V3pCZEtYMHBMSEl1WTJ4cFkyc29LWDBwS1gwcE8zWmhjaUIzUFh0OU8yMG9keXg3WkdWbVlYVnNkRG9vS1QwK1ZYMHBPM1poY2lCSkxGVXNhRDExS0NncFBUNTdTVDFoYzNsdVl5QmxQVDU3YkdWMElIUTlZWGRoYVhRZ1pTNW5aWFJHYVd4bEtDazdjbVYwZFhKdUlIUXVhR0Z1Wkd4bFBXVXNkSDBzVlQxaGMzbHVZeWhsUFZ0N2ZWMHBQVDU3UVhKeVlYa3VhWE5CY25KaGVTaGxLWHg4S0dVOVcyVmRLVHRzWlhRZ2REMWJYVHRsTG1admNrVmhZMmdvS0c0c2JDazlQbnQwVzJ4ZFBYdGtaWE5qY21sd2RHbHZianB1TG1SbGMyTnlhWEIwYVc5dWZIeGNJbHdpTEdGalkyVndkRHA3Zlgwc2JpNXRhVzFsVkhsd1pYTS9iaTV0YVcxbFZIbHdaWE11YldGd0tHRTlQbnQwVzJ4ZExtRmpZMlZ3ZEZ0aFhUMXVMbVY0ZEdWdWMybHZibk44ZkZ0ZGZTazZkRnRzWFM1aFkyTmxjSFJiWENJcUx5cGNJbDA5Ymk1bGVIUmxibk5wYjI1emZIeGJYWDBwTzJ4bGRDQnBQV0YzWVdsMElIZHBibVJ2ZHk1emFHOTNUM0JsYmtacGJHVlFhV05yWlhJb2UybGtPbVZiTUYwdWFXUXNjM1JoY25SSmJqcGxXekJkTG5OMFlYSjBTVzRzZEhsd1pYTTZkQ3h0ZFd4MGFYQnNaVHBsV3pCZExtMTFiSFJwY0d4bGZId2hNU3hsZUdOc2RXUmxRV05qWlhCMFFXeHNUM0IwYVc5dU9tVmJNRjB1WlhoamJIVmtaVUZqWTJWd2RFRnNiRTl3ZEdsdmJueDhJVEY5S1N4eVBXRjNZV2wwSUZCeWIyMXBjMlV1WVd4c0tHa3ViV0Z3S0VrcEtUdHlaWFIxY200Z1pWc3dYUzV0ZFd4MGFYQnNaVDl5T25KYk1GMTlmU2s3ZG1GeUlHbzllMzA3YlNocUxIdGtaV1poZFd4ME9pZ3BQVDVDZlNrN2RtRnlJRUlzZGoxMUtDZ3BQVDU3UWoxaGMzbHVZeWhsUFZ0N2ZWMHBQVDRvUVhKeVlYa3VhWE5CY25KaGVTaGxLWHg4S0dVOVcyVmRLU3hsV3pCZExuSmxZM1Z5YzJsMlpUMWxXekJkTG5KbFkzVnljMmwyWlh4OElURXNibVYzSUZCeWIyMXBjMlVvS0hRc2FTazlQbnRzWlhRZ2NqMWtiMk4xYldWdWRDNWpjbVZoZEdWRmJHVnRaVzUwS0Z3aWFXNXdkWFJjSWlrN2NpNTBlWEJsUFZ3aVptbHNaVndpTEhJdWQyVmlhMmwwWkdseVpXTjBiM0o1UFNFd08yeGxkQ0J1UFNncFBUNWhLR2twTEd3OVl6MCtlM1I1Y0dWdlppQmhQVDFjSW1aMWJtTjBhVzl1WENJbUptRW9LU3gwS0dNcGZTeGhQV1ZiTUYwdWJHVm5ZV041VTJWMGRYQW1KbVZiTUYwdWJHVm5ZV041VTJWMGRYQW9iQ3h1TEhJcE8zSXVZV1JrUlhabGJuUk1hWE4wWlc1bGNpaGNJbU5vWVc1blpWd2lMQ2dwUFQ1N2JHVjBJR005UVhKeVlYa3Vabkp2YlNoeUxtWnBiR1Z6S1R0bFd6QmRMbkpsWTNWeWMybDJaVDlsV3pCZExuSmxZM1Z5YzJsMlpTWW1aVnN3WFM1emEybHdSR2x5WldOMGIzSjVKaVlvWXoxakxtWnBiSFJsY2loelBUNXpMbmRsWW10cGRGSmxiR0YwYVhabFVHRjBhQzV6Y0d4cGRDaGNJaTljSWlrdVpYWmxjbmtvVkQwK0lXVmJNRjB1YzJ0cGNFUnBjbVZqZEc5eWVTaDdibUZ0WlRwVUxHdHBibVE2WENKa2FYSmxZM1J2Y25sY0luMHBLU2twT21NOVl5NW1hV3gwWlhJb2N6MCtjeTUzWldKcmFYUlNaV3hoZEdsMlpWQmhkR2d1YzNCc2FYUW9YQ0l2WENJcExteGxibWQwYUQwOVBUSXBMR3dvWXlsOUtTeHlMbU5zYVdOcktDbDlLU2w5S1R0MllYSWdaejE3ZlR0dEtHY3NlMlJsWm1GMWJIUTZLQ2s5UGtSOUtUdDJZWElnUVN4RUxIZzlkU2dvS1QwK2UwRTlZWE41Ym1Nb1pTeDBMR2s5WlM1dVlXMWxMSElwUFQ1N2JHVjBJRzQ5VzEwc2JEMWJYVHRtYjNJZ1lYZGhhWFFvYkdWMElHRWdiMllnWlM1MllXeDFaWE1vS1NsN2JHVjBJR005WUNSN2FYMHZKSHRoTG01aGJXVjlZRHRoTG10cGJtUTlQVDFjSW1acGJHVmNJajlzTG5CMWMyZ29ZUzVuWlhSR2FXeGxLQ2t1ZEdobGJpaHpQVDRvY3k1a2FYSmxZM1J2Y25sSVlXNWtiR1U5WlN4UFltcGxZM1F1WkdWbWFXNWxVSEp2Y0dWeWRIa29jeXhjSW5kbFltdHBkRkpsYkdGMGFYWmxVR0YwYUZ3aUxIdGpiMjVtYVdkMWNtRmliR1U2SVRBc1pXNTFiV1Z5WVdKc1pUb2hNQ3huWlhRNktDazlQbU45S1NrcEtUcGhMbXRwYm1ROVBUMWNJbVJwY21WamRHOXllVndpSmlaMEppWW9JWEo4ZkNGeUtHRXBLU1ltYmk1d2RYTm9LRUVvWVN4MExHTXNjaWtwZlhKbGRIVnlibHN1TGk0b1lYZGhhWFFnVUhKdmJXbHpaUzVoYkd3b2Jpa3BMbVpzWVhRb0tTd3VMaTVoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2hzS1YxOUxFUTlZWE41Ym1Nb1pUMTdmU2s5UG50bExuSmxZM1Z5YzJsMlpUMWxMbkpsWTNWeWMybDJaWHg4SVRFN2JHVjBJSFE5WVhkaGFYUWdkMmx1Wkc5M0xuTm9iM2RFYVhKbFkzUnZjbmxRYVdOclpYSW9lMmxrT21VdWFXUXNjM1JoY25SSmJqcGxMbk4wWVhKMFNXNTlLVHR5WlhSMWNtNGdRU2gwTEdVdWNtVmpkWEp6YVhabExIWnZhV1FnTUN4bExuTnJhWEJFYVhKbFkzUnZjbmtwZlgwcE8zWmhjaUJyUFh0OU8yMG9heXg3WkdWbVlYVnNkRG9vS1QwK0pIMHBPMkZ6ZVc1aklHWjFibU4wYVc5dUlIRW9aU3gwS1h0c1pYUWdhVDFsTG1kbGRGSmxZV1JsY2lncExISTlibVYzSUZKbFlXUmhZbXhsVTNSeVpXRnRLSHR6ZEdGeWRDaHNLWHR5WlhSMWNtNGdZU2dwTzJGemVXNWpJR1oxYm1OMGFXOXVJR0VvS1h0eVpYUjFjbTRnYVM1eVpXRmtLQ2t1ZEdobGJpZ29lMlJ2Ym1VNll5eDJZV3gxWlRwemZTazlQbnRwWmloaktYdHNMbU5zYjNObEtDazdjbVYwZFhKdWZYSmxkSFZ5YmlCc0xtVnVjWFZsZFdVb2N5a3NZU2dwZlNsOWZYMHBMRzQ5Ym1WM0lGSmxjM0J2Ym5ObEtISXBPM0psZEhWeWJpQnBMbkpsYkdWaGMyVk1iMk5yS0Nrc2JtVjNJRUpzYjJJb1cyRjNZV2wwSUc0dVlteHZZaWdwWFN4N2RIbHdaVHAwZlNsOWRtRnlJQ1FzVUQxMUtDZ3BQVDU3SkQxaGMzbHVZeWhsTEhROWUzMHBQVDU3UVhKeVlYa3VhWE5CY25KaGVTaDBLU1ltS0hROWRGc3dYU2s3YkdWMElHazlaRzlqZFcxbGJuUXVZM0psWVhSbFJXeGxiV1Z1ZENoY0ltRmNJaWtzY2oxbE8xd2lZbTlrZVZ3aWFXNGdaU1ltS0hJOVlYZGhhWFFnY1NobExtSnZaSGtzWlM1b1pXRmtaWEp6TG1kbGRDaGNJbU52Ym5SbGJuUXRkSGx3WlZ3aUtTa3BMR2t1Wkc5M2JteHZZV1E5ZEM1bWFXeGxUbUZ0Wlh4OFhDSlZiblJwZEd4bFpGd2lMR2t1YUhKbFpqMVZVa3d1WTNKbFlYUmxUMkpxWldOMFZWSk1LSElwTzJ4bGRDQnVQU2dwUFQ1aEtISmxhbVZqZENrc2JEMG9LVDArZTNSNWNHVnZaaUJoUFQxY0ltWjFibU4wYVc5dVhDSW1KbUVvS1gwc1lUMTBMbXhsWjJGamVWTmxkSFZ3SmlaMExteGxaMkZqZVZObGRIVndLR3dzYml4cEtUdHlaWFIxY200Z2FTNWhaR1JGZG1WdWRFeHBjM1JsYm1WeUtGd2lZMnhwWTJ0Y0lpd29LVDArZTNObGRGUnBiV1Z2ZFhRb0tDazlQbFZTVEM1eVpYWnZhMlZQWW1wbFkzUlZVa3dvYVM1b2NtVm1LU3d6TUNveFpUTXBMR3dvYm5Wc2JDbDlLU3hwTG1Oc2FXTnJLQ2tzYm5Wc2JIMTlLVHQyWVhJZ1REMTdmVHR0S0V3c2UyUmxabUYxYkhRNktDazlQbnA5S1R0MllYSWdlaXhUUFhVb0tDazlQbnQ2UFdGemVXNWpLR1VzZEQxYmUzMWRMR2s5Ym5Wc2JDeHlQU0V4S1QwK2UwRnljbUY1TG1selFYSnlZWGtvZENsOGZDaDBQVnQwWFNrc2RGc3dYUzVtYVd4bFRtRnRaVDEwV3pCZExtWnBiR1ZPWVcxbGZIeGNJbFZ1ZEdsMGJHVmtYQ0k3YkdWMElHNDlXMTA3YVdZb2RDNW1iM0pGWVdOb0tDaGpMSE1wUFQ1N2JsdHpYVDE3WkdWelkzSnBjSFJwYjI0Nll5NWtaWE5qY21sd2RHbHZibng4WENKY0lpeGhZMk5sY0hRNmUzMTlMR011YldsdFpWUjVjR1Z6UHloelBUMDlNQ1ltS0dVdWRIbHdaVDlqTG0xcGJXVlVlWEJsY3k1d2RYTm9LR1V1ZEhsd1pTazZaUzVvWldGa1pYSnpKaVpsTG1obFlXUmxjbk11WjJWMEtGd2lZMjl1ZEdWdWRDMTBlWEJsWENJcEppWmpMbTFwYldWVWVYQmxjeTV3ZFhOb0tHVXVhR1ZoWkdWeWN5NW5aWFFvWENKamIyNTBaVzUwTFhSNWNHVmNJaWtwS1N4akxtMXBiV1ZVZVhCbGN5NXRZWEFvWkQwK2UyNWJjMTB1WVdOalpYQjBXMlJkUFdNdVpYaDBaVzV6YVc5dWMzeDhXMTE5S1NrNlpTNTBlWEJsSmlZb2JsdHpYUzVoWTJObGNIUmJaUzUwZVhCbFhUMWpMbVY0ZEdWdWMybHZibk44ZkZ0ZEtYMHBMR2twZEhKNWUyRjNZV2wwSUdrdVoyVjBSbWxzWlNncGZXTmhkR05vS0dNcGUybG1LR2s5Ym5Wc2JDeHlLWFJvY205M0lHTjliR1YwSUd3OWFYeDhZWGRoYVhRZ2QybHVaRzkzTG5Ob2IzZFRZWFpsUm1sc1pWQnBZMnRsY2loN2MzVm5aMlZ6ZEdWa1RtRnRaVHAwV3pCZExtWnBiR1ZPWVcxbExHbGtPblJiTUYwdWFXUXNjM1JoY25SSmJqcDBXekJkTG5OMFlYSjBTVzRzZEhsd1pYTTZiaXhsZUdOc2RXUmxRV05qWlhCMFFXeHNUM0IwYVc5dU9uUmJNRjB1WlhoamJIVmtaVUZqWTJWd2RFRnNiRTl3ZEdsdmJueDhJVEY5S1N4aFBXRjNZV2wwSUd3dVkzSmxZWFJsVjNKcGRHRmliR1VvS1R0eVpYUjFjbTVjSW5OMGNtVmhiVndpYVc0Z1pUOG9ZWGRoYVhRZ1pTNXpkSEpsWVcwb0tTNXdhWEJsVkc4b1lTa3NiQ2s2WENKaWIyUjVYQ0pwYmlCbFB5aGhkMkZwZENCbExtSnZaSGt1Y0dsd1pWUnZLR0VwTEd3cE9paGhkMkZwZENCaExuZHlhWFJsS0dKc2IySXBMR0YzWVdsMElHRXVZMnh2YzJVb0tTeHNLWDE5S1R0MllYSWdSVDBvS0NrOVBudHBaaWgwZVhCbGIyWWdjMlZzWmowOVhDSjFibVJsWm1sdVpXUmNJaWx5WlhSMWNtNGhNVHRwWmloY0luUnZjRndpYVc0Z2MyVnNaaVltYzJWc1ppRTlQWFJ2Y0NsMGNubDdkRzl3TG14dlkyRjBhVzl1SzF3aVhDSjlZMkYwWTJoN2NtVjBkWEp1SVRGOVpXeHpaU0JwWmloY0luTm9iM2RQY0dWdVJtbHNaVkJwWTJ0bGNsd2lhVzRnYzJWc1ppbHlaWFIxY201Y0luTm9iM2RQY0dWdVJtbHNaVkJwWTJ0bGNsd2lPM0psZEhWeWJpRXhmU2tvS1N4bVBVVTdkbUZ5SUY4OVpqOVFjbTl0YVhObExuSmxjMjlzZG1Vb0tTNTBhR1Z1S0NncFBUNG9hQ2dwTEhjcEtUcFFjbTl0YVhObExuSmxjMjlzZG1Vb0tTNTBhR1Z1S0NncFBUNG9ieWdwTEhBcEtUdGhjM2x1WXlCbWRXNWpkR2x2YmlCTktDNHVMbVVwZTNKbGRIVnliaWhoZDJGcGRDQmZLUzVrWldaaGRXeDBLQzR1TG1VcGZYWmhjaUJQUFdZL1VISnZiV2x6WlM1eVpYTnZiSFpsS0NrdWRHaGxiaWdvS1QwK0tIZ29LU3huS1NrNlVISnZiV2x6WlM1eVpYTnZiSFpsS0NrdWRHaGxiaWdvS1QwK0tIWW9LU3hxS1NrN1lYTjVibU1nWm5WdVkzUnBiMjRnVnlndUxpNWxLWHR5WlhSMWNtNG9ZWGRoYVhRZ1R5a3VaR1ZtWVhWc2RDZ3VMaTVsS1gxMllYSWdRejFtUDFCeWIyMXBjMlV1Y21WemIyeDJaU2dwTG5Sb1pXNG9LQ2s5UGloVEtDa3NUQ2twT2xCeWIyMXBjMlV1Y21WemIyeDJaU2dwTG5Sb1pXNG9LQ2s5UGloUUtDa3NheWtwTzJGemVXNWpJR1oxYm1OMGFXOXVJRWNvTGk0dVpTbDdjbVYwZFhKdUtHRjNZV2wwSUVNcExtUmxabUYxYkhRb0xpNHVaU2w5Wlhod2IzSjBlMWNnWVhNZ1pHbHlaV04wYjNKNVQzQmxiaXhOSUdGeklHWnBiR1ZQY0dWdUxFY2dZWE1nWm1sc1pWTmhkbVVzWmlCaGN5QnpkWEJ3YjNKMFpXUjlPMXh1THk4Z1FHeHBZMlZ1YzJVZ3dxa2dNakF5TUNCSGIyOW5iR1VnVEV4RExpQk1hV05sYm5ObFpDQjFibVJsY2lCMGFHVWdRWEJoWTJobElFeHBZMlZ1YzJVc0lGWmxjbk5wYjI0Z01pNHdMbHh1SWwwc0ltNWhiV1Z6SWpwYlhTd2ljMjkxY21ObFVtOXZkQ0k2SWlKOVxcbi8vIyBzb3VyY2VVUkw9d2VicGFjay1pbnRlcm5hbDovLy8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYnJvd3Nlci1mcy1hY2Nlc3MvZGlzdC9lc20vaW5kZXguanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9uYW5vaWQvaW5kZXguZGV2LmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uLy4uL25vZGVfbW9kdWxlcy9uYW5vaWQvaW5kZXguZGV2LmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJuYW5vaWRcXFwiOiAoKSA9PiAoLyogYmluZGluZyAqLyBuYW5vaWQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImN1c3RvbUFscGhhYmV0XFxcIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY3VzdG9tQWxwaGFiZXQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcImN1c3RvbVJhbmRvbVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGN1c3RvbVJhbmRvbSksXFxuLyogaGFybW9ueSBleHBvcnQgKi8gICBcXFwidXJsQWxwaGFiZXRcXFwiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAqLyBfdXJsX2FscGhhYmV0X2luZGV4X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXJsQWxwaGFiZXQpLFxcbi8qIGhhcm1vbnkgZXhwb3J0ICovICAgXFxcInJhbmRvbVxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJhbmRvbSlcXG4vKiBoYXJtb255IGV4cG9ydCAqLyB9KTtcXG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3VybF9hbHBoYWJldF9pbmRleF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi91cmwtYWxwaGFiZXQvaW5kZXguanMgKi8gXFxcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9uYW5vaWQvdXJsLWFscGhhYmV0L2luZGV4LmpzXFxcIik7XFxuXFxuaWYgKHRydWUpIHtcXG4gIGlmIChcXG4gICAgdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiZcXG4gICAgbmF2aWdhdG9yLnByb2R1Y3QgPT09ICdSZWFjdE5hdGl2ZScgJiZcXG4gICAgdHlwZW9mIGNyeXB0byA9PT0gJ3VuZGVmaW5lZCdcXG4gICkge1xcbiAgICB0aHJvdyBuZXcgRXJyb3IoXFxuICAgICAgJ1JlYWN0IE5hdGl2ZSBkb2VzIG5vdCBoYXZlIGEgYnVpbHQtaW4gc2VjdXJlIHJhbmRvbSBnZW5lcmF0b3IuICcgK1xcbiAgICAgICAgJ0lmIHlvdSBkb25cdTIwMTl0IG5lZWQgdW5wcmVkaWN0YWJsZSBJRHMgdXNlIGBuYW5vaWQvbm9uLXNlY3VyZWAuICcgK1xcbiAgICAgICAgJ0ZvciBzZWN1cmUgSURzLCBpbXBvcnQgYHJlYWN0LW5hdGl2ZS1nZXQtcmFuZG9tLXZhbHVlc2AgJyArXFxuICAgICAgICAnYmVmb3JlIE5hbm8gSUQuJ1xcbiAgICApXFxuICB9XFxuICBpZiAodHlwZW9mIG1zQ3J5cHRvICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgY3J5cHRvID09PSAndW5kZWZpbmVkJykge1xcbiAgICB0aHJvdyBuZXcgRXJyb3IoXFxuICAgICAgJ0ltcG9ydCBmaWxlIHdpdGggYGlmICghd2luZG93LmNyeXB0bykgd2luZG93LmNyeXB0byA9IHdpbmRvdy5tc0NyeXB0b2AnICtcXG4gICAgICAgICcgYmVmb3JlIGltcG9ydGluZyBOYW5vIElEIHRvIGZpeCBJRSAxMSBzdXBwb3J0J1xcbiAgICApXFxuICB9XFxuICBpZiAodHlwZW9mIGNyeXB0byA9PT0gJ3VuZGVmaW5lZCcpIHtcXG4gICAgdGhyb3cgbmV3IEVycm9yKFxcbiAgICAgICdZb3VyIGJyb3dzZXIgZG9lcyBub3QgaGF2ZSBzZWN1cmUgcmFuZG9tIGdlbmVyYXRvci4gJyArXFxuICAgICAgICAnSWYgeW91IGRvblx1MjAxOXQgbmVlZCB1bnByZWRpY3RhYmxlIElEcywgeW91IGNhbiB1c2UgbmFub2lkL25vbi1zZWN1cmUuJ1xcbiAgICApXFxuICB9XFxufVxcbmxldCByYW5kb20gPSBieXRlcyA9PiBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KGJ5dGVzKSlcXG5sZXQgY3VzdG9tUmFuZG9tID0gKGFscGhhYmV0LCBzaXplLCBnZXRSYW5kb20pID0+IHtcXG4gIGxldCBtYXNrID0gKDIgPDwgKE1hdGgubG9nKGFscGhhYmV0Lmxlbmd0aCAtIDEpIC8gTWF0aC5MTjIpKSAtIDFcXG4gIGxldCBzdGVwID0gLX4oKDEuNiAqIG1hc2sgKiBzaXplKSAvIGFscGhhYmV0Lmxlbmd0aClcXG4gIHJldHVybiAoKSA9PiB7XFxuICAgIGxldCBpZCA9ICcnXFxuICAgIHdoaWxlICh0cnVlKSB7XFxuICAgICAgbGV0IGJ5dGVzID0gZ2V0UmFuZG9tKHN0ZXApXFxuICAgICAgbGV0IGogPSBzdGVwXFxuICAgICAgd2hpbGUgKGotLSkge1xcbiAgICAgICAgaWQgKz0gYWxwaGFiZXRbYnl0ZXNbal0gJiBtYXNrXSB8fCAnJ1xcbiAgICAgICAgaWYgKGlkLmxlbmd0aCA9PT0gc2l6ZSkgcmV0dXJuIGlkXFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxufVxcbmxldCBjdXN0b21BbHBoYWJldCA9IChhbHBoYWJldCwgc2l6ZSkgPT4gY3VzdG9tUmFuZG9tKGFscGhhYmV0LCBzaXplLCByYW5kb20pXFxubGV0IG5hbm9pZCA9IChzaXplID0gMjEpID0+IHtcXG4gIGxldCBpZCA9ICcnXFxuICBsZXQgYnl0ZXMgPSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KHNpemUpKVxcbiAgd2hpbGUgKHNpemUtLSkge1xcbiAgICBsZXQgYnl0ZSA9IGJ5dGVzW3NpemVdICYgNjNcXG4gICAgaWYgKGJ5dGUgPCAzNikge1xcbiAgICAgIGlkICs9IGJ5dGUudG9TdHJpbmcoMzYpXFxuICAgIH0gZWxzZSBpZiAoYnl0ZSA8IDYyKSB7XFxuICAgICAgaWQgKz0gKGJ5dGUgLSAyNikudG9TdHJpbmcoMzYpLnRvVXBwZXJDYXNlKClcXG4gICAgfSBlbHNlIGlmIChieXRlIDwgNjMpIHtcXG4gICAgICBpZCArPSAnXydcXG4gICAgfSBlbHNlIHtcXG4gICAgICBpZCArPSAnLSdcXG4gICAgfVxcbiAgfVxcbiAgcmV0dXJuIGlkXFxufVxcblxcbi8vIyBzb3VyY2VVUkw9W21vZHVsZV1cXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUxpNHZMaTR2TGk0dmJtOWtaVjl0YjJSMWJHVnpMMjVoYm05cFpDOXBibVJsZUM1a1pYWXVhbk11YW5NaUxDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPMEZCUVhGRU8wRkJRM0pFTEVsQlFVa3NTVUZCU1R0QlFVTlNPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEVzVFVGQlRUdEJRVU5PTzBGQlEwRXNUVUZCVFR0QlFVTk9PMEZCUTBFc1RVRkJUVHRCUVVOT08wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEYjBVaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwyNWhibTlwWkM5cGJtUmxlQzVrWlhZdWFuTS9PR1UwWWlKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QjFjbXhCYkhCb1lXSmxkQ0I5SUdaeWIyMGdKeTR2ZFhKc0xXRnNjR2hoWW1WMEwybHVaR1Y0TG1wekoxeHVhV1lnS0hSeWRXVXBJSHRjYmlBZ2FXWWdLRnh1SUNBZ0lIUjVjR1Z2WmlCdVlYWnBaMkYwYjNJZ0lUMDlJQ2QxYm1SbFptbHVaV1FuSUNZbVhHNGdJQ0FnYm1GMmFXZGhkRzl5TG5CeWIyUjFZM1FnUFQwOUlDZFNaV0ZqZEU1aGRHbDJaU2NnSmlaY2JpQWdJQ0IwZVhCbGIyWWdZM0o1Y0hSdklEMDlQU0FuZFc1a1pXWnBibVZrSjF4dUlDQXBJSHRjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb1hHNGdJQ0FnSUNBblVtVmhZM1FnVG1GMGFYWmxJR1J2WlhNZ2JtOTBJR2hoZG1VZ1lTQmlkV2xzZEMxcGJpQnpaV04xY21VZ2NtRnVaRzl0SUdkbGJtVnlZWFJ2Y2k0Z0p5QXJYRzRnSUNBZ0lDQWdJQ2RKWmlCNWIzVWdaRzl1NG9DWmRDQnVaV1ZrSUhWdWNISmxaR2xqZEdGaWJHVWdTVVJ6SUhWelpTQmdibUZ1YjJsa0wyNXZiaTF6WldOMWNtVmdMaUFuSUN0Y2JpQWdJQ0FnSUNBZ0owWnZjaUJ6WldOMWNtVWdTVVJ6TENCcGJYQnZjblFnWUhKbFlXTjBMVzVoZEdsMlpTMW5aWFF0Y21GdVpHOXRMWFpoYkhWbGMyQWdKeUFyWEc0Z0lDQWdJQ0FnSUNkaVpXWnZjbVVnVG1GdWJ5QkpSQzRuWEc0Z0lDQWdLVnh1SUNCOVhHNGdJR2xtSUNoMGVYQmxiMllnYlhORGNubHdkRzhnSVQwOUlDZDFibVJsWm1sdVpXUW5JQ1ltSUhSNWNHVnZaaUJqY25sd2RHOGdQVDA5SUNkMWJtUmxabWx1WldRbktTQjdYRzRnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0Z4dUlDQWdJQ0FnSjBsdGNHOXlkQ0JtYVd4bElIZHBkR2dnWUdsbUlDZ2hkMmx1Wkc5M0xtTnllWEIwYnlrZ2QybHVaRzkzTG1OeWVYQjBieUE5SUhkcGJtUnZkeTV0YzBOeWVYQjBiMkFuSUN0Y2JpQWdJQ0FnSUNBZ0p5QmlaV1p2Y21VZ2FXMXdiM0owYVc1bklFNWhibThnU1VRZ2RHOGdabWw0SUVsRklERXhJSE4xY0hCdmNuUW5YRzRnSUNBZ0tWeHVJQ0I5WEc0Z0lHbG1JQ2gwZVhCbGIyWWdZM0o1Y0hSdklEMDlQU0FuZFc1a1pXWnBibVZrSnlrZ2UxeHVJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhjYmlBZ0lDQWdJQ2RaYjNWeUlHSnliM2R6WlhJZ1pHOWxjeUJ1YjNRZ2FHRjJaU0J6WldOMWNtVWdjbUZ1Wkc5dElHZGxibVZ5WVhSdmNpNGdKeUFyWEc0Z0lDQWdJQ0FnSUNkSlppQjViM1VnWkc5dTRvQ1pkQ0J1WldWa0lIVnVjSEpsWkdsamRHRmliR1VnU1VSekxDQjViM1VnWTJGdUlIVnpaU0J1WVc1dmFXUXZibTl1TFhObFkzVnlaUzRuWEc0Z0lDQWdLVnh1SUNCOVhHNTlYRzVzWlhRZ2NtRnVaRzl0SUQwZ1lubDBaWE1nUFQ0Z1kzSjVjSFJ2TG1kbGRGSmhibVJ2YlZaaGJIVmxjeWh1WlhjZ1ZXbHVkRGhCY25KaGVTaGllWFJsY3lrcFhHNXNaWFFnWTNWemRHOXRVbUZ1Wkc5dElEMGdLR0ZzY0doaFltVjBMQ0J6YVhwbExDQm5aWFJTWVc1a2IyMHBJRDArSUh0Y2JpQWdiR1YwSUcxaGMyc2dQU0FvTWlBOFBDQW9UV0YwYUM1c2IyY29ZV3h3YUdGaVpYUXViR1Z1WjNSb0lDMGdNU2tnTHlCTllYUm9Ma3hPTWlrcElDMGdNVnh1SUNCc1pYUWdjM1JsY0NBOUlDMStLQ2d4TGpZZ0tpQnRZWE5ySUNvZ2MybDZaU2tnTHlCaGJIQm9ZV0psZEM1c1pXNW5kR2dwWEc0Z0lISmxkSFZ5YmlBb0tTQTlQaUI3WEc0Z0lDQWdiR1YwSUdsa0lEMGdKeWRjYmlBZ0lDQjNhR2xzWlNBb2RISjFaU2tnZTF4dUlDQWdJQ0FnYkdWMElHSjVkR1Z6SUQwZ1oyVjBVbUZ1Wkc5dEtITjBaWEFwWEc0Z0lDQWdJQ0JzWlhRZ2FpQTlJSE4wWlhCY2JpQWdJQ0FnSUhkb2FXeGxJQ2hxTFMwcElIdGNiaUFnSUNBZ0lDQWdhV1FnS3owZ1lXeHdhR0ZpWlhSYllubDBaWE5iYWwwZ0ppQnRZWE5yWFNCOGZDQW5KMXh1SUNBZ0lDQWdJQ0JwWmlBb2FXUXViR1Z1WjNSb0lEMDlQU0J6YVhwbEtTQnlaWFIxY200Z2FXUmNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDFjYm4xY2JteGxkQ0JqZFhOMGIyMUJiSEJvWVdKbGRDQTlJQ2hoYkhCb1lXSmxkQ3dnYzJsNlpTa2dQVDRnWTNWemRHOXRVbUZ1Wkc5dEtHRnNjR2hoWW1WMExDQnphWHBsTENCeVlXNWtiMjBwWEc1c1pYUWdibUZ1YjJsa0lEMGdLSE5wZW1VZ1BTQXlNU2tnUFQ0Z2UxeHVJQ0JzWlhRZ2FXUWdQU0FuSjF4dUlDQnNaWFFnWW5sMFpYTWdQU0JqY25sd2RHOHVaMlYwVW1GdVpHOXRWbUZzZFdWektHNWxkeUJWYVc1ME9FRnljbUY1S0hOcGVtVXBLVnh1SUNCM2FHbHNaU0FvYzJsNlpTMHRLU0I3WEc0Z0lDQWdiR1YwSUdKNWRHVWdQU0JpZVhSbGMxdHphWHBsWFNBbUlEWXpYRzRnSUNBZ2FXWWdLR0o1ZEdVZ1BDQXpOaWtnZTF4dUlDQWdJQ0FnYVdRZ0t6MGdZbmwwWlM1MGIxTjBjbWx1Wnlnek5pbGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tHSjVkR1VnUENBMk1pa2dlMXh1SUNBZ0lDQWdhV1FnS3owZ0tHSjVkR1VnTFNBeU5pa3VkRzlUZEhKcGJtY29NellwTG5SdlZYQndaWEpEWVhObEtDbGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tHSjVkR1VnUENBMk15a2dlMXh1SUNBZ0lDQWdhV1FnS3owZ0oxOG5YRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUdsa0lDczlJQ2N0SjF4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdhV1JjYm4xY2JtVjRjRzl5ZENCN0lHNWhibTlwWkN3Z1kzVnpkRzl0UVd4d2FHRmlaWFFzSUdOMWMzUnZiVkpoYm1SdmJTd2dkWEpzUVd4d2FHRmlaWFFzSUhKaGJtUnZiU0I5WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p6YjNWeVkyVlNiMjkwSWpvaUluMD1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25hbm9pZC9pbmRleC5kZXYuanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9uYW5vaWQvdXJsLWFscGhhYmV0L2luZGV4LmpzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uLy4uL25vZGVfbW9kdWxlcy9uYW5vaWQvdXJsLWFscGhhYmV0L2luZGV4LmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbmV2YWwoXCJfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7XFxuLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHtcXG4vKiBoYXJtb255IGV4cG9ydCAqLyAgIFxcXCJ1cmxBbHBoYWJldFxcXCI6ICgpID0+ICgvKiBiaW5kaW5nICovIHVybEFscGhhYmV0KVxcbi8qIGhhcm1vbnkgZXhwb3J0ICovIH0pO1xcbmxldCB1cmxBbHBoYWJldCA9XFxuICAndXNlYW5kb20tMjZUMTk4MzQwUFg3NXB4SkFDS1ZFUllNSU5EQlVTSFdPTEZfR1FaYmZnaGprbHF2d3l6cmljdCdcXG5cXG4vLyMgc291cmNlVVJMPVttb2R1bGVdXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMaTR2TGk0dkxpNHZibTlrWlY5dGIyUjFiR1Z6TDI1aGJtOXBaQzkxY213dFlXeHdhR0ZpWlhRdmFXNWtaWGd1YW5NdWFuTWlMQ0p0WVhCd2FXNW5jeUk2SWpzN096dEJRVUZCTzBGQlEwRTdRVUZEYzBJaUxDSnpiM1Z5WTJWeklqcGJJbmRsWW5CaFkyczZMeTh2TGk0dkxpNHZMaTR2Ym05a1pWOXRiMlIxYkdWekwyNWhibTlwWkM5MWNtd3RZV3h3YUdGaVpYUXZhVzVrWlhndWFuTS9OV1JqWkNKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnNaWFFnZFhKc1FXeHdhR0ZpWlhRZ1BWeHVJQ0FuZFhObFlXNWtiMjB0TWpaVU1UazRNelF3VUZnM05YQjRTa0ZEUzFaRlVsbE5TVTVFUWxWVFNGZFBURVpmUjFGYVltWm5hR3ByYkhGMmQzbDZjbWxqZENkY2JtVjRjRzl5ZENCN0lIVnliRUZzY0doaFltVjBJSDFjYmlKZExDSnVZVzFsY3lJNlcxMHNJbk52ZFhKalpWSnZiM1FpT2lJaWZRPT1cXG4vLyMgc291cmNlVVJMPXdlYnBhY2staW50ZXJuYWw6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25hbm9pZC91cmwtYWxwaGFiZXQvaW5kZXguanNcXG5cIik7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9vcGVuLWNvbG9yL29wZW4tY29sb3IuanNvblwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5qc29uICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSBKU09OLnBhcnNlKCd7XCJ3aGl0ZVwiOlwiI2ZmZmZmZlwiLFwiYmxhY2tcIjpcIiMwMDAwMDBcIixcImdyYXlcIjpbXCIjZjhmOWZhXCIsXCIjZjFmM2Y1XCIsXCIjZTllY2VmXCIsXCIjZGVlMmU2XCIsXCIjY2VkNGRhXCIsXCIjYWRiNWJkXCIsXCIjODY4ZTk2XCIsXCIjNDk1MDU3XCIsXCIjMzQzYTQwXCIsXCIjMjEyNTI5XCJdLFwicmVkXCI6W1wiI2ZmZjVmNVwiLFwiI2ZmZTNlM1wiLFwiI2ZmYzljOVwiLFwiI2ZmYThhOFwiLFwiI2ZmODc4N1wiLFwiI2ZmNmI2YlwiLFwiI2ZhNTI1MlwiLFwiI2YwM2UzZVwiLFwiI2UwMzEzMVwiLFwiI2M5MmEyYVwiXSxcInBpbmtcIjpbXCIjZmZmMGY2XCIsXCIjZmZkZWViXCIsXCIjZmNjMmQ3XCIsXCIjZmFhMmMxXCIsXCIjZjc4M2FjXCIsXCIjZjA2NTk1XCIsXCIjZTY0OTgwXCIsXCIjZDYzMzZjXCIsXCIjYzIyNTVjXCIsXCIjYTYxZTRkXCJdLFwiZ3JhcGVcIjpbXCIjZjhmMGZjXCIsXCIjZjNkOWZhXCIsXCIjZWViZWZhXCIsXCIjZTU5OWY3XCIsXCIjZGE3N2YyXCIsXCIjY2M1ZGU4XCIsXCIjYmU0YmRiXCIsXCIjYWUzZWM5XCIsXCIjOWMzNmI1XCIsXCIjODYyZTljXCJdLFwidmlvbGV0XCI6W1wiI2YzZjBmZlwiLFwiI2U1ZGJmZlwiLFwiI2QwYmZmZlwiLFwiI2IxOTdmY1wiLFwiIzk3NzVmYVwiLFwiIzg0NWVmN1wiLFwiIzc5NTBmMlwiLFwiIzcwNDhlOFwiLFwiIzY3NDFkOVwiLFwiIzVmM2RjNFwiXSxcImluZGlnb1wiOltcIiNlZGYyZmZcIixcIiNkYmU0ZmZcIixcIiNiYWM4ZmZcIixcIiM5MWE3ZmZcIixcIiM3NDhmZmNcIixcIiM1YzdjZmFcIixcIiM0YzZlZjVcIixcIiM0MjYzZWJcIixcIiMzYjViZGJcIixcIiMzNjRmYzdcIl0sXCJibHVlXCI6W1wiI2U3ZjVmZlwiLFwiI2QwZWJmZlwiLFwiI2E1ZDhmZlwiLFwiIzc0YzBmY1wiLFwiIzRkYWJmN1wiLFwiIzMzOWFmMFwiLFwiIzIyOGJlNlwiLFwiIzFjN2VkNlwiLFwiIzE5NzFjMlwiLFwiIzE4NjRhYlwiXSxcImN5YW5cIjpbXCIjZTNmYWZjXCIsXCIjYzVmNmZhXCIsXCIjOTllOWYyXCIsXCIjNjZkOWU4XCIsXCIjM2JjOWRiXCIsXCIjMjJiOGNmXCIsXCIjMTVhYWJmXCIsXCIjMTA5OGFkXCIsXCIjMGM4NTk5XCIsXCIjMGI3Mjg1XCJdLFwidGVhbFwiOltcIiNlNmZjZjVcIixcIiNjM2ZhZThcIixcIiM5NmYyZDdcIixcIiM2M2U2YmVcIixcIiMzOGQ5YTlcIixcIiMyMGM5OTdcIixcIiMxMmI4ODZcIixcIiMwY2E2NzhcIixcIiMwOTkyNjhcIixcIiMwODdmNWJcIl0sXCJncmVlblwiOltcIiNlYmZiZWVcIixcIiNkM2Y5ZDhcIixcIiNiMmYyYmJcIixcIiM4Y2U5OWFcIixcIiM2OWRiN2NcIixcIiM1MWNmNjZcIixcIiM0MGMwNTdcIixcIiMzN2IyNGRcIixcIiMyZjllNDRcIixcIiMyYjhhM2VcIl0sXCJsaW1lXCI6W1wiI2Y0ZmNlM1wiLFwiI2U5ZmFjOFwiLFwiI2Q4ZjVhMlwiLFwiI2MwZWI3NVwiLFwiI2E5ZTM0YlwiLFwiIzk0ZDgyZFwiLFwiIzgyYzkxZVwiLFwiIzc0YjgxNlwiLFwiIzY2YTgwZlwiLFwiIzVjOTQwZFwiXSxcInllbGxvd1wiOltcIiNmZmY5ZGJcIixcIiNmZmYzYmZcIixcIiNmZmVjOTlcIixcIiNmZmUwNjZcIixcIiNmZmQ0M2JcIixcIiNmY2M0MTlcIixcIiNmYWIwMDVcIixcIiNmNTlmMDBcIixcIiNmMDhjMDBcIixcIiNlNjc3MDBcIl0sXCJvcmFuZ2VcIjpbXCIjZmZmNGU2XCIsXCIjZmZlOGNjXCIsXCIjZmZkOGE4XCIsXCIjZmZjMDc4XCIsXCIjZmZhOTRkXCIsXCIjZmY5MjJiXCIsXCIjZmQ3ZTE0XCIsXCIjZjc2NzA3XCIsXCIjZTg1OTBjXCIsXCIjZDk0ODBmXCJdfScpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuLi8uLi9sb2NhbGVzL2VuLmpzb25cIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4uLy4uL2xvY2FsZXMvZW4uanNvbiAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqLyAoKG1vZHVsZSkgPT4ge1xuXG5cInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gSlNPTi5wYXJzZSgne1wibGFiZWxzXCI6e1wicGFzdGVcIjpcIlBhc3RlXCIsXCJwYXN0ZUNoYXJ0c1wiOlwiUGFzdGUgY2hhcnRzXCIsXCJzZWxlY3RBbGxcIjpcIlNlbGVjdCBhbGxcIixcIm11bHRpU2VsZWN0XCI6XCJBZGQgZWxlbWVudCB0byBzZWxlY3Rpb25cIixcIm1vdmVDYW52YXNcIjpcIk1vdmUgY2FudmFzXCIsXCJjdXRcIjpcIkN1dFwiLFwiY29weVwiOlwiQ29weVwiLFwiY29weUFzUG5nXCI6XCJDb3B5IHRvIGNsaXBib2FyZCBhcyBQTkdcIixcImNvcHlBc1N2Z1wiOlwiQ29weSB0byBjbGlwYm9hcmQgYXMgU1ZHXCIsXCJicmluZ0ZvcndhcmRcIjpcIkJyaW5nIGZvcndhcmRcIixcInNlbmRUb0JhY2tcIjpcIlNlbmQgdG8gYmFja1wiLFwiYnJpbmdUb0Zyb250XCI6XCJCcmluZyB0byBmcm9udFwiLFwic2VuZEJhY2t3YXJkXCI6XCJTZW5kIGJhY2t3YXJkXCIsXCJkZWxldGVcIjpcIkRlbGV0ZVwiLFwiY29weVN0eWxlc1wiOlwiQ29weSBzdHlsZXNcIixcInBhc3RlU3R5bGVzXCI6XCJQYXN0ZSBzdHlsZXNcIixcInN0cm9rZVwiOlwiU3Ryb2tlXCIsXCJiYWNrZ3JvdW5kXCI6XCJCYWNrZ3JvdW5kXCIsXCJmaWxsXCI6XCJGaWxsXCIsXCJzdHJva2VXaWR0aFwiOlwiU3Ryb2tlIHdpZHRoXCIsXCJzdHJva2VTdHlsZVwiOlwiU3Ryb2tlIHN0eWxlXCIsXCJzdHJva2VTdHlsZV9zb2xpZFwiOlwiU29saWRcIixcInN0cm9rZVN0eWxlX2Rhc2hlZFwiOlwiRGFzaGVkXCIsXCJzdHJva2VTdHlsZV9kb3R0ZWRcIjpcIkRvdHRlZFwiLFwic2xvcHBpbmVzc1wiOlwiU2xvcHBpbmVzc1wiLFwib3BhY2l0eVwiOlwiT3BhY2l0eVwiLFwidGV4dEFsaWduXCI6XCJUZXh0IGFsaWduXCIsXCJlZGdlc1wiOlwiRWRnZXNcIixcInNoYXJwXCI6XCJTaGFycFwiLFwicm91bmRcIjpcIlJvdW5kXCIsXCJhcnJvd2hlYWRzXCI6XCJBcnJvd2hlYWRzXCIsXCJhcnJvd2hlYWRfbm9uZVwiOlwiTm9uZVwiLFwiYXJyb3doZWFkX2Fycm93XCI6XCJBcnJvd1wiLFwiYXJyb3doZWFkX2JhclwiOlwiQmFyXCIsXCJhcnJvd2hlYWRfZG90XCI6XCJEb3RcIixcImFycm93aGVhZF90cmlhbmdsZVwiOlwiVHJpYW5nbGVcIixcImZvbnRTaXplXCI6XCJGb250IHNpemVcIixcImZvbnRGYW1pbHlcIjpcIkZvbnQgZmFtaWx5XCIsXCJvbmx5U2VsZWN0ZWRcIjpcIk9ubHkgc2VsZWN0ZWRcIixcIndpdGhCYWNrZ3JvdW5kXCI6XCJCYWNrZ3JvdW5kXCIsXCJleHBvcnRFbWJlZFNjZW5lXCI6XCJFbWJlZCBzY2VuZVwiLFwiZXhwb3J0RW1iZWRTY2VuZV9kZXRhaWxzXCI6XCJTY2VuZSBkYXRhIHdpbGwgYmUgc2F2ZWQgaW50byB0aGUgZXhwb3J0ZWQgUE5HL1NWRyBmaWxlIHNvIHRoYXQgdGhlIHNjZW5lIGNhbiBiZSByZXN0b3JlZCBmcm9tIGl0LlxcXFxuV2lsbCBpbmNyZWFzZSBleHBvcnRlZCBmaWxlIHNpemUuXCIsXCJhZGRXYXRlcm1hcmtcIjpcIkFkZCBcXFxcXCJNYWRlIHdpdGggRXhjYWxpZHJhd1xcXFxcIlwiLFwiaGFuZERyYXduXCI6XCJIYW5kLWRyYXduXCIsXCJub3JtYWxcIjpcIk5vcm1hbFwiLFwiY29kZVwiOlwiQ29kZVwiLFwic21hbGxcIjpcIlNtYWxsXCIsXCJtZWRpdW1cIjpcIk1lZGl1bVwiLFwibGFyZ2VcIjpcIkxhcmdlXCIsXCJ2ZXJ5TGFyZ2VcIjpcIlZlcnkgbGFyZ2VcIixcInNvbGlkXCI6XCJTb2xpZFwiLFwiaGFjaHVyZVwiOlwiSGFjaHVyZVwiLFwiY3Jvc3NIYXRjaFwiOlwiQ3Jvc3MtaGF0Y2hcIixcInRoaW5cIjpcIlRoaW5cIixcImJvbGRcIjpcIkJvbGRcIixcImxlZnRcIjpcIkxlZnRcIixcImNlbnRlclwiOlwiQ2VudGVyXCIsXCJyaWdodFwiOlwiUmlnaHRcIixcImV4dHJhQm9sZFwiOlwiRXh0cmEgYm9sZFwiLFwiYXJjaGl0ZWN0XCI6XCJBcmNoaXRlY3RcIixcImFydGlzdFwiOlwiQXJ0aXN0XCIsXCJjYXJ0b29uaXN0XCI6XCJDYXJ0b29uaXN0XCIsXCJmaWxlVGl0bGVcIjpcIkZpbGUgbmFtZVwiLFwiY29sb3JQaWNrZXJcIjpcIkNvbG9yIHBpY2tlclwiLFwiY2FudmFzQmFja2dyb3VuZFwiOlwiQ2FudmFzIGJhY2tncm91bmRcIixcImRyYXdpbmdDYW52YXNcIjpcIkRyYXdpbmcgY2FudmFzXCIsXCJsYXllcnNcIjpcIkxheWVyc1wiLFwiYWN0aW9uc1wiOlwiQWN0aW9uc1wiLFwibGFuZ3VhZ2VcIjpcIkxhbmd1YWdlXCIsXCJsaXZlQ29sbGFib3JhdGlvblwiOlwiTGl2ZSBjb2xsYWJvcmF0aW9uXCIsXCJkdXBsaWNhdGVTZWxlY3Rpb25cIjpcIkR1cGxpY2F0ZVwiLFwidW50aXRsZWRcIjpcIlVudGl0bGVkXCIsXCJuYW1lXCI6XCJOYW1lXCIsXCJ5b3VyTmFtZVwiOlwiWW91ciBuYW1lXCIsXCJtYWRlV2l0aEV4Y2FsaWRyYXdcIjpcIk1hZGUgd2l0aCBFeGNhbGlkcmF3XCIsXCJncm91cFwiOlwiR3JvdXAgc2VsZWN0aW9uXCIsXCJ1bmdyb3VwXCI6XCJVbmdyb3VwIHNlbGVjdGlvblwiLFwiY29sbGFib3JhdG9yc1wiOlwiQ29sbGFib3JhdG9yc1wiLFwic2hvd0dyaWRcIjpcIlNob3cgZ3JpZFwiLFwiYWRkVG9MaWJyYXJ5XCI6XCJBZGQgdG8gbGlicmFyeVwiLFwicmVtb3ZlRnJvbUxpYnJhcnlcIjpcIlJlbW92ZSBmcm9tIGxpYnJhcnlcIixcImxpYnJhcnlMb2FkaW5nTWVzc2FnZVwiOlwiTG9hZGluZyBsaWJyYXJ5XHUyMDI2XCIsXCJsaWJyYXJpZXNcIjpcIkJyb3dzZSBsaWJyYXJpZXNcIixcImxvYWRpbmdTY2VuZVwiOlwiTG9hZGluZyBzY2VuZVx1MjAyNlwiLFwiYWxpZ25cIjpcIkFsaWduXCIsXCJhbGlnblRvcFwiOlwiQWxpZ24gdG9wXCIsXCJhbGlnbkJvdHRvbVwiOlwiQWxpZ24gYm90dG9tXCIsXCJhbGlnbkxlZnRcIjpcIkFsaWduIGxlZnRcIixcImFsaWduUmlnaHRcIjpcIkFsaWduIHJpZ2h0XCIsXCJjZW50ZXJWZXJ0aWNhbGx5XCI6XCJDZW50ZXIgdmVydGljYWxseVwiLFwiY2VudGVySG9yaXpvbnRhbGx5XCI6XCJDZW50ZXIgaG9yaXpvbnRhbGx5XCIsXCJkaXN0cmlidXRlSG9yaXpvbnRhbGx5XCI6XCJEaXN0cmlidXRlIGhvcml6b250YWxseVwiLFwiZGlzdHJpYnV0ZVZlcnRpY2FsbHlcIjpcIkRpc3RyaWJ1dGUgdmVydGljYWxseVwiLFwiZmxpcEhvcml6b250YWxcIjpcIkZsaXAgaG9yaXpvbnRhbFwiLFwiZmxpcFZlcnRpY2FsXCI6XCJGbGlwIHZlcnRpY2FsXCIsXCJ2aWV3TW9kZVwiOlwiVmlldyBtb2RlXCIsXCJ0b2dnbGVFeHBvcnRDb2xvclNjaGVtZVwiOlwiVG9nZ2xlIGV4cG9ydCBjb2xvciBzY2hlbWVcIixcInNoYXJlXCI6XCJTaGFyZVwiLFwic2hvd1N0cm9rZVwiOlwiU2hvdyBzdHJva2UgY29sb3IgcGlja2VyXCIsXCJzaG93QmFja2dyb3VuZFwiOlwiU2hvdyBiYWNrZ3JvdW5kIGNvbG9yIHBpY2tlclwiLFwidG9nZ2xlVGhlbWVcIjpcIlRvZ2dsZSB0aGVtZVwiLFwicGVyc29uYWxMaWJcIjpcIlBlcnNvbmFsIExpYnJhcnlcIixcImV4Y2FsaWRyYXdMaWJcIjpcIkV4Y2FsaWRyYXcgTGlicmFyeVwiLFwiZGVjcmVhc2VGb250U2l6ZVwiOlwiRGVjcmVhc2UgZm9udCBzaXplXCIsXCJpbmNyZWFzZUZvbnRTaXplXCI6XCJJbmNyZWFzZSBmb250IHNpemVcIixcInVuYmluZFRleHRcIjpcIlVuYmluZCB0ZXh0XCIsXCJsaW5rXCI6e1wiZWRpdFwiOlwiRWRpdCBsaW5rXCIsXCJjcmVhdGVcIjpcIkNyZWF0ZSBsaW5rXCIsXCJsYWJlbFwiOlwiTGlua1wifX0sXCJidXR0b25zXCI6e1wiY2xlYXJSZXNldFwiOlwiUmVzZXQgdGhlIGNhbnZhc1wiLFwiZXhwb3J0SlNPTlwiOlwiRXhwb3J0IHRvIGZpbGVcIixcImV4cG9ydEltYWdlXCI6XCJTYXZlIGFzIGltYWdlXCIsXCJleHBvcnRcIjpcIkV4cG9ydFwiLFwiZXhwb3J0VG9QbmdcIjpcIkV4cG9ydCB0byBQTkdcIixcImV4cG9ydFRvU3ZnXCI6XCJFeHBvcnQgdG8gU1ZHXCIsXCJjb3B5VG9DbGlwYm9hcmRcIjpcIkNvcHkgdG8gY2xpcGJvYXJkXCIsXCJjb3B5UG5nVG9DbGlwYm9hcmRcIjpcIkNvcHkgUE5HIHRvIGNsaXBib2FyZFwiLFwic2NhbGVcIjpcIlNjYWxlXCIsXCJzYXZlXCI6XCJTYXZlIHRvIGN1cnJlbnQgZmlsZVwiLFwic2F2ZUFzXCI6XCJTYXZlIGFzXCIsXCJsb2FkXCI6XCJMb2FkXCIsXCJnZXRTaGFyZWFibGVMaW5rXCI6XCJHZXQgc2hhcmVhYmxlIGxpbmtcIixcImNsb3NlXCI6XCJDbG9zZVwiLFwic2VsZWN0TGFuZ3VhZ2VcIjpcIlNlbGVjdCBsYW5ndWFnZVwiLFwic2Nyb2xsQmFja1RvQ29udGVudFwiOlwiU2Nyb2xsIGJhY2sgdG8gY29udGVudFwiLFwiem9vbUluXCI6XCJab29tIGluXCIsXCJ6b29tT3V0XCI6XCJab29tIG91dFwiLFwicmVzZXRab29tXCI6XCJSZXNldCB6b29tXCIsXCJtZW51XCI6XCJNZW51XCIsXCJkb25lXCI6XCJEb25lXCIsXCJlZGl0XCI6XCJFZGl0XCIsXCJ1bmRvXCI6XCJVbmRvXCIsXCJyZWRvXCI6XCJSZWRvXCIsXCJyZXNldExpYnJhcnlcIjpcIlJlc2V0IGxpYnJhcnlcIixcImNyZWF0ZU5ld1Jvb21cIjpcIkNyZWF0ZSBuZXcgcm9vbVwiLFwiZnVsbFNjcmVlblwiOlwiRnVsbCBzY3JlZW5cIixcImRhcmtNb2RlXCI6XCJEYXJrIG1vZGVcIixcImxpZ2h0TW9kZVwiOlwiTGlnaHQgbW9kZVwiLFwiemVuTW9kZVwiOlwiWmVuIG1vZGVcIixcImV4aXRaZW5Nb2RlXCI6XCJFeGl0IHplbiBtb2RlXCIsXCJjYW5jZWxcIjpcIkNhbmNlbFwiLFwiY2xlYXJcIjpcIkNsZWFyXCIsXCJyZW1vdmVcIjpcIlJlbW92ZVwiLFwicHVibGlzaExpYnJhcnlcIjpcIlB1Ymxpc2hcIixcInN1Ym1pdFwiOlwiU3VibWl0XCIsXCJjb25maXJtXCI6XCJDb25maXJtXCJ9LFwiYWxlcnRzXCI6e1wiY2xlYXJSZXNldFwiOlwiVGhpcyB3aWxsIGNsZWFyIHRoZSB3aG9sZSBjYW52YXMuIEFyZSB5b3Ugc3VyZT9cIixcImNvdWxkTm90Q3JlYXRlU2hhcmVhYmxlTGlua1wiOlwiQ291bGRuXFwndCBjcmVhdGUgc2hhcmVhYmxlIGxpbmsuXCIsXCJjb3VsZE5vdENyZWF0ZVNoYXJlYWJsZUxpbmtUb29CaWdcIjpcIkNvdWxkblxcJ3QgY3JlYXRlIHNoYXJlYWJsZSBsaW5rOiB0aGUgc2NlbmUgaXMgdG9vIGJpZ1wiLFwiY291bGROb3RMb2FkSW52YWxpZEZpbGVcIjpcIkNvdWxkblxcJ3QgbG9hZCBpbnZhbGlkIGZpbGVcIixcImltcG9ydEJhY2tlbmRGYWlsZWRcIjpcIkltcG9ydGluZyBmcm9tIGJhY2tlbmQgZmFpbGVkLlwiLFwiY2Fubm90RXhwb3J0RW1wdHlDYW52YXNcIjpcIkNhbm5vdCBleHBvcnQgZW1wdHkgY2FudmFzLlwiLFwiY291bGROb3RDb3B5VG9DbGlwYm9hcmRcIjpcIkNvdWxkblxcJ3QgY29weSB0byBjbGlwYm9hcmQuIFRyeSB1c2luZyBDaHJvbWUgYnJvd3Nlci5cIixcImRlY3J5cHRGYWlsZWRcIjpcIkNvdWxkblxcJ3QgZGVjcnlwdCBkYXRhLlwiLFwidXBsb2FkZWRTZWN1cmx5XCI6XCJUaGUgdXBsb2FkIGhhcyBiZWVuIHNlY3VyZWQgd2l0aCBlbmQtdG8tZW5kIGVuY3J5cHRpb24sIHdoaWNoIG1lYW5zIHRoYXQgRXhjYWxpZHJhdyBzZXJ2ZXIgYW5kIHRoaXJkIHBhcnRpZXMgY2FuXFwndCByZWFkIHRoZSBjb250ZW50LlwiLFwibG9hZFNjZW5lT3ZlcnJpZGVQcm9tcHRcIjpcIkxvYWRpbmcgZXh0ZXJuYWwgZHJhd2luZyB3aWxsIHJlcGxhY2UgeW91ciBleGlzdGluZyBjb250ZW50LiBEbyB5b3Ugd2lzaCB0byBjb250aW51ZT9cIixcImNvbGxhYlN0b3BPdmVycmlkZVByb21wdFwiOlwiU3RvcHBpbmcgdGhlIHNlc3Npb24gd2lsbCBvdmVyd3JpdGUgeW91ciBwcmV2aW91cywgbG9jYWxseSBzdG9yZWQgZHJhd2luZy4gQXJlIHlvdSBzdXJlP1xcXFxuXFxcXG4oSWYgeW91IHdhbnQgdG8ga2VlcCB5b3VyIGxvY2FsIGRyYXdpbmcsIHNpbXBseSBjbG9zZSB0aGUgYnJvd3NlciB0YWIgaW5zdGVhZC4pXCIsXCJlcnJvckxvYWRpbmdMaWJyYXJ5XCI6XCJUaGVyZSB3YXMgYW4gZXJyb3IgbG9hZGluZyB0aGUgdGhpcmQgcGFydHkgbGlicmFyeS5cIixcImVycm9yQWRkaW5nVG9MaWJyYXJ5XCI6XCJDb3VsZG5cXCd0IGFkZCBpdGVtIHRvIHRoZSBsaWJyYXJ5XCIsXCJlcnJvclJlbW92aW5nRnJvbUxpYnJhcnlcIjpcIkNvdWxkblxcJ3QgcmVtb3ZlIGl0ZW0gZnJvbSB0aGUgbGlicmFyeVwiLFwiY29uZmlybUFkZExpYnJhcnlcIjpcIlRoaXMgd2lsbCBhZGQge3tudW1TaGFwZXN9fSBzaGFwZShzKSB0byB5b3VyIGxpYnJhcnkuIEFyZSB5b3Ugc3VyZT9cIixcImltYWdlRG9lc05vdENvbnRhaW5TY2VuZVwiOlwiVGhpcyBpbWFnZSBkb2VzIG5vdCBzZWVtIHRvIGNvbnRhaW4gYW55IHNjZW5lIGRhdGEuIEhhdmUgeW91IGVuYWJsZWQgc2NlbmUgZW1iZWRkaW5nIGR1cmluZyBleHBvcnQ/XCIsXCJjYW5ub3RSZXN0b3JlRnJvbUltYWdlXCI6XCJTY2VuZSBjb3VsZG5cXCd0IGJlIHJlc3RvcmVkIGZyb20gdGhpcyBpbWFnZSBmaWxlXCIsXCJpbnZhbGlkU2NlbmVVcmxcIjpcIkNvdWxkblxcJ3QgaW1wb3J0IHNjZW5lIGZyb20gdGhlIHN1cHBsaWVkIFVSTC4gSXRcXCdzIGVpdGhlciBtYWxmb3JtZWQsIG9yIGRvZXNuXFwndCBjb250YWluIHZhbGlkIEV4Y2FsaWRyYXcgSlNPTiBkYXRhLlwiLFwicmVzZXRMaWJyYXJ5XCI6XCJUaGlzIHdpbGwgY2xlYXIgeW91ciBsaWJyYXJ5LiBBcmUgeW91IHN1cmU/XCIsXCJyZW1vdmVJdGVtc0Zyb21zTGlicmFyeVwiOlwiRGVsZXRlIHt7Y291bnR9fSBpdGVtKHMpIGZyb20gbGlicmFyeT9cIixcImludmFsaWRFbmNyeXB0aW9uS2V5XCI6XCJFbmNyeXB0aW9uIGtleSBtdXN0IGJlIG9mIDIyIGNoYXJhY3RlcnMuIExpdmUgY29sbGFib3JhdGlvbiBpcyBkaXNhYmxlZC5cIn0sXCJlcnJvcnNcIjp7XCJ1bnN1cHBvcnRlZEZpbGVUeXBlXCI6XCJVbnN1cHBvcnRlZCBmaWxlIHR5cGUuXCIsXCJpbWFnZUluc2VydEVycm9yXCI6XCJDb3VsZG5cXCd0IGluc2VydCBpbWFnZS4gVHJ5IGFnYWluIGxhdGVyLi4uXCIsXCJmaWxlVG9vQmlnXCI6XCJGaWxlIGlzIHRvbyBiaWcuIE1heGltdW0gYWxsb3dlZCBzaXplIGlzIHt7bWF4U2l6ZX19LlwiLFwic3ZnSW1hZ2VJbnNlcnRFcnJvclwiOlwiQ291bGRuXFwndCBpbnNlcnQgU1ZHIGltYWdlLiBUaGUgU1ZHIG1hcmt1cCBsb29rcyBpbnZhbGlkLlwiLFwiaW52YWxpZFNWR1N0cmluZ1wiOlwiSW52YWxpZCBTVkcuXCJ9LFwidG9vbEJhclwiOntcInNlbGVjdGlvblwiOlwiU2VsZWN0aW9uXCIsXCJpbWFnZVwiOlwiSW5zZXJ0IGltYWdlXCIsXCJyZWN0YW5nbGVcIjpcIlJlY3RhbmdsZVwiLFwiZGlhbW9uZFwiOlwiRGlhbW9uZFwiLFwiZWxsaXBzZVwiOlwiRWxsaXBzZVwiLFwiYXJyb3dcIjpcIkFycm93XCIsXCJsaW5lXCI6XCJMaW5lXCIsXCJmcmVlZHJhd1wiOlwiRHJhd1wiLFwidGV4dFwiOlwiVGV4dFwiLFwibGlicmFyeVwiOlwiTGlicmFyeVwiLFwibG9ja1wiOlwiS2VlcCBzZWxlY3RlZCB0b29sIGFjdGl2ZSBhZnRlciBkcmF3aW5nXCIsXCJwZW5Nb2RlXCI6XCJQcmV2ZW50IHBpbmNoLXpvb20gYW5kIGFjY2VwdCBmcmVlZHJhdyBpbnB1dCBvbmx5IGZyb20gcGVuXCIsXCJsaW5rXCI6XCJBZGQvIFVwZGF0ZSBsaW5rIGZvciBhIHNlbGVjdGVkIHNoYXBlXCJ9LFwiaGVhZGluZ3NcIjp7XCJjYW52YXNBY3Rpb25zXCI6XCJDYW52YXMgYWN0aW9uc1wiLFwic2VsZWN0ZWRTaGFwZUFjdGlvbnNcIjpcIlNlbGVjdGVkIHNoYXBlIGFjdGlvbnNcIixcInNoYXBlc1wiOlwiU2hhcGVzXCJ9LFwiaGludHNcIjp7XCJjYW52YXNQYW5uaW5nXCI6XCJUbyBtb3ZlIGNhbnZhcywgaG9sZCBtb3VzZSB3aGVlbCBvciBzcGFjZWJhciB3aGlsZSBkcmFnZ2luZ1wiLFwibGluZWFyRWxlbWVudFwiOlwiQ2xpY2sgdG8gc3RhcnQgbXVsdGlwbGUgcG9pbnRzLCBkcmFnIGZvciBzaW5nbGUgbGluZVwiLFwiZnJlZURyYXdcIjpcIkNsaWNrIGFuZCBkcmFnLCByZWxlYXNlIHdoZW4geW91XFwncmUgZmluaXNoZWRcIixcInRleHRcIjpcIlRpcDogeW91IGNhbiBhbHNvIGFkZCB0ZXh0IGJ5IGRvdWJsZS1jbGlja2luZyBhbnl3aGVyZSB3aXRoIHRoZSBzZWxlY3Rpb24gdG9vbFwiLFwidGV4dF9zZWxlY3RlZFwiOlwiRG91YmxlLWNsaWNrIG9yIHByZXNzIEVOVEVSIHRvIGVkaXQgdGV4dFwiLFwidGV4dF9lZGl0aW5nXCI6XCJQcmVzcyBFc2NhcGUgb3IgQ3RybE9yQ21kK0VOVEVSIHRvIGZpbmlzaCBlZGl0aW5nXCIsXCJsaW5lYXJFbGVtZW50TXVsdGlcIjpcIkNsaWNrIG9uIGxhc3QgcG9pbnQgb3IgcHJlc3MgRXNjYXBlIG9yIEVudGVyIHRvIGZpbmlzaFwiLFwibG9ja0FuZ2xlXCI6XCJZb3UgY2FuIGNvbnN0cmFpbiBhbmdsZSBieSBob2xkaW5nIFNISUZUXCIsXCJyZXNpemVcIjpcIllvdSBjYW4gY29uc3RyYWluIHByb3BvcnRpb25zIGJ5IGhvbGRpbmcgU0hJRlQgd2hpbGUgcmVzaXppbmcsXFxcXG5ob2xkIEFMVCB0byByZXNpemUgZnJvbSB0aGUgY2VudGVyXCIsXCJyZXNpemVJbWFnZVwiOlwiWW91IGNhbiByZXNpemUgZnJlZWx5IGJ5IGhvbGRpbmcgU0hJRlQsXFxcXG5ob2xkIEFMVCB0byByZXNpemUgZnJvbSB0aGUgY2VudGVyXCIsXCJyb3RhdGVcIjpcIllvdSBjYW4gY29uc3RyYWluIGFuZ2xlcyBieSBob2xkaW5nIFNISUZUIHdoaWxlIHJvdGF0aW5nXCIsXCJsaW5lRWRpdG9yX2luZm9cIjpcIkRvdWJsZS1jbGljayBvciBwcmVzcyBFbnRlciB0byBlZGl0IHBvaW50c1wiLFwibGluZUVkaXRvcl9wb2ludFNlbGVjdGVkXCI6XCJQcmVzcyBEZWxldGUgdG8gcmVtb3ZlIHBvaW50KHMpLFxcXFxuQ3RybE9yQ21kK0QgdG8gZHVwbGljYXRlLCBvciBkcmFnIHRvIG1vdmVcIixcImxpbmVFZGl0b3Jfbm90aGluZ1NlbGVjdGVkXCI6XCJTZWxlY3QgYSBwb2ludCB0byBlZGl0IChob2xkIFNISUZUIHRvIHNlbGVjdCBtdWx0aXBsZSksXFxcXG5vciBob2xkIEFsdCBhbmQgY2xpY2sgdG8gYWRkIG5ldyBwb2ludHNcIixcInBsYWNlSW1hZ2VcIjpcIkNsaWNrIHRvIHBsYWNlIHRoZSBpbWFnZSwgb3IgY2xpY2sgYW5kIGRyYWcgdG8gc2V0IGl0cyBzaXplIG1hbnVhbGx5XCIsXCJwdWJsaXNoTGlicmFyeVwiOlwiUHVibGlzaCB5b3VyIG93biBsaWJyYXJ5XCIsXCJiaW5kVGV4dFRvRWxlbWVudFwiOlwiUHJlc3MgZW50ZXIgdG8gYWRkIHRleHRcIixcImRlZXBCb3hTZWxlY3RcIjpcIkhvbGQgQ3RybE9yQ21kIHRvIGRlZXAgc2VsZWN0LCBhbmQgdG8gcHJldmVudCBkcmFnZ2luZ1wifSxcImNhbnZhc0Vycm9yXCI6e1wiY2Fubm90U2hvd1ByZXZpZXdcIjpcIkNhbm5vdCBzaG93IHByZXZpZXdcIixcImNhbnZhc1Rvb0JpZ1wiOlwiVGhlIGNhbnZhcyBtYXkgYmUgdG9vIGJpZy5cIixcImNhbnZhc1Rvb0JpZ1RpcFwiOlwiVGlwOiB0cnkgbW92aW5nIHRoZSBmYXJ0aGVzdCBlbGVtZW50cyBhIGJpdCBjbG9zZXIgdG9nZXRoZXIuXCJ9LFwiZXJyb3JTcGxhc2hcIjp7XCJoZWFkaW5nTWFpbl9wcmVcIjpcIkVuY291bnRlcmVkIGFuIGVycm9yLiBUcnkgXCIsXCJoZWFkaW5nTWFpbl9idXR0b25cIjpcInJlbG9hZGluZyB0aGUgcGFnZS5cIixcImNsZWFyQ2FudmFzTWVzc2FnZVwiOlwiSWYgcmVsb2FkaW5nIGRvZXNuXFwndCB3b3JrLCB0cnkgXCIsXCJjbGVhckNhbnZhc01lc3NhZ2VfYnV0dG9uXCI6XCJjbGVhcmluZyB0aGUgY2FudmFzLlwiLFwiY2xlYXJDYW52YXNDYXZlYXRcIjpcIiBUaGlzIHdpbGwgcmVzdWx0IGluIGxvc3Mgb2Ygd29yayBcIixcInRyYWNrZWRUb1NlbnRyeV9wcmVcIjpcIlRoZSBlcnJvciB3aXRoIGlkZW50aWZpZXIgXCIsXCJ0cmFja2VkVG9TZW50cnlfcG9zdFwiOlwiIHdhcyB0cmFja2VkIG9uIG91ciBzeXN0ZW0uXCIsXCJvcGVuSXNzdWVNZXNzYWdlX3ByZVwiOlwiV2Ugd2VyZSB2ZXJ5IGNhdXRpb3VzIG5vdCB0byBpbmNsdWRlIHlvdXIgc2NlbmUgaW5mb3JtYXRpb24gb24gdGhlIGVycm9yLiBJZiB5b3VyIHNjZW5lIGlzIG5vdCBwcml2YXRlLCBwbGVhc2UgY29uc2lkZXIgZm9sbG93aW5nIHVwIG9uIG91ciBcIixcIm9wZW5Jc3N1ZU1lc3NhZ2VfYnV0dG9uXCI6XCJidWcgdHJhY2tlci5cIixcIm9wZW5Jc3N1ZU1lc3NhZ2VfcG9zdFwiOlwiIFBsZWFzZSBpbmNsdWRlIGluZm9ybWF0aW9uIGJlbG93IGJ5IGNvcHlpbmcgYW5kIHBhc3RpbmcgaW50byB0aGUgR2l0SHViIGlzc3VlLlwiLFwic2NlbmVDb250ZW50XCI6XCJTY2VuZSBjb250ZW50OlwifSxcInJvb21EaWFsb2dcIjp7XCJkZXNjX2ludHJvXCI6XCJZb3UgY2FuIGludml0ZSBwZW9wbGUgdG8geW91ciBjdXJyZW50IHNjZW5lIHRvIGNvbGxhYm9yYXRlIHdpdGggeW91LlwiLFwiZGVzY19wcml2YWN5XCI6XCJEb25cXCd0IHdvcnJ5LCB0aGUgc2Vzc2lvbiB1c2VzIGVuZC10by1lbmQgZW5jcnlwdGlvbiwgc28gd2hhdGV2ZXIgeW91IGRyYXcgd2lsbCBzdGF5IHByaXZhdGUuIE5vdCBldmVuIG91ciBzZXJ2ZXIgd2lsbCBiZSBhYmxlIHRvIHNlZSB3aGF0IHlvdSBjb21lIHVwIHdpdGguXCIsXCJidXR0b25fc3RhcnRTZXNzaW9uXCI6XCJTdGFydCBzZXNzaW9uXCIsXCJidXR0b25fc3RvcFNlc3Npb25cIjpcIlN0b3Agc2Vzc2lvblwiLFwiZGVzY19pblByb2dyZXNzSW50cm9cIjpcIkxpdmUtY29sbGFib3JhdGlvbiBzZXNzaW9uIGlzIG5vdyBpbiBwcm9ncmVzcy5cIixcImRlc2Nfc2hhcmVMaW5rXCI6XCJTaGFyZSB0aGlzIGxpbmsgd2l0aCBhbnlvbmUgeW91IHdhbnQgdG8gY29sbGFib3JhdGUgd2l0aDpcIixcImRlc2NfZXhpdFNlc3Npb25cIjpcIlN0b3BwaW5nIHRoZSBzZXNzaW9uIHdpbGwgZGlzY29ubmVjdCB5b3UgZnJvbSB0aGUgcm9vbSwgYnV0IHlvdVxcJ2xsIGJlIGFibGUgdG8gY29udGludWUgd29ya2luZyB3aXRoIHRoZSBzY2VuZSwgbG9jYWxseS4gTm90ZSB0aGF0IHRoaXMgd29uXFwndCBhZmZlY3Qgb3RoZXIgcGVvcGxlLCBhbmQgdGhleVxcJ2xsIHN0aWxsIGJlIGFibGUgdG8gY29sbGFib3JhdGUgb24gdGhlaXIgdmVyc2lvbi5cIixcInNoYXJlVGl0bGVcIjpcIkpvaW4gYSBsaXZlIGNvbGxhYm9yYXRpb24gc2Vzc2lvbiBvbiBFeGNhbGlkcmF3XCJ9LFwiZXJyb3JEaWFsb2dcIjp7XCJ0aXRsZVwiOlwiRXJyb3JcIn0sXCJleHBvcnREaWFsb2dcIjp7XCJkaXNrX3RpdGxlXCI6XCJTYXZlIHRvIGRpc2tcIixcImRpc2tfZGV0YWlsc1wiOlwiRXhwb3J0IHRoZSBzY2VuZSBkYXRhIHRvIGEgZmlsZSBmcm9tIHdoaWNoIHlvdSBjYW4gaW1wb3J0IGxhdGVyLlwiLFwiZGlza19idXR0b25cIjpcIlNhdmUgdG8gZmlsZVwiLFwibGlua190aXRsZVwiOlwiU2hhcmVhYmxlIGxpbmtcIixcImxpbmtfZGV0YWlsc1wiOlwiRXhwb3J0IGFzIGEgcmVhZC1vbmx5IGxpbmsuXCIsXCJsaW5rX2J1dHRvblwiOlwiRXhwb3J0IHRvIExpbmtcIixcImV4Y2FsaWRyYXdwbHVzX2Rlc2NyaXB0aW9uXCI6XCJTYXZlIHRoZSBzY2VuZSB0byB5b3VyIEV4Y2FsaWRyYXcrIHdvcmtzcGFjZS5cIixcImV4Y2FsaWRyYXdwbHVzX2J1dHRvblwiOlwiRXhwb3J0XCIsXCJleGNhbGlkcmF3cGx1c19leHBvcnRFcnJvclwiOlwiQ291bGRuXFwndCBleHBvcnQgdG8gRXhjYWxpZHJhdysgYXQgdGhpcyBtb21lbnQuLi5cIn0sXCJoZWxwRGlhbG9nXCI6e1wiYmxvZ1wiOlwiUmVhZCBvdXIgYmxvZ1wiLFwiY2xpY2tcIjpcImNsaWNrXCIsXCJkZWVwU2VsZWN0XCI6XCJEZWVwIHNlbGVjdFwiLFwiZGVlcEJveFNlbGVjdFwiOlwiRGVlcCBzZWxlY3Qgd2l0aGluIGJveCwgYW5kIHByZXZlbnQgZHJhZ2dpbmdcIixcImN1cnZlZEFycm93XCI6XCJDdXJ2ZWQgYXJyb3dcIixcImN1cnZlZExpbmVcIjpcIkN1cnZlZCBsaW5lXCIsXCJkb2N1bWVudGF0aW9uXCI6XCJEb2N1bWVudGF0aW9uXCIsXCJkb3VibGVDbGlja1wiOlwiZG91YmxlLWNsaWNrXCIsXCJkcmFnXCI6XCJkcmFnXCIsXCJlZGl0b3JcIjpcIkVkaXRvclwiLFwiZWRpdFNlbGVjdGVkU2hhcGVcIjpcIkVkaXQgc2VsZWN0ZWQgc2hhcGUgKHRleHQvYXJyb3cvbGluZSlcIixcImdpdGh1YlwiOlwiRm91bmQgYW4gaXNzdWU/IFN1Ym1pdFwiLFwiaG93dG9cIjpcIkZvbGxvdyBvdXIgZ3VpZGVzXCIsXCJvclwiOlwib3JcIixcInByZXZlbnRCaW5kaW5nXCI6XCJQcmV2ZW50IGFycm93IGJpbmRpbmdcIixcInNoYXBlc1wiOlwiU2hhcGVzXCIsXCJzaG9ydGN1dHNcIjpcIktleWJvYXJkIHNob3J0Y3V0c1wiLFwidGV4dEZpbmlzaFwiOlwiRmluaXNoIGVkaXRpbmcgKHRleHQgZWRpdG9yKVwiLFwidGV4dE5ld0xpbmVcIjpcIkFkZCBuZXcgbGluZSAodGV4dCBlZGl0b3IpXCIsXCJ0aXRsZVwiOlwiSGVscFwiLFwidmlld1wiOlwiVmlld1wiLFwiem9vbVRvRml0XCI6XCJab29tIHRvIGZpdCBhbGwgZWxlbWVudHNcIixcInpvb21Ub1NlbGVjdGlvblwiOlwiWm9vbSB0byBzZWxlY3Rpb25cIn0sXCJjbGVhckNhbnZhc0RpYWxvZ1wiOntcInRpdGxlXCI6XCJDbGVhciBjYW52YXNcIn0sXCJwdWJsaXNoRGlhbG9nXCI6e1widGl0bGVcIjpcIlB1Ymxpc2ggbGlicmFyeVwiLFwiaXRlbU5hbWVcIjpcIkl0ZW0gbmFtZVwiLFwiYXV0aG9yTmFtZVwiOlwiQXV0aG9yIG5hbWVcIixcImdpdGh1YlVzZXJuYW1lXCI6XCJHaXRIdWIgdXNlcm5hbWVcIixcInR3aXR0ZXJVc2VybmFtZVwiOlwiVHdpdHRlciB1c2VybmFtZVwiLFwibGlicmFyeU5hbWVcIjpcIkxpYnJhcnkgbmFtZVwiLFwibGlicmFyeURlc2NcIjpcIkxpYnJhcnkgZGVzY3JpcHRpb25cIixcIndlYnNpdGVcIjpcIldlYnNpdGVcIixcInBsYWNlaG9sZGVyXCI6e1wiYXV0aG9yTmFtZVwiOlwiWW91ciBuYW1lIG9yIHVzZXJuYW1lXCIsXCJsaWJyYXJ5TmFtZVwiOlwiTmFtZSBvZiB5b3VyIGxpYnJhcnlcIixcImxpYnJhcnlEZXNjXCI6XCJEZXNjcmlwdGlvbiBvZiB5b3VyIGxpYnJhcnkgdG8gaGVscCBwZW9wbGUgdW5kZXJzdGFuZCBpdHMgdXNhZ2VcIixcImdpdGh1YkhhbmRsZVwiOlwiR2l0SHViIGhhbmRsZSAob3B0aW9uYWwpLCBzbyB5b3UgY2FuIGVkaXQgdGhlIGxpYnJhcnkgb25jZSBzdWJtaXR0ZWQgZm9yIHJldmlld1wiLFwidHdpdHRlckhhbmRsZVwiOlwiVHdpdHRlciB1c2VybmFtZSAob3B0aW9uYWwpLCBzbyB3ZSBrbm93IHdobyB0byBjcmVkaXQgd2hlbiBwcm9tb3Rpbmcgb3ZlciBUd2l0dGVyXCIsXCJ3ZWJzaXRlXCI6XCJMaW5rIHRvIHlvdXIgcGVyc29uYWwgd2Vic2l0ZSBvciBlbHNld2hlcmUgKG9wdGlvbmFsKVwifSxcImVycm9yc1wiOntcInJlcXVpcmVkXCI6XCJSZXF1aXJlZFwiLFwid2Vic2l0ZVwiOlwiRW50ZXIgYSB2YWxpZCBVUkxcIn0sXCJub3RlRGVzY3JpcHRpb25cIjp7XCJwcmVcIjpcIlN1Ym1pdCB5b3VyIGxpYnJhcnkgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIFwiLFwibGlua1wiOlwicHVibGljIGxpYnJhcnkgcmVwb3NpdG9yeVwiLFwicG9zdFwiOlwiZm9yIG90aGVyIHBlb3BsZSB0byB1c2UgaW4gdGhlaXIgZHJhd2luZ3MuXCJ9LFwibm90ZUd1aWRlbGluZXNcIjp7XCJwcmVcIjpcIlRoZSBsaWJyYXJ5IG5lZWRzIHRvIGJlIG1hbnVhbGx5IGFwcHJvdmVkIGZpcnN0LiBQbGVhc2UgcmVhZCB0aGUgXCIsXCJsaW5rXCI6XCJndWlkZWxpbmVzXCIsXCJwb3N0XCI6XCIgYmVmb3JlIHN1Ym1pdHRpbmcuIFlvdSB3aWxsIG5lZWQgYSBHaXRIdWIgYWNjb3VudCB0byBjb21tdW5pY2F0ZSBhbmQgbWFrZSBjaGFuZ2VzIGlmIHJlcXVlc3RlZCwgYnV0IGl0IGlzIG5vdCBzdHJpY3RseSByZXF1aXJlZC5cIn0sXCJub3RlTGljZW5zZVwiOntcInByZVwiOlwiQnkgc3VibWl0dGluZywgeW91IGFncmVlIHRoZSBsaWJyYXJ5IHdpbGwgYmUgcHVibGlzaGVkIHVuZGVyIHRoZSBcIixcImxpbmtcIjpcIk1JVCBMaWNlbnNlLCBcIixcInBvc3RcIjpcIndoaWNoIGluIHNob3J0IG1lYW5zIGFueW9uZSBjYW4gdXNlIHRoZW0gd2l0aG91dCByZXN0cmljdGlvbnMuXCJ9LFwibm90ZUl0ZW1zXCI6XCJFYWNoIGxpYnJhcnkgaXRlbSBtdXN0IGhhdmUgaXRzIG93biBuYW1lIHNvIGl0XFwncyBmaWx0ZXJhYmxlLiBUaGUgZm9sbG93aW5nIGxpYnJhcnkgaXRlbXMgd2lsbCBiZSBpbmNsdWRlZDpcIixcImF0bGVhc3RPbmVMaWJJdGVtXCI6XCJQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBsaWJyYXJ5IGl0ZW0gdG8gZ2V0IHN0YXJ0ZWRcIn0sXCJwdWJsaXNoU3VjY2Vzc0RpYWxvZ1wiOntcInRpdGxlXCI6XCJMaWJyYXJ5IHN1Ym1pdHRlZFwiLFwiY29udGVudFwiOlwiVGhhbmsgeW91IHt7YXV0aG9yTmFtZX19LiBZb3VyIGxpYnJhcnkgaGFzIGJlZW4gc3VibWl0dGVkIGZvciByZXZpZXcuIFlvdSBjYW4gdHJhY2sgdGhlIHN0YXR1c1wiLFwibGlua1wiOlwiaGVyZVwifSxcImNvbmZpcm1EaWFsb2dcIjp7XCJyZXNldExpYnJhcnlcIjpcIlJlc2V0IGxpYnJhcnlcIixcInJlbW92ZUl0ZW1zRnJvbUxpYlwiOlwiUmVtb3ZlIHNlbGVjdGVkIGl0ZW1zIGZyb20gbGlicmFyeVwifSxcImVuY3J5cHRlZFwiOntcInRvb2x0aXBcIjpcIllvdXIgZHJhd2luZ3MgYXJlIGVuZC10by1lbmQgZW5jcnlwdGVkIHNvIEV4Y2FsaWRyYXdcXCdzIHNlcnZlcnMgd2lsbCBuZXZlciBzZWUgdGhlbS5cIixcImxpbmtcIjpcIkJsb2cgcG9zdCBvbiBlbmQtdG8tZW5kIGVuY3J5cHRpb24gaW4gRXhjYWxpZHJhd1wifSxcInN0YXRzXCI6e1wiYW5nbGVcIjpcIkFuZ2xlXCIsXCJlbGVtZW50XCI6XCJFbGVtZW50XCIsXCJlbGVtZW50c1wiOlwiRWxlbWVudHNcIixcImhlaWdodFwiOlwiSGVpZ2h0XCIsXCJzY2VuZVwiOlwiU2NlbmVcIixcInNlbGVjdGVkXCI6XCJTZWxlY3RlZFwiLFwic3RvcmFnZVwiOlwiU3RvcmFnZVwiLFwidGl0bGVcIjpcIlN0YXRzIGZvciBuZXJkc1wiLFwidG90YWxcIjpcIlRvdGFsXCIsXCJ2ZXJzaW9uXCI6XCJWZXJzaW9uXCIsXCJ2ZXJzaW9uQ29weVwiOlwiQ2xpY2sgdG8gY29weVwiLFwidmVyc2lvbk5vdEF2YWlsYWJsZVwiOlwiVmVyc2lvbiBub3QgYXZhaWxhYmxlXCIsXCJ3aWR0aFwiOlwiV2lkdGhcIn0sXCJ0b2FzdFwiOntcImFkZGVkVG9MaWJyYXJ5XCI6XCJBZGRlZCB0byBsaWJyYXJ5XCIsXCJjb3B5U3R5bGVzXCI6XCJDb3BpZWQgc3R5bGVzLlwiLFwiY29weVRvQ2xpcGJvYXJkXCI6XCJDb3BpZWQgdG8gY2xpcGJvYXJkLlwiLFwiY29weVRvQ2xpcGJvYXJkQXNQbmdcIjpcIkNvcGllZCB7e2V4cG9ydFNlbGVjdGlvbn19IHRvIGNsaXBib2FyZCBhcyBQTkdcXFxcbih7e2V4cG9ydENvbG9yU2NoZW1lfX0pXCIsXCJmaWxlU2F2ZWRcIjpcIkZpbGUgc2F2ZWQuXCIsXCJmaWxlU2F2ZWRUb0ZpbGVuYW1lXCI6XCJTYXZlZCB0byB7ZmlsZW5hbWV9XCIsXCJjYW52YXNcIjpcImNhbnZhc1wiLFwic2VsZWN0aW9uXCI6XCJzZWxlY3Rpb25cIn0sXCJjb2xvcnNcIjp7XCI0OTUwNTdcIjpcIkdyYXkgN1wiLFwiZmZmZmZmXCI6XCJXaGl0ZVwiLFwiZjhmOWZhXCI6XCJHcmF5IDBcIixcImYxZjNmNVwiOlwiR3JheSAxXCIsXCJmZmY1ZjVcIjpcIlJlZCAwXCIsXCJmZmYwZjZcIjpcIlBpbmsgMFwiLFwiZjhmMGZjXCI6XCJHcmFwZSAwXCIsXCJmM2YwZmZcIjpcIlZpb2xldCAwXCIsXCJlZGYyZmZcIjpcIkluZGlnbyAwXCIsXCJlN2Y1ZmZcIjpcIkJsdWUgMFwiLFwiZTNmYWZjXCI6XCJDeWFuIDBcIixcImU2ZmNmNVwiOlwiVGVhbCAwXCIsXCJlYmZiZWVcIjpcIkdyZWVuIDBcIixcImY0ZmNlM1wiOlwiTGltZSAwXCIsXCJmZmY5ZGJcIjpcIlllbGxvdyAwXCIsXCJmZmY0ZTZcIjpcIk9yYW5nZSAwXCIsXCJ0cmFuc3BhcmVudFwiOlwiVHJhbnNwYXJlbnRcIixcImNlZDRkYVwiOlwiR3JheSA0XCIsXCI4NjhlOTZcIjpcIkdyYXkgNlwiLFwiZmE1MjUyXCI6XCJSZWQgNlwiLFwiZTY0OTgwXCI6XCJQaW5rIDZcIixcImJlNGJkYlwiOlwiR3JhcGUgNlwiLFwiNzk1MGYyXCI6XCJWaW9sZXQgNlwiLFwiNGM2ZWY1XCI6XCJJbmRpZ28gNlwiLFwiMjI4YmU2XCI6XCJCbHVlIDZcIixcIjE1YWFiZlwiOlwiQ3lhbiA2XCIsXCIxMmI4ODZcIjpcIlRlYWwgNlwiLFwiNDBjMDU3XCI6XCJHcmVlbiA2XCIsXCI4MmM5MWVcIjpcIkxpbWUgNlwiLFwiZmFiMDA1XCI6XCJZZWxsb3cgNlwiLFwiZmQ3ZTE0XCI6XCJPcmFuZ2UgNlwiLFwiMDAwMDAwXCI6XCJCbGFja1wiLFwiMzQzYTQwXCI6XCJHcmF5IDhcIixcImM5MmEyYVwiOlwiUmVkIDlcIixcImE2MWU0ZFwiOlwiUGluayA5XCIsXCI4NjJlOWNcIjpcIkdyYXBlIDlcIixcIjVmM2RjNFwiOlwiVmlvbGV0IDlcIixcIjM2NGZjN1wiOlwiSW5kaWdvIDlcIixcIjE4NjRhYlwiOlwiQmx1ZSA5XCIsXCIwYjcyODVcIjpcIkN5YW4gOVwiLFwiMDg3ZjViXCI6XCJUZWFsIDlcIixcIjJiOGEzZVwiOlwiR3JlZW4gOVwiLFwiNWM5NDBkXCI6XCJMaW1lIDlcIixcImU2NzcwMFwiOlwiWWVsbG93IDlcIixcImQ5NDgwZlwiOlwiT3JhbmdlIDlcIn19Jyk7XG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4uLy4uL2xvY2FsZXMvcGVyY2VudGFnZXMuanNvblwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi4vLi4vbG9jYWxlcy9wZXJjZW50YWdlcy5qc29uICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSBKU09OLnBhcnNlKCd7XCJhci1TQVwiOjg4LFwiYmctQkdcIjo2MSxcImJuLUJEXCI6MCxcImNhLUVTXCI6OTUsXCJjcy1DWlwiOjI0LFwiZGEtREtcIjoxNixcImRlLURFXCI6OTksXCJlbC1HUlwiOjg3LFwiZW5cIjoxMDAsXCJlcy1FU1wiOjg0LFwiZXUtRVNcIjo5NixcImZhLUlSXCI6NjMsXCJmaS1GSVwiOjk4LFwiZnItRlJcIjoxMDAsXCJoZS1JTFwiOjgwLFwiaGktSU5cIjo1NSxcImh1LUhVXCI6NDksXCJpZC1JRFwiOjEwMCxcIml0LUlUXCI6OTYsXCJqYS1KUFwiOjk4LFwia2FiLUtBQlwiOjk1LFwia2stS1pcIjoyMyxcImtvLUtSXCI6NzIsXCJsdC1MVFwiOjI0LFwibHYtTFZcIjoxMDAsXCJteS1NTVwiOjQ2LFwibmItTk9cIjoxMDAsXCJubC1OTFwiOjkwLFwibm4tTk9cIjo4MyxcIm9jLUZSXCI6OTcsXCJwYS1JTlwiOjg3LFwicGwtUExcIjo5MyxcInB0LUJSXCI6OTgsXCJwdC1QVFwiOjgzLFwicm8tUk9cIjoxMDAsXCJydS1SVVwiOjk5LFwic2ktTEtcIjo5LFwic2stU0tcIjoxMDAsXCJzdi1TRVwiOjEwMCxcInRhLUlOXCI6OTksXCJ0ci1UUlwiOjg1LFwidWstVUFcIjo4MixcInpoLUNOXCI6MTAwLFwiemgtSEtcIjoyOCxcInpoLVRXXCI6MTAwfScpO1xuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL3BhY2thZ2UuanNvblwiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL3BhY2thZ2UuanNvbiAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKiovICgobW9kdWxlKSA9PiB7XG5cblwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSBKU09OLnBhcnNlKCd7XCJuYW1lXCI6XCJAZXhjYWxpZHJhdy9leGNhbGlkcmF3XCIsXCJ2ZXJzaW9uXCI6XCIwLjExLjBcIixcIm1haW5cIjpcIm1haW4uanNcIixcInR5cGVzXCI6XCJ0eXBlcy9wYWNrYWdlcy9leGNhbGlkcmF3L2luZGV4LmQudHNcIixcImZpbGVzXCI6W1wiZGlzdC8qXCIsXCJ0eXBlcy8qXCJdLFwicHVibGlzaENvbmZpZ1wiOntcImFjY2Vzc1wiOlwicHVibGljXCJ9LFwiZGVzY3JpcHRpb25cIjpcIkV4Y2FsaWRyYXcgYXMgYSBSZWFjdCBjb21wb25lbnRcIixcInJlcG9zaXRvcnlcIjpcImh0dHBzOi8vZ2l0aHViLmNvbS9leGNhbGlkcmF3L2V4Y2FsaWRyYXdcIixcImxpY2Vuc2VcIjpcIk1JVFwiLFwia2V5d29yZHNcIjpbXCJleGNhbGlkcmF3XCIsXCJleGNhbGlkcmF3LWVtYmVkXCIsXCJyZWFjdFwiLFwibnBtXCIsXCJucG0gZXhjYWxpZHJhd1wiXSxcImJyb3dzZXJzbGlzdFwiOntcInByb2R1Y3Rpb25cIjpbXCI+MC4yJVwiLFwibm90IGRlYWRcIixcIm5vdCBpZSA8PSAxMVwiLFwibm90IG9wX21pbmkgYWxsXCIsXCJub3Qgc2FmYXJpIDwgMTJcIixcIm5vdCBrYWlvcyA8PSAyLjVcIixcIm5vdCBlZGdlIDwgNzlcIixcIm5vdCBjaHJvbWUgPCA3MFwiLFwibm90IGFuZF91YyA8IDEzXCIsXCJub3Qgc2Ftc3VuZyA8IDEwXCJdLFwiZGV2ZWxvcG1lbnRcIjpbXCJsYXN0IDEgY2hyb21lIHZlcnNpb25cIixcImxhc3QgMSBmaXJlZm94IHZlcnNpb25cIixcImxhc3QgMSBzYWZhcmkgdmVyc2lvblwiXX0sXCJwZWVyRGVwZW5kZW5jaWVzXCI6e1wicmVhY3RcIjpcIl4xNy4wLjJcIixcInJlYWN0LWRvbVwiOlwiXjE3LjAuMlwifSxcImRldkRlcGVuZGVuY2llc1wiOntcIkBiYWJlbC9jb3JlXCI6XCI3LjE3LjBcIixcIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWFycm93LWZ1bmN0aW9uc1wiOlwiNy4xNi43XCIsXCJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1hc3luYy10by1nZW5lcmF0b3JcIjpcIjcuMTYuMFwiLFwiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tcnVudGltZVwiOlwiNy4xNi44XCIsXCJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS10eXBlc2NyaXB0XCI6XCI3LjE2LjFcIixcIkBiYWJlbC9wcmVzZXQtZW52XCI6XCI3LjE2LjdcIixcIkBiYWJlbC9wcmVzZXQtcmVhY3RcIjpcIjcuMTYuN1wiLFwiQGJhYmVsL3ByZXNldC10eXBlc2NyaXB0XCI6XCI3LjE2LjdcIixcImF1dG9wcmVmaXhlclwiOlwiMTAuNC4yXCIsXCJiYWJlbC1sb2FkZXJcIjpcIjguMi4zXCIsXCJiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWNsYXNzLXByb3BlcnRpZXNcIjpcIjYuMjQuMVwiLFwiY3Jvc3MtZW52XCI6XCI3LjAuM1wiLFwiY3NzLWxvYWRlclwiOlwiNi42LjBcIixcIm1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXCI6XCIyLjQuNlwiLFwicG9zdGNzcy1sb2FkZXJcIjpcIjYuMi4xXCIsXCJzYXNzLWxvYWRlclwiOlwiMTIuNC4wXCIsXCJ0ZXJzZXItd2VicGFjay1wbHVnaW5cIjpcIjUuMy4xXCIsXCJ0cy1sb2FkZXJcIjpcIjkuMi42XCIsXCJ0eXBlc2NyaXB0XCI6XCI0LjUuNFwiLFwid2VicGFja1wiOlwiNS42NS4wXCIsXCJ3ZWJwYWNrLWJ1bmRsZS1hbmFseXplclwiOlwiNC41LjBcIixcIndlYnBhY2stY2xpXCI6XCI0LjkuMlwiLFwid2VicGFjay1kZXYtc2VydmVyXCI6XCI0LjcuNFwiLFwid2VicGFjay1tZXJnZVwiOlwiNS44LjBcIn0sXCJidWdzXCI6XCJodHRwczovL2dpdGh1Yi5jb20vZXhjYWxpZHJhdy9leGNhbGlkcmF3L2lzc3Vlc1wiLFwiaG9tZXBhZ2VcIjpcImh0dHBzOi8vZ2l0aHViLmNvbS9leGNhbGlkcmF3L2V4Y2FsaWRyYXcvdHJlZS9tYXN0ZXIvc3JjL3BhY2thZ2VzL2V4Y2FsaWRyYXdcIixcInNjcmlwdHNcIjp7XCJnZW46dHlwZXNcIjpcInRzYyAtLXByb2plY3QgLi4vLi4vLi4vdHNjb25maWctdHlwZXMuanNvblwiLFwiYnVpbGQ6dW1kXCI6XCJybSAtcmYgZGlzdCAmJiBjcm9zcy1lbnYgTk9ERV9FTlY9cHJvZHVjdGlvbiB3ZWJwYWNrIC0tY29uZmlnIHdlYnBhY2sucHJvZC5jb25maWcuanMgJiYgY3Jvc3MtZW52IE5PREVfRU5WPWRldmVsb3BtZW50IHdlYnBhY2sgLS1jb25maWcgd2VicGFjay5kZXYuY29uZmlnLmpzICYmIHlhcm4gZ2VuOnR5cGVzXCIsXCJidWlsZDp1bWQ6d2l0aEFuYWx5emVyXCI6XCJjcm9zcy1lbnYgTk9ERV9FTlY9cHJvZHVjdGlvbiBBTkFMWVpFUj10cnVlIHdlYnBhY2sgLS1jb25maWcgd2VicGFjay5wcm9kLmNvbmZpZy5qc1wiLFwicGFja1wiOlwieWFybiBidWlsZDp1bWQgJiYgeWFybiBwYWNrXCIsXCJzdGFydFwiOlwid2VicGFjayBzZXJ2ZSAtLWNvbmZpZyB3ZWJwYWNrLmRldi1zZXJ2ZXIuY29uZmlnLmpzXCIsXCJpbnN0YWxsOmRlcHNcIjpcInlhcm4gaW5zdGFsbCAtLWZyb3plbi1sb2NrZmlsZSAmJiB5YXJuIC0tY3dkIC4uLy4uLy4uL1wiLFwiYnVpbGQ6ZXhhbXBsZVwiOlwiRVhBTVBMRT10cnVlIHdlYnBhY2sgLS1jb25maWcgd2VicGFjay5kZXYtc2VydmVyLmNvbmZpZy5qc1wifSxcImRlcGVuZGVuY2llc1wiOntcImRvdGVudlwiOlwiMTAuMC4wXCJ9fScpO1xuXG4vKioqLyB9KVxuXG4vKioqKioqLyBcdH0pO1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKiovIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHR2YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuLyoqKioqKi8gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG4vKioqKioqLyBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4vKioqKioqLyBcdFx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4vKioqKioqLyBcdFx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG4vKioqKioqLyBcdFx0XHRpZDogbW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRsb2FkZWQ6IGZhbHNlLFxuLyoqKioqKi8gXHRcdFx0ZXhwb3J0czoge31cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuLyoqKioqKi8gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcbi8qKioqKiovIFx0XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4vKioqKioqLyBcdFx0XHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuLyoqKioqKi8gXHRcdFx0XHQoKSA9PiAobW9kdWxlKTtcbi8qKioqKiovIFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGdldHRlcjtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2NyZWF0ZSBmYWtlIG5hbWVzcGFjZSBvYmplY3QgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHR2YXIgZ2V0UHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YgPyAob2JqKSA9PiAoT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaikpIDogKG9iaikgPT4gKG9iai5fX3Byb3RvX18pO1xuLyoqKioqKi8gXHRcdHZhciBsZWFmUHJvdG90eXBlcztcbi8qKioqKiovIFx0XHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3Rcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3Rcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgMTY6IHJldHVybiB2YWx1ZSB3aGVuIGl0J3MgUHJvbWlzZS1saWtlXG4vKioqKioqLyBcdFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4vKioqKioqLyBcdFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSB0aGlzKHZhbHVlKTtcbi8qKioqKiovIFx0XHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4vKioqKioqLyBcdFx0XHRpZih0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmKChtb2RlICYgNCkgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuLyoqKioqKi8gXHRcdFx0XHRpZigobW9kZSAmIDE2KSAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbi8qKioqKiovIFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4vKioqKioqLyBcdFx0XHR2YXIgZGVmID0ge307XG4vKioqKioqLyBcdFx0XHRsZWFmUHJvdG90eXBlcyA9IGxlYWZQcm90b3R5cGVzIHx8IFtudWxsLCBnZXRQcm90byh7fSksIGdldFByb3RvKFtdKSwgZ2V0UHJvdG8oZ2V0UHJvdG8pXTtcbi8qKioqKiovIFx0XHRcdGZvcih2YXIgY3VycmVudCA9IG1vZGUgJiAyICYmIHZhbHVlOyB0eXBlb2YgY3VycmVudCA9PSAnb2JqZWN0JyAmJiAhfmxlYWZQcm90b3R5cGVzLmluZGV4T2YoY3VycmVudCk7IGN1cnJlbnQgPSBnZXRQcm90byhjdXJyZW50KSkge1xuLyoqKioqKi8gXHRcdFx0XHRPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjdXJyZW50KS5mb3JFYWNoKChrZXkpID0+IChkZWZba2V5XSA9ICgpID0+ICh2YWx1ZVtrZXldKSkpO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0ZGVmWydkZWZhdWx0J10gPSAoKSA9PiAodmFsdWUpO1xuLyoqKioqKi8gXHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBkZWYpO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIG5zO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcbi8qKioqKiovIFx0XHRcdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcbi8qKioqKiovIFx0XHRcdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZW5zdXJlIGNodW5rICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mID0ge307XG4vKioqKioqLyBcdFx0Ly8gVGhpcyBmaWxlIGNvbnRhaW5zIG9ubHkgdGhlIGVudHJ5IGNodW5rLlxuLyoqKioqKi8gXHRcdC8vIFRoZSBjaHVuayBsb2FkaW5nIGZ1bmN0aW9uIGZvciBhZGRpdGlvbmFsIGNodW5rc1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZSA9IChjaHVua0lkKSA9PiB7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwoT2JqZWN0LmtleXMoX193ZWJwYWNrX3JlcXVpcmVfXy5mKS5yZWR1Y2UoKHByb21pc2VzLCBrZXkpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mW2tleV0oY2h1bmtJZCwgcHJvbWlzZXMpO1xuLyoqKioqKi8gXHRcdFx0XHRyZXR1cm4gcHJvbWlzZXM7XG4vKioqKioqLyBcdFx0XHR9LCBbXSkpO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBUaGlzIGZ1bmN0aW9uIGFsbG93IHRvIHJlZmVyZW5jZSBhc3luYyBjaHVua3Ncbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gXCJleGNhbGlkcmF3LWFzc2V0cy1kZXYvXCIgKyBjaHVua0lkICsgXCItXCIgKyB7XCJpMThuLWFyLVNBLWpzb25cIjpcIjhiMTRmMTYxZjcwZWYwZTBmOWI1XCIsXCJpMThuLWJnLUJHLWpzb25cIjpcImJmODYyNWUxODRkZTNhMWM5OTQwXCIsXCJpMThuLWJuLUJELWpzb25cIjpcImVlZWFmYTQyZWMxYjVjNjExZDE1XCIsXCJpMThuLWNhLUVTLWpzb25cIjpcIjg1OThjZjljNWQ4ZGQ1YTAzNzdkXCIsXCJpMThuLWNzLUNaLWpzb25cIjpcImE3NWQ3NDZhZWU3ZWQ1YmYwZmNkXCIsXCJpMThuLWRhLURLLWpzb25cIjpcImU1YzhmZWFhMWM4NWMyZjIxNjE2XCIsXCJpMThuLWRlLURFLWpzb25cIjpcImUxYjAxMTkyYmQwZGE3NmY5ZmZjXCIsXCJpMThuLWVsLUdSLWpzb25cIjpcIjhkNzlhMjcxZDhkNjliYzgwODhjXCIsXCJpMThuLWVzLUVTLWpzb25cIjpcIjgyY2Y0YWEzN2QxMzcxNWJjMDRkXCIsXCJpMThuLWV1LUVTLWpzb25cIjpcImMzMDQ1MmIwY2U3NTRmMGZiMWFmXCIsXCJpMThuLWZhLUlSLWpzb25cIjpcIjVkNjJiNGYxMGEzNWU2Y2VlZjUzXCIsXCJpMThuLWZpLUZJLWpzb25cIjpcImJlMzUxNjhkNWFlNjJjNWFhMzczXCIsXCJpMThuLWZyLUZSLWpzb25cIjpcIjdhODE4ZTc3MjUzNzhkY2EyMWQ4XCIsXCJpMThuLWhlLUlMLWpzb25cIjpcIjk0NGUyNTc0MmU2NTIxNjlhOTAzXCIsXCJpMThuLWhpLUlOLWpzb25cIjpcIjE0N2ZkNTFmNTc4Y2QzZTNhNjViXCIsXCJpMThuLWh1LUhVLWpzb25cIjpcIjdhYzI3YmRkNGNlNmM2YTIyZWI0XCIsXCJpMThuLWlkLUlELWpzb25cIjpcIjNhZDAyZjUwMzBjNDZkZmUyYTgzXCIsXCJpMThuLWl0LUlULWpzb25cIjpcIjRmZWRlNWY2MWYwOTU5MzFjNDZjXCIsXCJpMThuLWphLUpQLWpzb25cIjpcImJjM2I3Zjk1MTE4OTc5ZDQ1MDM1XCIsXCJpMThuLWthYi1LQUItanNvblwiOlwiNjRhNDQ3ZWQ2ZGQ2MzA1NmU0YmZcIixcImkxOG4ta2stS1otanNvblwiOlwiZjU5ZDVhMGI2ZmNhZDJmMjA0MjRcIixcImkxOG4ta28tS1ItanNvblwiOlwiYmFlNjUzYzk3NmExYWUzMDBmMWRcIixcImkxOG4tbHQtTFQtanNvblwiOlwiMWY1YTUwMDNmZWI1ZWNhYTkzOTlcIixcImkxOG4tbHYtTFYtanNvblwiOlwiNjQ5MGFhNDRlM2MzMDMxNTlkNjZcIixcImkxOG4tbXktTU0tanNvblwiOlwiNDk5ZmQ5YWY1NTk0NWY1YzkxMTdcIixcImkxOG4tbmItTk8tanNvblwiOlwiYjUwYWUwYTNjZWQ3YmY2NDU0ZGZcIixcImkxOG4tbmwtTkwtanNvblwiOlwiYjY4N2IyODY1MGM0ZGUzNDY1ZjdcIixcImkxOG4tbm4tTk8tanNvblwiOlwiMjlhN2RhMGFlMWFlMGY3YTVmNWJcIixcImkxOG4tb2MtRlItanNvblwiOlwiZTc3ZWMyYzMxYTNmYjZlNGMwN2FcIixcImkxOG4tcGEtSU4tanNvblwiOlwiYTY1YTgzNzYxOGY1MmEyMzJmYzVcIixcImkxOG4tcGwtUEwtanNvblwiOlwiNjYyNGE1MzI3Y2VjMWM0OWVjNWZcIixcImkxOG4tcHQtQlItanNvblwiOlwiZGZmZTc1NDkyNGU4NDI4ZTUzY2FcIixcImkxOG4tcHQtUFQtanNvblwiOlwiZDIxOTM2NTAzOTliZDNiZjI0OWJcIixcImkxOG4tcm8tUk8tanNvblwiOlwiYTk4NzZlNDJiNjViY2NlMjUxMTNcIixcImkxOG4tcnUtUlUtanNvblwiOlwiMGZkYzk1YjBmNmI2N2I2MTI5ODZcIixcImkxOG4tc2ktTEstanNvblwiOlwiY2I0MDVmNDc1MDk0MTVkZWE5N2NcIixcImkxOG4tc2stU0stanNvblwiOlwiN2U4ODRmMTcxYTMzNzFlYjM4NDlcIixcImkxOG4tc3YtU0UtanNvblwiOlwiODE3MjM0MDFmNDFkYjI5MDcwN2FcIixcImkxOG4tdGEtSU4tanNvblwiOlwiZjU5ZDU1MGM3YjJkMzQzNzdmOGNcIixcImkxOG4tdHItVFItanNvblwiOlwiN2Y4YjY4ZTM0YzQxYTQ2ODZlOThcIixcImkxOG4tdWstVUEtanNvblwiOlwiOTNiZTRhMGViNTRjODhmNGNmMDZcIixcImkxOG4temgtQ04tanNvblwiOlwiM2EyOWExYWRlMDY2MWNlYTU1ZWNcIixcImkxOG4temgtSEstanNvblwiOlwiYzMyZWMxNTljMWEzMzc2ODU2MTVcIixcImkxOG4temgtVFctanNvblwiOlwiOTFjMDZlMDNjZGRlMzM0MzhkYmJcIixcInZlbmRvclwiOlwiMWJjOGNlYWFmZDg2MjNjOTZkZDRcIixcImltYWdlXCI6XCI3MGYyNzFiYTAyYTM3OGI3YmFjYVwifVtjaHVua0lkXSArIFwiLmpzXCI7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9nbG9iYWwgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmcgPSAoZnVuY3Rpb24oKSB7XG4vKioqKioqLyBcdFx0XHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcbi8qKioqKiovIFx0XHRcdHRyeSB7XG4vKioqKioqLyBcdFx0XHRcdHJldHVybiB0aGlzIHx8IG5ldyBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuLyoqKioqKi8gXHRcdFx0fSBjYXRjaCAoZSkge1xuLyoqKioqKi8gXHRcdFx0XHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcpIHJldHVybiB3aW5kb3c7XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0fSkoKTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpXG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvbG9hZCBzY3JpcHQgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHR2YXIgaW5Qcm9ncmVzcyA9IHt9O1xuLyoqKioqKi8gXHRcdHZhciBkYXRhV2VicGFja1ByZWZpeCA9IFwiRXhjYWxpZHJhdzpcIjtcbi8qKioqKiovIFx0XHQvLyBsb2FkU2NyaXB0IGZ1bmN0aW9uIHRvIGxvYWQgYSBzY3JpcHQgdmlhIHNjcmlwdCB0YWdcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmwgPSAodXJsLCBkb25lLCBrZXksIGNodW5rSWQpID0+IHtcbi8qKioqKiovIFx0XHRcdGlmKGluUHJvZ3Jlc3NbdXJsXSkgeyBpblByb2dyZXNzW3VybF0ucHVzaChkb25lKTsgcmV0dXJuOyB9XG4vKioqKioqLyBcdFx0XHR2YXIgc2NyaXB0LCBuZWVkQXR0YWNoO1xuLyoqKioqKi8gXHRcdFx0aWYoa2V5ICE9PSB1bmRlZmluZWQpIHtcbi8qKioqKiovIFx0XHRcdFx0dmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKTtcbi8qKioqKiovIFx0XHRcdFx0Zm9yKHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyBpKyspIHtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgcyA9IHNjcmlwdHNbaV07XG4vKioqKioqLyBcdFx0XHRcdFx0aWYocy5nZXRBdHRyaWJ1dGUoXCJzcmNcIikgPT0gdXJsIHx8IHMuZ2V0QXR0cmlidXRlKFwiZGF0YS13ZWJwYWNrXCIpID09IGRhdGFXZWJwYWNrUHJlZml4ICsga2V5KSB7IHNjcmlwdCA9IHM7IGJyZWFrOyB9XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdGlmKCFzY3JpcHQpIHtcbi8qKioqKiovIFx0XHRcdFx0bmVlZEF0dGFjaCA9IHRydWU7XG4vKioqKioqLyBcdFx0XHRcdHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRzY3JpcHQuY2hhcnNldCA9ICd1dGYtOCc7XG4vKioqKioqLyBcdFx0XHRcdHNjcmlwdC50aW1lb3V0ID0gMTIwO1xuLyoqKioqKi8gXHRcdFx0XHRpZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5uYykge1xuLyoqKioqKi8gXHRcdFx0XHRcdHNjcmlwdC5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLCBfX3dlYnBhY2tfcmVxdWlyZV9fLm5jKTtcbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRzY3JpcHQuc2V0QXR0cmlidXRlKFwiZGF0YS13ZWJwYWNrXCIsIGRhdGFXZWJwYWNrUHJlZml4ICsga2V5KTtcbi8qKioqKiovIFx0XHRcdFx0c2NyaXB0LnNyYyA9IHVybDtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdGluUHJvZ3Jlc3NbdXJsXSA9IFtkb25lXTtcbi8qKioqKiovIFx0XHRcdHZhciBvblNjcmlwdENvbXBsZXRlID0gKHByZXYsIGV2ZW50KSA9PiB7XG4vKioqKioqLyBcdFx0XHRcdC8vIGF2b2lkIG1lbSBsZWFrcyBpbiBJRS5cbi8qKioqKiovIFx0XHRcdFx0c2NyaXB0Lm9uZXJyb3IgPSBzY3JpcHQub25sb2FkID0gbnVsbDtcbi8qKioqKiovIFx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgZG9uZUZucyA9IGluUHJvZ3Jlc3NbdXJsXTtcbi8qKioqKiovIFx0XHRcdFx0ZGVsZXRlIGluUHJvZ3Jlc3NbdXJsXTtcbi8qKioqKiovIFx0XHRcdFx0c2NyaXB0LnBhcmVudE5vZGUgJiYgc2NyaXB0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc2NyaXB0KTtcbi8qKioqKiovIFx0XHRcdFx0ZG9uZUZucyAmJiBkb25lRm5zLmZvckVhY2goKGZuKSA9PiAoZm4oZXZlbnQpKSk7XG4vKioqKioqLyBcdFx0XHRcdGlmKHByZXYpIHJldHVybiBwcmV2KGV2ZW50KTtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdDtcbi8qKioqKiovIFx0XHRcdHZhciB0aW1lb3V0ID0gc2V0VGltZW91dChvblNjcmlwdENvbXBsZXRlLmJpbmQobnVsbCwgdW5kZWZpbmVkLCB7IHR5cGU6ICd0aW1lb3V0JywgdGFyZ2V0OiBzY3JpcHQgfSksIDEyMDAwMCk7XG4vKioqKioqLyBcdFx0XHRzY3JpcHQub25lcnJvciA9IG9uU2NyaXB0Q29tcGxldGUuYmluZChudWxsLCBzY3JpcHQub25lcnJvcik7XG4vKioqKioqLyBcdFx0XHRzY3JpcHQub25sb2FkID0gb25TY3JpcHRDb21wbGV0ZS5iaW5kKG51bGwsIHNjcmlwdC5vbmxvYWQpO1xuLyoqKioqKi8gXHRcdFx0bmVlZEF0dGFjaCAmJiBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcbi8qKioqKiovIFx0XHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuLyoqKioqKi8gXHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9ub2RlIG1vZHVsZSBkZWNvcmF0b3IgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm5tZCA9IChtb2R1bGUpID0+IHtcbi8qKioqKiovIFx0XHRcdG1vZHVsZS5wYXRocyA9IFtdO1xuLyoqKioqKi8gXHRcdFx0aWYgKCFtb2R1bGUuY2hpbGRyZW4pIG1vZHVsZS5jaGlsZHJlbiA9IFtdO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIG1vZHVsZTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL3B1YmxpY1BhdGggKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2pzb25wIGNodW5rIGxvYWRpbmcgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmIgPSBkb2N1bWVudC5iYXNlVVJJIHx8IHNlbGYubG9jYXRpb24uaHJlZjtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHQvLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGFuZCBsb2FkaW5nIGNodW5rc1xuLyoqKioqKi8gXHRcdC8vIHVuZGVmaW5lZCA9IGNodW5rIG5vdCBsb2FkZWQsIG51bGwgPSBjaHVuayBwcmVsb2FkZWQvcHJlZmV0Y2hlZFxuLyoqKioqKi8gXHRcdC8vIFtyZXNvbHZlLCByZWplY3QsIFByb21pc2VdID0gY2h1bmsgbG9hZGluZywgMCA9IGNodW5rIGxvYWRlZFxuLyoqKioqKi8gXHRcdHZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG4vKioqKioqLyBcdFx0XHRcImV4Y2FsaWRyYXcuZGV2ZWxvcG1lbnRcIjogMFxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mLmogPSAoY2h1bmtJZCwgcHJvbWlzZXMpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0Ly8gSlNPTlAgY2h1bmsgbG9hZGluZyBmb3IgamF2YXNjcmlwdFxuLyoqKioqKi8gXHRcdFx0XHR2YXIgaW5zdGFsbGVkQ2h1bmtEYXRhID0gX193ZWJwYWNrX3JlcXVpcmVfXy5vKGluc3RhbGxlZENodW5rcywgY2h1bmtJZCkgPyBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gOiB1bmRlZmluZWQ7XG4vKioqKioqLyBcdFx0XHRcdGlmKGluc3RhbGxlZENodW5rRGF0YSAhPT0gMCkgeyAvLyAwIG1lYW5zIFwiYWxyZWFkeSBpbnN0YWxsZWRcIi5cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHQvLyBhIFByb21pc2UgbWVhbnMgXCJjdXJyZW50bHkgbG9hZGluZ1wiLlxuLyoqKioqKi8gXHRcdFx0XHRcdGlmKGluc3RhbGxlZENodW5rRGF0YSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cHJvbWlzZXMucHVzaChpbnN0YWxsZWRDaHVua0RhdGFbMl0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdH0gZWxzZSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRpZih0cnVlKSB7IC8vIGFsbCBjaHVua3MgaGF2ZSBKU1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHQvLyBzZXR1cCBQcm9taXNlIGluIGNodW5rIGNhY2hlXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gKGluc3RhbGxlZENodW5rRGF0YSA9IGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9IFtyZXNvbHZlLCByZWplY3RdKSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdHByb21pc2VzLnB1c2goaW5zdGFsbGVkQ2h1bmtEYXRhWzJdID0gcHJvbWlzZSk7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdC8vIHN0YXJ0IGNodW5rIGxvYWRpbmdcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0dmFyIHVybCA9IF9fd2VicGFja19yZXF1aXJlX18ucCArIF9fd2VicGFja19yZXF1aXJlX18udShjaHVua0lkKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0Ly8gY3JlYXRlIGVycm9yIGJlZm9yZSBzdGFjayB1bndvdW5kIHRvIGdldCB1c2VmdWwgc3RhY2t0cmFjZSBsYXRlclxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR2YXIgZXJyb3IgPSBuZXcgRXJyb3IoKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0dmFyIGxvYWRpbmdFbmRlZCA9IChldmVudCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhpbnN0YWxsZWRDaHVua3MsIGNodW5rSWQpKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRpbnN0YWxsZWRDaHVua0RhdGEgPSBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF07XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRpZihpbnN0YWxsZWRDaHVua0RhdGEgIT09IDApIGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9IHVuZGVmaW5lZDtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGlmKGluc3RhbGxlZENodW5rRGF0YSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZXJyb3JUeXBlID0gZXZlbnQgJiYgKGV2ZW50LnR5cGUgPT09ICdsb2FkJyA/ICdtaXNzaW5nJyA6IGV2ZW50LnR5cGUpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgcmVhbFNyYyA9IGV2ZW50ICYmIGV2ZW50LnRhcmdldCAmJiBldmVudC50YXJnZXQuc3JjO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvci5tZXNzYWdlID0gJ0xvYWRpbmcgY2h1bmsgJyArIGNodW5rSWQgKyAnIGZhaWxlZC5cXG4oJyArIGVycm9yVHlwZSArICc6ICcgKyByZWFsU3JjICsgJyknO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvci5uYW1lID0gJ0NodW5rTG9hZEVycm9yJztcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0ZXJyb3IudHlwZSA9IGVycm9yVHlwZTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0ZXJyb3IucmVxdWVzdCA9IHJlYWxTcmM7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGluc3RhbGxlZENodW5rRGF0YVsxXShlcnJvcik7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmwodXJsLCBsb2FkaW5nRW5kZWQsIFwiY2h1bmstXCIgKyBjaHVua0lkLCBjaHVua0lkKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdH0gZWxzZSBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPSAwO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gbm8gcHJlZmV0Y2hpbmdcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHQvLyBubyBwcmVsb2FkZWRcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHQvLyBubyBITVJcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHQvLyBubyBITVIgbWFuaWZlc3Rcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHQvLyBubyBvbiBjaHVua3MgbG9hZGVkXG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gaW5zdGFsbCBhIEpTT05QIGNhbGxiYWNrIGZvciBjaHVuayBsb2FkaW5nXG4vKioqKioqLyBcdFx0dmFyIHdlYnBhY2tKc29ucENhbGxiYWNrID0gKHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uLCBkYXRhKSA9PiB7XG4vKioqKioqLyBcdFx0XHR2YXIgW2NodW5rSWRzLCBtb3JlTW9kdWxlcywgcnVudGltZV0gPSBkYXRhO1xuLyoqKioqKi8gXHRcdFx0Ly8gYWRkIFwibW9yZU1vZHVsZXNcIiB0byB0aGUgbW9kdWxlcyBvYmplY3QsXG4vKioqKioqLyBcdFx0XHQvLyB0aGVuIGZsYWcgYWxsIFwiY2h1bmtJZHNcIiBhcyBsb2FkZWQgYW5kIGZpcmUgY2FsbGJhY2tcbi8qKioqKiovIFx0XHRcdHZhciBtb2R1bGVJZCwgY2h1bmtJZCwgaSA9IDA7XG4vKioqKioqLyBcdFx0XHRpZihjaHVua0lkcy5zb21lKChpZCkgPT4gKGluc3RhbGxlZENodW5rc1tpZF0gIT09IDApKSkge1xuLyoqKioqKi8gXHRcdFx0XHRmb3IobW9kdWxlSWQgaW4gbW9yZU1vZHVsZXMpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8obW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tW21vZHVsZUlkXSA9IG1vcmVNb2R1bGVzW21vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0aWYocnVudGltZSkgdmFyIHJlc3VsdCA9IHJ1bnRpbWUoX193ZWJwYWNrX3JlcXVpcmVfXyk7XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRpZihwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbikgcGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24oZGF0YSk7XG4vKioqKioqLyBcdFx0XHRmb3IoO2kgPCBjaHVua0lkcy5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHRjaHVua0lkID0gY2h1bmtJZHNbaV07XG4vKioqKioqLyBcdFx0XHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhpbnN0YWxsZWRDaHVua3MsIGNodW5rSWQpICYmIGluc3RhbGxlZENodW5rc1tjaHVua0lkXSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkXVswXSgpO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkc1tpXV0gPSAwO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHR2YXIgY2h1bmtMb2FkaW5nR2xvYmFsID0gZ2xvYmFsVGhpc1tcIndlYnBhY2tDaHVua0V4Y2FsaWRyYXdcIl0gPSBnbG9iYWxUaGlzW1wid2VicGFja0NodW5rRXhjYWxpZHJhd1wiXSB8fCBbXTtcbi8qKioqKiovIFx0XHRjaHVua0xvYWRpbmdHbG9iYWwuZm9yRWFjaCh3ZWJwYWNrSnNvbnBDYWxsYmFjay5iaW5kKG51bGwsIDApKTtcbi8qKioqKiovIFx0XHRjaHVua0xvYWRpbmdHbG9iYWwucHVzaCA9IHdlYnBhY2tKc29ucENhbGxiYWNrLmJpbmQobnVsbCwgY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2guYmluZChjaHVua0xvYWRpbmdHbG9iYWwpKTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gc3RhcnR1cFxuLyoqKioqKi8gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbi8qKioqKiovIFx0Ly8gVGhpcyBlbnRyeSBtb2R1bGUgY2FuJ3QgYmUgaW5saW5lZCBiZWNhdXNlIHRoZSBldmFsLXNvdXJjZS1tYXAgZGV2dG9vbCBpcyB1c2VkLlxuLyoqKioqKi8gXHR2YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oXCIuL2VudHJ5LmpzXCIpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0cmV0dXJuIF9fd2VicGFja19leHBvcnRzX187XG4vKioqKioqLyB9KSgpXG47XG59KTsiLCAiaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIikge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCIuL2Rpc3QvZXhjYWxpZHJhdy5wcm9kdWN0aW9uLm1pbi5qc1wiKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIi4vZGlzdC9leGNhbGlkcmF3LmRldmVsb3BtZW50LmpzXCIpO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIG0gPSByZXF1aXJlKCdyZWFjdC1kb20nKTtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGV4cG9ydHMuY3JlYXRlUm9vdCA9IG0uY3JlYXRlUm9vdDtcbiAgZXhwb3J0cy5oeWRyYXRlUm9vdCA9IG0uaHlkcmF0ZVJvb3Q7XG59IGVsc2Uge1xuICB2YXIgaSA9IG0uX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ7XG4gIGV4cG9ydHMuY3JlYXRlUm9vdCA9IGZ1bmN0aW9uKGMsIG8pIHtcbiAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBtLmNyZWF0ZVJvb3QoYywgbyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGkudXNpbmdDbGllbnRFbnRyeVBvaW50ID0gZmFsc2U7XG4gICAgfVxuICB9O1xuICBleHBvcnRzLmh5ZHJhdGVSb290ID0gZnVuY3Rpb24oYywgaCwgbykge1xuICAgIGkudXNpbmdDbGllbnRFbnRyeVBvaW50ID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIG0uaHlkcmF0ZVJvb3QoYywgaCwgbyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGkudXNpbmdDbGllbnRFbnRyeVBvaW50ID0gZmFsc2U7XG4gICAgfVxuICB9O1xufVxuIiwgIi8qIVxuICogalF1ZXJ5IEphdmFTY3JpcHQgTGlicmFyeSB2My42LjBcbiAqIGh0dHBzOi8vanF1ZXJ5LmNvbS9cbiAqXG4gKiBJbmNsdWRlcyBTaXp6bGUuanNcbiAqIGh0dHBzOi8vc2l6emxlanMuY29tL1xuICpcbiAqIENvcHlyaWdodCBPcGVuSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHBzOi8vanF1ZXJ5Lm9yZy9saWNlbnNlXG4gKlxuICogRGF0ZTogMjAyMS0wMy0wMlQxNzowOFpcbiAqL1xuKCBmdW5jdGlvbiggZ2xvYmFsLCBmYWN0b3J5ICkge1xuXG5cdFwidXNlIHN0cmljdFwiO1xuXG5cdGlmICggdHlwZW9mIG1vZHVsZSA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgbW9kdWxlLmV4cG9ydHMgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHQvLyBGb3IgQ29tbW9uSlMgYW5kIENvbW1vbkpTLWxpa2UgZW52aXJvbm1lbnRzIHdoZXJlIGEgcHJvcGVyIGB3aW5kb3dgXG5cdFx0Ly8gaXMgcHJlc2VudCwgZXhlY3V0ZSB0aGUgZmFjdG9yeSBhbmQgZ2V0IGpRdWVyeS5cblx0XHQvLyBGb3IgZW52aXJvbm1lbnRzIHRoYXQgZG8gbm90IGhhdmUgYSBgd2luZG93YCB3aXRoIGEgYGRvY3VtZW50YFxuXHRcdC8vIChzdWNoIGFzIE5vZGUuanMpLCBleHBvc2UgYSBmYWN0b3J5IGFzIG1vZHVsZS5leHBvcnRzLlxuXHRcdC8vIFRoaXMgYWNjZW50dWF0ZXMgdGhlIG5lZWQgZm9yIHRoZSBjcmVhdGlvbiBvZiBhIHJlYWwgYHdpbmRvd2AuXG5cdFx0Ly8gZS5nLiB2YXIgalF1ZXJ5ID0gcmVxdWlyZShcImpxdWVyeVwiKSh3aW5kb3cpO1xuXHRcdC8vIFNlZSB0aWNrZXQgIzE0NTQ5IGZvciBtb3JlIGluZm8uXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBnbG9iYWwuZG9jdW1lbnQgP1xuXHRcdFx0ZmFjdG9yeSggZ2xvYmFsLCB0cnVlICkgOlxuXHRcdFx0ZnVuY3Rpb24oIHcgKSB7XG5cdFx0XHRcdGlmICggIXcuZG9jdW1lbnQgKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCBcImpRdWVyeSByZXF1aXJlcyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnRcIiApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBmYWN0b3J5KCB3ICk7XG5cdFx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdGZhY3RvcnkoIGdsb2JhbCApO1xuXHR9XG5cbi8vIFBhc3MgdGhpcyBpZiB3aW5kb3cgaXMgbm90IGRlZmluZWQgeWV0XG59ICkoIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB0aGlzLCBmdW5jdGlvbiggd2luZG93LCBub0dsb2JhbCApIHtcblxuLy8gRWRnZSA8PSAxMiAtIDEzKywgRmlyZWZveCA8PTE4IC0gNDUrLCBJRSAxMCAtIDExLCBTYWZhcmkgNS4xIC0gOSssIGlPUyA2IC0gOS4xXG4vLyB0aHJvdyBleGNlcHRpb25zIHdoZW4gbm9uLXN0cmljdCBjb2RlIChlLmcuLCBBU1AuTkVUIDQuNSkgYWNjZXNzZXMgc3RyaWN0IG1vZGVcbi8vIGFyZ3VtZW50cy5jYWxsZWUuY2FsbGVyICh0cmFjLTEzMzM1KS4gQnV0IGFzIG9mIGpRdWVyeSAzLjAgKDIwMTYpLCBzdHJpY3QgbW9kZSBzaG91bGQgYmUgY29tbW9uXG4vLyBlbm91Z2ggdGhhdCBhbGwgc3VjaCBhdHRlbXB0cyBhcmUgZ3VhcmRlZCBpbiBhIHRyeSBibG9jay5cblwidXNlIHN0cmljdFwiO1xuXG52YXIgYXJyID0gW107XG5cbnZhciBnZXRQcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcblxudmFyIHNsaWNlID0gYXJyLnNsaWNlO1xuXG52YXIgZmxhdCA9IGFyci5mbGF0ID8gZnVuY3Rpb24oIGFycmF5ICkge1xuXHRyZXR1cm4gYXJyLmZsYXQuY2FsbCggYXJyYXkgKTtcbn0gOiBmdW5jdGlvbiggYXJyYXkgKSB7XG5cdHJldHVybiBhcnIuY29uY2F0LmFwcGx5KCBbXSwgYXJyYXkgKTtcbn07XG5cblxudmFyIHB1c2ggPSBhcnIucHVzaDtcblxudmFyIGluZGV4T2YgPSBhcnIuaW5kZXhPZjtcblxudmFyIGNsYXNzMnR5cGUgPSB7fTtcblxudmFyIHRvU3RyaW5nID0gY2xhc3MydHlwZS50b1N0cmluZztcblxudmFyIGhhc093biA9IGNsYXNzMnR5cGUuaGFzT3duUHJvcGVydHk7XG5cbnZhciBmblRvU3RyaW5nID0gaGFzT3duLnRvU3RyaW5nO1xuXG52YXIgT2JqZWN0RnVuY3Rpb25TdHJpbmcgPSBmblRvU3RyaW5nLmNhbGwoIE9iamVjdCApO1xuXG52YXIgc3VwcG9ydCA9IHt9O1xuXG52YXIgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uIGlzRnVuY3Rpb24oIG9iaiApIHtcblxuXHRcdC8vIFN1cHBvcnQ6IENocm9tZSA8PTU3LCBGaXJlZm94IDw9NTJcblx0XHQvLyBJbiBzb21lIGJyb3dzZXJzLCB0eXBlb2YgcmV0dXJucyBcImZ1bmN0aW9uXCIgZm9yIEhUTUwgPG9iamVjdD4gZWxlbWVudHNcblx0XHQvLyAoaS5lLiwgYHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcIm9iamVjdFwiICkgPT09IFwiZnVuY3Rpb25cImApLlxuXHRcdC8vIFdlIGRvbid0IHdhbnQgdG8gY2xhc3NpZnkgKmFueSogRE9NIG5vZGUgYXMgYSBmdW5jdGlvbi5cblx0XHQvLyBTdXBwb3J0OiBRdFdlYiA8PTMuOC41LCBXZWJLaXQgPD01MzQuMzQsIHdraHRtbHRvcGRmIHRvb2wgPD0wLjEyLjVcblx0XHQvLyBQbHVzIGZvciBvbGQgV2ViS2l0LCB0eXBlb2YgcmV0dXJucyBcImZ1bmN0aW9uXCIgZm9yIEhUTUwgY29sbGVjdGlvbnNcblx0XHQvLyAoZS5nLiwgYHR5cGVvZiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImRpdlwiKSA9PT0gXCJmdW5jdGlvblwiYCkuIChnaC00NzU2KVxuXHRcdHJldHVybiB0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIG9iai5ub2RlVHlwZSAhPT0gXCJudW1iZXJcIiAmJlxuXHRcdFx0dHlwZW9mIG9iai5pdGVtICE9PSBcImZ1bmN0aW9uXCI7XG5cdH07XG5cblxudmFyIGlzV2luZG93ID0gZnVuY3Rpb24gaXNXaW5kb3coIG9iaiApIHtcblx0XHRyZXR1cm4gb2JqICE9IG51bGwgJiYgb2JqID09PSBvYmoud2luZG93O1xuXHR9O1xuXG5cbnZhciBkb2N1bWVudCA9IHdpbmRvdy5kb2N1bWVudDtcblxuXG5cblx0dmFyIHByZXNlcnZlZFNjcmlwdEF0dHJpYnV0ZXMgPSB7XG5cdFx0dHlwZTogdHJ1ZSxcblx0XHRzcmM6IHRydWUsXG5cdFx0bm9uY2U6IHRydWUsXG5cdFx0bm9Nb2R1bGU6IHRydWVcblx0fTtcblxuXHRmdW5jdGlvbiBET01FdmFsKCBjb2RlLCBub2RlLCBkb2MgKSB7XG5cdFx0ZG9jID0gZG9jIHx8IGRvY3VtZW50O1xuXG5cdFx0dmFyIGksIHZhbCxcblx0XHRcdHNjcmlwdCA9IGRvYy5jcmVhdGVFbGVtZW50KCBcInNjcmlwdFwiICk7XG5cblx0XHRzY3JpcHQudGV4dCA9IGNvZGU7XG5cdFx0aWYgKCBub2RlICkge1xuXHRcdFx0Zm9yICggaSBpbiBwcmVzZXJ2ZWRTY3JpcHRBdHRyaWJ1dGVzICkge1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggNjQrLCBFZGdlIDE4K1xuXHRcdFx0XHQvLyBTb21lIGJyb3dzZXJzIGRvbid0IHN1cHBvcnQgdGhlIFwibm9uY2VcIiBwcm9wZXJ0eSBvbiBzY3JpcHRzLlxuXHRcdFx0XHQvLyBPbiB0aGUgb3RoZXIgaGFuZCwganVzdCB1c2luZyBgZ2V0QXR0cmlidXRlYCBpcyBub3QgZW5vdWdoIGFzXG5cdFx0XHRcdC8vIHRoZSBgbm9uY2VgIGF0dHJpYnV0ZSBpcyByZXNldCB0byBhbiBlbXB0eSBzdHJpbmcgd2hlbmV2ZXIgaXRcblx0XHRcdFx0Ly8gYmVjb21lcyBicm93c2luZy1jb250ZXh0IGNvbm5lY3RlZC5cblx0XHRcdFx0Ly8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvaHRtbC9pc3N1ZXMvMjM2OVxuXHRcdFx0XHQvLyBTZWUgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jbm9uY2UtYXR0cmlidXRlc1xuXHRcdFx0XHQvLyBUaGUgYG5vZGUuZ2V0QXR0cmlidXRlYCBjaGVjayB3YXMgYWRkZWQgZm9yIHRoZSBzYWtlIG9mXG5cdFx0XHRcdC8vIGBqUXVlcnkuZ2xvYmFsRXZhbGAgc28gdGhhdCBpdCBjYW4gZmFrZSBhIG5vbmNlLWNvbnRhaW5pbmcgbm9kZVxuXHRcdFx0XHQvLyB2aWEgYW4gb2JqZWN0LlxuXHRcdFx0XHR2YWwgPSBub2RlWyBpIF0gfHwgbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoIGkgKTtcblx0XHRcdFx0aWYgKCB2YWwgKSB7XG5cdFx0XHRcdFx0c2NyaXB0LnNldEF0dHJpYnV0ZSggaSwgdmFsICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0ZG9jLmhlYWQuYXBwZW5kQ2hpbGQoIHNjcmlwdCApLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHNjcmlwdCApO1xuXHR9XG5cblxuZnVuY3Rpb24gdG9UeXBlKCBvYmogKSB7XG5cdGlmICggb2JqID09IG51bGwgKSB7XG5cdFx0cmV0dXJuIG9iaiArIFwiXCI7XG5cdH1cblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9Mi4zIG9ubHkgKGZ1bmN0aW9uaXNoIFJlZ0V4cClcblx0cmV0dXJuIHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIG9iaiA9PT0gXCJmdW5jdGlvblwiID9cblx0XHRjbGFzczJ0eXBlWyB0b1N0cmluZy5jYWxsKCBvYmogKSBdIHx8IFwib2JqZWN0XCIgOlxuXHRcdHR5cGVvZiBvYmo7XG59XG4vKiBnbG9iYWwgU3ltYm9sICovXG4vLyBEZWZpbmluZyB0aGlzIGdsb2JhbCBpbiAuZXNsaW50cmMuanNvbiB3b3VsZCBjcmVhdGUgYSBkYW5nZXIgb2YgdXNpbmcgdGhlIGdsb2JhbFxuLy8gdW5ndWFyZGVkIGluIGFub3RoZXIgcGxhY2UsIGl0IHNlZW1zIHNhZmVyIHRvIGRlZmluZSBnbG9iYWwgb25seSBmb3IgdGhpcyBtb2R1bGVcblxuXG5cbnZhclxuXHR2ZXJzaW9uID0gXCIzLjYuMFwiLFxuXG5cdC8vIERlZmluZSBhIGxvY2FsIGNvcHkgb2YgalF1ZXJ5XG5cdGpRdWVyeSA9IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCApIHtcblxuXHRcdC8vIFRoZSBqUXVlcnkgb2JqZWN0IGlzIGFjdHVhbGx5IGp1c3QgdGhlIGluaXQgY29uc3RydWN0b3IgJ2VuaGFuY2VkJ1xuXHRcdC8vIE5lZWQgaW5pdCBpZiBqUXVlcnkgaXMgY2FsbGVkIChqdXN0IGFsbG93IGVycm9yIHRvIGJlIHRocm93biBpZiBub3QgaW5jbHVkZWQpXG5cdFx0cmV0dXJuIG5ldyBqUXVlcnkuZm4uaW5pdCggc2VsZWN0b3IsIGNvbnRleHQgKTtcblx0fTtcblxualF1ZXJ5LmZuID0galF1ZXJ5LnByb3RvdHlwZSA9IHtcblxuXHQvLyBUaGUgY3VycmVudCB2ZXJzaW9uIG9mIGpRdWVyeSBiZWluZyB1c2VkXG5cdGpxdWVyeTogdmVyc2lvbixcblxuXHRjb25zdHJ1Y3RvcjogalF1ZXJ5LFxuXG5cdC8vIFRoZSBkZWZhdWx0IGxlbmd0aCBvZiBhIGpRdWVyeSBvYmplY3QgaXMgMFxuXHRsZW5ndGg6IDAsXG5cblx0dG9BcnJheTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHNsaWNlLmNhbGwoIHRoaXMgKTtcblx0fSxcblxuXHQvLyBHZXQgdGhlIE50aCBlbGVtZW50IGluIHRoZSBtYXRjaGVkIGVsZW1lbnQgc2V0IE9SXG5cdC8vIEdldCB0aGUgd2hvbGUgbWF0Y2hlZCBlbGVtZW50IHNldCBhcyBhIGNsZWFuIGFycmF5XG5cdGdldDogZnVuY3Rpb24oIG51bSApIHtcblxuXHRcdC8vIFJldHVybiBhbGwgdGhlIGVsZW1lbnRzIGluIGEgY2xlYW4gYXJyYXlcblx0XHRpZiAoIG51bSA9PSBudWxsICkge1xuXHRcdFx0cmV0dXJuIHNsaWNlLmNhbGwoIHRoaXMgKTtcblx0XHR9XG5cblx0XHQvLyBSZXR1cm4ganVzdCB0aGUgb25lIGVsZW1lbnQgZnJvbSB0aGUgc2V0XG5cdFx0cmV0dXJuIG51bSA8IDAgPyB0aGlzWyBudW0gKyB0aGlzLmxlbmd0aCBdIDogdGhpc1sgbnVtIF07XG5cdH0sXG5cblx0Ly8gVGFrZSBhbiBhcnJheSBvZiBlbGVtZW50cyBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFja1xuXHQvLyAocmV0dXJuaW5nIHRoZSBuZXcgbWF0Y2hlZCBlbGVtZW50IHNldClcblx0cHVzaFN0YWNrOiBmdW5jdGlvbiggZWxlbXMgKSB7XG5cblx0XHQvLyBCdWlsZCBhIG5ldyBqUXVlcnkgbWF0Y2hlZCBlbGVtZW50IHNldFxuXHRcdHZhciByZXQgPSBqUXVlcnkubWVyZ2UoIHRoaXMuY29uc3RydWN0b3IoKSwgZWxlbXMgKTtcblxuXHRcdC8vIEFkZCB0aGUgb2xkIG9iamVjdCBvbnRvIHRoZSBzdGFjayAoYXMgYSByZWZlcmVuY2UpXG5cdFx0cmV0LnByZXZPYmplY3QgPSB0aGlzO1xuXG5cdFx0Ly8gUmV0dXJuIHRoZSBuZXdseS1mb3JtZWQgZWxlbWVudCBzZXRcblx0XHRyZXR1cm4gcmV0O1xuXHR9LFxuXG5cdC8vIEV4ZWN1dGUgYSBjYWxsYmFjayBmb3IgZXZlcnkgZWxlbWVudCBpbiB0aGUgbWF0Y2hlZCBzZXQuXG5cdGVhY2g6IGZ1bmN0aW9uKCBjYWxsYmFjayApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmVhY2goIHRoaXMsIGNhbGxiYWNrICk7XG5cdH0sXG5cblx0bWFwOiBmdW5jdGlvbiggY2FsbGJhY2sgKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqUXVlcnkubWFwKCB0aGlzLCBmdW5jdGlvbiggZWxlbSwgaSApIHtcblx0XHRcdHJldHVybiBjYWxsYmFjay5jYWxsKCBlbGVtLCBpLCBlbGVtICk7XG5cdFx0fSApICk7XG5cdH0sXG5cblx0c2xpY2U6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggc2xpY2UuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApICk7XG5cdH0sXG5cblx0Zmlyc3Q6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLmVxKCAwICk7XG5cdH0sXG5cblx0bGFzdDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMuZXEoIC0xICk7XG5cdH0sXG5cblx0ZXZlbjogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqUXVlcnkuZ3JlcCggdGhpcywgZnVuY3Rpb24oIF9lbGVtLCBpICkge1xuXHRcdFx0cmV0dXJuICggaSArIDEgKSAlIDI7XG5cdFx0fSApICk7XG5cdH0sXG5cblx0b2RkOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGpRdWVyeS5ncmVwKCB0aGlzLCBmdW5jdGlvbiggX2VsZW0sIGkgKSB7XG5cdFx0XHRyZXR1cm4gaSAlIDI7XG5cdFx0fSApICk7XG5cdH0sXG5cblx0ZXE6IGZ1bmN0aW9uKCBpICkge1xuXHRcdHZhciBsZW4gPSB0aGlzLmxlbmd0aCxcblx0XHRcdGogPSAraSArICggaSA8IDAgPyBsZW4gOiAwICk7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqID49IDAgJiYgaiA8IGxlbiA/IFsgdGhpc1sgaiBdIF0gOiBbXSApO1xuXHR9LFxuXG5cdGVuZDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMucHJldk9iamVjdCB8fCB0aGlzLmNvbnN0cnVjdG9yKCk7XG5cdH0sXG5cblx0Ly8gRm9yIGludGVybmFsIHVzZSBvbmx5LlxuXHQvLyBCZWhhdmVzIGxpa2UgYW4gQXJyYXkncyBtZXRob2QsIG5vdCBsaWtlIGEgalF1ZXJ5IG1ldGhvZC5cblx0cHVzaDogcHVzaCxcblx0c29ydDogYXJyLnNvcnQsXG5cdHNwbGljZTogYXJyLnNwbGljZVxufTtcblxualF1ZXJ5LmV4dGVuZCA9IGpRdWVyeS5mbi5leHRlbmQgPSBmdW5jdGlvbigpIHtcblx0dmFyIG9wdGlvbnMsIG5hbWUsIHNyYywgY29weSwgY29weUlzQXJyYXksIGNsb25lLFxuXHRcdHRhcmdldCA9IGFyZ3VtZW50c1sgMCBdIHx8IHt9LFxuXHRcdGkgPSAxLFxuXHRcdGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG5cdFx0ZGVlcCA9IGZhbHNlO1xuXG5cdC8vIEhhbmRsZSBhIGRlZXAgY29weSBzaXR1YXRpb25cblx0aWYgKCB0eXBlb2YgdGFyZ2V0ID09PSBcImJvb2xlYW5cIiApIHtcblx0XHRkZWVwID0gdGFyZ2V0O1xuXG5cdFx0Ly8gU2tpcCB0aGUgYm9vbGVhbiBhbmQgdGhlIHRhcmdldFxuXHRcdHRhcmdldCA9IGFyZ3VtZW50c1sgaSBdIHx8IHt9O1xuXHRcdGkrKztcblx0fVxuXG5cdC8vIEhhbmRsZSBjYXNlIHdoZW4gdGFyZ2V0IGlzIGEgc3RyaW5nIG9yIHNvbWV0aGluZyAocG9zc2libGUgaW4gZGVlcCBjb3B5KVxuXHRpZiAoIHR5cGVvZiB0YXJnZXQgIT09IFwib2JqZWN0XCIgJiYgIWlzRnVuY3Rpb24oIHRhcmdldCApICkge1xuXHRcdHRhcmdldCA9IHt9O1xuXHR9XG5cblx0Ly8gRXh0ZW5kIGpRdWVyeSBpdHNlbGYgaWYgb25seSBvbmUgYXJndW1lbnQgaXMgcGFzc2VkXG5cdGlmICggaSA9PT0gbGVuZ3RoICkge1xuXHRcdHRhcmdldCA9IHRoaXM7XG5cdFx0aS0tO1xuXHR9XG5cblx0Zm9yICggOyBpIDwgbGVuZ3RoOyBpKysgKSB7XG5cblx0XHQvLyBPbmx5IGRlYWwgd2l0aCBub24tbnVsbC91bmRlZmluZWQgdmFsdWVzXG5cdFx0aWYgKCAoIG9wdGlvbnMgPSBhcmd1bWVudHNbIGkgXSApICE9IG51bGwgKSB7XG5cblx0XHRcdC8vIEV4dGVuZCB0aGUgYmFzZSBvYmplY3Rcblx0XHRcdGZvciAoIG5hbWUgaW4gb3B0aW9ucyApIHtcblx0XHRcdFx0Y29weSA9IG9wdGlvbnNbIG5hbWUgXTtcblxuXHRcdFx0XHQvLyBQcmV2ZW50IE9iamVjdC5wcm90b3R5cGUgcG9sbHV0aW9uXG5cdFx0XHRcdC8vIFByZXZlbnQgbmV2ZXItZW5kaW5nIGxvb3Bcblx0XHRcdFx0aWYgKCBuYW1lID09PSBcIl9fcHJvdG9fX1wiIHx8IHRhcmdldCA9PT0gY29weSApIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFJlY3Vyc2UgaWYgd2UncmUgbWVyZ2luZyBwbGFpbiBvYmplY3RzIG9yIGFycmF5c1xuXHRcdFx0XHRpZiAoIGRlZXAgJiYgY29weSAmJiAoIGpRdWVyeS5pc1BsYWluT2JqZWN0KCBjb3B5ICkgfHxcblx0XHRcdFx0XHQoIGNvcHlJc0FycmF5ID0gQXJyYXkuaXNBcnJheSggY29weSApICkgKSApIHtcblx0XHRcdFx0XHRzcmMgPSB0YXJnZXRbIG5hbWUgXTtcblxuXHRcdFx0XHRcdC8vIEVuc3VyZSBwcm9wZXIgdHlwZSBmb3IgdGhlIHNvdXJjZSB2YWx1ZVxuXHRcdFx0XHRcdGlmICggY29weUlzQXJyYXkgJiYgIUFycmF5LmlzQXJyYXkoIHNyYyApICkge1xuXHRcdFx0XHRcdFx0Y2xvbmUgPSBbXTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKCAhY29weUlzQXJyYXkgJiYgIWpRdWVyeS5pc1BsYWluT2JqZWN0KCBzcmMgKSApIHtcblx0XHRcdFx0XHRcdGNsb25lID0ge307XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGNsb25lID0gc3JjO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb3B5SXNBcnJheSA9IGZhbHNlO1xuXG5cdFx0XHRcdFx0Ly8gTmV2ZXIgbW92ZSBvcmlnaW5hbCBvYmplY3RzLCBjbG9uZSB0aGVtXG5cdFx0XHRcdFx0dGFyZ2V0WyBuYW1lIF0gPSBqUXVlcnkuZXh0ZW5kKCBkZWVwLCBjbG9uZSwgY29weSApO1xuXG5cdFx0XHRcdC8vIERvbid0IGJyaW5nIGluIHVuZGVmaW5lZCB2YWx1ZXNcblx0XHRcdFx0fSBlbHNlIGlmICggY29weSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdHRhcmdldFsgbmFtZSBdID0gY29weTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIFJldHVybiB0aGUgbW9kaWZpZWQgb2JqZWN0XG5cdHJldHVybiB0YXJnZXQ7XG59O1xuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cblx0Ly8gVW5pcXVlIGZvciBlYWNoIGNvcHkgb2YgalF1ZXJ5IG9uIHRoZSBwYWdlXG5cdGV4cGFuZG86IFwialF1ZXJ5XCIgKyAoIHZlcnNpb24gKyBNYXRoLnJhbmRvbSgpICkucmVwbGFjZSggL1xcRC9nLCBcIlwiICksXG5cblx0Ly8gQXNzdW1lIGpRdWVyeSBpcyByZWFkeSB3aXRob3V0IHRoZSByZWFkeSBtb2R1bGVcblx0aXNSZWFkeTogdHJ1ZSxcblxuXHRlcnJvcjogZnVuY3Rpb24oIG1zZyApIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoIG1zZyApO1xuXHR9LFxuXG5cdG5vb3A6IGZ1bmN0aW9uKCkge30sXG5cblx0aXNQbGFpbk9iamVjdDogZnVuY3Rpb24oIG9iaiApIHtcblx0XHR2YXIgcHJvdG8sIEN0b3I7XG5cblx0XHQvLyBEZXRlY3Qgb2J2aW91cyBuZWdhdGl2ZXNcblx0XHQvLyBVc2UgdG9TdHJpbmcgaW5zdGVhZCBvZiBqUXVlcnkudHlwZSB0byBjYXRjaCBob3N0IG9iamVjdHNcblx0XHRpZiAoICFvYmogfHwgdG9TdHJpbmcuY2FsbCggb2JqICkgIT09IFwiW29iamVjdCBPYmplY3RdXCIgKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cHJvdG8gPSBnZXRQcm90byggb2JqICk7XG5cblx0XHQvLyBPYmplY3RzIHdpdGggbm8gcHJvdG90eXBlIChlLmcuLCBgT2JqZWN0LmNyZWF0ZSggbnVsbCApYCkgYXJlIHBsYWluXG5cdFx0aWYgKCAhcHJvdG8gKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHQvLyBPYmplY3RzIHdpdGggcHJvdG90eXBlIGFyZSBwbGFpbiBpZmYgdGhleSB3ZXJlIGNvbnN0cnVjdGVkIGJ5IGEgZ2xvYmFsIE9iamVjdCBmdW5jdGlvblxuXHRcdEN0b3IgPSBoYXNPd24uY2FsbCggcHJvdG8sIFwiY29uc3RydWN0b3JcIiApICYmIHByb3RvLmNvbnN0cnVjdG9yO1xuXHRcdHJldHVybiB0eXBlb2YgQ3RvciA9PT0gXCJmdW5jdGlvblwiICYmIGZuVG9TdHJpbmcuY2FsbCggQ3RvciApID09PSBPYmplY3RGdW5jdGlvblN0cmluZztcblx0fSxcblxuXHRpc0VtcHR5T2JqZWN0OiBmdW5jdGlvbiggb2JqICkge1xuXHRcdHZhciBuYW1lO1xuXG5cdFx0Zm9yICggbmFtZSBpbiBvYmogKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHRcdHJldHVybiB0cnVlO1xuXHR9LFxuXG5cdC8vIEV2YWx1YXRlcyBhIHNjcmlwdCBpbiBhIHByb3ZpZGVkIGNvbnRleHQ7IGZhbGxzIGJhY2sgdG8gdGhlIGdsb2JhbCBvbmVcblx0Ly8gaWYgbm90IHNwZWNpZmllZC5cblx0Z2xvYmFsRXZhbDogZnVuY3Rpb24oIGNvZGUsIG9wdGlvbnMsIGRvYyApIHtcblx0XHRET01FdmFsKCBjb2RlLCB7IG5vbmNlOiBvcHRpb25zICYmIG9wdGlvbnMubm9uY2UgfSwgZG9jICk7XG5cdH0sXG5cblx0ZWFjaDogZnVuY3Rpb24oIG9iaiwgY2FsbGJhY2sgKSB7XG5cdFx0dmFyIGxlbmd0aCwgaSA9IDA7XG5cblx0XHRpZiAoIGlzQXJyYXlMaWtlKCBvYmogKSApIHtcblx0XHRcdGxlbmd0aCA9IG9iai5sZW5ndGg7XG5cdFx0XHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHtcblx0XHRcdFx0aWYgKCBjYWxsYmFjay5jYWxsKCBvYmpbIGkgXSwgaSwgb2JqWyBpIF0gKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Zm9yICggaSBpbiBvYmogKSB7XG5cdFx0XHRcdGlmICggY2FsbGJhY2suY2FsbCggb2JqWyBpIF0sIGksIG9ialsgaSBdICkgPT09IGZhbHNlICkge1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9iajtcblx0fSxcblxuXHQvLyByZXN1bHRzIGlzIGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5XG5cdG1ha2VBcnJheTogZnVuY3Rpb24oIGFyciwgcmVzdWx0cyApIHtcblx0XHR2YXIgcmV0ID0gcmVzdWx0cyB8fCBbXTtcblxuXHRcdGlmICggYXJyICE9IG51bGwgKSB7XG5cdFx0XHRpZiAoIGlzQXJyYXlMaWtlKCBPYmplY3QoIGFyciApICkgKSB7XG5cdFx0XHRcdGpRdWVyeS5tZXJnZSggcmV0LFxuXHRcdFx0XHRcdHR5cGVvZiBhcnIgPT09IFwic3RyaW5nXCIgP1xuXHRcdFx0XHRcdFx0WyBhcnIgXSA6IGFyclxuXHRcdFx0XHQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cHVzaC5jYWxsKCByZXQsIGFyciApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiByZXQ7XG5cdH0sXG5cblx0aW5BcnJheTogZnVuY3Rpb24oIGVsZW0sIGFyciwgaSApIHtcblx0XHRyZXR1cm4gYXJyID09IG51bGwgPyAtMSA6IGluZGV4T2YuY2FsbCggYXJyLCBlbGVtLCBpICk7XG5cdH0sXG5cblx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMCBvbmx5LCBQaGFudG9tSlMgMSBvbmx5XG5cdC8vIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0bWVyZ2U6IGZ1bmN0aW9uKCBmaXJzdCwgc2Vjb25kICkge1xuXHRcdHZhciBsZW4gPSArc2Vjb25kLmxlbmd0aCxcblx0XHRcdGogPSAwLFxuXHRcdFx0aSA9IGZpcnN0Lmxlbmd0aDtcblxuXHRcdGZvciAoIDsgaiA8IGxlbjsgaisrICkge1xuXHRcdFx0Zmlyc3RbIGkrKyBdID0gc2Vjb25kWyBqIF07XG5cdFx0fVxuXG5cdFx0Zmlyc3QubGVuZ3RoID0gaTtcblxuXHRcdHJldHVybiBmaXJzdDtcblx0fSxcblxuXHRncmVwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrLCBpbnZlcnQgKSB7XG5cdFx0dmFyIGNhbGxiYWNrSW52ZXJzZSxcblx0XHRcdG1hdGNoZXMgPSBbXSxcblx0XHRcdGkgPSAwLFxuXHRcdFx0bGVuZ3RoID0gZWxlbXMubGVuZ3RoLFxuXHRcdFx0Y2FsbGJhY2tFeHBlY3QgPSAhaW52ZXJ0O1xuXG5cdFx0Ly8gR28gdGhyb3VnaCB0aGUgYXJyYXksIG9ubHkgc2F2aW5nIHRoZSBpdGVtc1xuXHRcdC8vIHRoYXQgcGFzcyB0aGUgdmFsaWRhdG9yIGZ1bmN0aW9uXG5cdFx0Zm9yICggOyBpIDwgbGVuZ3RoOyBpKysgKSB7XG5cdFx0XHRjYWxsYmFja0ludmVyc2UgPSAhY2FsbGJhY2soIGVsZW1zWyBpIF0sIGkgKTtcblx0XHRcdGlmICggY2FsbGJhY2tJbnZlcnNlICE9PSBjYWxsYmFja0V4cGVjdCApIHtcblx0XHRcdFx0bWF0Y2hlcy5wdXNoKCBlbGVtc1sgaSBdICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG1hdGNoZXM7XG5cdH0sXG5cblx0Ly8gYXJnIGlzIGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5XG5cdG1hcDogZnVuY3Rpb24oIGVsZW1zLCBjYWxsYmFjaywgYXJnICkge1xuXHRcdHZhciBsZW5ndGgsIHZhbHVlLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRyZXQgPSBbXTtcblxuXHRcdC8vIEdvIHRocm91Z2ggdGhlIGFycmF5LCB0cmFuc2xhdGluZyBlYWNoIG9mIHRoZSBpdGVtcyB0byB0aGVpciBuZXcgdmFsdWVzXG5cdFx0aWYgKCBpc0FycmF5TGlrZSggZWxlbXMgKSApIHtcblx0XHRcdGxlbmd0aCA9IGVsZW1zLmxlbmd0aDtcblx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xuXHRcdFx0XHR2YWx1ZSA9IGNhbGxiYWNrKCBlbGVtc1sgaSBdLCBpLCBhcmcgKTtcblxuXHRcdFx0XHRpZiAoIHZhbHVlICE9IG51bGwgKSB7XG5cdFx0XHRcdFx0cmV0LnB1c2goIHZhbHVlICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdC8vIEdvIHRocm91Z2ggZXZlcnkga2V5IG9uIHRoZSBvYmplY3QsXG5cdFx0fSBlbHNlIHtcblx0XHRcdGZvciAoIGkgaW4gZWxlbXMgKSB7XG5cdFx0XHRcdHZhbHVlID0gY2FsbGJhY2soIGVsZW1zWyBpIF0sIGksIGFyZyApO1xuXG5cdFx0XHRcdGlmICggdmFsdWUgIT0gbnVsbCApIHtcblx0XHRcdFx0XHRyZXQucHVzaCggdmFsdWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEZsYXR0ZW4gYW55IG5lc3RlZCBhcnJheXNcblx0XHRyZXR1cm4gZmxhdCggcmV0ICk7XG5cdH0sXG5cblx0Ly8gQSBnbG9iYWwgR1VJRCBjb3VudGVyIGZvciBvYmplY3RzXG5cdGd1aWQ6IDEsXG5cblx0Ly8galF1ZXJ5LnN1cHBvcnQgaXMgbm90IHVzZWQgaW4gQ29yZSBidXQgb3RoZXIgcHJvamVjdHMgYXR0YWNoIHRoZWlyXG5cdC8vIHByb3BlcnRpZXMgdG8gaXQgc28gaXQgbmVlZHMgdG8gZXhpc3QuXG5cdHN1cHBvcnQ6IHN1cHBvcnRcbn0gKTtcblxuaWYgKCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgKSB7XG5cdGpRdWVyeS5mblsgU3ltYm9sLml0ZXJhdG9yIF0gPSBhcnJbIFN5bWJvbC5pdGVyYXRvciBdO1xufVxuXG4vLyBQb3B1bGF0ZSB0aGUgY2xhc3MydHlwZSBtYXBcbmpRdWVyeS5lYWNoKCBcIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3IgU3ltYm9sXCIuc3BsaXQoIFwiIFwiICksXG5cdGZ1bmN0aW9uKCBfaSwgbmFtZSApIHtcblx0XHRjbGFzczJ0eXBlWyBcIltvYmplY3QgXCIgKyBuYW1lICsgXCJdXCIgXSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcblx0fSApO1xuXG5mdW5jdGlvbiBpc0FycmF5TGlrZSggb2JqICkge1xuXG5cdC8vIFN1cHBvcnQ6IHJlYWwgaU9TIDguMiBvbmx5IChub3QgcmVwcm9kdWNpYmxlIGluIHNpbXVsYXRvcilcblx0Ly8gYGluYCBjaGVjayB1c2VkIHRvIHByZXZlbnQgSklUIGVycm9yIChnaC0yMTQ1KVxuXHQvLyBoYXNPd24gaXNuJ3QgdXNlZCBoZXJlIGR1ZSB0byBmYWxzZSBuZWdhdGl2ZXNcblx0Ly8gcmVnYXJkaW5nIE5vZGVsaXN0IGxlbmd0aCBpbiBJRVxuXHR2YXIgbGVuZ3RoID0gISFvYmogJiYgXCJsZW5ndGhcIiBpbiBvYmogJiYgb2JqLmxlbmd0aCxcblx0XHR0eXBlID0gdG9UeXBlKCBvYmogKTtcblxuXHRpZiAoIGlzRnVuY3Rpb24oIG9iaiApIHx8IGlzV2luZG93KCBvYmogKSApIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRyZXR1cm4gdHlwZSA9PT0gXCJhcnJheVwiIHx8IGxlbmd0aCA9PT0gMCB8fFxuXHRcdHR5cGVvZiBsZW5ndGggPT09IFwibnVtYmVyXCIgJiYgbGVuZ3RoID4gMCAmJiAoIGxlbmd0aCAtIDEgKSBpbiBvYmo7XG59XG52YXIgU2l6emxlID1cbi8qIVxuICogU2l6emxlIENTUyBTZWxlY3RvciBFbmdpbmUgdjIuMy42XG4gKiBodHRwczovL3NpenpsZWpzLmNvbS9cbiAqXG4gKiBDb3B5cmlnaHQgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHBzOi8vanMuZm91bmRhdGlvbi9cbiAqXG4gKiBEYXRlOiAyMDIxLTAyLTE2XG4gKi9cbiggZnVuY3Rpb24oIHdpbmRvdyApIHtcbnZhciBpLFxuXHRzdXBwb3J0LFxuXHRFeHByLFxuXHRnZXRUZXh0LFxuXHRpc1hNTCxcblx0dG9rZW5pemUsXG5cdGNvbXBpbGUsXG5cdHNlbGVjdCxcblx0b3V0ZXJtb3N0Q29udGV4dCxcblx0c29ydElucHV0LFxuXHRoYXNEdXBsaWNhdGUsXG5cblx0Ly8gTG9jYWwgZG9jdW1lbnQgdmFyc1xuXHRzZXREb2N1bWVudCxcblx0ZG9jdW1lbnQsXG5cdGRvY0VsZW0sXG5cdGRvY3VtZW50SXNIVE1MLFxuXHRyYnVnZ3lRU0EsXG5cdHJidWdneU1hdGNoZXMsXG5cdG1hdGNoZXMsXG5cdGNvbnRhaW5zLFxuXG5cdC8vIEluc3RhbmNlLXNwZWNpZmljIGRhdGFcblx0ZXhwYW5kbyA9IFwic2l6emxlXCIgKyAxICogbmV3IERhdGUoKSxcblx0cHJlZmVycmVkRG9jID0gd2luZG93LmRvY3VtZW50LFxuXHRkaXJydW5zID0gMCxcblx0ZG9uZSA9IDAsXG5cdGNsYXNzQ2FjaGUgPSBjcmVhdGVDYWNoZSgpLFxuXHR0b2tlbkNhY2hlID0gY3JlYXRlQ2FjaGUoKSxcblx0Y29tcGlsZXJDYWNoZSA9IGNyZWF0ZUNhY2hlKCksXG5cdG5vbm5hdGl2ZVNlbGVjdG9yQ2FjaGUgPSBjcmVhdGVDYWNoZSgpLFxuXHRzb3J0T3JkZXIgPSBmdW5jdGlvbiggYSwgYiApIHtcblx0XHRpZiAoIGEgPT09IGIgKSB7XG5cdFx0XHRoYXNEdXBsaWNhdGUgPSB0cnVlO1xuXHRcdH1cblx0XHRyZXR1cm4gMDtcblx0fSxcblxuXHQvLyBJbnN0YW5jZSBtZXRob2RzXG5cdGhhc093biA9ICgge30gKS5oYXNPd25Qcm9wZXJ0eSxcblx0YXJyID0gW10sXG5cdHBvcCA9IGFyci5wb3AsXG5cdHB1c2hOYXRpdmUgPSBhcnIucHVzaCxcblx0cHVzaCA9IGFyci5wdXNoLFxuXHRzbGljZSA9IGFyci5zbGljZSxcblxuXHQvLyBVc2UgYSBzdHJpcHBlZC1kb3duIGluZGV4T2YgYXMgaXQncyBmYXN0ZXIgdGhhbiBuYXRpdmVcblx0Ly8gaHR0cHM6Ly9qc3BlcmYuY29tL3Rob3ItaW5kZXhvZi12cy1mb3IvNVxuXHRpbmRleE9mID0gZnVuY3Rpb24oIGxpc3QsIGVsZW0gKSB7XG5cdFx0dmFyIGkgPSAwLFxuXHRcdFx0bGVuID0gbGlzdC5sZW5ndGg7XG5cdFx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRpZiAoIGxpc3RbIGkgXSA9PT0gZWxlbSApIHtcblx0XHRcdFx0cmV0dXJuIGk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiAtMTtcblx0fSxcblxuXHRib29sZWFucyA9IFwiY2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufFwiICtcblx0XHRcImlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWRcIixcblxuXHQvLyBSZWd1bGFyIGV4cHJlc3Npb25zXG5cblx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1zZWxlY3RvcnMvI3doaXRlc3BhY2Vcblx0d2hpdGVzcGFjZSA9IFwiW1xcXFx4MjBcXFxcdFxcXFxyXFxcXG5cXFxcZl1cIixcblxuXHQvLyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXN5bnRheC0zLyNpZGVudC10b2tlbi1kaWFncmFtXG5cdGlkZW50aWZpZXIgPSBcIig/OlxcXFxcXFxcW1xcXFxkYS1mQS1GXXsxLDZ9XCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcIj98XFxcXFxcXFxbXlxcXFxyXFxcXG5cXFxcZl18W1xcXFx3LV18W15cXDAtXFxcXHg3Zl0pK1wiLFxuXG5cdC8vIEF0dHJpYnV0ZSBzZWxlY3RvcnM6IGh0dHA6Ly93d3cudzMub3JnL1RSL3NlbGVjdG9ycy8jYXR0cmlidXRlLXNlbGVjdG9yc1xuXHRhdHRyaWJ1dGVzID0gXCJcXFxcW1wiICsgd2hpdGVzcGFjZSArIFwiKihcIiArIGlkZW50aWZpZXIgKyBcIikoPzpcIiArIHdoaXRlc3BhY2UgK1xuXG5cdFx0Ly8gT3BlcmF0b3IgKGNhcHR1cmUgMilcblx0XHRcIiooWypeJHwhfl0/PSlcIiArIHdoaXRlc3BhY2UgK1xuXG5cdFx0Ly8gXCJBdHRyaWJ1dGUgdmFsdWVzIG11c3QgYmUgQ1NTIGlkZW50aWZpZXJzIFtjYXB0dXJlIDVdXG5cdFx0Ly8gb3Igc3RyaW5ncyBbY2FwdHVyZSAzIG9yIGNhcHR1cmUgNF1cIlxuXHRcdFwiKig/OicoKD86XFxcXFxcXFwufFteXFxcXFxcXFwnXSkqKSd8XFxcIigoPzpcXFxcXFxcXC58W15cXFxcXFxcXFxcXCJdKSopXFxcInwoXCIgKyBpZGVudGlmaWVyICsgXCIpKXwpXCIgK1xuXHRcdHdoaXRlc3BhY2UgKyBcIipcXFxcXVwiLFxuXG5cdHBzZXVkb3MgPSBcIjooXCIgKyBpZGVudGlmaWVyICsgXCIpKD86XFxcXCgoXCIgK1xuXG5cdFx0Ly8gVG8gcmVkdWNlIHRoZSBudW1iZXIgb2Ygc2VsZWN0b3JzIG5lZWRpbmcgdG9rZW5pemUgaW4gdGhlIHByZUZpbHRlciwgcHJlZmVyIGFyZ3VtZW50czpcblx0XHQvLyAxLiBxdW90ZWQgKGNhcHR1cmUgMzsgY2FwdHVyZSA0IG9yIGNhcHR1cmUgNSlcblx0XHRcIignKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcJ10pKiknfFxcXCIoKD86XFxcXFxcXFwufFteXFxcXFxcXFxcXFwiXSkqKVxcXCIpfFwiICtcblxuXHRcdC8vIDIuIHNpbXBsZSAoY2FwdHVyZSA2KVxuXHRcdFwiKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcKClbXFxcXF1dfFwiICsgYXR0cmlidXRlcyArIFwiKSopfFwiICtcblxuXHRcdC8vIDMuIGFueXRoaW5nIGVsc2UgKGNhcHR1cmUgMilcblx0XHRcIi4qXCIgK1xuXHRcdFwiKVxcXFwpfClcIixcblxuXHQvLyBMZWFkaW5nIGFuZCBub24tZXNjYXBlZCB0cmFpbGluZyB3aGl0ZXNwYWNlLCBjYXB0dXJpbmcgc29tZSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXJzIHByZWNlZGluZyB0aGUgbGF0dGVyXG5cdHJ3aGl0ZXNwYWNlID0gbmV3IFJlZ0V4cCggd2hpdGVzcGFjZSArIFwiK1wiLCBcImdcIiApLFxuXHRydHJpbSA9IG5ldyBSZWdFeHAoIFwiXlwiICsgd2hpdGVzcGFjZSArIFwiK3woKD86XnxbXlxcXFxcXFxcXSkoPzpcXFxcXFxcXC4pKilcIiArXG5cdFx0d2hpdGVzcGFjZSArIFwiKyRcIiwgXCJnXCIgKSxcblxuXHRyY29tbWEgPSBuZXcgUmVnRXhwKCBcIl5cIiArIHdoaXRlc3BhY2UgKyBcIiosXCIgKyB3aGl0ZXNwYWNlICsgXCIqXCIgKSxcblx0cmNvbWJpbmF0b3JzID0gbmV3IFJlZ0V4cCggXCJeXCIgKyB3aGl0ZXNwYWNlICsgXCIqKFs+K35dfFwiICsgd2hpdGVzcGFjZSArIFwiKVwiICsgd2hpdGVzcGFjZSArXG5cdFx0XCIqXCIgKSxcblx0cmRlc2NlbmQgPSBuZXcgUmVnRXhwKCB3aGl0ZXNwYWNlICsgXCJ8PlwiICksXG5cblx0cnBzZXVkbyA9IG5ldyBSZWdFeHAoIHBzZXVkb3MgKSxcblx0cmlkZW50aWZpZXIgPSBuZXcgUmVnRXhwKCBcIl5cIiArIGlkZW50aWZpZXIgKyBcIiRcIiApLFxuXG5cdG1hdGNoRXhwciA9IHtcblx0XHRcIklEXCI6IG5ldyBSZWdFeHAoIFwiXiMoXCIgKyBpZGVudGlmaWVyICsgXCIpXCIgKSxcblx0XHRcIkNMQVNTXCI6IG5ldyBSZWdFeHAoIFwiXlxcXFwuKFwiICsgaWRlbnRpZmllciArIFwiKVwiICksXG5cdFx0XCJUQUdcIjogbmV3IFJlZ0V4cCggXCJeKFwiICsgaWRlbnRpZmllciArIFwifFsqXSlcIiApLFxuXHRcdFwiQVRUUlwiOiBuZXcgUmVnRXhwKCBcIl5cIiArIGF0dHJpYnV0ZXMgKSxcblx0XHRcIlBTRVVET1wiOiBuZXcgUmVnRXhwKCBcIl5cIiArIHBzZXVkb3MgKSxcblx0XHRcIkNISUxEXCI6IG5ldyBSZWdFeHAoIFwiXjoob25seXxmaXJzdHxsYXN0fG50aHxudGgtbGFzdCktKGNoaWxkfG9mLXR5cGUpKD86XFxcXChcIiArXG5cdFx0XHR3aGl0ZXNwYWNlICsgXCIqKGV2ZW58b2RkfCgoWystXXwpKFxcXFxkKilufClcIiArIHdoaXRlc3BhY2UgKyBcIiooPzooWystXXwpXCIgK1xuXHRcdFx0d2hpdGVzcGFjZSArIFwiKihcXFxcZCspfCkpXCIgKyB3aGl0ZXNwYWNlICsgXCIqXFxcXCl8KVwiLCBcImlcIiApLFxuXHRcdFwiYm9vbFwiOiBuZXcgUmVnRXhwKCBcIl4oPzpcIiArIGJvb2xlYW5zICsgXCIpJFwiLCBcImlcIiApLFxuXG5cdFx0Ly8gRm9yIHVzZSBpbiBsaWJyYXJpZXMgaW1wbGVtZW50aW5nIC5pcygpXG5cdFx0Ly8gV2UgdXNlIHRoaXMgZm9yIFBPUyBtYXRjaGluZyBpbiBgc2VsZWN0YFxuXHRcdFwibmVlZHNDb250ZXh0XCI6IG5ldyBSZWdFeHAoIFwiXlwiICsgd2hpdGVzcGFjZSArXG5cdFx0XHRcIipbPit+XXw6KGV2ZW58b2RkfGVxfGd0fGx0fG50aHxmaXJzdHxsYXN0KSg/OlxcXFwoXCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcdFwiKigoPzotXFxcXGQpP1xcXFxkKilcIiArIHdoaXRlc3BhY2UgKyBcIipcXFxcKXwpKD89W14tXXwkKVwiLCBcImlcIiApXG5cdH0sXG5cblx0cmh0bWwgPSAvSFRNTCQvaSxcblx0cmlucHV0cyA9IC9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksXG5cdHJoZWFkZXIgPSAvXmhcXGQkL2ksXG5cblx0cm5hdGl2ZSA9IC9eW157XStcXHtcXHMqXFxbbmF0aXZlIFxcdy8sXG5cblx0Ly8gRWFzaWx5LXBhcnNlYWJsZS9yZXRyaWV2YWJsZSBJRCBvciBUQUcgb3IgQ0xBU1Mgc2VsZWN0b3JzXG5cdHJxdWlja0V4cHIgPSAvXig/OiMoW1xcdy1dKyl8KFxcdyspfFxcLihbXFx3LV0rKSkkLyxcblxuXHRyc2libGluZyA9IC9bK35dLyxcblxuXHQvLyBDU1MgZXNjYXBlc1xuXHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9DU1MyMS9zeW5kYXRhLmh0bWwjZXNjYXBlZC1jaGFyYWN0ZXJzXG5cdHJ1bmVzY2FwZSA9IG5ldyBSZWdFeHAoIFwiXFxcXFxcXFxbXFxcXGRhLWZBLUZdezEsNn1cIiArIHdoaXRlc3BhY2UgKyBcIj98XFxcXFxcXFwoW15cXFxcclxcXFxuXFxcXGZdKVwiLCBcImdcIiApLFxuXHRmdW5lc2NhcGUgPSBmdW5jdGlvbiggZXNjYXBlLCBub25IZXggKSB7XG5cdFx0dmFyIGhpZ2ggPSBcIjB4XCIgKyBlc2NhcGUuc2xpY2UoIDEgKSAtIDB4MTAwMDA7XG5cblx0XHRyZXR1cm4gbm9uSGV4ID9cblxuXHRcdFx0Ly8gU3RyaXAgdGhlIGJhY2tzbGFzaCBwcmVmaXggZnJvbSBhIG5vbi1oZXggZXNjYXBlIHNlcXVlbmNlXG5cdFx0XHRub25IZXggOlxuXG5cdFx0XHQvLyBSZXBsYWNlIGEgaGV4YWRlY2ltYWwgZXNjYXBlIHNlcXVlbmNlIHdpdGggdGhlIGVuY29kZWQgVW5pY29kZSBjb2RlIHBvaW50XG5cdFx0XHQvLyBTdXBwb3J0OiBJRSA8PTExK1xuXHRcdFx0Ly8gRm9yIHZhbHVlcyBvdXRzaWRlIHRoZSBCYXNpYyBNdWx0aWxpbmd1YWwgUGxhbmUgKEJNUCksIG1hbnVhbGx5IGNvbnN0cnVjdCBhXG5cdFx0XHQvLyBzdXJyb2dhdGUgcGFpclxuXHRcdFx0aGlnaCA8IDAgP1xuXHRcdFx0XHRTdHJpbmcuZnJvbUNoYXJDb2RlKCBoaWdoICsgMHgxMDAwMCApIDpcblx0XHRcdFx0U3RyaW5nLmZyb21DaGFyQ29kZSggaGlnaCA+PiAxMCB8IDB4RDgwMCwgaGlnaCAmIDB4M0ZGIHwgMHhEQzAwICk7XG5cdH0sXG5cblx0Ly8gQ1NTIHN0cmluZy9pZGVudGlmaWVyIHNlcmlhbGl6YXRpb25cblx0Ly8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLyNjb21tb24tc2VyaWFsaXppbmctaWRpb21zXG5cdHJjc3Nlc2NhcGUgPSAvKFtcXDAtXFx4MWZcXHg3Zl18Xi0/XFxkKXxeLSR8W15cXDAtXFx4MWZcXHg3Zi1cXHVGRkZGXFx3LV0vZyxcblx0ZmNzc2VzY2FwZSA9IGZ1bmN0aW9uKCBjaCwgYXNDb2RlUG9pbnQgKSB7XG5cdFx0aWYgKCBhc0NvZGVQb2ludCApIHtcblxuXHRcdFx0Ly8gVSswMDAwIE5VTEwgYmVjb21lcyBVK0ZGRkQgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSXG5cdFx0XHRpZiAoIGNoID09PSBcIlxcMFwiICkge1xuXHRcdFx0XHRyZXR1cm4gXCJcXHVGRkZEXCI7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENvbnRyb2wgY2hhcmFjdGVycyBhbmQgKGRlcGVuZGVudCB1cG9uIHBvc2l0aW9uKSBudW1iZXJzIGdldCBlc2NhcGVkIGFzIGNvZGUgcG9pbnRzXG5cdFx0XHRyZXR1cm4gY2guc2xpY2UoIDAsIC0xICkgKyBcIlxcXFxcIiArXG5cdFx0XHRcdGNoLmNoYXJDb2RlQXQoIGNoLmxlbmd0aCAtIDEgKS50b1N0cmluZyggMTYgKSArIFwiIFwiO1xuXHRcdH1cblxuXHRcdC8vIE90aGVyIHBvdGVudGlhbGx5LXNwZWNpYWwgQVNDSUkgY2hhcmFjdGVycyBnZXQgYmFja3NsYXNoLWVzY2FwZWRcblx0XHRyZXR1cm4gXCJcXFxcXCIgKyBjaDtcblx0fSxcblxuXHQvLyBVc2VkIGZvciBpZnJhbWVzXG5cdC8vIFNlZSBzZXREb2N1bWVudCgpXG5cdC8vIFJlbW92aW5nIHRoZSBmdW5jdGlvbiB3cmFwcGVyIGNhdXNlcyBhIFwiUGVybWlzc2lvbiBEZW5pZWRcIlxuXHQvLyBlcnJvciBpbiBJRVxuXHR1bmxvYWRIYW5kbGVyID0gZnVuY3Rpb24oKSB7XG5cdFx0c2V0RG9jdW1lbnQoKTtcblx0fSxcblxuXHRpbkRpc2FibGVkRmllbGRzZXQgPSBhZGRDb21iaW5hdG9yKFxuXHRcdGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0uZGlzYWJsZWQgPT09IHRydWUgJiYgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBcImZpZWxkc2V0XCI7XG5cdFx0fSxcblx0XHR7IGRpcjogXCJwYXJlbnROb2RlXCIsIG5leHQ6IFwibGVnZW5kXCIgfVxuXHQpO1xuXG4vLyBPcHRpbWl6ZSBmb3IgcHVzaC5hcHBseSggXywgTm9kZUxpc3QgKVxudHJ5IHtcblx0cHVzaC5hcHBseShcblx0XHQoIGFyciA9IHNsaWNlLmNhbGwoIHByZWZlcnJlZERvYy5jaGlsZE5vZGVzICkgKSxcblx0XHRwcmVmZXJyZWREb2MuY2hpbGROb2Rlc1xuXHQpO1xuXG5cdC8vIFN1cHBvcnQ6IEFuZHJvaWQ8NC4wXG5cdC8vIERldGVjdCBzaWxlbnRseSBmYWlsaW5nIHB1c2guYXBwbHlcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC1leHByZXNzaW9uc1xuXHRhcnJbIHByZWZlcnJlZERvYy5jaGlsZE5vZGVzLmxlbmd0aCBdLm5vZGVUeXBlO1xufSBjYXRjaCAoIGUgKSB7XG5cdHB1c2ggPSB7IGFwcGx5OiBhcnIubGVuZ3RoID9cblxuXHRcdC8vIExldmVyYWdlIHNsaWNlIGlmIHBvc3NpYmxlXG5cdFx0ZnVuY3Rpb24oIHRhcmdldCwgZWxzICkge1xuXHRcdFx0cHVzaE5hdGl2ZS5hcHBseSggdGFyZ2V0LCBzbGljZS5jYWxsKCBlbHMgKSApO1xuXHRcdH0gOlxuXG5cdFx0Ly8gU3VwcG9ydDogSUU8OVxuXHRcdC8vIE90aGVyd2lzZSBhcHBlbmQgZGlyZWN0bHlcblx0XHRmdW5jdGlvbiggdGFyZ2V0LCBlbHMgKSB7XG5cdFx0XHR2YXIgaiA9IHRhcmdldC5sZW5ndGgsXG5cdFx0XHRcdGkgPSAwO1xuXG5cdFx0XHQvLyBDYW4ndCB0cnVzdCBOb2RlTGlzdC5sZW5ndGhcblx0XHRcdHdoaWxlICggKCB0YXJnZXRbIGorKyBdID0gZWxzWyBpKysgXSApICkge31cblx0XHRcdHRhcmdldC5sZW5ndGggPSBqIC0gMTtcblx0XHR9XG5cdH07XG59XG5cbmZ1bmN0aW9uIFNpenpsZSggc2VsZWN0b3IsIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQgKSB7XG5cdHZhciBtLCBpLCBlbGVtLCBuaWQsIG1hdGNoLCBncm91cHMsIG5ld1NlbGVjdG9yLFxuXHRcdG5ld0NvbnRleHQgPSBjb250ZXh0ICYmIGNvbnRleHQub3duZXJEb2N1bWVudCxcblxuXHRcdC8vIG5vZGVUeXBlIGRlZmF1bHRzIHRvIDksIHNpbmNlIGNvbnRleHQgZGVmYXVsdHMgdG8gZG9jdW1lbnRcblx0XHRub2RlVHlwZSA9IGNvbnRleHQgPyBjb250ZXh0Lm5vZGVUeXBlIDogOTtcblxuXHRyZXN1bHRzID0gcmVzdWx0cyB8fCBbXTtcblxuXHQvLyBSZXR1cm4gZWFybHkgZnJvbSBjYWxscyB3aXRoIGludmFsaWQgc2VsZWN0b3Igb3IgY29udGV4dFxuXHRpZiAoIHR5cGVvZiBzZWxlY3RvciAhPT0gXCJzdHJpbmdcIiB8fCAhc2VsZWN0b3IgfHxcblx0XHRub2RlVHlwZSAhPT0gMSAmJiBub2RlVHlwZSAhPT0gOSAmJiBub2RlVHlwZSAhPT0gMTEgKSB7XG5cblx0XHRyZXR1cm4gcmVzdWx0cztcblx0fVxuXG5cdC8vIFRyeSB0byBzaG9ydGN1dCBmaW5kIG9wZXJhdGlvbnMgKGFzIG9wcG9zZWQgdG8gZmlsdGVycykgaW4gSFRNTCBkb2N1bWVudHNcblx0aWYgKCAhc2VlZCApIHtcblx0XHRzZXREb2N1bWVudCggY29udGV4dCApO1xuXHRcdGNvbnRleHQgPSBjb250ZXh0IHx8IGRvY3VtZW50O1xuXG5cdFx0aWYgKCBkb2N1bWVudElzSFRNTCApIHtcblxuXHRcdFx0Ly8gSWYgdGhlIHNlbGVjdG9yIGlzIHN1ZmZpY2llbnRseSBzaW1wbGUsIHRyeSB1c2luZyBhIFwiZ2V0KkJ5KlwiIERPTSBtZXRob2Rcblx0XHRcdC8vIChleGNlcHRpbmcgRG9jdW1lbnRGcmFnbWVudCBjb250ZXh0LCB3aGVyZSB0aGUgbWV0aG9kcyBkb24ndCBleGlzdClcblx0XHRcdGlmICggbm9kZVR5cGUgIT09IDExICYmICggbWF0Y2ggPSBycXVpY2tFeHByLmV4ZWMoIHNlbGVjdG9yICkgKSApIHtcblxuXHRcdFx0XHQvLyBJRCBzZWxlY3RvclxuXHRcdFx0XHRpZiAoICggbSA9IG1hdGNoWyAxIF0gKSApIHtcblxuXHRcdFx0XHRcdC8vIERvY3VtZW50IGNvbnRleHRcblx0XHRcdFx0XHRpZiAoIG5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHRcdFx0aWYgKCAoIGVsZW0gPSBjb250ZXh0LmdldEVsZW1lbnRCeUlkKCBtICkgKSApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSwgT3BlcmEsIFdlYmtpdFxuXHRcdFx0XHRcdFx0XHQvLyBUT0RPOiBpZGVudGlmeSB2ZXJzaW9uc1xuXHRcdFx0XHRcdFx0XHQvLyBnZXRFbGVtZW50QnlJZCBjYW4gbWF0Y2ggZWxlbWVudHMgYnkgbmFtZSBpbnN0ZWFkIG9mIElEXG5cdFx0XHRcdFx0XHRcdGlmICggZWxlbS5pZCA9PT0gbSApIHtcblx0XHRcdFx0XHRcdFx0XHRyZXN1bHRzLnB1c2goIGVsZW0gKTtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBFbGVtZW50IGNvbnRleHRcblx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSwgT3BlcmEsIFdlYmtpdFxuXHRcdFx0XHRcdFx0Ly8gVE9ETzogaWRlbnRpZnkgdmVyc2lvbnNcblx0XHRcdFx0XHRcdC8vIGdldEVsZW1lbnRCeUlkIGNhbiBtYXRjaCBlbGVtZW50cyBieSBuYW1lIGluc3RlYWQgb2YgSURcblx0XHRcdFx0XHRcdGlmICggbmV3Q29udGV4dCAmJiAoIGVsZW0gPSBuZXdDb250ZXh0LmdldEVsZW1lbnRCeUlkKCBtICkgKSAmJlxuXHRcdFx0XHRcdFx0XHRjb250YWlucyggY29udGV4dCwgZWxlbSApICYmXG5cdFx0XHRcdFx0XHRcdGVsZW0uaWQgPT09IG0gKSB7XG5cblx0XHRcdFx0XHRcdFx0cmVzdWx0cy5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBUeXBlIHNlbGVjdG9yXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG1hdGNoWyAyIF0gKSB7XG5cdFx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cywgY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggc2VsZWN0b3IgKSApO1xuXHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXG5cdFx0XHRcdC8vIENsYXNzIHNlbGVjdG9yXG5cdFx0XHRcdH0gZWxzZSBpZiAoICggbSA9IG1hdGNoWyAzIF0gKSAmJiBzdXBwb3J0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgJiZcblx0XHRcdFx0XHRjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgKSB7XG5cblx0XHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIG0gKSApO1xuXHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFRha2UgYWR2YW50YWdlIG9mIHF1ZXJ5U2VsZWN0b3JBbGxcblx0XHRcdGlmICggc3VwcG9ydC5xc2EgJiZcblx0XHRcdFx0IW5vbm5hdGl2ZVNlbGVjdG9yQ2FjaGVbIHNlbGVjdG9yICsgXCIgXCIgXSAmJlxuXHRcdFx0XHQoICFyYnVnZ3lRU0EgfHwgIXJidWdneVFTQS50ZXN0KCBzZWxlY3RvciApICkgJiZcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA4IG9ubHlcblx0XHRcdFx0Ly8gRXhjbHVkZSBvYmplY3QgZWxlbWVudHNcblx0XHRcdFx0KCBub2RlVHlwZSAhPT0gMSB8fCBjb250ZXh0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09IFwib2JqZWN0XCIgKSApIHtcblxuXHRcdFx0XHRuZXdTZWxlY3RvciA9IHNlbGVjdG9yO1xuXHRcdFx0XHRuZXdDb250ZXh0ID0gY29udGV4dDtcblxuXHRcdFx0XHQvLyBxU0EgY29uc2lkZXJzIGVsZW1lbnRzIG91dHNpZGUgYSBzY29waW5nIHJvb3Qgd2hlbiBldmFsdWF0aW5nIGNoaWxkIG9yXG5cdFx0XHRcdC8vIGRlc2NlbmRhbnQgY29tYmluYXRvcnMsIHdoaWNoIGlzIG5vdCB3aGF0IHdlIHdhbnQuXG5cdFx0XHRcdC8vIEluIHN1Y2ggY2FzZXMsIHdlIHdvcmsgYXJvdW5kIHRoZSBiZWhhdmlvciBieSBwcmVmaXhpbmcgZXZlcnkgc2VsZWN0b3IgaW4gdGhlXG5cdFx0XHRcdC8vIGxpc3Qgd2l0aCBhbiBJRCBzZWxlY3RvciByZWZlcmVuY2luZyB0aGUgc2NvcGUgY29udGV4dC5cblx0XHRcdFx0Ly8gVGhlIHRlY2huaXF1ZSBoYXMgdG8gYmUgdXNlZCBhcyB3ZWxsIHdoZW4gYSBsZWFkaW5nIGNvbWJpbmF0b3IgaXMgdXNlZFxuXHRcdFx0XHQvLyBhcyBzdWNoIHNlbGVjdG9ycyBhcmUgbm90IHJlY29nbml6ZWQgYnkgcXVlcnlTZWxlY3RvckFsbC5cblx0XHRcdFx0Ly8gVGhhbmtzIHRvIEFuZHJldyBEdXBvbnQgZm9yIHRoaXMgdGVjaG5pcXVlLlxuXHRcdFx0XHRpZiAoIG5vZGVUeXBlID09PSAxICYmXG5cdFx0XHRcdFx0KCByZGVzY2VuZC50ZXN0KCBzZWxlY3RvciApIHx8IHJjb21iaW5hdG9ycy50ZXN0KCBzZWxlY3RvciApICkgKSB7XG5cblx0XHRcdFx0XHQvLyBFeHBhbmQgY29udGV4dCBmb3Igc2libGluZyBzZWxlY3RvcnNcblx0XHRcdFx0XHRuZXdDb250ZXh0ID0gcnNpYmxpbmcudGVzdCggc2VsZWN0b3IgKSAmJiB0ZXN0Q29udGV4dCggY29udGV4dC5wYXJlbnROb2RlICkgfHxcblx0XHRcdFx0XHRcdGNvbnRleHQ7XG5cblx0XHRcdFx0XHQvLyBXZSBjYW4gdXNlIDpzY29wZSBpbnN0ZWFkIG9mIHRoZSBJRCBoYWNrIGlmIHRoZSBicm93c2VyXG5cdFx0XHRcdFx0Ly8gc3VwcG9ydHMgaXQgJiBpZiB3ZSdyZSBub3QgY2hhbmdpbmcgdGhlIGNvbnRleHQuXG5cdFx0XHRcdFx0aWYgKCBuZXdDb250ZXh0ICE9PSBjb250ZXh0IHx8ICFzdXBwb3J0LnNjb3BlICkge1xuXG5cdFx0XHRcdFx0XHQvLyBDYXB0dXJlIHRoZSBjb250ZXh0IElELCBzZXR0aW5nIGl0IGZpcnN0IGlmIG5lY2Vzc2FyeVxuXHRcdFx0XHRcdFx0aWYgKCAoIG5pZCA9IGNvbnRleHQuZ2V0QXR0cmlidXRlKCBcImlkXCIgKSApICkge1xuXHRcdFx0XHRcdFx0XHRuaWQgPSBuaWQucmVwbGFjZSggcmNzc2VzY2FwZSwgZmNzc2VzY2FwZSApO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Y29udGV4dC5zZXRBdHRyaWJ1dGUoIFwiaWRcIiwgKCBuaWQgPSBleHBhbmRvICkgKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBQcmVmaXggZXZlcnkgc2VsZWN0b3IgaW4gdGhlIGxpc3Rcblx0XHRcdFx0XHRncm91cHMgPSB0b2tlbml6ZSggc2VsZWN0b3IgKTtcblx0XHRcdFx0XHRpID0gZ3JvdXBzLmxlbmd0aDtcblx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRcdGdyb3Vwc1sgaSBdID0gKCBuaWQgPyBcIiNcIiArIG5pZCA6IFwiOnNjb3BlXCIgKSArIFwiIFwiICtcblx0XHRcdFx0XHRcdFx0dG9TZWxlY3RvciggZ3JvdXBzWyBpIF0gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0bmV3U2VsZWN0b3IgPSBncm91cHMuam9pbiggXCIsXCIgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cyxcblx0XHRcdFx0XHRcdG5ld0NvbnRleHQucXVlcnlTZWxlY3RvckFsbCggbmV3U2VsZWN0b3IgKVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdH0gY2F0Y2ggKCBxc2FFcnJvciApIHtcblx0XHRcdFx0XHRub25uYXRpdmVTZWxlY3RvckNhY2hlKCBzZWxlY3RvciwgdHJ1ZSApO1xuXHRcdFx0XHR9IGZpbmFsbHkge1xuXHRcdFx0XHRcdGlmICggbmlkID09PSBleHBhbmRvICkge1xuXHRcdFx0XHRcdFx0Y29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoIFwiaWRcIiApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIEFsbCBvdGhlcnNcblx0cmV0dXJuIHNlbGVjdCggc2VsZWN0b3IucmVwbGFjZSggcnRyaW0sIFwiJDFcIiApLCBjb250ZXh0LCByZXN1bHRzLCBzZWVkICk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGtleS12YWx1ZSBjYWNoZXMgb2YgbGltaXRlZCBzaXplXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb24oc3RyaW5nLCBvYmplY3QpfSBSZXR1cm5zIHRoZSBPYmplY3QgZGF0YSBhZnRlciBzdG9yaW5nIGl0IG9uIGl0c2VsZiB3aXRoXG4gKlx0cHJvcGVydHkgbmFtZSB0aGUgKHNwYWNlLXN1ZmZpeGVkKSBzdHJpbmcgYW5kIChpZiB0aGUgY2FjaGUgaXMgbGFyZ2VyIHRoYW4gRXhwci5jYWNoZUxlbmd0aClcbiAqXHRkZWxldGluZyB0aGUgb2xkZXN0IGVudHJ5XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUNhY2hlKCkge1xuXHR2YXIga2V5cyA9IFtdO1xuXG5cdGZ1bmN0aW9uIGNhY2hlKCBrZXksIHZhbHVlICkge1xuXG5cdFx0Ly8gVXNlIChrZXkgKyBcIiBcIikgdG8gYXZvaWQgY29sbGlzaW9uIHdpdGggbmF0aXZlIHByb3RvdHlwZSBwcm9wZXJ0aWVzIChzZWUgSXNzdWUgIzE1Nylcblx0XHRpZiAoIGtleXMucHVzaCgga2V5ICsgXCIgXCIgKSA+IEV4cHIuY2FjaGVMZW5ndGggKSB7XG5cblx0XHRcdC8vIE9ubHkga2VlcCB0aGUgbW9zdCByZWNlbnQgZW50cmllc1xuXHRcdFx0ZGVsZXRlIGNhY2hlWyBrZXlzLnNoaWZ0KCkgXTtcblx0XHR9XG5cdFx0cmV0dXJuICggY2FjaGVbIGtleSArIFwiIFwiIF0gPSB2YWx1ZSApO1xuXHR9XG5cdHJldHVybiBjYWNoZTtcbn1cblxuLyoqXG4gKiBNYXJrIGEgZnVuY3Rpb24gZm9yIHNwZWNpYWwgdXNlIGJ5IFNpenpsZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gVGhlIGZ1bmN0aW9uIHRvIG1hcmtcbiAqL1xuZnVuY3Rpb24gbWFya0Z1bmN0aW9uKCBmbiApIHtcblx0Zm5bIGV4cGFuZG8gXSA9IHRydWU7XG5cdHJldHVybiBmbjtcbn1cblxuLyoqXG4gKiBTdXBwb3J0IHRlc3RpbmcgdXNpbmcgYW4gZWxlbWVudFxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gUGFzc2VkIHRoZSBjcmVhdGVkIGVsZW1lbnQgYW5kIHJldHVybnMgYSBib29sZWFuIHJlc3VsdFxuICovXG5mdW5jdGlvbiBhc3NlcnQoIGZuICkge1xuXHR2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImZpZWxkc2V0XCIgKTtcblxuXHR0cnkge1xuXHRcdHJldHVybiAhIWZuKCBlbCApO1xuXHR9IGNhdGNoICggZSApIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH0gZmluYWxseSB7XG5cblx0XHQvLyBSZW1vdmUgZnJvbSBpdHMgcGFyZW50IGJ5IGRlZmF1bHRcblx0XHRpZiAoIGVsLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRlbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBlbCApO1xuXHRcdH1cblxuXHRcdC8vIHJlbGVhc2UgbWVtb3J5IGluIElFXG5cdFx0ZWwgPSBudWxsO1xuXHR9XG59XG5cbi8qKlxuICogQWRkcyB0aGUgc2FtZSBoYW5kbGVyIGZvciBhbGwgb2YgdGhlIHNwZWNpZmllZCBhdHRyc1xuICogQHBhcmFtIHtTdHJpbmd9IGF0dHJzIFBpcGUtc2VwYXJhdGVkIGxpc3Qgb2YgYXR0cmlidXRlc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gaGFuZGxlciBUaGUgbWV0aG9kIHRoYXQgd2lsbCBiZSBhcHBsaWVkXG4gKi9cbmZ1bmN0aW9uIGFkZEhhbmRsZSggYXR0cnMsIGhhbmRsZXIgKSB7XG5cdHZhciBhcnIgPSBhdHRycy5zcGxpdCggXCJ8XCIgKSxcblx0XHRpID0gYXJyLmxlbmd0aDtcblxuXHR3aGlsZSAoIGktLSApIHtcblx0XHRFeHByLmF0dHJIYW5kbGVbIGFyclsgaSBdIF0gPSBoYW5kbGVyO1xuXHR9XG59XG5cbi8qKlxuICogQ2hlY2tzIGRvY3VtZW50IG9yZGVyIG9mIHR3byBzaWJsaW5nc1xuICogQHBhcmFtIHtFbGVtZW50fSBhXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGJcbiAqIEByZXR1cm5zIHtOdW1iZXJ9IFJldHVybnMgbGVzcyB0aGFuIDAgaWYgYSBwcmVjZWRlcyBiLCBncmVhdGVyIHRoYW4gMCBpZiBhIGZvbGxvd3MgYlxuICovXG5mdW5jdGlvbiBzaWJsaW5nQ2hlY2soIGEsIGIgKSB7XG5cdHZhciBjdXIgPSBiICYmIGEsXG5cdFx0ZGlmZiA9IGN1ciAmJiBhLm5vZGVUeXBlID09PSAxICYmIGIubm9kZVR5cGUgPT09IDEgJiZcblx0XHRcdGEuc291cmNlSW5kZXggLSBiLnNvdXJjZUluZGV4O1xuXG5cdC8vIFVzZSBJRSBzb3VyY2VJbmRleCBpZiBhdmFpbGFibGUgb24gYm90aCBub2Rlc1xuXHRpZiAoIGRpZmYgKSB7XG5cdFx0cmV0dXJuIGRpZmY7XG5cdH1cblxuXHQvLyBDaGVjayBpZiBiIGZvbGxvd3MgYVxuXHRpZiAoIGN1ciApIHtcblx0XHR3aGlsZSAoICggY3VyID0gY3VyLm5leHRTaWJsaW5nICkgKSB7XG5cdFx0XHRpZiAoIGN1ciA9PT0gYiApIHtcblx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBhID8gMSA6IC0xO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB0byB1c2UgaW4gcHNldWRvcyBmb3IgaW5wdXQgdHlwZXNcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUlucHV0UHNldWRvKCB0eXBlICkge1xuXHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0dmFyIG5hbWUgPSBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cdFx0cmV0dXJuIG5hbWUgPT09IFwiaW5wdXRcIiAmJiBlbGVtLnR5cGUgPT09IHR5cGU7XG5cdH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciBidXR0b25zXG4gKiBAcGFyYW0ge1N0cmluZ30gdHlwZVxuICovXG5mdW5jdGlvbiBjcmVhdGVCdXR0b25Qc2V1ZG8oIHR5cGUgKSB7XG5cdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHR2YXIgbmFtZSA9IGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRyZXR1cm4gKCBuYW1lID09PSBcImlucHV0XCIgfHwgbmFtZSA9PT0gXCJidXR0b25cIiApICYmIGVsZW0udHlwZSA9PT0gdHlwZTtcblx0fTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24gdG8gdXNlIGluIHBzZXVkb3MgZm9yIDplbmFibGVkLzpkaXNhYmxlZFxuICogQHBhcmFtIHtCb29sZWFufSBkaXNhYmxlZCB0cnVlIGZvciA6ZGlzYWJsZWQ7IGZhbHNlIGZvciA6ZW5hYmxlZFxuICovXG5mdW5jdGlvbiBjcmVhdGVEaXNhYmxlZFBzZXVkbyggZGlzYWJsZWQgKSB7XG5cblx0Ly8gS25vd24gOmRpc2FibGVkIGZhbHNlIHBvc2l0aXZlczogZmllbGRzZXRbZGlzYWJsZWRdID4gbGVnZW5kOm50aC1vZi10eXBlKG4rMikgOmNhbi1kaXNhYmxlXG5cdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblxuXHRcdC8vIE9ubHkgY2VydGFpbiBlbGVtZW50cyBjYW4gbWF0Y2ggOmVuYWJsZWQgb3IgOmRpc2FibGVkXG5cdFx0Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2NyaXB0aW5nLmh0bWwjc2VsZWN0b3ItZW5hYmxlZFxuXHRcdC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3NjcmlwdGluZy5odG1sI3NlbGVjdG9yLWRpc2FibGVkXG5cdFx0aWYgKCBcImZvcm1cIiBpbiBlbGVtICkge1xuXG5cdFx0XHQvLyBDaGVjayBmb3IgaW5oZXJpdGVkIGRpc2FibGVkbmVzcyBvbiByZWxldmFudCBub24tZGlzYWJsZWQgZWxlbWVudHM6XG5cdFx0XHQvLyAqIGxpc3RlZCBmb3JtLWFzc29jaWF0ZWQgZWxlbWVudHMgaW4gYSBkaXNhYmxlZCBmaWVsZHNldFxuXHRcdFx0Ly8gICBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9mb3Jtcy5odG1sI2NhdGVnb3J5LWxpc3RlZFxuXHRcdFx0Ly8gICBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9mb3Jtcy5odG1sI2NvbmNlcHQtZmUtZGlzYWJsZWRcblx0XHRcdC8vICogb3B0aW9uIGVsZW1lbnRzIGluIGEgZGlzYWJsZWQgb3B0Z3JvdXBcblx0XHRcdC8vICAgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZm9ybXMuaHRtbCNjb25jZXB0LW9wdGlvbi1kaXNhYmxlZFxuXHRcdFx0Ly8gQWxsIHN1Y2ggZWxlbWVudHMgaGF2ZSBhIFwiZm9ybVwiIHByb3BlcnR5LlxuXHRcdFx0aWYgKCBlbGVtLnBhcmVudE5vZGUgJiYgZWxlbS5kaXNhYmxlZCA9PT0gZmFsc2UgKSB7XG5cblx0XHRcdFx0Ly8gT3B0aW9uIGVsZW1lbnRzIGRlZmVyIHRvIGEgcGFyZW50IG9wdGdyb3VwIGlmIHByZXNlbnRcblx0XHRcdFx0aWYgKCBcImxhYmVsXCIgaW4gZWxlbSApIHtcblx0XHRcdFx0XHRpZiAoIFwibGFiZWxcIiBpbiBlbGVtLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZWxlbS5wYXJlbnROb2RlLmRpc2FibGVkID09PSBkaXNhYmxlZDtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGVsZW0uZGlzYWJsZWQgPT09IGRpc2FibGVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDYgLSAxMVxuXHRcdFx0XHQvLyBVc2UgdGhlIGlzRGlzYWJsZWQgc2hvcnRjdXQgcHJvcGVydHkgdG8gY2hlY2sgZm9yIGRpc2FibGVkIGZpZWxkc2V0IGFuY2VzdG9yc1xuXHRcdFx0XHRyZXR1cm4gZWxlbS5pc0Rpc2FibGVkID09PSBkaXNhYmxlZCB8fFxuXG5cdFx0XHRcdFx0Ly8gV2hlcmUgdGhlcmUgaXMgbm8gaXNEaXNhYmxlZCwgY2hlY2sgbWFudWFsbHlcblx0XHRcdFx0XHQvKiBqc2hpbnQgLVcwMTggKi9cblx0XHRcdFx0XHRlbGVtLmlzRGlzYWJsZWQgIT09ICFkaXNhYmxlZCAmJlxuXHRcdFx0XHRcdGluRGlzYWJsZWRGaWVsZHNldCggZWxlbSApID09PSBkaXNhYmxlZDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGVsZW0uZGlzYWJsZWQgPT09IGRpc2FibGVkO1xuXG5cdFx0Ly8gVHJ5IHRvIHdpbm5vdyBvdXQgZWxlbWVudHMgdGhhdCBjYW4ndCBiZSBkaXNhYmxlZCBiZWZvcmUgdHJ1c3RpbmcgdGhlIGRpc2FibGVkIHByb3BlcnR5LlxuXHRcdC8vIFNvbWUgdmljdGltcyBnZXQgY2F1Z2h0IGluIG91ciBuZXQgKGxhYmVsLCBsZWdlbmQsIG1lbnUsIHRyYWNrKSwgYnV0IGl0IHNob3VsZG4ndFxuXHRcdC8vIGV2ZW4gZXhpc3Qgb24gdGhlbSwgbGV0IGFsb25lIGhhdmUgYSBib29sZWFuIHZhbHVlLlxuXHRcdH0gZWxzZSBpZiAoIFwibGFiZWxcIiBpbiBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0uZGlzYWJsZWQgPT09IGRpc2FibGVkO1xuXHRcdH1cblxuXHRcdC8vIFJlbWFpbmluZyBlbGVtZW50cyBhcmUgbmVpdGhlciA6ZW5hYmxlZCBub3IgOmRpc2FibGVkXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9O1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB0byB1c2UgaW4gcHNldWRvcyBmb3IgcG9zaXRpb25hbHNcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZuICkge1xuXHRyZXR1cm4gbWFya0Z1bmN0aW9uKCBmdW5jdGlvbiggYXJndW1lbnQgKSB7XG5cdFx0YXJndW1lbnQgPSArYXJndW1lbnQ7XG5cdFx0cmV0dXJuIG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIHNlZWQsIG1hdGNoZXMgKSB7XG5cdFx0XHR2YXIgaixcblx0XHRcdFx0bWF0Y2hJbmRleGVzID0gZm4oIFtdLCBzZWVkLmxlbmd0aCwgYXJndW1lbnQgKSxcblx0XHRcdFx0aSA9IG1hdGNoSW5kZXhlcy5sZW5ndGg7XG5cblx0XHRcdC8vIE1hdGNoIGVsZW1lbnRzIGZvdW5kIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXhlc1xuXHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdGlmICggc2VlZFsgKCBqID0gbWF0Y2hJbmRleGVzWyBpIF0gKSBdICkge1xuXHRcdFx0XHRcdHNlZWRbIGogXSA9ICEoIG1hdGNoZXNbIGogXSA9IHNlZWRbIGogXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9ICk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGEgbm9kZSBmb3IgdmFsaWRpdHkgYXMgYSBTaXp6bGUgY29udGV4dFxuICogQHBhcmFtIHtFbGVtZW50fE9iamVjdD19IGNvbnRleHRcbiAqIEByZXR1cm5zIHtFbGVtZW50fE9iamVjdHxCb29sZWFufSBUaGUgaW5wdXQgbm9kZSBpZiBhY2NlcHRhYmxlLCBvdGhlcndpc2UgYSBmYWxzeSB2YWx1ZVxuICovXG5mdW5jdGlvbiB0ZXN0Q29udGV4dCggY29udGV4dCApIHtcblx0cmV0dXJuIGNvbnRleHQgJiYgdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUgIT09IFwidW5kZWZpbmVkXCIgJiYgY29udGV4dDtcbn1cblxuLy8gRXhwb3NlIHN1cHBvcnQgdmFycyBmb3IgY29udmVuaWVuY2VcbnN1cHBvcnQgPSBTaXp6bGUuc3VwcG9ydCA9IHt9O1xuXG4vKipcbiAqIERldGVjdHMgWE1MIG5vZGVzXG4gKiBAcGFyYW0ge0VsZW1lbnR8T2JqZWN0fSBlbGVtIEFuIGVsZW1lbnQgb3IgYSBkb2N1bWVudFxuICogQHJldHVybnMge0Jvb2xlYW59IFRydWUgaWZmIGVsZW0gaXMgYSBub24tSFRNTCBYTUwgbm9kZVxuICovXG5pc1hNTCA9IFNpenpsZS5pc1hNTCA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHR2YXIgbmFtZXNwYWNlID0gZWxlbSAmJiBlbGVtLm5hbWVzcGFjZVVSSSxcblx0XHRkb2NFbGVtID0gZWxlbSAmJiAoIGVsZW0ub3duZXJEb2N1bWVudCB8fCBlbGVtICkuZG9jdW1lbnRFbGVtZW50O1xuXG5cdC8vIFN1cHBvcnQ6IElFIDw9OFxuXHQvLyBBc3N1bWUgSFRNTCB3aGVuIGRvY3VtZW50RWxlbWVudCBkb2Vzbid0IHlldCBleGlzdCwgc3VjaCBhcyBpbnNpZGUgbG9hZGluZyBpZnJhbWVzXG5cdC8vIGh0dHBzOi8vYnVncy5qcXVlcnkuY29tL3RpY2tldC80ODMzXG5cdHJldHVybiAhcmh0bWwudGVzdCggbmFtZXNwYWNlIHx8IGRvY0VsZW0gJiYgZG9jRWxlbS5ub2RlTmFtZSB8fCBcIkhUTUxcIiApO1xufTtcblxuLyoqXG4gKiBTZXRzIGRvY3VtZW50LXJlbGF0ZWQgdmFyaWFibGVzIG9uY2UgYmFzZWQgb24gdGhlIGN1cnJlbnQgZG9jdW1lbnRcbiAqIEBwYXJhbSB7RWxlbWVudHxPYmplY3R9IFtkb2NdIEFuIGVsZW1lbnQgb3IgZG9jdW1lbnQgb2JqZWN0IHRvIHVzZSB0byBzZXQgdGhlIGRvY3VtZW50XG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjdXJyZW50IGRvY3VtZW50XG4gKi9cbnNldERvY3VtZW50ID0gU2l6emxlLnNldERvY3VtZW50ID0gZnVuY3Rpb24oIG5vZGUgKSB7XG5cdHZhciBoYXNDb21wYXJlLCBzdWJXaW5kb3csXG5cdFx0ZG9jID0gbm9kZSA/IG5vZGUub3duZXJEb2N1bWVudCB8fCBub2RlIDogcHJlZmVycmVkRG9jO1xuXG5cdC8vIFJldHVybiBlYXJseSBpZiBkb2MgaXMgaW52YWxpZCBvciBhbHJlYWR5IHNlbGVjdGVkXG5cdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNyAtIDE4K1xuXHQvLyBJRS9FZGdlIHNvbWV0aW1lcyB0aHJvdyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvciB3aGVuIHN0cmljdC1jb21wYXJpbmdcblx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG5cdGlmICggZG9jID09IGRvY3VtZW50IHx8IGRvYy5ub2RlVHlwZSAhPT0gOSB8fCAhZG9jLmRvY3VtZW50RWxlbWVudCApIHtcblx0XHRyZXR1cm4gZG9jdW1lbnQ7XG5cdH1cblxuXHQvLyBVcGRhdGUgZ2xvYmFsIHZhcmlhYmxlc1xuXHRkb2N1bWVudCA9IGRvYztcblx0ZG9jRWxlbSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblx0ZG9jdW1lbnRJc0hUTUwgPSAhaXNYTUwoIGRvY3VtZW50ICk7XG5cblx0Ly8gU3VwcG9ydDogSUUgOSAtIDExKywgRWRnZSAxMiAtIDE4K1xuXHQvLyBBY2Nlc3NpbmcgaWZyYW1lIGRvY3VtZW50cyBhZnRlciB1bmxvYWQgdGhyb3dzIFwicGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvcnMgKGpRdWVyeSAjMTM5MzYpXG5cdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNyAtIDE4K1xuXHQvLyBJRS9FZGdlIHNvbWV0aW1lcyB0aHJvdyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvciB3aGVuIHN0cmljdC1jb21wYXJpbmdcblx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG5cdGlmICggcHJlZmVycmVkRG9jICE9IGRvY3VtZW50ICYmXG5cdFx0KCBzdWJXaW5kb3cgPSBkb2N1bWVudC5kZWZhdWx0VmlldyApICYmIHN1YldpbmRvdy50b3AgIT09IHN1YldpbmRvdyApIHtcblxuXHRcdC8vIFN1cHBvcnQ6IElFIDExLCBFZGdlXG5cdFx0aWYgKCBzdWJXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lciApIHtcblx0XHRcdHN1YldpbmRvdy5hZGRFdmVudExpc3RlbmVyKCBcInVubG9hZFwiLCB1bmxvYWRIYW5kbGVyLCBmYWxzZSApO1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgOSAtIDEwIG9ubHlcblx0XHR9IGVsc2UgaWYgKCBzdWJXaW5kb3cuYXR0YWNoRXZlbnQgKSB7XG5cdFx0XHRzdWJXaW5kb3cuYXR0YWNoRXZlbnQoIFwib251bmxvYWRcIiwgdW5sb2FkSGFuZGxlciApO1xuXHRcdH1cblx0fVxuXG5cdC8vIFN1cHBvcnQ6IElFIDggLSAxMSssIEVkZ2UgMTIgLSAxOCssIENocm9tZSA8PTE2IC0gMjUgb25seSwgRmlyZWZveCA8PTMuNiAtIDMxIG9ubHksXG5cdC8vIFNhZmFyaSA0IC0gNSBvbmx5LCBPcGVyYSA8PTExLjYgLSAxMi54IG9ubHlcblx0Ly8gSUUvRWRnZSAmIG9sZGVyIGJyb3dzZXJzIGRvbid0IHN1cHBvcnQgdGhlIDpzY29wZSBwc2V1ZG8tY2xhc3MuXG5cdC8vIFN1cHBvcnQ6IFNhZmFyaSA2LjAgb25seVxuXHQvLyBTYWZhcmkgNi4wIHN1cHBvcnRzIDpzY29wZSBidXQgaXQncyBhbiBhbGlhcyBvZiA6cm9vdCB0aGVyZS5cblx0c3VwcG9ydC5zY29wZSA9IGFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXHRcdGRvY0VsZW0uYXBwZW5kQ2hpbGQoIGVsICkuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZGl2XCIgKSApO1xuXHRcdHJldHVybiB0eXBlb2YgZWwucXVlcnlTZWxlY3RvckFsbCAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuXHRcdFx0IWVsLnF1ZXJ5U2VsZWN0b3JBbGwoIFwiOnNjb3BlIGZpZWxkc2V0IGRpdlwiICkubGVuZ3RoO1xuXHR9ICk7XG5cblx0LyogQXR0cmlidXRlc1xuXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0Ly8gU3VwcG9ydDogSUU8OFxuXHQvLyBWZXJpZnkgdGhhdCBnZXRBdHRyaWJ1dGUgcmVhbGx5IHJldHVybnMgYXR0cmlidXRlcyBhbmQgbm90IHByb3BlcnRpZXNcblx0Ly8gKGV4Y2VwdGluZyBJRTggYm9vbGVhbnMpXG5cdHN1cHBvcnQuYXR0cmlidXRlcyA9IGFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXHRcdGVsLmNsYXNzTmFtZSA9IFwiaVwiO1xuXHRcdHJldHVybiAhZWwuZ2V0QXR0cmlidXRlKCBcImNsYXNzTmFtZVwiICk7XG5cdH0gKTtcblxuXHQvKiBnZXRFbGVtZW50KHMpQnkqXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQvLyBDaGVjayBpZiBnZXRFbGVtZW50c0J5VGFnTmFtZShcIipcIikgcmV0dXJucyBvbmx5IGVsZW1lbnRzXG5cdHN1cHBvcnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUgPSBhc3NlcnQoIGZ1bmN0aW9uKCBlbCApIHtcblx0XHRlbC5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlQ29tbWVudCggXCJcIiApICk7XG5cdFx0cmV0dXJuICFlbC5nZXRFbGVtZW50c0J5VGFnTmFtZSggXCIqXCIgKS5sZW5ndGg7XG5cdH0gKTtcblxuXHQvLyBTdXBwb3J0OiBJRTw5XG5cdHN1cHBvcnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSA9IHJuYXRpdmUudGVzdCggZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSApO1xuXG5cdC8vIFN1cHBvcnQ6IElFPDEwXG5cdC8vIENoZWNrIGlmIGdldEVsZW1lbnRCeUlkIHJldHVybnMgZWxlbWVudHMgYnkgbmFtZVxuXHQvLyBUaGUgYnJva2VuIGdldEVsZW1lbnRCeUlkIG1ldGhvZHMgZG9uJ3QgcGljayB1cCBwcm9ncmFtbWF0aWNhbGx5LXNldCBuYW1lcyxcblx0Ly8gc28gdXNlIGEgcm91bmRhYm91dCBnZXRFbGVtZW50c0J5TmFtZSB0ZXN0XG5cdHN1cHBvcnQuZ2V0QnlJZCA9IGFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXHRcdGRvY0VsZW0uYXBwZW5kQ2hpbGQoIGVsICkuaWQgPSBleHBhbmRvO1xuXHRcdHJldHVybiAhZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUgfHwgIWRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCBleHBhbmRvICkubGVuZ3RoO1xuXHR9ICk7XG5cblx0Ly8gSUQgZmlsdGVyIGFuZCBmaW5kXG5cdGlmICggc3VwcG9ydC5nZXRCeUlkICkge1xuXHRcdEV4cHIuZmlsdGVyWyBcIklEXCIgXSA9IGZ1bmN0aW9uKCBpZCApIHtcblx0XHRcdHZhciBhdHRySWQgPSBpZC5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApO1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHRyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoIFwiaWRcIiApID09PSBhdHRySWQ7XG5cdFx0XHR9O1xuXHRcdH07XG5cdFx0RXhwci5maW5kWyBcIklEXCIgXSA9IGZ1bmN0aW9uKCBpZCwgY29udGV4dCApIHtcblx0XHRcdGlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQgIT09IFwidW5kZWZpbmVkXCIgJiYgZG9jdW1lbnRJc0hUTUwgKSB7XG5cdFx0XHRcdHZhciBlbGVtID0gY29udGV4dC5nZXRFbGVtZW50QnlJZCggaWQgKTtcblx0XHRcdFx0cmV0dXJuIGVsZW0gPyBbIGVsZW0gXSA6IFtdO1xuXHRcdFx0fVxuXHRcdH07XG5cdH0gZWxzZSB7XG5cdFx0RXhwci5maWx0ZXJbIFwiSURcIiBdID0gIGZ1bmN0aW9uKCBpZCApIHtcblx0XHRcdHZhciBhdHRySWQgPSBpZC5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApO1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgbm9kZSA9IHR5cGVvZiBlbGVtLmdldEF0dHJpYnV0ZU5vZGUgIT09IFwidW5kZWZpbmVkXCIgJiZcblx0XHRcdFx0XHRlbGVtLmdldEF0dHJpYnV0ZU5vZGUoIFwiaWRcIiApO1xuXHRcdFx0XHRyZXR1cm4gbm9kZSAmJiBub2RlLnZhbHVlID09PSBhdHRySWQ7XG5cdFx0XHR9O1xuXHRcdH07XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA2IC0gNyBvbmx5XG5cdFx0Ly8gZ2V0RWxlbWVudEJ5SWQgaXMgbm90IHJlbGlhYmxlIGFzIGEgZmluZCBzaG9ydGN1dFxuXHRcdEV4cHIuZmluZFsgXCJJRFwiIF0gPSBmdW5jdGlvbiggaWQsIGNvbnRleHQgKSB7XG5cdFx0XHRpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRCeUlkICE9PSBcInVuZGVmaW5lZFwiICYmIGRvY3VtZW50SXNIVE1MICkge1xuXHRcdFx0XHR2YXIgbm9kZSwgaSwgZWxlbXMsXG5cdFx0XHRcdFx0ZWxlbSA9IGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIGlkICk7XG5cblx0XHRcdFx0aWYgKCBlbGVtICkge1xuXG5cdFx0XHRcdFx0Ly8gVmVyaWZ5IHRoZSBpZCBhdHRyaWJ1dGVcblx0XHRcdFx0XHRub2RlID0gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCBcImlkXCIgKTtcblx0XHRcdFx0XHRpZiAoIG5vZGUgJiYgbm9kZS52YWx1ZSA9PT0gaWQgKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gWyBlbGVtIF07XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gRmFsbCBiYWNrIG9uIGdldEVsZW1lbnRzQnlOYW1lXG5cdFx0XHRcdFx0ZWxlbXMgPSBjb250ZXh0LmdldEVsZW1lbnRzQnlOYW1lKCBpZCApO1xuXHRcdFx0XHRcdGkgPSAwO1xuXHRcdFx0XHRcdHdoaWxlICggKCBlbGVtID0gZWxlbXNbIGkrKyBdICkgKSB7XG5cdFx0XHRcdFx0XHRub2RlID0gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCBcImlkXCIgKTtcblx0XHRcdFx0XHRcdGlmICggbm9kZSAmJiBub2RlLnZhbHVlID09PSBpZCApIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIFsgZWxlbSBdO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiBbXTtcblx0XHRcdH1cblx0XHR9O1xuXHR9XG5cblx0Ly8gVGFnXG5cdEV4cHIuZmluZFsgXCJUQUdcIiBdID0gc3VwcG9ydC5nZXRFbGVtZW50c0J5VGFnTmFtZSA/XG5cdFx0ZnVuY3Rpb24oIHRhZywgY29udGV4dCApIHtcblx0XHRcdGlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUgIT09IFwidW5kZWZpbmVkXCIgKSB7XG5cdFx0XHRcdHJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCB0YWcgKTtcblxuXHRcdFx0Ly8gRG9jdW1lbnRGcmFnbWVudCBub2RlcyBkb24ndCBoYXZlIGdFQlROXG5cdFx0XHR9IGVsc2UgaWYgKCBzdXBwb3J0LnFzYSApIHtcblx0XHRcdFx0cmV0dXJuIGNvbnRleHQucXVlcnlTZWxlY3RvckFsbCggdGFnICk7XG5cdFx0XHR9XG5cdFx0fSA6XG5cblx0XHRmdW5jdGlvbiggdGFnLCBjb250ZXh0ICkge1xuXHRcdFx0dmFyIGVsZW0sXG5cdFx0XHRcdHRtcCA9IFtdLFxuXHRcdFx0XHRpID0gMCxcblxuXHRcdFx0XHQvLyBCeSBoYXBweSBjb2luY2lkZW5jZSwgYSAoYnJva2VuKSBnRUJUTiBhcHBlYXJzIG9uIERvY3VtZW50RnJhZ21lbnQgbm9kZXMgdG9vXG5cdFx0XHRcdHJlc3VsdHMgPSBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCB0YWcgKTtcblxuXHRcdFx0Ly8gRmlsdGVyIG91dCBwb3NzaWJsZSBjb21tZW50c1xuXHRcdFx0aWYgKCB0YWcgPT09IFwiKlwiICkge1xuXHRcdFx0XHR3aGlsZSAoICggZWxlbSA9IHJlc3VsdHNbIGkrKyBdICkgKSB7XG5cdFx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0XHRcdFx0dG1wLnB1c2goIGVsZW0gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gdG1wO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0fTtcblxuXHQvLyBDbGFzc1xuXHRFeHByLmZpbmRbIFwiQ0xBU1NcIiBdID0gc3VwcG9ydC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICYmIGZ1bmN0aW9uKCBjbGFzc05hbWUsIGNvbnRleHQgKSB7XG5cdFx0aWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICE9PSBcInVuZGVmaW5lZFwiICYmIGRvY3VtZW50SXNIVE1MICkge1xuXHRcdFx0cmV0dXJuIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSggY2xhc3NOYW1lICk7XG5cdFx0fVxuXHR9O1xuXG5cdC8qIFFTQS9tYXRjaGVzU2VsZWN0b3Jcblx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC8vIFFTQSBhbmQgbWF0Y2hlc1NlbGVjdG9yIHN1cHBvcnRcblxuXHQvLyBtYXRjaGVzU2VsZWN0b3IoOmFjdGl2ZSkgcmVwb3J0cyBmYWxzZSB3aGVuIHRydWUgKElFOS9PcGVyYSAxMS41KVxuXHRyYnVnZ3lNYXRjaGVzID0gW107XG5cblx0Ly8gcVNhKDpmb2N1cykgcmVwb3J0cyBmYWxzZSB3aGVuIHRydWUgKENocm9tZSAyMSlcblx0Ly8gV2UgYWxsb3cgdGhpcyBiZWNhdXNlIG9mIGEgYnVnIGluIElFOC85IHRoYXQgdGhyb3dzIGFuIGVycm9yXG5cdC8vIHdoZW5ldmVyIGBkb2N1bWVudC5hY3RpdmVFbGVtZW50YCBpcyBhY2Nlc3NlZCBvbiBhbiBpZnJhbWVcblx0Ly8gU28sIHdlIGFsbG93IDpmb2N1cyB0byBwYXNzIHRocm91Z2ggUVNBIGFsbCB0aGUgdGltZSB0byBhdm9pZCB0aGUgSUUgZXJyb3Jcblx0Ly8gU2VlIGh0dHBzOi8vYnVncy5qcXVlcnkuY29tL3RpY2tldC8xMzM3OFxuXHRyYnVnZ3lRU0EgPSBbXTtcblxuXHRpZiAoICggc3VwcG9ydC5xc2EgPSBybmF0aXZlLnRlc3QoIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgKSApICkge1xuXG5cdFx0Ly8gQnVpbGQgUVNBIHJlZ2V4XG5cdFx0Ly8gUmVnZXggc3RyYXRlZ3kgYWRvcHRlZCBmcm9tIERpZWdvIFBlcmluaVxuXHRcdGFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXG5cdFx0XHR2YXIgaW5wdXQ7XG5cblx0XHRcdC8vIFNlbGVjdCBpcyBzZXQgdG8gZW1wdHkgc3RyaW5nIG9uIHB1cnBvc2Vcblx0XHRcdC8vIFRoaXMgaXMgdG8gdGVzdCBJRSdzIHRyZWF0bWVudCBvZiBub3QgZXhwbGljaXRseVxuXHRcdFx0Ly8gc2V0dGluZyBhIGJvb2xlYW4gY29udGVudCBhdHRyaWJ1dGUsXG5cdFx0XHQvLyBzaW5jZSBpdHMgcHJlc2VuY2Ugc2hvdWxkIGJlIGVub3VnaFxuXHRcdFx0Ly8gaHR0cHM6Ly9idWdzLmpxdWVyeS5jb20vdGlja2V0LzEyMzU5XG5cdFx0XHRkb2NFbGVtLmFwcGVuZENoaWxkKCBlbCApLmlubmVySFRNTCA9IFwiPGEgaWQ9J1wiICsgZXhwYW5kbyArIFwiJz48L2E+XCIgK1xuXHRcdFx0XHRcIjxzZWxlY3QgaWQ9J1wiICsgZXhwYW5kbyArIFwiLVxcclxcXFwnIG1zYWxsb3djYXB0dXJlPScnPlwiICtcblx0XHRcdFx0XCI8b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PlwiO1xuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRTgsIE9wZXJhIDExLTEyLjE2XG5cdFx0XHQvLyBOb3RoaW5nIHNob3VsZCBiZSBzZWxlY3RlZCB3aGVuIGVtcHR5IHN0cmluZ3MgZm9sbG93IF49IG9yICQ9IG9yICo9XG5cdFx0XHQvLyBUaGUgdGVzdCBhdHRyaWJ1dGUgbXVzdCBiZSB1bmtub3duIGluIE9wZXJhIGJ1dCBcInNhZmVcIiBmb3IgV2luUlRcblx0XHRcdC8vIGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvaWUvaGg0NjUzODguYXNweCNhdHRyaWJ1dGVfc2VjdGlvblxuXHRcdFx0aWYgKCBlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIlttc2FsbG93Y2FwdHVyZV49JyddXCIgKS5sZW5ndGggKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIlsqXiRdPVwiICsgd2hpdGVzcGFjZSArIFwiKig/OicnfFxcXCJcXFwiKVwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFOFxuXHRcdFx0Ly8gQm9vbGVhbiBhdHRyaWJ1dGVzIGFuZCBcInZhbHVlXCIgYXJlIG5vdCB0cmVhdGVkIGNvcnJlY3RseVxuXHRcdFx0aWYgKCAhZWwucXVlcnlTZWxlY3RvckFsbCggXCJbc2VsZWN0ZWRdXCIgKS5sZW5ndGggKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIlxcXFxbXCIgKyB3aGl0ZXNwYWNlICsgXCIqKD86dmFsdWV8XCIgKyBib29sZWFucyArIFwiKVwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN1cHBvcnQ6IENocm9tZTwyOSwgQW5kcm9pZDw0LjQsIFNhZmFyaTw3LjArLCBpT1M8Ny4wKywgUGhhbnRvbUpTPDEuOS44K1xuXHRcdFx0aWYgKCAhZWwucXVlcnlTZWxlY3RvckFsbCggXCJbaWR+PVwiICsgZXhwYW5kbyArIFwiLV1cIiApLmxlbmd0aCApIHtcblx0XHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwifj1cIiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTUgLSAxOCtcblx0XHRcdC8vIElFIDExL0VkZ2UgZG9uJ3QgZmluZCBlbGVtZW50cyBvbiBhIGBbbmFtZT0nJ11gIHF1ZXJ5IGluIHNvbWUgY2FzZXMuXG5cdFx0XHQvLyBBZGRpbmcgYSB0ZW1wb3JhcnkgYXR0cmlidXRlIHRvIHRoZSBkb2N1bWVudCBiZWZvcmUgdGhlIHNlbGVjdGlvbiB3b3Jrc1xuXHRcdFx0Ly8gYXJvdW5kIHRoZSBpc3N1ZS5cblx0XHRcdC8vIEludGVyZXN0aW5nbHksIElFIDEwICYgb2xkZXIgZG9uJ3Qgc2VlbSB0byBoYXZlIHRoZSBpc3N1ZS5cblx0XHRcdGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJpbnB1dFwiICk7XG5cdFx0XHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwibmFtZVwiLCBcIlwiICk7XG5cdFx0XHRlbC5hcHBlbmRDaGlsZCggaW5wdXQgKTtcblx0XHRcdGlmICggIWVsLnF1ZXJ5U2VsZWN0b3JBbGwoIFwiW25hbWU9JyddXCIgKS5sZW5ndGggKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIlxcXFxbXCIgKyB3aGl0ZXNwYWNlICsgXCIqbmFtZVwiICsgd2hpdGVzcGFjZSArIFwiKj1cIiArXG5cdFx0XHRcdFx0d2hpdGVzcGFjZSArIFwiKig/OicnfFxcXCJcXFwiKVwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFdlYmtpdC9PcGVyYSAtIDpjaGVja2VkIHNob3VsZCByZXR1cm4gc2VsZWN0ZWQgb3B0aW9uIGVsZW1lbnRzXG5cdFx0XHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDExL1JFQy1jc3MzLXNlbGVjdG9ycy0yMDExMDkyOS8jY2hlY2tlZFxuXHRcdFx0Ly8gSUU4IHRocm93cyBlcnJvciBoZXJlIGFuZCB3aWxsIG5vdCBzZWUgbGF0ZXIgdGVzdHNcblx0XHRcdGlmICggIWVsLnF1ZXJ5U2VsZWN0b3JBbGwoIFwiOmNoZWNrZWRcIiApLmxlbmd0aCApIHtcblx0XHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwiOmNoZWNrZWRcIiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdXBwb3J0OiBTYWZhcmkgOCssIGlPUyA4K1xuXHRcdFx0Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjg1MVxuXHRcdFx0Ly8gSW4tcGFnZSBgc2VsZWN0b3IjaWQgc2libGluZy1jb21iaW5hdG9yIHNlbGVjdG9yYCBmYWlsc1xuXHRcdFx0aWYgKCAhZWwucXVlcnlTZWxlY3RvckFsbCggXCJhI1wiICsgZXhwYW5kbyArIFwiKypcIiApLmxlbmd0aCApIHtcblx0XHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwiLiMuK1srfl1cIiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDw9My42IC0gNSBvbmx5XG5cdFx0XHQvLyBPbGQgRmlyZWZveCBkb2Vzbid0IHRocm93IG9uIGEgYmFkbHktZXNjYXBlZCBpZGVudGlmaWVyLlxuXHRcdFx0ZWwucXVlcnlTZWxlY3RvckFsbCggXCJcXFxcXFxmXCIgKTtcblx0XHRcdHJidWdneVFTQS5wdXNoKCBcIltcXFxcclxcXFxuXFxcXGZdXCIgKTtcblx0XHR9ICk7XG5cblx0XHRhc3NlcnQoIGZ1bmN0aW9uKCBlbCApIHtcblx0XHRcdGVsLmlubmVySFRNTCA9IFwiPGEgaHJlZj0nJyBkaXNhYmxlZD0nZGlzYWJsZWQnPjwvYT5cIiArXG5cdFx0XHRcdFwiPHNlbGVjdCBkaXNhYmxlZD0nZGlzYWJsZWQnPjxvcHRpb24vPjwvc2VsZWN0PlwiO1xuXG5cdFx0XHQvLyBTdXBwb3J0OiBXaW5kb3dzIDggTmF0aXZlIEFwcHNcblx0XHRcdC8vIFRoZSB0eXBlIGFuZCBuYW1lIGF0dHJpYnV0ZXMgYXJlIHJlc3RyaWN0ZWQgZHVyaW5nIC5pbm5lckhUTUwgYXNzaWdubWVudFxuXHRcdFx0dmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJpbnB1dFwiICk7XG5cdFx0XHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwidHlwZVwiLCBcImhpZGRlblwiICk7XG5cdFx0XHRlbC5hcHBlbmRDaGlsZCggaW5wdXQgKS5zZXRBdHRyaWJ1dGUoIFwibmFtZVwiLCBcIkRcIiApO1xuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRThcblx0XHRcdC8vIEVuZm9yY2UgY2FzZS1zZW5zaXRpdml0eSBvZiBuYW1lIGF0dHJpYnV0ZVxuXHRcdFx0aWYgKCBlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIltuYW1lPWRdXCIgKS5sZW5ndGggKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIm5hbWVcIiArIHdoaXRlc3BhY2UgKyBcIipbKl4kfCF+XT89XCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gRkYgMy41IC0gOmVuYWJsZWQvOmRpc2FibGVkIGFuZCBoaWRkZW4gZWxlbWVudHMgKGhpZGRlbiBlbGVtZW50cyBhcmUgc3RpbGwgZW5hYmxlZClcblx0XHRcdC8vIElFOCB0aHJvd3MgZXJyb3IgaGVyZSBhbmQgd2lsbCBub3Qgc2VlIGxhdGVyIHRlc3RzXG5cdFx0XHRpZiAoIGVsLnF1ZXJ5U2VsZWN0b3JBbGwoIFwiOmVuYWJsZWRcIiApLmxlbmd0aCAhPT0gMiApIHtcblx0XHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwiOmVuYWJsZWRcIiwgXCI6ZGlzYWJsZWRcIiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRTktMTErXG5cdFx0XHQvLyBJRSdzIDpkaXNhYmxlZCBzZWxlY3RvciBkb2VzIG5vdCBwaWNrIHVwIHRoZSBjaGlsZHJlbiBvZiBkaXNhYmxlZCBmaWVsZHNldHNcblx0XHRcdGRvY0VsZW0uYXBwZW5kQ2hpbGQoIGVsICkuZGlzYWJsZWQgPSB0cnVlO1xuXHRcdFx0aWYgKCBlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIjpkaXNhYmxlZFwiICkubGVuZ3RoICE9PSAyICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCI6ZW5hYmxlZFwiLCBcIjpkaXNhYmxlZFwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN1cHBvcnQ6IE9wZXJhIDEwIC0gMTEgb25seVxuXHRcdFx0Ly8gT3BlcmEgMTAtMTEgZG9lcyBub3QgdGhyb3cgb24gcG9zdC1jb21tYSBpbnZhbGlkIHBzZXVkb3Ncblx0XHRcdGVsLnF1ZXJ5U2VsZWN0b3JBbGwoIFwiKiw6eFwiICk7XG5cdFx0XHRyYnVnZ3lRU0EucHVzaCggXCIsLio6XCIgKTtcblx0XHR9ICk7XG5cdH1cblxuXHRpZiAoICggc3VwcG9ydC5tYXRjaGVzU2VsZWN0b3IgPSBybmF0aXZlLnRlc3QoICggbWF0Y2hlcyA9IGRvY0VsZW0ubWF0Y2hlcyB8fFxuXHRcdGRvY0VsZW0ud2Via2l0TWF0Y2hlc1NlbGVjdG9yIHx8XG5cdFx0ZG9jRWxlbS5tb3pNYXRjaGVzU2VsZWN0b3IgfHxcblx0XHRkb2NFbGVtLm9NYXRjaGVzU2VsZWN0b3IgfHxcblx0XHRkb2NFbGVtLm1zTWF0Y2hlc1NlbGVjdG9yICkgKSApICkge1xuXG5cdFx0YXNzZXJ0KCBmdW5jdGlvbiggZWwgKSB7XG5cblx0XHRcdC8vIENoZWNrIHRvIHNlZSBpZiBpdCdzIHBvc3NpYmxlIHRvIGRvIG1hdGNoZXNTZWxlY3RvclxuXHRcdFx0Ly8gb24gYSBkaXNjb25uZWN0ZWQgbm9kZSAoSUUgOSlcblx0XHRcdHN1cHBvcnQuZGlzY29ubmVjdGVkTWF0Y2ggPSBtYXRjaGVzLmNhbGwoIGVsLCBcIipcIiApO1xuXG5cdFx0XHQvLyBUaGlzIHNob3VsZCBmYWlsIHdpdGggYW4gZXhjZXB0aW9uXG5cdFx0XHQvLyBHZWNrbyBkb2VzIG5vdCBlcnJvciwgcmV0dXJucyBmYWxzZSBpbnN0ZWFkXG5cdFx0XHRtYXRjaGVzLmNhbGwoIGVsLCBcIltzIT0nJ106eFwiICk7XG5cdFx0XHRyYnVnZ3lNYXRjaGVzLnB1c2goIFwiIT1cIiwgcHNldWRvcyApO1xuXHRcdH0gKTtcblx0fVxuXG5cdHJidWdneVFTQSA9IHJidWdneVFTQS5sZW5ndGggJiYgbmV3IFJlZ0V4cCggcmJ1Z2d5UVNBLmpvaW4oIFwifFwiICkgKTtcblx0cmJ1Z2d5TWF0Y2hlcyA9IHJidWdneU1hdGNoZXMubGVuZ3RoICYmIG5ldyBSZWdFeHAoIHJidWdneU1hdGNoZXMuam9pbiggXCJ8XCIgKSApO1xuXG5cdC8qIENvbnRhaW5zXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblx0aGFzQ29tcGFyZSA9IHJuYXRpdmUudGVzdCggZG9jRWxlbS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiApO1xuXG5cdC8vIEVsZW1lbnQgY29udGFpbnMgYW5vdGhlclxuXHQvLyBQdXJwb3NlZnVsbHkgc2VsZi1leGNsdXNpdmVcblx0Ly8gQXMgaW4sIGFuIGVsZW1lbnQgZG9lcyBub3QgY29udGFpbiBpdHNlbGZcblx0Y29udGFpbnMgPSBoYXNDb21wYXJlIHx8IHJuYXRpdmUudGVzdCggZG9jRWxlbS5jb250YWlucyApID9cblx0XHRmdW5jdGlvbiggYSwgYiApIHtcblx0XHRcdHZhciBhZG93biA9IGEubm9kZVR5cGUgPT09IDkgPyBhLmRvY3VtZW50RWxlbWVudCA6IGEsXG5cdFx0XHRcdGJ1cCA9IGIgJiYgYi5wYXJlbnROb2RlO1xuXHRcdFx0cmV0dXJuIGEgPT09IGJ1cCB8fCAhISggYnVwICYmIGJ1cC5ub2RlVHlwZSA9PT0gMSAmJiAoXG5cdFx0XHRcdGFkb3duLmNvbnRhaW5zID9cblx0XHRcdFx0XHRhZG93bi5jb250YWlucyggYnVwICkgOlxuXHRcdFx0XHRcdGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24gJiYgYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiggYnVwICkgJiAxNlxuXHRcdFx0KSApO1xuXHRcdH0gOlxuXHRcdGZ1bmN0aW9uKCBhLCBiICkge1xuXHRcdFx0aWYgKCBiICkge1xuXHRcdFx0XHR3aGlsZSAoICggYiA9IGIucGFyZW50Tm9kZSApICkge1xuXHRcdFx0XHRcdGlmICggYiA9PT0gYSApIHtcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH07XG5cblx0LyogU29ydGluZ1xuXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0Ly8gRG9jdW1lbnQgb3JkZXIgc29ydGluZ1xuXHRzb3J0T3JkZXIgPSBoYXNDb21wYXJlID9cblx0ZnVuY3Rpb24oIGEsIGIgKSB7XG5cblx0XHQvLyBGbGFnIGZvciBkdXBsaWNhdGUgcmVtb3ZhbFxuXHRcdGlmICggYSA9PT0gYiApIHtcblx0XHRcdGhhc0R1cGxpY2F0ZSA9IHRydWU7XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9XG5cblx0XHQvLyBTb3J0IG9uIG1ldGhvZCBleGlzdGVuY2UgaWYgb25seSBvbmUgaW5wdXQgaGFzIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uXG5cdFx0dmFyIGNvbXBhcmUgPSAhYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiAtICFiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uO1xuXHRcdGlmICggY29tcGFyZSApIHtcblx0XHRcdHJldHVybiBjb21wYXJlO1xuXHRcdH1cblxuXHRcdC8vIENhbGN1bGF0ZSBwb3NpdGlvbiBpZiBib3RoIGlucHV0cyBiZWxvbmcgdG8gdGhlIHNhbWUgZG9jdW1lbnRcblx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0XHQvLyBJRS9FZGdlIHNvbWV0aW1lcyB0aHJvdyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvciB3aGVuIHN0cmljdC1jb21wYXJpbmdcblx0XHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRcdGNvbXBhcmUgPSAoIGEub3duZXJEb2N1bWVudCB8fCBhICkgPT0gKCBiLm93bmVyRG9jdW1lbnQgfHwgYiApID9cblx0XHRcdGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oIGIgKSA6XG5cblx0XHRcdC8vIE90aGVyd2lzZSB3ZSBrbm93IHRoZXkgYXJlIGRpc2Nvbm5lY3RlZFxuXHRcdFx0MTtcblxuXHRcdC8vIERpc2Nvbm5lY3RlZCBub2Rlc1xuXHRcdGlmICggY29tcGFyZSAmIDEgfHxcblx0XHRcdCggIXN1cHBvcnQuc29ydERldGFjaGVkICYmIGIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oIGEgKSA9PT0gY29tcGFyZSApICkge1xuXG5cdFx0XHQvLyBDaG9vc2UgdGhlIGZpcnN0IGVsZW1lbnQgdGhhdCBpcyByZWxhdGVkIHRvIG91ciBwcmVmZXJyZWQgZG9jdW1lbnRcblx0XHRcdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNyAtIDE4K1xuXHRcdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdFx0XHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG5cdFx0XHRpZiAoIGEgPT0gZG9jdW1lbnQgfHwgYS5vd25lckRvY3VtZW50ID09IHByZWZlcnJlZERvYyAmJlxuXHRcdFx0XHRjb250YWlucyggcHJlZmVycmVkRG9jLCBhICkgKSB7XG5cdFx0XHRcdHJldHVybiAtMTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdFx0XHQvLyBJRS9FZGdlIHNvbWV0aW1lcyB0aHJvdyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvciB3aGVuIHN0cmljdC1jb21wYXJpbmdcblx0XHRcdC8vIHR3byBkb2N1bWVudHM7IHNoYWxsb3cgY29tcGFyaXNvbnMgd29yay5cblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0XHRcdGlmICggYiA9PSBkb2N1bWVudCB8fCBiLm93bmVyRG9jdW1lbnQgPT0gcHJlZmVycmVkRG9jICYmXG5cdFx0XHRcdGNvbnRhaW5zKCBwcmVmZXJyZWREb2MsIGIgKSApIHtcblx0XHRcdFx0cmV0dXJuIDE7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE1haW50YWluIG9yaWdpbmFsIG9yZGVyXG5cdFx0XHRyZXR1cm4gc29ydElucHV0ID9cblx0XHRcdFx0KCBpbmRleE9mKCBzb3J0SW5wdXQsIGEgKSAtIGluZGV4T2YoIHNvcnRJbnB1dCwgYiApICkgOlxuXHRcdFx0XHQwO1xuXHRcdH1cblxuXHRcdHJldHVybiBjb21wYXJlICYgNCA/IC0xIDogMTtcblx0fSA6XG5cdGZ1bmN0aW9uKCBhLCBiICkge1xuXG5cdFx0Ly8gRXhpdCBlYXJseSBpZiB0aGUgbm9kZXMgYXJlIGlkZW50aWNhbFxuXHRcdGlmICggYSA9PT0gYiApIHtcblx0XHRcdGhhc0R1cGxpY2F0ZSA9IHRydWU7XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9XG5cblx0XHR2YXIgY3VyLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRhdXAgPSBhLnBhcmVudE5vZGUsXG5cdFx0XHRidXAgPSBiLnBhcmVudE5vZGUsXG5cdFx0XHRhcCA9IFsgYSBdLFxuXHRcdFx0YnAgPSBbIGIgXTtcblxuXHRcdC8vIFBhcmVudGxlc3Mgbm9kZXMgYXJlIGVpdGhlciBkb2N1bWVudHMgb3IgZGlzY29ubmVjdGVkXG5cdFx0aWYgKCAhYXVwIHx8ICFidXAgKSB7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNyAtIDE4K1xuXHRcdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdFx0XHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdFx0XHQvKiBlc2xpbnQtZGlzYWJsZSBlcWVxZXEgKi9cblx0XHRcdHJldHVybiBhID09IGRvY3VtZW50ID8gLTEgOlxuXHRcdFx0XHRiID09IGRvY3VtZW50ID8gMSA6XG5cdFx0XHRcdC8qIGVzbGludC1lbmFibGUgZXFlcWVxICovXG5cdFx0XHRcdGF1cCA/IC0xIDpcblx0XHRcdFx0YnVwID8gMSA6XG5cdFx0XHRcdHNvcnRJbnB1dCA/XG5cdFx0XHRcdCggaW5kZXhPZiggc29ydElucHV0LCBhICkgLSBpbmRleE9mKCBzb3J0SW5wdXQsIGIgKSApIDpcblx0XHRcdFx0MDtcblxuXHRcdC8vIElmIHRoZSBub2RlcyBhcmUgc2libGluZ3MsIHdlIGNhbiBkbyBhIHF1aWNrIGNoZWNrXG5cdFx0fSBlbHNlIGlmICggYXVwID09PSBidXAgKSB7XG5cdFx0XHRyZXR1cm4gc2libGluZ0NoZWNrKCBhLCBiICk7XG5cdFx0fVxuXG5cdFx0Ly8gT3RoZXJ3aXNlIHdlIG5lZWQgZnVsbCBsaXN0cyBvZiB0aGVpciBhbmNlc3RvcnMgZm9yIGNvbXBhcmlzb25cblx0XHRjdXIgPSBhO1xuXHRcdHdoaWxlICggKCBjdXIgPSBjdXIucGFyZW50Tm9kZSApICkge1xuXHRcdFx0YXAudW5zaGlmdCggY3VyICk7XG5cdFx0fVxuXHRcdGN1ciA9IGI7XG5cdFx0d2hpbGUgKCAoIGN1ciA9IGN1ci5wYXJlbnROb2RlICkgKSB7XG5cdFx0XHRicC51bnNoaWZ0KCBjdXIgKTtcblx0XHR9XG5cblx0XHQvLyBXYWxrIGRvd24gdGhlIHRyZWUgbG9va2luZyBmb3IgYSBkaXNjcmVwYW5jeVxuXHRcdHdoaWxlICggYXBbIGkgXSA9PT0gYnBbIGkgXSApIHtcblx0XHRcdGkrKztcblx0XHR9XG5cblx0XHRyZXR1cm4gaSA/XG5cblx0XHRcdC8vIERvIGEgc2libGluZyBjaGVjayBpZiB0aGUgbm9kZXMgaGF2ZSBhIGNvbW1vbiBhbmNlc3RvclxuXHRcdFx0c2libGluZ0NoZWNrKCBhcFsgaSBdLCBicFsgaSBdICkgOlxuXG5cdFx0XHQvLyBPdGhlcndpc2Ugbm9kZXMgaW4gb3VyIGRvY3VtZW50IHNvcnQgZmlyc3Rcblx0XHRcdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNyAtIDE4K1xuXHRcdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdFx0XHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdFx0XHQvKiBlc2xpbnQtZGlzYWJsZSBlcWVxZXEgKi9cblx0XHRcdGFwWyBpIF0gPT0gcHJlZmVycmVkRG9jID8gLTEgOlxuXHRcdFx0YnBbIGkgXSA9PSBwcmVmZXJyZWREb2MgPyAxIDpcblx0XHRcdC8qIGVzbGludC1lbmFibGUgZXFlcWVxICovXG5cdFx0XHQwO1xuXHR9O1xuXG5cdHJldHVybiBkb2N1bWVudDtcbn07XG5cblNpenpsZS5tYXRjaGVzID0gZnVuY3Rpb24oIGV4cHIsIGVsZW1lbnRzICkge1xuXHRyZXR1cm4gU2l6emxlKCBleHByLCBudWxsLCBudWxsLCBlbGVtZW50cyApO1xufTtcblxuU2l6emxlLm1hdGNoZXNTZWxlY3RvciA9IGZ1bmN0aW9uKCBlbGVtLCBleHByICkge1xuXHRzZXREb2N1bWVudCggZWxlbSApO1xuXG5cdGlmICggc3VwcG9ydC5tYXRjaGVzU2VsZWN0b3IgJiYgZG9jdW1lbnRJc0hUTUwgJiZcblx0XHQhbm9ubmF0aXZlU2VsZWN0b3JDYWNoZVsgZXhwciArIFwiIFwiIF0gJiZcblx0XHQoICFyYnVnZ3lNYXRjaGVzIHx8ICFyYnVnZ3lNYXRjaGVzLnRlc3QoIGV4cHIgKSApICYmXG5cdFx0KCAhcmJ1Z2d5UVNBICAgICB8fCAhcmJ1Z2d5UVNBLnRlc3QoIGV4cHIgKSApICkge1xuXG5cdFx0dHJ5IHtcblx0XHRcdHZhciByZXQgPSBtYXRjaGVzLmNhbGwoIGVsZW0sIGV4cHIgKTtcblxuXHRcdFx0Ly8gSUUgOSdzIG1hdGNoZXNTZWxlY3RvciByZXR1cm5zIGZhbHNlIG9uIGRpc2Nvbm5lY3RlZCBub2Rlc1xuXHRcdFx0aWYgKCByZXQgfHwgc3VwcG9ydC5kaXNjb25uZWN0ZWRNYXRjaCB8fFxuXG5cdFx0XHRcdC8vIEFzIHdlbGwsIGRpc2Nvbm5lY3RlZCBub2RlcyBhcmUgc2FpZCB0byBiZSBpbiBhIGRvY3VtZW50XG5cdFx0XHRcdC8vIGZyYWdtZW50IGluIElFIDlcblx0XHRcdFx0ZWxlbS5kb2N1bWVudCAmJiBlbGVtLmRvY3VtZW50Lm5vZGVUeXBlICE9PSAxMSApIHtcblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblx0XHR9IGNhdGNoICggZSApIHtcblx0XHRcdG5vbm5hdGl2ZVNlbGVjdG9yQ2FjaGUoIGV4cHIsIHRydWUgKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gU2l6emxlKCBleHByLCBkb2N1bWVudCwgbnVsbCwgWyBlbGVtIF0gKS5sZW5ndGggPiAwO1xufTtcblxuU2l6emxlLmNvbnRhaW5zID0gZnVuY3Rpb24oIGNvbnRleHQsIGVsZW0gKSB7XG5cblx0Ly8gU2V0IGRvY3VtZW50IHZhcnMgaWYgbmVlZGVkXG5cdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNyAtIDE4K1xuXHQvLyBJRS9FZGdlIHNvbWV0aW1lcyB0aHJvdyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvciB3aGVuIHN0cmljdC1jb21wYXJpbmdcblx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG5cdGlmICggKCBjb250ZXh0Lm93bmVyRG9jdW1lbnQgfHwgY29udGV4dCApICE9IGRvY3VtZW50ICkge1xuXHRcdHNldERvY3VtZW50KCBjb250ZXh0ICk7XG5cdH1cblx0cmV0dXJuIGNvbnRhaW5zKCBjb250ZXh0LCBlbGVtICk7XG59O1xuXG5TaXp6bGUuYXR0ciA9IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkge1xuXG5cdC8vIFNldCBkb2N1bWVudCB2YXJzIGlmIG5lZWRlZFxuXHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdC8vIHR3byBkb2N1bWVudHM7IHNoYWxsb3cgY29tcGFyaXNvbnMgd29yay5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRpZiAoICggZWxlbS5vd25lckRvY3VtZW50IHx8IGVsZW0gKSAhPSBkb2N1bWVudCApIHtcblx0XHRzZXREb2N1bWVudCggZWxlbSApO1xuXHR9XG5cblx0dmFyIGZuID0gRXhwci5hdHRySGFuZGxlWyBuYW1lLnRvTG93ZXJDYXNlKCkgXSxcblxuXHRcdC8vIERvbid0IGdldCBmb29sZWQgYnkgT2JqZWN0LnByb3RvdHlwZSBwcm9wZXJ0aWVzIChqUXVlcnkgIzEzODA3KVxuXHRcdHZhbCA9IGZuICYmIGhhc093bi5jYWxsKCBFeHByLmF0dHJIYW5kbGUsIG5hbWUudG9Mb3dlckNhc2UoKSApID9cblx0XHRcdGZuKCBlbGVtLCBuYW1lLCAhZG9jdW1lbnRJc0hUTUwgKSA6XG5cdFx0XHR1bmRlZmluZWQ7XG5cblx0cmV0dXJuIHZhbCAhPT0gdW5kZWZpbmVkID9cblx0XHR2YWwgOlxuXHRcdHN1cHBvcnQuYXR0cmlidXRlcyB8fCAhZG9jdW1lbnRJc0hUTUwgP1xuXHRcdFx0ZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKSA6XG5cdFx0XHQoIHZhbCA9IGVsZW0uZ2V0QXR0cmlidXRlTm9kZSggbmFtZSApICkgJiYgdmFsLnNwZWNpZmllZCA/XG5cdFx0XHRcdHZhbC52YWx1ZSA6XG5cdFx0XHRcdG51bGw7XG59O1xuXG5TaXp6bGUuZXNjYXBlID0gZnVuY3Rpb24oIHNlbCApIHtcblx0cmV0dXJuICggc2VsICsgXCJcIiApLnJlcGxhY2UoIHJjc3Nlc2NhcGUsIGZjc3Nlc2NhcGUgKTtcbn07XG5cblNpenpsZS5lcnJvciA9IGZ1bmN0aW9uKCBtc2cgKSB7XG5cdHRocm93IG5ldyBFcnJvciggXCJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiBcIiArIG1zZyApO1xufTtcblxuLyoqXG4gKiBEb2N1bWVudCBzb3J0aW5nIGFuZCByZW1vdmluZyBkdXBsaWNhdGVzXG4gKiBAcGFyYW0ge0FycmF5TGlrZX0gcmVzdWx0c1xuICovXG5TaXp6bGUudW5pcXVlU29ydCA9IGZ1bmN0aW9uKCByZXN1bHRzICkge1xuXHR2YXIgZWxlbSxcblx0XHRkdXBsaWNhdGVzID0gW10sXG5cdFx0aiA9IDAsXG5cdFx0aSA9IDA7XG5cblx0Ly8gVW5sZXNzIHdlICprbm93KiB3ZSBjYW4gZGV0ZWN0IGR1cGxpY2F0ZXMsIGFzc3VtZSB0aGVpciBwcmVzZW5jZVxuXHRoYXNEdXBsaWNhdGUgPSAhc3VwcG9ydC5kZXRlY3REdXBsaWNhdGVzO1xuXHRzb3J0SW5wdXQgPSAhc3VwcG9ydC5zb3J0U3RhYmxlICYmIHJlc3VsdHMuc2xpY2UoIDAgKTtcblx0cmVzdWx0cy5zb3J0KCBzb3J0T3JkZXIgKTtcblxuXHRpZiAoIGhhc0R1cGxpY2F0ZSApIHtcblx0XHR3aGlsZSAoICggZWxlbSA9IHJlc3VsdHNbIGkrKyBdICkgKSB7XG5cdFx0XHRpZiAoIGVsZW0gPT09IHJlc3VsdHNbIGkgXSApIHtcblx0XHRcdFx0aiA9IGR1cGxpY2F0ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdH1cblx0XHR3aGlsZSAoIGotLSApIHtcblx0XHRcdHJlc3VsdHMuc3BsaWNlKCBkdXBsaWNhdGVzWyBqIF0sIDEgKTtcblx0XHR9XG5cdH1cblxuXHQvLyBDbGVhciBpbnB1dCBhZnRlciBzb3J0aW5nIHRvIHJlbGVhc2Ugb2JqZWN0c1xuXHQvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9zaXp6bGUvcHVsbC8yMjVcblx0c29ydElucHV0ID0gbnVsbDtcblxuXHRyZXR1cm4gcmVzdWx0cztcbn07XG5cbi8qKlxuICogVXRpbGl0eSBmdW5jdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgdGV4dCB2YWx1ZSBvZiBhbiBhcnJheSBvZiBET00gbm9kZXNcbiAqIEBwYXJhbSB7QXJyYXl8RWxlbWVudH0gZWxlbVxuICovXG5nZXRUZXh0ID0gU2l6emxlLmdldFRleHQgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0dmFyIG5vZGUsXG5cdFx0cmV0ID0gXCJcIixcblx0XHRpID0gMCxcblx0XHRub2RlVHlwZSA9IGVsZW0ubm9kZVR5cGU7XG5cblx0aWYgKCAhbm9kZVR5cGUgKSB7XG5cblx0XHQvLyBJZiBubyBub2RlVHlwZSwgdGhpcyBpcyBleHBlY3RlZCB0byBiZSBhbiBhcnJheVxuXHRcdHdoaWxlICggKCBub2RlID0gZWxlbVsgaSsrIF0gKSApIHtcblxuXHRcdFx0Ly8gRG8gbm90IHRyYXZlcnNlIGNvbW1lbnQgbm9kZXNcblx0XHRcdHJldCArPSBnZXRUZXh0KCBub2RlICk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKCBub2RlVHlwZSA9PT0gMSB8fCBub2RlVHlwZSA9PT0gOSB8fCBub2RlVHlwZSA9PT0gMTEgKSB7XG5cblx0XHQvLyBVc2UgdGV4dENvbnRlbnQgZm9yIGVsZW1lbnRzXG5cdFx0Ly8gaW5uZXJUZXh0IHVzYWdlIHJlbW92ZWQgZm9yIGNvbnNpc3RlbmN5IG9mIG5ldyBsaW5lcyAoalF1ZXJ5ICMxMTE1Mylcblx0XHRpZiAoIHR5cGVvZiBlbGVtLnRleHRDb250ZW50ID09PSBcInN0cmluZ1wiICkge1xuXHRcdFx0cmV0dXJuIGVsZW0udGV4dENvbnRlbnQ7XG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0Ly8gVHJhdmVyc2UgaXRzIGNoaWxkcmVuXG5cdFx0XHRmb3IgKCBlbGVtID0gZWxlbS5maXJzdENoaWxkOyBlbGVtOyBlbGVtID0gZWxlbS5uZXh0U2libGluZyApIHtcblx0XHRcdFx0cmV0ICs9IGdldFRleHQoIGVsZW0gKTtcblx0XHRcdH1cblx0XHR9XG5cdH0gZWxzZSBpZiAoIG5vZGVUeXBlID09PSAzIHx8IG5vZGVUeXBlID09PSA0ICkge1xuXHRcdHJldHVybiBlbGVtLm5vZGVWYWx1ZTtcblx0fVxuXG5cdC8vIERvIG5vdCBpbmNsdWRlIGNvbW1lbnQgb3IgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBub2Rlc1xuXG5cdHJldHVybiByZXQ7XG59O1xuXG5FeHByID0gU2l6emxlLnNlbGVjdG9ycyA9IHtcblxuXHQvLyBDYW4gYmUgYWRqdXN0ZWQgYnkgdGhlIHVzZXJcblx0Y2FjaGVMZW5ndGg6IDUwLFxuXG5cdGNyZWF0ZVBzZXVkbzogbWFya0Z1bmN0aW9uLFxuXG5cdG1hdGNoOiBtYXRjaEV4cHIsXG5cblx0YXR0ckhhbmRsZToge30sXG5cblx0ZmluZDoge30sXG5cblx0cmVsYXRpdmU6IHtcblx0XHRcIj5cIjogeyBkaXI6IFwicGFyZW50Tm9kZVwiLCBmaXJzdDogdHJ1ZSB9LFxuXHRcdFwiIFwiOiB7IGRpcjogXCJwYXJlbnROb2RlXCIgfSxcblx0XHRcIitcIjogeyBkaXI6IFwicHJldmlvdXNTaWJsaW5nXCIsIGZpcnN0OiB0cnVlIH0sXG5cdFx0XCJ+XCI6IHsgZGlyOiBcInByZXZpb3VzU2libGluZ1wiIH1cblx0fSxcblxuXHRwcmVGaWx0ZXI6IHtcblx0XHRcIkFUVFJcIjogZnVuY3Rpb24oIG1hdGNoICkge1xuXHRcdFx0bWF0Y2hbIDEgXSA9IG1hdGNoWyAxIF0ucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblxuXHRcdFx0Ly8gTW92ZSB0aGUgZ2l2ZW4gdmFsdWUgdG8gbWF0Y2hbM10gd2hldGhlciBxdW90ZWQgb3IgdW5xdW90ZWRcblx0XHRcdG1hdGNoWyAzIF0gPSAoIG1hdGNoWyAzIF0gfHwgbWF0Y2hbIDQgXSB8fFxuXHRcdFx0XHRtYXRjaFsgNSBdIHx8IFwiXCIgKS5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApO1xuXG5cdFx0XHRpZiAoIG1hdGNoWyAyIF0gPT09IFwifj1cIiApIHtcblx0XHRcdFx0bWF0Y2hbIDMgXSA9IFwiIFwiICsgbWF0Y2hbIDMgXSArIFwiIFwiO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbWF0Y2guc2xpY2UoIDAsIDQgKTtcblx0XHR9LFxuXG5cdFx0XCJDSElMRFwiOiBmdW5jdGlvbiggbWF0Y2ggKSB7XG5cblx0XHRcdC8qIG1hdGNoZXMgZnJvbSBtYXRjaEV4cHJbXCJDSElMRFwiXVxuXHRcdFx0XHQxIHR5cGUgKG9ubHl8bnRofC4uLilcblx0XHRcdFx0MiB3aGF0IChjaGlsZHxvZi10eXBlKVxuXHRcdFx0XHQzIGFyZ3VtZW50IChldmVufG9kZHxcXGQqfFxcZCpuKFsrLV1cXGQrKT98Li4uKVxuXHRcdFx0XHQ0IHhuLWNvbXBvbmVudCBvZiB4bit5IGFyZ3VtZW50IChbKy1dP1xcZCpufClcblx0XHRcdFx0NSBzaWduIG9mIHhuLWNvbXBvbmVudFxuXHRcdFx0XHQ2IHggb2YgeG4tY29tcG9uZW50XG5cdFx0XHRcdDcgc2lnbiBvZiB5LWNvbXBvbmVudFxuXHRcdFx0XHQ4IHkgb2YgeS1jb21wb25lbnRcblx0XHRcdCovXG5cdFx0XHRtYXRjaFsgMSBdID0gbWF0Y2hbIDEgXS50b0xvd2VyQ2FzZSgpO1xuXG5cdFx0XHRpZiAoIG1hdGNoWyAxIF0uc2xpY2UoIDAsIDMgKSA9PT0gXCJudGhcIiApIHtcblxuXHRcdFx0XHQvLyBudGgtKiByZXF1aXJlcyBhcmd1bWVudFxuXHRcdFx0XHRpZiAoICFtYXRjaFsgMyBdICkge1xuXHRcdFx0XHRcdFNpenpsZS5lcnJvciggbWF0Y2hbIDAgXSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gbnVtZXJpYyB4IGFuZCB5IHBhcmFtZXRlcnMgZm9yIEV4cHIuZmlsdGVyLkNISUxEXG5cdFx0XHRcdC8vIHJlbWVtYmVyIHRoYXQgZmFsc2UvdHJ1ZSBjYXN0IHJlc3BlY3RpdmVseSB0byAwLzFcblx0XHRcdFx0bWF0Y2hbIDQgXSA9ICsoIG1hdGNoWyA0IF0gP1xuXHRcdFx0XHRcdG1hdGNoWyA1IF0gKyAoIG1hdGNoWyA2IF0gfHwgMSApIDpcblx0XHRcdFx0XHQyICogKCBtYXRjaFsgMyBdID09PSBcImV2ZW5cIiB8fCBtYXRjaFsgMyBdID09PSBcIm9kZFwiICkgKTtcblx0XHRcdFx0bWF0Y2hbIDUgXSA9ICsoICggbWF0Y2hbIDcgXSArIG1hdGNoWyA4IF0gKSB8fCBtYXRjaFsgMyBdID09PSBcIm9kZFwiICk7XG5cblx0XHRcdFx0Ly8gb3RoZXIgdHlwZXMgcHJvaGliaXQgYXJndW1lbnRzXG5cdFx0XHR9IGVsc2UgaWYgKCBtYXRjaFsgMyBdICkge1xuXHRcdFx0XHRTaXp6bGUuZXJyb3IoIG1hdGNoWyAwIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG1hdGNoO1xuXHRcdH0sXG5cblx0XHRcIlBTRVVET1wiOiBmdW5jdGlvbiggbWF0Y2ggKSB7XG5cdFx0XHR2YXIgZXhjZXNzLFxuXHRcdFx0XHR1bnF1b3RlZCA9ICFtYXRjaFsgNiBdICYmIG1hdGNoWyAyIF07XG5cblx0XHRcdGlmICggbWF0Y2hFeHByWyBcIkNISUxEXCIgXS50ZXN0KCBtYXRjaFsgMCBdICkgKSB7XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBY2NlcHQgcXVvdGVkIGFyZ3VtZW50cyBhcy1pc1xuXHRcdFx0aWYgKCBtYXRjaFsgMyBdICkge1xuXHRcdFx0XHRtYXRjaFsgMiBdID0gbWF0Y2hbIDQgXSB8fCBtYXRjaFsgNSBdIHx8IFwiXCI7XG5cblx0XHRcdC8vIFN0cmlwIGV4Y2VzcyBjaGFyYWN0ZXJzIGZyb20gdW5xdW90ZWQgYXJndW1lbnRzXG5cdFx0XHR9IGVsc2UgaWYgKCB1bnF1b3RlZCAmJiBycHNldWRvLnRlc3QoIHVucXVvdGVkICkgJiZcblxuXHRcdFx0XHQvLyBHZXQgZXhjZXNzIGZyb20gdG9rZW5pemUgKHJlY3Vyc2l2ZWx5KVxuXHRcdFx0XHQoIGV4Y2VzcyA9IHRva2VuaXplKCB1bnF1b3RlZCwgdHJ1ZSApICkgJiZcblxuXHRcdFx0XHQvLyBhZHZhbmNlIHRvIHRoZSBuZXh0IGNsb3NpbmcgcGFyZW50aGVzaXNcblx0XHRcdFx0KCBleGNlc3MgPSB1bnF1b3RlZC5pbmRleE9mKCBcIilcIiwgdW5xdW90ZWQubGVuZ3RoIC0gZXhjZXNzICkgLSB1bnF1b3RlZC5sZW5ndGggKSApIHtcblxuXHRcdFx0XHQvLyBleGNlc3MgaXMgYSBuZWdhdGl2ZSBpbmRleFxuXHRcdFx0XHRtYXRjaFsgMCBdID0gbWF0Y2hbIDAgXS5zbGljZSggMCwgZXhjZXNzICk7XG5cdFx0XHRcdG1hdGNoWyAyIF0gPSB1bnF1b3RlZC5zbGljZSggMCwgZXhjZXNzICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFJldHVybiBvbmx5IGNhcHR1cmVzIG5lZWRlZCBieSB0aGUgcHNldWRvIGZpbHRlciBtZXRob2QgKHR5cGUgYW5kIGFyZ3VtZW50KVxuXHRcdFx0cmV0dXJuIG1hdGNoLnNsaWNlKCAwLCAzICk7XG5cdFx0fVxuXHR9LFxuXG5cdGZpbHRlcjoge1xuXG5cdFx0XCJUQUdcIjogZnVuY3Rpb24oIG5vZGVOYW1lU2VsZWN0b3IgKSB7XG5cdFx0XHR2YXIgbm9kZU5hbWUgPSBub2RlTmFtZVNlbGVjdG9yLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICkudG9Mb3dlckNhc2UoKTtcblx0XHRcdHJldHVybiBub2RlTmFtZVNlbGVjdG9yID09PSBcIipcIiA/XG5cdFx0XHRcdGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9IDpcblx0XHRcdFx0ZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGVsZW0ubm9kZU5hbWUgJiYgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBub2RlTmFtZTtcblx0XHRcdFx0fTtcblx0XHR9LFxuXG5cdFx0XCJDTEFTU1wiOiBmdW5jdGlvbiggY2xhc3NOYW1lICkge1xuXHRcdFx0dmFyIHBhdHRlcm4gPSBjbGFzc0NhY2hlWyBjbGFzc05hbWUgKyBcIiBcIiBdO1xuXG5cdFx0XHRyZXR1cm4gcGF0dGVybiB8fFxuXHRcdFx0XHQoIHBhdHRlcm4gPSBuZXcgUmVnRXhwKCBcIihefFwiICsgd2hpdGVzcGFjZSArXG5cdFx0XHRcdFx0XCIpXCIgKyBjbGFzc05hbWUgKyBcIihcIiArIHdoaXRlc3BhY2UgKyBcInwkKVwiICkgKSAmJiBjbGFzc0NhY2hlKFxuXHRcdFx0XHRcdFx0Y2xhc3NOYW1lLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHBhdHRlcm4udGVzdChcblx0XHRcdFx0XHRcdFx0XHR0eXBlb2YgZWxlbS5jbGFzc05hbWUgPT09IFwic3RyaW5nXCIgJiYgZWxlbS5jbGFzc05hbWUgfHxcblx0XHRcdFx0XHRcdFx0XHR0eXBlb2YgZWxlbS5nZXRBdHRyaWJ1dGUgIT09IFwidW5kZWZpbmVkXCIgJiZcblx0XHRcdFx0XHRcdFx0XHRcdGVsZW0uZ2V0QXR0cmlidXRlKCBcImNsYXNzXCIgKSB8fFxuXHRcdFx0XHRcdFx0XHRcdFwiXCJcblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0fSApO1xuXHRcdH0sXG5cblx0XHRcIkFUVFJcIjogZnVuY3Rpb24oIG5hbWUsIG9wZXJhdG9yLCBjaGVjayApIHtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0dmFyIHJlc3VsdCA9IFNpenpsZS5hdHRyKCBlbGVtLCBuYW1lICk7XG5cblx0XHRcdFx0aWYgKCByZXN1bHQgPT0gbnVsbCApIHtcblx0XHRcdFx0XHRyZXR1cm4gb3BlcmF0b3IgPT09IFwiIT1cIjtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoICFvcGVyYXRvciApIHtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJlc3VsdCArPSBcIlwiO1xuXG5cdFx0XHRcdC8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cblxuXHRcdFx0XHRyZXR1cm4gb3BlcmF0b3IgPT09IFwiPVwiID8gcmVzdWx0ID09PSBjaGVjayA6XG5cdFx0XHRcdFx0b3BlcmF0b3IgPT09IFwiIT1cIiA/IHJlc3VsdCAhPT0gY2hlY2sgOlxuXHRcdFx0XHRcdG9wZXJhdG9yID09PSBcIl49XCIgPyBjaGVjayAmJiByZXN1bHQuaW5kZXhPZiggY2hlY2sgKSA9PT0gMCA6XG5cdFx0XHRcdFx0b3BlcmF0b3IgPT09IFwiKj1cIiA/IGNoZWNrICYmIHJlc3VsdC5pbmRleE9mKCBjaGVjayApID4gLTEgOlxuXHRcdFx0XHRcdG9wZXJhdG9yID09PSBcIiQ9XCIgPyBjaGVjayAmJiByZXN1bHQuc2xpY2UoIC1jaGVjay5sZW5ndGggKSA9PT0gY2hlY2sgOlxuXHRcdFx0XHRcdG9wZXJhdG9yID09PSBcIn49XCIgPyAoIFwiIFwiICsgcmVzdWx0LnJlcGxhY2UoIHJ3aGl0ZXNwYWNlLCBcIiBcIiApICsgXCIgXCIgKS5pbmRleE9mKCBjaGVjayApID4gLTEgOlxuXHRcdFx0XHRcdG9wZXJhdG9yID09PSBcInw9XCIgPyByZXN1bHQgPT09IGNoZWNrIHx8IHJlc3VsdC5zbGljZSggMCwgY2hlY2subGVuZ3RoICsgMSApID09PSBjaGVjayArIFwiLVwiIDpcblx0XHRcdFx0XHRmYWxzZTtcblx0XHRcdFx0LyogZXNsaW50LWVuYWJsZSBtYXgtbGVuICovXG5cblx0XHRcdH07XG5cdFx0fSxcblxuXHRcdFwiQ0hJTERcIjogZnVuY3Rpb24oIHR5cGUsIHdoYXQsIF9hcmd1bWVudCwgZmlyc3QsIGxhc3QgKSB7XG5cdFx0XHR2YXIgc2ltcGxlID0gdHlwZS5zbGljZSggMCwgMyApICE9PSBcIm50aFwiLFxuXHRcdFx0XHRmb3J3YXJkID0gdHlwZS5zbGljZSggLTQgKSAhPT0gXCJsYXN0XCIsXG5cdFx0XHRcdG9mVHlwZSA9IHdoYXQgPT09IFwib2YtdHlwZVwiO1xuXG5cdFx0XHRyZXR1cm4gZmlyc3QgPT09IDEgJiYgbGFzdCA9PT0gMCA/XG5cblx0XHRcdFx0Ly8gU2hvcnRjdXQgZm9yIDpudGgtKihuKVxuXHRcdFx0XHRmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0XHRyZXR1cm4gISFlbGVtLnBhcmVudE5vZGU7XG5cdFx0XHRcdH0gOlxuXG5cdFx0XHRcdGZ1bmN0aW9uKCBlbGVtLCBfY29udGV4dCwgeG1sICkge1xuXHRcdFx0XHRcdHZhciBjYWNoZSwgdW5pcXVlQ2FjaGUsIG91dGVyQ2FjaGUsIG5vZGUsIG5vZGVJbmRleCwgc3RhcnQsXG5cdFx0XHRcdFx0XHRkaXIgPSBzaW1wbGUgIT09IGZvcndhcmQgPyBcIm5leHRTaWJsaW5nXCIgOiBcInByZXZpb3VzU2libGluZ1wiLFxuXHRcdFx0XHRcdFx0cGFyZW50ID0gZWxlbS5wYXJlbnROb2RlLFxuXHRcdFx0XHRcdFx0bmFtZSA9IG9mVHlwZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksXG5cdFx0XHRcdFx0XHR1c2VDYWNoZSA9ICF4bWwgJiYgIW9mVHlwZSxcblx0XHRcdFx0XHRcdGRpZmYgPSBmYWxzZTtcblxuXHRcdFx0XHRcdGlmICggcGFyZW50ICkge1xuXG5cdFx0XHRcdFx0XHQvLyA6KGZpcnN0fGxhc3R8b25seSktKGNoaWxkfG9mLXR5cGUpXG5cdFx0XHRcdFx0XHRpZiAoIHNpbXBsZSApIHtcblx0XHRcdFx0XHRcdFx0d2hpbGUgKCBkaXIgKSB7XG5cdFx0XHRcdFx0XHRcdFx0bm9kZSA9IGVsZW07XG5cdFx0XHRcdFx0XHRcdFx0d2hpbGUgKCAoIG5vZGUgPSBub2RlWyBkaXIgXSApICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBvZlR5cGUgP1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRub2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IG5hbWUgOlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRub2RlLm5vZGVUeXBlID09PSAxICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBSZXZlcnNlIGRpcmVjdGlvbiBmb3IgOm9ubHktKiAoaWYgd2UgaGF2ZW4ndCB5ZXQgZG9uZSBzbylcblx0XHRcdFx0XHRcdFx0XHRzdGFydCA9IGRpciA9IHR5cGUgPT09IFwib25seVwiICYmICFzdGFydCAmJiBcIm5leHRTaWJsaW5nXCI7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdHN0YXJ0ID0gWyBmb3J3YXJkID8gcGFyZW50LmZpcnN0Q2hpbGQgOiBwYXJlbnQubGFzdENoaWxkIF07XG5cblx0XHRcdFx0XHRcdC8vIG5vbi14bWwgOm50aC1jaGlsZCguLi4pIHN0b3JlcyBjYWNoZSBkYXRhIG9uIGBwYXJlbnRgXG5cdFx0XHRcdFx0XHRpZiAoIGZvcndhcmQgJiYgdXNlQ2FjaGUgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gU2VlayBgZWxlbWAgZnJvbSBhIHByZXZpb3VzbHktY2FjaGVkIGluZGV4XG5cblx0XHRcdFx0XHRcdFx0Ly8gLi4uaW4gYSBnemlwLWZyaWVuZGx5IHdheVxuXHRcdFx0XHRcdFx0XHRub2RlID0gcGFyZW50O1xuXHRcdFx0XHRcdFx0XHRvdXRlckNhY2hlID0gbm9kZVsgZXhwYW5kbyBdIHx8ICggbm9kZVsgZXhwYW5kbyBdID0ge30gKTtcblxuXHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA8OSBvbmx5XG5cdFx0XHRcdFx0XHRcdC8vIERlZmVuZCBhZ2FpbnN0IGNsb25lZCBhdHRyb3BlcnRpZXMgKGpRdWVyeSBnaC0xNzA5KVxuXHRcdFx0XHRcdFx0XHR1bmlxdWVDYWNoZSA9IG91dGVyQ2FjaGVbIG5vZGUudW5pcXVlSUQgXSB8fFxuXHRcdFx0XHRcdFx0XHRcdCggb3V0ZXJDYWNoZVsgbm9kZS51bmlxdWVJRCBdID0ge30gKTtcblxuXHRcdFx0XHRcdFx0XHRjYWNoZSA9IHVuaXF1ZUNhY2hlWyB0eXBlIF0gfHwgW107XG5cdFx0XHRcdFx0XHRcdG5vZGVJbmRleCA9IGNhY2hlWyAwIF0gPT09IGRpcnJ1bnMgJiYgY2FjaGVbIDEgXTtcblx0XHRcdFx0XHRcdFx0ZGlmZiA9IG5vZGVJbmRleCAmJiBjYWNoZVsgMiBdO1xuXHRcdFx0XHRcdFx0XHRub2RlID0gbm9kZUluZGV4ICYmIHBhcmVudC5jaGlsZE5vZGVzWyBub2RlSW5kZXggXTtcblxuXHRcdFx0XHRcdFx0XHR3aGlsZSAoICggbm9kZSA9ICsrbm9kZUluZGV4ICYmIG5vZGUgJiYgbm9kZVsgZGlyIF0gfHxcblxuXHRcdFx0XHRcdFx0XHRcdC8vIEZhbGxiYWNrIHRvIHNlZWtpbmcgYGVsZW1gIGZyb20gdGhlIHN0YXJ0XG5cdFx0XHRcdFx0XHRcdFx0KCBkaWZmID0gbm9kZUluZGV4ID0gMCApIHx8IHN0YXJ0LnBvcCgpICkgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBXaGVuIGZvdW5kLCBjYWNoZSBpbmRleGVzIG9uIGBwYXJlbnRgIGFuZCBicmVha1xuXHRcdFx0XHRcdFx0XHRcdGlmICggbm9kZS5ub2RlVHlwZSA9PT0gMSAmJiArK2RpZmYgJiYgbm9kZSA9PT0gZWxlbSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdHVuaXF1ZUNhY2hlWyB0eXBlIF0gPSBbIGRpcnJ1bnMsIG5vZGVJbmRleCwgZGlmZiBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gVXNlIHByZXZpb3VzbHktY2FjaGVkIGVsZW1lbnQgaW5kZXggaWYgYXZhaWxhYmxlXG5cdFx0XHRcdFx0XHRcdGlmICggdXNlQ2FjaGUgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyAuLi5pbiBhIGd6aXAtZnJpZW5kbHkgd2F5XG5cdFx0XHRcdFx0XHRcdFx0bm9kZSA9IGVsZW07XG5cdFx0XHRcdFx0XHRcdFx0b3V0ZXJDYWNoZSA9IG5vZGVbIGV4cGFuZG8gXSB8fCAoIG5vZGVbIGV4cGFuZG8gXSA9IHt9ICk7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA8OSBvbmx5XG5cdFx0XHRcdFx0XHRcdFx0Ly8gRGVmZW5kIGFnYWluc3QgY2xvbmVkIGF0dHJvcGVydGllcyAoalF1ZXJ5IGdoLTE3MDkpXG5cdFx0XHRcdFx0XHRcdFx0dW5pcXVlQ2FjaGUgPSBvdXRlckNhY2hlWyBub2RlLnVuaXF1ZUlEIF0gfHxcblx0XHRcdFx0XHRcdFx0XHRcdCggb3V0ZXJDYWNoZVsgbm9kZS51bmlxdWVJRCBdID0ge30gKTtcblxuXHRcdFx0XHRcdFx0XHRcdGNhY2hlID0gdW5pcXVlQ2FjaGVbIHR5cGUgXSB8fCBbXTtcblx0XHRcdFx0XHRcdFx0XHRub2RlSW5kZXggPSBjYWNoZVsgMCBdID09PSBkaXJydW5zICYmIGNhY2hlWyAxIF07XG5cdFx0XHRcdFx0XHRcdFx0ZGlmZiA9IG5vZGVJbmRleDtcblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdC8vIHhtbCA6bnRoLWNoaWxkKC4uLilcblx0XHRcdFx0XHRcdFx0Ly8gb3IgOm50aC1sYXN0LWNoaWxkKC4uLikgb3IgOm50aCgtbGFzdCk/LW9mLXR5cGUoLi4uKVxuXHRcdFx0XHRcdFx0XHRpZiAoIGRpZmYgPT09IGZhbHNlICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gVXNlIHRoZSBzYW1lIGxvb3AgYXMgYWJvdmUgdG8gc2VlayBgZWxlbWAgZnJvbSB0aGUgc3RhcnRcblx0XHRcdFx0XHRcdFx0XHR3aGlsZSAoICggbm9kZSA9ICsrbm9kZUluZGV4ICYmIG5vZGUgJiYgbm9kZVsgZGlyIF0gfHxcblx0XHRcdFx0XHRcdFx0XHRcdCggZGlmZiA9IG5vZGVJbmRleCA9IDAgKSB8fCBzdGFydC5wb3AoKSApICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoICggb2ZUeXBlID9cblx0XHRcdFx0XHRcdFx0XHRcdFx0bm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBuYW1lIDpcblx0XHRcdFx0XHRcdFx0XHRcdFx0bm9kZS5ub2RlVHlwZSA9PT0gMSApICYmXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCsrZGlmZiApIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBDYWNoZSB0aGUgaW5kZXggb2YgZWFjaCBlbmNvdW50ZXJlZCBlbGVtZW50XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggdXNlQ2FjaGUgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0b3V0ZXJDYWNoZSA9IG5vZGVbIGV4cGFuZG8gXSB8fFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KCBub2RlWyBleHBhbmRvIF0gPSB7fSApO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPDkgb25seVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIERlZmVuZCBhZ2FpbnN0IGNsb25lZCBhdHRyb3BlcnRpZXMgKGpRdWVyeSBnaC0xNzA5KVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHVuaXF1ZUNhY2hlID0gb3V0ZXJDYWNoZVsgbm9kZS51bmlxdWVJRCBdIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQoIG91dGVyQ2FjaGVbIG5vZGUudW5pcXVlSUQgXSA9IHt9ICk7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR1bmlxdWVDYWNoZVsgdHlwZSBdID0gWyBkaXJydW5zLCBkaWZmIF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIG5vZGUgPT09IGVsZW0gKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gSW5jb3Jwb3JhdGUgdGhlIG9mZnNldCwgdGhlbiBjaGVjayBhZ2FpbnN0IGN5Y2xlIHNpemVcblx0XHRcdFx0XHRcdGRpZmYgLT0gbGFzdDtcblx0XHRcdFx0XHRcdHJldHVybiBkaWZmID09PSBmaXJzdCB8fCAoIGRpZmYgJSBmaXJzdCA9PT0gMCAmJiBkaWZmIC8gZmlyc3QgPj0gMCApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblx0XHR9LFxuXG5cdFx0XCJQU0VVRE9cIjogZnVuY3Rpb24oIHBzZXVkbywgYXJndW1lbnQgKSB7XG5cblx0XHRcdC8vIHBzZXVkby1jbGFzcyBuYW1lcyBhcmUgY2FzZS1pbnNlbnNpdGl2ZVxuXHRcdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvc2VsZWN0b3JzLyNwc2V1ZG8tY2xhc3Nlc1xuXHRcdFx0Ly8gUHJpb3JpdGl6ZSBieSBjYXNlIHNlbnNpdGl2aXR5IGluIGNhc2UgY3VzdG9tIHBzZXVkb3MgYXJlIGFkZGVkIHdpdGggdXBwZXJjYXNlIGxldHRlcnNcblx0XHRcdC8vIFJlbWVtYmVyIHRoYXQgc2V0RmlsdGVycyBpbmhlcml0cyBmcm9tIHBzZXVkb3Ncblx0XHRcdHZhciBhcmdzLFxuXHRcdFx0XHRmbiA9IEV4cHIucHNldWRvc1sgcHNldWRvIF0gfHwgRXhwci5zZXRGaWx0ZXJzWyBwc2V1ZG8udG9Mb3dlckNhc2UoKSBdIHx8XG5cdFx0XHRcdFx0U2l6emxlLmVycm9yKCBcInVuc3VwcG9ydGVkIHBzZXVkbzogXCIgKyBwc2V1ZG8gKTtcblxuXHRcdFx0Ly8gVGhlIHVzZXIgbWF5IHVzZSBjcmVhdGVQc2V1ZG8gdG8gaW5kaWNhdGUgdGhhdFxuXHRcdFx0Ly8gYXJndW1lbnRzIGFyZSBuZWVkZWQgdG8gY3JlYXRlIHRoZSBmaWx0ZXIgZnVuY3Rpb25cblx0XHRcdC8vIGp1c3QgYXMgU2l6emxlIGRvZXNcblx0XHRcdGlmICggZm5bIGV4cGFuZG8gXSApIHtcblx0XHRcdFx0cmV0dXJuIGZuKCBhcmd1bWVudCApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBCdXQgbWFpbnRhaW4gc3VwcG9ydCBmb3Igb2xkIHNpZ25hdHVyZXNcblx0XHRcdGlmICggZm4ubGVuZ3RoID4gMSApIHtcblx0XHRcdFx0YXJncyA9IFsgcHNldWRvLCBwc2V1ZG8sIFwiXCIsIGFyZ3VtZW50IF07XG5cdFx0XHRcdHJldHVybiBFeHByLnNldEZpbHRlcnMuaGFzT3duUHJvcGVydHkoIHBzZXVkby50b0xvd2VyQ2FzZSgpICkgP1xuXHRcdFx0XHRcdG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIHNlZWQsIG1hdGNoZXMgKSB7XG5cdFx0XHRcdFx0XHR2YXIgaWR4LFxuXHRcdFx0XHRcdFx0XHRtYXRjaGVkID0gZm4oIHNlZWQsIGFyZ3VtZW50ICksXG5cdFx0XHRcdFx0XHRcdGkgPSBtYXRjaGVkLmxlbmd0aDtcblx0XHRcdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdFx0XHRpZHggPSBpbmRleE9mKCBzZWVkLCBtYXRjaGVkWyBpIF0gKTtcblx0XHRcdFx0XHRcdFx0c2VlZFsgaWR4IF0gPSAhKCBtYXRjaGVzWyBpZHggXSA9IG1hdGNoZWRbIGkgXSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gKSA6XG5cdFx0XHRcdFx0ZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZm4oIGVsZW0sIDAsIGFyZ3MgKTtcblx0XHRcdFx0XHR9O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZm47XG5cdFx0fVxuXHR9LFxuXG5cdHBzZXVkb3M6IHtcblxuXHRcdC8vIFBvdGVudGlhbGx5IGNvbXBsZXggcHNldWRvc1xuXHRcdFwibm90XCI6IG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXG5cdFx0XHQvLyBUcmltIHRoZSBzZWxlY3RvciBwYXNzZWQgdG8gY29tcGlsZVxuXHRcdFx0Ly8gdG8gYXZvaWQgdHJlYXRpbmcgbGVhZGluZyBhbmQgdHJhaWxpbmdcblx0XHRcdC8vIHNwYWNlcyBhcyBjb21iaW5hdG9yc1xuXHRcdFx0dmFyIGlucHV0ID0gW10sXG5cdFx0XHRcdHJlc3VsdHMgPSBbXSxcblx0XHRcdFx0bWF0Y2hlciA9IGNvbXBpbGUoIHNlbGVjdG9yLnJlcGxhY2UoIHJ0cmltLCBcIiQxXCIgKSApO1xuXG5cdFx0XHRyZXR1cm4gbWF0Y2hlclsgZXhwYW5kbyBdID9cblx0XHRcdFx0bWFya0Z1bmN0aW9uKCBmdW5jdGlvbiggc2VlZCwgbWF0Y2hlcywgX2NvbnRleHQsIHhtbCApIHtcblx0XHRcdFx0XHR2YXIgZWxlbSxcblx0XHRcdFx0XHRcdHVubWF0Y2hlZCA9IG1hdGNoZXIoIHNlZWQsIG51bGwsIHhtbCwgW10gKSxcblx0XHRcdFx0XHRcdGkgPSBzZWVkLmxlbmd0aDtcblxuXHRcdFx0XHRcdC8vIE1hdGNoIGVsZW1lbnRzIHVubWF0Y2hlZCBieSBgbWF0Y2hlcmBcblx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRcdGlmICggKCBlbGVtID0gdW5tYXRjaGVkWyBpIF0gKSApIHtcblx0XHRcdFx0XHRcdFx0c2VlZFsgaSBdID0gISggbWF0Y2hlc1sgaSBdID0gZWxlbSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSApIDpcblx0XHRcdFx0ZnVuY3Rpb24oIGVsZW0sIF9jb250ZXh0LCB4bWwgKSB7XG5cdFx0XHRcdFx0aW5wdXRbIDAgXSA9IGVsZW07XG5cdFx0XHRcdFx0bWF0Y2hlciggaW5wdXQsIG51bGwsIHhtbCwgcmVzdWx0cyApO1xuXG5cdFx0XHRcdFx0Ly8gRG9uJ3Qga2VlcCB0aGUgZWxlbWVudCAoaXNzdWUgIzI5OSlcblx0XHRcdFx0XHRpbnB1dFsgMCBdID0gbnVsbDtcblx0XHRcdFx0XHRyZXR1cm4gIXJlc3VsdHMucG9wKCk7XG5cdFx0XHRcdH07XG5cdFx0fSApLFxuXG5cdFx0XCJoYXNcIjogbWFya0Z1bmN0aW9uKCBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHJldHVybiBTaXp6bGUoIHNlbGVjdG9yLCBlbGVtICkubGVuZ3RoID4gMDtcblx0XHRcdH07XG5cdFx0fSApLFxuXG5cdFx0XCJjb250YWluc1wiOiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCB0ZXh0ICkge1xuXHRcdFx0dGV4dCA9IHRleHQucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0cmV0dXJuICggZWxlbS50ZXh0Q29udGVudCB8fCBnZXRUZXh0KCBlbGVtICkgKS5pbmRleE9mKCB0ZXh0ICkgPiAtMTtcblx0XHRcdH07XG5cdFx0fSApLFxuXG5cdFx0Ly8gXCJXaGV0aGVyIGFuIGVsZW1lbnQgaXMgcmVwcmVzZW50ZWQgYnkgYSA6bGFuZygpIHNlbGVjdG9yXG5cdFx0Ly8gaXMgYmFzZWQgc29sZWx5IG9uIHRoZSBlbGVtZW50J3MgbGFuZ3VhZ2UgdmFsdWVcblx0XHQvLyBiZWluZyBlcXVhbCB0byB0aGUgaWRlbnRpZmllciBDLFxuXHRcdC8vIG9yIGJlZ2lubmluZyB3aXRoIHRoZSBpZGVudGlmaWVyIEMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgXCItXCIuXG5cdFx0Ly8gVGhlIG1hdGNoaW5nIG9mIEMgYWdhaW5zdCB0aGUgZWxlbWVudCdzIGxhbmd1YWdlIHZhbHVlIGlzIHBlcmZvcm1lZCBjYXNlLWluc2Vuc2l0aXZlbHkuXG5cdFx0Ly8gVGhlIGlkZW50aWZpZXIgQyBkb2VzIG5vdCBoYXZlIHRvIGJlIGEgdmFsaWQgbGFuZ3VhZ2UgbmFtZS5cIlxuXHRcdC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL3NlbGVjdG9ycy8jbGFuZy1wc2V1ZG9cblx0XHRcImxhbmdcIjogbWFya0Z1bmN0aW9uKCBmdW5jdGlvbiggbGFuZyApIHtcblxuXHRcdFx0Ly8gbGFuZyB2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgaWRlbnRpZmllclxuXHRcdFx0aWYgKCAhcmlkZW50aWZpZXIudGVzdCggbGFuZyB8fCBcIlwiICkgKSB7XG5cdFx0XHRcdFNpenpsZS5lcnJvciggXCJ1bnN1cHBvcnRlZCBsYW5nOiBcIiArIGxhbmcgKTtcblx0XHRcdH1cblx0XHRcdGxhbmcgPSBsYW5nLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICkudG9Mb3dlckNhc2UoKTtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0dmFyIGVsZW1MYW5nO1xuXHRcdFx0XHRkbyB7XG5cdFx0XHRcdFx0aWYgKCAoIGVsZW1MYW5nID0gZG9jdW1lbnRJc0hUTUwgP1xuXHRcdFx0XHRcdFx0ZWxlbS5sYW5nIDpcblx0XHRcdFx0XHRcdGVsZW0uZ2V0QXR0cmlidXRlKCBcInhtbDpsYW5nXCIgKSB8fCBlbGVtLmdldEF0dHJpYnV0ZSggXCJsYW5nXCIgKSApICkge1xuXG5cdFx0XHRcdFx0XHRlbGVtTGFuZyA9IGVsZW1MYW5nLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZWxlbUxhbmcgPT09IGxhbmcgfHwgZWxlbUxhbmcuaW5kZXhPZiggbGFuZyArIFwiLVwiICkgPT09IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IHdoaWxlICggKCBlbGVtID0gZWxlbS5wYXJlbnROb2RlICkgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApO1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9O1xuXHRcdH0gKSxcblxuXHRcdC8vIE1pc2NlbGxhbmVvdXNcblx0XHRcInRhcmdldFwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHZhciBoYXNoID0gd2luZG93LmxvY2F0aW9uICYmIHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xuXHRcdFx0cmV0dXJuIGhhc2ggJiYgaGFzaC5zbGljZSggMSApID09PSBlbGVtLmlkO1xuXHRcdH0sXG5cblx0XHRcInJvb3RcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbSA9PT0gZG9jRWxlbTtcblx0XHR9LFxuXG5cdFx0XCJmb2N1c1wiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBlbGVtID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmXG5cdFx0XHRcdCggIWRvY3VtZW50Lmhhc0ZvY3VzIHx8IGRvY3VtZW50Lmhhc0ZvY3VzKCkgKSAmJlxuXHRcdFx0XHQhISggZWxlbS50eXBlIHx8IGVsZW0uaHJlZiB8fCB+ZWxlbS50YWJJbmRleCApO1xuXHRcdH0sXG5cblx0XHQvLyBCb29sZWFuIHByb3BlcnRpZXNcblx0XHRcImVuYWJsZWRcIjogY3JlYXRlRGlzYWJsZWRQc2V1ZG8oIGZhbHNlICksXG5cdFx0XCJkaXNhYmxlZFwiOiBjcmVhdGVEaXNhYmxlZFBzZXVkbyggdHJ1ZSApLFxuXG5cdFx0XCJjaGVja2VkXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0XHQvLyBJbiBDU1MzLCA6Y2hlY2tlZCBzaG91bGQgcmV0dXJuIGJvdGggY2hlY2tlZCBhbmQgc2VsZWN0ZWQgZWxlbWVudHNcblx0XHRcdC8vIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTEvUkVDLWNzczMtc2VsZWN0b3JzLTIwMTEwOTI5LyNjaGVja2VkXG5cdFx0XHR2YXIgbm9kZU5hbWUgPSBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRyZXR1cm4gKCBub2RlTmFtZSA9PT0gXCJpbnB1dFwiICYmICEhZWxlbS5jaGVja2VkICkgfHxcblx0XHRcdFx0KCBub2RlTmFtZSA9PT0gXCJvcHRpb25cIiAmJiAhIWVsZW0uc2VsZWN0ZWQgKTtcblx0XHR9LFxuXG5cdFx0XCJzZWxlY3RlZFwiOiBmdW5jdGlvbiggZWxlbSApIHtcblxuXHRcdFx0Ly8gQWNjZXNzaW5nIHRoaXMgcHJvcGVydHkgbWFrZXMgc2VsZWN0ZWQtYnktZGVmYXVsdFxuXHRcdFx0Ly8gb3B0aW9ucyBpbiBTYWZhcmkgd29yayBwcm9wZXJseVxuXHRcdFx0aWYgKCBlbGVtLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcblx0XHRcdFx0ZWxlbS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXg7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBlbGVtLnNlbGVjdGVkID09PSB0cnVlO1xuXHRcdH0sXG5cblx0XHQvLyBDb250ZW50c1xuXHRcdFwiZW1wdHlcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL3NlbGVjdG9ycy8jZW1wdHktcHNldWRvXG5cdFx0XHQvLyA6ZW1wdHkgaXMgbmVnYXRlZCBieSBlbGVtZW50ICgxKSBvciBjb250ZW50IG5vZGVzICh0ZXh0OiAzOyBjZGF0YTogNDsgZW50aXR5IHJlZjogNSksXG5cdFx0XHQvLyAgIGJ1dCBub3QgYnkgb3RoZXJzIChjb21tZW50OiA4OyBwcm9jZXNzaW5nIGluc3RydWN0aW9uOiA3OyBldGMuKVxuXHRcdFx0Ly8gbm9kZVR5cGUgPCA2IHdvcmtzIGJlY2F1c2UgYXR0cmlidXRlcyAoMikgZG8gbm90IGFwcGVhciBhcyBjaGlsZHJlblxuXHRcdFx0Zm9yICggZWxlbSA9IGVsZW0uZmlyc3RDaGlsZDsgZWxlbTsgZWxlbSA9IGVsZW0ubmV4dFNpYmxpbmcgKSB7XG5cdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA8IDYgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9LFxuXG5cdFx0XCJwYXJlbnRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gIUV4cHIucHNldWRvc1sgXCJlbXB0eVwiIF0oIGVsZW0gKTtcblx0XHR9LFxuXG5cdFx0Ly8gRWxlbWVudC9pbnB1dCB0eXBlc1xuXHRcdFwiaGVhZGVyXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIHJoZWFkZXIudGVzdCggZWxlbS5ub2RlTmFtZSApO1xuXHRcdH0sXG5cblx0XHRcImlucHV0XCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIHJpbnB1dHMudGVzdCggZWxlbS5ub2RlTmFtZSApO1xuXHRcdH0sXG5cblx0XHRcImJ1dHRvblwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHZhciBuYW1lID0gZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIG5hbWUgPT09IFwiaW5wdXRcIiAmJiBlbGVtLnR5cGUgPT09IFwiYnV0dG9uXCIgfHwgbmFtZSA9PT0gXCJidXR0b25cIjtcblx0XHR9LFxuXG5cdFx0XCJ0ZXh0XCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0dmFyIGF0dHI7XG5cdFx0XHRyZXR1cm4gZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBcImlucHV0XCIgJiZcblx0XHRcdFx0ZWxlbS50eXBlID09PSBcInRleHRcIiAmJlxuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IElFPDhcblx0XHRcdFx0Ly8gTmV3IEhUTUw1IGF0dHJpYnV0ZSB2YWx1ZXMgKGUuZy4sIFwic2VhcmNoXCIpIGFwcGVhciB3aXRoIGVsZW0udHlwZSA9PT0gXCJ0ZXh0XCJcblx0XHRcdFx0KCAoIGF0dHIgPSBlbGVtLmdldEF0dHJpYnV0ZSggXCJ0eXBlXCIgKSApID09IG51bGwgfHxcblx0XHRcdFx0XHRhdHRyLnRvTG93ZXJDYXNlKCkgPT09IFwidGV4dFwiICk7XG5cdFx0fSxcblxuXHRcdC8vIFBvc2l0aW9uLWluLWNvbGxlY3Rpb25cblx0XHRcImZpcnN0XCI6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIFsgMCBdO1xuXHRcdH0gKSxcblxuXHRcdFwibGFzdFwiOiBjcmVhdGVQb3NpdGlvbmFsUHNldWRvKCBmdW5jdGlvbiggX21hdGNoSW5kZXhlcywgbGVuZ3RoICkge1xuXHRcdFx0cmV0dXJuIFsgbGVuZ3RoIC0gMSBdO1xuXHRcdH0gKSxcblxuXHRcdFwiZXFcIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZnVuY3Rpb24oIF9tYXRjaEluZGV4ZXMsIGxlbmd0aCwgYXJndW1lbnQgKSB7XG5cdFx0XHRyZXR1cm4gWyBhcmd1bWVudCA8IDAgPyBhcmd1bWVudCArIGxlbmd0aCA6IGFyZ3VtZW50IF07XG5cdFx0fSApLFxuXG5cdFx0XCJldmVuXCI6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCBtYXRjaEluZGV4ZXMsIGxlbmd0aCApIHtcblx0XHRcdHZhciBpID0gMDtcblx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSArPSAyICkge1xuXHRcdFx0XHRtYXRjaEluZGV4ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoSW5kZXhlcztcblx0XHR9ICksXG5cblx0XHRcIm9kZFwiOiBjcmVhdGVQb3NpdGlvbmFsUHNldWRvKCBmdW5jdGlvbiggbWF0Y2hJbmRleGVzLCBsZW5ndGggKSB7XG5cdFx0XHR2YXIgaSA9IDE7XG5cdFx0XHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkgKz0gMiApIHtcblx0XHRcdFx0bWF0Y2hJbmRleGVzLnB1c2goIGkgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBtYXRjaEluZGV4ZXM7XG5cdFx0fSApLFxuXG5cdFx0XCJsdFwiOiBjcmVhdGVQb3NpdGlvbmFsUHNldWRvKCBmdW5jdGlvbiggbWF0Y2hJbmRleGVzLCBsZW5ndGgsIGFyZ3VtZW50ICkge1xuXHRcdFx0dmFyIGkgPSBhcmd1bWVudCA8IDAgP1xuXHRcdFx0XHRhcmd1bWVudCArIGxlbmd0aCA6XG5cdFx0XHRcdGFyZ3VtZW50ID4gbGVuZ3RoID9cblx0XHRcdFx0XHRsZW5ndGggOlxuXHRcdFx0XHRcdGFyZ3VtZW50O1xuXHRcdFx0Zm9yICggOyAtLWkgPj0gMDsgKSB7XG5cdFx0XHRcdG1hdGNoSW5kZXhlcy5wdXNoKCBpICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbWF0Y2hJbmRleGVzO1xuXHRcdH0gKSxcblxuXHRcdFwiZ3RcIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZnVuY3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3RoLCBhcmd1bWVudCApIHtcblx0XHRcdHZhciBpID0gYXJndW1lbnQgPCAwID8gYXJndW1lbnQgKyBsZW5ndGggOiBhcmd1bWVudDtcblx0XHRcdGZvciAoIDsgKytpIDwgbGVuZ3RoOyApIHtcblx0XHRcdFx0bWF0Y2hJbmRleGVzLnB1c2goIGkgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBtYXRjaEluZGV4ZXM7XG5cdFx0fSApXG5cdH1cbn07XG5cbkV4cHIucHNldWRvc1sgXCJudGhcIiBdID0gRXhwci5wc2V1ZG9zWyBcImVxXCIgXTtcblxuLy8gQWRkIGJ1dHRvbi9pbnB1dCB0eXBlIHBzZXVkb3NcbmZvciAoIGkgaW4geyByYWRpbzogdHJ1ZSwgY2hlY2tib3g6IHRydWUsIGZpbGU6IHRydWUsIHBhc3N3b3JkOiB0cnVlLCBpbWFnZTogdHJ1ZSB9ICkge1xuXHRFeHByLnBzZXVkb3NbIGkgXSA9IGNyZWF0ZUlucHV0UHNldWRvKCBpICk7XG59XG5mb3IgKCBpIGluIHsgc3VibWl0OiB0cnVlLCByZXNldDogdHJ1ZSB9ICkge1xuXHRFeHByLnBzZXVkb3NbIGkgXSA9IGNyZWF0ZUJ1dHRvblBzZXVkbyggaSApO1xufVxuXG4vLyBFYXN5IEFQSSBmb3IgY3JlYXRpbmcgbmV3IHNldEZpbHRlcnNcbmZ1bmN0aW9uIHNldEZpbHRlcnMoKSB7fVxuc2V0RmlsdGVycy5wcm90b3R5cGUgPSBFeHByLmZpbHRlcnMgPSBFeHByLnBzZXVkb3M7XG5FeHByLnNldEZpbHRlcnMgPSBuZXcgc2V0RmlsdGVycygpO1xuXG50b2tlbml6ZSA9IFNpenpsZS50b2tlbml6ZSA9IGZ1bmN0aW9uKCBzZWxlY3RvciwgcGFyc2VPbmx5ICkge1xuXHR2YXIgbWF0Y2hlZCwgbWF0Y2gsIHRva2VucywgdHlwZSxcblx0XHRzb0ZhciwgZ3JvdXBzLCBwcmVGaWx0ZXJzLFxuXHRcdGNhY2hlZCA9IHRva2VuQ2FjaGVbIHNlbGVjdG9yICsgXCIgXCIgXTtcblxuXHRpZiAoIGNhY2hlZCApIHtcblx0XHRyZXR1cm4gcGFyc2VPbmx5ID8gMCA6IGNhY2hlZC5zbGljZSggMCApO1xuXHR9XG5cblx0c29GYXIgPSBzZWxlY3Rvcjtcblx0Z3JvdXBzID0gW107XG5cdHByZUZpbHRlcnMgPSBFeHByLnByZUZpbHRlcjtcblxuXHR3aGlsZSAoIHNvRmFyICkge1xuXG5cdFx0Ly8gQ29tbWEgYW5kIGZpcnN0IHJ1blxuXHRcdGlmICggIW1hdGNoZWQgfHwgKCBtYXRjaCA9IHJjb21tYS5leGVjKCBzb0ZhciApICkgKSB7XG5cdFx0XHRpZiAoIG1hdGNoICkge1xuXG5cdFx0XHRcdC8vIERvbid0IGNvbnN1bWUgdHJhaWxpbmcgY29tbWFzIGFzIHZhbGlkXG5cdFx0XHRcdHNvRmFyID0gc29GYXIuc2xpY2UoIG1hdGNoWyAwIF0ubGVuZ3RoICkgfHwgc29GYXI7XG5cdFx0XHR9XG5cdFx0XHRncm91cHMucHVzaCggKCB0b2tlbnMgPSBbXSApICk7XG5cdFx0fVxuXG5cdFx0bWF0Y2hlZCA9IGZhbHNlO1xuXG5cdFx0Ly8gQ29tYmluYXRvcnNcblx0XHRpZiAoICggbWF0Y2ggPSByY29tYmluYXRvcnMuZXhlYyggc29GYXIgKSApICkge1xuXHRcdFx0bWF0Y2hlZCA9IG1hdGNoLnNoaWZ0KCk7XG5cdFx0XHR0b2tlbnMucHVzaCgge1xuXHRcdFx0XHR2YWx1ZTogbWF0Y2hlZCxcblxuXHRcdFx0XHQvLyBDYXN0IGRlc2NlbmRhbnQgY29tYmluYXRvcnMgdG8gc3BhY2Vcblx0XHRcdFx0dHlwZTogbWF0Y2hbIDAgXS5yZXBsYWNlKCBydHJpbSwgXCIgXCIgKVxuXHRcdFx0fSApO1xuXHRcdFx0c29GYXIgPSBzb0Zhci5zbGljZSggbWF0Y2hlZC5sZW5ndGggKTtcblx0XHR9XG5cblx0XHQvLyBGaWx0ZXJzXG5cdFx0Zm9yICggdHlwZSBpbiBFeHByLmZpbHRlciApIHtcblx0XHRcdGlmICggKCBtYXRjaCA9IG1hdGNoRXhwclsgdHlwZSBdLmV4ZWMoIHNvRmFyICkgKSAmJiAoICFwcmVGaWx0ZXJzWyB0eXBlIF0gfHxcblx0XHRcdFx0KCBtYXRjaCA9IHByZUZpbHRlcnNbIHR5cGUgXSggbWF0Y2ggKSApICkgKSB7XG5cdFx0XHRcdG1hdGNoZWQgPSBtYXRjaC5zaGlmdCgpO1xuXHRcdFx0XHR0b2tlbnMucHVzaCgge1xuXHRcdFx0XHRcdHZhbHVlOiBtYXRjaGVkLFxuXHRcdFx0XHRcdHR5cGU6IHR5cGUsXG5cdFx0XHRcdFx0bWF0Y2hlczogbWF0Y2hcblx0XHRcdFx0fSApO1xuXHRcdFx0XHRzb0ZhciA9IHNvRmFyLnNsaWNlKCBtYXRjaGVkLmxlbmd0aCApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICggIW1hdGNoZWQgKSB7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblxuXHQvLyBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgaW52YWxpZCBleGNlc3Ncblx0Ly8gaWYgd2UncmUganVzdCBwYXJzaW5nXG5cdC8vIE90aGVyd2lzZSwgdGhyb3cgYW4gZXJyb3Igb3IgcmV0dXJuIHRva2Vuc1xuXHRyZXR1cm4gcGFyc2VPbmx5ID9cblx0XHRzb0Zhci5sZW5ndGggOlxuXHRcdHNvRmFyID9cblx0XHRcdFNpenpsZS5lcnJvciggc2VsZWN0b3IgKSA6XG5cblx0XHRcdC8vIENhY2hlIHRoZSB0b2tlbnNcblx0XHRcdHRva2VuQ2FjaGUoIHNlbGVjdG9yLCBncm91cHMgKS5zbGljZSggMCApO1xufTtcblxuZnVuY3Rpb24gdG9TZWxlY3RvciggdG9rZW5zICkge1xuXHR2YXIgaSA9IDAsXG5cdFx0bGVuID0gdG9rZW5zLmxlbmd0aCxcblx0XHRzZWxlY3RvciA9IFwiXCI7XG5cdGZvciAoIDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdHNlbGVjdG9yICs9IHRva2Vuc1sgaSBdLnZhbHVlO1xuXHR9XG5cdHJldHVybiBzZWxlY3Rvcjtcbn1cblxuZnVuY3Rpb24gYWRkQ29tYmluYXRvciggbWF0Y2hlciwgY29tYmluYXRvciwgYmFzZSApIHtcblx0dmFyIGRpciA9IGNvbWJpbmF0b3IuZGlyLFxuXHRcdHNraXAgPSBjb21iaW5hdG9yLm5leHQsXG5cdFx0a2V5ID0gc2tpcCB8fCBkaXIsXG5cdFx0Y2hlY2tOb25FbGVtZW50cyA9IGJhc2UgJiYga2V5ID09PSBcInBhcmVudE5vZGVcIixcblx0XHRkb25lTmFtZSA9IGRvbmUrKztcblxuXHRyZXR1cm4gY29tYmluYXRvci5maXJzdCA/XG5cblx0XHQvLyBDaGVjayBhZ2FpbnN0IGNsb3Nlc3QgYW5jZXN0b3IvcHJlY2VkaW5nIGVsZW1lbnRcblx0XHRmdW5jdGlvbiggZWxlbSwgY29udGV4dCwgeG1sICkge1xuXHRcdFx0d2hpbGUgKCAoIGVsZW0gPSBlbGVtWyBkaXIgXSApICkge1xuXHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgfHwgY2hlY2tOb25FbGVtZW50cyApIHtcblx0XHRcdFx0XHRyZXR1cm4gbWF0Y2hlciggZWxlbSwgY29udGV4dCwgeG1sICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9IDpcblxuXHRcdC8vIENoZWNrIGFnYWluc3QgYWxsIGFuY2VzdG9yL3ByZWNlZGluZyBlbGVtZW50c1xuXHRcdGZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0XHR2YXIgb2xkQ2FjaGUsIHVuaXF1ZUNhY2hlLCBvdXRlckNhY2hlLFxuXHRcdFx0XHRuZXdDYWNoZSA9IFsgZGlycnVucywgZG9uZU5hbWUgXTtcblxuXHRcdFx0Ly8gV2UgY2FuJ3Qgc2V0IGFyYml0cmFyeSBkYXRhIG9uIFhNTCBub2Rlcywgc28gdGhleSBkb24ndCBiZW5lZml0IGZyb20gY29tYmluYXRvciBjYWNoaW5nXG5cdFx0XHRpZiAoIHhtbCApIHtcblx0XHRcdFx0d2hpbGUgKCAoIGVsZW0gPSBlbGVtWyBkaXIgXSApICkge1xuXHRcdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBjaGVja05vbkVsZW1lbnRzICkge1xuXHRcdFx0XHRcdFx0aWYgKCBtYXRjaGVyKCBlbGVtLCBjb250ZXh0LCB4bWwgKSApIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR3aGlsZSAoICggZWxlbSA9IGVsZW1bIGRpciBdICkgKSB7XG5cdFx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxIHx8IGNoZWNrTm9uRWxlbWVudHMgKSB7XG5cdFx0XHRcdFx0XHRvdXRlckNhY2hlID0gZWxlbVsgZXhwYW5kbyBdIHx8ICggZWxlbVsgZXhwYW5kbyBdID0ge30gKTtcblxuXHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPDkgb25seVxuXHRcdFx0XHRcdFx0Ly8gRGVmZW5kIGFnYWluc3QgY2xvbmVkIGF0dHJvcGVydGllcyAoalF1ZXJ5IGdoLTE3MDkpXG5cdFx0XHRcdFx0XHR1bmlxdWVDYWNoZSA9IG91dGVyQ2FjaGVbIGVsZW0udW5pcXVlSUQgXSB8fFxuXHRcdFx0XHRcdFx0XHQoIG91dGVyQ2FjaGVbIGVsZW0udW5pcXVlSUQgXSA9IHt9ICk7XG5cblx0XHRcdFx0XHRcdGlmICggc2tpcCAmJiBza2lwID09PSBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgKSB7XG5cdFx0XHRcdFx0XHRcdGVsZW0gPSBlbGVtWyBkaXIgXSB8fCBlbGVtO1xuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICggKCBvbGRDYWNoZSA9IHVuaXF1ZUNhY2hlWyBrZXkgXSApICYmXG5cdFx0XHRcdFx0XHRcdG9sZENhY2hlWyAwIF0gPT09IGRpcnJ1bnMgJiYgb2xkQ2FjaGVbIDEgXSA9PT0gZG9uZU5hbWUgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gQXNzaWduIHRvIG5ld0NhY2hlIHNvIHJlc3VsdHMgYmFjay1wcm9wYWdhdGUgdG8gcHJldmlvdXMgZWxlbWVudHNcblx0XHRcdFx0XHRcdFx0cmV0dXJuICggbmV3Q2FjaGVbIDIgXSA9IG9sZENhY2hlWyAyIF0gKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gUmV1c2UgbmV3Y2FjaGUgc28gcmVzdWx0cyBiYWNrLXByb3BhZ2F0ZSB0byBwcmV2aW91cyBlbGVtZW50c1xuXHRcdFx0XHRcdFx0XHR1bmlxdWVDYWNoZVsga2V5IF0gPSBuZXdDYWNoZTtcblxuXHRcdFx0XHRcdFx0XHQvLyBBIG1hdGNoIG1lYW5zIHdlJ3JlIGRvbmU7IGEgZmFpbCBtZWFucyB3ZSBoYXZlIHRvIGtlZXAgY2hlY2tpbmdcblx0XHRcdFx0XHRcdFx0aWYgKCAoIG5ld0NhY2hlWyAyIF0gPSBtYXRjaGVyKCBlbGVtLCBjb250ZXh0LCB4bWwgKSApICkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fTtcbn1cblxuZnVuY3Rpb24gZWxlbWVudE1hdGNoZXIoIG1hdGNoZXJzICkge1xuXHRyZXR1cm4gbWF0Y2hlcnMubGVuZ3RoID4gMSA/XG5cdFx0ZnVuY3Rpb24oIGVsZW0sIGNvbnRleHQsIHhtbCApIHtcblx0XHRcdHZhciBpID0gbWF0Y2hlcnMubGVuZ3RoO1xuXHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdGlmICggIW1hdGNoZXJzWyBpIF0oIGVsZW0sIGNvbnRleHQsIHhtbCApICkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSA6XG5cdFx0bWF0Y2hlcnNbIDAgXTtcbn1cblxuZnVuY3Rpb24gbXVsdGlwbGVDb250ZXh0cyggc2VsZWN0b3IsIGNvbnRleHRzLCByZXN1bHRzICkge1xuXHR2YXIgaSA9IDAsXG5cdFx0bGVuID0gY29udGV4dHMubGVuZ3RoO1xuXHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRTaXp6bGUoIHNlbGVjdG9yLCBjb250ZXh0c1sgaSBdLCByZXN1bHRzICk7XG5cdH1cblx0cmV0dXJuIHJlc3VsdHM7XG59XG5cbmZ1bmN0aW9uIGNvbmRlbnNlKCB1bm1hdGNoZWQsIG1hcCwgZmlsdGVyLCBjb250ZXh0LCB4bWwgKSB7XG5cdHZhciBlbGVtLFxuXHRcdG5ld1VubWF0Y2hlZCA9IFtdLFxuXHRcdGkgPSAwLFxuXHRcdGxlbiA9IHVubWF0Y2hlZC5sZW5ndGgsXG5cdFx0bWFwcGVkID0gbWFwICE9IG51bGw7XG5cblx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0aWYgKCAoIGVsZW0gPSB1bm1hdGNoZWRbIGkgXSApICkge1xuXHRcdFx0aWYgKCAhZmlsdGVyIHx8IGZpbHRlciggZWxlbSwgY29udGV4dCwgeG1sICkgKSB7XG5cdFx0XHRcdG5ld1VubWF0Y2hlZC5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdGlmICggbWFwcGVkICkge1xuXHRcdFx0XHRcdG1hcC5wdXNoKCBpICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gbmV3VW5tYXRjaGVkO1xufVxuXG5mdW5jdGlvbiBzZXRNYXRjaGVyKCBwcmVGaWx0ZXIsIHNlbGVjdG9yLCBtYXRjaGVyLCBwb3N0RmlsdGVyLCBwb3N0RmluZGVyLCBwb3N0U2VsZWN0b3IgKSB7XG5cdGlmICggcG9zdEZpbHRlciAmJiAhcG9zdEZpbHRlclsgZXhwYW5kbyBdICkge1xuXHRcdHBvc3RGaWx0ZXIgPSBzZXRNYXRjaGVyKCBwb3N0RmlsdGVyICk7XG5cdH1cblx0aWYgKCBwb3N0RmluZGVyICYmICFwb3N0RmluZGVyWyBleHBhbmRvIF0gKSB7XG5cdFx0cG9zdEZpbmRlciA9IHNldE1hdGNoZXIoIHBvc3RGaW5kZXIsIHBvc3RTZWxlY3RvciApO1xuXHR9XG5cdHJldHVybiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCBzZWVkLCByZXN1bHRzLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0dmFyIHRlbXAsIGksIGVsZW0sXG5cdFx0XHRwcmVNYXAgPSBbXSxcblx0XHRcdHBvc3RNYXAgPSBbXSxcblx0XHRcdHByZWV4aXN0aW5nID0gcmVzdWx0cy5sZW5ndGgsXG5cblx0XHRcdC8vIEdldCBpbml0aWFsIGVsZW1lbnRzIGZyb20gc2VlZCBvciBjb250ZXh0XG5cdFx0XHRlbGVtcyA9IHNlZWQgfHwgbXVsdGlwbGVDb250ZXh0cyhcblx0XHRcdFx0c2VsZWN0b3IgfHwgXCIqXCIsXG5cdFx0XHRcdGNvbnRleHQubm9kZVR5cGUgPyBbIGNvbnRleHQgXSA6IGNvbnRleHQsXG5cdFx0XHRcdFtdXG5cdFx0XHQpLFxuXG5cdFx0XHQvLyBQcmVmaWx0ZXIgdG8gZ2V0IG1hdGNoZXIgaW5wdXQsIHByZXNlcnZpbmcgYSBtYXAgZm9yIHNlZWQtcmVzdWx0cyBzeW5jaHJvbml6YXRpb25cblx0XHRcdG1hdGNoZXJJbiA9IHByZUZpbHRlciAmJiAoIHNlZWQgfHwgIXNlbGVjdG9yICkgP1xuXHRcdFx0XHRjb25kZW5zZSggZWxlbXMsIHByZU1hcCwgcHJlRmlsdGVyLCBjb250ZXh0LCB4bWwgKSA6XG5cdFx0XHRcdGVsZW1zLFxuXG5cdFx0XHRtYXRjaGVyT3V0ID0gbWF0Y2hlciA/XG5cblx0XHRcdFx0Ly8gSWYgd2UgaGF2ZSBhIHBvc3RGaW5kZXIsIG9yIGZpbHRlcmVkIHNlZWQsIG9yIG5vbi1zZWVkIHBvc3RGaWx0ZXIgb3IgcHJlZXhpc3RpbmcgcmVzdWx0cyxcblx0XHRcdFx0cG9zdEZpbmRlciB8fCAoIHNlZWQgPyBwcmVGaWx0ZXIgOiBwcmVleGlzdGluZyB8fCBwb3N0RmlsdGVyICkgP1xuXG5cdFx0XHRcdFx0Ly8gLi4uaW50ZXJtZWRpYXRlIHByb2Nlc3NpbmcgaXMgbmVjZXNzYXJ5XG5cdFx0XHRcdFx0W10gOlxuXG5cdFx0XHRcdFx0Ly8gLi4ub3RoZXJ3aXNlIHVzZSByZXN1bHRzIGRpcmVjdGx5XG5cdFx0XHRcdFx0cmVzdWx0cyA6XG5cdFx0XHRcdG1hdGNoZXJJbjtcblxuXHRcdC8vIEZpbmQgcHJpbWFyeSBtYXRjaGVzXG5cdFx0aWYgKCBtYXRjaGVyICkge1xuXHRcdFx0bWF0Y2hlciggbWF0Y2hlckluLCBtYXRjaGVyT3V0LCBjb250ZXh0LCB4bWwgKTtcblx0XHR9XG5cblx0XHQvLyBBcHBseSBwb3N0RmlsdGVyXG5cdFx0aWYgKCBwb3N0RmlsdGVyICkge1xuXHRcdFx0dGVtcCA9IGNvbmRlbnNlKCBtYXRjaGVyT3V0LCBwb3N0TWFwICk7XG5cdFx0XHRwb3N0RmlsdGVyKCB0ZW1wLCBbXSwgY29udGV4dCwgeG1sICk7XG5cblx0XHRcdC8vIFVuLW1hdGNoIGZhaWxpbmcgZWxlbWVudHMgYnkgbW92aW5nIHRoZW0gYmFjayB0byBtYXRjaGVySW5cblx0XHRcdGkgPSB0ZW1wLmxlbmd0aDtcblx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRpZiAoICggZWxlbSA9IHRlbXBbIGkgXSApICkge1xuXHRcdFx0XHRcdG1hdGNoZXJPdXRbIHBvc3RNYXBbIGkgXSBdID0gISggbWF0Y2hlckluWyBwb3N0TWFwWyBpIF0gXSA9IGVsZW0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICggc2VlZCApIHtcblx0XHRcdGlmICggcG9zdEZpbmRlciB8fCBwcmVGaWx0ZXIgKSB7XG5cdFx0XHRcdGlmICggcG9zdEZpbmRlciApIHtcblxuXHRcdFx0XHRcdC8vIEdldCB0aGUgZmluYWwgbWF0Y2hlck91dCBieSBjb25kZW5zaW5nIHRoaXMgaW50ZXJtZWRpYXRlIGludG8gcG9zdEZpbmRlciBjb250ZXh0c1xuXHRcdFx0XHRcdHRlbXAgPSBbXTtcblx0XHRcdFx0XHRpID0gbWF0Y2hlck91dC5sZW5ndGg7XG5cdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0XHRpZiAoICggZWxlbSA9IG1hdGNoZXJPdXRbIGkgXSApICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIFJlc3RvcmUgbWF0Y2hlckluIHNpbmNlIGVsZW0gaXMgbm90IHlldCBhIGZpbmFsIG1hdGNoXG5cdFx0XHRcdFx0XHRcdHRlbXAucHVzaCggKCBtYXRjaGVySW5bIGkgXSA9IGVsZW0gKSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRwb3N0RmluZGVyKCBudWxsLCAoIG1hdGNoZXJPdXQgPSBbXSApLCB0ZW1wLCB4bWwgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIE1vdmUgbWF0Y2hlZCBlbGVtZW50cyBmcm9tIHNlZWQgdG8gcmVzdWx0cyB0byBrZWVwIHRoZW0gc3luY2hyb25pemVkXG5cdFx0XHRcdGkgPSBtYXRjaGVyT3V0Lmxlbmd0aDtcblx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0aWYgKCAoIGVsZW0gPSBtYXRjaGVyT3V0WyBpIF0gKSAmJlxuXHRcdFx0XHRcdFx0KCB0ZW1wID0gcG9zdEZpbmRlciA/IGluZGV4T2YoIHNlZWQsIGVsZW0gKSA6IHByZU1hcFsgaSBdICkgPiAtMSApIHtcblxuXHRcdFx0XHRcdFx0c2VlZFsgdGVtcCBdID0gISggcmVzdWx0c1sgdGVtcCBdID0gZWxlbSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0Ly8gQWRkIGVsZW1lbnRzIHRvIHJlc3VsdHMsIHRocm91Z2ggcG9zdEZpbmRlciBpZiBkZWZpbmVkXG5cdFx0fSBlbHNlIHtcblx0XHRcdG1hdGNoZXJPdXQgPSBjb25kZW5zZShcblx0XHRcdFx0bWF0Y2hlck91dCA9PT0gcmVzdWx0cyA/XG5cdFx0XHRcdFx0bWF0Y2hlck91dC5zcGxpY2UoIHByZWV4aXN0aW5nLCBtYXRjaGVyT3V0Lmxlbmd0aCApIDpcblx0XHRcdFx0XHRtYXRjaGVyT3V0XG5cdFx0XHQpO1xuXHRcdFx0aWYgKCBwb3N0RmluZGVyICkge1xuXHRcdFx0XHRwb3N0RmluZGVyKCBudWxsLCByZXN1bHRzLCBtYXRjaGVyT3V0LCB4bWwgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsIG1hdGNoZXJPdXQgKTtcblx0XHRcdH1cblx0XHR9XG5cdH0gKTtcbn1cblxuZnVuY3Rpb24gbWF0Y2hlckZyb21Ub2tlbnMoIHRva2VucyApIHtcblx0dmFyIGNoZWNrQ29udGV4dCwgbWF0Y2hlciwgaixcblx0XHRsZW4gPSB0b2tlbnMubGVuZ3RoLFxuXHRcdGxlYWRpbmdSZWxhdGl2ZSA9IEV4cHIucmVsYXRpdmVbIHRva2Vuc1sgMCBdLnR5cGUgXSxcblx0XHRpbXBsaWNpdFJlbGF0aXZlID0gbGVhZGluZ1JlbGF0aXZlIHx8IEV4cHIucmVsYXRpdmVbIFwiIFwiIF0sXG5cdFx0aSA9IGxlYWRpbmdSZWxhdGl2ZSA/IDEgOiAwLFxuXG5cdFx0Ly8gVGhlIGZvdW5kYXRpb25hbCBtYXRjaGVyIGVuc3VyZXMgdGhhdCBlbGVtZW50cyBhcmUgcmVhY2hhYmxlIGZyb20gdG9wLWxldmVsIGNvbnRleHQocylcblx0XHRtYXRjaENvbnRleHQgPSBhZGRDb21iaW5hdG9yKCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBlbGVtID09PSBjaGVja0NvbnRleHQ7XG5cdFx0fSwgaW1wbGljaXRSZWxhdGl2ZSwgdHJ1ZSApLFxuXHRcdG1hdGNoQW55Q29udGV4dCA9IGFkZENvbWJpbmF0b3IoIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGluZGV4T2YoIGNoZWNrQ29udGV4dCwgZWxlbSApID4gLTE7XG5cdFx0fSwgaW1wbGljaXRSZWxhdGl2ZSwgdHJ1ZSApLFxuXHRcdG1hdGNoZXJzID0gWyBmdW5jdGlvbiggZWxlbSwgY29udGV4dCwgeG1sICkge1xuXHRcdFx0dmFyIHJldCA9ICggIWxlYWRpbmdSZWxhdGl2ZSAmJiAoIHhtbCB8fCBjb250ZXh0ICE9PSBvdXRlcm1vc3RDb250ZXh0ICkgKSB8fCAoXG5cdFx0XHRcdCggY2hlY2tDb250ZXh0ID0gY29udGV4dCApLm5vZGVUeXBlID9cblx0XHRcdFx0XHRtYXRjaENvbnRleHQoIGVsZW0sIGNvbnRleHQsIHhtbCApIDpcblx0XHRcdFx0XHRtYXRjaEFueUNvbnRleHQoIGVsZW0sIGNvbnRleHQsIHhtbCApICk7XG5cblx0XHRcdC8vIEF2b2lkIGhhbmdpbmcgb250byBlbGVtZW50IChpc3N1ZSAjMjk5KVxuXHRcdFx0Y2hlY2tDb250ZXh0ID0gbnVsbDtcblx0XHRcdHJldHVybiByZXQ7XG5cdFx0fSBdO1xuXG5cdGZvciAoIDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdGlmICggKCBtYXRjaGVyID0gRXhwci5yZWxhdGl2ZVsgdG9rZW5zWyBpIF0udHlwZSBdICkgKSB7XG5cdFx0XHRtYXRjaGVycyA9IFsgYWRkQ29tYmluYXRvciggZWxlbWVudE1hdGNoZXIoIG1hdGNoZXJzICksIG1hdGNoZXIgKSBdO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtYXRjaGVyID0gRXhwci5maWx0ZXJbIHRva2Vuc1sgaSBdLnR5cGUgXS5hcHBseSggbnVsbCwgdG9rZW5zWyBpIF0ubWF0Y2hlcyApO1xuXG5cdFx0XHQvLyBSZXR1cm4gc3BlY2lhbCB1cG9uIHNlZWluZyBhIHBvc2l0aW9uYWwgbWF0Y2hlclxuXHRcdFx0aWYgKCBtYXRjaGVyWyBleHBhbmRvIF0gKSB7XG5cblx0XHRcdFx0Ly8gRmluZCB0aGUgbmV4dCByZWxhdGl2ZSBvcGVyYXRvciAoaWYgYW55KSBmb3IgcHJvcGVyIGhhbmRsaW5nXG5cdFx0XHRcdGogPSArK2k7XG5cdFx0XHRcdGZvciAoIDsgaiA8IGxlbjsgaisrICkge1xuXHRcdFx0XHRcdGlmICggRXhwci5yZWxhdGl2ZVsgdG9rZW5zWyBqIF0udHlwZSBdICkge1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBzZXRNYXRjaGVyKFxuXHRcdFx0XHRcdGkgPiAxICYmIGVsZW1lbnRNYXRjaGVyKCBtYXRjaGVycyApLFxuXHRcdFx0XHRcdGkgPiAxICYmIHRvU2VsZWN0b3IoXG5cblx0XHRcdFx0XHQvLyBJZiB0aGUgcHJlY2VkaW5nIHRva2VuIHdhcyBhIGRlc2NlbmRhbnQgY29tYmluYXRvciwgaW5zZXJ0IGFuIGltcGxpY2l0IGFueS1lbGVtZW50IGAqYFxuXHRcdFx0XHRcdHRva2Vuc1xuXHRcdFx0XHRcdFx0LnNsaWNlKCAwLCBpIC0gMSApXG5cdFx0XHRcdFx0XHQuY29uY2F0KCB7IHZhbHVlOiB0b2tlbnNbIGkgLSAyIF0udHlwZSA9PT0gXCIgXCIgPyBcIipcIiA6IFwiXCIgfSApXG5cdFx0XHRcdFx0KS5yZXBsYWNlKCBydHJpbSwgXCIkMVwiICksXG5cdFx0XHRcdFx0bWF0Y2hlcixcblx0XHRcdFx0XHRpIDwgaiAmJiBtYXRjaGVyRnJvbVRva2VucyggdG9rZW5zLnNsaWNlKCBpLCBqICkgKSxcblx0XHRcdFx0XHRqIDwgbGVuICYmIG1hdGNoZXJGcm9tVG9rZW5zKCAoIHRva2VucyA9IHRva2Vucy5zbGljZSggaiApICkgKSxcblx0XHRcdFx0XHRqIDwgbGVuICYmIHRvU2VsZWN0b3IoIHRva2VucyApXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0XHRtYXRjaGVycy5wdXNoKCBtYXRjaGVyICk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGVsZW1lbnRNYXRjaGVyKCBtYXRjaGVycyApO1xufVxuXG5mdW5jdGlvbiBtYXRjaGVyRnJvbUdyb3VwTWF0Y2hlcnMoIGVsZW1lbnRNYXRjaGVycywgc2V0TWF0Y2hlcnMgKSB7XG5cdHZhciBieVNldCA9IHNldE1hdGNoZXJzLmxlbmd0aCA+IDAsXG5cdFx0YnlFbGVtZW50ID0gZWxlbWVudE1hdGNoZXJzLmxlbmd0aCA+IDAsXG5cdFx0c3VwZXJNYXRjaGVyID0gZnVuY3Rpb24oIHNlZWQsIGNvbnRleHQsIHhtbCwgcmVzdWx0cywgb3V0ZXJtb3N0ICkge1xuXHRcdFx0dmFyIGVsZW0sIGosIG1hdGNoZXIsXG5cdFx0XHRcdG1hdGNoZWRDb3VudCA9IDAsXG5cdFx0XHRcdGkgPSBcIjBcIixcblx0XHRcdFx0dW5tYXRjaGVkID0gc2VlZCAmJiBbXSxcblx0XHRcdFx0c2V0TWF0Y2hlZCA9IFtdLFxuXHRcdFx0XHRjb250ZXh0QmFja3VwID0gb3V0ZXJtb3N0Q29udGV4dCxcblxuXHRcdFx0XHQvLyBXZSBtdXN0IGFsd2F5cyBoYXZlIGVpdGhlciBzZWVkIGVsZW1lbnRzIG9yIG91dGVybW9zdCBjb250ZXh0XG5cdFx0XHRcdGVsZW1zID0gc2VlZCB8fCBieUVsZW1lbnQgJiYgRXhwci5maW5kWyBcIlRBR1wiIF0oIFwiKlwiLCBvdXRlcm1vc3QgKSxcblxuXHRcdFx0XHQvLyBVc2UgaW50ZWdlciBkaXJydW5zIGlmZiB0aGlzIGlzIHRoZSBvdXRlcm1vc3QgbWF0Y2hlclxuXHRcdFx0XHRkaXJydW5zVW5pcXVlID0gKCBkaXJydW5zICs9IGNvbnRleHRCYWNrdXAgPT0gbnVsbCA/IDEgOiBNYXRoLnJhbmRvbSgpIHx8IDAuMSApLFxuXHRcdFx0XHRsZW4gPSBlbGVtcy5sZW5ndGg7XG5cblx0XHRcdGlmICggb3V0ZXJtb3N0ICkge1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNyAtIDE4K1xuXHRcdFx0XHQvLyBJRS9FZGdlIHNvbWV0aW1lcyB0aHJvdyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvciB3aGVuIHN0cmljdC1jb21wYXJpbmdcblx0XHRcdFx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG5cdFx0XHRcdG91dGVybW9zdENvbnRleHQgPSBjb250ZXh0ID09IGRvY3VtZW50IHx8IGNvbnRleHQgfHwgb3V0ZXJtb3N0O1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBZGQgZWxlbWVudHMgcGFzc2luZyBlbGVtZW50TWF0Y2hlcnMgZGlyZWN0bHkgdG8gcmVzdWx0c1xuXHRcdFx0Ly8gU3VwcG9ydDogSUU8OSwgU2FmYXJpXG5cdFx0XHQvLyBUb2xlcmF0ZSBOb2RlTGlzdCBwcm9wZXJ0aWVzIChJRTogXCJsZW5ndGhcIjsgU2FmYXJpOiA8bnVtYmVyPikgbWF0Y2hpbmcgZWxlbWVudHMgYnkgaWRcblx0XHRcdGZvciAoIDsgaSAhPT0gbGVuICYmICggZWxlbSA9IGVsZW1zWyBpIF0gKSAhPSBudWxsOyBpKysgKSB7XG5cdFx0XHRcdGlmICggYnlFbGVtZW50ICYmIGVsZW0gKSB7XG5cdFx0XHRcdFx0aiA9IDA7XG5cblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0XHRcdFx0XHQvLyBJRS9FZGdlIHNvbWV0aW1lcyB0aHJvdyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvciB3aGVuIHN0cmljdC1jb21wYXJpbmdcblx0XHRcdFx0XHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRcdFx0XHRcdGlmICggIWNvbnRleHQgJiYgZWxlbS5vd25lckRvY3VtZW50ICE9IGRvY3VtZW50ICkge1xuXHRcdFx0XHRcdFx0c2V0RG9jdW1lbnQoIGVsZW0gKTtcblx0XHRcdFx0XHRcdHhtbCA9ICFkb2N1bWVudElzSFRNTDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0d2hpbGUgKCAoIG1hdGNoZXIgPSBlbGVtZW50TWF0Y2hlcnNbIGorKyBdICkgKSB7XG5cdFx0XHRcdFx0XHRpZiAoIG1hdGNoZXIoIGVsZW0sIGNvbnRleHQgfHwgZG9jdW1lbnQsIHhtbCApICkge1xuXHRcdFx0XHRcdFx0XHRyZXN1bHRzLnB1c2goIGVsZW0gKTtcblx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICggb3V0ZXJtb3N0ICkge1xuXHRcdFx0XHRcdFx0ZGlycnVucyA9IGRpcnJ1bnNVbmlxdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gVHJhY2sgdW5tYXRjaGVkIGVsZW1lbnRzIGZvciBzZXQgZmlsdGVyc1xuXHRcdFx0XHRpZiAoIGJ5U2V0ICkge1xuXG5cdFx0XHRcdFx0Ly8gVGhleSB3aWxsIGhhdmUgZ29uZSB0aHJvdWdoIGFsbCBwb3NzaWJsZSBtYXRjaGVyc1xuXHRcdFx0XHRcdGlmICggKCBlbGVtID0gIW1hdGNoZXIgJiYgZWxlbSApICkge1xuXHRcdFx0XHRcdFx0bWF0Y2hlZENvdW50LS07XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gTGVuZ3RoZW4gdGhlIGFycmF5IGZvciBldmVyeSBlbGVtZW50LCBtYXRjaGVkIG9yIG5vdFxuXHRcdFx0XHRcdGlmICggc2VlZCApIHtcblx0XHRcdFx0XHRcdHVubWF0Y2hlZC5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIGBpYCBpcyBub3cgdGhlIGNvdW50IG9mIGVsZW1lbnRzIHZpc2l0ZWQgYWJvdmUsIGFuZCBhZGRpbmcgaXQgdG8gYG1hdGNoZWRDb3VudGBcblx0XHRcdC8vIG1ha2VzIHRoZSBsYXR0ZXIgbm9ubmVnYXRpdmUuXG5cdFx0XHRtYXRjaGVkQ291bnQgKz0gaTtcblxuXHRcdFx0Ly8gQXBwbHkgc2V0IGZpbHRlcnMgdG8gdW5tYXRjaGVkIGVsZW1lbnRzXG5cdFx0XHQvLyBOT1RFOiBUaGlzIGNhbiBiZSBza2lwcGVkIGlmIHRoZXJlIGFyZSBubyB1bm1hdGNoZWQgZWxlbWVudHMgKGkuZS4sIGBtYXRjaGVkQ291bnRgXG5cdFx0XHQvLyBlcXVhbHMgYGlgKSwgdW5sZXNzIHdlIGRpZG4ndCB2aXNpdCBfYW55XyBlbGVtZW50cyBpbiB0aGUgYWJvdmUgbG9vcCBiZWNhdXNlIHdlIGhhdmVcblx0XHRcdC8vIG5vIGVsZW1lbnQgbWF0Y2hlcnMgYW5kIG5vIHNlZWQuXG5cdFx0XHQvLyBJbmNyZW1lbnRpbmcgYW4gaW5pdGlhbGx5LXN0cmluZyBcIjBcIiBgaWAgYWxsb3dzIGBpYCB0byByZW1haW4gYSBzdHJpbmcgb25seSBpbiB0aGF0XG5cdFx0XHQvLyBjYXNlLCB3aGljaCB3aWxsIHJlc3VsdCBpbiBhIFwiMDBcIiBgbWF0Y2hlZENvdW50YCB0aGF0IGRpZmZlcnMgZnJvbSBgaWAgYnV0IGlzIGFsc29cblx0XHRcdC8vIG51bWVyaWNhbGx5IHplcm8uXG5cdFx0XHRpZiAoIGJ5U2V0ICYmIGkgIT09IG1hdGNoZWRDb3VudCApIHtcblx0XHRcdFx0aiA9IDA7XG5cdFx0XHRcdHdoaWxlICggKCBtYXRjaGVyID0gc2V0TWF0Y2hlcnNbIGorKyBdICkgKSB7XG5cdFx0XHRcdFx0bWF0Y2hlciggdW5tYXRjaGVkLCBzZXRNYXRjaGVkLCBjb250ZXh0LCB4bWwgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICggc2VlZCApIHtcblxuXHRcdFx0XHRcdC8vIFJlaW50ZWdyYXRlIGVsZW1lbnQgbWF0Y2hlcyB0byBlbGltaW5hdGUgdGhlIG5lZWQgZm9yIHNvcnRpbmdcblx0XHRcdFx0XHRpZiAoIG1hdGNoZWRDb3VudCA+IDAgKSB7XG5cdFx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRcdFx0aWYgKCAhKCB1bm1hdGNoZWRbIGkgXSB8fCBzZXRNYXRjaGVkWyBpIF0gKSApIHtcblx0XHRcdFx0XHRcdFx0XHRzZXRNYXRjaGVkWyBpIF0gPSBwb3AuY2FsbCggcmVzdWx0cyApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gRGlzY2FyZCBpbmRleCBwbGFjZWhvbGRlciB2YWx1ZXMgdG8gZ2V0IG9ubHkgYWN0dWFsIG1hdGNoZXNcblx0XHRcdFx0XHRzZXRNYXRjaGVkID0gY29uZGVuc2UoIHNldE1hdGNoZWQgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEFkZCBtYXRjaGVzIHRvIHJlc3VsdHNcblx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cywgc2V0TWF0Y2hlZCApO1xuXG5cdFx0XHRcdC8vIFNlZWRsZXNzIHNldCBtYXRjaGVzIHN1Y2NlZWRpbmcgbXVsdGlwbGUgc3VjY2Vzc2Z1bCBtYXRjaGVycyBzdGlwdWxhdGUgc29ydGluZ1xuXHRcdFx0XHRpZiAoIG91dGVybW9zdCAmJiAhc2VlZCAmJiBzZXRNYXRjaGVkLmxlbmd0aCA+IDAgJiZcblx0XHRcdFx0XHQoIG1hdGNoZWRDb3VudCArIHNldE1hdGNoZXJzLmxlbmd0aCApID4gMSApIHtcblxuXHRcdFx0XHRcdFNpenpsZS51bmlxdWVTb3J0KCByZXN1bHRzICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gT3ZlcnJpZGUgbWFuaXB1bGF0aW9uIG9mIGdsb2JhbHMgYnkgbmVzdGVkIG1hdGNoZXJzXG5cdFx0XHRpZiAoIG91dGVybW9zdCApIHtcblx0XHRcdFx0ZGlycnVucyA9IGRpcnJ1bnNVbmlxdWU7XG5cdFx0XHRcdG91dGVybW9zdENvbnRleHQgPSBjb250ZXh0QmFja3VwO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdW5tYXRjaGVkO1xuXHRcdH07XG5cblx0cmV0dXJuIGJ5U2V0ID9cblx0XHRtYXJrRnVuY3Rpb24oIHN1cGVyTWF0Y2hlciApIDpcblx0XHRzdXBlck1hdGNoZXI7XG59XG5cbmNvbXBpbGUgPSBTaXp6bGUuY29tcGlsZSA9IGZ1bmN0aW9uKCBzZWxlY3RvciwgbWF0Y2ggLyogSW50ZXJuYWwgVXNlIE9ubHkgKi8gKSB7XG5cdHZhciBpLFxuXHRcdHNldE1hdGNoZXJzID0gW10sXG5cdFx0ZWxlbWVudE1hdGNoZXJzID0gW10sXG5cdFx0Y2FjaGVkID0gY29tcGlsZXJDYWNoZVsgc2VsZWN0b3IgKyBcIiBcIiBdO1xuXG5cdGlmICggIWNhY2hlZCApIHtcblxuXHRcdC8vIEdlbmVyYXRlIGEgZnVuY3Rpb24gb2YgcmVjdXJzaXZlIGZ1bmN0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIHRvIGNoZWNrIGVhY2ggZWxlbWVudFxuXHRcdGlmICggIW1hdGNoICkge1xuXHRcdFx0bWF0Y2ggPSB0b2tlbml6ZSggc2VsZWN0b3IgKTtcblx0XHR9XG5cdFx0aSA9IG1hdGNoLmxlbmd0aDtcblx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdGNhY2hlZCA9IG1hdGNoZXJGcm9tVG9rZW5zKCBtYXRjaFsgaSBdICk7XG5cdFx0XHRpZiAoIGNhY2hlZFsgZXhwYW5kbyBdICkge1xuXHRcdFx0XHRzZXRNYXRjaGVycy5wdXNoKCBjYWNoZWQgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGVsZW1lbnRNYXRjaGVycy5wdXNoKCBjYWNoZWQgKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBDYWNoZSB0aGUgY29tcGlsZWQgZnVuY3Rpb25cblx0XHRjYWNoZWQgPSBjb21waWxlckNhY2hlKFxuXHRcdFx0c2VsZWN0b3IsXG5cdFx0XHRtYXRjaGVyRnJvbUdyb3VwTWF0Y2hlcnMoIGVsZW1lbnRNYXRjaGVycywgc2V0TWF0Y2hlcnMgKVxuXHRcdCk7XG5cblx0XHQvLyBTYXZlIHNlbGVjdG9yIGFuZCB0b2tlbml6YXRpb25cblx0XHRjYWNoZWQuc2VsZWN0b3IgPSBzZWxlY3Rvcjtcblx0fVxuXHRyZXR1cm4gY2FjaGVkO1xufTtcblxuLyoqXG4gKiBBIGxvdy1sZXZlbCBzZWxlY3Rpb24gZnVuY3Rpb24gdGhhdCB3b3JrcyB3aXRoIFNpenpsZSdzIGNvbXBpbGVkXG4gKiAgc2VsZWN0b3IgZnVuY3Rpb25zXG4gKiBAcGFyYW0ge1N0cmluZ3xGdW5jdGlvbn0gc2VsZWN0b3IgQSBzZWxlY3RvciBvciBhIHByZS1jb21waWxlZFxuICogIHNlbGVjdG9yIGZ1bmN0aW9uIGJ1aWx0IHdpdGggU2l6emxlLmNvbXBpbGVcbiAqIEBwYXJhbSB7RWxlbWVudH0gY29udGV4dFxuICogQHBhcmFtIHtBcnJheX0gW3Jlc3VsdHNdXG4gKiBAcGFyYW0ge0FycmF5fSBbc2VlZF0gQSBzZXQgb2YgZWxlbWVudHMgdG8gbWF0Y2ggYWdhaW5zdFxuICovXG5zZWxlY3QgPSBTaXp6bGUuc2VsZWN0ID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0LCByZXN1bHRzLCBzZWVkICkge1xuXHR2YXIgaSwgdG9rZW5zLCB0b2tlbiwgdHlwZSwgZmluZCxcblx0XHRjb21waWxlZCA9IHR5cGVvZiBzZWxlY3RvciA9PT0gXCJmdW5jdGlvblwiICYmIHNlbGVjdG9yLFxuXHRcdG1hdGNoID0gIXNlZWQgJiYgdG9rZW5pemUoICggc2VsZWN0b3IgPSBjb21waWxlZC5zZWxlY3RvciB8fCBzZWxlY3RvciApICk7XG5cblx0cmVzdWx0cyA9IHJlc3VsdHMgfHwgW107XG5cblx0Ly8gVHJ5IHRvIG1pbmltaXplIG9wZXJhdGlvbnMgaWYgdGhlcmUgaXMgb25seSBvbmUgc2VsZWN0b3IgaW4gdGhlIGxpc3QgYW5kIG5vIHNlZWRcblx0Ly8gKHRoZSBsYXR0ZXIgb2Ygd2hpY2ggZ3VhcmFudGVlcyB1cyBjb250ZXh0KVxuXHRpZiAoIG1hdGNoLmxlbmd0aCA9PT0gMSApIHtcblxuXHRcdC8vIFJlZHVjZSBjb250ZXh0IGlmIHRoZSBsZWFkaW5nIGNvbXBvdW5kIHNlbGVjdG9yIGlzIGFuIElEXG5cdFx0dG9rZW5zID0gbWF0Y2hbIDAgXSA9IG1hdGNoWyAwIF0uc2xpY2UoIDAgKTtcblx0XHRpZiAoIHRva2Vucy5sZW5ndGggPiAyICYmICggdG9rZW4gPSB0b2tlbnNbIDAgXSApLnR5cGUgPT09IFwiSURcIiAmJlxuXHRcdFx0Y29udGV4dC5ub2RlVHlwZSA9PT0gOSAmJiBkb2N1bWVudElzSFRNTCAmJiBFeHByLnJlbGF0aXZlWyB0b2tlbnNbIDEgXS50eXBlIF0gKSB7XG5cblx0XHRcdGNvbnRleHQgPSAoIEV4cHIuZmluZFsgXCJJRFwiIF0oIHRva2VuLm1hdGNoZXNbIDAgXVxuXHRcdFx0XHQucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKSwgY29udGV4dCApIHx8IFtdIClbIDAgXTtcblx0XHRcdGlmICggIWNvbnRleHQgKSB7XG5cdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXG5cdFx0XHQvLyBQcmVjb21waWxlZCBtYXRjaGVycyB3aWxsIHN0aWxsIHZlcmlmeSBhbmNlc3RyeSwgc28gc3RlcCB1cCBhIGxldmVsXG5cdFx0XHR9IGVsc2UgaWYgKCBjb21waWxlZCApIHtcblx0XHRcdFx0Y29udGV4dCA9IGNvbnRleHQucGFyZW50Tm9kZTtcblx0XHRcdH1cblxuXHRcdFx0c2VsZWN0b3IgPSBzZWxlY3Rvci5zbGljZSggdG9rZW5zLnNoaWZ0KCkudmFsdWUubGVuZ3RoICk7XG5cdFx0fVxuXG5cdFx0Ly8gRmV0Y2ggYSBzZWVkIHNldCBmb3IgcmlnaHQtdG8tbGVmdCBtYXRjaGluZ1xuXHRcdGkgPSBtYXRjaEV4cHJbIFwibmVlZHNDb250ZXh0XCIgXS50ZXN0KCBzZWxlY3RvciApID8gMCA6IHRva2Vucy5sZW5ndGg7XG5cdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHR0b2tlbiA9IHRva2Vuc1sgaSBdO1xuXG5cdFx0XHQvLyBBYm9ydCBpZiB3ZSBoaXQgYSBjb21iaW5hdG9yXG5cdFx0XHRpZiAoIEV4cHIucmVsYXRpdmVbICggdHlwZSA9IHRva2VuLnR5cGUgKSBdICkge1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdGlmICggKCBmaW5kID0gRXhwci5maW5kWyB0eXBlIF0gKSApIHtcblxuXHRcdFx0XHQvLyBTZWFyY2gsIGV4cGFuZGluZyBjb250ZXh0IGZvciBsZWFkaW5nIHNpYmxpbmcgY29tYmluYXRvcnNcblx0XHRcdFx0aWYgKCAoIHNlZWQgPSBmaW5kKFxuXHRcdFx0XHRcdHRva2VuLm1hdGNoZXNbIDAgXS5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApLFxuXHRcdFx0XHRcdHJzaWJsaW5nLnRlc3QoIHRva2Vuc1sgMCBdLnR5cGUgKSAmJiB0ZXN0Q29udGV4dCggY29udGV4dC5wYXJlbnROb2RlICkgfHxcblx0XHRcdFx0XHRcdGNvbnRleHRcblx0XHRcdFx0KSApICkge1xuXG5cdFx0XHRcdFx0Ly8gSWYgc2VlZCBpcyBlbXB0eSBvciBubyB0b2tlbnMgcmVtYWluLCB3ZSBjYW4gcmV0dXJuIGVhcmx5XG5cdFx0XHRcdFx0dG9rZW5zLnNwbGljZSggaSwgMSApO1xuXHRcdFx0XHRcdHNlbGVjdG9yID0gc2VlZC5sZW5ndGggJiYgdG9TZWxlY3RvciggdG9rZW5zICk7XG5cdFx0XHRcdFx0aWYgKCAhc2VsZWN0b3IgKSB7XG5cdFx0XHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBzZWVkICk7XG5cdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIENvbXBpbGUgYW5kIGV4ZWN1dGUgYSBmaWx0ZXJpbmcgZnVuY3Rpb24gaWYgb25lIGlzIG5vdCBwcm92aWRlZFxuXHQvLyBQcm92aWRlIGBtYXRjaGAgdG8gYXZvaWQgcmV0b2tlbml6YXRpb24gaWYgd2UgbW9kaWZpZWQgdGhlIHNlbGVjdG9yIGFib3ZlXG5cdCggY29tcGlsZWQgfHwgY29tcGlsZSggc2VsZWN0b3IsIG1hdGNoICkgKShcblx0XHRzZWVkLFxuXHRcdGNvbnRleHQsXG5cdFx0IWRvY3VtZW50SXNIVE1MLFxuXHRcdHJlc3VsdHMsXG5cdFx0IWNvbnRleHQgfHwgcnNpYmxpbmcudGVzdCggc2VsZWN0b3IgKSAmJiB0ZXN0Q29udGV4dCggY29udGV4dC5wYXJlbnROb2RlICkgfHwgY29udGV4dFxuXHQpO1xuXHRyZXR1cm4gcmVzdWx0cztcbn07XG5cbi8vIE9uZS10aW1lIGFzc2lnbm1lbnRzXG5cbi8vIFNvcnQgc3RhYmlsaXR5XG5zdXBwb3J0LnNvcnRTdGFibGUgPSBleHBhbmRvLnNwbGl0KCBcIlwiICkuc29ydCggc29ydE9yZGVyICkuam9pbiggXCJcIiApID09PSBleHBhbmRvO1xuXG4vLyBTdXBwb3J0OiBDaHJvbWUgMTQtMzUrXG4vLyBBbHdheXMgYXNzdW1lIGR1cGxpY2F0ZXMgaWYgdGhleSBhcmVuJ3QgcGFzc2VkIHRvIHRoZSBjb21wYXJpc29uIGZ1bmN0aW9uXG5zdXBwb3J0LmRldGVjdER1cGxpY2F0ZXMgPSAhIWhhc0R1cGxpY2F0ZTtcblxuLy8gSW5pdGlhbGl6ZSBhZ2FpbnN0IHRoZSBkZWZhdWx0IGRvY3VtZW50XG5zZXREb2N1bWVudCgpO1xuXG4vLyBTdXBwb3J0OiBXZWJraXQ8NTM3LjMyIC0gU2FmYXJpIDYuMC4zL0Nocm9tZSAyNSAoZml4ZWQgaW4gQ2hyb21lIDI3KVxuLy8gRGV0YWNoZWQgbm9kZXMgY29uZm91bmRpbmdseSBmb2xsb3cgKmVhY2ggb3RoZXIqXG5zdXBwb3J0LnNvcnREZXRhY2hlZCA9IGFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXG5cdC8vIFNob3VsZCByZXR1cm4gMSwgYnV0IHJldHVybnMgNCAoZm9sbG93aW5nKVxuXHRyZXR1cm4gZWwuY29tcGFyZURvY3VtZW50UG9zaXRpb24oIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZmllbGRzZXRcIiApICkgJiAxO1xufSApO1xuXG4vLyBTdXBwb3J0OiBJRTw4XG4vLyBQcmV2ZW50IGF0dHJpYnV0ZS9wcm9wZXJ0eSBcImludGVycG9sYXRpb25cIlxuLy8gaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczUzNjQyOSUyOFZTLjg1JTI5LmFzcHhcbmlmICggIWFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXHRlbC5pbm5lckhUTUwgPSBcIjxhIGhyZWY9JyMnPjwvYT5cIjtcblx0cmV0dXJuIGVsLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCBcImhyZWZcIiApID09PSBcIiNcIjtcbn0gKSApIHtcblx0YWRkSGFuZGxlKCBcInR5cGV8aHJlZnxoZWlnaHR8d2lkdGhcIiwgZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGlzWE1MICkge1xuXHRcdGlmICggIWlzWE1MICkge1xuXHRcdFx0cmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlKCBuYW1lLCBuYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwidHlwZVwiID8gMSA6IDIgKTtcblx0XHR9XG5cdH0gKTtcbn1cblxuLy8gU3VwcG9ydDogSUU8OVxuLy8gVXNlIGRlZmF1bHRWYWx1ZSBpbiBwbGFjZSBvZiBnZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiKVxuaWYgKCAhc3VwcG9ydC5hdHRyaWJ1dGVzIHx8ICFhc3NlcnQoIGZ1bmN0aW9uKCBlbCApIHtcblx0ZWwuaW5uZXJIVE1MID0gXCI8aW5wdXQvPlwiO1xuXHRlbC5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSggXCJ2YWx1ZVwiLCBcIlwiICk7XG5cdHJldHVybiBlbC5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSggXCJ2YWx1ZVwiICkgPT09IFwiXCI7XG59ICkgKSB7XG5cdGFkZEhhbmRsZSggXCJ2YWx1ZVwiLCBmdW5jdGlvbiggZWxlbSwgX25hbWUsIGlzWE1MICkge1xuXHRcdGlmICggIWlzWE1MICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gXCJpbnB1dFwiICkge1xuXHRcdFx0cmV0dXJuIGVsZW0uZGVmYXVsdFZhbHVlO1xuXHRcdH1cblx0fSApO1xufVxuXG4vLyBTdXBwb3J0OiBJRTw5XG4vLyBVc2UgZ2V0QXR0cmlidXRlTm9kZSB0byBmZXRjaCBib29sZWFucyB3aGVuIGdldEF0dHJpYnV0ZSBsaWVzXG5pZiAoICFhc3NlcnQoIGZ1bmN0aW9uKCBlbCApIHtcblx0cmV0dXJuIGVsLmdldEF0dHJpYnV0ZSggXCJkaXNhYmxlZFwiICkgPT0gbnVsbDtcbn0gKSApIHtcblx0YWRkSGFuZGxlKCBib29sZWFucywgZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGlzWE1MICkge1xuXHRcdHZhciB2YWw7XG5cdFx0aWYgKCAhaXNYTUwgKSB7XG5cdFx0XHRyZXR1cm4gZWxlbVsgbmFtZSBdID09PSB0cnVlID8gbmFtZS50b0xvd2VyQ2FzZSgpIDpcblx0XHRcdFx0KCB2YWwgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoIG5hbWUgKSApICYmIHZhbC5zcGVjaWZpZWQgP1xuXHRcdFx0XHRcdHZhbC52YWx1ZSA6XG5cdFx0XHRcdFx0bnVsbDtcblx0XHR9XG5cdH0gKTtcbn1cblxucmV0dXJuIFNpenpsZTtcblxufSApKCB3aW5kb3cgKTtcblxuXG5cbmpRdWVyeS5maW5kID0gU2l6emxlO1xualF1ZXJ5LmV4cHIgPSBTaXp6bGUuc2VsZWN0b3JzO1xuXG4vLyBEZXByZWNhdGVkXG5qUXVlcnkuZXhwclsgXCI6XCIgXSA9IGpRdWVyeS5leHByLnBzZXVkb3M7XG5qUXVlcnkudW5pcXVlU29ydCA9IGpRdWVyeS51bmlxdWUgPSBTaXp6bGUudW5pcXVlU29ydDtcbmpRdWVyeS50ZXh0ID0gU2l6emxlLmdldFRleHQ7XG5qUXVlcnkuaXNYTUxEb2MgPSBTaXp6bGUuaXNYTUw7XG5qUXVlcnkuY29udGFpbnMgPSBTaXp6bGUuY29udGFpbnM7XG5qUXVlcnkuZXNjYXBlU2VsZWN0b3IgPSBTaXp6bGUuZXNjYXBlO1xuXG5cblxuXG52YXIgZGlyID0gZnVuY3Rpb24oIGVsZW0sIGRpciwgdW50aWwgKSB7XG5cdHZhciBtYXRjaGVkID0gW10sXG5cdFx0dHJ1bmNhdGUgPSB1bnRpbCAhPT0gdW5kZWZpbmVkO1xuXG5cdHdoaWxlICggKCBlbGVtID0gZWxlbVsgZGlyIF0gKSAmJiBlbGVtLm5vZGVUeXBlICE9PSA5ICkge1xuXHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdGlmICggdHJ1bmNhdGUgJiYgalF1ZXJ5KCBlbGVtICkuaXMoIHVudGlsICkgKSB7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdFx0bWF0Y2hlZC5wdXNoKCBlbGVtICk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBtYXRjaGVkO1xufTtcblxuXG52YXIgc2libGluZ3MgPSBmdW5jdGlvbiggbiwgZWxlbSApIHtcblx0dmFyIG1hdGNoZWQgPSBbXTtcblxuXHRmb3IgKCA7IG47IG4gPSBuLm5leHRTaWJsaW5nICkge1xuXHRcdGlmICggbi5ub2RlVHlwZSA9PT0gMSAmJiBuICE9PSBlbGVtICkge1xuXHRcdFx0bWF0Y2hlZC5wdXNoKCBuICk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIG1hdGNoZWQ7XG59O1xuXG5cbnZhciBybmVlZHNDb250ZXh0ID0galF1ZXJ5LmV4cHIubWF0Y2gubmVlZHNDb250ZXh0O1xuXG5cblxuZnVuY3Rpb24gbm9kZU5hbWUoIGVsZW0sIG5hbWUgKSB7XG5cblx0cmV0dXJuIGVsZW0ubm9kZU5hbWUgJiYgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBuYW1lLnRvTG93ZXJDYXNlKCk7XG5cbn1cbnZhciByc2luZ2xlVGFnID0gKCAvXjwoW2Etel1bXlxcL1xcMD46XFx4MjBcXHRcXHJcXG5cXGZdKilbXFx4MjBcXHRcXHJcXG5cXGZdKlxcLz8+KD86PFxcL1xcMT58KSQvaSApO1xuXG5cblxuLy8gSW1wbGVtZW50IHRoZSBpZGVudGljYWwgZnVuY3Rpb25hbGl0eSBmb3IgZmlsdGVyIGFuZCBub3RcbmZ1bmN0aW9uIHdpbm5vdyggZWxlbWVudHMsIHF1YWxpZmllciwgbm90ICkge1xuXHRpZiAoIGlzRnVuY3Rpb24oIHF1YWxpZmllciApICkge1xuXHRcdHJldHVybiBqUXVlcnkuZ3JlcCggZWxlbWVudHMsIGZ1bmN0aW9uKCBlbGVtLCBpICkge1xuXHRcdFx0cmV0dXJuICEhcXVhbGlmaWVyLmNhbGwoIGVsZW0sIGksIGVsZW0gKSAhPT0gbm90O1xuXHRcdH0gKTtcblx0fVxuXG5cdC8vIFNpbmdsZSBlbGVtZW50XG5cdGlmICggcXVhbGlmaWVyLm5vZGVUeXBlICkge1xuXHRcdHJldHVybiBqUXVlcnkuZ3JlcCggZWxlbWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuICggZWxlbSA9PT0gcXVhbGlmaWVyICkgIT09IG5vdDtcblx0XHR9ICk7XG5cdH1cblxuXHQvLyBBcnJheWxpa2Ugb2YgZWxlbWVudHMgKGpRdWVyeSwgYXJndW1lbnRzLCBBcnJheSlcblx0aWYgKCB0eXBlb2YgcXVhbGlmaWVyICE9PSBcInN0cmluZ1wiICkge1xuXHRcdHJldHVybiBqUXVlcnkuZ3JlcCggZWxlbWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuICggaW5kZXhPZi5jYWxsKCBxdWFsaWZpZXIsIGVsZW0gKSA+IC0xICkgIT09IG5vdDtcblx0XHR9ICk7XG5cdH1cblxuXHQvLyBGaWx0ZXJlZCBkaXJlY3RseSBmb3IgYm90aCBzaW1wbGUgYW5kIGNvbXBsZXggc2VsZWN0b3JzXG5cdHJldHVybiBqUXVlcnkuZmlsdGVyKCBxdWFsaWZpZXIsIGVsZW1lbnRzLCBub3QgKTtcbn1cblxualF1ZXJ5LmZpbHRlciA9IGZ1bmN0aW9uKCBleHByLCBlbGVtcywgbm90ICkge1xuXHR2YXIgZWxlbSA9IGVsZW1zWyAwIF07XG5cblx0aWYgKCBub3QgKSB7XG5cdFx0ZXhwciA9IFwiOm5vdChcIiArIGV4cHIgKyBcIilcIjtcblx0fVxuXG5cdGlmICggZWxlbXMubGVuZ3RoID09PSAxICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5maW5kLm1hdGNoZXNTZWxlY3RvciggZWxlbSwgZXhwciApID8gWyBlbGVtIF0gOiBbXTtcblx0fVxuXG5cdHJldHVybiBqUXVlcnkuZmluZC5tYXRjaGVzKCBleHByLCBqUXVlcnkuZ3JlcCggZWxlbXMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBlbGVtLm5vZGVUeXBlID09PSAxO1xuXHR9ICkgKTtcbn07XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0ZmluZDogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHZhciBpLCByZXQsXG5cdFx0XHRsZW4gPSB0aGlzLmxlbmd0aCxcblx0XHRcdHNlbGYgPSB0aGlzO1xuXG5cdFx0aWYgKCB0eXBlb2Ygc2VsZWN0b3IgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGpRdWVyeSggc2VsZWN0b3IgKS5maWx0ZXIoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRmb3IgKCBpID0gMDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdFx0XHRcdGlmICggalF1ZXJ5LmNvbnRhaW5zKCBzZWxmWyBpIF0sIHRoaXMgKSApIHtcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSApICk7XG5cdFx0fVxuXG5cdFx0cmV0ID0gdGhpcy5wdXNoU3RhY2soIFtdICk7XG5cblx0XHRmb3IgKCBpID0gMDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdFx0alF1ZXJ5LmZpbmQoIHNlbGVjdG9yLCBzZWxmWyBpIF0sIHJldCApO1xuXHRcdH1cblxuXHRcdHJldHVybiBsZW4gPiAxID8galF1ZXJ5LnVuaXF1ZVNvcnQoIHJldCApIDogcmV0O1xuXHR9LFxuXHRmaWx0ZXI6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHdpbm5vdyggdGhpcywgc2VsZWN0b3IgfHwgW10sIGZhbHNlICkgKTtcblx0fSxcblx0bm90OiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCB3aW5ub3coIHRoaXMsIHNlbGVjdG9yIHx8IFtdLCB0cnVlICkgKTtcblx0fSxcblx0aXM6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gISF3aW5ub3coXG5cdFx0XHR0aGlzLFxuXG5cdFx0XHQvLyBJZiB0aGlzIGlzIGEgcG9zaXRpb25hbC9yZWxhdGl2ZSBzZWxlY3RvciwgY2hlY2sgbWVtYmVyc2hpcCBpbiB0aGUgcmV0dXJuZWQgc2V0XG5cdFx0XHQvLyBzbyAkKFwicDpmaXJzdFwiKS5pcyhcInA6bGFzdFwiKSB3b24ndCByZXR1cm4gdHJ1ZSBmb3IgYSBkb2Mgd2l0aCB0d28gXCJwXCIuXG5cdFx0XHR0eXBlb2Ygc2VsZWN0b3IgPT09IFwic3RyaW5nXCIgJiYgcm5lZWRzQ29udGV4dC50ZXN0KCBzZWxlY3RvciApID9cblx0XHRcdFx0alF1ZXJ5KCBzZWxlY3RvciApIDpcblx0XHRcdFx0c2VsZWN0b3IgfHwgW10sXG5cdFx0XHRmYWxzZVxuXHRcdCkubGVuZ3RoO1xuXHR9XG59ICk7XG5cblxuLy8gSW5pdGlhbGl6ZSBhIGpRdWVyeSBvYmplY3RcblxuXG4vLyBBIGNlbnRyYWwgcmVmZXJlbmNlIHRvIHRoZSByb290IGpRdWVyeShkb2N1bWVudClcbnZhciByb290alF1ZXJ5LFxuXG5cdC8vIEEgc2ltcGxlIHdheSB0byBjaGVjayBmb3IgSFRNTCBzdHJpbmdzXG5cdC8vIFByaW9yaXRpemUgI2lkIG92ZXIgPHRhZz4gdG8gYXZvaWQgWFNTIHZpYSBsb2NhdGlvbi5oYXNoICgjOTUyMSlcblx0Ly8gU3RyaWN0IEhUTUwgcmVjb2duaXRpb24gKCMxMTI5MDogbXVzdCBzdGFydCB3aXRoIDwpXG5cdC8vIFNob3J0Y3V0IHNpbXBsZSAjaWQgY2FzZSBmb3Igc3BlZWRcblx0cnF1aWNrRXhwciA9IC9eKD86XFxzKig8W1xcd1xcV10rPilbXj5dKnwjKFtcXHctXSspKSQvLFxuXG5cdGluaXQgPSBqUXVlcnkuZm4uaW5pdCA9IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCwgcm9vdCApIHtcblx0XHR2YXIgbWF0Y2gsIGVsZW07XG5cblx0XHQvLyBIQU5ETEU6ICQoXCJcIiksICQobnVsbCksICQodW5kZWZpbmVkKSwgJChmYWxzZSlcblx0XHRpZiAoICFzZWxlY3RvciApIHtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblxuXHRcdC8vIE1ldGhvZCBpbml0KCkgYWNjZXB0cyBhbiBhbHRlcm5hdGUgcm9vdGpRdWVyeVxuXHRcdC8vIHNvIG1pZ3JhdGUgY2FuIHN1cHBvcnQgalF1ZXJ5LnN1YiAoZ2gtMjEwMSlcblx0XHRyb290ID0gcm9vdCB8fCByb290alF1ZXJ5O1xuXG5cdFx0Ly8gSGFuZGxlIEhUTUwgc3RyaW5nc1xuXHRcdGlmICggdHlwZW9mIHNlbGVjdG9yID09PSBcInN0cmluZ1wiICkge1xuXHRcdFx0aWYgKCBzZWxlY3RvclsgMCBdID09PSBcIjxcIiAmJlxuXHRcdFx0XHRzZWxlY3Rvclsgc2VsZWN0b3IubGVuZ3RoIC0gMSBdID09PSBcIj5cIiAmJlxuXHRcdFx0XHRzZWxlY3Rvci5sZW5ndGggPj0gMyApIHtcblxuXHRcdFx0XHQvLyBBc3N1bWUgdGhhdCBzdHJpbmdzIHRoYXQgc3RhcnQgYW5kIGVuZCB3aXRoIDw+IGFyZSBIVE1MIGFuZCBza2lwIHRoZSByZWdleCBjaGVja1xuXHRcdFx0XHRtYXRjaCA9IFsgbnVsbCwgc2VsZWN0b3IsIG51bGwgXTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bWF0Y2ggPSBycXVpY2tFeHByLmV4ZWMoIHNlbGVjdG9yICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE1hdGNoIGh0bWwgb3IgbWFrZSBzdXJlIG5vIGNvbnRleHQgaXMgc3BlY2lmaWVkIGZvciAjaWRcblx0XHRcdGlmICggbWF0Y2ggJiYgKCBtYXRjaFsgMSBdIHx8ICFjb250ZXh0ICkgKSB7XG5cblx0XHRcdFx0Ly8gSEFORExFOiAkKGh0bWwpIC0+ICQoYXJyYXkpXG5cdFx0XHRcdGlmICggbWF0Y2hbIDEgXSApIHtcblx0XHRcdFx0XHRjb250ZXh0ID0gY29udGV4dCBpbnN0YW5jZW9mIGpRdWVyeSA/IGNvbnRleHRbIDAgXSA6IGNvbnRleHQ7XG5cblx0XHRcdFx0XHQvLyBPcHRpb24gdG8gcnVuIHNjcmlwdHMgaXMgdHJ1ZSBmb3IgYmFjay1jb21wYXRcblx0XHRcdFx0XHQvLyBJbnRlbnRpb25hbGx5IGxldCB0aGUgZXJyb3IgYmUgdGhyb3duIGlmIHBhcnNlSFRNTCBpcyBub3QgcHJlc2VudFxuXHRcdFx0XHRcdGpRdWVyeS5tZXJnZSggdGhpcywgalF1ZXJ5LnBhcnNlSFRNTChcblx0XHRcdFx0XHRcdG1hdGNoWyAxIF0sXG5cdFx0XHRcdFx0XHRjb250ZXh0ICYmIGNvbnRleHQubm9kZVR5cGUgPyBjb250ZXh0Lm93bmVyRG9jdW1lbnQgfHwgY29udGV4dCA6IGRvY3VtZW50LFxuXHRcdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHRcdCkgKTtcblxuXHRcdFx0XHRcdC8vIEhBTkRMRTogJChodG1sLCBwcm9wcylcblx0XHRcdFx0XHRpZiAoIHJzaW5nbGVUYWcudGVzdCggbWF0Y2hbIDEgXSApICYmIGpRdWVyeS5pc1BsYWluT2JqZWN0KCBjb250ZXh0ICkgKSB7XG5cdFx0XHRcdFx0XHRmb3IgKCBtYXRjaCBpbiBjb250ZXh0ICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIFByb3BlcnRpZXMgb2YgY29udGV4dCBhcmUgY2FsbGVkIGFzIG1ldGhvZHMgaWYgcG9zc2libGVcblx0XHRcdFx0XHRcdFx0aWYgKCBpc0Z1bmN0aW9uKCB0aGlzWyBtYXRjaCBdICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpc1sgbWF0Y2ggXSggY29udGV4dFsgbWF0Y2ggXSApO1xuXG5cdFx0XHRcdFx0XHRcdC8vIC4uLmFuZCBvdGhlcndpc2Ugc2V0IGFzIGF0dHJpYnV0ZXNcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmF0dHIoIG1hdGNoLCBjb250ZXh0WyBtYXRjaCBdICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblxuXHRcdFx0XHQvLyBIQU5ETEU6ICQoI2lkKVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggbWF0Y2hbIDIgXSApO1xuXG5cdFx0XHRcdFx0aWYgKCBlbGVtICkge1xuXG5cdFx0XHRcdFx0XHQvLyBJbmplY3QgdGhlIGVsZW1lbnQgZGlyZWN0bHkgaW50byB0aGUgalF1ZXJ5IG9iamVjdFxuXHRcdFx0XHRcdFx0dGhpc1sgMCBdID0gZWxlbTtcblx0XHRcdFx0XHRcdHRoaXMubGVuZ3RoID0gMTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH1cblxuXHRcdFx0Ly8gSEFORExFOiAkKGV4cHIsICQoLi4uKSlcblx0XHRcdH0gZWxzZSBpZiAoICFjb250ZXh0IHx8IGNvbnRleHQuanF1ZXJ5ICkge1xuXHRcdFx0XHRyZXR1cm4gKCBjb250ZXh0IHx8IHJvb3QgKS5maW5kKCBzZWxlY3RvciApO1xuXG5cdFx0XHQvLyBIQU5ETEU6ICQoZXhwciwgY29udGV4dClcblx0XHRcdC8vICh3aGljaCBpcyBqdXN0IGVxdWl2YWxlbnQgdG86ICQoY29udGV4dCkuZmluZChleHByKVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuY29uc3RydWN0b3IoIGNvbnRleHQgKS5maW5kKCBzZWxlY3RvciApO1xuXHRcdFx0fVxuXG5cdFx0Ly8gSEFORExFOiAkKERPTUVsZW1lbnQpXG5cdFx0fSBlbHNlIGlmICggc2VsZWN0b3Iubm9kZVR5cGUgKSB7XG5cdFx0XHR0aGlzWyAwIF0gPSBzZWxlY3Rvcjtcblx0XHRcdHRoaXMubGVuZ3RoID0gMTtcblx0XHRcdHJldHVybiB0aGlzO1xuXG5cdFx0Ly8gSEFORExFOiAkKGZ1bmN0aW9uKVxuXHRcdC8vIFNob3J0Y3V0IGZvciBkb2N1bWVudCByZWFkeVxuXHRcdH0gZWxzZSBpZiAoIGlzRnVuY3Rpb24oIHNlbGVjdG9yICkgKSB7XG5cdFx0XHRyZXR1cm4gcm9vdC5yZWFkeSAhPT0gdW5kZWZpbmVkID9cblx0XHRcdFx0cm9vdC5yZWFkeSggc2VsZWN0b3IgKSA6XG5cblx0XHRcdFx0Ly8gRXhlY3V0ZSBpbW1lZGlhdGVseSBpZiByZWFkeSBpcyBub3QgcHJlc2VudFxuXHRcdFx0XHRzZWxlY3RvciggalF1ZXJ5ICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGpRdWVyeS5tYWtlQXJyYXkoIHNlbGVjdG9yLCB0aGlzICk7XG5cdH07XG5cbi8vIEdpdmUgdGhlIGluaXQgZnVuY3Rpb24gdGhlIGpRdWVyeSBwcm90b3R5cGUgZm9yIGxhdGVyIGluc3RhbnRpYXRpb25cbmluaXQucHJvdG90eXBlID0galF1ZXJ5LmZuO1xuXG4vLyBJbml0aWFsaXplIGNlbnRyYWwgcmVmZXJlbmNlXG5yb290alF1ZXJ5ID0galF1ZXJ5KCBkb2N1bWVudCApO1xuXG5cbnZhciBycGFyZW50c3ByZXYgPSAvXig/OnBhcmVudHN8cHJldig/OlVudGlsfEFsbCkpLyxcblxuXHQvLyBNZXRob2RzIGd1YXJhbnRlZWQgdG8gcHJvZHVjZSBhIHVuaXF1ZSBzZXQgd2hlbiBzdGFydGluZyBmcm9tIGEgdW5pcXVlIHNldFxuXHRndWFyYW50ZWVkVW5pcXVlID0ge1xuXHRcdGNoaWxkcmVuOiB0cnVlLFxuXHRcdGNvbnRlbnRzOiB0cnVlLFxuXHRcdG5leHQ6IHRydWUsXG5cdFx0cHJldjogdHJ1ZVxuXHR9O1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGhhczogZnVuY3Rpb24oIHRhcmdldCApIHtcblx0XHR2YXIgdGFyZ2V0cyA9IGpRdWVyeSggdGFyZ2V0LCB0aGlzICksXG5cdFx0XHRsID0gdGFyZ2V0cy5sZW5ndGg7XG5cblx0XHRyZXR1cm4gdGhpcy5maWx0ZXIoIGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIGkgPSAwO1xuXHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRpZiAoIGpRdWVyeS5jb250YWlucyggdGhpcywgdGFyZ2V0c1sgaSBdICkgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0Y2xvc2VzdDogZnVuY3Rpb24oIHNlbGVjdG9ycywgY29udGV4dCApIHtcblx0XHR2YXIgY3VyLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRsID0gdGhpcy5sZW5ndGgsXG5cdFx0XHRtYXRjaGVkID0gW10sXG5cdFx0XHR0YXJnZXRzID0gdHlwZW9mIHNlbGVjdG9ycyAhPT0gXCJzdHJpbmdcIiAmJiBqUXVlcnkoIHNlbGVjdG9ycyApO1xuXG5cdFx0Ly8gUG9zaXRpb25hbCBzZWxlY3RvcnMgbmV2ZXIgbWF0Y2gsIHNpbmNlIHRoZXJlJ3Mgbm8gX3NlbGVjdGlvbl8gY29udGV4dFxuXHRcdGlmICggIXJuZWVkc0NvbnRleHQudGVzdCggc2VsZWN0b3JzICkgKSB7XG5cdFx0XHRmb3IgKCA7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdGZvciAoIGN1ciA9IHRoaXNbIGkgXTsgY3VyICYmIGN1ciAhPT0gY29udGV4dDsgY3VyID0gY3VyLnBhcmVudE5vZGUgKSB7XG5cblx0XHRcdFx0XHQvLyBBbHdheXMgc2tpcCBkb2N1bWVudCBmcmFnbWVudHNcblx0XHRcdFx0XHRpZiAoIGN1ci5ub2RlVHlwZSA8IDExICYmICggdGFyZ2V0cyA/XG5cdFx0XHRcdFx0XHR0YXJnZXRzLmluZGV4KCBjdXIgKSA+IC0xIDpcblxuXHRcdFx0XHRcdFx0Ly8gRG9uJ3QgcGFzcyBub24tZWxlbWVudHMgdG8gU2l6emxlXG5cdFx0XHRcdFx0XHRjdXIubm9kZVR5cGUgPT09IDEgJiZcblx0XHRcdFx0XHRcdFx0alF1ZXJ5LmZpbmQubWF0Y2hlc1NlbGVjdG9yKCBjdXIsIHNlbGVjdG9ycyApICkgKSB7XG5cblx0XHRcdFx0XHRcdG1hdGNoZWQucHVzaCggY3VyICk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIG1hdGNoZWQubGVuZ3RoID4gMSA/IGpRdWVyeS51bmlxdWVTb3J0KCBtYXRjaGVkICkgOiBtYXRjaGVkICk7XG5cdH0sXG5cblx0Ly8gRGV0ZXJtaW5lIHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50IHdpdGhpbiB0aGUgc2V0XG5cdGluZGV4OiBmdW5jdGlvbiggZWxlbSApIHtcblxuXHRcdC8vIE5vIGFyZ3VtZW50LCByZXR1cm4gaW5kZXggaW4gcGFyZW50XG5cdFx0aWYgKCAhZWxlbSApIHtcblx0XHRcdHJldHVybiAoIHRoaXNbIDAgXSAmJiB0aGlzWyAwIF0ucGFyZW50Tm9kZSApID8gdGhpcy5maXJzdCgpLnByZXZBbGwoKS5sZW5ndGggOiAtMTtcblx0XHR9XG5cblx0XHQvLyBJbmRleCBpbiBzZWxlY3RvclxuXHRcdGlmICggdHlwZW9mIGVsZW0gPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRyZXR1cm4gaW5kZXhPZi5jYWxsKCBqUXVlcnkoIGVsZW0gKSwgdGhpc1sgMCBdICk7XG5cdFx0fVxuXG5cdFx0Ly8gTG9jYXRlIHRoZSBwb3NpdGlvbiBvZiB0aGUgZGVzaXJlZCBlbGVtZW50XG5cdFx0cmV0dXJuIGluZGV4T2YuY2FsbCggdGhpcyxcblxuXHRcdFx0Ly8gSWYgaXQgcmVjZWl2ZXMgYSBqUXVlcnkgb2JqZWN0LCB0aGUgZmlyc3QgZWxlbWVudCBpcyB1c2VkXG5cdFx0XHRlbGVtLmpxdWVyeSA/IGVsZW1bIDAgXSA6IGVsZW1cblx0XHQpO1xuXHR9LFxuXG5cdGFkZDogZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0ICkge1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayhcblx0XHRcdGpRdWVyeS51bmlxdWVTb3J0KFxuXHRcdFx0XHRqUXVlcnkubWVyZ2UoIHRoaXMuZ2V0KCksIGpRdWVyeSggc2VsZWN0b3IsIGNvbnRleHQgKSApXG5cdFx0XHQpXG5cdFx0KTtcblx0fSxcblxuXHRhZGRCYWNrOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0cmV0dXJuIHRoaXMuYWRkKCBzZWxlY3RvciA9PSBudWxsID9cblx0XHRcdHRoaXMucHJldk9iamVjdCA6IHRoaXMucHJldk9iamVjdC5maWx0ZXIoIHNlbGVjdG9yIClcblx0XHQpO1xuXHR9XG59ICk7XG5cbmZ1bmN0aW9uIHNpYmxpbmcoIGN1ciwgZGlyICkge1xuXHR3aGlsZSAoICggY3VyID0gY3VyWyBkaXIgXSApICYmIGN1ci5ub2RlVHlwZSAhPT0gMSApIHt9XG5cdHJldHVybiBjdXI7XG59XG5cbmpRdWVyeS5lYWNoKCB7XG5cdHBhcmVudDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0dmFyIHBhcmVudCA9IGVsZW0ucGFyZW50Tm9kZTtcblx0XHRyZXR1cm4gcGFyZW50ICYmIHBhcmVudC5ub2RlVHlwZSAhPT0gMTEgPyBwYXJlbnQgOiBudWxsO1xuXHR9LFxuXHRwYXJlbnRzOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gZGlyKCBlbGVtLCBcInBhcmVudE5vZGVcIiApO1xuXHR9LFxuXHRwYXJlbnRzVW50aWw6IGZ1bmN0aW9uKCBlbGVtLCBfaSwgdW50aWwgKSB7XG5cdFx0cmV0dXJuIGRpciggZWxlbSwgXCJwYXJlbnROb2RlXCIsIHVudGlsICk7XG5cdH0sXG5cdG5leHQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBzaWJsaW5nKCBlbGVtLCBcIm5leHRTaWJsaW5nXCIgKTtcblx0fSxcblx0cHJldjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIHNpYmxpbmcoIGVsZW0sIFwicHJldmlvdXNTaWJsaW5nXCIgKTtcblx0fSxcblx0bmV4dEFsbDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIGRpciggZWxlbSwgXCJuZXh0U2libGluZ1wiICk7XG5cdH0sXG5cdHByZXZBbGw6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBkaXIoIGVsZW0sIFwicHJldmlvdXNTaWJsaW5nXCIgKTtcblx0fSxcblx0bmV4dFVudGlsOiBmdW5jdGlvbiggZWxlbSwgX2ksIHVudGlsICkge1xuXHRcdHJldHVybiBkaXIoIGVsZW0sIFwibmV4dFNpYmxpbmdcIiwgdW50aWwgKTtcblx0fSxcblx0cHJldlVudGlsOiBmdW5jdGlvbiggZWxlbSwgX2ksIHVudGlsICkge1xuXHRcdHJldHVybiBkaXIoIGVsZW0sIFwicHJldmlvdXNTaWJsaW5nXCIsIHVudGlsICk7XG5cdH0sXG5cdHNpYmxpbmdzOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gc2libGluZ3MoICggZWxlbS5wYXJlbnROb2RlIHx8IHt9ICkuZmlyc3RDaGlsZCwgZWxlbSApO1xuXHR9LFxuXHRjaGlsZHJlbjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIHNpYmxpbmdzKCBlbGVtLmZpcnN0Q2hpbGQgKTtcblx0fSxcblx0Y29udGVudHM6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdGlmICggZWxlbS5jb250ZW50RG9jdW1lbnQgIT0gbnVsbCAmJlxuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRSAxMStcblx0XHRcdC8vIDxvYmplY3Q+IGVsZW1lbnRzIHdpdGggbm8gYGRhdGFgIGF0dHJpYnV0ZSBoYXMgYW4gb2JqZWN0XG5cdFx0XHQvLyBgY29udGVudERvY3VtZW50YCB3aXRoIGEgYG51bGxgIHByb3RvdHlwZS5cblx0XHRcdGdldFByb3RvKCBlbGVtLmNvbnRlbnREb2N1bWVudCApICkge1xuXG5cdFx0XHRyZXR1cm4gZWxlbS5jb250ZW50RG9jdW1lbnQ7XG5cdFx0fVxuXG5cdFx0Ly8gU3VwcG9ydDogSUUgOSAtIDExIG9ubHksIGlPUyA3IG9ubHksIEFuZHJvaWQgQnJvd3NlciA8PTQuMyBvbmx5XG5cdFx0Ly8gVHJlYXQgdGhlIHRlbXBsYXRlIGVsZW1lbnQgYXMgYSByZWd1bGFyIG9uZSBpbiBicm93c2VycyB0aGF0XG5cdFx0Ly8gZG9uJ3Qgc3VwcG9ydCBpdC5cblx0XHRpZiAoIG5vZGVOYW1lKCBlbGVtLCBcInRlbXBsYXRlXCIgKSApIHtcblx0XHRcdGVsZW0gPSBlbGVtLmNvbnRlbnQgfHwgZWxlbTtcblx0XHR9XG5cblx0XHRyZXR1cm4galF1ZXJ5Lm1lcmdlKCBbXSwgZWxlbS5jaGlsZE5vZGVzICk7XG5cdH1cbn0sIGZ1bmN0aW9uKCBuYW1lLCBmbiApIHtcblx0alF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggdW50aWwsIHNlbGVjdG9yICkge1xuXHRcdHZhciBtYXRjaGVkID0galF1ZXJ5Lm1hcCggdGhpcywgZm4sIHVudGlsICk7XG5cblx0XHRpZiAoIG5hbWUuc2xpY2UoIC01ICkgIT09IFwiVW50aWxcIiApIHtcblx0XHRcdHNlbGVjdG9yID0gdW50aWw7XG5cdFx0fVxuXG5cdFx0aWYgKCBzZWxlY3RvciAmJiB0eXBlb2Ygc2VsZWN0b3IgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRtYXRjaGVkID0galF1ZXJ5LmZpbHRlciggc2VsZWN0b3IsIG1hdGNoZWQgKTtcblx0XHR9XG5cblx0XHRpZiAoIHRoaXMubGVuZ3RoID4gMSApIHtcblxuXHRcdFx0Ly8gUmVtb3ZlIGR1cGxpY2F0ZXNcblx0XHRcdGlmICggIWd1YXJhbnRlZWRVbmlxdWVbIG5hbWUgXSApIHtcblx0XHRcdFx0alF1ZXJ5LnVuaXF1ZVNvcnQoIG1hdGNoZWQgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUmV2ZXJzZSBvcmRlciBmb3IgcGFyZW50cyogYW5kIHByZXYtZGVyaXZhdGl2ZXNcblx0XHRcdGlmICggcnBhcmVudHNwcmV2LnRlc3QoIG5hbWUgKSApIHtcblx0XHRcdFx0bWF0Y2hlZC5yZXZlcnNlKCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBtYXRjaGVkICk7XG5cdH07XG59ICk7XG52YXIgcm5vdGh0bWx3aGl0ZSA9ICggL1teXFx4MjBcXHRcXHJcXG5cXGZdKy9nICk7XG5cblxuXG4vLyBDb252ZXJ0IFN0cmluZy1mb3JtYXR0ZWQgb3B0aW9ucyBpbnRvIE9iamVjdC1mb3JtYXR0ZWQgb25lc1xuZnVuY3Rpb24gY3JlYXRlT3B0aW9ucyggb3B0aW9ucyApIHtcblx0dmFyIG9iamVjdCA9IHt9O1xuXHRqUXVlcnkuZWFjaCggb3B0aW9ucy5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFtdLCBmdW5jdGlvbiggXywgZmxhZyApIHtcblx0XHRvYmplY3RbIGZsYWcgXSA9IHRydWU7XG5cdH0gKTtcblx0cmV0dXJuIG9iamVjdDtcbn1cblxuLypcbiAqIENyZWF0ZSBhIGNhbGxiYWNrIGxpc3QgdXNpbmcgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzOlxuICpcbiAqXHRvcHRpb25zOiBhbiBvcHRpb25hbCBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBvcHRpb25zIHRoYXQgd2lsbCBjaGFuZ2UgaG93XG4gKlx0XHRcdHRoZSBjYWxsYmFjayBsaXN0IGJlaGF2ZXMgb3IgYSBtb3JlIHRyYWRpdGlvbmFsIG9wdGlvbiBvYmplY3RcbiAqXG4gKiBCeSBkZWZhdWx0IGEgY2FsbGJhY2sgbGlzdCB3aWxsIGFjdCBsaWtlIGFuIGV2ZW50IGNhbGxiYWNrIGxpc3QgYW5kIGNhbiBiZVxuICogXCJmaXJlZFwiIG11bHRpcGxlIHRpbWVzLlxuICpcbiAqIFBvc3NpYmxlIG9wdGlvbnM6XG4gKlxuICpcdG9uY2U6XHRcdFx0d2lsbCBlbnN1cmUgdGhlIGNhbGxiYWNrIGxpc3QgY2FuIG9ubHkgYmUgZmlyZWQgb25jZSAobGlrZSBhIERlZmVycmVkKVxuICpcbiAqXHRtZW1vcnk6XHRcdFx0d2lsbCBrZWVwIHRyYWNrIG9mIHByZXZpb3VzIHZhbHVlcyBhbmQgd2lsbCBjYWxsIGFueSBjYWxsYmFjayBhZGRlZFxuICpcdFx0XHRcdFx0YWZ0ZXIgdGhlIGxpc3QgaGFzIGJlZW4gZmlyZWQgcmlnaHQgYXdheSB3aXRoIHRoZSBsYXRlc3QgXCJtZW1vcml6ZWRcIlxuICpcdFx0XHRcdFx0dmFsdWVzIChsaWtlIGEgRGVmZXJyZWQpXG4gKlxuICpcdHVuaXF1ZTpcdFx0XHR3aWxsIGVuc3VyZSBhIGNhbGxiYWNrIGNhbiBvbmx5IGJlIGFkZGVkIG9uY2UgKG5vIGR1cGxpY2F0ZSBpbiB0aGUgbGlzdClcbiAqXG4gKlx0c3RvcE9uRmFsc2U6XHRpbnRlcnJ1cHQgY2FsbGluZ3Mgd2hlbiBhIGNhbGxiYWNrIHJldHVybnMgZmFsc2VcbiAqXG4gKi9cbmpRdWVyeS5DYWxsYmFja3MgPSBmdW5jdGlvbiggb3B0aW9ucyApIHtcblxuXHQvLyBDb252ZXJ0IG9wdGlvbnMgZnJvbSBTdHJpbmctZm9ybWF0dGVkIHRvIE9iamVjdC1mb3JtYXR0ZWQgaWYgbmVlZGVkXG5cdC8vICh3ZSBjaGVjayBpbiBjYWNoZSBmaXJzdClcblx0b3B0aW9ucyA9IHR5cGVvZiBvcHRpb25zID09PSBcInN0cmluZ1wiID9cblx0XHRjcmVhdGVPcHRpb25zKCBvcHRpb25zICkgOlxuXHRcdGpRdWVyeS5leHRlbmQoIHt9LCBvcHRpb25zICk7XG5cblx0dmFyIC8vIEZsYWcgdG8ga25vdyBpZiBsaXN0IGlzIGN1cnJlbnRseSBmaXJpbmdcblx0XHRmaXJpbmcsXG5cblx0XHQvLyBMYXN0IGZpcmUgdmFsdWUgZm9yIG5vbi1mb3JnZXR0YWJsZSBsaXN0c1xuXHRcdG1lbW9yeSxcblxuXHRcdC8vIEZsYWcgdG8ga25vdyBpZiBsaXN0IHdhcyBhbHJlYWR5IGZpcmVkXG5cdFx0ZmlyZWQsXG5cblx0XHQvLyBGbGFnIHRvIHByZXZlbnQgZmlyaW5nXG5cdFx0bG9ja2VkLFxuXG5cdFx0Ly8gQWN0dWFsIGNhbGxiYWNrIGxpc3Rcblx0XHRsaXN0ID0gW10sXG5cblx0XHQvLyBRdWV1ZSBvZiBleGVjdXRpb24gZGF0YSBmb3IgcmVwZWF0YWJsZSBsaXN0c1xuXHRcdHF1ZXVlID0gW10sXG5cblx0XHQvLyBJbmRleCBvZiBjdXJyZW50bHkgZmlyaW5nIGNhbGxiYWNrIChtb2RpZmllZCBieSBhZGQvcmVtb3ZlIGFzIG5lZWRlZClcblx0XHRmaXJpbmdJbmRleCA9IC0xLFxuXG5cdFx0Ly8gRmlyZSBjYWxsYmFja3Ncblx0XHRmaXJlID0gZnVuY3Rpb24oKSB7XG5cblx0XHRcdC8vIEVuZm9yY2Ugc2luZ2xlLWZpcmluZ1xuXHRcdFx0bG9ja2VkID0gbG9ja2VkIHx8IG9wdGlvbnMub25jZTtcblxuXHRcdFx0Ly8gRXhlY3V0ZSBjYWxsYmFja3MgZm9yIGFsbCBwZW5kaW5nIGV4ZWN1dGlvbnMsXG5cdFx0XHQvLyByZXNwZWN0aW5nIGZpcmluZ0luZGV4IG92ZXJyaWRlcyBhbmQgcnVudGltZSBjaGFuZ2VzXG5cdFx0XHRmaXJlZCA9IGZpcmluZyA9IHRydWU7XG5cdFx0XHRmb3IgKCA7IHF1ZXVlLmxlbmd0aDsgZmlyaW5nSW5kZXggPSAtMSApIHtcblx0XHRcdFx0bWVtb3J5ID0gcXVldWUuc2hpZnQoKTtcblx0XHRcdFx0d2hpbGUgKCArK2ZpcmluZ0luZGV4IDwgbGlzdC5sZW5ndGggKSB7XG5cblx0XHRcdFx0XHQvLyBSdW4gY2FsbGJhY2sgYW5kIGNoZWNrIGZvciBlYXJseSB0ZXJtaW5hdGlvblxuXHRcdFx0XHRcdGlmICggbGlzdFsgZmlyaW5nSW5kZXggXS5hcHBseSggbWVtb3J5WyAwIF0sIG1lbW9yeVsgMSBdICkgPT09IGZhbHNlICYmXG5cdFx0XHRcdFx0XHRvcHRpb25zLnN0b3BPbkZhbHNlICkge1xuXG5cdFx0XHRcdFx0XHQvLyBKdW1wIHRvIGVuZCBhbmQgZm9yZ2V0IHRoZSBkYXRhIHNvIC5hZGQgZG9lc24ndCByZS1maXJlXG5cdFx0XHRcdFx0XHRmaXJpbmdJbmRleCA9IGxpc3QubGVuZ3RoO1xuXHRcdFx0XHRcdFx0bWVtb3J5ID0gZmFsc2U7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIEZvcmdldCB0aGUgZGF0YSBpZiB3ZSdyZSBkb25lIHdpdGggaXRcblx0XHRcdGlmICggIW9wdGlvbnMubWVtb3J5ICkge1xuXHRcdFx0XHRtZW1vcnkgPSBmYWxzZTtcblx0XHRcdH1cblxuXHRcdFx0ZmlyaW5nID0gZmFsc2U7XG5cblx0XHRcdC8vIENsZWFuIHVwIGlmIHdlJ3JlIGRvbmUgZmlyaW5nIGZvciBnb29kXG5cdFx0XHRpZiAoIGxvY2tlZCApIHtcblxuXHRcdFx0XHQvLyBLZWVwIGFuIGVtcHR5IGxpc3QgaWYgd2UgaGF2ZSBkYXRhIGZvciBmdXR1cmUgYWRkIGNhbGxzXG5cdFx0XHRcdGlmICggbWVtb3J5ICkge1xuXHRcdFx0XHRcdGxpc3QgPSBbXTtcblxuXHRcdFx0XHQvLyBPdGhlcndpc2UsIHRoaXMgb2JqZWN0IGlzIHNwZW50XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0bGlzdCA9IFwiXCI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0Ly8gQWN0dWFsIENhbGxiYWNrcyBvYmplY3Rcblx0XHRzZWxmID0ge1xuXG5cdFx0XHQvLyBBZGQgYSBjYWxsYmFjayBvciBhIGNvbGxlY3Rpb24gb2YgY2FsbGJhY2tzIHRvIHRoZSBsaXN0XG5cdFx0XHRhZGQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoIGxpc3QgKSB7XG5cblx0XHRcdFx0XHQvLyBJZiB3ZSBoYXZlIG1lbW9yeSBmcm9tIGEgcGFzdCBydW4sIHdlIHNob3VsZCBmaXJlIGFmdGVyIGFkZGluZ1xuXHRcdFx0XHRcdGlmICggbWVtb3J5ICYmICFmaXJpbmcgKSB7XG5cdFx0XHRcdFx0XHRmaXJpbmdJbmRleCA9IGxpc3QubGVuZ3RoIC0gMTtcblx0XHRcdFx0XHRcdHF1ZXVlLnB1c2goIG1lbW9yeSApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCggZnVuY3Rpb24gYWRkKCBhcmdzICkge1xuXHRcdFx0XHRcdFx0alF1ZXJ5LmVhY2goIGFyZ3MsIGZ1bmN0aW9uKCBfLCBhcmcgKSB7XG5cdFx0XHRcdFx0XHRcdGlmICggaXNGdW5jdGlvbiggYXJnICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKCAhb3B0aW9ucy51bmlxdWUgfHwgIXNlbGYuaGFzKCBhcmcgKSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGxpc3QucHVzaCggYXJnICk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKCBhcmcgJiYgYXJnLmxlbmd0aCAmJiB0b1R5cGUoIGFyZyApICE9PSBcInN0cmluZ1wiICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gSW5zcGVjdCByZWN1cnNpdmVseVxuXHRcdFx0XHRcdFx0XHRcdGFkZCggYXJnICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0gKTtcblx0XHRcdFx0XHR9ICkoIGFyZ3VtZW50cyApO1xuXG5cdFx0XHRcdFx0aWYgKCBtZW1vcnkgJiYgIWZpcmluZyApIHtcblx0XHRcdFx0XHRcdGZpcmUoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBSZW1vdmUgYSBjYWxsYmFjayBmcm9tIHRoZSBsaXN0XG5cdFx0XHRyZW1vdmU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRqUXVlcnkuZWFjaCggYXJndW1lbnRzLCBmdW5jdGlvbiggXywgYXJnICkge1xuXHRcdFx0XHRcdHZhciBpbmRleDtcblx0XHRcdFx0XHR3aGlsZSAoICggaW5kZXggPSBqUXVlcnkuaW5BcnJheSggYXJnLCBsaXN0LCBpbmRleCApICkgPiAtMSApIHtcblx0XHRcdFx0XHRcdGxpc3Quc3BsaWNlKCBpbmRleCwgMSApO1xuXG5cdFx0XHRcdFx0XHQvLyBIYW5kbGUgZmlyaW5nIGluZGV4ZXNcblx0XHRcdFx0XHRcdGlmICggaW5kZXggPD0gZmlyaW5nSW5kZXggKSB7XG5cdFx0XHRcdFx0XHRcdGZpcmluZ0luZGV4LS07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9ICk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gQ2hlY2sgaWYgYSBnaXZlbiBjYWxsYmFjayBpcyBpbiB0aGUgbGlzdC5cblx0XHRcdC8vIElmIG5vIGFyZ3VtZW50IGlzIGdpdmVuLCByZXR1cm4gd2hldGhlciBvciBub3QgbGlzdCBoYXMgY2FsbGJhY2tzIGF0dGFjaGVkLlxuXHRcdFx0aGFzOiBmdW5jdGlvbiggZm4gKSB7XG5cdFx0XHRcdHJldHVybiBmbiA/XG5cdFx0XHRcdFx0alF1ZXJ5LmluQXJyYXkoIGZuLCBsaXN0ICkgPiAtMSA6XG5cdFx0XHRcdFx0bGlzdC5sZW5ndGggPiAwO1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gUmVtb3ZlIGFsbCBjYWxsYmFja3MgZnJvbSB0aGUgbGlzdFxuXHRcdFx0ZW1wdHk6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoIGxpc3QgKSB7XG5cdFx0XHRcdFx0bGlzdCA9IFtdO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gRGlzYWJsZSAuZmlyZSBhbmQgLmFkZFxuXHRcdFx0Ly8gQWJvcnQgYW55IGN1cnJlbnQvcGVuZGluZyBleGVjdXRpb25zXG5cdFx0XHQvLyBDbGVhciBhbGwgY2FsbGJhY2tzIGFuZCB2YWx1ZXNcblx0XHRcdGRpc2FibGU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRsb2NrZWQgPSBxdWV1ZSA9IFtdO1xuXHRcdFx0XHRsaXN0ID0gbWVtb3J5ID0gXCJcIjtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXHRcdFx0ZGlzYWJsZWQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gIWxpc3Q7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBEaXNhYmxlIC5maXJlXG5cdFx0XHQvLyBBbHNvIGRpc2FibGUgLmFkZCB1bmxlc3Mgd2UgaGF2ZSBtZW1vcnkgKHNpbmNlIGl0IHdvdWxkIGhhdmUgbm8gZWZmZWN0KVxuXHRcdFx0Ly8gQWJvcnQgYW55IHBlbmRpbmcgZXhlY3V0aW9uc1xuXHRcdFx0bG9jazogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGxvY2tlZCA9IHF1ZXVlID0gW107XG5cdFx0XHRcdGlmICggIW1lbW9yeSAmJiAhZmlyaW5nICkge1xuXHRcdFx0XHRcdGxpc3QgPSBtZW1vcnkgPSBcIlwiO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblx0XHRcdGxvY2tlZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiAhIWxvY2tlZDtcblx0XHRcdH0sXG5cblx0XHRcdC8vIENhbGwgYWxsIGNhbGxiYWNrcyB3aXRoIHRoZSBnaXZlbiBjb250ZXh0IGFuZCBhcmd1bWVudHNcblx0XHRcdGZpcmVXaXRoOiBmdW5jdGlvbiggY29udGV4dCwgYXJncyApIHtcblx0XHRcdFx0aWYgKCAhbG9ja2VkICkge1xuXHRcdFx0XHRcdGFyZ3MgPSBhcmdzIHx8IFtdO1xuXHRcdFx0XHRcdGFyZ3MgPSBbIGNvbnRleHQsIGFyZ3Muc2xpY2UgPyBhcmdzLnNsaWNlKCkgOiBhcmdzIF07XG5cdFx0XHRcdFx0cXVldWUucHVzaCggYXJncyApO1xuXHRcdFx0XHRcdGlmICggIWZpcmluZyApIHtcblx0XHRcdFx0XHRcdGZpcmUoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBDYWxsIGFsbCB0aGUgY2FsbGJhY2tzIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50c1xuXHRcdFx0ZmlyZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHNlbGYuZmlyZVdpdGgoIHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cblx0XHRcdC8vIFRvIGtub3cgaWYgdGhlIGNhbGxiYWNrcyBoYXZlIGFscmVhZHkgYmVlbiBjYWxsZWQgYXQgbGVhc3Qgb25jZVxuXHRcdFx0ZmlyZWQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gISFmaXJlZDtcblx0XHRcdH1cblx0XHR9O1xuXG5cdHJldHVybiBzZWxmO1xufTtcblxuXG5mdW5jdGlvbiBJZGVudGl0eSggdiApIHtcblx0cmV0dXJuIHY7XG59XG5mdW5jdGlvbiBUaHJvd2VyKCBleCApIHtcblx0dGhyb3cgZXg7XG59XG5cbmZ1bmN0aW9uIGFkb3B0VmFsdWUoIHZhbHVlLCByZXNvbHZlLCByZWplY3QsIG5vVmFsdWUgKSB7XG5cdHZhciBtZXRob2Q7XG5cblx0dHJ5IHtcblxuXHRcdC8vIENoZWNrIGZvciBwcm9taXNlIGFzcGVjdCBmaXJzdCB0byBwcml2aWxlZ2Ugc3luY2hyb25vdXMgYmVoYXZpb3Jcblx0XHRpZiAoIHZhbHVlICYmIGlzRnVuY3Rpb24oICggbWV0aG9kID0gdmFsdWUucHJvbWlzZSApICkgKSB7XG5cdFx0XHRtZXRob2QuY2FsbCggdmFsdWUgKS5kb25lKCByZXNvbHZlICkuZmFpbCggcmVqZWN0ICk7XG5cblx0XHQvLyBPdGhlciB0aGVuYWJsZXNcblx0XHR9IGVsc2UgaWYgKCB2YWx1ZSAmJiBpc0Z1bmN0aW9uKCAoIG1ldGhvZCA9IHZhbHVlLnRoZW4gKSApICkge1xuXHRcdFx0bWV0aG9kLmNhbGwoIHZhbHVlLCByZXNvbHZlLCByZWplY3QgKTtcblxuXHRcdC8vIE90aGVyIG5vbi10aGVuYWJsZXNcblx0XHR9IGVsc2Uge1xuXG5cdFx0XHQvLyBDb250cm9sIGByZXNvbHZlYCBhcmd1bWVudHMgYnkgbGV0dGluZyBBcnJheSNzbGljZSBjYXN0IGJvb2xlYW4gYG5vVmFsdWVgIHRvIGludGVnZXI6XG5cdFx0XHQvLyAqIGZhbHNlOiBbIHZhbHVlIF0uc2xpY2UoIDAgKSA9PiByZXNvbHZlKCB2YWx1ZSApXG5cdFx0XHQvLyAqIHRydWU6IFsgdmFsdWUgXS5zbGljZSggMSApID0+IHJlc29sdmUoKVxuXHRcdFx0cmVzb2x2ZS5hcHBseSggdW5kZWZpbmVkLCBbIHZhbHVlIF0uc2xpY2UoIG5vVmFsdWUgKSApO1xuXHRcdH1cblxuXHQvLyBGb3IgUHJvbWlzZXMvQSssIGNvbnZlcnQgZXhjZXB0aW9ucyBpbnRvIHJlamVjdGlvbnNcblx0Ly8gU2luY2UgalF1ZXJ5LndoZW4gZG9lc24ndCB1bndyYXAgdGhlbmFibGVzLCB3ZSBjYW4gc2tpcCB0aGUgZXh0cmEgY2hlY2tzIGFwcGVhcmluZyBpblxuXHQvLyBEZWZlcnJlZCN0aGVuIHRvIGNvbmRpdGlvbmFsbHkgc3VwcHJlc3MgcmVqZWN0aW9uLlxuXHR9IGNhdGNoICggdmFsdWUgKSB7XG5cblx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDQuMCBvbmx5XG5cdFx0Ly8gU3RyaWN0IG1vZGUgZnVuY3Rpb25zIGludm9rZWQgd2l0aG91dCAuY2FsbC8uYXBwbHkgZ2V0IGdsb2JhbC1vYmplY3QgY29udGV4dFxuXHRcdHJlamVjdC5hcHBseSggdW5kZWZpbmVkLCBbIHZhbHVlIF0gKTtcblx0fVxufVxuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cblx0RGVmZXJyZWQ6IGZ1bmN0aW9uKCBmdW5jICkge1xuXHRcdHZhciB0dXBsZXMgPSBbXG5cblx0XHRcdFx0Ly8gYWN0aW9uLCBhZGQgbGlzdGVuZXIsIGNhbGxiYWNrcyxcblx0XHRcdFx0Ly8gLi4uIC50aGVuIGhhbmRsZXJzLCBhcmd1bWVudCBpbmRleCwgW2ZpbmFsIHN0YXRlXVxuXHRcdFx0XHRbIFwibm90aWZ5XCIsIFwicHJvZ3Jlc3NcIiwgalF1ZXJ5LkNhbGxiYWNrcyggXCJtZW1vcnlcIiApLFxuXHRcdFx0XHRcdGpRdWVyeS5DYWxsYmFja3MoIFwibWVtb3J5XCIgKSwgMiBdLFxuXHRcdFx0XHRbIFwicmVzb2x2ZVwiLCBcImRvbmVcIiwgalF1ZXJ5LkNhbGxiYWNrcyggXCJvbmNlIG1lbW9yeVwiICksXG5cdFx0XHRcdFx0alF1ZXJ5LkNhbGxiYWNrcyggXCJvbmNlIG1lbW9yeVwiICksIDAsIFwicmVzb2x2ZWRcIiBdLFxuXHRcdFx0XHRbIFwicmVqZWN0XCIsIFwiZmFpbFwiLCBqUXVlcnkuQ2FsbGJhY2tzKCBcIm9uY2UgbWVtb3J5XCIgKSxcblx0XHRcdFx0XHRqUXVlcnkuQ2FsbGJhY2tzKCBcIm9uY2UgbWVtb3J5XCIgKSwgMSwgXCJyZWplY3RlZFwiIF1cblx0XHRcdF0sXG5cdFx0XHRzdGF0ZSA9IFwicGVuZGluZ1wiLFxuXHRcdFx0cHJvbWlzZSA9IHtcblx0XHRcdFx0c3RhdGU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiBzdGF0ZTtcblx0XHRcdFx0fSxcblx0XHRcdFx0YWx3YXlzOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRkZWZlcnJlZC5kb25lKCBhcmd1bWVudHMgKS5mYWlsKCBhcmd1bWVudHMgKTtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fSxcblx0XHRcdFx0XCJjYXRjaFwiOiBmdW5jdGlvbiggZm4gKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHByb21pc2UudGhlbiggbnVsbCwgZm4gKTtcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBLZWVwIHBpcGUgZm9yIGJhY2stY29tcGF0XG5cdFx0XHRcdHBpcGU6IGZ1bmN0aW9uKCAvKiBmbkRvbmUsIGZuRmFpbCwgZm5Qcm9ncmVzcyAqLyApIHtcblx0XHRcdFx0XHR2YXIgZm5zID0gYXJndW1lbnRzO1xuXG5cdFx0XHRcdFx0cmV0dXJuIGpRdWVyeS5EZWZlcnJlZCggZnVuY3Rpb24oIG5ld0RlZmVyICkge1xuXHRcdFx0XHRcdFx0alF1ZXJ5LmVhY2goIHR1cGxlcywgZnVuY3Rpb24oIF9pLCB0dXBsZSApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBNYXAgdHVwbGVzIChwcm9ncmVzcywgZG9uZSwgZmFpbCkgdG8gYXJndW1lbnRzIChkb25lLCBmYWlsLCBwcm9ncmVzcylcblx0XHRcdFx0XHRcdFx0dmFyIGZuID0gaXNGdW5jdGlvbiggZm5zWyB0dXBsZVsgNCBdIF0gKSAmJiBmbnNbIHR1cGxlWyA0IF0gXTtcblxuXHRcdFx0XHRcdFx0XHQvLyBkZWZlcnJlZC5wcm9ncmVzcyhmdW5jdGlvbigpIHsgYmluZCB0byBuZXdEZWZlciBvciBuZXdEZWZlci5ub3RpZnkgfSlcblx0XHRcdFx0XHRcdFx0Ly8gZGVmZXJyZWQuZG9uZShmdW5jdGlvbigpIHsgYmluZCB0byBuZXdEZWZlciBvciBuZXdEZWZlci5yZXNvbHZlIH0pXG5cdFx0XHRcdFx0XHRcdC8vIGRlZmVycmVkLmZhaWwoZnVuY3Rpb24oKSB7IGJpbmQgdG8gbmV3RGVmZXIgb3IgbmV3RGVmZXIucmVqZWN0IH0pXG5cdFx0XHRcdFx0XHRcdGRlZmVycmVkWyB0dXBsZVsgMSBdIF0oIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdHZhciByZXR1cm5lZCA9IGZuICYmIGZuLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIHJldHVybmVkICYmIGlzRnVuY3Rpb24oIHJldHVybmVkLnByb21pc2UgKSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybmVkLnByb21pc2UoKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQucHJvZ3Jlc3MoIG5ld0RlZmVyLm5vdGlmeSApXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC5kb25lKCBuZXdEZWZlci5yZXNvbHZlIClcblx0XHRcdFx0XHRcdFx0XHRcdFx0LmZhaWwoIG5ld0RlZmVyLnJlamVjdCApO1xuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRuZXdEZWZlclsgdHVwbGVbIDAgXSArIFwiV2l0aFwiIF0oXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGZuID8gWyByZXR1cm5lZCBdIDogYXJndW1lbnRzXG5cdFx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSApO1xuXHRcdFx0XHRcdFx0fSApO1xuXHRcdFx0XHRcdFx0Zm5zID0gbnVsbDtcblx0XHRcdFx0XHR9ICkucHJvbWlzZSgpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHR0aGVuOiBmdW5jdGlvbiggb25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQsIG9uUHJvZ3Jlc3MgKSB7XG5cdFx0XHRcdFx0dmFyIG1heERlcHRoID0gMDtcblx0XHRcdFx0XHRmdW5jdGlvbiByZXNvbHZlKCBkZXB0aCwgZGVmZXJyZWQsIGhhbmRsZXIsIHNwZWNpYWwgKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdHZhciB0aGF0ID0gdGhpcyxcblx0XHRcdFx0XHRcdFx0XHRhcmdzID0gYXJndW1lbnRzLFxuXHRcdFx0XHRcdFx0XHRcdG1pZ2h0VGhyb3cgPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHZhciByZXR1cm5lZCwgdGhlbjtcblxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogUHJvbWlzZXMvQSsgc2VjdGlvbiAyLjMuMy4zLjNcblx0XHRcdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTU5XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBJZ25vcmUgZG91YmxlLXJlc29sdXRpb24gYXR0ZW1wdHNcblx0XHRcdFx0XHRcdFx0XHRcdGlmICggZGVwdGggPCBtYXhEZXB0aCApIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm5lZCA9IGhhbmRsZXIuYXBwbHkoIHRoYXQsIGFyZ3MgKTtcblxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogUHJvbWlzZXMvQSsgc2VjdGlvbiAyLjMuMVxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gaHR0cHM6Ly9wcm9taXNlc2FwbHVzLmNvbS8jcG9pbnQtNDhcblx0XHRcdFx0XHRcdFx0XHRcdGlmICggcmV0dXJuZWQgPT09IGRlZmVycmVkLnByb21pc2UoKSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvciggXCJUaGVuYWJsZSBzZWxmLXJlc29sdXRpb25cIiApO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBQcm9taXNlcy9BKyBzZWN0aW9ucyAyLjMuMy4xLCAzLjVcblx0XHRcdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTU0XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBodHRwczovL3Byb21pc2VzYXBsdXMuY29tLyNwb2ludC03NVxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gUmV0cmlldmUgYHRoZW5gIG9ubHkgb25jZVxuXHRcdFx0XHRcdFx0XHRcdFx0dGhlbiA9IHJldHVybmVkICYmXG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogUHJvbWlzZXMvQSsgc2VjdGlvbiAyLjMuNFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBodHRwczovL3Byb21pc2VzYXBsdXMuY29tLyNwb2ludC02NFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBPbmx5IGNoZWNrIG9iamVjdHMgYW5kIGZ1bmN0aW9ucyBmb3IgdGhlbmFiaWxpdHlcblx0XHRcdFx0XHRcdFx0XHRcdFx0KCB0eXBlb2YgcmV0dXJuZWQgPT09IFwib2JqZWN0XCIgfHxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlb2YgcmV0dXJuZWQgPT09IFwiZnVuY3Rpb25cIiApICYmXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybmVkLnRoZW47XG5cblx0XHRcdFx0XHRcdFx0XHRcdC8vIEhhbmRsZSBhIHJldHVybmVkIHRoZW5hYmxlXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIGlzRnVuY3Rpb24oIHRoZW4gKSApIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBTcGVjaWFsIHByb2Nlc3NvcnMgKG5vdGlmeSkganVzdCB3YWl0IGZvciByZXNvbHV0aW9uXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggc3BlY2lhbCApIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGVuLmNhbGwoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm5lZCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoIG1heERlcHRoLCBkZWZlcnJlZCwgSWRlbnRpdHksIHNwZWNpYWwgKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoIG1heERlcHRoLCBkZWZlcnJlZCwgVGhyb3dlciwgc3BlY2lhbCApXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBOb3JtYWwgcHJvY2Vzc29ycyAocmVzb2x2ZSkgYWxzbyBob29rIGludG8gcHJvZ3Jlc3Ncblx0XHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIC4uLmFuZCBkaXNyZWdhcmQgb2xkZXIgcmVzb2x1dGlvbiB2YWx1ZXNcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtYXhEZXB0aCsrO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhlbi5jYWxsKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuZWQsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKCBtYXhEZXB0aCwgZGVmZXJyZWQsIElkZW50aXR5LCBzcGVjaWFsICksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKCBtYXhEZXB0aCwgZGVmZXJyZWQsIFRocm93ZXIsIHNwZWNpYWwgKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoIG1heERlcHRoLCBkZWZlcnJlZCwgSWRlbnRpdHksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRlZmVycmVkLm5vdGlmeVdpdGggKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gSGFuZGxlIGFsbCBvdGhlciByZXR1cm5lZCB2YWx1ZXNcblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gT25seSBzdWJzdGl0dXRlIGhhbmRsZXJzIHBhc3Mgb24gY29udGV4dFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBhbmQgbXVsdGlwbGUgdmFsdWVzIChub24tc3BlYyBiZWhhdmlvcilcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBoYW5kbGVyICE9PSBJZGVudGl0eSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0ID0gdW5kZWZpbmVkO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGFyZ3MgPSBbIHJldHVybmVkIF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBQcm9jZXNzIHRoZSB2YWx1ZShzKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBEZWZhdWx0IHByb2Nlc3MgaXMgcmVzb2x2ZVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQoIHNwZWNpYWwgfHwgZGVmZXJyZWQucmVzb2x2ZVdpdGggKSggdGhhdCwgYXJncyApO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH0sXG5cblx0XHRcdFx0XHRcdFx0XHQvLyBPbmx5IG5vcm1hbCBwcm9jZXNzb3JzIChyZXNvbHZlKSBjYXRjaCBhbmQgcmVqZWN0IGV4Y2VwdGlvbnNcblx0XHRcdFx0XHRcdFx0XHRwcm9jZXNzID0gc3BlY2lhbCA/XG5cdFx0XHRcdFx0XHRcdFx0XHRtaWdodFRocm93IDpcblx0XHRcdFx0XHRcdFx0XHRcdGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1pZ2h0VGhyb3coKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIGpRdWVyeS5EZWZlcnJlZC5leGNlcHRpb25Ib29rICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0alF1ZXJ5LkRlZmVycmVkLmV4Y2VwdGlvbkhvb2soIGUsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHByb2Nlc3Muc3RhY2tUcmFjZSApO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFByb21pc2VzL0ErIHNlY3Rpb24gMi4zLjMuMy40LjFcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBodHRwczovL3Byb21pc2VzYXBsdXMuY29tLyNwb2ludC02MVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIElnbm9yZSBwb3N0LXJlc29sdXRpb24gZXhjZXB0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggZGVwdGggKyAxID49IG1heERlcHRoICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBPbmx5IHN1YnN0aXR1dGUgaGFuZGxlcnMgcGFzcyBvbiBjb250ZXh0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBhbmQgbXVsdGlwbGUgdmFsdWVzIChub24tc3BlYyBiZWhhdmlvcilcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggaGFuZGxlciAhPT0gVGhyb3dlciApIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdCA9IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YXJncyA9IFsgZSBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkZWZlcnJlZC5yZWplY3RXaXRoKCB0aGF0LCBhcmdzICk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9O1xuXG5cdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFByb21pc2VzL0ErIHNlY3Rpb24gMi4zLjMuMy4xXG5cdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTU3XG5cdFx0XHRcdFx0XHRcdC8vIFJlLXJlc29sdmUgcHJvbWlzZXMgaW1tZWRpYXRlbHkgdG8gZG9kZ2UgZmFsc2UgcmVqZWN0aW9uIGZyb21cblx0XHRcdFx0XHRcdFx0Ly8gc3Vic2VxdWVudCBlcnJvcnNcblx0XHRcdFx0XHRcdFx0aWYgKCBkZXB0aCApIHtcblx0XHRcdFx0XHRcdFx0XHRwcm9jZXNzKCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBDYWxsIGFuIG9wdGlvbmFsIGhvb2sgdG8gcmVjb3JkIHRoZSBzdGFjaywgaW4gY2FzZSBvZiBleGNlcHRpb25cblx0XHRcdFx0XHRcdFx0XHQvLyBzaW5jZSBpdCdzIG90aGVyd2lzZSBsb3N0IHdoZW4gZXhlY3V0aW9uIGdvZXMgYXN5bmNcblx0XHRcdFx0XHRcdFx0XHRpZiAoIGpRdWVyeS5EZWZlcnJlZC5nZXRTdGFja0hvb2sgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRwcm9jZXNzLnN0YWNrVHJhY2UgPSBqUXVlcnkuRGVmZXJyZWQuZ2V0U3RhY2tIb29rKCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdHdpbmRvdy5zZXRUaW1lb3V0KCBwcm9jZXNzICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0cmV0dXJuIGpRdWVyeS5EZWZlcnJlZCggZnVuY3Rpb24oIG5ld0RlZmVyICkge1xuXG5cdFx0XHRcdFx0XHQvLyBwcm9ncmVzc19oYW5kbGVycy5hZGQoIC4uLiApXG5cdFx0XHRcdFx0XHR0dXBsZXNbIDAgXVsgMyBdLmFkZChcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShcblx0XHRcdFx0XHRcdFx0XHQwLFxuXHRcdFx0XHRcdFx0XHRcdG5ld0RlZmVyLFxuXHRcdFx0XHRcdFx0XHRcdGlzRnVuY3Rpb24oIG9uUHJvZ3Jlc3MgKSA/XG5cdFx0XHRcdFx0XHRcdFx0XHRvblByb2dyZXNzIDpcblx0XHRcdFx0XHRcdFx0XHRcdElkZW50aXR5LFxuXHRcdFx0XHRcdFx0XHRcdG5ld0RlZmVyLm5vdGlmeVdpdGhcblx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0Ly8gZnVsZmlsbGVkX2hhbmRsZXJzLmFkZCggLi4uIClcblx0XHRcdFx0XHRcdHR1cGxlc1sgMSBdWyAzIF0uYWRkKFxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKFxuXHRcdFx0XHRcdFx0XHRcdDAsXG5cdFx0XHRcdFx0XHRcdFx0bmV3RGVmZXIsXG5cdFx0XHRcdFx0XHRcdFx0aXNGdW5jdGlvbiggb25GdWxmaWxsZWQgKSA/XG5cdFx0XHRcdFx0XHRcdFx0XHRvbkZ1bGZpbGxlZCA6XG5cdFx0XHRcdFx0XHRcdFx0XHRJZGVudGl0eVxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHQvLyByZWplY3RlZF9oYW5kbGVycy5hZGQoIC4uLiApXG5cdFx0XHRcdFx0XHR0dXBsZXNbIDIgXVsgMyBdLmFkZChcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShcblx0XHRcdFx0XHRcdFx0XHQwLFxuXHRcdFx0XHRcdFx0XHRcdG5ld0RlZmVyLFxuXHRcdFx0XHRcdFx0XHRcdGlzRnVuY3Rpb24oIG9uUmVqZWN0ZWQgKSA/XG5cdFx0XHRcdFx0XHRcdFx0XHRvblJlamVjdGVkIDpcblx0XHRcdFx0XHRcdFx0XHRcdFRocm93ZXJcblx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9ICkucHJvbWlzZSgpO1xuXHRcdFx0XHR9LFxuXG5cdFx0XHRcdC8vIEdldCBhIHByb21pc2UgZm9yIHRoaXMgZGVmZXJyZWRcblx0XHRcdFx0Ly8gSWYgb2JqIGlzIHByb3ZpZGVkLCB0aGUgcHJvbWlzZSBhc3BlY3QgaXMgYWRkZWQgdG8gdGhlIG9iamVjdFxuXHRcdFx0XHRwcm9taXNlOiBmdW5jdGlvbiggb2JqICkge1xuXHRcdFx0XHRcdHJldHVybiBvYmogIT0gbnVsbCA/IGpRdWVyeS5leHRlbmQoIG9iaiwgcHJvbWlzZSApIDogcHJvbWlzZTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdGRlZmVycmVkID0ge307XG5cblx0XHQvLyBBZGQgbGlzdC1zcGVjaWZpYyBtZXRob2RzXG5cdFx0alF1ZXJ5LmVhY2goIHR1cGxlcywgZnVuY3Rpb24oIGksIHR1cGxlICkge1xuXHRcdFx0dmFyIGxpc3QgPSB0dXBsZVsgMiBdLFxuXHRcdFx0XHRzdGF0ZVN0cmluZyA9IHR1cGxlWyA1IF07XG5cblx0XHRcdC8vIHByb21pc2UucHJvZ3Jlc3MgPSBsaXN0LmFkZFxuXHRcdFx0Ly8gcHJvbWlzZS5kb25lID0gbGlzdC5hZGRcblx0XHRcdC8vIHByb21pc2UuZmFpbCA9IGxpc3QuYWRkXG5cdFx0XHRwcm9taXNlWyB0dXBsZVsgMSBdIF0gPSBsaXN0LmFkZDtcblxuXHRcdFx0Ly8gSGFuZGxlIHN0YXRlXG5cdFx0XHRpZiAoIHN0YXRlU3RyaW5nICkge1xuXHRcdFx0XHRsaXN0LmFkZChcblx0XHRcdFx0XHRmdW5jdGlvbigpIHtcblxuXHRcdFx0XHRcdFx0Ly8gc3RhdGUgPSBcInJlc29sdmVkXCIgKGkuZS4sIGZ1bGZpbGxlZClcblx0XHRcdFx0XHRcdC8vIHN0YXRlID0gXCJyZWplY3RlZFwiXG5cdFx0XHRcdFx0XHRzdGF0ZSA9IHN0YXRlU3RyaW5nO1xuXHRcdFx0XHRcdH0sXG5cblx0XHRcdFx0XHQvLyByZWplY3RlZF9jYWxsYmFja3MuZGlzYWJsZVxuXHRcdFx0XHRcdC8vIGZ1bGZpbGxlZF9jYWxsYmFja3MuZGlzYWJsZVxuXHRcdFx0XHRcdHR1cGxlc1sgMyAtIGkgXVsgMiBdLmRpc2FibGUsXG5cblx0XHRcdFx0XHQvLyByZWplY3RlZF9oYW5kbGVycy5kaXNhYmxlXG5cdFx0XHRcdFx0Ly8gZnVsZmlsbGVkX2hhbmRsZXJzLmRpc2FibGVcblx0XHRcdFx0XHR0dXBsZXNbIDMgLSBpIF1bIDMgXS5kaXNhYmxlLFxuXG5cdFx0XHRcdFx0Ly8gcHJvZ3Jlc3NfY2FsbGJhY2tzLmxvY2tcblx0XHRcdFx0XHR0dXBsZXNbIDAgXVsgMiBdLmxvY2ssXG5cblx0XHRcdFx0XHQvLyBwcm9ncmVzc19oYW5kbGVycy5sb2NrXG5cdFx0XHRcdFx0dHVwbGVzWyAwIF1bIDMgXS5sb2NrXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIHByb2dyZXNzX2hhbmRsZXJzLmZpcmVcblx0XHRcdC8vIGZ1bGZpbGxlZF9oYW5kbGVycy5maXJlXG5cdFx0XHQvLyByZWplY3RlZF9oYW5kbGVycy5maXJlXG5cdFx0XHRsaXN0LmFkZCggdHVwbGVbIDMgXS5maXJlICk7XG5cblx0XHRcdC8vIGRlZmVycmVkLm5vdGlmeSA9IGZ1bmN0aW9uKCkgeyBkZWZlcnJlZC5ub3RpZnlXaXRoKC4uLikgfVxuXHRcdFx0Ly8gZGVmZXJyZWQucmVzb2x2ZSA9IGZ1bmN0aW9uKCkgeyBkZWZlcnJlZC5yZXNvbHZlV2l0aCguLi4pIH1cblx0XHRcdC8vIGRlZmVycmVkLnJlamVjdCA9IGZ1bmN0aW9uKCkgeyBkZWZlcnJlZC5yZWplY3RXaXRoKC4uLikgfVxuXHRcdFx0ZGVmZXJyZWRbIHR1cGxlWyAwIF0gXSA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRkZWZlcnJlZFsgdHVwbGVbIDAgXSArIFwiV2l0aFwiIF0oIHRoaXMgPT09IGRlZmVycmVkID8gdW5kZWZpbmVkIDogdGhpcywgYXJndW1lbnRzICk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fTtcblxuXHRcdFx0Ly8gZGVmZXJyZWQubm90aWZ5V2l0aCA9IGxpc3QuZmlyZVdpdGhcblx0XHRcdC8vIGRlZmVycmVkLnJlc29sdmVXaXRoID0gbGlzdC5maXJlV2l0aFxuXHRcdFx0Ly8gZGVmZXJyZWQucmVqZWN0V2l0aCA9IGxpc3QuZmlyZVdpdGhcblx0XHRcdGRlZmVycmVkWyB0dXBsZVsgMCBdICsgXCJXaXRoXCIgXSA9IGxpc3QuZmlyZVdpdGg7XG5cdFx0fSApO1xuXG5cdFx0Ly8gTWFrZSB0aGUgZGVmZXJyZWQgYSBwcm9taXNlXG5cdFx0cHJvbWlzZS5wcm9taXNlKCBkZWZlcnJlZCApO1xuXG5cdFx0Ly8gQ2FsbCBnaXZlbiBmdW5jIGlmIGFueVxuXHRcdGlmICggZnVuYyApIHtcblx0XHRcdGZ1bmMuY2FsbCggZGVmZXJyZWQsIGRlZmVycmVkICk7XG5cdFx0fVxuXG5cdFx0Ly8gQWxsIGRvbmUhXG5cdFx0cmV0dXJuIGRlZmVycmVkO1xuXHR9LFxuXG5cdC8vIERlZmVycmVkIGhlbHBlclxuXHR3aGVuOiBmdW5jdGlvbiggc2luZ2xlVmFsdWUgKSB7XG5cdFx0dmFyXG5cblx0XHRcdC8vIGNvdW50IG9mIHVuY29tcGxldGVkIHN1Ym9yZGluYXRlc1xuXHRcdFx0cmVtYWluaW5nID0gYXJndW1lbnRzLmxlbmd0aCxcblxuXHRcdFx0Ly8gY291bnQgb2YgdW5wcm9jZXNzZWQgYXJndW1lbnRzXG5cdFx0XHRpID0gcmVtYWluaW5nLFxuXG5cdFx0XHQvLyBzdWJvcmRpbmF0ZSBmdWxmaWxsbWVudCBkYXRhXG5cdFx0XHRyZXNvbHZlQ29udGV4dHMgPSBBcnJheSggaSApLFxuXHRcdFx0cmVzb2x2ZVZhbHVlcyA9IHNsaWNlLmNhbGwoIGFyZ3VtZW50cyApLFxuXG5cdFx0XHQvLyB0aGUgcHJpbWFyeSBEZWZlcnJlZFxuXHRcdFx0cHJpbWFyeSA9IGpRdWVyeS5EZWZlcnJlZCgpLFxuXG5cdFx0XHQvLyBzdWJvcmRpbmF0ZSBjYWxsYmFjayBmYWN0b3J5XG5cdFx0XHR1cGRhdGVGdW5jID0gZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRcdHJldHVybiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHRcdFx0cmVzb2x2ZUNvbnRleHRzWyBpIF0gPSB0aGlzO1xuXHRcdFx0XHRcdHJlc29sdmVWYWx1ZXNbIGkgXSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gc2xpY2UuY2FsbCggYXJndW1lbnRzICkgOiB2YWx1ZTtcblx0XHRcdFx0XHRpZiAoICEoIC0tcmVtYWluaW5nICkgKSB7XG5cdFx0XHRcdFx0XHRwcmltYXJ5LnJlc29sdmVXaXRoKCByZXNvbHZlQ29udGV4dHMsIHJlc29sdmVWYWx1ZXMgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cdFx0XHR9O1xuXG5cdFx0Ly8gU2luZ2xlLSBhbmQgZW1wdHkgYXJndW1lbnRzIGFyZSBhZG9wdGVkIGxpa2UgUHJvbWlzZS5yZXNvbHZlXG5cdFx0aWYgKCByZW1haW5pbmcgPD0gMSApIHtcblx0XHRcdGFkb3B0VmFsdWUoIHNpbmdsZVZhbHVlLCBwcmltYXJ5LmRvbmUoIHVwZGF0ZUZ1bmMoIGkgKSApLnJlc29sdmUsIHByaW1hcnkucmVqZWN0LFxuXHRcdFx0XHQhcmVtYWluaW5nICk7XG5cblx0XHRcdC8vIFVzZSAudGhlbigpIHRvIHVud3JhcCBzZWNvbmRhcnkgdGhlbmFibGVzIChjZi4gZ2gtMzAwMClcblx0XHRcdGlmICggcHJpbWFyeS5zdGF0ZSgpID09PSBcInBlbmRpbmdcIiB8fFxuXHRcdFx0XHRpc0Z1bmN0aW9uKCByZXNvbHZlVmFsdWVzWyBpIF0gJiYgcmVzb2x2ZVZhbHVlc1sgaSBdLnRoZW4gKSApIHtcblxuXHRcdFx0XHRyZXR1cm4gcHJpbWFyeS50aGVuKCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gTXVsdGlwbGUgYXJndW1lbnRzIGFyZSBhZ2dyZWdhdGVkIGxpa2UgUHJvbWlzZS5hbGwgYXJyYXkgZWxlbWVudHNcblx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdGFkb3B0VmFsdWUoIHJlc29sdmVWYWx1ZXNbIGkgXSwgdXBkYXRlRnVuYyggaSApLCBwcmltYXJ5LnJlamVjdCApO1xuXHRcdH1cblxuXHRcdHJldHVybiBwcmltYXJ5LnByb21pc2UoKTtcblx0fVxufSApO1xuXG5cbi8vIFRoZXNlIHVzdWFsbHkgaW5kaWNhdGUgYSBwcm9ncmFtbWVyIG1pc3Rha2UgZHVyaW5nIGRldmVsb3BtZW50LFxuLy8gd2FybiBhYm91dCB0aGVtIEFTQVAgcmF0aGVyIHRoYW4gc3dhbGxvd2luZyB0aGVtIGJ5IGRlZmF1bHQuXG52YXIgcmVycm9yTmFtZXMgPSAvXihFdmFsfEludGVybmFsfFJhbmdlfFJlZmVyZW5jZXxTeW50YXh8VHlwZXxVUkkpRXJyb3IkLztcblxualF1ZXJ5LkRlZmVycmVkLmV4Y2VwdGlvbkhvb2sgPSBmdW5jdGlvbiggZXJyb3IsIHN0YWNrICkge1xuXG5cdC8vIFN1cHBvcnQ6IElFIDggLSA5IG9ubHlcblx0Ly8gQ29uc29sZSBleGlzdHMgd2hlbiBkZXYgdG9vbHMgYXJlIG9wZW4sIHdoaWNoIGNhbiBoYXBwZW4gYXQgYW55IHRpbWVcblx0aWYgKCB3aW5kb3cuY29uc29sZSAmJiB3aW5kb3cuY29uc29sZS53YXJuICYmIGVycm9yICYmIHJlcnJvck5hbWVzLnRlc3QoIGVycm9yLm5hbWUgKSApIHtcblx0XHR3aW5kb3cuY29uc29sZS53YXJuKCBcImpRdWVyeS5EZWZlcnJlZCBleGNlcHRpb246IFwiICsgZXJyb3IubWVzc2FnZSwgZXJyb3Iuc3RhY2ssIHN0YWNrICk7XG5cdH1cbn07XG5cblxuXG5cbmpRdWVyeS5yZWFkeUV4Y2VwdGlvbiA9IGZ1bmN0aW9uKCBlcnJvciApIHtcblx0d2luZG93LnNldFRpbWVvdXQoIGZ1bmN0aW9uKCkge1xuXHRcdHRocm93IGVycm9yO1xuXHR9ICk7XG59O1xuXG5cblxuXG4vLyBUaGUgZGVmZXJyZWQgdXNlZCBvbiBET00gcmVhZHlcbnZhciByZWFkeUxpc3QgPSBqUXVlcnkuRGVmZXJyZWQoKTtcblxualF1ZXJ5LmZuLnJlYWR5ID0gZnVuY3Rpb24oIGZuICkge1xuXG5cdHJlYWR5TGlzdFxuXHRcdC50aGVuKCBmbiApXG5cblx0XHQvLyBXcmFwIGpRdWVyeS5yZWFkeUV4Y2VwdGlvbiBpbiBhIGZ1bmN0aW9uIHNvIHRoYXQgdGhlIGxvb2t1cFxuXHRcdC8vIGhhcHBlbnMgYXQgdGhlIHRpbWUgb2YgZXJyb3IgaGFuZGxpbmcgaW5zdGVhZCBvZiBjYWxsYmFja1xuXHRcdC8vIHJlZ2lzdHJhdGlvbi5cblx0XHQuY2F0Y2goIGZ1bmN0aW9uKCBlcnJvciApIHtcblx0XHRcdGpRdWVyeS5yZWFkeUV4Y2VwdGlvbiggZXJyb3IgKTtcblx0XHR9ICk7XG5cblx0cmV0dXJuIHRoaXM7XG59O1xuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cblx0Ly8gSXMgdGhlIERPTSByZWFkeSB0byBiZSB1c2VkPyBTZXQgdG8gdHJ1ZSBvbmNlIGl0IG9jY3Vycy5cblx0aXNSZWFkeTogZmFsc2UsXG5cblx0Ly8gQSBjb3VudGVyIHRvIHRyYWNrIGhvdyBtYW55IGl0ZW1zIHRvIHdhaXQgZm9yIGJlZm9yZVxuXHQvLyB0aGUgcmVhZHkgZXZlbnQgZmlyZXMuIFNlZSAjNjc4MVxuXHRyZWFkeVdhaXQ6IDEsXG5cblx0Ly8gSGFuZGxlIHdoZW4gdGhlIERPTSBpcyByZWFkeVxuXHRyZWFkeTogZnVuY3Rpb24oIHdhaXQgKSB7XG5cblx0XHQvLyBBYm9ydCBpZiB0aGVyZSBhcmUgcGVuZGluZyBob2xkcyBvciB3ZSdyZSBhbHJlYWR5IHJlYWR5XG5cdFx0aWYgKCB3YWl0ID09PSB0cnVlID8gLS1qUXVlcnkucmVhZHlXYWl0IDogalF1ZXJ5LmlzUmVhZHkgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gUmVtZW1iZXIgdGhhdCB0aGUgRE9NIGlzIHJlYWR5XG5cdFx0alF1ZXJ5LmlzUmVhZHkgPSB0cnVlO1xuXG5cdFx0Ly8gSWYgYSBub3JtYWwgRE9NIFJlYWR5IGV2ZW50IGZpcmVkLCBkZWNyZW1lbnQsIGFuZCB3YWl0IGlmIG5lZWQgYmVcblx0XHRpZiAoIHdhaXQgIT09IHRydWUgJiYgLS1qUXVlcnkucmVhZHlXYWl0ID4gMCApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBJZiB0aGVyZSBhcmUgZnVuY3Rpb25zIGJvdW5kLCB0byBleGVjdXRlXG5cdFx0cmVhZHlMaXN0LnJlc29sdmVXaXRoKCBkb2N1bWVudCwgWyBqUXVlcnkgXSApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5yZWFkeS50aGVuID0gcmVhZHlMaXN0LnRoZW47XG5cbi8vIFRoZSByZWFkeSBldmVudCBoYW5kbGVyIGFuZCBzZWxmIGNsZWFudXAgbWV0aG9kXG5mdW5jdGlvbiBjb21wbGV0ZWQoKSB7XG5cdGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwiRE9NQ29udGVudExvYWRlZFwiLCBjb21wbGV0ZWQgKTtcblx0d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwibG9hZFwiLCBjb21wbGV0ZWQgKTtcblx0alF1ZXJ5LnJlYWR5KCk7XG59XG5cbi8vIENhdGNoIGNhc2VzIHdoZXJlICQoZG9jdW1lbnQpLnJlYWR5KCkgaXMgY2FsbGVkXG4vLyBhZnRlciB0aGUgYnJvd3NlciBldmVudCBoYXMgYWxyZWFkeSBvY2N1cnJlZC5cbi8vIFN1cHBvcnQ6IElFIDw9OSAtIDEwIG9ubHlcbi8vIE9sZGVyIElFIHNvbWV0aW1lcyBzaWduYWxzIFwiaW50ZXJhY3RpdmVcIiB0b28gc29vblxuaWYgKCBkb2N1bWVudC5yZWFkeVN0YXRlID09PSBcImNvbXBsZXRlXCIgfHxcblx0KCBkb2N1bWVudC5yZWFkeVN0YXRlICE9PSBcImxvYWRpbmdcIiAmJiAhZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsICkgKSB7XG5cblx0Ly8gSGFuZGxlIGl0IGFzeW5jaHJvbm91c2x5IHRvIGFsbG93IHNjcmlwdHMgdGhlIG9wcG9ydHVuaXR5IHRvIGRlbGF5IHJlYWR5XG5cdHdpbmRvdy5zZXRUaW1lb3V0KCBqUXVlcnkucmVhZHkgKTtcblxufSBlbHNlIHtcblxuXHQvLyBVc2UgdGhlIGhhbmR5IGV2ZW50IGNhbGxiYWNrXG5cdGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiRE9NQ29udGVudExvYWRlZFwiLCBjb21wbGV0ZWQgKTtcblxuXHQvLyBBIGZhbGxiYWNrIHRvIHdpbmRvdy5vbmxvYWQsIHRoYXQgd2lsbCBhbHdheXMgd29ya1xuXHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggXCJsb2FkXCIsIGNvbXBsZXRlZCApO1xufVxuXG5cblxuXG4vLyBNdWx0aWZ1bmN0aW9uYWwgbWV0aG9kIHRvIGdldCBhbmQgc2V0IHZhbHVlcyBvZiBhIGNvbGxlY3Rpb25cbi8vIFRoZSB2YWx1ZS9zIGNhbiBvcHRpb25hbGx5IGJlIGV4ZWN1dGVkIGlmIGl0J3MgYSBmdW5jdGlvblxudmFyIGFjY2VzcyA9IGZ1bmN0aW9uKCBlbGVtcywgZm4sIGtleSwgdmFsdWUsIGNoYWluYWJsZSwgZW1wdHlHZXQsIHJhdyApIHtcblx0dmFyIGkgPSAwLFxuXHRcdGxlbiA9IGVsZW1zLmxlbmd0aCxcblx0XHRidWxrID0ga2V5ID09IG51bGw7XG5cblx0Ly8gU2V0cyBtYW55IHZhbHVlc1xuXHRpZiAoIHRvVHlwZSgga2V5ICkgPT09IFwib2JqZWN0XCIgKSB7XG5cdFx0Y2hhaW5hYmxlID0gdHJ1ZTtcblx0XHRmb3IgKCBpIGluIGtleSApIHtcblx0XHRcdGFjY2VzcyggZWxlbXMsIGZuLCBpLCBrZXlbIGkgXSwgdHJ1ZSwgZW1wdHlHZXQsIHJhdyApO1xuXHRcdH1cblxuXHQvLyBTZXRzIG9uZSB2YWx1ZVxuXHR9IGVsc2UgaWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdGNoYWluYWJsZSA9IHRydWU7XG5cblx0XHRpZiAoICFpc0Z1bmN0aW9uKCB2YWx1ZSApICkge1xuXHRcdFx0cmF3ID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRpZiAoIGJ1bGsgKSB7XG5cblx0XHRcdC8vIEJ1bGsgb3BlcmF0aW9ucyBydW4gYWdhaW5zdCB0aGUgZW50aXJlIHNldFxuXHRcdFx0aWYgKCByYXcgKSB7XG5cdFx0XHRcdGZuLmNhbGwoIGVsZW1zLCB2YWx1ZSApO1xuXHRcdFx0XHRmbiA9IG51bGw7XG5cblx0XHRcdC8vIC4uLmV4Y2VwdCB3aGVuIGV4ZWN1dGluZyBmdW5jdGlvbiB2YWx1ZXNcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGJ1bGsgPSBmbjtcblx0XHRcdFx0Zm4gPSBmdW5jdGlvbiggZWxlbSwgX2tleSwgdmFsdWUgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGJ1bGsuY2FsbCggalF1ZXJ5KCBlbGVtICksIHZhbHVlICk7XG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCBmbiApIHtcblx0XHRcdGZvciAoIDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdFx0XHRmbihcblx0XHRcdFx0XHRlbGVtc1sgaSBdLCBrZXksIHJhdyA/XG5cdFx0XHRcdFx0XHR2YWx1ZSA6XG5cdFx0XHRcdFx0XHR2YWx1ZS5jYWxsKCBlbGVtc1sgaSBdLCBpLCBmbiggZWxlbXNbIGkgXSwga2V5ICkgKVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGlmICggY2hhaW5hYmxlICkge1xuXHRcdHJldHVybiBlbGVtcztcblx0fVxuXG5cdC8vIEdldHNcblx0aWYgKCBidWxrICkge1xuXHRcdHJldHVybiBmbi5jYWxsKCBlbGVtcyApO1xuXHR9XG5cblx0cmV0dXJuIGxlbiA/IGZuKCBlbGVtc1sgMCBdLCBrZXkgKSA6IGVtcHR5R2V0O1xufTtcblxuXG4vLyBNYXRjaGVzIGRhc2hlZCBzdHJpbmcgZm9yIGNhbWVsaXppbmdcbnZhciBybXNQcmVmaXggPSAvXi1tcy0vLFxuXHRyZGFzaEFscGhhID0gLy0oW2Etel0pL2c7XG5cbi8vIFVzZWQgYnkgY2FtZWxDYXNlIGFzIGNhbGxiYWNrIHRvIHJlcGxhY2UoKVxuZnVuY3Rpb24gZmNhbWVsQ2FzZSggX2FsbCwgbGV0dGVyICkge1xuXHRyZXR1cm4gbGV0dGVyLnRvVXBwZXJDYXNlKCk7XG59XG5cbi8vIENvbnZlcnQgZGFzaGVkIHRvIGNhbWVsQ2FzZTsgdXNlZCBieSB0aGUgY3NzIGFuZCBkYXRhIG1vZHVsZXNcbi8vIFN1cHBvcnQ6IElFIDw9OSAtIDExLCBFZGdlIDEyIC0gMTVcbi8vIE1pY3Jvc29mdCBmb3Jnb3QgdG8gaHVtcCB0aGVpciB2ZW5kb3IgcHJlZml4ICgjOTU3MilcbmZ1bmN0aW9uIGNhbWVsQ2FzZSggc3RyaW5nICkge1xuXHRyZXR1cm4gc3RyaW5nLnJlcGxhY2UoIHJtc1ByZWZpeCwgXCJtcy1cIiApLnJlcGxhY2UoIHJkYXNoQWxwaGEsIGZjYW1lbENhc2UgKTtcbn1cbnZhciBhY2NlcHREYXRhID0gZnVuY3Rpb24oIG93bmVyICkge1xuXG5cdC8vIEFjY2VwdHMgb25seTpcblx0Ly8gIC0gTm9kZVxuXHQvLyAgICAtIE5vZGUuRUxFTUVOVF9OT0RFXG5cdC8vICAgIC0gTm9kZS5ET0NVTUVOVF9OT0RFXG5cdC8vICAtIE9iamVjdFxuXHQvLyAgICAtIEFueVxuXHRyZXR1cm4gb3duZXIubm9kZVR5cGUgPT09IDEgfHwgb3duZXIubm9kZVR5cGUgPT09IDkgfHwgISggK293bmVyLm5vZGVUeXBlICk7XG59O1xuXG5cblxuXG5mdW5jdGlvbiBEYXRhKCkge1xuXHR0aGlzLmV4cGFuZG8gPSBqUXVlcnkuZXhwYW5kbyArIERhdGEudWlkKys7XG59XG5cbkRhdGEudWlkID0gMTtcblxuRGF0YS5wcm90b3R5cGUgPSB7XG5cblx0Y2FjaGU6IGZ1bmN0aW9uKCBvd25lciApIHtcblxuXHRcdC8vIENoZWNrIGlmIHRoZSBvd25lciBvYmplY3QgYWxyZWFkeSBoYXMgYSBjYWNoZVxuXHRcdHZhciB2YWx1ZSA9IG93bmVyWyB0aGlzLmV4cGFuZG8gXTtcblxuXHRcdC8vIElmIG5vdCwgY3JlYXRlIG9uZVxuXHRcdGlmICggIXZhbHVlICkge1xuXHRcdFx0dmFsdWUgPSB7fTtcblxuXHRcdFx0Ly8gV2UgY2FuIGFjY2VwdCBkYXRhIGZvciBub24tZWxlbWVudCBub2RlcyBpbiBtb2Rlcm4gYnJvd3NlcnMsXG5cdFx0XHQvLyBidXQgd2Ugc2hvdWxkIG5vdCwgc2VlICM4MzM1LlxuXHRcdFx0Ly8gQWx3YXlzIHJldHVybiBhbiBlbXB0eSBvYmplY3QuXG5cdFx0XHRpZiAoIGFjY2VwdERhdGEoIG93bmVyICkgKSB7XG5cblx0XHRcdFx0Ly8gSWYgaXQgaXMgYSBub2RlIHVubGlrZWx5IHRvIGJlIHN0cmluZ2lmeS1lZCBvciBsb29wZWQgb3ZlclxuXHRcdFx0XHQvLyB1c2UgcGxhaW4gYXNzaWdubWVudFxuXHRcdFx0XHRpZiAoIG93bmVyLm5vZGVUeXBlICkge1xuXHRcdFx0XHRcdG93bmVyWyB0aGlzLmV4cGFuZG8gXSA9IHZhbHVlO1xuXG5cdFx0XHRcdC8vIE90aGVyd2lzZSBzZWN1cmUgaXQgaW4gYSBub24tZW51bWVyYWJsZSBwcm9wZXJ0eVxuXHRcdFx0XHQvLyBjb25maWd1cmFibGUgbXVzdCBiZSB0cnVlIHRvIGFsbG93IHRoZSBwcm9wZXJ0eSB0byBiZVxuXHRcdFx0XHQvLyBkZWxldGVkIHdoZW4gZGF0YSBpcyByZW1vdmVkXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KCBvd25lciwgdGhpcy5leHBhbmRvLCB7XG5cdFx0XHRcdFx0XHR2YWx1ZTogdmFsdWUsXG5cdFx0XHRcdFx0XHRjb25maWd1cmFibGU6IHRydWVcblx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdmFsdWU7XG5cdH0sXG5cdHNldDogZnVuY3Rpb24oIG93bmVyLCBkYXRhLCB2YWx1ZSApIHtcblx0XHR2YXIgcHJvcCxcblx0XHRcdGNhY2hlID0gdGhpcy5jYWNoZSggb3duZXIgKTtcblxuXHRcdC8vIEhhbmRsZTogWyBvd25lciwga2V5LCB2YWx1ZSBdIGFyZ3Ncblx0XHQvLyBBbHdheXMgdXNlIGNhbWVsQ2FzZSBrZXkgKGdoLTIyNTcpXG5cdFx0aWYgKCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGNhY2hlWyBjYW1lbENhc2UoIGRhdGEgKSBdID0gdmFsdWU7XG5cblx0XHQvLyBIYW5kbGU6IFsgb3duZXIsIHsgcHJvcGVydGllcyB9IF0gYXJnc1xuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIENvcHkgdGhlIHByb3BlcnRpZXMgb25lLWJ5LW9uZSB0byB0aGUgY2FjaGUgb2JqZWN0XG5cdFx0XHRmb3IgKCBwcm9wIGluIGRhdGEgKSB7XG5cdFx0XHRcdGNhY2hlWyBjYW1lbENhc2UoIHByb3AgKSBdID0gZGF0YVsgcHJvcCBdO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gY2FjaGU7XG5cdH0sXG5cdGdldDogZnVuY3Rpb24oIG93bmVyLCBrZXkgKSB7XG5cdFx0cmV0dXJuIGtleSA9PT0gdW5kZWZpbmVkID9cblx0XHRcdHRoaXMuY2FjaGUoIG93bmVyICkgOlxuXG5cdFx0XHQvLyBBbHdheXMgdXNlIGNhbWVsQ2FzZSBrZXkgKGdoLTIyNTcpXG5cdFx0XHRvd25lclsgdGhpcy5leHBhbmRvIF0gJiYgb3duZXJbIHRoaXMuZXhwYW5kbyBdWyBjYW1lbENhc2UoIGtleSApIF07XG5cdH0sXG5cdGFjY2VzczogZnVuY3Rpb24oIG93bmVyLCBrZXksIHZhbHVlICkge1xuXG5cdFx0Ly8gSW4gY2FzZXMgd2hlcmUgZWl0aGVyOlxuXHRcdC8vXG5cdFx0Ly8gICAxLiBObyBrZXkgd2FzIHNwZWNpZmllZFxuXHRcdC8vICAgMi4gQSBzdHJpbmcga2V5IHdhcyBzcGVjaWZpZWQsIGJ1dCBubyB2YWx1ZSBwcm92aWRlZFxuXHRcdC8vXG5cdFx0Ly8gVGFrZSB0aGUgXCJyZWFkXCIgcGF0aCBhbmQgYWxsb3cgdGhlIGdldCBtZXRob2QgdG8gZGV0ZXJtaW5lXG5cdFx0Ly8gd2hpY2ggdmFsdWUgdG8gcmV0dXJuLCByZXNwZWN0aXZlbHkgZWl0aGVyOlxuXHRcdC8vXG5cdFx0Ly8gICAxLiBUaGUgZW50aXJlIGNhY2hlIG9iamVjdFxuXHRcdC8vICAgMi4gVGhlIGRhdGEgc3RvcmVkIGF0IHRoZSBrZXlcblx0XHQvL1xuXHRcdGlmICgga2V5ID09PSB1bmRlZmluZWQgfHxcblx0XHRcdFx0KCAoIGtleSAmJiB0eXBlb2Yga2V5ID09PSBcInN0cmluZ1wiICkgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCApICkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5nZXQoIG93bmVyLCBrZXkgKTtcblx0XHR9XG5cblx0XHQvLyBXaGVuIHRoZSBrZXkgaXMgbm90IGEgc3RyaW5nLCBvciBib3RoIGEga2V5IGFuZCB2YWx1ZVxuXHRcdC8vIGFyZSBzcGVjaWZpZWQsIHNldCBvciBleHRlbmQgKGV4aXN0aW5nIG9iamVjdHMpIHdpdGggZWl0aGVyOlxuXHRcdC8vXG5cdFx0Ly8gICAxLiBBbiBvYmplY3Qgb2YgcHJvcGVydGllc1xuXHRcdC8vICAgMi4gQSBrZXkgYW5kIHZhbHVlXG5cdFx0Ly9cblx0XHR0aGlzLnNldCggb3duZXIsIGtleSwgdmFsdWUgKTtcblxuXHRcdC8vIFNpbmNlIHRoZSBcInNldFwiIHBhdGggY2FuIGhhdmUgdHdvIHBvc3NpYmxlIGVudHJ5IHBvaW50c1xuXHRcdC8vIHJldHVybiB0aGUgZXhwZWN0ZWQgZGF0YSBiYXNlZCBvbiB3aGljaCBwYXRoIHdhcyB0YWtlblsqXVxuXHRcdHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiBrZXk7XG5cdH0sXG5cdHJlbW92ZTogZnVuY3Rpb24oIG93bmVyLCBrZXkgKSB7XG5cdFx0dmFyIGksXG5cdFx0XHRjYWNoZSA9IG93bmVyWyB0aGlzLmV4cGFuZG8gXTtcblxuXHRcdGlmICggY2FjaGUgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoIGtleSAhPT0gdW5kZWZpbmVkICkge1xuXG5cdFx0XHQvLyBTdXBwb3J0IGFycmF5IG9yIHNwYWNlIHNlcGFyYXRlZCBzdHJpbmcgb2Yga2V5c1xuXHRcdFx0aWYgKCBBcnJheS5pc0FycmF5KCBrZXkgKSApIHtcblxuXHRcdFx0XHQvLyBJZiBrZXkgaXMgYW4gYXJyYXkgb2Yga2V5cy4uLlxuXHRcdFx0XHQvLyBXZSBhbHdheXMgc2V0IGNhbWVsQ2FzZSBrZXlzLCBzbyByZW1vdmUgdGhhdC5cblx0XHRcdFx0a2V5ID0ga2V5Lm1hcCggY2FtZWxDYXNlICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRrZXkgPSBjYW1lbENhc2UoIGtleSApO1xuXG5cdFx0XHRcdC8vIElmIGEga2V5IHdpdGggdGhlIHNwYWNlcyBleGlzdHMsIHVzZSBpdC5cblx0XHRcdFx0Ly8gT3RoZXJ3aXNlLCBjcmVhdGUgYW4gYXJyYXkgYnkgbWF0Y2hpbmcgbm9uLXdoaXRlc3BhY2Vcblx0XHRcdFx0a2V5ID0ga2V5IGluIGNhY2hlID9cblx0XHRcdFx0XHRbIGtleSBdIDpcblx0XHRcdFx0XHQoIGtleS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFtdICk7XG5cdFx0XHR9XG5cblx0XHRcdGkgPSBrZXkubGVuZ3RoO1xuXG5cdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0ZGVsZXRlIGNhY2hlWyBrZXlbIGkgXSBdO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFJlbW92ZSB0aGUgZXhwYW5kbyBpZiB0aGVyZSdzIG5vIG1vcmUgZGF0YVxuXHRcdGlmICgga2V5ID09PSB1bmRlZmluZWQgfHwgalF1ZXJ5LmlzRW1wdHlPYmplY3QoIGNhY2hlICkgKSB7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IENocm9tZSA8PTM1IC0gNDVcblx0XHRcdC8vIFdlYmtpdCAmIEJsaW5rIHBlcmZvcm1hbmNlIHN1ZmZlcnMgd2hlbiBkZWxldGluZyBwcm9wZXJ0aWVzXG5cdFx0XHQvLyBmcm9tIERPTSBub2Rlcywgc28gc2V0IHRvIHVuZGVmaW5lZCBpbnN0ZWFkXG5cdFx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0zNzg2MDcgKGJ1ZyByZXN0cmljdGVkKVxuXHRcdFx0aWYgKCBvd25lci5ub2RlVHlwZSApIHtcblx0XHRcdFx0b3duZXJbIHRoaXMuZXhwYW5kbyBdID0gdW5kZWZpbmVkO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZGVsZXRlIG93bmVyWyB0aGlzLmV4cGFuZG8gXTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGhhc0RhdGE6IGZ1bmN0aW9uKCBvd25lciApIHtcblx0XHR2YXIgY2FjaGUgPSBvd25lclsgdGhpcy5leHBhbmRvIF07XG5cdFx0cmV0dXJuIGNhY2hlICE9PSB1bmRlZmluZWQgJiYgIWpRdWVyeS5pc0VtcHR5T2JqZWN0KCBjYWNoZSApO1xuXHR9XG59O1xudmFyIGRhdGFQcml2ID0gbmV3IERhdGEoKTtcblxudmFyIGRhdGFVc2VyID0gbmV3IERhdGEoKTtcblxuXG5cbi8vXHRJbXBsZW1lbnRhdGlvbiBTdW1tYXJ5XG4vL1xuLy9cdDEuIEVuZm9yY2UgQVBJIHN1cmZhY2UgYW5kIHNlbWFudGljIGNvbXBhdGliaWxpdHkgd2l0aCAxLjkueCBicmFuY2hcbi8vXHQyLiBJbXByb3ZlIHRoZSBtb2R1bGUncyBtYWludGFpbmFiaWxpdHkgYnkgcmVkdWNpbmcgdGhlIHN0b3JhZ2Vcbi8vXHRcdHBhdGhzIHRvIGEgc2luZ2xlIG1lY2hhbmlzbS5cbi8vXHQzLiBVc2UgdGhlIHNhbWUgc2luZ2xlIG1lY2hhbmlzbSB0byBzdXBwb3J0IFwicHJpdmF0ZVwiIGFuZCBcInVzZXJcIiBkYXRhLlxuLy9cdDQuIF9OZXZlcl8gZXhwb3NlIFwicHJpdmF0ZVwiIGRhdGEgdG8gdXNlciBjb2RlIChUT0RPOiBEcm9wIF9kYXRhLCBfcmVtb3ZlRGF0YSlcbi8vXHQ1LiBBdm9pZCBleHBvc2luZyBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9uIHVzZXIgb2JqZWN0cyAoZWcuIGV4cGFuZG8gcHJvcGVydGllcylcbi8vXHQ2LiBQcm92aWRlIGEgY2xlYXIgcGF0aCBmb3IgaW1wbGVtZW50YXRpb24gdXBncmFkZSB0byBXZWFrTWFwIGluIDIwMTRcblxudmFyIHJicmFjZSA9IC9eKD86XFx7W1xcd1xcV10qXFx9fFxcW1tcXHdcXFddKlxcXSkkLyxcblx0cm11bHRpRGFzaCA9IC9bQS1aXS9nO1xuXG5mdW5jdGlvbiBnZXREYXRhKCBkYXRhICkge1xuXHRpZiAoIGRhdGEgPT09IFwidHJ1ZVwiICkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0aWYgKCBkYXRhID09PSBcImZhbHNlXCIgKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0aWYgKCBkYXRhID09PSBcIm51bGxcIiApIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8vIE9ubHkgY29udmVydCB0byBhIG51bWJlciBpZiBpdCBkb2Vzbid0IGNoYW5nZSB0aGUgc3RyaW5nXG5cdGlmICggZGF0YSA9PT0gK2RhdGEgKyBcIlwiICkge1xuXHRcdHJldHVybiArZGF0YTtcblx0fVxuXG5cdGlmICggcmJyYWNlLnRlc3QoIGRhdGEgKSApIHtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZSggZGF0YSApO1xuXHR9XG5cblx0cmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIGRhdGFBdHRyKCBlbGVtLCBrZXksIGRhdGEgKSB7XG5cdHZhciBuYW1lO1xuXG5cdC8vIElmIG5vdGhpbmcgd2FzIGZvdW5kIGludGVybmFsbHksIHRyeSB0byBmZXRjaCBhbnlcblx0Ly8gZGF0YSBmcm9tIHRoZSBIVE1MNSBkYXRhLSogYXR0cmlidXRlXG5cdGlmICggZGF0YSA9PT0gdW5kZWZpbmVkICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0bmFtZSA9IFwiZGF0YS1cIiArIGtleS5yZXBsYWNlKCBybXVsdGlEYXNoLCBcIi0kJlwiICkudG9Mb3dlckNhc2UoKTtcblx0XHRkYXRhID0gZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKTtcblxuXHRcdGlmICggdHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRkYXRhID0gZ2V0RGF0YSggZGF0YSApO1xuXHRcdFx0fSBjYXRjaCAoIGUgKSB7fVxuXG5cdFx0XHQvLyBNYWtlIHN1cmUgd2Ugc2V0IHRoZSBkYXRhIHNvIGl0IGlzbid0IGNoYW5nZWQgbGF0ZXJcblx0XHRcdGRhdGFVc2VyLnNldCggZWxlbSwga2V5LCBkYXRhICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRhdGEgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBkYXRhO1xufVxuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdGhhc0RhdGE6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBkYXRhVXNlci5oYXNEYXRhKCBlbGVtICkgfHwgZGF0YVByaXYuaGFzRGF0YSggZWxlbSApO1xuXHR9LFxuXG5cdGRhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhICkge1xuXHRcdHJldHVybiBkYXRhVXNlci5hY2Nlc3MoIGVsZW0sIG5hbWUsIGRhdGEgKTtcblx0fSxcblxuXHRyZW1vdmVEYXRhOiBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHtcblx0XHRkYXRhVXNlci5yZW1vdmUoIGVsZW0sIG5hbWUgKTtcblx0fSxcblxuXHQvLyBUT0RPOiBOb3cgdGhhdCBhbGwgY2FsbHMgdG8gX2RhdGEgYW5kIF9yZW1vdmVEYXRhIGhhdmUgYmVlbiByZXBsYWNlZFxuXHQvLyB3aXRoIGRpcmVjdCBjYWxscyB0byBkYXRhUHJpdiBtZXRob2RzLCB0aGVzZSBjYW4gYmUgZGVwcmVjYXRlZC5cblx0X2RhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhICkge1xuXHRcdHJldHVybiBkYXRhUHJpdi5hY2Nlc3MoIGVsZW0sIG5hbWUsIGRhdGEgKTtcblx0fSxcblxuXHRfcmVtb3ZlRGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUgKSB7XG5cdFx0ZGF0YVByaXYucmVtb3ZlKCBlbGVtLCBuYW1lICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRkYXRhOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHtcblx0XHR2YXIgaSwgbmFtZSwgZGF0YSxcblx0XHRcdGVsZW0gPSB0aGlzWyAwIF0sXG5cdFx0XHRhdHRycyA9IGVsZW0gJiYgZWxlbS5hdHRyaWJ1dGVzO1xuXG5cdFx0Ly8gR2V0cyBhbGwgdmFsdWVzXG5cdFx0aWYgKCBrZXkgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdGlmICggdGhpcy5sZW5ndGggKSB7XG5cdFx0XHRcdGRhdGEgPSBkYXRhVXNlci5nZXQoIGVsZW0gKTtcblxuXHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgIWRhdGFQcml2LmdldCggZWxlbSwgXCJoYXNEYXRhQXR0cnNcIiApICkge1xuXHRcdFx0XHRcdGkgPSBhdHRycy5sZW5ndGg7XG5cdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cblx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDExIG9ubHlcblx0XHRcdFx0XHRcdC8vIFRoZSBhdHRycyBlbGVtZW50cyBjYW4gYmUgbnVsbCAoIzE0ODk0KVxuXHRcdFx0XHRcdFx0aWYgKCBhdHRyc1sgaSBdICkge1xuXHRcdFx0XHRcdFx0XHRuYW1lID0gYXR0cnNbIGkgXS5uYW1lO1xuXHRcdFx0XHRcdFx0XHRpZiAoIG5hbWUuaW5kZXhPZiggXCJkYXRhLVwiICkgPT09IDAgKSB7XG5cdFx0XHRcdFx0XHRcdFx0bmFtZSA9IGNhbWVsQ2FzZSggbmFtZS5zbGljZSggNSApICk7XG5cdFx0XHRcdFx0XHRcdFx0ZGF0YUF0dHIoIGVsZW0sIG5hbWUsIGRhdGFbIG5hbWUgXSApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGRhdGFQcml2LnNldCggZWxlbSwgXCJoYXNEYXRhQXR0cnNcIiwgdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBkYXRhO1xuXHRcdH1cblxuXHRcdC8vIFNldHMgbXVsdGlwbGUgdmFsdWVzXG5cdFx0aWYgKCB0eXBlb2Yga2V5ID09PSBcIm9iamVjdFwiICkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGRhdGFVc2VyLnNldCggdGhpcywga2V5ICk7XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdFx0dmFyIGRhdGE7XG5cblx0XHRcdC8vIFRoZSBjYWxsaW5nIGpRdWVyeSBvYmplY3QgKGVsZW1lbnQgbWF0Y2hlcykgaXMgbm90IGVtcHR5XG5cdFx0XHQvLyAoYW5kIHRoZXJlZm9yZSBoYXMgYW4gZWxlbWVudCBhcHBlYXJzIGF0IHRoaXNbIDAgXSkgYW5kIHRoZVxuXHRcdFx0Ly8gYHZhbHVlYCBwYXJhbWV0ZXIgd2FzIG5vdCB1bmRlZmluZWQuIEFuIGVtcHR5IGpRdWVyeSBvYmplY3Rcblx0XHRcdC8vIHdpbGwgcmVzdWx0IGluIGB1bmRlZmluZWRgIGZvciBlbGVtID0gdGhpc1sgMCBdIHdoaWNoIHdpbGxcblx0XHRcdC8vIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBhbiBhdHRlbXB0IHRvIHJlYWQgYSBkYXRhIGNhY2hlIGlzIG1hZGUuXG5cdFx0XHRpZiAoIGVsZW0gJiYgdmFsdWUgPT09IHVuZGVmaW5lZCApIHtcblxuXHRcdFx0XHQvLyBBdHRlbXB0IHRvIGdldCBkYXRhIGZyb20gdGhlIGNhY2hlXG5cdFx0XHRcdC8vIFRoZSBrZXkgd2lsbCBhbHdheXMgYmUgY2FtZWxDYXNlZCBpbiBEYXRhXG5cdFx0XHRcdGRhdGEgPSBkYXRhVXNlci5nZXQoIGVsZW0sIGtleSApO1xuXHRcdFx0XHRpZiAoIGRhdGEgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRyZXR1cm4gZGF0YTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEF0dGVtcHQgdG8gXCJkaXNjb3ZlclwiIHRoZSBkYXRhIGluXG5cdFx0XHRcdC8vIEhUTUw1IGN1c3RvbSBkYXRhLSogYXR0cnNcblx0XHRcdFx0ZGF0YSA9IGRhdGFBdHRyKCBlbGVtLCBrZXkgKTtcblx0XHRcdFx0aWYgKCBkYXRhICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGRhdGE7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBXZSB0cmllZCByZWFsbHkgaGFyZCwgYnV0IHRoZSBkYXRhIGRvZXNuJ3QgZXhpc3QuXG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU2V0IHRoZSBkYXRhLi4uXG5cdFx0XHR0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHRcdC8vIFdlIGFsd2F5cyBzdG9yZSB0aGUgY2FtZWxDYXNlZCBrZXlcblx0XHRcdFx0ZGF0YVVzZXIuc2V0KCB0aGlzLCBrZXksIHZhbHVlICk7XG5cdFx0XHR9ICk7XG5cdFx0fSwgbnVsbCwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxLCBudWxsLCB0cnVlICk7XG5cdH0sXG5cblx0cmVtb3ZlRGF0YTogZnVuY3Rpb24oIGtleSApIHtcblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdGRhdGFVc2VyLnJlbW92ZSggdGhpcywga2V5ICk7XG5cdFx0fSApO1xuXHR9XG59ICk7XG5cblxualF1ZXJ5LmV4dGVuZCgge1xuXHRxdWV1ZTogZnVuY3Rpb24oIGVsZW0sIHR5cGUsIGRhdGEgKSB7XG5cdFx0dmFyIHF1ZXVlO1xuXG5cdFx0aWYgKCBlbGVtICkge1xuXHRcdFx0dHlwZSA9ICggdHlwZSB8fCBcImZ4XCIgKSArIFwicXVldWVcIjtcblx0XHRcdHF1ZXVlID0gZGF0YVByaXYuZ2V0KCBlbGVtLCB0eXBlICk7XG5cblx0XHRcdC8vIFNwZWVkIHVwIGRlcXVldWUgYnkgZ2V0dGluZyBvdXQgcXVpY2tseSBpZiB0aGlzIGlzIGp1c3QgYSBsb29rdXBcblx0XHRcdGlmICggZGF0YSApIHtcblx0XHRcdFx0aWYgKCAhcXVldWUgfHwgQXJyYXkuaXNBcnJheSggZGF0YSApICkge1xuXHRcdFx0XHRcdHF1ZXVlID0gZGF0YVByaXYuYWNjZXNzKCBlbGVtLCB0eXBlLCBqUXVlcnkubWFrZUFycmF5KCBkYXRhICkgKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRxdWV1ZS5wdXNoKCBkYXRhICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBxdWV1ZSB8fCBbXTtcblx0XHR9XG5cdH0sXG5cblx0ZGVxdWV1ZTogZnVuY3Rpb24oIGVsZW0sIHR5cGUgKSB7XG5cdFx0dHlwZSA9IHR5cGUgfHwgXCJmeFwiO1xuXG5cdFx0dmFyIHF1ZXVlID0galF1ZXJ5LnF1ZXVlKCBlbGVtLCB0eXBlICksXG5cdFx0XHRzdGFydExlbmd0aCA9IHF1ZXVlLmxlbmd0aCxcblx0XHRcdGZuID0gcXVldWUuc2hpZnQoKSxcblx0XHRcdGhvb2tzID0galF1ZXJ5Ll9xdWV1ZUhvb2tzKCBlbGVtLCB0eXBlICksXG5cdFx0XHRuZXh0ID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGpRdWVyeS5kZXF1ZXVlKCBlbGVtLCB0eXBlICk7XG5cdFx0XHR9O1xuXG5cdFx0Ly8gSWYgdGhlIGZ4IHF1ZXVlIGlzIGRlcXVldWVkLCBhbHdheXMgcmVtb3ZlIHRoZSBwcm9ncmVzcyBzZW50aW5lbFxuXHRcdGlmICggZm4gPT09IFwiaW5wcm9ncmVzc1wiICkge1xuXHRcdFx0Zm4gPSBxdWV1ZS5zaGlmdCgpO1xuXHRcdFx0c3RhcnRMZW5ndGgtLTtcblx0XHR9XG5cblx0XHRpZiAoIGZuICkge1xuXG5cdFx0XHQvLyBBZGQgYSBwcm9ncmVzcyBzZW50aW5lbCB0byBwcmV2ZW50IHRoZSBmeCBxdWV1ZSBmcm9tIGJlaW5nXG5cdFx0XHQvLyBhdXRvbWF0aWNhbGx5IGRlcXVldWVkXG5cdFx0XHRpZiAoIHR5cGUgPT09IFwiZnhcIiApIHtcblx0XHRcdFx0cXVldWUudW5zaGlmdCggXCJpbnByb2dyZXNzXCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQ2xlYXIgdXAgdGhlIGxhc3QgcXVldWUgc3RvcCBmdW5jdGlvblxuXHRcdFx0ZGVsZXRlIGhvb2tzLnN0b3A7XG5cdFx0XHRmbi5jYWxsKCBlbGVtLCBuZXh0LCBob29rcyApO1xuXHRcdH1cblxuXHRcdGlmICggIXN0YXJ0TGVuZ3RoICYmIGhvb2tzICkge1xuXHRcdFx0aG9va3MuZW1wdHkuZmlyZSgpO1xuXHRcdH1cblx0fSxcblxuXHQvLyBOb3QgcHVibGljIC0gZ2VuZXJhdGUgYSBxdWV1ZUhvb2tzIG9iamVjdCwgb3IgcmV0dXJuIHRoZSBjdXJyZW50IG9uZVxuXHRfcXVldWVIb29rczogZnVuY3Rpb24oIGVsZW0sIHR5cGUgKSB7XG5cdFx0dmFyIGtleSA9IHR5cGUgKyBcInF1ZXVlSG9va3NcIjtcblx0XHRyZXR1cm4gZGF0YVByaXYuZ2V0KCBlbGVtLCBrZXkgKSB8fCBkYXRhUHJpdi5hY2Nlc3MoIGVsZW0sIGtleSwge1xuXHRcdFx0ZW1wdHk6IGpRdWVyeS5DYWxsYmFja3MoIFwib25jZSBtZW1vcnlcIiApLmFkZCggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGRhdGFQcml2LnJlbW92ZSggZWxlbSwgWyB0eXBlICsgXCJxdWV1ZVwiLCBrZXkgXSApO1xuXHRcdFx0fSApXG5cdFx0fSApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0cXVldWU6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkge1xuXHRcdHZhciBzZXR0ZXIgPSAyO1xuXG5cdFx0aWYgKCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGRhdGEgPSB0eXBlO1xuXHRcdFx0dHlwZSA9IFwiZnhcIjtcblx0XHRcdHNldHRlci0tO1xuXHRcdH1cblxuXHRcdGlmICggYXJndW1lbnRzLmxlbmd0aCA8IHNldHRlciApIHtcblx0XHRcdHJldHVybiBqUXVlcnkucXVldWUoIHRoaXNbIDAgXSwgdHlwZSApO1xuXHRcdH1cblxuXHRcdHJldHVybiBkYXRhID09PSB1bmRlZmluZWQgP1xuXHRcdFx0dGhpcyA6XG5cdFx0XHR0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHR2YXIgcXVldWUgPSBqUXVlcnkucXVldWUoIHRoaXMsIHR5cGUsIGRhdGEgKTtcblxuXHRcdFx0XHQvLyBFbnN1cmUgYSBob29rcyBmb3IgdGhpcyBxdWV1ZVxuXHRcdFx0XHRqUXVlcnkuX3F1ZXVlSG9va3MoIHRoaXMsIHR5cGUgKTtcblxuXHRcdFx0XHRpZiAoIHR5cGUgPT09IFwiZnhcIiAmJiBxdWV1ZVsgMCBdICE9PSBcImlucHJvZ3Jlc3NcIiApIHtcblx0XHRcdFx0XHRqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9ICk7XG5cdH0sXG5cdGRlcXVldWU6IGZ1bmN0aW9uKCB0eXBlICkge1xuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0alF1ZXJ5LmRlcXVldWUoIHRoaXMsIHR5cGUgKTtcblx0XHR9ICk7XG5cdH0sXG5cdGNsZWFyUXVldWU6IGZ1bmN0aW9uKCB0eXBlICkge1xuXHRcdHJldHVybiB0aGlzLnF1ZXVlKCB0eXBlIHx8IFwiZnhcIiwgW10gKTtcblx0fSxcblxuXHQvLyBHZXQgYSBwcm9taXNlIHJlc29sdmVkIHdoZW4gcXVldWVzIG9mIGEgY2VydGFpbiB0eXBlXG5cdC8vIGFyZSBlbXB0aWVkIChmeCBpcyB0aGUgdHlwZSBieSBkZWZhdWx0KVxuXHRwcm9taXNlOiBmdW5jdGlvbiggdHlwZSwgb2JqICkge1xuXHRcdHZhciB0bXAsXG5cdFx0XHRjb3VudCA9IDEsXG5cdFx0XHRkZWZlciA9IGpRdWVyeS5EZWZlcnJlZCgpLFxuXHRcdFx0ZWxlbWVudHMgPSB0aGlzLFxuXHRcdFx0aSA9IHRoaXMubGVuZ3RoLFxuXHRcdFx0cmVzb2x2ZSA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoICEoIC0tY291bnQgKSApIHtcblx0XHRcdFx0XHRkZWZlci5yZXNvbHZlV2l0aCggZWxlbWVudHMsIFsgZWxlbWVudHMgXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXG5cdFx0aWYgKCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdG9iaiA9IHR5cGU7XG5cdFx0XHR0eXBlID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHR0eXBlID0gdHlwZSB8fCBcImZ4XCI7XG5cblx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdHRtcCA9IGRhdGFQcml2LmdldCggZWxlbWVudHNbIGkgXSwgdHlwZSArIFwicXVldWVIb29rc1wiICk7XG5cdFx0XHRpZiAoIHRtcCAmJiB0bXAuZW1wdHkgKSB7XG5cdFx0XHRcdGNvdW50Kys7XG5cdFx0XHRcdHRtcC5lbXB0eS5hZGQoIHJlc29sdmUgKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmVzb2x2ZSgpO1xuXHRcdHJldHVybiBkZWZlci5wcm9taXNlKCBvYmogKTtcblx0fVxufSApO1xudmFyIHBudW0gPSAoIC9bKy1dPyg/OlxcZCpcXC58KVxcZCsoPzpbZUVdWystXT9cXGQrfCkvICkuc291cmNlO1xuXG52YXIgcmNzc051bSA9IG5ldyBSZWdFeHAoIFwiXig/OihbKy1dKT18KShcIiArIHBudW0gKyBcIikoW2EteiVdKikkXCIsIFwiaVwiICk7XG5cblxudmFyIGNzc0V4cGFuZCA9IFsgXCJUb3BcIiwgXCJSaWdodFwiLCBcIkJvdHRvbVwiLCBcIkxlZnRcIiBdO1xuXG52YXIgZG9jdW1lbnRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG5cblxuXHR2YXIgaXNBdHRhY2hlZCA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5jb250YWlucyggZWxlbS5vd25lckRvY3VtZW50LCBlbGVtICk7XG5cdFx0fSxcblx0XHRjb21wb3NlZCA9IHsgY29tcG9zZWQ6IHRydWUgfTtcblxuXHQvLyBTdXBwb3J0OiBJRSA5IC0gMTErLCBFZGdlIDEyIC0gMTgrLCBpT1MgMTAuMCAtIDEwLjIgb25seVxuXHQvLyBDaGVjayBhdHRhY2htZW50IGFjcm9zcyBzaGFkb3cgRE9NIGJvdW5kYXJpZXMgd2hlbiBwb3NzaWJsZSAoZ2gtMzUwNClcblx0Ly8gU3VwcG9ydDogaU9TIDEwLjAtMTAuMiBvbmx5XG5cdC8vIEVhcmx5IGlPUyAxMCB2ZXJzaW9ucyBzdXBwb3J0IGBhdHRhY2hTaGFkb3dgIGJ1dCBub3QgYGdldFJvb3ROb2RlYCxcblx0Ly8gbGVhZGluZyB0byBlcnJvcnMuIFdlIG5lZWQgdG8gY2hlY2sgZm9yIGBnZXRSb290Tm9kZWAuXG5cdGlmICggZG9jdW1lbnRFbGVtZW50LmdldFJvb3ROb2RlICkge1xuXHRcdGlzQXR0YWNoZWQgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBqUXVlcnkuY29udGFpbnMoIGVsZW0ub3duZXJEb2N1bWVudCwgZWxlbSApIHx8XG5cdFx0XHRcdGVsZW0uZ2V0Um9vdE5vZGUoIGNvbXBvc2VkICkgPT09IGVsZW0ub3duZXJEb2N1bWVudDtcblx0XHR9O1xuXHR9XG52YXIgaXNIaWRkZW5XaXRoaW5UcmVlID0gZnVuY3Rpb24oIGVsZW0sIGVsICkge1xuXG5cdFx0Ly8gaXNIaWRkZW5XaXRoaW5UcmVlIG1pZ2h0IGJlIGNhbGxlZCBmcm9tIGpRdWVyeSNmaWx0ZXIgZnVuY3Rpb247XG5cdFx0Ly8gaW4gdGhhdCBjYXNlLCBlbGVtZW50IHdpbGwgYmUgc2Vjb25kIGFyZ3VtZW50XG5cdFx0ZWxlbSA9IGVsIHx8IGVsZW07XG5cblx0XHQvLyBJbmxpbmUgc3R5bGUgdHJ1bXBzIGFsbFxuXHRcdHJldHVybiBlbGVtLnN0eWxlLmRpc3BsYXkgPT09IFwibm9uZVwiIHx8XG5cdFx0XHRlbGVtLnN0eWxlLmRpc3BsYXkgPT09IFwiXCIgJiZcblxuXHRcdFx0Ly8gT3RoZXJ3aXNlLCBjaGVjayBjb21wdXRlZCBzdHlsZVxuXHRcdFx0Ly8gU3VwcG9ydDogRmlyZWZveCA8PTQzIC0gNDVcblx0XHRcdC8vIERpc2Nvbm5lY3RlZCBlbGVtZW50cyBjYW4gaGF2ZSBjb21wdXRlZCBkaXNwbGF5OiBub25lLCBzbyBmaXJzdCBjb25maXJtIHRoYXQgZWxlbSBpc1xuXHRcdFx0Ly8gaW4gdGhlIGRvY3VtZW50LlxuXHRcdFx0aXNBdHRhY2hlZCggZWxlbSApICYmXG5cblx0XHRcdGpRdWVyeS5jc3MoIGVsZW0sIFwiZGlzcGxheVwiICkgPT09IFwibm9uZVwiO1xuXHR9O1xuXG5cblxuZnVuY3Rpb24gYWRqdXN0Q1NTKCBlbGVtLCBwcm9wLCB2YWx1ZVBhcnRzLCB0d2VlbiApIHtcblx0dmFyIGFkanVzdGVkLCBzY2FsZSxcblx0XHRtYXhJdGVyYXRpb25zID0gMjAsXG5cdFx0Y3VycmVudFZhbHVlID0gdHdlZW4gP1xuXHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiB0d2Vlbi5jdXIoKTtcblx0XHRcdH0gOlxuXHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiBqUXVlcnkuY3NzKCBlbGVtLCBwcm9wLCBcIlwiICk7XG5cdFx0XHR9LFxuXHRcdGluaXRpYWwgPSBjdXJyZW50VmFsdWUoKSxcblx0XHR1bml0ID0gdmFsdWVQYXJ0cyAmJiB2YWx1ZVBhcnRzWyAzIF0gfHwgKCBqUXVlcnkuY3NzTnVtYmVyWyBwcm9wIF0gPyBcIlwiIDogXCJweFwiICksXG5cblx0XHQvLyBTdGFydGluZyB2YWx1ZSBjb21wdXRhdGlvbiBpcyByZXF1aXJlZCBmb3IgcG90ZW50aWFsIHVuaXQgbWlzbWF0Y2hlc1xuXHRcdGluaXRpYWxJblVuaXQgPSBlbGVtLm5vZGVUeXBlICYmXG5cdFx0XHQoIGpRdWVyeS5jc3NOdW1iZXJbIHByb3AgXSB8fCB1bml0ICE9PSBcInB4XCIgJiYgK2luaXRpYWwgKSAmJlxuXHRcdFx0cmNzc051bS5leGVjKCBqUXVlcnkuY3NzKCBlbGVtLCBwcm9wICkgKTtcblxuXHRpZiAoIGluaXRpYWxJblVuaXQgJiYgaW5pdGlhbEluVW5pdFsgMyBdICE9PSB1bml0ICkge1xuXG5cdFx0Ly8gU3VwcG9ydDogRmlyZWZveCA8PTU0XG5cdFx0Ly8gSGFsdmUgdGhlIGl0ZXJhdGlvbiB0YXJnZXQgdmFsdWUgdG8gcHJldmVudCBpbnRlcmZlcmVuY2UgZnJvbSBDU1MgdXBwZXIgYm91bmRzIChnaC0yMTQ0KVxuXHRcdGluaXRpYWwgPSBpbml0aWFsIC8gMjtcblxuXHRcdC8vIFRydXN0IHVuaXRzIHJlcG9ydGVkIGJ5IGpRdWVyeS5jc3Ncblx0XHR1bml0ID0gdW5pdCB8fCBpbml0aWFsSW5Vbml0WyAzIF07XG5cblx0XHQvLyBJdGVyYXRpdmVseSBhcHByb3hpbWF0ZSBmcm9tIGEgbm9uemVybyBzdGFydGluZyBwb2ludFxuXHRcdGluaXRpYWxJblVuaXQgPSAraW5pdGlhbCB8fCAxO1xuXG5cdFx0d2hpbGUgKCBtYXhJdGVyYXRpb25zLS0gKSB7XG5cblx0XHRcdC8vIEV2YWx1YXRlIGFuZCB1cGRhdGUgb3VyIGJlc3QgZ3Vlc3MgKGRvdWJsaW5nIGd1ZXNzZXMgdGhhdCB6ZXJvIG91dCkuXG5cdFx0XHQvLyBGaW5pc2ggaWYgdGhlIHNjYWxlIGVxdWFscyBvciBjcm9zc2VzIDEgKG1ha2luZyB0aGUgb2xkKm5ldyBwcm9kdWN0IG5vbi1wb3NpdGl2ZSkuXG5cdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AsIGluaXRpYWxJblVuaXQgKyB1bml0ICk7XG5cdFx0XHRpZiAoICggMSAtIHNjYWxlICkgKiAoIDEgLSAoIHNjYWxlID0gY3VycmVudFZhbHVlKCkgLyBpbml0aWFsIHx8IDAuNSApICkgPD0gMCApIHtcblx0XHRcdFx0bWF4SXRlcmF0aW9ucyA9IDA7XG5cdFx0XHR9XG5cdFx0XHRpbml0aWFsSW5Vbml0ID0gaW5pdGlhbEluVW5pdCAvIHNjYWxlO1xuXG5cdFx0fVxuXG5cdFx0aW5pdGlhbEluVW5pdCA9IGluaXRpYWxJblVuaXQgKiAyO1xuXHRcdGpRdWVyeS5zdHlsZSggZWxlbSwgcHJvcCwgaW5pdGlhbEluVW5pdCArIHVuaXQgKTtcblxuXHRcdC8vIE1ha2Ugc3VyZSB3ZSB1cGRhdGUgdGhlIHR3ZWVuIHByb3BlcnRpZXMgbGF0ZXIgb25cblx0XHR2YWx1ZVBhcnRzID0gdmFsdWVQYXJ0cyB8fCBbXTtcblx0fVxuXG5cdGlmICggdmFsdWVQYXJ0cyApIHtcblx0XHRpbml0aWFsSW5Vbml0ID0gK2luaXRpYWxJblVuaXQgfHwgK2luaXRpYWwgfHwgMDtcblxuXHRcdC8vIEFwcGx5IHJlbGF0aXZlIG9mZnNldCAoKz0vLT0pIGlmIHNwZWNpZmllZFxuXHRcdGFkanVzdGVkID0gdmFsdWVQYXJ0c1sgMSBdID9cblx0XHRcdGluaXRpYWxJblVuaXQgKyAoIHZhbHVlUGFydHNbIDEgXSArIDEgKSAqIHZhbHVlUGFydHNbIDIgXSA6XG5cdFx0XHQrdmFsdWVQYXJ0c1sgMiBdO1xuXHRcdGlmICggdHdlZW4gKSB7XG5cdFx0XHR0d2Vlbi51bml0ID0gdW5pdDtcblx0XHRcdHR3ZWVuLnN0YXJ0ID0gaW5pdGlhbEluVW5pdDtcblx0XHRcdHR3ZWVuLmVuZCA9IGFkanVzdGVkO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gYWRqdXN0ZWQ7XG59XG5cblxudmFyIGRlZmF1bHREaXNwbGF5TWFwID0ge307XG5cbmZ1bmN0aW9uIGdldERlZmF1bHREaXNwbGF5KCBlbGVtICkge1xuXHR2YXIgdGVtcCxcblx0XHRkb2MgPSBlbGVtLm93bmVyRG9jdW1lbnQsXG5cdFx0bm9kZU5hbWUgPSBlbGVtLm5vZGVOYW1lLFxuXHRcdGRpc3BsYXkgPSBkZWZhdWx0RGlzcGxheU1hcFsgbm9kZU5hbWUgXTtcblxuXHRpZiAoIGRpc3BsYXkgKSB7XG5cdFx0cmV0dXJuIGRpc3BsYXk7XG5cdH1cblxuXHR0ZW1wID0gZG9jLmJvZHkuYXBwZW5kQ2hpbGQoIGRvYy5jcmVhdGVFbGVtZW50KCBub2RlTmFtZSApICk7XG5cdGRpc3BsYXkgPSBqUXVlcnkuY3NzKCB0ZW1wLCBcImRpc3BsYXlcIiApO1xuXG5cdHRlbXAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggdGVtcCApO1xuXG5cdGlmICggZGlzcGxheSA9PT0gXCJub25lXCIgKSB7XG5cdFx0ZGlzcGxheSA9IFwiYmxvY2tcIjtcblx0fVxuXHRkZWZhdWx0RGlzcGxheU1hcFsgbm9kZU5hbWUgXSA9IGRpc3BsYXk7XG5cblx0cmV0dXJuIGRpc3BsYXk7XG59XG5cbmZ1bmN0aW9uIHNob3dIaWRlKCBlbGVtZW50cywgc2hvdyApIHtcblx0dmFyIGRpc3BsYXksIGVsZW0sXG5cdFx0dmFsdWVzID0gW10sXG5cdFx0aW5kZXggPSAwLFxuXHRcdGxlbmd0aCA9IGVsZW1lbnRzLmxlbmd0aDtcblxuXHQvLyBEZXRlcm1pbmUgbmV3IGRpc3BsYXkgdmFsdWUgZm9yIGVsZW1lbnRzIHRoYXQgbmVlZCB0byBjaGFuZ2Vcblx0Zm9yICggOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKyApIHtcblx0XHRlbGVtID0gZWxlbWVudHNbIGluZGV4IF07XG5cdFx0aWYgKCAhZWxlbS5zdHlsZSApIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGRpc3BsYXkgPSBlbGVtLnN0eWxlLmRpc3BsYXk7XG5cdFx0aWYgKCBzaG93ICkge1xuXG5cdFx0XHQvLyBTaW5jZSB3ZSBmb3JjZSB2aXNpYmlsaXR5IHVwb24gY2FzY2FkZS1oaWRkZW4gZWxlbWVudHMsIGFuIGltbWVkaWF0ZSAoYW5kIHNsb3cpXG5cdFx0XHQvLyBjaGVjayBpcyByZXF1aXJlZCBpbiB0aGlzIGZpcnN0IGxvb3AgdW5sZXNzIHdlIGhhdmUgYSBub25lbXB0eSBkaXNwbGF5IHZhbHVlIChlaXRoZXJcblx0XHRcdC8vIGlubGluZSBvciBhYm91dC10by1iZS1yZXN0b3JlZClcblx0XHRcdGlmICggZGlzcGxheSA9PT0gXCJub25lXCIgKSB7XG5cdFx0XHRcdHZhbHVlc1sgaW5kZXggXSA9IGRhdGFQcml2LmdldCggZWxlbSwgXCJkaXNwbGF5XCIgKSB8fCBudWxsO1xuXHRcdFx0XHRpZiAoICF2YWx1ZXNbIGluZGV4IF0gKSB7XG5cdFx0XHRcdFx0ZWxlbS5zdHlsZS5kaXNwbGF5ID0gXCJcIjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKCBlbGVtLnN0eWxlLmRpc3BsYXkgPT09IFwiXCIgJiYgaXNIaWRkZW5XaXRoaW5UcmVlKCBlbGVtICkgKSB7XG5cdFx0XHRcdHZhbHVlc1sgaW5kZXggXSA9IGdldERlZmF1bHREaXNwbGF5KCBlbGVtICk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlmICggZGlzcGxheSAhPT0gXCJub25lXCIgKSB7XG5cdFx0XHRcdHZhbHVlc1sgaW5kZXggXSA9IFwibm9uZVwiO1xuXG5cdFx0XHRcdC8vIFJlbWVtYmVyIHdoYXQgd2UncmUgb3ZlcndyaXRpbmdcblx0XHRcdFx0ZGF0YVByaXYuc2V0KCBlbGVtLCBcImRpc3BsYXlcIiwgZGlzcGxheSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIFNldCB0aGUgZGlzcGxheSBvZiB0aGUgZWxlbWVudHMgaW4gYSBzZWNvbmQgbG9vcCB0byBhdm9pZCBjb25zdGFudCByZWZsb3dcblx0Zm9yICggaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKyApIHtcblx0XHRpZiAoIHZhbHVlc1sgaW5kZXggXSAhPSBudWxsICkge1xuXHRcdFx0ZWxlbWVudHNbIGluZGV4IF0uc3R5bGUuZGlzcGxheSA9IHZhbHVlc1sgaW5kZXggXTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZWxlbWVudHM7XG59XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0c2hvdzogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHNob3dIaWRlKCB0aGlzLCB0cnVlICk7XG5cdH0sXG5cdGhpZGU6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBzaG93SGlkZSggdGhpcyApO1xuXHR9LFxuXHR0b2dnbGU6IGZ1bmN0aW9uKCBzdGF0ZSApIHtcblx0XHRpZiAoIHR5cGVvZiBzdGF0ZSA9PT0gXCJib29sZWFuXCIgKSB7XG5cdFx0XHRyZXR1cm4gc3RhdGUgPyB0aGlzLnNob3coKSA6IHRoaXMuaGlkZSgpO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0aWYgKCBpc0hpZGRlbldpdGhpblRyZWUoIHRoaXMgKSApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkuc2hvdygpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkuaGlkZSgpO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fVxufSApO1xudmFyIHJjaGVja2FibGVUeXBlID0gKCAvXig/OmNoZWNrYm94fHJhZGlvKSQvaSApO1xuXG52YXIgcnRhZ05hbWUgPSAoIC88KFthLXpdW15cXC9cXDA+XFx4MjBcXHRcXHJcXG5cXGZdKikvaSApO1xuXG52YXIgcnNjcmlwdFR5cGUgPSAoIC9eJHxebW9kdWxlJHxcXC8oPzpqYXZhfGVjbWEpc2NyaXB0L2kgKTtcblxuXG5cbiggZnVuY3Rpb24oKSB7XG5cdHZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxcblx0XHRkaXYgPSBmcmFnbWVudC5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJkaXZcIiApICksXG5cdFx0aW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImlucHV0XCIgKTtcblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkIDQuMCAtIDQuMyBvbmx5XG5cdC8vIENoZWNrIHN0YXRlIGxvc3QgaWYgdGhlIG5hbWUgaXMgc2V0ICgjMTEyMTcpXG5cdC8vIFN1cHBvcnQ6IFdpbmRvd3MgV2ViIEFwcHMgKFdXQSlcblx0Ly8gYG5hbWVgIGFuZCBgdHlwZWAgbXVzdCB1c2UgLnNldEF0dHJpYnV0ZSBmb3IgV1dBICgjMTQ5MDEpXG5cdGlucHV0LnNldEF0dHJpYnV0ZSggXCJ0eXBlXCIsIFwicmFkaW9cIiApO1xuXHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwiY2hlY2tlZFwiLCBcImNoZWNrZWRcIiApO1xuXHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwibmFtZVwiLCBcInRcIiApO1xuXG5cdGRpdi5hcHBlbmRDaGlsZCggaW5wdXQgKTtcblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4xIG9ubHlcblx0Ly8gT2xkZXIgV2ViS2l0IGRvZXNuJ3QgY2xvbmUgY2hlY2tlZCBzdGF0ZSBjb3JyZWN0bHkgaW4gZnJhZ21lbnRzXG5cdHN1cHBvcnQuY2hlY2tDbG9uZSA9IGRpdi5jbG9uZU5vZGUoIHRydWUgKS5jbG9uZU5vZGUoIHRydWUgKS5sYXN0Q2hpbGQuY2hlY2tlZDtcblxuXHQvLyBTdXBwb3J0OiBJRSA8PTExIG9ubHlcblx0Ly8gTWFrZSBzdXJlIHRleHRhcmVhIChhbmQgY2hlY2tib3gpIGRlZmF1bHRWYWx1ZSBpcyBwcm9wZXJseSBjbG9uZWRcblx0ZGl2LmlubmVySFRNTCA9IFwiPHRleHRhcmVhPng8L3RleHRhcmVhPlwiO1xuXHRzdXBwb3J0Lm5vQ2xvbmVDaGVja2VkID0gISFkaXYuY2xvbmVOb2RlKCB0cnVlICkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZTtcblxuXHQvLyBTdXBwb3J0OiBJRSA8PTkgb25seVxuXHQvLyBJRSA8PTkgcmVwbGFjZXMgPG9wdGlvbj4gdGFncyB3aXRoIHRoZWlyIGNvbnRlbnRzIHdoZW4gaW5zZXJ0ZWQgb3V0c2lkZSBvZlxuXHQvLyB0aGUgc2VsZWN0IGVsZW1lbnQuXG5cdGRpdi5pbm5lckhUTUwgPSBcIjxvcHRpb24+PC9vcHRpb24+XCI7XG5cdHN1cHBvcnQub3B0aW9uID0gISFkaXYubGFzdENoaWxkO1xufSApKCk7XG5cblxuLy8gV2UgaGF2ZSB0byBjbG9zZSB0aGVzZSB0YWdzIHRvIHN1cHBvcnQgWEhUTUwgKCMxMzIwMClcbnZhciB3cmFwTWFwID0ge1xuXG5cdC8vIFhIVE1MIHBhcnNlcnMgZG8gbm90IG1hZ2ljYWxseSBpbnNlcnQgZWxlbWVudHMgaW4gdGhlXG5cdC8vIHNhbWUgd2F5IHRoYXQgdGFnIHNvdXAgcGFyc2VycyBkby4gU28gd2UgY2Fubm90IHNob3J0ZW5cblx0Ly8gdGhpcyBieSBvbWl0dGluZyA8dGJvZHk+IG9yIG90aGVyIHJlcXVpcmVkIGVsZW1lbnRzLlxuXHR0aGVhZDogWyAxLCBcIjx0YWJsZT5cIiwgXCI8L3RhYmxlPlwiIF0sXG5cdGNvbDogWyAyLCBcIjx0YWJsZT48Y29sZ3JvdXA+XCIsIFwiPC9jb2xncm91cD48L3RhYmxlPlwiIF0sXG5cdHRyOiBbIDIsIFwiPHRhYmxlPjx0Ym9keT5cIiwgXCI8L3Rib2R5PjwvdGFibGU+XCIgXSxcblx0dGQ6IFsgMywgXCI8dGFibGU+PHRib2R5Pjx0cj5cIiwgXCI8L3RyPjwvdGJvZHk+PC90YWJsZT5cIiBdLFxuXG5cdF9kZWZhdWx0OiBbIDAsIFwiXCIsIFwiXCIgXVxufTtcblxud3JhcE1hcC50Ym9keSA9IHdyYXBNYXAudGZvb3QgPSB3cmFwTWFwLmNvbGdyb3VwID0gd3JhcE1hcC5jYXB0aW9uID0gd3JhcE1hcC50aGVhZDtcbndyYXBNYXAudGggPSB3cmFwTWFwLnRkO1xuXG4vLyBTdXBwb3J0OiBJRSA8PTkgb25seVxuaWYgKCAhc3VwcG9ydC5vcHRpb24gKSB7XG5cdHdyYXBNYXAub3B0Z3JvdXAgPSB3cmFwTWFwLm9wdGlvbiA9IFsgMSwgXCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+XCIsIFwiPC9zZWxlY3Q+XCIgXTtcbn1cblxuXG5mdW5jdGlvbiBnZXRBbGwoIGNvbnRleHQsIHRhZyApIHtcblxuXHQvLyBTdXBwb3J0OiBJRSA8PTkgLSAxMSBvbmx5XG5cdC8vIFVzZSB0eXBlb2YgdG8gYXZvaWQgemVyby1hcmd1bWVudCBtZXRob2QgaW52b2NhdGlvbiBvbiBob3N0IG9iamVjdHMgKCMxNTE1MSlcblx0dmFyIHJldDtcblxuXHRpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSBcInVuZGVmaW5lZFwiICkge1xuXHRcdHJldCA9IGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIHRhZyB8fCBcIipcIiApO1xuXG5cdH0gZWxzZSBpZiAoIHR5cGVvZiBjb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwgIT09IFwidW5kZWZpbmVkXCIgKSB7XG5cdFx0cmV0ID0gY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCB0YWcgfHwgXCIqXCIgKTtcblxuXHR9IGVsc2Uge1xuXHRcdHJldCA9IFtdO1xuXHR9XG5cblx0aWYgKCB0YWcgPT09IHVuZGVmaW5lZCB8fCB0YWcgJiYgbm9kZU5hbWUoIGNvbnRleHQsIHRhZyApICkge1xuXHRcdHJldHVybiBqUXVlcnkubWVyZ2UoIFsgY29udGV4dCBdLCByZXQgKTtcblx0fVxuXG5cdHJldHVybiByZXQ7XG59XG5cblxuLy8gTWFyayBzY3JpcHRzIGFzIGhhdmluZyBhbHJlYWR5IGJlZW4gZXZhbHVhdGVkXG5mdW5jdGlvbiBzZXRHbG9iYWxFdmFsKCBlbGVtcywgcmVmRWxlbWVudHMgKSB7XG5cdHZhciBpID0gMCxcblx0XHRsID0gZWxlbXMubGVuZ3RoO1xuXG5cdGZvciAoIDsgaSA8IGw7IGkrKyApIHtcblx0XHRkYXRhUHJpdi5zZXQoXG5cdFx0XHRlbGVtc1sgaSBdLFxuXHRcdFx0XCJnbG9iYWxFdmFsXCIsXG5cdFx0XHQhcmVmRWxlbWVudHMgfHwgZGF0YVByaXYuZ2V0KCByZWZFbGVtZW50c1sgaSBdLCBcImdsb2JhbEV2YWxcIiApXG5cdFx0KTtcblx0fVxufVxuXG5cbnZhciByaHRtbCA9IC88fCYjP1xcdys7LztcblxuZnVuY3Rpb24gYnVpbGRGcmFnbWVudCggZWxlbXMsIGNvbnRleHQsIHNjcmlwdHMsIHNlbGVjdGlvbiwgaWdub3JlZCApIHtcblx0dmFyIGVsZW0sIHRtcCwgdGFnLCB3cmFwLCBhdHRhY2hlZCwgaixcblx0XHRmcmFnbWVudCA9IGNvbnRleHQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLFxuXHRcdG5vZGVzID0gW10sXG5cdFx0aSA9IDAsXG5cdFx0bCA9IGVsZW1zLmxlbmd0aDtcblxuXHRmb3IgKCA7IGkgPCBsOyBpKysgKSB7XG5cdFx0ZWxlbSA9IGVsZW1zWyBpIF07XG5cblx0XHRpZiAoIGVsZW0gfHwgZWxlbSA9PT0gMCApIHtcblxuXHRcdFx0Ly8gQWRkIG5vZGVzIGRpcmVjdGx5XG5cdFx0XHRpZiAoIHRvVHlwZSggZWxlbSApID09PSBcIm9iamVjdFwiICkge1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjAgb25seSwgUGhhbnRvbUpTIDEgb25seVxuXHRcdFx0XHQvLyBwdXNoLmFwcGx5KF8sIGFycmF5bGlrZSkgdGhyb3dzIG9uIGFuY2llbnQgV2ViS2l0XG5cdFx0XHRcdGpRdWVyeS5tZXJnZSggbm9kZXMsIGVsZW0ubm9kZVR5cGUgPyBbIGVsZW0gXSA6IGVsZW0gKTtcblxuXHRcdFx0Ly8gQ29udmVydCBub24taHRtbCBpbnRvIGEgdGV4dCBub2RlXG5cdFx0XHR9IGVsc2UgaWYgKCAhcmh0bWwudGVzdCggZWxlbSApICkge1xuXHRcdFx0XHRub2Rlcy5wdXNoKCBjb250ZXh0LmNyZWF0ZVRleHROb2RlKCBlbGVtICkgKTtcblxuXHRcdFx0Ly8gQ29udmVydCBodG1sIGludG8gRE9NIG5vZGVzXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0bXAgPSB0bXAgfHwgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoIGNvbnRleHQuY3JlYXRlRWxlbWVudCggXCJkaXZcIiApICk7XG5cblx0XHRcdFx0Ly8gRGVzZXJpYWxpemUgYSBzdGFuZGFyZCByZXByZXNlbnRhdGlvblxuXHRcdFx0XHR0YWcgPSAoIHJ0YWdOYW1lLmV4ZWMoIGVsZW0gKSB8fCBbIFwiXCIsIFwiXCIgXSApWyAxIF0udG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0d3JhcCA9IHdyYXBNYXBbIHRhZyBdIHx8IHdyYXBNYXAuX2RlZmF1bHQ7XG5cdFx0XHRcdHRtcC5pbm5lckhUTUwgPSB3cmFwWyAxIF0gKyBqUXVlcnkuaHRtbFByZWZpbHRlciggZWxlbSApICsgd3JhcFsgMiBdO1xuXG5cdFx0XHRcdC8vIERlc2NlbmQgdGhyb3VnaCB3cmFwcGVycyB0byB0aGUgcmlnaHQgY29udGVudFxuXHRcdFx0XHRqID0gd3JhcFsgMCBdO1xuXHRcdFx0XHR3aGlsZSAoIGotLSApIHtcblx0XHRcdFx0XHR0bXAgPSB0bXAubGFzdENoaWxkO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMCBvbmx5LCBQaGFudG9tSlMgMSBvbmx5XG5cdFx0XHRcdC8vIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCBub2RlcywgdG1wLmNoaWxkTm9kZXMgKTtcblxuXHRcdFx0XHQvLyBSZW1lbWJlciB0aGUgdG9wLWxldmVsIGNvbnRhaW5lclxuXHRcdFx0XHR0bXAgPSBmcmFnbWVudC5maXJzdENoaWxkO1xuXG5cdFx0XHRcdC8vIEVuc3VyZSB0aGUgY3JlYXRlZCBub2RlcyBhcmUgb3JwaGFuZWQgKCMxMjM5Milcblx0XHRcdFx0dG1wLnRleHRDb250ZW50ID0gXCJcIjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBSZW1vdmUgd3JhcHBlciBmcm9tIGZyYWdtZW50XG5cdGZyYWdtZW50LnRleHRDb250ZW50ID0gXCJcIjtcblxuXHRpID0gMDtcblx0d2hpbGUgKCAoIGVsZW0gPSBub2Rlc1sgaSsrIF0gKSApIHtcblxuXHRcdC8vIFNraXAgZWxlbWVudHMgYWxyZWFkeSBpbiB0aGUgY29udGV4dCBjb2xsZWN0aW9uICh0cmFjLTQwODcpXG5cdFx0aWYgKCBzZWxlY3Rpb24gJiYgalF1ZXJ5LmluQXJyYXkoIGVsZW0sIHNlbGVjdGlvbiApID4gLTEgKSB7XG5cdFx0XHRpZiAoIGlnbm9yZWQgKSB7XG5cdFx0XHRcdGlnbm9yZWQucHVzaCggZWxlbSApO1xuXHRcdFx0fVxuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0YXR0YWNoZWQgPSBpc0F0dGFjaGVkKCBlbGVtICk7XG5cblx0XHQvLyBBcHBlbmQgdG8gZnJhZ21lbnRcblx0XHR0bXAgPSBnZXRBbGwoIGZyYWdtZW50LmFwcGVuZENoaWxkKCBlbGVtICksIFwic2NyaXB0XCIgKTtcblxuXHRcdC8vIFByZXNlcnZlIHNjcmlwdCBldmFsdWF0aW9uIGhpc3Rvcnlcblx0XHRpZiAoIGF0dGFjaGVkICkge1xuXHRcdFx0c2V0R2xvYmFsRXZhbCggdG1wICk7XG5cdFx0fVxuXG5cdFx0Ly8gQ2FwdHVyZSBleGVjdXRhYmxlc1xuXHRcdGlmICggc2NyaXB0cyApIHtcblx0XHRcdGogPSAwO1xuXHRcdFx0d2hpbGUgKCAoIGVsZW0gPSB0bXBbIGorKyBdICkgKSB7XG5cdFx0XHRcdGlmICggcnNjcmlwdFR5cGUudGVzdCggZWxlbS50eXBlIHx8IFwiXCIgKSApIHtcblx0XHRcdFx0XHRzY3JpcHRzLnB1c2goIGVsZW0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBmcmFnbWVudDtcbn1cblxuXG52YXIgcnR5cGVuYW1lc3BhY2UgPSAvXihbXi5dKikoPzpcXC4oLispfCkvO1xuXG5mdW5jdGlvbiByZXR1cm5UcnVlKCkge1xuXHRyZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gcmV0dXJuRmFsc2UoKSB7XG5cdHJldHVybiBmYWxzZTtcbn1cblxuLy8gU3VwcG9ydDogSUUgPD05IC0gMTErXG4vLyBmb2N1cygpIGFuZCBibHVyKCkgYXJlIGFzeW5jaHJvbm91cywgZXhjZXB0IHdoZW4gdGhleSBhcmUgbm8tb3AuXG4vLyBTbyBleHBlY3QgZm9jdXMgdG8gYmUgc3luY2hyb25vdXMgd2hlbiB0aGUgZWxlbWVudCBpcyBhbHJlYWR5IGFjdGl2ZSxcbi8vIGFuZCBibHVyIHRvIGJlIHN5bmNocm9ub3VzIHdoZW4gdGhlIGVsZW1lbnQgaXMgbm90IGFscmVhZHkgYWN0aXZlLlxuLy8gKGZvY3VzIGFuZCBibHVyIGFyZSBhbHdheXMgc3luY2hyb25vdXMgaW4gb3RoZXIgc3VwcG9ydGVkIGJyb3dzZXJzLFxuLy8gdGhpcyBqdXN0IGRlZmluZXMgd2hlbiB3ZSBjYW4gY291bnQgb24gaXQpLlxuZnVuY3Rpb24gZXhwZWN0U3luYyggZWxlbSwgdHlwZSApIHtcblx0cmV0dXJuICggZWxlbSA9PT0gc2FmZUFjdGl2ZUVsZW1lbnQoKSApID09PSAoIHR5cGUgPT09IFwiZm9jdXNcIiApO1xufVxuXG4vLyBTdXBwb3J0OiBJRSA8PTkgb25seVxuLy8gQWNjZXNzaW5nIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgY2FuIHRocm93IHVuZXhwZWN0ZWRseVxuLy8gaHR0cHM6Ly9idWdzLmpxdWVyeS5jb20vdGlja2V0LzEzMzkzXG5mdW5jdGlvbiBzYWZlQWN0aXZlRWxlbWVudCgpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblx0fSBjYXRjaCAoIGVyciApIHsgfVxufVxuXG5mdW5jdGlvbiBvbiggZWxlbSwgdHlwZXMsIHNlbGVjdG9yLCBkYXRhLCBmbiwgb25lICkge1xuXHR2YXIgb3JpZ0ZuLCB0eXBlO1xuXG5cdC8vIFR5cGVzIGNhbiBiZSBhIG1hcCBvZiB0eXBlcy9oYW5kbGVyc1xuXHRpZiAoIHR5cGVvZiB0eXBlcyA9PT0gXCJvYmplY3RcIiApIHtcblxuXHRcdC8vICggdHlwZXMtT2JqZWN0LCBzZWxlY3RvciwgZGF0YSApXG5cdFx0aWYgKCB0eXBlb2Ygc2VsZWN0b3IgIT09IFwic3RyaW5nXCIgKSB7XG5cblx0XHRcdC8vICggdHlwZXMtT2JqZWN0LCBkYXRhIClcblx0XHRcdGRhdGEgPSBkYXRhIHx8IHNlbGVjdG9yO1xuXHRcdFx0c2VsZWN0b3IgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdGZvciAoIHR5cGUgaW4gdHlwZXMgKSB7XG5cdFx0XHRvbiggZWxlbSwgdHlwZSwgc2VsZWN0b3IsIGRhdGEsIHR5cGVzWyB0eXBlIF0sIG9uZSApO1xuXHRcdH1cblx0XHRyZXR1cm4gZWxlbTtcblx0fVxuXG5cdGlmICggZGF0YSA9PSBudWxsICYmIGZuID09IG51bGwgKSB7XG5cblx0XHQvLyAoIHR5cGVzLCBmbiApXG5cdFx0Zm4gPSBzZWxlY3Rvcjtcblx0XHRkYXRhID0gc2VsZWN0b3IgPSB1bmRlZmluZWQ7XG5cdH0gZWxzZSBpZiAoIGZuID09IG51bGwgKSB7XG5cdFx0aWYgKCB0eXBlb2Ygc2VsZWN0b3IgPT09IFwic3RyaW5nXCIgKSB7XG5cblx0XHRcdC8vICggdHlwZXMsIHNlbGVjdG9yLCBmbiApXG5cdFx0XHRmbiA9IGRhdGE7XG5cdFx0XHRkYXRhID0gdW5kZWZpbmVkO1xuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vICggdHlwZXMsIGRhdGEsIGZuIClcblx0XHRcdGZuID0gZGF0YTtcblx0XHRcdGRhdGEgPSBzZWxlY3Rvcjtcblx0XHRcdHNlbGVjdG9yID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXHRpZiAoIGZuID09PSBmYWxzZSApIHtcblx0XHRmbiA9IHJldHVybkZhbHNlO1xuXHR9IGVsc2UgaWYgKCAhZm4gKSB7XG5cdFx0cmV0dXJuIGVsZW07XG5cdH1cblxuXHRpZiAoIG9uZSA9PT0gMSApIHtcblx0XHRvcmlnRm4gPSBmbjtcblx0XHRmbiA9IGZ1bmN0aW9uKCBldmVudCApIHtcblxuXHRcdFx0Ly8gQ2FuIHVzZSBhbiBlbXB0eSBzZXQsIHNpbmNlIGV2ZW50IGNvbnRhaW5zIHRoZSBpbmZvXG5cdFx0XHRqUXVlcnkoKS5vZmYoIGV2ZW50ICk7XG5cdFx0XHRyZXR1cm4gb3JpZ0ZuLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTtcblx0XHR9O1xuXG5cdFx0Ly8gVXNlIHNhbWUgZ3VpZCBzbyBjYWxsZXIgY2FuIHJlbW92ZSB1c2luZyBvcmlnRm5cblx0XHRmbi5ndWlkID0gb3JpZ0ZuLmd1aWQgfHwgKCBvcmlnRm4uZ3VpZCA9IGpRdWVyeS5ndWlkKysgKTtcblx0fVxuXHRyZXR1cm4gZWxlbS5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRqUXVlcnkuZXZlbnQuYWRkKCB0aGlzLCB0eXBlcywgZm4sIGRhdGEsIHNlbGVjdG9yICk7XG5cdH0gKTtcbn1cblxuLypcbiAqIEhlbHBlciBmdW5jdGlvbnMgZm9yIG1hbmFnaW5nIGV2ZW50cyAtLSBub3QgcGFydCBvZiB0aGUgcHVibGljIGludGVyZmFjZS5cbiAqIFByb3BzIHRvIERlYW4gRWR3YXJkcycgYWRkRXZlbnQgbGlicmFyeSBmb3IgbWFueSBvZiB0aGUgaWRlYXMuXG4gKi9cbmpRdWVyeS5ldmVudCA9IHtcblxuXHRnbG9iYWw6IHt9LFxuXG5cdGFkZDogZnVuY3Rpb24oIGVsZW0sIHR5cGVzLCBoYW5kbGVyLCBkYXRhLCBzZWxlY3RvciApIHtcblxuXHRcdHZhciBoYW5kbGVPYmpJbiwgZXZlbnRIYW5kbGUsIHRtcCxcblx0XHRcdGV2ZW50cywgdCwgaGFuZGxlT2JqLFxuXHRcdFx0c3BlY2lhbCwgaGFuZGxlcnMsIHR5cGUsIG5hbWVzcGFjZXMsIG9yaWdUeXBlLFxuXHRcdFx0ZWxlbURhdGEgPSBkYXRhUHJpdi5nZXQoIGVsZW0gKTtcblxuXHRcdC8vIE9ubHkgYXR0YWNoIGV2ZW50cyB0byBvYmplY3RzIHRoYXQgYWNjZXB0IGRhdGFcblx0XHRpZiAoICFhY2NlcHREYXRhKCBlbGVtICkgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsbGVyIGNhbiBwYXNzIGluIGFuIG9iamVjdCBvZiBjdXN0b20gZGF0YSBpbiBsaWV1IG9mIHRoZSBoYW5kbGVyXG5cdFx0aWYgKCBoYW5kbGVyLmhhbmRsZXIgKSB7XG5cdFx0XHRoYW5kbGVPYmpJbiA9IGhhbmRsZXI7XG5cdFx0XHRoYW5kbGVyID0gaGFuZGxlT2JqSW4uaGFuZGxlcjtcblx0XHRcdHNlbGVjdG9yID0gaGFuZGxlT2JqSW4uc2VsZWN0b3I7XG5cdFx0fVxuXG5cdFx0Ly8gRW5zdXJlIHRoYXQgaW52YWxpZCBzZWxlY3RvcnMgdGhyb3cgZXhjZXB0aW9ucyBhdCBhdHRhY2ggdGltZVxuXHRcdC8vIEV2YWx1YXRlIGFnYWluc3QgZG9jdW1lbnRFbGVtZW50IGluIGNhc2UgZWxlbSBpcyBhIG5vbi1lbGVtZW50IG5vZGUgKGUuZy4sIGRvY3VtZW50KVxuXHRcdGlmICggc2VsZWN0b3IgKSB7XG5cdFx0XHRqUXVlcnkuZmluZC5tYXRjaGVzU2VsZWN0b3IoIGRvY3VtZW50RWxlbWVudCwgc2VsZWN0b3IgKTtcblx0XHR9XG5cblx0XHQvLyBNYWtlIHN1cmUgdGhhdCB0aGUgaGFuZGxlciBoYXMgYSB1bmlxdWUgSUQsIHVzZWQgdG8gZmluZC9yZW1vdmUgaXQgbGF0ZXJcblx0XHRpZiAoICFoYW5kbGVyLmd1aWQgKSB7XG5cdFx0XHRoYW5kbGVyLmd1aWQgPSBqUXVlcnkuZ3VpZCsrO1xuXHRcdH1cblxuXHRcdC8vIEluaXQgdGhlIGVsZW1lbnQncyBldmVudCBzdHJ1Y3R1cmUgYW5kIG1haW4gaGFuZGxlciwgaWYgdGhpcyBpcyB0aGUgZmlyc3Rcblx0XHRpZiAoICEoIGV2ZW50cyA9IGVsZW1EYXRhLmV2ZW50cyApICkge1xuXHRcdFx0ZXZlbnRzID0gZWxlbURhdGEuZXZlbnRzID0gT2JqZWN0LmNyZWF0ZSggbnVsbCApO1xuXHRcdH1cblx0XHRpZiAoICEoIGV2ZW50SGFuZGxlID0gZWxlbURhdGEuaGFuZGxlICkgKSB7XG5cdFx0XHRldmVudEhhbmRsZSA9IGVsZW1EYXRhLmhhbmRsZSA9IGZ1bmN0aW9uKCBlICkge1xuXG5cdFx0XHRcdC8vIERpc2NhcmQgdGhlIHNlY29uZCBldmVudCBvZiBhIGpRdWVyeS5ldmVudC50cmlnZ2VyKCkgYW5kXG5cdFx0XHRcdC8vIHdoZW4gYW4gZXZlbnQgaXMgY2FsbGVkIGFmdGVyIGEgcGFnZSBoYXMgdW5sb2FkZWRcblx0XHRcdFx0cmV0dXJuIHR5cGVvZiBqUXVlcnkgIT09IFwidW5kZWZpbmVkXCIgJiYgalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCAhPT0gZS50eXBlID9cblx0XHRcdFx0XHRqUXVlcnkuZXZlbnQuZGlzcGF0Y2guYXBwbHkoIGVsZW0sIGFyZ3VtZW50cyApIDogdW5kZWZpbmVkO1xuXHRcdFx0fTtcblx0XHR9XG5cblx0XHQvLyBIYW5kbGUgbXVsdGlwbGUgZXZlbnRzIHNlcGFyYXRlZCBieSBhIHNwYWNlXG5cdFx0dHlwZXMgPSAoIHR5cGVzIHx8IFwiXCIgKS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFsgXCJcIiBdO1xuXHRcdHQgPSB0eXBlcy5sZW5ndGg7XG5cdFx0d2hpbGUgKCB0LS0gKSB7XG5cdFx0XHR0bXAgPSBydHlwZW5hbWVzcGFjZS5leGVjKCB0eXBlc1sgdCBdICkgfHwgW107XG5cdFx0XHR0eXBlID0gb3JpZ1R5cGUgPSB0bXBbIDEgXTtcblx0XHRcdG5hbWVzcGFjZXMgPSAoIHRtcFsgMiBdIHx8IFwiXCIgKS5zcGxpdCggXCIuXCIgKS5zb3J0KCk7XG5cblx0XHRcdC8vIFRoZXJlICptdXN0KiBiZSBhIHR5cGUsIG5vIGF0dGFjaGluZyBuYW1lc3BhY2Utb25seSBoYW5kbGVyc1xuXHRcdFx0aWYgKCAhdHlwZSApIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIGV2ZW50IGNoYW5nZXMgaXRzIHR5cGUsIHVzZSB0aGUgc3BlY2lhbCBldmVudCBoYW5kbGVycyBmb3IgdGhlIGNoYW5nZWQgdHlwZVxuXHRcdFx0c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge307XG5cblx0XHRcdC8vIElmIHNlbGVjdG9yIGRlZmluZWQsIGRldGVybWluZSBzcGVjaWFsIGV2ZW50IGFwaSB0eXBlLCBvdGhlcndpc2UgZ2l2ZW4gdHlwZVxuXHRcdFx0dHlwZSA9ICggc2VsZWN0b3IgPyBzcGVjaWFsLmRlbGVnYXRlVHlwZSA6IHNwZWNpYWwuYmluZFR5cGUgKSB8fCB0eXBlO1xuXG5cdFx0XHQvLyBVcGRhdGUgc3BlY2lhbCBiYXNlZCBvbiBuZXdseSByZXNldCB0eXBlXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTtcblxuXHRcdFx0Ly8gaGFuZGxlT2JqIGlzIHBhc3NlZCB0byBhbGwgZXZlbnQgaGFuZGxlcnNcblx0XHRcdGhhbmRsZU9iaiA9IGpRdWVyeS5leHRlbmQoIHtcblx0XHRcdFx0dHlwZTogdHlwZSxcblx0XHRcdFx0b3JpZ1R5cGU6IG9yaWdUeXBlLFxuXHRcdFx0XHRkYXRhOiBkYXRhLFxuXHRcdFx0XHRoYW5kbGVyOiBoYW5kbGVyLFxuXHRcdFx0XHRndWlkOiBoYW5kbGVyLmd1aWQsXG5cdFx0XHRcdHNlbGVjdG9yOiBzZWxlY3Rvcixcblx0XHRcdFx0bmVlZHNDb250ZXh0OiBzZWxlY3RvciAmJiBqUXVlcnkuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdCggc2VsZWN0b3IgKSxcblx0XHRcdFx0bmFtZXNwYWNlOiBuYW1lc3BhY2VzLmpvaW4oIFwiLlwiIClcblx0XHRcdH0sIGhhbmRsZU9iakluICk7XG5cblx0XHRcdC8vIEluaXQgdGhlIGV2ZW50IGhhbmRsZXIgcXVldWUgaWYgd2UncmUgdGhlIGZpcnN0XG5cdFx0XHRpZiAoICEoIGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0gKSApIHtcblx0XHRcdFx0aGFuZGxlcnMgPSBldmVudHNbIHR5cGUgXSA9IFtdO1xuXHRcdFx0XHRoYW5kbGVycy5kZWxlZ2F0ZUNvdW50ID0gMDtcblxuXHRcdFx0XHQvLyBPbmx5IHVzZSBhZGRFdmVudExpc3RlbmVyIGlmIHRoZSBzcGVjaWFsIGV2ZW50cyBoYW5kbGVyIHJldHVybnMgZmFsc2Vcblx0XHRcdFx0aWYgKCAhc3BlY2lhbC5zZXR1cCB8fFxuXHRcdFx0XHRcdHNwZWNpYWwuc2V0dXAuY2FsbCggZWxlbSwgZGF0YSwgbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUgKSA9PT0gZmFsc2UgKSB7XG5cblx0XHRcdFx0XHRpZiAoIGVsZW0uYWRkRXZlbnRMaXN0ZW5lciApIHtcblx0XHRcdFx0XHRcdGVsZW0uYWRkRXZlbnRMaXN0ZW5lciggdHlwZSwgZXZlbnRIYW5kbGUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0aWYgKCBzcGVjaWFsLmFkZCApIHtcblx0XHRcdFx0c3BlY2lhbC5hZGQuY2FsbCggZWxlbSwgaGFuZGxlT2JqICk7XG5cblx0XHRcdFx0aWYgKCAhaGFuZGxlT2JqLmhhbmRsZXIuZ3VpZCApIHtcblx0XHRcdFx0XHRoYW5kbGVPYmouaGFuZGxlci5ndWlkID0gaGFuZGxlci5ndWlkO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFkZCB0byB0aGUgZWxlbWVudCdzIGhhbmRsZXIgbGlzdCwgZGVsZWdhdGVzIGluIGZyb250XG5cdFx0XHRpZiAoIHNlbGVjdG9yICkge1xuXHRcdFx0XHRoYW5kbGVycy5zcGxpY2UoIGhhbmRsZXJzLmRlbGVnYXRlQ291bnQrKywgMCwgaGFuZGxlT2JqICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRoYW5kbGVycy5wdXNoKCBoYW5kbGVPYmogKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gS2VlcCB0cmFjayBvZiB3aGljaCBldmVudHMgaGF2ZSBldmVyIGJlZW4gdXNlZCwgZm9yIGV2ZW50IG9wdGltaXphdGlvblxuXHRcdFx0alF1ZXJ5LmV2ZW50Lmdsb2JhbFsgdHlwZSBdID0gdHJ1ZTtcblx0XHR9XG5cblx0fSxcblxuXHQvLyBEZXRhY2ggYW4gZXZlbnQgb3Igc2V0IG9mIGV2ZW50cyBmcm9tIGFuIGVsZW1lbnRcblx0cmVtb3ZlOiBmdW5jdGlvbiggZWxlbSwgdHlwZXMsIGhhbmRsZXIsIHNlbGVjdG9yLCBtYXBwZWRUeXBlcyApIHtcblxuXHRcdHZhciBqLCBvcmlnQ291bnQsIHRtcCxcblx0XHRcdGV2ZW50cywgdCwgaGFuZGxlT2JqLFxuXHRcdFx0c3BlY2lhbCwgaGFuZGxlcnMsIHR5cGUsIG5hbWVzcGFjZXMsIG9yaWdUeXBlLFxuXHRcdFx0ZWxlbURhdGEgPSBkYXRhUHJpdi5oYXNEYXRhKCBlbGVtICkgJiYgZGF0YVByaXYuZ2V0KCBlbGVtICk7XG5cblx0XHRpZiAoICFlbGVtRGF0YSB8fCAhKCBldmVudHMgPSBlbGVtRGF0YS5ldmVudHMgKSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBPbmNlIGZvciBlYWNoIHR5cGUubmFtZXNwYWNlIGluIHR5cGVzOyB0eXBlIG1heSBiZSBvbWl0dGVkXG5cdFx0dHlwZXMgPSAoIHR5cGVzIHx8IFwiXCIgKS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFsgXCJcIiBdO1xuXHRcdHQgPSB0eXBlcy5sZW5ndGg7XG5cdFx0d2hpbGUgKCB0LS0gKSB7XG5cdFx0XHR0bXAgPSBydHlwZW5hbWVzcGFjZS5leGVjKCB0eXBlc1sgdCBdICkgfHwgW107XG5cdFx0XHR0eXBlID0gb3JpZ1R5cGUgPSB0bXBbIDEgXTtcblx0XHRcdG5hbWVzcGFjZXMgPSAoIHRtcFsgMiBdIHx8IFwiXCIgKS5zcGxpdCggXCIuXCIgKS5zb3J0KCk7XG5cblx0XHRcdC8vIFVuYmluZCBhbGwgZXZlbnRzIChvbiB0aGlzIG5hbWVzcGFjZSwgaWYgcHJvdmlkZWQpIGZvciB0aGUgZWxlbWVudFxuXHRcdFx0aWYgKCAhdHlwZSApIHtcblx0XHRcdFx0Zm9yICggdHlwZSBpbiBldmVudHMgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnJlbW92ZSggZWxlbSwgdHlwZSArIHR5cGVzWyB0IF0sIGhhbmRsZXIsIHNlbGVjdG9yLCB0cnVlICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8IHt9O1xuXHRcdFx0dHlwZSA9ICggc2VsZWN0b3IgPyBzcGVjaWFsLmRlbGVnYXRlVHlwZSA6IHNwZWNpYWwuYmluZFR5cGUgKSB8fCB0eXBlO1xuXHRcdFx0aGFuZGxlcnMgPSBldmVudHNbIHR5cGUgXSB8fCBbXTtcblx0XHRcdHRtcCA9IHRtcFsgMiBdICYmXG5cdFx0XHRcdG5ldyBSZWdFeHAoIFwiKF58XFxcXC4pXCIgKyBuYW1lc3BhY2VzLmpvaW4oIFwiXFxcXC4oPzouKlxcXFwufClcIiApICsgXCIoXFxcXC58JClcIiApO1xuXG5cdFx0XHQvLyBSZW1vdmUgbWF0Y2hpbmcgZXZlbnRzXG5cdFx0XHRvcmlnQ291bnQgPSBqID0gaGFuZGxlcnMubGVuZ3RoO1xuXHRcdFx0d2hpbGUgKCBqLS0gKSB7XG5cdFx0XHRcdGhhbmRsZU9iaiA9IGhhbmRsZXJzWyBqIF07XG5cblx0XHRcdFx0aWYgKCAoIG1hcHBlZFR5cGVzIHx8IG9yaWdUeXBlID09PSBoYW5kbGVPYmoub3JpZ1R5cGUgKSAmJlxuXHRcdFx0XHRcdCggIWhhbmRsZXIgfHwgaGFuZGxlci5ndWlkID09PSBoYW5kbGVPYmouZ3VpZCApICYmXG5cdFx0XHRcdFx0KCAhdG1wIHx8IHRtcC50ZXN0KCBoYW5kbGVPYmoubmFtZXNwYWNlICkgKSAmJlxuXHRcdFx0XHRcdCggIXNlbGVjdG9yIHx8IHNlbGVjdG9yID09PSBoYW5kbGVPYmouc2VsZWN0b3IgfHxcblx0XHRcdFx0XHRcdHNlbGVjdG9yID09PSBcIioqXCIgJiYgaGFuZGxlT2JqLnNlbGVjdG9yICkgKSB7XG5cdFx0XHRcdFx0aGFuZGxlcnMuc3BsaWNlKCBqLCAxICk7XG5cblx0XHRcdFx0XHRpZiAoIGhhbmRsZU9iai5zZWxlY3RvciApIHtcblx0XHRcdFx0XHRcdGhhbmRsZXJzLmRlbGVnYXRlQ291bnQtLTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKCBzcGVjaWFsLnJlbW92ZSApIHtcblx0XHRcdFx0XHRcdHNwZWNpYWwucmVtb3ZlLmNhbGwoIGVsZW0sIGhhbmRsZU9iaiApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBSZW1vdmUgZ2VuZXJpYyBldmVudCBoYW5kbGVyIGlmIHdlIHJlbW92ZWQgc29tZXRoaW5nIGFuZCBubyBtb3JlIGhhbmRsZXJzIGV4aXN0XG5cdFx0XHQvLyAoYXZvaWRzIHBvdGVudGlhbCBmb3IgZW5kbGVzcyByZWN1cnNpb24gZHVyaW5nIHJlbW92YWwgb2Ygc3BlY2lhbCBldmVudCBoYW5kbGVycylcblx0XHRcdGlmICggb3JpZ0NvdW50ICYmICFoYW5kbGVycy5sZW5ndGggKSB7XG5cdFx0XHRcdGlmICggIXNwZWNpYWwudGVhcmRvd24gfHxcblx0XHRcdFx0XHRzcGVjaWFsLnRlYXJkb3duLmNhbGwoIGVsZW0sIG5hbWVzcGFjZXMsIGVsZW1EYXRhLmhhbmRsZSApID09PSBmYWxzZSApIHtcblxuXHRcdFx0XHRcdGpRdWVyeS5yZW1vdmVFdmVudCggZWxlbSwgdHlwZSwgZWxlbURhdGEuaGFuZGxlICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRkZWxldGUgZXZlbnRzWyB0eXBlIF07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gUmVtb3ZlIGRhdGEgYW5kIHRoZSBleHBhbmRvIGlmIGl0J3Mgbm8gbG9uZ2VyIHVzZWRcblx0XHRpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBldmVudHMgKSApIHtcblx0XHRcdGRhdGFQcml2LnJlbW92ZSggZWxlbSwgXCJoYW5kbGUgZXZlbnRzXCIgKTtcblx0XHR9XG5cdH0sXG5cblx0ZGlzcGF0Y2g6IGZ1bmN0aW9uKCBuYXRpdmVFdmVudCApIHtcblxuXHRcdHZhciBpLCBqLCByZXQsIG1hdGNoZWQsIGhhbmRsZU9iaiwgaGFuZGxlclF1ZXVlLFxuXHRcdFx0YXJncyA9IG5ldyBBcnJheSggYXJndW1lbnRzLmxlbmd0aCApLFxuXG5cdFx0XHQvLyBNYWtlIGEgd3JpdGFibGUgalF1ZXJ5LkV2ZW50IGZyb20gdGhlIG5hdGl2ZSBldmVudCBvYmplY3Rcblx0XHRcdGV2ZW50ID0galF1ZXJ5LmV2ZW50LmZpeCggbmF0aXZlRXZlbnQgKSxcblxuXHRcdFx0aGFuZGxlcnMgPSAoXG5cdFx0XHRcdGRhdGFQcml2LmdldCggdGhpcywgXCJldmVudHNcIiApIHx8IE9iamVjdC5jcmVhdGUoIG51bGwgKVxuXHRcdFx0KVsgZXZlbnQudHlwZSBdIHx8IFtdLFxuXHRcdFx0c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyBldmVudC50eXBlIF0gfHwge307XG5cblx0XHQvLyBVc2UgdGhlIGZpeC1lZCBqUXVlcnkuRXZlbnQgcmF0aGVyIHRoYW4gdGhlIChyZWFkLW9ubHkpIG5hdGl2ZSBldmVudFxuXHRcdGFyZ3NbIDAgXSA9IGV2ZW50O1xuXG5cdFx0Zm9yICggaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKysgKSB7XG5cdFx0XHRhcmdzWyBpIF0gPSBhcmd1bWVudHNbIGkgXTtcblx0XHR9XG5cblx0XHRldmVudC5kZWxlZ2F0ZVRhcmdldCA9IHRoaXM7XG5cblx0XHQvLyBDYWxsIHRoZSBwcmVEaXNwYXRjaCBob29rIGZvciB0aGUgbWFwcGVkIHR5cGUsIGFuZCBsZXQgaXQgYmFpbCBpZiBkZXNpcmVkXG5cdFx0aWYgKCBzcGVjaWFsLnByZURpc3BhdGNoICYmIHNwZWNpYWwucHJlRGlzcGF0Y2guY2FsbCggdGhpcywgZXZlbnQgKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZXJtaW5lIGhhbmRsZXJzXG5cdFx0aGFuZGxlclF1ZXVlID0galF1ZXJ5LmV2ZW50LmhhbmRsZXJzLmNhbGwoIHRoaXMsIGV2ZW50LCBoYW5kbGVycyApO1xuXG5cdFx0Ly8gUnVuIGRlbGVnYXRlcyBmaXJzdDsgdGhleSBtYXkgd2FudCB0byBzdG9wIHByb3BhZ2F0aW9uIGJlbmVhdGggdXNcblx0XHRpID0gMDtcblx0XHR3aGlsZSAoICggbWF0Y2hlZCA9IGhhbmRsZXJRdWV1ZVsgaSsrIF0gKSAmJiAhZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHtcblx0XHRcdGV2ZW50LmN1cnJlbnRUYXJnZXQgPSBtYXRjaGVkLmVsZW07XG5cblx0XHRcdGogPSAwO1xuXHRcdFx0d2hpbGUgKCAoIGhhbmRsZU9iaiA9IG1hdGNoZWQuaGFuZGxlcnNbIGorKyBdICkgJiZcblx0XHRcdFx0IWV2ZW50LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7XG5cblx0XHRcdFx0Ly8gSWYgdGhlIGV2ZW50IGlzIG5hbWVzcGFjZWQsIHRoZW4gZWFjaCBoYW5kbGVyIGlzIG9ubHkgaW52b2tlZCBpZiBpdCBpc1xuXHRcdFx0XHQvLyBzcGVjaWFsbHkgdW5pdmVyc2FsIG9yIGl0cyBuYW1lc3BhY2VzIGFyZSBhIHN1cGVyc2V0IG9mIHRoZSBldmVudCdzLlxuXHRcdFx0XHRpZiAoICFldmVudC5ybmFtZXNwYWNlIHx8IGhhbmRsZU9iai5uYW1lc3BhY2UgPT09IGZhbHNlIHx8XG5cdFx0XHRcdFx0ZXZlbnQucm5hbWVzcGFjZS50ZXN0KCBoYW5kbGVPYmoubmFtZXNwYWNlICkgKSB7XG5cblx0XHRcdFx0XHRldmVudC5oYW5kbGVPYmogPSBoYW5kbGVPYmo7XG5cdFx0XHRcdFx0ZXZlbnQuZGF0YSA9IGhhbmRsZU9iai5kYXRhO1xuXG5cdFx0XHRcdFx0cmV0ID0gKCAoIGpRdWVyeS5ldmVudC5zcGVjaWFsWyBoYW5kbGVPYmoub3JpZ1R5cGUgXSB8fCB7fSApLmhhbmRsZSB8fFxuXHRcdFx0XHRcdFx0aGFuZGxlT2JqLmhhbmRsZXIgKS5hcHBseSggbWF0Y2hlZC5lbGVtLCBhcmdzICk7XG5cblx0XHRcdFx0XHRpZiAoIHJldCAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdFx0aWYgKCAoIGV2ZW50LnJlc3VsdCA9IHJldCApID09PSBmYWxzZSApIHtcblx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0XHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsbCB0aGUgcG9zdERpc3BhdGNoIGhvb2sgZm9yIHRoZSBtYXBwZWQgdHlwZVxuXHRcdGlmICggc3BlY2lhbC5wb3N0RGlzcGF0Y2ggKSB7XG5cdFx0XHRzcGVjaWFsLnBvc3REaXNwYXRjaC5jYWxsKCB0aGlzLCBldmVudCApO1xuXHRcdH1cblxuXHRcdHJldHVybiBldmVudC5yZXN1bHQ7XG5cdH0sXG5cblx0aGFuZGxlcnM6IGZ1bmN0aW9uKCBldmVudCwgaGFuZGxlcnMgKSB7XG5cdFx0dmFyIGksIGhhbmRsZU9iaiwgc2VsLCBtYXRjaGVkSGFuZGxlcnMsIG1hdGNoZWRTZWxlY3RvcnMsXG5cdFx0XHRoYW5kbGVyUXVldWUgPSBbXSxcblx0XHRcdGRlbGVnYXRlQ291bnQgPSBoYW5kbGVycy5kZWxlZ2F0ZUNvdW50LFxuXHRcdFx0Y3VyID0gZXZlbnQudGFyZ2V0O1xuXG5cdFx0Ly8gRmluZCBkZWxlZ2F0ZSBoYW5kbGVyc1xuXHRcdGlmICggZGVsZWdhdGVDb3VudCAmJlxuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRSA8PTlcblx0XHRcdC8vIEJsYWNrLWhvbGUgU1ZHIDx1c2U+IGluc3RhbmNlIHRyZWVzICh0cmFjLTEzMTgwKVxuXHRcdFx0Y3VyLm5vZGVUeXBlICYmXG5cblx0XHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggPD00MlxuXHRcdFx0Ly8gU3VwcHJlc3Mgc3BlYy12aW9sYXRpbmcgY2xpY2tzIGluZGljYXRpbmcgYSBub24tcHJpbWFyeSBwb2ludGVyIGJ1dHRvbiAodHJhYy0zODYxKVxuXHRcdFx0Ly8gaHR0cHM6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnQtdHlwZS1jbGlja1xuXHRcdFx0Ly8gU3VwcG9ydDogSUUgMTEgb25seVxuXHRcdFx0Ly8gLi4uYnV0IG5vdCBhcnJvdyBrZXkgXCJjbGlja3NcIiBvZiByYWRpbyBpbnB1dHMsIHdoaWNoIGNhbiBoYXZlIGBidXR0b25gIC0xIChnaC0yMzQzKVxuXHRcdFx0ISggZXZlbnQudHlwZSA9PT0gXCJjbGlja1wiICYmIGV2ZW50LmJ1dHRvbiA+PSAxICkgKSB7XG5cblx0XHRcdGZvciAoIDsgY3VyICE9PSB0aGlzOyBjdXIgPSBjdXIucGFyZW50Tm9kZSB8fCB0aGlzICkge1xuXG5cdFx0XHRcdC8vIERvbid0IGNoZWNrIG5vbi1lbGVtZW50cyAoIzEzMjA4KVxuXHRcdFx0XHQvLyBEb24ndCBwcm9jZXNzIGNsaWNrcyBvbiBkaXNhYmxlZCBlbGVtZW50cyAoIzY5MTEsICM4MTY1LCAjMTEzODIsICMxMTc2NClcblx0XHRcdFx0aWYgKCBjdXIubm9kZVR5cGUgPT09IDEgJiYgISggZXZlbnQudHlwZSA9PT0gXCJjbGlja1wiICYmIGN1ci5kaXNhYmxlZCA9PT0gdHJ1ZSApICkge1xuXHRcdFx0XHRcdG1hdGNoZWRIYW5kbGVycyA9IFtdO1xuXHRcdFx0XHRcdG1hdGNoZWRTZWxlY3RvcnMgPSB7fTtcblx0XHRcdFx0XHRmb3IgKCBpID0gMDsgaSA8IGRlbGVnYXRlQ291bnQ7IGkrKyApIHtcblx0XHRcdFx0XHRcdGhhbmRsZU9iaiA9IGhhbmRsZXJzWyBpIF07XG5cblx0XHRcdFx0XHRcdC8vIERvbid0IGNvbmZsaWN0IHdpdGggT2JqZWN0LnByb3RvdHlwZSBwcm9wZXJ0aWVzICgjMTMyMDMpXG5cdFx0XHRcdFx0XHRzZWwgPSBoYW5kbGVPYmouc2VsZWN0b3IgKyBcIiBcIjtcblxuXHRcdFx0XHRcdFx0aWYgKCBtYXRjaGVkU2VsZWN0b3JzWyBzZWwgXSA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdFx0XHRtYXRjaGVkU2VsZWN0b3JzWyBzZWwgXSA9IGhhbmRsZU9iai5uZWVkc0NvbnRleHQgP1xuXHRcdFx0XHRcdFx0XHRcdGpRdWVyeSggc2VsLCB0aGlzICkuaW5kZXgoIGN1ciApID4gLTEgOlxuXHRcdFx0XHRcdFx0XHRcdGpRdWVyeS5maW5kKCBzZWwsIHRoaXMsIG51bGwsIFsgY3VyIF0gKS5sZW5ndGg7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAoIG1hdGNoZWRTZWxlY3RvcnNbIHNlbCBdICkge1xuXHRcdFx0XHRcdFx0XHRtYXRjaGVkSGFuZGxlcnMucHVzaCggaGFuZGxlT2JqICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICggbWF0Y2hlZEhhbmRsZXJzLmxlbmd0aCApIHtcblx0XHRcdFx0XHRcdGhhbmRsZXJRdWV1ZS5wdXNoKCB7IGVsZW06IGN1ciwgaGFuZGxlcnM6IG1hdGNoZWRIYW5kbGVycyB9ICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQWRkIHRoZSByZW1haW5pbmcgKGRpcmVjdGx5LWJvdW5kKSBoYW5kbGVyc1xuXHRcdGN1ciA9IHRoaXM7XG5cdFx0aWYgKCBkZWxlZ2F0ZUNvdW50IDwgaGFuZGxlcnMubGVuZ3RoICkge1xuXHRcdFx0aGFuZGxlclF1ZXVlLnB1c2goIHsgZWxlbTogY3VyLCBoYW5kbGVyczogaGFuZGxlcnMuc2xpY2UoIGRlbGVnYXRlQ291bnQgKSB9ICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGhhbmRsZXJRdWV1ZTtcblx0fSxcblxuXHRhZGRQcm9wOiBmdW5jdGlvbiggbmFtZSwgaG9vayApIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoIGpRdWVyeS5FdmVudC5wcm90b3R5cGUsIG5hbWUsIHtcblx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cblx0XHRcdGdldDogaXNGdW5jdGlvbiggaG9vayApID9cblx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0aWYgKCB0aGlzLm9yaWdpbmFsRXZlbnQgKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gaG9vayggdGhpcy5vcmlnaW5hbEV2ZW50ICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IDpcblx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0aWYgKCB0aGlzLm9yaWdpbmFsRXZlbnQgKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5vcmlnaW5hbEV2ZW50WyBuYW1lIF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXG5cdFx0XHRzZXQ6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KCB0aGlzLCBuYW1lLCB7XG5cdFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0XHRcdFx0d3JpdGFibGU6IHRydWUsXG5cdFx0XHRcdFx0dmFsdWU6IHZhbHVlXG5cdFx0XHRcdH0gKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0Zml4OiBmdW5jdGlvbiggb3JpZ2luYWxFdmVudCApIHtcblx0XHRyZXR1cm4gb3JpZ2luYWxFdmVudFsgalF1ZXJ5LmV4cGFuZG8gXSA/XG5cdFx0XHRvcmlnaW5hbEV2ZW50IDpcblx0XHRcdG5ldyBqUXVlcnkuRXZlbnQoIG9yaWdpbmFsRXZlbnQgKTtcblx0fSxcblxuXHRzcGVjaWFsOiB7XG5cdFx0bG9hZDoge1xuXG5cdFx0XHQvLyBQcmV2ZW50IHRyaWdnZXJlZCBpbWFnZS5sb2FkIGV2ZW50cyBmcm9tIGJ1YmJsaW5nIHRvIHdpbmRvdy5sb2FkXG5cdFx0XHRub0J1YmJsZTogdHJ1ZVxuXHRcdH0sXG5cdFx0Y2xpY2s6IHtcblxuXHRcdFx0Ly8gVXRpbGl6ZSBuYXRpdmUgZXZlbnQgdG8gZW5zdXJlIGNvcnJlY3Qgc3RhdGUgZm9yIGNoZWNrYWJsZSBpbnB1dHNcblx0XHRcdHNldHVwOiBmdW5jdGlvbiggZGF0YSApIHtcblxuXHRcdFx0XHQvLyBGb3IgbXV0dWFsIGNvbXByZXNzaWJpbGl0eSB3aXRoIF9kZWZhdWx0LCByZXBsYWNlIGB0aGlzYCBhY2Nlc3Mgd2l0aCBhIGxvY2FsIHZhci5cblx0XHRcdFx0Ly8gYHx8IGRhdGFgIGlzIGRlYWQgY29kZSBtZWFudCBvbmx5IHRvIHByZXNlcnZlIHRoZSB2YXJpYWJsZSB0aHJvdWdoIG1pbmlmaWNhdGlvbi5cblx0XHRcdFx0dmFyIGVsID0gdGhpcyB8fCBkYXRhO1xuXG5cdFx0XHRcdC8vIENsYWltIHRoZSBmaXJzdCBoYW5kbGVyXG5cdFx0XHRcdGlmICggcmNoZWNrYWJsZVR5cGUudGVzdCggZWwudHlwZSApICYmXG5cdFx0XHRcdFx0ZWwuY2xpY2sgJiYgbm9kZU5hbWUoIGVsLCBcImlucHV0XCIgKSApIHtcblxuXHRcdFx0XHRcdC8vIGRhdGFQcml2LnNldCggZWwsIFwiY2xpY2tcIiwgLi4uIClcblx0XHRcdFx0XHRsZXZlcmFnZU5hdGl2ZSggZWwsIFwiY2xpY2tcIiwgcmV0dXJuVHJ1ZSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gUmV0dXJuIGZhbHNlIHRvIGFsbG93IG5vcm1hbCBwcm9jZXNzaW5nIGluIHRoZSBjYWxsZXJcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fSxcblx0XHRcdHRyaWdnZXI6IGZ1bmN0aW9uKCBkYXRhICkge1xuXG5cdFx0XHRcdC8vIEZvciBtdXR1YWwgY29tcHJlc3NpYmlsaXR5IHdpdGggX2RlZmF1bHQsIHJlcGxhY2UgYHRoaXNgIGFjY2VzcyB3aXRoIGEgbG9jYWwgdmFyLlxuXHRcdFx0XHQvLyBgfHwgZGF0YWAgaXMgZGVhZCBjb2RlIG1lYW50IG9ubHkgdG8gcHJlc2VydmUgdGhlIHZhcmlhYmxlIHRocm91Z2ggbWluaWZpY2F0aW9uLlxuXHRcdFx0XHR2YXIgZWwgPSB0aGlzIHx8IGRhdGE7XG5cblx0XHRcdFx0Ly8gRm9yY2Ugc2V0dXAgYmVmb3JlIHRyaWdnZXJpbmcgYSBjbGlja1xuXHRcdFx0XHRpZiAoIHJjaGVja2FibGVUeXBlLnRlc3QoIGVsLnR5cGUgKSAmJlxuXHRcdFx0XHRcdGVsLmNsaWNrICYmIG5vZGVOYW1lKCBlbCwgXCJpbnB1dFwiICkgKSB7XG5cblx0XHRcdFx0XHRsZXZlcmFnZU5hdGl2ZSggZWwsIFwiY2xpY2tcIiApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gUmV0dXJuIG5vbi1mYWxzZSB0byBhbGxvdyBub3JtYWwgZXZlbnQtcGF0aCBwcm9wYWdhdGlvblxuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH0sXG5cblx0XHRcdC8vIEZvciBjcm9zcy1icm93c2VyIGNvbnNpc3RlbmN5LCBzdXBwcmVzcyBuYXRpdmUgLmNsaWNrKCkgb24gbGlua3Ncblx0XHRcdC8vIEFsc28gcHJldmVudCBpdCBpZiB3ZSdyZSBjdXJyZW50bHkgaW5zaWRlIGEgbGV2ZXJhZ2VkIG5hdGl2ZS1ldmVudCBzdGFja1xuXHRcdFx0X2RlZmF1bHQ6IGZ1bmN0aW9uKCBldmVudCApIHtcblx0XHRcdFx0dmFyIHRhcmdldCA9IGV2ZW50LnRhcmdldDtcblx0XHRcdFx0cmV0dXJuIHJjaGVja2FibGVUeXBlLnRlc3QoIHRhcmdldC50eXBlICkgJiZcblx0XHRcdFx0XHR0YXJnZXQuY2xpY2sgJiYgbm9kZU5hbWUoIHRhcmdldCwgXCJpbnB1dFwiICkgJiZcblx0XHRcdFx0XHRkYXRhUHJpdi5nZXQoIHRhcmdldCwgXCJjbGlja1wiICkgfHxcblx0XHRcdFx0XHRub2RlTmFtZSggdGFyZ2V0LCBcImFcIiApO1xuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHRiZWZvcmV1bmxvYWQ6IHtcblx0XHRcdHBvc3REaXNwYXRjaDogZnVuY3Rpb24oIGV2ZW50ICkge1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggMjArXG5cdFx0XHRcdC8vIEZpcmVmb3ggZG9lc24ndCBhbGVydCBpZiB0aGUgcmV0dXJuVmFsdWUgZmllbGQgaXMgbm90IHNldC5cblx0XHRcdFx0aWYgKCBldmVudC5yZXN1bHQgIT09IHVuZGVmaW5lZCAmJiBldmVudC5vcmlnaW5hbEV2ZW50ICkge1xuXHRcdFx0XHRcdGV2ZW50Lm9yaWdpbmFsRXZlbnQucmV0dXJuVmFsdWUgPSBldmVudC5yZXN1bHQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn07XG5cbi8vIEVuc3VyZSB0aGUgcHJlc2VuY2Ugb2YgYW4gZXZlbnQgbGlzdGVuZXIgdGhhdCBoYW5kbGVzIG1hbnVhbGx5LXRyaWdnZXJlZFxuLy8gc3ludGhldGljIGV2ZW50cyBieSBpbnRlcnJ1cHRpbmcgcHJvZ3Jlc3MgdW50aWwgcmVpbnZva2VkIGluIHJlc3BvbnNlIHRvXG4vLyAqbmF0aXZlKiBldmVudHMgdGhhdCBpdCBmaXJlcyBkaXJlY3RseSwgZW5zdXJpbmcgdGhhdCBzdGF0ZSBjaGFuZ2VzIGhhdmVcbi8vIGFscmVhZHkgb2NjdXJyZWQgYmVmb3JlIG90aGVyIGxpc3RlbmVycyBhcmUgaW52b2tlZC5cbmZ1bmN0aW9uIGxldmVyYWdlTmF0aXZlKCBlbCwgdHlwZSwgZXhwZWN0U3luYyApIHtcblxuXHQvLyBNaXNzaW5nIGV4cGVjdFN5bmMgaW5kaWNhdGVzIGEgdHJpZ2dlciBjYWxsLCB3aGljaCBtdXN0IGZvcmNlIHNldHVwIHRocm91Z2ggalF1ZXJ5LmV2ZW50LmFkZFxuXHRpZiAoICFleHBlY3RTeW5jICkge1xuXHRcdGlmICggZGF0YVByaXYuZ2V0KCBlbCwgdHlwZSApID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRqUXVlcnkuZXZlbnQuYWRkKCBlbCwgdHlwZSwgcmV0dXJuVHJ1ZSApO1xuXHRcdH1cblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyBSZWdpc3RlciB0aGUgY29udHJvbGxlciBhcyBhIHNwZWNpYWwgdW5pdmVyc2FsIGhhbmRsZXIgZm9yIGFsbCBldmVudCBuYW1lc3BhY2VzXG5cdGRhdGFQcml2LnNldCggZWwsIHR5cGUsIGZhbHNlICk7XG5cdGpRdWVyeS5ldmVudC5hZGQoIGVsLCB0eXBlLCB7XG5cdFx0bmFtZXNwYWNlOiBmYWxzZSxcblx0XHRoYW5kbGVyOiBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0XHR2YXIgbm90QXN5bmMsIHJlc3VsdCxcblx0XHRcdFx0c2F2ZWQgPSBkYXRhUHJpdi5nZXQoIHRoaXMsIHR5cGUgKTtcblxuXHRcdFx0aWYgKCAoIGV2ZW50LmlzVHJpZ2dlciAmIDEgKSAmJiB0aGlzWyB0eXBlIF0gKSB7XG5cblx0XHRcdFx0Ly8gSW50ZXJydXB0IHByb2Nlc3Npbmcgb2YgdGhlIG91dGVyIHN5bnRoZXRpYyAudHJpZ2dlcigpZWQgZXZlbnRcblx0XHRcdFx0Ly8gU2F2ZWQgZGF0YSBzaG91bGQgYmUgZmFsc2UgaW4gc3VjaCBjYXNlcywgYnV0IG1pZ2h0IGJlIGEgbGVmdG92ZXIgY2FwdHVyZSBvYmplY3Rcblx0XHRcdFx0Ly8gZnJvbSBhbiBhc3luYyBuYXRpdmUgaGFuZGxlciAoZ2gtNDM1MClcblx0XHRcdFx0aWYgKCAhc2F2ZWQubGVuZ3RoICkge1xuXG5cdFx0XHRcdFx0Ly8gU3RvcmUgYXJndW1lbnRzIGZvciB1c2Ugd2hlbiBoYW5kbGluZyB0aGUgaW5uZXIgbmF0aXZlIGV2ZW50XG5cdFx0XHRcdFx0Ly8gVGhlcmUgd2lsbCBhbHdheXMgYmUgYXQgbGVhc3Qgb25lIGFyZ3VtZW50IChhbiBldmVudCBvYmplY3QpLCBzbyB0aGlzIGFycmF5XG5cdFx0XHRcdFx0Ly8gd2lsbCBub3QgYmUgY29uZnVzZWQgd2l0aCBhIGxlZnRvdmVyIGNhcHR1cmUgb2JqZWN0LlxuXHRcdFx0XHRcdHNhdmVkID0gc2xpY2UuY2FsbCggYXJndW1lbnRzICk7XG5cdFx0XHRcdFx0ZGF0YVByaXYuc2V0KCB0aGlzLCB0eXBlLCBzYXZlZCApO1xuXG5cdFx0XHRcdFx0Ly8gVHJpZ2dlciB0aGUgbmF0aXZlIGV2ZW50IGFuZCBjYXB0dXJlIGl0cyByZXN1bHRcblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA8PTkgLSAxMStcblx0XHRcdFx0XHQvLyBmb2N1cygpIGFuZCBibHVyKCkgYXJlIGFzeW5jaHJvbm91c1xuXHRcdFx0XHRcdG5vdEFzeW5jID0gZXhwZWN0U3luYyggdGhpcywgdHlwZSApO1xuXHRcdFx0XHRcdHRoaXNbIHR5cGUgXSgpO1xuXHRcdFx0XHRcdHJlc3VsdCA9IGRhdGFQcml2LmdldCggdGhpcywgdHlwZSApO1xuXHRcdFx0XHRcdGlmICggc2F2ZWQgIT09IHJlc3VsdCB8fCBub3RBc3luYyApIHtcblx0XHRcdFx0XHRcdGRhdGFQcml2LnNldCggdGhpcywgdHlwZSwgZmFsc2UgKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0cmVzdWx0ID0ge307XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICggc2F2ZWQgIT09IHJlc3VsdCApIHtcblxuXHRcdFx0XHRcdFx0Ly8gQ2FuY2VsIHRoZSBvdXRlciBzeW50aGV0aWMgZXZlbnRcblx0XHRcdFx0XHRcdGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuXHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogQ2hyb21lIDg2K1xuXHRcdFx0XHRcdFx0Ly8gSW4gQ2hyb21lLCBpZiBhbiBlbGVtZW50IGhhdmluZyBhIGZvY3Vzb3V0IGhhbmRsZXIgaXMgYmx1cnJlZCBieVxuXHRcdFx0XHRcdFx0Ly8gY2xpY2tpbmcgb3V0c2lkZSBvZiBpdCwgaXQgaW52b2tlcyB0aGUgaGFuZGxlciBzeW5jaHJvbm91c2x5LiBJZlxuXHRcdFx0XHRcdFx0Ly8gdGhhdCBoYW5kbGVyIGNhbGxzIGAucmVtb3ZlKClgIG9uIHRoZSBlbGVtZW50LCB0aGUgZGF0YSBpcyBjbGVhcmVkLFxuXHRcdFx0XHRcdFx0Ly8gbGVhdmluZyBgcmVzdWx0YCB1bmRlZmluZWQuIFdlIG5lZWQgdG8gZ3VhcmQgYWdhaW5zdCB0aGlzLlxuXHRcdFx0XHRcdFx0cmV0dXJuIHJlc3VsdCAmJiByZXN1bHQudmFsdWU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIElmIHRoaXMgaXMgYW4gaW5uZXIgc3ludGhldGljIGV2ZW50IGZvciBhbiBldmVudCB3aXRoIGEgYnViYmxpbmcgc3Vycm9nYXRlXG5cdFx0XHRcdC8vIChmb2N1cyBvciBibHVyKSwgYXNzdW1lIHRoYXQgdGhlIHN1cnJvZ2F0ZSBhbHJlYWR5IHByb3BhZ2F0ZWQgZnJvbSB0cmlnZ2VyaW5nIHRoZVxuXHRcdFx0XHQvLyBuYXRpdmUgZXZlbnQgYW5kIHByZXZlbnQgdGhhdCBmcm9tIGhhcHBlbmluZyBhZ2FpbiBoZXJlLlxuXHRcdFx0XHQvLyBUaGlzIHRlY2huaWNhbGx5IGdldHMgdGhlIG9yZGVyaW5nIHdyb25nIHcuci50LiB0byBgLnRyaWdnZXIoKWAgKGluIHdoaWNoIHRoZVxuXHRcdFx0XHQvLyBidWJibGluZyBzdXJyb2dhdGUgcHJvcGFnYXRlcyAqYWZ0ZXIqIHRoZSBub24tYnViYmxpbmcgYmFzZSksIGJ1dCB0aGF0IHNlZW1zXG5cdFx0XHRcdC8vIGxlc3MgYmFkIHRoYW4gZHVwbGljYXRpb24uXG5cdFx0XHRcdH0gZWxzZSBpZiAoICggalF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fSApLmRlbGVnYXRlVHlwZSApIHtcblx0XHRcdFx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRcdFx0fVxuXG5cdFx0XHQvLyBJZiB0aGlzIGlzIGEgbmF0aXZlIGV2ZW50IHRyaWdnZXJlZCBhYm92ZSwgZXZlcnl0aGluZyBpcyBub3cgaW4gb3JkZXJcblx0XHRcdC8vIEZpcmUgYW4gaW5uZXIgc3ludGhldGljIGV2ZW50IHdpdGggdGhlIG9yaWdpbmFsIGFyZ3VtZW50c1xuXHRcdFx0fSBlbHNlIGlmICggc2F2ZWQubGVuZ3RoICkge1xuXG5cdFx0XHRcdC8vIC4uLmFuZCBjYXB0dXJlIHRoZSByZXN1bHRcblx0XHRcdFx0ZGF0YVByaXYuc2V0KCB0aGlzLCB0eXBlLCB7XG5cdFx0XHRcdFx0dmFsdWU6IGpRdWVyeS5ldmVudC50cmlnZ2VyKFxuXG5cdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA8PTkgLSAxMStcblx0XHRcdFx0XHRcdC8vIEV4dGVuZCB3aXRoIHRoZSBwcm90b3R5cGUgdG8gcmVzZXQgdGhlIGFib3ZlIHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG5cdFx0XHRcdFx0XHRqUXVlcnkuZXh0ZW5kKCBzYXZlZFsgMCBdLCBqUXVlcnkuRXZlbnQucHJvdG90eXBlICksXG5cdFx0XHRcdFx0XHRzYXZlZC5zbGljZSggMSApLFxuXHRcdFx0XHRcdFx0dGhpc1xuXHRcdFx0XHRcdClcblx0XHRcdFx0fSApO1xuXG5cdFx0XHRcdC8vIEFib3J0IGhhbmRsaW5nIG9mIHRoZSBuYXRpdmUgZXZlbnRcblx0XHRcdFx0ZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9ICk7XG59XG5cbmpRdWVyeS5yZW1vdmVFdmVudCA9IGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCBoYW5kbGUgKSB7XG5cblx0Ly8gVGhpcyBcImlmXCIgaXMgbmVlZGVkIGZvciBwbGFpbiBvYmplY3RzXG5cdGlmICggZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyICkge1xuXHRcdGVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lciggdHlwZSwgaGFuZGxlICk7XG5cdH1cbn07XG5cbmpRdWVyeS5FdmVudCA9IGZ1bmN0aW9uKCBzcmMsIHByb3BzICkge1xuXG5cdC8vIEFsbG93IGluc3RhbnRpYXRpb24gd2l0aG91dCB0aGUgJ25ldycga2V5d29yZFxuXHRpZiAoICEoIHRoaXMgaW5zdGFuY2VvZiBqUXVlcnkuRXZlbnQgKSApIHtcblx0XHRyZXR1cm4gbmV3IGpRdWVyeS5FdmVudCggc3JjLCBwcm9wcyApO1xuXHR9XG5cblx0Ly8gRXZlbnQgb2JqZWN0XG5cdGlmICggc3JjICYmIHNyYy50eXBlICkge1xuXHRcdHRoaXMub3JpZ2luYWxFdmVudCA9IHNyYztcblx0XHR0aGlzLnR5cGUgPSBzcmMudHlwZTtcblxuXHRcdC8vIEV2ZW50cyBidWJibGluZyB1cCB0aGUgZG9jdW1lbnQgbWF5IGhhdmUgYmVlbiBtYXJrZWQgYXMgcHJldmVudGVkXG5cdFx0Ly8gYnkgYSBoYW5kbGVyIGxvd2VyIGRvd24gdGhlIHRyZWU7IHJlZmxlY3QgdGhlIGNvcnJlY3QgdmFsdWUuXG5cdFx0dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQgPSBzcmMuZGVmYXVsdFByZXZlbnRlZCB8fFxuXHRcdFx0XHRzcmMuZGVmYXVsdFByZXZlbnRlZCA9PT0gdW5kZWZpbmVkICYmXG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTIuMyBvbmx5XG5cdFx0XHRcdHNyYy5yZXR1cm5WYWx1ZSA9PT0gZmFsc2UgP1xuXHRcdFx0cmV0dXJuVHJ1ZSA6XG5cdFx0XHRyZXR1cm5GYWxzZTtcblxuXHRcdC8vIENyZWF0ZSB0YXJnZXQgcHJvcGVydGllc1xuXHRcdC8vIFN1cHBvcnQ6IFNhZmFyaSA8PTYgLSA3IG9ubHlcblx0XHQvLyBUYXJnZXQgc2hvdWxkIG5vdCBiZSBhIHRleHQgbm9kZSAoIzUwNCwgIzEzMTQzKVxuXHRcdHRoaXMudGFyZ2V0ID0gKCBzcmMudGFyZ2V0ICYmIHNyYy50YXJnZXQubm9kZVR5cGUgPT09IDMgKSA/XG5cdFx0XHRzcmMudGFyZ2V0LnBhcmVudE5vZGUgOlxuXHRcdFx0c3JjLnRhcmdldDtcblxuXHRcdHRoaXMuY3VycmVudFRhcmdldCA9IHNyYy5jdXJyZW50VGFyZ2V0O1xuXHRcdHRoaXMucmVsYXRlZFRhcmdldCA9IHNyYy5yZWxhdGVkVGFyZ2V0O1xuXG5cdC8vIEV2ZW50IHR5cGVcblx0fSBlbHNlIHtcblx0XHR0aGlzLnR5cGUgPSBzcmM7XG5cdH1cblxuXHQvLyBQdXQgZXhwbGljaXRseSBwcm92aWRlZCBwcm9wZXJ0aWVzIG9udG8gdGhlIGV2ZW50IG9iamVjdFxuXHRpZiAoIHByb3BzICkge1xuXHRcdGpRdWVyeS5leHRlbmQoIHRoaXMsIHByb3BzICk7XG5cdH1cblxuXHQvLyBDcmVhdGUgYSB0aW1lc3RhbXAgaWYgaW5jb21pbmcgZXZlbnQgZG9lc24ndCBoYXZlIG9uZVxuXHR0aGlzLnRpbWVTdGFtcCA9IHNyYyAmJiBzcmMudGltZVN0YW1wIHx8IERhdGUubm93KCk7XG5cblx0Ly8gTWFyayBpdCBhcyBmaXhlZFxuXHR0aGlzWyBqUXVlcnkuZXhwYW5kbyBdID0gdHJ1ZTtcbn07XG5cbi8vIGpRdWVyeS5FdmVudCBpcyBiYXNlZCBvbiBET00zIEV2ZW50cyBhcyBzcGVjaWZpZWQgYnkgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgQmluZGluZ1xuLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSLzIwMDMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMDMwMzMxL2VjbWEtc2NyaXB0LWJpbmRpbmcuaHRtbFxualF1ZXJ5LkV2ZW50LnByb3RvdHlwZSA9IHtcblx0Y29uc3RydWN0b3I6IGpRdWVyeS5FdmVudCxcblx0aXNEZWZhdWx0UHJldmVudGVkOiByZXR1cm5GYWxzZSxcblx0aXNQcm9wYWdhdGlvblN0b3BwZWQ6IHJldHVybkZhbHNlLFxuXHRpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UsXG5cdGlzU2ltdWxhdGVkOiBmYWxzZSxcblxuXHRwcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7XG5cblx0XHR0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IHJldHVyblRydWU7XG5cblx0XHRpZiAoIGUgJiYgIXRoaXMuaXNTaW11bGF0ZWQgKSB7XG5cdFx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fVxuXHR9LFxuXHRzdG9wUHJvcGFnYXRpb246IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBlID0gdGhpcy5vcmlnaW5hbEV2ZW50O1xuXG5cdFx0dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7XG5cblx0XHRpZiAoIGUgJiYgIXRoaXMuaXNTaW11bGF0ZWQgKSB7XG5cdFx0XHRlLnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdH1cblx0fSxcblx0c3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgZSA9IHRoaXMub3JpZ2luYWxFdmVudDtcblxuXHRcdHRoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQgPSByZXR1cm5UcnVlO1xuXG5cdFx0aWYgKCBlICYmICF0aGlzLmlzU2ltdWxhdGVkICkge1xuXHRcdFx0ZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblx0XHR9XG5cblx0XHR0aGlzLnN0b3BQcm9wYWdhdGlvbigpO1xuXHR9XG59O1xuXG4vLyBJbmNsdWRlcyBhbGwgY29tbW9uIGV2ZW50IHByb3BzIGluY2x1ZGluZyBLZXlFdmVudCBhbmQgTW91c2VFdmVudCBzcGVjaWZpYyBwcm9wc1xualF1ZXJ5LmVhY2goIHtcblx0YWx0S2V5OiB0cnVlLFxuXHRidWJibGVzOiB0cnVlLFxuXHRjYW5jZWxhYmxlOiB0cnVlLFxuXHRjaGFuZ2VkVG91Y2hlczogdHJ1ZSxcblx0Y3RybEtleTogdHJ1ZSxcblx0ZGV0YWlsOiB0cnVlLFxuXHRldmVudFBoYXNlOiB0cnVlLFxuXHRtZXRhS2V5OiB0cnVlLFxuXHRwYWdlWDogdHJ1ZSxcblx0cGFnZVk6IHRydWUsXG5cdHNoaWZ0S2V5OiB0cnVlLFxuXHR2aWV3OiB0cnVlLFxuXHRcImNoYXJcIjogdHJ1ZSxcblx0Y29kZTogdHJ1ZSxcblx0Y2hhckNvZGU6IHRydWUsXG5cdGtleTogdHJ1ZSxcblx0a2V5Q29kZTogdHJ1ZSxcblx0YnV0dG9uOiB0cnVlLFxuXHRidXR0b25zOiB0cnVlLFxuXHRjbGllbnRYOiB0cnVlLFxuXHRjbGllbnRZOiB0cnVlLFxuXHRvZmZzZXRYOiB0cnVlLFxuXHRvZmZzZXRZOiB0cnVlLFxuXHRwb2ludGVySWQ6IHRydWUsXG5cdHBvaW50ZXJUeXBlOiB0cnVlLFxuXHRzY3JlZW5YOiB0cnVlLFxuXHRzY3JlZW5ZOiB0cnVlLFxuXHR0YXJnZXRUb3VjaGVzOiB0cnVlLFxuXHR0b0VsZW1lbnQ6IHRydWUsXG5cdHRvdWNoZXM6IHRydWUsXG5cdHdoaWNoOiB0cnVlXG59LCBqUXVlcnkuZXZlbnQuYWRkUHJvcCApO1xuXG5qUXVlcnkuZWFjaCggeyBmb2N1czogXCJmb2N1c2luXCIsIGJsdXI6IFwiZm9jdXNvdXRcIiB9LCBmdW5jdGlvbiggdHlwZSwgZGVsZWdhdGVUeXBlICkge1xuXHRqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdID0ge1xuXG5cdFx0Ly8gVXRpbGl6ZSBuYXRpdmUgZXZlbnQgaWYgcG9zc2libGUgc28gYmx1ci9mb2N1cyBzZXF1ZW5jZSBpcyBjb3JyZWN0XG5cdFx0c2V0dXA6IGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBDbGFpbSB0aGUgZmlyc3QgaGFuZGxlclxuXHRcdFx0Ly8gZGF0YVByaXYuc2V0KCB0aGlzLCBcImZvY3VzXCIsIC4uLiApXG5cdFx0XHQvLyBkYXRhUHJpdi5zZXQoIHRoaXMsIFwiYmx1clwiLCAuLi4gKVxuXHRcdFx0bGV2ZXJhZ2VOYXRpdmUoIHRoaXMsIHR5cGUsIGV4cGVjdFN5bmMgKTtcblxuXHRcdFx0Ly8gUmV0dXJuIGZhbHNlIHRvIGFsbG93IG5vcm1hbCBwcm9jZXNzaW5nIGluIHRoZSBjYWxsZXJcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9LFxuXHRcdHRyaWdnZXI6IGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBGb3JjZSBzZXR1cCBiZWZvcmUgdHJpZ2dlclxuXHRcdFx0bGV2ZXJhZ2VOYXRpdmUoIHRoaXMsIHR5cGUgKTtcblxuXHRcdFx0Ly8gUmV0dXJuIG5vbi1mYWxzZSB0byBhbGxvdyBub3JtYWwgZXZlbnQtcGF0aCBwcm9wYWdhdGlvblxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSxcblxuXHRcdC8vIFN1cHByZXNzIG5hdGl2ZSBmb2N1cyBvciBibHVyIGFzIGl0J3MgYWxyZWFkeSBiZWluZyBmaXJlZFxuXHRcdC8vIGluIGxldmVyYWdlTmF0aXZlLlxuXHRcdF9kZWZhdWx0OiBmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH0sXG5cblx0XHRkZWxlZ2F0ZVR5cGU6IGRlbGVnYXRlVHlwZVxuXHR9O1xufSApO1xuXG4vLyBDcmVhdGUgbW91c2VlbnRlci9sZWF2ZSBldmVudHMgdXNpbmcgbW91c2VvdmVyL291dCBhbmQgZXZlbnQtdGltZSBjaGVja3Ncbi8vIHNvIHRoYXQgZXZlbnQgZGVsZWdhdGlvbiB3b3JrcyBpbiBqUXVlcnkuXG4vLyBEbyB0aGUgc2FtZSBmb3IgcG9pbnRlcmVudGVyL3BvaW50ZXJsZWF2ZSBhbmQgcG9pbnRlcm92ZXIvcG9pbnRlcm91dFxuLy9cbi8vIFN1cHBvcnQ6IFNhZmFyaSA3IG9ubHlcbi8vIFNhZmFyaSBzZW5kcyBtb3VzZWVudGVyIHRvbyBvZnRlbjsgc2VlOlxuLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NDcwMjU4XG4vLyBmb3IgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBidWcgKGl0IGV4aXN0ZWQgaW4gb2xkZXIgQ2hyb21lIHZlcnNpb25zIGFzIHdlbGwpLlxualF1ZXJ5LmVhY2goIHtcblx0bW91c2VlbnRlcjogXCJtb3VzZW92ZXJcIixcblx0bW91c2VsZWF2ZTogXCJtb3VzZW91dFwiLFxuXHRwb2ludGVyZW50ZXI6IFwicG9pbnRlcm92ZXJcIixcblx0cG9pbnRlcmxlYXZlOiBcInBvaW50ZXJvdXRcIlxufSwgZnVuY3Rpb24oIG9yaWcsIGZpeCApIHtcblx0alF1ZXJ5LmV2ZW50LnNwZWNpYWxbIG9yaWcgXSA9IHtcblx0XHRkZWxlZ2F0ZVR5cGU6IGZpeCxcblx0XHRiaW5kVHlwZTogZml4LFxuXG5cdFx0aGFuZGxlOiBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0XHR2YXIgcmV0LFxuXHRcdFx0XHR0YXJnZXQgPSB0aGlzLFxuXHRcdFx0XHRyZWxhdGVkID0gZXZlbnQucmVsYXRlZFRhcmdldCxcblx0XHRcdFx0aGFuZGxlT2JqID0gZXZlbnQuaGFuZGxlT2JqO1xuXG5cdFx0XHQvLyBGb3IgbW91c2VlbnRlci9sZWF2ZSBjYWxsIHRoZSBoYW5kbGVyIGlmIHJlbGF0ZWQgaXMgb3V0c2lkZSB0aGUgdGFyZ2V0LlxuXHRcdFx0Ly8gTkI6IE5vIHJlbGF0ZWRUYXJnZXQgaWYgdGhlIG1vdXNlIGxlZnQvZW50ZXJlZCB0aGUgYnJvd3NlciB3aW5kb3dcblx0XHRcdGlmICggIXJlbGF0ZWQgfHwgKCByZWxhdGVkICE9PSB0YXJnZXQgJiYgIWpRdWVyeS5jb250YWlucyggdGFyZ2V0LCByZWxhdGVkICkgKSApIHtcblx0XHRcdFx0ZXZlbnQudHlwZSA9IGhhbmRsZU9iai5vcmlnVHlwZTtcblx0XHRcdFx0cmV0ID0gaGFuZGxlT2JqLmhhbmRsZXIuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRldmVudC50eXBlID0gZml4O1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHJldDtcblx0XHR9XG5cdH07XG59ICk7XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblxuXHRvbjogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIG9uKCB0aGlzLCB0eXBlcywgc2VsZWN0b3IsIGRhdGEsIGZuICk7XG5cdH0sXG5cdG9uZTogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIG9uKCB0aGlzLCB0eXBlcywgc2VsZWN0b3IsIGRhdGEsIGZuLCAxICk7XG5cdH0sXG5cdG9mZjogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZm4gKSB7XG5cdFx0dmFyIGhhbmRsZU9iaiwgdHlwZTtcblx0XHRpZiAoIHR5cGVzICYmIHR5cGVzLnByZXZlbnREZWZhdWx0ICYmIHR5cGVzLmhhbmRsZU9iaiApIHtcblxuXHRcdFx0Ly8gKCBldmVudCApICBkaXNwYXRjaGVkIGpRdWVyeS5FdmVudFxuXHRcdFx0aGFuZGxlT2JqID0gdHlwZXMuaGFuZGxlT2JqO1xuXHRcdFx0alF1ZXJ5KCB0eXBlcy5kZWxlZ2F0ZVRhcmdldCApLm9mZihcblx0XHRcdFx0aGFuZGxlT2JqLm5hbWVzcGFjZSA/XG5cdFx0XHRcdFx0aGFuZGxlT2JqLm9yaWdUeXBlICsgXCIuXCIgKyBoYW5kbGVPYmoubmFtZXNwYWNlIDpcblx0XHRcdFx0XHRoYW5kbGVPYmoub3JpZ1R5cGUsXG5cdFx0XHRcdGhhbmRsZU9iai5zZWxlY3Rvcixcblx0XHRcdFx0aGFuZGxlT2JqLmhhbmRsZXJcblx0XHRcdCk7XG5cdFx0XHRyZXR1cm4gdGhpcztcblx0XHR9XG5cdFx0aWYgKCB0eXBlb2YgdHlwZXMgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHRcdC8vICggdHlwZXMtb2JqZWN0IFssIHNlbGVjdG9yXSApXG5cdFx0XHRmb3IgKCB0eXBlIGluIHR5cGVzICkge1xuXHRcdFx0XHR0aGlzLm9mZiggdHlwZSwgc2VsZWN0b3IsIHR5cGVzWyB0eXBlIF0gKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblx0XHRpZiAoIHNlbGVjdG9yID09PSBmYWxzZSB8fCB0eXBlb2Ygc2VsZWN0b3IgPT09IFwiZnVuY3Rpb25cIiApIHtcblxuXHRcdFx0Ly8gKCB0eXBlcyBbLCBmbl0gKVxuXHRcdFx0Zm4gPSBzZWxlY3Rvcjtcblx0XHRcdHNlbGVjdG9yID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRpZiAoIGZuID09PSBmYWxzZSApIHtcblx0XHRcdGZuID0gcmV0dXJuRmFsc2U7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnJlbW92ZSggdGhpcywgdHlwZXMsIGZuLCBzZWxlY3RvciApO1xuXHRcdH0gKTtcblx0fVxufSApO1xuXG5cbnZhclxuXG5cdC8vIFN1cHBvcnQ6IElFIDw9MTAgLSAxMSwgRWRnZSAxMiAtIDEzIG9ubHlcblx0Ly8gSW4gSUUvRWRnZSB1c2luZyByZWdleCBncm91cHMgaGVyZSBjYXVzZXMgc2V2ZXJlIHNsb3dkb3ducy5cblx0Ly8gU2VlIGh0dHBzOi8vY29ubmVjdC5taWNyb3NvZnQuY29tL0lFL2ZlZWRiYWNrL2RldGFpbHMvMTczNjUxMi9cblx0cm5vSW5uZXJodG1sID0gLzxzY3JpcHR8PHN0eWxlfDxsaW5rL2ksXG5cblx0Ly8gY2hlY2tlZD1cImNoZWNrZWRcIiBvciBjaGVja2VkXG5cdHJjaGVja2VkID0gL2NoZWNrZWRcXHMqKD86W149XXw9XFxzKi5jaGVja2VkLikvaSxcblx0cmNsZWFuU2NyaXB0ID0gL15cXHMqPCEoPzpcXFtDREFUQVxcW3wtLSl8KD86XFxdXFxdfC0tKT5cXHMqJC9nO1xuXG4vLyBQcmVmZXIgYSB0Ym9keSBvdmVyIGl0cyBwYXJlbnQgdGFibGUgZm9yIGNvbnRhaW5pbmcgbmV3IHJvd3NcbmZ1bmN0aW9uIG1hbmlwdWxhdGlvblRhcmdldCggZWxlbSwgY29udGVudCApIHtcblx0aWYgKCBub2RlTmFtZSggZWxlbSwgXCJ0YWJsZVwiICkgJiZcblx0XHRub2RlTmFtZSggY29udGVudC5ub2RlVHlwZSAhPT0gMTEgPyBjb250ZW50IDogY29udGVudC5maXJzdENoaWxkLCBcInRyXCIgKSApIHtcblxuXHRcdHJldHVybiBqUXVlcnkoIGVsZW0gKS5jaGlsZHJlbiggXCJ0Ym9keVwiIClbIDAgXSB8fCBlbGVtO1xuXHR9XG5cblx0cmV0dXJuIGVsZW07XG59XG5cbi8vIFJlcGxhY2UvcmVzdG9yZSB0aGUgdHlwZSBhdHRyaWJ1dGUgb2Ygc2NyaXB0IGVsZW1lbnRzIGZvciBzYWZlIERPTSBtYW5pcHVsYXRpb25cbmZ1bmN0aW9uIGRpc2FibGVTY3JpcHQoIGVsZW0gKSB7XG5cdGVsZW0udHlwZSA9ICggZWxlbS5nZXRBdHRyaWJ1dGUoIFwidHlwZVwiICkgIT09IG51bGwgKSArIFwiL1wiICsgZWxlbS50eXBlO1xuXHRyZXR1cm4gZWxlbTtcbn1cbmZ1bmN0aW9uIHJlc3RvcmVTY3JpcHQoIGVsZW0gKSB7XG5cdGlmICggKCBlbGVtLnR5cGUgfHwgXCJcIiApLnNsaWNlKCAwLCA1ICkgPT09IFwidHJ1ZS9cIiApIHtcblx0XHRlbGVtLnR5cGUgPSBlbGVtLnR5cGUuc2xpY2UoIDUgKTtcblx0fSBlbHNlIHtcblx0XHRlbGVtLnJlbW92ZUF0dHJpYnV0ZSggXCJ0eXBlXCIgKTtcblx0fVxuXG5cdHJldHVybiBlbGVtO1xufVxuXG5mdW5jdGlvbiBjbG9uZUNvcHlFdmVudCggc3JjLCBkZXN0ICkge1xuXHR2YXIgaSwgbCwgdHlwZSwgcGRhdGFPbGQsIHVkYXRhT2xkLCB1ZGF0YUN1ciwgZXZlbnRzO1xuXG5cdGlmICggZGVzdC5ub2RlVHlwZSAhPT0gMSApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyAxLiBDb3B5IHByaXZhdGUgZGF0YTogZXZlbnRzLCBoYW5kbGVycywgZXRjLlxuXHRpZiAoIGRhdGFQcml2Lmhhc0RhdGEoIHNyYyApICkge1xuXHRcdHBkYXRhT2xkID0gZGF0YVByaXYuZ2V0KCBzcmMgKTtcblx0XHRldmVudHMgPSBwZGF0YU9sZC5ldmVudHM7XG5cblx0XHRpZiAoIGV2ZW50cyApIHtcblx0XHRcdGRhdGFQcml2LnJlbW92ZSggZGVzdCwgXCJoYW5kbGUgZXZlbnRzXCIgKTtcblxuXHRcdFx0Zm9yICggdHlwZSBpbiBldmVudHMgKSB7XG5cdFx0XHRcdGZvciAoIGkgPSAwLCBsID0gZXZlbnRzWyB0eXBlIF0ubGVuZ3RoOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC5hZGQoIGRlc3QsIHR5cGUsIGV2ZW50c1sgdHlwZSBdWyBpIF0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIDIuIENvcHkgdXNlciBkYXRhXG5cdGlmICggZGF0YVVzZXIuaGFzRGF0YSggc3JjICkgKSB7XG5cdFx0dWRhdGFPbGQgPSBkYXRhVXNlci5hY2Nlc3MoIHNyYyApO1xuXHRcdHVkYXRhQ3VyID0galF1ZXJ5LmV4dGVuZCgge30sIHVkYXRhT2xkICk7XG5cblx0XHRkYXRhVXNlci5zZXQoIGRlc3QsIHVkYXRhQ3VyICk7XG5cdH1cbn1cblxuLy8gRml4IElFIGJ1Z3MsIHNlZSBzdXBwb3J0IHRlc3RzXG5mdW5jdGlvbiBmaXhJbnB1dCggc3JjLCBkZXN0ICkge1xuXHR2YXIgbm9kZU5hbWUgPSBkZXN0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cblx0Ly8gRmFpbHMgdG8gcGVyc2lzdCB0aGUgY2hlY2tlZCBzdGF0ZSBvZiBhIGNsb25lZCBjaGVja2JveCBvciByYWRpbyBidXR0b24uXG5cdGlmICggbm9kZU5hbWUgPT09IFwiaW5wdXRcIiAmJiByY2hlY2thYmxlVHlwZS50ZXN0KCBzcmMudHlwZSApICkge1xuXHRcdGRlc3QuY2hlY2tlZCA9IHNyYy5jaGVja2VkO1xuXG5cdC8vIEZhaWxzIHRvIHJldHVybiB0aGUgc2VsZWN0ZWQgb3B0aW9uIHRvIHRoZSBkZWZhdWx0IHNlbGVjdGVkIHN0YXRlIHdoZW4gY2xvbmluZyBvcHRpb25zXG5cdH0gZWxzZSBpZiAoIG5vZGVOYW1lID09PSBcImlucHV0XCIgfHwgbm9kZU5hbWUgPT09IFwidGV4dGFyZWFcIiApIHtcblx0XHRkZXN0LmRlZmF1bHRWYWx1ZSA9IHNyYy5kZWZhdWx0VmFsdWU7XG5cdH1cbn1cblxuZnVuY3Rpb24gZG9tTWFuaXAoIGNvbGxlY3Rpb24sIGFyZ3MsIGNhbGxiYWNrLCBpZ25vcmVkICkge1xuXG5cdC8vIEZsYXR0ZW4gYW55IG5lc3RlZCBhcnJheXNcblx0YXJncyA9IGZsYXQoIGFyZ3MgKTtcblxuXHR2YXIgZnJhZ21lbnQsIGZpcnN0LCBzY3JpcHRzLCBoYXNTY3JpcHRzLCBub2RlLCBkb2MsXG5cdFx0aSA9IDAsXG5cdFx0bCA9IGNvbGxlY3Rpb24ubGVuZ3RoLFxuXHRcdGlOb0Nsb25lID0gbCAtIDEsXG5cdFx0dmFsdWUgPSBhcmdzWyAwIF0sXG5cdFx0dmFsdWVJc0Z1bmN0aW9uID0gaXNGdW5jdGlvbiggdmFsdWUgKTtcblxuXHQvLyBXZSBjYW4ndCBjbG9uZU5vZGUgZnJhZ21lbnRzIHRoYXQgY29udGFpbiBjaGVja2VkLCBpbiBXZWJLaXRcblx0aWYgKCB2YWx1ZUlzRnVuY3Rpb24gfHxcblx0XHRcdCggbCA+IDEgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmXG5cdFx0XHRcdCFzdXBwb3J0LmNoZWNrQ2xvbmUgJiYgcmNoZWNrZWQudGVzdCggdmFsdWUgKSApICkge1xuXHRcdHJldHVybiBjb2xsZWN0aW9uLmVhY2goIGZ1bmN0aW9uKCBpbmRleCApIHtcblx0XHRcdHZhciBzZWxmID0gY29sbGVjdGlvbi5lcSggaW5kZXggKTtcblx0XHRcdGlmICggdmFsdWVJc0Z1bmN0aW9uICkge1xuXHRcdFx0XHRhcmdzWyAwIF0gPSB2YWx1ZS5jYWxsKCB0aGlzLCBpbmRleCwgc2VsZi5odG1sKCkgKTtcblx0XHRcdH1cblx0XHRcdGRvbU1hbmlwKCBzZWxmLCBhcmdzLCBjYWxsYmFjaywgaWdub3JlZCApO1xuXHRcdH0gKTtcblx0fVxuXG5cdGlmICggbCApIHtcblx0XHRmcmFnbWVudCA9IGJ1aWxkRnJhZ21lbnQoIGFyZ3MsIGNvbGxlY3Rpb25bIDAgXS5vd25lckRvY3VtZW50LCBmYWxzZSwgY29sbGVjdGlvbiwgaWdub3JlZCApO1xuXHRcdGZpcnN0ID0gZnJhZ21lbnQuZmlyc3RDaGlsZDtcblxuXHRcdGlmICggZnJhZ21lbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDEgKSB7XG5cdFx0XHRmcmFnbWVudCA9IGZpcnN0O1xuXHRcdH1cblxuXHRcdC8vIFJlcXVpcmUgZWl0aGVyIG5ldyBjb250ZW50IG9yIGFuIGludGVyZXN0IGluIGlnbm9yZWQgZWxlbWVudHMgdG8gaW52b2tlIHRoZSBjYWxsYmFja1xuXHRcdGlmICggZmlyc3QgfHwgaWdub3JlZCApIHtcblx0XHRcdHNjcmlwdHMgPSBqUXVlcnkubWFwKCBnZXRBbGwoIGZyYWdtZW50LCBcInNjcmlwdFwiICksIGRpc2FibGVTY3JpcHQgKTtcblx0XHRcdGhhc1NjcmlwdHMgPSBzY3JpcHRzLmxlbmd0aDtcblxuXHRcdFx0Ly8gVXNlIHRoZSBvcmlnaW5hbCBmcmFnbWVudCBmb3IgdGhlIGxhc3QgaXRlbVxuXHRcdFx0Ly8gaW5zdGVhZCBvZiB0aGUgZmlyc3QgYmVjYXVzZSBpdCBjYW4gZW5kIHVwXG5cdFx0XHQvLyBiZWluZyBlbXB0aWVkIGluY29ycmVjdGx5IGluIGNlcnRhaW4gc2l0dWF0aW9ucyAoIzgwNzApLlxuXHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRub2RlID0gZnJhZ21lbnQ7XG5cblx0XHRcdFx0aWYgKCBpICE9PSBpTm9DbG9uZSApIHtcblx0XHRcdFx0XHRub2RlID0galF1ZXJ5LmNsb25lKCBub2RlLCB0cnVlLCB0cnVlICk7XG5cblx0XHRcdFx0XHQvLyBLZWVwIHJlZmVyZW5jZXMgdG8gY2xvbmVkIHNjcmlwdHMgZm9yIGxhdGVyIHJlc3RvcmF0aW9uXG5cdFx0XHRcdFx0aWYgKCBoYXNTY3JpcHRzICkge1xuXG5cdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHksIFBoYW50b21KUyAxIG9ubHlcblx0XHRcdFx0XHRcdC8vIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0XHRcdFx0XHRcdGpRdWVyeS5tZXJnZSggc2NyaXB0cywgZ2V0QWxsKCBub2RlLCBcInNjcmlwdFwiICkgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjYWxsYmFjay5jYWxsKCBjb2xsZWN0aW9uWyBpIF0sIG5vZGUsIGkgKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBoYXNTY3JpcHRzICkge1xuXHRcdFx0XHRkb2MgPSBzY3JpcHRzWyBzY3JpcHRzLmxlbmd0aCAtIDEgXS5vd25lckRvY3VtZW50O1xuXG5cdFx0XHRcdC8vIFJlZW5hYmxlIHNjcmlwdHNcblx0XHRcdFx0alF1ZXJ5Lm1hcCggc2NyaXB0cywgcmVzdG9yZVNjcmlwdCApO1xuXG5cdFx0XHRcdC8vIEV2YWx1YXRlIGV4ZWN1dGFibGUgc2NyaXB0cyBvbiBmaXJzdCBkb2N1bWVudCBpbnNlcnRpb25cblx0XHRcdFx0Zm9yICggaSA9IDA7IGkgPCBoYXNTY3JpcHRzOyBpKysgKSB7XG5cdFx0XHRcdFx0bm9kZSA9IHNjcmlwdHNbIGkgXTtcblx0XHRcdFx0XHRpZiAoIHJzY3JpcHRUeXBlLnRlc3QoIG5vZGUudHlwZSB8fCBcIlwiICkgJiZcblx0XHRcdFx0XHRcdCFkYXRhUHJpdi5hY2Nlc3MoIG5vZGUsIFwiZ2xvYmFsRXZhbFwiICkgJiZcblx0XHRcdFx0XHRcdGpRdWVyeS5jb250YWlucyggZG9jLCBub2RlICkgKSB7XG5cblx0XHRcdFx0XHRcdGlmICggbm9kZS5zcmMgJiYgKCBub2RlLnR5cGUgfHwgXCJcIiApLnRvTG93ZXJDYXNlKCkgICE9PSBcIm1vZHVsZVwiICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIE9wdGlvbmFsIEFKQVggZGVwZW5kZW5jeSwgYnV0IHdvbid0IHJ1biBzY3JpcHRzIGlmIG5vdCBwcmVzZW50XG5cdFx0XHRcdFx0XHRcdGlmICggalF1ZXJ5Ll9ldmFsVXJsICYmICFub2RlLm5vTW9kdWxlICkge1xuXHRcdFx0XHRcdFx0XHRcdGpRdWVyeS5fZXZhbFVybCggbm9kZS5zcmMsIHtcblx0XHRcdFx0XHRcdFx0XHRcdG5vbmNlOiBub2RlLm5vbmNlIHx8IG5vZGUuZ2V0QXR0cmlidXRlKCBcIm5vbmNlXCIgKVxuXHRcdFx0XHRcdFx0XHRcdH0sIGRvYyApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRET01FdmFsKCBub2RlLnRleHRDb250ZW50LnJlcGxhY2UoIHJjbGVhblNjcmlwdCwgXCJcIiApLCBub2RlLCBkb2MgKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gY29sbGVjdGlvbjtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlKCBlbGVtLCBzZWxlY3Rvciwga2VlcERhdGEgKSB7XG5cdHZhciBub2RlLFxuXHRcdG5vZGVzID0gc2VsZWN0b3IgPyBqUXVlcnkuZmlsdGVyKCBzZWxlY3RvciwgZWxlbSApIDogZWxlbSxcblx0XHRpID0gMDtcblxuXHRmb3IgKCA7ICggbm9kZSA9IG5vZGVzWyBpIF0gKSAhPSBudWxsOyBpKysgKSB7XG5cdFx0aWYgKCAha2VlcERhdGEgJiYgbm9kZS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdGpRdWVyeS5jbGVhbkRhdGEoIGdldEFsbCggbm9kZSApICk7XG5cdFx0fVxuXG5cdFx0aWYgKCBub2RlLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRpZiAoIGtlZXBEYXRhICYmIGlzQXR0YWNoZWQoIG5vZGUgKSApIHtcblx0XHRcdFx0c2V0R2xvYmFsRXZhbCggZ2V0QWxsKCBub2RlLCBcInNjcmlwdFwiICkgKTtcblx0XHRcdH1cblx0XHRcdG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggbm9kZSApO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBlbGVtO1xufVxuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdGh0bWxQcmVmaWx0ZXI6IGZ1bmN0aW9uKCBodG1sICkge1xuXHRcdHJldHVybiBodG1sO1xuXHR9LFxuXG5cdGNsb25lOiBmdW5jdGlvbiggZWxlbSwgZGF0YUFuZEV2ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKSB7XG5cdFx0dmFyIGksIGwsIHNyY0VsZW1lbnRzLCBkZXN0RWxlbWVudHMsXG5cdFx0XHRjbG9uZSA9IGVsZW0uY2xvbmVOb2RlKCB0cnVlICksXG5cdFx0XHRpblBhZ2UgPSBpc0F0dGFjaGVkKCBlbGVtICk7XG5cblx0XHQvLyBGaXggSUUgY2xvbmluZyBpc3N1ZXNcblx0XHRpZiAoICFzdXBwb3J0Lm5vQ2xvbmVDaGVja2VkICYmICggZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBlbGVtLm5vZGVUeXBlID09PSAxMSApICYmXG5cdFx0XHRcdCFqUXVlcnkuaXNYTUxEb2MoIGVsZW0gKSApIHtcblxuXHRcdFx0Ly8gV2UgZXNjaGV3IFNpenpsZSBoZXJlIGZvciBwZXJmb3JtYW5jZSByZWFzb25zOiBodHRwczovL2pzcGVyZi5jb20vZ2V0YWxsLXZzLXNpenpsZS8yXG5cdFx0XHRkZXN0RWxlbWVudHMgPSBnZXRBbGwoIGNsb25lICk7XG5cdFx0XHRzcmNFbGVtZW50cyA9IGdldEFsbCggZWxlbSApO1xuXG5cdFx0XHRmb3IgKCBpID0gMCwgbCA9IHNyY0VsZW1lbnRzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHtcblx0XHRcdFx0Zml4SW5wdXQoIHNyY0VsZW1lbnRzWyBpIF0sIGRlc3RFbGVtZW50c1sgaSBdICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ29weSB0aGUgZXZlbnRzIGZyb20gdGhlIG9yaWdpbmFsIHRvIHRoZSBjbG9uZVxuXHRcdGlmICggZGF0YUFuZEV2ZW50cyApIHtcblx0XHRcdGlmICggZGVlcERhdGFBbmRFdmVudHMgKSB7XG5cdFx0XHRcdHNyY0VsZW1lbnRzID0gc3JjRWxlbWVudHMgfHwgZ2V0QWxsKCBlbGVtICk7XG5cdFx0XHRcdGRlc3RFbGVtZW50cyA9IGRlc3RFbGVtZW50cyB8fCBnZXRBbGwoIGNsb25lICk7XG5cblx0XHRcdFx0Zm9yICggaSA9IDAsIGwgPSBzcmNFbGVtZW50cy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdFx0Y2xvbmVDb3B5RXZlbnQoIHNyY0VsZW1lbnRzWyBpIF0sIGRlc3RFbGVtZW50c1sgaSBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNsb25lQ29weUV2ZW50KCBlbGVtLCBjbG9uZSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFByZXNlcnZlIHNjcmlwdCBldmFsdWF0aW9uIGhpc3Rvcnlcblx0XHRkZXN0RWxlbWVudHMgPSBnZXRBbGwoIGNsb25lLCBcInNjcmlwdFwiICk7XG5cdFx0aWYgKCBkZXN0RWxlbWVudHMubGVuZ3RoID4gMCApIHtcblx0XHRcdHNldEdsb2JhbEV2YWwoIGRlc3RFbGVtZW50cywgIWluUGFnZSAmJiBnZXRBbGwoIGVsZW0sIFwic2NyaXB0XCIgKSApO1xuXHRcdH1cblxuXHRcdC8vIFJldHVybiB0aGUgY2xvbmVkIHNldFxuXHRcdHJldHVybiBjbG9uZTtcblx0fSxcblxuXHRjbGVhbkRhdGE6IGZ1bmN0aW9uKCBlbGVtcyApIHtcblx0XHR2YXIgZGF0YSwgZWxlbSwgdHlwZSxcblx0XHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbCxcblx0XHRcdGkgPSAwO1xuXG5cdFx0Zm9yICggOyAoIGVsZW0gPSBlbGVtc1sgaSBdICkgIT09IHVuZGVmaW5lZDsgaSsrICkge1xuXHRcdFx0aWYgKCBhY2NlcHREYXRhKCBlbGVtICkgKSB7XG5cdFx0XHRcdGlmICggKCBkYXRhID0gZWxlbVsgZGF0YVByaXYuZXhwYW5kbyBdICkgKSB7XG5cdFx0XHRcdFx0aWYgKCBkYXRhLmV2ZW50cyApIHtcblx0XHRcdFx0XHRcdGZvciAoIHR5cGUgaW4gZGF0YS5ldmVudHMgKSB7XG5cdFx0XHRcdFx0XHRcdGlmICggc3BlY2lhbFsgdHlwZSBdICkge1xuXHRcdFx0XHRcdFx0XHRcdGpRdWVyeS5ldmVudC5yZW1vdmUoIGVsZW0sIHR5cGUgKTtcblxuXHRcdFx0XHRcdFx0XHQvLyBUaGlzIGlzIGEgc2hvcnRjdXQgdG8gYXZvaWQgalF1ZXJ5LmV2ZW50LnJlbW92ZSdzIG92ZXJoZWFkXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0alF1ZXJ5LnJlbW92ZUV2ZW50KCBlbGVtLCB0eXBlLCBkYXRhLmhhbmRsZSApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogQ2hyb21lIDw9MzUgLSA0NStcblx0XHRcdFx0XHQvLyBBc3NpZ24gdW5kZWZpbmVkIGluc3RlYWQgb2YgdXNpbmcgZGVsZXRlLCBzZWUgRGF0YSNyZW1vdmVcblx0XHRcdFx0XHRlbGVtWyBkYXRhUHJpdi5leHBhbmRvIF0gPSB1bmRlZmluZWQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCBlbGVtWyBkYXRhVXNlci5leHBhbmRvIF0gKSB7XG5cblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBDaHJvbWUgPD0zNSAtIDQ1K1xuXHRcdFx0XHRcdC8vIEFzc2lnbiB1bmRlZmluZWQgaW5zdGVhZCBvZiB1c2luZyBkZWxldGUsIHNlZSBEYXRhI3JlbW92ZVxuXHRcdFx0XHRcdGVsZW1bIGRhdGFVc2VyLmV4cGFuZG8gXSA9IHVuZGVmaW5lZDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufSApO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGRldGFjaDogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHJldHVybiByZW1vdmUoIHRoaXMsIHNlbGVjdG9yLCB0cnVlICk7XG5cdH0sXG5cblx0cmVtb3ZlOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0cmV0dXJuIHJlbW92ZSggdGhpcywgc2VsZWN0b3IgKTtcblx0fSxcblxuXHR0ZXh0OiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdFx0cmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgP1xuXHRcdFx0XHRqUXVlcnkudGV4dCggdGhpcyApIDpcblx0XHRcdFx0dGhpcy5lbXB0eSgpLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGlmICggdGhpcy5ub2RlVHlwZSA9PT0gMSB8fCB0aGlzLm5vZGVUeXBlID09PSAxMSB8fCB0aGlzLm5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHRcdFx0dGhpcy50ZXh0Q29udGVudCA9IHZhbHVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSApO1xuXHRcdH0sIG51bGwsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoICk7XG5cdH0sXG5cblx0YXBwZW5kOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gZG9tTWFuaXAoIHRoaXMsIGFyZ3VtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRpZiAoIHRoaXMubm9kZVR5cGUgPT09IDEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gMTEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0dmFyIHRhcmdldCA9IG1hbmlwdWxhdGlvblRhcmdldCggdGhpcywgZWxlbSApO1xuXHRcdFx0XHR0YXJnZXQuYXBwZW5kQ2hpbGQoIGVsZW0gKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0cHJlcGVuZDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGRvbU1hbmlwKCB0aGlzLCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0aWYgKCB0aGlzLm5vZGVUeXBlID09PSAxIHx8IHRoaXMubm9kZVR5cGUgPT09IDExIHx8IHRoaXMubm9kZVR5cGUgPT09IDkgKSB7XG5cdFx0XHRcdHZhciB0YXJnZXQgPSBtYW5pcHVsYXRpb25UYXJnZXQoIHRoaXMsIGVsZW0gKTtcblx0XHRcdFx0dGFyZ2V0Lmluc2VydEJlZm9yZSggZWxlbSwgdGFyZ2V0LmZpcnN0Q2hpbGQgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0YmVmb3JlOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gZG9tTWFuaXAoIHRoaXMsIGFyZ3VtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRpZiAoIHRoaXMucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSggZWxlbSwgdGhpcyApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblxuXHRhZnRlcjogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGRvbU1hbmlwKCB0aGlzLCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0aWYgKCB0aGlzLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdHRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMubmV4dFNpYmxpbmcgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0ZW1wdHk6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBlbGVtLFxuXHRcdFx0aSA9IDA7XG5cblx0XHRmb3IgKCA7ICggZWxlbSA9IHRoaXNbIGkgXSApICE9IG51bGw7IGkrKyApIHtcblx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblxuXHRcdFx0XHQvLyBQcmV2ZW50IG1lbW9yeSBsZWFrc1xuXHRcdFx0XHRqUXVlcnkuY2xlYW5EYXRhKCBnZXRBbGwoIGVsZW0sIGZhbHNlICkgKTtcblxuXHRcdFx0XHQvLyBSZW1vdmUgYW55IHJlbWFpbmluZyBub2Rlc1xuXHRcdFx0XHRlbGVtLnRleHRDb250ZW50ID0gXCJcIjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fSxcblxuXHRjbG9uZTogZnVuY3Rpb24oIGRhdGFBbmRFdmVudHMsIGRlZXBEYXRhQW5kRXZlbnRzICkge1xuXHRcdGRhdGFBbmRFdmVudHMgPSBkYXRhQW5kRXZlbnRzID09IG51bGwgPyBmYWxzZSA6IGRhdGFBbmRFdmVudHM7XG5cdFx0ZGVlcERhdGFBbmRFdmVudHMgPSBkZWVwRGF0YUFuZEV2ZW50cyA9PSBudWxsID8gZGF0YUFuZEV2ZW50cyA6IGRlZXBEYXRhQW5kRXZlbnRzO1xuXG5cdFx0cmV0dXJuIHRoaXMubWFwKCBmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiBqUXVlcnkuY2xvbmUoIHRoaXMsIGRhdGFBbmRFdmVudHMsIGRlZXBEYXRhQW5kRXZlbnRzICk7XG5cdFx0fSApO1xuXHR9LFxuXG5cdGh0bWw6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHR2YXIgZWxlbSA9IHRoaXNbIDAgXSB8fCB7fSxcblx0XHRcdFx0aSA9IDAsXG5cdFx0XHRcdGwgPSB0aGlzLmxlbmd0aDtcblxuXHRcdFx0aWYgKCB2YWx1ZSA9PT0gdW5kZWZpbmVkICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0XHRcdHJldHVybiBlbGVtLmlubmVySFRNTDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU2VlIGlmIHdlIGNhbiB0YWtlIGEgc2hvcnRjdXQgYW5kIGp1c3QgdXNlIGlubmVySFRNTFxuXHRcdFx0aWYgKCB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgIXJub0lubmVyaHRtbC50ZXN0KCB2YWx1ZSApICYmXG5cdFx0XHRcdCF3cmFwTWFwWyAoIHJ0YWdOYW1lLmV4ZWMoIHZhbHVlICkgfHwgWyBcIlwiLCBcIlwiIF0gKVsgMSBdLnRvTG93ZXJDYXNlKCkgXSApIHtcblxuXHRcdFx0XHR2YWx1ZSA9IGpRdWVyeS5odG1sUHJlZmlsdGVyKCB2YWx1ZSApO1xuXG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRcdFx0ZWxlbSA9IHRoaXNbIGkgXSB8fCB7fTtcblxuXHRcdFx0XHRcdFx0Ly8gUmVtb3ZlIGVsZW1lbnQgbm9kZXMgYW5kIHByZXZlbnQgbWVtb3J5IGxlYWtzXG5cdFx0XHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0XHRcdFx0XHRcdGpRdWVyeS5jbGVhbkRhdGEoIGdldEFsbCggZWxlbSwgZmFsc2UgKSApO1xuXHRcdFx0XHRcdFx0XHRlbGVtLmlubmVySFRNTCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGVsZW0gPSAwO1xuXG5cdFx0XHRcdC8vIElmIHVzaW5nIGlubmVySFRNTCB0aHJvd3MgYW4gZXhjZXB0aW9uLCB1c2UgdGhlIGZhbGxiYWNrIG1ldGhvZFxuXHRcdFx0XHR9IGNhdGNoICggZSApIHt9XG5cdFx0XHR9XG5cblx0XHRcdGlmICggZWxlbSApIHtcblx0XHRcdFx0dGhpcy5lbXB0eSgpLmFwcGVuZCggdmFsdWUgKTtcblx0XHRcdH1cblx0XHR9LCBudWxsLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCApO1xuXHR9LFxuXG5cdHJlcGxhY2VXaXRoOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgaWdub3JlZCA9IFtdO1xuXG5cdFx0Ly8gTWFrZSB0aGUgY2hhbmdlcywgcmVwbGFjaW5nIGVhY2ggbm9uLWlnbm9yZWQgY29udGV4dCBlbGVtZW50IHdpdGggdGhlIG5ldyBjb250ZW50XG5cdFx0cmV0dXJuIGRvbU1hbmlwKCB0aGlzLCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0dmFyIHBhcmVudCA9IHRoaXMucGFyZW50Tm9kZTtcblxuXHRcdFx0aWYgKCBqUXVlcnkuaW5BcnJheSggdGhpcywgaWdub3JlZCApIDwgMCApIHtcblx0XHRcdFx0alF1ZXJ5LmNsZWFuRGF0YSggZ2V0QWxsKCB0aGlzICkgKTtcblx0XHRcdFx0aWYgKCBwYXJlbnQgKSB7XG5cdFx0XHRcdFx0cGFyZW50LnJlcGxhY2VDaGlsZCggZWxlbSwgdGhpcyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHQvLyBGb3JjZSBjYWxsYmFjayBpbnZvY2F0aW9uXG5cdFx0fSwgaWdub3JlZCApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5lYWNoKCB7XG5cdGFwcGVuZFRvOiBcImFwcGVuZFwiLFxuXHRwcmVwZW5kVG86IFwicHJlcGVuZFwiLFxuXHRpbnNlcnRCZWZvcmU6IFwiYmVmb3JlXCIsXG5cdGluc2VydEFmdGVyOiBcImFmdGVyXCIsXG5cdHJlcGxhY2VBbGw6IFwicmVwbGFjZVdpdGhcIlxufSwgZnVuY3Rpb24oIG5hbWUsIG9yaWdpbmFsICkge1xuXHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHR2YXIgZWxlbXMsXG5cdFx0XHRyZXQgPSBbXSxcblx0XHRcdGluc2VydCA9IGpRdWVyeSggc2VsZWN0b3IgKSxcblx0XHRcdGxhc3QgPSBpbnNlcnQubGVuZ3RoIC0gMSxcblx0XHRcdGkgPSAwO1xuXG5cdFx0Zm9yICggOyBpIDw9IGxhc3Q7IGkrKyApIHtcblx0XHRcdGVsZW1zID0gaSA9PT0gbGFzdCA/IHRoaXMgOiB0aGlzLmNsb25lKCB0cnVlICk7XG5cdFx0XHRqUXVlcnkoIGluc2VydFsgaSBdIClbIG9yaWdpbmFsIF0oIGVsZW1zICk7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjAgb25seSwgUGhhbnRvbUpTIDEgb25seVxuXHRcdFx0Ly8gLmdldCgpIGJlY2F1c2UgcHVzaC5hcHBseShfLCBhcnJheWxpa2UpIHRocm93cyBvbiBhbmNpZW50IFdlYktpdFxuXHRcdFx0cHVzaC5hcHBseSggcmV0LCBlbGVtcy5nZXQoKSApO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggcmV0ICk7XG5cdH07XG59ICk7XG52YXIgcm51bW5vbnB4ID0gbmV3IFJlZ0V4cCggXCJeKFwiICsgcG51bSArIFwiKSg/IXB4KVthLXolXSskXCIsIFwiaVwiICk7XG5cbnZhciBnZXRTdHlsZXMgPSBmdW5jdGlvbiggZWxlbSApIHtcblxuXHRcdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seSwgRmlyZWZveCA8PTMwICgjMTUwOTgsICMxNDE1MClcblx0XHQvLyBJRSB0aHJvd3Mgb24gZWxlbWVudHMgY3JlYXRlZCBpbiBwb3B1cHNcblx0XHQvLyBGRiBtZWFud2hpbGUgdGhyb3dzIG9uIGZyYW1lIGVsZW1lbnRzIHRocm91Z2ggXCJkZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlXCJcblx0XHR2YXIgdmlldyA9IGVsZW0ub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztcblxuXHRcdGlmICggIXZpZXcgfHwgIXZpZXcub3BlbmVyICkge1xuXHRcdFx0dmlldyA9IHdpbmRvdztcblx0XHR9XG5cblx0XHRyZXR1cm4gdmlldy5nZXRDb21wdXRlZFN0eWxlKCBlbGVtICk7XG5cdH07XG5cbnZhciBzd2FwID0gZnVuY3Rpb24oIGVsZW0sIG9wdGlvbnMsIGNhbGxiYWNrICkge1xuXHR2YXIgcmV0LCBuYW1lLFxuXHRcdG9sZCA9IHt9O1xuXG5cdC8vIFJlbWVtYmVyIHRoZSBvbGQgdmFsdWVzLCBhbmQgaW5zZXJ0IHRoZSBuZXcgb25lc1xuXHRmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7XG5cdFx0b2xkWyBuYW1lIF0gPSBlbGVtLnN0eWxlWyBuYW1lIF07XG5cdFx0ZWxlbS5zdHlsZVsgbmFtZSBdID0gb3B0aW9uc1sgbmFtZSBdO1xuXHR9XG5cblx0cmV0ID0gY2FsbGJhY2suY2FsbCggZWxlbSApO1xuXG5cdC8vIFJldmVydCB0aGUgb2xkIHZhbHVlc1xuXHRmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7XG5cdFx0ZWxlbS5zdHlsZVsgbmFtZSBdID0gb2xkWyBuYW1lIF07XG5cdH1cblxuXHRyZXR1cm4gcmV0O1xufTtcblxuXG52YXIgcmJveFN0eWxlID0gbmV3IFJlZ0V4cCggY3NzRXhwYW5kLmpvaW4oIFwifFwiICksIFwiaVwiICk7XG5cblxuXG4oIGZ1bmN0aW9uKCkge1xuXG5cdC8vIEV4ZWN1dGluZyBib3RoIHBpeGVsUG9zaXRpb24gJiBib3hTaXppbmdSZWxpYWJsZSB0ZXN0cyByZXF1aXJlIG9ubHkgb25lIGxheW91dFxuXHQvLyBzbyB0aGV5J3JlIGV4ZWN1dGVkIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSB0aGUgc2Vjb25kIGNvbXB1dGF0aW9uLlxuXHRmdW5jdGlvbiBjb21wdXRlU3R5bGVUZXN0cygpIHtcblxuXHRcdC8vIFRoaXMgaXMgYSBzaW5nbGV0b24sIHdlIG5lZWQgdG8gZXhlY3V0ZSBpdCBvbmx5IG9uY2Vcblx0XHRpZiAoICFkaXYgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29udGFpbmVyLnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDtcIiArXG5cdFx0XHRcIm1hcmdpbi10b3A6MXB4O3BhZGRpbmc6MDtib3JkZXI6MFwiO1xuXHRcdGRpdi5zdHlsZS5jc3NUZXh0ID1cblx0XHRcdFwicG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO1wiICtcblx0XHRcdFwibWFyZ2luOmF1dG87Ym9yZGVyOjFweDtwYWRkaW5nOjFweDtcIiArXG5cdFx0XHRcIndpZHRoOjYwJTt0b3A6MSVcIjtcblx0XHRkb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoIGNvbnRhaW5lciApLmFwcGVuZENoaWxkKCBkaXYgKTtcblxuXHRcdHZhciBkaXZTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKCBkaXYgKTtcblx0XHRwaXhlbFBvc2l0aW9uVmFsID0gZGl2U3R5bGUudG9wICE9PSBcIjElXCI7XG5cblx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDQuMCAtIDQuMyBvbmx5LCBGaXJlZm94IDw9MyAtIDQ0XG5cdFx0cmVsaWFibGVNYXJnaW5MZWZ0VmFsID0gcm91bmRQaXhlbE1lYXN1cmVzKCBkaXZTdHlsZS5tYXJnaW5MZWZ0ICkgPT09IDEyO1xuXG5cdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA0LjAgLSA0LjMgb25seSwgU2FmYXJpIDw9OS4xIC0gMTAuMSwgaU9TIDw9Ny4wIC0gOS4zXG5cdFx0Ly8gU29tZSBzdHlsZXMgY29tZSBiYWNrIHdpdGggcGVyY2VudGFnZSB2YWx1ZXMsIGV2ZW4gdGhvdWdoIHRoZXkgc2hvdWxkbid0XG5cdFx0ZGl2LnN0eWxlLnJpZ2h0ID0gXCI2MCVcIjtcblx0XHRwaXhlbEJveFN0eWxlc1ZhbCA9IHJvdW5kUGl4ZWxNZWFzdXJlcyggZGl2U3R5bGUucmlnaHQgKSA9PT0gMzY7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA5IC0gMTEgb25seVxuXHRcdC8vIERldGVjdCBtaXNyZXBvcnRpbmcgb2YgY29udGVudCBkaW1lbnNpb25zIGZvciBib3gtc2l6aW5nOmJvcmRlci1ib3ggZWxlbWVudHNcblx0XHRib3hTaXppbmdSZWxpYWJsZVZhbCA9IHJvdW5kUGl4ZWxNZWFzdXJlcyggZGl2U3R5bGUud2lkdGggKSA9PT0gMzY7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA5IG9ubHlcblx0XHQvLyBEZXRlY3Qgb3ZlcmZsb3c6c2Nyb2xsIHNjcmV3aW5lc3MgKGdoLTM2OTkpXG5cdFx0Ly8gU3VwcG9ydDogQ2hyb21lIDw9NjRcblx0XHQvLyBEb24ndCBnZXQgdHJpY2tlZCB3aGVuIHpvb20gYWZmZWN0cyBvZmZzZXRXaWR0aCAoZ2gtNDAyOSlcblx0XHRkaXYuc3R5bGUucG9zaXRpb24gPSBcImFic29sdXRlXCI7XG5cdFx0c2Nyb2xsYm94U2l6ZVZhbCA9IHJvdW5kUGl4ZWxNZWFzdXJlcyggZGl2Lm9mZnNldFdpZHRoIC8gMyApID09PSAxMjtcblxuXHRcdGRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZCggY29udGFpbmVyICk7XG5cblx0XHQvLyBOdWxsaWZ5IHRoZSBkaXYgc28gaXQgd291bGRuJ3QgYmUgc3RvcmVkIGluIHRoZSBtZW1vcnkgYW5kXG5cdFx0Ly8gaXQgd2lsbCBhbHNvIGJlIGEgc2lnbiB0aGF0IGNoZWNrcyBhbHJlYWR5IHBlcmZvcm1lZFxuXHRcdGRpdiA9IG51bGw7XG5cdH1cblxuXHRmdW5jdGlvbiByb3VuZFBpeGVsTWVhc3VyZXMoIG1lYXN1cmUgKSB7XG5cdFx0cmV0dXJuIE1hdGgucm91bmQoIHBhcnNlRmxvYXQoIG1lYXN1cmUgKSApO1xuXHR9XG5cblx0dmFyIHBpeGVsUG9zaXRpb25WYWwsIGJveFNpemluZ1JlbGlhYmxlVmFsLCBzY3JvbGxib3hTaXplVmFsLCBwaXhlbEJveFN0eWxlc1ZhbCxcblx0XHRyZWxpYWJsZVRyRGltZW5zaW9uc1ZhbCwgcmVsaWFibGVNYXJnaW5MZWZ0VmFsLFxuXHRcdGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZGl2XCIgKSxcblx0XHRkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICk7XG5cblx0Ly8gRmluaXNoIGVhcmx5IGluIGxpbWl0ZWQgKG5vbi1icm93c2VyKSBlbnZpcm9ubWVudHNcblx0aWYgKCAhZGl2LnN0eWxlICkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIFN1cHBvcnQ6IElFIDw9OSAtIDExIG9ubHlcblx0Ly8gU3R5bGUgb2YgY2xvbmVkIGVsZW1lbnQgYWZmZWN0cyBzb3VyY2UgZWxlbWVudCBjbG9uZWQgKCM4OTA4KVxuXHRkaXYuc3R5bGUuYmFja2dyb3VuZENsaXAgPSBcImNvbnRlbnQtYm94XCI7XG5cdGRpdi5jbG9uZU5vZGUoIHRydWUgKS5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCA9IFwiXCI7XG5cdHN1cHBvcnQuY2xlYXJDbG9uZVN0eWxlID0gZGl2LnN0eWxlLmJhY2tncm91bmRDbGlwID09PSBcImNvbnRlbnQtYm94XCI7XG5cblx0alF1ZXJ5LmV4dGVuZCggc3VwcG9ydCwge1xuXHRcdGJveFNpemluZ1JlbGlhYmxlOiBmdW5jdGlvbigpIHtcblx0XHRcdGNvbXB1dGVTdHlsZVRlc3RzKCk7XG5cdFx0XHRyZXR1cm4gYm94U2l6aW5nUmVsaWFibGVWYWw7XG5cdFx0fSxcblx0XHRwaXhlbEJveFN0eWxlczogZnVuY3Rpb24oKSB7XG5cdFx0XHRjb21wdXRlU3R5bGVUZXN0cygpO1xuXHRcdFx0cmV0dXJuIHBpeGVsQm94U3R5bGVzVmFsO1xuXHRcdH0sXG5cdFx0cGl4ZWxQb3NpdGlvbjogZnVuY3Rpb24oKSB7XG5cdFx0XHRjb21wdXRlU3R5bGVUZXN0cygpO1xuXHRcdFx0cmV0dXJuIHBpeGVsUG9zaXRpb25WYWw7XG5cdFx0fSxcblx0XHRyZWxpYWJsZU1hcmdpbkxlZnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29tcHV0ZVN0eWxlVGVzdHMoKTtcblx0XHRcdHJldHVybiByZWxpYWJsZU1hcmdpbkxlZnRWYWw7XG5cdFx0fSxcblx0XHRzY3JvbGxib3hTaXplOiBmdW5jdGlvbigpIHtcblx0XHRcdGNvbXB1dGVTdHlsZVRlc3RzKCk7XG5cdFx0XHRyZXR1cm4gc2Nyb2xsYm94U2l6ZVZhbDtcblx0XHR9LFxuXG5cdFx0Ly8gU3VwcG9ydDogSUUgOSAtIDExKywgRWRnZSAxNSAtIDE4K1xuXHRcdC8vIElFL0VkZ2UgbWlzcmVwb3J0IGBnZXRDb21wdXRlZFN0eWxlYCBvZiB0YWJsZSByb3dzIHdpdGggd2lkdGgvaGVpZ2h0XG5cdFx0Ly8gc2V0IGluIENTUyB3aGlsZSBgb2Zmc2V0KmAgcHJvcGVydGllcyByZXBvcnQgY29ycmVjdCB2YWx1ZXMuXG5cdFx0Ly8gQmVoYXZpb3IgaW4gSUUgOSBpcyBtb3JlIHN1YnRsZSB0aGFuIGluIG5ld2VyIHZlcnNpb25zICYgaXQgcGFzc2VzXG5cdFx0Ly8gc29tZSB2ZXJzaW9ucyBvZiB0aGlzIHRlc3Q7IG1ha2Ugc3VyZSBub3QgdG8gbWFrZSBpdCBwYXNzIHRoZXJlIVxuXHRcdC8vXG5cdFx0Ly8gU3VwcG9ydDogRmlyZWZveCA3MCtcblx0XHQvLyBPbmx5IEZpcmVmb3ggaW5jbHVkZXMgYm9yZGVyIHdpZHRoc1xuXHRcdC8vIGluIGNvbXB1dGVkIGRpbWVuc2lvbnMuIChnaC00NTI5KVxuXHRcdHJlbGlhYmxlVHJEaW1lbnNpb25zOiBmdW5jdGlvbigpIHtcblx0XHRcdHZhciB0YWJsZSwgdHIsIHRyQ2hpbGQsIHRyU3R5bGU7XG5cdFx0XHRpZiAoIHJlbGlhYmxlVHJEaW1lbnNpb25zVmFsID09IG51bGwgKSB7XG5cdFx0XHRcdHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJ0YWJsZVwiICk7XG5cdFx0XHRcdHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJ0clwiICk7XG5cdFx0XHRcdHRyQ2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICk7XG5cblx0XHRcdFx0dGFibGUuc3R5bGUuY3NzVGV4dCA9IFwicG9zaXRpb246YWJzb2x1dGU7bGVmdDotMTExMTFweDtib3JkZXItY29sbGFwc2U6c2VwYXJhdGVcIjtcblx0XHRcdFx0dHIuc3R5bGUuY3NzVGV4dCA9IFwiYm9yZGVyOjFweCBzb2xpZFwiO1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IENocm9tZSA4Nitcblx0XHRcdFx0Ly8gSGVpZ2h0IHNldCB0aHJvdWdoIGNzc1RleHQgZG9lcyBub3QgZ2V0IGFwcGxpZWQuXG5cdFx0XHRcdC8vIENvbXB1dGVkIGhlaWdodCB0aGVuIGNvbWVzIGJhY2sgYXMgMC5cblx0XHRcdFx0dHIuc3R5bGUuaGVpZ2h0ID0gXCIxcHhcIjtcblx0XHRcdFx0dHJDaGlsZC5zdHlsZS5oZWlnaHQgPSBcIjlweFwiO1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgOCBDaHJvbWUgODYrXG5cdFx0XHRcdC8vIEluIG91ciBib2R5QmFja2dyb3VuZC5odG1sIGlmcmFtZSxcblx0XHRcdFx0Ly8gZGlzcGxheSBmb3IgYWxsIGRpdiBlbGVtZW50cyBpcyBzZXQgdG8gXCJpbmxpbmVcIixcblx0XHRcdFx0Ly8gd2hpY2ggY2F1c2VzIGEgcHJvYmxlbSBvbmx5IGluIEFuZHJvaWQgOCBDaHJvbWUgODYuXG5cdFx0XHRcdC8vIEVuc3VyaW5nIHRoZSBkaXYgaXMgZGlzcGxheTogYmxvY2tcblx0XHRcdFx0Ly8gZ2V0cyBhcm91bmQgdGhpcyBpc3N1ZS5cblx0XHRcdFx0dHJDaGlsZC5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xuXG5cdFx0XHRcdGRvY3VtZW50RWxlbWVudFxuXHRcdFx0XHRcdC5hcHBlbmRDaGlsZCggdGFibGUgKVxuXHRcdFx0XHRcdC5hcHBlbmRDaGlsZCggdHIgKVxuXHRcdFx0XHRcdC5hcHBlbmRDaGlsZCggdHJDaGlsZCApO1xuXG5cdFx0XHRcdHRyU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSggdHIgKTtcblx0XHRcdFx0cmVsaWFibGVUckRpbWVuc2lvbnNWYWwgPSAoIHBhcnNlSW50KCB0clN0eWxlLmhlaWdodCwgMTAgKSArXG5cdFx0XHRcdFx0cGFyc2VJbnQoIHRyU3R5bGUuYm9yZGVyVG9wV2lkdGgsIDEwICkgK1xuXHRcdFx0XHRcdHBhcnNlSW50KCB0clN0eWxlLmJvcmRlckJvdHRvbVdpZHRoLCAxMCApICkgPT09IHRyLm9mZnNldEhlaWdodDtcblxuXHRcdFx0XHRkb2N1bWVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoIHRhYmxlICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVsaWFibGVUckRpbWVuc2lvbnNWYWw7XG5cdFx0fVxuXHR9ICk7XG59ICkoKTtcblxuXG5mdW5jdGlvbiBjdXJDU1MoIGVsZW0sIG5hbWUsIGNvbXB1dGVkICkge1xuXHR2YXIgd2lkdGgsIG1pbldpZHRoLCBtYXhXaWR0aCwgcmV0LFxuXG5cdFx0Ly8gU3VwcG9ydDogRmlyZWZveCA1MStcblx0XHQvLyBSZXRyaWV2aW5nIHN0eWxlIGJlZm9yZSBjb21wdXRlZCBzb21laG93XG5cdFx0Ly8gZml4ZXMgYW4gaXNzdWUgd2l0aCBnZXR0aW5nIHdyb25nIHZhbHVlc1xuXHRcdC8vIG9uIGRldGFjaGVkIGVsZW1lbnRzXG5cdFx0c3R5bGUgPSBlbGVtLnN0eWxlO1xuXG5cdGNvbXB1dGVkID0gY29tcHV0ZWQgfHwgZ2V0U3R5bGVzKCBlbGVtICk7XG5cblx0Ly8gZ2V0UHJvcGVydHlWYWx1ZSBpcyBuZWVkZWQgZm9yOlxuXHQvLyAgIC5jc3MoJ2ZpbHRlcicpIChJRSA5IG9ubHksICMxMjUzNylcblx0Ly8gICAuY3NzKCctLWN1c3RvbVByb3BlcnR5KSAoIzMxNDQpXG5cdGlmICggY29tcHV0ZWQgKSB7XG5cdFx0cmV0ID0gY29tcHV0ZWQuZ2V0UHJvcGVydHlWYWx1ZSggbmFtZSApIHx8IGNvbXB1dGVkWyBuYW1lIF07XG5cblx0XHRpZiAoIHJldCA9PT0gXCJcIiAmJiAhaXNBdHRhY2hlZCggZWxlbSApICkge1xuXHRcdFx0cmV0ID0galF1ZXJ5LnN0eWxlKCBlbGVtLCBuYW1lICk7XG5cdFx0fVxuXG5cdFx0Ly8gQSB0cmlidXRlIHRvIHRoZSBcImF3ZXNvbWUgaGFjayBieSBEZWFuIEVkd2FyZHNcIlxuXHRcdC8vIEFuZHJvaWQgQnJvd3NlciByZXR1cm5zIHBlcmNlbnRhZ2UgZm9yIHNvbWUgdmFsdWVzLFxuXHRcdC8vIGJ1dCB3aWR0aCBzZWVtcyB0byBiZSByZWxpYWJseSBwaXhlbHMuXG5cdFx0Ly8gVGhpcyBpcyBhZ2FpbnN0IHRoZSBDU1NPTSBkcmFmdCBzcGVjOlxuXHRcdC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS8jcmVzb2x2ZWQtdmFsdWVzXG5cdFx0aWYgKCAhc3VwcG9ydC5waXhlbEJveFN0eWxlcygpICYmIHJudW1ub25weC50ZXN0KCByZXQgKSAmJiByYm94U3R5bGUudGVzdCggbmFtZSApICkge1xuXG5cdFx0XHQvLyBSZW1lbWJlciB0aGUgb3JpZ2luYWwgdmFsdWVzXG5cdFx0XHR3aWR0aCA9IHN0eWxlLndpZHRoO1xuXHRcdFx0bWluV2lkdGggPSBzdHlsZS5taW5XaWR0aDtcblx0XHRcdG1heFdpZHRoID0gc3R5bGUubWF4V2lkdGg7XG5cblx0XHRcdC8vIFB1dCBpbiB0aGUgbmV3IHZhbHVlcyB0byBnZXQgYSBjb21wdXRlZCB2YWx1ZSBvdXRcblx0XHRcdHN0eWxlLm1pbldpZHRoID0gc3R5bGUubWF4V2lkdGggPSBzdHlsZS53aWR0aCA9IHJldDtcblx0XHRcdHJldCA9IGNvbXB1dGVkLndpZHRoO1xuXG5cdFx0XHQvLyBSZXZlcnQgdGhlIGNoYW5nZWQgdmFsdWVzXG5cdFx0XHRzdHlsZS53aWR0aCA9IHdpZHRoO1xuXHRcdFx0c3R5bGUubWluV2lkdGggPSBtaW5XaWR0aDtcblx0XHRcdHN0eWxlLm1heFdpZHRoID0gbWF4V2lkdGg7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHJldCAhPT0gdW5kZWZpbmVkID9cblxuXHRcdC8vIFN1cHBvcnQ6IElFIDw9OSAtIDExIG9ubHlcblx0XHQvLyBJRSByZXR1cm5zIHpJbmRleCB2YWx1ZSBhcyBhbiBpbnRlZ2VyLlxuXHRcdHJldCArIFwiXCIgOlxuXHRcdHJldDtcbn1cblxuXG5mdW5jdGlvbiBhZGRHZXRIb29rSWYoIGNvbmRpdGlvbkZuLCBob29rRm4gKSB7XG5cblx0Ly8gRGVmaW5lIHRoZSBob29rLCB3ZSdsbCBjaGVjayBvbiB0aGUgZmlyc3QgcnVuIGlmIGl0J3MgcmVhbGx5IG5lZWRlZC5cblx0cmV0dXJuIHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0aWYgKCBjb25kaXRpb25GbigpICkge1xuXG5cdFx0XHRcdC8vIEhvb2sgbm90IG5lZWRlZCAob3IgaXQncyBub3QgcG9zc2libGUgdG8gdXNlIGl0IGR1ZVxuXHRcdFx0XHQvLyB0byBtaXNzaW5nIGRlcGVuZGVuY3kpLCByZW1vdmUgaXQuXG5cdFx0XHRcdGRlbGV0ZSB0aGlzLmdldDtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBIb29rIG5lZWRlZDsgcmVkZWZpbmUgaXQgc28gdGhhdCB0aGUgc3VwcG9ydCB0ZXN0IGlzIG5vdCBleGVjdXRlZCBhZ2Fpbi5cblx0XHRcdHJldHVybiAoIHRoaXMuZ2V0ID0gaG9va0ZuICkuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdH1cblx0fTtcbn1cblxuXG52YXIgY3NzUHJlZml4ZXMgPSBbIFwiV2Via2l0XCIsIFwiTW96XCIsIFwibXNcIiBdLFxuXHRlbXB0eVN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJkaXZcIiApLnN0eWxlLFxuXHR2ZW5kb3JQcm9wcyA9IHt9O1xuXG4vLyBSZXR1cm4gYSB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgb3IgdW5kZWZpbmVkXG5mdW5jdGlvbiB2ZW5kb3JQcm9wTmFtZSggbmFtZSApIHtcblxuXHQvLyBDaGVjayBmb3IgdmVuZG9yIHByZWZpeGVkIG5hbWVzXG5cdHZhciBjYXBOYW1lID0gbmFtZVsgMCBdLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKCAxICksXG5cdFx0aSA9IGNzc1ByZWZpeGVzLmxlbmd0aDtcblxuXHR3aGlsZSAoIGktLSApIHtcblx0XHRuYW1lID0gY3NzUHJlZml4ZXNbIGkgXSArIGNhcE5hbWU7XG5cdFx0aWYgKCBuYW1lIGluIGVtcHR5U3R5bGUgKSB7XG5cdFx0XHRyZXR1cm4gbmFtZTtcblx0XHR9XG5cdH1cbn1cblxuLy8gUmV0dXJuIGEgcG90ZW50aWFsbHktbWFwcGVkIGpRdWVyeS5jc3NQcm9wcyBvciB2ZW5kb3IgcHJlZml4ZWQgcHJvcGVydHlcbmZ1bmN0aW9uIGZpbmFsUHJvcE5hbWUoIG5hbWUgKSB7XG5cdHZhciBmaW5hbCA9IGpRdWVyeS5jc3NQcm9wc1sgbmFtZSBdIHx8IHZlbmRvclByb3BzWyBuYW1lIF07XG5cblx0aWYgKCBmaW5hbCApIHtcblx0XHRyZXR1cm4gZmluYWw7XG5cdH1cblx0aWYgKCBuYW1lIGluIGVtcHR5U3R5bGUgKSB7XG5cdFx0cmV0dXJuIG5hbWU7XG5cdH1cblx0cmV0dXJuIHZlbmRvclByb3BzWyBuYW1lIF0gPSB2ZW5kb3JQcm9wTmFtZSggbmFtZSApIHx8IG5hbWU7XG59XG5cblxudmFyXG5cblx0Ly8gU3dhcHBhYmxlIGlmIGRpc3BsYXkgaXMgbm9uZSBvciBzdGFydHMgd2l0aCB0YWJsZVxuXHQvLyBleGNlcHQgXCJ0YWJsZVwiLCBcInRhYmxlLWNlbGxcIiwgb3IgXCJ0YWJsZS1jYXB0aW9uXCJcblx0Ly8gU2VlIGhlcmUgZm9yIGRpc3BsYXkgdmFsdWVzOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL0NTUy9kaXNwbGF5XG5cdHJkaXNwbGF5c3dhcCA9IC9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxcblx0cmN1c3RvbVByb3AgPSAvXi0tLyxcblx0Y3NzU2hvdyA9IHsgcG9zaXRpb246IFwiYWJzb2x1dGVcIiwgdmlzaWJpbGl0eTogXCJoaWRkZW5cIiwgZGlzcGxheTogXCJibG9ja1wiIH0sXG5cdGNzc05vcm1hbFRyYW5zZm9ybSA9IHtcblx0XHRsZXR0ZXJTcGFjaW5nOiBcIjBcIixcblx0XHRmb250V2VpZ2h0OiBcIjQwMFwiXG5cdH07XG5cbmZ1bmN0aW9uIHNldFBvc2l0aXZlTnVtYmVyKCBfZWxlbSwgdmFsdWUsIHN1YnRyYWN0ICkge1xuXG5cdC8vIEFueSByZWxhdGl2ZSAoKy8tKSB2YWx1ZXMgaGF2ZSBhbHJlYWR5IGJlZW5cblx0Ly8gbm9ybWFsaXplZCBhdCB0aGlzIHBvaW50XG5cdHZhciBtYXRjaGVzID0gcmNzc051bS5leGVjKCB2YWx1ZSApO1xuXHRyZXR1cm4gbWF0Y2hlcyA/XG5cblx0XHQvLyBHdWFyZCBhZ2FpbnN0IHVuZGVmaW5lZCBcInN1YnRyYWN0XCIsIGUuZy4sIHdoZW4gdXNlZCBhcyBpbiBjc3NIb29rc1xuXHRcdE1hdGgubWF4KCAwLCBtYXRjaGVzWyAyIF0gLSAoIHN1YnRyYWN0IHx8IDAgKSApICsgKCBtYXRjaGVzWyAzIF0gfHwgXCJweFwiICkgOlxuXHRcdHZhbHVlO1xufVxuXG5mdW5jdGlvbiBib3hNb2RlbEFkanVzdG1lbnQoIGVsZW0sIGRpbWVuc2lvbiwgYm94LCBpc0JvcmRlckJveCwgc3R5bGVzLCBjb21wdXRlZFZhbCApIHtcblx0dmFyIGkgPSBkaW1lbnNpb24gPT09IFwid2lkdGhcIiA/IDEgOiAwLFxuXHRcdGV4dHJhID0gMCxcblx0XHRkZWx0YSA9IDA7XG5cblx0Ly8gQWRqdXN0bWVudCBtYXkgbm90IGJlIG5lY2Vzc2FyeVxuXHRpZiAoIGJveCA9PT0gKCBpc0JvcmRlckJveCA/IFwiYm9yZGVyXCIgOiBcImNvbnRlbnRcIiApICkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0Zm9yICggOyBpIDwgNDsgaSArPSAyICkge1xuXG5cdFx0Ly8gQm90aCBib3ggbW9kZWxzIGV4Y2x1ZGUgbWFyZ2luXG5cdFx0aWYgKCBib3ggPT09IFwibWFyZ2luXCIgKSB7XG5cdFx0XHRkZWx0YSArPSBqUXVlcnkuY3NzKCBlbGVtLCBib3ggKyBjc3NFeHBhbmRbIGkgXSwgdHJ1ZSwgc3R5bGVzICk7XG5cdFx0fVxuXG5cdFx0Ly8gSWYgd2UgZ2V0IGhlcmUgd2l0aCBhIGNvbnRlbnQtYm94LCB3ZSdyZSBzZWVraW5nIFwicGFkZGluZ1wiIG9yIFwiYm9yZGVyXCIgb3IgXCJtYXJnaW5cIlxuXHRcdGlmICggIWlzQm9yZGVyQm94ICkge1xuXG5cdFx0XHQvLyBBZGQgcGFkZGluZ1xuXHRcdFx0ZGVsdGEgKz0galF1ZXJ5LmNzcyggZWxlbSwgXCJwYWRkaW5nXCIgKyBjc3NFeHBhbmRbIGkgXSwgdHJ1ZSwgc3R5bGVzICk7XG5cblx0XHRcdC8vIEZvciBcImJvcmRlclwiIG9yIFwibWFyZ2luXCIsIGFkZCBib3JkZXJcblx0XHRcdGlmICggYm94ICE9PSBcInBhZGRpbmdcIiApIHtcblx0XHRcdFx0ZGVsdGEgKz0galF1ZXJ5LmNzcyggZWxlbSwgXCJib3JkZXJcIiArIGNzc0V4cGFuZFsgaSBdICsgXCJXaWR0aFwiLCB0cnVlLCBzdHlsZXMgKTtcblxuXHRcdFx0Ly8gQnV0IHN0aWxsIGtlZXAgdHJhY2sgb2YgaXQgb3RoZXJ3aXNlXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRleHRyYSArPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJvcmRlclwiICsgY3NzRXhwYW5kWyBpIF0gKyBcIldpZHRoXCIsIHRydWUsIHN0eWxlcyApO1xuXHRcdFx0fVxuXG5cdFx0Ly8gSWYgd2UgZ2V0IGhlcmUgd2l0aCBhIGJvcmRlci1ib3ggKGNvbnRlbnQgKyBwYWRkaW5nICsgYm9yZGVyKSwgd2UncmUgc2Vla2luZyBcImNvbnRlbnRcIiBvclxuXHRcdC8vIFwicGFkZGluZ1wiIG9yIFwibWFyZ2luXCJcblx0XHR9IGVsc2Uge1xuXG5cdFx0XHQvLyBGb3IgXCJjb250ZW50XCIsIHN1YnRyYWN0IHBhZGRpbmdcblx0XHRcdGlmICggYm94ID09PSBcImNvbnRlbnRcIiApIHtcblx0XHRcdFx0ZGVsdGEgLT0galF1ZXJ5LmNzcyggZWxlbSwgXCJwYWRkaW5nXCIgKyBjc3NFeHBhbmRbIGkgXSwgdHJ1ZSwgc3R5bGVzICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEZvciBcImNvbnRlbnRcIiBvciBcInBhZGRpbmdcIiwgc3VidHJhY3QgYm9yZGVyXG5cdFx0XHRpZiAoIGJveCAhPT0gXCJtYXJnaW5cIiApIHtcblx0XHRcdFx0ZGVsdGEgLT0galF1ZXJ5LmNzcyggZWxlbSwgXCJib3JkZXJcIiArIGNzc0V4cGFuZFsgaSBdICsgXCJXaWR0aFwiLCB0cnVlLCBzdHlsZXMgKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBBY2NvdW50IGZvciBwb3NpdGl2ZSBjb250ZW50LWJveCBzY3JvbGwgZ3V0dGVyIHdoZW4gcmVxdWVzdGVkIGJ5IHByb3ZpZGluZyBjb21wdXRlZFZhbFxuXHRpZiAoICFpc0JvcmRlckJveCAmJiBjb21wdXRlZFZhbCA+PSAwICkge1xuXG5cdFx0Ly8gb2Zmc2V0V2lkdGgvb2Zmc2V0SGVpZ2h0IGlzIGEgcm91bmRlZCBzdW0gb2YgY29udGVudCwgcGFkZGluZywgc2Nyb2xsIGd1dHRlciwgYW5kIGJvcmRlclxuXHRcdC8vIEFzc3VtaW5nIGludGVnZXIgc2Nyb2xsIGd1dHRlciwgc3VidHJhY3QgdGhlIHJlc3QgYW5kIHJvdW5kIGRvd25cblx0XHRkZWx0YSArPSBNYXRoLm1heCggMCwgTWF0aC5jZWlsKFxuXHRcdFx0ZWxlbVsgXCJvZmZzZXRcIiArIGRpbWVuc2lvblsgMCBdLnRvVXBwZXJDYXNlKCkgKyBkaW1lbnNpb24uc2xpY2UoIDEgKSBdIC1cblx0XHRcdGNvbXB1dGVkVmFsIC1cblx0XHRcdGRlbHRhIC1cblx0XHRcdGV4dHJhIC1cblx0XHRcdDAuNVxuXG5cdFx0Ly8gSWYgb2Zmc2V0V2lkdGgvb2Zmc2V0SGVpZ2h0IGlzIHVua25vd24sIHRoZW4gd2UgY2FuJ3QgZGV0ZXJtaW5lIGNvbnRlbnQtYm94IHNjcm9sbCBndXR0ZXJcblx0XHQvLyBVc2UgYW4gZXhwbGljaXQgemVybyB0byBhdm9pZCBOYU4gKGdoLTM5NjQpXG5cdFx0KSApIHx8IDA7XG5cdH1cblxuXHRyZXR1cm4gZGVsdGE7XG59XG5cbmZ1bmN0aW9uIGdldFdpZHRoT3JIZWlnaHQoIGVsZW0sIGRpbWVuc2lvbiwgZXh0cmEgKSB7XG5cblx0Ly8gU3RhcnQgd2l0aCBjb21wdXRlZCBzdHlsZVxuXHR2YXIgc3R5bGVzID0gZ2V0U3R5bGVzKCBlbGVtICksXG5cblx0XHQvLyBUbyBhdm9pZCBmb3JjaW5nIGEgcmVmbG93LCBvbmx5IGZldGNoIGJveFNpemluZyBpZiB3ZSBuZWVkIGl0IChnaC00MzIyKS5cblx0XHQvLyBGYWtlIGNvbnRlbnQtYm94IHVudGlsIHdlIGtub3cgaXQncyBuZWVkZWQgdG8ga25vdyB0aGUgdHJ1ZSB2YWx1ZS5cblx0XHRib3hTaXppbmdOZWVkZWQgPSAhc3VwcG9ydC5ib3hTaXppbmdSZWxpYWJsZSgpIHx8IGV4dHJhLFxuXHRcdGlzQm9yZGVyQm94ID0gYm94U2l6aW5nTmVlZGVkICYmXG5cdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCBcImJveFNpemluZ1wiLCBmYWxzZSwgc3R5bGVzICkgPT09IFwiYm9yZGVyLWJveFwiLFxuXHRcdHZhbHVlSXNCb3JkZXJCb3ggPSBpc0JvcmRlckJveCxcblxuXHRcdHZhbCA9IGN1ckNTUyggZWxlbSwgZGltZW5zaW9uLCBzdHlsZXMgKSxcblx0XHRvZmZzZXRQcm9wID0gXCJvZmZzZXRcIiArIGRpbWVuc2lvblsgMCBdLnRvVXBwZXJDYXNlKCkgKyBkaW1lbnNpb24uc2xpY2UoIDEgKTtcblxuXHQvLyBTdXBwb3J0OiBGaXJlZm94IDw9NTRcblx0Ly8gUmV0dXJuIGEgY29uZm91bmRpbmcgbm9uLXBpeGVsIHZhbHVlIG9yIGZlaWduIGlnbm9yYW5jZSwgYXMgYXBwcm9wcmlhdGUuXG5cdGlmICggcm51bW5vbnB4LnRlc3QoIHZhbCApICkge1xuXHRcdGlmICggIWV4dHJhICkge1xuXHRcdFx0cmV0dXJuIHZhbDtcblx0XHR9XG5cdFx0dmFsID0gXCJhdXRvXCI7XG5cdH1cblxuXG5cdC8vIFN1cHBvcnQ6IElFIDkgLSAxMSBvbmx5XG5cdC8vIFVzZSBvZmZzZXRXaWR0aC9vZmZzZXRIZWlnaHQgZm9yIHdoZW4gYm94IHNpemluZyBpcyB1bnJlbGlhYmxlLlxuXHQvLyBJbiB0aG9zZSBjYXNlcywgdGhlIGNvbXB1dGVkIHZhbHVlIGNhbiBiZSB0cnVzdGVkIHRvIGJlIGJvcmRlci1ib3guXG5cdGlmICggKCAhc3VwcG9ydC5ib3hTaXppbmdSZWxpYWJsZSgpICYmIGlzQm9yZGVyQm94IHx8XG5cblx0XHQvLyBTdXBwb3J0OiBJRSAxMCAtIDExKywgRWRnZSAxNSAtIDE4K1xuXHRcdC8vIElFL0VkZ2UgbWlzcmVwb3J0IGBnZXRDb21wdXRlZFN0eWxlYCBvZiB0YWJsZSByb3dzIHdpdGggd2lkdGgvaGVpZ2h0XG5cdFx0Ly8gc2V0IGluIENTUyB3aGlsZSBgb2Zmc2V0KmAgcHJvcGVydGllcyByZXBvcnQgY29ycmVjdCB2YWx1ZXMuXG5cdFx0Ly8gSW50ZXJlc3RpbmdseSwgaW4gc29tZSBjYXNlcyBJRSA5IGRvZXNuJ3Qgc3VmZmVyIGZyb20gdGhpcyBpc3N1ZS5cblx0XHQhc3VwcG9ydC5yZWxpYWJsZVRyRGltZW5zaW9ucygpICYmIG5vZGVOYW1lKCBlbGVtLCBcInRyXCIgKSB8fFxuXG5cdFx0Ly8gRmFsbCBiYWNrIHRvIG9mZnNldFdpZHRoL29mZnNldEhlaWdodCB3aGVuIHZhbHVlIGlzIFwiYXV0b1wiXG5cdFx0Ly8gVGhpcyBoYXBwZW5zIGZvciBpbmxpbmUgZWxlbWVudHMgd2l0aCBubyBleHBsaWNpdCBzZXR0aW5nIChnaC0zNTcxKVxuXHRcdHZhbCA9PT0gXCJhdXRvXCIgfHxcblxuXHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjEgLSA0LjMgb25seVxuXHRcdC8vIEFsc28gdXNlIG9mZnNldFdpZHRoL29mZnNldEhlaWdodCBmb3IgbWlzcmVwb3J0ZWQgaW5saW5lIGRpbWVuc2lvbnMgKGdoLTM2MDIpXG5cdFx0IXBhcnNlRmxvYXQoIHZhbCApICYmIGpRdWVyeS5jc3MoIGVsZW0sIFwiZGlzcGxheVwiLCBmYWxzZSwgc3R5bGVzICkgPT09IFwiaW5saW5lXCIgKSAmJlxuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoZSBlbGVtZW50IGlzIHZpc2libGUgJiBjb25uZWN0ZWRcblx0XHRlbGVtLmdldENsaWVudFJlY3RzKCkubGVuZ3RoICkge1xuXG5cdFx0aXNCb3JkZXJCb3ggPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJveFNpemluZ1wiLCBmYWxzZSwgc3R5bGVzICkgPT09IFwiYm9yZGVyLWJveFwiO1xuXG5cdFx0Ly8gV2hlcmUgYXZhaWxhYmxlLCBvZmZzZXRXaWR0aC9vZmZzZXRIZWlnaHQgYXBwcm94aW1hdGUgYm9yZGVyIGJveCBkaW1lbnNpb25zLlxuXHRcdC8vIFdoZXJlIG5vdCBhdmFpbGFibGUgKGUuZy4sIFNWRyksIGFzc3VtZSB1bnJlbGlhYmxlIGJveC1zaXppbmcgYW5kIGludGVycHJldCB0aGVcblx0XHQvLyByZXRyaWV2ZWQgdmFsdWUgYXMgYSBjb250ZW50IGJveCBkaW1lbnNpb24uXG5cdFx0dmFsdWVJc0JvcmRlckJveCA9IG9mZnNldFByb3AgaW4gZWxlbTtcblx0XHRpZiAoIHZhbHVlSXNCb3JkZXJCb3ggKSB7XG5cdFx0XHR2YWwgPSBlbGVtWyBvZmZzZXRQcm9wIF07XG5cdFx0fVxuXHR9XG5cblx0Ly8gTm9ybWFsaXplIFwiXCIgYW5kIGF1dG9cblx0dmFsID0gcGFyc2VGbG9hdCggdmFsICkgfHwgMDtcblxuXHQvLyBBZGp1c3QgZm9yIHRoZSBlbGVtZW50J3MgYm94IG1vZGVsXG5cdHJldHVybiAoIHZhbCArXG5cdFx0Ym94TW9kZWxBZGp1c3RtZW50KFxuXHRcdFx0ZWxlbSxcblx0XHRcdGRpbWVuc2lvbixcblx0XHRcdGV4dHJhIHx8ICggaXNCb3JkZXJCb3ggPyBcImJvcmRlclwiIDogXCJjb250ZW50XCIgKSxcblx0XHRcdHZhbHVlSXNCb3JkZXJCb3gsXG5cdFx0XHRzdHlsZXMsXG5cblx0XHRcdC8vIFByb3ZpZGUgdGhlIGN1cnJlbnQgY29tcHV0ZWQgc2l6ZSB0byByZXF1ZXN0IHNjcm9sbCBndXR0ZXIgY2FsY3VsYXRpb24gKGdoLTM1ODkpXG5cdFx0XHR2YWxcblx0XHQpXG5cdCkgKyBcInB4XCI7XG59XG5cbmpRdWVyeS5leHRlbmQoIHtcblxuXHQvLyBBZGQgaW4gc3R5bGUgcHJvcGVydHkgaG9va3MgZm9yIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHRcblx0Ly8gYmVoYXZpb3Igb2YgZ2V0dGluZyBhbmQgc2V0dGluZyBhIHN0eWxlIHByb3BlcnR5XG5cdGNzc0hvb2tzOiB7XG5cdFx0b3BhY2l0eToge1xuXHRcdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7XG5cdFx0XHRcdGlmICggY29tcHV0ZWQgKSB7XG5cblx0XHRcdFx0XHQvLyBXZSBzaG91bGQgYWx3YXlzIGdldCBhIG51bWJlciBiYWNrIGZyb20gb3BhY2l0eVxuXHRcdFx0XHRcdHZhciByZXQgPSBjdXJDU1MoIGVsZW0sIFwib3BhY2l0eVwiICk7XG5cdFx0XHRcdFx0cmV0dXJuIHJldCA9PT0gXCJcIiA/IFwiMVwiIDogcmV0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdC8vIERvbid0IGF1dG9tYXRpY2FsbHkgYWRkIFwicHhcIiB0byB0aGVzZSBwb3NzaWJseS11bml0bGVzcyBwcm9wZXJ0aWVzXG5cdGNzc051bWJlcjoge1xuXHRcdFwiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnRcIjogdHJ1ZSxcblx0XHRcImNvbHVtbkNvdW50XCI6IHRydWUsXG5cdFx0XCJmaWxsT3BhY2l0eVwiOiB0cnVlLFxuXHRcdFwiZmxleEdyb3dcIjogdHJ1ZSxcblx0XHRcImZsZXhTaHJpbmtcIjogdHJ1ZSxcblx0XHRcImZvbnRXZWlnaHRcIjogdHJ1ZSxcblx0XHRcImdyaWRBcmVhXCI6IHRydWUsXG5cdFx0XCJncmlkQ29sdW1uXCI6IHRydWUsXG5cdFx0XCJncmlkQ29sdW1uRW5kXCI6IHRydWUsXG5cdFx0XCJncmlkQ29sdW1uU3RhcnRcIjogdHJ1ZSxcblx0XHRcImdyaWRSb3dcIjogdHJ1ZSxcblx0XHRcImdyaWRSb3dFbmRcIjogdHJ1ZSxcblx0XHRcImdyaWRSb3dTdGFydFwiOiB0cnVlLFxuXHRcdFwibGluZUhlaWdodFwiOiB0cnVlLFxuXHRcdFwib3BhY2l0eVwiOiB0cnVlLFxuXHRcdFwib3JkZXJcIjogdHJ1ZSxcblx0XHRcIm9ycGhhbnNcIjogdHJ1ZSxcblx0XHRcIndpZG93c1wiOiB0cnVlLFxuXHRcdFwiekluZGV4XCI6IHRydWUsXG5cdFx0XCJ6b29tXCI6IHRydWVcblx0fSxcblxuXHQvLyBBZGQgaW4gcHJvcGVydGllcyB3aG9zZSBuYW1lcyB5b3Ugd2lzaCB0byBmaXggYmVmb3JlXG5cdC8vIHNldHRpbmcgb3IgZ2V0dGluZyB0aGUgdmFsdWVcblx0Y3NzUHJvcHM6IHt9LFxuXG5cdC8vIEdldCBhbmQgc2V0IHRoZSBzdHlsZSBwcm9wZXJ0eSBvbiBhIERPTSBOb2RlXG5cdHN0eWxlOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgdmFsdWUsIGV4dHJhICkge1xuXG5cdFx0Ly8gRG9uJ3Qgc2V0IHN0eWxlcyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzXG5cdFx0aWYgKCAhZWxlbSB8fCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDggfHwgIWVsZW0uc3R5bGUgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lXG5cdFx0dmFyIHJldCwgdHlwZSwgaG9va3MsXG5cdFx0XHRvcmlnTmFtZSA9IGNhbWVsQ2FzZSggbmFtZSApLFxuXHRcdFx0aXNDdXN0b21Qcm9wID0gcmN1c3RvbVByb3AudGVzdCggbmFtZSApLFxuXHRcdFx0c3R5bGUgPSBlbGVtLnN0eWxlO1xuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lLiBXZSBkb24ndFxuXHRcdC8vIHdhbnQgdG8gcXVlcnkgdGhlIHZhbHVlIGlmIGl0IGlzIGEgQ1NTIGN1c3RvbSBwcm9wZXJ0eVxuXHRcdC8vIHNpbmNlIHRoZXkgYXJlIHVzZXItZGVmaW5lZC5cblx0XHRpZiAoICFpc0N1c3RvbVByb3AgKSB7XG5cdFx0XHRuYW1lID0gZmluYWxQcm9wTmFtZSggb3JpZ05hbWUgKTtcblx0XHR9XG5cblx0XHQvLyBHZXRzIGhvb2sgZm9yIHRoZSBwcmVmaXhlZCB2ZXJzaW9uLCB0aGVuIHVucHJlZml4ZWQgdmVyc2lvblxuXHRcdGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gfHwgalF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdO1xuXG5cdFx0Ly8gQ2hlY2sgaWYgd2UncmUgc2V0dGluZyBhIHZhbHVlXG5cdFx0aWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0dHlwZSA9IHR5cGVvZiB2YWx1ZTtcblxuXHRcdFx0Ly8gQ29udmVydCBcIis9XCIgb3IgXCItPVwiIHRvIHJlbGF0aXZlIG51bWJlcnMgKCM3MzQ1KVxuXHRcdFx0aWYgKCB0eXBlID09PSBcInN0cmluZ1wiICYmICggcmV0ID0gcmNzc051bS5leGVjKCB2YWx1ZSApICkgJiYgcmV0WyAxIF0gKSB7XG5cdFx0XHRcdHZhbHVlID0gYWRqdXN0Q1NTKCBlbGVtLCBuYW1lLCByZXQgKTtcblxuXHRcdFx0XHQvLyBGaXhlcyBidWcgIzkyMzdcblx0XHRcdFx0dHlwZSA9IFwibnVtYmVyXCI7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE1ha2Ugc3VyZSB0aGF0IG51bGwgYW5kIE5hTiB2YWx1ZXMgYXJlbid0IHNldCAoIzcxMTYpXG5cdFx0XHRpZiAoIHZhbHVlID09IG51bGwgfHwgdmFsdWUgIT09IHZhbHVlICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIGEgbnVtYmVyIHdhcyBwYXNzZWQgaW4sIGFkZCB0aGUgdW5pdCAoZXhjZXB0IGZvciBjZXJ0YWluIENTUyBwcm9wZXJ0aWVzKVxuXHRcdFx0Ly8gVGhlIGlzQ3VzdG9tUHJvcCBjaGVjayBjYW4gYmUgcmVtb3ZlZCBpbiBqUXVlcnkgNC4wIHdoZW4gd2Ugb25seSBhdXRvLWFwcGVuZFxuXHRcdFx0Ly8gXCJweFwiIHRvIGEgZmV3IGhhcmRjb2RlZCB2YWx1ZXMuXG5cdFx0XHRpZiAoIHR5cGUgPT09IFwibnVtYmVyXCIgJiYgIWlzQ3VzdG9tUHJvcCApIHtcblx0XHRcdFx0dmFsdWUgKz0gcmV0ICYmIHJldFsgMyBdIHx8ICggalF1ZXJ5LmNzc051bWJlclsgb3JpZ05hbWUgXSA/IFwiXCIgOiBcInB4XCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gYmFja2dyb3VuZC0qIHByb3BzIGFmZmVjdCBvcmlnaW5hbCBjbG9uZSdzIHZhbHVlc1xuXHRcdFx0aWYgKCAhc3VwcG9ydC5jbGVhckNsb25lU3R5bGUgJiYgdmFsdWUgPT09IFwiXCIgJiYgbmFtZS5pbmRleE9mKCBcImJhY2tncm91bmRcIiApID09PSAwICkge1xuXHRcdFx0XHRzdHlsZVsgbmFtZSBdID0gXCJpbmhlcml0XCI7XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQsIHVzZSB0aGF0IHZhbHVlLCBvdGhlcndpc2UganVzdCBzZXQgdGhlIHNwZWNpZmllZCB2YWx1ZVxuXHRcdFx0aWYgKCAhaG9va3MgfHwgISggXCJzZXRcIiBpbiBob29rcyApIHx8XG5cdFx0XHRcdCggdmFsdWUgPSBob29rcy5zZXQoIGVsZW0sIHZhbHVlLCBleHRyYSApICkgIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdFx0XHRpZiAoIGlzQ3VzdG9tUHJvcCApIHtcblx0XHRcdFx0XHRzdHlsZS5zZXRQcm9wZXJ0eSggbmFtZSwgdmFsdWUgKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzdHlsZVsgbmFtZSBdID0gdmFsdWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQgZ2V0IHRoZSBub24tY29tcHV0ZWQgdmFsdWUgZnJvbSB0aGVyZVxuXHRcdFx0aWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICYmXG5cdFx0XHRcdCggcmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBmYWxzZSwgZXh0cmEgKSApICE9PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gT3RoZXJ3aXNlIGp1c3QgZ2V0IHRoZSB2YWx1ZSBmcm9tIHRoZSBzdHlsZSBvYmplY3Rcblx0XHRcdHJldHVybiBzdHlsZVsgbmFtZSBdO1xuXHRcdH1cblx0fSxcblxuXHRjc3M6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBleHRyYSwgc3R5bGVzICkge1xuXHRcdHZhciB2YWwsIG51bSwgaG9va3MsXG5cdFx0XHRvcmlnTmFtZSA9IGNhbWVsQ2FzZSggbmFtZSApLFxuXHRcdFx0aXNDdXN0b21Qcm9wID0gcmN1c3RvbVByb3AudGVzdCggbmFtZSApO1xuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lLiBXZSBkb24ndFxuXHRcdC8vIHdhbnQgdG8gbW9kaWZ5IHRoZSB2YWx1ZSBpZiBpdCBpcyBhIENTUyBjdXN0b20gcHJvcGVydHlcblx0XHQvLyBzaW5jZSB0aGV5IGFyZSB1c2VyLWRlZmluZWQuXG5cdFx0aWYgKCAhaXNDdXN0b21Qcm9wICkge1xuXHRcdFx0bmFtZSA9IGZpbmFsUHJvcE5hbWUoIG9yaWdOYW1lICk7XG5cdFx0fVxuXG5cdFx0Ly8gVHJ5IHByZWZpeGVkIG5hbWUgZm9sbG93ZWQgYnkgdGhlIHVucHJlZml4ZWQgbmFtZVxuXHRcdGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gfHwgalF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdO1xuXG5cdFx0Ly8gSWYgYSBob29rIHdhcyBwcm92aWRlZCBnZXQgdGhlIGNvbXB1dGVkIHZhbHVlIGZyb20gdGhlcmVcblx0XHRpZiAoIGhvb2tzICYmIFwiZ2V0XCIgaW4gaG9va3MgKSB7XG5cdFx0XHR2YWwgPSBob29rcy5nZXQoIGVsZW0sIHRydWUsIGV4dHJhICk7XG5cdFx0fVxuXG5cdFx0Ly8gT3RoZXJ3aXNlLCBpZiBhIHdheSB0byBnZXQgdGhlIGNvbXB1dGVkIHZhbHVlIGV4aXN0cywgdXNlIHRoYXRcblx0XHRpZiAoIHZhbCA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0dmFsID0gY3VyQ1NTKCBlbGVtLCBuYW1lLCBzdHlsZXMgKTtcblx0XHR9XG5cblx0XHQvLyBDb252ZXJ0IFwibm9ybWFsXCIgdG8gY29tcHV0ZWQgdmFsdWVcblx0XHRpZiAoIHZhbCA9PT0gXCJub3JtYWxcIiAmJiBuYW1lIGluIGNzc05vcm1hbFRyYW5zZm9ybSApIHtcblx0XHRcdHZhbCA9IGNzc05vcm1hbFRyYW5zZm9ybVsgbmFtZSBdO1xuXHRcdH1cblxuXHRcdC8vIE1ha2UgbnVtZXJpYyBpZiBmb3JjZWQgb3IgYSBxdWFsaWZpZXIgd2FzIHByb3ZpZGVkIGFuZCB2YWwgbG9va3MgbnVtZXJpY1xuXHRcdGlmICggZXh0cmEgPT09IFwiXCIgfHwgZXh0cmEgKSB7XG5cdFx0XHRudW0gPSBwYXJzZUZsb2F0KCB2YWwgKTtcblx0XHRcdHJldHVybiBleHRyYSA9PT0gdHJ1ZSB8fCBpc0Zpbml0ZSggbnVtICkgPyBudW0gfHwgMCA6IHZhbDtcblx0XHR9XG5cblx0XHRyZXR1cm4gdmFsO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5lYWNoKCBbIFwiaGVpZ2h0XCIsIFwid2lkdGhcIiBdLCBmdW5jdGlvbiggX2ksIGRpbWVuc2lvbiApIHtcblx0alF1ZXJ5LmNzc0hvb2tzWyBkaW1lbnNpb24gXSA9IHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCwgZXh0cmEgKSB7XG5cdFx0XHRpZiAoIGNvbXB1dGVkICkge1xuXG5cdFx0XHRcdC8vIENlcnRhaW4gZWxlbWVudHMgY2FuIGhhdmUgZGltZW5zaW9uIGluZm8gaWYgd2UgaW52aXNpYmx5IHNob3cgdGhlbVxuXHRcdFx0XHQvLyBidXQgaXQgbXVzdCBoYXZlIGEgY3VycmVudCBkaXNwbGF5IHN0eWxlIHRoYXQgd291bGQgYmVuZWZpdFxuXHRcdFx0XHRyZXR1cm4gcmRpc3BsYXlzd2FwLnRlc3QoIGpRdWVyeS5jc3MoIGVsZW0sIFwiZGlzcGxheVwiICkgKSAmJlxuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogU2FmYXJpIDgrXG5cdFx0XHRcdFx0Ly8gVGFibGUgY29sdW1ucyBpbiBTYWZhcmkgaGF2ZSBub24temVybyBvZmZzZXRXaWR0aCAmIHplcm9cblx0XHRcdFx0XHQvLyBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCB1bmxlc3MgZGlzcGxheSBpcyBjaGFuZ2VkLlxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuXHRcdFx0XHRcdC8vIFJ1bm5pbmcgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IG9uIGEgZGlzY29ubmVjdGVkIG5vZGVcblx0XHRcdFx0XHQvLyBpbiBJRSB0aHJvd3MgYW4gZXJyb3IuXG5cdFx0XHRcdFx0KCAhZWxlbS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCB8fCAhZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCApID9cblx0XHRcdFx0XHRzd2FwKCBlbGVtLCBjc3NTaG93LCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdHJldHVybiBnZXRXaWR0aE9ySGVpZ2h0KCBlbGVtLCBkaW1lbnNpb24sIGV4dHJhICk7XG5cdFx0XHRcdFx0fSApIDpcblx0XHRcdFx0XHRnZXRXaWR0aE9ySGVpZ2h0KCBlbGVtLCBkaW1lbnNpb24sIGV4dHJhICk7XG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlLCBleHRyYSApIHtcblx0XHRcdHZhciBtYXRjaGVzLFxuXHRcdFx0XHRzdHlsZXMgPSBnZXRTdHlsZXMoIGVsZW0gKSxcblxuXHRcdFx0XHQvLyBPbmx5IHJlYWQgc3R5bGVzLnBvc2l0aW9uIGlmIHRoZSB0ZXN0IGhhcyBhIGNoYW5jZSB0byBmYWlsXG5cdFx0XHRcdC8vIHRvIGF2b2lkIGZvcmNpbmcgYSByZWZsb3cuXG5cdFx0XHRcdHNjcm9sbGJveFNpemVCdWdneSA9ICFzdXBwb3J0LnNjcm9sbGJveFNpemUoKSAmJlxuXHRcdFx0XHRcdHN0eWxlcy5wb3NpdGlvbiA9PT0gXCJhYnNvbHV0ZVwiLFxuXG5cdFx0XHRcdC8vIFRvIGF2b2lkIGZvcmNpbmcgYSByZWZsb3csIG9ubHkgZmV0Y2ggYm94U2l6aW5nIGlmIHdlIG5lZWQgaXQgKGdoLTM5OTEpXG5cdFx0XHRcdGJveFNpemluZ05lZWRlZCA9IHNjcm9sbGJveFNpemVCdWdneSB8fCBleHRyYSxcblx0XHRcdFx0aXNCb3JkZXJCb3ggPSBib3hTaXppbmdOZWVkZWQgJiZcblx0XHRcdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCBcImJveFNpemluZ1wiLCBmYWxzZSwgc3R5bGVzICkgPT09IFwiYm9yZGVyLWJveFwiLFxuXHRcdFx0XHRzdWJ0cmFjdCA9IGV4dHJhID9cblx0XHRcdFx0XHRib3hNb2RlbEFkanVzdG1lbnQoXG5cdFx0XHRcdFx0XHRlbGVtLFxuXHRcdFx0XHRcdFx0ZGltZW5zaW9uLFxuXHRcdFx0XHRcdFx0ZXh0cmEsXG5cdFx0XHRcdFx0XHRpc0JvcmRlckJveCxcblx0XHRcdFx0XHRcdHN0eWxlc1xuXHRcdFx0XHRcdCkgOlxuXHRcdFx0XHRcdDA7XG5cblx0XHRcdC8vIEFjY291bnQgZm9yIHVucmVsaWFibGUgYm9yZGVyLWJveCBkaW1lbnNpb25zIGJ5IGNvbXBhcmluZyBvZmZzZXQqIHRvIGNvbXB1dGVkIGFuZFxuXHRcdFx0Ly8gZmFraW5nIGEgY29udGVudC1ib3ggdG8gZ2V0IGJvcmRlciBhbmQgcGFkZGluZyAoZ2gtMzY5OSlcblx0XHRcdGlmICggaXNCb3JkZXJCb3ggJiYgc2Nyb2xsYm94U2l6ZUJ1Z2d5ICkge1xuXHRcdFx0XHRzdWJ0cmFjdCAtPSBNYXRoLmNlaWwoXG5cdFx0XHRcdFx0ZWxlbVsgXCJvZmZzZXRcIiArIGRpbWVuc2lvblsgMCBdLnRvVXBwZXJDYXNlKCkgKyBkaW1lbnNpb24uc2xpY2UoIDEgKSBdIC1cblx0XHRcdFx0XHRwYXJzZUZsb2F0KCBzdHlsZXNbIGRpbWVuc2lvbiBdICkgLVxuXHRcdFx0XHRcdGJveE1vZGVsQWRqdXN0bWVudCggZWxlbSwgZGltZW5zaW9uLCBcImJvcmRlclwiLCBmYWxzZSwgc3R5bGVzICkgLVxuXHRcdFx0XHRcdDAuNVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDb252ZXJ0IHRvIHBpeGVscyBpZiB2YWx1ZSBhZGp1c3RtZW50IGlzIG5lZWRlZFxuXHRcdFx0aWYgKCBzdWJ0cmFjdCAmJiAoIG1hdGNoZXMgPSByY3NzTnVtLmV4ZWMoIHZhbHVlICkgKSAmJlxuXHRcdFx0XHQoIG1hdGNoZXNbIDMgXSB8fCBcInB4XCIgKSAhPT0gXCJweFwiICkge1xuXG5cdFx0XHRcdGVsZW0uc3R5bGVbIGRpbWVuc2lvbiBdID0gdmFsdWU7XG5cdFx0XHRcdHZhbHVlID0galF1ZXJ5LmNzcyggZWxlbSwgZGltZW5zaW9uICk7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBzZXRQb3NpdGl2ZU51bWJlciggZWxlbSwgdmFsdWUsIHN1YnRyYWN0ICk7XG5cdFx0fVxuXHR9O1xufSApO1xuXG5qUXVlcnkuY3NzSG9va3MubWFyZ2luTGVmdCA9IGFkZEdldEhvb2tJZiggc3VwcG9ydC5yZWxpYWJsZU1hcmdpbkxlZnQsXG5cdGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCApIHtcblx0XHRpZiAoIGNvbXB1dGVkICkge1xuXHRcdFx0cmV0dXJuICggcGFyc2VGbG9hdCggY3VyQ1NTKCBlbGVtLCBcIm1hcmdpbkxlZnRcIiApICkgfHxcblx0XHRcdFx0ZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC1cblx0XHRcdFx0XHRzd2FwKCBlbGVtLCB7IG1hcmdpbkxlZnQ6IDAgfSwgZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0O1xuXHRcdFx0XHRcdH0gKVxuXHRcdFx0KSArIFwicHhcIjtcblx0XHR9XG5cdH1cbik7XG5cbi8vIFRoZXNlIGhvb2tzIGFyZSB1c2VkIGJ5IGFuaW1hdGUgdG8gZXhwYW5kIHByb3BlcnRpZXNcbmpRdWVyeS5lYWNoKCB7XG5cdG1hcmdpbjogXCJcIixcblx0cGFkZGluZzogXCJcIixcblx0Ym9yZGVyOiBcIldpZHRoXCJcbn0sIGZ1bmN0aW9uKCBwcmVmaXgsIHN1ZmZpeCApIHtcblx0alF1ZXJ5LmNzc0hvb2tzWyBwcmVmaXggKyBzdWZmaXggXSA9IHtcblx0XHRleHBhbmQ6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRcdHZhciBpID0gMCxcblx0XHRcdFx0ZXhwYW5kZWQgPSB7fSxcblxuXHRcdFx0XHQvLyBBc3N1bWVzIGEgc2luZ2xlIG51bWJlciBpZiBub3QgYSBzdHJpbmdcblx0XHRcdFx0cGFydHMgPSB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyB2YWx1ZS5zcGxpdCggXCIgXCIgKSA6IFsgdmFsdWUgXTtcblxuXHRcdFx0Zm9yICggOyBpIDwgNDsgaSsrICkge1xuXHRcdFx0XHRleHBhbmRlZFsgcHJlZml4ICsgY3NzRXhwYW5kWyBpIF0gKyBzdWZmaXggXSA9XG5cdFx0XHRcdFx0cGFydHNbIGkgXSB8fCBwYXJ0c1sgaSAtIDIgXSB8fCBwYXJ0c1sgMCBdO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZXhwYW5kZWQ7XG5cdFx0fVxuXHR9O1xuXG5cdGlmICggcHJlZml4ICE9PSBcIm1hcmdpblwiICkge1xuXHRcdGpRdWVyeS5jc3NIb29rc1sgcHJlZml4ICsgc3VmZml4IF0uc2V0ID0gc2V0UG9zaXRpdmVOdW1iZXI7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRjc3M6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggZWxlbSwgbmFtZSwgdmFsdWUgKSB7XG5cdFx0XHR2YXIgc3R5bGVzLCBsZW4sXG5cdFx0XHRcdG1hcCA9IHt9LFxuXHRcdFx0XHRpID0gMDtcblxuXHRcdFx0aWYgKCBBcnJheS5pc0FycmF5KCBuYW1lICkgKSB7XG5cdFx0XHRcdHN0eWxlcyA9IGdldFN0eWxlcyggZWxlbSApO1xuXHRcdFx0XHRsZW4gPSBuYW1lLmxlbmd0aDtcblxuXHRcdFx0XHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0XHRtYXBbIG5hbWVbIGkgXSBdID0galF1ZXJ5LmNzcyggZWxlbSwgbmFtZVsgaSBdLCBmYWxzZSwgc3R5bGVzICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gbWFwO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdmFsdWUgIT09IHVuZGVmaW5lZCA/XG5cdFx0XHRcdGpRdWVyeS5zdHlsZSggZWxlbSwgbmFtZSwgdmFsdWUgKSA6XG5cdFx0XHRcdGpRdWVyeS5jc3MoIGVsZW0sIG5hbWUgKTtcblx0XHR9LCBuYW1lLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEgKTtcblx0fVxufSApO1xuXG5cbmZ1bmN0aW9uIFR3ZWVuKCBlbGVtLCBvcHRpb25zLCBwcm9wLCBlbmQsIGVhc2luZyApIHtcblx0cmV0dXJuIG5ldyBUd2Vlbi5wcm90b3R5cGUuaW5pdCggZWxlbSwgb3B0aW9ucywgcHJvcCwgZW5kLCBlYXNpbmcgKTtcbn1cbmpRdWVyeS5Ud2VlbiA9IFR3ZWVuO1xuXG5Ud2Vlbi5wcm90b3R5cGUgPSB7XG5cdGNvbnN0cnVjdG9yOiBUd2Vlbixcblx0aW5pdDogZnVuY3Rpb24oIGVsZW0sIG9wdGlvbnMsIHByb3AsIGVuZCwgZWFzaW5nLCB1bml0ICkge1xuXHRcdHRoaXMuZWxlbSA9IGVsZW07XG5cdFx0dGhpcy5wcm9wID0gcHJvcDtcblx0XHR0aGlzLmVhc2luZyA9IGVhc2luZyB8fCBqUXVlcnkuZWFzaW5nLl9kZWZhdWx0O1xuXHRcdHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cdFx0dGhpcy5zdGFydCA9IHRoaXMubm93ID0gdGhpcy5jdXIoKTtcblx0XHR0aGlzLmVuZCA9IGVuZDtcblx0XHR0aGlzLnVuaXQgPSB1bml0IHx8ICggalF1ZXJ5LmNzc051bWJlclsgcHJvcCBdID8gXCJcIiA6IFwicHhcIiApO1xuXHR9LFxuXHRjdXI6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBob29rcyA9IFR3ZWVuLnByb3BIb29rc1sgdGhpcy5wcm9wIF07XG5cblx0XHRyZXR1cm4gaG9va3MgJiYgaG9va3MuZ2V0ID9cblx0XHRcdGhvb2tzLmdldCggdGhpcyApIDpcblx0XHRcdFR3ZWVuLnByb3BIb29rcy5fZGVmYXVsdC5nZXQoIHRoaXMgKTtcblx0fSxcblx0cnVuOiBmdW5jdGlvbiggcGVyY2VudCApIHtcblx0XHR2YXIgZWFzZWQsXG5cdFx0XHRob29rcyA9IFR3ZWVuLnByb3BIb29rc1sgdGhpcy5wcm9wIF07XG5cblx0XHRpZiAoIHRoaXMub3B0aW9ucy5kdXJhdGlvbiApIHtcblx0XHRcdHRoaXMucG9zID0gZWFzZWQgPSBqUXVlcnkuZWFzaW5nWyB0aGlzLmVhc2luZyBdKFxuXHRcdFx0XHRwZXJjZW50LCB0aGlzLm9wdGlvbnMuZHVyYXRpb24gKiBwZXJjZW50LCAwLCAxLCB0aGlzLm9wdGlvbnMuZHVyYXRpb25cblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMucG9zID0gZWFzZWQgPSBwZXJjZW50O1xuXHRcdH1cblx0XHR0aGlzLm5vdyA9ICggdGhpcy5lbmQgLSB0aGlzLnN0YXJ0ICkgKiBlYXNlZCArIHRoaXMuc3RhcnQ7XG5cblx0XHRpZiAoIHRoaXMub3B0aW9ucy5zdGVwICkge1xuXHRcdFx0dGhpcy5vcHRpb25zLnN0ZXAuY2FsbCggdGhpcy5lbGVtLCB0aGlzLm5vdywgdGhpcyApO1xuXHRcdH1cblxuXHRcdGlmICggaG9va3MgJiYgaG9va3Muc2V0ICkge1xuXHRcdFx0aG9va3Muc2V0KCB0aGlzICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdFR3ZWVuLnByb3BIb29rcy5fZGVmYXVsdC5zZXQoIHRoaXMgKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cbn07XG5cblR3ZWVuLnByb3RvdHlwZS5pbml0LnByb3RvdHlwZSA9IFR3ZWVuLnByb3RvdHlwZTtcblxuVHdlZW4ucHJvcEhvb2tzID0ge1xuXHRfZGVmYXVsdDoge1xuXHRcdGdldDogZnVuY3Rpb24oIHR3ZWVuICkge1xuXHRcdFx0dmFyIHJlc3VsdDtcblxuXHRcdFx0Ly8gVXNlIGEgcHJvcGVydHkgb24gdGhlIGVsZW1lbnQgZGlyZWN0bHkgd2hlbiBpdCBpcyBub3QgYSBET00gZWxlbWVudCxcblx0XHRcdC8vIG9yIHdoZW4gdGhlcmUgaXMgbm8gbWF0Y2hpbmcgc3R5bGUgcHJvcGVydHkgdGhhdCBleGlzdHMuXG5cdFx0XHRpZiAoIHR3ZWVuLmVsZW0ubm9kZVR5cGUgIT09IDEgfHxcblx0XHRcdFx0dHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdICE9IG51bGwgJiYgdHdlZW4uZWxlbS5zdHlsZVsgdHdlZW4ucHJvcCBdID09IG51bGwgKSB7XG5cdFx0XHRcdHJldHVybiB0d2Vlbi5lbGVtWyB0d2Vlbi5wcm9wIF07XG5cdFx0XHR9XG5cblx0XHRcdC8vIFBhc3NpbmcgYW4gZW1wdHkgc3RyaW5nIGFzIGEgM3JkIHBhcmFtZXRlciB0byAuY3NzIHdpbGwgYXV0b21hdGljYWxseVxuXHRcdFx0Ly8gYXR0ZW1wdCBhIHBhcnNlRmxvYXQgYW5kIGZhbGxiYWNrIHRvIGEgc3RyaW5nIGlmIHRoZSBwYXJzZSBmYWlscy5cblx0XHRcdC8vIFNpbXBsZSB2YWx1ZXMgc3VjaCBhcyBcIjEwcHhcIiBhcmUgcGFyc2VkIHRvIEZsb2F0O1xuXHRcdFx0Ly8gY29tcGxleCB2YWx1ZXMgc3VjaCBhcyBcInJvdGF0ZSgxcmFkKVwiIGFyZSByZXR1cm5lZCBhcy1pcy5cblx0XHRcdHJlc3VsdCA9IGpRdWVyeS5jc3MoIHR3ZWVuLmVsZW0sIHR3ZWVuLnByb3AsIFwiXCIgKTtcblxuXHRcdFx0Ly8gRW1wdHkgc3RyaW5ncywgbnVsbCwgdW5kZWZpbmVkIGFuZCBcImF1dG9cIiBhcmUgY29udmVydGVkIHRvIDAuXG5cdFx0XHRyZXR1cm4gIXJlc3VsdCB8fCByZXN1bHQgPT09IFwiYXV0b1wiID8gMCA6IHJlc3VsdDtcblx0XHR9LFxuXHRcdHNldDogZnVuY3Rpb24oIHR3ZWVuICkge1xuXG5cdFx0XHQvLyBVc2Ugc3RlcCBob29rIGZvciBiYWNrIGNvbXBhdC5cblx0XHRcdC8vIFVzZSBjc3NIb29rIGlmIGl0cyB0aGVyZS5cblx0XHRcdC8vIFVzZSAuc3R5bGUgaWYgYXZhaWxhYmxlIGFuZCB1c2UgcGxhaW4gcHJvcGVydGllcyB3aGVyZSBhdmFpbGFibGUuXG5cdFx0XHRpZiAoIGpRdWVyeS5meC5zdGVwWyB0d2Vlbi5wcm9wIF0gKSB7XG5cdFx0XHRcdGpRdWVyeS5meC5zdGVwWyB0d2Vlbi5wcm9wIF0oIHR3ZWVuICk7XG5cdFx0XHR9IGVsc2UgaWYgKCB0d2Vlbi5lbGVtLm5vZGVUeXBlID09PSAxICYmIChcblx0XHRcdFx0alF1ZXJ5LmNzc0hvb2tzWyB0d2Vlbi5wcm9wIF0gfHxcblx0XHRcdFx0XHR0d2Vlbi5lbGVtLnN0eWxlWyBmaW5hbFByb3BOYW1lKCB0d2Vlbi5wcm9wICkgXSAhPSBudWxsICkgKSB7XG5cdFx0XHRcdGpRdWVyeS5zdHlsZSggdHdlZW4uZWxlbSwgdHdlZW4ucHJvcCwgdHdlZW4ubm93ICsgdHdlZW4udW5pdCApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdID0gdHdlZW4ubm93O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufTtcblxuLy8gU3VwcG9ydDogSUUgPD05IG9ubHlcbi8vIFBhbmljIGJhc2VkIGFwcHJvYWNoIHRvIHNldHRpbmcgdGhpbmdzIG9uIGRpc2Nvbm5lY3RlZCBub2Rlc1xuVHdlZW4ucHJvcEhvb2tzLnNjcm9sbFRvcCA9IFR3ZWVuLnByb3BIb29rcy5zY3JvbGxMZWZ0ID0ge1xuXHRzZXQ6IGZ1bmN0aW9uKCB0d2VlbiApIHtcblx0XHRpZiAoIHR3ZWVuLmVsZW0ubm9kZVR5cGUgJiYgdHdlZW4uZWxlbS5wYXJlbnROb2RlICkge1xuXHRcdFx0dHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdID0gdHdlZW4ubm93O1xuXHRcdH1cblx0fVxufTtcblxualF1ZXJ5LmVhc2luZyA9IHtcblx0bGluZWFyOiBmdW5jdGlvbiggcCApIHtcblx0XHRyZXR1cm4gcDtcblx0fSxcblx0c3dpbmc6IGZ1bmN0aW9uKCBwICkge1xuXHRcdHJldHVybiAwLjUgLSBNYXRoLmNvcyggcCAqIE1hdGguUEkgKSAvIDI7XG5cdH0sXG5cdF9kZWZhdWx0OiBcInN3aW5nXCJcbn07XG5cbmpRdWVyeS5meCA9IFR3ZWVuLnByb3RvdHlwZS5pbml0O1xuXG4vLyBCYWNrIGNvbXBhdCA8MS44IGV4dGVuc2lvbiBwb2ludFxualF1ZXJ5LmZ4LnN0ZXAgPSB7fTtcblxuXG5cblxudmFyXG5cdGZ4Tm93LCBpblByb2dyZXNzLFxuXHRyZnh0eXBlcyA9IC9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxcblx0cnJ1biA9IC9xdWV1ZUhvb2tzJC87XG5cbmZ1bmN0aW9uIHNjaGVkdWxlKCkge1xuXHRpZiAoIGluUHJvZ3Jlc3MgKSB7XG5cdFx0aWYgKCBkb2N1bWVudC5oaWRkZW4gPT09IGZhbHNlICYmIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgKSB7XG5cdFx0XHR3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCBzY2hlZHVsZSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR3aW5kb3cuc2V0VGltZW91dCggc2NoZWR1bGUsIGpRdWVyeS5meC5pbnRlcnZhbCApO1xuXHRcdH1cblxuXHRcdGpRdWVyeS5meC50aWNrKCk7XG5cdH1cbn1cblxuLy8gQW5pbWF0aW9ucyBjcmVhdGVkIHN5bmNocm9ub3VzbHkgd2lsbCBydW4gc3luY2hyb25vdXNseVxuZnVuY3Rpb24gY3JlYXRlRnhOb3coKSB7XG5cdHdpbmRvdy5zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHtcblx0XHRmeE5vdyA9IHVuZGVmaW5lZDtcblx0fSApO1xuXHRyZXR1cm4gKCBmeE5vdyA9IERhdGUubm93KCkgKTtcbn1cblxuLy8gR2VuZXJhdGUgcGFyYW1ldGVycyB0byBjcmVhdGUgYSBzdGFuZGFyZCBhbmltYXRpb25cbmZ1bmN0aW9uIGdlbkZ4KCB0eXBlLCBpbmNsdWRlV2lkdGggKSB7XG5cdHZhciB3aGljaCxcblx0XHRpID0gMCxcblx0XHRhdHRycyA9IHsgaGVpZ2h0OiB0eXBlIH07XG5cblx0Ly8gSWYgd2UgaW5jbHVkZSB3aWR0aCwgc3RlcCB2YWx1ZSBpcyAxIHRvIGRvIGFsbCBjc3NFeHBhbmQgdmFsdWVzLFxuXHQvLyBvdGhlcndpc2Ugc3RlcCB2YWx1ZSBpcyAyIHRvIHNraXAgb3ZlciBMZWZ0IGFuZCBSaWdodFxuXHRpbmNsdWRlV2lkdGggPSBpbmNsdWRlV2lkdGggPyAxIDogMDtcblx0Zm9yICggOyBpIDwgNDsgaSArPSAyIC0gaW5jbHVkZVdpZHRoICkge1xuXHRcdHdoaWNoID0gY3NzRXhwYW5kWyBpIF07XG5cdFx0YXR0cnNbIFwibWFyZ2luXCIgKyB3aGljaCBdID0gYXR0cnNbIFwicGFkZGluZ1wiICsgd2hpY2ggXSA9IHR5cGU7XG5cdH1cblxuXHRpZiAoIGluY2x1ZGVXaWR0aCApIHtcblx0XHRhdHRycy5vcGFjaXR5ID0gYXR0cnMud2lkdGggPSB0eXBlO1xuXHR9XG5cblx0cmV0dXJuIGF0dHJzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVUd2VlbiggdmFsdWUsIHByb3AsIGFuaW1hdGlvbiApIHtcblx0dmFyIHR3ZWVuLFxuXHRcdGNvbGxlY3Rpb24gPSAoIEFuaW1hdGlvbi50d2VlbmVyc1sgcHJvcCBdIHx8IFtdICkuY29uY2F0KCBBbmltYXRpb24udHdlZW5lcnNbIFwiKlwiIF0gKSxcblx0XHRpbmRleCA9IDAsXG5cdFx0bGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGg7XG5cdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0aWYgKCAoIHR3ZWVuID0gY29sbGVjdGlvblsgaW5kZXggXS5jYWxsKCBhbmltYXRpb24sIHByb3AsIHZhbHVlICkgKSApIHtcblxuXHRcdFx0Ly8gV2UncmUgZG9uZSB3aXRoIHRoaXMgcHJvcGVydHlcblx0XHRcdHJldHVybiB0d2Vlbjtcblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gZGVmYXVsdFByZWZpbHRlciggZWxlbSwgcHJvcHMsIG9wdHMgKSB7XG5cdHZhciBwcm9wLCB2YWx1ZSwgdG9nZ2xlLCBob29rcywgb2xkZmlyZSwgcHJvcFR3ZWVuLCByZXN0b3JlRGlzcGxheSwgZGlzcGxheSxcblx0XHRpc0JveCA9IFwid2lkdGhcIiBpbiBwcm9wcyB8fCBcImhlaWdodFwiIGluIHByb3BzLFxuXHRcdGFuaW0gPSB0aGlzLFxuXHRcdG9yaWcgPSB7fSxcblx0XHRzdHlsZSA9IGVsZW0uc3R5bGUsXG5cdFx0aGlkZGVuID0gZWxlbS5ub2RlVHlwZSAmJiBpc0hpZGRlbldpdGhpblRyZWUoIGVsZW0gKSxcblx0XHRkYXRhU2hvdyA9IGRhdGFQcml2LmdldCggZWxlbSwgXCJmeHNob3dcIiApO1xuXG5cdC8vIFF1ZXVlLXNraXBwaW5nIGFuaW1hdGlvbnMgaGlqYWNrIHRoZSBmeCBob29rc1xuXHRpZiAoICFvcHRzLnF1ZXVlICkge1xuXHRcdGhvb2tzID0galF1ZXJ5Ll9xdWV1ZUhvb2tzKCBlbGVtLCBcImZ4XCIgKTtcblx0XHRpZiAoIGhvb2tzLnVucXVldWVkID09IG51bGwgKSB7XG5cdFx0XHRob29rcy51bnF1ZXVlZCA9IDA7XG5cdFx0XHRvbGRmaXJlID0gaG9va3MuZW1wdHkuZmlyZTtcblx0XHRcdGhvb2tzLmVtcHR5LmZpcmUgPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCAhaG9va3MudW5xdWV1ZWQgKSB7XG5cdFx0XHRcdFx0b2xkZmlyZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH1cblx0XHRob29rcy51bnF1ZXVlZCsrO1xuXG5cdFx0YW5pbS5hbHdheXMoIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBFbnN1cmUgdGhlIGNvbXBsZXRlIGhhbmRsZXIgaXMgY2FsbGVkIGJlZm9yZSB0aGlzIGNvbXBsZXRlc1xuXHRcdFx0YW5pbS5hbHdheXMoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRob29rcy51bnF1ZXVlZC0tO1xuXHRcdFx0XHRpZiAoICFqUXVlcnkucXVldWUoIGVsZW0sIFwiZnhcIiApLmxlbmd0aCApIHtcblx0XHRcdFx0XHRob29rcy5lbXB0eS5maXJlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gKTtcblx0XHR9ICk7XG5cdH1cblxuXHQvLyBEZXRlY3Qgc2hvdy9oaWRlIGFuaW1hdGlvbnNcblx0Zm9yICggcHJvcCBpbiBwcm9wcyApIHtcblx0XHR2YWx1ZSA9IHByb3BzWyBwcm9wIF07XG5cdFx0aWYgKCByZnh0eXBlcy50ZXN0KCB2YWx1ZSApICkge1xuXHRcdFx0ZGVsZXRlIHByb3BzWyBwcm9wIF07XG5cdFx0XHR0b2dnbGUgPSB0b2dnbGUgfHwgdmFsdWUgPT09IFwidG9nZ2xlXCI7XG5cdFx0XHRpZiAoIHZhbHVlID09PSAoIGhpZGRlbiA/IFwiaGlkZVwiIDogXCJzaG93XCIgKSApIHtcblxuXHRcdFx0XHQvLyBQcmV0ZW5kIHRvIGJlIGhpZGRlbiBpZiB0aGlzIGlzIGEgXCJzaG93XCIgYW5kXG5cdFx0XHRcdC8vIHRoZXJlIGlzIHN0aWxsIGRhdGEgZnJvbSBhIHN0b3BwZWQgc2hvdy9oaWRlXG5cdFx0XHRcdGlmICggdmFsdWUgPT09IFwic2hvd1wiICYmIGRhdGFTaG93ICYmIGRhdGFTaG93WyBwcm9wIF0gIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRoaWRkZW4gPSB0cnVlO1xuXG5cdFx0XHRcdC8vIElnbm9yZSBhbGwgb3RoZXIgbm8tb3Agc2hvdy9oaWRlIGRhdGFcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0b3JpZ1sgcHJvcCBdID0gZGF0YVNob3cgJiYgZGF0YVNob3dbIHByb3AgXSB8fCBqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AgKTtcblx0XHR9XG5cdH1cblxuXHQvLyBCYWlsIG91dCBpZiB0aGlzIGlzIGEgbm8tb3AgbGlrZSAuaGlkZSgpLmhpZGUoKVxuXHRwcm9wVHdlZW4gPSAhalF1ZXJ5LmlzRW1wdHlPYmplY3QoIHByb3BzICk7XG5cdGlmICggIXByb3BUd2VlbiAmJiBqUXVlcnkuaXNFbXB0eU9iamVjdCggb3JpZyApICkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIFJlc3RyaWN0IFwib3ZlcmZsb3dcIiBhbmQgXCJkaXNwbGF5XCIgc3R5bGVzIGR1cmluZyBib3ggYW5pbWF0aW9uc1xuXHRpZiAoIGlzQm94ICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA8PTkgLSAxMSwgRWRnZSAxMiAtIDE1XG5cdFx0Ly8gUmVjb3JkIGFsbCAzIG92ZXJmbG93IGF0dHJpYnV0ZXMgYmVjYXVzZSBJRSBkb2VzIG5vdCBpbmZlciB0aGUgc2hvcnRoYW5kXG5cdFx0Ly8gZnJvbSBpZGVudGljYWxseS12YWx1ZWQgb3ZlcmZsb3dYIGFuZCBvdmVyZmxvd1kgYW5kIEVkZ2UganVzdCBtaXJyb3JzXG5cdFx0Ly8gdGhlIG92ZXJmbG93WCB2YWx1ZSB0aGVyZS5cblx0XHRvcHRzLm92ZXJmbG93ID0gWyBzdHlsZS5vdmVyZmxvdywgc3R5bGUub3ZlcmZsb3dYLCBzdHlsZS5vdmVyZmxvd1kgXTtcblxuXHRcdC8vIElkZW50aWZ5IGEgZGlzcGxheSB0eXBlLCBwcmVmZXJyaW5nIG9sZCBzaG93L2hpZGUgZGF0YSBvdmVyIHRoZSBDU1MgY2FzY2FkZVxuXHRcdHJlc3RvcmVEaXNwbGF5ID0gZGF0YVNob3cgJiYgZGF0YVNob3cuZGlzcGxheTtcblx0XHRpZiAoIHJlc3RvcmVEaXNwbGF5ID09IG51bGwgKSB7XG5cdFx0XHRyZXN0b3JlRGlzcGxheSA9IGRhdGFQcml2LmdldCggZWxlbSwgXCJkaXNwbGF5XCIgKTtcblx0XHR9XG5cdFx0ZGlzcGxheSA9IGpRdWVyeS5jc3MoIGVsZW0sIFwiZGlzcGxheVwiICk7XG5cdFx0aWYgKCBkaXNwbGF5ID09PSBcIm5vbmVcIiApIHtcblx0XHRcdGlmICggcmVzdG9yZURpc3BsYXkgKSB7XG5cdFx0XHRcdGRpc3BsYXkgPSByZXN0b3JlRGlzcGxheTtcblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0Ly8gR2V0IG5vbmVtcHR5IHZhbHVlKHMpIGJ5IHRlbXBvcmFyaWx5IGZvcmNpbmcgdmlzaWJpbGl0eVxuXHRcdFx0XHRzaG93SGlkZSggWyBlbGVtIF0sIHRydWUgKTtcblx0XHRcdFx0cmVzdG9yZURpc3BsYXkgPSBlbGVtLnN0eWxlLmRpc3BsYXkgfHwgcmVzdG9yZURpc3BsYXk7XG5cdFx0XHRcdGRpc3BsYXkgPSBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApO1xuXHRcdFx0XHRzaG93SGlkZSggWyBlbGVtIF0gKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBBbmltYXRlIGlubGluZSBlbGVtZW50cyBhcyBpbmxpbmUtYmxvY2tcblx0XHRpZiAoIGRpc3BsYXkgPT09IFwiaW5saW5lXCIgfHwgZGlzcGxheSA9PT0gXCJpbmxpbmUtYmxvY2tcIiAmJiByZXN0b3JlRGlzcGxheSAhPSBudWxsICkge1xuXHRcdFx0aWYgKCBqUXVlcnkuY3NzKCBlbGVtLCBcImZsb2F0XCIgKSA9PT0gXCJub25lXCIgKSB7XG5cblx0XHRcdFx0Ly8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgZGlzcGxheSB2YWx1ZSBhdCB0aGUgZW5kIG9mIHB1cmUgc2hvdy9oaWRlIGFuaW1hdGlvbnNcblx0XHRcdFx0aWYgKCAhcHJvcFR3ZWVuICkge1xuXHRcdFx0XHRcdGFuaW0uZG9uZSggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRzdHlsZS5kaXNwbGF5ID0gcmVzdG9yZURpc3BsYXk7XG5cdFx0XHRcdFx0fSApO1xuXHRcdFx0XHRcdGlmICggcmVzdG9yZURpc3BsYXkgPT0gbnVsbCApIHtcblx0XHRcdFx0XHRcdGRpc3BsYXkgPSBzdHlsZS5kaXNwbGF5O1xuXHRcdFx0XHRcdFx0cmVzdG9yZURpc3BsYXkgPSBkaXNwbGF5ID09PSBcIm5vbmVcIiA/IFwiXCIgOiBkaXNwbGF5O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRzdHlsZS5kaXNwbGF5ID0gXCJpbmxpbmUtYmxvY2tcIjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRpZiAoIG9wdHMub3ZlcmZsb3cgKSB7XG5cdFx0c3R5bGUub3ZlcmZsb3cgPSBcImhpZGRlblwiO1xuXHRcdGFuaW0uYWx3YXlzKCBmdW5jdGlvbigpIHtcblx0XHRcdHN0eWxlLm92ZXJmbG93ID0gb3B0cy5vdmVyZmxvd1sgMCBdO1xuXHRcdFx0c3R5bGUub3ZlcmZsb3dYID0gb3B0cy5vdmVyZmxvd1sgMSBdO1xuXHRcdFx0c3R5bGUub3ZlcmZsb3dZID0gb3B0cy5vdmVyZmxvd1sgMiBdO1xuXHRcdH0gKTtcblx0fVxuXG5cdC8vIEltcGxlbWVudCBzaG93L2hpZGUgYW5pbWF0aW9uc1xuXHRwcm9wVHdlZW4gPSBmYWxzZTtcblx0Zm9yICggcHJvcCBpbiBvcmlnICkge1xuXG5cdFx0Ly8gR2VuZXJhbCBzaG93L2hpZGUgc2V0dXAgZm9yIHRoaXMgZWxlbWVudCBhbmltYXRpb25cblx0XHRpZiAoICFwcm9wVHdlZW4gKSB7XG5cdFx0XHRpZiAoIGRhdGFTaG93ICkge1xuXHRcdFx0XHRpZiAoIFwiaGlkZGVuXCIgaW4gZGF0YVNob3cgKSB7XG5cdFx0XHRcdFx0aGlkZGVuID0gZGF0YVNob3cuaGlkZGVuO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkYXRhU2hvdyA9IGRhdGFQcml2LmFjY2VzcyggZWxlbSwgXCJmeHNob3dcIiwgeyBkaXNwbGF5OiByZXN0b3JlRGlzcGxheSB9ICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN0b3JlIGhpZGRlbi92aXNpYmxlIGZvciB0b2dnbGUgc28gYC5zdG9wKCkudG9nZ2xlKClgIFwicmV2ZXJzZXNcIlxuXHRcdFx0aWYgKCB0b2dnbGUgKSB7XG5cdFx0XHRcdGRhdGFTaG93LmhpZGRlbiA9ICFoaWRkZW47XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNob3cgZWxlbWVudHMgYmVmb3JlIGFuaW1hdGluZyB0aGVtXG5cdFx0XHRpZiAoIGhpZGRlbiApIHtcblx0XHRcdFx0c2hvd0hpZGUoIFsgZWxlbSBdLCB0cnVlICk7XG5cdFx0XHR9XG5cblx0XHRcdC8qIGVzbGludC1kaXNhYmxlIG5vLWxvb3AtZnVuYyAqL1xuXG5cdFx0XHRhbmltLmRvbmUoIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHRcdC8qIGVzbGludC1lbmFibGUgbm8tbG9vcC1mdW5jICovXG5cblx0XHRcdFx0Ly8gVGhlIGZpbmFsIHN0ZXAgb2YgYSBcImhpZGVcIiBhbmltYXRpb24gaXMgYWN0dWFsbHkgaGlkaW5nIHRoZSBlbGVtZW50XG5cdFx0XHRcdGlmICggIWhpZGRlbiApIHtcblx0XHRcdFx0XHRzaG93SGlkZSggWyBlbGVtIF0gKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRkYXRhUHJpdi5yZW1vdmUoIGVsZW0sIFwiZnhzaG93XCIgKTtcblx0XHRcdFx0Zm9yICggcHJvcCBpbiBvcmlnICkge1xuXHRcdFx0XHRcdGpRdWVyeS5zdHlsZSggZWxlbSwgcHJvcCwgb3JpZ1sgcHJvcCBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHQvLyBQZXItcHJvcGVydHkgc2V0dXBcblx0XHRwcm9wVHdlZW4gPSBjcmVhdGVUd2VlbiggaGlkZGVuID8gZGF0YVNob3dbIHByb3AgXSA6IDAsIHByb3AsIGFuaW0gKTtcblx0XHRpZiAoICEoIHByb3AgaW4gZGF0YVNob3cgKSApIHtcblx0XHRcdGRhdGFTaG93WyBwcm9wIF0gPSBwcm9wVHdlZW4uc3RhcnQ7XG5cdFx0XHRpZiAoIGhpZGRlbiApIHtcblx0XHRcdFx0cHJvcFR3ZWVuLmVuZCA9IHByb3BUd2Vlbi5zdGFydDtcblx0XHRcdFx0cHJvcFR3ZWVuLnN0YXJ0ID0gMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gcHJvcEZpbHRlciggcHJvcHMsIHNwZWNpYWxFYXNpbmcgKSB7XG5cdHZhciBpbmRleCwgbmFtZSwgZWFzaW5nLCB2YWx1ZSwgaG9va3M7XG5cblx0Ly8gY2FtZWxDYXNlLCBzcGVjaWFsRWFzaW5nIGFuZCBleHBhbmQgY3NzSG9vayBwYXNzXG5cdGZvciAoIGluZGV4IGluIHByb3BzICkge1xuXHRcdG5hbWUgPSBjYW1lbENhc2UoIGluZGV4ICk7XG5cdFx0ZWFzaW5nID0gc3BlY2lhbEVhc2luZ1sgbmFtZSBdO1xuXHRcdHZhbHVlID0gcHJvcHNbIGluZGV4IF07XG5cdFx0aWYgKCBBcnJheS5pc0FycmF5KCB2YWx1ZSApICkge1xuXHRcdFx0ZWFzaW5nID0gdmFsdWVbIDEgXTtcblx0XHRcdHZhbHVlID0gcHJvcHNbIGluZGV4IF0gPSB2YWx1ZVsgMCBdO1xuXHRcdH1cblxuXHRcdGlmICggaW5kZXggIT09IG5hbWUgKSB7XG5cdFx0XHRwcm9wc1sgbmFtZSBdID0gdmFsdWU7XG5cdFx0XHRkZWxldGUgcHJvcHNbIGluZGV4IF07XG5cdFx0fVxuXG5cdFx0aG9va3MgPSBqUXVlcnkuY3NzSG9va3NbIG5hbWUgXTtcblx0XHRpZiAoIGhvb2tzICYmIFwiZXhwYW5kXCIgaW4gaG9va3MgKSB7XG5cdFx0XHR2YWx1ZSA9IGhvb2tzLmV4cGFuZCggdmFsdWUgKTtcblx0XHRcdGRlbGV0ZSBwcm9wc1sgbmFtZSBdO1xuXG5cdFx0XHQvLyBOb3QgcXVpdGUgJC5leHRlbmQsIHRoaXMgd29uJ3Qgb3ZlcndyaXRlIGV4aXN0aW5nIGtleXMuXG5cdFx0XHQvLyBSZXVzaW5nICdpbmRleCcgYmVjYXVzZSB3ZSBoYXZlIHRoZSBjb3JyZWN0IFwibmFtZVwiXG5cdFx0XHRmb3IgKCBpbmRleCBpbiB2YWx1ZSApIHtcblx0XHRcdFx0aWYgKCAhKCBpbmRleCBpbiBwcm9wcyApICkge1xuXHRcdFx0XHRcdHByb3BzWyBpbmRleCBdID0gdmFsdWVbIGluZGV4IF07XG5cdFx0XHRcdFx0c3BlY2lhbEVhc2luZ1sgaW5kZXggXSA9IGVhc2luZztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRzcGVjaWFsRWFzaW5nWyBuYW1lIF0gPSBlYXNpbmc7XG5cdFx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIEFuaW1hdGlvbiggZWxlbSwgcHJvcGVydGllcywgb3B0aW9ucyApIHtcblx0dmFyIHJlc3VsdCxcblx0XHRzdG9wcGVkLFxuXHRcdGluZGV4ID0gMCxcblx0XHRsZW5ndGggPSBBbmltYXRpb24ucHJlZmlsdGVycy5sZW5ndGgsXG5cdFx0ZGVmZXJyZWQgPSBqUXVlcnkuRGVmZXJyZWQoKS5hbHdheXMoIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBEb24ndCBtYXRjaCBlbGVtIGluIHRoZSA6YW5pbWF0ZWQgc2VsZWN0b3Jcblx0XHRcdGRlbGV0ZSB0aWNrLmVsZW07XG5cdFx0fSApLFxuXHRcdHRpY2sgPSBmdW5jdGlvbigpIHtcblx0XHRcdGlmICggc3RvcHBlZCApIHtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdFx0dmFyIGN1cnJlbnRUaW1lID0gZnhOb3cgfHwgY3JlYXRlRnhOb3coKSxcblx0XHRcdFx0cmVtYWluaW5nID0gTWF0aC5tYXgoIDAsIGFuaW1hdGlvbi5zdGFydFRpbWUgKyBhbmltYXRpb24uZHVyYXRpb24gLSBjdXJyZW50VGltZSApLFxuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgMi4zIG9ubHlcblx0XHRcdFx0Ly8gQXJjaGFpYyBjcmFzaCBidWcgd29uJ3QgYWxsb3cgdXMgdG8gdXNlIGAxIC0gKCAwLjUgfHwgMCApYCAoIzEyNDk3KVxuXHRcdFx0XHR0ZW1wID0gcmVtYWluaW5nIC8gYW5pbWF0aW9uLmR1cmF0aW9uIHx8IDAsXG5cdFx0XHRcdHBlcmNlbnQgPSAxIC0gdGVtcCxcblx0XHRcdFx0aW5kZXggPSAwLFxuXHRcdFx0XHRsZW5ndGggPSBhbmltYXRpb24udHdlZW5zLmxlbmd0aDtcblxuXHRcdFx0Zm9yICggOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKyApIHtcblx0XHRcdFx0YW5pbWF0aW9uLnR3ZWVuc1sgaW5kZXggXS5ydW4oIHBlcmNlbnQgKTtcblx0XHRcdH1cblxuXHRcdFx0ZGVmZXJyZWQubm90aWZ5V2l0aCggZWxlbSwgWyBhbmltYXRpb24sIHBlcmNlbnQsIHJlbWFpbmluZyBdICk7XG5cblx0XHRcdC8vIElmIHRoZXJlJ3MgbW9yZSB0byBkbywgeWllbGRcblx0XHRcdGlmICggcGVyY2VudCA8IDEgJiYgbGVuZ3RoICkge1xuXHRcdFx0XHRyZXR1cm4gcmVtYWluaW5nO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiB0aGlzIHdhcyBhbiBlbXB0eSBhbmltYXRpb24sIHN5bnRoZXNpemUgYSBmaW5hbCBwcm9ncmVzcyBub3RpZmljYXRpb25cblx0XHRcdGlmICggIWxlbmd0aCApIHtcblx0XHRcdFx0ZGVmZXJyZWQubm90aWZ5V2l0aCggZWxlbSwgWyBhbmltYXRpb24sIDEsIDAgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBSZXNvbHZlIHRoZSBhbmltYXRpb24gYW5kIHJlcG9ydCBpdHMgY29uY2x1c2lvblxuXHRcdFx0ZGVmZXJyZWQucmVzb2x2ZVdpdGgoIGVsZW0sIFsgYW5pbWF0aW9uIF0gKTtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9LFxuXHRcdGFuaW1hdGlvbiA9IGRlZmVycmVkLnByb21pc2UoIHtcblx0XHRcdGVsZW06IGVsZW0sXG5cdFx0XHRwcm9wczogalF1ZXJ5LmV4dGVuZCgge30sIHByb3BlcnRpZXMgKSxcblx0XHRcdG9wdHM6IGpRdWVyeS5leHRlbmQoIHRydWUsIHtcblx0XHRcdFx0c3BlY2lhbEVhc2luZzoge30sXG5cdFx0XHRcdGVhc2luZzogalF1ZXJ5LmVhc2luZy5fZGVmYXVsdFxuXHRcdFx0fSwgb3B0aW9ucyApLFxuXHRcdFx0b3JpZ2luYWxQcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzLFxuXHRcdFx0b3JpZ2luYWxPcHRpb25zOiBvcHRpb25zLFxuXHRcdFx0c3RhcnRUaW1lOiBmeE5vdyB8fCBjcmVhdGVGeE5vdygpLFxuXHRcdFx0ZHVyYXRpb246IG9wdGlvbnMuZHVyYXRpb24sXG5cdFx0XHR0d2VlbnM6IFtdLFxuXHRcdFx0Y3JlYXRlVHdlZW46IGZ1bmN0aW9uKCBwcm9wLCBlbmQgKSB7XG5cdFx0XHRcdHZhciB0d2VlbiA9IGpRdWVyeS5Ud2VlbiggZWxlbSwgYW5pbWF0aW9uLm9wdHMsIHByb3AsIGVuZCxcblx0XHRcdFx0XHRhbmltYXRpb24ub3B0cy5zcGVjaWFsRWFzaW5nWyBwcm9wIF0gfHwgYW5pbWF0aW9uLm9wdHMuZWFzaW5nICk7XG5cdFx0XHRcdGFuaW1hdGlvbi50d2VlbnMucHVzaCggdHdlZW4gKTtcblx0XHRcdFx0cmV0dXJuIHR3ZWVuO1xuXHRcdFx0fSxcblx0XHRcdHN0b3A6IGZ1bmN0aW9uKCBnb3RvRW5kICkge1xuXHRcdFx0XHR2YXIgaW5kZXggPSAwLFxuXG5cdFx0XHRcdFx0Ly8gSWYgd2UgYXJlIGdvaW5nIHRvIHRoZSBlbmQsIHdlIHdhbnQgdG8gcnVuIGFsbCB0aGUgdHdlZW5zXG5cdFx0XHRcdFx0Ly8gb3RoZXJ3aXNlIHdlIHNraXAgdGhpcyBwYXJ0XG5cdFx0XHRcdFx0bGVuZ3RoID0gZ290b0VuZCA/IGFuaW1hdGlvbi50d2VlbnMubGVuZ3RoIDogMDtcblx0XHRcdFx0aWYgKCBzdG9wcGVkICkge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHN0b3BwZWQgPSB0cnVlO1xuXHRcdFx0XHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdFx0XHRcdGFuaW1hdGlvbi50d2VlbnNbIGluZGV4IF0ucnVuKCAxICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBSZXNvbHZlIHdoZW4gd2UgcGxheWVkIHRoZSBsYXN0IGZyYW1lOyBvdGhlcndpc2UsIHJlamVjdFxuXHRcdFx0XHRpZiAoIGdvdG9FbmQgKSB7XG5cdFx0XHRcdFx0ZGVmZXJyZWQubm90aWZ5V2l0aCggZWxlbSwgWyBhbmltYXRpb24sIDEsIDAgXSApO1xuXHRcdFx0XHRcdGRlZmVycmVkLnJlc29sdmVXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgZ290b0VuZCBdICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0ZGVmZXJyZWQucmVqZWN0V2l0aCggZWxlbSwgWyBhbmltYXRpb24sIGdvdG9FbmQgXSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0gKSxcblx0XHRwcm9wcyA9IGFuaW1hdGlvbi5wcm9wcztcblxuXHRwcm9wRmlsdGVyKCBwcm9wcywgYW5pbWF0aW9uLm9wdHMuc3BlY2lhbEVhc2luZyApO1xuXG5cdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0cmVzdWx0ID0gQW5pbWF0aW9uLnByZWZpbHRlcnNbIGluZGV4IF0uY2FsbCggYW5pbWF0aW9uLCBlbGVtLCBwcm9wcywgYW5pbWF0aW9uLm9wdHMgKTtcblx0XHRpZiAoIHJlc3VsdCApIHtcblx0XHRcdGlmICggaXNGdW5jdGlvbiggcmVzdWx0LnN0b3AgKSApIHtcblx0XHRcdFx0alF1ZXJ5Ll9xdWV1ZUhvb2tzKCBhbmltYXRpb24uZWxlbSwgYW5pbWF0aW9uLm9wdHMucXVldWUgKS5zdG9wID1cblx0XHRcdFx0XHRyZXN1bHQuc3RvcC5iaW5kKCByZXN1bHQgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fVxuXHR9XG5cblx0alF1ZXJ5Lm1hcCggcHJvcHMsIGNyZWF0ZVR3ZWVuLCBhbmltYXRpb24gKTtcblxuXHRpZiAoIGlzRnVuY3Rpb24oIGFuaW1hdGlvbi5vcHRzLnN0YXJ0ICkgKSB7XG5cdFx0YW5pbWF0aW9uLm9wdHMuc3RhcnQuY2FsbCggZWxlbSwgYW5pbWF0aW9uICk7XG5cdH1cblxuXHQvLyBBdHRhY2ggY2FsbGJhY2tzIGZyb20gb3B0aW9uc1xuXHRhbmltYXRpb25cblx0XHQucHJvZ3Jlc3MoIGFuaW1hdGlvbi5vcHRzLnByb2dyZXNzIClcblx0XHQuZG9uZSggYW5pbWF0aW9uLm9wdHMuZG9uZSwgYW5pbWF0aW9uLm9wdHMuY29tcGxldGUgKVxuXHRcdC5mYWlsKCBhbmltYXRpb24ub3B0cy5mYWlsIClcblx0XHQuYWx3YXlzKCBhbmltYXRpb24ub3B0cy5hbHdheXMgKTtcblxuXHRqUXVlcnkuZngudGltZXIoXG5cdFx0alF1ZXJ5LmV4dGVuZCggdGljaywge1xuXHRcdFx0ZWxlbTogZWxlbSxcblx0XHRcdGFuaW06IGFuaW1hdGlvbixcblx0XHRcdHF1ZXVlOiBhbmltYXRpb24ub3B0cy5xdWV1ZVxuXHRcdH0gKVxuXHQpO1xuXG5cdHJldHVybiBhbmltYXRpb247XG59XG5cbmpRdWVyeS5BbmltYXRpb24gPSBqUXVlcnkuZXh0ZW5kKCBBbmltYXRpb24sIHtcblxuXHR0d2VlbmVyczoge1xuXHRcdFwiKlwiOiBbIGZ1bmN0aW9uKCBwcm9wLCB2YWx1ZSApIHtcblx0XHRcdHZhciB0d2VlbiA9IHRoaXMuY3JlYXRlVHdlZW4oIHByb3AsIHZhbHVlICk7XG5cdFx0XHRhZGp1c3RDU1MoIHR3ZWVuLmVsZW0sIHByb3AsIHJjc3NOdW0uZXhlYyggdmFsdWUgKSwgdHdlZW4gKTtcblx0XHRcdHJldHVybiB0d2Vlbjtcblx0XHR9IF1cblx0fSxcblxuXHR0d2VlbmVyOiBmdW5jdGlvbiggcHJvcHMsIGNhbGxiYWNrICkge1xuXHRcdGlmICggaXNGdW5jdGlvbiggcHJvcHMgKSApIHtcblx0XHRcdGNhbGxiYWNrID0gcHJvcHM7XG5cdFx0XHRwcm9wcyA9IFsgXCIqXCIgXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cHJvcHMgPSBwcm9wcy5tYXRjaCggcm5vdGh0bWx3aGl0ZSApO1xuXHRcdH1cblxuXHRcdHZhciBwcm9wLFxuXHRcdFx0aW5kZXggPSAwLFxuXHRcdFx0bGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG5cdFx0Zm9yICggOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKyApIHtcblx0XHRcdHByb3AgPSBwcm9wc1sgaW5kZXggXTtcblx0XHRcdEFuaW1hdGlvbi50d2VlbmVyc1sgcHJvcCBdID0gQW5pbWF0aW9uLnR3ZWVuZXJzWyBwcm9wIF0gfHwgW107XG5cdFx0XHRBbmltYXRpb24udHdlZW5lcnNbIHByb3AgXS51bnNoaWZ0KCBjYWxsYmFjayApO1xuXHRcdH1cblx0fSxcblxuXHRwcmVmaWx0ZXJzOiBbIGRlZmF1bHRQcmVmaWx0ZXIgXSxcblxuXHRwcmVmaWx0ZXI6IGZ1bmN0aW9uKCBjYWxsYmFjaywgcHJlcGVuZCApIHtcblx0XHRpZiAoIHByZXBlbmQgKSB7XG5cdFx0XHRBbmltYXRpb24ucHJlZmlsdGVycy51bnNoaWZ0KCBjYWxsYmFjayApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRBbmltYXRpb24ucHJlZmlsdGVycy5wdXNoKCBjYWxsYmFjayApO1xuXHRcdH1cblx0fVxufSApO1xuXG5qUXVlcnkuc3BlZWQgPSBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgZm4gKSB7XG5cdHZhciBvcHQgPSBzcGVlZCAmJiB0eXBlb2Ygc3BlZWQgPT09IFwib2JqZWN0XCIgPyBqUXVlcnkuZXh0ZW5kKCB7fSwgc3BlZWQgKSA6IHtcblx0XHRjb21wbGV0ZTogZm4gfHwgIWZuICYmIGVhc2luZyB8fFxuXHRcdFx0aXNGdW5jdGlvbiggc3BlZWQgKSAmJiBzcGVlZCxcblx0XHRkdXJhdGlvbjogc3BlZWQsXG5cdFx0ZWFzaW5nOiBmbiAmJiBlYXNpbmcgfHwgZWFzaW5nICYmICFpc0Z1bmN0aW9uKCBlYXNpbmcgKSAmJiBlYXNpbmdcblx0fTtcblxuXHQvLyBHbyB0byB0aGUgZW5kIHN0YXRlIGlmIGZ4IGFyZSBvZmZcblx0aWYgKCBqUXVlcnkuZngub2ZmICkge1xuXHRcdG9wdC5kdXJhdGlvbiA9IDA7XG5cblx0fSBlbHNlIHtcblx0XHRpZiAoIHR5cGVvZiBvcHQuZHVyYXRpb24gIT09IFwibnVtYmVyXCIgKSB7XG5cdFx0XHRpZiAoIG9wdC5kdXJhdGlvbiBpbiBqUXVlcnkuZnguc3BlZWRzICkge1xuXHRcdFx0XHRvcHQuZHVyYXRpb24gPSBqUXVlcnkuZnguc3BlZWRzWyBvcHQuZHVyYXRpb24gXTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0b3B0LmR1cmF0aW9uID0galF1ZXJ5LmZ4LnNwZWVkcy5fZGVmYXVsdDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBOb3JtYWxpemUgb3B0LnF1ZXVlIC0gdHJ1ZS91bmRlZmluZWQvbnVsbCAtPiBcImZ4XCJcblx0aWYgKCBvcHQucXVldWUgPT0gbnVsbCB8fCBvcHQucXVldWUgPT09IHRydWUgKSB7XG5cdFx0b3B0LnF1ZXVlID0gXCJmeFwiO1xuXHR9XG5cblx0Ly8gUXVldWVpbmdcblx0b3B0Lm9sZCA9IG9wdC5jb21wbGV0ZTtcblxuXHRvcHQuY29tcGxldGUgPSBmdW5jdGlvbigpIHtcblx0XHRpZiAoIGlzRnVuY3Rpb24oIG9wdC5vbGQgKSApIHtcblx0XHRcdG9wdC5vbGQuY2FsbCggdGhpcyApO1xuXHRcdH1cblxuXHRcdGlmICggb3B0LnF1ZXVlICkge1xuXHRcdFx0alF1ZXJ5LmRlcXVldWUoIHRoaXMsIG9wdC5xdWV1ZSApO1xuXHRcdH1cblx0fTtcblxuXHRyZXR1cm4gb3B0O1xufTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRmYWRlVG86IGZ1bmN0aW9uKCBzcGVlZCwgdG8sIGVhc2luZywgY2FsbGJhY2sgKSB7XG5cblx0XHQvLyBTaG93IGFueSBoaWRkZW4gZWxlbWVudHMgYWZ0ZXIgc2V0dGluZyBvcGFjaXR5IHRvIDBcblx0XHRyZXR1cm4gdGhpcy5maWx0ZXIoIGlzSGlkZGVuV2l0aGluVHJlZSApLmNzcyggXCJvcGFjaXR5XCIsIDAgKS5zaG93KClcblxuXHRcdFx0Ly8gQW5pbWF0ZSB0byB0aGUgdmFsdWUgc3BlY2lmaWVkXG5cdFx0XHQuZW5kKCkuYW5pbWF0ZSggeyBvcGFjaXR5OiB0byB9LCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApO1xuXHR9LFxuXHRhbmltYXRlOiBmdW5jdGlvbiggcHJvcCwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7XG5cdFx0dmFyIGVtcHR5ID0galF1ZXJ5LmlzRW1wdHlPYmplY3QoIHByb3AgKSxcblx0XHRcdG9wdGFsbCA9IGpRdWVyeS5zcGVlZCggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSxcblx0XHRcdGRvQW5pbWF0aW9uID0gZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0Ly8gT3BlcmF0ZSBvbiBhIGNvcHkgb2YgcHJvcCBzbyBwZXItcHJvcGVydHkgZWFzaW5nIHdvbid0IGJlIGxvc3Rcblx0XHRcdFx0dmFyIGFuaW0gPSBBbmltYXRpb24oIHRoaXMsIGpRdWVyeS5leHRlbmQoIHt9LCBwcm9wICksIG9wdGFsbCApO1xuXG5cdFx0XHRcdC8vIEVtcHR5IGFuaW1hdGlvbnMsIG9yIGZpbmlzaGluZyByZXNvbHZlcyBpbW1lZGlhdGVseVxuXHRcdFx0XHRpZiAoIGVtcHR5IHx8IGRhdGFQcml2LmdldCggdGhpcywgXCJmaW5pc2hcIiApICkge1xuXHRcdFx0XHRcdGFuaW0uc3RvcCggdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXG5cdFx0ZG9BbmltYXRpb24uZmluaXNoID0gZG9BbmltYXRpb247XG5cblx0XHRyZXR1cm4gZW1wdHkgfHwgb3B0YWxsLnF1ZXVlID09PSBmYWxzZSA/XG5cdFx0XHR0aGlzLmVhY2goIGRvQW5pbWF0aW9uICkgOlxuXHRcdFx0dGhpcy5xdWV1ZSggb3B0YWxsLnF1ZXVlLCBkb0FuaW1hdGlvbiApO1xuXHR9LFxuXHRzdG9wOiBmdW5jdGlvbiggdHlwZSwgY2xlYXJRdWV1ZSwgZ290b0VuZCApIHtcblx0XHR2YXIgc3RvcFF1ZXVlID0gZnVuY3Rpb24oIGhvb2tzICkge1xuXHRcdFx0dmFyIHN0b3AgPSBob29rcy5zdG9wO1xuXHRcdFx0ZGVsZXRlIGhvb2tzLnN0b3A7XG5cdFx0XHRzdG9wKCBnb3RvRW5kICk7XG5cdFx0fTtcblxuXHRcdGlmICggdHlwZW9mIHR5cGUgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRnb3RvRW5kID0gY2xlYXJRdWV1ZTtcblx0XHRcdGNsZWFyUXVldWUgPSB0eXBlO1xuXHRcdFx0dHlwZSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0aWYgKCBjbGVhclF1ZXVlICkge1xuXHRcdFx0dGhpcy5xdWV1ZSggdHlwZSB8fCBcImZ4XCIsIFtdICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgZGVxdWV1ZSA9IHRydWUsXG5cdFx0XHRcdGluZGV4ID0gdHlwZSAhPSBudWxsICYmIHR5cGUgKyBcInF1ZXVlSG9va3NcIixcblx0XHRcdFx0dGltZXJzID0galF1ZXJ5LnRpbWVycyxcblx0XHRcdFx0ZGF0YSA9IGRhdGFQcml2LmdldCggdGhpcyApO1xuXG5cdFx0XHRpZiAoIGluZGV4ICkge1xuXHRcdFx0XHRpZiAoIGRhdGFbIGluZGV4IF0gJiYgZGF0YVsgaW5kZXggXS5zdG9wICkge1xuXHRcdFx0XHRcdHN0b3BRdWV1ZSggZGF0YVsgaW5kZXggXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRmb3IgKCBpbmRleCBpbiBkYXRhICkge1xuXHRcdFx0XHRcdGlmICggZGF0YVsgaW5kZXggXSAmJiBkYXRhWyBpbmRleCBdLnN0b3AgJiYgcnJ1bi50ZXN0KCBpbmRleCApICkge1xuXHRcdFx0XHRcdFx0c3RvcFF1ZXVlKCBkYXRhWyBpbmRleCBdICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGZvciAoIGluZGV4ID0gdGltZXJzLmxlbmd0aDsgaW5kZXgtLTsgKSB7XG5cdFx0XHRcdGlmICggdGltZXJzWyBpbmRleCBdLmVsZW0gPT09IHRoaXMgJiZcblx0XHRcdFx0XHQoIHR5cGUgPT0gbnVsbCB8fCB0aW1lcnNbIGluZGV4IF0ucXVldWUgPT09IHR5cGUgKSApIHtcblxuXHRcdFx0XHRcdHRpbWVyc1sgaW5kZXggXS5hbmltLnN0b3AoIGdvdG9FbmQgKTtcblx0XHRcdFx0XHRkZXF1ZXVlID0gZmFsc2U7XG5cdFx0XHRcdFx0dGltZXJzLnNwbGljZSggaW5kZXgsIDEgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdGFydCB0aGUgbmV4dCBpbiB0aGUgcXVldWUgaWYgdGhlIGxhc3Qgc3RlcCB3YXNuJ3QgZm9yY2VkLlxuXHRcdFx0Ly8gVGltZXJzIGN1cnJlbnRseSB3aWxsIGNhbGwgdGhlaXIgY29tcGxldGUgY2FsbGJhY2tzLCB3aGljaFxuXHRcdFx0Ly8gd2lsbCBkZXF1ZXVlIGJ1dCBvbmx5IGlmIHRoZXkgd2VyZSBnb3RvRW5kLlxuXHRcdFx0aWYgKCBkZXF1ZXVlIHx8ICFnb3RvRW5kICkge1xuXHRcdFx0XHRqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblx0ZmluaXNoOiBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRpZiAoIHR5cGUgIT09IGZhbHNlICkge1xuXHRcdFx0dHlwZSA9IHR5cGUgfHwgXCJmeFwiO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciBpbmRleCxcblx0XHRcdFx0ZGF0YSA9IGRhdGFQcml2LmdldCggdGhpcyApLFxuXHRcdFx0XHRxdWV1ZSA9IGRhdGFbIHR5cGUgKyBcInF1ZXVlXCIgXSxcblx0XHRcdFx0aG9va3MgPSBkYXRhWyB0eXBlICsgXCJxdWV1ZUhvb2tzXCIgXSxcblx0XHRcdFx0dGltZXJzID0galF1ZXJ5LnRpbWVycyxcblx0XHRcdFx0bGVuZ3RoID0gcXVldWUgPyBxdWV1ZS5sZW5ndGggOiAwO1xuXG5cdFx0XHQvLyBFbmFibGUgZmluaXNoaW5nIGZsYWcgb24gcHJpdmF0ZSBkYXRhXG5cdFx0XHRkYXRhLmZpbmlzaCA9IHRydWU7XG5cblx0XHRcdC8vIEVtcHR5IHRoZSBxdWV1ZSBmaXJzdFxuXHRcdFx0alF1ZXJ5LnF1ZXVlKCB0aGlzLCB0eXBlLCBbXSApO1xuXG5cdFx0XHRpZiAoIGhvb2tzICYmIGhvb2tzLnN0b3AgKSB7XG5cdFx0XHRcdGhvb2tzLnN0b3AuY2FsbCggdGhpcywgdHJ1ZSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBMb29rIGZvciBhbnkgYWN0aXZlIGFuaW1hdGlvbnMsIGFuZCBmaW5pc2ggdGhlbVxuXHRcdFx0Zm9yICggaW5kZXggPSB0aW1lcnMubGVuZ3RoOyBpbmRleC0tOyApIHtcblx0XHRcdFx0aWYgKCB0aW1lcnNbIGluZGV4IF0uZWxlbSA9PT0gdGhpcyAmJiB0aW1lcnNbIGluZGV4IF0ucXVldWUgPT09IHR5cGUgKSB7XG5cdFx0XHRcdFx0dGltZXJzWyBpbmRleCBdLmFuaW0uc3RvcCggdHJ1ZSApO1xuXHRcdFx0XHRcdHRpbWVycy5zcGxpY2UoIGluZGV4LCAxICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gTG9vayBmb3IgYW55IGFuaW1hdGlvbnMgaW4gdGhlIG9sZCBxdWV1ZSBhbmQgZmluaXNoIHRoZW1cblx0XHRcdGZvciAoIGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0XHRcdGlmICggcXVldWVbIGluZGV4IF0gJiYgcXVldWVbIGluZGV4IF0uZmluaXNoICkge1xuXHRcdFx0XHRcdHF1ZXVlWyBpbmRleCBdLmZpbmlzaC5jYWxsKCB0aGlzICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gVHVybiBvZmYgZmluaXNoaW5nIGZsYWdcblx0XHRcdGRlbGV0ZSBkYXRhLmZpbmlzaDtcblx0XHR9ICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmVhY2goIFsgXCJ0b2dnbGVcIiwgXCJzaG93XCIsIFwiaGlkZVwiIF0sIGZ1bmN0aW9uKCBfaSwgbmFtZSApIHtcblx0dmFyIGNzc0ZuID0galF1ZXJ5LmZuWyBuYW1lIF07XG5cdGpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiBzcGVlZCA9PSBudWxsIHx8IHR5cGVvZiBzcGVlZCA9PT0gXCJib29sZWFuXCIgP1xuXHRcdFx0Y3NzRm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApIDpcblx0XHRcdHRoaXMuYW5pbWF0ZSggZ2VuRngoIG5hbWUsIHRydWUgKSwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKTtcblx0fTtcbn0gKTtcblxuLy8gR2VuZXJhdGUgc2hvcnRjdXRzIGZvciBjdXN0b20gYW5pbWF0aW9uc1xualF1ZXJ5LmVhY2goIHtcblx0c2xpZGVEb3duOiBnZW5GeCggXCJzaG93XCIgKSxcblx0c2xpZGVVcDogZ2VuRngoIFwiaGlkZVwiICksXG5cdHNsaWRlVG9nZ2xlOiBnZW5GeCggXCJ0b2dnbGVcIiApLFxuXHRmYWRlSW46IHsgb3BhY2l0eTogXCJzaG93XCIgfSxcblx0ZmFkZU91dDogeyBvcGFjaXR5OiBcImhpZGVcIiB9LFxuXHRmYWRlVG9nZ2xlOiB7IG9wYWNpdHk6IFwidG9nZ2xlXCIgfVxufSwgZnVuY3Rpb24oIG5hbWUsIHByb3BzICkge1xuXHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIHtcblx0XHRyZXR1cm4gdGhpcy5hbmltYXRlKCBwcm9wcywgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKTtcblx0fTtcbn0gKTtcblxualF1ZXJ5LnRpbWVycyA9IFtdO1xualF1ZXJ5LmZ4LnRpY2sgPSBmdW5jdGlvbigpIHtcblx0dmFyIHRpbWVyLFxuXHRcdGkgPSAwLFxuXHRcdHRpbWVycyA9IGpRdWVyeS50aW1lcnM7XG5cblx0ZnhOb3cgPSBEYXRlLm5vdygpO1xuXG5cdGZvciAoIDsgaSA8IHRpbWVycy5sZW5ndGg7IGkrKyApIHtcblx0XHR0aW1lciA9IHRpbWVyc1sgaSBdO1xuXG5cdFx0Ly8gUnVuIHRoZSB0aW1lciBhbmQgc2FmZWx5IHJlbW92ZSBpdCB3aGVuIGRvbmUgKGFsbG93aW5nIGZvciBleHRlcm5hbCByZW1vdmFsKVxuXHRcdGlmICggIXRpbWVyKCkgJiYgdGltZXJzWyBpIF0gPT09IHRpbWVyICkge1xuXHRcdFx0dGltZXJzLnNwbGljZSggaS0tLCAxICk7XG5cdFx0fVxuXHR9XG5cblx0aWYgKCAhdGltZXJzLmxlbmd0aCApIHtcblx0XHRqUXVlcnkuZnguc3RvcCgpO1xuXHR9XG5cdGZ4Tm93ID0gdW5kZWZpbmVkO1xufTtcblxualF1ZXJ5LmZ4LnRpbWVyID0gZnVuY3Rpb24oIHRpbWVyICkge1xuXHRqUXVlcnkudGltZXJzLnB1c2goIHRpbWVyICk7XG5cdGpRdWVyeS5meC5zdGFydCgpO1xufTtcblxualF1ZXJ5LmZ4LmludGVydmFsID0gMTM7XG5qUXVlcnkuZnguc3RhcnQgPSBmdW5jdGlvbigpIHtcblx0aWYgKCBpblByb2dyZXNzICkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGluUHJvZ3Jlc3MgPSB0cnVlO1xuXHRzY2hlZHVsZSgpO1xufTtcblxualF1ZXJ5LmZ4LnN0b3AgPSBmdW5jdGlvbigpIHtcblx0aW5Qcm9ncmVzcyA9IG51bGw7XG59O1xuXG5qUXVlcnkuZnguc3BlZWRzID0ge1xuXHRzbG93OiA2MDAsXG5cdGZhc3Q6IDIwMCxcblxuXHQvLyBEZWZhdWx0IHNwZWVkXG5cdF9kZWZhdWx0OiA0MDBcbn07XG5cblxuLy8gQmFzZWQgb2ZmIG9mIHRoZSBwbHVnaW4gYnkgQ2xpbnQgSGVsZmVycywgd2l0aCBwZXJtaXNzaW9uLlxuLy8gaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTAwMzI0MDE0NzQ3L2h0dHA6Ly9ibGluZHNpZ25hbHMuY29tL2luZGV4LnBocC8yMDA5LzA3L2pxdWVyeS1kZWxheS9cbmpRdWVyeS5mbi5kZWxheSA9IGZ1bmN0aW9uKCB0aW1lLCB0eXBlICkge1xuXHR0aW1lID0galF1ZXJ5LmZ4ID8galF1ZXJ5LmZ4LnNwZWVkc1sgdGltZSBdIHx8IHRpbWUgOiB0aW1lO1xuXHR0eXBlID0gdHlwZSB8fCBcImZ4XCI7XG5cblx0cmV0dXJuIHRoaXMucXVldWUoIHR5cGUsIGZ1bmN0aW9uKCBuZXh0LCBob29rcyApIHtcblx0XHR2YXIgdGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCBuZXh0LCB0aW1lICk7XG5cdFx0aG9va3Muc3RvcCA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0d2luZG93LmNsZWFyVGltZW91dCggdGltZW91dCApO1xuXHRcdH07XG5cdH0gKTtcbn07XG5cblxuKCBmdW5jdGlvbigpIHtcblx0dmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJpbnB1dFwiICksXG5cdFx0c2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJzZWxlY3RcIiApLFxuXHRcdG9wdCA9IHNlbGVjdC5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJvcHRpb25cIiApICk7XG5cblx0aW5wdXQudHlwZSA9IFwiY2hlY2tib3hcIjtcblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4zIG9ubHlcblx0Ly8gRGVmYXVsdCB2YWx1ZSBmb3IgYSBjaGVja2JveCBzaG91bGQgYmUgXCJvblwiXG5cdHN1cHBvcnQuY2hlY2tPbiA9IGlucHV0LnZhbHVlICE9PSBcIlwiO1xuXG5cdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuXHQvLyBNdXN0IGFjY2VzcyBzZWxlY3RlZEluZGV4IHRvIG1ha2UgZGVmYXVsdCBvcHRpb25zIHNlbGVjdFxuXHRzdXBwb3J0Lm9wdFNlbGVjdGVkID0gb3B0LnNlbGVjdGVkO1xuXG5cdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuXHQvLyBBbiBpbnB1dCBsb3NlcyBpdHMgdmFsdWUgYWZ0ZXIgYmVjb21pbmcgYSByYWRpb1xuXHRpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiaW5wdXRcIiApO1xuXHRpbnB1dC52YWx1ZSA9IFwidFwiO1xuXHRpbnB1dC50eXBlID0gXCJyYWRpb1wiO1xuXHRzdXBwb3J0LnJhZGlvVmFsdWUgPSBpbnB1dC52YWx1ZSA9PT0gXCJ0XCI7XG59ICkoKTtcblxuXG52YXIgYm9vbEhvb2ssXG5cdGF0dHJIYW5kbGUgPSBqUXVlcnkuZXhwci5hdHRySGFuZGxlO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGF0dHI6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBqUXVlcnkuYXR0ciwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7XG5cdH0sXG5cblx0cmVtb3ZlQXR0cjogZnVuY3Rpb24oIG5hbWUgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkucmVtb3ZlQXR0ciggdGhpcywgbmFtZSApO1xuXHRcdH0gKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdGF0dHI6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSApIHtcblx0XHR2YXIgcmV0LCBob29rcyxcblx0XHRcdG5UeXBlID0gZWxlbS5ub2RlVHlwZTtcblxuXHRcdC8vIERvbid0IGdldC9zZXQgYXR0cmlidXRlcyBvbiB0ZXh0LCBjb21tZW50IGFuZCBhdHRyaWJ1dGUgbm9kZXNcblx0XHRpZiAoIG5UeXBlID09PSAzIHx8IG5UeXBlID09PSA4IHx8IG5UeXBlID09PSAyICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIEZhbGxiYWNrIHRvIHByb3Agd2hlbiBhdHRyaWJ1dGVzIGFyZSBub3Qgc3VwcG9ydGVkXG5cdFx0aWYgKCB0eXBlb2YgZWxlbS5nZXRBdHRyaWJ1dGUgPT09IFwidW5kZWZpbmVkXCIgKSB7XG5cdFx0XHRyZXR1cm4galF1ZXJ5LnByb3AoIGVsZW0sIG5hbWUsIHZhbHVlICk7XG5cdFx0fVxuXG5cdFx0Ly8gQXR0cmlidXRlIGhvb2tzIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZSBsb3dlcmNhc2UgdmVyc2lvblxuXHRcdC8vIEdyYWIgbmVjZXNzYXJ5IGhvb2sgaWYgb25lIGlzIGRlZmluZWRcblx0XHRpZiAoIG5UeXBlICE9PSAxIHx8ICFqUXVlcnkuaXNYTUxEb2MoIGVsZW0gKSApIHtcblx0XHRcdGhvb2tzID0galF1ZXJ5LmF0dHJIb29rc1sgbmFtZS50b0xvd2VyQ2FzZSgpIF0gfHxcblx0XHRcdFx0KCBqUXVlcnkuZXhwci5tYXRjaC5ib29sLnRlc3QoIG5hbWUgKSA/IGJvb2xIb29rIDogdW5kZWZpbmVkICk7XG5cdFx0fVxuXG5cdFx0aWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0aWYgKCB2YWx1ZSA9PT0gbnVsbCApIHtcblx0XHRcdFx0alF1ZXJ5LnJlbW92ZUF0dHIoIGVsZW0sIG5hbWUgKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIGhvb2tzICYmIFwic2V0XCIgaW4gaG9va3MgJiZcblx0XHRcdFx0KCByZXQgPSBob29rcy5zZXQoIGVsZW0sIHZhbHVlLCBuYW1lICkgKSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRyZXR1cm4gcmV0O1xuXHRcdFx0fVxuXG5cdFx0XHRlbGVtLnNldEF0dHJpYnV0ZSggbmFtZSwgdmFsdWUgKyBcIlwiICk7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXG5cdFx0aWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICYmICggcmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBuYW1lICkgKSAhPT0gbnVsbCApIHtcblx0XHRcdHJldHVybiByZXQ7XG5cdFx0fVxuXG5cdFx0cmV0ID0galF1ZXJ5LmZpbmQuYXR0ciggZWxlbSwgbmFtZSApO1xuXG5cdFx0Ly8gTm9uLWV4aXN0ZW50IGF0dHJpYnV0ZXMgcmV0dXJuIG51bGwsIHdlIG5vcm1hbGl6ZSB0byB1bmRlZmluZWRcblx0XHRyZXR1cm4gcmV0ID09IG51bGwgPyB1bmRlZmluZWQgOiByZXQ7XG5cdH0sXG5cblx0YXR0ckhvb2tzOiB7XG5cdFx0dHlwZToge1xuXHRcdFx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7XG5cdFx0XHRcdGlmICggIXN1cHBvcnQucmFkaW9WYWx1ZSAmJiB2YWx1ZSA9PT0gXCJyYWRpb1wiICYmXG5cdFx0XHRcdFx0bm9kZU5hbWUoIGVsZW0sIFwiaW5wdXRcIiApICkge1xuXHRcdFx0XHRcdHZhciB2YWwgPSBlbGVtLnZhbHVlO1xuXHRcdFx0XHRcdGVsZW0uc2V0QXR0cmlidXRlKCBcInR5cGVcIiwgdmFsdWUgKTtcblx0XHRcdFx0XHRpZiAoIHZhbCApIHtcblx0XHRcdFx0XHRcdGVsZW0udmFsdWUgPSB2YWw7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHRyZW1vdmVBdHRyOiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7XG5cdFx0dmFyIG5hbWUsXG5cdFx0XHRpID0gMCxcblxuXHRcdFx0Ly8gQXR0cmlidXRlIG5hbWVzIGNhbiBjb250YWluIG5vbi1IVE1MIHdoaXRlc3BhY2UgY2hhcmFjdGVyc1xuXHRcdFx0Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjYXR0cmlidXRlcy0yXG5cdFx0XHRhdHRyTmFtZXMgPSB2YWx1ZSAmJiB2YWx1ZS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApO1xuXG5cdFx0aWYgKCBhdHRyTmFtZXMgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdHdoaWxlICggKCBuYW1lID0gYXR0ck5hbWVzWyBpKysgXSApICkge1xuXHRcdFx0XHRlbGVtLnJlbW92ZUF0dHJpYnV0ZSggbmFtZSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSApO1xuXG4vLyBIb29rcyBmb3IgYm9vbGVhbiBhdHRyaWJ1dGVzXG5ib29sSG9vayA9IHtcblx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUsIG5hbWUgKSB7XG5cdFx0aWYgKCB2YWx1ZSA9PT0gZmFsc2UgKSB7XG5cblx0XHRcdC8vIFJlbW92ZSBib29sZWFuIGF0dHJpYnV0ZXMgd2hlbiBzZXQgdG8gZmFsc2Vcblx0XHRcdGpRdWVyeS5yZW1vdmVBdHRyKCBlbGVtLCBuYW1lICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGVsZW0uc2V0QXR0cmlidXRlKCBuYW1lLCBuYW1lICk7XG5cdFx0fVxuXHRcdHJldHVybiBuYW1lO1xuXHR9XG59O1xuXG5qUXVlcnkuZWFjaCggalF1ZXJ5LmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goIC9cXHcrL2cgKSwgZnVuY3Rpb24oIF9pLCBuYW1lICkge1xuXHR2YXIgZ2V0dGVyID0gYXR0ckhhbmRsZVsgbmFtZSBdIHx8IGpRdWVyeS5maW5kLmF0dHI7XG5cblx0YXR0ckhhbmRsZVsgbmFtZSBdID0gZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGlzWE1MICkge1xuXHRcdHZhciByZXQsIGhhbmRsZSxcblx0XHRcdGxvd2VyY2FzZU5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG5cblx0XHRpZiAoICFpc1hNTCApIHtcblxuXHRcdFx0Ly8gQXZvaWQgYW4gaW5maW5pdGUgbG9vcCBieSB0ZW1wb3JhcmlseSByZW1vdmluZyB0aGlzIGZ1bmN0aW9uIGZyb20gdGhlIGdldHRlclxuXHRcdFx0aGFuZGxlID0gYXR0ckhhbmRsZVsgbG93ZXJjYXNlTmFtZSBdO1xuXHRcdFx0YXR0ckhhbmRsZVsgbG93ZXJjYXNlTmFtZSBdID0gcmV0O1xuXHRcdFx0cmV0ID0gZ2V0dGVyKCBlbGVtLCBuYW1lLCBpc1hNTCApICE9IG51bGwgP1xuXHRcdFx0XHRsb3dlcmNhc2VOYW1lIDpcblx0XHRcdFx0bnVsbDtcblx0XHRcdGF0dHJIYW5kbGVbIGxvd2VyY2FzZU5hbWUgXSA9IGhhbmRsZTtcblx0XHR9XG5cdFx0cmV0dXJuIHJldDtcblx0fTtcbn0gKTtcblxuXG5cblxudmFyIHJmb2N1c2FibGUgPSAvXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLFxuXHRyY2xpY2thYmxlID0gL14oPzphfGFyZWEpJC9pO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdHByb3A6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBqUXVlcnkucHJvcCwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7XG5cdH0sXG5cblx0cmVtb3ZlUHJvcDogZnVuY3Rpb24oIG5hbWUgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRkZWxldGUgdGhpc1sgalF1ZXJ5LnByb3BGaXhbIG5hbWUgXSB8fCBuYW1lIF07XG5cdFx0fSApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5leHRlbmQoIHtcblx0cHJvcDogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlICkge1xuXHRcdHZhciByZXQsIGhvb2tzLFxuXHRcdFx0blR5cGUgPSBlbGVtLm5vZGVUeXBlO1xuXG5cdFx0Ly8gRG9uJ3QgZ2V0L3NldCBwcm9wZXJ0aWVzIG9uIHRleHQsIGNvbW1lbnQgYW5kIGF0dHJpYnV0ZSBub2Rlc1xuXHRcdGlmICggblR5cGUgPT09IDMgfHwgblR5cGUgPT09IDggfHwgblR5cGUgPT09IDIgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKCBuVHlwZSAhPT0gMSB8fCAhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICkgKSB7XG5cblx0XHRcdC8vIEZpeCBuYW1lIGFuZCBhdHRhY2ggaG9va3Ncblx0XHRcdG5hbWUgPSBqUXVlcnkucHJvcEZpeFsgbmFtZSBdIHx8IG5hbWU7XG5cdFx0XHRob29rcyA9IGpRdWVyeS5wcm9wSG9va3NbIG5hbWUgXTtcblx0XHR9XG5cblx0XHRpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRpZiAoIGhvb2tzICYmIFwic2V0XCIgaW4gaG9va3MgJiZcblx0XHRcdFx0KCByZXQgPSBob29rcy5zZXQoIGVsZW0sIHZhbHVlLCBuYW1lICkgKSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRyZXR1cm4gcmV0O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gKCBlbGVtWyBuYW1lIF0gPSB2YWx1ZSApO1xuXHRcdH1cblxuXHRcdGlmICggaG9va3MgJiYgXCJnZXRcIiBpbiBob29rcyAmJiAoIHJldCA9IGhvb2tzLmdldCggZWxlbSwgbmFtZSApICkgIT09IG51bGwgKSB7XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH1cblxuXHRcdHJldHVybiBlbGVtWyBuYW1lIF07XG5cdH0sXG5cblx0cHJvcEhvb2tzOiB7XG5cdFx0dGFiSW5kZXg6IHtcblx0XHRcdGdldDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTEgb25seVxuXHRcdFx0XHQvLyBlbGVtLnRhYkluZGV4IGRvZXNuJ3QgYWx3YXlzIHJldHVybiB0aGVcblx0XHRcdFx0Ly8gY29ycmVjdCB2YWx1ZSB3aGVuIGl0IGhhc24ndCBiZWVuIGV4cGxpY2l0bHkgc2V0XG5cdFx0XHRcdC8vIGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE0MTExNjIzMzM0Ny9odHRwOi8vZmx1aWRwcm9qZWN0Lm9yZy9ibG9nLzIwMDgvMDEvMDkvZ2V0dGluZy1zZXR0aW5nLWFuZC1yZW1vdmluZy10YWJpbmRleC12YWx1ZXMtd2l0aC1qYXZhc2NyaXB0L1xuXHRcdFx0XHQvLyBVc2UgcHJvcGVyIGF0dHJpYnV0ZSByZXRyaWV2YWwoIzEyMDcyKVxuXHRcdFx0XHR2YXIgdGFiaW5kZXggPSBqUXVlcnkuZmluZC5hdHRyKCBlbGVtLCBcInRhYmluZGV4XCIgKTtcblxuXHRcdFx0XHRpZiAoIHRhYmluZGV4ICkge1xuXHRcdFx0XHRcdHJldHVybiBwYXJzZUludCggdGFiaW5kZXgsIDEwICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0cmZvY3VzYWJsZS50ZXN0KCBlbGVtLm5vZGVOYW1lICkgfHxcblx0XHRcdFx0XHRyY2xpY2thYmxlLnRlc3QoIGVsZW0ubm9kZU5hbWUgKSAmJlxuXHRcdFx0XHRcdGVsZW0uaHJlZlxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRyZXR1cm4gMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiAtMTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0cHJvcEZpeDoge1xuXHRcdFwiZm9yXCI6IFwiaHRtbEZvclwiLFxuXHRcdFwiY2xhc3NcIjogXCJjbGFzc05hbWVcIlxuXHR9XG59ICk7XG5cbi8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuLy8gQWNjZXNzaW5nIHRoZSBzZWxlY3RlZEluZGV4IHByb3BlcnR5XG4vLyBmb3JjZXMgdGhlIGJyb3dzZXIgdG8gcmVzcGVjdCBzZXR0aW5nIHNlbGVjdGVkXG4vLyBvbiB0aGUgb3B0aW9uXG4vLyBUaGUgZ2V0dGVyIGVuc3VyZXMgYSBkZWZhdWx0IG9wdGlvbiBpcyBzZWxlY3RlZFxuLy8gd2hlbiBpbiBhbiBvcHRncm91cFxuLy8gZXNsaW50IHJ1bGUgXCJuby11bnVzZWQtZXhwcmVzc2lvbnNcIiBpcyBkaXNhYmxlZCBmb3IgdGhpcyBjb2RlXG4vLyBzaW5jZSBpdCBjb25zaWRlcnMgc3VjaCBhY2Nlc3Npb25zIG5vb3BcbmlmICggIXN1cHBvcnQub3B0U2VsZWN0ZWQgKSB7XG5cdGpRdWVyeS5wcm9wSG9va3Muc2VsZWN0ZWQgPSB7XG5cdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSApIHtcblxuXHRcdFx0LyogZXNsaW50IG5vLXVudXNlZC1leHByZXNzaW9uczogXCJvZmZcIiAqL1xuXG5cdFx0XHR2YXIgcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlO1xuXHRcdFx0aWYgKCBwYXJlbnQgJiYgcGFyZW50LnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdHBhcmVudC5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXg7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9LFxuXHRcdHNldDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdC8qIGVzbGludCBuby11bnVzZWQtZXhwcmVzc2lvbnM6IFwib2ZmXCIgKi9cblxuXHRcdFx0dmFyIHBhcmVudCA9IGVsZW0ucGFyZW50Tm9kZTtcblx0XHRcdGlmICggcGFyZW50ICkge1xuXHRcdFx0XHRwYXJlbnQuc2VsZWN0ZWRJbmRleDtcblxuXHRcdFx0XHRpZiAoIHBhcmVudC5wYXJlbnROb2RlICkge1xuXHRcdFx0XHRcdHBhcmVudC5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH07XG59XG5cbmpRdWVyeS5lYWNoKCBbXG5cdFwidGFiSW5kZXhcIixcblx0XCJyZWFkT25seVwiLFxuXHRcIm1heExlbmd0aFwiLFxuXHRcImNlbGxTcGFjaW5nXCIsXG5cdFwiY2VsbFBhZGRpbmdcIixcblx0XCJyb3dTcGFuXCIsXG5cdFwiY29sU3BhblwiLFxuXHRcInVzZU1hcFwiLFxuXHRcImZyYW1lQm9yZGVyXCIsXG5cdFwiY29udGVudEVkaXRhYmxlXCJcbl0sIGZ1bmN0aW9uKCkge1xuXHRqUXVlcnkucHJvcEZpeFsgdGhpcy50b0xvd2VyQ2FzZSgpIF0gPSB0aGlzO1xufSApO1xuXG5cblxuXG5cdC8vIFN0cmlwIGFuZCBjb2xsYXBzZSB3aGl0ZXNwYWNlIGFjY29yZGluZyB0byBIVE1MIHNwZWNcblx0Ly8gaHR0cHM6Ly9pbmZyYS5zcGVjLndoYXR3Zy5vcmcvI3N0cmlwLWFuZC1jb2xsYXBzZS1hc2NpaS13aGl0ZXNwYWNlXG5cdGZ1bmN0aW9uIHN0cmlwQW5kQ29sbGFwc2UoIHZhbHVlICkge1xuXHRcdHZhciB0b2tlbnMgPSB2YWx1ZS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFtdO1xuXHRcdHJldHVybiB0b2tlbnMuam9pbiggXCIgXCIgKTtcblx0fVxuXG5cbmZ1bmN0aW9uIGdldENsYXNzKCBlbGVtICkge1xuXHRyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUgJiYgZWxlbS5nZXRBdHRyaWJ1dGUoIFwiY2xhc3NcIiApIHx8IFwiXCI7XG59XG5cbmZ1bmN0aW9uIGNsYXNzZXNUb0FycmF5KCB2YWx1ZSApIHtcblx0aWYgKCBBcnJheS5pc0FycmF5KCB2YWx1ZSApICkge1xuXHRcdHJldHVybiB2YWx1ZTtcblx0fVxuXHRpZiAoIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRyZXR1cm4gdmFsdWUubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbXTtcblx0fVxuXHRyZXR1cm4gW107XG59XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0YWRkQ2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHR2YXIgY2xhc3NlcywgZWxlbSwgY3VyLCBjdXJWYWx1ZSwgY2xhenosIGosIGZpbmFsVmFsdWUsXG5cdFx0XHRpID0gMDtcblxuXHRcdGlmICggaXNGdW5jdGlvbiggdmFsdWUgKSApIHtcblx0XHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCBqICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS5hZGRDbGFzcyggdmFsdWUuY2FsbCggdGhpcywgaiwgZ2V0Q2xhc3MoIHRoaXMgKSApICk7XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0Y2xhc3NlcyA9IGNsYXNzZXNUb0FycmF5KCB2YWx1ZSApO1xuXG5cdFx0aWYgKCBjbGFzc2VzLmxlbmd0aCApIHtcblx0XHRcdHdoaWxlICggKCBlbGVtID0gdGhpc1sgaSsrIF0gKSApIHtcblx0XHRcdFx0Y3VyVmFsdWUgPSBnZXRDbGFzcyggZWxlbSApO1xuXHRcdFx0XHRjdXIgPSBlbGVtLm5vZGVUeXBlID09PSAxICYmICggXCIgXCIgKyBzdHJpcEFuZENvbGxhcHNlKCBjdXJWYWx1ZSApICsgXCIgXCIgKTtcblxuXHRcdFx0XHRpZiAoIGN1ciApIHtcblx0XHRcdFx0XHRqID0gMDtcblx0XHRcdFx0XHR3aGlsZSAoICggY2xhenogPSBjbGFzc2VzWyBqKysgXSApICkge1xuXHRcdFx0XHRcdFx0aWYgKCBjdXIuaW5kZXhPZiggXCIgXCIgKyBjbGF6eiArIFwiIFwiICkgPCAwICkge1xuXHRcdFx0XHRcdFx0XHRjdXIgKz0gY2xhenogKyBcIiBcIjtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBPbmx5IGFzc2lnbiBpZiBkaWZmZXJlbnQgdG8gYXZvaWQgdW5uZWVkZWQgcmVuZGVyaW5nLlxuXHRcdFx0XHRcdGZpbmFsVmFsdWUgPSBzdHJpcEFuZENvbGxhcHNlKCBjdXIgKTtcblx0XHRcdFx0XHRpZiAoIGN1clZhbHVlICE9PSBmaW5hbFZhbHVlICkge1xuXHRcdFx0XHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIFwiY2xhc3NcIiwgZmluYWxWYWx1ZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXHR9LFxuXG5cdHJlbW92ZUNsYXNzOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0dmFyIGNsYXNzZXMsIGVsZW0sIGN1ciwgY3VyVmFsdWUsIGNsYXp6LCBqLCBmaW5hbFZhbHVlLFxuXHRcdFx0aSA9IDA7XG5cblx0XHRpZiAoIGlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbiggaiApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkucmVtb3ZlQ2xhc3MoIHZhbHVlLmNhbGwoIHRoaXMsIGosIGdldENsYXNzKCB0aGlzICkgKSApO1xuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdGlmICggIWFyZ3VtZW50cy5sZW5ndGggKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5hdHRyKCBcImNsYXNzXCIsIFwiXCIgKTtcblx0XHR9XG5cblx0XHRjbGFzc2VzID0gY2xhc3Nlc1RvQXJyYXkoIHZhbHVlICk7XG5cblx0XHRpZiAoIGNsYXNzZXMubGVuZ3RoICkge1xuXHRcdFx0d2hpbGUgKCAoIGVsZW0gPSB0aGlzWyBpKysgXSApICkge1xuXHRcdFx0XHRjdXJWYWx1ZSA9IGdldENsYXNzKCBlbGVtICk7XG5cblx0XHRcdFx0Ly8gVGhpcyBleHByZXNzaW9uIGlzIGhlcmUgZm9yIGJldHRlciBjb21wcmVzc2liaWxpdHkgKHNlZSBhZGRDbGFzcylcblx0XHRcdFx0Y3VyID0gZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAoIFwiIFwiICsgc3RyaXBBbmRDb2xsYXBzZSggY3VyVmFsdWUgKSArIFwiIFwiICk7XG5cblx0XHRcdFx0aWYgKCBjdXIgKSB7XG5cdFx0XHRcdFx0aiA9IDA7XG5cdFx0XHRcdFx0d2hpbGUgKCAoIGNsYXp6ID0gY2xhc3Nlc1sgaisrIF0gKSApIHtcblxuXHRcdFx0XHRcdFx0Ly8gUmVtb3ZlICphbGwqIGluc3RhbmNlc1xuXHRcdFx0XHRcdFx0d2hpbGUgKCBjdXIuaW5kZXhPZiggXCIgXCIgKyBjbGF6eiArIFwiIFwiICkgPiAtMSApIHtcblx0XHRcdFx0XHRcdFx0Y3VyID0gY3VyLnJlcGxhY2UoIFwiIFwiICsgY2xhenogKyBcIiBcIiwgXCIgXCIgKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBPbmx5IGFzc2lnbiBpZiBkaWZmZXJlbnQgdG8gYXZvaWQgdW5uZWVkZWQgcmVuZGVyaW5nLlxuXHRcdFx0XHRcdGZpbmFsVmFsdWUgPSBzdHJpcEFuZENvbGxhcHNlKCBjdXIgKTtcblx0XHRcdFx0XHRpZiAoIGN1clZhbHVlICE9PSBmaW5hbFZhbHVlICkge1xuXHRcdFx0XHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIFwiY2xhc3NcIiwgZmluYWxWYWx1ZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXHR9LFxuXG5cdHRvZ2dsZUNsYXNzOiBmdW5jdGlvbiggdmFsdWUsIHN0YXRlVmFsICkge1xuXHRcdHZhciB0eXBlID0gdHlwZW9mIHZhbHVlLFxuXHRcdFx0aXNWYWxpZFZhbHVlID0gdHlwZSA9PT0gXCJzdHJpbmdcIiB8fCBBcnJheS5pc0FycmF5KCB2YWx1ZSApO1xuXG5cdFx0aWYgKCB0eXBlb2Ygc3RhdGVWYWwgPT09IFwiYm9vbGVhblwiICYmIGlzVmFsaWRWYWx1ZSApIHtcblx0XHRcdHJldHVybiBzdGF0ZVZhbCA/IHRoaXMuYWRkQ2xhc3MoIHZhbHVlICkgOiB0aGlzLnJlbW92ZUNsYXNzKCB2YWx1ZSApO1xuXHRcdH1cblxuXHRcdGlmICggaXNGdW5jdGlvbiggdmFsdWUgKSApIHtcblx0XHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCBpICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS50b2dnbGVDbGFzcyhcblx0XHRcdFx0XHR2YWx1ZS5jYWxsKCB0aGlzLCBpLCBnZXRDbGFzcyggdGhpcyApLCBzdGF0ZVZhbCApLFxuXHRcdFx0XHRcdHN0YXRlVmFsXG5cdFx0XHRcdCk7XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgY2xhc3NOYW1lLCBpLCBzZWxmLCBjbGFzc05hbWVzO1xuXG5cdFx0XHRpZiAoIGlzVmFsaWRWYWx1ZSApIHtcblxuXHRcdFx0XHQvLyBUb2dnbGUgaW5kaXZpZHVhbCBjbGFzcyBuYW1lc1xuXHRcdFx0XHRpID0gMDtcblx0XHRcdFx0c2VsZiA9IGpRdWVyeSggdGhpcyApO1xuXHRcdFx0XHRjbGFzc05hbWVzID0gY2xhc3Nlc1RvQXJyYXkoIHZhbHVlICk7XG5cblx0XHRcdFx0d2hpbGUgKCAoIGNsYXNzTmFtZSA9IGNsYXNzTmFtZXNbIGkrKyBdICkgKSB7XG5cblx0XHRcdFx0XHQvLyBDaGVjayBlYWNoIGNsYXNzTmFtZSBnaXZlbiwgc3BhY2Ugc2VwYXJhdGVkIGxpc3Rcblx0XHRcdFx0XHRpZiAoIHNlbGYuaGFzQ2xhc3MoIGNsYXNzTmFtZSApICkge1xuXHRcdFx0XHRcdFx0c2VsZi5yZW1vdmVDbGFzcyggY2xhc3NOYW1lICk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHNlbGYuYWRkQ2xhc3MoIGNsYXNzTmFtZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHQvLyBUb2dnbGUgd2hvbGUgY2xhc3MgbmFtZVxuXHRcdFx0fSBlbHNlIGlmICggdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB0eXBlID09PSBcImJvb2xlYW5cIiApIHtcblx0XHRcdFx0Y2xhc3NOYW1lID0gZ2V0Q2xhc3MoIHRoaXMgKTtcblx0XHRcdFx0aWYgKCBjbGFzc05hbWUgKSB7XG5cblx0XHRcdFx0XHQvLyBTdG9yZSBjbGFzc05hbWUgaWYgc2V0XG5cdFx0XHRcdFx0ZGF0YVByaXYuc2V0KCB0aGlzLCBcIl9fY2xhc3NOYW1lX19cIiwgY2xhc3NOYW1lICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBJZiB0aGUgZWxlbWVudCBoYXMgYSBjbGFzcyBuYW1lIG9yIGlmIHdlJ3JlIHBhc3NlZCBgZmFsc2VgLFxuXHRcdFx0XHQvLyB0aGVuIHJlbW92ZSB0aGUgd2hvbGUgY2xhc3NuYW1lIChpZiB0aGVyZSB3YXMgb25lLCB0aGUgYWJvdmUgc2F2ZWQgaXQpLlxuXHRcdFx0XHQvLyBPdGhlcndpc2UgYnJpbmcgYmFjayB3aGF0ZXZlciB3YXMgcHJldmlvdXNseSBzYXZlZCAoaWYgYW55dGhpbmcpLFxuXHRcdFx0XHQvLyBmYWxsaW5nIGJhY2sgdG8gdGhlIGVtcHR5IHN0cmluZyBpZiBub3RoaW5nIHdhcyBzdG9yZWQuXG5cdFx0XHRcdGlmICggdGhpcy5zZXRBdHRyaWJ1dGUgKSB7XG5cdFx0XHRcdFx0dGhpcy5zZXRBdHRyaWJ1dGUoIFwiY2xhc3NcIixcblx0XHRcdFx0XHRcdGNsYXNzTmFtZSB8fCB2YWx1ZSA9PT0gZmFsc2UgP1xuXHRcdFx0XHRcdFx0XHRcIlwiIDpcblx0XHRcdFx0XHRcdFx0ZGF0YVByaXYuZ2V0KCB0aGlzLCBcIl9fY2xhc3NOYW1lX19cIiApIHx8IFwiXCJcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdGhhc0NsYXNzOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0dmFyIGNsYXNzTmFtZSwgZWxlbSxcblx0XHRcdGkgPSAwO1xuXG5cdFx0Y2xhc3NOYW1lID0gXCIgXCIgKyBzZWxlY3RvciArIFwiIFwiO1xuXHRcdHdoaWxlICggKCBlbGVtID0gdGhpc1sgaSsrIF0gKSApIHtcblx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSAmJlxuXHRcdFx0XHQoIFwiIFwiICsgc3RyaXBBbmRDb2xsYXBzZSggZ2V0Q2xhc3MoIGVsZW0gKSApICsgXCIgXCIgKS5pbmRleE9mKCBjbGFzc05hbWUgKSA+IC0xICkge1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn0gKTtcblxuXG5cblxudmFyIHJyZXR1cm4gPSAvXFxyL2c7XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0dmFsOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0dmFyIGhvb2tzLCByZXQsIHZhbHVlSXNGdW5jdGlvbixcblx0XHRcdGVsZW0gPSB0aGlzWyAwIF07XG5cblx0XHRpZiAoICFhcmd1bWVudHMubGVuZ3RoICkge1xuXHRcdFx0aWYgKCBlbGVtICkge1xuXHRcdFx0XHRob29rcyA9IGpRdWVyeS52YWxIb29rc1sgZWxlbS50eXBlIF0gfHxcblx0XHRcdFx0XHRqUXVlcnkudmFsSG9va3NbIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSBdO1xuXG5cdFx0XHRcdGlmICggaG9va3MgJiZcblx0XHRcdFx0XHRcImdldFwiIGluIGhvb2tzICYmXG5cdFx0XHRcdFx0KCByZXQgPSBob29rcy5nZXQoIGVsZW0sIFwidmFsdWVcIiApICkgIT09IHVuZGVmaW5lZFxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRyZXR1cm4gcmV0O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0ID0gZWxlbS52YWx1ZTtcblxuXHRcdFx0XHQvLyBIYW5kbGUgbW9zdCBjb21tb24gc3RyaW5nIGNhc2VzXG5cdFx0XHRcdGlmICggdHlwZW9mIHJldCA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdFx0XHRyZXR1cm4gcmV0LnJlcGxhY2UoIHJyZXR1cm4sIFwiXCIgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEhhbmRsZSBjYXNlcyB3aGVyZSB2YWx1ZSBpcyBudWxsL3VuZGVmIG9yIG51bWJlclxuXHRcdFx0XHRyZXR1cm4gcmV0ID09IG51bGwgPyBcIlwiIDogcmV0O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dmFsdWVJc0Z1bmN0aW9uID0gaXNGdW5jdGlvbiggdmFsdWUgKTtcblxuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCBpICkge1xuXHRcdFx0dmFyIHZhbDtcblxuXHRcdFx0aWYgKCB0aGlzLm5vZGVUeXBlICE9PSAxICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGlmICggdmFsdWVJc0Z1bmN0aW9uICkge1xuXHRcdFx0XHR2YWwgPSB2YWx1ZS5jYWxsKCB0aGlzLCBpLCBqUXVlcnkoIHRoaXMgKS52YWwoKSApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dmFsID0gdmFsdWU7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFRyZWF0IG51bGwvdW5kZWZpbmVkIGFzIFwiXCI7IGNvbnZlcnQgbnVtYmVycyB0byBzdHJpbmdcblx0XHRcdGlmICggdmFsID09IG51bGwgKSB7XG5cdFx0XHRcdHZhbCA9IFwiXCI7XG5cblx0XHRcdH0gZWxzZSBpZiAoIHR5cGVvZiB2YWwgPT09IFwibnVtYmVyXCIgKSB7XG5cdFx0XHRcdHZhbCArPSBcIlwiO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBBcnJheS5pc0FycmF5KCB2YWwgKSApIHtcblx0XHRcdFx0dmFsID0galF1ZXJ5Lm1hcCggdmFsLCBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHZhbHVlID09IG51bGwgPyBcIlwiIDogdmFsdWUgKyBcIlwiO1xuXHRcdFx0XHR9ICk7XG5cdFx0XHR9XG5cblx0XHRcdGhvb2tzID0galF1ZXJ5LnZhbEhvb2tzWyB0aGlzLnR5cGUgXSB8fCBqUXVlcnkudmFsSG9va3NbIHRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKSBdO1xuXG5cdFx0XHQvLyBJZiBzZXQgcmV0dXJucyB1bmRlZmluZWQsIGZhbGwgYmFjayB0byBub3JtYWwgc2V0dGluZ1xuXHRcdFx0aWYgKCAhaG9va3MgfHwgISggXCJzZXRcIiBpbiBob29rcyApIHx8IGhvb2tzLnNldCggdGhpcywgdmFsLCBcInZhbHVlXCIgKSA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHR0aGlzLnZhbHVlID0gdmFsO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdHZhbEhvb2tzOiB7XG5cdFx0b3B0aW9uOiB7XG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0XHRcdHZhciB2YWwgPSBqUXVlcnkuZmluZC5hdHRyKCBlbGVtLCBcInZhbHVlXCIgKTtcblx0XHRcdFx0cmV0dXJuIHZhbCAhPSBudWxsID9cblx0XHRcdFx0XHR2YWwgOlxuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD0xMCAtIDExIG9ubHlcblx0XHRcdFx0XHQvLyBvcHRpb24udGV4dCB0aHJvd3MgZXhjZXB0aW9ucyAoIzE0Njg2LCAjMTQ4NTgpXG5cdFx0XHRcdFx0Ly8gU3RyaXAgYW5kIGNvbGxhcHNlIHdoaXRlc3BhY2Vcblx0XHRcdFx0XHQvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNzdHJpcC1hbmQtY29sbGFwc2Utd2hpdGVzcGFjZVxuXHRcdFx0XHRcdHN0cmlwQW5kQ29sbGFwc2UoIGpRdWVyeS50ZXh0KCBlbGVtICkgKTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdHNlbGVjdDoge1xuXHRcdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0dmFyIHZhbHVlLCBvcHRpb24sIGksXG5cdFx0XHRcdFx0b3B0aW9ucyA9IGVsZW0ub3B0aW9ucyxcblx0XHRcdFx0XHRpbmRleCA9IGVsZW0uc2VsZWN0ZWRJbmRleCxcblx0XHRcdFx0XHRvbmUgPSBlbGVtLnR5cGUgPT09IFwic2VsZWN0LW9uZVwiLFxuXHRcdFx0XHRcdHZhbHVlcyA9IG9uZSA/IG51bGwgOiBbXSxcblx0XHRcdFx0XHRtYXggPSBvbmUgPyBpbmRleCArIDEgOiBvcHRpb25zLmxlbmd0aDtcblxuXHRcdFx0XHRpZiAoIGluZGV4IDwgMCApIHtcblx0XHRcdFx0XHRpID0gbWF4O1xuXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0aSA9IG9uZSA/IGluZGV4IDogMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIExvb3AgdGhyb3VnaCBhbGwgdGhlIHNlbGVjdGVkIG9wdGlvbnNcblx0XHRcdFx0Zm9yICggOyBpIDwgbWF4OyBpKysgKSB7XG5cdFx0XHRcdFx0b3B0aW9uID0gb3B0aW9uc1sgaSBdO1xuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05IG9ubHlcblx0XHRcdFx0XHQvLyBJRTgtOSBkb2Vzbid0IHVwZGF0ZSBzZWxlY3RlZCBhZnRlciBmb3JtIHJlc2V0ICgjMjU1MSlcblx0XHRcdFx0XHRpZiAoICggb3B0aW9uLnNlbGVjdGVkIHx8IGkgPT09IGluZGV4ICkgJiZcblxuXHRcdFx0XHRcdFx0XHQvLyBEb24ndCByZXR1cm4gb3B0aW9ucyB0aGF0IGFyZSBkaXNhYmxlZCBvciBpbiBhIGRpc2FibGVkIG9wdGdyb3VwXG5cdFx0XHRcdFx0XHRcdCFvcHRpb24uZGlzYWJsZWQgJiZcblx0XHRcdFx0XHRcdFx0KCAhb3B0aW9uLnBhcmVudE5vZGUuZGlzYWJsZWQgfHxcblx0XHRcdFx0XHRcdFx0XHQhbm9kZU5hbWUoIG9wdGlvbi5wYXJlbnROb2RlLCBcIm9wdGdyb3VwXCIgKSApICkge1xuXG5cdFx0XHRcdFx0XHQvLyBHZXQgdGhlIHNwZWNpZmljIHZhbHVlIGZvciB0aGUgb3B0aW9uXG5cdFx0XHRcdFx0XHR2YWx1ZSA9IGpRdWVyeSggb3B0aW9uICkudmFsKCk7XG5cblx0XHRcdFx0XHRcdC8vIFdlIGRvbid0IG5lZWQgYW4gYXJyYXkgZm9yIG9uZSBzZWxlY3RzXG5cdFx0XHRcdFx0XHRpZiAoIG9uZSApIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQvLyBNdWx0aS1TZWxlY3RzIHJldHVybiBhbiBhcnJheVxuXHRcdFx0XHRcdFx0dmFsdWVzLnB1c2goIHZhbHVlICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIHZhbHVlcztcblx0XHRcdH0sXG5cblx0XHRcdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkge1xuXHRcdFx0XHR2YXIgb3B0aW9uU2V0LCBvcHRpb24sXG5cdFx0XHRcdFx0b3B0aW9ucyA9IGVsZW0ub3B0aW9ucyxcblx0XHRcdFx0XHR2YWx1ZXMgPSBqUXVlcnkubWFrZUFycmF5KCB2YWx1ZSApLFxuXHRcdFx0XHRcdGkgPSBvcHRpb25zLmxlbmd0aDtcblxuXHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRvcHRpb24gPSBvcHRpb25zWyBpIF07XG5cblx0XHRcdFx0XHQvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25kLWFzc2lnbiAqL1xuXG5cdFx0XHRcdFx0aWYgKCBvcHRpb24uc2VsZWN0ZWQgPVxuXHRcdFx0XHRcdFx0alF1ZXJ5LmluQXJyYXkoIGpRdWVyeS52YWxIb29rcy5vcHRpb24uZ2V0KCBvcHRpb24gKSwgdmFsdWVzICkgPiAtMVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0b3B0aW9uU2V0ID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvKiBlc2xpbnQtZW5hYmxlIG5vLWNvbmQtYXNzaWduICovXG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBGb3JjZSBicm93c2VycyB0byBiZWhhdmUgY29uc2lzdGVudGx5IHdoZW4gbm9uLW1hdGNoaW5nIHZhbHVlIGlzIHNldFxuXHRcdFx0XHRpZiAoICFvcHRpb25TZXQgKSB7XG5cdFx0XHRcdFx0ZWxlbS5zZWxlY3RlZEluZGV4ID0gLTE7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHZhbHVlcztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0gKTtcblxuLy8gUmFkaW9zIGFuZCBjaGVja2JveGVzIGdldHRlci9zZXR0ZXJcbmpRdWVyeS5lYWNoKCBbIFwicmFkaW9cIiwgXCJjaGVja2JveFwiIF0sIGZ1bmN0aW9uKCkge1xuXHRqUXVlcnkudmFsSG9va3NbIHRoaXMgXSA9IHtcblx0XHRzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHtcblx0XHRcdGlmICggQXJyYXkuaXNBcnJheSggdmFsdWUgKSApIHtcblx0XHRcdFx0cmV0dXJuICggZWxlbS5jaGVja2VkID0galF1ZXJ5LmluQXJyYXkoIGpRdWVyeSggZWxlbSApLnZhbCgpLCB2YWx1ZSApID4gLTEgKTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cdGlmICggIXN1cHBvcnQuY2hlY2tPbiApIHtcblx0XHRqUXVlcnkudmFsSG9va3NbIHRoaXMgXS5nZXQgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSggXCJ2YWx1ZVwiICkgPT09IG51bGwgPyBcIm9uXCIgOiBlbGVtLnZhbHVlO1xuXHRcdH07XG5cdH1cbn0gKTtcblxuXG5cblxuLy8gUmV0dXJuIGpRdWVyeSBmb3IgYXR0cmlidXRlcy1vbmx5IGluY2x1c2lvblxuXG5cbnN1cHBvcnQuZm9jdXNpbiA9IFwib25mb2N1c2luXCIgaW4gd2luZG93O1xuXG5cbnZhciByZm9jdXNNb3JwaCA9IC9eKD86Zm9jdXNpbmZvY3VzfGZvY3Vzb3V0Ymx1cikkLyxcblx0c3RvcFByb3BhZ2F0aW9uQ2FsbGJhY2sgPSBmdW5jdGlvbiggZSApIHtcblx0XHRlLnN0b3BQcm9wYWdhdGlvbigpO1xuXHR9O1xuXG5qUXVlcnkuZXh0ZW5kKCBqUXVlcnkuZXZlbnQsIHtcblxuXHR0cmlnZ2VyOiBmdW5jdGlvbiggZXZlbnQsIGRhdGEsIGVsZW0sIG9ubHlIYW5kbGVycyApIHtcblxuXHRcdHZhciBpLCBjdXIsIHRtcCwgYnViYmxlVHlwZSwgb250eXBlLCBoYW5kbGUsIHNwZWNpYWwsIGxhc3RFbGVtZW50LFxuXHRcdFx0ZXZlbnRQYXRoID0gWyBlbGVtIHx8IGRvY3VtZW50IF0sXG5cdFx0XHR0eXBlID0gaGFzT3duLmNhbGwoIGV2ZW50LCBcInR5cGVcIiApID8gZXZlbnQudHlwZSA6IGV2ZW50LFxuXHRcdFx0bmFtZXNwYWNlcyA9IGhhc093bi5jYWxsKCBldmVudCwgXCJuYW1lc3BhY2VcIiApID8gZXZlbnQubmFtZXNwYWNlLnNwbGl0KCBcIi5cIiApIDogW107XG5cblx0XHRjdXIgPSBsYXN0RWxlbWVudCA9IHRtcCA9IGVsZW0gPSBlbGVtIHx8IGRvY3VtZW50O1xuXG5cdFx0Ly8gRG9uJ3QgZG8gZXZlbnRzIG9uIHRleHQgYW5kIGNvbW1lbnQgbm9kZXNcblx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDMgfHwgZWxlbS5ub2RlVHlwZSA9PT0gOCApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBmb2N1cy9ibHVyIG1vcnBocyB0byBmb2N1c2luL291dDsgZW5zdXJlIHdlJ3JlIG5vdCBmaXJpbmcgdGhlbSByaWdodCBub3dcblx0XHRpZiAoIHJmb2N1c01vcnBoLnRlc3QoIHR5cGUgKyBqUXVlcnkuZXZlbnQudHJpZ2dlcmVkICkgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKCB0eXBlLmluZGV4T2YoIFwiLlwiICkgPiAtMSApIHtcblxuXHRcdFx0Ly8gTmFtZXNwYWNlZCB0cmlnZ2VyOyBjcmVhdGUgYSByZWdleHAgdG8gbWF0Y2ggZXZlbnQgdHlwZSBpbiBoYW5kbGUoKVxuXHRcdFx0bmFtZXNwYWNlcyA9IHR5cGUuc3BsaXQoIFwiLlwiICk7XG5cdFx0XHR0eXBlID0gbmFtZXNwYWNlcy5zaGlmdCgpO1xuXHRcdFx0bmFtZXNwYWNlcy5zb3J0KCk7XG5cdFx0fVxuXHRcdG9udHlwZSA9IHR5cGUuaW5kZXhPZiggXCI6XCIgKSA8IDAgJiYgXCJvblwiICsgdHlwZTtcblxuXHRcdC8vIENhbGxlciBjYW4gcGFzcyBpbiBhIGpRdWVyeS5FdmVudCBvYmplY3QsIE9iamVjdCwgb3IganVzdCBhbiBldmVudCB0eXBlIHN0cmluZ1xuXHRcdGV2ZW50ID0gZXZlbnRbIGpRdWVyeS5leHBhbmRvIF0gP1xuXHRcdFx0ZXZlbnQgOlxuXHRcdFx0bmV3IGpRdWVyeS5FdmVudCggdHlwZSwgdHlwZW9mIGV2ZW50ID09PSBcIm9iamVjdFwiICYmIGV2ZW50ICk7XG5cblx0XHQvLyBUcmlnZ2VyIGJpdG1hc2s6ICYgMSBmb3IgbmF0aXZlIGhhbmRsZXJzOyAmIDIgZm9yIGpRdWVyeSAoYWx3YXlzIHRydWUpXG5cdFx0ZXZlbnQuaXNUcmlnZ2VyID0gb25seUhhbmRsZXJzID8gMiA6IDM7XG5cdFx0ZXZlbnQubmFtZXNwYWNlID0gbmFtZXNwYWNlcy5qb2luKCBcIi5cIiApO1xuXHRcdGV2ZW50LnJuYW1lc3BhY2UgPSBldmVudC5uYW1lc3BhY2UgP1xuXHRcdFx0bmV3IFJlZ0V4cCggXCIoXnxcXFxcLilcIiArIG5hbWVzcGFjZXMuam9pbiggXCJcXFxcLig/Oi4qXFxcXC58KVwiICkgKyBcIihcXFxcLnwkKVwiICkgOlxuXHRcdFx0bnVsbDtcblxuXHRcdC8vIENsZWFuIHVwIHRoZSBldmVudCBpbiBjYXNlIGl0IGlzIGJlaW5nIHJldXNlZFxuXHRcdGV2ZW50LnJlc3VsdCA9IHVuZGVmaW5lZDtcblx0XHRpZiAoICFldmVudC50YXJnZXQgKSB7XG5cdFx0XHRldmVudC50YXJnZXQgPSBlbGVtO1xuXHRcdH1cblxuXHRcdC8vIENsb25lIGFueSBpbmNvbWluZyBkYXRhIGFuZCBwcmVwZW5kIHRoZSBldmVudCwgY3JlYXRpbmcgdGhlIGhhbmRsZXIgYXJnIGxpc3Rcblx0XHRkYXRhID0gZGF0YSA9PSBudWxsID9cblx0XHRcdFsgZXZlbnQgXSA6XG5cdFx0XHRqUXVlcnkubWFrZUFycmF5KCBkYXRhLCBbIGV2ZW50IF0gKTtcblxuXHRcdC8vIEFsbG93IHNwZWNpYWwgZXZlbnRzIHRvIGRyYXcgb3V0c2lkZSB0aGUgbGluZXNcblx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTtcblx0XHRpZiAoICFvbmx5SGFuZGxlcnMgJiYgc3BlY2lhbC50cmlnZ2VyICYmIHNwZWNpYWwudHJpZ2dlci5hcHBseSggZWxlbSwgZGF0YSApID09PSBmYWxzZSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBEZXRlcm1pbmUgZXZlbnQgcHJvcGFnYXRpb24gcGF0aCBpbiBhZHZhbmNlLCBwZXIgVzNDIGV2ZW50cyBzcGVjICgjOTk1MSlcblx0XHQvLyBCdWJibGUgdXAgdG8gZG9jdW1lbnQsIHRoZW4gdG8gd2luZG93OyB3YXRjaCBmb3IgYSBnbG9iYWwgb3duZXJEb2N1bWVudCB2YXIgKCM5NzI0KVxuXHRcdGlmICggIW9ubHlIYW5kbGVycyAmJiAhc3BlY2lhbC5ub0J1YmJsZSAmJiAhaXNXaW5kb3coIGVsZW0gKSApIHtcblxuXHRcdFx0YnViYmxlVHlwZSA9IHNwZWNpYWwuZGVsZWdhdGVUeXBlIHx8IHR5cGU7XG5cdFx0XHRpZiAoICFyZm9jdXNNb3JwaC50ZXN0KCBidWJibGVUeXBlICsgdHlwZSApICkge1xuXHRcdFx0XHRjdXIgPSBjdXIucGFyZW50Tm9kZTtcblx0XHRcdH1cblx0XHRcdGZvciAoIDsgY3VyOyBjdXIgPSBjdXIucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0ZXZlbnRQYXRoLnB1c2goIGN1ciApO1xuXHRcdFx0XHR0bXAgPSBjdXI7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE9ubHkgYWRkIHdpbmRvdyBpZiB3ZSBnb3QgdG8gZG9jdW1lbnQgKGUuZy4sIG5vdCBwbGFpbiBvYmogb3IgZGV0YWNoZWQgRE9NKVxuXHRcdFx0aWYgKCB0bXAgPT09ICggZWxlbS5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50ICkgKSB7XG5cdFx0XHRcdGV2ZW50UGF0aC5wdXNoKCB0bXAuZGVmYXVsdFZpZXcgfHwgdG1wLnBhcmVudFdpbmRvdyB8fCB3aW5kb3cgKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBGaXJlIGhhbmRsZXJzIG9uIHRoZSBldmVudCBwYXRoXG5cdFx0aSA9IDA7XG5cdFx0d2hpbGUgKCAoIGN1ciA9IGV2ZW50UGF0aFsgaSsrIF0gKSAmJiAhZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHtcblx0XHRcdGxhc3RFbGVtZW50ID0gY3VyO1xuXHRcdFx0ZXZlbnQudHlwZSA9IGkgPiAxID9cblx0XHRcdFx0YnViYmxlVHlwZSA6XG5cdFx0XHRcdHNwZWNpYWwuYmluZFR5cGUgfHwgdHlwZTtcblxuXHRcdFx0Ly8galF1ZXJ5IGhhbmRsZXJcblx0XHRcdGhhbmRsZSA9ICggZGF0YVByaXYuZ2V0KCBjdXIsIFwiZXZlbnRzXCIgKSB8fCBPYmplY3QuY3JlYXRlKCBudWxsICkgKVsgZXZlbnQudHlwZSBdICYmXG5cdFx0XHRcdGRhdGFQcml2LmdldCggY3VyLCBcImhhbmRsZVwiICk7XG5cdFx0XHRpZiAoIGhhbmRsZSApIHtcblx0XHRcdFx0aGFuZGxlLmFwcGx5KCBjdXIsIGRhdGEgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gTmF0aXZlIGhhbmRsZXJcblx0XHRcdGhhbmRsZSA9IG9udHlwZSAmJiBjdXJbIG9udHlwZSBdO1xuXHRcdFx0aWYgKCBoYW5kbGUgJiYgaGFuZGxlLmFwcGx5ICYmIGFjY2VwdERhdGEoIGN1ciApICkge1xuXHRcdFx0XHRldmVudC5yZXN1bHQgPSBoYW5kbGUuYXBwbHkoIGN1ciwgZGF0YSApO1xuXHRcdFx0XHRpZiAoIGV2ZW50LnJlc3VsdCA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRldmVudC50eXBlID0gdHlwZTtcblxuXHRcdC8vIElmIG5vYm9keSBwcmV2ZW50ZWQgdGhlIGRlZmF1bHQgYWN0aW9uLCBkbyBpdCBub3dcblx0XHRpZiAoICFvbmx5SGFuZGxlcnMgJiYgIWV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICkge1xuXG5cdFx0XHRpZiAoICggIXNwZWNpYWwuX2RlZmF1bHQgfHxcblx0XHRcdFx0c3BlY2lhbC5fZGVmYXVsdC5hcHBseSggZXZlbnRQYXRoLnBvcCgpLCBkYXRhICkgPT09IGZhbHNlICkgJiZcblx0XHRcdFx0YWNjZXB0RGF0YSggZWxlbSApICkge1xuXG5cdFx0XHRcdC8vIENhbGwgYSBuYXRpdmUgRE9NIG1ldGhvZCBvbiB0aGUgdGFyZ2V0IHdpdGggdGhlIHNhbWUgbmFtZSBhcyB0aGUgZXZlbnQuXG5cdFx0XHRcdC8vIERvbid0IGRvIGRlZmF1bHQgYWN0aW9ucyBvbiB3aW5kb3csIHRoYXQncyB3aGVyZSBnbG9iYWwgdmFyaWFibGVzIGJlICgjNjE3MClcblx0XHRcdFx0aWYgKCBvbnR5cGUgJiYgaXNGdW5jdGlvbiggZWxlbVsgdHlwZSBdICkgJiYgIWlzV2luZG93KCBlbGVtICkgKSB7XG5cblx0XHRcdFx0XHQvLyBEb24ndCByZS10cmlnZ2VyIGFuIG9uRk9PIGV2ZW50IHdoZW4gd2UgY2FsbCBpdHMgRk9PKCkgbWV0aG9kXG5cdFx0XHRcdFx0dG1wID0gZWxlbVsgb250eXBlIF07XG5cblx0XHRcdFx0XHRpZiAoIHRtcCApIHtcblx0XHRcdFx0XHRcdGVsZW1bIG9udHlwZSBdID0gbnVsbDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBQcmV2ZW50IHJlLXRyaWdnZXJpbmcgb2YgdGhlIHNhbWUgZXZlbnQsIHNpbmNlIHdlIGFscmVhZHkgYnViYmxlZCBpdCBhYm92ZVxuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyZWQgPSB0eXBlO1xuXG5cdFx0XHRcdFx0aWYgKCBldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpICkge1xuXHRcdFx0XHRcdFx0bGFzdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggdHlwZSwgc3RvcFByb3BhZ2F0aW9uQ2FsbGJhY2sgKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRlbGVtWyB0eXBlIF0oKTtcblxuXHRcdFx0XHRcdGlmICggZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHtcblx0XHRcdFx0XHRcdGxhc3RFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIHR5cGUsIHN0b3BQcm9wYWdhdGlvbkNhbGxiYWNrICk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCA9IHVuZGVmaW5lZDtcblxuXHRcdFx0XHRcdGlmICggdG1wICkge1xuXHRcdFx0XHRcdFx0ZWxlbVsgb250eXBlIF0gPSB0bXA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGV2ZW50LnJlc3VsdDtcblx0fSxcblxuXHQvLyBQaWdneWJhY2sgb24gYSBkb25vciBldmVudCB0byBzaW11bGF0ZSBhIGRpZmZlcmVudCBvbmVcblx0Ly8gVXNlZCBvbmx5IGZvciBgZm9jdXMoaW4gfCBvdXQpYCBldmVudHNcblx0c2ltdWxhdGU6IGZ1bmN0aW9uKCB0eXBlLCBlbGVtLCBldmVudCApIHtcblx0XHR2YXIgZSA9IGpRdWVyeS5leHRlbmQoXG5cdFx0XHRuZXcgalF1ZXJ5LkV2ZW50KCksXG5cdFx0XHRldmVudCxcblx0XHRcdHtcblx0XHRcdFx0dHlwZTogdHlwZSxcblx0XHRcdFx0aXNTaW11bGF0ZWQ6IHRydWVcblx0XHRcdH1cblx0XHQpO1xuXG5cdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoIGUsIG51bGwsIGVsZW0gKTtcblx0fVxuXG59ICk7XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblxuXHR0cmlnZ2VyOiBmdW5jdGlvbiggdHlwZSwgZGF0YSApIHtcblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyKCB0eXBlLCBkYXRhLCB0aGlzICk7XG5cdFx0fSApO1xuXHR9LFxuXHR0cmlnZ2VySGFuZGxlcjogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7XG5cdFx0dmFyIGVsZW0gPSB0aGlzWyAwIF07XG5cdFx0aWYgKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5ldmVudC50cmlnZ2VyKCB0eXBlLCBkYXRhLCBlbGVtLCB0cnVlICk7XG5cdFx0fVxuXHR9XG59ICk7XG5cblxuLy8gU3VwcG9ydDogRmlyZWZveCA8PTQ0XG4vLyBGaXJlZm94IGRvZXNuJ3QgaGF2ZSBmb2N1cyhpbiB8IG91dCkgZXZlbnRzXG4vLyBSZWxhdGVkIHRpY2tldCAtIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Nzc4N1xuLy9cbi8vIFN1cHBvcnQ6IENocm9tZSA8PTQ4IC0gNDksIFNhZmFyaSA8PTkuMCAtIDkuMVxuLy8gZm9jdXMoaW4gfCBvdXQpIGV2ZW50cyBmaXJlIGFmdGVyIGZvY3VzICYgYmx1ciBldmVudHMsXG4vLyB3aGljaCBpcyBzcGVjIHZpb2xhdGlvbiAtIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLWZvY3VzZXZlbnQtZXZlbnQtb3JkZXJcbi8vIFJlbGF0ZWQgdGlja2V0IC0gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NDQ5ODU3XG5pZiAoICFzdXBwb3J0LmZvY3VzaW4gKSB7XG5cdGpRdWVyeS5lYWNoKCB7IGZvY3VzOiBcImZvY3VzaW5cIiwgYmx1cjogXCJmb2N1c291dFwiIH0sIGZ1bmN0aW9uKCBvcmlnLCBmaXggKSB7XG5cblx0XHQvLyBBdHRhY2ggYSBzaW5nbGUgY2FwdHVyaW5nIGhhbmRsZXIgb24gdGhlIGRvY3VtZW50IHdoaWxlIHNvbWVvbmUgd2FudHMgZm9jdXNpbi9mb2N1c291dFxuXHRcdHZhciBoYW5kbGVyID0gZnVuY3Rpb24oIGV2ZW50ICkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnNpbXVsYXRlKCBmaXgsIGV2ZW50LnRhcmdldCwgalF1ZXJ5LmV2ZW50LmZpeCggZXZlbnQgKSApO1xuXHRcdH07XG5cblx0XHRqUXVlcnkuZXZlbnQuc3BlY2lhbFsgZml4IF0gPSB7XG5cdFx0XHRzZXR1cDogZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0Ly8gSGFuZGxlOiByZWd1bGFyIG5vZGVzICh2aWEgYHRoaXMub3duZXJEb2N1bWVudGApLCB3aW5kb3dcblx0XHRcdFx0Ly8gKHZpYSBgdGhpcy5kb2N1bWVudGApICYgZG9jdW1lbnQgKHZpYSBgdGhpc2ApLlxuXHRcdFx0XHR2YXIgZG9jID0gdGhpcy5vd25lckRvY3VtZW50IHx8IHRoaXMuZG9jdW1lbnQgfHwgdGhpcyxcblx0XHRcdFx0XHRhdHRhY2hlcyA9IGRhdGFQcml2LmFjY2VzcyggZG9jLCBmaXggKTtcblxuXHRcdFx0XHRpZiAoICFhdHRhY2hlcyApIHtcblx0XHRcdFx0XHRkb2MuYWRkRXZlbnRMaXN0ZW5lciggb3JpZywgaGFuZGxlciwgdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRhdGFQcml2LmFjY2VzcyggZG9jLCBmaXgsICggYXR0YWNoZXMgfHwgMCApICsgMSApO1xuXHRcdFx0fSxcblx0XHRcdHRlYXJkb3duOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0dmFyIGRvYyA9IHRoaXMub3duZXJEb2N1bWVudCB8fCB0aGlzLmRvY3VtZW50IHx8IHRoaXMsXG5cdFx0XHRcdFx0YXR0YWNoZXMgPSBkYXRhUHJpdi5hY2Nlc3MoIGRvYywgZml4ICkgLSAxO1xuXG5cdFx0XHRcdGlmICggIWF0dGFjaGVzICkge1xuXHRcdFx0XHRcdGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCBvcmlnLCBoYW5kbGVyLCB0cnVlICk7XG5cdFx0XHRcdFx0ZGF0YVByaXYucmVtb3ZlKCBkb2MsIGZpeCApO1xuXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0ZGF0YVByaXYuYWNjZXNzKCBkb2MsIGZpeCwgYXR0YWNoZXMgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cdH0gKTtcbn1cbnZhciBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbjtcblxudmFyIG5vbmNlID0geyBndWlkOiBEYXRlLm5vdygpIH07XG5cbnZhciBycXVlcnkgPSAoIC9cXD8vICk7XG5cblxuXG4vLyBDcm9zcy1icm93c2VyIHhtbCBwYXJzaW5nXG5qUXVlcnkucGFyc2VYTUwgPSBmdW5jdGlvbiggZGF0YSApIHtcblx0dmFyIHhtbCwgcGFyc2VyRXJyb3JFbGVtO1xuXHRpZiAoICFkYXRhIHx8IHR5cGVvZiBkYXRhICE9PSBcInN0cmluZ1wiICkge1xuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0Ly8gU3VwcG9ydDogSUUgOSAtIDExIG9ubHlcblx0Ly8gSUUgdGhyb3dzIG9uIHBhcnNlRnJvbVN0cmluZyB3aXRoIGludmFsaWQgaW5wdXQuXG5cdHRyeSB7XG5cdFx0eG1sID0gKCBuZXcgd2luZG93LkRPTVBhcnNlcigpICkucGFyc2VGcm9tU3RyaW5nKCBkYXRhLCBcInRleHQveG1sXCIgKTtcblx0fSBjYXRjaCAoIGUgKSB7fVxuXG5cdHBhcnNlckVycm9yRWxlbSA9IHhtbCAmJiB4bWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIFwicGFyc2VyZXJyb3JcIiApWyAwIF07XG5cdGlmICggIXhtbCB8fCBwYXJzZXJFcnJvckVsZW0gKSB7XG5cdFx0alF1ZXJ5LmVycm9yKCBcIkludmFsaWQgWE1MOiBcIiArIChcblx0XHRcdHBhcnNlckVycm9yRWxlbSA/XG5cdFx0XHRcdGpRdWVyeS5tYXAoIHBhcnNlckVycm9yRWxlbS5jaGlsZE5vZGVzLCBmdW5jdGlvbiggZWwgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGVsLnRleHRDb250ZW50O1xuXHRcdFx0XHR9ICkuam9pbiggXCJcXG5cIiApIDpcblx0XHRcdFx0ZGF0YVxuXHRcdCkgKTtcblx0fVxuXHRyZXR1cm4geG1sO1xufTtcblxuXG52YXJcblx0cmJyYWNrZXQgPSAvXFxbXFxdJC8sXG5cdHJDUkxGID0gL1xccj9cXG4vZyxcblx0cnN1Ym1pdHRlclR5cGVzID0gL14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLFxuXHRyc3VibWl0dGFibGUgPSAvXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxrZXlnZW4pL2k7XG5cbmZ1bmN0aW9uIGJ1aWxkUGFyYW1zKCBwcmVmaXgsIG9iaiwgdHJhZGl0aW9uYWwsIGFkZCApIHtcblx0dmFyIG5hbWU7XG5cblx0aWYgKCBBcnJheS5pc0FycmF5KCBvYmogKSApIHtcblxuXHRcdC8vIFNlcmlhbGl6ZSBhcnJheSBpdGVtLlxuXHRcdGpRdWVyeS5lYWNoKCBvYmosIGZ1bmN0aW9uKCBpLCB2ICkge1xuXHRcdFx0aWYgKCB0cmFkaXRpb25hbCB8fCByYnJhY2tldC50ZXN0KCBwcmVmaXggKSApIHtcblxuXHRcdFx0XHQvLyBUcmVhdCBlYWNoIGFycmF5IGl0ZW0gYXMgYSBzY2FsYXIuXG5cdFx0XHRcdGFkZCggcHJlZml4LCB2ICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0Ly8gSXRlbSBpcyBub24tc2NhbGFyIChhcnJheSBvciBvYmplY3QpLCBlbmNvZGUgaXRzIG51bWVyaWMgaW5kZXguXG5cdFx0XHRcdGJ1aWxkUGFyYW1zKFxuXHRcdFx0XHRcdHByZWZpeCArIFwiW1wiICsgKCB0eXBlb2YgdiA9PT0gXCJvYmplY3RcIiAmJiB2ICE9IG51bGwgPyBpIDogXCJcIiApICsgXCJdXCIsXG5cdFx0XHRcdFx0dixcblx0XHRcdFx0XHR0cmFkaXRpb25hbCxcblx0XHRcdFx0XHRhZGRcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9ICk7XG5cblx0fSBlbHNlIGlmICggIXRyYWRpdGlvbmFsICYmIHRvVHlwZSggb2JqICkgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHQvLyBTZXJpYWxpemUgb2JqZWN0IGl0ZW0uXG5cdFx0Zm9yICggbmFtZSBpbiBvYmogKSB7XG5cdFx0XHRidWlsZFBhcmFtcyggcHJlZml4ICsgXCJbXCIgKyBuYW1lICsgXCJdXCIsIG9ialsgbmFtZSBdLCB0cmFkaXRpb25hbCwgYWRkICk7XG5cdFx0fVxuXG5cdH0gZWxzZSB7XG5cblx0XHQvLyBTZXJpYWxpemUgc2NhbGFyIGl0ZW0uXG5cdFx0YWRkKCBwcmVmaXgsIG9iaiApO1xuXHR9XG59XG5cbi8vIFNlcmlhbGl6ZSBhbiBhcnJheSBvZiBmb3JtIGVsZW1lbnRzIG9yIGEgc2V0IG9mXG4vLyBrZXkvdmFsdWVzIGludG8gYSBxdWVyeSBzdHJpbmdcbmpRdWVyeS5wYXJhbSA9IGZ1bmN0aW9uKCBhLCB0cmFkaXRpb25hbCApIHtcblx0dmFyIHByZWZpeCxcblx0XHRzID0gW10sXG5cdFx0YWRkID0gZnVuY3Rpb24oIGtleSwgdmFsdWVPckZ1bmN0aW9uICkge1xuXG5cdFx0XHQvLyBJZiB2YWx1ZSBpcyBhIGZ1bmN0aW9uLCBpbnZva2UgaXQgYW5kIHVzZSBpdHMgcmV0dXJuIHZhbHVlXG5cdFx0XHR2YXIgdmFsdWUgPSBpc0Z1bmN0aW9uKCB2YWx1ZU9yRnVuY3Rpb24gKSA/XG5cdFx0XHRcdHZhbHVlT3JGdW5jdGlvbigpIDpcblx0XHRcdFx0dmFsdWVPckZ1bmN0aW9uO1xuXG5cdFx0XHRzWyBzLmxlbmd0aCBdID0gZW5jb2RlVVJJQ29tcG9uZW50KCBrZXkgKSArIFwiPVwiICtcblx0XHRcdFx0ZW5jb2RlVVJJQ29tcG9uZW50KCB2YWx1ZSA9PSBudWxsID8gXCJcIiA6IHZhbHVlICk7XG5cdFx0fTtcblxuXHRpZiAoIGEgPT0gbnVsbCApIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXG5cdC8vIElmIGFuIGFycmF5IHdhcyBwYXNzZWQgaW4sIGFzc3VtZSB0aGF0IGl0IGlzIGFuIGFycmF5IG9mIGZvcm0gZWxlbWVudHMuXG5cdGlmICggQXJyYXkuaXNBcnJheSggYSApIHx8ICggYS5qcXVlcnkgJiYgIWpRdWVyeS5pc1BsYWluT2JqZWN0KCBhICkgKSApIHtcblxuXHRcdC8vIFNlcmlhbGl6ZSB0aGUgZm9ybSBlbGVtZW50c1xuXHRcdGpRdWVyeS5lYWNoKCBhLCBmdW5jdGlvbigpIHtcblx0XHRcdGFkZCggdGhpcy5uYW1lLCB0aGlzLnZhbHVlICk7XG5cdFx0fSApO1xuXG5cdH0gZWxzZSB7XG5cblx0XHQvLyBJZiB0cmFkaXRpb25hbCwgZW5jb2RlIHRoZSBcIm9sZFwiIHdheSAodGhlIHdheSAxLjMuMiBvciBvbGRlclxuXHRcdC8vIGRpZCBpdCksIG90aGVyd2lzZSBlbmNvZGUgcGFyYW1zIHJlY3Vyc2l2ZWx5LlxuXHRcdGZvciAoIHByZWZpeCBpbiBhICkge1xuXHRcdFx0YnVpbGRQYXJhbXMoIHByZWZpeCwgYVsgcHJlZml4IF0sIHRyYWRpdGlvbmFsLCBhZGQgKTtcblx0XHR9XG5cdH1cblxuXHQvLyBSZXR1cm4gdGhlIHJlc3VsdGluZyBzZXJpYWxpemF0aW9uXG5cdHJldHVybiBzLmpvaW4oIFwiJlwiICk7XG59O1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdHNlcmlhbGl6ZTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5wYXJhbSggdGhpcy5zZXJpYWxpemVBcnJheSgpICk7XG5cdH0sXG5cdHNlcmlhbGl6ZUFycmF5OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5tYXAoIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBDYW4gYWRkIHByb3BIb29rIGZvciBcImVsZW1lbnRzXCIgdG8gZmlsdGVyIG9yIGFkZCBmb3JtIGVsZW1lbnRzXG5cdFx0XHR2YXIgZWxlbWVudHMgPSBqUXVlcnkucHJvcCggdGhpcywgXCJlbGVtZW50c1wiICk7XG5cdFx0XHRyZXR1cm4gZWxlbWVudHMgPyBqUXVlcnkubWFrZUFycmF5KCBlbGVtZW50cyApIDogdGhpcztcblx0XHR9ICkuZmlsdGVyKCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciB0eXBlID0gdGhpcy50eXBlO1xuXG5cdFx0XHQvLyBVc2UgLmlzKCBcIjpkaXNhYmxlZFwiICkgc28gdGhhdCBmaWVsZHNldFtkaXNhYmxlZF0gd29ya3Ncblx0XHRcdHJldHVybiB0aGlzLm5hbWUgJiYgIWpRdWVyeSggdGhpcyApLmlzKCBcIjpkaXNhYmxlZFwiICkgJiZcblx0XHRcdFx0cnN1Ym1pdHRhYmxlLnRlc3QoIHRoaXMubm9kZU5hbWUgKSAmJiAhcnN1Ym1pdHRlclR5cGVzLnRlc3QoIHR5cGUgKSAmJlxuXHRcdFx0XHQoIHRoaXMuY2hlY2tlZCB8fCAhcmNoZWNrYWJsZVR5cGUudGVzdCggdHlwZSApICk7XG5cdFx0fSApLm1hcCggZnVuY3Rpb24oIF9pLCBlbGVtICkge1xuXHRcdFx0dmFyIHZhbCA9IGpRdWVyeSggdGhpcyApLnZhbCgpO1xuXG5cdFx0XHRpZiAoIHZhbCA9PSBudWxsICkge1xuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBBcnJheS5pc0FycmF5KCB2YWwgKSApIHtcblx0XHRcdFx0cmV0dXJuIGpRdWVyeS5tYXAoIHZhbCwgZnVuY3Rpb24oIHZhbCApIHtcblx0XHRcdFx0XHRyZXR1cm4geyBuYW1lOiBlbGVtLm5hbWUsIHZhbHVlOiB2YWwucmVwbGFjZSggckNSTEYsIFwiXFxyXFxuXCIgKSB9O1xuXHRcdFx0XHR9ICk7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB7IG5hbWU6IGVsZW0ubmFtZSwgdmFsdWU6IHZhbC5yZXBsYWNlKCByQ1JMRiwgXCJcXHJcXG5cIiApIH07XG5cdFx0fSApLmdldCgpO1xuXHR9XG59ICk7XG5cblxudmFyXG5cdHIyMCA9IC8lMjAvZyxcblx0cmhhc2ggPSAvIy4qJC8sXG5cdHJhbnRpQ2FjaGUgPSAvKFs/Jl0pXz1bXiZdKi8sXG5cdHJoZWFkZXJzID0gL14oLio/KTpbIFxcdF0qKFteXFxyXFxuXSopJC9tZyxcblxuXHQvLyAjNzY1MywgIzgxMjUsICM4MTUyOiBsb2NhbCBwcm90b2NvbCBkZXRlY3Rpb25cblx0cmxvY2FsUHJvdG9jb2wgPSAvXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxcblx0cm5vQ29udGVudCA9IC9eKD86R0VUfEhFQUQpJC8sXG5cdHJwcm90b2NvbCA9IC9eXFwvXFwvLyxcblxuXHQvKiBQcmVmaWx0ZXJzXG5cdCAqIDEpIFRoZXkgYXJlIHVzZWZ1bCB0byBpbnRyb2R1Y2UgY3VzdG9tIGRhdGFUeXBlcyAoc2VlIGFqYXgvanNvbnAuanMgZm9yIGFuIGV4YW1wbGUpXG5cdCAqIDIpIFRoZXNlIGFyZSBjYWxsZWQ6XG5cdCAqICAgIC0gQkVGT1JFIGFza2luZyBmb3IgYSB0cmFuc3BvcnRcblx0ICogICAgLSBBRlRFUiBwYXJhbSBzZXJpYWxpemF0aW9uIChzLmRhdGEgaXMgYSBzdHJpbmcgaWYgcy5wcm9jZXNzRGF0YSBpcyB0cnVlKVxuXHQgKiAzKSBrZXkgaXMgdGhlIGRhdGFUeXBlXG5cdCAqIDQpIHRoZSBjYXRjaGFsbCBzeW1ib2wgXCIqXCIgY2FuIGJlIHVzZWRcblx0ICogNSkgZXhlY3V0aW9uIHdpbGwgc3RhcnQgd2l0aCB0cmFuc3BvcnQgZGF0YVR5cGUgYW5kIFRIRU4gY29udGludWUgZG93biB0byBcIipcIiBpZiBuZWVkZWRcblx0ICovXG5cdHByZWZpbHRlcnMgPSB7fSxcblxuXHQvKiBUcmFuc3BvcnRzIGJpbmRpbmdzXG5cdCAqIDEpIGtleSBpcyB0aGUgZGF0YVR5cGVcblx0ICogMikgdGhlIGNhdGNoYWxsIHN5bWJvbCBcIipcIiBjYW4gYmUgdXNlZFxuXHQgKiAzKSBzZWxlY3Rpb24gd2lsbCBzdGFydCB3aXRoIHRyYW5zcG9ydCBkYXRhVHlwZSBhbmQgVEhFTiBnbyB0byBcIipcIiBpZiBuZWVkZWRcblx0ICovXG5cdHRyYW5zcG9ydHMgPSB7fSxcblxuXHQvLyBBdm9pZCBjb21tZW50LXByb2xvZyBjaGFyIHNlcXVlbmNlICgjMTAwOTgpOyBtdXN0IGFwcGVhc2UgbGludCBhbmQgZXZhZGUgY29tcHJlc3Npb25cblx0YWxsVHlwZXMgPSBcIiovXCIuY29uY2F0KCBcIipcIiApLFxuXG5cdC8vIEFuY2hvciB0YWcgZm9yIHBhcnNpbmcgdGhlIGRvY3VtZW50IG9yaWdpblxuXHRvcmlnaW5BbmNob3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImFcIiApO1xuXG5vcmlnaW5BbmNob3IuaHJlZiA9IGxvY2F0aW9uLmhyZWY7XG5cbi8vIEJhc2UgXCJjb25zdHJ1Y3RvclwiIGZvciBqUXVlcnkuYWpheFByZWZpbHRlciBhbmQgalF1ZXJ5LmFqYXhUcmFuc3BvcnRcbmZ1bmN0aW9uIGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyggc3RydWN0dXJlICkge1xuXG5cdC8vIGRhdGFUeXBlRXhwcmVzc2lvbiBpcyBvcHRpb25hbCBhbmQgZGVmYXVsdHMgdG8gXCIqXCJcblx0cmV0dXJuIGZ1bmN0aW9uKCBkYXRhVHlwZUV4cHJlc3Npb24sIGZ1bmMgKSB7XG5cblx0XHRpZiAoIHR5cGVvZiBkYXRhVHlwZUV4cHJlc3Npb24gIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRmdW5jID0gZGF0YVR5cGVFeHByZXNzaW9uO1xuXHRcdFx0ZGF0YVR5cGVFeHByZXNzaW9uID0gXCIqXCI7XG5cdFx0fVxuXG5cdFx0dmFyIGRhdGFUeXBlLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRkYXRhVHlwZXMgPSBkYXRhVHlwZUV4cHJlc3Npb24udG9Mb3dlckNhc2UoKS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFtdO1xuXG5cdFx0aWYgKCBpc0Z1bmN0aW9uKCBmdW5jICkgKSB7XG5cblx0XHRcdC8vIEZvciBlYWNoIGRhdGFUeXBlIGluIHRoZSBkYXRhVHlwZUV4cHJlc3Npb25cblx0XHRcdHdoaWxlICggKCBkYXRhVHlwZSA9IGRhdGFUeXBlc1sgaSsrIF0gKSApIHtcblxuXHRcdFx0XHQvLyBQcmVwZW5kIGlmIHJlcXVlc3RlZFxuXHRcdFx0XHRpZiAoIGRhdGFUeXBlWyAwIF0gPT09IFwiK1wiICkge1xuXHRcdFx0XHRcdGRhdGFUeXBlID0gZGF0YVR5cGUuc2xpY2UoIDEgKSB8fCBcIipcIjtcblx0XHRcdFx0XHQoIHN0cnVjdHVyZVsgZGF0YVR5cGUgXSA9IHN0cnVjdHVyZVsgZGF0YVR5cGUgXSB8fCBbXSApLnVuc2hpZnQoIGZ1bmMgKTtcblxuXHRcdFx0XHQvLyBPdGhlcndpc2UgYXBwZW5kXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0KCBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gfHwgW10gKS5wdXNoKCBmdW5jICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH07XG59XG5cbi8vIEJhc2UgaW5zcGVjdGlvbiBmdW5jdGlvbiBmb3IgcHJlZmlsdGVycyBhbmQgdHJhbnNwb3J0c1xuZnVuY3Rpb24gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHN0cnVjdHVyZSwgb3B0aW9ucywgb3JpZ2luYWxPcHRpb25zLCBqcVhIUiApIHtcblxuXHR2YXIgaW5zcGVjdGVkID0ge30sXG5cdFx0c2Vla2luZ1RyYW5zcG9ydCA9ICggc3RydWN0dXJlID09PSB0cmFuc3BvcnRzICk7XG5cblx0ZnVuY3Rpb24gaW5zcGVjdCggZGF0YVR5cGUgKSB7XG5cdFx0dmFyIHNlbGVjdGVkO1xuXHRcdGluc3BlY3RlZFsgZGF0YVR5cGUgXSA9IHRydWU7XG5cdFx0alF1ZXJ5LmVhY2goIHN0cnVjdHVyZVsgZGF0YVR5cGUgXSB8fCBbXSwgZnVuY3Rpb24oIF8sIHByZWZpbHRlck9yRmFjdG9yeSApIHtcblx0XHRcdHZhciBkYXRhVHlwZU9yVHJhbnNwb3J0ID0gcHJlZmlsdGVyT3JGYWN0b3J5KCBvcHRpb25zLCBvcmlnaW5hbE9wdGlvbnMsIGpxWEhSICk7XG5cdFx0XHRpZiAoIHR5cGVvZiBkYXRhVHlwZU9yVHJhbnNwb3J0ID09PSBcInN0cmluZ1wiICYmXG5cdFx0XHRcdCFzZWVraW5nVHJhbnNwb3J0ICYmICFpbnNwZWN0ZWRbIGRhdGFUeXBlT3JUcmFuc3BvcnQgXSApIHtcblxuXHRcdFx0XHRvcHRpb25zLmRhdGFUeXBlcy51bnNoaWZ0KCBkYXRhVHlwZU9yVHJhbnNwb3J0ICk7XG5cdFx0XHRcdGluc3BlY3QoIGRhdGFUeXBlT3JUcmFuc3BvcnQgKTtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fSBlbHNlIGlmICggc2Vla2luZ1RyYW5zcG9ydCApIHtcblx0XHRcdFx0cmV0dXJuICEoIHNlbGVjdGVkID0gZGF0YVR5cGVPclRyYW5zcG9ydCApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0XHRyZXR1cm4gc2VsZWN0ZWQ7XG5cdH1cblxuXHRyZXR1cm4gaW5zcGVjdCggb3B0aW9ucy5kYXRhVHlwZXNbIDAgXSApIHx8ICFpbnNwZWN0ZWRbIFwiKlwiIF0gJiYgaW5zcGVjdCggXCIqXCIgKTtcbn1cblxuLy8gQSBzcGVjaWFsIGV4dGVuZCBmb3IgYWpheCBvcHRpb25zXG4vLyB0aGF0IHRha2VzIFwiZmxhdFwiIG9wdGlvbnMgKG5vdCB0byBiZSBkZWVwIGV4dGVuZGVkKVxuLy8gRml4ZXMgIzk4ODdcbmZ1bmN0aW9uIGFqYXhFeHRlbmQoIHRhcmdldCwgc3JjICkge1xuXHR2YXIga2V5LCBkZWVwLFxuXHRcdGZsYXRPcHRpb25zID0galF1ZXJ5LmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9ucyB8fCB7fTtcblxuXHRmb3IgKCBrZXkgaW4gc3JjICkge1xuXHRcdGlmICggc3JjWyBrZXkgXSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0KCBmbGF0T3B0aW9uc1sga2V5IF0gPyB0YXJnZXQgOiAoIGRlZXAgfHwgKCBkZWVwID0ge30gKSApIClbIGtleSBdID0gc3JjWyBrZXkgXTtcblx0XHR9XG5cdH1cblx0aWYgKCBkZWVwICkge1xuXHRcdGpRdWVyeS5leHRlbmQoIHRydWUsIHRhcmdldCwgZGVlcCApO1xuXHR9XG5cblx0cmV0dXJuIHRhcmdldDtcbn1cblxuLyogSGFuZGxlcyByZXNwb25zZXMgdG8gYW4gYWpheCByZXF1ZXN0OlxuICogLSBmaW5kcyB0aGUgcmlnaHQgZGF0YVR5cGUgKG1lZGlhdGVzIGJldHdlZW4gY29udGVudC10eXBlIGFuZCBleHBlY3RlZCBkYXRhVHlwZSlcbiAqIC0gcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZVxuICovXG5mdW5jdGlvbiBhamF4SGFuZGxlUmVzcG9uc2VzKCBzLCBqcVhIUiwgcmVzcG9uc2VzICkge1xuXG5cdHZhciBjdCwgdHlwZSwgZmluYWxEYXRhVHlwZSwgZmlyc3REYXRhVHlwZSxcblx0XHRjb250ZW50cyA9IHMuY29udGVudHMsXG5cdFx0ZGF0YVR5cGVzID0gcy5kYXRhVHlwZXM7XG5cblx0Ly8gUmVtb3ZlIGF1dG8gZGF0YVR5cGUgYW5kIGdldCBjb250ZW50LXR5cGUgaW4gdGhlIHByb2Nlc3Ncblx0d2hpbGUgKCBkYXRhVHlwZXNbIDAgXSA9PT0gXCIqXCIgKSB7XG5cdFx0ZGF0YVR5cGVzLnNoaWZ0KCk7XG5cdFx0aWYgKCBjdCA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0Y3QgPSBzLm1pbWVUeXBlIHx8IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKCBcIkNvbnRlbnQtVHlwZVwiICk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gQ2hlY2sgaWYgd2UncmUgZGVhbGluZyB3aXRoIGEga25vd24gY29udGVudC10eXBlXG5cdGlmICggY3QgKSB7XG5cdFx0Zm9yICggdHlwZSBpbiBjb250ZW50cyApIHtcblx0XHRcdGlmICggY29udGVudHNbIHR5cGUgXSAmJiBjb250ZW50c1sgdHlwZSBdLnRlc3QoIGN0ICkgKSB7XG5cdFx0XHRcdGRhdGFUeXBlcy51bnNoaWZ0KCB0eXBlICk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIENoZWNrIHRvIHNlZSBpZiB3ZSBoYXZlIGEgcmVzcG9uc2UgZm9yIHRoZSBleHBlY3RlZCBkYXRhVHlwZVxuXHRpZiAoIGRhdGFUeXBlc1sgMCBdIGluIHJlc3BvbnNlcyApIHtcblx0XHRmaW5hbERhdGFUeXBlID0gZGF0YVR5cGVzWyAwIF07XG5cdH0gZWxzZSB7XG5cblx0XHQvLyBUcnkgY29udmVydGlibGUgZGF0YVR5cGVzXG5cdFx0Zm9yICggdHlwZSBpbiByZXNwb25zZXMgKSB7XG5cdFx0XHRpZiAoICFkYXRhVHlwZXNbIDAgXSB8fCBzLmNvbnZlcnRlcnNbIHR5cGUgKyBcIiBcIiArIGRhdGFUeXBlc1sgMCBdIF0gKSB7XG5cdFx0XHRcdGZpbmFsRGF0YVR5cGUgPSB0eXBlO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdGlmICggIWZpcnN0RGF0YVR5cGUgKSB7XG5cdFx0XHRcdGZpcnN0RGF0YVR5cGUgPSB0eXBlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIE9yIGp1c3QgdXNlIGZpcnN0IG9uZVxuXHRcdGZpbmFsRGF0YVR5cGUgPSBmaW5hbERhdGFUeXBlIHx8IGZpcnN0RGF0YVR5cGU7XG5cdH1cblxuXHQvLyBJZiB3ZSBmb3VuZCBhIGRhdGFUeXBlXG5cdC8vIFdlIGFkZCB0aGUgZGF0YVR5cGUgdG8gdGhlIGxpc3QgaWYgbmVlZGVkXG5cdC8vIGFuZCByZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2Vcblx0aWYgKCBmaW5hbERhdGFUeXBlICkge1xuXHRcdGlmICggZmluYWxEYXRhVHlwZSAhPT0gZGF0YVR5cGVzWyAwIF0gKSB7XG5cdFx0XHRkYXRhVHlwZXMudW5zaGlmdCggZmluYWxEYXRhVHlwZSApO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVzcG9uc2VzWyBmaW5hbERhdGFUeXBlIF07XG5cdH1cbn1cblxuLyogQ2hhaW4gY29udmVyc2lvbnMgZ2l2ZW4gdGhlIHJlcXVlc3QgYW5kIHRoZSBvcmlnaW5hbCByZXNwb25zZVxuICogQWxzbyBzZXRzIHRoZSByZXNwb25zZVhYWCBmaWVsZHMgb24gdGhlIGpxWEhSIGluc3RhbmNlXG4gKi9cbmZ1bmN0aW9uIGFqYXhDb252ZXJ0KCBzLCByZXNwb25zZSwganFYSFIsIGlzU3VjY2VzcyApIHtcblx0dmFyIGNvbnYyLCBjdXJyZW50LCBjb252LCB0bXAsIHByZXYsXG5cdFx0Y29udmVydGVycyA9IHt9LFxuXG5cdFx0Ly8gV29yayB3aXRoIGEgY29weSBvZiBkYXRhVHlwZXMgaW4gY2FzZSB3ZSBuZWVkIHRvIG1vZGlmeSBpdCBmb3IgY29udmVyc2lvblxuXHRcdGRhdGFUeXBlcyA9IHMuZGF0YVR5cGVzLnNsaWNlKCk7XG5cblx0Ly8gQ3JlYXRlIGNvbnZlcnRlcnMgbWFwIHdpdGggbG93ZXJjYXNlZCBrZXlzXG5cdGlmICggZGF0YVR5cGVzWyAxIF0gKSB7XG5cdFx0Zm9yICggY29udiBpbiBzLmNvbnZlcnRlcnMgKSB7XG5cdFx0XHRjb252ZXJ0ZXJzWyBjb252LnRvTG93ZXJDYXNlKCkgXSA9IHMuY29udmVydGVyc1sgY29udiBdO1xuXHRcdH1cblx0fVxuXG5cdGN1cnJlbnQgPSBkYXRhVHlwZXMuc2hpZnQoKTtcblxuXHQvLyBDb252ZXJ0IHRvIGVhY2ggc2VxdWVudGlhbCBkYXRhVHlwZVxuXHR3aGlsZSAoIGN1cnJlbnQgKSB7XG5cblx0XHRpZiAoIHMucmVzcG9uc2VGaWVsZHNbIGN1cnJlbnQgXSApIHtcblx0XHRcdGpxWEhSWyBzLnJlc3BvbnNlRmllbGRzWyBjdXJyZW50IF0gXSA9IHJlc3BvbnNlO1xuXHRcdH1cblxuXHRcdC8vIEFwcGx5IHRoZSBkYXRhRmlsdGVyIGlmIHByb3ZpZGVkXG5cdFx0aWYgKCAhcHJldiAmJiBpc1N1Y2Nlc3MgJiYgcy5kYXRhRmlsdGVyICkge1xuXHRcdFx0cmVzcG9uc2UgPSBzLmRhdGFGaWx0ZXIoIHJlc3BvbnNlLCBzLmRhdGFUeXBlICk7XG5cdFx0fVxuXG5cdFx0cHJldiA9IGN1cnJlbnQ7XG5cdFx0Y3VycmVudCA9IGRhdGFUeXBlcy5zaGlmdCgpO1xuXG5cdFx0aWYgKCBjdXJyZW50ICkge1xuXG5cdFx0XHQvLyBUaGVyZSdzIG9ubHkgd29yayB0byBkbyBpZiBjdXJyZW50IGRhdGFUeXBlIGlzIG5vbi1hdXRvXG5cdFx0XHRpZiAoIGN1cnJlbnQgPT09IFwiKlwiICkge1xuXG5cdFx0XHRcdGN1cnJlbnQgPSBwcmV2O1xuXG5cdFx0XHQvLyBDb252ZXJ0IHJlc3BvbnNlIGlmIHByZXYgZGF0YVR5cGUgaXMgbm9uLWF1dG8gYW5kIGRpZmZlcnMgZnJvbSBjdXJyZW50XG5cdFx0XHR9IGVsc2UgaWYgKCBwcmV2ICE9PSBcIipcIiAmJiBwcmV2ICE9PSBjdXJyZW50ICkge1xuXG5cdFx0XHRcdC8vIFNlZWsgYSBkaXJlY3QgY29udmVydGVyXG5cdFx0XHRcdGNvbnYgPSBjb252ZXJ0ZXJzWyBwcmV2ICsgXCIgXCIgKyBjdXJyZW50IF0gfHwgY29udmVydGVyc1sgXCIqIFwiICsgY3VycmVudCBdO1xuXG5cdFx0XHRcdC8vIElmIG5vbmUgZm91bmQsIHNlZWsgYSBwYWlyXG5cdFx0XHRcdGlmICggIWNvbnYgKSB7XG5cdFx0XHRcdFx0Zm9yICggY29udjIgaW4gY29udmVydGVycyApIHtcblxuXHRcdFx0XHRcdFx0Ly8gSWYgY29udjIgb3V0cHV0cyBjdXJyZW50XG5cdFx0XHRcdFx0XHR0bXAgPSBjb252Mi5zcGxpdCggXCIgXCIgKTtcblx0XHRcdFx0XHRcdGlmICggdG1wWyAxIF0gPT09IGN1cnJlbnQgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gSWYgcHJldiBjYW4gYmUgY29udmVydGVkIHRvIGFjY2VwdGVkIGlucHV0XG5cdFx0XHRcdFx0XHRcdGNvbnYgPSBjb252ZXJ0ZXJzWyBwcmV2ICsgXCIgXCIgKyB0bXBbIDAgXSBdIHx8XG5cdFx0XHRcdFx0XHRcdFx0Y29udmVydGVyc1sgXCIqIFwiICsgdG1wWyAwIF0gXTtcblx0XHRcdFx0XHRcdFx0aWYgKCBjb252ICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gQ29uZGVuc2UgZXF1aXZhbGVuY2UgY29udmVydGVyc1xuXHRcdFx0XHRcdFx0XHRcdGlmICggY29udiA9PT0gdHJ1ZSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnYgPSBjb252ZXJ0ZXJzWyBjb252MiBdO1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gT3RoZXJ3aXNlLCBpbnNlcnQgdGhlIGludGVybWVkaWF0ZSBkYXRhVHlwZVxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoIGNvbnZlcnRlcnNbIGNvbnYyIF0gIT09IHRydWUgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjdXJyZW50ID0gdG1wWyAwIF07XG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhVHlwZXMudW5zaGlmdCggdG1wWyAxIF0gKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBBcHBseSBjb252ZXJ0ZXIgKGlmIG5vdCBhbiBlcXVpdmFsZW5jZSlcblx0XHRcdFx0aWYgKCBjb252ICE9PSB0cnVlICkge1xuXG5cdFx0XHRcdFx0Ly8gVW5sZXNzIGVycm9ycyBhcmUgYWxsb3dlZCB0byBidWJibGUsIGNhdGNoIGFuZCByZXR1cm4gdGhlbVxuXHRcdFx0XHRcdGlmICggY29udiAmJiBzLnRocm93cyApIHtcblx0XHRcdFx0XHRcdHJlc3BvbnNlID0gY29udiggcmVzcG9uc2UgKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0cmVzcG9uc2UgPSBjb252KCByZXNwb25zZSApO1xuXHRcdFx0XHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0c3RhdGU6IFwicGFyc2VyZXJyb3JcIixcblx0XHRcdFx0XHRcdFx0XHRlcnJvcjogY29udiA/IGUgOiBcIk5vIGNvbnZlcnNpb24gZnJvbSBcIiArIHByZXYgKyBcIiB0byBcIiArIGN1cnJlbnRcblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4geyBzdGF0ZTogXCJzdWNjZXNzXCIsIGRhdGE6IHJlc3BvbnNlIH07XG59XG5cbmpRdWVyeS5leHRlbmQoIHtcblxuXHQvLyBDb3VudGVyIGZvciBob2xkaW5nIHRoZSBudW1iZXIgb2YgYWN0aXZlIHF1ZXJpZXNcblx0YWN0aXZlOiAwLFxuXG5cdC8vIExhc3QtTW9kaWZpZWQgaGVhZGVyIGNhY2hlIGZvciBuZXh0IHJlcXVlc3Rcblx0bGFzdE1vZGlmaWVkOiB7fSxcblx0ZXRhZzoge30sXG5cblx0YWpheFNldHRpbmdzOiB7XG5cdFx0dXJsOiBsb2NhdGlvbi5ocmVmLFxuXHRcdHR5cGU6IFwiR0VUXCIsXG5cdFx0aXNMb2NhbDogcmxvY2FsUHJvdG9jb2wudGVzdCggbG9jYXRpb24ucHJvdG9jb2wgKSxcblx0XHRnbG9iYWw6IHRydWUsXG5cdFx0cHJvY2Vzc0RhdGE6IHRydWUsXG5cdFx0YXN5bmM6IHRydWUsXG5cdFx0Y29udGVudFR5cGU6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04XCIsXG5cblx0XHQvKlxuXHRcdHRpbWVvdXQ6IDAsXG5cdFx0ZGF0YTogbnVsbCxcblx0XHRkYXRhVHlwZTogbnVsbCxcblx0XHR1c2VybmFtZTogbnVsbCxcblx0XHRwYXNzd29yZDogbnVsbCxcblx0XHRjYWNoZTogbnVsbCxcblx0XHR0aHJvd3M6IGZhbHNlLFxuXHRcdHRyYWRpdGlvbmFsOiBmYWxzZSxcblx0XHRoZWFkZXJzOiB7fSxcblx0XHQqL1xuXG5cdFx0YWNjZXB0czoge1xuXHRcdFx0XCIqXCI6IGFsbFR5cGVzLFxuXHRcdFx0dGV4dDogXCJ0ZXh0L3BsYWluXCIsXG5cdFx0XHRodG1sOiBcInRleHQvaHRtbFwiLFxuXHRcdFx0eG1sOiBcImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWxcIixcblx0XHRcdGpzb246IFwiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0XCJcblx0XHR9LFxuXG5cdFx0Y29udGVudHM6IHtcblx0XHRcdHhtbDogL1xcYnhtbFxcYi8sXG5cdFx0XHRodG1sOiAvXFxiaHRtbC8sXG5cdFx0XHRqc29uOiAvXFxianNvblxcYi9cblx0XHR9LFxuXG5cdFx0cmVzcG9uc2VGaWVsZHM6IHtcblx0XHRcdHhtbDogXCJyZXNwb25zZVhNTFwiLFxuXHRcdFx0dGV4dDogXCJyZXNwb25zZVRleHRcIixcblx0XHRcdGpzb246IFwicmVzcG9uc2VKU09OXCJcblx0XHR9LFxuXG5cdFx0Ly8gRGF0YSBjb252ZXJ0ZXJzXG5cdFx0Ly8gS2V5cyBzZXBhcmF0ZSBzb3VyY2UgKG9yIGNhdGNoYWxsIFwiKlwiKSBhbmQgZGVzdGluYXRpb24gdHlwZXMgd2l0aCBhIHNpbmdsZSBzcGFjZVxuXHRcdGNvbnZlcnRlcnM6IHtcblxuXHRcdFx0Ly8gQ29udmVydCBhbnl0aGluZyB0byB0ZXh0XG5cdFx0XHRcIiogdGV4dFwiOiBTdHJpbmcsXG5cblx0XHRcdC8vIFRleHQgdG8gaHRtbCAodHJ1ZSA9IG5vIHRyYW5zZm9ybWF0aW9uKVxuXHRcdFx0XCJ0ZXh0IGh0bWxcIjogdHJ1ZSxcblxuXHRcdFx0Ly8gRXZhbHVhdGUgdGV4dCBhcyBhIGpzb24gZXhwcmVzc2lvblxuXHRcdFx0XCJ0ZXh0IGpzb25cIjogSlNPTi5wYXJzZSxcblxuXHRcdFx0Ly8gUGFyc2UgdGV4dCBhcyB4bWxcblx0XHRcdFwidGV4dCB4bWxcIjogalF1ZXJ5LnBhcnNlWE1MXG5cdFx0fSxcblxuXHRcdC8vIEZvciBvcHRpb25zIHRoYXQgc2hvdWxkbid0IGJlIGRlZXAgZXh0ZW5kZWQ6XG5cdFx0Ly8geW91IGNhbiBhZGQgeW91ciBvd24gY3VzdG9tIG9wdGlvbnMgaGVyZSBpZlxuXHRcdC8vIGFuZCB3aGVuIHlvdSBjcmVhdGUgb25lIHRoYXQgc2hvdWxkbid0IGJlXG5cdFx0Ly8gZGVlcCBleHRlbmRlZCAoc2VlIGFqYXhFeHRlbmQpXG5cdFx0ZmxhdE9wdGlvbnM6IHtcblx0XHRcdHVybDogdHJ1ZSxcblx0XHRcdGNvbnRleHQ6IHRydWVcblx0XHR9XG5cdH0sXG5cblx0Ly8gQ3JlYXRlcyBhIGZ1bGwgZmxlZGdlZCBzZXR0aW5ncyBvYmplY3QgaW50byB0YXJnZXRcblx0Ly8gd2l0aCBib3RoIGFqYXhTZXR0aW5ncyBhbmQgc2V0dGluZ3MgZmllbGRzLlxuXHQvLyBJZiB0YXJnZXQgaXMgb21pdHRlZCwgd3JpdGVzIGludG8gYWpheFNldHRpbmdzLlxuXHRhamF4U2V0dXA6IGZ1bmN0aW9uKCB0YXJnZXQsIHNldHRpbmdzICkge1xuXHRcdHJldHVybiBzZXR0aW5ncyA/XG5cblx0XHRcdC8vIEJ1aWxkaW5nIGEgc2V0dGluZ3Mgb2JqZWN0XG5cdFx0XHRhamF4RXh0ZW5kKCBhamF4RXh0ZW5kKCB0YXJnZXQsIGpRdWVyeS5hamF4U2V0dGluZ3MgKSwgc2V0dGluZ3MgKSA6XG5cblx0XHRcdC8vIEV4dGVuZGluZyBhamF4U2V0dGluZ3Ncblx0XHRcdGFqYXhFeHRlbmQoIGpRdWVyeS5hamF4U2V0dGluZ3MsIHRhcmdldCApO1xuXHR9LFxuXG5cdGFqYXhQcmVmaWx0ZXI6IGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyggcHJlZmlsdGVycyApLFxuXHRhamF4VHJhbnNwb3J0OiBhZGRUb1ByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHRyYW5zcG9ydHMgKSxcblxuXHQvLyBNYWluIG1ldGhvZFxuXHRhamF4OiBmdW5jdGlvbiggdXJsLCBvcHRpb25zICkge1xuXG5cdFx0Ly8gSWYgdXJsIGlzIGFuIG9iamVjdCwgc2ltdWxhdGUgcHJlLTEuNSBzaWduYXR1cmVcblx0XHRpZiAoIHR5cGVvZiB1cmwgPT09IFwib2JqZWN0XCIgKSB7XG5cdFx0XHRvcHRpb25zID0gdXJsO1xuXHRcdFx0dXJsID0gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdC8vIEZvcmNlIG9wdGlvbnMgdG8gYmUgYW4gb2JqZWN0XG5cdFx0b3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cblx0XHR2YXIgdHJhbnNwb3J0LFxuXG5cdFx0XHQvLyBVUkwgd2l0aG91dCBhbnRpLWNhY2hlIHBhcmFtXG5cdFx0XHRjYWNoZVVSTCxcblxuXHRcdFx0Ly8gUmVzcG9uc2UgaGVhZGVyc1xuXHRcdFx0cmVzcG9uc2VIZWFkZXJzU3RyaW5nLFxuXHRcdFx0cmVzcG9uc2VIZWFkZXJzLFxuXG5cdFx0XHQvLyB0aW1lb3V0IGhhbmRsZVxuXHRcdFx0dGltZW91dFRpbWVyLFxuXG5cdFx0XHQvLyBVcmwgY2xlYW51cCB2YXJcblx0XHRcdHVybEFuY2hvcixcblxuXHRcdFx0Ly8gUmVxdWVzdCBzdGF0ZSAoYmVjb21lcyBmYWxzZSB1cG9uIHNlbmQgYW5kIHRydWUgdXBvbiBjb21wbGV0aW9uKVxuXHRcdFx0Y29tcGxldGVkLFxuXG5cdFx0XHQvLyBUbyBrbm93IGlmIGdsb2JhbCBldmVudHMgYXJlIHRvIGJlIGRpc3BhdGNoZWRcblx0XHRcdGZpcmVHbG9iYWxzLFxuXG5cdFx0XHQvLyBMb29wIHZhcmlhYmxlXG5cdFx0XHRpLFxuXG5cdFx0XHQvLyB1bmNhY2hlZCBwYXJ0IG9mIHRoZSB1cmxcblx0XHRcdHVuY2FjaGVkLFxuXG5cdFx0XHQvLyBDcmVhdGUgdGhlIGZpbmFsIG9wdGlvbnMgb2JqZWN0XG5cdFx0XHRzID0galF1ZXJ5LmFqYXhTZXR1cCgge30sIG9wdGlvbnMgKSxcblxuXHRcdFx0Ly8gQ2FsbGJhY2tzIGNvbnRleHRcblx0XHRcdGNhbGxiYWNrQ29udGV4dCA9IHMuY29udGV4dCB8fCBzLFxuXG5cdFx0XHQvLyBDb250ZXh0IGZvciBnbG9iYWwgZXZlbnRzIGlzIGNhbGxiYWNrQ29udGV4dCBpZiBpdCBpcyBhIERPTSBub2RlIG9yIGpRdWVyeSBjb2xsZWN0aW9uXG5cdFx0XHRnbG9iYWxFdmVudENvbnRleHQgPSBzLmNvbnRleHQgJiZcblx0XHRcdFx0KCBjYWxsYmFja0NvbnRleHQubm9kZVR5cGUgfHwgY2FsbGJhY2tDb250ZXh0LmpxdWVyeSApID9cblx0XHRcdFx0alF1ZXJ5KCBjYWxsYmFja0NvbnRleHQgKSA6XG5cdFx0XHRcdGpRdWVyeS5ldmVudCxcblxuXHRcdFx0Ly8gRGVmZXJyZWRzXG5cdFx0XHRkZWZlcnJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpLFxuXHRcdFx0Y29tcGxldGVEZWZlcnJlZCA9IGpRdWVyeS5DYWxsYmFja3MoIFwib25jZSBtZW1vcnlcIiApLFxuXG5cdFx0XHQvLyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrc1xuXHRcdFx0c3RhdHVzQ29kZSA9IHMuc3RhdHVzQ29kZSB8fCB7fSxcblxuXHRcdFx0Ly8gSGVhZGVycyAodGhleSBhcmUgc2VudCBhbGwgYXQgb25jZSlcblx0XHRcdHJlcXVlc3RIZWFkZXJzID0ge30sXG5cdFx0XHRyZXF1ZXN0SGVhZGVyc05hbWVzID0ge30sXG5cblx0XHRcdC8vIERlZmF1bHQgYWJvcnQgbWVzc2FnZVxuXHRcdFx0c3RyQWJvcnQgPSBcImNhbmNlbGVkXCIsXG5cblx0XHRcdC8vIEZha2UgeGhyXG5cdFx0XHRqcVhIUiA9IHtcblx0XHRcdFx0cmVhZHlTdGF0ZTogMCxcblxuXHRcdFx0XHQvLyBCdWlsZHMgaGVhZGVycyBoYXNodGFibGUgaWYgbmVlZGVkXG5cdFx0XHRcdGdldFJlc3BvbnNlSGVhZGVyOiBmdW5jdGlvbigga2V5ICkge1xuXHRcdFx0XHRcdHZhciBtYXRjaDtcblx0XHRcdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblx0XHRcdFx0XHRcdGlmICggIXJlc3BvbnNlSGVhZGVycyApIHtcblx0XHRcdFx0XHRcdFx0cmVzcG9uc2VIZWFkZXJzID0ge307XG5cdFx0XHRcdFx0XHRcdHdoaWxlICggKCBtYXRjaCA9IHJoZWFkZXJzLmV4ZWMoIHJlc3BvbnNlSGVhZGVyc1N0cmluZyApICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzcG9uc2VIZWFkZXJzWyBtYXRjaFsgMSBdLnRvTG93ZXJDYXNlKCkgKyBcIiBcIiBdID1cblx0XHRcdFx0XHRcdFx0XHRcdCggcmVzcG9uc2VIZWFkZXJzWyBtYXRjaFsgMSBdLnRvTG93ZXJDYXNlKCkgKyBcIiBcIiBdIHx8IFtdIClcblx0XHRcdFx0XHRcdFx0XHRcdFx0LmNvbmNhdCggbWF0Y2hbIDIgXSApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRtYXRjaCA9IHJlc3BvbnNlSGVhZGVyc1sga2V5LnRvTG93ZXJDYXNlKCkgKyBcIiBcIiBdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gbWF0Y2ggPT0gbnVsbCA/IG51bGwgOiBtYXRjaC5qb2luKCBcIiwgXCIgKTtcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBSYXcgc3RyaW5nXG5cdFx0XHRcdGdldEFsbFJlc3BvbnNlSGVhZGVyczogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGNvbXBsZXRlZCA/IHJlc3BvbnNlSGVhZGVyc1N0cmluZyA6IG51bGw7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gQ2FjaGVzIHRoZSBoZWFkZXJcblx0XHRcdFx0c2V0UmVxdWVzdEhlYWRlcjogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkge1xuXHRcdFx0XHRcdGlmICggY29tcGxldGVkID09IG51bGwgKSB7XG5cdFx0XHRcdFx0XHRuYW1lID0gcmVxdWVzdEhlYWRlcnNOYW1lc1sgbmFtZS50b0xvd2VyQ2FzZSgpIF0gPVxuXHRcdFx0XHRcdFx0XHRyZXF1ZXN0SGVhZGVyc05hbWVzWyBuYW1lLnRvTG93ZXJDYXNlKCkgXSB8fCBuYW1lO1xuXHRcdFx0XHRcdFx0cmVxdWVzdEhlYWRlcnNbIG5hbWUgXSA9IHZhbHVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBPdmVycmlkZXMgcmVzcG9uc2UgY29udGVudC10eXBlIGhlYWRlclxuXHRcdFx0XHRvdmVycmlkZU1pbWVUeXBlOiBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRcdFx0XHRpZiAoIGNvbXBsZXRlZCA9PSBudWxsICkge1xuXHRcdFx0XHRcdFx0cy5taW1lVHlwZSA9IHR5cGU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9LFxuXG5cdFx0XHRcdC8vIFN0YXR1cy1kZXBlbmRlbnQgY2FsbGJhY2tzXG5cdFx0XHRcdHN0YXR1c0NvZGU6IGZ1bmN0aW9uKCBtYXAgKSB7XG5cdFx0XHRcdFx0dmFyIGNvZGU7XG5cdFx0XHRcdFx0aWYgKCBtYXAgKSB7XG5cdFx0XHRcdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBFeGVjdXRlIHRoZSBhcHByb3ByaWF0ZSBjYWxsYmFja3Ncblx0XHRcdFx0XHRcdFx0anFYSFIuYWx3YXlzKCBtYXBbIGpxWEhSLnN0YXR1cyBdICk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRcdC8vIExhenktYWRkIHRoZSBuZXcgY2FsbGJhY2tzIGluIGEgd2F5IHRoYXQgcHJlc2VydmVzIG9sZCBvbmVzXG5cdFx0XHRcdFx0XHRcdGZvciAoIGNvZGUgaW4gbWFwICkge1xuXHRcdFx0XHRcdFx0XHRcdHN0YXR1c0NvZGVbIGNvZGUgXSA9IFsgc3RhdHVzQ29kZVsgY29kZSBdLCBtYXBbIGNvZGUgXSBdO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9LFxuXG5cdFx0XHRcdC8vIENhbmNlbCB0aGUgcmVxdWVzdFxuXHRcdFx0XHRhYm9ydDogZnVuY3Rpb24oIHN0YXR1c1RleHQgKSB7XG5cdFx0XHRcdFx0dmFyIGZpbmFsVGV4dCA9IHN0YXR1c1RleHQgfHwgc3RyQWJvcnQ7XG5cdFx0XHRcdFx0aWYgKCB0cmFuc3BvcnQgKSB7XG5cdFx0XHRcdFx0XHR0cmFuc3BvcnQuYWJvcnQoIGZpbmFsVGV4dCApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRkb25lKCAwLCBmaW5hbFRleHQgKTtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdC8vIEF0dGFjaCBkZWZlcnJlZHNcblx0XHRkZWZlcnJlZC5wcm9taXNlKCBqcVhIUiApO1xuXG5cdFx0Ly8gQWRkIHByb3RvY29sIGlmIG5vdCBwcm92aWRlZCAocHJlZmlsdGVycyBtaWdodCBleHBlY3QgaXQpXG5cdFx0Ly8gSGFuZGxlIGZhbHN5IHVybCBpbiB0aGUgc2V0dGluZ3Mgb2JqZWN0ICgjMTAwOTM6IGNvbnNpc3RlbmN5IHdpdGggb2xkIHNpZ25hdHVyZSlcblx0XHQvLyBXZSBhbHNvIHVzZSB0aGUgdXJsIHBhcmFtZXRlciBpZiBhdmFpbGFibGVcblx0XHRzLnVybCA9ICggKCB1cmwgfHwgcy51cmwgfHwgbG9jYXRpb24uaHJlZiApICsgXCJcIiApXG5cdFx0XHQucmVwbGFjZSggcnByb3RvY29sLCBsb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiApO1xuXG5cdFx0Ly8gQWxpYXMgbWV0aG9kIG9wdGlvbiB0byB0eXBlIGFzIHBlciB0aWNrZXQgIzEyMDA0XG5cdFx0cy50eXBlID0gb3B0aW9ucy5tZXRob2QgfHwgb3B0aW9ucy50eXBlIHx8IHMubWV0aG9kIHx8IHMudHlwZTtcblxuXHRcdC8vIEV4dHJhY3QgZGF0YVR5cGVzIGxpc3Rcblx0XHRzLmRhdGFUeXBlcyA9ICggcy5kYXRhVHlwZSB8fCBcIipcIiApLnRvTG93ZXJDYXNlKCkubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbIFwiXCIgXTtcblxuXHRcdC8vIEEgY3Jvc3MtZG9tYWluIHJlcXVlc3QgaXMgaW4gb3JkZXIgd2hlbiB0aGUgb3JpZ2luIGRvZXNuJ3QgbWF0Y2ggdGhlIGN1cnJlbnQgb3JpZ2luLlxuXHRcdGlmICggcy5jcm9zc0RvbWFpbiA9PSBudWxsICkge1xuXHRcdFx0dXJsQW5jaG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJhXCIgKTtcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgPD04IC0gMTEsIEVkZ2UgMTIgLSAxNVxuXHRcdFx0Ly8gSUUgdGhyb3dzIGV4Y2VwdGlvbiBvbiBhY2Nlc3NpbmcgdGhlIGhyZWYgcHJvcGVydHkgaWYgdXJsIGlzIG1hbGZvcm1lZCxcblx0XHRcdC8vIGUuZy4gaHR0cDovL2V4YW1wbGUuY29tOjgweC9cblx0XHRcdHRyeSB7XG5cdFx0XHRcdHVybEFuY2hvci5ocmVmID0gcy51cmw7XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD04IC0gMTEgb25seVxuXHRcdFx0XHQvLyBBbmNob3IncyBob3N0IHByb3BlcnR5IGlzbid0IGNvcnJlY3RseSBzZXQgd2hlbiBzLnVybCBpcyByZWxhdGl2ZVxuXHRcdFx0XHR1cmxBbmNob3IuaHJlZiA9IHVybEFuY2hvci5ocmVmO1xuXHRcdFx0XHRzLmNyb3NzRG9tYWluID0gb3JpZ2luQW5jaG9yLnByb3RvY29sICsgXCIvL1wiICsgb3JpZ2luQW5jaG9yLmhvc3QgIT09XG5cdFx0XHRcdFx0dXJsQW5jaG9yLnByb3RvY29sICsgXCIvL1wiICsgdXJsQW5jaG9yLmhvc3Q7XG5cdFx0XHR9IGNhdGNoICggZSApIHtcblxuXHRcdFx0XHQvLyBJZiB0aGVyZSBpcyBhbiBlcnJvciBwYXJzaW5nIHRoZSBVUkwsIGFzc3VtZSBpdCBpcyBjcm9zc0RvbWFpbixcblx0XHRcdFx0Ly8gaXQgY2FuIGJlIHJlamVjdGVkIGJ5IHRoZSB0cmFuc3BvcnQgaWYgaXQgaXMgaW52YWxpZFxuXHRcdFx0XHRzLmNyb3NzRG9tYWluID0gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBDb252ZXJ0IGRhdGEgaWYgbm90IGFscmVhZHkgYSBzdHJpbmdcblx0XHRpZiAoIHMuZGF0YSAmJiBzLnByb2Nlc3NEYXRhICYmIHR5cGVvZiBzLmRhdGEgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRzLmRhdGEgPSBqUXVlcnkucGFyYW0oIHMuZGF0YSwgcy50cmFkaXRpb25hbCApO1xuXHRcdH1cblxuXHRcdC8vIEFwcGx5IHByZWZpbHRlcnNcblx0XHRpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggcHJlZmlsdGVycywgcywgb3B0aW9ucywganFYSFIgKTtcblxuXHRcdC8vIElmIHJlcXVlc3Qgd2FzIGFib3J0ZWQgaW5zaWRlIGEgcHJlZmlsdGVyLCBzdG9wIHRoZXJlXG5cdFx0aWYgKCBjb21wbGV0ZWQgKSB7XG5cdFx0XHRyZXR1cm4ganFYSFI7XG5cdFx0fVxuXG5cdFx0Ly8gV2UgY2FuIGZpcmUgZ2xvYmFsIGV2ZW50cyBhcyBvZiBub3cgaWYgYXNrZWQgdG9cblx0XHQvLyBEb24ndCBmaXJlIGV2ZW50cyBpZiBqUXVlcnkuZXZlbnQgaXMgdW5kZWZpbmVkIGluIGFuIEFNRC11c2FnZSBzY2VuYXJpbyAoIzE1MTE4KVxuXHRcdGZpcmVHbG9iYWxzID0galF1ZXJ5LmV2ZW50ICYmIHMuZ2xvYmFsO1xuXG5cdFx0Ly8gV2F0Y2ggZm9yIGEgbmV3IHNldCBvZiByZXF1ZXN0c1xuXHRcdGlmICggZmlyZUdsb2JhbHMgJiYgalF1ZXJ5LmFjdGl2ZSsrID09PSAwICkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoIFwiYWpheFN0YXJ0XCIgKTtcblx0XHR9XG5cblx0XHQvLyBVcHBlcmNhc2UgdGhlIHR5cGVcblx0XHRzLnR5cGUgPSBzLnR5cGUudG9VcHBlckNhc2UoKTtcblxuXHRcdC8vIERldGVybWluZSBpZiByZXF1ZXN0IGhhcyBjb250ZW50XG5cdFx0cy5oYXNDb250ZW50ID0gIXJub0NvbnRlbnQudGVzdCggcy50eXBlICk7XG5cblx0XHQvLyBTYXZlIHRoZSBVUkwgaW4gY2FzZSB3ZSdyZSB0b3lpbmcgd2l0aCB0aGUgSWYtTW9kaWZpZWQtU2luY2Vcblx0XHQvLyBhbmQvb3IgSWYtTm9uZS1NYXRjaCBoZWFkZXIgbGF0ZXIgb25cblx0XHQvLyBSZW1vdmUgaGFzaCB0byBzaW1wbGlmeSB1cmwgbWFuaXB1bGF0aW9uXG5cdFx0Y2FjaGVVUkwgPSBzLnVybC5yZXBsYWNlKCByaGFzaCwgXCJcIiApO1xuXG5cdFx0Ly8gTW9yZSBvcHRpb25zIGhhbmRsaW5nIGZvciByZXF1ZXN0cyB3aXRoIG5vIGNvbnRlbnRcblx0XHRpZiAoICFzLmhhc0NvbnRlbnQgKSB7XG5cblx0XHRcdC8vIFJlbWVtYmVyIHRoZSBoYXNoIHNvIHdlIGNhbiBwdXQgaXQgYmFja1xuXHRcdFx0dW5jYWNoZWQgPSBzLnVybC5zbGljZSggY2FjaGVVUkwubGVuZ3RoICk7XG5cblx0XHRcdC8vIElmIGRhdGEgaXMgYXZhaWxhYmxlIGFuZCBzaG91bGQgYmUgcHJvY2Vzc2VkLCBhcHBlbmQgZGF0YSB0byB1cmxcblx0XHRcdGlmICggcy5kYXRhICYmICggcy5wcm9jZXNzRGF0YSB8fCB0eXBlb2Ygcy5kYXRhID09PSBcInN0cmluZ1wiICkgKSB7XG5cdFx0XHRcdGNhY2hlVVJMICs9ICggcnF1ZXJ5LnRlc3QoIGNhY2hlVVJMICkgPyBcIiZcIiA6IFwiP1wiICkgKyBzLmRhdGE7XG5cblx0XHRcdFx0Ly8gIzk2ODI6IHJlbW92ZSBkYXRhIHNvIHRoYXQgaXQncyBub3QgdXNlZCBpbiBhbiBldmVudHVhbCByZXRyeVxuXHRcdFx0XHRkZWxldGUgcy5kYXRhO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBZGQgb3IgdXBkYXRlIGFudGktY2FjaGUgcGFyYW0gaWYgbmVlZGVkXG5cdFx0XHRpZiAoIHMuY2FjaGUgPT09IGZhbHNlICkge1xuXHRcdFx0XHRjYWNoZVVSTCA9IGNhY2hlVVJMLnJlcGxhY2UoIHJhbnRpQ2FjaGUsIFwiJDFcIiApO1xuXHRcdFx0XHR1bmNhY2hlZCA9ICggcnF1ZXJ5LnRlc3QoIGNhY2hlVVJMICkgPyBcIiZcIiA6IFwiP1wiICkgKyBcIl89XCIgKyAoIG5vbmNlLmd1aWQrKyApICtcblx0XHRcdFx0XHR1bmNhY2hlZDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUHV0IGhhc2ggYW5kIGFudGktY2FjaGUgb24gdGhlIFVSTCB0aGF0IHdpbGwgYmUgcmVxdWVzdGVkIChnaC0xNzMyKVxuXHRcdFx0cy51cmwgPSBjYWNoZVVSTCArIHVuY2FjaGVkO1xuXG5cdFx0Ly8gQ2hhbmdlICclMjAnIHRvICcrJyBpZiB0aGlzIGlzIGVuY29kZWQgZm9ybSBib2R5IGNvbnRlbnQgKGdoLTI2NTgpXG5cdFx0fSBlbHNlIGlmICggcy5kYXRhICYmIHMucHJvY2Vzc0RhdGEgJiZcblx0XHRcdCggcy5jb250ZW50VHlwZSB8fCBcIlwiICkuaW5kZXhPZiggXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiApID09PSAwICkge1xuXHRcdFx0cy5kYXRhID0gcy5kYXRhLnJlcGxhY2UoIHIyMCwgXCIrXCIgKTtcblx0XHR9XG5cblx0XHQvLyBTZXQgdGhlIElmLU1vZGlmaWVkLVNpbmNlIGFuZC9vciBJZi1Ob25lLU1hdGNoIGhlYWRlciwgaWYgaW4gaWZNb2RpZmllZCBtb2RlLlxuXHRcdGlmICggcy5pZk1vZGlmaWVkICkge1xuXHRcdFx0aWYgKCBqUXVlcnkubGFzdE1vZGlmaWVkWyBjYWNoZVVSTCBdICkge1xuXHRcdFx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKCBcIklmLU1vZGlmaWVkLVNpbmNlXCIsIGpRdWVyeS5sYXN0TW9kaWZpZWRbIGNhY2hlVVJMIF0gKTtcblx0XHRcdH1cblx0XHRcdGlmICggalF1ZXJ5LmV0YWdbIGNhY2hlVVJMIF0gKSB7XG5cdFx0XHRcdGpxWEhSLnNldFJlcXVlc3RIZWFkZXIoIFwiSWYtTm9uZS1NYXRjaFwiLCBqUXVlcnkuZXRhZ1sgY2FjaGVVUkwgXSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFNldCB0aGUgY29ycmVjdCBoZWFkZXIsIGlmIGRhdGEgaXMgYmVpbmcgc2VudFxuXHRcdGlmICggcy5kYXRhICYmIHMuaGFzQ29udGVudCAmJiBzLmNvbnRlbnRUeXBlICE9PSBmYWxzZSB8fCBvcHRpb25zLmNvbnRlbnRUeXBlICkge1xuXHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggXCJDb250ZW50LVR5cGVcIiwgcy5jb250ZW50VHlwZSApO1xuXHRcdH1cblxuXHRcdC8vIFNldCB0aGUgQWNjZXB0cyBoZWFkZXIgZm9yIHRoZSBzZXJ2ZXIsIGRlcGVuZGluZyBvbiB0aGUgZGF0YVR5cGVcblx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKFxuXHRcdFx0XCJBY2NlcHRcIixcblx0XHRcdHMuZGF0YVR5cGVzWyAwIF0gJiYgcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1sgMCBdIF0gP1xuXHRcdFx0XHRzLmFjY2VwdHNbIHMuZGF0YVR5cGVzWyAwIF0gXSArXG5cdFx0XHRcdFx0KCBzLmRhdGFUeXBlc1sgMCBdICE9PSBcIipcIiA/IFwiLCBcIiArIGFsbFR5cGVzICsgXCI7IHE9MC4wMVwiIDogXCJcIiApIDpcblx0XHRcdFx0cy5hY2NlcHRzWyBcIipcIiBdXG5cdFx0KTtcblxuXHRcdC8vIENoZWNrIGZvciBoZWFkZXJzIG9wdGlvblxuXHRcdGZvciAoIGkgaW4gcy5oZWFkZXJzICkge1xuXHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggaSwgcy5oZWFkZXJzWyBpIF0gKTtcblx0XHR9XG5cblx0XHQvLyBBbGxvdyBjdXN0b20gaGVhZGVycy9taW1ldHlwZXMgYW5kIGVhcmx5IGFib3J0XG5cdFx0aWYgKCBzLmJlZm9yZVNlbmQgJiZcblx0XHRcdCggcy5iZWZvcmVTZW5kLmNhbGwoIGNhbGxiYWNrQ29udGV4dCwganFYSFIsIHMgKSA9PT0gZmFsc2UgfHwgY29tcGxldGVkICkgKSB7XG5cblx0XHRcdC8vIEFib3J0IGlmIG5vdCBkb25lIGFscmVhZHkgYW5kIHJldHVyblxuXHRcdFx0cmV0dXJuIGpxWEhSLmFib3J0KCk7XG5cdFx0fVxuXG5cdFx0Ly8gQWJvcnRpbmcgaXMgbm8gbG9uZ2VyIGEgY2FuY2VsbGF0aW9uXG5cdFx0c3RyQWJvcnQgPSBcImFib3J0XCI7XG5cblx0XHQvLyBJbnN0YWxsIGNhbGxiYWNrcyBvbiBkZWZlcnJlZHNcblx0XHRjb21wbGV0ZURlZmVycmVkLmFkZCggcy5jb21wbGV0ZSApO1xuXHRcdGpxWEhSLmRvbmUoIHMuc3VjY2VzcyApO1xuXHRcdGpxWEhSLmZhaWwoIHMuZXJyb3IgKTtcblxuXHRcdC8vIEdldCB0cmFuc3BvcnRcblx0XHR0cmFuc3BvcnQgPSBpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggdHJhbnNwb3J0cywgcywgb3B0aW9ucywganFYSFIgKTtcblxuXHRcdC8vIElmIG5vIHRyYW5zcG9ydCwgd2UgYXV0by1hYm9ydFxuXHRcdGlmICggIXRyYW5zcG9ydCApIHtcblx0XHRcdGRvbmUoIC0xLCBcIk5vIFRyYW5zcG9ydFwiICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGpxWEhSLnJlYWR5U3RhdGUgPSAxO1xuXG5cdFx0XHQvLyBTZW5kIGdsb2JhbCBldmVudFxuXHRcdFx0aWYgKCBmaXJlR2xvYmFscyApIHtcblx0XHRcdFx0Z2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoIFwiYWpheFNlbmRcIiwgWyBqcVhIUiwgcyBdICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIHJlcXVlc3Qgd2FzIGFib3J0ZWQgaW5zaWRlIGFqYXhTZW5kLCBzdG9wIHRoZXJlXG5cdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblx0XHRcdFx0cmV0dXJuIGpxWEhSO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBUaW1lb3V0XG5cdFx0XHRpZiAoIHMuYXN5bmMgJiYgcy50aW1lb3V0ID4gMCApIHtcblx0XHRcdFx0dGltZW91dFRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGpxWEhSLmFib3J0KCBcInRpbWVvdXRcIiApO1xuXHRcdFx0XHR9LCBzLnRpbWVvdXQgKTtcblx0XHRcdH1cblxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29tcGxldGVkID0gZmFsc2U7XG5cdFx0XHRcdHRyYW5zcG9ydC5zZW5kKCByZXF1ZXN0SGVhZGVycywgZG9uZSApO1xuXHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cblx0XHRcdFx0Ly8gUmV0aHJvdyBwb3N0LWNvbXBsZXRpb24gZXhjZXB0aW9uc1xuXHRcdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblx0XHRcdFx0XHR0aHJvdyBlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gUHJvcGFnYXRlIG90aGVycyBhcyByZXN1bHRzXG5cdFx0XHRcdGRvbmUoIC0xLCBlICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsbGJhY2sgZm9yIHdoZW4gZXZlcnl0aGluZyBpcyBkb25lXG5cdFx0ZnVuY3Rpb24gZG9uZSggc3RhdHVzLCBuYXRpdmVTdGF0dXNUZXh0LCByZXNwb25zZXMsIGhlYWRlcnMgKSB7XG5cdFx0XHR2YXIgaXNTdWNjZXNzLCBzdWNjZXNzLCBlcnJvciwgcmVzcG9uc2UsIG1vZGlmaWVkLFxuXHRcdFx0XHRzdGF0dXNUZXh0ID0gbmF0aXZlU3RhdHVzVGV4dDtcblxuXHRcdFx0Ly8gSWdub3JlIHJlcGVhdCBpbnZvY2F0aW9uc1xuXHRcdFx0aWYgKCBjb21wbGV0ZWQgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Y29tcGxldGVkID0gdHJ1ZTtcblxuXHRcdFx0Ly8gQ2xlYXIgdGltZW91dCBpZiBpdCBleGlzdHNcblx0XHRcdGlmICggdGltZW91dFRpbWVyICkge1xuXHRcdFx0XHR3aW5kb3cuY2xlYXJUaW1lb3V0KCB0aW1lb3V0VGltZXIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gRGVyZWZlcmVuY2UgdHJhbnNwb3J0IGZvciBlYXJseSBnYXJiYWdlIGNvbGxlY3Rpb25cblx0XHRcdC8vIChubyBtYXR0ZXIgaG93IGxvbmcgdGhlIGpxWEhSIG9iamVjdCB3aWxsIGJlIHVzZWQpXG5cdFx0XHR0cmFuc3BvcnQgPSB1bmRlZmluZWQ7XG5cblx0XHRcdC8vIENhY2hlIHJlc3BvbnNlIGhlYWRlcnNcblx0XHRcdHJlc3BvbnNlSGVhZGVyc1N0cmluZyA9IGhlYWRlcnMgfHwgXCJcIjtcblxuXHRcdFx0Ly8gU2V0IHJlYWR5U3RhdGVcblx0XHRcdGpxWEhSLnJlYWR5U3RhdGUgPSBzdGF0dXMgPiAwID8gNCA6IDA7XG5cblx0XHRcdC8vIERldGVybWluZSBpZiBzdWNjZXNzZnVsXG5cdFx0XHRpc1N1Y2Nlc3MgPSBzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMCB8fCBzdGF0dXMgPT09IDMwNDtcblxuXHRcdFx0Ly8gR2V0IHJlc3BvbnNlIGRhdGFcblx0XHRcdGlmICggcmVzcG9uc2VzICkge1xuXHRcdFx0XHRyZXNwb25zZSA9IGFqYXhIYW5kbGVSZXNwb25zZXMoIHMsIGpxWEhSLCByZXNwb25zZXMgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gVXNlIGEgbm9vcCBjb252ZXJ0ZXIgZm9yIG1pc3Npbmcgc2NyaXB0IGJ1dCBub3QgaWYganNvbnBcblx0XHRcdGlmICggIWlzU3VjY2VzcyAmJlxuXHRcdFx0XHRqUXVlcnkuaW5BcnJheSggXCJzY3JpcHRcIiwgcy5kYXRhVHlwZXMgKSA+IC0xICYmXG5cdFx0XHRcdGpRdWVyeS5pbkFycmF5KCBcImpzb25cIiwgcy5kYXRhVHlwZXMgKSA8IDAgKSB7XG5cdFx0XHRcdHMuY29udmVydGVyc1sgXCJ0ZXh0IHNjcmlwdFwiIF0gPSBmdW5jdGlvbigpIHt9O1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDb252ZXJ0IG5vIG1hdHRlciB3aGF0ICh0aGF0IHdheSByZXNwb25zZVhYWCBmaWVsZHMgYXJlIGFsd2F5cyBzZXQpXG5cdFx0XHRyZXNwb25zZSA9IGFqYXhDb252ZXJ0KCBzLCByZXNwb25zZSwganFYSFIsIGlzU3VjY2VzcyApO1xuXG5cdFx0XHQvLyBJZiBzdWNjZXNzZnVsLCBoYW5kbGUgdHlwZSBjaGFpbmluZ1xuXHRcdFx0aWYgKCBpc1N1Y2Nlc3MgKSB7XG5cblx0XHRcdFx0Ly8gU2V0IHRoZSBJZi1Nb2RpZmllZC1TaW5jZSBhbmQvb3IgSWYtTm9uZS1NYXRjaCBoZWFkZXIsIGlmIGluIGlmTW9kaWZpZWQgbW9kZS5cblx0XHRcdFx0aWYgKCBzLmlmTW9kaWZpZWQgKSB7XG5cdFx0XHRcdFx0bW9kaWZpZWQgPSBqcVhIUi5nZXRSZXNwb25zZUhlYWRlciggXCJMYXN0LU1vZGlmaWVkXCIgKTtcblx0XHRcdFx0XHRpZiAoIG1vZGlmaWVkICkge1xuXHRcdFx0XHRcdFx0alF1ZXJ5Lmxhc3RNb2RpZmllZFsgY2FjaGVVUkwgXSA9IG1vZGlmaWVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRtb2RpZmllZCA9IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKCBcImV0YWdcIiApO1xuXHRcdFx0XHRcdGlmICggbW9kaWZpZWQgKSB7XG5cdFx0XHRcdFx0XHRqUXVlcnkuZXRhZ1sgY2FjaGVVUkwgXSA9IG1vZGlmaWVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIGlmIG5vIGNvbnRlbnRcblx0XHRcdFx0aWYgKCBzdGF0dXMgPT09IDIwNCB8fCBzLnR5cGUgPT09IFwiSEVBRFwiICkge1xuXHRcdFx0XHRcdHN0YXR1c1RleHQgPSBcIm5vY29udGVudFwiO1xuXG5cdFx0XHRcdC8vIGlmIG5vdCBtb2RpZmllZFxuXHRcdFx0XHR9IGVsc2UgaWYgKCBzdGF0dXMgPT09IDMwNCApIHtcblx0XHRcdFx0XHRzdGF0dXNUZXh0ID0gXCJub3Rtb2RpZmllZFwiO1xuXG5cdFx0XHRcdC8vIElmIHdlIGhhdmUgZGF0YSwgbGV0J3MgY29udmVydCBpdFxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHN0YXR1c1RleHQgPSByZXNwb25zZS5zdGF0ZTtcblx0XHRcdFx0XHRzdWNjZXNzID0gcmVzcG9uc2UuZGF0YTtcblx0XHRcdFx0XHRlcnJvciA9IHJlc3BvbnNlLmVycm9yO1xuXHRcdFx0XHRcdGlzU3VjY2VzcyA9ICFlcnJvcjtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHQvLyBFeHRyYWN0IGVycm9yIGZyb20gc3RhdHVzVGV4dCBhbmQgbm9ybWFsaXplIGZvciBub24tYWJvcnRzXG5cdFx0XHRcdGVycm9yID0gc3RhdHVzVGV4dDtcblx0XHRcdFx0aWYgKCBzdGF0dXMgfHwgIXN0YXR1c1RleHQgKSB7XG5cdFx0XHRcdFx0c3RhdHVzVGV4dCA9IFwiZXJyb3JcIjtcblx0XHRcdFx0XHRpZiAoIHN0YXR1cyA8IDAgKSB7XG5cdFx0XHRcdFx0XHRzdGF0dXMgPSAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBTZXQgZGF0YSBmb3IgdGhlIGZha2UgeGhyIG9iamVjdFxuXHRcdFx0anFYSFIuc3RhdHVzID0gc3RhdHVzO1xuXHRcdFx0anFYSFIuc3RhdHVzVGV4dCA9ICggbmF0aXZlU3RhdHVzVGV4dCB8fCBzdGF0dXNUZXh0ICkgKyBcIlwiO1xuXG5cdFx0XHQvLyBTdWNjZXNzL0Vycm9yXG5cdFx0XHRpZiAoIGlzU3VjY2VzcyApIHtcblx0XHRcdFx0ZGVmZXJyZWQucmVzb2x2ZVdpdGgoIGNhbGxiYWNrQ29udGV4dCwgWyBzdWNjZXNzLCBzdGF0dXNUZXh0LCBqcVhIUiBdICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkZWZlcnJlZC5yZWplY3RXaXRoKCBjYWxsYmFja0NvbnRleHQsIFsganFYSFIsIHN0YXR1c1RleHQsIGVycm9yIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU3RhdHVzLWRlcGVuZGVudCBjYWxsYmFja3Ncblx0XHRcdGpxWEhSLnN0YXR1c0NvZGUoIHN0YXR1c0NvZGUgKTtcblx0XHRcdHN0YXR1c0NvZGUgPSB1bmRlZmluZWQ7XG5cblx0XHRcdGlmICggZmlyZUdsb2JhbHMgKSB7XG5cdFx0XHRcdGdsb2JhbEV2ZW50Q29udGV4dC50cmlnZ2VyKCBpc1N1Y2Nlc3MgPyBcImFqYXhTdWNjZXNzXCIgOiBcImFqYXhFcnJvclwiLFxuXHRcdFx0XHRcdFsganFYSFIsIHMsIGlzU3VjY2VzcyA/IHN1Y2Nlc3MgOiBlcnJvciBdICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENvbXBsZXRlXG5cdFx0XHRjb21wbGV0ZURlZmVycmVkLmZpcmVXaXRoKCBjYWxsYmFja0NvbnRleHQsIFsganFYSFIsIHN0YXR1c1RleHQgXSApO1xuXG5cdFx0XHRpZiAoIGZpcmVHbG9iYWxzICkge1xuXHRcdFx0XHRnbG9iYWxFdmVudENvbnRleHQudHJpZ2dlciggXCJhamF4Q29tcGxldGVcIiwgWyBqcVhIUiwgcyBdICk7XG5cblx0XHRcdFx0Ly8gSGFuZGxlIHRoZSBnbG9iYWwgQUpBWCBjb3VudGVyXG5cdFx0XHRcdGlmICggISggLS1qUXVlcnkuYWN0aXZlICkgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoIFwiYWpheFN0b3BcIiApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGpxWEhSO1xuXHR9LFxuXG5cdGdldEpTT046IGZ1bmN0aW9uKCB1cmwsIGRhdGEsIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiBqUXVlcnkuZ2V0KCB1cmwsIGRhdGEsIGNhbGxiYWNrLCBcImpzb25cIiApO1xuXHR9LFxuXG5cdGdldFNjcmlwdDogZnVuY3Rpb24oIHVybCwgY2FsbGJhY2sgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5nZXQoIHVybCwgdW5kZWZpbmVkLCBjYWxsYmFjaywgXCJzY3JpcHRcIiApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5lYWNoKCBbIFwiZ2V0XCIsIFwicG9zdFwiIF0sIGZ1bmN0aW9uKCBfaSwgbWV0aG9kICkge1xuXHRqUXVlcnlbIG1ldGhvZCBdID0gZnVuY3Rpb24oIHVybCwgZGF0YSwgY2FsbGJhY2ssIHR5cGUgKSB7XG5cblx0XHQvLyBTaGlmdCBhcmd1bWVudHMgaWYgZGF0YSBhcmd1bWVudCB3YXMgb21pdHRlZFxuXHRcdGlmICggaXNGdW5jdGlvbiggZGF0YSApICkge1xuXHRcdFx0dHlwZSA9IHR5cGUgfHwgY2FsbGJhY2s7XG5cdFx0XHRjYWxsYmFjayA9IGRhdGE7XG5cdFx0XHRkYXRhID0gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdC8vIFRoZSB1cmwgY2FuIGJlIGFuIG9wdGlvbnMgb2JqZWN0ICh3aGljaCB0aGVuIG11c3QgaGF2ZSAudXJsKVxuXHRcdHJldHVybiBqUXVlcnkuYWpheCggalF1ZXJ5LmV4dGVuZCgge1xuXHRcdFx0dXJsOiB1cmwsXG5cdFx0XHR0eXBlOiBtZXRob2QsXG5cdFx0XHRkYXRhVHlwZTogdHlwZSxcblx0XHRcdGRhdGE6IGRhdGEsXG5cdFx0XHRzdWNjZXNzOiBjYWxsYmFja1xuXHRcdH0sIGpRdWVyeS5pc1BsYWluT2JqZWN0KCB1cmwgKSAmJiB1cmwgKSApO1xuXHR9O1xufSApO1xuXG5qUXVlcnkuYWpheFByZWZpbHRlciggZnVuY3Rpb24oIHMgKSB7XG5cdHZhciBpO1xuXHRmb3IgKCBpIGluIHMuaGVhZGVycyApIHtcblx0XHRpZiAoIGkudG9Mb3dlckNhc2UoKSA9PT0gXCJjb250ZW50LXR5cGVcIiApIHtcblx0XHRcdHMuY29udGVudFR5cGUgPSBzLmhlYWRlcnNbIGkgXSB8fCBcIlwiO1xuXHRcdH1cblx0fVxufSApO1xuXG5cbmpRdWVyeS5fZXZhbFVybCA9IGZ1bmN0aW9uKCB1cmwsIG9wdGlvbnMsIGRvYyApIHtcblx0cmV0dXJuIGpRdWVyeS5hamF4KCB7XG5cdFx0dXJsOiB1cmwsXG5cblx0XHQvLyBNYWtlIHRoaXMgZXhwbGljaXQsIHNpbmNlIHVzZXIgY2FuIG92ZXJyaWRlIHRoaXMgdGhyb3VnaCBhamF4U2V0dXAgKCMxMTI2NClcblx0XHR0eXBlOiBcIkdFVFwiLFxuXHRcdGRhdGFUeXBlOiBcInNjcmlwdFwiLFxuXHRcdGNhY2hlOiB0cnVlLFxuXHRcdGFzeW5jOiBmYWxzZSxcblx0XHRnbG9iYWw6IGZhbHNlLFxuXG5cdFx0Ly8gT25seSBldmFsdWF0ZSB0aGUgcmVzcG9uc2UgaWYgaXQgaXMgc3VjY2Vzc2Z1bCAoZ2gtNDEyNilcblx0XHQvLyBkYXRhRmlsdGVyIGlzIG5vdCBpbnZva2VkIGZvciBmYWlsdXJlIHJlc3BvbnNlcywgc28gdXNpbmcgaXQgaW5zdGVhZFxuXHRcdC8vIG9mIHRoZSBkZWZhdWx0IGNvbnZlcnRlciBpcyBrbHVkZ3kgYnV0IGl0IHdvcmtzLlxuXHRcdGNvbnZlcnRlcnM6IHtcblx0XHRcdFwidGV4dCBzY3JpcHRcIjogZnVuY3Rpb24oKSB7fVxuXHRcdH0sXG5cdFx0ZGF0YUZpbHRlcjogZnVuY3Rpb24oIHJlc3BvbnNlICkge1xuXHRcdFx0alF1ZXJ5Lmdsb2JhbEV2YWwoIHJlc3BvbnNlLCBvcHRpb25zLCBkb2MgKTtcblx0XHR9XG5cdH0gKTtcbn07XG5cblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHR3cmFwQWxsOiBmdW5jdGlvbiggaHRtbCApIHtcblx0XHR2YXIgd3JhcDtcblxuXHRcdGlmICggdGhpc1sgMCBdICkge1xuXHRcdFx0aWYgKCBpc0Z1bmN0aW9uKCBodG1sICkgKSB7XG5cdFx0XHRcdGh0bWwgPSBodG1sLmNhbGwoIHRoaXNbIDAgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBUaGUgZWxlbWVudHMgdG8gd3JhcCB0aGUgdGFyZ2V0IGFyb3VuZFxuXHRcdFx0d3JhcCA9IGpRdWVyeSggaHRtbCwgdGhpc1sgMCBdLm93bmVyRG9jdW1lbnQgKS5lcSggMCApLmNsb25lKCB0cnVlICk7XG5cblx0XHRcdGlmICggdGhpc1sgMCBdLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdHdyYXAuaW5zZXJ0QmVmb3JlKCB0aGlzWyAwIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0d3JhcC5tYXAoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHR2YXIgZWxlbSA9IHRoaXM7XG5cblx0XHRcdFx0d2hpbGUgKCBlbGVtLmZpcnN0RWxlbWVudENoaWxkICkge1xuXHRcdFx0XHRcdGVsZW0gPSBlbGVtLmZpcnN0RWxlbWVudENoaWxkO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIGVsZW07XG5cdFx0XHR9ICkuYXBwZW5kKCB0aGlzICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0d3JhcElubmVyOiBmdW5jdGlvbiggaHRtbCApIHtcblx0XHRpZiAoIGlzRnVuY3Rpb24oIGh0bWwgKSApIHtcblx0XHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCBpICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS53cmFwSW5uZXIoIGh0bWwuY2FsbCggdGhpcywgaSApICk7XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgc2VsZiA9IGpRdWVyeSggdGhpcyApLFxuXHRcdFx0XHRjb250ZW50cyA9IHNlbGYuY29udGVudHMoKTtcblxuXHRcdFx0aWYgKCBjb250ZW50cy5sZW5ndGggKSB7XG5cdFx0XHRcdGNvbnRlbnRzLndyYXBBbGwoIGh0bWwgKTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0c2VsZi5hcHBlbmQoIGh0bWwgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0d3JhcDogZnVuY3Rpb24oIGh0bWwgKSB7XG5cdFx0dmFyIGh0bWxJc0Z1bmN0aW9uID0gaXNGdW5jdGlvbiggaHRtbCApO1xuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRqUXVlcnkoIHRoaXMgKS53cmFwQWxsKCBodG1sSXNGdW5jdGlvbiA/IGh0bWwuY2FsbCggdGhpcywgaSApIDogaHRtbCApO1xuXHRcdH0gKTtcblx0fSxcblxuXHR1bndyYXA6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHR0aGlzLnBhcmVudCggc2VsZWN0b3IgKS5ub3QoIFwiYm9keVwiICkuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkoIHRoaXMgKS5yZXBsYWNlV2l0aCggdGhpcy5jaGlsZE5vZGVzICk7XG5cdFx0fSApO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG59ICk7XG5cblxualF1ZXJ5LmV4cHIucHNldWRvcy5oaWRkZW4gPSBmdW5jdGlvbiggZWxlbSApIHtcblx0cmV0dXJuICFqUXVlcnkuZXhwci5wc2V1ZG9zLnZpc2libGUoIGVsZW0gKTtcbn07XG5qUXVlcnkuZXhwci5wc2V1ZG9zLnZpc2libGUgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0cmV0dXJuICEhKCBlbGVtLm9mZnNldFdpZHRoIHx8IGVsZW0ub2Zmc2V0SGVpZ2h0IHx8IGVsZW0uZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggKTtcbn07XG5cblxuXG5cbmpRdWVyeS5hamF4U2V0dGluZ3MueGhyID0gZnVuY3Rpb24oKSB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIG5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3QoKTtcblx0fSBjYXRjaCAoIGUgKSB7fVxufTtcblxudmFyIHhoclN1Y2Nlc3NTdGF0dXMgPSB7XG5cblx0XHQvLyBGaWxlIHByb3RvY29sIGFsd2F5cyB5aWVsZHMgc3RhdHVzIGNvZGUgMCwgYXNzdW1lIDIwMFxuXHRcdDA6IDIwMCxcblxuXHRcdC8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG5cdFx0Ly8gIzE0NTA6IHNvbWV0aW1lcyBJRSByZXR1cm5zIDEyMjMgd2hlbiBpdCBzaG91bGQgYmUgMjA0XG5cdFx0MTIyMzogMjA0XG5cdH0sXG5cdHhoclN1cHBvcnRlZCA9IGpRdWVyeS5hamF4U2V0dGluZ3MueGhyKCk7XG5cbnN1cHBvcnQuY29ycyA9ICEheGhyU3VwcG9ydGVkICYmICggXCJ3aXRoQ3JlZGVudGlhbHNcIiBpbiB4aHJTdXBwb3J0ZWQgKTtcbnN1cHBvcnQuYWpheCA9IHhoclN1cHBvcnRlZCA9ICEheGhyU3VwcG9ydGVkO1xuXG5qUXVlcnkuYWpheFRyYW5zcG9ydCggZnVuY3Rpb24oIG9wdGlvbnMgKSB7XG5cdHZhciBjYWxsYmFjaywgZXJyb3JDYWxsYmFjaztcblxuXHQvLyBDcm9zcyBkb21haW4gb25seSBhbGxvd2VkIGlmIHN1cHBvcnRlZCB0aHJvdWdoIFhNTEh0dHBSZXF1ZXN0XG5cdGlmICggc3VwcG9ydC5jb3JzIHx8IHhoclN1cHBvcnRlZCAmJiAhb3B0aW9ucy5jcm9zc0RvbWFpbiApIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0c2VuZDogZnVuY3Rpb24oIGhlYWRlcnMsIGNvbXBsZXRlICkge1xuXHRcdFx0XHR2YXIgaSxcblx0XHRcdFx0XHR4aHIgPSBvcHRpb25zLnhocigpO1xuXG5cdFx0XHRcdHhoci5vcGVuKFxuXHRcdFx0XHRcdG9wdGlvbnMudHlwZSxcblx0XHRcdFx0XHRvcHRpb25zLnVybCxcblx0XHRcdFx0XHRvcHRpb25zLmFzeW5jLFxuXHRcdFx0XHRcdG9wdGlvbnMudXNlcm5hbWUsXG5cdFx0XHRcdFx0b3B0aW9ucy5wYXNzd29yZFxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdC8vIEFwcGx5IGN1c3RvbSBmaWVsZHMgaWYgcHJvdmlkZWRcblx0XHRcdFx0aWYgKCBvcHRpb25zLnhockZpZWxkcyApIHtcblx0XHRcdFx0XHRmb3IgKCBpIGluIG9wdGlvbnMueGhyRmllbGRzICkge1xuXHRcdFx0XHRcdFx0eGhyWyBpIF0gPSBvcHRpb25zLnhockZpZWxkc1sgaSBdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIE92ZXJyaWRlIG1pbWUgdHlwZSBpZiBuZWVkZWRcblx0XHRcdFx0aWYgKCBvcHRpb25zLm1pbWVUeXBlICYmIHhoci5vdmVycmlkZU1pbWVUeXBlICkge1xuXHRcdFx0XHRcdHhoci5vdmVycmlkZU1pbWVUeXBlKCBvcHRpb25zLm1pbWVUeXBlICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBYLVJlcXVlc3RlZC1XaXRoIGhlYWRlclxuXHRcdFx0XHQvLyBGb3IgY3Jvc3MtZG9tYWluIHJlcXVlc3RzLCBzZWVpbmcgYXMgY29uZGl0aW9ucyBmb3IgYSBwcmVmbGlnaHQgYXJlXG5cdFx0XHRcdC8vIGFraW4gdG8gYSBqaWdzYXcgcHV6emxlLCB3ZSBzaW1wbHkgbmV2ZXIgc2V0IGl0IHRvIGJlIHN1cmUuXG5cdFx0XHRcdC8vIChpdCBjYW4gYWx3YXlzIGJlIHNldCBvbiBhIHBlci1yZXF1ZXN0IGJhc2lzIG9yIGV2ZW4gdXNpbmcgYWpheFNldHVwKVxuXHRcdFx0XHQvLyBGb3Igc2FtZS1kb21haW4gcmVxdWVzdHMsIHdvbid0IGNoYW5nZSBoZWFkZXIgaWYgYWxyZWFkeSBwcm92aWRlZC5cblx0XHRcdFx0aWYgKCAhb3B0aW9ucy5jcm9zc0RvbWFpbiAmJiAhaGVhZGVyc1sgXCJYLVJlcXVlc3RlZC1XaXRoXCIgXSApIHtcblx0XHRcdFx0XHRoZWFkZXJzWyBcIlgtUmVxdWVzdGVkLVdpdGhcIiBdID0gXCJYTUxIdHRwUmVxdWVzdFwiO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gU2V0IGhlYWRlcnNcblx0XHRcdFx0Zm9yICggaSBpbiBoZWFkZXJzICkge1xuXHRcdFx0XHRcdHhoci5zZXRSZXF1ZXN0SGVhZGVyKCBpLCBoZWFkZXJzWyBpIF0gKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIENhbGxiYWNrXG5cdFx0XHRcdGNhbGxiYWNrID0gZnVuY3Rpb24oIHR5cGUgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0aWYgKCBjYWxsYmFjayApIHtcblx0XHRcdFx0XHRcdFx0Y2FsbGJhY2sgPSBlcnJvckNhbGxiYWNrID0geGhyLm9ubG9hZCA9XG5cdFx0XHRcdFx0XHRcdFx0eGhyLm9uZXJyb3IgPSB4aHIub25hYm9ydCA9IHhoci5vbnRpbWVvdXQgPVxuXHRcdFx0XHRcdFx0XHRcdFx0eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7XG5cblx0XHRcdFx0XHRcdFx0aWYgKCB0eXBlID09PSBcImFib3J0XCIgKSB7XG5cdFx0XHRcdFx0XHRcdFx0eGhyLmFib3J0KCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoIHR5cGUgPT09IFwiZXJyb3JcIiApIHtcblxuXHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG5cdFx0XHRcdFx0XHRcdFx0Ly8gT24gYSBtYW51YWwgbmF0aXZlIGFib3J0LCBJRTkgdGhyb3dzXG5cdFx0XHRcdFx0XHRcdFx0Ly8gZXJyb3JzIG9uIGFueSBwcm9wZXJ0eSBhY2Nlc3MgdGhhdCBpcyBub3QgcmVhZHlTdGF0ZVxuXHRcdFx0XHRcdFx0XHRcdGlmICggdHlwZW9mIHhoci5zdGF0dXMgIT09IFwibnVtYmVyXCIgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb21wbGV0ZSggMCwgXCJlcnJvclwiICk7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbXBsZXRlKFxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIEZpbGU6IHByb3RvY29sIGFsd2F5cyB5aWVsZHMgc3RhdHVzIDA7IHNlZSAjODYwNSwgIzE0MjA3XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHhoci5zdGF0dXMsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHhoci5zdGF0dXNUZXh0XG5cdFx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRjb21wbGV0ZShcblx0XHRcdFx0XHRcdFx0XHRcdHhoclN1Y2Nlc3NTdGF0dXNbIHhoci5zdGF0dXMgXSB8fCB4aHIuc3RhdHVzLFxuXHRcdFx0XHRcdFx0XHRcdFx0eGhyLnN0YXR1c1RleHQsXG5cblx0XHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBJRTkgaGFzIG5vIFhIUjIgYnV0IHRocm93cyBvbiBiaW5hcnkgKHRyYWMtMTE0MjYpXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBGb3IgWEhSMiBub24tdGV4dCwgbGV0IHRoZSBjYWxsZXIgaGFuZGxlIGl0IChnaC0yNDk4KVxuXHRcdFx0XHRcdFx0XHRcdFx0KCB4aHIucmVzcG9uc2VUeXBlIHx8IFwidGV4dFwiICkgIT09IFwidGV4dFwiICB8fFxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZW9mIHhoci5yZXNwb25zZVRleHQgIT09IFwic3RyaW5nXCIgP1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IGJpbmFyeTogeGhyLnJlc3BvbnNlIH0gOlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IHRleHQ6IHhoci5yZXNwb25zZVRleHQgfSxcblx0XHRcdFx0XHRcdFx0XHRcdHhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKVxuXHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdC8vIExpc3RlbiB0byBldmVudHNcblx0XHRcdFx0eGhyLm9ubG9hZCA9IGNhbGxiYWNrKCk7XG5cdFx0XHRcdGVycm9yQ2FsbGJhY2sgPSB4aHIub25lcnJvciA9IHhoci5vbnRpbWVvdXQgPSBjYWxsYmFjayggXCJlcnJvclwiICk7XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgOSBvbmx5XG5cdFx0XHRcdC8vIFVzZSBvbnJlYWR5c3RhdGVjaGFuZ2UgdG8gcmVwbGFjZSBvbmFib3J0XG5cdFx0XHRcdC8vIHRvIGhhbmRsZSB1bmNhdWdodCBhYm9ydHNcblx0XHRcdFx0aWYgKCB4aHIub25hYm9ydCAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdHhoci5vbmFib3J0ID0gZXJyb3JDYWxsYmFjaztcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0XHRcdC8vIENoZWNrIHJlYWR5U3RhdGUgYmVmb3JlIHRpbWVvdXQgYXMgaXQgY2hhbmdlc1xuXHRcdFx0XHRcdFx0aWYgKCB4aHIucmVhZHlTdGF0ZSA9PT0gNCApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBBbGxvdyBvbmVycm9yIHRvIGJlIGNhbGxlZCBmaXJzdCxcblx0XHRcdFx0XHRcdFx0Ly8gYnV0IHRoYXQgd2lsbCBub3QgaGFuZGxlIGEgbmF0aXZlIGFib3J0XG5cdFx0XHRcdFx0XHRcdC8vIEFsc28sIHNhdmUgZXJyb3JDYWxsYmFjayB0byBhIHZhcmlhYmxlXG5cdFx0XHRcdFx0XHRcdC8vIGFzIHhoci5vbmVycm9yIGNhbm5vdCBiZSBhY2Nlc3NlZFxuXHRcdFx0XHRcdFx0XHR3aW5kb3cuc2V0VGltZW91dCggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKCBjYWxsYmFjayApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGVycm9yQ2FsbGJhY2soKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0gKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gQ3JlYXRlIHRoZSBhYm9ydCBjYWxsYmFja1xuXHRcdFx0XHRjYWxsYmFjayA9IGNhbGxiYWNrKCBcImFib3J0XCIgKTtcblxuXHRcdFx0XHR0cnkge1xuXG5cdFx0XHRcdFx0Ly8gRG8gc2VuZCB0aGUgcmVxdWVzdCAodGhpcyBtYXkgcmFpc2UgYW4gZXhjZXB0aW9uKVxuXHRcdFx0XHRcdHhoci5zZW5kKCBvcHRpb25zLmhhc0NvbnRlbnQgJiYgb3B0aW9ucy5kYXRhIHx8IG51bGwgKTtcblx0XHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cblx0XHRcdFx0XHQvLyAjMTQ2ODM6IE9ubHkgcmV0aHJvdyBpZiB0aGlzIGhhc24ndCBiZWVuIG5vdGlmaWVkIGFzIGFuIGVycm9yIHlldFxuXHRcdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XG5cdFx0XHRcdFx0XHR0aHJvdyBlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSxcblxuXHRcdFx0YWJvcnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoIGNhbGxiYWNrICkge1xuXHRcdFx0XHRcdGNhbGxiYWNrKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHR9XG59ICk7XG5cblxuXG5cbi8vIFByZXZlbnQgYXV0by1leGVjdXRpb24gb2Ygc2NyaXB0cyB3aGVuIG5vIGV4cGxpY2l0IGRhdGFUeXBlIHdhcyBwcm92aWRlZCAoU2VlIGdoLTI0MzIpXG5qUXVlcnkuYWpheFByZWZpbHRlciggZnVuY3Rpb24oIHMgKSB7XG5cdGlmICggcy5jcm9zc0RvbWFpbiApIHtcblx0XHRzLmNvbnRlbnRzLnNjcmlwdCA9IGZhbHNlO1xuXHR9XG59ICk7XG5cbi8vIEluc3RhbGwgc2NyaXB0IGRhdGFUeXBlXG5qUXVlcnkuYWpheFNldHVwKCB7XG5cdGFjY2VwdHM6IHtcblx0XHRzY3JpcHQ6IFwidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBcIiArXG5cdFx0XHRcImFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdFwiXG5cdH0sXG5cdGNvbnRlbnRzOiB7XG5cdFx0c2NyaXB0OiAvXFxiKD86amF2YXxlY21hKXNjcmlwdFxcYi9cblx0fSxcblx0Y29udmVydGVyczoge1xuXHRcdFwidGV4dCBzY3JpcHRcIjogZnVuY3Rpb24oIHRleHQgKSB7XG5cdFx0XHRqUXVlcnkuZ2xvYmFsRXZhbCggdGV4dCApO1xuXHRcdFx0cmV0dXJuIHRleHQ7XG5cdFx0fVxuXHR9XG59ICk7XG5cbi8vIEhhbmRsZSBjYWNoZSdzIHNwZWNpYWwgY2FzZSBhbmQgY3Jvc3NEb21haW5cbmpRdWVyeS5hamF4UHJlZmlsdGVyKCBcInNjcmlwdFwiLCBmdW5jdGlvbiggcyApIHtcblx0aWYgKCBzLmNhY2hlID09PSB1bmRlZmluZWQgKSB7XG5cdFx0cy5jYWNoZSA9IGZhbHNlO1xuXHR9XG5cdGlmICggcy5jcm9zc0RvbWFpbiApIHtcblx0XHRzLnR5cGUgPSBcIkdFVFwiO1xuXHR9XG59ICk7XG5cbi8vIEJpbmQgc2NyaXB0IHRhZyBoYWNrIHRyYW5zcG9ydFxualF1ZXJ5LmFqYXhUcmFuc3BvcnQoIFwic2NyaXB0XCIsIGZ1bmN0aW9uKCBzICkge1xuXG5cdC8vIFRoaXMgdHJhbnNwb3J0IG9ubHkgZGVhbHMgd2l0aCBjcm9zcyBkb21haW4gb3IgZm9yY2VkLWJ5LWF0dHJzIHJlcXVlc3RzXG5cdGlmICggcy5jcm9zc0RvbWFpbiB8fCBzLnNjcmlwdEF0dHJzICkge1xuXHRcdHZhciBzY3JpcHQsIGNhbGxiYWNrO1xuXHRcdHJldHVybiB7XG5cdFx0XHRzZW5kOiBmdW5jdGlvbiggXywgY29tcGxldGUgKSB7XG5cdFx0XHRcdHNjcmlwdCA9IGpRdWVyeSggXCI8c2NyaXB0PlwiIClcblx0XHRcdFx0XHQuYXR0ciggcy5zY3JpcHRBdHRycyB8fCB7fSApXG5cdFx0XHRcdFx0LnByb3AoIHsgY2hhcnNldDogcy5zY3JpcHRDaGFyc2V0LCBzcmM6IHMudXJsIH0gKVxuXHRcdFx0XHRcdC5vbiggXCJsb2FkIGVycm9yXCIsIGNhbGxiYWNrID0gZnVuY3Rpb24oIGV2dCApIHtcblx0XHRcdFx0XHRcdHNjcmlwdC5yZW1vdmUoKTtcblx0XHRcdFx0XHRcdGNhbGxiYWNrID0gbnVsbDtcblx0XHRcdFx0XHRcdGlmICggZXZ0ICkge1xuXHRcdFx0XHRcdFx0XHRjb21wbGV0ZSggZXZ0LnR5cGUgPT09IFwiZXJyb3JcIiA/IDQwNCA6IDIwMCwgZXZ0LnR5cGUgKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9ICk7XG5cblx0XHRcdFx0Ly8gVXNlIG5hdGl2ZSBET00gbWFuaXB1bGF0aW9uIHRvIGF2b2lkIG91ciBkb21NYW5pcCBBSkFYIHRyaWNrZXJ5XG5cdFx0XHRcdGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoIHNjcmlwdFsgMCBdICk7XG5cdFx0XHR9LFxuXHRcdFx0YWJvcnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoIGNhbGxiYWNrICkge1xuXHRcdFx0XHRcdGNhbGxiYWNrKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHR9XG59ICk7XG5cblxuXG5cbnZhciBvbGRDYWxsYmFja3MgPSBbXSxcblx0cmpzb25wID0gLyg9KVxcPyg/PSZ8JCl8XFw/XFw/LztcblxuLy8gRGVmYXVsdCBqc29ucCBzZXR0aW5nc1xualF1ZXJ5LmFqYXhTZXR1cCgge1xuXHRqc29ucDogXCJjYWxsYmFja1wiLFxuXHRqc29ucENhbGxiYWNrOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgY2FsbGJhY2sgPSBvbGRDYWxsYmFja3MucG9wKCkgfHwgKCBqUXVlcnkuZXhwYW5kbyArIFwiX1wiICsgKCBub25jZS5ndWlkKysgKSApO1xuXHRcdHRoaXNbIGNhbGxiYWNrIF0gPSB0cnVlO1xuXHRcdHJldHVybiBjYWxsYmFjaztcblx0fVxufSApO1xuXG4vLyBEZXRlY3QsIG5vcm1hbGl6ZSBvcHRpb25zIGFuZCBpbnN0YWxsIGNhbGxiYWNrcyBmb3IganNvbnAgcmVxdWVzdHNcbmpRdWVyeS5hamF4UHJlZmlsdGVyKCBcImpzb24ganNvbnBcIiwgZnVuY3Rpb24oIHMsIG9yaWdpbmFsU2V0dGluZ3MsIGpxWEhSICkge1xuXG5cdHZhciBjYWxsYmFja05hbWUsIG92ZXJ3cml0dGVuLCByZXNwb25zZUNvbnRhaW5lcixcblx0XHRqc29uUHJvcCA9IHMuanNvbnAgIT09IGZhbHNlICYmICggcmpzb25wLnRlc3QoIHMudXJsICkgP1xuXHRcdFx0XCJ1cmxcIiA6XG5cdFx0XHR0eXBlb2Ygcy5kYXRhID09PSBcInN0cmluZ1wiICYmXG5cdFx0XHRcdCggcy5jb250ZW50VHlwZSB8fCBcIlwiIClcblx0XHRcdFx0XHQuaW5kZXhPZiggXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiApID09PSAwICYmXG5cdFx0XHRcdHJqc29ucC50ZXN0KCBzLmRhdGEgKSAmJiBcImRhdGFcIlxuXHRcdCk7XG5cblx0Ly8gSGFuZGxlIGlmZiB0aGUgZXhwZWN0ZWQgZGF0YSB0eXBlIGlzIFwianNvbnBcIiBvciB3ZSBoYXZlIGEgcGFyYW1ldGVyIHRvIHNldFxuXHRpZiAoIGpzb25Qcm9wIHx8IHMuZGF0YVR5cGVzWyAwIF0gPT09IFwianNvbnBcIiApIHtcblxuXHRcdC8vIEdldCBjYWxsYmFjayBuYW1lLCByZW1lbWJlcmluZyBwcmVleGlzdGluZyB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggaXRcblx0XHRjYWxsYmFja05hbWUgPSBzLmpzb25wQ2FsbGJhY2sgPSBpc0Z1bmN0aW9uKCBzLmpzb25wQ2FsbGJhY2sgKSA/XG5cdFx0XHRzLmpzb25wQ2FsbGJhY2soKSA6XG5cdFx0XHRzLmpzb25wQ2FsbGJhY2s7XG5cblx0XHQvLyBJbnNlcnQgY2FsbGJhY2sgaW50byB1cmwgb3IgZm9ybSBkYXRhXG5cdFx0aWYgKCBqc29uUHJvcCApIHtcblx0XHRcdHNbIGpzb25Qcm9wIF0gPSBzWyBqc29uUHJvcCBdLnJlcGxhY2UoIHJqc29ucCwgXCIkMVwiICsgY2FsbGJhY2tOYW1lICk7XG5cdFx0fSBlbHNlIGlmICggcy5qc29ucCAhPT0gZmFsc2UgKSB7XG5cdFx0XHRzLnVybCArPSAoIHJxdWVyeS50ZXN0KCBzLnVybCApID8gXCImXCIgOiBcIj9cIiApICsgcy5qc29ucCArIFwiPVwiICsgY2FsbGJhY2tOYW1lO1xuXHRcdH1cblxuXHRcdC8vIFVzZSBkYXRhIGNvbnZlcnRlciB0byByZXRyaWV2ZSBqc29uIGFmdGVyIHNjcmlwdCBleGVjdXRpb25cblx0XHRzLmNvbnZlcnRlcnNbIFwic2NyaXB0IGpzb25cIiBdID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoICFyZXNwb25zZUNvbnRhaW5lciApIHtcblx0XHRcdFx0alF1ZXJ5LmVycm9yKCBjYWxsYmFja05hbWUgKyBcIiB3YXMgbm90IGNhbGxlZFwiICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVzcG9uc2VDb250YWluZXJbIDAgXTtcblx0XHR9O1xuXG5cdFx0Ly8gRm9yY2UganNvbiBkYXRhVHlwZVxuXHRcdHMuZGF0YVR5cGVzWyAwIF0gPSBcImpzb25cIjtcblxuXHRcdC8vIEluc3RhbGwgY2FsbGJhY2tcblx0XHRvdmVyd3JpdHRlbiA9IHdpbmRvd1sgY2FsbGJhY2tOYW1lIF07XG5cdFx0d2luZG93WyBjYWxsYmFja05hbWUgXSA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0cmVzcG9uc2VDb250YWluZXIgPSBhcmd1bWVudHM7XG5cdFx0fTtcblxuXHRcdC8vIENsZWFuLXVwIGZ1bmN0aW9uIChmaXJlcyBhZnRlciBjb252ZXJ0ZXJzKVxuXHRcdGpxWEhSLmFsd2F5cyggZnVuY3Rpb24oKSB7XG5cblx0XHRcdC8vIElmIHByZXZpb3VzIHZhbHVlIGRpZG4ndCBleGlzdCAtIHJlbW92ZSBpdFxuXHRcdFx0aWYgKCBvdmVyd3JpdHRlbiA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRqUXVlcnkoIHdpbmRvdyApLnJlbW92ZVByb3AoIGNhbGxiYWNrTmFtZSApO1xuXG5cdFx0XHQvLyBPdGhlcndpc2UgcmVzdG9yZSBwcmVleGlzdGluZyB2YWx1ZVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0d2luZG93WyBjYWxsYmFja05hbWUgXSA9IG92ZXJ3cml0dGVuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTYXZlIGJhY2sgYXMgZnJlZVxuXHRcdFx0aWYgKCBzWyBjYWxsYmFja05hbWUgXSApIHtcblxuXHRcdFx0XHQvLyBNYWtlIHN1cmUgdGhhdCByZS11c2luZyB0aGUgb3B0aW9ucyBkb2Vzbid0IHNjcmV3IHRoaW5ncyBhcm91bmRcblx0XHRcdFx0cy5qc29ucENhbGxiYWNrID0gb3JpZ2luYWxTZXR0aW5ncy5qc29ucENhbGxiYWNrO1xuXG5cdFx0XHRcdC8vIFNhdmUgdGhlIGNhbGxiYWNrIG5hbWUgZm9yIGZ1dHVyZSB1c2Vcblx0XHRcdFx0b2xkQ2FsbGJhY2tzLnB1c2goIGNhbGxiYWNrTmFtZSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDYWxsIGlmIGl0IHdhcyBhIGZ1bmN0aW9uIGFuZCB3ZSBoYXZlIGEgcmVzcG9uc2Vcblx0XHRcdGlmICggcmVzcG9uc2VDb250YWluZXIgJiYgaXNGdW5jdGlvbiggb3ZlcndyaXR0ZW4gKSApIHtcblx0XHRcdFx0b3ZlcndyaXR0ZW4oIHJlc3BvbnNlQ29udGFpbmVyWyAwIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0cmVzcG9uc2VDb250YWluZXIgPSBvdmVyd3JpdHRlbiA9IHVuZGVmaW5lZDtcblx0XHR9ICk7XG5cblx0XHQvLyBEZWxlZ2F0ZSB0byBzY3JpcHRcblx0XHRyZXR1cm4gXCJzY3JpcHRcIjtcblx0fVxufSApO1xuXG5cblxuXG4vLyBTdXBwb3J0OiBTYWZhcmkgOCBvbmx5XG4vLyBJbiBTYWZhcmkgOCBkb2N1bWVudHMgY3JlYXRlZCB2aWEgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50XG4vLyBjb2xsYXBzZSBzaWJsaW5nIGZvcm1zOiB0aGUgc2Vjb25kIG9uZSBiZWNvbWVzIGEgY2hpbGQgb2YgdGhlIGZpcnN0IG9uZS5cbi8vIEJlY2F1c2Ugb2YgdGhhdCwgdGhpcyBzZWN1cml0eSBtZWFzdXJlIGhhcyB0byBiZSBkaXNhYmxlZCBpbiBTYWZhcmkgOC5cbi8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzczMzdcbnN1cHBvcnQuY3JlYXRlSFRNTERvY3VtZW50ID0gKCBmdW5jdGlvbigpIHtcblx0dmFyIGJvZHkgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIFwiXCIgKS5ib2R5O1xuXHRib2R5LmlubmVySFRNTCA9IFwiPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT5cIjtcblx0cmV0dXJuIGJvZHkuY2hpbGROb2Rlcy5sZW5ndGggPT09IDI7XG59ICkoKTtcblxuXG4vLyBBcmd1bWVudCBcImRhdGFcIiBzaG91bGQgYmUgc3RyaW5nIG9mIGh0bWxcbi8vIGNvbnRleHQgKG9wdGlvbmFsKTogSWYgc3BlY2lmaWVkLCB0aGUgZnJhZ21lbnQgd2lsbCBiZSBjcmVhdGVkIGluIHRoaXMgY29udGV4dCxcbi8vIGRlZmF1bHRzIHRvIGRvY3VtZW50XG4vLyBrZWVwU2NyaXB0cyAob3B0aW9uYWwpOiBJZiB0cnVlLCB3aWxsIGluY2x1ZGUgc2NyaXB0cyBwYXNzZWQgaW4gdGhlIGh0bWwgc3RyaW5nXG5qUXVlcnkucGFyc2VIVE1MID0gZnVuY3Rpb24oIGRhdGEsIGNvbnRleHQsIGtlZXBTY3JpcHRzICkge1xuXHRpZiAoIHR5cGVvZiBkYXRhICE9PSBcInN0cmluZ1wiICkge1xuXHRcdHJldHVybiBbXTtcblx0fVxuXHRpZiAoIHR5cGVvZiBjb250ZXh0ID09PSBcImJvb2xlYW5cIiApIHtcblx0XHRrZWVwU2NyaXB0cyA9IGNvbnRleHQ7XG5cdFx0Y29udGV4dCA9IGZhbHNlO1xuXHR9XG5cblx0dmFyIGJhc2UsIHBhcnNlZCwgc2NyaXB0cztcblxuXHRpZiAoICFjb250ZXh0ICkge1xuXG5cdFx0Ly8gU3RvcCBzY3JpcHRzIG9yIGlubGluZSBldmVudCBoYW5kbGVycyBmcm9tIGJlaW5nIGV4ZWN1dGVkIGltbWVkaWF0ZWx5XG5cdFx0Ly8gYnkgdXNpbmcgZG9jdW1lbnQuaW1wbGVtZW50YXRpb25cblx0XHRpZiAoIHN1cHBvcnQuY3JlYXRlSFRNTERvY3VtZW50ICkge1xuXHRcdFx0Y29udGV4dCA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCggXCJcIiApO1xuXG5cdFx0XHQvLyBTZXQgdGhlIGJhc2UgaHJlZiBmb3IgdGhlIGNyZWF0ZWQgZG9jdW1lbnRcblx0XHRcdC8vIHNvIGFueSBwYXJzZWQgZWxlbWVudHMgd2l0aCBVUkxzXG5cdFx0XHQvLyBhcmUgYmFzZWQgb24gdGhlIGRvY3VtZW50J3MgVVJMIChnaC0yOTY1KVxuXHRcdFx0YmFzZSA9IGNvbnRleHQuY3JlYXRlRWxlbWVudCggXCJiYXNlXCIgKTtcblx0XHRcdGJhc2UuaHJlZiA9IGRvY3VtZW50LmxvY2F0aW9uLmhyZWY7XG5cdFx0XHRjb250ZXh0LmhlYWQuYXBwZW5kQ2hpbGQoIGJhc2UgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29udGV4dCA9IGRvY3VtZW50O1xuXHRcdH1cblx0fVxuXG5cdHBhcnNlZCA9IHJzaW5nbGVUYWcuZXhlYyggZGF0YSApO1xuXHRzY3JpcHRzID0gIWtlZXBTY3JpcHRzICYmIFtdO1xuXG5cdC8vIFNpbmdsZSB0YWdcblx0aWYgKCBwYXJzZWQgKSB7XG5cdFx0cmV0dXJuIFsgY29udGV4dC5jcmVhdGVFbGVtZW50KCBwYXJzZWRbIDEgXSApIF07XG5cdH1cblxuXHRwYXJzZWQgPSBidWlsZEZyYWdtZW50KCBbIGRhdGEgXSwgY29udGV4dCwgc2NyaXB0cyApO1xuXG5cdGlmICggc2NyaXB0cyAmJiBzY3JpcHRzLmxlbmd0aCApIHtcblx0XHRqUXVlcnkoIHNjcmlwdHMgKS5yZW1vdmUoKTtcblx0fVxuXG5cdHJldHVybiBqUXVlcnkubWVyZ2UoIFtdLCBwYXJzZWQuY2hpbGROb2RlcyApO1xufTtcblxuXG4vKipcbiAqIExvYWQgYSB1cmwgaW50byBhIHBhZ2VcbiAqL1xualF1ZXJ5LmZuLmxvYWQgPSBmdW5jdGlvbiggdXJsLCBwYXJhbXMsIGNhbGxiYWNrICkge1xuXHR2YXIgc2VsZWN0b3IsIHR5cGUsIHJlc3BvbnNlLFxuXHRcdHNlbGYgPSB0aGlzLFxuXHRcdG9mZiA9IHVybC5pbmRleE9mKCBcIiBcIiApO1xuXG5cdGlmICggb2ZmID4gLTEgKSB7XG5cdFx0c2VsZWN0b3IgPSBzdHJpcEFuZENvbGxhcHNlKCB1cmwuc2xpY2UoIG9mZiApICk7XG5cdFx0dXJsID0gdXJsLnNsaWNlKCAwLCBvZmYgKTtcblx0fVxuXG5cdC8vIElmIGl0J3MgYSBmdW5jdGlvblxuXHRpZiAoIGlzRnVuY3Rpb24oIHBhcmFtcyApICkge1xuXG5cdFx0Ly8gV2UgYXNzdW1lIHRoYXQgaXQncyB0aGUgY2FsbGJhY2tcblx0XHRjYWxsYmFjayA9IHBhcmFtcztcblx0XHRwYXJhbXMgPSB1bmRlZmluZWQ7XG5cblx0Ly8gT3RoZXJ3aXNlLCBidWlsZCBhIHBhcmFtIHN0cmluZ1xuXHR9IGVsc2UgaWYgKCBwYXJhbXMgJiYgdHlwZW9mIHBhcmFtcyA9PT0gXCJvYmplY3RcIiApIHtcblx0XHR0eXBlID0gXCJQT1NUXCI7XG5cdH1cblxuXHQvLyBJZiB3ZSBoYXZlIGVsZW1lbnRzIHRvIG1vZGlmeSwgbWFrZSB0aGUgcmVxdWVzdFxuXHRpZiAoIHNlbGYubGVuZ3RoID4gMCApIHtcblx0XHRqUXVlcnkuYWpheCgge1xuXHRcdFx0dXJsOiB1cmwsXG5cblx0XHRcdC8vIElmIFwidHlwZVwiIHZhcmlhYmxlIGlzIHVuZGVmaW5lZCwgdGhlbiBcIkdFVFwiIG1ldGhvZCB3aWxsIGJlIHVzZWQuXG5cdFx0XHQvLyBNYWtlIHZhbHVlIG9mIHRoaXMgZmllbGQgZXhwbGljaXQgc2luY2Vcblx0XHRcdC8vIHVzZXIgY2FuIG92ZXJyaWRlIGl0IHRocm91Z2ggYWpheFNldHVwIG1ldGhvZFxuXHRcdFx0dHlwZTogdHlwZSB8fCBcIkdFVFwiLFxuXHRcdFx0ZGF0YVR5cGU6IFwiaHRtbFwiLFxuXHRcdFx0ZGF0YTogcGFyYW1zXG5cdFx0fSApLmRvbmUoIGZ1bmN0aW9uKCByZXNwb25zZVRleHQgKSB7XG5cblx0XHRcdC8vIFNhdmUgcmVzcG9uc2UgZm9yIHVzZSBpbiBjb21wbGV0ZSBjYWxsYmFja1xuXHRcdFx0cmVzcG9uc2UgPSBhcmd1bWVudHM7XG5cblx0XHRcdHNlbGYuaHRtbCggc2VsZWN0b3IgP1xuXG5cdFx0XHRcdC8vIElmIGEgc2VsZWN0b3Igd2FzIHNwZWNpZmllZCwgbG9jYXRlIHRoZSByaWdodCBlbGVtZW50cyBpbiBhIGR1bW15IGRpdlxuXHRcdFx0XHQvLyBFeGNsdWRlIHNjcmlwdHMgdG8gYXZvaWQgSUUgJ1Blcm1pc3Npb24gRGVuaWVkJyBlcnJvcnNcblx0XHRcdFx0alF1ZXJ5KCBcIjxkaXY+XCIgKS5hcHBlbmQoIGpRdWVyeS5wYXJzZUhUTUwoIHJlc3BvbnNlVGV4dCApICkuZmluZCggc2VsZWN0b3IgKSA6XG5cblx0XHRcdFx0Ly8gT3RoZXJ3aXNlIHVzZSB0aGUgZnVsbCByZXN1bHRcblx0XHRcdFx0cmVzcG9uc2VUZXh0ICk7XG5cblx0XHQvLyBJZiB0aGUgcmVxdWVzdCBzdWNjZWVkcywgdGhpcyBmdW5jdGlvbiBnZXRzIFwiZGF0YVwiLCBcInN0YXR1c1wiLCBcImpxWEhSXCJcblx0XHQvLyBidXQgdGhleSBhcmUgaWdub3JlZCBiZWNhdXNlIHJlc3BvbnNlIHdhcyBzZXQgYWJvdmUuXG5cdFx0Ly8gSWYgaXQgZmFpbHMsIHRoaXMgZnVuY3Rpb24gZ2V0cyBcImpxWEhSXCIsIFwic3RhdHVzXCIsIFwiZXJyb3JcIlxuXHRcdH0gKS5hbHdheXMoIGNhbGxiYWNrICYmIGZ1bmN0aW9uKCBqcVhIUiwgc3RhdHVzICkge1xuXHRcdFx0c2VsZi5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0Y2FsbGJhY2suYXBwbHkoIHRoaXMsIHJlc3BvbnNlIHx8IFsganFYSFIucmVzcG9uc2VUZXh0LCBzdGF0dXMsIGpxWEhSIF0gKTtcblx0XHRcdH0gKTtcblx0XHR9ICk7XG5cdH1cblxuXHRyZXR1cm4gdGhpcztcbn07XG5cblxuXG5cbmpRdWVyeS5leHByLnBzZXVkb3MuYW5pbWF0ZWQgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0cmV0dXJuIGpRdWVyeS5ncmVwKCBqUXVlcnkudGltZXJzLCBmdW5jdGlvbiggZm4gKSB7XG5cdFx0cmV0dXJuIGVsZW0gPT09IGZuLmVsZW07XG5cdH0gKS5sZW5ndGg7XG59O1xuXG5cblxuXG5qUXVlcnkub2Zmc2V0ID0ge1xuXHRzZXRPZmZzZXQ6IGZ1bmN0aW9uKCBlbGVtLCBvcHRpb25zLCBpICkge1xuXHRcdHZhciBjdXJQb3NpdGlvbiwgY3VyTGVmdCwgY3VyQ1NTVG9wLCBjdXJUb3AsIGN1ck9mZnNldCwgY3VyQ1NTTGVmdCwgY2FsY3VsYXRlUG9zaXRpb24sXG5cdFx0XHRwb3NpdGlvbiA9IGpRdWVyeS5jc3MoIGVsZW0sIFwicG9zaXRpb25cIiApLFxuXHRcdFx0Y3VyRWxlbSA9IGpRdWVyeSggZWxlbSApLFxuXHRcdFx0cHJvcHMgPSB7fTtcblxuXHRcdC8vIFNldCBwb3NpdGlvbiBmaXJzdCwgaW4tY2FzZSB0b3AvbGVmdCBhcmUgc2V0IGV2ZW4gb24gc3RhdGljIGVsZW1cblx0XHRpZiAoIHBvc2l0aW9uID09PSBcInN0YXRpY1wiICkge1xuXHRcdFx0ZWxlbS5zdHlsZS5wb3NpdGlvbiA9IFwicmVsYXRpdmVcIjtcblx0XHR9XG5cblx0XHRjdXJPZmZzZXQgPSBjdXJFbGVtLm9mZnNldCgpO1xuXHRcdGN1ckNTU1RvcCA9IGpRdWVyeS5jc3MoIGVsZW0sIFwidG9wXCIgKTtcblx0XHRjdXJDU1NMZWZ0ID0galF1ZXJ5LmNzcyggZWxlbSwgXCJsZWZ0XCIgKTtcblx0XHRjYWxjdWxhdGVQb3NpdGlvbiA9ICggcG9zaXRpb24gPT09IFwiYWJzb2x1dGVcIiB8fCBwb3NpdGlvbiA9PT0gXCJmaXhlZFwiICkgJiZcblx0XHRcdCggY3VyQ1NTVG9wICsgY3VyQ1NTTGVmdCApLmluZGV4T2YoIFwiYXV0b1wiICkgPiAtMTtcblxuXHRcdC8vIE5lZWQgdG8gYmUgYWJsZSB0byBjYWxjdWxhdGUgcG9zaXRpb24gaWYgZWl0aGVyXG5cdFx0Ly8gdG9wIG9yIGxlZnQgaXMgYXV0byBhbmQgcG9zaXRpb24gaXMgZWl0aGVyIGFic29sdXRlIG9yIGZpeGVkXG5cdFx0aWYgKCBjYWxjdWxhdGVQb3NpdGlvbiApIHtcblx0XHRcdGN1clBvc2l0aW9uID0gY3VyRWxlbS5wb3NpdGlvbigpO1xuXHRcdFx0Y3VyVG9wID0gY3VyUG9zaXRpb24udG9wO1xuXHRcdFx0Y3VyTGVmdCA9IGN1clBvc2l0aW9uLmxlZnQ7XG5cblx0XHR9IGVsc2Uge1xuXHRcdFx0Y3VyVG9wID0gcGFyc2VGbG9hdCggY3VyQ1NTVG9wICkgfHwgMDtcblx0XHRcdGN1ckxlZnQgPSBwYXJzZUZsb2F0KCBjdXJDU1NMZWZ0ICkgfHwgMDtcblx0XHR9XG5cblx0XHRpZiAoIGlzRnVuY3Rpb24oIG9wdGlvbnMgKSApIHtcblxuXHRcdFx0Ly8gVXNlIGpRdWVyeS5leHRlbmQgaGVyZSB0byBhbGxvdyBtb2RpZmljYXRpb24gb2YgY29vcmRpbmF0ZXMgYXJndW1lbnQgKGdoLTE4NDgpXG5cdFx0XHRvcHRpb25zID0gb3B0aW9ucy5jYWxsKCBlbGVtLCBpLCBqUXVlcnkuZXh0ZW5kKCB7fSwgY3VyT2Zmc2V0ICkgKTtcblx0XHR9XG5cblx0XHRpZiAoIG9wdGlvbnMudG9wICE9IG51bGwgKSB7XG5cdFx0XHRwcm9wcy50b3AgPSAoIG9wdGlvbnMudG9wIC0gY3VyT2Zmc2V0LnRvcCApICsgY3VyVG9wO1xuXHRcdH1cblx0XHRpZiAoIG9wdGlvbnMubGVmdCAhPSBudWxsICkge1xuXHRcdFx0cHJvcHMubGVmdCA9ICggb3B0aW9ucy5sZWZ0IC0gY3VyT2Zmc2V0LmxlZnQgKSArIGN1ckxlZnQ7XG5cdFx0fVxuXG5cdFx0aWYgKCBcInVzaW5nXCIgaW4gb3B0aW9ucyApIHtcblx0XHRcdG9wdGlvbnMudXNpbmcuY2FsbCggZWxlbSwgcHJvcHMgKTtcblxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjdXJFbGVtLmNzcyggcHJvcHMgKTtcblx0XHR9XG5cdH1cbn07XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblxuXHQvLyBvZmZzZXQoKSByZWxhdGVzIGFuIGVsZW1lbnQncyBib3JkZXIgYm94IHRvIHRoZSBkb2N1bWVudCBvcmlnaW5cblx0b2Zmc2V0OiBmdW5jdGlvbiggb3B0aW9ucyApIHtcblxuXHRcdC8vIFByZXNlcnZlIGNoYWluaW5nIGZvciBzZXR0ZXJcblx0XHRpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7XG5cdFx0XHRyZXR1cm4gb3B0aW9ucyA9PT0gdW5kZWZpbmVkID9cblx0XHRcdFx0dGhpcyA6XG5cdFx0XHRcdHRoaXMuZWFjaCggZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5Lm9mZnNldC5zZXRPZmZzZXQoIHRoaXMsIG9wdGlvbnMsIGkgKTtcblx0XHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdHZhciByZWN0LCB3aW4sXG5cdFx0XHRlbGVtID0gdGhpc1sgMCBdO1xuXG5cdFx0aWYgKCAhZWxlbSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBSZXR1cm4gemVyb3MgZm9yIGRpc2Nvbm5lY3RlZCBhbmQgaGlkZGVuIChkaXNwbGF5OiBub25lKSBlbGVtZW50cyAoZ2gtMjMxMClcblx0XHQvLyBTdXBwb3J0OiBJRSA8PTExIG9ubHlcblx0XHQvLyBSdW5uaW5nIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBvbiBhXG5cdFx0Ly8gZGlzY29ubmVjdGVkIG5vZGUgaW4gSUUgdGhyb3dzIGFuIGVycm9yXG5cdFx0aWYgKCAhZWxlbS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCApIHtcblx0XHRcdHJldHVybiB7IHRvcDogMCwgbGVmdDogMCB9O1xuXHRcdH1cblxuXHRcdC8vIEdldCBkb2N1bWVudC1yZWxhdGl2ZSBwb3NpdGlvbiBieSBhZGRpbmcgdmlld3BvcnQgc2Nyb2xsIHRvIHZpZXdwb3J0LXJlbGF0aXZlIGdCQ1Jcblx0XHRyZWN0ID0gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblx0XHR3aW4gPSBlbGVtLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHRvcDogcmVjdC50b3AgKyB3aW4ucGFnZVlPZmZzZXQsXG5cdFx0XHRsZWZ0OiByZWN0LmxlZnQgKyB3aW4ucGFnZVhPZmZzZXRcblx0XHR9O1xuXHR9LFxuXG5cdC8vIHBvc2l0aW9uKCkgcmVsYXRlcyBhbiBlbGVtZW50J3MgbWFyZ2luIGJveCB0byBpdHMgb2Zmc2V0IHBhcmVudCdzIHBhZGRpbmcgYm94XG5cdC8vIFRoaXMgY29ycmVzcG9uZHMgdG8gdGhlIGJlaGF2aW9yIG9mIENTUyBhYnNvbHV0ZSBwb3NpdGlvbmluZ1xuXHRwb3NpdGlvbjogZnVuY3Rpb24oKSB7XG5cdFx0aWYgKCAhdGhpc1sgMCBdICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHZhciBvZmZzZXRQYXJlbnQsIG9mZnNldCwgZG9jLFxuXHRcdFx0ZWxlbSA9IHRoaXNbIDAgXSxcblx0XHRcdHBhcmVudE9mZnNldCA9IHsgdG9wOiAwLCBsZWZ0OiAwIH07XG5cblx0XHQvLyBwb3NpdGlvbjpmaXhlZCBlbGVtZW50cyBhcmUgb2Zmc2V0IGZyb20gdGhlIHZpZXdwb3J0LCB3aGljaCBpdHNlbGYgYWx3YXlzIGhhcyB6ZXJvIG9mZnNldFxuXHRcdGlmICggalF1ZXJ5LmNzcyggZWxlbSwgXCJwb3NpdGlvblwiICkgPT09IFwiZml4ZWRcIiApIHtcblxuXHRcdFx0Ly8gQXNzdW1lIHBvc2l0aW9uOmZpeGVkIGltcGxpZXMgYXZhaWxhYmlsaXR5IG9mIGdldEJvdW5kaW5nQ2xpZW50UmVjdFxuXHRcdFx0b2Zmc2V0ID0gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuXHRcdH0gZWxzZSB7XG5cdFx0XHRvZmZzZXQgPSB0aGlzLm9mZnNldCgpO1xuXG5cdFx0XHQvLyBBY2NvdW50IGZvciB0aGUgKnJlYWwqIG9mZnNldCBwYXJlbnQsIHdoaWNoIGNhbiBiZSB0aGUgZG9jdW1lbnQgb3IgaXRzIHJvb3QgZWxlbWVudFxuXHRcdFx0Ly8gd2hlbiBhIHN0YXRpY2FsbHkgcG9zaXRpb25lZCBlbGVtZW50IGlzIGlkZW50aWZpZWRcblx0XHRcdGRvYyA9IGVsZW0ub3duZXJEb2N1bWVudDtcblx0XHRcdG9mZnNldFBhcmVudCA9IGVsZW0ub2Zmc2V0UGFyZW50IHx8IGRvYy5kb2N1bWVudEVsZW1lbnQ7XG5cdFx0XHR3aGlsZSAoIG9mZnNldFBhcmVudCAmJlxuXHRcdFx0XHQoIG9mZnNldFBhcmVudCA9PT0gZG9jLmJvZHkgfHwgb2Zmc2V0UGFyZW50ID09PSBkb2MuZG9jdW1lbnRFbGVtZW50ICkgJiZcblx0XHRcdFx0alF1ZXJ5LmNzcyggb2Zmc2V0UGFyZW50LCBcInBvc2l0aW9uXCIgKSA9PT0gXCJzdGF0aWNcIiApIHtcblxuXHRcdFx0XHRvZmZzZXRQYXJlbnQgPSBvZmZzZXRQYXJlbnQucGFyZW50Tm9kZTtcblx0XHRcdH1cblx0XHRcdGlmICggb2Zmc2V0UGFyZW50ICYmIG9mZnNldFBhcmVudCAhPT0gZWxlbSAmJiBvZmZzZXRQYXJlbnQubm9kZVR5cGUgPT09IDEgKSB7XG5cblx0XHRcdFx0Ly8gSW5jb3Jwb3JhdGUgYm9yZGVycyBpbnRvIGl0cyBvZmZzZXQsIHNpbmNlIHRoZXkgYXJlIG91dHNpZGUgaXRzIGNvbnRlbnQgb3JpZ2luXG5cdFx0XHRcdHBhcmVudE9mZnNldCA9IGpRdWVyeSggb2Zmc2V0UGFyZW50ICkub2Zmc2V0KCk7XG5cdFx0XHRcdHBhcmVudE9mZnNldC50b3AgKz0galF1ZXJ5LmNzcyggb2Zmc2V0UGFyZW50LCBcImJvcmRlclRvcFdpZHRoXCIsIHRydWUgKTtcblx0XHRcdFx0cGFyZW50T2Zmc2V0LmxlZnQgKz0galF1ZXJ5LmNzcyggb2Zmc2V0UGFyZW50LCBcImJvcmRlckxlZnRXaWR0aFwiLCB0cnVlICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gU3VidHJhY3QgcGFyZW50IG9mZnNldHMgYW5kIGVsZW1lbnQgbWFyZ2luc1xuXHRcdHJldHVybiB7XG5cdFx0XHR0b3A6IG9mZnNldC50b3AgLSBwYXJlbnRPZmZzZXQudG9wIC0galF1ZXJ5LmNzcyggZWxlbSwgXCJtYXJnaW5Ub3BcIiwgdHJ1ZSApLFxuXHRcdFx0bGVmdDogb2Zmc2V0LmxlZnQgLSBwYXJlbnRPZmZzZXQubGVmdCAtIGpRdWVyeS5jc3MoIGVsZW0sIFwibWFyZ2luTGVmdFwiLCB0cnVlIClcblx0XHR9O1xuXHR9LFxuXG5cdC8vIFRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIGRvY3VtZW50RWxlbWVudCBpbiB0aGUgZm9sbG93aW5nIGNhc2VzOlxuXHQvLyAxKSBGb3IgdGhlIGVsZW1lbnQgaW5zaWRlIHRoZSBpZnJhbWUgd2l0aG91dCBvZmZzZXRQYXJlbnQsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuXG5cdC8vICAgIGRvY3VtZW50RWxlbWVudCBvZiB0aGUgcGFyZW50IHdpbmRvd1xuXHQvLyAyKSBGb3IgdGhlIGhpZGRlbiBvciBkZXRhY2hlZCBlbGVtZW50XG5cdC8vIDMpIEZvciBib2R5IG9yIGh0bWwgZWxlbWVudCwgaS5lLiBpbiBjYXNlIG9mIHRoZSBodG1sIG5vZGUgLSBpdCB3aWxsIHJldHVybiBpdHNlbGZcblx0Ly9cblx0Ly8gYnV0IHRob3NlIGV4Y2VwdGlvbnMgd2VyZSBuZXZlciBwcmVzZW50ZWQgYXMgYSByZWFsIGxpZmUgdXNlLWNhc2VzXG5cdC8vIGFuZCBtaWdodCBiZSBjb25zaWRlcmVkIGFzIG1vcmUgcHJlZmVyYWJsZSByZXN1bHRzLlxuXHQvL1xuXHQvLyBUaGlzIGxvZ2ljLCBob3dldmVyLCBpcyBub3QgZ3VhcmFudGVlZCBhbmQgY2FuIGNoYW5nZSBhdCBhbnkgcG9pbnQgaW4gdGhlIGZ1dHVyZVxuXHRvZmZzZXRQYXJlbnQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLm1hcCggZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgb2Zmc2V0UGFyZW50ID0gdGhpcy5vZmZzZXRQYXJlbnQ7XG5cblx0XHRcdHdoaWxlICggb2Zmc2V0UGFyZW50ICYmIGpRdWVyeS5jc3MoIG9mZnNldFBhcmVudCwgXCJwb3NpdGlvblwiICkgPT09IFwic3RhdGljXCIgKSB7XG5cdFx0XHRcdG9mZnNldFBhcmVudCA9IG9mZnNldFBhcmVudC5vZmZzZXRQYXJlbnQ7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBvZmZzZXRQYXJlbnQgfHwgZG9jdW1lbnRFbGVtZW50O1xuXHRcdH0gKTtcblx0fVxufSApO1xuXG4vLyBDcmVhdGUgc2Nyb2xsTGVmdCBhbmQgc2Nyb2xsVG9wIG1ldGhvZHNcbmpRdWVyeS5lYWNoKCB7IHNjcm9sbExlZnQ6IFwicGFnZVhPZmZzZXRcIiwgc2Nyb2xsVG9wOiBcInBhZ2VZT2Zmc2V0XCIgfSwgZnVuY3Rpb24oIG1ldGhvZCwgcHJvcCApIHtcblx0dmFyIHRvcCA9IFwicGFnZVlPZmZzZXRcIiA9PT0gcHJvcDtcblxuXHRqUXVlcnkuZm5bIG1ldGhvZCBdID0gZnVuY3Rpb24oIHZhbCApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggZWxlbSwgbWV0aG9kLCB2YWwgKSB7XG5cblx0XHRcdC8vIENvYWxlc2NlIGRvY3VtZW50cyBhbmQgd2luZG93c1xuXHRcdFx0dmFyIHdpbjtcblx0XHRcdGlmICggaXNXaW5kb3coIGVsZW0gKSApIHtcblx0XHRcdFx0d2luID0gZWxlbTtcblx0XHRcdH0gZWxzZSBpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDkgKSB7XG5cdFx0XHRcdHdpbiA9IGVsZW0uZGVmYXVsdFZpZXc7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggdmFsID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdHJldHVybiB3aW4gPyB3aW5bIHByb3AgXSA6IGVsZW1bIG1ldGhvZCBdO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIHdpbiApIHtcblx0XHRcdFx0d2luLnNjcm9sbFRvKFxuXHRcdFx0XHRcdCF0b3AgPyB2YWwgOiB3aW4ucGFnZVhPZmZzZXQsXG5cdFx0XHRcdFx0dG9wID8gdmFsIDogd2luLnBhZ2VZT2Zmc2V0XG5cdFx0XHRcdCk7XG5cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGVsZW1bIG1ldGhvZCBdID0gdmFsO1xuXHRcdFx0fVxuXHRcdH0sIG1ldGhvZCwgdmFsLCBhcmd1bWVudHMubGVuZ3RoICk7XG5cdH07XG59ICk7XG5cbi8vIFN1cHBvcnQ6IFNhZmFyaSA8PTcgLSA5LjEsIENocm9tZSA8PTM3IC0gNDlcbi8vIEFkZCB0aGUgdG9wL2xlZnQgY3NzSG9va3MgdXNpbmcgalF1ZXJ5LmZuLnBvc2l0aW9uXG4vLyBXZWJraXQgYnVnOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwODRcbi8vIEJsaW5rIGJ1ZzogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NTg5MzQ3XG4vLyBnZXRDb21wdXRlZFN0eWxlIHJldHVybnMgcGVyY2VudCB3aGVuIHNwZWNpZmllZCBmb3IgdG9wL2xlZnQvYm90dG9tL3JpZ2h0O1xuLy8gcmF0aGVyIHRoYW4gbWFrZSB0aGUgY3NzIG1vZHVsZSBkZXBlbmQgb24gdGhlIG9mZnNldCBtb2R1bGUsIGp1c3QgY2hlY2sgZm9yIGl0IGhlcmVcbmpRdWVyeS5lYWNoKCBbIFwidG9wXCIsIFwibGVmdFwiIF0sIGZ1bmN0aW9uKCBfaSwgcHJvcCApIHtcblx0alF1ZXJ5LmNzc0hvb2tzWyBwcm9wIF0gPSBhZGRHZXRIb29rSWYoIHN1cHBvcnQucGl4ZWxQb3NpdGlvbixcblx0XHRmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7XG5cdFx0XHRpZiAoIGNvbXB1dGVkICkge1xuXHRcdFx0XHRjb21wdXRlZCA9IGN1ckNTUyggZWxlbSwgcHJvcCApO1xuXG5cdFx0XHRcdC8vIElmIGN1ckNTUyByZXR1cm5zIHBlcmNlbnRhZ2UsIGZhbGxiYWNrIHRvIG9mZnNldFxuXHRcdFx0XHRyZXR1cm4gcm51bW5vbnB4LnRlc3QoIGNvbXB1dGVkICkgP1xuXHRcdFx0XHRcdGpRdWVyeSggZWxlbSApLnBvc2l0aW9uKClbIHByb3AgXSArIFwicHhcIiA6XG5cdFx0XHRcdFx0Y29tcHV0ZWQ7XG5cdFx0XHR9XG5cdFx0fVxuXHQpO1xufSApO1xuXG5cbi8vIENyZWF0ZSBpbm5lckhlaWdodCwgaW5uZXJXaWR0aCwgaGVpZ2h0LCB3aWR0aCwgb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGggbWV0aG9kc1xualF1ZXJ5LmVhY2goIHsgSGVpZ2h0OiBcImhlaWdodFwiLCBXaWR0aDogXCJ3aWR0aFwiIH0sIGZ1bmN0aW9uKCBuYW1lLCB0eXBlICkge1xuXHRqUXVlcnkuZWFjaCgge1xuXHRcdHBhZGRpbmc6IFwiaW5uZXJcIiArIG5hbWUsXG5cdFx0Y29udGVudDogdHlwZSxcblx0XHRcIlwiOiBcIm91dGVyXCIgKyBuYW1lXG5cdH0sIGZ1bmN0aW9uKCBkZWZhdWx0RXh0cmEsIGZ1bmNOYW1lICkge1xuXG5cdFx0Ly8gTWFyZ2luIGlzIG9ubHkgZm9yIG91dGVySGVpZ2h0LCBvdXRlcldpZHRoXG5cdFx0alF1ZXJ5LmZuWyBmdW5jTmFtZSBdID0gZnVuY3Rpb24oIG1hcmdpbiwgdmFsdWUgKSB7XG5cdFx0XHR2YXIgY2hhaW5hYmxlID0gYXJndW1lbnRzLmxlbmd0aCAmJiAoIGRlZmF1bHRFeHRyYSB8fCB0eXBlb2YgbWFyZ2luICE9PSBcImJvb2xlYW5cIiApLFxuXHRcdFx0XHRleHRyYSA9IGRlZmF1bHRFeHRyYSB8fCAoIG1hcmdpbiA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gdHJ1ZSA/IFwibWFyZ2luXCIgOiBcImJvcmRlclwiICk7XG5cblx0XHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCB2YWx1ZSApIHtcblx0XHRcdFx0dmFyIGRvYztcblxuXHRcdFx0XHRpZiAoIGlzV2luZG93KCBlbGVtICkgKSB7XG5cblx0XHRcdFx0XHQvLyAkKCB3aW5kb3cgKS5vdXRlcldpZHRoL0hlaWdodCByZXR1cm4gdy9oIGluY2x1ZGluZyBzY3JvbGxiYXJzIChnaC0xNzI5KVxuXHRcdFx0XHRcdHJldHVybiBmdW5jTmFtZS5pbmRleE9mKCBcIm91dGVyXCIgKSA9PT0gMCA/XG5cdFx0XHRcdFx0XHRlbGVtWyBcImlubmVyXCIgKyBuYW1lIF0gOlxuXHRcdFx0XHRcdFx0ZWxlbS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbIFwiY2xpZW50XCIgKyBuYW1lIF07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBHZXQgZG9jdW1lbnQgd2lkdGggb3IgaGVpZ2h0XG5cdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0XHRkb2MgPSBlbGVtLmRvY3VtZW50RWxlbWVudDtcblxuXHRcdFx0XHRcdC8vIEVpdGhlciBzY3JvbGxbV2lkdGgvSGVpZ2h0XSBvciBvZmZzZXRbV2lkdGgvSGVpZ2h0XSBvciBjbGllbnRbV2lkdGgvSGVpZ2h0XSxcblx0XHRcdFx0XHQvLyB3aGljaGV2ZXIgaXMgZ3JlYXRlc3Rcblx0XHRcdFx0XHRyZXR1cm4gTWF0aC5tYXgoXG5cdFx0XHRcdFx0XHRlbGVtLmJvZHlbIFwic2Nyb2xsXCIgKyBuYW1lIF0sIGRvY1sgXCJzY3JvbGxcIiArIG5hbWUgXSxcblx0XHRcdFx0XHRcdGVsZW0uYm9keVsgXCJvZmZzZXRcIiArIG5hbWUgXSwgZG9jWyBcIm9mZnNldFwiICsgbmFtZSBdLFxuXHRcdFx0XHRcdFx0ZG9jWyBcImNsaWVudFwiICsgbmFtZSBdXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID9cblxuXHRcdFx0XHRcdC8vIEdldCB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnQsIHJlcXVlc3RpbmcgYnV0IG5vdCBmb3JjaW5nIHBhcnNlRmxvYXRcblx0XHRcdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCB0eXBlLCBleHRyYSApIDpcblxuXHRcdFx0XHRcdC8vIFNldCB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnRcblx0XHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHR5cGUsIHZhbHVlLCBleHRyYSApO1xuXHRcdFx0fSwgdHlwZSwgY2hhaW5hYmxlID8gbWFyZ2luIDogdW5kZWZpbmVkLCBjaGFpbmFibGUgKTtcblx0XHR9O1xuXHR9ICk7XG59ICk7XG5cblxualF1ZXJ5LmVhY2goIFtcblx0XCJhamF4U3RhcnRcIixcblx0XCJhamF4U3RvcFwiLFxuXHRcImFqYXhDb21wbGV0ZVwiLFxuXHRcImFqYXhFcnJvclwiLFxuXHRcImFqYXhTdWNjZXNzXCIsXG5cdFwiYWpheFNlbmRcIlxuXSwgZnVuY3Rpb24oIF9pLCB0eXBlICkge1xuXHRqUXVlcnkuZm5bIHR5cGUgXSA9IGZ1bmN0aW9uKCBmbiApIHtcblx0XHRyZXR1cm4gdGhpcy5vbiggdHlwZSwgZm4gKTtcblx0fTtcbn0gKTtcblxuXG5cblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXG5cdGJpbmQ6IGZ1bmN0aW9uKCB0eXBlcywgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub24oIHR5cGVzLCBudWxsLCBkYXRhLCBmbiApO1xuXHR9LFxuXHR1bmJpbmQ6IGZ1bmN0aW9uKCB0eXBlcywgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub2ZmKCB0eXBlcywgbnVsbCwgZm4gKTtcblx0fSxcblxuXHRkZWxlZ2F0ZTogZnVuY3Rpb24oIHNlbGVjdG9yLCB0eXBlcywgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKTtcblx0fSxcblx0dW5kZWxlZ2F0ZTogZnVuY3Rpb24oIHNlbGVjdG9yLCB0eXBlcywgZm4gKSB7XG5cblx0XHQvLyAoIG5hbWVzcGFjZSApIG9yICggc2VsZWN0b3IsIHR5cGVzIFssIGZuXSApXG5cdFx0cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPT09IDEgP1xuXHRcdFx0dGhpcy5vZmYoIHNlbGVjdG9yLCBcIioqXCIgKSA6XG5cdFx0XHR0aGlzLm9mZiggdHlwZXMsIHNlbGVjdG9yIHx8IFwiKipcIiwgZm4gKTtcblx0fSxcblxuXHRob3ZlcjogZnVuY3Rpb24oIGZuT3ZlciwgZm5PdXQgKSB7XG5cdFx0cmV0dXJuIHRoaXMubW91c2VlbnRlciggZm5PdmVyICkubW91c2VsZWF2ZSggZm5PdXQgfHwgZm5PdmVyICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmVhY2goXG5cdCggXCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgcmVzaXplIHNjcm9sbCBjbGljayBkYmxjbGljayBcIiArXG5cdFwibW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgXCIgK1xuXHRcImNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgY29udGV4dG1lbnVcIiApLnNwbGl0KCBcIiBcIiApLFxuXHRmdW5jdGlvbiggX2ksIG5hbWUgKSB7XG5cblx0XHQvLyBIYW5kbGUgZXZlbnQgYmluZGluZ1xuXHRcdGpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIGRhdGEsIGZuICkge1xuXHRcdFx0cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPiAwID9cblx0XHRcdFx0dGhpcy5vbiggbmFtZSwgbnVsbCwgZGF0YSwgZm4gKSA6XG5cdFx0XHRcdHRoaXMudHJpZ2dlciggbmFtZSApO1xuXHRcdH07XG5cdH1cbik7XG5cblxuXG5cbi8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjAgb25seVxuLy8gTWFrZSBzdXJlIHdlIHRyaW0gQk9NIGFuZCBOQlNQXG52YXIgcnRyaW0gPSAvXltcXHNcXHVGRUZGXFx4QTBdK3xbXFxzXFx1RkVGRlxceEEwXSskL2c7XG5cbi8vIEJpbmQgYSBmdW5jdGlvbiB0byBhIGNvbnRleHQsIG9wdGlvbmFsbHkgcGFydGlhbGx5IGFwcGx5aW5nIGFueVxuLy8gYXJndW1lbnRzLlxuLy8galF1ZXJ5LnByb3h5IGlzIGRlcHJlY2F0ZWQgdG8gcHJvbW90ZSBzdGFuZGFyZHMgKHNwZWNpZmljYWxseSBGdW5jdGlvbiNiaW5kKVxuLy8gSG93ZXZlciwgaXQgaXMgbm90IHNsYXRlZCBmb3IgcmVtb3ZhbCBhbnkgdGltZSBzb29uXG5qUXVlcnkucHJveHkgPSBmdW5jdGlvbiggZm4sIGNvbnRleHQgKSB7XG5cdHZhciB0bXAsIGFyZ3MsIHByb3h5O1xuXG5cdGlmICggdHlwZW9mIGNvbnRleHQgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0dG1wID0gZm5bIGNvbnRleHQgXTtcblx0XHRjb250ZXh0ID0gZm47XG5cdFx0Zm4gPSB0bXA7XG5cdH1cblxuXHQvLyBRdWljayBjaGVjayB0byBkZXRlcm1pbmUgaWYgdGFyZ2V0IGlzIGNhbGxhYmxlLCBpbiB0aGUgc3BlY1xuXHQvLyB0aGlzIHRocm93cyBhIFR5cGVFcnJvciwgYnV0IHdlIHdpbGwganVzdCByZXR1cm4gdW5kZWZpbmVkLlxuXHRpZiAoICFpc0Z1bmN0aW9uKCBmbiApICkge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvLyBTaW11bGF0ZWQgYmluZFxuXHRhcmdzID0gc2xpY2UuY2FsbCggYXJndW1lbnRzLCAyICk7XG5cdHByb3h5ID0gZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGZuLmFwcGx5KCBjb250ZXh0IHx8IHRoaXMsIGFyZ3MuY29uY2F0KCBzbGljZS5jYWxsKCBhcmd1bWVudHMgKSApICk7XG5cdH07XG5cblx0Ly8gU2V0IHRoZSBndWlkIG9mIHVuaXF1ZSBoYW5kbGVyIHRvIHRoZSBzYW1lIG9mIG9yaWdpbmFsIGhhbmRsZXIsIHNvIGl0IGNhbiBiZSByZW1vdmVkXG5cdHByb3h5Lmd1aWQgPSBmbi5ndWlkID0gZm4uZ3VpZCB8fCBqUXVlcnkuZ3VpZCsrO1xuXG5cdHJldHVybiBwcm94eTtcbn07XG5cbmpRdWVyeS5ob2xkUmVhZHkgPSBmdW5jdGlvbiggaG9sZCApIHtcblx0aWYgKCBob2xkICkge1xuXHRcdGpRdWVyeS5yZWFkeVdhaXQrKztcblx0fSBlbHNlIHtcblx0XHRqUXVlcnkucmVhZHkoIHRydWUgKTtcblx0fVxufTtcbmpRdWVyeS5pc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcbmpRdWVyeS5wYXJzZUpTT04gPSBKU09OLnBhcnNlO1xualF1ZXJ5Lm5vZGVOYW1lID0gbm9kZU5hbWU7XG5qUXVlcnkuaXNGdW5jdGlvbiA9IGlzRnVuY3Rpb247XG5qUXVlcnkuaXNXaW5kb3cgPSBpc1dpbmRvdztcbmpRdWVyeS5jYW1lbENhc2UgPSBjYW1lbENhc2U7XG5qUXVlcnkudHlwZSA9IHRvVHlwZTtcblxualF1ZXJ5Lm5vdyA9IERhdGUubm93O1xuXG5qUXVlcnkuaXNOdW1lcmljID0gZnVuY3Rpb24oIG9iaiApIHtcblxuXHQvLyBBcyBvZiBqUXVlcnkgMy4wLCBpc051bWVyaWMgaXMgbGltaXRlZCB0b1xuXHQvLyBzdHJpbmdzIGFuZCBudW1iZXJzIChwcmltaXRpdmVzIG9yIG9iamVjdHMpXG5cdC8vIHRoYXQgY2FuIGJlIGNvZXJjZWQgdG8gZmluaXRlIG51bWJlcnMgKGdoLTI2NjIpXG5cdHZhciB0eXBlID0galF1ZXJ5LnR5cGUoIG9iaiApO1xuXHRyZXR1cm4gKCB0eXBlID09PSBcIm51bWJlclwiIHx8IHR5cGUgPT09IFwic3RyaW5nXCIgKSAmJlxuXG5cdFx0Ly8gcGFyc2VGbG9hdCBOYU5zIG51bWVyaWMtY2FzdCBmYWxzZSBwb3NpdGl2ZXMgKFwiXCIpXG5cdFx0Ly8gLi4uYnV0IG1pc2ludGVycHJldHMgbGVhZGluZy1udW1iZXIgc3RyaW5ncywgcGFydGljdWxhcmx5IGhleCBsaXRlcmFscyAoXCIweC4uLlwiKVxuXHRcdC8vIHN1YnRyYWN0aW9uIGZvcmNlcyBpbmZpbml0aWVzIHRvIE5hTlxuXHRcdCFpc05hTiggb2JqIC0gcGFyc2VGbG9hdCggb2JqICkgKTtcbn07XG5cbmpRdWVyeS50cmltID0gZnVuY3Rpb24oIHRleHQgKSB7XG5cdHJldHVybiB0ZXh0ID09IG51bGwgP1xuXHRcdFwiXCIgOlxuXHRcdCggdGV4dCArIFwiXCIgKS5yZXBsYWNlKCBydHJpbSwgXCJcIiApO1xufTtcblxuXG5cbi8vIFJlZ2lzdGVyIGFzIGEgbmFtZWQgQU1EIG1vZHVsZSwgc2luY2UgalF1ZXJ5IGNhbiBiZSBjb25jYXRlbmF0ZWQgd2l0aCBvdGhlclxuLy8gZmlsZXMgdGhhdCBtYXkgdXNlIGRlZmluZSwgYnV0IG5vdCB2aWEgYSBwcm9wZXIgY29uY2F0ZW5hdGlvbiBzY3JpcHQgdGhhdFxuLy8gdW5kZXJzdGFuZHMgYW5vbnltb3VzIEFNRCBtb2R1bGVzLiBBIG5hbWVkIEFNRCBpcyBzYWZlc3QgYW5kIG1vc3Qgcm9idXN0XG4vLyB3YXkgdG8gcmVnaXN0ZXIuIExvd2VyY2FzZSBqcXVlcnkgaXMgdXNlZCBiZWNhdXNlIEFNRCBtb2R1bGUgbmFtZXMgYXJlXG4vLyBkZXJpdmVkIGZyb20gZmlsZSBuYW1lcywgYW5kIGpRdWVyeSBpcyBub3JtYWxseSBkZWxpdmVyZWQgaW4gYSBsb3dlcmNhc2Vcbi8vIGZpbGUgbmFtZS4gRG8gdGhpcyBhZnRlciBjcmVhdGluZyB0aGUgZ2xvYmFsIHNvIHRoYXQgaWYgYW4gQU1EIG1vZHVsZSB3YW50c1xuLy8gdG8gY2FsbCBub0NvbmZsaWN0IHRvIGhpZGUgdGhpcyB2ZXJzaW9uIG9mIGpRdWVyeSwgaXQgd2lsbCB3b3JrLlxuXG4vLyBOb3RlIHRoYXQgZm9yIG1heGltdW0gcG9ydGFiaWxpdHksIGxpYnJhcmllcyB0aGF0IGFyZSBub3QgalF1ZXJ5IHNob3VsZFxuLy8gZGVjbGFyZSB0aGVtc2VsdmVzIGFzIGFub255bW91cyBtb2R1bGVzLCBhbmQgYXZvaWQgc2V0dGluZyBhIGdsb2JhbCBpZiBhblxuLy8gQU1EIGxvYWRlciBpcyBwcmVzZW50LiBqUXVlcnkgaXMgYSBzcGVjaWFsIGNhc2UuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9qcmJ1cmtlL3JlcXVpcmVqcy93aWtpL1VwZGF0aW5nLWV4aXN0aW5nLWxpYnJhcmllcyN3aWtpLWFub25cblxuaWYgKCB0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCApIHtcblx0ZGVmaW5lKCBcImpxdWVyeVwiLCBbXSwgZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGpRdWVyeTtcblx0fSApO1xufVxuXG5cblxuXG52YXJcblxuXHQvLyBNYXAgb3ZlciBqUXVlcnkgaW4gY2FzZSBvZiBvdmVyd3JpdGVcblx0X2pRdWVyeSA9IHdpbmRvdy5qUXVlcnksXG5cblx0Ly8gTWFwIG92ZXIgdGhlICQgaW4gY2FzZSBvZiBvdmVyd3JpdGVcblx0XyQgPSB3aW5kb3cuJDtcblxualF1ZXJ5Lm5vQ29uZmxpY3QgPSBmdW5jdGlvbiggZGVlcCApIHtcblx0aWYgKCB3aW5kb3cuJCA9PT0galF1ZXJ5ICkge1xuXHRcdHdpbmRvdy4kID0gXyQ7XG5cdH1cblxuXHRpZiAoIGRlZXAgJiYgd2luZG93LmpRdWVyeSA9PT0galF1ZXJ5ICkge1xuXHRcdHdpbmRvdy5qUXVlcnkgPSBfalF1ZXJ5O1xuXHR9XG5cblx0cmV0dXJuIGpRdWVyeTtcbn07XG5cbi8vIEV4cG9zZSBqUXVlcnkgYW5kICQgaWRlbnRpZmllcnMsIGV2ZW4gaW4gQU1EXG4vLyAoIzcxMDIjY29tbWVudDoxMCwgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvcHVsbC81NTcpXG4vLyBhbmQgQ29tbW9uSlMgZm9yIGJyb3dzZXIgZW11bGF0b3JzICgjMTM1NjYpXG5pZiAoIHR5cGVvZiBub0dsb2JhbCA9PT0gXCJ1bmRlZmluZWRcIiApIHtcblx0d2luZG93LmpRdWVyeSA9IHdpbmRvdy4kID0galF1ZXJ5O1xufVxuXG5cblxuXG5yZXR1cm4galF1ZXJ5O1xufSApO1xuIiwgImltcG9ydCB7IEFwcCwgRWRpdG9yLCBOb3RpY2UsIFBsdWdpbiwgUGx1Z2luU2V0dGluZ1RhYiwgU2V0dGluZywgcmVuZGVyTWF0aCwgZmluaXNoUmVuZGVyTWF0aCwgbG9hZE1hdGhKYXgsIEZpbGVNYW5hZ2VyIH0gZnJvbSAnb2JzaWRpYW4nO1xyXG5pbXBvcnQgeyBmb3JtYXRFcXVhdGlvbiB9IGZyb20gXCIuL3BhcnNlclwiO1xyXG5pbXBvcnQgeyByZW5kZXJDYW52YXMgfSBmcm9tIFwiLi9leGNhbGlkcmF3UmVuZGVyZXJcIlxyXG5pbXBvcnQgJCBmcm9tIFwianF1ZXJ5XCI7XHJcblxyXG4vKipcclxuICogVE9ETzpcclxuICogLSBbIF0gQWRkIHRlc3Rpbmcgc2hlZXRcclxuICogLSBbIF0gQWRkIGZpbGwgdHlwZXNcclxuICogLSBbIF0gQWRkIGxpbmUgc2l6ZVxyXG4gKiAtIFsgXSBBZGQgYWxpZ25cclxuICogLSBbIF0gQWRkIGNvcm5lciBvcHRpb25zXHJcblxyXG4gKiBGSVhNRTpcclxuICogLSBbIF0gRXhjYWxpZHJhdyBwbHVnaW4gc3R5bGUgY29uZmxpY3RcclxuICogLSBbIF0gRml4IHNpZGUgYmFyIG92ZXJsYXBwaW5nXHJcbiAqIC0gWyBdIENoYW5nZSBidXR0b24gY29sb3IgdmFyIHRvIG1hdGNoIHVwZGF0ZWRcclxuICogLSBbWF0gQm91bmQgaW50ZWdyYWxzIGVudGlyZWx5IGJyb2tlblxyXG4qL1xyXG5cclxuXHJcbmludGVyZmFjZSBNYXRoUGx1c1NldHRpbmdzIHtcclxuXHQvLyBDdXN0b20gUGF0aFxyXG5cdHBhdGg6c3RyaW5nO1xyXG5cdC8vIE9wZXJhdG9yc1xyXG5cdG9wZXJhdG9yczpzdHJpbmc7XHJcblx0Ly8gQ29sb3JzXHJcblx0Y29sb3IxOnN0cmluZztcclxuXHRjb2xvcjI6c3RyaW5nO1xyXG5cdGNvbG9yMzpzdHJpbmc7XHJcblx0Y29sb3JQaWNrZXI6Ym9vbGVhbjtcclxuXHQvLyBNYXRoIEJsb2NrIFNpemVcclxuXHRtaW5IZWlnaHQ6c3RyaW5nO1xyXG5cdC8vIExpdmUgUHJldmlld1xyXG5cdGxpdmVQcmV2aWV3OmJvb2xlYW47XHJcblx0Ly8gTWV0YWRhdGFcclxuXHRhZGREb2xsYXJzOmJvb2xlYW47XHJcblx0aWRIaWRkZW46Ym9vbGVhbjtcclxuXHRmb3JtYXR0aW5nSGlkZGVuOmJvb2xlYW47XHJcblx0Ly8gRXhjYWxpZHJhdyBVSVxyXG5cdGxvY2tWaXNhYmxlOiBib29sZWFuO1xyXG5cdHNlbGVjdFZpc2FibGU6IGJvb2xlYW47XHJcblx0cmVjdFZpc2FibGU6IGJvb2xlYW47XHJcblx0ZGlhbW9uZFZpc2FibGU6IGJvb2xlYW47XHJcblx0ZWxsaXBzZVZpc2FibGU6IGJvb2xlYW47XHJcblx0YXJyb3dWaXNhYmxlOiBib29sZWFuO1xyXG5cdGxpbmVWaXNhYmxlOiBib29sZWFuO1xyXG5cdHBlblZpc2FibGU6IGJvb2xlYW47XHJcblx0dGV4dFZpc2FibGU6IGJvb2xlYW47XHJcblx0Ly8gRXhjYWxpZHJhdyBTZXR0aW5nc1xyXG5cdGdyaWRNb2RlRW5kYWJsZWQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbmNvbnN0IERFRkFVTFRfU0VUVElOR1M6IE1hdGhQbHVzU2V0dGluZ3MgPSB7XHJcblx0Ly8gQ3VzdG9tIFBhdGhcclxuXHRwYXRoOmBgLFxyXG5cdC8vIE9wZXJhdG9yc1xyXG5cdG9wZXJhdG9yczogYFtcclxuXHRcdFx0e1xyXG5cdFx0XHRcdFx0XCJvcFwiOlwiXFxsZWZ0eyhcIixcclxuXHRcdFx0XHRcdFwiZm9ybWF0XCI6XCJ7KFwiXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRcdFwib3BcIjpcIlxccmlnaHQpXCIsXHJcblx0XHRcdFx0XHRcImZvcm1hdFwiOlwiKVwiXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRcdFwib3BcIjpcIlxcXFwpXCIsXHJcblx0XHRcdFx0XHRcImZvcm1hdFwiOlwie1xcXFxycGFyZW5cIlxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0XHRcIm9wXCI6XCJcXFxcaWZcIixcclxuXHRcdFx0XHRcdFwiZm9ybWF0XCI6XCJ7XFxcXHRleHR7aWYgfX1cIlxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0XHRcIm9wXCI6XCJcXFxcdGhlblwiLFxyXG5cdFx0XHRcdFx0XCJmb3JtYXRcIjpcIntcXFxcdGV4dHt0aGVuIH19XCJcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdFx0XCJvcFwiOlwiXFxcXG9yXCIsXHJcblx0XHRcdFx0XHRcImZvcm1hdFwiOlwie1xcXFx0ZXh0eyBvciB9fVwiXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRcdFwib3BcIjpcIiFcIixcclxuXHRcdFx0XHRcdFwiZm9ybWF0XCI6XCJ7JXMxJSF9XCJcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdFx0XCJvcFwiOlwiL1wiLFxyXG5cdFx0XHRcdFx0XCJmb3JtYXRcIjpcIlxcXFxmcmFjeyVzMSV9eyVzMiV9XCJcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdFx0XCJvcFwiOlwiXFxcXGxpbVwiLFxyXG5cdFx0XHRcdFx0XCJmb3JtYXRcIjpcIlxcXFxsaW1feyVzMSVcXFxcdG8lczIlfVwiXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRcdFwib3BcIjpcIlxcXFxhYnNcIixcclxuXHRcdFx0XHRcdFwiZm9ybWF0XCI6XCJ7fCVzMiV8fVwiXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRcdFwib3BcIjpcIlxcXFxpc1wiLFxyXG5cdFx0XHRcdFx0XCJmb3JtYXRcIjpcIlxcXFxzdW1cXFxcbGltaXRzX3tuPSVzMiV9XntcXFxcaW5mdHl9XCJcclxuXHRcdFx0fVxyXG5cdF1gLFxyXG5cclxuXHQvLyBDb2xvcnNcclxuXHRjb2xvcjE6XCIjMDAwMDAwXCIsXHJcblx0Y29sb3IyOlwiIzE4NjRhYlwiLFxyXG5cdGNvbG9yMzpcIiNkOTQ4MGZcIixcclxuXHRjb2xvclBpY2tlcjpmYWxzZSxcclxuXHQvLyBNYXRoIEJsb2NrIFNpemVcclxuXHRtaW5IZWlnaHQ6XCIxMDBcIixcclxuXHQvLyBMaXZlIFByZXZpZXdcclxuXHRsaXZlUHJldmlldzpmYWxzZSxcclxuXHQvLyBNZXRhZGF0YVxyXG5cdGFkZERvbGxhcnM6ZmFsc2UsXHJcblx0aWRIaWRkZW46ZmFsc2UsXHJcblx0Zm9ybWF0dGluZ0hpZGRlbjp0cnVlLFxyXG5cdC8vIEV4Y2FsaWRyYXcgVUlcclxuXHRsb2NrVmlzYWJsZTogdHJ1ZSxcclxuXHRzZWxlY3RWaXNhYmxlOiB0cnVlLFxyXG5cdHJlY3RWaXNhYmxlOiBmYWxzZSxcclxuXHRkaWFtb25kVmlzYWJsZTogZmFsc2UsXHJcblx0ZWxsaXBzZVZpc2FibGU6IGZhbHNlLFxyXG5cdGFycm93VmlzYWJsZTogdHJ1ZSxcclxuXHRsaW5lVmlzYWJsZTogdHJ1ZSxcclxuXHRwZW5WaXNhYmxlOiB0cnVlLFxyXG5cdHRleHRWaXNhYmxlOiB0cnVlLFxyXG5cdC8vIEV4Y2FsaWRyYXcgU2V0dGluZ3NcclxuXHRncmlkTW9kZUVuZGFibGVkOiBmYWxzZVxyXG59XHJcblxyXG5jb25zdCBjcmVhdGVWaWV3ZXIgPSAob3BlcmF0b3JzOiBzdHJpbmcpID0+IHtcclxuXHRpZigkKFwiLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luXCIpLnRleHQoKT09PVwiYGBgbWF0aFwiKSB7XHJcblx0XHR1cGRhdGVMYXRleFZpZXdlcihvcGVyYXRvcnMpO1xyXG5cdH1cclxufVxyXG5cclxuY29uc3QgaGlkZU1ldGFEYXRhID0gKCkgPT4ge1xyXG5cdCQoXCIuSHlwZXJNRC1jb2RlYmxvY2s6Y29udGFpbnMoJyUzNG8kJCUzNGMnKVwiKS5jc3Moe2Rpc3BsYXk6XCJub25lXCJ9KTtcclxufVxyXG5cclxuY29uc3QgaGlkZUlkID0gKCkgPT4ge1xyXG5cdCQoXCIuSHlwZXJNRC1jb2RlYmxvY2s6Y29udGFpbnMoJ3x8e1xcXCJpZFxcXCI6JylcIikubmV4dChcIi5IeXBlck1ELWNvZGVibG9jazpoYXMoYnIpXCIpLmhpZGUoKTtcclxuXHQkKFwiLkh5cGVyTUQtY29kZWJsb2NrOmNvbnRhaW5zKCd8fHtcXFwiaWRcXFwiOicpXCIpLmNzcyh7ZGlzcGxheTpcIm5vbmVcIn0pO1xyXG59XHJcblxyXG5jb25zdCByZW1vdmVWaWV3ZXIgPSBmdW5jdGlvbigpIHtcclxuXHRpZigkKHRoaXMpLmNoaWxkcmVuKCkuZmlyc3QoKS5oYXNDbGFzcyhcImJsb2NrLWxhbmd1YWdlLW1hdGhcIikgJiYgJChcIi5IeXBlck1ELWNvZGVibG9jay1iZWdpblwiKS5sZW5ndGg8MSl7XHJcblx0XHQkKFwiLmxpdmVQcmV2UGx1c1wiKS5wYXJlbnRzKFwiLmNtLWh0bWwtZW1iZWRcIikucHJldigpLnJlbW92ZSgpO1xyXG5cdFx0JChcIi5saXZlUHJldlBsdXNcIikucGFyZW50cyhcIi5jbS1odG1sLWVtYmVkXCIpLnJlbW92ZSgpO1xyXG5cdH1cclxufVxyXG5cclxubGV0IGZpbHRlclRpbWVvdXQ6IGFueTtcclxuXHJcbmNvbnN0IHVwZGF0ZUxhdGV4Vmlld2VyID0gYXN5bmMob3BlcmF0b3JzOiBzdHJpbmcpPT57XHJcblx0Y2xlYXJUaW1lb3V0KGZpbHRlclRpbWVvdXQpO1xyXG5cclxuXHRmaWx0ZXJUaW1lb3V0ID0gc2V0VGltZW91dChhc3luYygpID0+IHtcclxuXHRcdGxldCBmdWxsVGV4dCA9IFwiXCI7XHJcblx0XHRsZXQgbGluZXMgPSAkKFwiLkh5cGVyTUQtY29kZWJsb2NrXCIpLm5vdChcIi5IeXBlck1ELWNvZGVibG9jay1iZWdpblwiKS5ub3QoXCIuSHlwZXJNRC1jb2RlYmxvY2stZW5kXCIpO1xyXG5cdFx0bGluZXMuZWFjaChmdW5jdGlvbigpIHtcclxuXHRcdFx0ZnVsbFRleHQrPVwiXFxuXCIrKCQodGhpcykudGV4dCgpfHxcIlxcblwiKTtcclxuXHRcdH0pO1xyXG5cdFx0bGV0IHJhd0VxdSA9IGZ1bGxUZXh0LnJlcGxhY2UoL1xcfFxcfC4rXFx8XFx8XFxuKi9nbSxcIlwiKS5yZXBsYWNlKC8lMzRvLislMzRjXFxuKi9nbSxcIlwiKTtcclxuXHRcdGxldCBlcXUgPSBmb3JtYXRFcXVhdGlvbihyYXdFcXUsIG9wZXJhdG9ycyk7XHJcblxyXG5cdFx0bGV0IG1kQmxvY2tFbmQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLkh5cGVyTUQtY29kZWJsb2NrLWVuZFwiKTtcclxuXHRcdGxldCBsaXZlUHJldlBsdXMgPSAkKFwiLmxpdmVQcmV2UGx1c1wiKTtcclxuXHRcdGxldCBwcmV2aWV3SFRNTCA9IFwiXFxuPGRpdiB0YWJpbmRleD0nLTEnY29udGVudGVkaXRhYmxlPSdmYWxzZScgY2xhc3M9J2xpdmVQcmV2UGx1cyc+PC9kaXY+XCI7XHJcblx0XHRsaXZlUHJldlBsdXMubGVuZ3RoPjA/bGl2ZVByZXZQbHVzLnBhcmVudHMoXCIuY20taHRtbC1lbWJlZFwiKS5wcmV2KCkucmVtb3ZlKCk6bnVsbDtcclxuXHRcdGxpdmVQcmV2UGx1cy5sZW5ndGg+MD9saXZlUHJldlBsdXMucGFyZW50cyhcIi5jbS1odG1sLWVtYmVkXCIpLnJlbW92ZSgpOm51bGw7XHJcblx0XHRtZEJsb2NrRW5kLmluc2VydEFkamFjZW50VGV4dChcImFmdGVyZW5kXCIsIHByZXZpZXdIVE1MKTtcclxuXHRcdHNldFRpbWVvdXQoYXN5bmMoKSA9PiB7XHJcblx0XHRcdCQoXCIubGl2ZVByZXZQbHVzXCIpLnBhcmVudHMoXCIuY20taHRtbC1lbWJlZFwiKS5hZGRDbGFzcyhcImxpdmVQcmV2UGx1c0JveFwiKTtcclxuXHRcdFx0bGV0IHByZXZCb3ggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmxpdmVQcmV2UGx1c0JveFwiKSAgYXMgSFRNTEVsZW1lbnQ7XHJcblx0XHRcdC8vIHByZXZCb3guc3R5bGUuY3Vyc29yID0gXCJkZWZhdWx0XCI7XHJcblx0XHR9LCAxNTApO1xyXG5cdFx0c2V0VGltZW91dChhc3luYygpID0+IHtcclxuXHRcdFx0aWYoJChcIi5saXZlUHJldlBsdXNcIikpe1xyXG5cdFx0XHRcdCQoXCIubGl2ZVByZXZQbHVzXCIpLmVtcHR5KCk7XHJcblx0XHRcdFx0JChcIi5saXZlUHJldlBsdXNcIikuYXBwZW5kKHJlbmRlck1hdGgoZXF1LCB0cnVlKSk7XHJcblx0XHRcdFx0YXdhaXQgZmluaXNoUmVuZGVyTWF0aCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9LCAxNTApO1xyXG5cclxuXHR9LCAxMCk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1hdGhQbHVzIGV4dGVuZHMgUGx1Z2luIHtcclxuXHRzZXR0aW5nczogTWF0aFBsdXNTZXR0aW5ncztcclxuXHJcblx0YXN5bmMgb25sb2FkKCkge1xyXG5cdFx0YXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcclxuXHRcdGF3YWl0IGxvYWRNYXRoSmF4KCk7XHJcblx0XHRjb25zdCBsaXZlUHJldmlld0VuYWJsZWQgPSB0aGlzLnNldHRpbmdzLmxpdmVQcmV2aWV3O1xyXG5cdFx0Y29uc3QgZm9ybWF0dGluZ0hpZGRlbiA9IHRoaXMuc2V0dGluZ3MuZm9ybWF0dGluZ0hpZGRlbjtcclxuXHRcdGNvbnN0IGlkSGlkZGVuID0gdGhpcy5zZXR0aW5ncy5pZEhpZGRlbjtcclxuXHRcdGNvbnN0IG9wZXJhdG9ycyA9IHRoaXMuc2V0dGluZ3Mub3BlcmF0b3JzO1xyXG5cdFx0Y29uc3QgdG9vbHMgPSBbXHJcblx0XHRcdHRoaXMuc2V0dGluZ3Muc2VsZWN0VmlzYWJsZSxcclxuXHRcdFx0dGhpcy5zZXR0aW5ncy5yZWN0VmlzYWJsZSxcclxuXHRcdFx0dGhpcy5zZXR0aW5ncy5kaWFtb25kVmlzYWJsZSxcclxuXHRcdFx0dGhpcy5zZXR0aW5ncy5lbGxpcHNlVmlzYWJsZSxcclxuXHRcdFx0dGhpcy5zZXR0aW5ncy5hcnJvd1Zpc2FibGUsXHJcblx0XHRcdHRoaXMuc2V0dGluZ3MubGluZVZpc2FibGUsXHJcblx0XHRcdHRoaXMuc2V0dGluZ3MucGVuVmlzYWJsZSxcclxuXHRcdFx0dGhpcy5zZXR0aW5ncy50ZXh0VmlzYWJsZVxyXG5cdFx0XVxyXG5cdFx0Y29uc3QgdG9vbENvdW50ID0gdG9vbHMuZmlsdGVyKEJvb2xlYW4pLmxlbmd0aDtcclxuXHRcdFxyXG5cdFx0Ly8gU2V0IFBhdGhcclxuXHRcdHRoaXMuc2V0dGluZ3MucGF0aCA9IHRoaXMuc2V0dGluZ3MucGF0aC5sZW5ndGg+MD90aGlzLnNldHRpbmdzLnBhdGg6dGhpcy5hcHAudmF1bHQuY29uZmlnRGlyK2AvcGx1Z2lucy9vYnNpZGlhbi1tYXRoLXBsdXNgO1xyXG5cdFx0YXdhaXQgdGhpcy5zYXZlU2V0dGluZ3MoKTtcclxuXHRcdGNvbnN0IHBsdWdpblBhdGggPSB0aGlzLnNldHRpbmdzLnBhdGgrXCIvXCI7XHJcblxyXG5cdFx0Ly8gU2F2ZSBWYXJpYWJsZSBzdHlsZXNcclxuXHRcdCQoXCI8c3R5bGU+XCIpLnRleHQoYFxyXG5cdFx0Lm1pbi1oZWlnaHQtdHJ1ZSB7IG1pbi1oZWlnaHQ6JHt0aGlzLnNldHRpbmdzLm1pbkhlaWdodH1weH1cclxuXHRcdC5leGNhbGlkcmF3LWNhbnZhcy13cmFwcGVyIC5zbWFsbC1jYW52YXMgc2VjdGlvbiAuSXNsYW5kLkFwcC10b29sYmFyOmhvdmVyIHsgbWF4LXdpZHRoOiAkezE1Kyg0NSp0b29sQ291bnQpfXB4OyB9XHJcblx0XHRgKS5hcHBlbmRUbyhcImhlYWRcIik7XHJcblx0XHRcdFxyXG5cclxuXHRcdFx0Y29uc3Qgc2F2ZVRvRmlsZSA9IGFzeW5jIChmaWxlTmFtZTpzdHJpbmcsIGRhdGE6c3RyaW5nLCBkaXJlY3Rvcnk6c3RyaW5nLCBjbG9zZURyYXdpbmc9dHJ1ZSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHZhdWx0ID0gdGhpcy5hcHAudmF1bHQ7XHJcblx0XHRcdFx0Y29uc3QgYWRhcHRlciA9IHZhdWx0LmFkYXB0ZXI7XHJcblx0XHRcdFx0bGV0IGRpcmVjdG9yeVBhdGggPSAgcGx1Z2luUGF0aCtkaXJlY3Rvcnk7XHJcblx0XHRcdFx0Ly8gSWYgdGhlIGRpcmVjdG9yeSBpc24ndCB0aGVyZSwgbWFrZSBpdFxyXG5cdFx0XHRcdGlmKCFhd2FpdCBhZGFwdGVyLmV4aXN0cyhkaXJlY3RvcnlQYXRoKSl7XHJcblx0XHRcdFx0XHRhd2FpdCBhZGFwdGVyLm1rZGlyKGRpcmVjdG9yeVBhdGgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjb25zdCBjb25maWdQYXRoID0gYCR7ZGlyZWN0b3J5UGF0aH0vJHtmaWxlTmFtZX1gO1xyXG5cdFx0XHRcdGlmKGF3YWl0IGFkYXB0ZXIuZXhpc3RzKGNvbmZpZ1BhdGgpKXtcclxuXHRcdFx0XHRcdGF3YWl0IGFkYXB0ZXIud3JpdGUoY29uZmlnUGF0aCxkYXRhKTtcclxuXHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdGF3YWl0IHZhdWx0LmNyZWF0ZShjb25maWdQYXRoLGRhdGEpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdGNvbnN0IHJlYWRGaWxlID0gYXN5bmMgKGZpbGVOYW1lOnN0cmluZywgZGlyZWN0b3J5OnN0cmluZykgPT4ge1xyXG5cdFx0XHRjb25zdCBjb25maWdQYXRoID0gYCR7cGx1Z2luUGF0aH0ke2RpcmVjdG9yeX0vJHtmaWxlTmFtZX1gO1xyXG5cdFx0XHRpZihhd2FpdCB0aGlzLmFwcC52YXVsdC5hZGFwdGVyLmV4aXN0cyhjb25maWdQYXRoKSl7XHJcblx0XHRcdFx0cmV0dXJuIGF3YWl0IHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIucmVhZChjb25maWdQYXRoKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gbnVsbFxyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IG9ialRvQ3NzID0gKG9iajphbnkpID0+e1xyXG5cdFx0XHRyZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqKS5tYXAoKFtrLCB2XSkgPT4gYCR7a30geyR7T2JqZWN0LmVudHJpZXModikubWFwKChbaywgdl0pID0+YCR7a306JHt2fWApLmpvaW4oJzsnKX19YCkuam9pbignJylcclxuXHRcdH1cclxuXHJcblx0XHQvLyBMb2FkIEJsb2NrIFN0eWxlc1xyXG5cdFx0bGV0IGJsb2NrU3R5bGVzUmF3ID0gYXdhaXQgcmVhZEZpbGUoXCJibG9jay1zdHlsZXNcIixcImJsb2NrLWRhdGFcIil8fFwie31cIjtcclxuXHRcdGxldCBibG9ja1N0eWxlcyA9IEpTT04ucGFyc2UoYmxvY2tTdHlsZXNSYXcpO1xyXG5cdFx0JChcIjxzdHlsZSBpZD0nYmxvY2stc3R5bGVzJz5cIikudGV4dChvYmpUb0NzcyhibG9ja1N0eWxlcykpLmFwcGVuZFRvKFwiaGVhZFwiKTtcclxuXHJcblx0XHRjb25zdCB1cGRhdGVCbG9ja1N0eWxlID0gKGlkOnN0cmluZyxrZXk6c3RyaW5nLHZhbHVlOnN0cmluZyk9PntcclxuXHRcdFx0aWYoYmxvY2tTdHlsZXMuaGFzT3duUHJvcGVydHkoYC5tYXRoLWJsb2NrLSR7aWR9YCkpe1xyXG5cdFx0XHRcdGlmKGJsb2NrU3R5bGVzW2AubWF0aC1ibG9jay0ke2lkfWBdW2tleV0hPT12YWx1ZSl7XHJcblx0XHRcdFx0XHRibG9ja1N0eWxlc1tgLm1hdGgtYmxvY2stJHtpZH1gXVtrZXldID0gdmFsdWU7XHJcblx0XHRcdFx0XHRzYXZlVG9GaWxlKFwiYmxvY2stc3R5bGVzXCIsSlNPTi5zdHJpbmdpZnkoYmxvY2tTdHlsZXMpLFwiYmxvY2stZGF0YVwiKTtcclxuXHRcdFx0XHRcdCQoXCIjYmxvY2stc3R5bGVzXCIpLnJlbW92ZSgpO1xyXG5cdFx0XHRcdFx0JChcIjxzdHlsZSBpZD0nYmxvY2stc3R5bGVzJz5cIikudGV4dChvYmpUb0NzcyhibG9ja1N0eWxlcykpLmFwcGVuZFRvKFwiaGVhZFwiKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1lbHNle1xyXG5cdFx0XHRcdGJsb2NrU3R5bGVzW2AubWF0aC1ibG9jay0ke2lkfWBdID0ge1xyXG5cdFx0XHRcdFx0W2tleV06dmFsdWUsXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHNhdmVUb0ZpbGUoXCJibG9jay1zdHlsZXNcIixKU09OLnN0cmluZ2lmeShibG9ja1N0eWxlcyksXCJibG9jay1kYXRhXCIpO1xyXG5cdFx0XHRcdCQoXCIjYmxvY2stc3R5bGVzXCIpLnJlbW92ZSgpO1xyXG5cdFx0XHRcdCQoXCI8c3R5bGUgaWQ9J2Jsb2NrLXN0eWxlcyc+XCIpLnRleHQob2JqVG9Dc3MoYmxvY2tTdHlsZXMpKS5hcHBlbmRUbyhcImhlYWRcIik7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblxyXG5cdFx0JChmdW5jdGlvbigpIHtcclxuXHRcdFx0bGV0IGxhc3RIZWlnaHQgPSAwO1xyXG5cdFx0XHRpZihsaXZlUHJldmlld0VuYWJsZWQpe1xyXG5cdFx0XHRcdCQoXCJib2R5XCIpLm9uKCdET01TdWJ0cmVlTW9kaWZpZWQnLCBcIi5IeXBlck1ELWNvZGVibG9ja1wiLCBmdW5jdGlvbigpe1xyXG5cdFx0XHRcdFx0Y3JlYXRlVmlld2VyKG9wZXJhdG9ycyk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcclxuXHRcdFx0XHQkKFwiYm9keVwiKS5vbignRE9NTm9kZUluc2VydGVkJywgXCIuY20tcHJldmlldy1jb2RlLWJsb2NrLmNtLWVtYmVkLWJsb2NrLm1hcmtkb3duLXJlbmRlcmVkXCIsIHJlbW92ZVZpZXdlcik7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYoZm9ybWF0dGluZ0hpZGRlbikge1xyXG5cdFx0XHRcdCQoXCJib2R5XCIpLm9uKCdET01Ob2RlSW5zZXJ0ZWQnLCBcIi5IeXBlck1ELWNvZGVibG9ja1wiLCBoaWRlTWV0YURhdGEpO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmKGlkSGlkZGVuKSB7XHJcblx0XHRcdFx0JChcImJvZHlcIikub24oJ0RPTU5vZGVJbnNlcnRlZCcsIFwiLkh5cGVyTUQtY29kZWJsb2NrXCIsIGhpZGVJZCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCQoXCJib2R5XCIpLm9uKFwibW91c2Vkb3duXCIsIFwiLmJsb2NrLWxhbmd1YWdlLW1hdGhcIiwgZnVuY3Rpb24oKXtcclxuXHRcdFx0XHRsYXN0SGVpZ2h0PSQodGhpcykuaGVpZ2h0KCk7XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdFx0JChcImJvZHlcIikub24oXCJtb3VzZXVwXCIsIFwiLmJsb2NrLWxhbmd1YWdlLW1hdGhcIiwgZnVuY3Rpb24oKXtcclxuXHRcdFx0XHQvLyBpZigkKHRoaXMpLmhlaWdodCgpPD1wYXJzZUZsb2F0KCQodGhpcykuY3NzKFwibWluLWhlaWdodFwiKSkpe1xyXG5cdFx0XHRcdC8vIFx0JCh0aGlzKS5jc3MoXCJtaW4taGVpZ2h0XCIsMCk7XHJcblx0XHRcdFx0Ly8gfVxyXG5cdFx0XHRcdGlmKGxhc3RIZWlnaHQhPT0kKHRoaXMpLmhlaWdodCgpKXtcclxuXHRcdFx0XHRcdGNvbnN0IGlkPSQodGhpcykuYXR0cignY2xhc3MnKS5tYXRjaCgvbWF0aC1ibG9jay1bMC05XSsvZ20pWzBdLnJlcGxhY2UoL21hdGgtYmxvY2stL2dtLFwiXCIpO1xyXG5cdFx0XHRcdFx0dXBkYXRlQmxvY2tTdHlsZShpZCxcImhlaWdodFwiLGAkeyQodGhpcykuaGVpZ2h0KCl9cHhgKTtcclxuXHRcdFx0XHRcdCQodGhpcykuYWRkQ2xhc3MoXCJ1c2VyLXNpemVkXCIpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHRcdC8vICQoXCJib2R5XCIpLm9uKCdET01Ob2RlSW5zZXJ0ZWQnLCBcIi5IeXBlck1ELWNvZGVibG9ja1wiLCBmdW5jdGlvbigpIHtcclxuXHRcdFx0Ly8gXHRpZigkKFwiLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luXCIpLnRleHQoKT09PVwiYGBgbWF0aFwiKSB7XHJcblx0XHRcdC8vIFx0XHRsZXQgbGl2ZVByZXZQbHVzID0gJChcIi5saXZlUHJldlBsdXNcIik7XHJcblx0XHRcdC8vIFx0XHRpZigkKFwiLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luXCIpLmxlbmd0aDwxICYmIGxpdmVQcmV2UGx1cy5sZW5ndGg+MCkge1xyXG5cdFx0XHQvLyBcdFx0XHRsaXZlUHJldlBsdXMucGFyZW50cyhcIi5jbS1odG1sLWVtYmVkXCIpLnJlbW92ZSgpXHJcblx0XHRcdC8vIFx0XHR9XHJcblx0XHRcdC8vIFx0XHR1cGRhdGVMYXRleFZpZXdlcigpO1xyXG5cdFx0XHQvLyBcdH1cclxuXHRcdFx0Ly8gfSk7XHJcblx0XHRcdC8vICQoXCJib2R5XCIpLm9uKCdET01TdWJ0cmVlTW9kaWZpZWQnLCBmdW5jdGlvbigpIHtcclxuXHRcdFx0Ly8gXHRsZXQgbGl2ZVByZXZQbHVzID0gJChcIi5saXZlUHJldlBsdXNcIik7XHJcblx0XHRcdC8vIFx0aWYoJChcIi5IeXBlck1ELWNvZGVibG9jay1iZWdpblwiKS5sZW5ndGg8MSAmJiBsaXZlUHJldlBsdXMubGVuZ3RoPjApIHtcclxuXHRcdFx0Ly8gXHRcdGxpdmVQcmV2UGx1cy5wYXJlbnRzKFwiLmNtLWh0bWwtZW1iZWRcIikucHJldigpLnJlbW92ZSgpO1xyXG5cdFx0XHQvLyBcdFx0bGl2ZVByZXZQbHVzLnBhcmVudHMoXCIuY20taHRtbC1lbWJlZFwiKS5yZW1vdmUoKTtcclxuXHRcdFx0Ly8gXHR9XHJcblx0XHRcdC8vIH0pO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5yZWdpc3Rlck1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yKFwibWF0aFwiLCBhc3luYyAoc291cmNlLCBlbCwgY3R4KSA9PiB7XHJcblx0XHRcdGNvbnN0IHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcclxuXHRcdFx0Y29uc3QgdmF1bHQgPSB0aGlzLmFwcC52YXVsdDtcclxuXHRcdFx0Y29uc3QgYWRhcHRlciA9IHZhdWx0LmFkYXB0ZXI7XHJcblxyXG5cdFx0XHRjb25zdCBzYXZlVG9GaWxlID0gYXN5bmMgKGZpbGVOYW1lOnN0cmluZywgZGF0YTpzdHJpbmcsIGRpcmVjdG9yeTpzdHJpbmcsIGNsb3NlRHJhd2luZz10cnVlKSA9PiB7XHJcblx0XHRcdFx0bGV0IGRpcmVjdG9yeVBhdGggPSBwbHVnaW5QYXRoK2RpcmVjdG9yeTtcclxuXHRcdFx0XHQvLyBJZiB0aGUgZHJhd2luZ3MgZGlyZWN0b3J5IGlzbid0IHRoZXJlLCBtYWtlIGl0XHJcblx0XHRcdFx0aWYoIWF3YWl0IGFkYXB0ZXIuZXhpc3RzKGRpcmVjdG9yeVBhdGgpKXtcclxuXHRcdFx0XHRcdGF3YWl0IGFkYXB0ZXIubWtkaXIoZGlyZWN0b3J5UGF0aCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGNvbnN0IGNvbmZpZ1BhdGggPSBgJHtwbHVnaW5QYXRofSR7ZGlyZWN0b3J5fS8ke2ZpbGVOYW1lfWA7XHJcblx0XHRcdFx0aWYoYXdhaXQgYWRhcHRlci5leGlzdHMoY29uZmlnUGF0aCkpe1xyXG5cdFx0XHRcdFx0YXdhaXQgYWRhcHRlci53cml0ZShjb25maWdQYXRoLGRhdGEpO1xyXG5cdFx0XHRcdH1lbHNle1xyXG5cdFx0XHRcdFx0YXdhaXQgdmF1bHQuY3JlYXRlKGNvbmZpZ1BhdGgsZGF0YSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmKGF3YWl0IGFkYXB0ZXIuZXhpc3RzKGNvbmZpZ1BhdGgpKXtcclxuXHRcdFx0XHRcdGlmKGNsb3NlRHJhd2luZyl7XHJcblx0XHRcdFx0XHRcdGxldCBzdmdEYXRhID0gYXdhaXQgYWRhcHRlci5yZWFkKGNvbmZpZ1BhdGgpO1xyXG5cdFx0XHRcdFx0XHRlbC5xdWVyeVNlbGVjdG9yKFwiLmV4Y2FsaWRyYXctY2FudmFzLXdyYXBwZXJcIikucmVwbGFjZVdpdGgocGFyc2VyLnBhcnNlRnJvbVN0cmluZyhgPGRpdiBjbGFzcz1cIm1hdGgtc3ZnLXdyYXBwZXJcIiBzdHlsZT1cIndpZHRoOiR7KGVsLnF1ZXJ5U2VsZWN0b3IoXCJtangtY29udGFpbmVyIG1qeC1tYXRoXCIpLmNsaWVudFdpZHRoP2VsLnF1ZXJ5U2VsZWN0b3IoXCJtangtY29udGFpbmVyIG1qeC1tYXRoXCIpLmNsaWVudFdpZHRoK1wicHhcIjpcIjEwMCVcIil9O1wiPiR7c3ZnRGF0YS5yZXBsYWNlKC92aWV3Qm94PVwiWzAtOSAuXStcIi8sXCJcIil9PC9kaXY+YCwgXCJ0ZXh0L2h0bWxcIikuYm9keS5xdWVyeVNlbGVjdG9yKFwiZGl2XCIpKTtcclxuXHRcdFx0XHRcdFx0ZHJhd0J1dHRvbi5zaG93KCk7XHJcblx0XHRcdFx0XHRcdGRvbmVCdXR0b24uaGlkZSgpO1xyXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiU2F2ZWRcIik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRjb25zdCByZWFkRmlsZSA9IGFzeW5jIChmaWxlTmFtZTpzdHJpbmcsIGRpcmVjdG9yeTpzdHJpbmcpID0+IHtcclxuXHRcdFx0XHRjb25zdCBjb25maWdQYXRoID0gYCR7cGx1Z2luUGF0aH0ke2RpcmVjdG9yeX0vJHtmaWxlTmFtZX1gO1xyXG5cdFx0XHRcdGlmKGF3YWl0IGFkYXB0ZXIuZXhpc3RzKGNvbmZpZ1BhdGgpKXtcclxuXHRcdFx0XHRcdHJldHVybiBhd2FpdCBhZGFwdGVyLnJlYWQoY29uZmlnUGF0aCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiBudWxsXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIFBhcnNlIEVxdWF0aW9uXHJcblx0XHRcdGxldCByYXdFcXUgPSBzb3VyY2UucmVwbGFjZSgvXFx8XFx8LitcXHxcXHxcXG4qL2dtLFwiXCIpLnJlcGxhY2UoLyUzNG8uKyUzNGNcXG4qL2dtLFwiXCIpOztcclxuXHRcdFx0bGV0IGVxdSA9IGZvcm1hdEVxdWF0aW9uKHJhd0VxdSwgb3BlcmF0b3JzKTtcclxuXHJcblx0XHRcdC8vIFJlbmRlciBFcXVhdGlvblxyXG5cdFx0XHRlbC5hcHBlbmQocmVuZGVyTWF0aChlcXUsIHRydWUpKTtcclxuXHRcdFx0YXdhaXQgZmluaXNoUmVuZGVyTWF0aCgpO1xyXG5cclxuXHRcdFx0Ly8gUmVuZGVyIEV4Y2FsaWRyYXdcclxuXHRcdFx0bGV0IGJsb2NrT3B0aW9ucyA9IHNvdXJjZS5tYXRjaCgvXFx8XFx8LitcXHxcXHwvZ20pP0pTT04ucGFyc2Uoc291cmNlLm1hdGNoKC9cXHxcXHwuK1xcfFxcfC9nbSlbMF0ucmVwbGFjZSgvXFx8XFx8L2dtLFwiXCIpKTpudWxsO1xyXG5cdFx0XHRsZXQgYmxvY2tJZDogbnVtYmVyO1xyXG5cdFx0XHRpZihibG9ja09wdGlvbnMpIHtcclxuXHRcdFx0XHRibG9ja0lkID0gYmxvY2tPcHRpb25zLmlkO1xyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnN0IGNvbmZpZ1BhdGggPSBgJHtwbHVnaW5QYXRofWRyYXdpbmdzL2RhdGEtJHtibG9ja0lkfS5zdmdgO1xyXG5cdFx0XHRpZihhd2FpdCBhZGFwdGVyLmV4aXN0cyhjb25maWdQYXRoKSl7XHJcblx0XHRcdFx0bGV0IHN2Z0RhdGEgPSBhd2FpdCBhZGFwdGVyLnJlYWQoY29uZmlnUGF0aCk7XHJcblx0XHRcdFx0ZWwuYXBwZW5kKHBhcnNlci5wYXJzZUZyb21TdHJpbmcoYDxkaXYgY2xhc3M9XCJtYXRoLXN2Zy13cmFwcGVyXCIgc3R5bGU9XCJ3aWR0aDokeyhlbC5xdWVyeVNlbGVjdG9yKFwibWp4LWNvbnRhaW5lciBtangtbWF0aFwiKS5jbGllbnRXaWR0aD9lbC5xdWVyeVNlbGVjdG9yKFwibWp4LWNvbnRhaW5lciBtangtbWF0aFwiKS5jbGllbnRXaWR0aCtcInB4XCI6XCIxMDAlXCIpfTtcIj4ke3N2Z0RhdGEucmVwbGFjZSgvdmlld0JveD1cIlswLTkgLl0rXCIvLFwiXCIpfTwvZGl2PmAsIFwidGV4dC9odG1sXCIpLmJvZHkucXVlcnlTZWxlY3RvcihcImRpdlwiKSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIGFkZCBpZCBjbGFzcyB0byBibG9ja1xyXG5cdFx0XHRlbC5hZGRDbGFzcyhcIm1hdGgtYmxvY2stXCIrYmxvY2tJZCk7XHJcblxyXG5cdFx0XHQvLyBoaWRlIHNuYXAgYnV0dG9uIGlmIGZpdCBjb250ZW50XHJcblx0XHRcdGlmKGJsb2NrU3R5bGVzLmhhc093blByb3BlcnR5KGAubWF0aC1ibG9jay0ke2Jsb2NrSWR9YCkpe1xyXG5cdFx0XHRcdGlmKGJsb2NrU3R5bGVzW2AubWF0aC1ibG9jay0ke2Jsb2NrSWR9YF1bXCJoZWlnaHRcIl0hPT1cImZpdC1jb250ZW50XCIpe1xyXG5cdFx0XHRcdFx0ZWwuYWRkQ2xhc3MoXCJ1c2VyLXNpemVkXCIpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gSGlkZSBCdXR0b25zXHJcblx0XHRcdHRoaXMuc2V0dGluZ3MubG9ja1Zpc2FibGU/bnVsbDplbC5hZGRDbGFzcyhcIm5vLWxvY2tcIik7XHJcblx0XHRcdHRoaXMuc2V0dGluZ3Muc2VsZWN0VmlzYWJsZT9udWxsOmVsLmFkZENsYXNzKFwibm8tc2VsZWN0XCIpO1xyXG5cdFx0XHR0aGlzLnNldHRpbmdzLnJlY3RWaXNhYmxlP251bGw6ZWwuYWRkQ2xhc3MoXCJuby1yZWN0XCIpO1xyXG5cdFx0XHR0aGlzLnNldHRpbmdzLmRpYW1vbmRWaXNhYmxlP251bGw6ZWwuYWRkQ2xhc3MoXCJuby1kaWFtb25kXCIpO1xyXG5cdFx0XHR0aGlzLnNldHRpbmdzLmVsbGlwc2VWaXNhYmxlP251bGw6ZWwuYWRkQ2xhc3MoXCJuby1lbGxpcHNlXCIpO1xyXG5cdFx0XHR0aGlzLnNldHRpbmdzLmFycm93VmlzYWJsZT9udWxsOmVsLmFkZENsYXNzKFwibm8tYXJyb3dcIik7XHJcblx0XHRcdHRoaXMuc2V0dGluZ3MubGluZVZpc2FibGU/bnVsbDplbC5hZGRDbGFzcyhcIm5vLWxpbmVcIik7XHJcblx0XHRcdHRoaXMuc2V0dGluZ3MucGVuVmlzYWJsZT9udWxsOmVsLmFkZENsYXNzKFwibm8tcGVuXCIpO1xyXG5cdFx0XHR0aGlzLnNldHRpbmdzLnRleHRWaXNhYmxlP251bGw6ZWwuYWRkQ2xhc3MoXCJuby10ZXh0XCIpO1xyXG5cclxuXHRcdFx0Ly8gU2V0IE1hdGggQmxvY2sgTWluaW11bSBIZWlnaHRcclxuXHRcdFx0ZWwuYWRkQ2xhc3MoYG1pbi1oZWlnaHQtdHJ1ZWApO1xyXG5cclxuXHJcblx0XHRcdC8vIEFkZCBidXR0b24gZ3JvdXBcclxuXHRcdFx0Y29uc3QgZWRpdEJ1dHRvbkdyb3VwID0gZWwuY3JlYXRlRWwoXCJkaXZcIix7IGNsczogXCJtYXRoLWJ1dHRvbi1ncm91cFwifSk7XHJcblxyXG5cdFx0XHQvLyBBZGQgQ29weSBMYVRleCBCdXR0b25cclxuXHRcdFx0Y29uc3QgY29weUljb24gPSBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIiBjbGFzcz1cImJsb2NrLWJ1dHRvblwiPjwhLS0hIEZvbnQgQXdlc29tZSBQcm8gNi4xLjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UgKENvbW1lcmNpYWwgTGljZW5zZSkgQ29weXJpZ2h0IDIwMjIgRm9udGljb25zLCBJbmMuIC0tPjxwYXRoIGQ9XCJNMzg0IDk2TDM4NCAwaC0xMTJjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2Mjg4YzAgMjYuNTEgMjEuNDkgNDggNDggNDhINDY0YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMTI4aC05NS4xQzM5OC40IDEyOCAzODQgMTEzLjYgMzg0IDk2ek00MTYgMHY5Nmg5Nkw0MTYgMHpNMTkyIDM1MlYxMjhoLTE0NGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYyODhjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgxOTJjMjYuNTEgMCA0OC0yMS40OSA0OC00OEwyODggNDE2aC0zMkMyMjAuNyA0MTYgMTkyIDM4Ny4zIDE5MiAzNTJ6XCIvPjwvc3ZnPmAsICd0ZXh0L2h0bWwnKTtcclxuXHRcdFx0Y29uc3QgY29weUJ1dHRvbiA9IGVkaXRCdXR0b25Hcm91cC5jcmVhdGVFbChcImRpdlwiLHsgY2xzOiBcIm1hdGgtYnV0dG9uXCJ9KTtcclxuXHRcdFx0Y29weUJ1dHRvbi5hcHBlbmQoY29weUljb24uYm9keS5xdWVyeVNlbGVjdG9yKFwic3ZnXCIpKTtcclxuXHRcdFx0Y29weUJ1dHRvbi5zZXRBdHRyKFwiYXJpYS1sYWJlbFwiLFwiQ29weSBhcyBMYVRleFwiKTtcclxuXHRcdFx0Y29weUJ1dHRvbi5vbkNsaWNrRXZlbnQoKCk9PntcclxuXHRcdFx0XHRuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChlcXUpO1xyXG5cdFx0XHRcdG5ldyBOb3RpY2UoJ0Jsb2NrIENvcGllZCcpO1xyXG5cdFx0XHR9KTtcclxuXHJcblx0XHRcdC8vIEFkZCBEcmF3IEJ1dHRvblxyXG5cdFx0XHRjb25zdCBkcmF3SWNvbiA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTEyIDUxMlwiPjwhLS0hIEZvbnQgQXdlc29tZSBQcm8gNi4xLjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UgKENvbW1lcmNpYWwgTGljZW5zZSkgQ29weXJpZ2h0IDIwMjIgRm9udGljb25zLCBJbmMuIC0tPjxwYXRoIGQ9XCJNMzYyLjcgMTkuMzJDMzg3LjctNS42NzggNDI4LjMtNS42NzggNDUzLjMgMTkuMzJMNDkyLjcgNTguNzVDNTE3LjcgODMuNzQgNTE3LjcgMTI0LjMgNDkyLjcgMTQ5LjNMNDQ0LjMgMTk3LjdMMzE0LjMgNjcuNzJMMzYyLjcgMTkuMzJ6TTQyMS43IDIyMC4zTDE4OC41IDQ1My40QzE3OC4xIDQ2My44IDE2NS4yIDQ3MS41IDE1MS4xIDQ3NS42TDMwLjc3IDUxMUMyMi4zNSA1MTMuNSAxMy4yNCA1MTEuMiA3LjAzIDUwNC4xQy44MTk4IDQ5OC44LTEuNTAyIDQ4OS43IC45NzYgNDgxLjJMMzYuMzcgMzYwLjlDNDAuNTMgMzQ2LjggNDguMTYgMzMzLjkgNTguNTcgMzIzLjVMMjkxLjcgOTAuMzRMNDIxLjcgMjIwLjN6XCIvPjwvc3ZnPmAsXCJ0ZXh0L2h0bWxcIilcclxuXHRcdFx0Y29uc3QgZHJhd0J1dHRvbiA9IGVkaXRCdXR0b25Hcm91cC5jcmVhdGVFbChcImRpdlwiLHsgY2xzOiBcIm1hdGgtYnV0dG9uXCJ9KTtcclxuXHJcblx0XHRcdC8vIEFkZCBEb25lIEJ1dHRvblxyXG5cdFx0XHRjb25zdCBkb25lSWNvbiA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNDQ4IDUxMlwiPjwhLS0hIEZvbnQgQXdlc29tZSBQcm8gNi4xLjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UgKENvbW1lcmNpYWwgTGljZW5zZSkgQ29weXJpZ2h0IDIwMjIgRm9udGljb25zLCBJbmMuIC0tPjxwYXRoIGQ9XCJNNDM4LjYgMTA1LjRDNDUxLjEgMTE3LjkgNDUxLjEgMTM4LjEgNDM4LjYgMTUwLjZMMTgyLjYgNDA2LjZDMTcwLjEgNDE5LjEgMTQ5LjkgNDE5LjEgMTM3LjQgNDA2LjZMOS4zNzIgMjc4LjZDLTMuMTI0IDI2Ni4xLTMuMTI0IDI0NS45IDkuMzcyIDIzMy40QzIxLjg3IDIyMC45IDQyLjEzIDIyMC45IDU0LjYzIDIzMy40TDE1OS4xIDMzOC43TDM5My40IDEwNS40QzQwNS45IDkyLjg4IDQyNi4xIDkyLjg4IDQzOC42IDEwNS40SDQzOC42elwiLz48L3N2Zz5gLFwidGV4dC9odG1sXCIpXHJcblx0XHRcdGNvbnN0IGRvbmVCdXR0b24gPSBlZGl0QnV0dG9uR3JvdXAuY3JlYXRlRWwoXCJkaXZcIix7IGNsczogXCJtYXRoLWJ1dHRvblwifSk7XHJcblxyXG5cdFx0XHQvLyBBZGQgU25hcCBCdXR0b25cclxuXHRcdFx0Y29uc3QgcmVzaXplSWNvbiA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNDQ4IDUxMlwiPjwhLS0hIEZvbnQgQXdlc29tZSBQcm8gNi4xLjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UgKENvbW1lcmNpYWwgTGljZW5zZSkgQ29weXJpZ2h0IDIwMjIgRm9udGljb25zLCBJbmMuIC0tPjxwYXRoIGQ9XCJNMTI4IDMyMEgzMmMtMTcuNjkgMC0zMiAxNC4zMS0zMiAzMnMxNC4zMSAzMiAzMiAzMmg2NHY2NGMwIDE3LjY5IDE0LjMxIDMyIDMyIDMyczMyLTE0LjMxIDMyLTMydi05NkMxNjAgMzM0LjMgMTQ1LjcgMzIwIDEyOCAzMjB6TTQxNiAzMjBoLTk2Yy0xNy42OSAwLTMyIDE0LjMxLTMyIDMydjk2YzAgMTcuNjkgMTQuMzEgMzIgMzIgMzJzMzItMTQuMzEgMzItMzJ2LTY0aDY0YzE3LjY5IDAgMzItMTQuMzEgMzItMzJTNDMzLjcgMzIwIDQxNiAzMjB6TTMyMCAxOTJoOTZjMTcuNjkgMCAzMi0xNC4zMSAzMi0zMnMtMTQuMzEtMzItMzItMzJoLTY0VjY0YzAtMTcuNjktMTQuMzEtMzItMzItMzJzLTMyIDE0LjMxLTMyIDMydjk2QzI4OCAxNzcuNyAzMDIuMyAxOTIgMzIwIDE5MnpNMTI4IDMyQzExMC4zIDMyIDk2IDQ2LjMxIDk2IDY0djY0SDMyQzE0LjMxIDEyOCAwIDE0Mi4zIDAgMTYwczE0LjMxIDMyIDMyIDMyaDk2YzE3LjY5IDAgMzItMTQuMzEgMzItMzJWNjRDMTYwIDQ2LjMxIDE0NS43IDMyIDEyOCAzMnpcIi8+PC9zdmc+YCwgJ3RleHQvaHRtbCcpO1xyXG5cdFx0XHRjb25zdCByZXNpemVCdXR0b24gPSBlZGl0QnV0dG9uR3JvdXAuY3JlYXRlRWwoXCJkaXZcIix7IGNsczogXCJtYXRoLWJ1dHRvbiBzbmFwLWJ1dHRvblwifSk7XHJcblx0XHRcdHJlc2l6ZUJ1dHRvbi5hcHBlbmQocmVzaXplSWNvbi5ib2R5LnF1ZXJ5U2VsZWN0b3IoXCJzdmdcIikpO1xyXG5cdFx0XHRyZXNpemVCdXR0b24uc2V0QXR0cihcImFyaWEtbGFiZWxcIixcIlNuYXAgdG8gTGFUZXhcIik7XHJcblx0XHRcdHJlc2l6ZUJ1dHRvbi5vbkNsaWNrRXZlbnQoKCk9PntcclxuXHRcdFx0XHQvLyBlbC5zdHlsZS5taW5IZWlnaHQ9bnVsbDtcclxuXHRcdFx0XHRlbC5zdHlsZS5oZWlnaHQ9XCJmaXQtY29udGVudFwiO1xyXG5cdFx0XHRcdGVsLnJlbW92ZUNsYXNzKFwidXNlci1zaXplZFwiKTtcclxuXHRcdFx0XHR1cGRhdGVCbG9ja1N0eWxlKGAke2Jsb2NrSWR9YCxcImhlaWdodFwiLGBmaXQtY29udGVudGApXHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdFx0Ly8gQWRkIERyYXcgQnV0dG9uIE9uY2xpY2tcclxuXHRcdFx0ZHJhd0J1dHRvbi5hcHBlbmQoZHJhd0ljb24uYm9keS5xdWVyeVNlbGVjdG9yKFwic3ZnXCIpKTtcclxuXHRcdFx0ZHJhd0J1dHRvbi5zZXRBdHRyKFwiYXJpYS1sYWJlbFwiLFwiRHJhdyBvbiBCbG9ja1wiKTtcclxuXHRcdFx0ZHJhd0J1dHRvbi5vbkNsaWNrRXZlbnQoYXN5bmMgKCk9PntcclxuXHRcdFx0XHRjb25zdCB3cmFwcGVyID0gZWwuY3JlYXRlRWwoXCJkaXZcIix7Y2xzOlwiZXhjYWxpZHJhdy1jYW52YXMtd3JhcHBlclwifSk7XHJcblx0XHRcdFx0ZWwuYWRkQ2xhc3MoXCJlZGl0aW5nXCIpO1xyXG5cdFx0XHRcdGVsLnNjcm9sbExlZnQ9MDtcclxuXHRcdFx0XHRpZihlbC5jbGllbnRIZWlnaHQ8PXBhcnNlSW50KHRoaXMuc2V0dGluZ3MubWluSGVpZ2h0KSl7XHJcblx0XHRcdFx0XHRlbC5hZGRDbGFzcyhcInNtYWxsLW1hdGgtYmxvY2tcIilcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5zZXR0aW5ncy5jb2xvclBpY2tlcj9udWxsOndyYXBwZXIuYWRkQ2xhc3MoXCJoaWRkZW4tY29sb3ItcGlja2VyXCIpO1xyXG5cdFx0XHRcdGxldCBkYXRhID0gIGF3YWl0IHJlYWRGaWxlKFwiZGF0YS1cIitibG9ja0lkK1wiLmpzb25cIiwgXCJleGNhbGlkcmF3LWZpbGVzXCIpO1xyXG5cdFx0XHRcdHJlbmRlckNhbnZhcyh3cmFwcGVyLCBibG9ja0lkLCBzYXZlVG9GaWxlLCB0aGlzLnNldHRpbmdzLmdyaWRNb2RlRW5kYWJsZWQsIFt0aGlzLnNldHRpbmdzLmNvbG9yMSx0aGlzLnNldHRpbmdzLmNvbG9yMix0aGlzLnNldHRpbmdzLmNvbG9yM10scmVhZEZpbGUsZGF0YSk7XHJcblx0XHRcdFx0bGV0IHN2Z1dyYXBwZXIgPSBlbC5xdWVyeVNlbGVjdG9yKFwiLm1hdGgtc3ZnLXdyYXBwZXJcIikgYXMgSFRNTEVsZW1lbnQ7XHJcblx0XHRcdFx0aWYoc3ZnV3JhcHBlcil7XHJcblx0XHRcdFx0XHRzdmdXcmFwcGVyLnJlbW92ZSgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRkcmF3QnV0dG9uLmhpZGUoKTtcclxuXHRcdFx0XHRkb25lQnV0dG9uLnNob3coKTtcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHQvLyBBZGQgZG9uZSBCdXR0b24gT25jbGlja1xyXG5cdFx0XHRkb25lQnV0dG9uLmFwcGVuZChkb25lSWNvbi5ib2R5LnF1ZXJ5U2VsZWN0b3IoXCJzdmdcIikpO1xyXG5cdFx0XHRkb25lQnV0dG9uLnNldEF0dHIoXCJhcmlhLWxhYmVsXCIsXCJTYXZlIERyYXdpbmdcIik7XHJcblx0XHRcdGRvbmVCdXR0b24ub25DbGlja0V2ZW50KGFzeW5jICgpPT57XHJcblx0XHRcdFx0bGV0IHNhdmVCdXR0b24gPSBlbC5xdWVyeVNlbGVjdG9yKFwiLm1hdGgtc2F2ZS1idXR0b25cIikgYXMgSFRNTEVsZW1lbnQ7XHJcblx0XHRcdFx0ZWwucmVtb3ZlQ2xhc3MoXCJlZGl0aW5nXCIpO1xyXG5cdFx0XHRcdGlmKHNhdmVCdXR0b24pIHtcclxuXHRcdFx0XHRcdHNhdmVCdXR0b24uY2xpY2soKTtcclxuXHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdGxldCBzdmdEYXRhID0gYXdhaXQgYWRhcHRlci5yZWFkKGNvbmZpZ1BhdGgpO1xyXG5cdFx0XHRcdFx0ZWwucXVlcnlTZWxlY3RvcihcIi5leGNhbGlkcmF3LWNhbnZhcy13cmFwcGVyXCIpLnJlcGxhY2VXaXRoKHBhcnNlci5wYXJzZUZyb21TdHJpbmcoYDxkaXYgY2xhc3M9XCJtYXRoLXN2Zy13cmFwcGVyXCIgc3R5bGU9XCJ3aWR0aDokeyhlbC5xdWVyeVNlbGVjdG9yKFwibWp4LWNvbnRhaW5lciBtangtbWF0aFwiKS5jbGllbnRXaWR0aD9lbC5xdWVyeVNlbGVjdG9yKFwibWp4LWNvbnRhaW5lciBtangtbWF0aFwiKS5jbGllbnRXaWR0aCtcInB4XCI6XCIxMDAlXCIpfTtcIj4ke3N2Z0RhdGEucmVwbGFjZSgvdmlld0JveD1cIlswLTkgLl0rXCIvLFwiXCIpfTwvZGl2PmAsIFwidGV4dC9odG1sXCIpLmJvZHkucXVlcnlTZWxlY3RvcihcImRpdlwiKSk7XHJcblx0XHRcdFx0XHRkcmF3QnV0dG9uLnNob3coKTtcclxuXHRcdFx0XHRcdGRvbmVCdXR0b24uaGlkZSgpO1xyXG5cdFx0XHRcdFx0bmV3IE5vdGljZShcIlNhdmVkXCIpO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdFx0ZG9uZUJ1dHRvbi5oaWRlKCk7XHJcbiAgICB9KTtcclxuXHJcblx0XHQvLyBBZGQgaW5zZXJ0IG1hdGggYmxvY2sgY29tbWFuZFxyXG5cdFx0dGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6IFwiaW5zZXJ0LW1hdGgtYmxvY2tcIixcclxuICAgICAgbmFtZTogXCJJbnNlcnQgbWF0aCBibG9ja1wiLFxyXG5cdFx0XHRob3RrZXlzOiBbeyBtb2RpZmllcnM6IFtcIk1vZFwiXSwga2V5OiBcIm1cIiB9XSxcclxuICAgICAgZWRpdG9yQ2FsbGJhY2s6IChlZGl0b3I6IEVkaXRvcikgPT4ge1xyXG5cdFx0XHRcdGxldCBpZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpO1xyXG4gICAgICAgIGVkaXRvci5yZXBsYWNlUmFuZ2UoXCJgYGBtYXRoXFxuXCIrKHRoaXMuc2V0dGluZ3MuYWRkRG9sbGFycz9cIiUzNG8kJCUzNGNcXG5cIjpcIlwiKStcInx8e1xcXCJpZFxcXCI6XCIraWQrXCJ9fHxcXG5cXG5cXG5cIisodGhpcy5zZXR0aW5ncy5hZGREb2xsYXJzP1wiJTM0byQkJTM0Y1xcblwiOlwiXCIpK1wiYGBgXFxuXCIsIGVkaXRvci5nZXRDdXJzb3IoKSk7XHJcblx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcihlZGl0b3IuZ2V0Q3Vyc29yKCkubGluZSszKyh0aGlzLnNldHRpbmdzLmFkZERvbGxhcnM/MTowKSk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcblx0XHQvLyBUaGlzIGFkZHMgYSBzZXR0aW5ncyB0YWIgc28gdGhlIHVzZXIgY2FuIGNvbmZpZ3VyZSB2YXJpb3VzIGFzcGVjdHMgb2YgdGhlIHBsdWdpblxyXG5cdFx0dGhpcy5hZGRTZXR0aW5nVGFiKG5ldyBNYXRoUGx1c1NldHRpbmdUYWIodGhpcy5hcHAsIHRoaXMpKTtcclxuXHR9XHJcblxyXG5cdG9udW5sb2FkKCkge1xyXG5cdFx0JChcImJvZHlcIikub2ZmKCdET01TdWJ0cmVlTW9kaWZpZWQnLCBcIi5IeXBlck1ELWNvZGVibG9ja1wiKTtcclxuXHJcblx0XHQkKFwiYm9keVwiKS5vZmYoJ0RPTU5vZGVJbnNlcnRlZCcsIFwiLmNtLXByZXZpZXctY29kZS1ibG9jay5jbS1lbWJlZC1ibG9jay5tYXJrZG93bi1yZW5kZXJlZFwiLCByZW1vdmVWaWV3ZXIpO1xyXG5cclxuXHRcdCQoXCJib2R5XCIpLm9mZignRE9NTm9kZUluc2VydGVkJywgXCIuSHlwZXJNRC1jb2RlYmxvY2tcIiwgaGlkZU1ldGFEYXRhKTtcclxuXHJcblx0XHQkKFwiYm9keVwiKS5vZmYoJ0RPTU5vZGVJbnNlcnRlZCcsIFwiLkh5cGVyTUQtY29kZWJsb2NrXCIsIGhpZGVJZCk7XHJcblxyXG5cdFx0JChcImJvZHlcIikub2ZmKFwibW91c2V1cFwiLCBcIi5ibG9jay1sYW5ndWFnZS1tYXRoXCIpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgbG9hZFNldHRpbmdzKCkge1xyXG5cdFx0dGhpcy5zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfU0VUVElOR1MsIGF3YWl0IHRoaXMubG9hZERhdGEoKSk7XHJcblx0fVxyXG5cclxuXHRhc3luYyBzYXZlU2V0dGluZ3MoKSB7XHJcblx0XHRhd2FpdCB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xyXG5cdH1cclxufVxyXG5cclxuY2xhc3MgTWF0aFBsdXNTZXR0aW5nVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XHJcblx0cGx1Z2luOiBNYXRoUGx1cztcclxuXHJcblx0Y29uc3RydWN0b3IoYXBwOiBBcHAsIHBsdWdpbjogTWF0aFBsdXMpIHtcclxuXHRcdHN1cGVyKGFwcCwgcGx1Z2luKTtcclxuXHRcdHRoaXMucGx1Z2luID0gcGx1Z2luO1xyXG5cdH1cclxuXHJcblx0ZGlzcGxheSgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHtjb250YWluZXJFbH0gPSB0aGlzO1xyXG5cclxuXHRcdGNvbnRhaW5lckVsLmVtcHR5KCk7XHJcblxyXG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoJ2gyJywge3RleHQ6ICdPYnNpZGlhbiBNYXRoICsgU2V0dGluZ3MnfSk7XHJcblxyXG5cdFx0Ly8gQ3VzdG9tIFBhdGhcclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0LnNldE5hbWUoJ1NhdmUgRGF0YSBQYXRoJylcclxuXHRcdC5zZXREZXNjKFwiQ2hhbmdlIHRoZSBkZWZhdWx0IHBhdGggdG8gc2F2ZSBkcmF3aW5nIGRhdGEuXCIpXHJcblx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcclxuXHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5wYXRoKVxyXG5cdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5wYXRoID0gdmFsdWU7XHJcblx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG5cdFx0fSkpO1xyXG5cclxuXHRcdC8vIFNob3J0Y3V0c1xyXG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoJ2gzJywge3RleHQ6ICdTaG9ydGN1dHMnfSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHQuc2V0TmFtZSgnU2hvcnRjdXRzJylcclxuXHRcdC5zZXREZXNjKFwiU2hvcnRjdXRzIHRvIGJlIHBhcnNlZCB3aGVuIHdyaXRpbmcgaW4gbWF0aCBibG9ja3MuIENoZWNrIG91dCB0aGUgXCIpXHJcblx0XHQuYWRkVGV4dEFyZWEodGV4dCA9PiB0ZXh0XHJcblx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3Mub3BlcmF0b3JzKVxyXG5cdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5vcGVyYXRvcnMgPSB2YWx1ZTtcclxuXHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcblx0XHR9KSlcclxuXHRcdC5zZXRDbGFzcyhcImJpZy10ZXh0LWFyZWFcIilcclxuXHRcdC5hZGRCdXR0b24oYnV0dG9uID0+IGJ1dHRvblxyXG5cdFx0LnNldEJ1dHRvblRleHQoXCJVcGRhdGVcIilcclxuXHRcdC5vbkNsaWNrKCgpPT57XHJcblx0XHRcdHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuXHRcdH0pXHJcblx0XHQpXHJcblx0XHQuZGVzY0VsXHJcblx0XHQuY3JlYXRlRWwoJ2EnLCB7dGV4dDogJ2dpdGh1YiBSRUFETUUgJyxocmVmOlwiaHR0cHM6Ly9naXRodWIuY29tL29jYXByYXJvL29ic2lkaWFuLW1hdGgtcGx1cyNyZWFkbWVcIn0pXHJcblx0XHQucGFyZW50RWxlbWVudC5jcmVhdGVFbCgnc3BhbicsIHt0ZXh0OiAnZm9yIGEgZ3VpZGUuJ30pXHJcblx0XHQ7XHJcblxyXG5cclxuXHRcdC8vIENvbG9yc1xyXG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoJ2gzJywge3RleHQ6ICdDb2xvcnMnfSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHQuc2V0TmFtZSgnQ29sb3IgMScpXHJcblx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcclxuXHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jb2xvcjEpXHJcblx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmNvbG9yMSA9IHZhbHVlO1xyXG5cdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuXHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdC5zZXROYW1lKCdDb2xvciAyJylcclxuXHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxyXG5cdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmNvbG9yMilcclxuXHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY29sb3IyID0gdmFsdWU7XHJcblx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG5cdFx0fSkpO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0LnNldE5hbWUoJ0NvbG9yIDMnKVxyXG5cdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XHJcblx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY29sb3IzKVxyXG5cdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jb2xvcjMgPSB2YWx1ZTtcclxuXHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcblx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHQuc2V0TmFtZSgnQ29sb3IgUGlja2VyJylcclxuXHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxyXG5cdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmNvbG9yUGlja2VyKVxyXG5cdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jb2xvclBpY2tlciA9IHZhbHVlO1xyXG5cdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuXHRcdH0pKTtcclxuXHJcblxyXG5cdFx0Ly8gTWF0aCBCbG9jayBTaXplXHJcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbCgnaDMnLCB7dGV4dDogJ01hdGggQmxvY2sgU2l6ZSd9KTtcclxuXHRcdFxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHQuc2V0TmFtZSgnTWluaW11bSBCbG9jayBIZWlnaHQnKVxyXG5cdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XHJcblx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MubWluSGVpZ2h0KVxyXG5cdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5taW5IZWlnaHQgPSB2YWx1ZTtcclxuXHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcblx0XHR9KSk7XHJcblxyXG5cdFx0Ly8gTGl2ZSBQcmV2aWV3XHJcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbCgnaDMnLCB7dGV4dDogJ0xpdmUgUHJldmlldyd9KTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdC5zZXROYW1lKCdMaXZlIFByZXZpZXcgKEJldGEpJylcclxuXHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxyXG5cdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmxpdmVQcmV2aWV3KVxyXG5cdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5saXZlUHJldmlldyA9IHZhbHVlO1xyXG5cdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuXHRcdH0pKTtcclxuXHJcblx0XHQvLyBNZXRhZGF0YVxyXG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoJ2gzJywge3RleHQ6ICdNZXRhZGF0YSd9KTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdC5zZXROYW1lKCdBZGQgRG9sbGFyIFNpZ25zJylcclxuXHRcdC5zZXREZXNjKFwiV3JhcHMgdGhlIGNvZGUgYmxvY2tzIGluICQkIGZvciBjcm9zcyBwbHVnaW4gc3VwcG9ydCB3aXRoIHBsdWdpbnMgbGlrZSBcIilcclxuXHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxyXG5cdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmFkZERvbGxhcnMpXHJcblx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmFkZERvbGxhcnMgPSB2YWx1ZTtcclxuXHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcblx0XHR9KSkuZGVzY0VsLmNyZWF0ZUVsKCdhJywge3RleHQ6ICdDb21wbGV0cicsaHJlZjpcImh0dHBzOi8vb2JzaWRpYW4ubWQvcGx1Z2lucz9pZD1vYnNpZGlhbi1jb21wbGV0clwifSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHQuc2V0TmFtZSgnSGlkZSBJRCcpXHJcblx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcclxuXHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5pZEhpZGRlbilcclxuXHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuaWRIaWRkZW4gPSB2YWx1ZTtcclxuXHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcblx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHQuc2V0TmFtZSgnSGlkZSBGb3JtYXR0aW5nJylcclxuXHRcdC5zZXREZXNjKFwiSGlkZXMgZm9ybWF0dGluZyB3aXRoaW4gbWF0aCBibG9ja3NcIilcclxuXHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxyXG5cdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmZvcm1hdHRpbmdIaWRkZW4pXHJcblx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmZvcm1hdHRpbmdIaWRkZW4gPSB2YWx1ZTtcclxuXHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcblx0XHR9KSk7XHJcblxyXG5cdFx0Ly8gRXhjYWxpZHJhdyBVSVxyXG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoJ2gzJywge3RleHQ6ICdFeGNhbGlkcmF3IFVJJ30pO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0LnNldE5hbWUoJ0xvY2sgQnV0dG9uIFZpc2libGUnKVxyXG5cdFx0LnNldERlc2MoXCJLZXk6IFFcIilcclxuXHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxyXG5cdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmxvY2tWaXNhYmxlKVxyXG5cdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5sb2NrVmlzYWJsZSA9IHZhbHVlO1xyXG5cdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuXHRcdH0pKTtcclxuXHRcdFxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHQuc2V0TmFtZSgnU2VsZWN0IEJ1dHRvbiBWaXNpYmxlJylcclxuXHRcdC5zZXREZXNjKFwiS2V5czogViBvciAxXCIpXHJcblx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcclxuXHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RWaXNhYmxlKVxyXG5cdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RWaXNhYmxlID0gdmFsdWU7XHJcblx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG5cdFx0fSkpO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0LnNldE5hbWUoJ1JlY3RhbmdsZSBCdXR0b24gVmlzaWJsZScpXHJcblx0XHQuc2V0RGVzYyhcIktleXM6IFIgb3IgMlwiKVxyXG5cdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXHJcblx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MucmVjdFZpc2FibGUpXHJcblx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnJlY3RWaXNhYmxlID0gdmFsdWU7XHJcblx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG5cdFx0fSkpO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0LnNldE5hbWUoJ0RpYW1vbmQgQnV0dG9uIFZpc2libGUnKVxyXG5cdFx0LnNldERlc2MoXCJLZXlzOiBEIG9yIDNcIilcclxuXHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxyXG5cdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmRpYW1vbmRWaXNhYmxlKVxyXG5cdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5kaWFtb25kVmlzYWJsZSA9IHZhbHVlO1xyXG5cdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuXHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdC5zZXROYW1lKCdFbGxpcHNlIEJ1dHRvbiBWaXNpYmxlJylcclxuXHRcdC5zZXREZXNjKFwiS2V5czogRSBvciA0XCIpXHJcblx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcclxuXHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5lbGxpcHNlVmlzYWJsZSlcclxuXHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZWxsaXBzZVZpc2FibGUgPSB2YWx1ZTtcclxuXHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcblx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHQuc2V0TmFtZSgnQXJyb3cgQnV0dG9uIFZpc2libGUnKVxyXG5cdFx0LnNldERlc2MoXCJLZXlzOiBBIG9yIDVcIilcclxuXHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxyXG5cdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmFycm93VmlzYWJsZSlcclxuXHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuYXJyb3dWaXNhYmxlID0gdmFsdWU7XHJcblx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG5cdFx0fSkpO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0LnNldE5hbWUoJ0xpbmUgQnV0dG9uIFZpc2libGUnKVxyXG5cdFx0LnNldERlc2MoXCJLZXlzOiBQIG9yIDZcIilcclxuXHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxyXG5cdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmxpbmVWaXNhYmxlKVxyXG5cdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5saW5lVmlzYWJsZSA9IHZhbHVlO1xyXG5cdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuXHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdC5zZXROYW1lKCdEcmF3IEJ1dHRvbiBWaXNpYmxlJylcclxuXHRcdC5zZXREZXNjKFwiS2V5czogWCBvciA3XCIpXHJcblx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcclxuXHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5wZW5WaXNhYmxlKVxyXG5cdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5wZW5WaXNhYmxlID0gdmFsdWU7XHJcblx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG5cdFx0fSkpO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0LnNldE5hbWUoJ1RleHQgQnV0dG9uIFZpc2libGUnKVxyXG5cdFx0LnNldERlc2MoXCJLZXlzOiBUIG9yIDhcIilcclxuXHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxyXG5cdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLnRleHRWaXNhYmxlKVxyXG5cdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy50ZXh0VmlzYWJsZSA9IHZhbHVlO1xyXG5cdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuXHRcdH0pKTtcclxuXHJcblxyXG5cdFx0Ly8gRXhjYWxpZHJhdyBTZXR0aW5nc1xyXG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoJ2gzJywge3RleHQ6ICdFeGNhbGlkcmF3IFNldHRpbmdzJ30pO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0LnNldE5hbWUoJ0dyaWQgTW9kZScpXHJcblx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcclxuXHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5ncmlkTW9kZUVuZGFibGVkKVxyXG5cdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5ncmlkTW9kZUVuZGFibGVkID0gdmFsdWU7XHJcblx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG5cdFx0fSkpO1xyXG5cdH1cclxufVxyXG4iLCAiY29uc3QgY2xvc2VHcm91cCA9IChzdHI6IHN0cmluZywgZD0xKSA9PiB7XG4gIGxldCBvcGVuQ291bnQgPSAxO1xuICBsZXQgY2xvc2VDb3VudCA9IDA7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgKHN0ci5sZW5ndGgpOyBpKyspIHtcbiAgICBjb25zdCBjaGFyID0gc3RyLmNoYXJBdChpKTtcbiAgICBpZigoY2hhcj09PVwie1wiICYmIGQ+MCl8fCgoY2hhcj09PVwifVwiICYmIGQ8MSkpKSB7XG4gICAgICBvcGVuQ291bnQrPTE7XG4gICAgfWVsc2UgaWYoKGNoYXI9PT1cIn1cIiAmJiBkPjApfHwoKGNoYXI9PT1cIntcIiAmJiBkPDEpKSkge1xuICAgICAgY2xvc2VDb3VudCs9MTtcbiAgICB9XG4gICAgaWYob3BlbkNvdW50ID09PSBjbG9zZUNvdW50KXtcbiAgICAgIHJldHVybiBpO1xuICAgIH1cbiAgfVxuICAvLyBSZXR1cm5zIC0xIGlmIGl0IHJlYWNoZXMgZW5kIG9mIHN0cmluZyB3L28gY2xvc2luZ1xuICByZXR1cm4gLTFcbn1cblxuY29uc3QgcmVwbGFjZUFsbD0gKHN0cjogc3RyaW5nLCBmaW5kOiBzdHJpbmcsIHJlcGxhY2U6IHN0cmluZykgPT4ge1xuXHRyZXR1cm4gc3RyLnJlcGxhY2UobmV3IFJlZ0V4cChmaW5kLCAnZycpLCByZXBsYWNlKTtcbn1cblxuY29uc3QgZm9ybWF0U3RyRm9ybWF0ID0gKGZvcm1hdDogc3RyaW5nLCBzMTpzdHJpbmcsIHMyOnN0cmluZykgPT4ge1xuICBsZXQgc3RyID0gZm9ybWF0O1xuICBpZiAoc3RyLmluY2x1ZGVzKFwiJXMxJVwiKSkge1xuICAgIHN0ciA9IHN0ci5yZXBsYWNlKFwiJXMxJVwiLHMxKTtcbiAgfWVsc2V7XG4gICAgc3RyID0gczErc3RyO1xuICB9XG4gIGlmIChzdHIuaW5jbHVkZXMoXCIlczIlXCIpKSB7XG4gICAgc3RyID0gc3RyLnJlcGxhY2UoXCIlczIlXCIsczIpO1xuICB9ZWxzZXtcbiAgICBzdHIgPSBzdHIrczI7XG4gIH1cbiAgc3RyID0gcmVwbGFjZUFsbChzdHIsIFwiJWJzJVwiLFwiXFxcXFwiKVxuICByZXR1cm4gc3RyXG59XG5cbmNvbnN0IGZvcm1hdE9wZXJhdG9yID0gKHN0cjogc3RyaW5nLCBkaXJ0eU9wOiBzdHJpbmcsIHN0ckZvcm1hdDogc3RyaW5nKSA9PiB7XG4gIGxldCBzdWJzdGl0dXRlU3RyaW5nID0gc3RyO1xuICBsZXQgc3Vic3RpdHV0ZXMgPSBbXTtcbiAgbGV0IGlkID0gMDtcbiAgbGV0IG9wID0gcmVwbGFjZUFsbChkaXJ0eU9wLCBcIiVicyVcIixcIlxcXFxcIik7XG4gIGlmICgoc3Vic3RpdHV0ZVN0cmluZy5zcGxpdChvcCkubGVuZ3RoLTEpPjApe1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAvLyB0aGUgSUQgb2YgdGhlIHN1YnNpdGl0dXRlIHN0cmluZ1xuICAgICAgaWQgKz0gMTtcbiAgICAgIC8vIHRoZSBpbmRleCBvZiB0aGUgb3BlcmF0b3JcbiAgICAgIGNvbnN0IGkgPSBzdWJzdGl0dXRlU3RyaW5nLmluZGV4T2Yob3ApO1xuICAgICAgaWYoKGk+MCAmJiBpPHN1YnN0aXR1dGVTdHJpbmcubGVuZ3RoICYmICgoc3Vic3RpdHV0ZVN0cmluZy5zcGxpdChvcCkubGVuZ3RoLTEpPjApKSkge1xuICAgICAgICBpZihpZD4xMDAwMDApe1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwiVG9vIG1hbnkgb3BlcmF0b3JzL0JhZCB3aGlsZSBsb29wXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGxldCByYW5nZTEgPSBbaS0xLGldO1xuICAgICAgICBsZXQgcmFuZ2UyID0gW2krb3AubGVuZ3RoLGkrMStvcC5sZW5ndGhdO1xuICAgICAgICBpZihzdWJzdGl0dXRlU3RyaW5nLmNoYXJBdChpLTEpID09PSBcIn1cIikge1xuICAgICAgICAgIGxldCBmbGlwU3RyaW5nID0gWy4uLnN1YnN0aXR1dGVTdHJpbmddLnJldmVyc2UoKS5qb2luKCcnKTtcbiAgICAgICAgICByYW5nZTEgPSBbKGktMS1jbG9zZUdyb3VwKGZsaXBTdHJpbmcuc2xpY2UoZmxpcFN0cmluZy5sZW5ndGgtaSksMCkpLGldO1xuICAgICAgICB9XG4gICAgICAgIGlmKHN1YnN0aXR1dGVTdHJpbmcuY2hhckF0KGkrb3AubGVuZ3RoKSA9PT0gXCJ7XCIpIHtcbiAgICAgICAgICByYW5nZTIgPSBbaStvcC5sZW5ndGgsIGkrMStvcC5sZW5ndGgrY2xvc2VHcm91cChzdWJzdGl0dXRlU3RyaW5nLnNsaWNlKGkrb3AubGVuZ3RoKSldO1xuICAgICAgICB9XG4gICAgICAgIGxldCBzdWJzdGl0dXRlID0ge1xuICAgICAgICAgIGtleVN0cmluZzogYHslMzNvJHtpZH0lMzNjfWAsXG4gICAgICAgICAgZm9ybWF0dGVkU3RyOiBmb3JtYXRTdHJGb3JtYXQoc3RyRm9ybWF0LGZvcm1hdE9wZXJhdG9yKHN1YnN0aXR1dGVTdHJpbmcuc2xpY2UocmFuZ2UxWzBdLHJhbmdlMVsxXSksb3Asc3RyRm9ybWF0KSxmb3JtYXRPcGVyYXRvcihzdWJzdGl0dXRlU3RyaW5nLnNsaWNlKHJhbmdlMlswXSxyYW5nZTJbMV0pLG9wLHN0ckZvcm1hdCkpXG4gICAgICAgIH07XG4gICAgICAgIHN1YnN0aXR1dGVzLnB1c2goc3Vic3RpdHV0ZSk7XG4gICAgICAgIHN1YnN0aXR1dGVTdHJpbmcgPSBzdWJzdGl0dXRlU3RyaW5nLnJlcGxhY2Uoc3Vic3RpdHV0ZVN0cmluZy5zbGljZShyYW5nZTFbMF0scmFuZ2UyWzFdKSxzdWJzdGl0dXRlLmtleVN0cmluZyk7XG5cbiAgICAgIH1lbHNle1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmKChzdWJzdGl0dXRlU3RyaW5nLnNwbGl0KFwiJTMzb1wiKS5sZW5ndGgtMSk+MCl7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3Vic3RpdHV0ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBzdWJzdGl0dXRlID0gc3Vic3RpdHV0ZXNbaV07XG4gICAgICAgICAgc3Vic3RpdHV0ZVN0cmluZyA9IHN1YnN0aXR1dGVTdHJpbmcucmVwbGFjZShzdWJzdGl0dXRlLmtleVN0cmluZyxzdWJzdGl0dXRlLmZvcm1hdHRlZFN0cik7XG4gICAgICAgIH1cbiAgICAgIH1lbHNle1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN1YnN0aXR1dGVTdHJpbmc7XG4gIH1lbHNle1xuICAgIHJldHVybiBzdHI7XG4gIH1cbn1cblxuY29uc3QgaGFuZGxlU3VwZXJTdWJTY3JpcHRzID0gKHN0cjogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgc2luZ2xlTWF0Y2ggPSBzdHIubWF0Y2goLyhcXFxcP1tBLVowLTldKylbXFxeX10vaSk7XG4gIGNvbnN0IGdyb3VwTWF0Y2ggPSBzdHIubWF0Y2goL1xcfVtcXF5fXS9pKTtcbiAgbGV0IG1hdGNoID0gKHNpbmdsZU1hdGNoJiZncm91cE1hdGNoKT8oKHNpbmdsZU1hdGNoLmluZGV4PGdyb3VwTWF0Y2guaW5kZXgpP3NpbmdsZU1hdGNoOmdyb3VwTWF0Y2gpOihzaW5nbGVNYXRjaHx8Z3JvdXBNYXRjaCk7XG4gIGlmIChzaW5nbGVNYXRjaCAmJiBtYXRjaCA9PSBzaW5nbGVNYXRjaCkge1xuICAgIGxldCBlbmRleCA9IG1hdGNoLmluZGV4K21hdGNoWzBdLmxlbmd0aDtcbiAgICBpZiAoc3RyW2VuZGV4XSA9PSBcIntcIil7XG4gICAgICBlbmRleCArPSBjbG9zZUdyb3VwKHN0ci5zbGljZShlbmRleCkpO1xuICAgIH1cbiAgICBpZiAoXCJeX1wiLmluY2x1ZGVzKHN0cltlbmRleCsxXSkpe1xuICAgICAgY29uc29sZS5sb2coc3RyW2VuZGV4KzFdKTtcbiAgICAgIGVuZGV4ICs9IDI7XG4gICAgfVxuICAgIGlmIChzdHJbZW5kZXhdID09IFwie1wiKXtcbiAgICAgIGVuZGV4ICs9IGNsb3NlR3JvdXAoc3RyLnNsaWNlKGVuZGV4KSk7XG4gICAgfVxuICAgIGlmIChzdHJbZW5kZXhdPT1cIlxcXFxcIil7XG4gICAgICBlbmRleCArPSBzdHIuc2xpY2UoZW5kZXgrMSkubWF0Y2goL1thLXpdKy9pKVswXS5sZW5ndGg7XG4gICAgfVxuICAgIHJldHVybiBzdHIuc2xpY2UoMCxtYXRjaC5pbmRleCkgKyBcIntcIiArIHN0ci5zbGljZShtYXRjaC5pbmRleCxlbmRleCsxKSArIFwifVwiICsgaGFuZGxlU3VwZXJTdWJTY3JpcHRzKHN0ci5zbGljZShlbmRleCsxKSk7XG4gIH1cbiAgaWYoZ3JvdXBNYXRjaCAmJiBtYXRjaCA9PSBncm91cE1hdGNoKXtcbiAgICBsZXQgZmxpcFN0cmluZyA9IFsuLi5zdHJdLnJldmVyc2UoKS5qb2luKFwiXCIpO1xuICAgIGxldCBzdGFydEluZGV4ID0gbWF0Y2guaW5kZXgtY2xvc2VHcm91cChmbGlwU3RyaW5nLnNsaWNlKGZsaXBTdHJpbmcubGVuZ3RoLW1hdGNoLmluZGV4KSwwKTtcbiAgICByZXR1cm4gKHN0ci5zbGljZSgwLHN0YXJ0SW5kZXgpICsgaGFuZGxlU3VwZXJTdWJTY3JpcHRzKFwiXFxcXE1BVEhQTFVTUExBQ0VIT0xERVJcIisgc3RyLnNsaWNlKG1hdGNoLmluZGV4K21hdGNoWzBdLmxlbmd0aC0xKSkpLnJlcGxhY2UoXCJcXFxcTUFUSFBMVVNQTEFDRUhPTERFUlwiLHN0ci5zbGljZShzdGFydEluZGV4LG1hdGNoLmluZGV4K21hdGNoWzBdLmxlbmd0aC0xKSk7XG4gIH1cbiAgcmV0dXJuIHN0cjtcbn1cblxuY29uc3QgZm9ybWF0R3JvdXBzID0gKHN0cjogc3RyaW5nKSA9PiB7XG4gIC8vIFdyYXAgcGFyZW50aGVzZXMgaW4gZ3JvdXAgdGFnc1xuICBsZXQgZm9ybWF0dGVkU3RyaW5nID0gc3RyLnJlcGxhY2UoL1xcKS9nLCAnKX0nKS5yZXBsYWNlKC9cXCgvZywgJ3soJyk7XG4gIC8vIFdyYXAgZGVjaW1sZXMgaW4gZ3JvdXAgdGFnc1xuICBmb3JtYXR0ZWRTdHJpbmcgPSBmb3JtYXR0ZWRTdHJpbmcucmVwbGFjZSgvWzAtOS5dWzAtOS5dKy9pZywgXCJ7JCZ9XCIpO1xuICAvLyBXcmFwIFxcaW5mdHkgaW4gZ3JvdXAgdGFnc1xuICBmb3JtYXR0ZWRTdHJpbmcgPSBmb3JtYXR0ZWRTdHJpbmcucmVwbGFjZSgvXFxcXGluZnR5L2lnLCBcInskJn1cIik7XG4gIC8vIFdyYXAgYW55IGV4cHJlc3Npb24gcmFpc2VkIHRvIGEgcG93ZXIgaW4gZ3JvdXAgdGFncyB0byBhdm9pZCBjaGFyIHNlcGFyYXRpb25cbiAgZm9ybWF0dGVkU3RyaW5nID0gZm9ybWF0dGVkU3RyaW5nLnJlcGxhY2UoLyhcXFxcW0EtWmEtel0rKShbXFxeX10pL2lnLCBcInskMX0kMlwiKTtcbiAgLy8gV3JhcCBhbnkgbG9uZyBleHByZXNzaW9ucyBpbiBncm91cCB0YWdzXG4gIC8vIGZvcm1hdHRlZFN0cmluZyA9IGZvcm1hdHRlZFN0cmluZy5yZXBsYWNlKC9cXFxcP1tBLVphLXpcXHtcXH1cXChcXClcXFtcXF0wLTldK1tcXF5fXVtBLVphLXpcXHtcXH1cXChcXClcXFtcXF0wLTldK1tcXF5fXT9bQS1aYS16XFx7XFx9XFwoXFwpXFxbXFxdMC05XSovaWcsIFwieyQmfVwiKTtcbiAgZm9ybWF0dGVkU3RyaW5nID0gaGFuZGxlU3VwZXJTdWJTY3JpcHRzKGZvcm1hdHRlZFN0cmluZyk7XG4gIHJldHVybiBmb3JtYXR0ZWRTdHJpbmc7XG59XG5cbmNvbnN0IGFkZExpbmVzID0gKHN0cjogc3RyaW5nKSA9PiB7XG4gIC8vIHJlcGxhY2VzIG5ldyBsaW5lcyB3aXRoIFxcXFwgc28gdGhhdCBMYVRleCByZWNvZ25pemVzIHRoZW1cbiAgbGV0IGZvcm1hdHRlZFN0cmluZyA9IGBcXFxcYmVnaW57YWxpZ24qfSYke3N0ci5yZXBsYWNlKC9cXG4vaWcsIFwiXFxcXFxcXFwmXCIpfVxcXFxlbmR7YWxpZ24qfWA7XG4gIHJldHVybiBmb3JtYXR0ZWRTdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IGZvcm1hdEVxdWF0aW9uID0gKHN0cjogc3RyaW5nLCBzdHJPcGVyYXRvcnM6IHN0cmluZykgPT4ge1xuICBjb25zdCBvcGVyYXRvcnMgPSBKU09OLnBhcnNlKHJlcGxhY2VBbGwoc3RyT3BlcmF0b3JzLFwiXFxcXFxcXFxcIixcIiVicyVcIikpO1xuICBsZXQgZm9ybWF0dGVkU3RyaW5nID0gXCIgXCIrZm9ybWF0R3JvdXBzKHN0cik7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgb3BlcmF0b3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3Qgb3AgPSBvcGVyYXRvcnNbaV07XG4gICAgZm9ybWF0dGVkU3RyaW5nID0gZm9ybWF0T3BlcmF0b3IoZm9ybWF0dGVkU3RyaW5nLG9wLm9wLG9wLmZvcm1hdCk7XG4gIH1cbiAgZm9ybWF0dGVkU3RyaW5nID0gYWRkTGluZXMoZm9ybWF0dGVkU3RyaW5nKTtcblxuXG4gIHJldHVybiBmb3JtYXR0ZWRTdHJpbmdcbn0iLCAiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBFeGNhbGlkcmF3Q2FudmFzIH0gZnJvbSBcIi4vRXhjYWxpZHJhd0NhbnZhc1wiO1xuaW1wb3J0IHtjcmVhdGVSb290fSBmcm9tICdyZWFjdC1kb20vY2xpZW50JztcblxuZXhwb3J0IGNvbnN0IHJlbmRlckNhbnZhcyA9IChjb250YWluZXI6IGFueSwgaWQ6IG51bWJlciwgc2F2ZVRvRmlsZTphbnksIGdyaWRNb2RlRW5kYWJsZWQ6Ym9vbGVhbiwgY29sb3JzOkFycmF5PHN0cmluZz4sIHJlYWRGaWxlOmFueSxwcmV2RGF0YTpzdHJpbmcpID0+IHtcbiAgbGV0IHJvb3QgPSBjcmVhdGVSb290KGNvbnRhaW5lcik7XG4gIHJvb3QucmVuZGVyKFxuICAgIDxFeGNhbGlkcmF3Q2FudmFzIGlkPXtpZH0gcm9vdD17cm9vdH0gc2F2ZVRvRmlsZT17c2F2ZVRvRmlsZX0gZ3JpZE1vZGU9e2dyaWRNb2RlRW5kYWJsZWR9IGNvbG9ycz17Y29sb3JzfSByZWFkRmlsZT17cmVhZEZpbGV9IHByZXZEYXRhPXtwcmV2RGF0YX0gIC8+XG4gICk7XG59XG4iLCAiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUsIHVzZVJlZiwgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBFeGNhbGlkcmF3LCB7IGV4cG9ydFRvU3ZnIH0gZnJvbSBcIkBleGNhbGlkcmF3L2V4Y2FsaWRyYXdcIjtcbmltcG9ydCB7IENvbG9yU3dhdGNoIH0gZnJvbSBcIi4vY29tcG9uZW50cy9Db2xvclN3YXRjaFwiXG5cbmNvbnN0IHJlc29sdmFibGVQcm9taXNlID0gKCkgPT4ge1xuICBsZXQgcmVzb2x2ZTtcbiAgbGV0IHJlamVjdDtcbiAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChfcmVzb2x2ZSwgX3JlamVjdCkgPT4ge1xuICAgIHJlc29sdmUgPSBfcmVzb2x2ZTtcbiAgICByZWplY3QgPSBfcmVqZWN0O1xuICB9KTtcbiAgcHJvbWlzZS5yZXNvbHZlID0gcmVzb2x2ZTtcbiAgcHJvbWlzZS5yZWplY3QgPSByZWplY3Q7XG4gIHJldHVybiBwcm9taXNlO1xufTtcblxuY29uc3Qgc2F2ZURhdGEgPSBhc3luYyAocm9vdCwgc2V0SW5pdGlhbERhdGEsIGN1ckRhdGEsIGlkLCBzYXZlVG9GaWxlLCByZWFkRmlsZSwgcHJldkRhdGEsIHNldERhdGEsIGNsb3NlRHJhd2luZz10cnVlLCBleHBvcnRBc1N2Zz10cnVlKSA9PiB7XG4gIC8vIGNvbnN0IHByZXZEYXRhID0gYXdhaXQgcmVhZEZpbGUoXCJkYXRhLVwiK2lkK1wiLmpzb25cIiwgXCJleGNhbGlkcmF3LWZpbGVzXCIpO1xuICBsZXQgZm9ybWF0dGVkRGF0YSA9IHsuLi5jdXJEYXRhfTtcbiAgZm9ybWF0dGVkRGF0YS5hcHBTdGF0ZS5jb2xsYWJvcmF0b3JzID0gW107XG4gIGlmKHByZXZEYXRhICE9IEpTT04uc3RyaW5naWZ5KGZvcm1hdHRlZERhdGEpKXtcbiAgICBzZXRJbml0aWFsRGF0YSgoZGF0YSk9PntcbiAgICAgIGZvcm1hdHRlZERhdGEuYXBwU3RhdGUuY3VycmVudEl0ZW1TdHJva2VDb2xvciA9IGRhdGEuYXBwU3RhdGUuY3VycmVudEl0ZW1TdHJva2VDb2xvcjtcbiAgICAgIHJldHVybiBmb3JtYXR0ZWREYXRhXG4gICAgfSk7XG4gICAgc2V0RGF0YShKU09OLnN0cmluZ2lmeShmb3JtYXR0ZWREYXRhKSk7XG4gICAgc2F2ZVRvRmlsZShcImRhdGEtXCIraWQrXCIuanNvblwiLCBKU09OLnN0cmluZ2lmeShmb3JtYXR0ZWREYXRhKSwgXCJleGNhbGlkcmF3LWZpbGVzXCIsIGZhbHNlKTtcbiAgfVxuICBpZihjbG9zZURyYXdpbmcpe1xuICAgIC8vIHVubW91bnRDb21wb25lbnRBdE5vZGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLm1hdGgtYmxvY2stJHtpZH0gLmV4Y2FsaWRyYXctY2FudmFzLXdyYXBwZXJgKSk7XG4gICAgLy8gY29uc3Qgcm9vdCA9IGNyZWF0ZVJvb3QoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLm1hdGgtYmxvY2stJHtpZH0gLmV4Y2FsaWRyYXctY2FudmFzLXdyYXBwZXJgKSk7XG4gICAgcm9vdC51bm1vdW50KCk7XG4gIH1cbiAgaWYoZXhwb3J0QXNTdmcpe1xuICAgIGF3YWl0IGV4cG9ydFNWRyh7Li4uZm9ybWF0dGVkRGF0YX0sIGlkLCBzYXZlVG9GaWxlLGNsb3NlRHJhd2luZyk7XG4gIH1cbn1cblxuXG5jb25zdCBleHBvcnRTVkcgPSBhc3luYyAoZGF0YSwgaWQsIHNhdmVUb0ZpbGUsIGNsb3NlRHJhd2luZz10cnVlKSA9PiB7XG4gIGxldCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgbWF0aC1jYW52YXMtJHtpZH1gKTtcbiAgbGV0IGZvcm1hdHRlZERhdGEgPSB7Li4uZGF0YX07XG4gIGZvcm1hdHRlZERhdGEuYXBwU3RhdGUuY29sbGFib3JhdG9ycyA9IFtdO1xuICBmb3JtYXR0ZWREYXRhLmVsZW1lbnRzLnVuc2hpZnQoe1xuICAgIFwiaWRcIjogXCI4Q05MNTUwcTU2bHJHWjR1V2VwUUVcIixcbiAgICBcInR5cGVcIjogXCJyZWN0YW5nbGVcIixcbiAgICBcInhcIjogLTUwMCxcbiAgICBcInlcIjogLTUwMCxcbiAgICBcIndpZHRoXCI6IDEwMDAwLFxuICAgIFwiaGVpZ2h0XCI6IGNhbnZhcz9jYW52YXMub2Zmc2V0SGVpZ2h0OjEsXG4gICAgXCJhbmdsZVwiOiAwLFxuICAgIFwic3Ryb2tlQ29sb3JcIjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIFwiYmFja2dyb3VuZENvbG9yXCI6IFwidHJhbnNwYXJlbnRcIixcbiAgICBcImZpbGxTdHlsZVwiOiBcImhhY2h1cmVcIixcbiAgICBcInN0cm9rZVdpZHRoXCI6IDEsXG4gICAgXCJzdHJva2VTdHlsZVwiOiBcInNvbGlkXCIsXG4gICAgXCJyb3VnaG5lc3NcIjogMSxcbiAgICBcIm9wYWNpdHlcIjogMTAwLFxuICAgIFwiZ3JvdXBJZHNcIjogW10sXG4gICAgXCJzdHJva2VTaGFycG5lc3NcIjogXCJzaGFycFwiLFxuICAgIFwic2VlZFwiOiAxMDU5NzI4NTY5LFxuICAgIFwidmVyc2lvblwiOiAyMTEsXG4gICAgXCJ2ZXJzaW9uTm9uY2VcIjogMTU5Nzk1NDQyMyxcbiAgICBcImlzRGVsZXRlZFwiOiBmYWxzZSxcbiAgICBcImJvdW5kRWxlbWVudHNcIjogbnVsbCxcbiAgICBcInVwZGF0ZWRcIjogMTY0OTcwMDM0MDQyNyxcbiAgICBcImxpbmtcIjogbnVsbFxuICB9KTtcbiAgY29uc3Qgc3ZnID0gYXdhaXQgZXhwb3J0VG9TdmcoZm9ybWF0dGVkRGF0YSk7XG4gIGZvcm1hdHRlZERhdGEuZWxlbWVudHMudW5zaGlmdCgpO1xuICBzYXZlVG9GaWxlKFwiZGF0YS1cIitpZCtcIi5zdmdcIixzdmcub3V0ZXJIVE1MLCBcImRyYXdpbmdzXCIsIGNsb3NlRHJhd2luZyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBFeGNhbGlkcmF3Q2FudmFzKHsgaWQsIHNhdmVUb0ZpbGUsIGdyaWRNb2RlLCBjb2xvcnMsIHJlYWRGaWxlLCBwcmV2RGF0YSwgcm9vdCB9KSB7XG4gIGNvbnN0IGV4Y2FsaWRyYXdSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IGRpbWVuc2lvblJlZiA9IHVzZVJlZigpO1xuICBjb25zdCBzYXZlSW50ZXJ2YWxSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IFtJbml0aWFsRGF0YSwgc2V0SW5pdGlhbERhdGFdID0gIHVzZVN0YXRlKFxuICAgIHByZXZEYXRhP1xuICAgIEpTT04ucGFyc2UocHJldkRhdGEpXG4gICAgOntcbiAgICAgIGVsZW1lbnRzOiBbXSxcbiAgICAgIGFwcFN0YXRlOiB7IHZpZXdCYWNrZ3JvdW5kQ29sb3I6IFwiI2ZmZjBcIiwgY3VycmVudEl0ZW1Gb250RmFtaWx5OiAxLCBjdXJyZW50SXRlbVN0cm9rZUNvbG9yOlwiIzAwMFwiIH0sXG4gICAgICBzY3JvbGxUb0NvbnRlbnQ6IGZhbHNlLFxuICAgICAgbGlicmFyeUl0ZW1zOiBbXVxuICAgIH1cbiAgKTtcbiAgY29uc3QgW2xhc3RTYXZlRGF0YSwgc2V0TGFzdFNhdmVEYXRhXSA9IHVzZVN0YXRlKHByZXZEYXRhfHxcIlwiKTtcblxuICBsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYG1hdGgtY2FudmFzLSR7aWR9YCk7XG4gIGxldCBtYXRoQmxvY2sgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAubWF0aC1ibG9jay0ke2lkfWApO1xuXG4gIGNvbnN0IGluaXRpYWxTdGF0ZVByb21pc2VSZWYgPSB1c2VSZWYoeyBwcm9taXNlOiBudWxsIH0pO1xuICBpZiAoIWluaXRpYWxTdGF0ZVByb21pc2VSZWYuY3VycmVudC5wcm9taXNlKSB7XG4gICAgaW5pdGlhbFN0YXRlUHJvbWlzZVJlZi5jdXJyZW50LnByb21pc2UgPSByZXNvbHZhYmxlUHJvbWlzZSgpO1xuICB9XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5pdGlhbFN0YXRlUHJvbWlzZVJlZi5jdXJyZW50LnByb21pc2UucmVzb2x2ZShJbml0aWFsRGF0YSk7XG5cbiAgICBjb25zdCBvbkhhc2hDaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBjb25zdCBoYXNoID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKSk7XG4gICAgICBjb25zdCBsaWJyYXJ5VXJsID0gaGFzaC5nZXQoXCJhZGRMaWJyYXJ5XCIpO1xuICAgICAgaWYgKGxpYnJhcnlVcmwpIHtcbiAgICAgICAgZXhjYWxpZHJhd1JlZi5jdXJyZW50LmltcG9ydExpYnJhcnkobGlicmFyeVVybCwgaGFzaC5nZXQoXCJ0b2tlblwiKSk7XG4gICAgICB9XG4gICAgfTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImhhc2hjaGFuZ2VcIiwgb25IYXNoQ2hhbmdlLCBmYWxzZSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiaGFzaGNoYW5nZVwiLCBvbkhhc2hDaGFuZ2UpO1xuICAgIH07XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNhdmVJbnRlcnZhbFJlZi5jdXJyZW50ID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgbGV0IGN1ckRhdGEgPSB7XG4gICAgICAgIGVsZW1lbnRzOiBleGNhbGlkcmF3UmVmLmN1cnJlbnQuZ2V0U2NlbmVFbGVtZW50cygpLFxuICAgICAgICBhcHBTdGF0ZTogZXhjYWxpZHJhd1JlZi5jdXJyZW50LmdldEFwcFN0YXRlKCksXG4gICAgICAgIHNjcm9sbFRvQ29udGVudDogZmFsc2UsXG4gICAgICAgIGxpYnJhcnlJdGVtczogW11cbiAgICAgIH07XG4gICAgICAvLyBhdXRvIHNhdmVcbiAgICAgIGlmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC5tYXRoLWJsb2NrLSR7aWR9YCkpe1xuICAgICAgICBzYXZlRGF0YShyb290LCBzZXRJbml0aWFsRGF0YSwgY3VyRGF0YSwgaWQsIHNhdmVUb0ZpbGUscmVhZEZpbGUsIGxhc3RTYXZlRGF0YSwgc2V0TGFzdFNhdmVEYXRhLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgfWVsc2V7XG4gICAgICAgIHNhdmVEYXRhKHJvb3QsIHNldEluaXRpYWxEYXRhLCBjdXJEYXRhLCBpZCwgc2F2ZVRvRmlsZSxyZWFkRmlsZSwgbGFzdFNhdmVEYXRhLCBzZXRMYXN0U2F2ZURhdGEsIHRydWUsIHRydWUpO1xuICAgICAgICBjbGVhckludGVydmFsKHNhdmVJbnRlcnZhbFJlZi5jdXJyZW50KTtcbiAgICAgIH1cbiAgICB9LCAxMDAwKTtcbiAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbChzYXZlSW50ZXJ2YWxSZWYuY3VycmVudCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCk9PntcbiAgICBpZihleGNhbGlkcmF3UmVmLmN1cnJlbnQpe1xuICAgICAgZXhjYWxpZHJhd1JlZi5jdXJyZW50LnVwZGF0ZVNjZW5lKEluaXRpYWxEYXRhKTtcbiAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInJlc2l6ZVwiKSk7XG4gICAgfVxuICB9LFtJbml0aWFsRGF0YV0pO1xuXG5cbiAgY29uc3Qgb25MaW5rT3BlbiA9IHVzZUNhbGxiYWNrKChlbGVtZW50LCBldmVudCkgPT4ge1xuICAgIGNvbnN0IGxpbmsgPSBlbGVtZW50Lmxpbms7XG4gICAgY29uc3QgeyBuYXRpdmVFdmVudCB9ID0gZXZlbnQuZGV0YWlsO1xuICAgIGNvbnN0IGlzTmV3VGFiID0gbmF0aXZlRXZlbnQuY3RybEtleSB8fCBuYXRpdmVFdmVudC5tZXRhS2V5O1xuICAgIGNvbnN0IGlzTmV3V2luZG93ID0gbmF0aXZlRXZlbnQuc2hpZnRLZXk7XG4gICAgY29uc3QgaXNJbnRlcm5hbExpbmsgPVxuICAgICAgbGluay5zdGFydHNXaXRoKFwiL1wiKSB8fCBsaW5rLmluY2x1ZGVzKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO1xuICAgIGlmIChpc0ludGVybmFsTGluayAmJiAhaXNOZXdUYWIgJiYgIWlzTmV3V2luZG93KSB7XG4gICAgICAvLyBzaWduYWwgdGhhdCB3ZSdyZSBoYW5kbGluZyB0aGUgcmVkaXJlY3Qgb3Vyc2VsdmVzXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgLy8gZG8gYSBjdXN0b20gcmVkaXJlY3QsIHN1Y2ggYXMgcGFzc2luZyB0byByZWFjdC1yb3V0ZXJcbiAgICAgIC8vIC4uLlxuICAgIH1cbiAgfSwgW10pO1xuXG4gIGNvbnN0IHN3aXRjaENvbG9yID0gYXN5bmMgKGNvbG9yKT0+e1xuICAgIGxldCBhcHBTdGF0ZSA9IGV4Y2FsaWRyYXdSZWYuY3VycmVudC5nZXRBcHBTdGF0ZSgpO1xuICAgIGxldCBlbGVtZW50cyA9IGV4Y2FsaWRyYXdSZWYuY3VycmVudC5nZXRTY2VuZUVsZW1lbnRzKCk7XG4gICAgbGV0IHNlbGVjdGVkSWRzID0gT2JqZWN0LmtleXMoYXBwU3RhdGUuc2VsZWN0ZWRFbGVtZW50SWRzKTtcbiAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYG1hdGgtY2FudmFzLSR7aWR9YCk7XG4gICAgaWYoY2FudmFzKXtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0ZWRJZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IHNlbGVjdGVkRWxlbWVudCA9IGVsZW1lbnRzLmZpbmQoZWxlbSA9PiAoZWxlbS5pZD09PXNlbGVjdGVkSWRzW2ldKSk7XG4gICAgICAgIGlmKHNlbGVjdGVkRWxlbWVudCl7XG4gICAgICAgICAgbGV0IHNlbGVjdGVkRWxlbWVudEluZGV4ID0gZWxlbWVudHMuaW5kZXhPZihzZWxlY3RlZEVsZW1lbnQpO1xuICAgICAgICAgIHNldEluaXRpYWxEYXRhKChkYXRhKT0+e1xuICAgICAgICAgICAgbGV0IGZvcm1hdHRlZERhdGEgPSB7ZWxlbWVudHM6Wy4uLmVsZW1lbnRzXSxhcHBTdGF0ZTp7Li4uYXBwU3RhdGV9fTtcbiAgICAgICAgICAgIGZvcm1hdHRlZERhdGEuZWxlbWVudHNbc2VsZWN0ZWRFbGVtZW50SW5kZXhdLnN0cm9rZUNvbG9yPWNvbG9yO1xuICAgICAgICAgICAgZm9ybWF0dGVkRGF0YS5hcHBTdGF0ZS5jdXJyZW50SXRlbVN0cm9rZUNvbG9yID0gY29sb3I7XG4gICAgICAgICAgICBmaW5hbERhdGEgPSBmb3JtYXR0ZWREYXRhXG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0dGVkRGF0YTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYoc2VsZWN0ZWRJZHMubGVuZ3RoPDIpe1xuICAgICAgICBzZXRJbml0aWFsRGF0YSgoZGF0YSk9PntcbiAgICAgICAgICBsZXQgZm9ybWF0dGVkRGF0YSA9IHtlbGVtZW50czpbLi4uZWxlbWVudHNdLGFwcFN0YXRlOnsuLi5hcHBTdGF0ZX19O1xuICAgICAgICAgIGZvcm1hdHRlZERhdGEuYXBwU3RhdGUuY3VycmVudEl0ZW1TdHJva2VDb2xvciA9IGNvbG9yO1xuICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWREYXRhO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJleGNhbGlkcmF3LWNhbnZhc1wic3R5bGU9e3tcbiAgICAgIGZvbnRGYW1pbHk6IFwic2Fucy1zZXJpZlwiLFxuICAgICAgdGV4dEFsaWduOiBcImNlbnRlclwiLFxuICAgICAgaGVpZ2h0OiBcIjEwMCVcIlxuICAgIH19b25DbGljaz17KGUpPT57XG4gICAgICBpZighZS50YXJnZXQuaGFzQ2xhc3MoXCJUb29sSWNvbl90eXBlX3JhZGlvXCIpKSB7XG4gICAgICAgIGxldCBhcHBTdGF0ZSA9IGV4Y2FsaWRyYXdSZWYuY3VycmVudC5nZXRBcHBTdGF0ZSgpO1xuICAgICAgICBsZXQgZWxlbWVudHMgPSBleGNhbGlkcmF3UmVmLmN1cnJlbnQuZ2V0U2NlbmVFbGVtZW50cygpO1xuICAgICAgICBsZXQgc2VsZWN0ZWRJZHMgPSBPYmplY3Qua2V5cyhhcHBTdGF0ZS5zZWxlY3RlZEVsZW1lbnRJZHMpO1xuICAgICAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYG1hdGgtY2FudmFzLSR7aWR9YCk7XG4gICAgICAgIGlmKGNhbnZhcyl7XG4gICAgICAgICAgaWYgKHNlbGVjdGVkSWRzLmxlbmd0aD4xKXtcbiAgICAgICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnQgPSBlbGVtZW50cy5maW5kKGVsZW0gPT4gKGVsZW0uaWQ9PT1zZWxlY3RlZElkc1swXSkpO1xuICAgICAgICAgICAgaWYoc2VsZWN0ZWRFbGVtZW50KXtcbiAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkRWxlbWVudEluZGV4ID0gZWxlbWVudHMuaW5kZXhPZihzZWxlY3RlZEVsZW1lbnQpO1xuICAgICAgICAgICAgICBzZXRJbml0aWFsRGF0YSgoZGF0YSk9PntcbiAgICAgICAgICAgICAgICBsZXQgZm9ybWF0dGVkRGF0YSA9IHtlbGVtZW50czpbLi4uZWxlbWVudHNdLGFwcFN0YXRlOnsuLi5hcHBTdGF0ZX19O1xuICAgICAgICAgICAgICAgIGZvcm1hdHRlZERhdGEuYXBwU3RhdGUuY3VycmVudEl0ZW1TdHJva2VDb2xvciA9IGZvcm1hdHRlZERhdGEuZWxlbWVudHNbc2VsZWN0ZWRFbGVtZW50SW5kZXhdLnN0cm9rZUNvbG9yO1xuICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWREYXRhO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9fT5cbiAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwibWF0aC1zYXZlLWJ1dHRvblwiIG9uQ2xpY2s9e2FzeW5jICgpPT57XG4gICAgICAgIGxldCBjdXJEYXRhID0ge1xuICAgICAgICAgIGVsZW1lbnRzOiBleGNhbGlkcmF3UmVmLmN1cnJlbnQuZ2V0U2NlbmVFbGVtZW50cygpLFxuICAgICAgICAgIGFwcFN0YXRlOiBleGNhbGlkcmF3UmVmLmN1cnJlbnQuZ2V0QXBwU3RhdGUoKSxcbiAgICAgICAgICBzY3JvbGxUb0NvbnRlbnQ6IGZhbHNlLFxuICAgICAgICAgIGxpYnJhcnlJdGVtczogW11cbiAgICAgICAgfTtcbiAgICAgICAgc2F2ZURhdGEocm9vdCwgc2V0SW5pdGlhbERhdGEsIGN1ckRhdGEsIGlkLCBzYXZlVG9GaWxlLCByZWFkRmlsZSwgbGFzdFNhdmVEYXRhLCBzZXRMYXN0U2F2ZURhdGEpO1xuICAgICAgICBjbGVhckludGVydmFsKHNhdmVJbnRlcnZhbFJlZi5jdXJyZW50KTtcbiAgICAgIH19IHN0eWxlPXt7XG4gICAgICAgIHpJbmRleDo1LFxuICAgICAgICBwb3NpdGlvbjpcImFic29sdXRlXCIsXG4gICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIHRyYW5zaXRpb246IFwib3BhY2l0eSAzMDBtc1wiLFxuICAgICAgICBsZWZ0OlwiY2FsYyg1MCUgKyAyMHB4KVwiLFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgtNTAlKVwiLFxuICAgICAgICBkaXNwbGF5Olwibm9uZVwiXG4gICAgICAgIH19PlxuICAgICAgICBTYXZlIERyYXdpbmdcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17eyBoZWlnaHQ6IFwiMTAwJVwiIH19XG4gICAgICAgIG9uV2hlZWxDYXB0dXJlPXsoZSkgPT4ge1xuICAgICAgICAgIC8vIFN0b3AgRXhjYWxpZHJhdyBmcm9tIGhpamFja2luZyBzY3JvbGxcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJleGNhbGlkcmF3LXdyYXBwZXJcIisobWF0aEJsb2NrPyhtYXRoQmxvY2sub2Zmc2V0SGVpZ2h0PDM1MD9cIiBzbWFsbC1jYW52YXNcIjpcIlwiKTpcIlwiKX0gaWQ9e2BtYXRoLWNhbnZhcy0ke2lkfWB9IHJlZj17ZGltZW5zaW9uUmVmfSBzdHlsZT17e1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjZmZmMFwiLFxuICAgICAgICAgIG9wYWNpdHk6MFxuICAgICAgICB9fT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1hdGgtY29sb3ItYm94XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1hdGgtcGlsbFwiIG9uQ2xpY2s9eygpPT57XG4gICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBtYXRoLWNhbnZhcy0ke2lkfWApLnF1ZXJ5U2VsZWN0b3IoXCIubWF0aC1jb2xvci1ib3hcIikuY2xhc3NMaXN0LnRvZ2dsZShcIm1pbmltaXplZFwiKTtcbiAgICAgICAgICAgIH19PjwvZGl2PlxuICAgICAgICAgICAgPENvbG9yU3dhdGNoIFxuICAgICAgICAgICAgICBjb2xvcj17Y29sb3JzWzBdfSBcbiAgICAgICAgICAgICAgY3VyckNvbG9yPXtJbml0aWFsRGF0YS5hcHBTdGF0ZS5jdXJyZW50SXRlbVN0cm9rZUNvbG9yfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKT0+e1xuICAgICAgICAgICAgICAgIHN3aXRjaENvbG9yKGNvbG9yc1swXSk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPENvbG9yU3dhdGNoXG4gICAgICAgICAgICAgIGNvbG9yPXtjb2xvcnNbMV19XG4gICAgICAgICAgICAgIGN1cnJDb2xvcj17SW5pdGlhbERhdGEuYXBwU3RhdGUuY3VycmVudEl0ZW1TdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgb25DbGljaz17KCk9PntcbiAgICAgICAgICAgICAgICBzd2l0Y2hDb2xvcihjb2xvcnNbMV0pO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxDb2xvclN3YXRjaCBcbiAgICAgICAgICAgICAgY29sb3I9e2NvbG9yc1syXX0gXG4gICAgICAgICAgICAgIGN1cnJDb2xvcj17SW5pdGlhbERhdGEuYXBwU3RhdGUuY3VycmVudEl0ZW1TdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgb25DbGljaz17KCk9PntcbiAgICAgICAgICAgICAgICBzd2l0Y2hDb2xvcihjb2xvcnNbMl0pO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8RXhjYWxpZHJhd1xuICAgICAgICAgICAgcmVmPXtleGNhbGlkcmF3UmVmfVxuICAgICAgICAgICAgaW5pdGlhbERhdGE9e0luaXRpYWxEYXRhfVxuICAgICAgICAgICAgb25Db2xsYWJCdXR0b25DbGljaz17KCkgPT5cbiAgICAgICAgICAgICAgd2luZG93LmFsZXJ0KFwiWW91IGNsaWNrZWQgb24gY29sbGFiIGJ1dHRvblwiKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmlld01vZGVFbmFibGVkPXtmYWxzZX1cbiAgICAgICAgICAgIHplbk1vZGVFbmFibGVkPXtmYWxzZX1cbiAgICAgICAgICAgIGdyaWRNb2RlRW5hYmxlZD17Z3JpZE1vZGV9XG4gICAgICAgICAgICB0aGVtZT17ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLmhhc0NsYXNzKFwidGhlbWUtbGlnaHRcIik/XCJsaWdodFwiOlwiZGFya1wifVxuICAgICAgICAgICAgbmFtZT1cIk9ic2lkaWFuIE1hdGggUGx1cyBEcmF3aW5nXCJcbiAgICAgICAgICAgIFVJT3B0aW9ucz17eyBjYW52YXNBY3Rpb25zOiB7IGxvYWRTY2VuZTogZmFsc2UgfSB9fVxuICAgICAgICAgICAgb25MaW5rT3Blbj17b25MaW5rT3Blbn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuIiwgImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VSZWYsIHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBDb2xvclN3YXRjaCA9ICh7IGNvbG9yLCBjdXJyQ29sb3IsIG9uQ2xpY2sgfSkgPT4ge1xuICByZXR1cm4gKFxuICAgICAgPGRpdiBcbiAgICAgICAgY2xhc3NOYW1lPXtgbWF0aC1jb2xvci1zd2F0Y2gke2N1cnJDb2xvcj09PWNvbG9yP1wiIHNlbGVjdGVkXCI6XCJcIn1gfSBcbiAgICAgICAgc3R5bGU9e3tiYWNrZ3JvdW5kQ29sb3I6Y29sb3J9fSBvbkNsaWNrPXsoKT0+e1xuICAgICAgICAgIG9uQ2xpY2soKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgIDwvZGl2PlxuICApXG59Il0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFVQTtBQUVBLFFBQUksTUFBdUM7QUFDekMsTUFBQyxZQUFXO0FBRUo7QUFHVixZQUNFLE9BQU8sbUNBQW1DLGVBQzFDLE9BQU8sK0JBQStCLGdDQUNwQyxZQUNGO0FBQ0EseUNBQStCLDRCQUE0QixJQUFJO0FBQUE7QUFFdkQsWUFBSSxlQUFlO0FBTTdCLFlBQUkscUJBQXFCLE9BQU8sSUFBSTtBQUNwQyxZQUFJLG9CQUFvQixPQUFPLElBQUk7QUFDbkMsWUFBSSxzQkFBc0IsT0FBTyxJQUFJO0FBQ3JDLFlBQUkseUJBQXlCLE9BQU8sSUFBSTtBQUN4QyxZQUFJLHNCQUFzQixPQUFPLElBQUk7QUFDckMsWUFBSSxzQkFBc0IsT0FBTyxJQUFJO0FBQ3JDLFlBQUkscUJBQXFCLE9BQU8sSUFBSTtBQUNwQyxZQUFJLHlCQUF5QixPQUFPLElBQUk7QUFDeEMsWUFBSSxzQkFBc0IsT0FBTyxJQUFJO0FBQ3JDLFlBQUksMkJBQTJCLE9BQU8sSUFBSTtBQUMxQyxZQUFJLGtCQUFrQixPQUFPLElBQUk7QUFDakMsWUFBSSxrQkFBa0IsT0FBTyxJQUFJO0FBQ2pDLFlBQUksdUJBQXVCLE9BQU8sSUFBSTtBQUN0QyxZQUFJLHdCQUF3QixPQUFPO0FBQ25DLFlBQUksdUJBQXVCO0FBQzNCLCtCQUF1QixlQUFlO0FBQ3BDLGNBQUksa0JBQWtCLFFBQVEsT0FBTyxrQkFBa0IsVUFBVTtBQUMvRCxtQkFBTztBQUFBO0FBR1QsY0FBSSxnQkFBZ0IseUJBQXlCLGNBQWMsMEJBQTBCLGNBQWM7QUFFbkcsY0FBSSxPQUFPLGtCQUFrQixZQUFZO0FBQ3ZDLG1CQUFPO0FBQUE7QUFHVCxpQkFBTztB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LE1BQU07QUFBQSxVQUNOLE9BQU87QUFBQSxVQUNQLFNBQVM7QUFBQSxVQUNULFdBQVc7QUFBQSxVQUNYLE1BQU07QUFBQSxVQUNOLFNBQVM7QUFBQSxVQUNULFNBQVM7QUFBQSxVQUNULGlCQUFpQjtBQUFBLFVBQ2pCLGFBQWE7QUFBQSxVQUNiLFVBQVU7QUFBQSxVQUNWLGNBQWM7QUFBQSxVQUNkLFFBQVE7QUFBQSxVQUNSLGFBQWE7QUFBQSxVQUNiLHlCQUF5QjtBQUFBLFVBQ3pCLE1BQU07QUFBQSxVQUNOLFVBQVU7QUFBQSxVQUNWLFNBQVM7QUFBQSxVQUNULGdCQUFnQjtBQUFBLFVBQ2hCLGNBQWM7QUFBQSxVQUNkLE9BQU87QUFBQSxVQUNQLEtBQUs7QUFBQSxVQUNMLFVBQVU7QUFBQSxVQUNWLHlCQUF5QjtBQUFBLFVBQ3pCLHVCQUF1QjtBQUFBLFVBQ3ZCLFVBQVU7QUFBQSxVQUNWLFdBQVc7QUFBQSxVQUNYLFNBQVM7QUFBQSxVQUNULGNBQWM7QUFBQSxVQUNkLEtBQUs7QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLFlBQVk7QUFBQSxVQUNaLFlBQVk7QUFBQSxVQUNaLGFBQWE7QUFBQSxVQUNiLGdCQUFnQjtBQUFBLFVBQ2hCLFlBQVk7QUFBQSxVQUNaLGFBQWE7QUFBQSxVQUNiLFNBQVM7QUFBQSxVQUNULFFBQVE7QUFBQSxVQUNSLFFBQVE7QUFBQSxVQUNSLE1BQU07QUFBQSxVQUNOLE1BQU07QUFBQSxVQUNOLFVBQVU7QUFBQSxVQUNWLFNBQVM7QUFBQSxVQUNULFdBQVc7QUFBQSxVQUNYLGNBQWM7QUFBQSxVQUNkLE1BQU07QUFBQSxVQUNOLElBQUk7QUFBQSxVQUNKLFlBQVk7QUFBQSxVQUNaLGFBQWE7QUFBQSxVQUNiLFdBQVc7QUFBQSxVQUNYLFdBQVc7QUFBQSxVQUNYLFdBQVc7QUFBQSxVQUNYLElBQUk7QUFBQSxVQUNKLFFBQVE7QUFBQSxVQUNSLFVBQVU7QUFBQSxVQUNWLFNBQVM7QUFBQSxVQUNULFdBQVc7QUFBQSxVQUNYLFVBQVU7QUFBQSxVQUNWLFdBQVc7QUFBQSxVQUNYLFNBQVM7QUFBQSxVQUNULE1BQU07QUFBQSxVQUNOLE9BQU87QUFBQSxVQUNQLE1BQU07QUFBQSxVQUNOLE1BQU07QUFBQSxVQUNOLE1BQU07QUFBQSxVQUNOLEtBQUs7QUFBQSxVQUNMLFVBQVU7QUFBQSxVQUNWLGFBQWE7QUFBQSxVQUNiLGNBQWM7QUFBQSxVQUNkLEtBQUs7QUFBQSxVQUNMLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxVQUNQLFlBQVk7QUFBQSxVQUNaLFFBQVE7QUFBQSxVQUNSLEtBQUs7QUFBQSxVQUNMLFdBQVc7QUFBQSxVQUNYLFVBQVU7QUFBQSxVQUNWLE9BQU87QUFBQSxVQUNQLE1BQU07QUFBQSxVQUNOLFVBQVU7QUFBQSxVQUNWLE9BQU87QUFBQSxVQUNQLFlBQVk7QUFBQSxVQUNaLE1BQU07QUFBQSxVQUNOLFNBQVM7QUFBQSxVQUNULFNBQVM7QUFBQSxVQUNULGFBQWE7QUFBQSxVQUNiLGFBQWE7QUFBQSxVQUNiLFFBQVE7QUFBQSxVQUNSLFNBQVM7QUFBQSxVQUNULFNBQVM7QUFBQSxVQUNULFlBQVk7QUFBQSxVQUNaLFVBQVU7QUFBQSxVQUNWLGdCQUFnQjtBQUFBLFVBQ2hCLEtBQUs7QUFBQSxVQUNMLFVBQVU7QUFBQSxVQUNWLFVBQVU7QUFBQSxVQUNWLE1BQU07QUFBQSxVQUNOLE1BQU07QUFBQSxVQUNOLFNBQVM7QUFBQSxVQUNULFNBQVM7QUFBQSxVQUNULE9BQU87QUFBQSxVQUNQLFFBQVE7QUFBQSxVQUNSLFdBQVc7QUFBQSxVQUNYLFVBQVU7QUFBQSxVQUNWLFVBQVU7QUFBQSxVQUNWLE9BQU87QUFBQSxVQUNQLE1BQU07QUFBQSxVQUNOLE9BQU87QUFBQSxVQUNQLE1BQU07QUFBQSxVQUNOLFlBQVk7QUFBQSxVQUNaLEtBQUs7QUFBQSxVQUNMLFFBQVE7QUFBQSxVQUNSLFNBQVM7QUFBQSxVQUNULFFBQVE7QUFBQSxVQUNSLE9BQU87QUFBQSxVQUNQLE1BQU07QUFBQSxVQUNOLE9BQU87QUFBQSxVQUNQLFNBQVM7QUFBQSxVQUNULFVBQVU7QUFB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QSxVQUNiLGdCQUFnQjtBQUFBLFVBQ2hCLFFBQVE7QUFBQSxVQUNSLGNBQWM7QUFBQSxVQUNkLGlCQUFpQjtBQUFBLFVBQ2pCLFNBQVM7QUFBQSxVQUNULFVBQVU7QUFBQSxVQUNWLGNBQWM7QUFBQSxVQUNkLGFBQWE7QUFBQSxVQUNiLGlCQUFpQjtBQUFBLFVBQ2pCLGFBQWE7QUFBQSxVQUNiLGlCQUFpQjtBQUFBLFVBQ2pCLFVBQVU7QUFBQSxVQUNWLGFBQWE7QUFBQSxVQUNiLGNBQWM7QUFBQSxVQUNkLGlCQUFpQjtBQUFBLFVBQ2pCLFNBQVM7QUFBQSxVQUNULFlBQVk7QUFBQSxVQUNaLFlBQVk7QUFBQSxVQUNaLGVBQWU7QUFBQSxVQUNmLGtCQUFrQjtBQUFBLFVBQ2xCLE9BQU87QUFBQSxVQUNQLFFBQVE7QUFBQSxVQUNSLGFBQWE7QUFBQSxVQUNiLGdCQUFnQjtBQUFBLFVBQ2hCLGFBQWE7QUFBQSxVQUNiLGdCQUFnQjtBQUFBLFVBQ2hCLElBQUk7QUFBQSxVQUNKLElBQUk7QUFBQSxVQUNKLEdBQUc7QUFBQSxVQUNILGtCQUFrQjtBQUFBLFVBQ2xCLFNBQVM7QUFBQSxVQUNULFlBQVk7QUFBQSxVQUNaLGNBQWM7QUFBQSxVQUNkLGlCQUFpQjtBQUFBLFVBQ2pCLGNBQWM7QUFBQSxVQUNkLGlCQUFpQjtBQUFBLFVBQ2pCLFdBQVc7QUFBQSxVQUNYLGNBQWM7QUFBQSxVQUNkLFdBQVc7QUFBQSxVQUNYLGNBQWM7QUFBQSxVQUNkLFdBQVc7QUFBQSxVQUNYLGNBQWM7QUFBQSxVQUNkLFlBQVk7QUFBQSxVQUNaLGVBQWU7QUFBQSxVQUNmLFdBQVc7QUFBQSxVQUNYLGNBQWM7QUFBQSxVQUNkLFNBQVM7QUFBQSxVQUNULFlBQVk7QUFBQSxVQUNaLFNBQVM7QUFBQSxVQUNULFlBQVk7QUFBQSxVQUNaLE9BQU87QUFBQSxVQUNQLGFBQWE7QUFBQSxVQUNiLFlBQVk7QUFBQSxVQUNaLGVBQWU7QUFBQSxVQUNmLFVBQVU7QUFBQSxVQUNWLElBQUk7QUFBQSxVQUNKLElBQUk7QUFBQSxVQUNKLEdBQUc7QUFBQSxVQUNILGtCQUFrQjtBQUFBLFVBQ2xCLEdBQUc7QUFBQSxVQUNILFlBQVk7QUFBQTtBQUdkLFlBQUksaUJBQWlCO0FBQUEsVUFDbkIsZ0JBQWdCO0FBQUEsVUFFaEIsb0JBQW9CO0FBQUEsVUFDcEIsZ0JBQWdCO0FBQUEsVUFDaEIsaUJBQWlCO0FBQUEsVUFFakIsZUFBZTtBQUFBLFVBRWYsZ0JBQWdCO0FBQUEsVUFFaEIscUJBQXFCO0FBQUEsVUFDckIsY0FBYztBQUFBLFVBQ2Qsd0JBQXdCO0FBQUEsVUFFeEIscUJBQXFCO0FBQUEsVUFDckIsZ0JBQWdCO0FBQUEsVUFDaEIsaUJBQWlCO0FBQUEsVUFDakIsaUJBQWlCO0FBQUEsVUFDakIsY0FBYztBQUFBLFVBQ2QsY0FBYztBQUFBLFVBQ2Qsa0JBQWtCO0FBQUEsVUFDbEIsd0JBQXdCO0FBQUEsVUFDeEIsb0JBQW9CO0FBQUEsVUFDcEIsb0JBQW9CO0FBQUEsVUFDcEIsZ0JBQWdCO0FBQUEsVUFDaEIsaUJBQWlCO0FBQUEsVUFDakIsaUJBQWlCO0FBQUEsVUFDakIsaUJBQWlCO0FBQUEsVUFDakIsYUFBYTtBQUFBLFVBQ2IsaUJBQWlCO0FBQUEsVUFDakIsaUJBQWlCO0FBQUEsVUFDakIsaUJBQWlCO0FBQUEsVUFDakIsa0JBQWtCO0FBQUEsVUFFbEIsZUFBZTtBQUFBLFVBQ2YsYUFBYTtBQUFBLFVBQ2IsYUFBYTtBQUFBLFVBQ2IsaUJBQWlCO0FBQUEsVUFFakIsbUJBQW1CO0FBQUEsVUFDbkIsZ0JBQWdCO0FBQUEsVUFFaEIseUJBQXlCO0FBQUEsVUFDekIsaUJBQWlCO0FBQUEsVUFDakIsaUJBQWlCO0FBQUEsVUFDakIsZ0JBQWdCO0FBQUEsVUFDaEIsaUJBQWlCO0FBQUEsVUFDakIsb0JBQW9CO0FBQUEsVUFDcEIscUJBQXFCO0FBQUEsVUFDckIsZUFBZTtBQUFBLFVBQ2YsbUJBQW1CO0FBQUEsVUFDbkIsYUFBYTtBQUFBLFVBQ2IsaUJBQWlCO0FBQUEsVUFDakIsaUJBQWlCO0FBQUEsVUFDakIsaUJBQWlCO0FBQUEsVUFDakIsZ0JBQWdCO0FBQUEsVUFDaEIsZ0JBQWdCO0FBQUE7QUFHbEIsWUFBSSxtQkFBbUI7QUFDdkIsWUFBSSxRQUFRLElBQUksT0FBTyxjQUFjLHNCQUFzQjtBQUMzRCxZQUFJLGFBQWEsSUFBSSxPQUFPLGtCQUFrQixzQkFBc0I7QUFFcEUsa0NBQTBCLFNBQVMsTUFBTTtBQUN2QztBQUNFLGdCQUFJLGVBQWUsS0FBSyxrQkFBa0IsU0FBUyxpQkFBaUIsT0FBTztBQUN6RSxxQkFBTztBQUFBO0FBR1QsZ0JBQUksV0FBVyxLQUFLLE9BQU87QUFDekIsa0JBQUksV0FBVyxVQUFVLEtBQUssTUFBTSxHQUFHO0FBQ3ZDLGtCQUFJLGNBQWMsZUFBZSxlQUFlLFlBQVksV0FBVztBQUd2RSxrQkFBSSxlQUFlLE1BQU07QUFDdkIsc0JBQU0saUdBQWlHO0FBRXZHLGlDQUFpQixRQUFRO0FBQ3pCLHVCQUFPO0FBQUE7QUFJVCxrQkFBSSxTQUFTLGFBQWE7QUFDeEIsc0JBQU0sbURBQW1ELE1BQU07QUFFL0QsaUNBQWlCLFFBQVE7QUFDekIsdUJBQU87QUFBQTtBQUFBO0FBSVgsZ0JBQUksTUFBTSxLQUFLLE9BQU87QUFDcEIsa0JBQUksaUJBQWlCLEtBQUs7QUFDMUIsa0JBQUksZUFBZSxlQUFlLGVBQWUsa0JBQWtCLGlCQUFpQjtBQUdwRixrQkFBSSxnQkFBZ0IsTUFBTTtBQUN4QixpQ0FBaUIsUUFBUTtBQUN6Qix1QkFBTztBQUFBO0FBSVQsa0JBQUksU0FBUyxjQUFjO0FBQ3pCLHNCQUFNLG1EQUFtRCxNQUFNO0FBRS9ELGlDQUFpQixRQUFRO0FBQ3pCLHVCQUFPO0FBQUE7QUFBQTtBQUFBO0FBS2IsaUJBQU87QUFBQTtBQUdULHNDQUE4QixNQUFNLE9BQU87QUFDekM7QUFDRSxnQkFBSSxlQUFlO0FBRW5CLHFCQUFTLE9BQU8sT0FBTztBQUNyQixrQkFBSSxVQUFVLGlCQUFpQixNQUFNO0FBRXJDLGtCQUFJLENBQUMsU0FBUztBQUNaLDZCQUFhLEtBQUs7QUFBQTtBQUFBO0FBSXRCLGdCQUFJLG9CQUFvQixhQUFhLElBQUksU0FBVSxNQUFNO0FBQ3ZELHFCQUFPLE1BQU0sT0FBTztBQUFBLGVBQ25CLEtBQUs7QUFFUixnQkFBSSxhQUFhLFdBQVcsR0FBRztBQUM3QixvQkFBTSxrR0FBdUcsbUJBQW1CO0FBQUEsdUJBQ3ZILGFBQWEsU0FBUyxHQUFHO0FBQ2xDLG9CQUFNLG1HQUF3RyxtQkFBbUI7QUFBQTtBQUFBO0FBQUE7QUFLdkksb0NBQTRCLE1BQU0sT0FBTztBQUN2QyxjQUFJLGtCQUFrQixNQUFNLFFBQVE7QUFDbEM7QUFBQTtBQUdGLCtCQUFxQixNQUFNO0FBQUE7QUFHN0IsWUFBSSxtQkFBbUI7QUFDdkIsc0NBQThCLE1BQU0sT0FBTztBQUN6QztBQUNFLGdCQUFJLFNBQVMsV0FBVyxTQUFTLGNBQWMsU0FBUyxVQUFVO0FBQ2hFO0FBQUE7QUFHRixnQkFBSSxTQUFTLFFBQVEsTUFBTSxVQUFVLFFBQVEsQ0FBQyxrQkFBa0I7QUFDOUQsaUNBQW1CO0FBRW5CLGtCQUFJLFNBQVMsWUFBWSxNQUFNLFVBQVU7QUFDdkMsc0JBQU0sOEtBQXdMO0FBQUEscUJBQ3pMO0FBQ0wsc0JBQU0sOElBQXdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNdEssWUFBSSxxQkFBcUIsV0FBWTtBQUFBO0FBRXJDO0FBQ0UsY0FBSSxxQkFBcUI7QUFDekIsY0FBSSxtQkFBbUI7QUFDdkIsY0FBSSwyQkFBMkI7QUFDL0IsY0FBSSxVQUFVLElBQUksT0FBTyxjQUFjLHNCQUFzQjtBQUM3RCxjQUFJLGVBQWUsSUFBSSxPQUFPLGtCQUFrQixzQkFBc0I7QUFFdEUsK0JBQXFCLFNBQVUsU0FBUyxNQUFNLE9BQU8sZUFBZTtBQUNsRSxnQkFBSSxlQUFlLEtBQUssb0JBQW9CLFNBQVMsbUJBQW1CLE9BQU87QUFDN0UscUJBQU87QUFBQTtBQUdULGdCQUFJLGlCQUFpQixLQUFLO0FBRTFCLGdCQUFJLG1CQUFtQixlQUFlLG1CQUFtQixjQUFjO0FBQ3JFLG9CQUFNO0FBRU4saUNBQW1CLFFBQVE7QUFDM0IscUJBQU87QUFBQTtBQUlULGdCQUFJLGlCQUFpQixNQUFNO0FBQ3pCLGtCQUFJLGdDQUErQixjQUFjLDhCQUM3Qyw2QkFBNEIsY0FBYztBQUU5QyxrQkFBSSw4QkFBNkIsZUFBZSxPQUFPO0FBQ3JELHVCQUFPO0FBQUE7QUFHVCxrQkFBSSxtQkFBbUIsMkJBQTBCLGVBQWUsa0JBQWtCLDJCQUEwQixrQkFBa0I7QUFFOUgsa0JBQUksb0JBQW9CLE1BQU07QUFDNUIsc0JBQU0sMkRBQTJELE1BQU07QUFFdkUsbUNBQW1CLFFBQVE7QUFDM0IsdUJBQU87QUFBQTtBQUdULGtCQUFJLGlCQUFpQixLQUFLLE9BQU87QUFDL0Isc0JBQU0sNERBQTREO0FBRWxFLG1DQUFtQixRQUFRO0FBQzNCLHVCQUFPO0FBQUE7QUFBQSx1QkFFQSxpQkFBaUIsS0FBSyxPQUFPO0FBSXRDLGtCQUFJLHlCQUF5QixLQUFLLE9BQU87QUFDdkMsc0JBQU0saUhBQXNIO0FBQUE7QUFHOUgsaUNBQW1CLFFBQVE7QUFDM0IscUJBQU87QUFBQTtBQUlULGdCQUFJLFFBQVEsS0FBSyxTQUFTLGFBQWEsS0FBSyxPQUFPO0FBQ2pELHFCQUFPO0FBQUE7QUFHVCxnQkFBSSxtQkFBbUIsYUFBYTtBQUNsQyxvQkFBTTtBQUVOLGlDQUFtQixRQUFRO0FBQzNCLHFCQUFPO0FBQUE7QUFHVCxnQkFBSSxtQkFBbUIsUUFBUTtBQUM3QixvQkFBTTtBQUVOLGlDQUFtQixRQUFRO0FBQzNCLHFCQUFPO0FBQUE7QUFHVCxnQkFBSSxtQkFBbUIsUUFBUSxVQUFVLFFBQVEsVUFBVSxVQUFhLE9BQU8sVUFBVSxVQUFVO0FBQ2pHLG9CQUFNLGlHQUFzRyxPQUFPO0FBRW5ILGlDQUFtQixRQUFRO0FBQzNCLHFCQUFPO0FBQUE7QUFHVCxnQkFBSSxPQUFPLFVBQVUsWUFBWSxNQUFNLFFBQVE7QUFDN0Msb0JBQU0seUZBQThGO0FBRXBHLGlDQUFtQixRQUFRO0FBQzNCLHFCQUFPO0FBQUE7QUFHVCxnQkFBSSxlQUFlLGdCQUFnQjtBQUNuQyxnQkFBSSxhQUFhLGlCQUFpQixRQUFRLGFBQWEsU0FBUztBQUVoRSxnQkFBSSxzQkFBc0IsZUFBZSxpQkFBaUI7QUFDeEQsa0JBQUksZUFBZSxzQkFBc0I7QUFFekMsa0JBQUksaUJBQWlCLE1BQU07QUFDekIsc0JBQU0saURBQWlELE1BQU07QUFFN0QsbUNBQW1CLFFBQVE7QUFDM0IsdUJBQU87QUFBQTtBQUFBLHVCQUVBLENBQUMsY0FBYyxTQUFTLGdCQUFnQjtBQUdqRCxvQkFBTSxnUUFBb1IsTUFBTTtBQUVoUyxpQ0FBbUIsUUFBUTtBQUMzQixxQkFBTztBQUFBO0FBR1QsZ0JBQUksT0FBTyxVQUFVLGFBQWEsaUNBQWlDLE1BQU0sT0FBTyxjQUFjLFFBQVE7QUFDcEcsa0JBQUksT0FBTztBQUNULHNCQUFNLG1KQUE2SixPQUFPLE1BQU0sTUFBTSxPQUFPO0FBQUEscUJBQ3hMO0FBQ0wsc0JBQU0sMFFBQThSLE9BQU8sTUFBTSxNQUFNLE9BQU8sTUFBTSxNQUFNO0FBQUE7QUFHNVUsaUNBQW1CLFFBQVE7QUFDM0IscUJBQU87QUFBQTtBQUtULGdCQUFJLFlBQVk7QUFDZCxxQkFBTztBQUFBO0FBSVQsZ0JBQUksaUNBQWlDLE1BQU0sT0FBTyxjQUFjLFFBQVE7QUFDdEUsaUNBQW1CLFFBQVE7QUFDM0IscUJBQU87QUFBQTtBQUlULGdCQUFLLFdBQVUsV0FBVyxVQUFVLFdBQVcsaUJBQWlCLFFBQVEsYUFBYSxTQUFTLFNBQVM7QUFDckcsb0JBQU0scUZBQStGLE9BQU8sTUFBTSxVQUFVLFVBQVUscURBQXFELHFGQUFxRixNQUFNO0FBRXRSLGlDQUFtQixRQUFRO0FBQzNCLHFCQUFPO0FBQUE7QUFHVCxtQkFBTztBQUFBO0FBQUE7QUFJWCxZQUFJLHdCQUF3QixTQUFVLE1BQU0sT0FBTyxlQUFlO0FBQ2hFO0FBQ0UsZ0JBQUksZUFBZTtBQUVuQixxQkFBUyxPQUFPLE9BQU87QUFDckIsa0JBQUksVUFBVSxtQkFBbUIsTUFBTSxLQUFLLE1BQU0sTUFBTTtBQUV4RCxrQkFBSSxDQUFDLFNBQVM7QUFDWiw2QkFBYSxLQUFLO0FBQUE7QUFBQTtBQUl0QixnQkFBSSxvQkFBb0IsYUFBYSxJQUFJLFNBQVUsTUFBTTtBQUN2RCxxQkFBTyxNQUFNLE9BQU87QUFBQSxlQUNuQixLQUFLO0FBRVIsZ0JBQUksYUFBYSxXQUFXLEdBQUc7QUFDN0Isb0JBQU0sbU1BQTZNLG1CQUFtQjtBQUFBLHVCQUM3TixhQUFhLFNBQVMsR0FBRztBQUNsQyxvQkFBTSx5TUFBbU4sbUJBQW1CO0FBQUE7QUFBQTtBQUFBO0FBS2xQLHNDQUE4QixNQUFNLE9BQU8sZUFBZTtBQUN4RCxjQUFJLGtCQUFrQixNQUFNLFFBQVE7QUFDbEM7QUFBQTtBQUdGLGdDQUFzQixNQUFNLE9BQU87QUFBQTtBQUdyQyxZQUFJLG1DQUFtQztBQUN2QyxZQUFJLG1CQUFtQixLQUFLO0FBQzVCLFlBQUksbUJBQW1CLEtBQUs7QUFNNUIsWUFBSSw0Q0FBNEMsbUNBQW1DLG1CQUFtQjtBQUl0RyxZQUFJLHdCQUF3QjtBQUM1QixtQ0FBMkIsT0FBTztBQUNoQztBQUNFLGdCQUFJLDBCQUEwQixNQUFNO0FBQ2xDLG9CQUFNO0FBQUE7QUFBQTtBQUlWLGtDQUF3QjtBQUFBO0FBRTFCLHVDQUErQjtBQUM3QjtBQUNFLGdCQUFJLDBCQUEwQixNQUFNO0FBQ2xDLG9CQUFNO0FBQUE7QUFBQTtBQUlWLGtDQUF3QjtBQUFBO0FBRTFCLGtDQUEwQixPQUFPO0FBQy9CLGlCQUFPLFVBQVU7QUFBQTtBQVduQixnQ0FBd0IsYUFBYTtBQUduQyxjQUFJLFNBQVMsWUFBWSxVQUFVLFlBQVksY0FBYztBQUU3RCxjQUFJLE9BQU8seUJBQXlCO0FBQ2xDLHFCQUFTLE9BQU87QUFBQTtBQUtsQixpQkFBTyxPQUFPLGFBQWEsWUFBWSxPQUFPLGFBQWE7QUFBQTtBQUc3RCxZQUFJLGNBQWM7QUFDbEIsWUFBSSxnQkFBZ0I7QUFDcEIsWUFBSSxlQUFlO0FBRW5CLHNDQUE4QixRQUFRO0FBR3BDLGNBQUksbUJBQW1CLG9CQUFvQjtBQUUzQyxjQUFJLENBQUMsa0JBQWtCO0FBRXJCO0FBQUE7QUFHRixjQUFJLE9BQU8sZ0JBQWdCLFlBQVk7QUFDckMsa0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsY0FBSSxZQUFZLGlCQUFpQjtBQUVqQyxjQUFJLFdBQVc7QUFDYixnQkFBSSxTQUFTLDZCQUE2QjtBQUUxQyx3QkFBWSxpQkFBaUIsV0FBVyxpQkFBaUIsTUFBTTtBQUFBO0FBQUE7QUFJbkUsMENBQWtDLE1BQU07QUFDdEMsd0JBQWM7QUFBQTtBQUVoQixxQ0FBNkIsUUFBUTtBQUNuQyxjQUFJLGVBQWU7QUFDakIsZ0JBQUksY0FBYztBQUNoQiwyQkFBYSxLQUFLO0FBQUEsbUJBQ2I7QUFDTCw2QkFBZSxDQUFDO0FBQUE7QUFBQSxpQkFFYjtBQUNMLDRCQUFnQjtBQUFBO0FBQUE7QUFHcEIscUNBQTZCO0FBQzNCLGlCQUFPLGtCQUFrQixRQUFRLGlCQUFpQjtBQUFBO0FBRXBELHdDQUFnQztBQUM5QixjQUFJLENBQUMsZUFBZTtBQUNsQjtBQUFBO0FBR0YsY0FBSSxTQUFTO0FBQ2IsY0FBSSxnQkFBZ0I7QUFDcEIsMEJBQWdCO0FBQ2hCLHlCQUFlO0FBQ2YsK0JBQXFCO0FBRXJCLGNBQUksZUFBZTtBQUNqQixxQkFBUyxJQUFJLEdBQUcsSUFBSSxjQUFjLFFBQVEsS0FBSztBQUM3QyxtQ0FBcUIsY0FBYztBQUFBO0FBQUE7QUFBQTtBQVd6QyxZQUFJLHFCQUFxQixTQUFVLElBQUksYUFBYTtBQUNsRCxpQkFBTyxHQUFHO0FBQUE7QUFHWixZQUFJLGdCQUFnQixXQUFZO0FBQUE7QUFFaEMsWUFBSSx1QkFBdUI7QUFFM0Isc0NBQThCO0FBSzVCLGNBQUkseUNBQXlDO0FBRTdDLGNBQUksd0NBQXdDO0FBTTFDO0FBQ0E7QUFBQTtBQUFBO0FBSUosZ0NBQXdCLElBQUksR0FBRyxHQUFHO0FBQ2hDLGNBQUksc0JBQXNCO0FBR3hCLG1CQUFPLEdBQUcsR0FBRztBQUFBO0FBR2YsaUNBQXVCO0FBRXZCLGNBQUk7QUFDRixtQkFBTyxtQkFBbUIsSUFBSSxHQUFHO0FBQUEsb0JBQ2pDO0FBQ0EsbUNBQXVCO0FBQ3ZCO0FBQUE7QUFBQTtBQUdKLDJDQUFtQyxxQkFBcUIsc0JBQXNCLGdCQUFnQjtBQUM1RiwrQkFBcUI7QUFDckIsMEJBQWdCO0FBQUE7QUFHbEIsK0JBQXVCLEtBQUs7QUFDMUIsaUJBQU8sUUFBUSxZQUFZLFFBQVEsV0FBVyxRQUFRLFlBQVksUUFBUTtBQUFBO0FBRzVFLHlDQUFpQyxNQUFNLE1BQU0sT0FBTztBQUNsRCxrQkFBUTtBQUFBLGlCQUNEO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFDSCxxQkFBTyxDQUFDLENBQUUsT0FBTSxZQUFZLGNBQWM7QUFBQTtBQUcxQyxxQkFBTztBQUFBO0FBQUE7QUFVYiw2QkFBcUIsTUFBTSxrQkFBa0I7QUFDM0MsY0FBSSxZQUFZLEtBQUs7QUFFckIsY0FBSSxjQUFjLE1BQU07QUFFdEIsbUJBQU87QUFBQTtBQUdULGNBQUksUUFBUSw2QkFBNkI7QUFFekMsY0FBSSxVQUFVLE1BQU07QUFFbEIsbUJBQU87QUFBQTtBQUdULGNBQUksV0FBVyxNQUFNO0FBRXJCLGNBQUksd0JBQXdCLGtCQUFrQixLQUFLLE1BQU0sUUFBUTtBQUMvRCxtQkFBTztBQUFBO0FBR1QsY0FBSSxZQUFZLE9BQU8sYUFBYSxZQUFZO0FBQzlDLGtCQUFNLElBQUksTUFBTSxlQUFlLG1CQUFtQiwwREFBMEQsT0FBTyxXQUFXO0FBQUE7QUFHaEksaUJBQU87QUFBQTtBQUdULFlBQUksZ0NBQWdDO0FBR3BDLFlBQUksV0FBVztBQUNiLGNBQUk7QUFDRixnQkFBSSxVQUFVO0FBRWQsbUJBQU8sZUFBZSxTQUFTLFdBQVc7QUFBQSxjQUN4QyxLQUFLLFdBQVk7QUFDZixnREFBZ0M7QUFBQTtBQUFBO0FBR3BDLG1CQUFPLGlCQUFpQixRQUFRLFNBQVM7QUFDekMsbUJBQU8sb0JBQW9CLFFBQVEsU0FBUztBQUFBLG1CQUNyQyxHQUFQO0FBQ0EsNENBQWdDO0FBQUE7QUFBQTtBQUlwQywyQ0FBbUMsTUFBTSxNQUFNLFNBQVMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUc7QUFDeEUsY0FBSSxXQUFXLE1BQU0sVUFBVSxNQUFNLEtBQUssV0FBVztBQUVyRCxjQUFJO0FBQ0YsaUJBQUssTUFBTSxTQUFTO0FBQUEsbUJBQ2IsUUFBUDtBQUNBLGlCQUFLLFFBQVE7QUFBQTtBQUFBO0FBSWpCLFlBQUksNEJBQTRCO0FBRWhDO0FBcUJFLGNBQUksT0FBTyxXQUFXLGVBQWUsT0FBTyxPQUFPLGtCQUFrQixjQUFjLE9BQU8sYUFBYSxlQUFlLE9BQU8sU0FBUyxnQkFBZ0IsWUFBWTtBQUNoSyxnQkFBSSxXQUFXLFNBQVMsY0FBYztBQUV0Qyx3Q0FBNEIsa0NBQWtDLE1BQU0sTUFBTSxTQUFTLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHO0FBS25HLGtCQUFJLE9BQU8sYUFBYSxlQUFlLGFBQWEsTUFBTTtBQUN4RCxzQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQixrQkFBSSxNQUFNLFNBQVMsWUFBWTtBQUMvQixrQkFBSSxVQUFVO0FBT2Qsa0JBQUksV0FBVztBQUlmLGtCQUFJLGNBQWMsT0FBTztBQUd6QixrQkFBSSx3QkFBd0IsT0FBTyx5QkFBeUIsUUFBUTtBQUVwRSw4Q0FBZ0M7QUFLOUIseUJBQVMsb0JBQW9CLFNBQVMsZUFBYztBQUtwRCxvQkFBSSxPQUFPLE9BQU8sVUFBVSxlQUFlLE9BQU8sZUFBZSxVQUFVO0FBQ3pFLHlCQUFPLFFBQVE7QUFBQTtBQUFBO0FBT25CLGtCQUFJLFdBQVcsTUFBTSxVQUFVLE1BQU0sS0FBSyxXQUFXO0FBRXJELHVDQUF3QjtBQUN0QiwwQkFBVTtBQUNWO0FBQ0EscUJBQUssTUFBTSxTQUFTO0FBQ3BCLDJCQUFXO0FBQUE7QUFjYixrQkFBSTtBQUVKLGtCQUFJLGNBQWM7QUFDbEIsa0JBQUkscUJBQXFCO0FBRXpCLHlDQUEyQixPQUFPO0FBQ2hDLHlCQUFRLE1BQU07QUFDZCw4QkFBYztBQUVkLG9CQUFJLFdBQVUsUUFBUSxNQUFNLFVBQVUsS0FBSyxNQUFNLFdBQVcsR0FBRztBQUM3RCx1Q0FBcUI7QUFBQTtBQUd2QixvQkFBSSxNQUFNLGtCQUFrQjtBQUkxQixzQkFBSSxVQUFTLFFBQVEsT0FBTyxXQUFVLFVBQVU7QUFDOUMsd0JBQUk7QUFDRiw2QkFBTSxtQkFBbUI7QUFBQSw2QkFDbEIsT0FBUDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT1Isa0JBQUksVUFBVSxXQUFZLFFBQU8sT0FBTztBQUV4QyxxQkFBTyxpQkFBaUIsU0FBUztBQUNqQyx1QkFBUyxpQkFBaUIsU0FBUyxlQUFjO0FBR2pELGtCQUFJLFVBQVUsU0FBUyxPQUFPO0FBQzlCLHVCQUFTLGNBQWM7QUFFdkIsa0JBQUksdUJBQXVCO0FBQ3pCLHVCQUFPLGVBQWUsUUFBUSxTQUFTO0FBQUE7QUFHekMsa0JBQUksV0FBVyxVQUFVO0FBQ3ZCLG9CQUFJLENBQUMsYUFBYTtBQUdoQiwyQkFBUSxJQUFJLE1BQU07QUFBQSwyQkFDVCxvQkFBb0I7QUFFN0IsMkJBQVEsSUFBSSxNQUFNO0FBQUE7QUFHcEIscUJBQUssUUFBUTtBQUFBO0FBSWYscUJBQU8sb0JBQW9CLFNBQVM7QUFFcEMsa0JBQUksQ0FBQyxTQUFTO0FBS1o7QUFDQSx1QkFBTywwQkFBMEIsTUFBTSxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNckQsWUFBSSw4QkFBOEI7QUFFbEMsWUFBSSxXQUFXO0FBQ2YsWUFBSSxjQUFjO0FBRWxCLFlBQUksa0JBQWtCO0FBQ3RCLFlBQUksZUFBZTtBQUNuQixZQUFJLFdBQVc7QUFBQSxVQUNiLFNBQVMsU0FBVSxRQUFPO0FBQ3hCLHVCQUFXO0FBQ1gsMEJBQWM7QUFBQTtBQUFBO0FBaUJsQix1Q0FBK0IsTUFBTSxNQUFNLFNBQVMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUc7QUFDcEUscUJBQVc7QUFDWCx3QkFBYztBQUNkLHNDQUE0QixNQUFNLFVBQVU7QUFBQTtBQWE5Qyx5REFBaUQsTUFBTSxNQUFNLFNBQVMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUc7QUFDdEYsZ0NBQXNCLE1BQU0sTUFBTTtBQUVsQyxjQUFJLFVBQVU7QUFDWixnQkFBSSxTQUFRO0FBRVosZ0JBQUksQ0FBQyxpQkFBaUI7QUFDcEIsZ0NBQWtCO0FBQ2xCLDZCQUFlO0FBQUE7QUFBQTtBQUFBO0FBU3JCLHNDQUE4QjtBQUM1QixjQUFJLGlCQUFpQjtBQUNuQixnQkFBSSxTQUFRO0FBQ1osOEJBQWtCO0FBQ2xCLDJCQUFlO0FBQ2Ysa0JBQU07QUFBQTtBQUFBO0FBR1Ysa0NBQTBCO0FBQ3hCLGlCQUFPO0FBQUE7QUFFVCxvQ0FBNEI7QUFDMUIsY0FBSSxVQUFVO0FBQ1osZ0JBQUksU0FBUTtBQUNaLHVCQUFXO0FBQ1gsMEJBQWM7QUFDZCxtQkFBTztBQUFBLGlCQUNGO0FBQ0wsa0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFBQTtBQWFwQixxQkFBYSxLQUFLO0FBQ2hCLGlCQUFPLElBQUk7QUFBQTtBQUViLHFCQUFhLEtBQUs7QUFDaEIsaUJBQU8sSUFBSSxvQkFBb0I7QUFBQTtBQUVqQyxxQkFBYSxLQUFLLE9BQU87QUFDdkIsY0FBSSxrQkFBa0I7QUFBQTtBQUl4QixZQUFJLFVBRUo7QUFDQSxZQUFJLGdCQUVKO0FBRUEsWUFBSSxZQUVKO0FBQ0EsWUFBSSxTQUVKO0FBQ0EsWUFBSSxxQkFFSixZQUFZO0FBQ1osWUFBSSxnQkFFSjtBQUNBLFlBQUksZUFFSjtBQUNBLFlBQUksV0FFSjtBQUNBLFlBQUksYUFFSjtBQUNBLFlBQUksb0JBRUo7QUFDQSxZQUFJLE1BRUo7QUFDQSxZQUFJLFdBRUo7QUFDQSxZQUFJLFVBRUo7QUFDQSxZQUFJLFlBRUo7QUFDQSxZQUFJLHFCQUVKLFlBQVk7QUFDWixZQUFJLGFBRUo7QUFDQSxZQUFJLG1CQUVKO0FBQ0EsWUFBSSxzQkFBc0IsVUFBVSxTQUFTLFdBQVcsTUFBTSxXQUFXO0FBRXpFLFlBQUksaUJBRUo7QUFFQSxZQUFJLGFBRUo7QUFDQSxZQUFJLGdCQUVKO0FBQ0EsWUFBSSwrQkFFSjtBQUNBLFlBQUksU0FFSjtBQU1BLFlBQUksWUFFSjtBQUNBLFlBQUksZUFFSjtBQUNBLFlBQUksZ0JBRUo7QUFJQSxZQUFJLGlCQUVKO0FBQ0EsWUFBSSxrQkFFSjtBQUdBLFlBQUkscUJBRUosU0FBUyxXQUFhO0FBQ3RCLFlBQUksZUFBZSxZQUFZLFNBQVMsZ0JBQWdCLGVBQWUsTUFBTSxZQUFZO0FBQ3pGLFlBQUksYUFBYSxTQUFTLFdBQVcsTUFBTTtBQUUzQyxZQUFJLGNBQWMsVUFBVTtBQUk1QixZQUFJLGFBQWEsZUFBZSxnQkFBZ0I7QUFFaEQsWUFBSSxvQkFBb0IscUJBQXFCO0FBQzdDLHdDQUFnQyxPQUFPO0FBQ3JDLGNBQUksT0FBTztBQUNYLGNBQUksaUJBQWlCO0FBRXJCLGNBQUksQ0FBQyxNQUFNLFdBQVc7QUFHcEIsZ0JBQUksV0FBVztBQUVmLGVBQUc7QUFDRCxxQkFBTztBQUVQLGtCQUFLLE1BQUssUUFBUyxhQUFZLGdCQUFnQixTQUFTO0FBSXRELGlDQUFpQixLQUFLO0FBQUE7QUFHeEIseUJBQVcsS0FBSztBQUFBLHFCQUNUO0FBQUEsaUJBQ0o7QUFDTCxtQkFBTyxLQUFLLFFBQVE7QUFDbEIscUJBQU8sS0FBSztBQUFBO0FBQUE7QUFJaEIsY0FBSSxLQUFLLFFBQVEsVUFBVTtBQUd6QixtQkFBTztBQUFBO0FBS1QsaUJBQU87QUFBQTtBQUVULDhDQUFzQyxPQUFPO0FBQzNDLGNBQUksTUFBTSxRQUFRLG1CQUFtQjtBQUNuQyxnQkFBSSxnQkFBZ0IsTUFBTTtBQUUxQixnQkFBSSxrQkFBa0IsTUFBTTtBQUMxQixrQkFBSSxXQUFVLE1BQU07QUFFcEIsa0JBQUksYUFBWSxNQUFNO0FBQ3BCLGdDQUFnQixTQUFRO0FBQUE7QUFBQTtBQUk1QixnQkFBSSxrQkFBa0IsTUFBTTtBQUMxQixxQkFBTyxjQUFjO0FBQUE7QUFBQTtBQUl6QixpQkFBTztBQUFBO0FBRVQsdUNBQStCLE9BQU87QUFDcEMsaUJBQU8sTUFBTSxRQUFRLFdBQVcsTUFBTSxVQUFVLGdCQUFnQjtBQUFBO0FBRWxFLGdDQUF3QixPQUFPO0FBQzdCLGlCQUFPLHVCQUF1QixXQUFXO0FBQUE7QUFFM0MsMkJBQW1CLFdBQVc7QUFDNUI7QUFDRSxnQkFBSSxRQUFRLGtCQUFrQjtBQUU5QixnQkFBSSxVQUFVLFFBQVEsTUFBTSxRQUFRLGdCQUFnQjtBQUNsRCxrQkFBSSxhQUFhO0FBQ2pCLGtCQUFJLFdBQVcsV0FBVztBQUUxQixrQkFBSSxDQUFDLFNBQVMsMEJBQTBCO0FBQ3RDLHNCQUFNLHlSQUE2UywwQkFBMEIsZUFBZTtBQUFBO0FBRzlWLHVCQUFTLDJCQUEyQjtBQUFBO0FBQUE7QUFJeEMsY0FBSSxRQUFRLElBQUk7QUFFaEIsY0FBSSxDQUFDLE9BQU87QUFDVixtQkFBTztBQUFBO0FBR1QsaUJBQU8sdUJBQXVCLFdBQVc7QUFBQTtBQUczQyxpQ0FBeUIsT0FBTztBQUM5QixjQUFJLHVCQUF1QixXQUFXLE9BQU87QUFDM0Msa0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFBQTtBQUlwQiwrQ0FBdUMsT0FBTztBQUM1QyxjQUFJLFlBQVksTUFBTTtBQUV0QixjQUFJLENBQUMsV0FBVztBQUVkLGdCQUFJLGlCQUFpQix1QkFBdUI7QUFFNUMsZ0JBQUksbUJBQW1CLE1BQU07QUFDM0Isb0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsZ0JBQUksbUJBQW1CLE9BQU87QUFDNUIscUJBQU87QUFBQTtBQUdULG1CQUFPO0FBQUE7QUFNVCxjQUFJLElBQUk7QUFDUixjQUFJLElBQUk7QUFFUixpQkFBTyxNQUFNO0FBQ1gsZ0JBQUksVUFBVSxFQUFFO0FBRWhCLGdCQUFJLFlBQVksTUFBTTtBQUVwQjtBQUFBO0FBR0YsZ0JBQUksVUFBVSxRQUFRO0FBRXRCLGdCQUFJLFlBQVksTUFBTTtBQUtwQixrQkFBSSxhQUFhLFFBQVE7QUFFekIsa0JBQUksZUFBZSxNQUFNO0FBQ3ZCLG9CQUFJLElBQUk7QUFDUjtBQUFBO0FBSUY7QUFBQTtBQU1GLGdCQUFJLFFBQVEsVUFBVSxRQUFRLE9BQU87QUFDbkMsa0JBQUksUUFBUSxRQUFRO0FBRXBCLHFCQUFPLE9BQU87QUFDWixvQkFBSSxVQUFVLEdBQUc7QUFFZixrQ0FBZ0I7QUFDaEIseUJBQU87QUFBQTtBQUdULG9CQUFJLFVBQVUsR0FBRztBQUVmLGtDQUFnQjtBQUNoQix5QkFBTztBQUFBO0FBR1Qsd0JBQVEsTUFBTTtBQUFBO0FBS2hCLG9CQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLGdCQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVE7QUFLekIsa0JBQUk7QUFDSixrQkFBSTtBQUFBLG1CQUNDO0FBTUwsa0JBQUksZUFBZTtBQUNuQixrQkFBSSxTQUFTLFFBQVE7QUFFckIscUJBQU8sUUFBUTtBQUNiLG9CQUFJLFdBQVcsR0FBRztBQUNoQixpQ0FBZTtBQUNmLHNCQUFJO0FBQ0osc0JBQUk7QUFDSjtBQUFBO0FBR0Ysb0JBQUksV0FBVyxHQUFHO0FBQ2hCLGlDQUFlO0FBQ2Ysc0JBQUk7QUFDSixzQkFBSTtBQUNKO0FBQUE7QUFHRix5QkFBUyxPQUFPO0FBQUE7QUFHbEIsa0JBQUksQ0FBQyxjQUFjO0FBRWpCLHlCQUFTLFFBQVE7QUFFakIsdUJBQU8sUUFBUTtBQUNiLHNCQUFJLFdBQVcsR0FBRztBQUNoQixtQ0FBZTtBQUNmLHdCQUFJO0FBQ0osd0JBQUk7QUFDSjtBQUFBO0FBR0Ysc0JBQUksV0FBVyxHQUFHO0FBQ2hCLG1DQUFlO0FBQ2Ysd0JBQUk7QUFDSix3QkFBSTtBQUNKO0FBQUE7QUFHRiwyQkFBUyxPQUFPO0FBQUE7QUFHbEIsb0JBQUksQ0FBQyxjQUFjO0FBQ2pCLHdCQUFNLElBQUksTUFBTTtBQUFBO0FBQUE7QUFBQTtBQUt0QixnQkFBSSxFQUFFLGNBQWMsR0FBRztBQUNyQixvQkFBTSxJQUFJLE1BQU07QUFBQTtBQUFBO0FBTXBCLGNBQUksRUFBRSxRQUFRLFVBQVU7QUFDdEIsa0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsY0FBSSxFQUFFLFVBQVUsWUFBWSxHQUFHO0FBRTdCLG1CQUFPO0FBQUE7QUFJVCxpQkFBTztBQUFBO0FBRVQsc0NBQThCLFFBQVE7QUFDcEMsY0FBSSxnQkFBZ0IsOEJBQThCO0FBQ2xELGlCQUFPLGtCQUFrQixPQUFPLHlCQUF5QixpQkFBaUI7QUFBQTtBQUc1RSwwQ0FBa0MsTUFBTTtBQUV0QyxjQUFJLEtBQUssUUFBUSxpQkFBaUIsS0FBSyxRQUFRLFVBQVU7QUFDdkQsbUJBQU87QUFBQTtBQUdULGNBQUksUUFBUSxLQUFLO0FBRWpCLGlCQUFPLFVBQVUsTUFBTTtBQUNyQixnQkFBSSxRQUFRLHlCQUF5QjtBQUVyQyxnQkFBSSxVQUFVLE1BQU07QUFDbEIscUJBQU87QUFBQTtBQUdULG9CQUFRLE1BQU07QUFBQTtBQUdoQixpQkFBTztBQUFBO0FBR1QsbURBQTJDLFFBQVE7QUFDakQsY0FBSSxnQkFBZ0IsOEJBQThCO0FBQ2xELGlCQUFPLGtCQUFrQixPQUFPLHNDQUFzQyxpQkFBaUI7QUFBQTtBQUd6Rix1REFBK0MsTUFBTTtBQUVuRCxjQUFJLEtBQUssUUFBUSxpQkFBaUIsS0FBSyxRQUFRLFVBQVU7QUFDdkQsbUJBQU87QUFBQTtBQUdULGNBQUksUUFBUSxLQUFLO0FBRWpCLGlCQUFPLFVBQVUsTUFBTTtBQUNyQixnQkFBSSxNQUFNLFFBQVEsWUFBWTtBQUM1QixrQkFBSSxRQUFRLHNDQUFzQztBQUVsRCxrQkFBSSxVQUFVLE1BQU07QUFDbEIsdUJBQU87QUFBQTtBQUFBO0FBSVgsb0JBQVEsTUFBTTtBQUFBO0FBR2hCLGlCQUFPO0FBQUE7QUFJVCxZQUFJLG1CQUFtQixVQUFVO0FBQ2pDLFlBQUksaUJBQWlCLFVBQVU7QUFDL0IsWUFBSSxjQUFjLFVBQVU7QUFDNUIsWUFBSSxlQUFlLFVBQVU7QUFDN0IsWUFBSSxNQUFNLFVBQVU7QUFDcEIsWUFBSSwwQkFBMEIsVUFBVTtBQUN4QyxZQUFJLG9CQUFvQixVQUFVO0FBQ2xDLFlBQUksdUJBQXVCLFVBQVU7QUFDckMsWUFBSSxpQkFBaUIsVUFBVTtBQUMvQixZQUFJLGNBQWMsVUFBVTtBQUM1QixZQUFJLGVBQWUsVUFBVTtBQUc3QixZQUFJLHNCQUFzQixVQUFVO0FBQ3BDLFlBQUksZ0NBQWdDLFVBQVU7QUFFOUMsWUFBSSxhQUFhO0FBQ2pCLFlBQUksZUFBZTtBQUNuQixZQUFJLHlCQUF5QjtBQUM3QixZQUFJLGlCQUFpQjtBQUNyQixZQUFJLG9CQUFvQixPQUFPLG1DQUFtQztBQUNsRSxpQ0FBeUIsV0FBVztBQUNsQyxjQUFJLE9BQU8sbUNBQW1DLGFBQWE7QUFFekQsbUJBQU87QUFBQTtBQUdULGNBQUksT0FBTztBQUVYLGNBQUksS0FBSyxZQUFZO0FBSW5CLG1CQUFPO0FBQUE7QUFHVCxjQUFJLENBQUMsS0FBSyxlQUFlO0FBQ3ZCO0FBQ0Usb0JBQU07QUFBQTtBQUlSLG1CQUFPO0FBQUE7QUFHVCxjQUFJO0FBQ0YsZ0JBQUksMEJBQTBCO0FBSTVCLDBCQUFZLE9BQU8sSUFBSSxXQUFXO0FBQUEsZ0JBQ2hDO0FBQUEsZ0JBQ0E7QUFBQTtBQUFBO0FBSUoseUJBQWEsS0FBSyxPQUFPO0FBRXpCLDJCQUFlO0FBQUEsbUJBQ1IsS0FBUDtBQUVBO0FBQ0Usb0JBQU0sbURBQW1EO0FBQUE7QUFBQTtBQUk3RCxjQUFJLEtBQUssVUFBVTtBQUVqQixtQkFBTztBQUFBLGlCQUNGO0FBRUwsbUJBQU87QUFBQTtBQUFBO0FBR1gsZ0NBQXdCLE9BQU0sVUFBVTtBQUN0QztBQUNFLGdCQUFJLGdCQUFnQixPQUFPLGFBQWEsd0JBQXdCLFlBQVk7QUFDMUUsa0JBQUk7QUFDRiw2QkFBYSxvQkFBb0IsWUFBWSxPQUFNO0FBQUEsdUJBQzVDLEtBQVA7QUFDQSxvQkFBSyxDQUFDLGdCQUFnQjtBQUNwQixtQ0FBaUI7QUFFakIsd0JBQU0sa0RBQWtEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1sRSw4QkFBc0IsT0FBTSxlQUFlO0FBQ3pDLGNBQUksZ0JBQWdCLE9BQU8sYUFBYSxzQkFBc0IsWUFBWTtBQUN4RSxnQkFBSTtBQUNGLGtCQUFJLFdBQVksT0FBSyxRQUFRLFFBQVEsZ0JBQWdCO0FBRXJELGtCQUFJLHFCQUFxQjtBQUN2QixvQkFBSTtBQUVKLHdCQUFRO0FBQUEsdUJBQ0Q7QUFDSCx3Q0FBb0I7QUFDcEI7QUFBQSx1QkFFRztBQUNILHdDQUFvQjtBQUNwQjtBQUFBLHVCQUVHO0FBQ0gsd0NBQW9CO0FBQ3BCO0FBQUEsdUJBRUc7QUFDSCx3Q0FBb0I7QUFDcEI7QUFBQTtBQUdBLHdDQUFvQjtBQUNwQjtBQUFBO0FBR0osNkJBQWEsa0JBQWtCLFlBQVksT0FBTSxtQkFBbUI7QUFBQSxxQkFDL0Q7QUFDTCw2QkFBYSxrQkFBa0IsWUFBWSxPQUFNLFFBQVc7QUFBQTtBQUFBLHFCQUV2RCxLQUFQO0FBQ0E7QUFDRSxvQkFBSSxDQUFDLGdCQUFnQjtBQUNuQixtQ0FBaUI7QUFFakIsd0JBQU0sa0RBQWtEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1sRSxrQ0FBMEIsT0FBTTtBQUM5QixjQUFJLGdCQUFnQixPQUFPLGFBQWEsMEJBQTBCLFlBQVk7QUFDNUUsZ0JBQUk7QUFDRiwyQkFBYSxzQkFBc0IsWUFBWTtBQUFBLHFCQUN4QyxLQUFQO0FBQ0E7QUFDRSxvQkFBSSxDQUFDLGdCQUFnQjtBQUNuQixtQ0FBaUI7QUFFakIsd0JBQU0sa0RBQWtEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1sRSxpQ0FBeUIsT0FBTztBQUM5QixjQUFJLGdCQUFnQixPQUFPLGFBQWEseUJBQXlCLFlBQVk7QUFDM0UsZ0JBQUk7QUFDRiwyQkFBYSxxQkFBcUIsWUFBWTtBQUFBLHFCQUN2QyxLQUFQO0FBQ0E7QUFDRSxvQkFBSSxDQUFDLGdCQUFnQjtBQUNuQixtQ0FBaUI7QUFFakIsd0JBQU0sa0RBQWtEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1sRSw0Q0FBb0MsaUJBQWlCO0FBQ25EO0FBQ0UsZ0JBQUksT0FBTyx3QkFBd0IsWUFBWTtBQUk3Qyw0Q0FBOEI7QUFDOUIsaUNBQW1CO0FBQUE7QUFHckIsZ0JBQUksZ0JBQWdCLE9BQU8sYUFBYSxrQkFBa0IsWUFBWTtBQUNwRSxrQkFBSTtBQUNGLDZCQUFhLGNBQWMsWUFBWTtBQUFBLHVCQUNoQyxLQUFQO0FBQ0E7QUFDRSxzQkFBSSxDQUFDLGdCQUFnQjtBQUNuQixxQ0FBaUI7QUFFakIsMEJBQU0sa0RBQWtEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUXBFLHNDQUE4QixnQkFBZ0I7QUFDNUMsbUNBQXlCO0FBQUE7QUFHM0IsbUNBQTJCO0FBQ3pCO0FBQ0UsZ0JBQUksTUFBTSxJQUFJO0FBQ2QsZ0JBQUksT0FBTztBQUVYLHFCQUFTLFNBQVEsR0FBRyxTQUFRLFlBQVksVUFBUztBQUMvQyxrQkFBSSxRQUFRLGdCQUFnQjtBQUM1QixrQkFBSSxJQUFJLE1BQU07QUFDZCxzQkFBUTtBQUFBO0FBR1YsbUJBQU87QUFBQTtBQUFBO0FBSVgsbUNBQTJCLE9BQU87QUFDaEM7QUFDRSxnQkFBSSwyQkFBMkIsUUFBUSxPQUFPLHVCQUF1QixzQkFBc0IsWUFBWTtBQUNyRyxxQ0FBdUIsa0JBQWtCO0FBQUE7QUFBQTtBQUFBO0FBSS9DLHFDQUE2QjtBQUMzQjtBQUNFLGdCQUFJLDJCQUEyQixRQUFRLE9BQU8sdUJBQXVCLHNCQUFzQixZQUFZO0FBQ3JHLHFDQUF1QjtBQUFBO0FBQUE7QUFBQTtBQUk3Qiw0Q0FBb0MsT0FBTztBQUN6QztBQUNFLGdCQUFJLDJCQUEyQixRQUFRLE9BQU8sdUJBQXVCLCtCQUErQixZQUFZO0FBQzlHLHFDQUF1QiwyQkFBMkI7QUFBQTtBQUFBO0FBQUE7QUFJeEQsOENBQXNDO0FBQ3BDO0FBQ0UsZ0JBQUksMkJBQTJCLFFBQVEsT0FBTyx1QkFBdUIsK0JBQStCLFlBQVk7QUFDOUcscUNBQXVCO0FBQUE7QUFBQTtBQUFBO0FBSTdCLHdEQUFnRCxPQUFPO0FBQ3JEO0FBQ0UsZ0JBQUksMkJBQTJCLFFBQVEsT0FBTyx1QkFBdUIsMkNBQTJDLFlBQVk7QUFDMUgscUNBQXVCLHVDQUF1QztBQUFBO0FBQUE7QUFBQTtBQUlwRSwwREFBa0Q7QUFDaEQ7QUFDRSxnQkFBSSwyQkFBMkIsUUFBUSxPQUFPLHVCQUF1QiwyQ0FBMkMsWUFBWTtBQUMxSCxxQ0FBdUI7QUFBQTtBQUFBO0FBQUE7QUFJN0IsMERBQWtELE9BQU87QUFDdkQ7QUFDRSxnQkFBSSwyQkFBMkIsUUFBUSxPQUFPLHVCQUF1Qiw2Q0FBNkMsWUFBWTtBQUM1SCxxQ0FBdUIseUNBQXlDO0FBQUE7QUFBQTtBQUFBO0FBSXRFLDREQUFvRDtBQUNsRDtBQUNFLGdCQUFJLDJCQUEyQixRQUFRLE9BQU8sdUJBQXVCLDZDQUE2QyxZQUFZO0FBQzVILHFDQUF1QjtBQUFBO0FBQUE7QUFBQTtBQUk3Qix1REFBK0MsT0FBTztBQUNwRDtBQUNFLGdCQUFJLDJCQUEyQixRQUFRLE9BQU8sdUJBQXVCLDBDQUEwQyxZQUFZO0FBQ3pILHFDQUF1QixzQ0FBc0M7QUFBQTtBQUFBO0FBQUE7QUFJbkUseURBQWlEO0FBQy9DO0FBQ0UsZ0JBQUksMkJBQTJCLFFBQVEsT0FBTyx1QkFBdUIsMENBQTBDLFlBQVk7QUFDekgscUNBQXVCO0FBQUE7QUFBQTtBQUFBO0FBSTdCLHlEQUFpRCxPQUFPO0FBQ3REO0FBQ0UsZ0JBQUksMkJBQTJCLFFBQVEsT0FBTyx1QkFBdUIsNENBQTRDLFlBQVk7QUFDM0gscUNBQXVCLHdDQUF3QztBQUFBO0FBQUE7QUFBQTtBQUlyRSwyREFBbUQ7QUFDakQ7QUFDRSxnQkFBSSwyQkFBMkIsUUFBUSxPQUFPLHVCQUF1Qiw0Q0FBNEMsWUFBWTtBQUMzSCxxQ0FBdUI7QUFBQTtBQUFBO0FBQUE7QUFJN0Isc0NBQThCLE9BQU8sYUFBYSxPQUFPO0FBQ3ZEO0FBQ0UsZ0JBQUksMkJBQTJCLFFBQVEsT0FBTyx1QkFBdUIseUJBQXlCLFlBQVk7QUFDeEcscUNBQXVCLHFCQUFxQixPQUFPLGFBQWE7QUFBQTtBQUFBO0FBQUE7QUFJdEUsd0NBQWdDLE9BQU8sVUFBVSxPQUFPO0FBQ3REO0FBQ0UsZ0JBQUksMkJBQTJCLFFBQVEsT0FBTyx1QkFBdUIsMkJBQTJCLFlBQVk7QUFDMUcscUNBQXVCLHVCQUF1QixPQUFPLFVBQVU7QUFBQTtBQUFBO0FBQUE7QUFJckUsMENBQWtDLE9BQU87QUFDdkM7QUFDRSxnQkFBSSwyQkFBMkIsUUFBUSxPQUFPLHVCQUF1Qiw2QkFBNkIsWUFBWTtBQUM1RyxxQ0FBdUIseUJBQXlCO0FBQUE7QUFBQTtBQUFBO0FBSXRELDRDQUFvQztBQUNsQztBQUNFLGdCQUFJLDJCQUEyQixRQUFRLE9BQU8sdUJBQXVCLDZCQUE2QixZQUFZO0FBQzVHLHFDQUF1QjtBQUFBO0FBQUE7QUFBQTtBQUk3QiwyQ0FBbUMsT0FBTztBQUN4QztBQUNFLGdCQUFJLDJCQUEyQixRQUFRLE9BQU8sdUJBQXVCLDhCQUE4QixZQUFZO0FBQzdHLHFDQUF1QiwwQkFBMEI7QUFBQTtBQUFBO0FBQUE7QUFJdkQsNkNBQXFDO0FBQ25DO0FBQ0UsZ0JBQUksMkJBQTJCLFFBQVEsT0FBTyx1QkFBdUIsOEJBQThCLFlBQVk7QUFDN0cscUNBQXVCO0FBQUE7QUFBQTtBQUFBO0FBSTdCLG1DQUEyQixPQUFPO0FBQ2hDO0FBQ0UsZ0JBQUksMkJBQTJCLFFBQVEsT0FBTyx1QkFBdUIsc0JBQXNCLFlBQVk7QUFDckcscUNBQXVCLGtCQUFrQjtBQUFBO0FBQUE7QUFBQTtBQUkvQyxxQ0FBNkI7QUFDM0I7QUFDRSxnQkFBSSwyQkFBMkIsUUFBUSxPQUFPLHVCQUF1QixzQkFBc0IsWUFBWTtBQUNyRyxxQ0FBdUI7QUFBQTtBQUFBO0FBQUE7QUFJN0IscUNBQTZCO0FBQzNCO0FBQ0UsZ0JBQUksMkJBQTJCLFFBQVEsT0FBTyx1QkFBdUIsc0JBQXNCLFlBQVk7QUFDckcscUNBQXVCO0FBQUE7QUFBQTtBQUFBO0FBSTdCLHFDQUE2QixNQUFNO0FBQ2pDO0FBQ0UsZ0JBQUksMkJBQTJCLFFBQVEsT0FBTyx1QkFBdUIsd0JBQXdCLFlBQVk7QUFDdkcscUNBQXVCLG9CQUFvQjtBQUFBO0FBQUE7QUFBQTtBQUlqRCwwQ0FBa0MsT0FBTyxNQUFNO0FBQzdDO0FBQ0UsZ0JBQUksMkJBQTJCLFFBQVEsT0FBTyx1QkFBdUIsNkJBQTZCLFlBQVk7QUFDNUcscUNBQXVCLHlCQUF5QixPQUFPO0FBQUE7QUFBQTtBQUFBO0FBSTdELDBDQUFrQyxPQUFPLE1BQU07QUFDN0M7QUFDRSxnQkFBSSwyQkFBMkIsUUFBUSxPQUFPLHVCQUF1Qiw2QkFBNkIsWUFBWTtBQUM1RyxxQ0FBdUIseUJBQXlCLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFLN0QsWUFBSSxTQUVKO0FBRUEsWUFBSSxpQkFFSjtBQUNBLFlBQUksY0FFSjtBQUNBLFlBQUksbUJBRUo7QUFDQSxZQUFJLG9CQUVKO0FBR0EsWUFBSSxRQUFRLEtBQUssUUFBUSxLQUFLLFFBQVE7QUFJdEMsWUFBSSxNQUFNLEtBQUs7QUFDZixZQUFJLE1BQU0sS0FBSztBQUVmLCtCQUF1QixHQUFHO0FBQ3hCLGNBQUksU0FBUyxNQUFNO0FBRW5CLGNBQUksV0FBVyxHQUFHO0FBQ2hCLG1CQUFPO0FBQUE7QUFHVCxpQkFBTyxLQUFNLEtBQUksVUFBVSxNQUFNLEtBQUs7QUFBQTtBQUt4QyxZQUFJLGFBQWE7QUFDakIsWUFBSSxVQUVKO0FBQ0EsWUFBSSxTQUVKO0FBQ0EsWUFBSSxXQUVKO0FBQ0EsWUFBSSwrQkFFSjtBQUNBLFlBQUksc0JBRUo7QUFDQSxZQUFJLHVCQUVKO0FBQ0EsWUFBSSxjQUVKO0FBQ0EsWUFBSSwwQkFFSjtBQUNBLFlBQUksa0JBRUo7QUFDQSxZQUFJLGtCQUVKO0FBQ0EsWUFBSSxrQkFFSjtBQUNBLFlBQUksa0JBRUo7QUFDQSxZQUFJLGtCQUVKO0FBQ0EsWUFBSSxrQkFFSjtBQUNBLFlBQUksa0JBRUo7QUFDQSxZQUFJLGtCQUVKO0FBQ0EsWUFBSSxrQkFFSjtBQUNBLFlBQUksa0JBRUo7QUFDQSxZQUFJLG1CQUVKO0FBQ0EsWUFBSSxtQkFFSjtBQUNBLFlBQUksbUJBRUo7QUFDQSxZQUFJLG1CQUVKO0FBQ0EsWUFBSSxtQkFFSjtBQUNBLFlBQUksbUJBRUo7QUFDQSxZQUFJLG1CQUVKO0FBQ0EsWUFBSSxhQUVKO0FBQ0EsWUFBSSxhQUVKO0FBQ0EsWUFBSSxhQUVKO0FBQ0EsWUFBSSxhQUVKO0FBQ0EsWUFBSSxhQUVKO0FBQ0EsWUFBSSxhQUVKO0FBQ0EsWUFBSSxnQkFBZ0I7QUFDcEIsWUFBSSx5QkFFSjtBQUNBLFlBQUksZUFFSjtBQUNBLFlBQUksb0JBRUo7QUFDQSxZQUFJLFdBRUo7QUFDQSxZQUFJLGdCQUVKO0FBR0EsaUNBQXlCLE1BQU07QUFDN0I7QUFDRSxnQkFBSSxPQUFPLFVBQVU7QUFDbkIscUJBQU87QUFBQTtBQUdULGdCQUFJLE9BQU8sOEJBQThCO0FBQ3ZDLHFCQUFPO0FBQUE7QUFHVCxnQkFBSSxPQUFPLHFCQUFxQjtBQUM5QixxQkFBTztBQUFBO0FBR1QsZ0JBQUksT0FBTyxzQkFBc0I7QUFDL0IscUJBQU87QUFBQTtBQUdULGdCQUFJLE9BQU8sYUFBYTtBQUN0QixxQkFBTztBQUFBO0FBR1QsZ0JBQUksT0FBTyx5QkFBeUI7QUFDbEMscUJBQU87QUFBQTtBQUdULGdCQUFJLE9BQU8saUJBQWlCO0FBQzFCLHFCQUFPO0FBQUE7QUFHVCxnQkFBSSxPQUFPLFlBQVk7QUFDckIscUJBQU87QUFBQTtBQUdULGdCQUFJLE9BQU8sd0JBQXdCO0FBQ2pDLHFCQUFPO0FBQUE7QUFHVCxnQkFBSSxPQUFPLG1CQUFtQjtBQUM1QixxQkFBTztBQUFBO0FBR1QsZ0JBQUksT0FBTyxVQUFVO0FBQ25CLHFCQUFPO0FBQUE7QUFHVCxnQkFBSSxPQUFPLGVBQWU7QUFDeEIscUJBQU87QUFBQTtBQUFBO0FBQUE7QUFJYixZQUFJLGNBQWM7QUFDbEIsWUFBSSxxQkFBcUI7QUFDekIsWUFBSSxnQkFBZ0I7QUFFcEIseUNBQWlDLE9BQU87QUFDdEMsa0JBQVEsdUJBQXVCO0FBQUEsaUJBQ3hCO0FBQ0gscUJBQU87QUFBQSxpQkFFSjtBQUNILHFCQUFPO0FBQUEsaUJBRUo7QUFDSCxxQkFBTztBQUFBLGlCQUVKO0FBQ0gscUJBQU87QUFBQSxpQkFFSjtBQUNILHFCQUFPO0FBQUEsaUJBRUo7QUFDSCxxQkFBTztBQUFBLGlCQUVKO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQ0gscUJBQU8sUUFBUTtBQUFBLGlCQUVaO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFDSCxxQkFBTyxRQUFRO0FBQUEsaUJBRVo7QUFDSCxxQkFBTztBQUFBLGlCQUVKO0FBQ0gscUJBQU87QUFBQSxpQkFFSjtBQUNILHFCQUFPO0FBQUEsaUJBRUo7QUFDSCxxQkFBTztBQUFBO0FBR1A7QUFDRSxzQkFBTTtBQUFBO0FBSVIscUJBQU87QUFBQTtBQUFBO0FBSWIsOEJBQXNCLE9BQU0sVUFBVTtBQUVwQyxjQUFJLGVBQWUsTUFBSztBQUV4QixjQUFJLGlCQUFpQixTQUFTO0FBQzVCLG1CQUFPO0FBQUE7QUFHVCxjQUFJLFlBQVk7QUFDaEIsY0FBSSxpQkFBaUIsTUFBSztBQUMxQixjQUFJLGNBQWMsTUFBSztBQUd2QixjQUFJLHNCQUFzQixlQUFlO0FBRXpDLGNBQUksd0JBQXdCLFNBQVM7QUFDbkMsZ0JBQUksd0JBQXdCLHNCQUFzQixDQUFDO0FBRW5ELGdCQUFJLDBCQUEwQixTQUFTO0FBQ3JDLDBCQUFZLHdCQUF3QjtBQUFBLG1CQUMvQjtBQUNMLGtCQUFJLHFCQUFxQixzQkFBc0I7QUFFL0Msa0JBQUksdUJBQXVCLFNBQVM7QUFDbEMsNEJBQVksd0JBQXdCO0FBQUE7QUFBQTtBQUFBLGlCQUduQztBQUVMLGdCQUFJLGlCQUFpQixlQUFlLENBQUM7QUFFckMsZ0JBQUksbUJBQW1CLFNBQVM7QUFDOUIsMEJBQVksd0JBQXdCO0FBQUEsbUJBQy9CO0FBQ0wsa0JBQUksZ0JBQWdCLFNBQVM7QUFDM0IsNEJBQVksd0JBQXdCO0FBQUE7QUFBQTtBQUFBO0FBSzFDLGNBQUksY0FBYyxTQUFTO0FBR3pCLG1CQUFPO0FBQUE7QUFNVCxjQUFJLGFBQWEsV0FBVyxhQUFhLGFBRXhDLFlBQVcsb0JBQW9CLFNBQVM7QUFDdkMsZ0JBQUksV0FBVyx1QkFBdUI7QUFDdEMsZ0JBQUksVUFBVSx1QkFBdUI7QUFFckMsZ0JBRUEsWUFBWSxXQUdaLGFBQWEsZUFBZ0IsV0FBVSxxQkFBcUIsU0FBUztBQUVuRSxxQkFBTztBQUFBO0FBQUE7QUFJWCxjQUFLLGFBQVkseUJBQXlCLFNBQVM7QUFLakQseUJBQWEsZUFBZTtBQUFBO0FBeUI5QixjQUFJLGlCQUFpQixNQUFLO0FBRTFCLGNBQUksbUJBQW1CLFNBQVM7QUFDOUIsZ0JBQUksZ0JBQWdCLE1BQUs7QUFDekIsZ0JBQUksUUFBUSxZQUFZO0FBRXhCLG1CQUFPLFFBQVEsR0FBRztBQUNoQixrQkFBSSxTQUFRLHVCQUF1QjtBQUNuQyxrQkFBSSxPQUFPLEtBQUs7QUFDaEIsMkJBQWEsY0FBYztBQUMzQix1QkFBUyxDQUFDO0FBQUE7QUFBQTtBQUlkLGlCQUFPO0FBQUE7QUFFVCx3Q0FBZ0MsT0FBTSxPQUFPO0FBQzNDLGNBQUksYUFBYSxNQUFLO0FBQ3RCLGNBQUksc0JBQXNCO0FBRTFCLGlCQUFPLFFBQVEsR0FBRztBQUNoQixnQkFBSSxTQUFRLHVCQUF1QjtBQUNuQyxnQkFBSSxPQUFPLEtBQUs7QUFDaEIsZ0JBQUksWUFBWSxXQUFXO0FBRTNCLGdCQUFJLFlBQVkscUJBQXFCO0FBQ25DLG9DQUFzQjtBQUFBO0FBR3hCLHFCQUFTLENBQUM7QUFBQTtBQUdaLGlCQUFPO0FBQUE7QUFHVCx1Q0FBK0IsTUFBTSxhQUFhO0FBQ2hELGtCQUFRO0FBQUEsaUJBQ0Q7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBVUgscUJBQU8sY0FBYztBQUFBLGlCQUVsQjtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUNILHFCQUFPLGNBQWM7QUFBQSxpQkFFbEI7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQU1ILHFCQUFPO0FBQUEsaUJBRUo7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFFSCxxQkFBTztBQUFBO0FBR1A7QUFDRSxzQkFBTTtBQUFBO0FBR1IscUJBQU87QUFBQTtBQUFBO0FBSWIsMkNBQW1DLE9BQU0sYUFBYTtBQUlwRCxjQUFJLGVBQWUsTUFBSztBQUN4QixjQUFJLGlCQUFpQixNQUFLO0FBQzFCLGNBQUksY0FBYyxNQUFLO0FBQ3ZCLGNBQUksa0JBQWtCLE1BQUs7QUFJM0IsY0FBSSxRQUFRO0FBRVosaUJBQU8sUUFBUSxHQUFHO0FBQ2hCLGdCQUFJLFNBQVEsdUJBQXVCO0FBQ25DLGdCQUFJLE9BQU8sS0FBSztBQUNoQixnQkFBSSxpQkFBaUIsZ0JBQWdCO0FBRXJDLGdCQUFJLG1CQUFtQixhQUFhO0FBSWxDLGtCQUFLLFFBQU8sb0JBQW9CLFdBQVksUUFBTyxpQkFBaUIsU0FBUztBQUUzRSxnQ0FBZ0IsVUFBUyxzQkFBc0IsTUFBTTtBQUFBO0FBQUEsdUJBRTlDLGtCQUFrQixhQUFhO0FBRXhDLG9CQUFLLGdCQUFnQjtBQUFBO0FBR3ZCLHFCQUFTLENBQUM7QUFBQTtBQUFBO0FBS2QsZ0RBQXdDLE9BQU07QUFDNUMsaUJBQU8sd0JBQXdCLE1BQUs7QUFBQTtBQUV0QyxxREFBNkMsT0FBTTtBQUNqRCxjQUFJLHlCQUF5QixNQUFLLGVBQWUsQ0FBQztBQUVsRCxjQUFJLDJCQUEyQixTQUFTO0FBQ3RDLG1CQUFPO0FBQUE7QUFHVCxjQUFJLHlCQUF5QixlQUFlO0FBQzFDLG1CQUFPO0FBQUE7QUFHVCxpQkFBTztBQUFBO0FBRVQsa0NBQTBCLE9BQU87QUFDL0IsaUJBQVEsU0FBUSxjQUFjO0FBQUE7QUFFaEMscUNBQTZCLE9BQU87QUFDbEMsaUJBQVEsU0FBUSxrQkFBa0I7QUFBQTtBQUVwQyxxQ0FBNkIsT0FBTztBQUNsQyxpQkFBUSxTQUFRLGdCQUFnQjtBQUFBO0FBRWxDLHlDQUFpQyxPQUFPO0FBQ3RDLGlCQUFRLFNBQVEscUJBQXFCO0FBQUE7QUFFdkMsc0NBQThCLE9BQU0sT0FBTztBQUV6QyxjQUFJLG1CQUFtQiwrQkFBK0Isc0JBQXNCLHVCQUF1QjtBQUNuRyxpQkFBUSxTQUFRLHNCQUFzQjtBQUFBO0FBRXhDLHFDQUE2QixPQUFNLE9BQU87QUFHeEMsaUJBQVEsU0FBUSxNQUFLLGtCQUFrQjtBQUFBO0FBRXpDLGtDQUEwQixNQUFNO0FBQzlCLGlCQUFRLFFBQU8scUJBQXFCO0FBQUE7QUFFdEMsMkNBQW1DO0FBSWpDLGNBQUksT0FBTztBQUNYLGlDQUF1QjtBQUV2QixjQUFLLHNCQUFxQixxQkFBcUIsR0FBRztBQUNoRCxpQ0FBcUI7QUFBQTtBQUd2QixpQkFBTztBQUFBO0FBRVQsc0NBQThCO0FBQzVCLGNBQUksT0FBTztBQUNYLDRCQUFrQjtBQUVsQixjQUFLLGlCQUFnQixnQkFBZ0IsR0FBRztBQUN0Qyw0QkFBZ0I7QUFBQTtBQUdsQixpQkFBTztBQUFBO0FBRVQsd0NBQWdDLE9BQU87QUFDckMsaUJBQU8sUUFBUSxDQUFDO0FBQUE7QUFFbEIsbUNBQTJCLE9BQU87QUFLaEMsaUJBQU8sdUJBQXVCO0FBQUE7QUFHaEMsd0NBQWdDLE9BQU87QUFDckMsaUJBQU8sS0FBSyxNQUFNO0FBQUE7QUFHcEIsNkJBQXFCLE1BQU07QUFDekIsaUJBQU8sdUJBQXVCO0FBQUE7QUFHaEMsa0NBQTBCLEdBQUcsR0FBRztBQUM5QixpQkFBUSxLQUFJLE9BQU87QUFBQTtBQUVyQixpQ0FBeUIsTUFBSyxRQUFRO0FBQ3BDLGlCQUFRLFFBQU0sWUFBWTtBQUFBO0FBRTVCLDRCQUFvQixHQUFHLEdBQUc7QUFDeEIsaUJBQU8sSUFBSTtBQUFBO0FBRWIsNkJBQXFCLE1BQUssUUFBUTtBQUNoQyxpQkFBTyxPQUFNLENBQUM7QUFBQTtBQUVoQixnQ0FBd0IsR0FBRyxHQUFHO0FBQzVCLGlCQUFPLElBQUk7QUFBQTtBQUliLDZCQUFxQixNQUFNO0FBQ3pCLGlCQUFPO0FBQUE7QUFFVCxvQ0FBNEIsR0FBRyxHQUFHO0FBRWhDLGlCQUFPLE1BQU0sVUFBVSxJQUFJLElBQUksSUFBSTtBQUFBO0FBRXJDLCtCQUF1QixTQUFTO0FBRzlCLGNBQUksVUFBVTtBQUVkLG1CQUFTLElBQUksR0FBRyxJQUFJLFlBQVksS0FBSztBQUNuQyxvQkFBUSxLQUFLO0FBQUE7QUFHZixpQkFBTztBQUFBO0FBRVQsaUNBQXlCLE9BQU0sWUFBWSxXQUFXO0FBQ3BELGdCQUFLLGdCQUFnQjtBQWFyQixjQUFJLGVBQWUsVUFBVTtBQUMzQixrQkFBSyxpQkFBaUI7QUFDdEIsa0JBQUssY0FBYztBQUFBO0FBR3JCLGNBQUksYUFBYSxNQUFLO0FBQ3RCLGNBQUksU0FBUSxZQUFZO0FBR3hCLHFCQUFXLFVBQVM7QUFBQTtBQUV0QixtQ0FBMkIsT0FBTSxnQkFBZ0I7QUFDL0MsZ0JBQUssa0JBQWtCO0FBQ3ZCLGdCQUFLLGVBQWUsQ0FBQztBQUVyQixjQUFJLGtCQUFrQixNQUFLO0FBQzNCLGNBQUksUUFBUTtBQUVaLGlCQUFPLFFBQVEsR0FBRztBQUNoQixnQkFBSSxTQUFRLHVCQUF1QjtBQUNuQyxnQkFBSSxPQUFPLEtBQUs7QUFDaEIsNEJBQWdCLFVBQVM7QUFDekIscUJBQVMsQ0FBQztBQUFBO0FBQUE7QUFHZCxnQ0FBd0IsT0FBTSxhQUFhLFdBQVc7QUFDcEQsZ0JBQUssZUFBZSxNQUFLLGlCQUFpQjtBQUFBO0FBRTVDLGtDQUEwQixPQUFNLGdCQUFnQjtBQUM5QyxjQUFJLHVCQUF1QixNQUFLLGVBQWUsQ0FBQztBQUNoRCxnQkFBSyxlQUFlO0FBRXBCLGdCQUFLLGlCQUFpQjtBQUN0QixnQkFBSyxjQUFjO0FBQ25CLGdCQUFLLGdCQUFnQjtBQUNyQixnQkFBSyxvQkFBb0I7QUFDekIsZ0JBQUssa0JBQWtCO0FBQ3ZCLGNBQUksZ0JBQWdCLE1BQUs7QUFDekIsY0FBSSxhQUFhLE1BQUs7QUFDdEIsY0FBSSxrQkFBa0IsTUFBSztBQUUzQixjQUFJLFFBQVE7QUFFWixpQkFBTyxRQUFRLEdBQUc7QUFDaEIsZ0JBQUksU0FBUSx1QkFBdUI7QUFDbkMsZ0JBQUksT0FBTyxLQUFLO0FBQ2hCLDBCQUFjLFVBQVM7QUFDdkIsdUJBQVcsVUFBUztBQUNwQiw0QkFBZ0IsVUFBUztBQUN6QixxQkFBUyxDQUFDO0FBQUE7QUFBQTtBQUdkLG1DQUEyQixPQUFNLGdCQUFnQjtBQVkvQyxjQUFJLHFCQUFxQixNQUFLLGtCQUFrQjtBQUNoRCxjQUFJLGdCQUFnQixNQUFLO0FBQ3pCLGNBQUksUUFBUTtBQUVaLGlCQUFPLE9BQU87QUFDWixnQkFBSSxTQUFRLHVCQUF1QjtBQUNuQyxnQkFBSSxPQUFPLEtBQUs7QUFFaEIsZ0JBQ0EsT0FBTyxpQkFDUCxjQUFjLFVBQVMsZ0JBQWdCO0FBQ3JDLDRCQUFjLFdBQVU7QUFBQTtBQUcxQixxQkFBUyxDQUFDO0FBQUE7QUFBQTtBQUdkLDJDQUFtQyxPQUFNLGNBQWE7QUFDcEQsY0FBSSxhQUFhLHVCQUF1QjtBQUN4QyxjQUFJO0FBRUosa0JBQVE7QUFBQSxpQkFDRDtBQUNILHFCQUFPO0FBQ1A7QUFBQSxpQkFFRztBQUNILHFCQUFPO0FBQ1A7QUFBQSxpQkFFRztBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFDSCxxQkFBTztBQUNQO0FBQUEsaUJBRUc7QUFDSCxxQkFBTztBQUNQO0FBQUE7QUFLQSxxQkFBTztBQUNQO0FBQUE7QUFNSixjQUFLLFFBQVEsT0FBSyxpQkFBaUIsbUJBQWtCLFFBQVE7QUFFM0QsbUJBQU87QUFBQTtBQUdULGlCQUFPO0FBQUE7QUFFVCxvQ0FBNEIsT0FBTSxPQUFPLE9BQU87QUFFOUMsY0FBSSxDQUFDLG1CQUFtQjtBQUN0QjtBQUFBO0FBR0YsY0FBSSx5QkFBeUIsTUFBSztBQUVsQyxpQkFBTyxRQUFRLEdBQUc7QUFDaEIsZ0JBQUksU0FBUSxZQUFZO0FBQ3hCLGdCQUFJLE9BQU8sS0FBSztBQUNoQixnQkFBSSxXQUFXLHVCQUF1QjtBQUN0QyxxQkFBUyxJQUFJO0FBQ2IscUJBQVMsQ0FBQztBQUFBO0FBQUE7QUFHZCw2Q0FBcUMsT0FBTSxPQUFPO0FBRWhELGNBQUksQ0FBQyxtQkFBbUI7QUFDdEI7QUFBQTtBQUdGLGNBQUkseUJBQXlCLE1BQUs7QUFDbEMsY0FBSSxtQkFBbUIsTUFBSztBQUU1QixpQkFBTyxRQUFRLEdBQUc7QUFDaEIsZ0JBQUksU0FBUSxZQUFZO0FBQ3hCLGdCQUFJLE9BQU8sS0FBSztBQUNoQixnQkFBSSxXQUFXLHVCQUF1QjtBQUV0QyxnQkFBSSxTQUFTLE9BQU8sR0FBRztBQUNyQix1QkFBUyxRQUFRLFNBQVUsT0FBTztBQUNoQyxvQkFBSSxZQUFZLE1BQU07QUFFdEIsb0JBQUksY0FBYyxRQUFRLENBQUMsaUJBQWlCLElBQUksWUFBWTtBQUMxRCxtQ0FBaUIsSUFBSTtBQUFBO0FBQUE7QUFHekIsdUJBQVM7QUFBQTtBQUdYLHFCQUFTLENBQUM7QUFBQTtBQUFBO0FBSWQsWUFBSSx3QkFBd0I7QUFDNUIsWUFBSSwwQkFBMEI7QUFDOUIsWUFBSSx1QkFBdUI7QUFDM0IsWUFBSSxvQkFBb0I7QUFDeEIsWUFBSSx3QkFBd0I7QUFDNUIsNENBQW9DO0FBQ2xDLGlCQUFPO0FBQUE7QUFFVCwwQ0FBa0MsYUFBYTtBQUM3QyxrQ0FBd0I7QUFBQTtBQUUxQixpQ0FBeUIsVUFBVSxJQUFJO0FBQ3JDLGNBQUksbUJBQW1CO0FBRXZCLGNBQUk7QUFDRixvQ0FBd0I7QUFDeEIsbUJBQU87QUFBQSxvQkFDUDtBQUNBLG9DQUF3QjtBQUFBO0FBQUE7QUFHNUIscUNBQTZCLEdBQUcsR0FBRztBQUNqQyxpQkFBTyxNQUFNLEtBQUssSUFBSSxJQUFJLElBQUk7QUFBQTtBQUVoQyxvQ0FBNEIsR0FBRyxHQUFHO0FBQ2hDLGlCQUFPLE1BQU0sS0FBSyxJQUFJLElBQUksSUFBSTtBQUFBO0FBRWhDLHVDQUErQixHQUFHLEdBQUc7QUFDbkMsaUJBQU8sTUFBTSxLQUFLLElBQUk7QUFBQTtBQUV4QixzQ0FBOEIsT0FBTztBQUNuQyxjQUFJLE9BQU8sdUJBQXVCO0FBRWxDLGNBQUksQ0FBQyxzQkFBc0IsdUJBQXVCLE9BQU87QUFDdkQsbUJBQU87QUFBQTtBQUdULGNBQUksQ0FBQyxzQkFBc0IseUJBQXlCLE9BQU87QUFDekQsbUJBQU87QUFBQTtBQUdULGNBQUksb0JBQW9CLE9BQU87QUFDN0IsbUJBQU87QUFBQTtBQUdULGlCQUFPO0FBQUE7QUFNVCxrQ0FBMEIsT0FBTTtBQUM5QixjQUFJLGVBQWUsTUFBSyxRQUFRO0FBQ2hDLGlCQUFPLGFBQWE7QUFBQTtBQUd0QixZQUFJO0FBRUosZ0RBQXdDLElBQUk7QUFDMUMseUNBQStCO0FBQUE7QUFFakMsNkNBQXFDLE9BQU87QUFDMUMsdUNBQTZCO0FBQUE7QUFFL0IsWUFBSTtBQUNKLCtDQUF1QyxJQUFJO0FBQ3pDLHVDQUE2QjtBQUFBO0FBRS9CLFlBQUk7QUFDSixzREFBOEMsSUFBSTtBQUNoRCw4Q0FBb0M7QUFBQTtBQUV0QyxZQUFJO0FBQ0osNkNBQXFDLElBQUk7QUFDdkMsdUNBQTZCO0FBQUE7QUFFL0IsWUFBSTtBQUNKLCtDQUF1QyxJQUFJO0FBQ3pDLHVDQUE2QjtBQUFBO0FBSS9CLFlBQUksNEJBQTRCO0FBRWhDLFlBQUksdUJBQXVCO0FBRzNCLFlBQUksY0FBYztBQUNsQixZQUFJLGFBQWE7QUFDakIsWUFBSSxjQUFjO0FBRWxCLFlBQUksaUJBQWlCLElBQUk7QUFDekIsWUFBSSx3QkFBd0IsSUFBSTtBQUVoQyxZQUFJLGlDQUFpQztBQUNyQyxZQUFJLDhCQUE4QjtBQUFBLFVBQUM7QUFBQSxVQUFhO0FBQUEsVUFBVztBQUFBLFVBQWU7QUFBQSxVQUFZO0FBQUEsVUFBYztBQUFBLFVBQVk7QUFBQSxVQUFZO0FBQUEsVUFBaUI7QUFBQSxVQUFlO0FBQUEsVUFBYTtBQUFBLFVBQVc7QUFBQSxVQUFhO0FBQUEsVUFBUTtBQUFBLFVBQWtCO0FBQUEsVUFBb0I7QUFBQSxVQUFXO0FBQUEsVUFBWTtBQUFBLFVBQVM7QUFBQSxVQUFTO0FBQUEsVUFDeFI7QUFBQSxVQUFRO0FBQUEsVUFBTztBQUFBLFVBQVM7QUFBQSxVQUFTO0FBQUEsVUFBVTtBQUFBLFVBQWU7QUFBQSxVQUFTO0FBQUE7QUFDbkUsc0RBQThDLFdBQVc7QUFDdkQsaUJBQU8sNEJBQTRCLFFBQVEsYUFBYTtBQUFBO0FBRzFELDZDQUFxQyxXQUFXLGNBQWMsa0JBQWtCLGlCQUFpQixhQUFhO0FBQzVHLGlCQUFPO0FBQUEsWUFDTDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0Esa0JBQWtCLENBQUM7QUFBQTtBQUFBO0FBS3ZCLHdDQUFnQyxjQUFjLGFBQWE7QUFDekQsa0JBQVE7QUFBQSxpQkFDRDtBQUFBLGlCQUNBO0FBQ0gsNEJBQWM7QUFDZDtBQUFBLGlCQUVHO0FBQUEsaUJBQ0E7QUFDSCwyQkFBYTtBQUNiO0FBQUEsaUJBRUc7QUFBQSxpQkFDQTtBQUNILDRCQUFjO0FBQ2Q7QUFBQSxpQkFFRztBQUFBLGlCQUNBLGNBQ0g7QUFDRSxrQkFBSSxZQUFZLFlBQVk7QUFDNUIsNkJBQWUsT0FBTztBQUN0QjtBQUFBO0FBQUEsaUJBR0M7QUFBQSxpQkFDQSxzQkFDSDtBQUNFLGtCQUFJLGFBQWEsWUFBWTtBQUM3QixvQ0FBc0IsT0FBTztBQUM3QjtBQUFBO0FBQUE7QUFBQTtBQUtSLG1FQUEyRCxxQkFBcUIsV0FBVyxjQUFjLGtCQUFrQixpQkFBaUIsYUFBYTtBQUN2SixjQUFJLHdCQUF3QixRQUFRLG9CQUFvQixnQkFBZ0IsYUFBYTtBQUNuRixnQkFBSSxjQUFjLDRCQUE0QixXQUFXLGNBQWMsa0JBQWtCLGlCQUFpQjtBQUUxRyxnQkFBSSxjQUFjLE1BQU07QUFDdEIsa0JBQUksU0FBUyxvQkFBb0I7QUFFakMsa0JBQUksV0FBVyxNQUFNO0FBRW5CLDJDQUEyQjtBQUFBO0FBQUE7QUFJL0IsbUJBQU87QUFBQTtBQU9ULDhCQUFvQixvQkFBb0I7QUFDeEMsY0FBSSxtQkFBbUIsb0JBQW9CO0FBRTNDLGNBQUksb0JBQW9CLFFBQVEsaUJBQWlCLFFBQVEscUJBQXFCLElBQUk7QUFDaEYsNkJBQWlCLEtBQUs7QUFBQTtBQUd4QixpQkFBTztBQUFBO0FBR1Qsd0NBQWdDLFdBQVcsY0FBYyxrQkFBa0IsaUJBQWlCLGFBQWE7QUFJdkcsa0JBQVE7QUFBQSxpQkFDRCxXQUNIO0FBQ0Usa0JBQUksYUFBYTtBQUNqQiw0QkFBYyxrREFBa0QsYUFBYSxXQUFXLGNBQWMsa0JBQWtCLGlCQUFpQjtBQUN6SSxxQkFBTztBQUFBO0FBQUEsaUJBR04sYUFDSDtBQUNFLGtCQUFJLFlBQVk7QUFDaEIsMkJBQWEsa0RBQWtELFlBQVksV0FBVyxjQUFjLGtCQUFrQixpQkFBaUI7QUFDdkkscUJBQU87QUFBQTtBQUFBLGlCQUdOLGFBQ0g7QUFDRSxrQkFBSSxhQUFhO0FBQ2pCLDRCQUFjLGtEQUFrRCxhQUFhLFdBQVcsY0FBYyxrQkFBa0IsaUJBQWlCO0FBQ3pJLHFCQUFPO0FBQUE7QUFBQSxpQkFHTixlQUNIO0FBQ0Usa0JBQUksZUFBZTtBQUNuQixrQkFBSSxZQUFZLGFBQWE7QUFDN0IsNkJBQWUsSUFBSSxXQUFXLGtEQUFrRCxlQUFlLElBQUksY0FBYyxNQUFNLFdBQVcsY0FBYyxrQkFBa0IsaUJBQWlCO0FBQ25MLHFCQUFPO0FBQUE7QUFBQSxpQkFHTixxQkFDSDtBQUNFLGtCQUFJLGdCQUFnQjtBQUNwQixrQkFBSSxjQUFjLGNBQWM7QUFDaEMsb0NBQXNCLElBQUksYUFBYSxrREFBa0Qsc0JBQXNCLElBQUksZ0JBQWdCLE1BQU0sV0FBVyxjQUFjLGtCQUFrQixpQkFBaUI7QUFDck0scUJBQU87QUFBQTtBQUFBO0FBSWIsaUJBQU87QUFBQTtBQUdULGdEQUF3QyxjQUFjO0FBSXBELGNBQUksYUFBYSwyQkFBMkIsYUFBYTtBQUV6RCxjQUFJLGVBQWUsTUFBTTtBQUN2QixnQkFBSSxpQkFBaUIsdUJBQXVCO0FBRTVDLGdCQUFJLG1CQUFtQixNQUFNO0FBQzNCLGtCQUFJLE1BQU0sZUFBZTtBQUV6QixrQkFBSSxRQUFRLG1CQUFtQjtBQUM3QixvQkFBSSxXQUFXLDZCQUE2QjtBQUU1QyxvQkFBSSxhQUFhLE1BQU07QUFHckIsK0JBQWEsWUFBWTtBQUN6Qiw2Q0FBMkIsYUFBYSxVQUFVLFdBQVk7QUFDNUQsc0RBQWtDO0FBQUE7QUFFcEM7QUFBQTtBQUFBLHlCQUVPLFFBQVEsVUFBVTtBQUMzQixvQkFBSSxRQUFPLGVBQWU7QUFFMUIsb0JBQUksaUJBQWlCLFFBQU87QUFDMUIsK0JBQWEsWUFBWSxzQkFBc0I7QUFHL0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1SLHVCQUFhLFlBQVk7QUFBQTtBQUczQiw4Q0FBc0MsUUFBUTtBQUM1QztBQUlFLGdCQUFJLGlCQUFpQjtBQUNyQixnQkFBSSxlQUFlO0FBQUEsY0FDakIsV0FBVztBQUFBLGNBQ1g7QUFBQSxjQUNBLFVBQVU7QUFBQTtBQUVaLGdCQUFJLElBQUk7QUFFUixtQkFBTyxJQUFJLCtCQUErQixRQUFRLEtBQUs7QUFFckQsa0JBQUksQ0FBQyxzQkFBc0IsZ0JBQWdCLCtCQUErQixHQUFHLFdBQVc7QUFDdEY7QUFBQTtBQUFBO0FBSUosMkNBQStCLE9BQU8sR0FBRyxHQUFHO0FBRTVDLGdCQUFJLE1BQU0sR0FBRztBQUNYLDZDQUErQjtBQUFBO0FBQUE7QUFBQTtBQUtyQyxvREFBNEMsYUFBYTtBQUN2RCxjQUFJLFlBQVksY0FBYyxNQUFNO0FBQ2xDLG1CQUFPO0FBQUE7QUFHVCxjQUFJLG1CQUFtQixZQUFZO0FBRW5DLGlCQUFPLGlCQUFpQixTQUFTLEdBQUc7QUFDbEMsZ0JBQUksa0JBQWtCLGlCQUFpQjtBQUN2QyxnQkFBSSxnQkFBZ0IsMEJBQTBCLFlBQVksY0FBYyxZQUFZLGtCQUFrQixpQkFBaUIsWUFBWTtBQUVuSSxnQkFBSSxrQkFBa0IsTUFBTTtBQUMxQixrQkFBSSxjQUFjLFlBQVk7QUFDOUIsa0JBQUksbUJBQW1CLElBQUksWUFBWSxZQUFZLFlBQVksTUFBTTtBQUNyRSxnQ0FBa0I7QUFDbEIsMEJBQVksT0FBTyxjQUFjO0FBQ2pDO0FBQUEsbUJBQ0s7QUFFTCxrQkFBSSxVQUFVLG9CQUFvQjtBQUVsQyxrQkFBSSxZQUFZLE1BQU07QUFDcEIsMkNBQTJCO0FBQUE7QUFHN0IsMEJBQVksWUFBWTtBQUN4QixxQkFBTztBQUFBO0FBSVQsNkJBQWlCO0FBQUE7QUFHbkIsaUJBQU87QUFBQTtBQUdULHlEQUFpRCxhQUFhLEtBQUssS0FBSztBQUN0RSxjQUFJLG1DQUFtQyxjQUFjO0FBQ25ELGdCQUFJLE9BQU87QUFBQTtBQUFBO0FBSWYseUNBQWlDO0FBQy9CLHNDQUE0QjtBQUU1QixjQUFJLGdCQUFnQixRQUFRLG1DQUFtQyxjQUFjO0FBQzNFLDBCQUFjO0FBQUE7QUFHaEIsY0FBSSxlQUFlLFFBQVEsbUNBQW1DLGFBQWE7QUFDekUseUJBQWE7QUFBQTtBQUdmLGNBQUksZ0JBQWdCLFFBQVEsbUNBQW1DLGNBQWM7QUFDM0UsMEJBQWM7QUFBQTtBQUdoQix5QkFBZSxRQUFRO0FBQ3ZCLGdDQUFzQixRQUFRO0FBQUE7QUFHaEMsNkNBQXFDLGFBQWEsV0FBVztBQUMzRCxjQUFJLFlBQVksY0FBYyxXQUFXO0FBQ3ZDLHdCQUFZLFlBQVk7QUFFeEIsZ0JBQUksQ0FBQywyQkFBMkI7QUFDOUIsMENBQTRCO0FBSTVCLHdCQUFVLDBCQUEwQixVQUFVLHlCQUF5QjtBQUFBO0FBQUE7QUFBQTtBQUs3RSxrQ0FBMEIsV0FBVztBQUduQyxjQUFJLHFCQUFxQixTQUFTLEdBQUc7QUFDbkMsd0NBQTRCLHFCQUFxQixJQUFJO0FBSXJELHFCQUFTLElBQUksR0FBRyxJQUFJLHFCQUFxQixRQUFRLEtBQUs7QUFDcEQsa0JBQUksY0FBYyxxQkFBcUI7QUFFdkMsa0JBQUksWUFBWSxjQUFjLFdBQVc7QUFDdkMsNEJBQVksWUFBWTtBQUFBO0FBQUE7QUFBQTtBQUs5QixjQUFJLGdCQUFnQixNQUFNO0FBQ3hCLHdDQUE0QixhQUFhO0FBQUE7QUFHM0MsY0FBSSxlQUFlLE1BQU07QUFDdkIsd0NBQTRCLFlBQVk7QUFBQTtBQUcxQyxjQUFJLGdCQUFnQixNQUFNO0FBQ3hCLHdDQUE0QixhQUFhO0FBQUE7QUFHM0MsY0FBSSxVQUFVLFNBQVUsY0FBYTtBQUNuQyxtQkFBTyw0QkFBNEIsY0FBYTtBQUFBO0FBR2xELHlCQUFlLFFBQVE7QUFDdkIsZ0NBQXNCLFFBQVE7QUFFOUIsbUJBQVMsS0FBSyxHQUFHLEtBQUssK0JBQStCLFFBQVEsTUFBTTtBQUNqRSxnQkFBSSxlQUFlLCtCQUErQjtBQUVsRCxnQkFBSSxhQUFhLGNBQWMsV0FBVztBQUN4QywyQkFBYSxZQUFZO0FBQUE7QUFBQTtBQUk3QixpQkFBTywrQkFBK0IsU0FBUyxHQUFHO0FBQ2hELGdCQUFJLHFCQUFxQiwrQkFBK0I7QUFFeEQsZ0JBQUksbUJBQW1CLGNBQWMsTUFBTTtBQUV6QztBQUFBLG1CQUNLO0FBQ0wsNkNBQStCO0FBRS9CLGtCQUFJLG1CQUFtQixjQUFjLE1BQU07QUFFekMsK0NBQStCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNdkMsWUFBSSwwQkFBMEIscUJBQXFCO0FBQ25ELHdEQUFnRCxpQkFBaUIsY0FBYyxrQkFBa0I7QUFDL0YsY0FBSSxnQkFBZ0IsaUJBQWlCO0FBQ3JDLGNBQUk7QUFFSixrQkFBUTtBQUFBLGlCQUNEO0FBQ0gsZ0NBQWtCO0FBQ2xCO0FBQUEsaUJBRUc7QUFDSCxnQ0FBa0I7QUFDbEI7QUFBQSxpQkFFRztBQUFBO0FBRUgsZ0NBQWtCO0FBQ2xCO0FBQUE7QUFHSixpQkFBTyxnQkFBZ0IsS0FBSyxNQUFNLGNBQWMsa0JBQWtCO0FBQUE7QUFHcEUsdUNBQStCLGNBQWMsa0JBQWtCLFdBQVcsYUFBYTtBQUNyRixjQUFJLG1CQUFtQjtBQUN2QixjQUFJLGlCQUFpQix3QkFBd0I7QUFDN0Msa0NBQXdCLGFBQWE7QUFFckMsY0FBSTtBQUNGLHFDQUF5QjtBQUN6QiwwQkFBYyxjQUFjLGtCQUFrQixXQUFXO0FBQUEsb0JBQ3pEO0FBQ0EscUNBQXlCO0FBQ3pCLG9DQUF3QixhQUFhO0FBQUE7QUFBQTtBQUl6Qyx5Q0FBaUMsY0FBYyxrQkFBa0IsV0FBVyxhQUFhO0FBQ3ZGLGNBQUksbUJBQW1CO0FBQ3ZCLGNBQUksaUJBQWlCLHdCQUF3QjtBQUM3QyxrQ0FBd0IsYUFBYTtBQUVyQyxjQUFJO0FBQ0YscUNBQXlCO0FBQ3pCLDBCQUFjLGNBQWMsa0JBQWtCLFdBQVc7QUFBQSxvQkFDekQ7QUFDQSxxQ0FBeUI7QUFDekIsb0NBQXdCLGFBQWE7QUFBQTtBQUFBO0FBSXpDLCtCQUF1QixjQUFjLGtCQUFrQixpQkFBaUIsYUFBYTtBQUNuRixjQUFJLFlBQVksMEJBQTBCLGNBQWMsa0JBQWtCLGlCQUFpQjtBQUUzRixjQUFJLGNBQWMsTUFBTTtBQUN0Qiw4Q0FBa0MsY0FBYyxrQkFBa0IsYUFBYSxtQkFBbUI7QUFDbEcsbUNBQXVCLGNBQWM7QUFDckM7QUFBQTtBQUdGLGNBQUksdUJBQXVCLFdBQVcsY0FBYyxrQkFBa0IsaUJBQWlCLGNBQWM7QUFDbkcsd0JBQVk7QUFDWjtBQUFBO0FBS0YsaUNBQXVCLGNBQWM7QUFFckMsY0FBSSxtQkFBbUIsb0JBQW9CLHFDQUFxQyxlQUFlO0FBQzdGLG1CQUFPLGNBQWMsTUFBTTtBQUN6QixrQkFBSSxRQUFRLG9CQUFvQjtBQUVoQyxrQkFBSSxVQUFVLE1BQU07QUFDbEIsNENBQTRCO0FBQUE7QUFHOUIsa0JBQUksZ0JBQWdCLDBCQUEwQixjQUFjLGtCQUFrQixpQkFBaUI7QUFFL0Ysa0JBQUksa0JBQWtCLE1BQU07QUFDMUIsa0RBQWtDLGNBQWMsa0JBQWtCLGFBQWEsbUJBQW1CO0FBQUE7QUFHcEcsa0JBQUksa0JBQWtCLFdBQVc7QUFDL0I7QUFBQTtBQUdGLDBCQUFZO0FBQUE7QUFHZCxnQkFBSSxjQUFjLE1BQU07QUFDdEIsMEJBQVk7QUFBQTtBQUdkO0FBQUE7QUFLRiw0Q0FBa0MsY0FBYyxrQkFBa0IsYUFBYSxNQUFNO0FBQUE7QUFHdkYsWUFBSSxvQkFBb0I7QUFHeEIsMkNBQW1DLGNBQWMsa0JBQWtCLGlCQUFpQixhQUFhO0FBRS9GLDhCQUFvQjtBQUNwQixjQUFJLG9CQUFvQixlQUFlO0FBQ3ZDLGNBQUksYUFBYSwyQkFBMkI7QUFFNUMsY0FBSSxlQUFlLE1BQU07QUFDdkIsZ0JBQUksaUJBQWlCLHVCQUF1QjtBQUU1QyxnQkFBSSxtQkFBbUIsTUFBTTtBQUUzQiwyQkFBYTtBQUFBLG1CQUNSO0FBQ0wsa0JBQUksTUFBTSxlQUFlO0FBRXpCLGtCQUFJLFFBQVEsbUJBQW1CO0FBQzdCLG9CQUFJLFdBQVcsNkJBQTZCO0FBRTVDLG9CQUFJLGFBQWEsTUFBTTtBQUtyQix5QkFBTztBQUFBO0FBTVQsNkJBQWE7QUFBQSx5QkFDSixRQUFRLFVBQVU7QUFDM0Isb0JBQUksUUFBTyxlQUFlO0FBRTFCLG9CQUFJLGlCQUFpQixRQUFPO0FBRzFCLHlCQUFPLHNCQUFzQjtBQUFBO0FBRy9CLDZCQUFhO0FBQUEseUJBQ0osbUJBQW1CLFlBQVk7QUFLeEMsNkJBQWE7QUFBQTtBQUFBO0FBQUE7QUFLbkIsOEJBQW9CO0FBRXBCLGlCQUFPO0FBQUE7QUFFVCxrQ0FBMEIsY0FBYztBQUN0QyxrQkFBUTtBQUFBLGlCQUVEO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFHQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFHQTtBQUFBLGlCQUNBO0FBQUEsaUJBR0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUNILHFCQUFPO0FBQUEsaUJBRUo7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBR0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFDSCxxQkFBTztBQUFBLGlCQUVKLFdBQ0g7QUFJRSxrQkFBSSxvQkFBb0I7QUFFeEIsc0JBQVE7QUFBQSxxQkFDRDtBQUNILHlCQUFPO0FBQUEscUJBRUo7QUFDSCx5QkFBTztBQUFBLHFCQUVKO0FBQUEscUJBQ0E7QUFFSCx5QkFBTztBQUFBLHFCQUVKO0FBQ0gseUJBQU87QUFBQTtBQUdQLHlCQUFPO0FBQUE7QUFBQTtBQUFBO0FBS2IscUJBQU87QUFBQTtBQUFBO0FBSWIsd0NBQWdDLFFBQVEsV0FBVyxVQUFVO0FBQzNELGlCQUFPLGlCQUFpQixXQUFXLFVBQVU7QUFDN0MsaUJBQU87QUFBQTtBQUVULHlDQUFpQyxRQUFRLFdBQVcsVUFBVTtBQUM1RCxpQkFBTyxpQkFBaUIsV0FBVyxVQUFVO0FBQzdDLGlCQUFPO0FBQUE7QUFFVCx3REFBZ0QsUUFBUSxXQUFXLFVBQVUsU0FBUztBQUNwRixpQkFBTyxpQkFBaUIsV0FBVyxVQUFVO0FBQUEsWUFDM0MsU0FBUztBQUFBLFlBQ1Q7QUFBQTtBQUVGLGlCQUFPO0FBQUE7QUFFVCx1REFBK0MsUUFBUSxXQUFXLFVBQVUsU0FBUztBQUNuRixpQkFBTyxpQkFBaUIsV0FBVyxVQUFVO0FBQUEsWUFDM0M7QUFBQTtBQUVGLGlCQUFPO0FBQUE7QUFjVCxZQUFJLE9BQU87QUFDWCxZQUFJLFlBQVk7QUFDaEIsWUFBSSxlQUFlO0FBQ25CLDRCQUFvQixtQkFBbUI7QUFDckMsaUJBQU87QUFDUCxzQkFBWTtBQUNaLGlCQUFPO0FBQUE7QUFFVCx5QkFBaUI7QUFDZixpQkFBTztBQUNQLHNCQUFZO0FBQ1oseUJBQWU7QUFBQTtBQUVqQiwyQkFBbUI7QUFDakIsY0FBSSxjQUFjO0FBQ2hCLG1CQUFPO0FBQUE7QUFHVCxjQUFJO0FBQ0osY0FBSSxhQUFhO0FBQ2pCLGNBQUksY0FBYyxXQUFXO0FBQzdCLGNBQUk7QUFDSixjQUFJLFdBQVc7QUFDZixjQUFJLFlBQVksU0FBUztBQUV6QixlQUFLLFFBQVEsR0FBRyxRQUFRLGFBQWEsU0FBUztBQUM1QyxnQkFBSSxXQUFXLFdBQVcsU0FBUyxRQUFRO0FBQ3pDO0FBQUE7QUFBQTtBQUlKLGNBQUksU0FBUyxjQUFjO0FBRTNCLGVBQUssTUFBTSxHQUFHLE9BQU8sUUFBUSxPQUFPO0FBQ2xDLGdCQUFJLFdBQVcsY0FBYyxTQUFTLFNBQVMsWUFBWSxNQUFNO0FBQy9EO0FBQUE7QUFBQTtBQUlKLGNBQUksWUFBWSxNQUFNLElBQUksSUFBSSxNQUFNO0FBQ3BDLHlCQUFlLFNBQVMsTUFBTSxPQUFPO0FBQ3JDLGlCQUFPO0FBQUE7QUFFVCwyQkFBbUI7QUFDakIsY0FBSSxXQUFXLE1BQU07QUFDbkIsbUJBQU8sS0FBSztBQUFBO0FBR2QsaUJBQU8sS0FBSztBQUFBO0FBYWQsa0NBQTBCLGFBQWE7QUFDckMsY0FBSTtBQUNKLGNBQUksVUFBVSxZQUFZO0FBRTFCLGNBQUksY0FBYyxhQUFhO0FBQzdCLHVCQUFXLFlBQVk7QUFFdkIsZ0JBQUksYUFBYSxLQUFLLFlBQVksSUFBSTtBQUNwQyx5QkFBVztBQUFBO0FBQUEsaUJBRVI7QUFFTCx1QkFBVztBQUFBO0FBS2IsY0FBSSxhQUFhLElBQUk7QUFDbkIsdUJBQVc7QUFBQTtBQUtiLGNBQUksWUFBWSxNQUFNLGFBQWEsSUFBSTtBQUNyQyxtQkFBTztBQUFBO0FBR1QsaUJBQU87QUFBQTtBQUdULDJDQUFtQztBQUNqQyxpQkFBTztBQUFBO0FBR1QsNENBQW9DO0FBQ2xDLGlCQUFPO0FBQUE7QUFLVCxzQ0FBOEIsV0FBVztBQWN2QyxzQ0FBNEIsV0FBVyxnQkFBZ0IsWUFBWSxhQUFhLG1CQUFtQjtBQUNqRyxpQkFBSyxhQUFhO0FBQ2xCLGlCQUFLLGNBQWM7QUFDbkIsaUJBQUssT0FBTztBQUNaLGlCQUFLLGNBQWM7QUFDbkIsaUJBQUssU0FBUztBQUNkLGlCQUFLLGdCQUFnQjtBQUVyQixxQkFBUyxhQUFhLFdBQVc7QUFDL0Isa0JBQUksQ0FBQyxVQUFVLGVBQWUsWUFBWTtBQUN4QztBQUFBO0FBR0Ysa0JBQUksWUFBWSxVQUFVO0FBRTFCLGtCQUFJLFdBQVc7QUFDYixxQkFBSyxhQUFhLFVBQVU7QUFBQSxxQkFDdkI7QUFDTCxxQkFBSyxhQUFhLFlBQVk7QUFBQTtBQUFBO0FBSWxDLGdCQUFJLG1CQUFtQixZQUFZLG9CQUFvQixPQUFPLFlBQVksbUJBQW1CLFlBQVksZ0JBQWdCO0FBRXpILGdCQUFJLGtCQUFrQjtBQUNwQixtQkFBSyxxQkFBcUI7QUFBQSxtQkFDckI7QUFDTCxtQkFBSyxxQkFBcUI7QUFBQTtBQUc1QixpQkFBSyx1QkFBdUI7QUFDNUIsbUJBQU87QUFBQTtBQUdULGlCQUFPLG1CQUFtQixXQUFXO0FBQUEsWUFDbkMsZ0JBQWdCLFdBQVk7QUFDMUIsbUJBQUssbUJBQW1CO0FBQ3hCLGtCQUFJLFFBQVEsS0FBSztBQUVqQixrQkFBSSxDQUFDLE9BQU87QUFDVjtBQUFBO0FBR0Ysa0JBQUksTUFBTSxnQkFBZ0I7QUFDeEIsc0JBQU07QUFBQSx5QkFDRyxPQUFPLE1BQU0sZ0JBQWdCLFdBQVc7QUFDakQsc0JBQU0sY0FBYztBQUFBO0FBR3RCLG1CQUFLLHFCQUFxQjtBQUFBO0FBQUEsWUFFNUIsaUJBQWlCLFdBQVk7QUFDM0Isa0JBQUksUUFBUSxLQUFLO0FBRWpCLGtCQUFJLENBQUMsT0FBTztBQUNWO0FBQUE7QUFHRixrQkFBSSxNQUFNLGlCQUFpQjtBQUN6QixzQkFBTTtBQUFBLHlCQUNHLE9BQU8sTUFBTSxpQkFBaUIsV0FBVztBQU1sRCxzQkFBTSxlQUFlO0FBQUE7QUFHdkIsbUJBQUssdUJBQXVCO0FBQUE7QUFBQSxZQVE5QixTQUFTLFdBQVk7QUFBQTtBQUFBLFlBUXJCLGNBQWM7QUFBQTtBQUVoQixpQkFBTztBQUFBO0FBUVQsWUFBSSxpQkFBaUI7QUFBQSxVQUNuQixZQUFZO0FBQUEsVUFDWixTQUFTO0FBQUEsVUFDVCxZQUFZO0FBQUEsVUFDWixXQUFXLFNBQVUsT0FBTztBQUMxQixtQkFBTyxNQUFNLGFBQWEsS0FBSztBQUFBO0FBQUEsVUFFakMsa0JBQWtCO0FBQUEsVUFDbEIsV0FBVztBQUFBO0FBRWIsWUFBSSxpQkFBaUIscUJBQXFCO0FBRTFDLFlBQUksbUJBQW1CLE9BQU8sSUFBSSxnQkFBZ0I7QUFBQSxVQUNoRCxNQUFNO0FBQUEsVUFDTixRQUFRO0FBQUE7QUFHVixZQUFJLG1CQUFtQixxQkFBcUI7QUFDNUMsWUFBSTtBQUNKLFlBQUk7QUFDSixZQUFJO0FBRUosa0RBQTBDLE9BQU87QUFDL0MsY0FBSSxVQUFVLGdCQUFnQjtBQUM1QixnQkFBSSxrQkFBa0IsTUFBTSxTQUFTLGFBQWE7QUFDaEQsOEJBQWdCLE1BQU0sVUFBVSxlQUFlO0FBQy9DLDhCQUFnQixNQUFNLFVBQVUsZUFBZTtBQUFBLG1CQUMxQztBQUNMLDhCQUFnQjtBQUNoQiw4QkFBZ0I7QUFBQTtBQUdsQiw2QkFBaUI7QUFBQTtBQUFBO0FBU3JCLFlBQUksc0JBQXNCLE9BQU8sSUFBSSxrQkFBa0I7QUFBQSxVQUNyRCxTQUFTO0FBQUEsVUFDVCxTQUFTO0FBQUEsVUFDVCxTQUFTO0FBQUEsVUFDVCxTQUFTO0FBQUEsVUFDVCxPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUEsVUFDVCxVQUFVO0FBQUEsVUFDVixRQUFRO0FBQUEsVUFDUixTQUFTO0FBQUEsVUFDVCxrQkFBa0I7QUFBQSxVQUNsQixRQUFRO0FBQUEsVUFDUixTQUFTO0FBQUEsVUFDVCxlQUFlLFNBQVUsT0FBTztBQUM5QixnQkFBSSxNQUFNLGtCQUFrQjtBQUFXLHFCQUFPLE1BQU0sZ0JBQWdCLE1BQU0sYUFBYSxNQUFNLFlBQVksTUFBTTtBQUMvRyxtQkFBTyxNQUFNO0FBQUE7QUFBQSxVQUVmLFdBQVcsU0FBVSxPQUFPO0FBQzFCLGdCQUFJLGVBQWUsT0FBTztBQUN4QixxQkFBTyxNQUFNO0FBQUE7QUFHZiw2Q0FBaUM7QUFDakMsbUJBQU87QUFBQTtBQUFBLFVBRVQsV0FBVyxTQUFVLE9BQU87QUFDMUIsZ0JBQUksZUFBZSxPQUFPO0FBQ3hCLHFCQUFPLE1BQU07QUFBQTtBQU1mLG1CQUFPO0FBQUE7QUFBQTtBQUlYLFlBQUksc0JBQXNCLHFCQUFxQjtBQU0vQyxZQUFJLHFCQUFxQixPQUFPLElBQUkscUJBQXFCO0FBQUEsVUFDdkQsY0FBYztBQUFBO0FBR2hCLFlBQUkscUJBQXFCLHFCQUFxQjtBQU05QyxZQUFJLHNCQUFzQixPQUFPLElBQUksa0JBQWtCO0FBQUEsVUFDckQsZUFBZTtBQUFBO0FBR2pCLFlBQUksc0JBQXNCLHFCQUFxQjtBQU8vQyxZQUFJLDBCQUEwQixPQUFPLElBQUksZ0JBQWdCO0FBQUEsVUFDdkQsZUFBZTtBQUFBLFVBQ2YsYUFBYTtBQUFBLFVBQ2IsZUFBZTtBQUFBO0FBR2pCLFlBQUksMEJBQTBCLHFCQUFxQjtBQU1uRCxZQUFJLDBCQUEwQixPQUFPLElBQUksZ0JBQWdCO0FBQUEsVUFDdkQsZUFBZSxTQUFVLE9BQU87QUFDOUIsbUJBQU8sbUJBQW1CLFFBQVEsTUFBTSxnQkFBZ0IsT0FBTztBQUFBO0FBQUE7QUFJbkUsWUFBSSwwQkFBMEIscUJBQXFCO0FBTW5ELFlBQUksNEJBQTRCLE9BQU8sSUFBSSxnQkFBZ0I7QUFBQSxVQUN6RCxNQUFNO0FBQUE7QUFHUixZQUFJLDRCQUE0QixxQkFBcUI7QUFRckQsWUFBSSxzQkFBc0I7QUFNMUIsWUFBSSxlQUFlO0FBQUEsVUFDakIsS0FBSztBQUFBLFVBQ0wsVUFBVTtBQUFBLFVBQ1YsTUFBTTtBQUFBLFVBQ04sSUFBSTtBQUFBLFVBQ0osT0FBTztBQUFBLFVBQ1AsTUFBTTtBQUFBLFVBQ04sS0FBSztBQUFBLFVBQ0wsS0FBSztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sTUFBTTtBQUFBLFVBQ04sUUFBUTtBQUFBLFVBQ1IsaUJBQWlCO0FBQUE7QUFRbkIsWUFBSSxpQkFBaUI7QUFBQSxVQUNuQixLQUFLO0FBQUEsVUFDTCxLQUFLO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUE7QUFPVCw2QkFBcUIsYUFBYTtBQUNoQyxjQUFJLFlBQVksS0FBSztBQUtuQixnQkFBSSxNQUFNLGFBQWEsWUFBWSxRQUFRLFlBQVk7QUFFdkQsZ0JBQUksUUFBUSxnQkFBZ0I7QUFDMUIscUJBQU87QUFBQTtBQUFBO0FBS1gsY0FBSSxZQUFZLFNBQVMsWUFBWTtBQUNuQyxnQkFBSSxXQUFXLGlCQUFpQjtBQUdoQyxtQkFBTyxhQUFhLEtBQUssVUFBVSxPQUFPLGFBQWE7QUFBQTtBQUd6RCxjQUFJLFlBQVksU0FBUyxhQUFhLFlBQVksU0FBUyxTQUFTO0FBR2xFLG1CQUFPLGVBQWUsWUFBWSxZQUFZO0FBQUE7QUFHaEQsaUJBQU87QUFBQTtBQVFULFlBQUksb0JBQW9CO0FBQUEsVUFDdEIsS0FBSztBQUFBLFVBQ0wsU0FBUztBQUFBLFVBQ1QsTUFBTTtBQUFBLFVBQ04sT0FBTztBQUFBO0FBS1QscUNBQTZCLFFBQVE7QUFDbkMsY0FBSSxpQkFBaUI7QUFDckIsY0FBSSxjQUFjLGVBQWU7QUFFakMsY0FBSSxZQUFZLGtCQUFrQjtBQUNoQyxtQkFBTyxZQUFZLGlCQUFpQjtBQUFBO0FBR3RDLGNBQUksVUFBVSxrQkFBa0I7QUFDaEMsaUJBQU8sVUFBVSxDQUFDLENBQUMsWUFBWSxXQUFXO0FBQUE7QUFHNUMsdUNBQStCLGFBQWE7QUFDMUMsaUJBQU87QUFBQTtBQVFULFlBQUkseUJBQXlCLE9BQU8sSUFBSSxrQkFBa0I7QUFBQSxVQUN4RCxLQUFLO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixVQUFVO0FBQUEsVUFDVixTQUFTO0FBQUEsVUFDVCxVQUFVO0FBQUEsVUFDVixRQUFRO0FBQUEsVUFDUixTQUFTO0FBQUEsVUFDVCxRQUFRO0FBQUEsVUFDUixRQUFRO0FBQUEsVUFDUixrQkFBa0I7QUFBQSxVQUVsQixVQUFVLFNBQVUsT0FBTztBQUt6QixnQkFBSSxNQUFNLFNBQVMsWUFBWTtBQUM3QixxQkFBTyxpQkFBaUI7QUFBQTtBQUcxQixtQkFBTztBQUFBO0FBQUEsVUFFVCxTQUFTLFNBQVUsT0FBTztBQU94QixnQkFBSSxNQUFNLFNBQVMsYUFBYSxNQUFNLFNBQVMsU0FBUztBQUN0RCxxQkFBTyxNQUFNO0FBQUE7QUFHZixtQkFBTztBQUFBO0FBQUEsVUFFVCxPQUFPLFNBQVUsT0FBTztBQUd0QixnQkFBSSxNQUFNLFNBQVMsWUFBWTtBQUM3QixxQkFBTyxpQkFBaUI7QUFBQTtBQUcxQixnQkFBSSxNQUFNLFNBQVMsYUFBYSxNQUFNLFNBQVMsU0FBUztBQUN0RCxxQkFBTyxNQUFNO0FBQUE7QUFHZixtQkFBTztBQUFBO0FBQUE7QUFJWCxZQUFJLHlCQUF5QixxQkFBcUI7QUFNbEQsWUFBSSx3QkFBd0IsT0FBTyxJQUFJLHFCQUFxQjtBQUFBLFVBQzFELFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxVQUNQLFFBQVE7QUFBQSxVQUNSLFVBQVU7QUFBQSxVQUNWLG9CQUFvQjtBQUFBLFVBQ3BCLE9BQU87QUFBQSxVQUNQLE9BQU87QUFBQSxVQUNQLE9BQU87QUFBQSxVQUNQLGFBQWE7QUFBQSxVQUNiLFdBQVc7QUFBQTtBQUdiLFlBQUksd0JBQXdCLHFCQUFxQjtBQU1qRCxZQUFJLHNCQUFzQixPQUFPLElBQUksa0JBQWtCO0FBQUEsVUFDckQsU0FBUztBQUFBLFVBQ1QsZUFBZTtBQUFBLFVBQ2YsZ0JBQWdCO0FBQUEsVUFDaEIsUUFBUTtBQUFBLFVBQ1IsU0FBUztBQUFBLFVBQ1QsU0FBUztBQUFBLFVBQ1QsVUFBVTtBQUFBLFVBQ1Ysa0JBQWtCO0FBQUE7QUFHcEIsWUFBSSxzQkFBc0IscUJBQXFCO0FBTy9DLFlBQUksMkJBQTJCLE9BQU8sSUFBSSxnQkFBZ0I7QUFBQSxVQUN4RCxjQUFjO0FBQUEsVUFDZCxhQUFhO0FBQUEsVUFDYixlQUFlO0FBQUE7QUFHakIsWUFBSSwyQkFBMkIscUJBQXFCO0FBTXBELFlBQUksc0JBQXNCLE9BQU8sSUFBSSxxQkFBcUI7QUFBQSxVQUN4RCxRQUFRLFNBQVUsT0FBTztBQUN2QixtQkFBTyxZQUFZLFFBQVEsTUFBTSxTQUNqQyxpQkFBaUIsUUFBUSxDQUFDLE1BQU0sY0FBYztBQUFBO0FBQUEsVUFFaEQsUUFBUSxTQUFVLE9BQU87QUFDdkIsbUJBQU8sWUFBWSxRQUFRLE1BQU0sU0FDakMsaUJBQWlCLFFBQVEsQ0FBQyxNQUFNLGNBQ2hDLGdCQUFnQixRQUFRLENBQUMsTUFBTSxhQUFhO0FBQUE7QUFBQSxVQUU5QyxRQUFRO0FBQUEsVUFLUixXQUFXO0FBQUE7QUFHYixZQUFJLHNCQUFzQixxQkFBcUI7QUFFL0MsWUFBSSxlQUFlLENBQUMsR0FBRyxJQUFJLElBQUk7QUFFL0IsWUFBSSxnQkFBZ0I7QUFDcEIsWUFBSSx5QkFBeUIsYUFBYSxzQkFBc0I7QUFDaEUsWUFBSSxlQUFlO0FBRW5CLFlBQUksYUFBYSxrQkFBa0IsVUFBVTtBQUMzQyx5QkFBZSxTQUFTO0FBQUE7QUFNMUIsWUFBSSx1QkFBdUIsYUFBYSxlQUFlLFVBQVUsQ0FBQztBQUlsRSxZQUFJLDZCQUE2QixhQUFjLEVBQUMsMEJBQTBCLGdCQUFnQixlQUFlLEtBQUssZ0JBQWdCO0FBQzlILFlBQUksZ0JBQWdCO0FBQ3BCLFlBQUksZ0JBQWdCLE9BQU8sYUFBYTtBQUV4QyxrQ0FBMEI7QUFDeEIsZ0NBQXNCLGlCQUFpQixDQUFDLGtCQUFrQixZQUFZLGFBQWE7QUFDbkYsZ0NBQXNCLG9CQUFvQixDQUFDLGtCQUFrQixZQUFZLFdBQVcsWUFBWSxTQUFTO0FBQ3pHLGdDQUFzQixzQkFBc0IsQ0FBQyxvQkFBb0IsWUFBWSxXQUFXLFlBQVksU0FBUztBQUM3RyxnQ0FBc0IsdUJBQXVCLENBQUMscUJBQXFCLFlBQVksV0FBVyxZQUFZLFNBQVM7QUFBQTtBQUlqSCxZQUFJLG1CQUFtQjtBQU92QixtQ0FBMkIsYUFBYTtBQUN0QyxpQkFBUSxhQUFZLFdBQVcsWUFBWSxVQUFVLFlBQVksWUFDakUsQ0FBRSxhQUFZLFdBQVcsWUFBWTtBQUFBO0FBT3ZDLHlDQUFpQyxjQUFjO0FBQzdDLGtCQUFRO0FBQUEsaUJBQ0Q7QUFDSCxxQkFBTztBQUFBLGlCQUVKO0FBQ0gscUJBQU87QUFBQSxpQkFFSjtBQUNILHFCQUFPO0FBQUE7QUFBQTtBQVNiLDRDQUFvQyxjQUFjLGFBQWE7QUFDN0QsaUJBQU8saUJBQWlCLGFBQWEsWUFBWSxZQUFZO0FBQUE7QUFPL0QsMENBQWtDLGNBQWMsYUFBYTtBQUMzRCxrQkFBUTtBQUFBLGlCQUNEO0FBRUgscUJBQU8sYUFBYSxRQUFRLFlBQVksYUFBYTtBQUFBLGlCQUVsRDtBQUdILHFCQUFPLFlBQVksWUFBWTtBQUFBLGlCQUU1QjtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFFSCxxQkFBTztBQUFBO0FBR1AscUJBQU87QUFBQTtBQUFBO0FBY2Isd0NBQWdDLGFBQWE7QUFDM0MsY0FBSSxTQUFTLFlBQVk7QUFFekIsY0FBSSxPQUFPLFdBQVcsWUFBWSxVQUFVLFFBQVE7QUFDbEQsbUJBQU8sT0FBTztBQUFBO0FBR2hCLGlCQUFPO0FBQUE7QUFjVCxrQ0FBMEIsYUFBYTtBQUNyQyxpQkFBTyxZQUFZLFdBQVc7QUFBQTtBQUloQyxZQUFJLGNBQWM7QUFLbEIseUNBQWlDLGVBQWUsY0FBYyxZQUFZLGFBQWEsbUJBQW1CO0FBQ3hHLGNBQUk7QUFDSixjQUFJO0FBRUosY0FBSSx3QkFBd0I7QUFDMUIsd0JBQVksd0JBQXdCO0FBQUEscUJBQzNCLENBQUMsYUFBYTtBQUN2QixnQkFBSSwyQkFBMkIsY0FBYyxjQUFjO0FBQ3pELDBCQUFZO0FBQUE7QUFBQSxxQkFFTCx5QkFBeUIsY0FBYyxjQUFjO0FBQzlELHdCQUFZO0FBQUE7QUFHZCxjQUFJLENBQUMsV0FBVztBQUNkLG1CQUFPO0FBQUE7QUFHVCxjQUFJLDhCQUE4QixDQUFDLGlCQUFpQixjQUFjO0FBR2hFLGdCQUFJLENBQUMsZUFBZSxjQUFjLHNCQUFzQjtBQUN0RCw0QkFBYyxXQUFXO0FBQUEsdUJBQ2hCLGNBQWMsb0JBQW9CO0FBQzNDLGtCQUFJLGFBQWE7QUFDZiwrQkFBZTtBQUFBO0FBQUE7QUFBQTtBQUtyQixjQUFJLFlBQVksNEJBQTRCLFlBQVk7QUFFeEQsY0FBSSxVQUFVLFNBQVMsR0FBRztBQUN4QixnQkFBSSxRQUFRLElBQUksMEJBQTBCLFdBQVcsY0FBYyxNQUFNLGFBQWE7QUFDdEYsMEJBQWMsS0FBSztBQUFBLGNBQ2pCO0FBQUEsY0FDQTtBQUFBO0FBR0YsZ0JBQUksY0FBYztBQUdoQixvQkFBTSxPQUFPO0FBQUEsbUJBQ1I7QUFDTCxrQkFBSSxhQUFhLHVCQUF1QjtBQUV4QyxrQkFBSSxlQUFlLE1BQU07QUFDdkIsc0JBQU0sT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTXJCLDJDQUFtQyxjQUFjLGFBQWE7QUFDNUQsa0JBQVE7QUFBQSxpQkFDRDtBQUNILHFCQUFPLHVCQUF1QjtBQUFBLGlCQUUzQjtBQWVILGtCQUFJLFFBQVEsWUFBWTtBQUV4QixrQkFBSSxVQUFVLGVBQWU7QUFDM0IsdUJBQU87QUFBQTtBQUdULGlDQUFtQjtBQUNuQixxQkFBTztBQUFBLGlCQUVKO0FBRUgsa0JBQUksUUFBUSxZQUFZO0FBSXhCLGtCQUFJLFVBQVUsaUJBQWlCLGtCQUFrQjtBQUMvQyx1QkFBTztBQUFBO0FBR1QscUJBQU87QUFBQTtBQUlQLHFCQUFPO0FBQUE7QUFBQTtBQVNiLDZDQUFxQyxjQUFjLGFBQWE7QUFLOUQsY0FBSSxhQUFhO0FBQ2YsZ0JBQUksaUJBQWlCLG9CQUFvQixDQUFDLDBCQUEwQix5QkFBeUIsY0FBYyxjQUFjO0FBQ3ZILGtCQUFJLFFBQVE7QUFDWjtBQUNBLDRCQUFjO0FBQ2QscUJBQU87QUFBQTtBQUdULG1CQUFPO0FBQUE7QUFHVCxrQkFBUTtBQUFBLGlCQUNEO0FBR0gscUJBQU87QUFBQSxpQkFFSjtBQWlCSCxrQkFBSSxDQUFDLGtCQUFrQixjQUFjO0FBT25DLG9CQUFJLFlBQVksUUFBUSxZQUFZLEtBQUssU0FBUyxHQUFHO0FBQ25ELHlCQUFPLFlBQVk7QUFBQSwyQkFDVixZQUFZLE9BQU87QUFDNUIseUJBQU8sT0FBTyxhQUFhLFlBQVk7QUFBQTtBQUFBO0FBSTNDLHFCQUFPO0FBQUEsaUJBRUo7QUFDSCxxQkFBTyw4QkFBOEIsQ0FBQyxpQkFBaUIsZUFBZSxPQUFPLFlBQVk7QUFBQTtBQUd6RixxQkFBTztBQUFBO0FBQUE7QUFXYix5Q0FBaUMsZUFBZSxjQUFjLFlBQVksYUFBYSxtQkFBbUI7QUFDeEcsY0FBSTtBQUVKLGNBQUksc0JBQXNCO0FBQ3hCLG9CQUFRLDBCQUEwQixjQUFjO0FBQUEsaUJBQzNDO0FBQ0wsb0JBQVEsNEJBQTRCLGNBQWM7QUFBQTtBQUtwRCxjQUFJLENBQUMsT0FBTztBQUNWLG1CQUFPO0FBQUE7QUFHVCxjQUFJLFlBQVksNEJBQTRCLFlBQVk7QUFFeEQsY0FBSSxVQUFVLFNBQVMsR0FBRztBQUN4QixnQkFBSSxRQUFRLElBQUksb0JBQW9CLGlCQUFpQixlQUFlLE1BQU0sYUFBYTtBQUN2RiwwQkFBYyxLQUFLO0FBQUEsY0FDakI7QUFBQSxjQUNBO0FBQUE7QUFFRixrQkFBTSxPQUFPO0FBQUE7QUFBQTtBQXVCakIsK0JBQXVCLGVBQWUsY0FBYyxZQUFZLGFBQWEsbUJBQW1CLGtCQUFrQixpQkFBaUI7QUFDakksa0NBQXdCLGVBQWUsY0FBYyxZQUFZLGFBQWE7QUFDOUUsa0NBQXdCLGVBQWUsY0FBYyxZQUFZLGFBQWE7QUFBQTtBQU1oRixZQUFJLHNCQUFzQjtBQUFBLFVBQ3hCLE9BQU87QUFBQSxVQUNQLE1BQU07QUFBQSxVQUNOLFVBQVU7QUFBQSxVQUNWLGtCQUFrQjtBQUFBLFVBQ2xCLE9BQU87QUFBQSxVQUNQLE9BQU87QUFBQSxVQUNQLFFBQVE7QUFBQSxVQUNSLFVBQVU7QUFBQSxVQUNWLE9BQU87QUFBQSxVQUNQLFFBQVE7QUFBQSxVQUNSLEtBQUs7QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLE1BQU07QUFBQSxVQUNOLEtBQUs7QUFBQSxVQUNMLE1BQU07QUFBQTtBQUdSLG9DQUE0QixNQUFNO0FBQ2hDLGNBQUksV0FBVyxRQUFRLEtBQUssWUFBWSxLQUFLLFNBQVM7QUFFdEQsY0FBSSxhQUFhLFNBQVM7QUFDeEIsbUJBQU8sQ0FBQyxDQUFDLG9CQUFvQixLQUFLO0FBQUE7QUFHcEMsY0FBSSxhQUFhLFlBQVk7QUFDM0IsbUJBQU87QUFBQTtBQUdULGlCQUFPO0FBQUE7QUFHVCxBQWNBLGtDQUEwQixpQkFBaUI7QUFDekMsY0FBSSxDQUFDLFdBQVc7QUFDZCxtQkFBTztBQUFBO0FBR1QsY0FBSSxZQUFZLE9BQU87QUFDdkIsY0FBSSxjQUFlLGFBQWE7QUFFaEMsY0FBSSxDQUFDLGFBQWE7QUFDaEIsZ0JBQUksVUFBVSxTQUFTLGNBQWM7QUFDckMsb0JBQVEsYUFBYSxXQUFXO0FBQ2hDLDBCQUFjLE9BQU8sUUFBUSxlQUFlO0FBQUE7QUFHOUMsaUJBQU87QUFBQTtBQUdULG9DQUE0QjtBQUMxQixnQ0FBc0IsWUFBWSxDQUFDLFVBQVUsU0FBUyxXQUFXLFlBQVksU0FBUyxXQUFXLFNBQVM7QUFBQTtBQUc1RyxnREFBd0MsZUFBZSxNQUFNLGFBQWEsUUFBUTtBQUVoRiw4QkFBb0I7QUFDcEIsY0FBSSxZQUFZLDRCQUE0QixNQUFNO0FBRWxELGNBQUksVUFBVSxTQUFTLEdBQUc7QUFDeEIsZ0JBQUksUUFBUSxJQUFJLGVBQWUsWUFBWSxVQUFVLE1BQU0sYUFBYTtBQUN4RSwwQkFBYyxLQUFLO0FBQUEsY0FDakI7QUFBQSxjQUNBO0FBQUE7QUFBQTtBQUFBO0FBU04sWUFBSSxnQkFBZ0I7QUFDcEIsWUFBSSxvQkFBb0I7QUFLeEIsc0NBQThCLE1BQU07QUFDbEMsY0FBSSxXQUFXLEtBQUssWUFBWSxLQUFLLFNBQVM7QUFDOUMsaUJBQU8sYUFBYSxZQUFZLGFBQWEsV0FBVyxLQUFLLFNBQVM7QUFBQTtBQUd4RSwyQ0FBbUMsYUFBYTtBQUM5QyxjQUFJLGdCQUFnQjtBQUNwQix5Q0FBK0IsZUFBZSxtQkFBbUIsYUFBYSxlQUFlO0FBWTdGLHlCQUFlLGlCQUFpQjtBQUFBO0FBR2xDLGlDQUF5QixlQUFlO0FBQ3RDLCtCQUFxQixlQUFlO0FBQUE7QUFHdEMsdUNBQStCLFlBQVk7QUFDekMsY0FBSSxhQUFhLG9CQUFvQjtBQUVyQyxjQUFJLHFCQUFxQixhQUFhO0FBQ3BDLG1CQUFPO0FBQUE7QUFBQTtBQUlYLDZDQUFxQyxjQUFjLFlBQVk7QUFDN0QsY0FBSSxpQkFBaUIsVUFBVTtBQUM3QixtQkFBTztBQUFBO0FBQUE7QUFRWCxZQUFJLHdCQUF3QjtBQUU1QixZQUFJLFdBQVc7QUFHYixrQ0FBd0IsaUJBQWlCLFlBQWEsRUFBQyxTQUFTLGdCQUFnQixTQUFTLGVBQWU7QUFBQTtBQVMxRyw2Q0FBcUMsUUFBUSxZQUFZO0FBQ3ZELDBCQUFnQjtBQUNoQiw4QkFBb0I7QUFDcEIsd0JBQWMsWUFBWSxvQkFBb0I7QUFBQTtBQVFoRCw4Q0FBc0M7QUFDcEMsY0FBSSxDQUFDLGVBQWU7QUFDbEI7QUFBQTtBQUdGLHdCQUFjLFlBQVksb0JBQW9CO0FBQzlDLDBCQUFnQjtBQUNoQiw4QkFBb0I7QUFBQTtBQVF0QixzQ0FBOEIsYUFBYTtBQUN6QyxjQUFJLFlBQVksaUJBQWlCLFNBQVM7QUFDeEM7QUFBQTtBQUdGLGNBQUksc0JBQXNCLG9CQUFvQjtBQUM1QyxzQ0FBMEI7QUFBQTtBQUFBO0FBSTlCLG1EQUEyQyxjQUFjLFFBQVEsWUFBWTtBQUMzRSxjQUFJLGlCQUFpQixXQUFXO0FBVzlCO0FBQ0Esd0NBQTRCLFFBQVE7QUFBQSxxQkFDM0IsaUJBQWlCLFlBQVk7QUFDdEM7QUFBQTtBQUFBO0FBS0osb0RBQTRDLGNBQWMsWUFBWTtBQUNwRSxjQUFJLGlCQUFpQixxQkFBcUIsaUJBQWlCLFdBQVcsaUJBQWlCLFdBQVc7QUFXaEcsbUJBQU8sc0JBQXNCO0FBQUE7QUFBQTtBQVFqQyxxQ0FBNkIsTUFBTTtBQUlqQyxjQUFJLFdBQVcsS0FBSztBQUNwQixpQkFBTyxZQUFZLFNBQVMsa0JBQWtCLFdBQVksTUFBSyxTQUFTLGNBQWMsS0FBSyxTQUFTO0FBQUE7QUFHdEcsNENBQW9DLGNBQWMsWUFBWTtBQUM1RCxjQUFJLGlCQUFpQixTQUFTO0FBQzVCLG1CQUFPLHNCQUFzQjtBQUFBO0FBQUE7QUFJakMsb0RBQTRDLGNBQWMsWUFBWTtBQUNwRSxjQUFJLGlCQUFpQixXQUFXLGlCQUFpQixVQUFVO0FBQ3pELG1CQUFPLHNCQUFzQjtBQUFBO0FBQUE7QUFJakMsMkNBQW1DLE1BQU07QUFDdkMsY0FBSSxRQUFRLEtBQUs7QUFFakIsY0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLGNBQWMsS0FBSyxTQUFTLFVBQVU7QUFDekQ7QUFBQTtBQUdGO0FBRUUsNEJBQWdCLE1BQU0sVUFBVSxLQUFLO0FBQUE7QUFBQTtBQWV6QyxpQ0FBeUIsZUFBZSxjQUFjLFlBQVksYUFBYSxtQkFBbUIsa0JBQWtCLGlCQUFpQjtBQUNuSSxjQUFJLGFBQWEsYUFBYSxvQkFBb0IsY0FBYztBQUNoRSxjQUFJLG1CQUFtQjtBQUV2QixjQUFJLHFCQUFxQixhQUFhO0FBQ3BDLGdDQUFvQjtBQUFBLHFCQUNYLG1CQUFtQixhQUFhO0FBQ3pDLGdCQUFJLHVCQUF1QjtBQUN6QixrQ0FBb0I7QUFBQSxtQkFDZjtBQUNMLGtDQUFvQjtBQUNwQixnQ0FBa0I7QUFBQTtBQUFBLHFCQUVYLG9CQUFvQixhQUFhO0FBQzFDLGdDQUFvQjtBQUFBO0FBR3RCLGNBQUksbUJBQW1CO0FBQ3JCLGdCQUFJLE9BQU8sa0JBQWtCLGNBQWM7QUFFM0MsZ0JBQUksTUFBTTtBQUNSLDZDQUErQixlQUFlLE1BQU0sYUFBYTtBQUNqRTtBQUFBO0FBQUE7QUFJSixjQUFJLGlCQUFpQjtBQUNuQiw0QkFBZ0IsY0FBYyxZQUFZO0FBQUE7QUFJNUMsY0FBSSxpQkFBaUIsWUFBWTtBQUMvQixzQ0FBMEI7QUFBQTtBQUFBO0FBSTlCLG9DQUE0QjtBQUMxQiw4QkFBb0IsZ0JBQWdCLENBQUMsWUFBWTtBQUNqRCw4QkFBb0IsZ0JBQWdCLENBQUMsWUFBWTtBQUNqRCw4QkFBb0Isa0JBQWtCLENBQUMsY0FBYztBQUNyRCw4QkFBb0Isa0JBQWtCLENBQUMsY0FBYztBQUFBO0FBV3ZELGlDQUF5QixlQUFlLGNBQWMsWUFBWSxhQUFhLG1CQUFtQixrQkFBa0IsaUJBQWlCO0FBQ25JLGNBQUksY0FBYyxpQkFBaUIsZUFBZSxpQkFBaUI7QUFDbkUsY0FBSSxhQUFhLGlCQUFpQixjQUFjLGlCQUFpQjtBQUVqRSxjQUFJLGVBQWUsQ0FBQyxpQkFBaUIsY0FBYztBQUtqRCxnQkFBSSxVQUFVLFlBQVksaUJBQWlCLFlBQVk7QUFFdkQsZ0JBQUksU0FBUztBQUdYLGtCQUFJLDJCQUEyQixZQUFZLHdCQUF3QixVQUFVO0FBQzNFO0FBQUE7QUFBQTtBQUFBO0FBS04sY0FBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhO0FBRS9CO0FBQUE7QUFHRixjQUFJO0FBRUosY0FBSSxrQkFBa0IsV0FBVyxtQkFBbUI7QUFFbEQsa0JBQU07QUFBQSxpQkFDRDtBQUVMLGdCQUFJLE1BQU0sa0JBQWtCO0FBRTVCLGdCQUFJLEtBQUs7QUFDUCxvQkFBTSxJQUFJLGVBQWUsSUFBSTtBQUFBLG1CQUN4QjtBQUNMLG9CQUFNO0FBQUE7QUFBQTtBQUlWLGNBQUk7QUFDSixjQUFJO0FBRUosY0FBSSxZQUFZO0FBQ2QsZ0JBQUksV0FBVyxZQUFZLGlCQUFpQixZQUFZO0FBRXhELG1CQUFPO0FBQ1AsaUJBQUssV0FBVywyQkFBMkIsWUFBWTtBQUV2RCxnQkFBSSxPQUFPLE1BQU07QUFDZixrQkFBSSxpQkFBaUIsdUJBQXVCO0FBRTVDLGtCQUFJLE9BQU8sa0JBQWtCLEdBQUcsUUFBUSxpQkFBaUIsR0FBRyxRQUFRLFVBQVU7QUFDNUUscUJBQUs7QUFBQTtBQUFBO0FBQUEsaUJBR0o7QUFFTCxtQkFBTztBQUNQLGlCQUFLO0FBQUE7QUFHUCxjQUFJLFNBQVMsSUFBSTtBQUVmO0FBQUE7QUFHRixjQUFJLHFCQUFxQjtBQUN6QixjQUFJLGlCQUFpQjtBQUNyQixjQUFJLGlCQUFpQjtBQUNyQixjQUFJLGtCQUFrQjtBQUV0QixjQUFJLGlCQUFpQixnQkFBZ0IsaUJBQWlCLGVBQWU7QUFDbkUsaUNBQXFCO0FBQ3JCLDZCQUFpQjtBQUNqQiw2QkFBaUI7QUFDakIsOEJBQWtCO0FBQUE7QUFHcEIsY0FBSSxXQUFXLFFBQVEsT0FBTyxNQUFNLG9CQUFvQjtBQUN4RCxjQUFJLFNBQVMsTUFBTSxPQUFPLE1BQU0sb0JBQW9CO0FBQ3BELGNBQUksUUFBUSxJQUFJLG1CQUFtQixnQkFBZ0Isa0JBQWtCLFNBQVMsTUFBTSxhQUFhO0FBQ2pHLGdCQUFNLFNBQVM7QUFDZixnQkFBTSxnQkFBZ0I7QUFDdEIsY0FBSSxRQUFRO0FBR1osY0FBSSxtQkFBbUIsMkJBQTJCO0FBRWxELGNBQUkscUJBQXFCLFlBQVk7QUFDbkMsZ0JBQUksYUFBYSxJQUFJLG1CQUFtQixnQkFBZ0Isa0JBQWtCLFNBQVMsSUFBSSxhQUFhO0FBQ3BHLHVCQUFXLFNBQVM7QUFDcEIsdUJBQVcsZ0JBQWdCO0FBQzNCLG9CQUFRO0FBQUE7QUFHVixnREFBc0MsZUFBZSxPQUFPLE9BQU8sTUFBTTtBQUFBO0FBTzNFLG9CQUFZLEdBQUcsR0FBRztBQUNoQixpQkFBTyxNQUFNLEtBQU0sT0FBTSxLQUFLLElBQUksTUFBTSxJQUFJLE1BQU0sTUFBTSxLQUFLLE1BQU07QUFBQTtBQUlyRSxZQUFJLFdBQVcsT0FBTyxPQUFPLE9BQU8sYUFBYSxPQUFPLEtBQUs7QUFRN0QsOEJBQXNCLE1BQU0sTUFBTTtBQUNoQyxjQUFJLFNBQVMsTUFBTSxPQUFPO0FBQ3hCLG1CQUFPO0FBQUE7QUFHVCxjQUFJLE9BQU8sU0FBUyxZQUFZLFNBQVMsUUFBUSxPQUFPLFNBQVMsWUFBWSxTQUFTLE1BQU07QUFDMUYsbUJBQU87QUFBQTtBQUdULGNBQUksUUFBUSxPQUFPLEtBQUs7QUFDeEIsY0FBSSxRQUFRLE9BQU8sS0FBSztBQUV4QixjQUFJLE1BQU0sV0FBVyxNQUFNLFFBQVE7QUFDakMsbUJBQU87QUFBQTtBQUlULG1CQUFTLElBQUksR0FBRyxJQUFJLE1BQU0sUUFBUSxLQUFLO0FBQ3JDLGdCQUFJLGFBQWEsTUFBTTtBQUV2QixnQkFBSSxDQUFDLGVBQWUsS0FBSyxNQUFNLGVBQWUsQ0FBQyxTQUFTLEtBQUssYUFBYSxLQUFLLGNBQWM7QUFDM0YscUJBQU87QUFBQTtBQUFBO0FBSVgsaUJBQU87QUFBQTtBQVVULDZCQUFxQixNQUFNO0FBQ3pCLGlCQUFPLFFBQVEsS0FBSyxZQUFZO0FBQzlCLG1CQUFPLEtBQUs7QUFBQTtBQUdkLGlCQUFPO0FBQUE7QUFXVCxnQ0FBd0IsTUFBTTtBQUM1QixpQkFBTyxNQUFNO0FBQ1gsZ0JBQUksS0FBSyxhQUFhO0FBQ3BCLHFCQUFPLEtBQUs7QUFBQTtBQUdkLG1CQUFPLEtBQUs7QUFBQTtBQUFBO0FBWWhCLDJDQUFtQyxPQUFNLFFBQVE7QUFDL0MsY0FBSSxPQUFPLFlBQVk7QUFDdkIsY0FBSSxZQUFZO0FBQ2hCLGNBQUksVUFBVTtBQUVkLGlCQUFPLE1BQU07QUFDWCxnQkFBSSxLQUFLLGFBQWEsV0FBVztBQUMvQix3QkFBVSxZQUFZLEtBQUssWUFBWTtBQUV2QyxrQkFBSSxhQUFhLFVBQVUsV0FBVyxRQUFRO0FBQzVDLHVCQUFPO0FBQUEsa0JBQ0w7QUFBQSxrQkFDQSxRQUFRLFNBQVM7QUFBQTtBQUFBO0FBSXJCLDBCQUFZO0FBQUE7QUFHZCxtQkFBTyxZQUFZLGVBQWU7QUFBQTtBQUFBO0FBU3RDLDRCQUFvQixXQUFXO0FBQzdCLGNBQUksZ0JBQWdCLFVBQVU7QUFDOUIsY0FBSSxNQUFNLGlCQUFpQixjQUFjLGVBQWU7QUFDeEQsY0FBSSxZQUFZLElBQUksZ0JBQWdCLElBQUk7QUFFeEMsY0FBSSxDQUFDLGFBQWEsVUFBVSxlQUFlLEdBQUc7QUFDNUMsbUJBQU87QUFBQTtBQUdULGNBQUksYUFBYSxVQUFVLFlBQ3ZCLGVBQWUsVUFBVSxjQUN6QixZQUFZLFVBQVUsV0FDdEIsY0FBYyxVQUFVO0FBUTVCLGNBQUk7QUFFRix1QkFBVztBQUNYLHNCQUFVO0FBQUEsbUJBRUgsR0FBUDtBQUNBLG1CQUFPO0FBQUE7QUFHVCxpQkFBTywyQkFBMkIsV0FBVyxZQUFZLGNBQWMsV0FBVztBQUFBO0FBWXBGLDRDQUFvQyxXQUFXLFlBQVksY0FBYyxXQUFXLGFBQWE7QUFDL0YsY0FBSSxTQUFTO0FBQ2IsY0FBSSxRQUFRO0FBQ1osY0FBSSxNQUFNO0FBQ1YsY0FBSSxvQkFBb0I7QUFDeEIsY0FBSSxtQkFBbUI7QUFDdkIsY0FBSSxPQUFPO0FBQ1gsY0FBSSxhQUFhO0FBRWpCO0FBQU8sbUJBQU8sTUFBTTtBQUNsQixrQkFBSSxPQUFPO0FBRVgscUJBQU8sTUFBTTtBQUNYLG9CQUFJLFNBQVMsY0FBZSxrQkFBaUIsS0FBSyxLQUFLLGFBQWEsWUFBWTtBQUM5RSwwQkFBUSxTQUFTO0FBQUE7QUFHbkIsb0JBQUksU0FBUyxhQUFjLGlCQUFnQixLQUFLLEtBQUssYUFBYSxZQUFZO0FBQzVFLHdCQUFNLFNBQVM7QUFBQTtBQUdqQixvQkFBSSxLQUFLLGFBQWEsV0FBVztBQUMvQiw0QkFBVSxLQUFLLFVBQVU7QUFBQTtBQUczQixvQkFBSyxRQUFPLEtBQUssZ0JBQWdCLE1BQU07QUFDckM7QUFBQTtBQUlGLDZCQUFhO0FBQ2IsdUJBQU87QUFBQTtBQUdULHFCQUFPLE1BQU07QUFDWCxvQkFBSSxTQUFTLFdBQVc7QUFLdEI7QUFBQTtBQUdGLG9CQUFJLGVBQWUsY0FBYyxFQUFFLHNCQUFzQixjQUFjO0FBQ3JFLDBCQUFRO0FBQUE7QUFHVixvQkFBSSxlQUFlLGFBQWEsRUFBRSxxQkFBcUIsYUFBYTtBQUNsRSx3QkFBTTtBQUFBO0FBR1Isb0JBQUssUUFBTyxLQUFLLGlCQUFpQixNQUFNO0FBQ3RDO0FBQUE7QUFHRix1QkFBTztBQUNQLDZCQUFhLEtBQUs7QUFBQTtBQUlwQixxQkFBTztBQUFBO0FBR1QsY0FBSSxVQUFVLE1BQU0sUUFBUSxJQUFJO0FBRzlCLG1CQUFPO0FBQUE7QUFHVCxpQkFBTztBQUFBLFlBQ0w7QUFBQSxZQUNBO0FBQUE7QUFBQTtBQWdCSiw0QkFBb0IsTUFBTSxTQUFTO0FBQ2pDLGNBQUksTUFBTSxLQUFLLGlCQUFpQjtBQUNoQyxjQUFJLE1BQU0sT0FBTyxJQUFJLGVBQWU7QUFJcEMsY0FBSSxDQUFDLElBQUksY0FBYztBQUNyQjtBQUFBO0FBR0YsY0FBSSxZQUFZLElBQUk7QUFDcEIsY0FBSSxTQUFTLEtBQUssWUFBWTtBQUM5QixjQUFJLFFBQVEsS0FBSyxJQUFJLFFBQVEsT0FBTztBQUNwQyxjQUFJLE1BQU0sUUFBUSxRQUFRLFNBQVksUUFBUSxLQUFLLElBQUksUUFBUSxLQUFLO0FBR3BFLGNBQUksQ0FBQyxVQUFVLFVBQVUsUUFBUSxLQUFLO0FBQ3BDLGdCQUFJLE9BQU87QUFDWCxrQkFBTTtBQUNOLG9CQUFRO0FBQUE7QUFHVixjQUFJLGNBQWMsMEJBQTBCLE1BQU07QUFDbEQsY0FBSSxZQUFZLDBCQUEwQixNQUFNO0FBRWhELGNBQUksZUFBZSxXQUFXO0FBQzVCLGdCQUFJLFVBQVUsZUFBZSxLQUFLLFVBQVUsZUFBZSxZQUFZLFFBQVEsVUFBVSxpQkFBaUIsWUFBWSxVQUFVLFVBQVUsY0FBYyxVQUFVLFFBQVEsVUFBVSxnQkFBZ0IsVUFBVSxRQUFRO0FBQ3BOO0FBQUE7QUFHRixnQkFBSSxRQUFRLElBQUk7QUFDaEIsa0JBQU0sU0FBUyxZQUFZLE1BQU0sWUFBWTtBQUM3QyxzQkFBVTtBQUVWLGdCQUFJLFFBQVEsS0FBSztBQUNmLHdCQUFVLFNBQVM7QUFDbkIsd0JBQVUsT0FBTyxVQUFVLE1BQU0sVUFBVTtBQUFBLG1CQUN0QztBQUNMLG9CQUFNLE9BQU8sVUFBVSxNQUFNLFVBQVU7QUFDdkMsd0JBQVUsU0FBUztBQUFBO0FBQUE7QUFBQTtBQUt6Qiw0QkFBb0IsTUFBTTtBQUN4QixpQkFBTyxRQUFRLEtBQUssYUFBYTtBQUFBO0FBR25DLDhCQUFzQixXQUFXLFdBQVc7QUFDMUMsY0FBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXO0FBQzVCLG1CQUFPO0FBQUEscUJBQ0UsY0FBYyxXQUFXO0FBQ2xDLG1CQUFPO0FBQUEscUJBQ0UsV0FBVyxZQUFZO0FBQ2hDLG1CQUFPO0FBQUEscUJBQ0UsV0FBVyxZQUFZO0FBQ2hDLG1CQUFPLGFBQWEsV0FBVyxVQUFVO0FBQUEscUJBQ2hDLGNBQWMsV0FBVztBQUNsQyxtQkFBTyxVQUFVLFNBQVM7QUFBQSxxQkFDakIsVUFBVSx5QkFBeUI7QUFDNUMsbUJBQU8sQ0FBQyxDQUFFLFdBQVUsd0JBQXdCLGFBQWE7QUFBQSxpQkFDcEQ7QUFDTCxtQkFBTztBQUFBO0FBQUE7QUFJWCw4QkFBc0IsTUFBTTtBQUMxQixpQkFBTyxRQUFRLEtBQUssaUJBQWlCLGFBQWEsS0FBSyxjQUFjLGlCQUFpQjtBQUFBO0FBR3hGLG1DQUEyQixRQUFRO0FBQ2pDLGNBQUk7QUFRRixtQkFBTyxPQUFPLE9BQU8sY0FBYyxTQUFTLFNBQVM7QUFBQSxtQkFDOUMsS0FBUDtBQUNBLG1CQUFPO0FBQUE7QUFBQTtBQUlYLHdDQUFnQztBQUM5QixjQUFJLE1BQU07QUFDVixjQUFJLFVBQVU7QUFFZCxpQkFBTyxtQkFBbUIsSUFBSSxtQkFBbUI7QUFDL0MsZ0JBQUksa0JBQWtCLFVBQVU7QUFDOUIsb0JBQU0sUUFBUTtBQUFBLG1CQUNUO0FBQ0wscUJBQU87QUFBQTtBQUdULHNCQUFVLGlCQUFpQixJQUFJO0FBQUE7QUFHakMsaUJBQU87QUFBQTtBQWdCVCwwQ0FBa0MsTUFBTTtBQUN0QyxjQUFJLFdBQVcsUUFBUSxLQUFLLFlBQVksS0FBSyxTQUFTO0FBQ3RELGlCQUFPLFlBQWEsY0FBYSxXQUFZLE1BQUssU0FBUyxVQUFVLEtBQUssU0FBUyxZQUFZLEtBQUssU0FBUyxTQUFTLEtBQUssU0FBUyxTQUFTLEtBQUssU0FBUyxlQUFlLGFBQWEsY0FBYyxLQUFLLG9CQUFvQjtBQUFBO0FBRWhPLDJDQUFtQztBQUNqQyxjQUFJLGNBQWM7QUFDbEIsaUJBQU87QUFBQSxZQUNMO0FBQUEsWUFDQSxnQkFBZ0IseUJBQXlCLGVBQWUsYUFBYSxlQUFlO0FBQUE7QUFBQTtBQVN4RixrQ0FBMEIsMkJBQTJCO0FBQ25ELGNBQUksaUJBQWlCO0FBQ3JCLGNBQUksbUJBQW1CLDBCQUEwQjtBQUNqRCxjQUFJLHNCQUFzQiwwQkFBMEI7QUFFcEQsY0FBSSxtQkFBbUIsb0JBQW9CLGFBQWEsbUJBQW1CO0FBQ3pFLGdCQUFJLHdCQUF3QixRQUFRLHlCQUF5QixtQkFBbUI7QUFDOUUsMkJBQWEsa0JBQWtCO0FBQUE7QUFJakMsZ0JBQUksWUFBWTtBQUNoQixnQkFBSSxXQUFXO0FBRWYsbUJBQU8sV0FBVyxTQUFTLFlBQVk7QUFDckMsa0JBQUksU0FBUyxhQUFhLGNBQWM7QUFDdEMsMEJBQVUsS0FBSztBQUFBLGtCQUNiLFNBQVM7QUFBQSxrQkFDVCxNQUFNLFNBQVM7QUFBQSxrQkFDZixLQUFLLFNBQVM7QUFBQTtBQUFBO0FBQUE7QUFLcEIsZ0JBQUksT0FBTyxpQkFBaUIsVUFBVSxZQUFZO0FBQ2hELCtCQUFpQjtBQUFBO0FBR25CLHFCQUFTLElBQUksR0FBRyxJQUFJLFVBQVUsUUFBUSxLQUFLO0FBQ3pDLGtCQUFJLE9BQU8sVUFBVTtBQUNyQixtQkFBSyxRQUFRLGFBQWEsS0FBSztBQUMvQixtQkFBSyxRQUFRLFlBQVksS0FBSztBQUFBO0FBQUE7QUFBQTtBQVdwQyw4QkFBc0IsT0FBTztBQUMzQixjQUFJO0FBRUosY0FBSSxvQkFBb0IsT0FBTztBQUU3Qix3QkFBWTtBQUFBLGNBQ1YsT0FBTyxNQUFNO0FBQUEsY0FDYixLQUFLLE1BQU07QUFBQTtBQUFBLGlCQUVSO0FBRUwsd0JBQVksV0FBVztBQUFBO0FBR3pCLGlCQUFPLGFBQWE7QUFBQSxZQUNsQixPQUFPO0FBQUEsWUFDUCxLQUFLO0FBQUE7QUFBQTtBQVVULDhCQUFzQixPQUFPLFNBQVM7QUFDcEMsY0FBSSxRQUFRLFFBQVE7QUFDcEIsY0FBSSxNQUFNLFFBQVE7QUFFbEIsY0FBSSxRQUFRLFFBQVc7QUFDckIsa0JBQU07QUFBQTtBQUdSLGNBQUksb0JBQW9CLE9BQU87QUFDN0Isa0JBQU0saUJBQWlCO0FBQ3ZCLGtCQUFNLGVBQWUsS0FBSyxJQUFJLEtBQUssTUFBTSxNQUFNO0FBQUEsaUJBQzFDO0FBQ0wsdUJBQVcsT0FBTztBQUFBO0FBQUE7QUFJdEIsWUFBSSwyQkFBMkIsYUFBYSxrQkFBa0IsWUFBWSxTQUFTLGdCQUFnQjtBQUVuRyxvQ0FBNEI7QUFDMUIsZ0NBQXNCLFlBQVksQ0FBQyxZQUFZLGVBQWUsV0FBVyxXQUFXLFdBQVcsU0FBUyxhQUFhLFdBQVc7QUFBQTtBQUdsSSxZQUFJLGtCQUFrQjtBQUN0QixZQUFJLHNCQUFzQjtBQUMxQixZQUFJLGdCQUFnQjtBQUNwQixZQUFJLFlBQVk7QUFRaEIsZ0NBQXdCLE1BQU07QUFDNUIsY0FBSSxvQkFBb0IsUUFBUSx5QkFBeUIsT0FBTztBQUM5RCxtQkFBTztBQUFBLGNBQ0wsT0FBTyxLQUFLO0FBQUEsY0FDWixLQUFLLEtBQUs7QUFBQTtBQUFBLGlCQUVQO0FBQ0wsZ0JBQUksTUFBTSxLQUFLLGlCQUFpQixLQUFLLGNBQWMsZUFBZTtBQUNsRSxnQkFBSSxZQUFZLElBQUk7QUFDcEIsbUJBQU87QUFBQSxjQUNMLFlBQVksVUFBVTtBQUFBLGNBQ3RCLGNBQWMsVUFBVTtBQUFBLGNBQ3hCLFdBQVcsVUFBVTtBQUFBLGNBQ3JCLGFBQWEsVUFBVTtBQUFBO0FBQUE7QUFBQTtBQVM3Qix3Q0FBZ0MsYUFBYTtBQUMzQyxpQkFBTyxZQUFZLFdBQVcsY0FBYyxZQUFZLFdBQVcsWUFBWSxhQUFhLGdCQUFnQixjQUFjLFlBQVk7QUFBQTtBQVd4SSxzQ0FBOEIsZUFBZSxhQUFhLG1CQUFtQjtBQUszRSxjQUFJLE1BQU0sdUJBQXVCO0FBRWpDLGNBQUksYUFBYSxtQkFBbUIsUUFBUSxvQkFBb0IsaUJBQWlCLE1BQU07QUFDckY7QUFBQTtBQUlGLGNBQUksbUJBQW1CLGVBQWU7QUFFdEMsY0FBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsZUFBZSxtQkFBbUI7QUFDcEUsNEJBQWdCO0FBQ2hCLGdCQUFJLFlBQVksNEJBQTRCLHFCQUFxQjtBQUVqRSxnQkFBSSxVQUFVLFNBQVMsR0FBRztBQUN4QixrQkFBSSxRQUFRLElBQUksZUFBZSxZQUFZLFVBQVUsTUFBTSxhQUFhO0FBQ3hFLDRCQUFjLEtBQUs7QUFBQSxnQkFDakI7QUFBQSxnQkFDQTtBQUFBO0FBRUYsb0JBQU0sU0FBUztBQUFBO0FBQUE7QUFBQTtBQW9CckIsaUNBQXlCLGVBQWUsY0FBYyxZQUFZLGFBQWEsbUJBQW1CLGtCQUFrQixpQkFBaUI7QUFDbkksY0FBSSxhQUFhLGFBQWEsb0JBQW9CLGNBQWM7QUFFaEUsa0JBQVE7QUFBQSxpQkFFRDtBQUNILGtCQUFJLG1CQUFtQixlQUFlLFdBQVcsb0JBQW9CLFFBQVE7QUFDM0Usa0NBQWtCO0FBQ2xCLHNDQUFzQjtBQUN0QixnQ0FBZ0I7QUFBQTtBQUdsQjtBQUFBLGlCQUVHO0FBQ0gsZ0NBQWtCO0FBQ2xCLG9DQUFzQjtBQUN0Qiw4QkFBZ0I7QUFDaEI7QUFBQSxpQkFJRztBQUNILDBCQUFZO0FBQ1o7QUFBQSxpQkFFRztBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFDSCwwQkFBWTtBQUNaLG1DQUFxQixlQUFlLGFBQWE7QUFDakQ7QUFBQSxpQkFXRztBQUNILGtCQUFJLDBCQUEwQjtBQUM1QjtBQUFBO0FBQUEsaUJBS0M7QUFBQSxpQkFDQTtBQUNILG1DQUFxQixlQUFlLGFBQWE7QUFBQTtBQUFBO0FBWXZELCtCQUF1QixXQUFXLFdBQVc7QUFDM0MsY0FBSSxZQUFXO0FBQ2Ysb0JBQVMsVUFBVSxpQkFBaUIsVUFBVTtBQUM5QyxvQkFBUyxXQUFXLGFBQWEsV0FBVztBQUM1QyxvQkFBUyxRQUFRLGFBQWEsUUFBUTtBQUN0QyxpQkFBTztBQUFBO0FBT1QsWUFBSSxpQkFBaUI7QUFBQSxVQUNuQixjQUFjLGNBQWMsYUFBYTtBQUFBLFVBQ3pDLG9CQUFvQixjQUFjLGFBQWE7QUFBQSxVQUMvQyxnQkFBZ0IsY0FBYyxhQUFhO0FBQUEsVUFDM0MsZUFBZSxjQUFjLGNBQWM7QUFBQTtBQU03QyxZQUFJLHFCQUFxQjtBQUt6QixZQUFJLFFBQVE7QUFLWixZQUFJLFdBQVc7QUFDYixrQkFBUSxTQUFTLGNBQWMsT0FBTztBQUt0QyxjQUFJLENBQUUscUJBQW9CLFNBQVM7QUFDakMsbUJBQU8sZUFBZSxhQUFhO0FBQ25DLG1CQUFPLGVBQWUsbUJBQW1CO0FBQ3pDLG1CQUFPLGVBQWUsZUFBZTtBQUFBO0FBSXZDLGNBQUksQ0FBRSxzQkFBcUIsU0FBUztBQUNsQyxtQkFBTyxlQUFlLGNBQWM7QUFBQTtBQUFBO0FBV3hDLDRDQUFvQyxXQUFXO0FBQzdDLGNBQUksbUJBQW1CLFlBQVk7QUFDakMsbUJBQU8sbUJBQW1CO0FBQUEscUJBQ2pCLENBQUMsZUFBZSxZQUFZO0FBQ3JDLG1CQUFPO0FBQUE7QUFHVCxjQUFJLFlBQVksZUFBZTtBQUUvQixtQkFBUyxhQUFhLFdBQVc7QUFDL0IsZ0JBQUksVUFBVSxlQUFlLGNBQWMsYUFBYSxPQUFPO0FBQzdELHFCQUFPLG1CQUFtQixhQUFhLFVBQVU7QUFBQTtBQUFBO0FBSXJELGlCQUFPO0FBQUE7QUFHVCxZQUFJLGdCQUFnQiwyQkFBMkI7QUFDL0MsWUFBSSxzQkFBc0IsMkJBQTJCO0FBQ3JELFlBQUksa0JBQWtCLDJCQUEyQjtBQUNqRCxZQUFJLGlCQUFpQiwyQkFBMkI7QUFFaEQsWUFBSSw2QkFBNkIsSUFBSTtBQVVyQyxZQUFJLDBCQUEwQixDQUFDLFNBQVMsWUFBWSxVQUFVLFdBQVcsa0JBQWtCLFNBQVMsU0FBUyxlQUFlLFFBQVEsT0FBTyxRQUFRLFdBQVcsYUFBYSxZQUFZLGFBQWEsWUFBWSxhQUFhLFFBQVEsa0JBQWtCLFdBQVcsYUFBYSxTQUFTLFNBQVMscUJBQXFCLFNBQVMsV0FBVyxXQUFXLFlBQVksU0FBUyxRQUFRLGNBQWMsa0JBQWtCLGFBQWEsc0JBQXNCLGFBQWEsYUFBYSxZQUFZLGFBQWEsV0FBVyxTQUFTLFNBQVMsUUFBUSxXQUFXLGlCQUFpQixlQUFlLGVBQWUsY0FBYyxlQUFlLGFBQWEsWUFBWSxjQUFjLFNBQVMsVUFBVSxVQUFVLFdBQVcsV0FBVyxVQUFVLFdBQVcsY0FBYyxlQUFlLFlBQVksY0FBYyxnQkFBZ0IsVUFBVSxVQUFVLGFBQWEsV0FBVztBQUV0MEIscUNBQTZCLGNBQWMsV0FBVztBQUNwRCxxQ0FBMkIsSUFBSSxjQUFjO0FBQzdDLGdDQUFzQixXQUFXLENBQUM7QUFBQTtBQUdwQyx3Q0FBZ0M7QUFDOUIsbUJBQVMsSUFBSSxHQUFHLElBQUksd0JBQXdCLFFBQVEsS0FBSztBQUN2RCxnQkFBSSxZQUFZLHdCQUF3QjtBQUN4QyxnQkFBSSxlQUFlLFVBQVU7QUFDN0IsZ0JBQUksbUJBQW1CLFVBQVUsR0FBRyxnQkFBZ0IsVUFBVSxNQUFNO0FBQ3BFLGdDQUFvQixjQUFjLE9BQU87QUFBQTtBQUkzQyw4QkFBb0IsZUFBZTtBQUNuQyw4QkFBb0IscUJBQXFCO0FBQ3pDLDhCQUFvQixpQkFBaUI7QUFDckMsOEJBQW9CLFlBQVk7QUFDaEMsOEJBQW9CLFdBQVc7QUFDL0IsOEJBQW9CLFlBQVk7QUFDaEMsOEJBQW9CLGdCQUFnQjtBQUFBO0FBR3RDLGlDQUF5QixlQUFlLGNBQWMsWUFBWSxhQUFhLG1CQUFtQixrQkFBa0IsaUJBQWlCO0FBQ25JLGNBQUksWUFBWSwyQkFBMkIsSUFBSTtBQUUvQyxjQUFJLGNBQWMsUUFBVztBQUMzQjtBQUFBO0FBR0YsY0FBSSxxQkFBcUI7QUFDekIsY0FBSSxpQkFBaUI7QUFFckIsa0JBQVE7QUFBQSxpQkFDRDtBQUlILGtCQUFJLGlCQUFpQixpQkFBaUIsR0FBRztBQUN2QztBQUFBO0FBQUEsaUJBS0M7QUFBQSxpQkFDQTtBQUNILG1DQUFxQjtBQUNyQjtBQUFBLGlCQUVHO0FBQ0gsK0JBQWlCO0FBQ2pCLG1DQUFxQjtBQUNyQjtBQUFBLGlCQUVHO0FBQ0gsK0JBQWlCO0FBQ2pCLG1DQUFxQjtBQUNyQjtBQUFBLGlCQUVHO0FBQUEsaUJBQ0E7QUFDSCxtQ0FBcUI7QUFDckI7QUFBQSxpQkFFRztBQUdILGtCQUFJLFlBQVksV0FBVyxHQUFHO0FBQzVCO0FBQUE7QUFBQSxpQkFLQztBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBSUE7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQ0gsbUNBQXFCO0FBQ3JCO0FBQUEsaUJBRUc7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUNILG1DQUFxQjtBQUNyQjtBQUFBLGlCQUVHO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQ0gsbUNBQXFCO0FBQ3JCO0FBQUEsaUJBRUc7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQ0gsbUNBQXFCO0FBQ3JCO0FBQUEsaUJBRUc7QUFDSCxtQ0FBcUI7QUFDckI7QUFBQSxpQkFFRztBQUNILG1DQUFxQjtBQUNyQjtBQUFBLGlCQUVHO0FBQ0gsbUNBQXFCO0FBQ3JCO0FBQUEsaUJBRUc7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQ0gsbUNBQXFCO0FBQ3JCO0FBQUEsaUJBRUc7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUNILG1DQUFxQjtBQUNyQjtBQUFBO0FBR0osY0FBSSxpQkFBa0Isb0JBQW1CLHNCQUFzQjtBQUUvRDtBQUtFLGdCQUFJLHVCQUF1QixDQUFDLGtCQUk1QixpQkFBaUI7QUFFakIsZ0JBQUksYUFBYSwrQkFBK0IsWUFBWSxXQUFXLFlBQVksTUFBTSxnQkFBZ0I7QUFFekcsZ0JBQUksV0FBVyxTQUFTLEdBQUc7QUFFekIsa0JBQUksU0FBUyxJQUFJLG1CQUFtQixXQUFXLGdCQUFnQixNQUFNLGFBQWE7QUFFbEYsNEJBQWMsS0FBSztBQUFBLGdCQUNqQixPQUFPO0FBQUEsZ0JBQ1AsV0FBVztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxpQ0FBeUIsZUFBZSxjQUFjLFlBQVksYUFBYSxtQkFBbUIsa0JBQWtCLGlCQUFpQjtBQU9uSSwwQkFBZ0IsZUFBZSxjQUFjLFlBQVksYUFBYSxtQkFBbUI7QUFDekYsY0FBSSwrQkFBZ0Msb0JBQW1CLCtDQUErQztBQWtCdEcsY0FBSSw4QkFBOEI7QUFDaEMsNEJBQWdCLGVBQWUsY0FBYyxZQUFZLGFBQWE7QUFDdEUsNEJBQWdCLGVBQWUsY0FBYyxZQUFZLGFBQWE7QUFDdEUsNEJBQWdCLGVBQWUsY0FBYyxZQUFZLGFBQWE7QUFDdEUsMEJBQWMsZUFBZSxjQUFjLFlBQVksYUFBYTtBQUFBO0FBQUE7QUFLeEUsWUFBSSxrQkFBa0IsQ0FBQyxTQUFTLFdBQVcsa0JBQWtCLGtCQUFrQixXQUFXLGFBQWEsU0FBUyxTQUFTLGNBQWMsa0JBQWtCLGFBQWEsU0FBUyxRQUFRLFdBQVcsWUFBWSxjQUFjLFVBQVUsVUFBVSxXQUFXLFdBQVcsV0FBVyxjQUFjLGdCQUFnQjtBQUkvUyxZQUFJLHFCQUFxQixJQUFJLElBQUksQ0FBQyxVQUFVLFNBQVMsV0FBVyxRQUFRLFVBQVUsVUFBVSxPQUFPO0FBRW5HLGlDQUF5QixPQUFPLFVBQVUsZUFBZTtBQUN2RCxjQUFJLE9BQU8sTUFBTSxRQUFRO0FBQ3pCLGdCQUFNLGdCQUFnQjtBQUN0QixrREFBd0MsTUFBTSxVQUFVLFFBQVc7QUFDbkUsZ0JBQU0sZ0JBQWdCO0FBQUE7QUFHeEIsa0RBQTBDLE9BQU8sbUJBQW1CLGdCQUFnQjtBQUNsRixjQUFJO0FBRUosY0FBSSxnQkFBZ0I7QUFDbEIscUJBQVMsSUFBSSxrQkFBa0IsU0FBUyxHQUFHLEtBQUssR0FBRyxLQUFLO0FBQ3RELGtCQUFJLHVCQUF1QixrQkFBa0IsSUFDekMsV0FBVyxxQkFBcUIsVUFDaEMsZ0JBQWdCLHFCQUFxQixlQUNyQyxXQUFXLHFCQUFxQjtBQUVwQyxrQkFBSSxhQUFhLG9CQUFvQixNQUFNLHdCQUF3QjtBQUNqRTtBQUFBO0FBR0YsOEJBQWdCLE9BQU8sVUFBVTtBQUNqQyxpQ0FBbUI7QUFBQTtBQUFBLGlCQUVoQjtBQUNMLHFCQUFTLEtBQUssR0FBRyxLQUFLLGtCQUFrQixRQUFRLE1BQU07QUFDcEQsa0JBQUksd0JBQXdCLGtCQUFrQixLQUMxQyxZQUFZLHNCQUFzQixVQUNsQyxpQkFBaUIsc0JBQXNCLGVBQ3ZDLFlBQVksc0JBQXNCO0FBRXRDLGtCQUFJLGNBQWMsb0JBQW9CLE1BQU0sd0JBQXdCO0FBQ2xFO0FBQUE7QUFHRiw4QkFBZ0IsT0FBTyxXQUFXO0FBQ2xDLGlDQUFtQjtBQUFBO0FBQUE7QUFBQTtBQUt6QixzQ0FBOEIsZUFBZSxrQkFBa0I7QUFDN0QsY0FBSSxpQkFBa0Isb0JBQW1CLHNCQUFzQjtBQUUvRCxtQkFBUyxJQUFJLEdBQUcsSUFBSSxjQUFjLFFBQVEsS0FBSztBQUM3QyxnQkFBSSxtQkFBbUIsY0FBYyxJQUNqQyxRQUFRLGlCQUFpQixPQUN6QixZQUFZLGlCQUFpQjtBQUNqQyw2Q0FBaUMsT0FBTyxXQUFXO0FBQUE7QUFJckQ7QUFBQTtBQUdGLDBDQUFrQyxjQUFjLGtCQUFrQixhQUFhLFlBQVksaUJBQWlCO0FBQzFHLGNBQUksb0JBQW9CLGVBQWU7QUFDdkMsY0FBSSxnQkFBZ0I7QUFDcEIsMEJBQWdCLGVBQWUsY0FBYyxZQUFZLGFBQWEsbUJBQW1CO0FBQ3pGLCtCQUFxQixlQUFlO0FBQUE7QUFHdEMsMkNBQW1DLGNBQWMsZUFBZTtBQUM5RDtBQUNFLGdCQUFJLENBQUMsbUJBQW1CLElBQUksZUFBZTtBQUN6QyxvQkFBTSw2R0FBa0g7QUFBQTtBQUFBO0FBSTVILGNBQUkseUJBQXlCO0FBQzdCLGNBQUksY0FBYyxvQkFBb0I7QUFDdEMsY0FBSSxpQkFBaUIsa0JBQWtCLGNBQWM7QUFFckQsY0FBSSxDQUFDLFlBQVksSUFBSSxpQkFBaUI7QUFDcEMsb0NBQXdCLGVBQWUsY0FBYyxrQkFBa0I7QUFDdkUsd0JBQVksSUFBSTtBQUFBO0FBQUE7QUFHcEIscUNBQTZCLGNBQWMsd0JBQXdCLFFBQVE7QUFDekU7QUFDRSxnQkFBSSxtQkFBbUIsSUFBSSxpQkFBaUIsQ0FBQyx3QkFBd0I7QUFDbkUsb0JBQU0sMkhBQWdJO0FBQUE7QUFBQTtBQUkxSSxjQUFJLG1CQUFtQjtBQUV2QixjQUFJLHdCQUF3QjtBQUMxQixnQ0FBb0I7QUFBQTtBQUd0QixrQ0FBd0IsUUFBUSxjQUFjLGtCQUFrQjtBQUFBO0FBRWxFLFlBQUksa0JBQWtCLG9CQUFvQixLQUFLLFNBQVMsU0FBUyxJQUFJLE1BQU07QUFDM0UsNENBQW9DLHNCQUFzQjtBQUN4RCxjQUFJLENBQUMscUJBQXFCLGtCQUFrQjtBQUMxQyxpQ0FBcUIsbUJBQW1CO0FBQ3hDLDRCQUFnQixRQUFRLFNBQVUsY0FBYztBQUc5QyxrQkFBSSxpQkFBaUIsbUJBQW1CO0FBQ3RDLG9CQUFJLENBQUMsbUJBQW1CLElBQUksZUFBZTtBQUN6QyxzQ0FBb0IsY0FBYyxPQUFPO0FBQUE7QUFHM0Msb0NBQW9CLGNBQWMsTUFBTTtBQUFBO0FBQUE7QUFHNUMsZ0JBQUksZ0JBQWdCLHFCQUFxQixhQUFhLGdCQUFnQix1QkFBdUIscUJBQXFCO0FBRWxILGdCQUFJLGtCQUFrQixNQUFNO0FBRzFCLGtCQUFJLENBQUMsY0FBYyxrQkFBa0I7QUFDbkMsOEJBQWMsbUJBQW1CO0FBQ2pDLG9DQUFvQixtQkFBbUIsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTXRELHlDQUFpQyxpQkFBaUIsY0FBYyxrQkFBa0Isd0JBQXdCLHNDQUFzQztBQUM5SSxjQUFJLFdBQVcsdUNBQXVDLGlCQUFpQixjQUFjO0FBR3JGLGNBQUksb0JBQW9CO0FBRXhCLGNBQUksK0JBQStCO0FBT2pDLGdCQUFJLGlCQUFpQixnQkFBZ0IsaUJBQWlCLGVBQWUsaUJBQWlCLFNBQVM7QUFDN0Ysa0NBQW9CO0FBQUE7QUFBQTtBQUl4Qiw0QkFBbUI7QUFDbkIsY0FBSTtBQUdKLGNBQUksd0JBQXdCO0FBQzFCLGdCQUFJLHNCQUFzQixRQUFXO0FBQ25DLG9DQUFzQix1Q0FBdUMsaUJBQWlCLGNBQWMsVUFBVTtBQUFBLG1CQUNqRztBQUNMLG9DQUFzQix3QkFBd0IsaUJBQWlCLGNBQWM7QUFBQTtBQUFBLGlCQUUxRTtBQUNMLGdCQUFJLHNCQUFzQixRQUFXO0FBQ25DLG9DQUFzQixzQ0FBc0MsaUJBQWlCLGNBQWMsVUFBVTtBQUFBLG1CQUNoRztBQUNMLG9DQUFzQix1QkFBdUIsaUJBQWlCLGNBQWM7QUFBQTtBQUFBO0FBQUE7QUFLbEYseUNBQWlDLGdCQUFnQixpQkFBaUI7QUFDaEUsaUJBQU8sbUJBQW1CLG1CQUFtQixlQUFlLGFBQWEsZ0JBQWdCLGVBQWUsZUFBZTtBQUFBO0FBR3pILG1EQUEyQyxjQUFjLGtCQUFrQixhQUFhLFlBQVksaUJBQWlCO0FBQ25ILGNBQUksZUFBZTtBQUVuQixjQUFLLG9CQUFtQixzQ0FBc0MsS0FBTSxvQkFBbUIsc0JBQXNCLEdBQUc7QUFDOUcsZ0JBQUksc0JBQXNCO0FBRTFCLGdCQUFJLGVBQWUsTUFBTTtBQVl2QixrQkFBSSxPQUFPO0FBRVg7QUFBVSx1QkFBTyxNQUFNO0FBQ3JCLHNCQUFJLFNBQVMsTUFBTTtBQUNqQjtBQUFBO0FBR0Ysc0JBQUksVUFBVSxLQUFLO0FBRW5CLHNCQUFJLFlBQVksWUFBWSxZQUFZLFlBQVk7QUFDbEQsd0JBQUksWUFBWSxLQUFLLFVBQVU7QUFFL0Isd0JBQUksd0JBQXdCLFdBQVcsc0JBQXNCO0FBQzNEO0FBQUE7QUFHRix3QkFBSSxZQUFZLFlBQVk7QUFLMUIsMEJBQUksWUFBWSxLQUFLO0FBRXJCLDZCQUFPLGNBQWMsTUFBTTtBQUN6Qiw0QkFBSSxXQUFXLFVBQVU7QUFFekIsNEJBQUksYUFBYSxZQUFZLGFBQWEsWUFBWTtBQUNwRCw4QkFBSSxpQkFBaUIsVUFBVSxVQUFVO0FBRXpDLDhCQUFJLHdCQUF3QixnQkFBZ0Isc0JBQXNCO0FBSWhFO0FBQUE7QUFBQTtBQUlKLG9DQUFZLFVBQVU7QUFBQTtBQUFBO0FBUzFCLDJCQUFPLGNBQWMsTUFBTTtBQUN6QiwwQkFBSSxhQUFhLDJCQUEyQjtBQUU1QywwQkFBSSxlQUFlLE1BQU07QUFDdkI7QUFBQTtBQUdGLDBCQUFJLFlBQVksV0FBVztBQUUzQiwwQkFBSSxjQUFjLGlCQUFpQixjQUFjLFVBQVU7QUFDekQsK0JBQU8sZUFBZTtBQUN0QjtBQUFBO0FBR0Ysa0NBQVksVUFBVTtBQUFBO0FBQUE7QUFJMUIseUJBQU8sS0FBSztBQUFBO0FBQUE7QUFBQTtBQUtsQix5QkFBZSxXQUFZO0FBQ3pCLG1CQUFPLHlCQUF5QixjQUFjLGtCQUFrQixhQUFhO0FBQUE7QUFBQTtBQUlqRix3Q0FBZ0MsVUFBVSxVQUFVLGVBQWU7QUFDakUsaUJBQU87QUFBQSxZQUNMO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQTtBQUFBO0FBSUosZ0RBQXdDLGFBQWEsV0FBVyxpQkFBaUIsZ0JBQWdCLHNCQUFzQixhQUFhO0FBQ2xJLGNBQUksY0FBYyxjQUFjLE9BQU8sWUFBWSxZQUFZO0FBQy9ELGNBQUksaUJBQWlCLGlCQUFpQixjQUFjO0FBQ3BELGNBQUksWUFBWTtBQUNoQixjQUFJLFdBQVc7QUFDZixjQUFJLG9CQUFvQjtBQUV4QixpQkFBTyxhQUFhLE1BQU07QUFDeEIsZ0JBQUksYUFBYSxVQUNiLFlBQVksV0FBVyxXQUN2QixNQUFNLFdBQVc7QUFFckIsZ0JBQUksUUFBUSxpQkFBaUIsY0FBYyxNQUFNO0FBQy9DLGtDQUFvQjtBQUdwQixrQkFBSSxtQkFBbUIsTUFBTTtBQUMzQixvQkFBSSxXQUFXLFlBQVksVUFBVTtBQUVyQyxvQkFBSSxZQUFZLE1BQU07QUFDcEIsNEJBQVUsS0FBSyx1QkFBdUIsVUFBVSxVQUFVO0FBQUE7QUFBQTtBQUFBO0FBUWhFLGdCQUFJLHNCQUFzQjtBQUN4QjtBQUFBO0FBR0YsdUJBQVcsU0FBUztBQUFBO0FBR3RCLGlCQUFPO0FBQUE7QUFTVCw2Q0FBcUMsYUFBYSxXQUFXO0FBQzNELGNBQUksY0FBYyxZQUFZO0FBQzlCLGNBQUksWUFBWTtBQUNoQixjQUFJLFdBQVc7QUFFZixpQkFBTyxhQUFhLE1BQU07QUFDeEIsZ0JBQUksYUFBYSxVQUNiLFlBQVksV0FBVyxXQUN2QixNQUFNLFdBQVc7QUFFckIsZ0JBQUksUUFBUSxpQkFBaUIsY0FBYyxNQUFNO0FBQy9DLGtCQUFJLGdCQUFnQjtBQUNwQixrQkFBSSxrQkFBa0IsWUFBWSxVQUFVO0FBRTVDLGtCQUFJLG1CQUFtQixNQUFNO0FBQzNCLDBCQUFVLFFBQVEsdUJBQXVCLFVBQVUsaUJBQWlCO0FBQUE7QUFHdEUsa0JBQUksaUJBQWlCLFlBQVksVUFBVTtBQUUzQyxrQkFBSSxrQkFBa0IsTUFBTTtBQUMxQiwwQkFBVSxLQUFLLHVCQUF1QixVQUFVLGdCQUFnQjtBQUFBO0FBQUE7QUFJcEUsdUJBQVcsU0FBUztBQUFBO0FBR3RCLGlCQUFPO0FBQUE7QUFHVCwyQkFBbUIsTUFBTTtBQUN2QixjQUFJLFNBQVMsTUFBTTtBQUNqQixtQkFBTztBQUFBO0FBR1QsYUFBRztBQUNELG1CQUFPLEtBQUs7QUFBQSxtQkFLTCxRQUFRLEtBQUssUUFBUTtBQUU5QixjQUFJLE1BQU07QUFDUixtQkFBTztBQUFBO0FBR1QsaUJBQU87QUFBQTtBQVFULHlDQUFpQyxPQUFPLE9BQU87QUFDN0MsY0FBSSxRQUFRO0FBQ1osY0FBSSxRQUFRO0FBQ1osY0FBSSxTQUFTO0FBRWIsbUJBQVMsUUFBUSxPQUFPLE9BQU8sUUFBUSxVQUFVLFFBQVE7QUFDdkQ7QUFBQTtBQUdGLGNBQUksU0FBUztBQUViLG1CQUFTLFFBQVEsT0FBTyxPQUFPLFFBQVEsVUFBVSxRQUFRO0FBQ3ZEO0FBQUE7QUFJRixpQkFBTyxTQUFTLFNBQVMsR0FBRztBQUMxQixvQkFBUSxVQUFVO0FBQ2xCO0FBQUE7QUFJRixpQkFBTyxTQUFTLFNBQVMsR0FBRztBQUMxQixvQkFBUSxVQUFVO0FBQ2xCO0FBQUE7QUFJRixjQUFJLFFBQVE7QUFFWixpQkFBTyxTQUFTO0FBQ2QsZ0JBQUksVUFBVSxTQUFTLFVBQVUsUUFBUSxVQUFVLE1BQU0sV0FBVztBQUNsRSxxQkFBTztBQUFBO0FBR1Qsb0JBQVEsVUFBVTtBQUNsQixvQkFBUSxVQUFVO0FBQUE7QUFHcEIsaUJBQU87QUFBQTtBQUdULHVEQUErQyxlQUFlLE9BQU8sUUFBUSxRQUFRLGdCQUFnQjtBQUNuRyxjQUFJLG1CQUFtQixNQUFNO0FBQzdCLGNBQUksWUFBWTtBQUNoQixjQUFJLFdBQVc7QUFFZixpQkFBTyxhQUFhLE1BQU07QUFDeEIsZ0JBQUksYUFBYSxRQUFRO0FBQ3ZCO0FBQUE7QUFHRixnQkFBSSxhQUFhLFVBQ2IsWUFBWSxXQUFXLFdBQ3ZCLFlBQVksV0FBVyxXQUN2QixNQUFNLFdBQVc7QUFFckIsZ0JBQUksY0FBYyxRQUFRLGNBQWMsUUFBUTtBQUM5QztBQUFBO0FBR0YsZ0JBQUksUUFBUSxpQkFBaUIsY0FBYyxNQUFNO0FBQy9DLGtCQUFJLGdCQUFnQjtBQUVwQixrQkFBSSxnQkFBZ0I7QUFDbEIsb0JBQUksa0JBQWtCLFlBQVksVUFBVTtBQUU1QyxvQkFBSSxtQkFBbUIsTUFBTTtBQUMzQiw0QkFBVSxRQUFRLHVCQUF1QixVQUFVLGlCQUFpQjtBQUFBO0FBQUEseUJBRTdELENBQUMsZ0JBQWdCO0FBQzFCLG9CQUFJLGlCQUFpQixZQUFZLFVBQVU7QUFFM0Msb0JBQUksa0JBQWtCLE1BQU07QUFDMUIsNEJBQVUsS0FBSyx1QkFBdUIsVUFBVSxnQkFBZ0I7QUFBQTtBQUFBO0FBQUE7QUFLdEUsdUJBQVcsU0FBUztBQUFBO0FBR3RCLGNBQUksVUFBVSxXQUFXLEdBQUc7QUFDMUIsMEJBQWMsS0FBSztBQUFBLGNBQ2pCO0FBQUEsY0FDQTtBQUFBO0FBQUE7QUFBQTtBQVVOLHVEQUErQyxlQUFlLFlBQVksWUFBWSxNQUFNLElBQUk7QUFDOUYsY0FBSSxTQUFTLFFBQVEsS0FBSyx3QkFBd0IsTUFBTSxNQUFNO0FBRTlELGNBQUksU0FBUyxNQUFNO0FBQ2pCLGtEQUFzQyxlQUFlLFlBQVksTUFBTSxRQUFRO0FBQUE7QUFHakYsY0FBSSxPQUFPLFFBQVEsZUFBZSxNQUFNO0FBQ3RDLGtEQUFzQyxlQUFlLFlBQVksSUFBSSxRQUFRO0FBQUE7QUFBQTtBQUdqRixtQ0FBMkIsY0FBYyxTQUFTO0FBQ2hELGlCQUFPLGVBQWUsT0FBUSxXQUFVLFlBQVk7QUFBQTtBQUd0RCxZQUFJLDBCQUEwQjtBQUM5QixZQUFJLDZCQUE2QjtBQUNqQyxZQUFJLG9DQUFvQztBQUN4QyxZQUFJLDZCQUE2QjtBQUNqQyxZQUFJLFlBQVk7QUFDaEIsWUFBSSxXQUFXO0FBQ2YsWUFBSSxRQUFRO0FBQ1osWUFBSSxTQUFTO0FBQ2IsWUFBSTtBQUNKLFlBQUk7QUFDSixZQUFJO0FBQ0osWUFBSTtBQUNKLFlBQUk7QUFDSixZQUFJO0FBQ0osWUFBSTtBQUNKLFlBQUk7QUFFSjtBQUNFLDhCQUFvQjtBQUFBLFlBRWxCLFFBQVE7QUFBQSxZQU1SLFNBQVM7QUFBQTtBQUdYLDRDQUFrQyxTQUFVLE1BQU0sT0FBTztBQUN2RCwrQkFBbUIsTUFBTTtBQUN6QixpQ0FBcUIsTUFBTTtBQUMzQixpQ0FBcUIsTUFBTSxPQUFPO0FBQUEsY0FDaEM7QUFBQSxjQUNBO0FBQUE7QUFBQTtBQVlKLDRDQUFrQyxhQUFhLENBQUMsU0FBUztBQUV6RCxrQ0FBd0IsU0FBVSxVQUFVLGFBQWEsYUFBYTtBQUNwRSxnQkFBSSx5QkFBeUI7QUFDM0I7QUFBQTtBQUdGLGdCQUFJLHdCQUF3QixrQ0FBa0M7QUFDOUQsZ0JBQUksd0JBQXdCLGtDQUFrQztBQUU5RCxnQkFBSSwwQkFBMEIsdUJBQXVCO0FBQ25EO0FBQUE7QUFHRixzQ0FBMEI7QUFFMUIsa0JBQU0sa0RBQWtELFVBQVUsS0FBSyxVQUFVLHdCQUF3QixLQUFLLFVBQVU7QUFBQTtBQUcxSCxtQ0FBeUIsU0FBVSxnQkFBZ0I7QUFDakQsZ0JBQUkseUJBQXlCO0FBQzNCO0FBQUE7QUFHRixzQ0FBMEI7QUFDMUIsZ0JBQUksUUFBUTtBQUNaLDJCQUFlLFFBQVEsU0FBVSxNQUFNO0FBQ3JDLG9CQUFNLEtBQUs7QUFBQTtBQUdiLGtCQUFNLHdDQUF3QztBQUFBO0FBR2hELHdDQUE4QixTQUFVLGtCQUFrQixVQUFVO0FBQ2xFLGdCQUFJLGFBQWEsT0FBTztBQUN0QixvQkFBTSx3TEFBa00sa0JBQWtCLGtCQUFrQjtBQUFBLG1CQUN2TztBQUNMLG9CQUFNLDhFQUE4RSxrQkFBa0IsT0FBTztBQUFBO0FBQUE7QUFNakgsMEJBQWdCLFNBQVUsUUFBUSxNQUFNO0FBS3RDLGdCQUFJLGNBQWMsT0FBTyxpQkFBaUIsaUJBQWlCLE9BQU8sY0FBYyxjQUFjLE9BQU8sV0FBVyxPQUFPLGNBQWMsZ0JBQWdCLE9BQU8sY0FBYyxPQUFPO0FBQ2pMLHdCQUFZLFlBQVk7QUFDeEIsbUJBQU8sWUFBWTtBQUFBO0FBQUE7QUFTdkIsWUFBSSwyQkFBMkI7QUFDL0IsWUFBSSx1Q0FBdUM7QUFFM0MsbURBQTJDLFFBQVE7QUFDakQ7QUFDRSxvQ0FBd0I7QUFBQTtBQUcxQixjQUFJLGVBQWUsT0FBTyxXQUFXLFdBQVcsU0FBUyxLQUFLO0FBQzlELGlCQUFPLGFBQWEsUUFBUSwwQkFBMEIsTUFBTSxRQUFRLHNDQUFzQztBQUFBO0FBRzVHLHVDQUErQixZQUFZLFlBQVksa0JBQWtCLGVBQWU7QUFDdEYsY0FBSSx1QkFBdUIsa0NBQWtDO0FBQzdELGNBQUksdUJBQXVCLGtDQUFrQztBQUU3RCxjQUFJLHlCQUF5QixzQkFBc0I7QUFDakQ7QUFBQTtBQUdGLGNBQUksZUFBZTtBQUNqQjtBQUNFLGtCQUFJLENBQUMseUJBQXlCO0FBQzVCLDBDQUEwQjtBQUUxQixzQkFBTSx5REFBeUQsc0JBQXNCO0FBQUE7QUFBQTtBQUFBO0FBSzNGLGNBQUksb0JBQW9CLDBDQUEwQztBQUdoRSxrQkFBTSxJQUFJLE1BQU07QUFBQTtBQUFBO0FBSXBCLG1EQUEyQyxzQkFBc0I7QUFDL0QsaUJBQU8scUJBQXFCLGFBQWEsZ0JBQWdCLHVCQUF1QixxQkFBcUI7QUFBQTtBQUd2Ryx3QkFBZ0I7QUFBQTtBQUVoQixrREFBMEMsTUFBTTtBQVU5QyxlQUFLLFVBQVU7QUFBQTtBQUdqQix5Q0FBaUMsS0FBSyxZQUFZLHNCQUFzQixXQUFXLHNCQUFzQjtBQUN2RyxtQkFBUyxXQUFXLFdBQVc7QUFDN0IsZ0JBQUksQ0FBQyxVQUFVLGVBQWUsVUFBVTtBQUN0QztBQUFBO0FBR0YsZ0JBQUksV0FBVyxVQUFVO0FBRXpCLGdCQUFJLFlBQVksT0FBTztBQUNyQjtBQUNFLG9CQUFJLFVBQVU7QUFHWix5QkFBTyxPQUFPO0FBQUE7QUFBQTtBQUtsQixnQ0FBa0IsWUFBWTtBQUFBLHVCQUNyQixZQUFZLDRCQUE0QjtBQUNqRCxrQkFBSSxXQUFXLFdBQVcsU0FBUyxVQUFVO0FBRTdDLGtCQUFJLFlBQVksTUFBTTtBQUNwQiw2QkFBYSxZQUFZO0FBQUE7QUFBQSx1QkFFbEIsWUFBWSxVQUFVO0FBQy9CLGtCQUFJLE9BQU8sYUFBYSxVQUFVO0FBS2hDLG9CQUFJLG9CQUFvQixRQUFRLGNBQWMsYUFBYTtBQUUzRCxvQkFBSSxtQkFBbUI7QUFDckIsaUNBQWUsWUFBWTtBQUFBO0FBQUEseUJBRXBCLE9BQU8sYUFBYSxVQUFVO0FBQ3ZDLCtCQUFlLFlBQVksS0FBSztBQUFBO0FBQUEsdUJBRXpCLFlBQVkscUNBQXFDLFlBQVk7QUFBNEI7QUFBQSxxQkFBVyxZQUFZO0FBQVc7QUFBQSxxQkFBVyw2QkFBNkIsZUFBZSxVQUFVO0FBQ3JNLGtCQUFJLFlBQVksTUFBTTtBQUNwQixvQkFBSyxPQUFPLGFBQWEsWUFBWTtBQUNuQyw4Q0FBNEIsU0FBUztBQUFBO0FBR3ZDLG9CQUFJLFlBQVksWUFBWTtBQUMxQiw0Q0FBMEIsVUFBVTtBQUFBO0FBQUE7QUFBQSx1QkFHL0IsWUFBWSxNQUFNO0FBQzNCLGtDQUFvQixZQUFZLFNBQVMsVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUt6RCxxQ0FBNkIsWUFBWSxlQUFlLHVCQUF1QixzQkFBc0I7QUFFbkcsbUJBQVMsSUFBSSxHQUFHLElBQUksY0FBYyxRQUFRLEtBQUssR0FBRztBQUNoRCxnQkFBSSxVQUFVLGNBQWM7QUFDNUIsZ0JBQUksWUFBWSxjQUFjLElBQUk7QUFFbEMsZ0JBQUksWUFBWSxPQUFPO0FBQ3JCLGdDQUFrQixZQUFZO0FBQUEsdUJBQ3JCLFlBQVksNEJBQTRCO0FBQ2pELDJCQUFhLFlBQVk7QUFBQSx1QkFDaEIsWUFBWSxVQUFVO0FBQy9CLDZCQUFlLFlBQVk7QUFBQSxtQkFDdEI7QUFDTCxrQ0FBb0IsWUFBWSxTQUFTLFdBQVc7QUFBQTtBQUFBO0FBQUE7QUFLMUQsZ0NBQXVCLE1BQU0sT0FBTyxzQkFBc0IsaUJBQWlCO0FBQ3pFLGNBQUk7QUFHSixjQUFJLGdCQUFnQixrQ0FBa0M7QUFDdEQsY0FBSTtBQUNKLGNBQUksZUFBZTtBQUVuQixjQUFJLGlCQUFpQixnQkFBZ0I7QUFDbkMsMkJBQWUsc0JBQXNCO0FBQUE7QUFHdkMsY0FBSSxpQkFBaUIsZ0JBQWdCO0FBQ25DO0FBQ0UscUNBQXVCLGtCQUFrQixNQUFNO0FBRy9DLGtCQUFJLENBQUMsd0JBQXdCLFNBQVMsS0FBSyxlQUFlO0FBQ3hELHNCQUFNLDBHQUFvSDtBQUFBO0FBQUE7QUFJOUgsZ0JBQUksU0FBUyxVQUFVO0FBR3JCLGtCQUFJLE1BQU0sY0FBYyxjQUFjO0FBRXRDLGtCQUFJLFlBQVk7QUFHaEIsa0JBQUksYUFBYSxJQUFJO0FBQ3JCLDJCQUFhLElBQUksWUFBWTtBQUFBLHVCQUNwQixPQUFPLE1BQU0sT0FBTyxVQUFVO0FBRXZDLDJCQUFhLGNBQWMsY0FBYyxNQUFNO0FBQUEsZ0JBQzdDLElBQUksTUFBTTtBQUFBO0FBQUEsbUJBRVA7QUFJTCwyQkFBYSxjQUFjLGNBQWM7QUFTekMsa0JBQUksU0FBUyxVQUFVO0FBQ3JCLG9CQUFJLE9BQU87QUFFWCxvQkFBSSxNQUFNLFVBQVU7QUFDbEIsdUJBQUssV0FBVztBQUFBLDJCQUNQLE1BQU0sTUFBTTtBQUtyQix1QkFBSyxPQUFPLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFJbkI7QUFDTCx5QkFBYSxjQUFjLGdCQUFnQixjQUFjO0FBQUE7QUFHM0Q7QUFDRSxnQkFBSSxpQkFBaUIsZ0JBQWdCO0FBQ25DLGtCQUFJLENBQUMsd0JBQXdCLE9BQU8sVUFBVSxTQUFTLEtBQUssZ0JBQWdCLGlDQUFpQyxDQUFDLGVBQWUsS0FBSyxtQkFBbUIsT0FBTztBQUMxSixrQ0FBa0IsUUFBUTtBQUUxQixzQkFBTSxvSUFBOEk7QUFBQTtBQUFBO0FBQUE7QUFLMUosaUJBQU87QUFBQTtBQUVULGdDQUF3QixNQUFNLHNCQUFzQjtBQUNsRCxpQkFBTyxrQ0FBa0Msc0JBQXNCLGVBQWU7QUFBQTtBQUVoRixzQ0FBOEIsWUFBWSxLQUFLLFVBQVUsc0JBQXNCO0FBQzdFLGNBQUksdUJBQXVCLGtCQUFrQixLQUFLO0FBRWxEO0FBQ0UsNENBQWdDLEtBQUs7QUFBQTtBQUl2QyxjQUFJO0FBRUosa0JBQVE7QUFBQSxpQkFDRDtBQUNILHdDQUEwQixVQUFVO0FBQ3BDLHdDQUEwQixTQUFTO0FBQ25DLHNCQUFRO0FBQ1I7QUFBQSxpQkFFRztBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFHSCx3Q0FBMEIsUUFBUTtBQUNsQyxzQkFBUTtBQUNSO0FBQUEsaUJBRUc7QUFBQSxpQkFDQTtBQUdILHVCQUFTLElBQUksR0FBRyxJQUFJLGdCQUFnQixRQUFRLEtBQUs7QUFDL0MsMENBQTBCLGdCQUFnQixJQUFJO0FBQUE7QUFHaEQsc0JBQVE7QUFDUjtBQUFBLGlCQUVHO0FBR0gsd0NBQTBCLFNBQVM7QUFDbkMsc0JBQVE7QUFDUjtBQUFBLGlCQUVHO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUdILHdDQUEwQixTQUFTO0FBQ25DLHdDQUEwQixRQUFRO0FBQ2xDLHNCQUFRO0FBQ1I7QUFBQSxpQkFFRztBQUdILHdDQUEwQixVQUFVO0FBQ3BDLHNCQUFRO0FBQ1I7QUFBQSxpQkFFRztBQUNILCtCQUFpQixZQUFZO0FBQzdCLHNCQUFRLGFBQWEsWUFBWTtBQUdqQyx3Q0FBMEIsV0FBVztBQUNyQztBQUFBLGlCQUVHO0FBQ0gsNEJBQWMsWUFBWTtBQUMxQixzQkFBUTtBQUNSO0FBQUEsaUJBRUc7QUFDSCxpQ0FBbUIsWUFBWTtBQUMvQixzQkFBUSxlQUFlLFlBQVk7QUFHbkMsd0NBQTBCLFdBQVc7QUFDckM7QUFBQSxpQkFFRztBQUNILGlDQUFtQixZQUFZO0FBQy9CLHNCQUFRLGVBQWUsWUFBWTtBQUduQyx3Q0FBMEIsV0FBVztBQUNyQztBQUFBO0FBR0Esc0JBQVE7QUFBQTtBQUdaLDJCQUFpQixLQUFLO0FBQ3RCLGtDQUF3QixLQUFLLFlBQVksc0JBQXNCLE9BQU87QUFFdEUsa0JBQVE7QUFBQSxpQkFDRDtBQUdILG9CQUFNO0FBQ04sK0JBQWlCLFlBQVksVUFBVTtBQUN2QztBQUFBLGlCQUVHO0FBR0gsb0JBQU07QUFDTixpQ0FBbUI7QUFDbkI7QUFBQSxpQkFFRztBQUNILGlDQUFtQixZQUFZO0FBQy9CO0FBQUEsaUJBRUc7QUFDSCxpQ0FBbUIsWUFBWTtBQUMvQjtBQUFBO0FBR0Esa0JBQUksT0FBTyxNQUFNLFlBQVksWUFBWTtBQUV2QyxpREFBaUM7QUFBQTtBQUduQztBQUFBO0FBQUE7QUFJTixnQ0FBd0IsWUFBWSxLQUFLLGNBQWMsY0FBYyxzQkFBc0I7QUFDekY7QUFDRSw0Q0FBZ0MsS0FBSztBQUFBO0FBR3ZDLGNBQUksZ0JBQWdCO0FBQ3BCLGNBQUk7QUFDSixjQUFJO0FBRUosa0JBQVE7QUFBQSxpQkFDRDtBQUNILDBCQUFZLGFBQWEsWUFBWTtBQUNyQywwQkFBWSxhQUFhLFlBQVk7QUFDckMsOEJBQWdCO0FBQ2hCO0FBQUEsaUJBRUc7QUFDSCwwQkFBWSxlQUFlLFlBQVk7QUFDdkMsMEJBQVksZUFBZSxZQUFZO0FBQ3ZDLDhCQUFnQjtBQUNoQjtBQUFBLGlCQUVHO0FBQ0gsMEJBQVksZUFBZSxZQUFZO0FBQ3ZDLDBCQUFZLGVBQWUsWUFBWTtBQUN2Qyw4QkFBZ0I7QUFDaEI7QUFBQTtBQUdBLDBCQUFZO0FBQ1osMEJBQVk7QUFFWixrQkFBSSxPQUFPLFVBQVUsWUFBWSxjQUFjLE9BQU8sVUFBVSxZQUFZLFlBQVk7QUFFdEYsaURBQWlDO0FBQUE7QUFHbkM7QUFBQTtBQUdKLDJCQUFpQixLQUFLO0FBQ3RCLGNBQUk7QUFDSixjQUFJO0FBQ0osY0FBSSxlQUFlO0FBRW5CLGVBQUssV0FBVyxXQUFXO0FBQ3pCLGdCQUFJLFVBQVUsZUFBZSxZQUFZLENBQUMsVUFBVSxlQUFlLFlBQVksVUFBVSxZQUFZLE1BQU07QUFDekc7QUFBQTtBQUdGLGdCQUFJLFlBQVksT0FBTztBQUNyQixrQkFBSSxZQUFZLFVBQVU7QUFFMUIsbUJBQUssYUFBYSxXQUFXO0FBQzNCLG9CQUFJLFVBQVUsZUFBZSxZQUFZO0FBQ3ZDLHNCQUFJLENBQUMsY0FBYztBQUNqQixtQ0FBZTtBQUFBO0FBR2pCLCtCQUFhLGFBQWE7QUFBQTtBQUFBO0FBQUEsdUJBR3JCLFlBQVksOEJBQThCLFlBQVk7QUFBVTtBQUFBLHFCQUFXLFlBQVkscUNBQXFDLFlBQVk7QUFBNEI7QUFBQSxxQkFBVyxZQUFZO0FBQVc7QUFBQSxxQkFBVyw2QkFBNkIsZUFBZSxVQUFVO0FBSWhSLGtCQUFJLENBQUMsZUFBZTtBQUNsQixnQ0FBZ0I7QUFBQTtBQUFBLG1CQUViO0FBR0wsY0FBQyxpQkFBZ0IsaUJBQWlCLElBQUksS0FBSyxTQUFTO0FBQUE7QUFBQTtBQUl4RCxlQUFLLFdBQVcsV0FBVztBQUN6QixnQkFBSSxXQUFXLFVBQVU7QUFDekIsZ0JBQUksV0FBVyxhQUFhLE9BQU8sVUFBVSxXQUFXO0FBRXhELGdCQUFJLENBQUMsVUFBVSxlQUFlLFlBQVksYUFBYSxZQUFZLFlBQVksUUFBUSxZQUFZLE1BQU07QUFDdkc7QUFBQTtBQUdGLGdCQUFJLFlBQVksT0FBTztBQUNyQjtBQUNFLG9CQUFJLFVBQVU7QUFHWix5QkFBTyxPQUFPO0FBQUE7QUFBQTtBQUlsQixrQkFBSSxVQUFVO0FBRVoscUJBQUssYUFBYSxVQUFVO0FBQzFCLHNCQUFJLFNBQVMsZUFBZSxjQUFlLEVBQUMsWUFBWSxDQUFDLFNBQVMsZUFBZSxhQUFhO0FBQzVGLHdCQUFJLENBQUMsY0FBYztBQUNqQixxQ0FBZTtBQUFBO0FBR2pCLGlDQUFhLGFBQWE7QUFBQTtBQUFBO0FBSzlCLHFCQUFLLGFBQWEsVUFBVTtBQUMxQixzQkFBSSxTQUFTLGVBQWUsY0FBYyxTQUFTLGVBQWUsU0FBUyxZQUFZO0FBQ3JGLHdCQUFJLENBQUMsY0FBYztBQUNqQixxQ0FBZTtBQUFBO0FBR2pCLGlDQUFhLGFBQWEsU0FBUztBQUFBO0FBQUE7QUFBQSxxQkFHbEM7QUFFTCxvQkFBSSxDQUFDLGNBQWM7QUFDakIsc0JBQUksQ0FBQyxlQUFlO0FBQ2xCLG9DQUFnQjtBQUFBO0FBR2xCLGdDQUFjLEtBQUssU0FBUztBQUFBO0FBRzlCLCtCQUFlO0FBQUE7QUFBQSx1QkFFUixZQUFZLDRCQUE0QjtBQUNqRCxrQkFBSSxXQUFXLFdBQVcsU0FBUyxVQUFVO0FBQzdDLGtCQUFJLFdBQVcsV0FBVyxTQUFTLFVBQVU7QUFFN0Msa0JBQUksWUFBWSxNQUFNO0FBQ3BCLG9CQUFJLGFBQWEsVUFBVTtBQUN6QixrQkFBQyxpQkFBZ0IsaUJBQWlCLElBQUksS0FBSyxTQUFTO0FBQUE7QUFBQTtBQUFBLHVCQUcvQyxZQUFZLFVBQVU7QUFDL0Isa0JBQUksT0FBTyxhQUFhLFlBQVksT0FBTyxhQUFhLFVBQVU7QUFDaEUsZ0JBQUMsaUJBQWdCLGlCQUFpQixJQUFJLEtBQUssU0FBUyxLQUFLO0FBQUE7QUFBQSx1QkFFbEQsWUFBWSxxQ0FBcUMsWUFBWTtBQUE0QjtBQUFBLHFCQUFXLDZCQUE2QixlQUFlLFVBQVU7QUFDbkssa0JBQUksWUFBWSxNQUFNO0FBRXBCLG9CQUFLLE9BQU8sYUFBYSxZQUFZO0FBQ25DLDhDQUE0QixTQUFTO0FBQUE7QUFHdkMsb0JBQUksWUFBWSxZQUFZO0FBQzFCLDRDQUEwQixVQUFVO0FBQUE7QUFBQTtBQUl4QyxrQkFBSSxDQUFDLGlCQUFpQixhQUFhLFVBQVU7QUFJM0MsZ0NBQWdCO0FBQUE7QUFBQSxtQkFFYjtBQUdMLGNBQUMsaUJBQWdCLGlCQUFpQixJQUFJLEtBQUssU0FBUztBQUFBO0FBQUE7QUFJeEQsY0FBSSxjQUFjO0FBQ2hCO0FBQ0Usc0RBQXdDLGNBQWMsVUFBVTtBQUFBO0FBR2xFLFlBQUMsaUJBQWdCLGlCQUFpQixJQUFJLEtBQUssT0FBTztBQUFBO0FBR3BELGlCQUFPO0FBQUE7QUFHVCxrQ0FBMEIsWUFBWSxlQUFlLEtBQUssY0FBYyxjQUFjO0FBSXBGLGNBQUksUUFBUSxXQUFXLGFBQWEsU0FBUyxXQUFXLGFBQWEsUUFBUSxNQUFNO0FBQ2pGLDBCQUFjLFlBQVk7QUFBQTtBQUc1QixjQUFJLHdCQUF3QixrQkFBa0IsS0FBSztBQUNuRCxjQUFJLHVCQUF1QixrQkFBa0IsS0FBSztBQUVsRCw4QkFBb0IsWUFBWSxlQUFlLHVCQUF1QjtBQUd0RSxrQkFBUTtBQUFBLGlCQUNEO0FBSUgsNEJBQWMsWUFBWTtBQUMxQjtBQUFBLGlCQUVHO0FBQ0gsOEJBQWdCLFlBQVk7QUFDNUI7QUFBQSxpQkFFRztBQUdILGdDQUFrQixZQUFZO0FBQzlCO0FBQUE7QUFBQTtBQUlOLHlDQUFpQyxVQUFVO0FBQ3pDO0FBQ0UsZ0JBQUksaUJBQWlCLFNBQVM7QUFFOUIsZ0JBQUksQ0FBQyxzQkFBc0IsZUFBZSxpQkFBaUI7QUFDekQscUJBQU87QUFBQTtBQUdULG1CQUFPLHNCQUFzQixtQkFBbUI7QUFBQTtBQUFBO0FBSXBELHdDQUFnQyxZQUFZLEtBQUssVUFBVSxpQkFBaUIsc0JBQXNCLGtCQUFrQixlQUFlO0FBQ2pJLGNBQUk7QUFDSixjQUFJO0FBRUo7QUFDRSx1Q0FBMkIsU0FBUyxnQ0FBZ0M7QUFDcEUsbUNBQXVCLGtCQUFrQixLQUFLO0FBQzlDLDRDQUFnQyxLQUFLO0FBQUE7QUFJdkMsa0JBQVE7QUFBQSxpQkFDRDtBQUNILHdDQUEwQixVQUFVO0FBQ3BDLHdDQUEwQixTQUFTO0FBQ25DO0FBQUEsaUJBRUc7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBR0gsd0NBQTBCLFFBQVE7QUFDbEM7QUFBQSxpQkFFRztBQUFBLGlCQUNBO0FBR0gsdUJBQVMsSUFBSSxHQUFHLElBQUksZ0JBQWdCLFFBQVEsS0FBSztBQUMvQywwQ0FBMEIsZ0JBQWdCLElBQUk7QUFBQTtBQUdoRDtBQUFBLGlCQUVHO0FBR0gsd0NBQTBCLFNBQVM7QUFDbkM7QUFBQSxpQkFFRztBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFHSCx3Q0FBMEIsU0FBUztBQUNuQyx3Q0FBMEIsUUFBUTtBQUNsQztBQUFBLGlCQUVHO0FBR0gsd0NBQTBCLFVBQVU7QUFDcEM7QUFBQSxpQkFFRztBQUNILCtCQUFpQixZQUFZO0FBRzdCLHdDQUEwQixXQUFXO0FBQ3JDO0FBQUEsaUJBRUc7QUFDSCw0QkFBYyxZQUFZO0FBQzFCO0FBQUEsaUJBRUc7QUFDSCxpQ0FBbUIsWUFBWTtBQUcvQix3Q0FBMEIsV0FBVztBQUNyQztBQUFBLGlCQUVHO0FBQ0gsaUNBQW1CLFlBQVk7QUFHL0Isd0NBQTBCLFdBQVc7QUFDckM7QUFBQTtBQUdKLDJCQUFpQixLQUFLO0FBRXRCO0FBQ0Usa0NBQXNCLElBQUk7QUFDMUIsZ0JBQUksYUFBYSxXQUFXO0FBRTVCLHFCQUFTLEtBQUssR0FBRyxLQUFLLFdBQVcsUUFBUSxNQUFNO0FBQzdDLGtCQUFJLE9BQU8sV0FBVyxJQUFJLEtBQUs7QUFFL0Isc0JBQVE7QUFBQSxxQkFHRDtBQUNIO0FBQUEscUJBRUc7QUFDSDtBQUFBLHFCQUVHO0FBQ0g7QUFBQTtBQUtBLHNDQUFvQixJQUFJLFdBQVcsSUFBSTtBQUFBO0FBQUE7QUFBQTtBQUsvQyxjQUFJLGdCQUFnQjtBQUVwQixtQkFBUyxXQUFXLFVBQVU7QUFDNUIsZ0JBQUksQ0FBQyxTQUFTLGVBQWUsVUFBVTtBQUNyQztBQUFBO0FBR0YsZ0JBQUksV0FBVyxTQUFTO0FBRXhCLGdCQUFJLFlBQVksVUFBVTtBQVV4QixrQkFBSSxPQUFPLGFBQWEsVUFBVTtBQUNoQyxvQkFBSSxXQUFXLGdCQUFnQixVQUFVO0FBQ3ZDLHNCQUFJLENBQUMsMEJBQTBCO0FBQzdCLDBDQUFzQixXQUFXLGFBQWEsVUFBVSxrQkFBa0I7QUFBQTtBQUc1RSxrQ0FBZ0IsQ0FBQyxVQUFVO0FBQUE7QUFBQSx5QkFFcEIsT0FBTyxhQUFhLFVBQVU7QUFDdkMsb0JBQUksV0FBVyxnQkFBZ0IsS0FBSyxVQUFVO0FBQzVDLHNCQUFJLENBQUMsMEJBQTBCO0FBQzdCLDBDQUFzQixXQUFXLGFBQWEsVUFBVSxrQkFBa0I7QUFBQTtBQUc1RSxrQ0FBZ0IsQ0FBQyxVQUFVLEtBQUs7QUFBQTtBQUFBO0FBQUEsdUJBRzNCLDZCQUE2QixlQUFlLFVBQVU7QUFDL0Qsa0JBQUksWUFBWSxNQUFNO0FBQ3BCLG9CQUFLLE9BQU8sYUFBYSxZQUFZO0FBQ25DLDhDQUE0QixTQUFTO0FBQUE7QUFHdkMsb0JBQUksWUFBWSxZQUFZO0FBQzFCLDRDQUEwQixVQUFVO0FBQUE7QUFBQTtBQUFBLHVCQUcvQixpQkFBaUIsUUFDNUIsT0FBTyx5QkFBeUIsV0FBVztBQUV6QyxrQkFBSSxjQUFjO0FBQ2xCLGtCQUFJLGVBQWUsd0JBQXdCLHFDQUFxQyxPQUFPLGdCQUFnQjtBQUV2RyxrQkFBSTtBQUEwQjtBQUFBLHVCQUFXLFlBQVkscUNBQXFDLFlBQVksOEJBRXRHLFlBQVksV0FBVyxZQUFZLGFBQWEsWUFBWTtBQUFZO0FBQUEsdUJBQVcsWUFBWSw0QkFBNEI7QUFDekgsb0JBQUksYUFBYSxXQUFXO0FBQzVCLG9CQUFJLFdBQVcsV0FBVyxTQUFTLFVBQVU7QUFFN0Msb0JBQUksWUFBWSxNQUFNO0FBQ3BCLHNCQUFJLGVBQWUsY0FBYyxZQUFZO0FBRTdDLHNCQUFJLGlCQUFpQixZQUFZO0FBQy9CLDBDQUFzQixTQUFTLFlBQVk7QUFBQTtBQUFBO0FBQUEseUJBR3RDLFlBQVksT0FBTztBQUU1QixvQ0FBb0IsT0FBTztBQUUzQixvQkFBSSxpQ0FBaUM7QUFDbkMsc0JBQUksZ0JBQWdCLCtCQUErQjtBQUNuRCxnQ0FBYyxXQUFXLGFBQWE7QUFFdEMsc0JBQUksa0JBQWtCLGFBQWE7QUFDakMsMENBQXNCLFNBQVMsYUFBYTtBQUFBO0FBQUE7QUFBQSx5QkFHdkMsd0JBQXdCLENBQUMsb0NBQW9DO0FBRXRFLG9DQUFvQixPQUFPLFFBQVE7QUFDbkMsOEJBQWMscUJBQXFCLFlBQVksU0FBUztBQUV4RCxvQkFBSSxhQUFhLGFBQWE7QUFDNUIsd0NBQXNCLFNBQVMsYUFBYTtBQUFBO0FBQUEseUJBRXJDLENBQUMsc0JBQXNCLFNBQVMsY0FBYyx5QkFBeUIsQ0FBQyxzQkFBc0IsU0FBUyxVQUFVLGNBQWMsdUJBQXVCO0FBQy9KLG9CQUFJLDJCQUEyQjtBQUUvQixvQkFBSSxpQkFBaUIsTUFBTTtBQUV6QixzQ0FBb0IsT0FBTyxhQUFhO0FBQ3hDLGdDQUFjLG9CQUFvQixZQUFZLFNBQVMsVUFBVTtBQUFBLHVCQUM1RDtBQUNMLHNCQUFJLGVBQWU7QUFFbkIsc0JBQUksaUJBQWlCLGdCQUFnQjtBQUNuQyxtQ0FBZSxzQkFBc0I7QUFBQTtBQUd2QyxzQkFBSSxpQkFBaUIsZ0JBQWdCO0FBRW5DLHdDQUFvQixPQUFPLFFBQVE7QUFBQSx5QkFDOUI7QUFDTCx3QkFBSSxlQUFlLHdCQUF3QjtBQUUzQyx3QkFBSSxpQkFBaUIsUUFBUSxpQkFBaUIsU0FBUztBQU1yRCxpREFBMkI7QUFFM0IsMENBQW9CLE9BQU87QUFBQTtBQUk3Qix3Q0FBb0IsT0FBTztBQUFBO0FBRzdCLGdDQUFjLHFCQUFxQixZQUFZLFNBQVM7QUFBQTtBQUcxRCxvQkFBSSx3QkFBd0I7QUFFNUIsb0JBQUksQ0FBQyx5QkFBeUIsYUFBYSxlQUFlLENBQUMsMEJBQTBCO0FBQ25GLHdDQUFzQixTQUFTLGFBQWE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1wRDtBQUNFLGdCQUFJLGVBQWU7QUFFakIsa0JBQUksb0JBQW9CLE9BQU8sS0FBSyxDQUFDLDBCQUEwQjtBQUU3RCx1Q0FBdUI7QUFBQTtBQUFBO0FBQUE7QUFLN0Isa0JBQVE7QUFBQSxpQkFDRDtBQUdILG9CQUFNO0FBQ04sK0JBQWlCLFlBQVksVUFBVTtBQUN2QztBQUFBLGlCQUVHO0FBR0gsb0JBQU07QUFDTixpQ0FBbUI7QUFDbkI7QUFBQSxpQkFFRztBQUFBLGlCQUNBO0FBTUg7QUFBQTtBQUdBLGtCQUFJLE9BQU8sU0FBUyxZQUFZLFlBQVk7QUFFMUMsaURBQWlDO0FBQUE7QUFHbkM7QUFBQTtBQUdKLGlCQUFPO0FBQUE7QUFFVCxrQ0FBMEIsVUFBVSxNQUFNLGtCQUFrQjtBQUMxRCxjQUFJLGNBQWMsU0FBUyxjQUFjO0FBQ3pDLGlCQUFPO0FBQUE7QUFFVCxpREFBeUMsWUFBWSxPQUFPO0FBQzFEO0FBQ0UsZ0JBQUkseUJBQXlCO0FBQzNCO0FBQUE7QUFHRixzQ0FBMEI7QUFFMUIsa0JBQU0seURBQXlELE1BQU0sU0FBUyxlQUFlLFdBQVcsU0FBUztBQUFBO0FBQUE7QUFHckgsOENBQXNDLFlBQVksT0FBTztBQUN2RDtBQUNFLGdCQUFJLHlCQUF5QjtBQUMzQjtBQUFBO0FBR0Ysc0NBQTBCO0FBRTFCLGtCQUFNLHFFQUFxRSxNQUFNLFdBQVcsV0FBVyxTQUFTO0FBQUE7QUFBQTtBQUdwSCxnREFBd0MsWUFBWSxLQUFLLE9BQU87QUFDOUQ7QUFDRSxnQkFBSSx5QkFBeUI7QUFDM0I7QUFBQTtBQUdGLHNDQUEwQjtBQUUxQixrQkFBTSw0REFBNEQsS0FBSyxXQUFXLFNBQVM7QUFBQTtBQUFBO0FBRy9GLDZDQUFxQyxZQUFZLE1BQU07QUFDckQ7QUFDRSxnQkFBSSxTQUFTLElBQUk7QUFLZjtBQUFBO0FBR0YsZ0JBQUkseUJBQXlCO0FBQzNCO0FBQUE7QUFHRixzQ0FBMEI7QUFFMUIsa0JBQU0sMEVBQTBFLE1BQU0sV0FBVyxTQUFTO0FBQUE7QUFBQTtBQUc5RywwQ0FBa0MsWUFBWSxLQUFLLE9BQU87QUFDeEQsa0JBQVE7QUFBQSxpQkFDRDtBQUNILHFDQUF1QixZQUFZO0FBQ25DO0FBQUEsaUJBRUc7QUFDSCx1Q0FBeUIsWUFBWTtBQUNyQztBQUFBLGlCQUVHO0FBQ0gsdUNBQXlCLFlBQVk7QUFDckM7QUFBQTtBQUFBO0FBSU4sWUFBSSxxQkFBcUIsV0FBWTtBQUFBO0FBRXJDLFlBQUksc0JBQXNCLFdBQVk7QUFBQTtBQUV0QztBQVlFLGNBQUksY0FBYyxDQUFDLFdBQVcsVUFBVSxRQUFRLFdBQVcsU0FBUyxRQUFRLFlBQVksV0FBVyxjQUFjLFFBQVEsTUFBTSxVQUFVLFdBQVcsVUFBVSxPQUFPLFlBQVksTUFBTSxXQUFXLE9BQU8sT0FBTyxNQUFNLE1BQU0sU0FBUyxZQUFZLGNBQWMsVUFBVSxVQUFVLFFBQVEsU0FBUyxZQUFZLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLFFBQVEsVUFBVSxVQUFVLE1BQU0sUUFBUSxVQUFVLE9BQU8sU0FBUyxXQUFXLE1BQU0sUUFBUSxXQUFXLFFBQVEsV0FBVyxRQUFRLFlBQVksUUFBUSxPQUFPLFdBQVcsWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLFNBQVMsYUFBYSxPQUFPLFVBQVUsV0FBVyxVQUFVLFVBQVUsU0FBUyxXQUFXLFNBQVMsU0FBUyxNQUFNLFlBQVksWUFBWSxTQUFTLE1BQU0sU0FBUyxTQUFTLE1BQU0sU0FBUyxNQUFNLE9BQU87QUFFanZCLGNBQUksY0FBYztBQUFBLFlBQUM7QUFBQSxZQUFVO0FBQUEsWUFBVztBQUFBLFlBQVE7QUFBQSxZQUFTO0FBQUEsWUFBTTtBQUFBLFlBQU07QUFBQSxZQUFXO0FBQUEsWUFBVTtBQUFBLFlBRzFGO0FBQUEsWUFBaUI7QUFBQSxZQUFRO0FBQUE7QUFFekIsY0FBSSxrQkFBa0IsWUFBWSxPQUFPLENBQUM7QUFFMUMsY0FBSSxpQkFBaUIsQ0FBQyxNQUFNLE1BQU0sTUFBTSxVQUFVLFlBQVksS0FBSyxNQUFNO0FBQ3pFLGNBQUksb0JBQW9CO0FBQUEsWUFDdEIsU0FBUztBQUFBLFlBQ1QsU0FBUztBQUFBLFlBQ1QsYUFBYTtBQUFBLFlBQ2Isa0JBQWtCO0FBQUEsWUFDbEIsZ0JBQWdCO0FBQUEsWUFDaEIsbUJBQW1CO0FBQUEsWUFDbkIsd0JBQXdCO0FBQUEsWUFDeEIsc0JBQXNCO0FBQUE7QUFHeEIsZ0NBQXNCLFNBQVUsU0FBUyxLQUFLO0FBQzVDLGdCQUFJLGVBQWUsT0FBTyxJQUFJLFdBQVc7QUFFekMsZ0JBQUksT0FBTztBQUFBLGNBQ1Q7QUFBQTtBQUdGLGdCQUFJLFlBQVksUUFBUSxTQUFTLElBQUk7QUFDbkMsMkJBQWEsY0FBYztBQUMzQiwyQkFBYSxtQkFBbUI7QUFDaEMsMkJBQWEsaUJBQWlCO0FBQUE7QUFHaEMsZ0JBQUksZ0JBQWdCLFFBQVEsU0FBUyxJQUFJO0FBQ3ZDLDJCQUFhLG9CQUFvQjtBQUFBO0FBS25DLGdCQUFJLFlBQVksUUFBUSxTQUFTLE1BQU0sUUFBUSxhQUFhLFFBQVEsU0FBUyxRQUFRLEtBQUs7QUFDeEYsMkJBQWEseUJBQXlCO0FBQ3RDLDJCQUFhLHVCQUF1QjtBQUFBO0FBR3RDLHlCQUFhLFVBQVU7QUFFdkIsZ0JBQUksUUFBUSxRQUFRO0FBQ2xCLDJCQUFhLFVBQVU7QUFBQTtBQUd6QixnQkFBSSxRQUFRLEtBQUs7QUFDZiwyQkFBYSxjQUFjO0FBQUE7QUFHN0IsZ0JBQUksUUFBUSxVQUFVO0FBQ3BCLDJCQUFhLG1CQUFtQjtBQUFBO0FBR2xDLGdCQUFJLFFBQVEsUUFBUTtBQUNsQiwyQkFBYSxpQkFBaUI7QUFBQTtBQUdoQyxnQkFBSSxRQUFRLEtBQUs7QUFDZiwyQkFBYSxvQkFBb0I7QUFBQTtBQUduQyxnQkFBSSxRQUFRLE1BQU07QUFDaEIsMkJBQWEseUJBQXlCO0FBQUE7QUFHeEMsZ0JBQUksUUFBUSxRQUFRLFFBQVEsTUFBTTtBQUNoQywyQkFBYSx1QkFBdUI7QUFBQTtBQUd0QyxtQkFBTztBQUFBO0FBT1QsY0FBSSx1QkFBdUIsU0FBVSxLQUFLLFdBQVc7QUFFbkQsb0JBQVE7QUFBQSxtQkFFRDtBQUNILHVCQUFPLFFBQVEsWUFBWSxRQUFRLGNBQWMsUUFBUTtBQUFBLG1CQUV0RDtBQUNILHVCQUFPLFFBQVEsWUFBWSxRQUFRO0FBQUEsbUJBSWhDO0FBQ0gsdUJBQU8sUUFBUTtBQUFBLG1CQU9aO0FBQ0gsdUJBQU8sUUFBUSxRQUFRLFFBQVEsUUFBUSxRQUFRLFdBQVcsUUFBUSxZQUFZLFFBQVE7QUFBQSxtQkFHbkY7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQ0gsdUJBQU8sUUFBUSxRQUFRLFFBQVEsV0FBVyxRQUFRLFlBQVksUUFBUTtBQUFBLG1CQUduRTtBQUNILHVCQUFPLFFBQVEsU0FBUyxRQUFRO0FBQUEsbUJBRzdCO0FBQ0gsdUJBQU8sUUFBUSxhQUFhLFFBQVEsY0FBYyxRQUFRLFdBQVcsUUFBUSxXQUFXLFFBQVEsV0FBVyxRQUFRLFdBQVcsUUFBUSxZQUFZLFFBQVE7QUFBQSxtQkFHdko7QUFDSCx1QkFBTyxRQUFRLFVBQVUsUUFBUSxjQUFjLFFBQVEsYUFBYSxRQUFRLFVBQVUsUUFBUSxVQUFVLFFBQVEsV0FBVyxRQUFRLGNBQWMsUUFBUSxjQUFjLFFBQVEsV0FBVyxRQUFRLFlBQVksUUFBUTtBQUFBLG1CQUduTjtBQUNILHVCQUFPLFFBQVEsVUFBVSxRQUFRLFVBQVUsUUFBUTtBQUFBLG1CQUVoRDtBQUNILHVCQUFPLFFBQVE7QUFBQSxtQkFFWjtBQUNILHVCQUFPLFFBQVE7QUFBQTtBQU1uQixvQkFBUTtBQUFBLG1CQUNEO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUNILHVCQUFPLGNBQWMsUUFBUSxjQUFjLFFBQVEsY0FBYyxRQUFRLGNBQWMsUUFBUSxjQUFjLFFBQVEsY0FBYztBQUFBLG1CQUVoSTtBQUFBLG1CQUNBO0FBQ0gsdUJBQU8sZUFBZSxRQUFRLGVBQWU7QUFBQSxtQkFFMUM7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUtILHVCQUFPLGFBQWE7QUFBQTtBQUd4QixtQkFBTztBQUFBO0FBT1QsY0FBSSw0QkFBNEIsU0FBVSxLQUFLLGNBQWM7QUFDM0Qsb0JBQVE7QUFBQSxtQkFDRDtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQ0gsdUJBQU8sYUFBYTtBQUFBLG1CQUVqQjtBQUNILHVCQUFPLGFBQWEsV0FBVyxhQUFhO0FBQUEsbUJBRXpDO0FBQ0gsdUJBQU8sYUFBYTtBQUFBLG1CQUVqQjtBQUFBLG1CQUNBO0FBQ0gsdUJBQU8sYUFBYTtBQUFBLG1CQUVqQjtBQUNILHVCQUFPLGFBQWE7QUFBQSxtQkFFakI7QUFHSCx1QkFBTyxhQUFhO0FBQUEsbUJBRWpCO0FBQ0gsdUJBQU8sYUFBYTtBQUFBO0FBR3hCLG1CQUFPO0FBQUE7QUFHVCxjQUFJLFlBQVk7QUFFaEIsK0JBQXFCLFNBQVUsVUFBVSxXQUFXLGNBQWM7QUFDaEUsMkJBQWUsZ0JBQWdCO0FBQy9CLGdCQUFJLGFBQWEsYUFBYTtBQUM5QixnQkFBSSxZQUFZLGNBQWMsV0FBVztBQUV6QyxnQkFBSSxhQUFhLE1BQU07QUFDckIsa0JBQUksWUFBWSxNQUFNO0FBQ3BCLHNCQUFNO0FBQUE7QUFHUix5QkFBVztBQUFBO0FBR2IsZ0JBQUksZ0JBQWdCLHFCQUFxQixVQUFVLGFBQWEsT0FBTztBQUN2RSxnQkFBSSxrQkFBa0IsZ0JBQWdCLE9BQU8sMEJBQTBCLFVBQVU7QUFDakYsZ0JBQUksMEJBQTBCLGlCQUFpQjtBQUUvQyxnQkFBSSxDQUFDLHlCQUF5QjtBQUM1QjtBQUFBO0FBR0YsZ0JBQUksY0FBYyx3QkFBd0I7QUFDMUMsZ0JBQUksVUFBVSxDQUFDLENBQUMsZ0JBQWdCLE1BQU0sV0FBVyxNQUFNO0FBRXZELGdCQUFJLFVBQVUsVUFBVTtBQUN0QjtBQUFBO0FBR0Ysc0JBQVUsV0FBVztBQUNyQixnQkFBSSxpQkFBaUI7QUFDckIsZ0JBQUksaUJBQWlCO0FBRXJCLGdCQUFJLGFBQWEsU0FBUztBQUN4QixrQkFBSSxLQUFLLEtBQUssWUFBWTtBQUN4QixpQ0FBaUI7QUFBQSxxQkFDWjtBQUNMLGlDQUFpQjtBQUNqQixpQ0FBaUI7QUFBQTtBQUFBLG1CQUVkO0FBQ0wsK0JBQWlCLE1BQU0sV0FBVztBQUFBO0FBR3BDLGdCQUFJLGVBQWU7QUFDakIsa0JBQUksT0FBTztBQUVYLGtCQUFJLGdCQUFnQixXQUFXLGFBQWEsTUFBTTtBQUNoRCx3QkFBUTtBQUFBO0FBR1Ysb0JBQU0scUVBQXFFLGdCQUFnQixhQUFhLGdCQUFnQjtBQUFBLG1CQUNuSDtBQUNMLG9CQUFNLHNFQUEyRSxnQkFBZ0I7QUFBQTtBQUFBO0FBQUE7QUFLdkcsWUFBSTtBQUVKO0FBQ0UseUNBQStCO0FBQUE7QUFHakMsWUFBSSxzQkFBc0I7QUFDMUIsWUFBSSxvQkFBb0I7QUFDeEIsWUFBSSw4QkFBOEI7QUFDbEMsWUFBSSwrQkFBK0I7QUFDbkMsWUFBSSxVQUFVO0FBQ2QsWUFBSSx1QkFBdUI7QUFDM0Isb0NBQTRCLHVCQUF1QjtBQUNqRCxjQUFJO0FBQ0osY0FBSTtBQUNKLGNBQUksV0FBVyxzQkFBc0I7QUFFckMsa0JBQVE7QUFBQSxpQkFDRDtBQUFBLGlCQUNBLHdCQUNIO0FBQ0UscUJBQU8sYUFBYSxnQkFBZ0IsY0FBYztBQUNsRCxrQkFBSSxRQUFPLHNCQUFzQjtBQUNqQywwQkFBWSxRQUFPLE1BQUssZUFBZSxrQkFBa0IsTUFBTTtBQUMvRDtBQUFBO0FBQUEscUJBSUY7QUFDRSxrQkFBSSxZQUFZLGFBQWEsZUFBZSxzQkFBc0IsYUFBYTtBQUMvRSxrQkFBSSxlQUFlLFVBQVUsZ0JBQWdCO0FBQzdDLHFCQUFPLFVBQVU7QUFDakIsMEJBQVksa0JBQWtCLGNBQWM7QUFDNUM7QUFBQTtBQUFBO0FBSU47QUFDRSxnQkFBSSxlQUFlLEtBQUs7QUFDeEIsZ0JBQUksZUFBZSxvQkFBb0IsTUFBTTtBQUM3QyxtQkFBTztBQUFBLGNBQ0w7QUFBQSxjQUNBO0FBQUE7QUFBQTtBQUFBO0FBSU4scUNBQTZCLG1CQUFtQixNQUFNLHVCQUF1QjtBQUMzRTtBQUNFLGdCQUFJLHVCQUF1QjtBQUMzQixnQkFBSSxZQUFZLGtCQUFrQixxQkFBcUIsV0FBVztBQUNsRSxnQkFBSSxlQUFlLG9CQUFvQixxQkFBcUIsY0FBYztBQUMxRSxtQkFBTztBQUFBLGNBQ0w7QUFBQSxjQUNBO0FBQUE7QUFBQTtBQUFBO0FBSU4sbUNBQTJCLFVBQVU7QUFDbkMsaUJBQU87QUFBQTtBQUVULGtDQUEwQixlQUFlO0FBQ3ZDLGlDQUF1QjtBQUN2QixjQUFJLGlCQUFpQjtBQUNyQixpQkFBTztBQUFBO0FBRVQsa0NBQTBCLGVBQWU7QUFDdkMsMkJBQWlCO0FBQ2pCLGlDQUF1QjtBQUFBO0FBRXpCLGdDQUF3QixNQUFNLE9BQU8sdUJBQXVCLGFBQWEsd0JBQXdCO0FBQy9GLGNBQUk7QUFFSjtBQUVFLGdCQUFJLGlCQUFpQjtBQUNyQiwrQkFBbUIsTUFBTSxNQUFNLGVBQWU7QUFFOUMsZ0JBQUksT0FBTyxNQUFNLGFBQWEsWUFBWSxPQUFPLE1BQU0sYUFBYSxVQUFVO0FBQzVFLGtCQUFJLFNBQVMsS0FBSyxNQUFNO0FBQ3hCLGtCQUFJLGtCQUFrQixvQkFBb0IsZUFBZSxjQUFjO0FBQ3ZFLGlDQUFtQixNQUFNLFFBQVE7QUFBQTtBQUduQyw4QkFBa0IsZUFBZTtBQUFBO0FBR25DLGNBQUksYUFBYSxlQUFjLE1BQU0sT0FBTyx1QkFBdUI7QUFDbkUsNEJBQWtCLHdCQUF3QjtBQUMxQywyQkFBaUIsWUFBWTtBQUM3QixpQkFBTztBQUFBO0FBRVQsb0NBQTRCLGdCQUFnQixPQUFPO0FBQ2pELHlCQUFlLFlBQVk7QUFBQTtBQUU3Qix5Q0FBaUMsWUFBWSxNQUFNLE9BQU8sdUJBQXVCLGFBQWE7QUFDNUYsK0JBQXFCLFlBQVksTUFBTSxPQUFPO0FBRTlDLGtCQUFRO0FBQUEsaUJBQ0Q7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFDSCxxQkFBTyxDQUFDLENBQUMsTUFBTTtBQUFBLGlCQUVaO0FBQ0gscUJBQU87QUFBQTtBQUdQLHFCQUFPO0FBQUE7QUFBQTtBQUdiLCtCQUF1QixZQUFZLE1BQU0sVUFBVSxVQUFVLHVCQUF1QixhQUFhO0FBQy9GO0FBQ0UsZ0JBQUksaUJBQWlCO0FBRXJCLGdCQUFJLE9BQU8sU0FBUyxhQUFhLE9BQU8sU0FBUyxZQUFhLFFBQU8sU0FBUyxhQUFhLFlBQVksT0FBTyxTQUFTLGFBQWEsV0FBVztBQUM3SSxrQkFBSSxTQUFTLEtBQUssU0FBUztBQUMzQixrQkFBSSxrQkFBa0Isb0JBQW9CLGVBQWUsY0FBYztBQUN2RSxpQ0FBbUIsTUFBTSxRQUFRO0FBQUE7QUFBQTtBQUlyQyxpQkFBTyxlQUFlLFlBQVksTUFBTSxVQUFVO0FBQUE7QUFFcEQsc0NBQThCLE1BQU0sT0FBTztBQUN6QyxpQkFBTyxTQUFTLGNBQWMsU0FBUyxjQUFjLE9BQU8sTUFBTSxhQUFhLFlBQVksT0FBTyxNQUFNLGFBQWEsWUFBWSxPQUFPLE1BQU0sNEJBQTRCLFlBQVksTUFBTSw0QkFBNEIsUUFBUSxNQUFNLHdCQUF3QixVQUFVO0FBQUE7QUFFMVEsb0NBQTRCLE1BQU0sdUJBQXVCLGFBQWEsd0JBQXdCO0FBQzVGO0FBQ0UsZ0JBQUksaUJBQWlCO0FBQ3JCLCtCQUFtQixNQUFNLE1BQU0sZUFBZTtBQUFBO0FBR2hELGNBQUksV0FBVyxlQUFlLE1BQU07QUFDcEMsNEJBQWtCLHdCQUF3QjtBQUMxQyxpQkFBTztBQUFBO0FBRVQsMkNBQW1DO0FBQ2pDLGNBQUksZUFBZSxPQUFPO0FBRTFCLGNBQUksaUJBQWlCLFFBQVc7QUFDOUIsbUJBQU87QUFBQTtBQUdULGlCQUFPLGlCQUFpQixhQUFhO0FBQUE7QUFLdkMsWUFBSSxrQkFBa0IsT0FBTyxlQUFlLGFBQWEsYUFBYTtBQUN0RSxZQUFJLGdCQUFnQixPQUFPLGlCQUFpQixhQUFhLGVBQWU7QUFDeEUsWUFBSSxZQUFZO0FBQ2hCLFlBQUksZUFBZSxPQUFPLFlBQVksYUFBYSxVQUFVO0FBQzdELFlBQUksb0JBQW9CLE9BQU8sbUJBQW1CLGFBQWEsaUJBQWlCLE9BQU8saUJBQWlCLGNBQWMsU0FBVSxVQUFVO0FBQ3hJLGlCQUFPLGFBQWEsUUFBUSxNQUFNLEtBQUssVUFBVSxNQUFNO0FBQUEsWUFDckQ7QUFFSix1Q0FBK0IsUUFBTztBQUNwQyxxQkFBVyxXQUFZO0FBQ3JCLGtCQUFNO0FBQUE7QUFBQTtBQUdWLDZCQUFxQixZQUFZLE1BQU0sVUFBVSx3QkFBd0I7QUFPdkUsa0JBQVE7QUFBQSxpQkFDRDtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUNILGtCQUFJLFNBQVMsV0FBVztBQUN0QiwyQkFBVztBQUFBO0FBR2I7QUFBQSxpQkFFRyxPQUNIO0FBQ0Usa0JBQUksU0FBUyxLQUFLO0FBQ2hCLDJCQUFXLE1BQU0sU0FBUztBQUFBO0FBRzVCO0FBQUE7QUFBQTtBQUFBO0FBSVIsOEJBQXNCLFlBQVksZUFBZSxNQUFNLFVBQVUsVUFBVSx3QkFBd0I7QUFFakcsMkJBQWlCLFlBQVksZUFBZSxNQUFNLFVBQVU7QUFHNUQsMkJBQWlCLFlBQVk7QUFBQTtBQUUvQixrQ0FBMEIsWUFBWTtBQUNwQyx5QkFBZSxZQUFZO0FBQUE7QUFFN0Isa0NBQTBCLGNBQWMsU0FBUyxTQUFTO0FBQ3hELHVCQUFhLFlBQVk7QUFBQTtBQUUzQiw2QkFBcUIsZ0JBQWdCLE9BQU87QUFDMUMseUJBQWUsWUFBWTtBQUFBO0FBRTdCLHdDQUFnQyxXQUFXLE9BQU87QUFDaEQsY0FBSTtBQUVKLGNBQUksVUFBVSxhQUFhLGNBQWM7QUFDdkMseUJBQWEsVUFBVTtBQUN2Qix1QkFBVyxhQUFhLE9BQU87QUFBQSxpQkFDMUI7QUFDTCx5QkFBYTtBQUNiLHVCQUFXLFlBQVk7QUFBQTtBQVd6QixjQUFJLHFCQUFxQixVQUFVO0FBRW5DLGNBQUssd0JBQXVCLFFBQVEsdUJBQXVCLFdBQWMsV0FBVyxZQUFZLE1BQU07QUFFcEcsNkNBQWlDO0FBQUE7QUFBQTtBQUdyQyw4QkFBc0IsZ0JBQWdCLE9BQU8sYUFBYTtBQUN4RCx5QkFBZSxhQUFhLE9BQU87QUFBQTtBQUVyQyx5Q0FBaUMsV0FBVyxPQUFPLGFBQWE7QUFDOUQsY0FBSSxVQUFVLGFBQWEsY0FBYztBQUN2QyxzQkFBVSxXQUFXLGFBQWEsT0FBTztBQUFBLGlCQUNwQztBQUNMLHNCQUFVLGFBQWEsT0FBTztBQUFBO0FBQUE7QUFJbEMsNkJBQXFCLGdCQUFnQixPQUFPO0FBQzFDLHlCQUFlLFlBQVk7QUFBQTtBQUU3QiwwQ0FBa0MsV0FBVyxPQUFPO0FBQ2xELGNBQUksVUFBVSxhQUFhLGNBQWM7QUFDdkMsc0JBQVUsV0FBVyxZQUFZO0FBQUEsaUJBQzVCO0FBQ0wsc0JBQVUsWUFBWTtBQUFBO0FBQUE7QUFHMUIsdUNBQStCLGdCQUFnQixrQkFBa0I7QUFDL0QsY0FBSSxPQUFPO0FBSVgsY0FBSSxRQUFRO0FBRVosYUFBRztBQUNELGdCQUFJLFdBQVcsS0FBSztBQUNwQiwyQkFBZSxZQUFZO0FBRTNCLGdCQUFJLFlBQVksU0FBUyxhQUFhLGNBQWM7QUFDbEQsa0JBQUksT0FBTyxTQUFTO0FBRXBCLGtCQUFJLFNBQVMsbUJBQW1CO0FBQzlCLG9CQUFJLFVBQVUsR0FBRztBQUNmLGlDQUFlLFlBQVk7QUFFM0IsbUNBQWlCO0FBQ2pCO0FBQUEsdUJBQ0s7QUFDTDtBQUFBO0FBQUEseUJBRU8sU0FBUyx1QkFBdUIsU0FBUywrQkFBK0IsU0FBUyw4QkFBOEI7QUFDeEg7QUFBQTtBQUFBO0FBSUosbUJBQU87QUFBQSxtQkFDQTtBQUlULDJCQUFpQjtBQUFBO0FBRW5CLG9EQUE0QyxXQUFXLGtCQUFrQjtBQUN2RSxjQUFJLFVBQVUsYUFBYSxjQUFjO0FBQ3ZDLGtDQUFzQixVQUFVLFlBQVk7QUFBQSxxQkFDbkMsVUFBVSxhQUFhLGNBQWM7QUFDOUMsa0NBQXNCLFdBQVc7QUFBQTtBQUluQywyQkFBaUI7QUFBQTtBQUVuQiw4QkFBc0IsVUFBVTtBQUc5QixxQkFBVztBQUNYLGNBQUksU0FBUSxTQUFTO0FBRXJCLGNBQUksT0FBTyxPQUFNLGdCQUFnQixZQUFZO0FBQzNDLG1CQUFNLFlBQVksV0FBVyxRQUFRO0FBQUEsaUJBQ2hDO0FBQ0wsbUJBQU0sVUFBVTtBQUFBO0FBQUE7QUFHcEIsa0NBQTBCLGNBQWM7QUFDdEMsdUJBQWEsWUFBWTtBQUFBO0FBRTNCLGdDQUF3QixVQUFVLE9BQU87QUFDdkMscUJBQVc7QUFDWCxjQUFJLFlBQVksTUFBTTtBQUN0QixjQUFJLFVBQVUsY0FBYyxVQUFhLGNBQWMsUUFBUSxVQUFVLGVBQWUsYUFBYSxVQUFVLFVBQVU7QUFDekgsbUJBQVMsTUFBTSxVQUFVLG9CQUFvQixXQUFXO0FBQUE7QUFFMUQsb0NBQTRCLGNBQWMsTUFBTTtBQUM5Qyx1QkFBYSxZQUFZO0FBQUE7QUFFM0IsZ0NBQXdCLFdBQVc7QUFDakMsY0FBSSxVQUFVLGFBQWEsY0FBYztBQUN2QyxzQkFBVSxjQUFjO0FBQUEscUJBQ2YsVUFBVSxhQUFhLGVBQWU7QUFDL0MsZ0JBQUksT0FBTyxVQUFVO0FBRXJCLGdCQUFJLFFBQVEsTUFBTTtBQUNoQixtQkFBSyxjQUFjO0FBQUE7QUFBQTtBQUFBO0FBSXpCLG9DQUE0QixVQUFVLE1BQU0sT0FBTztBQUNqRCxjQUFJLFNBQVMsYUFBYSxnQkFBZ0IsS0FBSyxrQkFBa0IsU0FBUyxTQUFTLGVBQWU7QUFDaEcsbUJBQU87QUFBQTtBQUlULGlCQUFPO0FBQUE7QUFFVCx3Q0FBZ0MsVUFBVSxNQUFNO0FBQzlDLGNBQUksU0FBUyxNQUFNLFNBQVMsYUFBYSxXQUFXO0FBRWxELG1CQUFPO0FBQUE7QUFJVCxpQkFBTztBQUFBO0FBRVQsNENBQW9DLFVBQVU7QUFDNUMsY0FBSSxTQUFTLGFBQWEsY0FBYztBQUV0QyxtQkFBTztBQUFBO0FBSVQsaUJBQU87QUFBQTtBQUVULDJDQUFtQyxVQUFVO0FBQzNDLGlCQUFPLFNBQVMsU0FBUztBQUFBO0FBRTNCLDRDQUFvQyxVQUFVO0FBQzVDLGlCQUFPLFNBQVMsU0FBUztBQUFBO0FBRTNCLCtDQUF1QyxVQUFVLFVBQVU7QUFDekQsbUJBQVMsY0FBYztBQUFBO0FBR3pCLG1DQUEyQixNQUFNO0FBRS9CLGlCQUFPLFFBQVEsTUFBTSxPQUFPLEtBQUssYUFBYTtBQUM1QyxnQkFBSSxXQUFXLEtBQUs7QUFFcEIsZ0JBQUksYUFBYSxnQkFBZ0IsYUFBYSxXQUFXO0FBQ3ZEO0FBQUE7QUFHRjtBQUNFLGtCQUFJLGFBQWEsY0FBYztBQUM3QixvQkFBSSxXQUFXLEtBQUs7QUFFcEIsb0JBQUksYUFBYSx1QkFBdUIsYUFBYSxnQ0FBZ0MsYUFBYSw2QkFBNkI7QUFDN0g7QUFBQTtBQUdGLG9CQUFJLGFBQWEsbUJBQW1CO0FBQ2xDLHlCQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNZixpQkFBTztBQUFBO0FBR1QsMENBQWtDLFVBQVU7QUFDMUMsaUJBQU8sa0JBQWtCLFNBQVM7QUFBQTtBQUVwQyx5Q0FBaUMsZ0JBQWdCO0FBQy9DLGlCQUFPLGtCQUFrQixlQUFlO0FBQUE7QUFFMUMsd0RBQWdELGlCQUFpQjtBQUMvRCxpQkFBTyxrQkFBa0IsZ0JBQWdCO0FBQUE7QUFFM0MsK0RBQXVELGdCQUFnQjtBQUNyRSxpQkFBTyxrQkFBa0IsZUFBZTtBQUFBO0FBRTFDLGlDQUF5QixVQUFVLE1BQU0sT0FBTyx1QkFBdUIsYUFBYSx3QkFBd0IsZUFBZTtBQUN6SCw0QkFBa0Isd0JBQXdCO0FBRzFDLDJCQUFpQixVQUFVO0FBQzNCLGNBQUk7QUFFSjtBQUNFLGdCQUFJLGlCQUFpQjtBQUNyQiw4QkFBa0IsZUFBZTtBQUFBO0FBS25DLGNBQUksbUJBQW9CLHdCQUF1QixPQUFPLG9CQUFvQjtBQUMxRSxpQkFBTyx1QkFBdUIsVUFBVSxNQUFNLE9BQU8saUJBQWlCLHVCQUF1QixrQkFBa0I7QUFBQTtBQUVqSCxxQ0FBNkIsY0FBYyxNQUFNLHdCQUF3QixlQUFlO0FBQ3RGLDRCQUFrQix3QkFBd0I7QUFHMUMsY0FBSSxtQkFBb0Isd0JBQXVCLE9BQU8sb0JBQW9CO0FBQzFFLGlCQUFPLGlCQUFpQixjQUFjO0FBQUE7QUFFeEMseUNBQWlDLGtCQUFrQix3QkFBd0I7QUFDekUsNEJBQWtCLHdCQUF3QjtBQUFBO0FBRTVDLGdFQUF3RCxrQkFBa0I7QUFDeEUsY0FBSSxPQUFPLGlCQUFpQjtBQUk1QixjQUFJLFFBQVE7QUFFWixpQkFBTyxNQUFNO0FBQ1gsZ0JBQUksS0FBSyxhQUFhLGNBQWM7QUFDbEMsa0JBQUksT0FBTyxLQUFLO0FBRWhCLGtCQUFJLFNBQVMsbUJBQW1CO0FBQzlCLG9CQUFJLFVBQVUsR0FBRztBQUNmLHlCQUFPLHlCQUF5QjtBQUFBLHVCQUMzQjtBQUNMO0FBQUE7QUFBQSx5QkFFTyxTQUFTLHVCQUF1QixTQUFTLGdDQUFnQyxTQUFTLDZCQUE2QjtBQUN4SDtBQUFBO0FBQUE7QUFJSixtQkFBTyxLQUFLO0FBQUE7QUFJZCxpQkFBTztBQUFBO0FBS1QsMkNBQW1DLGdCQUFnQjtBQUNqRCxjQUFJLE9BQU8sZUFBZTtBQUkxQixjQUFJLFFBQVE7QUFFWixpQkFBTyxNQUFNO0FBQ1gsZ0JBQUksS0FBSyxhQUFhLGNBQWM7QUFDbEMsa0JBQUksT0FBTyxLQUFLO0FBRWhCLGtCQUFJLFNBQVMsdUJBQXVCLFNBQVMsZ0NBQWdDLFNBQVMsNkJBQTZCO0FBQ2pILG9CQUFJLFVBQVUsR0FBRztBQUNmLHlCQUFPO0FBQUEsdUJBQ0Y7QUFDTDtBQUFBO0FBQUEseUJBRU8sU0FBUyxtQkFBbUI7QUFDckM7QUFBQTtBQUFBO0FBSUosbUJBQU8sS0FBSztBQUFBO0FBR2QsaUJBQU87QUFBQTtBQUVULHlDQUFpQyxXQUFXO0FBRTFDLDJCQUFpQjtBQUFBO0FBRW5CLGdEQUF3QyxrQkFBa0I7QUFFeEQsMkJBQWlCO0FBQUE7QUFFbkIscURBQTZDLFlBQVk7QUFDdkQsaUJBQU8sZUFBZSxVQUFVLGVBQWU7QUFBQTtBQUVqRCwwREFBa0QsaUJBQWlCLGNBQWMsTUFBTSxrQkFBa0I7QUFDdkcsY0FBSSxnQkFBZ0I7QUFDcEIsZ0NBQXNCLGFBQWEsV0FBVyxNQUFNLGtCQUFrQjtBQUFBO0FBRXhFLGlEQUF5QyxZQUFZLGFBQWEsZ0JBQWdCLGNBQWMsTUFBTSxrQkFBa0I7QUFDdEgsY0FBSSxZQUFZLGtDQUFrQyxNQUFNO0FBQ3RELGdCQUFJLGdCQUFnQjtBQUNwQixrQ0FBc0IsYUFBYSxXQUFXLE1BQU0sa0JBQWtCO0FBQUE7QUFBQTtBQUcxRSxzREFBOEMsaUJBQWlCLFVBQVU7QUFDdkU7QUFDRSxnQkFBSSxTQUFTLGFBQWEsY0FBYztBQUN0Qyw4Q0FBZ0MsaUJBQWlCO0FBQUEsdUJBQ3hDLFNBQVMsYUFBYTtBQUFjO0FBQUEsaUJBQU87QUFDcEQsMkNBQTZCLGlCQUFpQjtBQUFBO0FBQUE7QUFBQTtBQUlwRCw2REFBcUQsZ0JBQWdCLFVBQVU7QUFDN0U7QUFFRSxnQkFBSSxhQUFhLGVBQWU7QUFFaEMsZ0JBQUksZUFBZSxNQUFNO0FBQ3ZCLGtCQUFJLFNBQVMsYUFBYSxjQUFjO0FBQ3RDLGdEQUFnQyxZQUFZO0FBQUEseUJBQ25DLFNBQVMsYUFBYTtBQUFjO0FBQUEsbUJBQU87QUFDcEQsNkNBQTZCLFlBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtqRCx1Q0FBK0IsWUFBWSxhQUFhLGdCQUFnQixVQUFVO0FBQ2hGLGNBQUssWUFBWSxrQ0FBa0MsTUFBTTtBQUN2RCxnQkFBSSxTQUFTLGFBQWEsY0FBYztBQUN0Qyw4Q0FBZ0MsZ0JBQWdCO0FBQUEsdUJBQ3ZDLFNBQVMsYUFBYTtBQUFjO0FBQUEsaUJBQU87QUFDcEQsMkNBQTZCLGdCQUFnQjtBQUFBO0FBQUE7QUFBQTtBQUluRCw2REFBcUQsaUJBQWlCLE1BQU0sT0FBTztBQUNqRjtBQUNFLDJDQUErQixpQkFBaUI7QUFBQTtBQUFBO0FBR3BELGlFQUF5RCxpQkFBaUIsTUFBTTtBQUM5RTtBQUNFLHdDQUE0QixpQkFBaUI7QUFBQTtBQUFBO0FBR2pELG9FQUE0RCxnQkFBZ0IsTUFBTSxPQUFPO0FBQ3ZGO0FBRUUsZ0JBQUksYUFBYSxlQUFlO0FBQ2hDLGdCQUFJLGVBQWU7QUFBTSw2Q0FBK0IsWUFBWTtBQUFBO0FBQUE7QUFHeEUsd0VBQWdFLGdCQUFnQixNQUFNO0FBQ3BGO0FBRUUsZ0JBQUksYUFBYSxlQUFlO0FBQ2hDLGdCQUFJLGVBQWU7QUFBTSwwQ0FBNEIsWUFBWTtBQUFBO0FBQUE7QUFHckUsOENBQXNDLFlBQVksYUFBYSxnQkFBZ0IsTUFBTSxPQUFPO0FBQzFGLGNBQUssWUFBWSxrQ0FBa0MsTUFBTTtBQUN2RCwyQ0FBK0IsZ0JBQWdCO0FBQUE7QUFBQTtBQUduRCxrREFBMEMsWUFBWSxhQUFhLGdCQUFnQixNQUFNO0FBQ3ZGLGNBQUssWUFBWSxrQ0FBa0MsTUFBTTtBQUN2RCx3Q0FBNEIsZ0JBQWdCO0FBQUE7QUFBQTtBQUdoRCxzREFBOEMsWUFBWSxhQUFhLGdCQUFnQjtBQUNyRixjQUFLLFlBQVksa0NBQWtDO0FBQU07QUFBQTtBQUUzRCx5Q0FBaUMsaUJBQWlCO0FBQ2hEO0FBR0Usa0JBQU0saUdBQWlHLGdCQUFnQixTQUFTO0FBQUE7QUFBQTtBQUdwSSxvQ0FBNEIsZ0JBQWdCO0FBQzFDLHFDQUEyQjtBQUFBO0FBRzdCLFlBQUksWUFBWSxLQUFLLFNBQVMsU0FBUyxJQUFJLE1BQU07QUFDakQsWUFBSSxzQkFBc0Isa0JBQWtCO0FBQzVDLFlBQUksbUJBQW1CLGtCQUFrQjtBQUN6QyxZQUFJLCtCQUErQixzQkFBc0I7QUFDekQsWUFBSSwyQkFBMkIsbUJBQW1CO0FBQ2xELFlBQUksbUNBQW1DLHNCQUFzQjtBQUM3RCxZQUFJLDZCQUE2QixvQkFBb0I7QUFDckQsdUNBQStCLE1BQU07QUFHbkMsaUJBQU8sS0FBSztBQUNaLGlCQUFPLEtBQUs7QUFDWixpQkFBTyxLQUFLO0FBQ1osaUJBQU8sS0FBSztBQUNaLGlCQUFPLEtBQUs7QUFBQTtBQUVkLG1DQUEyQixVQUFVLE1BQU07QUFDekMsZUFBSyx1QkFBdUI7QUFBQTtBQUU5QixxQ0FBNkIsVUFBVSxNQUFNO0FBQzNDLGVBQUssZ0NBQWdDO0FBQUE7QUFFdkMsdUNBQStCLE1BQU07QUFDbkMsZUFBSyxnQ0FBZ0M7QUFBQTtBQUV2Qyx5Q0FBaUMsTUFBTTtBQUNyQyxpQkFBTyxDQUFDLENBQUMsS0FBSztBQUFBO0FBU2hCLDRDQUFvQyxZQUFZO0FBQzlDLGNBQUksYUFBYSxXQUFXO0FBRTVCLGNBQUksWUFBWTtBQUVkLG1CQUFPO0FBQUE7QUFLVCxjQUFJLGFBQWEsV0FBVztBQUU1QixpQkFBTyxZQUFZO0FBU2pCLHlCQUFhLFdBQVcsaUNBQWlDLFdBQVc7QUFFcEUsZ0JBQUksWUFBWTtBQWNkLGtCQUFJLFlBQVksV0FBVztBQUUzQixrQkFBSSxXQUFXLFVBQVUsUUFBUSxjQUFjLFFBQVEsVUFBVSxVQUFVLE1BQU07QUFHL0Usb0JBQUksbUJBQW1CLDBCQUEwQjtBQUVqRCx1QkFBTyxxQkFBcUIsTUFBTTtBQVNoQyxzQkFBSSxxQkFBcUIsaUJBQWlCO0FBRTFDLHNCQUFJLG9CQUFvQjtBQUN0QiwyQkFBTztBQUFBO0FBT1QscUNBQW1CLDBCQUEwQjtBQUFBO0FBQUE7QUFNakQscUJBQU87QUFBQTtBQUdULHlCQUFhO0FBQ2IseUJBQWEsV0FBVztBQUFBO0FBRzFCLGlCQUFPO0FBQUE7QUFPVCxxQ0FBNkIsTUFBTTtBQUNqQyxjQUFJLE9BQU8sS0FBSyx3QkFBd0IsS0FBSztBQUU3QyxjQUFJLE1BQU07QUFDUixnQkFBSSxLQUFLLFFBQVEsaUJBQWlCLEtBQUssUUFBUSxZQUFZLEtBQUssUUFBUSxxQkFBcUIsS0FBSyxRQUFRLFVBQVU7QUFDbEgscUJBQU87QUFBQSxtQkFDRjtBQUNMLHFCQUFPO0FBQUE7QUFBQTtBQUlYLGlCQUFPO0FBQUE7QUFPVCxxQ0FBNkIsTUFBTTtBQUNqQyxjQUFJLEtBQUssUUFBUSxpQkFBaUIsS0FBSyxRQUFRLFVBQVU7QUFHdkQsbUJBQU8sS0FBSztBQUFBO0FBS2QsZ0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFFbEIsOENBQXNDLE1BQU07QUFDMUMsaUJBQU8sS0FBSyxxQkFBcUI7QUFBQTtBQUVuQyxrQ0FBMEIsTUFBTSxPQUFPO0FBQ3JDLGVBQUssb0JBQW9CO0FBQUE7QUFFM0IscUNBQTZCLE1BQU07QUFDakMsY0FBSSxxQkFBcUIsS0FBSztBQUU5QixjQUFJLHVCQUF1QixRQUFXO0FBQ3BDLGlDQUFxQixLQUFLLDRCQUE0QixJQUFJO0FBQUE7QUFHNUQsaUJBQU87QUFBQTtBQUdULFlBQUkscUJBQXFCO0FBQ3pCLFlBQUksMkJBQTJCLHFCQUFxQjtBQUVwRCwrQ0FBdUMsU0FBUztBQUM5QztBQUNFLGdCQUFJLFNBQVM7QUFDWCxrQkFBSSxRQUFRLFFBQVE7QUFDcEIsa0JBQUksUUFBUSxxQ0FBcUMsUUFBUSxNQUFNLFFBQVEsU0FBUyxRQUFRLE1BQU0sT0FBTztBQUNyRyx1Q0FBeUIsbUJBQW1CO0FBQUEsbUJBQ3ZDO0FBQ0wsdUNBQXlCLG1CQUFtQjtBQUFBO0FBQUE7QUFBQTtBQUtsRCxnQ0FBd0IsV0FBVyxRQUFRLFVBQVUsZUFBZSxTQUFTO0FBQzNFO0FBRUUsZ0JBQUksT0FBTSxTQUFTLEtBQUssS0FBSztBQUU3QixxQkFBUyxnQkFBZ0IsV0FBVztBQUNsQyxrQkFBSSxLQUFJLFdBQVcsZUFBZTtBQUNoQyxvQkFBSSxVQUFVO0FBSWQsb0JBQUk7QUFHRixzQkFBSSxPQUFPLFVBQVUsa0JBQWtCLFlBQVk7QUFFakQsd0JBQUksTUFBTSxNQUFPLGtCQUFpQixpQkFBaUIsT0FBTyxXQUFXLFlBQVksZUFBZSwrRkFBb0csT0FBTyxVQUFVLGdCQUFnQjtBQUNyTyx3QkFBSSxPQUFPO0FBQ1gsMEJBQU07QUFBQTtBQUdSLDRCQUFVLFVBQVUsY0FBYyxRQUFRLGNBQWMsZUFBZSxVQUFVLE1BQU07QUFBQSx5QkFDaEYsSUFBUDtBQUNBLDRCQUFVO0FBQUE7QUFHWixvQkFBSSxXQUFXLENBQUUsb0JBQW1CLFFBQVE7QUFDMUMsZ0RBQThCO0FBRTlCLHdCQUFNLDRSQUFxVCxpQkFBaUIsZUFBZSxVQUFVLGNBQWMsT0FBTztBQUUxWCxnREFBOEI7QUFBQTtBQUdoQyxvQkFBSSxtQkFBbUIsU0FBUyxDQUFFLFNBQVEsV0FBVyxxQkFBcUI7QUFHeEUscUNBQW1CLFFBQVEsV0FBVztBQUN0QyxnREFBOEI7QUFFOUIsd0JBQU0sc0JBQXNCLFVBQVUsUUFBUTtBQUU5QyxnREFBOEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT3hDLFlBQUksYUFBYTtBQUNqQixZQUFJO0FBRUo7QUFDRSx1QkFBYTtBQUFBO0FBR2YsWUFBSSxRQUFRO0FBRVosOEJBQXNCLGNBQWM7QUFDbEMsaUJBQU87QUFBQSxZQUNMLFNBQVM7QUFBQTtBQUFBO0FBSWIscUJBQWEsUUFBUSxPQUFPO0FBQzFCLGNBQUksUUFBUSxHQUFHO0FBQ2I7QUFDRSxvQkFBTTtBQUFBO0FBR1I7QUFBQTtBQUdGO0FBQ0UsZ0JBQUksVUFBVSxXQUFXLFFBQVE7QUFDL0Isb0JBQU07QUFBQTtBQUFBO0FBSVYsaUJBQU8sVUFBVSxXQUFXO0FBQzVCLHFCQUFXLFNBQVM7QUFFcEI7QUFDRSx1QkFBVyxTQUFTO0FBQUE7QUFHdEI7QUFBQTtBQUdGLHNCQUFjLFFBQVEsT0FBTyxPQUFPO0FBQ2xDO0FBQ0EscUJBQVcsU0FBUyxPQUFPO0FBRTNCO0FBQ0UsdUJBQVcsU0FBUztBQUFBO0FBR3RCLGlCQUFPLFVBQVU7QUFBQTtBQUduQixZQUFJO0FBRUo7QUFDRSw4Q0FBb0M7QUFBQTtBQUd0QyxZQUFJLHFCQUFxQjtBQUV6QjtBQUNFLGlCQUFPLE9BQU87QUFBQTtBQUloQixZQUFJLHFCQUFxQixhQUFhO0FBRXRDLFlBQUksNEJBQTRCLGFBQWE7QUFJN0MsWUFBSSxrQkFBa0I7QUFFdEIsb0NBQTRCLGlCQUFnQixXQUFXLDZCQUE2QjtBQUNsRjtBQUNFLGdCQUFJLCtCQUErQixrQkFBa0IsWUFBWTtBQUsvRCxxQkFBTztBQUFBO0FBR1QsbUJBQU8sbUJBQW1CO0FBQUE7QUFBQTtBQUk5Qiw4QkFBc0IsaUJBQWdCLGlCQUFpQixlQUFlO0FBQ3BFO0FBQ0UsZ0JBQUksV0FBVyxnQkFBZTtBQUM5QixxQkFBUyw4Q0FBOEM7QUFDdkQscUJBQVMsNENBQTRDO0FBQUE7QUFBQTtBQUl6RCxrQ0FBMEIsaUJBQWdCLGlCQUFpQjtBQUN6RDtBQUNFLGdCQUFJLE9BQU8sZ0JBQWU7QUFDMUIsZ0JBQUksZUFBZSxLQUFLO0FBRXhCLGdCQUFJLENBQUMsY0FBYztBQUNqQixxQkFBTztBQUFBO0FBTVQsZ0JBQUksV0FBVyxnQkFBZTtBQUU5QixnQkFBSSxZQUFZLFNBQVMsZ0RBQWdELGlCQUFpQjtBQUN4RixxQkFBTyxTQUFTO0FBQUE7QUFHbEIsZ0JBQUksVUFBVTtBQUVkLHFCQUFTLE9BQU8sY0FBYztBQUM1QixzQkFBUSxPQUFPLGdCQUFnQjtBQUFBO0FBR2pDO0FBQ0Usa0JBQUksT0FBTywwQkFBMEIsb0JBQW1CO0FBQ3hELDZCQUFlLGNBQWMsU0FBUyxXQUFXO0FBQUE7QUFLbkQsZ0JBQUksVUFBVTtBQUNaLDJCQUFhLGlCQUFnQixpQkFBaUI7QUFBQTtBQUdoRCxtQkFBTztBQUFBO0FBQUE7QUFJWCxxQ0FBNkI7QUFDM0I7QUFDRSxtQkFBTywwQkFBMEI7QUFBQTtBQUFBO0FBSXJDLG1DQUEyQixNQUFNO0FBQy9CO0FBQ0UsZ0JBQUksb0JBQW9CLEtBQUs7QUFDN0IsbUJBQU8sc0JBQXNCLFFBQVEsc0JBQXNCO0FBQUE7QUFBQTtBQUkvRCw0QkFBb0IsT0FBTztBQUN6QjtBQUNFLGdCQUFJLDJCQUEyQjtBQUMvQixnQkFBSSxvQkFBb0I7QUFBQTtBQUFBO0FBSTVCLDBDQUFrQyxPQUFPO0FBQ3ZDO0FBQ0UsZ0JBQUksMkJBQTJCO0FBQy9CLGdCQUFJLG9CQUFvQjtBQUFBO0FBQUE7QUFJNUIsMkNBQW1DLE9BQU8sU0FBUyxXQUFXO0FBQzVEO0FBQ0UsZ0JBQUksbUJBQW1CLFlBQVksb0JBQW9CO0FBQ3JELG9CQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLGlCQUFLLG9CQUFvQixTQUFTO0FBQ2xDLGlCQUFLLDJCQUEyQixXQUFXO0FBQUE7QUFBQTtBQUkvQyxxQ0FBNkIsT0FBTyxNQUFNLGVBQWU7QUFDdkQ7QUFDRSxnQkFBSSxXQUFXLE1BQU07QUFDckIsZ0JBQUksb0JBQW9CLEtBQUs7QUFHN0IsZ0JBQUksT0FBTyxTQUFTLG9CQUFvQixZQUFZO0FBQ2xEO0FBQ0Usb0JBQUksZ0JBQWdCLDBCQUEwQixVQUFVO0FBRXhELG9CQUFJLENBQUMsa0NBQWtDLGdCQUFnQjtBQUNyRCxvREFBa0MsaUJBQWlCO0FBRW5ELHdCQUFNLGtMQUE0TCxlQUFlO0FBQUE7QUFBQTtBQUlyTixxQkFBTztBQUFBO0FBR1QsZ0JBQUksZUFBZSxTQUFTO0FBRTVCLHFCQUFTLGNBQWMsY0FBYztBQUNuQyxrQkFBSSxDQUFFLGVBQWMsb0JBQW9CO0FBQ3RDLHNCQUFNLElBQUksTUFBTywyQkFBMEIsVUFBVSxhQUFhLDhCQUErQixhQUFhO0FBQUE7QUFBQTtBQUlsSDtBQUNFLGtCQUFJLE9BQU8sMEJBQTBCLFVBQVU7QUFDL0MsNkJBQWUsbUJBQW1CLGNBQWMsaUJBQWlCO0FBQUE7QUFHbkUsbUJBQU8sT0FBTyxJQUFJLGVBQWU7QUFBQTtBQUFBO0FBSXJDLHFDQUE2QixpQkFBZ0I7QUFDM0M7QUFDRSxnQkFBSSxXQUFXLGdCQUFlO0FBSTlCLGdCQUFJLDZCQUE2QixZQUFZLFNBQVMsNkNBQTZDO0FBR25HLDhCQUFrQixtQkFBbUI7QUFDckMsaUJBQUssb0JBQW9CLDRCQUE0QjtBQUNyRCxpQkFBSywyQkFBMkIsMEJBQTBCLFNBQVM7QUFDbkUsbUJBQU87QUFBQTtBQUFBO0FBSVgsMkNBQW1DLGlCQUFnQixNQUFNLFdBQVc7QUFDbEU7QUFDRSxnQkFBSSxXQUFXLGdCQUFlO0FBRTlCLGdCQUFJLENBQUMsVUFBVTtBQUNiLG9CQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLGdCQUFJLFdBQVc7QUFJYixrQkFBSSxnQkFBZ0Isb0JBQW9CLGlCQUFnQixNQUFNO0FBQzlELHVCQUFTLDRDQUE0QztBQUdyRCxrQkFBSSwyQkFBMkI7QUFDL0Isa0JBQUksb0JBQW9CO0FBRXhCLG1CQUFLLG9CQUFvQixlQUFlO0FBQ3hDLG1CQUFLLDJCQUEyQixXQUFXO0FBQUEsbUJBQ3RDO0FBQ0wsa0JBQUksMkJBQTJCO0FBQy9CLG1CQUFLLDJCQUEyQixXQUFXO0FBQUE7QUFBQTtBQUFBO0FBS2pELDRDQUFvQyxPQUFPO0FBQ3pDO0FBR0UsZ0JBQUksQ0FBQyxlQUFlLFVBQVUsTUFBTSxRQUFRLGdCQUFnQjtBQUMxRCxvQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQixnQkFBSSxPQUFPO0FBRVgsZUFBRztBQUNELHNCQUFRLEtBQUs7QUFBQSxxQkFDTjtBQUNILHlCQUFPLEtBQUssVUFBVTtBQUFBLHFCQUVuQixnQkFDSDtBQUNFLHNCQUFJLFlBQVksS0FBSztBQUVyQixzQkFBSSxrQkFBa0IsWUFBWTtBQUNoQywyQkFBTyxLQUFLLFVBQVU7QUFBQTtBQUd4QjtBQUFBO0FBQUE7QUFJTixxQkFBTyxLQUFLO0FBQUEscUJBQ0wsU0FBUztBQUVsQixrQkFBTSxJQUFJLE1BQU07QUFBQTtBQUFBO0FBSXBCLFlBQUksYUFBYTtBQUNqQixZQUFJLGlCQUFpQjtBQUVyQixZQUFJLFlBQVk7QUFDaEIsWUFBSSw4QkFBOEI7QUFDbEMsWUFBSSxzQkFBc0I7QUFDMUIsc0NBQThCLFVBQVU7QUFHdEMsY0FBSSxjQUFjLE1BQU07QUFDdEIsd0JBQVksQ0FBQztBQUFBLGlCQUNSO0FBR0wsc0JBQVUsS0FBSztBQUFBO0FBQUE7QUFHbkIsNENBQW9DLFVBQVU7QUFDNUMsd0NBQThCO0FBQzlCLCtCQUFxQjtBQUFBO0FBRXZCLHNEQUE4QztBQU01QyxjQUFJLDZCQUE2QjtBQUMvQjtBQUFBO0FBQUE7QUFHSixzQ0FBOEI7QUFDNUIsY0FBSSxDQUFDLHVCQUF1QixjQUFjLE1BQU07QUFFOUMsa0NBQXNCO0FBQ3RCLGdCQUFJLElBQUk7QUFDUixnQkFBSSx5QkFBeUI7QUFFN0IsZ0JBQUk7QUFDRixrQkFBSSxTQUFTO0FBQ2Isa0JBQUksUUFBUTtBQUdaLHVDQUF5QjtBQUV6QixxQkFBTyxJQUFJLE1BQU0sUUFBUSxLQUFLO0FBQzVCLG9CQUFJLFdBQVcsTUFBTTtBQUVyQixtQkFBRztBQUNELDZCQUFXLFNBQVM7QUFBQSx5QkFDYixhQUFhO0FBQUE7QUFHeEIsMEJBQVk7QUFDWiw0Q0FBOEI7QUFBQSxxQkFDdkIsUUFBUDtBQUVBLGtCQUFJLGNBQWMsTUFBTTtBQUN0Qiw0QkFBWSxVQUFVLE1BQU0sSUFBSTtBQUFBO0FBSWxDLCtCQUFpQixtQkFBbUI7QUFDcEMsb0JBQU07QUFBQSxzQkFDTjtBQUNBLHVDQUF5QjtBQUN6QixvQ0FBc0I7QUFBQTtBQUFBO0FBSTFCLGlCQUFPO0FBQUE7QUFHVCxZQUFJLDRCQUE0QixxQkFBcUI7QUFDckQsWUFBSSxlQUFlO0FBQ25CLDRDQUFvQztBQUNsQyxpQkFBTywwQkFBMEI7QUFBQTtBQUduQyxZQUFJLDBCQUEwQjtBQUFBLFVBQzVCLCtCQUErQixTQUFVLE9BQU8sVUFBVTtBQUFBO0FBQUEsVUFDMUQscUNBQXFDLFdBQVk7QUFBQTtBQUFBLFVBQ2pELDRCQUE0QixTQUFVLE9BQU8sVUFBVTtBQUFBO0FBQUEsVUFDdkQsMkJBQTJCLFdBQVk7QUFBQTtBQUFBLFVBQ3ZDLHdCQUF3QixXQUFZO0FBQUE7QUFBQTtBQUd0QztBQUNFLGNBQUksaUJBQWlCLFNBQVUsT0FBTztBQUNwQyxnQkFBSSxrQkFBa0I7QUFDdEIsZ0JBQUksT0FBTztBQUVYLG1CQUFPLFNBQVMsTUFBTTtBQUNwQixrQkFBSSxLQUFLLE9BQU8sa0JBQWtCO0FBQ2hDLGtDQUFrQjtBQUFBO0FBR3BCLHFCQUFPLEtBQUs7QUFBQTtBQUdkLG1CQUFPO0FBQUE7QUFHVCxjQUFJLG9CQUFvQixTQUFVLE1BQUs7QUFDckMsZ0JBQUksUUFBUTtBQUNaLGlCQUFJLFFBQVEsU0FBVSxPQUFPO0FBQzNCLG9CQUFNLEtBQUs7QUFBQTtBQUViLG1CQUFPLE1BQU0sT0FBTyxLQUFLO0FBQUE7QUFHM0IsY0FBSSxvQ0FBb0M7QUFDeEMsY0FBSSwyQ0FBMkM7QUFDL0MsY0FBSSwyQ0FBMkM7QUFDL0MsY0FBSSxrREFBa0Q7QUFDdEQsY0FBSSxxQ0FBcUM7QUFDekMsY0FBSSw0Q0FBNEM7QUFFaEQsY0FBSSwrQkFBK0IsSUFBSTtBQUV2QyxrQ0FBd0IsZ0NBQWdDLFNBQVUsT0FBTyxVQUFVO0FBRWpGLGdCQUFJLDZCQUE2QixJQUFJLE1BQU0sT0FBTztBQUNoRDtBQUFBO0FBR0YsZ0JBQUksT0FBTyxTQUFTLHVCQUF1QixjQUMzQyxTQUFTLG1CQUFtQixpQ0FBaUMsTUFBTTtBQUNqRSxnREFBa0MsS0FBSztBQUFBO0FBR3pDLGdCQUFJLE1BQU0sT0FBTyxvQkFBb0IsT0FBTyxTQUFTLDhCQUE4QixZQUFZO0FBQzdGLHVEQUF5QyxLQUFLO0FBQUE7QUFHaEQsZ0JBQUksT0FBTyxTQUFTLDhCQUE4QixjQUFjLFNBQVMsMEJBQTBCLGlDQUFpQyxNQUFNO0FBQ3hJLHVEQUF5QyxLQUFLO0FBQUE7QUFHaEQsZ0JBQUksTUFBTSxPQUFPLG9CQUFvQixPQUFPLFNBQVMscUNBQXFDLFlBQVk7QUFDcEcsOERBQWdELEtBQUs7QUFBQTtBQUd2RCxnQkFBSSxPQUFPLFNBQVMsd0JBQXdCLGNBQWMsU0FBUyxvQkFBb0IsaUNBQWlDLE1BQU07QUFDNUgsaURBQW1DLEtBQUs7QUFBQTtBQUcxQyxnQkFBSSxNQUFNLE9BQU8sb0JBQW9CLE9BQU8sU0FBUywrQkFBK0IsWUFBWTtBQUM5Rix3REFBMEMsS0FBSztBQUFBO0FBQUE7QUFJbkQsa0NBQXdCLHNDQUFzQyxXQUFZO0FBRXhFLGdCQUFJLGdDQUFnQyxJQUFJO0FBRXhDLGdCQUFJLGtDQUFrQyxTQUFTLEdBQUc7QUFDaEQsZ0RBQWtDLFFBQVEsU0FBVSxPQUFPO0FBQ3pELDhDQUE4QixJQUFJLDBCQUEwQixVQUFVO0FBQ3RFLDZDQUE2QixJQUFJLE1BQU07QUFBQTtBQUV6QyxrREFBb0M7QUFBQTtBQUd0QyxnQkFBSSx1Q0FBdUMsSUFBSTtBQUUvQyxnQkFBSSx5Q0FBeUMsU0FBUyxHQUFHO0FBQ3ZELHVEQUF5QyxRQUFRLFNBQVUsT0FBTztBQUNoRSxxREFBcUMsSUFBSSwwQkFBMEIsVUFBVTtBQUM3RSw2Q0FBNkIsSUFBSSxNQUFNO0FBQUE7QUFFekMseURBQTJDO0FBQUE7QUFHN0MsZ0JBQUksdUNBQXVDLElBQUk7QUFFL0MsZ0JBQUkseUNBQXlDLFNBQVMsR0FBRztBQUN2RCx1REFBeUMsUUFBUSxTQUFVLE9BQU87QUFDaEUscURBQXFDLElBQUksMEJBQTBCLFVBQVU7QUFDN0UsNkNBQTZCLElBQUksTUFBTTtBQUFBO0FBRXpDLHlEQUEyQztBQUFBO0FBRzdDLGdCQUFJLDhDQUE4QyxJQUFJO0FBRXRELGdCQUFJLGdEQUFnRCxTQUFTLEdBQUc7QUFDOUQsOERBQWdELFFBQVEsU0FBVSxPQUFPO0FBQ3ZFLDREQUE0QyxJQUFJLDBCQUEwQixVQUFVO0FBQ3BGLDZDQUE2QixJQUFJLE1BQU07QUFBQTtBQUV6QyxnRUFBa0Q7QUFBQTtBQUdwRCxnQkFBSSxpQ0FBaUMsSUFBSTtBQUV6QyxnQkFBSSxtQ0FBbUMsU0FBUyxHQUFHO0FBQ2pELGlEQUFtQyxRQUFRLFNBQVUsT0FBTztBQUMxRCwrQ0FBK0IsSUFBSSwwQkFBMEIsVUFBVTtBQUN2RSw2Q0FBNkIsSUFBSSxNQUFNO0FBQUE7QUFFekMsbURBQXFDO0FBQUE7QUFHdkMsZ0JBQUksd0NBQXdDLElBQUk7QUFFaEQsZ0JBQUksMENBQTBDLFNBQVMsR0FBRztBQUN4RCx3REFBMEMsUUFBUSxTQUFVLE9BQU87QUFDakUsc0RBQXNDLElBQUksMEJBQTBCLFVBQVU7QUFDOUUsNkNBQTZCLElBQUksTUFBTTtBQUFBO0FBRXpDLDBEQUE0QztBQUFBO0FBSzlDLGdCQUFJLHFDQUFxQyxPQUFPLEdBQUc7QUFDakQsa0JBQUksY0FBYyxrQkFBa0I7QUFFcEMsb0JBQU0sOFRBQTZVO0FBQUE7QUFHclYsZ0JBQUksNENBQTRDLE9BQU8sR0FBRztBQUN4RCxrQkFBSSxlQUFlLGtCQUFrQjtBQUVyQyxvQkFBTSxpZkFBb2hCO0FBQUE7QUFHNWhCLGdCQUFJLHNDQUFzQyxPQUFPLEdBQUc7QUFDbEQsa0JBQUksZ0JBQWdCLGtCQUFrQjtBQUV0QyxvQkFBTSxrU0FBc1Q7QUFBQTtBQUc5VCxnQkFBSSw4QkFBOEIsT0FBTyxHQUFHO0FBQzFDLGtCQUFJLGdCQUFnQixrQkFBa0I7QUFFdEMsbUJBQUssb2tCQUF1bUI7QUFBQTtBQUc5bUIsZ0JBQUkscUNBQXFDLE9BQU8sR0FBRztBQUNqRCxrQkFBSSxnQkFBZ0Isa0JBQWtCO0FBRXRDLG1CQUFLLHF3QkFBdXpCO0FBQUE7QUFHOXpCLGdCQUFJLCtCQUErQixPQUFPLEdBQUc7QUFDM0Msa0JBQUksZ0JBQWdCLGtCQUFrQjtBQUV0QyxtQkFBSywwaUJBQTZrQjtBQUFBO0FBQUE7QUFJdGxCLGNBQUksOEJBQThCLElBQUk7QUFFdEMsY0FBSSw0QkFBNEIsSUFBSTtBQUVwQyxrQ0FBd0IsNkJBQTZCLFNBQVUsT0FBTyxVQUFVO0FBQzlFLGdCQUFJLGFBQWEsZUFBZTtBQUVoQyxnQkFBSSxlQUFlLE1BQU07QUFDdkIsb0JBQU07QUFFTjtBQUFBO0FBSUYsZ0JBQUksMEJBQTBCLElBQUksTUFBTSxPQUFPO0FBQzdDO0FBQUE7QUFHRixnQkFBSSxrQkFBa0IsNEJBQTRCLElBQUk7QUFFdEQsZ0JBQUksTUFBTSxLQUFLLGdCQUFnQixRQUFRLE1BQU0sS0FBSyxxQkFBcUIsUUFBUSxhQUFhLFFBQVEsT0FBTyxTQUFTLG9CQUFvQixZQUFZO0FBQ2xKLGtCQUFJLG9CQUFvQixRQUFXO0FBQ2pDLGtDQUFrQjtBQUNsQiw0Q0FBNEIsSUFBSSxZQUFZO0FBQUE7QUFHOUMsOEJBQWdCLEtBQUs7QUFBQTtBQUFBO0FBSXpCLGtDQUF3Qiw0QkFBNEIsV0FBWTtBQUM5RCx3Q0FBNEIsUUFBUSxTQUFVLFlBQVksWUFBWTtBQUNwRSxrQkFBSSxXQUFXLFdBQVcsR0FBRztBQUMzQjtBQUFBO0FBR0Ysa0JBQUksYUFBYSxXQUFXO0FBQzVCLGtCQUFJLGNBQWMsSUFBSTtBQUN0Qix5QkFBVyxRQUFRLFNBQVUsT0FBTztBQUNsQyw0QkFBWSxJQUFJLDBCQUEwQixVQUFVO0FBQ3BELDBDQUEwQixJQUFJLE1BQU07QUFBQTtBQUV0QyxrQkFBSSxjQUFjLGtCQUFrQjtBQUVwQyxrQkFBSTtBQUNGLGdDQUFnQjtBQUVoQixzQkFBTSxvVEFBd1U7QUFBQSx3QkFDOVU7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUtOLGtDQUF3Qix5QkFBeUIsV0FBWTtBQUMzRCxnREFBb0M7QUFDcEMsdURBQTJDO0FBQzNDLHVEQUEyQztBQUMzQyw4REFBa0Q7QUFDbEQsaURBQXFDO0FBQ3JDLHdEQUE0QztBQUM1QywwQ0FBOEIsSUFBSTtBQUFBO0FBQUE7QUFJdEMscUNBQTZCLFdBQVcsV0FBVztBQUNqRCxjQUFJLGFBQWEsVUFBVSxjQUFjO0FBRXZDLGdCQUFJLFFBQVEsT0FBTyxJQUFJO0FBQ3ZCLGdCQUFJLGVBQWUsVUFBVTtBQUU3QixxQkFBUyxZQUFZLGNBQWM7QUFDakMsa0JBQUksTUFBTSxjQUFjLFFBQVc7QUFDakMsc0JBQU0sWUFBWSxhQUFhO0FBQUE7QUFBQTtBQUluQyxtQkFBTztBQUFBO0FBR1QsaUJBQU87QUFBQTtBQUdULFlBQUksY0FBYyxhQUFhO0FBQy9CLFlBQUk7QUFFSjtBQUVFLDBCQUFnQjtBQUFBO0FBR2xCLFlBQUksMEJBQTBCO0FBQzlCLFlBQUksd0JBQXdCO0FBQzVCLFlBQUksMkJBQTJCO0FBQy9CLFlBQUksK0JBQStCO0FBQ25DLDRDQUFvQztBQUdsQyxvQ0FBMEI7QUFDMUIsa0NBQXdCO0FBQ3hCLHFDQUEyQjtBQUUzQjtBQUNFLDJDQUErQjtBQUFBO0FBQUE7QUFHbkMsbURBQTJDO0FBQ3pDO0FBQ0UsMkNBQStCO0FBQUE7QUFBQTtBQUduQyxrREFBMEM7QUFDeEM7QUFDRSwyQ0FBK0I7QUFBQTtBQUFBO0FBR25DLDhCQUFzQixlQUFlLFNBQVMsV0FBVztBQUN2RDtBQUNFLGlCQUFLLGFBQWEsUUFBUSxlQUFlO0FBQ3pDLG9CQUFRLGdCQUFnQjtBQUV4QjtBQUNFLGtCQUFJLFFBQVEscUJBQXFCLFVBQWEsUUFBUSxxQkFBcUIsUUFBUSxRQUFRLHFCQUFxQixlQUFlO0FBQzdILHNCQUFNO0FBQUE7QUFHUixzQkFBUSxtQkFBbUI7QUFBQTtBQUFBO0FBQUE7QUFJakMsNkJBQXFCLFNBQVMsZUFBZTtBQUMzQyxjQUFJLGVBQWUsWUFBWTtBQUMvQixjQUFJLGFBQWE7QUFFakI7QUFDRTtBQUNFLHNCQUFRLGdCQUFnQjtBQUFBO0FBQUE7QUFBQTtBQUk5QixpREFBeUMsUUFBUSxjQUFhLGlCQUFpQjtBQUU3RSxjQUFJLE9BQU87QUFFWCxpQkFBTyxTQUFTLE1BQU07QUFDcEIsZ0JBQUksWUFBWSxLQUFLO0FBRXJCLGdCQUFJLENBQUMsZ0JBQWdCLEtBQUssWUFBWSxlQUFjO0FBQ2xELG1CQUFLLGFBQWEsV0FBVyxLQUFLLFlBQVk7QUFFOUMsa0JBQUksY0FBYyxNQUFNO0FBQ3RCLDBCQUFVLGFBQWEsV0FBVyxVQUFVLFlBQVk7QUFBQTtBQUFBLHVCQUVqRCxjQUFjLFFBQVEsQ0FBQyxnQkFBZ0IsVUFBVSxZQUFZLGVBQWM7QUFDcEYsd0JBQVUsYUFBYSxXQUFXLFVBQVUsWUFBWTtBQUFBO0FBRzFELGdCQUFJLFNBQVMsaUJBQWlCO0FBQzVCO0FBQUE7QUFHRixtQkFBTyxLQUFLO0FBQUE7QUFHZDtBQUNFLGdCQUFJLFNBQVMsaUJBQWlCO0FBQzVCLG9CQUFNO0FBQUE7QUFBQTtBQUFBO0FBSVosd0NBQWdDLGlCQUFnQixTQUFTLGNBQWE7QUFDcEU7QUFDRSx5Q0FBNkIsaUJBQWdCLFNBQVM7QUFBQTtBQUFBO0FBSTFELDhDQUFzQyxpQkFBZ0IsU0FBUyxjQUFhO0FBRTFFLGNBQUksUUFBUSxnQkFBZTtBQUUzQixjQUFJLFVBQVUsTUFBTTtBQUVsQixrQkFBTSxTQUFTO0FBQUE7QUFHakIsaUJBQU8sVUFBVSxNQUFNO0FBQ3JCLGdCQUFJLFlBQVk7QUFFaEIsZ0JBQUksT0FBTyxNQUFNO0FBRWpCLGdCQUFJLFNBQVMsTUFBTTtBQUNqQiwwQkFBWSxNQUFNO0FBQ2xCLGtCQUFJLGFBQWEsS0FBSztBQUV0QixxQkFBTyxlQUFlLE1BQU07QUFFMUIsb0JBQUksV0FBVyxZQUFZLFNBQVM7QUFFbEMsc0JBQUksTUFBTSxRQUFRLGdCQUFnQjtBQUVoQyx3QkFBSSxPQUFPLGtCQUFrQjtBQUM3Qix3QkFBSSxTQUFTLGFBQWEsYUFBYTtBQUN2QywyQkFBTyxNQUFNO0FBTWIsd0JBQUksY0FBYyxNQUFNO0FBRXhCLHdCQUFJLGdCQUFnQjtBQUFNO0FBQUEseUJBQU87QUFDL0IsMEJBQUksY0FBYyxZQUFZO0FBQzlCLDBCQUFJLFVBQVUsWUFBWTtBQUUxQiwwQkFBSSxZQUFZLE1BQU07QUFFcEIsK0JBQU8sT0FBTztBQUFBLDZCQUNUO0FBQ0wsK0JBQU8sT0FBTyxRQUFRO0FBQ3RCLGdDQUFRLE9BQU87QUFBQTtBQUdqQixrQ0FBWSxVQUFVO0FBQUE7QUFBQTtBQUkxQix3QkFBTSxRQUFRLFdBQVcsTUFBTSxPQUFPO0FBQ3RDLHNCQUFJLFlBQVksTUFBTTtBQUV0QixzQkFBSSxjQUFjLE1BQU07QUFDdEIsOEJBQVUsUUFBUSxXQUFXLFVBQVUsT0FBTztBQUFBO0FBR2hELGtEQUFnQyxNQUFNLFFBQVEsY0FBYTtBQUUzRCx1QkFBSyxRQUFRLFdBQVcsS0FBSyxPQUFPO0FBR3BDO0FBQUE7QUFHRiw2QkFBYSxXQUFXO0FBQUE7QUFBQSx1QkFFakIsTUFBTSxRQUFRLGlCQUFpQjtBQUV4QywwQkFBWSxNQUFNLFNBQVMsZ0JBQWUsT0FBTyxPQUFPLE1BQU07QUFBQSx1QkFDcEQsTUFBTSxRQUFRLG9CQUFvQjtBQUk1QyxrQkFBSSxpQkFBaUIsTUFBTTtBQUUzQixrQkFBSSxtQkFBbUIsTUFBTTtBQUMzQixzQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQiw2QkFBZSxRQUFRLFdBQVcsZUFBZSxPQUFPO0FBQ3hELGtCQUFJLGFBQWEsZUFBZTtBQUVoQyxrQkFBSSxlQUFlLE1BQU07QUFDdkIsMkJBQVcsUUFBUSxXQUFXLFdBQVcsT0FBTztBQUFBO0FBT2xELDhDQUFnQyxnQkFBZ0IsY0FBYTtBQUM3RCwwQkFBWSxNQUFNO0FBQUEsbUJBQ2I7QUFFTCwwQkFBWSxNQUFNO0FBQUE7QUFHcEIsZ0JBQUksY0FBYyxNQUFNO0FBRXRCLHdCQUFVLFNBQVM7QUFBQSxtQkFDZDtBQUVMLDBCQUFZO0FBRVoscUJBQU8sY0FBYyxNQUFNO0FBQ3pCLG9CQUFJLGNBQWMsaUJBQWdCO0FBRWhDLDhCQUFZO0FBQ1o7QUFBQTtBQUdGLG9CQUFJLFVBQVUsVUFBVTtBQUV4QixvQkFBSSxZQUFZLE1BQU07QUFFcEIsMEJBQVEsU0FBUyxVQUFVO0FBQzNCLDhCQUFZO0FBQ1o7QUFBQTtBQUlGLDRCQUFZLFVBQVU7QUFBQTtBQUFBO0FBSTFCLG9CQUFRO0FBQUE7QUFBQTtBQUdaLHNDQUE4QixpQkFBZ0IsY0FBYTtBQUN6RCxvQ0FBMEI7QUFDMUIsa0NBQXdCO0FBQ3hCLHFDQUEyQjtBQUMzQixjQUFJLGVBQWUsZ0JBQWU7QUFFbEMsY0FBSSxpQkFBaUIsTUFBTTtBQUN6QjtBQUNFLGtCQUFJLGVBQWUsYUFBYTtBQUVoQyxrQkFBSSxpQkFBaUIsTUFBTTtBQUN6QixvQkFBSSxpQkFBaUIsYUFBYSxPQUFPLGVBQWM7QUFFckQ7QUFBQTtBQUlGLDZCQUFhLGVBQWU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtwQyw2QkFBcUIsU0FBUztBQUM1QjtBQUdFLGdCQUFJLDhCQUE4QjtBQUNoQyxvQkFBTTtBQUFBO0FBQUE7QUFJVixjQUFJLFFBQVMsUUFBUTtBQUVyQixjQUFJLDZCQUE2QjtBQUFTO0FBQUEsZUFBTztBQUMvQyxnQkFBSSxjQUFjO0FBQUEsY0FDaEI7QUFBQSxjQUNBLGVBQWU7QUFBQSxjQUNmLE1BQU07QUFBQTtBQUdSLGdCQUFJLDBCQUEwQixNQUFNO0FBQ2xDLGtCQUFJLDRCQUE0QixNQUFNO0FBQ3BDLHNCQUFNLElBQUksTUFBTTtBQUFBO0FBSWxCLHNDQUF3QjtBQUN4QixzQ0FBd0IsZUFBZTtBQUFBLGdCQUNyQyxPQUFPO0FBQUEsZ0JBQ1AsY0FBYztBQUFBO0FBQUEsbUJBRVg7QUFFTCxzQ0FBd0Isc0JBQXNCLE9BQU87QUFBQTtBQUFBO0FBSXpELGlCQUFPO0FBQUE7QUFPVCxZQUFJLG9CQUFvQjtBQUN4QixzQ0FBOEIsT0FBTztBQUNuQyxjQUFJLHNCQUFzQixNQUFNO0FBQzlCLGdDQUFvQixDQUFDO0FBQUEsaUJBQ2hCO0FBQ0wsOEJBQWtCLEtBQUs7QUFBQTtBQUFBO0FBRzNCLDZDQUFxQztBQU1uQyxjQUFJLHNCQUFzQixNQUFNO0FBQzlCLHFCQUFTLElBQUksR0FBRyxJQUFJLGtCQUFrQixRQUFRLEtBQUs7QUFDakQsa0JBQUksUUFBUSxrQkFBa0I7QUFDOUIsa0JBQUksd0JBQXdCLE1BQU07QUFFbEMsa0JBQUksMEJBQTBCLE1BQU07QUFDbEMsc0JBQU0sY0FBYztBQUNwQixvQkFBSSx5QkFBeUIsc0JBQXNCO0FBQ25ELG9CQUFJLG9CQUFvQixNQUFNO0FBRTlCLG9CQUFJLHNCQUFzQixNQUFNO0FBQzlCLHNCQUFJLHFCQUFxQixrQkFBa0I7QUFDM0Msb0NBQWtCLE9BQU87QUFDekIsd0NBQXNCLE9BQU87QUFBQTtBQUcvQixzQkFBTSxVQUFVO0FBQUE7QUFBQTtBQUlwQixnQ0FBb0I7QUFBQTtBQUFBO0FBSXhCLFlBQUksY0FBYztBQUNsQixZQUFJLGVBQWU7QUFDbkIsWUFBSSxjQUFjO0FBQ2xCLFlBQUksZ0JBQWdCO0FBSXBCLFlBQUksaUJBQWlCO0FBQ3JCLFlBQUk7QUFDSixZQUFJO0FBRUo7QUFDRSxzQ0FBNEI7QUFDNUIscUNBQTJCO0FBQUE7QUFHN0IsdUNBQStCLE9BQU87QUFDcEMsY0FBSSxRQUFRO0FBQUEsWUFDVixXQUFXLE1BQU07QUFBQSxZQUNqQixpQkFBaUI7QUFBQSxZQUNqQixnQkFBZ0I7QUFBQSxZQUNoQixRQUFRO0FBQUEsY0FDTixTQUFTO0FBQUEsY0FDVCxhQUFhO0FBQUEsY0FDYixPQUFPO0FBQUE7QUFBQSxZQUVULFNBQVM7QUFBQTtBQUVYLGdCQUFNLGNBQWM7QUFBQTtBQUV0QixrQ0FBMEIsVUFBUyxpQkFBZ0I7QUFFakQsY0FBSSxRQUFRLGdCQUFlO0FBQzNCLGNBQUksZUFBZSxTQUFRO0FBRTNCLGNBQUksVUFBVSxjQUFjO0FBQzFCLGdCQUFJLFFBQVE7QUFBQSxjQUNWLFdBQVcsYUFBYTtBQUFBLGNBQ3hCLGlCQUFpQixhQUFhO0FBQUEsY0FDOUIsZ0JBQWdCLGFBQWE7QUFBQSxjQUM3QixRQUFRLGFBQWE7QUFBQSxjQUNyQixTQUFTLGFBQWE7QUFBQTtBQUV4Qiw0QkFBZSxjQUFjO0FBQUE7QUFBQTtBQUdqQyw4QkFBc0IsV0FBVyxNQUFNO0FBQ3JDLGNBQUksU0FBUztBQUFBLFlBQ1g7QUFBQSxZQUNBO0FBQUEsWUFDQSxLQUFLO0FBQUEsWUFDTCxTQUFTO0FBQUEsWUFDVCxVQUFVO0FBQUEsWUFDVixNQUFNO0FBQUE7QUFFUixpQkFBTztBQUFBO0FBRVQsK0JBQXVCLE9BQU8sUUFBUSxNQUFNO0FBQzFDLGNBQUksY0FBYyxNQUFNO0FBRXhCLGNBQUksZ0JBQWdCLE1BQU07QUFFeEI7QUFBQTtBQUdGLGNBQUksY0FBYyxZQUFZO0FBRTlCLGNBQUksb0JBQW9CLFFBQVE7QUFDOUIsZ0JBQUksY0FBYyxZQUFZO0FBRTlCLGdCQUFJLGdCQUFnQixNQUFNO0FBRXhCLHFCQUFPLE9BQU87QUFHZCxtQ0FBcUI7QUFBQSxtQkFDaEI7QUFDTCxxQkFBTyxPQUFPLFlBQVk7QUFDMUIsMEJBQVksT0FBTztBQUFBO0FBR3JCLHdCQUFZLGNBQWM7QUFBQSxpQkFDckI7QUFDTCxnQkFBSSxVQUFVLFlBQVk7QUFFMUIsZ0JBQUksWUFBWSxNQUFNO0FBRXBCLHFCQUFPLE9BQU87QUFBQSxtQkFDVDtBQUNMLHFCQUFPLE9BQU8sUUFBUTtBQUN0QixzQkFBUSxPQUFPO0FBQUE7QUFHakIsd0JBQVksVUFBVTtBQUFBO0FBR3hCO0FBQ0UsZ0JBQUksNkJBQTZCLGVBQWUsQ0FBQywyQkFBMkI7QUFDMUUsb0JBQU07QUFFTiwwQ0FBNEI7QUFBQTtBQUFBO0FBQUE7QUFJbEMscUNBQTZCLE9BQU0sT0FBTyxNQUFNO0FBQzlDLGNBQUksY0FBYyxNQUFNO0FBRXhCLGNBQUksZ0JBQWdCLE1BQU07QUFFeEI7QUFBQTtBQUdGLGNBQUksY0FBYyxZQUFZO0FBRTlCLGNBQUksaUJBQWlCLE9BQU87QUFDMUIsZ0JBQUksYUFBYSxZQUFZO0FBTTdCLHlCQUFhLGVBQWUsWUFBWSxNQUFLO0FBRTdDLGdCQUFJLGdCQUFnQixXQUFXLFlBQVk7QUFDM0Msd0JBQVksUUFBUTtBQUlwQiw4QkFBa0IsT0FBTTtBQUFBO0FBQUE7QUFHNUIsdUNBQStCLGlCQUFnQixnQkFBZ0I7QUFJN0QsY0FBSSxRQUFRLGdCQUFlO0FBRTNCLGNBQUksV0FBVSxnQkFBZTtBQUU3QixjQUFJLGFBQVksTUFBTTtBQUNwQixnQkFBSSxlQUFlLFNBQVE7QUFFM0IsZ0JBQUksVUFBVSxjQUFjO0FBTzFCLGtCQUFJLFdBQVc7QUFDZixrQkFBSSxVQUFVO0FBQ2Qsa0JBQUksa0JBQWtCLE1BQU07QUFFNUIsa0JBQUksb0JBQW9CLE1BQU07QUFFNUIsb0JBQUksU0FBUztBQUViLG1CQUFHO0FBQ0Qsc0JBQUksUUFBUTtBQUFBLG9CQUNWLFdBQVcsT0FBTztBQUFBLG9CQUNsQixNQUFNLE9BQU87QUFBQSxvQkFDYixLQUFLLE9BQU87QUFBQSxvQkFDWixTQUFTLE9BQU87QUFBQSxvQkFDaEIsVUFBVSxPQUFPO0FBQUEsb0JBQ2pCLE1BQU07QUFBQTtBQUdSLHNCQUFJLFlBQVksTUFBTTtBQUNwQiwrQkFBVyxVQUFVO0FBQUEseUJBQ2hCO0FBQ0wsNEJBQVEsT0FBTztBQUNmLDhCQUFVO0FBQUE7QUFHWiwyQkFBUyxPQUFPO0FBQUEseUJBQ1QsV0FBVztBQUdwQixvQkFBSSxZQUFZLE1BQU07QUFDcEIsNkJBQVcsVUFBVTtBQUFBLHVCQUNoQjtBQUNMLDBCQUFRLE9BQU87QUFDZiw0QkFBVTtBQUFBO0FBQUEscUJBRVA7QUFFTCwyQkFBVyxVQUFVO0FBQUE7QUFHdkIsc0JBQVE7QUFBQSxnQkFDTixXQUFXLGFBQWE7QUFBQSxnQkFDeEIsaUJBQWlCO0FBQUEsZ0JBQ2pCLGdCQUFnQjtBQUFBLGdCQUNoQixRQUFRLGFBQWE7QUFBQSxnQkFDckIsU0FBUyxhQUFhO0FBQUE7QUFFeEIsOEJBQWUsY0FBYztBQUM3QjtBQUFBO0FBQUE7QUFLSixjQUFJLGlCQUFpQixNQUFNO0FBRTNCLGNBQUksbUJBQW1CLE1BQU07QUFDM0Isa0JBQU0sa0JBQWtCO0FBQUEsaUJBQ25CO0FBQ0wsMkJBQWUsT0FBTztBQUFBO0FBR3hCLGdCQUFNLGlCQUFpQjtBQUFBO0FBR3pCLG9DQUE0QixpQkFBZ0IsT0FBTyxRQUFRLFdBQVcsV0FBVyxVQUFVO0FBQ3pGLGtCQUFRLE9BQU87QUFBQSxpQkFDUixjQUNIO0FBQ0Usa0JBQUksVUFBVSxPQUFPO0FBRXJCLGtCQUFJLE9BQU8sWUFBWSxZQUFZO0FBRWpDO0FBQ0U7QUFBQTtBQUdGLG9CQUFJLFlBQVksUUFBUSxLQUFLLFVBQVUsV0FBVztBQUVsRDtBQUNFLHNCQUFLLGdCQUFlLE9BQU8sa0JBQWtCO0FBQzNDLCtDQUEyQjtBQUUzQix3QkFBSTtBQUNGLDhCQUFRLEtBQUssVUFBVSxXQUFXO0FBQUEsOEJBQ2xDO0FBQ0EsaURBQTJCO0FBQUE7QUFBQTtBQUkvQjtBQUFBO0FBR0YsdUJBQU87QUFBQTtBQUlULHFCQUFPO0FBQUE7QUFBQSxpQkFHTixlQUNIO0FBQ0UsOEJBQWUsUUFBUSxnQkFBZSxRQUFRLENBQUMsZ0JBQWdCO0FBQUE7QUFBQSxpQkFJOUQsYUFDSDtBQUNFLGtCQUFJLFdBQVcsT0FBTztBQUN0QixrQkFBSTtBQUVKLGtCQUFJLE9BQU8sYUFBYSxZQUFZO0FBRWxDO0FBQ0U7QUFBQTtBQUdGLCtCQUFlLFNBQVMsS0FBSyxVQUFVLFdBQVc7QUFFbEQ7QUFDRSxzQkFBSyxnQkFBZSxPQUFPLGtCQUFrQjtBQUMzQywrQ0FBMkI7QUFFM0Isd0JBQUk7QUFDRiwrQkFBUyxLQUFLLFVBQVUsV0FBVztBQUFBLDhCQUNuQztBQUNBLGlEQUEyQjtBQUFBO0FBQUE7QUFJL0I7QUFBQTtBQUFBLHFCQUVHO0FBRUwsK0JBQWU7QUFBQTtBQUdqQixrQkFBSSxpQkFBaUIsUUFBUSxpQkFBaUIsUUFBVztBQUV2RCx1QkFBTztBQUFBO0FBSVQscUJBQU8sT0FBTyxJQUFJLFdBQVc7QUFBQTtBQUFBLGlCQUc1QixhQUNIO0FBQ0UsK0JBQWlCO0FBQ2pCLHFCQUFPO0FBQUE7QUFBQTtBQUliLGlCQUFPO0FBQUE7QUFHVCxvQ0FBNEIsaUJBQWdCLE9BQU8sVUFBVSxjQUFhO0FBRXhFLGNBQUksUUFBUSxnQkFBZTtBQUMzQiwyQkFBaUI7QUFFakI7QUFDRSx1Q0FBMkIsTUFBTTtBQUFBO0FBR25DLGNBQUksa0JBQWtCLE1BQU07QUFDNUIsY0FBSSxpQkFBaUIsTUFBTTtBQUUzQixjQUFJLGVBQWUsTUFBTSxPQUFPO0FBRWhDLGNBQUksaUJBQWlCLE1BQU07QUFDekIsa0JBQU0sT0FBTyxVQUFVO0FBR3ZCLGdCQUFJLG9CQUFvQjtBQUN4QixnQkFBSSxxQkFBcUIsa0JBQWtCO0FBQzNDLDhCQUFrQixPQUFPO0FBRXpCLGdCQUFJLG1CQUFtQixNQUFNO0FBQzNCLGdDQUFrQjtBQUFBLG1CQUNiO0FBQ0wsNkJBQWUsT0FBTztBQUFBO0FBR3hCLDZCQUFpQjtBQU1qQixnQkFBSSxXQUFVLGdCQUFlO0FBRTdCLGdCQUFJLGFBQVksTUFBTTtBQUVwQixrQkFBSSxlQUFlLFNBQVE7QUFDM0Isa0JBQUksd0JBQXdCLGFBQWE7QUFFekMsa0JBQUksMEJBQTBCLGdCQUFnQjtBQUM1QyxvQkFBSSwwQkFBMEIsTUFBTTtBQUNsQywrQkFBYSxrQkFBa0I7QUFBQSx1QkFDMUI7QUFDTCx3Q0FBc0IsT0FBTztBQUFBO0FBRy9CLDZCQUFhLGlCQUFpQjtBQUFBO0FBQUE7QUFBQTtBQU1wQyxjQUFJLG9CQUFvQixNQUFNO0FBRTVCLGdCQUFJLFdBQVcsTUFBTTtBQUdyQixnQkFBSSxXQUFXO0FBQ2YsZ0JBQUksZUFBZTtBQUNuQixnQkFBSSxxQkFBcUI7QUFDekIsZ0JBQUksb0JBQW9CO0FBQ3hCLGdCQUFJLFNBQVM7QUFFYixlQUFHO0FBQ0Qsa0JBQUksYUFBYSxPQUFPO0FBQ3hCLGtCQUFJLGtCQUFrQixPQUFPO0FBRTdCLGtCQUFJLENBQUMsZ0JBQWdCLGNBQWEsYUFBYTtBQUk3QyxvQkFBSSxRQUFRO0FBQUEsa0JBQ1YsV0FBVztBQUFBLGtCQUNYLE1BQU07QUFBQSxrQkFDTixLQUFLLE9BQU87QUFBQSxrQkFDWixTQUFTLE9BQU87QUFBQSxrQkFDaEIsVUFBVSxPQUFPO0FBQUEsa0JBQ2pCLE1BQU07QUFBQTtBQUdSLG9CQUFJLHNCQUFzQixNQUFNO0FBQzlCLHVDQUFxQixvQkFBb0I7QUFDekMsaUNBQWU7QUFBQSx1QkFDVjtBQUNMLHNDQUFvQixrQkFBa0IsT0FBTztBQUFBO0FBSS9DLDJCQUFXLFdBQVcsVUFBVTtBQUFBLHFCQUMzQjtBQUVMLG9CQUFJLHNCQUFzQixNQUFNO0FBQzlCLHNCQUFJLFNBQVM7QUFBQSxvQkFDWCxXQUFXO0FBQUEsb0JBSVgsTUFBTTtBQUFBLG9CQUNOLEtBQUssT0FBTztBQUFBLG9CQUNaLFNBQVMsT0FBTztBQUFBLG9CQUNoQixVQUFVLE9BQU87QUFBQSxvQkFDakIsTUFBTTtBQUFBO0FBRVIsc0NBQW9CLGtCQUFrQixPQUFPO0FBQUE7QUFJL0MsMkJBQVcsbUJBQW1CLGlCQUFnQixPQUFPLFFBQVEsVUFBVSxPQUFPO0FBQzlFLG9CQUFJLFdBQVcsT0FBTztBQUV0QixvQkFBSSxhQUFhLFFBRWpCLE9BQU8sU0FBUyxRQUFRO0FBQ3RCLGtDQUFlLFNBQVM7QUFDeEIsc0JBQUksVUFBVSxNQUFNO0FBRXBCLHNCQUFJLFlBQVksTUFBTTtBQUNwQiwwQkFBTSxVQUFVLENBQUM7QUFBQSx5QkFDWjtBQUNMLDRCQUFRLEtBQUs7QUFBQTtBQUFBO0FBQUE7QUFLbkIsdUJBQVMsT0FBTztBQUVoQixrQkFBSSxXQUFXLE1BQU07QUFDbkIsK0JBQWUsTUFBTSxPQUFPO0FBRTVCLG9CQUFJLGlCQUFpQixNQUFNO0FBQ3pCO0FBQUEsdUJBQ0s7QUFHTCxzQkFBSSxxQkFBcUI7QUFHekIsc0JBQUksc0JBQXNCLG1CQUFtQjtBQUM3QyxxQ0FBbUIsT0FBTztBQUMxQiwyQkFBUztBQUNULHdCQUFNLGlCQUFpQjtBQUN2Qix3QkFBTSxPQUFPLFVBQVU7QUFBQTtBQUFBO0FBQUEscUJBR3BCO0FBRVQsZ0JBQUksc0JBQXNCLE1BQU07QUFDOUIsNkJBQWU7QUFBQTtBQUdqQixrQkFBTSxZQUFZO0FBQ2xCLGtCQUFNLGtCQUFrQjtBQUN4QixrQkFBTSxpQkFBaUI7QUFJdkIsZ0JBQUksa0JBQWtCLE1BQU0sT0FBTztBQUVuQyxnQkFBSSxvQkFBb0IsTUFBTTtBQUM1QixrQkFBSSxjQUFjO0FBRWxCLGlCQUFHO0FBQ0QsMkJBQVcsV0FBVyxVQUFVLFlBQVk7QUFDNUMsOEJBQWMsWUFBWTtBQUFBLHVCQUNuQixnQkFBZ0I7QUFBQSx1QkFDaEIsb0JBQW9CLE1BQU07QUFHbkMsb0JBQU0sT0FBTyxRQUFRO0FBQUE7QUFVdkIsbUNBQXVCO0FBQ3ZCLDRCQUFlLFFBQVE7QUFDdkIsNEJBQWUsZ0JBQWdCO0FBQUE7QUFHakM7QUFDRSx1Q0FBMkI7QUFBQTtBQUFBO0FBSS9CLDhCQUFzQixVQUFVLFNBQVM7QUFDdkMsY0FBSSxPQUFPLGFBQWEsWUFBWTtBQUNsQyxrQkFBTSxJQUFJLE1BQU0sdUVBQXdFLGdCQUFlO0FBQUE7QUFHekcsbUJBQVMsS0FBSztBQUFBO0FBR2hCLHVEQUErQztBQUM3QywyQkFBaUI7QUFBQTtBQUVuQixzREFBOEM7QUFDNUMsaUJBQU87QUFBQTtBQUVULG1DQUEyQixjQUFjLGVBQWUsVUFBVTtBQUVoRSxjQUFJLFVBQVUsY0FBYztBQUM1Qix3QkFBYyxVQUFVO0FBRXhCLGNBQUksWUFBWSxNQUFNO0FBQ3BCLHFCQUFTLElBQUksR0FBRyxJQUFJLFFBQVEsUUFBUSxLQUFLO0FBQ3ZDLGtCQUFJLFNBQVMsUUFBUTtBQUNyQixrQkFBSSxXQUFXLE9BQU87QUFFdEIsa0JBQUksYUFBYSxNQUFNO0FBQ3JCLHVCQUFPLFdBQVc7QUFDbEIsNkJBQWEsVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTS9CLFlBQUksdUJBQXVCO0FBRzNCLFlBQUksa0JBQWtCLElBQUksT0FBTSxZQUFZO0FBQzVDLFlBQUk7QUFDSixZQUFJO0FBQ0osWUFBSTtBQUNKLFlBQUk7QUFDSixZQUFJO0FBQ0osWUFBSTtBQUNKLFlBQUk7QUFDSixZQUFJO0FBQ0osWUFBSTtBQUNKLFlBQUk7QUFFSjtBQUNFLG9EQUEwQyxJQUFJO0FBQzlDLDJDQUFpQyxJQUFJO0FBQ3JDLGdFQUFzRCxJQUFJO0FBQzFELHdEQUE4QyxJQUFJO0FBQ2xELHNEQUE0QyxJQUFJO0FBQ2hELDhDQUFvQyxJQUFJO0FBQ3hDLG1EQUF5QyxJQUFJO0FBQzdDLDhDQUFvQyxJQUFJO0FBQ3hDLGNBQUksMkJBQTJCLElBQUk7QUFFbkMsa0NBQXdCLFNBQVUsVUFBVSxZQUFZO0FBQ3RELGdCQUFJLGFBQWEsUUFBUSxPQUFPLGFBQWEsWUFBWTtBQUN2RDtBQUFBO0FBR0YsZ0JBQUksTUFBTSxhQUFhLE1BQU07QUFFN0IsZ0JBQUksQ0FBQyx5QkFBeUIsSUFBSSxNQUFNO0FBQ3RDLHVDQUF5QixJQUFJO0FBRTdCLG9CQUFNLG1HQUF3RyxZQUFZO0FBQUE7QUFBQTtBQUk5SCx3Q0FBOEIsU0FBVSxNQUFNLGNBQWM7QUFDMUQsZ0JBQUksaUJBQWlCLFFBQVc7QUFDOUIsa0JBQUksZ0JBQWdCLHlCQUF5QixTQUFTO0FBRXRELGtCQUFJLENBQUMsa0NBQWtDLElBQUksZ0JBQWdCO0FBQ3pELGtEQUFrQyxJQUFJO0FBRXRDLHNCQUFNLGdIQUFxSDtBQUFBO0FBQUE7QUFBQTtBQVVqSSxpQkFBTyxlQUFlLHNCQUFzQix3QkFBd0I7QUFBQSxZQUNsRSxZQUFZO0FBQUEsWUFDWixPQUFPLFdBQVk7QUFDakIsb0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFBQTtBQUdwQixpQkFBTyxPQUFPO0FBQUE7QUFHaEIsNENBQW9DLGlCQUFnQixNQUFNLDBCQUEwQixXQUFXO0FBQzdGLGNBQUksWUFBWSxnQkFBZTtBQUMvQixjQUFJLGVBQWUseUJBQXlCLFdBQVc7QUFFdkQ7QUFDRSxnQkFBSyxnQkFBZSxPQUFPLGtCQUFrQjtBQUMzQyx5Q0FBMkI7QUFFM0Isa0JBQUk7QUFFRiwrQkFBZSx5QkFBeUIsV0FBVztBQUFBLHdCQUNuRDtBQUNBLDJDQUEyQjtBQUFBO0FBQUE7QUFJL0Isd0NBQTRCLE1BQU07QUFBQTtBQUlwQyxjQUFJLGdCQUFnQixpQkFBaUIsUUFBUSxpQkFBaUIsU0FBWSxZQUFZLE9BQU8sSUFBSSxXQUFXO0FBQzVHLDBCQUFlLGdCQUFnQjtBQUcvQixjQUFJLGdCQUFlLFVBQVUsU0FBUztBQUVwQyxnQkFBSSxjQUFjLGdCQUFlO0FBQ2pDLHdCQUFZLFlBQVk7QUFBQTtBQUFBO0FBSTVCLFlBQUksd0JBQXdCO0FBQUEsVUFDMUI7QUFBQSxVQUNBLGlCQUFpQixTQUFVLE1BQU0sU0FBUyxVQUFVO0FBQ2xELGdCQUFJLFFBQVEsSUFBSTtBQUNoQixnQkFBSSxZQUFZO0FBQ2hCLGdCQUFJLE9BQU8sa0JBQWtCO0FBQzdCLGdCQUFJLFNBQVMsYUFBYSxXQUFXO0FBQ3JDLG1CQUFPLFVBQVU7QUFFakIsZ0JBQUksYUFBYSxVQUFhLGFBQWEsTUFBTTtBQUMvQztBQUNFLHNDQUFzQixVQUFVO0FBQUE7QUFHbEMscUJBQU8sV0FBVztBQUFBO0FBR3BCLDBCQUFjLE9BQU87QUFDckIsZ0JBQUksUUFBTyxzQkFBc0IsT0FBTyxNQUFNO0FBRTlDLGdCQUFJLFVBQVMsTUFBTTtBQUNqQixrQ0FBb0IsT0FBTSxPQUFPO0FBQUE7QUFHbkM7QUFDRSx1Q0FBeUIsT0FBTztBQUFBO0FBQUE7QUFBQSxVQUdwQyxxQkFBcUIsU0FBVSxNQUFNLFNBQVMsVUFBVTtBQUN0RCxnQkFBSSxRQUFRLElBQUk7QUFDaEIsZ0JBQUksWUFBWTtBQUNoQixnQkFBSSxPQUFPLGtCQUFrQjtBQUM3QixnQkFBSSxTQUFTLGFBQWEsV0FBVztBQUNyQyxtQkFBTyxNQUFNO0FBQ2IsbUJBQU8sVUFBVTtBQUVqQixnQkFBSSxhQUFhLFVBQWEsYUFBYSxNQUFNO0FBQy9DO0FBQ0Usc0NBQXNCLFVBQVU7QUFBQTtBQUdsQyxxQkFBTyxXQUFXO0FBQUE7QUFHcEIsMEJBQWMsT0FBTztBQUNyQixnQkFBSSxRQUFPLHNCQUFzQixPQUFPLE1BQU07QUFFOUMsZ0JBQUksVUFBUyxNQUFNO0FBQ2pCLGtDQUFvQixPQUFNLE9BQU87QUFBQTtBQUduQztBQUNFLHVDQUF5QixPQUFPO0FBQUE7QUFBQTtBQUFBLFVBR3BDLG9CQUFvQixTQUFVLE1BQU0sVUFBVTtBQUM1QyxnQkFBSSxRQUFRLElBQUk7QUFDaEIsZ0JBQUksWUFBWTtBQUNoQixnQkFBSSxPQUFPLGtCQUFrQjtBQUM3QixnQkFBSSxTQUFTLGFBQWEsV0FBVztBQUNyQyxtQkFBTyxNQUFNO0FBRWIsZ0JBQUksYUFBYSxVQUFhLGFBQWEsTUFBTTtBQUMvQztBQUNFLHNDQUFzQixVQUFVO0FBQUE7QUFHbEMscUJBQU8sV0FBVztBQUFBO0FBR3BCLDBCQUFjLE9BQU87QUFDckIsZ0JBQUksUUFBTyxzQkFBc0IsT0FBTyxNQUFNO0FBRTlDLGdCQUFJLFVBQVMsTUFBTTtBQUNqQixrQ0FBb0IsT0FBTSxPQUFPO0FBQUE7QUFHbkM7QUFDRSx1Q0FBeUIsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUt0Qyw0Q0FBb0MsaUJBQWdCLE1BQU0sVUFBVSxVQUFVLFVBQVUsVUFBVSxhQUFhO0FBQzdHLGNBQUksV0FBVyxnQkFBZTtBQUU5QixjQUFJLE9BQU8sU0FBUywwQkFBMEIsWUFBWTtBQUN4RCxnQkFBSSxlQUFlLFNBQVMsc0JBQXNCLFVBQVUsVUFBVTtBQUV0RTtBQUNFLGtCQUFLLGdCQUFlLE9BQU8sa0JBQWtCO0FBQzNDLDJDQUEyQjtBQUUzQixvQkFBSTtBQUVGLGlDQUFlLFNBQVMsc0JBQXNCLFVBQVUsVUFBVTtBQUFBLDBCQUNsRTtBQUNBLDZDQUEyQjtBQUFBO0FBQUE7QUFJL0Isa0JBQUksaUJBQWlCLFFBQVc7QUFDOUIsc0JBQU0saUhBQXNILHlCQUF5QixTQUFTO0FBQUE7QUFBQTtBQUlsSyxtQkFBTztBQUFBO0FBR1QsY0FBSSxLQUFLLGFBQWEsS0FBSyxVQUFVLHNCQUFzQjtBQUN6RCxtQkFBTyxDQUFDLGFBQWEsVUFBVSxhQUFhLENBQUMsYUFBYSxVQUFVO0FBQUE7QUFHdEUsaUJBQU87QUFBQTtBQUdULG9DQUE0QixpQkFBZ0IsTUFBTSxVQUFVO0FBQzFELGNBQUksV0FBVyxnQkFBZTtBQUU5QjtBQUNFLGdCQUFJLE9BQU8seUJBQXlCLFNBQVM7QUFDN0MsZ0JBQUksZ0JBQWdCLFNBQVM7QUFFN0IsZ0JBQUksQ0FBQyxlQUFlO0FBQ2xCLGtCQUFJLEtBQUssYUFBYSxPQUFPLEtBQUssVUFBVSxXQUFXLFlBQVk7QUFDakUsc0JBQU0scUlBQTBJO0FBQUEscUJBQzNJO0FBQ0wsc0JBQU0sb0hBQXlIO0FBQUE7QUFBQTtBQUluSSxnQkFBSSxTQUFTLG1CQUFtQixDQUFDLFNBQVMsZ0JBQWdCLHdCQUF3QixDQUFDLFNBQVMsT0FBTztBQUNqRyxvQkFBTSxxTEFBK0w7QUFBQTtBQUd2TSxnQkFBSSxTQUFTLG1CQUFtQixDQUFDLFNBQVMsZ0JBQWdCLHNCQUFzQjtBQUM5RSxvQkFBTSwwTEFBb007QUFBQTtBQUc1TSxnQkFBSSxTQUFTLFdBQVc7QUFDdEIsb0JBQU0sMkdBQWdIO0FBQUE7QUFHeEgsZ0JBQUksU0FBUyxhQUFhO0FBQ3hCLG9CQUFNLCtHQUFvSDtBQUFBO0FBRzVIO0FBQ0Usa0JBQUksU0FBUyxjQUFjO0FBQ3pCLHNCQUFNLGlIQUFzSDtBQUFBO0FBRzlILGtCQUFJLEtBQUssZUFBZSxLQUFLLGdCQUFnQixDQUFDLHVDQUF1QyxJQUFJLE9BQU87QUFDOUYsdURBQXVDLElBQUk7QUFFM0Msc0JBQU0sc0hBQTJIO0FBQUE7QUFBQTtBQUlySSxnQkFBSSxPQUFPLFNBQVMsMEJBQTBCLFlBQVk7QUFDeEQsb0JBQU0sK0tBQThMO0FBQUE7QUFHdE0sZ0JBQUksS0FBSyxhQUFhLEtBQUssVUFBVSx3QkFBd0IsT0FBTyxTQUFTLDBCQUEwQixhQUFhO0FBQ2xILG9CQUFNLGdNQUEwTSx5QkFBeUIsU0FBUztBQUFBO0FBR3BQLGdCQUFJLE9BQU8sU0FBUyx3QkFBd0IsWUFBWTtBQUN0RCxvQkFBTSw2SEFBdUk7QUFBQTtBQUcvSSxnQkFBSSxPQUFPLFNBQVMsNkJBQTZCLFlBQVk7QUFDM0Qsb0JBQU0sb1RBQXdVO0FBQUE7QUFHaFYsZ0JBQUksT0FBTyxTQUFTLDhCQUE4QixZQUFZO0FBQzVELG9CQUFNLGlHQUFzRztBQUFBO0FBRzlHLGdCQUFJLE9BQU8sU0FBUyxxQ0FBcUMsWUFBWTtBQUNuRSxvQkFBTSwrR0FBb0g7QUFBQTtBQUc1SCxnQkFBSSxrQkFBa0IsU0FBUyxVQUFVO0FBRXpDLGdCQUFJLFNBQVMsVUFBVSxVQUFhLGlCQUFpQjtBQUNuRCxvQkFBTSw0SEFBaUksTUFBTTtBQUFBO0FBRy9JLGdCQUFJLFNBQVMsY0FBYztBQUN6QixvQkFBTSxxSkFBMEosTUFBTTtBQUFBO0FBR3hLLGdCQUFJLE9BQU8sU0FBUyw0QkFBNEIsY0FBYyxPQUFPLFNBQVMsdUJBQXVCLGNBQWMsQ0FBQyxvREFBb0QsSUFBSSxPQUFPO0FBQ2pMLGtFQUFvRCxJQUFJO0FBRXhELG9CQUFNLGtJQUF1SSx5QkFBeUI7QUFBQTtBQUd4SyxnQkFBSSxPQUFPLFNBQVMsNkJBQTZCLFlBQVk7QUFDM0Qsb0JBQU0sZ0lBQXFJO0FBQUE7QUFHN0ksZ0JBQUksT0FBTyxTQUFTLDZCQUE2QixZQUFZO0FBQzNELG9CQUFNLGdJQUFxSTtBQUFBO0FBRzdJLGdCQUFJLE9BQU8sS0FBSyw0QkFBNEIsWUFBWTtBQUN0RCxvQkFBTSwrSEFBb0k7QUFBQTtBQUc1SSxnQkFBSSxTQUFTLFNBQVM7QUFFdEIsZ0JBQUksVUFBVyxRQUFPLFdBQVcsWUFBWSxRQUFRLFVBQVU7QUFDN0Qsb0JBQU0sOENBQThDO0FBQUE7QUFHdEQsZ0JBQUksT0FBTyxTQUFTLG9CQUFvQixjQUFjLE9BQU8sS0FBSyxzQkFBc0IsVUFBVTtBQUNoRyxvQkFBTSw4RkFBbUc7QUFBQTtBQUFBO0FBQUE7QUFLL0csb0NBQTRCLGlCQUFnQixVQUFVO0FBQ3BELG1CQUFTLFVBQVU7QUFDbkIsMEJBQWUsWUFBWTtBQUUzQixjQUFJLFVBQVU7QUFFZDtBQUNFLHFCQUFTLHlCQUF5QjtBQUFBO0FBQUE7QUFJdEMsd0NBQWdDLGlCQUFnQixNQUFNLE9BQU87QUFDM0QsY0FBSSwwQkFBMEI7QUFDOUIsY0FBSSxrQkFBa0I7QUFDdEIsY0FBSSxVQUFVO0FBQ2QsY0FBSSxjQUFjLEtBQUs7QUFFdkI7QUFDRSxnQkFBSSxpQkFBaUIsTUFBTTtBQUN6QixrQkFBSSxVQUNKLGdCQUFnQixRQUFRLGdCQUFnQixVQUFhLFlBQVksYUFBYSxzQkFBc0IsWUFBWSxhQUFhO0FBRTdILGtCQUFJLENBQUMsV0FBVyxDQUFDLGtDQUFrQyxJQUFJLE9BQU87QUFDNUQsa0RBQWtDLElBQUk7QUFDdEMsb0JBQUksV0FBVztBQUVmLG9CQUFJLGdCQUFnQixRQUFXO0FBQzdCLDZCQUFXO0FBQUEsMkJBQ0YsT0FBTyxnQkFBZ0IsVUFBVTtBQUMxQyw2QkFBVyw4QkFBOEIsT0FBTyxjQUFjO0FBQUEsMkJBQ3JELFlBQVksYUFBYSxxQkFBcUI7QUFDdkQsNkJBQVc7QUFBQSwyQkFDRixZQUFZLGFBQWEsUUFBVztBQUU3Qyw2QkFBVztBQUFBLHVCQUNOO0FBQ0wsNkJBQVcsaURBQWlELE9BQU8sS0FBSyxhQUFhLEtBQUssUUFBUTtBQUFBO0FBR3BHLHNCQUFNLDBIQUErSCx5QkFBeUIsU0FBUyxhQUFhO0FBQUE7QUFBQTtBQUFBO0FBSzFMLGNBQUksT0FBTyxnQkFBZ0IsWUFBWSxnQkFBZ0IsTUFBTTtBQUMzRCxzQkFBVSxZQUFZO0FBQUEsaUJBQ2pCO0FBQ0wsOEJBQWtCLG1CQUFtQixpQkFBZ0IsTUFBTTtBQUMzRCxnQkFBSSxlQUFlLEtBQUs7QUFDeEIsc0NBQTBCLGlCQUFpQixRQUFRLGlCQUFpQjtBQUNwRSxzQkFBVSwwQkFBMEIsaUJBQWlCLGlCQUFnQixtQkFBbUI7QUFBQTtBQUcxRixjQUFJLFdBQVcsSUFBSSxLQUFLLE9BQU87QUFFL0I7QUFDRSxnQkFBSyxnQkFBZSxPQUFPLGtCQUFrQjtBQUMzQyx5Q0FBMkI7QUFFM0Isa0JBQUk7QUFDRiwyQkFBVyxJQUFJLEtBQUssT0FBTztBQUFBLHdCQUMzQjtBQUNBLDJDQUEyQjtBQUFBO0FBQUE7QUFBQTtBQUtqQyxjQUFJLFFBQVEsZ0JBQWUsZ0JBQWdCLFNBQVMsVUFBVSxRQUFRLFNBQVMsVUFBVSxTQUFZLFNBQVMsUUFBUTtBQUN0SCw2QkFBbUIsaUJBQWdCO0FBRW5DO0FBQ0UsZ0JBQUksT0FBTyxLQUFLLDZCQUE2QixjQUFjLFVBQVUsTUFBTTtBQUN6RSxrQkFBSSxnQkFBZ0IseUJBQXlCLFNBQVM7QUFFdEQsa0JBQUksQ0FBQywrQkFBK0IsSUFBSSxnQkFBZ0I7QUFDdEQsK0NBQStCLElBQUk7QUFFbkMsc0JBQU0sbVJBQWtTLGVBQWUsU0FBUyxVQUFVLE9BQU8sU0FBUyxhQUFhO0FBQUE7QUFBQTtBQU8zVyxnQkFBSSxPQUFPLEtBQUssNkJBQTZCLGNBQWMsT0FBTyxTQUFTLDRCQUE0QixZQUFZO0FBQ2pILGtCQUFJLHFCQUFxQjtBQUN6QixrQkFBSSw0QkFBNEI7QUFDaEMsa0JBQUksc0JBQXNCO0FBRTFCLGtCQUFJLE9BQU8sU0FBUyx1QkFBdUIsY0FBYyxTQUFTLG1CQUFtQixpQ0FBaUMsTUFBTTtBQUMxSCxxQ0FBcUI7QUFBQSx5QkFDWixPQUFPLFNBQVMsOEJBQThCLFlBQVk7QUFDbkUscUNBQXFCO0FBQUE7QUFHdkIsa0JBQUksT0FBTyxTQUFTLDhCQUE4QixjQUFjLFNBQVMsMEJBQTBCLGlDQUFpQyxNQUFNO0FBQ3hJLDRDQUE0QjtBQUFBLHlCQUNuQixPQUFPLFNBQVMscUNBQXFDLFlBQVk7QUFDMUUsNENBQTRCO0FBQUE7QUFHOUIsa0JBQUksT0FBTyxTQUFTLHdCQUF3QixjQUFjLFNBQVMsb0JBQW9CLGlDQUFpQyxNQUFNO0FBQzVILHNDQUFzQjtBQUFBLHlCQUNiLE9BQU8sU0FBUywrQkFBK0IsWUFBWTtBQUNwRSxzQ0FBc0I7QUFBQTtBQUd4QixrQkFBSSx1QkFBdUIsUUFBUSw4QkFBOEIsUUFBUSx3QkFBd0IsTUFBTTtBQUNyRyxvQkFBSSxpQkFBaUIseUJBQXlCLFNBQVM7QUFFdkQsb0JBQUksYUFBYSxPQUFPLEtBQUssNkJBQTZCLGFBQWEsK0JBQStCO0FBRXRHLG9CQUFJLENBQUMsNENBQTRDLElBQUksaUJBQWlCO0FBQ3BFLDhEQUE0QyxJQUFJO0FBRWhELHdCQUFNLG9TQUFtVCxnQkFBZ0IsWUFBWSx1QkFBdUIsT0FBTyxTQUFTLHFCQUFxQixJQUFJLDhCQUE4QixPQUFPLFNBQVMsNEJBQTRCLElBQUksd0JBQXdCLE9BQU8sU0FBUyxzQkFBc0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVF6aUIsY0FBSSx5QkFBeUI7QUFDM0IseUJBQWEsaUJBQWdCLGlCQUFpQjtBQUFBO0FBR2hELGlCQUFPO0FBQUE7QUFHVCx3Q0FBZ0MsaUJBQWdCLFVBQVU7QUFDeEQsY0FBSSxXQUFXLFNBQVM7QUFFeEIsY0FBSSxPQUFPLFNBQVMsdUJBQXVCLFlBQVk7QUFDckQscUJBQVM7QUFBQTtBQUdYLGNBQUksT0FBTyxTQUFTLDhCQUE4QixZQUFZO0FBQzVELHFCQUFTO0FBQUE7QUFHWCxjQUFJLGFBQWEsU0FBUyxPQUFPO0FBQy9CO0FBQ0Usb0JBQU0sNElBQXNKLDBCQUEwQixvQkFBbUI7QUFBQTtBQUczTSxrQ0FBc0Isb0JBQW9CLFVBQVUsU0FBUyxPQUFPO0FBQUE7QUFBQTtBQUl4RSwrQ0FBdUMsaUJBQWdCLFVBQVUsVUFBVSxhQUFhO0FBQ3RGLGNBQUksV0FBVyxTQUFTO0FBRXhCLGNBQUksT0FBTyxTQUFTLDhCQUE4QixZQUFZO0FBQzVELHFCQUFTLDBCQUEwQixVQUFVO0FBQUE7QUFHL0MsY0FBSSxPQUFPLFNBQVMscUNBQXFDLFlBQVk7QUFDbkUscUJBQVMsaUNBQWlDLFVBQVU7QUFBQTtBQUd0RCxjQUFJLFNBQVMsVUFBVSxVQUFVO0FBQy9CO0FBQ0Usa0JBQUksZ0JBQWdCLDBCQUEwQixvQkFBbUI7QUFFakUsa0JBQUksQ0FBQyx3Q0FBd0MsSUFBSSxnQkFBZ0I7QUFDL0Qsd0RBQXdDLElBQUk7QUFFNUMsc0JBQU0sbUpBQTZKO0FBQUE7QUFBQTtBQUl2SyxrQ0FBc0Isb0JBQW9CLFVBQVUsU0FBUyxPQUFPO0FBQUE7QUFBQTtBQUt4RSxvQ0FBNEIsaUJBQWdCLE1BQU0sVUFBVSxjQUFhO0FBQ3ZFO0FBQ0UsK0JBQW1CLGlCQUFnQixNQUFNO0FBQUE7QUFHM0MsY0FBSSxXQUFXLGdCQUFlO0FBQzlCLG1CQUFTLFFBQVE7QUFDakIsbUJBQVMsUUFBUSxnQkFBZTtBQUNoQyxtQkFBUyxPQUFPO0FBQ2hCLGdDQUFzQjtBQUN0QixjQUFJLGNBQWMsS0FBSztBQUV2QixjQUFJLE9BQU8sZ0JBQWdCLFlBQVksZ0JBQWdCLE1BQU07QUFDM0QscUJBQVMsVUFBVSxZQUFZO0FBQUEsaUJBQzFCO0FBQ0wsZ0JBQUksa0JBQWtCLG1CQUFtQixpQkFBZ0IsTUFBTTtBQUMvRCxxQkFBUyxVQUFVLGlCQUFpQixpQkFBZ0I7QUFBQTtBQUd0RDtBQUNFLGdCQUFJLFNBQVMsVUFBVSxVQUFVO0FBQy9CLGtCQUFJLGdCQUFnQix5QkFBeUIsU0FBUztBQUV0RCxrQkFBSSxDQUFDLDBDQUEwQyxJQUFJLGdCQUFnQjtBQUNqRSwwREFBMEMsSUFBSTtBQUU5QyxzQkFBTSx3S0FBa0w7QUFBQTtBQUFBO0FBSTVMLGdCQUFJLGdCQUFlLE9BQU8sa0JBQWtCO0FBQzFDLHNDQUF3QiwyQkFBMkIsaUJBQWdCO0FBQUE7QUFHckU7QUFDRSxzQ0FBd0IsOEJBQThCLGlCQUFnQjtBQUFBO0FBQUE7QUFJMUUsbUJBQVMsUUFBUSxnQkFBZTtBQUNoQyxjQUFJLDJCQUEyQixLQUFLO0FBRXBDLGNBQUksT0FBTyw2QkFBNkIsWUFBWTtBQUNsRCx1Q0FBMkIsaUJBQWdCLE1BQU0sMEJBQTBCO0FBQzNFLHFCQUFTLFFBQVEsZ0JBQWU7QUFBQTtBQUtsQyxjQUFJLE9BQU8sS0FBSyw2QkFBNkIsY0FBYyxPQUFPLFNBQVMsNEJBQTRCLGNBQWUsUUFBTyxTQUFTLDhCQUE4QixjQUFjLE9BQU8sU0FBUyx1QkFBdUIsYUFBYTtBQUNwTyxtQ0FBdUIsaUJBQWdCO0FBR3ZDLCtCQUFtQixpQkFBZ0IsVUFBVSxVQUFVO0FBQ3ZELHFCQUFTLFFBQVEsZ0JBQWU7QUFBQTtBQUdsQyxjQUFJLE9BQU8sU0FBUyxzQkFBc0IsWUFBWTtBQUNwRCxnQkFBSSxhQUFhO0FBRWpCO0FBQ0UsNEJBQWM7QUFBQTtBQUdoQixnQkFBTSxpQkFBZSxPQUFPLHVCQUF1QixRQUFRO0FBQ3pELDRCQUFjO0FBQUE7QUFHaEIsNEJBQWUsU0FBUztBQUFBO0FBQUE7QUFJNUIsMENBQWtDLGlCQUFnQixNQUFNLFVBQVUsY0FBYTtBQUM3RSxjQUFJLFdBQVcsZ0JBQWU7QUFDOUIsY0FBSSxXQUFXLGdCQUFlO0FBQzlCLG1CQUFTLFFBQVE7QUFDakIsY0FBSSxhQUFhLFNBQVM7QUFDMUIsY0FBSSxjQUFjLEtBQUs7QUFDdkIsY0FBSSxjQUFjO0FBRWxCLGNBQUksT0FBTyxnQkFBZ0IsWUFBWSxnQkFBZ0IsTUFBTTtBQUMzRCwwQkFBYyxZQUFZO0FBQUEsaUJBQ3JCO0FBQ0wsZ0JBQUksNEJBQTRCLG1CQUFtQixpQkFBZ0IsTUFBTTtBQUN6RSwwQkFBYyxpQkFBaUIsaUJBQWdCO0FBQUE7QUFHakQsY0FBSSwyQkFBMkIsS0FBSztBQUNwQyxjQUFJLG1CQUFtQixPQUFPLDZCQUE2QixjQUFjLE9BQU8sU0FBUyw0QkFBNEI7QUFNckgsY0FBSSxDQUFDLG9CQUFxQixRQUFPLFNBQVMscUNBQXFDLGNBQWMsT0FBTyxTQUFTLDhCQUE4QixhQUFhO0FBQ3RKLGdCQUFJLGFBQWEsWUFBWSxlQUFlLGFBQWE7QUFDdkQsNENBQThCLGlCQUFnQixVQUFVLFVBQVU7QUFBQTtBQUFBO0FBSXRFO0FBQ0EsY0FBSSxXQUFXLGdCQUFlO0FBQzlCLGNBQUksV0FBVyxTQUFTLFFBQVE7QUFDaEMsNkJBQW1CLGlCQUFnQixVQUFVLFVBQVU7QUFDdkQscUJBQVcsZ0JBQWU7QUFFMUIsY0FBSSxhQUFhLFlBQVksYUFBYSxZQUFZLENBQUMsdUJBQXVCLENBQUMsc0NBQXNDO0FBR25ILGdCQUFJLE9BQU8sU0FBUyxzQkFBc0IsWUFBWTtBQUNwRCxrQkFBSSxhQUFhO0FBRWpCO0FBQ0UsOEJBQWM7QUFBQTtBQUdoQixrQkFBTSxpQkFBZSxPQUFPLHVCQUF1QixRQUFRO0FBQ3pELDhCQUFjO0FBQUE7QUFHaEIsOEJBQWUsU0FBUztBQUFBO0FBRzFCLG1CQUFPO0FBQUE7QUFHVCxjQUFJLE9BQU8sNkJBQTZCLFlBQVk7QUFDbEQsdUNBQTJCLGlCQUFnQixNQUFNLDBCQUEwQjtBQUMzRSx1QkFBVyxnQkFBZTtBQUFBO0FBRzVCLGNBQUksZUFBZSx3Q0FBd0MsMkJBQTJCLGlCQUFnQixNQUFNLFVBQVUsVUFBVSxVQUFVLFVBQVU7QUFFcEosY0FBSSxjQUFjO0FBR2hCLGdCQUFJLENBQUMsb0JBQXFCLFFBQU8sU0FBUyw4QkFBOEIsY0FBYyxPQUFPLFNBQVMsdUJBQXVCLGFBQWE7QUFDeEksa0JBQUksT0FBTyxTQUFTLHVCQUF1QixZQUFZO0FBQ3JELHlCQUFTO0FBQUE7QUFHWCxrQkFBSSxPQUFPLFNBQVMsOEJBQThCLFlBQVk7QUFDNUQseUJBQVM7QUFBQTtBQUFBO0FBSWIsZ0JBQUksT0FBTyxTQUFTLHNCQUFzQixZQUFZO0FBQ3BELGtCQUFJLGNBQWM7QUFFbEI7QUFDRSwrQkFBZTtBQUFBO0FBR2pCLGtCQUFNLGlCQUFlLE9BQU8sdUJBQXVCLFFBQVE7QUFDekQsK0JBQWU7QUFBQTtBQUdqQiw4QkFBZSxTQUFTO0FBQUE7QUFBQSxpQkFFckI7QUFHTCxnQkFBSSxPQUFPLFNBQVMsc0JBQXNCLFlBQVk7QUFDcEQsa0JBQUksZUFBZTtBQUVuQjtBQUNFLGdDQUFnQjtBQUFBO0FBR2xCLGtCQUFNLGlCQUFlLE9BQU8sdUJBQXVCLFFBQVE7QUFDekQsZ0NBQWdCO0FBQUE7QUFHbEIsOEJBQWUsU0FBUztBQUFBO0FBSzFCLDRCQUFlLGdCQUFnQjtBQUMvQiw0QkFBZSxnQkFBZ0I7QUFBQTtBQUtqQyxtQkFBUyxRQUFRO0FBQ2pCLG1CQUFTLFFBQVE7QUFDakIsbUJBQVMsVUFBVTtBQUNuQixpQkFBTztBQUFBO0FBSVQscUNBQTZCLFVBQVMsaUJBQWdCLE1BQU0sVUFBVSxjQUFhO0FBQ2pGLGNBQUksV0FBVyxnQkFBZTtBQUM5QiwyQkFBaUIsVUFBUztBQUMxQixjQUFJLHFCQUFxQixnQkFBZTtBQUN4QyxjQUFJLFdBQVcsZ0JBQWUsU0FBUyxnQkFBZSxjQUFjLHFCQUFxQixvQkFBb0IsZ0JBQWUsTUFBTTtBQUNsSSxtQkFBUyxRQUFRO0FBQ2pCLGNBQUkscUJBQXFCLGdCQUFlO0FBQ3hDLGNBQUksYUFBYSxTQUFTO0FBQzFCLGNBQUksY0FBYyxLQUFLO0FBQ3ZCLGNBQUksY0FBYztBQUVsQixjQUFJLE9BQU8sZ0JBQWdCLFlBQVksZ0JBQWdCLE1BQU07QUFDM0QsMEJBQWMsWUFBWTtBQUFBLGlCQUNyQjtBQUNMLGdCQUFJLHNCQUFzQixtQkFBbUIsaUJBQWdCLE1BQU07QUFDbkUsMEJBQWMsaUJBQWlCLGlCQUFnQjtBQUFBO0FBR2pELGNBQUksMkJBQTJCLEtBQUs7QUFDcEMsY0FBSSxtQkFBbUIsT0FBTyw2QkFBNkIsY0FBYyxPQUFPLFNBQVMsNEJBQTRCO0FBTXJILGNBQUksQ0FBQyxvQkFBcUIsUUFBTyxTQUFTLHFDQUFxQyxjQUFjLE9BQU8sU0FBUyw4QkFBOEIsYUFBYTtBQUN0SixnQkFBSSx1QkFBdUIsc0JBQXNCLGVBQWUsYUFBYTtBQUMzRSw0Q0FBOEIsaUJBQWdCLFVBQVUsVUFBVTtBQUFBO0FBQUE7QUFJdEU7QUFDQSxjQUFJLFdBQVcsZ0JBQWU7QUFDOUIsY0FBSSxXQUFXLFNBQVMsUUFBUTtBQUNoQyw2QkFBbUIsaUJBQWdCLFVBQVUsVUFBVTtBQUN2RCxxQkFBVyxnQkFBZTtBQUUxQixjQUFJLHVCQUF1QixzQkFBc0IsYUFBYSxZQUFZLENBQUMsdUJBQXVCLENBQUMsd0NBQXdDLENBQUUsOEJBQWtDO0FBRzdLLGdCQUFJLE9BQU8sU0FBUyx1QkFBdUIsWUFBWTtBQUNyRCxrQkFBSSx1QkFBdUIsU0FBUSxpQkFBaUIsYUFBYSxTQUFRLGVBQWU7QUFDdEYsZ0NBQWUsU0FBUztBQUFBO0FBQUE7QUFJNUIsZ0JBQUksT0FBTyxTQUFTLDRCQUE0QixZQUFZO0FBQzFELGtCQUFJLHVCQUF1QixTQUFRLGlCQUFpQixhQUFhLFNBQVEsZUFBZTtBQUN0RixnQ0FBZSxTQUFTO0FBQUE7QUFBQTtBQUk1QixtQkFBTztBQUFBO0FBR1QsY0FBSSxPQUFPLDZCQUE2QixZQUFZO0FBQ2xELHVDQUEyQixpQkFBZ0IsTUFBTSwwQkFBMEI7QUFDM0UsdUJBQVcsZ0JBQWU7QUFBQTtBQUc1QixjQUFJLGVBQWUsd0NBQXdDLDJCQUEyQixpQkFBZ0IsTUFBTSxVQUFVLFVBQVUsVUFBVSxVQUFVLGdCQUlwSjtBQUVBLGNBQUksY0FBYztBQUdoQixnQkFBSSxDQUFDLG9CQUFxQixRQUFPLFNBQVMsK0JBQStCLGNBQWMsT0FBTyxTQUFTLHdCQUF3QixhQUFhO0FBQzFJLGtCQUFJLE9BQU8sU0FBUyx3QkFBd0IsWUFBWTtBQUN0RCx5QkFBUyxvQkFBb0IsVUFBVSxVQUFVO0FBQUE7QUFHbkQsa0JBQUksT0FBTyxTQUFTLCtCQUErQixZQUFZO0FBQzdELHlCQUFTLDJCQUEyQixVQUFVLFVBQVU7QUFBQTtBQUFBO0FBSTVELGdCQUFJLE9BQU8sU0FBUyx1QkFBdUIsWUFBWTtBQUNyRCw4QkFBZSxTQUFTO0FBQUE7QUFHMUIsZ0JBQUksT0FBTyxTQUFTLDRCQUE0QixZQUFZO0FBQzFELDhCQUFlLFNBQVM7QUFBQTtBQUFBLGlCQUVyQjtBQUdMLGdCQUFJLE9BQU8sU0FBUyx1QkFBdUIsWUFBWTtBQUNyRCxrQkFBSSx1QkFBdUIsU0FBUSxpQkFBaUIsYUFBYSxTQUFRLGVBQWU7QUFDdEYsZ0NBQWUsU0FBUztBQUFBO0FBQUE7QUFJNUIsZ0JBQUksT0FBTyxTQUFTLDRCQUE0QixZQUFZO0FBQzFELGtCQUFJLHVCQUF1QixTQUFRLGlCQUFpQixhQUFhLFNBQVEsZUFBZTtBQUN0RixnQ0FBZSxTQUFTO0FBQUE7QUFBQTtBQU01Qiw0QkFBZSxnQkFBZ0I7QUFDL0IsNEJBQWUsZ0JBQWdCO0FBQUE7QUFLakMsbUJBQVMsUUFBUTtBQUNqQixtQkFBUyxRQUFRO0FBQ2pCLG1CQUFTLFVBQVU7QUFDbkIsaUJBQU87QUFBQTtBQU9ULFlBQUksWUFBWTtBQUNoQixZQUFJLGlCQUFpQjtBQUNyQixZQUFJLG1CQUFtQjtBQUN2QixZQUFJLGdCQUFnQjtBQUNwQixZQUFJLFVBQVU7QUFDZCxZQUFJLGVBQWU7QUFDbkIsWUFBSSxzQkFBc0I7QUFDMUIsWUFBSSxnQkFBZ0I7QUFDcEIsWUFBSSxzQkFBc0I7QUFDMUIsK0JBQXVCLGlCQUFnQjtBQUNyQztBQUNBLGlCQUFRLGlCQUFlLFFBQVEsWUFBWTtBQUFBO0FBRTdDLGlDQUF5QixpQkFBZ0I7QUFDdkM7QUFDQSxpQkFBTztBQUFBO0FBRVQsNkJBQXFCO0FBQ25CLGNBQUksV0FBVztBQUNmLGNBQUksbUJBQW1CO0FBQ3ZCLGNBQUksS0FBSyxtQkFBbUIsQ0FBQyxjQUFjO0FBQzNDLGlCQUFPLEdBQUcsU0FBUyxNQUFNO0FBQUE7QUFFM0IsOEJBQXNCLGlCQUFnQixlQUFlO0FBZW5EO0FBQ0Esb0JBQVUsb0JBQW9CO0FBQzlCLG9CQUFVLG9CQUFvQjtBQUM5Qiw2QkFBbUI7QUFDbkIsMEJBQWdCO0FBQUE7QUFFbEIsNEJBQW9CLGlCQUFnQixlQUFlLFFBQU87QUFDeEQ7QUFDQSxrQkFBUSxrQkFBa0I7QUFDMUIsa0JBQVEsa0JBQWtCO0FBQzFCLGtCQUFRLGtCQUFrQjtBQUMxQixnQ0FBc0I7QUFDdEIsY0FBSSx1QkFBdUI7QUFDM0IsY0FBSSxlQUFlO0FBR25CLGNBQUksYUFBYSxhQUFhLHdCQUF3QjtBQUN0RCxjQUFJLFNBQVMsdUJBQXVCLENBQUUsTUFBSztBQUMzQyxjQUFJLE9BQU8sU0FBUTtBQUNuQixjQUFJLFNBQVMsYUFBYSxpQkFBaUI7QUFHM0MsY0FBSSxTQUFTLElBQUk7QUFjZixnQkFBSSx1QkFBdUIsYUFBYSxhQUFhO0FBRXJELGdCQUFJLGtCQUFtQixNQUFLLHdCQUF3QjtBQUVwRCxnQkFBSSxjQUFlLFVBQVMsaUJBQWlCLFNBQVM7QUFFdEQsZ0JBQUksZUFBZSxVQUFVO0FBQzdCLGdCQUFJLG1CQUFtQixhQUFhO0FBR3BDLGdCQUFJLGVBQWUsYUFBYSxpQkFBaUI7QUFDakQsZ0JBQUksZ0JBQWdCLFFBQVE7QUFDNUIsZ0JBQUksS0FBSyxnQkFBZ0I7QUFDekIsZ0JBQUksV0FBVyxjQUFjO0FBQzdCLDRCQUFnQixLQUFLLGVBQWU7QUFDcEMsa0NBQXNCO0FBQUEsaUJBQ2pCO0FBRUwsZ0JBQUksVUFBVSxRQUFRO0FBRXRCLGdCQUFJLE1BQU0sVUFBVTtBQUVwQixnQkFBSSxZQUFZO0FBQ2hCLDRCQUFnQixLQUFLLFNBQVM7QUFDOUIsa0NBQXNCO0FBQUE7QUFBQTtBQUcxQix3Q0FBZ0MsaUJBQWdCO0FBQzlDO0FBR0EsY0FBSSxjQUFjLGdCQUFlO0FBRWpDLGNBQUksZ0JBQWdCLE1BQU07QUFDeEIsZ0JBQUksZ0JBQWdCO0FBQ3BCLGdCQUFJLFlBQVk7QUFDaEIseUJBQWEsaUJBQWdCO0FBQzdCLHVCQUFXLGlCQUFnQixlQUFlO0FBQUE7QUFBQTtBQUk5Qyw4QkFBc0IsUUFBUTtBQUM1QixpQkFBTyxLQUFLLE1BQU07QUFBQTtBQUdwQiwrQkFBdUIsSUFBSTtBQUN6QixpQkFBTyxLQUFLLGFBQWEsTUFBTTtBQUFBO0FBR2pDLGdDQUF3QixpQkFBZ0I7QUFNdEMsaUJBQU8sb0JBQW1CLGtCQUFrQjtBQUMxQywrQkFBbUIsVUFBVSxFQUFFO0FBQy9CLHNCQUFVLGtCQUFrQjtBQUM1Qiw0QkFBZ0IsVUFBVSxFQUFFO0FBQzVCLHNCQUFVLGtCQUFrQjtBQUFBO0FBRzlCLGlCQUFPLG9CQUFtQixxQkFBcUI7QUFDN0Msa0NBQXNCLFFBQVEsRUFBRTtBQUNoQyxvQkFBUSxnQkFBZ0I7QUFDeEIsa0NBQXNCLFFBQVEsRUFBRTtBQUNoQyxvQkFBUSxnQkFBZ0I7QUFDeEIsNEJBQWdCLFFBQVEsRUFBRTtBQUMxQixvQkFBUSxnQkFBZ0I7QUFBQTtBQUFBO0FBRzVCLDJDQUFtQztBQUNqQztBQUVBLGNBQUksd0JBQXdCLE1BQU07QUFDaEMsbUJBQU87QUFBQSxjQUNMLElBQUk7QUFBQSxjQUNKLFVBQVU7QUFBQTtBQUFBLGlCQUVQO0FBQ0wsbUJBQU87QUFBQTtBQUFBO0FBR1gsNkNBQXFDLGlCQUFnQixrQkFBa0I7QUFDckU7QUFDQSxrQkFBUSxrQkFBa0I7QUFDMUIsa0JBQVEsa0JBQWtCO0FBQzFCLGtCQUFRLGtCQUFrQjtBQUMxQiwwQkFBZ0IsaUJBQWlCO0FBQ2pDLGdDQUFzQixpQkFBaUI7QUFDdkMsZ0NBQXNCO0FBQUE7QUFHeEIsc0NBQThCO0FBQzVCO0FBQ0UsZ0JBQUksQ0FBQyxrQkFBa0I7QUFDckIsb0JBQU07QUFBQTtBQUFBO0FBQUE7QUFPWixZQUFJLHVCQUF1QjtBQUMzQixZQUFJLHlCQUF5QjtBQUM3QixZQUFJLGNBQWM7QUFDbEIsWUFBSSxhQUFhO0FBRWpCLFlBQUksa0JBQWtCO0FBRXRCLG1DQUEyQjtBQUN6QjtBQUNFLGdCQUFJLGFBQWE7QUFDZixvQkFBTTtBQUFBO0FBQUE7QUFBQTtBQUtaLG1EQUEyQztBQUN6QztBQUNFLHlCQUFhO0FBQUE7QUFBQTtBQUlqQixxQ0FBNkIsT0FBTztBQUVsQyxjQUFJLGlCQUFpQixNQUFNLFVBQVU7QUFDckMsbUNBQXlCLHVDQUF1QztBQUNoRSxpQ0FBdUI7QUFDdkIsd0JBQWM7QUFDZCw0QkFBa0I7QUFDbEIsdUJBQWE7QUFDYixpQkFBTztBQUFBO0FBR1QscUVBQTZELE9BQU8sa0JBQWtCLGFBQWE7QUFFakcsbUNBQXlCLDhDQUE4QztBQUN2RSxpQ0FBdUI7QUFDdkIsd0JBQWM7QUFDZCw0QkFBa0I7QUFDbEIsdUJBQWE7QUFFYixjQUFJLGdCQUFnQixNQUFNO0FBQ3hCLHdDQUE0QixPQUFPO0FBQUE7QUFHckMsaUJBQU87QUFBQTtBQUdULHdDQUFnQyxhQUFhLFVBQVU7QUFDckQ7QUFDRSxvQkFBUSxZQUFZO0FBQUEsbUJBQ2I7QUFDSCxxREFBcUMsWUFBWSxVQUFVLGVBQWU7QUFDMUU7QUFBQSxtQkFFRztBQUNILHNDQUFzQixZQUFZLE1BQU0sWUFBWSxlQUFlLFlBQVksV0FBVztBQUMxRjtBQUFBLG1CQUVHO0FBQ0gsb0JBQUksZ0JBQWdCLFlBQVk7QUFDaEMsb0JBQUksY0FBYyxlQUFlO0FBQU0sOERBQTRDLGNBQWMsWUFBWTtBQUM3RztBQUFBO0FBQUE7QUFBQTtBQUtSLDBDQUFrQyxhQUFhLFVBQVU7QUFDdkQsaUNBQXVCLGFBQWE7QUFDcEMsY0FBSSxnQkFBZ0I7QUFDcEIsd0JBQWMsWUFBWTtBQUMxQix3QkFBYyxTQUFTO0FBQ3ZCLGNBQUksWUFBWSxZQUFZO0FBRTVCLGNBQUksY0FBYyxNQUFNO0FBQ3RCLHdCQUFZLFlBQVksQ0FBQztBQUN6Qix3QkFBWSxTQUFTO0FBQUEsaUJBQ2hCO0FBQ0wsc0JBQVUsS0FBSztBQUFBO0FBQUE7QUFJbkIseUNBQWlDLGFBQWEsT0FBTztBQUNuRDtBQUNFLGdCQUFJLFlBQVk7QUFJZDtBQUFBO0FBR0Ysb0JBQVEsWUFBWTtBQUFBLG1CQUNiLFVBQ0g7QUFDRSxvQkFBSSxrQkFBa0IsWUFBWSxVQUFVO0FBRTVDLHdCQUFRLE1BQU07QUFBQSx1QkFDUDtBQUNILHdCQUFJLE9BQU8sTUFBTTtBQUNqQix3QkFBSSxRQUFRLE1BQU07QUFDbEIsZ0VBQTRDLGlCQUFpQjtBQUM3RDtBQUFBLHVCQUVHO0FBQ0gsd0JBQUksT0FBTyxNQUFNO0FBQ2pCLG9FQUFnRCxpQkFBaUI7QUFDakU7QUFBQTtBQUdKO0FBQUE7QUFBQSxtQkFHQyxlQUNIO0FBQ0Usb0JBQUksYUFBYSxZQUFZO0FBQzdCLG9CQUFJLGNBQWMsWUFBWTtBQUM5QixvQkFBSSxpQkFBaUIsWUFBWTtBQUVqQyx3QkFBUSxNQUFNO0FBQUEsdUJBQ1A7QUFDSCx3QkFBSSxRQUFRLE1BQU07QUFDbEIsd0JBQUksU0FBUyxNQUFNO0FBQ25CLGlEQUE2QixZQUFZLGFBQWEsZ0JBQWdCO0FBQ3RFO0FBQUEsdUJBRUc7QUFDSCx3QkFBSSxRQUFRLE1BQU07QUFDbEIscURBQWlDLFlBQVksYUFBYSxnQkFBZ0I7QUFDMUU7QUFBQSx1QkFFRztBQUNILHlEQUFxQyxZQUFZO0FBQ2pEO0FBQUE7QUFHSjtBQUFBO0FBQUEsbUJBR0MsbUJBQ0g7QUFDRSxvQkFBSSxnQkFBZ0IsWUFBWTtBQUNoQyxvQkFBSSxrQkFBa0IsY0FBYztBQUNwQyxvQkFBSSxvQkFBb0I7QUFBTSwwQkFBUSxNQUFNO0FBQUEseUJBQ3JDO0FBQ0gsMEJBQUksU0FBUyxNQUFNO0FBQ25CLDBCQUFJLFVBQVUsTUFBTTtBQUNwQix5RUFBbUQsaUJBQWlCO0FBQ3BFO0FBQUEseUJBRUc7QUFDSCwwQkFBSSxTQUFTLE1BQU07QUFDbkIsNkVBQXVELGlCQUFpQjtBQUN4RTtBQUFBO0FBRUo7QUFBQTtBQUFBO0FBSUY7QUFBQTtBQUFBO0FBQUE7QUFLUiwyQ0FBbUMsYUFBYSxPQUFPO0FBQ3JELGdCQUFNLFFBQVEsTUFBTSxRQUFRLENBQUMsWUFBWTtBQUN6QyxrQ0FBd0IsYUFBYTtBQUFBO0FBR3ZDLDRCQUFvQixPQUFPLGNBQWM7QUFDdkMsa0JBQVEsTUFBTTtBQUFBLGlCQUNQLGVBQ0g7QUFDRSxrQkFBSSxPQUFPLE1BQU07QUFDakIsa0JBQUksUUFBUSxNQUFNO0FBQ2xCLGtCQUFJLFdBQVcsbUJBQW1CLGNBQWM7QUFFaEQsa0JBQUksYUFBYSxNQUFNO0FBQ3JCLHNCQUFNLFlBQVk7QUFDbEIsdUNBQXVCO0FBQ3ZCLHlDQUF5Qix3QkFBd0I7QUFDakQsdUJBQU87QUFBQTtBQUdULHFCQUFPO0FBQUE7QUFBQSxpQkFHTixVQUNIO0FBQ0Usa0JBQUksT0FBTyxNQUFNO0FBQ2pCLGtCQUFJLGVBQWUsdUJBQXVCLGNBQWM7QUFFeEQsa0JBQUksaUJBQWlCLE1BQU07QUFDekIsc0JBQU0sWUFBWTtBQUNsQix1Q0FBdUI7QUFFdkIseUNBQXlCO0FBQ3pCLHVCQUFPO0FBQUE7QUFHVCxxQkFBTztBQUFBO0FBQUEsaUJBR04sbUJBQ0g7QUFDRTtBQUNFLG9CQUFJLG1CQUFtQiwyQkFBMkI7QUFFbEQsb0JBQUkscUJBQXFCLE1BQU07QUFDN0Isc0JBQUksZ0JBQWdCO0FBQUEsb0JBQ2xCLFlBQVk7QUFBQSxvQkFDWixhQUFhO0FBQUEsb0JBQ2IsV0FBVztBQUFBO0FBRWIsd0JBQU0sZ0JBQWdCO0FBS3RCLHNCQUFJLHFCQUFxQixrQ0FBa0M7QUFDM0QscUNBQW1CLFNBQVM7QUFDNUIsd0JBQU0sUUFBUTtBQUNkLHlDQUF1QjtBQUd2QiwyQ0FBeUI7QUFDekIseUJBQU87QUFBQTtBQUFBO0FBSVgscUJBQU87QUFBQTtBQUFBO0FBSVQscUJBQU87QUFBQTtBQUFBO0FBSWIsOENBQXNDLE9BQU87QUFDM0MsaUJBQVMsT0FBTSxPQUFPLG9CQUFvQixVQUFXLE9BQU0sUUFBUSxnQkFBZ0I7QUFBQTtBQUdyRiwwQ0FBa0MsT0FBTztBQUN2QyxnQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQixrREFBMEMsT0FBTztBQUMvQyxjQUFJLENBQUMsYUFBYTtBQUNoQjtBQUFBO0FBR0YsY0FBSSxlQUFlO0FBRW5CLGNBQUksQ0FBQyxjQUFjO0FBQ2pCLGdCQUFJLDZCQUE2QixRQUFRO0FBQ3ZDLHNDQUF3QixzQkFBc0I7QUFDOUM7QUFBQTtBQUlGLHNDQUEwQixzQkFBc0I7QUFDaEQsMEJBQWM7QUFDZCxtQ0FBdUI7QUFDdkI7QUFBQTtBQUdGLGNBQUkseUJBQXlCO0FBRTdCLGNBQUksQ0FBQyxXQUFXLE9BQU8sZUFBZTtBQUNwQyxnQkFBSSw2QkFBNkIsUUFBUTtBQUN2QyxzQ0FBd0Isc0JBQXNCO0FBQzlDO0FBQUE7QUFNRiwyQkFBZSx5QkFBeUI7QUFDeEMsZ0JBQUksMkJBQTJCO0FBRS9CLGdCQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxPQUFPLGVBQWU7QUFFckQsd0NBQTBCLHNCQUFzQjtBQUNoRCw0QkFBYztBQUNkLHFDQUF1QjtBQUN2QjtBQUFBO0FBT0YscUNBQXlCLDBCQUEwQjtBQUFBO0FBQUE7QUFJdkQsOENBQXNDLE9BQU8sdUJBQXVCLGFBQWE7QUFFL0UsY0FBSSxXQUFXLE1BQU07QUFDckIsY0FBSSwwQkFBMEIsQ0FBQztBQUMvQixjQUFJLGdCQUFnQixnQkFBZ0IsVUFBVSxNQUFNLE1BQU0sTUFBTSxlQUFlLHVCQUF1QixhQUFhLE9BQU87QUFFMUgsZ0JBQU0sY0FBYztBQUdwQixjQUFJLGtCQUFrQixNQUFNO0FBQzFCLG1CQUFPO0FBQUE7QUFHVCxpQkFBTztBQUFBO0FBR1Qsa0RBQTBDLE9BQU87QUFFL0MsY0FBSSxlQUFlLE1BQU07QUFDekIsY0FBSSxjQUFjLE1BQU07QUFDeEIsY0FBSSxlQUFlLG9CQUFvQixjQUFjLGFBQWE7QUFFbEUsY0FBSSxjQUFjO0FBR2hCLGdCQUFJLGNBQWM7QUFFbEIsZ0JBQUksZ0JBQWdCLE1BQU07QUFDeEIsa0JBQUksbUJBQW9CLGFBQVksT0FBTyxvQkFBb0I7QUFFL0Qsc0JBQVEsWUFBWTtBQUFBLHFCQUNiLFVBQ0g7QUFDRSxzQkFBSSxrQkFBa0IsWUFBWSxVQUFVO0FBQzVDLDJEQUF5QyxpQkFBaUIsY0FBYyxhQUN4RTtBQUNBO0FBQUE7QUFBQSxxQkFHQyxlQUNIO0FBQ0Usc0JBQUksYUFBYSxZQUFZO0FBQzdCLHNCQUFJLGNBQWMsWUFBWTtBQUM5QixzQkFBSSxpQkFBaUIsWUFBWTtBQUNqQyxrREFBZ0MsWUFBWSxhQUFhLGdCQUFnQixjQUFjLGFBQ3ZGO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1WLGlCQUFPO0FBQUE7QUFHVCxzREFBOEMsT0FBTztBQUVuRCxjQUFJLGdCQUFnQixNQUFNO0FBQzFCLGNBQUksbUJBQW1CLGtCQUFrQixPQUFPLGNBQWMsYUFBYTtBQUUzRSxjQUFJLENBQUMsa0JBQWtCO0FBQ3JCLGtCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLGtDQUF3QixrQkFBa0I7QUFBQTtBQUc1QyxvREFBNEMsT0FBTztBQUVqRCxjQUFJLGdCQUFnQixNQUFNO0FBQzFCLGNBQUksbUJBQW1CLGtCQUFrQixPQUFPLGNBQWMsYUFBYTtBQUUzRSxjQUFJLENBQUMsa0JBQWtCO0FBQ3JCLGtCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLGlCQUFPLCtDQUErQztBQUFBO0FBR3hELHFDQUE2QixPQUFPO0FBQ2xDLGNBQUksU0FBUyxNQUFNO0FBRW5CLGlCQUFPLFdBQVcsUUFBUSxPQUFPLFFBQVEsaUJBQWlCLE9BQU8sUUFBUSxZQUFZLE9BQU8sUUFBUSxtQkFBbUI7QUFDckgscUJBQVMsT0FBTztBQUFBO0FBR2xCLGlDQUF1QjtBQUFBO0FBR3pCLG1DQUEyQixPQUFPO0FBRWhDLGNBQUksVUFBVSxzQkFBc0I7QUFHbEMsbUJBQU87QUFBQTtBQUdULGNBQUksQ0FBQyxhQUFhO0FBSWhCLGdDQUFvQjtBQUNwQiwwQkFBYztBQUNkLG1CQUFPO0FBQUE7QUFPVCxjQUFJLE1BQU0sUUFBUSxZQUFhLE9BQU0sUUFBUSxpQkFBaUIsb0NBQW9DLE1BQU0sU0FBUyxDQUFDLHFCQUFxQixNQUFNLE1BQU0sTUFBTSxpQkFBaUI7QUFDeEssZ0JBQUksZUFBZTtBQUVuQixnQkFBSSxjQUFjO0FBQ2hCLGtCQUFJLDZCQUE2QixRQUFRO0FBQ3ZDLDBDQUEwQjtBQUMxQjtBQUFBLHFCQUNLO0FBQ0wsdUJBQU8sY0FBYztBQUNuQiwyQ0FBeUIsT0FBTztBQUNoQyxpQ0FBZSx5QkFBeUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1oRCw4QkFBb0I7QUFFcEIsY0FBSSxNQUFNLFFBQVEsbUJBQW1CO0FBQ25DLHFDQUF5QixtQ0FBbUM7QUFBQSxpQkFDdkQ7QUFDTCxxQ0FBeUIsdUJBQXVCLHlCQUF5QixNQUFNLGFBQWE7QUFBQTtBQUc5RixpQkFBTztBQUFBO0FBR1QsMENBQWtDO0FBQ2hDLGlCQUFPLGVBQWUsMkJBQTJCO0FBQUE7QUFHbkQsMkNBQW1DLE9BQU87QUFDeEMsY0FBSSxlQUFlO0FBRW5CLGlCQUFPLGNBQWM7QUFDbkIsbUNBQXVCLE9BQU87QUFDOUIsMkJBQWUseUJBQXlCO0FBQUE7QUFBQTtBQUk1Qyx1Q0FBK0I7QUFFN0IsaUNBQXVCO0FBQ3ZCLG1DQUF5QjtBQUN6Qix3QkFBYztBQUNkLHVCQUFhO0FBQUE7QUFHZix1REFBK0M7QUFDN0MsY0FBSSxvQkFBb0IsTUFBTTtBQUk1QixtQ0FBdUI7QUFDdkIsOEJBQWtCO0FBQUE7QUFBQTtBQUl0QixrQ0FBMEI7QUFDeEIsaUJBQU87QUFBQTtBQUdULHFDQUE2QixRQUFPO0FBQ2xDLGNBQUksb0JBQW9CLE1BQU07QUFDNUIsOEJBQWtCLENBQUM7QUFBQSxpQkFDZDtBQUNMLDRCQUFnQixLQUFLO0FBQUE7QUFBQTtBQUl6QixZQUFJO0FBQ0osWUFBSTtBQUNKLFlBQUk7QUFDSixZQUFJO0FBQ0osWUFBSTtBQUVKLFlBQUksb0JBQW9CLFNBQVUsT0FBTyxhQUFhO0FBQUE7QUFFdEQ7QUFDRSw2QkFBbUI7QUFDbkIsbUNBQXlCO0FBQ3pCLG1DQUF5QjtBQU96QixrQ0FBd0I7QUFDeEIsd0NBQThCO0FBRTlCLDhCQUFvQixTQUFVLE9BQU8sYUFBYTtBQUNoRCxnQkFBSSxVQUFVLFFBQVEsT0FBTyxVQUFVLFVBQVU7QUFDL0M7QUFBQTtBQUdGLGdCQUFJLENBQUMsTUFBTSxVQUFVLE1BQU0sT0FBTyxhQUFhLE1BQU0sT0FBTyxNQUFNO0FBQ2hFO0FBQUE7QUFHRixnQkFBSSxPQUFPLE1BQU0sV0FBVyxVQUFVO0FBQ3BDLG9CQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLGtCQUFNLE9BQU8sWUFBWTtBQUN6QixnQkFBSSxnQkFBZ0IsMEJBQTBCLGdCQUFnQjtBQUU5RCxnQkFBSSxzQkFBc0IsZ0JBQWdCO0FBQ3hDO0FBQUE7QUFHRixrQ0FBc0IsaUJBQWlCO0FBRXZDLGtCQUFNO0FBQUE7QUFBQTtBQUlWLDJCQUFtQixhQUFhLFVBQVMsU0FBUztBQUNoRCxjQUFJLFdBQVcsUUFBUTtBQUV2QixjQUFJLGFBQWEsUUFBUSxPQUFPLGFBQWEsY0FBYyxPQUFPLGFBQWEsVUFBVTtBQUN2RjtBQUdFLGtCQUFLLGFBQVksT0FBTyxvQkFBb0Isd0JBRzVDLENBQUUsU0FBUSxVQUFVLFFBQVEsU0FBUyxRQUFRLE9BQU8sY0FBYyxRQUFRLFFBQVE7QUFDaEYsb0JBQUksZ0JBQWdCLDBCQUEwQixnQkFBZ0I7QUFFOUQsb0JBQUksQ0FBQyx1QkFBdUIsZ0JBQWdCO0FBQzFDO0FBQ0UsMEJBQU0sZ1JBQW9TO0FBQUE7QUFHNVMseUNBQXVCLGlCQUFpQjtBQUFBO0FBQUE7QUFBQTtBQUs5QyxnQkFBSSxRQUFRLFFBQVE7QUFDbEIsa0JBQUksUUFBUSxRQUFRO0FBQ3BCLGtCQUFJO0FBRUosa0JBQUksT0FBTztBQUNULG9CQUFJLGFBQWE7QUFFakIsb0JBQUksV0FBVyxRQUFRLGdCQUFnQjtBQUNyQyx3QkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQix1QkFBTyxXQUFXO0FBQUE7QUFHcEIsa0JBQUksQ0FBQyxNQUFNO0FBQ1Qsc0JBQU0sSUFBSSxNQUFNLGtDQUFrQyxXQUFXO0FBQUE7QUFJL0Qsa0JBQUksZUFBZTtBQUVuQjtBQUNFLHdDQUF3QixVQUFVO0FBQUE7QUFHcEMsa0JBQUksWUFBWSxLQUFLO0FBRXJCLGtCQUFJLGFBQVksUUFBUSxTQUFRLFFBQVEsUUFBUSxPQUFPLFNBQVEsUUFBUSxjQUFjLFNBQVEsSUFBSSxlQUFlLFdBQVc7QUFDekgsdUJBQU8sU0FBUTtBQUFBO0FBR2pCLGtCQUFJLE1BQU0sU0FBVSxPQUFPO0FBQ3pCLG9CQUFJLE9BQU8sYUFBYTtBQUV4QixvQkFBSSxTQUFTLGlCQUFpQjtBQUU1Qix5QkFBTyxhQUFhLE9BQU87QUFBQTtBQUc3QixvQkFBSSxVQUFVLE1BQU07QUFDbEIseUJBQU8sS0FBSztBQUFBLHVCQUNQO0FBQ0wsdUJBQUssYUFBYTtBQUFBO0FBQUE7QUFJdEIsa0JBQUksYUFBYTtBQUNqQixxQkFBTztBQUFBLG1CQUNGO0FBQ0wsa0JBQUksT0FBTyxhQUFhLFVBQVU7QUFDaEMsc0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsa0JBQUksQ0FBQyxRQUFRLFFBQVE7QUFDbkIsc0JBQU0sSUFBSSxNQUFNLDRDQUE0QyxXQUFXO0FBQUE7QUFBQTtBQUFBO0FBSzdFLGlCQUFPO0FBQUE7QUFHVCwwQ0FBa0MsYUFBYSxVQUFVO0FBQ3ZELGNBQUksY0FBYyxPQUFPLFVBQVUsU0FBUyxLQUFLO0FBQ2pELGdCQUFNLElBQUksTUFBTSxvREFBcUQsaUJBQWdCLG9CQUFvQix1QkFBdUIsT0FBTyxLQUFLLFVBQVUsS0FBSyxRQUFRLE1BQU0sZUFBZTtBQUFBO0FBRzFMLG9DQUE0QixhQUFhO0FBQ3ZDO0FBQ0UsZ0JBQUksZ0JBQWdCLDBCQUEwQixnQkFBZ0I7QUFFOUQsZ0JBQUksNEJBQTRCLGdCQUFnQjtBQUM5QztBQUFBO0FBR0Ysd0NBQTRCLGlCQUFpQjtBQUU3QyxrQkFBTTtBQUFBO0FBQUE7QUFJViw2QkFBcUIsVUFBVTtBQUM3QixjQUFJLFVBQVUsU0FBUztBQUN2QixjQUFJLE9BQU8sU0FBUztBQUNwQixpQkFBTyxLQUFLO0FBQUE7QUFPZCxpQ0FBeUIsd0JBQXdCO0FBQy9DLCtCQUFxQixhQUFhLGVBQWU7QUFDL0MsZ0JBQUksQ0FBQyx3QkFBd0I7QUFFM0I7QUFBQTtBQUdGLGdCQUFJLFlBQVksWUFBWTtBQUU1QixnQkFBSSxjQUFjLE1BQU07QUFDdEIsMEJBQVksWUFBWSxDQUFDO0FBQ3pCLDBCQUFZLFNBQVM7QUFBQSxtQkFDaEI7QUFDTCx3QkFBVSxLQUFLO0FBQUE7QUFBQTtBQUluQiwyQ0FBaUMsYUFBYSxtQkFBbUI7QUFDL0QsZ0JBQUksQ0FBQyx3QkFBd0I7QUFFM0IscUJBQU87QUFBQTtBQUtULGdCQUFJLGdCQUFnQjtBQUVwQixtQkFBTyxrQkFBa0IsTUFBTTtBQUM3QiwwQkFBWSxhQUFhO0FBQ3pCLDhCQUFnQixjQUFjO0FBQUE7QUFHaEMsbUJBQU87QUFBQTtBQUdULHdDQUE4QixhQUFhLG1CQUFtQjtBQUk1RCxnQkFBSSxtQkFBbUIsSUFBSTtBQUMzQixnQkFBSSxnQkFBZ0I7QUFFcEIsbUJBQU8sa0JBQWtCLE1BQU07QUFDN0Isa0JBQUksY0FBYyxRQUFRLE1BQU07QUFDOUIsaUNBQWlCLElBQUksY0FBYyxLQUFLO0FBQUEscUJBQ25DO0FBQ0wsaUNBQWlCLElBQUksY0FBYyxPQUFPO0FBQUE7QUFHNUMsOEJBQWdCLGNBQWM7QUFBQTtBQUdoQyxtQkFBTztBQUFBO0FBR1QsNEJBQWtCLE9BQU8sY0FBYztBQUdyQyxnQkFBSSxRQUFRLHFCQUFxQixPQUFPO0FBQ3hDLGtCQUFNLFFBQVE7QUFDZCxrQkFBTSxVQUFVO0FBQ2hCLG1CQUFPO0FBQUE7QUFHVCw4QkFBb0IsVUFBVSxpQkFBaUIsVUFBVTtBQUN2RCxxQkFBUyxRQUFRO0FBRWpCLGdCQUFJLENBQUMsd0JBQXdCO0FBRzNCLHVCQUFTLFNBQVM7QUFDbEIscUJBQU87QUFBQTtBQUdULGdCQUFJLFdBQVUsU0FBUztBQUV2QixnQkFBSSxhQUFZLE1BQU07QUFDcEIsa0JBQUksV0FBVyxTQUFRO0FBRXZCLGtCQUFJLFdBQVcsaUJBQWlCO0FBRTlCLHlCQUFTLFNBQVM7QUFDbEIsdUJBQU87QUFBQSxxQkFDRjtBQUVMLHVCQUFPO0FBQUE7QUFBQSxtQkFFSjtBQUVMLHVCQUFTLFNBQVM7QUFDbEIscUJBQU87QUFBQTtBQUFBO0FBSVgsb0NBQTBCLFVBQVU7QUFHbEMsZ0JBQUksMEJBQTBCLFNBQVMsY0FBYyxNQUFNO0FBQ3pELHVCQUFTLFNBQVM7QUFBQTtBQUdwQixtQkFBTztBQUFBO0FBR1Qsa0NBQXdCLGFBQWEsVUFBUyxhQUFhLE9BQU87QUFDaEUsZ0JBQUksYUFBWSxRQUFRLFNBQVEsUUFBUSxVQUFVO0FBRWhELGtCQUFJLFVBQVUsb0JBQW9CLGFBQWEsWUFBWSxNQUFNO0FBQ2pFLHNCQUFRLFNBQVM7QUFDakIscUJBQU87QUFBQSxtQkFDRjtBQUVMLGtCQUFJLFdBQVcsU0FBUyxVQUFTO0FBQ2pDLHVCQUFTLFNBQVM7QUFDbEIscUJBQU87QUFBQTtBQUFBO0FBSVgsaUNBQXVCLGFBQWEsVUFBUyxTQUFTLE9BQU87QUFDM0QsZ0JBQUksY0FBYyxRQUFRO0FBRTFCLGdCQUFJLGdCQUFnQixxQkFBcUI7QUFDdkMscUJBQU8sZ0JBQWUsYUFBYSxVQUFTLFFBQVEsTUFBTSxVQUFVLE9BQU8sUUFBUTtBQUFBO0FBR3JGLGdCQUFJLGFBQVksTUFBTTtBQUNwQixrQkFBSSxTQUFRLGdCQUFnQixlQUMzQixrQ0FBa0MsVUFBUyxZQUkzQyxPQUFPLGdCQUFnQixZQUFZLGdCQUFnQixRQUFRLFlBQVksYUFBYSxtQkFBbUIsWUFBWSxpQkFBaUIsU0FBUSxNQUFNO0FBRWpKLG9CQUFJLFdBQVcsU0FBUyxVQUFTLFFBQVE7QUFDekMseUJBQVMsTUFBTSxVQUFVLGFBQWEsVUFBUztBQUMvQyx5QkFBUyxTQUFTO0FBRWxCO0FBQ0UsMkJBQVMsZUFBZSxRQUFRO0FBQ2hDLDJCQUFTLGNBQWMsUUFBUTtBQUFBO0FBR2pDLHVCQUFPO0FBQUE7QUFBQTtBQUtYLGdCQUFJLFVBQVUsdUJBQXVCLFNBQVMsWUFBWSxNQUFNO0FBQ2hFLG9CQUFRLE1BQU0sVUFBVSxhQUFhLFVBQVM7QUFDOUMsb0JBQVEsU0FBUztBQUNqQixtQkFBTztBQUFBO0FBR1QsZ0NBQXNCLGFBQWEsVUFBUyxRQUFRLE9BQU87QUFDekQsZ0JBQUksYUFBWSxRQUFRLFNBQVEsUUFBUSxjQUFjLFNBQVEsVUFBVSxrQkFBa0IsT0FBTyxpQkFBaUIsU0FBUSxVQUFVLG1CQUFtQixPQUFPLGdCQUFnQjtBQUU1SyxrQkFBSSxVQUFVLHNCQUFzQixRQUFRLFlBQVksTUFBTTtBQUM5RCxzQkFBUSxTQUFTO0FBQ2pCLHFCQUFPO0FBQUEsbUJBQ0Y7QUFFTCxrQkFBSSxXQUFXLFNBQVMsVUFBUyxPQUFPLFlBQVk7QUFDcEQsdUJBQVMsU0FBUztBQUNsQixxQkFBTztBQUFBO0FBQUE7QUFJWCxtQ0FBd0IsYUFBYSxVQUFTLFVBQVUsT0FBTyxLQUFLO0FBQ2xFLGdCQUFJLGFBQVksUUFBUSxTQUFRLFFBQVEsVUFBVTtBQUVoRCxrQkFBSSxVQUFVLHdCQUF3QixVQUFVLFlBQVksTUFBTSxPQUFPO0FBQ3pFLHNCQUFRLFNBQVM7QUFDakIscUJBQU87QUFBQSxtQkFDRjtBQUVMLGtCQUFJLFdBQVcsU0FBUyxVQUFTO0FBQ2pDLHVCQUFTLFNBQVM7QUFDbEIscUJBQU87QUFBQTtBQUFBO0FBSVgsK0JBQXFCLGFBQWEsVUFBVSxPQUFPO0FBQ2pELGdCQUFJLE9BQU8sYUFBYSxZQUFZLGFBQWEsTUFBTSxPQUFPLGFBQWEsVUFBVTtBQUluRixrQkFBSSxVQUFVLG9CQUFvQixLQUFLLFVBQVUsWUFBWSxNQUFNO0FBQ25FLHNCQUFRLFNBQVM7QUFDakIscUJBQU87QUFBQTtBQUdULGdCQUFJLE9BQU8sYUFBYSxZQUFZLGFBQWEsTUFBTTtBQUNyRCxzQkFBUSxTQUFTO0FBQUEscUJBQ1Ysb0JBQ0g7QUFDRSxzQkFBSSxXQUFXLHVCQUF1QixVQUFVLFlBQVksTUFBTTtBQUVsRSwyQkFBUyxNQUFNLFVBQVUsYUFBYSxNQUFNO0FBQzVDLDJCQUFTLFNBQVM7QUFDbEIseUJBQU87QUFBQTtBQUFBLHFCQUdOLG1CQUNIO0FBQ0Usc0JBQUksWUFBWSxzQkFBc0IsVUFBVSxZQUFZLE1BQU07QUFFbEUsNEJBQVUsU0FBUztBQUNuQix5QkFBTztBQUFBO0FBQUEscUJBR04saUJBQ0g7QUFDRTtBQUNFLHdCQUFJLFVBQVUsU0FBUztBQUN2Qix3QkFBSSxPQUFPLFNBQVM7QUFDcEIsMkJBQU8sWUFBWSxhQUFhLEtBQUssVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUt2RCxrQkFBSSxRQUFRLGFBQWEsY0FBYyxXQUFXO0FBQ2hELG9CQUFJLFlBQVksd0JBQXdCLFVBQVUsWUFBWSxNQUFNLE9BQU87QUFFM0UsMEJBQVUsU0FBUztBQUNuQix1QkFBTztBQUFBO0FBR1QsdUNBQXlCLGFBQWE7QUFBQTtBQUd4QztBQUNFLGtCQUFJLE9BQU8sYUFBYSxZQUFZO0FBQ2xDLG1DQUFtQjtBQUFBO0FBQUE7QUFJdkIsbUJBQU87QUFBQTtBQUdULDhCQUFvQixhQUFhLFVBQVUsVUFBVSxPQUFPO0FBRTFELGdCQUFJLE1BQU0sYUFBYSxPQUFPLFNBQVMsTUFBTTtBQUU3QyxnQkFBSSxPQUFPLGFBQWEsWUFBWSxhQUFhLE1BQU0sT0FBTyxhQUFhLFVBQVU7QUFJbkYsa0JBQUksUUFBUSxNQUFNO0FBQ2hCLHVCQUFPO0FBQUE7QUFHVCxxQkFBTyxlQUFlLGFBQWEsVUFBVSxLQUFLLFVBQVU7QUFBQTtBQUc5RCxnQkFBSSxPQUFPLGFBQWEsWUFBWSxhQUFhLE1BQU07QUFDckQsc0JBQVEsU0FBUztBQUFBLHFCQUNWLG9CQUNIO0FBQ0Usc0JBQUksU0FBUyxRQUFRLEtBQUs7QUFDeEIsMkJBQU8sY0FBYyxhQUFhLFVBQVUsVUFBVTtBQUFBLHlCQUNqRDtBQUNMLDJCQUFPO0FBQUE7QUFBQTtBQUFBLHFCQUlSLG1CQUNIO0FBQ0Usc0JBQUksU0FBUyxRQUFRLEtBQUs7QUFDeEIsMkJBQU8sYUFBYSxhQUFhLFVBQVUsVUFBVTtBQUFBLHlCQUNoRDtBQUNMLDJCQUFPO0FBQUE7QUFBQTtBQUFBLHFCQUlSLGlCQUNIO0FBQ0U7QUFDRSx3QkFBSSxVQUFVLFNBQVM7QUFDdkIsd0JBQUksT0FBTyxTQUFTO0FBQ3BCLDJCQUFPLFdBQVcsYUFBYSxVQUFVLEtBQUssVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUtoRSxrQkFBSSxRQUFRLGFBQWEsY0FBYyxXQUFXO0FBQ2hELG9CQUFJLFFBQVEsTUFBTTtBQUNoQix5QkFBTztBQUFBO0FBR1QsdUJBQU8sZ0JBQWUsYUFBYSxVQUFVLFVBQVUsT0FBTztBQUFBO0FBR2hFLHVDQUF5QixhQUFhO0FBQUE7QUFHeEM7QUFDRSxrQkFBSSxPQUFPLGFBQWEsWUFBWTtBQUNsQyxtQ0FBbUI7QUFBQTtBQUFBO0FBSXZCLG1CQUFPO0FBQUE7QUFHVCxpQ0FBdUIsa0JBQWtCLGFBQWEsUUFBUSxVQUFVLE9BQU87QUFDN0UsZ0JBQUksT0FBTyxhQUFhLFlBQVksYUFBYSxNQUFNLE9BQU8sYUFBYSxVQUFVO0FBR25GLGtCQUFJLGVBQWUsaUJBQWlCLElBQUksV0FBVztBQUNuRCxxQkFBTyxlQUFlLGFBQWEsY0FBYyxLQUFLLFVBQVU7QUFBQTtBQUdsRSxnQkFBSSxPQUFPLGFBQWEsWUFBWSxhQUFhLE1BQU07QUFDckQsc0JBQVEsU0FBUztBQUFBLHFCQUNWLG9CQUNIO0FBQ0Usc0JBQUksZ0JBQWdCLGlCQUFpQixJQUFJLFNBQVMsUUFBUSxPQUFPLFNBQVMsU0FBUyxRQUFRO0FBRTNGLHlCQUFPLGNBQWMsYUFBYSxlQUFlLFVBQVU7QUFBQTtBQUFBLHFCQUcxRCxtQkFDSDtBQUNFLHNCQUFJLGlCQUFpQixpQkFBaUIsSUFBSSxTQUFTLFFBQVEsT0FBTyxTQUFTLFNBQVMsUUFBUTtBQUU1Rix5QkFBTyxhQUFhLGFBQWEsZ0JBQWdCLFVBQVU7QUFBQTtBQUFBLHFCQUcxRCxpQkFDSDtBQUNFLHNCQUFJLFVBQVUsU0FBUztBQUN2QixzQkFBSSxPQUFPLFNBQVM7QUFDcEIseUJBQU8sY0FBYyxrQkFBa0IsYUFBYSxRQUFRLEtBQUssVUFBVTtBQUFBO0FBQUE7QUFLakYsa0JBQUksUUFBUSxhQUFhLGNBQWMsV0FBVztBQUNoRCxvQkFBSSxpQkFBaUIsaUJBQWlCLElBQUksV0FBVztBQUVyRCx1QkFBTyxnQkFBZSxhQUFhLGdCQUFnQixVQUFVLE9BQU87QUFBQTtBQUd0RSx1Q0FBeUIsYUFBYTtBQUFBO0FBR3hDO0FBQ0Usa0JBQUksT0FBTyxhQUFhLFlBQVk7QUFDbEMsbUNBQW1CO0FBQUE7QUFBQTtBQUl2QixtQkFBTztBQUFBO0FBT1Qsb0NBQTBCLE9BQU8sV0FBVyxhQUFhO0FBQ3ZEO0FBQ0Usa0JBQUksT0FBTyxVQUFVLFlBQVksVUFBVSxNQUFNO0FBQy9DLHVCQUFPO0FBQUE7QUFHVCxzQkFBUSxNQUFNO0FBQUEscUJBQ1A7QUFBQSxxQkFDQTtBQUNILG9DQUFrQixPQUFPO0FBQ3pCLHNCQUFJLE1BQU0sTUFBTTtBQUVoQixzQkFBSSxPQUFPLFFBQVEsVUFBVTtBQUMzQjtBQUFBO0FBR0Ysc0JBQUksY0FBYyxNQUFNO0FBQ3RCLGdDQUFZLElBQUk7QUFDaEIsOEJBQVUsSUFBSTtBQUNkO0FBQUE7QUFHRixzQkFBSSxDQUFDLFVBQVUsSUFBSSxNQUFNO0FBQ3ZCLDhCQUFVLElBQUk7QUFDZDtBQUFBO0FBR0Ysd0JBQU0sa1JBQWlTO0FBRXZTO0FBQUEscUJBRUcsaUJBQ0g7QUFDRSxzQkFBSSxVQUFVLE1BQU07QUFDcEIsc0JBQUksT0FBTyxNQUFNO0FBQ2pCLG1DQUFpQixLQUFLLFVBQVUsV0FBVztBQUMzQztBQUFBO0FBQUE7QUFBQTtBQUtSLG1CQUFPO0FBQUE7QUFHVCwwQ0FBZ0MsYUFBYSxtQkFBbUIsYUFBYSxPQUFPO0FBZ0JsRjtBQUVFLGtCQUFJLFlBQVk7QUFFaEIsdUJBQVMsSUFBSSxHQUFHLElBQUksWUFBWSxRQUFRLEtBQUs7QUFDM0Msb0JBQUksUUFBUSxZQUFZO0FBQ3hCLDRCQUFZLGlCQUFpQixPQUFPLFdBQVc7QUFBQTtBQUFBO0FBSW5ELGdCQUFJLHNCQUFzQjtBQUMxQixnQkFBSSxtQkFBbUI7QUFDdkIsZ0JBQUksV0FBVztBQUNmLGdCQUFJLGtCQUFrQjtBQUN0QixnQkFBSSxTQUFTO0FBQ2IsZ0JBQUksZUFBZTtBQUVuQixtQkFBTyxhQUFhLFFBQVEsU0FBUyxZQUFZLFFBQVEsVUFBVTtBQUNqRSxrQkFBSSxTQUFTLFFBQVEsUUFBUTtBQUMzQiwrQkFBZTtBQUNmLDJCQUFXO0FBQUEscUJBQ047QUFDTCwrQkFBZSxTQUFTO0FBQUE7QUFHMUIsa0JBQUksV0FBVyxXQUFXLGFBQWEsVUFBVSxZQUFZLFNBQVM7QUFFdEUsa0JBQUksYUFBYSxNQUFNO0FBS3JCLG9CQUFJLGFBQWEsTUFBTTtBQUNyQiw2QkFBVztBQUFBO0FBR2I7QUFBQTtBQUdGLGtCQUFJLHdCQUF3QjtBQUMxQixvQkFBSSxZQUFZLFNBQVMsY0FBYyxNQUFNO0FBRzNDLDhCQUFZLGFBQWE7QUFBQTtBQUFBO0FBSTdCLGdDQUFrQixXQUFXLFVBQVUsaUJBQWlCO0FBRXhELGtCQUFJLHFCQUFxQixNQUFNO0FBRTdCLHNDQUFzQjtBQUFBLHFCQUNqQjtBQUtMLGlDQUFpQixVQUFVO0FBQUE7QUFHN0IsaUNBQW1CO0FBQ25CLHlCQUFXO0FBQUE7QUFHYixnQkFBSSxXQUFXLFlBQVksUUFBUTtBQUVqQyxzQ0FBd0IsYUFBYTtBQUVyQyxrQkFBSSxrQkFBa0I7QUFDcEIsb0JBQUksZ0JBQWdCO0FBQ3BCLDZCQUFhLGFBQWE7QUFBQTtBQUc1QixxQkFBTztBQUFBO0FBR1QsZ0JBQUksYUFBYSxNQUFNO0FBR3JCLHFCQUFPLFNBQVMsWUFBWSxRQUFRLFVBQVU7QUFDNUMsb0JBQUksWUFBWSxZQUFZLGFBQWEsWUFBWSxTQUFTO0FBRTlELG9CQUFJLGNBQWMsTUFBTTtBQUN0QjtBQUFBO0FBR0Ysa0NBQWtCLFdBQVcsV0FBVyxpQkFBaUI7QUFFekQsb0JBQUkscUJBQXFCLE1BQU07QUFFN0Isd0NBQXNCO0FBQUEsdUJBQ2pCO0FBQ0wsbUNBQWlCLFVBQVU7QUFBQTtBQUc3QixtQ0FBbUI7QUFBQTtBQUdyQixrQkFBSSxrQkFBa0I7QUFDcEIsb0JBQUksaUJBQWlCO0FBQ3JCLDZCQUFhLGFBQWE7QUFBQTtBQUc1QixxQkFBTztBQUFBO0FBSVQsZ0JBQUksbUJBQW1CLHFCQUFxQixhQUFhO0FBRXpELG1CQUFPLFNBQVMsWUFBWSxRQUFRLFVBQVU7QUFDNUMsa0JBQUksYUFBYSxjQUFjLGtCQUFrQixhQUFhLFFBQVEsWUFBWSxTQUFTO0FBRTNGLGtCQUFJLGVBQWUsTUFBTTtBQUN2QixvQkFBSSx3QkFBd0I7QUFDMUIsc0JBQUksV0FBVyxjQUFjLE1BQU07QUFLakMscUNBQWlCLE9BQU8sV0FBVyxRQUFRLE9BQU8sU0FBUyxXQUFXO0FBQUE7QUFBQTtBQUkxRSxrQ0FBa0IsV0FBVyxZQUFZLGlCQUFpQjtBQUUxRCxvQkFBSSxxQkFBcUIsTUFBTTtBQUM3Qix3Q0FBc0I7QUFBQSx1QkFDakI7QUFDTCxtQ0FBaUIsVUFBVTtBQUFBO0FBRzdCLG1DQUFtQjtBQUFBO0FBQUE7QUFJdkIsZ0JBQUksd0JBQXdCO0FBRzFCLCtCQUFpQixRQUFRLFNBQVUsUUFBTztBQUN4Qyx1QkFBTyxZQUFZLGFBQWE7QUFBQTtBQUFBO0FBSXBDLGdCQUFJLGtCQUFrQjtBQUNwQixrQkFBSSxrQkFBa0I7QUFDdEIsMkJBQWEsYUFBYTtBQUFBO0FBRzVCLG1CQUFPO0FBQUE7QUFHVCw2Q0FBbUMsYUFBYSxtQkFBbUIscUJBQXFCLE9BQU87QUFHN0YsZ0JBQUksYUFBYSxjQUFjO0FBRS9CLGdCQUFJLE9BQU8sZUFBZSxZQUFZO0FBQ3BDLG9CQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCO0FBR0Usa0JBQUksT0FBTyxXQUFXLGNBQ3RCLG9CQUFvQixPQUFPLGlCQUFpQixhQUFhO0FBQ3ZELG9CQUFJLENBQUMsd0JBQXdCO0FBQzNCLHdCQUFNO0FBQUE7QUFHUix5Q0FBeUI7QUFBQTtBQUkzQixrQkFBSSxvQkFBb0IsWUFBWSxZQUFZO0FBQzlDLG9CQUFJLENBQUMsa0JBQWtCO0FBQ3JCLHdCQUFNO0FBQUE7QUFHUixtQ0FBbUI7QUFBQTtBQUtyQixrQkFBSSxlQUFlLFdBQVcsS0FBSztBQUVuQyxrQkFBSSxjQUFjO0FBQ2hCLG9CQUFJLFlBQVk7QUFFaEIsb0JBQUksUUFBUSxhQUFhO0FBRXpCLHVCQUFPLENBQUMsTUFBTSxNQUFNLFFBQVEsYUFBYSxRQUFRO0FBQy9DLHNCQUFJLFFBQVEsTUFBTTtBQUNsQiw4QkFBWSxpQkFBaUIsT0FBTyxXQUFXO0FBQUE7QUFBQTtBQUFBO0FBS3JELGdCQUFJLGNBQWMsV0FBVyxLQUFLO0FBRWxDLGdCQUFJLGVBQWUsTUFBTTtBQUN2QixvQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQixnQkFBSSxzQkFBc0I7QUFDMUIsZ0JBQUksbUJBQW1CO0FBQ3ZCLGdCQUFJLFdBQVc7QUFDZixnQkFBSSxrQkFBa0I7QUFDdEIsZ0JBQUksU0FBUztBQUNiLGdCQUFJLGVBQWU7QUFDbkIsZ0JBQUksT0FBTyxZQUFZO0FBRXZCLG1CQUFPLGFBQWEsUUFBUSxDQUFDLEtBQUssTUFBTSxVQUFVLE9BQU8sWUFBWSxRQUFRO0FBQzNFLGtCQUFJLFNBQVMsUUFBUSxRQUFRO0FBQzNCLCtCQUFlO0FBQ2YsMkJBQVc7QUFBQSxxQkFDTjtBQUNMLCtCQUFlLFNBQVM7QUFBQTtBQUcxQixrQkFBSSxXQUFXLFdBQVcsYUFBYSxVQUFVLEtBQUssT0FBTztBQUU3RCxrQkFBSSxhQUFhLE1BQU07QUFLckIsb0JBQUksYUFBYSxNQUFNO0FBQ3JCLDZCQUFXO0FBQUE7QUFHYjtBQUFBO0FBR0Ysa0JBQUksd0JBQXdCO0FBQzFCLG9CQUFJLFlBQVksU0FBUyxjQUFjLE1BQU07QUFHM0MsOEJBQVksYUFBYTtBQUFBO0FBQUE7QUFJN0IsZ0NBQWtCLFdBQVcsVUFBVSxpQkFBaUI7QUFFeEQsa0JBQUkscUJBQXFCLE1BQU07QUFFN0Isc0NBQXNCO0FBQUEscUJBQ2pCO0FBS0wsaUNBQWlCLFVBQVU7QUFBQTtBQUc3QixpQ0FBbUI7QUFDbkIseUJBQVc7QUFBQTtBQUdiLGdCQUFJLEtBQUssTUFBTTtBQUViLHNDQUF3QixhQUFhO0FBRXJDLGtCQUFJLGtCQUFrQjtBQUNwQixvQkFBSSxnQkFBZ0I7QUFDcEIsNkJBQWEsYUFBYTtBQUFBO0FBRzVCLHFCQUFPO0FBQUE7QUFHVCxnQkFBSSxhQUFhLE1BQU07QUFHckIscUJBQU8sQ0FBQyxLQUFLLE1BQU0sVUFBVSxPQUFPLFlBQVksUUFBUTtBQUN0RCxvQkFBSSxhQUFhLFlBQVksYUFBYSxLQUFLLE9BQU87QUFFdEQsb0JBQUksZUFBZSxNQUFNO0FBQ3ZCO0FBQUE7QUFHRixrQ0FBa0IsV0FBVyxZQUFZLGlCQUFpQjtBQUUxRCxvQkFBSSxxQkFBcUIsTUFBTTtBQUU3Qix3Q0FBc0I7QUFBQSx1QkFDakI7QUFDTCxtQ0FBaUIsVUFBVTtBQUFBO0FBRzdCLG1DQUFtQjtBQUFBO0FBR3JCLGtCQUFJLGtCQUFrQjtBQUNwQixvQkFBSSxrQkFBa0I7QUFDdEIsNkJBQWEsYUFBYTtBQUFBO0FBRzVCLHFCQUFPO0FBQUE7QUFJVCxnQkFBSSxtQkFBbUIscUJBQXFCLGFBQWE7QUFFekQsbUJBQU8sQ0FBQyxLQUFLLE1BQU0sVUFBVSxPQUFPLFlBQVksUUFBUTtBQUN0RCxrQkFBSSxhQUFhLGNBQWMsa0JBQWtCLGFBQWEsUUFBUSxLQUFLLE9BQU87QUFFbEYsa0JBQUksZUFBZSxNQUFNO0FBQ3ZCLG9CQUFJLHdCQUF3QjtBQUMxQixzQkFBSSxXQUFXLGNBQWMsTUFBTTtBQUtqQyxxQ0FBaUIsT0FBTyxXQUFXLFFBQVEsT0FBTyxTQUFTLFdBQVc7QUFBQTtBQUFBO0FBSTFFLGtDQUFrQixXQUFXLFlBQVksaUJBQWlCO0FBRTFELG9CQUFJLHFCQUFxQixNQUFNO0FBQzdCLHdDQUFzQjtBQUFBLHVCQUNqQjtBQUNMLG1DQUFpQixVQUFVO0FBQUE7QUFHN0IsbUNBQW1CO0FBQUE7QUFBQTtBQUl2QixnQkFBSSx3QkFBd0I7QUFHMUIsK0JBQWlCLFFBQVEsU0FBVSxRQUFPO0FBQ3hDLHVCQUFPLFlBQVksYUFBYTtBQUFBO0FBQUE7QUFJcEMsZ0JBQUksa0JBQWtCO0FBQ3BCLGtCQUFJLGtCQUFrQjtBQUN0QiwyQkFBYSxhQUFhO0FBQUE7QUFHNUIsbUJBQU87QUFBQTtBQUdULDJDQUFpQyxhQUFhLG1CQUFtQixhQUFhLE9BQU87QUFHbkYsZ0JBQUksc0JBQXNCLFFBQVEsa0JBQWtCLFFBQVEsVUFBVTtBQUdwRSxzQ0FBd0IsYUFBYSxrQkFBa0I7QUFDdkQsa0JBQUksV0FBVyxTQUFTLG1CQUFtQjtBQUMzQyx1QkFBUyxTQUFTO0FBQ2xCLHFCQUFPO0FBQUE7QUFLVCxvQ0FBd0IsYUFBYTtBQUNyQyxnQkFBSSxVQUFVLG9CQUFvQixhQUFhLFlBQVksTUFBTTtBQUNqRSxvQkFBUSxTQUFTO0FBQ2pCLG1CQUFPO0FBQUE7QUFHVCwwQ0FBZ0MsYUFBYSxtQkFBbUIsU0FBUyxPQUFPO0FBQzlFLGdCQUFJLE1BQU0sUUFBUTtBQUNsQixnQkFBSSxRQUFRO0FBRVosbUJBQU8sVUFBVSxNQUFNO0FBR3JCLGtCQUFJLE1BQU0sUUFBUSxLQUFLO0FBQ3JCLG9CQUFJLGNBQWMsUUFBUTtBQUUxQixvQkFBSSxnQkFBZ0IscUJBQXFCO0FBQ3ZDLHNCQUFJLE1BQU0sUUFBUSxVQUFVO0FBQzFCLDRDQUF3QixhQUFhLE1BQU07QUFDM0Msd0JBQUksV0FBVyxTQUFTLE9BQU8sUUFBUSxNQUFNO0FBQzdDLDZCQUFTLFNBQVM7QUFFbEI7QUFDRSwrQkFBUyxlQUFlLFFBQVE7QUFDaEMsK0JBQVMsY0FBYyxRQUFRO0FBQUE7QUFHakMsMkJBQU87QUFBQTtBQUFBLHVCQUVKO0FBQ0wsc0JBQUksTUFBTSxnQkFBZ0IsZUFDekIsa0NBQWtDLE9BQU8sWUFJekMsT0FBTyxnQkFBZ0IsWUFBWSxnQkFBZ0IsUUFBUSxZQUFZLGFBQWEsbUJBQW1CLFlBQVksaUJBQWlCLE1BQU0sTUFBTTtBQUMvSSw0Q0FBd0IsYUFBYSxNQUFNO0FBRTNDLHdCQUFJLFlBQVksU0FBUyxPQUFPLFFBQVE7QUFFeEMsOEJBQVUsTUFBTSxVQUFVLGFBQWEsT0FBTztBQUM5Qyw4QkFBVSxTQUFTO0FBRW5CO0FBQ0UsZ0NBQVUsZUFBZSxRQUFRO0FBQ2pDLGdDQUFVLGNBQWMsUUFBUTtBQUFBO0FBR2xDLDJCQUFPO0FBQUE7QUFBQTtBQUtYLHdDQUF3QixhQUFhO0FBQ3JDO0FBQUEscUJBQ0s7QUFDTCw0QkFBWSxhQUFhO0FBQUE7QUFHM0Isc0JBQVEsTUFBTTtBQUFBO0FBR2hCLGdCQUFJLFFBQVEsU0FBUyxxQkFBcUI7QUFDeEMsa0JBQUksVUFBVSx3QkFBd0IsUUFBUSxNQUFNLFVBQVUsWUFBWSxNQUFNLE9BQU8sUUFBUTtBQUMvRixzQkFBUSxTQUFTO0FBQ2pCLHFCQUFPO0FBQUEsbUJBQ0Y7QUFDTCxrQkFBSSxZQUFZLHVCQUF1QixTQUFTLFlBQVksTUFBTTtBQUVsRSx3QkFBVSxNQUFNLFVBQVUsYUFBYSxtQkFBbUI7QUFDMUQsd0JBQVUsU0FBUztBQUNuQixxQkFBTztBQUFBO0FBQUE7QUFJWCx5Q0FBK0IsYUFBYSxtQkFBbUIsUUFBUSxPQUFPO0FBQzVFLGdCQUFJLE1BQU0sT0FBTztBQUNqQixnQkFBSSxRQUFRO0FBRVosbUJBQU8sVUFBVSxNQUFNO0FBR3JCLGtCQUFJLE1BQU0sUUFBUSxLQUFLO0FBQ3JCLG9CQUFJLE1BQU0sUUFBUSxjQUFjLE1BQU0sVUFBVSxrQkFBa0IsT0FBTyxpQkFBaUIsTUFBTSxVQUFVLG1CQUFtQixPQUFPLGdCQUFnQjtBQUNsSiwwQ0FBd0IsYUFBYSxNQUFNO0FBQzNDLHNCQUFJLFdBQVcsU0FBUyxPQUFPLE9BQU8sWUFBWTtBQUNsRCwyQkFBUyxTQUFTO0FBQ2xCLHlCQUFPO0FBQUEsdUJBQ0Y7QUFDTCwwQ0FBd0IsYUFBYTtBQUNyQztBQUFBO0FBQUEscUJBRUc7QUFDTCw0QkFBWSxhQUFhO0FBQUE7QUFHM0Isc0JBQVEsTUFBTTtBQUFBO0FBR2hCLGdCQUFJLFVBQVUsc0JBQXNCLFFBQVEsWUFBWSxNQUFNO0FBQzlELG9CQUFRLFNBQVM7QUFDakIsbUJBQU87QUFBQTtBQU1ULHlDQUE4QixhQUFhLG1CQUFtQixVQUFVLE9BQU87QUFRN0UsZ0JBQUksNEJBQTRCLE9BQU8sYUFBYSxZQUFZLGFBQWEsUUFBUSxTQUFTLFNBQVMsdUJBQXVCLFNBQVMsUUFBUTtBQUUvSSxnQkFBSSwyQkFBMkI7QUFDN0IseUJBQVcsU0FBUyxNQUFNO0FBQUE7QUFJNUIsZ0JBQUksT0FBTyxhQUFhLFlBQVksYUFBYSxNQUFNO0FBQ3JELHNCQUFRLFNBQVM7QUFBQSxxQkFDVjtBQUNILHlCQUFPLGlCQUFpQix1QkFBdUIsYUFBYSxtQkFBbUIsVUFBVTtBQUFBLHFCQUV0RjtBQUNILHlCQUFPLGlCQUFpQixzQkFBc0IsYUFBYSxtQkFBbUIsVUFBVTtBQUFBLHFCQUVyRixpQkFDSDtBQUNFLHNCQUFJLFVBQVUsU0FBUztBQUN2QixzQkFBSSxPQUFPLFNBQVM7QUFFcEIseUJBQU8sc0JBQXFCLGFBQWEsbUJBQW1CLEtBQUssVUFBVTtBQUFBO0FBQUE7QUFLakYsa0JBQUksUUFBUSxXQUFXO0FBQ3JCLHVCQUFPLHVCQUF1QixhQUFhLG1CQUFtQixVQUFVO0FBQUE7QUFHMUUsa0JBQUksY0FBYyxXQUFXO0FBQzNCLHVCQUFPLDBCQUEwQixhQUFhLG1CQUFtQixVQUFVO0FBQUE7QUFHN0UsdUNBQXlCLGFBQWE7QUFBQTtBQUd4QyxnQkFBSSxPQUFPLGFBQWEsWUFBWSxhQUFhLE1BQU0sT0FBTyxhQUFhLFVBQVU7QUFDbkYscUJBQU8saUJBQWlCLHdCQUF3QixhQUFhLG1CQUFtQixLQUFLLFVBQVU7QUFBQTtBQUdqRztBQUNFLGtCQUFJLE9BQU8sYUFBYSxZQUFZO0FBQ2xDLG1DQUFtQjtBQUFBO0FBQUE7QUFLdkIsbUJBQU8sd0JBQXdCLGFBQWE7QUFBQTtBQUc5QyxpQkFBTztBQUFBO0FBR1QsWUFBSSx1QkFBdUIsZ0JBQWdCO0FBQzNDLFlBQUksbUJBQW1CLGdCQUFnQjtBQUN2QyxrQ0FBMEIsVUFBUyxpQkFBZ0I7QUFDakQsY0FBSSxhQUFZLFFBQVEsZ0JBQWUsVUFBVSxTQUFRLE9BQU87QUFDOUQsa0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsY0FBSSxnQkFBZSxVQUFVLE1BQU07QUFDakM7QUFBQTtBQUdGLGNBQUksZUFBZSxnQkFBZTtBQUNsQyxjQUFJLFdBQVcscUJBQXFCLGNBQWMsYUFBYTtBQUMvRCwwQkFBZSxRQUFRO0FBQ3ZCLG1CQUFTLFNBQVM7QUFFbEIsaUJBQU8sYUFBYSxZQUFZLE1BQU07QUFDcEMsMkJBQWUsYUFBYTtBQUM1Qix1QkFBVyxTQUFTLFVBQVUscUJBQXFCLGNBQWMsYUFBYTtBQUM5RSxxQkFBUyxTQUFTO0FBQUE7QUFHcEIsbUJBQVMsVUFBVTtBQUFBO0FBR3JCLGtDQUEwQixpQkFBZ0IsT0FBTztBQUMvQyxjQUFJLFFBQVEsZ0JBQWU7QUFFM0IsaUJBQU8sVUFBVSxNQUFNO0FBQ3JCLGdDQUFvQixPQUFPO0FBQzNCLG9CQUFRLE1BQU07QUFBQTtBQUFBO0FBSWxCLFlBQUksYUFBYTtBQUNqQixZQUFJLHVCQUF1QixhQUFhO0FBQ3hDLFlBQUksMEJBQTBCLGFBQWE7QUFDM0MsWUFBSSwwQkFBMEIsYUFBYTtBQUUzQyxpQ0FBeUIsR0FBRztBQUMxQixjQUFJLE1BQU0sWUFBWTtBQUNwQixrQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQixpQkFBTztBQUFBO0FBR1Qsd0NBQWdDO0FBQzlCLGNBQUksZUFBZSxnQkFBZ0Isd0JBQXdCO0FBQzNELGlCQUFPO0FBQUE7QUFHVCxtQ0FBMkIsT0FBTyxrQkFBa0I7QUFHbEQsZUFBSyx5QkFBeUIsa0JBQWtCO0FBR2hELGVBQUsseUJBQXlCLE9BQU87QUFNckMsZUFBSyxzQkFBc0IsWUFBWTtBQUN2QyxjQUFJLGtCQUFrQixtQkFBbUI7QUFFekMsY0FBSSxzQkFBc0I7QUFDMUIsZUFBSyxzQkFBc0IsaUJBQWlCO0FBQUE7QUFHOUMsa0NBQTBCLE9BQU87QUFDL0IsY0FBSSxzQkFBc0I7QUFDMUIsY0FBSSx5QkFBeUI7QUFDN0IsY0FBSSx5QkFBeUI7QUFBQTtBQUcvQixrQ0FBMEI7QUFDeEIsY0FBSSxVQUFVLGdCQUFnQixxQkFBcUI7QUFDbkQsaUJBQU87QUFBQTtBQUdULGlDQUF5QixPQUFPO0FBQzlCLGNBQUksZUFBZSxnQkFBZ0Isd0JBQXdCO0FBQzNELGNBQUksVUFBVSxnQkFBZ0IscUJBQXFCO0FBQ25ELGNBQUksY0FBYyxvQkFBb0IsU0FBUyxNQUFNO0FBRXJELGNBQUksWUFBWSxhQUFhO0FBQzNCO0FBQUE7QUFLRixlQUFLLHlCQUF5QixPQUFPO0FBQ3JDLGVBQUssc0JBQXNCLGFBQWE7QUFBQTtBQUcxQyxnQ0FBd0IsT0FBTztBQUc3QixjQUFJLHdCQUF3QixZQUFZLE9BQU87QUFDN0M7QUFBQTtBQUdGLGNBQUksc0JBQXNCO0FBQzFCLGNBQUkseUJBQXlCO0FBQUE7QUFHL0IsWUFBSSx5QkFBeUI7QUFLN0IsWUFBSSw2QkFBNkI7QUFRakMsWUFBSSxpQ0FBaUM7QUFJckMsWUFBSSx3QkFBd0I7QUFDNUIsWUFBSSxzQkFBc0IsYUFBYTtBQUN2QyxvQ0FBNEIsZUFBZSxNQUFNO0FBQy9DLGlCQUFRLGlCQUFnQixVQUFVO0FBQUE7QUFFcEMsa0RBQTBDLGVBQWU7QUFDdkQsaUJBQU8sZ0JBQWdCO0FBQUE7QUFFekIsMkNBQW1DLGVBQWUsZ0JBQWdCO0FBQ2hFLGlCQUFPLGdCQUFnQiw2QkFBNkI7QUFBQTtBQUV0RCwyQ0FBbUMsZUFBZSxnQkFBZ0I7QUFDaEUsaUJBQU8sZ0JBQWdCO0FBQUE7QUFFekIscUNBQTZCLE9BQU8sWUFBWTtBQUM5QyxlQUFLLHFCQUFxQixZQUFZO0FBQUE7QUFFeEMsb0NBQTRCLE9BQU87QUFDakMsY0FBSSxxQkFBcUI7QUFBQTtBQUczQix1Q0FBK0IsaUJBQWdCLG9CQUFvQjtBQUdqRSxjQUFJLFlBQVksZ0JBQWU7QUFFL0IsY0FBSSxjQUFjLE1BQU07QUFDdEIsZ0JBQUksVUFBVSxlQUFlLE1BQU07QUFFakMscUJBQU87QUFBQTtBQUdULG1CQUFPO0FBQUE7QUFHVCxjQUFJLFFBQVEsZ0JBQWU7QUFFM0I7QUFDRSxtQkFBTztBQUFBO0FBQUE7QUFHWCxvQ0FBNEIsS0FBSztBQUMvQixjQUFJLE9BQU87QUFFWCxpQkFBTyxTQUFTLE1BQU07QUFDcEIsZ0JBQUksS0FBSyxRQUFRLG1CQUFtQjtBQUNsQyxrQkFBSSxRQUFRLEtBQUs7QUFFakIsa0JBQUksVUFBVSxNQUFNO0FBQ2xCLG9CQUFJLGFBQWEsTUFBTTtBQUV2QixvQkFBSSxlQUFlLFFBQVEsMEJBQTBCLGVBQWUsMkJBQTJCLGFBQWE7QUFDMUcseUJBQU87QUFBQTtBQUFBO0FBQUEsdUJBR0YsS0FBSyxRQUFRLHlCQUV4QixLQUFLLGNBQWMsZ0JBQWdCLFFBQVc7QUFDNUMsa0JBQUksY0FBYyxNQUFLLFFBQVEsZ0JBQWdCO0FBRS9DLGtCQUFJLGFBQVk7QUFDZCx1QkFBTztBQUFBO0FBQUEsdUJBRUEsS0FBSyxVQUFVLE1BQU07QUFDOUIsbUJBQUssTUFBTSxTQUFTO0FBQ3BCLHFCQUFPLEtBQUs7QUFDWjtBQUFBO0FBR0YsZ0JBQUksU0FBUyxLQUFLO0FBQ2hCLHFCQUFPO0FBQUE7QUFHVCxtQkFBTyxLQUFLLFlBQVksTUFBTTtBQUM1QixrQkFBSSxLQUFLLFdBQVcsUUFBUSxLQUFLLFdBQVcsS0FBSztBQUMvQyx1QkFBTztBQUFBO0FBR1QscUJBQU8sS0FBSztBQUFBO0FBR2QsaUJBQUssUUFBUSxTQUFTLEtBQUs7QUFDM0IsbUJBQU8sS0FBSztBQUFBO0FBR2QsaUJBQU87QUFBQTtBQUdULFlBQUksWUFFSjtBQUVBLFlBQUksWUFFSjtBQUVBLFlBQUksWUFFSjtBQUNBLFlBQUksU0FFSjtBQUNBLFlBQUksWUFFSjtBQUtBLFlBQUksd0JBQXdCO0FBQzVCLCtDQUF1QztBQUNyQyxtQkFBUyxJQUFJLEdBQUcsSUFBSSxzQkFBc0IsUUFBUSxLQUFLO0FBQ3JELGdCQUFJLGdCQUFnQixzQkFBc0I7QUFFMUM7QUFDRSw0QkFBYyxnQ0FBZ0M7QUFBQTtBQUFBO0FBSWxELGdDQUFzQixTQUFTO0FBQUE7QUFNakMsbURBQTJDLE9BQU0sZUFBZTtBQUM5RCxjQUFJLGFBQWEsY0FBYztBQUMvQixjQUFJLFVBQVUsV0FBVyxjQUFjO0FBR3ZDLGNBQUksTUFBSyxtQ0FBbUMsTUFBTTtBQUNoRCxrQkFBSyxrQ0FBa0MsQ0FBQyxlQUFlO0FBQUEsaUJBQ2xEO0FBQ0wsa0JBQUssZ0NBQWdDLEtBQUssZUFBZTtBQUFBO0FBQUE7QUFJN0QsWUFBSSwyQkFBMkIscUJBQXFCLHdCQUNoRCw0QkFBNEIscUJBQXFCO0FBQ3JELFlBQUk7QUFDSixZQUFJO0FBRUo7QUFDRSxvREFBMEMsSUFBSTtBQUFBO0FBSWhELFlBQUksY0FBYztBQUdsQixZQUFJLDRCQUE0QjtBQUtoQyxZQUFJLGNBQWM7QUFDbEIsWUFBSSxxQkFBcUI7QUFLekIsWUFBSSwrQkFBK0I7QUFLbkMsWUFBSSw2Q0FBNkM7QUFFakQsWUFBSSxpQkFBaUI7QUFJckIsWUFBSSx3QkFBd0I7QUFDNUIsWUFBSSxrQkFBa0I7QUFFdEIsWUFBSSx1QkFBdUI7QUFJM0IsWUFBSSxlQUFlO0FBQ25CLFlBQUksMEJBQTBCO0FBSTlCLFlBQUksNkJBQTZCO0FBRWpDLHFDQUE2QjtBQUMzQjtBQUNFLGdCQUFJLFdBQVc7QUFFZixnQkFBSSxpQkFBaUIsTUFBTTtBQUN6Qiw2QkFBZSxDQUFDO0FBQUEsbUJBQ1g7QUFDTCwyQkFBYSxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBS3hCLHNDQUE4QjtBQUM1QjtBQUNFLGdCQUFJLFdBQVc7QUFFZixnQkFBSSxpQkFBaUIsTUFBTTtBQUN6QjtBQUVBLGtCQUFJLGFBQWEsNkJBQTZCLFVBQVU7QUFDdEQsd0NBQXdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNaEMsc0NBQThCLE1BQU07QUFDbEM7QUFDRSxnQkFBSSxTQUFTLFVBQWEsU0FBUyxRQUFRLENBQUMsUUFBUSxPQUFPO0FBR3pELG9CQUFNLG9JQUF5SSxzQkFBc0IsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUtsTCx5Q0FBaUMsaUJBQWlCO0FBQ2hEO0FBQ0UsZ0JBQUksZ0JBQWdCLDBCQUEwQjtBQUU5QyxnQkFBSSxDQUFDLHdDQUF3QyxJQUFJLGdCQUFnQjtBQUMvRCxzREFBd0MsSUFBSTtBQUU1QyxrQkFBSSxpQkFBaUIsTUFBTTtBQUN6QixvQkFBSSxRQUFRO0FBQ1osb0JBQUksb0JBQW9CO0FBRXhCLHlCQUFTLElBQUksR0FBRyxLQUFLLHlCQUF5QixLQUFLO0FBQ2pELHNCQUFJLGNBQWMsYUFBYTtBQUMvQixzQkFBSSxjQUFjLE1BQU0sMEJBQTBCLGtCQUFrQjtBQUNwRSxzQkFBSSxNQUFNLElBQUksSUFBSSxPQUFPO0FBR3pCLHlCQUFPLElBQUksU0FBUyxtQkFBbUI7QUFDckMsMkJBQU87QUFBQTtBQUdULHlCQUFPLGNBQWM7QUFDckIsMkJBQVM7QUFBQTtBQUdYLHNCQUFNLGlYQUErWSxlQUFlO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNNWEseUNBQWlDO0FBQy9CLGdCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLG9DQUE0QixVQUFVLFVBQVU7QUFDOUM7QUFDRSxnQkFBSSw0QkFBNEI7QUFFOUIscUJBQU87QUFBQTtBQUFBO0FBSVgsY0FBSSxhQUFhLE1BQU07QUFDckI7QUFDRSxvQkFBTSw0S0FBc0w7QUFBQTtBQUc5TCxtQkFBTztBQUFBO0FBR1Q7QUFHRSxnQkFBSSxTQUFTLFdBQVcsU0FBUyxRQUFRO0FBQ3ZDLG9CQUFNLHNKQUFxSyxzQkFBc0IsTUFBTSxTQUFTLEtBQUssUUFBUSxLQUFLLE1BQU0sU0FBUyxLQUFLLFFBQVE7QUFBQTtBQUFBO0FBSWxRLG1CQUFTLElBQUksR0FBRyxJQUFJLFNBQVMsVUFBVSxJQUFJLFNBQVMsUUFBUSxLQUFLO0FBQy9ELGdCQUFJLFNBQVMsU0FBUyxJQUFJLFNBQVMsS0FBSztBQUN0QztBQUFBO0FBR0YsbUJBQU87QUFBQTtBQUdULGlCQUFPO0FBQUE7QUFHVCxpQ0FBeUIsVUFBUyxpQkFBZ0IsV0FBVyxPQUFPLFdBQVcsaUJBQWlCO0FBQzlGLHdCQUFjO0FBQ2Qsc0NBQTRCO0FBRTVCO0FBQ0UsMkJBQWUsYUFBWSxPQUFPLFNBQVEsa0JBQWtCO0FBQzVELHNDQUEwQjtBQUUxQix5Q0FBNkIsYUFBWSxRQUFRLFNBQVEsU0FBUyxnQkFBZTtBQUFBO0FBR25GLDBCQUFlLGdCQUFnQjtBQUMvQiwwQkFBZSxjQUFjO0FBQzdCLDBCQUFlLFFBQVE7QUFZdkI7QUFDRSxnQkFBSSxhQUFZLFFBQVEsU0FBUSxrQkFBa0IsTUFBTTtBQUN0RCx1Q0FBeUIsVUFBVTtBQUFBLHVCQUMxQixpQkFBaUIsTUFBTTtBQU1oQyx1Q0FBeUIsVUFBVTtBQUFBLG1CQUM5QjtBQUNMLHVDQUF5QixVQUFVO0FBQUE7QUFBQTtBQUl2QyxjQUFJLFdBQVcsVUFBVSxPQUFPO0FBRWhDLGNBQUksNENBQTRDO0FBRzlDLGdCQUFJLG9CQUFvQjtBQUV4QixlQUFHO0FBQ0QsMkRBQTZDO0FBQzdDLCtCQUFpQjtBQUVqQixrQkFBSSxxQkFBcUIsaUJBQWlCO0FBQ3hDLHNCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLG1DQUFxQjtBQUVyQjtBQUdFLDZDQUE2QjtBQUFBO0FBSS9CLDRCQUFjO0FBQ2QsbUNBQXFCO0FBQ3JCLDhCQUFlLGNBQWM7QUFFN0I7QUFFRSwwQ0FBMEI7QUFBQTtBQUc1Qix1Q0FBeUIsVUFBVztBQUNwQyx5QkFBVyxVQUFVLE9BQU87QUFBQSxxQkFDckI7QUFBQTtBQUtYLG1DQUF5QixVQUFVO0FBRW5DO0FBQ0UsNEJBQWUsa0JBQWtCO0FBQUE7QUFLbkMsY0FBSSx1QkFBdUIsZ0JBQWdCLFFBQVEsWUFBWSxTQUFTO0FBQ3hFLHdCQUFjO0FBQ2Qsc0NBQTRCO0FBQzVCLHdCQUFjO0FBQ2QsK0JBQXFCO0FBRXJCO0FBQ0UsbUNBQXVCO0FBQ3ZCLDJCQUFlO0FBQ2Ysc0NBQTBCO0FBSzFCLGdCQUFJLGFBQVksUUFBUyxVQUFRLFFBQVEsZ0JBQWlCLGlCQUFlLFFBQVEsZUFLaEYsVUFBUSxPQUFPLG9CQUFvQixRQUFRO0FBQzFDLG9CQUFNO0FBQUE7QUFBQTtBQUlWLHlDQUErQjtBQUcvQixjQUFJLHNCQUFzQjtBQUN4QixrQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQixpQkFBTztBQUFBO0FBRVQsd0NBQWdDO0FBSTlCLGNBQUksa0JBQWtCLG1CQUFtQjtBQUN6QywyQkFBaUI7QUFDakIsaUJBQU87QUFBQTtBQUVULDhCQUFzQixVQUFTLGlCQUFnQixPQUFPO0FBQ3BELDBCQUFlLGNBQWMsU0FBUTtBQUdyQyxjQUFNLGlCQUFlLE9BQU8sdUJBQXVCLFFBQVE7QUFDekQsNEJBQWUsU0FBUyxDQUFFLG1CQUFrQixpQkFBaUIsVUFBVTtBQUFBLGlCQUNsRTtBQUNMLDRCQUFlLFNBQVMsQ0FBRSxXQUFVO0FBQUE7QUFHdEMsbUJBQVEsUUFBUSxZQUFZLFNBQVEsT0FBTztBQUFBO0FBRTdDLHdDQUFnQztBQUc5QixtQ0FBeUIsVUFBVTtBQUVuQyxjQUFJLDhCQUE4QjtBQVNoQyxnQkFBSSxPQUFPLDBCQUEwQjtBQUVyQyxtQkFBTyxTQUFTLE1BQU07QUFDcEIsa0JBQUksUUFBUSxLQUFLO0FBRWpCLGtCQUFJLFVBQVUsTUFBTTtBQUNsQixzQkFBTSxVQUFVO0FBQUE7QUFHbEIscUJBQU8sS0FBSztBQUFBO0FBR2QsMkNBQStCO0FBQUE7QUFHakMsd0JBQWM7QUFDZCxzQ0FBNEI7QUFDNUIsd0JBQWM7QUFDZCwrQkFBcUI7QUFFckI7QUFDRSwyQkFBZTtBQUNmLHNDQUEwQjtBQUMxQixtQ0FBdUI7QUFDdkIsaURBQXFDO0FBQUE7QUFHdkMsdURBQTZDO0FBQzdDLDJCQUFpQjtBQUFBO0FBR25CLDJDQUFtQztBQUNqQyxjQUFJLE9BQU87QUFBQSxZQUNULGVBQWU7QUFBQSxZQUNmLFdBQVc7QUFBQSxZQUNYLFdBQVc7QUFBQSxZQUNYLE9BQU87QUFBQSxZQUNQLE1BQU07QUFBQTtBQUdSLGNBQUksdUJBQXVCLE1BQU07QUFFL0Isc0NBQTBCLGdCQUFnQixxQkFBcUI7QUFBQSxpQkFDMUQ7QUFFTCxpQ0FBcUIsbUJBQW1CLE9BQU87QUFBQTtBQUdqRCxpQkFBTztBQUFBO0FBR1QsNENBQW9DO0FBTWxDLGNBQUk7QUFFSixjQUFJLGdCQUFnQixNQUFNO0FBQ3hCLGdCQUFJLFdBQVUsMEJBQTBCO0FBRXhDLGdCQUFJLGFBQVksTUFBTTtBQUNwQixnQ0FBa0IsU0FBUTtBQUFBLG1CQUNyQjtBQUNMLGdDQUFrQjtBQUFBO0FBQUEsaUJBRWY7QUFDTCw4QkFBa0IsWUFBWTtBQUFBO0FBR2hDLGNBQUk7QUFFSixjQUFJLHVCQUF1QixNQUFNO0FBQy9CLHFDQUF5QiwwQkFBMEI7QUFBQSxpQkFDOUM7QUFDTCxxQ0FBeUIsbUJBQW1CO0FBQUE7QUFHOUMsY0FBSSwyQkFBMkIsTUFBTTtBQUVuQyxpQ0FBcUI7QUFDckIscUNBQXlCLG1CQUFtQjtBQUM1QywwQkFBYztBQUFBLGlCQUNUO0FBRUwsZ0JBQUksb0JBQW9CLE1BQU07QUFDNUIsb0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsMEJBQWM7QUFDZCxnQkFBSSxVQUFVO0FBQUEsY0FDWixlQUFlLFlBQVk7QUFBQSxjQUMzQixXQUFXLFlBQVk7QUFBQSxjQUN2QixXQUFXLFlBQVk7QUFBQSxjQUN2QixPQUFPLFlBQVk7QUFBQSxjQUNuQixNQUFNO0FBQUE7QUFHUixnQkFBSSx1QkFBdUIsTUFBTTtBQUUvQix3Q0FBMEIsZ0JBQWdCLHFCQUFxQjtBQUFBLG1CQUMxRDtBQUVMLG1DQUFxQixtQkFBbUIsT0FBTztBQUFBO0FBQUE7QUFJbkQsaUJBQU87QUFBQTtBQUdULHNEQUE4QztBQUM1QyxpQkFBTztBQUFBLFlBQ0wsWUFBWTtBQUFBLFlBQ1osUUFBUTtBQUFBO0FBQUE7QUFJWixtQ0FBMkIsT0FBTyxRQUFRO0FBRXhDLGlCQUFPLE9BQU8sV0FBVyxhQUFhLE9BQU8sU0FBUztBQUFBO0FBR3hELDhCQUFzQixTQUFTLFlBQVksTUFBTTtBQUMvQyxjQUFJLE9BQU87QUFDWCxjQUFJO0FBRUosY0FBSSxTQUFTLFFBQVc7QUFDdEIsMkJBQWUsS0FBSztBQUFBLGlCQUNmO0FBQ0wsMkJBQWU7QUFBQTtBQUdqQixlQUFLLGdCQUFnQixLQUFLLFlBQVk7QUFDdEMsY0FBSSxRQUFRO0FBQUEsWUFDVixTQUFTO0FBQUEsWUFDVCxhQUFhO0FBQUEsWUFDYixPQUFPO0FBQUEsWUFDUCxVQUFVO0FBQUEsWUFDVixxQkFBcUI7QUFBQSxZQUNyQixtQkFBbUI7QUFBQTtBQUVyQixlQUFLLFFBQVE7QUFDYixjQUFJLFdBQVcsTUFBTSxXQUFXLHNCQUFzQixLQUFLLE1BQU0sMkJBQTJCO0FBQzVGLGlCQUFPLENBQUMsS0FBSyxlQUFlO0FBQUE7QUFHOUIsK0JBQXVCLFNBQVMsWUFBWSxNQUFNO0FBQ2hELGNBQUksT0FBTztBQUNYLGNBQUksUUFBUSxLQUFLO0FBRWpCLGNBQUksVUFBVSxNQUFNO0FBQ2xCLGtCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLGdCQUFNLHNCQUFzQjtBQUM1QixjQUFJLFdBQVU7QUFFZCxjQUFJLFlBQVksU0FBUTtBQUV4QixjQUFJLGVBQWUsTUFBTTtBQUV6QixjQUFJLGlCQUFpQixNQUFNO0FBR3pCLGdCQUFJLGNBQWMsTUFBTTtBQUV0QixrQkFBSSxZQUFZLFVBQVU7QUFDMUIsa0JBQUksZUFBZSxhQUFhO0FBQ2hDLHdCQUFVLE9BQU87QUFDakIsMkJBQWEsT0FBTztBQUFBO0FBR3RCO0FBQ0Usa0JBQUksU0FBUSxjQUFjLFdBQVc7QUFHbkMsc0JBQU07QUFBQTtBQUFBO0FBSVYscUJBQVEsWUFBWSxZQUFZO0FBQ2hDLGtCQUFNLFVBQVU7QUFBQTtBQUdsQixjQUFJLGNBQWMsTUFBTTtBQUV0QixnQkFBSSxRQUFRLFVBQVU7QUFDdEIsZ0JBQUksV0FBVyxTQUFRO0FBQ3ZCLGdCQUFJLGVBQWU7QUFDbkIsZ0JBQUksb0JBQW9CO0FBQ3hCLGdCQUFJLG1CQUFtQjtBQUN2QixnQkFBSSxTQUFTO0FBRWIsZUFBRztBQUNELGtCQUFJLGFBQWEsT0FBTztBQUV4QixrQkFBSSxDQUFDLGdCQUFnQixhQUFhLGFBQWE7QUFJN0Msb0JBQUksUUFBUTtBQUFBLGtCQUNWLE1BQU07QUFBQSxrQkFDTixRQUFRLE9BQU87QUFBQSxrQkFDZixlQUFlLE9BQU87QUFBQSxrQkFDdEIsWUFBWSxPQUFPO0FBQUEsa0JBQ25CLE1BQU07QUFBQTtBQUdSLG9CQUFJLHFCQUFxQixNQUFNO0FBQzdCLHNDQUFvQixtQkFBbUI7QUFDdkMsaUNBQWU7QUFBQSx1QkFDVjtBQUNMLHFDQUFtQixpQkFBaUIsT0FBTztBQUFBO0FBTTdDLDBDQUEwQixRQUFRLFdBQVcsMEJBQTBCLE9BQU87QUFDOUUsdUNBQXVCO0FBQUEscUJBQ2xCO0FBRUwsb0JBQUkscUJBQXFCLE1BQU07QUFDN0Isc0JBQUksU0FBUztBQUFBLG9CQUlYLE1BQU07QUFBQSxvQkFDTixRQUFRLE9BQU87QUFBQSxvQkFDZixlQUFlLE9BQU87QUFBQSxvQkFDdEIsWUFBWSxPQUFPO0FBQUEsb0JBQ25CLE1BQU07QUFBQTtBQUVSLHFDQUFtQixpQkFBaUIsT0FBTztBQUFBO0FBSTdDLG9CQUFJLE9BQU8sZUFBZTtBQUd4Qiw2QkFBVyxPQUFPO0FBQUEsdUJBQ2I7QUFDTCxzQkFBSSxTQUFTLE9BQU87QUFDcEIsNkJBQVcsUUFBUSxVQUFVO0FBQUE7QUFBQTtBQUlqQyx1QkFBUyxPQUFPO0FBQUEscUJBQ1QsV0FBVyxRQUFRLFdBQVc7QUFFdkMsZ0JBQUkscUJBQXFCLE1BQU07QUFDN0IsNkJBQWU7QUFBQSxtQkFDVjtBQUNMLCtCQUFpQixPQUFPO0FBQUE7QUFLMUIsZ0JBQUksQ0FBQyxTQUFTLFVBQVUsS0FBSyxnQkFBZ0I7QUFDM0M7QUFBQTtBQUdGLGlCQUFLLGdCQUFnQjtBQUNyQixpQkFBSyxZQUFZO0FBQ2pCLGlCQUFLLFlBQVk7QUFDakIsa0JBQU0sb0JBQW9CO0FBQUE7QUFNNUIsY0FBSSxrQkFBa0IsTUFBTTtBQUU1QixjQUFJLG9CQUFvQixNQUFNO0FBQzVCLGdCQUFJLGNBQWM7QUFFbEIsZUFBRztBQUNELGtCQUFJLGtCQUFrQixZQUFZO0FBQ2xDLHdDQUEwQixRQUFRLFdBQVcsMEJBQTBCLE9BQU87QUFDOUUscUNBQXVCO0FBQ3ZCLDRCQUFjLFlBQVk7QUFBQSxxQkFDbkIsZ0JBQWdCO0FBQUEscUJBQ2hCLGNBQWMsTUFBTTtBQUc3QixrQkFBTSxRQUFRO0FBQUE7QUFHaEIsY0FBSSxXQUFXLE1BQU07QUFDckIsaUJBQU8sQ0FBQyxLQUFLLGVBQWU7QUFBQTtBQUc5QixpQ0FBeUIsU0FBUyxZQUFZLE1BQU07QUFDbEQsY0FBSSxPQUFPO0FBQ1gsY0FBSSxRQUFRLEtBQUs7QUFFakIsY0FBSSxVQUFVLE1BQU07QUFDbEIsa0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsZ0JBQU0sc0JBQXNCO0FBRzVCLGNBQUksV0FBVyxNQUFNO0FBQ3JCLGNBQUksd0JBQXdCLE1BQU07QUFDbEMsY0FBSSxXQUFXLEtBQUs7QUFFcEIsY0FBSSwwQkFBMEIsTUFBTTtBQUVsQyxrQkFBTSxVQUFVO0FBQ2hCLGdCQUFJLHlCQUF5QixzQkFBc0I7QUFDbkQsZ0JBQUksU0FBUztBQUViLGVBQUc7QUFJRCxrQkFBSSxTQUFTLE9BQU87QUFDcEIseUJBQVcsUUFBUSxVQUFVO0FBQzdCLHVCQUFTLE9BQU87QUFBQSxxQkFDVCxXQUFXO0FBSXBCLGdCQUFJLENBQUMsU0FBUyxVQUFVLEtBQUssZ0JBQWdCO0FBQzNDO0FBQUE7QUFHRixpQkFBSyxnQkFBZ0I7QUFLckIsZ0JBQUksS0FBSyxjQUFjLE1BQU07QUFDM0IsbUJBQUssWUFBWTtBQUFBO0FBR25CLGtCQUFNLG9CQUFvQjtBQUFBO0FBRzVCLGlCQUFPLENBQUMsVUFBVTtBQUFBO0FBR3BCLG9DQUE0QixRQUFRLGFBQWEsV0FBVztBQUMxRDtBQUNFLG1CQUFPO0FBQUE7QUFBQTtBQUlYLHFDQUE2QixRQUFRLGFBQWEsV0FBVztBQUMzRDtBQUNFLG1CQUFPO0FBQUE7QUFBQTtBQUlYLHdDQUFnQyxXQUFXLGFBQWEsbUJBQW1CO0FBQ3pFLGNBQUksUUFBUTtBQUNaLGNBQUksT0FBTztBQUNYLGNBQUk7QUFDSixjQUFJLGVBQWM7QUFFbEIsY0FBSSxjQUFhO0FBQ2YsZ0JBQUksc0JBQXNCLFFBQVc7QUFDbkMsb0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsMkJBQWU7QUFFZjtBQUNFLGtCQUFJLENBQUMsNEJBQTRCO0FBQy9CLG9CQUFJLGlCQUFpQixxQkFBcUI7QUFDeEMsd0JBQU07QUFFTiwrQ0FBNkI7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFJOUI7QUFDTCwyQkFBZTtBQUVmO0FBQ0Usa0JBQUksQ0FBQyw0QkFBNEI7QUFDL0Isb0JBQUksaUJBQWlCO0FBRXJCLG9CQUFJLENBQUMsU0FBUyxjQUFjLGlCQUFpQjtBQUMzQyx3QkFBTTtBQUVOLCtDQUE2QjtBQUFBO0FBQUE7QUFBQTtBQVluQyxnQkFBSSxRQUFPO0FBRVgsZ0JBQUksVUFBUyxNQUFNO0FBQ2pCLG9CQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLGdCQUFJLENBQUMscUJBQXFCLE9BQU0sY0FBYztBQUM1Qyx3Q0FBMEIsT0FBTyxhQUFhO0FBQUE7QUFBQTtBQU9sRCxlQUFLLGdCQUFnQjtBQUNyQixjQUFJLE9BQU87QUFBQSxZQUNULE9BQU87QUFBQSxZQUNQO0FBQUE7QUFFRixlQUFLLFFBQVE7QUFFYixzQkFBWSxpQkFBaUIsS0FBSyxNQUFNLE9BQU8sTUFBTSxZQUFZLENBQUM7QUFRbEUsZ0JBQU0sU0FBUztBQUNmLHFCQUFXLFlBQVksV0FBVyxvQkFBb0IsS0FBSyxNQUFNLE9BQU8sTUFBTSxjQUFjLGNBQWMsUUFBVztBQUNySCxpQkFBTztBQUFBO0FBR1QseUNBQWlDLFdBQVcsYUFBYSxtQkFBbUI7QUFDMUUsY0FBSSxRQUFRO0FBQ1osY0FBSSxPQUFPO0FBSVgsY0FBSSxlQUFlO0FBRW5CO0FBQ0UsZ0JBQUksQ0FBQyw0QkFBNEI7QUFDL0Isa0JBQUksaUJBQWlCO0FBRXJCLGtCQUFJLENBQUMsU0FBUyxjQUFjLGlCQUFpQjtBQUMzQyxzQkFBTTtBQUVOLDZDQUE2QjtBQUFBO0FBQUE7QUFBQTtBQUtuQyxjQUFJLGVBQWUsS0FBSztBQUN4QixjQUFJLGtCQUFrQixDQUFDLFNBQVMsY0FBYztBQUU5QyxjQUFJLGlCQUFpQjtBQUNuQixpQkFBSyxnQkFBZ0I7QUFDckI7QUFBQTtBQUdGLGNBQUksT0FBTyxLQUFLO0FBQ2hCLHVCQUFhLGlCQUFpQixLQUFLLE1BQU0sT0FBTyxNQUFNLFlBQVksQ0FBQztBQUtuRSxjQUFJLEtBQUssZ0JBQWdCLGVBQWUsbUJBRXhDLHVCQUF1QixRQUFRLG1CQUFtQixjQUFjLE1BQU0sV0FBVztBQUMvRSxrQkFBTSxTQUFTO0FBQ2YsdUJBQVcsWUFBWSxXQUFXLG9CQUFvQixLQUFLLE1BQU0sT0FBTyxNQUFNLGNBQWMsY0FBYyxRQUFXO0FBSXJILGdCQUFJLFFBQU87QUFFWCxnQkFBSSxVQUFTLE1BQU07QUFDakIsb0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsZ0JBQUksQ0FBQyxxQkFBcUIsT0FBTSxjQUFjO0FBQzVDLHdDQUEwQixPQUFPLGFBQWE7QUFBQTtBQUFBO0FBSWxELGlCQUFPO0FBQUE7QUFHVCwyQ0FBbUMsT0FBTyxhQUFhLGtCQUFrQjtBQUN2RSxnQkFBTSxTQUFTO0FBQ2YsY0FBSSxRQUFRO0FBQUEsWUFDVjtBQUFBLFlBQ0EsT0FBTztBQUFBO0FBRVQsY0FBSSx1QkFBdUIsMEJBQTBCO0FBRXJELGNBQUkseUJBQXlCLE1BQU07QUFDakMsbUNBQXVCO0FBQ3ZCLHNDQUEwQixjQUFjO0FBQ3hDLGlDQUFxQixTQUFTLENBQUM7QUFBQSxpQkFDMUI7QUFDTCxnQkFBSSxTQUFTLHFCQUFxQjtBQUVsQyxnQkFBSSxXQUFXLE1BQU07QUFDbkIsbUNBQXFCLFNBQVMsQ0FBQztBQUFBLG1CQUMxQjtBQUNMLHFCQUFPLEtBQUs7QUFBQTtBQUFBO0FBQUE7QUFLbEIscUNBQTZCLE9BQU8sTUFBTSxjQUFjLGFBQWE7QUFFbkUsZUFBSyxRQUFRO0FBQ2IsZUFBSyxjQUFjO0FBS25CLGNBQUksdUJBQXVCLE9BQU87QUFFaEMsK0JBQW1CO0FBQUE7QUFBQTtBQUl2QixrQ0FBMEIsT0FBTyxNQUFNLFdBQVc7QUFDaEQsY0FBSSxvQkFBb0IsV0FBWTtBQUdsQyxnQkFBSSx1QkFBdUIsT0FBTztBQUVoQyxpQ0FBbUI7QUFBQTtBQUFBO0FBS3ZCLGlCQUFPLFVBQVU7QUFBQTtBQUduQix3Q0FBZ0MsTUFBTTtBQUNwQyxjQUFJLG9CQUFvQixLQUFLO0FBQzdCLGNBQUksWUFBWSxLQUFLO0FBRXJCLGNBQUk7QUFDRixnQkFBSSxZQUFZO0FBQ2hCLG1CQUFPLENBQUMsU0FBUyxXQUFXO0FBQUEsbUJBQ3JCLFFBQVA7QUFDQSxtQkFBTztBQUFBO0FBQUE7QUFJWCxvQ0FBNEIsT0FBTztBQUNqQyxnQ0FBc0IsT0FBTyxVQUFVO0FBQUE7QUFHekMsNEJBQW9CLGNBQWM7QUFDaEMsY0FBSSxPQUFPO0FBRVgsY0FBSSxPQUFPLGlCQUFpQixZQUFZO0FBRXRDLDJCQUFlO0FBQUE7QUFHakIsZUFBSyxnQkFBZ0IsS0FBSyxZQUFZO0FBQ3RDLGNBQUksUUFBUTtBQUFBLFlBQ1YsU0FBUztBQUFBLFlBQ1QsYUFBYTtBQUFBLFlBQ2IsT0FBTztBQUFBLFlBQ1AsVUFBVTtBQUFBLFlBQ1YscUJBQXFCO0FBQUEsWUFDckIsbUJBQW1CO0FBQUE7QUFFckIsZUFBSyxRQUFRO0FBQ2IsY0FBSSxXQUFXLE1BQU0sV0FBVyxpQkFBaUIsS0FBSyxNQUFNLDJCQUEyQjtBQUN2RixpQkFBTyxDQUFDLEtBQUssZUFBZTtBQUFBO0FBRzlCLDZCQUFxQixjQUFjO0FBQ2pDLGlCQUFPLGNBQWM7QUFBQTtBQUd2QiwrQkFBdUIsY0FBYztBQUNuQyxpQkFBTyxnQkFBZ0I7QUFBQTtBQUd6Qiw0QkFBb0IsS0FBSyxRQUFRLFNBQVMsTUFBTTtBQUM5QyxjQUFJLFNBQVM7QUFBQSxZQUNYO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFFQSxNQUFNO0FBQUE7QUFFUixjQUFJLHVCQUF1QiwwQkFBMEI7QUFFckQsY0FBSSx5QkFBeUIsTUFBTTtBQUNqQyxtQ0FBdUI7QUFDdkIsc0NBQTBCLGNBQWM7QUFDeEMsaUNBQXFCLGFBQWEsT0FBTyxPQUFPO0FBQUEsaUJBQzNDO0FBQ0wsZ0JBQUksYUFBYSxxQkFBcUI7QUFFdEMsZ0JBQUksZUFBZSxNQUFNO0FBQ3ZCLG1DQUFxQixhQUFhLE9BQU8sT0FBTztBQUFBLG1CQUMzQztBQUNMLGtCQUFJLGNBQWMsV0FBVztBQUM3Qix5QkFBVyxPQUFPO0FBQ2xCLHFCQUFPLE9BQU87QUFDZCxtQ0FBcUIsYUFBYTtBQUFBO0FBQUE7QUFJdEMsaUJBQU87QUFBQTtBQUdULDBCQUFrQixjQUFjO0FBQzlCLGNBQUksT0FBTztBQUVYO0FBQ0UsZ0JBQUksUUFBUTtBQUFBLGNBQ1YsU0FBUztBQUFBO0FBRVgsaUJBQUssZ0JBQWdCO0FBQ3JCLG1CQUFPO0FBQUE7QUFBQTtBQUlYLDJCQUFtQixjQUFjO0FBQy9CLGNBQUksT0FBTztBQUNYLGlCQUFPLEtBQUs7QUFBQTtBQUdkLGlDQUF5QixZQUFZLFdBQVcsUUFBUSxNQUFNO0FBQzVELGNBQUksT0FBTztBQUNYLGNBQUksV0FBVyxTQUFTLFNBQVksT0FBTztBQUMzQyxvQ0FBMEIsU0FBUztBQUNuQyxlQUFLLGdCQUFnQixXQUFXLFlBQVksV0FBVyxRQUFRLFFBQVc7QUFBQTtBQUc1RSxrQ0FBMEIsWUFBWSxXQUFXLFFBQVEsTUFBTTtBQUM3RCxjQUFJLE9BQU87QUFDWCxjQUFJLFdBQVcsU0FBUyxTQUFZLE9BQU87QUFDM0MsY0FBSSxVQUFVO0FBRWQsY0FBSSxnQkFBZ0IsTUFBTTtBQUN4QixnQkFBSSxhQUFhLFlBQVk7QUFDN0Isc0JBQVUsV0FBVztBQUVyQixnQkFBSSxhQUFhLE1BQU07QUFDckIsa0JBQUksV0FBVyxXQUFXO0FBRTFCLGtCQUFJLG1CQUFtQixVQUFVLFdBQVc7QUFDMUMscUJBQUssZ0JBQWdCLFdBQVcsV0FBVyxRQUFRLFNBQVM7QUFDNUQ7QUFBQTtBQUFBO0FBQUE7QUFLTixvQ0FBMEIsU0FBUztBQUNuQyxlQUFLLGdCQUFnQixXQUFXLFlBQVksV0FBVyxRQUFRLFNBQVM7QUFBQTtBQUcxRSw2QkFBcUIsUUFBUSxNQUFNO0FBQ2pDLGNBQU0sMkJBQTBCLE9BQU8sdUJBQXVCLFFBQVE7QUFDcEUsbUJBQU8sZ0JBQWdCLGtCQUFrQixVQUFVLGVBQWUsV0FBVyxRQUFRO0FBQUEsaUJBQ2hGO0FBQ0wsbUJBQU8sZ0JBQWdCLFVBQVUsZUFBZSxXQUFXLFFBQVE7QUFBQTtBQUFBO0FBSXZFLDhCQUFzQixRQUFRLE1BQU07QUFDbEMsaUJBQU8saUJBQWlCLFNBQVMsV0FBVyxRQUFRO0FBQUE7QUFHdEQsc0NBQThCLFFBQVEsTUFBTTtBQUMxQyxpQkFBTyxnQkFBZ0IsUUFBUSxXQUFXLFFBQVE7QUFBQTtBQUdwRCx1Q0FBK0IsUUFBUSxNQUFNO0FBQzNDLGlCQUFPLGlCQUFpQixRQUFRLFdBQVcsUUFBUTtBQUFBO0FBR3JELG1DQUEyQixRQUFRLE1BQU07QUFDdkMsY0FBSSxhQUFhO0FBRWpCO0FBQ0UsMEJBQWM7QUFBQTtBQUdoQixjQUFNLDJCQUEwQixPQUFPLHVCQUF1QixRQUFRO0FBQ3BFLDBCQUFjO0FBQUE7QUFHaEIsaUJBQU8sZ0JBQWdCLFlBQVksUUFBUSxRQUFRO0FBQUE7QUFHckQsb0NBQTRCLFFBQVEsTUFBTTtBQUN4QyxpQkFBTyxpQkFBaUIsUUFBUSxRQUFRLFFBQVE7QUFBQTtBQUdsRCx3Q0FBZ0MsUUFBUSxLQUFLO0FBQzNDLGNBQUksT0FBTyxRQUFRLFlBQVk7QUFDN0IsZ0JBQUksY0FBYztBQUVsQixnQkFBSSxRQUFRO0FBRVosd0JBQVk7QUFDWixtQkFBTyxXQUFZO0FBQ2pCLDBCQUFZO0FBQUE7QUFBQSxxQkFFTCxRQUFRLFFBQVEsUUFBUSxRQUFXO0FBQzVDLGdCQUFJLFlBQVk7QUFFaEI7QUFDRSxrQkFBSSxDQUFDLFVBQVUsZUFBZSxZQUFZO0FBQ3hDLHNCQUFNLGdJQUFxSSwwQkFBMEIsT0FBTyxLQUFLLFdBQVcsS0FBSyxRQUFRO0FBQUE7QUFBQTtBQUk3TSxnQkFBSSxTQUFTO0FBRWIsc0JBQVUsVUFBVTtBQUNwQixtQkFBTyxXQUFZO0FBQ2pCLHdCQUFVLFVBQVU7QUFBQTtBQUFBO0FBQUE7QUFLMUIsdUNBQStCLEtBQUssUUFBUSxNQUFNO0FBQ2hEO0FBQ0UsZ0JBQUksT0FBTyxXQUFXLFlBQVk7QUFDaEMsb0JBQU0sZ0hBQXFILFdBQVcsT0FBTyxPQUFPLFNBQVM7QUFBQTtBQUFBO0FBS2pLLGNBQUksYUFBYSxTQUFTLFFBQVEsU0FBUyxTQUFZLEtBQUssT0FBTyxDQUFDLFFBQVE7QUFDNUUsY0FBSSxhQUFhO0FBRWpCO0FBQ0UsMEJBQWM7QUFBQTtBQUdoQixjQUFNLDJCQUEwQixPQUFPLHVCQUF1QixRQUFRO0FBQ3BFLDBCQUFjO0FBQUE7QUFHaEIsaUJBQU8sZ0JBQWdCLFlBQVksUUFBUSx1QkFBdUIsS0FBSyxNQUFNLFFBQVEsTUFBTTtBQUFBO0FBRzdGLHdDQUFnQyxLQUFLLFFBQVEsTUFBTTtBQUNqRDtBQUNFLGdCQUFJLE9BQU8sV0FBVyxZQUFZO0FBQ2hDLG9CQUFNLGdIQUFxSCxXQUFXLE9BQU8sT0FBTyxTQUFTO0FBQUE7QUFBQTtBQUtqSyxjQUFJLGFBQWEsU0FBUyxRQUFRLFNBQVMsU0FBWSxLQUFLLE9BQU8sQ0FBQyxRQUFRO0FBQzVFLGlCQUFPLGlCQUFpQixRQUFRLFFBQVEsdUJBQXVCLEtBQUssTUFBTSxRQUFRLE1BQU07QUFBQTtBQUcxRixpQ0FBeUIsT0FBTyxhQUFhO0FBQUE7QUFLN0MsWUFBSSxtQkFBbUI7QUFFdkIsK0JBQXVCLFVBQVUsTUFBTTtBQUNyQyxjQUFJLE9BQU87QUFDWCxjQUFJLFdBQVcsU0FBUyxTQUFZLE9BQU87QUFDM0MsZUFBSyxnQkFBZ0IsQ0FBQyxVQUFVO0FBQ2hDLGlCQUFPO0FBQUE7QUFHVCxnQ0FBd0IsVUFBVSxNQUFNO0FBQ3RDLGNBQUksT0FBTztBQUNYLGNBQUksV0FBVyxTQUFTLFNBQVksT0FBTztBQUMzQyxjQUFJLFlBQVksS0FBSztBQUVyQixjQUFJLGNBQWMsTUFBTTtBQUN0QixnQkFBSSxhQUFhLE1BQU07QUFDckIsa0JBQUksV0FBVyxVQUFVO0FBRXpCLGtCQUFJLG1CQUFtQixVQUFVLFdBQVc7QUFDMUMsdUJBQU8sVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUt2QixlQUFLLGdCQUFnQixDQUFDLFVBQVU7QUFDaEMsaUJBQU87QUFBQTtBQUdULDJCQUFtQixZQUFZLE1BQU07QUFDbkMsY0FBSSxPQUFPO0FBQ1gsY0FBSSxXQUFXLFNBQVMsU0FBWSxPQUFPO0FBQzNDLGNBQUksWUFBWTtBQUNoQixlQUFLLGdCQUFnQixDQUFDLFdBQVc7QUFDakMsaUJBQU87QUFBQTtBQUdULDRCQUFvQixZQUFZLE1BQU07QUFDcEMsY0FBSSxPQUFPO0FBQ1gsY0FBSSxXQUFXLFNBQVMsU0FBWSxPQUFPO0FBQzNDLGNBQUksWUFBWSxLQUFLO0FBRXJCLGNBQUksY0FBYyxNQUFNO0FBRXRCLGdCQUFJLGFBQWEsTUFBTTtBQUNyQixrQkFBSSxXQUFXLFVBQVU7QUFFekIsa0JBQUksbUJBQW1CLFVBQVUsV0FBVztBQUMxQyx1QkFBTyxVQUFVO0FBQUE7QUFBQTtBQUFBO0FBS3ZCLGNBQUksWUFBWTtBQUNoQixlQUFLLGdCQUFnQixDQUFDLFdBQVc7QUFDakMsaUJBQU87QUFBQTtBQUdULG9DQUE0QixPQUFPO0FBQ2pDLGNBQUksY0FBYyxXQUFXLFFBQ3pCLFlBQVksWUFBWSxJQUN4QixXQUFXLFlBQVk7QUFFM0Isc0JBQVksV0FBWTtBQUN0QixnQkFBSSxpQkFBaUIsMEJBQTBCO0FBQy9DLHNDQUEwQixhQUFhO0FBRXZDLGdCQUFJO0FBQ0YsdUJBQVM7QUFBQSxzQkFDVDtBQUNBLHdDQUEwQixhQUFhO0FBQUE7QUFBQSxhQUV4QyxDQUFDO0FBQ0osaUJBQU87QUFBQTtBQUdULHFDQUE2QixPQUFPO0FBQ2xDLGNBQUksZUFBZSxlQUNmLFlBQVksYUFBYSxJQUN6QixXQUFXLGFBQWE7QUFFNUIsdUJBQWEsV0FBWTtBQUN2QixnQkFBSSxpQkFBaUIsMEJBQTBCO0FBQy9DLHNDQUEwQixhQUFhO0FBRXZDLGdCQUFJO0FBQ0YsdUJBQVM7QUFBQSxzQkFDVDtBQUNBLHdDQUEwQixhQUFhO0FBQUE7QUFBQSxhQUV4QyxDQUFDO0FBQ0osaUJBQU87QUFBQTtBQUdULHVDQUErQixPQUFPO0FBQ3BDLGNBQUksaUJBQWlCLGlCQUNqQixZQUFZLGVBQWUsSUFDM0IsV0FBVyxlQUFlO0FBRTlCLHVCQUFhLFdBQVk7QUFDdkIsZ0JBQUksaUJBQWlCLDBCQUEwQjtBQUMvQyxzQ0FBMEIsYUFBYTtBQUV2QyxnQkFBSTtBQUNGLHVCQUFTO0FBQUEsc0JBQ1Q7QUFDQSx3Q0FBMEIsYUFBYTtBQUFBO0FBQUEsYUFFeEMsQ0FBQztBQUNKLGlCQUFPO0FBQUE7QUFHVCxpQ0FBeUIsWUFBWSxVQUFVLFVBQVM7QUFDdEQsY0FBSSxtQkFBbUI7QUFDdkIsbUNBQXlCLG9CQUFvQixrQkFBa0I7QUFDL0QscUJBQVc7QUFDWCxjQUFJLGlCQUFpQiwwQkFBMEI7QUFDL0Msb0NBQTBCLGFBQWE7QUFDdkMsY0FBSSxvQkFBb0IsMEJBQTBCO0FBRWxEO0FBQ0Usc0NBQTBCLFdBQVcsaUJBQWlCLElBQUk7QUFBQTtBQUc1RCxjQUFJO0FBQ0YsdUJBQVc7QUFDWDtBQUFBLG9CQUNBO0FBQ0EscUNBQXlCO0FBQ3pCLHNDQUEwQixhQUFhO0FBRXZDO0FBQ0Usa0JBQUksbUJBQW1CLFFBQVEsa0JBQWtCLGdCQUFnQjtBQUMvRCxvQkFBSSxxQkFBcUIsa0JBQWtCLGVBQWU7QUFFMUQsb0JBQUkscUJBQXFCLElBQUk7QUFDM0IsdUJBQUs7QUFBQTtBQUdQLGtDQUFrQixlQUFlO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNekMsbUNBQTJCO0FBQ3pCLGNBQUksZUFBZSxXQUFXLFFBQzFCLFlBQVksYUFBYSxJQUN6QixhQUFhLGFBQWE7QUFHOUIsY0FBSSxRQUFRLGdCQUFnQixLQUFLLE1BQU07QUFDdkMsY0FBSSxPQUFPO0FBQ1gsZUFBSyxnQkFBZ0I7QUFDckIsaUJBQU8sQ0FBQyxXQUFXO0FBQUE7QUFHckIsb0NBQTRCO0FBQzFCLGNBQUksZ0JBQWdCLGVBQ2hCLFlBQVksY0FBYztBQUU5QixjQUFJLE9BQU87QUFDWCxjQUFJLFFBQVEsS0FBSztBQUNqQixpQkFBTyxDQUFDLFdBQVc7QUFBQTtBQUdyQixzQ0FBOEI7QUFDNUIsY0FBSSxrQkFBa0IsaUJBQ2xCLFlBQVksZ0JBQWdCO0FBRWhDLGNBQUksT0FBTztBQUNYLGNBQUksUUFBUSxLQUFLO0FBQ2pCLGlCQUFPLENBQUMsV0FBVztBQUFBO0FBR3JCLFlBQUkscUNBQXFDO0FBQ3pDLDhEQUFzRDtBQUNwRDtBQUNFLG1CQUFPO0FBQUE7QUFBQTtBQUlYLDJCQUFtQjtBQUNqQixjQUFJLE9BQU87QUFDWCxjQUFJLFFBQU87QUFNWCxjQUFJLG1CQUFtQixNQUFLO0FBQzVCLGNBQUk7QUFFSixjQUFJLGtCQUFrQjtBQUNwQixnQkFBSSxTQUFTO0FBRWIsaUJBQUssTUFBTSxtQkFBbUIsTUFBTTtBQUlwQyxnQkFBSSxVQUFVO0FBRWQsZ0JBQUksVUFBVSxHQUFHO0FBQ2Ysb0JBQU0sTUFBTSxRQUFRLFNBQVM7QUFBQTtBQUcvQixrQkFBTTtBQUFBLGlCQUNEO0FBRUwsZ0JBQUksaUJBQWlCO0FBQ3JCLGlCQUFLLE1BQU0sbUJBQW1CLE1BQU0sZUFBZSxTQUFTLE1BQU07QUFBQTtBQUdwRSxlQUFLLGdCQUFnQjtBQUNyQixpQkFBTztBQUFBO0FBR1QsNEJBQW9CO0FBQ2xCLGNBQUksT0FBTztBQUNYLGNBQUksS0FBSyxLQUFLO0FBQ2QsaUJBQU87QUFBQTtBQUdULHVDQUErQixPQUFPLE9BQU8sUUFBUTtBQUNuRDtBQUNFLGdCQUFJLE9BQU8sVUFBVSxPQUFPLFlBQVk7QUFDdEMsb0JBQU07QUFBQTtBQUFBO0FBSVYsY0FBSSxPQUFPLGtCQUFrQjtBQUM3QixjQUFJLFNBQVM7QUFBQSxZQUNYO0FBQUEsWUFDQTtBQUFBLFlBQ0EsZUFBZTtBQUFBLFlBQ2YsWUFBWTtBQUFBLFlBQ1osTUFBTTtBQUFBO0FBR1IsY0FBSSxvQkFBb0IsUUFBUTtBQUM5QixxQ0FBeUIsT0FBTztBQUFBLGlCQUMzQjtBQUNMLDRCQUFnQixPQUFPLE9BQU87QUFDOUIsZ0JBQUksWUFBWTtBQUNoQixnQkFBSSxRQUFPLHNCQUFzQixPQUFPLE1BQU07QUFFOUMsZ0JBQUksVUFBUyxNQUFNO0FBQ2pCLHVDQUF5QixPQUFNLE9BQU87QUFBQTtBQUFBO0FBSTFDLCtCQUFxQixPQUFPO0FBQUE7QUFHOUIsa0NBQTBCLE9BQU8sT0FBTyxRQUFRO0FBQzlDO0FBQ0UsZ0JBQUksT0FBTyxVQUFVLE9BQU8sWUFBWTtBQUN0QyxvQkFBTTtBQUFBO0FBQUE7QUFJVixjQUFJLE9BQU8sa0JBQWtCO0FBQzdCLGNBQUksU0FBUztBQUFBLFlBQ1g7QUFBQSxZQUNBO0FBQUEsWUFDQSxlQUFlO0FBQUEsWUFDZixZQUFZO0FBQUEsWUFDWixNQUFNO0FBQUE7QUFHUixjQUFJLG9CQUFvQixRQUFRO0FBQzlCLHFDQUF5QixPQUFPO0FBQUEsaUJBQzNCO0FBQ0wsNEJBQWdCLE9BQU8sT0FBTztBQUM5QixnQkFBSSxZQUFZLE1BQU07QUFFdEIsZ0JBQUksTUFBTSxVQUFVLFdBQVksZUFBYyxRQUFRLFVBQVUsVUFBVSxVQUFVO0FBSWxGLGtCQUFJLHNCQUFzQixNQUFNO0FBRWhDLGtCQUFJLHdCQUF3QixNQUFNO0FBQ2hDLG9CQUFJO0FBRUo7QUFDRSxtQ0FBaUIseUJBQXlCO0FBQzFDLDJDQUF5QixVQUFVO0FBQUE7QUFHckMsb0JBQUk7QUFDRixzQkFBSSxlQUFlLE1BQU07QUFDekIsc0JBQUksYUFBYSxvQkFBb0IsY0FBYztBQUtuRCx5QkFBTyxnQkFBZ0I7QUFDdkIseUJBQU8sYUFBYTtBQUVwQixzQkFBSSxTQUFTLFlBQVksZUFBZTtBQUt0QztBQUFBO0FBQUEseUJBRUssUUFBUDtBQUFBLDBCQUNBO0FBQ0E7QUFDRSw2Q0FBeUIsVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTTNDLGdCQUFJLFlBQVk7QUFDaEIsZ0JBQUksUUFBTyxzQkFBc0IsT0FBTyxNQUFNO0FBRTlDLGdCQUFJLFVBQVMsTUFBTTtBQUNqQix1Q0FBeUIsT0FBTSxPQUFPO0FBQUE7QUFBQTtBQUkxQywrQkFBcUIsT0FBTztBQUFBO0FBRzlCLHFDQUE2QixPQUFPO0FBQ2xDLGNBQUksWUFBWSxNQUFNO0FBQ3RCLGlCQUFPLFVBQVUsNkJBQTZCLGNBQWMsUUFBUSxjQUFjO0FBQUE7QUFHcEYsMENBQWtDLE9BQU8sUUFBUTtBQUkvQyx1REFBNkMsK0JBQStCO0FBQzVFLGNBQUksVUFBVSxNQUFNO0FBRXBCLGNBQUksWUFBWSxNQUFNO0FBRXBCLG1CQUFPLE9BQU87QUFBQSxpQkFDVDtBQUNMLG1CQUFPLE9BQU8sUUFBUTtBQUN0QixvQkFBUSxPQUFPO0FBQUE7QUFHakIsZ0JBQU0sVUFBVTtBQUFBO0FBR2xCLGlDQUF5QixPQUFPLE9BQU8sUUFBUSxNQUFNO0FBQ25ELGNBQUksb0JBQW9CLFFBQVE7QUFDOUIsZ0JBQUksY0FBYyxNQUFNO0FBRXhCLGdCQUFJLGdCQUFnQixNQUFNO0FBRXhCLHFCQUFPLE9BQU87QUFHZCxtQ0FBcUI7QUFBQSxtQkFDaEI7QUFDTCxxQkFBTyxPQUFPLFlBQVk7QUFDMUIsMEJBQVksT0FBTztBQUFBO0FBR3JCLGtCQUFNLGNBQWM7QUFBQSxpQkFDZjtBQUNMLGdCQUFJLFVBQVUsTUFBTTtBQUVwQixnQkFBSSxZQUFZLE1BQU07QUFFcEIscUJBQU8sT0FBTztBQUFBLG1CQUNUO0FBQ0wscUJBQU8sT0FBTyxRQUFRO0FBQ3RCLHNCQUFRLE9BQU87QUFBQTtBQUdqQixrQkFBTSxVQUFVO0FBQUE7QUFBQTtBQUlwQiwwQ0FBa0MsT0FBTSxPQUFPLE1BQU07QUFDbkQsY0FBSSxpQkFBaUIsT0FBTztBQUMxQixnQkFBSSxhQUFhLE1BQU07QUFNdkIseUJBQWEsZUFBZSxZQUFZLE1BQUs7QUFFN0MsZ0JBQUksZ0JBQWdCLFdBQVcsWUFBWTtBQUMzQyxrQkFBTSxRQUFRO0FBSWQsOEJBQWtCLE9BQU07QUFBQTtBQUFBO0FBSTVCLHNDQUE4QixPQUFPLE1BQU0sUUFBUTtBQUVqRDtBQUNFLHFDQUF5QixPQUFPO0FBQUE7QUFBQTtBQUlwQyxZQUFJLHdCQUF3QjtBQUFBLFVBQzFCO0FBQUEsVUFDQSxhQUFhO0FBQUEsVUFDYixZQUFZO0FBQUEsVUFDWixXQUFXO0FBQUEsVUFDWCxxQkFBcUI7QUFBQSxVQUNyQixvQkFBb0I7QUFBQSxVQUNwQixpQkFBaUI7QUFBQSxVQUNqQixTQUFTO0FBQUEsVUFDVCxZQUFZO0FBQUEsVUFDWixRQUFRO0FBQUEsVUFDUixVQUFVO0FBQUEsVUFDVixlQUFlO0FBQUEsVUFDZixrQkFBa0I7QUFBQSxVQUNsQixlQUFlO0FBQUEsVUFDZixrQkFBa0I7QUFBQSxVQUNsQixzQkFBc0I7QUFBQSxVQUN0QixPQUFPO0FBQUEsVUFDUCwwQkFBMEI7QUFBQTtBQUc1QixZQUFJLDhCQUE4QjtBQUNsQyxZQUFJLDJDQUEyQztBQUMvQyxZQUFJLCtCQUErQjtBQUNuQyxZQUFJLGlDQUFpQztBQUNyQyxZQUFJLDJDQUEyQztBQUMvQyxZQUFJLDRDQUE0QztBQUNoRCxZQUFJLDhDQUE4QztBQUVsRDtBQUNFLGNBQUksMkJBQTJCLFdBQVk7QUFDekMsa0JBQU07QUFBQTtBQUdSLGNBQUksd0JBQXdCLFdBQVk7QUFDdEMsa0JBQU07QUFBQTtBQUdSLHdDQUE4QjtBQUFBLFlBQzVCLGFBQWEsU0FBVSxTQUFTO0FBQzlCLHFCQUFPLFlBQVk7QUFBQTtBQUFBLFlBRXJCLGFBQWEsU0FBVSxVQUFVLE1BQU07QUFDckMscUNBQXVCO0FBQ3ZCO0FBQ0EsbUNBQXFCO0FBQ3JCLHFCQUFPLGNBQWMsVUFBVTtBQUFBO0FBQUEsWUFFakMsWUFBWSxTQUFVLFNBQVM7QUFDN0IscUNBQXVCO0FBQ3ZCO0FBQ0EscUJBQU8sWUFBWTtBQUFBO0FBQUEsWUFFckIsV0FBVyxTQUFVLFFBQVEsTUFBTTtBQUNqQyxxQ0FBdUI7QUFDdkI7QUFDQSxtQ0FBcUI7QUFDckIscUJBQU8sWUFBWSxRQUFRO0FBQUE7QUFBQSxZQUU3QixxQkFBcUIsU0FBVSxLQUFLLFFBQVEsTUFBTTtBQUNoRCxxQ0FBdUI7QUFDdkI7QUFDQSxtQ0FBcUI7QUFDckIscUJBQU8sc0JBQXNCLEtBQUssUUFBUTtBQUFBO0FBQUEsWUFFNUMsb0JBQW9CLFNBQVUsUUFBUSxNQUFNO0FBQzFDLHFDQUF1QjtBQUN2QjtBQUNBLG1DQUFxQjtBQUNyQixxQkFBTyxxQkFBcUIsUUFBUTtBQUFBO0FBQUEsWUFFdEMsaUJBQWlCLFNBQVUsUUFBUSxNQUFNO0FBQ3ZDLHFDQUF1QjtBQUN2QjtBQUNBLG1DQUFxQjtBQUNyQixxQkFBTyxrQkFBa0IsUUFBUTtBQUFBO0FBQUEsWUFFbkMsU0FBUyxTQUFVLFFBQVEsTUFBTTtBQUMvQixxQ0FBdUI7QUFDdkI7QUFDQSxtQ0FBcUI7QUFDckIsa0JBQUksaUJBQWlCLHlCQUF5QjtBQUM5Qyx1Q0FBeUIsVUFBVTtBQUVuQyxrQkFBSTtBQUNGLHVCQUFPLFVBQVUsUUFBUTtBQUFBLHdCQUN6QjtBQUNBLHlDQUF5QixVQUFVO0FBQUE7QUFBQTtBQUFBLFlBR3ZDLFlBQVksU0FBVSxTQUFTLFlBQVksTUFBTTtBQUMvQyxxQ0FBdUI7QUFDdkI7QUFDQSxrQkFBSSxpQkFBaUIseUJBQXlCO0FBQzlDLHVDQUF5QixVQUFVO0FBRW5DLGtCQUFJO0FBQ0YsdUJBQU8sYUFBYSxTQUFTLFlBQVk7QUFBQSx3QkFDekM7QUFDQSx5Q0FBeUIsVUFBVTtBQUFBO0FBQUE7QUFBQSxZQUd2QyxRQUFRLFNBQVUsY0FBYztBQUM5QixxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTyxTQUFTO0FBQUE7QUFBQSxZQUVsQixVQUFVLFNBQVUsY0FBYztBQUNoQyxxQ0FBdUI7QUFDdkI7QUFDQSxrQkFBSSxpQkFBaUIseUJBQXlCO0FBQzlDLHVDQUF5QixVQUFVO0FBRW5DLGtCQUFJO0FBQ0YsdUJBQU8sV0FBVztBQUFBLHdCQUNsQjtBQUNBLHlDQUF5QixVQUFVO0FBQUE7QUFBQTtBQUFBLFlBR3ZDLGVBQWUsU0FBVSxPQUFPLGFBQWE7QUFDM0MscUNBQXVCO0FBQ3ZCO0FBQ0EscUJBQU87QUFBQTtBQUFBLFlBRVQsa0JBQWtCLFNBQVUsT0FBTztBQUNqQyxxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTyxtQkFBbUI7QUFBQTtBQUFBLFlBRTVCLGVBQWUsV0FBWTtBQUN6QixxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTztBQUFBO0FBQUEsWUFFVCxrQkFBa0IsU0FBVSxRQUFRLGFBQWEsV0FBVztBQUMxRCxxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTztBQUFBO0FBQUEsWUFFVCxzQkFBc0IsU0FBVSxXQUFXLGFBQWEsbUJBQW1CO0FBQ3pFLHFDQUF1QjtBQUN2QjtBQUNBLHFCQUFPLHVCQUF1QixXQUFXLGFBQWE7QUFBQTtBQUFBLFlBRXhELE9BQU8sV0FBWTtBQUNqQixxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTztBQUFBO0FBQUEsWUFFVCwwQkFBMEI7QUFBQTtBQUc1QixxREFBMkM7QUFBQSxZQUN6QyxhQUFhLFNBQVUsU0FBUztBQUM5QixxQkFBTyxZQUFZO0FBQUE7QUFBQSxZQUVyQixhQUFhLFNBQVUsVUFBVSxNQUFNO0FBQ3JDLHFDQUF1QjtBQUN2QjtBQUNBLHFCQUFPLGNBQWMsVUFBVTtBQUFBO0FBQUEsWUFFakMsWUFBWSxTQUFVLFNBQVM7QUFDN0IscUNBQXVCO0FBQ3ZCO0FBQ0EscUJBQU8sWUFBWTtBQUFBO0FBQUEsWUFFckIsV0FBVyxTQUFVLFFBQVEsTUFBTTtBQUNqQyxxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTyxZQUFZLFFBQVE7QUFBQTtBQUFBLFlBRTdCLHFCQUFxQixTQUFVLEtBQUssUUFBUSxNQUFNO0FBQ2hELHFDQUF1QjtBQUN2QjtBQUNBLHFCQUFPLHNCQUFzQixLQUFLLFFBQVE7QUFBQTtBQUFBLFlBRTVDLG9CQUFvQixTQUFVLFFBQVEsTUFBTTtBQUMxQyxxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTyxxQkFBcUIsUUFBUTtBQUFBO0FBQUEsWUFFdEMsaUJBQWlCLFNBQVUsUUFBUSxNQUFNO0FBQ3ZDLHFDQUF1QjtBQUN2QjtBQUNBLHFCQUFPLGtCQUFrQixRQUFRO0FBQUE7QUFBQSxZQUVuQyxTQUFTLFNBQVUsUUFBUSxNQUFNO0FBQy9CLHFDQUF1QjtBQUN2QjtBQUNBLGtCQUFJLGlCQUFpQix5QkFBeUI7QUFDOUMsdUNBQXlCLFVBQVU7QUFFbkMsa0JBQUk7QUFDRix1QkFBTyxVQUFVLFFBQVE7QUFBQSx3QkFDekI7QUFDQSx5Q0FBeUIsVUFBVTtBQUFBO0FBQUE7QUFBQSxZQUd2QyxZQUFZLFNBQVUsU0FBUyxZQUFZLE1BQU07QUFDL0MscUNBQXVCO0FBQ3ZCO0FBQ0Esa0JBQUksaUJBQWlCLHlCQUF5QjtBQUM5Qyx1Q0FBeUIsVUFBVTtBQUVuQyxrQkFBSTtBQUNGLHVCQUFPLGFBQWEsU0FBUyxZQUFZO0FBQUEsd0JBQ3pDO0FBQ0EseUNBQXlCLFVBQVU7QUFBQTtBQUFBO0FBQUEsWUFHdkMsUUFBUSxTQUFVLGNBQWM7QUFDOUIscUNBQXVCO0FBQ3ZCO0FBQ0EscUJBQU8sU0FBUztBQUFBO0FBQUEsWUFFbEIsVUFBVSxTQUFVLGNBQWM7QUFDaEMscUNBQXVCO0FBQ3ZCO0FBQ0Esa0JBQUksaUJBQWlCLHlCQUF5QjtBQUM5Qyx1Q0FBeUIsVUFBVTtBQUVuQyxrQkFBSTtBQUNGLHVCQUFPLFdBQVc7QUFBQSx3QkFDbEI7QUFDQSx5Q0FBeUIsVUFBVTtBQUFBO0FBQUE7QUFBQSxZQUd2QyxlQUFlLFNBQVUsT0FBTyxhQUFhO0FBQzNDLHFDQUF1QjtBQUN2QjtBQUNBLHFCQUFPO0FBQUE7QUFBQSxZQUVULGtCQUFrQixTQUFVLE9BQU87QUFDakMscUNBQXVCO0FBQ3ZCO0FBQ0EscUJBQU8sbUJBQW1CO0FBQUE7QUFBQSxZQUU1QixlQUFlLFdBQVk7QUFDekIscUNBQXVCO0FBQ3ZCO0FBQ0EscUJBQU87QUFBQTtBQUFBLFlBRVQsa0JBQWtCLFNBQVUsUUFBUSxhQUFhLFdBQVc7QUFDMUQscUNBQXVCO0FBQ3ZCO0FBQ0EscUJBQU87QUFBQTtBQUFBLFlBRVQsc0JBQXNCLFNBQVUsV0FBVyxhQUFhLG1CQUFtQjtBQUN6RSxxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTyx1QkFBdUIsV0FBVyxhQUFhO0FBQUE7QUFBQSxZQUV4RCxPQUFPLFdBQVk7QUFDakIscUNBQXVCO0FBQ3ZCO0FBQ0EscUJBQU87QUFBQTtBQUFBLFlBRVQsMEJBQTBCO0FBQUE7QUFHNUIseUNBQStCO0FBQUEsWUFDN0IsYUFBYSxTQUFVLFNBQVM7QUFDOUIscUJBQU8sWUFBWTtBQUFBO0FBQUEsWUFFckIsYUFBYSxTQUFVLFVBQVUsTUFBTTtBQUNyQyxxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTyxlQUFlLFVBQVU7QUFBQTtBQUFBLFlBRWxDLFlBQVksU0FBVSxTQUFTO0FBQzdCLHFDQUF1QjtBQUN2QjtBQUNBLHFCQUFPLFlBQVk7QUFBQTtBQUFBLFlBRXJCLFdBQVcsU0FBVSxRQUFRLE1BQU07QUFDakMscUNBQXVCO0FBQ3ZCO0FBQ0EscUJBQU8sYUFBYSxRQUFRO0FBQUE7QUFBQSxZQUU5QixxQkFBcUIsU0FBVSxLQUFLLFFBQVEsTUFBTTtBQUNoRCxxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTyx1QkFBdUIsS0FBSyxRQUFRO0FBQUE7QUFBQSxZQUU3QyxvQkFBb0IsU0FBVSxRQUFRLE1BQU07QUFDMUMscUNBQXVCO0FBQ3ZCO0FBQ0EscUJBQU8sc0JBQXNCLFFBQVE7QUFBQTtBQUFBLFlBRXZDLGlCQUFpQixTQUFVLFFBQVEsTUFBTTtBQUN2QyxxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTyxtQkFBbUIsUUFBUTtBQUFBO0FBQUEsWUFFcEMsU0FBUyxTQUFVLFFBQVEsTUFBTTtBQUMvQixxQ0FBdUI7QUFDdkI7QUFDQSxrQkFBSSxpQkFBaUIseUJBQXlCO0FBQzlDLHVDQUF5QixVQUFVO0FBRW5DLGtCQUFJO0FBQ0YsdUJBQU8sV0FBVyxRQUFRO0FBQUEsd0JBQzFCO0FBQ0EseUNBQXlCLFVBQVU7QUFBQTtBQUFBO0FBQUEsWUFHdkMsWUFBWSxTQUFVLFNBQVMsWUFBWSxNQUFNO0FBQy9DLHFDQUF1QjtBQUN2QjtBQUNBLGtCQUFJLGlCQUFpQix5QkFBeUI7QUFDOUMsdUNBQXlCLFVBQVU7QUFFbkMsa0JBQUk7QUFDRix1QkFBTyxjQUFjLFNBQVMsWUFBWTtBQUFBLHdCQUMxQztBQUNBLHlDQUF5QixVQUFVO0FBQUE7QUFBQTtBQUFBLFlBR3ZDLFFBQVEsU0FBVSxjQUFjO0FBQzlCLHFDQUF1QjtBQUN2QjtBQUNBLHFCQUFPO0FBQUE7QUFBQSxZQUVULFVBQVUsU0FBVSxjQUFjO0FBQ2hDLHFDQUF1QjtBQUN2QjtBQUNBLGtCQUFJLGlCQUFpQix5QkFBeUI7QUFDOUMsdUNBQXlCLFVBQVU7QUFFbkMsa0JBQUk7QUFDRix1QkFBTyxZQUFZO0FBQUEsd0JBQ25CO0FBQ0EseUNBQXlCLFVBQVU7QUFBQTtBQUFBO0FBQUEsWUFHdkMsZUFBZSxTQUFVLE9BQU8sYUFBYTtBQUMzQyxxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTztBQUFBO0FBQUEsWUFFVCxrQkFBa0IsU0FBVSxPQUFPO0FBQ2pDLHFDQUF1QjtBQUN2QjtBQUNBLHFCQUFPLG9CQUFvQjtBQUFBO0FBQUEsWUFFN0IsZUFBZSxXQUFZO0FBQ3pCLHFDQUF1QjtBQUN2QjtBQUNBLHFCQUFPO0FBQUE7QUFBQSxZQUVULGtCQUFrQixTQUFVLFFBQVEsYUFBYSxXQUFXO0FBQzFELHFDQUF1QjtBQUN2QjtBQUNBLHFCQUFPO0FBQUE7QUFBQSxZQUVULHNCQUFzQixTQUFVLFdBQVcsYUFBYSxtQkFBbUI7QUFDekUscUNBQXVCO0FBQ3ZCO0FBQ0EscUJBQU8sd0JBQXdCLFdBQVc7QUFBQTtBQUFBLFlBRTVDLE9BQU8sV0FBWTtBQUNqQixxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTztBQUFBO0FBQUEsWUFFVCwwQkFBMEI7QUFBQTtBQUc1QiwyQ0FBaUM7QUFBQSxZQUMvQixhQUFhLFNBQVUsU0FBUztBQUM5QixxQkFBTyxZQUFZO0FBQUE7QUFBQSxZQUVyQixhQUFhLFNBQVUsVUFBVSxNQUFNO0FBQ3JDLHFDQUF1QjtBQUN2QjtBQUNBLHFCQUFPLGVBQWUsVUFBVTtBQUFBO0FBQUEsWUFFbEMsWUFBWSxTQUFVLFNBQVM7QUFDN0IscUNBQXVCO0FBQ3ZCO0FBQ0EscUJBQU8sWUFBWTtBQUFBO0FBQUEsWUFFckIsV0FBVyxTQUFVLFFBQVEsTUFBTTtBQUNqQyxxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTyxhQUFhLFFBQVE7QUFBQTtBQUFBLFlBRTlCLHFCQUFxQixTQUFVLEtBQUssUUFBUSxNQUFNO0FBQ2hELHFDQUF1QjtBQUN2QjtBQUNBLHFCQUFPLHVCQUF1QixLQUFLLFFBQVE7QUFBQTtBQUFBLFlBRTdDLG9CQUFvQixTQUFVLFFBQVEsTUFBTTtBQUMxQyxxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTyxzQkFBc0IsUUFBUTtBQUFBO0FBQUEsWUFFdkMsaUJBQWlCLFNBQVUsUUFBUSxNQUFNO0FBQ3ZDLHFDQUF1QjtBQUN2QjtBQUNBLHFCQUFPLG1CQUFtQixRQUFRO0FBQUE7QUFBQSxZQUVwQyxTQUFTLFNBQVUsUUFBUSxNQUFNO0FBQy9CLHFDQUF1QjtBQUN2QjtBQUNBLGtCQUFJLGlCQUFpQix5QkFBeUI7QUFDOUMsdUNBQXlCLFVBQVU7QUFFbkMsa0JBQUk7QUFDRix1QkFBTyxXQUFXLFFBQVE7QUFBQSx3QkFDMUI7QUFDQSx5Q0FBeUIsVUFBVTtBQUFBO0FBQUE7QUFBQSxZQUd2QyxZQUFZLFNBQVUsU0FBUyxZQUFZLE1BQU07QUFDL0MscUNBQXVCO0FBQ3ZCO0FBQ0Esa0JBQUksaUJBQWlCLHlCQUF5QjtBQUM5Qyx1Q0FBeUIsVUFBVTtBQUVuQyxrQkFBSTtBQUNGLHVCQUFPLGdCQUFnQixTQUFTLFlBQVk7QUFBQSx3QkFDNUM7QUFDQSx5Q0FBeUIsVUFBVTtBQUFBO0FBQUE7QUFBQSxZQUd2QyxRQUFRLFNBQVUsY0FBYztBQUM5QixxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTztBQUFBO0FBQUEsWUFFVCxVQUFVLFNBQVUsY0FBYztBQUNoQyxxQ0FBdUI7QUFDdkI7QUFDQSxrQkFBSSxpQkFBaUIseUJBQXlCO0FBQzlDLHVDQUF5QixVQUFVO0FBRW5DLGtCQUFJO0FBQ0YsdUJBQU8sY0FBYztBQUFBLHdCQUNyQjtBQUNBLHlDQUF5QixVQUFVO0FBQUE7QUFBQTtBQUFBLFlBR3ZDLGVBQWUsU0FBVSxPQUFPLGFBQWE7QUFDM0MscUNBQXVCO0FBQ3ZCO0FBQ0EscUJBQU87QUFBQTtBQUFBLFlBRVQsa0JBQWtCLFNBQVUsT0FBTztBQUNqQyxxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTyxzQkFBc0I7QUFBQTtBQUFBLFlBRS9CLGVBQWUsV0FBWTtBQUN6QixxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTztBQUFBO0FBQUEsWUFFVCxrQkFBa0IsU0FBVSxRQUFRLGFBQWEsV0FBVztBQUMxRCxxQ0FBdUI7QUFDdkI7QUFDQSxxQkFBTztBQUFBO0FBQUEsWUFFVCxzQkFBc0IsU0FBVSxXQUFXLGFBQWEsbUJBQW1CO0FBQ3pFLHFDQUF1QjtBQUN2QjtBQUNBLHFCQUFPLHdCQUF3QixXQUFXO0FBQUE7QUFBQSxZQUU1QyxPQUFPLFdBQVk7QUFDakIscUNBQXVCO0FBQ3ZCO0FBQ0EscUJBQU87QUFBQTtBQUFBLFlBRVQsMEJBQTBCO0FBQUE7QUFHNUIscURBQTJDO0FBQUEsWUFDekMsYUFBYSxTQUFVLFNBQVM7QUFDOUI7QUFDQSxxQkFBTyxZQUFZO0FBQUE7QUFBQSxZQUVyQixhQUFhLFNBQVUsVUFBVSxNQUFNO0FBQ3JDLHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0EscUJBQU8sY0FBYyxVQUFVO0FBQUE7QUFBQSxZQUVqQyxZQUFZLFNBQVUsU0FBUztBQUM3QixxQ0FBdUI7QUFDdkI7QUFDQTtBQUNBLHFCQUFPLFlBQVk7QUFBQTtBQUFBLFlBRXJCLFdBQVcsU0FBVSxRQUFRLE1BQU07QUFDakMscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxxQkFBTyxZQUFZLFFBQVE7QUFBQTtBQUFBLFlBRTdCLHFCQUFxQixTQUFVLEtBQUssUUFBUSxNQUFNO0FBQ2hELHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0EscUJBQU8sc0JBQXNCLEtBQUssUUFBUTtBQUFBO0FBQUEsWUFFNUMsb0JBQW9CLFNBQVUsUUFBUSxNQUFNO0FBQzFDLHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0EscUJBQU8scUJBQXFCLFFBQVE7QUFBQTtBQUFBLFlBRXRDLGlCQUFpQixTQUFVLFFBQVEsTUFBTTtBQUN2QyxxQ0FBdUI7QUFDdkI7QUFDQTtBQUNBLHFCQUFPLGtCQUFrQixRQUFRO0FBQUE7QUFBQSxZQUVuQyxTQUFTLFNBQVUsUUFBUSxNQUFNO0FBQy9CLHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0Esa0JBQUksaUJBQWlCLHlCQUF5QjtBQUM5Qyx1Q0FBeUIsVUFBVTtBQUVuQyxrQkFBSTtBQUNGLHVCQUFPLFVBQVUsUUFBUTtBQUFBLHdCQUN6QjtBQUNBLHlDQUF5QixVQUFVO0FBQUE7QUFBQTtBQUFBLFlBR3ZDLFlBQVksU0FBVSxTQUFTLFlBQVksTUFBTTtBQUMvQyxxQ0FBdUI7QUFDdkI7QUFDQTtBQUNBLGtCQUFJLGlCQUFpQix5QkFBeUI7QUFDOUMsdUNBQXlCLFVBQVU7QUFFbkMsa0JBQUk7QUFDRix1QkFBTyxhQUFhLFNBQVMsWUFBWTtBQUFBLHdCQUN6QztBQUNBLHlDQUF5QixVQUFVO0FBQUE7QUFBQTtBQUFBLFlBR3ZDLFFBQVEsU0FBVSxjQUFjO0FBQzlCLHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0EscUJBQU8sU0FBUztBQUFBO0FBQUEsWUFFbEIsVUFBVSxTQUFVLGNBQWM7QUFDaEMscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxrQkFBSSxpQkFBaUIseUJBQXlCO0FBQzlDLHVDQUF5QixVQUFVO0FBRW5DLGtCQUFJO0FBQ0YsdUJBQU8sV0FBVztBQUFBLHdCQUNsQjtBQUNBLHlDQUF5QixVQUFVO0FBQUE7QUFBQTtBQUFBLFlBR3ZDLGVBQWUsU0FBVSxPQUFPLGFBQWE7QUFDM0MscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxxQkFBTztBQUFBO0FBQUEsWUFFVCxrQkFBa0IsU0FBVSxPQUFPO0FBQ2pDLHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0EscUJBQU8sbUJBQW1CO0FBQUE7QUFBQSxZQUU1QixlQUFlLFdBQVk7QUFDekIscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxxQkFBTztBQUFBO0FBQUEsWUFFVCxrQkFBa0IsU0FBVSxRQUFRLGFBQWEsV0FBVztBQUMxRCxxQ0FBdUI7QUFDdkI7QUFDQTtBQUNBLHFCQUFPO0FBQUE7QUFBQSxZQUVULHNCQUFzQixTQUFVLFdBQVcsYUFBYSxtQkFBbUI7QUFDekUscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxxQkFBTyx1QkFBdUIsV0FBVyxhQUFhO0FBQUE7QUFBQSxZQUV4RCxPQUFPLFdBQVk7QUFDakIscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxxQkFBTztBQUFBO0FBQUEsWUFFVCwwQkFBMEI7QUFBQTtBQUc1QixzREFBNEM7QUFBQSxZQUMxQyxhQUFhLFNBQVUsU0FBUztBQUM5QjtBQUNBLHFCQUFPLFlBQVk7QUFBQTtBQUFBLFlBRXJCLGFBQWEsU0FBVSxVQUFVLE1BQU07QUFDckMscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxxQkFBTyxlQUFlLFVBQVU7QUFBQTtBQUFBLFlBRWxDLFlBQVksU0FBVSxTQUFTO0FBQzdCLHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0EscUJBQU8sWUFBWTtBQUFBO0FBQUEsWUFFckIsV0FBVyxTQUFVLFFBQVEsTUFBTTtBQUNqQyxxQ0FBdUI7QUFDdkI7QUFDQTtBQUNBLHFCQUFPLGFBQWEsUUFBUTtBQUFBO0FBQUEsWUFFOUIscUJBQXFCLFNBQVUsS0FBSyxRQUFRLE1BQU07QUFDaEQscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxxQkFBTyx1QkFBdUIsS0FBSyxRQUFRO0FBQUE7QUFBQSxZQUU3QyxvQkFBb0IsU0FBVSxRQUFRLE1BQU07QUFDMUMscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxxQkFBTyxzQkFBc0IsUUFBUTtBQUFBO0FBQUEsWUFFdkMsaUJBQWlCLFNBQVUsUUFBUSxNQUFNO0FBQ3ZDLHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0EscUJBQU8sbUJBQW1CLFFBQVE7QUFBQTtBQUFBLFlBRXBDLFNBQVMsU0FBVSxRQUFRLE1BQU07QUFDL0IscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxrQkFBSSxpQkFBaUIseUJBQXlCO0FBQzlDLHVDQUF5QixVQUFVO0FBRW5DLGtCQUFJO0FBQ0YsdUJBQU8sV0FBVyxRQUFRO0FBQUEsd0JBQzFCO0FBQ0EseUNBQXlCLFVBQVU7QUFBQTtBQUFBO0FBQUEsWUFHdkMsWUFBWSxTQUFVLFNBQVMsWUFBWSxNQUFNO0FBQy9DLHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0Esa0JBQUksaUJBQWlCLHlCQUF5QjtBQUM5Qyx1Q0FBeUIsVUFBVTtBQUVuQyxrQkFBSTtBQUNGLHVCQUFPLGNBQWMsU0FBUyxZQUFZO0FBQUEsd0JBQzFDO0FBQ0EseUNBQXlCLFVBQVU7QUFBQTtBQUFBO0FBQUEsWUFHdkMsUUFBUSxTQUFVLGNBQWM7QUFDOUIscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxxQkFBTztBQUFBO0FBQUEsWUFFVCxVQUFVLFNBQVUsY0FBYztBQUNoQyxxQ0FBdUI7QUFDdkI7QUFDQTtBQUNBLGtCQUFJLGlCQUFpQix5QkFBeUI7QUFDOUMsdUNBQXlCLFVBQVU7QUFFbkMsa0JBQUk7QUFDRix1QkFBTyxZQUFZO0FBQUEsd0JBQ25CO0FBQ0EseUNBQXlCLFVBQVU7QUFBQTtBQUFBO0FBQUEsWUFHdkMsZUFBZSxTQUFVLE9BQU8sYUFBYTtBQUMzQyxxQ0FBdUI7QUFDdkI7QUFDQTtBQUNBLHFCQUFPO0FBQUE7QUFBQSxZQUVULGtCQUFrQixTQUFVLE9BQU87QUFDakMscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxxQkFBTyxvQkFBb0I7QUFBQTtBQUFBLFlBRTdCLGVBQWUsV0FBWTtBQUN6QixxQ0FBdUI7QUFDdkI7QUFDQTtBQUNBLHFCQUFPO0FBQUE7QUFBQSxZQUVULGtCQUFrQixTQUFVLFFBQVEsYUFBYSxXQUFXO0FBQzFELHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0EscUJBQU87QUFBQTtBQUFBLFlBRVQsc0JBQXNCLFNBQVUsV0FBVyxhQUFhLG1CQUFtQjtBQUN6RSxxQ0FBdUI7QUFDdkI7QUFDQTtBQUNBLHFCQUFPLHdCQUF3QixXQUFXO0FBQUE7QUFBQSxZQUU1QyxPQUFPLFdBQVk7QUFDakIscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxxQkFBTztBQUFBO0FBQUEsWUFFVCwwQkFBMEI7QUFBQTtBQUc1Qix3REFBOEM7QUFBQSxZQUM1QyxhQUFhLFNBQVUsU0FBUztBQUM5QjtBQUNBLHFCQUFPLFlBQVk7QUFBQTtBQUFBLFlBRXJCLGFBQWEsU0FBVSxVQUFVLE1BQU07QUFDckMscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxxQkFBTyxlQUFlLFVBQVU7QUFBQTtBQUFBLFlBRWxDLFlBQVksU0FBVSxTQUFTO0FBQzdCLHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0EscUJBQU8sWUFBWTtBQUFBO0FBQUEsWUFFckIsV0FBVyxTQUFVLFFBQVEsTUFBTTtBQUNqQyxxQ0FBdUI7QUFDdkI7QUFDQTtBQUNBLHFCQUFPLGFBQWEsUUFBUTtBQUFBO0FBQUEsWUFFOUIscUJBQXFCLFNBQVUsS0FBSyxRQUFRLE1BQU07QUFDaEQscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxxQkFBTyx1QkFBdUIsS0FBSyxRQUFRO0FBQUE7QUFBQSxZQUU3QyxvQkFBb0IsU0FBVSxRQUFRLE1BQU07QUFDMUMscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxxQkFBTyxzQkFBc0IsUUFBUTtBQUFBO0FBQUEsWUFFdkMsaUJBQWlCLFNBQVUsUUFBUSxNQUFNO0FBQ3ZDLHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0EscUJBQU8sbUJBQW1CLFFBQVE7QUFBQTtBQUFBLFlBRXBDLFNBQVMsU0FBVSxRQUFRLE1BQU07QUFDL0IscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxrQkFBSSxpQkFBaUIseUJBQXlCO0FBQzlDLHVDQUF5QixVQUFVO0FBRW5DLGtCQUFJO0FBQ0YsdUJBQU8sV0FBVyxRQUFRO0FBQUEsd0JBQzFCO0FBQ0EseUNBQXlCLFVBQVU7QUFBQTtBQUFBO0FBQUEsWUFHdkMsWUFBWSxTQUFVLFNBQVMsWUFBWSxNQUFNO0FBQy9DLHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0Esa0JBQUksaUJBQWlCLHlCQUF5QjtBQUM5Qyx1Q0FBeUIsVUFBVTtBQUVuQyxrQkFBSTtBQUNGLHVCQUFPLGdCQUFnQixTQUFTLFlBQVk7QUFBQSx3QkFDNUM7QUFDQSx5Q0FBeUIsVUFBVTtBQUFBO0FBQUE7QUFBQSxZQUd2QyxRQUFRLFNBQVUsY0FBYztBQUM5QixxQ0FBdUI7QUFDdkI7QUFDQTtBQUNBLHFCQUFPO0FBQUE7QUFBQSxZQUVULFVBQVUsU0FBVSxjQUFjO0FBQ2hDLHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0Esa0JBQUksaUJBQWlCLHlCQUF5QjtBQUM5Qyx1Q0FBeUIsVUFBVTtBQUVuQyxrQkFBSTtBQUNGLHVCQUFPLGNBQWM7QUFBQSx3QkFDckI7QUFDQSx5Q0FBeUIsVUFBVTtBQUFBO0FBQUE7QUFBQSxZQUd2QyxlQUFlLFNBQVUsT0FBTyxhQUFhO0FBQzNDLHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0EscUJBQU87QUFBQTtBQUFBLFlBRVQsa0JBQWtCLFNBQVUsT0FBTztBQUNqQyxxQ0FBdUI7QUFDdkI7QUFDQTtBQUNBLHFCQUFPLHNCQUFzQjtBQUFBO0FBQUEsWUFFL0IsZUFBZSxXQUFZO0FBQ3pCLHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0EscUJBQU87QUFBQTtBQUFBLFlBRVQsa0JBQWtCLFNBQVUsUUFBUSxhQUFhLFdBQVc7QUFDMUQscUNBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxxQkFBTztBQUFBO0FBQUEsWUFFVCxzQkFBc0IsU0FBVSxXQUFXLGFBQWEsbUJBQW1CO0FBQ3pFLHFDQUF1QjtBQUN2QjtBQUNBO0FBQ0EscUJBQU8sd0JBQXdCLFdBQVc7QUFBQTtBQUFBLFlBRTVDLE9BQU8sV0FBWTtBQUNqQixxQ0FBdUI7QUFDdkI7QUFDQTtBQUNBLHFCQUFPO0FBQUE7QUFBQSxZQUVULDBCQUEwQjtBQUFBO0FBQUE7QUFJOUIsWUFBSSxRQUFRLFVBQVU7QUFDdEIsWUFBSSxhQUFhO0FBQ2pCLFlBQUksd0JBQXdCO0FBQzVCLFlBQUksb0JBQW9CO0FBQ3hCLFlBQUkseUJBQXlCO0FBa0I3QixZQUFJLHdCQUF3QjtBQUM1QixZQUFJLHdCQUF3QjtBQUU1Qix5Q0FBaUM7QUFDL0IsaUJBQU87QUFBQTtBQUdULDZDQUFxQztBQUNuQztBQUNFLG9DQUF3QjtBQUFBO0FBQUE7QUFJNUIseUNBQWlDO0FBQy9CO0FBQ0Usb0NBQXdCO0FBQ3hCLG9DQUF3QjtBQUFBO0FBQUE7QUFJNUIsd0NBQWdDO0FBQzlCO0FBQ0Usb0NBQXdCO0FBQ3hCLG9DQUF3QjtBQUFBO0FBQUE7QUFJNUIsaUNBQXlCO0FBQ3ZCLGlCQUFPO0FBQUE7QUFHVCxvQ0FBNEI7QUFFMUIsdUJBQWE7QUFBQTtBQUdmLG9DQUE0QixPQUFPO0FBRWpDLDhCQUFvQjtBQUVwQixjQUFJLE1BQU0sa0JBQWtCLEdBQUc7QUFDN0Isa0JBQU0sa0JBQWtCO0FBQUE7QUFBQTtBQUk1Qiw0Q0FBb0MsT0FBTztBQUV6Qyw4QkFBb0I7QUFBQTtBQUd0QiwwREFBa0QsT0FBTyxrQkFBa0I7QUFFekUsY0FBSSxxQkFBcUIsR0FBRztBQUMxQixnQkFBSSxjQUFjLFVBQVU7QUFDNUIsa0JBQU0sa0JBQWtCO0FBRXhCLGdCQUFJLGtCQUFrQjtBQUNwQixvQkFBTSxtQkFBbUI7QUFBQTtBQUczQixnQ0FBb0I7QUFBQTtBQUFBO0FBSXhCLDRDQUFvQyxPQUFPO0FBRXpDLGNBQUkseUJBQXlCLEdBQUc7QUFDOUIsZ0JBQUksY0FBYyxVQUFVO0FBQzVCLG9DQUF3QjtBQUd4QixnQkFBSSxjQUFjLE1BQU07QUFFeEIsbUJBQU8sZ0JBQWdCLE1BQU07QUFDM0Isc0JBQVEsWUFBWTtBQUFBLHFCQUNiO0FBQ0gsc0JBQUksUUFBTyxZQUFZO0FBQ3ZCLHdCQUFLLGtCQUFrQjtBQUN2QjtBQUFBLHFCQUVHO0FBQ0gsc0JBQUksa0JBQWtCLFlBQVk7QUFDbEMsa0NBQWdCLGtCQUFrQjtBQUNsQztBQUFBO0FBR0osNEJBQWMsWUFBWTtBQUFBO0FBQUE7QUFBQTtBQUtoQyw2Q0FBcUMsT0FBTztBQUUxQyxjQUFJLDBCQUEwQixHQUFHO0FBQy9CLGdCQUFJLGNBQWMsVUFBVTtBQUM1QixxQ0FBeUI7QUFHekIsZ0JBQUksY0FBYyxNQUFNO0FBRXhCLG1CQUFPLGdCQUFnQixNQUFNO0FBQzNCLHNCQUFRLFlBQVk7QUFBQSxxQkFDYjtBQUNILHNCQUFJLFFBQU8sWUFBWTtBQUV2QixzQkFBSSxVQUFTLE1BQU07QUFDakIsMEJBQUsseUJBQXlCO0FBQUE7QUFHaEM7QUFBQSxxQkFFRztBQUNILHNCQUFJLGtCQUFrQixZQUFZO0FBRWxDLHNCQUFJLG9CQUFvQixNQUFNO0FBSTVCLG9DQUFnQix5QkFBeUI7QUFBQTtBQUczQztBQUFBO0FBR0osNEJBQWMsWUFBWTtBQUFBO0FBQUE7QUFBQTtBQUtoQywwQ0FBa0M7QUFFaEMsa0NBQXdCO0FBQUE7QUFHMUIsMkNBQW1DO0FBRWpDLG1DQUF5QjtBQUFBO0FBRzNCLHdDQUFnQyxPQUFPO0FBSXJDLGNBQUksUUFBUSxNQUFNO0FBRWxCLGlCQUFPLE9BQU87QUFDWixrQkFBTSxrQkFBa0IsTUFBTTtBQUM5QixvQkFBUSxNQUFNO0FBQUE7QUFBQTtBQUlsQixxQ0FBNkIsT0FBTyxRQUFRO0FBRzFDLGlCQUFPO0FBQUEsWUFDTDtBQUFBLFlBQ0E7QUFBQSxZQUNBLE9BQU8sNEJBQTRCO0FBQUE7QUFBQTtBQU92QyxpQ0FBeUIsVUFBVSxXQUFXO0FBQzVDLGlCQUFPO0FBQUE7QUFHVCxrQ0FBMEIsVUFBVSxXQUFXO0FBQzdDLGNBQUk7QUFDRixnQkFBSSxXQUFXLGdCQUFnQixVQUFVO0FBR3pDLGdCQUFJLGFBQWEsT0FBTztBQUN0QjtBQUFBO0FBR0YsZ0JBQUksU0FBUSxVQUFVO0FBRXRCLGdCQUFJLE1BQU07QUFDUixrQkFBSSxTQUFTLFVBQVU7QUFDdkIsa0JBQUksUUFBUSxVQUFVO0FBQ3RCLGtCQUFJLGlCQUFpQixVQUFVLE9BQU8sUUFBUTtBQUk5QyxrQkFBSSxVQUFTLFFBQVEsT0FBTSxrQkFBa0I7QUFDM0Msb0JBQUksU0FBUyxRQUFRLGdCQUFnQjtBQUluQztBQUFBO0FBT0Ysd0JBQVEsU0FBUztBQUFBO0FBS25CLGtCQUFJLGdCQUFnQixTQUFTLDBCQUEwQixVQUFVO0FBQ2pFLGtCQUFJLHVCQUF1QixnQkFBZ0Isc0NBQXNDLGdCQUFnQixpQkFBaUI7QUFDbEgsa0JBQUk7QUFFSixrQkFBSSxTQUFTLFFBQVEsVUFBVTtBQUM3Qix1Q0FBdUI7QUFBQSxxQkFDbEI7QUFDTCxvQkFBSSxvQkFBb0IsMEJBQTBCLGFBQWE7QUFDL0QsdUNBQXVCLGlFQUFrRSw2Q0FBNEMsb0JBQW9CO0FBQUE7QUFHM0osa0JBQUksa0JBQWtCLHVCQUF1QixPQUFPLGlCQUFpQixTQUFVLE1BQUs7QUFLcEYsc0JBQVEsU0FBUztBQUFBLG1CQUNaO0FBSUwsc0JBQVEsU0FBUztBQUFBO0FBQUEsbUJBRVosR0FBUDtBQUtBLHVCQUFXLFdBQVk7QUFDckIsb0JBQU07QUFBQTtBQUFBO0FBQUE7QUFLWixZQUFJLG9CQUFvQixPQUFPLFlBQVksYUFBYSxVQUFVO0FBRWxFLHVDQUErQixPQUFPLFdBQVcsTUFBTTtBQUNyRCxjQUFJLFNBQVMsYUFBYSxhQUFhO0FBRXZDLGlCQUFPLE1BQU07QUFHYixpQkFBTyxVQUFVO0FBQUEsWUFDZixTQUFTO0FBQUE7QUFFWCxjQUFJLFNBQVEsVUFBVTtBQUV0QixpQkFBTyxXQUFXLFdBQVk7QUFDNUIsNEJBQWdCO0FBQ2hCLDZCQUFpQixPQUFPO0FBQUE7QUFHMUIsaUJBQU87QUFBQTtBQUdULHdDQUFnQyxPQUFPLFdBQVcsTUFBTTtBQUN0RCxjQUFJLFNBQVMsYUFBYSxhQUFhO0FBQ3ZDLGlCQUFPLE1BQU07QUFDYixjQUFJLDJCQUEyQixNQUFNLEtBQUs7QUFFMUMsY0FBSSxPQUFPLDZCQUE2QixZQUFZO0FBQ2xELGdCQUFJLFVBQVUsVUFBVTtBQUV4QixtQkFBTyxVQUFVLFdBQVk7QUFDM0IscUJBQU8seUJBQXlCO0FBQUE7QUFHbEMsbUJBQU8sV0FBVyxXQUFZO0FBQzVCO0FBQ0UsdURBQXVDO0FBQUE7QUFHekMsK0JBQWlCLE9BQU87QUFBQTtBQUFBO0FBSTVCLGNBQUksT0FBTyxNQUFNO0FBRWpCLGNBQUksU0FBUyxRQUFRLE9BQU8sS0FBSyxzQkFBc0IsWUFBWTtBQUNqRSxtQkFBTyxXQUFXLG9CQUFvQjtBQUNwQztBQUNFLHVEQUF1QztBQUFBO0FBR3pDLCtCQUFpQixPQUFPO0FBRXhCLGtCQUFJLE9BQU8sNkJBQTZCLFlBQVk7QUFNbEQsZ0RBQWdDO0FBQUE7QUFHbEMsa0JBQUksV0FBVSxVQUFVO0FBQ3hCLGtCQUFJLFFBQVEsVUFBVTtBQUN0QixtQkFBSyxrQkFBa0IsVUFBUztBQUFBLGdCQUM5QixnQkFBZ0IsVUFBVSxPQUFPLFFBQVE7QUFBQTtBQUczQztBQUNFLG9CQUFJLE9BQU8sNkJBQTZCLFlBQVk7QUFJbEQsc0JBQUksQ0FBQyxpQkFBaUIsTUFBTSxPQUFPLFdBQVc7QUFDNUMsMEJBQU0sdUpBQTRKLDBCQUEwQixVQUFVO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9oTixpQkFBTztBQUFBO0FBR1Qsb0NBQTRCLE9BQU0sVUFBVSxPQUFPO0FBYWpELGNBQUksWUFBWSxNQUFLO0FBQ3JCLGNBQUk7QUFFSixjQUFJLGNBQWMsTUFBTTtBQUN0Qix3QkFBWSxNQUFLLFlBQVksSUFBSTtBQUNqQyx3QkFBWSxJQUFJO0FBQ2hCLHNCQUFVLElBQUksVUFBVTtBQUFBLGlCQUNuQjtBQUNMLHdCQUFZLFVBQVUsSUFBSTtBQUUxQixnQkFBSSxjQUFjLFFBQVc7QUFDM0IsMEJBQVksSUFBSTtBQUNoQix3QkFBVSxJQUFJLFVBQVU7QUFBQTtBQUFBO0FBSTVCLGNBQUksQ0FBQyxVQUFVLElBQUksUUFBUTtBQUV6QixzQkFBVSxJQUFJO0FBQ2QsZ0JBQUksT0FBTyxrQkFBa0IsS0FBSyxNQUFNLE9BQU0sVUFBVTtBQUV4RDtBQUNFLGtCQUFJLG1CQUFtQjtBQUVyQix1Q0FBdUIsT0FBTTtBQUFBO0FBQUE7QUFJakMscUJBQVMsS0FBSyxNQUFNO0FBQUE7QUFBQTtBQUl4QixxQ0FBNkIsa0JBQWtCLE9BQU0sVUFBVSxPQUFPO0FBWXBFLGNBQUksWUFBWSxpQkFBaUI7QUFFakMsY0FBSSxjQUFjLE1BQU07QUFDdEIsZ0JBQUksY0FBYyxJQUFJO0FBQ3RCLHdCQUFZLElBQUk7QUFDaEIsNkJBQWlCLGNBQWM7QUFBQSxpQkFDMUI7QUFDTCxzQkFBVSxJQUFJO0FBQUE7QUFBQTtBQUlsQix5Q0FBaUMsYUFBYSxpQkFBaUI7QUFJN0QsY0FBSSxNQUFNLFlBQVk7QUFFdEIsY0FBSyxhQUFZLE9BQU8sb0JBQW9CLFVBQVcsU0FBUSxxQkFBcUIsUUFBUSxjQUFjLFFBQVEsc0JBQXNCO0FBQ3RJLGdCQUFJLGdCQUFnQixZQUFZO0FBRWhDLGdCQUFJLGVBQWU7QUFDakIsMEJBQVksY0FBYyxjQUFjO0FBQ3hDLDBCQUFZLGdCQUFnQixjQUFjO0FBQzFDLDBCQUFZLFFBQVEsY0FBYztBQUFBLG1CQUM3QjtBQUNMLDBCQUFZLGNBQWM7QUFDMUIsMEJBQVksZ0JBQWdCO0FBQUE7QUFBQTtBQUFBO0FBS2xDLHFEQUE2QyxhQUFhO0FBQ3hELGNBQUksT0FBTztBQUVYLGFBQUc7QUFDRCxnQkFBSSxLQUFLLFFBQVEscUJBQXFCLHNCQUFzQixPQUFPO0FBQ2pFLHFCQUFPO0FBQUE7QUFLVCxtQkFBTyxLQUFLO0FBQUEsbUJBQ0wsU0FBUztBQUVsQixpQkFBTztBQUFBO0FBR1QsbURBQTJDLGtCQUFrQixhQUFhLGFBQWEsT0FBTSxpQkFBaUI7QUFHNUcsY0FBSyxrQkFBaUIsT0FBTyxvQkFBb0IsUUFBUTtBQU92RCxnQkFBSSxxQkFBcUIsYUFBYTtBQWdCcEMsK0JBQWlCLFNBQVM7QUFBQSxtQkFDckI7QUFDTCwrQkFBaUIsU0FBUztBQUMxQiwwQkFBWSxTQUFTO0FBSXJCLDBCQUFZLFNBQVMsQ0FBRSx1QkFBc0I7QUFFN0Msa0JBQUksWUFBWSxRQUFRLGdCQUFnQjtBQUN0QyxvQkFBSSxxQkFBcUIsWUFBWTtBQUVyQyxvQkFBSSx1QkFBdUIsTUFBTTtBQUkvQiw4QkFBWSxNQUFNO0FBQUEsdUJBQ2I7QUFJTCxzQkFBSSxTQUFTLGFBQWEsYUFBYTtBQUN2Qyx5QkFBTyxNQUFNO0FBQ2IsZ0NBQWMsYUFBYTtBQUFBO0FBQUE7QUFNL0IsMEJBQVksUUFBUSxXQUFXLFlBQVksT0FBTztBQUFBO0FBR3BELG1CQUFPO0FBQUE7QUEyQ1QsMkJBQWlCLFNBQVM7QUFHMUIsMkJBQWlCLFFBQVE7QUFDekIsaUJBQU87QUFBQTtBQUdULGdDQUF3QixPQUFNLGFBQWEsYUFBYSxPQUFPLGlCQUFpQjtBQUU5RSxzQkFBWSxTQUFTO0FBRXJCO0FBQ0UsZ0JBQUksbUJBQW1CO0FBRXJCLHFDQUF1QixPQUFNO0FBQUE7QUFBQTtBQUlqQyxjQUFJLFVBQVUsUUFBUSxPQUFPLFVBQVUsWUFBWSxPQUFPLE1BQU0sU0FBUyxZQUFZO0FBRW5GLGdCQUFJLFdBQVc7QUFDZixvQ0FBd0I7QUFHeEIsZ0JBQUksbUJBQW1CLG9DQUFvQztBQUUzRCxnQkFBSSxxQkFBcUIsTUFBTTtBQUM3QiwrQkFBaUIsU0FBUyxDQUFDO0FBQzNCLGdEQUFrQyxrQkFBa0IsYUFBYSxhQUFhLE9BQU07QUFHcEYsa0JBQUksaUJBQWlCLE9BQU8sZ0JBQWdCO0FBQzFDLG1DQUFtQixPQUFNLFVBQVU7QUFBQTtBQUdyQyxrQ0FBb0Isa0JBQWtCLE9BQU07QUFDNUM7QUFBQSxtQkFDSztBQUdMLGtCQUFJLENBQUMsaUJBQWlCLGtCQUFrQjtBQVF0QyxtQ0FBbUIsT0FBTSxVQUFVO0FBQ25DO0FBQ0E7QUFBQTtBQU1GLGtCQUFJLHdCQUF3QixJQUFJLE1BQU07QUFHdEMsc0JBQVE7QUFBQTtBQUFBLGlCQUVMO0FBRUwsZ0JBQUksb0JBQW9CLFlBQVksT0FBTyxnQkFBZ0I7QUFDekQ7QUFFQSxrQkFBSSxvQkFBb0Isb0NBQW9DO0FBTTVELGtCQUFJLHNCQUFzQixNQUFNO0FBQzlCLG9CQUFLLG1CQUFrQixRQUFRLG1CQUFtQixTQUFTO0FBR3pELG9DQUFrQixTQUFTO0FBQUE7QUFHN0Isa0RBQWtDLG1CQUFtQixhQUFhLGFBQWEsT0FBTTtBQUdyRixvQ0FBb0I7QUFDcEI7QUFBQTtBQUFBO0FBQUE7QUFRTix5QkFBZTtBQUNmLGtCQUFRLG9CQUFvQixPQUFPO0FBQ25DLGNBQUksa0JBQWlCO0FBRXJCLGFBQUc7QUFDRCxvQkFBUSxnQkFBZTtBQUFBLG1CQUNoQixVQUNIO0FBQ0Usb0JBQUksYUFBYTtBQUNqQixnQ0FBZSxTQUFTO0FBQ3hCLG9CQUFJLE9BQU8sa0JBQWtCO0FBQzdCLGdDQUFlLFFBQVEsV0FBVyxnQkFBZSxPQUFPO0FBQ3hELG9CQUFJLFNBQVMsc0JBQXNCLGlCQUFnQixZQUFZO0FBQy9ELHNDQUFzQixpQkFBZ0I7QUFDdEM7QUFBQTtBQUFBLG1CQUdDO0FBRUgsb0JBQUksWUFBWTtBQUNoQixvQkFBSSxPQUFPLGdCQUFlO0FBQzFCLG9CQUFJLFdBQVcsZ0JBQWU7QUFFOUIsb0JBQUssaUJBQWUsUUFBUSxnQkFBZ0IsV0FBWSxRQUFPLEtBQUssNkJBQTZCLGNBQWMsYUFBYSxRQUFRLE9BQU8sU0FBUyxzQkFBc0IsY0FBYyxDQUFDLG1DQUFtQyxZQUFZO0FBQ3RPLGtDQUFlLFNBQVM7QUFFeEIsc0JBQUksUUFBUSxrQkFBa0I7QUFFOUIsa0NBQWUsUUFBUSxXQUFXLGdCQUFlLE9BQU87QUFFeEQsc0JBQUksVUFBVSx1QkFBdUIsaUJBQWdCLFdBQVc7QUFFaEUsd0NBQXNCLGlCQUFnQjtBQUN0QztBQUFBO0FBR0Y7QUFBQTtBQUdKLDhCQUFpQixnQkFBZTtBQUFBLG1CQUN6QixvQkFBbUI7QUFBQTtBQUc5QixxQ0FBNkI7QUFDM0I7QUFDRSxtQkFBTztBQUFBO0FBQUE7QUFJWCw0QkFBb0IsaUJBQWdCO0FBR2xDLDBCQUFlLFNBQVM7QUFBQTtBQUcxQix5QkFBaUIsaUJBQWdCO0FBQy9CLDBCQUFlLFNBQVM7QUFFeEI7QUFDRSw0QkFBZSxTQUFTO0FBQUE7QUFBQTtBQUk1QixZQUFJO0FBQ0osWUFBSTtBQUNKLFlBQUk7QUFDSixZQUFJO0FBRUo7QUFFRSw4QkFBb0IsU0FBVSxRQUFRLGlCQUFnQix1QkFBdUIsVUFBVTtBQUdyRixnQkFBSSxPQUFPLGdCQUFlO0FBRTFCLG1CQUFPLFNBQVMsTUFBTTtBQUNwQixrQkFBSSxLQUFLLFFBQVEsaUJBQWlCLEtBQUssUUFBUSxVQUFVO0FBQ3ZELG1DQUFtQixRQUFRLEtBQUs7QUFBQSx5QkFDdkIsS0FBSyxRQUFRO0FBQVk7QUFBQSx1QkFBVyxLQUFLLFVBQVUsTUFBTTtBQUNsRSxxQkFBSyxNQUFNLFNBQVM7QUFDcEIsdUJBQU8sS0FBSztBQUNaO0FBQUE7QUFHRixrQkFBSSxTQUFTLGlCQUFnQjtBQUMzQjtBQUFBO0FBR0YscUJBQU8sS0FBSyxZQUFZLE1BQU07QUFDNUIsb0JBQUksS0FBSyxXQUFXLFFBQVEsS0FBSyxXQUFXLGlCQUFnQjtBQUMxRDtBQUFBO0FBR0YsdUJBQU8sS0FBSztBQUFBO0FBR2QsbUJBQUssUUFBUSxTQUFTLEtBQUs7QUFDM0IscUJBQU8sS0FBSztBQUFBO0FBQUE7QUFJaEIsZ0NBQXNCLFNBQVUsVUFBUyxpQkFBZ0I7QUFBQTtBQUd6RCxnQ0FBc0IsU0FBVSxVQUFTLGlCQUFnQixNQUFNLFVBQVUsdUJBQXVCO0FBRzlGLGdCQUFJLFdBQVcsU0FBUTtBQUV2QixnQkFBSSxhQUFhLFVBQVU7QUFHekI7QUFBQTtBQU9GLGdCQUFJLFdBQVcsZ0JBQWU7QUFDOUIsZ0JBQUkscUJBQXFCO0FBSXpCLGdCQUFJLGdCQUFnQixjQUFjLFVBQVUsTUFBTSxVQUFVLFVBQVUsdUJBQXVCO0FBRTdGLDRCQUFlLGNBQWM7QUFHN0IsZ0JBQUksZUFBZTtBQUNqQix5QkFBVztBQUFBO0FBQUE7QUFJZiwyQkFBaUIsU0FBVSxVQUFTLGlCQUFnQixTQUFTLFNBQVM7QUFFcEUsZ0JBQUksWUFBWSxTQUFTO0FBQ3ZCLHlCQUFXO0FBQUE7QUFBQTtBQUFBO0FBS2pCLG9DQUE0QixhQUFhLDBCQUEwQjtBQUNqRSxjQUFJLGtCQUFrQjtBQUdwQjtBQUFBO0FBR0Ysa0JBQVEsWUFBWTtBQUFBLGlCQUNiLFVBQ0g7QUFNRSxrQkFBSSxXQUFXLFlBQVk7QUFDM0Isa0JBQUksZUFBZTtBQUVuQixxQkFBTyxhQUFhLE1BQU07QUFDeEIsb0JBQUksU0FBUyxjQUFjLE1BQU07QUFDL0IsaUNBQWU7QUFBQTtBQUdqQiwyQkFBVyxTQUFTO0FBQUE7QUFLdEIsa0JBQUksaUJBQWlCLE1BQU07QUFFekIsNEJBQVksT0FBTztBQUFBLHFCQUNkO0FBR0wsNkJBQWEsVUFBVTtBQUFBO0FBR3pCO0FBQUE7QUFBQSxpQkFHQyxhQUNIO0FBTUUsa0JBQUksWUFBWSxZQUFZO0FBQzVCLGtCQUFJLGdCQUFnQjtBQUVwQixxQkFBTyxjQUFjLE1BQU07QUFDekIsb0JBQUksVUFBVSxjQUFjLE1BQU07QUFDaEMsa0NBQWdCO0FBQUE7QUFHbEIsNEJBQVksVUFBVTtBQUFBO0FBS3hCLGtCQUFJLGtCQUFrQixNQUFNO0FBRTFCLG9CQUFJLENBQUMsNEJBQTRCLFlBQVksU0FBUyxNQUFNO0FBRzFELDhCQUFZLEtBQUssVUFBVTtBQUFBLHVCQUN0QjtBQUNMLDhCQUFZLE9BQU87QUFBQTtBQUFBLHFCQUVoQjtBQUdMLDhCQUFjLFVBQVU7QUFBQTtBQUcxQjtBQUFBO0FBQUE7QUFBQTtBQUtSLGtDQUEwQixlQUFlO0FBQ3ZDLGNBQUksYUFBYSxjQUFjLGNBQWMsUUFBUSxjQUFjLFVBQVUsVUFBVSxjQUFjO0FBQ3JHLGNBQUksZ0JBQWdCO0FBQ3BCLGNBQUksZUFBZTtBQUVuQixjQUFJLENBQUMsWUFBWTtBQUVmLGdCQUFNLGVBQWMsT0FBTyxpQkFBaUIsUUFBUTtBQUdsRCxrQkFBSSxpQkFBaUIsY0FBYztBQUNuQyxrQkFBSSxtQkFBbUIsY0FBYztBQUNyQyxrQkFBSSxRQUFRLGNBQWM7QUFFMUIscUJBQU8sVUFBVSxNQUFNO0FBQ3JCLGdDQUFnQixXQUFXLGVBQWUsV0FBVyxNQUFNLE9BQU8sTUFBTTtBQUN4RSxnQ0FBZ0IsTUFBTTtBQUN0QixnQ0FBZ0IsTUFBTTtBQVF0QixrQ0FBa0IsTUFBTTtBQUN4QixvQ0FBb0IsTUFBTTtBQUMxQix3QkFBUSxNQUFNO0FBQUE7QUFHaEIsNEJBQWMsaUJBQWlCO0FBQy9CLDRCQUFjLG1CQUFtQjtBQUFBLG1CQUM1QjtBQUNMLGtCQUFJLFNBQVMsY0FBYztBQUUzQixxQkFBTyxXQUFXLE1BQU07QUFDdEIsZ0NBQWdCLFdBQVcsZUFBZSxXQUFXLE9BQU8sT0FBTyxPQUFPO0FBQzFFLGdDQUFnQixPQUFPO0FBQ3ZCLGdDQUFnQixPQUFPO0FBSXZCLHVCQUFPLFNBQVM7QUFDaEIseUJBQVMsT0FBTztBQUFBO0FBQUE7QUFJcEIsMEJBQWMsZ0JBQWdCO0FBQUEsaUJBQ3pCO0FBRUwsZ0JBQU0sZUFBYyxPQUFPLGlCQUFpQixRQUFRO0FBR2xELGtCQUFJLG9CQUFvQixjQUFjO0FBQ3RDLGtCQUFJLFVBQVUsY0FBYztBQUU1QixxQkFBTyxZQUFZLE1BQU07QUFDdkIsZ0NBQWdCLFdBQVcsZUFBZSxXQUFXLFFBQVEsT0FBTyxRQUFRO0FBSzVFLGdDQUFnQixRQUFRLGVBQWU7QUFDdkMsZ0NBQWdCLFFBQVEsUUFBUTtBQUNoQyxxQ0FBcUIsUUFBUTtBQUM3QiwwQkFBVSxRQUFRO0FBQUE7QUFHcEIsNEJBQWMsbUJBQW1CO0FBQUEsbUJBQzVCO0FBQ0wsa0JBQUksVUFBVSxjQUFjO0FBRTVCLHFCQUFPLFlBQVksTUFBTTtBQUN2QixnQ0FBZ0IsV0FBVyxlQUFlLFdBQVcsUUFBUSxPQUFPLFFBQVE7QUFLNUUsZ0NBQWdCLFFBQVEsZUFBZTtBQUN2QyxnQ0FBZ0IsUUFBUSxRQUFRO0FBSWhDLHdCQUFRLFNBQVM7QUFDakIsMEJBQVUsUUFBUTtBQUFBO0FBQUE7QUFJdEIsMEJBQWMsZ0JBQWdCO0FBQUE7QUFHaEMsd0JBQWMsYUFBYTtBQUMzQixpQkFBTztBQUFBO0FBR1QsOEJBQXNCLFVBQVMsaUJBQWdCLGNBQWE7QUFDMUQsY0FBSSxXQUFXLGdCQUFlO0FBSzlCLHlCQUFlO0FBRWYsa0JBQVEsZ0JBQWU7QUFBQSxpQkFDaEI7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFDSCwrQkFBaUI7QUFDakIscUJBQU87QUFBQSxpQkFFSixnQkFDSDtBQUNFLGtCQUFJLFlBQVksZ0JBQWU7QUFFL0Isa0JBQUksa0JBQWtCLFlBQVk7QUFDaEMsMkJBQVc7QUFBQTtBQUdiLCtCQUFpQjtBQUNqQixxQkFBTztBQUFBO0FBQUEsaUJBR04sVUFDSDtBQUNFLGtCQUFJLFlBQVksZ0JBQWU7QUFFL0IsK0JBQWlCO0FBQ2pCLHVDQUF5QjtBQUN6QjtBQUVBLGtCQUFJLFVBQVUsZ0JBQWdCO0FBQzVCLDBCQUFVLFVBQVUsVUFBVTtBQUM5QiwwQkFBVSxpQkFBaUI7QUFBQTtBQUc3QixrQkFBSSxhQUFZLFFBQVEsU0FBUSxVQUFVLE1BQU07QUFHOUMsb0JBQUksY0FBYyxrQkFBa0I7QUFFcEMsb0JBQUksYUFBYTtBQUdmLDZCQUFXO0FBQUEsdUJBQ047QUFDTCxzQkFBSSxhQUFZLE1BQU07QUFDcEIsd0JBQUksWUFBWSxTQUFRO0FBRXhCLHdCQUNBLENBQUMsVUFBVSxnQkFDVixpQkFBZSxRQUFRLHVCQUF1QixTQUFTO0FBT3RELHNDQUFlLFNBQVM7QUFJeEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1SLGtDQUFvQixVQUFTO0FBQzdCLCtCQUFpQjtBQUNqQixxQkFBTztBQUFBO0FBQUEsaUJBR04sZUFDSDtBQUNFLDZCQUFlO0FBQ2Ysa0JBQUksd0JBQXdCO0FBQzVCLGtCQUFJLE9BQU8sZ0JBQWU7QUFFMUIsa0JBQUksYUFBWSxRQUFRLGdCQUFlLGFBQWEsTUFBTTtBQUN4RCxvQ0FBb0IsVUFBUyxpQkFBZ0IsTUFBTSxVQUFVO0FBRTdELG9CQUFJLFNBQVEsUUFBUSxnQkFBZSxLQUFLO0FBQ3RDLDBCQUFRO0FBQUE7QUFBQSxxQkFFTDtBQUNMLG9CQUFJLENBQUMsVUFBVTtBQUNiLHNCQUFJLGdCQUFlLGNBQWMsTUFBTTtBQUNyQywwQkFBTSxJQUFJLE1BQU07QUFBQTtBQUlsQixtQ0FBaUI7QUFDakIseUJBQU87QUFBQTtBQUdULG9CQUFJLHFCQUFxQjtBQUt6QixvQkFBSSxlQUFlLGtCQUFrQjtBQUVyQyxvQkFBSSxjQUFjO0FBR2hCLHNCQUFJLDZCQUE2QixpQkFBZ0IsdUJBQXVCLHFCQUFxQjtBQUczRiwrQkFBVztBQUFBO0FBQUEsdUJBRVI7QUFDTCxzQkFBSSxXQUFXLGVBQWUsTUFBTSxVQUFVLHVCQUF1QixvQkFBb0I7QUFDekYsb0NBQWtCLFVBQVUsaUJBQWdCLE9BQU87QUFDbkQsa0NBQWUsWUFBWTtBQUkzQixzQkFBSSx3QkFBd0IsVUFBVSxNQUFNLFVBQVUsd0JBQXdCO0FBQzVFLCtCQUFXO0FBQUE7QUFBQTtBQUlmLG9CQUFJLGdCQUFlLFFBQVEsTUFBTTtBQUUvQiwwQkFBUTtBQUFBO0FBQUE7QUFJWiwrQkFBaUI7QUFDakIscUJBQU87QUFBQTtBQUFBLGlCQUdOLFVBQ0g7QUFDRSxrQkFBSSxVQUFVO0FBRWQsa0JBQUksWUFBVyxnQkFBZSxhQUFhLE1BQU07QUFDL0Msb0JBQUksVUFBVSxTQUFRO0FBR3RCLCtCQUFlLFVBQVMsaUJBQWdCLFNBQVM7QUFBQSxxQkFDNUM7QUFDTCxvQkFBSSxPQUFPLFlBQVksVUFBVTtBQUMvQixzQkFBSSxnQkFBZSxjQUFjLE1BQU07QUFDckMsMEJBQU0sSUFBSSxNQUFNO0FBQUE7QUFBQTtBQUtwQixvQkFBSSx5QkFBeUI7QUFFN0Isb0JBQUksc0JBQXNCO0FBRTFCLG9CQUFJLGdCQUFnQixrQkFBa0I7QUFFdEMsb0JBQUksZUFBZTtBQUNqQixzQkFBSSxpQ0FBaUMsa0JBQWlCO0FBQ3BELCtCQUFXO0FBQUE7QUFBQSx1QkFFUjtBQUNMLGtDQUFlLFlBQVksbUJBQW1CLFNBQVMsd0JBQXdCLHFCQUFxQjtBQUFBO0FBQUE7QUFJeEcsK0JBQWlCO0FBQ2pCLHFCQUFPO0FBQUE7QUFBQSxpQkFHTixtQkFDSDtBQUNFLGlDQUFtQjtBQUNuQixrQkFBSSxZQUFZLGdCQUFlO0FBRS9CO0FBQ0Usb0JBQUssNEJBQTZCLGlCQUFlLE9BQU8sb0JBQW9CLFVBQVcsaUJBQWUsUUFBUSxnQkFBZ0IsU0FBUztBQUNySSw0Q0FBMEI7QUFDMUI7QUFDQSxrQ0FBZSxTQUFTLG9CQUFvQixhQUFhO0FBQ3pELHlCQUFPO0FBQUE7QUFHVCxvQkFBSSxjQUFjLFFBQVEsVUFBVSxlQUFlLE1BQU07QUFHdkQsc0JBQUksZ0JBQWdCLGtCQUFrQjtBQUV0QyxzQkFBSSxhQUFZLE1BQU07QUFDcEIsd0JBQUksQ0FBQyxlQUFlO0FBQ2xCLDRCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLHlEQUFxQztBQUNyQyxxQ0FBaUI7QUFFakI7QUFDRSwwQkFBSyxpQkFBZSxPQUFPLGlCQUFpQixRQUFRO0FBQ2xELDRCQUFJLHFCQUFxQixjQUFjO0FBRXZDLDRCQUFJLG9CQUFvQjtBQUV0Qiw4QkFBSSx1QkFBdUIsZ0JBQWU7QUFFMUMsOEJBQUkseUJBQXlCLE1BQU07QUFFakMsNENBQWUsb0JBQW9CLHFCQUFxQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTWhFLDJCQUFPO0FBQUEseUJBQ0Y7QUFHTDtBQUVBLHdCQUFLLGlCQUFlLFFBQVEsZ0JBQWdCLFNBQVM7QUFFbkQsc0NBQWUsZ0JBQWdCO0FBQUE7QUFRakMsb0NBQWUsU0FBUztBQUN4QixxQ0FBaUI7QUFFakI7QUFDRSwwQkFBSyxpQkFBZSxPQUFPLGlCQUFpQixRQUFRO0FBQ2xELDRCQUFJLHNCQUFzQixjQUFjO0FBRXhDLDRCQUFJLHFCQUFxQjtBQUV2Qiw4QkFBSSx3QkFBd0IsZ0JBQWU7QUFFM0MsOEJBQUksMEJBQTBCLE1BQU07QUFFbEMsNENBQWUsb0JBQW9CLHNCQUFzQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTWpFLDJCQUFPO0FBQUE7QUFBQTtBQVFYO0FBQUE7QUFHRixrQkFBSyxpQkFBZSxRQUFRLGdCQUFnQixTQUFTO0FBRW5ELGdDQUFlLFFBQVE7QUFFdkIsb0JBQU0saUJBQWUsT0FBTyxpQkFBaUIsUUFBUTtBQUNuRCx5Q0FBdUI7QUFBQTtBQUl6Qix1QkFBTztBQUFBO0FBR1Qsa0JBQUksaUJBQWlCLGNBQWM7QUFDbkMsa0JBQUksaUJBQWlCO0FBRXJCLGtCQUFJLGFBQVksTUFBTTtBQUNwQixrQ0FBa0I7QUFBQSxxQkFDYjtBQUNMLG9CQUFJLGFBQWEsU0FBUTtBQUN6QixpQ0FBaUIsZUFBZTtBQUFBO0FBY2xDLGtCQUFJLGtCQUFrQixDQUFDLGdCQUFnQjtBQUNyQyxvQkFBSSxrQkFBa0IsZ0JBQWU7QUFDckMsZ0NBQWdCLFNBQVM7QUFJekIsb0JBQUssaUJBQWUsT0FBTyxvQkFBb0IsUUFBUTtBQVFyRCxzQkFBSSwyQkFBMkIsYUFBWSxRQUFTLGlCQUFlLGNBQWMsK0JBQStCLFFBQVEsQ0FBQztBQUV6SCxzQkFBSSw0QkFBNEIsbUJBQW1CLG9CQUFvQixTQUFTLGlDQUFpQztBQUcvRztBQUFBLHlCQUNLO0FBR0w7QUFBQTtBQUFBO0FBQUE7QUFLTixrQkFBSSxZQUFZLGdCQUFlO0FBRS9CLGtCQUFJLGNBQWMsTUFBTTtBQUd0QixnQ0FBZSxTQUFTO0FBQUE7QUFHMUIsK0JBQWlCO0FBRWpCO0FBQ0Usb0JBQUssaUJBQWUsT0FBTyxpQkFBaUIsUUFBUTtBQUNsRCxzQkFBSSxnQkFBZ0I7QUFFbEIsd0JBQUkseUJBQXlCLGdCQUFlO0FBRTVDLHdCQUFJLDJCQUEyQixNQUFNO0FBRW5DLHNDQUFlLG9CQUFvQix1QkFBdUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1sRSxxQkFBTztBQUFBO0FBQUEsaUJBR047QUFDSCwrQkFBaUI7QUFDakIsa0NBQW9CLFVBQVM7QUFFN0Isa0JBQUksYUFBWSxNQUFNO0FBQ3BCLG1DQUFtQixnQkFBZSxVQUFVO0FBQUE7QUFHOUMsK0JBQWlCO0FBQ2pCLHFCQUFPO0FBQUEsaUJBRUo7QUFFSCxrQkFBSSxVQUFVLGdCQUFlLEtBQUs7QUFDbEMsMEJBQVksU0FBUztBQUNyQiwrQkFBaUI7QUFDakIscUJBQU87QUFBQSxpQkFFSiwwQkFDSDtBQUdFLGtCQUFJLGFBQWEsZ0JBQWU7QUFFaEMsa0JBQUksa0JBQWtCLGFBQWE7QUFDakMsMkJBQVc7QUFBQTtBQUdiLCtCQUFpQjtBQUNqQixxQkFBTztBQUFBO0FBQUEsaUJBR04sdUJBQ0g7QUFDRSxpQ0FBbUI7QUFDbkIsa0JBQUksY0FBYyxnQkFBZTtBQUVqQyxrQkFBSSxnQkFBZ0IsTUFBTTtBQUd4QixpQ0FBaUI7QUFDakIsdUJBQU87QUFBQTtBQUdULGtCQUFJLG9CQUFxQixpQkFBZSxRQUFRLGdCQUFnQjtBQUNoRSxrQkFBSSxlQUFlLFlBQVk7QUFFL0Isa0JBQUksaUJBQWlCLE1BQU07QUFFekIsb0JBQUksQ0FBQyxtQkFBbUI7QUFVdEIsc0JBQUksb0JBQW9CLDhCQUErQixjQUFZLFFBQVMsVUFBUSxRQUFRLGdCQUFnQjtBQUU1RyxzQkFBSSxDQUFDLG1CQUFtQjtBQUN0Qix3QkFBSSxNQUFNLGdCQUFlO0FBRXpCLDJCQUFPLFFBQVEsTUFBTTtBQUNuQiwwQkFBSSxZQUFZLG1CQUFtQjtBQUVuQywwQkFBSSxjQUFjLE1BQU07QUFDdEIsNENBQW9CO0FBQ3BCLHdDQUFlLFNBQVM7QUFDeEIsMkNBQW1CLGFBQWE7QUFhaEMsNEJBQUksZUFBZSxVQUFVO0FBRTdCLDRCQUFJLGlCQUFpQixNQUFNO0FBQ3pCLDBDQUFlLGNBQWM7QUFDN0IsMENBQWUsU0FBUztBQUFBO0FBTzFCLHdDQUFlLGVBQWU7QUFDOUIseUNBQWlCLGlCQUFnQjtBQUdqQyw0Q0FBb0IsaUJBQWdCLDBCQUEwQixvQkFBb0IsU0FBUztBQUUzRiwrQkFBTyxnQkFBZTtBQUFBO0FBR3hCLDRCQUFNLElBQUk7QUFBQTtBQUFBO0FBSWQsc0JBQUksWUFBWSxTQUFTLFFBQVEsUUFBUSx1QkFBdUI7QUFJOUQsb0NBQWUsU0FBUztBQUN4Qix3Q0FBb0I7QUFDcEIsdUNBQW1CLGFBQWE7QUFTaEMsb0NBQWUsUUFBUTtBQUFBO0FBQUEsdUJBRXBCO0FBQ0wscUNBQW1CLGFBQWE7QUFBQTtBQUFBLHFCQUc3QjtBQUVMLG9CQUFJLENBQUMsbUJBQW1CO0FBQ3RCLHNCQUFJLGFBQWEsbUJBQW1CO0FBRXBDLHNCQUFJLGVBQWUsTUFBTTtBQUN2QixvQ0FBZSxTQUFTO0FBQ3hCLHdDQUFvQjtBQUdwQix3QkFBSSxnQkFBZ0IsV0FBVztBQUUvQix3QkFBSSxrQkFBa0IsTUFBTTtBQUMxQixzQ0FBZSxjQUFjO0FBQzdCLHNDQUFlLFNBQVM7QUFBQTtBQUcxQix1Q0FBbUIsYUFBYTtBQUVoQyx3QkFBSSxZQUFZLFNBQVMsUUFBUSxZQUFZLGFBQWEsWUFBWSxDQUFDLGFBQWEsYUFBYSxDQUFDLGtCQUNoRztBQUVFLHVDQUFpQjtBQUNqQiw2QkFBTztBQUFBO0FBQUEsNkJBS2IsUUFBUSxJQUFJLFlBQVkscUJBQXFCLHlCQUF5QixpQkFBZ0IsZUFBZTtBQUluRyxvQ0FBZSxTQUFTO0FBQ3hCLHdDQUFvQjtBQUNwQix1Q0FBbUIsYUFBYTtBQVNoQyxvQ0FBZSxRQUFRO0FBQUE7QUFBQTtBQUkzQixvQkFBSSxZQUFZLGFBQWE7QUFNM0IsK0JBQWEsVUFBVSxnQkFBZTtBQUN0QyxrQ0FBZSxRQUFRO0FBQUEsdUJBQ2xCO0FBQ0wsc0JBQUksa0JBQWtCLFlBQVk7QUFFbEMsc0JBQUksb0JBQW9CLE1BQU07QUFDNUIsb0NBQWdCLFVBQVU7QUFBQSx5QkFDckI7QUFDTCxvQ0FBZSxRQUFRO0FBQUE7QUFHekIsOEJBQVksT0FBTztBQUFBO0FBQUE7QUFJdkIsa0JBQUksWUFBWSxTQUFTLE1BQU07QUFHN0Isb0JBQUksT0FBTyxZQUFZO0FBQ3ZCLDRCQUFZLFlBQVk7QUFDeEIsNEJBQVksT0FBTyxLQUFLO0FBQ3hCLDRCQUFZLHFCQUFxQjtBQUNqQyxxQkFBSyxVQUFVO0FBSWYsb0JBQUksa0JBQWtCLG9CQUFvQjtBQUUxQyxvQkFBSSxtQkFBbUI7QUFDckIsb0NBQWtCLDBCQUEwQixpQkFBaUI7QUFBQSx1QkFDeEQ7QUFDTCxvQ0FBa0IsaUNBQWlDO0FBQUE7QUFHckQsb0NBQW9CLGlCQUFnQjtBQUdwQyx1QkFBTztBQUFBO0FBR1QsK0JBQWlCO0FBQ2pCLHFCQUFPO0FBQUE7QUFBQSxpQkFHTixnQkFDSDtBQUVFO0FBQUE7QUFBQSxpQkFHQztBQUFBLGlCQUNBLHVCQUNIO0FBQ0UsNkJBQWU7QUFDZixrQkFBSSxhQUFhLGdCQUFlO0FBQ2hDLGtCQUFJLGVBQWUsZUFBZTtBQUVsQyxrQkFBSSxhQUFZLE1BQU07QUFDcEIsb0JBQUksY0FBYyxTQUFRO0FBQzFCLG9CQUFJLGVBQWUsZ0JBQWdCO0FBRW5DLG9CQUFJLGlCQUFpQixnQkFDckIsQ0FBQyxvQkFBc0I7QUFDckIsa0NBQWUsU0FBUztBQUFBO0FBQUE7QUFJNUIsa0JBQUksQ0FBQyxnQkFBaUIsaUJBQWUsT0FBTyxvQkFBb0IsUUFBUTtBQUN0RSxpQ0FBaUI7QUFBQSxxQkFDWjtBQUdMLG9CQUFJLGlCQUFpQixvQkFBb0IsZ0JBQWdCO0FBQ3ZELG1DQUFpQjtBQUVqQjtBQUlFLHdCQUFLLGdCQUFlLGVBQWdCLGFBQVksU0FBUztBQUN2RCxzQ0FBZSxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNaEMscUJBQU87QUFBQTtBQUFBLGlCQUdOLGdCQUNIO0FBRUUscUJBQU87QUFBQTtBQUFBLGlCQUdOLHdCQUNIO0FBRUUscUJBQU87QUFBQTtBQUFBO0FBSWIsZ0JBQU0sSUFBSSxNQUFNLCtCQUErQixnQkFBZSxNQUFNO0FBQUE7QUFHdEUsWUFBSSxzQkFBc0IscUJBQXFCO0FBQy9DLFlBQUksbUJBQW1CO0FBQ3ZCLFlBQUk7QUFDSixZQUFJO0FBQ0osWUFBSTtBQUNKLFlBQUk7QUFDSixZQUFJO0FBQ0osWUFBSTtBQUNKLFlBQUk7QUFDSixZQUFJO0FBRUo7QUFDRSxpQ0FBdUI7QUFDdkIsK0NBQXFDO0FBQ3JDLHVEQUE2QztBQUM3QywyREFBaUQ7QUFDakQscUNBQTJCO0FBQzNCLHlDQUErQjtBQUMvQixvQ0FBMEI7QUFDMUIsb0NBQTBCO0FBQUE7QUFHNUIsbUNBQTJCLFVBQVMsaUJBQWdCLGNBQWMsY0FBYTtBQUM3RSxjQUFJLGFBQVksTUFBTTtBQUtwQiw0QkFBZSxRQUFRLGlCQUFpQixpQkFBZ0IsTUFBTSxjQUFjO0FBQUEsaUJBQ3ZFO0FBTUwsNEJBQWUsUUFBUSxxQkFBcUIsaUJBQWdCLFNBQVEsT0FBTyxjQUFjO0FBQUE7QUFBQTtBQUk3RixpREFBeUMsVUFBUyxpQkFBZ0IsY0FBYyxjQUFhO0FBUzNGLDBCQUFlLFFBQVEscUJBQXFCLGlCQUFnQixTQUFRLE9BQU8sTUFBTTtBQUtqRiwwQkFBZSxRQUFRLHFCQUFxQixpQkFBZ0IsTUFBTSxjQUFjO0FBQUE7QUFHbEYsa0NBQTBCLFVBQVMsaUJBQWdCLFdBQVcsV0FBVyxjQUFhO0FBSXBGO0FBQ0UsZ0JBQUksZ0JBQWUsU0FBUyxnQkFBZSxhQUFhO0FBR3RELGtCQUFJLGlCQUFpQixVQUFVO0FBRS9CLGtCQUFJLGdCQUFnQjtBQUNsQiwrQkFBZSxnQkFBZ0IsV0FDL0IsUUFBUSx5QkFBeUI7QUFBQTtBQUFBO0FBQUE7QUFLdkMsY0FBSSxVQUFTLFVBQVU7QUFDdkIsY0FBSSxNQUFNLGdCQUFlO0FBRXpCLGNBQUk7QUFDSixjQUFJO0FBQ0osK0JBQXFCLGlCQUFnQjtBQUVyQztBQUNFLHVDQUEyQjtBQUFBO0FBRzdCO0FBQ0UsZ0NBQW9CLFVBQVU7QUFDOUIsMkJBQWU7QUFDZiwyQkFBZSxnQkFBZ0IsVUFBUyxpQkFBZ0IsU0FBUSxXQUFXLEtBQUs7QUFDaEYsb0JBQVE7QUFFUixnQkFBSyxnQkFBZSxPQUFPLGtCQUFrQjtBQUMzQyx5Q0FBMkI7QUFFM0Isa0JBQUk7QUFDRiwrQkFBZSxnQkFBZ0IsVUFBUyxpQkFBZ0IsU0FBUSxXQUFXLEtBQUs7QUFDaEYsd0JBQVE7QUFBQSx3QkFDUjtBQUNBLDJDQUEyQjtBQUFBO0FBQUE7QUFJL0IsMkJBQWU7QUFBQTtBQUdqQjtBQUNFO0FBQUE7QUFHRixjQUFJLGFBQVksUUFBUSxDQUFDLGtCQUFrQjtBQUN6Qyx5QkFBYSxVQUFTLGlCQUFnQjtBQUN0QyxtQkFBTyw2QkFBNkIsVUFBUyxpQkFBZ0I7QUFBQTtBQUcvRCxjQUFJLG9CQUFvQixPQUFPO0FBQzdCLG1DQUF1QjtBQUFBO0FBSXpCLDBCQUFlLFNBQVM7QUFDeEIsNEJBQWtCLFVBQVMsaUJBQWdCLGNBQWM7QUFDekQsaUJBQU8sZ0JBQWU7QUFBQTtBQUd4QixxQ0FBNkIsVUFBUyxpQkFBZ0IsV0FBVyxXQUFXLGNBQWE7QUFDdkYsY0FBSSxhQUFZLE1BQU07QUFDcEIsZ0JBQUksT0FBTyxVQUFVO0FBRXJCLGdCQUFJLDBCQUEwQixTQUFTLFVBQVUsWUFBWSxRQUM3RCxVQUFVLGlCQUFpQixRQUFXO0FBQ3BDLGtCQUFJLGVBQWU7QUFFbkI7QUFDRSwrQkFBZSwrQkFBK0I7QUFBQTtBQU1oRCw4QkFBZSxNQUFNO0FBQ3JCLDhCQUFlLE9BQU87QUFFdEI7QUFDRSwrQ0FBK0IsaUJBQWdCO0FBQUE7QUFHakQscUJBQU8sMEJBQTBCLFVBQVMsaUJBQWdCLGNBQWMsV0FBVztBQUFBO0FBR3JGO0FBQ0Usa0JBQUksaUJBQWlCLEtBQUs7QUFFMUIsa0JBQUksZ0JBQWdCO0FBR2xCLCtCQUFlLGdCQUFnQixXQUMvQixRQUFRLHlCQUF5QjtBQUFBO0FBQUE7QUFJckMsZ0JBQUksUUFBUSw0QkFBNEIsVUFBVSxNQUFNLE1BQU0sV0FBVyxpQkFBZ0IsZ0JBQWUsTUFBTTtBQUM5RyxrQkFBTSxNQUFNLGdCQUFlO0FBQzNCLGtCQUFNLFNBQVM7QUFDZiw0QkFBZSxRQUFRO0FBQ3ZCLG1CQUFPO0FBQUE7QUFHVDtBQUNFLGdCQUFJLFFBQVEsVUFBVTtBQUN0QixnQkFBSSxrQkFBa0IsTUFBTTtBQUU1QixnQkFBSSxpQkFBaUI7QUFHbkIsNkJBQWUsaUJBQWlCLFdBQ2hDLFFBQVEseUJBQXlCO0FBQUE7QUFBQTtBQUlyQyxjQUFJLGVBQWUsU0FBUTtBQUUzQixjQUFJLDhCQUE4Qiw4QkFBOEIsVUFBUztBQUV6RSxjQUFJLENBQUMsNkJBQTZCO0FBR2hDLGdCQUFJLFlBQVksYUFBYTtBQUU3QixnQkFBSSxVQUFVLFVBQVU7QUFDeEIsc0JBQVUsWUFBWSxPQUFPLFVBQVU7QUFFdkMsZ0JBQUksUUFBUSxXQUFXLGNBQWMsU0FBUSxRQUFRLGdCQUFlLEtBQUs7QUFDdkUscUJBQU8sNkJBQTZCLFVBQVMsaUJBQWdCO0FBQUE7QUFBQTtBQUtqRSwwQkFBZSxTQUFTO0FBQ3hCLGNBQUksV0FBVyxxQkFBcUIsY0FBYztBQUNsRCxtQkFBUyxNQUFNLGdCQUFlO0FBQzlCLG1CQUFTLFNBQVM7QUFDbEIsMEJBQWUsUUFBUTtBQUN2QixpQkFBTztBQUFBO0FBR1QsMkNBQW1DLFVBQVMsaUJBQWdCLFdBQVcsV0FBVyxjQUFhO0FBSTdGO0FBQ0UsZ0JBQUksZ0JBQWUsU0FBUyxnQkFBZSxhQUFhO0FBR3RELGtCQUFJLGdCQUFnQixnQkFBZTtBQUVuQyxrQkFBSSxjQUFjLGFBQWEsaUJBQWlCO0FBSTlDLG9CQUFJLGdCQUFnQjtBQUNwQixvQkFBSSxVQUFVLGNBQWM7QUFDNUIsb0JBQUksT0FBTyxjQUFjO0FBRXpCLG9CQUFJO0FBQ0Ysa0NBQWdCLEtBQUs7QUFBQSx5QkFDZCxHQUFQO0FBQ0Esa0NBQWdCO0FBQUE7QUFJbEIsb0JBQUksaUJBQWlCLGlCQUFpQixjQUFjO0FBRXBELG9CQUFJLGdCQUFnQjtBQUNsQixpQ0FBZSxnQkFBZ0IsV0FDL0IsUUFBUSx5QkFBeUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU16QyxjQUFJLGFBQVksTUFBTTtBQUNwQixnQkFBSSxZQUFZLFNBQVE7QUFFeEIsZ0JBQUksYUFBYSxXQUFXLGNBQWMsU0FBUSxRQUFRLGdCQUFlLE9BQ3hFLGdCQUFlLFNBQVMsU0FBUSxNQUFRO0FBQ3ZDLGlDQUFtQjtBQUVuQixrQkFBSSxDQUFDLDhCQUE4QixVQUFTLGVBQWM7QUFjeEQsZ0NBQWUsUUFBUSxTQUFRO0FBQy9CLHVCQUFPLDZCQUE2QixVQUFTLGlCQUFnQjtBQUFBLHlCQUNuRCxVQUFRLFFBQVEsa0NBQWtDLFNBQVM7QUFHckUsbUNBQW1CO0FBQUE7QUFBQTtBQUFBO0FBS3pCLGlCQUFPLHdCQUF3QixVQUFTLGlCQUFnQixXQUFXLFdBQVc7QUFBQTtBQUdoRiwwQ0FBa0MsVUFBUyxpQkFBZ0IsY0FBYTtBQUN0RSxjQUFJLFlBQVksZ0JBQWU7QUFDL0IsY0FBSSxlQUFlLFVBQVU7QUFDN0IsY0FBSSxZQUFZLGFBQVksT0FBTyxTQUFRLGdCQUFnQjtBQUUzRCxjQUFJLFVBQVUsU0FBUyxZQUFZLG9CQUFxQjtBQUV0RCxnQkFBSyxpQkFBZSxPQUFPLG9CQUFvQixRQUFRO0FBRXJELGtCQUFJLFlBQVk7QUFBQSxnQkFDZCxXQUFXO0FBQUEsZ0JBQ1gsV0FBVztBQUFBO0FBRWIsOEJBQWUsZ0JBQWdCO0FBRS9CLDhCQUFnQixpQkFBZ0I7QUFBQSx1QkFDdkIsQ0FBQyxpQkFBaUIsY0FBYSxnQkFBZ0I7QUFDeEQsa0JBQUksbUJBQW1CO0FBR3ZCLGtCQUFJO0FBRUosa0JBQUksY0FBYyxNQUFNO0FBQ3RCLG9CQUFJLGdCQUFnQixVQUFVO0FBQzlCLGdDQUFnQixXQUFXLGVBQWU7QUFBQSxxQkFDckM7QUFDTCxnQ0FBZ0I7QUFBQTtBQUlsQiw4QkFBZSxRQUFRLGdCQUFlLGFBQWEsWUFBWTtBQUMvRCxrQkFBSSxhQUFhO0FBQUEsZ0JBQ2YsV0FBVztBQUFBLGdCQUNYLFdBQVc7QUFBQTtBQUViLDhCQUFlLGdCQUFnQjtBQUMvQiw4QkFBZSxjQUFjO0FBSTdCLDhCQUFnQixpQkFBZ0I7QUFFaEMscUJBQU87QUFBQSxtQkFDRjtBQUlMLGtCQUFJLGNBQWM7QUFBQSxnQkFDaEIsV0FBVztBQUFBLGdCQUNYLFdBQVc7QUFBQTtBQUViLDhCQUFlLGdCQUFnQjtBQUUvQixrQkFBSSxzQkFBcUIsY0FBYyxPQUFPLFVBQVUsWUFBWTtBQUVwRSw4QkFBZ0IsaUJBQWdCO0FBQUE7QUFBQSxpQkFFN0I7QUFFTCxnQkFBSTtBQUVKLGdCQUFJLGNBQWMsTUFBTTtBQUV0QixvQ0FBc0IsV0FBVyxVQUFVLFdBQVc7QUFHdEQsOEJBQWUsZ0JBQWdCO0FBQUEsbUJBQzFCO0FBSUwsb0NBQXNCO0FBQUE7QUFHeEIsNEJBQWdCLGlCQUFnQjtBQUFBO0FBR2xDO0FBQ0UsOEJBQWtCLFVBQVMsaUJBQWdCLGNBQWM7QUFDekQsbUJBQU8sZ0JBQWU7QUFBQTtBQUFBO0FBSTFCLGdDQUF3QixVQUFTLGlCQUFnQixjQUFhO0FBQzVELGNBQUksZUFBZSxnQkFBZTtBQUNsQyw0QkFBa0IsVUFBUyxpQkFBZ0IsY0FBYztBQUN6RCxpQkFBTyxnQkFBZTtBQUFBO0FBR3hCLDRCQUFvQixVQUFTLGlCQUFnQixjQUFhO0FBQ3hELGNBQUksZUFBZSxnQkFBZSxhQUFhO0FBQy9DLDRCQUFrQixVQUFTLGlCQUFnQixjQUFjO0FBQ3pELGlCQUFPLGdCQUFlO0FBQUE7QUFHeEIsZ0NBQXdCLFVBQVMsaUJBQWdCLGNBQWE7QUFDNUQ7QUFDRSw0QkFBZSxTQUFTO0FBRXhCO0FBR0Usa0JBQUksWUFBWSxnQkFBZTtBQUMvQix3QkFBVSxpQkFBaUI7QUFDM0Isd0JBQVUsd0JBQXdCO0FBQUE7QUFBQTtBQUl0QyxjQUFJLFlBQVksZ0JBQWU7QUFDL0IsY0FBSSxlQUFlLFVBQVU7QUFDN0IsNEJBQWtCLFVBQVMsaUJBQWdCLGNBQWM7QUFDekQsaUJBQU8sZ0JBQWU7QUFBQTtBQUd4QiwyQkFBbUIsVUFBUyxpQkFBZ0I7QUFDMUMsY0FBSSxNQUFNLGdCQUFlO0FBRXpCLGNBQUksYUFBWSxRQUFRLFFBQVEsUUFBUSxhQUFZLFFBQVEsU0FBUSxRQUFRLEtBQUs7QUFFL0UsNEJBQWUsU0FBUztBQUV4QjtBQUNFLDhCQUFlLFNBQVM7QUFBQTtBQUFBO0FBQUE7QUFLOUIseUNBQWlDLFVBQVMsaUJBQWdCLFdBQVcsV0FBVyxjQUFhO0FBQzNGO0FBQ0UsZ0JBQUksZ0JBQWUsU0FBUyxnQkFBZSxhQUFhO0FBR3RELGtCQUFJLGlCQUFpQixVQUFVO0FBRS9CLGtCQUFJLGdCQUFnQjtBQUNsQiwrQkFBZSxnQkFBZ0IsV0FDL0IsUUFBUSx5QkFBeUI7QUFBQTtBQUFBO0FBQUE7QUFLdkMsY0FBSTtBQUVKO0FBQ0UsZ0JBQUksa0JBQWtCLG1CQUFtQixpQkFBZ0IsV0FBVztBQUNwRSxzQkFBVSxpQkFBaUIsaUJBQWdCO0FBQUE7QUFHN0MsY0FBSTtBQUNKLGNBQUk7QUFDSiwrQkFBcUIsaUJBQWdCO0FBRXJDO0FBQ0UsdUNBQTJCO0FBQUE7QUFHN0I7QUFDRSxnQ0FBb0IsVUFBVTtBQUM5QiwyQkFBZTtBQUNmLDJCQUFlLGdCQUFnQixVQUFTLGlCQUFnQixXQUFXLFdBQVcsU0FBUztBQUN2RixvQkFBUTtBQUVSLGdCQUFLLGdCQUFlLE9BQU8sa0JBQWtCO0FBQzNDLHlDQUEyQjtBQUUzQixrQkFBSTtBQUNGLCtCQUFlLGdCQUFnQixVQUFTLGlCQUFnQixXQUFXLFdBQVcsU0FBUztBQUN2Rix3QkFBUTtBQUFBLHdCQUNSO0FBQ0EsMkNBQTJCO0FBQUE7QUFBQTtBQUkvQiwyQkFBZTtBQUFBO0FBR2pCO0FBQ0U7QUFBQTtBQUdGLGNBQUksYUFBWSxRQUFRLENBQUMsa0JBQWtCO0FBQ3pDLHlCQUFhLFVBQVMsaUJBQWdCO0FBQ3RDLG1CQUFPLDZCQUE2QixVQUFTLGlCQUFnQjtBQUFBO0FBRy9ELGNBQUksb0JBQW9CLE9BQU87QUFDN0IsbUNBQXVCO0FBQUE7QUFJekIsMEJBQWUsU0FBUztBQUN4Qiw0QkFBa0IsVUFBUyxpQkFBZ0IsY0FBYztBQUN6RCxpQkFBTyxnQkFBZTtBQUFBO0FBR3hCLHNDQUE4QixVQUFTLGlCQUFnQixXQUFXLFdBQVcsY0FBYTtBQUN4RjtBQUVFLG9CQUFRLFlBQVk7QUFBQSxtQkFDYixPQUNIO0FBQ0Usb0JBQUksWUFBWSxnQkFBZTtBQUMvQixvQkFBSSxPQUFPLGdCQUFlO0FBRzFCLG9CQUFJLGVBQWUsSUFBSSxLQUFLLGdCQUFlLGVBQWUsVUFBVTtBQUNwRSxvQkFBSSxRQUFRLGFBQWE7QUFFekIsMEJBQVUsUUFBUSxnQkFBZ0IsV0FBVyxPQUFPO0FBRXBEO0FBQUE7QUFBQSxtQkFHQyxNQUNIO0FBQ0UsZ0NBQWUsU0FBUztBQUN4QixnQ0FBZSxTQUFTO0FBRXhCLG9CQUFJLFVBQVUsSUFBSSxNQUFNO0FBQ3hCLG9CQUFJLE9BQU8sa0JBQWtCO0FBQzdCLGdDQUFlLFFBQVEsV0FBVyxnQkFBZSxPQUFPO0FBRXhELG9CQUFJLFNBQVMsdUJBQXVCLGlCQUFnQixvQkFBb0IsU0FBUyxrQkFBaUI7QUFDbEcsc0NBQXNCLGlCQUFnQjtBQUN0QztBQUFBO0FBQUE7QUFJTixnQkFBSSxnQkFBZSxTQUFTLGdCQUFlLGFBQWE7QUFHdEQsa0JBQUksaUJBQWlCLFVBQVU7QUFFL0Isa0JBQUksZ0JBQWdCO0FBQ2xCLCtCQUFlLGdCQUFnQixXQUMvQixRQUFRLHlCQUF5QjtBQUFBO0FBQUE7QUFBQTtBQVF2QyxjQUFJO0FBRUosY0FBSSxrQkFBa0IsWUFBWTtBQUNoQyx5QkFBYTtBQUNiLGdDQUFvQjtBQUFBLGlCQUNmO0FBQ0wseUJBQWE7QUFBQTtBQUdmLCtCQUFxQixpQkFBZ0I7QUFDckMsY0FBSSxXQUFXLGdCQUFlO0FBQzlCLGNBQUk7QUFFSixjQUFJLGFBQWEsTUFBTTtBQUNyQixnQkFBSSxhQUFZLE1BQU07QUFLcEIsdUJBQVEsWUFBWTtBQUNwQiw4QkFBZSxZQUFZO0FBRTNCLDhCQUFlLFNBQVM7QUFBQTtBQUkxQixtQ0FBdUIsaUJBQWdCLFdBQVc7QUFDbEQsK0JBQW1CLGlCQUFnQixXQUFXLFdBQVc7QUFDekQsMkJBQWU7QUFBQSxxQkFDTixhQUFZLE1BQU07QUFFM0IsMkJBQWUseUJBQXlCLGlCQUFnQixXQUFXLFdBQVc7QUFBQSxpQkFDekU7QUFDTCwyQkFBZSxvQkFBb0IsVUFBUyxpQkFBZ0IsV0FBVyxXQUFXO0FBQUE7QUFHcEYsY0FBSSxpQkFBaUIscUJBQXFCLFVBQVMsaUJBQWdCLFdBQVcsY0FBYyxZQUFZO0FBRXhHO0FBQ0UsZ0JBQUksT0FBTyxnQkFBZTtBQUUxQixnQkFBSSxnQkFBZ0IsS0FBSyxVQUFVLFdBQVc7QUFDNUMsa0JBQUksQ0FBQyw4QkFBOEI7QUFDakMsc0JBQU0sK0hBQW9JLDBCQUEwQixvQkFBbUI7QUFBQTtBQUd6TCw2Q0FBK0I7QUFBQTtBQUFBO0FBSW5DLGlCQUFPO0FBQUE7QUFHVCxzQ0FBOEIsVUFBUyxpQkFBZ0IsV0FBVyxjQUFjLFlBQVksY0FBYTtBQUV2RyxvQkFBVSxVQUFTO0FBQ25CLGNBQUksa0JBQW1CLGlCQUFlLFFBQVEsZ0JBQWdCO0FBRTlELGNBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUI7QUFFckMsZ0JBQUksWUFBWTtBQUNkLHdDQUEwQixpQkFBZ0IsV0FBVztBQUFBO0FBR3ZELG1CQUFPLDZCQUE2QixVQUFTLGlCQUFnQjtBQUFBO0FBRy9ELGNBQUksV0FBVyxnQkFBZTtBQUU5Qiw4QkFBb0IsVUFBVTtBQUM5QixjQUFJO0FBRUosY0FBSSxtQkFBbUIsT0FBTyxVQUFVLDZCQUE2QixZQUFZO0FBTS9FLDJCQUFlO0FBRWY7QUFDRTtBQUFBO0FBQUEsaUJBRUc7QUFDTDtBQUNFLHlDQUEyQjtBQUFBO0FBRzdCO0FBQ0UsNkJBQWU7QUFDZiw2QkFBZSxTQUFTO0FBRXhCLGtCQUFLLGdCQUFlLE9BQU8sa0JBQWtCO0FBQzNDLDJDQUEyQjtBQUUzQixvQkFBSTtBQUNGLDJCQUFTO0FBQUEsMEJBQ1Q7QUFDQSw2Q0FBMkI7QUFBQTtBQUFBO0FBSS9CLDZCQUFlO0FBQUE7QUFHakI7QUFDRTtBQUFBO0FBQUE7QUFLSiwwQkFBZSxTQUFTO0FBRXhCLGNBQUksYUFBWSxRQUFRLGlCQUFpQjtBQUt2Qyw0Q0FBZ0MsVUFBUyxpQkFBZ0IsY0FBYztBQUFBLGlCQUNsRTtBQUNMLDhCQUFrQixVQUFTLGlCQUFnQixjQUFjO0FBQUE7QUFLM0QsMEJBQWUsZ0JBQWdCLFNBQVM7QUFFeEMsY0FBSSxZQUFZO0FBQ2Qsc0NBQTBCLGlCQUFnQixXQUFXO0FBQUE7QUFHdkQsaUJBQU8sZ0JBQWU7QUFBQTtBQUd4QixxQ0FBNkIsaUJBQWdCO0FBQzNDLGNBQUksUUFBTyxnQkFBZTtBQUUxQixjQUFJLE1BQUssZ0JBQWdCO0FBQ3ZCLHNDQUEwQixpQkFBZ0IsTUFBSyxnQkFBZ0IsTUFBSyxtQkFBbUIsTUFBSztBQUFBLHFCQUNuRixNQUFLLFNBQVM7QUFFdkIsc0NBQTBCLGlCQUFnQixNQUFLLFNBQVM7QUFBQTtBQUcxRCw0QkFBa0IsaUJBQWdCLE1BQUs7QUFBQTtBQUd6QyxnQ0FBd0IsVUFBUyxpQkFBZ0IsY0FBYTtBQUM1RCw4QkFBb0I7QUFFcEIsY0FBSSxhQUFZLE1BQU07QUFDcEIsa0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsY0FBSSxZQUFZLGdCQUFlO0FBQy9CLGNBQUksWUFBWSxnQkFBZTtBQUMvQixjQUFJLGVBQWUsVUFBVTtBQUM3QiwyQkFBaUIsVUFBUztBQUMxQiw2QkFBbUIsaUJBQWdCLFdBQVcsTUFBTTtBQUNwRCxjQUFJLFlBQVksZ0JBQWU7QUFDL0IsY0FBSSxRQUFPLGdCQUFlO0FBSTFCLGNBQUksZUFBZSxVQUFVO0FBRTdCLGNBQUssVUFBVSxjQUFjO0FBSzNCLGdCQUFJLGdCQUFnQjtBQUFBLGNBQ2xCLFNBQVM7QUFBQSxjQUNULGNBQWM7QUFBQSxjQUNkLE9BQU8sVUFBVTtBQUFBLGNBQ2pCLGFBQWEsVUFBVTtBQUFBO0FBRXpCLGdCQUFJLGNBQWMsZ0JBQWU7QUFHakMsd0JBQVksWUFBWTtBQUN4Qiw0QkFBZSxnQkFBZ0I7QUFFL0IsZ0JBQUksZ0JBQWUsUUFBUSxtQkFBbUI7QUFHNUMsa0JBQUksbUJBQW1CLElBQUksTUFBTTtBQUNqQyxxQkFBTyw4QkFBOEIsVUFBUyxpQkFBZ0IsY0FBYyxjQUFhO0FBQUEsdUJBQ2hGLGlCQUFpQixjQUFjO0FBQ3hDLGtCQUFJLG9CQUFvQixJQUFJLE1BQU07QUFFbEMscUJBQU8sOEJBQThCLFVBQVMsaUJBQWdCLGNBQWMsY0FBYTtBQUFBLG1CQUNwRjtBQUVMLGtDQUFvQjtBQUVwQixrQkFBSSxRQUFRLGlCQUFpQixpQkFBZ0IsTUFBTSxjQUFjO0FBQ2pFLDhCQUFlLFFBQVE7QUFDdkIsa0JBQUksT0FBTztBQUVYLHFCQUFPLE1BQU07QUFPWCxxQkFBSyxRQUFRLEtBQUssUUFBUSxDQUFDLFlBQVk7QUFDdkMsdUJBQU8sS0FBSztBQUFBO0FBQUE7QUFBQSxpQkFHWDtBQUdMO0FBRUEsZ0JBQUksaUJBQWlCLGNBQWM7QUFDakMscUJBQU8sNkJBQTZCLFVBQVMsaUJBQWdCO0FBQUE7QUFHL0QsOEJBQWtCLFVBQVMsaUJBQWdCLGNBQWM7QUFBQTtBQUczRCxpQkFBTyxnQkFBZTtBQUFBO0FBR3hCLCtDQUF1QyxVQUFTLGlCQUFnQixjQUFjLGNBQWEsa0JBQWtCO0FBRTNHO0FBQ0EsOEJBQW9CO0FBQ3BCLDBCQUFlLFNBQVM7QUFDeEIsNEJBQWtCLFVBQVMsaUJBQWdCLGNBQWM7QUFDekQsaUJBQU8sZ0JBQWU7QUFBQTtBQUd4Qix1Q0FBK0IsVUFBUyxpQkFBZ0IsY0FBYTtBQUNuRSwwQkFBZ0I7QUFFaEIsY0FBSSxhQUFZLE1BQU07QUFDcEIsNkNBQWlDO0FBQUE7QUFHbkMsY0FBSSxPQUFPLGdCQUFlO0FBQzFCLGNBQUksWUFBWSxnQkFBZTtBQUMvQixjQUFJLFlBQVksYUFBWSxPQUFPLFNBQVEsZ0JBQWdCO0FBQzNELGNBQUksZUFBZSxVQUFVO0FBQzdCLGNBQUksb0JBQW9CLHFCQUFxQixNQUFNO0FBRW5ELGNBQUksbUJBQW1CO0FBS3JCLDJCQUFlO0FBQUEscUJBQ04sY0FBYyxRQUFRLHFCQUFxQixNQUFNLFlBQVk7QUFHdEUsNEJBQWUsU0FBUztBQUFBO0FBRzFCLG9CQUFVLFVBQVM7QUFDbkIsNEJBQWtCLFVBQVMsaUJBQWdCLGNBQWM7QUFDekQsaUJBQU8sZ0JBQWU7QUFBQTtBQUd4QixrQ0FBMEIsVUFBUyxpQkFBZ0I7QUFDakQsY0FBSSxhQUFZLE1BQU07QUFDcEIsNkNBQWlDO0FBQUE7QUFLbkMsaUJBQU87QUFBQTtBQUdULG9DQUE0QixVQUFVLGlCQUFnQixhQUFhLGNBQWE7QUFDOUUsY0FBSSxhQUFhLE1BQU07QUFLckIscUJBQVMsWUFBWTtBQUNyQiw0QkFBZSxZQUFZO0FBRTNCLDRCQUFlLFNBQVM7QUFBQTtBQUcxQixjQUFJLFFBQVEsZ0JBQWU7QUFDM0IsY0FBSSxnQkFBZ0I7QUFDcEIsY0FBSSxVQUFVLGNBQWM7QUFDNUIsY0FBSSxPQUFPLGNBQWM7QUFDekIsY0FBSSxZQUFZLEtBQUs7QUFFckIsMEJBQWUsT0FBTztBQUN0QixjQUFJLGNBQWMsZ0JBQWUsTUFBTSx3QkFBd0I7QUFDL0QsY0FBSSxnQkFBZ0Isb0JBQW9CLFdBQVc7QUFDbkQsY0FBSTtBQUVKLGtCQUFRO0FBQUEsaUJBQ0QsbUJBQ0g7QUFDRTtBQUNFLCtDQUErQixpQkFBZ0I7QUFDL0MsZ0NBQWUsT0FBTyxZQUFZLCtCQUErQjtBQUFBO0FBR25FLHNCQUFRLHdCQUF3QixNQUFNLGlCQUFnQixXQUFXLGVBQWU7QUFDaEYscUJBQU87QUFBQTtBQUFBLGlCQUdOLGdCQUNIO0FBQ0U7QUFDRSxnQ0FBZSxPQUFPLFlBQVksNEJBQTRCO0FBQUE7QUFHaEUsc0JBQVEscUJBQXFCLE1BQU0saUJBQWdCLFdBQVcsZUFBZTtBQUM3RSxxQkFBTztBQUFBO0FBQUEsaUJBR04sWUFDSDtBQUNFO0FBQ0UsZ0NBQWUsT0FBTyxZQUFZLGlDQUFpQztBQUFBO0FBR3JFLHNCQUFRLGlCQUFpQixNQUFNLGlCQUFnQixXQUFXLGVBQWU7QUFDekUscUJBQU87QUFBQTtBQUFBLGlCQUdOLGVBQ0g7QUFDRTtBQUNFLG9CQUFJLGdCQUFlLFNBQVMsZ0JBQWUsYUFBYTtBQUN0RCxzQkFBSSxpQkFBaUIsVUFBVTtBQUUvQixzQkFBSSxnQkFBZ0I7QUFDbEIsbUNBQWUsZ0JBQWdCLGVBQy9CLFFBQVEseUJBQXlCO0FBQUE7QUFBQTtBQUFBO0FBS3ZDLHNCQUFRLG9CQUFvQixNQUFNLGlCQUFnQixXQUFXLG9CQUFvQixVQUFVLE1BQU0sZ0JBQ2pHO0FBQ0EscUJBQU87QUFBQTtBQUFBO0FBSWIsY0FBSSxPQUFPO0FBRVg7QUFDRSxnQkFBSSxjQUFjLFFBQVEsT0FBTyxjQUFjLFlBQVksVUFBVSxhQUFhLGlCQUFpQjtBQUNqRyxxQkFBTztBQUFBO0FBQUE7QUFPWCxnQkFBTSxJQUFJLE1BQU0sbUVBQW1FLFlBQVksT0FBUSw0REFBMkQ7QUFBQTtBQUdwSywrQ0FBdUMsVUFBVSxpQkFBZ0IsV0FBVyxXQUFXLGNBQWE7QUFDbEcsY0FBSSxhQUFhLE1BQU07QUFLckIscUJBQVMsWUFBWTtBQUNyQiw0QkFBZSxZQUFZO0FBRTNCLDRCQUFlLFNBQVM7QUFBQTtBQUkxQiwwQkFBZSxNQUFNO0FBS3JCLGNBQUk7QUFFSixjQUFJLGtCQUFrQixZQUFZO0FBQ2hDLHlCQUFhO0FBQ2IsZ0NBQW9CO0FBQUEsaUJBQ2Y7QUFDTCx5QkFBYTtBQUFBO0FBR2YsK0JBQXFCLGlCQUFnQjtBQUNyQyxpQ0FBdUIsaUJBQWdCLFdBQVc7QUFDbEQsNkJBQW1CLGlCQUFnQixXQUFXLFdBQVc7QUFDekQsaUJBQU8scUJBQXFCLE1BQU0saUJBQWdCLFdBQVcsTUFBTSxZQUFZO0FBQUE7QUFHakYsNkNBQXFDLFVBQVUsaUJBQWdCLFdBQVcsY0FBYTtBQUNyRixjQUFJLGFBQWEsTUFBTTtBQUtyQixxQkFBUyxZQUFZO0FBQ3JCLDRCQUFlLFlBQVk7QUFFM0IsNEJBQWUsU0FBUztBQUFBO0FBRzFCLGNBQUksUUFBUSxnQkFBZTtBQUMzQixjQUFJO0FBRUo7QUFDRSxnQkFBSSxrQkFBa0IsbUJBQW1CLGlCQUFnQixXQUFXO0FBQ3BFLHNCQUFVLGlCQUFpQixpQkFBZ0I7QUFBQTtBQUc3QywrQkFBcUIsaUJBQWdCO0FBQ3JDLGNBQUk7QUFDSixjQUFJO0FBRUo7QUFDRSx1Q0FBMkI7QUFBQTtBQUc3QjtBQUNFLGdCQUFJLFVBQVUsYUFBYSxPQUFPLFVBQVUsVUFBVSxXQUFXLFlBQVk7QUFDM0Usa0JBQUksZ0JBQWdCLHlCQUF5QixjQUFjO0FBRTNELGtCQUFJLENBQUMscUJBQXFCLGdCQUFnQjtBQUN4QyxzQkFBTSwwS0FBK0ssZUFBZTtBQUVwTSxxQ0FBcUIsaUJBQWlCO0FBQUE7QUFBQTtBQUkxQyxnQkFBSSxnQkFBZSxPQUFPLGtCQUFrQjtBQUMxQyxzQ0FBd0IsMkJBQTJCLGlCQUFnQjtBQUFBO0FBR3JFLDJCQUFlO0FBQ2YsZ0NBQW9CLFVBQVU7QUFDOUIsb0JBQVEsZ0JBQWdCLE1BQU0saUJBQWdCLFdBQVcsT0FBTyxTQUFTO0FBQ3pFLG9CQUFRO0FBQ1IsMkJBQWU7QUFBQTtBQUdqQjtBQUNFO0FBQUE7QUFJRiwwQkFBZSxTQUFTO0FBRXhCO0FBR0UsZ0JBQUksT0FBTyxVQUFVLFlBQVksVUFBVSxRQUFRLE9BQU8sTUFBTSxXQUFXLGNBQWMsTUFBTSxhQUFhLFFBQVc7QUFDckgsa0JBQUksaUJBQWlCLHlCQUF5QixjQUFjO0FBRTVELGtCQUFJLENBQUMsbUNBQW1DLGlCQUFpQjtBQUN2RCxzQkFBTSxrV0FBc1gsZ0JBQWdCLGdCQUFnQjtBQUU1WixtREFBbUMsa0JBQWtCO0FBQUE7QUFBQTtBQUFBO0FBSzNELGNBRUMsT0FBTyxVQUFVLFlBQVksVUFBVSxRQUFRLE9BQU8sTUFBTSxXQUFXLGNBQWMsTUFBTSxhQUFhLFFBQVc7QUFDbEg7QUFDRSxrQkFBSSxrQkFBa0IseUJBQXlCLGNBQWM7QUFFN0Qsa0JBQUksQ0FBQyxtQ0FBbUMsa0JBQWtCO0FBQ3hELHNCQUFNLGtXQUFzWCxpQkFBaUIsaUJBQWlCO0FBRTlaLG1EQUFtQyxtQkFBbUI7QUFBQTtBQUFBO0FBSzFELDRCQUFlLE1BQU07QUFFckIsNEJBQWUsZ0JBQWdCO0FBQy9CLDRCQUFlLGNBQWM7QUFJN0IsZ0JBQUksYUFBYTtBQUVqQixnQkFBSSxrQkFBa0IsWUFBWTtBQUNoQywyQkFBYTtBQUNiLGtDQUFvQjtBQUFBLG1CQUNmO0FBQ0wsMkJBQWE7QUFBQTtBQUdmLDRCQUFlLGdCQUFnQixNQUFNLFVBQVUsUUFBUSxNQUFNLFVBQVUsU0FBWSxNQUFNLFFBQVE7QUFDakcsa0NBQXNCO0FBQ3RCLCtCQUFtQixpQkFBZ0I7QUFDbkMsK0JBQW1CLGlCQUFnQixXQUFXLE9BQU87QUFDckQsbUJBQU8scUJBQXFCLE1BQU0saUJBQWdCLFdBQVcsTUFBTSxZQUFZO0FBQUEsaUJBQzFFO0FBRUwsNEJBQWUsTUFBTTtBQUVyQjtBQUVFLGtCQUFLLGdCQUFlLE9BQU8sa0JBQWtCO0FBQzNDLDJDQUEyQjtBQUUzQixvQkFBSTtBQUNGLDBCQUFRLGdCQUFnQixNQUFNLGlCQUFnQixXQUFXLE9BQU8sU0FBUztBQUN6RSwwQkFBUTtBQUFBLDBCQUNSO0FBQ0EsNkNBQTJCO0FBQUE7QUFBQTtBQUFBO0FBS2pDLGdCQUFJLG9CQUFvQixPQUFPO0FBQzdCLHFDQUF1QjtBQUFBO0FBR3pCLDhCQUFrQixNQUFNLGlCQUFnQixPQUFPO0FBRS9DO0FBQ0UsNkNBQStCLGlCQUFnQjtBQUFBO0FBR2pELG1CQUFPLGdCQUFlO0FBQUE7QUFBQTtBQUkxQixnREFBd0MsaUJBQWdCLFdBQVc7QUFDakU7QUFDRSxnQkFBSSxXQUFXO0FBQ2Isa0JBQUksVUFBVSxtQkFBbUI7QUFDL0Isc0JBQU0seUVBQXlFLFVBQVUsZUFBZSxVQUFVLFFBQVE7QUFBQTtBQUFBO0FBSTlILGdCQUFJLGdCQUFlLFFBQVEsTUFBTTtBQUMvQixrQkFBSSxPQUFPO0FBQ1gsa0JBQUksWUFBWTtBQUVoQixrQkFBSSxXQUFXO0FBQ2Isd0JBQVEscUNBQXFDLFlBQVk7QUFBQTtBQUczRCxrQkFBSSxhQUFhLGFBQWE7QUFDOUIsa0JBQUksY0FBYyxnQkFBZTtBQUVqQyxrQkFBSSxhQUFhO0FBQ2YsNkJBQWEsWUFBWSxXQUFXLE1BQU0sWUFBWTtBQUFBO0FBR3hELGtCQUFJLENBQUMseUJBQXlCLGFBQWE7QUFDekMseUNBQXlCLGNBQWM7QUFFdkMsc0JBQU0sOEhBQXdJO0FBQUE7QUFBQTtBQUlsSixnQkFBSSxPQUFPLFVBQVUsNkJBQTZCLFlBQVk7QUFDNUQsa0JBQUksa0JBQWtCLHlCQUF5QixjQUFjO0FBRTdELGtCQUFJLENBQUMsK0NBQStDLGtCQUFrQjtBQUNwRSxzQkFBTSxvRUFBb0U7QUFFMUUsK0RBQStDLG1CQUFtQjtBQUFBO0FBQUE7QUFJdEUsZ0JBQUksT0FBTyxVQUFVLGdCQUFnQixZQUFZLFVBQVUsZ0JBQWdCLE1BQU07QUFDL0Usa0JBQUksa0JBQWtCLHlCQUF5QixjQUFjO0FBRTdELGtCQUFJLENBQUMsMkNBQTJDLGtCQUFrQjtBQUNoRSxzQkFBTSx1REFBdUQ7QUFFN0QsMkRBQTJDLG1CQUFtQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTXRFLFlBQUksbUJBQW1CO0FBQUEsVUFDckIsWUFBWTtBQUFBLFVBQ1osYUFBYTtBQUFBLFVBQ2IsV0FBVztBQUFBO0FBR2IsNkNBQXFDLGNBQWE7QUFDaEQsaUJBQU87QUFBQSxZQUNMLFdBQVc7QUFBQSxZQUNYLFdBQVc7QUFBQTtBQUFBO0FBSWYsOENBQXNDLG9CQUFvQixjQUFhO0FBQ3JFLGNBQUksWUFBWTtBQUVoQixpQkFBTztBQUFBLFlBQ0wsV0FBVyxXQUFXLG1CQUFtQixXQUFXO0FBQUEsWUFDcEQ7QUFBQTtBQUFBO0FBS0osd0NBQWdDLGlCQUFpQixVQUFTLGlCQUFnQixjQUFhO0FBSXJGLGNBQUksYUFBWSxNQUFNO0FBQ3BCLGdCQUFJLGdCQUFnQixTQUFRO0FBRTVCLGdCQUFJLGtCQUFrQixNQUFNO0FBSzFCLHFCQUFPO0FBQUE7QUFBQTtBQUtYLGlCQUFPLG1CQUFtQixpQkFBaUI7QUFBQTtBQUc3QywrQ0FBdUMsVUFBUyxjQUFhO0FBRTNELGlCQUFPLFlBQVksU0FBUSxZQUFZO0FBQUE7QUFHekMseUNBQWlDLFVBQVMsaUJBQWdCLGNBQWE7QUFDckUsY0FBSSxZQUFZLGdCQUFlO0FBRS9CO0FBQ0UsZ0JBQUksY0FBYyxrQkFBaUI7QUFDakMsOEJBQWUsU0FBUztBQUFBO0FBQUE7QUFJNUIsY0FBSSxrQkFBa0Isb0JBQW9CO0FBQzFDLGNBQUksZUFBZTtBQUNuQixjQUFJLGNBQWMsaUJBQWUsUUFBUSxnQkFBZ0I7QUFFekQsY0FBSSxlQUFjLHVCQUF1QixpQkFBaUIsV0FBVTtBQUdsRSwyQkFBZTtBQUNmLDRCQUFlLFNBQVMsQ0FBQztBQUFBLGlCQUNwQjtBQUVMLGdCQUFJLGFBQVksUUFBUSxTQUFRLGtCQUFrQixNQUFNO0FBS3REO0FBQ0Usa0NBQWtCLDBCQUEwQixpQkFBaUI7QUFBQTtBQUFBO0FBQUE7QUFLbkUsNEJBQWtCLGlDQUFpQztBQUNuRCw4QkFBb0IsaUJBQWdCO0FBdUJwQyxjQUFJLGFBQVksTUFBTTtBQUdwQiw2Q0FBaUM7QUFFakM7QUFDRSxrQkFBSSxnQkFBZ0IsZ0JBQWU7QUFFbkMsa0JBQUksa0JBQWtCLE1BQU07QUFDMUIsb0JBQUksYUFBYSxjQUFjO0FBRS9CLG9CQUFJLGVBQWUsTUFBTTtBQUN2Qix5QkFBTyxpQ0FBaUMsaUJBQWdCO0FBQUE7QUFBQTtBQUFBO0FBSzlELGdCQUFJLHNCQUFzQixVQUFVO0FBQ3BDLGdCQUFJLHVCQUF1QixVQUFVO0FBRXJDLGdCQUFJLGNBQWM7QUFDaEIsa0JBQUksbUJBQW1CLDhCQUE4QixpQkFBZ0IscUJBQXFCLHNCQUFzQjtBQUNoSCxrQkFBSSx1QkFBdUIsZ0JBQWU7QUFDMUMsbUNBQXFCLGdCQUFnQiw0QkFBNEI7QUFDakUsOEJBQWUsZ0JBQWdCO0FBQy9CLHFCQUFPO0FBQUEsbUJBQ0Y7QUFDTCxxQkFBTyw2QkFBNkIsaUJBQWdCO0FBQUE7QUFBQSxpQkFFakQ7QUFJTCxnQkFBSSxZQUFZLFNBQVE7QUFFeEIsZ0JBQUksY0FBYyxNQUFNO0FBR3RCO0FBQ0Usb0JBQUksY0FBYyxVQUFVO0FBRTVCLG9CQUFJLGdCQUFnQixNQUFNO0FBQ3hCLHNCQUFJLENBQUMsYUFBWTtBQUNmLDJCQUFPLGtDQUFrQyxVQUFTLGlCQUFnQixhQUFhLFdBQVc7QUFBQSw2QkFDakYsZ0JBQWUsUUFBUSxtQkFBbUI7QUFFbkQsb0NBQWUsU0FBUyxDQUFDO0FBQ3pCLDJCQUFPLHVDQUF1QyxVQUFTLGlCQUFnQixjQUFhLElBQUksTUFBTTtBQUFBLDZCQUNyRixnQkFBZSxrQkFBa0IsTUFBTTtBQUdoRCxvQ0FBZSxRQUFRLFNBQVE7QUFHL0Isb0NBQWUsU0FBUztBQUN4QiwyQkFBTztBQUFBLHlCQUNGO0FBR0wsd0JBQUksdUJBQXVCLFVBQVU7QUFDckMsd0JBQUksd0JBQXdCLFVBQVU7QUFDdEMsd0JBQUksd0JBQXdCLGdEQUFnRCxVQUFTLGlCQUFnQixzQkFBc0IsdUJBQXVCO0FBQ2xKLHdCQUFJLHlCQUF5QixnQkFBZTtBQUM1QywyQ0FBdUIsZ0JBQWdCLDRCQUE0QjtBQUNuRSxvQ0FBZSxnQkFBZ0I7QUFDL0IsMkJBQU87QUFBQTtBQUFBO0FBQUE7QUFLYixrQkFBSSxjQUFjO0FBQ2hCLG9CQUFJLHlCQUF5QixVQUFVO0FBQ3ZDLG9CQUFJLHdCQUF3QixVQUFVO0FBRXRDLG9CQUFJLHlCQUF5QiwrQkFBK0IsVUFBUyxpQkFBZ0IsdUJBQXVCLHdCQUF3QjtBQUVwSSxvQkFBSSx5QkFBeUIsZ0JBQWU7QUFDNUMsb0JBQUkscUJBQXFCLFNBQVEsTUFBTTtBQUN2Qyx1Q0FBdUIsZ0JBQWdCLHVCQUF1QixPQUFPLDRCQUE0QixnQkFBZSw2QkFBNkIsb0JBQW9CO0FBQ2pLLHVDQUF1QixhQUFhLDhCQUE4QixVQUFTO0FBQzNFLGdDQUFlLGdCQUFnQjtBQUMvQix1QkFBTztBQUFBLHFCQUNGO0FBQ0wsb0JBQUksd0JBQXdCLFVBQVU7QUFFdEMsb0JBQUkseUJBQXlCLDhCQUE4QixVQUFTLGlCQUFnQix1QkFBdUI7QUFFM0csZ0NBQWUsZ0JBQWdCO0FBQy9CLHVCQUFPO0FBQUE7QUFBQSxtQkFFSjtBQUVMLGtCQUFJLGNBQWM7QUFFaEIsb0JBQUkseUJBQXlCLFVBQVU7QUFDdkMsb0JBQUksd0JBQXdCLFVBQVU7QUFFdEMsb0JBQUksMEJBQTBCLCtCQUErQixVQUFTLGlCQUFnQix1QkFBdUIsd0JBQXdCO0FBRXJJLG9CQUFJLHlCQUF5QixnQkFBZTtBQUM1QyxvQkFBSSxzQkFBc0IsU0FBUSxNQUFNO0FBQ3hDLHVDQUF1QixnQkFBZ0Isd0JBQXdCLE9BQU8sNEJBQTRCLGdCQUFlLDZCQUE2QixxQkFBcUI7QUFDbkssdUNBQXVCLGFBQWEsOEJBQThCLFVBQVM7QUFHM0UsZ0NBQWUsZ0JBQWdCO0FBQy9CLHVCQUFPO0FBQUEscUJBQ0Y7QUFHTCxvQkFBSSx3QkFBd0IsVUFBVTtBQUV0QyxvQkFBSSx5QkFBeUIsOEJBQThCLFVBQVMsaUJBQWdCLHVCQUF1QjtBQUUzRyxnQ0FBZSxnQkFBZ0I7QUFDL0IsdUJBQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1mLDhDQUFzQyxpQkFBZ0IsaUJBQWlCLGNBQWE7QUFDbEYsY0FBSSxPQUFPLGdCQUFlO0FBQzFCLGNBQUksb0JBQW9CO0FBQUEsWUFDdEIsTUFBTTtBQUFBLFlBQ04sVUFBVTtBQUFBO0FBRVosY0FBSSx1QkFBdUIsa0NBQWtDLG1CQUFtQjtBQUNoRiwrQkFBcUIsU0FBUztBQUM5QiwwQkFBZSxRQUFRO0FBQ3ZCLGlCQUFPO0FBQUE7QUFHVCwrQ0FBdUMsaUJBQWdCLGlCQUFpQixrQkFBa0IsY0FBYTtBQUNyRyxjQUFJLE9BQU8sZ0JBQWU7QUFDMUIsY0FBSSw0QkFBNEIsZ0JBQWU7QUFDL0MsY0FBSSxvQkFBb0I7QUFBQSxZQUN0QixNQUFNO0FBQUEsWUFDTixVQUFVO0FBQUE7QUFFWixjQUFJO0FBQ0osY0FBSTtBQUVKLGNBQUssUUFBTyxvQkFBb0IsVUFBVSw4QkFBOEIsTUFBTTtBQUc1RSxtQ0FBdUI7QUFDdkIsaUNBQXFCLGFBQWE7QUFDbEMsaUNBQXFCLGVBQWU7QUFFcEMsZ0JBQUssZ0JBQWUsT0FBTyxhQUFhO0FBS3RDLG1DQUFxQixpQkFBaUI7QUFDdEMsbUNBQXFCLGtCQUFrQjtBQUN2QyxtQ0FBcUIsbUJBQW1CO0FBQ3hDLG1DQUFxQixtQkFBbUI7QUFBQTtBQUcxQyxvQ0FBd0Isd0JBQXdCLGtCQUFrQixNQUFNLGNBQWE7QUFBQSxpQkFDaEY7QUFDTCxtQ0FBdUIsa0NBQWtDLG1CQUFtQjtBQUM1RSxvQ0FBd0Isd0JBQXdCLGtCQUFrQixNQUFNLGNBQWE7QUFBQTtBQUd2RiwrQkFBcUIsU0FBUztBQUM5QixnQ0FBc0IsU0FBUztBQUMvQiwrQkFBcUIsVUFBVTtBQUMvQiwwQkFBZSxRQUFRO0FBQ3ZCLGlCQUFPO0FBQUE7QUFHVCxtREFBMkMsZ0JBQWdCLE1BQU0sY0FBYTtBQUc1RSxpQkFBTyx5QkFBeUIsZ0JBQWdCLE1BQU0sU0FBUztBQUFBO0FBR2pFLG9EQUE0QyxVQUFTLGdCQUFnQjtBQUduRSxpQkFBTyxxQkFBcUIsVUFBUztBQUFBO0FBR3ZDLCtDQUF1QyxVQUFTLGlCQUFnQixpQkFBaUIsY0FBYTtBQUM1RixjQUFJLDhCQUE4QixTQUFRO0FBQzFDLGNBQUksK0JBQStCLDRCQUE0QjtBQUMvRCxjQUFJLHVCQUF1QixtQ0FBbUMsNkJBQTZCO0FBQUEsWUFDekYsTUFBTTtBQUFBLFlBQ04sVUFBVTtBQUFBO0FBR1osY0FBSyxpQkFBZSxPQUFPLG9CQUFvQixRQUFRO0FBQ3JELGlDQUFxQixRQUFRO0FBQUE7QUFHL0IsK0JBQXFCLFNBQVM7QUFDOUIsK0JBQXFCLFVBQVU7QUFFL0IsY0FBSSxpQ0FBaUMsTUFBTTtBQUV6QyxnQkFBSSxZQUFZLGdCQUFlO0FBRS9CLGdCQUFJLGNBQWMsTUFBTTtBQUN0Qiw4QkFBZSxZQUFZLENBQUM7QUFDNUIsOEJBQWUsU0FBUztBQUFBLG1CQUNuQjtBQUNMLHdCQUFVLEtBQUs7QUFBQTtBQUFBO0FBSW5CLDBCQUFlLFFBQVE7QUFDdkIsaUJBQU87QUFBQTtBQUdULGdEQUF3QyxVQUFTLGlCQUFnQixpQkFBaUIsa0JBQWtCLGNBQWE7QUFDL0csY0FBSSxPQUFPLGdCQUFlO0FBQzFCLGNBQUksOEJBQThCLFNBQVE7QUFDMUMsY0FBSSwrQkFBK0IsNEJBQTRCO0FBQy9ELGNBQUksb0JBQW9CO0FBQUEsWUFDdEIsTUFBTTtBQUFBLFlBQ04sVUFBVTtBQUFBO0FBRVosY0FBSTtBQUVKLGNBRUMsUUFBTyxvQkFBb0IsVUFNNUIsZ0JBQWUsVUFBVSw2QkFBNkI7QUFDcEQsZ0JBQUksNEJBQTRCLGdCQUFlO0FBQy9DLG1DQUF1QjtBQUN2QixpQ0FBcUIsYUFBYTtBQUNsQyxpQ0FBcUIsZUFBZTtBQUVwQyxnQkFBSyxnQkFBZSxPQUFPLGFBQWE7QUFLdEMsbUNBQXFCLGlCQUFpQjtBQUN0QyxtQ0FBcUIsa0JBQWtCO0FBQ3ZDLG1DQUFxQixtQkFBbUIsNEJBQTRCO0FBQ3BFLG1DQUFxQixtQkFBbUIsNEJBQTRCO0FBQUE7QUFNdEUsNEJBQWUsWUFBWTtBQUFBLGlCQUN0QjtBQUNMLG1DQUF1QixtQ0FBbUMsNkJBQTZCO0FBS3ZGLGlDQUFxQixlQUFlLDRCQUE0QixlQUFlO0FBQUE7QUFHakYsY0FBSTtBQUVKLGNBQUksaUNBQWlDLE1BQU07QUFDekMsb0NBQXdCLHFCQUFxQiw4QkFBOEI7QUFBQSxpQkFDdEU7QUFDTCxvQ0FBd0Isd0JBQXdCLGtCQUFrQixNQUFNLGNBQWE7QUFHckYsa0NBQXNCLFNBQVM7QUFBQTtBQUdqQyxnQ0FBc0IsU0FBUztBQUMvQiwrQkFBcUIsU0FBUztBQUM5QiwrQkFBcUIsVUFBVTtBQUMvQiwwQkFBZSxRQUFRO0FBQ3ZCLGlCQUFPO0FBQUE7QUFHVCx3REFBZ0QsVUFBUyxpQkFBZ0IsY0FBYSxrQkFBa0I7QUFRdEcsY0FBSSxxQkFBcUIsTUFBTTtBQUM3QixnQ0FBb0I7QUFBQTtBQUl0QiwrQkFBcUIsaUJBQWdCLFNBQVEsT0FBTyxNQUFNO0FBRTFELGNBQUksWUFBWSxnQkFBZTtBQUMvQixjQUFJLGtCQUFrQixVQUFVO0FBQ2hDLGNBQUksdUJBQXVCLDZCQUE2QixpQkFBZ0I7QUFHeEUsK0JBQXFCLFNBQVM7QUFDOUIsMEJBQWUsZ0JBQWdCO0FBQy9CLGlCQUFPO0FBQUE7QUFHVCxpRUFBeUQsVUFBUyxpQkFBZ0IsaUJBQWlCLGtCQUFrQixjQUFhO0FBQ2hJLGNBQUksWUFBWSxnQkFBZTtBQUMvQixjQUFJLG9CQUFvQjtBQUFBLFlBQ3RCLE1BQU07QUFBQSxZQUNOLFVBQVU7QUFBQTtBQUVaLGNBQUksdUJBQXVCLGtDQUFrQyxtQkFBbUI7QUFDaEYsY0FBSSx3QkFBd0Isd0JBQXdCLGtCQUFrQixXQUFXLGNBQWE7QUFHOUYsZ0NBQXNCLFNBQVM7QUFDL0IsK0JBQXFCLFNBQVM7QUFDOUIsZ0NBQXNCLFNBQVM7QUFDL0IsK0JBQXFCLFVBQVU7QUFDL0IsMEJBQWUsUUFBUTtBQUV2QixjQUFLLGlCQUFlLE9BQU8sb0JBQW9CLFFBQVE7QUFHckQsaUNBQXFCLGlCQUFnQixTQUFRLE9BQU8sTUFBTTtBQUFBO0FBRzVELGlCQUFPO0FBQUE7QUFHVCxrREFBMEMsaUJBQWdCLGtCQUFrQixjQUFhO0FBR3ZGLGNBQUssaUJBQWUsT0FBTyxvQkFBb0IsUUFBUTtBQUNyRDtBQUNFLG9CQUFNO0FBQUE7QUFHUiw0QkFBZSxRQUFRLFlBQVk7QUFBQSxxQkFDMUIsMkJBQTJCLG1CQUFtQjtBQVl2RCw0QkFBZSxRQUFRLFlBQVk7QUFBQSxpQkFDOUI7QUFHTCw0QkFBZSxRQUFRLFlBQVk7QUFBQTtBQUdyQyxpQkFBTztBQUFBO0FBR1QsbURBQTJDLFVBQVMsaUJBQWdCLGtCQUFrQixlQUFlLGNBQWE7QUFHaEg7QUFFQSxjQUFLLGlCQUFlLE9BQU8sb0JBQW9CLFFBQVE7QUFDckQsbUJBQU8sdUNBQXVDLFVBQVMsaUJBQWdCLGNBR3ZFO0FBQUE7QUFHRixjQUFJLDJCQUEyQixtQkFBbUI7QUFJaEQsbUJBQU8sdUNBQXVDLFVBQVMsaUJBQWdCLGNBR3ZFLElBQUksTUFBTTtBQUFBO0FBS1osY0FBSSxxQkFBb0IsaUJBQWlCLGNBQWEsU0FBUTtBQUU5RCxjQUFJLG9CQUFvQixvQkFBbUI7QUFHekMsZ0JBQUksUUFBTztBQUVYLGdCQUFJLFVBQVMsTUFBTTtBQUNqQixrQkFBSSx5QkFBeUIsMEJBQTBCLE9BQU07QUFFN0Qsa0JBQUksMkJBQTJCLFVBQVUsMkJBQTJCLGNBQWMsV0FBVztBQUkzRiw4QkFBYyxZQUFZO0FBRTFCLG9CQUFJLFlBQVk7QUFDaEIsc0NBQXNCLFVBQVMsd0JBQXdCO0FBQUE7QUFBQTtBQVMzRDtBQUNBLG1CQUFPLHVDQUF1QyxVQUFTLGlCQUFnQixjQUFhLElBQUksTUFBTTtBQUFBLHFCQUNyRiwwQkFBMEIsbUJBQW1CO0FBVXRELDRCQUFlLFNBQVM7QUFFeEIsNEJBQWUsUUFBUSxTQUFRO0FBRS9CLGdCQUFJLFFBQVEsZ0NBQWdDLEtBQUssTUFBTTtBQUN2RCwwQ0FBOEIsa0JBQWtCO0FBQ2hELG1CQUFPO0FBQUEsaUJBQ0Y7QUFFTCxnRUFBb0QsaUJBQWdCLGtCQUFrQixjQUFjO0FBQ3BHLGdCQUFJLFlBQVksZ0JBQWU7QUFDL0IsZ0JBQUksa0JBQWtCLFVBQVU7QUFDaEMsZ0JBQUksdUJBQXVCLDZCQUE2QixpQkFBZ0I7QUFPeEUsaUNBQXFCLFNBQVM7QUFDOUIsbUJBQU87QUFBQTtBQUFBO0FBSVgsNkNBQXFDLE9BQU8sY0FBYSxpQkFBaUI7QUFDeEUsZ0JBQU0sUUFBUSxXQUFXLE1BQU0sT0FBTztBQUN0QyxjQUFJLFlBQVksTUFBTTtBQUV0QixjQUFJLGNBQWMsTUFBTTtBQUN0QixzQkFBVSxRQUFRLFdBQVcsVUFBVSxPQUFPO0FBQUE7QUFHaEQsMENBQWdDLE1BQU0sUUFBUSxjQUFhO0FBQUE7QUFHN0QsZ0RBQXdDLGlCQUFnQixZQUFZLGNBQWE7QUFJL0UsY0FBSSxPQUFPO0FBRVgsaUJBQU8sU0FBUyxNQUFNO0FBQ3BCLGdCQUFJLEtBQUssUUFBUSxtQkFBbUI7QUFDbEMsa0JBQUksUUFBUSxLQUFLO0FBRWpCLGtCQUFJLFVBQVUsTUFBTTtBQUNsQiw0Q0FBNEIsTUFBTSxjQUFhO0FBQUE7QUFBQSx1QkFFeEMsS0FBSyxRQUFRLHVCQUF1QjtBQU03QywwQ0FBNEIsTUFBTSxjQUFhO0FBQUEsdUJBQ3RDLEtBQUssVUFBVSxNQUFNO0FBQzlCLG1CQUFLLE1BQU0sU0FBUztBQUNwQixxQkFBTyxLQUFLO0FBQ1o7QUFBQTtBQUdGLGdCQUFJLFNBQVMsaUJBQWdCO0FBQzNCO0FBQUE7QUFHRixtQkFBTyxLQUFLLFlBQVksTUFBTTtBQUM1QixrQkFBSSxLQUFLLFdBQVcsUUFBUSxLQUFLLFdBQVcsaUJBQWdCO0FBQzFEO0FBQUE7QUFHRixxQkFBTyxLQUFLO0FBQUE7QUFHZCxpQkFBSyxRQUFRLFNBQVMsS0FBSztBQUMzQixtQkFBTyxLQUFLO0FBQUE7QUFBQTtBQUloQixvQ0FBNEIsWUFBWTtBQVF0QyxjQUFJLE1BQU07QUFDVixjQUFJLGlCQUFpQjtBQUVyQixpQkFBTyxRQUFRLE1BQU07QUFDbkIsZ0JBQUksYUFBYSxJQUFJO0FBRXJCLGdCQUFJLGVBQWUsUUFBUSxtQkFBbUIsZ0JBQWdCLE1BQU07QUFDbEUsK0JBQWlCO0FBQUE7QUFHbkIsa0JBQU0sSUFBSTtBQUFBO0FBR1osaUJBQU87QUFBQTtBQUdULHFDQUE2QixhQUFhO0FBQ3hDO0FBQ0UsZ0JBQUksZ0JBQWdCLFVBQWEsZ0JBQWdCLGNBQWMsZ0JBQWdCLGVBQWUsZ0JBQWdCLGNBQWMsQ0FBQyx3QkFBd0IsY0FBYztBQUNqSyxzQ0FBd0IsZUFBZTtBQUV2QyxrQkFBSSxPQUFPLGdCQUFnQixVQUFVO0FBQ25DLHdCQUFRLFlBQVk7QUFBQSx1QkFDYjtBQUFBLHVCQUNBO0FBQUEsdUJBQ0EsYUFDSDtBQUNFLDBCQUFNLDhGQUFtRyxhQUFhLFlBQVk7QUFFbEk7QUFBQTtBQUFBLHVCQUdDO0FBQUEsdUJBQ0EsWUFDSDtBQUNFLDBCQUFNLCtIQUFvSSxhQUFhLFlBQVk7QUFFbks7QUFBQTtBQUFBO0FBSUYsMEJBQU0sZ0hBQXFIO0FBRTNIO0FBQUE7QUFBQSxxQkFFQztBQUNMLHNCQUFNLHdIQUE2SDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTTNJLHFDQUE2QixVQUFVLGFBQWE7QUFDbEQ7QUFDRSxnQkFBSSxhQUFhLFVBQWEsQ0FBQyx3QkFBd0IsV0FBVztBQUNoRSxrQkFBSSxhQUFhLGVBQWUsYUFBYSxVQUFVO0FBQ3JELHdDQUF3QixZQUFZO0FBRXBDLHNCQUFNLHFHQUEwRztBQUFBLHlCQUN2RyxnQkFBZ0IsY0FBYyxnQkFBZ0IsYUFBYTtBQUNwRSx3Q0FBd0IsWUFBWTtBQUVwQyxzQkFBTSx5SUFBbUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1qSyxpREFBeUMsV0FBVyxRQUFPO0FBQ3pEO0FBQ0UsZ0JBQUksWUFBWSxRQUFRO0FBQ3hCLGdCQUFJLGFBQWEsQ0FBQyxhQUFhLE9BQU8sY0FBYyxlQUFlO0FBRW5FLGdCQUFJLGFBQWEsWUFBWTtBQUMzQixrQkFBSSxPQUFPLFlBQVksVUFBVTtBQUVqQyxvQkFBTSx1T0FBMlAsTUFBTSxRQUFPO0FBRTlRLHFCQUFPO0FBQUE7QUFBQTtBQUlYLGlCQUFPO0FBQUE7QUFHVCw4Q0FBc0MsVUFBVSxhQUFhO0FBQzNEO0FBQ0UsZ0JBQUssaUJBQWdCLGNBQWMsZ0JBQWdCLGdCQUFnQixhQUFhLFVBQWEsYUFBYSxRQUFRLGFBQWEsT0FBTztBQUNwSSxrQkFBSSxRQUFRLFdBQVc7QUFDckIseUJBQVMsSUFBSSxHQUFHLElBQUksU0FBUyxRQUFRLEtBQUs7QUFDeEMsc0JBQUksQ0FBQyxnQ0FBZ0MsU0FBUyxJQUFJLElBQUk7QUFDcEQ7QUFBQTtBQUFBO0FBQUEscUJBR0M7QUFDTCxvQkFBSSxhQUFhLGNBQWM7QUFFL0Isb0JBQUksT0FBTyxlQUFlLFlBQVk7QUFDcEMsc0JBQUksbUJBQW1CLFdBQVcsS0FBSztBQUV2QyxzQkFBSSxrQkFBa0I7QUFDcEIsd0JBQUksT0FBTyxpQkFBaUI7QUFDNUIsd0JBQUksS0FBSztBQUVULDJCQUFPLENBQUMsS0FBSyxNQUFNLE9BQU8saUJBQWlCLFFBQVE7QUFDakQsMEJBQUksQ0FBQyxnQ0FBZ0MsS0FBSyxPQUFPLEtBQUs7QUFDcEQ7QUFBQTtBQUdGO0FBQUE7QUFBQTtBQUFBLHVCQUdDO0FBQ0wsd0JBQU0sd0tBQWtMO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9sTSw2Q0FBcUMsaUJBQWdCLGFBQWEsTUFBTSxnQkFBZ0IsVUFBVTtBQUNoRyxjQUFJLGNBQWMsZ0JBQWU7QUFFakMsY0FBSSxnQkFBZ0IsTUFBTTtBQUN4Qiw0QkFBZSxnQkFBZ0I7QUFBQSxjQUM3QjtBQUFBLGNBQ0EsV0FBVztBQUFBLGNBQ1gsb0JBQW9CO0FBQUEsY0FDcEIsTUFBTTtBQUFBLGNBQ047QUFBQSxjQUNBO0FBQUE7QUFBQSxpQkFFRztBQUVMLHdCQUFZLGNBQWM7QUFDMUIsd0JBQVksWUFBWTtBQUN4Qix3QkFBWSxxQkFBcUI7QUFDakMsd0JBQVksT0FBTztBQUNuQix3QkFBWSxPQUFPO0FBQ25CLHdCQUFZLFdBQVc7QUFBQTtBQUFBO0FBVzNCLDZDQUFxQyxVQUFTLGlCQUFnQixjQUFhO0FBQ3pFLGNBQUksWUFBWSxnQkFBZTtBQUMvQixjQUFJLGNBQWMsVUFBVTtBQUM1QixjQUFJLFdBQVcsVUFBVTtBQUN6QixjQUFJLGNBQWMsVUFBVTtBQUM1Qiw4QkFBb0I7QUFDcEIsOEJBQW9CLFVBQVU7QUFDOUIsdUNBQTZCLGFBQWE7QUFDMUMsNEJBQWtCLFVBQVMsaUJBQWdCLGFBQWE7QUFDeEQsY0FBSSxrQkFBa0Isb0JBQW9CO0FBQzFDLGNBQUksc0JBQXNCLG1CQUFtQixpQkFBaUI7QUFFOUQsY0FBSSxxQkFBcUI7QUFDdkIsOEJBQWtCLDBCQUEwQixpQkFBaUI7QUFDN0QsNEJBQWUsU0FBUztBQUFBLGlCQUNuQjtBQUNMLGdCQUFJLG1CQUFtQixhQUFZLFFBQVMsVUFBUSxRQUFRLGdCQUFnQjtBQUU1RSxnQkFBSSxrQkFBa0I7QUFJcEIsNkNBQStCLGlCQUFnQixnQkFBZSxPQUFPO0FBQUE7QUFHdkUsOEJBQWtCLGlDQUFpQztBQUFBO0FBR3JELDhCQUFvQixpQkFBZ0I7QUFFcEMsY0FBSyxpQkFBZSxPQUFPLG9CQUFvQixRQUFRO0FBR3JELDRCQUFlLGdCQUFnQjtBQUFBLGlCQUMxQjtBQUNMLG9CQUFRO0FBQUEsbUJBQ0QsWUFDSDtBQUNFLG9CQUFJLGlCQUFpQixtQkFBbUIsZ0JBQWU7QUFDdkQsb0JBQUk7QUFFSixvQkFBSSxtQkFBbUIsTUFBTTtBQUczQix5QkFBTyxnQkFBZTtBQUN0QixrQ0FBZSxRQUFRO0FBQUEsdUJBQ2xCO0FBR0wseUJBQU8sZUFBZTtBQUN0QixpQ0FBZSxVQUFVO0FBQUE7QUFHM0IsNENBQTRCLGlCQUFnQixPQUM1QyxNQUFNLGdCQUFnQjtBQUN0QjtBQUFBO0FBQUEsbUJBR0MsYUFDSDtBQUtFLG9CQUFJLFFBQVE7QUFDWixvQkFBSSxNQUFNLGdCQUFlO0FBQ3pCLGdDQUFlLFFBQVE7QUFFdkIsdUJBQU8sUUFBUSxNQUFNO0FBQ25CLHNCQUFJLGFBQWEsSUFBSTtBQUVyQixzQkFBSSxlQUFlLFFBQVEsbUJBQW1CLGdCQUFnQixNQUFNO0FBRWxFLG9DQUFlLFFBQVE7QUFDdkI7QUFBQTtBQUdGLHNCQUFJLFVBQVUsSUFBSTtBQUNsQixzQkFBSSxVQUFVO0FBQ2QsMEJBQVE7QUFDUix3QkFBTTtBQUFBO0FBSVIsNENBQTRCLGlCQUFnQixNQUM1QyxPQUFPLE1BQ1A7QUFDQTtBQUFBO0FBQUEsbUJBR0MsWUFDSDtBQUNFLDRDQUE0QixpQkFBZ0IsT0FDNUMsTUFDQSxNQUNBO0FBQ0E7QUFBQTtBQUFBLHVCQUlGO0FBR0UsZ0NBQWUsZ0JBQWdCO0FBQUE7QUFBQTtBQUFBO0FBS3ZDLGlCQUFPLGdCQUFlO0FBQUE7QUFHeEIsdUNBQStCLFVBQVMsaUJBQWdCLGNBQWE7QUFDbkUsNEJBQWtCLGlCQUFnQixnQkFBZSxVQUFVO0FBQzNELGNBQUksZUFBZSxnQkFBZTtBQUVsQyxjQUFJLGFBQVksTUFBTTtBQU1wQiw0QkFBZSxRQUFRLHFCQUFxQixpQkFBZ0IsTUFBTSxjQUFjO0FBQUEsaUJBQzNFO0FBQ0wsOEJBQWtCLFVBQVMsaUJBQWdCLGNBQWM7QUFBQTtBQUczRCxpQkFBTyxnQkFBZTtBQUFBO0FBR3hCLFlBQUksa0RBQWtEO0FBRXRELHVDQUErQixVQUFTLGlCQUFnQixjQUFhO0FBQ25FLGNBQUksZUFBZSxnQkFBZTtBQUNsQyxjQUFJLFVBQVUsYUFBYTtBQUMzQixjQUFJLFdBQVcsZ0JBQWU7QUFDOUIsY0FBSSxXQUFXLGdCQUFlO0FBQzlCLGNBQUksV0FBVyxTQUFTO0FBRXhCO0FBQ0UsZ0JBQUksQ0FBRSxZQUFXLFdBQVc7QUFDMUIsa0JBQUksQ0FBQyxpREFBaUQ7QUFDcEQsa0VBQWtEO0FBRWxELHNCQUFNO0FBQUE7QUFBQTtBQUlWLGdCQUFJLG9CQUFvQixnQkFBZSxLQUFLO0FBRTVDLGdCQUFJLG1CQUFtQjtBQUNyQiw2QkFBZSxtQkFBbUIsVUFBVSxRQUFRO0FBQUE7QUFBQTtBQUl4RCx1QkFBYSxpQkFBZ0IsU0FBUztBQUV0QztBQUNFLGdCQUFJLGFBQWEsTUFBTTtBQUNyQixrQkFBSSxXQUFXLFNBQVM7QUFFeEIsa0JBQUksU0FBUyxVQUFVLFdBQVc7QUFFaEMsb0JBQUksU0FBUyxhQUFhLFNBQVMsWUFBWSxDQUFDLHFCQUFxQjtBQUNuRSx5QkFBTyw2QkFBNkIsVUFBUyxpQkFBZ0I7QUFBQTtBQUFBLHFCQUUxRDtBQUdMLHVDQUF1QixpQkFBZ0IsU0FBUztBQUFBO0FBQUE7QUFBQTtBQUt0RCxjQUFJLGNBQWMsU0FBUztBQUMzQiw0QkFBa0IsVUFBUyxpQkFBZ0IsYUFBYTtBQUN4RCxpQkFBTyxnQkFBZTtBQUFBO0FBR3hCLFlBQUksdUNBQXVDO0FBRTNDLHVDQUErQixVQUFTLGlCQUFnQixjQUFhO0FBQ25FLGNBQUksVUFBVSxnQkFBZTtBQVE3QjtBQUNFLGdCQUFJLFFBQVEsYUFBYSxRQUFXO0FBSWxDLGtCQUFJLFlBQVksUUFBUSxVQUFVO0FBQ2hDLG9CQUFJLENBQUMsc0NBQXNDO0FBQ3pDLHlEQUF1QztBQUV2Qyx3QkFBTTtBQUFBO0FBQUE7QUFBQSxtQkFHTDtBQUNMLHdCQUFVLFFBQVE7QUFBQTtBQUFBO0FBSXRCLGNBQUksV0FBVyxnQkFBZTtBQUM5QixjQUFJLFVBQVMsU0FBUztBQUV0QjtBQUNFLGdCQUFJLE9BQU8sWUFBVyxZQUFZO0FBQ2hDLG9CQUFNO0FBQUE7QUFBQTtBQUlWLCtCQUFxQixpQkFBZ0I7QUFDckMsY0FBSSxXQUFXLFlBQVk7QUFFM0I7QUFDRSx1Q0FBMkI7QUFBQTtBQUc3QixjQUFJO0FBRUo7QUFDRSxnQ0FBb0IsVUFBVTtBQUM5QiwyQkFBZTtBQUNmLDBCQUFjLFFBQU87QUFDckIsMkJBQWU7QUFBQTtBQUdqQjtBQUNFO0FBQUE7QUFJRiwwQkFBZSxTQUFTO0FBQ3hCLDRCQUFrQixVQUFTLGlCQUFnQixhQUFhO0FBQ3hELGlCQUFPLGdCQUFlO0FBQUE7QUFHeEIsb0RBQTRDO0FBQzFDLDZCQUFtQjtBQUFBO0FBR3JCLDhDQUFzQyxVQUFTLGlCQUFnQixjQUFhO0FBQzFFLGNBQUksYUFBWSxNQUFNO0FBRXBCLDRCQUFlLGVBQWUsU0FBUTtBQUFBO0FBR3hDO0FBRUU7QUFBQTtBQUdGLGlDQUF1QixnQkFBZTtBQUV0QyxjQUFJLENBQUMsaUJBQWlCLGNBQWEsZ0JBQWUsYUFBYTtBQUk3RDtBQUNFLHFCQUFPO0FBQUE7QUFBQTtBQU1YLDJCQUFpQixVQUFTO0FBQzFCLGlCQUFPLGdCQUFlO0FBQUE7QUFHeEIsOEJBQXNCLFVBQVMsbUJBQW1CLG1CQUFtQjtBQUNuRTtBQUNFLGdCQUFJLGNBQWMsa0JBQWtCO0FBRXBDLGdCQUFJLGdCQUFnQixNQUFNO0FBRXhCLG9CQUFNLElBQUksTUFBTTtBQUFBO0FBS2xCLHFCQUFRLFlBQVk7QUFDcEIsOEJBQWtCLFlBQVk7QUFFOUIsOEJBQWtCLFFBQVEsa0JBQWtCO0FBQzVDLDhCQUFrQixVQUFVLGtCQUFrQjtBQUM5Qyw4QkFBa0IsU0FBUyxrQkFBa0I7QUFDN0MsOEJBQWtCLE1BQU0sa0JBQWtCO0FBRTFDLGdCQUFJLHNCQUFzQixZQUFZLE9BQU87QUFDM0MsMEJBQVksUUFBUTtBQUFBLG1CQUNmO0FBQ0wsa0JBQUksY0FBYyxZQUFZO0FBRTlCLGtCQUFJLGdCQUFnQixNQUFNO0FBRXhCLHNCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLHFCQUFPLFlBQVksWUFBWSxtQkFBbUI7QUFDaEQsOEJBQWMsWUFBWTtBQUUxQixvQkFBSSxnQkFBZ0IsTUFBTTtBQUV4Qix3QkFBTSxJQUFJLE1BQU07QUFBQTtBQUFBO0FBSXBCLDBCQUFZLFVBQVU7QUFBQTtBQUt4QixnQkFBSSxZQUFZLFlBQVk7QUFFNUIsZ0JBQUksY0FBYyxNQUFNO0FBQ3RCLDBCQUFZLFlBQVksQ0FBQztBQUN6QiwwQkFBWSxTQUFTO0FBQUEsbUJBQ2hCO0FBQ0wsd0JBQVUsS0FBSztBQUFBO0FBR2pCLDhCQUFrQixTQUFTO0FBRTNCLG1CQUFPO0FBQUE7QUFBQTtBQUlYLCtDQUF1QyxVQUFTLGNBQWE7QUFHM0QsY0FBSSxjQUFjLFNBQVE7QUFFMUIsY0FBSSxpQkFBaUIsYUFBYSxlQUFjO0FBQzlDLG1CQUFPO0FBQUE7QUFHVCxpQkFBTztBQUFBO0FBR1Qsd0RBQWdELFVBQVMsaUJBQWdCLGNBQWE7QUFJcEYsa0JBQVEsZ0JBQWU7QUFBQSxpQkFDaEI7QUFDSCxrQ0FBb0I7QUFDcEIsa0JBQUksUUFBTyxnQkFBZTtBQUUxQjtBQUNBO0FBQUEsaUJBRUc7QUFDSCw4QkFBZ0I7QUFDaEI7QUFBQSxpQkFFRyxnQkFDSDtBQUNFLGtCQUFJLFlBQVksZ0JBQWU7QUFFL0Isa0JBQUksa0JBQWtCLFlBQVk7QUFDaEMsb0NBQW9CO0FBQUE7QUFHdEI7QUFBQTtBQUFBLGlCQUdDO0FBQ0gsZ0NBQWtCLGlCQUFnQixnQkFBZSxVQUFVO0FBQzNEO0FBQUEsaUJBRUcsaUJBQ0g7QUFDRSxrQkFBSSxXQUFXLGdCQUFlLGNBQWM7QUFDNUMsa0JBQUksVUFBVSxnQkFBZSxLQUFLO0FBQ2xDLDJCQUFhLGlCQUFnQixTQUFTO0FBQ3RDO0FBQUE7QUFBQSxpQkFHQztBQUNIO0FBRUUsb0JBQUksZUFBZSxpQkFBaUIsY0FBYSxnQkFBZTtBQUVoRSxvQkFBSSxjQUFjO0FBQ2hCLGtDQUFlLFNBQVM7QUFBQTtBQUcxQjtBQUdFLHNCQUFJLFlBQVksZ0JBQWU7QUFDL0IsNEJBQVUsaUJBQWlCO0FBQzNCLDRCQUFVLHdCQUF3QjtBQUFBO0FBQUE7QUFJdEM7QUFBQSxpQkFFRyxtQkFDSDtBQUNFLGtCQUFJLFFBQVEsZ0JBQWU7QUFFM0Isa0JBQUksVUFBVSxNQUFNO0FBQ2xCO0FBQ0Usc0JBQUksTUFBTSxlQUFlLE1BQU07QUFDN0Isd0NBQW9CLGlCQUFnQixpQ0FBaUMsb0JBQW9CO0FBSXpGLG9DQUFlLFNBQVM7QUFHeEIsMkJBQU87QUFBQTtBQUFBO0FBUVgsb0JBQUksdUJBQXVCLGdCQUFlO0FBQzFDLG9CQUFJLG9CQUFvQixxQkFBcUI7QUFFN0Msb0JBQUksaUJBQWlCLGNBQWEsb0JBQW9CO0FBR3BELHlCQUFPLHdCQUF3QixVQUFTLGlCQUFnQjtBQUFBLHVCQUNuRDtBQUdMLHNDQUFvQixpQkFBZ0IsaUNBQWlDLG9CQUFvQjtBQUd6RixzQkFBSSxRQUFRLDZCQUE2QixVQUFTLGlCQUFnQjtBQUVsRSxzQkFBSSxVQUFVLE1BQU07QUFHbEIsMkJBQU8sTUFBTTtBQUFBLHlCQUNSO0FBSUwsMkJBQU87QUFBQTtBQUFBO0FBQUEscUJBR047QUFDTCxvQ0FBb0IsaUJBQWdCLGlDQUFpQyxvQkFBb0I7QUFBQTtBQUczRjtBQUFBO0FBQUEsaUJBR0MsdUJBQ0g7QUFDRSxrQkFBSSxtQkFBb0IsVUFBUSxRQUFRLGdCQUFnQjtBQUV4RCxrQkFBSSxnQkFBZ0IsaUJBQWlCLGNBQWEsZ0JBQWU7QUFFakUsa0JBQUksa0JBQWtCO0FBQ3BCLG9CQUFJLGVBQWU7QUFNakIseUJBQU8sNEJBQTRCLFVBQVMsaUJBQWdCO0FBQUE7QUFNOUQsZ0NBQWUsU0FBUztBQUFBO0FBTTFCLGtCQUFJLGNBQWMsZ0JBQWU7QUFFakMsa0JBQUksZ0JBQWdCLE1BQU07QUFHeEIsNEJBQVksWUFBWTtBQUN4Qiw0QkFBWSxPQUFPO0FBQ25CLDRCQUFZLGFBQWE7QUFBQTtBQUczQixrQ0FBb0IsaUJBQWdCLG9CQUFvQjtBQUV4RCxrQkFBSSxlQUFlO0FBQ2pCO0FBQUEscUJBQ0s7QUFJTCx1QkFBTztBQUFBO0FBQUE7QUFBQSxpQkFJUjtBQUFBLGlCQUNBLHVCQUNIO0FBU0UsOEJBQWUsUUFBUTtBQUN2QixxQkFBTyx5QkFBeUIsVUFBUyxpQkFBZ0I7QUFBQTtBQUFBO0FBSS9ELGlCQUFPLDZCQUE2QixVQUFTLGlCQUFnQjtBQUFBO0FBRy9ELDJCQUFtQixVQUFTLGlCQUFnQixjQUFhO0FBQ3ZEO0FBQ0UsZ0JBQUksZ0JBQWUsc0JBQXNCLGFBQVksTUFBTTtBQUV6RCxxQkFBTyxhQUFhLFVBQVMsaUJBQWdCLDRCQUE0QixnQkFBZSxNQUFNLGdCQUFlLEtBQUssZ0JBQWUsY0FBYyxnQkFBZSxlQUFlLE1BQU0sZ0JBQWUsTUFBTSxnQkFBZTtBQUFBO0FBQUE7QUFJM04sY0FBSSxhQUFZLE1BQU07QUFDcEIsZ0JBQUksV0FBVyxTQUFRO0FBQ3ZCLGdCQUFJLFdBQVcsZ0JBQWU7QUFFOUIsZ0JBQUksYUFBYSxZQUFZLHVCQUM1QixnQkFBZSxTQUFTLFNBQVEsTUFBUTtBQUd2QyxpQ0FBbUI7QUFBQSxtQkFDZDtBQUdMLGtCQUFJLDhCQUE4Qiw4QkFBOEIsVUFBUztBQUV6RSxrQkFBSSxDQUFDLCtCQUVKLGlCQUFlLFFBQVEsZ0JBQWdCLFNBQVM7QUFFL0MsbUNBQW1CO0FBQ25CLHVCQUFPLHVDQUF1QyxVQUFTLGlCQUFnQjtBQUFBO0FBR3pFLGtCQUFLLFVBQVEsUUFBUSxrQ0FBa0MsU0FBUztBQUc5RCxtQ0FBbUI7QUFBQSxxQkFDZDtBQUtMLG1DQUFtQjtBQUFBO0FBQUE7QUFBQSxpQkFHbEI7QUFDTCwrQkFBbUI7QUFFbkIsZ0JBQUksb0JBQW9CLGNBQWMsa0JBQWlCO0FBVXJELGtCQUFJLFlBQVksZ0JBQWU7QUFDL0Isa0JBQUksZ0JBQWdCO0FBQ3BCLHlCQUFXLGlCQUFnQixlQUFlO0FBQUE7QUFBQTtBQVM5QywwQkFBZSxRQUFRO0FBRXZCLGtCQUFRLGdCQUFlO0FBQUEsaUJBQ2hCLHdCQUNIO0FBQ0UscUJBQU8sNEJBQTRCLFVBQVMsaUJBQWdCLGdCQUFlLE1BQU07QUFBQTtBQUFBLGlCQUdoRixlQUNIO0FBQ0Usa0JBQUksY0FBYyxnQkFBZTtBQUNqQyxxQkFBTyxtQkFBbUIsVUFBUyxpQkFBZ0IsYUFBYTtBQUFBO0FBQUEsaUJBRy9ELG1CQUNIO0FBQ0Usa0JBQUksWUFBWSxnQkFBZTtBQUMvQixrQkFBSSxrQkFBa0IsZ0JBQWU7QUFDckMsa0JBQUksZ0JBQWdCLGdCQUFlLGdCQUFnQixZQUFZLGtCQUFrQixvQkFBb0IsV0FBVztBQUNoSCxxQkFBTyx3QkFBd0IsVUFBUyxpQkFBZ0IsV0FBVyxlQUFlO0FBQUE7QUFBQSxpQkFHakYsZ0JBQ0g7QUFDRSxrQkFBSSxhQUFhLGdCQUFlO0FBQ2hDLGtCQUFJLG1CQUFtQixnQkFBZTtBQUV0QyxrQkFBSSxpQkFBaUIsZ0JBQWUsZ0JBQWdCLGFBQWEsbUJBQW1CLG9CQUFvQixZQUFZO0FBRXBILHFCQUFPLHFCQUFxQixVQUFTLGlCQUFnQixZQUFZLGdCQUFnQjtBQUFBO0FBQUEsaUJBR2hGO0FBQ0gscUJBQU8sZUFBZSxVQUFTLGlCQUFnQjtBQUFBLGlCQUU1QztBQUNILHFCQUFPLHNCQUFzQixVQUFTLGlCQUFnQjtBQUFBLGlCQUVuRDtBQUNILHFCQUFPLGlCQUFpQixVQUFTO0FBQUEsaUJBRTlCO0FBQ0gscUJBQU8sd0JBQXdCLFVBQVMsaUJBQWdCO0FBQUEsaUJBRXJEO0FBQ0gscUJBQU8sc0JBQXNCLFVBQVMsaUJBQWdCO0FBQUEsaUJBRW5ELFlBQ0g7QUFDRSxrQkFBSSxPQUFPLGdCQUFlO0FBQzFCLGtCQUFJLG9CQUFvQixnQkFBZTtBQUV2QyxrQkFBSSxrQkFBa0IsZ0JBQWUsZ0JBQWdCLE9BQU8sb0JBQW9CLG9CQUFvQixNQUFNO0FBRTFHLHFCQUFPLGlCQUFpQixVQUFTLGlCQUFnQixNQUFNLGlCQUFpQjtBQUFBO0FBQUEsaUJBR3ZFO0FBQ0gscUJBQU8sZUFBZSxVQUFTLGlCQUFnQjtBQUFBLGlCQUU1QztBQUNILHFCQUFPLFdBQVcsVUFBUyxpQkFBZ0I7QUFBQSxpQkFFeEM7QUFDSCxxQkFBTyxlQUFlLFVBQVMsaUJBQWdCO0FBQUEsaUJBRTVDO0FBQ0gscUJBQU8sc0JBQXNCLFVBQVMsaUJBQWdCO0FBQUEsaUJBRW5EO0FBQ0gscUJBQU8sc0JBQXNCLFVBQVMsaUJBQWdCO0FBQUEsaUJBRW5ELGVBQ0g7QUFDRSxrQkFBSSxTQUFTLGdCQUFlO0FBQzVCLGtCQUFJLG9CQUFvQixnQkFBZTtBQUV2QyxrQkFBSSxrQkFBa0Isb0JBQW9CLFFBQVE7QUFFbEQ7QUFDRSxvQkFBSSxnQkFBZSxTQUFTLGdCQUFlLGFBQWE7QUFDdEQsc0JBQUksaUJBQWlCLE9BQU87QUFFNUIsc0JBQUksZ0JBQWdCO0FBQ2xCLG1DQUFlLGdCQUFnQixpQkFDL0IsUUFBUSx5QkFBeUI7QUFBQTtBQUFBO0FBQUE7QUFLdkMsZ0NBQWtCLG9CQUFvQixPQUFPLE1BQU07QUFDbkQscUJBQU8sb0JBQW9CLFVBQVMsaUJBQWdCLFFBQVEsaUJBQWlCO0FBQUE7QUFBQSxpQkFHNUUscUJBQ0g7QUFDRSxxQkFBTywwQkFBMEIsVUFBUyxpQkFBZ0IsZ0JBQWUsTUFBTSxnQkFBZSxjQUFjO0FBQUE7QUFBQSxpQkFHM0csMEJBQ0g7QUFDRSxrQkFBSSxjQUFjLGdCQUFlO0FBQ2pDLGtCQUFJLG9CQUFvQixnQkFBZTtBQUV2QyxrQkFBSSxrQkFBa0IsZ0JBQWUsZ0JBQWdCLGNBQWMsb0JBQW9CLG9CQUFvQixhQUFhO0FBRXhILHFCQUFPLDhCQUE4QixVQUFTLGlCQUFnQixhQUFhLGlCQUFpQjtBQUFBO0FBQUEsaUJBRzNGLHVCQUNIO0FBQ0UscUJBQU8sNEJBQTRCLFVBQVMsaUJBQWdCO0FBQUE7QUFBQSxpQkFHM0QsZ0JBQ0g7QUFFRTtBQUFBO0FBQUEsaUJBR0Msb0JBQ0g7QUFDRSxxQkFBTyx5QkFBeUIsVUFBUyxpQkFBZ0I7QUFBQTtBQUFBO0FBSS9ELGdCQUFNLElBQUksTUFBTSwrQkFBK0IsZ0JBQWUsTUFBTTtBQUFBO0FBR3RFLDRCQUFvQixVQUFTLGlCQUFnQixjQUFhO0FBS3hELHlCQUFlO0FBRWYsa0JBQVEsZ0JBQWU7QUFBQSxpQkFDaEIsZ0JBQ0g7QUFDRSxrQkFBSSxZQUFZLGdCQUFlO0FBRS9CLGtCQUFJLGtCQUFrQixZQUFZO0FBQ2hDLDJCQUFXO0FBQUE7QUFHYixrQkFBSSxRQUFRLGdCQUFlO0FBRTNCLGtCQUFJLFFBQVEsZUFBZTtBQUN6QixnQ0FBZSxRQUFRLFFBQVEsQ0FBQyxnQkFBZ0I7QUFFaEQsb0JBQU0saUJBQWUsT0FBTyxpQkFBaUIsUUFBUTtBQUNuRCx5Q0FBdUI7QUFBQTtBQUd6Qix1QkFBTztBQUFBO0FBR1QscUJBQU87QUFBQTtBQUFBLGlCQUdOLFVBQ0g7QUFFRSwrQkFBaUI7QUFDakIsdUNBQXlCO0FBQ3pCO0FBQ0Esa0JBQUksU0FBUyxnQkFBZTtBQUU1QixrQkFBSyxVQUFTLG1CQUFtQixXQUFZLFVBQVMsZ0JBQWdCLFNBQVM7QUFHN0UsZ0NBQWUsUUFBUSxTQUFTLENBQUMsZ0JBQWdCO0FBQ2pELHVCQUFPO0FBQUE7QUFJVCxxQkFBTztBQUFBO0FBQUEsaUJBR04sZUFDSDtBQUVFLDZCQUFlO0FBQ2YscUJBQU87QUFBQTtBQUFBLGlCQUdOLG1CQUNIO0FBQ0UsaUNBQW1CO0FBRW5CO0FBQ0Usb0JBQUksZ0JBQWdCLGdCQUFlO0FBRW5DLG9CQUFJLGtCQUFrQixRQUFRLGNBQWMsZUFBZSxNQUFNO0FBQy9ELHNCQUFJLGdCQUFlLGNBQWMsTUFBTTtBQUNyQywwQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQjtBQUFBO0FBQUE7QUFJSixrQkFBSSxVQUFVLGdCQUFlO0FBRTdCLGtCQUFJLFVBQVUsZUFBZTtBQUMzQixnQ0FBZSxRQUFRLFVBQVUsQ0FBQyxnQkFBZ0I7QUFFbEQsb0JBQU0saUJBQWUsT0FBTyxpQkFBaUIsUUFBUTtBQUNuRCx5Q0FBdUI7QUFBQTtBQUd6Qix1QkFBTztBQUFBO0FBR1QscUJBQU87QUFBQTtBQUFBLGlCQUdOLHVCQUNIO0FBQ0UsaUNBQW1CO0FBR25CLHFCQUFPO0FBQUE7QUFBQSxpQkFHTjtBQUNILCtCQUFpQjtBQUNqQixxQkFBTztBQUFBLGlCQUVKO0FBQ0gsa0JBQUksVUFBVSxnQkFBZSxLQUFLO0FBQ2xDLDBCQUFZLFNBQVM7QUFDckIscUJBQU87QUFBQSxpQkFFSjtBQUFBLGlCQUNBO0FBQ0gsNkJBQWU7QUFFZixxQkFBTztBQUFBLGlCQUVKO0FBRUgscUJBQU87QUFBQTtBQUdQLHFCQUFPO0FBQUE7QUFBQTtBQUliLHVDQUErQixVQUFTLGlCQUFpQixjQUFhO0FBS3BFLHlCQUFlO0FBRWYsa0JBQVEsZ0JBQWdCO0FBQUEsaUJBQ2pCLGdCQUNIO0FBQ0Usa0JBQUksb0JBQW9CLGdCQUFnQixLQUFLO0FBRTdDLGtCQUFJLHNCQUFzQixRQUFRLHNCQUFzQixRQUFXO0FBQ2pFLDJCQUFXO0FBQUE7QUFHYjtBQUFBO0FBQUEsaUJBR0MsVUFDSDtBQUVFLCtCQUFpQjtBQUNqQix1Q0FBeUI7QUFDekI7QUFDQTtBQUFBO0FBQUEsaUJBR0MsZUFDSDtBQUNFLDZCQUFlO0FBQ2Y7QUFBQTtBQUFBLGlCQUdDO0FBQ0gsK0JBQWlCO0FBQ2pCO0FBQUEsaUJBRUc7QUFDSCxpQ0FBbUI7QUFDbkI7QUFBQSxpQkFFRztBQUNILGlDQUFtQjtBQUNuQjtBQUFBLGlCQUVHO0FBQ0gsa0JBQUksVUFBVSxnQkFBZ0IsS0FBSztBQUNuQywwQkFBWSxTQUFTO0FBQ3JCO0FBQUEsaUJBRUc7QUFBQSxpQkFDQTtBQUNILDZCQUFlO0FBRWY7QUFBQTtBQUFBO0FBSU4sWUFBSSw0Q0FBNEM7QUFFaEQ7QUFDRSxzREFBNEMsSUFBSTtBQUFBO0FBTWxELFlBQUksMkJBQTJCO0FBQy9CLFlBQUksNEJBQTRCO0FBQ2hDLFlBQUksa0JBQWtCLE9BQU8sWUFBWSxhQUFhLFVBQVU7QUFDaEUsWUFBSSxhQUFhO0FBRWpCLFlBQUksa0JBQWtCO0FBQ3RCLFlBQUksaUJBQWlCO0FBRXJCLDBDQUFrQyxRQUFPO0FBTXZDO0FBQ0Usa0NBQXNCLE1BQU0sV0FBWTtBQUN0QyxvQkFBTTtBQUFBO0FBRVI7QUFBQTtBQUFBO0FBSUosWUFBSSxvQ0FBb0MsU0FBVSxVQUFTLFVBQVU7QUFDbkUsbUJBQVMsUUFBUSxTQUFRO0FBQ3pCLG1CQUFTLFFBQVEsU0FBUTtBQUV6QixjQUFLLFNBQVEsT0FBTyxhQUFhO0FBQy9CLGdCQUFJO0FBQ0Y7QUFDQSx1QkFBUztBQUFBLHNCQUNUO0FBQ0EseUNBQTJCO0FBQUE7QUFBQSxpQkFFeEI7QUFDTCxxQkFBUztBQUFBO0FBQUE7QUFLYiwyREFBbUQsVUFBUyx3QkFBd0I7QUFDbEYsY0FBSTtBQUNGLHNDQUEwQixRQUFRO0FBQUEsbUJBQzNCLFFBQVA7QUFDQSxxQ0FBeUI7QUFDekIsb0NBQXdCLFVBQVMsd0JBQXdCO0FBQUE7QUFBQTtBQUs3RCxnREFBd0MsVUFBUyx3QkFBd0IsVUFBVTtBQUNqRixjQUFJO0FBQ0YsOENBQWtDLFVBQVM7QUFBQSxtQkFDcEMsUUFBUDtBQUNBLHFDQUF5QjtBQUN6QixvQ0FBd0IsVUFBUyx3QkFBd0I7QUFBQTtBQUFBO0FBSzdELDZDQUFxQyxVQUFTLHdCQUF3QixVQUFVO0FBQzlFLGNBQUk7QUFDRixxQkFBUztBQUFBLG1CQUNGLFFBQVA7QUFDQSxxQ0FBeUI7QUFDekIsb0NBQXdCLFVBQVMsd0JBQXdCO0FBQUE7QUFBQTtBQUs3RCxpQ0FBeUIsVUFBUyx3QkFBd0I7QUFDeEQsY0FBSTtBQUNGLDRCQUFnQjtBQUFBLG1CQUNULFFBQVA7QUFDQSxxQ0FBeUI7QUFDekIsb0NBQXdCLFVBQVMsd0JBQXdCO0FBQUE7QUFBQTtBQUk3RCxpQ0FBeUIsVUFBUyx3QkFBd0I7QUFDeEQsY0FBSSxNQUFNLFNBQVE7QUFFbEIsY0FBSSxRQUFRLE1BQU07QUFDaEIsZ0JBQUksT0FBTyxRQUFRLFlBQVk7QUFDN0Isa0JBQUk7QUFFSixrQkFBSTtBQUNGLG9CQUFJLHVCQUF1Qiw2QkFBNkIsU0FBUSxPQUFPLGFBQWE7QUFDbEYsc0JBQUk7QUFDRjtBQUNBLDZCQUFTLElBQUk7QUFBQSw0QkFDYjtBQUNBLCtDQUEyQjtBQUFBO0FBQUEsdUJBRXhCO0FBQ0wsMkJBQVMsSUFBSTtBQUFBO0FBQUEsdUJBRVIsUUFBUDtBQUNBLHlDQUF5QjtBQUN6Qix3Q0FBd0IsVUFBUyx3QkFBd0I7QUFBQTtBQUczRDtBQUNFLG9CQUFJLE9BQU8sV0FBVyxZQUFZO0FBQ2hDLHdCQUFNLG1HQUF3RywwQkFBMEI7QUFBQTtBQUFBO0FBQUEsbUJBR3ZJO0FBQ0wsa0JBQUksVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUtwQixtQ0FBMkIsVUFBUyx3QkFBd0IsU0FBUztBQUNuRSxjQUFJO0FBQ0Y7QUFBQSxtQkFDTyxRQUFQO0FBQ0EscUNBQXlCO0FBQ3pCLG9DQUF3QixVQUFTLHdCQUF3QjtBQUFBO0FBQUE7QUFJN0QsWUFBSSx3QkFBd0I7QUFDNUIsWUFBSSxvQ0FBb0M7QUFDeEMsNkNBQXFDLE9BQU0sWUFBWTtBQUNyRCxrQ0FBd0IsaUJBQWlCLE1BQUs7QUFDOUMsdUJBQWE7QUFDYjtBQUVBLGNBQUksYUFBYTtBQUNqQiw4Q0FBb0M7QUFDcEMsa0NBQXdCO0FBQ3hCLGlCQUFPO0FBQUE7QUFHVCxxREFBNkM7QUFDM0MsaUJBQU8sZUFBZSxNQUFNO0FBQzFCLGdCQUFJLFFBQVE7QUFFWixnQkFBSSxRQUFRLE1BQU07QUFFbEIsZ0JBQUssT0FBTSxlQUFlLHdCQUF3QixXQUFXLFVBQVUsTUFBTTtBQUMzRSx5Q0FBMkIsT0FBTztBQUNsQywyQkFBYTtBQUFBLG1CQUNSO0FBQ0w7QUFBQTtBQUFBO0FBQUE7QUFLTix3REFBZ0Q7QUFDOUMsaUJBQU8sZUFBZSxNQUFNO0FBQzFCLGdCQUFJLFFBQVE7QUFDWiw0QkFBZ0I7QUFFaEIsZ0JBQUk7QUFDRixpREFBbUM7QUFBQSxxQkFDNUIsUUFBUDtBQUNBLHVDQUF5QjtBQUN6QixzQ0FBd0IsT0FBTyxNQUFNLFFBQVE7QUFBQTtBQUcvQztBQUNBLGdCQUFJLFVBQVUsTUFBTTtBQUVwQixnQkFBSSxZQUFZLE1BQU07QUFDcEIseUNBQTJCLFNBQVMsTUFBTTtBQUMxQywyQkFBYTtBQUNiO0FBQUE7QUFHRix5QkFBYSxNQUFNO0FBQUE7QUFBQTtBQUl2QixvREFBNEMsY0FBYztBQUN4RCxjQUFJLFdBQVUsYUFBYTtBQUMzQixjQUFJLFFBQVEsYUFBYTtBQUV6QixjQUFLLFNBQVEsY0FBYyxTQUFTO0FBQ2xDLDRCQUFnQjtBQUVoQixvQkFBUSxhQUFhO0FBQUEsbUJBQ2Q7QUFBQSxtQkFDQTtBQUFBLG1CQUNBLHFCQUNIO0FBQ0U7QUFBQTtBQUFBLG1CQUdDLGdCQUNIO0FBQ0Usb0JBQUksYUFBWSxNQUFNO0FBQ3BCLHNCQUFJLFlBQVksU0FBUTtBQUN4QixzQkFBSSxZQUFZLFNBQVE7QUFDeEIsc0JBQUksV0FBVyxhQUFhO0FBSTVCO0FBQ0Usd0JBQUksYUFBYSxTQUFTLGFBQWEsZUFBZSxDQUFDLDhCQUE4QjtBQUNuRiwwQkFBSSxTQUFTLFVBQVUsYUFBYSxlQUFlO0FBQ2pELDhCQUFNLDBNQUE4TiwwQkFBMEIsaUJBQWlCO0FBQUE7QUFHalIsMEJBQUksU0FBUyxVQUFVLGFBQWEsZUFBZTtBQUNqRCw4QkFBTSwwTUFBOE4sMEJBQTBCLGlCQUFpQjtBQUFBO0FBQUE7QUFBQTtBQUtyUixzQkFBSSxXQUFXLFNBQVMsd0JBQXdCLGFBQWEsZ0JBQWdCLGFBQWEsT0FBTyxZQUFZLG9CQUFvQixhQUFhLE1BQU0sWUFBWTtBQUVoSztBQUNFLHdCQUFJLGFBQWE7QUFFakIsd0JBQUksYUFBYSxVQUFhLENBQUMsV0FBVyxJQUFJLGFBQWEsT0FBTztBQUNoRSxpQ0FBVyxJQUFJLGFBQWE7QUFFNUIsNEJBQU0sMkdBQWdILDBCQUEwQjtBQUFBO0FBQUE7QUFJcEosMkJBQVMsc0NBQXNDO0FBQUE7QUFHakQ7QUFBQTtBQUFBLG1CQUdDLFVBQ0g7QUFDRTtBQUNFLHNCQUFJLFFBQU8sYUFBYTtBQUN4QixpQ0FBZSxNQUFLO0FBQUE7QUFHdEI7QUFBQTtBQUFBLG1CQUdDO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBRUg7QUFBQSx1QkFHQTtBQUNFLHNCQUFNLElBQUksTUFBTTtBQUFBO0FBQUE7QUFJdEI7QUFBQTtBQUFBO0FBSUosNkNBQXFDLE9BQU8sY0FBYyx3QkFBd0I7QUFDaEYsY0FBSSxjQUFjLGFBQWE7QUFDL0IsY0FBSSxhQUFhLGdCQUFnQixPQUFPLFlBQVksYUFBYTtBQUVqRSxjQUFJLGVBQWUsTUFBTTtBQUN2QixnQkFBSSxjQUFjLFdBQVc7QUFDN0IsZ0JBQUksU0FBUztBQUViLGVBQUc7QUFDRCxrQkFBSyxRQUFPLE1BQU0sV0FBVyxPQUFPO0FBRWxDLG9CQUFJLFVBQVUsT0FBTztBQUNyQix1QkFBTyxVQUFVO0FBRWpCLG9CQUFJLFlBQVksUUFBVztBQUN6QjtBQUNFLHdCQUFLLFNBQVEsZUFBZSxXQUFXO0FBQ3JDLCtEQUF5QztBQUFBLCtCQUMvQixTQUFRLFlBQVksV0FBVztBQUN6Qyw4REFBd0M7QUFBQTtBQUFBO0FBSTVDLG9DQUFrQixjQUFjLHdCQUF3QjtBQUV4RDtBQUNFLHdCQUFLLFNBQVEsZUFBZSxXQUFXO0FBQ3JDO0FBQUEsK0JBQ1UsU0FBUSxZQUFZLFdBQVc7QUFDekM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1SLHVCQUFTLE9BQU87QUFBQSxxQkFDVCxXQUFXO0FBQUE7QUFBQTtBQUl4QiwyQ0FBbUMsT0FBTyxjQUFjO0FBQ3RELGNBQUksY0FBYyxhQUFhO0FBQy9CLGNBQUksYUFBYSxnQkFBZ0IsT0FBTyxZQUFZLGFBQWE7QUFFakUsY0FBSSxlQUFlLE1BQU07QUFDdkIsZ0JBQUksY0FBYyxXQUFXO0FBQzdCLGdCQUFJLFNBQVM7QUFFYixlQUFHO0FBQ0Qsa0JBQUssUUFBTyxNQUFNLFdBQVcsT0FBTztBQUNsQztBQUNFLHNCQUFLLFNBQVEsZUFBZSxXQUFXO0FBQ3JDLDJEQUF1QztBQUFBLDZCQUM3QixTQUFRLFlBQVksV0FBVztBQUN6QywwREFBc0M7QUFBQTtBQUFBO0FBSzFDLG9CQUFJLFNBQVMsT0FBTztBQUNwQix1QkFBTyxVQUFVO0FBRWpCO0FBQ0Usc0JBQUssU0FBUSxlQUFlLFdBQVc7QUFDckM7QUFBQSw2QkFDVSxTQUFRLFlBQVksV0FBVztBQUN6QztBQUFBO0FBQUE7QUFJSjtBQUNFLHNCQUFJLFVBQVUsT0FBTztBQUVyQixzQkFBSSxZQUFZLFVBQWEsT0FBTyxZQUFZLFlBQVk7QUFDMUQsd0JBQUksV0FBVztBQUVmLHdCQUFLLFFBQU8sTUFBTSxZQUFZLFNBQVM7QUFDckMsaUNBQVc7QUFBQSwrQkFDRCxRQUFPLE1BQU0sZUFBZSxTQUFTO0FBQy9DLGlDQUFXO0FBQUEsMkJBQ047QUFDTCxpQ0FBVztBQUFBO0FBR2Isd0JBQUksV0FBVztBQUVmLHdCQUFJLFlBQVksTUFBTTtBQUNwQixpQ0FBVztBQUFBLCtCQUNGLE9BQU8sUUFBUSxTQUFTLFlBQVk7QUFDN0MsaUNBQVcsaUNBQWlDLFdBQVcsK0hBQXlJLFdBQVc7QUFBQSwyQkFDdE07QUFDTCxpQ0FBVyxvQkFBb0I7QUFBQTtBQUdqQywwQkFBTSxpRkFBc0YsVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUs1Ryx1QkFBUyxPQUFPO0FBQUEscUJBQ1QsV0FBVztBQUFBO0FBQUE7QUFJeEIsOENBQXNDLGNBQWMsY0FBYztBQUNoRTtBQUVFLGdCQUFLLGNBQWEsUUFBUSxZQUFZLFNBQVM7QUFDN0Msc0JBQVEsYUFBYTtBQUFBLHFCQUNkLFVBQ0g7QUFDRSxzQkFBSSx3QkFBd0IsYUFBYSxVQUFVO0FBQ25ELHNCQUFJLHdCQUF3QixhQUFhLGVBQ3JDLEtBQUssc0JBQXNCLElBQzNCLGVBQWUsc0JBQXNCO0FBR3pDLHNCQUFJLGNBQWE7QUFDakIsc0JBQUksUUFBUSxhQUFhLGNBQWMsT0FBTyxVQUFVO0FBRXhEO0FBQ0Usd0JBQUkseUJBQXlCO0FBQzNCLDhCQUFRO0FBQUE7QUFBQTtBQUlaLHNCQUFJLE9BQU8saUJBQWlCLFlBQVk7QUFDdEMsaUNBQWEsSUFBSSxPQUFPLHVCQUF1QjtBQUFBO0FBS2pELHNCQUFJLGNBQWMsYUFBYTtBQUUvQjtBQUFPLDJCQUFPLGdCQUFnQixNQUFNO0FBQ2xDLDhCQUFRLFlBQVk7QUFBQSw2QkFDYjtBQUNILDhCQUFJLFFBQU8sWUFBWTtBQUN2QixnQ0FBSyx5QkFBeUI7QUFDOUI7QUFBQSw2QkFFRztBQUNILDhCQUFJLGtCQUFrQixZQUFZO0FBQ2xDLDBDQUFnQix5QkFBeUI7QUFDekM7QUFBQTtBQUdKLG9DQUFjLFlBQVk7QUFBQTtBQUc1QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPWiwyQ0FBbUMsY0FBYyxVQUFTLGNBQWMsZ0JBQWdCO0FBQ3RGLGNBQUssY0FBYSxRQUFRLGdCQUFnQixTQUFTO0FBQ2pELG9CQUFRLGFBQWE7QUFBQSxtQkFDZDtBQUFBLG1CQUNBO0FBQUEsbUJBQ0EscUJBQ0g7QUFDRSxvQkFBSyxDQUFDLDJCQUEyQjtBQUsvQixzQkFBSyxhQUFhLE9BQU8sYUFBYTtBQUNwQyx3QkFBSTtBQUNGO0FBQ0EsZ0RBQTBCLFNBQVMsV0FBVztBQUFBLDhCQUM5QztBQUNBLGlEQUEyQjtBQUFBO0FBQUEseUJBRXhCO0FBQ0wsOENBQTBCLFNBQVMsV0FBVztBQUFBO0FBQUE7QUFJbEQ7QUFBQTtBQUFBLG1CQUdDLGdCQUNIO0FBQ0Usb0JBQUksV0FBVyxhQUFhO0FBRTVCLG9CQUFJLGFBQWEsUUFBUSxRQUFRO0FBQy9CLHNCQUFJLENBQUMsMkJBQTJCO0FBQzlCLHdCQUFJLGFBQVksTUFBTTtBQUlwQjtBQUNFLDRCQUFJLGFBQWEsU0FBUyxhQUFhLGVBQWUsQ0FBQyw4QkFBOEI7QUFDbkYsOEJBQUksU0FBUyxVQUFVLGFBQWEsZUFBZTtBQUNqRCxrQ0FBTSxvTUFBd04sMEJBQTBCLGlCQUFpQjtBQUFBO0FBRzNRLDhCQUFJLFNBQVMsVUFBVSxhQUFhLGVBQWU7QUFDakQsa0NBQU0sb01BQXdOLDBCQUEwQixpQkFBaUI7QUFBQTtBQUFBO0FBQUE7QUFLL1EsMEJBQUssYUFBYSxPQUFPLGFBQWE7QUFDcEMsNEJBQUk7QUFDRjtBQUNBLG1DQUFTO0FBQUEsa0NBQ1Q7QUFDQSxxREFBMkI7QUFBQTtBQUFBLDZCQUV4QjtBQUNMLGlDQUFTO0FBQUE7QUFBQSwyQkFFTjtBQUNMLDBCQUFJLFlBQVksYUFBYSxnQkFBZ0IsYUFBYSxPQUFPLFNBQVEsZ0JBQWdCLG9CQUFvQixhQUFhLE1BQU0sU0FBUTtBQUN4SSwwQkFBSSxZQUFZLFNBQVE7QUFJeEI7QUFDRSw0QkFBSSxhQUFhLFNBQVMsYUFBYSxlQUFlLENBQUMsOEJBQThCO0FBQ25GLDhCQUFJLFNBQVMsVUFBVSxhQUFhLGVBQWU7QUFDakQsa0NBQU0scU1BQXlOLDBCQUEwQixpQkFBaUI7QUFBQTtBQUc1USw4QkFBSSxTQUFTLFVBQVUsYUFBYSxlQUFlO0FBQ2pELGtDQUFNLHFNQUF5TiwwQkFBMEIsaUJBQWlCO0FBQUE7QUFBQTtBQUFBO0FBS2hSLDBCQUFLLGFBQWEsT0FBTyxhQUFhO0FBQ3BDLDRCQUFJO0FBQ0Y7QUFDQSxtQ0FBUyxtQkFBbUIsV0FBVyxXQUFXLFNBQVM7QUFBQSxrQ0FDM0Q7QUFDQSxxREFBMkI7QUFBQTtBQUFBLDZCQUV4QjtBQUNMLGlDQUFTLG1CQUFtQixXQUFXLFdBQVcsU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUW5FLG9CQUFJLGNBQWMsYUFBYTtBQUUvQixvQkFBSSxnQkFBZ0IsTUFBTTtBQUN4QjtBQUNFLHdCQUFJLGFBQWEsU0FBUyxhQUFhLGVBQWUsQ0FBQyw4QkFBOEI7QUFDbkYsMEJBQUksU0FBUyxVQUFVLGFBQWEsZUFBZTtBQUNqRCw4QkFBTSw4TUFBa08sMEJBQTBCLGlCQUFpQjtBQUFBO0FBR3JSLDBCQUFJLFNBQVMsVUFBVSxhQUFhLGVBQWU7QUFDakQsOEJBQU0sOE1BQWtPLDBCQUEwQixpQkFBaUI7QUFBQTtBQUFBO0FBQUE7QUFRelIsb0NBQWtCLGNBQWMsYUFBYTtBQUFBO0FBRy9DO0FBQUE7QUFBQSxtQkFHQyxVQUNIO0FBR0Usb0JBQUksZUFBZSxhQUFhO0FBRWhDLG9CQUFJLGlCQUFpQixNQUFNO0FBQ3pCLHNCQUFJLFlBQVk7QUFFaEIsc0JBQUksYUFBYSxVQUFVLE1BQU07QUFDL0IsNEJBQVEsYUFBYSxNQUFNO0FBQUEsMkJBQ3BCO0FBQ0gsb0NBQVksa0JBQWtCLGFBQWEsTUFBTTtBQUNqRDtBQUFBLDJCQUVHO0FBQ0gsb0NBQVksYUFBYSxNQUFNO0FBQy9CO0FBQUE7QUFBQTtBQUlOLG9DQUFrQixjQUFjLGNBQWM7QUFBQTtBQUdoRDtBQUFBO0FBQUEsbUJBR0MsZUFDSDtBQUNFLG9CQUFJLGFBQWEsYUFBYTtBQUs5QixvQkFBSSxhQUFZLFFBQVEsYUFBYSxRQUFRLFFBQVE7QUFDbkQsc0JBQUksT0FBTyxhQUFhO0FBQ3hCLHNCQUFJLFFBQVEsYUFBYTtBQUN6Qiw4QkFBWSxZQUFZLE1BQU07QUFBQTtBQUdoQztBQUFBO0FBQUEsbUJBR0MsVUFDSDtBQUVFO0FBQUE7QUFBQSxtQkFHQyxZQUNIO0FBRUU7QUFBQTtBQUFBLG1CQUdDLFVBQ0g7QUFDRTtBQUNFLHNCQUFJLHlCQUF5QixhQUFhLGVBQ3RDLFdBQVcsdUJBQXVCLFVBQ2xDLFdBQVcsdUJBQXVCO0FBQ3RDLHNCQUFJLGlCQUFpQixhQUFhLFVBQVU7QUFDNUMsc0JBQUksY0FBYTtBQUNqQixzQkFBSSxRQUFRLGFBQVksT0FBTyxVQUFVO0FBRXpDO0FBQ0Usd0JBQUkseUJBQXlCO0FBQzNCLDhCQUFRO0FBQUE7QUFBQTtBQUlaLHNCQUFJLE9BQU8sYUFBYSxZQUFZO0FBQ2xDLDZCQUFTLGFBQWEsY0FBYyxJQUFJLE9BQU8sYUFBYSxnQkFBZ0IsYUFBYSxrQkFBa0IsYUFBYSxpQkFBaUI7QUFBQTtBQUczSTtBQUNFLHdCQUFJLE9BQU8sYUFBYSxZQUFZO0FBQ2xDLCtCQUFTLGFBQWEsY0FBYyxJQUFJLE9BQU8sZ0JBQWdCO0FBQUE7QUFNakUsd0RBQW9DO0FBR3BDLHdCQUFJLGNBQWMsYUFBYTtBQUUvQjtBQUFPLDZCQUFPLGdCQUFnQixNQUFNO0FBQ2xDLGdDQUFRLFlBQVk7QUFBQSwrQkFDYjtBQUNILGdDQUFJLFFBQU8sWUFBWTtBQUN2QixrQ0FBSyxrQkFBa0I7QUFDdkI7QUFBQSwrQkFFRztBQUNILGdDQUFJLGtCQUFrQixZQUFZO0FBQ2xDLDRDQUFnQixrQkFBa0I7QUFDbEM7QUFBQTtBQUdKLHNDQUFjLFlBQVk7QUFBQTtBQUFBO0FBQUE7QUFLaEM7QUFBQTtBQUFBLG1CQUdDLG1CQUNIO0FBQ0UsaURBQWlDLGNBQWM7QUFDL0M7QUFBQTtBQUFBLG1CQUdDO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0EsdUJBQ0g7QUFDRTtBQUFBO0FBQUE7QUFJRixzQkFBTSxJQUFJLE1BQU07QUFBQTtBQUFBO0FBSXRCLGNBQUssQ0FBQywyQkFBMkI7QUFDL0I7QUFDRSxrQkFBSSxhQUFhLFFBQVEsS0FBSztBQUM1QixnQ0FBZ0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU14Qiw4Q0FBc0MsTUFBTTtBQUcxQyxrQkFBUSxLQUFLO0FBQUEsaUJBQ047QUFBQSxpQkFDQTtBQUFBLGlCQUNBLHFCQUNIO0FBQ0Usa0JBQUssS0FBSyxPQUFPLGFBQWE7QUFDNUIsb0JBQUk7QUFDRjtBQUNBLDREQUEwQyxNQUFNLEtBQUs7QUFBQSwwQkFDckQ7QUFDQSw2Q0FBMkI7QUFBQTtBQUFBLHFCQUV4QjtBQUNMLDBEQUEwQyxNQUFNLEtBQUs7QUFBQTtBQUd2RDtBQUFBO0FBQUEsaUJBR0MsZ0JBQ0g7QUFDRSxrQkFBSSxXQUFXLEtBQUs7QUFFcEIsa0JBQUksT0FBTyxTQUFTLHNCQUFzQixZQUFZO0FBQ3BELDRDQUE0QixNQUFNLEtBQUssUUFBUTtBQUFBO0FBR2pELDhCQUFnQixNQUFNLEtBQUs7QUFDM0I7QUFBQTtBQUFBLGlCQUdDLGVBQ0g7QUFDRSw4QkFBZ0IsTUFBTSxLQUFLO0FBQzNCO0FBQUE7QUFBQTtBQUFBO0FBS1IseUNBQWlDLGNBQWMsVUFBVTtBQUV2RCxjQUFJLGtCQUFrQjtBQUV0QjtBQUdFLGdCQUFJLE9BQU87QUFFWCxtQkFBTyxNQUFNO0FBQ1gsa0JBQUksS0FBSyxRQUFRLGVBQWU7QUFDOUIsb0JBQUksb0JBQW9CLE1BQU07QUFDNUIsb0NBQWtCO0FBQ2xCLHNCQUFJLFdBQVcsS0FBSztBQUVwQixzQkFBSSxVQUFVO0FBQ1osaUNBQWE7QUFBQSx5QkFDUjtBQUNMLG1DQUFlLEtBQUssV0FBVyxLQUFLO0FBQUE7QUFBQTtBQUFBLHlCQUcvQixLQUFLLFFBQVEsVUFBVTtBQUNoQyxvQkFBSSxvQkFBb0IsTUFBTTtBQUM1QixzQkFBSSxhQUFhLEtBQUs7QUFFdEIsc0JBQUksVUFBVTtBQUNaLHFDQUFpQjtBQUFBLHlCQUNaO0FBQ0wsdUNBQW1CLFlBQVksS0FBSztBQUFBO0FBQUE7QUFBQSx5QkFHOUIsTUFBSyxRQUFRLHNCQUFzQixLQUFLLFFBQVEsMEJBQTBCLEtBQUssa0JBQWtCLFFBQVEsU0FBUztBQUFjO0FBQUEsdUJBQVcsS0FBSyxVQUFVLE1BQU07QUFDMUsscUJBQUssTUFBTSxTQUFTO0FBQ3BCLHVCQUFPLEtBQUs7QUFDWjtBQUFBO0FBR0Ysa0JBQUksU0FBUyxjQUFjO0FBQ3pCO0FBQUE7QUFHRixxQkFBTyxLQUFLLFlBQVksTUFBTTtBQUM1QixvQkFBSSxLQUFLLFdBQVcsUUFBUSxLQUFLLFdBQVcsY0FBYztBQUN4RDtBQUFBO0FBR0Ysb0JBQUksb0JBQW9CLE1BQU07QUFDNUIsb0NBQWtCO0FBQUE7QUFHcEIsdUJBQU8sS0FBSztBQUFBO0FBR2Qsa0JBQUksb0JBQW9CLE1BQU07QUFDNUIsa0NBQWtCO0FBQUE7QUFHcEIsbUJBQUssUUFBUSxTQUFTLEtBQUs7QUFDM0IscUJBQU8sS0FBSztBQUFBO0FBQUE7QUFBQTtBQUtsQixpQ0FBeUIsY0FBYztBQUNyQyxjQUFJLE1BQU0sYUFBYTtBQUV2QixjQUFJLFFBQVEsTUFBTTtBQUNoQixnQkFBSSxXQUFXLGFBQWE7QUFDNUIsZ0JBQUk7QUFFSixvQkFBUSxhQUFhO0FBQUEsbUJBQ2Q7QUFDSCxnQ0FBZ0Isa0JBQWtCO0FBQ2xDO0FBQUE7QUFHQSxnQ0FBZ0I7QUFBQTtBQUdwQixnQkFBSSxPQUFPLFFBQVEsWUFBWTtBQUM3QixrQkFBSTtBQUVKLGtCQUFLLGFBQWEsT0FBTyxhQUFhO0FBQ3BDLG9CQUFJO0FBQ0Y7QUFDQSwyQkFBUyxJQUFJO0FBQUEsMEJBQ2I7QUFDQSw2Q0FBMkI7QUFBQTtBQUFBLHFCQUV4QjtBQUNMLHlCQUFTLElBQUk7QUFBQTtBQUdmO0FBQ0Usb0JBQUksT0FBTyxXQUFXLFlBQVk7QUFDaEMsd0JBQU0sbUdBQXdHLDBCQUEwQjtBQUFBO0FBQUE7QUFBQSxtQkFHdkk7QUFDTDtBQUNFLG9CQUFJLENBQUMsSUFBSSxlQUFlLFlBQVk7QUFDbEMsd0JBQU0saUdBQXNHLDBCQUEwQjtBQUFBO0FBQUE7QUFJMUksa0JBQUksVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUtwQixpQ0FBeUIsVUFBUztBQUNoQyxjQUFJLGFBQWEsU0FBUTtBQUV6QixjQUFJLGVBQWUsTUFBTTtBQUN2QixnQkFBSSxPQUFPLGVBQWUsWUFBWTtBQUNwQyxrQkFBSyxTQUFRLE9BQU8sYUFBYTtBQUMvQixvQkFBSTtBQUNGO0FBQ0EsNkJBQVc7QUFBQSwwQkFDWDtBQUNBLDZDQUEyQjtBQUFBO0FBQUEscUJBRXhCO0FBQ0wsMkJBQVc7QUFBQTtBQUFBLG1CQUVSO0FBQ0wseUJBQVcsVUFBVTtBQUFBO0FBQUE7QUFBQTtBQVEzQiwrQkFBdUIsY0FBYyxVQUFTLHdCQUF3QjtBQUNwRSwwQkFBZ0I7QUFFaEIsa0JBQVEsU0FBUTtBQUFBLGlCQUNUO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQTtBQUFBLGlCQUNBLHFCQUNIO0FBQ0Usa0JBQUksY0FBYyxTQUFRO0FBRTFCLGtCQUFJLGdCQUFnQixNQUFNO0FBQ3hCLG9CQUFJLGFBQWEsWUFBWTtBQUU3QixvQkFBSSxlQUFlLE1BQU07QUFDdkIsc0JBQUksY0FBYyxXQUFXO0FBQzdCLHNCQUFJLFNBQVM7QUFFYixxQkFBRztBQUNELHdCQUFJLFVBQVUsUUFDVixVQUFVLFFBQVEsU0FDbEIsTUFBTSxRQUFRO0FBRWxCLHdCQUFJLFlBQVksUUFBVztBQUN6QiwwQkFBSyxPQUFNLGVBQWUsV0FBVztBQUNuQywwQ0FBa0IsVUFBUyx3QkFBd0I7QUFBQSxpQ0FDekMsT0FBTSxZQUFZLFdBQVc7QUFDdkM7QUFDRSxrRUFBd0M7QUFBQTtBQUcxQyw0QkFBSyxTQUFRLE9BQU8sYUFBYTtBQUMvQjtBQUNBLDRDQUFrQixVQUFTLHdCQUF3QjtBQUNuRCxxREFBMkI7QUFBQSwrQkFDdEI7QUFDTCw0Q0FBa0IsVUFBUyx3QkFBd0I7QUFBQTtBQUdyRDtBQUNFO0FBQUE7QUFBQTtBQUFBO0FBS04sNkJBQVMsT0FBTztBQUFBLDJCQUNULFdBQVc7QUFBQTtBQUFBO0FBSXhCO0FBQUE7QUFBQSxpQkFHQyxnQkFDSDtBQUNFLDhCQUFnQixVQUFTO0FBQ3pCLGtCQUFJLFdBQVcsU0FBUTtBQUV2QixrQkFBSSxPQUFPLFNBQVMseUJBQXlCLFlBQVk7QUFDdkQsK0NBQStCLFVBQVMsd0JBQXdCO0FBQUE7QUFHbEU7QUFBQTtBQUFBLGlCQUdDLGVBQ0g7QUFDRSw4QkFBZ0IsVUFBUztBQUN6QjtBQUFBO0FBQUEsaUJBR0MsWUFDSDtBQUlFO0FBQ0Usc0NBQXNCLGNBQWMsVUFBUztBQUFBO0FBRy9DO0FBQUE7QUFBQSxpQkFHQyxvQkFDSDtBQUVFO0FBQUE7QUFBQSxpQkFHQyxnQkFDSDtBQUVFO0FBQUE7QUFBQTtBQUFBO0FBS1Isc0NBQThCLGNBQWMsT0FBTSx3QkFBd0I7QUFNeEUsY0FBSSxPQUFPO0FBRVgsaUJBQU8sTUFBTTtBQUNYLDBCQUFjLGNBQWMsTUFBTTtBQUdsQyxnQkFBSSxLQUFLLFVBQVUsUUFFbEIsS0FBSyxRQUFRLFlBQWE7QUFDekIsbUJBQUssTUFBTSxTQUFTO0FBQ3BCLHFCQUFPLEtBQUs7QUFDWjtBQUFBO0FBR0YsZ0JBQUksU0FBUyxPQUFNO0FBQ2pCO0FBQUE7QUFHRixtQkFBTyxLQUFLLFlBQVksTUFBTTtBQUM1QixrQkFBSSxLQUFLLFdBQVcsUUFBUSxLQUFLLFdBQVcsT0FBTTtBQUNoRDtBQUFBO0FBR0YscUJBQU8sS0FBSztBQUFBO0FBR2QsaUJBQUssUUFBUSxTQUFTLEtBQUs7QUFDM0IsbUJBQU8sS0FBSztBQUFBO0FBQUE7QUFJaEIscUNBQTZCLE9BQU87QUFpQmxDLGNBQUksWUFBWSxNQUFNO0FBRXRCLGNBQUksY0FBYyxNQUFNO0FBQ3RCLHNCQUFVLFNBQVM7QUFBQTtBQUdyQixnQkFBTSxTQUFTO0FBQUE7QUFHakIseUNBQWlDLE9BQU87QUFDdEMsY0FBSSxZQUFZLE1BQU07QUFFdEIsY0FBSSxjQUFjLE1BQU07QUFDdEIsa0JBQU0sWUFBWTtBQUNsQixvQ0FBd0I7QUFBQTtBQUsxQjtBQU9FLGtCQUFNLFFBQVE7QUFDZCxrQkFBTSxZQUFZO0FBQ2xCLGtCQUFNLFVBQVU7QUFLaEIsZ0JBQUksTUFBTSxRQUFRLGVBQWU7QUFDL0Isa0JBQUksZUFBZSxNQUFNO0FBRXpCLGtCQUFJLGlCQUFpQixNQUFNO0FBQ3pCLHNDQUFzQjtBQUFBO0FBQUE7QUFJMUIsa0JBQU0sWUFBWTtBQU1sQjtBQUNFLG9CQUFNLGNBQWM7QUFBQTtBQUd0QjtBQVFFLG9CQUFNLFNBQVM7QUFDZixvQkFBTSxlQUFlO0FBQ3JCLG9CQUFNLGdCQUFnQjtBQUN0QixvQkFBTSxnQkFBZ0I7QUFDdEIsb0JBQU0sZUFBZTtBQUNyQixvQkFBTSxZQUFZO0FBRWxCLG9CQUFNLGNBQWM7QUFBQTtBQUFBO0FBQUE7QUFLMUIsb0NBQTRCLE9BQU87QUFDakMsY0FBSSxTQUFTLE1BQU07QUFFbkIsaUJBQU8sV0FBVyxNQUFNO0FBQ3RCLGdCQUFJLGFBQWEsU0FBUztBQUN4QixxQkFBTztBQUFBO0FBR1QscUJBQVMsT0FBTztBQUFBO0FBR2xCLGdCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLDhCQUFzQixPQUFPO0FBQzNCLGlCQUFPLE1BQU0sUUFBUSxpQkFBaUIsTUFBTSxRQUFRLFlBQVksTUFBTSxRQUFRO0FBQUE7QUFHaEYsZ0NBQXdCLE9BQU87QUFLN0IsY0FBSSxPQUFPO0FBRVg7QUFBVSxtQkFBTyxNQUFNO0FBRXJCLHFCQUFPLEtBQUssWUFBWSxNQUFNO0FBQzVCLG9CQUFJLEtBQUssV0FBVyxRQUFRLGFBQWEsS0FBSyxTQUFTO0FBR3JELHlCQUFPO0FBQUE7QUFHVCx1QkFBTyxLQUFLO0FBQUE7QUFHZCxtQkFBSyxRQUFRLFNBQVMsS0FBSztBQUMzQixxQkFBTyxLQUFLO0FBRVoscUJBQU8sS0FBSyxRQUFRLGlCQUFpQixLQUFLLFFBQVEsWUFBWSxLQUFLLFFBQVEsb0JBQW9CO0FBRzdGLG9CQUFJLEtBQUssUUFBUSxXQUFXO0FBRTFCO0FBQUE7QUFLRixvQkFBSSxLQUFLLFVBQVUsUUFBUSxLQUFLLFFBQVEsWUFBWTtBQUNsRDtBQUFBLHVCQUNLO0FBQ0wsdUJBQUssTUFBTSxTQUFTO0FBQ3BCLHlCQUFPLEtBQUs7QUFBQTtBQUFBO0FBS2hCLGtCQUFJLENBQUUsTUFBSyxRQUFRLFlBQVk7QUFFN0IsdUJBQU8sS0FBSztBQUFBO0FBQUE7QUFBQTtBQUtsQixpQ0FBeUIsY0FBYztBQUdyQyxjQUFJLGNBQWMsbUJBQW1CO0FBRXJDLGtCQUFRLFlBQVk7QUFBQSxpQkFDYixlQUNIO0FBQ0Usa0JBQUksU0FBUyxZQUFZO0FBRXpCLGtCQUFJLFlBQVksUUFBUSxjQUFjO0FBRXBDLGlDQUFpQjtBQUVqQiw0QkFBWSxTQUFTLENBQUM7QUFBQTtBQUd4QixrQkFBSSxTQUFTLGVBQWU7QUFHNUIsMENBQTRCLGNBQWMsUUFBUTtBQUNsRDtBQUFBO0FBQUEsaUJBR0M7QUFBQSxpQkFDQSxZQUNIO0FBQ0Usa0JBQUksVUFBVSxZQUFZLFVBQVU7QUFFcEMsa0JBQUksVUFBVSxlQUFlO0FBRTdCLHVEQUF5QyxjQUFjLFNBQVM7QUFDaEU7QUFBQTtBQUFBO0FBS0Ysb0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFBQTtBQUl0QiwwREFBa0QsTUFBTSxRQUFRLFFBQVE7QUFDdEUsY0FBSSxNQUFNLEtBQUs7QUFDZixjQUFJLFNBQVMsUUFBUSxpQkFBaUIsUUFBUTtBQUU5QyxjQUFJLFFBQVE7QUFDVixnQkFBSSxZQUFZLEtBQUs7QUFFckIsZ0JBQUksUUFBUTtBQUNWLHNDQUF3QixRQUFRLFdBQVc7QUFBQSxtQkFDdEM7QUFDTCxxQ0FBdUIsUUFBUTtBQUFBO0FBQUEscUJBRXhCLFFBQVE7QUFBWTtBQUFBLGVBQU87QUFDcEMsZ0JBQUksUUFBUSxLQUFLO0FBRWpCLGdCQUFJLFVBQVUsTUFBTTtBQUNsQix1REFBeUMsT0FBTyxRQUFRO0FBQ3hELGtCQUFJLFVBQVUsTUFBTTtBQUVwQixxQkFBTyxZQUFZLE1BQU07QUFDdkIseURBQXlDLFNBQVMsUUFBUTtBQUMxRCwwQkFBVSxRQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNMUIsNkNBQXFDLE1BQU0sUUFBUSxRQUFRO0FBQ3pELGNBQUksTUFBTSxLQUFLO0FBQ2YsY0FBSSxTQUFTLFFBQVEsaUJBQWlCLFFBQVE7QUFFOUMsY0FBSSxRQUFRO0FBQ1YsZ0JBQUksWUFBWSxLQUFLO0FBRXJCLGdCQUFJLFFBQVE7QUFDViwyQkFBYSxRQUFRLFdBQVc7QUFBQSxtQkFDM0I7QUFDTCwwQkFBWSxRQUFRO0FBQUE7QUFBQSxxQkFFYixRQUFRO0FBQVk7QUFBQSxlQUFPO0FBQ3BDLGdCQUFJLFFBQVEsS0FBSztBQUVqQixnQkFBSSxVQUFVLE1BQU07QUFDbEIsMENBQTRCLE9BQU8sUUFBUTtBQUMzQyxrQkFBSSxVQUFVLE1BQU07QUFFcEIscUJBQU8sWUFBWSxNQUFNO0FBQ3ZCLDRDQUE0QixTQUFTLFFBQVE7QUFDN0MsMEJBQVUsUUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTTFCLHVDQUErQixjQUFjLFVBQVMsd0JBQXdCO0FBRzVFLGNBQUksT0FBTztBQUdYLGNBQUksdUJBQXVCO0FBRTNCLGNBQUk7QUFDSixjQUFJO0FBRUosaUJBQU8sTUFBTTtBQUNYLGdCQUFJLENBQUMsc0JBQXNCO0FBQ3pCLGtCQUFJLFNBQVMsS0FBSztBQUVsQjtBQUFZLHVCQUFPLE1BQU07QUFDdkIsc0JBQUksV0FBVyxNQUFNO0FBQ25CLDBCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLHNCQUFJLGtCQUFrQixPQUFPO0FBRTdCLDBCQUFRLE9BQU87QUFBQSx5QkFDUjtBQUNILHNDQUFnQjtBQUNoQixpREFBMkI7QUFDM0I7QUFBQSx5QkFFRztBQUNILHNDQUFnQixnQkFBZ0I7QUFDaEMsaURBQTJCO0FBQzNCO0FBQUEseUJBRUc7QUFDSCxzQ0FBZ0IsZ0JBQWdCO0FBQ2hDLGlEQUEyQjtBQUMzQjtBQUFBO0FBR0osMkJBQVMsT0FBTztBQUFBO0FBR2xCLHFDQUF1QjtBQUFBO0FBR3pCLGdCQUFJLEtBQUssUUFBUSxpQkFBaUIsS0FBSyxRQUFRLFVBQVU7QUFDdkQsbUNBQXFCLGNBQWMsTUFBTTtBQUd6QyxrQkFBSSwwQkFBMEI7QUFDNUIseUNBQXlCLGVBQWUsS0FBSztBQUFBLHFCQUN4QztBQUNMLDRCQUFZLGVBQWUsS0FBSztBQUFBO0FBQUEsdUJBR3hCLEtBQUssUUFBUSxvQkFBb0I7QUFHM0Msa0JBQUksMEJBQTBCO0FBQzVCLG1EQUFtQyxlQUFlLEtBQUs7QUFBQSxxQkFDbEQ7QUFDTCxzQ0FBc0IsZUFBZSxLQUFLO0FBQUE7QUFBQSx1QkFFbkMsS0FBSyxRQUFRLFlBQVk7QUFDbEMsa0JBQUksS0FBSyxVQUFVLE1BQU07QUFHdkIsZ0NBQWdCLEtBQUssVUFBVTtBQUMvQiwyQ0FBMkI7QUFFM0IscUJBQUssTUFBTSxTQUFTO0FBQ3BCLHVCQUFPLEtBQUs7QUFDWjtBQUFBO0FBQUEsbUJBRUc7QUFDTCw0QkFBYyxjQUFjLE1BQU07QUFFbEMsa0JBQUksS0FBSyxVQUFVLE1BQU07QUFDdkIscUJBQUssTUFBTSxTQUFTO0FBQ3BCLHVCQUFPLEtBQUs7QUFDWjtBQUFBO0FBQUE7QUFJSixnQkFBSSxTQUFTLFVBQVM7QUFDcEI7QUFBQTtBQUdGLG1CQUFPLEtBQUssWUFBWSxNQUFNO0FBQzVCLGtCQUFJLEtBQUssV0FBVyxRQUFRLEtBQUssV0FBVyxVQUFTO0FBQ25EO0FBQUE7QUFHRixxQkFBTyxLQUFLO0FBRVosa0JBQUksS0FBSyxRQUFRLFlBQVk7QUFHM0IsdUNBQXVCO0FBQUE7QUFBQTtBQUkzQixpQkFBSyxRQUFRLFNBQVMsS0FBSztBQUMzQixtQkFBTyxLQUFLO0FBQUE7QUFBQTtBQUloQixnQ0FBd0IsY0FBYyxVQUFTLHdCQUF3QjtBQUNyRTtBQUdFLGtDQUFzQixjQUFjLFVBQVM7QUFBQTtBQUcvQyw4QkFBb0I7QUFBQTtBQUd0Qiw0QkFBb0IsVUFBUyxjQUFjO0FBRXpDLGtCQUFRLGFBQWE7QUFBQSxpQkFDZDtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQSxxQkFDSDtBQUNFLDBDQUE0QixZQUFZLFdBQVcsY0FBYyxhQUFhO0FBQzlFLHdDQUEwQixZQUFZLFdBQVc7QUFNakQsa0JBQUssYUFBYSxPQUFPLGFBQWE7QUFDcEMsb0JBQUk7QUFDRjtBQUNBLDhDQUE0QixTQUFTLFdBQVcsY0FBYyxhQUFhO0FBQUEsMEJBQzNFO0FBQ0EsNkNBQTJCO0FBQUE7QUFBQSxxQkFFeEI7QUFDTCw0Q0FBNEIsU0FBUyxXQUFXLGNBQWMsYUFBYTtBQUFBO0FBRzdFO0FBQUE7QUFBQSxpQkFHQyxnQkFDSDtBQUNFO0FBQUE7QUFBQSxpQkFHQyxlQUNIO0FBQ0Usa0JBQUksV0FBVyxhQUFhO0FBRTVCLGtCQUFJLFlBQVksTUFBTTtBQUVwQixvQkFBSSxXQUFXLGFBQWE7QUFJNUIsb0JBQUksV0FBVyxhQUFZLE9BQU8sU0FBUSxnQkFBZ0I7QUFDMUQsb0JBQUksT0FBTyxhQUFhO0FBRXhCLG9CQUFJLGdCQUFnQixhQUFhO0FBQ2pDLDZCQUFhLGNBQWM7QUFFM0Isb0JBQUksa0JBQWtCLE1BQU07QUFDMUIsK0JBQWEsVUFBVSxlQUFlLE1BQU0sVUFBVTtBQUFBO0FBQUE7QUFJMUQ7QUFBQTtBQUFBLGlCQUdDLFVBQ0g7QUFDRSxrQkFBSSxhQUFhLGNBQWMsTUFBTTtBQUNuQyxzQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQixrQkFBSSxlQUFlLGFBQWE7QUFDaEMsa0JBQUksVUFBVSxhQUFhO0FBSTNCLGtCQUFJLFVBQVUsYUFBWSxPQUFPLFNBQVEsZ0JBQWdCO0FBQ3pELCtCQUFpQixjQUFjLFNBQVM7QUFDeEM7QUFBQTtBQUFBLGlCQUdDLFVBQ0g7QUFDRTtBQUNFLG9CQUFJLGFBQVksTUFBTTtBQUNwQixzQkFBSSxpQkFBaUIsU0FBUTtBQUU3QixzQkFBSSxlQUFlLGNBQWM7QUFDL0Isd0JBQUksUUFBUSxhQUFhO0FBQ3pCLDRDQUF3QixNQUFNO0FBQUE7QUFBQTtBQUFBO0FBS3BDO0FBQUE7QUFBQSxpQkFHQyxVQUNIO0FBQ0U7QUFBQTtBQUFBLGlCQUdDLG1CQUNIO0FBQ0UscUNBQXVCO0FBQ3ZCLDJDQUE2QjtBQUM3QjtBQUFBO0FBQUEsaUJBR0MsdUJBQ0g7QUFDRSwyQ0FBNkI7QUFDN0I7QUFBQTtBQUFBLGlCQUdDLDBCQUNIO0FBQ0U7QUFBQTtBQUFBO0FBSU4sZ0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsd0NBQWdDLGNBQWM7QUFFNUMsY0FBSSxXQUFXLGFBQWE7QUFBQTtBQUc5QixrREFBMEMsY0FBYyxjQUFjO0FBRXBFLGNBQUksV0FBVyxhQUFhO0FBRTVCLGNBQUksYUFBYSxNQUFNO0FBQ3JCLGdCQUFJLFdBQVUsYUFBYTtBQUUzQixnQkFBSSxhQUFZLE1BQU07QUFDcEIsa0JBQUksWUFBWSxTQUFRO0FBRXhCLGtCQUFJLGNBQWMsTUFBTTtBQUN0QixvQkFBSSxtQkFBbUIsVUFBVTtBQUVqQyxvQkFBSSxxQkFBcUIsTUFBTTtBQUM3QixpREFBK0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT3pDLDhDQUFzQyxjQUFjO0FBSWxELGNBQUksWUFBWSxhQUFhO0FBRTdCLGNBQUksY0FBYyxNQUFNO0FBQ3RCLHlCQUFhLGNBQWM7QUFDM0IsZ0JBQUksYUFBYSxhQUFhO0FBRTlCLGdCQUFJLGVBQWUsTUFBTTtBQUN2QiwyQkFBYSxhQUFhLFlBQVksSUFBSTtBQUFBO0FBRzVDLHNCQUFVLFFBQVEsU0FBVSxVQUFVO0FBRXBDLGtCQUFJLFFBQVEscUJBQXFCLEtBQUssTUFBTSxjQUFjO0FBRTFELGtCQUFJLENBQUMsV0FBVyxJQUFJLFdBQVc7QUFDN0IsMkJBQVcsSUFBSTtBQUVmO0FBQ0Usc0JBQUksbUJBQW1CO0FBQ3JCLHdCQUFJLG9CQUFvQixRQUFRLG1CQUFtQixNQUFNO0FBRXZELDZDQUF1QixnQkFBZ0I7QUFBQSwyQkFDbEM7QUFDTCw0QkFBTSxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBS2xCLHlCQUFTLEtBQUssT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTTdCLHdDQUFnQyxVQUFTO0FBRXZDLDJCQUFpQixTQUFRO0FBQUE7QUFHM0IsdUNBQStCLE9BQU0sWUFBWSxnQkFBZ0I7QUFDL0QsNEJBQWtCO0FBQ2xCLDJCQUFpQjtBQUNqQix1QkFBYTtBQUNiLHNDQUE0QixPQUFNO0FBQ2xDLDRCQUFrQjtBQUNsQiwyQkFBaUI7QUFBQTtBQUduQiw2Q0FBcUMsT0FBTSxPQUFPO0FBQ2hELGlCQUFPLGVBQWUsTUFBTTtBQUMxQixnQkFBSSxRQUFRO0FBRVosZ0JBQUksWUFBWSxNQUFNO0FBRXRCLGdCQUFJLGNBQWMsTUFBTTtBQUN0Qix1QkFBUyxJQUFJLEdBQUcsSUFBSSxVQUFVLFFBQVEsS0FBSztBQUN6QyxvQkFBSSxnQkFBZ0IsVUFBVTtBQUU5QixvQkFBSTtBQUNGLGlDQUFlLE9BQU0sZUFBZTtBQUFBLHlCQUM3QixRQUFQO0FBQ0EsMkNBQXlCO0FBQ3pCLDBDQUF3QixlQUFlLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFLcEQsZ0JBQUksUUFBUSxNQUFNO0FBRWxCLGdCQUFLLE9BQU0sZUFBZSxrQkFBa0IsV0FBVyxVQUFVLE1BQU07QUFDckUseUNBQTJCLE9BQU87QUFDbEMsMkJBQWE7QUFBQSxtQkFDUjtBQUNMLDZDQUErQixPQUFNO0FBQUE7QUFBQTtBQUFBO0FBSzNDLGdEQUF3QyxPQUFNLE9BQU87QUFDbkQsaUJBQU8sZUFBZSxNQUFNO0FBQzFCLGdCQUFJLFFBQVE7QUFDWiw0QkFBZ0I7QUFFaEIsZ0JBQUk7QUFDRiwyQ0FBNkIsT0FBTyxPQUFNO0FBQUEscUJBQ25DLFFBQVA7QUFDQSx1Q0FBeUI7QUFDekIsc0NBQXdCLE9BQU8sTUFBTSxRQUFRO0FBQUE7QUFHL0M7QUFDQSxnQkFBSSxVQUFVLE1BQU07QUFFcEIsZ0JBQUksWUFBWSxNQUFNO0FBQ3BCLHlDQUEyQixTQUFTLE1BQU07QUFDMUMsMkJBQWE7QUFDYjtBQUFBO0FBR0YseUJBQWEsTUFBTTtBQUFBO0FBQUE7QUFJdkIsOENBQXNDLGNBQWMsT0FBTSxPQUFPO0FBSy9ELGNBQUksUUFBUSxhQUFhO0FBRXpCLGNBQUksUUFBUSxjQUFjO0FBQ3hCLG1DQUF1QjtBQUFBO0FBR3pCLGNBQUksUUFBUSxLQUFLO0FBQ2YsZ0JBQUksV0FBVSxhQUFhO0FBRTNCLGdCQUFJLGFBQVksTUFBTTtBQUNwQiw4QkFBZ0I7QUFBQTtBQUFBO0FBSXBCLGNBQUksUUFBUSxZQUFZO0FBQ3RCLG9CQUFRLGFBQWE7QUFBQSxtQkFDZCxtQkFDSDtBQUNFLG9CQUFJLFdBQVcsYUFBYTtBQUM1QixvQkFBSSxXQUFXLGFBQWE7QUFFNUIsb0JBQUksVUFBVTtBQUNaLHNCQUFJLFdBQVcsYUFBYTtBQUM1QixzQkFBSSxZQUFZLGFBQWEsUUFBUSxTQUFTLGtCQUFrQjtBQUVoRSxzQkFBSSxDQUFDLFdBQVc7QUFFZDtBQUFBO0FBQUE7QUFJSjtBQUFBO0FBQUEsbUJBR0Msb0JBQ0g7QUFDRSxvQkFBSSxZQUFZLGFBQWE7QUFFN0Isb0JBQUksWUFBWSxjQUFjO0FBRTlCLG9CQUFJLFlBQVksYUFBYTtBQUU3QixvQkFBSSxhQUFhLGNBQWMsUUFBUSxVQUFVLGtCQUFrQjtBQUVuRSxvQkFBSSxvQkFBb0I7QUFFeEI7QUFHRSwwQ0FBd0IsbUJBQW1CO0FBQUE7QUFHN0M7QUFDRSxzQkFBSSxXQUFXO0FBQ2Isd0JBQUksQ0FBQyxZQUFZO0FBQ2YsMEJBQUssbUJBQWtCLE9BQU8sb0JBQW9CLFFBQVE7QUFDeEQscUNBQWE7QUFDYiw0QkFBSSxpQkFBaUIsa0JBQWtCO0FBRXZDLCtCQUFPLG1CQUFtQixNQUFNO0FBQzlCLHVDQUFhO0FBQ2IsdURBQTZCO0FBQzdCLDJDQUFpQixlQUFlO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNeEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVWLGNBQUksZUFBZSxRQUFTLGFBQVksU0FBUztBQUVoRCxrQkFBUTtBQUFBLGlCQUNGLFdBQ0g7QUFDRSw4QkFBZ0I7QUFLaEIsMkJBQWEsU0FBUyxDQUFDO0FBQ3ZCO0FBQUE7QUFBQSxpQkFHQyxvQkFDSDtBQUVFLDhCQUFnQjtBQUdoQiwyQkFBYSxTQUFTLENBQUM7QUFFdkIsa0JBQUksWUFBWSxhQUFhO0FBQzdCLHlCQUFXLFdBQVc7QUFDdEI7QUFBQTtBQUFBLGlCQUdDLFdBQ0g7QUFDRSwyQkFBYSxTQUFTLENBQUM7QUFDdkI7QUFBQTtBQUFBLGlCQUdDLG9CQUNIO0FBQ0UsMkJBQWEsU0FBUyxDQUFDO0FBRXZCLGtCQUFJLFlBQVksYUFBYTtBQUM3Qix5QkFBVyxXQUFXO0FBQ3RCO0FBQUE7QUFBQSxpQkFHQyxRQUNIO0FBQ0Usa0JBQUksWUFBWSxhQUFhO0FBQzdCLHlCQUFXLFdBQVc7QUFDdEI7QUFBQTtBQUFBO0FBQUE7QUFLUixxQ0FBNkIsY0FBYyxPQUFNLGdCQUFnQjtBQUMvRCw0QkFBa0I7QUFDbEIsMkJBQWlCO0FBQ2pCLHVCQUFhO0FBQ2Isb0NBQTBCLGNBQWMsT0FBTTtBQUM5Qyw0QkFBa0I7QUFDbEIsMkJBQWlCO0FBQUE7QUFHbkIsMkNBQW1DLGFBQWEsT0FBTSxnQkFBZ0I7QUFFcEUsY0FBSSxlQUFnQixhQUFZLE9BQU8sb0JBQW9CO0FBRTNELGlCQUFPLGVBQWUsTUFBTTtBQUMxQixnQkFBSSxRQUFRO0FBQ1osZ0JBQUksYUFBYSxNQUFNO0FBRXZCLGdCQUFLLE1BQU0sUUFBUSxzQkFBc0IsY0FBYztBQUVyRCxrQkFBSSxXQUFXLE1BQU0sa0JBQWtCO0FBQ3ZDLGtCQUFJLDhCQUE4QixZQUFZO0FBRTlDLGtCQUFJLDZCQUE2QjtBQUUvQixrREFBa0MsYUFBYSxPQUFNO0FBQ3JEO0FBQUEscUJBQ0s7QUFFTCxvQkFBSSxXQUFVLE1BQU07QUFDcEIsb0JBQUksWUFBWSxhQUFZLFFBQVEsU0FBUSxrQkFBa0I7QUFDOUQsb0JBQUksK0JBQStCLGFBQWE7QUFDaEQsb0JBQUksK0JBQStCO0FBQ25DLG9CQUFJLGdDQUFnQztBQUVwQywyQ0FBMkI7QUFDM0IsNENBQTRCO0FBRTVCLG9CQUFJLDZCQUE2QixDQUFDLCtCQUErQjtBQUcvRCwrQkFBYTtBQUNiLDhDQUE0QjtBQUFBO0FBRzlCLG9CQUFJLFFBQVE7QUFFWix1QkFBTyxVQUFVLE1BQU07QUFDckIsK0JBQWE7QUFDYiw0Q0FBMEIsT0FDMUIsT0FBTTtBQUNOLDBCQUFRLE1BQU07QUFBQTtBQUloQiw2QkFBYTtBQUNiLDJDQUEyQjtBQUMzQiw0Q0FBNEI7QUFDNUIsa0RBQWtDLGFBQWEsT0FBTTtBQUNyRDtBQUFBO0FBQUE7QUFJSixnQkFBSyxPQUFNLGVBQWUsZ0JBQWdCLFdBQVcsZUFBZSxNQUFNO0FBQ3hFLHlDQUEyQixZQUFZO0FBQ3ZDLDJCQUFhO0FBQUEsbUJBQ1I7QUFDTCxnREFBa0MsYUFBYSxPQUFNO0FBQUE7QUFBQTtBQUFBO0FBSzNELG1EQUEyQyxhQUFhLE9BQU0sZ0JBQWdCO0FBQzVFLGlCQUFPLGVBQWUsTUFBTTtBQUMxQixnQkFBSSxRQUFRO0FBRVosZ0JBQUssT0FBTSxRQUFRLGdCQUFnQixTQUFTO0FBQzFDLGtCQUFJLFdBQVUsTUFBTTtBQUNwQiw4QkFBZ0I7QUFFaEIsa0JBQUk7QUFDRiwwQ0FBMEIsT0FBTSxVQUFTLE9BQU87QUFBQSx1QkFDekMsUUFBUDtBQUNBLHlDQUF5QjtBQUN6Qix3Q0FBd0IsT0FBTyxNQUFNLFFBQVE7QUFBQTtBQUcvQztBQUFBO0FBR0YsZ0JBQUksVUFBVSxhQUFhO0FBQ3pCLDJCQUFhO0FBQ2I7QUFBQTtBQUdGLGdCQUFJLFVBQVUsTUFBTTtBQUVwQixnQkFBSSxZQUFZLE1BQU07QUFDcEIseUNBQTJCLFNBQVMsTUFBTTtBQUMxQywyQkFBYTtBQUNiO0FBQUE7QUFHRix5QkFBYSxNQUFNO0FBQUE7QUFBQTtBQUl2Qiw4Q0FBc0MsYUFBYTtBQUNqRCxpQkFBTyxlQUFlLE1BQU07QUFDMUIsZ0JBQUksUUFBUTtBQUNaLGdCQUFJLGFBQWEsTUFBTTtBQUV2QixvQkFBUSxNQUFNO0FBQUEsbUJBQ1A7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQUEsbUJBQ0EscUJBQ0g7QUFDRSxvQkFBSyxNQUFNLE9BQU8sYUFBYTtBQUM3QixzQkFBSTtBQUNGO0FBQ0EsZ0RBQTRCLFFBQVEsT0FBTyxNQUFNO0FBQUEsNEJBQ2pEO0FBQ0EsK0NBQTJCO0FBQUE7QUFBQSx1QkFFeEI7QUFDTCw4Q0FBNEIsUUFBUSxPQUFPLE1BQU07QUFBQTtBQUduRDtBQUFBO0FBQUEsbUJBR0MsZ0JBQ0g7QUFFRSxnQ0FBZ0IsT0FBTyxNQUFNO0FBQzdCLG9CQUFJLFdBQVcsTUFBTTtBQUVyQixvQkFBSSxPQUFPLFNBQVMseUJBQXlCLFlBQVk7QUFDdkQsaURBQStCLE9BQU8sTUFBTSxRQUFRO0FBQUE7QUFHdEQ7QUFBQTtBQUFBLG1CQUdDLGVBQ0g7QUFDRSxnQ0FBZ0IsT0FBTyxNQUFNO0FBQzdCO0FBQUE7QUFBQSxtQkFHQyxvQkFDSDtBQUVFLG9CQUFJLFdBQVcsTUFBTSxrQkFBa0I7QUFFdkMsb0JBQUksVUFBVTtBQUdaLGtEQUFnQztBQUNoQztBQUFBO0FBR0Y7QUFBQTtBQUFBO0FBS04sZ0JBQUksZUFBZSxNQUFNO0FBQ3ZCLHlCQUFXLFNBQVM7QUFDcEIsMkJBQWE7QUFBQSxtQkFDUjtBQUNMLDhDQUFnQztBQUFBO0FBQUE7QUFBQTtBQUt0QyxpREFBeUMsYUFBYTtBQUNwRCxpQkFBTyxlQUFlLE1BQU07QUFDMUIsZ0JBQUksUUFBUTtBQUVaLGdCQUFJLFVBQVUsYUFBYTtBQUN6QiwyQkFBYTtBQUNiO0FBQUE7QUFHRixnQkFBSSxVQUFVLE1BQU07QUFFcEIsZ0JBQUksWUFBWSxNQUFNO0FBQ3BCLHNCQUFRLFNBQVMsTUFBTTtBQUN2QiwyQkFBYTtBQUNiO0FBQUE7QUFHRix5QkFBYSxNQUFNO0FBQUE7QUFBQTtBQUl2Qiw2Q0FBcUMsYUFBYTtBQUNoRCxpQkFBTyxlQUFlLE1BQU07QUFDMUIsZ0JBQUksUUFBUTtBQUNaLGdCQUFJLGFBQWEsTUFBTTtBQUV2QixnQkFBSSxNQUFNLFFBQVEsb0JBQW9CO0FBQ3BDLGtCQUFJLFdBQVcsTUFBTSxrQkFBa0I7QUFFdkMsa0JBQUksVUFBVTtBQUVaLCtDQUErQjtBQUMvQjtBQUFBO0FBQUE7QUFLSixnQkFBSSxlQUFlLE1BQU07QUFHdkIseUJBQVcsU0FBUztBQUNwQiwyQkFBYTtBQUFBLG1CQUNSO0FBQ0wsNkNBQStCO0FBQUE7QUFBQTtBQUFBO0FBS3JDLGdEQUF3QyxhQUFhO0FBQ25ELGlCQUFPLGVBQWUsTUFBTTtBQUMxQixnQkFBSSxRQUFRO0FBRVosNEJBQWdCO0FBRWhCLGdCQUFJO0FBQ0YsMkNBQTZCO0FBQUEscUJBQ3RCLFFBQVA7QUFDQSx1Q0FBeUI7QUFDekIsc0NBQXdCLE9BQU8sTUFBTSxRQUFRO0FBQUE7QUFHL0M7QUFFQSxnQkFBSSxVQUFVLGFBQWE7QUFDekIsMkJBQWE7QUFDYjtBQUFBO0FBR0YsZ0JBQUksVUFBVSxNQUFNO0FBRXBCLGdCQUFJLFlBQVksTUFBTTtBQUdwQixzQkFBUSxTQUFTLE1BQU07QUFDdkIsMkJBQWE7QUFDYjtBQUFBO0FBR0YseUJBQWEsTUFBTTtBQUFBO0FBQUE7QUFJdkIsMkNBQW1DLE9BQU0sY0FBYztBQUNyRCx1QkFBYTtBQUNiLDBDQUFnQyxjQUFjO0FBQUE7QUFHaEQsaURBQXlDLGFBQWEsT0FBTTtBQUMxRCxpQkFBTyxlQUFlLE1BQU07QUFDMUIsZ0JBQUksUUFBUTtBQUNaLGdCQUFJLGFBQWEsTUFBTTtBQUV2QixnQkFBSyxPQUFNLGVBQWUsaUJBQWlCLFdBQVcsZUFBZSxNQUFNO0FBQ3pFLHlDQUEyQixZQUFZO0FBQ3ZDLDJCQUFhO0FBQUEsbUJBQ1I7QUFDTCxpREFBbUMsYUFBYTtBQUFBO0FBQUE7QUFBQTtBQUt0RCxvREFBNEMsYUFBYSxPQUFNO0FBQzdELGlCQUFPLGVBQWUsTUFBTTtBQUMxQixnQkFBSSxRQUFRO0FBRVosZ0JBQUssT0FBTSxRQUFRLGFBQWEsU0FBUztBQUN2Qyw4QkFBZ0I7QUFFaEIsa0JBQUk7QUFDRiwwQ0FBMEIsT0FBTTtBQUFBLHVCQUN6QixRQUFQO0FBQ0EseUNBQXlCO0FBQ3pCLHdDQUF3QixPQUFPLE1BQU0sUUFBUTtBQUFBO0FBRy9DO0FBQUE7QUFHRixnQkFBSSxVQUFVLGFBQWE7QUFDekIsMkJBQWE7QUFDYjtBQUFBO0FBR0YsZ0JBQUksVUFBVSxNQUFNO0FBRXBCLGdCQUFJLFlBQVksTUFBTTtBQUNwQix5Q0FBMkIsU0FBUyxNQUFNO0FBQzFDLDJCQUFhO0FBQ2I7QUFBQTtBQUdGLHlCQUFhLE1BQU07QUFBQTtBQUFBO0FBSXZCLDJDQUFtQyxjQUFjLGNBQWM7QUFDN0Qsa0JBQVEsYUFBYTtBQUFBLGlCQUNkO0FBQUEsaUJBQ0E7QUFBQSxpQkFDQSxxQkFDSDtBQUNFLGtCQUFLLGFBQWEsT0FBTyxhQUFhO0FBQ3BDO0FBRUEsb0JBQUk7QUFDRiw0Q0FBMEIsWUFBWSxXQUFXO0FBQUEsMEJBQ2pEO0FBQ0EsOENBQTRCO0FBQUE7QUFBQSxxQkFFekI7QUFDTCwwQ0FBMEIsWUFBWSxXQUFXO0FBQUE7QUFHbkQ7QUFBQTtBQUFBO0FBQUE7QUFLUiw2Q0FBcUMsWUFBWTtBQUMvQyx1QkFBYTtBQUNiO0FBQUE7QUFHRixxREFBNkM7QUFDM0MsaUJBQU8sZUFBZSxNQUFNO0FBQzFCLGdCQUFJLFFBQVE7QUFDWixnQkFBSSxRQUFRLE1BQU07QUFFbEIsZ0JBQUssWUFBVyxRQUFRLG1CQUFtQixTQUFTO0FBQ2xELGtCQUFJLFlBQVksTUFBTTtBQUV0QixrQkFBSSxjQUFjLE1BQU07QUFDdEIseUJBQVMsSUFBSSxHQUFHLElBQUksVUFBVSxRQUFRLEtBQUs7QUFDekMsc0JBQUksZ0JBQWdCLFVBQVU7QUFDOUIsK0JBQWE7QUFDYix1RUFBcUQsZUFBZTtBQUFBO0FBR3RFO0FBWUUsc0JBQUksZ0JBQWdCLE1BQU07QUFFMUIsc0JBQUksa0JBQWtCLE1BQU07QUFDMUIsd0JBQUksZ0JBQWdCLGNBQWM7QUFFbEMsd0JBQUksa0JBQWtCLE1BQU07QUFDMUIsb0NBQWMsUUFBUTtBQUV0Qix5QkFBRztBQUNELDRCQUFJLGtCQUFrQixjQUFjO0FBQ3BDLHNDQUFjLFVBQVU7QUFDeEIsd0NBQWdCO0FBQUEsK0JBQ1Qsa0JBQWtCO0FBQUE7QUFBQTtBQUFBO0FBS2pDLDZCQUFhO0FBQUE7QUFBQTtBQUlqQixnQkFBSyxPQUFNLGVBQWUsaUJBQWlCLFdBQVcsVUFBVSxNQUFNO0FBQ3BFLHlDQUEyQixPQUFPO0FBQ2xDLDJCQUFhO0FBQUEsbUJBQ1I7QUFDTDtBQUFBO0FBQUE7QUFBQTtBQUtOLHdEQUFnRDtBQUM5QyxpQkFBTyxlQUFlLE1BQU07QUFDMUIsZ0JBQUksUUFBUTtBQUVaLGdCQUFLLE9BQU0sUUFBUSxhQUFhLFNBQVM7QUFDdkMsOEJBQWdCO0FBQ2hCLDBDQUE0QjtBQUM1QjtBQUFBO0FBR0YsZ0JBQUksVUFBVSxNQUFNO0FBRXBCLGdCQUFJLFlBQVksTUFBTTtBQUNwQix5Q0FBMkIsU0FBUyxNQUFNO0FBQzFDLDJCQUFhO0FBQ2I7QUFBQTtBQUdGLHlCQUFhLE1BQU07QUFBQTtBQUFBO0FBSXZCLDZDQUFxQyxjQUFjO0FBQ2pELGtCQUFRLGFBQWE7QUFBQSxpQkFDZDtBQUFBLGlCQUNBO0FBQUEsaUJBQ0EscUJBQ0g7QUFDRSxrQkFBSyxhQUFhLE9BQU8sYUFBYTtBQUNwQztBQUNBLDRDQUE0QixZQUFZLFdBQVcsY0FBYyxhQUFhO0FBQzlFLDRDQUE0QjtBQUFBLHFCQUN2QjtBQUNMLDRDQUE0QixZQUFZLFdBQVcsY0FBYyxhQUFhO0FBQUE7QUFHaEY7QUFBQTtBQUFBO0FBQUE7QUFLUixzRUFBOEQsb0JBQW9CLHdCQUF3QjtBQUN4RyxpQkFBTyxlQUFlLE1BQU07QUFDMUIsZ0JBQUksUUFBUTtBQUdaLDRCQUFnQjtBQUNoQix5REFBNkMsT0FBTztBQUNwRDtBQUNBLGdCQUFJLFFBQVEsTUFBTTtBQUdsQixnQkFBSSxVQUFVLE1BQU07QUFDbEIseUNBQTJCLE9BQU87QUFDbEMsMkJBQWE7QUFBQSxtQkFDUjtBQUNMLHNFQUF3RDtBQUFBO0FBQUE7QUFBQTtBQUs5RCx5RUFBaUUsb0JBQW9CO0FBQ25GLGlCQUFPLGVBQWUsTUFBTTtBQUMxQixnQkFBSSxRQUFRO0FBQ1osZ0JBQUksVUFBVSxNQUFNO0FBQ3BCLGdCQUFJLGNBQWMsTUFBTTtBQUV4QjtBQUlFLHNDQUF3QjtBQUV4QixrQkFBSSxVQUFVLG9CQUFvQjtBQUNoQyw2QkFBYTtBQUNiO0FBQUE7QUFBQTtBQUlKLGdCQUFJLFlBQVksTUFBTTtBQUNwQix5Q0FBMkIsU0FBUztBQUNwQywyQkFBYTtBQUNiO0FBQUE7QUFHRix5QkFBYTtBQUFBO0FBQUE7QUFJakIsOERBQXNELFVBQVMsd0JBQXdCO0FBQ3JGLGtCQUFRLFNBQVE7QUFBQSxpQkFDVDtBQUFBLGlCQUNBO0FBQUEsaUJBQ0EscUJBQ0g7QUFDRSxrQkFBSyxTQUFRLE9BQU8sYUFBYTtBQUMvQjtBQUNBLDRDQUE0QixXQUFXLFVBQVM7QUFDaEQsNENBQTRCO0FBQUEscUJBQ3ZCO0FBQ0wsNENBQTRCLFdBQVcsVUFBUztBQUFBO0FBR2xEO0FBQUE7QUFBQTtBQUFBO0FBS1IsWUFBSSw0QkFBNEI7QUFFaEMsNENBQW9DLE9BQU8scUJBQXFCO0FBQzlEO0FBQ0UsZ0JBQUksQ0FBQyw2QkFBNkIsTUFBTSxXQUFXLHFCQUFxQjtBQUN0RSwwQ0FBNEI7QUFFNUIsb0JBQU07QUFBQTtBQUFBO0FBTVYsZ0JBQU0sU0FBUztBQUFBO0FBSWpCLDhDQUFzQyxPQUFPO0FBQzNDO0FBR0Usb0JBQVEsTUFBTTtBQUFBLG1CQUNQO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQSxxQkFDSDtBQUNFLG9CQUFJO0FBQ0YsNENBQTBCLFNBQVMsV0FBVztBQUFBLHlCQUN2QyxRQUFQO0FBQ0EsMkNBQXlCO0FBQ3pCLDBDQUF3QixPQUFPLE1BQU0sUUFBUTtBQUFBO0FBRy9DO0FBQUE7QUFBQSxtQkFHQyxnQkFDSDtBQUNFLG9CQUFJLFdBQVcsTUFBTTtBQUVyQixvQkFBSTtBQUNGLDJCQUFTO0FBQUEseUJBQ0YsUUFBUDtBQUNBLDJDQUF5QjtBQUN6QiwwQ0FBd0IsT0FBTyxNQUFNLFFBQVE7QUFBQTtBQUcvQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTVYsK0NBQXVDLE9BQU87QUFDNUM7QUFHRSxvQkFBUSxNQUFNO0FBQUEsbUJBQ1A7QUFBQSxtQkFDQTtBQUFBLG1CQUNBLHFCQUNIO0FBQ0Usb0JBQUk7QUFDRiw0Q0FBMEIsWUFBWSxXQUFXO0FBQUEseUJBQzFDLFFBQVA7QUFDQSwyQ0FBeUI7QUFDekIsMENBQXdCLE9BQU8sTUFBTSxRQUFRO0FBQUE7QUFHL0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1WLGdEQUF3QyxPQUFPO0FBQzdDO0FBR0Usb0JBQVEsTUFBTTtBQUFBLG1CQUNQO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQSxxQkFDSDtBQUNFLG9CQUFJO0FBQ0YsOENBQTRCLFNBQVMsV0FBVyxPQUFPLE1BQU07QUFBQSx5QkFDdEQsUUFBUDtBQUNBLDJDQUF5QjtBQUN6QiwwQ0FBd0IsT0FBTyxNQUFNLFFBQVE7QUFBQTtBQUcvQztBQUFBO0FBQUEsbUJBR0MsZ0JBQ0g7QUFDRSxvQkFBSSxXQUFXLE1BQU07QUFFckIsb0JBQUksT0FBTyxTQUFTLHlCQUF5QixZQUFZO0FBQ3ZELGlEQUErQixPQUFPLE1BQU0sUUFBUTtBQUFBO0FBR3REO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNVixpREFBeUMsT0FBTztBQUM5QztBQUdFLG9CQUFRLE1BQU07QUFBQSxtQkFDUDtBQUFBLG1CQUNBO0FBQUEsbUJBQ0EscUJBQ0g7QUFDRSxvQkFBSTtBQUNGLDhDQUE0QixZQUFZLFdBQVcsT0FBTyxNQUFNO0FBQUEseUJBQ3pELFFBQVA7QUFDQSwyQ0FBeUI7QUFDekIsMENBQXdCLE9BQU8sTUFBTSxRQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU96RCxZQUFJLGlCQUFpQjtBQUNyQixZQUFJLHdCQUF3QjtBQUM1QixZQUFJLFlBQVk7QUFDaEIsWUFBSSxpQkFBaUI7QUFDckIsWUFBSSxZQUFZO0FBRWhCLFlBQUksT0FBTyxXQUFXLGNBQWMsT0FBTyxLQUFLO0FBQzlDLGNBQUksWUFBWSxPQUFPO0FBQ3ZCLDJCQUFpQixVQUFVO0FBQzNCLGtDQUF3QixVQUFVO0FBQ2xDLHNCQUFZLFVBQVU7QUFDdEIsMkJBQWlCLFVBQVU7QUFDM0Isc0JBQVksVUFBVTtBQUFBO0FBRXhCLFlBQUksY0FBYztBQUNsQixrQ0FBMEI7QUFDeEI7QUFDRSx3QkFBWSxRQUFRLFNBQVUsWUFBWTtBQUN4QyxxQkFBTztBQUFBO0FBQUE7QUFBQTtBQUtiLFlBQUksdUJBQXVCLHFCQUFxQjtBQUNoRCx3Q0FBZ0MsT0FBTztBQUNyQztBQUtFLGdCQUFJLDhCQUNKLE9BQU8sNkJBQTZCLGNBQWMsMkJBQTJCO0FBRTdFLGdCQUFJLGdCQUFnQixPQUFPLFNBQVM7QUFDcEMsbUJBQVEsaUJBQWlCLGdDQUFnQztBQUFBO0FBQUE7QUFHN0QsOENBQXNDO0FBQ3BDO0FBQ0UsZ0JBQUksOEJBQ0osT0FBTyw2QkFBNkIsY0FBYywyQkFBMkI7QUFFN0UsZ0JBQUksQ0FBQywrQkFBK0IscUJBQXFCLFlBQVksTUFBTTtBQUV6RSxvQkFBTTtBQUFBO0FBR1IsbUJBQU87QUFBQTtBQUFBO0FBSVgsWUFBSSxPQUFPLEtBQUs7QUFDaEIsWUFBSSwyQkFBMkIscUJBQXFCLHdCQUNoRCxzQkFBc0IscUJBQXFCLG1CQUMzQyw0QkFBNEIscUJBQXFCLHlCQUNqRCx5QkFBeUIscUJBQXFCO0FBQ2xELFlBQUksWUFFSjtBQUNBLFlBQUksaUJBRUo7QUFDQSxZQUFJLGdCQUVKO0FBQ0EsWUFBSSxnQkFFSjtBQUNBLFlBQUksaUJBQWlCO0FBQ3JCLFlBQUksbUJBQW1CO0FBQ3ZCLFlBQUksY0FBYztBQUNsQixZQUFJLGdCQUFnQjtBQUNwQixZQUFJLHlCQUF5QjtBQUM3QixZQUFJLGdCQUFnQjtBQUNwQixZQUFJLHFCQUFxQjtBQUV6QixZQUFJLG1CQUFtQjtBQUV2QixZQUFJLHFCQUFxQjtBQUV6QixZQUFJLGlCQUFpQjtBQUVyQixZQUFJLGdDQUFnQztBQVNwQyxZQUFJLHFCQUFxQjtBQUN6QixZQUFJLDJCQUEyQixhQUFhO0FBRTVDLFlBQUksK0JBQStCO0FBRW5DLFlBQUksK0JBQStCO0FBS25DLFlBQUksa0NBQWtDO0FBR3RDLFlBQUksaUNBQWlDO0FBRXJDLFlBQUksNENBQTRDO0FBRWhELFlBQUksZ0NBQWdDO0FBRXBDLFlBQUkscUNBQXFDO0FBR3pDLFlBQUksc0NBQXNDO0FBRzFDLFlBQUksK0JBQStCO0FBQ25DLFlBQUksdUJBQXVCO0FBRzNCLFlBQUkscUNBQXFDO0FBR3pDLFlBQUksb0JBQW9CO0FBRXhCLG9DQUE0QjtBQUMxQiwrQ0FBcUMsUUFBUTtBQUFBO0FBRy9DLHVDQUErQjtBQUM3QixpQkFBTztBQUFBO0FBRVQsWUFBSSxtQkFBbUI7QUFDdkIsWUFBSSxxQkFBcUI7QUFDekIsWUFBSSx5Q0FBeUM7QUFDN0MsWUFBSSw2QkFBNkI7QUFDakMsWUFBSSxnQ0FBZ0M7QUFDcEMsWUFBSSw2QkFBNkI7QUFDakMsWUFBSSxnQ0FBZ0M7QUFFcEMsWUFBSSxzQkFBc0I7QUFDMUIsWUFBSSxvQkFBb0I7QUFDeEIsWUFBSSx3QkFBd0I7QUFDNUIsWUFBSSw4QkFBOEI7QUFDbEMsWUFBSSwyQkFBMkI7QUFJL0IsWUFBSSxtQkFBbUI7QUFDdkIsWUFBSSw2QkFBNkI7QUFDakMseUNBQWlDO0FBQy9CLGlCQUFPO0FBQUE7QUFFVCxvQ0FBNEI7QUFDMUIsY0FBSyxvQkFBb0IsaUJBQWdCLG9CQUFvQixXQUFXO0FBRXRFLG1CQUFPO0FBQUE7QUFJVCxjQUFJLHFCQUFxQixhQUFhO0FBRXBDLG1CQUFPO0FBQUE7QUFJVCw2QkFBbUI7QUFDbkIsaUJBQU87QUFBQTtBQUVULG1DQUEyQixPQUFPO0FBRWhDLGNBQUksT0FBTyxNQUFNO0FBRWpCLGNBQUssUUFBTyxvQkFBb0IsUUFBUTtBQUN0QyxtQkFBTztBQUFBLHFCQUNJLG9CQUFtQixtQkFBbUIsYUFBYSxrQ0FBa0MsU0FBUztBQVV6RyxtQkFBTyxrQkFBa0I7QUFBQTtBQUczQixjQUFJLGVBQWUsK0JBQStCO0FBRWxELGNBQUksY0FBYztBQUNoQixnQkFBSywwQkFBMEIsZUFBZSxNQUFNO0FBQ2xELGtCQUFJLGFBQWEsMEJBQTBCO0FBRTNDLGtCQUFJLENBQUMsV0FBVyxnQkFBZ0I7QUFDOUIsMkJBQVcsaUJBQWlCLElBQUk7QUFBQTtBQUdsQyx5QkFBVyxlQUFlLElBQUk7QUFBQTtBQVVoQyxnQkFBSSwrQkFBK0IsUUFBUTtBQUV6QywyQ0FBNkI7QUFBQTtBQUcvQixtQkFBTztBQUFBO0FBU1QsY0FBSSxhQUFhO0FBRWpCLGNBQUksZUFBZSxRQUFRO0FBQ3pCLG1CQUFPO0FBQUE7QUFTVCxjQUFJLFlBQVk7QUFDaEIsaUJBQU87QUFBQTtBQUdULGtDQUEwQixPQUFPO0FBSy9CLGNBQUksT0FBTyxNQUFNO0FBRWpCLGNBQUssUUFBTyxvQkFBb0IsUUFBUTtBQUN0QyxtQkFBTztBQUFBO0FBR1QsaUJBQU87QUFBQTtBQUdULHVDQUErQixPQUFPLE1BQU0sV0FBVztBQUNyRDtBQUNBLGNBQUksUUFBTyw4QkFBOEIsT0FBTztBQUVoRCxjQUFJLFVBQVMsTUFBTTtBQUNqQixtQkFBTztBQUFBO0FBSVQsMEJBQWdCLE9BQU0sTUFBTTtBQUU1QixjQUFLLG9CQUFtQixtQkFBbUIsV0FBVyxVQUFTLG9CQUFvQjtBQU1qRiw2Q0FBaUM7QUFBQSxpQkFDNUI7QUFHTDtBQUNFLGtCQUFJLG1CQUFtQjtBQUNyQixtQ0FBbUIsT0FBTSxPQUFPO0FBQUE7QUFBQTtBQUlwQyw4Q0FBa0M7QUFFbEMsZ0JBQUksVUFBUyxvQkFBb0I7QUFPL0Isa0JBQU0sb0JBQW1CLG1CQUFtQixXQUFXO0FBQ3JELDREQUE0QyxXQUFXLDJDQUEyQztBQUFBO0FBR3BHLGtCQUFJLGlDQUFpQyx3QkFBd0I7QUFPM0Qsb0NBQW9CLE9BQU07QUFBQTtBQUFBO0FBSTlCLGtDQUFzQixPQUFNO0FBRTVCLGdCQUFJLFNBQVMsWUFBWSxxQkFBcUIsYUFBYyxPQUFNLE9BQU8sb0JBQW9CLFVBQzdGLENBQUcsdUJBQXVCLGtCQUFtQjtBQU0zQztBQUNBO0FBQUE7QUFBQTtBQUlKLGlCQUFPO0FBQUE7QUFFVCxnREFBd0MsT0FBTSxNQUFNLFdBQVc7QUFVN0QsY0FBSSxXQUFVLE1BQUs7QUFDbkIsbUJBQVEsUUFBUTtBQUNoQiwwQkFBZ0IsT0FBTSxNQUFNO0FBQzVCLGdDQUFzQixPQUFNO0FBQUE7QUFNOUIsK0NBQXVDLGFBQWEsTUFBTTtBQUV4RCxzQkFBWSxRQUFRLFdBQVcsWUFBWSxPQUFPO0FBQ2xELGNBQUksWUFBWSxZQUFZO0FBRTVCLGNBQUksY0FBYyxNQUFNO0FBQ3RCLHNCQUFVLFFBQVEsV0FBVyxVQUFVLE9BQU87QUFBQTtBQUdoRDtBQUNFLGdCQUFJLGNBQWMsUUFBUyxhQUFZLFFBQVMsYUFBWSxnQkFBZ0IsU0FBUztBQUNuRix1REFBeUM7QUFBQTtBQUFBO0FBSzdDLGNBQUksT0FBTztBQUNYLGNBQUksU0FBUyxZQUFZO0FBRXpCLGlCQUFPLFdBQVcsTUFBTTtBQUN0QixtQkFBTyxhQUFhLFdBQVcsT0FBTyxZQUFZO0FBQ2xELHdCQUFZLE9BQU87QUFFbkIsZ0JBQUksY0FBYyxNQUFNO0FBQ3RCLHdCQUFVLGFBQWEsV0FBVyxVQUFVLFlBQVk7QUFBQSxtQkFDbkQ7QUFDTDtBQUNFLG9CQUFLLFFBQU8sUUFBUyxhQUFZLGdCQUFnQixTQUFTO0FBQ3hELDJEQUF5QztBQUFBO0FBQUE7QUFBQTtBQUsvQyxtQkFBTztBQUNQLHFCQUFTLE9BQU87QUFBQTtBQUdsQixjQUFJLEtBQUssUUFBUSxVQUFVO0FBQ3pCLGdCQUFJLFFBQU8sS0FBSztBQUNoQixtQkFBTztBQUFBLGlCQUNGO0FBQ0wsbUJBQU87QUFBQTtBQUFBO0FBSVgscUNBQTZCLE9BQU8sTUFBTTtBQUN4QyxpQkFHRSx1QkFBdUIsUUFBUyxPQUFNLE9BQU8sb0JBQW9CLFVBSS9ELG9CQUFtQixtQkFBbUI7QUFBQTtBQVE1Qyx1Q0FBK0IsT0FBTSxhQUFhO0FBQ2hELGNBQUksdUJBQXVCLE1BQUs7QUFHaEMsb0NBQTBCLE9BQU07QUFFaEMsY0FBSSxZQUFZLGFBQWEsT0FBTSxVQUFTLHFCQUFxQixnQ0FBZ0M7QUFFakcsY0FBSSxjQUFjLFNBQVM7QUFFekIsZ0JBQUkseUJBQXlCLE1BQU07QUFDakMsK0JBQWlCO0FBQUE7QUFHbkIsa0JBQUssZUFBZTtBQUNwQixrQkFBSyxtQkFBbUI7QUFDeEI7QUFBQTtBQUlGLGNBQUksc0JBQXNCLHVCQUF1QjtBQUVqRCxjQUFJLDJCQUEyQixNQUFLO0FBRXBDLGNBQUksNkJBQTZCLHVCQUdqQyxDQUFHLHdCQUF1QixZQUFZLFFBQVEseUJBQXlCLHNCQUFzQjtBQUMzRjtBQUlFLGtCQUFJLHdCQUF3QixRQUFRLDZCQUE2QixVQUFVO0FBQ3pFLHNCQUFNO0FBQUE7QUFBQTtBQUtWO0FBQUE7QUFHRixjQUFJLHdCQUF3QixNQUFNO0FBRWhDLDZCQUFpQjtBQUFBO0FBSW5CLGNBQUk7QUFFSixjQUFJLHdCQUF3QixVQUFVO0FBR3BDLGdCQUFJLE1BQUssUUFBUSxZQUFZO0FBQzNCLGtCQUFLLHVCQUF1QixxQkFBcUIsTUFBTTtBQUNyRCx1Q0FBdUIsMEJBQTBCO0FBQUE7QUFHbkQseUNBQTJCLHNCQUFzQixLQUFLLE1BQU07QUFBQSxtQkFDdkQ7QUFDTCxtQ0FBcUIsc0JBQXNCLEtBQUssTUFBTTtBQUFBO0FBR3hEO0FBRUUsa0JBQUssdUJBQXVCLFlBQVksTUFBTTtBQUk1Qyx1Q0FBdUIsUUFBUSxLQUFLO0FBQUEscUJBQy9CO0FBQ0wsa0NBQWtCLFdBQVk7QUFLNUIsc0JBQUkscUJBQXFCLFdBQVc7QUFHbEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1SLDhCQUFrQjtBQUFBLGlCQUNiO0FBQ0wsZ0JBQUk7QUFFSixvQkFBUSxxQkFBcUI7QUFBQSxtQkFDdEI7QUFDSCx5Q0FBeUI7QUFDekI7QUFBQSxtQkFFRztBQUNILHlDQUF5QjtBQUN6QjtBQUFBLG1CQUVHO0FBQ0gseUNBQXlCO0FBQ3pCO0FBQUEsbUJBRUc7QUFDSCx5Q0FBeUI7QUFDekI7QUFBQTtBQUdBLHlDQUF5QjtBQUN6QjtBQUFBO0FBR0osOEJBQWtCLG1CQUFtQix3QkFBd0IsNEJBQTRCLEtBQUssTUFBTTtBQUFBO0FBR3RHLGdCQUFLLG1CQUFtQjtBQUN4QixnQkFBSyxlQUFlO0FBQUE7QUFLdEIsNkNBQXFDLE9BQU0sWUFBWTtBQUNyRDtBQUNFO0FBQUE7QUFLRiw2QkFBbUI7QUFDbkIsdUNBQTZCO0FBRTdCLGNBQUssb0JBQW9CLGlCQUFnQixvQkFBb0IsV0FBVztBQUN0RSxrQkFBTSxJQUFJLE1BQU07QUFBQTtBQUtsQixjQUFJLHVCQUF1QixNQUFLO0FBQ2hDLGNBQUkseUJBQXlCO0FBRTdCLGNBQUksd0JBQXdCO0FBRzFCLGdCQUFJLE1BQUssaUJBQWlCLHNCQUFzQjtBQUk5QyxxQkFBTztBQUFBO0FBQUE7QUFNWCxjQUFJLFFBQVEsYUFBYSxPQUFNLFVBQVMscUJBQXFCLGdDQUFnQztBQUU3RixjQUFJLFVBQVUsU0FBUztBQUVyQixtQkFBTztBQUFBO0FBU1QsY0FBSSxrQkFBa0IsQ0FBQyxxQkFBcUIsT0FBTSxVQUFVLENBQUMsb0JBQW9CLE9BQU0sVUFBWSxDQUFDO0FBQ3BHLGNBQUksYUFBYSxrQkFBa0IscUJBQXFCLE9BQU0sU0FBUyxlQUFlLE9BQU07QUFFNUYsY0FBSSxlQUFlLGdCQUFnQjtBQUNqQyxnQkFBSSxlQUFlLGFBQWE7QUFLOUIsa0JBQUksa0JBQWtCLG9DQUFvQztBQUUxRCxrQkFBSSxvQkFBb0IsU0FBUztBQUMvQix3QkFBUTtBQUNSLDZCQUFhLDJCQUEyQixPQUFNO0FBQUE7QUFBQTtBQUlsRCxnQkFBSSxlQUFlLGtCQUFrQjtBQUNuQyxrQkFBSSxhQUFhO0FBQ2pCLGdDQUFrQixPQUFNO0FBQ3hCLGtDQUFvQixPQUFNO0FBQzFCLG9DQUFzQixPQUFNO0FBQzVCLG9CQUFNO0FBQUE7QUFHUixnQkFBSSxlQUFlLG9CQUFvQjtBQVFyQyxrQ0FBb0IsT0FBTTtBQUFBLG1CQUNyQjtBQU9MLGtCQUFJLHNCQUFzQixDQUFDLHFCQUFxQixPQUFNO0FBQ3RELGtCQUFJLGVBQWUsTUFBSyxRQUFRO0FBRWhDLGtCQUFJLHVCQUF1QixDQUFDLHFDQUFxQyxlQUFlO0FBRzlFLDZCQUFhLGVBQWUsT0FBTTtBQUVsQyxvQkFBSSxlQUFlLGFBQWE7QUFDOUIsc0JBQUksbUJBQW1CLG9DQUFvQztBQUUzRCxzQkFBSSxxQkFBcUIsU0FBUztBQUNoQyw0QkFBUTtBQUNSLGlDQUFhLDJCQUEyQixPQUFNO0FBQUE7QUFBQTtBQUtsRCxvQkFBSSxlQUFlLGtCQUFrQjtBQUNuQyxzQkFBSSxjQUFjO0FBQ2xCLG9DQUFrQixPQUFNO0FBQ3hCLHNDQUFvQixPQUFNO0FBQzFCLHdDQUFzQixPQUFNO0FBQzVCLHdCQUFNO0FBQUE7QUFBQTtBQU1WLG9CQUFLLGVBQWU7QUFDcEIsb0JBQUssZ0JBQWdCO0FBQ3JCLHFDQUF1QixPQUFNLFlBQVk7QUFBQTtBQUFBO0FBSTdDLGdDQUFzQixPQUFNO0FBRTVCLGNBQUksTUFBSyxpQkFBaUIsc0JBQXNCO0FBRzlDLG1CQUFPLDRCQUE0QixLQUFLLE1BQU07QUFBQTtBQUdoRCxpQkFBTztBQUFBO0FBR1QsNENBQW9DLE9BQU0saUJBQWlCO0FBSXpELGNBQUkseUJBQXlCO0FBRTdCLGNBQUksaUJBQWlCLFFBQU87QUFZMUIsZ0JBQUkscUJBQXFCLGtCQUFrQixPQUFNO0FBQ2pELCtCQUFtQixTQUFTO0FBRTVCO0FBQ0Usc0NBQXdCLE1BQUs7QUFBQTtBQUFBO0FBSWpDLGNBQUksYUFBYSxlQUFlLE9BQU07QUFFdEMsY0FBSSxlQUFlLGFBQWE7QUFLOUIsZ0JBQUksMEJBQTBCO0FBQzlCLGtEQUFzQztBQUd0QyxnQkFBSSw0QkFBNEIsTUFBTTtBQUNwQyxxQ0FBdUI7QUFBQTtBQUFBO0FBSTNCLGlCQUFPO0FBQUE7QUFHVCx3Q0FBZ0MsUUFBUTtBQUN0QyxjQUFJLHdDQUF3QyxNQUFNO0FBQ2hELGtEQUFzQztBQUFBLGlCQUNqQztBQUNMLGdEQUFvQyxLQUFLLE1BQU0scUNBQXFDO0FBQUE7QUFBQTtBQUl4Rix3Q0FBZ0MsT0FBTSxZQUFZLE9BQU87QUFDdkQsa0JBQVE7QUFBQSxpQkFDRDtBQUFBLGlCQUNBLGtCQUNIO0FBQ0Usb0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFBQSxpQkFNZixhQUNIO0FBR0UseUJBQVcsT0FBTTtBQUNqQjtBQUFBO0FBQUEsaUJBR0MsZUFDSDtBQUNFLGtDQUFvQixPQUFNO0FBRzFCLGtCQUFJLG9CQUFvQixVQUN4QixDQUFDLGtDQUFrQztBQUdqQyxvQkFBSSxpQkFBaUIsK0JBQStCLHVCQUF1QjtBQUUzRSxvQkFBSSxpQkFBaUIsSUFBSTtBQUN2QixzQkFBSSxZQUFZLGFBQWEsT0FBTTtBQUVuQyxzQkFBSSxjQUFjLFNBQVM7QUFFekI7QUFBQTtBQUdGLHNCQUFJLGlCQUFpQixNQUFLO0FBRTFCLHNCQUFJLENBQUMsZ0JBQWdCLGdCQUFnQixRQUFRO0FBSzNDLHdCQUFJLFlBQVk7QUFDaEIsbUNBQWUsT0FBTTtBQUNyQjtBQUFBO0FBTUYsd0JBQUssZ0JBQWdCLGdCQUFnQixXQUFXLEtBQUssTUFBTSxPQUFNLHNDQUFzQztBQUN2RztBQUFBO0FBQUE7QUFLSix5QkFBVyxPQUFNO0FBQ2pCO0FBQUE7QUFBQSxpQkFHQyx3QkFDSDtBQUNFLGtDQUFvQixPQUFNO0FBRTFCLGtCQUFJLHdCQUF3QixRQUFRO0FBSWxDO0FBQUE7QUFHRixrQkFBSSxDQUFDLGtDQUFrQztBQU9yQyxvQkFBSSxzQkFBc0IsdUJBQXVCLE9BQU07QUFDdkQsb0JBQUksY0FBYztBQUNsQixvQkFBSSxnQkFBZ0IsUUFBUTtBQUU1QixvQkFBSSxrQkFBa0IsSUFBSSxpQkFBaUI7QUFHM0Msb0JBQUksa0JBQWtCLElBQUk7QUFHeEIsd0JBQUssZ0JBQWdCLGdCQUFnQixXQUFXLEtBQUssTUFBTSxPQUFNLHNDQUFzQztBQUN2RztBQUFBO0FBQUE7QUFLSix5QkFBVyxPQUFNO0FBQ2pCO0FBQUE7QUFBQSxpQkFHQyxlQUNIO0FBRUUseUJBQVcsT0FBTTtBQUNqQjtBQUFBO0FBQUEscUJBSUY7QUFDRSxvQkFBTSxJQUFJLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFLeEIsc0RBQThDLGNBQWM7QUFJMUQsY0FBSSxPQUFPO0FBRVgsaUJBQU8sTUFBTTtBQUNYLGdCQUFJLEtBQUssUUFBUSxrQkFBa0I7QUFDakMsa0JBQUksY0FBYyxLQUFLO0FBRXZCLGtCQUFJLGdCQUFnQixNQUFNO0FBQ3hCLG9CQUFJLFNBQVMsWUFBWTtBQUV6QixvQkFBSSxXQUFXLE1BQU07QUFDbkIsMkJBQVMsSUFBSSxHQUFHLElBQUksT0FBTyxRQUFRLEtBQUs7QUFDdEMsd0JBQUksUUFBUSxPQUFPO0FBQ25CLHdCQUFJLGNBQWMsTUFBTTtBQUN4Qix3QkFBSSxnQkFBZ0IsTUFBTTtBQUUxQix3QkFBSTtBQUNGLDBCQUFJLENBQUMsU0FBUyxlQUFlLGdCQUFnQjtBQUUzQywrQkFBTztBQUFBO0FBQUEsNkJBRUYsUUFBUDtBQUdBLDZCQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9qQixnQkFBSSxRQUFRLEtBQUs7QUFFakIsZ0JBQUksS0FBSyxlQUFlLG9CQUFvQixVQUFVLE1BQU07QUFDMUQsb0JBQU0sU0FBUztBQUNmLHFCQUFPO0FBQ1A7QUFBQTtBQUdGLGdCQUFJLFNBQVMsY0FBYztBQUN6QixxQkFBTztBQUFBO0FBR1QsbUJBQU8sS0FBSyxZQUFZLE1BQU07QUFDNUIsa0JBQUksS0FBSyxXQUFXLFFBQVEsS0FBSyxXQUFXLGNBQWM7QUFDeEQsdUJBQU87QUFBQTtBQUdULHFCQUFPLEtBQUs7QUFBQTtBQUdkLGlCQUFLLFFBQVEsU0FBUyxLQUFLO0FBQzNCLG1CQUFPLEtBQUs7QUFBQTtBQUtkLGlCQUFPO0FBQUE7QUFHVCxxQ0FBNkIsT0FBTSxnQkFBZ0I7QUFLakQsMkJBQWlCLFlBQVksZ0JBQWdCO0FBQzdDLDJCQUFpQixZQUFZLGdCQUFnQjtBQUM3Qyw0QkFBa0IsT0FBTTtBQUFBO0FBSzFCLHVDQUErQixPQUFNO0FBQ25DO0FBQ0U7QUFBQTtBQUdGLGNBQUssb0JBQW9CLGlCQUFnQixvQkFBb0IsV0FBVztBQUN0RSxrQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQjtBQUNBLGNBQUksUUFBUSxhQUFhLE9BQU07QUFFL0IsY0FBSSxDQUFDLGlCQUFpQixPQUFPLFdBQVc7QUFFdEMsa0NBQXNCLE9BQU07QUFDNUIsbUJBQU87QUFBQTtBQUdULGNBQUksYUFBYSxlQUFlLE9BQU07QUFFdEMsY0FBSSxNQUFLLFFBQVEsY0FBYyxlQUFlLGFBQWE7QUFLekQsZ0JBQUksa0JBQWtCLG9DQUFvQztBQUUxRCxnQkFBSSxvQkFBb0IsU0FBUztBQUMvQixzQkFBUTtBQUNSLDJCQUFhLDJCQUEyQixPQUFNO0FBQUE7QUFBQTtBQUlsRCxjQUFJLGVBQWUsa0JBQWtCO0FBQ25DLGdCQUFJLGFBQWE7QUFDakIsOEJBQWtCLE9BQU07QUFDeEIsZ0NBQW9CLE9BQU07QUFDMUIsa0NBQXNCLE9BQU07QUFDNUIsa0JBQU07QUFBQTtBQUdSLGNBQUksZUFBZSxvQkFBb0I7QUFDckMsa0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFLbEIsY0FBSSxlQUFlLE1BQUssUUFBUTtBQUNoQyxnQkFBSyxlQUFlO0FBQ3BCLGdCQUFLLGdCQUFnQjtBQUNyQixxQkFBVyxPQUFNO0FBR2pCLGdDQUFzQixPQUFNO0FBQzVCLGlCQUFPO0FBQUE7QUFHVCwyQkFBbUIsT0FBTSxPQUFPO0FBQzlCLGNBQUksVUFBVSxTQUFTO0FBQ3JCLDhCQUFrQixPQUFNLFdBQVcsT0FBTztBQUMxQyxrQ0FBc0IsT0FBTTtBQUU1QixnQkFBSyxvQkFBb0IsaUJBQWdCLG9CQUFvQixXQUFXO0FBQ3RFO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFJTixrQ0FBMEIsSUFBSSxHQUFHO0FBQy9CLGNBQUksdUJBQXVCO0FBQzNCLDhCQUFvQjtBQUVwQixjQUFJO0FBQ0YsbUJBQU8sR0FBRztBQUFBLG9CQUNWO0FBQ0EsK0JBQW1CO0FBR25CLGdCQUFJLHFCQUFxQixhQUN6QixDQUFHLHVCQUF1QixrQkFBbUI7QUFDM0M7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUlOLGlDQUF5QixJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUc7QUFDdkMsY0FBSSxtQkFBbUI7QUFDdkIsY0FBSSxpQkFBaUIsMEJBQTBCO0FBRS9DLGNBQUk7QUFDRixzQ0FBMEIsYUFBYTtBQUN2QyxxQ0FBeUI7QUFDekIsbUJBQU8sR0FBRyxHQUFHLEdBQUcsR0FBRztBQUFBLG9CQUNuQjtBQUNBLHFDQUF5QjtBQUN6QixzQ0FBMEIsYUFBYTtBQUV2QyxnQkFBSSxxQkFBcUIsV0FBVztBQUNsQztBQUFBO0FBQUE7QUFBQTtBQU9OLDJCQUFtQixJQUFJO0FBR3JCLGNBQUksa0NBQWtDLFFBQVEsOEJBQThCLFFBQVEsY0FBZSxvQkFBb0IsaUJBQWdCLG9CQUFvQixXQUFXO0FBQ3BLO0FBQUE7QUFHRixjQUFJLHVCQUF1QjtBQUMzQiw4QkFBb0I7QUFDcEIsY0FBSSxpQkFBaUIsMEJBQTBCO0FBQy9DLGNBQUksbUJBQW1CO0FBRXZCLGNBQUk7QUFDRixzQ0FBMEIsYUFBYTtBQUN2QyxxQ0FBeUI7QUFFekIsZ0JBQUksSUFBSTtBQUNOLHFCQUFPO0FBQUEsbUJBQ0Y7QUFDTCxxQkFBTztBQUFBO0FBQUEsb0JBRVQ7QUFDQSxxQ0FBeUI7QUFDekIsc0NBQTBCLGFBQWE7QUFDdkMsK0JBQW1CO0FBSW5CLGdCQUFLLG9CQUFvQixpQkFBZ0Isb0JBQW9CLFdBQVc7QUFDdEU7QUFBQTtBQUFBO0FBQUE7QUFJTixzQ0FBOEI7QUFHNUIsaUJBQVMsb0JBQW9CLGlCQUFnQixvQkFBb0I7QUFBQTtBQUVuRSxpQ0FBeUIsT0FBTyxPQUFPO0FBQ3JDLGVBQUssMEJBQTBCLG9CQUFvQjtBQUNuRCwrQkFBcUIsV0FBVyxvQkFBb0I7QUFDcEQsNENBQWtDLFdBQVcsaUNBQWlDO0FBQUE7QUFFaEYsZ0NBQXdCLE9BQU87QUFDN0IsK0JBQXFCLHlCQUF5QjtBQUM5QyxjQUFJLDBCQUEwQjtBQUFBO0FBR2hDLG1DQUEyQixPQUFNLE9BQU87QUFDdEMsZ0JBQUssZUFBZTtBQUNwQixnQkFBSyxnQkFBZ0I7QUFDckIsY0FBSSxnQkFBZ0IsTUFBSztBQUV6QixjQUFJLGtCQUFrQixXQUFXO0FBRy9CLGtCQUFLLGdCQUFnQjtBQUVyQiwwQkFBYztBQUFBO0FBR2hCLGNBQUksbUJBQW1CLE1BQU07QUFDM0IsZ0JBQUksa0JBQWtCLGVBQWU7QUFFckMsbUJBQU8sb0JBQW9CLE1BQU07QUFDL0Isa0JBQUksV0FBVSxnQkFBZ0I7QUFDOUIsb0NBQXNCLFVBQVM7QUFDL0IsZ0NBQWtCLGdCQUFnQjtBQUFBO0FBQUE7QUFJdEMsK0JBQXFCO0FBQ3JCLGNBQUkscUJBQXFCLHFCQUFxQixNQUFLLFNBQVM7QUFDNUQsMkJBQWlCO0FBQ2pCLDBDQUFnQyxxQkFBcUIsa0NBQWtDO0FBQ3ZGLHlDQUErQjtBQUMvQix5Q0FBK0I7QUFDL0IsMkNBQWlDO0FBQ2pDLHNEQUE0QztBQUM1QywwQ0FBZ0M7QUFDaEMsK0NBQXFDO0FBQ3JDLGdEQUFzQztBQUN0QztBQUVBO0FBQ0Usb0NBQXdCO0FBQUE7QUFHMUIsaUJBQU87QUFBQTtBQUdULDZCQUFxQixPQUFNLGFBQWE7QUFDdEMsYUFBRztBQUNELGdCQUFJLGNBQWM7QUFFbEIsZ0JBQUk7QUFFRjtBQUNBO0FBQ0E7QUFHQSxrQ0FBb0IsVUFBVTtBQUU5QixrQkFBSSxnQkFBZ0IsUUFBUSxZQUFZLFdBQVcsTUFBTTtBQUt2RCwrQ0FBK0I7QUFDL0IsK0NBQStCO0FBTy9CLGlDQUFpQjtBQUNqQjtBQUFBO0FBR0Ysa0JBQUksdUJBQXVCLFlBQVksT0FBTyxhQUFhO0FBSXpELHlEQUF5QyxhQUFhO0FBQUE7QUFHeEQsa0JBQUksMEJBQTBCO0FBQzVCO0FBRUEsb0JBQUksZ0JBQWdCLFFBQVEsT0FBTyxnQkFBZ0IsWUFBWSxPQUFPLFlBQVksU0FBUyxZQUFZO0FBQ3JHLHNCQUFJLFdBQVc7QUFDZix5Q0FBdUIsYUFBYSxVQUFVO0FBQUEsdUJBQ3pDO0FBQ0wsdUNBQXFCLGFBQWEsYUFBYTtBQUFBO0FBQUE7QUFJbkQsNkJBQWUsT0FBTSxZQUFZLFFBQVEsYUFBYSxhQUFhO0FBQ25FLGlDQUFtQjtBQUFBLHFCQUNaLHVCQUFQO0FBRUEsNEJBQWM7QUFFZCxrQkFBSSxtQkFBbUIsZUFBZSxnQkFBZ0IsTUFBTTtBQUcxRCw4QkFBYyxZQUFZO0FBQzFCLGlDQUFpQjtBQUFBLHFCQUNaO0FBQ0wsOEJBQWM7QUFBQTtBQUdoQjtBQUFBO0FBSUY7QUFBQSxtQkFDTztBQUFBO0FBR1gsa0NBQTBCO0FBQ3hCLGNBQUksaUJBQWlCLHlCQUF5QjtBQUM5QyxtQ0FBeUIsVUFBVTtBQUVuQyxjQUFJLG1CQUFtQixNQUFNO0FBSTNCLG1CQUFPO0FBQUEsaUJBQ0Y7QUFDTCxtQkFBTztBQUFBO0FBQUE7QUFJWCwrQkFBdUIsZ0JBQWdCO0FBQ3JDLG1DQUF5QixVQUFVO0FBQUE7QUFHckMsNENBQW9DO0FBQ2xDLHlDQUErQjtBQUFBO0FBRWpDLHdDQUFnQyxNQUFNO0FBQ3BDLDJDQUFpQyxXQUFXLE1BQU07QUFBQTtBQUVwRCxvQ0FBNEI7QUFDMUIsY0FBSSxpQ0FBaUMsZ0JBQWdCO0FBQ25ELDJDQUErQjtBQUFBO0FBQUE7QUFHbkMsbURBQTJDO0FBQ3pDLGNBQUksaUNBQWlDLGtCQUFrQixpQ0FBaUMsaUJBQWlCLGlDQUFpQyxhQUFhO0FBQ3JKLDJDQUErQjtBQUFBO0FBS2pDLGNBQUksdUJBQXVCLFFBQVMscUJBQW9CLG1DQUFtQyxvQkFBb0IsNkNBQTZDO0FBUTFKLGdDQUFvQixvQkFBb0I7QUFBQTtBQUFBO0FBRzVDLGdDQUF3QixRQUFPO0FBQzdCLGNBQUksaUNBQWlDLHdCQUF3QjtBQUMzRCwyQ0FBK0I7QUFBQTtBQUdqQyxjQUFJLHVDQUF1QyxNQUFNO0FBQy9DLGlEQUFxQyxDQUFDO0FBQUEsaUJBQ2pDO0FBQ0wsK0NBQW1DLEtBQUs7QUFBQTtBQUFBO0FBSzVDLDRDQUFvQztBQUdsQyxpQkFBTyxpQ0FBaUM7QUFBQTtBQUcxQyxnQ0FBd0IsT0FBTSxPQUFPO0FBQ25DLGNBQUksdUJBQXVCO0FBQzNCLDhCQUFvQjtBQUNwQixjQUFJLGlCQUFpQjtBQUdyQixjQUFJLHVCQUF1QixTQUFRLGtDQUFrQyxPQUFPO0FBQzFFO0FBQ0Usa0JBQUksbUJBQW1CO0FBQ3JCLG9CQUFJLG1CQUFtQixNQUFLO0FBRTVCLG9CQUFJLGlCQUFpQixPQUFPLEdBQUc7QUFDN0IseUNBQXVCLE9BQU07QUFDN0IsbUNBQWlCO0FBQUE7QUFPbkIsNENBQTRCLE9BQU07QUFBQTtBQUFBO0FBR3RDLDhCQUFrQixPQUFNO0FBQUE7QUFHMUI7QUFDRSw4QkFBa0I7QUFBQTtBQUdwQixhQUFHO0FBQ0QsZ0JBQUk7QUFDRjtBQUNBO0FBQUEscUJBQ08sYUFBUDtBQUNBLDBCQUFZLE9BQU07QUFBQTtBQUFBLG1CQUViO0FBRVQ7QUFDQSw2QkFBbUI7QUFDbkIsd0JBQWM7QUFFZCxjQUFJLG1CQUFtQixNQUFNO0FBRTNCLGtCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCO0FBQ0U7QUFBQTtBQUlGLCtCQUFxQjtBQUNyQiwwQ0FBZ0M7QUFDaEMsaUJBQU87QUFBQTtBQU1ULGdDQUF3QjtBQUV0QixpQkFBTyxtQkFBbUIsTUFBTTtBQUM5Qiw4QkFBa0I7QUFBQTtBQUFBO0FBSXRCLHNDQUE4QixPQUFNLE9BQU87QUFDekMsY0FBSSx1QkFBdUI7QUFDM0IsOEJBQW9CO0FBQ3BCLGNBQUksaUJBQWlCO0FBR3JCLGNBQUksdUJBQXVCLFNBQVEsa0NBQWtDLE9BQU87QUFDMUU7QUFDRSxrQkFBSSxtQkFBbUI7QUFDckIsb0JBQUksbUJBQW1CLE1BQUs7QUFFNUIsb0JBQUksaUJBQWlCLE9BQU8sR0FBRztBQUM3Qix5Q0FBdUIsT0FBTTtBQUM3QixtQ0FBaUI7QUFBQTtBQU9uQiw0Q0FBNEIsT0FBTTtBQUFBO0FBQUE7QUFHdEM7QUFDQSw4QkFBa0IsT0FBTTtBQUFBO0FBRzFCO0FBQ0UsOEJBQWtCO0FBQUE7QUFHcEIsYUFBRztBQUNELGdCQUFJO0FBQ0Y7QUFDQTtBQUFBLHFCQUNPLGFBQVA7QUFDQSwwQkFBWSxPQUFNO0FBQUE7QUFBQSxtQkFFYjtBQUVUO0FBQ0Esd0JBQWM7QUFDZCw2QkFBbUI7QUFHbkIsY0FBSSxtQkFBbUIsTUFBTTtBQUUzQjtBQUNFO0FBQUE7QUFHRixtQkFBTztBQUFBLGlCQUNGO0FBRUw7QUFDRTtBQUFBO0FBSUYsaUNBQXFCO0FBQ3JCLDRDQUFnQztBQUVoQyxtQkFBTztBQUFBO0FBQUE7QUFNWCxzQ0FBOEI7QUFFNUIsaUJBQU8sbUJBQW1CLFFBQVEsQ0FBQyxlQUFlO0FBQ2hELDhCQUFrQjtBQUFBO0FBQUE7QUFJdEIsbUNBQTJCLFlBQVk7QUFJckMsY0FBSSxXQUFVLFdBQVc7QUFDekIsMEJBQWdCO0FBQ2hCLGNBQUk7QUFFSixjQUFNLFlBQVcsT0FBTyxpQkFBaUIsUUFBUTtBQUMvQywrQkFBbUI7QUFDbkIsbUJBQU8sWUFBWSxVQUFTLFlBQVk7QUFDeEMscURBQXlDLFlBQVk7QUFBQSxpQkFDaEQ7QUFDTCxtQkFBTyxZQUFZLFVBQVMsWUFBWTtBQUFBO0FBRzFDO0FBQ0EscUJBQVcsZ0JBQWdCLFdBQVc7QUFFdEMsY0FBSSxTQUFTLE1BQU07QUFFakIsK0JBQW1CO0FBQUEsaUJBQ2Q7QUFDTCw2QkFBaUI7QUFBQTtBQUduQiw4QkFBb0IsVUFBVTtBQUFBO0FBR2hDLG9DQUE0QixZQUFZO0FBR3RDLGNBQUksZ0JBQWdCO0FBRXBCLGFBQUc7QUFJRCxnQkFBSSxXQUFVLGNBQWM7QUFDNUIsZ0JBQUksY0FBYyxjQUFjO0FBRWhDLGdCQUFLLGVBQWMsUUFBUSxnQkFBZ0IsU0FBUztBQUNsRCw4QkFBZ0I7QUFDaEIsa0JBQUksT0FBTztBQUVYLGtCQUFNLGVBQWMsT0FBTyxpQkFBaUIsUUFBUTtBQUNsRCx1QkFBTyxhQUFhLFVBQVMsZUFBZTtBQUFBLHFCQUN2QztBQUNMLG1DQUFtQjtBQUNuQix1QkFBTyxhQUFhLFVBQVMsZUFBZTtBQUU1Qyx5REFBeUMsZUFBZTtBQUFBO0FBRzFEO0FBRUEsa0JBQUksU0FBUyxNQUFNO0FBRWpCLGlDQUFpQjtBQUNqQjtBQUFBO0FBQUEsbUJBRUc7QUFJTCxrQkFBSSxRQUFRLFdBQVcsVUFBUztBQUdoQyxrQkFBSSxVQUFVLE1BQU07QUFLbEIsc0JBQU0sU0FBUztBQUNmLGlDQUFpQjtBQUNqQjtBQUFBO0FBR0Ysa0JBQU0sZUFBYyxPQUFPLGlCQUFpQixRQUFRO0FBRWxELHlEQUF5QyxlQUFlO0FBRXhELG9CQUFJLGlCQUFpQixjQUFjO0FBQ25DLG9CQUFJLFFBQVEsY0FBYztBQUUxQix1QkFBTyxVQUFVLE1BQU07QUFDckIsb0NBQWtCLE1BQU07QUFDeEIsMEJBQVEsTUFBTTtBQUFBO0FBR2hCLDhCQUFjLGlCQUFpQjtBQUFBO0FBR2pDLGtCQUFJLGdCQUFnQixNQUFNO0FBRXhCLDRCQUFZLFNBQVM7QUFDckIsNEJBQVksZUFBZTtBQUMzQiw0QkFBWSxZQUFZO0FBQUEscUJBQ25CO0FBRUwsK0NBQStCO0FBQy9CLGlDQUFpQjtBQUNqQjtBQUFBO0FBQUE7QUFJSixnQkFBSSxlQUFlLGNBQWM7QUFFakMsZ0JBQUksaUJBQWlCLE1BQU07QUFFekIsK0JBQWlCO0FBQ2pCO0FBQUE7QUFJRiw0QkFBZ0I7QUFFaEIsNkJBQWlCO0FBQUEsbUJBQ1Ysa0JBQWtCO0FBRzNCLGNBQUksaUNBQWlDLGdCQUFnQjtBQUNuRCwyQ0FBK0I7QUFBQTtBQUFBO0FBSW5DLDRCQUFvQixPQUFNLG1CQUFtQjtBQUczQyxjQUFJLDZCQUE2QjtBQUNqQyxjQUFJLGlCQUFpQiwwQkFBMEI7QUFFL0MsY0FBSTtBQUNGLHNDQUEwQixhQUFhO0FBQ3ZDLHFDQUF5QjtBQUN6QiwyQkFBZSxPQUFNLG1CQUFtQjtBQUFBLG9CQUN4QztBQUNBLHNDQUEwQixhQUFhO0FBQ3ZDLHFDQUF5QjtBQUFBO0FBRzNCLGlCQUFPO0FBQUE7QUFHVCxnQ0FBd0IsT0FBTSxtQkFBbUIscUJBQXFCO0FBQ3BFLGFBQUc7QUFPRDtBQUFBLG1CQUNPLGtDQUFrQztBQUUzQztBQUVBLGNBQUssb0JBQW9CLGlCQUFnQixvQkFBb0IsV0FBVztBQUN0RSxrQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQixjQUFJLGVBQWUsTUFBSztBQUN4QixjQUFJLFFBQVEsTUFBSztBQUVqQjtBQUNFLDhCQUFrQjtBQUFBO0FBR3BCLGNBQUksaUJBQWlCLE1BQU07QUFFekI7QUFDRTtBQUFBO0FBR0YsbUJBQU87QUFBQSxpQkFDRjtBQUNMO0FBQ0Usa0JBQUksVUFBVSxTQUFTO0FBQ3JCLHNCQUFNO0FBQUE7QUFBQTtBQUFBO0FBS1osZ0JBQUssZUFBZTtBQUNwQixnQkFBSyxnQkFBZ0I7QUFFckIsY0FBSSxpQkFBaUIsTUFBSyxTQUFTO0FBQ2pDLGtCQUFNLElBQUksTUFBTTtBQUFBO0FBS2xCLGdCQUFLLGVBQWU7QUFDcEIsZ0JBQUssbUJBQW1CO0FBR3hCLGNBQUksaUJBQWlCLFdBQVcsYUFBYSxPQUFPLGFBQWE7QUFDakUsMkJBQWlCLE9BQU07QUFFdkIsY0FBSSxVQUFTLG9CQUFvQjtBQUUvQixpQ0FBcUI7QUFDckIsNkJBQWlCO0FBQ2pCLDRDQUFnQztBQUFBO0FBUWxDLGNBQUssY0FBYSxlQUFlLGlCQUFpQixXQUFZLGNBQWEsUUFBUSxpQkFBaUIsU0FBUztBQUMzRyxnQkFBSSxDQUFDLDRCQUE0QjtBQUMvQiwyQ0FBNkI7QUFDN0IsaUNBQW1CLGdCQUFnQixXQUFZO0FBQzdDO0FBSUEsdUJBQU87QUFBQTtBQUFBO0FBQUE7QUFVYixjQUFJLG9CQUFxQixjQUFhLGVBQWdCLHNCQUFxQixlQUFlLGFBQWEsa0JBQWtCO0FBQ3pILGNBQUksZ0JBQWlCLGNBQWEsUUFBUyxzQkFBcUIsZUFBZSxhQUFhLGtCQUFrQjtBQUU5RyxjQUFJLHFCQUFxQixlQUFlO0FBQ3RDLGdCQUFJLGlCQUFpQiwwQkFBMEI7QUFDL0Msc0NBQTBCLGFBQWE7QUFDdkMsZ0JBQUksbUJBQW1CO0FBQ3ZCLHFDQUF5QjtBQUN6QixnQkFBSSx1QkFBdUI7QUFDM0IsZ0NBQW9CO0FBRXBCLGdDQUFvQixVQUFVO0FBTzlCLGdCQUFJLHFDQUFvQyw0QkFBNEIsT0FBTTtBQUUxRTtBQUdFO0FBQUE7QUFJRixrQ0FBc0IsT0FBTSxjQUFjO0FBRTFDLDZCQUFpQixNQUFLO0FBS3RCLGtCQUFLLFVBQVU7QUFFZjtBQUNFLHVDQUF5QjtBQUFBO0FBRzNCLGdDQUFvQixjQUFjLE9BQU07QUFFeEM7QUFDRTtBQUFBO0FBS0Y7QUFDQSwrQkFBbUI7QUFFbkIscUNBQXlCO0FBQ3pCLHNDQUEwQixhQUFhO0FBQUEsaUJBQ2xDO0FBRUwsa0JBQUssVUFBVTtBQUlmO0FBQ0U7QUFBQTtBQUFBO0FBSUosY0FBSSw0QkFBNEI7QUFFaEMsY0FBSSw0QkFBNEI7QUFHOUIseUNBQTZCO0FBQzdCLDRDQUFnQztBQUNoQyx5Q0FBNkI7QUFBQTtBQUkvQiwyQkFBaUIsTUFBSztBQVd0QixjQUFJLG1CQUFtQixTQUFTO0FBRzlCLHFEQUF5QztBQUFBO0FBRzNDO0FBQ0UsZ0JBQUksQ0FBQywyQkFBMkI7QUFDOUIsNkNBQStCLE1BQUssU0FBUztBQUFBO0FBQUE7QUFJakQsdUJBQWEsYUFBYSxXQUFXO0FBRXJDO0FBQ0UsZ0JBQUksbUJBQW1CO0FBQ3JCLG9CQUFLLGlCQUFpQjtBQUFBO0FBQUE7QUFJMUI7QUFDRTtBQUFBO0FBS0YsZ0NBQXNCLE9BQU07QUFFNUIsY0FBSSxzQkFBc0IsTUFBTTtBQUc5QixnQkFBSSxxQkFBcUIsTUFBSztBQUU5QixxQkFBUyxJQUFJLEdBQUcsSUFBSSxrQkFBa0IsUUFBUSxLQUFLO0FBQ2pELGtCQUFJLG1CQUFtQixrQkFBa0I7QUFDekMsaUNBQW1CO0FBQUE7QUFBQTtBQUl2QixjQUFJLGtCQUFrQjtBQUNwQiwrQkFBbUI7QUFDbkIsZ0JBQUksVUFBVTtBQUNkLGlDQUFxQjtBQUNyQixrQkFBTTtBQUFBO0FBV1IsY0FBSSxpQkFBaUIsNEJBQTRCLGFBQWEsTUFBSyxRQUFRLFlBQVk7QUFDckY7QUFBQTtBQUlGLDJCQUFpQixNQUFLO0FBRXRCLGNBQUksaUJBQWlCLGdCQUFnQixXQUFXO0FBQzlDO0FBQ0U7QUFBQTtBQUtGLGdCQUFJLFVBQVMsdUJBQXVCO0FBQ2xDO0FBQUEsbUJBQ0s7QUFDTCxrQ0FBb0I7QUFDcEIsc0NBQXdCO0FBQUE7QUFBQSxpQkFFckI7QUFDTCxnQ0FBb0I7QUFBQTtBQUl0QjtBQUVBO0FBQ0U7QUFBQTtBQUdGLGlCQUFPO0FBQUE7QUFHVCx1Q0FBK0I7QUFPN0IsY0FBSSxrQ0FBa0MsTUFBTTtBQUMxQyxnQkFBSSxpQkFBaUIscUJBQXFCO0FBQzFDLGdCQUFJLFdBQVcsbUJBQW1CLHNCQUFzQjtBQUN4RCxnQkFBSSxpQkFBaUIsMEJBQTBCO0FBQy9DLGdCQUFJLG1CQUFtQjtBQUV2QixnQkFBSTtBQUNGLHdDQUEwQixhQUFhO0FBQ3ZDLHVDQUF5QjtBQUN6QixxQkFBTztBQUFBLHNCQUNQO0FBQ0EsdUNBQXlCO0FBQ3pCLHdDQUEwQixhQUFhO0FBQUE7QUFBQTtBQUkzQyxpQkFBTztBQUFBO0FBRVQscURBQTZDLE9BQU87QUFDbEQ7QUFDRSwwQ0FBOEIsS0FBSztBQUVuQyxnQkFBSSxDQUFDLDRCQUE0QjtBQUMvQiwyQ0FBNkI7QUFDN0IsaUNBQW1CLGdCQUFnQixXQUFZO0FBQzdDO0FBQ0EsdUJBQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1mLDJDQUFtQztBQUNqQyxjQUFJLGtDQUFrQyxNQUFNO0FBQzFDLG1CQUFPO0FBQUE7QUFHVCxjQUFJLFFBQU87QUFDWCxjQUFJLFFBQVE7QUFDWiwwQ0FBZ0M7QUFJaEMsdUNBQTZCO0FBRTdCLGNBQUssb0JBQW9CLGlCQUFnQixvQkFBb0IsV0FBVztBQUN0RSxrQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQjtBQUNFLHNDQUEwQjtBQUFBO0FBRzVCLGNBQUksdUJBQXVCO0FBQzNCLDhCQUFvQjtBQUNwQixzQ0FBNEIsTUFBSztBQUNqQyxvQ0FBMEIsT0FBTSxNQUFLO0FBRXJDO0FBQ0UsZ0JBQUksa0JBQWtCO0FBQ3RCLDRDQUFnQztBQUVoQyxxQkFBUyxJQUFJLEdBQUcsSUFBSSxnQkFBZ0IsUUFBUSxLQUFLO0FBQy9DLGtCQUFJLFNBQVMsZ0JBQWdCO0FBQzdCLDJDQUE2QixPQUFNO0FBQUE7QUFBQTtBQUl2QztBQUNFO0FBQUE7QUFHRjtBQUNFLDJDQUErQixNQUFLLFNBQVM7QUFBQTtBQUcvQyw2QkFBbUI7QUFDbkI7QUFHQSxxQ0FBMkIsa0NBQWtDLE9BQU8sSUFBSSwyQkFBMkI7QUFFbkcsMkJBQWlCO0FBRWpCO0FBQ0UsZ0JBQUksWUFBWSxNQUFLLFFBQVE7QUFDN0Isc0JBQVUsaUJBQWlCO0FBQzNCLHNCQUFVLHdCQUF3QjtBQUFBO0FBR3BDLGlCQUFPO0FBQUE7QUFHVCxvREFBNEMsVUFBVTtBQUNwRCxpQkFBTywyQ0FBMkMsUUFBUSx1Q0FBdUMsSUFBSTtBQUFBO0FBRXZHLGlEQUF5QyxVQUFVO0FBQ2pELGNBQUksMkNBQTJDLE1BQU07QUFDbkQscURBQXlDLElBQUksSUFBSSxDQUFDO0FBQUEsaUJBQzdDO0FBQ0wsbURBQXVDLElBQUk7QUFBQTtBQUFBO0FBSS9DLDZDQUFxQyxRQUFPO0FBQzFDLGNBQUksQ0FBQyxrQkFBa0I7QUFDckIsK0JBQW1CO0FBQ25CLGlDQUFxQjtBQUFBO0FBQUE7QUFJekIsWUFBSSxrQkFBa0I7QUFFdEIsK0NBQXVDLFdBQVcsYUFBYSxRQUFPO0FBQ3BFLGNBQUksWUFBWSxvQkFBb0IsUUFBTztBQUMzQyxjQUFJLFNBQVMsc0JBQXNCLFdBQVcsV0FBVztBQUN6RCx3QkFBYyxXQUFXO0FBQ3pCLGNBQUksWUFBWTtBQUNoQixjQUFJLFFBQU8sOEJBQThCLFdBQVc7QUFFcEQsY0FBSSxVQUFTLE1BQU07QUFDakIsNEJBQWdCLE9BQU0sVUFBVTtBQUNoQyxrQ0FBc0IsT0FBTTtBQUFBO0FBQUE7QUFJaEMseUNBQWlDLGFBQWEsd0JBQXdCLFNBQVM7QUFDN0UsY0FBSSxZQUFZLFFBQVEsVUFBVTtBQUdoQywwQ0FBOEIsYUFBYSxhQUFhO0FBQ3hEO0FBQUE7QUFHRixjQUFJLFFBQVE7QUFFWjtBQUNFLG9CQUFRO0FBQUE7QUFHVixpQkFBTyxVQUFVLE1BQU07QUFDckIsZ0JBQUksTUFBTSxRQUFRLFVBQVU7QUFDMUIsNENBQThCLE9BQU8sYUFBYTtBQUNsRDtBQUFBLHVCQUNTLE1BQU0sUUFBUSxnQkFBZ0I7QUFDdkMsa0JBQUksT0FBTyxNQUFNO0FBQ2pCLGtCQUFJLFdBQVcsTUFBTTtBQUVyQixrQkFBSSxPQUFPLEtBQUssNkJBQTZCLGNBQWMsT0FBTyxTQUFTLHNCQUFzQixjQUFjLENBQUMsbUNBQW1DLFdBQVc7QUFDNUosb0JBQUksWUFBWSxvQkFBb0IsU0FBUztBQUM3QyxvQkFBSSxTQUFTLHVCQUF1QixPQUFPLFdBQVc7QUFDdEQsOEJBQWMsT0FBTztBQUNyQixvQkFBSSxZQUFZO0FBQ2hCLG9CQUFJLFFBQU8sOEJBQThCLE9BQU87QUFFaEQsb0JBQUksVUFBUyxNQUFNO0FBQ2pCLGtDQUFnQixPQUFNLFVBQVU7QUFDaEMsd0NBQXNCLE9BQU07QUFBQTtBQUc5QjtBQUFBO0FBQUE7QUFJSixvQkFBUSxNQUFNO0FBQUE7QUFHaEI7QUFNRSxrQkFBTSx3UkFBNFM7QUFBQTtBQUFBO0FBR3RULG1DQUEyQixPQUFNLFVBQVUsYUFBYTtBQUN0RCxjQUFJLFlBQVksTUFBSztBQUVyQixjQUFJLGNBQWMsTUFBTTtBQUd0QixzQkFBVSxPQUFPO0FBQUE7QUFHbkIsY0FBSSxZQUFZO0FBQ2hCLHlCQUFlLE9BQU07QUFDckIsdURBQTZDO0FBRTdDLGNBQUksdUJBQXVCLFNBQVEsZ0JBQWdCLCtCQUErQixjQUFjO0FBUTlGLGdCQUFJLGlDQUFpQywwQkFBMEIsaUNBQWlDLGlCQUFpQixvQkFBb0Isa0NBQWtDLFFBQVEsK0JBQStCLHNCQUFzQjtBQUVsTyxnQ0FBa0IsT0FBTTtBQUFBLG1CQUNuQjtBQUdMLDhDQUFnQyxXQUFXLCtCQUErQjtBQUFBO0FBQUE7QUFJOUUsZ0NBQXNCLE9BQU07QUFBQTtBQUc5Qix1Q0FBK0IsZUFBZSxXQUFXO0FBS3ZELGNBQUksY0FBYyxRQUFRO0FBR3hCLHdCQUFZLGlCQUFpQjtBQUFBO0FBSS9CLGNBQUksWUFBWTtBQUNoQixjQUFJLFFBQU8sOEJBQThCLGVBQWU7QUFFeEQsY0FBSSxVQUFTLE1BQU07QUFDakIsNEJBQWdCLE9BQU0sV0FBVztBQUNqQyxrQ0FBc0IsT0FBTTtBQUFBO0FBQUE7QUFJaEMsaURBQXlDLGVBQWU7QUFDdEQsY0FBSSxnQkFBZ0IsY0FBYztBQUNsQyxjQUFJLFlBQVk7QUFFaEIsY0FBSSxrQkFBa0IsTUFBTTtBQUMxQix3QkFBWSxjQUFjO0FBQUE7QUFHNUIsZ0NBQXNCLGVBQWU7QUFBQTtBQUV2QyxzQ0FBOEIsZUFBZSxVQUFVO0FBQ3JELGNBQUksWUFBWTtBQUVoQixjQUFJO0FBRUo7QUFDRSxvQkFBUSxjQUFjO0FBQUEsbUJBQ2Y7QUFDSCw2QkFBYSxjQUFjO0FBQzNCLG9CQUFJLGdCQUFnQixjQUFjO0FBRWxDLG9CQUFJLGtCQUFrQixNQUFNO0FBQzFCLDhCQUFZLGNBQWM7QUFBQTtBQUc1QjtBQUFBLG1CQUVHO0FBQ0gsNkJBQWEsY0FBYztBQUMzQjtBQUFBO0FBR0Esc0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFBQTtBQUl0QixjQUFJLGVBQWUsTUFBTTtBQUd2Qix1QkFBVyxPQUFPO0FBQUE7QUFHcEIsZ0NBQXNCLGVBQWU7QUFBQTtBQVd2QyxxQkFBYSxhQUFhO0FBQ3hCLGlCQUFPLGNBQWMsTUFBTSxNQUFNLGNBQWMsTUFBTSxNQUFNLGNBQWMsT0FBTyxPQUFPLGNBQWMsT0FBTyxPQUFPLGNBQWMsTUFBTyxNQUFPLGNBQWMsT0FBTyxPQUFPLEtBQUssY0FBYyxRQUFRO0FBQUE7QUFHeE0seUNBQWlDO0FBQy9CLGNBQUksb0JBQW9CLHFCQUFxQjtBQUMzQyxnQ0FBb0I7QUFDcEIsb0NBQXdCO0FBQ3hCLGtCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCO0FBQ0UsZ0JBQUksMkJBQTJCLDZCQUE2QjtBQUMxRCx5Q0FBMkI7QUFFM0Isb0JBQU07QUFBQTtBQUFBO0FBQUE7QUFLWiwyREFBbUQ7QUFDakQ7QUFDRSxvQ0FBd0I7QUFFeEI7QUFDRSxzQ0FBd0I7QUFBQTtBQUFBO0FBQUE7QUFLOUIsZ0RBQXdDLE9BQU8sbUJBQW1CO0FBQ2hFO0FBSUUsNEJBQWdCO0FBQ2hCLCtCQUFtQixPQUFPLGdCQUFnQjtBQUUxQyxnQkFBSSxtQkFBbUI7QUFDckIsaUNBQW1CLE9BQU8saUJBQWlCO0FBQUE7QUFHN0MsK0JBQW1CLE9BQU8sZ0JBQWdCO0FBRTFDLGdCQUFJLG1CQUFtQjtBQUNyQixpQ0FBbUIsT0FBTyxpQkFBaUI7QUFBQTtBQUc3QztBQUFBO0FBQUE7QUFJSixvQ0FBNEIsWUFBWSxZQUFZLGdCQUFnQjtBQUNsRTtBQUdFLGdCQUFJLFdBQVU7QUFDZCxnQkFBSSxjQUFjO0FBRWxCLG1CQUFPLGFBQVksTUFBTTtBQUN2QixrQkFBSSxxQkFBcUIsU0FBUSxlQUFlO0FBRWhELGtCQUFJLGFBQVksZUFBZSxTQUFRLFVBQVUsUUFBUSx1QkFBdUIsU0FBUztBQUN2RiwyQkFBVSxTQUFRO0FBQUEscUJBQ2I7QUFDTCxvQkFBSyxVQUFRLFFBQVEsZ0JBQWdCLFNBQVM7QUFDNUMsaUNBQWU7QUFBQTtBQUdqQixvQkFBSSxTQUFRLFlBQVksTUFBTTtBQUM1Qiw2QkFBVSxTQUFRO0FBQUEsdUJBQ2I7QUFDTCw2QkFBVSxjQUFjLFNBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTzFDLFlBQUksOENBQThDO0FBRWxELDBEQUFrRCxPQUFPO0FBQ3ZEO0FBQ0UsZ0JBQUssb0JBQW1CLG1CQUFtQixXQUFXO0FBRXBEO0FBQUE7QUFHRixnQkFBSSxDQUFFLE9BQU0sT0FBTyxpQkFBaUI7QUFDbEM7QUFBQTtBQUdGLGdCQUFJLE1BQU0sTUFBTTtBQUVoQixnQkFBSSxRQUFRLDBCQUEwQixRQUFRLFlBQVksUUFBUSxrQkFBa0IsUUFBUSxxQkFBcUIsUUFBUSxjQUFjLFFBQVEsaUJBQWlCLFFBQVEscUJBQXFCO0FBRTNMO0FBQUE7QUFLRixnQkFBSSxnQkFBZ0IsMEJBQTBCLFVBQVU7QUFFeEQsZ0JBQUksZ0RBQWdELE1BQU07QUFDeEQsa0JBQUksNENBQTRDLElBQUksZ0JBQWdCO0FBQ2xFO0FBQUE7QUFHRiwwREFBNEMsSUFBSTtBQUFBLG1CQUMzQztBQUNMLDREQUE4QyxJQUFJLElBQUksQ0FBQztBQUFBO0FBR3pELGdCQUFJLGdCQUFnQjtBQUVwQixnQkFBSTtBQUNGLDhCQUFnQjtBQUVoQixvQkFBTTtBQUFBLHNCQUNOO0FBQ0Esa0JBQUksZUFBZTtBQUNqQixnQ0FBZ0I7QUFBQSxxQkFDWDtBQUNMO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNUixZQUFJO0FBRUo7QUFDRSxjQUFJLGFBQWE7QUFFakIsd0JBQWMsU0FBVSxVQUFTLFlBQVksT0FBTztBQU1sRCxnQkFBSSw2QkFBNkIsMkJBQTJCLFlBQVk7QUFFeEUsZ0JBQUk7QUFDRixxQkFBTyxVQUFVLFVBQVMsWUFBWTtBQUFBLHFCQUMvQixlQUFQO0FBQ0Esa0JBQUksa0JBQWtCLFFBQVEsT0FBTyxrQkFBa0IsWUFBWSxPQUFPLGNBQWMsU0FBUyxZQUFZO0FBRTNHLHNCQUFNO0FBQUE7QUFLUjtBQUNBO0FBSUEsb0NBQXNCLFVBQVM7QUFFL0IseUNBQTJCLFlBQVk7QUFFdkMsa0JBQUssV0FBVyxPQUFPLGFBQWE7QUFFbEMsbUNBQW1CO0FBQUE7QUFJckIsb0NBQXNCLE1BQU0sV0FBVyxNQUFNLFVBQVMsWUFBWTtBQUVsRSxrQkFBSSxrQkFBa0I7QUFDcEIsb0JBQUksY0FBYztBQUVsQixvQkFBSSxPQUFPLGdCQUFnQixZQUFZLGdCQUFnQixRQUFRLFlBQVksb0JBQW9CLE9BQU8sa0JBQWtCLFlBQVksa0JBQWtCLFFBQVEsQ0FBQyxjQUFjLGtCQUFrQjtBQUU3TCxnQ0FBYyxtQkFBbUI7QUFBQTtBQUFBO0FBTXJDLG9CQUFNO0FBQUE7QUFBQTtBQUFBO0FBS1osWUFBSSw2QkFBNkI7QUFDakMsWUFBSTtBQUVKO0FBQ0UsMERBQWdELElBQUk7QUFBQTtBQUd0RCxrREFBMEMsT0FBTztBQUMvQztBQUNFLGdCQUFJLGVBQWUsQ0FBQyw4Q0FBOEM7QUFDaEUsc0JBQVEsTUFBTTtBQUFBLHFCQUNQO0FBQUEscUJBQ0E7QUFBQSxxQkFDQSxxQkFDSDtBQUNFLHNCQUFJLHlCQUF5QixrQkFBa0IsMEJBQTBCLG1CQUFtQjtBQUU1RixzQkFBSSxZQUFZO0FBRWhCLHNCQUFJLENBQUMsOENBQThDLElBQUksWUFBWTtBQUNqRSxrRUFBOEMsSUFBSTtBQUNsRCx3QkFBSSx3QkFBd0IsMEJBQTBCLFVBQVU7QUFFaEUsMEJBQU0sb05BQThOLHVCQUF1Qix3QkFBd0I7QUFBQTtBQUdyUjtBQUFBO0FBQUEscUJBR0MsZ0JBQ0g7QUFDRSxzQkFBSSxDQUFDLDRCQUE0QjtBQUMvQiwwQkFBTTtBQUVOLGlEQUE2QjtBQUFBO0FBRy9CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9aLHdDQUFnQyxPQUFNLE9BQU87QUFDM0M7QUFDRSxnQkFBSSxtQkFBbUI7QUFDckIsa0JBQUksbUJBQW1CLE1BQUs7QUFDNUIsK0JBQWlCLFFBQVEsU0FBVSxpQkFBaUI7QUFDbEQsbUNBQW1CLE9BQU0saUJBQWlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPbEQsWUFBSSxzQkFBc0I7QUFFMUIsb0NBQTRCLGVBQWUsVUFBVTtBQUNuRDtBQUdFLGdCQUFJLFdBQVcsdUJBQXVCO0FBRXRDLGdCQUFJLGFBQWEsTUFBTTtBQUNyQix1QkFBUyxLQUFLO0FBQ2QscUJBQU87QUFBQSxtQkFDRjtBQUNMLHFCQUFPLGlCQUFpQixlQUFlO0FBQUE7QUFBQTtBQUFBO0FBSzdDLGtDQUEwQixjQUFjO0FBQ3RDLGNBQUssaUJBQWlCLHFCQUFxQjtBQUN6QztBQUFBO0FBSUYsaUJBQU8sZUFBZTtBQUFBO0FBR3hCLGtEQUEwQztBQUV4QyxpQkFBUSx1QkFBdUIsWUFBWTtBQUFBO0FBRzdDLG1EQUEyQyxPQUFPO0FBQ2hEO0FBQ0UsZ0JBQUksTUFBTSxPQUFPLGdCQUFnQjtBQUMvQixrQkFBSSxDQUFDLDhCQUE4QjtBQUVqQztBQUFBO0FBQUEsbUJBRUc7QUFFTCxrQkFBSSxDQUFDLDBCQUEwQjtBQUU3QjtBQUFBO0FBR0Ysa0JBQUkscUJBQXFCLFdBQVc7QUFHbEM7QUFBQTtBQUdGLGtCQUFJLE1BQU0sUUFBUSxxQkFBcUIsTUFBTSxRQUFRLGNBQWMsTUFBTSxRQUFRLHFCQUFxQjtBQUdwRztBQUFBO0FBQUE7QUFJSixnQkFBSSx1QkFBdUIsWUFBWSxNQUFNO0FBQzNDLGtCQUFJLGdCQUFnQjtBQUVwQixrQkFBSTtBQUNGLGdDQUFnQjtBQUVoQixzQkFBTSwyWEFBd2EsMEJBQTBCO0FBQUEsd0JBQ3hjO0FBQ0Esb0JBQUksZUFBZTtBQUNqQixrQ0FBZ0I7QUFBQSx1QkFDWDtBQUNMO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9WLDhEQUFzRCxPQUFNO0FBQzFEO0FBQ0UsZ0JBQUksTUFBSyxRQUFRLGNBQWMsZ0NBQWdDLHVCQUF1QixZQUFZLE1BQU07QUFDdEcsb0JBQU07QUFBQTtBQUFBO0FBQUE7QUFNWixZQUFJLGdCQUFnQjtBQUVwQixZQUFJLG1CQUFtQjtBQUN2QixZQUFJLG9CQUFvQixTQUFVLFNBQVM7QUFDekM7QUFDRSw0QkFBZ0I7QUFBQTtBQUFBO0FBR3BCLGdEQUF3QyxNQUFNO0FBQzVDO0FBQ0UsZ0JBQUksa0JBQWtCLE1BQU07QUFFMUIscUJBQU87QUFBQTtBQUdULGdCQUFJLFNBQVMsY0FBYztBQUUzQixnQkFBSSxXQUFXLFFBQVc7QUFDeEIscUJBQU87QUFBQTtBQUlULG1CQUFPLE9BQU87QUFBQTtBQUFBO0FBR2xCLDZDQUFxQyxNQUFNO0FBRXpDLGlCQUFPLCtCQUErQjtBQUFBO0FBRXhDLGtEQUEwQyxNQUFNO0FBQzlDO0FBQ0UsZ0JBQUksa0JBQWtCLE1BQU07QUFFMUIscUJBQU87QUFBQTtBQUdULGdCQUFJLFNBQVMsY0FBYztBQUUzQixnQkFBSSxXQUFXLFFBQVc7QUFFeEIsa0JBQUksU0FBUyxRQUFRLFNBQVMsVUFBYSxPQUFPLEtBQUssV0FBVyxZQUFZO0FBSTVFLG9CQUFJLGdCQUFnQiwrQkFBK0IsS0FBSztBQUV4RCxvQkFBSSxLQUFLLFdBQVcsZUFBZTtBQUNqQyxzQkFBSSxnQkFBZ0I7QUFBQSxvQkFDbEIsVUFBVTtBQUFBLG9CQUNWLFFBQVE7QUFBQTtBQUdWLHNCQUFJLEtBQUssZ0JBQWdCLFFBQVc7QUFDbEMsa0NBQWMsY0FBYyxLQUFLO0FBQUE7QUFHbkMseUJBQU87QUFBQTtBQUFBO0FBSVgscUJBQU87QUFBQTtBQUlULG1CQUFPLE9BQU87QUFBQTtBQUFBO0FBR2xCLG1EQUEyQyxPQUFPLFNBQVM7QUFDekQ7QUFDRSxnQkFBSSxrQkFBa0IsTUFBTTtBQUUxQixxQkFBTztBQUFBO0FBR1QsZ0JBQUksV0FBVyxNQUFNO0FBQ3JCLGdCQUFJLFdBQVcsUUFBUTtBQUV2QixnQkFBSSx1QkFBdUI7QUFDM0IsZ0JBQUksbUJBQW1CLE9BQU8sYUFBYSxZQUFZLGFBQWEsT0FBTyxTQUFTLFdBQVc7QUFFL0Ysb0JBQVEsTUFBTTtBQUFBLG1CQUNQLGdCQUNIO0FBQ0Usb0JBQUksT0FBTyxhQUFhLFlBQVk7QUFDbEMseUNBQXVCO0FBQUE7QUFHekI7QUFBQTtBQUFBLG1CQUdDLG1CQUNIO0FBQ0Usb0JBQUksT0FBTyxhQUFhLFlBQVk7QUFDbEMseUNBQXVCO0FBQUEsMkJBQ2QscUJBQXFCLGlCQUFpQjtBQUsvQyx5Q0FBdUI7QUFBQTtBQUd6QjtBQUFBO0FBQUEsbUJBR0MsWUFDSDtBQUNFLG9CQUFJLHFCQUFxQix3QkFBd0I7QUFDL0MseUNBQXVCO0FBQUEsMkJBQ2QscUJBQXFCLGlCQUFpQjtBQUMvQyx5Q0FBdUI7QUFBQTtBQUd6QjtBQUFBO0FBQUEsbUJBR0M7QUFBQSxtQkFDQSxxQkFDSDtBQUNFLG9CQUFJLHFCQUFxQixpQkFBaUI7QUFHeEMseUNBQXVCO0FBQUEsMkJBQ2QscUJBQXFCLGlCQUFpQjtBQUMvQyx5Q0FBdUI7QUFBQTtBQUd6QjtBQUFBO0FBQUE7QUFJRix1QkFBTztBQUFBO0FBSVgsZ0JBQUksc0JBQXNCO0FBTXhCLGtCQUFJLGFBQWEsY0FBYztBQUUvQixrQkFBSSxlQUFlLFVBQWEsZUFBZSxjQUFjLFdBQVc7QUFDdEUsdUJBQU87QUFBQTtBQUFBO0FBSVgsbUJBQU87QUFBQTtBQUFBO0FBR1gsd0RBQWdELE9BQU87QUFDckQ7QUFDRSxnQkFBSSxrQkFBa0IsTUFBTTtBQUUxQjtBQUFBO0FBR0YsZ0JBQUksT0FBTyxZQUFZLFlBQVk7QUFDakM7QUFBQTtBQUdGLGdCQUFJLHFCQUFxQixNQUFNO0FBQzdCLGlDQUFtQixJQUFJO0FBQUE7QUFHekIsNkJBQWlCLElBQUk7QUFBQTtBQUFBO0FBR3pCLFlBQUksa0JBQWtCLFNBQVUsT0FBTSxRQUFRO0FBQzVDO0FBQ0UsZ0JBQUksa0JBQWtCLE1BQU07QUFFMUI7QUFBQTtBQUdGLGdCQUFJLGdCQUFnQixPQUFPLGVBQ3ZCLGtCQUFrQixPQUFPO0FBQzdCO0FBQ0Esc0JBQVUsV0FBWTtBQUNwQixvREFBc0MsTUFBSyxTQUFTLGlCQUFpQjtBQUFBO0FBQUE7QUFBQTtBQUkzRSxZQUFJLGVBQWUsU0FBVSxPQUFNLFNBQVM7QUFDMUM7QUFDRSxnQkFBSSxNQUFLLFlBQVksb0JBQW9CO0FBSXZDO0FBQUE7QUFHRjtBQUNBLHNCQUFVLFdBQVk7QUFDcEIsOEJBQWdCLFNBQVMsT0FBTSxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBSzNDLHVEQUErQyxPQUFPLGlCQUFpQixlQUFlO0FBQ3BGO0FBQ0UsZ0JBQUksWUFBWSxNQUFNLFdBQ2xCLFFBQVEsTUFBTSxPQUNkLFVBQVUsTUFBTSxTQUNoQixNQUFNLE1BQU0sS0FDWixPQUFPLE1BQU07QUFDakIsZ0JBQUksZ0JBQWdCO0FBRXBCLG9CQUFRO0FBQUEsbUJBQ0Q7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQ0gsZ0NBQWdCO0FBQ2hCO0FBQUEsbUJBRUc7QUFDSCxnQ0FBZ0IsS0FBSztBQUNyQjtBQUFBO0FBR0osZ0JBQUksa0JBQWtCLE1BQU07QUFDMUIsb0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsZ0JBQUksY0FBYztBQUNsQixnQkFBSSxlQUFlO0FBRW5CLGdCQUFJLGtCQUFrQixNQUFNO0FBQzFCLGtCQUFJLFNBQVMsY0FBYztBQUUzQixrQkFBSSxXQUFXLFFBQVc7QUFDeEIsb0JBQUksY0FBYyxJQUFJLFNBQVM7QUFDN0IsaUNBQWU7QUFBQSwyQkFDTixnQkFBZ0IsSUFBSSxTQUFTO0FBQ3RDLHNCQUFJLFFBQVEsZ0JBQWdCO0FBQzFCLG1DQUFlO0FBQUEseUJBQ1Y7QUFDTCxrQ0FBYztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTXRCLGdCQUFJLHFCQUFxQixNQUFNO0FBQzdCLGtCQUFJLGlCQUFpQixJQUFJLFVBQVUsY0FBYyxRQUFRLGlCQUFpQixJQUFJLFlBQVk7QUFDeEYsK0JBQWU7QUFBQTtBQUFBO0FBSW5CLGdCQUFJLGNBQWM7QUFDaEIsb0JBQU0scUJBQXFCO0FBQUE7QUFHN0IsZ0JBQUksZ0JBQWdCLGFBQWE7QUFDL0Isb0NBQXNCLE9BQU8sVUFBVTtBQUFBO0FBR3pDLGdCQUFJLFVBQVUsUUFBUSxDQUFDLGNBQWM7QUFDbkMsb0RBQXNDLE9BQU8saUJBQWlCO0FBQUE7QUFHaEUsZ0JBQUksWUFBWSxNQUFNO0FBQ3BCLG9EQUFzQyxTQUFTLGlCQUFpQjtBQUFBO0FBQUE7QUFBQTtBQUt0RSxZQUFJLDhCQUE4QixTQUFVLE9BQU0sVUFBVTtBQUMxRDtBQUNFLGdCQUFJLGdCQUFnQixJQUFJO0FBQ3hCLGdCQUFJLFFBQVEsSUFBSSxJQUFJLFNBQVMsSUFBSSxTQUFVLFFBQVE7QUFDakQscUJBQU8sT0FBTztBQUFBO0FBRWhCLDBEQUE4QyxNQUFLLFNBQVMsT0FBTztBQUNuRSxtQkFBTztBQUFBO0FBQUE7QUFJWCwrREFBdUQsT0FBTyxPQUFPLGVBQWU7QUFDbEY7QUFDRSxnQkFBSSxRQUFRLE1BQU0sT0FDZCxVQUFVLE1BQU0sU0FDaEIsTUFBTSxNQUFNLEtBQ1osT0FBTyxNQUFNO0FBQ2pCLGdCQUFJLGdCQUFnQjtBQUVwQixvQkFBUTtBQUFBLG1CQUNEO0FBQUEsbUJBQ0E7QUFBQSxtQkFDQTtBQUNILGdDQUFnQjtBQUNoQjtBQUFBLG1CQUVHO0FBQ0gsZ0NBQWdCLEtBQUs7QUFDckI7QUFBQTtBQUdKLGdCQUFJLFdBQVc7QUFFZixnQkFBSSxrQkFBa0IsTUFBTTtBQUMxQixrQkFBSSxNQUFNLElBQUksZ0JBQWdCO0FBQzVCLDJCQUFXO0FBQUE7QUFBQTtBQUlmLGdCQUFJLFVBQVU7QUFJWixpREFBbUMsT0FBTztBQUFBLG1CQUNyQztBQUVMLGtCQUFJLFVBQVUsTUFBTTtBQUNsQiw4REFBOEMsT0FBTyxPQUFPO0FBQUE7QUFBQTtBQUloRSxnQkFBSSxZQUFZLE1BQU07QUFDcEIsNERBQThDLFNBQVMsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUtwRSxvREFBNEMsT0FBTyxlQUFlO0FBQ2hFO0FBQ0UsZ0JBQUkscUJBQXFCLHdDQUF3QyxPQUFPO0FBRXhFLGdCQUFJLG9CQUFvQjtBQUN0QjtBQUFBO0FBSUYsZ0JBQUksT0FBTztBQUVYLG1CQUFPLE1BQU07QUFDWCxzQkFBUSxLQUFLO0FBQUEscUJBQ047QUFDSCxnQ0FBYyxJQUFJLEtBQUs7QUFDdkI7QUFBQSxxQkFFRztBQUNILGdDQUFjLElBQUksS0FBSyxVQUFVO0FBQ2pDO0FBQUEscUJBRUc7QUFDSCxnQ0FBYyxJQUFJLEtBQUssVUFBVTtBQUNqQztBQUFBO0FBR0osa0JBQUksS0FBSyxXQUFXLE1BQU07QUFDeEIsc0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIscUJBQU8sS0FBSztBQUFBO0FBQUE7QUFBQTtBQUtsQix5REFBaUQsT0FBTyxlQUFlO0FBQ3JFO0FBQ0UsZ0JBQUksT0FBTztBQUNYLGdCQUFJLHFCQUFxQjtBQUV6QixtQkFBTyxNQUFNO0FBQ1gsa0JBQUksS0FBSyxRQUFRLGVBQWU7QUFFOUIscUNBQXFCO0FBQ3JCLDhCQUFjLElBQUksS0FBSztBQUFBLHlCQUNkLEtBQUssVUFBVSxNQUFNO0FBQzlCLHFCQUFLLE1BQU0sU0FBUztBQUNwQix1QkFBTyxLQUFLO0FBQ1o7QUFBQTtBQUdGLGtCQUFJLFNBQVMsT0FBTztBQUNsQix1QkFBTztBQUFBO0FBR1QscUJBQU8sS0FBSyxZQUFZLE1BQU07QUFDNUIsb0JBQUksS0FBSyxXQUFXLFFBQVEsS0FBSyxXQUFXLE9BQU87QUFDakQseUJBQU87QUFBQTtBQUdULHVCQUFPLEtBQUs7QUFBQTtBQUdkLG1CQUFLLFFBQVEsU0FBUyxLQUFLO0FBQzNCLHFCQUFPLEtBQUs7QUFBQTtBQUFBO0FBSWhCLGlCQUFPO0FBQUE7QUFHVCxZQUFJO0FBRUo7QUFDRSw4QkFBb0I7QUFFcEIsY0FBSTtBQUNGLGdCQUFJLHNCQUFzQixPQUFPLGtCQUFrQjtBQUduRCxnQkFBSSxJQUFJLENBQUMsQ0FBQyxxQkFBcUI7QUFDL0IsZ0JBQUksSUFBSSxDQUFDO0FBQUEsbUJBRUYsR0FBUDtBQUVBLGdDQUFvQjtBQUFBO0FBQUE7QUFJeEIsMkJBQW1CLEtBQUssY0FBYyxLQUFLLE1BQU07QUFFL0MsZUFBSyxNQUFNO0FBQ1gsZUFBSyxNQUFNO0FBQ1gsZUFBSyxjQUFjO0FBQ25CLGVBQUssT0FBTztBQUNaLGVBQUssWUFBWTtBQUVqQixlQUFLLFNBQVM7QUFDZCxlQUFLLFFBQVE7QUFDYixlQUFLLFVBQVU7QUFDZixlQUFLLFFBQVE7QUFDYixlQUFLLE1BQU07QUFDWCxlQUFLLGVBQWU7QUFDcEIsZUFBSyxnQkFBZ0I7QUFDckIsZUFBSyxjQUFjO0FBQ25CLGVBQUssZ0JBQWdCO0FBQ3JCLGVBQUssZUFBZTtBQUNwQixlQUFLLE9BQU87QUFFWixlQUFLLFFBQVE7QUFDYixlQUFLLGVBQWU7QUFDcEIsZUFBSyxZQUFZO0FBQ2pCLGVBQUssUUFBUTtBQUNiLGVBQUssYUFBYTtBQUNsQixlQUFLLFlBQVk7QUFFakI7QUFhRSxpQkFBSyxpQkFBaUIsT0FBTztBQUM3QixpQkFBSyxrQkFBa0IsT0FBTztBQUM5QixpQkFBSyxtQkFBbUIsT0FBTztBQUMvQixpQkFBSyxtQkFBbUIsT0FBTztBQUkvQixpQkFBSyxpQkFBaUI7QUFDdEIsaUJBQUssa0JBQWtCO0FBQ3ZCLGlCQUFLLG1CQUFtQjtBQUN4QixpQkFBSyxtQkFBbUI7QUFBQTtBQUcxQjtBQUVFLGlCQUFLLGVBQWU7QUFDcEIsaUJBQUssY0FBYztBQUNuQixpQkFBSyxxQkFBcUI7QUFDMUIsaUJBQUssa0JBQWtCO0FBRXZCLGdCQUFJLENBQUMscUJBQXFCLE9BQU8sT0FBTyxzQkFBc0IsWUFBWTtBQUN4RSxxQkFBTyxrQkFBa0I7QUFBQTtBQUFBO0FBQUE7QUFrQi9CLFlBQUksY0FBYyxTQUFVLEtBQUssY0FBYyxLQUFLLE1BQU07QUFFeEQsaUJBQU8sSUFBSSxVQUFVLEtBQUssY0FBYyxLQUFLO0FBQUE7QUFHL0MsbUNBQTJCLFdBQVc7QUFDcEMsY0FBSSxZQUFZLFVBQVU7QUFDMUIsaUJBQU8sQ0FBQyxDQUFFLGNBQWEsVUFBVTtBQUFBO0FBR25DLDJDQUFtQyxNQUFNO0FBQ3ZDLGlCQUFPLE9BQU8sU0FBUyxjQUFjLENBQUMsa0JBQWtCLFNBQVMsS0FBSyxpQkFBaUI7QUFBQTtBQUV6Rix5Q0FBaUMsV0FBVztBQUMxQyxjQUFJLE9BQU8sY0FBYyxZQUFZO0FBQ25DLG1CQUFPLGtCQUFrQixhQUFhLGlCQUFpQjtBQUFBLHFCQUM5QyxjQUFjLFVBQWEsY0FBYyxNQUFNO0FBQ3hELGdCQUFJLFdBQVcsVUFBVTtBQUV6QixnQkFBSSxhQUFhLHdCQUF3QjtBQUN2QyxxQkFBTztBQUFBO0FBR1QsZ0JBQUksYUFBYSxpQkFBaUI7QUFDaEMscUJBQU87QUFBQTtBQUFBO0FBSVgsaUJBQU87QUFBQTtBQUdULHNDQUE4QixVQUFTLGNBQWM7QUFDbkQsY0FBSSxrQkFBaUIsU0FBUTtBQUU3QixjQUFJLG9CQUFtQixNQUFNO0FBTTNCLDhCQUFpQixZQUFZLFNBQVEsS0FBSyxjQUFjLFNBQVEsS0FBSyxTQUFRO0FBQzdFLDRCQUFlLGNBQWMsU0FBUTtBQUNyQyw0QkFBZSxPQUFPLFNBQVE7QUFDOUIsNEJBQWUsWUFBWSxTQUFRO0FBRW5DO0FBRUUsOEJBQWUsZUFBZSxTQUFRO0FBQ3RDLDhCQUFlLGNBQWMsU0FBUTtBQUNyQyw4QkFBZSxrQkFBa0IsU0FBUTtBQUFBO0FBRzNDLDRCQUFlLFlBQVk7QUFDM0IscUJBQVEsWUFBWTtBQUFBLGlCQUNmO0FBQ0wsNEJBQWUsZUFBZTtBQUU5Qiw0QkFBZSxPQUFPLFNBQVE7QUFHOUIsNEJBQWUsUUFBUTtBQUV2Qiw0QkFBZSxlQUFlO0FBQzlCLDRCQUFlLFlBQVk7QUFFM0I7QUFLRSw4QkFBZSxpQkFBaUI7QUFDaEMsOEJBQWUsa0JBQWtCO0FBQUE7QUFBQTtBQU1yQywwQkFBZSxRQUFRLFNBQVEsUUFBUTtBQUN2QywwQkFBZSxhQUFhLFNBQVE7QUFDcEMsMEJBQWUsUUFBUSxTQUFRO0FBQy9CLDBCQUFlLFFBQVEsU0FBUTtBQUMvQiwwQkFBZSxnQkFBZ0IsU0FBUTtBQUN2QywwQkFBZSxnQkFBZ0IsU0FBUTtBQUN2QywwQkFBZSxjQUFjLFNBQVE7QUFHckMsY0FBSSxzQkFBc0IsU0FBUTtBQUNsQywwQkFBZSxlQUFlLHdCQUF3QixPQUFPLE9BQU87QUFBQSxZQUNsRSxPQUFPLG9CQUFvQjtBQUFBLFlBQzNCLGNBQWMsb0JBQW9CO0FBQUE7QUFHcEMsMEJBQWUsVUFBVSxTQUFRO0FBQ2pDLDBCQUFlLFFBQVEsU0FBUTtBQUMvQiwwQkFBZSxNQUFNLFNBQVE7QUFFN0I7QUFDRSw0QkFBZSxtQkFBbUIsU0FBUTtBQUMxQyw0QkFBZSxtQkFBbUIsU0FBUTtBQUFBO0FBRzVDO0FBQ0UsNEJBQWUscUJBQXFCLFNBQVE7QUFFNUMsb0JBQVEsZ0JBQWU7QUFBQSxtQkFDaEI7QUFBQSxtQkFDQTtBQUFBLG1CQUNBO0FBQ0gsZ0NBQWUsT0FBTywrQkFBK0IsU0FBUTtBQUM3RDtBQUFBLG1CQUVHO0FBQ0gsZ0NBQWUsT0FBTyw0QkFBNEIsU0FBUTtBQUMxRDtBQUFBLG1CQUVHO0FBQ0gsZ0NBQWUsT0FBTyxpQ0FBaUMsU0FBUTtBQUMvRDtBQUFBO0FBQUE7QUFJTixpQkFBTztBQUFBO0FBR1QscUNBQTZCLGlCQUFnQixjQUFhO0FBU3hELDBCQUFlLFNBQVMsYUFBYTtBQUVyQyxjQUFJLFdBQVUsZ0JBQWU7QUFFN0IsY0FBSSxhQUFZLE1BQU07QUFFcEIsNEJBQWUsYUFBYTtBQUM1Qiw0QkFBZSxRQUFRO0FBQ3ZCLDRCQUFlLFFBQVE7QUFDdkIsNEJBQWUsZUFBZTtBQUM5Qiw0QkFBZSxnQkFBZ0I7QUFDL0IsNEJBQWUsZ0JBQWdCO0FBQy9CLDRCQUFlLGNBQWM7QUFDN0IsNEJBQWUsZUFBZTtBQUM5Qiw0QkFBZSxZQUFZO0FBRTNCO0FBR0UsOEJBQWUsbUJBQW1CO0FBQ2xDLDhCQUFlLG1CQUFtQjtBQUFBO0FBQUEsaUJBRS9CO0FBRUwsNEJBQWUsYUFBYSxTQUFRO0FBQ3BDLDRCQUFlLFFBQVEsU0FBUTtBQUMvQiw0QkFBZSxRQUFRLFNBQVE7QUFDL0IsNEJBQWUsZUFBZTtBQUM5Qiw0QkFBZSxZQUFZO0FBQzNCLDRCQUFlLGdCQUFnQixTQUFRO0FBQ3ZDLDRCQUFlLGdCQUFnQixTQUFRO0FBQ3ZDLDRCQUFlLGNBQWMsU0FBUTtBQUVyQyw0QkFBZSxPQUFPLFNBQVE7QUFHOUIsZ0JBQUksc0JBQXNCLFNBQVE7QUFDbEMsNEJBQWUsZUFBZSx3QkFBd0IsT0FBTyxPQUFPO0FBQUEsY0FDbEUsT0FBTyxvQkFBb0I7QUFBQSxjQUMzQixjQUFjLG9CQUFvQjtBQUFBO0FBR3BDO0FBR0UsOEJBQWUsbUJBQW1CLFNBQVE7QUFDMUMsOEJBQWUsbUJBQW1CLFNBQVE7QUFBQTtBQUFBO0FBSTlDLGlCQUFPO0FBQUE7QUFFVCxxQ0FBNkIsS0FBSyxjQUFjLG9DQUFvQztBQUNsRixjQUFJO0FBRUosY0FBSSxRQUFRLGdCQUFnQjtBQUMxQixtQkFBTztBQUVQLGdCQUFJLGlCQUFpQixNQUFNO0FBQ3pCLHNCQUFRO0FBRVI7QUFDRSx3QkFBUTtBQUFBO0FBQUE7QUFBQSxpQkFHUDtBQUNMLG1CQUFPO0FBQUE7QUFHVCxjQUFLLG1CQUFtQjtBQUl0QixvQkFBUTtBQUFBO0FBR1YsaUJBQU8sWUFBWSxVQUFVLE1BQU0sTUFBTTtBQUFBO0FBRTNDLDZDQUFxQyxNQUNyQyxLQUFLLGNBQWMsT0FBTyxNQUFNLE9BQU87QUFDckMsY0FBSSxXQUFXO0FBRWYsY0FBSSxlQUFlO0FBRW5CLGNBQUksT0FBTyxTQUFTLFlBQVk7QUFDOUIsZ0JBQUksa0JBQWtCLE9BQU87QUFDM0IseUJBQVc7QUFFWDtBQUNFLCtCQUFlLDRCQUE0QjtBQUFBO0FBQUEsbUJBRXhDO0FBQ0w7QUFDRSwrQkFBZSwrQkFBK0I7QUFBQTtBQUFBO0FBQUEscUJBR3pDLE9BQU8sU0FBUyxVQUFVO0FBQ25DLHVCQUFXO0FBQUEsaUJBQ047QUFDTDtBQUFRLHNCQUFRO0FBQUEscUJBQ1Q7QUFDSCx5QkFBTyx3QkFBd0IsYUFBYSxVQUFVLE1BQU0sT0FBTztBQUFBLHFCQUVoRTtBQUNILDZCQUFXO0FBQ1gsMEJBQVE7QUFFUixzQkFBTSxRQUFPLG9CQUFvQixRQUFRO0FBRXZDLDRCQUFRO0FBQUE7QUFHVjtBQUFBLHFCQUVHO0FBQ0gseUJBQU8sd0JBQXdCLGNBQWMsTUFBTSxPQUFPO0FBQUEscUJBRXZEO0FBQ0gseUJBQU8sd0JBQXdCLGNBQWMsTUFBTSxPQUFPO0FBQUEscUJBRXZEO0FBQ0gseUJBQU8sNEJBQTRCLGNBQWMsTUFBTSxPQUFPO0FBQUEscUJBRTNEO0FBQ0gseUJBQU8seUJBQXlCLGNBQWMsTUFBTSxPQUFPO0FBQUEscUJBRXhEO0FBQUEscUJBSUE7QUFBQSxxQkFJQTtBQUFBLHFCQUlBO0FBQUEscUJBSUE7QUFBQSx5QkFLSDtBQUNFLHNCQUFJLE9BQU8sU0FBUyxZQUFZLFNBQVMsTUFBTTtBQUM3Qyw0QkFBUSxLQUFLO0FBQUEsMkJBQ047QUFDSCxtQ0FBVztBQUNYO0FBQUEsMkJBRUc7QUFFSCxtQ0FBVztBQUNYO0FBQUEsMkJBRUc7QUFDSCxtQ0FBVztBQUVYO0FBQ0UseUNBQWUsaUNBQWlDO0FBQUE7QUFHbEQ7QUFBQSwyQkFFRztBQUNILG1DQUFXO0FBQ1g7QUFBQSwyQkFFRztBQUNILG1DQUFXO0FBQ1gsdUNBQWU7QUFDZjtBQUFBO0FBQUE7QUFJTixzQkFBSSxPQUFPO0FBRVg7QUFDRSx3QkFBSSxTQUFTLFVBQWEsT0FBTyxTQUFTLFlBQVksU0FBUyxRQUFRLE9BQU8sS0FBSyxNQUFNLFdBQVcsR0FBRztBQUNyRyw4QkFBUTtBQUFBO0FBR1Ysd0JBQUksWUFBWSxRQUFRLDBCQUEwQixTQUFTO0FBRTNELHdCQUFJLFdBQVc7QUFDYiw4QkFBUSxxQ0FBcUMsWUFBWTtBQUFBO0FBQUE7QUFJN0Qsd0JBQU0sSUFBSSxNQUFNLHlIQUErSCxlQUFlLFNBQVEsT0FBTyxPQUFPLE9BQU8sUUFBUSxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBS2pOLGNBQUksUUFBUSxZQUFZLFVBQVUsY0FBYyxLQUFLO0FBQ3JELGdCQUFNLGNBQWM7QUFDcEIsZ0JBQU0sT0FBTztBQUNiLGdCQUFNLFFBQVE7QUFFZDtBQUNFLGtCQUFNLGNBQWM7QUFBQTtBQUd0QixpQkFBTztBQUFBO0FBRVQsd0NBQWdDLFNBQVMsTUFBTSxPQUFPO0FBQ3BELGNBQUksUUFBUTtBQUVaO0FBQ0Usb0JBQVEsUUFBUTtBQUFBO0FBR2xCLGNBQUksT0FBTyxRQUFRO0FBQ25CLGNBQUksTUFBTSxRQUFRO0FBQ2xCLGNBQUksZUFBZSxRQUFRO0FBQzNCLGNBQUksUUFBUSw0QkFBNEIsTUFBTSxLQUFLLGNBQWMsT0FBTyxNQUFNO0FBRTlFO0FBQ0Usa0JBQU0sZUFBZSxRQUFRO0FBQzdCLGtCQUFNLGNBQWMsUUFBUTtBQUFBO0FBRzlCLGlCQUFPO0FBQUE7QUFFVCx5Q0FBaUMsVUFBVSxNQUFNLE9BQU8sS0FBSztBQUMzRCxjQUFJLFFBQVEsWUFBWSxVQUFVLFVBQVUsS0FBSztBQUNqRCxnQkFBTSxRQUFRO0FBQ2QsaUJBQU87QUFBQTtBQUdULHlDQUFpQyxjQUFjLE1BQU0sT0FBTyxLQUFLO0FBQy9EO0FBQ0UsZ0JBQUksT0FBTyxhQUFhLE9BQU8sVUFBVTtBQUN2QyxvQkFBTSw2RkFBNkYsT0FBTyxhQUFhO0FBQUE7QUFBQTtBQUkzSCxjQUFJLFFBQVEsWUFBWSxVQUFVLGNBQWMsS0FBSyxPQUFPO0FBQzVELGdCQUFNLGNBQWM7QUFDcEIsZ0JBQU0sUUFBUTtBQUVkO0FBQ0Usa0JBQU0sWUFBWTtBQUFBLGNBQ2hCLGdCQUFnQjtBQUFBLGNBQ2hCLHVCQUF1QjtBQUFBO0FBQUE7QUFJM0IsaUJBQU87QUFBQTtBQUdULHlDQUFpQyxjQUFjLE1BQU0sT0FBTyxLQUFLO0FBQy9ELGNBQUksUUFBUSxZQUFZLG1CQUFtQixjQUFjLEtBQUs7QUFDOUQsZ0JBQU0sY0FBYztBQUNwQixnQkFBTSxRQUFRO0FBQ2QsaUJBQU87QUFBQTtBQUVULDZDQUFxQyxjQUFjLE1BQU0sT0FBTyxLQUFLO0FBQ25FLGNBQUksUUFBUSxZQUFZLHVCQUF1QixjQUFjLEtBQUs7QUFDbEUsZ0JBQU0sY0FBYztBQUNwQixnQkFBTSxRQUFRO0FBQ2QsaUJBQU87QUFBQTtBQUVULDBDQUFrQyxjQUFjLE1BQU0sT0FBTyxLQUFLO0FBQ2hFLGNBQUksUUFBUSxZQUFZLG9CQUFvQixjQUFjLEtBQUs7QUFDL0QsZ0JBQU0sY0FBYztBQUNwQixnQkFBTSxRQUFRO0FBQ2QsY0FBSSx1QkFBdUI7QUFDM0IsZ0JBQU0sWUFBWTtBQUNsQixpQkFBTztBQUFBO0FBRVQscUNBQTZCLFNBQVMsTUFBTSxPQUFPO0FBQ2pELGNBQUksUUFBUSxZQUFZLFVBQVUsU0FBUyxNQUFNO0FBQ2pELGdCQUFNLFFBQVE7QUFDZCxpQkFBTztBQUFBO0FBRVQsMERBQWtEO0FBQ2hELGNBQUksUUFBUSxZQUFZLGVBQWUsTUFBTSxNQUFNO0FBQ25ELGdCQUFNLGNBQWM7QUFDcEIsaUJBQU87QUFBQTtBQUVULG1EQUEyQyxnQkFBZ0I7QUFDekQsY0FBSSxRQUFRLFlBQVksb0JBQW9CLE1BQU0sTUFBTTtBQUN4RCxnQkFBTSxZQUFZO0FBQ2xCLGlCQUFPO0FBQUE7QUFFVCx1Q0FBK0IsUUFBUSxNQUFNLE9BQU87QUFDbEQsY0FBSSxlQUFlLE9BQU8sYUFBYSxPQUFPLE9BQU8sV0FBVztBQUNoRSxjQUFJLFFBQVEsWUFBWSxZQUFZLGNBQWMsT0FBTyxLQUFLO0FBQzlELGdCQUFNLFFBQVE7QUFDZCxnQkFBTSxZQUFZO0FBQUEsWUFDaEIsZUFBZSxPQUFPO0FBQUEsWUFDdEIsaUJBQWlCO0FBQUEsWUFFakIsZ0JBQWdCLE9BQU87QUFBQTtBQUV6QixpQkFBTztBQUFBO0FBR1QsNENBQW9DLFFBQVEsUUFBUTtBQUNsRCxjQUFJLFdBQVcsTUFBTTtBQUduQixxQkFBUyxZQUFZLHdCQUF3QixNQUFNLE1BQU07QUFBQTtBQVEzRCxpQkFBTyxNQUFNLE9BQU87QUFDcEIsaUJBQU8sTUFBTSxPQUFPO0FBQ3BCLGlCQUFPLGNBQWMsT0FBTztBQUM1QixpQkFBTyxPQUFPLE9BQU87QUFDckIsaUJBQU8sWUFBWSxPQUFPO0FBQzFCLGlCQUFPLFNBQVMsT0FBTztBQUN2QixpQkFBTyxRQUFRLE9BQU87QUFDdEIsaUJBQU8sVUFBVSxPQUFPO0FBQ3hCLGlCQUFPLFFBQVEsT0FBTztBQUN0QixpQkFBTyxNQUFNLE9BQU87QUFDcEIsaUJBQU8sZUFBZSxPQUFPO0FBQzdCLGlCQUFPLGdCQUFnQixPQUFPO0FBQzlCLGlCQUFPLGNBQWMsT0FBTztBQUM1QixpQkFBTyxnQkFBZ0IsT0FBTztBQUM5QixpQkFBTyxlQUFlLE9BQU87QUFDN0IsaUJBQU8sT0FBTyxPQUFPO0FBQ3JCLGlCQUFPLFFBQVEsT0FBTztBQUN0QixpQkFBTyxlQUFlLE9BQU87QUFDN0IsaUJBQU8sWUFBWSxPQUFPO0FBQzFCLGlCQUFPLFFBQVEsT0FBTztBQUN0QixpQkFBTyxhQUFhLE9BQU87QUFDM0IsaUJBQU8sWUFBWSxPQUFPO0FBRTFCO0FBQ0UsbUJBQU8saUJBQWlCLE9BQU87QUFDL0IsbUJBQU8sa0JBQWtCLE9BQU87QUFDaEMsbUJBQU8sbUJBQW1CLE9BQU87QUFDakMsbUJBQU8sbUJBQW1CLE9BQU87QUFBQTtBQUduQyxpQkFBTyxlQUFlLE9BQU87QUFDN0IsaUJBQU8sY0FBYyxPQUFPO0FBQzVCLGlCQUFPLHFCQUFxQixPQUFPO0FBQ25DLGlCQUFPLGtCQUFrQixPQUFPO0FBQ2hDLGlCQUFPO0FBQUE7QUFHVCwrQkFBdUIsZUFBZSxLQUFLLFVBQVMsa0JBQWtCLG9CQUFvQjtBQUN4RixlQUFLLE1BQU07QUFDWCxlQUFLLGdCQUFnQjtBQUNyQixlQUFLLGtCQUFrQjtBQUN2QixlQUFLLFVBQVU7QUFDZixlQUFLLFlBQVk7QUFDakIsZUFBSyxlQUFlO0FBQ3BCLGVBQUssZ0JBQWdCO0FBQ3JCLGVBQUssVUFBVTtBQUNmLGVBQUssaUJBQWlCO0FBQ3RCLGVBQUssZUFBZTtBQUNwQixlQUFLLG1CQUFtQjtBQUN4QixlQUFLLGFBQWEsY0FBYztBQUNoQyxlQUFLLGtCQUFrQixjQUFjO0FBQ3JDLGVBQUssZUFBZTtBQUNwQixlQUFLLGlCQUFpQjtBQUN0QixlQUFLLGNBQWM7QUFDbkIsZUFBSyxlQUFlO0FBQ3BCLGVBQUssbUJBQW1CO0FBQ3hCLGVBQUssZ0JBQWdCO0FBQ3JCLGVBQUssaUJBQWlCO0FBQ3RCLGVBQUssZ0JBQWdCLGNBQWM7QUFDbkMsZUFBSyxtQkFBbUI7QUFDeEIsZUFBSyxxQkFBcUI7QUFFMUI7QUFDRSxpQkFBSyxrQ0FBa0M7QUFBQTtBQUd6QztBQUNFLGlCQUFLLGlCQUFpQjtBQUN0QixpQkFBSyx3QkFBd0I7QUFBQTtBQUcvQjtBQUNFLGlCQUFLLG1CQUFtQixJQUFJO0FBQzVCLGdCQUFJLHlCQUF5QixLQUFLLHlCQUF5QjtBQUUzRCxxQkFBUyxLQUFLLEdBQUcsS0FBSyxZQUFZLE1BQU07QUFDdEMscUNBQXVCLEtBQUssSUFBSTtBQUFBO0FBQUE7QUFJcEM7QUFDRSxvQkFBUTtBQUFBLG1CQUNEO0FBQ0gscUJBQUssaUJBQWlCLFdBQVUsa0JBQWtCO0FBQ2xEO0FBQUEsbUJBRUc7QUFDSCxxQkFBSyxpQkFBaUIsV0FBVSxjQUFjO0FBQzlDO0FBQUE7QUFBQTtBQUFBO0FBS1IsaUNBQXlCLGVBQWUsS0FBSyxVQUFTLGlCQUFpQixvQkFBb0IsY0FBYyxvQ0FJekcsa0JBQWtCLG9CQUFvQixxQkFBcUI7QUFDekQsY0FBSSxRQUFPLElBQUksY0FBYyxlQUFlLEtBQUssVUFBUyxrQkFBa0I7QUFJNUUsY0FBSSxxQkFBcUIsb0JBQW9CLEtBQUs7QUFDbEQsZ0JBQUssVUFBVTtBQUNmLDZCQUFtQixZQUFZO0FBRS9CO0FBQ0UsZ0JBQUksZ0JBQWdCO0FBQUEsY0FDbEIsU0FBUztBQUFBLGNBQ1QsY0FBYztBQUFBLGNBQ2QsT0FBTztBQUFBLGNBRVAsYUFBYTtBQUFBO0FBRWYsK0JBQW1CLGdCQUFnQjtBQUFBO0FBR3JDLGdDQUFzQjtBQUN0QixpQkFBTztBQUFBO0FBR1QsWUFBSSxlQUFlO0FBRW5CLDhCQUFzQixVQUFVLGVBQ2hDLGdCQUFnQjtBQUNkLGNBQUksTUFBTSxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFFOUU7QUFDRSxtQ0FBdUI7QUFBQTtBQUd6QixpQkFBTztBQUFBLFlBRUwsVUFBVTtBQUFBLFlBQ1YsS0FBSyxPQUFPLE9BQU8sT0FBTyxLQUFLO0FBQUEsWUFDL0I7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBO0FBQUE7QUFJSixZQUFJO0FBQ0osWUFBSTtBQUVKO0FBQ0Usc0NBQTRCO0FBQzVCLDZDQUFtQztBQUFBO0FBR3JDLHNDQUE4QixpQkFBaUI7QUFDN0MsY0FBSSxDQUFDLGlCQUFpQjtBQUNwQixtQkFBTztBQUFBO0FBR1QsY0FBSSxRQUFRLElBQUk7QUFDaEIsY0FBSSxnQkFBZ0IsMkJBQTJCO0FBRS9DLGNBQUksTUFBTSxRQUFRLGdCQUFnQjtBQUNoQyxnQkFBSSxZQUFZLE1BQU07QUFFdEIsZ0JBQUksa0JBQWtCLFlBQVk7QUFDaEMscUJBQU8sb0JBQW9CLE9BQU8sV0FBVztBQUFBO0FBQUE7QUFJakQsaUJBQU87QUFBQTtBQUdULDZDQUFxQyxXQUFXLFlBQVk7QUFDMUQ7QUFDRSxnQkFBSSxRQUFRLElBQUk7QUFFaEIsZ0JBQUksVUFBVSxRQUFXO0FBQ3ZCLGtCQUFJLE9BQU8sVUFBVSxXQUFXLFlBQVk7QUFDMUMsc0JBQU0sSUFBSSxNQUFNO0FBQUEscUJBQ1g7QUFDTCxvQkFBSSxPQUFPLE9BQU8sS0FBSyxXQUFXLEtBQUs7QUFDdkMsc0JBQU0sSUFBSSxNQUFNLHdEQUF3RDtBQUFBO0FBQUE7QUFJNUUsZ0JBQUksWUFBWSxxQkFBcUI7QUFFckMsZ0JBQUksY0FBYyxNQUFNO0FBQ3RCLHFCQUFPO0FBQUE7QUFHVCxnQkFBSSxVQUFVLE9BQU8sa0JBQWtCO0FBQ3JDLGtCQUFJLGdCQUFnQiwwQkFBMEIsVUFBVTtBQUV4RCxrQkFBSSxDQUFDLGlDQUFpQyxnQkFBZ0I7QUFDcEQsaURBQWlDLGlCQUFpQjtBQUNsRCxvQkFBSSxnQkFBZ0I7QUFFcEIsb0JBQUk7QUFDRixrQ0FBZ0I7QUFFaEIsc0JBQUksTUFBTSxPQUFPLGtCQUFrQjtBQUNqQywwQkFBTSx5UEFBNlEsWUFBWSxZQUFZO0FBQUEseUJBQ3RTO0FBQ0wsMEJBQU0sZ1FBQW9SLFlBQVksWUFBWTtBQUFBO0FBQUEsMEJBRXBUO0FBR0Esc0JBQUksZUFBZTtBQUNqQixvQ0FBZ0I7QUFBQSx5QkFDWDtBQUNMO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNUixtQkFBTyxVQUFVO0FBQUE7QUFBQTtBQUlyQixpQ0FBeUIsZUFBZSxLQUFLLG9CQUFvQixjQUFjLG9DQUFvQyxrQkFBa0Isb0JBQW9CLHFCQUFxQjtBQUM1SyxjQUFJLFdBQVU7QUFDZCxjQUFJLGtCQUFrQjtBQUN0QixpQkFBTyxnQkFBZ0IsZUFBZSxLQUFLLFVBQVMsaUJBQWlCLG9CQUFvQixjQUFjLG9DQUFvQyxrQkFBa0I7QUFBQTtBQUUvSiwwQ0FBa0MsaUJBQ2xDLFVBQVUsZUFBZSxLQUFLLG9CQUFvQixjQUFjLG9DQUFvQyxrQkFBa0Isb0JBQW9CLHFCQUFxQjtBQUM3SixjQUFJLFdBQVU7QUFDZCxjQUFJLFFBQU8sZ0JBQWdCLGVBQWUsS0FBSyxVQUFTLGlCQUFpQixvQkFBb0IsY0FBYyxvQ0FBb0Msa0JBQWtCO0FBRWpLLGdCQUFLLFVBQVUscUJBQXFCO0FBT3BDLGNBQUksV0FBVSxNQUFLO0FBQ25CLGNBQUksWUFBWTtBQUNoQixjQUFJLE9BQU8sa0JBQWtCO0FBQzdCLGNBQUksU0FBUyxhQUFhLFdBQVc7QUFDckMsaUJBQU8sV0FBVyxhQUFhLFVBQWEsYUFBYSxPQUFPLFdBQVc7QUFDM0Usd0JBQWMsVUFBUztBQUN2Qix5Q0FBK0IsT0FBTSxNQUFNO0FBQzNDLGlCQUFPO0FBQUE7QUFFVCxpQ0FBeUIsU0FBUyxXQUFXLGlCQUFpQixVQUFVO0FBQ3RFO0FBQ0UsMkJBQWUsV0FBVztBQUFBO0FBRzVCLGNBQUksWUFBWSxVQUFVO0FBQzFCLGNBQUksWUFBWTtBQUNoQixjQUFJLE9BQU8sa0JBQWtCO0FBRTdCO0FBQ0UsZ0NBQW9CO0FBQUE7QUFHdEIsY0FBSSxVQUFVLHFCQUFxQjtBQUVuQyxjQUFJLFVBQVUsWUFBWSxNQUFNO0FBQzlCLHNCQUFVLFVBQVU7QUFBQSxpQkFDZjtBQUNMLHNCQUFVLGlCQUFpQjtBQUFBO0FBRzdCO0FBQ0UsZ0JBQUksZUFBZSxZQUFZLFFBQVEsQ0FBQywyQkFBMkI7QUFDakUsMENBQTRCO0FBRTVCLG9CQUFNLDhOQUE2TywwQkFBMEIsWUFBWTtBQUFBO0FBQUE7QUFJN1IsY0FBSSxTQUFTLGFBQWEsV0FBVztBQUdyQyxpQkFBTyxVQUFVO0FBQUEsWUFDZjtBQUFBO0FBRUYscUJBQVcsYUFBYSxTQUFZLE9BQU87QUFFM0MsY0FBSSxhQUFhLE1BQU07QUFDckI7QUFDRSxrQkFBSSxPQUFPLGFBQWEsWUFBWTtBQUNsQyxzQkFBTSx1R0FBNEc7QUFBQTtBQUFBO0FBSXRILG1CQUFPLFdBQVc7QUFBQTtBQUdwQix3QkFBYyxXQUFXO0FBQ3pCLGNBQUksUUFBTyxzQkFBc0IsV0FBVyxNQUFNO0FBRWxELGNBQUksVUFBUyxNQUFNO0FBQ2pCLGdDQUFvQixPQUFNLFdBQVc7QUFBQTtBQUd2QyxpQkFBTztBQUFBO0FBRVQsdUNBQStCLFdBQVc7QUFDeEMsY0FBSSxpQkFBaUIsVUFBVTtBQUUvQixjQUFJLENBQUMsZUFBZSxPQUFPO0FBQ3pCLG1CQUFPO0FBQUE7QUFHVCxrQkFBUSxlQUFlLE1BQU07QUFBQSxpQkFDdEI7QUFDSCxxQkFBTyxrQkFBa0IsZUFBZSxNQUFNO0FBQUE7QUFHOUMscUJBQU8sZUFBZSxNQUFNO0FBQUE7QUFBQTtBQUdsQywrQ0FBdUMsT0FBTztBQUM1QyxrQkFBUSxNQUFNO0FBQUEsaUJBQ1A7QUFDSCxrQkFBSSxRQUFPLE1BQU07QUFFakIsa0JBQUksaUJBQWlCLFFBQU87QUFFMUIsb0JBQUksUUFBUSwrQkFBK0I7QUFDM0MsMEJBQVUsT0FBTTtBQUFBO0FBR2xCO0FBQUEsaUJBRUc7QUFDSCxrQkFBSSxZQUFZO0FBQ2hCLHdCQUFVLFdBQVk7QUFDcEIsdUJBQU8sc0JBQXNCLE9BQU8sVUFBVTtBQUFBO0FBS2hELGtCQUFJLFlBQVk7QUFDaEIseUNBQTJCLE9BQU87QUFDbEM7QUFBQTtBQUFBO0FBSU4sbUNBQTJCLE9BQU8sV0FBVztBQUMzQyxjQUFJLGdCQUFnQixNQUFNO0FBRTFCLGNBQUksa0JBQWtCLFFBQVEsY0FBYyxlQUFlLE1BQU07QUFDL0QsMEJBQWMsWUFBWSxtQkFBbUIsY0FBYyxXQUFXO0FBQUE7QUFBQTtBQUsxRSw0Q0FBb0MsT0FBTyxXQUFXO0FBQ3BELDRCQUFrQixPQUFPO0FBQ3pCLGNBQUksWUFBWSxNQUFNO0FBRXRCLGNBQUksV0FBVztBQUNiLDhCQUFrQixXQUFXO0FBQUE7QUFBQTtBQUlqQyw4Q0FBc0MsT0FBTztBQUMzQyxjQUFJLE1BQU0sUUFBUSxtQkFBbUI7QUFLbkM7QUFBQTtBQUdGLGNBQUksWUFBWTtBQUNoQixjQUFJLE9BQU87QUFDWCxnQ0FBc0IsT0FBTyxNQUFNO0FBQ25DLHFDQUEyQixPQUFPO0FBQUE7QUFFcEMscURBQTZDLE9BQU87QUFDbEQsY0FBSSxNQUFNLFFBQVEsbUJBQW1CO0FBR25DO0FBQUE7QUFHRixjQUFJLFlBQVk7QUFDaEIsY0FBSSxPQUFPLGtCQUFrQjtBQUM3QixnQ0FBc0IsT0FBTyxNQUFNO0FBQ25DLHFDQUEyQixPQUFPO0FBQUE7QUFFcEMsK0NBQXVDLE9BQU87QUFDNUMsY0FBSSxZQUFZLGtDQUFrQztBQUVsRCxjQUFJLGNBQWMsTUFBTTtBQUN0QixtQkFBTztBQUFBO0FBR1QsaUJBQU8sVUFBVTtBQUFBO0FBR25CLFlBQUksa0JBQWtCLFNBQVUsT0FBTztBQUNyQyxpQkFBTztBQUFBO0FBR1QsNkJBQXFCLE9BQU87QUFDMUIsaUJBQU8sZ0JBQWdCO0FBQUE7QUFHekIsWUFBSSxvQkFBb0IsU0FBVSxPQUFPO0FBQ3ZDLGlCQUFPO0FBQUE7QUFHVCwrQkFBdUIsT0FBTztBQUM1QixpQkFBTyxrQkFBa0I7QUFBQTtBQUUzQixZQUFJLG9CQUFvQjtBQUN4QixZQUFJLDhCQUE4QjtBQUNsQyxZQUFJLDhCQUE4QjtBQUNsQyxZQUFJLGdCQUFnQjtBQUNwQixZQUFJLDBCQUEwQjtBQUM5QixZQUFJLDBCQUEwQjtBQUM5QixZQUFJLGlCQUFpQjtBQUNyQixZQUFJLGtCQUFrQjtBQUN0QixZQUFJLHFCQUFxQjtBQUV6QjtBQUNFLGNBQUkscUJBQXFCLFNBQVUsS0FBSyxNQUFNLFFBQU87QUFDbkQsZ0JBQUksTUFBTSxLQUFLO0FBQ2YsZ0JBQUksVUFBVSxRQUFRLE9BQU8sSUFBSSxVQUFVLE9BQU8sSUFBSTtBQUV0RCxnQkFBSSxTQUFRLE1BQU0sS0FBSyxRQUFRO0FBQzdCLGtCQUFJLFFBQVEsVUFBVTtBQUNwQix3QkFBUSxPQUFPLEtBQUs7QUFBQSxxQkFDZjtBQUNMLHVCQUFPLFFBQVE7QUFBQTtBQUdqQixxQkFBTztBQUFBO0FBSVQsb0JBQVEsT0FBTyxtQkFBbUIsSUFBSSxNQUFNLE1BQU0sU0FBUTtBQUMxRCxtQkFBTztBQUFBO0FBR1QsY0FBSSxpQkFBaUIsU0FBVSxLQUFLLE1BQU07QUFDeEMsbUJBQU8sbUJBQW1CLEtBQUssTUFBTTtBQUFBO0FBR3ZDLGNBQUkscUJBQXFCLFNBQVUsS0FBSyxTQUFTLFNBQVMsUUFBTztBQUMvRCxnQkFBSSxTQUFTLFFBQVE7QUFDckIsZ0JBQUksVUFBVSxRQUFRLE9BQU8sSUFBSSxVQUFVLE9BQU8sSUFBSTtBQUV0RCxnQkFBSSxTQUFRLE1BQU0sUUFBUSxRQUFRO0FBQ2hDLGtCQUFJLFNBQVMsUUFBUTtBQUVyQixzQkFBUSxVQUFVLFFBQVE7QUFFMUIsa0JBQUksUUFBUSxVQUFVO0FBQ3BCLHdCQUFRLE9BQU8sUUFBUTtBQUFBLHFCQUNsQjtBQUNMLHVCQUFPLFFBQVE7QUFBQTtBQUFBLG1CQUVaO0FBRUwsc0JBQVEsVUFBVSxtQkFDbEIsSUFBSSxTQUFTLFNBQVMsU0FBUyxTQUFRO0FBQUE7QUFHekMsbUJBQU87QUFBQTtBQUdULGNBQUksaUJBQWlCLFNBQVUsS0FBSyxTQUFTLFNBQVM7QUFDcEQsZ0JBQUksUUFBUSxXQUFXLFFBQVEsUUFBUTtBQUNyQyxtQkFBSztBQUVMO0FBQUEsbUJBQ0s7QUFDTCx1QkFBUyxJQUFJLEdBQUcsSUFBSSxRQUFRLFNBQVMsR0FBRyxLQUFLO0FBQzNDLG9CQUFJLFFBQVEsT0FBTyxRQUFRLElBQUk7QUFDN0IsdUJBQUs7QUFFTDtBQUFBO0FBQUE7QUFBQTtBQUtOLG1CQUFPLG1CQUFtQixLQUFLLFNBQVMsU0FBUztBQUFBO0FBR25ELGNBQUksa0JBQWtCLFNBQVUsS0FBSyxNQUFNLFFBQU8sT0FBTztBQUN2RCxnQkFBSSxVQUFTLEtBQUssUUFBUTtBQUN4QixxQkFBTztBQUFBO0FBR1QsZ0JBQUksTUFBTSxLQUFLO0FBQ2YsZ0JBQUksVUFBVSxRQUFRLE9BQU8sSUFBSSxVQUFVLE9BQU8sSUFBSTtBQUV0RCxvQkFBUSxPQUFPLGdCQUFnQixJQUFJLE1BQU0sTUFBTSxTQUFRLEdBQUc7QUFDMUQsbUJBQU87QUFBQTtBQUdULGNBQUksY0FBYyxTQUFVLEtBQUssTUFBTSxPQUFPO0FBQzVDLG1CQUFPLGdCQUFnQixLQUFLLE1BQU0sR0FBRztBQUFBO0FBR3ZDLGNBQUksV0FBVyxTQUFVLE9BQU8sSUFBSTtBQUdsQyxnQkFBSSxlQUFjLE1BQU07QUFFeEIsbUJBQU8saUJBQWdCLFFBQVEsS0FBSyxHQUFHO0FBQ3JDLDZCQUFjLGFBQVk7QUFDMUI7QUFBQTtBQUdGLG1CQUFPO0FBQUE7QUFJVCw4QkFBb0IsU0FBVSxPQUFPLElBQUksTUFBTSxPQUFPO0FBQ3BELGdCQUFJLE9BQU8sU0FBUyxPQUFPO0FBRTNCLGdCQUFJLFNBQVMsTUFBTTtBQUNqQixrQkFBSSxXQUFXLFlBQVksS0FBSyxlQUFlLE1BQU07QUFDckQsbUJBQUssZ0JBQWdCO0FBQ3JCLG1CQUFLLFlBQVk7QUFNakIsb0JBQU0sZ0JBQWdCLE9BQU8sSUFBSSxNQUFNO0FBQ3ZDLG9DQUFzQixPQUFPLFVBQVU7QUFBQTtBQUFBO0FBSTNDLHdDQUE4QixTQUFVLE9BQU8sSUFBSSxNQUFNO0FBQ3ZELGdCQUFJLE9BQU8sU0FBUyxPQUFPO0FBRTNCLGdCQUFJLFNBQVMsTUFBTTtBQUNqQixrQkFBSSxXQUFXLGVBQWUsS0FBSyxlQUFlO0FBQ2xELG1CQUFLLGdCQUFnQjtBQUNyQixtQkFBSyxZQUFZO0FBTWpCLG9CQUFNLGdCQUFnQixPQUFPLElBQUksTUFBTTtBQUN2QyxvQ0FBc0IsT0FBTyxVQUFVO0FBQUE7QUFBQTtBQUkzQyx3Q0FBOEIsU0FBVSxPQUFPLElBQUksU0FBUyxTQUFTO0FBQ25FLGdCQUFJLE9BQU8sU0FBUyxPQUFPO0FBRTNCLGdCQUFJLFNBQVMsTUFBTTtBQUNqQixrQkFBSSxXQUFXLGVBQWUsS0FBSyxlQUFlLFNBQVM7QUFDM0QsbUJBQUssZ0JBQWdCO0FBQ3JCLG1CQUFLLFlBQVk7QUFNakIsb0JBQU0sZ0JBQWdCLE9BQU8sSUFBSSxNQUFNO0FBQ3ZDLG9DQUFzQixPQUFPLFVBQVU7QUFBQTtBQUFBO0FBSzNDLDBCQUFnQixTQUFVLE9BQU8sTUFBTSxPQUFPO0FBQzVDLGtCQUFNLGVBQWUsWUFBWSxNQUFNLGVBQWUsTUFBTTtBQUU1RCxnQkFBSSxNQUFNLFdBQVc7QUFDbkIsb0JBQU0sVUFBVSxlQUFlLE1BQU07QUFBQTtBQUd2QyxrQ0FBc0IsT0FBTyxVQUFVO0FBQUE7QUFHekMsb0NBQTBCLFNBQVUsT0FBTyxNQUFNO0FBQy9DLGtCQUFNLGVBQWUsZUFBZSxNQUFNLGVBQWU7QUFFekQsZ0JBQUksTUFBTSxXQUFXO0FBQ25CLG9CQUFNLFVBQVUsZUFBZSxNQUFNO0FBQUE7QUFHdkMsa0NBQXNCLE9BQU8sVUFBVTtBQUFBO0FBR3pDLG9DQUEwQixTQUFVLE9BQU8sU0FBUyxTQUFTO0FBQzNELGtCQUFNLGVBQWUsZUFBZSxNQUFNLGVBQWUsU0FBUztBQUVsRSxnQkFBSSxNQUFNLFdBQVc7QUFDbkIsb0JBQU0sVUFBVSxlQUFlLE1BQU07QUFBQTtBQUd2QyxrQ0FBc0IsT0FBTyxVQUFVO0FBQUE7QUFHekMsMkJBQWlCLFNBQVUsT0FBTztBQUNoQyxrQ0FBc0IsT0FBTyxVQUFVO0FBQUE7QUFHekMsNEJBQWtCLFNBQVUsb0JBQW9CO0FBQzlDLDhCQUFrQjtBQUFBO0FBR3BCLCtCQUFxQixTQUFVLHNCQUFzQjtBQUNuRCxnQ0FBb0I7QUFBQTtBQUFBO0FBSXhCLHlDQUFpQyxPQUFPO0FBQ3RDLGNBQUksWUFBWSxxQkFBcUI7QUFFckMsY0FBSSxjQUFjLE1BQU07QUFDdEIsbUJBQU87QUFBQTtBQUdULGlCQUFPLFVBQVU7QUFBQTtBQUduQiw4Q0FBc0MsVUFBVTtBQUM5QyxpQkFBTztBQUFBO0FBR1QsOENBQXNDO0FBQ3BDLGlCQUFPO0FBQUE7QUFHVCxvQ0FBNEIsZ0JBQWdCO0FBQzFDLGNBQUksMEJBQTBCLGVBQWU7QUFDN0MsY0FBSSwwQkFBeUIscUJBQXFCO0FBQ2xELGlCQUFPLGdCQUFnQjtBQUFBLFlBQ3JCLFlBQVksZUFBZTtBQUFBLFlBQzNCLFNBQVMsZUFBZTtBQUFBLFlBQ3hCLHFCQUFxQixlQUFlO0FBQUEsWUFDcEMsZ0JBQWdCLGVBQWU7QUFBQSxZQUMvQjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQSxzQkFBc0I7QUFBQSxZQUN0QjtBQUFBLFlBQ0EseUJBQXlCLDJCQUEyQjtBQUFBLFlBRXBEO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFFQSxpQkFBa0I7QUFBQSxZQUdsQixtQkFBbUI7QUFBQTtBQUFBO0FBTXZCLFlBQUksNEJBQTRCLE9BQU8sZ0JBQWdCLGFBRXZELGNBQWMsU0FBVSxRQUFPO0FBRzdCLGtCQUFRLFNBQVM7QUFBQTtBQUduQiw4QkFBc0IsY0FBYztBQUNsQyxlQUFLLGdCQUFnQjtBQUFBO0FBR3ZCLDhCQUFzQixVQUFVLFNBQVMsYUFBYSxVQUFVLFNBQVMsU0FBVSxVQUFVO0FBQzNGLGNBQUksUUFBTyxLQUFLO0FBRWhCLGNBQUksVUFBUyxNQUFNO0FBQ2pCLGtCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCO0FBQ0UsZ0JBQUksT0FBTyxVQUFVLE9BQU8sWUFBWTtBQUN0QyxvQkFBTTtBQUFBLHVCQUNHLGlCQUFpQixVQUFVLEtBQUs7QUFDekMsb0JBQU07QUFBQSx1QkFDRyxPQUFPLFVBQVUsT0FBTyxhQUFhO0FBQzlDLG9CQUFNO0FBQUE7QUFHUixnQkFBSSxZQUFZLE1BQUs7QUFFckIsZ0JBQUksVUFBVSxhQUFhLGNBQWM7QUFDdkMsa0JBQUksZUFBZSw4QkFBOEIsTUFBSztBQUV0RCxrQkFBSSxjQUFjO0FBQ2hCLG9CQUFJLGFBQWEsZUFBZSxXQUFXO0FBQ3pDLHdCQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNZCwwQkFBZ0IsVUFBVSxPQUFNLE1BQU07QUFBQTtBQUd4Qyw4QkFBc0IsVUFBVSxVQUFVLGFBQWEsVUFBVSxVQUFVLFdBQVk7QUFDckY7QUFDRSxnQkFBSSxPQUFPLFVBQVUsT0FBTyxZQUFZO0FBQ3RDLG9CQUFNO0FBQUE7QUFBQTtBQUlWLGNBQUksUUFBTyxLQUFLO0FBRWhCLGNBQUksVUFBUyxNQUFNO0FBQ2pCLGlCQUFLLGdCQUFnQjtBQUNyQixnQkFBSSxZQUFZLE1BQUs7QUFFckI7QUFDRSxrQkFBSSxzQkFBc0I7QUFDeEIsc0JBQU07QUFBQTtBQUFBO0FBSVYsc0JBQVUsV0FBWTtBQUNwQiw4QkFBZ0IsTUFBTSxPQUFNLE1BQU07QUFBQTtBQUVwQyxrQ0FBc0I7QUFBQTtBQUFBO0FBSTFCLDZCQUFvQixXQUFXLFVBQVM7QUFDdEMsY0FBSSxDQUFDLGlCQUFpQixZQUFZO0FBQ2hDLGtCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLHVDQUE2QjtBQUM3QixjQUFJLGVBQWU7QUFDbkIsY0FBSSxxQ0FBcUM7QUFDekMsY0FBSSxtQkFBbUI7QUFDdkIsY0FBSSxxQkFBcUI7QUFDekIsY0FBSSxzQkFBc0I7QUFFMUIsY0FBSSxhQUFZLFFBQVEsYUFBWSxRQUFXO0FBQzdDO0FBQ0Usa0JBQUksU0FBUSxTQUFTO0FBQ25CLHFCQUFLO0FBQUEscUJBQ0E7QUFDTCxvQkFBSSxPQUFPLGFBQVksWUFBWSxhQUFZLFFBQVEsU0FBUSxhQUFhLG9CQUFvQjtBQUM5Rix3QkFBTTtBQUFBO0FBQUE7QUFBQTtBQUtaLGdCQUFJLFNBQVEsd0JBQXdCLE1BQU07QUFDeEMsNkJBQWU7QUFBQTtBQUdqQixnQkFBSSxTQUFRLHFCQUFxQixRQUFXO0FBQzFDLGlDQUFtQixTQUFRO0FBQUE7QUFHN0IsZ0JBQUksU0FBUSx1QkFBdUIsUUFBVztBQUM1QyxtQ0FBcUIsU0FBUTtBQUFBO0FBRy9CLGdCQUFJLFNBQVEsd0JBQXdCLFFBQVc7QUFDN0Msb0NBQXNCLFNBQVE7QUFBQTtBQUFBO0FBSWxDLGNBQUksUUFBTyxnQkFBZ0IsV0FBVyxnQkFBZ0IsTUFBTSxjQUFjLG9DQUFvQyxrQkFBa0I7QUFDaEksOEJBQW9CLE1BQUssU0FBUztBQUNsQyxjQUFJLHVCQUF1QixVQUFVLGFBQWEsZUFBZSxVQUFVLGFBQWE7QUFDeEYscUNBQTJCO0FBQzNCLGlCQUFPLElBQUksYUFBYTtBQUFBO0FBRzFCLHVDQUErQixjQUFjO0FBQzNDLGVBQUssZ0JBQWdCO0FBQUE7QUFHdkIsbUNBQTJCLFFBQVE7QUFDakMsY0FBSSxRQUFRO0FBQ1YseUNBQTZCO0FBQUE7QUFBQTtBQUlqQyw4QkFBc0IsVUFBVSw2QkFBNkI7QUFDN0QsNkJBQXFCLFdBQVcsaUJBQWlCLFVBQVM7QUFDeEQsY0FBSSxDQUFDLGlCQUFpQixZQUFZO0FBQ2hDLGtCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLHVDQUE2QjtBQUU3QjtBQUNFLGdCQUFJLG9CQUFvQixRQUFXO0FBQ2pDLG9CQUFNO0FBQUE7QUFBQTtBQU1WLGNBQUkscUJBQXFCLFlBQVcsT0FBTyxXQUFVO0FBRXJELGNBQUksaUJBQWlCLFlBQVcsUUFBUSxTQUFRLG1CQUFtQjtBQUNuRSxjQUFJLGVBQWU7QUFDbkIsY0FBSSxxQ0FBcUM7QUFDekMsY0FBSSxtQkFBbUI7QUFDdkIsY0FBSSxxQkFBcUI7QUFFekIsY0FBSSxhQUFZLFFBQVEsYUFBWSxRQUFXO0FBQzdDLGdCQUFJLFNBQVEsd0JBQXdCLE1BQU07QUFDeEMsNkJBQWU7QUFBQTtBQUdqQixnQkFBSSxTQUFRLHFCQUFxQixRQUFXO0FBQzFDLGlDQUFtQixTQUFRO0FBQUE7QUFHN0IsZ0JBQUksU0FBUSx1QkFBdUIsUUFBVztBQUM1QyxtQ0FBcUIsU0FBUTtBQUFBO0FBQUE7QUFJakMsY0FBSSxRQUFPLHlCQUF5QixpQkFBaUIsTUFBTSxXQUFXLGdCQUFnQixvQkFBb0IsY0FBYyxvQ0FBb0Msa0JBQWtCO0FBQzlLLDhCQUFvQixNQUFLLFNBQVM7QUFFbEMscUNBQTJCO0FBRTNCLGNBQUksZ0JBQWdCO0FBQ2xCLHFCQUFTLElBQUksR0FBRyxJQUFJLGVBQWUsUUFBUSxLQUFLO0FBQzlDLGtCQUFJLGdCQUFnQixlQUFlO0FBQ25DLGdEQUFrQyxPQUFNO0FBQUE7QUFBQTtBQUk1QyxpQkFBTyxJQUFJLHNCQUFzQjtBQUFBO0FBRW5DLGtDQUEwQixNQUFNO0FBQzlCLGlCQUFPLENBQUMsQ0FBRSxTQUFTLE1BQUssYUFBYSxnQkFBZ0IsS0FBSyxhQUFhLGlCQUFpQixLQUFLLGFBQWEsMEJBQTBCLENBQUM7QUFBQTtBQUl2SSx3Q0FBZ0MsTUFBTTtBQUNwQyxpQkFBTyxDQUFDLENBQUUsU0FBUyxNQUFLLGFBQWEsZ0JBQWdCLEtBQUssYUFBYSxpQkFBaUIsS0FBSyxhQUFhLDBCQUEwQixLQUFLLGFBQWEsZ0JBQWdCLEtBQUssY0FBYztBQUFBO0FBRzNMLDhDQUFzQyxXQUFXO0FBQy9DO0FBQ0UsZ0JBQUksVUFBVSxhQUFhLGdCQUFnQixVQUFVLFdBQVcsVUFBVSxRQUFRLGtCQUFrQixRQUFRO0FBQzFHLG9CQUFNO0FBQUE7QUFHUixnQkFBSSx3QkFBd0IsWUFBWTtBQUN0QyxrQkFBSSxVQUFVLHFCQUFxQjtBQUNqQyxzQkFBTTtBQUFBLHFCQUNEO0FBQ0wsc0JBQU07QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1kLFlBQUksc0JBQXNCLHFCQUFxQjtBQUMvQyxZQUFJO0FBRUo7QUFDRSxtQ0FBeUIsU0FBVSxXQUFXO0FBQzVDLGdCQUFJLFVBQVUsdUJBQXVCLFVBQVUsYUFBYSxjQUFjO0FBQ3hFLGtCQUFJLGVBQWUsOEJBQThCLFVBQVUsb0JBQW9CO0FBRS9FLGtCQUFJLGNBQWM7QUFDaEIsb0JBQUksYUFBYSxlQUFlLFdBQVc7QUFDekMsd0JBQU07QUFBQTtBQUFBO0FBQUE7QUFLWixnQkFBSSw0QkFBNEIsQ0FBQyxDQUFDLFVBQVU7QUFDNUMsZ0JBQUksU0FBUywrQkFBK0I7QUFDNUMsZ0JBQUksdUJBQXVCLENBQUMsQ0FBRSxXQUFVLG9CQUFvQjtBQUU1RCxnQkFBSSx3QkFBd0IsQ0FBQywyQkFBMkI7QUFDdEQsb0JBQU07QUFBQTtBQUdSLGdCQUFJLFVBQVUsYUFBYSxnQkFBZ0IsVUFBVSxXQUFXLFVBQVUsUUFBUSxrQkFBa0IsUUFBUTtBQUMxRyxvQkFBTTtBQUFBO0FBQUE7QUFBQTtBQUtaLGdEQUF3QyxXQUFXO0FBQ2pELGNBQUksQ0FBQyxXQUFXO0FBQ2QsbUJBQU87QUFBQTtBQUdULGNBQUksVUFBVSxhQUFhLGVBQWU7QUFDeEMsbUJBQU8sVUFBVTtBQUFBLGlCQUNaO0FBQ0wsbUJBQU8sVUFBVTtBQUFBO0FBQUE7QUFJckIsMENBQWtDO0FBQUE7QUFJbEMsa0RBQTBDLFdBQVcsaUJBQWlCLGlCQUFpQixVQUFVLHNCQUFzQjtBQUNySCxjQUFJLHNCQUFzQjtBQUN4QixnQkFBSSxPQUFPLGFBQWEsWUFBWTtBQUNsQyxrQkFBSSxtQkFBbUI7QUFFdkIseUJBQVcsV0FBWTtBQUNyQixvQkFBSSxXQUFXLHNCQUFzQjtBQUNyQyxpQ0FBaUIsS0FBSztBQUFBO0FBQUE7QUFJMUIsZ0JBQUksUUFBTyx5QkFBeUIsaUJBQWlCLFVBQVUsV0FBVyxZQUFZLE1BQ3RGLE9BQ0EsT0FDQSxJQUNBO0FBQ0Esc0JBQVUsc0JBQXNCO0FBQ2hDLGdDQUFvQixNQUFLLFNBQVM7QUFDbEMsZ0JBQUksdUJBQXVCLFVBQVUsYUFBYSxlQUFlLFVBQVUsYUFBYTtBQUN4Rix1Q0FBMkI7QUFDM0I7QUFDQSxtQkFBTztBQUFBLGlCQUNGO0FBRUwsZ0JBQUk7QUFFSixtQkFBTyxjQUFjLFVBQVUsV0FBVztBQUN4Qyx3QkFBVSxZQUFZO0FBQUE7QUFHeEIsZ0JBQUksT0FBTyxhQUFhLFlBQVk7QUFDbEMsa0JBQUksb0JBQW9CO0FBRXhCLHlCQUFXLFdBQVk7QUFDckIsb0JBQUksV0FBVyxzQkFBc0I7QUFFckMsa0NBQWtCLEtBQUs7QUFBQTtBQUFBO0FBSTNCLGdCQUFJLFFBQVEsZ0JBQWdCLFdBQVcsWUFBWSxNQUNuRCxPQUNBLE9BQ0EsSUFDQTtBQUVBLHNCQUFVLHNCQUFzQjtBQUNoQyxnQ0FBb0IsTUFBTSxTQUFTO0FBRW5DLGdCQUFJLHdCQUF3QixVQUFVLGFBQWEsZUFBZSxVQUFVLGFBQWE7QUFFekYsdUNBQTJCO0FBRTNCLHNCQUFVLFdBQVk7QUFDcEIsOEJBQWdCLGlCQUFpQixPQUFPLGlCQUFpQjtBQUFBO0FBRTNELG1CQUFPO0FBQUE7QUFBQTtBQUlYLHlDQUFpQyxVQUFVLFlBQVk7QUFDckQ7QUFDRSxnQkFBSSxhQUFhLFFBQVEsT0FBTyxhQUFhLFlBQVk7QUFDdkQsb0JBQU0sbUdBQXdHLFlBQVk7QUFBQTtBQUFBO0FBQUE7QUFLaEksa0RBQTBDLGlCQUFpQixVQUFVLFdBQVcsY0FBYyxVQUFVO0FBQ3RHO0FBQ0UsbUNBQXVCO0FBQ3ZCLG9DQUF3QixhQUFhLFNBQVksT0FBTyxVQUFVO0FBQUE7QUFHcEUsY0FBSSxZQUFZLFVBQVU7QUFDMUIsY0FBSTtBQUVKLGNBQUksQ0FBQyxXQUFXO0FBRWQsb0JBQU8saUNBQWlDLFdBQVcsVUFBVSxpQkFBaUIsVUFBVTtBQUFBLGlCQUNuRjtBQUNMLG9CQUFPO0FBRVAsZ0JBQUksT0FBTyxhQUFhLFlBQVk7QUFDbEMsa0JBQUksbUJBQW1CO0FBRXZCLHlCQUFXLFdBQVk7QUFDckIsb0JBQUksV0FBVyxzQkFBc0I7QUFDckMsaUNBQWlCLEtBQUs7QUFBQTtBQUFBO0FBSzFCLDRCQUFnQixVQUFVLE9BQU0saUJBQWlCO0FBQUE7QUFHbkQsaUJBQU8sc0JBQXNCO0FBQUE7QUFHL0IsNkJBQXFCLG9CQUFvQjtBQUN2QztBQUNFLGdCQUFJLFFBQVEsb0JBQW9CO0FBRWhDLGdCQUFJLFVBQVUsUUFBUSxNQUFNLGNBQWMsTUFBTTtBQUM5QyxrQkFBSSwwQkFBMEIsTUFBTSxVQUFVO0FBRTlDLGtCQUFJLENBQUMseUJBQXlCO0FBQzVCLHNCQUFNLGtSQUFzUyx5QkFBeUIsTUFBTSxTQUFTO0FBQUE7QUFHdFYsb0JBQU0sVUFBVSwyQkFBMkI7QUFBQTtBQUFBO0FBSS9DLGNBQUksc0JBQXNCLE1BQU07QUFDOUIsbUJBQU87QUFBQTtBQUdULGNBQUksbUJBQW1CLGFBQWEsY0FBYztBQUNoRCxtQkFBTztBQUFBO0FBR1Q7QUFDRSxtQkFBTyw0QkFBNEIsb0JBQW9CO0FBQUE7QUFBQTtBQUczRCx5QkFBaUIsU0FBUyxXQUFXLFVBQVU7QUFDN0M7QUFDRSxrQkFBTTtBQUFBO0FBR1IsY0FBSSxDQUFDLHVCQUF1QixZQUFZO0FBQ3RDLGtCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCO0FBQ0UsZ0JBQUksZUFBZSx3QkFBd0IsY0FBYyxVQUFVLHdCQUF3QjtBQUUzRixnQkFBSSxjQUFjO0FBQ2hCLG9CQUFNO0FBQUE7QUFBQTtBQUtWLGlCQUFPLGlDQUFpQyxNQUFNLFNBQVMsV0FBVyxNQUFNO0FBQUE7QUFFMUUsd0JBQWdCLFNBQVMsV0FBVyxVQUFVO0FBQzVDO0FBQ0Usa0JBQU07QUFBQTtBQUdSLGNBQUksQ0FBQyx1QkFBdUIsWUFBWTtBQUN0QyxrQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQjtBQUNFLGdCQUFJLGVBQWUsd0JBQXdCLGNBQWMsVUFBVSx3QkFBd0I7QUFFM0YsZ0JBQUksY0FBYztBQUNoQixvQkFBTTtBQUFBO0FBQUE7QUFJVixpQkFBTyxpQ0FBaUMsTUFBTSxTQUFTLFdBQVcsT0FBTztBQUFBO0FBRTNFLHFEQUE2QyxpQkFBaUIsU0FBUyxlQUFlLFVBQVU7QUFDOUY7QUFDRSxrQkFBTTtBQUFBO0FBR1IsY0FBSSxDQUFDLHVCQUF1QixnQkFBZ0I7QUFDMUMsa0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsY0FBSSxtQkFBbUIsUUFBUSxDQUFDLElBQUksa0JBQWtCO0FBQ3BELGtCQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLGlCQUFPLGlDQUFpQyxpQkFBaUIsU0FBUyxlQUFlLE9BQU87QUFBQTtBQUUxRix3Q0FBZ0MsV0FBVztBQUN6QyxjQUFJLENBQUMsdUJBQXVCLFlBQVk7QUFDdEMsa0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEI7QUFDRSxnQkFBSSxlQUFlLHdCQUF3QixjQUFjLFVBQVUsd0JBQXdCO0FBRTNGLGdCQUFJLGNBQWM7QUFDaEIsb0JBQU07QUFBQTtBQUFBO0FBSVYsY0FBSSxVQUFVLHFCQUFxQjtBQUNqQztBQUNFLGtCQUFJLFNBQVMsK0JBQStCO0FBQzVDLGtCQUFJLDJCQUEyQixVQUFVLENBQUMsb0JBQW9CO0FBRTlELGtCQUFJLDBCQUEwQjtBQUM1QixzQkFBTTtBQUFBO0FBQUE7QUFLVixzQkFBVSxXQUFZO0FBQ3BCLCtDQUFpQyxNQUFNLE1BQU0sV0FBVyxPQUFPLFdBQVk7QUFFekUsMEJBQVUsc0JBQXNCO0FBQ2hDLHNDQUFzQjtBQUFBO0FBQUE7QUFLMUIsbUJBQU87QUFBQSxpQkFDRjtBQUNMO0FBQ0Usa0JBQUksVUFBVSwrQkFBK0I7QUFFN0Msa0JBQUksdUJBQXVCLENBQUMsQ0FBRSxZQUFXLG9CQUFvQjtBQUU3RCxrQkFBSSx1QkFBdUIsVUFBVSxhQUFhLGdCQUFnQix1QkFBdUIsVUFBVSxlQUFlLENBQUMsQ0FBQyxVQUFVLFdBQVc7QUFFekksa0JBQUksc0JBQXNCO0FBQ3hCLHNCQUFNLDhIQUFtSSx1QkFBdUIsb0ZBQXlGO0FBQUE7QUFBQTtBQUk3UCxtQkFBTztBQUFBO0FBQUE7QUFJWCx1Q0FBK0I7QUFDL0Isc0NBQThCO0FBQzlCLDZDQUFxQztBQUNyQyxvQ0FBNEI7QUFDNUIsc0NBQThCO0FBRTlCO0FBQ0UsY0FBSSxPQUFPLFFBQVEsY0FDbkIsSUFBSSxhQUFhLFFBQVEsT0FBTyxJQUFJLFVBQVUsWUFBWSxjQUFjLE9BQU8sUUFBUSxjQUN2RixJQUFJLGFBQWEsUUFBUSxPQUFPLElBQUksVUFBVSxVQUFVLGNBQWMsT0FBTyxJQUFJLFVBQVUsWUFBWSxZQUFZO0FBQ2pILGtCQUFNO0FBQUE7QUFBQTtBQUlWLGlDQUF5QjtBQUN6QixrQ0FBMEIsa0JBQWtCLGlCQUFpQjtBQUU3RCxnQ0FBd0IsVUFBVSxXQUFXO0FBQzNDLGNBQUksTUFBTSxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFFOUUsY0FBSSxDQUFDLGlCQUFpQixZQUFZO0FBQ2hDLGtCQUFNLElBQUksTUFBTTtBQUFBO0FBS2xCLGlCQUFPLGFBQWEsVUFBVSxXQUFXLE1BQU07QUFBQTtBQUdqRCw0Q0FBb0MsaUJBQWlCLFNBQVMsZUFBZSxVQUFVO0FBQ3JGLGlCQUFPLG9DQUFvQyxpQkFBaUIsU0FBUyxlQUFlO0FBQUE7QUFHdEYsWUFBSSxZQUFZO0FBQUEsVUFDZCx1QkFBdUI7QUFBQSxVQUd2QixRQUFRLENBQUMscUJBQXFCLHFCQUFxQiw4QkFBOEIscUJBQXFCLHNCQUFzQjtBQUFBO0FBRzlILDhCQUFzQixXQUFXLFVBQVM7QUFDeEM7QUFDRSxnQkFBSSxDQUFDLFVBQVUsdUJBQXVCO0FBQ3BDLG9CQUFNO0FBQUE7QUFBQTtBQUlWLGlCQUFPLFlBQVcsV0FBVztBQUFBO0FBRy9CLCtCQUF1QixXQUFXLGlCQUFpQixVQUFTO0FBQzFEO0FBQ0UsZ0JBQUksQ0FBQyxVQUFVLHVCQUF1QjtBQUNwQyxvQkFBTTtBQUFBO0FBQUE7QUFJVixpQkFBTyxZQUFZLFdBQVcsaUJBQWlCO0FBQUE7QUFNakQsNkJBQXFCLElBQUk7QUFDdkI7QUFDRSxnQkFBSSxzQkFBc0I7QUFDeEIsb0JBQU07QUFBQTtBQUFBO0FBSVYsaUJBQU8sVUFBVTtBQUFBO0FBRW5CLFlBQUksZ0JBQWdCLG1CQUFtQjtBQUFBLFVBQ3JDLHlCQUF5QjtBQUFBLFVBQ3pCLFlBQWE7QUFBQSxVQUNiLFNBQVM7QUFBQSxVQUNULHFCQUFxQjtBQUFBO0FBR3ZCO0FBQ0UsY0FBSSxDQUFDLGlCQUFpQixhQUFhLE9BQU8sUUFBUSxPQUFPLE1BQU07QUFFN0QsZ0JBQUksVUFBVSxVQUFVLFFBQVEsWUFBWSxNQUFNLFVBQVUsVUFBVSxRQUFRLFlBQVksTUFBTSxVQUFVLFVBQVUsUUFBUSxhQUFhLElBQUk7QUFDM0ksa0JBQUksV0FBVyxPQUFPLFNBQVM7QUFFL0Isa0JBQUksbUJBQW1CLEtBQUssV0FBVztBQUVyQyx3QkFBUSxLQUFLLCtHQUEwSCxjQUFhLFVBQVUsa0hBQXVILEtBQUs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1sUyxpQkFBUSxxREFBcUQ7QUFDN0QsaUJBQVEsZUFBZTtBQUN2QixpQkFBUSxhQUFhO0FBQ3JCLGlCQUFRLGNBQWM7QUFDdEIsaUJBQVEsWUFBWTtBQUNwQixpQkFBUSxVQUFVO0FBQ2xCLGlCQUFRLGNBQWM7QUFDdEIsaUJBQVEsU0FBUztBQUNqQixpQkFBUSx5QkFBeUI7QUFDakMsaUJBQVEsMEJBQTBCO0FBQ2xDLGlCQUFRLHNDQUFzQztBQUM5QyxpQkFBUSxVQUFVO0FBRWxCLFlBQ0UsT0FBTyxtQ0FBbUMsZUFDMUMsT0FBTywrQkFBK0IsK0JBQ3BDLFlBQ0Y7QUFDQSx5Q0FBK0IsMkJBQTJCLElBQUk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7QUM3NTVCaEU7QUFBQTtBQUFBO0FBOEJBLFFBQUksT0FBdUM7QUFHekM7QUFDQSxjQUFPLFVBQVU7QUFBQSxXQUNaO0FBQ0wsY0FBTyxVQUFVO0FBQUE7QUFBQTtBQUFBOzs7QUNwQ25CO0FBQUE7QUFRQSxJQUFDLDJDQUEwQyxNQUFNLFNBQVM7QUFDekQsVUFBRyxPQUFPLFlBQVksWUFBWSxPQUFPLFdBQVc7QUFDbkQsZUFBTyxVQUFVLFFBQVEsaUJBQWtCO0FBQUEsZUFDcEMsT0FBTyxXQUFXLGNBQWMsT0FBTztBQUM5QyxlQUFPLENBQUMsU0FBUyxjQUFjO0FBQUEsZUFDeEIsT0FBTyxZQUFZO0FBQzFCLGdCQUFRLGdCQUFnQixRQUFRLGlCQUFrQjtBQUFBO0FBRWxELGFBQUssZ0JBQWdCLFFBQVEsS0FBSyxVQUFVLEtBQUs7QUFBQSxPQUNoRCxZQUFZLFNBQVMsbUNBQW1DLHVDQUF1QztBQUNsRyxhQUFpQixPQUFNO0FBQ2IsWUFBSSxzQkFBdUI7QUFBQSxVQUUvQiw2Q0FJQyxDQUFDLHlCQUF5QixxQkFBcUIsd0JBQXdCO0FBRTlFO0FBQ0EsaUJBQUs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUlDLGtEQUlDLENBQUMsUUFBUSwwQkFBMEIsd0JBQXdCO0FBRWxFLGlCQUFLO0FBQUE7QUFBQSxVQUlDLDBDQUlDLFNBQVMsUUFBUSxTQUFTLHFCQUFxQjtBQUV0RCxpQkFBSztBQUFBO0FBQUEsVUFJQyxnREFJQyxDQUFDLFdBQVc7QUFFbkI7QUFDQSxpQkFBSztBQUFBO0FBQUEsVUFJQyw0REFJQyxDQUFDLHlCQUF5QixxQkFBcUIsd0JBQXdCO0FBRTlFO0FBQ0EsaUJBQUs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBSUMsdURBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQSxVQUlDLDJEQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtB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QTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUlDLDZDQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBSUMsOERBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUlDLDJEQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBSUMsdURBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUlDLCtEQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBSUMsNkRBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQSxVQUlDLGtFQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUlDLDhEQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBSUMsbUVBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxrREFJQyxDQUFDLHlCQUF5QixxQkFBcUIsd0JBQXdCO0FBRTlFO0FBQ0EsaUJBQUs7QUFBQTtBQUFBLFVBSUMsaURBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQSxVQUlDLDZDQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUEsVUFJQyxpREFJQyxDQUFDLHlCQUF5QixxQkFBcUIsd0JBQXdCO0FBRTlFO0FBQ0EsaUJBQUs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBSUMsOENBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQSxVQUlDLDRDQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUEsVUFJQyw2QkFJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxvQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxnQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyw4QkFJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxzQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxzQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxxQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyx1Q0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxxQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxnQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxzQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyw0Q0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxvQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxvQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxvQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxnQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxpQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxxQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQywwQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxxQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQywrQkFJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQywwQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxpQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxxQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyx3Q0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQywyQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxpQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQywrQkFJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQywrQkFJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxtQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQywrQkFJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxrQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxpQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxpQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxrQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxzQkFJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyx5QkFJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxtQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyxnQ0FJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQywrRUFJQyxDQUFDLFFBQVEsMEJBQTBCLHdCQUF3QjtBQUVsRTtBQUNBLGlCQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBSUMsa0RBSUMsQ0FBQyxTQUFRLDJCQUEwQix5QkFBd0I7QUFFbEUsZ0JBQUksTUFBTTtBQUFBLGNBQ1QsZ0JBQWdCO0FBQUEsZ0JBQ2Y7QUFBQSxnQkFDQTtBQUFBO0FBQUEsY0FFRCxnQkFBZ0I7QUFBQSxnQkFDZjtBQUFBLGdCQUNBO0FBQUE7QUFBQSxjQUVELGdCQUFnQjtBQUFBLGdCQUNmO0FBQUEsZ0JBQ0E7QUFBQTtBQUFBLGNBRUQsZ0JBQWdCO0FBQUEsZ0JBQ2Y7QUFBQSxnQkFDQTtBQUFBO0FBQUEsY0FFRCxnQkFBZ0I7QUFBQSxnQkFDZjtBQUFBLGdCQUNBO0FBQUE7QUFBQSxjQUVELGdCQUFnQjtBQUFBLGdCQUNmO0FBQUEsZ0JBQ0E7QUFBQTtBQUFBLGNBRUQsZ0JBQWdCO0FBQUEsZ0JBQ2Y7QUFBQSxnQkFDQTtBQUFBO0FBQUEsY0FFRCxnQkFBZ0I7QUFBQSxnQkFDZjtBQUFBLGdCQUNBO0FBQUE7QUFBQSxjQUVELGFBQWE7QUFBQSxnQkFDWjtBQUFBO0FBQUEsY0FFRCxnQkFBZ0I7QUFBQSxnQkFDZjtBQUFBLGdCQUNBO0FBQUE7QUFBQSxjQUVELGdCQUFnQjtBQUFBLGdCQUNmO0FBQUEsZ0JBQ0E7QUFBQTtBQUFBLGNBRUQsZ0JBQWdCO0FBQUEsZ0JBQ2Y7QUFBQSxnQkFDQTtBQUFBO0FBQUEsY0FFRCxnQkFBZ0I7QUFBQSxnQkFDZjtBQUFBLGdCQUNBO0FBQUE7QUFBQSxjQUVELGdCQUFnQjtBQUFBLGdCQUNmO0FBQUEsZ0JBQ0E7QUFBQTtBQUFBLGNBRUQsZ0JBQWdCO0FBQUEsZ0JBQ2Y7QUFBQSxnQkFDQTtBQUFBO0FBQUEsY0FFRCxnQkFBZ0I7QUFBQSxnQkFDZjtBQUFBLGdCQUNBO0FBQUE7QUFBQSxjQUVELGdCQUFnQjtBQUFBLGdCQUNmO0FBQUEsZ0JBQ0E7QUFBQTtBQUFBLGNBRUQsZ0JBQWdCO0FBQUEsZ0JBQ2Y7QUFBQSxnQkFDQTtBQUFBO0FBQUEsY0FFRCxnQkFBZ0I7QUFBQSxnQkFDZjtBQUFBLGdCQUNBO0FBQUE7QUFBQSxjQUVELGdCQUFnQjtBQUFBLGdCQUNmO0FBQUEsZ0JBQ0E7QUFBQTtBQUFBLGNBRUQsa0JBQWtCO0FBQUEsZ0JBQ2pCO0FBQUEsZ0JBQ0E7QUFBQTtBQUFBLGNBRUQsZ0JBQWdCO0FBQUEsZ0JBQ2Y7QUFBQSxnQkFDQTtBQUFBO0FBQUEsY0FFRCxnQkFBZ0I7QUFBQSxnQkFDZjtBQUFBLGdCQUNBO0FBQUE7QUFBQSxjQUVELGdCQUFnQjtBQUFBLGdCQUNmO0FBQUEsZ0JBQ0E7QUFBQTtBQUFBLGNBRUQsZ0JBQWdCO0FBQUEsZ0JBQ2Y7QUFBQSxnQkFDQTtBQUFBO0FBQUEsY0FFRCxnQkFBZ0I7QUFBQSxnQkFDZjtBQUFBLGdCQUNBO0FBQUE7QUFBQSxjQUVELGdCQUFnQjtBQUFBLGdCQUNmO0FBQUEsZ0JBQ0E7QUFBQTtBQUFBLGNBRUQsZ0JBQWdCO0FBQUEsZ0JBQ2Y7QUFBQSxnQkFDQTtBQUFBO0FBQUEsY0FFRCxnQkFBZ0I7QUFBQSxnQkFDZjtBQUFBLGdCQUNBO0FBQUE7QUFBQSxjQUVELGdCQUFnQjtBQUFBLGdCQUNmO0FBQUEsZ0JBQ0E7QUFBQTtBQUFBLGNBRUQsZ0JBQWdCO0FBQUEsZ0JBQ2Y7QUFBQSxnQkFDQTtBQUFBO0FBQUEsY0FFRCxzQkFBc0I7QUFBQSxnQkFDckI7QUFBQTtBQUFBLGNBRUQsZ0JBQWdCO0FBQUEsZ0JBQ2Y7QUFBQSxnQkFDQTtBQUFBO0FBQUEsY0FFRCxnQkFBZ0I7QUFBQSxnQkFDZjtBQUFBLGdCQUNBO0FBQUE7QUFBQSxjQUVELGdC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QTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUlDLHdEQUlDLENBQUMsV0FBVztBQUVuQjtBQUNBLGlCQUFLO0FBQUE7QUFBQSxVQUlDLHVDQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUEsVUFJQyxpQ0FJQyxDQUFDLHlCQUF5QixxQkFBcUIsd0JBQXdCO0FBRTlFO0FBQ0EsaUJBQUs7QUFBQTtBQUFBLFVBSUMsa0NBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQSxVQUlDLHFDQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBSUMsMENBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQSxVQUlDLHNDQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUEsVUFJQyw4Q0FJQyxDQUFDLHlCQUF5QixxQkFBcUIsd0JBQXdCO0FBRTlFO0FBQ0EsaUJBQUs7QUFBQTtBQUFBLFVBSUMsa0NBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQSxVQUlDLG9DQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUEsVUFJQywrQkFJQyxDQUFDLHlCQUF5QixxQkFBcUIsd0JBQXdCO0FBRTlFO0FBQ0EsaUJBQUs7QUFBQTtBQUFBLFVBSUMsaUNBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQSxVQUlDLG1DQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUEsVUFJQyxnQ0FJQyxDQUFDLHlCQUF5QixxQkFBcUIsd0JBQXdCO0FBRTlFO0FBQ0EsaUJBQUs7QUFBQTtBQUFBLFVBSUMsb0NBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQSxVQUlDLHNDQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7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QUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FB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QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUlDLDRCQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUEsVUFJQyx1QkFJQyxDQUFDLHlCQUF5QixxQkFBcUIsd0JBQXdCO0FBRTlFO0FBQ0EsaUJBQUs7QUFBQTtBQUFBLFVBSUMsc0JBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQSxVQUlDLHlCQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQyx3QkFJQyxDQUFDLHlCQUF5QixxQkFBcUIsd0JBQXdCO0FBRTlFO0FBQ0EsaUJBQUs7QUFBQTtBQUFBLFVBSUMseUJBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUlDLHVCQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBSUMsK0JBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQSxVQUlDLDRCQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUEsVUFJQywyQkFJQyxDQUFDLHlCQUF5QixxQkFBcUIsd0JBQXdCO0FBRTlFO0FBQ0EsaUJBQUs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUlDLDhCQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUEsVUFJQyxpQ0FJQyxDQUFDLHlCQUF5QixxQkFBcUIsd0JBQXdCO0FBRTlFO0FBQ0EsaUJBQUs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBSUMsMEJBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJQywwQkFJQyxDQUFDLHlCQUF5QixxQkFBcUIsd0JBQXdCO0FBRTlFO0FBQ0EsaUJBQUs7QUFBQTtBQUFBLFVBSUMsd0NBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQSxVQUlDLGtDQUlDLENBQUMseUJBQXlCLHFCQUFxQix3QkFBd0I7QUFFOUU7QUFDQSxpQkFBSztBQUFBO0FBQUEsVUFJQywrQkFJQyxDQUFDLHlCQUF5QixxQkFBcUIsd0JBQXdCO0FBRTlFO0FBQ0EsaUJBQUs7QUFBQTtBQUFBLFVBSUMsbUNBSUMsQ0FBQyx5QkFBeUIscUJBQXFCLHdCQUF3QjtBQUU5RTtBQUNBLGlCQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFB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O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUlDLDBLQUlDLENBQUMsWUFBVztBQUVuQjtBQUNBLG9CQUFPLFVBQVU7QUFBQTtBQUFBLFVBSVgseVBBSUMsQ0FBQyxZQUFXO0FBRW5CO0FBQ0Esb0JBQU8sVUFBVTtBQUFBO0FBQUEsVUFJWCwwUUFJQyxDQUFDLFlBQVc7QUFFbkI7QUFDQSxvQkFBTyxVQUFVO0FBQUE7QUFBQSxVQUlYLGtDQUlDLENBQUMsU0FBUSwyQkFBMEIseUJBQXdCO0FBRWxFO0FBQ0Esb0JBQU8sVUFBVSxxQkFBb0IsSUFBSTtBQUFBO0FBQUEsVUFJbkMsZ0NBSUMsQ0FBQyxTQUFRLDJCQUEwQix5QkFBd0I7QUFFbEU7QUFDQSxvQkFBTyxVQUFVLHFCQUFvQixJQUFJO0FBQUE7QUFBQSxVQUluQyxTQUlDLENBQUMsWUFBVztBQUVuQjtBQUNBLG9CQUFPLFVBQVU7QUFBQTtBQUFBLFVBSVgsYUFJQyxDQUFDLFlBQVc7QUFFbkI7QUFDQSxvQkFBTyxVQUFVO0FBQUE7QUFBQSxVQUlYLDZEQUlDLENBQUMscUNBQXFDLHFCQUFxQix3QkFBd0I7QUFFMUY7QUFDQSxpQkFBSztBQUFBO0FBQUEsVUFJQyw2Q0FJQyxDQUFDLHFDQUFxQyxxQkFBcUIsd0JBQXdCO0FBRTFGO0FBQ0EsaUJBQUs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUlDLHNEQUlDLENBQUMscUNBQXFDLHFCQUFxQix3QkFBd0I7QUFFMUY7QUFDQSxpQkFBSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUlDLG9EQUlDLENBQUMsWUFBVztBQUVuQjtBQUNBLG9CQUFPLFVBQVUsS0FBSyxNQUFNO0FBQUE7QUFBQSxVQUl0Qix5QkFJQyxDQUFDLFlBQVc7QUFFbkI7QUFDQSxvQkFBTyxVQUFVLEtBQUssTUFBTTtBQUFBO0FBQUEsVUFJdEIsa0NBSUMsQ0FBQyxZQUFXO0FBRW5CO0FBQ0Esb0JBQU8sVUFBVSxLQUFLLE1BQU07QUFBQTtBQUFBLFVBSXRCLGtCQUlDLENBQUMsWUFBVztBQUVuQjtBQUNBLG9CQUFPLFVBQVUsS0FBSyxNQUFNO0FBQUE7QUFBQTtBQU9sQixZQUFJLDJCQUEyQjtBQUcvQixxQ0FBNkIsVUFBVTtBQUV0QyxjQUFJLGVBQWUseUJBQXlCO0FBQzVDLGNBQUksaUJBQWlCLFFBQVc7QUFDL0IsbUJBQU8sYUFBYTtBQUFBO0FBR3JCLGNBQUksVUFBUyx5QkFBeUIsWUFBWTtBQUFBLFlBQ2pELElBQUk7QUFBQSxZQUNKLFFBQVE7QUFBQSxZQUNSLFNBQVM7QUFBQTtBQUlWLDhCQUFvQixVQUFVLEtBQUssUUFBTyxTQUFTLFNBQVEsUUFBTyxTQUFTO0FBRzNFLGtCQUFPLFNBQVM7QUFHaEIsaUJBQU8sUUFBTztBQUFBO0FBSWYsNEJBQW9CLElBQUk7QUFJeEIsUUFBQyxPQUFNO0FBRU4sOEJBQW9CLElBQUksQ0FBQyxZQUFXO0FBQ25DLGdCQUFJLFNBQVMsV0FBVSxRQUFPLGFBQzdCLE1BQU8sUUFBTyxhQUNkLE1BQU87QUFDUixnQ0FBb0IsRUFBRSxRQUFRLEVBQUUsR0FBRztBQUNuQyxtQkFBTztBQUFBO0FBQUE7QUFLVCxRQUFDLE9BQU07QUFDTixjQUFJLFdBQVcsT0FBTyxpQkFBaUIsQ0FBQyxRQUFTLE9BQU8sZUFBZSxPQUFRLENBQUMsUUFBUyxJQUFJO0FBQzdGLGNBQUk7QUFPSiw4QkFBb0IsSUFBSSxTQUFTLE9BQU8sTUFBTTtBQUM3QyxnQkFBRyxPQUFPO0FBQUcsc0JBQVEsS0FBSztBQUMxQixnQkFBRyxPQUFPO0FBQUcscUJBQU87QUFDcEIsZ0JBQUcsT0FBTyxVQUFVLFlBQVksT0FBTztBQUN0QyxrQkFBSSxPQUFPLEtBQU0sTUFBTTtBQUFZLHVCQUFPO0FBQzFDLGtCQUFJLE9BQU8sTUFBTyxPQUFPLE1BQU0sU0FBUztBQUFZLHVCQUFPO0FBQUE7QUFFNUQsZ0JBQUksS0FBSyxPQUFPLE9BQU87QUFDdkIsZ0NBQW9CLEVBQUU7QUFDdEIsZ0JBQUksTUFBTTtBQUNWLDZCQUFpQixrQkFBa0IsQ0FBQyxNQUFNLFNBQVMsS0FBSyxTQUFTLEtBQUssU0FBUztBQUMvRSxxQkFBUSxVQUFVLE9BQU8sS0FBSyxPQUFPLE9BQU8sV0FBVyxZQUFZLENBQUMsQ0FBQyxlQUFlLFFBQVEsVUFBVSxVQUFVLFNBQVMsVUFBVTtBQUNsSSxxQkFBTyxvQkFBb0IsU0FBUyxRQUFRLENBQUMsUUFBUyxJQUFJLE9BQU8sTUFBTyxNQUFNO0FBQUE7QUFFL0UsZ0JBQUksYUFBYSxNQUFPO0FBQ3hCLGdDQUFvQixFQUFFLElBQUk7QUFDMUIsbUJBQU87QUFBQTtBQUFBO0FBS1QsUUFBQyxPQUFNO0FBRU4sOEJBQW9CLElBQUksQ0FBQyxVQUFTLGVBQWU7QUFDaEQscUJBQVEsT0FBTyxZQUFZO0FBQzFCLGtCQUFHLG9CQUFvQixFQUFFLFlBQVksUUFBUSxDQUFDLG9CQUFvQixFQUFFLFVBQVMsTUFBTTtBQUNsRix1QkFBTyxlQUFlLFVBQVMsS0FBSyxFQUFFLFlBQVksTUFBTSxLQUFLLFdBQVc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU81RSxRQUFDLE9BQU07QUFDTiw4QkFBb0IsSUFBSTtBQUd4Qiw4QkFBb0IsSUFBSSxDQUFDLFlBQVk7QUFDcEMsbUJBQU8sUUFBUSxJQUFJLE9BQU8sS0FBSyxvQkFBb0IsR0FBRyxPQUFPLENBQUMsVUFBVSxRQUFRO0FBQy9FLGtDQUFvQixFQUFFLEtBQUssU0FBUztBQUNwQyxxQkFBTztBQUFBLGVBQ0w7QUFBQTtBQUFBO0FBS0wsUUFBQyxPQUFNO0FBRU4sOEJBQW9CLElBQUksQ0FBQyxZQUFZO0FBRXBDLG1CQUFPLDJCQUEyQixVQUFVLE1BQU0sRUFBQyxtQkFBa0Isd0JBQXVCLG1CQUFrQix3QkFBdUIsbUJBQWtCLHdCQUF1QixtQkFBa0Isd0JBQXVCLG1CQUFrQix3QkFBdUIsbUJBQWtCLHdCQUF1QixtQkFBa0Isd0JBQXVCLG1CQUFrQix3QkFBdUIsbUJBQWtCLHdCQUF1QixtQkFBa0Isd0JBQXVCLG1CQUFrQix3QkFBdUIsbUJBQWtCLHdCQUF1QixtQkFBa0Isd0JBQXVCLG1CQUFrQix3QkFBdUIsbUJBQWtCLHdCQUF1QixtQkFBa0Isd0JBQXVCLG1CQUFrQix3QkFBdUIsbUJBQWtCLHdCQUF1QixtQkFBa0Isd0JBQXVCLHFCQUFvQix3QkFBdUIsbUJBQWtCLHdCQUF1QixtQkFBa0Isd0JBQXVCLG1CQUFrQix3QkFBdUIsbUJBQWtCLHdCQUF1QixtQkFBa0Isd0JBQXVCLG1CQUFrQix3QkFBdUIsbUJBQWtCLHdCQUF1QixtQkFBa0Isd0JBQXVCLG1CQUFrQix3QkFBdUIsbUJBQWtCLHdCQUF1QixtQkFBa0Isd0JBQXVCLG1CQUFrQix3QkFBdUIsbUJBQWtCLHdCQUF1QixtQkFBa0Isd0JBQXVCLG1CQUFrQix3QkFBdUIsbUJBQWtCLHdCQUF1QixtQkFBa0Isd0JBQXVCLG1CQUFrQix3QkFBdUIsbUJBQWtCLHdCQUF1QixtQkFBa0Isd0JBQXVCLG1CQUFrQix3QkFBdUIsbUJBQWtCLHdCQUF1QixtQkFBa0Isd0JBQXVCLG1CQUFrQix3QkFBdUIsVUFBUyx3QkFBdUIsU0FBUSx5QkFBd0IsV0FBVztBQUFBO0FBQUE7QUFLOTRELFFBQUMsT0FBTTtBQUNOLDhCQUFvQixJQUFLLFdBQVc7QUFDbkMsZ0JBQUksT0FBTyxlQUFlO0FBQVUscUJBQU87QUFDM0MsZ0JBQUk7QUFDSCxxQkFBTyxRQUFRLElBQUksU0FBUztBQUFBLHFCQUNwQixHQUFQO0FBQ0Qsa0JBQUksT0FBTyxXQUFXO0FBQVUsdUJBQU87QUFBQTtBQUFBO0FBQUE7QUFNMUMsUUFBQyxPQUFNO0FBQ04sOEJBQW9CLElBQUksQ0FBQyxLQUFLLFNBQVUsT0FBTyxVQUFVLGVBQWUsS0FBSyxLQUFLO0FBQUE7QUFJbkYsUUFBQyxPQUFNO0FBQ04sY0FBSSxhQUFhO0FBQ2pCLGNBQUksb0JBQW9CO0FBRXhCLDhCQUFvQixJQUFJLENBQUMsS0FBSyxNQUFNLEtBQUssWUFBWTtBQUNwRCxnQkFBRyxXQUFXLE1BQU07QUFBRSx5QkFBVyxLQUFLLEtBQUs7QUFBTztBQUFBO0FBQ2xELGdCQUFJLFFBQVE7QUFDWixnQkFBRyxRQUFRLFFBQVc7QUFDckIsa0JBQUksVUFBVSxTQUFTLHFCQUFxQjtBQUM1Qyx1QkFBUSxJQUFJLEdBQUcsSUFBSSxRQUFRLFFBQVEsS0FBSztBQUN2QyxvQkFBSSxJQUFJLFFBQVE7QUFDaEIsb0JBQUcsRUFBRSxhQUFhLFVBQVUsT0FBTyxFQUFFLGFBQWEsbUJBQW1CLG9CQUFvQixLQUFLO0FBQUUsMkJBQVM7QUFBRztBQUFBO0FBQUE7QUFBQTtBQUc5RyxnQkFBRyxDQUFDLFFBQVE7QUFDWCwyQkFBYTtBQUNiLHVCQUFTLFNBQVMsY0FBYztBQUVoQyxxQkFBTyxVQUFVO0FBQ2pCLHFCQUFPLFVBQVU7QUFDakIsa0JBQUksb0JBQW9CLElBQUk7QUFDM0IsdUJBQU8sYUFBYSxTQUFTLG9CQUFvQjtBQUFBO0FBRWxELHFCQUFPLGFBQWEsZ0JBQWdCLG9CQUFvQjtBQUN4RCxxQkFBTyxNQUFNO0FBQUE7QUFFZCx1QkFBVyxPQUFPLENBQUM7QUFDbkIsZ0JBQUksbUJBQW1CLENBQUMsTUFBTSxVQUFVO0FBRXZDLHFCQUFPLFVBQVUsT0FBTyxTQUFTO0FBQ2pDLDJCQUFhO0FBQ2Isa0JBQUksVUFBVSxXQUFXO0FBQ3pCLHFCQUFPLFdBQVc7QUFDbEIscUJBQU8sY0FBYyxPQUFPLFdBQVcsWUFBWTtBQUNuRCx5QkFBVyxRQUFRLFFBQVEsQ0FBQyxPQUFRLEdBQUc7QUFDdkMsa0JBQUc7QUFBTSx1QkFBTyxLQUFLO0FBQUE7QUFHdEIsZ0JBQUksVUFBVSxXQUFXLGlCQUFpQixLQUFLLE1BQU0sUUFBVyxFQUFFLE1BQU0sV0FBVyxRQUFRLFdBQVc7QUFDdEcsbUJBQU8sVUFBVSxpQkFBaUIsS0FBSyxNQUFNLE9BQU87QUFDcEQsbUJBQU8sU0FBUyxpQkFBaUIsS0FBSyxNQUFNLE9BQU87QUFDbkQsMEJBQWMsU0FBUyxLQUFLLFlBQVk7QUFBQTtBQUFBO0FBSzFDLFFBQUMsT0FBTTtBQUVOLDhCQUFvQixJQUFJLENBQUMsYUFBWTtBQUNwQyxnQkFBRyxPQUFPLFdBQVcsZUFBZSxPQUFPLGFBQWE7QUFDdkQscUJBQU8sZUFBZSxVQUFTLE9BQU8sYUFBYSxFQUFFLE9BQU87QUFBQTtBQUU3RCxtQkFBTyxlQUFlLFVBQVMsY0FBYyxFQUFFLE9BQU87QUFBQTtBQUFBO0FBS3hELFFBQUMsT0FBTTtBQUNOLDhCQUFvQixNQUFNLENBQUMsWUFBVztBQUNyQyxvQkFBTyxRQUFRO0FBQ2YsZ0JBQUksQ0FBQyxRQUFPO0FBQVUsc0JBQU8sV0FBVztBQUN4QyxtQkFBTztBQUFBO0FBQUE7QUFLVCxRQUFDLE9BQU07QUFDTiw4QkFBb0IsSUFBSTtBQUFBO0FBSXpCLFFBQUMsT0FBTTtBQUNOLDhCQUFvQixJQUFJLFNBQVMsV0FBVyxLQUFLLFNBQVM7QUFLMUQsY0FBSSxrQkFBa0I7QUFBQSxZQUNyQiwwQkFBMEI7QUFBQTtBQUczQiw4QkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxhQUFhO0FBRS9DLGdCQUFJLHFCQUFxQixvQkFBb0IsRUFBRSxpQkFBaUIsV0FBVyxnQkFBZ0IsV0FBVztBQUN0RyxnQkFBRyx1QkFBdUIsR0FBRztBQUc1QixrQkFBRyxvQkFBb0I7QUFDdEIseUJBQVMsS0FBSyxtQkFBbUI7QUFBQSxxQkFDM0I7QUFDTixvQkFBRyxNQUFNO0FBRVIsc0JBQUksVUFBVSxJQUFJLFFBQVEsQ0FBQyxTQUFTLFdBQVkscUJBQXFCLGdCQUFnQixXQUFXLENBQUMsU0FBUztBQUMxRywyQkFBUyxLQUFLLG1CQUFtQixLQUFLO0FBR3RDLHNCQUFJLE1BQU0sb0JBQW9CLElBQUksb0JBQW9CLEVBQUU7QUFFeEQsc0JBQUksUUFBUSxJQUFJO0FBQ2hCLHNCQUFJLGVBQWUsQ0FBQyxVQUFVO0FBQzdCLHdCQUFHLG9CQUFvQixFQUFFLGlCQUFpQixVQUFVO0FBQ25ELDJDQUFxQixnQkFBZ0I7QUFDckMsMEJBQUcsdUJBQXVCO0FBQUcsd0NBQWdCLFdBQVc7QUFDeEQsMEJBQUcsb0JBQW9CO0FBQ3RCLDRCQUFJLFlBQVksU0FBVSxPQUFNLFNBQVMsU0FBUyxZQUFZLE1BQU07QUFDcEUsNEJBQUksVUFBVSxTQUFTLE1BQU0sVUFBVSxNQUFNLE9BQU87QUFDcEQsOEJBQU0sVUFBVSxtQkFBbUIsVUFBVSxnQkFBZ0IsWUFBWSxPQUFPLFVBQVU7QUFDMUYsOEJBQU0sT0FBTztBQUNiLDhCQUFNLE9BQU87QUFDYiw4QkFBTSxVQUFVO0FBQ2hCLDJDQUFtQixHQUFHO0FBQUE7QUFBQTtBQUFBO0FBSXpCLHNDQUFvQixFQUFFLEtBQUssY0FBYyxXQUFXLFNBQVM7QUFBQTtBQUN2RCxrQ0FBZ0IsV0FBVztBQUFBO0FBQUE7QUFBQTtBQWdCdEMsY0FBSSx1QkFBdUIsQ0FBQyw0QkFBNEIsU0FBUztBQUNoRSxnQkFBSSxDQUFDLFVBQVUsYUFBYSxXQUFXO0FBR3ZDLGdCQUFJLFVBQVUsU0FBUyxJQUFJO0FBQzNCLGdCQUFHLFNBQVMsS0FBSyxDQUFDLE9BQVEsZ0JBQWdCLFFBQVEsSUFBSztBQUN0RCxtQkFBSSxZQUFZLGFBQWE7QUFDNUIsb0JBQUcsb0JBQW9CLEVBQUUsYUFBYSxXQUFXO0FBQ2hELHNDQUFvQixFQUFFLFlBQVksWUFBWTtBQUFBO0FBQUE7QUFHaEQsa0JBQUc7QUFBUyxvQkFBSSxTQUFTLFFBQVE7QUFBQTtBQUVsQyxnQkFBRztBQUE0Qix5Q0FBMkI7QUFDMUQsbUJBQUssSUFBSSxTQUFTLFFBQVEsS0FBSztBQUM5Qix3QkFBVSxTQUFTO0FBQ25CLGtCQUFHLG9CQUFvQixFQUFFLGlCQUFpQixZQUFZLGdCQUFnQixVQUFVO0FBQy9FLGdDQUFnQixTQUFTO0FBQUE7QUFFMUIsOEJBQWdCLFNBQVMsTUFBTTtBQUFBO0FBQUE7QUFLakMsY0FBSSxxQkFBcUIsV0FBVyw0QkFBNEIsV0FBVyw2QkFBNkI7QUFDeEcsNkJBQW1CLFFBQVEscUJBQXFCLEtBQUssTUFBTTtBQUMzRCw2QkFBbUIsT0FBTyxxQkFBcUIsS0FBSyxNQUFNLG1CQUFtQixLQUFLLEtBQUs7QUFBQTtBQVF4RixZQUFJLHNCQUFzQixvQkFBb0I7QUFFOUMsZUFBTztBQUFBO0FBQUE7QUFBQTtBQUFBOzs7QUN6NEdqQjtBQUFBO0FBQUEsUUFBSSxPQUF1QztBQUN6QyxjQUFPLFVBQVU7QUFBQSxXQUNaO0FBQ0wsY0FBTyxVQUFVO0FBQUE7QUFBQTtBQUFBOzs7QUNIbkI7QUFBQTtBQUFBO0FBRUEsUUFBSSxJQUFJO0FBQ1IsUUFBSSxPQUF1QztBQUN6QyxlQUFRLGFBQWEsRUFBRTtBQUN2QixlQUFRLGNBQWMsRUFBRTtBQUFBLFdBQ25CO0FBQ0QsVUFBSSxFQUFFO0FBQ1YsZUFBUSxhQUFhLFNBQVMsR0FBRyxHQUFHO0FBQ2xDLFVBQUUsd0JBQXdCO0FBQzFCLFlBQUk7QUFDRixpQkFBTyxFQUFFLFdBQVcsR0FBRztBQUFBLGtCQUN2QjtBQUNBLFlBQUUsd0JBQXdCO0FBQUE7QUFBQTtBQUc5QixlQUFRLGNBQWMsU0FBUyxHQUFHLEdBQUcsR0FBRztBQUN0QyxVQUFFLHdCQUF3QjtBQUMxQixZQUFJO0FBQ0YsaUJBQU8sRUFBRSxZQUFZLEdBQUcsR0FBRztBQUFBLGtCQUMzQjtBQUNBLFlBQUUsd0JBQXdCO0FBQUE7QUFBQTtBQUFBO0FBZDFCO0FBQUE7QUFBQTs7O0FDUE47QUFBQTtBQWFBLElBQUUsVUFBVSxRQUFRLFNBQVU7QUFFN0I7QUFFQSxVQUFLLE9BQU8sWUFBVyxZQUFZLE9BQU8sUUFBTyxZQUFZLFVBQVc7QUFTdkUsZ0JBQU8sVUFBVSxPQUFPLFdBQ3ZCLFFBQVMsUUFBUSxRQUNqQixTQUFVLEdBQUk7QUFDYixjQUFLLENBQUMsRUFBRSxVQUFXO0FBQ2xCLGtCQUFNLElBQUksTUFBTztBQUFBO0FBRWxCLGlCQUFPLFFBQVM7QUFBQTtBQUFBLGFBRVo7QUFDTixnQkFBUztBQUFBO0FBQUEsT0FJTixPQUFPLFdBQVcsY0FBYyxTQUFTLFVBQU0sU0FBVSxTQUFRLFVBQVc7QUFNakY7QUFFQSxVQUFJLE1BQU07QUFFVixVQUFJLFdBQVcsT0FBTztBQUV0QixVQUFJLFFBQVEsSUFBSTtBQUVoQixVQUFJLE9BQU8sSUFBSSxPQUFPLFNBQVUsT0FBUTtBQUN2QyxlQUFPLElBQUksS0FBSyxLQUFNO0FBQUEsVUFDbkIsU0FBVSxPQUFRO0FBQ3JCLGVBQU8sSUFBSSxPQUFPLE1BQU8sSUFBSTtBQUFBO0FBSTlCLFVBQUksT0FBTyxJQUFJO0FBRWYsVUFBSSxVQUFVLElBQUk7QUFFbEIsVUFBSSxhQUFhO0FBRWpCLFVBQUksV0FBVyxXQUFXO0FBRTFCLFVBQUksU0FBUyxXQUFXO0FBRXhCLFVBQUksYUFBYSxPQUFPO0FBRXhCLFVBQUksdUJBQXVCLFdBQVcsS0FBTTtBQUU1QyxVQUFJLFVBQVU7QUFFZCxVQUFJLGFBQWEscUJBQXFCLEtBQU07QUFTMUMsZUFBTyxPQUFPLFFBQVEsY0FBYyxPQUFPLElBQUksYUFBYSxZQUMzRCxPQUFPLElBQUksU0FBUztBQUFBO0FBSXZCLFVBQUksV0FBVyxtQkFBbUIsS0FBTTtBQUN0QyxlQUFPLE9BQU8sUUFBUSxRQUFRLElBQUk7QUFBQTtBQUlwQyxVQUFJLFlBQVcsUUFBTztBQUlyQixVQUFJLDRCQUE0QjtBQUFBLFFBQy9CLE1BQU07QUFBQSxRQUNOLEtBQUs7QUFBQSxRQUNMLE9BQU87QUFBQSxRQUNQLFVBQVU7QUFBQTtBQUdYLHVCQUFrQixNQUFNLE1BQU0sS0FBTTtBQUNuQyxjQUFNLE9BQU87QUFFYixZQUFJLEdBQUcsS0FDTixTQUFTLElBQUksY0FBZTtBQUU3QixlQUFPLE9BQU87QUFDZCxZQUFLLE1BQU87QUFDWCxlQUFNLEtBQUssMkJBQTRCO0FBWXRDLGtCQUFNLEtBQU0sTUFBTyxLQUFLLGdCQUFnQixLQUFLLGFBQWM7QUFDM0QsZ0JBQUssS0FBTTtBQUNWLHFCQUFPLGFBQWMsR0FBRztBQUFBO0FBQUE7QUFBQTtBQUkzQixZQUFJLEtBQUssWUFBYSxRQUFTLFdBQVcsWUFBYTtBQUFBO0FBSXpELHNCQUFpQixLQUFNO0FBQ3RCLFlBQUssT0FBTyxNQUFPO0FBQ2xCLGlCQUFPLE1BQU07QUFBQTtBQUlkLGVBQU8sT0FBTyxRQUFRLFlBQVksT0FBTyxRQUFRLGFBQ2hELFdBQVksU0FBUyxLQUFNLFNBQVcsV0FDdEMsT0FBTztBQUFBO0FBUVQsVUFDQyxVQUFVLFNBR1YsU0FBUyxTQUFVLFVBQVUsU0FBVTtBQUl0QyxlQUFPLElBQUksT0FBTyxHQUFHLEtBQU0sVUFBVTtBQUFBO0FBR3ZDLGFBQU8sS0FBSyxPQUFPLFlBQVk7QUFBQSxRQUc5QixRQUFRO0FBQUEsUUFFUixhQUFhO0FBQUEsUUFHYixRQUFRO0FBQUEsUUFFUixTQUFTLFdBQVc7QUFDbkIsaUJBQU8sTUFBTSxLQUFNO0FBQUE7QUFBQSxRQUtwQixLQUFLLFNBQVUsS0FBTTtBQUdwQixjQUFLLE9BQU8sTUFBTztBQUNsQixtQkFBTyxNQUFNLEtBQU07QUFBQTtBQUlwQixpQkFBTyxNQUFNLElBQUksS0FBTSxNQUFNLEtBQUssVUFBVyxLQUFNO0FBQUE7QUFBQSxRQUtwRCxXQUFXLFNBQVUsT0FBUTtBQUc1QixjQUFJLE1BQU0sT0FBTyxNQUFPLEtBQUssZUFBZTtBQUc1QyxjQUFJLGFBQWE7QUFHakIsaUJBQU87QUFBQTtBQUFBLFFBSVIsTUFBTSxTQUFVLFVBQVc7QUFDMUIsaUJBQU8sT0FBTyxLQUFNLE1BQU07QUFBQTtBQUFBLFFBRzNCLEtBQUssU0FBVSxVQUFXO0FBQ3pCLGlCQUFPLEtBQUssVUFBVyxPQUFPLElBQUssTUFBTSxTQUFVLE1BQU0sR0FBSTtBQUM1RCxtQkFBTyxTQUFTLEtBQU0sTUFBTSxHQUFHO0FBQUE7QUFBQTtBQUFBLFFBSWpDLE9BQU8sV0FBVztBQUNqQixpQkFBTyxLQUFLLFVBQVcsTUFBTSxNQUFPLE1BQU07QUFBQTtBQUFBLFFBRzNDLE9BQU8sV0FBVztBQUNqQixpQkFBTyxLQUFLLEdBQUk7QUFBQTtBQUFBLFFBR2pCLE1BQU0sV0FBVztBQUNoQixpQkFBTyxLQUFLLEdBQUk7QUFBQTtBQUFBLFFBR2pCLE1BQU0sV0FBVztBQUNoQixpQkFBTyxLQUFLLFVBQVcsT0FBTyxLQUFNLE1BQU0sU0FBVSxPQUFPLEdBQUk7QUFDOUQsbUJBQVMsS0FBSSxLQUFNO0FBQUE7QUFBQTtBQUFBLFFBSXJCLEtBQUssV0FBVztBQUNmLGlCQUFPLEtBQUssVUFBVyxPQUFPLEtBQU0sTUFBTSxTQUFVLE9BQU8sR0FBSTtBQUM5RCxtQkFBTyxJQUFJO0FBQUE7QUFBQTtBQUFBLFFBSWIsSUFBSSxTQUFVLEdBQUk7QUFDakIsY0FBSSxNQUFNLEtBQUssUUFDZCxJQUFJLENBQUMsSUFBTSxLQUFJLElBQUksTUFBTTtBQUMxQixpQkFBTyxLQUFLLFVBQVcsS0FBSyxLQUFLLElBQUksTUFBTSxDQUFFLEtBQU0sTUFBUTtBQUFBO0FBQUEsUUFHNUQsS0FBSyxXQUFXO0FBQ2YsaUJBQU8sS0FBSyxjQUFjLEtBQUs7QUFBQTtBQUFBLFFBS2hDO0FBQUEsUUFDQSxNQUFNLElBQUk7QUFBQSxRQUNWLFFBQVEsSUFBSTtBQUFBO0FBR2IsYUFBTyxTQUFTLE9BQU8sR0FBRyxTQUFTLFdBQVc7QUFDN0MsWUFBSSxTQUFTLE1BQU0sS0FBSyxNQUFNLGFBQWEsT0FDMUMsU0FBUyxVQUFXLE1BQU8sSUFDM0IsSUFBSSxHQUNKLFNBQVMsVUFBVSxRQUNuQixPQUFPO0FBR1IsWUFBSyxPQUFPLFdBQVcsV0FBWTtBQUNsQyxpQkFBTztBQUdQLG1CQUFTLFVBQVcsTUFBTztBQUMzQjtBQUFBO0FBSUQsWUFBSyxPQUFPLFdBQVcsWUFBWSxDQUFDLFdBQVksU0FBVztBQUMxRCxtQkFBUztBQUFBO0FBSVYsWUFBSyxNQUFNLFFBQVM7QUFDbkIsbUJBQVM7QUFDVDtBQUFBO0FBR0QsZUFBUSxJQUFJLFFBQVEsS0FBTTtBQUd6QixjQUFPLFdBQVUsVUFBVyxPQUFTLE1BQU87QUFHM0MsaUJBQU0sUUFBUSxTQUFVO0FBQ3ZCLHFCQUFPLFFBQVM7QUFJaEIsa0JBQUssU0FBUyxlQUFlLFdBQVcsTUFBTztBQUM5QztBQUFBO0FBSUQsa0JBQUssUUFBUSxRQUFVLFFBQU8sY0FBZSxTQUMxQyxlQUFjLE1BQU0sUUFBUyxTQUFhO0FBQzVDLHNCQUFNLE9BQVE7QUFHZCxvQkFBSyxlQUFlLENBQUMsTUFBTSxRQUFTLE1BQVE7QUFDM0MsMEJBQVE7QUFBQSwyQkFDRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLGNBQWUsTUFBUTtBQUMxRCwwQkFBUTtBQUFBLHVCQUNGO0FBQ04sMEJBQVE7QUFBQTtBQUVULDhCQUFjO0FBR2QsdUJBQVEsUUFBUyxPQUFPLE9BQVEsTUFBTSxPQUFPO0FBQUEseUJBR2xDLFNBQVMsUUFBWTtBQUNoQyx1QkFBUSxRQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPckIsZUFBTztBQUFBO0FBR1IsYUFBTyxPQUFRO0FBQUEsUUFHZCxTQUFTLFdBQWEsV0FBVSxLQUFLLFVBQVcsUUFBUyxPQUFPO0FBQUEsUUFHaEUsU0FBUztBQUFBLFFBRVQsT0FBTyxTQUFVLEtBQU07QUFDdEIsZ0JBQU0sSUFBSSxNQUFPO0FBQUE7QUFBQSxRQUdsQixNQUFNLFdBQVc7QUFBQTtBQUFBLFFBRWpCLGVBQWUsU0FBVSxLQUFNO0FBQzlCLGNBQUksT0FBTztBQUlYLGNBQUssQ0FBQyxPQUFPLFNBQVMsS0FBTSxTQUFVLG1CQUFvQjtBQUN6RCxtQkFBTztBQUFBO0FBR1Isa0JBQVEsU0FBVTtBQUdsQixjQUFLLENBQUMsT0FBUTtBQUNiLG1CQUFPO0FBQUE7QUFJUixpQkFBTyxPQUFPLEtBQU0sT0FBTyxrQkFBbUIsTUFBTTtBQUNwRCxpQkFBTyxPQUFPLFNBQVMsY0FBYyxXQUFXLEtBQU0sVUFBVztBQUFBO0FBQUEsUUFHbEUsZUFBZSxTQUFVLEtBQU07QUFDOUIsY0FBSTtBQUVKLGVBQU0sUUFBUSxLQUFNO0FBQ25CLG1CQUFPO0FBQUE7QUFFUixpQkFBTztBQUFBO0FBQUEsUUFLUixZQUFZLFNBQVUsTUFBTSxTQUFTLEtBQU07QUFDMUMsa0JBQVMsTUFBTSxFQUFFLE9BQU8sV0FBVyxRQUFRLFNBQVM7QUFBQTtBQUFBLFFBR3JELE1BQU0sU0FBVSxLQUFLLFVBQVc7QUFDL0IsY0FBSSxRQUFRLElBQUk7QUFFaEIsY0FBSyxZQUFhLE1BQVE7QUFDekIscUJBQVMsSUFBSTtBQUNiLG1CQUFRLElBQUksUUFBUSxLQUFNO0FBQ3pCLGtCQUFLLFNBQVMsS0FBTSxJQUFLLElBQUssR0FBRyxJQUFLLFFBQVUsT0FBUTtBQUN2RDtBQUFBO0FBQUE7QUFBQSxpQkFHSTtBQUNOLGlCQUFNLEtBQUssS0FBTTtBQUNoQixrQkFBSyxTQUFTLEtBQU0sSUFBSyxJQUFLLEdBQUcsSUFBSyxRQUFVLE9BQVE7QUFDdkQ7QUFBQTtBQUFBO0FBQUE7QUFLSCxpQkFBTztBQUFBO0FBQUEsUUFJUixXQUFXLFNBQVUsTUFBSyxTQUFVO0FBQ25DLGNBQUksTUFBTSxXQUFXO0FBRXJCLGNBQUssUUFBTyxNQUFPO0FBQ2xCLGdCQUFLLFlBQWEsT0FBUSxRQUFVO0FBQ25DLHFCQUFPLE1BQU8sS0FDYixPQUFPLFNBQVEsV0FDZCxDQUFFLFFBQVE7QUFBQSxtQkFFTjtBQUNOLG1CQUFLLEtBQU0sS0FBSztBQUFBO0FBQUE7QUFJbEIsaUJBQU87QUFBQTtBQUFBLFFBR1IsU0FBUyxTQUFVLE1BQU0sTUFBSyxHQUFJO0FBQ2pDLGlCQUFPLFFBQU8sT0FBTyxLQUFLLFFBQVEsS0FBTSxNQUFLLE1BQU07QUFBQTtBQUFBLFFBS3BELE9BQU8sU0FBVSxPQUFPLFFBQVM7QUFDaEMsY0FBSSxNQUFNLENBQUMsT0FBTyxRQUNqQixJQUFJLEdBQ0osSUFBSSxNQUFNO0FBRVgsaUJBQVEsSUFBSSxLQUFLLEtBQU07QUFDdEIsa0JBQU8sT0FBUSxPQUFRO0FBQUE7QUFHeEIsZ0JBQU0sU0FBUztBQUVmLGlCQUFPO0FBQUE7QUFBQSxRQUdSLE1BQU0sU0FBVSxPQUFPLFVBQVUsUUFBUztBQUN6QyxjQUFJLGlCQUNILFVBQVUsSUFDVixJQUFJLEdBQ0osU0FBUyxNQUFNLFFBQ2YsaUJBQWlCLENBQUM7QUFJbkIsaUJBQVEsSUFBSSxRQUFRLEtBQU07QUFDekIsOEJBQWtCLENBQUMsU0FBVSxNQUFPLElBQUs7QUFDekMsZ0JBQUssb0JBQW9CLGdCQUFpQjtBQUN6QyxzQkFBUSxLQUFNLE1BQU87QUFBQTtBQUFBO0FBSXZCLGlCQUFPO0FBQUE7QUFBQSxRQUlSLEtBQUssU0FBVSxPQUFPLFVBQVUsS0FBTTtBQUNyQyxjQUFJLFFBQVEsT0FDWCxJQUFJLEdBQ0osTUFBTTtBQUdQLGNBQUssWUFBYSxRQUFVO0FBQzNCLHFCQUFTLE1BQU07QUFDZixtQkFBUSxJQUFJLFFBQVEsS0FBTTtBQUN6QixzQkFBUSxTQUFVLE1BQU8sSUFBSyxHQUFHO0FBRWpDLGtCQUFLLFNBQVMsTUFBTztBQUNwQixvQkFBSSxLQUFNO0FBQUE7QUFBQTtBQUFBLGlCQUtOO0FBQ04saUJBQU0sS0FBSyxPQUFRO0FBQ2xCLHNCQUFRLFNBQVUsTUFBTyxJQUFLLEdBQUc7QUFFakMsa0JBQUssU0FBUyxNQUFPO0FBQ3BCLG9CQUFJLEtBQU07QUFBQTtBQUFBO0FBQUE7QUFNYixpQkFBTyxLQUFNO0FBQUE7QUFBQSxRQUlkLE1BQU07QUFBQSxRQUlOO0FBQUE7QUFHRCxVQUFLLE9BQU8sV0FBVyxZQUFhO0FBQ25DLGVBQU8sR0FBSSxPQUFPLFlBQWEsSUFBSyxPQUFPO0FBQUE7QUFJNUMsYUFBTyxLQUFNLHVFQUF1RSxNQUFPLE1BQzFGLFNBQVUsSUFBSSxNQUFPO0FBQ3BCLG1CQUFZLGFBQWEsT0FBTyxPQUFRLEtBQUs7QUFBQTtBQUcvQywyQkFBc0IsS0FBTTtBQU0zQixZQUFJLFNBQVMsQ0FBQyxDQUFDLE9BQU8sWUFBWSxPQUFPLElBQUksUUFDNUMsT0FBTyxPQUFRO0FBRWhCLFlBQUssV0FBWSxRQUFTLFNBQVUsTUFBUTtBQUMzQyxpQkFBTztBQUFBO0FBR1IsZUFBTyxTQUFTLFdBQVcsV0FBVyxLQUNyQyxPQUFPLFdBQVcsWUFBWSxTQUFTLEtBQU8sU0FBUyxLQUFPO0FBQUE7QUFFaEUsVUFBSSxTQVdGLFNBQVUsU0FBUztBQUNyQixZQUFJLEdBQ0gsVUFDQSxNQUNBLFNBQ0EsT0FDQSxVQUNBLFNBQ0EsUUFDQSxrQkFDQSxXQUNBLGNBR0EsYUFDQSxXQUNBLFNBQ0EsZ0JBQ0EsV0FDQSxlQUNBLFNBQ0EsVUFHQSxVQUFVLFdBQVcsSUFBSSxJQUFJLFFBQzdCLGVBQWUsUUFBTyxVQUN0QixVQUFVLEdBQ1YsT0FBTyxHQUNQLGFBQWEsZUFDYixhQUFhLGVBQ2IsZ0JBQWdCLGVBQ2hCLHlCQUF5QixlQUN6QixZQUFZLFNBQVUsR0FBRyxHQUFJO0FBQzVCLGNBQUssTUFBTSxHQUFJO0FBQ2QsMkJBQWU7QUFBQTtBQUVoQixpQkFBTztBQUFBLFdBSVIsVUFBVyxHQUFLLGdCQUNoQixPQUFNLElBQ04sTUFBTSxLQUFJLEtBQ1YsYUFBYSxLQUFJLE1BQ2pCLFFBQU8sS0FBSSxNQUNYLFNBQVEsS0FBSSxPQUlaLFdBQVUsU0FBVSxNQUFNLE1BQU87QUFDaEMsY0FBSSxLQUFJLEdBQ1AsTUFBTSxLQUFLO0FBQ1osaUJBQVEsS0FBSSxLQUFLLE1BQU07QUFDdEIsZ0JBQUssS0FBTSxRQUFRLE1BQU87QUFDekIscUJBQU87QUFBQTtBQUFBO0FBR1QsaUJBQU87QUFBQSxXQUdSLFdBQVcsOEhBTVgsYUFBYSx1QkFHYixhQUFhLDRCQUE0QixhQUN4QywyQ0FHRCxhQUFhLFFBQVEsYUFBYSxPQUFPLGFBQWEsU0FBUyxhQUc5RCxrQkFBa0IsYUFJbEIsMERBQTZELGFBQWEsU0FDMUUsYUFBYSxRQUVkLFVBQVUsT0FBTyxhQUFhLHVGQU9BLGFBQWEsZ0JBTzNDLGNBQWMsSUFBSSxPQUFRLGFBQWEsS0FBSyxNQUM1QyxTQUFRLElBQUksT0FBUSxNQUFNLGFBQWEsZ0NBQ3RDLGFBQWEsTUFBTSxNQUVwQixTQUFTLElBQUksT0FBUSxNQUFNLGFBQWEsT0FBTyxhQUFhLE1BQzVELGVBQWUsSUFBSSxPQUFRLE1BQU0sYUFBYSxhQUFhLGFBQWEsTUFBTSxhQUM3RSxNQUNELFdBQVcsSUFBSSxPQUFRLGFBQWEsT0FFcEMsVUFBVSxJQUFJLE9BQVEsVUFDdEIsY0FBYyxJQUFJLE9BQVEsTUFBTSxhQUFhLE1BRTdDLFlBQVk7QUFBQSxVQUNYLE1BQU0sSUFBSSxPQUFRLFFBQVEsYUFBYTtBQUFBLFVBQ3ZDLFNBQVMsSUFBSSxPQUFRLFVBQVUsYUFBYTtBQUFBLFVBQzVDLE9BQU8sSUFBSSxPQUFRLE9BQU8sYUFBYTtBQUFBLFVBQ3ZDLFFBQVEsSUFBSSxPQUFRLE1BQU07QUFBQSxVQUMxQixVQUFVLElBQUksT0FBUSxNQUFNO0FBQUEsVUFDNUIsU0FBUyxJQUFJLE9BQVEsMkRBQ3BCLGFBQWEsaUNBQWlDLGFBQWEsZ0JBQzNELGFBQWEsZUFBZSxhQUFhLFVBQVU7QUFBQSxVQUNwRCxRQUFRLElBQUksT0FBUSxTQUFTLFdBQVcsTUFBTTtBQUFBLFVBSTlDLGdCQUFnQixJQUFJLE9BQVEsTUFBTSxhQUNqQyxxREFBcUQsYUFDckQscUJBQXFCLGFBQWEsb0JBQW9CO0FBQUEsV0FHeEQsU0FBUSxVQUNSLFVBQVUsdUNBQ1YsVUFBVSxVQUVWLFVBQVUsMEJBR1YsY0FBYSxvQ0FFYixXQUFXLFFBSVgsWUFBWSxJQUFJLE9BQVEseUJBQXlCLGFBQWEsd0JBQXdCLE1BQ3RGLFlBQVksU0FBVSxRQUFRLFFBQVM7QUFDdEMsY0FBSSxPQUFPLE9BQU8sT0FBTyxNQUFPLEtBQU07QUFFdEMsaUJBQU8sU0FHTixTQU1BLE9BQU8sSUFDTixPQUFPLGFBQWMsT0FBTyxTQUM1QixPQUFPLGFBQWMsUUFBUSxLQUFLLE9BQVEsT0FBTyxPQUFRO0FBQUEsV0FLNUQsYUFBYSx1REFDYixhQUFhLFNBQVUsSUFBSSxhQUFjO0FBQ3hDLGNBQUssYUFBYztBQUdsQixnQkFBSyxPQUFPLE1BQU87QUFDbEIscUJBQU87QUFBQTtBQUlSLG1CQUFPLEdBQUcsTUFBTyxHQUFHLE1BQU8sT0FDMUIsR0FBRyxXQUFZLEdBQUcsU0FBUyxHQUFJLFNBQVUsTUFBTztBQUFBO0FBSWxELGlCQUFPLE9BQU87QUFBQSxXQU9mLGdCQUFnQixXQUFXO0FBQzFCO0FBQUEsV0FHRCxxQkFBcUIsY0FDcEIsU0FBVSxNQUFPO0FBQ2hCLGlCQUFPLEtBQUssYUFBYSxRQUFRLEtBQUssU0FBUyxrQkFBa0I7QUFBQSxXQUVsRSxFQUFFLEtBQUssY0FBYyxNQUFNO0FBSTdCLFlBQUk7QUFDSCxnQkFBSyxNQUNGLE9BQU0sT0FBTSxLQUFNLGFBQWEsYUFDakMsYUFBYTtBQU1kLGVBQUssYUFBYSxXQUFXLFFBQVM7QUFBQSxpQkFDN0IsR0FBUjtBQUNELGtCQUFPO0FBQUEsWUFBRSxPQUFPLEtBQUksU0FHbkIsU0FBVSxRQUFRLEtBQU07QUFDdkIseUJBQVcsTUFBTyxRQUFRLE9BQU0sS0FBTTtBQUFBLGdCQUt2QyxTQUFVLFFBQVEsS0FBTTtBQUN2QixrQkFBSSxJQUFJLE9BQU8sUUFDZCxLQUFJO0FBR0wscUJBQVUsT0FBUSxPQUFRLElBQUssT0FBVTtBQUFBO0FBQ3pDLHFCQUFPLFNBQVMsSUFBSTtBQUFBO0FBQUE7QUFBQTtBQUt2Qix5QkFBaUIsVUFBVSxTQUFTLFNBQVMsTUFBTztBQUNuRCxjQUFJLEdBQUcsSUFBRyxNQUFNLEtBQUssT0FBTyxRQUFRLGFBQ25DLGFBQWEsV0FBVyxRQUFRLGVBR2hDLFdBQVcsVUFBVSxRQUFRLFdBQVc7QUFFekMsb0JBQVUsV0FBVztBQUdyQixjQUFLLE9BQU8sYUFBYSxZQUFZLENBQUMsWUFDckMsYUFBYSxLQUFLLGFBQWEsS0FBSyxhQUFhLElBQUs7QUFFdEQsbUJBQU87QUFBQTtBQUlSLGNBQUssQ0FBQyxNQUFPO0FBQ1osd0JBQWE7QUFDYixzQkFBVSxXQUFXO0FBRXJCLGdCQUFLLGdCQUFpQjtBQUlyQixrQkFBSyxhQUFhLE1BQVEsU0FBUSxZQUFXLEtBQU0sWUFBZTtBQUdqRSxvQkFBTyxJQUFJLE1BQU8sSUFBUTtBQUd6QixzQkFBSyxhQUFhLEdBQUk7QUFDckIsd0JBQU8sT0FBTyxRQUFRLGVBQWdCLElBQVE7QUFLN0MsMEJBQUssS0FBSyxPQUFPLEdBQUk7QUFDcEIsZ0NBQVEsS0FBTTtBQUNkLCtCQUFPO0FBQUE7QUFBQSwyQkFFRjtBQUNOLDZCQUFPO0FBQUE7QUFBQSx5QkFJRjtBQUtOLHdCQUFLLGNBQWdCLFFBQU8sV0FBVyxlQUFnQixPQUN0RCxTQUFVLFNBQVMsU0FDbkIsS0FBSyxPQUFPLEdBQUk7QUFFaEIsOEJBQVEsS0FBTTtBQUNkLDZCQUFPO0FBQUE7QUFBQTtBQUFBLDJCQUtFLE1BQU8sSUFBTTtBQUN4Qix3QkFBSyxNQUFPLFNBQVMsUUFBUSxxQkFBc0I7QUFDbkQseUJBQU87QUFBQSwyQkFHTSxLQUFJLE1BQU8sT0FBUyxTQUFRLDBCQUN6QyxRQUFRLHdCQUF5QjtBQUVqQyx3QkFBSyxNQUFPLFNBQVMsUUFBUSx1QkFBd0I7QUFDckQseUJBQU87QUFBQTtBQUFBO0FBS1Qsa0JBQUssU0FBUSxPQUNaLENBQUMsdUJBQXdCLFdBQVcsUUFDbEMsRUFBQyxhQUFhLENBQUMsVUFBVSxLQUFNLGNBSS9CLGNBQWEsS0FBSyxRQUFRLFNBQVMsa0JBQWtCLFdBQWE7QUFFcEUsOEJBQWM7QUFDZCw2QkFBYTtBQVNiLG9CQUFLLGFBQWEsS0FDZixVQUFTLEtBQU0sYUFBYyxhQUFhLEtBQU0sWUFBZTtBQUdqRSwrQkFBYSxTQUFTLEtBQU0sYUFBYyxZQUFhLFFBQVEsZUFDOUQ7QUFJRCxzQkFBSyxlQUFlLFdBQVcsQ0FBQyxTQUFRLE9BQVE7QUFHL0Msd0JBQU8sTUFBTSxRQUFRLGFBQWMsT0FBVztBQUM3Qyw0QkFBTSxJQUFJLFFBQVMsWUFBWTtBQUFBLDJCQUN6QjtBQUNOLDhCQUFRLGFBQWMsTUFBUSxNQUFNO0FBQUE7QUFBQTtBQUt0QywyQkFBUyxTQUFVO0FBQ25CLHVCQUFJLE9BQU87QUFDWCx5QkFBUSxNQUFNO0FBQ2IsMkJBQVEsTUFBUSxPQUFNLE1BQU0sTUFBTSxZQUFhLE1BQzlDLFdBQVksT0FBUTtBQUFBO0FBRXRCLGdDQUFjLE9BQU8sS0FBTTtBQUFBO0FBRzVCLG9CQUFJO0FBQ0gsd0JBQUssTUFBTyxTQUNYLFdBQVcsaUJBQWtCO0FBRTlCLHlCQUFPO0FBQUEseUJBQ0UsVUFBUjtBQUNELHlDQUF3QixVQUFVO0FBQUEsMEJBQ2pDO0FBQ0Qsc0JBQUssUUFBUSxTQUFVO0FBQ3RCLDRCQUFRLGdCQUFpQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFROUIsaUJBQU8sT0FBUSxTQUFTLFFBQVMsUUFBTyxPQUFRLFNBQVMsU0FBUztBQUFBO0FBU25FLCtCQUF1QjtBQUN0QixjQUFJLE9BQU87QUFFWCx5QkFBZ0IsS0FBSyxPQUFRO0FBRzVCLGdCQUFLLEtBQUssS0FBTSxNQUFNLE9BQVEsS0FBSyxhQUFjO0FBR2hELHFCQUFPLE1BQU8sS0FBSztBQUFBO0FBRXBCLG1CQUFTLE1BQU8sTUFBTSxPQUFRO0FBQUE7QUFFL0IsaUJBQU87QUFBQTtBQU9SLDhCQUF1QixJQUFLO0FBQzNCLGFBQUksV0FBWTtBQUNoQixpQkFBTztBQUFBO0FBT1Isd0JBQWlCLElBQUs7QUFDckIsY0FBSSxLQUFLLFVBQVMsY0FBZTtBQUVqQyxjQUFJO0FBQ0gsbUJBQU8sQ0FBQyxDQUFDLEdBQUk7QUFBQSxtQkFDSixHQUFSO0FBQ0QsbUJBQU87QUFBQSxvQkFDTjtBQUdELGdCQUFLLEdBQUcsWUFBYTtBQUNwQixpQkFBRyxXQUFXLFlBQWE7QUFBQTtBQUk1QixpQkFBSztBQUFBO0FBQUE7QUFTUCwyQkFBb0IsT0FBTyxTQUFVO0FBQ3BDLGNBQUksT0FBTSxNQUFNLE1BQU8sTUFDdEIsS0FBSSxLQUFJO0FBRVQsaUJBQVEsTUFBTTtBQUNiLGlCQUFLLFdBQVksS0FBSyxPQUFRO0FBQUE7QUFBQTtBQVVoQyw4QkFBdUIsR0FBRyxHQUFJO0FBQzdCLGNBQUksTUFBTSxLQUFLLEdBQ2QsT0FBTyxPQUFPLEVBQUUsYUFBYSxLQUFLLEVBQUUsYUFBYSxLQUNoRCxFQUFFLGNBQWMsRUFBRTtBQUdwQixjQUFLLE1BQU87QUFDWCxtQkFBTztBQUFBO0FBSVIsY0FBSyxLQUFNO0FBQ1YsbUJBQVUsTUFBTSxJQUFJLGFBQWdCO0FBQ25DLGtCQUFLLFFBQVEsR0FBSTtBQUNoQix1QkFBTztBQUFBO0FBQUE7QUFBQTtBQUtWLGlCQUFPLElBQUksSUFBSTtBQUFBO0FBT2hCLG1DQUE0QixNQUFPO0FBQ2xDLGlCQUFPLFNBQVUsTUFBTztBQUN2QixnQkFBSSxPQUFPLEtBQUssU0FBUztBQUN6QixtQkFBTyxTQUFTLFdBQVcsS0FBSyxTQUFTO0FBQUE7QUFBQTtBQVEzQyxvQ0FBNkIsTUFBTztBQUNuQyxpQkFBTyxTQUFVLE1BQU87QUFDdkIsZ0JBQUksT0FBTyxLQUFLLFNBQVM7QUFDekIsbUJBQVMsVUFBUyxXQUFXLFNBQVMsYUFBYyxLQUFLLFNBQVM7QUFBQTtBQUFBO0FBUXBFLHNDQUErQixVQUFXO0FBR3pDLGlCQUFPLFNBQVUsTUFBTztBQUt2QixnQkFBSyxVQUFVLE1BQU87QUFTckIsa0JBQUssS0FBSyxjQUFjLEtBQUssYUFBYSxPQUFRO0FBR2pELG9CQUFLLFdBQVcsTUFBTztBQUN0QixzQkFBSyxXQUFXLEtBQUssWUFBYTtBQUNqQywyQkFBTyxLQUFLLFdBQVcsYUFBYTtBQUFBLHlCQUM5QjtBQUNOLDJCQUFPLEtBQUssYUFBYTtBQUFBO0FBQUE7QUFNM0IsdUJBQU8sS0FBSyxlQUFlLFlBSTFCLEtBQUssZUFBZSxDQUFDLFlBQ3JCLG1CQUFvQixVQUFXO0FBQUE7QUFHakMscUJBQU8sS0FBSyxhQUFhO0FBQUEsdUJBS2QsV0FBVyxNQUFPO0FBQzdCLHFCQUFPLEtBQUssYUFBYTtBQUFBO0FBSTFCLG1CQUFPO0FBQUE7QUFBQTtBQVFULHdDQUFpQyxJQUFLO0FBQ3JDLGlCQUFPLGFBQWMsU0FBVSxVQUFXO0FBQ3pDLHVCQUFXLENBQUM7QUFDWixtQkFBTyxhQUFjLFNBQVUsTUFBTSxVQUFVO0FBQzlDLGtCQUFJLEdBQ0gsZUFBZSxHQUFJLElBQUksS0FBSyxRQUFRLFdBQ3BDLEtBQUksYUFBYTtBQUdsQixxQkFBUSxNQUFNO0FBQ2Isb0JBQUssS0FBUSxJQUFJLGFBQWMsTUFBVTtBQUN4Qyx1QkFBTSxLQUFNLENBQUcsVUFBUyxLQUFNLEtBQU07QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWXpDLDZCQUFzQixTQUFVO0FBQy9CLGlCQUFPLFdBQVcsT0FBTyxRQUFRLHlCQUF5QixlQUFlO0FBQUE7QUFJMUUsbUJBQVUsUUFBTyxVQUFVO0FBTzNCLGdCQUFRLFFBQU8sUUFBUSxTQUFVLE1BQU87QUFDdkMsY0FBSSxZQUFZLFFBQVEsS0FBSyxjQUM1QixXQUFVLFFBQVUsTUFBSyxpQkFBaUIsTUFBTztBQUtsRCxpQkFBTyxDQUFDLE9BQU0sS0FBTSxhQUFhLFlBQVcsU0FBUSxZQUFZO0FBQUE7QUFRakUsc0JBQWMsUUFBTyxjQUFjLFNBQVUsTUFBTztBQUNuRCxjQUFJLFlBQVksV0FDZixNQUFNLE9BQU8sS0FBSyxpQkFBaUIsT0FBTztBQU8zQyxjQUFLLE9BQU8sYUFBWSxJQUFJLGFBQWEsS0FBSyxDQUFDLElBQUksaUJBQWtCO0FBQ3BFLG1CQUFPO0FBQUE7QUFJUixzQkFBVztBQUNYLG9CQUFVLFVBQVM7QUFDbkIsMkJBQWlCLENBQUMsTUFBTztBQVF6QixjQUFLLGdCQUFnQixhQUNsQixhQUFZLFVBQVMsZ0JBQWlCLFVBQVUsUUFBUSxXQUFZO0FBR3RFLGdCQUFLLFVBQVUsa0JBQW1CO0FBQ2pDLHdCQUFVLGlCQUFrQixVQUFVLGVBQWU7QUFBQSx1QkFHMUMsVUFBVSxhQUFjO0FBQ25DLHdCQUFVLFlBQWEsWUFBWTtBQUFBO0FBQUE7QUFTckMsbUJBQVEsUUFBUSxPQUFRLFNBQVUsSUFBSztBQUN0QyxvQkFBUSxZQUFhLElBQUssWUFBYSxVQUFTLGNBQWU7QUFDL0QsbUJBQU8sT0FBTyxHQUFHLHFCQUFxQixlQUNyQyxDQUFDLEdBQUcsaUJBQWtCLHVCQUF3QjtBQUFBO0FBU2hELG1CQUFRLGFBQWEsT0FBUSxTQUFVLElBQUs7QUFDM0MsZUFBRyxZQUFZO0FBQ2YsbUJBQU8sQ0FBQyxHQUFHLGFBQWM7QUFBQTtBQU8xQixtQkFBUSx1QkFBdUIsT0FBUSxTQUFVLElBQUs7QUFDckQsZUFBRyxZQUFhLFVBQVMsY0FBZTtBQUN4QyxtQkFBTyxDQUFDLEdBQUcscUJBQXNCLEtBQU07QUFBQTtBQUl4QyxtQkFBUSx5QkFBeUIsUUFBUSxLQUFNLFVBQVM7QUFNeEQsbUJBQVEsVUFBVSxPQUFRLFNBQVUsSUFBSztBQUN4QyxvQkFBUSxZQUFhLElBQUssS0FBSztBQUMvQixtQkFBTyxDQUFDLFVBQVMscUJBQXFCLENBQUMsVUFBUyxrQkFBbUIsU0FBVTtBQUFBO0FBSTlFLGNBQUssU0FBUSxTQUFVO0FBQ3RCLGlCQUFLLE9BQVEsUUFBUyxTQUFVLElBQUs7QUFDcEMsa0JBQUksU0FBUyxHQUFHLFFBQVMsV0FBVztBQUNwQyxxQkFBTyxTQUFVLE1BQU87QUFDdkIsdUJBQU8sS0FBSyxhQUFjLFVBQVc7QUFBQTtBQUFBO0FBR3ZDLGlCQUFLLEtBQU0sUUFBUyxTQUFVLElBQUksU0FBVTtBQUMzQyxrQkFBSyxPQUFPLFFBQVEsbUJBQW1CLGVBQWUsZ0JBQWlCO0FBQ3RFLG9CQUFJLE9BQU8sUUFBUSxlQUFnQjtBQUNuQyx1QkFBTyxPQUFPLENBQUUsUUFBUztBQUFBO0FBQUE7QUFBQSxpQkFHckI7QUFDTixpQkFBSyxPQUFRLFFBQVUsU0FBVSxJQUFLO0FBQ3JDLGtCQUFJLFNBQVMsR0FBRyxRQUFTLFdBQVc7QUFDcEMscUJBQU8sU0FBVSxNQUFPO0FBQ3ZCLG9CQUFJLFFBQU8sT0FBTyxLQUFLLHFCQUFxQixlQUMzQyxLQUFLLGlCQUFrQjtBQUN4Qix1QkFBTyxTQUFRLE1BQUssVUFBVTtBQUFBO0FBQUE7QUFNaEMsaUJBQUssS0FBTSxRQUFTLFNBQVUsSUFBSSxTQUFVO0FBQzNDLGtCQUFLLE9BQU8sUUFBUSxtQkFBbUIsZUFBZSxnQkFBaUI7QUFDdEUsb0JBQUksT0FBTSxJQUFHLE9BQ1osT0FBTyxRQUFRLGVBQWdCO0FBRWhDLG9CQUFLLE1BQU87QUFHWCwwQkFBTyxLQUFLLGlCQUFrQjtBQUM5QixzQkFBSyxTQUFRLE1BQUssVUFBVSxJQUFLO0FBQ2hDLDJCQUFPLENBQUU7QUFBQTtBQUlWLDBCQUFRLFFBQVEsa0JBQW1CO0FBQ25DLHVCQUFJO0FBQ0oseUJBQVUsT0FBTyxNQUFPLE9BQVU7QUFDakMsNEJBQU8sS0FBSyxpQkFBa0I7QUFDOUIsd0JBQUssU0FBUSxNQUFLLFVBQVUsSUFBSztBQUNoQyw2QkFBTyxDQUFFO0FBQUE7QUFBQTtBQUFBO0FBS1osdUJBQU87QUFBQTtBQUFBO0FBQUE7QUFNVixlQUFLLEtBQU0sU0FBVSxTQUFRLHVCQUM1QixTQUFVLEtBQUssU0FBVTtBQUN4QixnQkFBSyxPQUFPLFFBQVEseUJBQXlCLGFBQWM7QUFDMUQscUJBQU8sUUFBUSxxQkFBc0I7QUFBQSx1QkFHMUIsU0FBUSxLQUFNO0FBQ3pCLHFCQUFPLFFBQVEsaUJBQWtCO0FBQUE7QUFBQSxjQUluQyxTQUFVLEtBQUssU0FBVTtBQUN4QixnQkFBSSxNQUNILE1BQU0sSUFDTixLQUFJLEdBR0osVUFBVSxRQUFRLHFCQUFzQjtBQUd6QyxnQkFBSyxRQUFRLEtBQU07QUFDbEIscUJBQVUsT0FBTyxRQUFTLE9BQVU7QUFDbkMsb0JBQUssS0FBSyxhQUFhLEdBQUk7QUFDMUIsc0JBQUksS0FBTTtBQUFBO0FBQUE7QUFJWixxQkFBTztBQUFBO0FBRVIsbUJBQU87QUFBQTtBQUlULGVBQUssS0FBTSxXQUFZLFNBQVEsMEJBQTBCLFNBQVUsV0FBVyxTQUFVO0FBQ3ZGLGdCQUFLLE9BQU8sUUFBUSwyQkFBMkIsZUFBZSxnQkFBaUI7QUFDOUUscUJBQU8sUUFBUSx1QkFBd0I7QUFBQTtBQUFBO0FBVXpDLDBCQUFnQjtBQU9oQixzQkFBWTtBQUVaLGNBQU8sU0FBUSxNQUFNLFFBQVEsS0FBTSxVQUFTLG1CQUF1QjtBQUlsRSxtQkFBUSxTQUFVLElBQUs7QUFFdEIsa0JBQUk7QUFPSixzQkFBUSxZQUFhLElBQUssWUFBWSxZQUFZLFVBQVUsdUJBQzFDLFVBQVU7QUFPNUIsa0JBQUssR0FBRyxpQkFBa0Isd0JBQXlCLFFBQVM7QUFDM0QsMEJBQVUsS0FBTSxXQUFXLGFBQWE7QUFBQTtBQUt6QyxrQkFBSyxDQUFDLEdBQUcsaUJBQWtCLGNBQWUsUUFBUztBQUNsRCwwQkFBVSxLQUFNLFFBQVEsYUFBYSxlQUFlLFdBQVc7QUFBQTtBQUloRSxrQkFBSyxDQUFDLEdBQUcsaUJBQWtCLFVBQVUsVUFBVSxNQUFPLFFBQVM7QUFDOUQsMEJBQVUsS0FBTTtBQUFBO0FBUWpCLHNCQUFRLFVBQVMsY0FBZTtBQUNoQyxvQkFBTSxhQUFjLFFBQVE7QUFDNUIsaUJBQUcsWUFBYTtBQUNoQixrQkFBSyxDQUFDLEdBQUcsaUJBQWtCLGFBQWMsUUFBUztBQUNqRCwwQkFBVSxLQUFNLFFBQVEsYUFBYSxVQUFVLGFBQWEsT0FDM0QsYUFBYTtBQUFBO0FBTWYsa0JBQUssQ0FBQyxHQUFHLGlCQUFrQixZQUFhLFFBQVM7QUFDaEQsMEJBQVUsS0FBTTtBQUFBO0FBTWpCLGtCQUFLLENBQUMsR0FBRyxpQkFBa0IsT0FBTyxVQUFVLE1BQU8sUUFBUztBQUMzRCwwQkFBVSxLQUFNO0FBQUE7QUFLakIsaUJBQUcsaUJBQWtCO0FBQ3JCLHdCQUFVLEtBQU07QUFBQTtBQUdqQixtQkFBUSxTQUFVLElBQUs7QUFDdEIsaUJBQUcsWUFBWTtBQUtmLGtCQUFJLFFBQVEsVUFBUyxjQUFlO0FBQ3BDLG9CQUFNLGFBQWMsUUFBUTtBQUM1QixpQkFBRyxZQUFhLE9BQVEsYUFBYyxRQUFRO0FBSTlDLGtCQUFLLEdBQUcsaUJBQWtCLFlBQWEsUUFBUztBQUMvQywwQkFBVSxLQUFNLFNBQVMsYUFBYTtBQUFBO0FBS3ZDLGtCQUFLLEdBQUcsaUJBQWtCLFlBQWEsV0FBVyxHQUFJO0FBQ3JELDBCQUFVLEtBQU0sWUFBWTtBQUFBO0FBSzdCLHNCQUFRLFlBQWEsSUFBSyxXQUFXO0FBQ3JDLGtCQUFLLEdBQUcsaUJBQWtCLGFBQWMsV0FBVyxHQUFJO0FBQ3RELDBCQUFVLEtBQU0sWUFBWTtBQUFBO0FBSzdCLGlCQUFHLGlCQUFrQjtBQUNyQix3QkFBVSxLQUFNO0FBQUE7QUFBQTtBQUlsQixjQUFPLFNBQVEsa0JBQWtCLFFBQVEsS0FBUSxVQUFVLFFBQVEsV0FDbEUsUUFBUSx5QkFDUixRQUFRLHNCQUNSLFFBQVEsb0JBQ1IsUUFBUSxvQkFBMEI7QUFFbEMsbUJBQVEsU0FBVSxJQUFLO0FBSXRCLHVCQUFRLG9CQUFvQixRQUFRLEtBQU0sSUFBSTtBQUk5QyxzQkFBUSxLQUFNLElBQUk7QUFDbEIsNEJBQWMsS0FBTSxNQUFNO0FBQUE7QUFBQTtBQUk1QixzQkFBWSxVQUFVLFVBQVUsSUFBSSxPQUFRLFVBQVUsS0FBTTtBQUM1RCwwQkFBZ0IsY0FBYyxVQUFVLElBQUksT0FBUSxjQUFjLEtBQU07QUFJeEUsdUJBQWEsUUFBUSxLQUFNLFFBQVE7QUFLbkMscUJBQVcsY0FBYyxRQUFRLEtBQU0sUUFBUSxZQUM5QyxTQUFVLEdBQUcsR0FBSTtBQUNoQixnQkFBSSxRQUFRLEVBQUUsYUFBYSxJQUFJLEVBQUUsa0JBQWtCLEdBQ2xELE1BQU0sS0FBSyxFQUFFO0FBQ2QsbUJBQU8sTUFBTSxPQUFPLENBQUMsQ0FBRyxRQUFPLElBQUksYUFBYSxLQUMvQyxPQUFNLFdBQ0wsTUFBTSxTQUFVLE9BQ2hCLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXlCLE9BQVE7QUFBQSxjQUduRSxTQUFVLEdBQUcsR0FBSTtBQUNoQixnQkFBSyxHQUFJO0FBQ1IscUJBQVUsSUFBSSxFQUFFLFlBQWU7QUFDOUIsb0JBQUssTUFBTSxHQUFJO0FBQ2QseUJBQU87QUFBQTtBQUFBO0FBQUE7QUFJVixtQkFBTztBQUFBO0FBT1Qsc0JBQVksYUFDWixTQUFVLEdBQUcsR0FBSTtBQUdoQixnQkFBSyxNQUFNLEdBQUk7QUFDZCw2QkFBZTtBQUNmLHFCQUFPO0FBQUE7QUFJUixnQkFBSSxVQUFVLENBQUMsRUFBRSwwQkFBMEIsQ0FBQyxFQUFFO0FBQzlDLGdCQUFLLFNBQVU7QUFDZCxxQkFBTztBQUFBO0FBUVIsc0JBQVksR0FBRSxpQkFBaUIsTUFBUyxHQUFFLGlCQUFpQixLQUMxRCxFQUFFLHdCQUF5QixLQUczQjtBQUdELGdCQUFLLFVBQVUsS0FDWixDQUFDLFNBQVEsZ0JBQWdCLEVBQUUsd0JBQXlCLE9BQVEsU0FBWTtBQU8xRSxrQkFBSyxLQUFLLGFBQVksRUFBRSxpQkFBaUIsZ0JBQ3hDLFNBQVUsY0FBYyxJQUFNO0FBQzlCLHVCQUFPO0FBQUE7QUFPUixrQkFBSyxLQUFLLGFBQVksRUFBRSxpQkFBaUIsZ0JBQ3hDLFNBQVUsY0FBYyxJQUFNO0FBQzlCLHVCQUFPO0FBQUE7QUFJUixxQkFBTyxZQUNKLFNBQVMsV0FBVyxLQUFNLFNBQVMsV0FBVyxLQUNoRDtBQUFBO0FBR0YsbUJBQU8sVUFBVSxJQUFJLEtBQUs7QUFBQSxjQUUzQixTQUFVLEdBQUcsR0FBSTtBQUdoQixnQkFBSyxNQUFNLEdBQUk7QUFDZCw2QkFBZTtBQUNmLHFCQUFPO0FBQUE7QUFHUixnQkFBSSxLQUNILEtBQUksR0FDSixNQUFNLEVBQUUsWUFDUixNQUFNLEVBQUUsWUFDUixLQUFLLENBQUUsSUFDUCxLQUFLLENBQUU7QUFHUixnQkFBSyxDQUFDLE9BQU8sQ0FBQyxLQUFNO0FBTW5CLHFCQUFPLEtBQUssWUFBVyxLQUN0QixLQUFLLFlBQVcsSUFFaEIsTUFBTSxLQUNOLE1BQU0sSUFDTixZQUNFLFNBQVMsV0FBVyxLQUFNLFNBQVMsV0FBVyxLQUNoRDtBQUFBLHVCQUdVLFFBQVEsS0FBTTtBQUN6QixxQkFBTyxhQUFjLEdBQUc7QUFBQTtBQUl6QixrQkFBTTtBQUNOLG1CQUFVLE1BQU0sSUFBSSxZQUFlO0FBQ2xDLGlCQUFHLFFBQVM7QUFBQTtBQUViLGtCQUFNO0FBQ04sbUJBQVUsTUFBTSxJQUFJLFlBQWU7QUFDbEMsaUJBQUcsUUFBUztBQUFBO0FBSWIsbUJBQVEsR0FBSSxRQUFRLEdBQUksS0FBTTtBQUM3QjtBQUFBO0FBR0QsbUJBQU8sS0FHTixhQUFjLEdBQUksS0FBSyxHQUFJLE9BTzNCLEdBQUksT0FBTyxlQUFlLEtBQzFCLEdBQUksT0FBTyxlQUFlLElBRTFCO0FBQUE7QUFHRixpQkFBTztBQUFBO0FBR1IsZ0JBQU8sVUFBVSxTQUFVLE1BQU0sVUFBVztBQUMzQyxpQkFBTyxRQUFRLE1BQU0sTUFBTSxNQUFNO0FBQUE7QUFHbEMsZ0JBQU8sa0JBQWtCLFNBQVUsTUFBTSxNQUFPO0FBQy9DLHNCQUFhO0FBRWIsY0FBSyxTQUFRLG1CQUFtQixrQkFDL0IsQ0FBQyx1QkFBd0IsT0FBTyxRQUM5QixFQUFDLGlCQUFpQixDQUFDLGNBQWMsS0FBTSxVQUN2QyxFQUFDLGFBQWlCLENBQUMsVUFBVSxLQUFNLFFBQVc7QUFFaEQsZ0JBQUk7QUFDSCxrQkFBSSxNQUFNLFFBQVEsS0FBTSxNQUFNO0FBRzlCLGtCQUFLLE9BQU8sU0FBUSxxQkFJbkIsS0FBSyxZQUFZLEtBQUssU0FBUyxhQUFhLElBQUs7QUFDakQsdUJBQU87QUFBQTtBQUFBLHFCQUVDLEdBQVI7QUFDRCxxQ0FBd0IsTUFBTTtBQUFBO0FBQUE7QUFJaEMsaUJBQU8sUUFBUSxNQUFNLFdBQVUsTUFBTSxDQUFFLE9BQVMsU0FBUztBQUFBO0FBRzFELGdCQUFPLFdBQVcsU0FBVSxTQUFTLE1BQU87QUFPM0MsY0FBTyxTQUFRLGlCQUFpQixZQUFhLFdBQVc7QUFDdkQsd0JBQWE7QUFBQTtBQUVkLGlCQUFPLFNBQVUsU0FBUztBQUFBO0FBRzNCLGdCQUFPLE9BQU8sU0FBVSxNQUFNLE1BQU87QUFPcEMsY0FBTyxNQUFLLGlCQUFpQixTQUFVLFdBQVc7QUFDakQsd0JBQWE7QUFBQTtBQUdkLGNBQUksS0FBSyxLQUFLLFdBQVksS0FBSyxnQkFHOUIsTUFBTSxNQUFNLFFBQU8sS0FBTSxLQUFLLFlBQVksS0FBSyxpQkFDOUMsR0FBSSxNQUFNLE1BQU0sQ0FBQyxrQkFDakI7QUFFRixpQkFBTyxRQUFRLFNBQ2QsTUFDQSxTQUFRLGNBQWMsQ0FBQyxpQkFDdEIsS0FBSyxhQUFjLFFBQ2pCLE9BQU0sS0FBSyxpQkFBa0IsVUFBWSxJQUFJLFlBQzlDLElBQUksUUFDSjtBQUFBO0FBR0osZ0JBQU8sU0FBUyxTQUFVLEtBQU07QUFDL0IsaUJBQVMsT0FBTSxJQUFLLFFBQVMsWUFBWTtBQUFBO0FBRzFDLGdCQUFPLFFBQVEsU0FBVSxLQUFNO0FBQzlCLGdCQUFNLElBQUksTUFBTyw0Q0FBNEM7QUFBQTtBQU85RCxnQkFBTyxhQUFhLFNBQVUsU0FBVTtBQUN2QyxjQUFJLE1BQ0gsYUFBYSxJQUNiLElBQUksR0FDSixLQUFJO0FBR0wseUJBQWUsQ0FBQyxTQUFRO0FBQ3hCLHNCQUFZLENBQUMsU0FBUSxjQUFjLFFBQVEsTUFBTztBQUNsRCxrQkFBUSxLQUFNO0FBRWQsY0FBSyxjQUFlO0FBQ25CLG1CQUFVLE9BQU8sUUFBUyxPQUFVO0FBQ25DLGtCQUFLLFNBQVMsUUFBUyxLQUFNO0FBQzVCLG9CQUFJLFdBQVcsS0FBTTtBQUFBO0FBQUE7QUFHdkIsbUJBQVEsS0FBTTtBQUNiLHNCQUFRLE9BQVEsV0FBWSxJQUFLO0FBQUE7QUFBQTtBQU1uQyxzQkFBWTtBQUVaLGlCQUFPO0FBQUE7QUFPUixrQkFBVSxRQUFPLFVBQVUsU0FBVSxNQUFPO0FBQzNDLGNBQUksTUFDSCxNQUFNLElBQ04sS0FBSSxHQUNKLFdBQVcsS0FBSztBQUVqQixjQUFLLENBQUMsVUFBVztBQUdoQixtQkFBVSxPQUFPLEtBQU0sT0FBVTtBQUdoQyxxQkFBTyxRQUFTO0FBQUE7QUFBQSxxQkFFTixhQUFhLEtBQUssYUFBYSxLQUFLLGFBQWEsSUFBSztBQUlqRSxnQkFBSyxPQUFPLEtBQUssZ0JBQWdCLFVBQVc7QUFDM0MscUJBQU8sS0FBSztBQUFBLG1CQUNOO0FBR04sbUJBQU0sT0FBTyxLQUFLLFlBQVksTUFBTSxPQUFPLEtBQUssYUFBYztBQUM3RCx1QkFBTyxRQUFTO0FBQUE7QUFBQTtBQUFBLHFCQUdQLGFBQWEsS0FBSyxhQUFhLEdBQUk7QUFDOUMsbUJBQU8sS0FBSztBQUFBO0FBS2IsaUJBQU87QUFBQTtBQUdSLGVBQU8sUUFBTyxZQUFZO0FBQUEsVUFHekIsYUFBYTtBQUFBLFVBRWIsY0FBYztBQUFBLFVBRWQsT0FBTztBQUFBLFVBRVAsWUFBWTtBQUFBLFVBRVosTUFBTTtBQUFBLFVBRU4sVUFBVTtBQUFBLFlBQ1QsS0FBSyxFQUFFLEtBQUssY0FBYyxPQUFPO0FBQUEsWUFDakMsS0FBSyxFQUFFLEtBQUs7QUFBQSxZQUNaLEtBQUssRUFBRSxLQUFLLG1CQUFtQixPQUFPO0FBQUEsWUFDdEMsS0FBSyxFQUFFLEtBQUs7QUFBQTtBQUFBLFVBR2IsV0FBVztBQUFBLFlBQ1YsUUFBUSxTQUFVLE9BQVE7QUFDekIsb0JBQU8sS0FBTSxNQUFPLEdBQUksUUFBUyxXQUFXO0FBRzVDLG9CQUFPLEtBQVEsT0FBTyxNQUFPLE1BQU8sTUFDbkMsTUFBTyxNQUFPLElBQUssUUFBUyxXQUFXO0FBRXhDLGtCQUFLLE1BQU8sT0FBUSxNQUFPO0FBQzFCLHNCQUFPLEtBQU0sTUFBTSxNQUFPLEtBQU07QUFBQTtBQUdqQyxxQkFBTyxNQUFNLE1BQU8sR0FBRztBQUFBO0FBQUEsWUFHeEIsU0FBUyxTQUFVLE9BQVE7QUFZMUIsb0JBQU8sS0FBTSxNQUFPLEdBQUk7QUFFeEIsa0JBQUssTUFBTyxHQUFJLE1BQU8sR0FBRyxPQUFRLE9BQVE7QUFHekMsb0JBQUssQ0FBQyxNQUFPLElBQU07QUFDbEIsMEJBQU8sTUFBTyxNQUFPO0FBQUE7QUFLdEIsc0JBQU8sS0FBTSxDQUFHLE9BQU8sS0FDdEIsTUFBTyxLQUFRLE9BQU8sTUFBTyxLQUM3QixJQUFNLE9BQU8sT0FBUSxVQUFVLE1BQU8sT0FBUTtBQUMvQyxzQkFBTyxLQUFNLENBQUssT0FBTyxLQUFNLE1BQU8sTUFBUyxNQUFPLE9BQVE7QUFBQSx5QkFHbkQsTUFBTyxJQUFNO0FBQ3hCLHdCQUFPLE1BQU8sTUFBTztBQUFBO0FBR3RCLHFCQUFPO0FBQUE7QUFBQSxZQUdSLFVBQVUsU0FBVSxPQUFRO0FBQzNCLGtCQUFJLFFBQ0gsV0FBVyxDQUFDLE1BQU8sTUFBTyxNQUFPO0FBRWxDLGtCQUFLLFVBQVcsU0FBVSxLQUFNLE1BQU8sS0FBUTtBQUM5Qyx1QkFBTztBQUFBO0FBSVIsa0JBQUssTUFBTyxJQUFNO0FBQ2pCLHNCQUFPLEtBQU0sTUFBTyxNQUFPLE1BQU8sTUFBTztBQUFBLHlCQUc5QixZQUFZLFFBQVEsS0FBTSxhQUduQyxVQUFTLFNBQVUsVUFBVSxVQUc3QixVQUFTLFNBQVMsUUFBUyxLQUFLLFNBQVMsU0FBUyxVQUFXLFNBQVMsU0FBVztBQUduRixzQkFBTyxLQUFNLE1BQU8sR0FBSSxNQUFPLEdBQUc7QUFDbEMsc0JBQU8sS0FBTSxTQUFTLE1BQU8sR0FBRztBQUFBO0FBSWpDLHFCQUFPLE1BQU0sTUFBTyxHQUFHO0FBQUE7QUFBQTtBQUFBLFVBSXpCLFFBQVE7QUFBQSxZQUVQLE9BQU8sU0FBVSxrQkFBbUI7QUFDbkMsa0JBQUksWUFBVyxpQkFBaUIsUUFBUyxXQUFXLFdBQVk7QUFDaEUscUJBQU8scUJBQXFCLE1BQzNCLFdBQVc7QUFDVix1QkFBTztBQUFBLGtCQUVSLFNBQVUsTUFBTztBQUNoQix1QkFBTyxLQUFLLFlBQVksS0FBSyxTQUFTLGtCQUFrQjtBQUFBO0FBQUE7QUFBQSxZQUkzRCxTQUFTLFNBQVUsV0FBWTtBQUM5QixrQkFBSSxVQUFVLFdBQVksWUFBWTtBQUV0QyxxQkFBTyxXQUNKLFdBQVUsSUFBSSxPQUFRLFFBQVEsYUFDL0IsTUFBTSxZQUFZLE1BQU0sYUFBYSxXQUFhLFdBQ2pELFdBQVcsU0FBVSxNQUFPO0FBQzNCLHVCQUFPLFFBQVEsS0FDZCxPQUFPLEtBQUssY0FBYyxZQUFZLEtBQUssYUFDM0MsT0FBTyxLQUFLLGlCQUFpQixlQUM1QixLQUFLLGFBQWMsWUFDcEI7QUFBQTtBQUFBO0FBQUEsWUFLTixRQUFRLFNBQVUsTUFBTSxVQUFVLE9BQVE7QUFDekMscUJBQU8sU0FBVSxNQUFPO0FBQ3ZCLG9CQUFJLFNBQVMsUUFBTyxLQUFNLE1BQU07QUFFaEMsb0JBQUssVUFBVSxNQUFPO0FBQ3JCLHlCQUFPLGFBQWE7QUFBQTtBQUVyQixvQkFBSyxDQUFDLFVBQVc7QUFDaEIseUJBQU87QUFBQTtBQUdSLDBCQUFVO0FBSVYsdUJBQU8sYUFBYSxNQUFNLFdBQVcsUUFDcEMsYUFBYSxPQUFPLFdBQVcsUUFDL0IsYUFBYSxPQUFPLFNBQVMsT0FBTyxRQUFTLFdBQVksSUFDekQsYUFBYSxPQUFPLFNBQVMsT0FBTyxRQUFTLFNBQVUsS0FDdkQsYUFBYSxPQUFPLFNBQVMsT0FBTyxNQUFPLENBQUMsTUFBTSxZQUFhLFFBQy9ELGFBQWEsT0FBUyxPQUFNLE9BQU8sUUFBUyxhQUFhLE9BQVEsS0FBTSxRQUFTLFNBQVUsS0FDMUYsYUFBYSxPQUFPLFdBQVcsU0FBUyxPQUFPLE1BQU8sR0FBRyxNQUFNLFNBQVMsT0FBUSxRQUFRLE1BQ3hGO0FBQUE7QUFBQTtBQUFBLFlBTUgsU0FBUyxTQUFVLE1BQU0sTUFBTSxXQUFXLE9BQU8sTUFBTztBQUN2RCxrQkFBSSxTQUFTLEtBQUssTUFBTyxHQUFHLE9BQVEsT0FDbkMsVUFBVSxLQUFLLE1BQU8sUUFBUyxRQUMvQixTQUFTLFNBQVM7QUFFbkIscUJBQU8sVUFBVSxLQUFLLFNBQVMsSUFHOUIsU0FBVSxNQUFPO0FBQ2hCLHVCQUFPLENBQUMsQ0FBQyxLQUFLO0FBQUEsa0JBR2YsU0FBVSxNQUFNLFVBQVUsS0FBTTtBQUMvQixvQkFBSSxPQUFPLGFBQWEsWUFBWSxNQUFNLFdBQVcsT0FDcEQsT0FBTSxXQUFXLFVBQVUsZ0JBQWdCLG1CQUMzQyxTQUFTLEtBQUssWUFDZCxPQUFPLFVBQVUsS0FBSyxTQUFTLGVBQy9CLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFDcEIsT0FBTztBQUVSLG9CQUFLLFFBQVM7QUFHYixzQkFBSyxRQUFTO0FBQ2IsMkJBQVEsTUFBTTtBQUNiLDZCQUFPO0FBQ1AsNkJBQVUsT0FBTyxLQUFNLE9BQVU7QUFDaEMsNEJBQUssU0FDSixLQUFLLFNBQVMsa0JBQWtCLE9BQ2hDLEtBQUssYUFBYSxHQUFJO0FBRXRCLGlDQUFPO0FBQUE7QUFBQTtBQUtULDhCQUFRLE9BQU0sU0FBUyxVQUFVLENBQUMsU0FBUztBQUFBO0FBRTVDLDJCQUFPO0FBQUE7QUFHUiwwQkFBUSxDQUFFLFVBQVUsT0FBTyxhQUFhLE9BQU87QUFHL0Msc0JBQUssV0FBVyxVQUFXO0FBSzFCLDJCQUFPO0FBQ1AsaUNBQWEsS0FBTSxZQUFlLE1BQU0sV0FBWTtBQUlwRCxrQ0FBYyxXQUFZLEtBQUssYUFDNUIsWUFBWSxLQUFLLFlBQWE7QUFFakMsNEJBQVEsWUFBYSxTQUFVO0FBQy9CLGdDQUFZLE1BQU8sT0FBUSxXQUFXLE1BQU87QUFDN0MsMkJBQU8sYUFBYSxNQUFPO0FBQzNCLDJCQUFPLGFBQWEsT0FBTyxXQUFZO0FBRXZDLDJCQUFVLE9BQU8sRUFBRSxhQUFhLFFBQVEsS0FBTSxTQUczQyxRQUFPLFlBQVksTUFBTyxNQUFNLE9BQVU7QUFHNUMsMEJBQUssS0FBSyxhQUFhLEtBQUssRUFBRSxRQUFRLFNBQVMsTUFBTztBQUNyRCxvQ0FBYSxRQUFTLENBQUUsU0FBUyxXQUFXO0FBQzVDO0FBQUE7QUFBQTtBQUFBLHlCQUlJO0FBR04sd0JBQUssVUFBVztBQUdmLDZCQUFPO0FBQ1AsbUNBQWEsS0FBTSxZQUFlLE1BQU0sV0FBWTtBQUlwRCxvQ0FBYyxXQUFZLEtBQUssYUFDNUIsWUFBWSxLQUFLLFlBQWE7QUFFakMsOEJBQVEsWUFBYSxTQUFVO0FBQy9CLGtDQUFZLE1BQU8sT0FBUSxXQUFXLE1BQU87QUFDN0MsNkJBQU87QUFBQTtBQUtSLHdCQUFLLFNBQVMsT0FBUTtBQUdyQiw2QkFBVSxPQUFPLEVBQUUsYUFBYSxRQUFRLEtBQU0sU0FDM0MsUUFBTyxZQUFZLE1BQU8sTUFBTSxPQUFVO0FBRTVDLDRCQUFPLFVBQ04sS0FBSyxTQUFTLGtCQUFrQixPQUNoQyxLQUFLLGFBQWEsTUFDbEIsRUFBRSxNQUFPO0FBR1QsOEJBQUssVUFBVztBQUNmLHlDQUFhLEtBQU0sWUFDaEIsTUFBTSxXQUFZO0FBSXJCLDBDQUFjLFdBQVksS0FBSyxhQUM1QixZQUFZLEtBQUssWUFBYTtBQUVqQyx3Q0FBYSxRQUFTLENBQUUsU0FBUztBQUFBO0FBR2xDLDhCQUFLLFNBQVMsTUFBTztBQUNwQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRTCwwQkFBUTtBQUNSLHlCQUFPLFNBQVMsU0FBVyxPQUFPLFVBQVUsS0FBSyxPQUFPLFNBQVM7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQUtyRSxVQUFVLFNBQVUsUUFBUSxVQUFXO0FBTXRDLGtCQUFJLE1BQ0gsS0FBSyxLQUFLLFFBQVMsV0FBWSxLQUFLLFdBQVksT0FBTyxrQkFDdEQsUUFBTyxNQUFPLHlCQUF5QjtBQUt6QyxrQkFBSyxHQUFJLFVBQVk7QUFDcEIsdUJBQU8sR0FBSTtBQUFBO0FBSVosa0JBQUssR0FBRyxTQUFTLEdBQUk7QUFDcEIsdUJBQU8sQ0FBRSxRQUFRLFFBQVEsSUFBSTtBQUM3Qix1QkFBTyxLQUFLLFdBQVcsZUFBZ0IsT0FBTyxpQkFDN0MsYUFBYyxTQUFVLE1BQU0sVUFBVTtBQUN2QyxzQkFBSSxLQUNILFVBQVUsR0FBSSxNQUFNLFdBQ3BCLEtBQUksUUFBUTtBQUNiLHlCQUFRLE1BQU07QUFDYiwwQkFBTSxTQUFTLE1BQU0sUUFBUztBQUM5Qix5QkFBTSxPQUFRLENBQUcsVUFBUyxPQUFRLFFBQVM7QUFBQTtBQUFBLHFCQUc3QyxTQUFVLE1BQU87QUFDaEIseUJBQU8sR0FBSSxNQUFNLEdBQUc7QUFBQTtBQUFBO0FBSXZCLHFCQUFPO0FBQUE7QUFBQTtBQUFBLFVBSVQsU0FBUztBQUFBLFlBR1IsT0FBTyxhQUFjLFNBQVUsVUFBVztBQUt6QyxrQkFBSSxRQUFRLElBQ1gsVUFBVSxJQUNWLFVBQVUsUUFBUyxTQUFTLFFBQVMsUUFBTztBQUU3QyxxQkFBTyxRQUFTLFdBQ2YsYUFBYyxTQUFVLE1BQU0sVUFBUyxVQUFVLEtBQU07QUFDdEQsb0JBQUksTUFDSCxZQUFZLFFBQVMsTUFBTSxNQUFNLEtBQUssS0FDdEMsS0FBSSxLQUFLO0FBR1YsdUJBQVEsTUFBTTtBQUNiLHNCQUFPLE9BQU8sVUFBVyxLQUFRO0FBQ2hDLHlCQUFNLE1BQU0sQ0FBRyxVQUFTLE1BQU07QUFBQTtBQUFBO0FBQUEsbUJBSWpDLFNBQVUsTUFBTSxVQUFVLEtBQU07QUFDL0Isc0JBQU8sS0FBTTtBQUNiLHdCQUFTLE9BQU8sTUFBTSxLQUFLO0FBRzNCLHNCQUFPLEtBQU07QUFDYix1QkFBTyxDQUFDLFFBQVE7QUFBQTtBQUFBO0FBQUEsWUFJbkIsT0FBTyxhQUFjLFNBQVUsVUFBVztBQUN6QyxxQkFBTyxTQUFVLE1BQU87QUFDdkIsdUJBQU8sUUFBUSxVQUFVLE1BQU8sU0FBUztBQUFBO0FBQUE7QUFBQSxZQUkzQyxZQUFZLGFBQWMsU0FBVSxNQUFPO0FBQzFDLHFCQUFPLEtBQUssUUFBUyxXQUFXO0FBQ2hDLHFCQUFPLFNBQVUsTUFBTztBQUN2Qix1QkFBUyxNQUFLLGVBQWUsUUFBUyxPQUFTLFFBQVMsUUFBUztBQUFBO0FBQUE7QUFBQSxZQVduRSxRQUFRLGFBQWMsU0FBVSxNQUFPO0FBR3RDLGtCQUFLLENBQUMsWUFBWSxLQUFNLFFBQVEsS0FBTztBQUN0Qyx3QkFBTyxNQUFPLHVCQUF1QjtBQUFBO0FBRXRDLHFCQUFPLEtBQUssUUFBUyxXQUFXLFdBQVk7QUFDNUMscUJBQU8sU0FBVSxNQUFPO0FBQ3ZCLG9CQUFJO0FBQ0osbUJBQUc7QUFDRixzQkFBTyxXQUFXLGlCQUNqQixLQUFLLE9BQ0wsS0FBSyxhQUFjLGVBQWdCLEtBQUssYUFBYyxTQUFhO0FBRW5FLCtCQUFXLFNBQVM7QUFDcEIsMkJBQU8sYUFBYSxRQUFRLFNBQVMsUUFBUyxPQUFPLFNBQVU7QUFBQTtBQUFBLHlCQUVyRCxRQUFPLEtBQUssZUFBZ0IsS0FBSyxhQUFhO0FBQzFELHVCQUFPO0FBQUE7QUFBQTtBQUFBLFlBS1QsVUFBVSxTQUFVLE1BQU87QUFDMUIsa0JBQUksT0FBTyxRQUFPLFlBQVksUUFBTyxTQUFTO0FBQzlDLHFCQUFPLFFBQVEsS0FBSyxNQUFPLE9BQVEsS0FBSztBQUFBO0FBQUEsWUFHekMsUUFBUSxTQUFVLE1BQU87QUFDeEIscUJBQU8sU0FBUztBQUFBO0FBQUEsWUFHakIsU0FBUyxTQUFVLE1BQU87QUFDekIscUJBQU8sU0FBUyxVQUFTLGlCQUN0QixFQUFDLFVBQVMsWUFBWSxVQUFTLGVBQ2pDLENBQUMsQ0FBRyxNQUFLLFFBQVEsS0FBSyxRQUFRLENBQUMsS0FBSztBQUFBO0FBQUEsWUFJdEMsV0FBVyxxQkFBc0I7QUFBQSxZQUNqQyxZQUFZLHFCQUFzQjtBQUFBLFlBRWxDLFdBQVcsU0FBVSxNQUFPO0FBSTNCLGtCQUFJLFlBQVcsS0FBSyxTQUFTO0FBQzdCLHFCQUFTLGNBQWEsV0FBVyxDQUFDLENBQUMsS0FBSyxXQUNyQyxjQUFhLFlBQVksQ0FBQyxDQUFDLEtBQUs7QUFBQTtBQUFBLFlBR3BDLFlBQVksU0FBVSxNQUFPO0FBSTVCLGtCQUFLLEtBQUssWUFBYTtBQUV0QixxQkFBSyxXQUFXO0FBQUE7QUFHakIscUJBQU8sS0FBSyxhQUFhO0FBQUE7QUFBQSxZQUkxQixTQUFTLFNBQVUsTUFBTztBQU16QixtQkFBTSxPQUFPLEtBQUssWUFBWSxNQUFNLE9BQU8sS0FBSyxhQUFjO0FBQzdELG9CQUFLLEtBQUssV0FBVyxHQUFJO0FBQ3hCLHlCQUFPO0FBQUE7QUFBQTtBQUdULHFCQUFPO0FBQUE7QUFBQSxZQUdSLFVBQVUsU0FBVSxNQUFPO0FBQzFCLHFCQUFPLENBQUMsS0FBSyxRQUFTLFNBQVc7QUFBQTtBQUFBLFlBSWxDLFVBQVUsU0FBVSxNQUFPO0FBQzFCLHFCQUFPLFFBQVEsS0FBTSxLQUFLO0FBQUE7QUFBQSxZQUczQixTQUFTLFNBQVUsTUFBTztBQUN6QixxQkFBTyxRQUFRLEtBQU0sS0FBSztBQUFBO0FBQUEsWUFHM0IsVUFBVSxTQUFVLE1BQU87QUFDMUIsa0JBQUksT0FBTyxLQUFLLFNBQVM7QUFDekIscUJBQU8sU0FBUyxXQUFXLEtBQUssU0FBUyxZQUFZLFNBQVM7QUFBQTtBQUFBLFlBRy9ELFFBQVEsU0FBVSxNQUFPO0FBQ3hCLGtCQUFJO0FBQ0oscUJBQU8sS0FBSyxTQUFTLGtCQUFrQixXQUN0QyxLQUFLLFNBQVMsVUFJVixTQUFPLEtBQUssYUFBYyxZQUFjLFFBQzNDLEtBQUssa0JBQWtCO0FBQUE7QUFBQSxZQUkxQixTQUFTLHVCQUF3QixXQUFXO0FBQzNDLHFCQUFPLENBQUU7QUFBQTtBQUFBLFlBR1YsUUFBUSx1QkFBd0IsU0FBVSxlQUFlLFFBQVM7QUFDakUscUJBQU8sQ0FBRSxTQUFTO0FBQUE7QUFBQSxZQUduQixNQUFNLHVCQUF3QixTQUFVLGVBQWUsUUFBUSxVQUFXO0FBQ3pFLHFCQUFPLENBQUUsV0FBVyxJQUFJLFdBQVcsU0FBUztBQUFBO0FBQUEsWUFHN0MsUUFBUSx1QkFBd0IsU0FBVSxjQUFjLFFBQVM7QUFDaEUsa0JBQUksS0FBSTtBQUNSLHFCQUFRLEtBQUksUUFBUSxNQUFLLEdBQUk7QUFDNUIsNkJBQWEsS0FBTTtBQUFBO0FBRXBCLHFCQUFPO0FBQUE7QUFBQSxZQUdSLE9BQU8sdUJBQXdCLFNBQVUsY0FBYyxRQUFTO0FBQy9ELGtCQUFJLEtBQUk7QUFDUixxQkFBUSxLQUFJLFFBQVEsTUFBSyxHQUFJO0FBQzVCLDZCQUFhLEtBQU07QUFBQTtBQUVwQixxQkFBTztBQUFBO0FBQUEsWUFHUixNQUFNLHVCQUF3QixTQUFVLGNBQWMsUUFBUSxVQUFXO0FBQ3hFLGtCQUFJLEtBQUksV0FBVyxJQUNsQixXQUFXLFNBQ1gsV0FBVyxTQUNWLFNBQ0E7QUFDRixxQkFBUSxFQUFFLE1BQUssS0FBSztBQUNuQiw2QkFBYSxLQUFNO0FBQUE7QUFFcEIscUJBQU87QUFBQTtBQUFBLFlBR1IsTUFBTSx1QkFBd0IsU0FBVSxjQUFjLFFBQVEsVUFBVztBQUN4RSxrQkFBSSxLQUFJLFdBQVcsSUFBSSxXQUFXLFNBQVM7QUFDM0MscUJBQVEsRUFBRSxLQUFJLFVBQVU7QUFDdkIsNkJBQWEsS0FBTTtBQUFBO0FBRXBCLHFCQUFPO0FBQUE7QUFBQTtBQUFBO0FBS1YsYUFBSyxRQUFTLFNBQVUsS0FBSyxRQUFTO0FBR3RDLGFBQU0sS0FBSyxFQUFFLE9BQU8sTUFBTSxVQUFVLE1BQU0sTUFBTSxNQUFNLFVBQVUsTUFBTSxPQUFPLFFBQVM7QUFDckYsZUFBSyxRQUFTLEtBQU0sa0JBQW1CO0FBQUE7QUFFeEMsYUFBTSxLQUFLLEVBQUUsUUFBUSxNQUFNLE9BQU8sUUFBUztBQUMxQyxlQUFLLFFBQVMsS0FBTSxtQkFBb0I7QUFBQTtBQUl6Qyw4QkFBc0I7QUFBQTtBQUN0QixtQkFBVyxZQUFZLEtBQUssVUFBVSxLQUFLO0FBQzNDLGFBQUssYUFBYSxJQUFJO0FBRXRCLG1CQUFXLFFBQU8sV0FBVyxTQUFVLFVBQVUsV0FBWTtBQUM1RCxjQUFJLFNBQVMsT0FBTyxRQUFRLE1BQzNCLE9BQU8sUUFBUSxZQUNmLFNBQVMsV0FBWSxXQUFXO0FBRWpDLGNBQUssUUFBUztBQUNiLG1CQUFPLFlBQVksSUFBSSxPQUFPLE1BQU87QUFBQTtBQUd0QyxrQkFBUTtBQUNSLG1CQUFTO0FBQ1QsdUJBQWEsS0FBSztBQUVsQixpQkFBUSxPQUFRO0FBR2YsZ0JBQUssQ0FBQyxXQUFhLFNBQVEsT0FBTyxLQUFNLFNBQVk7QUFDbkQsa0JBQUssT0FBUTtBQUdaLHdCQUFRLE1BQU0sTUFBTyxNQUFPLEdBQUksV0FBWTtBQUFBO0FBRTdDLHFCQUFPLEtBQVEsU0FBUztBQUFBO0FBR3pCLHNCQUFVO0FBR1YsZ0JBQU8sUUFBUSxhQUFhLEtBQU0sUUFBWTtBQUM3Qyx3QkFBVSxNQUFNO0FBQ2hCLHFCQUFPLEtBQU07QUFBQSxnQkFDWixPQUFPO0FBQUEsZ0JBR1AsTUFBTSxNQUFPLEdBQUksUUFBUyxRQUFPO0FBQUE7QUFFbEMsc0JBQVEsTUFBTSxNQUFPLFFBQVE7QUFBQTtBQUk5QixpQkFBTSxRQUFRLEtBQUssUUFBUztBQUMzQixrQkFBTyxTQUFRLFVBQVcsTUFBTyxLQUFNLFdBQWUsRUFBQyxXQUFZLFNBQ2hFLFNBQVEsV0FBWSxNQUFRLFVBQWM7QUFDNUMsMEJBQVUsTUFBTTtBQUNoQix1QkFBTyxLQUFNO0FBQUEsa0JBQ1osT0FBTztBQUFBLGtCQUNQO0FBQUEsa0JBQ0EsU0FBUztBQUFBO0FBRVYsd0JBQVEsTUFBTSxNQUFPLFFBQVE7QUFBQTtBQUFBO0FBSS9CLGdCQUFLLENBQUMsU0FBVTtBQUNmO0FBQUE7QUFBQTtBQU9GLGlCQUFPLFlBQ04sTUFBTSxTQUNOLFFBQ0MsUUFBTyxNQUFPLFlBR2QsV0FBWSxVQUFVLFFBQVMsTUFBTztBQUFBO0FBR3pDLDRCQUFxQixRQUFTO0FBQzdCLGNBQUksS0FBSSxHQUNQLE1BQU0sT0FBTyxRQUNiLFdBQVc7QUFDWixpQkFBUSxLQUFJLEtBQUssTUFBTTtBQUN0Qix3QkFBWSxPQUFRLElBQUk7QUFBQTtBQUV6QixpQkFBTztBQUFBO0FBR1IsK0JBQXdCLFNBQVMsWUFBWSxNQUFPO0FBQ25ELGNBQUksT0FBTSxXQUFXLEtBQ3BCLE9BQU8sV0FBVyxNQUNsQixNQUFNLFFBQVEsTUFDZCxtQkFBbUIsUUFBUSxRQUFRLGNBQ25DLFdBQVc7QUFFWixpQkFBTyxXQUFXLFFBR2pCLFNBQVUsTUFBTSxTQUFTLEtBQU07QUFDOUIsbUJBQVUsT0FBTyxLQUFNLE9BQVU7QUFDaEMsa0JBQUssS0FBSyxhQUFhLEtBQUssa0JBQW1CO0FBQzlDLHVCQUFPLFFBQVMsTUFBTSxTQUFTO0FBQUE7QUFBQTtBQUdqQyxtQkFBTztBQUFBLGNBSVIsU0FBVSxNQUFNLFNBQVMsS0FBTTtBQUM5QixnQkFBSSxVQUFVLGFBQWEsWUFDMUIsV0FBVyxDQUFFLFNBQVM7QUFHdkIsZ0JBQUssS0FBTTtBQUNWLHFCQUFVLE9BQU8sS0FBTSxPQUFVO0FBQ2hDLG9CQUFLLEtBQUssYUFBYSxLQUFLLGtCQUFtQjtBQUM5QyxzQkFBSyxRQUFTLE1BQU0sU0FBUyxNQUFRO0FBQ3BDLDJCQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBSUo7QUFDTixxQkFBVSxPQUFPLEtBQU0sT0FBVTtBQUNoQyxvQkFBSyxLQUFLLGFBQWEsS0FBSyxrQkFBbUI7QUFDOUMsK0JBQWEsS0FBTSxZQUFlLE1BQU0sV0FBWTtBQUlwRCxnQ0FBYyxXQUFZLEtBQUssYUFDNUIsWUFBWSxLQUFLLFlBQWE7QUFFakMsc0JBQUssUUFBUSxTQUFTLEtBQUssU0FBUyxlQUFnQjtBQUNuRCwyQkFBTyxLQUFNLFNBQVM7QUFBQSw2QkFDVCxZQUFXLFlBQWEsU0FDckMsU0FBVSxPQUFRLFdBQVcsU0FBVSxPQUFRLFVBQVc7QUFHMUQsMkJBQVMsU0FBVSxLQUFNLFNBQVU7QUFBQSx5QkFDN0I7QUFHTixnQ0FBYSxPQUFRO0FBR3JCLHdCQUFPLFNBQVUsS0FBTSxRQUFTLE1BQU0sU0FBUyxNQUFVO0FBQ3hELDZCQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1aLG1CQUFPO0FBQUE7QUFBQTtBQUlWLGdDQUF5QixVQUFXO0FBQ25DLGlCQUFPLFNBQVMsU0FBUyxJQUN4QixTQUFVLE1BQU0sU0FBUyxLQUFNO0FBQzlCLGdCQUFJLEtBQUksU0FBUztBQUNqQixtQkFBUSxNQUFNO0FBQ2Isa0JBQUssQ0FBQyxTQUFVLElBQUssTUFBTSxTQUFTLE1BQVE7QUFDM0MsdUJBQU87QUFBQTtBQUFBO0FBR1QsbUJBQU87QUFBQSxjQUVSLFNBQVU7QUFBQTtBQUdaLGtDQUEyQixVQUFVLFVBQVUsU0FBVTtBQUN4RCxjQUFJLEtBQUksR0FDUCxNQUFNLFNBQVM7QUFDaEIsaUJBQVEsS0FBSSxLQUFLLE1BQU07QUFDdEIsb0JBQVEsVUFBVSxTQUFVLEtBQUs7QUFBQTtBQUVsQyxpQkFBTztBQUFBO0FBR1IsMEJBQW1CLFdBQVcsS0FBSyxRQUFRLFNBQVMsS0FBTTtBQUN6RCxjQUFJLE1BQ0gsZUFBZSxJQUNmLEtBQUksR0FDSixNQUFNLFVBQVUsUUFDaEIsU0FBUyxPQUFPO0FBRWpCLGlCQUFRLEtBQUksS0FBSyxNQUFNO0FBQ3RCLGdCQUFPLE9BQU8sVUFBVyxLQUFRO0FBQ2hDLGtCQUFLLENBQUMsVUFBVSxPQUFRLE1BQU0sU0FBUyxNQUFRO0FBQzlDLDZCQUFhLEtBQU07QUFDbkIsb0JBQUssUUFBUztBQUNiLHNCQUFJLEtBQU07QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1kLGlCQUFPO0FBQUE7QUFHUiw0QkFBcUIsV0FBVyxVQUFVLFNBQVMsWUFBWSxZQUFZLGNBQWU7QUFDekYsY0FBSyxjQUFjLENBQUMsV0FBWSxVQUFZO0FBQzNDLHlCQUFhLFdBQVk7QUFBQTtBQUUxQixjQUFLLGNBQWMsQ0FBQyxXQUFZLFVBQVk7QUFDM0MseUJBQWEsV0FBWSxZQUFZO0FBQUE7QUFFdEMsaUJBQU8sYUFBYyxTQUFVLE1BQU0sU0FBUyxTQUFTLEtBQU07QUFDNUQsZ0JBQUksTUFBTSxJQUFHLE1BQ1osU0FBUyxJQUNULFVBQVUsSUFDVixjQUFjLFFBQVEsUUFHdEIsUUFBUSxRQUFRLGlCQUNmLFlBQVksS0FDWixRQUFRLFdBQVcsQ0FBRSxXQUFZLFNBQ2pDLEtBSUQsWUFBWSxhQUFlLFNBQVEsQ0FBQyxZQUNuQyxTQUFVLE9BQU8sUUFBUSxXQUFXLFNBQVMsT0FDN0MsT0FFRCxhQUFhLFVBR1osY0FBZ0IsUUFBTyxZQUFZLGVBQWUsY0FHakQsS0FHQSxVQUNEO0FBR0YsZ0JBQUssU0FBVTtBQUNkLHNCQUFTLFdBQVcsWUFBWSxTQUFTO0FBQUE7QUFJMUMsZ0JBQUssWUFBYTtBQUNqQixxQkFBTyxTQUFVLFlBQVk7QUFDN0IseUJBQVksTUFBTSxJQUFJLFNBQVM7QUFHL0IsbUJBQUksS0FBSztBQUNULHFCQUFRLE1BQU07QUFDYixvQkFBTyxPQUFPLEtBQU0sS0FBUTtBQUMzQiw2QkFBWSxRQUFTLE9BQVEsQ0FBRyxXQUFXLFFBQVMsT0FBUTtBQUFBO0FBQUE7QUFBQTtBQUsvRCxnQkFBSyxNQUFPO0FBQ1gsa0JBQUssY0FBYyxXQUFZO0FBQzlCLG9CQUFLLFlBQWE7QUFHakIseUJBQU87QUFDUCx1QkFBSSxXQUFXO0FBQ2YseUJBQVEsTUFBTTtBQUNiLHdCQUFPLE9BQU8sV0FBWSxLQUFRO0FBR2pDLDJCQUFLLEtBQVEsVUFBVyxNQUFNO0FBQUE7QUFBQTtBQUdoQyw2QkFBWSxNQUFRLGFBQWEsSUFBTSxNQUFNO0FBQUE7QUFJOUMscUJBQUksV0FBVztBQUNmLHVCQUFRLE1BQU07QUFDYixzQkFBTyxRQUFPLFdBQVksUUFDdkIsUUFBTyxhQUFhLFNBQVMsTUFBTSxRQUFTLE9BQVEsT0FBUSxJQUFLO0FBRW5FLHlCQUFNLFFBQVMsQ0FBRyxTQUFTLFFBQVM7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFNakM7QUFDTiwyQkFBYSxTQUNaLGVBQWUsVUFDZCxXQUFXLE9BQVEsYUFBYSxXQUFXLFVBQzNDO0FBRUYsa0JBQUssWUFBYTtBQUNqQiwyQkFBWSxNQUFNLFNBQVMsWUFBWTtBQUFBLHFCQUNqQztBQUNOLHNCQUFLLE1BQU8sU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTXpCLG1DQUE0QixRQUFTO0FBQ3BDLGNBQUksY0FBYyxTQUFTLEdBQzFCLE1BQU0sT0FBTyxRQUNiLGtCQUFrQixLQUFLLFNBQVUsT0FBUSxHQUFJLE9BQzdDLG1CQUFtQixtQkFBbUIsS0FBSyxTQUFVLE1BQ3JELEtBQUksa0JBQWtCLElBQUksR0FHMUIsZUFBZSxjQUFlLFNBQVUsTUFBTztBQUM5QyxtQkFBTyxTQUFTO0FBQUEsYUFDZCxrQkFBa0IsT0FDckIsa0JBQWtCLGNBQWUsU0FBVSxNQUFPO0FBQ2pELG1CQUFPLFNBQVMsY0FBYyxRQUFTO0FBQUEsYUFDckMsa0JBQWtCLE9BQ3JCLFdBQVcsQ0FBRSxTQUFVLE1BQU0sU0FBUyxLQUFNO0FBQzNDLGdCQUFJLE1BQVEsQ0FBQyxtQkFBcUIsUUFBTyxZQUFZLHFCQUNsRCxpQkFBZSxTQUFVLFdBQzFCLGFBQWMsTUFBTSxTQUFTLE9BQzdCLGdCQUFpQixNQUFNLFNBQVM7QUFHbEMsMkJBQWU7QUFDZixtQkFBTztBQUFBO0FBR1QsaUJBQVEsS0FBSSxLQUFLLE1BQU07QUFDdEIsZ0JBQU8sVUFBVSxLQUFLLFNBQVUsT0FBUSxJQUFJLE9BQVc7QUFDdEQseUJBQVcsQ0FBRSxjQUFlLGVBQWdCLFdBQVk7QUFBQSxtQkFDbEQ7QUFDTix3QkFBVSxLQUFLLE9BQVEsT0FBUSxJQUFJLE1BQU8sTUFBTyxNQUFNLE9BQVEsSUFBSTtBQUduRSxrQkFBSyxRQUFTLFVBQVk7QUFHekIsb0JBQUksRUFBRTtBQUNOLHVCQUFRLElBQUksS0FBSyxLQUFNO0FBQ3RCLHNCQUFLLEtBQUssU0FBVSxPQUFRLEdBQUksT0FBUztBQUN4QztBQUFBO0FBQUE7QUFHRix1QkFBTyxXQUNOLEtBQUksS0FBSyxlQUFnQixXQUN6QixLQUFJLEtBQUssV0FHVCxPQUNFLE1BQU8sR0FBRyxLQUFJLEdBQ2QsT0FBUSxFQUFFLE9BQU8sT0FBUSxLQUFJLEdBQUksU0FBUyxNQUFNLE1BQU0sT0FDdEQsUUFBUyxRQUFPLE9BQ2xCLFNBQ0EsS0FBSSxLQUFLLGtCQUFtQixPQUFPLE1BQU8sSUFBRyxLQUM3QyxJQUFJLE9BQU8sa0JBQXFCLFNBQVMsT0FBTyxNQUFPLEtBQ3ZELElBQUksT0FBTyxXQUFZO0FBQUE7QUFHekIsdUJBQVMsS0FBTTtBQUFBO0FBQUE7QUFJakIsaUJBQU8sZUFBZ0I7QUFBQTtBQUd4QiwwQ0FBbUMsaUJBQWlCLGFBQWM7QUFDakUsY0FBSSxRQUFRLFlBQVksU0FBUyxHQUNoQyxZQUFZLGdCQUFnQixTQUFTLEdBQ3JDLGVBQWUsU0FBVSxNQUFNLFNBQVMsS0FBSyxTQUFTLFdBQVk7QUFDakUsZ0JBQUksTUFBTSxHQUFHLFNBQ1osZUFBZSxHQUNmLEtBQUksS0FDSixZQUFZLFFBQVEsSUFDcEIsYUFBYSxJQUNiLGdCQUFnQixrQkFHaEIsUUFBUSxRQUFRLGFBQWEsS0FBSyxLQUFNLE9BQVMsS0FBSyxZQUd0RCxnQkFBa0IsV0FBVyxpQkFBaUIsT0FBTyxJQUFJLEtBQUssWUFBWSxLQUMxRSxNQUFNLE1BQU07QUFFYixnQkFBSyxXQUFZO0FBTWhCLGlDQUFtQixXQUFXLGFBQVksV0FBVztBQUFBO0FBTXRELG1CQUFRLE9BQU0sT0FBUyxRQUFPLE1BQU8sUUFBUyxNQUFNLE1BQU07QUFDekQsa0JBQUssYUFBYSxNQUFPO0FBQ3hCLG9CQUFJO0FBTUosb0JBQUssQ0FBQyxXQUFXLEtBQUssaUJBQWlCLFdBQVc7QUFDakQsOEJBQWE7QUFDYix3QkFBTSxDQUFDO0FBQUE7QUFFUix1QkFBVSxVQUFVLGdCQUFpQixNQUFVO0FBQzlDLHNCQUFLLFFBQVMsTUFBTSxXQUFXLFdBQVUsTUFBUTtBQUNoRCw0QkFBUSxLQUFNO0FBQ2Q7QUFBQTtBQUFBO0FBR0Ysb0JBQUssV0FBWTtBQUNoQiw0QkFBVTtBQUFBO0FBQUE7QUFLWixrQkFBSyxPQUFRO0FBR1osb0JBQU8sT0FBTyxDQUFDLFdBQVcsTUFBUztBQUNsQztBQUFBO0FBSUQsb0JBQUssTUFBTztBQUNYLDRCQUFVLEtBQU07QUFBQTtBQUFBO0FBQUE7QUFPbkIsNEJBQWdCO0FBU2hCLGdCQUFLLFNBQVMsT0FBTSxjQUFlO0FBQ2xDLGtCQUFJO0FBQ0oscUJBQVUsVUFBVSxZQUFhLE1BQVU7QUFDMUMsd0JBQVMsV0FBVyxZQUFZLFNBQVM7QUFBQTtBQUcxQyxrQkFBSyxNQUFPO0FBR1gsb0JBQUssZUFBZSxHQUFJO0FBQ3ZCLHlCQUFRLE1BQU07QUFDYix3QkFBSyxDQUFHLFdBQVcsT0FBTyxXQUFZLE1BQVE7QUFDN0MsaUNBQVksTUFBTSxJQUFJLEtBQU07QUFBQTtBQUFBO0FBQUE7QUFNL0IsNkJBQWEsU0FBVTtBQUFBO0FBSXhCLG9CQUFLLE1BQU8sU0FBUztBQUdyQixrQkFBSyxhQUFhLENBQUMsUUFBUSxXQUFXLFNBQVMsS0FDNUMsZUFBZSxZQUFZLFNBQVcsR0FBSTtBQUU1Qyx3QkFBTyxXQUFZO0FBQUE7QUFBQTtBQUtyQixnQkFBSyxXQUFZO0FBQ2hCLHdCQUFVO0FBQ1YsaUNBQW1CO0FBQUE7QUFHcEIsbUJBQU87QUFBQTtBQUdULGlCQUFPLFFBQ04sYUFBYyxnQkFDZDtBQUFBO0FBR0Ysa0JBQVUsUUFBTyxVQUFVLFNBQVUsVUFBVSxPQUFnQztBQUM5RSxjQUFJLElBQ0gsY0FBYyxJQUNkLGtCQUFrQixJQUNsQixTQUFTLGNBQWUsV0FBVztBQUVwQyxjQUFLLENBQUMsUUFBUztBQUdkLGdCQUFLLENBQUMsT0FBUTtBQUNiLHNCQUFRLFNBQVU7QUFBQTtBQUVuQixpQkFBSSxNQUFNO0FBQ1YsbUJBQVEsTUFBTTtBQUNiLHVCQUFTLGtCQUFtQixNQUFPO0FBQ25DLGtCQUFLLE9BQVEsVUFBWTtBQUN4Qiw0QkFBWSxLQUFNO0FBQUEscUJBQ1o7QUFDTixnQ0FBZ0IsS0FBTTtBQUFBO0FBQUE7QUFLeEIscUJBQVMsY0FDUixVQUNBLHlCQUEwQixpQkFBaUI7QUFJNUMsbUJBQU8sV0FBVztBQUFBO0FBRW5CLGlCQUFPO0FBQUE7QUFZUixpQkFBUyxRQUFPLFNBQVMsU0FBVSxVQUFVLFNBQVMsU0FBUyxNQUFPO0FBQ3JFLGNBQUksSUFBRyxRQUFRLE9BQU8sTUFBTSxNQUMzQixXQUFXLE9BQU8sYUFBYSxjQUFjLFVBQzdDLFFBQVEsQ0FBQyxRQUFRLFNBQVksV0FBVyxTQUFTLFlBQVk7QUFFOUQsb0JBQVUsV0FBVztBQUlyQixjQUFLLE1BQU0sV0FBVyxHQUFJO0FBR3pCLHFCQUFTLE1BQU8sS0FBTSxNQUFPLEdBQUksTUFBTztBQUN4QyxnQkFBSyxPQUFPLFNBQVMsS0FBTyxTQUFRLE9BQVEsSUFBTSxTQUFTLFFBQzFELFFBQVEsYUFBYSxLQUFLLGtCQUFrQixLQUFLLFNBQVUsT0FBUSxHQUFJLE9BQVM7QUFFaEYsd0JBQVksTUFBSyxLQUFNLE1BQVEsTUFBTSxRQUFTLEdBQzVDLFFBQVMsV0FBVyxZQUFhLFlBQWEsSUFBTTtBQUN0RCxrQkFBSyxDQUFDLFNBQVU7QUFDZix1QkFBTztBQUFBLHlCQUdJLFVBQVc7QUFDdEIsMEJBQVUsUUFBUTtBQUFBO0FBR25CLHlCQUFXLFNBQVMsTUFBTyxPQUFPLFFBQVEsTUFBTTtBQUFBO0FBSWpELGlCQUFJLFVBQVcsZ0JBQWlCLEtBQU0sWUFBYSxJQUFJLE9BQU87QUFDOUQsbUJBQVEsTUFBTTtBQUNiLHNCQUFRLE9BQVE7QUFHaEIsa0JBQUssS0FBSyxTQUFZLE9BQU8sTUFBTSxPQUFXO0FBQzdDO0FBQUE7QUFFRCxrQkFBTyxPQUFPLEtBQUssS0FBTSxPQUFXO0FBR25DLG9CQUFPLE9BQU8sS0FDYixNQUFNLFFBQVMsR0FBSSxRQUFTLFdBQVcsWUFDdkMsU0FBUyxLQUFNLE9BQVEsR0FBSSxTQUFVLFlBQWEsUUFBUSxlQUN6RCxVQUNJO0FBR0wseUJBQU8sT0FBUSxJQUFHO0FBQ2xCLDZCQUFXLEtBQUssVUFBVSxXQUFZO0FBQ3RDLHNCQUFLLENBQUMsVUFBVztBQUNoQiwwQkFBSyxNQUFPLFNBQVM7QUFDckIsMkJBQU87QUFBQTtBQUdSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRSixVQUFFLGFBQVksUUFBUyxVQUFVLFFBQ2hDLE1BQ0EsU0FDQSxDQUFDLGdCQUNELFNBQ0EsQ0FBQyxXQUFXLFNBQVMsS0FBTSxhQUFjLFlBQWEsUUFBUSxlQUFnQjtBQUUvRSxpQkFBTztBQUFBO0FBTVIsaUJBQVEsYUFBYSxRQUFRLE1BQU8sSUFBSyxLQUFNLFdBQVksS0FBTSxRQUFTO0FBSTFFLGlCQUFRLG1CQUFtQixDQUFDLENBQUM7QUFHN0I7QUFJQSxpQkFBUSxlQUFlLE9BQVEsU0FBVSxJQUFLO0FBRzdDLGlCQUFPLEdBQUcsd0JBQXlCLFVBQVMsY0FBZSxlQUFpQjtBQUFBO0FBTTdFLFlBQUssQ0FBQyxPQUFRLFNBQVUsSUFBSztBQUM1QixhQUFHLFlBQVk7QUFDZixpQkFBTyxHQUFHLFdBQVcsYUFBYyxZQUFhO0FBQUEsWUFDM0M7QUFDTCxvQkFBVywwQkFBMEIsU0FBVSxNQUFNLE1BQU0sUUFBUTtBQUNsRSxnQkFBSyxDQUFDLFFBQVE7QUFDYixxQkFBTyxLQUFLLGFBQWMsTUFBTSxLQUFLLGtCQUFrQixTQUFTLElBQUk7QUFBQTtBQUFBO0FBQUE7QUFPdkUsWUFBSyxDQUFDLFNBQVEsY0FBYyxDQUFDLE9BQVEsU0FBVSxJQUFLO0FBQ25ELGFBQUcsWUFBWTtBQUNmLGFBQUcsV0FBVyxhQUFjLFNBQVM7QUFDckMsaUJBQU8sR0FBRyxXQUFXLGFBQWMsYUFBYztBQUFBLFlBQzVDO0FBQ0wsb0JBQVcsU0FBUyxTQUFVLE1BQU0sT0FBTyxRQUFRO0FBQ2xELGdCQUFLLENBQUMsVUFBUyxLQUFLLFNBQVMsa0JBQWtCLFNBQVU7QUFDeEQscUJBQU8sS0FBSztBQUFBO0FBQUE7QUFBQTtBQU9mLFlBQUssQ0FBQyxPQUFRLFNBQVUsSUFBSztBQUM1QixpQkFBTyxHQUFHLGFBQWMsZUFBZ0I7QUFBQSxZQUNuQztBQUNMLG9CQUFXLFVBQVUsU0FBVSxNQUFNLE1BQU0sUUFBUTtBQUNsRCxnQkFBSTtBQUNKLGdCQUFLLENBQUMsUUFBUTtBQUNiLHFCQUFPLEtBQU0sVUFBVyxPQUFPLEtBQUssZ0JBQ2pDLE9BQU0sS0FBSyxpQkFBa0IsVUFBWSxJQUFJLFlBQzlDLElBQUksUUFDSjtBQUFBO0FBQUE7QUFBQTtBQUtMLGVBQU87QUFBQSxRQUVGO0FBSUwsYUFBTyxPQUFPO0FBQ2QsYUFBTyxPQUFPLE9BQU87QUFHckIsYUFBTyxLQUFNLE9BQVEsT0FBTyxLQUFLO0FBQ2pDLGFBQU8sYUFBYSxPQUFPLFNBQVMsT0FBTztBQUMzQyxhQUFPLE9BQU8sT0FBTztBQUNyQixhQUFPLFdBQVcsT0FBTztBQUN6QixhQUFPLFdBQVcsT0FBTztBQUN6QixhQUFPLGlCQUFpQixPQUFPO0FBSy9CLFVBQUksTUFBTSxTQUFVLE1BQU0sTUFBSyxPQUFRO0FBQ3RDLFlBQUksVUFBVSxJQUNiLFdBQVcsVUFBVTtBQUV0QixlQUFVLFFBQU8sS0FBTSxVQUFXLEtBQUssYUFBYSxHQUFJO0FBQ3ZELGNBQUssS0FBSyxhQUFhLEdBQUk7QUFDMUIsZ0JBQUssWUFBWSxPQUFRLE1BQU8sR0FBSSxRQUFVO0FBQzdDO0FBQUE7QUFFRCxvQkFBUSxLQUFNO0FBQUE7QUFBQTtBQUdoQixlQUFPO0FBQUE7QUFJUixVQUFJLFdBQVcsU0FBVSxHQUFHLE1BQU87QUFDbEMsWUFBSSxVQUFVO0FBRWQsZUFBUSxHQUFHLElBQUksRUFBRSxhQUFjO0FBQzlCLGNBQUssRUFBRSxhQUFhLEtBQUssTUFBTSxNQUFPO0FBQ3JDLG9CQUFRLEtBQU07QUFBQTtBQUFBO0FBSWhCLGVBQU87QUFBQTtBQUlSLFVBQUksZ0JBQWdCLE9BQU8sS0FBSyxNQUFNO0FBSXRDLHdCQUFtQixNQUFNLE1BQU87QUFFL0IsZUFBTyxLQUFLLFlBQVksS0FBSyxTQUFTLGtCQUFrQixLQUFLO0FBQUE7QUFHOUQsVUFBSSxhQUFlO0FBS25CLHNCQUFpQixVQUFVLFdBQVcsS0FBTTtBQUMzQyxZQUFLLFdBQVksWUFBYztBQUM5QixpQkFBTyxPQUFPLEtBQU0sVUFBVSxTQUFVLE1BQU0sR0FBSTtBQUNqRCxtQkFBTyxDQUFDLENBQUMsVUFBVSxLQUFNLE1BQU0sR0FBRyxVQUFXO0FBQUE7QUFBQTtBQUsvQyxZQUFLLFVBQVUsVUFBVztBQUN6QixpQkFBTyxPQUFPLEtBQU0sVUFBVSxTQUFVLE1BQU87QUFDOUMsbUJBQVMsU0FBUyxjQUFnQjtBQUFBO0FBQUE7QUFLcEMsWUFBSyxPQUFPLGNBQWMsVUFBVztBQUNwQyxpQkFBTyxPQUFPLEtBQU0sVUFBVSxTQUFVLE1BQU87QUFDOUMsbUJBQVMsUUFBUSxLQUFNLFdBQVcsUUFBUyxPQUFTO0FBQUE7QUFBQTtBQUt0RCxlQUFPLE9BQU8sT0FBUSxXQUFXLFVBQVU7QUFBQTtBQUc1QyxhQUFPLFNBQVMsU0FBVSxNQUFNLE9BQU8sS0FBTTtBQUM1QyxZQUFJLE9BQU8sTUFBTztBQUVsQixZQUFLLEtBQU07QUFDVixpQkFBTyxVQUFVLE9BQU87QUFBQTtBQUd6QixZQUFLLE1BQU0sV0FBVyxLQUFLLEtBQUssYUFBYSxHQUFJO0FBQ2hELGlCQUFPLE9BQU8sS0FBSyxnQkFBaUIsTUFBTSxRQUFTLENBQUUsUUFBUztBQUFBO0FBRy9ELGVBQU8sT0FBTyxLQUFLLFFBQVMsTUFBTSxPQUFPLEtBQU0sT0FBTyxTQUFVLE9BQU87QUFDdEUsaUJBQU8sTUFBSyxhQUFhO0FBQUE7QUFBQTtBQUkzQixhQUFPLEdBQUcsT0FBUTtBQUFBLFFBQ2pCLE1BQU0sU0FBVSxVQUFXO0FBQzFCLGNBQUksR0FBRyxLQUNOLE1BQU0sS0FBSyxRQUNYLFFBQU87QUFFUixjQUFLLE9BQU8sYUFBYSxVQUFXO0FBQ25DLG1CQUFPLEtBQUssVUFBVyxPQUFRLFVBQVcsT0FBUSxXQUFXO0FBQzVELG1CQUFNLElBQUksR0FBRyxJQUFJLEtBQUssS0FBTTtBQUMzQixvQkFBSyxPQUFPLFNBQVUsTUFBTSxJQUFLLE9BQVM7QUFDekMseUJBQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1YLGdCQUFNLEtBQUssVUFBVztBQUV0QixlQUFNLElBQUksR0FBRyxJQUFJLEtBQUssS0FBTTtBQUMzQixtQkFBTyxLQUFNLFVBQVUsTUFBTSxJQUFLO0FBQUE7QUFHbkMsaUJBQU8sTUFBTSxJQUFJLE9BQU8sV0FBWSxPQUFRO0FBQUE7QUFBQSxRQUU3QyxRQUFRLFNBQVUsVUFBVztBQUM1QixpQkFBTyxLQUFLLFVBQVcsT0FBUSxNQUFNLFlBQVksSUFBSTtBQUFBO0FBQUEsUUFFdEQsS0FBSyxTQUFVLFVBQVc7QUFDekIsaUJBQU8sS0FBSyxVQUFXLE9BQVEsTUFBTSxZQUFZLElBQUk7QUFBQTtBQUFBLFFBRXRELElBQUksU0FBVSxVQUFXO0FBQ3hCLGlCQUFPLENBQUMsQ0FBQyxPQUNSLE1BSUEsT0FBTyxhQUFhLFlBQVksY0FBYyxLQUFNLFlBQ25ELE9BQVEsWUFDUixZQUFZLElBQ2IsT0FDQztBQUFBO0FBQUE7QUFTSixVQUFJLFlBTUgsYUFBYSx1Q0FFYixPQUFPLE9BQU8sR0FBRyxPQUFPLFNBQVUsVUFBVSxTQUFTLE1BQU87QUFDM0QsWUFBSSxPQUFPO0FBR1gsWUFBSyxDQUFDLFVBQVc7QUFDaEIsaUJBQU87QUFBQTtBQUtSLGVBQU8sUUFBUTtBQUdmLFlBQUssT0FBTyxhQUFhLFVBQVc7QUFDbkMsY0FBSyxTQUFVLE9BQVEsT0FDdEIsU0FBVSxTQUFTLFNBQVMsT0FBUSxPQUNwQyxTQUFTLFVBQVUsR0FBSTtBQUd2QixvQkFBUSxDQUFFLE1BQU0sVUFBVTtBQUFBLGlCQUVwQjtBQUNOLG9CQUFRLFdBQVcsS0FBTTtBQUFBO0FBSTFCLGNBQUssU0FBVyxPQUFPLE1BQU8sQ0FBQyxVQUFZO0FBRzFDLGdCQUFLLE1BQU8sSUFBTTtBQUNqQix3QkFBVSxtQkFBbUIsU0FBUyxRQUFTLEtBQU07QUFJckQscUJBQU8sTUFBTyxNQUFNLE9BQU8sVUFDMUIsTUFBTyxJQUNQLFdBQVcsUUFBUSxXQUFXLFFBQVEsaUJBQWlCLFVBQVUsV0FDakU7QUFJRCxrQkFBSyxXQUFXLEtBQU0sTUFBTyxPQUFTLE9BQU8sY0FBZSxVQUFZO0FBQ3ZFLHFCQUFNLFNBQVMsU0FBVTtBQUd4QixzQkFBSyxXQUFZLEtBQU0sU0FBWTtBQUNsQyx5QkFBTSxPQUFTLFFBQVM7QUFBQSx5QkFHbEI7QUFDTix5QkFBSyxLQUFNLE9BQU8sUUFBUztBQUFBO0FBQUE7QUFBQTtBQUs5QixxQkFBTztBQUFBLG1CQUdEO0FBQ04scUJBQU8sVUFBUyxlQUFnQixNQUFPO0FBRXZDLGtCQUFLLE1BQU87QUFHWCxxQkFBTSxLQUFNO0FBQ1oscUJBQUssU0FBUztBQUFBO0FBRWYscUJBQU87QUFBQTtBQUFBLHFCQUlHLENBQUMsV0FBVyxRQUFRLFFBQVM7QUFDeEMsbUJBQVMsWUFBVyxNQUFPLEtBQU07QUFBQSxpQkFJM0I7QUFDTixtQkFBTyxLQUFLLFlBQWEsU0FBVSxLQUFNO0FBQUE7QUFBQSxtQkFJL0IsU0FBUyxVQUFXO0FBQy9CLGVBQU0sS0FBTTtBQUNaLGVBQUssU0FBUztBQUNkLGlCQUFPO0FBQUEsbUJBSUksV0FBWSxXQUFhO0FBQ3BDLGlCQUFPLEtBQUssVUFBVSxTQUNyQixLQUFLLE1BQU8sWUFHWixTQUFVO0FBQUE7QUFHWixlQUFPLE9BQU8sVUFBVyxVQUFVO0FBQUE7QUFJckMsV0FBSyxZQUFZLE9BQU87QUFHeEIsbUJBQWEsT0FBUTtBQUdyQixVQUFJLGVBQWUsa0NBR2xCLG1CQUFtQjtBQUFBLFFBQ2xCLFVBQVU7QUFBQSxRQUNWLFVBQVU7QUFBQSxRQUNWLE1BQU07QUFBQSxRQUNOLE1BQU07QUFBQTtBQUdSLGFBQU8sR0FBRyxPQUFRO0FBQUEsUUFDakIsS0FBSyxTQUFVLFFBQVM7QUFDdkIsY0FBSSxVQUFVLE9BQVEsUUFBUSxPQUM3QixJQUFJLFFBQVE7QUFFYixpQkFBTyxLQUFLLE9BQVEsV0FBVztBQUM5QixnQkFBSSxJQUFJO0FBQ1IsbUJBQVEsSUFBSSxHQUFHLEtBQU07QUFDcEIsa0JBQUssT0FBTyxTQUFVLE1BQU0sUUFBUyxLQUFRO0FBQzVDLHVCQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQU1YLFNBQVMsU0FBVSxXQUFXLFNBQVU7QUFDdkMsY0FBSSxLQUNILElBQUksR0FDSixJQUFJLEtBQUssUUFDVCxVQUFVLElBQ1YsVUFBVSxPQUFPLGNBQWMsWUFBWSxPQUFRO0FBR3BELGNBQUssQ0FBQyxjQUFjLEtBQU0sWUFBYztBQUN2QyxtQkFBUSxJQUFJLEdBQUcsS0FBTTtBQUNwQixtQkFBTSxNQUFNLEtBQU0sSUFBSyxPQUFPLFFBQVEsU0FBUyxNQUFNLElBQUksWUFBYTtBQUdyRSxvQkFBSyxJQUFJLFdBQVcsTUFBUSxXQUMzQixRQUFRLE1BQU8sT0FBUSxLQUd2QixJQUFJLGFBQWEsS0FDaEIsT0FBTyxLQUFLLGdCQUFpQixLQUFLLGFBQWdCO0FBRW5ELDBCQUFRLEtBQU07QUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUosaUJBQU8sS0FBSyxVQUFXLFFBQVEsU0FBUyxJQUFJLE9BQU8sV0FBWSxXQUFZO0FBQUE7QUFBQSxRQUk1RSxPQUFPLFNBQVUsTUFBTztBQUd2QixjQUFLLENBQUMsTUFBTztBQUNaLG1CQUFTLEtBQU0sTUFBTyxLQUFNLEdBQUksYUFBZSxLQUFLLFFBQVEsVUFBVSxTQUFTO0FBQUE7QUFJaEYsY0FBSyxPQUFPLFNBQVMsVUFBVztBQUMvQixtQkFBTyxRQUFRLEtBQU0sT0FBUSxPQUFRLEtBQU07QUFBQTtBQUk1QyxpQkFBTyxRQUFRLEtBQU0sTUFHcEIsS0FBSyxTQUFTLEtBQU0sS0FBTTtBQUFBO0FBQUEsUUFJNUIsS0FBSyxTQUFVLFVBQVUsU0FBVTtBQUNsQyxpQkFBTyxLQUFLLFVBQ1gsT0FBTyxXQUNOLE9BQU8sTUFBTyxLQUFLLE9BQU8sT0FBUSxVQUFVO0FBQUE7QUFBQSxRQUsvQyxTQUFTLFNBQVUsVUFBVztBQUM3QixpQkFBTyxLQUFLLElBQUssWUFBWSxPQUM1QixLQUFLLGFBQWEsS0FBSyxXQUFXLE9BQVE7QUFBQTtBQUFBO0FBSzdDLHVCQUFrQixLQUFLLE1BQU07QUFDNUIsZUFBVSxPQUFNLElBQUssVUFBVyxJQUFJLGFBQWEsR0FBSTtBQUFBO0FBQ3JELGVBQU87QUFBQTtBQUdSLGFBQU8sS0FBTTtBQUFBLFFBQ1osUUFBUSxTQUFVLE1BQU87QUFDeEIsY0FBSSxTQUFTLEtBQUs7QUFDbEIsaUJBQU8sVUFBVSxPQUFPLGFBQWEsS0FBSyxTQUFTO0FBQUE7QUFBQSxRQUVwRCxTQUFTLFNBQVUsTUFBTztBQUN6QixpQkFBTyxJQUFLLE1BQU07QUFBQTtBQUFBLFFBRW5CLGNBQWMsU0FBVSxNQUFNLElBQUksT0FBUTtBQUN6QyxpQkFBTyxJQUFLLE1BQU0sY0FBYztBQUFBO0FBQUEsUUFFakMsTUFBTSxTQUFVLE1BQU87QUFDdEIsaUJBQU8sUUFBUyxNQUFNO0FBQUE7QUFBQSxRQUV2QixNQUFNLFNBQVUsTUFBTztBQUN0QixpQkFBTyxRQUFTLE1BQU07QUFBQTtBQUFBLFFBRXZCLFNBQVMsU0FBVSxNQUFPO0FBQ3pCLGlCQUFPLElBQUssTUFBTTtBQUFBO0FBQUEsUUFFbkIsU0FBUyxTQUFVLE1BQU87QUFDekIsaUJBQU8sSUFBSyxNQUFNO0FBQUE7QUFBQSxRQUVuQixXQUFXLFNBQVUsTUFBTSxJQUFJLE9BQVE7QUFDdEMsaUJBQU8sSUFBSyxNQUFNLGVBQWU7QUFBQTtBQUFBLFFBRWxDLFdBQVcsU0FBVSxNQUFNLElBQUksT0FBUTtBQUN0QyxpQkFBTyxJQUFLLE1BQU0sbUJBQW1CO0FBQUE7QUFBQSxRQUV0QyxVQUFVLFNBQVUsTUFBTztBQUMxQixpQkFBTyxTQUFZLE1BQUssY0FBYyxJQUFLLFlBQVk7QUFBQTtBQUFBLFFBRXhELFVBQVUsU0FBVSxNQUFPO0FBQzFCLGlCQUFPLFNBQVUsS0FBSztBQUFBO0FBQUEsUUFFdkIsVUFBVSxTQUFVLE1BQU87QUFDMUIsY0FBSyxLQUFLLG1CQUFtQixRQUs1QixTQUFVLEtBQUssa0JBQW9CO0FBRW5DLG1CQUFPLEtBQUs7QUFBQTtBQU1iLGNBQUssU0FBVSxNQUFNLGFBQWU7QUFDbkMsbUJBQU8sS0FBSyxXQUFXO0FBQUE7QUFHeEIsaUJBQU8sT0FBTyxNQUFPLElBQUksS0FBSztBQUFBO0FBQUEsU0FFN0IsU0FBVSxNQUFNLElBQUs7QUFDdkIsZUFBTyxHQUFJLFFBQVMsU0FBVSxPQUFPLFVBQVc7QUFDL0MsY0FBSSxVQUFVLE9BQU8sSUFBSyxNQUFNLElBQUk7QUFFcEMsY0FBSyxLQUFLLE1BQU8sUUFBUyxTQUFVO0FBQ25DLHVCQUFXO0FBQUE7QUFHWixjQUFLLFlBQVksT0FBTyxhQUFhLFVBQVc7QUFDL0Msc0JBQVUsT0FBTyxPQUFRLFVBQVU7QUFBQTtBQUdwQyxjQUFLLEtBQUssU0FBUyxHQUFJO0FBR3RCLGdCQUFLLENBQUMsaUJBQWtCLE9BQVM7QUFDaEMscUJBQU8sV0FBWTtBQUFBO0FBSXBCLGdCQUFLLGFBQWEsS0FBTSxPQUFTO0FBQ2hDLHNCQUFRO0FBQUE7QUFBQTtBQUlWLGlCQUFPLEtBQUssVUFBVztBQUFBO0FBQUE7QUFHekIsVUFBSSxnQkFBa0I7QUFLdEIsNkJBQXdCLFNBQVU7QUFDakMsWUFBSSxTQUFTO0FBQ2IsZUFBTyxLQUFNLFFBQVEsTUFBTyxrQkFBbUIsSUFBSSxTQUFVLEdBQUcsTUFBTztBQUN0RSxpQkFBUSxRQUFTO0FBQUE7QUFFbEIsZUFBTztBQUFBO0FBeUJSLGFBQU8sWUFBWSxTQUFVLFNBQVU7QUFJdEMsa0JBQVUsT0FBTyxZQUFZLFdBQzVCLGNBQWUsV0FDZixPQUFPLE9BQVEsSUFBSTtBQUVwQixZQUNDLFFBR0EsUUFHQSxPQUdBLFFBR0EsT0FBTyxJQUdQLFFBQVEsSUFHUixjQUFjLElBR2QsT0FBTyxXQUFXO0FBR2pCLG1CQUFTLFVBQVUsUUFBUTtBQUkzQixrQkFBUSxTQUFTO0FBQ2pCLGlCQUFRLE1BQU0sUUFBUSxjQUFjLElBQUs7QUFDeEMscUJBQVMsTUFBTTtBQUNmLG1CQUFRLEVBQUUsY0FBYyxLQUFLLFFBQVM7QUFHckMsa0JBQUssS0FBTSxhQUFjLE1BQU8sT0FBUSxJQUFLLE9BQVEsUUFBVSxTQUM5RCxRQUFRLGFBQWM7QUFHdEIsOEJBQWMsS0FBSztBQUNuQix5QkFBUztBQUFBO0FBQUE7QUFBQTtBQU1aLGNBQUssQ0FBQyxRQUFRLFFBQVM7QUFDdEIscUJBQVM7QUFBQTtBQUdWLG1CQUFTO0FBR1QsY0FBSyxRQUFTO0FBR2IsZ0JBQUssUUFBUztBQUNiLHFCQUFPO0FBQUEsbUJBR0Q7QUFDTixxQkFBTztBQUFBO0FBQUE7QUFBQSxXQU1WLFFBQU87QUFBQSxVQUdOLEtBQUssV0FBVztBQUNmLGdCQUFLLE1BQU87QUFHWCxrQkFBSyxVQUFVLENBQUMsUUFBUztBQUN4Qiw4QkFBYyxLQUFLLFNBQVM7QUFDNUIsc0JBQU0sS0FBTTtBQUFBO0FBR2IsY0FBRSxjQUFjLE1BQU87QUFDdEIsdUJBQU8sS0FBTSxNQUFNLFNBQVUsR0FBRyxLQUFNO0FBQ3JDLHNCQUFLLFdBQVksTUFBUTtBQUN4Qix3QkFBSyxDQUFDLFFBQVEsVUFBVSxDQUFDLE1BQUssSUFBSyxNQUFRO0FBQzFDLDJCQUFLLEtBQU07QUFBQTtBQUFBLDZCQUVELE9BQU8sSUFBSSxVQUFVLE9BQVEsU0FBVSxVQUFXO0FBRzdELHdCQUFLO0FBQUE7QUFBQTtBQUFBLGlCQUdIO0FBRUwsa0JBQUssVUFBVSxDQUFDLFFBQVM7QUFDeEI7QUFBQTtBQUFBO0FBR0YsbUJBQU87QUFBQTtBQUFBLFVBSVIsUUFBUSxXQUFXO0FBQ2xCLG1CQUFPLEtBQU0sV0FBVyxTQUFVLEdBQUcsS0FBTTtBQUMxQyxrQkFBSTtBQUNKLHFCQUFVLFNBQVEsT0FBTyxRQUFTLEtBQUssTUFBTSxVQUFZLElBQUs7QUFDN0QscUJBQUssT0FBUSxPQUFPO0FBR3BCLG9CQUFLLFNBQVMsYUFBYztBQUMzQjtBQUFBO0FBQUE7QUFBQTtBQUlILG1CQUFPO0FBQUE7QUFBQSxVQUtSLEtBQUssU0FBVSxJQUFLO0FBQ25CLG1CQUFPLEtBQ04sT0FBTyxRQUFTLElBQUksUUFBUyxLQUM3QixLQUFLLFNBQVM7QUFBQTtBQUFBLFVBSWhCLE9BQU8sV0FBVztBQUNqQixnQkFBSyxNQUFPO0FBQ1gscUJBQU87QUFBQTtBQUVSLG1CQUFPO0FBQUE7QUFBQSxVQU1SLFNBQVMsV0FBVztBQUNuQixxQkFBUyxRQUFRO0FBQ2pCLG1CQUFPLFNBQVM7QUFDaEIsbUJBQU87QUFBQTtBQUFBLFVBRVIsVUFBVSxXQUFXO0FBQ3BCLG1CQUFPLENBQUM7QUFBQTtBQUFBLFVBTVQsTUFBTSxXQUFXO0FBQ2hCLHFCQUFTLFFBQVE7QUFDakIsZ0JBQUssQ0FBQyxVQUFVLENBQUMsUUFBUztBQUN6QixxQkFBTyxTQUFTO0FBQUE7QUFFakIsbUJBQU87QUFBQTtBQUFBLFVBRVIsUUFBUSxXQUFXO0FBQ2xCLG1CQUFPLENBQUMsQ0FBQztBQUFBO0FBQUEsVUFJVixVQUFVLFNBQVUsU0FBUyxNQUFPO0FBQ25DLGdCQUFLLENBQUMsUUFBUztBQUNkLHFCQUFPLFFBQVE7QUFDZixxQkFBTyxDQUFFLFNBQVMsS0FBSyxRQUFRLEtBQUssVUFBVTtBQUM5QyxvQkFBTSxLQUFNO0FBQ1osa0JBQUssQ0FBQyxRQUFTO0FBQ2Q7QUFBQTtBQUFBO0FBR0YsbUJBQU87QUFBQTtBQUFBLFVBSVIsTUFBTSxXQUFXO0FBQ2hCLGtCQUFLLFNBQVUsTUFBTTtBQUNyQixtQkFBTztBQUFBO0FBQUEsVUFJUixPQUFPLFdBQVc7QUFDakIsbUJBQU8sQ0FBQyxDQUFDO0FBQUE7QUFBQTtBQUlaLGVBQU87QUFBQTtBQUlSLHdCQUFtQixHQUFJO0FBQ3RCLGVBQU87QUFBQTtBQUVSLHVCQUFrQixJQUFLO0FBQ3RCLGNBQU07QUFBQTtBQUdQLDBCQUFxQixPQUFPLFNBQVMsUUFBUSxTQUFVO0FBQ3RELFlBQUk7QUFFSixZQUFJO0FBR0gsY0FBSyxTQUFTLFdBQWMsU0FBUyxNQUFNLFVBQWM7QUFDeEQsbUJBQU8sS0FBTSxPQUFRLEtBQU0sU0FBVSxLQUFNO0FBQUEscUJBR2hDLFNBQVMsV0FBYyxTQUFTLE1BQU0sT0FBVztBQUM1RCxtQkFBTyxLQUFNLE9BQU8sU0FBUztBQUFBLGlCQUd2QjtBQUtOLG9CQUFRLE1BQU8sUUFBVyxDQUFFLE9BQVEsTUFBTztBQUFBO0FBQUEsaUJBTW5DLFFBQVI7QUFJRCxpQkFBTyxNQUFPLFFBQVcsQ0FBRTtBQUFBO0FBQUE7QUFJN0IsYUFBTyxPQUFRO0FBQUEsUUFFZCxVQUFVLFNBQVUsTUFBTztBQUMxQixjQUFJLFNBQVM7QUFBQSxZQUlYO0FBQUEsY0FBRTtBQUFBLGNBQVU7QUFBQSxjQUFZLE9BQU8sVUFBVztBQUFBLGNBQ3pDLE9BQU8sVUFBVztBQUFBLGNBQVk7QUFBQTtBQUFBLFlBQy9CO0FBQUEsY0FBRTtBQUFBLGNBQVc7QUFBQSxjQUFRLE9BQU8sVUFBVztBQUFBLGNBQ3RDLE9BQU8sVUFBVztBQUFBLGNBQWlCO0FBQUEsY0FBRztBQUFBO0FBQUEsWUFDdkM7QUFBQSxjQUFFO0FBQUEsY0FBVTtBQUFBLGNBQVEsT0FBTyxVQUFXO0FBQUEsY0FDckMsT0FBTyxVQUFXO0FBQUEsY0FBaUI7QUFBQSxjQUFHO0FBQUE7QUFBQSxhQUV4QyxRQUFRLFdBQ1IsVUFBVTtBQUFBLFlBQ1QsT0FBTyxXQUFXO0FBQ2pCLHFCQUFPO0FBQUE7QUFBQSxZQUVSLFFBQVEsV0FBVztBQUNsQix1QkFBUyxLQUFNLFdBQVksS0FBTTtBQUNqQyxxQkFBTztBQUFBO0FBQUEsWUFFUixTQUFTLFNBQVUsSUFBSztBQUN2QixxQkFBTyxRQUFRLEtBQU0sTUFBTTtBQUFBO0FBQUEsWUFJNUIsTUFBTSxXQUE2QztBQUNsRCxrQkFBSSxNQUFNO0FBRVYscUJBQU8sT0FBTyxTQUFVLFNBQVUsVUFBVztBQUM1Qyx1QkFBTyxLQUFNLFFBQVEsU0FBVSxJQUFJLE9BQVE7QUFHMUMsc0JBQUksS0FBSyxXQUFZLElBQUssTUFBTyxRQUFXLElBQUssTUFBTztBQUt4RCwyQkFBVSxNQUFPLElBQU8sV0FBVztBQUNsQyx3QkFBSSxXQUFXLE1BQU0sR0FBRyxNQUFPLE1BQU07QUFDckMsd0JBQUssWUFBWSxXQUFZLFNBQVMsVUFBWTtBQUNqRCwrQkFBUyxVQUNQLFNBQVUsU0FBUyxRQUNuQixLQUFNLFNBQVMsU0FDZixLQUFNLFNBQVM7QUFBQSwyQkFDWDtBQUNOLCtCQUFVLE1BQU8sS0FBTSxRQUN0QixNQUNBLEtBQUssQ0FBRSxZQUFhO0FBQUE7QUFBQTtBQUFBO0FBS3hCLHNCQUFNO0FBQUEsaUJBQ0g7QUFBQTtBQUFBLFlBRUwsTUFBTSxTQUFVLGFBQWEsWUFBWSxZQUFhO0FBQ3JELGtCQUFJLFdBQVc7QUFDZiwrQkFBa0IsT0FBTyxXQUFVLFNBQVMsU0FBVTtBQUNyRCx1QkFBTyxXQUFXO0FBQ2pCLHNCQUFJLE9BQU8sTUFDVixPQUFPLFdBQ1AsYUFBYSxXQUFXO0FBQ3ZCLHdCQUFJLFVBQVU7QUFLZCx3QkFBSyxRQUFRLFVBQVc7QUFDdkI7QUFBQTtBQUdELCtCQUFXLFFBQVEsTUFBTyxNQUFNO0FBSWhDLHdCQUFLLGFBQWEsVUFBUyxXQUFZO0FBQ3RDLDRCQUFNLElBQUksVUFBVztBQUFBO0FBT3RCLDJCQUFPLFlBS0osUUFBTyxhQUFhLFlBQ3JCLE9BQU8sYUFBYSxlQUNyQixTQUFTO0FBR1Ysd0JBQUssV0FBWSxPQUFTO0FBR3pCLDBCQUFLLFNBQVU7QUFDZCw2QkFBSyxLQUNKLFVBQ0EsUUFBUyxVQUFVLFdBQVUsVUFBVSxVQUN2QyxRQUFTLFVBQVUsV0FBVSxTQUFTO0FBQUEsNkJBSWpDO0FBR047QUFFQSw2QkFBSyxLQUNKLFVBQ0EsUUFBUyxVQUFVLFdBQVUsVUFBVSxVQUN2QyxRQUFTLFVBQVUsV0FBVSxTQUFTLFVBQ3RDLFFBQVMsVUFBVSxXQUFVLFVBQzVCLFVBQVM7QUFBQTtBQUFBLDJCQUtOO0FBSU4sMEJBQUssWUFBWSxVQUFXO0FBQzNCLCtCQUFPO0FBQ1AsK0JBQU8sQ0FBRTtBQUFBO0FBS1Ysc0JBQUUsWUFBVyxVQUFTLGFBQWUsTUFBTTtBQUFBO0FBQUEscUJBSzdDLFdBQVUsVUFDVCxhQUNBLFdBQVc7QUFDVix3QkFBSTtBQUNIO0FBQUEsNkJBQ1MsR0FBUjtBQUVELDBCQUFLLE9BQU8sU0FBUyxlQUFnQjtBQUNwQywrQkFBTyxTQUFTLGNBQWUsR0FDOUIsU0FBUTtBQUFBO0FBTVYsMEJBQUssUUFBUSxLQUFLLFVBQVc7QUFJNUIsNEJBQUssWUFBWSxTQUFVO0FBQzFCLGlDQUFPO0FBQ1AsaUNBQU8sQ0FBRTtBQUFBO0FBR1Ysa0NBQVMsV0FBWSxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBU2hDLHNCQUFLLE9BQVE7QUFDWjtBQUFBLHlCQUNNO0FBSU4sd0JBQUssT0FBTyxTQUFTLGNBQWU7QUFDbkMsK0JBQVEsYUFBYSxPQUFPLFNBQVM7QUFBQTtBQUV0Qyw0QkFBTyxXQUFZO0FBQUE7QUFBQTtBQUFBO0FBS3RCLHFCQUFPLE9BQU8sU0FBVSxTQUFVLFVBQVc7QUFHNUMsdUJBQVEsR0FBSyxHQUFJLElBQ2hCLFFBQ0MsR0FDQSxVQUNBLFdBQVksY0FDWCxhQUNBLFVBQ0QsU0FBUztBQUtYLHVCQUFRLEdBQUssR0FBSSxJQUNoQixRQUNDLEdBQ0EsVUFDQSxXQUFZLGVBQ1gsY0FDQTtBQUtILHVCQUFRLEdBQUssR0FBSSxJQUNoQixRQUNDLEdBQ0EsVUFDQSxXQUFZLGNBQ1gsYUFDQTtBQUFBLGlCQUdBO0FBQUE7QUFBQSxZQUtMLFNBQVMsU0FBVSxLQUFNO0FBQ3hCLHFCQUFPLE9BQU8sT0FBTyxPQUFPLE9BQVEsS0FBSyxXQUFZO0FBQUE7QUFBQSxhQUd2RCxXQUFXO0FBR1osaUJBQU8sS0FBTSxRQUFRLFNBQVUsR0FBRyxPQUFRO0FBQ3pDLGdCQUFJLE9BQU8sTUFBTyxJQUNqQixjQUFjLE1BQU87QUFLdEIsb0JBQVMsTUFBTyxNQUFRLEtBQUs7QUFHN0IsZ0JBQUssYUFBYztBQUNsQixtQkFBSyxJQUNKLFdBQVc7QUFJVix3QkFBUTtBQUFBLGlCQUtULE9BQVEsSUFBSSxHQUFLLEdBQUksU0FJckIsT0FBUSxJQUFJLEdBQUssR0FBSSxTQUdyQixPQUFRLEdBQUssR0FBSSxNQUdqQixPQUFRLEdBQUssR0FBSTtBQUFBO0FBT25CLGlCQUFLLElBQUssTUFBTyxHQUFJO0FBS3JCLHFCQUFVLE1BQU8sTUFBUSxXQUFXO0FBQ25DLHVCQUFVLE1BQU8sS0FBTSxRQUFVLFNBQVMsV0FBVyxTQUFZLE1BQU07QUFDdkUscUJBQU87QUFBQTtBQU1SLHFCQUFVLE1BQU8sS0FBTSxVQUFXLEtBQUs7QUFBQTtBQUl4QyxrQkFBUSxRQUFTO0FBR2pCLGNBQUssTUFBTztBQUNYLGlCQUFLLEtBQU0sVUFBVTtBQUFBO0FBSXRCLGlCQUFPO0FBQUE7QUFBQSxRQUlSLE1BQU0sU0FBVSxhQUFjO0FBQzdCLGNBR0MsWUFBWSxVQUFVLFFBR3RCLElBQUksV0FHSixrQkFBa0IsTUFBTyxJQUN6QixnQkFBZ0IsTUFBTSxLQUFNLFlBRzVCLFVBQVUsT0FBTyxZQUdqQixhQUFhLFNBQVUsSUFBSTtBQUMxQixtQkFBTyxTQUFVLE9BQVE7QUFDeEIsOEJBQWlCLE1BQU07QUFDdkIsNEJBQWUsTUFBTSxVQUFVLFNBQVMsSUFBSSxNQUFNLEtBQU0sYUFBYztBQUN0RSxrQkFBSyxDQUFHLEVBQUUsV0FBYztBQUN2Qix3QkFBUSxZQUFhLGlCQUFpQjtBQUFBO0FBQUE7QUFBQTtBQU0xQyxjQUFLLGFBQWEsR0FBSTtBQUNyQix1QkFBWSxhQUFhLFFBQVEsS0FBTSxXQUFZLElBQU0sU0FBUyxRQUFRLFFBQ3pFLENBQUM7QUFHRixnQkFBSyxRQUFRLFlBQVksYUFDeEIsV0FBWSxjQUFlLE1BQU8sY0FBZSxHQUFJLE9BQVM7QUFFOUQscUJBQU8sUUFBUTtBQUFBO0FBQUE7QUFLakIsaUJBQVEsS0FBTTtBQUNiLHVCQUFZLGNBQWUsSUFBSyxXQUFZLElBQUssUUFBUTtBQUFBO0FBRzFELGlCQUFPLFFBQVE7QUFBQTtBQUFBO0FBT2pCLFVBQUksY0FBYztBQUVsQixhQUFPLFNBQVMsZ0JBQWdCLFNBQVUsT0FBTyxPQUFRO0FBSXhELFlBQUssUUFBTyxXQUFXLFFBQU8sUUFBUSxRQUFRLFNBQVMsWUFBWSxLQUFNLE1BQU0sT0FBUztBQUN2RixrQkFBTyxRQUFRLEtBQU0sZ0NBQWdDLE1BQU0sU0FBUyxNQUFNLE9BQU87QUFBQTtBQUFBO0FBT25GLGFBQU8saUJBQWlCLFNBQVUsT0FBUTtBQUN6QyxnQkFBTyxXQUFZLFdBQVc7QUFDN0IsZ0JBQU07QUFBQTtBQUFBO0FBUVIsVUFBSSxZQUFZLE9BQU87QUFFdkIsYUFBTyxHQUFHLFFBQVEsU0FBVSxJQUFLO0FBRWhDLGtCQUNFLEtBQU0sSUFLTixNQUFPLFNBQVUsT0FBUTtBQUN6QixpQkFBTyxlQUFnQjtBQUFBO0FBR3pCLGVBQU87QUFBQTtBQUdSLGFBQU8sT0FBUTtBQUFBLFFBR2QsU0FBUztBQUFBLFFBSVQsV0FBVztBQUFBLFFBR1gsT0FBTyxTQUFVLE1BQU87QUFHdkIsY0FBSyxTQUFTLE9BQU8sRUFBRSxPQUFPLFlBQVksT0FBTyxTQUFVO0FBQzFEO0FBQUE7QUFJRCxpQkFBTyxVQUFVO0FBR2pCLGNBQUssU0FBUyxRQUFRLEVBQUUsT0FBTyxZQUFZLEdBQUk7QUFDOUM7QUFBQTtBQUlELG9CQUFVLFlBQWEsV0FBVSxDQUFFO0FBQUE7QUFBQTtBQUlyQyxhQUFPLE1BQU0sT0FBTyxVQUFVO0FBRzlCLDJCQUFxQjtBQUNwQixrQkFBUyxvQkFBcUIsb0JBQW9CO0FBQ2xELGdCQUFPLG9CQUFxQixRQUFRO0FBQ3BDLGVBQU87QUFBQTtBQU9SLFVBQUssVUFBUyxlQUFlLGNBQzFCLFVBQVMsZUFBZSxhQUFhLENBQUMsVUFBUyxnQkFBZ0IsVUFBYTtBQUc5RSxnQkFBTyxXQUFZLE9BQU87QUFBQSxhQUVwQjtBQUdOLGtCQUFTLGlCQUFrQixvQkFBb0I7QUFHL0MsZ0JBQU8saUJBQWtCLFFBQVE7QUFBQTtBQVFsQyxVQUFJLFNBQVMsU0FBVSxPQUFPLElBQUksS0FBSyxPQUFPLFdBQVcsVUFBVSxLQUFNO0FBQ3hFLFlBQUksSUFBSSxHQUNQLE1BQU0sTUFBTSxRQUNaLE9BQU8sT0FBTztBQUdmLFlBQUssT0FBUSxTQUFVLFVBQVc7QUFDakMsc0JBQVk7QUFDWixlQUFNLEtBQUssS0FBTTtBQUNoQixtQkFBUSxPQUFPLElBQUksR0FBRyxJQUFLLElBQUssTUFBTSxVQUFVO0FBQUE7QUFBQSxtQkFJdEMsVUFBVSxRQUFZO0FBQ2pDLHNCQUFZO0FBRVosY0FBSyxDQUFDLFdBQVksUUFBVTtBQUMzQixrQkFBTTtBQUFBO0FBR1AsY0FBSyxNQUFPO0FBR1gsZ0JBQUssS0FBTTtBQUNWLGlCQUFHLEtBQU0sT0FBTztBQUNoQixtQkFBSztBQUFBLG1CQUdDO0FBQ04scUJBQU87QUFDUCxtQkFBSyxTQUFVLE1BQU0sTUFBTSxRQUFRO0FBQ2xDLHVCQUFPLEtBQUssS0FBTSxPQUFRLE9BQVE7QUFBQTtBQUFBO0FBQUE7QUFLckMsY0FBSyxJQUFLO0FBQ1QsbUJBQVEsSUFBSSxLQUFLLEtBQU07QUFDdEIsaUJBQ0MsTUFBTyxJQUFLLEtBQUssTUFDaEIsUUFDQSxNQUFNLEtBQU0sTUFBTyxJQUFLLEdBQUcsR0FBSSxNQUFPLElBQUs7QUFBQTtBQUFBO0FBQUE7QUFNaEQsWUFBSyxXQUFZO0FBQ2hCLGlCQUFPO0FBQUE7QUFJUixZQUFLLE1BQU87QUFDWCxpQkFBTyxHQUFHLEtBQU07QUFBQTtBQUdqQixlQUFPLE1BQU0sR0FBSSxNQUFPLElBQUssT0FBUTtBQUFBO0FBS3RDLFVBQUksWUFBWSxTQUNmLGFBQWE7QUFHZCwwQkFBcUIsTUFBTSxRQUFTO0FBQ25DLGVBQU8sT0FBTztBQUFBO0FBTWYseUJBQW9CLFFBQVM7QUFDNUIsZUFBTyxPQUFPLFFBQVMsV0FBVyxPQUFRLFFBQVMsWUFBWTtBQUFBO0FBRWhFLFVBQUksYUFBYSxTQUFVLE9BQVE7QUFRbEMsZUFBTyxNQUFNLGFBQWEsS0FBSyxNQUFNLGFBQWEsS0FBSyxDQUFHLENBQUMsTUFBTTtBQUFBO0FBTWxFLHNCQUFnQjtBQUNmLGFBQUssVUFBVSxPQUFPLFVBQVUsS0FBSztBQUFBO0FBR3RDLFdBQUssTUFBTTtBQUVYLFdBQUssWUFBWTtBQUFBLFFBRWhCLE9BQU8sU0FBVSxPQUFRO0FBR3hCLGNBQUksUUFBUSxNQUFPLEtBQUs7QUFHeEIsY0FBSyxDQUFDLE9BQVE7QUFDYixvQkFBUTtBQUtSLGdCQUFLLFdBQVksUUFBVTtBQUkxQixrQkFBSyxNQUFNLFVBQVc7QUFDckIsc0JBQU8sS0FBSyxXQUFZO0FBQUEscUJBS2xCO0FBQ04sdUJBQU8sZUFBZ0IsT0FBTyxLQUFLLFNBQVM7QUFBQSxrQkFDM0M7QUFBQSxrQkFDQSxjQUFjO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNbEIsaUJBQU87QUFBQTtBQUFBLFFBRVIsS0FBSyxTQUFVLE9BQU8sTUFBTSxPQUFRO0FBQ25DLGNBQUksTUFDSCxRQUFRLEtBQUssTUFBTztBQUlyQixjQUFLLE9BQU8sU0FBUyxVQUFXO0FBQy9CLGtCQUFPLFVBQVcsU0FBVztBQUFBLGlCQUd2QjtBQUdOLGlCQUFNLFFBQVEsTUFBTztBQUNwQixvQkFBTyxVQUFXLFNBQVcsS0FBTTtBQUFBO0FBQUE7QUFHckMsaUJBQU87QUFBQTtBQUFBLFFBRVIsS0FBSyxTQUFVLE9BQU8sS0FBTTtBQUMzQixpQkFBTyxRQUFRLFNBQ2QsS0FBSyxNQUFPLFNBR1osTUFBTyxLQUFLLFlBQWEsTUFBTyxLQUFLLFNBQVcsVUFBVztBQUFBO0FBQUEsUUFFN0QsUUFBUSxTQUFVLE9BQU8sS0FBSyxPQUFRO0FBYXJDLGNBQUssUUFBUSxVQUNQLE9BQU8sT0FBTyxRQUFRLFlBQWMsVUFBVSxRQUFjO0FBRWpFLG1CQUFPLEtBQUssSUFBSyxPQUFPO0FBQUE7QUFTekIsZUFBSyxJQUFLLE9BQU8sS0FBSztBQUl0QixpQkFBTyxVQUFVLFNBQVksUUFBUTtBQUFBO0FBQUEsUUFFdEMsUUFBUSxTQUFVLE9BQU8sS0FBTTtBQUM5QixjQUFJLEdBQ0gsUUFBUSxNQUFPLEtBQUs7QUFFckIsY0FBSyxVQUFVLFFBQVk7QUFDMUI7QUFBQTtBQUdELGNBQUssUUFBUSxRQUFZO0FBR3hCLGdCQUFLLE1BQU0sUUFBUyxNQUFRO0FBSTNCLG9CQUFNLElBQUksSUFBSztBQUFBLG1CQUNUO0FBQ04sb0JBQU0sVUFBVztBQUlqQixvQkFBTSxPQUFPLFFBQ1osQ0FBRSxPQUNBLElBQUksTUFBTyxrQkFBbUI7QUFBQTtBQUdsQyxnQkFBSSxJQUFJO0FBRVIsbUJBQVEsS0FBTTtBQUNiLHFCQUFPLE1BQU8sSUFBSztBQUFBO0FBQUE7QUFLckIsY0FBSyxRQUFRLFVBQWEsT0FBTyxjQUFlLFFBQVU7QUFNekQsZ0JBQUssTUFBTSxVQUFXO0FBQ3JCLG9CQUFPLEtBQUssV0FBWTtBQUFBLG1CQUNsQjtBQUNOLHFCQUFPLE1BQU8sS0FBSztBQUFBO0FBQUE7QUFBQTtBQUFBLFFBSXRCLFNBQVMsU0FBVSxPQUFRO0FBQzFCLGNBQUksUUFBUSxNQUFPLEtBQUs7QUFDeEIsaUJBQU8sVUFBVSxVQUFhLENBQUMsT0FBTyxjQUFlO0FBQUE7QUFBQTtBQUd2RCxVQUFJLFdBQVcsSUFBSTtBQUVuQixVQUFJLFdBQVcsSUFBSTtBQWNuQixVQUFJLFNBQVMsaUNBQ1osYUFBYTtBQUVkLHVCQUFrQixNQUFPO0FBQ3hCLFlBQUssU0FBUyxRQUFTO0FBQ3RCLGlCQUFPO0FBQUE7QUFHUixZQUFLLFNBQVMsU0FBVTtBQUN2QixpQkFBTztBQUFBO0FBR1IsWUFBSyxTQUFTLFFBQVM7QUFDdEIsaUJBQU87QUFBQTtBQUlSLFlBQUssU0FBUyxDQUFDLE9BQU8sSUFBSztBQUMxQixpQkFBTyxDQUFDO0FBQUE7QUFHVCxZQUFLLE9BQU8sS0FBTSxPQUFTO0FBQzFCLGlCQUFPLEtBQUssTUFBTztBQUFBO0FBR3BCLGVBQU87QUFBQTtBQUdSLHdCQUFtQixNQUFNLEtBQUssTUFBTztBQUNwQyxZQUFJO0FBSUosWUFBSyxTQUFTLFVBQWEsS0FBSyxhQUFhLEdBQUk7QUFDaEQsaUJBQU8sVUFBVSxJQUFJLFFBQVMsWUFBWSxPQUFRO0FBQ2xELGlCQUFPLEtBQUssYUFBYztBQUUxQixjQUFLLE9BQU8sU0FBUyxVQUFXO0FBQy9CLGdCQUFJO0FBQ0gscUJBQU8sUUFBUztBQUFBLHFCQUNQLEdBQVI7QUFBQTtBQUdGLHFCQUFTLElBQUssTUFBTSxLQUFLO0FBQUEsaUJBQ25CO0FBQ04sbUJBQU87QUFBQTtBQUFBO0FBR1QsZUFBTztBQUFBO0FBR1IsYUFBTyxPQUFRO0FBQUEsUUFDZCxTQUFTLFNBQVUsTUFBTztBQUN6QixpQkFBTyxTQUFTLFFBQVMsU0FBVSxTQUFTLFFBQVM7QUFBQTtBQUFBLFFBR3RELE1BQU0sU0FBVSxNQUFNLE1BQU0sTUFBTztBQUNsQyxpQkFBTyxTQUFTLE9BQVEsTUFBTSxNQUFNO0FBQUE7QUFBQSxRQUdyQyxZQUFZLFNBQVUsTUFBTSxNQUFPO0FBQ2xDLG1CQUFTLE9BQVEsTUFBTTtBQUFBO0FBQUEsUUFLeEIsT0FBTyxTQUFVLE1BQU0sTUFBTSxNQUFPO0FBQ25DLGlCQUFPLFNBQVMsT0FBUSxNQUFNLE1BQU07QUFBQTtBQUFBLFFBR3JDLGFBQWEsU0FBVSxNQUFNLE1BQU87QUFDbkMsbUJBQVMsT0FBUSxNQUFNO0FBQUE7QUFBQTtBQUl6QixhQUFPLEdBQUcsT0FBUTtBQUFBLFFBQ2pCLE1BQU0sU0FBVSxLQUFLLE9BQVE7QUFDNUIsY0FBSSxHQUFHLE1BQU0sTUFDWixPQUFPLEtBQU0sSUFDYixRQUFRLFFBQVEsS0FBSztBQUd0QixjQUFLLFFBQVEsUUFBWTtBQUN4QixnQkFBSyxLQUFLLFFBQVM7QUFDbEIscUJBQU8sU0FBUyxJQUFLO0FBRXJCLGtCQUFLLEtBQUssYUFBYSxLQUFLLENBQUMsU0FBUyxJQUFLLE1BQU0saUJBQW1CO0FBQ25FLG9CQUFJLE1BQU07QUFDVix1QkFBUSxLQUFNO0FBSWIsc0JBQUssTUFBTyxJQUFNO0FBQ2pCLDJCQUFPLE1BQU8sR0FBSTtBQUNsQix3QkFBSyxLQUFLLFFBQVMsYUFBYyxHQUFJO0FBQ3BDLDZCQUFPLFVBQVcsS0FBSyxNQUFPO0FBQzlCLCtCQUFVLE1BQU0sTUFBTSxLQUFNO0FBQUE7QUFBQTtBQUFBO0FBSS9CLHlCQUFTLElBQUssTUFBTSxnQkFBZ0I7QUFBQTtBQUFBO0FBSXRDLG1CQUFPO0FBQUE7QUFJUixjQUFLLE9BQU8sUUFBUSxVQUFXO0FBQzlCLG1CQUFPLEtBQUssS0FBTSxXQUFXO0FBQzVCLHVCQUFTLElBQUssTUFBTTtBQUFBO0FBQUE7QUFJdEIsaUJBQU8sT0FBUSxNQUFNLFNBQVUsUUFBUTtBQUN0QyxnQkFBSTtBQU9KLGdCQUFLLFFBQVEsV0FBVSxRQUFZO0FBSWxDLHNCQUFPLFNBQVMsSUFBSyxNQUFNO0FBQzNCLGtCQUFLLFVBQVMsUUFBWTtBQUN6Qix1QkFBTztBQUFBO0FBS1Isc0JBQU8sU0FBVSxNQUFNO0FBQ3ZCLGtCQUFLLFVBQVMsUUFBWTtBQUN6Qix1QkFBTztBQUFBO0FBSVI7QUFBQTtBQUlELGlCQUFLLEtBQU0sV0FBVztBQUdyQix1QkFBUyxJQUFLLE1BQU0sS0FBSztBQUFBO0FBQUEsYUFFeEIsTUFBTSxPQUFPLFVBQVUsU0FBUyxHQUFHLE1BQU07QUFBQTtBQUFBLFFBRzdDLFlBQVksU0FBVSxLQUFNO0FBQzNCLGlCQUFPLEtBQUssS0FBTSxXQUFXO0FBQzVCLHFCQUFTLE9BQVEsTUFBTTtBQUFBO0FBQUE7QUFBQTtBQU0xQixhQUFPLE9BQVE7QUFBQSxRQUNkLE9BQU8sU0FBVSxNQUFNLE1BQU0sTUFBTztBQUNuQyxjQUFJO0FBRUosY0FBSyxNQUFPO0FBQ1gsbUJBQVMsU0FBUSxRQUFTO0FBQzFCLG9CQUFRLFNBQVMsSUFBSyxNQUFNO0FBRzVCLGdCQUFLLE1BQU87QUFDWCxrQkFBSyxDQUFDLFNBQVMsTUFBTSxRQUFTLE9BQVM7QUFDdEMsd0JBQVEsU0FBUyxPQUFRLE1BQU0sTUFBTSxPQUFPLFVBQVc7QUFBQSxxQkFDakQ7QUFDTixzQkFBTSxLQUFNO0FBQUE7QUFBQTtBQUdkLG1CQUFPLFNBQVM7QUFBQTtBQUFBO0FBQUEsUUFJbEIsU0FBUyxTQUFVLE1BQU0sTUFBTztBQUMvQixpQkFBTyxRQUFRO0FBRWYsY0FBSSxRQUFRLE9BQU8sTUFBTyxNQUFNLE9BQy9CLGNBQWMsTUFBTSxRQUNwQixLQUFLLE1BQU0sU0FDWCxRQUFRLE9BQU8sWUFBYSxNQUFNLE9BQ2xDLE9BQU8sV0FBVztBQUNqQixtQkFBTyxRQUFTLE1BQU07QUFBQTtBQUl4QixjQUFLLE9BQU8sY0FBZTtBQUMxQixpQkFBSyxNQUFNO0FBQ1g7QUFBQTtBQUdELGNBQUssSUFBSztBQUlULGdCQUFLLFNBQVMsTUFBTztBQUNwQixvQkFBTSxRQUFTO0FBQUE7QUFJaEIsbUJBQU8sTUFBTTtBQUNiLGVBQUcsS0FBTSxNQUFNLE1BQU07QUFBQTtBQUd0QixjQUFLLENBQUMsZUFBZSxPQUFRO0FBQzVCLGtCQUFNLE1BQU07QUFBQTtBQUFBO0FBQUEsUUFLZCxhQUFhLFNBQVUsTUFBTSxNQUFPO0FBQ25DLGNBQUksTUFBTSxPQUFPO0FBQ2pCLGlCQUFPLFNBQVMsSUFBSyxNQUFNLFFBQVMsU0FBUyxPQUFRLE1BQU0sS0FBSztBQUFBLFlBQy9ELE9BQU8sT0FBTyxVQUFXLGVBQWdCLElBQUssV0FBVztBQUN4RCx1QkFBUyxPQUFRLE1BQU0sQ0FBRSxPQUFPLFNBQVM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU03QyxhQUFPLEdBQUcsT0FBUTtBQUFBLFFBQ2pCLE9BQU8sU0FBVSxNQUFNLE1BQU87QUFDN0IsY0FBSSxTQUFTO0FBRWIsY0FBSyxPQUFPLFNBQVMsVUFBVztBQUMvQixtQkFBTztBQUNQLG1CQUFPO0FBQ1A7QUFBQTtBQUdELGNBQUssVUFBVSxTQUFTLFFBQVM7QUFDaEMsbUJBQU8sT0FBTyxNQUFPLEtBQU0sSUFBSztBQUFBO0FBR2pDLGlCQUFPLFNBQVMsU0FDZixPQUNBLEtBQUssS0FBTSxXQUFXO0FBQ3JCLGdCQUFJLFFBQVEsT0FBTyxNQUFPLE1BQU0sTUFBTTtBQUd0QyxtQkFBTyxZQUFhLE1BQU07QUFFMUIsZ0JBQUssU0FBUyxRQUFRLE1BQU8sT0FBUSxjQUFlO0FBQ25ELHFCQUFPLFFBQVMsTUFBTTtBQUFBO0FBQUE7QUFBQTtBQUFBLFFBSTFCLFNBQVMsU0FBVSxNQUFPO0FBQ3pCLGlCQUFPLEtBQUssS0FBTSxXQUFXO0FBQzVCLG1CQUFPLFFBQVMsTUFBTTtBQUFBO0FBQUE7QUFBQSxRQUd4QixZQUFZLFNBQVUsTUFBTztBQUM1QixpQkFBTyxLQUFLLE1BQU8sUUFBUSxNQUFNO0FBQUE7QUFBQSxRQUtsQyxTQUFTLFNBQVUsTUFBTSxLQUFNO0FBQzlCLGNBQUksS0FDSCxRQUFRLEdBQ1IsUUFBUSxPQUFPLFlBQ2YsV0FBVyxNQUNYLElBQUksS0FBSyxRQUNULFVBQVUsV0FBVztBQUNwQixnQkFBSyxDQUFHLEVBQUUsT0FBVTtBQUNuQixvQkFBTSxZQUFhLFVBQVUsQ0FBRTtBQUFBO0FBQUE7QUFJbEMsY0FBSyxPQUFPLFNBQVMsVUFBVztBQUMvQixrQkFBTTtBQUNOLG1CQUFPO0FBQUE7QUFFUixpQkFBTyxRQUFRO0FBRWYsaUJBQVEsS0FBTTtBQUNiLGtCQUFNLFNBQVMsSUFBSyxTQUFVLElBQUssT0FBTztBQUMxQyxnQkFBSyxPQUFPLElBQUksT0FBUTtBQUN2QjtBQUNBLGtCQUFJLE1BQU0sSUFBSztBQUFBO0FBQUE7QUFHakI7QUFDQSxpQkFBTyxNQUFNLFFBQVM7QUFBQTtBQUFBO0FBR3hCLFVBQUksT0FBUyxzQ0FBd0M7QUFFckQsVUFBSSxVQUFVLElBQUksT0FBUSxtQkFBbUIsT0FBTyxlQUFlO0FBR25FLFVBQUksWUFBWSxDQUFFLE9BQU8sU0FBUyxVQUFVO0FBRTVDLFVBQUksa0JBQWtCLFVBQVM7QUFJOUIsVUFBSSxhQUFhLFNBQVUsTUFBTztBQUNoQyxlQUFPLE9BQU8sU0FBVSxLQUFLLGVBQWU7QUFBQSxTQUU3QyxXQUFXLEVBQUUsVUFBVTtBQU94QixVQUFLLGdCQUFnQixhQUFjO0FBQ2xDLHFCQUFhLFNBQVUsTUFBTztBQUM3QixpQkFBTyxPQUFPLFNBQVUsS0FBSyxlQUFlLFNBQzNDLEtBQUssWUFBYSxjQUFlLEtBQUs7QUFBQTtBQUFBO0FBRzFDLFVBQUkscUJBQXFCLFNBQVUsTUFBTSxJQUFLO0FBSTVDLGVBQU8sTUFBTTtBQUdiLGVBQU8sS0FBSyxNQUFNLFlBQVksVUFDN0IsS0FBSyxNQUFNLFlBQVksTUFNdkIsV0FBWSxTQUVaLE9BQU8sSUFBSyxNQUFNLGVBQWdCO0FBQUE7QUFLckMseUJBQW9CLE1BQU0sTUFBTSxZQUFZLE9BQVE7QUFDbkQsWUFBSSxVQUFVLE9BQ2IsZ0JBQWdCLElBQ2hCLGVBQWUsUUFDZCxXQUFXO0FBQ1YsaUJBQU8sTUFBTTtBQUFBLFlBRWQsV0FBVztBQUNWLGlCQUFPLE9BQU8sSUFBSyxNQUFNLE1BQU07QUFBQSxXQUVqQyxVQUFVLGdCQUNWLE9BQU8sY0FBYyxXQUFZLE1BQVMsUUFBTyxVQUFXLFFBQVMsS0FBSyxPQUcxRSxnQkFBZ0IsS0FBSyxZQUNsQixRQUFPLFVBQVcsU0FBVSxTQUFTLFFBQVEsQ0FBQyxZQUNoRCxRQUFRLEtBQU0sT0FBTyxJQUFLLE1BQU07QUFFbEMsWUFBSyxpQkFBaUIsY0FBZSxPQUFRLE1BQU87QUFJbkQsb0JBQVUsVUFBVTtBQUdwQixpQkFBTyxRQUFRLGNBQWU7QUFHOUIsMEJBQWdCLENBQUMsV0FBVztBQUU1QixpQkFBUSxpQkFBa0I7QUFJekIsbUJBQU8sTUFBTyxNQUFNLE1BQU0sZ0JBQWdCO0FBQzFDLGdCQUFPLEtBQUksU0FBWSxLQUFNLFNBQVEsaUJBQWlCLFdBQVcsU0FBVyxHQUFJO0FBQy9FLDhCQUFnQjtBQUFBO0FBRWpCLDRCQUFnQixnQkFBZ0I7QUFBQTtBQUlqQywwQkFBZ0IsZ0JBQWdCO0FBQ2hDLGlCQUFPLE1BQU8sTUFBTSxNQUFNLGdCQUFnQjtBQUcxQyx1QkFBYSxjQUFjO0FBQUE7QUFHNUIsWUFBSyxZQUFhO0FBQ2pCLDBCQUFnQixDQUFDLGlCQUFpQixDQUFDLFdBQVc7QUFHOUMscUJBQVcsV0FBWSxLQUN0QixnQkFBa0IsWUFBWSxLQUFNLEtBQU0sV0FBWSxLQUN0RCxDQUFDLFdBQVk7QUFDZCxjQUFLLE9BQVE7QUFDWixrQkFBTSxPQUFPO0FBQ2Isa0JBQU0sUUFBUTtBQUNkLGtCQUFNLE1BQU07QUFBQTtBQUFBO0FBR2QsZUFBTztBQUFBO0FBSVIsVUFBSSxvQkFBb0I7QUFFeEIsaUNBQTRCLE1BQU87QUFDbEMsWUFBSSxNQUNILE1BQU0sS0FBSyxlQUNYLFlBQVcsS0FBSyxVQUNoQixVQUFVLGtCQUFtQjtBQUU5QixZQUFLLFNBQVU7QUFDZCxpQkFBTztBQUFBO0FBR1IsZUFBTyxJQUFJLEtBQUssWUFBYSxJQUFJLGNBQWU7QUFDaEQsa0JBQVUsT0FBTyxJQUFLLE1BQU07QUFFNUIsYUFBSyxXQUFXLFlBQWE7QUFFN0IsWUFBSyxZQUFZLFFBQVM7QUFDekIsb0JBQVU7QUFBQTtBQUVYLDBCQUFtQixhQUFhO0FBRWhDLGVBQU87QUFBQTtBQUdSLHdCQUFtQixVQUFVLE1BQU87QUFDbkMsWUFBSSxTQUFTLE1BQ1osU0FBUyxJQUNULFFBQVEsR0FDUixTQUFTLFNBQVM7QUFHbkIsZUFBUSxRQUFRLFFBQVEsU0FBVTtBQUNqQyxpQkFBTyxTQUFVO0FBQ2pCLGNBQUssQ0FBQyxLQUFLLE9BQVE7QUFDbEI7QUFBQTtBQUdELG9CQUFVLEtBQUssTUFBTTtBQUNyQixjQUFLLE1BQU87QUFLWCxnQkFBSyxZQUFZLFFBQVM7QUFDekIscUJBQVEsU0FBVSxTQUFTLElBQUssTUFBTSxjQUFlO0FBQ3JELGtCQUFLLENBQUMsT0FBUSxRQUFVO0FBQ3ZCLHFCQUFLLE1BQU0sVUFBVTtBQUFBO0FBQUE7QUFHdkIsZ0JBQUssS0FBSyxNQUFNLFlBQVksTUFBTSxtQkFBb0IsT0FBUztBQUM5RCxxQkFBUSxTQUFVLGtCQUFtQjtBQUFBO0FBQUEsaUJBRWhDO0FBQ04sZ0JBQUssWUFBWSxRQUFTO0FBQ3pCLHFCQUFRLFNBQVU7QUFHbEIsdUJBQVMsSUFBSyxNQUFNLFdBQVc7QUFBQTtBQUFBO0FBQUE7QUFNbEMsYUFBTSxRQUFRLEdBQUcsUUFBUSxRQUFRLFNBQVU7QUFDMUMsY0FBSyxPQUFRLFVBQVcsTUFBTztBQUM5QixxQkFBVSxPQUFRLE1BQU0sVUFBVSxPQUFRO0FBQUE7QUFBQTtBQUk1QyxlQUFPO0FBQUE7QUFHUixhQUFPLEdBQUcsT0FBUTtBQUFBLFFBQ2pCLE1BQU0sV0FBVztBQUNoQixpQkFBTyxTQUFVLE1BQU07QUFBQTtBQUFBLFFBRXhCLE1BQU0sV0FBVztBQUNoQixpQkFBTyxTQUFVO0FBQUE7QUFBQSxRQUVsQixRQUFRLFNBQVUsT0FBUTtBQUN6QixjQUFLLE9BQU8sVUFBVSxXQUFZO0FBQ2pDLG1CQUFPLFFBQVEsS0FBSyxTQUFTLEtBQUs7QUFBQTtBQUduQyxpQkFBTyxLQUFLLEtBQU0sV0FBVztBQUM1QixnQkFBSyxtQkFBb0IsT0FBUztBQUNqQyxxQkFBUSxNQUFPO0FBQUEsbUJBQ1Q7QUFDTixxQkFBUSxNQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLbkIsVUFBSSxpQkFBbUI7QUFFdkIsVUFBSSxXQUFhO0FBRWpCLFVBQUksY0FBZ0I7QUFJcEIsTUFBRSxZQUFXO0FBQ1osWUFBSSxXQUFXLFVBQVMsMEJBQ3ZCLE1BQU0sU0FBUyxZQUFhLFVBQVMsY0FBZSxTQUNwRCxRQUFRLFVBQVMsY0FBZTtBQU1qQyxjQUFNLGFBQWMsUUFBUTtBQUM1QixjQUFNLGFBQWMsV0FBVztBQUMvQixjQUFNLGFBQWMsUUFBUTtBQUU1QixZQUFJLFlBQWE7QUFJakIsZ0JBQVEsYUFBYSxJQUFJLFVBQVcsTUFBTyxVQUFXLE1BQU8sVUFBVTtBQUl2RSxZQUFJLFlBQVk7QUFDaEIsZ0JBQVEsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLFVBQVcsTUFBTyxVQUFVO0FBSzNELFlBQUksWUFBWTtBQUNoQixnQkFBUSxTQUFTLENBQUMsQ0FBQyxJQUFJO0FBQUE7QUFLeEIsVUFBSSxVQUFVO0FBQUEsUUFLYixPQUFPLENBQUUsR0FBRyxXQUFXO0FBQUEsUUFDdkIsS0FBSyxDQUFFLEdBQUcscUJBQXFCO0FBQUEsUUFDL0IsSUFBSSxDQUFFLEdBQUcsa0JBQWtCO0FBQUEsUUFDM0IsSUFBSSxDQUFFLEdBQUcsc0JBQXNCO0FBQUEsUUFFL0IsVUFBVSxDQUFFLEdBQUcsSUFBSTtBQUFBO0FBR3BCLGNBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxXQUFXLFFBQVEsVUFBVSxRQUFRO0FBQzdFLGNBQVEsS0FBSyxRQUFRO0FBR3JCLFVBQUssQ0FBQyxRQUFRLFFBQVM7QUFDdEIsZ0JBQVEsV0FBVyxRQUFRLFNBQVMsQ0FBRSxHQUFHLGdDQUFnQztBQUFBO0FBSTFFLHNCQUFpQixTQUFTLEtBQU07QUFJL0IsWUFBSTtBQUVKLFlBQUssT0FBTyxRQUFRLHlCQUF5QixhQUFjO0FBQzFELGdCQUFNLFFBQVEscUJBQXNCLE9BQU87QUFBQSxtQkFFaEMsT0FBTyxRQUFRLHFCQUFxQixhQUFjO0FBQzdELGdCQUFNLFFBQVEsaUJBQWtCLE9BQU87QUFBQSxlQUVqQztBQUNOLGdCQUFNO0FBQUE7QUFHUCxZQUFLLFFBQVEsVUFBYSxPQUFPLFNBQVUsU0FBUyxNQUFRO0FBQzNELGlCQUFPLE9BQU8sTUFBTyxDQUFFLFVBQVc7QUFBQTtBQUduQyxlQUFPO0FBQUE7QUFLUiw2QkFBd0IsT0FBTyxhQUFjO0FBQzVDLFlBQUksSUFBSSxHQUNQLElBQUksTUFBTTtBQUVYLGVBQVEsSUFBSSxHQUFHLEtBQU07QUFDcEIsbUJBQVMsSUFDUixNQUFPLElBQ1AsY0FDQSxDQUFDLGVBQWUsU0FBUyxJQUFLLFlBQWEsSUFBSztBQUFBO0FBQUE7QUFNbkQsVUFBSSxRQUFRO0FBRVosNkJBQXdCLE9BQU8sU0FBUyxTQUFTLFdBQVcsU0FBVTtBQUNyRSxZQUFJLE1BQU0sS0FBSyxLQUFLLE1BQU0sVUFBVSxHQUNuQyxXQUFXLFFBQVEsMEJBQ25CLFFBQVEsSUFDUixJQUFJLEdBQ0osSUFBSSxNQUFNO0FBRVgsZUFBUSxJQUFJLEdBQUcsS0FBTTtBQUNwQixpQkFBTyxNQUFPO0FBRWQsY0FBSyxRQUFRLFNBQVMsR0FBSTtBQUd6QixnQkFBSyxPQUFRLFVBQVcsVUFBVztBQUlsQyxxQkFBTyxNQUFPLE9BQU8sS0FBSyxXQUFXLENBQUUsUUFBUztBQUFBLHVCQUdyQyxDQUFDLE1BQU0sS0FBTSxPQUFTO0FBQ2pDLG9CQUFNLEtBQU0sUUFBUSxlQUFnQjtBQUFBLG1CQUc5QjtBQUNOLG9CQUFNLE9BQU8sU0FBUyxZQUFhLFFBQVEsY0FBZTtBQUcxRCxvQkFBUSxVQUFTLEtBQU0sU0FBVSxDQUFFLElBQUksS0FBUSxHQUFJO0FBQ25ELHFCQUFPLFFBQVMsUUFBUyxRQUFRO0FBQ2pDLGtCQUFJLFlBQVksS0FBTSxLQUFNLE9BQU8sY0FBZSxRQUFTLEtBQU07QUFHakUsa0JBQUksS0FBTTtBQUNWLHFCQUFRLEtBQU07QUFDYixzQkFBTSxJQUFJO0FBQUE7QUFLWCxxQkFBTyxNQUFPLE9BQU8sSUFBSTtBQUd6QixvQkFBTSxTQUFTO0FBR2Ysa0JBQUksY0FBYztBQUFBO0FBQUE7QUFBQTtBQU1yQixpQkFBUyxjQUFjO0FBRXZCLFlBQUk7QUFDSixlQUFVLE9BQU8sTUFBTyxNQUFVO0FBR2pDLGNBQUssYUFBYSxPQUFPLFFBQVMsTUFBTSxhQUFjLElBQUs7QUFDMUQsZ0JBQUssU0FBVTtBQUNkLHNCQUFRLEtBQU07QUFBQTtBQUVmO0FBQUE7QUFHRCxxQkFBVyxXQUFZO0FBR3ZCLGdCQUFNLE9BQVEsU0FBUyxZQUFhLE9BQVE7QUFHNUMsY0FBSyxVQUFXO0FBQ2YsMEJBQWU7QUFBQTtBQUloQixjQUFLLFNBQVU7QUFDZCxnQkFBSTtBQUNKLG1CQUFVLE9BQU8sSUFBSyxNQUFVO0FBQy9CLGtCQUFLLFlBQVksS0FBTSxLQUFLLFFBQVEsS0FBTztBQUMxQyx3QkFBUSxLQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNbEIsZUFBTztBQUFBO0FBSVIsVUFBSSxpQkFBaUI7QUFFckIsNEJBQXNCO0FBQ3JCLGVBQU87QUFBQTtBQUdSLDZCQUF1QjtBQUN0QixlQUFPO0FBQUE7QUFTUiwwQkFBcUIsTUFBTSxNQUFPO0FBQ2pDLGVBQVMsU0FBUyx3QkFBNEIsVUFBUztBQUFBO0FBTXhELG1DQUE2QjtBQUM1QixZQUFJO0FBQ0gsaUJBQU8sVUFBUztBQUFBLGlCQUNQLEtBQVI7QUFBQTtBQUFBO0FBR0gsa0JBQWEsTUFBTSxPQUFPLFVBQVUsTUFBTSxJQUFJLEtBQU07QUFDbkQsWUFBSSxRQUFRO0FBR1osWUFBSyxPQUFPLFVBQVUsVUFBVztBQUdoQyxjQUFLLE9BQU8sYUFBYSxVQUFXO0FBR25DLG1CQUFPLFFBQVE7QUFDZix1QkFBVztBQUFBO0FBRVosZUFBTSxRQUFRLE9BQVE7QUFDckIsZUFBSSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU8sT0FBUTtBQUFBO0FBRWhELGlCQUFPO0FBQUE7QUFHUixZQUFLLFFBQVEsUUFBUSxNQUFNLE1BQU87QUFHakMsZUFBSztBQUNMLGlCQUFPLFdBQVc7QUFBQSxtQkFDUCxNQUFNLE1BQU87QUFDeEIsY0FBSyxPQUFPLGFBQWEsVUFBVztBQUduQyxpQkFBSztBQUNMLG1CQUFPO0FBQUEsaUJBQ0Q7QUFHTixpQkFBSztBQUNMLG1CQUFPO0FBQ1AsdUJBQVc7QUFBQTtBQUFBO0FBR2IsWUFBSyxPQUFPLE9BQVE7QUFDbkIsZUFBSztBQUFBLG1CQUNNLENBQUMsSUFBSztBQUNqQixpQkFBTztBQUFBO0FBR1IsWUFBSyxRQUFRLEdBQUk7QUFDaEIsbUJBQVM7QUFDVCxlQUFLLFNBQVUsT0FBUTtBQUd0QixxQkFBUyxJQUFLO0FBQ2QsbUJBQU8sT0FBTyxNQUFPLE1BQU07QUFBQTtBQUk1QixhQUFHLE9BQU8sT0FBTyxRQUFVLFFBQU8sT0FBTyxPQUFPO0FBQUE7QUFFakQsZUFBTyxLQUFLLEtBQU0sV0FBVztBQUM1QixpQkFBTyxNQUFNLElBQUssTUFBTSxPQUFPLElBQUksTUFBTTtBQUFBO0FBQUE7QUFRM0MsYUFBTyxRQUFRO0FBQUEsUUFFZCxRQUFRO0FBQUEsUUFFUixLQUFLLFNBQVUsTUFBTSxPQUFPLFNBQVMsTUFBTSxVQUFXO0FBRXJELGNBQUksYUFBYSxhQUFhLEtBQzdCLFFBQVEsR0FBRyxXQUNYLFNBQVMsVUFBVSxNQUFNLFlBQVksVUFDckMsV0FBVyxTQUFTLElBQUs7QUFHMUIsY0FBSyxDQUFDLFdBQVksT0FBUztBQUMxQjtBQUFBO0FBSUQsY0FBSyxRQUFRLFNBQVU7QUFDdEIsMEJBQWM7QUFDZCxzQkFBVSxZQUFZO0FBQ3RCLHVCQUFXLFlBQVk7QUFBQTtBQUt4QixjQUFLLFVBQVc7QUFDZixtQkFBTyxLQUFLLGdCQUFpQixpQkFBaUI7QUFBQTtBQUkvQyxjQUFLLENBQUMsUUFBUSxNQUFPO0FBQ3BCLG9CQUFRLE9BQU8sT0FBTztBQUFBO0FBSXZCLGNBQUssQ0FBRyxVQUFTLFNBQVMsU0FBVztBQUNwQyxxQkFBUyxTQUFTLFNBQVMsT0FBTyxPQUFRO0FBQUE7QUFFM0MsY0FBSyxDQUFHLGVBQWMsU0FBUyxTQUFXO0FBQ3pDLDBCQUFjLFNBQVMsU0FBUyxTQUFVLEdBQUk7QUFJN0MscUJBQU8sT0FBTyxXQUFXLGVBQWUsT0FBTyxNQUFNLGNBQWMsRUFBRSxPQUNwRSxPQUFPLE1BQU0sU0FBUyxNQUFPLE1BQU0sYUFBYztBQUFBO0FBQUE7QUFLcEQsa0JBQVUsVUFBUyxJQUFLLE1BQU8sa0JBQW1CLENBQUU7QUFDcEQsY0FBSSxNQUFNO0FBQ1YsaUJBQVEsS0FBTTtBQUNiLGtCQUFNLGVBQWUsS0FBTSxNQUFPLE9BQVM7QUFDM0MsbUJBQU8sV0FBVyxJQUFLO0FBQ3ZCLHlCQUFlLEtBQUssTUFBTyxJQUFLLE1BQU8sS0FBTTtBQUc3QyxnQkFBSyxDQUFDLE1BQU87QUFDWjtBQUFBO0FBSUQsc0JBQVUsT0FBTyxNQUFNLFFBQVMsU0FBVTtBQUcxQyxtQkFBUyxZQUFXLFFBQVEsZUFBZSxRQUFRLGFBQWM7QUFHakUsc0JBQVUsT0FBTyxNQUFNLFFBQVMsU0FBVTtBQUcxQyx3QkFBWSxPQUFPLE9BQVE7QUFBQSxjQUMxQjtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsY0FDQTtBQUFBLGNBQ0EsTUFBTSxRQUFRO0FBQUEsY0FDZDtBQUFBLGNBQ0EsY0FBYyxZQUFZLE9BQU8sS0FBSyxNQUFNLGFBQWEsS0FBTTtBQUFBLGNBQy9ELFdBQVcsV0FBVyxLQUFNO0FBQUEsZUFDMUI7QUFHSCxnQkFBSyxDQUFHLFlBQVcsT0FBUSxRQUFXO0FBQ3JDLHlCQUFXLE9BQVEsUUFBUztBQUM1Qix1QkFBUyxnQkFBZ0I7QUFHekIsa0JBQUssQ0FBQyxRQUFRLFNBQ2IsUUFBUSxNQUFNLEtBQU0sTUFBTSxNQUFNLFlBQVksaUJBQWtCLE9BQVE7QUFFdEUsb0JBQUssS0FBSyxrQkFBbUI7QUFDNUIsdUJBQUssaUJBQWtCLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFLaEMsZ0JBQUssUUFBUSxLQUFNO0FBQ2xCLHNCQUFRLElBQUksS0FBTSxNQUFNO0FBRXhCLGtCQUFLLENBQUMsVUFBVSxRQUFRLE1BQU87QUFDOUIsMEJBQVUsUUFBUSxPQUFPLFFBQVE7QUFBQTtBQUFBO0FBS25DLGdCQUFLLFVBQVc7QUFDZix1QkFBUyxPQUFRLFNBQVMsaUJBQWlCLEdBQUc7QUFBQSxtQkFDeEM7QUFDTix1QkFBUyxLQUFNO0FBQUE7QUFJaEIsbUJBQU8sTUFBTSxPQUFRLFFBQVM7QUFBQTtBQUFBO0FBQUEsUUFNaEMsUUFBUSxTQUFVLE1BQU0sT0FBTyxTQUFTLFVBQVUsYUFBYztBQUUvRCxjQUFJLEdBQUcsV0FBVyxLQUNqQixRQUFRLEdBQUcsV0FDWCxTQUFTLFVBQVUsTUFBTSxZQUFZLFVBQ3JDLFdBQVcsU0FBUyxRQUFTLFNBQVUsU0FBUyxJQUFLO0FBRXRELGNBQUssQ0FBQyxZQUFZLENBQUcsVUFBUyxTQUFTLFNBQVc7QUFDakQ7QUFBQTtBQUlELGtCQUFVLFVBQVMsSUFBSyxNQUFPLGtCQUFtQixDQUFFO0FBQ3BELGNBQUksTUFBTTtBQUNWLGlCQUFRLEtBQU07QUFDYixrQkFBTSxlQUFlLEtBQU0sTUFBTyxPQUFTO0FBQzNDLG1CQUFPLFdBQVcsSUFBSztBQUN2Qix5QkFBZSxLQUFLLE1BQU8sSUFBSyxNQUFPLEtBQU07QUFHN0MsZ0JBQUssQ0FBQyxNQUFPO0FBQ1osbUJBQU0sUUFBUSxRQUFTO0FBQ3RCLHVCQUFPLE1BQU0sT0FBUSxNQUFNLE9BQU8sTUFBTyxJQUFLLFNBQVMsVUFBVTtBQUFBO0FBRWxFO0FBQUE7QUFHRCxzQkFBVSxPQUFPLE1BQU0sUUFBUyxTQUFVO0FBQzFDLG1CQUFTLFlBQVcsUUFBUSxlQUFlLFFBQVEsYUFBYztBQUNqRSx1QkFBVyxPQUFRLFNBQVU7QUFDN0Isa0JBQU0sSUFBSyxNQUNWLElBQUksT0FBUSxZQUFZLFdBQVcsS0FBTSxtQkFBb0I7QUFHOUQsd0JBQVksSUFBSSxTQUFTO0FBQ3pCLG1CQUFRLEtBQU07QUFDYiwwQkFBWSxTQUFVO0FBRXRCLGtCQUFPLGdCQUFlLGFBQWEsVUFBVSxhQUMxQyxFQUFDLFdBQVcsUUFBUSxTQUFTLFVBQVUsU0FDdkMsRUFBQyxPQUFPLElBQUksS0FBTSxVQUFVLGVBQzVCLEVBQUMsWUFBWSxhQUFhLFVBQVUsWUFDckMsYUFBYSxRQUFRLFVBQVUsV0FBYTtBQUM3Qyx5QkFBUyxPQUFRLEdBQUc7QUFFcEIsb0JBQUssVUFBVSxVQUFXO0FBQ3pCLDJCQUFTO0FBQUE7QUFFVixvQkFBSyxRQUFRLFFBQVM7QUFDckIsMEJBQVEsT0FBTyxLQUFNLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFPOUIsZ0JBQUssYUFBYSxDQUFDLFNBQVMsUUFBUztBQUNwQyxrQkFBSyxDQUFDLFFBQVEsWUFDYixRQUFRLFNBQVMsS0FBTSxNQUFNLFlBQVksU0FBUyxZQUFhLE9BQVE7QUFFdkUsdUJBQU8sWUFBYSxNQUFNLE1BQU0sU0FBUztBQUFBO0FBRzFDLHFCQUFPLE9BQVE7QUFBQTtBQUFBO0FBS2pCLGNBQUssT0FBTyxjQUFlLFNBQVc7QUFDckMscUJBQVMsT0FBUSxNQUFNO0FBQUE7QUFBQTtBQUFBLFFBSXpCLFVBQVUsU0FBVSxhQUFjO0FBRWpDLGNBQUksR0FBRyxHQUFHLEtBQUssU0FBUyxXQUFXLGNBQ2xDLE9BQU8sSUFBSSxNQUFPLFVBQVUsU0FHNUIsUUFBUSxPQUFPLE1BQU0sSUFBSyxjQUUxQixXQUNDLFVBQVMsSUFBSyxNQUFNLGFBQWMsT0FBTyxPQUFRLE9BQy9DLE1BQU0sU0FBVSxJQUNuQixVQUFVLE9BQU8sTUFBTSxRQUFTLE1BQU0sU0FBVTtBQUdqRCxlQUFNLEtBQU07QUFFWixlQUFNLElBQUksR0FBRyxJQUFJLFVBQVUsUUFBUSxLQUFNO0FBQ3hDLGlCQUFNLEtBQU0sVUFBVztBQUFBO0FBR3hCLGdCQUFNLGlCQUFpQjtBQUd2QixjQUFLLFFBQVEsZUFBZSxRQUFRLFlBQVksS0FBTSxNQUFNLFdBQVksT0FBUTtBQUMvRTtBQUFBO0FBSUQseUJBQWUsT0FBTyxNQUFNLFNBQVMsS0FBTSxNQUFNLE9BQU87QUFHeEQsY0FBSTtBQUNKLGlCQUFVLFdBQVUsYUFBYyxTQUFXLENBQUMsTUFBTSx3QkFBeUI7QUFDNUUsa0JBQU0sZ0JBQWdCLFFBQVE7QUFFOUIsZ0JBQUk7QUFDSixtQkFBVSxhQUFZLFFBQVEsU0FBVSxTQUN2QyxDQUFDLE1BQU0saUNBQWtDO0FBSXpDLGtCQUFLLENBQUMsTUFBTSxjQUFjLFVBQVUsY0FBYyxTQUNqRCxNQUFNLFdBQVcsS0FBTSxVQUFVLFlBQWM7QUFFL0Msc0JBQU0sWUFBWTtBQUNsQixzQkFBTSxPQUFPLFVBQVU7QUFFdkIsc0JBQVUsU0FBTyxNQUFNLFFBQVMsVUFBVSxhQUFjLElBQUssVUFDNUQsVUFBVSxTQUFVLE1BQU8sUUFBUSxNQUFNO0FBRTFDLG9CQUFLLFFBQVEsUUFBWTtBQUN4QixzQkFBTyxPQUFNLFNBQVMsU0FBVSxPQUFRO0FBQ3ZDLDBCQUFNO0FBQ04sMEJBQU07QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUVgsY0FBSyxRQUFRLGNBQWU7QUFDM0Isb0JBQVEsYUFBYSxLQUFNLE1BQU07QUFBQTtBQUdsQyxpQkFBTyxNQUFNO0FBQUE7QUFBQSxRQUdkLFVBQVUsU0FBVSxPQUFPLFVBQVc7QUFDckMsY0FBSSxHQUFHLFdBQVcsS0FBSyxpQkFBaUIsa0JBQ3ZDLGVBQWUsSUFDZixnQkFBZ0IsU0FBUyxlQUN6QixNQUFNLE1BQU07QUFHYixjQUFLLGlCQUlKLElBQUksWUFPSixDQUFHLE9BQU0sU0FBUyxXQUFXLE1BQU0sVUFBVSxJQUFNO0FBRW5ELG1CQUFRLFFBQVEsTUFBTSxNQUFNLElBQUksY0FBYyxNQUFPO0FBSXBELGtCQUFLLElBQUksYUFBYSxLQUFLLENBQUcsT0FBTSxTQUFTLFdBQVcsSUFBSSxhQUFhLE9BQVM7QUFDakYsa0NBQWtCO0FBQ2xCLG1DQUFtQjtBQUNuQixxQkFBTSxJQUFJLEdBQUcsSUFBSSxlQUFlLEtBQU07QUFDckMsOEJBQVksU0FBVTtBQUd0Qix3QkFBTSxVQUFVLFdBQVc7QUFFM0Isc0JBQUssaUJBQWtCLFNBQVUsUUFBWTtBQUM1QyxxQ0FBa0IsT0FBUSxVQUFVLGVBQ25DLE9BQVEsS0FBSyxNQUFPLE1BQU8sT0FBUSxLQUNuQyxPQUFPLEtBQU0sS0FBSyxNQUFNLE1BQU0sQ0FBRSxNQUFRO0FBQUE7QUFFMUMsc0JBQUssaUJBQWtCLE1BQVE7QUFDOUIsb0NBQWdCLEtBQU07QUFBQTtBQUFBO0FBR3hCLG9CQUFLLGdCQUFnQixRQUFTO0FBQzdCLCtCQUFhLEtBQU0sRUFBRSxNQUFNLEtBQUssVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTzlDLGdCQUFNO0FBQ04sY0FBSyxnQkFBZ0IsU0FBUyxRQUFTO0FBQ3RDLHlCQUFhLEtBQU0sRUFBRSxNQUFNLEtBQUssVUFBVSxTQUFTLE1BQU87QUFBQTtBQUczRCxpQkFBTztBQUFBO0FBQUEsUUFHUixTQUFTLFNBQVUsTUFBTSxNQUFPO0FBQy9CLGlCQUFPLGVBQWdCLE9BQU8sTUFBTSxXQUFXLE1BQU07QUFBQSxZQUNwRCxZQUFZO0FBQUEsWUFDWixjQUFjO0FBQUEsWUFFZCxLQUFLLFdBQVksUUFDaEIsV0FBVztBQUNWLGtCQUFLLEtBQUssZUFBZ0I7QUFDekIsdUJBQU8sS0FBTSxLQUFLO0FBQUE7QUFBQSxnQkFHcEIsV0FBVztBQUNWLGtCQUFLLEtBQUssZUFBZ0I7QUFDekIsdUJBQU8sS0FBSyxjQUFlO0FBQUE7QUFBQTtBQUFBLFlBSTlCLEtBQUssU0FBVSxPQUFRO0FBQ3RCLHFCQUFPLGVBQWdCLE1BQU0sTUFBTTtBQUFBLGdCQUNsQyxZQUFZO0FBQUEsZ0JBQ1osY0FBYztBQUFBLGdCQUNkLFVBQVU7QUFBQSxnQkFDVjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFNSixLQUFLLFNBQVUsZUFBZ0I7QUFDOUIsaUJBQU8sY0FBZSxPQUFPLFdBQzVCLGdCQUNBLElBQUksT0FBTyxNQUFPO0FBQUE7QUFBQSxRQUdwQixTQUFTO0FBQUEsVUFDUixNQUFNO0FBQUEsWUFHTCxVQUFVO0FBQUE7QUFBQSxVQUVYLE9BQU87QUFBQSxZQUdOLE9BQU8sU0FBVSxNQUFPO0FBSXZCLGtCQUFJLEtBQUssUUFBUTtBQUdqQixrQkFBSyxlQUFlLEtBQU0sR0FBRyxTQUM1QixHQUFHLFNBQVMsU0FBVSxJQUFJLFVBQVk7QUFHdEMsK0JBQWdCLElBQUksU0FBUztBQUFBO0FBSTlCLHFCQUFPO0FBQUE7QUFBQSxZQUVSLFNBQVMsU0FBVSxNQUFPO0FBSXpCLGtCQUFJLEtBQUssUUFBUTtBQUdqQixrQkFBSyxlQUFlLEtBQU0sR0FBRyxTQUM1QixHQUFHLFNBQVMsU0FBVSxJQUFJLFVBQVk7QUFFdEMsK0JBQWdCLElBQUk7QUFBQTtBQUlyQixxQkFBTztBQUFBO0FBQUEsWUFLUixVQUFVLFNBQVUsT0FBUTtBQUMzQixrQkFBSSxTQUFTLE1BQU07QUFDbkIscUJBQU8sZUFBZSxLQUFNLE9BQU8sU0FDbEMsT0FBTyxTQUFTLFNBQVUsUUFBUSxZQUNsQyxTQUFTLElBQUssUUFBUSxZQUN0QixTQUFVLFFBQVE7QUFBQTtBQUFBO0FBQUEsVUFJckIsY0FBYztBQUFBLFlBQ2IsY0FBYyxTQUFVLE9BQVE7QUFJL0Isa0JBQUssTUFBTSxXQUFXLFVBQWEsTUFBTSxlQUFnQjtBQUN4RCxzQkFBTSxjQUFjLGNBQWMsTUFBTTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXN0MsOEJBQXlCLElBQUksTUFBTSxhQUFhO0FBRy9DLFlBQUssQ0FBQyxhQUFhO0FBQ2xCLGNBQUssU0FBUyxJQUFLLElBQUksVUFBVyxRQUFZO0FBQzdDLG1CQUFPLE1BQU0sSUFBSyxJQUFJLE1BQU07QUFBQTtBQUU3QjtBQUFBO0FBSUQsaUJBQVMsSUFBSyxJQUFJLE1BQU07QUFDeEIsZUFBTyxNQUFNLElBQUssSUFBSSxNQUFNO0FBQUEsVUFDM0IsV0FBVztBQUFBLFVBQ1gsU0FBUyxTQUFVLE9BQVE7QUFDMUIsZ0JBQUksVUFBVSxRQUNiLFFBQVEsU0FBUyxJQUFLLE1BQU07QUFFN0IsZ0JBQU8sTUFBTSxZQUFZLEtBQU8sS0FBTSxPQUFTO0FBSzlDLGtCQUFLLENBQUMsTUFBTSxRQUFTO0FBS3BCLHdCQUFRLE1BQU0sS0FBTTtBQUNwQix5QkFBUyxJQUFLLE1BQU0sTUFBTTtBQUsxQiwyQkFBVyxZQUFZLE1BQU07QUFDN0IscUJBQU07QUFDTix5QkFBUyxTQUFTLElBQUssTUFBTTtBQUM3QixvQkFBSyxVQUFVLFVBQVUsVUFBVztBQUNuQywyQkFBUyxJQUFLLE1BQU0sTUFBTTtBQUFBLHVCQUNwQjtBQUNOLDJCQUFTO0FBQUE7QUFFVixvQkFBSyxVQUFVLFFBQVM7QUFHdkIsd0JBQU07QUFDTix3QkFBTTtBQU9OLHlCQUFPLFVBQVUsT0FBTztBQUFBO0FBQUEseUJBU1osUUFBTyxNQUFNLFFBQVMsU0FBVSxJQUFLLGNBQWU7QUFDakUsc0JBQU07QUFBQTtBQUFBLHVCQUtJLE1BQU0sUUFBUztBQUcxQix1QkFBUyxJQUFLLE1BQU0sTUFBTTtBQUFBLGdCQUN6QixPQUFPLE9BQU8sTUFBTSxRQUluQixPQUFPLE9BQVEsTUFBTyxJQUFLLE9BQU8sTUFBTSxZQUN4QyxNQUFNLE1BQU8sSUFDYjtBQUFBO0FBS0Ysb0JBQU07QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1WLGFBQU8sY0FBYyxTQUFVLE1BQU0sTUFBTSxRQUFTO0FBR25ELFlBQUssS0FBSyxxQkFBc0I7QUFDL0IsZUFBSyxvQkFBcUIsTUFBTTtBQUFBO0FBQUE7QUFJbEMsYUFBTyxRQUFRLFNBQVUsS0FBSyxPQUFRO0FBR3JDLFlBQUssQ0FBRyxpQkFBZ0IsT0FBTyxRQUFVO0FBQ3hDLGlCQUFPLElBQUksT0FBTyxNQUFPLEtBQUs7QUFBQTtBQUkvQixZQUFLLE9BQU8sSUFBSSxNQUFPO0FBQ3RCLGVBQUssZ0JBQWdCO0FBQ3JCLGVBQUssT0FBTyxJQUFJO0FBSWhCLGVBQUsscUJBQXFCLElBQUksb0JBQzVCLElBQUkscUJBQXFCLFVBR3pCLElBQUksZ0JBQWdCLFFBQ3JCLGFBQ0E7QUFLRCxlQUFLLFNBQVcsSUFBSSxVQUFVLElBQUksT0FBTyxhQUFhLElBQ3JELElBQUksT0FBTyxhQUNYLElBQUk7QUFFTCxlQUFLLGdCQUFnQixJQUFJO0FBQ3pCLGVBQUssZ0JBQWdCLElBQUk7QUFBQSxlQUduQjtBQUNOLGVBQUssT0FBTztBQUFBO0FBSWIsWUFBSyxPQUFRO0FBQ1osaUJBQU8sT0FBUSxNQUFNO0FBQUE7QUFJdEIsYUFBSyxZQUFZLE9BQU8sSUFBSSxhQUFhLEtBQUs7QUFHOUMsYUFBTSxPQUFPLFdBQVk7QUFBQTtBQUsxQixhQUFPLE1BQU0sWUFBWTtBQUFBLFFBQ3hCLGFBQWEsT0FBTztBQUFBLFFBQ3BCLG9CQUFvQjtBQUFBLFFBQ3BCLHNCQUFzQjtBQUFBLFFBQ3RCLCtCQUErQjtBQUFBLFFBQy9CLGFBQWE7QUFBQSxRQUViLGdCQUFnQixXQUFXO0FBQzFCLGNBQUksSUFBSSxLQUFLO0FBRWIsZUFBSyxxQkFBcUI7QUFFMUIsY0FBSyxLQUFLLENBQUMsS0FBSyxhQUFjO0FBQzdCLGNBQUU7QUFBQTtBQUFBO0FBQUEsUUFHSixpQkFBaUIsV0FBVztBQUMzQixjQUFJLElBQUksS0FBSztBQUViLGVBQUssdUJBQXVCO0FBRTVCLGNBQUssS0FBSyxDQUFDLEtBQUssYUFBYztBQUM3QixjQUFFO0FBQUE7QUFBQTtBQUFBLFFBR0osMEJBQTBCLFdBQVc7QUFDcEMsY0FBSSxJQUFJLEtBQUs7QUFFYixlQUFLLGdDQUFnQztBQUVyQyxjQUFLLEtBQUssQ0FBQyxLQUFLLGFBQWM7QUFDN0IsY0FBRTtBQUFBO0FBR0gsZUFBSztBQUFBO0FBQUE7QUFLUCxhQUFPLEtBQU07QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxRQUNULFlBQVk7QUFBQSxRQUNaLGdCQUFnQjtBQUFBLFFBQ2hCLFNBQVM7QUFBQSxRQUNULFFBQVE7QUFBQSxRQUNSLFlBQVk7QUFBQSxRQUNaLFNBQVM7QUFBQSxRQUNULE9BQU87QUFBQSxRQUNQLE9BQU87QUFBQSxRQUNQLFVBQVU7QUFBQSxRQUNWLE1BQU07QUFBQSxRQUNOLFFBQVE7QUFBQSxRQUNSLE1BQU07QUFBQSxRQUNOLFVBQVU7QUFBQSxRQUNWLEtBQUs7QUFBQSxRQUNMLFNBQVM7QUFBQSxRQUNULFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxRQUNULFNBQVM7QUFBQSxRQUNULFNBQVM7QUFBQSxRQUNULFNBQVM7QUFBQSxRQUNULFNBQVM7QUFBQSxRQUNULFdBQVc7QUFBQSxRQUNYLGFBQWE7QUFBQSxRQUNiLFNBQVM7QUFBQSxRQUNULFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxRQUNmLFdBQVc7QUFBQSxRQUNYLFNBQVM7QUFBQSxRQUNULE9BQU87QUFBQSxTQUNMLE9BQU8sTUFBTTtBQUVoQixhQUFPLEtBQU0sRUFBRSxPQUFPLFdBQVcsTUFBTSxjQUFjLFNBQVUsTUFBTSxjQUFlO0FBQ25GLGVBQU8sTUFBTSxRQUFTLFFBQVM7QUFBQSxVQUc5QixPQUFPLFdBQVc7QUFLakIsMkJBQWdCLE1BQU0sTUFBTTtBQUc1QixtQkFBTztBQUFBO0FBQUEsVUFFUixTQUFTLFdBQVc7QUFHbkIsMkJBQWdCLE1BQU07QUFHdEIsbUJBQU87QUFBQTtBQUFBLFVBS1IsVUFBVSxXQUFXO0FBQ3BCLG1CQUFPO0FBQUE7QUFBQSxVQUdSO0FBQUE7QUFBQTtBQVlGLGFBQU8sS0FBTTtBQUFBLFFBQ1osWUFBWTtBQUFBLFFBQ1osWUFBWTtBQUFBLFFBQ1osY0FBYztBQUFBLFFBQ2QsY0FBYztBQUFBLFNBQ1osU0FBVSxNQUFNLEtBQU07QUFDeEIsZUFBTyxNQUFNLFFBQVMsUUFBUztBQUFBLFVBQzlCLGNBQWM7QUFBQSxVQUNkLFVBQVU7QUFBQSxVQUVWLFFBQVEsU0FBVSxPQUFRO0FBQ3pCLGdCQUFJLEtBQ0gsU0FBUyxNQUNULFVBQVUsTUFBTSxlQUNoQixZQUFZLE1BQU07QUFJbkIsZ0JBQUssQ0FBQyxXQUFhLFlBQVksVUFBVSxDQUFDLE9BQU8sU0FBVSxRQUFRLFVBQWM7QUFDaEYsb0JBQU0sT0FBTyxVQUFVO0FBQ3ZCLG9CQUFNLFVBQVUsUUFBUSxNQUFPLE1BQU07QUFDckMsb0JBQU0sT0FBTztBQUFBO0FBRWQsbUJBQU87QUFBQTtBQUFBO0FBQUE7QUFLVixhQUFPLEdBQUcsT0FBUTtBQUFBLFFBRWpCLElBQUksU0FBVSxPQUFPLFVBQVUsTUFBTSxJQUFLO0FBQ3pDLGlCQUFPLEdBQUksTUFBTSxPQUFPLFVBQVUsTUFBTTtBQUFBO0FBQUEsUUFFekMsS0FBSyxTQUFVLE9BQU8sVUFBVSxNQUFNLElBQUs7QUFDMUMsaUJBQU8sR0FBSSxNQUFNLE9BQU8sVUFBVSxNQUFNLElBQUk7QUFBQTtBQUFBLFFBRTdDLEtBQUssU0FBVSxPQUFPLFVBQVUsSUFBSztBQUNwQyxjQUFJLFdBQVc7QUFDZixjQUFLLFNBQVMsTUFBTSxrQkFBa0IsTUFBTSxXQUFZO0FBR3ZELHdCQUFZLE1BQU07QUFDbEIsbUJBQVEsTUFBTSxnQkFBaUIsSUFDOUIsVUFBVSxZQUNULFVBQVUsV0FBVyxNQUFNLFVBQVUsWUFDckMsVUFBVSxVQUNYLFVBQVUsVUFDVixVQUFVO0FBRVgsbUJBQU87QUFBQTtBQUVSLGNBQUssT0FBTyxVQUFVLFVBQVc7QUFHaEMsaUJBQU0sUUFBUSxPQUFRO0FBQ3JCLG1CQUFLLElBQUssTUFBTSxVQUFVLE1BQU87QUFBQTtBQUVsQyxtQkFBTztBQUFBO0FBRVIsY0FBSyxhQUFhLFNBQVMsT0FBTyxhQUFhLFlBQWE7QUFHM0QsaUJBQUs7QUFDTCx1QkFBVztBQUFBO0FBRVosY0FBSyxPQUFPLE9BQVE7QUFDbkIsaUJBQUs7QUFBQTtBQUVOLGlCQUFPLEtBQUssS0FBTSxXQUFXO0FBQzVCLG1CQUFPLE1BQU0sT0FBUSxNQUFNLE9BQU8sSUFBSTtBQUFBO0FBQUE7QUFBQTtBQU16QyxVQUtDLGVBQWUseUJBR2YsV0FBVyxxQ0FDWCxlQUFlO0FBR2hCLGtDQUE2QixNQUFNLFNBQVU7QUFDNUMsWUFBSyxTQUFVLE1BQU0sWUFDcEIsU0FBVSxRQUFRLGFBQWEsS0FBSyxVQUFVLFFBQVEsWUFBWSxPQUFTO0FBRTNFLGlCQUFPLE9BQVEsTUFBTyxTQUFVLFNBQVcsTUFBTztBQUFBO0FBR25ELGVBQU87QUFBQTtBQUlSLDZCQUF3QixNQUFPO0FBQzlCLGFBQUssT0FBUyxNQUFLLGFBQWMsWUFBYSxRQUFTLE1BQU0sS0FBSztBQUNsRSxlQUFPO0FBQUE7QUFFUiw2QkFBd0IsTUFBTztBQUM5QixZQUFPLE1BQUssUUFBUSxJQUFLLE1BQU8sR0FBRyxPQUFRLFNBQVU7QUFDcEQsZUFBSyxPQUFPLEtBQUssS0FBSyxNQUFPO0FBQUEsZUFDdkI7QUFDTixlQUFLLGdCQUFpQjtBQUFBO0FBR3ZCLGVBQU87QUFBQTtBQUdSLDhCQUF5QixLQUFLLE1BQU87QUFDcEMsWUFBSSxHQUFHLEdBQUcsTUFBTSxVQUFVLFVBQVUsVUFBVTtBQUU5QyxZQUFLLEtBQUssYUFBYSxHQUFJO0FBQzFCO0FBQUE7QUFJRCxZQUFLLFNBQVMsUUFBUyxNQUFRO0FBQzlCLHFCQUFXLFNBQVMsSUFBSztBQUN6QixtQkFBUyxTQUFTO0FBRWxCLGNBQUssUUFBUztBQUNiLHFCQUFTLE9BQVEsTUFBTTtBQUV2QixpQkFBTSxRQUFRLFFBQVM7QUFDdEIsbUJBQU0sSUFBSSxHQUFHLElBQUksT0FBUSxNQUFPLFFBQVEsSUFBSSxHQUFHLEtBQU07QUFDcEQsdUJBQU8sTUFBTSxJQUFLLE1BQU0sTUFBTSxPQUFRLE1BQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9sRCxZQUFLLFNBQVMsUUFBUyxNQUFRO0FBQzlCLHFCQUFXLFNBQVMsT0FBUTtBQUM1QixxQkFBVyxPQUFPLE9BQVEsSUFBSTtBQUU5QixtQkFBUyxJQUFLLE1BQU07QUFBQTtBQUFBO0FBS3RCLHdCQUFtQixLQUFLLE1BQU87QUFDOUIsWUFBSSxZQUFXLEtBQUssU0FBUztBQUc3QixZQUFLLGNBQWEsV0FBVyxlQUFlLEtBQU0sSUFBSSxPQUFTO0FBQzlELGVBQUssVUFBVSxJQUFJO0FBQUEsbUJBR1IsY0FBYSxXQUFXLGNBQWEsWUFBYTtBQUM3RCxlQUFLLGVBQWUsSUFBSTtBQUFBO0FBQUE7QUFJMUIsd0JBQW1CLFlBQVksTUFBTSxVQUFVLFNBQVU7QUFHeEQsZUFBTyxLQUFNO0FBRWIsWUFBSSxVQUFVLE9BQU8sU0FBUyxZQUFZLE1BQU0sS0FDL0MsSUFBSSxHQUNKLElBQUksV0FBVyxRQUNmLFdBQVcsSUFBSSxHQUNmLFFBQVEsS0FBTSxJQUNkLGtCQUFrQixXQUFZO0FBRy9CLFlBQUssbUJBQ0QsSUFBSSxLQUFLLE9BQU8sVUFBVSxZQUMzQixDQUFDLFFBQVEsY0FBYyxTQUFTLEtBQU0sUUFBWTtBQUNwRCxpQkFBTyxXQUFXLEtBQU0sU0FBVSxPQUFRO0FBQ3pDLGdCQUFJLFFBQU8sV0FBVyxHQUFJO0FBQzFCLGdCQUFLLGlCQUFrQjtBQUN0QixtQkFBTSxLQUFNLE1BQU0sS0FBTSxNQUFNLE9BQU8sTUFBSztBQUFBO0FBRTNDLHFCQUFVLE9BQU0sTUFBTSxVQUFVO0FBQUE7QUFBQTtBQUlsQyxZQUFLLEdBQUk7QUFDUixxQkFBVyxjQUFlLE1BQU0sV0FBWSxHQUFJLGVBQWUsT0FBTyxZQUFZO0FBQ2xGLGtCQUFRLFNBQVM7QUFFakIsY0FBSyxTQUFTLFdBQVcsV0FBVyxHQUFJO0FBQ3ZDLHVCQUFXO0FBQUE7QUFJWixjQUFLLFNBQVMsU0FBVTtBQUN2QixzQkFBVSxPQUFPLElBQUssT0FBUSxVQUFVLFdBQVk7QUFDcEQseUJBQWEsUUFBUTtBQUtyQixtQkFBUSxJQUFJLEdBQUcsS0FBTTtBQUNwQixxQkFBTztBQUVQLGtCQUFLLE1BQU0sVUFBVztBQUNyQix1QkFBTyxPQUFPLE1BQU8sTUFBTSxNQUFNO0FBR2pDLG9CQUFLLFlBQWE7QUFJakIseUJBQU8sTUFBTyxTQUFTLE9BQVEsTUFBTTtBQUFBO0FBQUE7QUFJdkMsdUJBQVMsS0FBTSxXQUFZLElBQUssTUFBTTtBQUFBO0FBR3ZDLGdCQUFLLFlBQWE7QUFDakIsb0JBQU0sUUFBUyxRQUFRLFNBQVMsR0FBSTtBQUdwQyxxQkFBTyxJQUFLLFNBQVM7QUFHckIsbUJBQU0sSUFBSSxHQUFHLElBQUksWUFBWSxLQUFNO0FBQ2xDLHVCQUFPLFFBQVM7QUFDaEIsb0JBQUssWUFBWSxLQUFNLEtBQUssUUFBUSxPQUNuQyxDQUFDLFNBQVMsT0FBUSxNQUFNLGlCQUN4QixPQUFPLFNBQVUsS0FBSyxPQUFTO0FBRS9CLHNCQUFLLEtBQUssT0FBUyxNQUFLLFFBQVEsSUFBSyxrQkFBbUIsVUFBVztBQUdsRSx3QkFBSyxPQUFPLFlBQVksQ0FBQyxLQUFLLFVBQVc7QUFDeEMsNkJBQU8sU0FBVSxLQUFLLEtBQUs7QUFBQSx3QkFDMUIsT0FBTyxLQUFLLFNBQVMsS0FBSyxhQUFjO0FBQUEseUJBQ3RDO0FBQUE7QUFBQSx5QkFFRTtBQUNOLDRCQUFTLEtBQUssWUFBWSxRQUFTLGNBQWMsS0FBTSxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUW5FLGVBQU87QUFBQTtBQUdSLHNCQUFpQixNQUFNLFVBQVUsVUFBVztBQUMzQyxZQUFJLE1BQ0gsUUFBUSxXQUFXLE9BQU8sT0FBUSxVQUFVLFFBQVMsTUFDckQsSUFBSTtBQUVMLGVBQVUsUUFBTyxNQUFPLE9BQVMsTUFBTSxLQUFNO0FBQzVDLGNBQUssQ0FBQyxZQUFZLEtBQUssYUFBYSxHQUFJO0FBQ3ZDLG1CQUFPLFVBQVcsT0FBUTtBQUFBO0FBRzNCLGNBQUssS0FBSyxZQUFhO0FBQ3RCLGdCQUFLLFlBQVksV0FBWSxPQUFTO0FBQ3JDLDRCQUFlLE9BQVEsTUFBTTtBQUFBO0FBRTlCLGlCQUFLLFdBQVcsWUFBYTtBQUFBO0FBQUE7QUFJL0IsZUFBTztBQUFBO0FBR1IsYUFBTyxPQUFRO0FBQUEsUUFDZCxlQUFlLFNBQVUsTUFBTztBQUMvQixpQkFBTztBQUFBO0FBQUEsUUFHUixPQUFPLFNBQVUsTUFBTSxlQUFlLG1CQUFvQjtBQUN6RCxjQUFJLEdBQUcsR0FBRyxhQUFhLGNBQ3RCLFFBQVEsS0FBSyxVQUFXLE9BQ3hCLFNBQVMsV0FBWTtBQUd0QixjQUFLLENBQUMsUUFBUSxrQkFBb0IsTUFBSyxhQUFhLEtBQUssS0FBSyxhQUFhLE9BQ3pFLENBQUMsT0FBTyxTQUFVLE9BQVM7QUFHNUIsMkJBQWUsT0FBUTtBQUN2QiwwQkFBYyxPQUFRO0FBRXRCLGlCQUFNLElBQUksR0FBRyxJQUFJLFlBQVksUUFBUSxJQUFJLEdBQUcsS0FBTTtBQUNqRCx1QkFBVSxZQUFhLElBQUssYUFBYztBQUFBO0FBQUE7QUFLNUMsY0FBSyxlQUFnQjtBQUNwQixnQkFBSyxtQkFBb0I7QUFDeEIsNEJBQWMsZUFBZSxPQUFRO0FBQ3JDLDZCQUFlLGdCQUFnQixPQUFRO0FBRXZDLG1CQUFNLElBQUksR0FBRyxJQUFJLFlBQVksUUFBUSxJQUFJLEdBQUcsS0FBTTtBQUNqRCwrQkFBZ0IsWUFBYSxJQUFLLGFBQWM7QUFBQTtBQUFBLG1CQUUzQztBQUNOLDZCQUFnQixNQUFNO0FBQUE7QUFBQTtBQUt4Qix5QkFBZSxPQUFRLE9BQU87QUFDOUIsY0FBSyxhQUFhLFNBQVMsR0FBSTtBQUM5QiwwQkFBZSxjQUFjLENBQUMsVUFBVSxPQUFRLE1BQU07QUFBQTtBQUl2RCxpQkFBTztBQUFBO0FBQUEsUUFHUixXQUFXLFNBQVUsT0FBUTtBQUM1QixjQUFJLE1BQU0sTUFBTSxNQUNmLFVBQVUsT0FBTyxNQUFNLFNBQ3ZCLElBQUk7QUFFTCxpQkFBVSxRQUFPLE1BQU8sUUFBVSxRQUFXLEtBQU07QUFDbEQsZ0JBQUssV0FBWSxPQUFTO0FBQ3pCLGtCQUFPLE9BQU8sS0FBTSxTQUFTLFVBQWM7QUFDMUMsb0JBQUssS0FBSyxRQUFTO0FBQ2xCLHVCQUFNLFFBQVEsS0FBSyxRQUFTO0FBQzNCLHdCQUFLLFFBQVMsT0FBUztBQUN0Qiw2QkFBTyxNQUFNLE9BQVEsTUFBTTtBQUFBLDJCQUdyQjtBQUNOLDZCQUFPLFlBQWEsTUFBTSxNQUFNLEtBQUs7QUFBQTtBQUFBO0FBQUE7QUFPeEMscUJBQU0sU0FBUyxXQUFZO0FBQUE7QUFFNUIsa0JBQUssS0FBTSxTQUFTLFVBQVk7QUFJL0IscUJBQU0sU0FBUyxXQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9oQyxhQUFPLEdBQUcsT0FBUTtBQUFBLFFBQ2pCLFFBQVEsU0FBVSxVQUFXO0FBQzVCLGlCQUFPLE9BQVEsTUFBTSxVQUFVO0FBQUE7QUFBQSxRQUdoQyxRQUFRLFNBQVUsVUFBVztBQUM1QixpQkFBTyxPQUFRLE1BQU07QUFBQTtBQUFBLFFBR3RCLE1BQU0sU0FBVSxPQUFRO0FBQ3ZCLGlCQUFPLE9BQVEsTUFBTSxTQUFVLFFBQVE7QUFDdEMsbUJBQU8sV0FBVSxTQUNoQixPQUFPLEtBQU0sUUFDYixLQUFLLFFBQVEsS0FBTSxXQUFXO0FBQzdCLGtCQUFLLEtBQUssYUFBYSxLQUFLLEtBQUssYUFBYSxNQUFNLEtBQUssYUFBYSxHQUFJO0FBQ3pFLHFCQUFLLGNBQWM7QUFBQTtBQUFBO0FBQUEsYUFHcEIsTUFBTSxPQUFPLFVBQVU7QUFBQTtBQUFBLFFBRzNCLFFBQVEsV0FBVztBQUNsQixpQkFBTyxTQUFVLE1BQU0sV0FBVyxTQUFVLE1BQU87QUFDbEQsZ0JBQUssS0FBSyxhQUFhLEtBQUssS0FBSyxhQUFhLE1BQU0sS0FBSyxhQUFhLEdBQUk7QUFDekUsa0JBQUksU0FBUyxtQkFBb0IsTUFBTTtBQUN2QyxxQkFBTyxZQUFhO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFLdkIsU0FBUyxXQUFXO0FBQ25CLGlCQUFPLFNBQVUsTUFBTSxXQUFXLFNBQVUsTUFBTztBQUNsRCxnQkFBSyxLQUFLLGFBQWEsS0FBSyxLQUFLLGFBQWEsTUFBTSxLQUFLLGFBQWEsR0FBSTtBQUN6RSxrQkFBSSxTQUFTLG1CQUFvQixNQUFNO0FBQ3ZDLHFCQUFPLGFBQWMsTUFBTSxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFLckMsUUFBUSxXQUFXO0FBQ2xCLGlCQUFPLFNBQVUsTUFBTSxXQUFXLFNBQVUsTUFBTztBQUNsRCxnQkFBSyxLQUFLLFlBQWE7QUFDdEIsbUJBQUssV0FBVyxhQUFjLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFBQSxRQUt2QyxPQUFPLFdBQVc7QUFDakIsaUJBQU8sU0FBVSxNQUFNLFdBQVcsU0FBVSxNQUFPO0FBQ2xELGdCQUFLLEtBQUssWUFBYTtBQUN0QixtQkFBSyxXQUFXLGFBQWMsTUFBTSxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFLNUMsT0FBTyxXQUFXO0FBQ2pCLGNBQUksTUFDSCxJQUFJO0FBRUwsaUJBQVUsUUFBTyxLQUFNLE9BQVMsTUFBTSxLQUFNO0FBQzNDLGdCQUFLLEtBQUssYUFBYSxHQUFJO0FBRzFCLHFCQUFPLFVBQVcsT0FBUSxNQUFNO0FBR2hDLG1CQUFLLGNBQWM7QUFBQTtBQUFBO0FBSXJCLGlCQUFPO0FBQUE7QUFBQSxRQUdSLE9BQU8sU0FBVSxlQUFlLG1CQUFvQjtBQUNuRCwwQkFBZ0IsaUJBQWlCLE9BQU8sUUFBUTtBQUNoRCw4QkFBb0IscUJBQXFCLE9BQU8sZ0JBQWdCO0FBRWhFLGlCQUFPLEtBQUssSUFBSyxXQUFXO0FBQzNCLG1CQUFPLE9BQU8sTUFBTyxNQUFNLGVBQWU7QUFBQTtBQUFBO0FBQUEsUUFJNUMsTUFBTSxTQUFVLE9BQVE7QUFDdkIsaUJBQU8sT0FBUSxNQUFNLFNBQVUsUUFBUTtBQUN0QyxnQkFBSSxPQUFPLEtBQU0sTUFBTyxJQUN2QixJQUFJLEdBQ0osSUFBSSxLQUFLO0FBRVYsZ0JBQUssV0FBVSxVQUFhLEtBQUssYUFBYSxHQUFJO0FBQ2pELHFCQUFPLEtBQUs7QUFBQTtBQUliLGdCQUFLLE9BQU8sV0FBVSxZQUFZLENBQUMsYUFBYSxLQUFNLFdBQ3JELENBQUMsUUFBVyxVQUFTLEtBQU0sV0FBVyxDQUFFLElBQUksS0FBUSxHQUFJLGdCQUFrQjtBQUUxRSx1QkFBUSxPQUFPLGNBQWU7QUFFOUIsa0JBQUk7QUFDSCx1QkFBUSxJQUFJLEdBQUcsS0FBTTtBQUNwQix5QkFBTyxLQUFNLE1BQU87QUFHcEIsc0JBQUssS0FBSyxhQUFhLEdBQUk7QUFDMUIsMkJBQU8sVUFBVyxPQUFRLE1BQU07QUFDaEMseUJBQUssWUFBWTtBQUFBO0FBQUE7QUFJbkIsdUJBQU87QUFBQSx1QkFHRSxHQUFSO0FBQUE7QUFBQTtBQUdILGdCQUFLLE1BQU87QUFDWCxtQkFBSyxRQUFRLE9BQVE7QUFBQTtBQUFBLGFBRXBCLE1BQU0sT0FBTyxVQUFVO0FBQUE7QUFBQSxRQUczQixhQUFhLFdBQVc7QUFDdkIsY0FBSSxVQUFVO0FBR2QsaUJBQU8sU0FBVSxNQUFNLFdBQVcsU0FBVSxNQUFPO0FBQ2xELGdCQUFJLFNBQVMsS0FBSztBQUVsQixnQkFBSyxPQUFPLFFBQVMsTUFBTSxXQUFZLEdBQUk7QUFDMUMscUJBQU8sVUFBVyxPQUFRO0FBQzFCLGtCQUFLLFFBQVM7QUFDYix1QkFBTyxhQUFjLE1BQU07QUFBQTtBQUFBO0FBQUEsYUFLM0I7QUFBQTtBQUFBO0FBSUwsYUFBTyxLQUFNO0FBQUEsUUFDWixVQUFVO0FBQUEsUUFDVixXQUFXO0FBQUEsUUFDWCxjQUFjO0FBQUEsUUFDZCxhQUFhO0FBQUEsUUFDYixZQUFZO0FBQUEsU0FDVixTQUFVLE1BQU0sVUFBVztBQUM3QixlQUFPLEdBQUksUUFBUyxTQUFVLFVBQVc7QUFDeEMsY0FBSSxPQUNILE1BQU0sSUFDTixTQUFTLE9BQVEsV0FDakIsT0FBTyxPQUFPLFNBQVMsR0FDdkIsSUFBSTtBQUVMLGlCQUFRLEtBQUssTUFBTSxLQUFNO0FBQ3hCLG9CQUFRLE1BQU0sT0FBTyxPQUFPLEtBQUssTUFBTztBQUN4QyxtQkFBUSxPQUFRLElBQU8sVUFBWTtBQUluQyxpQkFBSyxNQUFPLEtBQUssTUFBTTtBQUFBO0FBR3hCLGlCQUFPLEtBQUssVUFBVztBQUFBO0FBQUE7QUFHekIsVUFBSSxZQUFZLElBQUksT0FBUSxPQUFPLE9BQU8sbUJBQW1CO0FBRTdELFVBQUksWUFBWSxTQUFVLE1BQU87QUFLL0IsWUFBSSxPQUFPLEtBQUssY0FBYztBQUU5QixZQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssUUFBUztBQUM1QixpQkFBTztBQUFBO0FBR1IsZUFBTyxLQUFLLGlCQUFrQjtBQUFBO0FBR2hDLFVBQUksT0FBTyxTQUFVLE1BQU0sU0FBUyxVQUFXO0FBQzlDLFlBQUksS0FBSyxNQUNSLE1BQU07QUFHUCxhQUFNLFFBQVEsU0FBVTtBQUN2QixjQUFLLFFBQVMsS0FBSyxNQUFPO0FBQzFCLGVBQUssTUFBTyxRQUFTLFFBQVM7QUFBQTtBQUcvQixjQUFNLFNBQVMsS0FBTTtBQUdyQixhQUFNLFFBQVEsU0FBVTtBQUN2QixlQUFLLE1BQU8sUUFBUyxJQUFLO0FBQUE7QUFHM0IsZUFBTztBQUFBO0FBSVIsVUFBSSxZQUFZLElBQUksT0FBUSxVQUFVLEtBQU0sTUFBTztBQUluRCxNQUFFLFlBQVc7QUFJWixxQ0FBNkI7QUFHNUIsY0FBSyxDQUFDLEtBQU07QUFDWDtBQUFBO0FBR0Qsb0JBQVUsTUFBTSxVQUFVO0FBRTFCLGNBQUksTUFBTSxVQUNUO0FBR0QsMEJBQWdCLFlBQWEsV0FBWSxZQUFhO0FBRXRELGNBQUksV0FBVyxRQUFPLGlCQUFrQjtBQUN4Qyw2QkFBbUIsU0FBUyxRQUFRO0FBR3BDLGtDQUF3QixtQkFBb0IsU0FBUyxnQkFBaUI7QUFJdEUsY0FBSSxNQUFNLFFBQVE7QUFDbEIsOEJBQW9CLG1CQUFvQixTQUFTLFdBQVk7QUFJN0QsaUNBQXVCLG1CQUFvQixTQUFTLFdBQVk7QUFNaEUsY0FBSSxNQUFNLFdBQVc7QUFDckIsNkJBQW1CLG1CQUFvQixJQUFJLGNBQWMsT0FBUTtBQUVqRSwwQkFBZ0IsWUFBYTtBQUk3QixnQkFBTTtBQUFBO0FBR1Asb0NBQTZCLFNBQVU7QUFDdEMsaUJBQU8sS0FBSyxNQUFPLFdBQVk7QUFBQTtBQUdoQyxZQUFJLGtCQUFrQixzQkFBc0Isa0JBQWtCLG1CQUM3RCx5QkFBeUIsdUJBQ3pCLFlBQVksVUFBUyxjQUFlLFFBQ3BDLE1BQU0sVUFBUyxjQUFlO0FBRy9CLFlBQUssQ0FBQyxJQUFJLE9BQVE7QUFDakI7QUFBQTtBQUtELFlBQUksTUFBTSxpQkFBaUI7QUFDM0IsWUFBSSxVQUFXLE1BQU8sTUFBTSxpQkFBaUI7QUFDN0MsZ0JBQVEsa0JBQWtCLElBQUksTUFBTSxtQkFBbUI7QUFFdkQsZUFBTyxPQUFRLFNBQVM7QUFBQSxVQUN2QixtQkFBbUIsV0FBVztBQUM3QjtBQUNBLG1CQUFPO0FBQUE7QUFBQSxVQUVSLGdCQUFnQixXQUFXO0FBQzFCO0FBQ0EsbUJBQU87QUFBQTtBQUFBLFVBRVIsZUFBZSxXQUFXO0FBQ3pCO0FBQ0EsbUJBQU87QUFBQTtBQUFBLFVBRVIsb0JBQW9CLFdBQVc7QUFDOUI7QUFDQSxtQkFBTztBQUFBO0FBQUEsVUFFUixlQUFlLFdBQVc7QUFDekI7QUFDQSxtQkFBTztBQUFBO0FBQUEsVUFZUixzQkFBc0IsV0FBVztBQUNoQyxnQkFBSSxPQUFPLElBQUksU0FBUztBQUN4QixnQkFBSywyQkFBMkIsTUFBTztBQUN0QyxzQkFBUSxVQUFTLGNBQWU7QUFDaEMsbUJBQUssVUFBUyxjQUFlO0FBQzdCLHdCQUFVLFVBQVMsY0FBZTtBQUVsQyxvQkFBTSxNQUFNLFVBQVU7QUFDdEIsaUJBQUcsTUFBTSxVQUFVO0FBS25CLGlCQUFHLE1BQU0sU0FBUztBQUNsQixzQkFBUSxNQUFNLFNBQVM7QUFRdkIsc0JBQVEsTUFBTSxVQUFVO0FBRXhCLDhCQUNFLFlBQWEsT0FDYixZQUFhLElBQ2IsWUFBYTtBQUVmLHdCQUFVLFFBQU8saUJBQWtCO0FBQ25DLHdDQUE0QixTQUFVLFFBQVEsUUFBUSxNQUNyRCxTQUFVLFFBQVEsZ0JBQWdCLE1BQ2xDLFNBQVUsUUFBUSxtQkFBbUIsUUFBVyxHQUFHO0FBRXBELDhCQUFnQixZQUFhO0FBQUE7QUFFOUIsbUJBQU87QUFBQTtBQUFBO0FBQUE7QUFNVixzQkFBaUIsTUFBTSxNQUFNLFVBQVc7QUFDdkMsWUFBSSxPQUFPLFVBQVUsVUFBVSxLQU05QixRQUFRLEtBQUs7QUFFZCxtQkFBVyxZQUFZLFVBQVc7QUFLbEMsWUFBSyxVQUFXO0FBQ2YsZ0JBQU0sU0FBUyxpQkFBa0IsU0FBVSxTQUFVO0FBRXJELGNBQUssUUFBUSxNQUFNLENBQUMsV0FBWSxPQUFTO0FBQ3hDLGtCQUFNLE9BQU8sTUFBTyxNQUFNO0FBQUE7QUFRM0IsY0FBSyxDQUFDLFFBQVEsb0JBQW9CLFVBQVUsS0FBTSxRQUFTLFVBQVUsS0FBTSxPQUFTO0FBR25GLG9CQUFRLE1BQU07QUFDZCx1QkFBVyxNQUFNO0FBQ2pCLHVCQUFXLE1BQU07QUFHakIsa0JBQU0sV0FBVyxNQUFNLFdBQVcsTUFBTSxRQUFRO0FBQ2hELGtCQUFNLFNBQVM7QUFHZixrQkFBTSxRQUFRO0FBQ2Qsa0JBQU0sV0FBVztBQUNqQixrQkFBTSxXQUFXO0FBQUE7QUFBQTtBQUluQixlQUFPLFFBQVEsU0FJZCxNQUFNLEtBQ047QUFBQTtBQUlGLDRCQUF1QixhQUFhLFFBQVM7QUFHNUMsZUFBTztBQUFBLFVBQ04sS0FBSyxXQUFXO0FBQ2YsZ0JBQUssZUFBZ0I7QUFJcEIscUJBQU8sS0FBSztBQUNaO0FBQUE7QUFJRCxtQkFBUyxNQUFLLE1BQU0sUUFBUyxNQUFPLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFNN0MsVUFBSSxjQUFjLENBQUUsVUFBVSxPQUFPLE9BQ3BDLGFBQWEsVUFBUyxjQUFlLE9BQVEsT0FDN0MsY0FBYztBQUdmLDhCQUF5QixNQUFPO0FBRy9CLFlBQUksVUFBVSxLQUFNLEdBQUksZ0JBQWdCLEtBQUssTUFBTyxJQUNuRCxJQUFJLFlBQVk7QUFFakIsZUFBUSxLQUFNO0FBQ2IsaUJBQU8sWUFBYSxLQUFNO0FBQzFCLGNBQUssUUFBUSxZQUFhO0FBQ3pCLG1CQUFPO0FBQUE7QUFBQTtBQUFBO0FBTVYsNkJBQXdCLE1BQU87QUFDOUIsWUFBSSxRQUFRLE9BQU8sU0FBVSxTQUFVLFlBQWE7QUFFcEQsWUFBSyxPQUFRO0FBQ1osaUJBQU87QUFBQTtBQUVSLFlBQUssUUFBUSxZQUFhO0FBQ3pCLGlCQUFPO0FBQUE7QUFFUixlQUFPLFlBQWEsUUFBUyxlQUFnQixTQUFVO0FBQUE7QUFJeEQsVUFLQyxlQUFlLDZCQUNmLGNBQWMsT0FDZCxVQUFVLEVBQUUsVUFBVSxZQUFZLFlBQVksVUFBVSxTQUFTLFdBQ2pFLHFCQUFxQjtBQUFBLFFBQ3BCLGVBQWU7QUFBQSxRQUNmLFlBQVk7QUFBQTtBQUdkLGlDQUE0QixPQUFPLE9BQU8sVUFBVztBQUlwRCxZQUFJLFVBQVUsUUFBUSxLQUFNO0FBQzVCLGVBQU8sVUFHTixLQUFLLElBQUssR0FBRyxRQUFTLEtBQVEsYUFBWSxNQUFVLFNBQVMsTUFBTyxRQUNwRTtBQUFBO0FBR0Ysa0NBQTZCLE1BQU0sV0FBVyxLQUFLLGFBQWEsUUFBUSxhQUFjO0FBQ3JGLFlBQUksSUFBSSxjQUFjLFVBQVUsSUFBSSxHQUNuQyxRQUFRLEdBQ1IsUUFBUTtBQUdULFlBQUssUUFBVSxlQUFjLFdBQVcsWUFBYztBQUNyRCxpQkFBTztBQUFBO0FBR1IsZUFBUSxJQUFJLEdBQUcsS0FBSyxHQUFJO0FBR3ZCLGNBQUssUUFBUSxVQUFXO0FBQ3ZCLHFCQUFTLE9BQU8sSUFBSyxNQUFNLE1BQU0sVUFBVyxJQUFLLE1BQU07QUFBQTtBQUl4RCxjQUFLLENBQUMsYUFBYztBQUduQixxQkFBUyxPQUFPLElBQUssTUFBTSxZQUFZLFVBQVcsSUFBSyxNQUFNO0FBRzdELGdCQUFLLFFBQVEsV0FBWTtBQUN4Qix1QkFBUyxPQUFPLElBQUssTUFBTSxXQUFXLFVBQVcsS0FBTSxTQUFTLE1BQU07QUFBQSxtQkFHaEU7QUFDTix1QkFBUyxPQUFPLElBQUssTUFBTSxXQUFXLFVBQVcsS0FBTSxTQUFTLE1BQU07QUFBQTtBQUFBLGlCQUtqRTtBQUdOLGdCQUFLLFFBQVEsV0FBWTtBQUN4Qix1QkFBUyxPQUFPLElBQUssTUFBTSxZQUFZLFVBQVcsSUFBSyxNQUFNO0FBQUE7QUFJOUQsZ0JBQUssUUFBUSxVQUFXO0FBQ3ZCLHVCQUFTLE9BQU8sSUFBSyxNQUFNLFdBQVcsVUFBVyxLQUFNLFNBQVMsTUFBTTtBQUFBO0FBQUE7QUFBQTtBQU16RSxZQUFLLENBQUMsZUFBZSxlQUFlLEdBQUk7QUFJdkMsbUJBQVMsS0FBSyxJQUFLLEdBQUcsS0FBSyxLQUMxQixLQUFNLFdBQVcsVUFBVyxHQUFJLGdCQUFnQixVQUFVLE1BQU8sTUFDakUsY0FDQSxRQUNBLFFBQ0EsU0FJTTtBQUFBO0FBR1IsZUFBTztBQUFBO0FBR1IsZ0NBQTJCLE1BQU0sV0FBVyxPQUFRO0FBR25ELFlBQUksU0FBUyxVQUFXLE9BSXZCLGtCQUFrQixDQUFDLFFBQVEsdUJBQXVCLE9BQ2xELGNBQWMsbUJBQ2IsT0FBTyxJQUFLLE1BQU0sYUFBYSxPQUFPLFlBQWEsY0FDcEQsbUJBQW1CLGFBRW5CLE1BQU0sT0FBUSxNQUFNLFdBQVcsU0FDL0IsYUFBYSxXQUFXLFVBQVcsR0FBSSxnQkFBZ0IsVUFBVSxNQUFPO0FBSXpFLFlBQUssVUFBVSxLQUFNLE1BQVE7QUFDNUIsY0FBSyxDQUFDLE9BQVE7QUFDYixtQkFBTztBQUFBO0FBRVIsZ0JBQU07QUFBQTtBQU9QLFlBQU8sRUFBQyxRQUFRLHVCQUF1QixlQU10QyxDQUFDLFFBQVEsMEJBQTBCLFNBQVUsTUFBTSxTQUluRCxRQUFRLFVBSVIsQ0FBQyxXQUFZLFFBQVMsT0FBTyxJQUFLLE1BQU0sV0FBVyxPQUFPLFlBQWEsYUFHdkUsS0FBSyxpQkFBaUIsUUFBUztBQUUvQix3QkFBYyxPQUFPLElBQUssTUFBTSxhQUFhLE9BQU8sWUFBYTtBQUtqRSw2QkFBbUIsY0FBYztBQUNqQyxjQUFLLGtCQUFtQjtBQUN2QixrQkFBTSxLQUFNO0FBQUE7QUFBQTtBQUtkLGNBQU0sV0FBWSxRQUFTO0FBRzNCLGVBQVMsTUFDUixtQkFDQyxNQUNBLFdBQ0EsU0FBVyxlQUFjLFdBQVcsWUFDcEMsa0JBQ0EsUUFHQSxPQUVFO0FBQUE7QUFHTCxhQUFPLE9BQVE7QUFBQSxRQUlkLFVBQVU7QUFBQSxVQUNULFNBQVM7QUFBQSxZQUNSLEtBQUssU0FBVSxNQUFNLFVBQVc7QUFDL0Isa0JBQUssVUFBVztBQUdmLG9CQUFJLE1BQU0sT0FBUSxNQUFNO0FBQ3hCLHVCQUFPLFFBQVEsS0FBSyxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQU85QixXQUFXO0FBQUEsVUFDViwyQkFBMkI7QUFBQSxVQUMzQixlQUFlO0FBQUEsVUFDZixlQUFlO0FBQUEsVUFDZixZQUFZO0FBQUEsVUFDWixjQUFjO0FBQUEsVUFDZCxjQUFjO0FBQUEsVUFDZCxZQUFZO0FBQUEsVUFDWixjQUFjO0FBQUEsVUFDZCxpQkFBaUI7QUFBQSxVQUNqQixtQkFBbUI7QUFBQSxVQUNuQixXQUFXO0FBQUEsVUFDWCxjQUFjO0FBQUEsVUFDZCxnQkFBZ0I7QUFBQSxVQUNoQixjQUFjO0FBQUEsVUFDZCxXQUFXO0FBQUEsVUFDWCxTQUFTO0FBQUEsVUFDVCxXQUFXO0FBQUEsVUFDWCxVQUFVO0FBQUEsVUFDVixVQUFVO0FBQUEsVUFDVixRQUFRO0FBQUE7QUFBQSxRQUtULFVBQVU7QUFBQSxRQUdWLE9BQU8sU0FBVSxNQUFNLE1BQU0sT0FBTyxPQUFRO0FBRzNDLGNBQUssQ0FBQyxRQUFRLEtBQUssYUFBYSxLQUFLLEtBQUssYUFBYSxLQUFLLENBQUMsS0FBSyxPQUFRO0FBQ3pFO0FBQUE7QUFJRCxjQUFJLEtBQUssTUFBTSxPQUNkLFdBQVcsVUFBVyxPQUN0QixlQUFlLFlBQVksS0FBTSxPQUNqQyxRQUFRLEtBQUs7QUFLZCxjQUFLLENBQUMsY0FBZTtBQUNwQixtQkFBTyxjQUFlO0FBQUE7QUFJdkIsa0JBQVEsT0FBTyxTQUFVLFNBQVUsT0FBTyxTQUFVO0FBR3BELGNBQUssVUFBVSxRQUFZO0FBQzFCLG1CQUFPLE9BQU87QUFHZCxnQkFBSyxTQUFTLFlBQWMsT0FBTSxRQUFRLEtBQU0sV0FBYSxJQUFLLElBQU07QUFDdkUsc0JBQVEsVUFBVyxNQUFNLE1BQU07QUFHL0IscUJBQU87QUFBQTtBQUlSLGdCQUFLLFNBQVMsUUFBUSxVQUFVLE9BQVE7QUFDdkM7QUFBQTtBQU1ELGdCQUFLLFNBQVMsWUFBWSxDQUFDLGNBQWU7QUFDekMsdUJBQVMsT0FBTyxJQUFLLE1BQVMsUUFBTyxVQUFXLFlBQWEsS0FBSztBQUFBO0FBSW5FLGdCQUFLLENBQUMsUUFBUSxtQkFBbUIsVUFBVSxNQUFNLEtBQUssUUFBUyxrQkFBbUIsR0FBSTtBQUNyRixvQkFBTyxRQUFTO0FBQUE7QUFJakIsZ0JBQUssQ0FBQyxTQUFTLENBQUcsVUFBUyxVQUN4QixTQUFRLE1BQU0sSUFBSyxNQUFNLE9BQU8sWUFBYyxRQUFZO0FBRTVELGtCQUFLLGNBQWU7QUFDbkIsc0JBQU0sWUFBYSxNQUFNO0FBQUEscUJBQ25CO0FBQ04sc0JBQU8sUUFBUztBQUFBO0FBQUE7QUFBQSxpQkFJWjtBQUdOLGdCQUFLLFNBQVMsU0FBUyxTQUNwQixPQUFNLE1BQU0sSUFBSyxNQUFNLE9BQU8sWUFBYyxRQUFZO0FBRTFELHFCQUFPO0FBQUE7QUFJUixtQkFBTyxNQUFPO0FBQUE7QUFBQTtBQUFBLFFBSWhCLEtBQUssU0FBVSxNQUFNLE1BQU0sT0FBTyxRQUFTO0FBQzFDLGNBQUksS0FBSyxLQUFLLE9BQ2IsV0FBVyxVQUFXLE9BQ3RCLGVBQWUsWUFBWSxLQUFNO0FBS2xDLGNBQUssQ0FBQyxjQUFlO0FBQ3BCLG1CQUFPLGNBQWU7QUFBQTtBQUl2QixrQkFBUSxPQUFPLFNBQVUsU0FBVSxPQUFPLFNBQVU7QUFHcEQsY0FBSyxTQUFTLFNBQVMsT0FBUTtBQUM5QixrQkFBTSxNQUFNLElBQUssTUFBTSxNQUFNO0FBQUE7QUFJOUIsY0FBSyxRQUFRLFFBQVk7QUFDeEIsa0JBQU0sT0FBUSxNQUFNLE1BQU07QUFBQTtBQUkzQixjQUFLLFFBQVEsWUFBWSxRQUFRLG9CQUFxQjtBQUNyRCxrQkFBTSxtQkFBb0I7QUFBQTtBQUkzQixjQUFLLFVBQVUsTUFBTSxPQUFRO0FBQzVCLGtCQUFNLFdBQVk7QUFDbEIsbUJBQU8sVUFBVSxRQUFRLFNBQVUsT0FBUSxPQUFPLElBQUk7QUFBQTtBQUd2RCxpQkFBTztBQUFBO0FBQUE7QUFJVCxhQUFPLEtBQU0sQ0FBRSxVQUFVLFVBQVcsU0FBVSxJQUFJLFdBQVk7QUFDN0QsZUFBTyxTQUFVLGFBQWM7QUFBQSxVQUM5QixLQUFLLFNBQVUsTUFBTSxVQUFVLE9BQVE7QUFDdEMsZ0JBQUssVUFBVztBQUlmLHFCQUFPLGFBQWEsS0FBTSxPQUFPLElBQUssTUFBTSxlQVF6QyxFQUFDLEtBQUssaUJBQWlCLFVBQVUsQ0FBQyxLQUFLLHdCQUF3QixTQUNqRSxLQUFNLE1BQU0sU0FBUyxXQUFXO0FBQy9CLHVCQUFPLGlCQUFrQixNQUFNLFdBQVc7QUFBQSxtQkFFM0MsaUJBQWtCLE1BQU0sV0FBVztBQUFBO0FBQUE7QUFBQSxVQUl0QyxLQUFLLFNBQVUsTUFBTSxPQUFPLE9BQVE7QUFDbkMsZ0JBQUksU0FDSCxTQUFTLFVBQVcsT0FJcEIscUJBQXFCLENBQUMsUUFBUSxtQkFDN0IsT0FBTyxhQUFhLFlBR3JCLGtCQUFrQixzQkFBc0IsT0FDeEMsY0FBYyxtQkFDYixPQUFPLElBQUssTUFBTSxhQUFhLE9BQU8sWUFBYSxjQUNwRCxXQUFXLFFBQ1YsbUJBQ0MsTUFDQSxXQUNBLE9BQ0EsYUFDQSxVQUVEO0FBSUYsZ0JBQUssZUFBZSxvQkFBcUI7QUFDeEMsMEJBQVksS0FBSyxLQUNoQixLQUFNLFdBQVcsVUFBVyxHQUFJLGdCQUFnQixVQUFVLE1BQU8sTUFDakUsV0FBWSxPQUFRLGNBQ3BCLG1CQUFvQixNQUFNLFdBQVcsVUFBVSxPQUFPLFVBQ3REO0FBQUE7QUFLRixnQkFBSyxZQUFjLFdBQVUsUUFBUSxLQUFNLFdBQ3hDLFNBQVMsTUFBTyxVQUFXLE1BQU87QUFFcEMsbUJBQUssTUFBTyxhQUFjO0FBQzFCLHNCQUFRLE9BQU8sSUFBSyxNQUFNO0FBQUE7QUFHM0IsbUJBQU8sa0JBQW1CLE1BQU0sT0FBTztBQUFBO0FBQUE7QUFBQTtBQUsxQyxhQUFPLFNBQVMsYUFBYSxhQUFjLFFBQVEsb0JBQ2xELFNBQVUsTUFBTSxVQUFXO0FBQzFCLFlBQUssVUFBVztBQUNmLGlCQUFTLFlBQVksT0FBUSxNQUFNLGtCQUNsQyxLQUFLLHdCQUF3QixPQUM1QixLQUFNLE1BQU0sRUFBRSxZQUFZLEtBQUssV0FBVztBQUN6QyxtQkFBTyxLQUFLLHdCQUF3QjtBQUFBLGdCQUVuQztBQUFBO0FBQUE7QUFNUCxhQUFPLEtBQU07QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxRQUNULFFBQVE7QUFBQSxTQUNOLFNBQVUsUUFBUSxRQUFTO0FBQzdCLGVBQU8sU0FBVSxTQUFTLFVBQVc7QUFBQSxVQUNwQyxRQUFRLFNBQVUsT0FBUTtBQUN6QixnQkFBSSxJQUFJLEdBQ1AsV0FBVyxJQUdYLFFBQVEsT0FBTyxVQUFVLFdBQVcsTUFBTSxNQUFPLE9BQVEsQ0FBRTtBQUU1RCxtQkFBUSxJQUFJLEdBQUcsS0FBTTtBQUNwQix1QkFBVSxTQUFTLFVBQVcsS0FBTSxVQUNuQyxNQUFPLE1BQU8sTUFBTyxJQUFJLE1BQU8sTUFBTztBQUFBO0FBR3pDLG1CQUFPO0FBQUE7QUFBQTtBQUlULFlBQUssV0FBVyxVQUFXO0FBQzFCLGlCQUFPLFNBQVUsU0FBUyxRQUFTLE1BQU07QUFBQTtBQUFBO0FBSTNDLGFBQU8sR0FBRyxPQUFRO0FBQUEsUUFDakIsS0FBSyxTQUFVLE1BQU0sT0FBUTtBQUM1QixpQkFBTyxPQUFRLE1BQU0sU0FBVSxNQUFNLE9BQU0sUUFBUTtBQUNsRCxnQkFBSSxRQUFRLEtBQ1gsTUFBTSxJQUNOLElBQUk7QUFFTCxnQkFBSyxNQUFNLFFBQVMsUUFBUztBQUM1Qix1QkFBUyxVQUFXO0FBQ3BCLG9CQUFNLE1BQUs7QUFFWCxxQkFBUSxJQUFJLEtBQUssS0FBTTtBQUN0QixvQkFBSyxNQUFNLE1BQVEsT0FBTyxJQUFLLE1BQU0sTUFBTSxJQUFLLE9BQU87QUFBQTtBQUd4RCxxQkFBTztBQUFBO0FBR1IsbUJBQU8sV0FBVSxTQUNoQixPQUFPLE1BQU8sTUFBTSxPQUFNLFVBQzFCLE9BQU8sSUFBSyxNQUFNO0FBQUEsYUFDakIsTUFBTSxPQUFPLFVBQVUsU0FBUztBQUFBO0FBQUE7QUFLckMscUJBQWdCLE1BQU0sU0FBUyxNQUFNLEtBQUssUUFBUztBQUNsRCxlQUFPLElBQUksTUFBTSxVQUFVLEtBQU0sTUFBTSxTQUFTLE1BQU0sS0FBSztBQUFBO0FBRTVELGFBQU8sUUFBUTtBQUVmLFlBQU0sWUFBWTtBQUFBLFFBQ2pCLGFBQWE7QUFBQSxRQUNiLE1BQU0sU0FBVSxNQUFNLFNBQVMsTUFBTSxLQUFLLFFBQVEsTUFBTztBQUN4RCxlQUFLLE9BQU87QUFDWixlQUFLLE9BQU87QUFDWixlQUFLLFNBQVMsVUFBVSxPQUFPLE9BQU87QUFDdEMsZUFBSyxVQUFVO0FBQ2YsZUFBSyxRQUFRLEtBQUssTUFBTSxLQUFLO0FBQzdCLGVBQUssTUFBTTtBQUNYLGVBQUssT0FBTyxRQUFVLFFBQU8sVUFBVyxRQUFTLEtBQUs7QUFBQTtBQUFBLFFBRXZELEtBQUssV0FBVztBQUNmLGNBQUksUUFBUSxNQUFNLFVBQVcsS0FBSztBQUVsQyxpQkFBTyxTQUFTLE1BQU0sTUFDckIsTUFBTSxJQUFLLFFBQ1gsTUFBTSxVQUFVLFNBQVMsSUFBSztBQUFBO0FBQUEsUUFFaEMsS0FBSyxTQUFVLFNBQVU7QUFDeEIsY0FBSSxPQUNILFFBQVEsTUFBTSxVQUFXLEtBQUs7QUFFL0IsY0FBSyxLQUFLLFFBQVEsVUFBVztBQUM1QixpQkFBSyxNQUFNLFFBQVEsT0FBTyxPQUFRLEtBQUssUUFDdEMsU0FBUyxLQUFLLFFBQVEsV0FBVyxTQUFTLEdBQUcsR0FBRyxLQUFLLFFBQVE7QUFBQSxpQkFFeEQ7QUFDTixpQkFBSyxNQUFNLFFBQVE7QUFBQTtBQUVwQixlQUFLLE1BQVEsTUFBSyxNQUFNLEtBQUssU0FBVSxRQUFRLEtBQUs7QUFFcEQsY0FBSyxLQUFLLFFBQVEsTUFBTztBQUN4QixpQkFBSyxRQUFRLEtBQUssS0FBTSxLQUFLLE1BQU0sS0FBSyxLQUFLO0FBQUE7QUFHOUMsY0FBSyxTQUFTLE1BQU0sS0FBTTtBQUN6QixrQkFBTSxJQUFLO0FBQUEsaUJBQ0w7QUFDTixrQkFBTSxVQUFVLFNBQVMsSUFBSztBQUFBO0FBRS9CLGlCQUFPO0FBQUE7QUFBQTtBQUlULFlBQU0sVUFBVSxLQUFLLFlBQVksTUFBTTtBQUV2QyxZQUFNLFlBQVk7QUFBQSxRQUNqQixVQUFVO0FBQUEsVUFDVCxLQUFLLFNBQVUsT0FBUTtBQUN0QixnQkFBSTtBQUlKLGdCQUFLLE1BQU0sS0FBSyxhQUFhLEtBQzVCLE1BQU0sS0FBTSxNQUFNLFNBQVUsUUFBUSxNQUFNLEtBQUssTUFBTyxNQUFNLFNBQVUsTUFBTztBQUM3RSxxQkFBTyxNQUFNLEtBQU0sTUFBTTtBQUFBO0FBTzFCLHFCQUFTLE9BQU8sSUFBSyxNQUFNLE1BQU0sTUFBTSxNQUFNO0FBRzdDLG1CQUFPLENBQUMsVUFBVSxXQUFXLFNBQVMsSUFBSTtBQUFBO0FBQUEsVUFFM0MsS0FBSyxTQUFVLE9BQVE7QUFLdEIsZ0JBQUssT0FBTyxHQUFHLEtBQU0sTUFBTSxPQUFTO0FBQ25DLHFCQUFPLEdBQUcsS0FBTSxNQUFNLE1BQVE7QUFBQSx1QkFDbkIsTUFBTSxLQUFLLGFBQWEsS0FDbkMsUUFBTyxTQUFVLE1BQU0sU0FDdEIsTUFBTSxLQUFLLE1BQU8sY0FBZSxNQUFNLFVBQVksT0FBUztBQUM3RCxxQkFBTyxNQUFPLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU07QUFBQSxtQkFDbEQ7QUFDTixvQkFBTSxLQUFNLE1BQU0sUUFBUyxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRckMsWUFBTSxVQUFVLFlBQVksTUFBTSxVQUFVLGFBQWE7QUFBQSxRQUN4RCxLQUFLLFNBQVUsT0FBUTtBQUN0QixjQUFLLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFhO0FBQ25ELGtCQUFNLEtBQU0sTUFBTSxRQUFTLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFLcEMsYUFBTyxTQUFTO0FBQUEsUUFDZixRQUFRLFNBQVUsR0FBSTtBQUNyQixpQkFBTztBQUFBO0FBQUEsUUFFUixPQUFPLFNBQVUsR0FBSTtBQUNwQixpQkFBTyxNQUFNLEtBQUssSUFBSyxJQUFJLEtBQUssTUFBTztBQUFBO0FBQUEsUUFFeEMsVUFBVTtBQUFBO0FBR1gsYUFBTyxLQUFLLE1BQU0sVUFBVTtBQUc1QixhQUFPLEdBQUcsT0FBTztBQUtqQixVQUNDLE9BQU8sWUFDUCxXQUFXLDBCQUNYLE9BQU87QUFFUiwwQkFBb0I7QUFDbkIsWUFBSyxZQUFhO0FBQ2pCLGNBQUssVUFBUyxXQUFXLFNBQVMsUUFBTyx1QkFBd0I7QUFDaEUsb0JBQU8sc0JBQXVCO0FBQUEsaUJBQ3hCO0FBQ04sb0JBQU8sV0FBWSxVQUFVLE9BQU8sR0FBRztBQUFBO0FBR3hDLGlCQUFPLEdBQUc7QUFBQTtBQUFBO0FBS1osNkJBQXVCO0FBQ3RCLGdCQUFPLFdBQVksV0FBVztBQUM3QixrQkFBUTtBQUFBO0FBRVQsZUFBUyxRQUFRLEtBQUs7QUFBQTtBQUl2QixxQkFBZ0IsTUFBTSxjQUFlO0FBQ3BDLFlBQUksT0FDSCxJQUFJLEdBQ0osUUFBUSxFQUFFLFFBQVE7QUFJbkIsdUJBQWUsZUFBZSxJQUFJO0FBQ2xDLGVBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxjQUFlO0FBQ3RDLGtCQUFRLFVBQVc7QUFDbkIsZ0JBQU8sV0FBVyxTQUFVLE1BQU8sWUFBWSxTQUFVO0FBQUE7QUFHMUQsWUFBSyxjQUFlO0FBQ25CLGdCQUFNLFVBQVUsTUFBTSxRQUFRO0FBQUE7QUFHL0IsZUFBTztBQUFBO0FBR1IsMkJBQXNCLE9BQU8sTUFBTSxXQUFZO0FBQzlDLFlBQUksT0FDSCxhQUFlLFdBQVUsU0FBVSxTQUFVLElBQUssT0FBUSxVQUFVLFNBQVUsT0FDOUUsUUFBUSxHQUNSLFNBQVMsV0FBVztBQUNyQixlQUFRLFFBQVEsUUFBUSxTQUFVO0FBQ2pDLGNBQU8sUUFBUSxXQUFZLE9BQVEsS0FBTSxXQUFXLE1BQU0sUUFBWTtBQUdyRSxtQkFBTztBQUFBO0FBQUE7QUFBQTtBQUtWLGdDQUEyQixNQUFNLE9BQU8sTUFBTztBQUM5QyxZQUFJLE1BQU0sT0FBTyxRQUFRLE9BQU8sU0FBUyxXQUFXLGdCQUFnQixTQUNuRSxRQUFRLFdBQVcsU0FBUyxZQUFZLE9BQ3hDLE9BQU8sTUFDUCxPQUFPLElBQ1AsUUFBUSxLQUFLLE9BQ2IsU0FBUyxLQUFLLFlBQVksbUJBQW9CLE9BQzlDLFdBQVcsU0FBUyxJQUFLLE1BQU07QUFHaEMsWUFBSyxDQUFDLEtBQUssT0FBUTtBQUNsQixrQkFBUSxPQUFPLFlBQWEsTUFBTTtBQUNsQyxjQUFLLE1BQU0sWUFBWSxNQUFPO0FBQzdCLGtCQUFNLFdBQVc7QUFDakIsc0JBQVUsTUFBTSxNQUFNO0FBQ3RCLGtCQUFNLE1BQU0sT0FBTyxXQUFXO0FBQzdCLGtCQUFLLENBQUMsTUFBTSxVQUFXO0FBQ3RCO0FBQUE7QUFBQTtBQUFBO0FBSUgsZ0JBQU07QUFFTixlQUFLLE9BQVEsV0FBVztBQUd2QixpQkFBSyxPQUFRLFdBQVc7QUFDdkIsb0JBQU07QUFDTixrQkFBSyxDQUFDLE9BQU8sTUFBTyxNQUFNLE1BQU8sUUFBUztBQUN6QyxzQkFBTSxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPaEIsYUFBTSxRQUFRLE9BQVE7QUFDckIsa0JBQVEsTUFBTztBQUNmLGNBQUssU0FBUyxLQUFNLFFBQVU7QUFDN0IsbUJBQU8sTUFBTztBQUNkLHFCQUFTLFVBQVUsVUFBVTtBQUM3QixnQkFBSyxVQUFZLFVBQVMsU0FBUyxTQUFXO0FBSTdDLGtCQUFLLFVBQVUsVUFBVSxZQUFZLFNBQVUsVUFBVyxRQUFZO0FBQ3JFLHlCQUFTO0FBQUEscUJBR0g7QUFDTjtBQUFBO0FBQUE7QUFHRixpQkFBTSxRQUFTLFlBQVksU0FBVSxTQUFVLE9BQU8sTUFBTyxNQUFNO0FBQUE7QUFBQTtBQUtyRSxvQkFBWSxDQUFDLE9BQU8sY0FBZTtBQUNuQyxZQUFLLENBQUMsYUFBYSxPQUFPLGNBQWUsT0FBUztBQUNqRDtBQUFBO0FBSUQsWUFBSyxTQUFTLEtBQUssYUFBYSxHQUFJO0FBTW5DLGVBQUssV0FBVyxDQUFFLE1BQU0sVUFBVSxNQUFNLFdBQVcsTUFBTTtBQUd6RCwyQkFBaUIsWUFBWSxTQUFTO0FBQ3RDLGNBQUssa0JBQWtCLE1BQU87QUFDN0IsNkJBQWlCLFNBQVMsSUFBSyxNQUFNO0FBQUE7QUFFdEMsb0JBQVUsT0FBTyxJQUFLLE1BQU07QUFDNUIsY0FBSyxZQUFZLFFBQVM7QUFDekIsZ0JBQUssZ0JBQWlCO0FBQ3JCLHdCQUFVO0FBQUEsbUJBQ0o7QUFHTix1QkFBVSxDQUFFLE9BQVE7QUFDcEIsK0JBQWlCLEtBQUssTUFBTSxXQUFXO0FBQ3ZDLHdCQUFVLE9BQU8sSUFBSyxNQUFNO0FBQzVCLHVCQUFVLENBQUU7QUFBQTtBQUFBO0FBS2QsY0FBSyxZQUFZLFlBQVksWUFBWSxrQkFBa0Isa0JBQWtCLE1BQU87QUFDbkYsZ0JBQUssT0FBTyxJQUFLLE1BQU0sYUFBYyxRQUFTO0FBRzdDLGtCQUFLLENBQUMsV0FBWTtBQUNqQixxQkFBSyxLQUFNLFdBQVc7QUFDckIsd0JBQU0sVUFBVTtBQUFBO0FBRWpCLG9CQUFLLGtCQUFrQixNQUFPO0FBQzdCLDRCQUFVLE1BQU07QUFDaEIsbUNBQWlCLFlBQVksU0FBUyxLQUFLO0FBQUE7QUFBQTtBQUc3QyxvQkFBTSxVQUFVO0FBQUE7QUFBQTtBQUFBO0FBS25CLFlBQUssS0FBSyxVQUFXO0FBQ3BCLGdCQUFNLFdBQVc7QUFDakIsZUFBSyxPQUFRLFdBQVc7QUFDdkIsa0JBQU0sV0FBVyxLQUFLLFNBQVU7QUFDaEMsa0JBQU0sWUFBWSxLQUFLLFNBQVU7QUFDakMsa0JBQU0sWUFBWSxLQUFLLFNBQVU7QUFBQTtBQUFBO0FBS25DLG9CQUFZO0FBQ1osYUFBTSxRQUFRLE1BQU87QUFHcEIsY0FBSyxDQUFDLFdBQVk7QUFDakIsZ0JBQUssVUFBVztBQUNmLGtCQUFLLFlBQVksVUFBVztBQUMzQix5QkFBUyxTQUFTO0FBQUE7QUFBQSxtQkFFYjtBQUNOLHlCQUFXLFNBQVMsT0FBUSxNQUFNLFVBQVUsRUFBRSxTQUFTO0FBQUE7QUFJeEQsZ0JBQUssUUFBUztBQUNiLHVCQUFTLFNBQVMsQ0FBQztBQUFBO0FBSXBCLGdCQUFLLFFBQVM7QUFDYix1QkFBVSxDQUFFLE9BQVE7QUFBQTtBQUtyQixpQkFBSyxLQUFNLFdBQVc7QUFLckIsa0JBQUssQ0FBQyxRQUFTO0FBQ2QseUJBQVUsQ0FBRTtBQUFBO0FBRWIsdUJBQVMsT0FBUSxNQUFNO0FBQ3ZCLG1CQUFNLFFBQVEsTUFBTztBQUNwQix1QkFBTyxNQUFPLE1BQU0sTUFBTSxLQUFNO0FBQUE7QUFBQTtBQUFBO0FBTW5DLHNCQUFZLFlBQWEsU0FBUyxTQUFVLFFBQVMsR0FBRyxNQUFNO0FBQzlELGNBQUssQ0FBRyxTQUFRLFdBQWE7QUFDNUIscUJBQVUsUUFBUyxVQUFVO0FBQzdCLGdCQUFLLFFBQVM7QUFDYix3QkFBVSxNQUFNLFVBQVU7QUFDMUIsd0JBQVUsUUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTXRCLDBCQUFxQixPQUFPLGVBQWdCO0FBQzNDLFlBQUksT0FBTyxNQUFNLFFBQVEsT0FBTztBQUdoQyxhQUFNLFNBQVMsT0FBUTtBQUN0QixpQkFBTyxVQUFXO0FBQ2xCLG1CQUFTLGNBQWU7QUFDeEIsa0JBQVEsTUFBTztBQUNmLGNBQUssTUFBTSxRQUFTLFFBQVU7QUFDN0IscUJBQVMsTUFBTztBQUNoQixvQkFBUSxNQUFPLFNBQVUsTUFBTztBQUFBO0FBR2pDLGNBQUssVUFBVSxNQUFPO0FBQ3JCLGtCQUFPLFFBQVM7QUFDaEIsbUJBQU8sTUFBTztBQUFBO0FBR2Ysa0JBQVEsT0FBTyxTQUFVO0FBQ3pCLGNBQUssU0FBUyxZQUFZLE9BQVE7QUFDakMsb0JBQVEsTUFBTSxPQUFRO0FBQ3RCLG1CQUFPLE1BQU87QUFJZCxpQkFBTSxTQUFTLE9BQVE7QUFDdEIsa0JBQUssQ0FBRyxVQUFTLFFBQVU7QUFDMUIsc0JBQU8sU0FBVSxNQUFPO0FBQ3hCLDhCQUFlLFNBQVU7QUFBQTtBQUFBO0FBQUEsaUJBR3JCO0FBQ04sMEJBQWUsUUFBUztBQUFBO0FBQUE7QUFBQTtBQUszQix5QkFBb0IsTUFBTSxZQUFZLFNBQVU7QUFDL0MsWUFBSSxRQUNILFNBQ0EsUUFBUSxHQUNSLFNBQVMsVUFBVSxXQUFXLFFBQzlCLFdBQVcsT0FBTyxXQUFXLE9BQVEsV0FBVztBQUcvQyxpQkFBTyxLQUFLO0FBQUEsWUFFYixPQUFPLFdBQVc7QUFDakIsY0FBSyxTQUFVO0FBQ2QsbUJBQU87QUFBQTtBQUVSLGNBQUksY0FBYyxTQUFTLGVBQzFCLFlBQVksS0FBSyxJQUFLLEdBQUcsVUFBVSxZQUFZLFVBQVUsV0FBVyxjQUlwRSxPQUFPLFlBQVksVUFBVSxZQUFZLEdBQ3pDLFVBQVUsSUFBSSxNQUNkLFNBQVEsR0FDUixVQUFTLFVBQVUsT0FBTztBQUUzQixpQkFBUSxTQUFRLFNBQVEsVUFBVTtBQUNqQyxzQkFBVSxPQUFRLFFBQVEsSUFBSztBQUFBO0FBR2hDLG1CQUFTLFdBQVksTUFBTSxDQUFFLFdBQVcsU0FBUztBQUdqRCxjQUFLLFVBQVUsS0FBSyxTQUFTO0FBQzVCLG1CQUFPO0FBQUE7QUFJUixjQUFLLENBQUMsU0FBUztBQUNkLHFCQUFTLFdBQVksTUFBTSxDQUFFLFdBQVcsR0FBRztBQUFBO0FBSTVDLG1CQUFTLFlBQWEsTUFBTSxDQUFFO0FBQzlCLGlCQUFPO0FBQUEsV0FFUixZQUFZLFNBQVMsUUFBUztBQUFBLFVBQzdCO0FBQUEsVUFDQSxPQUFPLE9BQU8sT0FBUSxJQUFJO0FBQUEsVUFDMUIsTUFBTSxPQUFPLE9BQVEsTUFBTTtBQUFBLFlBQzFCLGVBQWU7QUFBQSxZQUNmLFFBQVEsT0FBTyxPQUFPO0FBQUEsYUFDcEI7QUFBQSxVQUNILG9CQUFvQjtBQUFBLFVBQ3BCLGlCQUFpQjtBQUFBLFVBQ2pCLFdBQVcsU0FBUztBQUFBLFVBQ3BCLFVBQVUsUUFBUTtBQUFBLFVBQ2xCLFFBQVE7QUFBQSxVQUNSLGFBQWEsU0FBVSxNQUFNLEtBQU07QUFDbEMsZ0JBQUksUUFBUSxPQUFPLE1BQU8sTUFBTSxVQUFVLE1BQU0sTUFBTSxLQUNyRCxVQUFVLEtBQUssY0FBZSxTQUFVLFVBQVUsS0FBSztBQUN4RCxzQkFBVSxPQUFPLEtBQU07QUFDdkIsbUJBQU87QUFBQTtBQUFBLFVBRVIsTUFBTSxTQUFVLFNBQVU7QUFDekIsZ0JBQUksU0FBUSxHQUlYLFVBQVMsVUFBVSxVQUFVLE9BQU8sU0FBUztBQUM5QyxnQkFBSyxTQUFVO0FBQ2QscUJBQU87QUFBQTtBQUVSLHNCQUFVO0FBQ1YsbUJBQVEsU0FBUSxTQUFRLFVBQVU7QUFDakMsd0JBQVUsT0FBUSxRQUFRLElBQUs7QUFBQTtBQUloQyxnQkFBSyxTQUFVO0FBQ2QsdUJBQVMsV0FBWSxNQUFNLENBQUUsV0FBVyxHQUFHO0FBQzNDLHVCQUFTLFlBQWEsTUFBTSxDQUFFLFdBQVc7QUFBQSxtQkFDbkM7QUFDTix1QkFBUyxXQUFZLE1BQU0sQ0FBRSxXQUFXO0FBQUE7QUFFekMsbUJBQU87QUFBQTtBQUFBLFlBR1QsUUFBUSxVQUFVO0FBRW5CLG1CQUFZLE9BQU8sVUFBVSxLQUFLO0FBRWxDLGVBQVEsUUFBUSxRQUFRLFNBQVU7QUFDakMsbUJBQVMsVUFBVSxXQUFZLE9BQVEsS0FBTSxXQUFXLE1BQU0sT0FBTyxVQUFVO0FBQy9FLGNBQUssUUFBUztBQUNiLGdCQUFLLFdBQVksT0FBTyxPQUFTO0FBQ2hDLHFCQUFPLFlBQWEsVUFBVSxNQUFNLFVBQVUsS0FBSyxPQUFRLE9BQzFELE9BQU8sS0FBSyxLQUFNO0FBQUE7QUFFcEIsbUJBQU87QUFBQTtBQUFBO0FBSVQsZUFBTyxJQUFLLE9BQU8sYUFBYTtBQUVoQyxZQUFLLFdBQVksVUFBVSxLQUFLLFFBQVU7QUFDekMsb0JBQVUsS0FBSyxNQUFNLEtBQU0sTUFBTTtBQUFBO0FBSWxDLGtCQUNFLFNBQVUsVUFBVSxLQUFLLFVBQ3pCLEtBQU0sVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLFVBQzFDLEtBQU0sVUFBVSxLQUFLLE1BQ3JCLE9BQVEsVUFBVSxLQUFLO0FBRXpCLGVBQU8sR0FBRyxNQUNULE9BQU8sT0FBUSxNQUFNO0FBQUEsVUFDcEI7QUFBQSxVQUNBLE1BQU07QUFBQSxVQUNOLE9BQU8sVUFBVSxLQUFLO0FBQUE7QUFJeEIsZUFBTztBQUFBO0FBR1IsYUFBTyxZQUFZLE9BQU8sT0FBUSxXQUFXO0FBQUEsUUFFNUMsVUFBVTtBQUFBLFVBQ1QsS0FBSyxDQUFFLFNBQVUsTUFBTSxPQUFRO0FBQzlCLGdCQUFJLFFBQVEsS0FBSyxZQUFhLE1BQU07QUFDcEMsc0JBQVcsTUFBTSxNQUFNLE1BQU0sUUFBUSxLQUFNLFFBQVM7QUFDcEQsbUJBQU87QUFBQTtBQUFBO0FBQUEsUUFJVCxTQUFTLFNBQVUsT0FBTyxVQUFXO0FBQ3BDLGNBQUssV0FBWSxRQUFVO0FBQzFCLHVCQUFXO0FBQ1gsb0JBQVEsQ0FBRTtBQUFBLGlCQUNKO0FBQ04sb0JBQVEsTUFBTSxNQUFPO0FBQUE7QUFHdEIsY0FBSSxNQUNILFFBQVEsR0FDUixTQUFTLE1BQU07QUFFaEIsaUJBQVEsUUFBUSxRQUFRLFNBQVU7QUFDakMsbUJBQU8sTUFBTztBQUNkLHNCQUFVLFNBQVUsUUFBUyxVQUFVLFNBQVUsU0FBVTtBQUMzRCxzQkFBVSxTQUFVLE1BQU8sUUFBUztBQUFBO0FBQUE7QUFBQSxRQUl0QyxZQUFZLENBQUU7QUFBQSxRQUVkLFdBQVcsU0FBVSxVQUFVLFNBQVU7QUFDeEMsY0FBSyxTQUFVO0FBQ2Qsc0JBQVUsV0FBVyxRQUFTO0FBQUEsaUJBQ3hCO0FBQ04sc0JBQVUsV0FBVyxLQUFNO0FBQUE7QUFBQTtBQUFBO0FBSzlCLGFBQU8sUUFBUSxTQUFVLE9BQU8sUUFBUSxJQUFLO0FBQzVDLFlBQUksTUFBTSxTQUFTLE9BQU8sVUFBVSxXQUFXLE9BQU8sT0FBUSxJQUFJLFNBQVU7QUFBQSxVQUMzRSxVQUFVLE1BQU0sQ0FBQyxNQUFNLFVBQ3RCLFdBQVksVUFBVztBQUFBLFVBQ3hCLFVBQVU7QUFBQSxVQUNWLFFBQVEsTUFBTSxVQUFVLFVBQVUsQ0FBQyxXQUFZLFdBQVk7QUFBQTtBQUk1RCxZQUFLLE9BQU8sR0FBRyxLQUFNO0FBQ3BCLGNBQUksV0FBVztBQUFBLGVBRVQ7QUFDTixjQUFLLE9BQU8sSUFBSSxhQUFhLFVBQVc7QUFDdkMsZ0JBQUssSUFBSSxZQUFZLE9BQU8sR0FBRyxRQUFTO0FBQ3ZDLGtCQUFJLFdBQVcsT0FBTyxHQUFHLE9BQVEsSUFBSTtBQUFBLG1CQUUvQjtBQUNOLGtCQUFJLFdBQVcsT0FBTyxHQUFHLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFNbkMsWUFBSyxJQUFJLFNBQVMsUUFBUSxJQUFJLFVBQVUsTUFBTztBQUM5QyxjQUFJLFFBQVE7QUFBQTtBQUliLFlBQUksTUFBTSxJQUFJO0FBRWQsWUFBSSxXQUFXLFdBQVc7QUFDekIsY0FBSyxXQUFZLElBQUksTUFBUTtBQUM1QixnQkFBSSxJQUFJLEtBQU07QUFBQTtBQUdmLGNBQUssSUFBSSxPQUFRO0FBQ2hCLG1CQUFPLFFBQVMsTUFBTSxJQUFJO0FBQUE7QUFBQTtBQUk1QixlQUFPO0FBQUE7QUFHUixhQUFPLEdBQUcsT0FBUTtBQUFBLFFBQ2pCLFFBQVEsU0FBVSxPQUFPLElBQUksUUFBUSxVQUFXO0FBRy9DLGlCQUFPLEtBQUssT0FBUSxvQkFBcUIsSUFBSyxXQUFXLEdBQUksT0FHM0QsTUFBTSxRQUFTLEVBQUUsU0FBUyxNQUFNLE9BQU8sUUFBUTtBQUFBO0FBQUEsUUFFbEQsU0FBUyxTQUFVLE1BQU0sT0FBTyxRQUFRLFVBQVc7QUFDbEQsY0FBSSxRQUFRLE9BQU8sY0FBZSxPQUNqQyxTQUFTLE9BQU8sTUFBTyxPQUFPLFFBQVEsV0FDdEMsY0FBYyxXQUFXO0FBR3hCLGdCQUFJLE9BQU8sVUFBVyxNQUFNLE9BQU8sT0FBUSxJQUFJLE9BQVE7QUFHdkQsZ0JBQUssU0FBUyxTQUFTLElBQUssTUFBTSxXQUFhO0FBQzlDLG1CQUFLLEtBQU07QUFBQTtBQUFBO0FBSWQsc0JBQVksU0FBUztBQUVyQixpQkFBTyxTQUFTLE9BQU8sVUFBVSxRQUNoQyxLQUFLLEtBQU0sZUFDWCxLQUFLLE1BQU8sT0FBTyxPQUFPO0FBQUE7QUFBQSxRQUU1QixNQUFNLFNBQVUsTUFBTSxZQUFZLFNBQVU7QUFDM0MsY0FBSSxZQUFZLFNBQVUsT0FBUTtBQUNqQyxnQkFBSSxPQUFPLE1BQU07QUFDakIsbUJBQU8sTUFBTTtBQUNiLGlCQUFNO0FBQUE7QUFHUCxjQUFLLE9BQU8sU0FBUyxVQUFXO0FBQy9CLHNCQUFVO0FBQ1YseUJBQWE7QUFDYixtQkFBTztBQUFBO0FBRVIsY0FBSyxZQUFhO0FBQ2pCLGlCQUFLLE1BQU8sUUFBUSxNQUFNO0FBQUE7QUFHM0IsaUJBQU8sS0FBSyxLQUFNLFdBQVc7QUFDNUIsZ0JBQUksVUFBVSxNQUNiLFFBQVEsUUFBUSxRQUFRLE9BQU8sY0FDL0IsU0FBUyxPQUFPLFFBQ2hCLE9BQU8sU0FBUyxJQUFLO0FBRXRCLGdCQUFLLE9BQVE7QUFDWixrQkFBSyxLQUFNLFVBQVcsS0FBTSxPQUFRLE1BQU87QUFDMUMsMEJBQVcsS0FBTTtBQUFBO0FBQUEsbUJBRVo7QUFDTixtQkFBTSxTQUFTLE1BQU87QUFDckIsb0JBQUssS0FBTSxVQUFXLEtBQU0sT0FBUSxRQUFRLEtBQUssS0FBTSxRQUFVO0FBQ2hFLDRCQUFXLEtBQU07QUFBQTtBQUFBO0FBQUE7QUFLcEIsaUJBQU0sUUFBUSxPQUFPLFFBQVEsV0FBVztBQUN2QyxrQkFBSyxPQUFRLE9BQVEsU0FBUyxRQUMzQixTQUFRLFFBQVEsT0FBUSxPQUFRLFVBQVUsT0FBUztBQUVyRCx1QkFBUSxPQUFRLEtBQUssS0FBTTtBQUMzQiwwQkFBVTtBQUNWLHVCQUFPLE9BQVEsT0FBTztBQUFBO0FBQUE7QUFPeEIsZ0JBQUssV0FBVyxDQUFDLFNBQVU7QUFDMUIscUJBQU8sUUFBUyxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFJekIsUUFBUSxTQUFVLE1BQU87QUFDeEIsY0FBSyxTQUFTLE9BQVE7QUFDckIsbUJBQU8sUUFBUTtBQUFBO0FBRWhCLGlCQUFPLEtBQUssS0FBTSxXQUFXO0FBQzVCLGdCQUFJLE9BQ0gsT0FBTyxTQUFTLElBQUssT0FDckIsUUFBUSxLQUFNLE9BQU8sVUFDckIsUUFBUSxLQUFNLE9BQU8sZUFDckIsU0FBUyxPQUFPLFFBQ2hCLFNBQVMsUUFBUSxNQUFNLFNBQVM7QUFHakMsaUJBQUssU0FBUztBQUdkLG1CQUFPLE1BQU8sTUFBTSxNQUFNO0FBRTFCLGdCQUFLLFNBQVMsTUFBTSxNQUFPO0FBQzFCLG9CQUFNLEtBQUssS0FBTSxNQUFNO0FBQUE7QUFJeEIsaUJBQU0sUUFBUSxPQUFPLFFBQVEsV0FBVztBQUN2QyxrQkFBSyxPQUFRLE9BQVEsU0FBUyxRQUFRLE9BQVEsT0FBUSxVQUFVLE1BQU87QUFDdEUsdUJBQVEsT0FBUSxLQUFLLEtBQU07QUFDM0IsdUJBQU8sT0FBUSxPQUFPO0FBQUE7QUFBQTtBQUt4QixpQkFBTSxRQUFRLEdBQUcsUUFBUSxRQUFRLFNBQVU7QUFDMUMsa0JBQUssTUFBTyxVQUFXLE1BQU8sT0FBUSxRQUFTO0FBQzlDLHNCQUFPLE9BQVEsT0FBTyxLQUFNO0FBQUE7QUFBQTtBQUs5QixtQkFBTyxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBS2YsYUFBTyxLQUFNLENBQUUsVUFBVSxRQUFRLFNBQVUsU0FBVSxJQUFJLE1BQU87QUFDL0QsWUFBSSxRQUFRLE9BQU8sR0FBSTtBQUN2QixlQUFPLEdBQUksUUFBUyxTQUFVLE9BQU8sUUFBUSxVQUFXO0FBQ3ZELGlCQUFPLFNBQVMsUUFBUSxPQUFPLFVBQVUsWUFDeEMsTUFBTSxNQUFPLE1BQU0sYUFDbkIsS0FBSyxRQUFTLE1BQU8sTUFBTSxPQUFRLE9BQU8sUUFBUTtBQUFBO0FBQUE7QUFLckQsYUFBTyxLQUFNO0FBQUEsUUFDWixXQUFXLE1BQU87QUFBQSxRQUNsQixTQUFTLE1BQU87QUFBQSxRQUNoQixhQUFhLE1BQU87QUFBQSxRQUNwQixRQUFRLEVBQUUsU0FBUztBQUFBLFFBQ25CLFNBQVMsRUFBRSxTQUFTO0FBQUEsUUFDcEIsWUFBWSxFQUFFLFNBQVM7QUFBQSxTQUNyQixTQUFVLE1BQU0sT0FBUTtBQUMxQixlQUFPLEdBQUksUUFBUyxTQUFVLE9BQU8sUUFBUSxVQUFXO0FBQ3ZELGlCQUFPLEtBQUssUUFBUyxPQUFPLE9BQU8sUUFBUTtBQUFBO0FBQUE7QUFJN0MsYUFBTyxTQUFTO0FBQ2hCLGFBQU8sR0FBRyxPQUFPLFdBQVc7QUFDM0IsWUFBSSxPQUNILElBQUksR0FDSixTQUFTLE9BQU87QUFFakIsZ0JBQVEsS0FBSztBQUViLGVBQVEsSUFBSSxPQUFPLFFBQVEsS0FBTTtBQUNoQyxrQkFBUSxPQUFRO0FBR2hCLGNBQUssQ0FBQyxXQUFXLE9BQVEsT0FBUSxPQUFRO0FBQ3hDLG1CQUFPLE9BQVEsS0FBSztBQUFBO0FBQUE7QUFJdEIsWUFBSyxDQUFDLE9BQU8sUUFBUztBQUNyQixpQkFBTyxHQUFHO0FBQUE7QUFFWCxnQkFBUTtBQUFBO0FBR1QsYUFBTyxHQUFHLFFBQVEsU0FBVSxPQUFRO0FBQ25DLGVBQU8sT0FBTyxLQUFNO0FBQ3BCLGVBQU8sR0FBRztBQUFBO0FBR1gsYUFBTyxHQUFHLFdBQVc7QUFDckIsYUFBTyxHQUFHLFFBQVEsV0FBVztBQUM1QixZQUFLLFlBQWE7QUFDakI7QUFBQTtBQUdELHFCQUFhO0FBQ2I7QUFBQTtBQUdELGFBQU8sR0FBRyxPQUFPLFdBQVc7QUFDM0IscUJBQWE7QUFBQTtBQUdkLGFBQU8sR0FBRyxTQUFTO0FBQUEsUUFDbEIsTUFBTTtBQUFBLFFBQ04sTUFBTTtBQUFBLFFBR04sVUFBVTtBQUFBO0FBTVgsYUFBTyxHQUFHLFFBQVEsU0FBVSxNQUFNLE1BQU87QUFDeEMsZUFBTyxPQUFPLEtBQUssT0FBTyxHQUFHLE9BQVEsU0FBVSxPQUFPO0FBQ3RELGVBQU8sUUFBUTtBQUVmLGVBQU8sS0FBSyxNQUFPLE1BQU0sU0FBVSxNQUFNLE9BQVE7QUFDaEQsY0FBSSxVQUFVLFFBQU8sV0FBWSxNQUFNO0FBQ3ZDLGdCQUFNLE9BQU8sV0FBVztBQUN2QixvQkFBTyxhQUFjO0FBQUE7QUFBQTtBQUFBO0FBTXhCLE1BQUUsWUFBVztBQUNaLFlBQUksUUFBUSxVQUFTLGNBQWUsVUFDbkMsU0FBUyxVQUFTLGNBQWUsV0FDakMsTUFBTSxPQUFPLFlBQWEsVUFBUyxjQUFlO0FBRW5ELGNBQU0sT0FBTztBQUliLGdCQUFRLFVBQVUsTUFBTSxVQUFVO0FBSWxDLGdCQUFRLGNBQWMsSUFBSTtBQUkxQixnQkFBUSxVQUFTLGNBQWU7QUFDaEMsY0FBTSxRQUFRO0FBQ2QsY0FBTSxPQUFPO0FBQ2IsZ0JBQVEsYUFBYSxNQUFNLFVBQVU7QUFBQTtBQUl0QyxVQUFJLFVBQ0gsYUFBYSxPQUFPLEtBQUs7QUFFMUIsYUFBTyxHQUFHLE9BQVE7QUFBQSxRQUNqQixNQUFNLFNBQVUsTUFBTSxPQUFRO0FBQzdCLGlCQUFPLE9BQVEsTUFBTSxPQUFPLE1BQU0sTUFBTSxPQUFPLFVBQVUsU0FBUztBQUFBO0FBQUEsUUFHbkUsWUFBWSxTQUFVLE1BQU87QUFDNUIsaUJBQU8sS0FBSyxLQUFNLFdBQVc7QUFDNUIsbUJBQU8sV0FBWSxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBSzVCLGFBQU8sT0FBUTtBQUFBLFFBQ2QsTUFBTSxTQUFVLE1BQU0sTUFBTSxPQUFRO0FBQ25DLGNBQUksS0FBSyxPQUNSLFFBQVEsS0FBSztBQUdkLGNBQUssVUFBVSxLQUFLLFVBQVUsS0FBSyxVQUFVLEdBQUk7QUFDaEQ7QUFBQTtBQUlELGNBQUssT0FBTyxLQUFLLGlCQUFpQixhQUFjO0FBQy9DLG1CQUFPLE9BQU8sS0FBTSxNQUFNLE1BQU07QUFBQTtBQUtqQyxjQUFLLFVBQVUsS0FBSyxDQUFDLE9BQU8sU0FBVSxPQUFTO0FBQzlDLG9CQUFRLE9BQU8sVUFBVyxLQUFLLGtCQUM1QixRQUFPLEtBQUssTUFBTSxLQUFLLEtBQU0sUUFBUyxXQUFXO0FBQUE7QUFHckQsY0FBSyxVQUFVLFFBQVk7QUFDMUIsZ0JBQUssVUFBVSxNQUFPO0FBQ3JCLHFCQUFPLFdBQVksTUFBTTtBQUN6QjtBQUFBO0FBR0QsZ0JBQUssU0FBUyxTQUFTLFNBQ3BCLE9BQU0sTUFBTSxJQUFLLE1BQU0sT0FBTyxXQUFhLFFBQVk7QUFDekQscUJBQU87QUFBQTtBQUdSLGlCQUFLLGFBQWMsTUFBTSxRQUFRO0FBQ2pDLG1CQUFPO0FBQUE7QUFHUixjQUFLLFNBQVMsU0FBUyxTQUFXLE9BQU0sTUFBTSxJQUFLLE1BQU0sV0FBYSxNQUFPO0FBQzVFLG1CQUFPO0FBQUE7QUFHUixnQkFBTSxPQUFPLEtBQUssS0FBTSxNQUFNO0FBRzlCLGlCQUFPLE9BQU8sT0FBTyxTQUFZO0FBQUE7QUFBQSxRQUdsQyxXQUFXO0FBQUEsVUFDVixNQUFNO0FBQUEsWUFDTCxLQUFLLFNBQVUsTUFBTSxPQUFRO0FBQzVCLGtCQUFLLENBQUMsUUFBUSxjQUFjLFVBQVUsV0FDckMsU0FBVSxNQUFNLFVBQVk7QUFDNUIsb0JBQUksTUFBTSxLQUFLO0FBQ2YscUJBQUssYUFBYyxRQUFRO0FBQzNCLG9CQUFLLEtBQU07QUFDVix1QkFBSyxRQUFRO0FBQUE7QUFFZCx1QkFBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFNWCxZQUFZLFNBQVUsTUFBTSxPQUFRO0FBQ25DLGNBQUksTUFDSCxJQUFJLEdBSUosWUFBWSxTQUFTLE1BQU0sTUFBTztBQUVuQyxjQUFLLGFBQWEsS0FBSyxhQUFhLEdBQUk7QUFDdkMsbUJBQVUsT0FBTyxVQUFXLE1BQVU7QUFDckMsbUJBQUssZ0JBQWlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPMUIsaUJBQVc7QUFBQSxRQUNWLEtBQUssU0FBVSxNQUFNLE9BQU8sTUFBTztBQUNsQyxjQUFLLFVBQVUsT0FBUTtBQUd0QixtQkFBTyxXQUFZLE1BQU07QUFBQSxpQkFDbkI7QUFDTixpQkFBSyxhQUFjLE1BQU07QUFBQTtBQUUxQixpQkFBTztBQUFBO0FBQUE7QUFJVCxhQUFPLEtBQU0sT0FBTyxLQUFLLE1BQU0sS0FBSyxPQUFPLE1BQU8sU0FBVSxTQUFVLElBQUksTUFBTztBQUNoRixZQUFJLFNBQVMsV0FBWSxTQUFVLE9BQU8sS0FBSztBQUUvQyxtQkFBWSxRQUFTLFNBQVUsTUFBTSxPQUFNLE9BQVE7QUFDbEQsY0FBSSxLQUFLLFFBQ1IsZ0JBQWdCLE1BQUs7QUFFdEIsY0FBSyxDQUFDLE9BQVE7QUFHYixxQkFBUyxXQUFZO0FBQ3JCLHVCQUFZLGlCQUFrQjtBQUM5QixrQkFBTSxPQUFRLE1BQU0sT0FBTSxVQUFXLE9BQ3BDLGdCQUNBO0FBQ0QsdUJBQVksaUJBQWtCO0FBQUE7QUFFL0IsaUJBQU87QUFBQTtBQUFBO0FBT1QsVUFBSSxhQUFhLHVDQUNoQixhQUFhO0FBRWQsYUFBTyxHQUFHLE9BQVE7QUFBQSxRQUNqQixNQUFNLFNBQVUsTUFBTSxPQUFRO0FBQzdCLGlCQUFPLE9BQVEsTUFBTSxPQUFPLE1BQU0sTUFBTSxPQUFPLFVBQVUsU0FBUztBQUFBO0FBQUEsUUFHbkUsWUFBWSxTQUFVLE1BQU87QUFDNUIsaUJBQU8sS0FBSyxLQUFNLFdBQVc7QUFDNUIsbUJBQU8sS0FBTSxPQUFPLFFBQVMsU0FBVTtBQUFBO0FBQUE7QUFBQTtBQUsxQyxhQUFPLE9BQVE7QUFBQSxRQUNkLE1BQU0sU0FBVSxNQUFNLE1BQU0sT0FBUTtBQUNuQyxjQUFJLEtBQUssT0FDUixRQUFRLEtBQUs7QUFHZCxjQUFLLFVBQVUsS0FBSyxVQUFVLEtBQUssVUFBVSxHQUFJO0FBQ2hEO0FBQUE7QUFHRCxjQUFLLFVBQVUsS0FBSyxDQUFDLE9BQU8sU0FBVSxPQUFTO0FBRzlDLG1CQUFPLE9BQU8sUUFBUyxTQUFVO0FBQ2pDLG9CQUFRLE9BQU8sVUFBVztBQUFBO0FBRzNCLGNBQUssVUFBVSxRQUFZO0FBQzFCLGdCQUFLLFNBQVMsU0FBUyxTQUNwQixPQUFNLE1BQU0sSUFBSyxNQUFNLE9BQU8sV0FBYSxRQUFZO0FBQ3pELHFCQUFPO0FBQUE7QUFHUixtQkFBUyxLQUFNLFFBQVM7QUFBQTtBQUd6QixjQUFLLFNBQVMsU0FBUyxTQUFXLE9BQU0sTUFBTSxJQUFLLE1BQU0sV0FBYSxNQUFPO0FBQzVFLG1CQUFPO0FBQUE7QUFHUixpQkFBTyxLQUFNO0FBQUE7QUFBQSxRQUdkLFdBQVc7QUFBQSxVQUNWLFVBQVU7QUFBQSxZQUNULEtBQUssU0FBVSxNQUFPO0FBT3JCLGtCQUFJLFdBQVcsT0FBTyxLQUFLLEtBQU0sTUFBTTtBQUV2QyxrQkFBSyxVQUFXO0FBQ2YsdUJBQU8sU0FBVSxVQUFVO0FBQUE7QUFHNUIsa0JBQ0MsV0FBVyxLQUFNLEtBQUssYUFDdEIsV0FBVyxLQUFNLEtBQUssYUFDdEIsS0FBSyxNQUNKO0FBQ0QsdUJBQU87QUFBQTtBQUdSLHFCQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFLVixTQUFTO0FBQUEsVUFDUixPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUE7QUFBQTtBQVlYLFVBQUssQ0FBQyxRQUFRLGFBQWM7QUFDM0IsZUFBTyxVQUFVLFdBQVc7QUFBQSxVQUMzQixLQUFLLFNBQVUsTUFBTztBQUlyQixnQkFBSSxTQUFTLEtBQUs7QUFDbEIsZ0JBQUssVUFBVSxPQUFPLFlBQWE7QUFDbEMscUJBQU8sV0FBVztBQUFBO0FBRW5CLG1CQUFPO0FBQUE7QUFBQSxVQUVSLEtBQUssU0FBVSxNQUFPO0FBSXJCLGdCQUFJLFNBQVMsS0FBSztBQUNsQixnQkFBSyxRQUFTO0FBQ2IscUJBQU87QUFFUCxrQkFBSyxPQUFPLFlBQWE7QUFDeEIsdUJBQU8sV0FBVztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPdkIsYUFBTyxLQUFNO0FBQUEsUUFDWjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFNBQ0UsV0FBVztBQUNiLGVBQU8sUUFBUyxLQUFLLGlCQUFrQjtBQUFBO0FBUXZDLGdDQUEyQixPQUFRO0FBQ2xDLFlBQUksU0FBUyxNQUFNLE1BQU8sa0JBQW1CO0FBQzdDLGVBQU8sT0FBTyxLQUFNO0FBQUE7QUFJdEIsd0JBQW1CLE1BQU87QUFDekIsZUFBTyxLQUFLLGdCQUFnQixLQUFLLGFBQWMsWUFBYTtBQUFBO0FBRzdELDhCQUF5QixPQUFRO0FBQ2hDLFlBQUssTUFBTSxRQUFTLFFBQVU7QUFDN0IsaUJBQU87QUFBQTtBQUVSLFlBQUssT0FBTyxVQUFVLFVBQVc7QUFDaEMsaUJBQU8sTUFBTSxNQUFPLGtCQUFtQjtBQUFBO0FBRXhDLGVBQU87QUFBQTtBQUdSLGFBQU8sR0FBRyxPQUFRO0FBQUEsUUFDakIsVUFBVSxTQUFVLE9BQVE7QUFDM0IsY0FBSSxTQUFTLE1BQU0sS0FBSyxVQUFVLE9BQU8sR0FBRyxZQUMzQyxJQUFJO0FBRUwsY0FBSyxXQUFZLFFBQVU7QUFDMUIsbUJBQU8sS0FBSyxLQUFNLFNBQVUsSUFBSTtBQUMvQixxQkFBUSxNQUFPLFNBQVUsTUFBTSxLQUFNLE1BQU0sSUFBRyxTQUFVO0FBQUE7QUFBQTtBQUkxRCxvQkFBVSxlQUFnQjtBQUUxQixjQUFLLFFBQVEsUUFBUztBQUNyQixtQkFBVSxPQUFPLEtBQU0sTUFBVTtBQUNoQyx5QkFBVyxTQUFVO0FBQ3JCLG9CQUFNLEtBQUssYUFBYSxLQUFPLE1BQU0saUJBQWtCLFlBQWE7QUFFcEUsa0JBQUssS0FBTTtBQUNWLG9CQUFJO0FBQ0osdUJBQVUsUUFBUSxRQUFTLE1BQVU7QUFDcEMsc0JBQUssSUFBSSxRQUFTLE1BQU0sUUFBUSxPQUFRLEdBQUk7QUFDM0MsMkJBQU8sUUFBUTtBQUFBO0FBQUE7QUFLakIsNkJBQWEsaUJBQWtCO0FBQy9CLG9CQUFLLGFBQWEsWUFBYTtBQUM5Qix1QkFBSyxhQUFjLFNBQVM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1oQyxpQkFBTztBQUFBO0FBQUEsUUFHUixhQUFhLFNBQVUsT0FBUTtBQUM5QixjQUFJLFNBQVMsTUFBTSxLQUFLLFVBQVUsT0FBTyxHQUFHLFlBQzNDLElBQUk7QUFFTCxjQUFLLFdBQVksUUFBVTtBQUMxQixtQkFBTyxLQUFLLEtBQU0sU0FBVSxJQUFJO0FBQy9CLHFCQUFRLE1BQU8sWUFBYSxNQUFNLEtBQU0sTUFBTSxJQUFHLFNBQVU7QUFBQTtBQUFBO0FBSTdELGNBQUssQ0FBQyxVQUFVLFFBQVM7QUFDeEIsbUJBQU8sS0FBSyxLQUFNLFNBQVM7QUFBQTtBQUc1QixvQkFBVSxlQUFnQjtBQUUxQixjQUFLLFFBQVEsUUFBUztBQUNyQixtQkFBVSxPQUFPLEtBQU0sTUFBVTtBQUNoQyx5QkFBVyxTQUFVO0FBR3JCLG9CQUFNLEtBQUssYUFBYSxLQUFPLE1BQU0saUJBQWtCLFlBQWE7QUFFcEUsa0JBQUssS0FBTTtBQUNWLG9CQUFJO0FBQ0osdUJBQVUsUUFBUSxRQUFTLE1BQVU7QUFHcEMseUJBQVEsSUFBSSxRQUFTLE1BQU0sUUFBUSxPQUFRLElBQUs7QUFDL0MsMEJBQU0sSUFBSSxRQUFTLE1BQU0sUUFBUSxLQUFLO0FBQUE7QUFBQTtBQUt4Qyw2QkFBYSxpQkFBa0I7QUFDL0Isb0JBQUssYUFBYSxZQUFhO0FBQzlCLHVCQUFLLGFBQWMsU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTWhDLGlCQUFPO0FBQUE7QUFBQSxRQUdSLGFBQWEsU0FBVSxPQUFPLFVBQVc7QUFDeEMsY0FBSSxPQUFPLE9BQU8sT0FDakIsZUFBZSxTQUFTLFlBQVksTUFBTSxRQUFTO0FBRXBELGNBQUssT0FBTyxhQUFhLGFBQWEsY0FBZTtBQUNwRCxtQkFBTyxXQUFXLEtBQUssU0FBVSxTQUFVLEtBQUssWUFBYTtBQUFBO0FBRzlELGNBQUssV0FBWSxRQUFVO0FBQzFCLG1CQUFPLEtBQUssS0FBTSxTQUFVLEdBQUk7QUFDL0IscUJBQVEsTUFBTyxZQUNkLE1BQU0sS0FBTSxNQUFNLEdBQUcsU0FBVSxPQUFRLFdBQ3ZDO0FBQUE7QUFBQTtBQUtILGlCQUFPLEtBQUssS0FBTSxXQUFXO0FBQzVCLGdCQUFJLFdBQVcsR0FBRyxPQUFNO0FBRXhCLGdCQUFLLGNBQWU7QUFHbkIsa0JBQUk7QUFDSixzQkFBTyxPQUFRO0FBQ2YsMkJBQWEsZUFBZ0I7QUFFN0IscUJBQVUsWUFBWSxXQUFZLE1BQVU7QUFHM0Msb0JBQUssTUFBSyxTQUFVLFlBQWM7QUFDakMsd0JBQUssWUFBYTtBQUFBLHVCQUNaO0FBQ04sd0JBQUssU0FBVTtBQUFBO0FBQUE7QUFBQSx1QkFLTixVQUFVLFVBQWEsU0FBUyxXQUFZO0FBQ3ZELDBCQUFZLFNBQVU7QUFDdEIsa0JBQUssV0FBWTtBQUdoQix5QkFBUyxJQUFLLE1BQU0saUJBQWlCO0FBQUE7QUFPdEMsa0JBQUssS0FBSyxjQUFlO0FBQ3hCLHFCQUFLLGFBQWMsU0FDbEIsYUFBYSxVQUFVLFFBQ3RCLEtBQ0EsU0FBUyxJQUFLLE1BQU0sb0JBQXFCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQU8vQyxVQUFVLFNBQVUsVUFBVztBQUM5QixjQUFJLFdBQVcsTUFDZCxJQUFJO0FBRUwsc0JBQVksTUFBTSxXQUFXO0FBQzdCLGlCQUFVLE9BQU8sS0FBTSxNQUFVO0FBQ2hDLGdCQUFLLEtBQUssYUFBYSxLQUNwQixPQUFNLGlCQUFrQixTQUFVLFNBQVcsS0FBTSxRQUFTLGFBQWMsSUFBSztBQUNqRixxQkFBTztBQUFBO0FBQUE7QUFJVCxpQkFBTztBQUFBO0FBQUE7QUFPVCxVQUFJLFVBQVU7QUFFZCxhQUFPLEdBQUcsT0FBUTtBQUFBLFFBQ2pCLEtBQUssU0FBVSxPQUFRO0FBQ3RCLGNBQUksT0FBTyxLQUFLLGlCQUNmLE9BQU8sS0FBTTtBQUVkLGNBQUssQ0FBQyxVQUFVLFFBQVM7QUFDeEIsZ0JBQUssTUFBTztBQUNYLHNCQUFRLE9BQU8sU0FBVSxLQUFLLFNBQzdCLE9BQU8sU0FBVSxLQUFLLFNBQVM7QUFFaEMsa0JBQUssU0FDSixTQUFTLFNBQ1AsT0FBTSxNQUFNLElBQUssTUFBTSxjQUFnQixRQUN4QztBQUNELHVCQUFPO0FBQUE7QUFHUixvQkFBTSxLQUFLO0FBR1gsa0JBQUssT0FBTyxRQUFRLFVBQVc7QUFDOUIsdUJBQU8sSUFBSSxRQUFTLFNBQVM7QUFBQTtBQUk5QixxQkFBTyxPQUFPLE9BQU8sS0FBSztBQUFBO0FBRzNCO0FBQUE7QUFHRCw0QkFBa0IsV0FBWTtBQUU5QixpQkFBTyxLQUFLLEtBQU0sU0FBVSxHQUFJO0FBQy9CLGdCQUFJO0FBRUosZ0JBQUssS0FBSyxhQUFhLEdBQUk7QUFDMUI7QUFBQTtBQUdELGdCQUFLLGlCQUFrQjtBQUN0QixvQkFBTSxNQUFNLEtBQU0sTUFBTSxHQUFHLE9BQVEsTUFBTztBQUFBLG1CQUNwQztBQUNOLG9CQUFNO0FBQUE7QUFJUCxnQkFBSyxPQUFPLE1BQU87QUFDbEIsb0JBQU07QUFBQSx1QkFFSyxPQUFPLFFBQVEsVUFBVztBQUNyQyxxQkFBTztBQUFBLHVCQUVJLE1BQU0sUUFBUyxNQUFRO0FBQ2xDLG9CQUFNLE9BQU8sSUFBSyxLQUFLLFNBQVUsUUFBUTtBQUN4Qyx1QkFBTyxVQUFTLE9BQU8sS0FBSyxTQUFRO0FBQUE7QUFBQTtBQUl0QyxvQkFBUSxPQUFPLFNBQVUsS0FBSyxTQUFVLE9BQU8sU0FBVSxLQUFLLFNBQVM7QUFHdkUsZ0JBQUssQ0FBQyxTQUFTLENBQUcsVUFBUyxVQUFXLE1BQU0sSUFBSyxNQUFNLEtBQUssYUFBYyxRQUFZO0FBQ3JGLG1CQUFLLFFBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1qQixhQUFPLE9BQVE7QUFBQSxRQUNkLFVBQVU7QUFBQSxVQUNULFFBQVE7QUFBQSxZQUNQLEtBQUssU0FBVSxNQUFPO0FBRXJCLGtCQUFJLE1BQU0sT0FBTyxLQUFLLEtBQU0sTUFBTTtBQUNsQyxxQkFBTyxPQUFPLE9BQ2IsTUFNQSxpQkFBa0IsT0FBTyxLQUFNO0FBQUE7QUFBQTtBQUFBLFVBR2xDLFFBQVE7QUFBQSxZQUNQLEtBQUssU0FBVSxNQUFPO0FBQ3JCLGtCQUFJLE9BQU8sUUFBUSxHQUNsQixVQUFVLEtBQUssU0FDZixRQUFRLEtBQUssZUFDYixNQUFNLEtBQUssU0FBUyxjQUNwQixTQUFTLE1BQU0sT0FBTyxJQUN0QixNQUFNLE1BQU0sUUFBUSxJQUFJLFFBQVE7QUFFakMsa0JBQUssUUFBUSxHQUFJO0FBQ2hCLG9CQUFJO0FBQUEscUJBRUU7QUFDTixvQkFBSSxNQUFNLFFBQVE7QUFBQTtBQUluQixxQkFBUSxJQUFJLEtBQUssS0FBTTtBQUN0Qix5QkFBUyxRQUFTO0FBSWxCLG9CQUFPLFFBQU8sWUFBWSxNQUFNLFVBRzlCLENBQUMsT0FBTyxZQUNOLEVBQUMsT0FBTyxXQUFXLFlBQ3BCLENBQUMsU0FBVSxPQUFPLFlBQVksY0FBaUI7QUFHakQsMEJBQVEsT0FBUSxRQUFTO0FBR3pCLHNCQUFLLEtBQU07QUFDViwyQkFBTztBQUFBO0FBSVIseUJBQU8sS0FBTTtBQUFBO0FBQUE7QUFJZixxQkFBTztBQUFBO0FBQUEsWUFHUixLQUFLLFNBQVUsTUFBTSxPQUFRO0FBQzVCLGtCQUFJLFdBQVcsUUFDZCxVQUFVLEtBQUssU0FDZixTQUFTLE9BQU8sVUFBVyxRQUMzQixJQUFJLFFBQVE7QUFFYixxQkFBUSxLQUFNO0FBQ2IseUJBQVMsUUFBUztBQUlsQixvQkFBSyxPQUFPLFdBQ1gsT0FBTyxRQUFTLE9BQU8sU0FBUyxPQUFPLElBQUssU0FBVSxVQUFXLElBQ2hFO0FBQ0QsOEJBQVk7QUFBQTtBQUFBO0FBT2Qsa0JBQUssQ0FBQyxXQUFZO0FBQ2pCLHFCQUFLLGdCQUFnQjtBQUFBO0FBRXRCLHFCQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPWCxhQUFPLEtBQU0sQ0FBRSxTQUFTLGFBQWMsV0FBVztBQUNoRCxlQUFPLFNBQVUsUUFBUztBQUFBLFVBQ3pCLEtBQUssU0FBVSxNQUFNLE9BQVE7QUFDNUIsZ0JBQUssTUFBTSxRQUFTLFFBQVU7QUFDN0IscUJBQVMsS0FBSyxVQUFVLE9BQU8sUUFBUyxPQUFRLE1BQU8sT0FBTyxTQUFVO0FBQUE7QUFBQTtBQUFBO0FBSTNFLFlBQUssQ0FBQyxRQUFRLFNBQVU7QUFDdkIsaUJBQU8sU0FBVSxNQUFPLE1BQU0sU0FBVSxNQUFPO0FBQzlDLG1CQUFPLEtBQUssYUFBYyxhQUFjLE9BQU8sT0FBTyxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBVzlELGNBQVEsVUFBVSxlQUFlO0FBR2pDLFVBQUksY0FBYyxtQ0FDakIsMEJBQTBCLFNBQVUsR0FBSTtBQUN2QyxVQUFFO0FBQUE7QUFHSixhQUFPLE9BQVEsT0FBTyxPQUFPO0FBQUEsUUFFNUIsU0FBUyxTQUFVLE9BQU8sTUFBTSxNQUFNLGNBQWU7QUFFcEQsY0FBSSxHQUFHLEtBQUssS0FBSyxZQUFZLFFBQVEsUUFBUSxTQUFTLGFBQ3JELFlBQVksQ0FBRSxRQUFRLFlBQ3RCLE9BQU8sT0FBTyxLQUFNLE9BQU8sVUFBVyxNQUFNLE9BQU8sT0FDbkQsYUFBYSxPQUFPLEtBQU0sT0FBTyxlQUFnQixNQUFNLFVBQVUsTUFBTyxPQUFRO0FBRWpGLGdCQUFNLGNBQWMsTUFBTSxPQUFPLFFBQVE7QUFHekMsY0FBSyxLQUFLLGFBQWEsS0FBSyxLQUFLLGFBQWEsR0FBSTtBQUNqRDtBQUFBO0FBSUQsY0FBSyxZQUFZLEtBQU0sT0FBTyxPQUFPLE1BQU0sWUFBYztBQUN4RDtBQUFBO0FBR0QsY0FBSyxLQUFLLFFBQVMsT0FBUSxJQUFLO0FBRy9CLHlCQUFhLEtBQUssTUFBTztBQUN6QixtQkFBTyxXQUFXO0FBQ2xCLHVCQUFXO0FBQUE7QUFFWixtQkFBUyxLQUFLLFFBQVMsT0FBUSxLQUFLLE9BQU87QUFHM0Msa0JBQVEsTUFBTyxPQUFPLFdBQ3JCLFFBQ0EsSUFBSSxPQUFPLE1BQU8sTUFBTSxPQUFPLFVBQVUsWUFBWTtBQUd0RCxnQkFBTSxZQUFZLGVBQWUsSUFBSTtBQUNyQyxnQkFBTSxZQUFZLFdBQVcsS0FBTTtBQUNuQyxnQkFBTSxhQUFhLE1BQU0sWUFDeEIsSUFBSSxPQUFRLFlBQVksV0FBVyxLQUFNLG1CQUFvQixhQUM3RDtBQUdELGdCQUFNLFNBQVM7QUFDZixjQUFLLENBQUMsTUFBTSxRQUFTO0FBQ3BCLGtCQUFNLFNBQVM7QUFBQTtBQUloQixpQkFBTyxRQUFRLE9BQ2QsQ0FBRSxTQUNGLE9BQU8sVUFBVyxNQUFNLENBQUU7QUFHM0Isb0JBQVUsT0FBTyxNQUFNLFFBQVMsU0FBVTtBQUMxQyxjQUFLLENBQUMsZ0JBQWdCLFFBQVEsV0FBVyxRQUFRLFFBQVEsTUFBTyxNQUFNLFVBQVcsT0FBUTtBQUN4RjtBQUFBO0FBS0QsY0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsWUFBWSxDQUFDLFNBQVUsT0FBUztBQUU5RCx5QkFBYSxRQUFRLGdCQUFnQjtBQUNyQyxnQkFBSyxDQUFDLFlBQVksS0FBTSxhQUFhLE9BQVM7QUFDN0Msb0JBQU0sSUFBSTtBQUFBO0FBRVgsbUJBQVEsS0FBSyxNQUFNLElBQUksWUFBYTtBQUNuQyx3QkFBVSxLQUFNO0FBQ2hCLG9CQUFNO0FBQUE7QUFJUCxnQkFBSyxRQUFVLE1BQUssaUJBQWlCLFlBQWE7QUFDakQsd0JBQVUsS0FBTSxJQUFJLGVBQWUsSUFBSSxnQkFBZ0I7QUFBQTtBQUFBO0FBS3pELGNBQUk7QUFDSixpQkFBVSxPQUFNLFVBQVcsU0FBVyxDQUFDLE1BQU0sd0JBQXlCO0FBQ3JFLDBCQUFjO0FBQ2Qsa0JBQU0sT0FBTyxJQUFJLElBQ2hCLGFBQ0EsUUFBUSxZQUFZO0FBR3JCLHFCQUFXLFVBQVMsSUFBSyxLQUFLLGFBQWMsT0FBTyxPQUFRLE9BQVUsTUFBTSxTQUMxRSxTQUFTLElBQUssS0FBSztBQUNwQixnQkFBSyxRQUFTO0FBQ2IscUJBQU8sTUFBTyxLQUFLO0FBQUE7QUFJcEIscUJBQVMsVUFBVSxJQUFLO0FBQ3hCLGdCQUFLLFVBQVUsT0FBTyxTQUFTLFdBQVksTUFBUTtBQUNsRCxvQkFBTSxTQUFTLE9BQU8sTUFBTyxLQUFLO0FBQ2xDLGtCQUFLLE1BQU0sV0FBVyxPQUFRO0FBQzdCLHNCQUFNO0FBQUE7QUFBQTtBQUFBO0FBSVQsZ0JBQU0sT0FBTztBQUdiLGNBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLHNCQUF1QjtBQUVuRCxnQkFBTyxFQUFDLFFBQVEsWUFDZixRQUFRLFNBQVMsTUFBTyxVQUFVLE9BQU8sVUFBVyxVQUNwRCxXQUFZLE9BQVM7QUFJckIsa0JBQUssVUFBVSxXQUFZLEtBQU0sVUFBWSxDQUFDLFNBQVUsT0FBUztBQUdoRSxzQkFBTSxLQUFNO0FBRVosb0JBQUssS0FBTTtBQUNWLHVCQUFNLFVBQVc7QUFBQTtBQUlsQix1QkFBTyxNQUFNLFlBQVk7QUFFekIsb0JBQUssTUFBTSx3QkFBeUI7QUFDbkMsOEJBQVksaUJBQWtCLE1BQU07QUFBQTtBQUdyQyxxQkFBTTtBQUVOLG9CQUFLLE1BQU0sd0JBQXlCO0FBQ25DLDhCQUFZLG9CQUFxQixNQUFNO0FBQUE7QUFHeEMsdUJBQU8sTUFBTSxZQUFZO0FBRXpCLG9CQUFLLEtBQU07QUFDVix1QkFBTSxVQUFXO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNckIsaUJBQU8sTUFBTTtBQUFBO0FBQUEsUUFLZCxVQUFVLFNBQVUsTUFBTSxNQUFNLE9BQVE7QUFDdkMsY0FBSSxJQUFJLE9BQU8sT0FDZCxJQUFJLE9BQU8sU0FDWCxPQUNBO0FBQUEsWUFDQztBQUFBLFlBQ0EsYUFBYTtBQUFBO0FBSWYsaUJBQU8sTUFBTSxRQUFTLEdBQUcsTUFBTTtBQUFBO0FBQUE7QUFLakMsYUFBTyxHQUFHLE9BQVE7QUFBQSxRQUVqQixTQUFTLFNBQVUsTUFBTSxNQUFPO0FBQy9CLGlCQUFPLEtBQUssS0FBTSxXQUFXO0FBQzVCLG1CQUFPLE1BQU0sUUFBUyxNQUFNLE1BQU07QUFBQTtBQUFBO0FBQUEsUUFHcEMsZ0JBQWdCLFNBQVUsTUFBTSxNQUFPO0FBQ3RDLGNBQUksT0FBTyxLQUFNO0FBQ2pCLGNBQUssTUFBTztBQUNYLG1CQUFPLE9BQU8sTUFBTSxRQUFTLE1BQU0sTUFBTSxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBY2xELFVBQUssQ0FBQyxRQUFRLFNBQVU7QUFDdkIsZUFBTyxLQUFNLEVBQUUsT0FBTyxXQUFXLE1BQU0sY0FBYyxTQUFVLE1BQU0sS0FBTTtBQUcxRSxjQUFJLFVBQVUsU0FBVSxPQUFRO0FBQy9CLG1CQUFPLE1BQU0sU0FBVSxLQUFLLE1BQU0sUUFBUSxPQUFPLE1BQU0sSUFBSztBQUFBO0FBRzdELGlCQUFPLE1BQU0sUUFBUyxPQUFRO0FBQUEsWUFDN0IsT0FBTyxXQUFXO0FBSWpCLGtCQUFJLE1BQU0sS0FBSyxpQkFBaUIsS0FBSyxZQUFZLE1BQ2hELFdBQVcsU0FBUyxPQUFRLEtBQUs7QUFFbEMsa0JBQUssQ0FBQyxVQUFXO0FBQ2hCLG9CQUFJLGlCQUFrQixNQUFNLFNBQVM7QUFBQTtBQUV0Qyx1QkFBUyxPQUFRLEtBQUssS0FBTyxhQUFZLEtBQU07QUFBQTtBQUFBLFlBRWhELFVBQVUsV0FBVztBQUNwQixrQkFBSSxNQUFNLEtBQUssaUJBQWlCLEtBQUssWUFBWSxNQUNoRCxXQUFXLFNBQVMsT0FBUSxLQUFLLE9BQVE7QUFFMUMsa0JBQUssQ0FBQyxVQUFXO0FBQ2hCLG9CQUFJLG9CQUFxQixNQUFNLFNBQVM7QUFDeEMseUJBQVMsT0FBUSxLQUFLO0FBQUEscUJBRWhCO0FBQ04seUJBQVMsT0FBUSxLQUFLLEtBQUs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTWhDLFVBQUksV0FBVyxRQUFPO0FBRXRCLFVBQUksUUFBUSxFQUFFLE1BQU0sS0FBSztBQUV6QixVQUFJLFNBQVc7QUFLZixhQUFPLFdBQVcsU0FBVSxNQUFPO0FBQ2xDLFlBQUksS0FBSztBQUNULFlBQUssQ0FBQyxRQUFRLE9BQU8sU0FBUyxVQUFXO0FBQ3hDLGlCQUFPO0FBQUE7QUFLUixZQUFJO0FBQ0gsZ0JBQVEsSUFBSSxRQUFPLFlBQWMsZ0JBQWlCLE1BQU07QUFBQSxpQkFDL0MsR0FBUjtBQUFBO0FBRUYsMEJBQWtCLE9BQU8sSUFBSSxxQkFBc0IsZUFBaUI7QUFDcEUsWUFBSyxDQUFDLE9BQU8saUJBQWtCO0FBQzlCLGlCQUFPLE1BQU8sa0JBQ2IsbUJBQ0MsT0FBTyxJQUFLLGdCQUFnQixZQUFZLFNBQVUsSUFBSztBQUN0RCxtQkFBTyxHQUFHO0FBQUEsYUFDUCxLQUFNLFFBQ1Y7QUFBQTtBQUdILGVBQU87QUFBQTtBQUlSLFVBQ0MsV0FBVyxTQUNYLFFBQVEsVUFDUixrQkFBa0IseUNBQ2xCLGVBQWU7QUFFaEIsMkJBQXNCLFFBQVEsS0FBSyxhQUFhLEtBQU07QUFDckQsWUFBSTtBQUVKLFlBQUssTUFBTSxRQUFTLE1BQVE7QUFHM0IsaUJBQU8sS0FBTSxLQUFLLFNBQVUsR0FBRyxHQUFJO0FBQ2xDLGdCQUFLLGVBQWUsU0FBUyxLQUFNLFNBQVc7QUFHN0Msa0JBQUssUUFBUTtBQUFBLG1CQUVQO0FBR04sMEJBQ0MsU0FBUyxNQUFRLFFBQU8sTUFBTSxZQUFZLEtBQUssT0FBTyxJQUFJLE1BQU8sS0FDakUsR0FDQSxhQUNBO0FBQUE7QUFBQTtBQUFBLG1CQUtRLENBQUMsZUFBZSxPQUFRLFNBQVUsVUFBVztBQUd4RCxlQUFNLFFBQVEsS0FBTTtBQUNuQix3QkFBYSxTQUFTLE1BQU0sT0FBTyxLQUFLLElBQUssT0FBUSxhQUFhO0FBQUE7QUFBQSxlQUc3RDtBQUdOLGNBQUssUUFBUTtBQUFBO0FBQUE7QUFNZixhQUFPLFFBQVEsU0FBVSxHQUFHLGFBQWM7QUFDekMsWUFBSSxRQUNILElBQUksSUFDSixNQUFNLFNBQVUsS0FBSyxpQkFBa0I7QUFHdEMsY0FBSSxRQUFRLFdBQVksbUJBQ3ZCLG9CQUNBO0FBRUQsWUFBRyxFQUFFLFVBQVcsbUJBQW9CLE9BQVEsTUFDM0MsbUJBQW9CLFNBQVMsT0FBTyxLQUFLO0FBQUE7QUFHNUMsWUFBSyxLQUFLLE1BQU87QUFDaEIsaUJBQU87QUFBQTtBQUlSLFlBQUssTUFBTSxRQUFTLE1BQVMsRUFBRSxVQUFVLENBQUMsT0FBTyxjQUFlLElBQVE7QUFHdkUsaUJBQU8sS0FBTSxHQUFHLFdBQVc7QUFDMUIsZ0JBQUssS0FBSyxNQUFNLEtBQUs7QUFBQTtBQUFBLGVBR2hCO0FBSU4sZUFBTSxVQUFVLEdBQUk7QUFDbkIsd0JBQWEsUUFBUSxFQUFHLFNBQVUsYUFBYTtBQUFBO0FBQUE7QUFLakQsZUFBTyxFQUFFLEtBQU07QUFBQTtBQUdoQixhQUFPLEdBQUcsT0FBUTtBQUFBLFFBQ2pCLFdBQVcsV0FBVztBQUNyQixpQkFBTyxPQUFPLE1BQU8sS0FBSztBQUFBO0FBQUEsUUFFM0IsZ0JBQWdCLFdBQVc7QUFDMUIsaUJBQU8sS0FBSyxJQUFLLFdBQVc7QUFHM0IsZ0JBQUksV0FBVyxPQUFPLEtBQU0sTUFBTTtBQUNsQyxtQkFBTyxXQUFXLE9BQU8sVUFBVyxZQUFhO0FBQUEsYUFDOUMsT0FBUSxXQUFXO0FBQ3RCLGdCQUFJLE9BQU8sS0FBSztBQUdoQixtQkFBTyxLQUFLLFFBQVEsQ0FBQyxPQUFRLE1BQU8sR0FBSSxnQkFDdkMsYUFBYSxLQUFNLEtBQUssYUFBYyxDQUFDLGdCQUFnQixLQUFNLFNBQzNELE1BQUssV0FBVyxDQUFDLGVBQWUsS0FBTTtBQUFBLGFBQ3RDLElBQUssU0FBVSxJQUFJLE1BQU87QUFDN0IsZ0JBQUksTUFBTSxPQUFRLE1BQU87QUFFekIsZ0JBQUssT0FBTyxNQUFPO0FBQ2xCLHFCQUFPO0FBQUE7QUFHUixnQkFBSyxNQUFNLFFBQVMsTUFBUTtBQUMzQixxQkFBTyxPQUFPLElBQUssS0FBSyxTQUFVLE1BQU07QUFDdkMsdUJBQU8sRUFBRSxNQUFNLEtBQUssTUFBTSxPQUFPLEtBQUksUUFBUyxPQUFPO0FBQUE7QUFBQTtBQUl2RCxtQkFBTyxFQUFFLE1BQU0sS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFTLE9BQU87QUFBQSxhQUNsRDtBQUFBO0FBQUE7QUFLTixVQUNDLE1BQU0sUUFDTixRQUFRLFFBQ1IsYUFBYSxpQkFDYixXQUFXLDhCQUdYLGlCQUFpQiw2REFDakIsYUFBYSxrQkFDYixZQUFZLFNBV1osYUFBYSxJQU9iLGFBQWEsSUFHYixXQUFXLEtBQUssT0FBUSxNQUd4QixlQUFlLFVBQVMsY0FBZTtBQUV4QyxtQkFBYSxPQUFPLFNBQVM7QUFHN0IsMkNBQXNDLFdBQVk7QUFHakQsZUFBTyxTQUFVLG9CQUFvQixNQUFPO0FBRTNDLGNBQUssT0FBTyx1QkFBdUIsVUFBVztBQUM3QyxtQkFBTztBQUNQLGlDQUFxQjtBQUFBO0FBR3RCLGNBQUksVUFDSCxJQUFJLEdBQ0osWUFBWSxtQkFBbUIsY0FBYyxNQUFPLGtCQUFtQjtBQUV4RSxjQUFLLFdBQVksT0FBUztBQUd6QixtQkFBVSxXQUFXLFVBQVcsTUFBVTtBQUd6QyxrQkFBSyxTQUFVLE9BQVEsS0FBTTtBQUM1QiwyQkFBVyxTQUFTLE1BQU8sTUFBTztBQUNsQyxnQkFBRSxXQUFXLFlBQWEsVUFBVyxhQUFjLElBQUssUUFBUztBQUFBLHFCQUczRDtBQUNOLGdCQUFFLFdBQVcsWUFBYSxVQUFXLGFBQWMsSUFBSyxLQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFuRSw2Q0FBd0MsV0FBVyxTQUFTLGlCQUFpQixPQUFRO0FBRXBGLFlBQUksWUFBWSxJQUNmLG1CQUFxQixjQUFjO0FBRXBDLHlCQUFrQixVQUFXO0FBQzVCLGNBQUk7QUFDSixvQkFBVyxZQUFhO0FBQ3hCLGlCQUFPLEtBQU0sVUFBVyxhQUFjLElBQUksU0FBVSxHQUFHLG9CQUFxQjtBQUMzRSxnQkFBSSxzQkFBc0IsbUJBQW9CLFNBQVMsaUJBQWlCO0FBQ3hFLGdCQUFLLE9BQU8sd0JBQXdCLFlBQ25DLENBQUMsb0JBQW9CLENBQUMsVUFBVyxzQkFBd0I7QUFFekQsc0JBQVEsVUFBVSxRQUFTO0FBQzNCLHNCQUFTO0FBQ1QscUJBQU87QUFBQSx1QkFDSSxrQkFBbUI7QUFDOUIscUJBQU8sQ0FBRyxZQUFXO0FBQUE7QUFBQTtBQUd2QixpQkFBTztBQUFBO0FBR1IsZUFBTyxRQUFTLFFBQVEsVUFBVyxPQUFTLENBQUMsVUFBVyxRQUFTLFFBQVM7QUFBQTtBQU0zRSwwQkFBcUIsUUFBUSxLQUFNO0FBQ2xDLFlBQUksS0FBSyxNQUNSLGNBQWMsT0FBTyxhQUFhLGVBQWU7QUFFbEQsYUFBTSxPQUFPLEtBQU07QUFDbEIsY0FBSyxJQUFLLFNBQVUsUUFBWTtBQUMvQixZQUFFLGFBQWEsT0FBUSxTQUFXLFFBQVUsUUFBTyxLQUFVLE9BQVEsSUFBSztBQUFBO0FBQUE7QUFHNUUsWUFBSyxNQUFPO0FBQ1gsaUJBQU8sT0FBUSxNQUFNLFFBQVE7QUFBQTtBQUc5QixlQUFPO0FBQUE7QUFPUixtQ0FBOEIsR0FBRyxPQUFPLFdBQVk7QUFFbkQsWUFBSSxJQUFJLE1BQU0sZUFBZSxlQUM1QixXQUFXLEVBQUUsVUFDYixZQUFZLEVBQUU7QUFHZixlQUFRLFVBQVcsT0FBUSxLQUFNO0FBQ2hDLG9CQUFVO0FBQ1YsY0FBSyxPQUFPLFFBQVk7QUFDdkIsaUJBQUssRUFBRSxZQUFZLE1BQU0sa0JBQW1CO0FBQUE7QUFBQTtBQUs5QyxZQUFLLElBQUs7QUFDVCxlQUFNLFFBQVEsVUFBVztBQUN4QixnQkFBSyxTQUFVLFNBQVUsU0FBVSxNQUFPLEtBQU0sS0FBTztBQUN0RCx3QkFBVSxRQUFTO0FBQ25CO0FBQUE7QUFBQTtBQUFBO0FBTUgsWUFBSyxVQUFXLE1BQU8sV0FBWTtBQUNsQywwQkFBZ0IsVUFBVztBQUFBLGVBQ3JCO0FBR04sZUFBTSxRQUFRLFdBQVk7QUFDekIsZ0JBQUssQ0FBQyxVQUFXLE1BQU8sRUFBRSxXQUFZLE9BQU8sTUFBTSxVQUFXLEtBQVE7QUFDckUsOEJBQWdCO0FBQ2hCO0FBQUE7QUFFRCxnQkFBSyxDQUFDLGVBQWdCO0FBQ3JCLDhCQUFnQjtBQUFBO0FBQUE7QUFLbEIsMEJBQWdCLGlCQUFpQjtBQUFBO0FBTWxDLFlBQUssZUFBZ0I7QUFDcEIsY0FBSyxrQkFBa0IsVUFBVyxJQUFNO0FBQ3ZDLHNCQUFVLFFBQVM7QUFBQTtBQUVwQixpQkFBTyxVQUFXO0FBQUE7QUFBQTtBQU9wQiwyQkFBc0IsR0FBRyxVQUFVLE9BQU8sV0FBWTtBQUNyRCxZQUFJLE9BQU8sU0FBUyxNQUFNLEtBQUssTUFDOUIsYUFBYSxJQUdiLFlBQVksRUFBRSxVQUFVO0FBR3pCLFlBQUssVUFBVyxJQUFNO0FBQ3JCLGVBQU0sUUFBUSxFQUFFLFlBQWE7QUFDNUIsdUJBQVksS0FBSyxpQkFBa0IsRUFBRSxXQUFZO0FBQUE7QUFBQTtBQUluRCxrQkFBVSxVQUFVO0FBR3BCLGVBQVEsU0FBVTtBQUVqQixjQUFLLEVBQUUsZUFBZ0IsVUFBWTtBQUNsQyxrQkFBTyxFQUFFLGVBQWdCLFlBQWM7QUFBQTtBQUl4QyxjQUFLLENBQUMsUUFBUSxhQUFhLEVBQUUsWUFBYTtBQUN6Qyx1QkFBVyxFQUFFLFdBQVksVUFBVSxFQUFFO0FBQUE7QUFHdEMsaUJBQU87QUFDUCxvQkFBVSxVQUFVO0FBRXBCLGNBQUssU0FBVTtBQUdkLGdCQUFLLFlBQVksS0FBTTtBQUV0Qix3QkFBVTtBQUFBLHVCQUdDLFNBQVMsT0FBTyxTQUFTLFNBQVU7QUFHOUMscUJBQU8sV0FBWSxPQUFPLE1BQU0sWUFBYSxXQUFZLE9BQU87QUFHaEUsa0JBQUssQ0FBQyxNQUFPO0FBQ1oscUJBQU0sU0FBUyxZQUFhO0FBRzNCLHdCQUFNLE1BQU0sTUFBTztBQUNuQixzQkFBSyxJQUFLLE9BQVEsU0FBVTtBQUczQiwyQkFBTyxXQUFZLE9BQU8sTUFBTSxJQUFLLE9BQ3BDLFdBQVksT0FBTyxJQUFLO0FBQ3pCLHdCQUFLLE1BQU87QUFHWCwwQkFBSyxTQUFTLE1BQU87QUFDcEIsK0JBQU8sV0FBWTtBQUFBLGlDQUdSLFdBQVksV0FBWSxNQUFPO0FBQzFDLGtDQUFVLElBQUs7QUFDZixrQ0FBVSxRQUFTLElBQUs7QUFBQTtBQUV6QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0osa0JBQUssU0FBUyxNQUFPO0FBR3BCLG9CQUFLLFFBQVEsRUFBRSxRQUFTO0FBQ3ZCLDZCQUFXLEtBQU07QUFBQSx1QkFDWDtBQUNOLHNCQUFJO0FBQ0gsK0JBQVcsS0FBTTtBQUFBLDJCQUNSLEdBQVI7QUFDRCwyQkFBTztBQUFBLHNCQUNOLE9BQU87QUFBQSxzQkFDUCxPQUFPLE9BQU8sSUFBSSx3QkFBd0IsT0FBTyxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTakUsZUFBTyxFQUFFLE9BQU8sV0FBVyxNQUFNO0FBQUE7QUFHbEMsYUFBTyxPQUFRO0FBQUEsUUFHZCxRQUFRO0FBQUEsUUFHUixjQUFjO0FBQUEsUUFDZCxNQUFNO0FBQUEsUUFFTixjQUFjO0FBQUEsVUFDYixLQUFLLFNBQVM7QUFBQSxVQUNkLE1BQU07QUFBQSxVQUNOLFNBQVMsZUFBZSxLQUFNLFNBQVM7QUFBQSxVQUN2QyxRQUFRO0FBQUEsVUFDUixhQUFhO0FBQUEsVUFDYixPQUFPO0FBQUEsVUFDUCxhQUFhO0FBQUEsVUFjYixTQUFTO0FBQUEsWUFDUixLQUFLO0FBQUEsWUFDTCxNQUFNO0FBQUEsWUFDTixNQUFNO0FBQUEsWUFDTixLQUFLO0FBQUEsWUFDTCxNQUFNO0FBQUE7QUFBQSxVQUdQLFVBQVU7QUFBQSxZQUNULEtBQUs7QUFBQSxZQUNMLE1BQU07QUFBQSxZQUNOLE1BQU07QUFBQTtBQUFBLFVBR1AsZ0JBQWdCO0FBQUEsWUFDZixLQUFLO0FBQUEsWUFDTCxNQUFNO0FBQUEsWUFDTixNQUFNO0FBQUE7QUFBQSxVQUtQLFlBQVk7QUFBQSxZQUdYLFVBQVU7QUFBQSxZQUdWLGFBQWE7QUFBQSxZQUdiLGFBQWEsS0FBSztBQUFBLFlBR2xCLFlBQVksT0FBTztBQUFBO0FBQUEsVUFPcEIsYUFBYTtBQUFBLFlBQ1osS0FBSztBQUFBLFlBQ0wsU0FBUztBQUFBO0FBQUE7QUFBQSxRQU9YLFdBQVcsU0FBVSxRQUFRLFVBQVc7QUFDdkMsaUJBQU8sV0FHTixXQUFZLFdBQVksUUFBUSxPQUFPLGVBQWdCLFlBR3ZELFdBQVksT0FBTyxjQUFjO0FBQUE7QUFBQSxRQUduQyxlQUFlLDRCQUE2QjtBQUFBLFFBQzVDLGVBQWUsNEJBQTZCO0FBQUEsUUFHNUMsTUFBTSxTQUFVLEtBQUssU0FBVTtBQUc5QixjQUFLLE9BQU8sUUFBUSxVQUFXO0FBQzlCLHNCQUFVO0FBQ1Ysa0JBQU07QUFBQTtBQUlQLG9CQUFVLFdBQVc7QUFFckIsY0FBSSxXQUdILFVBR0EsdUJBQ0EsaUJBR0EsY0FHQSxXQUdBLFlBR0EsYUFHQSxHQUdBLFVBR0EsSUFBSSxPQUFPLFVBQVcsSUFBSSxVQUcxQixrQkFBa0IsRUFBRSxXQUFXLEdBRy9CLHFCQUFxQixFQUFFLFdBQ3BCLGlCQUFnQixZQUFZLGdCQUFnQixVQUM5QyxPQUFRLG1CQUNSLE9BQU8sT0FHUixXQUFXLE9BQU8sWUFDbEIsbUJBQW1CLE9BQU8sVUFBVyxnQkFHckMsYUFBYSxFQUFFLGNBQWMsSUFHN0IsaUJBQWlCLElBQ2pCLHNCQUFzQixJQUd0QixXQUFXLFlBR1gsUUFBUTtBQUFBLFlBQ1AsWUFBWTtBQUFBLFlBR1osbUJBQW1CLFNBQVUsS0FBTTtBQUNsQyxrQkFBSTtBQUNKLGtCQUFLLFlBQVk7QUFDaEIsb0JBQUssQ0FBQyxpQkFBa0I7QUFDdkIsb0NBQWtCO0FBQ2xCLHlCQUFVLFFBQVEsU0FBUyxLQUFNLHdCQUE0QjtBQUM1RCxvQ0FBaUIsTUFBTyxHQUFJLGdCQUFnQixPQUN6QyxpQkFBaUIsTUFBTyxHQUFJLGdCQUFnQixRQUFTLElBQ3JELE9BQVEsTUFBTztBQUFBO0FBQUE7QUFHcEIsd0JBQVEsZ0JBQWlCLElBQUksZ0JBQWdCO0FBQUE7QUFFOUMscUJBQU8sU0FBUyxPQUFPLE9BQU8sTUFBTSxLQUFNO0FBQUE7QUFBQSxZQUkzQyx1QkFBdUIsV0FBVztBQUNqQyxxQkFBTyxhQUFZLHdCQUF3QjtBQUFBO0FBQUEsWUFJNUMsa0JBQWtCLFNBQVUsTUFBTSxPQUFRO0FBQ3pDLGtCQUFLLGNBQWEsTUFBTztBQUN4Qix1QkFBTyxvQkFBcUIsS0FBSyxpQkFDaEMsb0JBQXFCLEtBQUssa0JBQW1CO0FBQzlDLCtCQUFnQixRQUFTO0FBQUE7QUFFMUIscUJBQU87QUFBQTtBQUFBLFlBSVIsa0JBQWtCLFNBQVUsTUFBTztBQUNsQyxrQkFBSyxjQUFhLE1BQU87QUFDeEIsa0JBQUUsV0FBVztBQUFBO0FBRWQscUJBQU87QUFBQTtBQUFBLFlBSVIsWUFBWSxTQUFVLEtBQU07QUFDM0Isa0JBQUk7QUFDSixrQkFBSyxLQUFNO0FBQ1Ysb0JBQUssWUFBWTtBQUdoQix3QkFBTSxPQUFRLElBQUssTUFBTTtBQUFBLHVCQUNuQjtBQUdOLHVCQUFNLFFBQVEsS0FBTTtBQUNuQiwrQkFBWSxRQUFTLENBQUUsV0FBWSxPQUFRLElBQUs7QUFBQTtBQUFBO0FBQUE7QUFJbkQscUJBQU87QUFBQTtBQUFBLFlBSVIsT0FBTyxTQUFVLFlBQWE7QUFDN0Isa0JBQUksWUFBWSxjQUFjO0FBQzlCLGtCQUFLLFdBQVk7QUFDaEIsMEJBQVUsTUFBTztBQUFBO0FBRWxCLG1CQUFNLEdBQUc7QUFDVCxxQkFBTztBQUFBO0FBQUE7QUFLVixtQkFBUyxRQUFTO0FBS2xCLFlBQUUsTUFBVSxTQUFPLEVBQUUsT0FBTyxTQUFTLFFBQVMsSUFDNUMsUUFBUyxXQUFXLFNBQVMsV0FBVztBQUcxQyxZQUFFLE9BQU8sUUFBUSxVQUFVLFFBQVEsUUFBUSxFQUFFLFVBQVUsRUFBRTtBQUd6RCxZQUFFLFlBQWMsR0FBRSxZQUFZLEtBQU0sY0FBYyxNQUFPLGtCQUFtQixDQUFFO0FBRzlFLGNBQUssRUFBRSxlQUFlLE1BQU87QUFDNUIsd0JBQVksVUFBUyxjQUFlO0FBS3BDLGdCQUFJO0FBQ0gsd0JBQVUsT0FBTyxFQUFFO0FBSW5CLHdCQUFVLE9BQU8sVUFBVTtBQUMzQixnQkFBRSxjQUFjLGFBQWEsV0FBVyxPQUFPLGFBQWEsU0FDM0QsVUFBVSxXQUFXLE9BQU8sVUFBVTtBQUFBLHFCQUM5QixHQUFSO0FBSUQsZ0JBQUUsY0FBYztBQUFBO0FBQUE7QUFLbEIsY0FBSyxFQUFFLFFBQVEsRUFBRSxlQUFlLE9BQU8sRUFBRSxTQUFTLFVBQVc7QUFDNUQsY0FBRSxPQUFPLE9BQU8sTUFBTyxFQUFFLE1BQU0sRUFBRTtBQUFBO0FBSWxDLHdDQUErQixZQUFZLEdBQUcsU0FBUztBQUd2RCxjQUFLLFlBQVk7QUFDaEIsbUJBQU87QUFBQTtBQUtSLHdCQUFjLE9BQU8sU0FBUyxFQUFFO0FBR2hDLGNBQUssZUFBZSxPQUFPLGFBQWEsR0FBSTtBQUMzQyxtQkFBTyxNQUFNLFFBQVM7QUFBQTtBQUl2QixZQUFFLE9BQU8sRUFBRSxLQUFLO0FBR2hCLFlBQUUsYUFBYSxDQUFDLFdBQVcsS0FBTSxFQUFFO0FBS25DLHFCQUFXLEVBQUUsSUFBSSxRQUFTLE9BQU87QUFHakMsY0FBSyxDQUFDLEVBQUUsWUFBYTtBQUdwQix1QkFBVyxFQUFFLElBQUksTUFBTyxTQUFTO0FBR2pDLGdCQUFLLEVBQUUsUUFBVSxHQUFFLGVBQWUsT0FBTyxFQUFFLFNBQVMsV0FBYTtBQUNoRSwwQkFBYyxRQUFPLEtBQU0sWUFBYSxNQUFNLE9BQVEsRUFBRTtBQUd4RCxxQkFBTyxFQUFFO0FBQUE7QUFJVixnQkFBSyxFQUFFLFVBQVUsT0FBUTtBQUN4Qix5QkFBVyxTQUFTLFFBQVMsWUFBWTtBQUN6Qyx5QkFBYSxRQUFPLEtBQU0sWUFBYSxNQUFNLE9BQVEsT0FBUyxNQUFNLFNBQ25FO0FBQUE7QUFJRixjQUFFLE1BQU0sV0FBVztBQUFBLHFCQUdSLEVBQUUsUUFBUSxFQUFFLGVBQ3JCLEdBQUUsZUFBZSxJQUFLLFFBQVMseUNBQTBDLEdBQUk7QUFDL0UsY0FBRSxPQUFPLEVBQUUsS0FBSyxRQUFTLEtBQUs7QUFBQTtBQUkvQixjQUFLLEVBQUUsWUFBYTtBQUNuQixnQkFBSyxPQUFPLGFBQWMsV0FBYTtBQUN0QyxvQkFBTSxpQkFBa0IscUJBQXFCLE9BQU8sYUFBYztBQUFBO0FBRW5FLGdCQUFLLE9BQU8sS0FBTSxXQUFhO0FBQzlCLG9CQUFNLGlCQUFrQixpQkFBaUIsT0FBTyxLQUFNO0FBQUE7QUFBQTtBQUt4RCxjQUFLLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsU0FBUyxRQUFRLGFBQWM7QUFDL0Usa0JBQU0saUJBQWtCLGdCQUFnQixFQUFFO0FBQUE7QUFJM0MsZ0JBQU0saUJBQ0wsVUFDQSxFQUFFLFVBQVcsTUFBTyxFQUFFLFFBQVMsRUFBRSxVQUFXLE1BQzNDLEVBQUUsUUFBUyxFQUFFLFVBQVcsTUFDckIsR0FBRSxVQUFXLE9BQVEsTUFBTSxPQUFPLFdBQVcsYUFBYSxNQUM3RCxFQUFFLFFBQVM7QUFJYixlQUFNLEtBQUssRUFBRSxTQUFVO0FBQ3RCLGtCQUFNLGlCQUFrQixHQUFHLEVBQUUsUUFBUztBQUFBO0FBSXZDLGNBQUssRUFBRSxjQUNKLEdBQUUsV0FBVyxLQUFNLGlCQUFpQixPQUFPLE9BQVEsU0FBUyxhQUFjO0FBRzVFLG1CQUFPLE1BQU07QUFBQTtBQUlkLHFCQUFXO0FBR1gsMkJBQWlCLElBQUssRUFBRTtBQUN4QixnQkFBTSxLQUFNLEVBQUU7QUFDZCxnQkFBTSxLQUFNLEVBQUU7QUFHZCxzQkFBWSw4QkFBK0IsWUFBWSxHQUFHLFNBQVM7QUFHbkUsY0FBSyxDQUFDLFdBQVk7QUFDakIsaUJBQU0sSUFBSTtBQUFBLGlCQUNKO0FBQ04sa0JBQU0sYUFBYTtBQUduQixnQkFBSyxhQUFjO0FBQ2xCLGlDQUFtQixRQUFTLFlBQVksQ0FBRSxPQUFPO0FBQUE7QUFJbEQsZ0JBQUssWUFBWTtBQUNoQixxQkFBTztBQUFBO0FBSVIsZ0JBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxHQUFJO0FBQy9CLDZCQUFlLFFBQU8sV0FBWSxXQUFXO0FBQzVDLHNCQUFNLE1BQU87QUFBQSxpQkFDWCxFQUFFO0FBQUE7QUFHTixnQkFBSTtBQUNILDJCQUFZO0FBQ1osd0JBQVUsS0FBTSxnQkFBZ0I7QUFBQSxxQkFDdkIsR0FBUjtBQUdELGtCQUFLLFlBQVk7QUFDaEIsc0JBQU07QUFBQTtBQUlQLG1CQUFNLElBQUk7QUFBQTtBQUFBO0FBS1osd0JBQWUsUUFBUSxrQkFBa0IsV0FBVyxTQUFVO0FBQzdELGdCQUFJLFdBQVcsU0FBUyxPQUFPLFVBQVUsVUFDeEMsYUFBYTtBQUdkLGdCQUFLLFlBQVk7QUFDaEI7QUFBQTtBQUdELHlCQUFZO0FBR1osZ0JBQUssY0FBZTtBQUNuQixzQkFBTyxhQUFjO0FBQUE7QUFLdEIsd0JBQVk7QUFHWixvQ0FBd0IsV0FBVztBQUduQyxrQkFBTSxhQUFhLFNBQVMsSUFBSSxJQUFJO0FBR3BDLHdCQUFZLFVBQVUsT0FBTyxTQUFTLE9BQU8sV0FBVztBQUd4RCxnQkFBSyxXQUFZO0FBQ2hCLHlCQUFXLG9CQUFxQixHQUFHLE9BQU87QUFBQTtBQUkzQyxnQkFBSyxDQUFDLGFBQ0wsT0FBTyxRQUFTLFVBQVUsRUFBRSxhQUFjLE1BQzFDLE9BQU8sUUFBUyxRQUFRLEVBQUUsYUFBYyxHQUFJO0FBQzVDLGdCQUFFLFdBQVksaUJBQWtCLFdBQVc7QUFBQTtBQUFBO0FBSTVDLHVCQUFXLFlBQWEsR0FBRyxVQUFVLE9BQU87QUFHNUMsZ0JBQUssV0FBWTtBQUdoQixrQkFBSyxFQUFFLFlBQWE7QUFDbkIsMkJBQVcsTUFBTSxrQkFBbUI7QUFDcEMsb0JBQUssVUFBVztBQUNmLHlCQUFPLGFBQWMsWUFBYTtBQUFBO0FBRW5DLDJCQUFXLE1BQU0sa0JBQW1CO0FBQ3BDLG9CQUFLLFVBQVc7QUFDZix5QkFBTyxLQUFNLFlBQWE7QUFBQTtBQUFBO0FBSzVCLGtCQUFLLFdBQVcsT0FBTyxFQUFFLFNBQVMsUUFBUztBQUMxQyw2QkFBYTtBQUFBLHlCQUdGLFdBQVcsS0FBTTtBQUM1Qiw2QkFBYTtBQUFBLHFCQUdQO0FBQ04sNkJBQWEsU0FBUztBQUN0QiwwQkFBVSxTQUFTO0FBQ25CLHdCQUFRLFNBQVM7QUFDakIsNEJBQVksQ0FBQztBQUFBO0FBQUEsbUJBRVI7QUFHTixzQkFBUTtBQUNSLGtCQUFLLFVBQVUsQ0FBQyxZQUFhO0FBQzVCLDZCQUFhO0FBQ2Isb0JBQUssU0FBUyxHQUFJO0FBQ2pCLDJCQUFTO0FBQUE7QUFBQTtBQUFBO0FBTVosa0JBQU0sU0FBUztBQUNmLGtCQUFNLGFBQWUscUJBQW9CLGNBQWU7QUFHeEQsZ0JBQUssV0FBWTtBQUNoQix1QkFBUyxZQUFhLGlCQUFpQixDQUFFLFNBQVMsWUFBWTtBQUFBLG1CQUN4RDtBQUNOLHVCQUFTLFdBQVksaUJBQWlCLENBQUUsT0FBTyxZQUFZO0FBQUE7QUFJNUQsa0JBQU0sV0FBWTtBQUNsQix5QkFBYTtBQUViLGdCQUFLLGFBQWM7QUFDbEIsaUNBQW1CLFFBQVMsWUFBWSxnQkFBZ0IsYUFDdkQsQ0FBRSxPQUFPLEdBQUcsWUFBWSxVQUFVO0FBQUE7QUFJcEMsNkJBQWlCLFNBQVUsaUJBQWlCLENBQUUsT0FBTztBQUVyRCxnQkFBSyxhQUFjO0FBQ2xCLGlDQUFtQixRQUFTLGdCQUFnQixDQUFFLE9BQU87QUFHckQsa0JBQUssQ0FBRyxFQUFFLE9BQU8sUUFBVztBQUMzQix1QkFBTyxNQUFNLFFBQVM7QUFBQTtBQUFBO0FBQUE7QUFLekIsaUJBQU87QUFBQTtBQUFBLFFBR1IsU0FBUyxTQUFVLEtBQUssTUFBTSxVQUFXO0FBQ3hDLGlCQUFPLE9BQU8sSUFBSyxLQUFLLE1BQU0sVUFBVTtBQUFBO0FBQUEsUUFHekMsV0FBVyxTQUFVLEtBQUssVUFBVztBQUNwQyxpQkFBTyxPQUFPLElBQUssS0FBSyxRQUFXLFVBQVU7QUFBQTtBQUFBO0FBSS9DLGFBQU8sS0FBTSxDQUFFLE9BQU8sU0FBVSxTQUFVLElBQUksUUFBUztBQUN0RCxlQUFRLFVBQVcsU0FBVSxLQUFLLE1BQU0sVUFBVSxNQUFPO0FBR3hELGNBQUssV0FBWSxPQUFTO0FBQ3pCLG1CQUFPLFFBQVE7QUFDZix1QkFBVztBQUNYLG1CQUFPO0FBQUE7QUFJUixpQkFBTyxPQUFPLEtBQU0sT0FBTyxPQUFRO0FBQUEsWUFDbEM7QUFBQSxZQUNBLE1BQU07QUFBQSxZQUNOLFVBQVU7QUFBQSxZQUNWO0FBQUEsWUFDQSxTQUFTO0FBQUEsYUFDUCxPQUFPLGNBQWUsUUFBUztBQUFBO0FBQUE7QUFJcEMsYUFBTyxjQUFlLFNBQVUsR0FBSTtBQUNuQyxZQUFJO0FBQ0osYUFBTSxLQUFLLEVBQUUsU0FBVTtBQUN0QixjQUFLLEVBQUUsa0JBQWtCLGdCQUFpQjtBQUN6QyxjQUFFLGNBQWMsRUFBRSxRQUFTLE1BQU87QUFBQTtBQUFBO0FBQUE7QUFNckMsYUFBTyxXQUFXLFNBQVUsS0FBSyxTQUFTLEtBQU07QUFDL0MsZUFBTyxPQUFPLEtBQU07QUFBQSxVQUNuQjtBQUFBLFVBR0EsTUFBTTtBQUFBLFVBQ04sVUFBVTtBQUFBLFVBQ1YsT0FBTztBQUFBLFVBQ1AsT0FBTztBQUFBLFVBQ1AsUUFBUTtBQUFBLFVBS1IsWUFBWTtBQUFBLFlBQ1gsZUFBZSxXQUFXO0FBQUE7QUFBQTtBQUFBLFVBRTNCLFlBQVksU0FBVSxVQUFXO0FBQ2hDLG1CQUFPLFdBQVksVUFBVSxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBTXpDLGFBQU8sR0FBRyxPQUFRO0FBQUEsUUFDakIsU0FBUyxTQUFVLE1BQU87QUFDekIsY0FBSTtBQUVKLGNBQUssS0FBTSxJQUFNO0FBQ2hCLGdCQUFLLFdBQVksT0FBUztBQUN6QixxQkFBTyxLQUFLLEtBQU0sS0FBTTtBQUFBO0FBSXpCLG1CQUFPLE9BQVEsTUFBTSxLQUFNLEdBQUksZUFBZ0IsR0FBSSxHQUFJLE1BQU87QUFFOUQsZ0JBQUssS0FBTSxHQUFJLFlBQWE7QUFDM0IsbUJBQUssYUFBYyxLQUFNO0FBQUE7QUFHMUIsaUJBQUssSUFBSyxXQUFXO0FBQ3BCLGtCQUFJLE9BQU87QUFFWCxxQkFBUSxLQUFLLG1CQUFvQjtBQUNoQyx1QkFBTyxLQUFLO0FBQUE7QUFHYixxQkFBTztBQUFBLGVBQ0osT0FBUTtBQUFBO0FBR2IsaUJBQU87QUFBQTtBQUFBLFFBR1IsV0FBVyxTQUFVLE1BQU87QUFDM0IsY0FBSyxXQUFZLE9BQVM7QUFDekIsbUJBQU8sS0FBSyxLQUFNLFNBQVUsR0FBSTtBQUMvQixxQkFBUSxNQUFPLFVBQVcsS0FBSyxLQUFNLE1BQU07QUFBQTtBQUFBO0FBSTdDLGlCQUFPLEtBQUssS0FBTSxXQUFXO0FBQzVCLGdCQUFJLFFBQU8sT0FBUSxPQUNsQixXQUFXLE1BQUs7QUFFakIsZ0JBQUssU0FBUyxRQUFTO0FBQ3RCLHVCQUFTLFFBQVM7QUFBQSxtQkFFWjtBQUNOLG9CQUFLLE9BQVE7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQUtoQixNQUFNLFNBQVUsTUFBTztBQUN0QixjQUFJLGlCQUFpQixXQUFZO0FBRWpDLGlCQUFPLEtBQUssS0FBTSxTQUFVLEdBQUk7QUFDL0IsbUJBQVEsTUFBTyxRQUFTLGlCQUFpQixLQUFLLEtBQU0sTUFBTSxLQUFNO0FBQUE7QUFBQTtBQUFBLFFBSWxFLFFBQVEsU0FBVSxVQUFXO0FBQzVCLGVBQUssT0FBUSxVQUFXLElBQUssUUFBUyxLQUFNLFdBQVc7QUFDdEQsbUJBQVEsTUFBTyxZQUFhLEtBQUs7QUFBQTtBQUVsQyxpQkFBTztBQUFBO0FBQUE7QUFLVCxhQUFPLEtBQUssUUFBUSxTQUFTLFNBQVUsTUFBTztBQUM3QyxlQUFPLENBQUMsT0FBTyxLQUFLLFFBQVEsUUFBUztBQUFBO0FBRXRDLGFBQU8sS0FBSyxRQUFRLFVBQVUsU0FBVSxNQUFPO0FBQzlDLGVBQU8sQ0FBQyxDQUFHLE1BQUssZUFBZSxLQUFLLGdCQUFnQixLQUFLLGlCQUFpQjtBQUFBO0FBTTNFLGFBQU8sYUFBYSxNQUFNLFdBQVc7QUFDcEMsWUFBSTtBQUNILGlCQUFPLElBQUksUUFBTztBQUFBLGlCQUNULEdBQVI7QUFBQTtBQUFBO0FBR0gsVUFBSSxtQkFBbUI7QUFBQSxRQUdyQixHQUFHO0FBQUEsUUFJSCxNQUFNO0FBQUEsU0FFUCxlQUFlLE9BQU8sYUFBYTtBQUVwQyxjQUFRLE9BQU8sQ0FBQyxDQUFDLGdCQUFrQixxQkFBcUI7QUFDeEQsY0FBUSxPQUFPLGVBQWUsQ0FBQyxDQUFDO0FBRWhDLGFBQU8sY0FBZSxTQUFVLFNBQVU7QUFDekMsWUFBSSxVQUFVO0FBR2QsWUFBSyxRQUFRLFFBQVEsZ0JBQWdCLENBQUMsUUFBUSxhQUFjO0FBQzNELGlCQUFPO0FBQUEsWUFDTixNQUFNLFNBQVUsU0FBUyxVQUFXO0FBQ25DLGtCQUFJLEdBQ0gsTUFBTSxRQUFRO0FBRWYsa0JBQUksS0FDSCxRQUFRLE1BQ1IsUUFBUSxLQUNSLFFBQVEsT0FDUixRQUFRLFVBQ1IsUUFBUTtBQUlULGtCQUFLLFFBQVEsV0FBWTtBQUN4QixxQkFBTSxLQUFLLFFBQVEsV0FBWTtBQUM5QixzQkFBSyxLQUFNLFFBQVEsVUFBVztBQUFBO0FBQUE7QUFLaEMsa0JBQUssUUFBUSxZQUFZLElBQUksa0JBQW1CO0FBQy9DLG9CQUFJLGlCQUFrQixRQUFRO0FBQUE7QUFRL0Isa0JBQUssQ0FBQyxRQUFRLGVBQWUsQ0FBQyxRQUFTLHFCQUF1QjtBQUM3RCx3QkFBUyxzQkFBdUI7QUFBQTtBQUlqQyxtQkFBTSxLQUFLLFNBQVU7QUFDcEIsb0JBQUksaUJBQWtCLEdBQUcsUUFBUztBQUFBO0FBSW5DLHlCQUFXLFNBQVUsTUFBTztBQUMzQix1QkFBTyxXQUFXO0FBQ2pCLHNCQUFLLFVBQVc7QUFDZiwrQkFBVyxnQkFBZ0IsSUFBSSxTQUM5QixJQUFJLFVBQVUsSUFBSSxVQUFVLElBQUksWUFDL0IsSUFBSSxxQkFBcUI7QUFFM0Isd0JBQUssU0FBUyxTQUFVO0FBQ3ZCLDBCQUFJO0FBQUEsK0JBQ08sU0FBUyxTQUFVO0FBSzlCLDBCQUFLLE9BQU8sSUFBSSxXQUFXLFVBQVc7QUFDckMsaUNBQVUsR0FBRztBQUFBLDZCQUNQO0FBQ04saUNBR0MsSUFBSSxRQUNKLElBQUk7QUFBQTtBQUFBLDJCQUdBO0FBQ04sK0JBQ0MsaUJBQWtCLElBQUksV0FBWSxJQUFJLFFBQ3RDLElBQUksWUFLRixLQUFJLGdCQUFnQixZQUFhLFVBQ25DLE9BQU8sSUFBSSxpQkFBaUIsV0FDM0IsRUFBRSxRQUFRLElBQUksYUFDZCxFQUFFLE1BQU0sSUFBSSxnQkFDYixJQUFJO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRVCxrQkFBSSxTQUFTO0FBQ2IsOEJBQWdCLElBQUksVUFBVSxJQUFJLFlBQVksU0FBVTtBQUt4RCxrQkFBSyxJQUFJLFlBQVksUUFBWTtBQUNoQyxvQkFBSSxVQUFVO0FBQUEscUJBQ1I7QUFDTixvQkFBSSxxQkFBcUIsV0FBVztBQUduQyxzQkFBSyxJQUFJLGVBQWUsR0FBSTtBQU0zQiw0QkFBTyxXQUFZLFdBQVc7QUFDN0IsMEJBQUssVUFBVztBQUNmO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFMLHlCQUFXLFNBQVU7QUFFckIsa0JBQUk7QUFHSCxvQkFBSSxLQUFNLFFBQVEsY0FBYyxRQUFRLFFBQVE7QUFBQSx1QkFDdkMsR0FBUjtBQUdELG9CQUFLLFVBQVc7QUFDZix3QkFBTTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBS1QsT0FBTyxXQUFXO0FBQ2pCLGtCQUFLLFVBQVc7QUFDZjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXTCxhQUFPLGNBQWUsU0FBVSxHQUFJO0FBQ25DLFlBQUssRUFBRSxhQUFjO0FBQ3BCLFlBQUUsU0FBUyxTQUFTO0FBQUE7QUFBQTtBQUt0QixhQUFPLFVBQVc7QUFBQSxRQUNqQixTQUFTO0FBQUEsVUFDUixRQUFRO0FBQUE7QUFBQSxRQUdULFVBQVU7QUFBQSxVQUNULFFBQVE7QUFBQTtBQUFBLFFBRVQsWUFBWTtBQUFBLFVBQ1gsZUFBZSxTQUFVLE1BQU87QUFDL0IsbUJBQU8sV0FBWTtBQUNuQixtQkFBTztBQUFBO0FBQUE7QUFBQTtBQU1WLGFBQU8sY0FBZSxVQUFVLFNBQVUsR0FBSTtBQUM3QyxZQUFLLEVBQUUsVUFBVSxRQUFZO0FBQzVCLFlBQUUsUUFBUTtBQUFBO0FBRVgsWUFBSyxFQUFFLGFBQWM7QUFDcEIsWUFBRSxPQUFPO0FBQUE7QUFBQTtBQUtYLGFBQU8sY0FBZSxVQUFVLFNBQVUsR0FBSTtBQUc3QyxZQUFLLEVBQUUsZUFBZSxFQUFFLGFBQWM7QUFDckMsY0FBSSxRQUFRO0FBQ1osaUJBQU87QUFBQSxZQUNOLE1BQU0sU0FBVSxHQUFHLFVBQVc7QUFDN0IsdUJBQVMsT0FBUSxZQUNmLEtBQU0sRUFBRSxlQUFlLElBQ3ZCLEtBQU0sRUFBRSxTQUFTLEVBQUUsZUFBZSxLQUFLLEVBQUUsT0FDekMsR0FBSSxjQUFjLFdBQVcsU0FBVSxLQUFNO0FBQzdDLHVCQUFPO0FBQ1AsMkJBQVc7QUFDWCxvQkFBSyxLQUFNO0FBQ1YsMkJBQVUsSUFBSSxTQUFTLFVBQVUsTUFBTSxLQUFLLElBQUk7QUFBQTtBQUFBO0FBS25ELHdCQUFTLEtBQUssWUFBYSxPQUFRO0FBQUE7QUFBQSxZQUVwQyxPQUFPLFdBQVc7QUFDakIsa0JBQUssVUFBVztBQUNmO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVMLFVBQUksZUFBZSxJQUNsQixTQUFTO0FBR1YsYUFBTyxVQUFXO0FBQUEsUUFDakIsT0FBTztBQUFBLFFBQ1AsZUFBZSxXQUFXO0FBQ3pCLGNBQUksV0FBVyxhQUFhLFNBQVcsT0FBTyxVQUFVLE1BQVEsTUFBTTtBQUN0RSxlQUFNLFlBQWE7QUFDbkIsaUJBQU87QUFBQTtBQUFBO0FBS1QsYUFBTyxjQUFlLGNBQWMsU0FBVSxHQUFHLGtCQUFrQixPQUFRO0FBRTFFLFlBQUksY0FBYyxhQUFhLG1CQUM5QixXQUFXLEVBQUUsVUFBVSxTQUFXLFFBQU8sS0FBTSxFQUFFLE9BQ2hELFFBQ0EsT0FBTyxFQUFFLFNBQVMsWUFDZixHQUFFLGVBQWUsSUFDakIsUUFBUyx5Q0FBMEMsS0FDckQsT0FBTyxLQUFNLEVBQUUsU0FBVTtBQUk1QixZQUFLLFlBQVksRUFBRSxVQUFXLE9BQVEsU0FBVTtBQUcvQyx5QkFBZSxFQUFFLGdCQUFnQixXQUFZLEVBQUUsaUJBQzlDLEVBQUUsa0JBQ0YsRUFBRTtBQUdILGNBQUssVUFBVztBQUNmLGNBQUcsWUFBYSxFQUFHLFVBQVcsUUFBUyxRQUFRLE9BQU87QUFBQSxxQkFDM0MsRUFBRSxVQUFVLE9BQVE7QUFDL0IsY0FBRSxPQUFTLFFBQU8sS0FBTSxFQUFFLE9BQVEsTUFBTSxPQUFRLEVBQUUsUUFBUSxNQUFNO0FBQUE7QUFJakUsWUFBRSxXQUFZLGlCQUFrQixXQUFXO0FBQzFDLGdCQUFLLENBQUMsbUJBQW9CO0FBQ3pCLHFCQUFPLE1BQU8sZUFBZTtBQUFBO0FBRTlCLG1CQUFPLGtCQUFtQjtBQUFBO0FBSTNCLFlBQUUsVUFBVyxLQUFNO0FBR25CLHdCQUFjLFFBQVE7QUFDdEIsa0JBQVEsZ0JBQWlCLFdBQVc7QUFDbkMsZ0NBQW9CO0FBQUE7QUFJckIsZ0JBQU0sT0FBUSxXQUFXO0FBR3hCLGdCQUFLLGdCQUFnQixRQUFZO0FBQ2hDLHFCQUFRLFNBQVMsV0FBWTtBQUFBLG1CQUd2QjtBQUNOLHNCQUFRLGdCQUFpQjtBQUFBO0FBSTFCLGdCQUFLLEVBQUcsZUFBaUI7QUFHeEIsZ0JBQUUsZ0JBQWdCLGlCQUFpQjtBQUduQywyQkFBYSxLQUFNO0FBQUE7QUFJcEIsZ0JBQUsscUJBQXFCLFdBQVksY0FBZ0I7QUFDckQsMEJBQWEsa0JBQW1CO0FBQUE7QUFHakMsZ0NBQW9CLGNBQWM7QUFBQTtBQUluQyxpQkFBTztBQUFBO0FBQUE7QUFZVCxjQUFRLHFCQUF1QixXQUFXO0FBQ3pDLFlBQUksT0FBTyxVQUFTLGVBQWUsbUJBQW9CLElBQUs7QUFDNUQsYUFBSyxZQUFZO0FBQ2pCLGVBQU8sS0FBSyxXQUFXLFdBQVc7QUFBQTtBQVFuQyxhQUFPLFlBQVksU0FBVSxNQUFNLFNBQVMsYUFBYztBQUN6RCxZQUFLLE9BQU8sU0FBUyxVQUFXO0FBQy9CLGlCQUFPO0FBQUE7QUFFUixZQUFLLE9BQU8sWUFBWSxXQUFZO0FBQ25DLHdCQUFjO0FBQ2Qsb0JBQVU7QUFBQTtBQUdYLFlBQUksTUFBTSxRQUFRO0FBRWxCLFlBQUssQ0FBQyxTQUFVO0FBSWYsY0FBSyxRQUFRLG9CQUFxQjtBQUNqQyxzQkFBVSxVQUFTLGVBQWUsbUJBQW9CO0FBS3RELG1CQUFPLFFBQVEsY0FBZTtBQUM5QixpQkFBSyxPQUFPLFVBQVMsU0FBUztBQUM5QixvQkFBUSxLQUFLLFlBQWE7QUFBQSxpQkFDcEI7QUFDTixzQkFBVTtBQUFBO0FBQUE7QUFJWixpQkFBUyxXQUFXLEtBQU07QUFDMUIsa0JBQVUsQ0FBQyxlQUFlO0FBRzFCLFlBQUssUUFBUztBQUNiLGlCQUFPLENBQUUsUUFBUSxjQUFlLE9BQVE7QUFBQTtBQUd6QyxpQkFBUyxjQUFlLENBQUUsT0FBUSxTQUFTO0FBRTNDLFlBQUssV0FBVyxRQUFRLFFBQVM7QUFDaEMsaUJBQVEsU0FBVTtBQUFBO0FBR25CLGVBQU8sT0FBTyxNQUFPLElBQUksT0FBTztBQUFBO0FBT2pDLGFBQU8sR0FBRyxPQUFPLFNBQVUsS0FBSyxRQUFRLFVBQVc7QUFDbEQsWUFBSSxVQUFVLE1BQU0sVUFDbkIsUUFBTyxNQUNQLE1BQU0sSUFBSSxRQUFTO0FBRXBCLFlBQUssTUFBTSxJQUFLO0FBQ2YscUJBQVcsaUJBQWtCLElBQUksTUFBTztBQUN4QyxnQkFBTSxJQUFJLE1BQU8sR0FBRztBQUFBO0FBSXJCLFlBQUssV0FBWSxTQUFXO0FBRzNCLHFCQUFXO0FBQ1gsbUJBQVM7QUFBQSxtQkFHRSxVQUFVLE9BQU8sV0FBVyxVQUFXO0FBQ2xELGlCQUFPO0FBQUE7QUFJUixZQUFLLE1BQUssU0FBUyxHQUFJO0FBQ3RCLGlCQUFPLEtBQU07QUFBQSxZQUNaO0FBQUEsWUFLQSxNQUFNLFFBQVE7QUFBQSxZQUNkLFVBQVU7QUFBQSxZQUNWLE1BQU07QUFBQSxhQUNILEtBQU0sU0FBVSxjQUFlO0FBR2xDLHVCQUFXO0FBRVgsa0JBQUssS0FBTSxXQUlWLE9BQVEsU0FBVSxPQUFRLE9BQU8sVUFBVyxlQUFpQixLQUFNLFlBR25FO0FBQUEsYUFLRSxPQUFRLFlBQVksU0FBVSxPQUFPLFFBQVM7QUFDakQsa0JBQUssS0FBTSxXQUFXO0FBQ3JCLHVCQUFTLE1BQU8sTUFBTSxZQUFZLENBQUUsTUFBTSxjQUFjLFFBQVE7QUFBQTtBQUFBO0FBQUE7QUFLbkUsZUFBTztBQUFBO0FBTVIsYUFBTyxLQUFLLFFBQVEsV0FBVyxTQUFVLE1BQU87QUFDL0MsZUFBTyxPQUFPLEtBQU0sT0FBTyxRQUFRLFNBQVUsSUFBSztBQUNqRCxpQkFBTyxTQUFTLEdBQUc7QUFBQSxXQUNoQjtBQUFBO0FBTUwsYUFBTyxTQUFTO0FBQUEsUUFDZixXQUFXLFNBQVUsTUFBTSxTQUFTLEdBQUk7QUFDdkMsY0FBSSxhQUFhLFNBQVMsV0FBVyxRQUFRLFdBQVcsWUFBWSxtQkFDbkUsV0FBVyxPQUFPLElBQUssTUFBTSxhQUM3QixVQUFVLE9BQVEsT0FDbEIsUUFBUTtBQUdULGNBQUssYUFBYSxVQUFXO0FBQzVCLGlCQUFLLE1BQU0sV0FBVztBQUFBO0FBR3ZCLHNCQUFZLFFBQVE7QUFDcEIsc0JBQVksT0FBTyxJQUFLLE1BQU07QUFDOUIsdUJBQWEsT0FBTyxJQUFLLE1BQU07QUFDL0IsOEJBQXNCLGNBQWEsY0FBYyxhQUFhLFlBQzNELGFBQVksWUFBYSxRQUFTLFVBQVc7QUFJaEQsY0FBSyxtQkFBb0I7QUFDeEIsMEJBQWMsUUFBUTtBQUN0QixxQkFBUyxZQUFZO0FBQ3JCLHNCQUFVLFlBQVk7QUFBQSxpQkFFaEI7QUFDTixxQkFBUyxXQUFZLGNBQWU7QUFDcEMsc0JBQVUsV0FBWSxlQUFnQjtBQUFBO0FBR3ZDLGNBQUssV0FBWSxVQUFZO0FBRzVCLHNCQUFVLFFBQVEsS0FBTSxNQUFNLEdBQUcsT0FBTyxPQUFRLElBQUk7QUFBQTtBQUdyRCxjQUFLLFFBQVEsT0FBTyxNQUFPO0FBQzFCLGtCQUFNLE1BQVEsUUFBUSxNQUFNLFVBQVUsTUFBUTtBQUFBO0FBRS9DLGNBQUssUUFBUSxRQUFRLE1BQU87QUFDM0Isa0JBQU0sT0FBUyxRQUFRLE9BQU8sVUFBVSxPQUFTO0FBQUE7QUFHbEQsY0FBSyxXQUFXLFNBQVU7QUFDekIsb0JBQVEsTUFBTSxLQUFNLE1BQU07QUFBQSxpQkFFcEI7QUFDTixvQkFBUSxJQUFLO0FBQUE7QUFBQTtBQUFBO0FBS2hCLGFBQU8sR0FBRyxPQUFRO0FBQUEsUUFHakIsUUFBUSxTQUFVLFNBQVU7QUFHM0IsY0FBSyxVQUFVLFFBQVM7QUFDdkIsbUJBQU8sWUFBWSxTQUNsQixPQUNBLEtBQUssS0FBTSxTQUFVLEdBQUk7QUFDeEIscUJBQU8sT0FBTyxVQUFXLE1BQU0sU0FBUztBQUFBO0FBQUE7QUFJM0MsY0FBSSxNQUFNLEtBQ1QsT0FBTyxLQUFNO0FBRWQsY0FBSyxDQUFDLE1BQU87QUFDWjtBQUFBO0FBT0QsY0FBSyxDQUFDLEtBQUssaUJBQWlCLFFBQVM7QUFDcEMsbUJBQU8sRUFBRSxLQUFLLEdBQUcsTUFBTTtBQUFBO0FBSXhCLGlCQUFPLEtBQUs7QUFDWixnQkFBTSxLQUFLLGNBQWM7QUFDekIsaUJBQU87QUFBQSxZQUNOLEtBQUssS0FBSyxNQUFNLElBQUk7QUFBQSxZQUNwQixNQUFNLEtBQUssT0FBTyxJQUFJO0FBQUE7QUFBQTtBQUFBLFFBTXhCLFVBQVUsV0FBVztBQUNwQixjQUFLLENBQUMsS0FBTSxJQUFNO0FBQ2pCO0FBQUE7QUFHRCxjQUFJLGNBQWMsUUFBUSxLQUN6QixPQUFPLEtBQU0sSUFDYixlQUFlLEVBQUUsS0FBSyxHQUFHLE1BQU07QUFHaEMsY0FBSyxPQUFPLElBQUssTUFBTSxnQkFBaUIsU0FBVTtBQUdqRCxxQkFBUyxLQUFLO0FBQUEsaUJBRVI7QUFDTixxQkFBUyxLQUFLO0FBSWQsa0JBQU0sS0FBSztBQUNYLDJCQUFlLEtBQUssZ0JBQWdCLElBQUk7QUFDeEMsbUJBQVEsZ0JBQ0wsa0JBQWlCLElBQUksUUFBUSxpQkFBaUIsSUFBSSxvQkFDcEQsT0FBTyxJQUFLLGNBQWMsZ0JBQWlCLFVBQVc7QUFFdEQsNkJBQWUsYUFBYTtBQUFBO0FBRTdCLGdCQUFLLGdCQUFnQixpQkFBaUIsUUFBUSxhQUFhLGFBQWEsR0FBSTtBQUczRSw2QkFBZSxPQUFRLGNBQWU7QUFDdEMsMkJBQWEsT0FBTyxPQUFPLElBQUssY0FBYyxrQkFBa0I7QUFDaEUsMkJBQWEsUUFBUSxPQUFPLElBQUssY0FBYyxtQkFBbUI7QUFBQTtBQUFBO0FBS3BFLGlCQUFPO0FBQUEsWUFDTixLQUFLLE9BQU8sTUFBTSxhQUFhLE1BQU0sT0FBTyxJQUFLLE1BQU0sYUFBYTtBQUFBLFlBQ3BFLE1BQU0sT0FBTyxPQUFPLGFBQWEsT0FBTyxPQUFPLElBQUssTUFBTSxjQUFjO0FBQUE7QUFBQTtBQUFBLFFBYzFFLGNBQWMsV0FBVztBQUN4QixpQkFBTyxLQUFLLElBQUssV0FBVztBQUMzQixnQkFBSSxlQUFlLEtBQUs7QUFFeEIsbUJBQVEsZ0JBQWdCLE9BQU8sSUFBSyxjQUFjLGdCQUFpQixVQUFXO0FBQzdFLDZCQUFlLGFBQWE7QUFBQTtBQUc3QixtQkFBTyxnQkFBZ0I7QUFBQTtBQUFBO0FBQUE7QUFNMUIsYUFBTyxLQUFNLEVBQUUsWUFBWSxlQUFlLFdBQVcsaUJBQWlCLFNBQVUsUUFBUSxNQUFPO0FBQzlGLFlBQUksTUFBTSxBQUFrQixTQUFsQjtBQUVWLGVBQU8sR0FBSSxVQUFXLFNBQVUsS0FBTTtBQUNyQyxpQkFBTyxPQUFRLE1BQU0sU0FBVSxNQUFNLFNBQVEsTUFBTTtBQUdsRCxnQkFBSTtBQUNKLGdCQUFLLFNBQVUsT0FBUztBQUN2QixvQkFBTTtBQUFBLHVCQUNLLEtBQUssYUFBYSxHQUFJO0FBQ2pDLG9CQUFNLEtBQUs7QUFBQTtBQUdaLGdCQUFLLFNBQVEsUUFBWTtBQUN4QixxQkFBTyxNQUFNLElBQUssUUFBUyxLQUFNO0FBQUE7QUFHbEMsZ0JBQUssS0FBTTtBQUNWLGtCQUFJLFNBQ0gsQ0FBQyxNQUFNLE9BQU0sSUFBSSxhQUNqQixNQUFNLE9BQU0sSUFBSTtBQUFBLG1CQUdYO0FBQ04sbUJBQU0sV0FBVztBQUFBO0FBQUEsYUFFaEIsUUFBUSxLQUFLLFVBQVU7QUFBQTtBQUFBO0FBVTVCLGFBQU8sS0FBTSxDQUFFLE9BQU8sU0FBVSxTQUFVLElBQUksTUFBTztBQUNwRCxlQUFPLFNBQVUsUUFBUyxhQUFjLFFBQVEsZUFDL0MsU0FBVSxNQUFNLFVBQVc7QUFDMUIsY0FBSyxVQUFXO0FBQ2YsdUJBQVcsT0FBUSxNQUFNO0FBR3pCLG1CQUFPLFVBQVUsS0FBTSxZQUN0QixPQUFRLE1BQU8sV0FBWSxRQUFTLE9BQ3BDO0FBQUE7QUFBQTtBQUFBO0FBUUwsYUFBTyxLQUFNLEVBQUUsUUFBUSxVQUFVLE9BQU8sV0FBVyxTQUFVLE1BQU0sTUFBTztBQUN6RSxlQUFPLEtBQU07QUFBQSxVQUNaLFNBQVMsVUFBVTtBQUFBLFVBQ25CLFNBQVM7QUFBQSxVQUNULElBQUksVUFBVTtBQUFBLFdBQ1osU0FBVSxjQUFjLFVBQVc7QUFHckMsaUJBQU8sR0FBSSxZQUFhLFNBQVUsUUFBUSxPQUFRO0FBQ2pELGdCQUFJLFlBQVksVUFBVSxVQUFZLGlCQUFnQixPQUFPLFdBQVcsWUFDdkUsUUFBUSxnQkFBa0IsWUFBVyxRQUFRLFVBQVUsT0FBTyxXQUFXO0FBRTFFLG1CQUFPLE9BQVEsTUFBTSxTQUFVLE1BQU0sT0FBTSxRQUFRO0FBQ2xELGtCQUFJO0FBRUosa0JBQUssU0FBVSxPQUFTO0FBR3ZCLHVCQUFPLFNBQVMsUUFBUyxhQUFjLElBQ3RDLEtBQU0sVUFBVSxRQUNoQixLQUFLLFNBQVMsZ0JBQWlCLFdBQVc7QUFBQTtBQUk1QyxrQkFBSyxLQUFLLGFBQWEsR0FBSTtBQUMxQixzQkFBTSxLQUFLO0FBSVgsdUJBQU8sS0FBSyxJQUNYLEtBQUssS0FBTSxXQUFXLE9BQVEsSUFBSyxXQUFXLE9BQzlDLEtBQUssS0FBTSxXQUFXLE9BQVEsSUFBSyxXQUFXLE9BQzlDLElBQUssV0FBVztBQUFBO0FBSWxCLHFCQUFPLFdBQVUsU0FHaEIsT0FBTyxJQUFLLE1BQU0sT0FBTSxTQUd4QixPQUFPLE1BQU8sTUFBTSxPQUFNLFFBQU87QUFBQSxlQUNoQyxNQUFNLFlBQVksU0FBUyxRQUFXO0FBQUE7QUFBQTtBQUFBO0FBTTVDLGFBQU8sS0FBTTtBQUFBLFFBQ1o7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFNBQ0UsU0FBVSxJQUFJLE1BQU87QUFDdkIsZUFBTyxHQUFJLFFBQVMsU0FBVSxJQUFLO0FBQ2xDLGlCQUFPLEtBQUssR0FBSSxNQUFNO0FBQUE7QUFBQTtBQU94QixhQUFPLEdBQUcsT0FBUTtBQUFBLFFBRWpCLE1BQU0sU0FBVSxPQUFPLE1BQU0sSUFBSztBQUNqQyxpQkFBTyxLQUFLLEdBQUksT0FBTyxNQUFNLE1BQU07QUFBQTtBQUFBLFFBRXBDLFFBQVEsU0FBVSxPQUFPLElBQUs7QUFDN0IsaUJBQU8sS0FBSyxJQUFLLE9BQU8sTUFBTTtBQUFBO0FBQUEsUUFHL0IsVUFBVSxTQUFVLFVBQVUsT0FBTyxNQUFNLElBQUs7QUFDL0MsaUJBQU8sS0FBSyxHQUFJLE9BQU8sVUFBVSxNQUFNO0FBQUE7QUFBQSxRQUV4QyxZQUFZLFNBQVUsVUFBVSxPQUFPLElBQUs7QUFHM0MsaUJBQU8sVUFBVSxXQUFXLElBQzNCLEtBQUssSUFBSyxVQUFVLFFBQ3BCLEtBQUssSUFBSyxPQUFPLFlBQVksTUFBTTtBQUFBO0FBQUEsUUFHckMsT0FBTyxTQUFVLFFBQVEsT0FBUTtBQUNoQyxpQkFBTyxLQUFLLFdBQVksUUFBUyxXQUFZLFNBQVM7QUFBQTtBQUFBO0FBSXhELGFBQU8sS0FDSix3TEFFMEQsTUFBTyxNQUNuRSxTQUFVLElBQUksTUFBTztBQUdwQixlQUFPLEdBQUksUUFBUyxTQUFVLE1BQU0sSUFBSztBQUN4QyxpQkFBTyxVQUFVLFNBQVMsSUFDekIsS0FBSyxHQUFJLE1BQU0sTUFBTSxNQUFNLE1BQzNCLEtBQUssUUFBUztBQUFBO0FBQUE7QUFVbEIsVUFBSSxRQUFRO0FBTVosYUFBTyxRQUFRLFNBQVUsSUFBSSxTQUFVO0FBQ3RDLFlBQUksS0FBSyxNQUFNO0FBRWYsWUFBSyxPQUFPLFlBQVksVUFBVztBQUNsQyxnQkFBTSxHQUFJO0FBQ1Ysb0JBQVU7QUFDVixlQUFLO0FBQUE7QUFLTixZQUFLLENBQUMsV0FBWSxLQUFPO0FBQ3hCLGlCQUFPO0FBQUE7QUFJUixlQUFPLE1BQU0sS0FBTSxXQUFXO0FBQzlCLGdCQUFRLFdBQVc7QUFDbEIsaUJBQU8sR0FBRyxNQUFPLFdBQVcsTUFBTSxLQUFLLE9BQVEsTUFBTSxLQUFNO0FBQUE7QUFJNUQsY0FBTSxPQUFPLEdBQUcsT0FBTyxHQUFHLFFBQVEsT0FBTztBQUV6QyxlQUFPO0FBQUE7QUFHUixhQUFPLFlBQVksU0FBVSxNQUFPO0FBQ25DLFlBQUssTUFBTztBQUNYLGlCQUFPO0FBQUEsZUFDRDtBQUNOLGlCQUFPLE1BQU87QUFBQTtBQUFBO0FBR2hCLGFBQU8sVUFBVSxNQUFNO0FBQ3ZCLGFBQU8sWUFBWSxLQUFLO0FBQ3hCLGFBQU8sV0FBVztBQUNsQixhQUFPLGFBQWE7QUFDcEIsYUFBTyxXQUFXO0FBQ2xCLGFBQU8sWUFBWTtBQUNuQixhQUFPLE9BQU87QUFFZCxhQUFPLE1BQU0sS0FBSztBQUVsQixhQUFPLFlBQVksU0FBVSxLQUFNO0FBS2xDLFlBQUksT0FBTyxPQUFPLEtBQU07QUFDeEIsZUFBUyxVQUFTLFlBQVksU0FBUyxhQUt0QyxDQUFDLE1BQU8sTUFBTSxXQUFZO0FBQUE7QUFHNUIsYUFBTyxPQUFPLFNBQVUsTUFBTztBQUM5QixlQUFPLFFBQVEsT0FDZCxLQUNFLFFBQU8sSUFBSyxRQUFTLE9BQU87QUFBQTtBQWtCaEMsVUFBSyxPQUFPLFdBQVcsY0FBYyxPQUFPLEtBQU07QUFDakQsZUFBUSxVQUFVLElBQUksV0FBVztBQUNoQyxpQkFBTztBQUFBO0FBQUE7QUFPVCxVQUdDLFVBQVUsUUFBTyxRQUdqQixLQUFLLFFBQU87QUFFYixhQUFPLGFBQWEsU0FBVSxNQUFPO0FBQ3BDLFlBQUssUUFBTyxNQUFNLFFBQVM7QUFDMUIsa0JBQU8sSUFBSTtBQUFBO0FBR1osWUFBSyxRQUFRLFFBQU8sV0FBVyxRQUFTO0FBQ3ZDLGtCQUFPLFNBQVM7QUFBQTtBQUdqQixlQUFPO0FBQUE7QUFNUixVQUFLLE9BQU8sYUFBYSxhQUFjO0FBQ3RDLGdCQUFPLFNBQVMsUUFBTyxJQUFJO0FBQUE7QUFNNUIsYUFBTztBQUFBO0FBQUE7QUFBQTs7O0FDL25WUDtBQUFBO0FBQUE7QUFBQSxzQkFBK0g7OztBQ0EvSCxJQUFNLGFBQWEsQ0FBQyxLQUFhLElBQUUsTUFBTTtBQUN2QyxNQUFJLFlBQVk7QUFDaEIsTUFBSSxhQUFhO0FBQ2pCLFdBQVMsSUFBSSxHQUFHLElBQUssSUFBSSxRQUFTLEtBQUs7QUFDckMsVUFBTSxPQUFPLElBQUksT0FBTztBQUN4QixRQUFJLFNBQU8sT0FBTyxJQUFFLEtBQU0sU0FBTyxPQUFPLElBQUUsR0FBSztBQUM3QyxtQkFBVztBQUFBLGVBQ0gsU0FBTyxPQUFPLElBQUUsS0FBTSxTQUFPLE9BQU8sSUFBRSxHQUFLO0FBQ25ELG9CQUFZO0FBQUE7QUFFZCxRQUFHLGNBQWMsWUFBVztBQUMxQixhQUFPO0FBQUE7QUFBQTtBQUlYLFNBQU87QUFBQTtBQUdULElBQU0sYUFBWSxDQUFDLEtBQWEsTUFBYyxZQUFvQjtBQUNqRSxTQUFPLElBQUksUUFBUSxJQUFJLE9BQU8sTUFBTSxNQUFNO0FBQUE7QUFHM0MsSUFBTSxrQkFBa0IsQ0FBQyxRQUFnQixJQUFXLE9BQWM7QUFDaEUsTUFBSSxNQUFNO0FBQ1YsTUFBSSxJQUFJLFNBQVMsU0FBUztBQUN4QixVQUFNLElBQUksUUFBUSxRQUFPO0FBQUEsU0FDdEI7QUFDSCxVQUFNLEtBQUc7QUFBQTtBQUVYLE1BQUksSUFBSSxTQUFTLFNBQVM7QUFDeEIsVUFBTSxJQUFJLFFBQVEsUUFBTztBQUFBLFNBQ3RCO0FBQ0gsVUFBTSxNQUFJO0FBQUE7QUFFWixRQUFNLFdBQVcsS0FBSyxRQUFPO0FBQzdCLFNBQU87QUFBQTtBQUdULElBQU0saUJBQWlCLENBQUMsS0FBYSxTQUFpQixjQUFzQjtBQUMxRSxNQUFJLG1CQUFtQjtBQUN2QixNQUFJLGNBQWM7QUFDbEIsTUFBSSxLQUFLO0FBQ1QsTUFBSSxLQUFLLFdBQVcsU0FBUyxRQUFPO0FBQ3BDLE1BQUssaUJBQWlCLE1BQU0sSUFBSSxTQUFPLElBQUcsR0FBRTtBQUMxQyxXQUFPLE1BQU07QUFFWCxZQUFNO0FBRU4sWUFBTSxJQUFJLGlCQUFpQixRQUFRO0FBQ25DLFVBQUksSUFBRSxLQUFLLElBQUUsaUJBQWlCLFVBQVksaUJBQWlCLE1BQU0sSUFBSSxTQUFPLElBQUcsR0FBSztBQUNsRixZQUFHLEtBQUcsS0FBTztBQUNYLGtCQUFRLElBQUk7QUFDWjtBQUFBO0FBRUYsWUFBSSxTQUFTLENBQUMsSUFBRSxHQUFFO0FBQ2xCLFlBQUksU0FBUyxDQUFDLElBQUUsR0FBRyxRQUFPLElBQUUsSUFBRSxHQUFHO0FBQ2pDLFlBQUcsaUJBQWlCLE9BQU8sSUFBRSxPQUFPLEtBQUs7QUFDdkMsY0FBSSxhQUFhLENBQUMsR0FBRyxrQkFBa0IsVUFBVSxLQUFLO0FBQ3RELG1CQUFTLENBQUUsSUFBRSxJQUFFLFdBQVcsV0FBVyxNQUFNLFdBQVcsU0FBTyxJQUFHLElBQUk7QUFBQTtBQUV0RSxZQUFHLGlCQUFpQixPQUFPLElBQUUsR0FBRyxZQUFZLEtBQUs7QUFDL0MsbUJBQVMsQ0FBQyxJQUFFLEdBQUcsUUFBUSxJQUFFLElBQUUsR0FBRyxTQUFPLFdBQVcsaUJBQWlCLE1BQU0sSUFBRSxHQUFHO0FBQUE7QUFFOUUsWUFBSSxhQUFhO0FBQUEsVUFDZixXQUFXLFFBQVE7QUFBQSxVQUNuQixjQUFjLGdCQUFnQixXQUFVLGVBQWUsaUJBQWlCLE1BQU0sT0FBTyxJQUFHLE9BQU8sS0FBSSxJQUFHLFlBQVcsZUFBZSxpQkFBaUIsTUFBTSxPQUFPLElBQUcsT0FBTyxLQUFJLElBQUc7QUFBQTtBQUVqTCxvQkFBWSxLQUFLO0FBQ2pCLDJCQUFtQixpQkFBaUIsUUFBUSxpQkFBaUIsTUFBTSxPQUFPLElBQUcsT0FBTyxLQUFJLFdBQVc7QUFBQSxhQUVoRztBQUNIO0FBQUE7QUFBQTtBQUdKLFdBQU8sTUFBTTtBQUNYLFVBQUksaUJBQWlCLE1BQU0sUUFBUSxTQUFPLElBQUcsR0FBRTtBQUM3QyxpQkFBUyxJQUFJLEdBQUcsSUFBSSxZQUFZLFFBQVEsS0FBSztBQUMzQyxnQkFBTSxhQUFhLFlBQVk7QUFDL0IsNkJBQW1CLGlCQUFpQixRQUFRLFdBQVcsV0FBVSxXQUFXO0FBQUE7QUFBQSxhQUUzRTtBQUNIO0FBQUE7QUFBQTtBQUdKLFdBQU87QUFBQSxTQUNKO0FBQ0gsV0FBTztBQUFBO0FBQUE7QUFJWCxJQUFNLHdCQUF3QixDQUFDLFFBQXdCO0FBQ3JELFFBQU0sY0FBYyxJQUFJLE1BQU07QUFDOUIsUUFBTSxhQUFhLElBQUksTUFBTTtBQUM3QixNQUFJLFFBQVMsZUFBYSxhQUFjLFlBQVksUUFBTSxXQUFXLFFBQU8sY0FBWSxhQUFhLGVBQWE7QUFDbEgsTUFBSSxlQUFlLFNBQVMsYUFBYTtBQUN2QyxRQUFJLFFBQVEsTUFBTSxRQUFNLE1BQU0sR0FBRztBQUNqQyxRQUFJLElBQUksVUFBVSxLQUFJO0FBQ3BCLGVBQVMsV0FBVyxJQUFJLE1BQU07QUFBQTtBQUVoQyxRQUFJLEtBQUssU0FBUyxJQUFJLFFBQU0sS0FBSTtBQUM5QixjQUFRLElBQUksSUFBSSxRQUFNO0FBQ3RCLGVBQVM7QUFBQTtBQUVYLFFBQUksSUFBSSxVQUFVLEtBQUk7QUFDcEIsZUFBUyxXQUFXLElBQUksTUFBTTtBQUFBO0FBRWhDLFFBQUksSUFBSSxVQUFRLE1BQUs7QUFDbkIsZUFBUyxJQUFJLE1BQU0sUUFBTSxHQUFHLE1BQU0sV0FBVyxHQUFHO0FBQUE7QUFFbEQsV0FBTyxJQUFJLE1BQU0sR0FBRSxNQUFNLFNBQVMsTUFBTSxJQUFJLE1BQU0sTUFBTSxPQUFNLFFBQU0sS0FBSyxNQUFNLHNCQUFzQixJQUFJLE1BQU0sUUFBTTtBQUFBO0FBRXZILE1BQUcsY0FBYyxTQUFTLFlBQVc7QUFDbkMsUUFBSSxhQUFhLENBQUMsR0FBRyxLQUFLLFVBQVUsS0FBSztBQUN6QyxRQUFJLGFBQWEsTUFBTSxRQUFNLFdBQVcsV0FBVyxNQUFNLFdBQVcsU0FBTyxNQUFNLFFBQU87QUFDeEYsV0FBUSxLQUFJLE1BQU0sR0FBRSxjQUFjLHNCQUFzQiwwQkFBeUIsSUFBSSxNQUFNLE1BQU0sUUFBTSxNQUFNLEdBQUcsU0FBTyxLQUFLLFFBQVEseUJBQXdCLElBQUksTUFBTSxZQUFXLE1BQU0sUUFBTSxNQUFNLEdBQUcsU0FBTztBQUFBO0FBRS9NLFNBQU87QUFBQTtBQUdULElBQU0sZUFBZSxDQUFDLFFBQWdCO0FBRXBDLE1BQUksa0JBQWtCLElBQUksUUFBUSxPQUFPLE1BQU0sUUFBUSxPQUFPO0FBRTlELG9CQUFrQixnQkFBZ0IsUUFBUSxtQkFBbUI7QUFFN0Qsb0JBQWtCLGdCQUFnQixRQUFRLGFBQWE7QUFFdkQsb0JBQWtCLGdCQUFnQixRQUFRLDBCQUEwQjtBQUdwRSxvQkFBa0Isc0JBQXNCO0FBQ3hDLFNBQU87QUFBQTtBQUdULElBQU0sV0FBVyxDQUFDLFFBQWdCO0FBRWhDLE1BQUksa0JBQWtCLG1CQUFtQixJQUFJLFFBQVEsUUFBUTtBQUM3RCxTQUFPO0FBQUE7QUFHRixJQUFNLGlCQUFpQixDQUFDLEtBQWEsaUJBQXlCO0FBQ25FLFFBQU0sWUFBWSxLQUFLLE1BQU0sV0FBVyxjQUFhLFFBQU87QUFDNUQsTUFBSSxrQkFBa0IsTUFBSSxhQUFhO0FBQ3ZDLFdBQVMsSUFBSSxHQUFHLElBQUksVUFBVSxRQUFRLEtBQUs7QUFDekMsVUFBTSxLQUFLLFVBQVU7QUFDckIsc0JBQWtCLGVBQWUsaUJBQWdCLEdBQUcsSUFBRyxHQUFHO0FBQUE7QUFFNUQsb0JBQWtCLFNBQVM7QUFHM0IsU0FBTztBQUFBOzs7QUN0SlQsYUFBdUI7OztBQ0F2QixvQkFBZ0U7QUFDaEUsd0JBQXdDOzs7QUNEeEMsbUJBQWdFO0FBRXpELElBQU0sY0FBYyxDQUFDLEVBQUUsT0FBTyxXQUFXLGNBQWM7QUFDNUQsU0FDSSxtREFBQyxPQUFEO0FBQUEsSUFDRSxXQUFXLG9CQUFvQixjQUFZLFFBQU0sY0FBWTtBQUFBLElBQzdELE9BQU8sRUFBQyxpQkFBZ0I7QUFBQSxJQUFRLFNBQVMsTUFBSTtBQUMzQztBQUFBO0FBQUE7QUFBQTs7O0FESFYsSUFBTSxvQkFBb0IsTUFBTTtBQUM5QixNQUFJO0FBQ0osTUFBSTtBQUNKLFFBQU0sVUFBVSxJQUFJLFFBQVEsQ0FBQyxVQUFVLFlBQVk7QUFDakQsY0FBVTtBQUNWLGFBQVM7QUFBQTtBQUVYLFVBQVEsVUFBVTtBQUNsQixVQUFRLFNBQVM7QUFDakIsU0FBTztBQUFBO0FBR1QsSUFBTSxXQUFXLENBQU8sTUFBTSxnQkFBZ0IsU0FBUyxJQUFJLFlBQVksVUFBVSxVQUFVLFNBQVMsZUFBYSxNQUFNLGNBQVksU0FBUztBQUUxSSxNQUFJLGdCQUFnQixtQkFBSTtBQUN4QixnQkFBYyxTQUFTLGdCQUFnQjtBQUN2QyxNQUFHLFlBQVksS0FBSyxVQUFVLGdCQUFlO0FBQzNDLG1CQUFlLENBQUMsU0FBTztBQUNyQixvQkFBYyxTQUFTLHlCQUF5QixLQUFLLFNBQVM7QUFDOUQsYUFBTztBQUFBO0FBRVQsWUFBUSxLQUFLLFVBQVU7QUFDdkIsZUFBVyxVQUFRLEtBQUcsU0FBUyxLQUFLLFVBQVUsZ0JBQWdCLG9CQUFvQjtBQUFBO0FBRXBGLE1BQUcsY0FBYTtBQUdkLFNBQUs7QUFBQTtBQUVQLE1BQUcsYUFBWTtBQUNiLFVBQU0sVUFBVSxtQkFBSSxnQkFBZ0IsSUFBSSxZQUFXO0FBQUE7QUFBQTtBQUt2RCxJQUFNLFlBQVksQ0FBTyxNQUFNLElBQUksWUFBWSxlQUFhLFNBQVM7QUFDbkUsTUFBSSxTQUFTLFNBQVMsZUFBZSxlQUFlO0FBQ3BELE1BQUksZ0JBQWdCLG1CQUFJO0FBQ3hCLGdCQUFjLFNBQVMsZ0JBQWdCO0FBQ3ZDLGdCQUFjLFNBQVMsUUFBUTtBQUFBLElBQzdCLE1BQU07QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLEtBQUs7QUFBQSxJQUNMLEtBQUs7QUFBQSxJQUNMLFNBQVM7QUFBQSxJQUNULFVBQVUsU0FBTyxPQUFPLGVBQWE7QUFBQSxJQUNyQyxTQUFTO0FBQUEsSUFDVCxlQUFlO0FBQUEsSUFDZixtQkFBbUI7QUFBQSxJQUNuQixhQUFhO0FBQUEsSUFDYixlQUFlO0FBQUEsSUFDZixlQUFlO0FBQUEsSUFDZixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixtQkFBbUI7QUFBQSxJQUNuQixRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxnQkFBZ0I7QUFBQSxJQUNoQixhQUFhO0FBQUEsSUFDYixpQkFBaUI7QUFBQSxJQUNqQixXQUFXO0FBQUEsSUFDWCxRQUFRO0FBQUE7QUFFVixRQUFNLE1BQU0sTUFBTSxtQ0FBWTtBQUM5QixnQkFBYyxTQUFTO0FBQ3ZCLGFBQVcsVUFBUSxLQUFHLFFBQU8sSUFBSSxXQUFXLFlBQVk7QUFBQTtBQUduRCwwQkFBMEIsRUFBRSxJQUFJLFlBQVksVUFBVSxRQUFRLFVBQVUsVUFBVSxRQUFRO0FBQy9GLFFBQU0sZ0JBQWdCLDBCQUFPO0FBQzdCLFFBQU0sZUFBZTtBQUNyQixRQUFNLGtCQUFrQiwwQkFBTztBQUMvQixRQUFNLENBQUMsYUFBYSxrQkFBbUIsNEJBQ3JDLFdBQ0EsS0FBSyxNQUFNLFlBQ1Y7QUFBQSxJQUNDLFVBQVU7QUFBQSxJQUNWLFVBQVUsRUFBRSxxQkFBcUIsU0FBUyx1QkFBdUIsR0FBRyx3QkFBdUI7QUFBQSxJQUMzRixpQkFBaUI7QUFBQSxJQUNqQixjQUFjO0FBQUE7QUFHbEIsUUFBTSxDQUFDLGNBQWMsbUJBQW1CLDRCQUFTLFlBQVU7QUFFM0QsTUFBSSxTQUFTLFNBQVMsZUFBZSxlQUFlO0FBQ3BELE1BQUksWUFBWSxTQUFTLGNBQWMsZUFBZTtBQUV0RCxRQUFNLHlCQUF5QiwwQkFBTyxFQUFFLFNBQVM7QUFDakQsTUFBSSxDQUFDLHVCQUF1QixRQUFRLFNBQVM7QUFDM0MsMkJBQXVCLFFBQVEsVUFBVTtBQUFBO0FBRTNDLCtCQUFVLE1BQU07QUFDZCwyQkFBdUIsUUFBUSxRQUFRLFFBQVE7QUFFL0MsVUFBTSxlQUFlLE1BQU07QUFDekIsWUFBTSxPQUFPLElBQUksZ0JBQWdCLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFDNUQsWUFBTSxhQUFhLEtBQUssSUFBSTtBQUM1QixVQUFJLFlBQVk7QUFDZCxzQkFBYyxRQUFRLGNBQWMsWUFBWSxLQUFLLElBQUk7QUFBQTtBQUFBO0FBRzdELFdBQU8saUJBQWlCLGNBQWMsY0FBYztBQUNwRCxXQUFPLE1BQU07QUFDWCxhQUFPLG9CQUFvQixjQUFjO0FBQUE7QUFBQSxLQUUxQztBQUVILCtCQUFVLE1BQU07QUFDZCxvQkFBZ0IsVUFBVSxZQUFZLE1BQU07QUFDMUMsVUFBSSxVQUFVO0FBQUEsUUFDWixVQUFVLGNBQWMsUUFBUTtBQUFBLFFBQ2hDLFVBQVUsY0FBYyxRQUFRO0FBQUEsUUFDaEMsaUJBQWlCO0FBQUEsUUFDakIsY0FBYztBQUFBO0FBR2hCLFVBQUcsU0FBUyxjQUFjLGVBQWUsT0FBTTtBQUM3QyxpQkFBUyxNQUFNLGdCQUFnQixTQUFTLElBQUksWUFBVyxVQUFVLGNBQWMsaUJBQWlCLE9BQU87QUFBQSxhQUNwRztBQUNILGlCQUFTLE1BQU0sZ0JBQWdCLFNBQVMsSUFBSSxZQUFXLFVBQVUsY0FBYyxpQkFBaUIsTUFBTTtBQUN0RyxzQkFBYyxnQkFBZ0I7QUFBQTtBQUFBLE9BRS9CO0FBQ0gsV0FBTyxNQUFNLGNBQWMsZ0JBQWdCO0FBQUEsS0FDMUM7QUFFSCwrQkFBVSxNQUFJO0FBQ1osUUFBRyxjQUFjLFNBQVE7QUFDdkIsb0JBQWMsUUFBUSxZQUFZO0FBQ2xDLGFBQU8sY0FBYyxJQUFJLE1BQU07QUFBQTtBQUFBLEtBRWpDLENBQUM7QUFHSCxRQUFNLGFBQWEsK0JBQVksQ0FBQyxTQUFTLFVBQVU7QUFDakQsVUFBTSxPQUFPLFFBQVE7QUFDckIsVUFBTSxFQUFFLGdCQUFnQixNQUFNO0FBQzlCLFVBQU0sV0FBVyxZQUFZLFdBQVcsWUFBWTtBQUNwRCxVQUFNLGNBQWMsWUFBWTtBQUNoQyxVQUFNLGlCQUNKLEtBQUssV0FBVyxRQUFRLEtBQUssU0FBUyxPQUFPLFNBQVM7QUFDeEQsUUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsYUFBYTtBQUUvQyxZQUFNO0FBQUE7QUFBQSxLQUlQO0FBRUgsUUFBTSxjQUFjLENBQU8sVUFBUTtBQUNqQyxRQUFJLFdBQVcsY0FBYyxRQUFRO0FBQ3JDLFFBQUksV0FBVyxjQUFjLFFBQVE7QUFDckMsUUFBSSxjQUFjLE9BQU8sS0FBSyxTQUFTO0FBQ3ZDLFFBQUksVUFBUyxTQUFTLGVBQWUsZUFBZTtBQUNwRCxRQUFHLFNBQU87QUFDUixlQUFTLElBQUksR0FBRyxJQUFJLFlBQVksUUFBUSxLQUFLO0FBQzNDLFlBQUksa0JBQWtCLFNBQVMsS0FBSyxVQUFTLEtBQUssT0FBSyxZQUFZO0FBQ25FLFlBQUcsaUJBQWdCO0FBQ2pCLGNBQUksdUJBQXVCLFNBQVMsUUFBUTtBQUM1Qyx5QkFBZSxDQUFDLFNBQU87QUFDckIsZ0JBQUksZ0JBQWdCLEVBQUMsVUFBUyxDQUFDLEdBQUcsV0FBVSxVQUFTLG1CQUFJO0FBQ3pELDBCQUFjLFNBQVMsc0JBQXNCLGNBQVk7QUFDekQsMEJBQWMsU0FBUyx5QkFBeUI7QUFDaEQsd0JBQVk7QUFDWixtQkFBTztBQUFBO0FBQUE7QUFBQTtBQUliLFVBQUcsWUFBWSxTQUFPLEdBQUU7QUFDdEIsdUJBQWUsQ0FBQyxTQUFPO0FBQ3JCLGNBQUksZ0JBQWdCLEVBQUMsVUFBUyxDQUFDLEdBQUcsV0FBVSxVQUFTLG1CQUFJO0FBQ3pELHdCQUFjLFNBQVMseUJBQXlCO0FBQ2hELGlCQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPZixTQUNFLG9EQUFDLE9BQUQ7QUFBQSxJQUFLLFdBQVU7QUFBQSxJQUFtQixPQUFPO0FBQUEsTUFDdkMsWUFBWTtBQUFBLE1BQ1osV0FBVztBQUFBLE1BQ1gsUUFBUTtBQUFBO0FBQUEsSUFDUixTQUFTLENBQUMsTUFBSTtBQUNkLFVBQUcsQ0FBQyxFQUFFLE9BQU8sU0FBUyx3QkFBd0I7QUFDNUMsWUFBSSxXQUFXLGNBQWMsUUFBUTtBQUNyQyxZQUFJLFdBQVcsY0FBYyxRQUFRO0FBQ3JDLFlBQUksY0FBYyxPQUFPLEtBQUssU0FBUztBQUN2QyxZQUFJLFVBQVMsU0FBUyxlQUFlLGVBQWU7QUFDcEQsWUFBRyxTQUFPO0FBQ1IsY0FBSSxZQUFZLFNBQU8sR0FBRTtBQUN2QixnQkFBSSxrQkFBa0IsU0FBUyxLQUFLLFVBQVMsS0FBSyxPQUFLLFlBQVk7QUFDbkUsZ0JBQUcsaUJBQWdCO0FBQ2pCLGtCQUFJLHVCQUF1QixTQUFTLFFBQVE7QUFDNUMsNkJBQWUsQ0FBQyxTQUFPO0FBQ3JCLG9CQUFJLGdCQUFnQixFQUFDLFVBQVMsQ0FBQyxHQUFHLFdBQVUsVUFBUyxtQkFBSTtBQUN6RCw4QkFBYyxTQUFTLHlCQUF5QixjQUFjLFNBQVMsc0JBQXNCO0FBQzdGLHVCQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsS0FPakIsb0RBQUMsVUFBRDtBQUFBLElBQVEsV0FBVTtBQUFBLElBQW1CLFNBQVMsTUFBVTtBQUN0RCxVQUFJLFVBQVU7QUFBQSxRQUNaLFVBQVUsY0FBYyxRQUFRO0FBQUEsUUFDaEMsVUFBVSxjQUFjLFFBQVE7QUFBQSxRQUNoQyxpQkFBaUI7QUFBQSxRQUNqQixjQUFjO0FBQUE7QUFFaEIsZUFBUyxNQUFNLGdCQUFnQixTQUFTLElBQUksWUFBWSxVQUFVLGNBQWM7QUFDaEYsb0JBQWMsZ0JBQWdCO0FBQUE7QUFBQSxJQUM3QixPQUFPO0FBQUEsTUFDUixRQUFPO0FBQUEsTUFDUCxVQUFTO0FBQUEsTUFDVCxTQUFTO0FBQUEsTUFDVCxZQUFZO0FBQUEsTUFDWixNQUFLO0FBQUEsTUFDTCxXQUFXO0FBQUEsTUFDWCxTQUFRO0FBQUE7QUFBQSxLQUNMLGlCQUdMLG9EQUFDLE9BQUQ7QUFBQSxJQUNFLE9BQU8sRUFBRSxRQUFRO0FBQUEsSUFDakIsZ0JBQWdCLENBQUMsTUFBTTtBQUVyQixRQUFFO0FBQUE7QUFBQSxLQUdKLG9EQUFDLE9BQUQ7QUFBQSxJQUFLLFdBQVcsdUJBQXNCLGFBQVcsVUFBVSxlQUFhLE1BQUksa0JBQWdCLEtBQUk7QUFBQSxJQUFLLElBQUksZUFBZTtBQUFBLElBQU0sS0FBSztBQUFBLElBQWMsT0FBTztBQUFBLE1BQ3RKLGlCQUFpQjtBQUFBLE1BQ2pCLFNBQVE7QUFBQTtBQUFBLEtBRVIsb0RBQUMsT0FBRDtBQUFBLElBQUssV0FBVTtBQUFBLEtBQ2Isb0RBQUMsT0FBRDtBQUFBLElBQUssV0FBVTtBQUFBLElBQVksU0FBUyxNQUFJO0FBQ3RDLGVBQVMsZUFBZSxlQUFlLE1BQU0sY0FBYyxtQkFBbUIsVUFBVSxPQUFPO0FBQUE7QUFBQSxNQUVqRyxvREFBQyxhQUFEO0FBQUEsSUFDRSxPQUFPLE9BQU87QUFBQSxJQUNkLFdBQVcsWUFBWSxTQUFTO0FBQUEsSUFDaEMsU0FBUyxNQUFJO0FBQ1gsa0JBQVksT0FBTztBQUFBO0FBQUEsTUFHdkIsb0RBQUMsYUFBRDtBQUFBLElBQ0UsT0FBTyxPQUFPO0FBQUEsSUFDZCxXQUFXLFlBQVksU0FBUztBQUFBLElBQ2hDLFNBQVMsTUFBSTtBQUNYLGtCQUFZLE9BQU87QUFBQTtBQUFBLE1BR3ZCLG9EQUFDLGFBQUQ7QUFBQSxJQUNFLE9BQU8sT0FBTztBQUFBLElBQ2QsV0FBVyxZQUFZLFNBQVM7QUFBQSxJQUNoQyxTQUFTLE1BQUk7QUFDWCxrQkFBWSxPQUFPO0FBQUE7QUFBQSxPQUl6QixvREFBQywyQkFBRDtBQUFBLElBQ0UsS0FBSztBQUFBLElBQ0wsYUFBYTtBQUFBLElBQ2IscUJBQXFCLE1BQ25CLE9BQU8sTUFBTTtBQUFBLElBRWYsaUJBQWlCO0FBQUEsSUFDakIsZ0JBQWdCO0FBQUEsSUFDaEIsaUJBQWlCO0FBQUEsSUFDakIsT0FBTyxTQUFTLGNBQWMsUUFBUSxTQUFTLGlCQUFlLFVBQVE7QUFBQSxJQUN0RSxNQUFLO0FBQUEsSUFDTCxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVc7QUFBQSxJQUN6QztBQUFBO0FBQUE7OztBRHJSWixvQkFBeUI7QUFFbEIsSUFBTSxlQUFlLENBQUMsV0FBZ0IsSUFBWSxZQUFnQixrQkFBMEIsUUFBc0IsVUFBYSxhQUFvQjtBQUN4SixNQUFJLE9BQU8sOEJBQVc7QUFDdEIsT0FBSyxPQUNILHFDQUFDLGtCQUFEO0FBQUEsSUFBa0I7QUFBQSxJQUFRO0FBQUEsSUFBWTtBQUFBLElBQXdCLFVBQVU7QUFBQSxJQUFrQjtBQUFBLElBQWdCO0FBQUEsSUFBb0I7QUFBQTtBQUFBOzs7QUZKbEksb0JBQWM7QUFrRGQsSUFBTSxtQkFBcUM7QUFBQSxFQUUxQyxNQUFLO0FBQUEsRUFFTCxXQUFXO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFnRFgsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsUUFBTztBQUFBLEVBQ1AsYUFBWTtBQUFBLEVBRVosV0FBVTtBQUFBLEVBRVYsYUFBWTtBQUFBLEVBRVosWUFBVztBQUFBLEVBQ1gsVUFBUztBQUFBLEVBQ1Qsa0JBQWlCO0FBQUEsRUFFakIsYUFBYTtBQUFBLEVBQ2IsZUFBZTtBQUFBLEVBQ2YsYUFBYTtBQUFBLEVBQ2IsZ0JBQWdCO0FBQUEsRUFDaEIsZ0JBQWdCO0FBQUEsRUFDaEIsY0FBYztBQUFBLEVBQ2QsYUFBYTtBQUFBLEVBQ2IsWUFBWTtBQUFBLEVBQ1osYUFBYTtBQUFBLEVBRWIsa0JBQWtCO0FBQUE7QUFHbkIsSUFBTSxlQUFlLENBQUMsY0FBc0I7QUFDM0MsTUFBRywyQkFBRSw0QkFBNEIsV0FBUyxXQUFXO0FBQ3BELHNCQUFrQjtBQUFBO0FBQUE7QUFJcEIsSUFBTSxlQUFlLE1BQU07QUFDMUIsNkJBQUUsNkNBQTZDLElBQUksRUFBQyxTQUFRO0FBQUE7QUFHN0QsSUFBTSxTQUFTLE1BQU07QUFDcEIsNkJBQUUsMkNBQTZDLEtBQUssOEJBQThCO0FBQ2xGLDZCQUFFLDJDQUE2QyxJQUFJLEVBQUMsU0FBUTtBQUFBO0FBRzdELElBQU0sZUFBZSxXQUFXO0FBQy9CLE1BQUcsMkJBQUUsTUFBTSxXQUFXLFFBQVEsU0FBUywwQkFBMEIsMkJBQUUsNEJBQTRCLFNBQU8sR0FBRTtBQUN2RywrQkFBRSxpQkFBaUIsUUFBUSxrQkFBa0IsT0FBTztBQUNwRCwrQkFBRSxpQkFBaUIsUUFBUSxrQkFBa0I7QUFBQTtBQUFBO0FBSS9DLElBQUk7QUFFSixJQUFNLG9CQUFvQixDQUFNLGNBQW9CO0FBQ25ELGVBQWE7QUFFYixrQkFBZ0IsV0FBVyxNQUFXO0FBQ3JDLFFBQUksV0FBVztBQUNmLFFBQUksUUFBUSwyQkFBRSxzQkFBc0IsSUFBSSw0QkFBNEIsSUFBSTtBQUN4RSxVQUFNLEtBQUssV0FBVztBQUNyQixrQkFBVSxPQUFNLDRCQUFFLE1BQU0sVUFBUTtBQUFBO0FBRWpDLFFBQUksU0FBUyxTQUFTLFFBQVEsbUJBQWtCLElBQUksUUFBUSxtQkFBa0I7QUFDOUUsUUFBSSxNQUFNLGVBQWUsUUFBUTtBQUVqQyxRQUFJLGFBQWEsU0FBUyxjQUFjO0FBQ3hDLFFBQUksZUFBZSwyQkFBRTtBQUNyQixRQUFJLGNBQWM7QUFDbEIsaUJBQWEsU0FBTyxJQUFFLGFBQWEsUUFBUSxrQkFBa0IsT0FBTyxXQUFTO0FBQzdFLGlCQUFhLFNBQU8sSUFBRSxhQUFhLFFBQVEsa0JBQWtCLFdBQVM7QUFDdEUsZUFBVyxtQkFBbUIsWUFBWTtBQUMxQyxlQUFXLE1BQVc7QUFDckIsaUNBQUUsaUJBQWlCLFFBQVEsa0JBQWtCLFNBQVM7QUFDdEQsVUFBSSxVQUFVLFNBQVMsY0FBYztBQUFBLFFBRW5DO0FBQ0gsZUFBVyxNQUFXO0FBQ3JCLFVBQUcsMkJBQUUsa0JBQWlCO0FBQ3JCLG1DQUFFLGlCQUFpQjtBQUNuQixtQ0FBRSxpQkFBaUIsT0FBTyxnQ0FBVyxLQUFLO0FBQzFDLGNBQU07QUFBQTtBQUFBLFFBRUw7QUFBQSxNQUVEO0FBQUE7QUFHSiw2QkFBc0MsdUJBQU87QUFBQSxFQUd0QyxTQUFTO0FBQUE7QUFDZCxZQUFNLEtBQUs7QUFDWCxZQUFNO0FBQ04sWUFBTSxxQkFBcUIsS0FBSyxTQUFTO0FBQ3pDLFlBQU0sbUJBQW1CLEtBQUssU0FBUztBQUN2QyxZQUFNLFdBQVcsS0FBSyxTQUFTO0FBQy9CLFlBQU0sWUFBWSxLQUFLLFNBQVM7QUFDaEMsWUFBTSxRQUFRO0FBQUEsUUFDYixLQUFLLFNBQVM7QUFBQSxRQUNkLEtBQUssU0FBUztBQUFBLFFBQ2QsS0FBSyxTQUFTO0FBQUEsUUFDZCxLQUFLLFNBQVM7QUFBQSxRQUNkLEtBQUssU0FBUztBQUFBLFFBQ2QsS0FBSyxTQUFTO0FBQUEsUUFDZCxLQUFLLFNBQVM7QUFBQSxRQUNkLEtBQUssU0FBUztBQUFBO0FBRWYsWUFBTSxZQUFZLE1BQU0sT0FBTyxTQUFTO0FBR3hDLFdBQUssU0FBUyxPQUFPLEtBQUssU0FBUyxLQUFLLFNBQU8sSUFBRSxLQUFLLFNBQVMsT0FBSyxLQUFLLElBQUksTUFBTSxZQUFVO0FBQzdGLFlBQU0sS0FBSztBQUNYLFlBQU0sYUFBYSxLQUFLLFNBQVMsT0FBSztBQUd0QyxpQ0FBRSxXQUFXLEtBQUs7QUFBQSxrQ0FDYyxLQUFLLFNBQVM7QUFBQSw0RkFDNEMsS0FBSSxLQUFHO0FBQUEsS0FDOUYsU0FBUztBQUdYLFlBQU0sYUFBYSxDQUFPLFVBQWlCLE1BQWEsV0FBa0IsZUFBYSxTQUFTO0FBQy9GLGNBQU0sUUFBUSxLQUFLLElBQUk7QUFDdkIsY0FBTSxVQUFVLE1BQU07QUFDdEIsWUFBSSxnQkFBaUIsYUFBVztBQUVoQyxZQUFHLENBQUMsT0FBTSxRQUFRLE9BQU8saUJBQWU7QUFDdkMsZ0JBQU0sUUFBUSxNQUFNO0FBQUE7QUFFckIsY0FBTSxhQUFhLEdBQUcsaUJBQWlCO0FBQ3ZDLFlBQUcsTUFBTSxRQUFRLE9BQU8sYUFBWTtBQUNuQyxnQkFBTSxRQUFRLE1BQU0sWUFBVztBQUFBLGVBQzNCO0FBQ0osZ0JBQU0sTUFBTSxPQUFPLFlBQVc7QUFBQTtBQUFBO0FBSWpDLFlBQU0sV0FBVyxDQUFPLFVBQWlCLGNBQXFCO0FBQzdELGNBQU0sYUFBYSxHQUFHLGFBQWEsYUFBYTtBQUNoRCxZQUFHLE1BQU0sS0FBSyxJQUFJLE1BQU0sUUFBUSxPQUFPLGFBQVk7QUFDbEQsaUJBQU8sTUFBTSxLQUFLLElBQUksTUFBTSxRQUFRLEtBQUs7QUFBQTtBQUUxQyxlQUFPO0FBQUE7QUFHUixZQUFNLFdBQVcsQ0FBQyxRQUFXO0FBQzVCLGVBQU8sT0FBTyxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsTUFBTSxPQUFPLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFHLFFBQU0sR0FBRyxNQUFLLE1BQUssS0FBSyxTQUFTLEtBQUs7QUFBQTtBQUl0SCxVQUFJLGlCQUFpQixPQUFNLFNBQVMsZ0JBQWUsa0JBQWU7QUFDbEUsVUFBSSxjQUFjLEtBQUssTUFBTTtBQUM3QixpQ0FBRSw2QkFBNkIsS0FBSyxTQUFTLGNBQWMsU0FBUztBQUVwRSxZQUFNLG1CQUFtQixDQUFDLElBQVUsS0FBVyxVQUFlO0FBQzdELFlBQUcsWUFBWSxlQUFlLGVBQWUsT0FBTTtBQUNsRCxjQUFHLFlBQVksZUFBZSxNQUFNLFNBQU8sT0FBTTtBQUNoRCx3QkFBWSxlQUFlLE1BQU0sT0FBTztBQUN4Qyx1QkFBVyxnQkFBZSxLQUFLLFVBQVUsY0FBYTtBQUN0RCx1Q0FBRSxpQkFBaUI7QUFDbkIsdUNBQUUsNkJBQTZCLEtBQUssU0FBUyxjQUFjLFNBQVM7QUFBQTtBQUFBLGVBRWpFO0FBQ0osc0JBQVksZUFBZSxRQUFRO0FBQUEsYUFDakMsTUFBSztBQUFBO0FBRVAscUJBQVcsZ0JBQWUsS0FBSyxVQUFVLGNBQWE7QUFDdEQscUNBQUUsaUJBQWlCO0FBQ25CLHFDQUFFLDZCQUE2QixLQUFLLFNBQVMsY0FBYyxTQUFTO0FBQUE7QUFBQTtBQUt0RSxpQ0FBRSxXQUFXO0FBQ1osWUFBSSxhQUFhO0FBQ2pCLFlBQUcsb0JBQW1CO0FBQ3JCLHFDQUFFLFFBQVEsR0FBRyxzQkFBc0Isc0JBQXNCLFdBQVU7QUFDbEUseUJBQWE7QUFBQTtBQUdkLHFDQUFFLFFBQVEsR0FBRyxtQkFBbUIsMkRBQTJEO0FBQUE7QUFFNUYsWUFBRyxrQkFBa0I7QUFDcEIscUNBQUUsUUFBUSxHQUFHLG1CQUFtQixzQkFBc0I7QUFBQTtBQUV2RCxZQUFHLFVBQVU7QUFDWixxQ0FBRSxRQUFRLEdBQUcsbUJBQW1CLHNCQUFzQjtBQUFBO0FBR3ZELG1DQUFFLFFBQVEsR0FBRyxhQUFhLHdCQUF3QixXQUFVO0FBQzNELHVCQUFXLDJCQUFFLE1BQU07QUFBQTtBQUdwQixtQ0FBRSxRQUFRLEdBQUcsV0FBVyx3QkFBd0IsV0FBVTtBQUl6RCxjQUFHLGVBQWEsMkJBQUUsTUFBTSxVQUFTO0FBQ2hDLGtCQUFNLEtBQUcsMkJBQUUsTUFBTSxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsR0FBRyxRQUFRLGlCQUFnQjtBQUN2Riw2QkFBaUIsSUFBRyxVQUFTLEdBQUcsMkJBQUUsTUFBTTtBQUN4Qyx1Q0FBRSxNQUFNLFNBQVM7QUFBQTtBQUFBO0FBQUE7QUFxQnBCLFdBQUssbUNBQW1DLFFBQVEsQ0FBTyxRQUFRLElBQUksUUFBUTtBQUMxRSxjQUFNLFNBQVMsSUFBSTtBQUNuQixjQUFNLFFBQVEsS0FBSyxJQUFJO0FBQ3ZCLGNBQU0sVUFBVSxNQUFNO0FBRXRCLGNBQU0sY0FBYSxDQUFPLFVBQWlCLE1BQWEsV0FBa0IsZUFBYSxTQUFTO0FBQy9GLGNBQUksZ0JBQWdCLGFBQVc7QUFFL0IsY0FBRyxDQUFDLE9BQU0sUUFBUSxPQUFPLGlCQUFlO0FBQ3ZDLGtCQUFNLFFBQVEsTUFBTTtBQUFBO0FBRXJCLGdCQUFNLGNBQWEsR0FBRyxhQUFhLGFBQWE7QUFDaEQsY0FBRyxNQUFNLFFBQVEsT0FBTyxjQUFZO0FBQ25DLGtCQUFNLFFBQVEsTUFBTSxhQUFXO0FBQUEsaUJBQzNCO0FBQ0osa0JBQU0sTUFBTSxPQUFPLGFBQVc7QUFBQTtBQUUvQixjQUFHLE1BQU0sUUFBUSxPQUFPLGNBQVk7QUFDbkMsZ0JBQUcsY0FBYTtBQUNmLGtCQUFJLFVBQVUsTUFBTSxRQUFRLEtBQUs7QUFDakMsaUJBQUcsY0FBYyw4QkFBOEIsWUFBWSxPQUFPLGdCQUFnQiw4Q0FBK0MsR0FBRyxjQUFjLDBCQUEwQixjQUFZLEdBQUcsY0FBYywwQkFBMEIsY0FBWSxPQUFLLFlBQWEsUUFBUSxRQUFRLHNCQUFxQixhQUFhLGFBQWEsS0FBSyxjQUFjO0FBQ25WLHlCQUFXO0FBQ1gseUJBQVc7QUFDWCxrQkFBSSx1QkFBTztBQUFBO0FBQUE7QUFBQTtBQUtkLGNBQU0sWUFBVyxDQUFPLFVBQWlCLGNBQXFCO0FBQzdELGdCQUFNLGNBQWEsR0FBRyxhQUFhLGFBQWE7QUFDaEQsY0FBRyxNQUFNLFFBQVEsT0FBTyxjQUFZO0FBQ25DLG1CQUFPLE1BQU0sUUFBUSxLQUFLO0FBQUE7QUFFM0IsaUJBQU87QUFBQTtBQUlSLFlBQUksU0FBUyxPQUFPLFFBQVEsbUJBQWtCLElBQUksUUFBUSxtQkFBa0I7QUFBSTtBQUNoRixZQUFJLE1BQU0sZUFBZSxRQUFRO0FBR2pDLFdBQUcsT0FBTyxnQ0FBVyxLQUFLO0FBQzFCLGNBQU07QUFHTixZQUFJLGVBQWUsT0FBTyxNQUFNLGtCQUFnQixLQUFLLE1BQU0sT0FBTyxNQUFNLGdCQUFnQixHQUFHLFFBQVEsVUFBUyxPQUFLO0FBQ2pILFlBQUk7QUFDSixZQUFHLGNBQWM7QUFDaEIsb0JBQVUsYUFBYTtBQUFBO0FBRXhCLGNBQU0sYUFBYSxHQUFHLDJCQUEyQjtBQUNqRCxZQUFHLE1BQU0sUUFBUSxPQUFPLGFBQVk7QUFDbkMsY0FBSSxVQUFVLE1BQU0sUUFBUSxLQUFLO0FBQ2pDLGFBQUcsT0FBTyxPQUFPLGdCQUFnQiw4Q0FBK0MsR0FBRyxjQUFjLDBCQUEwQixjQUFZLEdBQUcsY0FBYywwQkFBMEIsY0FBWSxPQUFLLFlBQWEsUUFBUSxRQUFRLHNCQUFxQixhQUFhLGFBQWEsS0FBSyxjQUFjO0FBQUE7QUFJblMsV0FBRyxTQUFTLGdCQUFjO0FBRzFCLFlBQUcsWUFBWSxlQUFlLGVBQWUsWUFBVztBQUN2RCxjQUFHLFlBQVksZUFBZSxXQUFXLGNBQVksZUFBYztBQUNsRSxlQUFHLFNBQVM7QUFBQTtBQUFBO0FBS2QsYUFBSyxTQUFTLGNBQVksT0FBSyxHQUFHLFNBQVM7QUFDM0MsYUFBSyxTQUFTLGdCQUFjLE9BQUssR0FBRyxTQUFTO0FBQzdDLGFBQUssU0FBUyxjQUFZLE9BQUssR0FBRyxTQUFTO0FBQzNDLGFBQUssU0FBUyxpQkFBZSxPQUFLLEdBQUcsU0FBUztBQUM5QyxhQUFLLFNBQVMsaUJBQWUsT0FBSyxHQUFHLFNBQVM7QUFDOUMsYUFBSyxTQUFTLGVBQWEsT0FBSyxHQUFHLFNBQVM7QUFDNUMsYUFBSyxTQUFTLGNBQVksT0FBSyxHQUFHLFNBQVM7QUFDM0MsYUFBSyxTQUFTLGFBQVcsT0FBSyxHQUFHLFNBQVM7QUFDMUMsYUFBSyxTQUFTLGNBQVksT0FBSyxHQUFHLFNBQVM7QUFHM0MsV0FBRyxTQUFTO0FBSVosY0FBTSxrQkFBa0IsR0FBRyxTQUFTLE9BQU0sRUFBRSxLQUFLO0FBR2pELGNBQU0sV0FBVyxPQUFPLGdCQUFnQixrakJBQWtqQjtBQUMxbEIsY0FBTSxhQUFhLGdCQUFnQixTQUFTLE9BQU0sRUFBRSxLQUFLO0FBQ3pELG1CQUFXLE9BQU8sU0FBUyxLQUFLLGNBQWM7QUFDOUMsbUJBQVcsUUFBUSxjQUFhO0FBQ2hDLG1CQUFXLGFBQWEsTUFBSTtBQUMzQixvQkFBVSxVQUFVLFVBQVU7QUFDOUIsY0FBSSx1QkFBTztBQUFBO0FBSVosY0FBTSxXQUFXLE9BQU8sZ0JBQWdCLHNsQkFBcWxCO0FBQzduQixjQUFNLGFBQWEsZ0JBQWdCLFNBQVMsT0FBTSxFQUFFLEtBQUs7QUFHekQsY0FBTSxXQUFXLE9BQU8sZ0JBQWdCLG9mQUFtZjtBQUMzaEIsY0FBTSxhQUFhLGdCQUFnQixTQUFTLE9BQU0sRUFBRSxLQUFLO0FBR3pELGNBQU0sYUFBYSxPQUFPLGdCQUFnQiw2dkJBQTZ2QjtBQUN2eUIsY0FBTSxlQUFlLGdCQUFnQixTQUFTLE9BQU0sRUFBRSxLQUFLO0FBQzNELHFCQUFhLE9BQU8sV0FBVyxLQUFLLGNBQWM7QUFDbEQscUJBQWEsUUFBUSxjQUFhO0FBQ2xDLHFCQUFhLGFBQWEsTUFBSTtBQUU3QixhQUFHLE1BQU0sU0FBTztBQUNoQixhQUFHLFlBQVk7QUFDZiwyQkFBaUIsR0FBRyxXQUFVLFVBQVM7QUFBQTtBQUl4QyxtQkFBVyxPQUFPLFNBQVMsS0FBSyxjQUFjO0FBQzlDLG1CQUFXLFFBQVEsY0FBYTtBQUNoQyxtQkFBVyxhQUFhLE1BQVU7QUFDakMsZ0JBQU0sVUFBVSxHQUFHLFNBQVMsT0FBTSxFQUFDLEtBQUk7QUFDdkMsYUFBRyxTQUFTO0FBQ1osYUFBRyxhQUFXO0FBQ2QsY0FBRyxHQUFHLGdCQUFjLFNBQVMsS0FBSyxTQUFTLFlBQVc7QUFDckQsZUFBRyxTQUFTO0FBQUE7QUFFYixlQUFLLFNBQVMsY0FBWSxPQUFLLFFBQVEsU0FBUztBQUNoRCxjQUFJLE9BQVEsTUFBTSxVQUFTLFVBQVEsVUFBUSxTQUFTO0FBQ3BELHVCQUFhLFNBQVMsU0FBUyxhQUFZLEtBQUssU0FBUyxrQkFBa0IsQ0FBQyxLQUFLLFNBQVMsUUFBTyxLQUFLLFNBQVMsUUFBTyxLQUFLLFNBQVMsU0FBUSxXQUFTO0FBQ3JKLGNBQUksYUFBYSxHQUFHLGNBQWM7QUFDbEMsY0FBRyxZQUFXO0FBQ2IsdUJBQVc7QUFBQTtBQUVaLHFCQUFXO0FBQ1gscUJBQVc7QUFBQTtBQUlaLG1CQUFXLE9BQU8sU0FBUyxLQUFLLGNBQWM7QUFDOUMsbUJBQVcsUUFBUSxjQUFhO0FBQ2hDLG1CQUFXLGFBQWEsTUFBVTtBQUNqQyxjQUFJLGFBQWEsR0FBRyxjQUFjO0FBQ2xDLGFBQUcsWUFBWTtBQUNmLGNBQUcsWUFBWTtBQUNkLHVCQUFXO0FBQUEsaUJBQ1A7QUFDSixnQkFBSSxVQUFVLE1BQU0sUUFBUSxLQUFLO0FBQ2pDLGVBQUcsY0FBYyw4QkFBOEIsWUFBWSxPQUFPLGdCQUFnQiw4Q0FBK0MsR0FBRyxjQUFjLDBCQUEwQixjQUFZLEdBQUcsY0FBYywwQkFBMEIsY0FBWSxPQUFLLFlBQWEsUUFBUSxRQUFRLHNCQUFxQixhQUFhLGFBQWEsS0FBSyxjQUFjO0FBQ25WLHVCQUFXO0FBQ1gsdUJBQVc7QUFDWCxnQkFBSSx1QkFBTztBQUFBO0FBQUE7QUFJYixtQkFBVztBQUFBO0FBSVosV0FBSyxXQUFXO0FBQUEsUUFDWixJQUFJO0FBQUEsUUFDSixNQUFNO0FBQUEsUUFDVCxTQUFTLENBQUMsRUFBRSxXQUFXLENBQUMsUUFBUSxLQUFLO0FBQUEsUUFDbEMsZ0JBQWdCLENBQUMsV0FBbUI7QUFDdEMsY0FBSSxLQUFLLEtBQUssTUFBTSxLQUFLLFdBQVcsS0FBSztBQUNyQyxpQkFBTyxhQUFhLGNBQWEsTUFBSyxTQUFTLGFBQVcsaUJBQWUsTUFBSSxhQUFhLEtBQUcsY0FBYSxNQUFLLFNBQVMsYUFBVyxpQkFBZSxNQUFJLFNBQVMsT0FBTztBQUMxSyxpQkFBTyxVQUFVLE9BQU8sWUFBWSxPQUFLLElBQUcsTUFBSyxTQUFTLGFBQVcsSUFBRTtBQUFBO0FBQUE7QUFLekUsV0FBSyxjQUFjLElBQUksbUJBQW1CLEtBQUssS0FBSztBQUFBO0FBQUE7QUFBQSxFQUdyRCxXQUFXO0FBQ1YsK0JBQUUsUUFBUSxJQUFJLHNCQUFzQjtBQUVwQywrQkFBRSxRQUFRLElBQUksbUJBQW1CLDJEQUEyRDtBQUU1RiwrQkFBRSxRQUFRLElBQUksbUJBQW1CLHNCQUFzQjtBQUV2RCwrQkFBRSxRQUFRLElBQUksbUJBQW1CLHNCQUFzQjtBQUV2RCwrQkFBRSxRQUFRLElBQUksV0FBVztBQUFBO0FBQUEsRUFHcEIsZUFBZTtBQUFBO0FBQ3BCLFdBQUssV0FBVyxPQUFPLE9BQU8sSUFBSSxrQkFBa0IsTUFBTSxLQUFLO0FBQUE7QUFBQTtBQUFBLEVBRzFELGVBQWU7QUFBQTtBQUNwQixZQUFNLEtBQUssU0FBUyxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBSTNCLHVDQUFpQyxpQ0FBaUI7QUFBQSxFQUdqRCxZQUFZLEtBQVUsUUFBa0I7QUFDdkMsVUFBTSxLQUFLO0FBQ1gsU0FBSyxTQUFTO0FBQUE7QUFBQSxFQUdmLFVBQWdCO0FBQ2YsVUFBTSxFQUFDLGdCQUFlO0FBRXRCLGdCQUFZO0FBRVosZ0JBQVksU0FBUyxNQUFNLEVBQUMsTUFBTTtBQUdsQyxRQUFJLHdCQUFRLGFBQ1gsUUFBUSxrQkFDUixRQUFRLGlEQUNSLFFBQVEsVUFBUSxLQUNoQixTQUFTLEtBQUssT0FBTyxTQUFTLE1BQzlCLFNBQVMsQ0FBTyxVQUFVO0FBQzFCLFdBQUssT0FBTyxTQUFTLE9BQU87QUFDNUIsWUFBTSxLQUFLLE9BQU87QUFBQTtBQUluQixnQkFBWSxTQUFTLE1BQU0sRUFBQyxNQUFNO0FBRWxDLFFBQUksd0JBQVEsYUFDWCxRQUFRLGFBQ1IsUUFBUSxzRUFDUixZQUFZLFVBQVEsS0FDcEIsU0FBUyxLQUFLLE9BQU8sU0FBUyxXQUM5QixTQUFTLENBQU8sVUFBVTtBQUMxQixXQUFLLE9BQU8sU0FBUyxZQUFZO0FBQ2pDLFlBQU0sS0FBSyxPQUFPO0FBQUEsU0FFbEIsU0FBUyxpQkFDVCxVQUFVLFlBQVUsT0FDcEIsY0FBYyxVQUNkLFFBQVEsTUFBSTtBQUNaLGFBQU8sU0FBUztBQUFBLFFBR2hCLE9BQ0EsU0FBUyxLQUFLLEVBQUMsTUFBTSxrQkFBaUIsTUFBSywyREFDM0MsY0FBYyxTQUFTLFFBQVEsRUFBQyxNQUFNO0FBS3ZDLGdCQUFZLFNBQVMsTUFBTSxFQUFDLE1BQU07QUFFbEMsUUFBSSx3QkFBUSxhQUNYLFFBQVEsV0FDUixRQUFRLFVBQVEsS0FDaEIsU0FBUyxLQUFLLE9BQU8sU0FBUyxRQUM5QixTQUFTLENBQU8sVUFBVTtBQUMxQixXQUFLLE9BQU8sU0FBUyxTQUFTO0FBQzlCLFlBQU0sS0FBSyxPQUFPO0FBQUE7QUFHbkIsUUFBSSx3QkFBUSxhQUNYLFFBQVEsV0FDUixRQUFRLFVBQVEsS0FDaEIsU0FBUyxLQUFLLE9BQU8sU0FBUyxRQUM5QixTQUFTLENBQU8sVUFBVTtBQUMxQixXQUFLLE9BQU8sU0FBUyxTQUFTO0FBQzlCLFlBQU0sS0FBSyxPQUFPO0FBQUE7QUFHbkIsUUFBSSx3QkFBUSxhQUNYLFFBQVEsV0FDUixRQUFRLFVBQVEsS0FDaEIsU0FBUyxLQUFLLE9BQU8sU0FBUyxRQUM5QixTQUFTLENBQU8sVUFBVTtBQUMxQixXQUFLLE9BQU8sU0FBUyxTQUFTO0FBQzlCLFlBQU0sS0FBSyxPQUFPO0FBQUE7QUFHbkIsUUFBSSx3QkFBUSxhQUNYLFFBQVEsZ0JBQ1IsVUFBVSxZQUFVLE9BQ3BCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFDOUIsU0FBUyxDQUFPLFVBQVU7QUFDMUIsV0FBSyxPQUFPLFNBQVMsY0FBYztBQUNuQyxZQUFNLEtBQUssT0FBTztBQUFBO0FBS25CLGdCQUFZLFNBQVMsTUFBTSxFQUFDLE1BQU07QUFFbEMsUUFBSSx3QkFBUSxhQUNYLFFBQVEsd0JBQ1IsUUFBUSxVQUFRLEtBQ2hCLFNBQVMsS0FBSyxPQUFPLFNBQVMsV0FDOUIsU0FBUyxDQUFPLFVBQVU7QUFDMUIsV0FBSyxPQUFPLFNBQVMsWUFBWTtBQUNqQyxZQUFNLEtBQUssT0FBTztBQUFBO0FBSW5CLGdCQUFZLFNBQVMsTUFBTSxFQUFDLE1BQU07QUFFbEMsUUFBSSx3QkFBUSxhQUNYLFFBQVEsdUJBQ1IsVUFBVSxZQUFVLE9BQ3BCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFDOUIsU0FBUyxDQUFPLFVBQVU7QUFDMUIsV0FBSyxPQUFPLFNBQVMsY0FBYztBQUNuQyxZQUFNLEtBQUssT0FBTztBQUFBO0FBSW5CLGdCQUFZLFNBQVMsTUFBTSxFQUFDLE1BQU07QUFFbEMsUUFBSSx3QkFBUSxhQUNYLFFBQVEsb0JBQ1IsUUFBUSwyRUFDUixVQUFVLFlBQVUsT0FDcEIsU0FBUyxLQUFLLE9BQU8sU0FBUyxZQUM5QixTQUFTLENBQU8sVUFBVTtBQUMxQixXQUFLLE9BQU8sU0FBUyxhQUFhO0FBQ2xDLFlBQU0sS0FBSyxPQUFPO0FBQUEsU0FDZixPQUFPLFNBQVMsS0FBSyxFQUFDLE1BQU0sWUFBVyxNQUFLO0FBRWhELFFBQUksd0JBQVEsYUFDWCxRQUFRLFdBQ1IsVUFBVSxZQUFVLE9BQ3BCLFNBQVMsS0FBSyxPQUFPLFNBQVMsVUFDOUIsU0FBUyxDQUFPLFVBQVU7QUFDMUIsV0FBSyxPQUFPLFNBQVMsV0FBVztBQUNoQyxZQUFNLEtBQUssT0FBTztBQUFBO0FBR25CLFFBQUksd0JBQVEsYUFDWCxRQUFRLG1CQUNSLFFBQVEsdUNBQ1IsVUFBVSxZQUFVLE9BQ3BCLFNBQVMsS0FBSyxPQUFPLFNBQVMsa0JBQzlCLFNBQVMsQ0FBTyxVQUFVO0FBQzFCLFdBQUssT0FBTyxTQUFTLG1CQUFtQjtBQUN4QyxZQUFNLEtBQUssT0FBTztBQUFBO0FBSW5CLGdCQUFZLFNBQVMsTUFBTSxFQUFDLE1BQU07QUFFbEMsUUFBSSx3QkFBUSxhQUNYLFFBQVEsdUJBQ1IsUUFBUSxVQUNSLFVBQVUsWUFBVSxPQUNwQixTQUFTLEtBQUssT0FBTyxTQUFTLGFBQzlCLFNBQVMsQ0FBTyxVQUFVO0FBQzFCLFdBQUssT0FBTyxTQUFTLGNBQWM7QUFDbkMsWUFBTSxLQUFLLE9BQU87QUFBQTtBQUduQixRQUFJLHdCQUFRLGFBQ1gsUUFBUSx5QkFDUixRQUFRLGdCQUNSLFVBQVUsWUFBVSxPQUNwQixTQUFTLEtBQUssT0FBTyxTQUFTLGVBQzlCLFNBQVMsQ0FBTyxVQUFVO0FBQzFCLFdBQUssT0FBTyxTQUFTLGdCQUFnQjtBQUNyQyxZQUFNLEtBQUssT0FBTztBQUFBO0FBR25CLFFBQUksd0JBQVEsYUFDWCxRQUFRLDRCQUNSLFFBQVEsZ0JBQ1IsVUFBVSxZQUFVLE9BQ3BCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFDOUIsU0FBUyxDQUFPLFVBQVU7QUFDMUIsV0FBSyxPQUFPLFNBQVMsY0FBYztBQUNuQyxZQUFNLEtBQUssT0FBTztBQUFBO0FBR25CLFFBQUksd0JBQVEsYUFDWCxRQUFRLDBCQUNSLFFBQVEsZ0JBQ1IsVUFBVSxZQUFVLE9BQ3BCLFNBQVMsS0FBSyxPQUFPLFNBQVMsZ0JBQzlCLFNBQVMsQ0FBTyxVQUFVO0FBQzFCLFdBQUssT0FBTyxTQUFTLGlCQUFpQjtBQUN0QyxZQUFNLEtBQUssT0FBTztBQUFBO0FBR25CLFFBQUksd0JBQVEsYUFDWCxRQUFRLDBCQUNSLFFBQVEsZ0JBQ1IsVUFBVSxZQUFVLE9BQ3BCLFNBQVMsS0FBSyxPQUFPLFNBQVMsZ0JBQzlCLFNBQVMsQ0FBTyxVQUFVO0FBQzFCLFdBQUssT0FBTyxTQUFTLGlCQUFpQjtBQUN0QyxZQUFNLEtBQUssT0FBTztBQUFBO0FBR25CLFFBQUksd0JBQVEsYUFDWCxRQUFRLHdCQUNSLFFBQVEsZ0JBQ1IsVUFBVSxZQUFVLE9BQ3BCLFNBQVMsS0FBSyxPQUFPLFNBQVMsY0FDOUIsU0FBUyxDQUFPLFVBQVU7QUFDMUIsV0FBSyxPQUFPLFNBQVMsZUFBZTtBQUNwQyxZQUFNLEtBQUssT0FBTztBQUFBO0FBR25CLFFBQUksd0JBQVEsYUFDWCxRQUFRLHVCQUNSLFFBQVEsZ0JBQ1IsVUFBVSxZQUFVLE9BQ3BCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFDOUIsU0FBUyxDQUFPLFVBQVU7QUFDMUIsV0FBSyxPQUFPLFNBQVMsY0FBYztBQUNuQyxZQUFNLEtBQUssT0FBTztBQUFBO0FBR25CLFFBQUksd0JBQVEsYUFDWCxRQUFRLHVCQUNSLFFBQVEsZ0JBQ1IsVUFBVSxZQUFVLE9BQ3BCLFNBQVMsS0FBSyxPQUFPLFNBQVMsWUFDOUIsU0FBUyxDQUFPLFVBQVU7QUFDMUIsV0FBSyxPQUFPLFNBQVMsYUFBYTtBQUNsQyxZQUFNLEtBQUssT0FBTztBQUFBO0FBR25CLFFBQUksd0JBQVEsYUFDWCxRQUFRLHVCQUNSLFFBQVEsZ0JBQ1IsVUFBVSxZQUFVLE9BQ3BCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFDOUIsU0FBUyxDQUFPLFVBQVU7QUFDMUIsV0FBSyxPQUFPLFNBQVMsY0FBYztBQUNuQyxZQUFNLEtBQUssT0FBTztBQUFBO0FBS25CLGdCQUFZLFNBQVMsTUFBTSxFQUFDLE1BQU07QUFFbEMsUUFBSSx3QkFBUSxhQUNYLFFBQVEsYUFDUixVQUFVLFlBQVUsT0FDcEIsU0FBUyxLQUFLLE9BQU8sU0FBUyxrQkFDOUIsU0FBUyxDQUFPLFVBQVU7QUFDMUIsV0FBSyxPQUFPLFNBQVMsbUJBQW1CO0FBQ3hDLFlBQU0sS0FBSyxPQUFPO0FBQUE7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo= diff --git a/.obsidian/plugins/obsidian-math-plus/manifest.json b/.obsidian/plugins/obsidian-math-plus/manifest.json index 6c30abc..2d29f15 100644 --- a/.obsidian/plugins/obsidian-math-plus/manifest.json +++ b/.obsidian/plugins/obsidian-math-plus/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-math-plus", - "name": "Obsidian Math+", - "version": "0.6.1", + "name": "Math+", + "version": "0.7.0", "minAppVersion": "0.12.0", "description": "This is an Obsidian plugin for taking math notes using Excalidraw.", "author": "Oscar Capraro", diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index ce24d0b..8308a9c 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -8,12 +8,12 @@ "type": "tabs", "children": [ { - "id": "a8c9a41a5d64da05", + "id": "08ce20c9103ebbfa", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "Supervised learning.md", + "file": "MIPS.md", "mode": "source", "backlinks": true, "source": false @@ -40,7 +40,7 @@ "state": { "type": "search", "state": { - "query": "tag:#mida static ", + "query": "anti-depen", "matchingCase": true, "explainSearch": false, "collapseAll": true, @@ -88,7 +88,7 @@ "state": { "type": "localgraph", "state": { - "file": "Supervised learning.md", + "file": "MIPS.md", "options": { "collapse-filter": false, "search": "", @@ -138,7 +138,7 @@ "state": { "type": "backlink", "state": { - "file": "Supervised learning.md", + "file": "MIPS.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -155,7 +155,7 @@ "state": { "type": "outgoing-link", "state": { - "file": "Supervised learning.md", + "file": "MIPS.md", "linksCollapsed": false, "unlinkedCollapsed": true } @@ -178,7 +178,7 @@ "state": { "type": "outline", "state": { - "file": "Supervised learning.md" + "file": "MIPS.md" } } } @@ -244,8 +244,26 @@ "templater-obsidian:Templater": false } }, - "active": "a8c9a41a5d64da05", + "active": "ffffd76ad16031a1", "lastOpenFiles": [ + "scoreboard arch.png", + "scoreboard.png", + "Parallelization.md", + "MIPS.md", + "multi pipe.png", + "Implicit enumeration methods.md", + "Parallelization by hand.md", + "System.md", + "prediction form mdoel.png", + "Modeling.md", + "FIR models.md", + "ARIMA or ARIMAX models.md", + "Equazioni differenziali ordinarie.md", + "ARXAR model.md", + "Output error models.md", + "White noise.md", + "Supervised learning.md", + "System identification.md", "bias-variance decomposition.png", "Machine learning.md", "Linear programming.md", @@ -254,35 +272,17 @@ "Softmax.md", "Perceptron.md", "Gradient descent.md", - "System identification.md", "Minimizing least squares.md", - "Modeling.md", "Classificazione dei punti critici.md", - "Supervised learning.md", "Regression.md", "Secure system.md", - "Stochastic process.md", - "Autoregressive process.md", - "White noise.md", - "Frequency analysis.md", - "System.md", - "ARMAX process.md", - "ARMA process.md", - "Prediction.md", - "Estimation problem.md", - "Ridge regression.md", - "Branch prediction.md", "CBC-MAC.png", "ratcheting.png", "CTR.png", "PRP enc1.png", "periodogram.png", "rigid regression.png", - "Pasted image 20240227155055.png", - "cache summary.png", "Test.canvas", - "cache.png", - "MIPS IDIF.png", "03_Physical_Databases_Schema.pdf", "Excalidraw" ] diff --git a/.trash/System identification.md b/.trash/System identification.md new file mode 100644 index 0000000..c8ff577 --- /dev/null +++ b/.trash/System identification.md @@ -0,0 +1,6 @@ +--- +tags: + - mida +--- +### Static modeling +### Dynamical modeling diff --git a/ARIMA or ARIMAX models.md b/ARIMA or ARIMAX models.md new file mode 100644 index 0000000..3d7ff35 --- /dev/null +++ b/ARIMA or ARIMAX models.md @@ -0,0 +1,28 @@ +--- +tags: + - mida +--- +It is sometimes of interest to model non-stationary residual to describe a **drift** phenomenon +$$ +w(t) = w(t-1) + \eta(t) +$$ +where $w$ is called a **random walk**. One thing that is important to remember is that the variance is not constant +$$ +\text{Var} [w(t)] = \text{Var} [w(t-1)] + \lambda^{2} = \lambda^{2}t +$$ +and in operatorial notation it can be represented as +$$ +w(t) = \frac{1}{1-z^{-1}}\eta(t) +$$ +This is basically a discrete integral of the [[White noise]]. To model equation we have a noise term that becomes +$$ +C(z)w(t) = \frac{C(z)}{1-z^{-1}}\eta(t) +$$ +giving us +$$ +(1 - z^{-1})A(z)y(t) = (1 - z^{-1})B(z)u(t-k) + C(z)\eta(t) +$$ +that in normal notation is +$$ +A(z)\Delta y(t) =B(z)\Delta u(t) + C(z)\eta(t) +$$ diff --git a/ARXAR model.md b/ARXAR model.md new file mode 100644 index 0000000..2b4933c --- /dev/null +++ b/ARXAR model.md @@ -0,0 +1,11 @@ +--- +tags: + - mida +--- +This is like and [[ARMA process]] where the residual can be represented as an [[Autoregressive process]] +```math +||{"id":333668061487}|| + + +``` +Where $D(z)=1+d_{1}z^{-1} + \dots + d_{nd}z^{-nd}$. \ No newline at end of file diff --git a/FIR models.md b/FIR models.md new file mode 100644 index 0000000..877d25c --- /dev/null +++ b/FIR models.md @@ -0,0 +1,12 @@ +--- +tags: + - mida +--- +This represents an [[Autoregressive process]] with a input and $n_{a} = 0$, it's called the Finite Impulse Response. This type of process is characterized by the following input-output equation +$$ +y(y) = B(z)u(t-1) + \eta(t) +$$ +And the output is a linear combination of a *finite* number of past input data +$$ +G(z) + B(z) =b_{0} + b_{1}z^{-1} + \dots + b_{nb}z^{-nv} +$$ diff --git a/MIPS.md b/MIPS.md index 569dbad..271f801 100644 --- a/MIPS.md +++ b/MIPS.md @@ -73,4 +73,52 @@ This is an attempt to make a decision on the next instruction to execute before >We can use a EX/IF channel to anticipate from $3$ cycles to $2$ cycles or to include a ID/IF channel to go down to $1$ cycle > ![[MIPS IDIF.png]] +#### Dependence +All these problems fall under the same underlying region, **dependence**. If two instructions are dependent to each other, they cannot be executed in parallel, just in order or partially overlapped. There are 3 types of dependencies: +- True data dependencies / flow dependence + An instruction $j$ is dependent on a data produces by $i$ + +- Name dependencies + Two instructions use the same memory location, these are the same as [[Parallelization#Data dependency]] when talking in general about parallelization. To resolve this problem, an easy fix would be to change the location where the data would be saved, like for example in another register. This specific action is called **register renaming**. + +- Control dependencies + A control dependence determines the ordering of the instructions and it's preserved by both the program order and the fact that an hazard cannot be allowed to happen before a branch direction is not known + +### Multi cycle pipeline + +Up until now we have considered **single issue** processors, i.e. one instruction per clock cycle. This is not ideal since requesting some memory or even some instructions may take more than one cycle to resolve, this means that the write back instruction will be delayed. + +To solve this issue we need to execute instruction out of order while the other, more latent instructions, are executing. But this now creates problems with anti and output dependence. + +![[multi pipe.png]] + +The key idea to solve all these hazards is **dynamic scheduling** and allow data independent instruction behind a stall to proceed -- all of this managed by the HW. + +We can also define an exception to be **imprecise** when the processors state raises an exception, and the state produces is not the same as if the instruction where executed in-order. These type of exception are very hard to deal when they occur, because how would we know from what data to restart? So they have to be avoided like the plague. +#### Multiple issue pipeline + +Since we dealt with all types of hazards, how can we still increase performance? Well just issue multiple instructions per clock and extend the processor architecture to deal with it -- just put more ways to read registers and some other ALUs. + +In this case the dynamic scheduler will have to work overtime to resolve all dependencies and maximize throughput. +#### Very long instruction word + +This is another type of architecture in contrast with dynamic scheduling. This takes advantage of static scheduling to deal with all the dependencies of the code to help scale performance better, in fact a pure dynamic scheduled approach has an upper bound of issues of 4. +#### Scoreboard pipelining + +We start by considering a **single-issue** processors where the IF are executed in-order, but the execution overall can be out-of-order -- this means that we also can have anti and output dependencies. Execution and memory stages can also take multiple cycles to finish. + +>[!warning] +>We can't have forwarding and we can deal with imprecise interrupts + +Scoreboard allows **data independent instructions behind a stall to proceed**. We can distinguish when an instruction begins execution and when it completes. + +![[scoreboard.png]] + +The ID stage of an instruction can be divided in two stages: +- Issue $\to$ the decoding part that can check for structural hazards +- Read operands $\to$ Wait until all data hazards are resolved + +To deal with anti-dependency we can read registers only during the Read Operands stage. To deal with Output dependency we can stall the new instruction until the previous one finishes. + +![[scoreboard arch.png]] diff --git a/Output error models.md b/Output error models.md new file mode 100644 index 0000000..f5ca036 --- /dev/null +++ b/Output error models.md @@ -0,0 +1,8 @@ +--- +tags: + - mida +--- +We assume that the output is given by the sum of the variable that describes the direct influence of the input plus a white noise. +$$ +y(t) = G(z)u(t-k) + \eta(t), \qquad \eta(t)\sim \text{Wn}(0,\lambda^{2}) +$$ \ No newline at end of file diff --git a/Parallelization.md b/Parallelization.md index b414fa2..b1e184d 100644 --- a/Parallelization.md +++ b/Parallelization.md @@ -16,6 +16,7 @@ There are many tools to describe parallel algorithms, in fact many languages hav A dependency arises when one operation depends on an earlier operation to complete and produce a result before this later operation can be performed. We can extend this notion of dependency to resources. Two statements can execute in parallel iff there are no dependencies between them. When statements execution does not interfere with other we have sequential consistency. This means that the processor can execute these statement out of order. +#### Data dependency Given statements $S_{1}$ and $S_{2}$, : - $S_{2}$ ha true/flow dependency on $S_{1}$ iff $S_{2}$ reads a value written by $S_{1}$ -> Read After Write diff --git a/System identification.md b/System identification.md deleted file mode 100644 index 3186d85..0000000 --- a/System identification.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -tags: - - mida ---- -[[System]] Identification is the discipline that studies the methodologies to derive a model from data -```math -||{"id":1413641698919}|| - - -``` -What do we expect of this model: -- Limited validity $\to$ this model won't be general since it's given by just data -- The physical interpretation is difficult to understand -- Simpler to derive and to use - ->[!warning] Assumptions ->- Model class selection (linear? [[ARMAX process]]? ..., order?) ->- Real data contains noise or other sources of imperfections ->- The process may vary over time, this could make our model only valid locally ->- Some signals or variables are not always measurable - -We can define the system $\mathcal S$, the model family $\mathcal M$, the identification method $\mathcal I$ and, lastly, the identification experiment $\mathcal E$ -### Phases - -1) Experiment design and data collection - First things first, one must design and preform and **identification experiment** to obtain the data. So we need to chose the kind of input to feed to the system and the choice of the data length $N$. After we need to sanitize the data. Another worry is whether or not there is a feedback from the output to the input, or there could be constraints on the system. - -2) Choice of the model class - The identification problem consists in the determination of the appropriate parametrization: - - static/dynamic - - discrete/continuous - - linear/non-linear - - time-invariant/time-variant - - non-parametric models - -3) The identification method - This is an [[Model optimization problems]] that tries to minimize the error. This could be trivial for some classes of models like the [[Autoregressive process]]. - -4) Model validation - This is a quality check on the obtained model to check if it fits the criteria and actually represents the original phenomenon. If this doesn't pass it's back to the drawing board to redo 1) 2) or 3) -### Static modeling - -The general identification problem setting assumes that one has observed some input/output data from a system and looks for a model that can explain the relationship between them. To start off the focus on **static models** between 2 variables -$$ -\hat{y}(t) = f(u(t); \theta) -$$ -where -- $t$ is an index that univocally defines the in/out pair -- $\theta$ is the vector of model parameters -- $y(t)$ only depends on $u(t)$ at the same index $t$ - -This procedure starts from a conjecture about the type of relationship, then we find the **best** model by using a **fitting** technique. This is usually dome by the [[Minimizing least squares]]. - -A natural way to describe $f(u; \theta)$ is using a functional expansion -$$ -f(u; \theta) = \phi^{T}\theta = \sum\theta\phi(u) \qquad \phi(u) \text{ is a basis function} -$$ -and once we have defined a family of functions parameterized by a vector $\theta$, we have to search the parametrization that yields the best **approximation** of $y(t)$ over the available data. - ->[!note] ->A model is **identifiable** when there is only one solution for the regression. -### Dynamical modeling - -The identification of dynamical models presents some additional difficulties and pitfalls: -- The identification algorithm $\mathcal I$ depends on the considered model class -- The role of the noise model is crucial -- It's not so simple to define idenfiability - diff --git a/System.md b/System.md index 28f19a1..d0cdcfd 100644 --- a/System.md +++ b/System.md @@ -2,15 +2,68 @@ tags: - mida --- -A system is a representation that exhibits the same behavior, or close, of a problem. A system can be either: -- Static -- Dynamic +System Identification is the discipline that studies the methodologies to derive a model from data +```math +||{"id":1413641698919}|| + + +``` +What do we expect of this model: +- Limited validity $\to$ this model won't be general since it's given by just data +- The physical interpretation is difficult to understand +- Simpler to derive and to use + +>[!warning] Assumptions +>- Model class selection (linear? [[ARMAX process]]? ..., order?) +>- Real data contains noise or other sources of imperfections +>- The process may vary over time, this could make our model only valid locally +>- Some signals or variables are not always measurable + +We can define the system $\mathcal S$, the model family $\mathcal M$, the identification method $\mathcal I$ and, lastly, the identification experiment $\mathcal E$ +### Phases + +1) Experiment design and data collection + First things first, one must design and preform and **identification experiment** to obtain the data. So we need to chose the kind of input to feed to the system and the choice of the data length $N$. After we need to sanitize the data. Another worry is whether or not there is a feedback from the output to the input, or there could be constraints on the system. + +2) Choice of the model class + The identification problem consists in the determination of the appropriate parametrization: + - static/dynamic + - discrete/continuous + - linear/non-linear + - time-invariant/time-variant + - non-parametric models + +3) The identification method + This is an [[Model optimization problems]] that tries to minimize the error. This could be trivial for some classes of models like the [[Autoregressive process]]. + +4) Model validation + This is a quality check on the obtained model to check if it fits the criteria and actually represents the original phenomenon. If this doesn't pass it's back to the drawing board to redo 1) 2) or 3) ### Static systems A system from which the **input** is sufficient to predict the **output**. [[Machine learning]] deals with this exact problems. >[!example]- >![[static sys exa.png]] + +The general identification problem setting assumes that one has observed some input/output data from a system and looks for a model that can explain the relationship between them. To start off the focus on **static models** between 2 variables +$$ +\hat{y}(t) = f(u(t); \theta) +$$ +where +- $t$ is an index that univocally defines the in/out pair +- $\theta$ is the vector of model parameters +- $y(t)$ only depends on $u(t)$ at the same index $t$ + +This procedure starts from a conjecture about the type of relationship, then we find the **best** model by using a **fitting** technique. This is usually dome by the [[Minimizing least squares]]. + +A natural way to describe $f(u; \theta)$ is using a functional expansion +$$ +f(u; \theta) = \phi^{T}\theta = \sum\theta\phi(u) \qquad \phi(u) \text{ is a basis function} +$$ +and once we have defined a family of functions parameterized by a vector $\theta$, we have to search the parametrization that yields the best **approximation** of $y(t)$ over the available data. + +>[!note] +>A model is **identifiable** when there is only one solution for the regression. ### Dynamic systems In dynamic systems the output will depend from both the **input** and the **time**. Time description can be either **continuous** or **discrete**. @@ -23,4 +76,85 @@ When dealing with time we have to differentiate the 2 cases in order to model th - Continuous $\to$ [[Equazioni differenziali ordinarie|EDO]] - Discrete $\to$ [[Difference equation]] -When dealing with discrete functions is clear that the $y(t)$ depends on its past values. We still wish to learn a function $f$, so that $y(t) = f(\phi(t))$ but now $\phi(t)$ may contain past samples of both inputs and outputs. \ No newline at end of file +When dealing with discrete functions is clear that the $y(t)$ depends on its past values. We still wish to learn a function $f$, so that $y(t) = f(\phi(t))$ but now $\phi(t)$ may contain past samples of both inputs and outputs. + +The identification of dynamical models presents some additional difficulties and pitfalls: +- The identification algorithm $\mathcal I$ depends on the considered model class +- The role of the noise model is crucial +- It's not so simple to define idenfiability +### Model families + +We can also distinguish $2$ different types of data generating mechanisms, depending on the presence of **exogenous variables**: +- Time series + We are given a set of observation of a variable over some time and we need to build a model that describes it's evolution +$$ +v(t) = W(z)\eta(t), \qquad \eta(t) \sim\text{Wn}(0,\lambda^{2}) +$$ +- Input-output system + We are given a set of observation of both the input and the output of a given system over some time, and we want to know how the input influences the output +$$ +y(t) = G(z) u(t-k) + W(z)\eta(t), \qquad \eta(t)\sim \text{Wn}(0,\lambda^{2}) +$$ +### Disturbance models + +Another classification we can have is based on the disturbance model: +- [[Output error models]] +- Equation error models or [[Autoregressive process]] +- [[ARMA process]]/[[ARMAX process]] +- [[ARXAR model]] +- [[ARIMA or ARIMAX models]] +- [[FIR models]] +### Selection of the model + +When modeling a problem, we need to make 2 decisions: the model family and the model structure. To make this decision there are a couple of key factors: +- Purpose +- Flexibility in terms of a sufficient number of degrees of freedom +- Parsimony, i.e. the simpler the better +- Algorithm complexity +- Performance index + +>[!warning] +Solutions are not always **unique**. + +Assume that the true system falls exactly in the considered model class $\mathcal S \in \mathcal M(\theta)$ +$$ +\mathcal S: y(t) = G_{0}(z) u(t-k) + W_{0}(z)\eta_{0}(t), \qquad \eta_{0}(t) \sim \text{Wn}(0,\lambda_{0}^{2}) +$$ +Even so, it's not granted that the identification is successful. Let $\mathcal D(\mathcal S,\mathcal M)$ be the set of parameterizations for which $\mathcal M(\theta)$ provides a perfect description of $\mathcal S$. $3$ things can occur +- $\mathcal D(\mathcal S,\mathcal M) = \emptyset$ $\to$ under parameterized model +- $\mathcal D(\mathcal S,\mathcal M) = \{ \theta_{0} \}$ $\to$ single point and ideal case +- $\mathcal D(\mathcal S,\mathcal M) = \{ \theta_{0},\theta_{1},\dots \}$ $\to$ multiple points and overparameterized + +Once the model family has been selected and some $N$ data has been collected. How can we select the best $\theta$, i.e. the model, that best interprets the data. We can say that a model is **good** if it provides an accurate $1$-step ahead predictions +$$ +\mathcal M (\theta) \to \hat{\mathcal M}(\theta): \begin{cases} +\hat{y}(t+1|t) = f(y(t)), y(t-1), \dots:\theta) & \text{For time series} \\ +\hat{y}(t+1|t) = f(u(t), u(t-1), \dots, y(t), y(t-1), \dots:\theta) & \text{For I/O systems} +\end{cases} +$$ +and the error to minimize is given by +$$ +\epsilon(t;\theta) = y(t) -\hat{y}(t|t-1;\theta) +$$ +and average size of the error +$$ +J_{N}(\theta) = \frac{1}{N}\sum_{\tau}^{N}\epsilon(t;\theta)^{2} +$$ +where $\tau$ is the lowest integer where $\epsilon(t)$ can be computed. However this is still not enough, we have to check that the error is a [[White noise]], only then we can say that the model is optimal. + +The [[Prediction]] form model is used to get the optimal model by constructing the error. + +![[prediction form mdoel.png]] + +Say we select the model $\theta$ from $\mathcal M$ +$$ +\mathcal M(\theta) : y(t) = G(z)u(t-k) + W(z)\eta(t) +$$ +Now, only if the zeros are not on the unit circle, we can get the whitening filter +$$ +y(t) = \left( 1-\frac{1}{W(z)} \right)y(t) + \frac{G(z)}{W(z)}u(t-k) + \eta(t) +$$ +Now since $W(z)$ is a ration of a monic, it implies that the RHS depends on $y()$ up to $t-1$, so they are uncorrelated to the noise. This means that +$$ +\hat{\mathcal M} : \hat{y}(t|t-1) =\left( 1-\frac{1}{W(z)} \right)y(t) + \frac{G(z)}{W(z)}u(t-k) +$$ diff --git a/multi pipe.png b/multi pipe.png new file mode 100644 index 0000000000000000000000000000000000000000..d5b12556dc7531757f353a98aba7411adcd6108c GIT binary patch literal 27051 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 literal 0 HcmV?d00001 diff --git a/scoreboard arch.png b/scoreboard arch.png new file mode 100644 index 0000000000000000000000000000000000000000..cf994a2533b4ed78f680cb6eebb1fbbe02a24cfc GIT binary patch literal 90413 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

^!& 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 MsXISv?z+AI0}$<%IsgCw literal 0 HcmV?d00001 diff --git a/scoreboard.png b/scoreboard.png new file mode 100644 index 0000000000000000000000000000000000000000..dcbfe6cbb5dfae6ea1633c101dad349d7d1e067f GIT binary patch literal 48653 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%0ABD`Do_eH&1`k*FV&o&M`+M zh2N@UP1)Wx4`a;I@Qiwy*xBt}U*(w;Z3l|JKxXV;KaZv(zzRN8geg*Ka^;3~>jYVz z-7YLEs0_W4OQkM5!hAlkB;gz&kqr8@`ozYnB1#tRD_XVV|v}ef%qIjnr!ZqL^p~{bE;pV1^=vSahOAHK7pFQhR*qKx|`3z z&bg;k{5^k(SRFjy-~8H*S0DCEM*d^fy+6FIySpi8R@gSM0~9qUkyM?DJ7|NrDYmnJ65GA_7mv@(0kOhs0ew}Ceey>F8UnBi{T zQm`XorHRrK-5U-yI`}E*qp0<*NHbN@>1)$RN3ZHwBsy)yZD@hG-*O3J+!{~FRjm;~?)d*y&&z4Cxz!9AAuE6e1>yGtt(s zUcDHIlu@<}FFww&*SvJS%N+9sqp~)JQ-CtS9AA;jWQS}r0pZ*d3`o~QiyMOjqORYPdGrS)>_hmj zhzKI6cnQeZtkgIR>tf8}<@9(3dEA^WT zhKPEHew3V)L%b79N5#a!3f~a@JE{#%k~oPALyR!9p*5XFvt*e7605R{# zXB&?ouv2hh<19Z%_eJ%A9SRz!dZZ3lX-x2~kdv3sdGMf?u58PPjt2e; zpzHH7S=7OkU7!6vizLoMCV**EtRZ4hL_B`6_yN(h*?!P$fm7p3p+5!9iZr2EcJFJ? z7OO%#;!FA#-4VjdRK8<*s?)3mK_@W938H;Y*ij%S04<?IP-|?Z6H{TCIw~+Z-T}ZqZqlUX zNI$l_z2mB_`RCc`fAee5YxcZ~j-_n@=xTp3!&hJ*0RghSh0noZ#id6SgYxz%L#car z?wrG};NfE!PWsCN5#d9zXSj`P(#l9q{*ekujKw9s|3LdP_4gNFxx2foWL}i5&t1R) zLC&co(hqv>oWjEUI}!w1Pn%ScXlG*+N%aU9mXPb1YD!IIR=QG+#_%FI4~7rak37IH zjjsBM@*1emS+hDzX9-zr{`+1=N%D zb3>SnZBhCGH2zl|2Ex*H$CcZnZ`{HhMs2ru22(bUELK}#t1kCzlIRB_dz7?#{x76f8YVRrr;Jv$q8)Y!3C0hNJK&T*%74h-=WkXi58U%ZE2 z0w6$XJs$WHcm<^D9?uY2@`}sDc3T)T3VXJy>awVHk;T?rTYhTGS1NJ7#2sd3rTo>B z9I9XtwyeB7A4*^%5LJXaminTyxvL#*U}Q8#^#9nnifu!3rj1;2Ilpbr;g>ZtCs=IZ zTi(ZuL0lE_8loDgGCRp7ncKSm0`qzii(|{4J8S0T=31hJ0vF(tv-+X|ax{QoEL#dt z7i-`t#9?8|?hQnrdz~g)Sy?5}%6jk^wyMh!Y#2)V?oal5@g1N{pw=F0wWkSIV^>^0 zL;3(8;J#-&3GzFO^k5Of75ZvN2)htU=6L#c(Rou!>h|0lE6xzpk7@NfE-LhUi>{b+ zxu+?_wF9waJVJIc>zw+xh}n)bt^&fu3*3PTe ziSzx3rrulQBfF7F(L5mbl^R6zB~VU)$12HSKYxRao)0*Kc-QLR+k_iiv&SSk)SN77 zo=J0qZ&qG|@PY=J;6#a3LD#Tk` z6UCvJB6WR3Wp>d?nf@U2*jZefoj*U3qc8FsYrCBo*lGvBDIj-&w_<@o*EtCknxn;C za3IM_4UC+t!=pq1+*B2nl#Y@s#uITct-;)V3tk`sv7zh4{$(-k6>Webkr4k4E)GNv zCtl9b(J>#8NKgN$eFR>1m&>drZ$YwY<{i0D=F&)XTl8#{{v$81T~1NT1squNQs1d3 z%59YvEefL8;I}apfloioI?8yjW{5DW2`UiQ9c+mRuJ=H8xIPxfDRg)|DGC